summaryrefslogtreecommitdiff
path: root/ANDROID_3.4.5/include
diff options
context:
space:
mode:
Diffstat (limited to 'ANDROID_3.4.5/include')
-rw-r--r--ANDROID_3.4.5/include/Kbuild12
-rw-r--r--ANDROID_3.4.5/include/acpi/acconfig.h248
-rw-r--r--ANDROID_3.4.5/include/acpi/acexcep.h300
-rw-r--r--ANDROID_3.4.5/include/acpi/acnames.h84
-rw-r--r--ANDROID_3.4.5/include/acpi/acoutput.h283
-rw-r--r--ANDROID_3.4.5/include/acpi/acpi.h66
-rw-r--r--ANDROID_3.4.5/include/acpi/acpi_bus.h412
-rw-r--r--ANDROID_3.4.5/include/acpi/acpi_drivers.h157
-rw-r--r--ANDROID_3.4.5/include/acpi/acpi_numa.h21
-rw-r--r--ANDROID_3.4.5/include/acpi/acpiosxf.h281
-rw-r--r--ANDROID_3.4.5/include/acpi/acpixf.h553
-rw-r--r--ANDROID_3.4.5/include/acpi/acrestyp.h604
-rw-r--r--ANDROID_3.4.5/include/acpi/actbl.h380
-rw-r--r--ANDROID_3.4.5/include/acpi/actbl1.h963
-rw-r--r--ANDROID_3.4.5/include/acpi/actbl2.h1048
-rw-r--r--ANDROID_3.4.5/include/acpi/actbl3.h552
-rw-r--r--ANDROID_3.4.5/include/acpi/actypes.h1121
-rw-r--r--ANDROID_3.4.5/include/acpi/apei.h46
-rw-r--r--ANDROID_3.4.5/include/acpi/button.h25
-rw-r--r--ANDROID_3.4.5/include/acpi/container.h12
-rw-r--r--ANDROID_3.4.5/include/acpi/hed.h18
-rw-r--r--ANDROID_3.4.5/include/acpi/pdc_intel.h35
-rw-r--r--ANDROID_3.4.5/include/acpi/platform/acenv.h380
-rw-r--r--ANDROID_3.4.5/include/acpi/platform/acgcc.h71
-rw-r--r--ANDROID_3.4.5/include/acpi/platform/aclinux.h180
-rw-r--r--ANDROID_3.4.5/include/acpi/processor.h358
-rw-r--r--ANDROID_3.4.5/include/acpi/reboot.h11
-rw-r--r--ANDROID_3.4.5/include/acpi/video.h34
-rw-r--r--ANDROID_3.4.5/include/asm-generic/4level-fixup.h37
-rw-r--r--ANDROID_3.4.5/include/asm-generic/Kbuild34
-rw-r--r--ANDROID_3.4.5/include/asm-generic/Kbuild.asm45
-rw-r--r--ANDROID_3.4.5/include/asm-generic/atomic-long.h258
-rw-r--r--ANDROID_3.4.5/include/asm-generic/atomic.h198
-rw-r--r--ANDROID_3.4.5/include/asm-generic/atomic64.h42
-rw-r--r--ANDROID_3.4.5/include/asm-generic/audit_change_attr.h30
-rw-r--r--ANDROID_3.4.5/include/asm-generic/audit_dir_write.h32
-rw-r--r--ANDROID_3.4.5/include/asm-generic/audit_read.h13
-rw-r--r--ANDROID_3.4.5/include/asm-generic/audit_signal.h3
-rw-r--r--ANDROID_3.4.5/include/asm-generic/audit_write.h15
-rw-r--r--ANDROID_3.4.5/include/asm-generic/auxvec.h8
-rw-r--r--ANDROID_3.4.5/include/asm-generic/barrier.h50
-rw-r--r--ANDROID_3.4.5/include/asm-generic/bitops.h44
-rw-r--r--ANDROID_3.4.5/include/asm-generic/bitops/__ffs.h43
-rw-r--r--ANDROID_3.4.5/include/asm-generic/bitops/__fls.h43
-rw-r--r--ANDROID_3.4.5/include/asm-generic/bitops/arch_hweight.h25
-rw-r--r--ANDROID_3.4.5/include/asm-generic/bitops/atomic.h189
-rw-r--r--ANDROID_3.4.5/include/asm-generic/bitops/const_hweight.h42
-rw-r--r--ANDROID_3.4.5/include/asm-generic/bitops/ext2-atomic-setbit.h11
-rw-r--r--ANDROID_3.4.5/include/asm-generic/bitops/ext2-atomic.h26
-rw-r--r--ANDROID_3.4.5/include/asm-generic/bitops/ffs.h41
-rw-r--r--ANDROID_3.4.5/include/asm-generic/bitops/ffz.h12
-rw-r--r--ANDROID_3.4.5/include/asm-generic/bitops/find.h54
-rw-r--r--ANDROID_3.4.5/include/asm-generic/bitops/fls.h41
-rw-r--r--ANDROID_3.4.5/include/asm-generic/bitops/fls64.h36
-rw-r--r--ANDROID_3.4.5/include/asm-generic/bitops/hweight.h7
-rw-r--r--ANDROID_3.4.5/include/asm-generic/bitops/le.h87
-rw-r--r--ANDROID_3.4.5/include/asm-generic/bitops/lock.h45
-rw-r--r--ANDROID_3.4.5/include/asm-generic/bitops/non-atomic.h108
-rw-r--r--ANDROID_3.4.5/include/asm-generic/bitops/sched.h31
-rw-r--r--ANDROID_3.4.5/include/asm-generic/bitsperlong.h32
-rw-r--r--ANDROID_3.4.5/include/asm-generic/bug.h205
-rw-r--r--ANDROID_3.4.5/include/asm-generic/bugs.h10
-rw-r--r--ANDROID_3.4.5/include/asm-generic/cache.h12
-rw-r--r--ANDROID_3.4.5/include/asm-generic/cacheflush.h34
-rw-r--r--ANDROID_3.4.5/include/asm-generic/checksum.h83
-rw-r--r--ANDROID_3.4.5/include/asm-generic/cmpxchg-local.h66
-rw-r--r--ANDROID_3.4.5/include/asm-generic/cmpxchg.h98
-rw-r--r--ANDROID_3.4.5/include/asm-generic/cputime.h69
-rw-r--r--ANDROID_3.4.5/include/asm-generic/current.h9
-rw-r--r--ANDROID_3.4.5/include/asm-generic/delay.h44
-rw-r--r--ANDROID_3.4.5/include/asm-generic/device.h15
-rw-r--r--ANDROID_3.4.5/include/asm-generic/div64.h58
-rw-r--r--ANDROID_3.4.5/include/asm-generic/dma-coherent.h32
-rw-r--r--ANDROID_3.4.5/include/asm-generic/dma-mapping-broken.h79
-rw-r--r--ANDROID_3.4.5/include/asm-generic/dma-mapping-common.h179
-rw-r--r--ANDROID_3.4.5/include/asm-generic/dma.h15
-rw-r--r--ANDROID_3.4.5/include/asm-generic/emergency-restart.h9
-rw-r--r--ANDROID_3.4.5/include/asm-generic/errno-base.h39
-rw-r--r--ANDROID_3.4.5/include/asm-generic/errno.h116
-rw-r--r--ANDROID_3.4.5/include/asm-generic/exec.h19
-rw-r--r--ANDROID_3.4.5/include/asm-generic/fb.h12
-rw-r--r--ANDROID_3.4.5/include/asm-generic/fcntl.h195
-rw-r--r--ANDROID_3.4.5/include/asm-generic/ftrace.h16
-rw-r--r--ANDROID_3.4.5/include/asm-generic/futex.h57
-rw-r--r--ANDROID_3.4.5/include/asm-generic/getorder.h61
-rw-r--r--ANDROID_3.4.5/include/asm-generic/gpio.h257
-rw-r--r--ANDROID_3.4.5/include/asm-generic/hardirq.h21
-rw-r--r--ANDROID_3.4.5/include/asm-generic/hw_irq.h9
-rw-r--r--ANDROID_3.4.5/include/asm-generic/ide_iops.h38
-rw-r--r--ANDROID_3.4.5/include/asm-generic/int-l64.h73
-rw-r--r--ANDROID_3.4.5/include/asm-generic/int-ll64.h78
-rw-r--r--ANDROID_3.4.5/include/asm-generic/io-64-nonatomic-hi-lo.h28
-rw-r--r--ANDROID_3.4.5/include/asm-generic/io-64-nonatomic-lo-hi.h28
-rw-r--r--ANDROID_3.4.5/include/asm-generic/io.h372
-rw-r--r--ANDROID_3.4.5/include/asm-generic/ioctl.h105
-rw-r--r--ANDROID_3.4.5/include/asm-generic/ioctls.h114
-rw-r--r--ANDROID_3.4.5/include/asm-generic/iomap.h81
-rw-r--r--ANDROID_3.4.5/include/asm-generic/ipcbuf.h34
-rw-r--r--ANDROID_3.4.5/include/asm-generic/irq.h18
-rw-r--r--ANDROID_3.4.5/include/asm-generic/irq_regs.h37
-rw-r--r--ANDROID_3.4.5/include/asm-generic/irqflags.h66
-rw-r--r--ANDROID_3.4.5/include/asm-generic/kdebug.h9
-rw-r--r--ANDROID_3.4.5/include/asm-generic/kmap_types.h40
-rw-r--r--ANDROID_3.4.5/include/asm-generic/libata-portmap.h7
-rw-r--r--ANDROID_3.4.5/include/asm-generic/linkage.h8
-rw-r--r--ANDROID_3.4.5/include/asm-generic/local.h55
-rw-r--r--ANDROID_3.4.5/include/asm-generic/local64.h96
-rw-r--r--ANDROID_3.4.5/include/asm-generic/memory_model.h77
-rw-r--r--ANDROID_3.4.5/include/asm-generic/mm_hooks.h18
-rw-r--r--ANDROID_3.4.5/include/asm-generic/mman-common.h58
-rw-r--r--ANDROID_3.4.5/include/asm-generic/mman.h19
-rw-r--r--ANDROID_3.4.5/include/asm-generic/mmu.h15
-rw-r--r--ANDROID_3.4.5/include/asm-generic/mmu_context.h45
-rw-r--r--ANDROID_3.4.5/include/asm-generic/module.h22
-rw-r--r--ANDROID_3.4.5/include/asm-generic/msgbuf.h47
-rw-r--r--ANDROID_3.4.5/include/asm-generic/mutex-dec.h90
-rw-r--r--ANDROID_3.4.5/include/asm-generic/mutex-null.h19
-rw-r--r--ANDROID_3.4.5/include/asm-generic/mutex-xchg.h118
-rw-r--r--ANDROID_3.4.5/include/asm-generic/mutex.h9
-rw-r--r--ANDROID_3.4.5/include/asm-generic/page.h103
-rw-r--r--ANDROID_3.4.5/include/asm-generic/param.h25
-rw-r--r--ANDROID_3.4.5/include/asm-generic/parport.h23
-rw-r--r--ANDROID_3.4.5/include/asm-generic/pci-bridge.h68
-rw-r--r--ANDROID_3.4.5/include/asm-generic/pci-dma-compat.h116
-rw-r--r--ANDROID_3.4.5/include/asm-generic/pci.h37
-rw-r--r--ANDROID_3.4.5/include/asm-generic/pci_iomap.h35
-rw-r--r--ANDROID_3.4.5/include/asm-generic/percpu.h125
-rw-r--r--ANDROID_3.4.5/include/asm-generic/pgalloc.h12
-rw-r--r--ANDROID_3.4.5/include/asm-generic/pgtable-nopmd.h69
-rw-r--r--ANDROID_3.4.5/include/asm-generic/pgtable-nopud.h61
-rw-r--r--ANDROID_3.4.5/include/asm-generic/pgtable.h538
-rw-r--r--ANDROID_3.4.5/include/asm-generic/poll.h39
-rw-r--r--ANDROID_3.4.5/include/asm-generic/posix_types.h100
-rw-r--r--ANDROID_3.4.5/include/asm-generic/ptrace.h74
-rw-r--r--ANDROID_3.4.5/include/asm-generic/resource.h94
-rw-r--r--ANDROID_3.4.5/include/asm-generic/rtc.h218
-rw-r--r--ANDROID_3.4.5/include/asm-generic/rwsem.h132
-rw-r--r--ANDROID_3.4.5/include/asm-generic/scatterlist.h34
-rw-r--r--ANDROID_3.4.5/include/asm-generic/sections.h43
-rw-r--r--ANDROID_3.4.5/include/asm-generic/segment.h9
-rw-r--r--ANDROID_3.4.5/include/asm-generic/sembuf.h38
-rw-r--r--ANDROID_3.4.5/include/asm-generic/serial.h13
-rw-r--r--ANDROID_3.4.5/include/asm-generic/setup.h6
-rw-r--r--ANDROID_3.4.5/include/asm-generic/shmbuf.h59
-rw-r--r--ANDROID_3.4.5/include/asm-generic/shmparam.h6
-rw-r--r--ANDROID_3.4.5/include/asm-generic/siginfo.h310
-rw-r--r--ANDROID_3.4.5/include/asm-generic/signal-defs.h28
-rw-r--r--ANDROID_3.4.5/include/asm-generic/signal.h131
-rw-r--r--ANDROID_3.4.5/include/asm-generic/sizes.h47
-rw-r--r--ANDROID_3.4.5/include/asm-generic/socket.h75
-rw-r--r--ANDROID_3.4.5/include/asm-generic/sockios.h13
-rw-r--r--ANDROID_3.4.5/include/asm-generic/spinlock.h11
-rw-r--r--ANDROID_3.4.5/include/asm-generic/stat.h72
-rw-r--r--ANDROID_3.4.5/include/asm-generic/statfs.h86
-rw-r--r--ANDROID_3.4.5/include/asm-generic/string.h10
-rw-r--r--ANDROID_3.4.5/include/asm-generic/swab.h18
-rw-r--r--ANDROID_3.4.5/include/asm-generic/switch_to.h30
-rw-r--r--ANDROID_3.4.5/include/asm-generic/syscall.h145
-rw-r--r--ANDROID_3.4.5/include/asm-generic/syscalls.h62
-rw-r--r--ANDROID_3.4.5/include/asm-generic/termbits.h199
-rw-r--r--ANDROID_3.4.5/include/asm-generic/termios-base.h77
-rw-r--r--ANDROID_3.4.5/include/asm-generic/termios.h154
-rw-r--r--ANDROID_3.4.5/include/asm-generic/timex.h22
-rw-r--r--ANDROID_3.4.5/include/asm-generic/tlb.h178
-rw-r--r--ANDROID_3.4.5/include/asm-generic/tlbflush.h20
-rw-r--r--ANDROID_3.4.5/include/asm-generic/topology.h76
-rw-r--r--ANDROID_3.4.5/include/asm-generic/types.h9
-rw-r--r--ANDROID_3.4.5/include/asm-generic/uaccess-unaligned.h26
-rw-r--r--ANDROID_3.4.5/include/asm-generic/uaccess.h334
-rw-r--r--ANDROID_3.4.5/include/asm-generic/ucontext.h12
-rw-r--r--ANDROID_3.4.5/include/asm-generic/unaligned.h30
-rw-r--r--ANDROID_3.4.5/include/asm-generic/unistd.h931
-rw-r--r--ANDROID_3.4.5/include/asm-generic/user.h8
-rw-r--r--ANDROID_3.4.5/include/asm-generic/vga.h24
-rw-r--r--ANDROID_3.4.5/include/asm-generic/vmlinux.lds.h805
-rw-r--r--ANDROID_3.4.5/include/asm-generic/xor.h718
-rw-r--r--ANDROID_3.4.5/include/crypto/aead.h105
-rw-r--r--ANDROID_3.4.5/include/crypto/aes.h39
-rw-r--r--ANDROID_3.4.5/include/crypto/algapi.h390
-rw-r--r--ANDROID_3.4.5/include/crypto/authenc.h27
-rw-r--r--ANDROID_3.4.5/include/crypto/b128ops.h80
-rw-r--r--ANDROID_3.4.5/include/crypto/blowfish.h23
-rw-r--r--ANDROID_3.4.5/include/crypto/compress.h145
-rw-r--r--ANDROID_3.4.5/include/crypto/cryptd.h69
-rw-r--r--ANDROID_3.4.5/include/crypto/crypto_wq.h7
-rw-r--r--ANDROID_3.4.5/include/crypto/ctr.h20
-rw-r--r--ANDROID_3.4.5/include/crypto/des.h19
-rw-r--r--ANDROID_3.4.5/include/crypto/gf128mul.h200
-rw-r--r--ANDROID_3.4.5/include/crypto/hash.h353
-rw-r--r--ANDROID_3.4.5/include/crypto/if_alg.h93
-rw-r--r--ANDROID_3.4.5/include/crypto/internal/aead.h82
-rw-r--r--ANDROID_3.4.5/include/crypto/internal/compress.h28
-rw-r--r--ANDROID_3.4.5/include/crypto/internal/hash.h223
-rw-r--r--ANDROID_3.4.5/include/crypto/internal/rng.h26
-rw-r--r--ANDROID_3.4.5/include/crypto/internal/skcipher.h112
-rw-r--r--ANDROID_3.4.5/include/crypto/lrw.h43
-rw-r--r--ANDROID_3.4.5/include/crypto/md5.h17
-rw-r--r--ANDROID_3.4.5/include/crypto/padlock.h29
-rw-r--r--ANDROID_3.4.5/include/crypto/pcrypt.h51
-rw-r--r--ANDROID_3.4.5/include/crypto/rng.h75
-rw-r--r--ANDROID_3.4.5/include/crypto/scatterwalk.h116
-rw-r--r--ANDROID_3.4.5/include/crypto/serpent.h27
-rw-r--r--ANDROID_3.4.5/include/crypto/sha.h90
-rw-r--r--ANDROID_3.4.5/include/crypto/skcipher.h110
-rw-r--r--ANDROID_3.4.5/include/crypto/twofish.h24
-rw-r--r--ANDROID_3.4.5/include/crypto/vmac.h61
-rw-r--r--ANDROID_3.4.5/include/crypto/xts.h27
-rw-r--r--ANDROID_3.4.5/include/drm/Kbuild15
-rw-r--r--ANDROID_3.4.5/include/drm/drm.h824
-rw-r--r--ANDROID_3.4.5/include/drm/drmP.h1778
-rw-r--r--ANDROID_3.4.5/include/drm/drm_buffer.h148
-rw-r--r--ANDROID_3.4.5/include/drm/drm_cache.h38
-rw-r--r--ANDROID_3.4.5/include/drm/drm_core.h34
-rw-r--r--ANDROID_3.4.5/include/drm/drm_crtc.h1029
-rw-r--r--ANDROID_3.4.5/include/drm/drm_crtc_helper.h150
-rw-r--r--ANDROID_3.4.5/include/drm/drm_dp_helper.h252
-rw-r--r--ANDROID_3.4.5/include/drm/drm_edid.h243
-rw-r--r--ANDROID_3.4.5/include/drm/drm_encoder_slave.h162
-rw-r--r--ANDROID_3.4.5/include/drm/drm_fb_helper.h120
-rw-r--r--ANDROID_3.4.5/include/drm/drm_fixed.h67
-rw-r--r--ANDROID_3.4.5/include/drm/drm_fourcc.h137
-rw-r--r--ANDROID_3.4.5/include/drm/drm_global.h53
-rw-r--r--ANDROID_3.4.5/include/drm/drm_hashtab.h65
-rw-r--r--ANDROID_3.4.5/include/drm/drm_mem_util.h65
-rw-r--r--ANDROID_3.4.5/include/drm/drm_memory.h59
-rw-r--r--ANDROID_3.4.5/include/drm/drm_mm.h188
-rw-r--r--ANDROID_3.4.5/include/drm/drm_mode.h446
-rw-r--r--ANDROID_3.4.5/include/drm/drm_os_linux.h127
-rw-r--r--ANDROID_3.4.5/include/drm/drm_pciids.h766
-rw-r--r--ANDROID_3.4.5/include/drm/drm_sarea.h84
-rw-r--r--ANDROID_3.4.5/include/drm/drm_sysfs.h12
-rw-r--r--ANDROID_3.4.5/include/drm/drm_usb.h15
-rw-r--r--ANDROID_3.4.5/include/drm/exynos_drm.h185
-rw-r--r--ANDROID_3.4.5/include/drm/gma_drm.h91
-rw-r--r--ANDROID_3.4.5/include/drm/i2c/ch7006.h86
-rw-r--r--ANDROID_3.4.5/include/drm/i2c/sil164.h63
-rw-r--r--ANDROID_3.4.5/include/drm/i810_drm.h281
-rw-r--r--ANDROID_3.4.5/include/drm/i915_drm.h888
-rw-r--r--ANDROID_3.4.5/include/drm/intel-gtt.h51
-rw-r--r--ANDROID_3.4.5/include/drm/mga_drm.h419
-rw-r--r--ANDROID_3.4.5/include/drm/nouveau_drm.h218
-rw-r--r--ANDROID_3.4.5/include/drm/r128_drm.h326
-rw-r--r--ANDROID_3.4.5/include/drm/radeon_drm.h975
-rw-r--r--ANDROID_3.4.5/include/drm/savage_drm.h210
-rw-r--r--ANDROID_3.4.5/include/drm/sis_drm.h71
-rw-r--r--ANDROID_3.4.5/include/drm/ttm/ttm_bo_api.h732
-rw-r--r--ANDROID_3.4.5/include/drm/ttm/ttm_bo_driver.h1037
-rw-r--r--ANDROID_3.4.5/include/drm/ttm/ttm_execbuf_util.h112
-rw-r--r--ANDROID_3.4.5/include/drm/ttm/ttm_lock.h247
-rw-r--r--ANDROID_3.4.5/include/drm/ttm/ttm_memory.h160
-rw-r--r--ANDROID_3.4.5/include/drm/ttm/ttm_module.h40
-rw-r--r--ANDROID_3.4.5/include/drm/ttm/ttm_object.h271
-rw-r--r--ANDROID_3.4.5/include/drm/ttm/ttm_page_alloc.h99
-rw-r--r--ANDROID_3.4.5/include/drm/ttm/ttm_placement.h92
-rw-r--r--ANDROID_3.4.5/include/drm/via_drm.h281
-rw-r--r--ANDROID_3.4.5/include/drm/vmwgfx_drm.h790
-rw-r--r--ANDROID_3.4.5/include/keys/ceph-type.h8
-rw-r--r--ANDROID_3.4.5/include/keys/dns_resolver-type.h23
-rw-r--r--ANDROID_3.4.5/include/keys/encrypted-type.h38
-rw-r--r--ANDROID_3.4.5/include/keys/keyring-type.h31
-rw-r--r--ANDROID_3.4.5/include/keys/rxrpc-type.h130
-rw-r--r--ANDROID_3.4.5/include/keys/trusted-type.h31
-rw-r--r--ANDROID_3.4.5/include/keys/user-type.h48
-rw-r--r--ANDROID_3.4.5/include/linux/8250_pci.h37
-rw-r--r--ANDROID_3.4.5/include/linux/Kbuild412
-rw-r--r--ANDROID_3.4.5/include/linux/a.out.h278
-rw-r--r--ANDROID_3.4.5/include/linux/ac97_codec.h362
-rw-r--r--ANDROID_3.4.5/include/linux/acct.h215
-rw-r--r--ANDROID_3.4.5/include/linux/acpi.h385
-rw-r--r--ANDROID_3.4.5/include/linux/acpi_io.h18
-rw-r--r--ANDROID_3.4.5/include/linux/acpi_pmtmr.h38
-rw-r--r--ANDROID_3.4.5/include/linux/adb.h103
-rw-r--r--ANDROID_3.4.5/include/linux/adfs_fs.h63
-rw-r--r--ANDROID_3.4.5/include/linux/aer.h58
-rw-r--r--ANDROID_3.4.5/include/linux/affs_hardblocks.h68
-rw-r--r--ANDROID_3.4.5/include/linux/agp_backend.h109
-rw-r--r--ANDROID_3.4.5/include/linux/agpgart.h214
-rw-r--r--ANDROID_3.4.5/include/linux/ahci_platform.h33
-rw-r--r--ANDROID_3.4.5/include/linux/aio.h240
-rw-r--r--ANDROID_3.4.5/include/linux/aio_abi.h111
-rw-r--r--ANDROID_3.4.5/include/linux/akm8975.h87
-rw-r--r--ANDROID_3.4.5/include/linux/alarmtimer.h82
-rw-r--r--ANDROID_3.4.5/include/linux/altera_jtaguart.h16
-rw-r--r--ANDROID_3.4.5/include/linux/altera_uart.h15
-rw-r--r--ANDROID_3.4.5/include/linux/amba/bus.h130
-rw-r--r--ANDROID_3.4.5/include/linux/amba/clcd.h330
-rw-r--r--ANDROID_3.4.5/include/linux/amba/kmi.h92
-rw-r--r--ANDROID_3.4.5/include/linux/amba/mmci.h90
-rw-r--r--ANDROID_3.4.5/include/linux/amba/pl022.h300
-rw-r--r--ANDROID_3.4.5/include/linux/amba/pl061.h16
-rw-r--r--ANDROID_3.4.5/include/linux/amba/pl08x.h244
-rw-r--r--ANDROID_3.4.5/include/linux/amba/pl093.h80
-rw-r--r--ANDROID_3.4.5/include/linux/amba/pl330.h35
-rw-r--r--ANDROID_3.4.5/include/linux/amba/serial.h212
-rw-r--r--ANDROID_3.4.5/include/linux/amd-iommu.h171
-rw-r--r--ANDROID_3.4.5/include/linux/amifd.h62
-rw-r--r--ANDROID_3.4.5/include/linux/amifdreg.h81
-rw-r--r--ANDROID_3.4.5/include/linux/amigaffs.h144
-rw-r--r--ANDROID_3.4.5/include/linux/android_aid.h28
-rw-r--r--ANDROID_3.4.5/include/linux/anon_inodes.h20
-rw-r--r--ANDROID_3.4.5/include/linux/apm-emulation.h62
-rw-r--r--ANDROID_3.4.5/include/linux/apm_bios.h220
-rw-r--r--ANDROID_3.4.5/include/linux/apple_bl.h26
-rw-r--r--ANDROID_3.4.5/include/linux/arcdevice.h346
-rw-r--r--ANDROID_3.4.5/include/linux/arcfb.h8
-rw-r--r--ANDROID_3.4.5/include/linux/async.h27
-rw-r--r--ANDROID_3.4.5/include/linux/async_tx.h209
-rw-r--r--ANDROID_3.4.5/include/linux/ata.h1078
-rw-r--r--ANDROID_3.4.5/include/linux/ata_platform.h34
-rw-r--r--ANDROID_3.4.5/include/linux/atalk.h209
-rw-r--r--ANDROID_3.4.5/include/linux/ath9k_platform.h37
-rw-r--r--ANDROID_3.4.5/include/linux/atm.h251
-rw-r--r--ANDROID_3.4.5/include/linux/atm_eni.h23
-rw-r--r--ANDROID_3.4.5/include/linux/atm_he.h20
-rw-r--r--ANDROID_3.4.5/include/linux/atm_idt77105.h28
-rw-r--r--ANDROID_3.4.5/include/linux/atm_nicstar.h53
-rw-r--r--ANDROID_3.4.5/include/linux/atm_suni.h12
-rw-r--r--ANDROID_3.4.5/include/linux/atm_tcp.h73
-rw-r--r--ANDROID_3.4.5/include/linux/atm_zatm.h52
-rw-r--r--ANDROID_3.4.5/include/linux/atmapi.h29
-rw-r--r--ANDROID_3.4.5/include/linux/atmarp.h41
-rw-r--r--ANDROID_3.4.5/include/linux/atmbr2684.h117
-rw-r--r--ANDROID_3.4.5/include/linux/atmclip.h21
-rw-r--r--ANDROID_3.4.5/include/linux/atmdev.h526
-rw-r--r--ANDROID_3.4.5/include/linux/atmel-mci.h39
-rw-r--r--ANDROID_3.4.5/include/linux/atmel-pwm-bl.h43
-rw-r--r--ANDROID_3.4.5/include/linux/atmel-ssc.h312
-rw-r--r--ANDROID_3.4.5/include/linux/atmel_pdc.h38
-rw-r--r--ANDROID_3.4.5/include/linux/atmel_pwm.h70
-rw-r--r--ANDROID_3.4.5/include/linux/atmel_serial.h127
-rw-r--r--ANDROID_3.4.5/include/linux/atmel_tc.h262
-rw-r--r--ANDROID_3.4.5/include/linux/atmioc.h41
-rw-r--r--ANDROID_3.4.5/include/linux/atmlec.h98
-rw-r--r--ANDROID_3.4.5/include/linux/atmmpc.h126
-rw-r--r--ANDROID_3.4.5/include/linux/atmppp.h24
-rw-r--r--ANDROID_3.4.5/include/linux/atmsap.h162
-rw-r--r--ANDROID_3.4.5/include/linux/atmsvc.h55
-rw-r--r--ANDROID_3.4.5/include/linux/atomic.h106
-rw-r--r--ANDROID_3.4.5/include/linux/attribute_container.h72
-rw-r--r--ANDROID_3.4.5/include/linux/audit.h723
-rw-r--r--ANDROID_3.4.5/include/linux/auto_dev-ioctl.h229
-rw-r--r--ANDROID_3.4.5/include/linux/auto_fs.h86
-rw-r--r--ANDROID_3.4.5/include/linux/auto_fs4.h164
-rw-r--r--ANDROID_3.4.5/include/linux/auxvec.h39
-rw-r--r--ANDROID_3.4.5/include/linux/average.h30
-rw-r--r--ANDROID_3.4.5/include/linux/ax25.h116
-rw-r--r--ANDROID_3.4.5/include/linux/b1lli.h73
-rw-r--r--ANDROID_3.4.5/include/linux/b1pcmcia.h21
-rw-r--r--ANDROID_3.4.5/include/linux/backing-dev.h356
-rw-r--r--ANDROID_3.4.5/include/linux/backlight.h137
-rw-r--r--ANDROID_3.4.5/include/linux/basic_mmio_gpio.h72
-rw-r--r--ANDROID_3.4.5/include/linux/baycom.h39
-rw-r--r--ANDROID_3.4.5/include/linux/bcd.h9
-rw-r--r--ANDROID_3.4.5/include/linux/bch.h79
-rw-r--r--ANDROID_3.4.5/include/linux/bcma/bcma.h307
-rw-r--r--ANDROID_3.4.5/include/linux/bcma/bcma_driver_chipcommon.h415
-rw-r--r--ANDROID_3.4.5/include/linux/bcma/bcma_driver_mips.h51
-rw-r--r--ANDROID_3.4.5/include/linux/bcma/bcma_driver_pci.h214
-rw-r--r--ANDROID_3.4.5/include/linux/bcma/bcma_regs.h86
-rw-r--r--ANDROID_3.4.5/include/linux/bcma/bcma_soc.h16
-rw-r--r--ANDROID_3.4.5/include/linux/bfin_mac.h30
-rw-r--r--ANDROID_3.4.5/include/linux/bfs_fs.h81
-rw-r--r--ANDROID_3.4.5/include/linux/binfmts.h140
-rw-r--r--ANDROID_3.4.5/include/linux/bio.h581
-rw-r--r--ANDROID_3.4.5/include/linux/bit_spinlock.h100
-rw-r--r--ANDROID_3.4.5/include/linux/bitmap.h309
-rw-r--r--ANDROID_3.4.5/include/linux/bitops.h201
-rw-r--r--ANDROID_3.4.5/include/linux/bitrev.h16
-rw-r--r--ANDROID_3.4.5/include/linux/blk-iopoll.h48
-rw-r--r--ANDROID_3.4.5/include/linux/blk_types.h195
-rw-r--r--ANDROID_3.4.5/include/linux/blkdev.h1421
-rw-r--r--ANDROID_3.4.5/include/linux/blkpg.h58
-rw-r--r--ANDROID_3.4.5/include/linux/blktrace_api.h254
-rw-r--r--ANDROID_3.4.5/include/linux/blockgroup_lock.h62
-rw-r--r--ANDROID_3.4.5/include/linux/bma150.h46
-rw-r--r--ANDROID_3.4.5/include/linux/bootmem.h174
-rw-r--r--ANDROID_3.4.5/include/linux/bottom_half.h9
-rw-r--r--ANDROID_3.4.5/include/linux/bpqether.h41
-rw-r--r--ANDROID_3.4.5/include/linux/brcmphy.h31
-rw-r--r--ANDROID_3.4.5/include/linux/bsearch.h9
-rw-r--r--ANDROID_3.4.5/include/linux/bsg-lib.h73
-rw-r--r--ANDROID_3.4.5/include/linux/bsg.h94
-rw-r--r--ANDROID_3.4.5/include/linux/btree-128.h109
-rw-r--r--ANDROID_3.4.5/include/linux/btree-type.h147
-rw-r--r--ANDROID_3.4.5/include/linux/btree.h243
-rw-r--r--ANDROID_3.4.5/include/linux/buffer_head.h350
-rw-r--r--ANDROID_3.4.5/include/linux/bug.h99
-rw-r--r--ANDROID_3.4.5/include/linux/byteorder/Kbuild2
-rw-r--r--ANDROID_3.4.5/include/linux/byteorder/big_endian.h108
-rw-r--r--ANDROID_3.4.5/include/linux/byteorder/generic.h173
-rw-r--r--ANDROID_3.4.5/include/linux/byteorder/little_endian.h108
-rw-r--r--ANDROID_3.4.5/include/linux/c2port.h66
-rw-r--r--ANDROID_3.4.5/include/linux/cache.h67
-rw-r--r--ANDROID_3.4.5/include/linux/caif/Kbuild2
-rw-r--r--ANDROID_3.4.5/include/linux/caif/caif_socket.h194
-rw-r--r--ANDROID_3.4.5/include/linux/caif/if_caif.h34
-rw-r--r--ANDROID_3.4.5/include/linux/can.h109
-rw-r--r--ANDROID_3.4.5/include/linux/can/Kbuild5
-rw-r--r--ANDROID_3.4.5/include/linux/can/bcm.h66
-rw-r--r--ANDROID_3.4.5/include/linux/can/core.h61
-rw-r--r--ANDROID_3.4.5/include/linux/can/dev.h102
-rw-r--r--ANDROID_3.4.5/include/linux/can/error.h91
-rw-r--r--ANDROID_3.4.5/include/linux/can/gw.h162
-rw-r--r--ANDROID_3.4.5/include/linux/can/netlink.h122
-rw-r--r--ANDROID_3.4.5/include/linux/can/platform/cc770.h33
-rw-r--r--ANDROID_3.4.5/include/linux/can/platform/flexcan.h20
-rw-r--r--ANDROID_3.4.5/include/linux/can/platform/mcp251x.h34
-rw-r--r--ANDROID_3.4.5/include/linux/can/platform/sja1000.h35
-rw-r--r--ANDROID_3.4.5/include/linux/can/platform/ti_hecc.h44
-rw-r--r--ANDROID_3.4.5/include/linux/can/raw.h29
-rw-r--r--ANDROID_3.4.5/include/linux/capability.h560
-rw-r--r--ANDROID_3.4.5/include/linux/capi.h133
-rw-r--r--ANDROID_3.4.5/include/linux/cb710.h208
-rw-r--r--ANDROID_3.4.5/include/linux/cciss_defs.h130
-rw-r--r--ANDROID_3.4.5/include/linux/cciss_ioctl.h115
-rw-r--r--ANDROID_3.4.5/include/linux/cd1400.h292
-rw-r--r--ANDROID_3.4.5/include/linux/cdev.h35
-rw-r--r--ANDROID_3.4.5/include/linux/cdk.h486
-rw-r--r--ANDROID_3.4.5/include/linux/cdrom.h1214
-rw-r--r--ANDROID_3.4.5/include/linux/ceph/auth.h92
-rw-r--r--ANDROID_3.4.5/include/linux/ceph/buffer.h39
-rw-r--r--ANDROID_3.4.5/include/linux/ceph/ceph_debug.h38
-rw-r--r--ANDROID_3.4.5/include/linux/ceph/ceph_frag.h109
-rw-r--r--ANDROID_3.4.5/include/linux/ceph/ceph_fs.h751
-rw-r--r--ANDROID_3.4.5/include/linux/ceph/ceph_hash.h13
-rw-r--r--ANDROID_3.4.5/include/linux/ceph/debugfs.h33
-rw-r--r--ANDROID_3.4.5/include/linux/ceph/decode.h202
-rw-r--r--ANDROID_3.4.5/include/linux/ceph/libceph.h252
-rw-r--r--ANDROID_3.4.5/include/linux/ceph/mdsmap.h63
-rw-r--r--ANDROID_3.4.5/include/linux/ceph/messenger.h255
-rw-r--r--ANDROID_3.4.5/include/linux/ceph/mon_client.h122
-rw-r--r--ANDROID_3.4.5/include/linux/ceph/msgpool.h25
-rw-r--r--ANDROID_3.4.5/include/linux/ceph/msgr.h175
-rw-r--r--ANDROID_3.4.5/include/linux/ceph/osd_client.h296
-rw-r--r--ANDROID_3.4.5/include/linux/ceph/osdmap.h130
-rw-r--r--ANDROID_3.4.5/include/linux/ceph/pagelist.h75
-rw-r--r--ANDROID_3.4.5/include/linux/ceph/rados.h426
-rw-r--r--ANDROID_3.4.5/include/linux/ceph/types.h29
-rw-r--r--ANDROID_3.4.5/include/linux/cfag12864b.h82
-rw-r--r--ANDROID_3.4.5/include/linux/cgroup.h627
-rw-r--r--ANDROID_3.4.5/include/linux/cgroup_subsys.h74
-rw-r--r--ANDROID_3.4.5/include/linux/cgroupstats.h71
-rw-r--r--ANDROID_3.4.5/include/linux/chio.h168
-rw-r--r--ANDROID_3.4.5/include/linux/circ_buf.h36
-rw-r--r--ANDROID_3.4.5/include/linux/cleancache.h122
-rw-r--r--ANDROID_3.4.5/include/linux/clk-private.h196
-rw-r--r--ANDROID_3.4.5/include/linux/clk-provider.h300
-rw-r--r--ANDROID_3.4.5/include/linux/clk.h281
-rw-r--r--ANDROID_3.4.5/include/linux/clkdev.h43
-rw-r--r--ANDROID_3.4.5/include/linux/clksrc-dbx500-prcmu.h20
-rw-r--r--ANDROID_3.4.5/include/linux/clockchips.h170
-rw-r--r--ANDROID_3.4.5/include/linux/clocksource.h351
-rw-r--r--ANDROID_3.4.5/include/linux/cm4000_cs.h68
-rw-r--r--ANDROID_3.4.5/include/linux/cn_proc.h155
-rw-r--r--ANDROID_3.4.5/include/linux/cnt32_to_63.h107
-rw-r--r--ANDROID_3.4.5/include/linux/coda.h744
-rw-r--r--ANDROID_3.4.5/include/linux/coda_psdev.h96
-rw-r--r--ANDROID_3.4.5/include/linux/coff.h351
-rw-r--r--ANDROID_3.4.5/include/linux/com20020.h116
-rwxr-xr-xANDROID_3.4.5/include/linux/combo_mt66xx.h25
-rw-r--r--ANDROID_3.4.5/include/linux/compaction.h109
-rw-r--r--ANDROID_3.4.5/include/linux/compat.h599
-rw-r--r--ANDROID_3.4.5/include/linux/compiler-gcc.h112
-rw-r--r--ANDROID_3.4.5/include/linux/compiler-gcc3.h23
-rw-r--r--ANDROID_3.4.5/include/linux/compiler-gcc4.h58
-rw-r--r--ANDROID_3.4.5/include/linux/compiler-intel.h31
-rw-r--r--ANDROID_3.4.5/include/linux/compiler.h313
-rw-r--r--ANDROID_3.4.5/include/linux/completion.h104
-rw-r--r--ANDROID_3.4.5/include/linux/comstats.h119
-rw-r--r--ANDROID_3.4.5/include/linux/concap.h112
-rw-r--r--ANDROID_3.4.5/include/linux/configfs.h260
-rw-r--r--ANDROID_3.4.5/include/linux/connector.h141
-rw-r--r--ANDROID_3.4.5/include/linux/console.h184
-rw-r--r--ANDROID_3.4.5/include/linux/console_struct.h139
-rw-r--r--ANDROID_3.4.5/include/linux/consolemap.h34
-rw-r--r--ANDROID_3.4.5/include/linux/const.h24
-rw-r--r--ANDROID_3.4.5/include/linux/cordic.h48
-rw-r--r--ANDROID_3.4.5/include/linux/coredump.h15
-rw-r--r--ANDROID_3.4.5/include/linux/cper.h394
-rw-r--r--ANDROID_3.4.5/include/linux/cpu.h222
-rw-r--r--ANDROID_3.4.5/include/linux/cpu_pm.h109
-rw-r--r--ANDROID_3.4.5/include/linux/cpu_rmap.h73
-rw-r--r--ANDROID_3.4.5/include/linux/cpufreq.h412
-rw-r--r--ANDROID_3.4.5/include/linux/cpuidle.h237
-rw-r--r--ANDROID_3.4.5/include/linux/cpumask.h937
-rw-r--r--ANDROID_3.4.5/include/linux/cpuset.h238
-rw-r--r--ANDROID_3.4.5/include/linux/cramfs_fs.h94
-rw-r--r--ANDROID_3.4.5/include/linux/cramfs_fs_sb.h20
-rw-r--r--ANDROID_3.4.5/include/linux/crash_dump.h80
-rw-r--r--ANDROID_3.4.5/include/linux/crc-ccitt.h15
-rw-r--r--ANDROID_3.4.5/include/linux/crc-itu-t.h28
-rw-r--r--ANDROID_3.4.5/include/linux/crc-t10dif.h8
-rw-r--r--ANDROID_3.4.5/include/linux/crc16.h30
-rw-r--r--ANDROID_3.4.5/include/linux/crc32.h29
-rw-r--r--ANDROID_3.4.5/include/linux/crc32c.h11
-rw-r--r--ANDROID_3.4.5/include/linux/crc7.h14
-rw-r--r--ANDROID_3.4.5/include/linux/crc8.h101
-rw-r--r--ANDROID_3.4.5/include/linux/cred.h394
-rw-r--r--ANDROID_3.4.5/include/linux/crush/crush.h180
-rw-r--r--ANDROID_3.4.5/include/linux/crush/hash.h17
-rw-r--r--ANDROID_3.4.5/include/linux/crush/mapper.h20
-rw-r--r--ANDROID_3.4.5/include/linux/crypto.h1287
-rw-r--r--ANDROID_3.4.5/include/linux/cryptohash.h18
-rw-r--r--ANDROID_3.4.5/include/linux/cryptouser.h105
-rw-r--r--ANDROID_3.4.5/include/linux/cs5535.h238
-rw-r--r--ANDROID_3.4.5/include/linux/ctype.h64
-rw-r--r--ANDROID_3.4.5/include/linux/cuda.h41
-rw-r--r--ANDROID_3.4.5/include/linux/cyclades.h784
-rw-r--r--ANDROID_3.4.5/include/linux/cyclomx.h77
-rw-r--r--ANDROID_3.4.5/include/linux/cycx_cfm.h101
-rw-r--r--ANDROID_3.4.5/include/linux/cycx_drv.h64
-rw-r--r--ANDROID_3.4.5/include/linux/cycx_x25.h125
-rw-r--r--ANDROID_3.4.5/include/linux/davinci_emac.h50
-rw-r--r--ANDROID_3.4.5/include/linux/dca.h81
-rw-r--r--ANDROID_3.4.5/include/linux/dcache.h403
-rw-r--r--ANDROID_3.4.5/include/linux/dcbnl.h672
-rw-r--r--ANDROID_3.4.5/include/linux/dccp.h554
-rw-r--r--ANDROID_3.4.5/include/linux/dcookies.h68
-rw-r--r--ANDROID_3.4.5/include/linux/debug_locks.h75
-rw-r--r--ANDROID_3.4.5/include/linux/debugfs.h224
-rw-r--r--ANDROID_3.4.5/include/linux/debugobjects.h110
-rw-r--r--ANDROID_3.4.5/include/linux/decompress/bunzip2.h10
-rw-r--r--ANDROID_3.4.5/include/linux/decompress/generic.h39
-rw-r--r--ANDROID_3.4.5/include/linux/decompress/inflate.h10
-rw-r--r--ANDROID_3.4.5/include/linux/decompress/mm.h93
-rwxr-xr-xANDROID_3.4.5/include/linux/decompress/unlz4.h10
-rw-r--r--ANDROID_3.4.5/include/linux/decompress/unlzma.h12
-rw-r--r--ANDROID_3.4.5/include/linux/decompress/unlzo.h10
-rw-r--r--ANDROID_3.4.5/include/linux/decompress/unxz.h19
-rw-r--r--ANDROID_3.4.5/include/linux/delay.h55
-rw-r--r--ANDROID_3.4.5/include/linux/delayacct.h153
-rw-r--r--ANDROID_3.4.5/include/linux/devfreq.h253
-rw-r--r--ANDROID_3.4.5/include/linux/device-mapper.h514
-rw-r--r--ANDROID_3.4.5/include/linux/device.h1021
-rw-r--r--ANDROID_3.4.5/include/linux/device_cgroup.h19
-rw-r--r--ANDROID_3.4.5/include/linux/devpts_fs.h49
-rw-r--r--ANDROID_3.4.5/include/linux/digsig.h64
-rw-r--r--ANDROID_3.4.5/include/linux/dio.h280
-rw-r--r--ANDROID_3.4.5/include/linux/dirent.h12
-rw-r--r--ANDROID_3.4.5/include/linux/dlm.h233
-rw-r--r--ANDROID_3.4.5/include/linux/dlm_device.h108
-rw-r--r--ANDROID_3.4.5/include/linux/dlm_netlink.h58
-rw-r--r--ANDROID_3.4.5/include/linux/dlm_plock.h54
-rw-r--r--ANDROID_3.4.5/include/linux/dlmconstants.h163
-rw-r--r--ANDROID_3.4.5/include/linux/dm-dirty-log.h146
-rw-r--r--ANDROID_3.4.5/include/linux/dm-io.h84
-rw-r--r--ANDROID_3.4.5/include/linux/dm-ioctl.h337
-rw-r--r--ANDROID_3.4.5/include/linux/dm-kcopyd.h65
-rw-r--r--ANDROID_3.4.5/include/linux/dm-log-userspace.h416
-rw-r--r--ANDROID_3.4.5/include/linux/dm-region-hash.h103
-rw-r--r--ANDROID_3.4.5/include/linux/dm9000.h40
-rw-r--r--ANDROID_3.4.5/include/linux/dma-attrs.h77
-rw-r--r--ANDROID_3.4.5/include/linux/dma-buf.h269
-rw-r--r--ANDROID_3.4.5/include/linux/dma-debug.h181
-rw-r--r--ANDROID_3.4.5/include/linux/dma-direction.h13
-rw-r--r--ANDROID_3.4.5/include/linux/dma-mapping.h237
-rw-r--r--ANDROID_3.4.5/include/linux/dma_remapping.h52
-rw-r--r--ANDROID_3.4.5/include/linux/dmaengine.h1002
-rw-r--r--ANDROID_3.4.5/include/linux/dmapool.h35
-rw-r--r--ANDROID_3.4.5/include/linux/dmar.h264
-rw-r--r--ANDROID_3.4.5/include/linux/dmi.h139
-rw-r--r--ANDROID_3.4.5/include/linux/dn.h146
-rw-r--r--ANDROID_3.4.5/include/linux/dnotify.h50
-rw-r--r--ANDROID_3.4.5/include/linux/dns_resolver.h34
-rw-r--r--ANDROID_3.4.5/include/linux/dqblk_qtree.h56
-rw-r--r--ANDROID_3.4.5/include/linux/dqblk_v1.h17
-rw-r--r--ANDROID_3.4.5/include/linux/dqblk_v2.h16
-rw-r--r--ANDROID_3.4.5/include/linux/dqblk_xfs.h166
-rw-r--r--ANDROID_3.4.5/include/linux/drbd.h369
-rw-r--r--ANDROID_3.4.5/include/linux/drbd_limits.h168
-rw-r--r--ANDROID_3.4.5/include/linux/drbd_nl.h160
-rw-r--r--ANDROID_3.4.5/include/linux/drbd_tag_magic.h84
-rw-r--r--ANDROID_3.4.5/include/linux/ds1286.h52
-rw-r--r--ANDROID_3.4.5/include/linux/ds17287rtc.h66
-rw-r--r--ANDROID_3.4.5/include/linux/ds2782_battery.h8
-rw-r--r--ANDROID_3.4.5/include/linux/dtlk.h85
-rw-r--r--ANDROID_3.4.5/include/linux/dvb/Kbuild8
-rw-r--r--ANDROID_3.4.5/include/linux/dvb/audio.h135
-rw-r--r--ANDROID_3.4.5/include/linux/dvb/ca.h90
-rw-r--r--ANDROID_3.4.5/include/linux/dvb/dmx.h157
-rw-r--r--ANDROID_3.4.5/include/linux/dvb/frontend.h436
-rw-r--r--ANDROID_3.4.5/include/linux/dvb/net.h52
-rw-r--r--ANDROID_3.4.5/include/linux/dvb/osd.h144
-rw-r--r--ANDROID_3.4.5/include/linux/dvb/version.h29
-rw-r--r--ANDROID_3.4.5/include/linux/dvb/video.h276
-rw-r--r--ANDROID_3.4.5/include/linux/dw_apb_timer.h56
-rw-r--r--ANDROID_3.4.5/include/linux/dw_dmac.h101
-rw-r--r--ANDROID_3.4.5/include/linux/dynamic_debug.h108
-rw-r--r--ANDROID_3.4.5/include/linux/dynamic_queue_limits.h97
-rw-r--r--ANDROID_3.4.5/include/linux/ecryptfs.h113
-rw-r--r--ANDROID_3.4.5/include/linux/edac.h476
-rw-r--r--ANDROID_3.4.5/include/linux/edd.h194
-rw-r--r--ANDROID_3.4.5/include/linux/eeprom_93cx6.h82
-rw-r--r--ANDROID_3.4.5/include/linux/eeprom_93xx46.h18
-rw-r--r--ANDROID_3.4.5/include/linux/efi.h665
-rw-r--r--ANDROID_3.4.5/include/linux/efs_fs_sb.h62
-rw-r--r--ANDROID_3.4.5/include/linux/efs_vh.h53
-rw-r--r--ANDROID_3.4.5/include/linux/eisa.h111
-rw-r--r--ANDROID_3.4.5/include/linux/elevator.h208
-rw-r--r--ANDROID_3.4.5/include/linux/elf-em.h56
-rw-r--r--ANDROID_3.4.5/include/linux/elf-fdpic.h70
-rw-r--r--ANDROID_3.4.5/include/linux/elf.h449
-rw-r--r--ANDROID_3.4.5/include/linux/elfcore-compat.h55
-rw-r--r--ANDROID_3.4.5/include/linux/elfcore.h172
-rw-r--r--ANDROID_3.4.5/include/linux/elfnote.h98
-rw-r--r--ANDROID_3.4.5/include/linux/enclosure.h133
-rw-r--r--ANDROID_3.4.5/include/linux/err.h65
-rw-r--r--ANDROID_3.4.5/include/linux/errno.h35
-rw-r--r--ANDROID_3.4.5/include/linux/errqueue.h48
-rw-r--r--ANDROID_3.4.5/include/linux/etherdevice.h280
-rw-r--r--ANDROID_3.4.5/include/linux/ethtool.h1210
-rw-r--r--ANDROID_3.4.5/include/linux/eventfd.h83
-rw-r--r--ANDROID_3.4.5/include/linux/eventpoll.h121
-rw-r--r--ANDROID_3.4.5/include/linux/evm.h100
-rw-r--r--ANDROID_3.4.5/include/linux/export.h89
-rw-r--r--ANDROID_3.4.5/include/linux/exportfs.h196
-rw-r--r--ANDROID_3.4.5/include/linux/ext2_fs.h42
-rw-r--r--ANDROID_3.4.5/include/linux/f75375s.h21
-rw-r--r--ANDROID_3.4.5/include/linux/fadvise.h21
-rw-r--r--ANDROID_3.4.5/include/linux/falloc.h28
-rw-r--r--ANDROID_3.4.5/include/linux/fanotify.h120
-rw-r--r--ANDROID_3.4.5/include/linux/fault-inject.h69
-rw-r--r--ANDROID_3.4.5/include/linux/fb.h1181
-rw-r--r--ANDROID_3.4.5/include/linux/fcdevice.h33
-rw-r--r--ANDROID_3.4.5/include/linux/fcntl.h79
-rw-r--r--ANDROID_3.4.5/include/linux/fd.h402
-rw-r--r--ANDROID_3.4.5/include/linux/fddidevice.h34
-rw-r--r--ANDROID_3.4.5/include/linux/fdreg.h137
-rw-r--r--ANDROID_3.4.5/include/linux/fdtable.h130
-rw-r--r--ANDROID_3.4.5/include/linux/fec.h24
-rw-r--r--ANDROID_3.4.5/include/linux/fib_rules.h72
-rw-r--r--ANDROID_3.4.5/include/linux/fiemap.h68
-rw-r--r--ANDROID_3.4.5/include/linux/file.h42
-rw-r--r--ANDROID_3.4.5/include/linux/filter.h235
-rw-r--r--ANDROID_3.4.5/include/linux/fips.h10
-rw-r--r--ANDROID_3.4.5/include/linux/firewire-cdev.h1039
-rw-r--r--ANDROID_3.4.5/include/linux/firewire-constants.h92
-rw-r--r--ANDROID_3.4.5/include/linux/firewire.h440
-rw-r--r--ANDROID_3.4.5/include/linux/firmware-map.h43
-rw-r--r--ANDROID_3.4.5/include/linux/firmware.h67
-rw-r--r--ANDROID_3.4.5/include/linux/flat.h100
-rw-r--r--ANDROID_3.4.5/include/linux/flex_array.h80
-rw-r--r--ANDROID_3.4.5/include/linux/font.h58
-rw-r--r--ANDROID_3.4.5/include/linux/freezer.h214
-rw-r--r--ANDROID_3.4.5/include/linux/fs.h2676
-rw-r--r--ANDROID_3.4.5/include/linux/fs_enet_pd.h162
-rw-r--r--ANDROID_3.4.5/include/linux/fs_stack.h29
-rw-r--r--ANDROID_3.4.5/include/linux/fs_struct.h54
-rw-r--r--ANDROID_3.4.5/include/linux/fs_uart_pd.h71
-rw-r--r--ANDROID_3.4.5/include/linux/fscache-cache.h516
-rw-r--r--ANDROID_3.4.5/include/linux/fscache.h667
-rw-r--r--ANDROID_3.4.5/include/linux/fsl-diu-fb.h164
-rw-r--r--ANDROID_3.4.5/include/linux/fsl/mxs-dma.h28
-rw-r--r--ANDROID_3.4.5/include/linux/fsl_devices.h138
-rw-r--r--ANDROID_3.4.5/include/linux/fsl_hypervisor.h241
-rw-r--r--ANDROID_3.4.5/include/linux/fsnotify.h342
-rw-r--r--ANDROID_3.4.5/include/linux/fsnotify_backend.h470
-rw-r--r--ANDROID_3.4.5/include/linux/ftrace.h687
-rw-r--r--ANDROID_3.4.5/include/linux/ftrace_event.h312
-rw-r--r--ANDROID_3.4.5/include/linux/ftrace_irq.h13
-rw-r--r--ANDROID_3.4.5/include/linux/fuse.h648
-rw-r--r--ANDROID_3.4.5/include/linux/futex.h215
-rw-r--r--ANDROID_3.4.5/include/linux/gameport.h226
-rw-r--r--ANDROID_3.4.5/include/linux/gcd.h8
-rw-r--r--ANDROID_3.4.5/include/linux/gen_stats.h67
-rw-r--r--ANDROID_3.4.5/include/linux/genalloc.h81
-rw-r--r--ANDROID_3.4.5/include/linux/generic_acl.h14
-rw-r--r--ANDROID_3.4.5/include/linux/generic_serial.h95
-rw-r--r--ANDROID_3.4.5/include/linux/genetlink.h115
-rw-r--r--ANDROID_3.4.5/include/linux/genhd.h663
-rw-r--r--ANDROID_3.4.5/include/linux/getcpu.h18
-rw-r--r--ANDROID_3.4.5/include/linux/gfp.h394
-rw-r--r--ANDROID_3.4.5/include/linux/gfs2_ondisk.h452
-rw-r--r--ANDROID_3.4.5/include/linux/gigaset_dev.h38
-rw-r--r--ANDROID_3.4.5/include/linux/gpio-fan.h36
-rw-r--r--ANDROID_3.4.5/include/linux/gpio-i2cmux.h38
-rw-r--r--ANDROID_3.4.5/include/linux/gpio-pxa.h20
-rw-r--r--ANDROID_3.4.5/include/linux/gpio.h177
-rw-r--r--ANDROID_3.4.5/include/linux/gpio_event.h170
-rw-r--r--ANDROID_3.4.5/include/linux/gpio_keys.h31
-rw-r--r--ANDROID_3.4.5/include/linux/gpio_mouse.h61
-rw-r--r--ANDROID_3.4.5/include/linux/gsmmux.h36
-rw-r--r--ANDROID_3.4.5/include/linux/hardirq.h210
-rw-r--r--ANDROID_3.4.5/include/linux/hash.h70
-rw-r--r--ANDROID_3.4.5/include/linux/hdlc.h131
-rw-r--r--ANDROID_3.4.5/include/linux/hdlc/Kbuild1
-rw-r--r--ANDROID_3.4.5/include/linux/hdlc/ioctl.h81
-rw-r--r--ANDROID_3.4.5/include/linux/hdlcdrv.h377
-rw-r--r--ANDROID_3.4.5/include/linux/hdreg.h658
-rw-r--r--ANDROID_3.4.5/include/linux/hid-debug.h65
-rw-r--r--ANDROID_3.4.5/include/linux/hid-roccat.h29
-rw-r--r--ANDROID_3.4.5/include/linux/hid.h949
-rw-r--r--ANDROID_3.4.5/include/linux/hiddev.h240
-rw-r--r--ANDROID_3.4.5/include/linux/hidraw.h92
-rw-r--r--ANDROID_3.4.5/include/linux/highmem.h287
-rw-r--r--ANDROID_3.4.5/include/linux/highuid.h97
-rw-r--r--ANDROID_3.4.5/include/linux/hil.h483
-rw-r--r--ANDROID_3.4.5/include/linux/hil_mlc.h168
-rw-r--r--ANDROID_3.4.5/include/linux/hippidevice.h41
-rw-r--r--ANDROID_3.4.5/include/linux/hp_sdc.h301
-rw-r--r--ANDROID_3.4.5/include/linux/hpet.h131
-rw-r--r--ANDROID_3.4.5/include/linux/hrtimer.h453
-rw-r--r--ANDROID_3.4.5/include/linux/hsi/Kbuild1
-rw-r--r--ANDROID_3.4.5/include/linux/hsi/hsi.h413
-rw-r--r--ANDROID_3.4.5/include/linux/hsi/hsi_char.h63
-rw-r--r--ANDROID_3.4.5/include/linux/htcpld.h24
-rw-r--r--ANDROID_3.4.5/include/linux/htirq.h24
-rw-r--r--ANDROID_3.4.5/include/linux/huge_mm.h199
-rw-r--r--ANDROID_3.4.5/include/linux/hugetlb.h317
-rw-r--r--ANDROID_3.4.5/include/linux/hugetlb_inline.h22
-rw-r--r--ANDROID_3.4.5/include/linux/hw_breakpoint.h156
-rw-r--r--ANDROID_3.4.5/include/linux/hw_random.h51
-rw-r--r--ANDROID_3.4.5/include/linux/hwmon-sysfs.h57
-rw-r--r--ANDROID_3.4.5/include/linux/hwmon-vid.h45
-rw-r--r--ANDROID_3.4.5/include/linux/hwmon.h35
-rw-r--r--ANDROID_3.4.5/include/linux/hwspinlock.h313
-rw-r--r--ANDROID_3.4.5/include/linux/hyperv.h1046
-rw-r--r--ANDROID_3.4.5/include/linux/hysdn_if.h33
-rw-r--r--ANDROID_3.4.5/include/linux/i2c-algo-bit.h55
-rw-r--r--ANDROID_3.4.5/include/linux/i2c-algo-pca.h70
-rw-r--r--ANDROID_3.4.5/include/linux/i2c-algo-pcf.h49
-rw-r--r--ANDROID_3.4.5/include/linux/i2c-dev.h75
-rw-r--r--ANDROID_3.4.5/include/linux/i2c-gpio.h38
-rw-r--r--ANDROID_3.4.5/include/linux/i2c-mux.h47
-rw-r--r--ANDROID_3.4.5/include/linux/i2c-ocores.h21
-rw-r--r--ANDROID_3.4.5/include/linux/i2c-omap.h40
-rw-r--r--ANDROID_3.4.5/include/linux/i2c-pca-platform.h12
-rw-r--r--ANDROID_3.4.5/include/linux/i2c-pnx.h42
-rw-r--r--ANDROID_3.4.5/include/linux/i2c-pxa.h17
-rw-r--r--ANDROID_3.4.5/include/linux/i2c-smbus.h51
-rw-r--r--ANDROID_3.4.5/include/linux/i2c-tegra.h25
-rw-r--r--ANDROID_3.4.5/include/linux/i2c-xiic.h43
-rw-r--r--ANDROID_3.4.5/include/linux/i2c.h619
-rw-r--r--ANDROID_3.4.5/include/linux/i2c/adp5588.h171
-rw-r--r--ANDROID_3.4.5/include/linux/i2c/adp8860.h154
-rw-r--r--ANDROID_3.4.5/include/linux/i2c/adp8870.h153
-rw-r--r--ANDROID_3.4.5/include/linux/i2c/ads1015.h36
-rw-r--r--ANDROID_3.4.5/include/linux/i2c/apds990x.h79
-rw-r--r--ANDROID_3.4.5/include/linux/i2c/at24.h55
-rw-r--r--ANDROID_3.4.5/include/linux/i2c/atmel_mxt_ts.h44
-rw-r--r--ANDROID_3.4.5/include/linux/i2c/bh1770glc.h53
-rw-r--r--ANDROID_3.4.5/include/linux/i2c/dm355evm_msp.h79
-rw-r--r--ANDROID_3.4.5/include/linux/i2c/ds620.h21
-rw-r--r--ANDROID_3.4.5/include/linux/i2c/i2c-sh_mobile.h10
-rw-r--r--ANDROID_3.4.5/include/linux/i2c/lm8323.h46
-rw-r--r--ANDROID_3.4.5/include/linux/i2c/ltc4245.h21
-rw-r--r--ANDROID_3.4.5/include/linux/i2c/max6639.h14
-rw-r--r--ANDROID_3.4.5/include/linux/i2c/max732x.h22
-rw-r--r--ANDROID_3.4.5/include/linux/i2c/mcs.h35
-rw-r--r--ANDROID_3.4.5/include/linux/i2c/mpr121_touchkey.h20
-rw-r--r--ANDROID_3.4.5/include/linux/i2c/pca953x.h30
-rw-r--r--ANDROID_3.4.5/include/linux/i2c/pca954x.h47
-rw-r--r--ANDROID_3.4.5/include/linux/i2c/pcf857x.h44
-rw-r--r--ANDROID_3.4.5/include/linux/i2c/pmbus.h45
-rw-r--r--ANDROID_3.4.5/include/linux/i2c/pxa-i2c.h82
-rw-r--r--ANDROID_3.4.5/include/linux/i2c/s6000.h10
-rw-r--r--ANDROID_3.4.5/include/linux/i2c/sx150x.h82
-rw-r--r--ANDROID_3.4.5/include/linux/i2c/tc35876x.h11
-rw-r--r--ANDROID_3.4.5/include/linux/i2c/tps65010.h205
-rw-r--r--ANDROID_3.4.5/include/linux/i2c/tsc2007.h24
-rw-r--r--ANDROID_3.4.5/include/linux/i2c/twl.h846
-rw-r--r--ANDROID_3.4.5/include/linux/i2c/twl4030-madc.h145
-rw-r--r--ANDROID_3.4.5/include/linux/i2o-dev.h421
-rw-r--r--ANDROID_3.4.5/include/linux/i2o.h988
-rw-r--r--ANDROID_3.4.5/include/linux/i7300_idle.h83
-rw-r--r--ANDROID_3.4.5/include/linux/i8042.h81
-rw-r--r--ANDROID_3.4.5/include/linux/i8253.h29
-rw-r--r--ANDROID_3.4.5/include/linux/i82593.h229
-rw-r--r--ANDROID_3.4.5/include/linux/i8k.h46
-rw-r--r--ANDROID_3.4.5/include/linux/ibmtr.h373
-rw-r--r--ANDROID_3.4.5/include/linux/icmp.h105
-rw-r--r--ANDROID_3.4.5/include/linux/icmpv6.h196
-rw-r--r--ANDROID_3.4.5/include/linux/ide.h1558
-rw-r--r--ANDROID_3.4.5/include/linux/idr.h155
-rw-r--r--ANDROID_3.4.5/include/linux/ieee80211.h1878
-rw-r--r--ANDROID_3.4.5/include/linux/if.h233
-rw-r--r--ANDROID_3.4.5/include/linux/if_addr.h61
-rw-r--r--ANDROID_3.4.5/include/linux/if_addrlabel.h32
-rw-r--r--ANDROID_3.4.5/include/linux/if_alg.h40
-rw-r--r--ANDROID_3.4.5/include/linux/if_arcnet.h132
-rw-r--r--ANDROID_3.4.5/include/linux/if_arp.h171
-rw-r--r--ANDROID_3.4.5/include/linux/if_bonding.h128
-rw-r--r--ANDROID_3.4.5/include/linux/if_bridge.h111
-rw-r--r--ANDROID_3.4.5/include/linux/if_cablemodem.h22
-rw-r--r--ANDROID_3.4.5/include/linux/if_ec.h68
-rw-r--r--ANDROID_3.4.5/include/linux/if_eql.h83
-rw-r--r--ANDROID_3.4.5/include/linux/if_ether.h148
-rw-r--r--ANDROID_3.4.5/include/linux/if_fc.h51
-rw-r--r--ANDROID_3.4.5/include/linux/if_fddi.h199
-rw-r--r--ANDROID_3.4.5/include/linux/if_frad.h193
-rw-r--r--ANDROID_3.4.5/include/linux/if_hippi.h153
-rw-r--r--ANDROID_3.4.5/include/linux/if_infiniband.h29
-rw-r--r--ANDROID_3.4.5/include/linux/if_link.h394
-rw-r--r--ANDROID_3.4.5/include/linux/if_ltalk.h12
-rw-r--r--ANDROID_3.4.5/include/linux/if_macvlan.h108
-rw-r--r--ANDROID_3.4.5/include/linux/if_packet.h272
-rw-r--r--ANDROID_3.4.5/include/linux/if_phonet.h19
-rw-r--r--ANDROID_3.4.5/include/linux/if_plip.h27
-rw-r--r--ANDROID_3.4.5/include/linux/if_ppp.h1
-rw-r--r--ANDROID_3.4.5/include/linux/if_pppol2tp.h82
-rw-r--r--ANDROID_3.4.5/include/linux/if_pppolac.h33
-rw-r--r--ANDROID_3.4.5/include/linux/if_pppopns.h32
-rw-r--r--ANDROID_3.4.5/include/linux/if_pppox.h250
-rw-r--r--ANDROID_3.4.5/include/linux/if_slip.h30
-rw-r--r--ANDROID_3.4.5/include/linux/if_strip.h27
-rw-r--r--ANDROID_3.4.5/include/linux/if_team.h252
-rw-r--r--ANDROID_3.4.5/include/linux/if_tr.h103
-rw-r--r--ANDROID_3.4.5/include/linux/if_tun.h108
-rw-r--r--ANDROID_3.4.5/include/linux/if_tunnel.h83
-rw-r--r--ANDROID_3.4.5/include/linux/if_vlan.h407
-rw-r--r--ANDROID_3.4.5/include/linux/if_x25.h26
-rw-r--r--ANDROID_3.4.5/include/linux/igmp.h244
-rw-r--r--ANDROID_3.4.5/include/linux/ihex.h74
-rw-r--r--ANDROID_3.4.5/include/linux/ima.h43
-rw-r--r--ANDROID_3.4.5/include/linux/in.h337
-rw-r--r--ANDROID_3.4.5/include/linux/in6.h291
-rw-r--r--ANDROID_3.4.5/include/linux/in_route.h32
-rw-r--r--ANDROID_3.4.5/include/linux/inet.h57
-rw-r--r--ANDROID_3.4.5/include/linux/inet_diag.h177
-rw-r--r--ANDROID_3.4.5/include/linux/inet_lro.h165
-rw-r--r--ANDROID_3.4.5/include/linux/inetdevice.h259
-rw-r--r--ANDROID_3.4.5/include/linux/init.h350
-rw-r--r--ANDROID_3.4.5/include/linux/init_ohci1394_dma.h4
-rw-r--r--ANDROID_3.4.5/include/linux/init_task.h217
-rw-r--r--ANDROID_3.4.5/include/linux/initrd.h20
-rw-r--r--ANDROID_3.4.5/include/linux/inotify.h87
-rw-r--r--ANDROID_3.4.5/include/linux/input-polldev.h58
-rw-r--r--ANDROID_3.4.5/include/linux/input.h1656
-rw-r--r--ANDROID_3.4.5/include/linux/input/ad714x.h64
-rw-r--r--ANDROID_3.4.5/include/linux/input/adp5589.h188
-rw-r--r--ANDROID_3.4.5/include/linux/input/adxl34x.h356
-rw-r--r--ANDROID_3.4.5/include/linux/input/as5011.h20
-rw-r--r--ANDROID_3.4.5/include/linux/input/auo-pixcir-ts.h56
-rw-r--r--ANDROID_3.4.5/include/linux/input/bu21013.h40
-rw-r--r--ANDROID_3.4.5/include/linux/input/cma3000.h59
-rw-r--r--ANDROID_3.4.5/include/linux/input/cy8ctmg110_pdata.h10
-rw-r--r--ANDROID_3.4.5/include/linux/input/cyttsp.h58
-rw-r--r--ANDROID_3.4.5/include/linux/input/eeti_ts.h9
-rw-r--r--ANDROID_3.4.5/include/linux/input/gp2ap002a00f.h22
-rw-r--r--ANDROID_3.4.5/include/linux/input/gpio_tilt.h73
-rw-r--r--ANDROID_3.4.5/include/linux/input/ili210x.h10
-rw-r--r--ANDROID_3.4.5/include/linux/input/kxtj9.h61
-rw-r--r--ANDROID_3.4.5/include/linux/input/matrix_keypad.h128
-rw-r--r--ANDROID_3.4.5/include/linux/input/mt.h67
-rw-r--r--ANDROID_3.4.5/include/linux/input/pixcir_ts.h10
-rw-r--r--ANDROID_3.4.5/include/linux/input/pmic8xxx-keypad.h52
-rw-r--r--ANDROID_3.4.5/include/linux/input/pmic8xxx-pwrkey.h31
-rw-r--r--ANDROID_3.4.5/include/linux/input/samsung-keypad.h43
-rw-r--r--ANDROID_3.4.5/include/linux/input/sh_keysc.h15
-rw-r--r--ANDROID_3.4.5/include/linux/input/sparse-keymap.h62
-rw-r--r--ANDROID_3.4.5/include/linux/input/tca8418_keypad.h44
-rw-r--r--ANDROID_3.4.5/include/linux/input/ti_tscadc.h17
-rw-r--r--ANDROID_3.4.5/include/linux/input/tps6507x-ts.h24
-rw-r--r--ANDROID_3.4.5/include/linux/integrity.h39
-rw-r--r--ANDROID_3.4.5/include/linux/intel-iommu.h366
-rw-r--r--ANDROID_3.4.5/include/linux/intel_mid_dma.h76
-rw-r--r--ANDROID_3.4.5/include/linux/intel_pmic_gpio.h15
-rw-r--r--ANDROID_3.4.5/include/linux/interrupt.h703
-rw-r--r--ANDROID_3.4.5/include/linux/io-mapping.h168
-rw-r--r--ANDROID_3.4.5/include/linux/io.h70
-rw-r--r--ANDROID_3.4.5/include/linux/ioc3.h93
-rw-r--r--ANDROID_3.4.5/include/linux/ioc4.h184
-rw-r--r--ANDROID_3.4.5/include/linux/iocontext.h152
-rw-r--r--ANDROID_3.4.5/include/linux/ioctl.h7
-rw-r--r--ANDROID_3.4.5/include/linux/iommu-helper.h34
-rw-r--r--ANDROID_3.4.5/include/linux/iommu.h205
-rw-r--r--ANDROID_3.4.5/include/linux/ion.h356
-rw-r--r--ANDROID_3.4.5/include/linux/ioport.h227
-rw-r--r--ANDROID_3.4.5/include/linux/ioprio.h91
-rw-r--r--ANDROID_3.4.5/include/linux/iova.h51
-rw-r--r--ANDROID_3.4.5/include/linux/ip.h149
-rw-r--r--ANDROID_3.4.5/include/linux/ip6_tunnel.h34
-rw-r--r--ANDROID_3.4.5/include/linux/ip_vs.h429
-rw-r--r--ANDROID_3.4.5/include/linux/ipc.h103
-rw-r--r--ANDROID_3.4.5/include/linux/ipc_namespace.h146
-rw-r--r--ANDROID_3.4.5/include/linux/ipmi.h736
-rw-r--r--ANDROID_3.4.5/include/linux/ipmi_msgdefs.h121
-rw-r--r--ANDROID_3.4.5/include/linux/ipmi_smi.h242
-rw-r--r--ANDROID_3.4.5/include/linux/ipsec.h47
-rw-r--r--ANDROID_3.4.5/include/linux/ipv6.h544
-rw-r--r--ANDROID_3.4.5/include/linux/ipv6_route.h62
-rw-r--r--ANDROID_3.4.5/include/linux/ipx.h75
-rw-r--r--ANDROID_3.4.5/include/linux/irda.h251
-rw-r--r--ANDROID_3.4.5/include/linux/irq.h752
-rw-r--r--ANDROID_3.4.5/include/linux/irq_cpustat.h31
-rw-r--r--ANDROID_3.4.5/include/linux/irq_work.h23
-rw-r--r--ANDROID_3.4.5/include/linux/irqdesc.h178
-rw-r--r--ANDROID_3.4.5/include/linux/irqdomain.h186
-rw-r--r--ANDROID_3.4.5/include/linux/irqflags.h150
-rw-r--r--ANDROID_3.4.5/include/linux/irqnr.h62
-rw-r--r--ANDROID_3.4.5/include/linux/irqreturn.h19
-rw-r--r--ANDROID_3.4.5/include/linux/isa.h39
-rw-r--r--ANDROID_3.4.5/include/linux/isapnp.h125
-rw-r--r--ANDROID_3.4.5/include/linux/iscsi_boot_sysfs.h133
-rw-r--r--ANDROID_3.4.5/include/linux/iscsi_ibft.h46
-rw-r--r--ANDROID_3.4.5/include/linux/isdn.h622
-rw-r--r--ANDROID_3.4.5/include/linux/isdn/Kbuild1
-rw-r--r--ANDROID_3.4.5/include/linux/isdn/capicmd.h115
-rw-r--r--ANDROID_3.4.5/include/linux/isdn/capilli.h113
-rw-r--r--ANDROID_3.4.5/include/linux/isdn/capiutil.h521
-rw-r--r--ANDROID_3.4.5/include/linux/isdn/hdlc.h82
-rw-r--r--ANDROID_3.4.5/include/linux/isdn_divertif.h51
-rw-r--r--ANDROID_3.4.5/include/linux/isdn_ppp.h248
-rw-r--r--ANDROID_3.4.5/include/linux/isdnif.h546
-rw-r--r--ANDROID_3.4.5/include/linux/isicom.h84
-rw-r--r--ANDROID_3.4.5/include/linux/iso_fs.h165
-rw-r--r--ANDROID_3.4.5/include/linux/istallion.h123
-rw-r--r--ANDROID_3.4.5/include/linux/ivtv.h73
-rw-r--r--ANDROID_3.4.5/include/linux/ivtvfb.h37
-rw-r--r--ANDROID_3.4.5/include/linux/ixjuser.h720
-rw-r--r--ANDROID_3.4.5/include/linux/jbd.h1031
-rw-r--r--ANDROID_3.4.5/include/linux/jbd2.h1282
-rw-r--r--ANDROID_3.4.5/include/linux/jbd_common.h68
-rw-r--r--ANDROID_3.4.5/include/linux/jffs2.h223
-rw-r--r--ANDROID_3.4.5/include/linux/jhash.h170
-rw-r--r--ANDROID_3.4.5/include/linux/jiffies.h315
-rw-r--r--ANDROID_3.4.5/include/linux/journal-head.h109
-rw-r--r--ANDROID_3.4.5/include/linux/joystick.h145
-rw-r--r--ANDROID_3.4.5/include/linux/jump_label.h226
-rw-r--r--ANDROID_3.4.5/include/linux/jz4740-adc.h32
-rw-r--r--ANDROID_3.4.5/include/linux/kallsyms.h121
-rw-r--r--ANDROID_3.4.5/include/linux/kbd_diacr.h8
-rw-r--r--ANDROID_3.4.5/include/linux/kbd_kern.h160
-rw-r--r--ANDROID_3.4.5/include/linux/kbuild.h15
-rw-r--r--ANDROID_3.4.5/include/linux/kconfig.h46
-rw-r--r--ANDROID_3.4.5/include/linux/kd.h186
-rw-r--r--ANDROID_3.4.5/include/linux/kdb.h169
-rw-r--r--ANDROID_3.4.5/include/linux/kdebug.h22
-rw-r--r--ANDROID_3.4.5/include/linux/kdev_t.h100
-rw-r--r--ANDROID_3.4.5/include/linux/kernel-page-flags.h51
-rw-r--r--ANDROID_3.4.5/include/linux/kernel.h713
-rw-r--r--ANDROID_3.4.5/include/linux/kernel_stat.h133
-rw-r--r--ANDROID_3.4.5/include/linux/kernelcapi.h155
-rw-r--r--ANDROID_3.4.5/include/linux/kexec.h231
-rw-r--r--ANDROID_3.4.5/include/linux/key-type.h125
-rw-r--r--ANDROID_3.4.5/include/linux/key.h334
-rw-r--r--ANDROID_3.4.5/include/linux/keyboard.h459
-rw-r--r--ANDROID_3.4.5/include/linux/keychord.h52
-rw-r--r--ANDROID_3.4.5/include/linux/keyctl.h59
-rw-r--r--ANDROID_3.4.5/include/linux/keyreset.h28
-rw-r--r--ANDROID_3.4.5/include/linux/kfifo.h852
-rw-r--r--ANDROID_3.4.5/include/linux/kgdb.h313
-rw-r--r--ANDROID_3.4.5/include/linux/khugepaged.h67
-rw-r--r--ANDROID_3.4.5/include/linux/klist.h68
-rw-r--r--ANDROID_3.4.5/include/linux/kmalloc_sizes.h45
-rw-r--r--ANDROID_3.4.5/include/linux/kmemcheck.h171
-rw-r--r--ANDROID_3.4.5/include/linux/kmemleak.h106
-rw-r--r--ANDROID_3.4.5/include/linux/kmod.h138
-rw-r--r--ANDROID_3.4.5/include/linux/kmsg_dump.h70
-rw-r--r--ANDROID_3.4.5/include/linux/kobj_map.h19
-rw-r--r--ANDROID_3.4.5/include/linux/kobject.h234
-rw-r--r--ANDROID_3.4.5/include/linux/kobject_ns.h58
-rw-r--r--ANDROID_3.4.5/include/linux/kprobes.h440
-rw-r--r--ANDROID_3.4.5/include/linux/kref.h96
-rw-r--r--ANDROID_3.4.5/include/linux/ks0108.h49
-rw-r--r--ANDROID_3.4.5/include/linux/ks8842.h38
-rw-r--r--ANDROID_3.4.5/include/linux/ksm.h145
-rw-r--r--ANDROID_3.4.5/include/linux/kthread.h130
-rw-r--r--ANDROID_3.4.5/include/linux/ktime.h342
-rw-r--r--ANDROID_3.4.5/include/linux/kvm.h913
-rw-r--r--ANDROID_3.4.5/include/linux/kvm_host.h857
-rw-r--r--ANDROID_3.4.5/include/linux/kvm_para.h37
-rw-r--r--ANDROID_3.4.5/include/linux/kvm_types.h77
-rw-r--r--ANDROID_3.4.5/include/linux/l2tp.h164
-rw-r--r--ANDROID_3.4.5/include/linux/lapb.h57
-rw-r--r--ANDROID_3.4.5/include/linux/latencytop.h53
-rw-r--r--ANDROID_3.4.5/include/linux/lcd.h115
-rw-r--r--ANDROID_3.4.5/include/linux/lcm.h8
-rw-r--r--ANDROID_3.4.5/include/linux/led-lm3530.h121
-rw-r--r--ANDROID_3.4.5/include/linux/leds-bd2802.h26
-rw-r--r--ANDROID_3.4.5/include/linux/leds-lp3944.h50
-rw-r--r--ANDROID_3.4.5/include/linux/leds-lp5521.h73
-rw-r--r--ANDROID_3.4.5/include/linux/leds-lp5523.h48
-rw-r--r--ANDROID_3.4.5/include/linux/leds-pca9532.h48
-rw-r--r--ANDROID_3.4.5/include/linux/leds-regulator.h46
-rw-r--r--ANDROID_3.4.5/include/linux/leds-tca6507.h34
-rw-r--r--ANDROID_3.4.5/include/linux/leds.h213
-rw-r--r--ANDROID_3.4.5/include/linux/leds_pwm.h21
-rw-r--r--ANDROID_3.4.5/include/linux/lglock.h200
-rw-r--r--ANDROID_3.4.5/include/linux/lguest.h73
-rw-r--r--ANDROID_3.4.5/include/linux/lguest_launcher.h73
-rw-r--r--ANDROID_3.4.5/include/linux/libata.h1786
-rw-r--r--ANDROID_3.4.5/include/linux/libps2.h56
-rw-r--r--ANDROID_3.4.5/include/linux/license.h14
-rw-r--r--ANDROID_3.4.5/include/linux/limits.h20
-rw-r--r--ANDROID_3.4.5/include/linux/linkage.h91
-rw-r--r--ANDROID_3.4.5/include/linux/linux_logo.h61
-rw-r--r--ANDROID_3.4.5/include/linux/lis3lv02d.h127
-rw-r--r--ANDROID_3.4.5/include/linux/list.h719
-rw-r--r--ANDROID_3.4.5/include/linux/list_bl.h156
-rw-r--r--ANDROID_3.4.5/include/linux/list_nulls.h112
-rw-r--r--ANDROID_3.4.5/include/linux/list_sort.h11
-rw-r--r--ANDROID_3.4.5/include/linux/llc.h91
-rw-r--r--ANDROID_3.4.5/include/linux/llist.h186
-rw-r--r--ANDROID_3.4.5/include/linux/lockd/bind.h60
-rw-r--r--ANDROID_3.4.5/include/linux/lockd/debug.h47
-rw-r--r--ANDROID_3.4.5/include/linux/lockd/lockd.h365
-rw-r--r--ANDROID_3.4.5/include/linux/lockd/nlm.h57
-rw-r--r--ANDROID_3.4.5/include/linux/lockd/share.h31
-rw-r--r--ANDROID_3.4.5/include/linux/lockd/xdr.h118
-rw-r--r--ANDROID_3.4.5/include/linux/lockd/xdr4.h47
-rw-r--r--ANDROID_3.4.5/include/linux/lockdep.h558
-rw-r--r--ANDROID_3.4.5/include/linux/log2.h208
-rw-r--r--ANDROID_3.4.5/include/linux/loop.h167
-rw-r--r--ANDROID_3.4.5/include/linux/lp.h191
-rw-r--r--ANDROID_3.4.5/include/linux/lp855x.h131
-rw-r--r--ANDROID_3.4.5/include/linux/lp8727.h65
-rw-r--r--ANDROID_3.4.5/include/linux/lru_cache.h294
-rw-r--r--ANDROID_3.4.5/include/linux/lsm_audit.h105
-rwxr-xr-xANDROID_3.4.5/include/linux/lz4.h89
-rw-r--r--ANDROID_3.4.5/include/linux/lzo.h44
-rw-r--r--ANDROID_3.4.5/include/linux/m48t86.h16
-rw-r--r--ANDROID_3.4.5/include/linux/mISDNdsp.h39
-rw-r--r--ANDROID_3.4.5/include/linux/mISDNhw.h186
-rw-r--r--ANDROID_3.4.5/include/linux/mISDNif.h590
-rw-r--r--ANDROID_3.4.5/include/linux/magic.h72
-rw-r--r--ANDROID_3.4.5/include/linux/major.h184
-rw-r--r--ANDROID_3.4.5/include/linux/map_to_7segment.h187
-rw-r--r--ANDROID_3.4.5/include/linux/maple.h105
-rw-r--r--ANDROID_3.4.5/include/linux/marvell_phy.h22
-rw-r--r--ANDROID_3.4.5/include/linux/math64.h121
-rw-r--r--ANDROID_3.4.5/include/linux/matroxfb.h42
-rw-r--r--ANDROID_3.4.5/include/linux/max17040_battery.h19
-rw-r--r--ANDROID_3.4.5/include/linux/mbcache.h53
-rw-r--r--ANDROID_3.4.5/include/linux/mbus.h47
-rw-r--r--ANDROID_3.4.5/include/linux/mc146818rtc.h119
-rw-r--r--ANDROID_3.4.5/include/linux/mc6821.h51
-rw-r--r--ANDROID_3.4.5/include/linux/mca-legacy.h66
-rw-r--r--ANDROID_3.4.5/include/linux/mca.h148
-rw-r--r--ANDROID_3.4.5/include/linux/mdio-bitbang.h45
-rw-r--r--ANDROID_3.4.5/include/linux/mdio-gpio.h27
-rw-r--r--ANDROID_3.4.5/include/linux/mdio.h361
-rw-r--r--ANDROID_3.4.5/include/linux/media.h132
-rw-r--r--ANDROID_3.4.5/include/linux/memblock.h251
-rw-r--r--ANDROID_3.4.5/include/linux/memcontrol.h452
-rw-r--r--ANDROID_3.4.5/include/linux/memory.h154
-rw-r--r--ANDROID_3.4.5/include/linux/memory_hotplug.h243
-rw-r--r--ANDROID_3.4.5/include/linux/mempolicy.h385
-rw-r--r--ANDROID_3.4.5/include/linux/mempool.h73
-rw-r--r--ANDROID_3.4.5/include/linux/memstick.h347
-rw-r--r--ANDROID_3.4.5/include/linux/meye.h66
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/88pm860x.h414
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/aat2870.h181
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/abx500.h461
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/abx500/ab5500.h140
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/abx500/ab8500-bm.h474
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/abx500/ab8500-gpadc.h35
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/abx500/ab8500-gpio.h23
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/abx500/ab8500-sysctrl.h297
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/abx500/ab8500.h327
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/abx500/ux500_chargalg.h38
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/adp5520.h299
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/anatop.h40
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/asic3.h313
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/core.h100
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/da903x.h247
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/da9052/da9052.h129
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/da9052/pdata.h40
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/da9052/reg.h749
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/davinci_voicecodec.h126
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/db5500-prcmu.h105
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/db8500-prcmu.h795
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/dbx500-prcmu.h915
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/ds1wm.h13
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/ezx-pcap.h252
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/htc-egpio.h57
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/htc-pasic3.h54
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/intel_msic.h456
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/janz.h54
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/max8925.h256
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/max8997-private.h363
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/max8997.h252
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/max8998-private.h177
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/max8998.h124
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/mc13783.h91
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/mc13892.h39
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/mc13xxx.h210
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/mcp.h64
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/pcf50633/adc.h73
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/pcf50633/backlight.h51
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/pcf50633/core.h238
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/pcf50633/gpio.h52
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/pcf50633/mbc.h134
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/pcf50633/pmic.h67
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/pm8xxx/core.h81
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/pm8xxx/irq.h59
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/pm8xxx/pm8921.h30
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/pm8xxx/rtc.h25
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/rc5t583.h326
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/rdc321x.h26
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/s5m87xx/s5m-core.h373
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/s5m87xx/s5m-pmic.h100
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/s5m87xx/s5m-rtc.h84
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/stmpe.h225
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/t7l66xb.h34
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/tc3589x.h195
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/tc6387xb.h20
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/tc6393xb.h59
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/ti_ssp.h93
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/tmio.h153
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/tps6105x.h101
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/tps6507x.h169
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/tps65090.h46
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/tps65217.h283
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/tps6586x.h94
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/tps65910.h848
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/tps65912.h327
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/twl4030-audio.h272
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/twl6040.h251
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/ucb1x00.h259
-rwxr-xr-xANDROID_3.4.5/include/linux/mfd/vt1603/core.h44
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/wl1273-core.h290
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/wm831x/auxadc.h216
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/wm831x/core.h422
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/wm831x/gpio.h59
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/wm831x/irq.h764
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/wm831x/otp.h162
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/wm831x/pdata.h150
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/wm831x/pmu.h189
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/wm831x/regulator.h1218
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/wm831x/status.h34
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/wm831x/watchdog.h52
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/wm8350/audio.h628
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/wm8350/comparator.h175
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/wm8350/core.h713
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/wm8350/gpio.h361
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/wm8350/pmic.h781
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/wm8350/rtc.h269
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/wm8350/supply.h134
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/wm8350/wdt.h28
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/wm8400-audio.h1187
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/wm8400-private.h935
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/wm8400.h40
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/wm8994/core.h113
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/wm8994/gpio.h76
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/wm8994/pdata.h210
-rw-r--r--ANDROID_3.4.5/include/linux/mfd/wm8994/registers.h4811
-rw-r--r--ANDROID_3.4.5/include/linux/mg_disk.h45
-rw-r--r--ANDROID_3.4.5/include/linux/micrel_phy.h16
-rw-r--r--ANDROID_3.4.5/include/linux/migrate.h67
-rw-r--r--ANDROID_3.4.5/include/linux/migrate_mode.h16
-rw-r--r--ANDROID_3.4.5/include/linux/mii.h482
-rw-r--r--ANDROID_3.4.5/include/linux/minix_fs.h106
-rw-r--r--ANDROID_3.4.5/include/linux/miscdevice.h67
-rw-r--r--ANDROID_3.4.5/include/linux/mlx4/cmd.h230
-rw-r--r--ANDROID_3.4.5/include/linux/mlx4/cq.h150
-rw-r--r--ANDROID_3.4.5/include/linux/mlx4/device.h654
-rw-r--r--ANDROID_3.4.5/include/linux/mlx4/doorbell.h86
-rw-r--r--ANDROID_3.4.5/include/linux/mlx4/driver.h62
-rw-r--r--ANDROID_3.4.5/include/linux/mlx4/qp.h364
-rw-r--r--ANDROID_3.4.5/include/linux/mlx4/srq.h42
-rw-r--r--ANDROID_3.4.5/include/linux/mm.h1638
-rw-r--r--ANDROID_3.4.5/include/linux/mm_inline.h102
-rw-r--r--ANDROID_3.4.5/include/linux/mm_types.h416
-rw-r--r--ANDROID_3.4.5/include/linux/mman.h93
-rw-r--r--ANDROID_3.4.5/include/linux/mmc/Kbuild1
-rw-r--r--ANDROID_3.4.5/include/linux/mmc/boot.h7
-rw-r--r--ANDROID_3.4.5/include/linux/mmc/card.h494
-rw-r--r--ANDROID_3.4.5/include/linux/mmc/cd-gpio.h18
-rw-r--r--ANDROID_3.4.5/include/linux/mmc/core.h197
-rw-r--r--ANDROID_3.4.5/include/linux/mmc/dw_mmc.h253
-rw-r--r--ANDROID_3.4.5/include/linux/mmc/host.h486
-rw-r--r--ANDROID_3.4.5/include/linux/mmc/ioctl.h57
-rw-r--r--ANDROID_3.4.5/include/linux/mmc/mmc.h449
-rw-r--r--ANDROID_3.4.5/include/linux/mmc/pm.h31
-rw-r--r--ANDROID_3.4.5/include/linux/mmc/sd.h94
-rw-r--r--ANDROID_3.4.5/include/linux/mmc/sdhci-pci-data.h18
-rw-r--r--ANDROID_3.4.5/include/linux/mmc/sdhci-spear.h42
-rw-r--r--ANDROID_3.4.5/include/linux/mmc/sdhci.h174
-rw-r--r--ANDROID_3.4.5/include/linux/mmc/sdio.h191
-rwxr-xr-xANDROID_3.4.5/include/linux/mmc/sdio_func.h174
-rw-r--r--ANDROID_3.4.5/include/linux/mmc/sdio_ids.h47
-rw-r--r--ANDROID_3.4.5/include/linux/mmc/sh_mmcif.h222
-rw-r--r--ANDROID_3.4.5/include/linux/mmc/sh_mobile_sdhi.h38
-rw-r--r--ANDROID_3.4.5/include/linux/mmc/tmio.h65
-rw-r--r--ANDROID_3.4.5/include/linux/mmdebug.h16
-rw-r--r--ANDROID_3.4.5/include/linux/mmiotrace.h111
-rw-r--r--ANDROID_3.4.5/include/linux/mmtimer.h56
-rw-r--r--ANDROID_3.4.5/include/linux/mmu_context.h9
-rw-r--r--ANDROID_3.4.5/include/linux/mmu_notifier.h379
-rw-r--r--ANDROID_3.4.5/include/linux/mmzone.h1182
-rw-r--r--ANDROID_3.4.5/include/linux/mnt_namespace.h17
-rw-r--r--ANDROID_3.4.5/include/linux/mod_devicetable.h593
-rw-r--r--ANDROID_3.4.5/include/linux/module.h651
-rw-r--r--ANDROID_3.4.5/include/linux/moduleloader.h55
-rw-r--r--ANDROID_3.4.5/include/linux/moduleparam.h465
-rw-r--r--ANDROID_3.4.5/include/linux/mount.h79
-rw-r--r--ANDROID_3.4.5/include/linux/mpage.h24
-rw-r--r--ANDROID_3.4.5/include/linux/mpi.h144
-rw-r--r--ANDROID_3.4.5/include/linux/mqueue.h53
-rw-r--r--ANDROID_3.4.5/include/linux/mroute.h251
-rw-r--r--ANDROID_3.4.5/include/linux/mroute6.h269
-rw-r--r--ANDROID_3.4.5/include/linux/msdos_fs.h185
-rw-r--r--ANDROID_3.4.5/include/linux/msg.h112
-rw-r--r--ANDROID_3.4.5/include/linux/msi.h62
-rw-r--r--ANDROID_3.4.5/include/linux/msm_mdp.h79
-rwxr-xr-xANDROID_3.4.5/include/linux/mt5931_6622.h26
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/bbm.h176
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/blktrans.h94
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/cfi.h564
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/cfi_endian.h53
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/concat.h34
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/doc2000.h206
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/flashchip.h112
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/fsmc.h176
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/ftl.h74
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/gen_probe.h37
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/gpmi-nand.h68
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/inftl.h63
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/latch-addr-flash.h29
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/map.h465
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/mtd.h429
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/mtdram.h8
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/nand-gpio.h19
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/nand.h828
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/nand_bch.h72
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/nand_ecc.h42
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/ndfc.h67
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/nftl.h72
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/onenand.h242
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/onenand_regs.h223
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/partitions.h87
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/pfow.h159
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/physmap.h36
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/pismo.h17
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/plat-ram.h34
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/qinfo.h91
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/sh_flctl.h171
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/sharpsl.h20
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/spear_smi.h65
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/super.h29
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/ubi.h265
-rw-r--r--ANDROID_3.4.5/include/linux/mtd/xip.h99
-rw-r--r--ANDROID_3.4.5/include/linux/mtio.h208
-rw-r--r--ANDROID_3.4.5/include/linux/mutex-debug.h23
-rw-r--r--ANDROID_3.4.5/include/linux/mutex.h176
-rw-r--r--ANDROID_3.4.5/include/linux/mv643xx.h979
-rw-r--r--ANDROID_3.4.5/include/linux/mv643xx_eth.h83
-rw-r--r--ANDROID_3.4.5/include/linux/mv643xx_i2c.h22
-rw-r--r--ANDROID_3.4.5/include/linux/mxm-wmi.h33
-rw-r--r--ANDROID_3.4.5/include/linux/n_r3964.h231
-rw-r--r--ANDROID_3.4.5/include/linux/namei.h112
-rw-r--r--ANDROID_3.4.5/include/linux/nbd.h102
-rw-r--r--ANDROID_3.4.5/include/linux/ncp.h201
-rw-r--r--ANDROID_3.4.5/include/linux/ncp_fs.h146
-rw-r--r--ANDROID_3.4.5/include/linux/ncp_mount.h71
-rw-r--r--ANDROID_3.4.5/include/linux/ncp_no.h19
-rw-r--r--ANDROID_3.4.5/include/linux/neighbour.h156
-rw-r--r--ANDROID_3.4.5/include/linux/net.h294
-rw-r--r--ANDROID_3.4.5/include/linux/net_dropmon.h64
-rw-r--r--ANDROID_3.4.5/include/linux/net_tstamp.h113
-rw-r--r--ANDROID_3.4.5/include/linux/netdev_features.h150
-rw-r--r--ANDROID_3.4.5/include/linux/netdevice.h2804
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter.h397
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/Kbuild77
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/ipset/Kbuild4
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/ipset/ip_set.h489
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/ipset/ip_set_ahash.h1214
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/ipset/ip_set_bitmap.h31
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/ipset/ip_set_getport.h33
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/ipset/ip_set_hash.h30
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/ipset/ip_set_list.h27
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/ipset/ip_set_timeout.h132
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/ipset/pfxlen.h44
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_amanda.h10
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_common.h137
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_dccp.h40
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_ftp.h42
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_h323.h92
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_h323_asn1.h98
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_h323_types.h934
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_irc.h15
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_pptp.h324
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_proto_gre.h94
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_sane.h21
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_sctp.h25
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_sip.h179
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_snmp.h9
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_tcp.h79
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_tftp.h20
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_tuple_common.h39
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/nf_nat.h25
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/nfnetlink.h95
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/nfnetlink_acct.h36
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/nfnetlink_compat.h63
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/nfnetlink_conntrack.h205
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/nfnetlink_cttimeout.h114
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/nfnetlink_log.h97
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/nfnetlink_queue.h91
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/x_tables.h622
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_AUDIT.h30
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_CHECKSUM.h20
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_CLASSIFY.h10
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_CONNMARK.h6
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_CONNSECMARK.h15
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_CT.h31
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_DSCP.h26
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_IDLETIMER.h53
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_LED.h15
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_LOG.h19
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_MARK.h6
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_NFLOG.h20
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_NFQUEUE.h29
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_RATEEST.h15
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_SECMARK.h22
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_TCPMSS.h12
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_TCPOPTSTRIP.h15
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_TEE.h12
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_TPROXY.h23
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_addrtype.h44
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_cluster.h19
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_comment.h10
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_connbytes.h26
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_connlimit.h37
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_connmark.h31
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_conntrack.h77
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_cpu.h11
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_dccp.h25
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_devgroup.h21
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_dscp.h31
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_ecn.h35
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_esp.h15
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_hashlimit.h68
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_helper.h8
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_iprange.h20
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_ipvs.h29
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_length.h11
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_limit.h24
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_mac.h8
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_mark.h15
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_multiport.h29
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_nfacct.h13
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_osf.h135
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_owner.h18
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_physdev.h26
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_pkttype.h8
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_policy.h69
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_qtaguid.h13
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_quota.h22
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_quota2.h25
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_rateest.h37
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_realm.h12
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_recent.h35
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_rpfilter.h23
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_sctp.h92
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_set.h65
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_socket.h20
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_state.h12
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_statistic.h36
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_string.h34
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_tcpmss.h11
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_tcpudp.h36
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_time.h27
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter/xt_u32.h42
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_arp.h19
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_arp/Kbuild2
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_arp/arp_tables.h278
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_arp/arpt_mangle.h26
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_bridge.h122
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_bridge/Kbuild18
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_802_3.h70
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_among.h64
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_arp.h36
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_arpreply.h10
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_ip.h44
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_ip6.h50
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_limit.h24
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_log.h20
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_mark_m.h16
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_mark_t.h23
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_nat.h13
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_nflog.h23
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_pkttype.h12
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_redirect.h10
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_stp.h46
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_ulog.h38
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_vlan.h22
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_bridge/ebtables.h380
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_decnet.h79
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_ipv4.h86
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_ipv4/Kbuild12
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_ipv4/ip_queue.h72
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_ipv4/ip_tables.h307
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h36
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_ECN.h33
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_LOG.h21
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_REJECT.h20
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_TTL.h23
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_ULOG.h49
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_addrtype.h27
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_ah.h17
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_ecn.h15
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_ttl.h23
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_ipv6.h93
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_ipv6/Kbuild11
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6_tables.h326
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_HL.h24
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_LOG.h21
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_REJECT.h20
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_ah.h22
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_frag.h25
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_hl.h24
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_ipv6header.h28
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_mh.h16
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_opts.h24
-rw-r--r--ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_rt.h33
-rw-r--r--ANDROID_3.4.5/include/linux/netlink.h270
-rw-r--r--ANDROID_3.4.5/include/linux/netpoll.h156
-rw-r--r--ANDROID_3.4.5/include/linux/netrom.h36
-rw-r--r--ANDROID_3.4.5/include/linux/nfc.h171
-rw-r--r--ANDROID_3.4.5/include/linux/nfc/bcm2079x.h45
-rw-r--r--ANDROID_3.4.5/include/linux/nfc/pn544.h114
-rw-r--r--ANDROID_3.4.5/include/linux/nfs.h173
-rw-r--r--ANDROID_3.4.5/include/linux/nfs2.h67
-rw-r--r--ANDROID_3.4.5/include/linux/nfs3.h103
-rw-r--r--ANDROID_3.4.5/include/linux/nfs4.h669
-rw-r--r--ANDROID_3.4.5/include/linux/nfs4_mount.h71
-rw-r--r--ANDROID_3.4.5/include/linux/nfs_fs.h671
-rw-r--r--ANDROID_3.4.5/include/linux/nfs_fs_i.h20
-rw-r--r--ANDROID_3.4.5/include/linux/nfs_fs_sb.h243
-rw-r--r--ANDROID_3.4.5/include/linux/nfs_idmap.h102
-rw-r--r--ANDROID_3.4.5/include/linux/nfs_iostat.h133
-rw-r--r--ANDROID_3.4.5/include/linux/nfs_mount.h77
-rw-r--r--ANDROID_3.4.5/include/linux/nfs_page.h154
-rw-r--r--ANDROID_3.4.5/include/linux/nfs_xdr.h1315
-rw-r--r--ANDROID_3.4.5/include/linux/nfsacl.h62
-rw-r--r--ANDROID_3.4.5/include/linux/nfsd/Kbuild5
-rw-r--r--ANDROID_3.4.5/include/linux/nfsd/cld.h56
-rw-r--r--ANDROID_3.4.5/include/linux/nfsd/debug.h48
-rw-r--r--ANDROID_3.4.5/include/linux/nfsd/export.h161
-rw-r--r--ANDROID_3.4.5/include/linux/nfsd/nfsfh.h171
-rw-r--r--ANDROID_3.4.5/include/linux/nfsd/stats.h51
-rw-r--r--ANDROID_3.4.5/include/linux/nilfs2_fs.h852
-rw-r--r--ANDROID_3.4.5/include/linux/nl80211.h2866
-rw-r--r--ANDROID_3.4.5/include/linux/nl802154.h129
-rw-r--r--ANDROID_3.4.5/include/linux/nls.h107
-rw-r--r--ANDROID_3.4.5/include/linux/nmi.h56
-rw-r--r--ANDROID_3.4.5/include/linux/node.h85
-rw-r--r--ANDROID_3.4.5/include/linux/nodemask.h515
-rw-r--r--ANDROID_3.4.5/include/linux/notifier.h212
-rw-r--r--ANDROID_3.4.5/include/linux/nsc_gpio.h40
-rw-r--r--ANDROID_3.4.5/include/linux/nsproxy.h85
-rw-r--r--ANDROID_3.4.5/include/linux/nubus.h363
-rw-r--r--ANDROID_3.4.5/include/linux/numa.h15
-rw-r--r--ANDROID_3.4.5/include/linux/nvme.h434
-rw-r--r--ANDROID_3.4.5/include/linux/nvram.h25
-rw-r--r--ANDROID_3.4.5/include/linux/nwpserial.h18
-rw-r--r--ANDROID_3.4.5/include/linux/of.h377
-rw-r--r--ANDROID_3.4.5/include/linux/of_address.h74
-rw-r--r--ANDROID_3.4.5/include/linux/of_device.h72
-rw-r--r--ANDROID_3.4.5/include/linux/of_fdt.h125
-rw-r--r--ANDROID_3.4.5/include/linux/of_gpio.h158
-rw-r--r--ANDROID_3.4.5/include/linux/of_i2c.h30
-rw-r--r--ANDROID_3.4.5/include/linux/of_irq.h80
-rw-r--r--ANDROID_3.4.5/include/linux/of_mdio.h25
-rw-r--r--ANDROID_3.4.5/include/linux/of_mtd.h19
-rw-r--r--ANDROID_3.4.5/include/linux/of_net.h16
-rw-r--r--ANDROID_3.4.5/include/linux/of_pci.h14
-rw-r--r--ANDROID_3.4.5/include/linux/of_pdt.h45
-rw-r--r--ANDROID_3.4.5/include/linux/of_platform.h112
-rw-r--r--ANDROID_3.4.5/include/linux/of_spi.h23
-rw-r--r--ANDROID_3.4.5/include/linux/omap3isp.h644
-rw-r--r--ANDROID_3.4.5/include/linux/omapfb.h233
-rw-r--r--ANDROID_3.4.5/include/linux/oom.h75
-rw-r--r--ANDROID_3.4.5/include/linux/openvswitch.h452
-rw-r--r--ANDROID_3.4.5/include/linux/opp.h126
-rw-r--r--ANDROID_3.4.5/include/linux/oprofile.h211
-rw-r--r--ANDROID_3.4.5/include/linux/oxu210hp.h7
-rw-r--r--ANDROID_3.4.5/include/linux/padata.h190
-rw-r--r--ANDROID_3.4.5/include/linux/page-debug-flags.h32
-rw-r--r--ANDROID_3.4.5/include/linux/page-flags.h503
-rw-r--r--ANDROID_3.4.5/include/linux/page-isolation.h37
-rw-r--r--ANDROID_3.4.5/include/linux/page_cgroup.h145
-rw-r--r--ANDROID_3.4.5/include/linux/pageblock-flags.h74
-rw-r--r--ANDROID_3.4.5/include/linux/pagemap.h479
-rw-r--r--ANDROID_3.4.5/include/linux/pagevec.h99
-rw-r--r--ANDROID_3.4.5/include/linux/param.h6
-rw-r--r--ANDROID_3.4.5/include/linux/parport.h568
-rw-r--r--ANDROID_3.4.5/include/linux/parport_pc.h238
-rw-r--r--ANDROID_3.4.5/include/linux/parser.h33
-rw-r--r--ANDROID_3.4.5/include/linux/pata_arasan_cf_data.h49
-rw-r--r--ANDROID_3.4.5/include/linux/patchkey.h47
-rw-r--r--ANDROID_3.4.5/include/linux/path.h20
-rw-r--r--ANDROID_3.4.5/include/linux/pch_dma.h37
-rw-r--r--ANDROID_3.4.5/include/linux/pci-acpi.h46
-rw-r--r--ANDROID_3.4.5/include/linux/pci-aspm.h69
-rw-r--r--ANDROID_3.4.5/include/linux/pci-ats.h127
-rw-r--r--ANDROID_3.4.5/include/linux/pci-dma.h11
-rw-r--r--ANDROID_3.4.5/include/linux/pci.h1724
-rw-r--r--ANDROID_3.4.5/include/linux/pci_hotplug.h203
-rw-r--r--ANDROID_3.4.5/include/linux/pci_ids.h2907
-rw-r--r--ANDROID_3.4.5/include/linux/pci_regs.h738
-rw-r--r--ANDROID_3.4.5/include/linux/pcieport_if.h68
-rw-r--r--ANDROID_3.4.5/include/linux/pda_power.h42
-rw-r--r--ANDROID_3.4.5/include/linux/percpu-defs.h163
-rw-r--r--ANDROID_3.4.5/include/linux/percpu.h812
-rw-r--r--ANDROID_3.4.5/include/linux/percpu_counter.h177
-rw-r--r--ANDROID_3.4.5/include/linux/perf_event.h1365
-rw-r--r--ANDROID_3.4.5/include/linux/persistent_ram.h83
-rw-r--r--ANDROID_3.4.5/include/linux/personality.h121
-rw-r--r--ANDROID_3.4.5/include/linux/pfkeyv2.h370
-rw-r--r--ANDROID_3.4.5/include/linux/pfn.h13
-rw-r--r--ANDROID_3.4.5/include/linux/pg.h63
-rw-r--r--ANDROID_3.4.5/include/linux/phantom.h49
-rw-r--r--ANDROID_3.4.5/include/linux/phonedev.h25
-rw-r--r--ANDROID_3.4.5/include/linux/phonet.h200
-rw-r--r--ANDROID_3.4.5/include/linux/phy.h537
-rw-r--r--ANDROID_3.4.5/include/linux/phy_fixed.h31
-rw-r--r--ANDROID_3.4.5/include/linux/pid.h202
-rw-r--r--ANDROID_3.4.5/include/linux/pid_namespace.h95
-rw-r--r--ANDROID_3.4.5/include/linux/pim.h27
-rw-r--r--ANDROID_3.4.5/include/linux/pinctrl/consumer.h159
-rw-r--r--ANDROID_3.4.5/include/linux/pinctrl/machine.h167
-rw-r--r--ANDROID_3.4.5/include/linux/pinctrl/pinconf-generic.h114
-rw-r--r--ANDROID_3.4.5/include/linux/pinctrl/pinconf.h63
-rw-r--r--ANDROID_3.4.5/include/linux/pinctrl/pinctrl-state.h6
-rw-r--r--ANDROID_3.4.5/include/linux/pinctrl/pinctrl.h136
-rw-r--r--ANDROID_3.4.5/include/linux/pinctrl/pinmux.h90
-rw-r--r--ANDROID_3.4.5/include/linux/pipe_fs_i.h165
-rw-r--r--ANDROID_3.4.5/include/linux/pkt_cls.h467
-rw-r--r--ANDROID_3.4.5/include/linux/pkt_sched.h657
-rw-r--r--ANDROID_3.4.5/include/linux/pktcdvd.h302
-rw-r--r--ANDROID_3.4.5/include/linux/platform_data/android_battery.h47
-rw-r--r--ANDROID_3.4.5/include/linux/platform_data/atmel.h27
-rw-r--r--ANDROID_3.4.5/include/linux/platform_data/cpsw.h55
-rw-r--r--ANDROID_3.4.5/include/linux/platform_data/ds2482.h21
-rw-r--r--ANDROID_3.4.5/include/linux/platform_data/dwc3-exynos.h24
-rw-r--r--ANDROID_3.4.5/include/linux/platform_data/dwc3-omap.h47
-rw-r--r--ANDROID_3.4.5/include/linux/platform_data/efm32-uart.h18
-rw-r--r--ANDROID_3.4.5/include/linux/platform_data/exynos4_tmu.h83
-rw-r--r--ANDROID_3.4.5/include/linux/platform_data/fsa9480.h27
-rw-r--r--ANDROID_3.4.5/include/linux/platform_data/leds-renesas-tpu.h14
-rw-r--r--ANDROID_3.4.5/include/linux/platform_data/macb.h17
-rw-r--r--ANDROID_3.4.5/include/linux/platform_data/msm_serial_hs.h49
-rw-r--r--ANDROID_3.4.5/include/linux/platform_data/mv_usb.h64
-rw-r--r--ANDROID_3.4.5/include/linux/platform_data/ntc_thermistor.h53
-rw-r--r--ANDROID_3.4.5/include/linux/platform_data/omap-abe-twl6040.h49
-rw-r--r--ANDROID_3.4.5/include/linux/platform_data/omap4-keypad.h13
-rw-r--r--ANDROID_3.4.5/include/linux/platform_data/pxa_sdhci.h60
-rw-r--r--ANDROID_3.4.5/include/linux/platform_data/s3c-hsudc.h34
-rw-r--r--ANDROID_3.4.5/include/linux/platform_data/spear_thermal.h26
-rw-r--r--ANDROID_3.4.5/include/linux/platform_data/tegra_emc.h34
-rw-r--r--ANDROID_3.4.5/include/linux/platform_data/tegra_usb.h31
-rw-r--r--ANDROID_3.4.5/include/linux/platform_data/uio_pruss.h25
-rw-r--r--ANDROID_3.4.5/include/linux/platform_device.h291
-rw-r--r--ANDROID_3.4.5/include/linux/plist.h255
-rw-r--r--ANDROID_3.4.5/include/linux/pm.h698
-rw-r--r--ANDROID_3.4.5/include/linux/pm_clock.h71
-rw-r--r--ANDROID_3.4.5/include/linux/pm_domain.h243
-rw-r--r--ANDROID_3.4.5/include/linux/pm_qos.h153
-rw-r--r--ANDROID_3.4.5/include/linux/pm_runtime.h251
-rw-r--r--ANDROID_3.4.5/include/linux/pm_wakeup.h195
-rw-r--r--ANDROID_3.4.5/include/linux/pmu.h213
-rw-r--r--ANDROID_3.4.5/include/linux/pnfs_osd_xdr.h318
-rw-r--r--ANDROID_3.4.5/include/linux/pnp.h505
-rw-r--r--ANDROID_3.4.5/include/linux/poison.h89
-rw-r--r--ANDROID_3.4.5/include/linux/poll.h168
-rw-r--r--ANDROID_3.4.5/include/linux/posix-clock.h151
-rw-r--r--ANDROID_3.4.5/include/linux/posix-timers.h132
-rw-r--r--ANDROID_3.4.5/include/linux/posix_acl.h172
-rw-r--r--ANDROID_3.4.5/include/linux/posix_acl_xattr.h58
-rw-r--r--ANDROID_3.4.5/include/linux/posix_types.h49
-rw-r--r--ANDROID_3.4.5/include/linux/power/bq27x00_battery.h19
-rw-r--r--ANDROID_3.4.5/include/linux/power/charger-manager.h147
-rw-r--r--ANDROID_3.4.5/include/linux/power/gpio-charger.h41
-rw-r--r--ANDROID_3.4.5/include/linux/power/isp1704_charger.h29
-rw-r--r--ANDROID_3.4.5/include/linux/power/jz4740-battery.h24
-rw-r--r--ANDROID_3.4.5/include/linux/power/max17042_battery.h196
-rw-r--r--ANDROID_3.4.5/include/linux/power/max8903_charger.h57
-rw-r--r--ANDROID_3.4.5/include/linux/power/sbs-battery.h42
-rw-r--r--ANDROID_3.4.5/include/linux/power/smb347-charger.h123
-rwxr-xr-xANDROID_3.4.5/include/linux/power/wmt_battery.h111
-rw-r--r--ANDROID_3.4.5/include/linux/power_supply.h279
-rw-r--r--ANDROID_3.4.5/include/linux/ppdev.h99
-rw-r--r--ANDROID_3.4.5/include/linux/ppp-comp.h184
-rw-r--r--ANDROID_3.4.5/include/linux/ppp-ioctl.h119
-rw-r--r--ANDROID_3.4.5/include/linux/ppp_channel.h88
-rw-r--r--ANDROID_3.4.5/include/linux/ppp_defs.h154
-rw-r--r--ANDROID_3.4.5/include/linux/pps-gpio.h32
-rw-r--r--ANDROID_3.4.5/include/linux/pps.h131
-rw-r--r--ANDROID_3.4.5/include/linux/pps_kernel.h120
-rw-r--r--ANDROID_3.4.5/include/linux/prctl.h127
-rw-r--r--ANDROID_3.4.5/include/linux/preempt.h155
-rw-r--r--ANDROID_3.4.5/include/linux/prefetch.h64
-rw-r--r--ANDROID_3.4.5/include/linux/printk.h319
-rw-r--r--ANDROID_3.4.5/include/linux/prio_heap.h58
-rw-r--r--ANDROID_3.4.5/include/linux/prio_tree.h120
-rw-r--r--ANDROID_3.4.5/include/linux/proc_fs.h293
-rw-r--r--ANDROID_3.4.5/include/linux/profile.h150
-rw-r--r--ANDROID_3.4.5/include/linux/proportions.h136
-rw-r--r--ANDROID_3.4.5/include/linux/pstore.h65
-rw-r--r--ANDROID_3.4.5/include/linux/pti.h43
-rw-r--r--ANDROID_3.4.5/include/linux/ptp_classify.h140
-rw-r--r--ANDROID_3.4.5/include/linux/ptp_clock.h84
-rw-r--r--ANDROID_3.4.5/include/linux/ptp_clock_kernel.h139
-rw-r--r--ANDROID_3.4.5/include/linux/ptrace.h416
-rw-r--r--ANDROID_3.4.5/include/linux/pwm.h31
-rw-r--r--ANDROID_3.4.5/include/linux/pwm_backlight.h24
-rw-r--r--ANDROID_3.4.5/include/linux/pxa168_eth.h30
-rw-r--r--ANDROID_3.4.5/include/linux/pxa2xx_ssp.h209
-rw-r--r--ANDROID_3.4.5/include/linux/qnx4_fs.h88
-rw-r--r--ANDROID_3.4.5/include/linux/qnx6_fs.h134
-rw-r--r--ANDROID_3.4.5/include/linux/qnxtypes.h28
-rw-r--r--ANDROID_3.4.5/include/linux/quicklist.h93
-rw-r--r--ANDROID_3.4.5/include/linux/quota.h423
-rw-r--r--ANDROID_3.4.5/include/linux/quotaops.h360
-rw-r--r--ANDROID_3.4.5/include/linux/radeonfb.h15
-rw-r--r--ANDROID_3.4.5/include/linux/radix-tree.h459
-rw-r--r--ANDROID_3.4.5/include/linux/raid/Kbuild2
-rw-r--r--ANDROID_3.4.5/include/linux/raid/md_p.h290
-rw-r--r--ANDROID_3.4.5/include/linux/raid/md_u.h159
-rw-r--r--ANDROID_3.4.5/include/linux/raid/pq.h153
-rw-r--r--ANDROID_3.4.5/include/linux/raid/xor.h22
-rw-r--r--ANDROID_3.4.5/include/linux/raid_class.h83
-rw-r--r--ANDROID_3.4.5/include/linux/ramfs.h26
-rw-r--r--ANDROID_3.4.5/include/linux/ramoops.h17
-rw-r--r--ANDROID_3.4.5/include/linux/random.h109
-rw-r--r--ANDROID_3.4.5/include/linux/range.h30
-rw-r--r--ANDROID_3.4.5/include/linux/ratelimit.h84
-rw-r--r--ANDROID_3.4.5/include/linux/rational.h19
-rw-r--r--ANDROID_3.4.5/include/linux/raw.h18
-rw-r--r--ANDROID_3.4.5/include/linux/rbtree.h177
-rw-r--r--ANDROID_3.4.5/include/linux/rculist.h493
-rw-r--r--ANDROID_3.4.5/include/linux/rculist_bl.h128
-rw-r--r--ANDROID_3.4.5/include/linux/rculist_nulls.h116
-rw-r--r--ANDROID_3.4.5/include/linux/rcupdate.h951
-rw-r--r--ANDROID_3.4.5/include/linux/rcutiny.h171
-rw-r--r--ANDROID_3.4.5/include/linux/rcutree.h111
-rw-r--r--ANDROID_3.4.5/include/linux/rds.h285
-rw-r--r--ANDROID_3.4.5/include/linux/reboot.h89
-rw-r--r--ANDROID_3.4.5/include/linux/reciprocal_div.h32
-rw-r--r--ANDROID_3.4.5/include/linux/regmap.h332
-rw-r--r--ANDROID_3.4.5/include/linux/regset.h375
-rw-r--r--ANDROID_3.4.5/include/linux/regulator/ab8500.h142
-rw-r--r--ANDROID_3.4.5/include/linux/regulator/consumer.h349
-rw-r--r--ANDROID_3.4.5/include/linux/regulator/db8500-prcmu.h45
-rw-r--r--ANDROID_3.4.5/include/linux/regulator/driver.h229
-rw-r--r--ANDROID_3.4.5/include/linux/regulator/fixed.h64
-rw-r--r--ANDROID_3.4.5/include/linux/regulator/gpio-regulator.h87
-rw-r--r--ANDROID_3.4.5/include/linux/regulator/lp3971.h51
-rw-r--r--ANDROID_3.4.5/include/linux/regulator/lp3972.h48
-rw-r--r--ANDROID_3.4.5/include/linux/regulator/machine.h201
-rw-r--r--ANDROID_3.4.5/include/linux/regulator/max1586.h63
-rw-r--r--ANDROID_3.4.5/include/linux/regulator/max8649.h44
-rw-r--r--ANDROID_3.4.5/include/linux/regulator/max8660.h57
-rw-r--r--ANDROID_3.4.5/include/linux/regulator/max8952.h135
-rw-r--r--ANDROID_3.4.5/include/linux/regulator/of_regulator.h22
-rw-r--r--ANDROID_3.4.5/include/linux/regulator/tps62360.h57
-rw-r--r--ANDROID_3.4.5/include/linux/regulator/tps6507x.h32
-rw-r--r--ANDROID_3.4.5/include/linux/regulator/userspace-consumer.h25
-rw-r--r--ANDROID_3.4.5/include/linux/reiserfs_fs.h26
-rw-r--r--ANDROID_3.4.5/include/linux/reiserfs_xattr.h24
-rw-r--r--ANDROID_3.4.5/include/linux/relay.h292
-rw-r--r--ANDROID_3.4.5/include/linux/remoteproc.h478
-rw-r--r--ANDROID_3.4.5/include/linux/res_counter.h226
-rw-r--r--ANDROID_3.4.5/include/linux/resource.h89
-rw-r--r--ANDROID_3.4.5/include/linux/resume-trace.h34
-rw-r--r--ANDROID_3.4.5/include/linux/rfkill-gpio.h47
-rw-r--r--ANDROID_3.4.5/include/linux/rfkill-regulator.h48
-rw-r--r--ANDROID_3.4.5/include/linux/rfkill.h359
-rw-r--r--ANDROID_3.4.5/include/linux/ring_buffer.h191
-rw-r--r--ANDROID_3.4.5/include/linux/rio.h405
-rw-r--r--ANDROID_3.4.5/include/linux/rio_drv.h423
-rw-r--r--ANDROID_3.4.5/include/linux/rio_ids.h44
-rw-r--r--ANDROID_3.4.5/include/linux/rio_regs.h295
-rw-r--r--ANDROID_3.4.5/include/linux/rmap.h263
-rw-r--r--ANDROID_3.4.5/include/linux/romfs_fs.h59
-rw-r--r--ANDROID_3.4.5/include/linux/root_dev.h23
-rw-r--r--ANDROID_3.4.5/include/linux/rose.h90
-rw-r--r--ANDROID_3.4.5/include/linux/rotary_encoder.h16
-rw-r--r--ANDROID_3.4.5/include/linux/route.h69
-rw-r--r--ANDROID_3.4.5/include/linux/rpmsg.h332
-rw-r--r--ANDROID_3.4.5/include/linux/rslib.h109
-rw-r--r--ANDROID_3.4.5/include/linux/rtc-v3020.h41
-rw-r--r--ANDROID_3.4.5/include/linux/rtc.h284
-rw-r--r--ANDROID_3.4.5/include/linux/rtc/m48t59.h64
-rw-r--r--ANDROID_3.4.5/include/linux/rtc/sirfsoc_rtciobrg.h18
-rw-r--r--ANDROID_3.4.5/include/linux/rtmutex.h109
-rw-r--r--ANDROID_3.4.5/include/linux/rtnetlink.h807
-rw-r--r--ANDROID_3.4.5/include/linux/rwlock.h125
-rw-r--r--ANDROID_3.4.5/include/linux/rwlock_api_smp.h282
-rw-r--r--ANDROID_3.4.5/include/linux/rwlock_types.h48
-rw-r--r--ANDROID_3.4.5/include/linux/rwsem-spinlock.h45
-rw-r--r--ANDROID_3.4.5/include/linux/rwsem.h133
-rw-r--r--ANDROID_3.4.5/include/linux/rxrpc.h69
-rw-r--r--ANDROID_3.4.5/include/linux/s3c_adc_battery.h41
-rw-r--r--ANDROID_3.4.5/include/linux/sa11x0-dma.h24
-rw-r--r--ANDROID_3.4.5/include/linux/sc26198.h533
-rw-r--r--ANDROID_3.4.5/include/linux/scatterlist.h269
-rw-r--r--ANDROID_3.4.5/include/linux/scc.h252
-rw-r--r--ANDROID_3.4.5/include/linux/sched.h2826
-rw-r--r--ANDROID_3.4.5/include/linux/screen_info.h84
-rw-r--r--ANDROID_3.4.5/include/linux/sctp.h711
-rw-r--r--ANDROID_3.4.5/include/linux/scx200.h51
-rw-r--r--ANDROID_3.4.5/include/linux/scx200_gpio.h88
-rw-r--r--ANDROID_3.4.5/include/linux/sdla.h335
-rw-r--r--ANDROID_3.4.5/include/linux/seccomp.h52
-rw-r--r--ANDROID_3.4.5/include/linux/securebits.h54
-rw-r--r--ANDROID_3.4.5/include/linux/security.h3025
-rw-r--r--ANDROID_3.4.5/include/linux/selection.h44
-rw-r--r--ANDROID_3.4.5/include/linux/selinux.h35
-rw-r--r--ANDROID_3.4.5/include/linux/selinux_netlink.h50
-rw-r--r--ANDROID_3.4.5/include/linux/sem.h127
-rw-r--r--ANDROID_3.4.5/include/linux/semaphore.h46
-rw-r--r--ANDROID_3.4.5/include/linux/seq_file.h160
-rw-r--r--ANDROID_3.4.5/include/linux/seq_file_net.h30
-rw-r--r--ANDROID_3.4.5/include/linux/seqlock.h282
-rw-r--r--ANDROID_3.4.5/include/linux/serial.h227
-rw-r--r--ANDROID_3.4.5/include/linux/serial167.h157
-rw-r--r--ANDROID_3.4.5/include/linux/serial_8250.h95
-rw-r--r--ANDROID_3.4.5/include/linux/serial_core.h560
-rw-r--r--ANDROID_3.4.5/include/linux/serial_max3100.h52
-rw-r--r--ANDROID_3.4.5/include/linux/serial_mfd.h47
-rw-r--r--ANDROID_3.4.5/include/linux/serial_pnx8xxx.h80
-rw-r--r--ANDROID_3.4.5/include/linux/serial_reg.h367
-rw-r--r--ANDROID_3.4.5/include/linux/serial_sci.h161
-rw-r--r--ANDROID_3.4.5/include/linux/serio.h206
-rw-r--r--ANDROID_3.4.5/include/linux/sfi.h206
-rw-r--r--ANDROID_3.4.5/include/linux/sfi_acpi.h93
-rw-r--r--ANDROID_3.4.5/include/linux/sh_clk.h161
-rw-r--r--ANDROID_3.4.5/include/linux/sh_dma.h113
-rw-r--r--ANDROID_3.4.5/include/linux/sh_eth.h26
-rw-r--r--ANDROID_3.4.5/include/linux/sh_intc.h150
-rw-r--r--ANDROID_3.4.5/include/linux/sh_pfc.h203
-rw-r--r--ANDROID_3.4.5/include/linux/sh_timer.h12
-rw-r--r--ANDROID_3.4.5/include/linux/sha256.h25
-rw-r--r--ANDROID_3.4.5/include/linux/shm.h130
-rw-r--r--ANDROID_3.4.5/include/linux/shmem_fs.h64
-rw-r--r--ANDROID_3.4.5/include/linux/shrinker.h43
-rw-r--r--ANDROID_3.4.5/include/linux/sht15.h34
-rw-r--r--ANDROID_3.4.5/include/linux/signal.h391
-rw-r--r--ANDROID_3.4.5/include/linux/signalfd.h76
-rw-r--r--ANDROID_3.4.5/include/linux/sirfsoc_dma.h6
-rw-r--r--ANDROID_3.4.5/include/linux/skbuff.h2559
-rw-r--r--ANDROID_3.4.5/include/linux/slab.h367
-rw-r--r--ANDROID_3.4.5/include/linux/slab_def.h215
-rw-r--r--ANDROID_3.4.5/include/linux/slob_def.h37
-rw-r--r--ANDROID_3.4.5/include/linux/slub_def.h319
-rw-r--r--ANDROID_3.4.5/include/linux/sm501-regs.h388
-rw-r--r--ANDROID_3.4.5/include/linux/sm501.h182
-rw-r--r--ANDROID_3.4.5/include/linux/smc911x.h13
-rw-r--r--ANDROID_3.4.5/include/linux/smc91x.h34
-rw-r--r--ANDROID_3.4.5/include/linux/smp.h230
-rw-r--r--ANDROID_3.4.5/include/linux/smsc911x.h62
-rw-r--r--ANDROID_3.4.5/include/linux/smscphy.h25
-rw-r--r--ANDROID_3.4.5/include/linux/snmp.h273
-rw-r--r--ANDROID_3.4.5/include/linux/sock_diag.h48
-rw-r--r--ANDROID_3.4.5/include/linux/socket.h343
-rw-r--r--ANDROID_3.4.5/include/linux/sockios.h149
-rw-r--r--ANDROID_3.4.5/include/linux/som.h154
-rw-r--r--ANDROID_3.4.5/include/linux/sonet.h75
-rw-r--r--ANDROID_3.4.5/include/linux/sony-laptop.h34
-rw-r--r--ANDROID_3.4.5/include/linux/sonypi.h171
-rw-r--r--ANDROID_3.4.5/include/linux/sort.h10
-rw-r--r--ANDROID_3.4.5/include/linux/sound.h48
-rw-r--r--ANDROID_3.4.5/include/linux/soundcard.h1292
-rw-r--r--ANDROID_3.4.5/include/linux/spi/74x164.h9
-rw-r--r--ANDROID_3.4.5/include/linux/spi/Kbuild1
-rw-r--r--ANDROID_3.4.5/include/linux/spi/ad7877.h24
-rw-r--r--ANDROID_3.4.5/include/linux/spi/ad7879.h39
-rw-r--r--ANDROID_3.4.5/include/linux/spi/ads7846.h60
-rw-r--r--ANDROID_3.4.5/include/linux/spi/at73c213.h25
-rw-r--r--ANDROID_3.4.5/include/linux/spi/corgi_lcd.h20
-rw-r--r--ANDROID_3.4.5/include/linux/spi/ds1305.h35
-rw-r--r--ANDROID_3.4.5/include/linux/spi/eeprom.h28
-rw-r--r--ANDROID_3.4.5/include/linux/spi/flash.h31
-rw-r--r--ANDROID_3.4.5/include/linux/spi/ifx_modem.h19
-rw-r--r--ANDROID_3.4.5/include/linux/spi/l4f00242t03.h29
-rw-r--r--ANDROID_3.4.5/include/linux/spi/libertas_spi.h29
-rw-r--r--ANDROID_3.4.5/include/linux/spi/lms283gf05.h28
-rw-r--r--ANDROID_3.4.5/include/linux/spi/max7301.h35
-rw-r--r--ANDROID_3.4.5/include/linux/spi/mc33880.h10
-rw-r--r--ANDROID_3.4.5/include/linux/spi/mcp23s08.h25
-rw-r--r--ANDROID_3.4.5/include/linux/spi/mmc_spi.h57
-rw-r--r--ANDROID_3.4.5/include/linux/spi/orion_spi.h17
-rw-r--r--ANDROID_3.4.5/include/linux/spi/pxa2xx_spi.h152
-rw-r--r--ANDROID_3.4.5/include/linux/spi/s3c24xx.h26
-rw-r--r--ANDROID_3.4.5/include/linux/spi/sh_hspi.h23
-rw-r--r--ANDROID_3.4.5/include/linux/spi/sh_msiof.h10
-rw-r--r--ANDROID_3.4.5/include/linux/spi/spi.h859
-rw-r--r--ANDROID_3.4.5/include/linux/spi/spi_bitbang.h52
-rw-r--r--ANDROID_3.4.5/include/linux/spi/spi_gpio.h71
-rw-r--r--ANDROID_3.4.5/include/linux/spi/spi_oc_tiny.h20
-rw-r--r--ANDROID_3.4.5/include/linux/spi/spidev.h131
-rw-r--r--ANDROID_3.4.5/include/linux/spi/tdo24m.h13
-rw-r--r--ANDROID_3.4.5/include/linux/spi/tle62x0.h24
-rw-r--r--ANDROID_3.4.5/include/linux/spi/tsc2005.h41
-rw-r--r--ANDROID_3.4.5/include/linux/spi/xilinx_spi.h20
-rw-r--r--ANDROID_3.4.5/include/linux/spinlock.h397
-rw-r--r--ANDROID_3.4.5/include/linux/spinlock_api_smp.h196
-rw-r--r--ANDROID_3.4.5/include/linux/spinlock_api_up.h85
-rw-r--r--ANDROID_3.4.5/include/linux/spinlock_types.h88
-rw-r--r--ANDROID_3.4.5/include/linux/spinlock_types_up.h37
-rw-r--r--ANDROID_3.4.5/include/linux/spinlock_up.h78
-rw-r--r--ANDROID_3.4.5/include/linux/splice.h94
-rw-r--r--ANDROID_3.4.5/include/linux/srcu.h239
-rw-r--r--ANDROID_3.4.5/include/linux/ssb/ssb.h625
-rw-r--r--ANDROID_3.4.5/include/linux/ssb/ssb_driver_chipcommon.h665
-rw-r--r--ANDROID_3.4.5/include/linux/ssb/ssb_driver_extif.h214
-rw-r--r--ANDROID_3.4.5/include/linux/ssb/ssb_driver_gige.h180
-rw-r--r--ANDROID_3.4.5/include/linux/ssb/ssb_driver_mips.h46
-rw-r--r--ANDROID_3.4.5/include/linux/ssb/ssb_driver_pci.h130
-rw-r--r--ANDROID_3.4.5/include/linux/ssb/ssb_embedded.h18
-rw-r--r--ANDROID_3.4.5/include/linux/ssb/ssb_regs.h594
-rw-r--r--ANDROID_3.4.5/include/linux/stackprotector.h16
-rw-r--r--ANDROID_3.4.5/include/linux/stacktrace.h37
-rw-r--r--ANDROID_3.4.5/include/linux/stallion.h147
-rw-r--r--ANDROID_3.4.5/include/linux/start_kernel.h12
-rw-r--r--ANDROID_3.4.5/include/linux/stat.h80
-rw-r--r--ANDROID_3.4.5/include/linux/statfs.h43
-rw-r--r--ANDROID_3.4.5/include/linux/static_key.h1
-rw-r--r--ANDROID_3.4.5/include/linux/stddef.h24
-rw-r--r--ANDROID_3.4.5/include/linux/stmmac.h61
-rw-r--r--ANDROID_3.4.5/include/linux/stop_machine.h156
-rw-r--r--ANDROID_3.4.5/include/linux/string.h148
-rw-r--r--ANDROID_3.4.5/include/linux/string_helpers.h16
-rw-r--r--ANDROID_3.4.5/include/linux/stringify.h12
-rw-r--r--ANDROID_3.4.5/include/linux/sungem_phy.h132
-rw-r--r--ANDROID_3.4.5/include/linux/sunrpc/Kbuild1
-rw-r--r--ANDROID_3.4.5/include/linux/sunrpc/auth.h162
-rw-r--r--ANDROID_3.4.5/include/linux/sunrpc/auth_gss.h91
-rw-r--r--ANDROID_3.4.5/include/linux/sunrpc/bc_xprt.h67
-rw-r--r--ANDROID_3.4.5/include/linux/sunrpc/cache.h263
-rw-r--r--ANDROID_3.4.5/include/linux/sunrpc/clnt.h319
-rw-r--r--ANDROID_3.4.5/include/linux/sunrpc/debug.h110
-rw-r--r--ANDROID_3.4.5/include/linux/sunrpc/gss_api.h141
-rw-r--r--ANDROID_3.4.5/include/linux/sunrpc/gss_asn1.h81
-rw-r--r--ANDROID_3.4.5/include/linux/sunrpc/gss_err.h167
-rw-r--r--ANDROID_3.4.5/include/linux/sunrpc/gss_krb5.h331
-rw-r--r--ANDROID_3.4.5/include/linux/sunrpc/gss_krb5_enctypes.h4
-rw-r--r--ANDROID_3.4.5/include/linux/sunrpc/metrics.h92
-rw-r--r--ANDROID_3.4.5/include/linux/sunrpc/msg_prot.h211
-rw-r--r--ANDROID_3.4.5/include/linux/sunrpc/rpc_pipe_fs.h97
-rw-r--r--ANDROID_3.4.5/include/linux/sunrpc/rpc_rdma.h118
-rw-r--r--ANDROID_3.4.5/include/linux/sunrpc/sched.h292
-rw-r--r--ANDROID_3.4.5/include/linux/sunrpc/stats.h84
-rw-r--r--ANDROID_3.4.5/include/linux/sunrpc/svc.h461
-rw-r--r--ANDROID_3.4.5/include/linux/sunrpc/svc_rdma.h310
-rw-r--r--ANDROID_3.4.5/include/linux/sunrpc/svc_xprt.h208
-rw-r--r--ANDROID_3.4.5/include/linux/sunrpc/svcauth.h180
-rw-r--r--ANDROID_3.4.5/include/linux/sunrpc/svcauth_gss.h28
-rw-r--r--ANDROID_3.4.5/include/linux/sunrpc/svcsock.h59
-rw-r--r--ANDROID_3.4.5/include/linux/sunrpc/timer.h49
-rw-r--r--ANDROID_3.4.5/include/linux/sunrpc/types.h22
-rw-r--r--ANDROID_3.4.5/include/linux/sunrpc/xdr.h231
-rw-r--r--ANDROID_3.4.5/include/linux/sunrpc/xprt.h404
-rw-r--r--ANDROID_3.4.5/include/linux/sunrpc/xprtrdma.h78
-rw-r--r--ANDROID_3.4.5/include/linux/sunrpc/xprtsock.h22
-rw-r--r--ANDROID_3.4.5/include/linux/sunserialcore.h33
-rw-r--r--ANDROID_3.4.5/include/linux/superhyway.h107
-rw-r--r--ANDROID_3.4.5/include/linux/suspend.h456
-rw-r--r--ANDROID_3.4.5/include/linux/suspend_ioctls.h33
-rw-r--r--ANDROID_3.4.5/include/linux/svga.h124
-rw-r--r--ANDROID_3.4.5/include/linux/sw_sync.h58
-rw-r--r--ANDROID_3.4.5/include/linux/swab.h299
-rw-r--r--ANDROID_3.4.5/include/linux/swap.h512
-rw-r--r--ANDROID_3.4.5/include/linux/swapops.h197
-rw-r--r--ANDROID_3.4.5/include/linux/swiotlb.h113
-rw-r--r--ANDROID_3.4.5/include/linux/switch.h53
-rw-r--r--ANDROID_3.4.5/include/linux/synaptics_i2c_rmi.h55
-rw-r--r--ANDROID_3.4.5/include/linux/sync.h426
-rw-r--r--ANDROID_3.4.5/include/linux/synclink.h323
-rw-r--r--ANDROID_3.4.5/include/linux/sys.h29
-rw-r--r--ANDROID_3.4.5/include/linux/sys_soc.h37
-rw-r--r--ANDROID_3.4.5/include/linux/syscalls.h861
-rw-r--r--ANDROID_3.4.5/include/linux/syscore_ops.h29
-rw-r--r--ANDROID_3.4.5/include/linux/sysctl.h1127
-rw-r--r--ANDROID_3.4.5/include/linux/sysfs.h346
-rw-r--r--ANDROID_3.4.5/include/linux/sysinfo.h24
-rw-r--r--ANDROID_3.4.5/include/linux/syslog.h52
-rw-r--r--ANDROID_3.4.5/include/linux/sysrq.h78
-rw-r--r--ANDROID_3.4.5/include/linux/sysv_fs.h213
-rw-r--r--ANDROID_3.4.5/include/linux/task_io_accounting.h45
-rw-r--r--ANDROID_3.4.5/include/linux/task_io_accounting_ops.h113
-rw-r--r--ANDROID_3.4.5/include/linux/taskstats.h213
-rw-r--r--ANDROID_3.4.5/include/linux/taskstats_kern.h36
-rw-r--r--ANDROID_3.4.5/include/linux/tboot.h162
-rw-r--r--ANDROID_3.4.5/include/linux/tc.h141
-rw-r--r--ANDROID_3.4.5/include/linux/tc_act/Kbuild7
-rw-r--r--ANDROID_3.4.5/include/linux/tc_act/tc_csum.h32
-rw-r--r--ANDROID_3.4.5/include/linux/tc_act/tc_defact.h19
-rw-r--r--ANDROID_3.4.5/include/linux/tc_act/tc_gact.h32
-rw-r--r--ANDROID_3.4.5/include/linux/tc_act/tc_ipt.h20
-rw-r--r--ANDROID_3.4.5/include/linux/tc_act/tc_mirred.h27
-rw-r--r--ANDROID_3.4.5/include/linux/tc_act/tc_nat.h27
-rw-r--r--ANDROID_3.4.5/include/linux/tc_act/tc_pedit.h34
-rw-r--r--ANDROID_3.4.5/include/linux/tc_act/tc_skbedit.h46
-rw-r--r--ANDROID_3.4.5/include/linux/tc_ematch/Kbuild4
-rw-r--r--ANDROID_3.4.5/include/linux/tc_ematch/tc_em_cmp.h25
-rw-r--r--ANDROID_3.4.5/include/linux/tc_ematch/tc_em_meta.h92
-rw-r--r--ANDROID_3.4.5/include/linux/tc_ematch/tc_em_nbyte.h13
-rw-r--r--ANDROID_3.4.5/include/linux/tc_ematch/tc_em_text.h19
-rw-r--r--ANDROID_3.4.5/include/linux/tca6416_keypad.h34
-rw-r--r--ANDROID_3.4.5/include/linux/tcp.h505
-rw-r--r--ANDROID_3.4.5/include/linux/telephony.h262
-rw-r--r--ANDROID_3.4.5/include/linux/termios.h22
-rw-r--r--ANDROID_3.4.5/include/linux/textsearch.h178
-rw-r--r--ANDROID_3.4.5/include/linux/textsearch_fsm.h48
-rw-r--r--ANDROID_3.4.5/include/linux/tfrc.h55
-rw-r--r--ANDROID_3.4.5/include/linux/thermal.h163
-rw-r--r--ANDROID_3.4.5/include/linux/thread_info.h128
-rw-r--r--ANDROID_3.4.5/include/linux/threads.h45
-rw-r--r--ANDROID_3.4.5/include/linux/ti_wilink_st.h448
-rw-r--r--ANDROID_3.4.5/include/linux/tick.h145
-rw-r--r--ANDROID_3.4.5/include/linux/tifm.h164
-rw-r--r--ANDROID_3.4.5/include/linux/timb_dma.h55
-rw-r--r--ANDROID_3.4.5/include/linux/timb_gpio.h37
-rw-r--r--ANDROID_3.4.5/include/linux/time.h314
-rw-r--r--ANDROID_3.4.5/include/linux/timecompare.h125
-rw-r--r--ANDROID_3.4.5/include/linux/timer.h302
-rw-r--r--ANDROID_3.4.5/include/linux/timerfd.h32
-rw-r--r--ANDROID_3.4.5/include/linux/timeriomem-rng.h21
-rw-r--r--ANDROID_3.4.5/include/linux/timerqueue.h50
-rw-r--r--ANDROID_3.4.5/include/linux/times.h13
-rw-r--r--ANDROID_3.4.5/include/linux/timex.h266
-rw-r--r--ANDROID_3.4.5/include/linux/tiocl.h39
-rw-r--r--ANDROID_3.4.5/include/linux/tipc.h209
-rw-r--r--ANDROID_3.4.5/include/linux/tipc_config.h395
-rw-r--r--ANDROID_3.4.5/include/linux/topology.h335
-rw-r--r--ANDROID_3.4.5/include/linux/toshiba.h40
-rw-r--r--ANDROID_3.4.5/include/linux/tpm.h46
-rw-r--r--ANDROID_3.4.5/include/linux/tpm_command.h28
-rw-r--r--ANDROID_3.4.5/include/linux/trace_clock.h20
-rw-r--r--ANDROID_3.4.5/include/linux/trace_seq.h97
-rw-r--r--ANDROID_3.4.5/include/linux/tracehook.h190
-rw-r--r--ANDROID_3.4.5/include/linux/tracepoint.h392
-rw-r--r--ANDROID_3.4.5/include/linux/transport_class.h102
-rw-r--r--ANDROID_3.4.5/include/linux/trdevice.h37
-rw-r--r--ANDROID_3.4.5/include/linux/tsacct_kern.h34
-rw-r--r--ANDROID_3.4.5/include/linux/tty.h672
-rw-r--r--ANDROID_3.4.5/include/linux/tty_driver.h412
-rw-r--r--ANDROID_3.4.5/include/linux/tty_flip.h28
-rw-r--r--ANDROID_3.4.5/include/linux/tty_ldisc.h166
-rw-r--r--ANDROID_3.4.5/include/linux/typecheck.h24
-rw-r--r--ANDROID_3.4.5/include/linux/types.h260
-rw-r--r--ANDROID_3.4.5/include/linux/u64_stats_sync.h140
-rw-r--r--ANDROID_3.4.5/include/linux/uaccess.h111
-rw-r--r--ANDROID_3.4.5/include/linux/ucb1400.h171
-rw-r--r--ANDROID_3.4.5/include/linux/udf_fs_i.h21
-rw-r--r--ANDROID_3.4.5/include/linux/udp.h101
-rw-r--r--ANDROID_3.4.5/include/linux/uhid.h104
-rw-r--r--ANDROID_3.4.5/include/linux/uid_stat.h29
-rw-r--r--ANDROID_3.4.5/include/linux/uinput.h176
-rw-r--r--ANDROID_3.4.5/include/linux/uio.h56
-rw-r--r--ANDROID_3.4.5/include/linux/uio_driver.h128
-rw-r--r--ANDROID_3.4.5/include/linux/ultrasound.h103
-rw-r--r--ANDROID_3.4.5/include/linux/un.h13
-rw-r--r--ANDROID_3.4.5/include/linux/unaligned/access_ok.h67
-rw-r--r--ANDROID_3.4.5/include/linux/unaligned/be_byteshift.h70
-rw-r--r--ANDROID_3.4.5/include/linux/unaligned/be_memmove.h36
-rw-r--r--ANDROID_3.4.5/include/linux/unaligned/be_struct.h36
-rw-r--r--ANDROID_3.4.5/include/linux/unaligned/generic.h68
-rw-r--r--ANDROID_3.4.5/include/linux/unaligned/le_byteshift.h70
-rw-r--r--ANDROID_3.4.5/include/linux/unaligned/le_memmove.h36
-rw-r--r--ANDROID_3.4.5/include/linux/unaligned/le_struct.h36
-rw-r--r--ANDROID_3.4.5/include/linux/unaligned/memmove.h45
-rw-r--r--ANDROID_3.4.5/include/linux/unaligned/packed_struct.h46
-rw-r--r--ANDROID_3.4.5/include/linux/unistd.h9
-rw-r--r--ANDROID_3.4.5/include/linux/unix_diag.h54
-rw-r--r--ANDROID_3.4.5/include/linux/usb.h1669
-rw-r--r--ANDROID_3.4.5/include/linux/usb/Kbuild10
-rw-r--r--ANDROID_3.4.5/include/linux/usb/association.h150
-rw-r--r--ANDROID_3.4.5/include/linux/usb/atmel_usba_udc.h23
-rw-r--r--ANDROID_3.4.5/include/linux/usb/audio-v2.h459
-rw-r--r--ANDROID_3.4.5/include/linux/usb/audio.h566
-rw-r--r--ANDROID_3.4.5/include/linux/usb/c67x00.h48
-rw-r--r--ANDROID_3.4.5/include/linux/usb/cdc-wdm.h19
-rw-r--r--ANDROID_3.4.5/include/linux/usb/cdc.h412
-rw-r--r--ANDROID_3.4.5/include/linux/usb/ch11.h264
-rw-r--r--ANDROID_3.4.5/include/linux/usb/ch9.h946
-rw-r--r--ANDROID_3.4.5/include/linux/usb/composite.h388
-rw-r--r--ANDROID_3.4.5/include/linux/usb/ehci_def.h225
-rw-r--r--ANDROID_3.4.5/include/linux/usb/ehci_pdriver.h46
-rw-r--r--ANDROID_3.4.5/include/linux/usb/f_accessory.h146
-rw-r--r--ANDROID_3.4.5/include/linux/usb/f_mtp.h75
-rw-r--r--ANDROID_3.4.5/include/linux/usb/functionfs.h199
-rw-r--r--ANDROID_3.4.5/include/linux/usb/g_hid.h32
-rw-r--r--ANDROID_3.4.5/include/linux/usb/g_printer.h35
-rw-r--r--ANDROID_3.4.5/include/linux/usb/gadget.h975
-rw-r--r--ANDROID_3.4.5/include/linux/usb/gadgetfs.h88
-rw-r--r--ANDROID_3.4.5/include/linux/usb/gpio_vbus.h30
-rw-r--r--ANDROID_3.4.5/include/linux/usb/hcd.h696
-rw-r--r--ANDROID_3.4.5/include/linux/usb/input.h25
-rw-r--r--ANDROID_3.4.5/include/linux/usb/intel_mid_otg.h180
-rw-r--r--ANDROID_3.4.5/include/linux/usb/iowarrior.h42
-rw-r--r--ANDROID_3.4.5/include/linux/usb/irda.h151
-rw-r--r--ANDROID_3.4.5/include/linux/usb/isp116x.h33
-rw-r--r--ANDROID_3.4.5/include/linux/usb/isp1362.h46
-rw-r--r--ANDROID_3.4.5/include/linux/usb/isp1760.h18
-rw-r--r--ANDROID_3.4.5/include/linux/usb/langwell_udc.h310
-rw-r--r--ANDROID_3.4.5/include/linux/usb/m66592.h46
-rw-r--r--ANDROID_3.4.5/include/linux/usb/midi.h112
-rw-r--r--ANDROID_3.4.5/include/linux/usb/msm_hsusb.h185
-rw-r--r--ANDROID_3.4.5/include/linux/usb/msm_hsusb_hw.h57
-rw-r--r--ANDROID_3.4.5/include/linux/usb/musb.h152
-rw-r--r--ANDROID_3.4.5/include/linux/usb/net2280.h443
-rw-r--r--ANDROID_3.4.5/include/linux/usb/ohci_pdriver.h38
-rw-r--r--ANDROID_3.4.5/include/linux/usb/otg.h279
-rw-r--r--ANDROID_3.4.5/include/linux/usb/quirks.h33
-rw-r--r--ANDROID_3.4.5/include/linux/usb/r8a66597.h481
-rwxr-xr-xANDROID_3.4.5/include/linux/usb/rawbulk.h166
-rw-r--r--ANDROID_3.4.5/include/linux/usb/renesas_usbhs.h196
-rw-r--r--ANDROID_3.4.5/include/linux/usb/rndis_host.h272
-rw-r--r--ANDROID_3.4.5/include/linux/usb/serial.h417
-rw-r--r--ANDROID_3.4.5/include/linux/usb/sl811.h29
-rw-r--r--ANDROID_3.4.5/include/linux/usb/storage.h86
-rw-r--r--ANDROID_3.4.5/include/linux/usb/tmc.h43
-rw-r--r--ANDROID_3.4.5/include/linux/usb/uas.h69
-rw-r--r--ANDROID_3.4.5/include/linux/usb/ulpi.h192
-rw-r--r--ANDROID_3.4.5/include/linux/usb/usbnet.h232
-rw-r--r--ANDROID_3.4.5/include/linux/usb/video.h568
-rw-r--r--ANDROID_3.4.5/include/linux/usb/wusb-wa.h272
-rw-r--r--ANDROID_3.4.5/include/linux/usb/wusb.h375
-rw-r--r--ANDROID_3.4.5/include/linux/usb_usual.h102
-rw-r--r--ANDROID_3.4.5/include/linux/usbdevice_fs.h207
-rw-r--r--ANDROID_3.4.5/include/linux/user-return-notifier.h49
-rw-r--r--ANDROID_3.4.5/include/linux/user.h1
-rw-r--r--ANDROID_3.4.5/include/linux/user_namespace.h71
-rw-r--r--ANDROID_3.4.5/include/linux/utime.h11
-rw-r--r--ANDROID_3.4.5/include/linux/uts.h19
-rw-r--r--ANDROID_3.4.5/include/linux/utsname.h113
-rw-r--r--ANDROID_3.4.5/include/linux/uuid.h70
-rw-r--r--ANDROID_3.4.5/include/linux/uvcvideo.h69
-rw-r--r--ANDROID_3.4.5/include/linux/uwb.h831
-rw-r--r--ANDROID_3.4.5/include/linux/uwb/debug-cmd.h68
-rw-r--r--ANDROID_3.4.5/include/linux/uwb/spec.h780
-rw-r--r--ANDROID_3.4.5/include/linux/uwb/umc.h195
-rw-r--r--ANDROID_3.4.5/include/linux/uwb/whci.h117
-rw-r--r--ANDROID_3.4.5/include/linux/v4l2-mediabus.h114
-rw-r--r--ANDROID_3.4.5/include/linux/v4l2-subdev.h141
-rw-r--r--ANDROID_3.4.5/include/linux/vermagic.h33
-rw-r--r--ANDROID_3.4.5/include/linux/veth.h12
-rw-r--r--ANDROID_3.4.5/include/linux/vfs.h6
-rw-r--r--ANDROID_3.4.5/include/linux/vga_switcheroo.h59
-rw-r--r--ANDROID_3.4.5/include/linux/vgaarb.h244
-rw-r--r--ANDROID_3.4.5/include/linux/vhost.h130
-rw-r--r--ANDROID_3.4.5/include/linux/via-core.h236
-rw-r--r--ANDROID_3.4.5/include/linux/via-gpio.h14
-rw-r--r--ANDROID_3.4.5/include/linux/via.h22
-rw-r--r--ANDROID_3.4.5/include/linux/via_i2c.h42
-rw-r--r--ANDROID_3.4.5/include/linux/video_output.h57
-rw-r--r--ANDROID_3.4.5/include/linux/videodev2.h2416
-rwxr-xr-xANDROID_3.4.5/include/linux/videodev2_wmt.h196
-rw-r--r--ANDROID_3.4.5/include/linux/virtio.h105
-rw-r--r--ANDROID_3.4.5/include/linux/virtio_9p.h44
-rw-r--r--ANDROID_3.4.5/include/linux/virtio_balloon.h59
-rw-r--r--ANDROID_3.4.5/include/linux/virtio_blk.h122
-rw-r--r--ANDROID_3.4.5/include/linux/virtio_config.h203
-rw-r--r--ANDROID_3.4.5/include/linux/virtio_console.h77
-rw-r--r--ANDROID_3.4.5/include/linux/virtio_ids.h41
-rw-r--r--ANDROID_3.4.5/include/linux/virtio_mmio.h111
-rw-r--r--ANDROID_3.4.5/include/linux/virtio_net.h155
-rw-r--r--ANDROID_3.4.5/include/linux/virtio_pci.h95
-rw-r--r--ANDROID_3.4.5/include/linux/virtio_ring.h182
-rw-r--r--ANDROID_3.4.5/include/linux/virtio_rng.h8
-rw-r--r--ANDROID_3.4.5/include/linux/virtio_scsi.h114
-rw-r--r--ANDROID_3.4.5/include/linux/vlynq.h162
-rw-r--r--ANDROID_3.4.5/include/linux/vm_event_item.h65
-rw-r--r--ANDROID_3.4.5/include/linux/vmalloc.h160
-rw-r--r--ANDROID_3.4.5/include/linux/vmstat.h263
-rw-r--r--ANDROID_3.4.5/include/linux/vt.h113
-rw-r--r--ANDROID_3.4.5/include/linux/vt_buffer.h63
-rw-r--r--ANDROID_3.4.5/include/linux/vt_kern.h196
-rw-r--r--ANDROID_3.4.5/include/linux/w1-gpio.h24
-rw-r--r--ANDROID_3.4.5/include/linux/wait.h668
-rw-r--r--ANDROID_3.4.5/include/linux/wakelock.h67
-rw-r--r--ANDROID_3.4.5/include/linux/wanrouter.h532
-rw-r--r--ANDROID_3.4.5/include/linux/watchdog.h155
-rw-r--r--ANDROID_3.4.5/include/linux/wifi_tiwlan.h27
-rw-r--r--ANDROID_3.4.5/include/linux/wimax.h239
-rw-r--r--ANDROID_3.4.5/include/linux/wimax/Kbuild1
-rw-r--r--ANDROID_3.4.5/include/linux/wimax/debug.h526
-rw-r--r--ANDROID_3.4.5/include/linux/wimax/i2400m.h572
-rw-r--r--ANDROID_3.4.5/include/linux/wireless.h1162
-rw-r--r--ANDROID_3.4.5/include/linux/wl127x-rfkill.h35
-rw-r--r--ANDROID_3.4.5/include/linux/wl12xx.h81
-rw-r--r--ANDROID_3.4.5/include/linux/wlan_plat.h27
-rw-r--r--ANDROID_3.4.5/include/linux/wm97xx.h337
-rwxr-xr-xANDROID_3.4.5/include/linux/wmt-efuse-stub.h32
-rwxr-xr-xANDROID_3.4.5/include/linux/wmt-mb.h98
-rwxr-xr-xANDROID_3.4.5/include/linux/wmt-se.h37
-rwxr-xr-xANDROID_3.4.5/include/linux/wmt_battery.h37
-rw-r--r--ANDROID_3.4.5/include/linux/workqueue.h450
-rw-r--r--ANDROID_3.4.5/include/linux/writeback.h201
-rw-r--r--ANDROID_3.4.5/include/linux/x25.h152
-rw-r--r--ANDROID_3.4.5/include/linux/xattr.h101
-rw-r--r--ANDROID_3.4.5/include/linux/xfrm.h504
-rw-r--r--ANDROID_3.4.5/include/linux/xilinxfb.h30
-rw-r--r--ANDROID_3.4.5/include/linux/xz.h264
-rw-r--r--ANDROID_3.4.5/include/linux/yam.h82
-rw-r--r--ANDROID_3.4.5/include/linux/z2_battery.h17
-rw-r--r--ANDROID_3.4.5/include/linux/zconf.h57
-rw-r--r--ANDROID_3.4.5/include/linux/zlib.h711
-rw-r--r--ANDROID_3.4.5/include/linux/zorro.h234
-rw-r--r--ANDROID_3.4.5/include/linux/zorro_ids.h552
-rw-r--r--ANDROID_3.4.5/include/linux/zutil.h106
-rw-r--r--ANDROID_3.4.5/include/math-emu/double.h205
-rw-r--r--ANDROID_3.4.5/include/math-emu/op-1.h303
-rw-r--r--ANDROID_3.4.5/include/math-emu/op-2.h613
-rw-r--r--ANDROID_3.4.5/include/math-emu/op-4.h692
-rw-r--r--ANDROID_3.4.5/include/math-emu/op-8.h107
-rw-r--r--ANDROID_3.4.5/include/math-emu/op-common.h871
-rw-r--r--ANDROID_3.4.5/include/math-emu/quad.h208
-rw-r--r--ANDROID_3.4.5/include/math-emu/single.h116
-rw-r--r--ANDROID_3.4.5/include/math-emu/soft-fp.h207
-rw-r--r--ANDROID_3.4.5/include/media/adp1653.h126
-rw-r--r--ANDROID_3.4.5/include/media/adv7183.h47
-rw-r--r--ANDROID_3.4.5/include/media/adv7343.h23
-rw-r--r--ANDROID_3.4.5/include/media/ak881x.h25
-rw-r--r--ANDROID_3.4.5/include/media/as3645a.h71
-rw-r--r--ANDROID_3.4.5/include/media/atmel-isi.h121
-rw-r--r--ANDROID_3.4.5/include/media/blackfin/bfin_capture.h37
-rw-r--r--ANDROID_3.4.5/include/media/blackfin/ppi.h74
-rw-r--r--ANDROID_3.4.5/include/media/bt819.h36
-rw-r--r--ANDROID_3.4.5/include/media/cs5345.h39
-rw-r--r--ANDROID_3.4.5/include/media/cs53l32a.h34
-rw-r--r--ANDROID_3.4.5/include/media/cx2341x.h295
-rw-r--r--ANDROID_3.4.5/include/media/cx25840.h188
-rw-r--r--ANDROID_3.4.5/include/media/davinci/ccdc_types.h43
-rw-r--r--ANDROID_3.4.5/include/media/davinci/dm355_ccdc.h321
-rw-r--r--ANDROID_3.4.5/include/media/davinci/dm644x_ccdc.h184
-rw-r--r--ANDROID_3.4.5/include/media/davinci/isif.h531
-rw-r--r--ANDROID_3.4.5/include/media/davinci/vpbe.h200
-rw-r--r--ANDROID_3.4.5/include/media/davinci/vpbe_display.h147
-rw-r--r--ANDROID_3.4.5/include/media/davinci/vpbe_osd.h394
-rw-r--r--ANDROID_3.4.5/include/media/davinci/vpbe_types.h91
-rw-r--r--ANDROID_3.4.5/include/media/davinci/vpbe_venc.h49
-rw-r--r--ANDROID_3.4.5/include/media/davinci/vpfe_capture.h202
-rw-r--r--ANDROID_3.4.5/include/media/davinci/vpfe_types.h51
-rw-r--r--ANDROID_3.4.5/include/media/davinci/vpif_types.h73
-rw-r--r--ANDROID_3.4.5/include/media/davinci/vpss.h108
-rw-r--r--ANDROID_3.4.5/include/media/gpio-ir-recv.h22
-rw-r--r--ANDROID_3.4.5/include/media/i2c-addr.h42
-rw-r--r--ANDROID_3.4.5/include/media/ir-kbd-i2c.h52
-rw-r--r--ANDROID_3.4.5/include/media/lirc.h168
-rw-r--r--ANDROID_3.4.5/include/media/lirc_dev.h225
-rw-r--r--ANDROID_3.4.5/include/media/m52790.h93
-rw-r--r--ANDROID_3.4.5/include/media/m5mols.h33
-rw-r--r--ANDROID_3.4.5/include/media/media-device.h96
-rw-r--r--ANDROID_3.4.5/include/media/media-devnode.h97
-rw-r--r--ANDROID_3.4.5/include/media/media-entity.h151
-rw-r--r--ANDROID_3.4.5/include/media/mmp-camera.h9
-rw-r--r--ANDROID_3.4.5/include/media/msp3400.h226
-rw-r--r--ANDROID_3.4.5/include/media/mt9m032.h36
-rw-r--r--ANDROID_3.4.5/include/media/mt9p031.h19
-rw-r--r--ANDROID_3.4.5/include/media/mt9t001.h8
-rw-r--r--ANDROID_3.4.5/include/media/mt9t112.h30
-rw-r--r--ANDROID_3.4.5/include/media/mt9v011.h17
-rw-r--r--ANDROID_3.4.5/include/media/mt9v032.h12
-rw-r--r--ANDROID_3.4.5/include/media/noon010pc30.h28
-rw-r--r--ANDROID_3.4.5/include/media/omap1_camera.h35
-rw-r--r--ANDROID_3.4.5/include/media/omap3isp.h140
-rw-r--r--ANDROID_3.4.5/include/media/ov7670.h20
-rw-r--r--ANDROID_3.4.5/include/media/ov772x.h59
-rw-r--r--ANDROID_3.4.5/include/media/radio-si4713.h30
-rw-r--r--ANDROID_3.4.5/include/media/rc-core.h229
-rw-r--r--ANDROID_3.4.5/include/media/rc-map.h162
-rw-r--r--ANDROID_3.4.5/include/media/rj54n1cb0c.h19
-rw-r--r--ANDROID_3.4.5/include/media/s5k6aa.h51
-rw-r--r--ANDROID_3.4.5/include/media/s5p_fimc.h67
-rw-r--r--ANDROID_3.4.5/include/media/s5p_hdmi.h35
-rw-r--r--ANDROID_3.4.5/include/media/saa6588.h42
-rw-r--r--ANDROID_3.4.5/include/media/saa6752hs.h26
-rw-r--r--ANDROID_3.4.5/include/media/saa7115.h56
-rw-r--r--ANDROID_3.4.5/include/media/saa7127.h41
-rw-r--r--ANDROID_3.4.5/include/media/saa7146.h475
-rw-r--r--ANDROID_3.4.5/include/media/saa7146_vv.h264
-rw-r--r--ANDROID_3.4.5/include/media/sh_mobile_ceu.h26
-rw-r--r--ANDROID_3.4.5/include/media/sh_mobile_csi2.h48
-rw-r--r--ANDROID_3.4.5/include/media/sh_vou.h33
-rw-r--r--ANDROID_3.4.5/include/media/si4713.h48
-rw-r--r--ANDROID_3.4.5/include/media/sii9234.h24
-rw-r--r--ANDROID_3.4.5/include/media/soc_camera.h291
-rw-r--r--ANDROID_3.4.5/include/media/soc_camera_platform.h79
-rw-r--r--ANDROID_3.4.5/include/media/soc_mediabus.h88
-rw-r--r--ANDROID_3.4.5/include/media/sr030pc30.h21
-rw-r--r--ANDROID_3.4.5/include/media/timb_radio.h30
-rw-r--r--ANDROID_3.4.5/include/media/timb_video.h33
-rw-r--r--ANDROID_3.4.5/include/media/tuner-types.h131
-rw-r--r--ANDROID_3.4.5/include/media/tuner.h197
-rw-r--r--ANDROID_3.4.5/include/media/tvaudio.h49
-rw-r--r--ANDROID_3.4.5/include/media/tveeprom.h38
-rw-r--r--ANDROID_3.4.5/include/media/tvp514x.h114
-rw-r--r--ANDROID_3.4.5/include/media/tvp5150.h34
-rw-r--r--ANDROID_3.4.5/include/media/tvp7002.h56
-rw-r--r--ANDROID_3.4.5/include/media/tw9910.h38
-rw-r--r--ANDROID_3.4.5/include/media/upd64031a.h40
-rw-r--r--ANDROID_3.4.5/include/media/upd64083.h58
-rw-r--r--ANDROID_3.4.5/include/media/v4l2-chip-ident.h332
-rw-r--r--ANDROID_3.4.5/include/media/v4l2-common.h215
-rw-r--r--ANDROID_3.4.5/include/media/v4l2-ctrls.h528
-rw-r--r--ANDROID_3.4.5/include/media/v4l2-dev.h206
-rw-r--r--ANDROID_3.4.5/include/media/v4l2-device.h193
-rw-r--r--ANDROID_3.4.5/include/media/v4l2-event.h123
-rw-r--r--ANDROID_3.4.5/include/media/v4l2-fh.h101
-rw-r--r--ANDROID_3.4.5/include/media/v4l2-int-device.h308
-rw-r--r--ANDROID_3.4.5/include/media/v4l2-ioctl.h336
-rw-r--r--ANDROID_3.4.5/include/media/v4l2-mediabus.h107
-rw-r--r--ANDROID_3.4.5/include/media/v4l2-mem2mem.h215
-rw-r--r--ANDROID_3.4.5/include/media/v4l2-subdev.h613
-rw-r--r--ANDROID_3.4.5/include/media/videobuf-core.h238
-rw-r--r--ANDROID_3.4.5/include/media/videobuf-dma-contig.h33
-rw-r--r--ANDROID_3.4.5/include/media/videobuf-dma-sg.h110
-rw-r--r--ANDROID_3.4.5/include/media/videobuf-dvb.h66
-rw-r--r--ANDROID_3.4.5/include/media/videobuf-vmalloc.h46
-rw-r--r--ANDROID_3.4.5/include/media/videobuf2-core.h407
-rw-r--r--ANDROID_3.4.5/include/media/videobuf2-dma-contig.h32
-rw-r--r--ANDROID_3.4.5/include/media/videobuf2-dma-sg.h32
-rw-r--r--ANDROID_3.4.5/include/media/videobuf2-memops.h45
-rw-r--r--ANDROID_3.4.5/include/media/videobuf2-vmalloc.h20
-rw-r--r--ANDROID_3.4.5/include/media/wm8775.h44
-rw-r--r--ANDROID_3.4.5/include/misc/altera.h49
-rw-r--r--ANDROID_3.4.5/include/mtd/Kbuild5
-rw-r--r--ANDROID_3.4.5/include/mtd/inftl-user.h91
-rw-r--r--ANDROID_3.4.5/include/mtd/mtd-abi.h302
-rw-r--r--ANDROID_3.4.5/include/mtd/mtd-user.h35
-rw-r--r--ANDROID_3.4.5/include/mtd/nftl-user.h90
-rw-r--r--ANDROID_3.4.5/include/mtd/ubi-user.h415
-rw-r--r--ANDROID_3.4.5/include/net/9p/9p.h577
-rw-r--r--ANDROID_3.4.5/include/net/9p/client.h271
-rw-r--r--ANDROID_3.4.5/include/net/9p/transport.h67
-rw-r--r--ANDROID_3.4.5/include/net/act_api.h126
-rw-r--r--ANDROID_3.4.5/include/net/activity_stats.h25
-rw-r--r--ANDROID_3.4.5/include/net/addrconf.h285
-rw-r--r--ANDROID_3.4.5/include/net/af_ieee802154.h62
-rw-r--r--ANDROID_3.4.5/include/net/af_rxrpc.h54
-rw-r--r--ANDROID_3.4.5/include/net/af_unix.h78
-rw-r--r--ANDROID_3.4.5/include/net/ah.h25
-rw-r--r--ANDROID_3.4.5/include/net/arp.h59
-rw-r--r--ANDROID_3.4.5/include/net/atmclip.h52
-rw-r--r--ANDROID_3.4.5/include/net/ax25.h451
-rw-r--r--ANDROID_3.4.5/include/net/ax88796.h31
-rw-r--r--ANDROID_3.4.5/include/net/bluetooth/bluetooth.h290
-rw-r--r--ANDROID_3.4.5/include/net/bluetooth/hci.h1441
-rw-r--r--ANDROID_3.4.5/include/net/bluetooth/hci_core.h1080
-rw-r--r--ANDROID_3.4.5/include/net/bluetooth/hci_mon.h51
-rw-r--r--ANDROID_3.4.5/include/net/bluetooth/l2cap.h865
-rw-r--r--ANDROID_3.4.5/include/net/bluetooth/mgmt.h462
-rw-r--r--ANDROID_3.4.5/include/net/bluetooth/rfcomm.h372
-rw-r--r--ANDROID_3.4.5/include/net/bluetooth/sco.h81
-rw-r--r--ANDROID_3.4.5/include/net/bluetooth/smp.h146
-rw-r--r--ANDROID_3.4.5/include/net/caif/caif_dev.h128
-rw-r--r--ANDROID_3.4.5/include/net/caif/caif_device.h55
-rw-r--r--ANDROID_3.4.5/include/net/caif/caif_hsi.h161
-rw-r--r--ANDROID_3.4.5/include/net/caif/caif_layer.h279
-rw-r--r--ANDROID_3.4.5/include/net/caif/caif_shm.h26
-rw-r--r--ANDROID_3.4.5/include/net/caif/caif_spi.h155
-rw-r--r--ANDROID_3.4.5/include/net/caif/cfcnfg.h90
-rw-r--r--ANDROID_3.4.5/include/net/caif/cfctrl.h130
-rw-r--r--ANDROID_3.4.5/include/net/caif/cffrml.h21
-rw-r--r--ANDROID_3.4.5/include/net/caif/cfmuxl.h20
-rw-r--r--ANDROID_3.4.5/include/net/caif/cfpkt.h198
-rw-r--r--ANDROID_3.4.5/include/net/caif/cfserl.h12
-rw-r--r--ANDROID_3.4.5/include/net/caif/cfsrvl.h65
-rw-r--r--ANDROID_3.4.5/include/net/cfg80211-wext.h55
-rw-r--r--ANDROID_3.4.5/include/net/cfg80211.h3399
-rw-r--r--ANDROID_3.4.5/include/net/checksum.h121
-rw-r--r--ANDROID_3.4.5/include/net/cipso_ipv4.h319
-rw-r--r--ANDROID_3.4.5/include/net/cls_cgroup.h70
-rw-r--r--ANDROID_3.4.5/include/net/compat.h63
-rw-r--r--ANDROID_3.4.5/include/net/datalink.h18
-rw-r--r--ANDROID_3.4.5/include/net/dcbevent.h49
-rw-r--r--ANDROID_3.4.5/include/net/dcbnl.h102
-rw-r--r--ANDROID_3.4.5/include/net/dn.h233
-rw-r--r--ANDROID_3.4.5/include/net/dn_dev.h198
-rw-r--r--ANDROID_3.4.5/include/net/dn_fib.h184
-rw-r--r--ANDROID_3.4.5/include/net/dn_neigh.h28
-rw-r--r--ANDROID_3.4.5/include/net/dn_nsp.h201
-rw-r--r--ANDROID_3.4.5/include/net/dn_route.h117
-rw-r--r--ANDROID_3.4.5/include/net/dsa.h201
-rw-r--r--ANDROID_3.4.5/include/net/dsfield.h54
-rw-r--r--ANDROID_3.4.5/include/net/dst.h473
-rw-r--r--ANDROID_3.4.5/include/net/dst_ops.h68
-rw-r--r--ANDROID_3.4.5/include/net/esp.h25
-rw-r--r--ANDROID_3.4.5/include/net/ethoc.h22
-rw-r--r--ANDROID_3.4.5/include/net/fib_rules.h119
-rw-r--r--ANDROID_3.4.5/include/net/flow.h226
-rw-r--r--ANDROID_3.4.5/include/net/flow_keys.h16
-rw-r--r--ANDROID_3.4.5/include/net/garp.h130
-rw-r--r--ANDROID_3.4.5/include/net/gen_stats.h50
-rw-r--r--ANDROID_3.4.5/include/net/genetlink.h317
-rw-r--r--ANDROID_3.4.5/include/net/gre.h18
-rw-r--r--ANDROID_3.4.5/include/net/icmp.h48
-rw-r--r--ANDROID_3.4.5/include/net/ieee80211_radiotap.h283
-rw-r--r--ANDROID_3.4.5/include/net/ieee802154.h166
-rw-r--r--ANDROID_3.4.5/include/net/ieee802154_netdev.h121
-rw-r--r--ANDROID_3.4.5/include/net/if_inet6.h304
-rw-r--r--ANDROID_3.4.5/include/net/inet6_connection_sock.h45
-rw-r--r--ANDROID_3.4.5/include/net/inet6_hashtables.h114
-rw-r--r--ANDROID_3.4.5/include/net/inet_common.h44
-rw-r--r--ANDROID_3.4.5/include/net/inet_connection_sock.h339
-rw-r--r--ANDROID_3.4.5/include/net/inet_ecn.h148
-rw-r--r--ANDROID_3.4.5/include/net/inet_frag.h74
-rw-r--r--ANDROID_3.4.5/include/net/inet_hashtables.h402
-rw-r--r--ANDROID_3.4.5/include/net/inet_sock.h253
-rw-r--r--ANDROID_3.4.5/include/net/inet_timewait_sock.h229
-rw-r--r--ANDROID_3.4.5/include/net/inetpeer.h129
-rw-r--r--ANDROID_3.4.5/include/net/ip.h475
-rw-r--r--ANDROID_3.4.5/include/net/ip6_checksum.h94
-rw-r--r--ANDROID_3.4.5/include/net/ip6_fib.h288
-rw-r--r--ANDROID_3.4.5/include/net/ip6_route.h195
-rw-r--r--ANDROID_3.4.5/include/net/ip6_tunnel.h32
-rw-r--r--ANDROID_3.4.5/include/net/ip_fib.h285
-rw-r--r--ANDROID_3.4.5/include/net/ip_vs.h1426
-rw-r--r--ANDROID_3.4.5/include/net/ipcomp.h29
-rw-r--r--ANDROID_3.4.5/include/net/ipconfig.h25
-rw-r--r--ANDROID_3.4.5/include/net/ipip.h67
-rw-r--r--ANDROID_3.4.5/include/net/ipv6.h688
-rw-r--r--ANDROID_3.4.5/include/net/ipx.h160
-rw-r--r--ANDROID_3.4.5/include/net/irda/af_irda.h87
-rw-r--r--ANDROID_3.4.5/include/net/irda/crc.h29
-rw-r--r--ANDROID_3.4.5/include/net/irda/discovery.h97
-rw-r--r--ANDROID_3.4.5/include/net/irda/ircomm_core.h108
-rw-r--r--ANDROID_3.4.5/include/net/irda/ircomm_event.h85
-rw-r--r--ANDROID_3.4.5/include/net/irda/ircomm_lmp.h38
-rw-r--r--ANDROID_3.4.5/include/net/irda/ircomm_param.h149
-rw-r--r--ANDROID_3.4.5/include/net/irda/ircomm_ttp.h39
-rw-r--r--ANDROID_3.4.5/include/net/irda/ircomm_tty.h138
-rw-r--r--ANDROID_3.4.5/include/net/irda/ircomm_tty_attach.h94
-rw-r--r--ANDROID_3.4.5/include/net/irda/irda.h131
-rw-r--r--ANDROID_3.4.5/include/net/irda/irda_device.h287
-rw-r--r--ANDROID_3.4.5/include/net/irda/iriap.h108
-rw-r--r--ANDROID_3.4.5/include/net/irda/iriap_event.h85
-rw-r--r--ANDROID_3.4.5/include/net/irda/irias_object.h108
-rw-r--r--ANDROID_3.4.5/include/net/irda/irlan_client.h42
-rw-r--r--ANDROID_3.4.5/include/net/irda/irlan_common.h229
-rw-r--r--ANDROID_3.4.5/include/net/irda/irlan_eth.h32
-rw-r--r--ANDROID_3.4.5/include/net/irda/irlan_event.h81
-rw-r--r--ANDROID_3.4.5/include/net/irda/irlan_filter.h35
-rw-r--r--ANDROID_3.4.5/include/net/irda/irlan_provider.h52
-rw-r--r--ANDROID_3.4.5/include/net/irda/irlap.h311
-rw-r--r--ANDROID_3.4.5/include/net/irda/irlap_event.h131
-rw-r--r--ANDROID_3.4.5/include/net/irda/irlap_frame.h169
-rw-r--r--ANDROID_3.4.5/include/net/irda/irlmp.h294
-rw-r--r--ANDROID_3.4.5/include/net/irda/irlmp_event.h98
-rw-r--r--ANDROID_3.4.5/include/net/irda/irlmp_frame.h62
-rw-r--r--ANDROID_3.4.5/include/net/irda/irmod.h109
-rw-r--r--ANDROID_3.4.5/include/net/irda/irqueue.h96
-rw-r--r--ANDROID_3.4.5/include/net/irda/irttp.h210
-rw-r--r--ANDROID_3.4.5/include/net/irda/parameters.h102
-rw-r--r--ANDROID_3.4.5/include/net/irda/qos.h103
-rw-r--r--ANDROID_3.4.5/include/net/irda/timer.h105
-rw-r--r--ANDROID_3.4.5/include/net/irda/wrapper.h58
-rw-r--r--ANDROID_3.4.5/include/net/iucv/af_iucv.h155
-rw-r--r--ANDROID_3.4.5/include/net/iucv/iucv.h495
-rw-r--r--ANDROID_3.4.5/include/net/iw_handler.h587
-rw-r--r--ANDROID_3.4.5/include/net/lapb.h152
-rw-r--r--ANDROID_3.4.5/include/net/lib80211.h124
-rw-r--r--ANDROID_3.4.5/include/net/llc.h159
-rw-r--r--ANDROID_3.4.5/include/net/llc_c_ac.h202
-rw-r--r--ANDROID_3.4.5/include/net/llc_c_ev.h269
-rw-r--r--ANDROID_3.4.5/include/net/llc_c_st.h48
-rw-r--r--ANDROID_3.4.5/include/net/llc_conn.h122
-rw-r--r--ANDROID_3.4.5/include/net/llc_if.h99
-rw-r--r--ANDROID_3.4.5/include/net/llc_pdu.h437
-rw-r--r--ANDROID_3.4.5/include/net/llc_s_ac.h39
-rw-r--r--ANDROID_3.4.5/include/net/llc_s_ev.h67
-rw-r--r--ANDROID_3.4.5/include/net/llc_s_st.h32
-rw-r--r--ANDROID_3.4.5/include/net/llc_sap.h36
-rw-r--r--ANDROID_3.4.5/include/net/mac80211.h3713
-rw-r--r--ANDROID_3.4.5/include/net/mip6.h54
-rw-r--r--ANDROID_3.4.5/include/net/mld.h75
-rw-r--r--ANDROID_3.4.5/include/net/ndisc.h183
-rw-r--r--ANDROID_3.4.5/include/net/neighbour.h407
-rw-r--r--ANDROID_3.4.5/include/net/net_namespace.h292
-rw-r--r--ANDROID_3.4.5/include/net/net_ratelimit.h8
-rw-r--r--ANDROID_3.4.5/include/net/netdma.h32
-rw-r--r--ANDROID_3.4.5/include/net/netevent.h30
-rw-r--r--ANDROID_3.4.5/include/net/netfilter/ipv4/nf_conntrack_ipv4.h24
-rw-r--r--ANDROID_3.4.5/include/net/netfilter/ipv4/nf_defrag_ipv4.h6
-rw-r--r--ANDROID_3.4.5/include/net/netfilter/ipv6/nf_conntrack_icmpv6.h20
-rw-r--r--ANDROID_3.4.5/include/net/netfilter/ipv6/nf_conntrack_ipv6.h13
-rw-r--r--ANDROID_3.4.5/include/net/netfilter/ipv6/nf_defrag_ipv6.h16
-rw-r--r--ANDROID_3.4.5/include/net/netfilter/nf_conntrack.h336
-rw-r--r--ANDROID_3.4.5/include/net/netfilter/nf_conntrack_acct.h63
-rw-r--r--ANDROID_3.4.5/include/net/netfilter/nf_conntrack_core.h79
-rw-r--r--ANDROID_3.4.5/include/net/netfilter/nf_conntrack_ecache.h245
-rw-r--r--ANDROID_3.4.5/include/net/netfilter/nf_conntrack_expect.h111
-rw-r--r--ANDROID_3.4.5/include/net/netfilter/nf_conntrack_extend.h110
-rw-r--r--ANDROID_3.4.5/include/net/netfilter/nf_conntrack_helper.h85
-rw-r--r--ANDROID_3.4.5/include/net/netfilter/nf_conntrack_l3proto.h95
-rw-r--r--ANDROID_3.4.5/include/net/netfilter/nf_conntrack_l4proto.h152
-rw-r--r--ANDROID_3.4.5/include/net/netfilter/nf_conntrack_timeout.h78
-rw-r--r--ANDROID_3.4.5/include/net/netfilter/nf_conntrack_timestamp.h65
-rw-r--r--ANDROID_3.4.5/include/net/netfilter/nf_conntrack_tuple.h186
-rw-r--r--ANDROID_3.4.5/include/net/netfilter/nf_conntrack_zones.h25
-rw-r--r--ANDROID_3.4.5/include/net/netfilter/nf_log.h65
-rw-r--r--ANDROID_3.4.5/include/net/netfilter/nf_nat.h69
-rw-r--r--ANDROID_3.4.5/include/net/netfilter/nf_nat_core.h36
-rw-r--r--ANDROID_3.4.5/include/net/netfilter/nf_nat_helper.h57
-rw-r--r--ANDROID_3.4.5/include/net/netfilter/nf_nat_protocol.h67
-rw-r--r--ANDROID_3.4.5/include/net/netfilter/nf_nat_rule.h15
-rw-r--r--ANDROID_3.4.5/include/net/netfilter/nf_queue.h34
-rw-r--r--ANDROID_3.4.5/include/net/netfilter/nf_tproxy_core.h208
-rw-r--r--ANDROID_3.4.5/include/net/netfilter/nfnetlink_log.h16
-rw-r--r--ANDROID_3.4.5/include/net/netfilter/xt_log.h54
-rw-r--r--ANDROID_3.4.5/include/net/netfilter/xt_rateest.h22
-rw-r--r--ANDROID_3.4.5/include/net/netlabel.h590
-rw-r--r--ANDROID_3.4.5/include/net/netlink.h1072
-rw-r--r--ANDROID_3.4.5/include/net/netns/conntrack.h37
-rw-r--r--ANDROID_3.4.5/include/net/netns/core.h16
-rw-r--r--ANDROID_3.4.5/include/net/netns/dccp.h11
-rw-r--r--ANDROID_3.4.5/include/net/netns/generic.h48
-rw-r--r--ANDROID_3.4.5/include/net/netns/hash.h21
-rw-r--r--ANDROID_3.4.5/include/net/netns/ipv4.h72
-rw-r--r--ANDROID_3.4.5/include/net/netns/ipv6.h70
-rw-r--r--ANDROID_3.4.5/include/net/netns/mib.h28
-rw-r--r--ANDROID_3.4.5/include/net/netns/packet.h15
-rw-r--r--ANDROID_3.4.5/include/net/netns/unix.h13
-rw-r--r--ANDROID_3.4.5/include/net/netns/x_tables.h18
-rw-r--r--ANDROID_3.4.5/include/net/netns/xfrm.h64
-rw-r--r--ANDROID_3.4.5/include/net/netprio_cgroup.h88
-rw-r--r--ANDROID_3.4.5/include/net/netrom.h270
-rw-r--r--ANDROID_3.4.5/include/net/nexthop.h33
-rw-r--r--ANDROID_3.4.5/include/net/nfc/nci.h364
-rw-r--r--ANDROID_3.4.5/include/net/nfc/nci_core.h199
-rw-r--r--ANDROID_3.4.5/include/net/nfc/nfc.h188
-rw-r--r--ANDROID_3.4.5/include/net/nl802154.h126
-rw-r--r--ANDROID_3.4.5/include/net/p8022.h13
-rw-r--r--ANDROID_3.4.5/include/net/phonet/gprs.h38
-rw-r--r--ANDROID_3.4.5/include/net/phonet/pep.h168
-rw-r--r--ANDROID_3.4.5/include/net/phonet/phonet.h119
-rw-r--r--ANDROID_3.4.5/include/net/phonet/pn_dev.h62
-rw-r--r--ANDROID_3.4.5/include/net/ping.h99
-rw-r--r--ANDROID_3.4.5/include/net/pkt_cls.h359
-rw-r--r--ANDROID_3.4.5/include/net/pkt_sched.h115
-rw-r--r--ANDROID_3.4.5/include/net/protocol.h110
-rw-r--r--ANDROID_3.4.5/include/net/psnap.h11
-rw-r--r--ANDROID_3.4.5/include/net/raw.h75
-rw-r--r--ANDROID_3.4.5/include/net/rawv6.h20
-rw-r--r--ANDROID_3.4.5/include/net/red.h405
-rw-r--r--ANDROID_3.4.5/include/net/regulatory.h122
-rw-r--r--ANDROID_3.4.5/include/net/request_sock.h258
-rw-r--r--ANDROID_3.4.5/include/net/rose.h241
-rw-r--r--ANDROID_3.4.5/include/net/route.h324
-rw-r--r--ANDROID_3.4.5/include/net/rtnetlink.h133
-rw-r--r--ANDROID_3.4.5/include/net/sch_generic.h674
-rw-r--r--ANDROID_3.4.5/include/net/scm.h131
-rw-r--r--ANDROID_3.4.5/include/net/sctp/auth.h127
-rw-r--r--ANDROID_3.4.5/include/net/sctp/checksum.h83
-rw-r--r--ANDROID_3.4.5/include/net/sctp/command.h225
-rw-r--r--ANDROID_3.4.5/include/net/sctp/constants.h442
-rw-r--r--ANDROID_3.4.5/include/net/sctp/sctp.h720
-rw-r--r--ANDROID_3.4.5/include/net/sctp/sm.h448
-rw-r--r--ANDROID_3.4.5/include/net/sctp/structs.h2037
-rw-r--r--ANDROID_3.4.5/include/net/sctp/tsnmap.h178
-rw-r--r--ANDROID_3.4.5/include/net/sctp/ulpevent.h171
-rw-r--r--ANDROID_3.4.5/include/net/sctp/ulpqueue.h94
-rw-r--r--ANDROID_3.4.5/include/net/sctp/user.h744
-rw-r--r--ANDROID_3.4.5/include/net/secure_seq.h20
-rw-r--r--ANDROID_3.4.5/include/net/slhc_vj.h183
-rw-r--r--ANDROID_3.4.5/include/net/snmp.h217
-rw-r--r--ANDROID_3.4.5/include/net/sock.h2157
-rw-r--r--ANDROID_3.4.5/include/net/stp.h14
-rw-r--r--ANDROID_3.4.5/include/net/tc_act/tc_csum.h15
-rw-r--r--ANDROID_3.4.5/include/net/tc_act/tc_defact.h14
-rw-r--r--ANDROID_3.4.5/include/net/tc_act/tc_gact.h17
-rw-r--r--ANDROID_3.4.5/include/net/tc_act/tc_ipt.h17
-rw-r--r--ANDROID_3.4.5/include/net/tc_act/tc_mirred.h17
-rw-r--r--ANDROID_3.4.5/include/net/tc_act/tc_nat.h21
-rw-r--r--ANDROID_3.4.5/include/net/tc_act/tc_pedit.h15
-rw-r--r--ANDROID_3.4.5/include/net/tc_act/tc_skbedit.h36
-rw-r--r--ANDROID_3.4.5/include/net/tcp.h1581
-rw-r--r--ANDROID_3.4.5/include/net/tcp_memcontrol.h19
-rw-r--r--ANDROID_3.4.5/include/net/tcp_states.h50
-rw-r--r--ANDROID_3.4.5/include/net/timewait_sock.h51
-rw-r--r--ANDROID_3.4.5/include/net/transp_v6.h61
-rw-r--r--ANDROID_3.4.5/include/net/udp.h270
-rw-r--r--ANDROID_3.4.5/include/net/udplite.h132
-rw-r--r--ANDROID_3.4.5/include/net/wext.h60
-rw-r--r--ANDROID_3.4.5/include/net/wimax.h519
-rw-r--r--ANDROID_3.4.5/include/net/wpan-phy.h82
-rw-r--r--ANDROID_3.4.5/include/net/x25.h323
-rw-r--r--ANDROID_3.4.5/include/net/x25device.h17
-rw-r--r--ANDROID_3.4.5/include/net/xfrm.h1693
-rw-r--r--ANDROID_3.4.5/include/pcmcia/ciscode.h131
-rw-r--r--ANDROID_3.4.5/include/pcmcia/cisreg.h120
-rw-r--r--ANDROID_3.4.5/include/pcmcia/cistpl.h580
-rw-r--r--ANDROID_3.4.5/include/pcmcia/device_id.h284
-rw-r--r--ANDROID_3.4.5/include/pcmcia/ds.h275
-rw-r--r--ANDROID_3.4.5/include/pcmcia/ss.h266
-rw-r--r--ANDROID_3.4.5/include/rdma/Kbuild6
-rw-r--r--ANDROID_3.4.5/include/rdma/ib_addr.h287
-rw-r--r--ANDROID_3.4.5/include/rdma/ib_cache.h116
-rw-r--r--ANDROID_3.4.5/include/rdma/ib_cm.h592
-rw-r--r--ANDROID_3.4.5/include/rdma/ib_fmr_pool.h93
-rw-r--r--ANDROID_3.4.5/include/rdma/ib_mad.h664
-rw-r--r--ANDROID_3.4.5/include/rdma/ib_marshall.h53
-rw-r--r--ANDROID_3.4.5/include/rdma/ib_pack.h267
-rw-r--r--ANDROID_3.4.5/include/rdma/ib_pma.h156
-rw-r--r--ANDROID_3.4.5/include/rdma/ib_sa.h388
-rw-r--r--ANDROID_3.4.5/include/rdma/ib_smi.h128
-rw-r--r--ANDROID_3.4.5/include/rdma/ib_umem.h83
-rw-r--r--ANDROID_3.4.5/include/rdma/ib_user_cm.h325
-rw-r--r--ANDROID_3.4.5/include/rdma/ib_user_mad.h203
-rw-r--r--ANDROID_3.4.5/include/rdma/ib_user_sa.h76
-rw-r--r--ANDROID_3.4.5/include/rdma/ib_user_verbs.h734
-rw-r--r--ANDROID_3.4.5/include/rdma/ib_verbs.h2174
-rw-r--r--ANDROID_3.4.5/include/rdma/iw_cm.h251
-rw-r--r--ANDROID_3.4.5/include/rdma/rdma_cm.h360
-rw-r--r--ANDROID_3.4.5/include/rdma/rdma_cm_ib.h54
-rw-r--r--ANDROID_3.4.5/include/rdma/rdma_netlink.h92
-rw-r--r--ANDROID_3.4.5/include/rdma/rdma_user_cm.h248
-rw-r--r--ANDROID_3.4.5/include/rxrpc/packet.h214
-rw-r--r--ANDROID_3.4.5/include/rxrpc/types.h41
-rw-r--r--ANDROID_3.4.5/include/scsi/Kbuild4
-rw-r--r--ANDROID_3.4.5/include/scsi/fc/Kbuild4
-rw-r--r--ANDROID_3.4.5/include/scsi/fc/fc_els.h831
-rw-r--r--ANDROID_3.4.5/include/scsi/fc/fc_encaps.h138
-rw-r--r--ANDROID_3.4.5/include/scsi/fc/fc_fc2.h123
-rw-r--r--ANDROID_3.4.5/include/scsi/fc/fc_fcoe.h108
-rw-r--r--ANDROID_3.4.5/include/scsi/fc/fc_fcp.h210
-rw-r--r--ANDROID_3.4.5/include/scsi/fc/fc_fip.h280
-rw-r--r--ANDROID_3.4.5/include/scsi/fc/fc_fs.h348
-rw-r--r--ANDROID_3.4.5/include/scsi/fc/fc_gs.h96
-rw-r--r--ANDROID_3.4.5/include/scsi/fc/fc_ms.h213
-rw-r--r--ANDROID_3.4.5/include/scsi/fc/fc_ns.h208
-rw-r--r--ANDROID_3.4.5/include/scsi/fc_encode.h739
-rw-r--r--ANDROID_3.4.5/include/scsi/fc_frame.h261
-rw-r--r--ANDROID_3.4.5/include/scsi/iscsi_if.h598
-rw-r--r--ANDROID_3.4.5/include/scsi/iscsi_proto.h666
-rw-r--r--ANDROID_3.4.5/include/scsi/libfc.h1139
-rw-r--r--ANDROID_3.4.5/include/scsi/libfcoe.h350
-rw-r--r--ANDROID_3.4.5/include/scsi/libiscsi.h449
-rw-r--r--ANDROID_3.4.5/include/scsi/libiscsi_tcp.h134
-rw-r--r--ANDROID_3.4.5/include/scsi/libsas.h728
-rw-r--r--ANDROID_3.4.5/include/scsi/libsrp.h78
-rw-r--r--ANDROID_3.4.5/include/scsi/osd_attributes.h397
-rw-r--r--ANDROID_3.4.5/include/scsi/osd_initiator.h515
-rw-r--r--ANDROID_3.4.5/include/scsi/osd_ore.h200
-rw-r--r--ANDROID_3.4.5/include/scsi/osd_protocol.h676
-rw-r--r--ANDROID_3.4.5/include/scsi/osd_sec.h45
-rw-r--r--ANDROID_3.4.5/include/scsi/osd_sense.h263
-rw-r--r--ANDROID_3.4.5/include/scsi/osd_types.h45
-rw-r--r--ANDROID_3.4.5/include/scsi/sas.h650
-rw-r--r--ANDROID_3.4.5/include/scsi/sas_ata.h90
-rw-r--r--ANDROID_3.4.5/include/scsi/scsi.h565
-rw-r--r--ANDROID_3.4.5/include/scsi/scsi_bsg_fc.h322
-rw-r--r--ANDROID_3.4.5/include/scsi/scsi_bsg_iscsi.h110
-rw-r--r--ANDROID_3.4.5/include/scsi/scsi_cmnd.h320
-rw-r--r--ANDROID_3.4.5/include/scsi/scsi_dbg.h24
-rw-r--r--ANDROID_3.4.5/include/scsi/scsi_device.h487
-rw-r--r--ANDROID_3.4.5/include/scsi/scsi_devinfo.h33
-rw-r--r--ANDROID_3.4.5/include/scsi/scsi_dh.h87
-rw-r--r--ANDROID_3.4.5/include/scsi/scsi_driver.h38
-rw-r--r--ANDROID_3.4.5/include/scsi/scsi_eh.h95
-rw-r--r--ANDROID_3.4.5/include/scsi/scsi_host.h921
-rw-r--r--ANDROID_3.4.5/include/scsi/scsi_ioctl.h48
-rw-r--r--ANDROID_3.4.5/include/scsi/scsi_netlink.h147
-rw-r--r--ANDROID_3.4.5/include/scsi/scsi_netlink_fc.h71
-rw-r--r--ANDROID_3.4.5/include/scsi/scsi_scan.h11
-rw-r--r--ANDROID_3.4.5/include/scsi/scsi_tcq.h175
-rw-r--r--ANDROID_3.4.5/include/scsi/scsi_tgt.h21
-rw-r--r--ANDROID_3.4.5/include/scsi/scsi_tgt_if.h108
-rw-r--r--ANDROID_3.4.5/include/scsi/scsi_transport.h122
-rw-r--r--ANDROID_3.4.5/include/scsi/scsi_transport_fc.h843
-rw-r--r--ANDROID_3.4.5/include/scsi/scsi_transport_iscsi.h333
-rw-r--r--ANDROID_3.4.5/include/scsi/scsi_transport_sas.h237
-rw-r--r--ANDROID_3.4.5/include/scsi/scsi_transport_spi.h161
-rw-r--r--ANDROID_3.4.5/include/scsi/scsi_transport_srp.h39
-rw-r--r--ANDROID_3.4.5/include/scsi/scsicam.h19
-rw-r--r--ANDROID_3.4.5/include/scsi/sg.h311
-rw-r--r--ANDROID_3.4.5/include/scsi/srp.h280
-rw-r--r--ANDROID_3.4.5/include/sound/Kbuild10
-rw-r--r--ANDROID_3.4.5/include/sound/ac97_codec.h659
-rw-r--r--ANDROID_3.4.5/include/sound/aci.h90
-rw-r--r--ANDROID_3.4.5/include/sound/ad1816a.h175
-rw-r--r--ANDROID_3.4.5/include/sound/ad1843.h46
-rw-r--r--ANDROID_3.4.5/include/sound/adau1373.h34
-rw-r--r--ANDROID_3.4.5/include/sound/ak4113.h321
-rw-r--r--ANDROID_3.4.5/include/sound/ak4114.h203
-rw-r--r--ANDROID_3.4.5/include/sound/ak4117.h189
-rw-r--r--ANDROID_3.4.5/include/sound/ak4531_codec.h85
-rw-r--r--ANDROID_3.4.5/include/sound/ak4641.h26
-rw-r--r--ANDROID_3.4.5/include/sound/ak4xxx-adda.h99
-rw-r--r--ANDROID_3.4.5/include/sound/alc5623.h15
-rw-r--r--ANDROID_3.4.5/include/sound/asequencer.h678
-rw-r--r--ANDROID_3.4.5/include/sound/asound.h921
-rw-r--r--ANDROID_3.4.5/include/sound/asound_fm.h134
-rw-r--r--ANDROID_3.4.5/include/sound/asoundef.h284
-rw-r--r--ANDROID_3.4.5/include/sound/atmel-abdac.h23
-rw-r--r--ANDROID_3.4.5/include/sound/atmel-ac97c.h40
-rw-r--r--ANDROID_3.4.5/include/sound/compress_driver.h167
-rw-r--r--ANDROID_3.4.5/include/sound/compress_offload.h161
-rw-r--r--ANDROID_3.4.5/include/sound/compress_params.h399
-rw-r--r--ANDROID_3.4.5/include/sound/control.h243
-rw-r--r--ANDROID_3.4.5/include/sound/core.h474
-rw-r--r--ANDROID_3.4.5/include/sound/cs4231-regs.h187
-rw-r--r--ANDROID_3.4.5/include/sound/cs4271.h24
-rw-r--r--ANDROID_3.4.5/include/sound/cs46xx.h1745
-rw-r--r--ANDROID_3.4.5/include/sound/cs46xx_dsp_scb_types.h1213
-rw-r--r--ANDROID_3.4.5/include/sound/cs46xx_dsp_spos.h234
-rw-r--r--ANDROID_3.4.5/include/sound/cs46xx_dsp_task_types.h252
-rw-r--r--ANDROID_3.4.5/include/sound/cs8403.h257
-rw-r--r--ANDROID_3.4.5/include/sound/cs8427.h201
-rw-r--r--ANDROID_3.4.5/include/sound/dmaengine_pcm.h49
-rw-r--r--ANDROID_3.4.5/include/sound/emu10k1.h2248
-rw-r--r--ANDROID_3.4.5/include/sound/emu10k1_synth.h39
-rw-r--r--ANDROID_3.4.5/include/sound/emu8000.h121
-rw-r--r--ANDROID_3.4.5/include/sound/emu8000_reg.h207
-rw-r--r--ANDROID_3.4.5/include/sound/emux_legacy.h146
-rw-r--r--ANDROID_3.4.5/include/sound/emux_synth.h244
-rw-r--r--ANDROID_3.4.5/include/sound/es1688.h122
-rw-r--r--ANDROID_3.4.5/include/sound/gus.h631
-rw-r--r--ANDROID_3.4.5/include/sound/hda_hwdep.h44
-rw-r--r--ANDROID_3.4.5/include/sound/hdsp.h110
-rw-r--r--ANDROID_3.4.5/include/sound/hdspm.h229
-rw-r--r--ANDROID_3.4.5/include/sound/hwdep.h82
-rw-r--r--ANDROID_3.4.5/include/sound/i2c.h104
-rw-r--r--ANDROID_3.4.5/include/sound/info.h202
-rw-r--r--ANDROID_3.4.5/include/sound/initval.h90
-rw-r--r--ANDROID_3.4.5/include/sound/jack.h99
-rw-r--r--ANDROID_3.4.5/include/sound/l3.h18
-rw-r--r--ANDROID_3.4.5/include/sound/max9768.h24
-rw-r--r--ANDROID_3.4.5/include/sound/max98088.h50
-rw-r--r--ANDROID_3.4.5/include/sound/max98095.h54
-rw-r--r--ANDROID_3.4.5/include/sound/memalloc.h136
-rw-r--r--ANDROID_3.4.5/include/sound/minors.h112
-rw-r--r--ANDROID_3.4.5/include/sound/mixer_oss.h81
-rw-r--r--ANDROID_3.4.5/include/sound/mpu401.h138
-rw-r--r--ANDROID_3.4.5/include/sound/opl3.h393
-rw-r--r--ANDROID_3.4.5/include/sound/opl4.h32
-rw-r--r--ANDROID_3.4.5/include/sound/pcm-indirect.h177
-rw-r--r--ANDROID_3.4.5/include/sound/pcm.h1076
-rw-r--r--ANDROID_3.4.5/include/sound/pcm_oss.h89
-rw-r--r--ANDROID_3.4.5/include/sound/pcm_params.h355
-rw-r--r--ANDROID_3.4.5/include/sound/pt2258.h37
-rw-r--r--ANDROID_3.4.5/include/sound/pxa2xx-lib.h45
-rw-r--r--ANDROID_3.4.5/include/sound/rawmidi.h189
-rw-r--r--ANDROID_3.4.5/include/sound/s3c24xx_uda134x.h14
-rw-r--r--ANDROID_3.4.5/include/sound/saif.h16
-rw-r--r--ANDROID_3.4.5/include/sound/sb.h375
-rw-r--r--ANDROID_3.4.5/include/sound/sb16_csp.h188
-rw-r--r--ANDROID_3.4.5/include/sound/seq_device.h84
-rw-r--r--ANDROID_3.4.5/include/sound/seq_kernel.h116
-rw-r--r--ANDROID_3.4.5/include/sound/seq_midi_emul.h197
-rw-r--r--ANDROID_3.4.5/include/sound/seq_midi_event.h54
-rw-r--r--ANDROID_3.4.5/include/sound/seq_oss.h96
-rw-r--r--ANDROID_3.4.5/include/sound/seq_oss_legacy.h31
-rw-r--r--ANDROID_3.4.5/include/sound/seq_virmidi.h81
-rw-r--r--ANDROID_3.4.5/include/sound/sfnt_info.h212
-rw-r--r--ANDROID_3.4.5/include/sound/sh_dac_audio.h21
-rw-r--r--ANDROID_3.4.5/include/sound/sh_fsi.h99
-rw-r--r--ANDROID_3.4.5/include/sound/snd_wavefront.h142
-rw-r--r--ANDROID_3.4.5/include/sound/soc-dai.h290
-rw-r--r--ANDROID_3.4.5/include/sound/soc-dapm.h582
-rw-r--r--ANDROID_3.4.5/include/sound/soc.h1029
-rw-r--r--ANDROID_3.4.5/include/sound/soundfont.h129
-rw-r--r--ANDROID_3.4.5/include/sound/sta32x.h35
-rw-r--r--ANDROID_3.4.5/include/sound/tea575x-tuner.h68
-rw-r--r--ANDROID_3.4.5/include/sound/tea6330t.h31
-rw-r--r--ANDROID_3.4.5/include/sound/timer.h143
-rw-r--r--ANDROID_3.4.5/include/sound/tlv.h76
-rw-r--r--ANDROID_3.4.5/include/sound/tlv320aic32x4.h31
-rw-r--r--ANDROID_3.4.5/include/sound/tlv320aic3x.h58
-rw-r--r--ANDROID_3.4.5/include/sound/tlv320dac33-plat.h24
-rw-r--r--ANDROID_3.4.5/include/sound/tpa6130a2-plat.h30
-rw-r--r--ANDROID_3.4.5/include/sound/trident.h445
-rw-r--r--ANDROID_3.4.5/include/sound/uda134x.h39
-rw-r--r--ANDROID_3.4.5/include/sound/uda1380.h22
-rw-r--r--ANDROID_3.4.5/include/sound/util_mem.h64
-rw-r--r--ANDROID_3.4.5/include/sound/version.h3
-rw-r--r--ANDROID_3.4.5/include/sound/vx_core.h557
-rw-r--r--ANDROID_3.4.5/include/sound/wavefront.h695
-rw-r--r--ANDROID_3.4.5/include/sound/wm1250-ev1.h27
-rw-r--r--ANDROID_3.4.5/include/sound/wm2000.h26
-rw-r--r--ANDROID_3.4.5/include/sound/wm2200.h41
-rw-r--r--ANDROID_3.4.5/include/sound/wm5100.h59
-rw-r--r--ANDROID_3.4.5/include/sound/wm8903.h266
-rw-r--r--ANDROID_3.4.5/include/sound/wm8904.h163
-rw-r--r--ANDROID_3.4.5/include/sound/wm8955.h26
-rw-r--r--ANDROID_3.4.5/include/sound/wm8960.h24
-rw-r--r--ANDROID_3.4.5/include/sound/wm8962.h60
-rw-r--r--ANDROID_3.4.5/include/sound/wm8993.h44
-rw-r--r--ANDROID_3.4.5/include/sound/wm8996.h55
-rw-r--r--ANDROID_3.4.5/include/sound/wm9081.h28
-rw-r--r--ANDROID_3.4.5/include/sound/wm9090.h28
-rw-r--r--ANDROID_3.4.5/include/sound/wss.h235
-rw-r--r--ANDROID_3.4.5/include/sound/ymfpci.h390
-rw-r--r--ANDROID_3.4.5/include/target/configfs_macros.h147
-rw-r--r--ANDROID_3.4.5/include/target/target_core_backend.h67
-rw-r--r--ANDROID_3.4.5/include/target/target_core_base.h960
-rw-r--r--ANDROID_3.4.5/include/target/target_core_configfs.h56
-rw-r--r--ANDROID_3.4.5/include/target/target_core_fabric.h191
-rw-r--r--ANDROID_3.4.5/include/target/target_core_fabric_configfs.h106
-rw-r--r--ANDROID_3.4.5/include/trace/define_trace.h113
-rw-r--r--ANDROID_3.4.5/include/trace/events/9p.h176
-rw-r--r--ANDROID_3.4.5/include/trace/events/asoc.h330
-rw-r--r--ANDROID_3.4.5/include/trace/events/block.h571
-rw-r--r--ANDROID_3.4.5/include/trace/events/btrfs.h912
-rw-r--r--ANDROID_3.4.5/include/trace/events/compaction.h74
-rw-r--r--ANDROID_3.4.5/include/trace/events/cpufreq_interactive.h112
-rw-r--r--ANDROID_3.4.5/include/trace/events/ext3.h864
-rw-r--r--ANDROID_3.4.5/include/trace/events/ext4.h2061
-rw-r--r--ANDROID_3.4.5/include/trace/events/gfpflags.h41
-rw-r--r--ANDROID_3.4.5/include/trace/events/gpio.h56
-rw-r--r--ANDROID_3.4.5/include/trace/events/irq.h150
-rw-r--r--ANDROID_3.4.5/include/trace/events/jbd.h203
-rw-r--r--ANDROID_3.4.5/include/trace/events/jbd2.h262
-rw-r--r--ANDROID_3.4.5/include/trace/events/kmem.h308
-rw-r--r--ANDROID_3.4.5/include/trace/events/kvm.h312
-rw-r--r--ANDROID_3.4.5/include/trace/events/lock.h86
-rw-r--r--ANDROID_3.4.5/include/trace/events/mce.h69
-rw-r--r--ANDROID_3.4.5/include/trace/events/module.h131
-rw-r--r--ANDROID_3.4.5/include/trace/events/napi.h38
-rw-r--r--ANDROID_3.4.5/include/trace/events/net.h84
-rw-r--r--ANDROID_3.4.5/include/trace/events/oom.h33
-rw-r--r--ANDROID_3.4.5/include/trace/events/power.h294
-rw-r--r--ANDROID_3.4.5/include/trace/events/printk.h41
-rw-r--r--ANDROID_3.4.5/include/trace/events/rcu.h570
-rw-r--r--ANDROID_3.4.5/include/trace/events/regmap.h181
-rw-r--r--ANDROID_3.4.5/include/trace/events/regulator.h141
-rw-r--r--ANDROID_3.4.5/include/trace/events/rpm.h100
-rw-r--r--ANDROID_3.4.5/include/trace/events/sched.h432
-rw-r--r--ANDROID_3.4.5/include/trace/events/scsi.h365
-rw-r--r--ANDROID_3.4.5/include/trace/events/signal.h125
-rw-r--r--ANDROID_3.4.5/include/trace/events/skb.h75
-rw-r--r--ANDROID_3.4.5/include/trace/events/sock.h68
-rw-r--r--ANDROID_3.4.5/include/trace/events/sunrpc.h177
-rw-r--r--ANDROID_3.4.5/include/trace/events/sync.h82
-rw-r--r--ANDROID_3.4.5/include/trace/events/syscalls.h75
-rw-r--r--ANDROID_3.4.5/include/trace/events/task.h61
-rw-r--r--ANDROID_3.4.5/include/trace/events/timer.h329
-rw-r--r--ANDROID_3.4.5/include/trace/events/udp.h32
-rw-r--r--ANDROID_3.4.5/include/trace/events/vmscan.h483
-rw-r--r--ANDROID_3.4.5/include/trace/events/workqueue.h121
-rw-r--r--ANDROID_3.4.5/include/trace/events/writeback.h470
-rw-r--r--ANDROID_3.4.5/include/trace/events/xen.h506
-rw-r--r--ANDROID_3.4.5/include/trace/ftrace.h778
-rw-r--r--ANDROID_3.4.5/include/trace/syscall.h57
-rw-r--r--ANDROID_3.4.5/include/video/Kbuild3
-rw-r--r--ANDROID_3.4.5/include/video/atmel_lcdc.h219
-rw-r--r--ANDROID_3.4.5/include/video/aty128.h422
-rw-r--r--ANDROID_3.4.5/include/video/broadsheetfb.h74
-rw-r--r--ANDROID_3.4.5/include/video/cirrus.h122
-rw-r--r--ANDROID_3.4.5/include/video/cvisionppc.h51
-rw-r--r--ANDROID_3.4.5/include/video/da8xx-fb.h104
-rw-r--r--ANDROID_3.4.5/include/video/edid.h14
-rw-r--r--ANDROID_3.4.5/include/video/epson1355.h64
-rw-r--r--ANDROID_3.4.5/include/video/exynos_dp.h131
-rw-r--r--ANDROID_3.4.5/include/video/exynos_mipi_dsim.h359
-rw-r--r--ANDROID_3.4.5/include/video/gbe.h317
-rw-r--r--ANDROID_3.4.5/include/video/hecubafb.h51
-rw-r--r--ANDROID_3.4.5/include/video/iga.h24
-rw-r--r--ANDROID_3.4.5/include/video/ili9320.h201
-rw-r--r--ANDROID_3.4.5/include/video/kyro.h93
-rw-r--r--ANDROID_3.4.5/include/video/mach64.h1378
-rw-r--r--ANDROID_3.4.5/include/video/maxinefb.h38
-rw-r--r--ANDROID_3.4.5/include/video/mbxfb.h98
-rw-r--r--ANDROID_3.4.5/include/video/metronomefb.h57
-rw-r--r--ANDROID_3.4.5/include/video/mipi_display.h130
-rw-r--r--ANDROID_3.4.5/include/video/neomagic.h192
-rw-r--r--ANDROID_3.4.5/include/video/newport.h583
-rw-r--r--ANDROID_3.4.5/include/video/omap-panel-dvi.h37
-rw-r--r--ANDROID_3.4.5/include/video/omap-panel-generic-dpi.h37
-rw-r--r--ANDROID_3.4.5/include/video/omap-panel-n8x0.h15
-rw-r--r--ANDROID_3.4.5/include/video/omap-panel-nokia-dsi.h29
-rw-r--r--ANDROID_3.4.5/include/video/omap-panel-picodlp.h23
-rw-r--r--ANDROID_3.4.5/include/video/omapdss.h715
-rw-r--r--ANDROID_3.4.5/include/video/permedia2.h254
-rw-r--r--ANDROID_3.4.5/include/video/platform_lcd.h21
-rw-r--r--ANDROID_3.4.5/include/video/pm3fb.h1061
-rw-r--r--ANDROID_3.4.5/include/video/pmag-ba-fb.h27
-rw-r--r--ANDROID_3.4.5/include/video/pmagb-b-fb.h58
-rw-r--r--ANDROID_3.4.5/include/video/pxa168fb.h125
-rw-r--r--ANDROID_3.4.5/include/video/radeon.h1993
-rw-r--r--ANDROID_3.4.5/include/video/s1d13xxxfb.h174
-rw-r--r--ANDROID_3.4.5/include/video/sa1100fb.h63
-rw-r--r--ANDROID_3.4.5/include/video/sgivw.h681
-rw-r--r--ANDROID_3.4.5/include/video/sh_mipi_dsi.h61
-rw-r--r--ANDROID_3.4.5/include/video/sh_mobile_hdmi.h39
-rw-r--r--ANDROID_3.4.5/include/video/sh_mobile_lcdc.h192
-rw-r--r--ANDROID_3.4.5/include/video/sh_mobile_meram.h63
-rw-r--r--ANDROID_3.4.5/include/video/sisfb.h224
-rw-r--r--ANDROID_3.4.5/include/video/sstfb.h355
-rw-r--r--ANDROID_3.4.5/include/video/tdfx.h208
-rw-r--r--ANDROID_3.4.5/include/video/tgafb.h280
-rw-r--r--ANDROID_3.4.5/include/video/trident.h146
-rw-r--r--ANDROID_3.4.5/include/video/udlfb.h97
-rw-r--r--ANDROID_3.4.5/include/video/uvesafb.h195
-rw-r--r--ANDROID_3.4.5/include/video/vga.h481
-rw-r--r--ANDROID_3.4.5/include/video/w100fb.h150
-rw-r--r--ANDROID_3.4.5/include/xen/Kbuild2
-rw-r--r--ANDROID_3.4.5/include/xen/balloon.h40
-rw-r--r--ANDROID_3.4.5/include/xen/events.h112
-rw-r--r--ANDROID_3.4.5/include/xen/evtchn.h88
-rw-r--r--ANDROID_3.4.5/include/xen/features.h23
-rw-r--r--ANDROID_3.4.5/include/xen/gntalloc.h82
-rw-r--r--ANDROID_3.4.5/include/xen/gntdev.h150
-rw-r--r--ANDROID_3.4.5/include/xen/grant_table.h190
-rw-r--r--ANDROID_3.4.5/include/xen/hvc-console.h18
-rw-r--r--ANDROID_3.4.5/include/xen/hvm.h30
-rw-r--r--ANDROID_3.4.5/include/xen/interface/callback.h102
-rw-r--r--ANDROID_3.4.5/include/xen/interface/elfnote.h153
-rw-r--r--ANDROID_3.4.5/include/xen/interface/event_channel.h197
-rw-r--r--ANDROID_3.4.5/include/xen/interface/features.h55
-rw-r--r--ANDROID_3.4.5/include/xen/interface/grant_table.h538
-rw-r--r--ANDROID_3.4.5/include/xen/interface/hvm/hvm_op.h46
-rw-r--r--ANDROID_3.4.5/include/xen/interface/hvm/params.h99
-rw-r--r--ANDROID_3.4.5/include/xen/interface/io/blkif.h196
-rw-r--r--ANDROID_3.4.5/include/xen/interface/io/console.h23
-rw-r--r--ANDROID_3.4.5/include/xen/interface/io/fbif.h143
-rw-r--r--ANDROID_3.4.5/include/xen/interface/io/kbdif.h116
-rw-r--r--ANDROID_3.4.5/include/xen/interface/io/netif.h162
-rw-r--r--ANDROID_3.4.5/include/xen/interface/io/pciif.h112
-rw-r--r--ANDROID_3.4.5/include/xen/interface/io/protocols.h21
-rw-r--r--ANDROID_3.4.5/include/xen/interface/io/ring.h267
-rw-r--r--ANDROID_3.4.5/include/xen/interface/io/xenbus.h50
-rw-r--r--ANDROID_3.4.5/include/xen/interface/io/xs_wire.h93
-rw-r--r--ANDROID_3.4.5/include/xen/interface/memory.h237
-rw-r--r--ANDROID_3.4.5/include/xen/interface/physdev.h282
-rw-r--r--ANDROID_3.4.5/include/xen/interface/platform.h338
-rw-r--r--ANDROID_3.4.5/include/xen/interface/sched.h111
-rw-r--r--ANDROID_3.4.5/include/xen/interface/vcpu.h173
-rw-r--r--ANDROID_3.4.5/include/xen/interface/version.h63
-rw-r--r--ANDROID_3.4.5/include/xen/interface/xen.h535
-rw-r--r--ANDROID_3.4.5/include/xen/interface/xencomm.h41
-rw-r--r--ANDROID_3.4.5/include/xen/page.h18
-rw-r--r--ANDROID_3.4.5/include/xen/platform_pci.h51
-rw-r--r--ANDROID_3.4.5/include/xen/privcmd.h77
-rw-r--r--ANDROID_3.4.5/include/xen/swiotlb-xen.h67
-rw-r--r--ANDROID_3.4.5/include/xen/tmem.h9
-rw-r--r--ANDROID_3.4.5/include/xen/xen-ops.h32
-rw-r--r--ANDROID_3.4.5/include/xen/xen.h32
-rw-r--r--ANDROID_3.4.5/include/xen/xenbus.h223
-rw-r--r--ANDROID_3.4.5/include/xen/xenbus_dev.h41
-rw-r--r--ANDROID_3.4.5/include/xen/xencomm.h77
2827 files changed, 0 insertions, 517617 deletions
diff --git a/ANDROID_3.4.5/include/Kbuild b/ANDROID_3.4.5/include/Kbuild
deleted file mode 100644
index 8d226bfa..00000000
--- a/ANDROID_3.4.5/include/Kbuild
+++ /dev/null
@@ -1,12 +0,0 @@
-# Top-level Makefile calls into asm-$(ARCH)
-# List only non-arch directories below
-
-header-y += asm-generic/
-header-y += linux/
-header-y += sound/
-header-y += mtd/
-header-y += rdma/
-header-y += video/
-header-y += drm/
-header-y += xen/
-header-y += scsi/
diff --git a/ANDROID_3.4.5/include/acpi/acconfig.h b/ANDROID_3.4.5/include/acpi/acconfig.h
deleted file mode 100644
index 03f14856..00000000
--- a/ANDROID_3.4.5/include/acpi/acconfig.h
+++ /dev/null
@@ -1,248 +0,0 @@
-/******************************************************************************
- *
- * Name: acconfig.h - Global configuration constants
- *
- *****************************************************************************/
-
-/*
- * Copyright (C) 2000 - 2012, Intel Corp.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions, and the following disclaimer,
- * without modification.
- * 2. Redistributions in binary form must reproduce at minimum a disclaimer
- * substantially similar to the "NO WARRANTY" disclaimer below
- * ("Disclaimer") and any redistribution must be conditioned upon
- * including a substantially similar Disclaimer requirement for further
- * binary redistribution.
- * 3. Neither the names of the above-listed copyright holders nor the names
- * of any contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") version 2 as published by the Free
- * Software Foundation.
- *
- * NO WARRANTY
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- */
-
-#ifndef _ACCONFIG_H
-#define _ACCONFIG_H
-
-/******************************************************************************
- *
- * Configuration options
- *
- *****************************************************************************/
-
-/*
- * ACPI_DEBUG_OUTPUT - This switch enables all the debug facilities of the
- * ACPI subsystem. This includes the DEBUG_PRINT output
- * statements. When disabled, all DEBUG_PRINT
- * statements are compiled out.
- *
- * ACPI_APPLICATION - Use this switch if the subsystem is going to be run
- * at the application level.
- *
- */
-
-/*
- * OS name, used for the _OS object. The _OS object is essentially obsolete,
- * but there is a large base of ASL/AML code in existing machines that check
- * for the string below. The use of this string usually guarantees that
- * the ASL will execute down the most tested code path. Also, there is some
- * code that will not execute the _OSI method unless _OS matches the string
- * below. Therefore, change this string at your own risk.
- */
-#define ACPI_OS_NAME "Microsoft Windows NT"
-
-/* Maximum objects in the various object caches */
-
-#define ACPI_MAX_STATE_CACHE_DEPTH 96 /* State objects */
-#define ACPI_MAX_PARSE_CACHE_DEPTH 96 /* Parse tree objects */
-#define ACPI_MAX_EXTPARSE_CACHE_DEPTH 96 /* Parse tree objects */
-#define ACPI_MAX_OBJECT_CACHE_DEPTH 96 /* Interpreter operand objects */
-#define ACPI_MAX_NAMESPACE_CACHE_DEPTH 96 /* Namespace objects */
-
-/*
- * Should the subsystem abort the loading of an ACPI table if the
- * table checksum is incorrect?
- */
-#define ACPI_CHECKSUM_ABORT FALSE
-
-/*
- * Generate a version of ACPICA that only supports "reduced hardware"
- * platforms (as defined in ACPI 5.0). Set to TRUE to generate a specialized
- * version of ACPICA that ONLY supports the ACPI 5.0 "reduced hardware"
- * model. In other words, no ACPI hardware is supported.
- *
- * If TRUE, this means no support for the following:
- * PM Event and Control registers
- * SCI interrupt (and handler)
- * Fixed Events
- * General Purpose Events (GPEs)
- * Global Lock
- * ACPI PM timer
- * FACS table (Waking vectors and Global Lock)
- */
-#define ACPI_REDUCED_HARDWARE FALSE
-
-/******************************************************************************
- *
- * Subsystem Constants
- *
- *****************************************************************************/
-
-/* Version of ACPI supported */
-
-#define ACPI_CA_SUPPORT_LEVEL 5
-
-/* Maximum count for a semaphore object */
-
-#define ACPI_MAX_SEMAPHORE_COUNT 256
-
-/* Maximum object reference count (detects object deletion issues) */
-
-#define ACPI_MAX_REFERENCE_COUNT 0x1000
-
-/* Default page size for use in mapping memory for operation regions */
-
-#define ACPI_DEFAULT_PAGE_SIZE 4096 /* Must be power of 2 */
-
-/* owner_id tracking. 8 entries allows for 255 owner_ids */
-
-#define ACPI_NUM_OWNERID_MASKS 8
-
-/* Size of the root table array is increased by this increment */
-
-#define ACPI_ROOT_TABLE_SIZE_INCREMENT 4
-
-/* Maximum number of While() loop iterations before forced abort */
-
-#define ACPI_MAX_LOOP_ITERATIONS 0xFFFF
-
-/* Maximum sleep allowed via Sleep() operator */
-
-#define ACPI_MAX_SLEEP 2000 /* Two seconds */
-
-/* Address Range lists are per-space_id (Memory and I/O only) */
-
-#define ACPI_ADDRESS_RANGE_MAX 2
-
-/******************************************************************************
- *
- * ACPI Specification constants (Do not change unless the specification changes)
- *
- *****************************************************************************/
-
-/* Number of distinct GPE register blocks and register width */
-
-#define ACPI_MAX_GPE_BLOCKS 2
-#define ACPI_GPE_REGISTER_WIDTH 8
-
-/* Method info (in WALK_STATE), containing local variables and argumetns */
-
-#define ACPI_METHOD_NUM_LOCALS 8
-#define ACPI_METHOD_MAX_LOCAL 7
-
-#define ACPI_METHOD_NUM_ARGS 7
-#define ACPI_METHOD_MAX_ARG 6
-
-/* Length of _HID, _UID, _CID, and UUID values */
-
-#define ACPI_DEVICE_ID_LENGTH 0x09
-#define ACPI_MAX_CID_LENGTH 48
-#define ACPI_UUID_LENGTH 16
-
-/*
- * Operand Stack (in WALK_STATE), Must be large enough to contain METHOD_MAX_ARG
- */
-#define ACPI_OBJ_NUM_OPERANDS 8
-#define ACPI_OBJ_MAX_OPERAND 7
-
-/* Number of elements in the Result Stack frame, can be an arbitrary value */
-
-#define ACPI_RESULTS_FRAME_OBJ_NUM 8
-
-/*
- * Maximal number of elements the Result Stack can contain,
- * it may be an arbitray value not exceeding the types of
- * result_size and result_count (now u8).
- */
-#define ACPI_RESULTS_OBJ_NUM_MAX 255
-
-/* Names within the namespace are 4 bytes long */
-
-#define ACPI_NAME_SIZE 4
-#define ACPI_PATH_SEGMENT_LENGTH 5 /* 4 chars for name + 1 char for separator */
-#define ACPI_PATH_SEPARATOR '.'
-
-/* Sizes for ACPI table headers */
-
-#define ACPI_OEM_ID_SIZE 6
-#define ACPI_OEM_TABLE_ID_SIZE 8
-
-/* Constants used in searching for the RSDP in low memory */
-
-#define ACPI_EBDA_PTR_LOCATION 0x0000040E /* Physical Address */
-#define ACPI_EBDA_PTR_LENGTH 2
-#define ACPI_EBDA_WINDOW_SIZE 1024
-#define ACPI_HI_RSDP_WINDOW_BASE 0x000E0000 /* Physical Address */
-#define ACPI_HI_RSDP_WINDOW_SIZE 0x00020000
-#define ACPI_RSDP_SCAN_STEP 16
-
-/* Operation regions */
-
-#define ACPI_USER_REGION_BEGIN 0x80
-
-/* Maximum space_ids for Operation Regions */
-
-#define ACPI_MAX_ADDRESS_SPACE 255
-
-/* Array sizes. Used for range checking also */
-
-#define ACPI_MAX_MATCH_OPCODE 5
-
-/* RSDP checksums */
-
-#define ACPI_RSDP_CHECKSUM_LENGTH 20
-#define ACPI_RSDP_XCHECKSUM_LENGTH 36
-
-/* SMBus, GSBus and IPMI bidirectional buffer size */
-
-#define ACPI_SMBUS_BUFFER_SIZE 34
-#define ACPI_GSBUS_BUFFER_SIZE 34
-#define ACPI_IPMI_BUFFER_SIZE 66
-
-/* _sx_d and _sx_w control methods */
-
-#define ACPI_NUM_sx_d_METHODS 4
-#define ACPI_NUM_sx_w_METHODS 5
-
-/******************************************************************************
- *
- * ACPI AML Debugger
- *
- *****************************************************************************/
-
-#define ACPI_DEBUGGER_MAX_ARGS 8 /* Must be max method args + 1 */
-
-#define ACPI_DEBUGGER_COMMAND_PROMPT '-'
-#define ACPI_DEBUGGER_EXECUTE_PROMPT '%'
-
-#endif /* _ACCONFIG_H */
diff --git a/ANDROID_3.4.5/include/acpi/acexcep.h b/ANDROID_3.4.5/include/acpi/acexcep.h
deleted file mode 100644
index 92d6e1d7..00000000
--- a/ANDROID_3.4.5/include/acpi/acexcep.h
+++ /dev/null
@@ -1,300 +0,0 @@
-/******************************************************************************
- *
- * Name: acexcep.h - Exception codes returned by the ACPI subsystem
- *
- *****************************************************************************/
-
-/*
- * Copyright (C) 2000 - 2011, Intel Corp.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions, and the following disclaimer,
- * without modification.
- * 2. Redistributions in binary form must reproduce at minimum a disclaimer
- * substantially similar to the "NO WARRANTY" disclaimer below
- * ("Disclaimer") and any redistribution must be conditioned upon
- * including a substantially similar Disclaimer requirement for further
- * binary redistribution.
- * 3. Neither the names of the above-listed copyright holders nor the names
- * of any contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") version 2 as published by the Free
- * Software Foundation.
- *
- * NO WARRANTY
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- */
-
-#ifndef __ACEXCEP_H__
-#define __ACEXCEP_H__
-
-/*
- * Exceptions returned by external ACPI interfaces
- */
-#define AE_CODE_ENVIRONMENTAL 0x0000
-#define AE_CODE_PROGRAMMER 0x1000
-#define AE_CODE_ACPI_TABLES 0x2000
-#define AE_CODE_AML 0x3000
-#define AE_CODE_CONTROL 0x4000
-#define AE_CODE_MASK 0xF000
-
-#define ACPI_SUCCESS(a) (!(a))
-#define ACPI_FAILURE(a) (a)
-
-#define ACPI_SKIP(a) (a == AE_CTRL_SKIP)
-#define AE_OK (acpi_status) 0x0000
-
-/*
- * Environmental exceptions
- */
-#define AE_ERROR (acpi_status) (0x0001 | AE_CODE_ENVIRONMENTAL)
-#define AE_NO_ACPI_TABLES (acpi_status) (0x0002 | AE_CODE_ENVIRONMENTAL)
-#define AE_NO_NAMESPACE (acpi_status) (0x0003 | AE_CODE_ENVIRONMENTAL)
-#define AE_NO_MEMORY (acpi_status) (0x0004 | AE_CODE_ENVIRONMENTAL)
-#define AE_NOT_FOUND (acpi_status) (0x0005 | AE_CODE_ENVIRONMENTAL)
-#define AE_NOT_EXIST (acpi_status) (0x0006 | AE_CODE_ENVIRONMENTAL)
-#define AE_ALREADY_EXISTS (acpi_status) (0x0007 | AE_CODE_ENVIRONMENTAL)
-#define AE_TYPE (acpi_status) (0x0008 | AE_CODE_ENVIRONMENTAL)
-#define AE_NULL_OBJECT (acpi_status) (0x0009 | AE_CODE_ENVIRONMENTAL)
-#define AE_NULL_ENTRY (acpi_status) (0x000A | AE_CODE_ENVIRONMENTAL)
-#define AE_BUFFER_OVERFLOW (acpi_status) (0x000B | AE_CODE_ENVIRONMENTAL)
-#define AE_STACK_OVERFLOW (acpi_status) (0x000C | AE_CODE_ENVIRONMENTAL)
-#define AE_STACK_UNDERFLOW (acpi_status) (0x000D | AE_CODE_ENVIRONMENTAL)
-#define AE_NOT_IMPLEMENTED (acpi_status) (0x000E | AE_CODE_ENVIRONMENTAL)
-#define AE_SUPPORT (acpi_status) (0x000F | AE_CODE_ENVIRONMENTAL)
-#define AE_LIMIT (acpi_status) (0x0010 | AE_CODE_ENVIRONMENTAL)
-#define AE_TIME (acpi_status) (0x0011 | AE_CODE_ENVIRONMENTAL)
-#define AE_ACQUIRE_DEADLOCK (acpi_status) (0x0012 | AE_CODE_ENVIRONMENTAL)
-#define AE_RELEASE_DEADLOCK (acpi_status) (0x0013 | AE_CODE_ENVIRONMENTAL)
-#define AE_NOT_ACQUIRED (acpi_status) (0x0014 | AE_CODE_ENVIRONMENTAL)
-#define AE_ALREADY_ACQUIRED (acpi_status) (0x0015 | AE_CODE_ENVIRONMENTAL)
-#define AE_NO_HARDWARE_RESPONSE (acpi_status) (0x0016 | AE_CODE_ENVIRONMENTAL)
-#define AE_NO_GLOBAL_LOCK (acpi_status) (0x0017 | AE_CODE_ENVIRONMENTAL)
-#define AE_ABORT_METHOD (acpi_status) (0x0018 | AE_CODE_ENVIRONMENTAL)
-#define AE_SAME_HANDLER (acpi_status) (0x0019 | AE_CODE_ENVIRONMENTAL)
-#define AE_NO_HANDLER (acpi_status) (0x001A | AE_CODE_ENVIRONMENTAL)
-#define AE_OWNER_ID_LIMIT (acpi_status) (0x001B | AE_CODE_ENVIRONMENTAL)
-#define AE_NOT_CONFIGURED (acpi_status) (0x001C | AE_CODE_ENVIRONMENTAL)
-
-#define AE_CODE_ENV_MAX 0x001C
-
-/*
- * Programmer exceptions
- */
-#define AE_BAD_PARAMETER (acpi_status) (0x0001 | AE_CODE_PROGRAMMER)
-#define AE_BAD_CHARACTER (acpi_status) (0x0002 | AE_CODE_PROGRAMMER)
-#define AE_BAD_PATHNAME (acpi_status) (0x0003 | AE_CODE_PROGRAMMER)
-#define AE_BAD_DATA (acpi_status) (0x0004 | AE_CODE_PROGRAMMER)
-#define AE_BAD_HEX_CONSTANT (acpi_status) (0x0005 | AE_CODE_PROGRAMMER)
-#define AE_BAD_OCTAL_CONSTANT (acpi_status) (0x0006 | AE_CODE_PROGRAMMER)
-#define AE_BAD_DECIMAL_CONSTANT (acpi_status) (0x0007 | AE_CODE_PROGRAMMER)
-#define AE_MISSING_ARGUMENTS (acpi_status) (0x0008 | AE_CODE_PROGRAMMER)
-#define AE_BAD_ADDRESS (acpi_status) (0x0009 | AE_CODE_PROGRAMMER)
-
-#define AE_CODE_PGM_MAX 0x0009
-
-/*
- * Acpi table exceptions
- */
-#define AE_BAD_SIGNATURE (acpi_status) (0x0001 | AE_CODE_ACPI_TABLES)
-#define AE_BAD_HEADER (acpi_status) (0x0002 | AE_CODE_ACPI_TABLES)
-#define AE_BAD_CHECKSUM (acpi_status) (0x0003 | AE_CODE_ACPI_TABLES)
-#define AE_BAD_VALUE (acpi_status) (0x0004 | AE_CODE_ACPI_TABLES)
-#define AE_INVALID_TABLE_LENGTH (acpi_status) (0x0005 | AE_CODE_ACPI_TABLES)
-
-#define AE_CODE_TBL_MAX 0x0005
-
-/*
- * AML exceptions. These are caused by problems with
- * the actual AML byte stream
- */
-#define AE_AML_BAD_OPCODE (acpi_status) (0x0001 | AE_CODE_AML)
-#define AE_AML_NO_OPERAND (acpi_status) (0x0002 | AE_CODE_AML)
-#define AE_AML_OPERAND_TYPE (acpi_status) (0x0003 | AE_CODE_AML)
-#define AE_AML_OPERAND_VALUE (acpi_status) (0x0004 | AE_CODE_AML)
-#define AE_AML_UNINITIALIZED_LOCAL (acpi_status) (0x0005 | AE_CODE_AML)
-#define AE_AML_UNINITIALIZED_ARG (acpi_status) (0x0006 | AE_CODE_AML)
-#define AE_AML_UNINITIALIZED_ELEMENT (acpi_status) (0x0007 | AE_CODE_AML)
-#define AE_AML_NUMERIC_OVERFLOW (acpi_status) (0x0008 | AE_CODE_AML)
-#define AE_AML_REGION_LIMIT (acpi_status) (0x0009 | AE_CODE_AML)
-#define AE_AML_BUFFER_LIMIT (acpi_status) (0x000A | AE_CODE_AML)
-#define AE_AML_PACKAGE_LIMIT (acpi_status) (0x000B | AE_CODE_AML)
-#define AE_AML_DIVIDE_BY_ZERO (acpi_status) (0x000C | AE_CODE_AML)
-#define AE_AML_BAD_NAME (acpi_status) (0x000D | AE_CODE_AML)
-#define AE_AML_NAME_NOT_FOUND (acpi_status) (0x000E | AE_CODE_AML)
-#define AE_AML_INTERNAL (acpi_status) (0x000F | AE_CODE_AML)
-#define AE_AML_INVALID_SPACE_ID (acpi_status) (0x0010 | AE_CODE_AML)
-#define AE_AML_STRING_LIMIT (acpi_status) (0x0011 | AE_CODE_AML)
-#define AE_AML_NO_RETURN_VALUE (acpi_status) (0x0012 | AE_CODE_AML)
-#define AE_AML_METHOD_LIMIT (acpi_status) (0x0013 | AE_CODE_AML)
-#define AE_AML_NOT_OWNER (acpi_status) (0x0014 | AE_CODE_AML)
-#define AE_AML_MUTEX_ORDER (acpi_status) (0x0015 | AE_CODE_AML)
-#define AE_AML_MUTEX_NOT_ACQUIRED (acpi_status) (0x0016 | AE_CODE_AML)
-#define AE_AML_INVALID_RESOURCE_TYPE (acpi_status) (0x0017 | AE_CODE_AML)
-#define AE_AML_INVALID_INDEX (acpi_status) (0x0018 | AE_CODE_AML)
-#define AE_AML_REGISTER_LIMIT (acpi_status) (0x0019 | AE_CODE_AML)
-#define AE_AML_NO_WHILE (acpi_status) (0x001A | AE_CODE_AML)
-#define AE_AML_ALIGNMENT (acpi_status) (0x001B | AE_CODE_AML)
-#define AE_AML_NO_RESOURCE_END_TAG (acpi_status) (0x001C | AE_CODE_AML)
-#define AE_AML_BAD_RESOURCE_VALUE (acpi_status) (0x001D | AE_CODE_AML)
-#define AE_AML_CIRCULAR_REFERENCE (acpi_status) (0x001E | AE_CODE_AML)
-#define AE_AML_BAD_RESOURCE_LENGTH (acpi_status) (0x001F | AE_CODE_AML)
-#define AE_AML_ILLEGAL_ADDRESS (acpi_status) (0x0020 | AE_CODE_AML)
-#define AE_AML_INFINITE_LOOP (acpi_status) (0x0021 | AE_CODE_AML)
-
-#define AE_CODE_AML_MAX 0x0021
-
-/*
- * Internal exceptions used for control
- */
-#define AE_CTRL_RETURN_VALUE (acpi_status) (0x0001 | AE_CODE_CONTROL)
-#define AE_CTRL_PENDING (acpi_status) (0x0002 | AE_CODE_CONTROL)
-#define AE_CTRL_TERMINATE (acpi_status) (0x0003 | AE_CODE_CONTROL)
-#define AE_CTRL_TRUE (acpi_status) (0x0004 | AE_CODE_CONTROL)
-#define AE_CTRL_FALSE (acpi_status) (0x0005 | AE_CODE_CONTROL)
-#define AE_CTRL_DEPTH (acpi_status) (0x0006 | AE_CODE_CONTROL)
-#define AE_CTRL_END (acpi_status) (0x0007 | AE_CODE_CONTROL)
-#define AE_CTRL_TRANSFER (acpi_status) (0x0008 | AE_CODE_CONTROL)
-#define AE_CTRL_BREAK (acpi_status) (0x0009 | AE_CODE_CONTROL)
-#define AE_CTRL_CONTINUE (acpi_status) (0x000A | AE_CODE_CONTROL)
-#define AE_CTRL_SKIP (acpi_status) (0x000B | AE_CODE_CONTROL)
-#define AE_CTRL_PARSE_CONTINUE (acpi_status) (0x000C | AE_CODE_CONTROL)
-#define AE_CTRL_PARSE_PENDING (acpi_status) (0x000D | AE_CODE_CONTROL)
-
-#define AE_CODE_CTRL_MAX 0x000D
-
-/* Exception strings for acpi_format_exception */
-
-#ifdef DEFINE_ACPI_GLOBALS
-
-/*
- * String versions of the exception codes above
- * These strings must match the corresponding defines exactly
- */
-char const *acpi_gbl_exception_names_env[] = {
- "AE_OK",
- "AE_ERROR",
- "AE_NO_ACPI_TABLES",
- "AE_NO_NAMESPACE",
- "AE_NO_MEMORY",
- "AE_NOT_FOUND",
- "AE_NOT_EXIST",
- "AE_ALREADY_EXISTS",
- "AE_TYPE",
- "AE_NULL_OBJECT",
- "AE_NULL_ENTRY",
- "AE_BUFFER_OVERFLOW",
- "AE_STACK_OVERFLOW",
- "AE_STACK_UNDERFLOW",
- "AE_NOT_IMPLEMENTED",
- "AE_SUPPORT",
- "AE_LIMIT",
- "AE_TIME",
- "AE_ACQUIRE_DEADLOCK",
- "AE_RELEASE_DEADLOCK",
- "AE_NOT_ACQUIRED",
- "AE_ALREADY_ACQUIRED",
- "AE_NO_HARDWARE_RESPONSE",
- "AE_NO_GLOBAL_LOCK",
- "AE_ABORT_METHOD",
- "AE_SAME_HANDLER",
- "AE_NO_HANDLER",
- "AE_OWNER_ID_LIMIT",
- "AE_NOT_CONFIGURED"
-};
-
-char const *acpi_gbl_exception_names_pgm[] = {
- NULL,
- "AE_BAD_PARAMETER",
- "AE_BAD_CHARACTER",
- "AE_BAD_PATHNAME",
- "AE_BAD_DATA",
- "AE_BAD_HEX_CONSTANT",
- "AE_BAD_OCTAL_CONSTANT",
- "AE_BAD_DECIMAL_CONSTANT",
- "AE_MISSING_ARGUMENTS",
- "AE_BAD_ADDRESS"
-};
-
-char const *acpi_gbl_exception_names_tbl[] = {
- NULL,
- "AE_BAD_SIGNATURE",
- "AE_BAD_HEADER",
- "AE_BAD_CHECKSUM",
- "AE_BAD_VALUE",
- "AE_INVALID_TABLE_LENGTH"
-};
-
-char const *acpi_gbl_exception_names_aml[] = {
- NULL,
- "AE_AML_BAD_OPCODE",
- "AE_AML_NO_OPERAND",
- "AE_AML_OPERAND_TYPE",
- "AE_AML_OPERAND_VALUE",
- "AE_AML_UNINITIALIZED_LOCAL",
- "AE_AML_UNINITIALIZED_ARG",
- "AE_AML_UNINITIALIZED_ELEMENT",
- "AE_AML_NUMERIC_OVERFLOW",
- "AE_AML_REGION_LIMIT",
- "AE_AML_BUFFER_LIMIT",
- "AE_AML_PACKAGE_LIMIT",
- "AE_AML_DIVIDE_BY_ZERO",
- "AE_AML_BAD_NAME",
- "AE_AML_NAME_NOT_FOUND",
- "AE_AML_INTERNAL",
- "AE_AML_INVALID_SPACE_ID",
- "AE_AML_STRING_LIMIT",
- "AE_AML_NO_RETURN_VALUE",
- "AE_AML_METHOD_LIMIT",
- "AE_AML_NOT_OWNER",
- "AE_AML_MUTEX_ORDER",
- "AE_AML_MUTEX_NOT_ACQUIRED",
- "AE_AML_INVALID_RESOURCE_TYPE",
- "AE_AML_INVALID_INDEX",
- "AE_AML_REGISTER_LIMIT",
- "AE_AML_NO_WHILE",
- "AE_AML_ALIGNMENT",
- "AE_AML_NO_RESOURCE_END_TAG",
- "AE_AML_BAD_RESOURCE_VALUE",
- "AE_AML_CIRCULAR_REFERENCE",
- "AE_AML_BAD_RESOURCE_LENGTH",
- "AE_AML_ILLEGAL_ADDRESS",
- "AE_AML_INFINITE_LOOP"
-};
-
-char const *acpi_gbl_exception_names_ctrl[] = {
- NULL,
- "AE_CTRL_RETURN_VALUE",
- "AE_CTRL_PENDING",
- "AE_CTRL_TERMINATE",
- "AE_CTRL_TRUE",
- "AE_CTRL_FALSE",
- "AE_CTRL_DEPTH",
- "AE_CTRL_END",
- "AE_CTRL_TRANSFER",
- "AE_CTRL_BREAK",
- "AE_CTRL_CONTINUE",
- "AE_CTRL_SKIP",
- "AE_CTRL_PARSE_CONTINUE",
- "AE_CTRL_PARSE_PENDING"
-};
-
-#endif /* ACPI GLOBALS */
-
-#endif /* __ACEXCEP_H__ */
diff --git a/ANDROID_3.4.5/include/acpi/acnames.h b/ANDROID_3.4.5/include/acpi/acnames.h
deleted file mode 100644
index 38f50881..00000000
--- a/ANDROID_3.4.5/include/acpi/acnames.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/******************************************************************************
- *
- * Name: acnames.h - Global names and strings
- *
- *****************************************************************************/
-
-/*
- * Copyright (C) 2000 - 2011, Intel Corp.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions, and the following disclaimer,
- * without modification.
- * 2. Redistributions in binary form must reproduce at minimum a disclaimer
- * substantially similar to the "NO WARRANTY" disclaimer below
- * ("Disclaimer") and any redistribution must be conditioned upon
- * including a substantially similar Disclaimer requirement for further
- * binary redistribution.
- * 3. Neither the names of the above-listed copyright holders nor the names
- * of any contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") version 2 as published by the Free
- * Software Foundation.
- *
- * NO WARRANTY
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- */
-
-#ifndef __ACNAMES_H__
-#define __ACNAMES_H__
-
-/* Method names - these methods can appear anywhere in the namespace */
-
-#define METHOD_NAME__SB_ "_SB_"
-#define METHOD_NAME__HID "_HID"
-#define METHOD_NAME__CID "_CID"
-#define METHOD_NAME__UID "_UID"
-#define METHOD_NAME__ADR "_ADR"
-#define METHOD_NAME__INI "_INI"
-#define METHOD_NAME__STA "_STA"
-#define METHOD_NAME__REG "_REG"
-#define METHOD_NAME__SEG "_SEG"
-#define METHOD_NAME__BBN "_BBN"
-#define METHOD_NAME__PRT "_PRT"
-#define METHOD_NAME__CRS "_CRS"
-#define METHOD_NAME__PRS "_PRS"
-#define METHOD_NAME__AEI "_AEI"
-#define METHOD_NAME__PRW "_PRW"
-#define METHOD_NAME__SRS "_SRS"
-
-/* Method names - these methods must appear at the namespace root */
-
-#define METHOD_PATHNAME__BFS "\\_BFS"
-#define METHOD_PATHNAME__GTS "\\_GTS"
-#define METHOD_PATHNAME__PTS "\\_PTS"
-#define METHOD_PATHNAME__SST "\\_SI._SST"
-#define METHOD_PATHNAME__WAK "\\_WAK"
-
-/* Definitions of the predefined namespace names */
-
-#define ACPI_UNKNOWN_NAME (u32) 0x3F3F3F3F /* Unknown name is "????" */
-#define ACPI_ROOT_NAME (u32) 0x5F5F5F5C /* Root name is "\___" */
-
-#define ACPI_PREFIX_MIXED (u32) 0x69706341 /* "Acpi" */
-#define ACPI_PREFIX_LOWER (u32) 0x69706361 /* "acpi" */
-
-#define ACPI_NS_ROOT_PATH "\\"
-
-#endif /* __ACNAMES_H__ */
diff --git a/ANDROID_3.4.5/include/acpi/acoutput.h b/ANDROID_3.4.5/include/acpi/acoutput.h
deleted file mode 100644
index d7bd661b..00000000
--- a/ANDROID_3.4.5/include/acpi/acoutput.h
+++ /dev/null
@@ -1,283 +0,0 @@
-/******************************************************************************
- *
- * Name: acoutput.h -- debug output
- *
- *****************************************************************************/
-
-/*
- * Copyright (C) 2000 - 2011, Intel Corp.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions, and the following disclaimer,
- * without modification.
- * 2. Redistributions in binary form must reproduce at minimum a disclaimer
- * substantially similar to the "NO WARRANTY" disclaimer below
- * ("Disclaimer") and any redistribution must be conditioned upon
- * including a substantially similar Disclaimer requirement for further
- * binary redistribution.
- * 3. Neither the names of the above-listed copyright holders nor the names
- * of any contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") version 2 as published by the Free
- * Software Foundation.
- *
- * NO WARRANTY
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- */
-
-#ifndef __ACOUTPUT_H__
-#define __ACOUTPUT_H__
-
-/*
- * Debug levels and component IDs. These are used to control the
- * granularity of the output of the ACPI_DEBUG_PRINT macro -- on a
- * per-component basis and a per-exception-type basis.
- */
-
-/* Component IDs are used in the global "DebugLayer" */
-
-#define ACPI_UTILITIES 0x00000001
-#define ACPI_HARDWARE 0x00000002
-#define ACPI_EVENTS 0x00000004
-#define ACPI_TABLES 0x00000008
-#define ACPI_NAMESPACE 0x00000010
-#define ACPI_PARSER 0x00000020
-#define ACPI_DISPATCHER 0x00000040
-#define ACPI_EXECUTER 0x00000080
-#define ACPI_RESOURCES 0x00000100
-#define ACPI_CA_DEBUGGER 0x00000200
-#define ACPI_OS_SERVICES 0x00000400
-#define ACPI_CA_DISASSEMBLER 0x00000800
-
-/* Component IDs for ACPI tools and utilities */
-
-#define ACPI_COMPILER 0x00001000
-#define ACPI_TOOLS 0x00002000
-#define ACPI_EXAMPLE 0x00004000
-#define ACPI_DRIVER 0x00008000
-#define DT_COMPILER 0x00010000
-
-#define ACPI_ALL_COMPONENTS 0x0001FFFF
-#define ACPI_COMPONENT_DEFAULT (ACPI_ALL_COMPONENTS)
-
-/* Component IDs reserved for ACPI drivers */
-
-#define ACPI_ALL_DRIVERS 0xFFFF0000
-
-/*
- * Raw debug output levels, do not use these in the ACPI_DEBUG_PRINT macros
- */
-#define ACPI_LV_INIT 0x00000001
-#define ACPI_LV_DEBUG_OBJECT 0x00000002
-#define ACPI_LV_INFO 0x00000004
-#define ACPI_LV_REPAIR 0x00000008
-#define ACPI_LV_ALL_EXCEPTIONS 0x0000000F
-
-/* Trace verbosity level 1 [Standard Trace Level] */
-
-#define ACPI_LV_INIT_NAMES 0x00000020
-#define ACPI_LV_PARSE 0x00000040
-#define ACPI_LV_LOAD 0x00000080
-#define ACPI_LV_DISPATCH 0x00000100
-#define ACPI_LV_EXEC 0x00000200
-#define ACPI_LV_NAMES 0x00000400
-#define ACPI_LV_OPREGION 0x00000800
-#define ACPI_LV_BFIELD 0x00001000
-#define ACPI_LV_TABLES 0x00002000
-#define ACPI_LV_VALUES 0x00004000
-#define ACPI_LV_OBJECTS 0x00008000
-#define ACPI_LV_RESOURCES 0x00010000
-#define ACPI_LV_USER_REQUESTS 0x00020000
-#define ACPI_LV_PACKAGE 0x00040000
-#define ACPI_LV_VERBOSITY1 0x0007FF40 | ACPI_LV_ALL_EXCEPTIONS
-
-/* Trace verbosity level 2 [Function tracing and memory allocation] */
-
-#define ACPI_LV_ALLOCATIONS 0x00100000
-#define ACPI_LV_FUNCTIONS 0x00200000
-#define ACPI_LV_OPTIMIZATIONS 0x00400000
-#define ACPI_LV_VERBOSITY2 0x00700000 | ACPI_LV_VERBOSITY1
-#define ACPI_LV_ALL ACPI_LV_VERBOSITY2
-
-/* Trace verbosity level 3 [Threading, I/O, and Interrupts] */
-
-#define ACPI_LV_MUTEX 0x01000000
-#define ACPI_LV_THREADS 0x02000000
-#define ACPI_LV_IO 0x04000000
-#define ACPI_LV_INTERRUPTS 0x08000000
-#define ACPI_LV_VERBOSITY3 0x0F000000 | ACPI_LV_VERBOSITY2
-
-/* Exceptionally verbose output -- also used in the global "DebugLevel" */
-
-#define ACPI_LV_AML_DISASSEMBLE 0x10000000
-#define ACPI_LV_VERBOSE_INFO 0x20000000
-#define ACPI_LV_FULL_TABLES 0x40000000
-#define ACPI_LV_EVENTS 0x80000000
-#define ACPI_LV_VERBOSE 0xF0000000
-
-/*
- * Debug level macros that are used in the DEBUG_PRINT macros
- */
-#define ACPI_DEBUG_LEVEL(dl) (u32) dl,ACPI_DEBUG_PARAMETERS
-
-/*
- * Exception level -- used in the global "DebugLevel"
- *
- * Note: For errors, use the ACPI_ERROR or ACPI_EXCEPTION interfaces.
- * For warnings, use ACPI_WARNING.
- */
-#define ACPI_DB_INIT ACPI_DEBUG_LEVEL (ACPI_LV_INIT)
-#define ACPI_DB_DEBUG_OBJECT ACPI_DEBUG_LEVEL (ACPI_LV_DEBUG_OBJECT)
-#define ACPI_DB_INFO ACPI_DEBUG_LEVEL (ACPI_LV_INFO)
-#define ACPI_DB_REPAIR ACPI_DEBUG_LEVEL (ACPI_LV_REPAIR)
-#define ACPI_DB_ALL_EXCEPTIONS ACPI_DEBUG_LEVEL (ACPI_LV_ALL_EXCEPTIONS)
-
-/* Trace level -- also used in the global "DebugLevel" */
-
-#define ACPI_DB_INIT_NAMES ACPI_DEBUG_LEVEL (ACPI_LV_INIT_NAMES)
-#define ACPI_DB_THREADS ACPI_DEBUG_LEVEL (ACPI_LV_THREADS)
-#define ACPI_DB_PARSE ACPI_DEBUG_LEVEL (ACPI_LV_PARSE)
-#define ACPI_DB_DISPATCH ACPI_DEBUG_LEVEL (ACPI_LV_DISPATCH)
-#define ACPI_DB_LOAD ACPI_DEBUG_LEVEL (ACPI_LV_LOAD)
-#define ACPI_DB_EXEC ACPI_DEBUG_LEVEL (ACPI_LV_EXEC)
-#define ACPI_DB_NAMES ACPI_DEBUG_LEVEL (ACPI_LV_NAMES)
-#define ACPI_DB_OPREGION ACPI_DEBUG_LEVEL (ACPI_LV_OPREGION)
-#define ACPI_DB_BFIELD ACPI_DEBUG_LEVEL (ACPI_LV_BFIELD)
-#define ACPI_DB_TABLES ACPI_DEBUG_LEVEL (ACPI_LV_TABLES)
-#define ACPI_DB_FUNCTIONS ACPI_DEBUG_LEVEL (ACPI_LV_FUNCTIONS)
-#define ACPI_DB_OPTIMIZATIONS ACPI_DEBUG_LEVEL (ACPI_LV_OPTIMIZATIONS)
-#define ACPI_DB_VALUES ACPI_DEBUG_LEVEL (ACPI_LV_VALUES)
-#define ACPI_DB_OBJECTS ACPI_DEBUG_LEVEL (ACPI_LV_OBJECTS)
-#define ACPI_DB_ALLOCATIONS ACPI_DEBUG_LEVEL (ACPI_LV_ALLOCATIONS)
-#define ACPI_DB_RESOURCES ACPI_DEBUG_LEVEL (ACPI_LV_RESOURCES)
-#define ACPI_DB_IO ACPI_DEBUG_LEVEL (ACPI_LV_IO)
-#define ACPI_DB_INTERRUPTS ACPI_DEBUG_LEVEL (ACPI_LV_INTERRUPTS)
-#define ACPI_DB_USER_REQUESTS ACPI_DEBUG_LEVEL (ACPI_LV_USER_REQUESTS)
-#define ACPI_DB_PACKAGE ACPI_DEBUG_LEVEL (ACPI_LV_PACKAGE)
-#define ACPI_DB_MUTEX ACPI_DEBUG_LEVEL (ACPI_LV_MUTEX)
-#define ACPI_DB_EVENTS ACPI_DEBUG_LEVEL (ACPI_LV_EVENTS)
-
-#define ACPI_DB_ALL ACPI_DEBUG_LEVEL (ACPI_LV_ALL)
-
-/* Defaults for debug_level, debug and normal */
-
-#define ACPI_DEBUG_DEFAULT (ACPI_LV_INFO | ACPI_LV_REPAIR)
-#define ACPI_NORMAL_DEFAULT (ACPI_LV_INIT | ACPI_LV_DEBUG_OBJECT | ACPI_LV_REPAIR)
-#define ACPI_DEBUG_ALL (ACPI_LV_AML_DISASSEMBLE | ACPI_LV_ALL_EXCEPTIONS | ACPI_LV_ALL)
-
-#if defined (ACPI_DEBUG_OUTPUT) || !defined (ACPI_NO_ERROR_MESSAGES)
-/*
- * The module name is used primarily for error and debug messages.
- * The __FILE__ macro is not very useful for this, because it
- * usually includes the entire pathname to the module making the
- * debug output difficult to read.
- */
-#define ACPI_MODULE_NAME(name) static const char ACPI_UNUSED_VAR _acpi_module_name[] = name;
-#else
-/*
- * For the no-debug and no-error-msg cases, we must at least define
- * a null module name.
- */
-#define ACPI_MODULE_NAME(name)
-#define _acpi_module_name ""
-#endif
-
-/*
- * Ascii error messages can be configured out
- */
-#ifndef ACPI_NO_ERROR_MESSAGES
-#define AE_INFO _acpi_module_name, __LINE__
-
-/*
- * Error reporting. Callers module and line number are inserted by AE_INFO,
- * the plist contains a set of parens to allow variable-length lists.
- * These macros are used for both the debug and non-debug versions of the code.
- */
-#define ACPI_INFO(plist) acpi_info plist
-#define ACPI_WARNING(plist) acpi_warning plist
-#define ACPI_EXCEPTION(plist) acpi_exception plist
-#define ACPI_ERROR(plist) acpi_error plist
-#define ACPI_DEBUG_OBJECT(obj,l,i) acpi_ex_do_debug_object(obj,l,i)
-
-#else
-
-/* No error messages */
-
-#define ACPI_INFO(plist)
-#define ACPI_WARNING(plist)
-#define ACPI_EXCEPTION(plist)
-#define ACPI_ERROR(plist)
-#define ACPI_DEBUG_OBJECT(obj,l,i)
-
-#endif /* ACPI_NO_ERROR_MESSAGES */
-
-/*
- * Debug macros that are conditionally compiled
- */
-#ifdef ACPI_DEBUG_OUTPUT
-
-/*
- * If ACPI_GET_FUNCTION_NAME was not defined in the compiler-dependent header,
- * define it now. This is the case where there the compiler does not support
- * a __FUNCTION__ macro or equivalent.
- */
-#ifndef ACPI_GET_FUNCTION_NAME
-#define ACPI_GET_FUNCTION_NAME _acpi_function_name
-
-/*
- * The Name parameter should be the procedure name as a quoted string.
- * The function name is also used by the function exit macros below.
- * Note: (const char) is used to be compatible with the debug interfaces
- * and macros such as __FUNCTION__.
- */
-#define ACPI_FUNCTION_NAME(name) static const char _acpi_function_name[] = #name;
-
-#else
-/* Compiler supports __FUNCTION__ (or equivalent) -- Ignore this macro */
-
-#define ACPI_FUNCTION_NAME(name)
-#endif /* ACPI_GET_FUNCTION_NAME */
-
-/*
- * Common parameters used for debug output functions:
- * line number, function name, module(file) name, component ID
- */
-#define ACPI_DEBUG_PARAMETERS __LINE__, ACPI_GET_FUNCTION_NAME, _acpi_module_name, _COMPONENT
-
-/*
- * Master debug print macros
- * Print message if and only if:
- * 1) Debug print for the current component is enabled
- * 2) Debug error level or trace level for the print statement is enabled
- */
-#define ACPI_DEBUG_PRINT(plist) acpi_debug_print plist
-#define ACPI_DEBUG_PRINT_RAW(plist) acpi_debug_print_raw plist
-
-#else
-/*
- * This is the non-debug case -- make everything go away,
- * leaving no executable debug code!
- */
-#define ACPI_FUNCTION_NAME(a)
-#define ACPI_DEBUG_PRINT(pl)
-#define ACPI_DEBUG_PRINT_RAW(pl)
-
-#endif /* ACPI_DEBUG_OUTPUT */
-
-#endif /* __ACOUTPUT_H__ */
diff --git a/ANDROID_3.4.5/include/acpi/acpi.h b/ANDROID_3.4.5/include/acpi/acpi.h
deleted file mode 100644
index de39915f..00000000
--- a/ANDROID_3.4.5/include/acpi/acpi.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/******************************************************************************
- *
- * Name: acpi.h - Master public include file used to interface to ACPICA
- *
- *****************************************************************************/
-
-/*
- * Copyright (C) 2000 - 2011, Intel Corp.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions, and the following disclaimer,
- * without modification.
- * 2. Redistributions in binary form must reproduce at minimum a disclaimer
- * substantially similar to the "NO WARRANTY" disclaimer below
- * ("Disclaimer") and any redistribution must be conditioned upon
- * including a substantially similar Disclaimer requirement for further
- * binary redistribution.
- * 3. Neither the names of the above-listed copyright holders nor the names
- * of any contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") version 2 as published by the Free
- * Software Foundation.
- *
- * NO WARRANTY
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- */
-
-#ifndef __ACPI_H__
-#define __ACPI_H__
-
-/*
- * Public include files for use by code that will interface to ACPICA.
- *
- * Information includes the ACPICA data types, names, exceptions, and
- * external interface prototypes. Also included are the definitions for
- * all ACPI tables (FADT, MADT, etc.)
- *
- * Note: The order of these include files is important.
- */
-#include "platform/acenv.h" /* Environment-specific items */
-#include "acnames.h" /* Common ACPI names and strings */
-#include "actypes.h" /* ACPICA data types and structures */
-#include "acexcep.h" /* ACPICA exceptions */
-#include "actbl.h" /* ACPI table definitions */
-#include "acoutput.h" /* Error output and Debug macros */
-#include "acrestyp.h" /* Resource Descriptor structs */
-#include "acpiosxf.h" /* OSL interfaces (ACPICA-to-OS) */
-#include "acpixf.h" /* ACPI core subsystem external interfaces */
-
-#endif /* __ACPI_H__ */
diff --git a/ANDROID_3.4.5/include/acpi/acpi_bus.h b/ANDROID_3.4.5/include/acpi/acpi_bus.h
deleted file mode 100644
index f1c8ca60..00000000
--- a/ANDROID_3.4.5/include/acpi/acpi_bus.h
+++ /dev/null
@@ -1,412 +0,0 @@
-/*
- * acpi_bus.h - ACPI Bus Driver ($Revision: 22 $)
- *
- * Copyright (C) 2001, 2002 Andy Grover <andrew.grover@intel.com>
- * Copyright (C) 2001, 2002 Paul Diefenbaugh <paul.s.diefenbaugh@intel.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.
- *
- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- */
-
-#ifndef __ACPI_BUS_H__
-#define __ACPI_BUS_H__
-
-#include <linux/device.h>
-
-#include <acpi/acpi.h>
-
-/* TBD: Make dynamic */
-#define ACPI_MAX_HANDLES 10
-struct acpi_handle_list {
- u32 count;
- acpi_handle handles[ACPI_MAX_HANDLES];
-};
-
-/* acpi_utils.h */
-acpi_status
-acpi_extract_package(union acpi_object *package,
- struct acpi_buffer *format, struct acpi_buffer *buffer);
-acpi_status
-acpi_evaluate_integer(acpi_handle handle,
- acpi_string pathname,
- struct acpi_object_list *arguments, unsigned long long *data);
-acpi_status
-acpi_evaluate_reference(acpi_handle handle,
- acpi_string pathname,
- struct acpi_object_list *arguments,
- struct acpi_handle_list *list);
-
-#ifdef CONFIG_ACPI
-
-#include <linux/proc_fs.h>
-
-#define ACPI_BUS_FILE_ROOT "acpi"
-extern struct proc_dir_entry *acpi_root_dir;
-
-enum acpi_bus_removal_type {
- ACPI_BUS_REMOVAL_NORMAL = 0,
- ACPI_BUS_REMOVAL_EJECT,
- ACPI_BUS_REMOVAL_SUPRISE,
- ACPI_BUS_REMOVAL_TYPE_COUNT
-};
-
-enum acpi_bus_device_type {
- ACPI_BUS_TYPE_DEVICE = 0,
- ACPI_BUS_TYPE_POWER,
- ACPI_BUS_TYPE_PROCESSOR,
- ACPI_BUS_TYPE_THERMAL,
- ACPI_BUS_TYPE_POWER_BUTTON,
- ACPI_BUS_TYPE_SLEEP_BUTTON,
- ACPI_BUS_DEVICE_TYPE_COUNT
-};
-
-struct acpi_driver;
-struct acpi_device;
-
-/*
- * ACPI Driver
- * -----------
- */
-
-typedef int (*acpi_op_add) (struct acpi_device * device);
-typedef int (*acpi_op_remove) (struct acpi_device * device, int type);
-typedef int (*acpi_op_start) (struct acpi_device * device);
-typedef int (*acpi_op_suspend) (struct acpi_device * device,
- pm_message_t state);
-typedef int (*acpi_op_resume) (struct acpi_device * device);
-typedef int (*acpi_op_bind) (struct acpi_device * device);
-typedef int (*acpi_op_unbind) (struct acpi_device * device);
-typedef void (*acpi_op_notify) (struct acpi_device * device, u32 event);
-
-struct acpi_bus_ops {
- u32 acpi_op_add:1;
- u32 acpi_op_start:1;
-};
-
-struct acpi_device_ops {
- acpi_op_add add;
- acpi_op_remove remove;
- acpi_op_start start;
- acpi_op_suspend suspend;
- acpi_op_resume resume;
- acpi_op_bind bind;
- acpi_op_unbind unbind;
- acpi_op_notify notify;
-};
-
-#define ACPI_DRIVER_ALL_NOTIFY_EVENTS 0x1 /* system AND device events */
-
-struct acpi_driver {
- char name[80];
- char class[80];
- const struct acpi_device_id *ids; /* Supported Hardware IDs */
- unsigned int flags;
- struct acpi_device_ops ops;
- struct device_driver drv;
- struct module *owner;
-};
-
-/*
- * ACPI Device
- * -----------
- */
-
-/* Status (_STA) */
-
-struct acpi_device_status {
- u32 present:1;
- u32 enabled:1;
- u32 show_in_ui:1;
- u32 functional:1;
- u32 battery_present:1;
- u32 reserved:27;
-};
-
-/* Flags */
-
-struct acpi_device_flags {
- u32 dynamic_status:1;
- u32 bus_address:1;
- u32 removable:1;
- u32 ejectable:1;
- u32 lockable:1;
- u32 suprise_removal_ok:1;
- u32 power_manageable:1;
- u32 performance_manageable:1;
- u32 reserved:24;
-};
-
-/* File System */
-
-struct acpi_device_dir {
- struct proc_dir_entry *entry;
-};
-
-#define acpi_device_dir(d) ((d)->dir.entry)
-
-/* Plug and Play */
-
-typedef char acpi_bus_id[8];
-typedef unsigned long acpi_bus_address;
-typedef char acpi_device_name[40];
-typedef char acpi_device_class[20];
-
-struct acpi_hardware_id {
- struct list_head list;
- char *id;
-};
-
-struct acpi_device_pnp {
- acpi_bus_id bus_id; /* Object name */
- acpi_bus_address bus_address; /* _ADR */
- char *unique_id; /* _UID */
- struct list_head ids; /* _HID and _CIDs */
- acpi_device_name device_name; /* Driver-determined */
- acpi_device_class device_class; /* " */
-};
-
-#define acpi_device_bid(d) ((d)->pnp.bus_id)
-#define acpi_device_adr(d) ((d)->pnp.bus_address)
-const char *acpi_device_hid(struct acpi_device *device);
-#define acpi_device_name(d) ((d)->pnp.device_name)
-#define acpi_device_class(d) ((d)->pnp.device_class)
-
-/* Power Management */
-
-struct acpi_device_power_flags {
- u32 explicit_get:1; /* _PSC present? */
- u32 power_resources:1; /* Power resources */
- u32 inrush_current:1; /* Serialize Dx->D0 */
- u32 power_removed:1; /* Optimize Dx->D0 */
- u32 reserved:28;
-};
-
-struct acpi_device_power_state {
- struct {
- u8 valid:1;
- u8 explicit_set:1; /* _PSx present? */
- u8 reserved:6;
- } flags;
- int power; /* % Power (compared to D0) */
- int latency; /* Dx->D0 time (microseconds) */
- struct acpi_handle_list resources; /* Power resources referenced */
-};
-
-struct acpi_device_power {
- int state; /* Current state */
- struct acpi_device_power_flags flags;
- struct acpi_device_power_state states[ACPI_D_STATE_COUNT]; /* Power states (D0-D3Cold) */
-};
-
-/* Performance Management */
-
-struct acpi_device_perf_flags {
- u8 reserved:8;
-};
-
-struct acpi_device_perf_state {
- struct {
- u8 valid:1;
- u8 reserved:7;
- } flags;
- u8 power; /* % Power (compared to P0) */
- u8 performance; /* % Performance ( " ) */
- int latency; /* Px->P0 time (microseconds) */
-};
-
-struct acpi_device_perf {
- int state;
- struct acpi_device_perf_flags flags;
- int state_count;
- struct acpi_device_perf_state *states;
-};
-
-/* Wakeup Management */
-struct acpi_device_wakeup_flags {
- u8 valid:1; /* Can successfully enable wakeup? */
- u8 run_wake:1; /* Run-Wake GPE devices */
- u8 notifier_present:1; /* Wake-up notify handler has been installed */
-};
-
-struct acpi_device_wakeup {
- acpi_handle gpe_device;
- u64 gpe_number;
- u64 sleep_state;
- struct acpi_handle_list resources;
- struct acpi_device_wakeup_flags flags;
- int prepare_count;
-};
-
-/* Device */
-
-struct acpi_device {
- int device_type;
- acpi_handle handle; /* no handle for fixed hardware */
- struct acpi_device *parent;
- struct list_head children;
- struct list_head node;
- struct list_head wakeup_list;
- struct acpi_device_status status;
- struct acpi_device_flags flags;
- struct acpi_device_pnp pnp;
- struct acpi_device_power power;
- struct acpi_device_wakeup wakeup;
- struct acpi_device_perf performance;
- struct acpi_device_dir dir;
- struct acpi_device_ops ops;
- struct acpi_driver *driver;
- void *driver_data;
- struct device dev;
- struct acpi_bus_ops bus_ops; /* workaround for different code path for hotplug */
- enum acpi_bus_removal_type removal_type; /* indicate for different removal type */
-};
-
-static inline void *acpi_driver_data(struct acpi_device *d)
-{
- return d->driver_data;
-}
-
-#define to_acpi_device(d) container_of(d, struct acpi_device, dev)
-#define to_acpi_driver(d) container_of(d, struct acpi_driver, drv)
-
-/* acpi_device.dev.bus == &acpi_bus_type */
-extern struct bus_type acpi_bus_type;
-
-/*
- * Events
- * ------
- */
-
-struct acpi_bus_event {
- struct list_head node;
- acpi_device_class device_class;
- acpi_bus_id bus_id;
- u32 type;
- u32 data;
-};
-
-extern struct kobject *acpi_kobj;
-extern int acpi_bus_generate_netlink_event(const char*, const char*, u8, int);
-void acpi_bus_private_data_handler(acpi_handle, void *);
-int acpi_bus_get_private_data(acpi_handle, void **);
-extern int acpi_notifier_call_chain(struct acpi_device *, u32, u32);
-extern int register_acpi_notifier(struct notifier_block *);
-extern int unregister_acpi_notifier(struct notifier_block *);
-
-extern int register_acpi_bus_notifier(struct notifier_block *nb);
-extern void unregister_acpi_bus_notifier(struct notifier_block *nb);
-/*
- * External Functions
- */
-
-int acpi_bus_get_device(acpi_handle handle, struct acpi_device **device);
-void acpi_bus_data_handler(acpi_handle handle, void *context);
-acpi_status acpi_bus_get_status_handle(acpi_handle handle,
- unsigned long long *sta);
-int acpi_bus_get_status(struct acpi_device *device);
-int acpi_bus_set_power(acpi_handle handle, int state);
-int acpi_bus_update_power(acpi_handle handle, int *state_p);
-bool acpi_bus_power_manageable(acpi_handle handle);
-bool acpi_bus_can_wakeup(acpi_handle handle);
-int acpi_power_resource_register_device(struct device *dev, acpi_handle handle);
-void acpi_power_resource_unregister_device(struct device *dev, acpi_handle handle);
-#ifdef CONFIG_ACPI_PROC_EVENT
-int acpi_bus_generate_proc_event(struct acpi_device *device, u8 type, int data);
-int acpi_bus_generate_proc_event4(const char *class, const char *bid, u8 type, int data);
-int acpi_bus_receive_event(struct acpi_bus_event *event);
-#else
-static inline int acpi_bus_generate_proc_event(struct acpi_device *device, u8 type, int data)
- { return 0; }
-#endif
-int acpi_bus_register_driver(struct acpi_driver *driver);
-void acpi_bus_unregister_driver(struct acpi_driver *driver);
-int acpi_bus_add(struct acpi_device **child, struct acpi_device *parent,
- acpi_handle handle, int type);
-int acpi_bus_trim(struct acpi_device *start, int rmdevice);
-int acpi_bus_start(struct acpi_device *device);
-acpi_status acpi_bus_get_ejd(acpi_handle handle, acpi_handle * ejd);
-int acpi_match_device_ids(struct acpi_device *device,
- const struct acpi_device_id *ids);
-int acpi_create_dir(struct acpi_device *);
-void acpi_remove_dir(struct acpi_device *);
-
-/*
- * Bind physical devices with ACPI devices
- */
-struct acpi_bus_type {
- struct list_head list;
- struct bus_type *bus;
- /* For general devices under the bus */
- int (*find_device) (struct device *, acpi_handle *);
- /* For bridges, such as PCI root bridge, IDE controller */
- int (*find_bridge) (struct device *, acpi_handle *);
-};
-int register_acpi_bus_type(struct acpi_bus_type *);
-int unregister_acpi_bus_type(struct acpi_bus_type *);
-struct device *acpi_get_physical_device(acpi_handle);
-
-struct acpi_pci_root {
- struct list_head node;
- struct acpi_device * device;
- struct acpi_pci_id id;
- struct pci_bus *bus;
- u16 segment;
- struct resource secondary; /* downstream bus range */
-
- u32 osc_support_set; /* _OSC state of support bits */
- u32 osc_control_set; /* _OSC state of control bits */
-};
-
-/* helper */
-acpi_handle acpi_get_child(acpi_handle, u64);
-int acpi_is_root_bridge(acpi_handle);
-acpi_handle acpi_get_pci_rootbridge_handle(unsigned int, unsigned int);
-struct acpi_pci_root *acpi_pci_find_root(acpi_handle handle);
-#define DEVICE_ACPI_HANDLE(dev) ((acpi_handle)((dev)->archdata.acpi_handle))
-
-int acpi_enable_wakeup_device_power(struct acpi_device *dev, int state);
-int acpi_disable_wakeup_device_power(struct acpi_device *dev);
-
-#ifdef CONFIG_PM
-int acpi_pm_device_sleep_state(struct device *, int *);
-#else
-static inline int acpi_pm_device_sleep_state(struct device *d, int *p)
-{
- if (p)
- *p = ACPI_STATE_D0;
- return ACPI_STATE_D3;
-}
-#endif
-
-#ifdef CONFIG_PM_SLEEP
-int acpi_pm_device_run_wake(struct device *, bool);
-int acpi_pm_device_sleep_wake(struct device *, bool);
-#else
-static inline int acpi_pm_device_run_wake(struct device *dev, bool enable)
-{
- return -ENODEV;
-}
-static inline int acpi_pm_device_sleep_wake(struct device *dev, bool enable)
-{
- return -ENODEV;
-}
-#endif
-
-#endif /* CONFIG_ACPI */
-
-#endif /*__ACPI_BUS_H__*/
diff --git a/ANDROID_3.4.5/include/acpi/acpi_drivers.h b/ANDROID_3.4.5/include/acpi/acpi_drivers.h
deleted file mode 100644
index bb145e4b..00000000
--- a/ANDROID_3.4.5/include/acpi/acpi_drivers.h
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * acpi_drivers.h ($Revision: 31 $)
- *
- * Copyright (C) 2001, 2002 Andy Grover <andrew.grover@intel.com>
- * Copyright (C) 2001, 2002 Paul Diefenbaugh <paul.s.diefenbaugh@intel.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.
- *
- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- */
-
-#ifndef __ACPI_DRIVERS_H__
-#define __ACPI_DRIVERS_H__
-
-#include <linux/acpi.h>
-#include <acpi/acpi_bus.h>
-
-#define ACPI_MAX_STRING 80
-
-/*
- * Please update drivers/acpi/debug.c and Documentation/acpi/debug.txt
- * if you add to this list.
- */
-#define ACPI_BUS_COMPONENT 0x00010000
-#define ACPI_AC_COMPONENT 0x00020000
-#define ACPI_BATTERY_COMPONENT 0x00040000
-#define ACPI_BUTTON_COMPONENT 0x00080000
-#define ACPI_SBS_COMPONENT 0x00100000
-#define ACPI_FAN_COMPONENT 0x00200000
-#define ACPI_PCI_COMPONENT 0x00400000
-#define ACPI_POWER_COMPONENT 0x00800000
-#define ACPI_CONTAINER_COMPONENT 0x01000000
-#define ACPI_SYSTEM_COMPONENT 0x02000000
-#define ACPI_THERMAL_COMPONENT 0x04000000
-#define ACPI_MEMORY_DEVICE_COMPONENT 0x08000000
-#define ACPI_VIDEO_COMPONENT 0x10000000
-#define ACPI_PROCESSOR_COMPONENT 0x20000000
-
-/*
- * _HID definitions
- * HIDs must conform to ACPI spec(6.1.4)
- * Linux specific HIDs do not apply to this and begin with LNX:
- */
-
-#define ACPI_POWER_HID "LNXPOWER"
-#define ACPI_PROCESSOR_OBJECT_HID "LNXCPU"
-#define ACPI_SYSTEM_HID "LNXSYSTM"
-#define ACPI_THERMAL_HID "LNXTHERM"
-#define ACPI_BUTTON_HID_POWERF "LNXPWRBN"
-#define ACPI_BUTTON_HID_SLEEPF "LNXSLPBN"
-#define ACPI_VIDEO_HID "LNXVIDEO"
-#define ACPI_BAY_HID "LNXIOBAY"
-#define ACPI_DOCK_HID "LNXDOCK"
-/* Quirk for broken IBM BIOSes */
-#define ACPI_SMBUS_IBM_HID "SMBUSIBM"
-
-/*
- * For fixed hardware buttons, we fabricate acpi_devices with HID
- * ACPI_BUTTON_HID_POWERF or ACPI_BUTTON_HID_SLEEPF. Fixed hardware
- * signals only an event; it doesn't supply a notification value.
- * To allow drivers to treat notifications from fixed hardware the
- * same as those from real devices, we turn the events into this
- * notification value.
- */
-#define ACPI_FIXED_HARDWARE_EVENT 0x100
-
-/* --------------------------------------------------------------------------
- PCI
- -------------------------------------------------------------------------- */
-
-
-/* ACPI PCI Interrupt Link (pci_link.c) */
-
-int acpi_irq_penalty_init(void);
-int acpi_pci_link_allocate_irq(acpi_handle handle, int index, int *triggering,
- int *polarity, char **name);
-int acpi_pci_link_free_irq(acpi_handle handle);
-
-/* ACPI PCI Interrupt Routing (pci_irq.c) */
-
-int acpi_pci_irq_add_prt(acpi_handle handle, struct pci_bus *bus);
-void acpi_pci_irq_del_prt(struct pci_bus *bus);
-
-/* ACPI PCI Device Binding (pci_bind.c) */
-
-struct pci_bus;
-
-struct pci_dev *acpi_get_pci_dev(acpi_handle);
-int acpi_pci_bind_root(struct acpi_device *device);
-
-/* Arch-defined function to add a bus to the system */
-
-struct pci_bus *pci_acpi_scan_root(struct acpi_pci_root *root);
-void pci_acpi_crs_quirks(void);
-
-/* --------------------------------------------------------------------------
- Processor
- -------------------------------------------------------------------------- */
-
-#define ACPI_PROCESSOR_LIMIT_NONE 0x00
-#define ACPI_PROCESSOR_LIMIT_INCREMENT 0x01
-#define ACPI_PROCESSOR_LIMIT_DECREMENT 0x02
-
-/*--------------------------------------------------------------------------
- Dock Station
- -------------------------------------------------------------------------- */
-struct acpi_dock_ops {
- acpi_notify_handler handler;
- acpi_notify_handler uevent;
-};
-
-#if defined(CONFIG_ACPI_DOCK) || defined(CONFIG_ACPI_DOCK_MODULE)
-extern int is_dock_device(acpi_handle handle);
-extern int register_dock_notifier(struct notifier_block *nb);
-extern void unregister_dock_notifier(struct notifier_block *nb);
-extern int register_hotplug_dock_device(acpi_handle handle,
- const struct acpi_dock_ops *ops,
- void *context);
-extern void unregister_hotplug_dock_device(acpi_handle handle);
-#else
-static inline int is_dock_device(acpi_handle handle)
-{
- return 0;
-}
-static inline int register_dock_notifier(struct notifier_block *nb)
-{
- return -ENODEV;
-}
-static inline void unregister_dock_notifier(struct notifier_block *nb)
-{
-}
-static inline int register_hotplug_dock_device(acpi_handle handle,
- const struct acpi_dock_ops *ops,
- void *context)
-{
- return -ENODEV;
-}
-static inline void unregister_hotplug_dock_device(acpi_handle handle)
-{
-}
-#endif
-
-#endif /*__ACPI_DRIVERS_H__*/
diff --git a/ANDROID_3.4.5/include/acpi/acpi_numa.h b/ANDROID_3.4.5/include/acpi/acpi_numa.h
deleted file mode 100644
index 451823cb..00000000
--- a/ANDROID_3.4.5/include/acpi/acpi_numa.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef __ACPI_NUMA_H
-#define __ACPI_NUMA_H
-
-#ifdef CONFIG_ACPI_NUMA
-#include <linux/kernel.h>
-
-/* Proximity bitmap length */
-#if MAX_NUMNODES > 256
-#define MAX_PXM_DOMAINS MAX_NUMNODES
-#else
-#define MAX_PXM_DOMAINS (256) /* Old pxm spec is defined 8 bit */
-#endif
-
-extern int pxm_to_node(int);
-extern int node_to_pxm(int);
-extern void __acpi_map_pxm_to_node(int, int);
-extern int acpi_map_pxm_to_node(int);
-extern unsigned char acpi_srat_revision;
-
-#endif /* CONFIG_ACPI_NUMA */
-#endif /* __ACP_NUMA_H */
diff --git a/ANDROID_3.4.5/include/acpi/acpiosxf.h b/ANDROID_3.4.5/include/acpi/acpiosxf.h
deleted file mode 100644
index 21a5548c..00000000
--- a/ANDROID_3.4.5/include/acpi/acpiosxf.h
+++ /dev/null
@@ -1,281 +0,0 @@
-
-/******************************************************************************
- *
- * Name: acpiosxf.h - All interfaces to the OS Services Layer (OSL). These
- * interfaces must be implemented by OSL to interface the
- * ACPI components to the host operating system.
- *
- *****************************************************************************/
-
-/*
- * Copyright (C) 2000 - 2011, Intel Corp.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions, and the following disclaimer,
- * without modification.
- * 2. Redistributions in binary form must reproduce at minimum a disclaimer
- * substantially similar to the "NO WARRANTY" disclaimer below
- * ("Disclaimer") and any redistribution must be conditioned upon
- * including a substantially similar Disclaimer requirement for further
- * binary redistribution.
- * 3. Neither the names of the above-listed copyright holders nor the names
- * of any contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") version 2 as published by the Free
- * Software Foundation.
- *
- * NO WARRANTY
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- */
-
-#ifndef __ACPIOSXF_H__
-#define __ACPIOSXF_H__
-
-#include "platform/acenv.h"
-#include "actypes.h"
-
-/* Types for acpi_os_execute */
-
-typedef enum {
- OSL_GLOBAL_LOCK_HANDLER,
- OSL_NOTIFY_HANDLER,
- OSL_GPE_HANDLER,
- OSL_DEBUGGER_THREAD,
- OSL_EC_POLL_HANDLER,
- OSL_EC_BURST_HANDLER
-} acpi_execute_type;
-
-#define ACPI_NO_UNIT_LIMIT ((u32) -1)
-#define ACPI_MUTEX_SEM 1
-
-/* Functions for acpi_os_signal */
-
-#define ACPI_SIGNAL_FATAL 0
-#define ACPI_SIGNAL_BREAKPOINT 1
-
-struct acpi_signal_fatal_info {
- u32 type;
- u32 code;
- u32 argument;
-};
-
-/*
- * OSL Initialization and shutdown primitives
- */
-acpi_status __initdata acpi_os_initialize(void);
-
-acpi_status acpi_os_terminate(void);
-
-/*
- * ACPI Table interfaces
- */
-acpi_physical_address acpi_os_get_root_pointer(void);
-
-acpi_status
-acpi_os_predefined_override(const struct acpi_predefined_names *init_val,
- acpi_string * new_val);
-
-acpi_status
-acpi_os_table_override(struct acpi_table_header *existing_table,
- struct acpi_table_header **new_table);
-
-acpi_status
-acpi_os_physical_table_override(struct acpi_table_header *existing_table,
- acpi_physical_address * new_address,
- u32 *new_table_length);
-
-/*
- * Spinlock primitives
- */
-
-#ifndef acpi_os_create_lock
-acpi_status
-acpi_os_create_lock(acpi_spinlock *out_handle);
-#endif
-
-void acpi_os_delete_lock(acpi_spinlock handle);
-
-acpi_cpu_flags acpi_os_acquire_lock(acpi_spinlock handle);
-
-void acpi_os_release_lock(acpi_spinlock handle, acpi_cpu_flags flags);
-
-/*
- * Semaphore primitives
- */
-acpi_status
-acpi_os_create_semaphore(u32 max_units,
- u32 initial_units, acpi_semaphore * out_handle);
-
-acpi_status acpi_os_delete_semaphore(acpi_semaphore handle);
-
-acpi_status
-acpi_os_wait_semaphore(acpi_semaphore handle, u32 units, u16 timeout);
-
-acpi_status acpi_os_signal_semaphore(acpi_semaphore handle, u32 units);
-
-/*
- * Mutex primitives. May be configured to use semaphores instead via
- * ACPI_MUTEX_TYPE (see platform/acenv.h)
- */
-#if (ACPI_MUTEX_TYPE != ACPI_BINARY_SEMAPHORE)
-
-acpi_status acpi_os_create_mutex(acpi_mutex * out_handle);
-
-void acpi_os_delete_mutex(acpi_mutex handle);
-
-acpi_status acpi_os_acquire_mutex(acpi_mutex handle, u16 timeout);
-
-void acpi_os_release_mutex(acpi_mutex handle);
-#endif
-
-/*
- * Memory allocation and mapping
- */
-void *acpi_os_allocate(acpi_size size);
-
-void __iomem *acpi_os_map_memory(acpi_physical_address where,
- acpi_size length);
-
-void acpi_os_unmap_memory(void __iomem * logical_address, acpi_size size);
-void early_acpi_os_unmap_memory(void __iomem * virt, acpi_size size);
-
-#ifdef ACPI_FUTURE_USAGE
-acpi_status
-acpi_os_get_physical_address(void *logical_address,
- acpi_physical_address * physical_address);
-#endif
-
-/*
- * Memory/Object Cache
- */
-acpi_status
-acpi_os_create_cache(char *cache_name,
- u16 object_size,
- u16 max_depth, acpi_cache_t ** return_cache);
-
-acpi_status acpi_os_delete_cache(acpi_cache_t * cache);
-
-acpi_status acpi_os_purge_cache(acpi_cache_t * cache);
-
-void *acpi_os_acquire_object(acpi_cache_t * cache);
-
-acpi_status acpi_os_release_object(acpi_cache_t * cache, void *object);
-
-/*
- * Interrupt handlers
- */
-acpi_status
-acpi_os_install_interrupt_handler(u32 gsi,
- acpi_osd_handler service_routine,
- void *context);
-
-acpi_status
-acpi_os_remove_interrupt_handler(u32 gsi, acpi_osd_handler service_routine);
-
-void acpi_os_gpe_count(u32 gpe_number);
-void acpi_os_fixed_event_count(u32 fixed_event_number);
-
-/*
- * Threads and Scheduling
- */
-extern struct workqueue_struct *kacpi_hotplug_wq;
-
-acpi_thread_id acpi_os_get_thread_id(void);
-
-acpi_status
-acpi_os_execute(acpi_execute_type type,
- acpi_osd_exec_callback function, void *context);
-
-acpi_status
-acpi_os_hotplug_execute(acpi_osd_exec_callback function, void *context);
-
-void acpi_os_wait_events_complete(void *context);
-
-void acpi_os_sleep(u64 milliseconds);
-
-void acpi_os_stall(u32 microseconds);
-
-/*
- * Platform and hardware-independent I/O interfaces
- */
-acpi_status acpi_os_read_port(acpi_io_address address, u32 * value, u32 width);
-
-acpi_status acpi_os_write_port(acpi_io_address address, u32 value, u32 width);
-
-/*
- * Platform and hardware-independent physical memory interfaces
- */
-acpi_status
-acpi_os_read_memory(acpi_physical_address address, u64 *value, u32 width);
-
-acpi_status
-acpi_os_write_memory(acpi_physical_address address, u64 value, u32 width);
-
-/*
- * Platform and hardware-independent PCI configuration space access
- * Note: Can't use "Register" as a parameter, changed to "Reg" --
- * certain compilers complain.
- */
-acpi_status
-acpi_os_read_pci_configuration(struct acpi_pci_id *pci_id,
- u32 reg, u64 *value, u32 width);
-
-acpi_status
-acpi_os_write_pci_configuration(struct acpi_pci_id *pci_id,
- u32 reg, u64 value, u32 width);
-
-/*
- * Miscellaneous
- */
-u64 acpi_os_get_timer(void);
-
-acpi_status acpi_os_signal(u32 function, void *info);
-
-/*
- * Debug print routines
- */
-void ACPI_INTERNAL_VAR_XFACE acpi_os_printf(const char *format, ...);
-
-void acpi_os_vprintf(const char *format, va_list args);
-
-void acpi_os_redirect_output(void *destination);
-
-#ifdef ACPI_FUTURE_USAGE
-/*
- * Debug input
- */
-u32 acpi_os_get_line(char *buffer);
-#endif
-
-/*
- * Directory manipulation
- */
-void *acpi_os_open_directory(char *pathname,
- char *wildcard_spec, char requested_file_type);
-
-/* requeste_file_type values */
-
-#define REQUEST_FILE_ONLY 0
-#define REQUEST_DIR_ONLY 1
-
-char *acpi_os_get_next_filename(void *dir_handle);
-
-void acpi_os_close_directory(void *dir_handle);
-
-#endif /* __ACPIOSXF_H__ */
diff --git a/ANDROID_3.4.5/include/acpi/acpixf.h b/ANDROID_3.4.5/include/acpi/acpixf.h
deleted file mode 100644
index 98211013..00000000
--- a/ANDROID_3.4.5/include/acpi/acpixf.h
+++ /dev/null
@@ -1,553 +0,0 @@
-
-/******************************************************************************
- *
- * Name: acpixf.h - External interfaces to the ACPI subsystem
- *
- *****************************************************************************/
-
-/*
- * Copyright (C) 2000 - 2011, Intel Corp.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions, and the following disclaimer,
- * without modification.
- * 2. Redistributions in binary form must reproduce at minimum a disclaimer
- * substantially similar to the "NO WARRANTY" disclaimer below
- * ("Disclaimer") and any redistribution must be conditioned upon
- * including a substantially similar Disclaimer requirement for further
- * binary redistribution.
- * 3. Neither the names of the above-listed copyright holders nor the names
- * of any contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") version 2 as published by the Free
- * Software Foundation.
- *
- * NO WARRANTY
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- */
-
-#ifndef __ACXFACE_H__
-#define __ACXFACE_H__
-
-/* Current ACPICA subsystem version in YYYYMMDD format */
-
-#define ACPI_CA_VERSION 0x20120320
-
-#include "acconfig.h"
-#include "actypes.h"
-#include "actbl.h"
-
-extern u8 acpi_gbl_permanent_mmap;
-
-/*
- * Globals that are publicly available, allowing for
- * run time configuration
- */
-extern u32 acpi_dbg_level;
-extern u32 acpi_dbg_layer;
-extern u8 acpi_gbl_enable_interpreter_slack;
-extern u8 acpi_gbl_all_methods_serialized;
-extern u8 acpi_gbl_create_osi_method;
-extern u8 acpi_gbl_use_default_register_widths;
-extern acpi_name acpi_gbl_trace_method_name;
-extern u32 acpi_gbl_trace_flags;
-extern bool acpi_gbl_enable_aml_debug_object;
-extern u8 acpi_gbl_copy_dsdt_locally;
-extern u8 acpi_gbl_truncate_io_addresses;
-extern u8 acpi_gbl_disable_auto_repair;
-
-/*
- * Hardware-reduced prototypes. All interfaces that use these macros will
- * be configured out of the ACPICA build if the ACPI_REDUCED_HARDWARE flag
- * is set to TRUE.
- */
-#if (!ACPI_REDUCED_HARDWARE)
-#define ACPI_HW_DEPENDENT_RETURN_STATUS(prototype) \
- prototype;
-
-#define ACPI_HW_DEPENDENT_RETURN_OK(prototype) \
- prototype;
-
-#define ACPI_HW_DEPENDENT_RETURN_VOID(prototype) \
- prototype;
-
-#else
-#define ACPI_HW_DEPENDENT_RETURN_STATUS(prototype) \
- static ACPI_INLINE prototype {return(AE_NOT_CONFIGURED);}
-
-#define ACPI_HW_DEPENDENT_RETURN_OK(prototype) \
- static ACPI_INLINE prototype {return(AE_OK);}
-
-#define ACPI_HW_DEPENDENT_RETURN_VOID(prototype) \
- static ACPI_INLINE prototype {}
-
-#endif /* !ACPI_REDUCED_HARDWARE */
-
-extern u32 acpi_current_gpe_count;
-extern struct acpi_table_fadt acpi_gbl_FADT;
-extern u8 acpi_gbl_system_awake_and_running;
-extern u8 acpi_gbl_reduced_hardware; /* ACPI 5.0 */
-
-extern u32 acpi_rsdt_forced;
-/*
- * Global interfaces
- */
-acpi_status
-acpi_initialize_tables(struct acpi_table_desc *initial_storage,
- u32 initial_table_count, u8 allow_resize);
-
-acpi_status __init acpi_initialize_subsystem(void);
-
-acpi_status acpi_enable_subsystem(u32 flags);
-
-acpi_status acpi_initialize_objects(u32 flags);
-
-acpi_status acpi_terminate(void);
-
-#ifdef ACPI_FUTURE_USAGE
-acpi_status acpi_subsystem_status(void);
-#endif
-
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status acpi_enable(void))
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status acpi_disable(void))
-
-#ifdef ACPI_FUTURE_USAGE
-acpi_status acpi_get_system_info(struct acpi_buffer *ret_buffer);
-#endif
-
-const char *acpi_format_exception(acpi_status exception);
-
-acpi_status acpi_purge_cached_objects(void);
-
-acpi_status acpi_install_interface(acpi_string interface_name);
-
-acpi_status acpi_remove_interface(acpi_string interface_name);
-
-u32
-acpi_check_address_range(acpi_adr_space_type space_id,
- acpi_physical_address address,
- acpi_size length, u8 warn);
-
-/*
- * ACPI Memory management
- */
-void *acpi_allocate(u32 size);
-
-void *acpi_callocate(u32 size);
-
-void acpi_free(void *address);
-
-/*
- * ACPI table manipulation interfaces
- */
-acpi_status acpi_reallocate_root_table(void);
-
-acpi_status acpi_find_root_pointer(acpi_size *rsdp_address);
-
-acpi_status acpi_load_tables(void);
-
-acpi_status acpi_load_table(struct acpi_table_header *table_ptr);
-
-acpi_status acpi_unload_table_id(acpi_owner_id id);
-
-acpi_status
-acpi_get_table_header(acpi_string signature,
- u32 instance,
- struct acpi_table_header *out_table_header);
-
-acpi_status
-acpi_get_table_with_size(acpi_string signature,
- u32 instance, struct acpi_table_header **out_table,
- acpi_size *tbl_size);
-acpi_status
-acpi_get_table(acpi_string signature,
- u32 instance, struct acpi_table_header **out_table);
-
-acpi_status
-acpi_get_table_by_index(u32 table_index,
- struct acpi_table_header **out_table);
-
-acpi_status
-acpi_install_table_handler(acpi_tbl_handler handler, void *context);
-
-acpi_status acpi_remove_table_handler(acpi_tbl_handler handler);
-
-/*
- * Namespace and name interfaces
- */
-acpi_status
-acpi_walk_namespace(acpi_object_type type,
- acpi_handle start_object,
- u32 max_depth,
- acpi_walk_callback pre_order_visit,
- acpi_walk_callback post_order_visit,
- void *context, void **return_value);
-
-acpi_status
-acpi_get_devices(const char *HID,
- acpi_walk_callback user_function,
- void *context, void **return_value);
-
-acpi_status
-acpi_get_name(acpi_handle object,
- u32 name_type, struct acpi_buffer *ret_path_ptr);
-
-acpi_status
-acpi_get_handle(acpi_handle parent,
- acpi_string pathname, acpi_handle * ret_handle);
-
-acpi_status
-acpi_attach_data(acpi_handle object, acpi_object_handler handler, void *data);
-
-acpi_status acpi_detach_data(acpi_handle object, acpi_object_handler handler);
-
-acpi_status
-acpi_get_data(acpi_handle object, acpi_object_handler handler, void **data);
-
-acpi_status
-acpi_debug_trace(char *name, u32 debug_level, u32 debug_layer, u32 flags);
-
-/*
- * Object manipulation and enumeration
- */
-acpi_status
-acpi_evaluate_object(acpi_handle object,
- acpi_string pathname,
- struct acpi_object_list *parameter_objects,
- struct acpi_buffer *return_object_buffer);
-
-acpi_status
-acpi_evaluate_object_typed(acpi_handle object,
- acpi_string pathname,
- struct acpi_object_list *external_params,
- struct acpi_buffer *return_buffer,
- acpi_object_type return_type);
-
-acpi_status
-acpi_get_object_info(acpi_handle object,
- struct acpi_device_info **return_buffer);
-
-acpi_status acpi_install_method(u8 *buffer);
-
-acpi_status
-acpi_get_next_object(acpi_object_type type,
- acpi_handle parent,
- acpi_handle child, acpi_handle * out_handle);
-
-acpi_status acpi_get_type(acpi_handle object, acpi_object_type * out_type);
-
-acpi_status acpi_get_id(acpi_handle object, acpi_owner_id * out_type);
-
-acpi_status acpi_get_parent(acpi_handle object, acpi_handle * out_handle);
-
-/*
- * Handler interfaces
- */
-acpi_status
-acpi_install_initialization_handler(acpi_init_handler handler, u32 function);
-
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
- acpi_install_global_event_handler
- (ACPI_GBL_EVENT_HANDLER handler, void *context))
-
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
- acpi_install_fixed_event_handler(u32
- acpi_event,
- acpi_event_handler
- handler,
- void
- *context))
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
- acpi_remove_fixed_event_handler(u32 acpi_event,
- acpi_event_handler
- handler))
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
- acpi_install_gpe_handler(acpi_handle
- gpe_device,
- u32 gpe_number,
- u32 type,
- acpi_gpe_handler
- address,
- void *context))
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
- acpi_remove_gpe_handler(acpi_handle gpe_device,
- u32 gpe_number,
- acpi_gpe_handler
- address))
-acpi_status
-acpi_install_notify_handler(acpi_handle device,
- u32 handler_type,
- acpi_notify_handler handler, void *context);
-
-acpi_status
-acpi_remove_notify_handler(acpi_handle device,
- u32 handler_type, acpi_notify_handler handler);
-
-acpi_status
-acpi_install_address_space_handler(acpi_handle device,
- acpi_adr_space_type space_id,
- acpi_adr_space_handler handler,
- acpi_adr_space_setup setup, void *context);
-
-acpi_status
-acpi_remove_address_space_handler(acpi_handle device,
- acpi_adr_space_type space_id,
- acpi_adr_space_handler handler);
-
-#ifdef ACPI_FUTURE_USAGE
-acpi_status acpi_install_exception_handler(acpi_exception_handler handler);
-#endif
-
-acpi_status acpi_install_interface_handler(acpi_interface_handler handler);
-
-/*
- * Global Lock interfaces
- */
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
- acpi_acquire_global_lock(u16 timeout,
- u32 *handle))
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
- acpi_release_global_lock(u32 handle))
-
-/*
- * Interfaces to AML mutex objects
- */
-acpi_status
-acpi_acquire_mutex(acpi_handle handle, acpi_string pathname, u16 timeout);
-
-acpi_status acpi_release_mutex(acpi_handle handle, acpi_string pathname);
-
-/*
- * Fixed Event interfaces
- */
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
- acpi_enable_event(u32 event, u32 flags))
-
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
- acpi_disable_event(u32 event, u32 flags))
-
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status acpi_clear_event(u32 event))
-
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
- acpi_get_event_status(u32 event,
- acpi_event_status
- *event_status))
-/*
- * General Purpose Event (GPE) Interfaces
- */
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status acpi_update_all_gpes(void))
-
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
- acpi_enable_gpe(acpi_handle gpe_device,
- u32 gpe_number))
-
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
- acpi_disable_gpe(acpi_handle gpe_device,
- u32 gpe_number))
-
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
- acpi_clear_gpe(acpi_handle gpe_device,
- u32 gpe_number))
-
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
- acpi_set_gpe(acpi_handle gpe_device,
- u32 gpe_number, u8 action))
-
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
- acpi_finish_gpe(acpi_handle gpe_device,
- u32 gpe_number))
-
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
- acpi_setup_gpe_for_wake(acpi_handle
- parent_device,
- acpi_handle gpe_device,
- u32 gpe_number))
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
- acpi_set_gpe_wake_mask(acpi_handle gpe_device,
- u32 gpe_number,
- u8 action))
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
- acpi_get_gpe_status(acpi_handle gpe_device,
- u32 gpe_number,
- acpi_event_status
- *event_status))
-
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status acpi_disable_all_gpes(void))
-
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status acpi_enable_all_runtime_gpes(void))
-
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
- acpi_get_gpe_device(u32 gpe_index,
- acpi_handle * gpe_device))
-
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
- acpi_install_gpe_block(acpi_handle gpe_device,
- struct
- acpi_generic_address
- *gpe_block_address,
- u32 register_count,
- u32 interrupt_number))
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
- acpi_remove_gpe_block(acpi_handle gpe_device))
-
-/*
- * Resource interfaces
- */
-typedef
-acpi_status(*acpi_walk_resource_callback) (struct acpi_resource * resource,
- void *context);
-
-acpi_status
-acpi_get_vendor_resource(acpi_handle device,
- char *name,
- struct acpi_vendor_uuid *uuid,
- struct acpi_buffer *ret_buffer);
-
-acpi_status
-acpi_get_current_resources(acpi_handle device, struct acpi_buffer *ret_buffer);
-
-#ifdef ACPI_FUTURE_USAGE
-acpi_status
-acpi_get_possible_resources(acpi_handle device, struct acpi_buffer *ret_buffer);
-#endif
-
-acpi_status
-acpi_get_event_resources(acpi_handle device_handle,
- struct acpi_buffer *ret_buffer);
-
-acpi_status
-acpi_walk_resources(acpi_handle device,
- char *name,
- acpi_walk_resource_callback user_function, void *context);
-
-acpi_status
-acpi_set_current_resources(acpi_handle device, struct acpi_buffer *in_buffer);
-
-acpi_status
-acpi_get_irq_routing_table(acpi_handle device, struct acpi_buffer *ret_buffer);
-
-acpi_status
-acpi_resource_to_address64(struct acpi_resource *resource,
- struct acpi_resource_address64 *out);
-
-acpi_status
-acpi_buffer_to_resource(u8 *aml_buffer,
- u16 aml_buffer_length,
- struct acpi_resource **resource_ptr);
-
-/*
- * Hardware (ACPI device) interfaces
- */
-acpi_status acpi_reset(void);
-
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
- acpi_read_bit_register(u32 register_id,
- u32 *return_value))
-
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
- acpi_write_bit_register(u32 register_id,
- u32 value))
-
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
- acpi_set_firmware_waking_vector(u32
- physical_address))
-
-#if ACPI_MACHINE_WIDTH == 64
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
- acpi_set_firmware_waking_vector64(u64
- physical_address))
-#endif
-
-acpi_status acpi_read(u64 *value, struct acpi_generic_address *reg);
-
-acpi_status acpi_write(u64 value, struct acpi_generic_address *reg);
-
-/*
- * Sleep/Wake interfaces
- */
-acpi_status
-acpi_get_sleep_type_data(u8 sleep_state, u8 * slp_typ_a, u8 * slp_typ_b);
-
-acpi_status acpi_enter_sleep_state_prep(u8 sleep_state);
-
-acpi_status asmlinkage acpi_enter_sleep_state(u8 sleep_state, u8 flags);
-
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status asmlinkage acpi_enter_sleep_state_s4bios(void))
-
-acpi_status acpi_leave_sleep_state_prep(u8 sleep_state, u8 flags);
-
-acpi_status acpi_leave_sleep_state(u8 sleep_state);
-
-/*
- * ACPI Timer interfaces
- */
-#ifdef ACPI_FUTURE_USAGE
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
- acpi_get_timer_resolution(u32 *resolution))
-
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status acpi_get_timer(u32 *ticks))
-
-ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
- acpi_get_timer_duration(u32 start_ticks,
- u32 end_ticks,
- u32 *time_elapsed))
-#endif /* ACPI_FUTURE_USAGE */
-
-/*
- * Error/Warning output
- */
-void ACPI_INTERNAL_VAR_XFACE
-acpi_error(const char *module_name,
- u32 line_number, const char *format, ...) ACPI_PRINTF_LIKE(3);
-
-void ACPI_INTERNAL_VAR_XFACE
-acpi_exception(const char *module_name,
- u32 line_number,
- acpi_status status, const char *format, ...) ACPI_PRINTF_LIKE(4);
-
-void ACPI_INTERNAL_VAR_XFACE
-acpi_warning(const char *module_name,
- u32 line_number, const char *format, ...) ACPI_PRINTF_LIKE(3);
-
-void ACPI_INTERNAL_VAR_XFACE
-acpi_info(const char *module_name,
- u32 line_number, const char *format, ...) ACPI_PRINTF_LIKE(3);
-
-/*
- * Debug output
- */
-#ifdef ACPI_DEBUG_OUTPUT
-
-void ACPI_INTERNAL_VAR_XFACE
-acpi_debug_print(u32 requested_debug_level,
- u32 line_number,
- const char *function_name,
- const char *module_name,
- u32 component_id, const char *format, ...) ACPI_PRINTF_LIKE(6);
-
-void ACPI_INTERNAL_VAR_XFACE
-acpi_debug_print_raw(u32 requested_debug_level,
- u32 line_number,
- const char *function_name,
- const char *module_name,
- u32 component_id,
- const char *format, ...) ACPI_PRINTF_LIKE(6);
-#endif
-
-#endif /* __ACXFACE_H__ */
diff --git a/ANDROID_3.4.5/include/acpi/acrestyp.h b/ANDROID_3.4.5/include/acpi/acrestyp.h
deleted file mode 100644
index 3506e39a..00000000
--- a/ANDROID_3.4.5/include/acpi/acrestyp.h
+++ /dev/null
@@ -1,604 +0,0 @@
-/******************************************************************************
- *
- * Name: acrestyp.h - Defines, types, and structures for resource descriptors
- *
- *****************************************************************************/
-
-/*
- * Copyright (C) 2000 - 2011, Intel Corp.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions, and the following disclaimer,
- * without modification.
- * 2. Redistributions in binary form must reproduce at minimum a disclaimer
- * substantially similar to the "NO WARRANTY" disclaimer below
- * ("Disclaimer") and any redistribution must be conditioned upon
- * including a substantially similar Disclaimer requirement for further
- * binary redistribution.
- * 3. Neither the names of the above-listed copyright holders nor the names
- * of any contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") version 2 as published by the Free
- * Software Foundation.
- *
- * NO WARRANTY
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- */
-
-#ifndef __ACRESTYP_H__
-#define __ACRESTYP_H__
-
-/*
- * Definitions for Resource Attributes
- */
-typedef u16 acpi_rs_length; /* Resource Length field is fixed at 16 bits */
-typedef u32 acpi_rsdesc_size; /* Max Resource Descriptor size is (Length+3) = (64_k-1)+3 */
-
-/*
- * Memory Attributes
- */
-#define ACPI_READ_ONLY_MEMORY (u8) 0x00
-#define ACPI_READ_WRITE_MEMORY (u8) 0x01
-
-#define ACPI_NON_CACHEABLE_MEMORY (u8) 0x00
-#define ACPI_CACHABLE_MEMORY (u8) 0x01
-#define ACPI_WRITE_COMBINING_MEMORY (u8) 0x02
-#define ACPI_PREFETCHABLE_MEMORY (u8) 0x03
-
-/*! [Begin] no source code translation */
-/*
- * IO Attributes
- * The ISA IO ranges are: n000-n0FFh, n400-n4FFh, n800-n8FFh, nC00-nCFFh.
- * The non-ISA IO ranges are: n100-n3FFh, n500-n7FFh, n900-nBFFh, nCD0-nFFFh.
- */
-/*! [End] no source code translation !*/
-
-#define ACPI_NON_ISA_ONLY_RANGES (u8) 0x01
-#define ACPI_ISA_ONLY_RANGES (u8) 0x02
-#define ACPI_ENTIRE_RANGE (ACPI_NON_ISA_ONLY_RANGES | ACPI_ISA_ONLY_RANGES)
-
-/* Type of translation - 1=Sparse, 0=Dense */
-
-#define ACPI_SPARSE_TRANSLATION (u8) 0x01
-
-/*
- * IO Port Descriptor Decode
- */
-#define ACPI_DECODE_10 (u8) 0x00 /* 10-bit IO address decode */
-#define ACPI_DECODE_16 (u8) 0x01 /* 16-bit IO address decode */
-
-/*
- * Interrupt attributes - used in multiple descriptors
- */
-
-/* Triggering */
-
-#define ACPI_LEVEL_SENSITIVE (u8) 0x00
-#define ACPI_EDGE_SENSITIVE (u8) 0x01
-
-/* Polarity */
-
-#define ACPI_ACTIVE_HIGH (u8) 0x00
-#define ACPI_ACTIVE_LOW (u8) 0x01
-#define ACPI_ACTIVE_BOTH (u8) 0x02
-
-/* Sharing */
-
-#define ACPI_EXCLUSIVE (u8) 0x00
-#define ACPI_SHARED (u8) 0x01
-#define ACPI_EXCLUSIVE_AND_WAKE (u8) 0x02
-#define ACPI_SHARED_AND_WAKE (u8) 0x03
-
-/*
- * DMA Attributes
- */
-#define ACPI_COMPATIBILITY (u8) 0x00
-#define ACPI_TYPE_A (u8) 0x01
-#define ACPI_TYPE_B (u8) 0x02
-#define ACPI_TYPE_F (u8) 0x03
-
-#define ACPI_NOT_BUS_MASTER (u8) 0x00
-#define ACPI_BUS_MASTER (u8) 0x01
-
-#define ACPI_TRANSFER_8 (u8) 0x00
-#define ACPI_TRANSFER_8_16 (u8) 0x01
-#define ACPI_TRANSFER_16 (u8) 0x02
-
-/*
- * Start Dependent Functions Priority definitions
- */
-#define ACPI_GOOD_CONFIGURATION (u8) 0x00
-#define ACPI_ACCEPTABLE_CONFIGURATION (u8) 0x01
-#define ACPI_SUB_OPTIMAL_CONFIGURATION (u8) 0x02
-
-/*
- * 16, 32 and 64-bit Address Descriptor resource types
- */
-#define ACPI_MEMORY_RANGE (u8) 0x00
-#define ACPI_IO_RANGE (u8) 0x01
-#define ACPI_BUS_NUMBER_RANGE (u8) 0x02
-
-#define ACPI_ADDRESS_NOT_FIXED (u8) 0x00
-#define ACPI_ADDRESS_FIXED (u8) 0x01
-
-#define ACPI_POS_DECODE (u8) 0x00
-#define ACPI_SUB_DECODE (u8) 0x01
-
-/* Producer/Consumer */
-
-#define ACPI_PRODUCER (u8) 0x00
-#define ACPI_CONSUMER (u8) 0x01
-
-/*
- * If possible, pack the following structures to byte alignment
- */
-#ifndef ACPI_MISALIGNMENT_NOT_SUPPORTED
-#pragma pack(1)
-#endif
-
-/* UUID data structures for use in vendor-defined resource descriptors */
-
-struct acpi_uuid {
- u8 data[ACPI_UUID_LENGTH];
-};
-
-struct acpi_vendor_uuid {
- u8 subtype;
- u8 data[ACPI_UUID_LENGTH];
-};
-
-/*
- * Structures used to describe device resources
- */
-struct acpi_resource_irq {
- u8 descriptor_length;
- u8 triggering;
- u8 polarity;
- u8 sharable;
- u8 interrupt_count;
- u8 interrupts[1];
-};
-
-struct acpi_resource_dma {
- u8 type;
- u8 bus_master;
- u8 transfer;
- u8 channel_count;
- u8 channels[1];
-};
-
-struct acpi_resource_start_dependent {
- u8 descriptor_length;
- u8 compatibility_priority;
- u8 performance_robustness;
-};
-
-/*
- * The END_DEPENDENT_FUNCTIONS_RESOURCE struct is not
- * needed because it has no fields
- */
-
-struct acpi_resource_io {
- u8 io_decode;
- u8 alignment;
- u8 address_length;
- u16 minimum;
- u16 maximum;
-};
-
-struct acpi_resource_fixed_io {
- u16 address;
- u8 address_length;
-};
-
-struct acpi_resource_fixed_dma {
- u16 request_lines;
- u16 channels;
- u8 width;
-};
-
-/* Values for Width field above */
-
-#define ACPI_DMA_WIDTH8 0
-#define ACPI_DMA_WIDTH16 1
-#define ACPI_DMA_WIDTH32 2
-#define ACPI_DMA_WIDTH64 3
-#define ACPI_DMA_WIDTH128 4
-#define ACPI_DMA_WIDTH256 5
-
-struct acpi_resource_vendor {
- u16 byte_length;
- u8 byte_data[1];
-};
-
-/* Vendor resource with UUID info (introduced in ACPI 3.0) */
-
-struct acpi_resource_vendor_typed {
- u16 byte_length;
- u8 uuid_subtype;
- u8 uuid[ACPI_UUID_LENGTH];
- u8 byte_data[1];
-};
-
-struct acpi_resource_end_tag {
- u8 checksum;
-};
-
-struct acpi_resource_memory24 {
- u8 write_protect;
- u16 minimum;
- u16 maximum;
- u16 alignment;
- u16 address_length;
-};
-
-struct acpi_resource_memory32 {
- u8 write_protect;
- u32 minimum;
- u32 maximum;
- u32 alignment;
- u32 address_length;
-};
-
-struct acpi_resource_fixed_memory32 {
- u8 write_protect;
- u32 address;
- u32 address_length;
-};
-
-struct acpi_memory_attribute {
- u8 write_protect;
- u8 caching;
- u8 range_type;
- u8 translation;
-};
-
-struct acpi_io_attribute {
- u8 range_type;
- u8 translation;
- u8 translation_type;
- u8 reserved1;
-};
-
-union acpi_resource_attribute {
- struct acpi_memory_attribute mem;
- struct acpi_io_attribute io;
-
- /* Used for the *word_space macros */
-
- u8 type_specific;
-};
-
-struct acpi_resource_source {
- u8 index;
- u16 string_length;
- char *string_ptr;
-};
-
-/* Fields common to all address descriptors, 16/32/64 bit */
-
-#define ACPI_RESOURCE_ADDRESS_COMMON \
- u8 resource_type; \
- u8 producer_consumer; \
- u8 decode; \
- u8 min_address_fixed; \
- u8 max_address_fixed; \
- union acpi_resource_attribute info;
-
-struct acpi_resource_address {
-ACPI_RESOURCE_ADDRESS_COMMON};
-
-struct acpi_resource_address16 {
- ACPI_RESOURCE_ADDRESS_COMMON u16 granularity;
- u16 minimum;
- u16 maximum;
- u16 translation_offset;
- u16 address_length;
- struct acpi_resource_source resource_source;
-};
-
-struct acpi_resource_address32 {
- ACPI_RESOURCE_ADDRESS_COMMON u32 granularity;
- u32 minimum;
- u32 maximum;
- u32 translation_offset;
- u32 address_length;
- struct acpi_resource_source resource_source;
-};
-
-struct acpi_resource_address64 {
- ACPI_RESOURCE_ADDRESS_COMMON u64 granularity;
- u64 minimum;
- u64 maximum;
- u64 translation_offset;
- u64 address_length;
- struct acpi_resource_source resource_source;
-};
-
-struct acpi_resource_extended_address64 {
- ACPI_RESOURCE_ADDRESS_COMMON u8 revision_iD;
- u64 granularity;
- u64 minimum;
- u64 maximum;
- u64 translation_offset;
- u64 address_length;
- u64 type_specific;
-};
-
-struct acpi_resource_extended_irq {
- u8 producer_consumer;
- u8 triggering;
- u8 polarity;
- u8 sharable;
- u8 interrupt_count;
- struct acpi_resource_source resource_source;
- u32 interrupts[1];
-};
-
-struct acpi_resource_generic_register {
- u8 space_id;
- u8 bit_width;
- u8 bit_offset;
- u8 access_size;
- u64 address;
-};
-
-struct acpi_resource_gpio {
- u8 revision_id;
- u8 connection_type;
- u8 producer_consumer; /* For values, see Producer/Consumer above */
- u8 pin_config;
- u8 sharable; /* For values, see Interrupt Attributes above */
- u8 io_restriction;
- u8 triggering; /* For values, see Interrupt Attributes above */
- u8 polarity; /* For values, see Interrupt Attributes above */
- u16 drive_strength;
- u16 debounce_timeout;
- u16 pin_table_length;
- u16 vendor_length;
- struct acpi_resource_source resource_source;
- u16 *pin_table;
- u8 *vendor_data;
-};
-
-/* Values for GPIO connection_type field above */
-
-#define ACPI_RESOURCE_GPIO_TYPE_INT 0
-#define ACPI_RESOURCE_GPIO_TYPE_IO 1
-
-/* Values for pin_config field above */
-
-#define ACPI_PIN_CONFIG_DEFAULT 0
-#define ACPI_PIN_CONFIG_PULLUP 1
-#define ACPI_PIN_CONFIG_PULLDOWN 2
-#define ACPI_PIN_CONFIG_NOPULL 3
-
-/* Values for io_restriction field above */
-
-#define ACPI_IO_RESTRICT_NONE 0
-#define ACPI_IO_RESTRICT_INPUT 1
-#define ACPI_IO_RESTRICT_OUTPUT 2
-#define ACPI_IO_RESTRICT_NONE_PRESERVE 3
-
-/* Common structure for I2C, SPI, and UART serial descriptors */
-
-#define ACPI_RESOURCE_SERIAL_COMMON \
- u8 revision_id; \
- u8 type; \
- u8 producer_consumer; /* For values, see Producer/Consumer above */\
- u8 slave_mode; \
- u8 type_revision_id; \
- u16 type_data_length; \
- u16 vendor_length; \
- struct acpi_resource_source resource_source; \
- u8 *vendor_data;
-
-struct acpi_resource_common_serialbus {
-ACPI_RESOURCE_SERIAL_COMMON};
-
-/* Values for the Type field above */
-
-#define ACPI_RESOURCE_SERIAL_TYPE_I2C 1
-#define ACPI_RESOURCE_SERIAL_TYPE_SPI 2
-#define ACPI_RESOURCE_SERIAL_TYPE_UART 3
-
-/* Values for slave_mode field above */
-
-#define ACPI_CONTROLLER_INITIATED 0
-#define ACPI_DEVICE_INITIATED 1
-
-struct acpi_resource_i2c_serialbus {
- ACPI_RESOURCE_SERIAL_COMMON u8 access_mode;
- u16 slave_address;
- u32 connection_speed;
-};
-
-/* Values for access_mode field above */
-
-#define ACPI_I2C_7BIT_MODE 0
-#define ACPI_I2C_10BIT_MODE 1
-
-struct acpi_resource_spi_serialbus {
- ACPI_RESOURCE_SERIAL_COMMON u8 wire_mode;
- u8 device_polarity;
- u8 data_bit_length;
- u8 clock_phase;
- u8 clock_polarity;
- u16 device_selection;
- u32 connection_speed;
-};
-
-/* Values for wire_mode field above */
-
-#define ACPI_SPI_4WIRE_MODE 0
-#define ACPI_SPI_3WIRE_MODE 1
-
-/* Values for device_polarity field above */
-
-#define ACPI_SPI_ACTIVE_LOW 0
-#define ACPI_SPI_ACTIVE_HIGH 1
-
-/* Values for clock_phase field above */
-
-#define ACPI_SPI_FIRST_PHASE 0
-#define ACPI_SPI_SECOND_PHASE 1
-
-/* Values for clock_polarity field above */
-
-#define ACPI_SPI_START_LOW 0
-#define ACPI_SPI_START_HIGH 1
-
-struct acpi_resource_uart_serialbus {
- ACPI_RESOURCE_SERIAL_COMMON u8 endian;
- u8 data_bits;
- u8 stop_bits;
- u8 flow_control;
- u8 parity;
- u8 lines_enabled;
- u16 rx_fifo_size;
- u16 tx_fifo_size;
- u32 default_baud_rate;
-};
-
-/* Values for Endian field above */
-
-#define ACPI_UART_LITTLE_ENDIAN 0
-#define ACPI_UART_BIG_ENDIAN 1
-
-/* Values for data_bits field above */
-
-#define ACPI_UART_5_DATA_BITS 0
-#define ACPI_UART_6_DATA_BITS 1
-#define ACPI_UART_7_DATA_BITS 2
-#define ACPI_UART_8_DATA_BITS 3
-#define ACPI_UART_9_DATA_BITS 4
-
-/* Values for stop_bits field above */
-
-#define ACPI_UART_NO_STOP_BITS 0
-#define ACPI_UART_1_STOP_BIT 1
-#define ACPI_UART_1P5_STOP_BITS 2
-#define ACPI_UART_2_STOP_BITS 3
-
-/* Values for flow_control field above */
-
-#define ACPI_UART_FLOW_CONTROL_NONE 0
-#define ACPI_UART_FLOW_CONTROL_HW 1
-#define ACPI_UART_FLOW_CONTROL_XON_XOFF 2
-
-/* Values for Parity field above */
-
-#define ACPI_UART_PARITY_NONE 0
-#define ACPI_UART_PARITY_EVEN 1
-#define ACPI_UART_PARITY_ODD 2
-#define ACPI_UART_PARITY_MARK 3
-#define ACPI_UART_PARITY_SPACE 4
-
-/* Values for lines_enabled bitfield above */
-
-#define ACPI_UART_CARRIER_DETECT (1<<2)
-#define ACPI_UART_RING_INDICATOR (1<<3)
-#define ACPI_UART_DATA_SET_READY (1<<4)
-#define ACPI_UART_DATA_TERMINAL_READY (1<<5)
-#define ACPI_UART_CLEAR_TO_SEND (1<<6)
-#define ACPI_UART_REQUEST_TO_SEND (1<<7)
-
-/* ACPI_RESOURCE_TYPEs */
-
-#define ACPI_RESOURCE_TYPE_IRQ 0
-#define ACPI_RESOURCE_TYPE_DMA 1
-#define ACPI_RESOURCE_TYPE_START_DEPENDENT 2
-#define ACPI_RESOURCE_TYPE_END_DEPENDENT 3
-#define ACPI_RESOURCE_TYPE_IO 4
-#define ACPI_RESOURCE_TYPE_FIXED_IO 5
-#define ACPI_RESOURCE_TYPE_VENDOR 6
-#define ACPI_RESOURCE_TYPE_END_TAG 7
-#define ACPI_RESOURCE_TYPE_MEMORY24 8
-#define ACPI_RESOURCE_TYPE_MEMORY32 9
-#define ACPI_RESOURCE_TYPE_FIXED_MEMORY32 10
-#define ACPI_RESOURCE_TYPE_ADDRESS16 11
-#define ACPI_RESOURCE_TYPE_ADDRESS32 12
-#define ACPI_RESOURCE_TYPE_ADDRESS64 13
-#define ACPI_RESOURCE_TYPE_EXTENDED_ADDRESS64 14 /* ACPI 3.0 */
-#define ACPI_RESOURCE_TYPE_EXTENDED_IRQ 15
-#define ACPI_RESOURCE_TYPE_GENERIC_REGISTER 16
-#define ACPI_RESOURCE_TYPE_GPIO 17 /* ACPI 5.0 */
-#define ACPI_RESOURCE_TYPE_FIXED_DMA 18 /* ACPI 5.0 */
-#define ACPI_RESOURCE_TYPE_SERIAL_BUS 19 /* ACPI 5.0 */
-#define ACPI_RESOURCE_TYPE_MAX 19
-
-/* Master union for resource descriptors */
-
-union acpi_resource_data {
- struct acpi_resource_irq irq;
- struct acpi_resource_dma dma;
- struct acpi_resource_start_dependent start_dpf;
- struct acpi_resource_io io;
- struct acpi_resource_fixed_io fixed_io;
- struct acpi_resource_fixed_dma fixed_dma;
- struct acpi_resource_vendor vendor;
- struct acpi_resource_vendor_typed vendor_typed;
- struct acpi_resource_end_tag end_tag;
- struct acpi_resource_memory24 memory24;
- struct acpi_resource_memory32 memory32;
- struct acpi_resource_fixed_memory32 fixed_memory32;
- struct acpi_resource_address16 address16;
- struct acpi_resource_address32 address32;
- struct acpi_resource_address64 address64;
- struct acpi_resource_extended_address64 ext_address64;
- struct acpi_resource_extended_irq extended_irq;
- struct acpi_resource_generic_register generic_reg;
- struct acpi_resource_gpio gpio;
- struct acpi_resource_i2c_serialbus i2c_serial_bus;
- struct acpi_resource_spi_serialbus spi_serial_bus;
- struct acpi_resource_uart_serialbus uart_serial_bus;
- struct acpi_resource_common_serialbus common_serial_bus;
-
- /* Common fields */
-
- struct acpi_resource_address address; /* Common 16/32/64 address fields */
-};
-
-/* Common resource header */
-
-struct acpi_resource {
- u32 type;
- u32 length;
- union acpi_resource_data data;
-};
-
-/* restore default alignment */
-
-#pragma pack()
-
-#define ACPI_RS_SIZE_NO_DATA 8 /* Id + Length fields */
-#define ACPI_RS_SIZE_MIN (u32) ACPI_ROUND_UP_TO_NATIVE_WORD (12)
-#define ACPI_RS_SIZE(type) (u32) (ACPI_RS_SIZE_NO_DATA + sizeof (type))
-
-#define ACPI_NEXT_RESOURCE(res) (struct acpi_resource *)((u8 *) res + res->length)
-
-struct acpi_pci_routing_table {
- u32 length;
- u32 pin;
- u64 address; /* here for 64-bit alignment */
- u32 source_index;
- char source[4]; /* pad to 64 bits so sizeof() works in all cases */
-};
-
-#endif /* __ACRESTYP_H__ */
diff --git a/ANDROID_3.4.5/include/acpi/actbl.h b/ANDROID_3.4.5/include/acpi/actbl.h
deleted file mode 100644
index 8dea5466..00000000
--- a/ANDROID_3.4.5/include/acpi/actbl.h
+++ /dev/null
@@ -1,380 +0,0 @@
-/******************************************************************************
- *
- * Name: actbl.h - Basic ACPI Table Definitions
- *
- *****************************************************************************/
-
-/*
- * Copyright (C) 2000 - 2011, Intel Corp.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions, and the following disclaimer,
- * without modification.
- * 2. Redistributions in binary form must reproduce at minimum a disclaimer
- * substantially similar to the "NO WARRANTY" disclaimer below
- * ("Disclaimer") and any redistribution must be conditioned upon
- * including a substantially similar Disclaimer requirement for further
- * binary redistribution.
- * 3. Neither the names of the above-listed copyright holders nor the names
- * of any contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") version 2 as published by the Free
- * Software Foundation.
- *
- * NO WARRANTY
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- */
-
-#ifndef __ACTBL_H__
-#define __ACTBL_H__
-
-/*******************************************************************************
- *
- * Fundamental ACPI tables
- *
- * This file contains definitions for the ACPI tables that are directly consumed
- * by ACPICA. All other tables are consumed by the OS-dependent ACPI-related
- * device drivers and other OS support code.
- *
- * The RSDP and FACS do not use the common ACPI table header. All other ACPI
- * tables use the header.
- *
- ******************************************************************************/
-
-/*
- * Values for description table header signatures for tables defined in this
- * file. Useful because they make it more difficult to inadvertently type in
- * the wrong signature.
- */
-#define ACPI_SIG_DSDT "DSDT" /* Differentiated System Description Table */
-#define ACPI_SIG_FADT "FACP" /* Fixed ACPI Description Table */
-#define ACPI_SIG_FACS "FACS" /* Firmware ACPI Control Structure */
-#define ACPI_SIG_PSDT "PSDT" /* Persistent System Description Table */
-#define ACPI_SIG_RSDP "RSD PTR " /* Root System Description Pointer */
-#define ACPI_SIG_RSDT "RSDT" /* Root System Description Table */
-#define ACPI_SIG_XSDT "XSDT" /* Extended System Description Table */
-#define ACPI_SIG_SSDT "SSDT" /* Secondary System Description Table */
-#define ACPI_RSDP_NAME "RSDP" /* Short name for RSDP, not signature */
-
-/*
- * All tables and structures must be byte-packed to match the ACPI
- * specification, since the tables are provided by the system BIOS
- */
-#pragma pack(1)
-
-/*
- * Note about bitfields: The u8 type is used for bitfields in ACPI tables.
- * This is the only type that is even remotely portable. Anything else is not
- * portable, so do not use any other bitfield types.
- */
-
-/*******************************************************************************
- *
- * Master ACPI Table Header. This common header is used by all ACPI tables
- * except the RSDP and FACS.
- *
- ******************************************************************************/
-
-struct acpi_table_header {
- char signature[ACPI_NAME_SIZE]; /* ASCII table signature */
- u32 length; /* Length of table in bytes, including this header */
- u8 revision; /* ACPI Specification minor version # */
- u8 checksum; /* To make sum of entire table == 0 */
- char oem_id[ACPI_OEM_ID_SIZE]; /* ASCII OEM identification */
- char oem_table_id[ACPI_OEM_TABLE_ID_SIZE]; /* ASCII OEM table identification */
- u32 oem_revision; /* OEM revision number */
- char asl_compiler_id[ACPI_NAME_SIZE]; /* ASCII ASL compiler vendor ID */
- u32 asl_compiler_revision; /* ASL compiler version */
-};
-
-/*******************************************************************************
- *
- * GAS - Generic Address Structure (ACPI 2.0+)
- *
- * Note: Since this structure is used in the ACPI tables, it is byte aligned.
- * If misaliged access is not supported by the hardware, accesses to the
- * 64-bit Address field must be performed with care.
- *
- ******************************************************************************/
-
-struct acpi_generic_address {
- u8 space_id; /* Address space where struct or register exists */
- u8 bit_width; /* Size in bits of given register */
- u8 bit_offset; /* Bit offset within the register */
- u8 access_width; /* Minimum Access size (ACPI 3.0) */
- u64 address; /* 64-bit address of struct or register */
-};
-
-/*******************************************************************************
- *
- * RSDP - Root System Description Pointer (Signature is "RSD PTR ")
- * Version 2
- *
- ******************************************************************************/
-
-struct acpi_table_rsdp {
- char signature[8]; /* ACPI signature, contains "RSD PTR " */
- u8 checksum; /* ACPI 1.0 checksum */
- char oem_id[ACPI_OEM_ID_SIZE]; /* OEM identification */
- u8 revision; /* Must be (0) for ACPI 1.0 or (2) for ACPI 2.0+ */
- u32 rsdt_physical_address; /* 32-bit physical address of the RSDT */
- u32 length; /* Table length in bytes, including header (ACPI 2.0+) */
- u64 xsdt_physical_address; /* 64-bit physical address of the XSDT (ACPI 2.0+) */
- u8 extended_checksum; /* Checksum of entire table (ACPI 2.0+) */
- u8 reserved[3]; /* Reserved, must be zero */
-};
-
-#define ACPI_RSDP_REV0_SIZE 20 /* Size of original ACPI 1.0 RSDP */
-
-/*******************************************************************************
- *
- * RSDT/XSDT - Root System Description Tables
- * Version 1 (both)
- *
- ******************************************************************************/
-
-struct acpi_table_rsdt {
- struct acpi_table_header header; /* Common ACPI table header */
- u32 table_offset_entry[1]; /* Array of pointers to ACPI tables */
-};
-
-struct acpi_table_xsdt {
- struct acpi_table_header header; /* Common ACPI table header */
- u64 table_offset_entry[1]; /* Array of pointers to ACPI tables */
-};
-
-/*******************************************************************************
- *
- * FACS - Firmware ACPI Control Structure (FACS)
- *
- ******************************************************************************/
-
-struct acpi_table_facs {
- char signature[4]; /* ASCII table signature */
- u32 length; /* Length of structure, in bytes */
- u32 hardware_signature; /* Hardware configuration signature */
- u32 firmware_waking_vector; /* 32-bit physical address of the Firmware Waking Vector */
- u32 global_lock; /* Global Lock for shared hardware resources */
- u32 flags;
- u64 xfirmware_waking_vector; /* 64-bit version of the Firmware Waking Vector (ACPI 2.0+) */
- u8 version; /* Version of this table (ACPI 2.0+) */
- u8 reserved[3]; /* Reserved, must be zero */
- u32 ospm_flags; /* Flags to be set by OSPM (ACPI 4.0) */
- u8 reserved1[24]; /* Reserved, must be zero */
-};
-
-/* Masks for global_lock flag field above */
-
-#define ACPI_GLOCK_PENDING (1) /* 00: Pending global lock ownership */
-#define ACPI_GLOCK_OWNED (1<<1) /* 01: Global lock is owned */
-
-/* Masks for Flags field above */
-
-#define ACPI_FACS_S4_BIOS_PRESENT (1) /* 00: S4BIOS support is present */
-#define ACPI_FACS_64BIT_WAKE (1<<1) /* 01: 64-bit wake vector supported (ACPI 4.0) */
-
-/* Masks for ospm_flags field above */
-
-#define ACPI_FACS_64BIT_ENVIRONMENT (1) /* 00: 64-bit wake environment is required (ACPI 4.0) */
-
-/*******************************************************************************
- *
- * FADT - Fixed ACPI Description Table (Signature "FACP")
- * Version 4
- *
- ******************************************************************************/
-
-/* Fields common to all versions of the FADT */
-
-struct acpi_table_fadt {
- struct acpi_table_header header; /* Common ACPI table header */
- u32 facs; /* 32-bit physical address of FACS */
- u32 dsdt; /* 32-bit physical address of DSDT */
- u8 model; /* System Interrupt Model (ACPI 1.0) - not used in ACPI 2.0+ */
- u8 preferred_profile; /* Conveys preferred power management profile to OSPM. */
- u16 sci_interrupt; /* System vector of SCI interrupt */
- u32 smi_command; /* 32-bit Port address of SMI command port */
- u8 acpi_enable; /* Value to write to smi_cmd to enable ACPI */
- u8 acpi_disable; /* Value to write to smi_cmd to disable ACPI */
- u8 S4bios_request; /* Value to write to SMI CMD to enter S4BIOS state */
- u8 pstate_control; /* Processor performance state control */
- u32 pm1a_event_block; /* 32-bit Port address of Power Mgt 1a Event Reg Blk */
- u32 pm1b_event_block; /* 32-bit Port address of Power Mgt 1b Event Reg Blk */
- u32 pm1a_control_block; /* 32-bit Port address of Power Mgt 1a Control Reg Blk */
- u32 pm1b_control_block; /* 32-bit Port address of Power Mgt 1b Control Reg Blk */
- u32 pm2_control_block; /* 32-bit Port address of Power Mgt 2 Control Reg Blk */
- u32 pm_timer_block; /* 32-bit Port address of Power Mgt Timer Ctrl Reg Blk */
- u32 gpe0_block; /* 32-bit Port address of General Purpose Event 0 Reg Blk */
- u32 gpe1_block; /* 32-bit Port address of General Purpose Event 1 Reg Blk */
- u8 pm1_event_length; /* Byte Length of ports at pm1x_event_block */
- u8 pm1_control_length; /* Byte Length of ports at pm1x_control_block */
- u8 pm2_control_length; /* Byte Length of ports at pm2_control_block */
- u8 pm_timer_length; /* Byte Length of ports at pm_timer_block */
- u8 gpe0_block_length; /* Byte Length of ports at gpe0_block */
- u8 gpe1_block_length; /* Byte Length of ports at gpe1_block */
- u8 gpe1_base; /* Offset in GPE number space where GPE1 events start */
- u8 cst_control; /* Support for the _CST object and C States change notification */
- u16 C2latency; /* Worst case HW latency to enter/exit C2 state */
- u16 C3latency; /* Worst case HW latency to enter/exit C3 state */
- u16 flush_size; /* Processor's memory cache line width, in bytes */
- u16 flush_stride; /* Number of flush strides that need to be read */
- u8 duty_offset; /* Processor duty cycle index in processor's P_CNT reg */
- u8 duty_width; /* Processor duty cycle value bit width in P_CNT register */
- u8 day_alarm; /* Index to day-of-month alarm in RTC CMOS RAM */
- u8 month_alarm; /* Index to month-of-year alarm in RTC CMOS RAM */
- u8 century; /* Index to century in RTC CMOS RAM */
- u16 boot_flags; /* IA-PC Boot Architecture Flags (see below for individual flags) */
- u8 reserved; /* Reserved, must be zero */
- u32 flags; /* Miscellaneous flag bits (see below for individual flags) */
- struct acpi_generic_address reset_register; /* 64-bit address of the Reset register */
- u8 reset_value; /* Value to write to the reset_register port to reset the system */
- u8 reserved4[3]; /* Reserved, must be zero */
- u64 Xfacs; /* 64-bit physical address of FACS */
- u64 Xdsdt; /* 64-bit physical address of DSDT */
- struct acpi_generic_address xpm1a_event_block; /* 64-bit Extended Power Mgt 1a Event Reg Blk address */
- struct acpi_generic_address xpm1b_event_block; /* 64-bit Extended Power Mgt 1b Event Reg Blk address */
- struct acpi_generic_address xpm1a_control_block; /* 64-bit Extended Power Mgt 1a Control Reg Blk address */
- struct acpi_generic_address xpm1b_control_block; /* 64-bit Extended Power Mgt 1b Control Reg Blk address */
- struct acpi_generic_address xpm2_control_block; /* 64-bit Extended Power Mgt 2 Control Reg Blk address */
- struct acpi_generic_address xpm_timer_block; /* 64-bit Extended Power Mgt Timer Ctrl Reg Blk address */
- struct acpi_generic_address xgpe0_block; /* 64-bit Extended General Purpose Event 0 Reg Blk address */
- struct acpi_generic_address xgpe1_block; /* 64-bit Extended General Purpose Event 1 Reg Blk address */
- struct acpi_generic_address sleep_control; /* 64-bit Sleep Control register */
- struct acpi_generic_address sleep_status; /* 64-bit Sleep Status register */
-};
-
-/* Masks for FADT Boot Architecture Flags (boot_flags) */
-
-#define ACPI_FADT_LEGACY_DEVICES (1) /* 00: [V2] System has LPC or ISA bus devices */
-#define ACPI_FADT_8042 (1<<1) /* 01: [V3] System has an 8042 controller on port 60/64 */
-#define ACPI_FADT_NO_VGA (1<<2) /* 02: [V4] It is not safe to probe for VGA hardware */
-#define ACPI_FADT_NO_MSI (1<<3) /* 03: [V4] Message Signaled Interrupts (MSI) must not be enabled */
-#define ACPI_FADT_NO_ASPM (1<<4) /* 04: [V4] PCIe ASPM control must not be enabled */
-#define ACPI_FADT_NO_CMOS_RTC (1<<5) /* 05: [V5] No CMOS real-time clock present */
-
-#define FADT2_REVISION_ID 3
-
-/* Masks for FADT flags */
-
-#define ACPI_FADT_WBINVD (1) /* 00: [V1] The wbinvd instruction works properly */
-#define ACPI_FADT_WBINVD_FLUSH (1<<1) /* 01: [V1] wbinvd flushes but does not invalidate caches */
-#define ACPI_FADT_C1_SUPPORTED (1<<2) /* 02: [V1] All processors support C1 state */
-#define ACPI_FADT_C2_MP_SUPPORTED (1<<3) /* 03: [V1] C2 state works on MP system */
-#define ACPI_FADT_POWER_BUTTON (1<<4) /* 04: [V1] Power button is handled as a control method device */
-#define ACPI_FADT_SLEEP_BUTTON (1<<5) /* 05: [V1] Sleep button is handled as a control method device */
-#define ACPI_FADT_FIXED_RTC (1<<6) /* 06: [V1] RTC wakeup status not in fixed register space */
-#define ACPI_FADT_S4_RTC_WAKE (1<<7) /* 07: [V1] RTC alarm can wake system from S4 */
-#define ACPI_FADT_32BIT_TIMER (1<<8) /* 08: [V1] ACPI timer width is 32-bit (0=24-bit) */
-#define ACPI_FADT_DOCKING_SUPPORTED (1<<9) /* 09: [V1] Docking supported */
-#define ACPI_FADT_RESET_REGISTER (1<<10) /* 10: [V2] System reset via the FADT RESET_REG supported */
-#define ACPI_FADT_SEALED_CASE (1<<11) /* 11: [V3] No internal expansion capabilities and case is sealed */
-#define ACPI_FADT_HEADLESS (1<<12) /* 12: [V3] No local video capabilities or local input devices */
-#define ACPI_FADT_SLEEP_TYPE (1<<13) /* 13: [V3] Must execute native instruction after writing SLP_TYPx register */
-#define ACPI_FADT_PCI_EXPRESS_WAKE (1<<14) /* 14: [V4] System supports PCIEXP_WAKE (STS/EN) bits (ACPI 3.0) */
-#define ACPI_FADT_PLATFORM_CLOCK (1<<15) /* 15: [V4] OSPM should use platform-provided timer (ACPI 3.0) */
-#define ACPI_FADT_S4_RTC_VALID (1<<16) /* 16: [V4] Contents of RTC_STS valid after S4 wake (ACPI 3.0) */
-#define ACPI_FADT_REMOTE_POWER_ON (1<<17) /* 17: [V4] System is compatible with remote power on (ACPI 3.0) */
-#define ACPI_FADT_APIC_CLUSTER (1<<18) /* 18: [V4] All local APICs must use cluster model (ACPI 3.0) */
-#define ACPI_FADT_APIC_PHYSICAL (1<<19) /* 19: [V4] All local x_aPICs must use physical dest mode (ACPI 3.0) */
-#define ACPI_FADT_HW_REDUCED (1<<20) /* 20: [V5] ACPI hardware is not implemented (ACPI 5.0) */
-#define ACPI_FADT_LOW_POWER_S0 (1<<21) /* 21: [V5] S0 power savings are equal or better than S3 (ACPI 5.0) */
-
-/* Values for preferred_profile (Preferred Power Management Profiles) */
-
-enum acpi_prefered_pm_profiles {
- PM_UNSPECIFIED = 0,
- PM_DESKTOP = 1,
- PM_MOBILE = 2,
- PM_WORKSTATION = 3,
- PM_ENTERPRISE_SERVER = 4,
- PM_SOHO_SERVER = 5,
- PM_APPLIANCE_PC = 6,
- PM_PERFORMANCE_SERVER = 7,
- PM_TABLET = 8
-};
-
-/* Values for sleep_status and sleep_control registers (V5 FADT) */
-
-#define ACPI_X_WAKE_STATUS 0x80
-#define ACPI_X_SLEEP_TYPE_MASK 0x1C
-#define ACPI_X_SLEEP_TYPE_POSITION 0x02
-#define ACPI_X_SLEEP_ENABLE 0x20
-
-/* Reset to default packing */
-
-#pragma pack()
-
-#define ACPI_FADT_OFFSET(f) (u16) ACPI_OFFSET (struct acpi_table_fadt, f)
-
-/*
- * Internal table-related structures
- */
-union acpi_name_union {
- u32 integer;
- char ascii[4];
-};
-
-/* Internal ACPI Table Descriptor. One per ACPI table. */
-
-struct acpi_table_desc {
- acpi_physical_address address;
- struct acpi_table_header *pointer;
- u32 length; /* Length fixed at 32 bits */
- union acpi_name_union signature;
- acpi_owner_id owner_id;
- u8 flags;
-};
-
-/* Masks for Flags field above */
-
-#define ACPI_TABLE_ORIGIN_UNKNOWN (0)
-#define ACPI_TABLE_ORIGIN_MAPPED (1)
-#define ACPI_TABLE_ORIGIN_ALLOCATED (2)
-#define ACPI_TABLE_ORIGIN_OVERRIDE (4)
-#define ACPI_TABLE_ORIGIN_MASK (7)
-#define ACPI_TABLE_IS_LOADED (8)
-
-/*
- * Get the remaining ACPI tables
- */
-
-#include <acpi/actbl1.h>
-#include <acpi/actbl2.h>
-#include <acpi/actbl3.h>
-
-/*
- * Sizes of the various flavors of FADT. We need to look closely
- * at the FADT length because the version number essentially tells
- * us nothing because of many BIOS bugs where the version does not
- * match the expected length. In other words, the length of the
- * FADT is the bottom line as to what the version really is.
- *
- * For reference, the values below are as follows:
- * FADT V1 size: 0x074
- * FADT V2 size: 0x084
- * FADT V3 size: 0x0F4
- * FADT V4 size: 0x0F4
- * FADT V5 size: 0x10C
- */
-#define ACPI_FADT_V1_SIZE (u32) (ACPI_FADT_OFFSET (flags) + 4)
-#define ACPI_FADT_V2_SIZE (u32) (ACPI_FADT_OFFSET (reserved4[0]) + 3)
-#define ACPI_FADT_V3_SIZE (u32) (ACPI_FADT_OFFSET (sleep_control))
-#define ACPI_FADT_V5_SIZE (u32) (sizeof (struct acpi_table_fadt))
-
-#endif /* __ACTBL_H__ */
diff --git a/ANDROID_3.4.5/include/acpi/actbl1.h b/ANDROID_3.4.5/include/acpi/actbl1.h
deleted file mode 100644
index 71e747be..00000000
--- a/ANDROID_3.4.5/include/acpi/actbl1.h
+++ /dev/null
@@ -1,963 +0,0 @@
-/******************************************************************************
- *
- * Name: actbl1.h - Additional ACPI table definitions
- *
- *****************************************************************************/
-
-/*
- * Copyright (C) 2000 - 2011, Intel Corp.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions, and the following disclaimer,
- * without modification.
- * 2. Redistributions in binary form must reproduce at minimum a disclaimer
- * substantially similar to the "NO WARRANTY" disclaimer below
- * ("Disclaimer") and any redistribution must be conditioned upon
- * including a substantially similar Disclaimer requirement for further
- * binary redistribution.
- * 3. Neither the names of the above-listed copyright holders nor the names
- * of any contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") version 2 as published by the Free
- * Software Foundation.
- *
- * NO WARRANTY
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- */
-
-#ifndef __ACTBL1_H__
-#define __ACTBL1_H__
-
-/*******************************************************************************
- *
- * Additional ACPI Tables (1)
- *
- * These tables are not consumed directly by the ACPICA subsystem, but are
- * included here to support device drivers and the AML disassembler.
- *
- * The tables in this file are fully defined within the ACPI specification.
- *
- ******************************************************************************/
-
-/*
- * Values for description table header signatures for tables defined in this
- * file. Useful because they make it more difficult to inadvertently type in
- * the wrong signature.
- */
-#define ACPI_SIG_BERT "BERT" /* Boot Error Record Table */
-#define ACPI_SIG_CPEP "CPEP" /* Corrected Platform Error Polling table */
-#define ACPI_SIG_ECDT "ECDT" /* Embedded Controller Boot Resources Table */
-#define ACPI_SIG_EINJ "EINJ" /* Error Injection table */
-#define ACPI_SIG_ERST "ERST" /* Error Record Serialization Table */
-#define ACPI_SIG_HEST "HEST" /* Hardware Error Source Table */
-#define ACPI_SIG_MADT "APIC" /* Multiple APIC Description Table */
-#define ACPI_SIG_MSCT "MSCT" /* Maximum System Characteristics Table */
-#define ACPI_SIG_SBST "SBST" /* Smart Battery Specification Table */
-#define ACPI_SIG_SLIT "SLIT" /* System Locality Distance Information Table */
-#define ACPI_SIG_SRAT "SRAT" /* System Resource Affinity Table */
-
-/*
- * All tables must be byte-packed to match the ACPI specification, since
- * the tables are provided by the system BIOS.
- */
-#pragma pack(1)
-
-/*
- * Note about bitfields: The u8 type is used for bitfields in ACPI tables.
- * This is the only type that is even remotely portable. Anything else is not
- * portable, so do not use any other bitfield types.
- */
-
-/*******************************************************************************
- *
- * Common subtable headers
- *
- ******************************************************************************/
-
-/* Generic subtable header (used in MADT, SRAT, etc.) */
-
-struct acpi_subtable_header {
- u8 type;
- u8 length;
-};
-
-/* Subtable header for WHEA tables (EINJ, ERST, WDAT) */
-
-struct acpi_whea_header {
- u8 action;
- u8 instruction;
- u8 flags;
- u8 reserved;
- struct acpi_generic_address register_region;
- u64 value; /* Value used with Read/Write register */
- u64 mask; /* Bitmask required for this register instruction */
-};
-
-/*******************************************************************************
- *
- * BERT - Boot Error Record Table (ACPI 4.0)
- * Version 1
- *
- ******************************************************************************/
-
-struct acpi_table_bert {
- struct acpi_table_header header; /* Common ACPI table header */
- u32 region_length; /* Length of the boot error region */
- u64 address; /* Physical address of the error region */
-};
-
-/* Boot Error Region (not a subtable, pointed to by Address field above) */
-
-struct acpi_bert_region {
- u32 block_status; /* Type of error information */
- u32 raw_data_offset; /* Offset to raw error data */
- u32 raw_data_length; /* Length of raw error data */
- u32 data_length; /* Length of generic error data */
- u32 error_severity; /* Severity code */
-};
-
-/* Values for block_status flags above */
-
-#define ACPI_BERT_UNCORRECTABLE (1)
-#define ACPI_BERT_CORRECTABLE (1<<1)
-#define ACPI_BERT_MULTIPLE_UNCORRECTABLE (1<<2)
-#define ACPI_BERT_MULTIPLE_CORRECTABLE (1<<3)
-#define ACPI_BERT_ERROR_ENTRY_COUNT (0xFF<<4) /* 8 bits, error count */
-
-/* Values for error_severity above */
-
-enum acpi_bert_error_severity {
- ACPI_BERT_ERROR_CORRECTABLE = 0,
- ACPI_BERT_ERROR_FATAL = 1,
- ACPI_BERT_ERROR_CORRECTED = 2,
- ACPI_BERT_ERROR_NONE = 3,
- ACPI_BERT_ERROR_RESERVED = 4 /* 4 and greater are reserved */
-};
-
-/*
- * Note: The generic error data that follows the error_severity field above
- * uses the struct acpi_hest_generic_data defined under the HEST table below
- */
-
-/*******************************************************************************
- *
- * CPEP - Corrected Platform Error Polling table (ACPI 4.0)
- * Version 1
- *
- ******************************************************************************/
-
-struct acpi_table_cpep {
- struct acpi_table_header header; /* Common ACPI table header */
- u64 reserved;
-};
-
-/* Subtable */
-
-struct acpi_cpep_polling {
- struct acpi_subtable_header header;
- u8 id; /* Processor ID */
- u8 eid; /* Processor EID */
- u32 interval; /* Polling interval (msec) */
-};
-
-/*******************************************************************************
- *
- * ECDT - Embedded Controller Boot Resources Table
- * Version 1
- *
- ******************************************************************************/
-
-struct acpi_table_ecdt {
- struct acpi_table_header header; /* Common ACPI table header */
- struct acpi_generic_address control; /* Address of EC command/status register */
- struct acpi_generic_address data; /* Address of EC data register */
- u32 uid; /* Unique ID - must be same as the EC _UID method */
- u8 gpe; /* The GPE for the EC */
- u8 id[1]; /* Full namepath of the EC in the ACPI namespace */
-};
-
-/*******************************************************************************
- *
- * EINJ - Error Injection Table (ACPI 4.0)
- * Version 1
- *
- ******************************************************************************/
-
-struct acpi_table_einj {
- struct acpi_table_header header; /* Common ACPI table header */
- u32 header_length;
- u8 flags;
- u8 reserved[3];
- u32 entries;
-};
-
-/* EINJ Injection Instruction Entries (actions) */
-
-struct acpi_einj_entry {
- struct acpi_whea_header whea_header; /* Common header for WHEA tables */
-};
-
-/* Masks for Flags field above */
-
-#define ACPI_EINJ_PRESERVE (1)
-
-/* Values for Action field above */
-
-enum acpi_einj_actions {
- ACPI_EINJ_BEGIN_OPERATION = 0,
- ACPI_EINJ_GET_TRIGGER_TABLE = 1,
- ACPI_EINJ_SET_ERROR_TYPE = 2,
- ACPI_EINJ_GET_ERROR_TYPE = 3,
- ACPI_EINJ_END_OPERATION = 4,
- ACPI_EINJ_EXECUTE_OPERATION = 5,
- ACPI_EINJ_CHECK_BUSY_STATUS = 6,
- ACPI_EINJ_GET_COMMAND_STATUS = 7,
- ACPI_EINJ_SET_ERROR_TYPE_WITH_ADDRESS = 8,
- ACPI_EINJ_ACTION_RESERVED = 9, /* 9 and greater are reserved */
- ACPI_EINJ_TRIGGER_ERROR = 0xFF /* Except for this value */
-};
-
-/* Values for Instruction field above */
-
-enum acpi_einj_instructions {
- ACPI_EINJ_READ_REGISTER = 0,
- ACPI_EINJ_READ_REGISTER_VALUE = 1,
- ACPI_EINJ_WRITE_REGISTER = 2,
- ACPI_EINJ_WRITE_REGISTER_VALUE = 3,
- ACPI_EINJ_NOOP = 4,
- ACPI_EINJ_FLUSH_CACHELINE = 5,
- ACPI_EINJ_INSTRUCTION_RESERVED = 6 /* 6 and greater are reserved */
-};
-
-struct acpi_einj_error_type_with_addr {
- u32 error_type;
- u32 vendor_struct_offset;
- u32 flags;
- u32 apic_id;
- u64 address;
- u64 range;
- u32 pcie_id;
-};
-
-struct acpi_einj_vendor {
- u32 length;
- u32 pcie_id;
- u16 vendor_id;
- u16 device_id;
- u8 revision_id;
- u8 reserved[3];
-};
-
-/* EINJ Trigger Error Action Table */
-
-struct acpi_einj_trigger {
- u32 header_size;
- u32 revision;
- u32 table_size;
- u32 entry_count;
-};
-
-/* Command status return values */
-
-enum acpi_einj_command_status {
- ACPI_EINJ_SUCCESS = 0,
- ACPI_EINJ_FAILURE = 1,
- ACPI_EINJ_INVALID_ACCESS = 2,
- ACPI_EINJ_STATUS_RESERVED = 3 /* 3 and greater are reserved */
-};
-
-/* Error types returned from ACPI_EINJ_GET_ERROR_TYPE (bitfield) */
-
-#define ACPI_EINJ_PROCESSOR_CORRECTABLE (1)
-#define ACPI_EINJ_PROCESSOR_UNCORRECTABLE (1<<1)
-#define ACPI_EINJ_PROCESSOR_FATAL (1<<2)
-#define ACPI_EINJ_MEMORY_CORRECTABLE (1<<3)
-#define ACPI_EINJ_MEMORY_UNCORRECTABLE (1<<4)
-#define ACPI_EINJ_MEMORY_FATAL (1<<5)
-#define ACPI_EINJ_PCIX_CORRECTABLE (1<<6)
-#define ACPI_EINJ_PCIX_UNCORRECTABLE (1<<7)
-#define ACPI_EINJ_PCIX_FATAL (1<<8)
-#define ACPI_EINJ_PLATFORM_CORRECTABLE (1<<9)
-#define ACPI_EINJ_PLATFORM_UNCORRECTABLE (1<<10)
-#define ACPI_EINJ_PLATFORM_FATAL (1<<11)
-#define ACPI_EINJ_VENDOR_DEFINED (1<<31)
-
-/*******************************************************************************
- *
- * ERST - Error Record Serialization Table (ACPI 4.0)
- * Version 1
- *
- ******************************************************************************/
-
-struct acpi_table_erst {
- struct acpi_table_header header; /* Common ACPI table header */
- u32 header_length;
- u32 reserved;
- u32 entries;
-};
-
-/* ERST Serialization Entries (actions) */
-
-struct acpi_erst_entry {
- struct acpi_whea_header whea_header; /* Common header for WHEA tables */
-};
-
-/* Masks for Flags field above */
-
-#define ACPI_ERST_PRESERVE (1)
-
-/* Values for Action field above */
-
-enum acpi_erst_actions {
- ACPI_ERST_BEGIN_WRITE = 0,
- ACPI_ERST_BEGIN_READ = 1,
- ACPI_ERST_BEGIN_CLEAR = 2,
- ACPI_ERST_END = 3,
- ACPI_ERST_SET_RECORD_OFFSET = 4,
- ACPI_ERST_EXECUTE_OPERATION = 5,
- ACPI_ERST_CHECK_BUSY_STATUS = 6,
- ACPI_ERST_GET_COMMAND_STATUS = 7,
- ACPI_ERST_GET_RECORD_ID = 8,
- ACPI_ERST_SET_RECORD_ID = 9,
- ACPI_ERST_GET_RECORD_COUNT = 10,
- ACPI_ERST_BEGIN_DUMMY_WRIITE = 11,
- ACPI_ERST_NOT_USED = 12,
- ACPI_ERST_GET_ERROR_RANGE = 13,
- ACPI_ERST_GET_ERROR_LENGTH = 14,
- ACPI_ERST_GET_ERROR_ATTRIBUTES = 15,
- ACPI_ERST_ACTION_RESERVED = 16 /* 16 and greater are reserved */
-};
-
-/* Values for Instruction field above */
-
-enum acpi_erst_instructions {
- ACPI_ERST_READ_REGISTER = 0,
- ACPI_ERST_READ_REGISTER_VALUE = 1,
- ACPI_ERST_WRITE_REGISTER = 2,
- ACPI_ERST_WRITE_REGISTER_VALUE = 3,
- ACPI_ERST_NOOP = 4,
- ACPI_ERST_LOAD_VAR1 = 5,
- ACPI_ERST_LOAD_VAR2 = 6,
- ACPI_ERST_STORE_VAR1 = 7,
- ACPI_ERST_ADD = 8,
- ACPI_ERST_SUBTRACT = 9,
- ACPI_ERST_ADD_VALUE = 10,
- ACPI_ERST_SUBTRACT_VALUE = 11,
- ACPI_ERST_STALL = 12,
- ACPI_ERST_STALL_WHILE_TRUE = 13,
- ACPI_ERST_SKIP_NEXT_IF_TRUE = 14,
- ACPI_ERST_GOTO = 15,
- ACPI_ERST_SET_SRC_ADDRESS_BASE = 16,
- ACPI_ERST_SET_DST_ADDRESS_BASE = 17,
- ACPI_ERST_MOVE_DATA = 18,
- ACPI_ERST_INSTRUCTION_RESERVED = 19 /* 19 and greater are reserved */
-};
-
-/* Command status return values */
-
-enum acpi_erst_command_status {
- ACPI_ERST_SUCESS = 0,
- ACPI_ERST_NO_SPACE = 1,
- ACPI_ERST_NOT_AVAILABLE = 2,
- ACPI_ERST_FAILURE = 3,
- ACPI_ERST_RECORD_EMPTY = 4,
- ACPI_ERST_NOT_FOUND = 5,
- ACPI_ERST_STATUS_RESERVED = 6 /* 6 and greater are reserved */
-};
-
-/* Error Record Serialization Information */
-
-struct acpi_erst_info {
- u16 signature; /* Should be "ER" */
- u8 data[48];
-};
-
-/*******************************************************************************
- *
- * HEST - Hardware Error Source Table (ACPI 4.0)
- * Version 1
- *
- ******************************************************************************/
-
-struct acpi_table_hest {
- struct acpi_table_header header; /* Common ACPI table header */
- u32 error_source_count;
-};
-
-/* HEST subtable header */
-
-struct acpi_hest_header {
- u16 type;
- u16 source_id;
-};
-
-/* Values for Type field above for subtables */
-
-enum acpi_hest_types {
- ACPI_HEST_TYPE_IA32_CHECK = 0,
- ACPI_HEST_TYPE_IA32_CORRECTED_CHECK = 1,
- ACPI_HEST_TYPE_IA32_NMI = 2,
- ACPI_HEST_TYPE_NOT_USED3 = 3,
- ACPI_HEST_TYPE_NOT_USED4 = 4,
- ACPI_HEST_TYPE_NOT_USED5 = 5,
- ACPI_HEST_TYPE_AER_ROOT_PORT = 6,
- ACPI_HEST_TYPE_AER_ENDPOINT = 7,
- ACPI_HEST_TYPE_AER_BRIDGE = 8,
- ACPI_HEST_TYPE_GENERIC_ERROR = 9,
- ACPI_HEST_TYPE_RESERVED = 10 /* 10 and greater are reserved */
-};
-
-/*
- * HEST substructures contained in subtables
- */
-
-/*
- * IA32 Error Bank(s) - Follows the struct acpi_hest_ia_machine_check and
- * struct acpi_hest_ia_corrected structures.
- */
-struct acpi_hest_ia_error_bank {
- u8 bank_number;
- u8 clear_status_on_init;
- u8 status_format;
- u8 reserved;
- u32 control_register;
- u64 control_data;
- u32 status_register;
- u32 address_register;
- u32 misc_register;
-};
-
-/* Common HEST sub-structure for PCI/AER structures below (6,7,8) */
-
-struct acpi_hest_aer_common {
- u16 reserved1;
- u8 flags;
- u8 enabled;
- u32 records_to_preallocate;
- u32 max_sections_per_record;
- u32 bus;
- u16 device;
- u16 function;
- u16 device_control;
- u16 reserved2;
- u32 uncorrectable_mask;
- u32 uncorrectable_severity;
- u32 correctable_mask;
- u32 advanced_capabilities;
-};
-
-/* Masks for HEST Flags fields */
-
-#define ACPI_HEST_FIRMWARE_FIRST (1)
-#define ACPI_HEST_GLOBAL (1<<1)
-
-/* Hardware Error Notification */
-
-struct acpi_hest_notify {
- u8 type;
- u8 length;
- u16 config_write_enable;
- u32 poll_interval;
- u32 vector;
- u32 polling_threshold_value;
- u32 polling_threshold_window;
- u32 error_threshold_value;
- u32 error_threshold_window;
-};
-
-/* Values for Notify Type field above */
-
-enum acpi_hest_notify_types {
- ACPI_HEST_NOTIFY_POLLED = 0,
- ACPI_HEST_NOTIFY_EXTERNAL = 1,
- ACPI_HEST_NOTIFY_LOCAL = 2,
- ACPI_HEST_NOTIFY_SCI = 3,
- ACPI_HEST_NOTIFY_NMI = 4,
- ACPI_HEST_NOTIFY_RESERVED = 5 /* 5 and greater are reserved */
-};
-
-/* Values for config_write_enable bitfield above */
-
-#define ACPI_HEST_TYPE (1)
-#define ACPI_HEST_POLL_INTERVAL (1<<1)
-#define ACPI_HEST_POLL_THRESHOLD_VALUE (1<<2)
-#define ACPI_HEST_POLL_THRESHOLD_WINDOW (1<<3)
-#define ACPI_HEST_ERR_THRESHOLD_VALUE (1<<4)
-#define ACPI_HEST_ERR_THRESHOLD_WINDOW (1<<5)
-
-/*
- * HEST subtables
- */
-
-/* 0: IA32 Machine Check Exception */
-
-struct acpi_hest_ia_machine_check {
- struct acpi_hest_header header;
- u16 reserved1;
- u8 flags;
- u8 enabled;
- u32 records_to_preallocate;
- u32 max_sections_per_record;
- u64 global_capability_data;
- u64 global_control_data;
- u8 num_hardware_banks;
- u8 reserved3[7];
-};
-
-/* 1: IA32 Corrected Machine Check */
-
-struct acpi_hest_ia_corrected {
- struct acpi_hest_header header;
- u16 reserved1;
- u8 flags;
- u8 enabled;
- u32 records_to_preallocate;
- u32 max_sections_per_record;
- struct acpi_hest_notify notify;
- u8 num_hardware_banks;
- u8 reserved2[3];
-};
-
-/* 2: IA32 Non-Maskable Interrupt */
-
-struct acpi_hest_ia_nmi {
- struct acpi_hest_header header;
- u32 reserved;
- u32 records_to_preallocate;
- u32 max_sections_per_record;
- u32 max_raw_data_length;
-};
-
-/* 3,4,5: Not used */
-
-/* 6: PCI Express Root Port AER */
-
-struct acpi_hest_aer_root {
- struct acpi_hest_header header;
- struct acpi_hest_aer_common aer;
- u32 root_error_command;
-};
-
-/* 7: PCI Express AER (AER Endpoint) */
-
-struct acpi_hest_aer {
- struct acpi_hest_header header;
- struct acpi_hest_aer_common aer;
-};
-
-/* 8: PCI Express/PCI-X Bridge AER */
-
-struct acpi_hest_aer_bridge {
- struct acpi_hest_header header;
- struct acpi_hest_aer_common aer;
- u32 uncorrectable_mask2;
- u32 uncorrectable_severity2;
- u32 advanced_capabilities2;
-};
-
-/* 9: Generic Hardware Error Source */
-
-struct acpi_hest_generic {
- struct acpi_hest_header header;
- u16 related_source_id;
- u8 reserved;
- u8 enabled;
- u32 records_to_preallocate;
- u32 max_sections_per_record;
- u32 max_raw_data_length;
- struct acpi_generic_address error_status_address;
- struct acpi_hest_notify notify;
- u32 error_block_length;
-};
-
-/* Generic Error Status block */
-
-struct acpi_hest_generic_status {
- u32 block_status;
- u32 raw_data_offset;
- u32 raw_data_length;
- u32 data_length;
- u32 error_severity;
-};
-
-/* Values for block_status flags above */
-
-#define ACPI_HEST_UNCORRECTABLE (1)
-#define ACPI_HEST_CORRECTABLE (1<<1)
-#define ACPI_HEST_MULTIPLE_UNCORRECTABLE (1<<2)
-#define ACPI_HEST_MULTIPLE_CORRECTABLE (1<<3)
-#define ACPI_HEST_ERROR_ENTRY_COUNT (0xFF<<4) /* 8 bits, error count */
-
-/* Generic Error Data entry */
-
-struct acpi_hest_generic_data {
- u8 section_type[16];
- u32 error_severity;
- u16 revision;
- u8 validation_bits;
- u8 flags;
- u32 error_data_length;
- u8 fru_id[16];
- u8 fru_text[20];
-};
-
-/*******************************************************************************
- *
- * MADT - Multiple APIC Description Table
- * Version 3
- *
- ******************************************************************************/
-
-struct acpi_table_madt {
- struct acpi_table_header header; /* Common ACPI table header */
- u32 address; /* Physical address of local APIC */
- u32 flags;
-};
-
-/* Masks for Flags field above */
-
-#define ACPI_MADT_PCAT_COMPAT (1) /* 00: System also has dual 8259s */
-
-/* Values for PCATCompat flag */
-
-#define ACPI_MADT_DUAL_PIC 0
-#define ACPI_MADT_MULTIPLE_APIC 1
-
-/* Values for MADT subtable type in struct acpi_subtable_header */
-
-enum acpi_madt_type {
- ACPI_MADT_TYPE_LOCAL_APIC = 0,
- ACPI_MADT_TYPE_IO_APIC = 1,
- ACPI_MADT_TYPE_INTERRUPT_OVERRIDE = 2,
- ACPI_MADT_TYPE_NMI_SOURCE = 3,
- ACPI_MADT_TYPE_LOCAL_APIC_NMI = 4,
- ACPI_MADT_TYPE_LOCAL_APIC_OVERRIDE = 5,
- ACPI_MADT_TYPE_IO_SAPIC = 6,
- ACPI_MADT_TYPE_LOCAL_SAPIC = 7,
- ACPI_MADT_TYPE_INTERRUPT_SOURCE = 8,
- ACPI_MADT_TYPE_LOCAL_X2APIC = 9,
- ACPI_MADT_TYPE_LOCAL_X2APIC_NMI = 10,
- ACPI_MADT_TYPE_GENERIC_INTERRUPT = 11,
- ACPI_MADT_TYPE_GENERIC_DISTRIBUTOR = 12,
- ACPI_MADT_TYPE_RESERVED = 13 /* 13 and greater are reserved */
-};
-
-/*
- * MADT Sub-tables, correspond to Type in struct acpi_subtable_header
- */
-
-/* 0: Processor Local APIC */
-
-struct acpi_madt_local_apic {
- struct acpi_subtable_header header;
- u8 processor_id; /* ACPI processor id */
- u8 id; /* Processor's local APIC id */
- u32 lapic_flags;
-};
-
-/* 1: IO APIC */
-
-struct acpi_madt_io_apic {
- struct acpi_subtable_header header;
- u8 id; /* I/O APIC ID */
- u8 reserved; /* Reserved - must be zero */
- u32 address; /* APIC physical address */
- u32 global_irq_base; /* Global system interrupt where INTI lines start */
-};
-
-/* 2: Interrupt Override */
-
-struct acpi_madt_interrupt_override {
- struct acpi_subtable_header header;
- u8 bus; /* 0 - ISA */
- u8 source_irq; /* Interrupt source (IRQ) */
- u32 global_irq; /* Global system interrupt */
- u16 inti_flags;
-};
-
-/* 3: NMI Source */
-
-struct acpi_madt_nmi_source {
- struct acpi_subtable_header header;
- u16 inti_flags;
- u32 global_irq; /* Global system interrupt */
-};
-
-/* 4: Local APIC NMI */
-
-struct acpi_madt_local_apic_nmi {
- struct acpi_subtable_header header;
- u8 processor_id; /* ACPI processor id */
- u16 inti_flags;
- u8 lint; /* LINTn to which NMI is connected */
-};
-
-/* 5: Address Override */
-
-struct acpi_madt_local_apic_override {
- struct acpi_subtable_header header;
- u16 reserved; /* Reserved, must be zero */
- u64 address; /* APIC physical address */
-};
-
-/* 6: I/O Sapic */
-
-struct acpi_madt_io_sapic {
- struct acpi_subtable_header header;
- u8 id; /* I/O SAPIC ID */
- u8 reserved; /* Reserved, must be zero */
- u32 global_irq_base; /* Global interrupt for SAPIC start */
- u64 address; /* SAPIC physical address */
-};
-
-/* 7: Local Sapic */
-
-struct acpi_madt_local_sapic {
- struct acpi_subtable_header header;
- u8 processor_id; /* ACPI processor id */
- u8 id; /* SAPIC ID */
- u8 eid; /* SAPIC EID */
- u8 reserved[3]; /* Reserved, must be zero */
- u32 lapic_flags;
- u32 uid; /* Numeric UID - ACPI 3.0 */
- char uid_string[1]; /* String UID - ACPI 3.0 */
-};
-
-/* 8: Platform Interrupt Source */
-
-struct acpi_madt_interrupt_source {
- struct acpi_subtable_header header;
- u16 inti_flags;
- u8 type; /* 1=PMI, 2=INIT, 3=corrected */
- u8 id; /* Processor ID */
- u8 eid; /* Processor EID */
- u8 io_sapic_vector; /* Vector value for PMI interrupts */
- u32 global_irq; /* Global system interrupt */
- u32 flags; /* Interrupt Source Flags */
-};
-
-/* Masks for Flags field above */
-
-#define ACPI_MADT_CPEI_OVERRIDE (1)
-
-/* 9: Processor Local X2APIC (ACPI 4.0) */
-
-struct acpi_madt_local_x2apic {
- struct acpi_subtable_header header;
- u16 reserved; /* Reserved - must be zero */
- u32 local_apic_id; /* Processor x2APIC ID */
- u32 lapic_flags;
- u32 uid; /* ACPI processor UID */
-};
-
-/* 10: Local X2APIC NMI (ACPI 4.0) */
-
-struct acpi_madt_local_x2apic_nmi {
- struct acpi_subtable_header header;
- u16 inti_flags;
- u32 uid; /* ACPI processor UID */
- u8 lint; /* LINTn to which NMI is connected */
- u8 reserved[3];
-};
-
-/* 11: Generic Interrupt (ACPI 5.0) */
-
-struct acpi_madt_generic_interrupt {
- struct acpi_subtable_header header;
- u16 reserved; /* Reserved - must be zero */
- u32 gic_id;
- u32 uid;
- u32 flags;
- u32 parking_version;
- u32 performance_interrupt;
- u64 parked_address;
- u64 base_address;
-};
-
-/* 12: Generic Distributor (ACPI 5.0) */
-
-struct acpi_madt_generic_distributor {
- struct acpi_subtable_header header;
- u16 reserved; /* Reserved - must be zero */
- u32 gic_id;
- u64 base_address;
- u32 global_irq_base;
- u32 reserved2; /* Reserved - must be zero */
-};
-
-/*
- * Common flags fields for MADT subtables
- */
-
-/* MADT Local APIC flags (lapic_flags) and GIC flags */
-
-#define ACPI_MADT_ENABLED (1) /* 00: Processor is usable if set */
-
-/* MADT MPS INTI flags (inti_flags) */
-
-#define ACPI_MADT_POLARITY_MASK (3) /* 00-01: Polarity of APIC I/O input signals */
-#define ACPI_MADT_TRIGGER_MASK (3<<2) /* 02-03: Trigger mode of APIC input signals */
-
-/* Values for MPS INTI flags */
-
-#define ACPI_MADT_POLARITY_CONFORMS 0
-#define ACPI_MADT_POLARITY_ACTIVE_HIGH 1
-#define ACPI_MADT_POLARITY_RESERVED 2
-#define ACPI_MADT_POLARITY_ACTIVE_LOW 3
-
-#define ACPI_MADT_TRIGGER_CONFORMS (0)
-#define ACPI_MADT_TRIGGER_EDGE (1<<2)
-#define ACPI_MADT_TRIGGER_RESERVED (2<<2)
-#define ACPI_MADT_TRIGGER_LEVEL (3<<2)
-
-/*******************************************************************************
- *
- * MSCT - Maximum System Characteristics Table (ACPI 4.0)
- * Version 1
- *
- ******************************************************************************/
-
-struct acpi_table_msct {
- struct acpi_table_header header; /* Common ACPI table header */
- u32 proximity_offset; /* Location of proximity info struct(s) */
- u32 max_proximity_domains; /* Max number of proximity domains */
- u32 max_clock_domains; /* Max number of clock domains */
- u64 max_address; /* Max physical address in system */
-};
-
-/* Subtable - Maximum Proximity Domain Information. Version 1 */
-
-struct acpi_msct_proximity {
- u8 revision;
- u8 length;
- u32 range_start; /* Start of domain range */
- u32 range_end; /* End of domain range */
- u32 processor_capacity;
- u64 memory_capacity; /* In bytes */
-};
-
-/*******************************************************************************
- *
- * SBST - Smart Battery Specification Table
- * Version 1
- *
- ******************************************************************************/
-
-struct acpi_table_sbst {
- struct acpi_table_header header; /* Common ACPI table header */
- u32 warning_level;
- u32 low_level;
- u32 critical_level;
-};
-
-/*******************************************************************************
- *
- * SLIT - System Locality Distance Information Table
- * Version 1
- *
- ******************************************************************************/
-
-struct acpi_table_slit {
- struct acpi_table_header header; /* Common ACPI table header */
- u64 locality_count;
- u8 entry[1]; /* Real size = localities^2 */
-};
-
-/*******************************************************************************
- *
- * SRAT - System Resource Affinity Table
- * Version 3
- *
- ******************************************************************************/
-
-struct acpi_table_srat {
- struct acpi_table_header header; /* Common ACPI table header */
- u32 table_revision; /* Must be value '1' */
- u64 reserved; /* Reserved, must be zero */
-};
-
-/* Values for subtable type in struct acpi_subtable_header */
-
-enum acpi_srat_type {
- ACPI_SRAT_TYPE_CPU_AFFINITY = 0,
- ACPI_SRAT_TYPE_MEMORY_AFFINITY = 1,
- ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY = 2,
- ACPI_SRAT_TYPE_RESERVED = 3 /* 3 and greater are reserved */
-};
-
-/*
- * SRAT Sub-tables, correspond to Type in struct acpi_subtable_header
- */
-
-/* 0: Processor Local APIC/SAPIC Affinity */
-
-struct acpi_srat_cpu_affinity {
- struct acpi_subtable_header header;
- u8 proximity_domain_lo;
- u8 apic_id;
- u32 flags;
- u8 local_sapic_eid;
- u8 proximity_domain_hi[3];
- u32 reserved; /* Reserved, must be zero */
-};
-
-/* Flags */
-
-#define ACPI_SRAT_CPU_USE_AFFINITY (1) /* 00: Use affinity structure */
-
-/* 1: Memory Affinity */
-
-struct acpi_srat_mem_affinity {
- struct acpi_subtable_header header;
- u32 proximity_domain;
- u16 reserved; /* Reserved, must be zero */
- u64 base_address;
- u64 length;
- u32 reserved1;
- u32 flags;
- u64 reserved2; /* Reserved, must be zero */
-};
-
-/* Flags */
-
-#define ACPI_SRAT_MEM_ENABLED (1) /* 00: Use affinity structure */
-#define ACPI_SRAT_MEM_HOT_PLUGGABLE (1<<1) /* 01: Memory region is hot pluggable */
-#define ACPI_SRAT_MEM_NON_VOLATILE (1<<2) /* 02: Memory region is non-volatile */
-
-/* 2: Processor Local X2_APIC Affinity (ACPI 4.0) */
-
-struct acpi_srat_x2apic_cpu_affinity {
- struct acpi_subtable_header header;
- u16 reserved; /* Reserved, must be zero */
- u32 proximity_domain;
- u32 apic_id;
- u32 flags;
- u32 clock_domain;
- u32 reserved2;
-};
-
-/* Flags for struct acpi_srat_cpu_affinity and struct acpi_srat_x2apic_cpu_affinity */
-
-#define ACPI_SRAT_CPU_ENABLED (1) /* 00: Use affinity structure */
-
-/* Reset to default packing */
-
-#pragma pack()
-
-#endif /* __ACTBL1_H__ */
diff --git a/ANDROID_3.4.5/include/acpi/actbl2.h b/ANDROID_3.4.5/include/acpi/actbl2.h
deleted file mode 100644
index 58bdd054..00000000
--- a/ANDROID_3.4.5/include/acpi/actbl2.h
+++ /dev/null
@@ -1,1048 +0,0 @@
-/******************************************************************************
- *
- * Name: actbl2.h - ACPI Table Definitions (tables not in ACPI spec)
- *
- *****************************************************************************/
-
-/*
- * Copyright (C) 2000 - 2011, Intel Corp.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions, and the following disclaimer,
- * without modification.
- * 2. Redistributions in binary form must reproduce at minimum a disclaimer
- * substantially similar to the "NO WARRANTY" disclaimer below
- * ("Disclaimer") and any redistribution must be conditioned upon
- * including a substantially similar Disclaimer requirement for further
- * binary redistribution.
- * 3. Neither the names of the above-listed copyright holders nor the names
- * of any contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") version 2 as published by the Free
- * Software Foundation.
- *
- * NO WARRANTY
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- */
-
-#ifndef __ACTBL2_H__
-#define __ACTBL2_H__
-
-/*******************************************************************************
- *
- * Additional ACPI Tables (2)
- *
- * These tables are not consumed directly by the ACPICA subsystem, but are
- * included here to support device drivers and the AML disassembler.
- *
- * The tables in this file are defined by third-party specifications, and are
- * not defined directly by the ACPI specification itself.
- *
- ******************************************************************************/
-
-/*
- * Values for description table header signatures for tables defined in this
- * file. Useful because they make it more difficult to inadvertently type in
- * the wrong signature.
- */
-#define ACPI_SIG_ASF "ASF!" /* Alert Standard Format table */
-#define ACPI_SIG_BOOT "BOOT" /* Simple Boot Flag Table */
-#define ACPI_SIG_DBGP "DBGP" /* Debug Port table */
-#define ACPI_SIG_DMAR "DMAR" /* DMA Remapping table */
-#define ACPI_SIG_HPET "HPET" /* High Precision Event Timer table */
-#define ACPI_SIG_IBFT "IBFT" /* i_sCSI Boot Firmware Table */
-#define ACPI_SIG_IVRS "IVRS" /* I/O Virtualization Reporting Structure */
-#define ACPI_SIG_MCFG "MCFG" /* PCI Memory Mapped Configuration table */
-#define ACPI_SIG_MCHI "MCHI" /* Management Controller Host Interface table */
-#define ACPI_SIG_SLIC "SLIC" /* Software Licensing Description Table */
-#define ACPI_SIG_SPCR "SPCR" /* Serial Port Console Redirection table */
-#define ACPI_SIG_SPMI "SPMI" /* Server Platform Management Interface table */
-#define ACPI_SIG_TCPA "TCPA" /* Trusted Computing Platform Alliance table */
-#define ACPI_SIG_UEFI "UEFI" /* Uefi Boot Optimization Table */
-#define ACPI_SIG_WAET "WAET" /* Windows ACPI Emulated devices Table */
-#define ACPI_SIG_WDAT "WDAT" /* Watchdog Action Table */
-#define ACPI_SIG_WDDT "WDDT" /* Watchdog Timer Description Table */
-#define ACPI_SIG_WDRT "WDRT" /* Watchdog Resource Table */
-
-#ifdef ACPI_UNDEFINED_TABLES
-/*
- * These tables have been seen in the field, but no definition has been found
- */
-#define ACPI_SIG_ATKG "ATKG"
-#define ACPI_SIG_GSCI "GSCI" /* GMCH SCI table */
-#define ACPI_SIG_IEIT "IEIT"
-#endif
-
-/*
- * All tables must be byte-packed to match the ACPI specification, since
- * the tables are provided by the system BIOS.
- */
-#pragma pack(1)
-
-/*
- * Note about bitfields: The u8 type is used for bitfields in ACPI tables.
- * This is the only type that is even remotely portable. Anything else is not
- * portable, so do not use any other bitfield types.
- */
-
-/*******************************************************************************
- *
- * ASF - Alert Standard Format table (Signature "ASF!")
- * Revision 0x10
- *
- * Conforms to the Alert Standard Format Specification V2.0, 23 April 2003
- *
- ******************************************************************************/
-
-struct acpi_table_asf {
- struct acpi_table_header header; /* Common ACPI table header */
-};
-
-/* ASF subtable header */
-
-struct acpi_asf_header {
- u8 type;
- u8 reserved;
- u16 length;
-};
-
-/* Values for Type field above */
-
-enum acpi_asf_type {
- ACPI_ASF_TYPE_INFO = 0,
- ACPI_ASF_TYPE_ALERT = 1,
- ACPI_ASF_TYPE_CONTROL = 2,
- ACPI_ASF_TYPE_BOOT = 3,
- ACPI_ASF_TYPE_ADDRESS = 4,
- ACPI_ASF_TYPE_RESERVED = 5
-};
-
-/*
- * ASF subtables
- */
-
-/* 0: ASF Information */
-
-struct acpi_asf_info {
- struct acpi_asf_header header;
- u8 min_reset_value;
- u8 min_poll_interval;
- u16 system_id;
- u32 mfg_id;
- u8 flags;
- u8 reserved2[3];
-};
-
-/* Masks for Flags field above */
-
-#define ACPI_ASF_SMBUS_PROTOCOLS (1)
-
-/* 1: ASF Alerts */
-
-struct acpi_asf_alert {
- struct acpi_asf_header header;
- u8 assert_mask;
- u8 deassert_mask;
- u8 alerts;
- u8 data_length;
-};
-
-struct acpi_asf_alert_data {
- u8 address;
- u8 command;
- u8 mask;
- u8 value;
- u8 sensor_type;
- u8 type;
- u8 offset;
- u8 source_type;
- u8 severity;
- u8 sensor_number;
- u8 entity;
- u8 instance;
-};
-
-/* 2: ASF Remote Control */
-
-struct acpi_asf_remote {
- struct acpi_asf_header header;
- u8 controls;
- u8 data_length;
- u16 reserved2;
-};
-
-struct acpi_asf_control_data {
- u8 function;
- u8 address;
- u8 command;
- u8 value;
-};
-
-/* 3: ASF RMCP Boot Options */
-
-struct acpi_asf_rmcp {
- struct acpi_asf_header header;
- u8 capabilities[7];
- u8 completion_code;
- u32 enterprise_id;
- u8 command;
- u16 parameter;
- u16 boot_options;
- u16 oem_parameters;
-};
-
-/* 4: ASF Address */
-
-struct acpi_asf_address {
- struct acpi_asf_header header;
- u8 eprom_address;
- u8 devices;
-};
-
-/*******************************************************************************
- *
- * BOOT - Simple Boot Flag Table
- * Version 1
- *
- * Conforms to the "Simple Boot Flag Specification", Version 2.1
- *
- ******************************************************************************/
-
-struct acpi_table_boot {
- struct acpi_table_header header; /* Common ACPI table header */
- u8 cmos_index; /* Index in CMOS RAM for the boot register */
- u8 reserved[3];
-};
-
-/*******************************************************************************
- *
- * DBGP - Debug Port table
- * Version 1
- *
- * Conforms to the "Debug Port Specification", Version 1.00, 2/9/2000
- *
- ******************************************************************************/
-
-struct acpi_table_dbgp {
- struct acpi_table_header header; /* Common ACPI table header */
- u8 type; /* 0=full 16550, 1=subset of 16550 */
- u8 reserved[3];
- struct acpi_generic_address debug_port;
-};
-
-/*******************************************************************************
- *
- * DMAR - DMA Remapping table
- * Version 1
- *
- * Conforms to "Intel Virtualization Technology for Directed I/O",
- * Version 1.2, Sept. 2008
- *
- ******************************************************************************/
-
-struct acpi_table_dmar {
- struct acpi_table_header header; /* Common ACPI table header */
- u8 width; /* Host Address Width */
- u8 flags;
- u8 reserved[10];
-};
-
-/* Masks for Flags field above */
-
-#define ACPI_DMAR_INTR_REMAP (1)
-
-/* DMAR subtable header */
-
-struct acpi_dmar_header {
- u16 type;
- u16 length;
-};
-
-/* Values for subtable type in struct acpi_dmar_header */
-
-enum acpi_dmar_type {
- ACPI_DMAR_TYPE_HARDWARE_UNIT = 0,
- ACPI_DMAR_TYPE_RESERVED_MEMORY = 1,
- ACPI_DMAR_TYPE_ATSR = 2,
- ACPI_DMAR_HARDWARE_AFFINITY = 3,
- ACPI_DMAR_TYPE_RESERVED = 4 /* 4 and greater are reserved */
-};
-
-/* DMAR Device Scope structure */
-
-struct acpi_dmar_device_scope {
- u8 entry_type;
- u8 length;
- u16 reserved;
- u8 enumeration_id;
- u8 bus;
-};
-
-/* Values for entry_type in struct acpi_dmar_device_scope */
-
-enum acpi_dmar_scope_type {
- ACPI_DMAR_SCOPE_TYPE_NOT_USED = 0,
- ACPI_DMAR_SCOPE_TYPE_ENDPOINT = 1,
- ACPI_DMAR_SCOPE_TYPE_BRIDGE = 2,
- ACPI_DMAR_SCOPE_TYPE_IOAPIC = 3,
- ACPI_DMAR_SCOPE_TYPE_HPET = 4,
- ACPI_DMAR_SCOPE_TYPE_RESERVED = 5 /* 5 and greater are reserved */
-};
-
-struct acpi_dmar_pci_path {
- u8 dev;
- u8 fn;
-};
-
-/*
- * DMAR Sub-tables, correspond to Type in struct acpi_dmar_header
- */
-
-/* 0: Hardware Unit Definition */
-
-struct acpi_dmar_hardware_unit {
- struct acpi_dmar_header header;
- u8 flags;
- u8 reserved;
- u16 segment;
- u64 address; /* Register Base Address */
-};
-
-/* Masks for Flags field above */
-
-#define ACPI_DMAR_INCLUDE_ALL (1)
-
-/* 1: Reserved Memory Defininition */
-
-struct acpi_dmar_reserved_memory {
- struct acpi_dmar_header header;
- u16 reserved;
- u16 segment;
- u64 base_address; /* 4_k aligned base address */
- u64 end_address; /* 4_k aligned limit address */
-};
-
-/* Masks for Flags field above */
-
-#define ACPI_DMAR_ALLOW_ALL (1)
-
-/* 2: Root Port ATS Capability Reporting Structure */
-
-struct acpi_dmar_atsr {
- struct acpi_dmar_header header;
- u8 flags;
- u8 reserved;
- u16 segment;
-};
-
-/* Masks for Flags field above */
-
-#define ACPI_DMAR_ALL_PORTS (1)
-
-/* 3: Remapping Hardware Static Affinity Structure */
-
-struct acpi_dmar_rhsa {
- struct acpi_dmar_header header;
- u32 reserved;
- u64 base_address;
- u32 proximity_domain;
-};
-
-/*******************************************************************************
- *
- * HPET - High Precision Event Timer table
- * Version 1
- *
- * Conforms to "IA-PC HPET (High Precision Event Timers) Specification",
- * Version 1.0a, October 2004
- *
- ******************************************************************************/
-
-struct acpi_table_hpet {
- struct acpi_table_header header; /* Common ACPI table header */
- u32 id; /* Hardware ID of event timer block */
- struct acpi_generic_address address; /* Address of event timer block */
- u8 sequence; /* HPET sequence number */
- u16 minimum_tick; /* Main counter min tick, periodic mode */
- u8 flags;
-};
-
-/* Masks for Flags field above */
-
-#define ACPI_HPET_PAGE_PROTECT_MASK (3)
-
-/* Values for Page Protect flags */
-
-enum acpi_hpet_page_protect {
- ACPI_HPET_NO_PAGE_PROTECT = 0,
- ACPI_HPET_PAGE_PROTECT4 = 1,
- ACPI_HPET_PAGE_PROTECT64 = 2
-};
-
-/*******************************************************************************
- *
- * IBFT - Boot Firmware Table
- * Version 1
- *
- * Conforms to "iSCSI Boot Firmware Table (iBFT) as Defined in ACPI 3.0b
- * Specification", Version 1.01, March 1, 2007
- *
- * Note: It appears that this table is not intended to appear in the RSDT/XSDT.
- * Therefore, it is not currently supported by the disassembler.
- *
- ******************************************************************************/
-
-struct acpi_table_ibft {
- struct acpi_table_header header; /* Common ACPI table header */
- u8 reserved[12];
-};
-
-/* IBFT common subtable header */
-
-struct acpi_ibft_header {
- u8 type;
- u8 version;
- u16 length;
- u8 index;
- u8 flags;
-};
-
-/* Values for Type field above */
-
-enum acpi_ibft_type {
- ACPI_IBFT_TYPE_NOT_USED = 0,
- ACPI_IBFT_TYPE_CONTROL = 1,
- ACPI_IBFT_TYPE_INITIATOR = 2,
- ACPI_IBFT_TYPE_NIC = 3,
- ACPI_IBFT_TYPE_TARGET = 4,
- ACPI_IBFT_TYPE_EXTENSIONS = 5,
- ACPI_IBFT_TYPE_RESERVED = 6 /* 6 and greater are reserved */
-};
-
-/* IBFT subtables */
-
-struct acpi_ibft_control {
- struct acpi_ibft_header header;
- u16 extensions;
- u16 initiator_offset;
- u16 nic0_offset;
- u16 target0_offset;
- u16 nic1_offset;
- u16 target1_offset;
-};
-
-struct acpi_ibft_initiator {
- struct acpi_ibft_header header;
- u8 sns_server[16];
- u8 slp_server[16];
- u8 primary_server[16];
- u8 secondary_server[16];
- u16 name_length;
- u16 name_offset;
-};
-
-struct acpi_ibft_nic {
- struct acpi_ibft_header header;
- u8 ip_address[16];
- u8 subnet_mask_prefix;
- u8 origin;
- u8 gateway[16];
- u8 primary_dns[16];
- u8 secondary_dns[16];
- u8 dhcp[16];
- u16 vlan;
- u8 mac_address[6];
- u16 pci_address;
- u16 name_length;
- u16 name_offset;
-};
-
-struct acpi_ibft_target {
- struct acpi_ibft_header header;
- u8 target_ip_address[16];
- u16 target_ip_socket;
- u8 target_boot_lun[8];
- u8 chap_type;
- u8 nic_association;
- u16 target_name_length;
- u16 target_name_offset;
- u16 chap_name_length;
- u16 chap_name_offset;
- u16 chap_secret_length;
- u16 chap_secret_offset;
- u16 reverse_chap_name_length;
- u16 reverse_chap_name_offset;
- u16 reverse_chap_secret_length;
- u16 reverse_chap_secret_offset;
-};
-
-/*******************************************************************************
- *
- * IVRS - I/O Virtualization Reporting Structure
- * Version 1
- *
- * Conforms to "AMD I/O Virtualization Technology (IOMMU) Specification",
- * Revision 1.26, February 2009.
- *
- ******************************************************************************/
-
-struct acpi_table_ivrs {
- struct acpi_table_header header; /* Common ACPI table header */
- u32 info; /* Common virtualization info */
- u64 reserved;
-};
-
-/* Values for Info field above */
-
-#define ACPI_IVRS_PHYSICAL_SIZE 0x00007F00 /* 7 bits, physical address size */
-#define ACPI_IVRS_VIRTUAL_SIZE 0x003F8000 /* 7 bits, virtual address size */
-#define ACPI_IVRS_ATS_RESERVED 0x00400000 /* ATS address translation range reserved */
-
-/* IVRS subtable header */
-
-struct acpi_ivrs_header {
- u8 type; /* Subtable type */
- u8 flags;
- u16 length; /* Subtable length */
- u16 device_id; /* ID of IOMMU */
-};
-
-/* Values for subtable Type above */
-
-enum acpi_ivrs_type {
- ACPI_IVRS_TYPE_HARDWARE = 0x10,
- ACPI_IVRS_TYPE_MEMORY1 = 0x20,
- ACPI_IVRS_TYPE_MEMORY2 = 0x21,
- ACPI_IVRS_TYPE_MEMORY3 = 0x22
-};
-
-/* Masks for Flags field above for IVHD subtable */
-
-#define ACPI_IVHD_TT_ENABLE (1)
-#define ACPI_IVHD_PASS_PW (1<<1)
-#define ACPI_IVHD_RES_PASS_PW (1<<2)
-#define ACPI_IVHD_ISOC (1<<3)
-#define ACPI_IVHD_IOTLB (1<<4)
-
-/* Masks for Flags field above for IVMD subtable */
-
-#define ACPI_IVMD_UNITY (1)
-#define ACPI_IVMD_READ (1<<1)
-#define ACPI_IVMD_WRITE (1<<2)
-#define ACPI_IVMD_EXCLUSION_RANGE (1<<3)
-
-/*
- * IVRS subtables, correspond to Type in struct acpi_ivrs_header
- */
-
-/* 0x10: I/O Virtualization Hardware Definition Block (IVHD) */
-
-struct acpi_ivrs_hardware {
- struct acpi_ivrs_header header;
- u16 capability_offset; /* Offset for IOMMU control fields */
- u64 base_address; /* IOMMU control registers */
- u16 pci_segment_group;
- u16 info; /* MSI number and unit ID */
- u32 reserved;
-};
-
-/* Masks for Info field above */
-
-#define ACPI_IVHD_MSI_NUMBER_MASK 0x001F /* 5 bits, MSI message number */
-#define ACPI_IVHD_UNIT_ID_MASK 0x1F00 /* 5 bits, unit_iD */
-
-/*
- * Device Entries for IVHD subtable, appear after struct acpi_ivrs_hardware structure.
- * Upper two bits of the Type field are the (encoded) length of the structure.
- * Currently, only 4 and 8 byte entries are defined. 16 and 32 byte entries
- * are reserved for future use but not defined.
- */
-struct acpi_ivrs_de_header {
- u8 type;
- u16 id;
- u8 data_setting;
-};
-
-/* Length of device entry is in the top two bits of Type field above */
-
-#define ACPI_IVHD_ENTRY_LENGTH 0xC0
-
-/* Values for device entry Type field above */
-
-enum acpi_ivrs_device_entry_type {
- /* 4-byte device entries, all use struct acpi_ivrs_device4 */
-
- ACPI_IVRS_TYPE_PAD4 = 0,
- ACPI_IVRS_TYPE_ALL = 1,
- ACPI_IVRS_TYPE_SELECT = 2,
- ACPI_IVRS_TYPE_START = 3,
- ACPI_IVRS_TYPE_END = 4,
-
- /* 8-byte device entries */
-
- ACPI_IVRS_TYPE_PAD8 = 64,
- ACPI_IVRS_TYPE_NOT_USED = 65,
- ACPI_IVRS_TYPE_ALIAS_SELECT = 66, /* Uses struct acpi_ivrs_device8a */
- ACPI_IVRS_TYPE_ALIAS_START = 67, /* Uses struct acpi_ivrs_device8a */
- ACPI_IVRS_TYPE_EXT_SELECT = 70, /* Uses struct acpi_ivrs_device8b */
- ACPI_IVRS_TYPE_EXT_START = 71, /* Uses struct acpi_ivrs_device8b */
- ACPI_IVRS_TYPE_SPECIAL = 72 /* Uses struct acpi_ivrs_device8c */
-};
-
-/* Values for Data field above */
-
-#define ACPI_IVHD_INIT_PASS (1)
-#define ACPI_IVHD_EINT_PASS (1<<1)
-#define ACPI_IVHD_NMI_PASS (1<<2)
-#define ACPI_IVHD_SYSTEM_MGMT (3<<4)
-#define ACPI_IVHD_LINT0_PASS (1<<6)
-#define ACPI_IVHD_LINT1_PASS (1<<7)
-
-/* Types 0-4: 4-byte device entry */
-
-struct acpi_ivrs_device4 {
- struct acpi_ivrs_de_header header;
-};
-
-/* Types 66-67: 8-byte device entry */
-
-struct acpi_ivrs_device8a {
- struct acpi_ivrs_de_header header;
- u8 reserved1;
- u16 used_id;
- u8 reserved2;
-};
-
-/* Types 70-71: 8-byte device entry */
-
-struct acpi_ivrs_device8b {
- struct acpi_ivrs_de_header header;
- u32 extended_data;
-};
-
-/* Values for extended_data above */
-
-#define ACPI_IVHD_ATS_DISABLED (1<<31)
-
-/* Type 72: 8-byte device entry */
-
-struct acpi_ivrs_device8c {
- struct acpi_ivrs_de_header header;
- u8 handle;
- u16 used_id;
- u8 variety;
-};
-
-/* Values for Variety field above */
-
-#define ACPI_IVHD_IOAPIC 1
-#define ACPI_IVHD_HPET 2
-
-/* 0x20, 0x21, 0x22: I/O Virtualization Memory Definition Block (IVMD) */
-
-struct acpi_ivrs_memory {
- struct acpi_ivrs_header header;
- u16 aux_data;
- u64 reserved;
- u64 start_address;
- u64 memory_length;
-};
-
-/*******************************************************************************
- *
- * MCFG - PCI Memory Mapped Configuration table and sub-table
- * Version 1
- *
- * Conforms to "PCI Firmware Specification", Revision 3.0, June 20, 2005
- *
- ******************************************************************************/
-
-struct acpi_table_mcfg {
- struct acpi_table_header header; /* Common ACPI table header */
- u8 reserved[8];
-};
-
-/* Subtable */
-
-struct acpi_mcfg_allocation {
- u64 address; /* Base address, processor-relative */
- u16 pci_segment; /* PCI segment group number */
- u8 start_bus_number; /* Starting PCI Bus number */
- u8 end_bus_number; /* Final PCI Bus number */
- u32 reserved;
-};
-
-/*******************************************************************************
- *
- * MCHI - Management Controller Host Interface Table
- * Version 1
- *
- * Conforms to "Management Component Transport Protocol (MCTP) Host
- * Interface Specification", Revision 1.0.0a, October 13, 2009
- *
- ******************************************************************************/
-
-struct acpi_table_mchi {
- struct acpi_table_header header; /* Common ACPI table header */
- u8 interface_type;
- u8 protocol;
- u64 protocol_data;
- u8 interrupt_type;
- u8 gpe;
- u8 pci_device_flag;
- u32 global_interrupt;
- struct acpi_generic_address control_register;
- u8 pci_segment;
- u8 pci_bus;
- u8 pci_device;
- u8 pci_function;
-};
-
-/*******************************************************************************
- *
- * SLIC - Software Licensing Description Table
- * Version 1
- *
- * Conforms to "OEM Activation 2.0 for Windows Vista Operating Systems",
- * Copyright 2006
- *
- ******************************************************************************/
-
-/* Basic SLIC table is only the common ACPI header */
-
-struct acpi_table_slic {
- struct acpi_table_header header; /* Common ACPI table header */
-};
-
-/* Common SLIC subtable header */
-
-struct acpi_slic_header {
- u32 type;
- u32 length;
-};
-
-/* Values for Type field above */
-
-enum acpi_slic_type {
- ACPI_SLIC_TYPE_PUBLIC_KEY = 0,
- ACPI_SLIC_TYPE_WINDOWS_MARKER = 1,
- ACPI_SLIC_TYPE_RESERVED = 2 /* 2 and greater are reserved */
-};
-
-/*
- * SLIC Sub-tables, correspond to Type in struct acpi_slic_header
- */
-
-/* 0: Public Key Structure */
-
-struct acpi_slic_key {
- struct acpi_slic_header header;
- u8 key_type;
- u8 version;
- u16 reserved;
- u32 algorithm;
- char magic[4];
- u32 bit_length;
- u32 exponent;
- u8 modulus[128];
-};
-
-/* 1: Windows Marker Structure */
-
-struct acpi_slic_marker {
- struct acpi_slic_header header;
- u32 version;
- char oem_id[ACPI_OEM_ID_SIZE]; /* ASCII OEM identification */
- char oem_table_id[ACPI_OEM_TABLE_ID_SIZE]; /* ASCII OEM table identification */
- char windows_flag[8];
- u32 slic_version;
- u8 reserved[16];
- u8 signature[128];
-};
-
-/*******************************************************************************
- *
- * SPCR - Serial Port Console Redirection table
- * Version 1
- *
- * Conforms to "Serial Port Console Redirection Table",
- * Version 1.00, January 11, 2002
- *
- ******************************************************************************/
-
-struct acpi_table_spcr {
- struct acpi_table_header header; /* Common ACPI table header */
- u8 interface_type; /* 0=full 16550, 1=subset of 16550 */
- u8 reserved[3];
- struct acpi_generic_address serial_port;
- u8 interrupt_type;
- u8 pc_interrupt;
- u32 interrupt;
- u8 baud_rate;
- u8 parity;
- u8 stop_bits;
- u8 flow_control;
- u8 terminal_type;
- u8 reserved1;
- u16 pci_device_id;
- u16 pci_vendor_id;
- u8 pci_bus;
- u8 pci_device;
- u8 pci_function;
- u32 pci_flags;
- u8 pci_segment;
- u32 reserved2;
-};
-
-/* Masks for pci_flags field above */
-
-#define ACPI_SPCR_DO_NOT_DISABLE (1)
-
-/*******************************************************************************
- *
- * SPMI - Server Platform Management Interface table
- * Version 5
- *
- * Conforms to "Intelligent Platform Management Interface Specification
- * Second Generation v2.0", Document Revision 1.0, February 12, 2004 with
- * June 12, 2009 markup.
- *
- ******************************************************************************/
-
-struct acpi_table_spmi {
- struct acpi_table_header header; /* Common ACPI table header */
- u8 interface_type;
- u8 reserved; /* Must be 1 */
- u16 spec_revision; /* Version of IPMI */
- u8 interrupt_type;
- u8 gpe_number; /* GPE assigned */
- u8 reserved1;
- u8 pci_device_flag;
- u32 interrupt;
- struct acpi_generic_address ipmi_register;
- u8 pci_segment;
- u8 pci_bus;
- u8 pci_device;
- u8 pci_function;
- u8 reserved2;
-};
-
-/* Values for interface_type above */
-
-enum acpi_spmi_interface_types {
- ACPI_SPMI_NOT_USED = 0,
- ACPI_SPMI_KEYBOARD = 1,
- ACPI_SPMI_SMI = 2,
- ACPI_SPMI_BLOCK_TRANSFER = 3,
- ACPI_SPMI_SMBUS = 4,
- ACPI_SPMI_RESERVED = 5 /* 5 and above are reserved */
-};
-
-/*******************************************************************************
- *
- * TCPA - Trusted Computing Platform Alliance table
- * Version 1
- *
- * Conforms to "TCG PC Specific Implementation Specification",
- * Version 1.1, August 18, 2003
- *
- ******************************************************************************/
-
-struct acpi_table_tcpa {
- struct acpi_table_header header; /* Common ACPI table header */
- u16 reserved;
- u32 max_log_length; /* Maximum length for the event log area */
- u64 log_address; /* Address of the event log area */
-};
-
-/*******************************************************************************
- *
- * UEFI - UEFI Boot optimization Table
- * Version 1
- *
- * Conforms to "Unified Extensible Firmware Interface Specification",
- * Version 2.3, May 8, 2009
- *
- ******************************************************************************/
-
-struct acpi_table_uefi {
- struct acpi_table_header header; /* Common ACPI table header */
- u8 identifier[16]; /* UUID identifier */
- u16 data_offset; /* Offset of remaining data in table */
-};
-
-/*******************************************************************************
- *
- * WAET - Windows ACPI Emulated devices Table
- * Version 1
- *
- * Conforms to "Windows ACPI Emulated Devices Table", version 1.0, April 6, 2009
- *
- ******************************************************************************/
-
-struct acpi_table_waet {
- struct acpi_table_header header; /* Common ACPI table header */
- u32 flags;
-};
-
-/* Masks for Flags field above */
-
-#define ACPI_WAET_RTC_NO_ACK (1) /* RTC requires no int acknowledge */
-#define ACPI_WAET_TIMER_ONE_READ (1<<1) /* PM timer requires only one read */
-
-/*******************************************************************************
- *
- * WDAT - Watchdog Action Table
- * Version 1
- *
- * Conforms to "Hardware Watchdog Timers Design Specification",
- * Copyright 2006 Microsoft Corporation.
- *
- ******************************************************************************/
-
-struct acpi_table_wdat {
- struct acpi_table_header header; /* Common ACPI table header */
- u32 header_length; /* Watchdog Header Length */
- u16 pci_segment; /* PCI Segment number */
- u8 pci_bus; /* PCI Bus number */
- u8 pci_device; /* PCI Device number */
- u8 pci_function; /* PCI Function number */
- u8 reserved[3];
- u32 timer_period; /* Period of one timer count (msec) */
- u32 max_count; /* Maximum counter value supported */
- u32 min_count; /* Minimum counter value */
- u8 flags;
- u8 reserved2[3];
- u32 entries; /* Number of watchdog entries that follow */
-};
-
-/* Masks for Flags field above */
-
-#define ACPI_WDAT_ENABLED (1)
-#define ACPI_WDAT_STOPPED 0x80
-
-/* WDAT Instruction Entries (actions) */
-
-struct acpi_wdat_entry {
- u8 action;
- u8 instruction;
- u16 reserved;
- struct acpi_generic_address register_region;
- u32 value; /* Value used with Read/Write register */
- u32 mask; /* Bitmask required for this register instruction */
-};
-
-/* Values for Action field above */
-
-enum acpi_wdat_actions {
- ACPI_WDAT_RESET = 1,
- ACPI_WDAT_GET_CURRENT_COUNTDOWN = 4,
- ACPI_WDAT_GET_COUNTDOWN = 5,
- ACPI_WDAT_SET_COUNTDOWN = 6,
- ACPI_WDAT_GET_RUNNING_STATE = 8,
- ACPI_WDAT_SET_RUNNING_STATE = 9,
- ACPI_WDAT_GET_STOPPED_STATE = 10,
- ACPI_WDAT_SET_STOPPED_STATE = 11,
- ACPI_WDAT_GET_REBOOT = 16,
- ACPI_WDAT_SET_REBOOT = 17,
- ACPI_WDAT_GET_SHUTDOWN = 18,
- ACPI_WDAT_SET_SHUTDOWN = 19,
- ACPI_WDAT_GET_STATUS = 32,
- ACPI_WDAT_SET_STATUS = 33,
- ACPI_WDAT_ACTION_RESERVED = 34 /* 34 and greater are reserved */
-};
-
-/* Values for Instruction field above */
-
-enum acpi_wdat_instructions {
- ACPI_WDAT_READ_VALUE = 0,
- ACPI_WDAT_READ_COUNTDOWN = 1,
- ACPI_WDAT_WRITE_VALUE = 2,
- ACPI_WDAT_WRITE_COUNTDOWN = 3,
- ACPI_WDAT_INSTRUCTION_RESERVED = 4, /* 4 and greater are reserved */
- ACPI_WDAT_PRESERVE_REGISTER = 0x80 /* Except for this value */
-};
-
-/*******************************************************************************
- *
- * WDDT - Watchdog Descriptor Table
- * Version 1
- *
- * Conforms to "Using the Intel ICH Family Watchdog Timer (WDT)",
- * Version 001, September 2002
- *
- ******************************************************************************/
-
-struct acpi_table_wddt {
- struct acpi_table_header header; /* Common ACPI table header */
- u16 spec_version;
- u16 table_version;
- u16 pci_vendor_id;
- struct acpi_generic_address address;
- u16 max_count; /* Maximum counter value supported */
- u16 min_count; /* Minimum counter value supported */
- u16 period;
- u16 status;
- u16 capability;
-};
-
-/* Flags for Status field above */
-
-#define ACPI_WDDT_AVAILABLE (1)
-#define ACPI_WDDT_ACTIVE (1<<1)
-#define ACPI_WDDT_TCO_OS_OWNED (1<<2)
-#define ACPI_WDDT_USER_RESET (1<<11)
-#define ACPI_WDDT_WDT_RESET (1<<12)
-#define ACPI_WDDT_POWER_FAIL (1<<13)
-#define ACPI_WDDT_UNKNOWN_RESET (1<<14)
-
-/* Flags for Capability field above */
-
-#define ACPI_WDDT_AUTO_RESET (1)
-#define ACPI_WDDT_ALERT_SUPPORT (1<<1)
-
-/*******************************************************************************
- *
- * WDRT - Watchdog Resource Table
- * Version 1
- *
- * Conforms to "Watchdog Timer Hardware Requirements for Windows Server 2003",
- * Version 1.01, August 28, 2006
- *
- ******************************************************************************/
-
-struct acpi_table_wdrt {
- struct acpi_table_header header; /* Common ACPI table header */
- struct acpi_generic_address control_register;
- struct acpi_generic_address count_register;
- u16 pci_device_id;
- u16 pci_vendor_id;
- u8 pci_bus; /* PCI Bus number */
- u8 pci_device; /* PCI Device number */
- u8 pci_function; /* PCI Function number */
- u8 pci_segment; /* PCI Segment number */
- u16 max_count; /* Maximum counter value supported */
- u8 units;
-};
-
-/* Reset to default packing */
-
-#pragma pack()
-
-#endif /* __ACTBL2_H__ */
diff --git a/ANDROID_3.4.5/include/acpi/actbl3.h b/ANDROID_3.4.5/include/acpi/actbl3.h
deleted file mode 100644
index c22ce80e..00000000
--- a/ANDROID_3.4.5/include/acpi/actbl3.h
+++ /dev/null
@@ -1,552 +0,0 @@
-/******************************************************************************
- *
- * Name: actbl3.h - ACPI Table Definitions
- *
- *****************************************************************************/
-
-/*
- * Copyright (C) 2000 - 2011, Intel Corp.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions, and the following disclaimer,
- * without modification.
- * 2. Redistributions in binary form must reproduce at minimum a disclaimer
- * substantially similar to the "NO WARRANTY" disclaimer below
- * ("Disclaimer") and any redistribution must be conditioned upon
- * including a substantially similar Disclaimer requirement for further
- * binary redistribution.
- * 3. Neither the names of the above-listed copyright holders nor the names
- * of any contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") version 2 as published by the Free
- * Software Foundation.
- *
- * NO WARRANTY
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- */
-
-#ifndef __ACTBL3_H__
-#define __ACTBL3_H__
-
-/*******************************************************************************
- *
- * Additional ACPI Tables (3)
- *
- * These tables are not consumed directly by the ACPICA subsystem, but are
- * included here to support device drivers and the AML disassembler.
- *
- * The tables in this file are fully defined within the ACPI specification.
- *
- ******************************************************************************/
-
-/*
- * Values for description table header signatures for tables defined in this
- * file. Useful because they make it more difficult to inadvertently type in
- * the wrong signature.
- */
-#define ACPI_SIG_BGRT "BGRT" /* Boot Graphics Resource Table */
-#define ACPI_SIG_DRTM "DRTM" /* Dynamic Root of Trust for Measurement table */
-#define ACPI_SIG_FPDT "FPDT" /* Firmware Performance Data Table */
-#define ACPI_SIG_GTDT "GTDT" /* Generic Timer Description Table */
-#define ACPI_SIG_MPST "MPST" /* Memory Power State Table */
-#define ACPI_SIG_PCCT "PCCT" /* Platform Communications Channel Table */
-#define ACPI_SIG_PMTT "PMTT" /* Platform Memory Topology Table */
-#define ACPI_SIG_RASF "RASF" /* RAS Feature table */
-
-#define ACPI_SIG_S3PT "S3PT" /* S3 Performance (sub)Table */
-#define ACPI_SIG_PCCS "PCC" /* PCC Shared Memory Region */
-
-/* Reserved table signatures */
-
-#define ACPI_SIG_CSRT "CSRT" /* Core System Resources Table */
-#define ACPI_SIG_DBG2 "DBG2" /* Debug Port table 2 */
-#define ACPI_SIG_MATR "MATR" /* Memory Address Translation Table */
-#define ACPI_SIG_MSDM "MSDM" /* Microsoft Data Management Table */
-#define ACPI_SIG_WPBT "WPBT" /* Windows Platform Binary Table */
-
-/*
- * All tables must be byte-packed to match the ACPI specification, since
- * the tables are provided by the system BIOS.
- */
-#pragma pack(1)
-
-/*
- * Note about bitfields: The u8 type is used for bitfields in ACPI tables.
- * This is the only type that is even remotely portable. Anything else is not
- * portable, so do not use any other bitfield types.
- */
-
-/*******************************************************************************
- *
- * BGRT - Boot Graphics Resource Table (ACPI 5.0)
- * Version 1
- *
- ******************************************************************************/
-
-struct acpi_table_bgrt {
- struct acpi_table_header header; /* Common ACPI table header */
- u16 version;
- u8 status;
- u8 image_type;
- u64 image_address;
- u32 image_offset_x;
- u32 image_offset_y;
-};
-
-/*******************************************************************************
- *
- * DRTM - Dynamic Root of Trust for Measurement table
- *
- ******************************************************************************/
-
-struct acpi_table_drtm {
- struct acpi_table_header header; /* Common ACPI table header */
- u64 entry_base_address;
- u64 entry_length;
- u32 entry_address32;
- u64 entry_address64;
- u64 exit_address;
- u64 log_area_address;
- u32 log_area_length;
- u64 arch_dependent_address;
- u32 flags;
-};
-
-/* 1) Validated Tables List */
-
-struct acpi_drtm_vtl_list {
- u32 validated_table_list_count;
-};
-
-/* 2) Resources List */
-
-struct acpi_drtm_resource_list {
- u32 resource_list_count;
-};
-
-/* 3) Platform-specific Identifiers List */
-
-struct acpi_drtm_id_list {
- u32 id_list_count;
-};
-
-/*******************************************************************************
- *
- * FPDT - Firmware Performance Data Table (ACPI 5.0)
- * Version 1
- *
- ******************************************************************************/
-
-struct acpi_table_fpdt {
- struct acpi_table_header header; /* Common ACPI table header */
-};
-
-/* FPDT subtable header */
-
-struct acpi_fpdt_header {
- u16 type;
- u8 length;
- u8 revision;
-};
-
-/* Values for Type field above */
-
-enum acpi_fpdt_type {
- ACPI_FPDT_TYPE_BOOT = 0,
- ACPI_FPDT_TYPE_S3PERF = 1,
-};
-
-/*
- * FPDT subtables
- */
-
-/* 0: Firmware Basic Boot Performance Record */
-
-struct acpi_fpdt_boot {
- struct acpi_fpdt_header header;
- u8 reserved[4];
- u64 reset_end;
- u64 load_start;
- u64 startup_start;
- u64 exit_services_entry;
- u64 exit_services_exit;
-};
-
-/* 1: S3 Performance Table Pointer Record */
-
-struct acpi_fpdt_s3pt_ptr {
- struct acpi_fpdt_header header;
- u8 reserved[4];
- u64 address;
-};
-
-/*
- * S3PT - S3 Performance Table. This table is pointed to by the
- * FPDT S3 Pointer Record above.
- */
-struct acpi_table_s3pt {
- u8 signature[4]; /* "S3PT" */
- u32 length;
-};
-
-/*
- * S3PT Subtables
- */
-struct acpi_s3pt_header {
- u16 type;
- u8 length;
- u8 revision;
-};
-
-/* Values for Type field above */
-
-enum acpi_s3pt_type {
- ACPI_S3PT_TYPE_RESUME = 0,
- ACPI_S3PT_TYPE_SUSPEND = 1,
-};
-
-struct acpi_s3pt_resume {
- struct acpi_s3pt_header header;
- u32 resume_count;
- u64 full_resume;
- u64 average_resume;
-};
-
-struct acpi_s3pt_suspend {
- struct acpi_s3pt_header header;
- u64 suspend_start;
- u64 suspend_end;
-};
-
-/*******************************************************************************
- *
- * GTDT - Generic Timer Description Table (ACPI 5.0)
- * Version 1
- *
- ******************************************************************************/
-
-struct acpi_table_gtdt {
- struct acpi_table_header header; /* Common ACPI table header */
- u64 address;
- u32 flags;
- u32 secure_pl1_interrupt;
- u32 secure_pl1_flags;
- u32 non_secure_pl1_interrupt;
- u32 non_secure_pl1_flags;
- u32 virtual_timer_interrupt;
- u32 virtual_timer_flags;
- u32 non_secure_pl2_interrupt;
- u32 non_secure_pl2_flags;
-};
-
-/* Values for Flags field above */
-
-#define ACPI_GTDT_MAPPED_BLOCK_PRESENT 1
-
-/* Values for all "TimerFlags" fields above */
-
-#define ACPI_GTDT_INTERRUPT_MODE 1
-#define ACPI_GTDT_INTERRUPT_POLARITY 2
-
-/*******************************************************************************
- *
- * MPST - Memory Power State Table (ACPI 5.0)
- * Version 1
- *
- ******************************************************************************/
-
-#define ACPI_MPST_CHANNEL_INFO \
- u16 reserved1; \
- u8 channel_id; \
- u8 reserved2; \
- u16 power_node_count;
-
-/* Main table */
-
-struct acpi_table_mpst {
- struct acpi_table_header header; /* Common ACPI table header */
- ACPI_MPST_CHANNEL_INFO /* Platform Communication Channel */
-};
-
-/* Memory Platform Communication Channel Info */
-
-struct acpi_mpst_channel {
- ACPI_MPST_CHANNEL_INFO /* Platform Communication Channel */
-};
-
-/* Memory Power Node Structure */
-
-struct acpi_mpst_power_node {
- u8 flags;
- u8 reserved1;
- u16 node_id;
- u32 length;
- u64 range_address;
- u64 range_length;
- u8 num_power_states;
- u8 num_physical_components;
- u16 reserved2;
-};
-
-/* Values for Flags field above */
-
-#define ACPI_MPST_ENABLED 1
-#define ACPI_MPST_POWER_MANAGED 2
-#define ACPI_MPST_HOT_PLUG_CAPABLE 4
-
-/* Memory Power State Structure (follows POWER_NODE above) */
-
-struct acpi_mpst_power_state {
- u8 power_state;
- u8 info_index;
-};
-
-/* Physical Component ID Structure (follows POWER_STATE above) */
-
-struct acpi_mpst_component {
- u16 component_id;
-};
-
-/* Memory Power State Characteristics Structure (follows all POWER_NODEs) */
-
-struct acpi_mpst_data_hdr {
- u16 characteristics_count;
-};
-
-struct acpi_mpst_power_data {
- u8 revision;
- u8 flags;
- u16 reserved1;
- u32 average_power;
- u32 power_saving;
- u64 exit_latency;
- u64 reserved2;
-};
-
-/* Values for Flags field above */
-
-#define ACPI_MPST_PRESERVE 1
-#define ACPI_MPST_AUTOENTRY 2
-#define ACPI_MPST_AUTOEXIT 4
-
-/* Shared Memory Region (not part of an ACPI table) */
-
-struct acpi_mpst_shared {
- u32 signature;
- u16 pcc_command;
- u16 pcc_status;
- u16 command_register;
- u16 status_register;
- u16 power_state_id;
- u16 power_node_id;
- u64 energy_consumed;
- u64 average_power;
-};
-
-/*******************************************************************************
- *
- * PCCT - Platform Communications Channel Table (ACPI 5.0)
- * Version 1
- *
- ******************************************************************************/
-
-struct acpi_table_pcct {
- struct acpi_table_header header; /* Common ACPI table header */
- u32 flags;
- u32 latency;
- u32 reserved;
-};
-
-/* Values for Flags field above */
-
-#define ACPI_PCCT_DOORBELL 1
-
-/*
- * PCCT subtables
- */
-
-/* 0: Generic Communications Subspace */
-
-struct acpi_pcct_subspace {
- struct acpi_subtable_header header;
- u8 reserved[6];
- u64 base_address;
- u64 length;
- struct acpi_generic_address doorbell_register;
- u64 preserve_mask;
- u64 write_mask;
-};
-
-/*
- * PCC memory structures (not part of the ACPI table)
- */
-
-/* Shared Memory Region */
-
-struct acpi_pcct_shared_memory {
- u32 signature;
- u16 command;
- u16 status;
-};
-
-/*******************************************************************************
- *
- * PMTT - Platform Memory Topology Table (ACPI 5.0)
- * Version 1
- *
- ******************************************************************************/
-
-struct acpi_table_pmtt {
- struct acpi_table_header header; /* Common ACPI table header */
- u32 reserved;
-};
-
-/* Common header for PMTT subtables that follow main table */
-
-struct acpi_pmtt_header {
- u8 type;
- u8 reserved1;
- u16 length;
- u16 flags;
- u16 reserved2;
-};
-
-/* Values for Type field above */
-
-#define ACPI_PMTT_TYPE_SOCKET 0
-#define ACPI_PMTT_TYPE_CONTROLLER 1
-#define ACPI_PMTT_TYPE_DIMM 2
-#define ACPI_PMTT_TYPE_RESERVED 3 /* 0x03-0xFF are reserved */
-
-/* Values for Flags field above */
-
-#define ACPI_PMTT_TOP_LEVEL 0x0001
-#define ACPI_PMTT_PHYSICAL 0x0002
-#define ACPI_PMTT_MEMORY_TYPE 0x000C
-
-/*
- * PMTT subtables, correspond to Type in struct acpi_pmtt_header
- */
-
-/* 0: Socket Structure */
-
-struct acpi_pmtt_socket {
- struct acpi_pmtt_header header;
- u16 socket_id;
- u16 reserved;
-};
-
-/* 1: Memory Controller subtable */
-
-struct acpi_pmtt_controller {
- struct acpi_pmtt_header header;
- u32 read_latency;
- u32 write_latency;
- u32 read_bandwidth;
- u32 write_bandwidth;
- u16 access_width;
- u16 alignment;
- u16 reserved;
- u16 domain_count;
-};
-
-/* 1a: Proximity Domain substructure */
-
-struct acpi_pmtt_domain {
- u32 proximity_domain;
-};
-
-/* 2: Physical Component Identifier (DIMM) */
-
-struct acpi_pmtt_physical_component {
- struct acpi_pmtt_header header;
- u16 component_id;
- u16 reserved;
- u32 memory_size;
- u32 bios_handle;
-};
-
-/*******************************************************************************
- *
- * RASF - RAS Feature Table (ACPI 5.0)
- * Version 1
- *
- ******************************************************************************/
-
-struct acpi_table_rasf {
- struct acpi_table_header header; /* Common ACPI table header */
- u8 channel_id[12];
-};
-
-/* RASF Platform Communication Channel Shared Memory Region */
-
-struct acpi_rasf_shared_memory {
- u32 signature;
- u16 command;
- u16 status;
- u64 requested_address;
- u64 requested_length;
- u64 actual_address;
- u64 actual_length;
- u16 flags;
- u8 speed;
-};
-
-/* Masks for Flags and Speed fields above */
-
-#define ACPI_RASF_SCRUBBER_RUNNING 1
-#define ACPI_RASF_SPEED (7<<1)
-
-/* Channel Commands */
-
-enum acpi_rasf_commands {
- ACPI_RASF_GET_RAS_CAPABILITIES = 1,
- ACPI_RASF_GET_PATROL_PARAMETERS = 2,
- ACPI_RASF_START_PATROL_SCRUBBER = 3,
- ACPI_RASF_STOP_PATROL_SCRUBBER = 4
-};
-
-/* Channel Command flags */
-
-#define ACPI_RASF_GENERATE_SCI (1<<15)
-
-/* Status values */
-
-enum acpi_rasf_status {
- ACPI_RASF_SUCCESS = 0,
- ACPI_RASF_NOT_VALID = 1,
- ACPI_RASF_NOT_SUPPORTED = 2,
- ACPI_RASF_BUSY = 3,
- ACPI_RASF_FAILED = 4,
- ACPI_RASF_ABORTED = 5,
- ACPI_RASF_INVALID_DATA = 6
-};
-
-/* Status flags */
-
-#define ACPI_RASF_COMMAND_COMPLETE (1)
-#define ACPI_RASF_SCI_DOORBELL (1<<1)
-#define ACPI_RASF_ERROR (1<<2)
-#define ACPI_RASF_STATUS (0x1F<<3)
-
-/* Reset to default packing */
-
-#pragma pack()
-
-#endif /* __ACTBL3_H__ */
diff --git a/ANDROID_3.4.5/include/acpi/actypes.h b/ANDROID_3.4.5/include/acpi/actypes.h
deleted file mode 100644
index e8bcc474..00000000
--- a/ANDROID_3.4.5/include/acpi/actypes.h
+++ /dev/null
@@ -1,1121 +0,0 @@
-/******************************************************************************
- *
- * Name: actypes.h - Common data types for the entire ACPI subsystem
- *
- *****************************************************************************/
-
-/*
- * Copyright (C) 2000 - 2011, Intel Corp.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions, and the following disclaimer,
- * without modification.
- * 2. Redistributions in binary form must reproduce at minimum a disclaimer
- * substantially similar to the "NO WARRANTY" disclaimer below
- * ("Disclaimer") and any redistribution must be conditioned upon
- * including a substantially similar Disclaimer requirement for further
- * binary redistribution.
- * 3. Neither the names of the above-listed copyright holders nor the names
- * of any contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") version 2 as published by the Free
- * Software Foundation.
- *
- * NO WARRANTY
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- */
-
-#ifndef __ACTYPES_H__
-#define __ACTYPES_H__
-
-/* acpisrc:struct_defs -- for acpisrc conversion */
-
-/*
- * ACPI_MACHINE_WIDTH must be specified in an OS- or compiler-dependent header
- * and must be either 32 or 64. 16-bit ACPICA is no longer supported, as of
- * 12/2006.
- */
-#ifndef ACPI_MACHINE_WIDTH
-#error ACPI_MACHINE_WIDTH not defined
-#endif
-
-/*! [Begin] no source code translation */
-
-/*
- * Data type ranges
- * Note: These macros are designed to be compiler independent as well as
- * working around problems that some 32-bit compilers have with 64-bit
- * constants.
- */
-#define ACPI_UINT8_MAX (UINT8) (~((UINT8) 0)) /* 0xFF */
-#define ACPI_UINT16_MAX (UINT16)(~((UINT16) 0)) /* 0xFFFF */
-#define ACPI_UINT32_MAX (UINT32)(~((UINT32) 0)) /* 0xFFFFFFFF */
-#define ACPI_UINT64_MAX (UINT64)(~((UINT64) 0)) /* 0xFFFFFFFFFFFFFFFF */
-#define ACPI_ASCII_MAX 0x7F
-
-/*
- * Architecture-specific ACPICA Subsystem Data Types
- *
- * The goal of these types is to provide source code portability across
- * 16-bit, 32-bit, and 64-bit targets.
- *
- * 1) The following types are of fixed size for all targets (16/32/64):
- *
- * BOOLEAN Logical boolean
- *
- * UINT8 8-bit (1 byte) unsigned value
- * UINT16 16-bit (2 byte) unsigned value
- * UINT32 32-bit (4 byte) unsigned value
- * UINT64 64-bit (8 byte) unsigned value
- *
- * INT16 16-bit (2 byte) signed value
- * INT32 32-bit (4 byte) signed value
- * INT64 64-bit (8 byte) signed value
- *
- * COMPILER_DEPENDENT_UINT64/INT64 - These types are defined in the
- * compiler-dependent header(s) and were introduced because there is no common
- * 64-bit integer type across the various compilation models, as shown in
- * the table below.
- *
- * Datatype LP64 ILP64 LLP64 ILP32 LP32 16bit
- * char 8 8 8 8 8 8
- * short 16 16 16 16 16 16
- * _int32 32
- * int 32 64 32 32 16 16
- * long 64 64 32 32 32 32
- * long long 64 64
- * pointer 64 64 64 32 32 32
- *
- * Note: ILP64 and LP32 are currently not supported.
- *
- *
- * 2) These types represent the native word size of the target mode of the
- * processor, and may be 16-bit, 32-bit, or 64-bit as required. They are
- * usually used for memory allocation, efficient loop counters, and array
- * indexes. The types are similar to the size_t type in the C library and are
- * required because there is no C type that consistently represents the native
- * data width. ACPI_SIZE is needed because there is no guarantee that a
- * kernel-level C library is present.
- *
- * ACPI_SIZE 16/32/64-bit unsigned value
- * ACPI_NATIVE_INT 16/32/64-bit signed value
- */
-
-/*******************************************************************************
- *
- * Common types for all compilers, all targets
- *
- ******************************************************************************/
-
-typedef unsigned char BOOLEAN;
-typedef unsigned char UINT8;
-typedef unsigned short UINT16;
-typedef COMPILER_DEPENDENT_UINT64 UINT64;
-typedef COMPILER_DEPENDENT_INT64 INT64;
-
-/*! [End] no source code translation !*/
-
-/*
- * Value returned by acpi_os_get_thread_id. There is no standard "thread_id"
- * across operating systems or even the various UNIX systems. Since ACPICA
- * only needs the thread ID as a unique thread identifier, we use a u64
- * as the only common data type - it will accommodate any type of pointer or
- * any type of integer. It is up to the host-dependent OSL to cast the
- * native thread ID type to a u64 (in acpi_os_get_thread_id).
- */
-#define acpi_thread_id u64
-
-/*******************************************************************************
- *
- * Types specific to 64-bit targets
- *
- ******************************************************************************/
-
-#if ACPI_MACHINE_WIDTH == 64
-
-/*! [Begin] no source code translation (keep the typedefs as-is) */
-
-typedef unsigned int UINT32;
-typedef int INT32;
-
-/*! [End] no source code translation !*/
-
-typedef s64 acpi_native_int;
-
-typedef u64 acpi_size;
-typedef u64 acpi_io_address;
-typedef u64 acpi_physical_address;
-
-#define ACPI_MAX_PTR ACPI_UINT64_MAX
-#define ACPI_SIZE_MAX ACPI_UINT64_MAX
-
-#define ACPI_USE_NATIVE_DIVIDE /* Has native 64-bit integer support */
-
-/*
- * In the case of the Itanium Processor Family (IPF), the hardware does not
- * support misaligned memory transfers. Set the MISALIGNMENT_NOT_SUPPORTED flag
- * to indicate that special precautions must be taken to avoid alignment faults.
- * (IA64 or ia64 is currently used by existing compilers to indicate IPF.)
- *
- * Note: Em64_t and other X86-64 processors support misaligned transfers,
- * so there is no need to define this flag.
- */
-#if defined (__IA64__) || defined (__ia64__)
-#define ACPI_MISALIGNMENT_NOT_SUPPORTED
-#endif
-
-/*******************************************************************************
- *
- * Types specific to 32-bit targets
- *
- ******************************************************************************/
-
-#elif ACPI_MACHINE_WIDTH == 32
-
-/*! [Begin] no source code translation (keep the typedefs as-is) */
-
-typedef unsigned int UINT32;
-typedef int INT32;
-
-/*! [End] no source code translation !*/
-
-typedef s32 acpi_native_int;
-
-typedef u32 acpi_size;
-typedef u32 acpi_io_address;
-typedef u32 acpi_physical_address;
-
-#define ACPI_MAX_PTR ACPI_UINT32_MAX
-#define ACPI_SIZE_MAX ACPI_UINT32_MAX
-
-#else
-
-/* ACPI_MACHINE_WIDTH must be either 64 or 32 */
-
-#error unknown ACPI_MACHINE_WIDTH
-#endif
-
-/*******************************************************************************
- *
- * OS-dependent types
- *
- * If the defaults below are not appropriate for the host system, they can
- * be defined in the OS-specific header, and this will take precedence.
- *
- ******************************************************************************/
-
-/* Flags for acpi_os_acquire_lock/acpi_os_release_lock */
-
-#ifndef acpi_cpu_flags
-#define acpi_cpu_flags acpi_size
-#endif
-
-/* Object returned from acpi_os_create_cache */
-
-#ifndef acpi_cache_t
-#ifdef ACPI_USE_LOCAL_CACHE
-#define acpi_cache_t struct acpi_memory_list
-#else
-#define acpi_cache_t void *
-#endif
-#endif
-
-/*
- * Synchronization objects - Mutexes, Semaphores, and spin_locks
- */
-#if (ACPI_MUTEX_TYPE == ACPI_BINARY_SEMAPHORE)
-/*
- * These macros are used if the host OS does not support a mutex object.
- * Map the OSL Mutex interfaces to binary semaphores.
- */
-#define acpi_mutex acpi_semaphore
-#define acpi_os_create_mutex(out_handle) acpi_os_create_semaphore (1, 1, out_handle)
-#define acpi_os_delete_mutex(handle) (void) acpi_os_delete_semaphore (handle)
-#define acpi_os_acquire_mutex(handle,time) acpi_os_wait_semaphore (handle, 1, time)
-#define acpi_os_release_mutex(handle) (void) acpi_os_signal_semaphore (handle, 1)
-#endif
-
-/* Configurable types for synchronization objects */
-
-#ifndef acpi_spinlock
-#define acpi_spinlock void *
-#endif
-
-#ifndef acpi_semaphore
-#define acpi_semaphore void *
-#endif
-
-#ifndef acpi_mutex
-#define acpi_mutex void *
-#endif
-
-/*******************************************************************************
- *
- * Compiler-dependent types
- *
- * If the defaults below are not appropriate for the host compiler, they can
- * be defined in the compiler-specific header, and this will take precedence.
- *
- ******************************************************************************/
-
-/* Use C99 uintptr_t for pointer casting if available, "void *" otherwise */
-
-#ifndef acpi_uintptr_t
-#define acpi_uintptr_t void *
-#endif
-
-/*
- * ACPI_PRINTF_LIKE is used to tag functions as "printf-like" because
- * some compilers can catch printf format string problems
- */
-#ifndef ACPI_PRINTF_LIKE
-#define ACPI_PRINTF_LIKE(c)
-#endif
-
-/*
- * Some compilers complain about unused variables. Sometimes we don't want to
- * use all the variables (for example, _acpi_module_name). This allows us
- * to tell the compiler in a per-variable manner that a variable
- * is unused
- */
-#ifndef ACPI_UNUSED_VAR
-#define ACPI_UNUSED_VAR
-#endif
-
-/*
- * All ACPICA functions that are available to the rest of the kernel are
- * tagged with this macro which can be defined as appropriate for the host.
- */
-#ifndef ACPI_EXPORT_SYMBOL
-#define ACPI_EXPORT_SYMBOL(symbol)
-#endif
-
-/******************************************************************************
- *
- * ACPI Specification constants (Do not change unless the specification changes)
- *
- *****************************************************************************/
-
-/* Number of distinct FADT-based GPE register blocks (GPE0 and GPE1) */
-
-#define ACPI_MAX_GPE_BLOCKS 2
-
-/* Default ACPI register widths */
-
-#define ACPI_GPE_REGISTER_WIDTH 8
-#define ACPI_PM1_REGISTER_WIDTH 16
-#define ACPI_PM2_REGISTER_WIDTH 8
-#define ACPI_PM_TIMER_WIDTH 32
-
-/* Names within the namespace are 4 bytes long */
-
-#define ACPI_NAME_SIZE 4
-#define ACPI_PATH_SEGMENT_LENGTH 5 /* 4 chars for name + 1 char for separator */
-#define ACPI_PATH_SEPARATOR '.'
-
-/* Sizes for ACPI table headers */
-
-#define ACPI_OEM_ID_SIZE 6
-#define ACPI_OEM_TABLE_ID_SIZE 8
-
-/* ACPI/PNP hardware IDs */
-
-#define PCI_ROOT_HID_STRING "PNP0A03"
-#define PCI_EXPRESS_ROOT_HID_STRING "PNP0A08"
-
-/* PM Timer ticks per second (HZ) */
-
-#define PM_TIMER_FREQUENCY 3579545
-
-/*******************************************************************************
- *
- * Independent types
- *
- ******************************************************************************/
-
-/* Logical defines and NULL */
-
-#ifdef FALSE
-#undef FALSE
-#endif
-#define FALSE (1 == 0)
-
-#ifdef TRUE
-#undef TRUE
-#endif
-#define TRUE (1 == 1)
-
-#ifndef NULL
-#define NULL (void *) 0
-#endif
-
-/*
- * Miscellaneous types
- */
-typedef u32 acpi_status; /* All ACPI Exceptions */
-typedef u32 acpi_name; /* 4-byte ACPI name */
-typedef char *acpi_string; /* Null terminated ASCII string */
-typedef void *acpi_handle; /* Actually a ptr to a NS Node */
-
-/* Owner IDs are used to track namespace nodes for selective deletion */
-
-typedef u8 acpi_owner_id;
-#define ACPI_OWNER_ID_MAX 0xFF
-
-#define ACPI_INTEGER_BIT_SIZE 64
-#define ACPI_MAX_DECIMAL_DIGITS 20 /* 2^64 = 18,446,744,073,709,551,616 */
-
-#if ACPI_MACHINE_WIDTH == 64
-#define ACPI_USE_NATIVE_DIVIDE /* Use compiler native 64-bit divide */
-#endif
-
-#define ACPI_MAX64_DECIMAL_DIGITS 20
-#define ACPI_MAX32_DECIMAL_DIGITS 10
-#define ACPI_MAX16_DECIMAL_DIGITS 5
-#define ACPI_MAX8_DECIMAL_DIGITS 3
-
-/* PM Timer ticks per second (HZ) */
-
-#define PM_TIMER_FREQUENCY 3579545
-
-/*
- * Constants with special meanings
- */
-#define ACPI_ROOT_OBJECT ACPI_ADD_PTR (acpi_handle, NULL, ACPI_MAX_PTR)
-#define ACPI_WAIT_FOREVER 0xFFFF /* u16, as per ACPI spec */
-#define ACPI_DO_NOT_WAIT 0
-
-/*
- * Obsolete: Acpi integer width. In ACPI version 1 (1996), integers are 32 bits.
- * In ACPI version 2 (2000) and later, integers are 64 bits. Note that this
- * pertains to the ACPI integer type only, not to other integers used in the
- * implementation of the ACPICA subsystem.
- *
- * 01/2010: This type is obsolete and has been removed from the entire ACPICA
- * code base. It remains here for compatibility with device drivers that use
- * the type. However, it will be removed in the future.
- */
-typedef u64 acpi_integer;
-#define ACPI_INTEGER_MAX ACPI_UINT64_MAX
-
-/*******************************************************************************
- *
- * Commonly used macros
- *
- ******************************************************************************/
-
-/* Data manipulation */
-
-#define ACPI_LOBYTE(integer) ((u8) (u16)(integer))
-#define ACPI_HIBYTE(integer) ((u8) (((u16)(integer)) >> 8))
-#define ACPI_LOWORD(integer) ((u16) (u32)(integer))
-#define ACPI_HIWORD(integer) ((u16)(((u32)(integer)) >> 16))
-#define ACPI_LODWORD(integer64) ((u32) (u64)(integer64))
-#define ACPI_HIDWORD(integer64) ((u32)(((u64)(integer64)) >> 32))
-
-#define ACPI_SET_BIT(target,bit) ((target) |= (bit))
-#define ACPI_CLEAR_BIT(target,bit) ((target) &= ~(bit))
-#define ACPI_MIN(a,b) (((a)<(b))?(a):(b))
-#define ACPI_MAX(a,b) (((a)>(b))?(a):(b))
-
-/* Size calculation */
-
-#define ACPI_ARRAY_LENGTH(x) (sizeof(x) / sizeof((x)[0]))
-
-/* Pointer manipulation */
-
-#define ACPI_CAST_PTR(t, p) ((t *) (acpi_uintptr_t) (p))
-#define ACPI_CAST_INDIRECT_PTR(t, p) ((t **) (acpi_uintptr_t) (p))
-#define ACPI_ADD_PTR(t, a, b) ACPI_CAST_PTR (t, (ACPI_CAST_PTR (u8, (a)) + (acpi_size)(b)))
-#define ACPI_PTR_DIFF(a, b) (acpi_size) (ACPI_CAST_PTR (u8, (a)) - ACPI_CAST_PTR (u8, (b)))
-
-/* Pointer/Integer type conversions */
-
-#define ACPI_TO_POINTER(i) ACPI_ADD_PTR (void, (void *) NULL,(acpi_size) i)
-#define ACPI_TO_INTEGER(p) ACPI_PTR_DIFF (p, (void *) NULL)
-#define ACPI_OFFSET(d, f) (acpi_size) ACPI_PTR_DIFF (&(((d *)0)->f), (void *) NULL)
-#define ACPI_PHYSADDR_TO_PTR(i) ACPI_TO_POINTER(i)
-#define ACPI_PTR_TO_PHYSADDR(i) ACPI_TO_INTEGER(i)
-
-#ifndef ACPI_MISALIGNMENT_NOT_SUPPORTED
-#define ACPI_COMPARE_NAME(a,b) (*ACPI_CAST_PTR (u32, (a)) == *ACPI_CAST_PTR (u32, (b)))
-#else
-#define ACPI_COMPARE_NAME(a,b) (!ACPI_STRNCMP (ACPI_CAST_PTR (char, (a)), ACPI_CAST_PTR (char, (b)), ACPI_NAME_SIZE))
-#endif
-
-/*******************************************************************************
- *
- * Miscellaneous constants
- *
- ******************************************************************************/
-
-/*
- * Initialization sequence
- */
-#define ACPI_FULL_INITIALIZATION 0x00
-#define ACPI_NO_ADDRESS_SPACE_INIT 0x01
-#define ACPI_NO_EVENT_INIT 0x04
-#define ACPI_NO_HANDLER_INIT 0x08
-#define ACPI_NO_ACPI_ENABLE 0x10
-#define ACPI_NO_DEVICE_INIT 0x20
-#define ACPI_NO_OBJECT_INIT 0x40
-
-/*
- * Initialization state
- */
-#define ACPI_SUBSYSTEM_INITIALIZE 0x01
-#define ACPI_INITIALIZED_OK 0x02
-
-/*
- * Power state values
- */
-#define ACPI_STATE_UNKNOWN (u8) 0xFF
-
-#define ACPI_STATE_S0 (u8) 0
-#define ACPI_STATE_S1 (u8) 1
-#define ACPI_STATE_S2 (u8) 2
-#define ACPI_STATE_S3 (u8) 3
-#define ACPI_STATE_S4 (u8) 4
-#define ACPI_STATE_S5 (u8) 5
-#define ACPI_S_STATES_MAX ACPI_STATE_S5
-#define ACPI_S_STATE_COUNT 6
-
-#define ACPI_STATE_D0 (u8) 0
-#define ACPI_STATE_D1 (u8) 1
-#define ACPI_STATE_D2 (u8) 2
-#define ACPI_STATE_D3_HOT (u8) 3
-#define ACPI_STATE_D3 (u8) 4
-#define ACPI_STATE_D3_COLD ACPI_STATE_D3
-#define ACPI_D_STATES_MAX ACPI_STATE_D3
-#define ACPI_D_STATE_COUNT 5
-
-#define ACPI_STATE_C0 (u8) 0
-#define ACPI_STATE_C1 (u8) 1
-#define ACPI_STATE_C2 (u8) 2
-#define ACPI_STATE_C3 (u8) 3
-#define ACPI_C_STATES_MAX ACPI_STATE_C3
-#define ACPI_C_STATE_COUNT 4
-
-/*
- * Sleep type invalid value
- */
-#define ACPI_SLEEP_TYPE_MAX 0x7
-#define ACPI_SLEEP_TYPE_INVALID 0xFF
-
-/*
- * Sleep/Wake flags
- */
-#define ACPI_NO_OPTIONAL_METHODS 0x00 /* Do not execute any optional methods */
-#define ACPI_EXECUTE_GTS 0x01 /* For enter sleep interface */
-#define ACPI_EXECUTE_BFS 0x02 /* For leave sleep prep interface */
-
-/*
- * Standard notify values
- */
-#define ACPI_NOTIFY_BUS_CHECK (u8) 0x00
-#define ACPI_NOTIFY_DEVICE_CHECK (u8) 0x01
-#define ACPI_NOTIFY_DEVICE_WAKE (u8) 0x02
-#define ACPI_NOTIFY_EJECT_REQUEST (u8) 0x03
-#define ACPI_NOTIFY_DEVICE_CHECK_LIGHT (u8) 0x04
-#define ACPI_NOTIFY_FREQUENCY_MISMATCH (u8) 0x05
-#define ACPI_NOTIFY_BUS_MODE_MISMATCH (u8) 0x06
-#define ACPI_NOTIFY_POWER_FAULT (u8) 0x07
-#define ACPI_NOTIFY_CAPABILITIES_CHECK (u8) 0x08
-#define ACPI_NOTIFY_DEVICE_PLD_CHECK (u8) 0x09
-#define ACPI_NOTIFY_RESERVED (u8) 0x0A
-#define ACPI_NOTIFY_LOCALITY_UPDATE (u8) 0x0B
-#define ACPI_NOTIFY_SHUTDOWN_REQUEST (u8) 0x0C
-
-#define ACPI_NOTIFY_MAX 0x0C
-
-/*
- * Types associated with ACPI names and objects. The first group of
- * values (up to ACPI_TYPE_EXTERNAL_MAX) correspond to the definition
- * of the ACPI object_type() operator (See the ACPI Spec). Therefore,
- * only add to the first group if the spec changes.
- *
- * NOTE: Types must be kept in sync with the global acpi_ns_properties
- * and acpi_ns_type_names arrays.
- */
-typedef u32 acpi_object_type;
-
-#define ACPI_TYPE_ANY 0x00
-#define ACPI_TYPE_INTEGER 0x01 /* Byte/Word/Dword/Zero/One/Ones */
-#define ACPI_TYPE_STRING 0x02
-#define ACPI_TYPE_BUFFER 0x03
-#define ACPI_TYPE_PACKAGE 0x04 /* byte_const, multiple data_term/Constant/super_name */
-#define ACPI_TYPE_FIELD_UNIT 0x05
-#define ACPI_TYPE_DEVICE 0x06 /* Name, multiple Node */
-#define ACPI_TYPE_EVENT 0x07
-#define ACPI_TYPE_METHOD 0x08 /* Name, byte_const, multiple Code */
-#define ACPI_TYPE_MUTEX 0x09
-#define ACPI_TYPE_REGION 0x0A
-#define ACPI_TYPE_POWER 0x0B /* Name,byte_const,word_const,multi Node */
-#define ACPI_TYPE_PROCESSOR 0x0C /* Name,byte_const,Dword_const,byte_const,multi nm_o */
-#define ACPI_TYPE_THERMAL 0x0D /* Name, multiple Node */
-#define ACPI_TYPE_BUFFER_FIELD 0x0E
-#define ACPI_TYPE_DDB_HANDLE 0x0F
-#define ACPI_TYPE_DEBUG_OBJECT 0x10
-
-#define ACPI_TYPE_EXTERNAL_MAX 0x10
-
-/*
- * These are object types that do not map directly to the ACPI
- * object_type() operator. They are used for various internal purposes only.
- * If new predefined ACPI_TYPEs are added (via the ACPI specification), these
- * internal types must move upwards. (There is code that depends on these
- * values being contiguous with the external types above.)
- */
-#define ACPI_TYPE_LOCAL_REGION_FIELD 0x11
-#define ACPI_TYPE_LOCAL_BANK_FIELD 0x12
-#define ACPI_TYPE_LOCAL_INDEX_FIELD 0x13
-#define ACPI_TYPE_LOCAL_REFERENCE 0x14 /* Arg#, Local#, Name, Debug, ref_of, Index */
-#define ACPI_TYPE_LOCAL_ALIAS 0x15
-#define ACPI_TYPE_LOCAL_METHOD_ALIAS 0x16
-#define ACPI_TYPE_LOCAL_NOTIFY 0x17
-#define ACPI_TYPE_LOCAL_ADDRESS_HANDLER 0x18
-#define ACPI_TYPE_LOCAL_RESOURCE 0x19
-#define ACPI_TYPE_LOCAL_RESOURCE_FIELD 0x1A
-#define ACPI_TYPE_LOCAL_SCOPE 0x1B /* 1 Name, multiple object_list Nodes */
-
-#define ACPI_TYPE_NS_NODE_MAX 0x1B /* Last typecode used within a NS Node */
-
-/*
- * These are special object types that never appear in
- * a Namespace node, only in a union acpi_operand_object
- */
-#define ACPI_TYPE_LOCAL_EXTRA 0x1C
-#define ACPI_TYPE_LOCAL_DATA 0x1D
-
-#define ACPI_TYPE_LOCAL_MAX 0x1D
-
-/* All types above here are invalid */
-
-#define ACPI_TYPE_INVALID 0x1E
-#define ACPI_TYPE_NOT_FOUND 0xFF
-
-#define ACPI_NUM_NS_TYPES (ACPI_TYPE_INVALID + 1)
-
-/*
- * All I/O
- */
-#define ACPI_READ 0
-#define ACPI_WRITE 1
-#define ACPI_IO_MASK 1
-
-/*
- * Event Types: Fixed & General Purpose
- */
-typedef u32 acpi_event_type;
-
-/*
- * Fixed events
- */
-#define ACPI_EVENT_PMTIMER 0
-#define ACPI_EVENT_GLOBAL 1
-#define ACPI_EVENT_POWER_BUTTON 2
-#define ACPI_EVENT_SLEEP_BUTTON 3
-#define ACPI_EVENT_RTC 4
-#define ACPI_EVENT_MAX 4
-#define ACPI_NUM_FIXED_EVENTS ACPI_EVENT_MAX + 1
-
-/*
- * Event Status - Per event
- * -------------
- * The encoding of acpi_event_status is illustrated below.
- * Note that a set bit (1) indicates the property is TRUE
- * (e.g. if bit 0 is set then the event is enabled).
- * +-------------+-+-+-+
- * | Bits 31:3 |2|1|0|
- * +-------------+-+-+-+
- * | | | |
- * | | | +- Enabled?
- * | | +--- Enabled for wake?
- * | +----- Set?
- * +----------- <Reserved>
- */
-typedef u32 acpi_event_status;
-
-#define ACPI_EVENT_FLAG_DISABLED (acpi_event_status) 0x00
-#define ACPI_EVENT_FLAG_ENABLED (acpi_event_status) 0x01
-#define ACPI_EVENT_FLAG_WAKE_ENABLED (acpi_event_status) 0x02
-#define ACPI_EVENT_FLAG_SET (acpi_event_status) 0x04
-#define ACPI_EVENT_FLAG_HANDLE (acpi_event_status) 0x08
-
-/*
- * General Purpose Events (GPE)
- */
-#define ACPI_GPE_INVALID 0xFF
-#define ACPI_GPE_MAX 0xFF
-#define ACPI_NUM_GPE 256
-
-/* Actions for acpi_set_gpe_wake_mask, acpi_hw_low_set_gpe */
-
-#define ACPI_GPE_ENABLE 0
-#define ACPI_GPE_DISABLE 1
-#define ACPI_GPE_CONDITIONAL_ENABLE 2
-
-/*
- * GPE info flags - Per GPE
- * +-------+-+-+---+
- * | 7:4 |3|2|1:0|
- * +-------+-+-+---+
- * | | | |
- * | | | +-- Type of dispatch:to method, handler, notify, or none
- * | | +----- Interrupt type: edge or level triggered
- * | +------- Is a Wake GPE
- * +------------ <Reserved>
- */
-#define ACPI_GPE_DISPATCH_NONE (u8) 0x00
-#define ACPI_GPE_DISPATCH_METHOD (u8) 0x01
-#define ACPI_GPE_DISPATCH_HANDLER (u8) 0x02
-#define ACPI_GPE_DISPATCH_NOTIFY (u8) 0x03
-#define ACPI_GPE_DISPATCH_MASK (u8) 0x03
-
-#define ACPI_GPE_LEVEL_TRIGGERED (u8) 0x04
-#define ACPI_GPE_EDGE_TRIGGERED (u8) 0x00
-#define ACPI_GPE_XRUPT_TYPE_MASK (u8) 0x04
-
-#define ACPI_GPE_CAN_WAKE (u8) 0x08
-
-/*
- * Flags for GPE and Lock interfaces
- */
-#define ACPI_NOT_ISR 0x1
-#define ACPI_ISR 0x0
-
-/* Notify types */
-
-#define ACPI_SYSTEM_NOTIFY 0x1
-#define ACPI_DEVICE_NOTIFY 0x2
-#define ACPI_ALL_NOTIFY (ACPI_SYSTEM_NOTIFY | ACPI_DEVICE_NOTIFY)
-#define ACPI_MAX_NOTIFY_HANDLER_TYPE 0x3
-
-#define ACPI_MAX_SYS_NOTIFY 0x7F
-#define ACPI_MAX_DEVICE_SPECIFIC_NOTIFY 0xBF
-
-/* Address Space (Operation Region) Types */
-
-typedef u8 acpi_adr_space_type;
-
-#define ACPI_ADR_SPACE_SYSTEM_MEMORY (acpi_adr_space_type) 0
-#define ACPI_ADR_SPACE_SYSTEM_IO (acpi_adr_space_type) 1
-#define ACPI_ADR_SPACE_PCI_CONFIG (acpi_adr_space_type) 2
-#define ACPI_ADR_SPACE_EC (acpi_adr_space_type) 3
-#define ACPI_ADR_SPACE_SMBUS (acpi_adr_space_type) 4
-#define ACPI_ADR_SPACE_CMOS (acpi_adr_space_type) 5
-#define ACPI_ADR_SPACE_PCI_BAR_TARGET (acpi_adr_space_type) 6
-#define ACPI_ADR_SPACE_IPMI (acpi_adr_space_type) 7
-#define ACPI_ADR_SPACE_GPIO (acpi_adr_space_type) 8
-#define ACPI_ADR_SPACE_GSBUS (acpi_adr_space_type) 9
-
-#define ACPI_NUM_PREDEFINED_REGIONS 10
-
-/*
- * Special Address Spaces
- *
- * Note: A Data Table region is a special type of operation region
- * that has its own AML opcode. However, internally, the AML
- * interpreter simply creates an operation region with an an address
- * space type of ACPI_ADR_SPACE_DATA_TABLE.
- */
-#define ACPI_ADR_SPACE_DATA_TABLE (acpi_adr_space_type) 0x7E /* Internal to ACPICA only */
-#define ACPI_ADR_SPACE_FIXED_HARDWARE (acpi_adr_space_type) 0x7F
-
-/* Values for _REG connection code */
-
-#define ACPI_REG_DISCONNECT 0
-#define ACPI_REG_CONNECT 1
-
-/*
- * bit_register IDs
- *
- * These values are intended to be used by the hardware interfaces
- * and are mapped to individual bitfields defined within the ACPI
- * registers. See the acpi_gbl_bit_register_info global table in utglobal.c
- * for this mapping.
- */
-
-/* PM1 Status register */
-
-#define ACPI_BITREG_TIMER_STATUS 0x00
-#define ACPI_BITREG_BUS_MASTER_STATUS 0x01
-#define ACPI_BITREG_GLOBAL_LOCK_STATUS 0x02
-#define ACPI_BITREG_POWER_BUTTON_STATUS 0x03
-#define ACPI_BITREG_SLEEP_BUTTON_STATUS 0x04
-#define ACPI_BITREG_RT_CLOCK_STATUS 0x05
-#define ACPI_BITREG_WAKE_STATUS 0x06
-#define ACPI_BITREG_PCIEXP_WAKE_STATUS 0x07
-
-/* PM1 Enable register */
-
-#define ACPI_BITREG_TIMER_ENABLE 0x08
-#define ACPI_BITREG_GLOBAL_LOCK_ENABLE 0x09
-#define ACPI_BITREG_POWER_BUTTON_ENABLE 0x0A
-#define ACPI_BITREG_SLEEP_BUTTON_ENABLE 0x0B
-#define ACPI_BITREG_RT_CLOCK_ENABLE 0x0C
-#define ACPI_BITREG_PCIEXP_WAKE_DISABLE 0x0D
-
-/* PM1 Control register */
-
-#define ACPI_BITREG_SCI_ENABLE 0x0E
-#define ACPI_BITREG_BUS_MASTER_RLD 0x0F
-#define ACPI_BITREG_GLOBAL_LOCK_RELEASE 0x10
-#define ACPI_BITREG_SLEEP_TYPE 0x11
-#define ACPI_BITREG_SLEEP_ENABLE 0x12
-
-/* PM2 Control register */
-
-#define ACPI_BITREG_ARB_DISABLE 0x13
-
-#define ACPI_BITREG_MAX 0x13
-#define ACPI_NUM_BITREG ACPI_BITREG_MAX + 1
-
-/* Status register values. A 1 clears a status bit. 0 = no effect */
-
-#define ACPI_CLEAR_STATUS 1
-
-/* Enable and Control register values */
-
-#define ACPI_ENABLE_EVENT 1
-#define ACPI_DISABLE_EVENT 0
-
-/* Sleep function dispatch */
-
-typedef acpi_status(*ACPI_SLEEP_FUNCTION) (u8 sleep_state, u8 flags);
-
-struct acpi_sleep_functions {
- ACPI_SLEEP_FUNCTION legacy_function;
- ACPI_SLEEP_FUNCTION extended_function;
-};
-
-/*
- * External ACPI object definition
- */
-
-/*
- * Note: Type == ACPI_TYPE_ANY (0) is used to indicate a NULL package element
- * or an unresolved named reference.
- */
-union acpi_object {
- acpi_object_type type; /* See definition of acpi_ns_type for values */
- struct {
- acpi_object_type type; /* ACPI_TYPE_INTEGER */
- u64 value; /* The actual number */
- } integer;
-
- struct {
- acpi_object_type type; /* ACPI_TYPE_STRING */
- u32 length; /* # of bytes in string, excluding trailing null */
- char *pointer; /* points to the string value */
- } string;
-
- struct {
- acpi_object_type type; /* ACPI_TYPE_BUFFER */
- u32 length; /* # of bytes in buffer */
- u8 *pointer; /* points to the buffer */
- } buffer;
-
- struct {
- acpi_object_type type; /* ACPI_TYPE_PACKAGE */
- u32 count; /* # of elements in package */
- union acpi_object *elements; /* Pointer to an array of ACPI_OBJECTs */
- } package;
-
- struct {
- acpi_object_type type; /* ACPI_TYPE_LOCAL_REFERENCE */
- acpi_object_type actual_type; /* Type associated with the Handle */
- acpi_handle handle; /* object reference */
- } reference;
-
- struct {
- acpi_object_type type; /* ACPI_TYPE_PROCESSOR */
- u32 proc_id;
- acpi_io_address pblk_address;
- u32 pblk_length;
- } processor;
-
- struct {
- acpi_object_type type; /* ACPI_TYPE_POWER */
- u32 system_level;
- u32 resource_order;
- } power_resource;
-};
-
-/*
- * List of objects, used as a parameter list for control method evaluation
- */
-struct acpi_object_list {
- u32 count;
- union acpi_object *pointer;
-};
-
-/*
- * Miscellaneous common Data Structures used by the interfaces
- */
-#define ACPI_NO_BUFFER 0
-#define ACPI_ALLOCATE_BUFFER (acpi_size) (-1)
-#define ACPI_ALLOCATE_LOCAL_BUFFER (acpi_size) (-2)
-
-struct acpi_buffer {
- acpi_size length; /* Length in bytes of the buffer */
- void *pointer; /* pointer to buffer */
-};
-
-/*
- * name_type for acpi_get_name
- */
-#define ACPI_FULL_PATHNAME 0
-#define ACPI_SINGLE_NAME 1
-#define ACPI_NAME_TYPE_MAX 1
-
-/*
- * Predefined Namespace items
- */
-struct acpi_predefined_names {
- char *name;
- u8 type;
- char *val;
-};
-
-/*
- * Structure and flags for acpi_get_system_info
- */
-#define ACPI_SYS_MODE_UNKNOWN 0x0000
-#define ACPI_SYS_MODE_ACPI 0x0001
-#define ACPI_SYS_MODE_LEGACY 0x0002
-#define ACPI_SYS_MODES_MASK 0x0003
-
-/*
- * System info returned by acpi_get_system_info()
- */
-struct acpi_system_info {
- u32 acpi_ca_version;
- u32 flags;
- u32 timer_resolution;
- u32 reserved1;
- u32 reserved2;
- u32 debug_level;
- u32 debug_layer;
-};
-
-/* Table Event Types */
-
-#define ACPI_TABLE_EVENT_LOAD 0x0
-#define ACPI_TABLE_EVENT_UNLOAD 0x1
-#define ACPI_NUM_TABLE_EVENTS 2
-
-/*
- * Types specific to the OS service interfaces
- */
-typedef u32(ACPI_SYSTEM_XFACE * acpi_osd_handler) (void *context);
-
-typedef void
- (ACPI_SYSTEM_XFACE * acpi_osd_exec_callback) (void *context);
-
-/*
- * Various handlers and callback procedures
- */
-typedef
-void (*ACPI_GBL_EVENT_HANDLER) (u32 event_type,
- acpi_handle device,
- u32 event_number, void *context);
-
-#define ACPI_EVENT_TYPE_GPE 0
-#define ACPI_EVENT_TYPE_FIXED 1
-
-typedef u32(*acpi_event_handler) (void *context);
-
-typedef
-u32 (*acpi_gpe_handler) (acpi_handle gpe_device, u32 gpe_number, void *context);
-
-typedef
-void (*acpi_notify_handler) (acpi_handle device, u32 value, void *context);
-
-typedef
-void (*acpi_object_handler) (acpi_handle object, void *data);
-
-typedef acpi_status(*acpi_init_handler) (acpi_handle object, u32 function);
-
-#define ACPI_INIT_DEVICE_INI 1
-
-typedef
-acpi_status(*acpi_exception_handler) (acpi_status aml_status,
- acpi_name name,
- u16 opcode,
- u32 aml_offset, void *context);
-
-/* Table Event handler (Load, load_table, etc.) and types */
-
-typedef
-acpi_status(*acpi_tbl_handler) (u32 event, void *table, void *context);
-
-/* Address Spaces (For Operation Regions) */
-
-typedef
-acpi_status(*acpi_adr_space_handler) (u32 function,
- acpi_physical_address address,
- u32 bit_width,
- u64 *value,
- void *handler_context,
- void *region_context);
-
-#define ACPI_DEFAULT_HANDLER NULL
-
-/* Special Context data for generic_serial_bus/general_purpose_io (ACPI 5.0) */
-
-struct acpi_connection_info {
- u8 *connection;
- u16 length;
- u8 access_length;
-};
-
-typedef
-acpi_status(*acpi_adr_space_setup) (acpi_handle region_handle,
- u32 function,
- void *handler_context,
- void **region_context);
-
-#define ACPI_REGION_ACTIVATE 0
-#define ACPI_REGION_DEACTIVATE 1
-
-typedef
-acpi_status(*acpi_walk_callback) (acpi_handle object,
- u32 nesting_level,
- void *context, void **return_value);
-
-typedef
-u32 (*acpi_interface_handler) (acpi_string interface_name, u32 supported);
-
-/* Interrupt handler return values */
-
-#define ACPI_INTERRUPT_NOT_HANDLED 0x00
-#define ACPI_INTERRUPT_HANDLED 0x01
-
-/* GPE handler return values */
-
-#define ACPI_REENABLE_GPE 0x80
-
-/* Length of 32-bit EISAID values when converted back to a string */
-
-#define ACPI_EISAID_STRING_SIZE 8 /* Includes null terminator */
-
-/* Length of UUID (string) values */
-
-#define ACPI_UUID_LENGTH 16
-
-/* Structures used for device/processor HID, UID, CID */
-
-struct acpica_device_id {
- u32 length; /* Length of string + null */
- char *string;
-};
-
-struct acpica_device_id_list {
- u32 count; /* Number of IDs in Ids array */
- u32 list_size; /* Size of list, including ID strings */
- struct acpica_device_id ids[1]; /* ID array */
-};
-
-/*
- * Structure returned from acpi_get_object_info.
- * Optimized for both 32- and 64-bit builds
- */
-struct acpi_device_info {
- u32 info_size; /* Size of info, including ID strings */
- u32 name; /* ACPI object Name */
- acpi_object_type type; /* ACPI object Type */
- u8 param_count; /* If a method, required parameter count */
- u8 valid; /* Indicates which optional fields are valid */
- u8 flags; /* Miscellaneous info */
- u8 highest_dstates[4]; /* _sx_d values: 0xFF indicates not valid */
- u8 lowest_dstates[5]; /* _sx_w values: 0xFF indicates not valid */
- u32 current_status; /* _STA value */
- u64 address; /* _ADR value */
- struct acpica_device_id hardware_id; /* _HID value */
- struct acpica_device_id unique_id; /* _UID value */
- struct acpica_device_id_list compatible_id_list; /* _CID list <must be last> */
-};
-
-/* Values for Flags field above (acpi_get_object_info) */
-
-#define ACPI_PCI_ROOT_BRIDGE 0x01
-
-/* Flags for Valid field above (acpi_get_object_info) */
-
-#define ACPI_VALID_STA 0x01
-#define ACPI_VALID_ADR 0x02
-#define ACPI_VALID_HID 0x04
-#define ACPI_VALID_UID 0x08
-#define ACPI_VALID_CID 0x10
-#define ACPI_VALID_SXDS 0x20
-#define ACPI_VALID_SXWS 0x40
-
-/* Flags for _STA method */
-
-#define ACPI_STA_DEVICE_PRESENT 0x01
-#define ACPI_STA_DEVICE_ENABLED 0x02
-#define ACPI_STA_DEVICE_UI 0x04
-#define ACPI_STA_DEVICE_FUNCTIONING 0x08
-#define ACPI_STA_DEVICE_OK 0x08 /* Synonym */
-#define ACPI_STA_BATTERY_PRESENT 0x10
-
-/* Context structs for address space handlers */
-
-struct acpi_pci_id {
- u16 segment;
- u16 bus;
- u16 device;
- u16 function;
-};
-
-struct acpi_mem_space_context {
- u32 length;
- acpi_physical_address address;
- acpi_physical_address mapped_physical_address;
- u8 *mapped_logical_address;
- acpi_size mapped_length;
-};
-
-/*
- * struct acpi_memory_list is used only if the ACPICA local cache is enabled
- */
-struct acpi_memory_list {
- char *list_name;
- void *list_head;
- u16 object_size;
- u16 max_depth;
- u16 current_depth;
- u16 link_offset;
-
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
-
- /* Statistics for debug memory tracking only */
-
- u32 total_allocated;
- u32 total_freed;
- u32 max_occupied;
- u32 total_size;
- u32 current_total_size;
- u32 requests;
- u32 hits;
-#endif
-};
-
-#endif /* __ACTYPES_H__ */
diff --git a/ANDROID_3.4.5/include/acpi/apei.h b/ANDROID_3.4.5/include/acpi/apei.h
deleted file mode 100644
index 04f349d8..00000000
--- a/ANDROID_3.4.5/include/acpi/apei.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * apei.h - ACPI Platform Error Interface
- */
-
-#ifndef ACPI_APEI_H
-#define ACPI_APEI_H
-
-#include <linux/acpi.h>
-#include <linux/cper.h>
-#include <asm/ioctls.h>
-
-#define APEI_ERST_INVALID_RECORD_ID 0xffffffffffffffffULL
-
-#define APEI_ERST_CLEAR_RECORD _IOW('E', 1, u64)
-#define APEI_ERST_GET_RECORD_COUNT _IOR('E', 2, u32)
-
-#ifdef __KERNEL__
-
-extern bool hest_disable;
-extern int erst_disable;
-#ifdef CONFIG_ACPI_APEI_GHES
-extern bool ghes_disable;
-#else
-#define ghes_disable 1
-#endif
-
-#ifdef CONFIG_ACPI_APEI
-void __init acpi_hest_init(void);
-#else
-static inline void acpi_hest_init(void) { return; }
-#endif
-
-typedef int (*apei_hest_func_t)(struct acpi_hest_header *hest_hdr, void *data);
-int apei_hest_parse(apei_hest_func_t func, void *data);
-
-int erst_write(const struct cper_record_header *record);
-ssize_t erst_get_record_count(void);
-int erst_get_record_id_begin(int *pos);
-int erst_get_record_id_next(int *pos, u64 *record_id);
-void erst_get_record_id_end(void);
-ssize_t erst_read(u64 record_id, struct cper_record_header *record,
- size_t buflen);
-int erst_clear(u64 record_id);
-
-#endif
-#endif
diff --git a/ANDROID_3.4.5/include/acpi/button.h b/ANDROID_3.4.5/include/acpi/button.h
deleted file mode 100644
index 97eea0e4..00000000
--- a/ANDROID_3.4.5/include/acpi/button.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef ACPI_BUTTON_H
-#define ACPI_BUTTON_H
-
-#include <linux/notifier.h>
-
-#if defined(CONFIG_ACPI_BUTTON) || defined(CONFIG_ACPI_BUTTON_MODULE)
-extern int acpi_lid_notifier_register(struct notifier_block *nb);
-extern int acpi_lid_notifier_unregister(struct notifier_block *nb);
-extern int acpi_lid_open(void);
-#else
-static inline int acpi_lid_notifier_register(struct notifier_block *nb)
-{
- return 0;
-}
-static inline int acpi_lid_notifier_unregister(struct notifier_block *nb)
-{
- return 0;
-}
-static inline int acpi_lid_open(void)
-{
- return 1;
-}
-#endif /* defined(CONFIG_ACPI_BUTTON) || defined(CONFIG_ACPI_BUTTON_MODULE) */
-
-#endif /* ACPI_BUTTON_H */
diff --git a/ANDROID_3.4.5/include/acpi/container.h b/ANDROID_3.4.5/include/acpi/container.h
deleted file mode 100644
index a703f14e..00000000
--- a/ANDROID_3.4.5/include/acpi/container.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef __ACPI_CONTAINER_H
-#define __ACPI_CONTAINER_H
-
-#include <linux/kernel.h>
-
-struct acpi_container {
- acpi_handle handle;
- unsigned long sun;
- int state;
-};
-
-#endif /* __ACPI_CONTAINER_H */
diff --git a/ANDROID_3.4.5/include/acpi/hed.h b/ANDROID_3.4.5/include/acpi/hed.h
deleted file mode 100644
index 46e1249b..00000000
--- a/ANDROID_3.4.5/include/acpi/hed.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * hed.h - ACPI Hardware Error Device
- *
- * Copyright (C) 2009, Intel Corp.
- * Author: Huang Ying <ying.huang@intel.com>
- *
- * This file is released under the GPLv2.
- */
-
-#ifndef ACPI_HED_H
-#define ACPI_HED_H
-
-#include <linux/notifier.h>
-
-int register_acpi_hed_notifier(struct notifier_block *nb);
-void unregister_acpi_hed_notifier(struct notifier_block *nb);
-
-#endif
diff --git a/ANDROID_3.4.5/include/acpi/pdc_intel.h b/ANDROID_3.4.5/include/acpi/pdc_intel.h
deleted file mode 100644
index 552637b0..00000000
--- a/ANDROID_3.4.5/include/acpi/pdc_intel.h
+++ /dev/null
@@ -1,35 +0,0 @@
-
-/* _PDC bit definition for Intel processors */
-
-#ifndef __PDC_INTEL_H__
-#define __PDC_INTEL_H__
-
-#define ACPI_PDC_P_FFH (0x0001)
-#define ACPI_PDC_C_C1_HALT (0x0002)
-#define ACPI_PDC_T_FFH (0x0004)
-#define ACPI_PDC_SMP_C1PT (0x0008)
-#define ACPI_PDC_SMP_C2C3 (0x0010)
-#define ACPI_PDC_SMP_P_SWCOORD (0x0020)
-#define ACPI_PDC_SMP_C_SWCOORD (0x0040)
-#define ACPI_PDC_SMP_T_SWCOORD (0x0080)
-#define ACPI_PDC_C_C1_FFH (0x0100)
-#define ACPI_PDC_C_C2C3_FFH (0x0200)
-#define ACPI_PDC_SMP_P_HWCOORD (0x0800)
-
-#define ACPI_PDC_EST_CAPABILITY_SMP (ACPI_PDC_SMP_C1PT | \
- ACPI_PDC_C_C1_HALT | \
- ACPI_PDC_P_FFH)
-
-#define ACPI_PDC_EST_CAPABILITY_SWSMP (ACPI_PDC_SMP_C1PT | \
- ACPI_PDC_C_C1_HALT | \
- ACPI_PDC_SMP_P_SWCOORD | \
- ACPI_PDC_SMP_P_HWCOORD | \
- ACPI_PDC_P_FFH)
-
-#define ACPI_PDC_C_CAPABILITY_SMP (ACPI_PDC_SMP_C2C3 | \
- ACPI_PDC_SMP_C1PT | \
- ACPI_PDC_C_C1_HALT | \
- ACPI_PDC_C_C1_FFH | \
- ACPI_PDC_C_C2C3_FFH)
-
-#endif /* __PDC_INTEL_H__ */
diff --git a/ANDROID_3.4.5/include/acpi/platform/acenv.h b/ANDROID_3.4.5/include/acpi/platform/acenv.h
deleted file mode 100644
index 5af3ed52..00000000
--- a/ANDROID_3.4.5/include/acpi/platform/acenv.h
+++ /dev/null
@@ -1,380 +0,0 @@
-/******************************************************************************
- *
- * Name: acenv.h - Generation environment specific items
- *
- *****************************************************************************/
-
-/*
- * Copyright (C) 2000 - 2011, Intel Corp.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions, and the following disclaimer,
- * without modification.
- * 2. Redistributions in binary form must reproduce at minimum a disclaimer
- * substantially similar to the "NO WARRANTY" disclaimer below
- * ("Disclaimer") and any redistribution must be conditioned upon
- * including a substantially similar Disclaimer requirement for further
- * binary redistribution.
- * 3. Neither the names of the above-listed copyright holders nor the names
- * of any contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") version 2 as published by the Free
- * Software Foundation.
- *
- * NO WARRANTY
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- */
-
-#ifndef __ACENV_H__
-#define __ACENV_H__
-
-/* Types for ACPI_MUTEX_TYPE */
-
-#define ACPI_BINARY_SEMAPHORE 0
-#define ACPI_OSL_MUTEX 1
-
-/* Types for DEBUGGER_THREADING */
-
-#define DEBUGGER_SINGLE_THREADED 0
-#define DEBUGGER_MULTI_THREADED 1
-
-/******************************************************************************
- *
- * Configuration for ACPI tools and utilities
- *
- *****************************************************************************/
-
-#ifdef ACPI_LIBRARY
-/*
- * Note: The non-debug version of the acpi_library does not contain any
- * debug support, for minimal size. The debug version uses ACPI_FULL_DEBUG
- */
-#define ACPI_USE_LOCAL_CACHE
-#endif
-
-#ifdef ACPI_ASL_COMPILER
-#define ACPI_DEBUG_OUTPUT
-#define ACPI_APPLICATION
-#define ACPI_DISASSEMBLER
-#define ACPI_CONSTANT_EVAL_ONLY
-#define ACPI_LARGE_NAMESPACE_NODE
-#define ACPI_DATA_TABLE_DISASSEMBLY
-#endif
-
-#ifdef ACPI_EXEC_APP
-#undef DEBUGGER_THREADING
-#define DEBUGGER_THREADING DEBUGGER_SINGLE_THREADED
-#define ACPI_FULL_DEBUG
-#define ACPI_APPLICATION
-#define ACPI_DEBUGGER
-#define ACPI_MUTEX_DEBUG
-#define ACPI_DBG_TRACK_ALLOCATIONS
-#endif
-
-#ifdef ACPI_APPLICATION
-#define ACPI_USE_SYSTEM_CLIBRARY
-#define ACPI_USE_LOCAL_CACHE
-#endif
-
-#ifdef ACPI_FULL_DEBUG
-#define ACPI_DEBUGGER
-#define ACPI_DEBUG_OUTPUT
-#define ACPI_DISASSEMBLER
-#endif
-
-/*
- * Environment configuration. The purpose of this file is to interface to the
- * local generation environment.
- *
- * 1) ACPI_USE_SYSTEM_CLIBRARY - Define this if linking to an actual C library.
- * Otherwise, local versions of string/memory functions will be used.
- * 2) ACPI_USE_STANDARD_HEADERS - Define this if linking to a C library and
- * the standard header files may be used.
- *
- * The ACPI subsystem only uses low level C library functions that do not call
- * operating system services and may therefore be inlined in the code.
- *
- * It may be necessary to tailor these include files to the target
- * generation environment.
- *
- *
- * Functions and constants used from each header:
- *
- * string.h: memcpy
- * memset
- * strcat
- * strcmp
- * strcpy
- * strlen
- * strncmp
- * strncat
- * strncpy
- *
- * stdlib.h: strtoul
- *
- * stdarg.h: va_list
- * va_arg
- * va_start
- * va_end
- *
- */
-
-/*! [Begin] no source code translation */
-
-#if defined(_LINUX) || defined(__linux__)
-#include "aclinux.h"
-
-#elif defined(_AED_EFI)
-#include "acefi.h"
-
-#elif defined(WIN32)
-#include "acwin.h"
-
-#elif defined(WIN64)
-#include "acwin64.h"
-
-#elif defined(MSDOS) /* Must appear after WIN32 and WIN64 check */
-#include "acdos16.h"
-
-#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
-#include "acfreebsd.h"
-
-#elif defined(__NetBSD__)
-#include "acnetbsd.h"
-
-#elif defined(MODESTO)
-#include "acmodesto.h"
-
-#elif defined(NETWARE)
-#include "acnetware.h"
-
-#elif defined(__sun)
-#include "acsolaris.h"
-
-#else
-
-/* All other environments */
-
-#define ACPI_USE_STANDARD_HEADERS
-
-#define COMPILER_DEPENDENT_INT64 long long
-#define COMPILER_DEPENDENT_UINT64 unsigned long long
-
-#endif
-
-/*! [End] no source code translation !*/
-
-/******************************************************************************
- *
- * Miscellaneous configuration
- *
- *****************************************************************************/
-
-/*
- * Are mutexes supported by the host? default is no, use binary semaphores.
- */
-#ifndef ACPI_MUTEX_TYPE
-#define ACPI_MUTEX_TYPE ACPI_BINARY_SEMAPHORE
-#endif
-
-/* "inline" keywords - configurable since inline is not standardized */
-
-#ifndef ACPI_INLINE
-#define ACPI_INLINE
-#endif
-
-/*
- * Debugger threading model
- * Use single threaded if the entire subsystem is contained in an application
- * Use multiple threaded when the subsystem is running in the kernel.
- *
- * By default the model is single threaded if ACPI_APPLICATION is set,
- * multi-threaded if ACPI_APPLICATION is not set.
- */
-#ifndef DEBUGGER_THREADING
-#ifdef ACPI_APPLICATION
-#define DEBUGGER_THREADING DEBUGGER_SINGLE_THREADED
-
-#else
-#define DEBUGGER_THREADING DEBUGGER_MULTI_THREADED
-#endif
-#endif /* !DEBUGGER_THREADING */
-
-/******************************************************************************
- *
- * C library configuration
- *
- *****************************************************************************/
-
-#define ACPI_IS_ASCII(c) ((c) < 0x80)
-
-#ifdef ACPI_USE_SYSTEM_CLIBRARY
-/*
- * Use the standard C library headers.
- * We want to keep these to a minimum.
- */
-#ifdef ACPI_USE_STANDARD_HEADERS
-/*
- * Use the standard headers from the standard locations
- */
-#include <stdarg.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-
-#endif /* ACPI_USE_STANDARD_HEADERS */
-
-/*
- * We will be linking to the standard Clib functions
- */
-#define ACPI_STRSTR(s1,s2) strstr((s1), (s2))
-#define ACPI_STRCHR(s1,c) strchr((s1), (c))
-#define ACPI_STRLEN(s) (acpi_size) strlen((s))
-#define ACPI_STRCPY(d,s) (void) strcpy((d), (s))
-#define ACPI_STRNCPY(d,s,n) (void) strncpy((d), (s), (acpi_size)(n))
-#define ACPI_STRNCMP(d,s,n) strncmp((d), (s), (acpi_size)(n))
-#define ACPI_STRCMP(d,s) strcmp((d), (s))
-#define ACPI_STRCAT(d,s) (void) strcat((d), (s))
-#define ACPI_STRNCAT(d,s,n) strncat((d), (s), (acpi_size)(n))
-#define ACPI_STRTOUL(d,s,n) strtoul((d), (s), (acpi_size)(n))
-#define ACPI_MEMCMP(s1,s2,n) memcmp((const char *)(s1), (const char *)(s2), (acpi_size)(n))
-#define ACPI_MEMCPY(d,s,n) (void) memcpy((d), (s), (acpi_size)(n))
-#define ACPI_MEMSET(d,s,n) (void) memset((d), (s), (acpi_size)(n))
-
-#define ACPI_TOUPPER(i) toupper((int) (i))
-#define ACPI_TOLOWER(i) tolower((int) (i))
-#define ACPI_IS_XDIGIT(i) isxdigit((int) (i))
-#define ACPI_IS_DIGIT(i) isdigit((int) (i))
-#define ACPI_IS_SPACE(i) isspace((int) (i))
-#define ACPI_IS_UPPER(i) isupper((int) (i))
-#define ACPI_IS_PRINT(i) isprint((int) (i))
-#define ACPI_IS_ALPHA(i) isalpha((int) (i))
-
-#else
-
-/******************************************************************************
- *
- * Not using native C library, use local implementations
- *
- *****************************************************************************/
-
- /*
- * Use local definitions of C library macros and functions
- * NOTE: The function implementations may not be as efficient
- * as an inline or assembly code implementation provided by a
- * native C library.
- */
-
-#ifndef va_arg
-
-#ifndef _VALIST
-#define _VALIST
-typedef char *va_list;
-#endif /* _VALIST */
-
-/*
- * Storage alignment properties
- */
-#define _AUPBND (sizeof (acpi_native_int) - 1)
-#define _ADNBND (sizeof (acpi_native_int) - 1)
-
-/*
- * Variable argument list macro definitions
- */
-#define _bnd(X, bnd) (((sizeof (X)) + (bnd)) & (~(bnd)))
-#define va_arg(ap, T) (*(T *)(((ap) += (_bnd (T, _AUPBND))) - (_bnd (T,_ADNBND))))
-#define va_end(ap) (void) 0
-#define va_start(ap, A) (void) ((ap) = (((char *) &(A)) + (_bnd (A,_AUPBND))))
-
-#endif /* va_arg */
-
-#define ACPI_STRSTR(s1,s2) acpi_ut_strstr ((s1), (s2))
-#define ACPI_STRCHR(s1,c) acpi_ut_strchr ((s1), (c))
-#define ACPI_STRLEN(s) (acpi_size) acpi_ut_strlen ((s))
-#define ACPI_STRCPY(d,s) (void) acpi_ut_strcpy ((d), (s))
-#define ACPI_STRNCPY(d,s,n) (void) acpi_ut_strncpy ((d), (s), (acpi_size)(n))
-#define ACPI_STRNCMP(d,s,n) acpi_ut_strncmp ((d), (s), (acpi_size)(n))
-#define ACPI_STRCMP(d,s) acpi_ut_strcmp ((d), (s))
-#define ACPI_STRCAT(d,s) (void) acpi_ut_strcat ((d), (s))
-#define ACPI_STRNCAT(d,s,n) acpi_ut_strncat ((d), (s), (acpi_size)(n))
-#define ACPI_STRTOUL(d,s,n) acpi_ut_strtoul ((d), (s), (acpi_size)(n))
-#define ACPI_MEMCMP(s1,s2,n) acpi_ut_memcmp((const char *)(s1), (const char *)(s2), (acpi_size)(n))
-#define ACPI_MEMCPY(d,s,n) (void) acpi_ut_memcpy ((d), (s), (acpi_size)(n))
-#define ACPI_MEMSET(d,v,n) (void) acpi_ut_memset ((d), (v), (acpi_size)(n))
-#define ACPI_TOUPPER(c) acpi_ut_to_upper ((int) (c))
-#define ACPI_TOLOWER(c) acpi_ut_to_lower ((int) (c))
-
-#endif /* ACPI_USE_SYSTEM_CLIBRARY */
-
-/******************************************************************************
- *
- * Assembly code macros
- *
- *****************************************************************************/
-
-/*
- * Handle platform- and compiler-specific assembly language differences.
- * These should already have been defined by the platform includes above.
- *
- * Notes:
- * 1) Interrupt 3 is used to break into a debugger
- * 2) Interrupts are turned off during ACPI register setup
- */
-
-/* Unrecognized compiler, use defaults */
-
-#ifndef ACPI_ASM_MACROS
-
-/*
- * Calling conventions:
- *
- * ACPI_SYSTEM_XFACE - Interfaces to host OS (handlers, threads)
- * ACPI_EXTERNAL_XFACE - External ACPI interfaces
- * ACPI_INTERNAL_XFACE - Internal ACPI interfaces
- * ACPI_INTERNAL_VAR_XFACE - Internal variable-parameter list interfaces
- */
-#define ACPI_SYSTEM_XFACE
-#define ACPI_EXTERNAL_XFACE
-#define ACPI_INTERNAL_XFACE
-#define ACPI_INTERNAL_VAR_XFACE
-
-#define ACPI_ASM_MACROS
-#define BREAKPOINT3
-#define ACPI_DISABLE_IRQS()
-#define ACPI_ENABLE_IRQS()
-#define ACPI_ACQUIRE_GLOBAL_LOCK(Glptr, acq)
-#define ACPI_RELEASE_GLOBAL_LOCK(Glptr, acq)
-
-#endif /* ACPI_ASM_MACROS */
-
-#ifdef ACPI_APPLICATION
-
-/* Don't want software interrupts within a ring3 application */
-
-#undef BREAKPOINT3
-#define BREAKPOINT3
-#endif
-
-/******************************************************************************
- *
- * Compiler-specific information is contained in the compiler-specific
- * headers.
- *
- *****************************************************************************/
-#endif /* __ACENV_H__ */
diff --git a/ANDROID_3.4.5/include/acpi/platform/acgcc.h b/ANDROID_3.4.5/include/acpi/platform/acgcc.h
deleted file mode 100644
index e2288935..00000000
--- a/ANDROID_3.4.5/include/acpi/platform/acgcc.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/******************************************************************************
- *
- * Name: acgcc.h - GCC specific defines, etc.
- *
- *****************************************************************************/
-
-/*
- * Copyright (C) 2000 - 2011, Intel Corp.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions, and the following disclaimer,
- * without modification.
- * 2. Redistributions in binary form must reproduce at minimum a disclaimer
- * substantially similar to the "NO WARRANTY" disclaimer below
- * ("Disclaimer") and any redistribution must be conditioned upon
- * including a substantially similar Disclaimer requirement for further
- * binary redistribution.
- * 3. Neither the names of the above-listed copyright holders nor the names
- * of any contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") version 2 as published by the Free
- * Software Foundation.
- *
- * NO WARRANTY
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- */
-
-#ifndef __ACGCC_H__
-#define __ACGCC_H__
-
-#define ACPI_INLINE __inline__
-
-/* Function name is used for debug output. Non-ANSI, compiler-dependent */
-
-#define ACPI_GET_FUNCTION_NAME __func__
-
-/*
- * This macro is used to tag functions as "printf-like" because
- * some compilers (like GCC) can catch printf format string problems.
- */
-#define ACPI_PRINTF_LIKE(c) __attribute__ ((__format__ (__printf__, c, c+1)))
-
-/*
- * Some compilers complain about unused variables. Sometimes we don't want to
- * use all the variables (for example, _acpi_module_name). This allows us
- * to tell the compiler warning in a per-variable manner that a variable
- * is unused.
- */
-#define ACPI_UNUSED_VAR __attribute__ ((unused))
-
-#ifdef _ANSI
-#define inline
-#endif
-
-#endif /* __ACGCC_H__ */
diff --git a/ANDROID_3.4.5/include/acpi/platform/aclinux.h b/ANDROID_3.4.5/include/acpi/platform/aclinux.h
deleted file mode 100644
index 6fbc4cab..00000000
--- a/ANDROID_3.4.5/include/acpi/platform/aclinux.h
+++ /dev/null
@@ -1,180 +0,0 @@
-/******************************************************************************
- *
- * Name: aclinux.h - OS specific defines, etc. for Linux
- *
- *****************************************************************************/
-
-/*
- * Copyright (C) 2000 - 2011, Intel Corp.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions, and the following disclaimer,
- * without modification.
- * 2. Redistributions in binary form must reproduce at minimum a disclaimer
- * substantially similar to the "NO WARRANTY" disclaimer below
- * ("Disclaimer") and any redistribution must be conditioned upon
- * including a substantially similar Disclaimer requirement for further
- * binary redistribution.
- * 3. Neither the names of the above-listed copyright holders nor the names
- * of any contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") version 2 as published by the Free
- * Software Foundation.
- *
- * NO WARRANTY
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- */
-
-#ifndef __ACLINUX_H__
-#define __ACLINUX_H__
-
-/* Common (in-kernel/user-space) ACPICA configuration */
-
-#define ACPI_USE_SYSTEM_CLIBRARY
-#define ACPI_USE_DO_WHILE_0
-#define ACPI_MUTEX_TYPE ACPI_BINARY_SEMAPHORE
-
-
-#ifdef __KERNEL__
-
-#include <linux/string.h>
-#include <linux/kernel.h>
-#include <linux/ctype.h>
-#include <linux/sched.h>
-#include <linux/atomic.h>
-#include <asm/div64.h>
-#include <asm/acpi.h>
-#include <linux/slab.h>
-#include <linux/spinlock_types.h>
-#include <asm/current.h>
-
-/* Host-dependent types and defines for in-kernel ACPICA */
-
-#define ACPI_MACHINE_WIDTH BITS_PER_LONG
-#define ACPI_EXPORT_SYMBOL(symbol) EXPORT_SYMBOL(symbol);
-#define strtoul simple_strtoul
-
-#define acpi_cache_t struct kmem_cache
-#define acpi_spinlock spinlock_t *
-#define acpi_cpu_flags unsigned long
-
-#else /* !__KERNEL__ */
-
-#include <stdarg.h>
-#include <string.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <unistd.h>
-
-/* Host-dependent types and defines for user-space ACPICA */
-
-#define ACPI_FLUSH_CPU_CACHE()
-#define ACPI_CAST_PTHREAD_T(pthread) ((acpi_thread_id) (pthread))
-
-#if defined(__ia64__) || defined(__x86_64__)
-#define ACPI_MACHINE_WIDTH 64
-#define COMPILER_DEPENDENT_INT64 long
-#define COMPILER_DEPENDENT_UINT64 unsigned long
-#else
-#define ACPI_MACHINE_WIDTH 32
-#define COMPILER_DEPENDENT_INT64 long long
-#define COMPILER_DEPENDENT_UINT64 unsigned long long
-#define ACPI_USE_NATIVE_DIVIDE
-#endif
-
-#ifndef __cdecl
-#define __cdecl
-#endif
-
-#endif /* __KERNEL__ */
-
-/* Linux uses GCC */
-
-#include "acgcc.h"
-
-
-#ifdef __KERNEL__
-#include <acpi/actypes.h>
-/*
- * Overrides for in-kernel ACPICA
- */
-static inline acpi_thread_id acpi_os_get_thread_id(void)
-{
- return (acpi_thread_id)(unsigned long)current;
-}
-
-/*
- * The irqs_disabled() check is for resume from RAM.
- * Interrupts are off during resume, just like they are for boot.
- * However, boot has (system_state != SYSTEM_RUNNING)
- * to quiet __might_sleep() in kmalloc() and resume does not.
- */
-static inline void *acpi_os_allocate(acpi_size size)
-{
- return kmalloc(size, irqs_disabled() ? GFP_ATOMIC : GFP_KERNEL);
-}
-
-static inline void *acpi_os_allocate_zeroed(acpi_size size)
-{
- return kzalloc(size, irqs_disabled() ? GFP_ATOMIC : GFP_KERNEL);
-}
-
-static inline void *acpi_os_acquire_object(acpi_cache_t * cache)
-{
- return kmem_cache_zalloc(cache,
- irqs_disabled() ? GFP_ATOMIC : GFP_KERNEL);
-}
-
-#define ACPI_ALLOCATE(a) acpi_os_allocate(a)
-#define ACPI_ALLOCATE_ZEROED(a) acpi_os_allocate_zeroed(a)
-#define ACPI_FREE(a) kfree(a)
-
-#ifndef CONFIG_PREEMPT
-/*
- * Used within ACPICA to show where it is safe to preempt execution
- * when CONFIG_PREEMPT=n
- */
-#define ACPI_PREEMPTION_POINT() \
- do { \
- if (!irqs_disabled()) \
- cond_resched(); \
- } while (0)
-#endif
-
-/*
- * When lockdep is enabled, the spin_lock_init() macro stringifies it's
- * argument and uses that as a name for the lock in debugging.
- * By executing spin_lock_init() in a macro the key changes from "lock" for
- * all locks to the name of the argument of acpi_os_create_lock(), which
- * prevents lockdep from reporting false positives for ACPICA locks.
- */
-#define acpi_os_create_lock(__handle) \
-({ \
- spinlock_t *lock = ACPI_ALLOCATE(sizeof(*lock)); \
- \
- if (lock) { \
- *(__handle) = lock; \
- spin_lock_init(*(__handle)); \
- } \
- lock ? AE_OK : AE_NO_MEMORY; \
-})
-
-#endif /* __KERNEL__ */
-
-#endif /* __ACLINUX_H__ */
diff --git a/ANDROID_3.4.5/include/acpi/processor.h b/ANDROID_3.4.5/include/acpi/processor.h
deleted file mode 100644
index 9d650476..00000000
--- a/ANDROID_3.4.5/include/acpi/processor.h
+++ /dev/null
@@ -1,358 +0,0 @@
-#ifndef __ACPI_PROCESSOR_H
-#define __ACPI_PROCESSOR_H
-
-#include <linux/kernel.h>
-#include <linux/cpu.h>
-#include <linux/cpuidle.h>
-#include <linux/thermal.h>
-#include <asm/acpi.h>
-
-#define ACPI_PROCESSOR_BUSY_METRIC 10
-
-#define ACPI_PROCESSOR_MAX_POWER 8
-#define ACPI_PROCESSOR_MAX_C2_LATENCY 100
-#define ACPI_PROCESSOR_MAX_C3_LATENCY 1000
-
-#define ACPI_PROCESSOR_MAX_THROTTLING 16
-#define ACPI_PROCESSOR_MAX_THROTTLE 250 /* 25% */
-#define ACPI_PROCESSOR_MAX_DUTY_WIDTH 4
-
-#define ACPI_PDC_REVISION_ID 0x1
-
-#define ACPI_PSD_REV0_REVISION 0 /* Support for _PSD as in ACPI 3.0 */
-#define ACPI_PSD_REV0_ENTRIES 5
-
-#define ACPI_TSD_REV0_REVISION 0 /* Support for _PSD as in ACPI 3.0 */
-#define ACPI_TSD_REV0_ENTRIES 5
-/*
- * Types of coordination defined in ACPI 3.0. Same macros can be used across
- * P, C and T states
- */
-#define DOMAIN_COORD_TYPE_SW_ALL 0xfc
-#define DOMAIN_COORD_TYPE_SW_ANY 0xfd
-#define DOMAIN_COORD_TYPE_HW_ALL 0xfe
-
-#define ACPI_CSTATE_SYSTEMIO 0
-#define ACPI_CSTATE_FFH 1
-#define ACPI_CSTATE_HALT 2
-
-#define ACPI_CX_DESC_LEN 32
-
-/* Power Management */
-
-struct acpi_processor_cx;
-
-struct acpi_power_register {
- u8 descriptor;
- u16 length;
- u8 space_id;
- u8 bit_width;
- u8 bit_offset;
- u8 access_size;
- u64 address;
-} __attribute__ ((packed));
-
-struct acpi_processor_cx {
- u8 valid;
- u8 type;
- u32 address;
- u8 entry_method;
- u8 index;
- u32 latency;
- u32 latency_ticks;
- u32 power;
- u32 usage;
- u64 time;
- u8 bm_sts_skip;
- char desc[ACPI_CX_DESC_LEN];
-};
-
-struct acpi_processor_power {
- struct cpuidle_device dev;
- struct acpi_processor_cx *state;
- unsigned long bm_check_timestamp;
- u32 default_state;
- int count;
- struct acpi_processor_cx states[ACPI_PROCESSOR_MAX_POWER];
- int timer_broadcast_on_state;
-};
-
-/* Performance Management */
-
-struct acpi_psd_package {
- u64 num_entries;
- u64 revision;
- u64 domain;
- u64 coord_type;
- u64 num_processors;
-} __attribute__ ((packed));
-
-struct acpi_pct_register {
- u8 descriptor;
- u16 length;
- u8 space_id;
- u8 bit_width;
- u8 bit_offset;
- u8 reserved;
- u64 address;
-} __attribute__ ((packed));
-
-struct acpi_processor_px {
- u64 core_frequency; /* megahertz */
- u64 power; /* milliWatts */
- u64 transition_latency; /* microseconds */
- u64 bus_master_latency; /* microseconds */
- u64 control; /* control value */
- u64 status; /* success indicator */
-};
-
-struct acpi_processor_performance {
- unsigned int state;
- unsigned int platform_limit;
- struct acpi_pct_register control_register;
- struct acpi_pct_register status_register;
- unsigned int state_count;
- struct acpi_processor_px *states;
- struct acpi_psd_package domain_info;
- cpumask_var_t shared_cpu_map;
- unsigned int shared_type;
-};
-
-/* Throttling Control */
-
-struct acpi_tsd_package {
- u64 num_entries;
- u64 revision;
- u64 domain;
- u64 coord_type;
- u64 num_processors;
-} __attribute__ ((packed));
-
-struct acpi_ptc_register {
- u8 descriptor;
- u16 length;
- u8 space_id;
- u8 bit_width;
- u8 bit_offset;
- u8 reserved;
- u64 address;
-} __attribute__ ((packed));
-
-struct acpi_processor_tx_tss {
- u64 freqpercentage; /* */
- u64 power; /* milliWatts */
- u64 transition_latency; /* microseconds */
- u64 control; /* control value */
- u64 status; /* success indicator */
-};
-struct acpi_processor_tx {
- u16 power;
- u16 performance;
-};
-
-struct acpi_processor;
-struct acpi_processor_throttling {
- unsigned int state;
- unsigned int platform_limit;
- struct acpi_pct_register control_register;
- struct acpi_pct_register status_register;
- unsigned int state_count;
- struct acpi_processor_tx_tss *states_tss;
- struct acpi_tsd_package domain_info;
- cpumask_var_t shared_cpu_map;
- int (*acpi_processor_get_throttling) (struct acpi_processor * pr);
- int (*acpi_processor_set_throttling) (struct acpi_processor * pr,
- int state, bool force);
-
- u32 address;
- u8 duty_offset;
- u8 duty_width;
- u8 tsd_valid_flag;
- unsigned int shared_type;
- struct acpi_processor_tx states[ACPI_PROCESSOR_MAX_THROTTLING];
-};
-
-/* Limit Interface */
-
-struct acpi_processor_lx {
- int px; /* performance state */
- int tx; /* throttle level */
-};
-
-struct acpi_processor_limit {
- struct acpi_processor_lx state; /* current limit */
- struct acpi_processor_lx thermal; /* thermal limit */
- struct acpi_processor_lx user; /* user limit */
-};
-
-struct acpi_processor_flags {
- u8 power:1;
- u8 performance:1;
- u8 throttling:1;
- u8 limit:1;
- u8 bm_control:1;
- u8 bm_check:1;
- u8 has_cst:1;
- u8 power_setup_done:1;
- u8 bm_rld_set:1;
- u8 need_hotplug_init:1;
-};
-
-struct acpi_processor {
- acpi_handle handle;
- u32 acpi_id;
- u32 id;
- u32 pblk;
- int performance_platform_limit;
- int throttling_platform_limit;
- /* 0 - states 0..n-th state available */
-
- struct acpi_processor_flags flags;
- struct acpi_processor_power power;
- struct acpi_processor_performance *performance;
- struct acpi_processor_throttling throttling;
- struct acpi_processor_limit limit;
- struct thermal_cooling_device *cdev;
-};
-
-struct acpi_processor_errata {
- u8 smp;
- struct {
- u8 throttle:1;
- u8 fdma:1;
- u8 reserved:6;
- u32 bmisx;
- } piix4;
-};
-
-extern void acpi_processor_load_module(struct acpi_processor *pr);
-extern int acpi_processor_preregister_performance(struct
- acpi_processor_performance
- __percpu *performance);
-
-extern int acpi_processor_register_performance(struct acpi_processor_performance
- *performance, unsigned int cpu);
-extern void acpi_processor_unregister_performance(struct
- acpi_processor_performance
- *performance,
- unsigned int cpu);
-
-/* note: this locks both the calling module and the processor module
- if a _PPC object exists, rmmod is disallowed then */
-int acpi_processor_notify_smm(struct module *calling_module);
-
-/* for communication between multiple parts of the processor kernel module */
-DECLARE_PER_CPU(struct acpi_processor *, processors);
-extern struct acpi_processor_errata errata;
-
-#ifdef ARCH_HAS_POWER_INIT
-void acpi_processor_power_init_bm_check(struct acpi_processor_flags *flags,
- unsigned int cpu);
-int acpi_processor_ffh_cstate_probe(unsigned int cpu,
- struct acpi_processor_cx *cx,
- struct acpi_power_register *reg);
-void acpi_processor_ffh_cstate_enter(struct acpi_processor_cx *cstate);
-#else
-static inline void acpi_processor_power_init_bm_check(struct
- acpi_processor_flags
- *flags, unsigned int cpu)
-{
- flags->bm_check = 1;
- return;
-}
-static inline int acpi_processor_ffh_cstate_probe(unsigned int cpu,
- struct acpi_processor_cx *cx,
- struct acpi_power_register
- *reg)
-{
- return -1;
-}
-static inline void acpi_processor_ffh_cstate_enter(struct acpi_processor_cx
- *cstate)
-{
- return;
-}
-#endif
-
-/* in processor_perflib.c */
-
-#ifdef CONFIG_CPU_FREQ
-void acpi_processor_ppc_init(void);
-void acpi_processor_ppc_exit(void);
-int acpi_processor_ppc_has_changed(struct acpi_processor *pr, int event_flag);
-extern int acpi_processor_get_bios_limit(int cpu, unsigned int *limit);
-#else
-static inline void acpi_processor_ppc_init(void)
-{
- return;
-}
-static inline void acpi_processor_ppc_exit(void)
-{
- return;
-}
-static inline int acpi_processor_ppc_has_changed(struct acpi_processor *pr,
- int event_flag)
-{
- static unsigned int printout = 1;
- if (printout) {
- printk(KERN_WARNING
- "Warning: Processor Platform Limit event detected, but not handled.\n");
- printk(KERN_WARNING
- "Consider compiling CPUfreq support into your kernel.\n");
- printout = 0;
- }
- return 0;
-}
-static inline int acpi_processor_get_bios_limit(int cpu, unsigned int *limit)
-{
- return -ENODEV;
-}
-
-#endif /* CONFIG_CPU_FREQ */
-
-/* in processor_core.c */
-void acpi_processor_set_pdc(acpi_handle handle);
-int acpi_get_cpuid(acpi_handle, int type, u32 acpi_id);
-
-/* in processor_throttling.c */
-int acpi_processor_tstate_has_changed(struct acpi_processor *pr);
-int acpi_processor_get_throttling_info(struct acpi_processor *pr);
-extern int acpi_processor_set_throttling(struct acpi_processor *pr,
- int state, bool force);
-/*
- * Reevaluate whether the T-state is invalid after one cpu is
- * onlined/offlined. In such case the flags.throttling will be updated.
- */
-extern void acpi_processor_reevaluate_tstate(struct acpi_processor *pr,
- unsigned long action);
-extern const struct file_operations acpi_processor_throttling_fops;
-extern void acpi_processor_throttling_init(void);
-/* in processor_idle.c */
-int acpi_processor_power_init(struct acpi_processor *pr,
- struct acpi_device *device);
-int acpi_processor_cst_has_changed(struct acpi_processor *pr);
-int acpi_processor_hotplug(struct acpi_processor *pr);
-int acpi_processor_power_exit(struct acpi_processor *pr,
- struct acpi_device *device);
-int acpi_processor_suspend(struct acpi_device * device, pm_message_t state);
-int acpi_processor_resume(struct acpi_device * device);
-extern struct cpuidle_driver acpi_idle_driver;
-
-/* in processor_thermal.c */
-int acpi_processor_get_limit_info(struct acpi_processor *pr);
-extern const struct thermal_cooling_device_ops processor_cooling_ops;
-#ifdef CONFIG_CPU_FREQ
-void acpi_thermal_cpufreq_init(void);
-void acpi_thermal_cpufreq_exit(void);
-#else
-static inline void acpi_thermal_cpufreq_init(void)
-{
- return;
-}
-static inline void acpi_thermal_cpufreq_exit(void)
-{
- return;
-}
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/acpi/reboot.h b/ANDROID_3.4.5/include/acpi/reboot.h
deleted file mode 100644
index 0419184c..00000000
--- a/ANDROID_3.4.5/include/acpi/reboot.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef __ACPI_REBOOT_H
-#define __ACPI_REBOOT_H
-
-#ifdef CONFIG_ACPI
-extern void acpi_reboot(void);
-#else
-static inline void acpi_reboot(void) { }
-#endif
-
-#endif
-
diff --git a/ANDROID_3.4.5/include/acpi/video.h b/ANDROID_3.4.5/include/acpi/video.h
deleted file mode 100644
index 61109f26..00000000
--- a/ANDROID_3.4.5/include/acpi/video.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef __ACPI_VIDEO_H
-#define __ACPI_VIDEO_H
-
-#include <linux/errno.h> /* for ENODEV */
-
-struct acpi_device;
-
-#define ACPI_VIDEO_CLASS "video"
-
-#define ACPI_VIDEO_DISPLAY_CRT 1
-#define ACPI_VIDEO_DISPLAY_TV 2
-#define ACPI_VIDEO_DISPLAY_DVI 3
-#define ACPI_VIDEO_DISPLAY_LCD 4
-
-#define ACPI_VIDEO_DISPLAY_LEGACY_MONITOR 0x0100
-#define ACPI_VIDEO_DISPLAY_LEGACY_PANEL 0x0110
-#define ACPI_VIDEO_DISPLAY_LEGACY_TV 0x0200
-
-#if (defined CONFIG_ACPI_VIDEO || defined CONFIG_ACPI_VIDEO_MODULE)
-extern int acpi_video_register(void);
-extern void acpi_video_unregister(void);
-extern int acpi_video_get_edid(struct acpi_device *device, int type,
- int device_id, void **edid);
-#else
-static inline int acpi_video_register(void) { return 0; }
-static inline void acpi_video_unregister(void) { return; }
-static inline int acpi_video_get_edid(struct acpi_device *device, int type,
- int device_id, void **edid)
-{
- return -ENODEV;
-}
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/asm-generic/4level-fixup.h b/ANDROID_3.4.5/include/asm-generic/4level-fixup.h
deleted file mode 100644
index 77ff5477..00000000
--- a/ANDROID_3.4.5/include/asm-generic/4level-fixup.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef _4LEVEL_FIXUP_H
-#define _4LEVEL_FIXUP_H
-
-#define __ARCH_HAS_4LEVEL_HACK
-#define __PAGETABLE_PUD_FOLDED
-
-#define PUD_SIZE PGDIR_SIZE
-#define PUD_MASK PGDIR_MASK
-#define PTRS_PER_PUD 1
-
-#define pud_t pgd_t
-
-#define pmd_alloc(mm, pud, address) \
- ((unlikely(pgd_none(*(pud))) && __pmd_alloc(mm, pud, address))? \
- NULL: pmd_offset(pud, address))
-
-#define pud_alloc(mm, pgd, address) (pgd)
-#define pud_offset(pgd, start) (pgd)
-#define pud_none(pud) 0
-#define pud_bad(pud) 0
-#define pud_present(pud) 1
-#define pud_ERROR(pud) do { } while (0)
-#define pud_clear(pud) pgd_clear(pud)
-#define pud_val(pud) pgd_val(pud)
-#define pud_populate(mm, pud, pmd) pgd_populate(mm, pud, pmd)
-#define pud_page(pud) pgd_page(pud)
-#define pud_page_vaddr(pud) pgd_page_vaddr(pud)
-
-#undef pud_free_tlb
-#define pud_free_tlb(tlb, x, addr) do { } while (0)
-#define pud_free(mm, x) do { } while (0)
-#define __pud_free_tlb(tlb, x, addr) do { } while (0)
-
-#undef pud_addr_end
-#define pud_addr_end(addr, end) (end)
-
-#endif
diff --git a/ANDROID_3.4.5/include/asm-generic/Kbuild b/ANDROID_3.4.5/include/asm-generic/Kbuild
deleted file mode 100644
index 53f91b1a..00000000
--- a/ANDROID_3.4.5/include/asm-generic/Kbuild
+++ /dev/null
@@ -1,34 +0,0 @@
-header-y += auxvec.h
-header-y += bitsperlong.h
-header-y += errno-base.h
-header-y += errno.h
-header-y += fcntl.h
-header-y += int-l64.h
-header-y += int-ll64.h
-header-y += ioctl.h
-header-y += ioctls.h
-header-y += ipcbuf.h
-header-y += mman-common.h
-header-y += mman.h
-header-y += msgbuf.h
-header-y += param.h
-header-y += poll.h
-header-y += posix_types.h
-header-y += resource.h
-header-y += sembuf.h
-header-y += setup.h
-header-y += shmbuf.h
-header-y += shmparam.h
-header-y += siginfo.h
-header-y += signal-defs.h
-header-y += signal.h
-header-y += socket.h
-header-y += sockios.h
-header-y += stat.h
-header-y += statfs.h
-header-y += swab.h
-header-y += termbits.h
-header-y += termios.h
-header-y += types.h
-header-y += ucontext.h
-header-y += unistd.h
diff --git a/ANDROID_3.4.5/include/asm-generic/Kbuild.asm b/ANDROID_3.4.5/include/asm-generic/Kbuild.asm
deleted file mode 100644
index c5d2e5dd..00000000
--- a/ANDROID_3.4.5/include/asm-generic/Kbuild.asm
+++ /dev/null
@@ -1,45 +0,0 @@
-ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/asm/kvm.h \
- $(srctree)/include/asm-$(SRCARCH)/kvm.h),)
-header-y += kvm.h
-endif
-
-ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/asm/kvm_para.h \
- $(srctree)/include/asm-$(SRCARCH)/kvm_para.h),)
-header-y += kvm_para.h
-endif
-
-ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/asm/a.out.h \
- $(srctree)/include/asm-$(SRCARCH)/a.out.h),)
-header-y += a.out.h
-endif
-
-header-y += auxvec.h
-header-y += bitsperlong.h
-header-y += byteorder.h
-header-y += errno.h
-header-y += fcntl.h
-header-y += ioctl.h
-header-y += ioctls.h
-header-y += ipcbuf.h
-header-y += mman.h
-header-y += msgbuf.h
-header-y += param.h
-header-y += poll.h
-header-y += posix_types.h
-header-y += ptrace.h
-header-y += resource.h
-header-y += sembuf.h
-header-y += setup.h
-header-y += shmbuf.h
-header-y += sigcontext.h
-header-y += siginfo.h
-header-y += signal.h
-header-y += socket.h
-header-y += sockios.h
-header-y += stat.h
-header-y += statfs.h
-header-y += swab.h
-header-y += termbits.h
-header-y += termios.h
-header-y += types.h
-header-y += unistd.h
diff --git a/ANDROID_3.4.5/include/asm-generic/atomic-long.h b/ANDROID_3.4.5/include/asm-generic/atomic-long.h
deleted file mode 100644
index b7babf02..00000000
--- a/ANDROID_3.4.5/include/asm-generic/atomic-long.h
+++ /dev/null
@@ -1,258 +0,0 @@
-#ifndef _ASM_GENERIC_ATOMIC_LONG_H
-#define _ASM_GENERIC_ATOMIC_LONG_H
-/*
- * Copyright (C) 2005 Silicon Graphics, Inc.
- * Christoph Lameter
- *
- * Allows to provide arch independent atomic definitions without the need to
- * edit all arch specific atomic.h files.
- */
-
-#include <asm/types.h>
-
-/*
- * Suppport for atomic_long_t
- *
- * Casts for parameters are avoided for existing atomic functions in order to
- * avoid issues with cast-as-lval under gcc 4.x and other limitations that the
- * macros of a platform may have.
- */
-
-#if BITS_PER_LONG == 64
-
-typedef atomic64_t atomic_long_t;
-
-#define ATOMIC_LONG_INIT(i) ATOMIC64_INIT(i)
-
-static inline long atomic_long_read(atomic_long_t *l)
-{
- atomic64_t *v = (atomic64_t *)l;
-
- return (long)atomic64_read(v);
-}
-
-static inline void atomic_long_set(atomic_long_t *l, long i)
-{
- atomic64_t *v = (atomic64_t *)l;
-
- atomic64_set(v, i);
-}
-
-static inline void atomic_long_inc(atomic_long_t *l)
-{
- atomic64_t *v = (atomic64_t *)l;
-
- atomic64_inc(v);
-}
-
-static inline void atomic_long_dec(atomic_long_t *l)
-{
- atomic64_t *v = (atomic64_t *)l;
-
- atomic64_dec(v);
-}
-
-static inline void atomic_long_add(long i, atomic_long_t *l)
-{
- atomic64_t *v = (atomic64_t *)l;
-
- atomic64_add(i, v);
-}
-
-static inline void atomic_long_sub(long i, atomic_long_t *l)
-{
- atomic64_t *v = (atomic64_t *)l;
-
- atomic64_sub(i, v);
-}
-
-static inline int atomic_long_sub_and_test(long i, atomic_long_t *l)
-{
- atomic64_t *v = (atomic64_t *)l;
-
- return atomic64_sub_and_test(i, v);
-}
-
-static inline int atomic_long_dec_and_test(atomic_long_t *l)
-{
- atomic64_t *v = (atomic64_t *)l;
-
- return atomic64_dec_and_test(v);
-}
-
-static inline int atomic_long_inc_and_test(atomic_long_t *l)
-{
- atomic64_t *v = (atomic64_t *)l;
-
- return atomic64_inc_and_test(v);
-}
-
-static inline int atomic_long_add_negative(long i, atomic_long_t *l)
-{
- atomic64_t *v = (atomic64_t *)l;
-
- return atomic64_add_negative(i, v);
-}
-
-static inline long atomic_long_add_return(long i, atomic_long_t *l)
-{
- atomic64_t *v = (atomic64_t *)l;
-
- return (long)atomic64_add_return(i, v);
-}
-
-static inline long atomic_long_sub_return(long i, atomic_long_t *l)
-{
- atomic64_t *v = (atomic64_t *)l;
-
- return (long)atomic64_sub_return(i, v);
-}
-
-static inline long atomic_long_inc_return(atomic_long_t *l)
-{
- atomic64_t *v = (atomic64_t *)l;
-
- return (long)atomic64_inc_return(v);
-}
-
-static inline long atomic_long_dec_return(atomic_long_t *l)
-{
- atomic64_t *v = (atomic64_t *)l;
-
- return (long)atomic64_dec_return(v);
-}
-
-static inline long atomic_long_add_unless(atomic_long_t *l, long a, long u)
-{
- atomic64_t *v = (atomic64_t *)l;
-
- return (long)atomic64_add_unless(v, a, u);
-}
-
-#define atomic_long_inc_not_zero(l) atomic64_inc_not_zero((atomic64_t *)(l))
-
-#define atomic_long_cmpxchg(l, old, new) \
- (atomic64_cmpxchg((atomic64_t *)(l), (old), (new)))
-#define atomic_long_xchg(v, new) \
- (atomic64_xchg((atomic64_t *)(v), (new)))
-
-#else /* BITS_PER_LONG == 64 */
-
-typedef atomic_t atomic_long_t;
-
-#define ATOMIC_LONG_INIT(i) ATOMIC_INIT(i)
-static inline long atomic_long_read(atomic_long_t *l)
-{
- atomic_t *v = (atomic_t *)l;
-
- return (long)atomic_read(v);
-}
-
-static inline void atomic_long_set(atomic_long_t *l, long i)
-{
- atomic_t *v = (atomic_t *)l;
-
- atomic_set(v, i);
-}
-
-static inline void atomic_long_inc(atomic_long_t *l)
-{
- atomic_t *v = (atomic_t *)l;
-
- atomic_inc(v);
-}
-
-static inline void atomic_long_dec(atomic_long_t *l)
-{
- atomic_t *v = (atomic_t *)l;
-
- atomic_dec(v);
-}
-
-static inline void atomic_long_add(long i, atomic_long_t *l)
-{
- atomic_t *v = (atomic_t *)l;
-
- atomic_add(i, v);
-}
-
-static inline void atomic_long_sub(long i, atomic_long_t *l)
-{
- atomic_t *v = (atomic_t *)l;
-
- atomic_sub(i, v);
-}
-
-static inline int atomic_long_sub_and_test(long i, atomic_long_t *l)
-{
- atomic_t *v = (atomic_t *)l;
-
- return atomic_sub_and_test(i, v);
-}
-
-static inline int atomic_long_dec_and_test(atomic_long_t *l)
-{
- atomic_t *v = (atomic_t *)l;
-
- return atomic_dec_and_test(v);
-}
-
-static inline int atomic_long_inc_and_test(atomic_long_t *l)
-{
- atomic_t *v = (atomic_t *)l;
-
- return atomic_inc_and_test(v);
-}
-
-static inline int atomic_long_add_negative(long i, atomic_long_t *l)
-{
- atomic_t *v = (atomic_t *)l;
-
- return atomic_add_negative(i, v);
-}
-
-static inline long atomic_long_add_return(long i, atomic_long_t *l)
-{
- atomic_t *v = (atomic_t *)l;
-
- return (long)atomic_add_return(i, v);
-}
-
-static inline long atomic_long_sub_return(long i, atomic_long_t *l)
-{
- atomic_t *v = (atomic_t *)l;
-
- return (long)atomic_sub_return(i, v);
-}
-
-static inline long atomic_long_inc_return(atomic_long_t *l)
-{
- atomic_t *v = (atomic_t *)l;
-
- return (long)atomic_inc_return(v);
-}
-
-static inline long atomic_long_dec_return(atomic_long_t *l)
-{
- atomic_t *v = (atomic_t *)l;
-
- return (long)atomic_dec_return(v);
-}
-
-static inline long atomic_long_add_unless(atomic_long_t *l, long a, long u)
-{
- atomic_t *v = (atomic_t *)l;
-
- return (long)atomic_add_unless(v, a, u);
-}
-
-#define atomic_long_inc_not_zero(l) atomic_inc_not_zero((atomic_t *)(l))
-
-#define atomic_long_cmpxchg(l, old, new) \
- (atomic_cmpxchg((atomic_t *)(l), (old), (new)))
-#define atomic_long_xchg(v, new) \
- (atomic_xchg((atomic_t *)(v), (new)))
-
-#endif /* BITS_PER_LONG == 64 */
-
-#endif /* _ASM_GENERIC_ATOMIC_LONG_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/atomic.h b/ANDROID_3.4.5/include/asm-generic/atomic.h
deleted file mode 100644
index 1ced6413..00000000
--- a/ANDROID_3.4.5/include/asm-generic/atomic.h
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * Generic C implementation of atomic counter operations. Usable on
- * UP systems only. Do not include in machine independent code.
- *
- * Originally implemented for MN10300.
- *
- * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
- * Written by David Howells (dhowells@redhat.com)
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public Licence
- * as published by the Free Software Foundation; either version
- * 2 of the Licence, or (at your option) any later version.
- */
-#ifndef __ASM_GENERIC_ATOMIC_H
-#define __ASM_GENERIC_ATOMIC_H
-
-#include <asm/cmpxchg.h>
-
-#ifdef CONFIG_SMP
-/* Force people to define core atomics */
-# if !defined(atomic_add_return) || !defined(atomic_sub_return) || \
- !defined(atomic_clear_mask) || !defined(atomic_set_mask)
-# error "SMP requires a little arch-specific magic"
-# endif
-#endif
-
-/*
- * Atomic operations that C can't guarantee us. Useful for
- * resource counting etc..
- */
-
-#define ATOMIC_INIT(i) { (i) }
-
-#ifdef __KERNEL__
-
-/**
- * atomic_read - read atomic variable
- * @v: pointer of type atomic_t
- *
- * Atomically reads the value of @v.
- */
-#ifndef atomic_read
-#define atomic_read(v) (*(volatile int *)&(v)->counter)
-#endif
-
-/**
- * atomic_set - set atomic variable
- * @v: pointer of type atomic_t
- * @i: required value
- *
- * Atomically sets the value of @v to @i.
- */
-#define atomic_set(v, i) (((v)->counter) = (i))
-
-#include <linux/irqflags.h>
-
-/**
- * atomic_add_return - add integer to atomic variable
- * @i: integer value to add
- * @v: pointer of type atomic_t
- *
- * Atomically adds @i to @v and returns the result
- */
-#ifndef atomic_add_return
-static inline int atomic_add_return(int i, atomic_t *v)
-{
- unsigned long flags;
- int temp;
-
- raw_local_irq_save(flags); /* Don't trace it in an irqsoff handler */
- temp = v->counter;
- temp += i;
- v->counter = temp;
- raw_local_irq_restore(flags);
-
- return temp;
-}
-#endif
-
-/**
- * atomic_sub_return - subtract integer from atomic variable
- * @i: integer value to subtract
- * @v: pointer of type atomic_t
- *
- * Atomically subtracts @i from @v and returns the result
- */
-#ifndef atomic_sub_return
-static inline int atomic_sub_return(int i, atomic_t *v)
-{
- unsigned long flags;
- int temp;
-
- raw_local_irq_save(flags); /* Don't trace it in an irqsoff handler */
- temp = v->counter;
- temp -= i;
- v->counter = temp;
- raw_local_irq_restore(flags);
-
- return temp;
-}
-#endif
-
-static inline int atomic_add_negative(int i, atomic_t *v)
-{
- return atomic_add_return(i, v) < 0;
-}
-
-static inline void atomic_add(int i, atomic_t *v)
-{
- atomic_add_return(i, v);
-}
-
-static inline void atomic_sub(int i, atomic_t *v)
-{
- atomic_sub_return(i, v);
-}
-
-static inline void atomic_inc(atomic_t *v)
-{
- atomic_add_return(1, v);
-}
-
-static inline void atomic_dec(atomic_t *v)
-{
- atomic_sub_return(1, v);
-}
-
-#define atomic_dec_return(v) atomic_sub_return(1, (v))
-#define atomic_inc_return(v) atomic_add_return(1, (v))
-
-#define atomic_sub_and_test(i, v) (atomic_sub_return((i), (v)) == 0)
-#define atomic_dec_and_test(v) (atomic_dec_return(v) == 0)
-#define atomic_inc_and_test(v) (atomic_inc_return(v) == 0)
-
-#define atomic_xchg(ptr, v) (xchg(&(ptr)->counter, (v)))
-#define atomic_cmpxchg(v, old, new) (cmpxchg(&((v)->counter), (old), (new)))
-
-#define cmpxchg_local(ptr, o, n) \
- ((__typeof__(*(ptr)))__cmpxchg_local_generic((ptr), (unsigned long)(o),\
- (unsigned long)(n), sizeof(*(ptr))))
-
-#define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n))
-
-static inline int __atomic_add_unless(atomic_t *v, int a, int u)
-{
- int c, old;
- c = atomic_read(v);
- while (c != u && (old = atomic_cmpxchg(v, c, c + a)) != c)
- c = old;
- return c;
-}
-
-/**
- * atomic_clear_mask - Atomically clear bits in atomic variable
- * @mask: Mask of the bits to be cleared
- * @v: pointer of type atomic_t
- *
- * Atomically clears the bits set in @mask from @v
- */
-#ifndef atomic_clear_mask
-static inline void atomic_clear_mask(unsigned long mask, atomic_t *v)
-{
- unsigned long flags;
-
- mask = ~mask;
- raw_local_irq_save(flags); /* Don't trace it in a irqsoff handler */
- v->counter &= mask;
- raw_local_irq_restore(flags);
-}
-#endif
-
-/**
- * atomic_set_mask - Atomically set bits in atomic variable
- * @mask: Mask of the bits to be set
- * @v: pointer of type atomic_t
- *
- * Atomically sets the bits set in @mask in @v
- */
-#ifndef atomic_set_mask
-static inline void atomic_set_mask(unsigned int mask, atomic_t *v)
-{
- unsigned long flags;
-
- raw_local_irq_save(flags); /* Don't trace it in a irqsoff handler */
- v->counter |= mask;
- raw_local_irq_restore(flags);
-}
-#endif
-
-/* Assume that atomic operations are already serializing */
-#define smp_mb__before_atomic_dec() barrier()
-#define smp_mb__after_atomic_dec() barrier()
-#define smp_mb__before_atomic_inc() barrier()
-#define smp_mb__after_atomic_inc() barrier()
-
-#endif /* __KERNEL__ */
-#endif /* __ASM_GENERIC_ATOMIC_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/atomic64.h b/ANDROID_3.4.5/include/asm-generic/atomic64.h
deleted file mode 100644
index b18ce4f9..00000000
--- a/ANDROID_3.4.5/include/asm-generic/atomic64.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Generic implementation of 64-bit atomics using spinlocks,
- * useful on processors that don't have 64-bit atomic instructions.
- *
- * Copyright © 2009 Paul Mackerras, IBM Corp. <paulus@au1.ibm.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 _ASM_GENERIC_ATOMIC64_H
-#define _ASM_GENERIC_ATOMIC64_H
-
-typedef struct {
- long long counter;
-} atomic64_t;
-
-#define ATOMIC64_INIT(i) { (i) }
-
-extern long long atomic64_read(const atomic64_t *v);
-extern void atomic64_set(atomic64_t *v, long long i);
-extern void atomic64_add(long long a, atomic64_t *v);
-extern long long atomic64_add_return(long long a, atomic64_t *v);
-extern void atomic64_sub(long long a, atomic64_t *v);
-extern long long atomic64_sub_return(long long a, atomic64_t *v);
-extern long long atomic64_dec_if_positive(atomic64_t *v);
-extern long long atomic64_cmpxchg(atomic64_t *v, long long o, long long n);
-extern long long atomic64_xchg(atomic64_t *v, long long new);
-extern int atomic64_add_unless(atomic64_t *v, long long a, long long u);
-
-#define atomic64_add_negative(a, v) (atomic64_add_return((a), (v)) < 0)
-#define atomic64_inc(v) atomic64_add(1LL, (v))
-#define atomic64_inc_return(v) atomic64_add_return(1LL, (v))
-#define atomic64_inc_and_test(v) (atomic64_inc_return(v) == 0)
-#define atomic64_sub_and_test(a, v) (atomic64_sub_return((a), (v)) == 0)
-#define atomic64_dec(v) atomic64_sub(1LL, (v))
-#define atomic64_dec_return(v) atomic64_sub_return(1LL, (v))
-#define atomic64_dec_and_test(v) (atomic64_dec_return((v)) == 0)
-#define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1LL, 0LL)
-
-#endif /* _ASM_GENERIC_ATOMIC64_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/audit_change_attr.h b/ANDROID_3.4.5/include/asm-generic/audit_change_attr.h
deleted file mode 100644
index 89b73e5d..00000000
--- a/ANDROID_3.4.5/include/asm-generic/audit_change_attr.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifdef __NR_chmod
-__NR_chmod,
-#endif
-__NR_fchmod,
-#ifdef __NR_chown
-__NR_chown,
-__NR_fchown,
-__NR_lchown,
-#endif
-__NR_setxattr,
-__NR_lsetxattr,
-__NR_fsetxattr,
-__NR_removexattr,
-__NR_lremovexattr,
-__NR_fremovexattr,
-#ifdef __NR_fchownat
-__NR_fchownat,
-__NR_fchmodat,
-#endif
-#ifdef __NR_chown32
-__NR_chown32,
-__NR_fchown32,
-__NR_lchown32,
-#endif
-#ifdef __NR_link
-__NR_link,
-#endif
-#ifdef __NR_linkat
-__NR_linkat,
-#endif
diff --git a/ANDROID_3.4.5/include/asm-generic/audit_dir_write.h b/ANDROID_3.4.5/include/asm-generic/audit_dir_write.h
deleted file mode 100644
index 7b61db4f..00000000
--- a/ANDROID_3.4.5/include/asm-generic/audit_dir_write.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifdef __NR_rename
-__NR_rename,
-#endif
-#ifdef __NR_mkdir
-__NR_mkdir,
-#endif
-#ifdef __NR_rmdir
-__NR_rmdir,
-#endif
-#ifdef __NR_creat
-__NR_creat,
-#endif
-#ifdef __NR_link
-__NR_link,
-#endif
-#ifdef __NR_unlink
-__NR_unlink,
-#endif
-#ifdef __NR_symlink
-__NR_symlink,
-#endif
-#ifdef __NR_mknod
-__NR_mknod,
-#endif
-#ifdef __NR_mkdirat
-__NR_mkdirat,
-__NR_mknodat,
-__NR_unlinkat,
-__NR_renameat,
-__NR_linkat,
-__NR_symlinkat,
-#endif
diff --git a/ANDROID_3.4.5/include/asm-generic/audit_read.h b/ANDROID_3.4.5/include/asm-generic/audit_read.h
deleted file mode 100644
index 3b249cb8..00000000
--- a/ANDROID_3.4.5/include/asm-generic/audit_read.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifdef __NR_readlink
-__NR_readlink,
-#endif
-__NR_quotactl,
-__NR_listxattr,
-__NR_llistxattr,
-__NR_flistxattr,
-__NR_getxattr,
-__NR_lgetxattr,
-__NR_fgetxattr,
-#ifdef __NR_readlinkat
-__NR_readlinkat,
-#endif
diff --git a/ANDROID_3.4.5/include/asm-generic/audit_signal.h b/ANDROID_3.4.5/include/asm-generic/audit_signal.h
deleted file mode 100644
index 6feab7f1..00000000
--- a/ANDROID_3.4.5/include/asm-generic/audit_signal.h
+++ /dev/null
@@ -1,3 +0,0 @@
-__NR_kill,
-__NR_tgkill,
-__NR_tkill,
diff --git a/ANDROID_3.4.5/include/asm-generic/audit_write.h b/ANDROID_3.4.5/include/asm-generic/audit_write.h
deleted file mode 100644
index e7020c57..00000000
--- a/ANDROID_3.4.5/include/asm-generic/audit_write.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <asm-generic/audit_dir_write.h>
-__NR_acct,
-#ifdef __NR_swapon
-__NR_swapon,
-#endif
-__NR_quotactl,
-#ifdef __NR_truncate
-__NR_truncate,
-#endif
-#ifdef __NR_truncate64
-__NR_truncate64,
-#endif
-#ifdef __NR_bind
-__NR_bind, /* bind can affect fs object only in one way... */
-#endif
diff --git a/ANDROID_3.4.5/include/asm-generic/auxvec.h b/ANDROID_3.4.5/include/asm-generic/auxvec.h
deleted file mode 100644
index b99573b0..00000000
--- a/ANDROID_3.4.5/include/asm-generic/auxvec.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef __ASM_GENERIC_AUXVEC_H
-#define __ASM_GENERIC_AUXVEC_H
-/*
- * Not all architectures need their own auxvec.h, the most
- * common definitions are already in linux/auxvec.h.
- */
-
-#endif /* __ASM_GENERIC_AUXVEC_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/barrier.h b/ANDROID_3.4.5/include/asm-generic/barrier.h
deleted file mode 100644
index 639d7a4d..00000000
--- a/ANDROID_3.4.5/include/asm-generic/barrier.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Generic barrier definitions, based on MN10300 definitions.
- *
- * It should be possible to use these on really simple architectures,
- * but it serves more as a starting point for new ports.
- *
- * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
- * Written by David Howells (dhowells@redhat.com)
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public Licence
- * as published by the Free Software Foundation; either version
- * 2 of the Licence, or (at your option) any later version.
- */
-#ifndef __ASM_GENERIC_BARRIER_H
-#define __ASM_GENERIC_BARRIER_H
-
-#ifndef __ASSEMBLY__
-
-#define nop() asm volatile ("nop")
-
-/*
- * Force strict CPU ordering.
- * And yes, this is required on UP too when we're talking
- * to devices.
- *
- * This implementation only contains a compiler barrier.
- */
-
-#define mb() asm volatile ("": : :"memory")
-#define rmb() mb()
-#define wmb() asm volatile ("": : :"memory")
-
-#ifdef CONFIG_SMP
-#define smp_mb() mb()
-#define smp_rmb() rmb()
-#define smp_wmb() wmb()
-#else
-#define smp_mb() barrier()
-#define smp_rmb() barrier()
-#define smp_wmb() barrier()
-#endif
-
-#define set_mb(var, value) do { var = value; mb(); } while (0)
-#define set_wmb(var, value) do { var = value; wmb(); } while (0)
-
-#define read_barrier_depends() do {} while (0)
-#define smp_read_barrier_depends() do {} while (0)
-
-#endif /* !__ASSEMBLY__ */
-#endif /* __ASM_GENERIC_BARRIER_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/bitops.h b/ANDROID_3.4.5/include/asm-generic/bitops.h
deleted file mode 100644
index 280ca7a9..00000000
--- a/ANDROID_3.4.5/include/asm-generic/bitops.h
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef __ASM_GENERIC_BITOPS_H
-#define __ASM_GENERIC_BITOPS_H
-
-/*
- * For the benefit of those who are trying to port Linux to another
- * architecture, here are some C-language equivalents. You should
- * recode these in the native assembly language, if at all possible.
- *
- * C language equivalents written by Theodore Ts'o, 9/26/92
- */
-
-#include <linux/irqflags.h>
-#include <linux/compiler.h>
-
-/*
- * clear_bit may not imply a memory barrier
- */
-#ifndef smp_mb__before_clear_bit
-#define smp_mb__before_clear_bit() smp_mb()
-#define smp_mb__after_clear_bit() smp_mb()
-#endif
-
-#include <asm-generic/bitops/__ffs.h>
-#include <asm-generic/bitops/ffz.h>
-#include <asm-generic/bitops/fls.h>
-#include <asm-generic/bitops/__fls.h>
-#include <asm-generic/bitops/fls64.h>
-#include <asm-generic/bitops/find.h>
-
-#ifndef _LINUX_BITOPS_H
-#error only <linux/bitops.h> can be included directly
-#endif
-
-#include <asm-generic/bitops/sched.h>
-#include <asm-generic/bitops/ffs.h>
-#include <asm-generic/bitops/hweight.h>
-#include <asm-generic/bitops/lock.h>
-
-#include <asm-generic/bitops/atomic.h>
-#include <asm-generic/bitops/non-atomic.h>
-#include <asm-generic/bitops/le.h>
-#include <asm-generic/bitops/ext2-atomic.h>
-
-#endif /* __ASM_GENERIC_BITOPS_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/bitops/__ffs.h b/ANDROID_3.4.5/include/asm-generic/bitops/__ffs.h
deleted file mode 100644
index 937d7c43..00000000
--- a/ANDROID_3.4.5/include/asm-generic/bitops/__ffs.h
+++ /dev/null
@@ -1,43 +0,0 @@
-#ifndef _ASM_GENERIC_BITOPS___FFS_H_
-#define _ASM_GENERIC_BITOPS___FFS_H_
-
-#include <asm/types.h>
-
-/**
- * __ffs - find first bit in word.
- * @word: The word to search
- *
- * Undefined if no bit exists, so code should check against 0 first.
- */
-static __always_inline unsigned long __ffs(unsigned long word)
-{
- int num = 0;
-
-#if BITS_PER_LONG == 64
- if ((word & 0xffffffff) == 0) {
- num += 32;
- word >>= 32;
- }
-#endif
- if ((word & 0xffff) == 0) {
- num += 16;
- word >>= 16;
- }
- if ((word & 0xff) == 0) {
- num += 8;
- word >>= 8;
- }
- if ((word & 0xf) == 0) {
- num += 4;
- word >>= 4;
- }
- if ((word & 0x3) == 0) {
- num += 2;
- word >>= 2;
- }
- if ((word & 0x1) == 0)
- num += 1;
- return num;
-}
-
-#endif /* _ASM_GENERIC_BITOPS___FFS_H_ */
diff --git a/ANDROID_3.4.5/include/asm-generic/bitops/__fls.h b/ANDROID_3.4.5/include/asm-generic/bitops/__fls.h
deleted file mode 100644
index a60a7ccb..00000000
--- a/ANDROID_3.4.5/include/asm-generic/bitops/__fls.h
+++ /dev/null
@@ -1,43 +0,0 @@
-#ifndef _ASM_GENERIC_BITOPS___FLS_H_
-#define _ASM_GENERIC_BITOPS___FLS_H_
-
-#include <asm/types.h>
-
-/**
- * __fls - find last (most-significant) set bit in a long word
- * @word: the word to search
- *
- * Undefined if no set bit exists, so code should check against 0 first.
- */
-static __always_inline unsigned long __fls(unsigned long word)
-{
- int num = BITS_PER_LONG - 1;
-
-#if BITS_PER_LONG == 64
- if (!(word & (~0ul << 32))) {
- num -= 32;
- word <<= 32;
- }
-#endif
- if (!(word & (~0ul << (BITS_PER_LONG-16)))) {
- num -= 16;
- word <<= 16;
- }
- if (!(word & (~0ul << (BITS_PER_LONG-8)))) {
- num -= 8;
- word <<= 8;
- }
- if (!(word & (~0ul << (BITS_PER_LONG-4)))) {
- num -= 4;
- word <<= 4;
- }
- if (!(word & (~0ul << (BITS_PER_LONG-2)))) {
- num -= 2;
- word <<= 2;
- }
- if (!(word & (~0ul << (BITS_PER_LONG-1))))
- num -= 1;
- return num;
-}
-
-#endif /* _ASM_GENERIC_BITOPS___FLS_H_ */
diff --git a/ANDROID_3.4.5/include/asm-generic/bitops/arch_hweight.h b/ANDROID_3.4.5/include/asm-generic/bitops/arch_hweight.h
deleted file mode 100644
index 6a211f40..00000000
--- a/ANDROID_3.4.5/include/asm-generic/bitops/arch_hweight.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef _ASM_GENERIC_BITOPS_ARCH_HWEIGHT_H_
-#define _ASM_GENERIC_BITOPS_ARCH_HWEIGHT_H_
-
-#include <asm/types.h>
-
-static inline unsigned int __arch_hweight32(unsigned int w)
-{
- return __sw_hweight32(w);
-}
-
-static inline unsigned int __arch_hweight16(unsigned int w)
-{
- return __sw_hweight16(w);
-}
-
-static inline unsigned int __arch_hweight8(unsigned int w)
-{
- return __sw_hweight8(w);
-}
-
-static inline unsigned long __arch_hweight64(__u64 w)
-{
- return __sw_hweight64(w);
-}
-#endif /* _ASM_GENERIC_BITOPS_HWEIGHT_H_ */
diff --git a/ANDROID_3.4.5/include/asm-generic/bitops/atomic.h b/ANDROID_3.4.5/include/asm-generic/bitops/atomic.h
deleted file mode 100644
index 9ae6c34d..00000000
--- a/ANDROID_3.4.5/include/asm-generic/bitops/atomic.h
+++ /dev/null
@@ -1,189 +0,0 @@
-#ifndef _ASM_GENERIC_BITOPS_ATOMIC_H_
-#define _ASM_GENERIC_BITOPS_ATOMIC_H_
-
-#include <asm/types.h>
-#include <linux/irqflags.h>
-
-#ifdef CONFIG_SMP
-#include <asm/spinlock.h>
-#include <asm/cache.h> /* we use L1_CACHE_BYTES */
-
-/* Use an array of spinlocks for our atomic_ts.
- * Hash function to index into a different SPINLOCK.
- * Since "a" is usually an address, use one spinlock per cacheline.
- */
-# define ATOMIC_HASH_SIZE 4
-# define ATOMIC_HASH(a) (&(__atomic_hash[ (((unsigned long) a)/L1_CACHE_BYTES) & (ATOMIC_HASH_SIZE-1) ]))
-
-extern arch_spinlock_t __atomic_hash[ATOMIC_HASH_SIZE] __lock_aligned;
-
-/* Can't use raw_spin_lock_irq because of #include problems, so
- * this is the substitute */
-#define _atomic_spin_lock_irqsave(l,f) do { \
- arch_spinlock_t *s = ATOMIC_HASH(l); \
- local_irq_save(f); \
- arch_spin_lock(s); \
-} while(0)
-
-#define _atomic_spin_unlock_irqrestore(l,f) do { \
- arch_spinlock_t *s = ATOMIC_HASH(l); \
- arch_spin_unlock(s); \
- local_irq_restore(f); \
-} while(0)
-
-
-#else
-# define _atomic_spin_lock_irqsave(l,f) do { local_irq_save(f); } while (0)
-# define _atomic_spin_unlock_irqrestore(l,f) do { local_irq_restore(f); } while (0)
-#endif
-
-/*
- * NMI events can occur at any time, including when interrupts have been
- * disabled by *_irqsave(). So you can get NMI events occurring while a
- * *_bit function is holding a spin lock. If the NMI handler also wants
- * to do bit manipulation (and they do) then you can get a deadlock
- * between the original caller of *_bit() and the NMI handler.
- *
- * by Keith Owens
- */
-
-/**
- * set_bit - Atomically set a bit in memory
- * @nr: the bit to set
- * @addr: the address to start counting from
- *
- * This function is atomic and may not be reordered. See __set_bit()
- * if you do not require the atomic guarantees.
- *
- * Note: there are no guarantees that this function will not be reordered
- * on non x86 architectures, so if you are writing portable code,
- * make sure not to rely on its reordering guarantees.
- *
- * Note that @nr may be almost arbitrarily large; this function is not
- * restricted to acting on a single-word quantity.
- */
-static inline void set_bit(int nr, volatile unsigned long *addr)
-{
- unsigned long mask = BIT_MASK(nr);
- unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr);
- unsigned long flags;
-
- _atomic_spin_lock_irqsave(p, flags);
- *p |= mask;
- _atomic_spin_unlock_irqrestore(p, flags);
-}
-
-/**
- * clear_bit - Clears a bit in memory
- * @nr: Bit to clear
- * @addr: Address to start counting from
- *
- * clear_bit() is atomic and may not be reordered. However, it does
- * not contain a memory barrier, so if it is used for locking purposes,
- * you should call smp_mb__before_clear_bit() and/or smp_mb__after_clear_bit()
- * in order to ensure changes are visible on other processors.
- */
-static inline void clear_bit(int nr, volatile unsigned long *addr)
-{
- unsigned long mask = BIT_MASK(nr);
- unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr);
- unsigned long flags;
-
- _atomic_spin_lock_irqsave(p, flags);
- *p &= ~mask;
- _atomic_spin_unlock_irqrestore(p, flags);
-}
-
-/**
- * change_bit - Toggle a bit in memory
- * @nr: Bit to change
- * @addr: Address to start counting from
- *
- * change_bit() is atomic and may not be reordered. It may be
- * reordered on other architectures than x86.
- * Note that @nr may be almost arbitrarily large; this function is not
- * restricted to acting on a single-word quantity.
- */
-static inline void change_bit(int nr, volatile unsigned long *addr)
-{
- unsigned long mask = BIT_MASK(nr);
- unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr);
- unsigned long flags;
-
- _atomic_spin_lock_irqsave(p, flags);
- *p ^= mask;
- _atomic_spin_unlock_irqrestore(p, flags);
-}
-
-/**
- * test_and_set_bit - Set a bit and return its old value
- * @nr: Bit to set
- * @addr: Address to count from
- *
- * This operation is atomic and cannot be reordered.
- * It may be reordered on other architectures than x86.
- * It also implies a memory barrier.
- */
-static inline int test_and_set_bit(int nr, volatile unsigned long *addr)
-{
- unsigned long mask = BIT_MASK(nr);
- unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr);
- unsigned long old;
- unsigned long flags;
-
- _atomic_spin_lock_irqsave(p, flags);
- old = *p;
- *p = old | mask;
- _atomic_spin_unlock_irqrestore(p, flags);
-
- return (old & mask) != 0;
-}
-
-/**
- * test_and_clear_bit - Clear a bit and return its old value
- * @nr: Bit to clear
- * @addr: Address to count from
- *
- * This operation is atomic and cannot be reordered.
- * It can be reorderdered on other architectures other than x86.
- * It also implies a memory barrier.
- */
-static inline int test_and_clear_bit(int nr, volatile unsigned long *addr)
-{
- unsigned long mask = BIT_MASK(nr);
- unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr);
- unsigned long old;
- unsigned long flags;
-
- _atomic_spin_lock_irqsave(p, flags);
- old = *p;
- *p = old & ~mask;
- _atomic_spin_unlock_irqrestore(p, flags);
-
- return (old & mask) != 0;
-}
-
-/**
- * test_and_change_bit - Change a bit and return its old value
- * @nr: Bit to change
- * @addr: Address to count from
- *
- * This operation is atomic and cannot be reordered.
- * It also implies a memory barrier.
- */
-static inline int test_and_change_bit(int nr, volatile unsigned long *addr)
-{
- unsigned long mask = BIT_MASK(nr);
- unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr);
- unsigned long old;
- unsigned long flags;
-
- _atomic_spin_lock_irqsave(p, flags);
- old = *p;
- *p = old ^ mask;
- _atomic_spin_unlock_irqrestore(p, flags);
-
- return (old & mask) != 0;
-}
-
-#endif /* _ASM_GENERIC_BITOPS_ATOMIC_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/bitops/const_hweight.h b/ANDROID_3.4.5/include/asm-generic/bitops/const_hweight.h
deleted file mode 100644
index fa2a50b7..00000000
--- a/ANDROID_3.4.5/include/asm-generic/bitops/const_hweight.h
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef _ASM_GENERIC_BITOPS_CONST_HWEIGHT_H_
-#define _ASM_GENERIC_BITOPS_CONST_HWEIGHT_H_
-
-/*
- * Compile time versions of __arch_hweightN()
- */
-#define __const_hweight8(w) \
- ( (!!((w) & (1ULL << 0))) + \
- (!!((w) & (1ULL << 1))) + \
- (!!((w) & (1ULL << 2))) + \
- (!!((w) & (1ULL << 3))) + \
- (!!((w) & (1ULL << 4))) + \
- (!!((w) & (1ULL << 5))) + \
- (!!((w) & (1ULL << 6))) + \
- (!!((w) & (1ULL << 7))) )
-
-#define __const_hweight16(w) (__const_hweight8(w) + __const_hweight8((w) >> 8 ))
-#define __const_hweight32(w) (__const_hweight16(w) + __const_hweight16((w) >> 16))
-#define __const_hweight64(w) (__const_hweight32(w) + __const_hweight32((w) >> 32))
-
-/*
- * Generic interface.
- */
-#define hweight8(w) (__builtin_constant_p(w) ? __const_hweight8(w) : __arch_hweight8(w))
-#define hweight16(w) (__builtin_constant_p(w) ? __const_hweight16(w) : __arch_hweight16(w))
-#define hweight32(w) (__builtin_constant_p(w) ? __const_hweight32(w) : __arch_hweight32(w))
-#define hweight64(w) (__builtin_constant_p(w) ? __const_hweight64(w) : __arch_hweight64(w))
-
-/*
- * Interface for known constant arguments
- */
-#define HWEIGHT8(w) (BUILD_BUG_ON_ZERO(!__builtin_constant_p(w)) + __const_hweight8(w))
-#define HWEIGHT16(w) (BUILD_BUG_ON_ZERO(!__builtin_constant_p(w)) + __const_hweight16(w))
-#define HWEIGHT32(w) (BUILD_BUG_ON_ZERO(!__builtin_constant_p(w)) + __const_hweight32(w))
-#define HWEIGHT64(w) (BUILD_BUG_ON_ZERO(!__builtin_constant_p(w)) + __const_hweight64(w))
-
-/*
- * Type invariant interface to the compile time constant hweight functions.
- */
-#define HWEIGHT(w) HWEIGHT64((u64)w)
-
-#endif /* _ASM_GENERIC_BITOPS_CONST_HWEIGHT_H_ */
diff --git a/ANDROID_3.4.5/include/asm-generic/bitops/ext2-atomic-setbit.h b/ANDROID_3.4.5/include/asm-generic/bitops/ext2-atomic-setbit.h
deleted file mode 100644
index 5a099785..00000000
--- a/ANDROID_3.4.5/include/asm-generic/bitops/ext2-atomic-setbit.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef _ASM_GENERIC_BITOPS_EXT2_ATOMIC_SETBIT_H_
-#define _ASM_GENERIC_BITOPS_EXT2_ATOMIC_SETBIT_H_
-
-/*
- * Atomic bitops based version of ext2 atomic bitops
- */
-
-#define ext2_set_bit_atomic(l, nr, addr) test_and_set_bit_le(nr, addr)
-#define ext2_clear_bit_atomic(l, nr, addr) test_and_clear_bit_le(nr, addr)
-
-#endif /* _ASM_GENERIC_BITOPS_EXT2_ATOMIC_SETBIT_H_ */
diff --git a/ANDROID_3.4.5/include/asm-generic/bitops/ext2-atomic.h b/ANDROID_3.4.5/include/asm-generic/bitops/ext2-atomic.h
deleted file mode 100644
index 87f0f109..00000000
--- a/ANDROID_3.4.5/include/asm-generic/bitops/ext2-atomic.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef _ASM_GENERIC_BITOPS_EXT2_ATOMIC_H_
-#define _ASM_GENERIC_BITOPS_EXT2_ATOMIC_H_
-
-/*
- * Spinlock based version of ext2 atomic bitops
- */
-
-#define ext2_set_bit_atomic(lock, nr, addr) \
- ({ \
- int ret; \
- spin_lock(lock); \
- ret = __test_and_set_bit_le(nr, addr); \
- spin_unlock(lock); \
- ret; \
- })
-
-#define ext2_clear_bit_atomic(lock, nr, addr) \
- ({ \
- int ret; \
- spin_lock(lock); \
- ret = __test_and_clear_bit_le(nr, addr); \
- spin_unlock(lock); \
- ret; \
- })
-
-#endif /* _ASM_GENERIC_BITOPS_EXT2_ATOMIC_H_ */
diff --git a/ANDROID_3.4.5/include/asm-generic/bitops/ffs.h b/ANDROID_3.4.5/include/asm-generic/bitops/ffs.h
deleted file mode 100644
index fbbb43af..00000000
--- a/ANDROID_3.4.5/include/asm-generic/bitops/ffs.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef _ASM_GENERIC_BITOPS_FFS_H_
-#define _ASM_GENERIC_BITOPS_FFS_H_
-
-/**
- * ffs - find first bit set
- * @x: the word to search
- *
- * This is defined the same way as
- * the libc and compiler builtin ffs routines, therefore
- * differs in spirit from the above ffz (man ffs).
- */
-static inline int ffs(int x)
-{
- int r = 1;
-
- if (!x)
- return 0;
- if (!(x & 0xffff)) {
- x >>= 16;
- r += 16;
- }
- if (!(x & 0xff)) {
- x >>= 8;
- r += 8;
- }
- if (!(x & 0xf)) {
- x >>= 4;
- r += 4;
- }
- if (!(x & 3)) {
- x >>= 2;
- r += 2;
- }
- if (!(x & 1)) {
- x >>= 1;
- r += 1;
- }
- return r;
-}
-
-#endif /* _ASM_GENERIC_BITOPS_FFS_H_ */
diff --git a/ANDROID_3.4.5/include/asm-generic/bitops/ffz.h b/ANDROID_3.4.5/include/asm-generic/bitops/ffz.h
deleted file mode 100644
index 6744bd4c..00000000
--- a/ANDROID_3.4.5/include/asm-generic/bitops/ffz.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef _ASM_GENERIC_BITOPS_FFZ_H_
-#define _ASM_GENERIC_BITOPS_FFZ_H_
-
-/*
- * ffz - find first zero in word.
- * @word: The word to search
- *
- * Undefined if no zero exists, so code should check against ~0UL first.
- */
-#define ffz(x) __ffs(~(x))
-
-#endif /* _ASM_GENERIC_BITOPS_FFZ_H_ */
diff --git a/ANDROID_3.4.5/include/asm-generic/bitops/find.h b/ANDROID_3.4.5/include/asm-generic/bitops/find.h
deleted file mode 100644
index 71c77803..00000000
--- a/ANDROID_3.4.5/include/asm-generic/bitops/find.h
+++ /dev/null
@@ -1,54 +0,0 @@
-#ifndef _ASM_GENERIC_BITOPS_FIND_H_
-#define _ASM_GENERIC_BITOPS_FIND_H_
-
-#ifndef find_next_bit
-/**
- * find_next_bit - find the next set bit in a memory region
- * @addr: The address to base the search on
- * @offset: The bitnumber to start searching at
- * @size: The bitmap size in bits
- */
-extern unsigned long find_next_bit(const unsigned long *addr, unsigned long
- size, unsigned long offset);
-#endif
-
-#ifndef find_next_zero_bit
-/**
- * find_next_zero_bit - find the next cleared bit in a memory region
- * @addr: The address to base the search on
- * @offset: The bitnumber to start searching at
- * @size: The bitmap size in bits
- */
-extern unsigned long find_next_zero_bit(const unsigned long *addr, unsigned
- long size, unsigned long offset);
-#endif
-
-#ifdef CONFIG_GENERIC_FIND_FIRST_BIT
-
-/**
- * find_first_bit - find the first set bit in a memory region
- * @addr: The address to start the search at
- * @size: The maximum size to search
- *
- * Returns the bit number of the first set bit.
- */
-extern unsigned long find_first_bit(const unsigned long *addr,
- unsigned long size);
-
-/**
- * find_first_zero_bit - find the first cleared bit in a memory region
- * @addr: The address to start the search at
- * @size: The maximum size to search
- *
- * Returns the bit number of the first cleared bit.
- */
-extern unsigned long find_first_zero_bit(const unsigned long *addr,
- unsigned long size);
-#else /* CONFIG_GENERIC_FIND_FIRST_BIT */
-
-#define find_first_bit(addr, size) find_next_bit((addr), (size), 0)
-#define find_first_zero_bit(addr, size) find_next_zero_bit((addr), (size), 0)
-
-#endif /* CONFIG_GENERIC_FIND_FIRST_BIT */
-
-#endif /*_ASM_GENERIC_BITOPS_FIND_H_ */
diff --git a/ANDROID_3.4.5/include/asm-generic/bitops/fls.h b/ANDROID_3.4.5/include/asm-generic/bitops/fls.h
deleted file mode 100644
index 0576d1f4..00000000
--- a/ANDROID_3.4.5/include/asm-generic/bitops/fls.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef _ASM_GENERIC_BITOPS_FLS_H_
-#define _ASM_GENERIC_BITOPS_FLS_H_
-
-/**
- * fls - find last (most-significant) bit set
- * @x: the word to search
- *
- * This is defined the same way as ffs.
- * Note fls(0) = 0, fls(1) = 1, fls(0x80000000) = 32.
- */
-
-static __always_inline int fls(int x)
-{
- int r = 32;
-
- if (!x)
- return 0;
- if (!(x & 0xffff0000u)) {
- x <<= 16;
- r -= 16;
- }
- if (!(x & 0xff000000u)) {
- x <<= 8;
- r -= 8;
- }
- if (!(x & 0xf0000000u)) {
- x <<= 4;
- r -= 4;
- }
- if (!(x & 0xc0000000u)) {
- x <<= 2;
- r -= 2;
- }
- if (!(x & 0x80000000u)) {
- x <<= 1;
- r -= 1;
- }
- return r;
-}
-
-#endif /* _ASM_GENERIC_BITOPS_FLS_H_ */
diff --git a/ANDROID_3.4.5/include/asm-generic/bitops/fls64.h b/ANDROID_3.4.5/include/asm-generic/bitops/fls64.h
deleted file mode 100644
index b097cf84..00000000
--- a/ANDROID_3.4.5/include/asm-generic/bitops/fls64.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef _ASM_GENERIC_BITOPS_FLS64_H_
-#define _ASM_GENERIC_BITOPS_FLS64_H_
-
-#include <asm/types.h>
-
-/**
- * fls64 - find last set bit in a 64-bit word
- * @x: the word to search
- *
- * This is defined in a similar way as the libc and compiler builtin
- * ffsll, but returns the position of the most significant set bit.
- *
- * fls64(value) returns 0 if value is 0 or the position of the last
- * set bit if value is nonzero. The last (most significant) bit is
- * at position 64.
- */
-#if BITS_PER_LONG == 32
-static __always_inline int fls64(__u64 x)
-{
- __u32 h = x >> 32;
- if (h)
- return fls(h) + 32;
- return fls(x);
-}
-#elif BITS_PER_LONG == 64
-static __always_inline int fls64(__u64 x)
-{
- if (x == 0)
- return 0;
- return __fls(x) + 1;
-}
-#else
-#error BITS_PER_LONG not 32 or 64
-#endif
-
-#endif /* _ASM_GENERIC_BITOPS_FLS64_H_ */
diff --git a/ANDROID_3.4.5/include/asm-generic/bitops/hweight.h b/ANDROID_3.4.5/include/asm-generic/bitops/hweight.h
deleted file mode 100644
index a94d6519..00000000
--- a/ANDROID_3.4.5/include/asm-generic/bitops/hweight.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef _ASM_GENERIC_BITOPS_HWEIGHT_H_
-#define _ASM_GENERIC_BITOPS_HWEIGHT_H_
-
-#include <asm-generic/bitops/arch_hweight.h>
-#include <asm-generic/bitops/const_hweight.h>
-
-#endif /* _ASM_GENERIC_BITOPS_HWEIGHT_H_ */
diff --git a/ANDROID_3.4.5/include/asm-generic/bitops/le.h b/ANDROID_3.4.5/include/asm-generic/bitops/le.h
deleted file mode 100644
index f95c663a..00000000
--- a/ANDROID_3.4.5/include/asm-generic/bitops/le.h
+++ /dev/null
@@ -1,87 +0,0 @@
-#ifndef _ASM_GENERIC_BITOPS_LE_H_
-#define _ASM_GENERIC_BITOPS_LE_H_
-
-#include <asm/types.h>
-#include <asm/byteorder.h>
-
-#if defined(__LITTLE_ENDIAN)
-
-#define BITOP_LE_SWIZZLE 0
-
-static inline unsigned long find_next_zero_bit_le(const void *addr,
- unsigned long size, unsigned long offset)
-{
- return find_next_zero_bit(addr, size, offset);
-}
-
-static inline unsigned long find_next_bit_le(const void *addr,
- unsigned long size, unsigned long offset)
-{
- return find_next_bit(addr, size, offset);
-}
-
-static inline unsigned long find_first_zero_bit_le(const void *addr,
- unsigned long size)
-{
- return find_first_zero_bit(addr, size);
-}
-
-#elif defined(__BIG_ENDIAN)
-
-#define BITOP_LE_SWIZZLE ((BITS_PER_LONG-1) & ~0x7)
-
-#ifndef find_next_zero_bit_le
-extern unsigned long find_next_zero_bit_le(const void *addr,
- unsigned long size, unsigned long offset);
-#endif
-
-#ifndef find_next_bit_le
-extern unsigned long find_next_bit_le(const void *addr,
- unsigned long size, unsigned long offset);
-#endif
-
-#ifndef find_first_zero_bit_le
-#define find_first_zero_bit_le(addr, size) \
- find_next_zero_bit_le((addr), (size), 0)
-#endif
-
-#else
-#error "Please fix <asm/byteorder.h>"
-#endif
-
-static inline int test_bit_le(int nr, const void *addr)
-{
- return test_bit(nr ^ BITOP_LE_SWIZZLE, addr);
-}
-
-static inline void __set_bit_le(int nr, void *addr)
-{
- __set_bit(nr ^ BITOP_LE_SWIZZLE, addr);
-}
-
-static inline void __clear_bit_le(int nr, void *addr)
-{
- __clear_bit(nr ^ BITOP_LE_SWIZZLE, addr);
-}
-
-static inline int test_and_set_bit_le(int nr, void *addr)
-{
- return test_and_set_bit(nr ^ BITOP_LE_SWIZZLE, addr);
-}
-
-static inline int test_and_clear_bit_le(int nr, void *addr)
-{
- return test_and_clear_bit(nr ^ BITOP_LE_SWIZZLE, addr);
-}
-
-static inline int __test_and_set_bit_le(int nr, void *addr)
-{
- return __test_and_set_bit(nr ^ BITOP_LE_SWIZZLE, addr);
-}
-
-static inline int __test_and_clear_bit_le(int nr, void *addr)
-{
- return __test_and_clear_bit(nr ^ BITOP_LE_SWIZZLE, addr);
-}
-
-#endif /* _ASM_GENERIC_BITOPS_LE_H_ */
diff --git a/ANDROID_3.4.5/include/asm-generic/bitops/lock.h b/ANDROID_3.4.5/include/asm-generic/bitops/lock.h
deleted file mode 100644
index 308a9e22..00000000
--- a/ANDROID_3.4.5/include/asm-generic/bitops/lock.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef _ASM_GENERIC_BITOPS_LOCK_H_
-#define _ASM_GENERIC_BITOPS_LOCK_H_
-
-/**
- * test_and_set_bit_lock - Set a bit and return its old value, for lock
- * @nr: Bit to set
- * @addr: Address to count from
- *
- * This operation is atomic and provides acquire barrier semantics.
- * It can be used to implement bit locks.
- */
-#define test_and_set_bit_lock(nr, addr) test_and_set_bit(nr, addr)
-
-/**
- * clear_bit_unlock - Clear a bit in memory, for unlock
- * @nr: the bit to set
- * @addr: the address to start counting from
- *
- * This operation is atomic and provides release barrier semantics.
- */
-#define clear_bit_unlock(nr, addr) \
-do { \
- smp_mb__before_clear_bit(); \
- clear_bit(nr, addr); \
-} while (0)
-
-/**
- * __clear_bit_unlock - Clear a bit in memory, for unlock
- * @nr: the bit to set
- * @addr: the address to start counting from
- *
- * This operation is like clear_bit_unlock, however it is not atomic.
- * It does provide release barrier semantics so it can be used to unlock
- * a bit lock, however it would only be used if no other CPU can modify
- * any bits in the memory until the lock is released (a good example is
- * if the bit lock itself protects access to the other bits in the word).
- */
-#define __clear_bit_unlock(nr, addr) \
-do { \
- smp_mb(); \
- __clear_bit(nr, addr); \
-} while (0)
-
-#endif /* _ASM_GENERIC_BITOPS_LOCK_H_ */
-
diff --git a/ANDROID_3.4.5/include/asm-generic/bitops/non-atomic.h b/ANDROID_3.4.5/include/asm-generic/bitops/non-atomic.h
deleted file mode 100644
index 697cc2b7..00000000
--- a/ANDROID_3.4.5/include/asm-generic/bitops/non-atomic.h
+++ /dev/null
@@ -1,108 +0,0 @@
-#ifndef _ASM_GENERIC_BITOPS_NON_ATOMIC_H_
-#define _ASM_GENERIC_BITOPS_NON_ATOMIC_H_
-
-#include <asm/types.h>
-
-/**
- * __set_bit - Set a bit in memory
- * @nr: the bit to set
- * @addr: the address to start counting from
- *
- * Unlike set_bit(), this function is non-atomic and may be reordered.
- * If it's called on the same region of memory simultaneously, the effect
- * may be that only one operation succeeds.
- */
-static inline void __set_bit(int nr, volatile unsigned long *addr)
-{
- unsigned long mask = BIT_MASK(nr);
- unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr);
-
- *p |= mask;
-}
-
-static inline void __clear_bit(int nr, volatile unsigned long *addr)
-{
- unsigned long mask = BIT_MASK(nr);
- unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr);
-
- *p &= ~mask;
-}
-
-/**
- * __change_bit - Toggle a bit in memory
- * @nr: the bit to change
- * @addr: the address to start counting from
- *
- * Unlike change_bit(), this function is non-atomic and may be reordered.
- * If it's called on the same region of memory simultaneously, the effect
- * may be that only one operation succeeds.
- */
-static inline void __change_bit(int nr, volatile unsigned long *addr)
-{
- unsigned long mask = BIT_MASK(nr);
- unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr);
-
- *p ^= mask;
-}
-
-/**
- * __test_and_set_bit - Set a bit and return its old value
- * @nr: Bit to set
- * @addr: Address to count from
- *
- * This operation is non-atomic and can be reordered.
- * If two examples of this operation race, one can appear to succeed
- * but actually fail. You must protect multiple accesses with a lock.
- */
-static inline int __test_and_set_bit(int nr, volatile unsigned long *addr)
-{
- unsigned long mask = BIT_MASK(nr);
- unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr);
- unsigned long old = *p;
-
- *p = old | mask;
- return (old & mask) != 0;
-}
-
-/**
- * __test_and_clear_bit - Clear a bit and return its old value
- * @nr: Bit to clear
- * @addr: Address to count from
- *
- * This operation is non-atomic and can be reordered.
- * If two examples of this operation race, one can appear to succeed
- * but actually fail. You must protect multiple accesses with a lock.
- */
-static inline int __test_and_clear_bit(int nr, volatile unsigned long *addr)
-{
- unsigned long mask = BIT_MASK(nr);
- unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr);
- unsigned long old = *p;
-
- *p = old & ~mask;
- return (old & mask) != 0;
-}
-
-/* WARNING: non atomic and it can be reordered! */
-static inline int __test_and_change_bit(int nr,
- volatile unsigned long *addr)
-{
- unsigned long mask = BIT_MASK(nr);
- unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr);
- unsigned long old = *p;
-
- *p = old ^ mask;
- return (old & mask) != 0;
-}
-
-/**
- * test_bit - Determine whether a bit is set
- * @nr: bit number to test
- * @addr: Address to start counting from
- */
-static inline int test_bit(int nr, const volatile unsigned long *addr)
-{
- return 1UL & (addr[BIT_WORD(nr)] >> (nr & (BITS_PER_LONG-1)));
-}
-
-#endif /* _ASM_GENERIC_BITOPS_NON_ATOMIC_H_ */
diff --git a/ANDROID_3.4.5/include/asm-generic/bitops/sched.h b/ANDROID_3.4.5/include/asm-generic/bitops/sched.h
deleted file mode 100644
index 604fab70..00000000
--- a/ANDROID_3.4.5/include/asm-generic/bitops/sched.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef _ASM_GENERIC_BITOPS_SCHED_H_
-#define _ASM_GENERIC_BITOPS_SCHED_H_
-
-#include <linux/compiler.h> /* unlikely() */
-#include <asm/types.h>
-
-/*
- * Every architecture must define this function. It's the fastest
- * way of searching a 100-bit bitmap. It's guaranteed that at least
- * one of the 100 bits is cleared.
- */
-static inline int sched_find_first_bit(const unsigned long *b)
-{
-#if BITS_PER_LONG == 64
- if (b[0])
- return __ffs(b[0]);
- return __ffs(b[1]) + 64;
-#elif BITS_PER_LONG == 32
- if (b[0])
- return __ffs(b[0]);
- if (b[1])
- return __ffs(b[1]) + 32;
- if (b[2])
- return __ffs(b[2]) + 64;
- return __ffs(b[3]) + 96;
-#else
-#error BITS_PER_LONG not defined
-#endif
-}
-
-#endif /* _ASM_GENERIC_BITOPS_SCHED_H_ */
diff --git a/ANDROID_3.4.5/include/asm-generic/bitsperlong.h b/ANDROID_3.4.5/include/asm-generic/bitsperlong.h
deleted file mode 100644
index 4ae54e07..00000000
--- a/ANDROID_3.4.5/include/asm-generic/bitsperlong.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef __ASM_GENERIC_BITS_PER_LONG
-#define __ASM_GENERIC_BITS_PER_LONG
-
-/*
- * There seems to be no way of detecting this automatically from user
- * space, so 64 bit architectures should override this in their
- * bitsperlong.h. In particular, an architecture that supports
- * both 32 and 64 bit user space must not rely on CONFIG_64BIT
- * to decide it, but rather check a compiler provided macro.
- */
-#ifndef __BITS_PER_LONG
-#define __BITS_PER_LONG 32
-#endif
-
-#ifdef __KERNEL__
-
-#ifdef CONFIG_64BIT
-#define BITS_PER_LONG 64
-#else
-#define BITS_PER_LONG 32
-#endif /* CONFIG_64BIT */
-
-/*
- * FIXME: The check currently breaks x86-64 build, so it's
- * temporarily disabled. Please fix x86-64 and reenable
- */
-#if 0 && BITS_PER_LONG != __BITS_PER_LONG
-#error Inconsistent word size. Check asm/bitsperlong.h
-#endif
-
-#endif /* __KERNEL__ */
-#endif /* __ASM_GENERIC_BITS_PER_LONG */
diff --git a/ANDROID_3.4.5/include/asm-generic/bug.h b/ANDROID_3.4.5/include/asm-generic/bug.h
deleted file mode 100644
index 2520a6e2..00000000
--- a/ANDROID_3.4.5/include/asm-generic/bug.h
+++ /dev/null
@@ -1,205 +0,0 @@
-#ifndef _ASM_GENERIC_BUG_H
-#define _ASM_GENERIC_BUG_H
-
-#include <linux/compiler.h>
-
-#ifdef CONFIG_BUG
-
-#ifdef CONFIG_GENERIC_BUG
-#ifndef __ASSEMBLY__
-struct bug_entry {
-#ifndef CONFIG_GENERIC_BUG_RELATIVE_POINTERS
- unsigned long bug_addr;
-#else
- signed int bug_addr_disp;
-#endif
-#ifdef CONFIG_DEBUG_BUGVERBOSE
-#ifndef CONFIG_GENERIC_BUG_RELATIVE_POINTERS
- const char *file;
-#else
- signed int file_disp;
-#endif
- unsigned short line;
-#endif
- unsigned short flags;
-};
-#endif /* __ASSEMBLY__ */
-
-#define BUGFLAG_WARNING (1 << 0)
-#define BUGFLAG_TAINT(taint) (BUGFLAG_WARNING | ((taint) << 8))
-#define BUG_GET_TAINT(bug) ((bug)->flags >> 8)
-
-#endif /* CONFIG_GENERIC_BUG */
-
-/*
- * Don't use BUG() or BUG_ON() unless there's really no way out; one
- * example might be detecting data structure corruption in the middle
- * of an operation that can't be backed out of. If the (sub)system
- * can somehow continue operating, perhaps with reduced functionality,
- * it's probably not BUG-worthy.
- *
- * If you're tempted to BUG(), think again: is completely giving up
- * really the *only* solution? There are usually better options, where
- * users don't need to reboot ASAP and can mostly shut down cleanly.
- */
-#ifndef HAVE_ARCH_BUG
-#define BUG() do { \
- printk("BUG: failure at %s:%d/%s()!\n", __FILE__, __LINE__, __func__); \
- panic("BUG!"); \
-} while (0)
-#endif
-
-#ifndef HAVE_ARCH_BUG_ON
-#define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while(0)
-#endif
-
-/*
- * WARN(), WARN_ON(), WARN_ON_ONCE, and so on can be used to report
- * significant issues that need prompt attention if they should ever
- * appear at runtime. Use the versions with printk format strings
- * to provide better diagnostics.
- */
-#ifndef __WARN_TAINT
-#ifndef __ASSEMBLY__
-extern __printf(3, 4)
-void warn_slowpath_fmt(const char *file, const int line,
- const char *fmt, ...);
-extern __printf(4, 5)
-void warn_slowpath_fmt_taint(const char *file, const int line, unsigned taint,
- const char *fmt, ...);
-extern void warn_slowpath_null(const char *file, const int line);
-#define WANT_WARN_ON_SLOWPATH
-#endif
-#define __WARN() warn_slowpath_null(__FILE__, __LINE__)
-#define __WARN_printf(arg...) warn_slowpath_fmt(__FILE__, __LINE__, arg)
-#define __WARN_printf_taint(taint, arg...) \
- warn_slowpath_fmt_taint(__FILE__, __LINE__, taint, arg)
-#else
-#define __WARN() __WARN_TAINT(TAINT_WARN)
-#define __WARN_printf(arg...) do { printk(arg); __WARN(); } while (0)
-#define __WARN_printf_taint(taint, arg...) \
- do { printk(arg); __WARN_TAINT(taint); } while (0)
-#endif
-
-#ifndef WARN_ON
-#define WARN_ON(condition) ({ \
- int __ret_warn_on = !!(condition); \
- if (unlikely(__ret_warn_on)) \
- __WARN(); \
- unlikely(__ret_warn_on); \
-})
-#endif
-
-#ifndef WARN
-#define WARN(condition, format...) ({ \
- int __ret_warn_on = !!(condition); \
- if (unlikely(__ret_warn_on)) \
- __WARN_printf(format); \
- unlikely(__ret_warn_on); \
-})
-#endif
-
-#define WARN_TAINT(condition, taint, format...) ({ \
- int __ret_warn_on = !!(condition); \
- if (unlikely(__ret_warn_on)) \
- __WARN_printf_taint(taint, format); \
- unlikely(__ret_warn_on); \
-})
-
-#else /* !CONFIG_BUG */
-#ifndef HAVE_ARCH_BUG
-#define BUG() do {} while(0)
-#endif
-
-#ifndef HAVE_ARCH_BUG_ON
-#define BUG_ON(condition) do { if (condition) ; } while(0)
-#endif
-
-#ifndef HAVE_ARCH_WARN_ON
-#define WARN_ON(condition) ({ \
- int __ret_warn_on = !!(condition); \
- unlikely(__ret_warn_on); \
-})
-#endif
-
-#ifndef WARN
-#define WARN(condition, format...) ({ \
- int __ret_warn_on = !!(condition); \
- unlikely(__ret_warn_on); \
-})
-#endif
-
-#define WARN_TAINT(condition, taint, format...) WARN_ON(condition)
-
-#endif
-
-#define WARN_ON_ONCE(condition) ({ \
- static bool __section(.data.unlikely) __warned; \
- int __ret_warn_once = !!(condition); \
- \
- if (unlikely(__ret_warn_once)) \
- if (WARN_ON(!__warned)) \
- __warned = true; \
- unlikely(__ret_warn_once); \
-})
-
-#define WARN_ONCE(condition, format...) ({ \
- static bool __section(.data.unlikely) __warned; \
- int __ret_warn_once = !!(condition); \
- \
- if (unlikely(__ret_warn_once)) \
- if (WARN(!__warned, format)) \
- __warned = true; \
- unlikely(__ret_warn_once); \
-})
-
-#define WARN_TAINT_ONCE(condition, taint, format...) ({ \
- static bool __section(.data.unlikely) __warned; \
- int __ret_warn_once = !!(condition); \
- \
- if (unlikely(__ret_warn_once)) \
- if (WARN_TAINT(!__warned, taint, format)) \
- __warned = true; \
- unlikely(__ret_warn_once); \
-})
-
-/*
- * WARN_ON_SMP() is for cases that the warning is either
- * meaningless for !SMP or may even cause failures.
- * This is usually used for cases that we have
- * WARN_ON(!spin_is_locked(&lock)) checks, as spin_is_locked()
- * returns 0 for uniprocessor settings.
- * It can also be used with values that are only defined
- * on SMP:
- *
- * struct foo {
- * [...]
- * #ifdef CONFIG_SMP
- * int bar;
- * #endif
- * };
- *
- * void func(struct foo *zoot)
- * {
- * WARN_ON_SMP(!zoot->bar);
- *
- * For CONFIG_SMP, WARN_ON_SMP() should act the same as WARN_ON(),
- * and should be a nop and return false for uniprocessor.
- *
- * if (WARN_ON_SMP(x)) returns true only when CONFIG_SMP is set
- * and x is true.
- */
-#ifdef CONFIG_SMP
-# define WARN_ON_SMP(x) WARN_ON(x)
-#else
-/*
- * Use of ({0;}) because WARN_ON_SMP(x) may be used either as
- * a stand alone line statement or as a condition in an if ()
- * statement.
- * A simple "0" would cause gcc to give a "statement has no effect"
- * warning.
- */
-# define WARN_ON_SMP(x) ({0;})
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/asm-generic/bugs.h b/ANDROID_3.4.5/include/asm-generic/bugs.h
deleted file mode 100644
index 6c4f62ea..00000000
--- a/ANDROID_3.4.5/include/asm-generic/bugs.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef __ASM_GENERIC_BUGS_H
-#define __ASM_GENERIC_BUGS_H
-/*
- * This file is included by 'init/main.c' to check for
- * architecture-dependent bugs.
- */
-
-static inline void check_bugs(void) { }
-
-#endif /* __ASM_GENERIC_BUGS_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/cache.h b/ANDROID_3.4.5/include/asm-generic/cache.h
deleted file mode 100644
index 1bfcfe5c..00000000
--- a/ANDROID_3.4.5/include/asm-generic/cache.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef __ASM_GENERIC_CACHE_H
-#define __ASM_GENERIC_CACHE_H
-/*
- * 32 bytes appears to be the most common cache line size,
- * so make that the default here. Architectures with larger
- * cache lines need to provide their own cache.h.
- */
-
-#define L1_CACHE_SHIFT 5
-#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
-
-#endif /* __ASM_GENERIC_CACHE_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/cacheflush.h b/ANDROID_3.4.5/include/asm-generic/cacheflush.h
deleted file mode 100644
index 87bc536c..00000000
--- a/ANDROID_3.4.5/include/asm-generic/cacheflush.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef __ASM_CACHEFLUSH_H
-#define __ASM_CACHEFLUSH_H
-
-/* Keep includes the same across arches. */
-#include <linux/mm.h>
-
-/*
- * The cache doesn't need to be flushed when TLB entries change when
- * the cache is mapped to physical memory, not virtual memory
- */
-#define flush_cache_all() do { } while (0)
-#define flush_cache_mm(mm) do { } while (0)
-#define flush_cache_dup_mm(mm) do { } while (0)
-#define flush_cache_range(vma, start, end) do { } while (0)
-#define flush_cache_page(vma, vmaddr, pfn) do { } while (0)
-#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 0
-#define flush_dcache_page(page) do { } while (0)
-#define flush_dcache_mmap_lock(mapping) do { } while (0)
-#define flush_dcache_mmap_unlock(mapping) do { } while (0)
-#define flush_icache_range(start, end) do { } while (0)
-#define flush_icache_page(vma,pg) do { } while (0)
-#define flush_icache_user_range(vma,pg,adr,len) do { } while (0)
-#define flush_cache_vmap(start, end) do { } while (0)
-#define flush_cache_vunmap(start, end) do { } while (0)
-
-#define copy_to_user_page(vma, page, vaddr, dst, src, len) \
- do { \
- memcpy(dst, src, len); \
- flush_icache_user_range(vma, page, vaddr, len); \
- } while (0)
-#define copy_from_user_page(vma, page, vaddr, dst, src, len) \
- memcpy(dst, src, len)
-
-#endif /* __ASM_CACHEFLUSH_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/checksum.h b/ANDROID_3.4.5/include/asm-generic/checksum.h
deleted file mode 100644
index c084767c..00000000
--- a/ANDROID_3.4.5/include/asm-generic/checksum.h
+++ /dev/null
@@ -1,83 +0,0 @@
-#ifndef __ASM_GENERIC_CHECKSUM_H
-#define __ASM_GENERIC_CHECKSUM_H
-
-/*
- * computes the checksum of a memory block at buff, length len,
- * and adds in "sum" (32-bit)
- *
- * returns a 32-bit number suitable for feeding into itself
- * or csum_tcpudp_magic
- *
- * this function must be called with even lengths, except
- * for the last fragment, which may be odd
- *
- * it's best to have buff aligned on a 32-bit boundary
- */
-extern __wsum csum_partial(const void *buff, int len, __wsum sum);
-
-/*
- * the same as csum_partial, but copies from src while it
- * checksums
- *
- * here even more important to align src and dst on a 32-bit (or even
- * better 64-bit) boundary
- */
-extern __wsum csum_partial_copy(const void *src, void *dst, int len, __wsum sum);
-
-/*
- * the same as csum_partial_copy, but copies from user space.
- *
- * here even more important to align src and dst on a 32-bit (or even
- * better 64-bit) boundary
- */
-extern __wsum csum_partial_copy_from_user(const void __user *src, void *dst,
- int len, __wsum sum, int *csum_err);
-
-#ifndef csum_partial_copy_nocheck
-#define csum_partial_copy_nocheck(src, dst, len, sum) \
- csum_partial_copy((src), (dst), (len), (sum))
-#endif
-
-/*
- * This is a version of ip_compute_csum() optimized for IP headers,
- * which always checksum on 4 octet boundaries.
- */
-extern __sum16 ip_fast_csum(const void *iph, unsigned int ihl);
-
-/*
- * Fold a partial checksum
- */
-static inline __sum16 csum_fold(__wsum csum)
-{
- u32 sum = (__force u32)csum;
- sum = (sum & 0xffff) + (sum >> 16);
- sum = (sum & 0xffff) + (sum >> 16);
- return (__force __sum16)~sum;
-}
-
-#ifndef csum_tcpudp_nofold
-/*
- * computes the checksum of the TCP/UDP pseudo-header
- * returns a 16-bit checksum, already complemented
- */
-extern __wsum
-csum_tcpudp_nofold(__be32 saddr, __be32 daddr, unsigned short len,
- unsigned short proto, __wsum sum);
-#endif
-
-#ifndef csum_tcpudp_magic
-static inline __sum16
-csum_tcpudp_magic(__be32 saddr, __be32 daddr, unsigned short len,
- unsigned short proto, __wsum sum)
-{
- return csum_fold(csum_tcpudp_nofold(saddr, daddr, len, proto, sum));
-}
-#endif
-
-/*
- * this routine is used for miscellaneous IP-like checksums, mainly
- * in icmp.c
- */
-extern __sum16 ip_compute_csum(const void *buff, int len);
-
-#endif /* __ASM_GENERIC_CHECKSUM_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/cmpxchg-local.h b/ANDROID_3.4.5/include/asm-generic/cmpxchg-local.h
deleted file mode 100644
index 2533fddd..00000000
--- a/ANDROID_3.4.5/include/asm-generic/cmpxchg-local.h
+++ /dev/null
@@ -1,66 +0,0 @@
-#ifndef __ASM_GENERIC_CMPXCHG_LOCAL_H
-#define __ASM_GENERIC_CMPXCHG_LOCAL_H
-
-#include <linux/types.h>
-#include <linux/irqflags.h>
-
-extern unsigned long wrong_size_cmpxchg(volatile void *ptr);
-
-/*
- * Generic version of __cmpxchg_local (disables interrupts). Takes an unsigned
- * long parameter, supporting various types of architectures.
- */
-static inline unsigned long __cmpxchg_local_generic(volatile void *ptr,
- unsigned long old, unsigned long new, int size)
-{
- unsigned long flags, prev;
-
- /*
- * Sanity checking, compile-time.
- */
- if (size == 8 && sizeof(unsigned long) != 8)
- wrong_size_cmpxchg(ptr);
-
- local_irq_save(flags);
- switch (size) {
- case 1: prev = *(u8 *)ptr;
- if (prev == old)
- *(u8 *)ptr = (u8)new;
- break;
- case 2: prev = *(u16 *)ptr;
- if (prev == old)
- *(u16 *)ptr = (u16)new;
- break;
- case 4: prev = *(u32 *)ptr;
- if (prev == old)
- *(u32 *)ptr = (u32)new;
- break;
- case 8: prev = *(u64 *)ptr;
- if (prev == old)
- *(u64 *)ptr = (u64)new;
- break;
- default:
- wrong_size_cmpxchg(ptr);
- }
- local_irq_restore(flags);
- return prev;
-}
-
-/*
- * Generic version of __cmpxchg64_local. Takes an u64 parameter.
- */
-static inline u64 __cmpxchg64_local_generic(volatile void *ptr,
- u64 old, u64 new)
-{
- u64 prev;
- unsigned long flags;
-
- local_irq_save(flags);
- prev = *(u64 *)ptr;
- if (prev == old)
- *(u64 *)ptr = new;
- local_irq_restore(flags);
- return prev;
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/asm-generic/cmpxchg.h b/ANDROID_3.4.5/include/asm-generic/cmpxchg.h
deleted file mode 100644
index 14883026..00000000
--- a/ANDROID_3.4.5/include/asm-generic/cmpxchg.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Generic UP xchg and cmpxchg using interrupt disablement. Does not
- * support SMP.
- */
-
-#ifndef __ASM_GENERIC_CMPXCHG_H
-#define __ASM_GENERIC_CMPXCHG_H
-
-#ifdef CONFIG_SMP
-#error "Cannot use generic cmpxchg on SMP"
-#endif
-
-#include <linux/types.h>
-#include <linux/irqflags.h>
-
-#ifndef xchg
-
-/*
- * This function doesn't exist, so you'll get a linker error if
- * something tries to do an invalidly-sized xchg().
- */
-extern void __xchg_called_with_bad_pointer(void);
-
-static inline
-unsigned long __xchg(unsigned long x, volatile void *ptr, int size)
-{
- unsigned long ret, flags;
-
- switch (size) {
- case 1:
-#ifdef __xchg_u8
- return __xchg_u8(x, ptr);
-#else
- local_irq_save(flags);
- ret = *(volatile u8 *)ptr;
- *(volatile u8 *)ptr = x;
- local_irq_restore(flags);
- return ret;
-#endif /* __xchg_u8 */
-
- case 2:
-#ifdef __xchg_u16
- return __xchg_u16(x, ptr);
-#else
- local_irq_save(flags);
- ret = *(volatile u16 *)ptr;
- *(volatile u16 *)ptr = x;
- local_irq_restore(flags);
- return ret;
-#endif /* __xchg_u16 */
-
- case 4:
-#ifdef __xchg_u32
- return __xchg_u32(x, ptr);
-#else
- local_irq_save(flags);
- ret = *(volatile u32 *)ptr;
- *(volatile u32 *)ptr = x;
- local_irq_restore(flags);
- return ret;
-#endif /* __xchg_u32 */
-
-#ifdef CONFIG_64BIT
- case 8:
-#ifdef __xchg_u64
- return __xchg_u64(x, ptr);
-#else
- local_irq_save(flags);
- ret = *(volatile u64 *)ptr;
- *(volatile u64 *)ptr = x;
- local_irq_restore(flags);
- return ret;
-#endif /* __xchg_u64 */
-#endif /* CONFIG_64BIT */
-
- default:
- __xchg_called_with_bad_pointer();
- return x;
- }
-}
-
-#define xchg(ptr, x) \
- ((__typeof__(*(ptr))) __xchg((unsigned long)(x), (ptr), sizeof(*(ptr))))
-
-#endif /* xchg */
-
-/*
- * Atomic compare and exchange.
- *
- * Do not define __HAVE_ARCH_CMPXCHG because we want to use it to check whether
- * a cmpxchg primitive faster than repeated local irq save/restore exists.
- */
-#include <asm-generic/cmpxchg-local.h>
-
-#define cmpxchg(ptr, o, n) cmpxchg_local((ptr), (o), (n))
-#define cmpxchg64(ptr, o, n) cmpxchg64_local((ptr), (o), (n))
-
-#endif /* __ASM_GENERIC_CMPXCHG_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/cputime.h b/ANDROID_3.4.5/include/asm-generic/cputime.h
deleted file mode 100644
index 9a62937c..00000000
--- a/ANDROID_3.4.5/include/asm-generic/cputime.h
+++ /dev/null
@@ -1,69 +0,0 @@
-#ifndef _ASM_GENERIC_CPUTIME_H
-#define _ASM_GENERIC_CPUTIME_H
-
-#include <linux/time.h>
-#include <linux/jiffies.h>
-
-typedef unsigned long __nocast cputime_t;
-
-#define cputime_one_jiffy jiffies_to_cputime(1)
-#define cputime_to_jiffies(__ct) (__force unsigned long)(__ct)
-#define cputime_to_scaled(__ct) (__ct)
-#define jiffies_to_cputime(__hz) (__force cputime_t)(__hz)
-
-typedef u64 __nocast cputime64_t;
-
-#define cputime64_to_jiffies64(__ct) (__force u64)(__ct)
-#define jiffies64_to_cputime64(__jif) (__force cputime64_t)(__jif)
-
-#define nsecs_to_cputime64(__ct) \
- jiffies64_to_cputime64(nsecs_to_jiffies64(__ct))
-
-
-/*
- * Convert cputime to microseconds and back.
- */
-#define cputime_to_usecs(__ct) \
- jiffies_to_usecs(cputime_to_jiffies(__ct))
-#define usecs_to_cputime(__usec) \
- jiffies_to_cputime(usecs_to_jiffies(__usec))
-#define usecs_to_cputime64(__usec) \
- jiffies64_to_cputime64(nsecs_to_jiffies64((__usec) * 1000))
-
-/*
- * Convert cputime to seconds and back.
- */
-#define cputime_to_secs(jif) (cputime_to_jiffies(jif) / HZ)
-#define secs_to_cputime(sec) jiffies_to_cputime((sec) * HZ)
-
-/*
- * Convert cputime to timespec and back.
- */
-#define timespec_to_cputime(__val) \
- jiffies_to_cputime(timespec_to_jiffies(__val))
-#define cputime_to_timespec(__ct,__val) \
- jiffies_to_timespec(cputime_to_jiffies(__ct),__val)
-
-/*
- * Convert cputime to timeval and back.
- */
-#define timeval_to_cputime(__val) \
- jiffies_to_cputime(timeval_to_jiffies(__val))
-#define cputime_to_timeval(__ct,__val) \
- jiffies_to_timeval(cputime_to_jiffies(__ct),__val)
-
-/*
- * Convert cputime to clock and back.
- */
-#define cputime_to_clock_t(__ct) \
- jiffies_to_clock_t(cputime_to_jiffies(__ct))
-#define clock_t_to_cputime(__x) \
- jiffies_to_cputime(clock_t_to_jiffies(__x))
-
-/*
- * Convert cputime64 to clock.
- */
-#define cputime64_to_clock_t(__ct) \
- jiffies_64_to_clock_t(cputime64_to_jiffies64(__ct))
-
-#endif
diff --git a/ANDROID_3.4.5/include/asm-generic/current.h b/ANDROID_3.4.5/include/asm-generic/current.h
deleted file mode 100644
index 5e86f6ae..00000000
--- a/ANDROID_3.4.5/include/asm-generic/current.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef __ASM_GENERIC_CURRENT_H
-#define __ASM_GENERIC_CURRENT_H
-
-#include <linux/thread_info.h>
-
-#define get_current() (current_thread_info()->task)
-#define current get_current()
-
-#endif /* __ASM_GENERIC_CURRENT_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/delay.h b/ANDROID_3.4.5/include/asm-generic/delay.h
deleted file mode 100644
index 0f79054c..00000000
--- a/ANDROID_3.4.5/include/asm-generic/delay.h
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef __ASM_GENERIC_DELAY_H
-#define __ASM_GENERIC_DELAY_H
-
-/* Undefined functions to get compile-time errors */
-extern void __bad_udelay(void);
-extern void __bad_ndelay(void);
-
-extern void __udelay(unsigned long usecs);
-extern void __ndelay(unsigned long nsecs);
-extern void __const_udelay(unsigned long xloops);
-extern void __delay(unsigned long loops);
-
-/*
- * The weird n/20000 thing suppresses a "comparison is always false due to
- * limited range of data type" warning with non-const 8-bit arguments.
- */
-
-/* 0x10c7 is 2**32 / 1000000 (rounded up) */
-#define udelay(n) \
- ({ \
- if (__builtin_constant_p(n)) { \
- if ((n) / 20000 >= 1) \
- __bad_udelay(); \
- else \
- __const_udelay((n) * 0x10c7ul); \
- } else { \
- __udelay(n); \
- } \
- })
-
-/* 0x5 is 2**32 / 1000000000 (rounded up) */
-#define ndelay(n) \
- ({ \
- if (__builtin_constant_p(n)) { \
- if ((n) / 20000 >= 1) \
- __bad_ndelay(); \
- else \
- __const_udelay((n) * 5ul); \
- } else { \
- __ndelay(n); \
- } \
- })
-
-#endif /* __ASM_GENERIC_DELAY_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/device.h b/ANDROID_3.4.5/include/asm-generic/device.h
deleted file mode 100644
index d7c76bba..00000000
--- a/ANDROID_3.4.5/include/asm-generic/device.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * Arch specific extensions to struct device
- *
- * This file is released under the GPLv2
- */
-#ifndef _ASM_GENERIC_DEVICE_H
-#define _ASM_GENERIC_DEVICE_H
-
-struct dev_archdata {
-};
-
-struct pdev_archdata {
-};
-
-#endif /* _ASM_GENERIC_DEVICE_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/div64.h b/ANDROID_3.4.5/include/asm-generic/div64.h
deleted file mode 100644
index 8f4e3193..00000000
--- a/ANDROID_3.4.5/include/asm-generic/div64.h
+++ /dev/null
@@ -1,58 +0,0 @@
-#ifndef _ASM_GENERIC_DIV64_H
-#define _ASM_GENERIC_DIV64_H
-/*
- * Copyright (C) 2003 Bernardo Innocenti <bernie@develer.com>
- * Based on former asm-ppc/div64.h and asm-m68knommu/div64.h
- *
- * The semantics of do_div() are:
- *
- * uint32_t do_div(uint64_t *n, uint32_t base)
- * {
- * uint32_t remainder = *n % base;
- * *n = *n / base;
- * return remainder;
- * }
- *
- * NOTE: macro parameter n is evaluated multiple times,
- * beware of side effects!
- */
-
-#include <linux/types.h>
-#include <linux/compiler.h>
-
-#if BITS_PER_LONG == 64
-
-# define do_div(n,base) ({ \
- uint32_t __base = (base); \
- uint32_t __rem; \
- __rem = ((uint64_t)(n)) % __base; \
- (n) = ((uint64_t)(n)) / __base; \
- __rem; \
- })
-
-#elif BITS_PER_LONG == 32
-
-extern uint32_t __div64_32(uint64_t *dividend, uint32_t divisor);
-
-/* The unnecessary pointer compare is there
- * to check for type safety (n must be 64bit)
- */
-# define do_div(n,base) ({ \
- uint32_t __base = (base); \
- uint32_t __rem; \
- (void)(((typeof((n)) *)0) == ((uint64_t *)0)); \
- if (likely(((n) >> 32) == 0)) { \
- __rem = (uint32_t)(n) % __base; \
- (n) = (uint32_t)(n) / __base; \
- } else \
- __rem = __div64_32(&(n), __base); \
- __rem; \
- })
-
-#else /* BITS_PER_LONG == ?? */
-
-# error do_div() does not yet support the C64
-
-#endif /* BITS_PER_LONG */
-
-#endif /* _ASM_GENERIC_DIV64_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/dma-coherent.h b/ANDROID_3.4.5/include/asm-generic/dma-coherent.h
deleted file mode 100644
index 85a3ffaa..00000000
--- a/ANDROID_3.4.5/include/asm-generic/dma-coherent.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef DMA_COHERENT_H
-#define DMA_COHERENT_H
-
-#ifdef CONFIG_HAVE_GENERIC_DMA_COHERENT
-/*
- * These two functions are only for dma allocator.
- * Don't use them in device drivers.
- */
-int dma_alloc_from_coherent(struct device *dev, ssize_t size,
- dma_addr_t *dma_handle, void **ret);
-int dma_release_from_coherent(struct device *dev, int order, void *vaddr);
-
-/*
- * Standard interface
- */
-#define ARCH_HAS_DMA_DECLARE_COHERENT_MEMORY
-extern int
-dma_declare_coherent_memory(struct device *dev, dma_addr_t bus_addr,
- dma_addr_t device_addr, size_t size, int flags);
-
-extern void
-dma_release_declared_memory(struct device *dev);
-
-extern void *
-dma_mark_declared_memory_occupied(struct device *dev,
- dma_addr_t device_addr, size_t size);
-#else
-#define dma_alloc_from_coherent(dev, size, handle, ret) (0)
-#define dma_release_from_coherent(dev, order, vaddr) (0)
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/asm-generic/dma-mapping-broken.h b/ANDROID_3.4.5/include/asm-generic/dma-mapping-broken.h
deleted file mode 100644
index ccf7b4f3..00000000
--- a/ANDROID_3.4.5/include/asm-generic/dma-mapping-broken.h
+++ /dev/null
@@ -1,79 +0,0 @@
-#ifndef _ASM_GENERIC_DMA_MAPPING_H
-#define _ASM_GENERIC_DMA_MAPPING_H
-
-/* define the dma api to allow compilation but not linking of
- * dma dependent code. Code that depends on the dma-mapping
- * API needs to set 'depends on HAS_DMA' in its Kconfig
- */
-
-struct scatterlist;
-
-extern void *
-dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle,
- gfp_t flag);
-
-extern void
-dma_free_coherent(struct device *dev, size_t size, void *cpu_addr,
- dma_addr_t dma_handle);
-
-#define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f)
-#define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h)
-
-extern dma_addr_t
-dma_map_single(struct device *dev, void *ptr, size_t size,
- enum dma_data_direction direction);
-
-extern void
-dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size,
- enum dma_data_direction direction);
-
-extern int
-dma_map_sg(struct device *dev, struct scatterlist *sg, int nents,
- enum dma_data_direction direction);
-
-extern void
-dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nhwentries,
- enum dma_data_direction direction);
-
-extern dma_addr_t
-dma_map_page(struct device *dev, struct page *page, unsigned long offset,
- size_t size, enum dma_data_direction direction);
-
-extern void
-dma_unmap_page(struct device *dev, dma_addr_t dma_address, size_t size,
- enum dma_data_direction direction);
-
-extern void
-dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, size_t size,
- enum dma_data_direction direction);
-
-extern void
-dma_sync_single_range_for_cpu(struct device *dev, dma_addr_t dma_handle,
- unsigned long offset, size_t size,
- enum dma_data_direction direction);
-
-extern void
-dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg, int nelems,
- enum dma_data_direction direction);
-
-#define dma_sync_single_for_device dma_sync_single_for_cpu
-#define dma_sync_single_range_for_device dma_sync_single_range_for_cpu
-#define dma_sync_sg_for_device dma_sync_sg_for_cpu
-
-extern int
-dma_mapping_error(struct device *dev, dma_addr_t dma_addr);
-
-extern int
-dma_supported(struct device *dev, u64 mask);
-
-extern int
-dma_set_mask(struct device *dev, u64 mask);
-
-extern int
-dma_get_cache_alignment(void);
-
-extern void
-dma_cache_sync(struct device *dev, void *vaddr, size_t size,
- enum dma_data_direction direction);
-
-#endif /* _ASM_GENERIC_DMA_MAPPING_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/dma-mapping-common.h b/ANDROID_3.4.5/include/asm-generic/dma-mapping-common.h
deleted file mode 100644
index 2e248d89..00000000
--- a/ANDROID_3.4.5/include/asm-generic/dma-mapping-common.h
+++ /dev/null
@@ -1,179 +0,0 @@
-#ifndef _ASM_GENERIC_DMA_MAPPING_H
-#define _ASM_GENERIC_DMA_MAPPING_H
-
-#include <linux/kmemcheck.h>
-#include <linux/bug.h>
-#include <linux/scatterlist.h>
-#include <linux/dma-debug.h>
-#include <linux/dma-attrs.h>
-
-static inline dma_addr_t dma_map_single_attrs(struct device *dev, void *ptr,
- size_t size,
- enum dma_data_direction dir,
- struct dma_attrs *attrs)
-{
- struct dma_map_ops *ops = get_dma_ops(dev);
- dma_addr_t addr;
-
- kmemcheck_mark_initialized(ptr, size);
- BUG_ON(!valid_dma_direction(dir));
- addr = ops->map_page(dev, virt_to_page(ptr),
- (unsigned long)ptr & ~PAGE_MASK, size,
- dir, attrs);
- debug_dma_map_page(dev, virt_to_page(ptr),
- (unsigned long)ptr & ~PAGE_MASK, size,
- dir, addr, true);
- return addr;
-}
-
-static inline void dma_unmap_single_attrs(struct device *dev, dma_addr_t addr,
- size_t size,
- enum dma_data_direction dir,
- struct dma_attrs *attrs)
-{
- struct dma_map_ops *ops = get_dma_ops(dev);
-
- BUG_ON(!valid_dma_direction(dir));
- if (ops->unmap_page)
- ops->unmap_page(dev, addr, size, dir, attrs);
- debug_dma_unmap_page(dev, addr, size, dir, true);
-}
-
-static inline int dma_map_sg_attrs(struct device *dev, struct scatterlist *sg,
- int nents, enum dma_data_direction dir,
- struct dma_attrs *attrs)
-{
- struct dma_map_ops *ops = get_dma_ops(dev);
- int i, ents;
- struct scatterlist *s;
-
- for_each_sg(sg, s, nents, i)
- kmemcheck_mark_initialized(sg_virt(s), s->length);
- BUG_ON(!valid_dma_direction(dir));
- ents = ops->map_sg(dev, sg, nents, dir, attrs);
- debug_dma_map_sg(dev, sg, nents, ents, dir);
-
- return ents;
-}
-
-static inline void dma_unmap_sg_attrs(struct device *dev, struct scatterlist *sg,
- int nents, enum dma_data_direction dir,
- struct dma_attrs *attrs)
-{
- struct dma_map_ops *ops = get_dma_ops(dev);
-
- BUG_ON(!valid_dma_direction(dir));
- debug_dma_unmap_sg(dev, sg, nents, dir);
- if (ops->unmap_sg)
- ops->unmap_sg(dev, sg, nents, dir, attrs);
-}
-
-static inline dma_addr_t dma_map_page(struct device *dev, struct page *page,
- size_t offset, size_t size,
- enum dma_data_direction dir)
-{
- struct dma_map_ops *ops = get_dma_ops(dev);
- dma_addr_t addr;
-
- kmemcheck_mark_initialized(page_address(page) + offset, size);
- BUG_ON(!valid_dma_direction(dir));
- addr = ops->map_page(dev, page, offset, size, dir, NULL);
- debug_dma_map_page(dev, page, offset, size, dir, addr, false);
-
- return addr;
-}
-
-static inline void dma_unmap_page(struct device *dev, dma_addr_t addr,
- size_t size, enum dma_data_direction dir)
-{
- struct dma_map_ops *ops = get_dma_ops(dev);
-
- BUG_ON(!valid_dma_direction(dir));
- if (ops->unmap_page)
- ops->unmap_page(dev, addr, size, dir, NULL);
- debug_dma_unmap_page(dev, addr, size, dir, false);
-}
-
-static inline void dma_sync_single_for_cpu(struct device *dev, dma_addr_t addr,
- size_t size,
- enum dma_data_direction dir)
-{
- struct dma_map_ops *ops = get_dma_ops(dev);
-
- BUG_ON(!valid_dma_direction(dir));
- if (ops->sync_single_for_cpu)
- ops->sync_single_for_cpu(dev, addr, size, dir);
- debug_dma_sync_single_for_cpu(dev, addr, size, dir);
-}
-
-static inline void dma_sync_single_for_device(struct device *dev,
- dma_addr_t addr, size_t size,
- enum dma_data_direction dir)
-{
- struct dma_map_ops *ops = get_dma_ops(dev);
-
- BUG_ON(!valid_dma_direction(dir));
- if (ops->sync_single_for_device)
- ops->sync_single_for_device(dev, addr, size, dir);
- debug_dma_sync_single_for_device(dev, addr, size, dir);
-}
-
-static inline void dma_sync_single_range_for_cpu(struct device *dev,
- dma_addr_t addr,
- unsigned long offset,
- size_t size,
- enum dma_data_direction dir)
-{
- const struct dma_map_ops *ops = get_dma_ops(dev);
-
- BUG_ON(!valid_dma_direction(dir));
- if (ops->sync_single_for_cpu)
- ops->sync_single_for_cpu(dev, addr + offset, size, dir);
- debug_dma_sync_single_range_for_cpu(dev, addr, offset, size, dir);
-}
-
-static inline void dma_sync_single_range_for_device(struct device *dev,
- dma_addr_t addr,
- unsigned long offset,
- size_t size,
- enum dma_data_direction dir)
-{
- const struct dma_map_ops *ops = get_dma_ops(dev);
-
- BUG_ON(!valid_dma_direction(dir));
- if (ops->sync_single_for_device)
- ops->sync_single_for_device(dev, addr + offset, size, dir);
- debug_dma_sync_single_range_for_device(dev, addr, offset, size, dir);
-}
-
-static inline void
-dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg,
- int nelems, enum dma_data_direction dir)
-{
- struct dma_map_ops *ops = get_dma_ops(dev);
-
- BUG_ON(!valid_dma_direction(dir));
- if (ops->sync_sg_for_cpu)
- ops->sync_sg_for_cpu(dev, sg, nelems, dir);
- debug_dma_sync_sg_for_cpu(dev, sg, nelems, dir);
-}
-
-static inline void
-dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg,
- int nelems, enum dma_data_direction dir)
-{
- struct dma_map_ops *ops = get_dma_ops(dev);
-
- BUG_ON(!valid_dma_direction(dir));
- if (ops->sync_sg_for_device)
- ops->sync_sg_for_device(dev, sg, nelems, dir);
- debug_dma_sync_sg_for_device(dev, sg, nelems, dir);
-
-}
-
-#define dma_map_single(d, a, s, r) dma_map_single_attrs(d, a, s, r, NULL)
-#define dma_unmap_single(d, a, s, r) dma_unmap_single_attrs(d, a, s, r, NULL)
-#define dma_map_sg(d, s, n, r) dma_map_sg_attrs(d, s, n, r, NULL)
-#define dma_unmap_sg(d, s, n, r) dma_unmap_sg_attrs(d, s, n, r, NULL)
-
-#endif
diff --git a/ANDROID_3.4.5/include/asm-generic/dma.h b/ANDROID_3.4.5/include/asm-generic/dma.h
deleted file mode 100644
index 9dfc3a7f..00000000
--- a/ANDROID_3.4.5/include/asm-generic/dma.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef __ASM_GENERIC_DMA_H
-#define __ASM_GENERIC_DMA_H
-/*
- * This file traditionally describes the i8237 PC style DMA controller.
- * Most architectures don't have these any more and can get the minimal
- * implementation from kernel/dma.c by not defining MAX_DMA_CHANNELS.
- *
- * Some code relies on seeing MAX_DMA_ADDRESS though.
- */
-#define MAX_DMA_ADDRESS PAGE_OFFSET
-
-extern int request_dma(unsigned int dmanr, const char *device_id);
-extern void free_dma(unsigned int dmanr);
-
-#endif /* __ASM_GENERIC_DMA_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/emergency-restart.h b/ANDROID_3.4.5/include/asm-generic/emergency-restart.h
deleted file mode 100644
index 0d68a1ea..00000000
--- a/ANDROID_3.4.5/include/asm-generic/emergency-restart.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef _ASM_GENERIC_EMERGENCY_RESTART_H
-#define _ASM_GENERIC_EMERGENCY_RESTART_H
-
-static inline void machine_emergency_restart(void)
-{
- machine_restart(NULL);
-}
-
-#endif /* _ASM_GENERIC_EMERGENCY_RESTART_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/errno-base.h b/ANDROID_3.4.5/include/asm-generic/errno-base.h
deleted file mode 100644
index 65115978..00000000
--- a/ANDROID_3.4.5/include/asm-generic/errno-base.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef _ASM_GENERIC_ERRNO_BASE_H
-#define _ASM_GENERIC_ERRNO_BASE_H
-
-#define EPERM 1 /* Operation not permitted */
-#define ENOENT 2 /* No such file or directory */
-#define ESRCH 3 /* No such process */
-#define EINTR 4 /* Interrupted system call */
-#define EIO 5 /* I/O error */
-#define ENXIO 6 /* No such device or address */
-#define E2BIG 7 /* Argument list too long */
-#define ENOEXEC 8 /* Exec format error */
-#define EBADF 9 /* Bad file number */
-#define ECHILD 10 /* No child processes */
-#define EAGAIN 11 /* Try again */
-#define ENOMEM 12 /* Out of memory */
-#define EACCES 13 /* Permission denied */
-#define EFAULT 14 /* Bad address */
-#define ENOTBLK 15 /* Block device required */
-#define EBUSY 16 /* Device or resource busy */
-#define EEXIST 17 /* File exists */
-#define EXDEV 18 /* Cross-device link */
-#define ENODEV 19 /* No such device */
-#define ENOTDIR 20 /* Not a directory */
-#define EISDIR 21 /* Is a directory */
-#define EINVAL 22 /* Invalid argument */
-#define ENFILE 23 /* File table overflow */
-#define EMFILE 24 /* Too many open files */
-#define ENOTTY 25 /* Not a typewriter */
-#define ETXTBSY 26 /* Text file busy */
-#define EFBIG 27 /* File too large */
-#define ENOSPC 28 /* No space left on device */
-#define ESPIPE 29 /* Illegal seek */
-#define EROFS 30 /* Read-only file system */
-#define EMLINK 31 /* Too many links */
-#define EPIPE 32 /* Broken pipe */
-#define EDOM 33 /* Math argument out of domain of func */
-#define ERANGE 34 /* Math result not representable */
-
-#endif
diff --git a/ANDROID_3.4.5/include/asm-generic/errno.h b/ANDROID_3.4.5/include/asm-generic/errno.h
deleted file mode 100644
index 3b626c3e..00000000
--- a/ANDROID_3.4.5/include/asm-generic/errno.h
+++ /dev/null
@@ -1,116 +0,0 @@
-#ifndef _ASM_GENERIC_ERRNO_H
-#define _ASM_GENERIC_ERRNO_H
-
-#include <asm-generic/errno-base.h>
-
-#define EDEADLK 35 /* Resource deadlock would occur */
-#define ENAMETOOLONG 36 /* File name too long */
-#define ENOLCK 37 /* No record locks available */
-#define ENOSYS 38 /* Function not implemented */
-#define ENOTEMPTY 39 /* Directory not empty */
-#define ELOOP 40 /* Too many symbolic links encountered */
-#define EWOULDBLOCK EAGAIN /* Operation would block */
-#define ENOMSG 42 /* No message of desired type */
-#define EIDRM 43 /* Identifier removed */
-#define ECHRNG 44 /* Channel number out of range */
-#define EL2NSYNC 45 /* Level 2 not synchronized */
-#define EL3HLT 46 /* Level 3 halted */
-#define EL3RST 47 /* Level 3 reset */
-#define ELNRNG 48 /* Link number out of range */
-#define EUNATCH 49 /* Protocol driver not attached */
-#define ENOCSI 50 /* No CSI structure available */
-#define EL2HLT 51 /* Level 2 halted */
-#define EBADE 52 /* Invalid exchange */
-#define EBADR 53 /* Invalid request descriptor */
-#define EXFULL 54 /* Exchange full */
-#define ENOANO 55 /* No anode */
-#define EBADRQC 56 /* Invalid request code */
-#define EBADSLT 57 /* Invalid slot */
-
-#define EDEADLOCK EDEADLK
-
-#define EBFONT 59 /* Bad font file format */
-#define ENOSTR 60 /* Device not a stream */
-#define ENODATA 61 /* No data available */
-#define ETIME 62 /* Timer expired */
-#define ENOSR 63 /* Out of streams resources */
-#define ENONET 64 /* Machine is not on the network */
-#define ENOPKG 65 /* Package not installed */
-#define EREMOTE 66 /* Object is remote */
-#define ENOLINK 67 /* Link has been severed */
-#define EADV 68 /* Advertise error */
-#define ESRMNT 69 /* Srmount error */
-#define ECOMM 70 /* Communication error on send */
-#define EPROTO 71 /* Protocol error */
-#define EMULTIHOP 72 /* Multihop attempted */
-#define EDOTDOT 73 /* RFS specific error */
-#define EBADMSG 74 /* Not a data message */
-#define EOVERFLOW 75 /* Value too large for defined data type */
-#define ENOTUNIQ 76 /* Name not unique on network */
-#define EBADFD 77 /* File descriptor in bad state */
-#define EREMCHG 78 /* Remote address changed */
-#define ELIBACC 79 /* Can not access a needed shared library */
-#define ELIBBAD 80 /* Accessing a corrupted shared library */
-#define ELIBSCN 81 /* .lib section in a.out corrupted */
-#define ELIBMAX 82 /* Attempting to link in too many shared libraries */
-#define ELIBEXEC 83 /* Cannot exec a shared library directly */
-#define EILSEQ 84 /* Illegal byte sequence */
-#define ERESTART 85 /* Interrupted system call should be restarted */
-#define ESTRPIPE 86 /* Streams pipe error */
-#define EUSERS 87 /* Too many users */
-#define ENOTSOCK 88 /* Socket operation on non-socket */
-#define EDESTADDRREQ 89 /* Destination address required */
-#define EMSGSIZE 90 /* Message too long */
-#define EPROTOTYPE 91 /* Protocol wrong type for socket */
-#define ENOPROTOOPT 92 /* Protocol not available */
-#define EPROTONOSUPPORT 93 /* Protocol not supported */
-#define ESOCKTNOSUPPORT 94 /* Socket type not supported */
-#define EOPNOTSUPP 95 /* Operation not supported on transport endpoint */
-#define EPFNOSUPPORT 96 /* Protocol family not supported */
-#define EAFNOSUPPORT 97 /* Address family not supported by protocol */
-#define EADDRINUSE 98 /* Address already in use */
-#define EADDRNOTAVAIL 99 /* Cannot assign requested address */
-#define ENETDOWN 100 /* Network is down */
-#define ENETUNREACH 101 /* Network is unreachable */
-#define ENETRESET 102 /* Network dropped connection because of reset */
-#define ECONNABORTED 103 /* Software caused connection abort */
-#define ECONNRESET 104 /* Connection reset by peer */
-#define ENOBUFS 105 /* No buffer space available */
-#define EISCONN 106 /* Transport endpoint is already connected */
-#define ENOTCONN 107 /* Transport endpoint is not connected */
-#define ESHUTDOWN 108 /* Cannot send after transport endpoint shutdown */
-#define ETOOMANYREFS 109 /* Too many references: cannot splice */
-#define ETIMEDOUT 110 /* Connection timed out */
-#define ECONNREFUSED 111 /* Connection refused */
-#define EHOSTDOWN 112 /* Host is down */
-#define EHOSTUNREACH 113 /* No route to host */
-#define EALREADY 114 /* Operation already in progress */
-#define EINPROGRESS 115 /* Operation now in progress */
-#define ESTALE 116 /* Stale NFS file handle */
-#define EUCLEAN 117 /* Structure needs cleaning */
-#define ENOTNAM 118 /* Not a XENIX named type file */
-#define ENAVAIL 119 /* No XENIX semaphores available */
-#define EISNAM 120 /* Is a named type file */
-#define EREMOTEIO 121 /* Remote I/O error */
-#define EDQUOT 122 /* Quota exceeded */
-
-#define ENOMEDIUM 123 /* No medium found */
-#define EMEDIUMTYPE 124 /* Wrong medium type */
-#define ECANCELED 125 /* Operation Canceled */
-#define ENOKEY 126 /* Required key not available */
-#define EKEYEXPIRED 127 /* Key has expired */
-#define EKEYREVOKED 128 /* Key has been revoked */
-#define EKEYREJECTED 129 /* Key was rejected by service */
-
-/* for robust mutexes */
-#define EOWNERDEAD 130 /* Owner died */
-#define ENOTRECOVERABLE 131 /* State not recoverable */
-
-#define ERFKILL 132 /* Operation not possible due to RF-kill */
-
-#define EHWPOISON 133 /* Memory page has hardware error */
-
-
-#define NEED_REPLACEMENT 180 /* nand flash data block need replacement */
-
-#endif
diff --git a/ANDROID_3.4.5/include/asm-generic/exec.h b/ANDROID_3.4.5/include/asm-generic/exec.h
deleted file mode 100644
index 567766b0..00000000
--- a/ANDROID_3.4.5/include/asm-generic/exec.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Generic process execution definitions, based on MN10300 definitions.
- *
- * It should be possible to use these on really simple architectures,
- * but it serves more as a starting point for new ports.
- *
- * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
- * Written by David Howells (dhowells@redhat.com)
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public Licence
- * as published by the Free Software Foundation; either version
- * 2 of the Licence, or (at your option) any later version.
- */
-#ifndef __ASM_GENERIC_EXEC_H
-#define __ASM_GENERIC_EXEC_H
-
-#define arch_align_stack(x) (x)
-
-#endif /* __ASM_GENERIC_EXEC_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/fb.h b/ANDROID_3.4.5/include/asm-generic/fb.h
deleted file mode 100644
index fe8ca7fc..00000000
--- a/ANDROID_3.4.5/include/asm-generic/fb.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef __ASM_GENERIC_FB_H_
-#define __ASM_GENERIC_FB_H_
-#include <linux/fb.h>
-
-#define fb_pgprotect(...) do {} while (0)
-
-static inline int fb_is_primary_device(struct fb_info *info)
-{
- return 0;
-}
-
-#endif /* __ASM_GENERIC_FB_H_ */
diff --git a/ANDROID_3.4.5/include/asm-generic/fcntl.h b/ANDROID_3.4.5/include/asm-generic/fcntl.h
deleted file mode 100644
index 9e5b0356..00000000
--- a/ANDROID_3.4.5/include/asm-generic/fcntl.h
+++ /dev/null
@@ -1,195 +0,0 @@
-#ifndef _ASM_GENERIC_FCNTL_H
-#define _ASM_GENERIC_FCNTL_H
-
-#include <linux/types.h>
-
-/*
- * FMODE_EXEC is 0x20
- * FMODE_NONOTIFY is 0x1000000
- * These cannot be used by userspace O_* until internal and external open
- * flags are split.
- * -Eric Paris
- */
-
-/*
- * When introducing new O_* bits, please check its uniqueness in fcntl_init().
- */
-
-#define O_ACCMODE 00000003
-#define O_RDONLY 00000000
-#define O_WRONLY 00000001
-#define O_RDWR 00000002
-#ifndef O_CREAT
-#define O_CREAT 00000100 /* not fcntl */
-#endif
-#ifndef O_EXCL
-#define O_EXCL 00000200 /* not fcntl */
-#endif
-#ifndef O_NOCTTY
-#define O_NOCTTY 00000400 /* not fcntl */
-#endif
-#ifndef O_TRUNC
-#define O_TRUNC 00001000 /* not fcntl */
-#endif
-#ifndef O_APPEND
-#define O_APPEND 00002000
-#endif
-#ifndef O_NONBLOCK
-#define O_NONBLOCK 00004000
-#endif
-#ifndef O_DSYNC
-#define O_DSYNC 00010000 /* used to be O_SYNC, see below */
-#endif
-#ifndef FASYNC
-#define FASYNC 00020000 /* fcntl, for BSD compatibility */
-#endif
-#ifndef O_DIRECT
-#define O_DIRECT 00040000 /* direct disk access hint */
-#endif
-#ifndef O_LARGEFILE
-#define O_LARGEFILE 00100000
-#endif
-#ifndef O_DIRECTORY
-#define O_DIRECTORY 00200000 /* must be a directory */
-#endif
-#ifndef O_NOFOLLOW
-#define O_NOFOLLOW 00400000 /* don't follow links */
-#endif
-#ifndef O_NOATIME
-#define O_NOATIME 01000000
-#endif
-#ifndef O_CLOEXEC
-#define O_CLOEXEC 02000000 /* set close_on_exec */
-#endif
-
-/*
- * Before Linux 2.6.33 only O_DSYNC semantics were implemented, but using
- * the O_SYNC flag. We continue to use the existing numerical value
- * for O_DSYNC semantics now, but using the correct symbolic name for it.
- * This new value is used to request true Posix O_SYNC semantics. It is
- * defined in this strange way to make sure applications compiled against
- * new headers get at least O_DSYNC semantics on older kernels.
- *
- * This has the nice side-effect that we can simply test for O_DSYNC
- * wherever we do not care if O_DSYNC or O_SYNC is used.
- *
- * Note: __O_SYNC must never be used directly.
- */
-#ifndef O_SYNC
-#define __O_SYNC 04000000
-#define O_SYNC (__O_SYNC|O_DSYNC)
-#endif
-
-#ifndef O_PATH
-#define O_PATH 010000000
-#endif
-
-#ifndef O_NDELAY
-#define O_NDELAY O_NONBLOCK
-#endif
-
-#define F_DUPFD 0 /* dup */
-#define F_GETFD 1 /* get close_on_exec */
-#define F_SETFD 2 /* set/clear close_on_exec */
-#define F_GETFL 3 /* get file->f_flags */
-#define F_SETFL 4 /* set file->f_flags */
-#ifndef F_GETLK
-#define F_GETLK 5
-#define F_SETLK 6
-#define F_SETLKW 7
-#endif
-#ifndef F_SETOWN
-#define F_SETOWN 8 /* for sockets. */
-#define F_GETOWN 9 /* for sockets. */
-#endif
-#ifndef F_SETSIG
-#define F_SETSIG 10 /* for sockets. */
-#define F_GETSIG 11 /* for sockets. */
-#endif
-
-#ifndef CONFIG_64BIT
-#ifndef F_GETLK64
-#define F_GETLK64 12 /* using 'struct flock64' */
-#define F_SETLK64 13
-#define F_SETLKW64 14
-#endif
-#endif
-
-#ifndef F_SETOWN_EX
-#define F_SETOWN_EX 15
-#define F_GETOWN_EX 16
-#endif
-
-#define F_OWNER_TID 0
-#define F_OWNER_PID 1
-#define F_OWNER_PGRP 2
-
-struct f_owner_ex {
- int type;
- __kernel_pid_t pid;
-};
-
-/* for F_[GET|SET]FL */
-#define FD_CLOEXEC 1 /* actually anything with low bit set goes */
-
-/* for posix fcntl() and lockf() */
-#ifndef F_RDLCK
-#define F_RDLCK 0
-#define F_WRLCK 1
-#define F_UNLCK 2
-#endif
-
-/* for old implementation of bsd flock () */
-#ifndef F_EXLCK
-#define F_EXLCK 4 /* or 3 */
-#define F_SHLCK 8 /* or 4 */
-#endif
-
-/* operations for bsd flock(), also used by the kernel implementation */
-#define LOCK_SH 1 /* shared lock */
-#define LOCK_EX 2 /* exclusive lock */
-#define LOCK_NB 4 /* or'd with one of the above to prevent
- blocking */
-#define LOCK_UN 8 /* remove lock */
-
-#define LOCK_MAND 32 /* This is a mandatory flock ... */
-#define LOCK_READ 64 /* which allows concurrent read operations */
-#define LOCK_WRITE 128 /* which allows concurrent write operations */
-#define LOCK_RW 192 /* which allows concurrent read & write ops */
-
-#define F_LINUX_SPECIFIC_BASE 1024
-
-#ifndef HAVE_ARCH_STRUCT_FLOCK
-#ifndef __ARCH_FLOCK_PAD
-#define __ARCH_FLOCK_PAD
-#endif
-
-struct flock {
- short l_type;
- short l_whence;
- __kernel_off_t l_start;
- __kernel_off_t l_len;
- __kernel_pid_t l_pid;
- __ARCH_FLOCK_PAD
-};
-#endif
-
-#ifndef CONFIG_64BIT
-
-#ifndef HAVE_ARCH_STRUCT_FLOCK64
-#ifndef __ARCH_FLOCK64_PAD
-#define __ARCH_FLOCK64_PAD
-#endif
-
-struct flock64 {
- short l_type;
- short l_whence;
- __kernel_loff_t l_start;
- __kernel_loff_t l_len;
- __kernel_pid_t l_pid;
- __ARCH_FLOCK64_PAD
-};
-#endif
-#endif /* !CONFIG_64BIT */
-
-#endif /* _ASM_GENERIC_FCNTL_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/ftrace.h b/ANDROID_3.4.5/include/asm-generic/ftrace.h
deleted file mode 100644
index 51abba9e..00000000
--- a/ANDROID_3.4.5/include/asm-generic/ftrace.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * linux/include/asm-generic/ftrace.h
- *
- * 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.
- */
-#ifndef __ASM_GENERIC_FTRACE_H__
-#define __ASM_GENERIC_FTRACE_H__
-
-/*
- * Not all architectures need their own ftrace.h, the most
- * common definitions are already in linux/ftrace.h.
- */
-
-#endif /* __ASM_GENERIC_FTRACE_H__ */
diff --git a/ANDROID_3.4.5/include/asm-generic/futex.h b/ANDROID_3.4.5/include/asm-generic/futex.h
deleted file mode 100644
index 01f227e1..00000000
--- a/ANDROID_3.4.5/include/asm-generic/futex.h
+++ /dev/null
@@ -1,57 +0,0 @@
-#ifndef _ASM_GENERIC_FUTEX_H
-#define _ASM_GENERIC_FUTEX_H
-
-#include <linux/futex.h>
-#include <linux/uaccess.h>
-#include <asm/errno.h>
-
-static inline int
-futex_atomic_op_inuser (int encoded_op, u32 __user *uaddr)
-{
- int op = (encoded_op >> 28) & 7;
- int cmp = (encoded_op >> 24) & 15;
- int oparg = (encoded_op << 8) >> 20;
- int cmparg = (encoded_op << 20) >> 20;
- int oldval = 0, ret;
- if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
- oparg = 1 << oparg;
-
- if (! access_ok (VERIFY_WRITE, uaddr, sizeof(u32)))
- return -EFAULT;
-
- pagefault_disable();
-
- switch (op) {
- case FUTEX_OP_SET:
- case FUTEX_OP_ADD:
- case FUTEX_OP_OR:
- case FUTEX_OP_ANDN:
- case FUTEX_OP_XOR:
- default:
- ret = -ENOSYS;
- }
-
- pagefault_enable();
-
- if (!ret) {
- switch (cmp) {
- case FUTEX_OP_CMP_EQ: ret = (oldval == cmparg); break;
- case FUTEX_OP_CMP_NE: ret = (oldval != cmparg); break;
- case FUTEX_OP_CMP_LT: ret = (oldval < cmparg); break;
- case FUTEX_OP_CMP_GE: ret = (oldval >= cmparg); break;
- case FUTEX_OP_CMP_LE: ret = (oldval <= cmparg); break;
- case FUTEX_OP_CMP_GT: ret = (oldval > cmparg); break;
- default: ret = -ENOSYS;
- }
- }
- return ret;
-}
-
-static inline int
-futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
- u32 oldval, u32 newval)
-{
- return -ENOSYS;
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/asm-generic/getorder.h b/ANDROID_3.4.5/include/asm-generic/getorder.h
deleted file mode 100644
index 65e4468a..00000000
--- a/ANDROID_3.4.5/include/asm-generic/getorder.h
+++ /dev/null
@@ -1,61 +0,0 @@
-#ifndef __ASM_GENERIC_GETORDER_H
-#define __ASM_GENERIC_GETORDER_H
-
-#ifndef __ASSEMBLY__
-
-#include <linux/compiler.h>
-#include <linux/log2.h>
-
-/*
- * Runtime evaluation of get_order()
- */
-static inline __attribute_const__
-int __get_order(unsigned long size)
-{
- int order;
-
- size--;
- size >>= PAGE_SHIFT;
-#if BITS_PER_LONG == 32
- order = fls(size);
-#else
- order = fls64(size);
-#endif
- return order;
-}
-
-/**
- * get_order - Determine the allocation order of a memory size
- * @size: The size for which to get the order
- *
- * Determine the allocation order of a particular sized block of memory. This
- * is on a logarithmic scale, where:
- *
- * 0 -> 2^0 * PAGE_SIZE and below
- * 1 -> 2^1 * PAGE_SIZE to 2^0 * PAGE_SIZE + 1
- * 2 -> 2^2 * PAGE_SIZE to 2^1 * PAGE_SIZE + 1
- * 3 -> 2^3 * PAGE_SIZE to 2^2 * PAGE_SIZE + 1
- * 4 -> 2^4 * PAGE_SIZE to 2^3 * PAGE_SIZE + 1
- * ...
- *
- * The order returned is used to find the smallest allocation granule required
- * to hold an object of the specified size.
- *
- * The result is undefined if the size is 0.
- *
- * This function may be used to initialise variables with compile time
- * evaluations of constants.
- */
-#define get_order(n) \
-( \
- __builtin_constant_p(n) ? ( \
- ((n) == 0UL) ? BITS_PER_LONG - PAGE_SHIFT : \
- (((n) < (1UL << PAGE_SHIFT)) ? 0 : \
- ilog2((n) - 1) - PAGE_SHIFT + 1) \
- ) : \
- __get_order(n) \
-)
-
-#endif /* __ASSEMBLY__ */
-
-#endif /* __ASM_GENERIC_GETORDER_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/gpio.h b/ANDROID_3.4.5/include/asm-generic/gpio.h
deleted file mode 100644
index 70ed842f..00000000
--- a/ANDROID_3.4.5/include/asm-generic/gpio.h
+++ /dev/null
@@ -1,257 +0,0 @@
-#ifndef _ASM_GENERIC_GPIO_H
-#define _ASM_GENERIC_GPIO_H
-
-#include <linux/kernel.h>
-#include <linux/types.h>
-#include <linux/errno.h>
-#include <linux/of.h>
-
-#ifdef CONFIG_GPIOLIB
-
-#include <linux/compiler.h>
-
-/* Platforms may implement their GPIO interface with library code,
- * at a small performance cost for non-inlined operations and some
- * extra memory (for code and for per-GPIO table entries).
- *
- * While the GPIO programming interface defines valid GPIO numbers
- * to be in the range 0..MAX_INT, this library restricts them to the
- * smaller range 0..ARCH_NR_GPIOS-1.
- *
- * ARCH_NR_GPIOS is somewhat arbitrary; it usually reflects the sum of
- * builtin/SoC GPIOs plus a number of GPIOs on expanders; the latter is
- * actually an estimate of a board-specific value.
- */
-
-#ifndef ARCH_NR_GPIOS
-#define ARCH_NR_GPIOS 256
-#endif
-
-/*
- * "valid" GPIO numbers are nonnegative and may be passed to
- * setup routines like gpio_request(). only some valid numbers
- * can successfully be requested and used.
- *
- * Invalid GPIO numbers are useful for indicating no-such-GPIO in
- * platform data and other tables.
- */
-
-static inline bool gpio_is_valid(int number)
-{
- return number >= 0 && number < ARCH_NR_GPIOS;
-}
-
-struct device;
-struct gpio;
-struct seq_file;
-struct module;
-struct device_node;
-
-/**
- * struct gpio_chip - abstract a GPIO controller
- * @label: for diagnostics
- * @dev: optional device providing the GPIOs
- * @owner: helps prevent removal of modules exporting active GPIOs
- * @request: optional hook for chip-specific activation, such as
- * enabling module power and clock; may sleep
- * @free: optional hook for chip-specific deactivation, such as
- * disabling module power and clock; may sleep
- * @direction_input: configures signal "offset" as input, or returns error
- * @get: returns value for signal "offset"; for output signals this
- * returns either the value actually sensed, or zero
- * @direction_output: configures signal "offset" as output, or returns error
- * @set: assigns output value for signal "offset"
- * @to_irq: optional hook supporting non-static gpio_to_irq() mappings;
- * implementation may not sleep
- * @dbg_show: optional routine to show contents in debugfs; default code
- * will be used when this is omitted, but custom code can show extra
- * state (such as pullup/pulldown configuration).
- * @base: identifies the first GPIO number handled by this chip; or, if
- * negative during registration, requests dynamic ID allocation.
- * @ngpio: the number of GPIOs handled by this controller; the last GPIO
- * handled is (base + ngpio - 1).
- * @can_sleep: flag must be set iff get()/set() methods sleep, as they
- * must while accessing GPIO expander chips over I2C or SPI
- * @names: if set, must be an array of strings to use as alternative
- * names for the GPIOs in this chip. Any entry in the array
- * may be NULL if there is no alias for the GPIO, however the
- * array must be @ngpio entries long. A name can include a single printk
- * format specifier for an unsigned int. It is substituted by the actual
- * number of the gpio.
- *
- * A gpio_chip can help platforms abstract various sources of GPIOs so
- * they can all be accessed through a common programing interface.
- * Example sources would be SOC controllers, FPGAs, multifunction
- * chips, dedicated GPIO expanders, and so on.
- *
- * Each chip controls a number of signals, identified in method calls
- * by "offset" values in the range 0..(@ngpio - 1). When those signals
- * are referenced through calls like gpio_get_value(gpio), the offset
- * is calculated by subtracting @base from the gpio number.
- */
-struct gpio_chip {
- const char *label;
- struct device *dev;
- struct module *owner;
-
- int (*request)(struct gpio_chip *chip,
- unsigned offset);
- void (*free)(struct gpio_chip *chip,
- unsigned offset);
-
- int (*direction_input)(struct gpio_chip *chip,
- unsigned offset);
- int (*get)(struct gpio_chip *chip,
- unsigned offset);
- int (*direction_output)(struct gpio_chip *chip,
- unsigned offset, int value);
- int (*set_debounce)(struct gpio_chip *chip,
- unsigned offset, unsigned debounce);
-
- void (*set)(struct gpio_chip *chip,
- unsigned offset, int value);
-
- int (*to_irq)(struct gpio_chip *chip,
- unsigned offset);
-
- void (*dbg_show)(struct seq_file *s,
- struct gpio_chip *chip);
- int base;
- u16 ngpio;
- const char *const *names;
- unsigned can_sleep:1;
- unsigned exported:1;
-
-#if defined(CONFIG_OF_GPIO)
- /*
- * If CONFIG_OF is enabled, then all GPIO controllers described in the
- * device tree automatically may have an OF translation
- */
- struct device_node *of_node;
- int of_gpio_n_cells;
- int (*of_xlate)(struct gpio_chip *gc,
- const struct of_phandle_args *gpiospec, u32 *flags);
-#endif
-};
-
-extern const char *gpiochip_is_requested(struct gpio_chip *chip,
- unsigned offset);
-extern struct gpio_chip *gpio_to_chip(unsigned gpio);
-extern int __must_check gpiochip_reserve(int start, int ngpio);
-
-/* add/remove chips */
-extern int gpiochip_add(struct gpio_chip *chip);
-extern int __must_check gpiochip_remove(struct gpio_chip *chip);
-extern struct gpio_chip *gpiochip_find(const void *data,
- int (*match)(struct gpio_chip *chip,
- const void *data));
-
-
-/* Always use the library code for GPIO management calls,
- * or when sleeping may be involved.
- */
-extern int gpio_request(unsigned gpio, const char *label);
-extern void gpio_free(unsigned gpio);
-extern int gpio_re_enabled(unsigned gpio);
-
-extern int gpio_direction_input(unsigned gpio);
-extern int gpio_direction_output(unsigned gpio, int value);
-
-extern int gpio_set_debounce(unsigned gpio, unsigned debounce);
-
-extern int gpio_get_value_cansleep(unsigned gpio);
-extern void gpio_set_value_cansleep(unsigned gpio, int value);
-
-
-/* A platform's <asm/gpio.h> code may want to inline the I/O calls when
- * the GPIO is constant and refers to some always-present controller,
- * giving direct access to chip registers and tight bitbanging loops.
- */
-extern int __gpio_get_value(unsigned gpio);
-extern void __gpio_set_value(unsigned gpio, int value);
-
-extern int __gpio_cansleep(unsigned gpio);
-
-extern int __gpio_to_irq(unsigned gpio);
-
-extern int gpio_request_one(unsigned gpio, unsigned long flags, const char *label);
-extern int gpio_request_array(const struct gpio *array, size_t num);
-extern void gpio_free_array(const struct gpio *array, size_t num);
-
-/* bindings for managed devices that want to request gpios */
-int devm_gpio_request(struct device *dev, unsigned gpio, const char *label);
-void devm_gpio_free(struct device *dev, unsigned int gpio);
-
-#ifdef CONFIG_GPIO_SYSFS
-
-/*
- * A sysfs interface can be exported by individual drivers if they want,
- * but more typically is configured entirely from userspace.
- */
-extern int gpio_export(unsigned gpio, bool direction_may_change);
-extern int gpio_export_link(struct device *dev, const char *name,
- unsigned gpio);
-extern int gpio_sysfs_set_active_low(unsigned gpio, int value);
-extern void gpio_unexport(unsigned gpio);
-
-#endif /* CONFIG_GPIO_SYSFS */
-
-#else /* !CONFIG_GPIOLIB */
-
-static inline bool gpio_is_valid(int number)
-{
- /* only non-negative numbers are valid */
- return number >= 0;
-}
-
-/* platforms that don't directly support access to GPIOs through I2C, SPI,
- * or other blocking infrastructure can use these wrappers.
- */
-
-static inline int gpio_cansleep(unsigned gpio)
-{
- return 0;
-}
-
-static inline int gpio_get_value_cansleep(unsigned gpio)
-{
- might_sleep();
- return __gpio_get_value(gpio);
-}
-
-static inline void gpio_set_value_cansleep(unsigned gpio, int value)
-{
- might_sleep();
- __gpio_set_value(gpio, value);
-}
-
-#endif /* !CONFIG_GPIOLIB */
-
-#ifndef CONFIG_GPIO_SYSFS
-
-struct device;
-
-/* sysfs support is only available with gpiolib, where it's optional */
-
-static inline int gpio_export(unsigned gpio, bool direction_may_change)
-{
- return -ENOSYS;
-}
-
-static inline int gpio_export_link(struct device *dev, const char *name,
- unsigned gpio)
-{
- return -ENOSYS;
-}
-
-static inline int gpio_sysfs_set_active_low(unsigned gpio, int value)
-{
- return -ENOSYS;
-}
-
-static inline void gpio_unexport(unsigned gpio)
-{
-}
-#endif /* CONFIG_GPIO_SYSFS */
-
-#endif /* _ASM_GENERIC_GPIO_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/hardirq.h b/ANDROID_3.4.5/include/asm-generic/hardirq.h
deleted file mode 100644
index 04d0a977..00000000
--- a/ANDROID_3.4.5/include/asm-generic/hardirq.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef __ASM_GENERIC_HARDIRQ_H
-#define __ASM_GENERIC_HARDIRQ_H
-
-#include <linux/cache.h>
-#include <linux/threads.h>
-
-typedef struct {
- unsigned int __softirq_pending;
-} ____cacheline_aligned irq_cpustat_t;
-
-#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
-#include <linux/irq.h>
-
-#ifndef ack_bad_irq
-static inline void ack_bad_irq(unsigned int irq)
-{
- printk(KERN_CRIT "unexpected IRQ trap at vector %02x\n", irq);
-}
-#endif
-
-#endif /* __ASM_GENERIC_HARDIRQ_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/hw_irq.h b/ANDROID_3.4.5/include/asm-generic/hw_irq.h
deleted file mode 100644
index 89036d7b..00000000
--- a/ANDROID_3.4.5/include/asm-generic/hw_irq.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef __ASM_GENERIC_HW_IRQ_H
-#define __ASM_GENERIC_HW_IRQ_H
-/*
- * hw_irq.h has internal declarations for the low-level interrupt
- * controller, like the original i8259A.
- * In general, this is not needed for new architectures.
- */
-
-#endif /* __ASM_GENERIC_HW_IRQ_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/ide_iops.h b/ANDROID_3.4.5/include/asm-generic/ide_iops.h
deleted file mode 100644
index 1b91d068..00000000
--- a/ANDROID_3.4.5/include/asm-generic/ide_iops.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Generic I/O and MEMIO string operations. */
-
-#define __ide_insw insw
-#define __ide_insl insl
-#define __ide_outsw outsw
-#define __ide_outsl outsl
-
-static __inline__ void __ide_mm_insw(void __iomem *port, void *addr, u32 count)
-{
- while (count--) {
- *(u16 *)addr = readw(port);
- addr += 2;
- }
-}
-
-static __inline__ void __ide_mm_insl(void __iomem *port, void *addr, u32 count)
-{
- while (count--) {
- *(u32 *)addr = readl(port);
- addr += 4;
- }
-}
-
-static __inline__ void __ide_mm_outsw(void __iomem *port, void *addr, u32 count)
-{
- while (count--) {
- writew(*(u16 *)addr, port);
- addr += 2;
- }
-}
-
-static __inline__ void __ide_mm_outsl(void __iomem * port, void *addr, u32 count)
-{
- while (count--) {
- writel(*(u32 *)addr, port);
- addr += 4;
- }
-}
diff --git a/ANDROID_3.4.5/include/asm-generic/int-l64.h b/ANDROID_3.4.5/include/asm-generic/int-l64.h
deleted file mode 100644
index 1ca3efc9..00000000
--- a/ANDROID_3.4.5/include/asm-generic/int-l64.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * asm-generic/int-l64.h
- *
- * Integer declarations for architectures which use "long"
- * for 64-bit types.
- */
-
-#ifndef _ASM_GENERIC_INT_L64_H
-#define _ASM_GENERIC_INT_L64_H
-
-#include <asm/bitsperlong.h>
-
-#ifndef __ASSEMBLY__
-/*
- * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the
- * header files exported to user space
- */
-
-typedef __signed__ char __s8;
-typedef unsigned char __u8;
-
-typedef __signed__ short __s16;
-typedef unsigned short __u16;
-
-typedef __signed__ int __s32;
-typedef unsigned int __u32;
-
-typedef __signed__ long __s64;
-typedef unsigned long __u64;
-
-#endif /* __ASSEMBLY__ */
-
-#ifdef __KERNEL__
-
-#ifndef __ASSEMBLY__
-
-typedef signed char s8;
-typedef unsigned char u8;
-
-typedef signed short s16;
-typedef unsigned short u16;
-
-typedef signed int s32;
-typedef unsigned int u32;
-
-typedef signed long s64;
-typedef unsigned long u64;
-
-#define S8_C(x) x
-#define U8_C(x) x ## U
-#define S16_C(x) x
-#define U16_C(x) x ## U
-#define S32_C(x) x
-#define U32_C(x) x ## U
-#define S64_C(x) x ## L
-#define U64_C(x) x ## UL
-
-#else /* __ASSEMBLY__ */
-
-#define S8_C(x) x
-#define U8_C(x) x
-#define S16_C(x) x
-#define U16_C(x) x
-#define S32_C(x) x
-#define U32_C(x) x
-#define S64_C(x) x
-#define U64_C(x) x
-
-#endif /* __ASSEMBLY__ */
-
-#endif /* __KERNEL__ */
-
-#endif /* _ASM_GENERIC_INT_L64_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/int-ll64.h b/ANDROID_3.4.5/include/asm-generic/int-ll64.h
deleted file mode 100644
index f394147c..00000000
--- a/ANDROID_3.4.5/include/asm-generic/int-ll64.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * asm-generic/int-ll64.h
- *
- * Integer declarations for architectures which use "long long"
- * for 64-bit types.
- */
-
-#ifndef _ASM_GENERIC_INT_LL64_H
-#define _ASM_GENERIC_INT_LL64_H
-
-#include <asm/bitsperlong.h>
-
-#ifndef __ASSEMBLY__
-/*
- * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the
- * header files exported to user space
- */
-
-typedef __signed__ char __s8;
-typedef unsigned char __u8;
-
-typedef __signed__ short __s16;
-typedef unsigned short __u16;
-
-typedef __signed__ int __s32;
-typedef unsigned int __u32;
-
-#ifdef __GNUC__
-__extension__ typedef __signed__ long long __s64;
-__extension__ typedef unsigned long long __u64;
-#else
-typedef __signed__ long long __s64;
-typedef unsigned long long __u64;
-#endif
-
-#endif /* __ASSEMBLY__ */
-
-#ifdef __KERNEL__
-
-#ifndef __ASSEMBLY__
-
-typedef signed char s8;
-typedef unsigned char u8;
-
-typedef signed short s16;
-typedef unsigned short u16;
-
-typedef signed int s32;
-typedef unsigned int u32;
-
-typedef signed long long s64;
-typedef unsigned long long u64;
-
-#define S8_C(x) x
-#define U8_C(x) x ## U
-#define S16_C(x) x
-#define U16_C(x) x ## U
-#define S32_C(x) x
-#define U32_C(x) x ## U
-#define S64_C(x) x ## LL
-#define U64_C(x) x ## ULL
-
-#else /* __ASSEMBLY__ */
-
-#define S8_C(x) x
-#define U8_C(x) x
-#define S16_C(x) x
-#define U16_C(x) x
-#define S32_C(x) x
-#define U32_C(x) x
-#define S64_C(x) x
-#define U64_C(x) x
-
-#endif /* __ASSEMBLY__ */
-
-#endif /* __KERNEL__ */
-
-#endif /* _ASM_GENERIC_INT_LL64_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/io-64-nonatomic-hi-lo.h b/ANDROID_3.4.5/include/asm-generic/io-64-nonatomic-hi-lo.h
deleted file mode 100644
index a6806a94..00000000
--- a/ANDROID_3.4.5/include/asm-generic/io-64-nonatomic-hi-lo.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef _ASM_IO_64_NONATOMIC_HI_LO_H_
-#define _ASM_IO_64_NONATOMIC_HI_LO_H_
-
-#include <linux/io.h>
-#include <asm-generic/int-ll64.h>
-
-#ifndef readq
-static inline __u64 readq(const volatile void __iomem *addr)
-{
- const volatile u32 __iomem *p = addr;
- u32 low, high;
-
- high = readl(p + 1);
- low = readl(p);
-
- return low + ((u64)high << 32);
-}
-#endif
-
-#ifndef writeq
-static inline void writeq(__u64 val, volatile void __iomem *addr)
-{
- writel(val >> 32, addr + 4);
- writel(val, addr);
-}
-#endif
-
-#endif /* _ASM_IO_64_NONATOMIC_HI_LO_H_ */
diff --git a/ANDROID_3.4.5/include/asm-generic/io-64-nonatomic-lo-hi.h b/ANDROID_3.4.5/include/asm-generic/io-64-nonatomic-lo-hi.h
deleted file mode 100644
index ca546b1f..00000000
--- a/ANDROID_3.4.5/include/asm-generic/io-64-nonatomic-lo-hi.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef _ASM_IO_64_NONATOMIC_LO_HI_H_
-#define _ASM_IO_64_NONATOMIC_LO_HI_H_
-
-#include <linux/io.h>
-#include <asm-generic/int-ll64.h>
-
-#ifndef readq
-static inline __u64 readq(const volatile void __iomem *addr)
-{
- const volatile u32 __iomem *p = addr;
- u32 low, high;
-
- low = readl(p);
- high = readl(p + 1);
-
- return low + ((u64)high << 32);
-}
-#endif
-
-#ifndef writeq
-static inline void writeq(__u64 val, volatile void __iomem *addr)
-{
- writel(val, addr);
- writel(val >> 32, addr + 4);
-}
-#endif
-
-#endif /* _ASM_IO_64_NONATOMIC_LO_HI_H_ */
diff --git a/ANDROID_3.4.5/include/asm-generic/io.h b/ANDROID_3.4.5/include/asm-generic/io.h
deleted file mode 100644
index 448303bd..00000000
--- a/ANDROID_3.4.5/include/asm-generic/io.h
+++ /dev/null
@@ -1,372 +0,0 @@
-/* Generic I/O port emulation, based on MN10300 code
- *
- * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
- * Written by David Howells (dhowells@redhat.com)
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public Licence
- * as published by the Free Software Foundation; either version
- * 2 of the Licence, or (at your option) any later version.
- */
-#ifndef __ASM_GENERIC_IO_H
-#define __ASM_GENERIC_IO_H
-
-#include <asm/page.h> /* I/O is all done through memory accesses */
-#include <asm/cacheflush.h>
-#include <linux/types.h>
-
-#ifdef CONFIG_GENERIC_IOMAP
-#include <asm-generic/iomap.h>
-#endif
-
-#include <asm-generic/pci_iomap.h>
-
-#ifndef mmiowb
-#define mmiowb() do {} while (0)
-#endif
-
-/*****************************************************************************/
-/*
- * readX/writeX() are used to access memory mapped devices. On some
- * architectures the memory mapped IO stuff needs to be accessed
- * differently. On the simple architectures, we just read/write the
- * memory location directly.
- */
-#ifndef __raw_readb
-static inline u8 __raw_readb(const volatile void __iomem *addr)
-{
- return *(const volatile u8 __force *) addr;
-}
-#endif
-
-#ifndef __raw_readw
-static inline u16 __raw_readw(const volatile void __iomem *addr)
-{
- return *(const volatile u16 __force *) addr;
-}
-#endif
-
-#ifndef __raw_readl
-static inline u32 __raw_readl(const volatile void __iomem *addr)
-{
- return *(const volatile u32 __force *) addr;
-}
-#endif
-
-#define readb __raw_readb
-#define readw(addr) __le16_to_cpu(__raw_readw(addr))
-#define readl(addr) __le32_to_cpu(__raw_readl(addr))
-
-#ifndef __raw_writeb
-static inline void __raw_writeb(u8 b, volatile void __iomem *addr)
-{
- *(volatile u8 __force *) addr = b;
-}
-#endif
-
-#ifndef __raw_writew
-static inline void __raw_writew(u16 b, volatile void __iomem *addr)
-{
- *(volatile u16 __force *) addr = b;
-}
-#endif
-
-#ifndef __raw_writel
-static inline void __raw_writel(u32 b, volatile void __iomem *addr)
-{
- *(volatile u32 __force *) addr = b;
-}
-#endif
-
-#define writeb __raw_writeb
-#define writew(b,addr) __raw_writew(__cpu_to_le16(b),addr)
-#define writel(b,addr) __raw_writel(__cpu_to_le32(b),addr)
-
-#ifdef CONFIG_64BIT
-static inline u64 __raw_readq(const volatile void __iomem *addr)
-{
- return *(const volatile u64 __force *) addr;
-}
-#define readq(addr) __le64_to_cpu(__raw_readq(addr))
-
-static inline void __raw_writeq(u64 b, volatile void __iomem *addr)
-{
- *(volatile u64 __force *) addr = b;
-}
-#define writeq(b,addr) __raw_writeq(__cpu_to_le64(b),addr)
-#endif
-
-#ifndef PCI_IOBASE
-#define PCI_IOBASE ((void __iomem *) 0)
-#endif
-
-/*****************************************************************************/
-/*
- * traditional input/output functions
- */
-
-static inline u8 inb(unsigned long addr)
-{
- return readb(addr + PCI_IOBASE);
-}
-
-static inline u16 inw(unsigned long addr)
-{
- return readw(addr + PCI_IOBASE);
-}
-
-static inline u32 inl(unsigned long addr)
-{
- return readl(addr + PCI_IOBASE);
-}
-
-static inline void outb(u8 b, unsigned long addr)
-{
- writeb(b, addr + PCI_IOBASE);
-}
-
-static inline void outw(u16 b, unsigned long addr)
-{
- writew(b, addr + PCI_IOBASE);
-}
-
-static inline void outl(u32 b, unsigned long addr)
-{
- writel(b, addr + PCI_IOBASE);
-}
-
-#define inb_p(addr) inb(addr)
-#define inw_p(addr) inw(addr)
-#define inl_p(addr) inl(addr)
-#define outb_p(x, addr) outb((x), (addr))
-#define outw_p(x, addr) outw((x), (addr))
-#define outl_p(x, addr) outl((x), (addr))
-
-#ifndef insb
-static inline void insb(unsigned long addr, void *buffer, int count)
-{
- if (count) {
- u8 *buf = buffer;
- do {
- u8 x = inb(addr);
- *buf++ = x;
- } while (--count);
- }
-}
-#endif
-
-#ifndef insw
-static inline void insw(unsigned long addr, void *buffer, int count)
-{
- if (count) {
- u16 *buf = buffer;
- do {
- u16 x = inw(addr);
- *buf++ = x;
- } while (--count);
- }
-}
-#endif
-
-#ifndef insl
-static inline void insl(unsigned long addr, void *buffer, int count)
-{
- if (count) {
- u32 *buf = buffer;
- do {
- u32 x = inl(addr);
- *buf++ = x;
- } while (--count);
- }
-}
-#endif
-
-#ifndef outsb
-static inline void outsb(unsigned long addr, const void *buffer, int count)
-{
- if (count) {
- const u8 *buf = buffer;
- do {
- outb(*buf++, addr);
- } while (--count);
- }
-}
-#endif
-
-#ifndef outsw
-static inline void outsw(unsigned long addr, const void *buffer, int count)
-{
- if (count) {
- const u16 *buf = buffer;
- do {
- outw(*buf++, addr);
- } while (--count);
- }
-}
-#endif
-
-#ifndef outsl
-static inline void outsl(unsigned long addr, const void *buffer, int count)
-{
- if (count) {
- const u32 *buf = buffer;
- do {
- outl(*buf++, addr);
- } while (--count);
- }
-}
-#endif
-
-static inline void readsl(const void __iomem *addr, void *buf, int len)
-{
- insl(addr - PCI_IOBASE, buf, len);
-}
-
-static inline void readsw(const void __iomem *addr, void *buf, int len)
-{
- insw(addr - PCI_IOBASE, buf, len);
-}
-
-static inline void readsb(const void __iomem *addr, void *buf, int len)
-{
- insb(addr - PCI_IOBASE, buf, len);
-}
-
-static inline void writesl(const void __iomem *addr, const void *buf, int len)
-{
- outsl(addr - PCI_IOBASE, buf, len);
-}
-
-static inline void writesw(const void __iomem *addr, const void *buf, int len)
-{
- outsw(addr - PCI_IOBASE, buf, len);
-}
-
-static inline void writesb(const void __iomem *addr, const void *buf, int len)
-{
- outsb(addr - PCI_IOBASE, buf, len);
-}
-
-#ifndef CONFIG_GENERIC_IOMAP
-#define ioread8(addr) readb(addr)
-#define ioread16(addr) readw(addr)
-#define ioread16be(addr) be16_to_cpu(ioread16(addr))
-#define ioread32(addr) readl(addr)
-#define ioread32be(addr) be32_to_cpu(ioread32(addr))
-
-#define iowrite8(v, addr) writeb((v), (addr))
-#define iowrite16(v, addr) writew((v), (addr))
-#define iowrite16be(v, addr) iowrite16(be16_to_cpu(v), (addr))
-#define iowrite32(v, addr) writel((v), (addr))
-#define iowrite32be(v, addr) iowrite32(be32_to_cpu(v), (addr))
-
-#define ioread8_rep(p, dst, count) \
- insb((unsigned long) (p), (dst), (count))
-#define ioread16_rep(p, dst, count) \
- insw((unsigned long) (p), (dst), (count))
-#define ioread32_rep(p, dst, count) \
- insl((unsigned long) (p), (dst), (count))
-
-#define iowrite8_rep(p, src, count) \
- outsb((unsigned long) (p), (src), (count))
-#define iowrite16_rep(p, src, count) \
- outsw((unsigned long) (p), (src), (count))
-#define iowrite32_rep(p, src, count) \
- outsl((unsigned long) (p), (src), (count))
-#endif /* CONFIG_GENERIC_IOMAP */
-
-#ifndef IO_SPACE_LIMIT
-#define IO_SPACE_LIMIT 0xffff
-#endif
-
-#ifdef __KERNEL__
-
-#include <linux/vmalloc.h>
-#define __io_virt(x) ((void __force *) (x))
-
-#ifndef CONFIG_GENERIC_IOMAP
-struct pci_dev;
-static inline void pci_iounmap(struct pci_dev *dev, void __iomem *p)
-{
-}
-#endif /* CONFIG_GENERIC_IOMAP */
-
-/*
- * Change virtual addresses to physical addresses and vv.
- * These are pretty trivial
- */
-static inline unsigned long virt_to_phys(volatile void *address)
-{
- return __pa((unsigned long)address);
-}
-
-static inline void *phys_to_virt(unsigned long address)
-{
- return __va(address);
-}
-
-/*
- * Change "struct page" to physical address.
- *
- * This implementation is for the no-MMU case only... if you have an MMU
- * you'll need to provide your own definitions.
- */
-#ifndef CONFIG_MMU
-static inline void __iomem *ioremap(phys_addr_t offset, unsigned long size)
-{
- return (void __iomem*) (unsigned long)offset;
-}
-
-#define __ioremap(offset, size, flags) ioremap(offset, size)
-
-#ifndef ioremap_nocache
-#define ioremap_nocache ioremap
-#endif
-
-#ifndef ioremap_wc
-#define ioremap_wc ioremap_nocache
-#endif
-
-static inline void iounmap(void __iomem *addr)
-{
-}
-#endif /* CONFIG_MMU */
-
-#ifdef CONFIG_HAS_IOPORT
-#ifndef CONFIG_GENERIC_IOMAP
-static inline void __iomem *ioport_map(unsigned long port, unsigned int nr)
-{
- return (void __iomem *) port;
-}
-
-static inline void ioport_unmap(void __iomem *p)
-{
-}
-#else /* CONFIG_GENERIC_IOMAP */
-extern void __iomem *ioport_map(unsigned long port, unsigned int nr);
-extern void ioport_unmap(void __iomem *p);
-#endif /* CONFIG_GENERIC_IOMAP */
-#endif /* CONFIG_HAS_IOPORT */
-
-#define xlate_dev_kmem_ptr(p) p
-#define xlate_dev_mem_ptr(p) __va(p)
-
-#ifndef virt_to_bus
-static inline unsigned long virt_to_bus(volatile void *address)
-{
- return ((unsigned long) address);
-}
-
-static inline void *bus_to_virt(unsigned long address)
-{
- return (void *) address;
-}
-#endif
-
-#define memset_io(a, b, c) memset(__io_virt(a), (b), (c))
-#define memcpy_fromio(a, b, c) memcpy((a), __io_virt(b), (c))
-#define memcpy_toio(a, b, c) memcpy(__io_virt(a), (b), (c))
-
-#endif /* __KERNEL__ */
-
-#endif /* __ASM_GENERIC_IO_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/ioctl.h b/ANDROID_3.4.5/include/asm-generic/ioctl.h
deleted file mode 100644
index 15828b2d..00000000
--- a/ANDROID_3.4.5/include/asm-generic/ioctl.h
+++ /dev/null
@@ -1,105 +0,0 @@
-#ifndef _ASM_GENERIC_IOCTL_H
-#define _ASM_GENERIC_IOCTL_H
-
-/* ioctl command encoding: 32 bits total, command in lower 16 bits,
- * size of the parameter structure in the lower 14 bits of the
- * upper 16 bits.
- * Encoding the size of the parameter structure in the ioctl request
- * is useful for catching programs compiled with old versions
- * and to avoid overwriting user space outside the user buffer area.
- * The highest 2 bits are reserved for indicating the ``access mode''.
- * NOTE: This limits the max parameter size to 16kB -1 !
- */
-
-/*
- * The following is for compatibility across the various Linux
- * platforms. The generic ioctl numbering scheme doesn't really enforce
- * a type field. De facto, however, the top 8 bits of the lower 16
- * bits are indeed used as a type field, so we might just as well make
- * this explicit here. Please be sure to use the decoding macros
- * below from now on.
- */
-#define _IOC_NRBITS 8
-#define _IOC_TYPEBITS 8
-
-/*
- * Let any architecture override either of the following before
- * including this file.
- */
-
-#ifndef _IOC_SIZEBITS
-# define _IOC_SIZEBITS 14
-#endif
-
-#ifndef _IOC_DIRBITS
-# define _IOC_DIRBITS 2
-#endif
-
-#define _IOC_NRMASK ((1 << _IOC_NRBITS)-1)
-#define _IOC_TYPEMASK ((1 << _IOC_TYPEBITS)-1)
-#define _IOC_SIZEMASK ((1 << _IOC_SIZEBITS)-1)
-#define _IOC_DIRMASK ((1 << _IOC_DIRBITS)-1)
-
-#define _IOC_NRSHIFT 0
-#define _IOC_TYPESHIFT (_IOC_NRSHIFT+_IOC_NRBITS)
-#define _IOC_SIZESHIFT (_IOC_TYPESHIFT+_IOC_TYPEBITS)
-#define _IOC_DIRSHIFT (_IOC_SIZESHIFT+_IOC_SIZEBITS)
-
-/*
- * Direction bits, which any architecture can choose to override
- * before including this file.
- */
-
-#ifndef _IOC_NONE
-# define _IOC_NONE 0U
-#endif
-
-#ifndef _IOC_WRITE
-# define _IOC_WRITE 1U
-#endif
-
-#ifndef _IOC_READ
-# define _IOC_READ 2U
-#endif
-
-#define _IOC(dir,type,nr,size) \
- (((dir) << _IOC_DIRSHIFT) | \
- ((type) << _IOC_TYPESHIFT) | \
- ((nr) << _IOC_NRSHIFT) | \
- ((size) << _IOC_SIZESHIFT))
-
-#ifdef __KERNEL__
-/* provoke compile error for invalid uses of size argument */
-extern unsigned int __invalid_size_argument_for_IOC;
-#define _IOC_TYPECHECK(t) \
- ((sizeof(t) == sizeof(t[1]) && \
- sizeof(t) < (1 << _IOC_SIZEBITS)) ? \
- sizeof(t) : __invalid_size_argument_for_IOC)
-#else
-#define _IOC_TYPECHECK(t) (sizeof(t))
-#endif
-
-/* used to create numbers */
-#define _IO(type,nr) _IOC(_IOC_NONE,(type),(nr),0)
-#define _IOR(type,nr,size) _IOC(_IOC_READ,(type),(nr),(_IOC_TYPECHECK(size)))
-#define _IOW(type,nr,size) _IOC(_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
-#define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
-#define _IOR_BAD(type,nr,size) _IOC(_IOC_READ,(type),(nr),sizeof(size))
-#define _IOW_BAD(type,nr,size) _IOC(_IOC_WRITE,(type),(nr),sizeof(size))
-#define _IOWR_BAD(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),sizeof(size))
-
-/* used to decode ioctl numbers.. */
-#define _IOC_DIR(nr) (((nr) >> _IOC_DIRSHIFT) & _IOC_DIRMASK)
-#define _IOC_TYPE(nr) (((nr) >> _IOC_TYPESHIFT) & _IOC_TYPEMASK)
-#define _IOC_NR(nr) (((nr) >> _IOC_NRSHIFT) & _IOC_NRMASK)
-#define _IOC_SIZE(nr) (((nr) >> _IOC_SIZESHIFT) & _IOC_SIZEMASK)
-
-/* ...and for the drivers/sound files... */
-
-#define IOC_IN (_IOC_WRITE << _IOC_DIRSHIFT)
-#define IOC_OUT (_IOC_READ << _IOC_DIRSHIFT)
-#define IOC_INOUT ((_IOC_WRITE|_IOC_READ) << _IOC_DIRSHIFT)
-#define IOCSIZE_MASK (_IOC_SIZEMASK << _IOC_SIZESHIFT)
-#define IOCSIZE_SHIFT (_IOC_SIZESHIFT)
-
-#endif /* _ASM_GENERIC_IOCTL_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/ioctls.h b/ANDROID_3.4.5/include/asm-generic/ioctls.h
deleted file mode 100644
index 199975fa..00000000
--- a/ANDROID_3.4.5/include/asm-generic/ioctls.h
+++ /dev/null
@@ -1,114 +0,0 @@
-#ifndef __ASM_GENERIC_IOCTLS_H
-#define __ASM_GENERIC_IOCTLS_H
-
-#include <linux/ioctl.h>
-
-/*
- * These are the most common definitions for tty ioctl numbers.
- * Most of them do not use the recommended _IOC(), but there is
- * probably some source code out there hardcoding the number,
- * so we might as well use them for all new platforms.
- *
- * The architectures that use different values here typically
- * try to be compatible with some Unix variants for the same
- * architecture.
- */
-
-/* 0x54 is just a magic number to make these relatively unique ('T') */
-
-#define TCGETS 0x5401
-#define TCSETS 0x5402
-#define TCSETSW 0x5403
-#define TCSETSF 0x5404
-#define TCGETA 0x5405
-#define TCSETA 0x5406
-#define TCSETAW 0x5407
-#define TCSETAF 0x5408
-#define TCSBRK 0x5409
-#define TCXONC 0x540A
-#define TCFLSH 0x540B
-#define TIOCEXCL 0x540C
-#define TIOCNXCL 0x540D
-#define TIOCSCTTY 0x540E
-#define TIOCGPGRP 0x540F
-#define TIOCSPGRP 0x5410
-#define TIOCOUTQ 0x5411
-#define TIOCSTI 0x5412
-#define TIOCGWINSZ 0x5413
-#define TIOCSWINSZ 0x5414
-#define TIOCMGET 0x5415
-#define TIOCMBIS 0x5416
-#define TIOCMBIC 0x5417
-#define TIOCMSET 0x5418
-#define TIOCGSOFTCAR 0x5419
-#define TIOCSSOFTCAR 0x541A
-#define FIONREAD 0x541B
-#define TIOCINQ FIONREAD
-#define TIOCLINUX 0x541C
-#define TIOCCONS 0x541D
-#define TIOCGSERIAL 0x541E
-#define TIOCSSERIAL 0x541F
-#define TIOCPKT 0x5420
-#define FIONBIO 0x5421
-#define TIOCNOTTY 0x5422
-#define TIOCSETD 0x5423
-#define TIOCGETD 0x5424
-#define TCSBRKP 0x5425 /* Needed for POSIX tcsendbreak() */
-#define TIOCSBRK 0x5427 /* BSD compatibility */
-#define TIOCCBRK 0x5428 /* BSD compatibility */
-#define TIOCGSID 0x5429 /* Return the session ID of FD */
-#define TCGETS2 _IOR('T', 0x2A, struct termios2)
-#define TCSETS2 _IOW('T', 0x2B, struct termios2)
-#define TCSETSW2 _IOW('T', 0x2C, struct termios2)
-#define TCSETSF2 _IOW('T', 0x2D, struct termios2)
-#define TIOCGRS485 0x542E
-#ifndef TIOCSRS485
-#define TIOCSRS485 0x542F
-#endif
-#define TIOCGPTN _IOR('T', 0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
-#define TIOCSPTLCK _IOW('T', 0x31, int) /* Lock/unlock Pty */
-#define TIOCGDEV _IOR('T', 0x32, unsigned int) /* Get primary device node of /dev/console */
-#define TCGETX 0x5432 /* SYS5 TCGETX compatibility */
-#define TCSETX 0x5433
-#define TCSETXF 0x5434
-#define TCSETXW 0x5435
-#define TIOCSIG _IOW('T', 0x36, int) /* pty: generate signal */
-#define TIOCVHANGUP 0x5437
-
-#define FIONCLEX 0x5450
-#define FIOCLEX 0x5451
-#define FIOASYNC 0x5452
-#define TIOCSERCONFIG 0x5453
-#define TIOCSERGWILD 0x5454
-#define TIOCSERSWILD 0x5455
-#define TIOCGLCKTRMIOS 0x5456
-#define TIOCSLCKTRMIOS 0x5457
-#define TIOCSERGSTRUCT 0x5458 /* For debugging only */
-#define TIOCSERGETLSR 0x5459 /* Get line status register */
-#define TIOCSERGETMULTI 0x545A /* Get multiport config */
-#define TIOCSERSETMULTI 0x545B /* Set multiport config */
-
-#define TIOCMIWAIT 0x545C /* wait for a change on serial input line(s) */
-#define TIOCGICOUNT 0x545D /* read serial port inline interrupt counts */
-
-/*
- * Some arches already define FIOQSIZE due to a historical
- * conflict with a Hayes modem-specific ioctl value.
- */
-#ifndef FIOQSIZE
-# define FIOQSIZE 0x5460
-#endif
-
-/* Used for packet mode */
-#define TIOCPKT_DATA 0
-#define TIOCPKT_FLUSHREAD 1
-#define TIOCPKT_FLUSHWRITE 2
-#define TIOCPKT_STOP 4
-#define TIOCPKT_START 8
-#define TIOCPKT_NOSTOP 16
-#define TIOCPKT_DOSTOP 32
-#define TIOCPKT_IOCTL 64
-
-#define TIOCSER_TEMT 0x01 /* Transmitter physically empty */
-
-#endif /* __ASM_GENERIC_IOCTLS_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/iomap.h b/ANDROID_3.4.5/include/asm-generic/iomap.h
deleted file mode 100644
index 6afd7d6a..00000000
--- a/ANDROID_3.4.5/include/asm-generic/iomap.h
+++ /dev/null
@@ -1,81 +0,0 @@
-#ifndef __GENERIC_IO_H
-#define __GENERIC_IO_H
-
-#include <linux/linkage.h>
-#include <asm/byteorder.h>
-
-/*
- * These are the "generic" interfaces for doing new-style
- * memory-mapped or PIO accesses. Architectures may do
- * their own arch-optimized versions, these just act as
- * wrappers around the old-style IO register access functions:
- * read[bwl]/write[bwl]/in[bwl]/out[bwl]
- *
- * Don't include this directly, include it from <asm/io.h>.
- */
-
-/*
- * Read/write from/to an (offsettable) iomem cookie. It might be a PIO
- * access or a MMIO access, these functions don't care. The info is
- * encoded in the hardware mapping set up by the mapping functions
- * (or the cookie itself, depending on implementation and hw).
- *
- * The generic routines just encode the PIO/MMIO as part of the
- * cookie, and coldly assume that the MMIO IO mappings are not
- * in the low address range. Architectures for which this is not
- * true can't use this generic implementation.
- */
-extern unsigned int ioread8(void __iomem *);
-extern unsigned int ioread16(void __iomem *);
-extern unsigned int ioread16be(void __iomem *);
-extern unsigned int ioread32(void __iomem *);
-extern unsigned int ioread32be(void __iomem *);
-
-extern void iowrite8(u8, void __iomem *);
-extern void iowrite16(u16, void __iomem *);
-extern void iowrite16be(u16, void __iomem *);
-extern void iowrite32(u32, void __iomem *);
-extern void iowrite32be(u32, void __iomem *);
-
-/*
- * "string" versions of the above. Note that they
- * use native byte ordering for the accesses (on
- * the assumption that IO and memory agree on a
- * byte order, and CPU byteorder is irrelevant).
- *
- * They do _not_ update the port address. If you
- * want MMIO that copies stuff laid out in MMIO
- * memory across multiple ports, use "memcpy_toio()"
- * and friends.
- */
-extern void ioread8_rep(void __iomem *port, void *buf, unsigned long count);
-extern void ioread16_rep(void __iomem *port, void *buf, unsigned long count);
-extern void ioread32_rep(void __iomem *port, void *buf, unsigned long count);
-
-extern void iowrite8_rep(void __iomem *port, const void *buf, unsigned long count);
-extern void iowrite16_rep(void __iomem *port, const void *buf, unsigned long count);
-extern void iowrite32_rep(void __iomem *port, const void *buf, unsigned long count);
-
-#ifdef CONFIG_HAS_IOPORT
-/* Create a virtual mapping cookie for an IO port range */
-extern void __iomem *ioport_map(unsigned long port, unsigned int nr);
-extern void ioport_unmap(void __iomem *);
-#endif
-
-#ifndef ARCH_HAS_IOREMAP_WC
-#define ioremap_wc ioremap_nocache
-#endif
-
-#ifdef CONFIG_PCI
-/* Destroy a virtual mapping cookie for a PCI BAR (memory or IO) */
-struct pci_dev;
-extern void pci_iounmap(struct pci_dev *dev, void __iomem *);
-#elif defined(CONFIG_GENERIC_IOMAP)
-struct pci_dev;
-static inline void pci_iounmap(struct pci_dev *dev, void __iomem *addr)
-{ }
-#endif
-
-#include <asm-generic/pci_iomap.h>
-
-#endif
diff --git a/ANDROID_3.4.5/include/asm-generic/ipcbuf.h b/ANDROID_3.4.5/include/asm-generic/ipcbuf.h
deleted file mode 100644
index 76982b2a..00000000
--- a/ANDROID_3.4.5/include/asm-generic/ipcbuf.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef __ASM_GENERIC_IPCBUF_H
-#define __ASM_GENERIC_IPCBUF_H
-
-/*
- * The generic ipc64_perm structure:
- * Note extra padding because this structure is passed back and forth
- * between kernel and user space.
- *
- * ipc64_perm was originally meant to be architecture specific, but
- * everyone just ended up making identical copies without specific
- * optimizations, so we may just as well all use the same one.
- *
- * Pad space is left for:
- * - 32-bit mode_t on architectures that only had 16 bit
- * - 32-bit seq
- * - 2 miscellaneous 32-bit values
- */
-
-struct ipc64_perm {
- __kernel_key_t key;
- __kernel_uid32_t uid;
- __kernel_gid32_t gid;
- __kernel_uid32_t cuid;
- __kernel_gid32_t cgid;
- __kernel_mode_t mode;
- /* pad if mode_t is u16: */
- unsigned char __pad1[4 - sizeof(__kernel_mode_t)];
- unsigned short seq;
- unsigned short __pad2;
- unsigned long __unused1;
- unsigned long __unused2;
-};
-
-#endif /* __ASM_GENERIC_IPCBUF_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/irq.h b/ANDROID_3.4.5/include/asm-generic/irq.h
deleted file mode 100644
index b90ec0bc..00000000
--- a/ANDROID_3.4.5/include/asm-generic/irq.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef __ASM_GENERIC_IRQ_H
-#define __ASM_GENERIC_IRQ_H
-
-/*
- * NR_IRQS is the upper bound of how many interrupts can be handled
- * in the platform. It is used to size the static irq_map array,
- * so don't make it too big.
- */
-#ifndef NR_IRQS
-#define NR_IRQS 64
-#endif
-
-static inline int irq_canonicalize(int irq)
-{
- return irq;
-}
-
-#endif /* __ASM_GENERIC_IRQ_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/irq_regs.h b/ANDROID_3.4.5/include/asm-generic/irq_regs.h
deleted file mode 100644
index 6bf9355f..00000000
--- a/ANDROID_3.4.5/include/asm-generic/irq_regs.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Fallback per-CPU frame pointer holder
- *
- * Copyright (C) 2006 Red Hat, Inc. All Rights Reserved.
- * Written by David Howells (dhowells@redhat.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 _ASM_GENERIC_IRQ_REGS_H
-#define _ASM_GENERIC_IRQ_REGS_H
-
-#include <linux/percpu.h>
-
-/*
- * Per-cpu current frame pointer - the location of the last exception frame on
- * the stack
- */
-DECLARE_PER_CPU(struct pt_regs *, __irq_regs);
-
-static inline struct pt_regs *get_irq_regs(void)
-{
- return __this_cpu_read(__irq_regs);
-}
-
-static inline struct pt_regs *set_irq_regs(struct pt_regs *new_regs)
-{
- struct pt_regs *old_regs;
-
- old_regs = __this_cpu_read(__irq_regs);
- __this_cpu_write(__irq_regs, new_regs);
- return old_regs;
-}
-
-#endif /* _ASM_GENERIC_IRQ_REGS_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/irqflags.h b/ANDROID_3.4.5/include/asm-generic/irqflags.h
deleted file mode 100644
index 1f40d002..00000000
--- a/ANDROID_3.4.5/include/asm-generic/irqflags.h
+++ /dev/null
@@ -1,66 +0,0 @@
-#ifndef __ASM_GENERIC_IRQFLAGS_H
-#define __ASM_GENERIC_IRQFLAGS_H
-
-/*
- * All architectures should implement at least the first two functions,
- * usually inline assembly will be the best way.
- */
-#ifndef ARCH_IRQ_DISABLED
-#define ARCH_IRQ_DISABLED 0
-#define ARCH_IRQ_ENABLED 1
-#endif
-
-/* read interrupt enabled status */
-#ifndef arch_local_save_flags
-unsigned long arch_local_save_flags(void);
-#endif
-
-/* set interrupt enabled status */
-#ifndef arch_local_irq_restore
-void arch_local_irq_restore(unsigned long flags);
-#endif
-
-/* get status and disable interrupts */
-#ifndef arch_local_irq_save
-static inline unsigned long arch_local_irq_save(void)
-{
- unsigned long flags;
- flags = arch_local_save_flags();
- arch_local_irq_restore(ARCH_IRQ_DISABLED);
- return flags;
-}
-#endif
-
-/* test flags */
-#ifndef arch_irqs_disabled_flags
-static inline int arch_irqs_disabled_flags(unsigned long flags)
-{
- return flags == ARCH_IRQ_DISABLED;
-}
-#endif
-
-/* unconditionally enable interrupts */
-#ifndef arch_local_irq_enable
-static inline void arch_local_irq_enable(void)
-{
- arch_local_irq_restore(ARCH_IRQ_ENABLED);
-}
-#endif
-
-/* unconditionally disable interrupts */
-#ifndef arch_local_irq_disable
-static inline void arch_local_irq_disable(void)
-{
- arch_local_irq_restore(ARCH_IRQ_DISABLED);
-}
-#endif
-
-/* test hardware interrupt enable bit */
-#ifndef arch_irqs_disabled
-static inline int arch_irqs_disabled(void)
-{
- return arch_irqs_disabled_flags(arch_local_save_flags());
-}
-#endif
-
-#endif /* __ASM_GENERIC_IRQFLAGS_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/kdebug.h b/ANDROID_3.4.5/include/asm-generic/kdebug.h
deleted file mode 100644
index d1814497..00000000
--- a/ANDROID_3.4.5/include/asm-generic/kdebug.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef _ASM_GENERIC_KDEBUG_H
-#define _ASM_GENERIC_KDEBUG_H
-
-enum die_val {
- DIE_UNUSED,
- DIE_OOPS = 1,
-};
-
-#endif /* _ASM_GENERIC_KDEBUG_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/kmap_types.h b/ANDROID_3.4.5/include/asm-generic/kmap_types.h
deleted file mode 100644
index 0232ccb7..00000000
--- a/ANDROID_3.4.5/include/asm-generic/kmap_types.h
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef _ASM_GENERIC_KMAP_TYPES_H
-#define _ASM_GENERIC_KMAP_TYPES_H
-
-#ifdef __WITH_KM_FENCE
-# define KMAP_D(n) __KM_FENCE_##n ,
-#else
-# define KMAP_D(n)
-#endif
-
-enum km_type {
-KMAP_D(0) KM_BOUNCE_READ,
-KMAP_D(1) KM_SKB_SUNRPC_DATA,
-KMAP_D(2) KM_SKB_DATA_SOFTIRQ,
-KMAP_D(3) KM_USER0,
-KMAP_D(4) KM_USER1,
-KMAP_D(5) KM_BIO_SRC_IRQ,
-KMAP_D(6) KM_BIO_DST_IRQ,
-KMAP_D(7) KM_PTE0,
-KMAP_D(8) KM_PTE1,
-KMAP_D(9) KM_IRQ0,
-KMAP_D(10) KM_IRQ1,
-KMAP_D(11) KM_SOFTIRQ0,
-KMAP_D(12) KM_SOFTIRQ1,
-KMAP_D(13) KM_SYNC_ICACHE,
-KMAP_D(14) KM_SYNC_DCACHE,
-/* UML specific, for copy_*_user - used in do_op_one_page */
-KMAP_D(15) KM_UML_USERCOPY,
-KMAP_D(16) KM_IRQ_PTE,
-KMAP_D(17) KM_NMI,
-KMAP_D(18) KM_NMI_PTE,
-KMAP_D(19) KM_KDB,
-/*
- * Remember to update debug_kmap_atomic() when adding new kmap types!
- */
-KMAP_D(20) KM_TYPE_NR
-};
-
-#undef KMAP_D
-
-#endif
diff --git a/ANDROID_3.4.5/include/asm-generic/libata-portmap.h b/ANDROID_3.4.5/include/asm-generic/libata-portmap.h
deleted file mode 100644
index cf14f2ff..00000000
--- a/ANDROID_3.4.5/include/asm-generic/libata-portmap.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef __ASM_GENERIC_LIBATA_PORTMAP_H
-#define __ASM_GENERIC_LIBATA_PORTMAP_H
-
-#define ATA_PRIMARY_IRQ(dev) 14
-#define ATA_SECONDARY_IRQ(dev) 15
-
-#endif
diff --git a/ANDROID_3.4.5/include/asm-generic/linkage.h b/ANDROID_3.4.5/include/asm-generic/linkage.h
deleted file mode 100644
index fef7a01e..00000000
--- a/ANDROID_3.4.5/include/asm-generic/linkage.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef __ASM_GENERIC_LINKAGE_H
-#define __ASM_GENERIC_LINKAGE_H
-/*
- * linux/linkage.h provides reasonable defaults.
- * an architecture can override them by providing its own version.
- */
-
-#endif /* __ASM_GENERIC_LINKAGE_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/local.h b/ANDROID_3.4.5/include/asm-generic/local.h
deleted file mode 100644
index 9ceb03b4..00000000
--- a/ANDROID_3.4.5/include/asm-generic/local.h
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef _ASM_GENERIC_LOCAL_H
-#define _ASM_GENERIC_LOCAL_H
-
-#include <linux/percpu.h>
-#include <linux/atomic.h>
-#include <asm/types.h>
-
-/*
- * A signed long type for operations which are atomic for a single CPU.
- * Usually used in combination with per-cpu variables.
- *
- * This is the default implementation, which uses atomic_long_t. Which is
- * rather pointless. The whole point behind local_t is that some processors
- * can perform atomic adds and subtracts in a manner which is atomic wrt IRQs
- * running on this CPU. local_t allows exploitation of such capabilities.
- */
-
-/* Implement in terms of atomics. */
-
-/* Don't use typedef: don't want them to be mixed with atomic_t's. */
-typedef struct
-{
- atomic_long_t a;
-} local_t;
-
-#define LOCAL_INIT(i) { ATOMIC_LONG_INIT(i) }
-
-#define local_read(l) atomic_long_read(&(l)->a)
-#define local_set(l,i) atomic_long_set((&(l)->a),(i))
-#define local_inc(l) atomic_long_inc(&(l)->a)
-#define local_dec(l) atomic_long_dec(&(l)->a)
-#define local_add(i,l) atomic_long_add((i),(&(l)->a))
-#define local_sub(i,l) atomic_long_sub((i),(&(l)->a))
-
-#define local_sub_and_test(i, l) atomic_long_sub_and_test((i), (&(l)->a))
-#define local_dec_and_test(l) atomic_long_dec_and_test(&(l)->a)
-#define local_inc_and_test(l) atomic_long_inc_and_test(&(l)->a)
-#define local_add_negative(i, l) atomic_long_add_negative((i), (&(l)->a))
-#define local_add_return(i, l) atomic_long_add_return((i), (&(l)->a))
-#define local_sub_return(i, l) atomic_long_sub_return((i), (&(l)->a))
-#define local_inc_return(l) atomic_long_inc_return(&(l)->a)
-
-#define local_cmpxchg(l, o, n) atomic_long_cmpxchg((&(l)->a), (o), (n))
-#define local_xchg(l, n) atomic_long_xchg((&(l)->a), (n))
-#define local_add_unless(l, _a, u) atomic_long_add_unless((&(l)->a), (_a), (u))
-#define local_inc_not_zero(l) atomic_long_inc_not_zero(&(l)->a)
-
-/* Non-atomic variants, ie. preemption disabled and won't be touched
- * in interrupt, etc. Some archs can optimize this case well. */
-#define __local_inc(l) local_set((l), local_read(l) + 1)
-#define __local_dec(l) local_set((l), local_read(l) - 1)
-#define __local_add(i,l) local_set((l), local_read(l) + (i))
-#define __local_sub(i,l) local_set((l), local_read(l) - (i))
-
-#endif /* _ASM_GENERIC_LOCAL_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/local64.h b/ANDROID_3.4.5/include/asm-generic/local64.h
deleted file mode 100644
index 5980002b..00000000
--- a/ANDROID_3.4.5/include/asm-generic/local64.h
+++ /dev/null
@@ -1,96 +0,0 @@
-#ifndef _ASM_GENERIC_LOCAL64_H
-#define _ASM_GENERIC_LOCAL64_H
-
-#include <linux/percpu.h>
-#include <asm/types.h>
-
-/*
- * A signed long type for operations which are atomic for a single CPU.
- * Usually used in combination with per-cpu variables.
- *
- * This is the default implementation, which uses atomic64_t. Which is
- * rather pointless. The whole point behind local64_t is that some processors
- * can perform atomic adds and subtracts in a manner which is atomic wrt IRQs
- * running on this CPU. local64_t allows exploitation of such capabilities.
- */
-
-/* Implement in terms of atomics. */
-
-#if BITS_PER_LONG == 64
-
-#include <asm/local.h>
-
-typedef struct {
- local_t a;
-} local64_t;
-
-#define LOCAL64_INIT(i) { LOCAL_INIT(i) }
-
-#define local64_read(l) local_read(&(l)->a)
-#define local64_set(l,i) local_set((&(l)->a),(i))
-#define local64_inc(l) local_inc(&(l)->a)
-#define local64_dec(l) local_dec(&(l)->a)
-#define local64_add(i,l) local_add((i),(&(l)->a))
-#define local64_sub(i,l) local_sub((i),(&(l)->a))
-
-#define local64_sub_and_test(i, l) local_sub_and_test((i), (&(l)->a))
-#define local64_dec_and_test(l) local_dec_and_test(&(l)->a)
-#define local64_inc_and_test(l) local_inc_and_test(&(l)->a)
-#define local64_add_negative(i, l) local_add_negative((i), (&(l)->a))
-#define local64_add_return(i, l) local_add_return((i), (&(l)->a))
-#define local64_sub_return(i, l) local_sub_return((i), (&(l)->a))
-#define local64_inc_return(l) local_inc_return(&(l)->a)
-
-#define local64_cmpxchg(l, o, n) local_cmpxchg((&(l)->a), (o), (n))
-#define local64_xchg(l, n) local_xchg((&(l)->a), (n))
-#define local64_add_unless(l, _a, u) local_add_unless((&(l)->a), (_a), (u))
-#define local64_inc_not_zero(l) local_inc_not_zero(&(l)->a)
-
-/* Non-atomic variants, ie. preemption disabled and won't be touched
- * in interrupt, etc. Some archs can optimize this case well. */
-#define __local64_inc(l) local64_set((l), local64_read(l) + 1)
-#define __local64_dec(l) local64_set((l), local64_read(l) - 1)
-#define __local64_add(i,l) local64_set((l), local64_read(l) + (i))
-#define __local64_sub(i,l) local64_set((l), local64_read(l) - (i))
-
-#else /* BITS_PER_LONG != 64 */
-
-#include <linux/atomic.h>
-
-/* Don't use typedef: don't want them to be mixed with atomic_t's. */
-typedef struct {
- atomic64_t a;
-} local64_t;
-
-#define LOCAL64_INIT(i) { ATOMIC_LONG_INIT(i) }
-
-#define local64_read(l) atomic64_read(&(l)->a)
-#define local64_set(l,i) atomic64_set((&(l)->a),(i))
-#define local64_inc(l) atomic64_inc(&(l)->a)
-#define local64_dec(l) atomic64_dec(&(l)->a)
-#define local64_add(i,l) atomic64_add((i),(&(l)->a))
-#define local64_sub(i,l) atomic64_sub((i),(&(l)->a))
-
-#define local64_sub_and_test(i, l) atomic64_sub_and_test((i), (&(l)->a))
-#define local64_dec_and_test(l) atomic64_dec_and_test(&(l)->a)
-#define local64_inc_and_test(l) atomic64_inc_and_test(&(l)->a)
-#define local64_add_negative(i, l) atomic64_add_negative((i), (&(l)->a))
-#define local64_add_return(i, l) atomic64_add_return((i), (&(l)->a))
-#define local64_sub_return(i, l) atomic64_sub_return((i), (&(l)->a))
-#define local64_inc_return(l) atomic64_inc_return(&(l)->a)
-
-#define local64_cmpxchg(l, o, n) atomic64_cmpxchg((&(l)->a), (o), (n))
-#define local64_xchg(l, n) atomic64_xchg((&(l)->a), (n))
-#define local64_add_unless(l, _a, u) atomic64_add_unless((&(l)->a), (_a), (u))
-#define local64_inc_not_zero(l) atomic64_inc_not_zero(&(l)->a)
-
-/* Non-atomic variants, ie. preemption disabled and won't be touched
- * in interrupt, etc. Some archs can optimize this case well. */
-#define __local64_inc(l) local64_set((l), local64_read(l) + 1)
-#define __local64_dec(l) local64_set((l), local64_read(l) - 1)
-#define __local64_add(i,l) local64_set((l), local64_read(l) + (i))
-#define __local64_sub(i,l) local64_set((l), local64_read(l) - (i))
-
-#endif /* BITS_PER_LONG != 64 */
-
-#endif /* _ASM_GENERIC_LOCAL64_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/memory_model.h b/ANDROID_3.4.5/include/asm-generic/memory_model.h
deleted file mode 100644
index aea9e45e..00000000
--- a/ANDROID_3.4.5/include/asm-generic/memory_model.h
+++ /dev/null
@@ -1,77 +0,0 @@
-#ifndef __ASM_MEMORY_MODEL_H
-#define __ASM_MEMORY_MODEL_H
-
-#ifndef __ASSEMBLY__
-
-#if defined(CONFIG_FLATMEM)
-
-#ifndef ARCH_PFN_OFFSET
-#define ARCH_PFN_OFFSET (0UL)
-#endif
-
-#elif defined(CONFIG_DISCONTIGMEM)
-
-#ifndef arch_pfn_to_nid
-#define arch_pfn_to_nid(pfn) pfn_to_nid(pfn)
-#endif
-
-#ifndef arch_local_page_offset
-#define arch_local_page_offset(pfn, nid) \
- ((pfn) - NODE_DATA(nid)->node_start_pfn)
-#endif
-
-#endif /* CONFIG_DISCONTIGMEM */
-
-/*
- * supports 3 memory models.
- */
-#if defined(CONFIG_FLATMEM)
-
-#define __pfn_to_page(pfn) (mem_map + ((pfn) - ARCH_PFN_OFFSET))
-#define __page_to_pfn(page) ((unsigned long)((page) - mem_map) + \
- ARCH_PFN_OFFSET)
-#elif defined(CONFIG_DISCONTIGMEM)
-
-#define __pfn_to_page(pfn) \
-({ unsigned long __pfn = (pfn); \
- unsigned long __nid = arch_pfn_to_nid(__pfn); \
- NODE_DATA(__nid)->node_mem_map + arch_local_page_offset(__pfn, __nid);\
-})
-
-#define __page_to_pfn(pg) \
-({ const struct page *__pg = (pg); \
- struct pglist_data *__pgdat = NODE_DATA(page_to_nid(__pg)); \
- (unsigned long)(__pg - __pgdat->node_mem_map) + \
- __pgdat->node_start_pfn; \
-})
-
-#elif defined(CONFIG_SPARSEMEM_VMEMMAP)
-
-/* memmap is virtually contiguous. */
-#define __pfn_to_page(pfn) (vmemmap + (pfn))
-#define __page_to_pfn(page) (unsigned long)((page) - vmemmap)
-
-#elif defined(CONFIG_SPARSEMEM)
-/*
- * Note: section's mem_map is encorded to reflect its start_pfn.
- * section[i].section_mem_map == mem_map's address - start_pfn;
- */
-#define __page_to_pfn(pg) \
-({ const struct page *__pg = (pg); \
- int __sec = page_to_section(__pg); \
- (unsigned long)(__pg - __section_mem_map_addr(__nr_to_section(__sec))); \
-})
-
-#define __pfn_to_page(pfn) \
-({ unsigned long __pfn = (pfn); \
- struct mem_section *__sec = __pfn_to_section(__pfn); \
- __section_mem_map_addr(__sec) + __pfn; \
-})
-#endif /* CONFIG_FLATMEM/DISCONTIGMEM/SPARSEMEM */
-
-#define page_to_pfn __page_to_pfn
-#define pfn_to_page __pfn_to_page
-
-#endif /* __ASSEMBLY__ */
-
-#endif
diff --git a/ANDROID_3.4.5/include/asm-generic/mm_hooks.h b/ANDROID_3.4.5/include/asm-generic/mm_hooks.h
deleted file mode 100644
index 67dea812..00000000
--- a/ANDROID_3.4.5/include/asm-generic/mm_hooks.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Define generic no-op hooks for arch_dup_mmap and arch_exit_mmap, to
- * be included in asm-FOO/mmu_context.h for any arch FOO which doesn't
- * need to hook these.
- */
-#ifndef _ASM_GENERIC_MM_HOOKS_H
-#define _ASM_GENERIC_MM_HOOKS_H
-
-static inline void arch_dup_mmap(struct mm_struct *oldmm,
- struct mm_struct *mm)
-{
-}
-
-static inline void arch_exit_mmap(struct mm_struct *mm)
-{
-}
-
-#endif /* _ASM_GENERIC_MM_HOOKS_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/mman-common.h b/ANDROID_3.4.5/include/asm-generic/mman-common.h
deleted file mode 100644
index d030d2c2..00000000
--- a/ANDROID_3.4.5/include/asm-generic/mman-common.h
+++ /dev/null
@@ -1,58 +0,0 @@
-#ifndef __ASM_GENERIC_MMAN_COMMON_H
-#define __ASM_GENERIC_MMAN_COMMON_H
-
-/*
- Author: Michael S. Tsirkin <mst@mellanox.co.il>, Mellanox Technologies Ltd.
- Based on: asm-xxx/mman.h
-*/
-
-#define PROT_READ 0x1 /* page can be read */
-#define PROT_WRITE 0x2 /* page can be written */
-#define PROT_EXEC 0x4 /* page can be executed */
-#define PROT_SEM 0x8 /* page may be used for atomic ops */
-#define PROT_NONE 0x0 /* page can not be accessed */
-#define PROT_GROWSDOWN 0x01000000 /* mprotect flag: extend change to start of growsdown vma */
-#define PROT_GROWSUP 0x02000000 /* mprotect flag: extend change to end of growsup vma */
-
-#define MAP_SHARED 0x01 /* Share changes */
-#define MAP_PRIVATE 0x02 /* Changes are private */
-#define MAP_TYPE 0x0f /* Mask for type of mapping */
-#define MAP_FIXED 0x10 /* Interpret addr exactly */
-#define MAP_ANONYMOUS 0x20 /* don't use a file */
-#ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED
-# define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could be uninitialized */
-#else
-# define MAP_UNINITIALIZED 0x0 /* Don't support this flag */
-#endif
-
-#define MS_ASYNC 1 /* sync memory asynchronously */
-#define MS_INVALIDATE 2 /* invalidate the caches */
-#define MS_SYNC 4 /* synchronous memory sync */
-
-#define MADV_NORMAL 0 /* no further special treatment */
-#define MADV_RANDOM 1 /* expect random page references */
-#define MADV_SEQUENTIAL 2 /* expect sequential page references */
-#define MADV_WILLNEED 3 /* will need these pages */
-#define MADV_DONTNEED 4 /* don't need these pages */
-
-/* common parameters: try to keep these consistent across architectures */
-#define MADV_REMOVE 9 /* remove these pages & resources */
-#define MADV_DONTFORK 10 /* don't inherit across fork */
-#define MADV_DOFORK 11 /* do inherit across fork */
-#define MADV_HWPOISON 100 /* poison a page for testing */
-#define MADV_SOFT_OFFLINE 101 /* soft offline page for testing */
-
-#define MADV_MERGEABLE 12 /* KSM may merge identical pages */
-#define MADV_UNMERGEABLE 13 /* KSM may not merge identical pages */
-
-#define MADV_HUGEPAGE 14 /* Worth backing with hugepages */
-#define MADV_NOHUGEPAGE 15 /* Not worth backing with hugepages */
-
-#define MADV_DONTDUMP 16 /* Explicity exclude from the core dump,
- overrides the coredump filter bits */
-#define MADV_DODUMP 17 /* Clear the MADV_NODUMP flag */
-
-/* compatibility flags */
-#define MAP_FILE 0
-
-#endif /* __ASM_GENERIC_MMAN_COMMON_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/mman.h b/ANDROID_3.4.5/include/asm-generic/mman.h
deleted file mode 100644
index 32c8bd6a..00000000
--- a/ANDROID_3.4.5/include/asm-generic/mman.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef __ASM_GENERIC_MMAN_H
-#define __ASM_GENERIC_MMAN_H
-
-#include <asm-generic/mman-common.h>
-
-#define MAP_GROWSDOWN 0x0100 /* stack-like segment */
-#define MAP_DENYWRITE 0x0800 /* ETXTBSY */
-#define MAP_EXECUTABLE 0x1000 /* mark it as an executable */
-#define MAP_LOCKED 0x2000 /* pages are locked */
-#define MAP_NORESERVE 0x4000 /* don't check for reservations */
-#define MAP_POPULATE 0x8000 /* populate (prefault) pagetables */
-#define MAP_NONBLOCK 0x10000 /* do not block on IO */
-#define MAP_STACK 0x20000 /* give out an address that is best suited for process/thread stacks */
-#define MAP_HUGETLB 0x40000 /* create a huge page mapping */
-
-#define MCL_CURRENT 1 /* lock all current mappings */
-#define MCL_FUTURE 2 /* lock all future mappings */
-
-#endif /* __ASM_GENERIC_MMAN_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/mmu.h b/ANDROID_3.4.5/include/asm-generic/mmu.h
deleted file mode 100644
index 4f4aa56d..00000000
--- a/ANDROID_3.4.5/include/asm-generic/mmu.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef __ASM_GENERIC_MMU_H
-#define __ASM_GENERIC_MMU_H
-
-/*
- * This is the mmu.h header for nommu implementations.
- * Architectures with an MMU need something more complex.
- */
-#ifndef __ASSEMBLY__
-typedef struct {
- struct vm_list_struct *vmlist;
- unsigned long end_brk;
-} mm_context_t;
-#endif
-
-#endif /* __ASM_GENERIC_MMU_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/mmu_context.h b/ANDROID_3.4.5/include/asm-generic/mmu_context.h
deleted file mode 100644
index a7eec910..00000000
--- a/ANDROID_3.4.5/include/asm-generic/mmu_context.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef __ASM_GENERIC_MMU_CONTEXT_H
-#define __ASM_GENERIC_MMU_CONTEXT_H
-
-/*
- * Generic hooks for NOMMU architectures, which do not need to do
- * anything special here.
- */
-
-#include <asm-generic/mm_hooks.h>
-
-struct task_struct;
-struct mm_struct;
-
-static inline void enter_lazy_tlb(struct mm_struct *mm,
- struct task_struct *tsk)
-{
-}
-
-static inline int init_new_context(struct task_struct *tsk,
- struct mm_struct *mm)
-{
- return 0;
-}
-
-static inline void destroy_context(struct mm_struct *mm)
-{
-}
-
-static inline void deactivate_mm(struct task_struct *task,
- struct mm_struct *mm)
-{
-}
-
-static inline void switch_mm(struct mm_struct *prev,
- struct mm_struct *next,
- struct task_struct *tsk)
-{
-}
-
-static inline void activate_mm(struct mm_struct *prev_mm,
- struct mm_struct *next_mm)
-{
-}
-
-#endif /* __ASM_GENERIC_MMU_CONTEXT_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/module.h b/ANDROID_3.4.5/include/asm-generic/module.h
deleted file mode 100644
index ed5b44de..00000000
--- a/ANDROID_3.4.5/include/asm-generic/module.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef __ASM_GENERIC_MODULE_H
-#define __ASM_GENERIC_MODULE_H
-
-/*
- * Many architectures just need a simple module
- * loader without arch specific data.
- */
-struct mod_arch_specific
-{
-};
-
-#ifdef CONFIG_64BIT
-#define Elf_Shdr Elf64_Shdr
-#define Elf_Sym Elf64_Sym
-#define Elf_Ehdr Elf64_Ehdr
-#else
-#define Elf_Shdr Elf32_Shdr
-#define Elf_Sym Elf32_Sym
-#define Elf_Ehdr Elf32_Ehdr
-#endif
-
-#endif /* __ASM_GENERIC_MODULE_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/msgbuf.h b/ANDROID_3.4.5/include/asm-generic/msgbuf.h
deleted file mode 100644
index aec850d9..00000000
--- a/ANDROID_3.4.5/include/asm-generic/msgbuf.h
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef __ASM_GENERIC_MSGBUF_H
-#define __ASM_GENERIC_MSGBUF_H
-
-#include <asm/bitsperlong.h>
-/*
- * generic msqid64_ds structure.
- *
- * Note extra padding because this structure is passed back and forth
- * between kernel and user space.
- *
- * msqid64_ds was originally meant to be architecture specific, but
- * everyone just ended up making identical copies without specific
- * optimizations, so we may just as well all use the same one.
- *
- * 64 bit architectures typically define a 64 bit __kernel_time_t,
- * so they do not need the first three padding words.
- * On big-endian systems, the padding is in the wrong place.
- *
- * Pad space is left for:
- * - 64-bit time_t to solve y2038 problem
- * - 2 miscellaneous 32-bit values
- */
-
-struct msqid64_ds {
- struct ipc64_perm msg_perm;
- __kernel_time_t msg_stime; /* last msgsnd time */
-#if __BITS_PER_LONG != 64
- unsigned long __unused1;
-#endif
- __kernel_time_t msg_rtime; /* last msgrcv time */
-#if __BITS_PER_LONG != 64
- unsigned long __unused2;
-#endif
- __kernel_time_t msg_ctime; /* last change time */
-#if __BITS_PER_LONG != 64
- unsigned long __unused3;
-#endif
- unsigned long msg_cbytes; /* current number of bytes on queue */
- unsigned long msg_qnum; /* number of messages in queue */
- unsigned long msg_qbytes; /* max number of bytes on queue */
- __kernel_pid_t msg_lspid; /* pid of last msgsnd */
- __kernel_pid_t msg_lrpid; /* last receive pid */
- unsigned long __unused4;
- unsigned long __unused5;
-};
-
-#endif /* __ASM_GENERIC_MSGBUF_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/mutex-dec.h b/ANDROID_3.4.5/include/asm-generic/mutex-dec.h
deleted file mode 100644
index f104af7c..00000000
--- a/ANDROID_3.4.5/include/asm-generic/mutex-dec.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * include/asm-generic/mutex-dec.h
- *
- * Generic implementation of the mutex fastpath, based on atomic
- * decrement/increment.
- */
-#ifndef _ASM_GENERIC_MUTEX_DEC_H
-#define _ASM_GENERIC_MUTEX_DEC_H
-
-/**
- * __mutex_fastpath_lock - try to take the lock by moving the count
- * from 1 to a 0 value
- * @count: pointer of type atomic_t
- * @fail_fn: function to call if the original value was not 1
- *
- * Change the count from 1 to a value lower than 1, and call <fail_fn> if
- * it wasn't 1 originally. This function MUST leave the value lower than
- * 1 even when the "1" assertion wasn't true.
- */
-static inline void
-__mutex_fastpath_lock(atomic_t *count, void (*fail_fn)(atomic_t *))
-{
- if (unlikely(atomic_dec_return(count) < 0))
- fail_fn(count);
-}
-
-/**
- * __mutex_fastpath_lock_retval - try to take the lock by moving the count
- * from 1 to a 0 value
- * @count: pointer of type atomic_t
- * @fail_fn: function to call if the original value was not 1
- *
- * Change the count from 1 to a value lower than 1, and call <fail_fn> if
- * it wasn't 1 originally. This function returns 0 if the fastpath succeeds,
- * or anything the slow path function returns.
- */
-static inline int
-__mutex_fastpath_lock_retval(atomic_t *count, int (*fail_fn)(atomic_t *))
-{
- if (unlikely(atomic_dec_return(count) < 0))
- return fail_fn(count);
- return 0;
-}
-
-/**
- * __mutex_fastpath_unlock - try to promote the count from 0 to 1
- * @count: pointer of type atomic_t
- * @fail_fn: function to call if the original value was not 0
- *
- * Try to promote the count from 0 to 1. If it wasn't 0, call <fail_fn>.
- * In the failure case, this function is allowed to either set the value to
- * 1, or to set it to a value lower than 1.
- *
- * If the implementation sets it to a value of lower than 1, then the
- * __mutex_slowpath_needs_to_unlock() macro needs to return 1, it needs
- * to return 0 otherwise.
- */
-static inline void
-__mutex_fastpath_unlock(atomic_t *count, void (*fail_fn)(atomic_t *))
-{
- if (unlikely(atomic_inc_return(count) <= 0))
- fail_fn(count);
-}
-
-#define __mutex_slowpath_needs_to_unlock() 1
-
-/**
- * __mutex_fastpath_trylock - try to acquire the mutex, without waiting
- *
- * @count: pointer of type atomic_t
- * @fail_fn: fallback function
- *
- * Change the count from 1 to a value lower than 1, and return 0 (failure)
- * if it wasn't 1 originally, or return 1 (success) otherwise. This function
- * MUST leave the value lower than 1 even when the "1" assertion wasn't true.
- * Additionally, if the value was < 0 originally, this function must not leave
- * it to 0 on failure.
- *
- * If the architecture has no effective trylock variant, it should call the
- * <fail_fn> spinlock-based trylock variant unconditionally.
- */
-static inline int
-__mutex_fastpath_trylock(atomic_t *count, int (*fail_fn)(atomic_t *))
-{
- if (likely(atomic_cmpxchg(count, 1, 0) == 1))
- return 1;
- return 0;
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/asm-generic/mutex-null.h b/ANDROID_3.4.5/include/asm-generic/mutex-null.h
deleted file mode 100644
index e1bbbc72..00000000
--- a/ANDROID_3.4.5/include/asm-generic/mutex-null.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * include/asm-generic/mutex-null.h
- *
- * Generic implementation of the mutex fastpath, based on NOP :-)
- *
- * This is used by the mutex-debugging infrastructure, but it can also
- * be used by architectures that (for whatever reason) want to use the
- * spinlock based slowpath.
- */
-#ifndef _ASM_GENERIC_MUTEX_NULL_H
-#define _ASM_GENERIC_MUTEX_NULL_H
-
-#define __mutex_fastpath_lock(count, fail_fn) fail_fn(count)
-#define __mutex_fastpath_lock_retval(count, fail_fn) fail_fn(count)
-#define __mutex_fastpath_unlock(count, fail_fn) fail_fn(count)
-#define __mutex_fastpath_trylock(count, fail_fn) fail_fn(count)
-#define __mutex_slowpath_needs_to_unlock() 1
-
-#endif
diff --git a/ANDROID_3.4.5/include/asm-generic/mutex-xchg.h b/ANDROID_3.4.5/include/asm-generic/mutex-xchg.h
deleted file mode 100644
index c04e0db8..00000000
--- a/ANDROID_3.4.5/include/asm-generic/mutex-xchg.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * include/asm-generic/mutex-xchg.h
- *
- * Generic implementation of the mutex fastpath, based on xchg().
- *
- * NOTE: An xchg based implementation might be less optimal than an atomic
- * decrement/increment based implementation. If your architecture
- * has a reasonable atomic dec/inc then you should probably use
- * asm-generic/mutex-dec.h instead, or you could open-code an
- * optimized version in asm/mutex.h.
- */
-#ifndef _ASM_GENERIC_MUTEX_XCHG_H
-#define _ASM_GENERIC_MUTEX_XCHG_H
-
-/**
- * __mutex_fastpath_lock - try to take the lock by moving the count
- * from 1 to a 0 value
- * @count: pointer of type atomic_t
- * @fail_fn: function to call if the original value was not 1
- *
- * Change the count from 1 to a value lower than 1, and call <fail_fn> if it
- * wasn't 1 originally. This function MUST leave the value lower than 1
- * even when the "1" assertion wasn't true.
- */
-static inline void
-__mutex_fastpath_lock(atomic_t *count, void (*fail_fn)(atomic_t *))
-{
- if (unlikely(atomic_xchg(count, 0) != 1))
- /*
- * We failed to acquire the lock, so mark it contended
- * to ensure that any waiting tasks are woken up by the
- * unlock slow path.
- */
- if (likely(atomic_xchg(count, -1) != 1))
- fail_fn(count);
-}
-
-/**
- * __mutex_fastpath_lock_retval - try to take the lock by moving the count
- * from 1 to a 0 value
- * @count: pointer of type atomic_t
- * @fail_fn: function to call if the original value was not 1
- *
- * Change the count from 1 to a value lower than 1, and call <fail_fn> if it
- * wasn't 1 originally. This function returns 0 if the fastpath succeeds,
- * or anything the slow path function returns
- */
-static inline int
-__mutex_fastpath_lock_retval(atomic_t *count, int (*fail_fn)(atomic_t *))
-{
- if (unlikely(atomic_xchg(count, 0) != 1))
- if (likely(atomic_xchg(count, -1) != 1))
- return fail_fn(count);
- return 0;
-}
-
-/**
- * __mutex_fastpath_unlock - try to promote the mutex from 0 to 1
- * @count: pointer of type atomic_t
- * @fail_fn: function to call if the original value was not 0
- *
- * try to promote the mutex from 0 to 1. if it wasn't 0, call <function>
- * In the failure case, this function is allowed to either set the value to
- * 1, or to set it to a value lower than one.
- * If the implementation sets it to a value of lower than one, the
- * __mutex_slowpath_needs_to_unlock() macro needs to return 1, it needs
- * to return 0 otherwise.
- */
-static inline void
-__mutex_fastpath_unlock(atomic_t *count, void (*fail_fn)(atomic_t *))
-{
- if (unlikely(atomic_xchg(count, 1) != 0))
- fail_fn(count);
-}
-
-#define __mutex_slowpath_needs_to_unlock() 0
-
-/**
- * __mutex_fastpath_trylock - try to acquire the mutex, without waiting
- *
- * @count: pointer of type atomic_t
- * @fail_fn: spinlock based trylock implementation
- *
- * Change the count from 1 to a value lower than 1, and return 0 (failure)
- * if it wasn't 1 originally, or return 1 (success) otherwise. This function
- * MUST leave the value lower than 1 even when the "1" assertion wasn't true.
- * Additionally, if the value was < 0 originally, this function must not leave
- * it to 0 on failure.
- *
- * If the architecture has no effective trylock variant, it should call the
- * <fail_fn> spinlock-based trylock variant unconditionally.
- */
-static inline int
-__mutex_fastpath_trylock(atomic_t *count, int (*fail_fn)(atomic_t *))
-{
- int prev = atomic_xchg(count, 0);
-
- if (unlikely(prev < 0)) {
- /*
- * The lock was marked contended so we must restore that
- * state. If while doing so we get back a prev value of 1
- * then we just own it.
- *
- * [ In the rare case of the mutex going to 1, to 0, to -1
- * and then back to 0 in this few-instructions window,
- * this has the potential to trigger the slowpath for the
- * owner's unlock path needlessly, but that's not a problem
- * in practice. ]
- */
- prev = atomic_xchg(count, prev);
- if (prev < 0)
- prev = 0;
- }
-
- return prev;
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/asm-generic/mutex.h b/ANDROID_3.4.5/include/asm-generic/mutex.h
deleted file mode 100644
index fe91ab50..00000000
--- a/ANDROID_3.4.5/include/asm-generic/mutex.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef __ASM_GENERIC_MUTEX_H
-#define __ASM_GENERIC_MUTEX_H
-/*
- * Pull in the generic implementation for the mutex fastpath,
- * which is a reasonable default on many architectures.
- */
-
-#include <asm-generic/mutex-dec.h>
-#endif /* __ASM_GENERIC_MUTEX_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/page.h b/ANDROID_3.4.5/include/asm-generic/page.h
deleted file mode 100644
index 37d1fe28..00000000
--- a/ANDROID_3.4.5/include/asm-generic/page.h
+++ /dev/null
@@ -1,103 +0,0 @@
-#ifndef __ASM_GENERIC_PAGE_H
-#define __ASM_GENERIC_PAGE_H
-/*
- * Generic page.h implementation, for NOMMU architectures.
- * This provides the dummy definitions for the memory management.
- */
-
-#ifdef CONFIG_MMU
-#error need to prove a real asm/page.h
-#endif
-
-
-/* PAGE_SHIFT determines the page size */
-
-#define PAGE_SHIFT 12
-#ifdef __ASSEMBLY__
-#define PAGE_SIZE (1 << PAGE_SHIFT)
-#else
-#define PAGE_SIZE (1UL << PAGE_SHIFT)
-#endif
-#define PAGE_MASK (~(PAGE_SIZE-1))
-
-#include <asm/setup.h>
-
-#ifndef __ASSEMBLY__
-
-#define get_user_page(vaddr) __get_free_page(GFP_KERNEL)
-#define free_user_page(page, addr) free_page(addr)
-
-#define clear_page(page) memset((page), 0, PAGE_SIZE)
-#define copy_page(to,from) memcpy((to), (from), PAGE_SIZE)
-
-#define clear_user_page(page, vaddr, pg) clear_page(page)
-#define copy_user_page(to, from, vaddr, pg) copy_page(to, from)
-
-/*
- * These are used to make use of C type-checking..
- */
-typedef struct {
- unsigned long pte;
-} pte_t;
-typedef struct {
- unsigned long pmd[16];
-} pmd_t;
-typedef struct {
- unsigned long pgd;
-} pgd_t;
-typedef struct {
- unsigned long pgprot;
-} pgprot_t;
-typedef struct page *pgtable_t;
-
-#define pte_val(x) ((x).pte)
-#define pmd_val(x) ((&x)->pmd[0])
-#define pgd_val(x) ((x).pgd)
-#define pgprot_val(x) ((x).pgprot)
-
-#define __pte(x) ((pte_t) { (x) } )
-#define __pmd(x) ((pmd_t) { (x) } )
-#define __pgd(x) ((pgd_t) { (x) } )
-#define __pgprot(x) ((pgprot_t) { (x) } )
-
-extern unsigned long memory_start;
-extern unsigned long memory_end;
-
-#endif /* !__ASSEMBLY__ */
-
-#ifdef CONFIG_KERNEL_RAM_BASE_ADDRESS
-#define PAGE_OFFSET (CONFIG_KERNEL_RAM_BASE_ADDRESS)
-#else
-#define PAGE_OFFSET (0)
-#endif
-
-#ifndef ARCH_PFN_OFFSET
-#define ARCH_PFN_OFFSET (PAGE_OFFSET >> PAGE_SHIFT)
-#endif
-
-#ifndef __ASSEMBLY__
-
-#define __va(x) ((void *)((unsigned long) (x)))
-#define __pa(x) ((unsigned long) (x))
-
-#define virt_to_pfn(kaddr) (__pa(kaddr) >> PAGE_SHIFT)
-#define pfn_to_virt(pfn) __va((pfn) << PAGE_SHIFT)
-
-#define virt_to_page(addr) pfn_to_page(virt_to_pfn(addr))
-#define page_to_virt(page) pfn_to_virt(page_to_pfn(page))
-
-#ifndef page_to_phys
-#define page_to_phys(page) ((dma_addr_t)page_to_pfn(page) << PAGE_SHIFT)
-#endif
-
-#define pfn_valid(pfn) ((pfn) >= ARCH_PFN_OFFSET && ((pfn) - ARCH_PFN_OFFSET) < max_mapnr)
-
-#define virt_addr_valid(kaddr) (((void *)(kaddr) >= (void *)PAGE_OFFSET) && \
- ((void *)(kaddr) < (void *)memory_end))
-
-#endif /* __ASSEMBLY__ */
-
-#include <asm-generic/memory_model.h>
-#include <asm-generic/getorder.h>
-
-#endif /* __ASM_GENERIC_PAGE_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/param.h b/ANDROID_3.4.5/include/asm-generic/param.h
deleted file mode 100644
index 835632a3..00000000
--- a/ANDROID_3.4.5/include/asm-generic/param.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef __ASM_GENERIC_PARAM_H
-#define __ASM_GENERIC_PARAM_H
-
-#ifndef HZ
-#define HZ 100
-#endif
-
-#ifndef EXEC_PAGESIZE
-#define EXEC_PAGESIZE 4096
-#endif
-
-#ifndef NOGROUP
-#define NOGROUP (-1)
-#endif
-
-#define MAXHOSTNAMELEN 64 /* max length of hostname */
-
-#ifdef __KERNEL__
-# undef HZ
-# define HZ CONFIG_HZ /* Internal kernel timer frequency */
-# define USER_HZ 100 /* some user interfaces are */
-# define CLOCKS_PER_SEC (USER_HZ) /* in "ticks" like times() */
-#endif
-
-#endif /* __ASM_GENERIC_PARAM_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/parport.h b/ANDROID_3.4.5/include/asm-generic/parport.h
deleted file mode 100644
index 40528cb9..00000000
--- a/ANDROID_3.4.5/include/asm-generic/parport.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef __ASM_GENERIC_PARPORT_H
-#define __ASM_GENERIC_PARPORT_H
-
-/*
- * An ISA bus may have i8255 parallel ports at well-known
- * locations in the I/O space, which are scanned by
- * parport_pc_find_isa_ports.
- *
- * Without ISA support, the driver will only attach
- * to devices on the PCI bus.
- */
-
-static int __devinit parport_pc_find_isa_ports(int autoirq, int autodma);
-static int __devinit parport_pc_find_nonpci_ports(int autoirq, int autodma)
-{
-#ifdef CONFIG_ISA
- return parport_pc_find_isa_ports(autoirq, autodma);
-#else
- return 0;
-#endif
-}
-
-#endif /* __ASM_GENERIC_PARPORT_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/pci-bridge.h b/ANDROID_3.4.5/include/asm-generic/pci-bridge.h
deleted file mode 100644
index a5b5d5a8..00000000
--- a/ANDROID_3.4.5/include/asm-generic/pci-bridge.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * 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 _ASM_GENERIC_PCI_BRIDGE_H
-#define _ASM_GENERIC_PCI_BRIDGE_H
-
-#ifdef __KERNEL__
-
-enum {
- /* Force re-assigning all resources (ignore firmware
- * setup completely)
- */
- PCI_REASSIGN_ALL_RSRC = 0x00000001,
-
- /* Re-assign all bus numbers */
- PCI_REASSIGN_ALL_BUS = 0x00000002,
-
- /* Do not try to assign, just use existing setup */
- PCI_PROBE_ONLY = 0x00000004,
-
- /* Don't bother with ISA alignment unless the bridge has
- * ISA forwarding enabled
- */
- PCI_CAN_SKIP_ISA_ALIGN = 0x00000008,
-
- /* Enable domain numbers in /proc */
- PCI_ENABLE_PROC_DOMAINS = 0x00000010,
- /* ... except for domain 0 */
- PCI_COMPAT_DOMAIN_0 = 0x00000020,
-};
-
-#ifdef CONFIG_PCI
-extern unsigned int pci_flags;
-
-static inline void pci_set_flags(int flags)
-{
- pci_flags = flags;
-}
-
-static inline void pci_add_flags(int flags)
-{
- pci_flags |= flags;
-}
-
-static inline void pci_clear_flags(int flags)
-{
- pci_flags &= ~flags;
-}
-
-static inline int pci_has_flag(int flag)
-{
- return pci_flags & flag;
-}
-#else
-static inline void pci_set_flags(int flags) { }
-static inline void pci_add_flags(int flags) { }
-static inline void pci_clear_flags(int flags) { }
-static inline int pci_has_flag(int flag)
-{
- return 0;
-}
-#endif /* CONFIG_PCI */
-
-#endif /* __KERNEL__ */
-#endif /* _ASM_GENERIC_PCI_BRIDGE_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/pci-dma-compat.h b/ANDROID_3.4.5/include/asm-generic/pci-dma-compat.h
deleted file mode 100644
index 1437b7da..00000000
--- a/ANDROID_3.4.5/include/asm-generic/pci-dma-compat.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/* include this file if the platform implements the dma_ DMA Mapping API
- * and wants to provide the pci_ DMA Mapping API in terms of it */
-
-#ifndef _ASM_GENERIC_PCI_DMA_COMPAT_H
-#define _ASM_GENERIC_PCI_DMA_COMPAT_H
-
-#include <linux/dma-mapping.h>
-
-static inline int
-pci_dma_supported(struct pci_dev *hwdev, u64 mask)
-{
- return dma_supported(hwdev == NULL ? NULL : &hwdev->dev, mask);
-}
-
-static inline void *
-pci_alloc_consistent(struct pci_dev *hwdev, size_t size,
- dma_addr_t *dma_handle)
-{
- return dma_alloc_coherent(hwdev == NULL ? NULL : &hwdev->dev, size, dma_handle, GFP_ATOMIC);
-}
-
-static inline void
-pci_free_consistent(struct pci_dev *hwdev, size_t size,
- void *vaddr, dma_addr_t dma_handle)
-{
- dma_free_coherent(hwdev == NULL ? NULL : &hwdev->dev, size, vaddr, dma_handle);
-}
-
-static inline dma_addr_t
-pci_map_single(struct pci_dev *hwdev, void *ptr, size_t size, int direction)
-{
- return dma_map_single(hwdev == NULL ? NULL : &hwdev->dev, ptr, size, (enum dma_data_direction)direction);
-}
-
-static inline void
-pci_unmap_single(struct pci_dev *hwdev, dma_addr_t dma_addr,
- size_t size, int direction)
-{
- dma_unmap_single(hwdev == NULL ? NULL : &hwdev->dev, dma_addr, size, (enum dma_data_direction)direction);
-}
-
-static inline dma_addr_t
-pci_map_page(struct pci_dev *hwdev, struct page *page,
- unsigned long offset, size_t size, int direction)
-{
- return dma_map_page(hwdev == NULL ? NULL : &hwdev->dev, page, offset, size, (enum dma_data_direction)direction);
-}
-
-static inline void
-pci_unmap_page(struct pci_dev *hwdev, dma_addr_t dma_address,
- size_t size, int direction)
-{
- dma_unmap_page(hwdev == NULL ? NULL : &hwdev->dev, dma_address, size, (enum dma_data_direction)direction);
-}
-
-static inline int
-pci_map_sg(struct pci_dev *hwdev, struct scatterlist *sg,
- int nents, int direction)
-{
- return dma_map_sg(hwdev == NULL ? NULL : &hwdev->dev, sg, nents, (enum dma_data_direction)direction);
-}
-
-static inline void
-pci_unmap_sg(struct pci_dev *hwdev, struct scatterlist *sg,
- int nents, int direction)
-{
- dma_unmap_sg(hwdev == NULL ? NULL : &hwdev->dev, sg, nents, (enum dma_data_direction)direction);
-}
-
-static inline void
-pci_dma_sync_single_for_cpu(struct pci_dev *hwdev, dma_addr_t dma_handle,
- size_t size, int direction)
-{
- dma_sync_single_for_cpu(hwdev == NULL ? NULL : &hwdev->dev, dma_handle, size, (enum dma_data_direction)direction);
-}
-
-static inline void
-pci_dma_sync_single_for_device(struct pci_dev *hwdev, dma_addr_t dma_handle,
- size_t size, int direction)
-{
- dma_sync_single_for_device(hwdev == NULL ? NULL : &hwdev->dev, dma_handle, size, (enum dma_data_direction)direction);
-}
-
-static inline void
-pci_dma_sync_sg_for_cpu(struct pci_dev *hwdev, struct scatterlist *sg,
- int nelems, int direction)
-{
- dma_sync_sg_for_cpu(hwdev == NULL ? NULL : &hwdev->dev, sg, nelems, (enum dma_data_direction)direction);
-}
-
-static inline void
-pci_dma_sync_sg_for_device(struct pci_dev *hwdev, struct scatterlist *sg,
- int nelems, int direction)
-{
- dma_sync_sg_for_device(hwdev == NULL ? NULL : &hwdev->dev, sg, nelems, (enum dma_data_direction)direction);
-}
-
-static inline int
-pci_dma_mapping_error(struct pci_dev *pdev, dma_addr_t dma_addr)
-{
- return dma_mapping_error(&pdev->dev, dma_addr);
-}
-
-#ifdef CONFIG_PCI
-static inline int pci_set_dma_mask(struct pci_dev *dev, u64 mask)
-{
- return dma_set_mask(&dev->dev, mask);
-}
-
-static inline int pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask)
-{
- return dma_set_coherent_mask(&dev->dev, mask);
-}
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/asm-generic/pci.h b/ANDROID_3.4.5/include/asm-generic/pci.h
deleted file mode 100644
index e80a0495..00000000
--- a/ANDROID_3.4.5/include/asm-generic/pci.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * linux/include/asm-generic/pci.h
- *
- * Copyright (C) 2003 Russell King
- */
-#ifndef _ASM_GENERIC_PCI_H
-#define _ASM_GENERIC_PCI_H
-
-static inline struct resource *
-pcibios_select_root(struct pci_dev *pdev, struct resource *res)
-{
- struct resource *root = NULL;
-
- if (res->flags & IORESOURCE_IO)
- root = &ioport_resource;
- if (res->flags & IORESOURCE_MEM)
- root = &iomem_resource;
-
- return root;
-}
-
-#ifndef HAVE_ARCH_PCI_GET_LEGACY_IDE_IRQ
-static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel)
-{
- return channel ? 15 : 14;
-}
-#endif /* HAVE_ARCH_PCI_GET_LEGACY_IDE_IRQ */
-
-/*
- * By default, assume that no iommu is in use and that the PCI
- * space is mapped to address physical 0.
- */
-#ifndef PCI_DMA_BUS_IS_PHYS
-#define PCI_DMA_BUS_IS_PHYS (1)
-#endif
-
-#endif /* _ASM_GENERIC_PCI_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/pci_iomap.h b/ANDROID_3.4.5/include/asm-generic/pci_iomap.h
deleted file mode 100644
index ce373498..00000000
--- a/ANDROID_3.4.5/include/asm-generic/pci_iomap.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Generic I/O port emulation, based on MN10300 code
- *
- * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
- * Written by David Howells (dhowells@redhat.com)
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public Licence
- * as published by the Free Software Foundation; either version
- * 2 of the Licence, or (at your option) any later version.
- */
-#ifndef __ASM_GENERIC_PCI_IOMAP_H
-#define __ASM_GENERIC_PCI_IOMAP_H
-
-struct pci_dev;
-#ifdef CONFIG_PCI
-/* Create a virtual mapping cookie for a PCI BAR (memory or IO) */
-extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max);
-/* Create a virtual mapping cookie for a port on a given PCI device.
- * Do not call this directly, it exists to make it easier for architectures
- * to override */
-#ifdef CONFIG_NO_GENERIC_PCI_IOPORT_MAP
-extern void __iomem *__pci_ioport_map(struct pci_dev *dev, unsigned long port,
- unsigned int nr);
-#else
-#define __pci_ioport_map(dev, port, nr) ioport_map((port), (nr))
-#endif
-
-#elif defined(CONFIG_GENERIC_PCI_IOMAP)
-static inline void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max)
-{
- return NULL;
-}
-#endif
-
-#endif /* __ASM_GENERIC_IO_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/percpu.h b/ANDROID_3.4.5/include/asm-generic/percpu.h
deleted file mode 100644
index d17784ea..00000000
--- a/ANDROID_3.4.5/include/asm-generic/percpu.h
+++ /dev/null
@@ -1,125 +0,0 @@
-#ifndef _ASM_GENERIC_PERCPU_H_
-#define _ASM_GENERIC_PERCPU_H_
-
-#include <linux/compiler.h>
-#include <linux/threads.h>
-#include <linux/percpu-defs.h>
-
-#ifdef CONFIG_SMP
-
-/*
- * per_cpu_offset() is the offset that has to be added to a
- * percpu variable to get to the instance for a certain processor.
- *
- * Most arches use the __per_cpu_offset array for those offsets but
- * some arches have their own ways of determining the offset (x86_64, s390).
- */
-#ifndef __per_cpu_offset
-extern unsigned long __per_cpu_offset[NR_CPUS];
-
-#define per_cpu_offset(x) (__per_cpu_offset[x])
-#endif
-
-/*
- * Determine the offset for the currently active processor.
- * An arch may define __my_cpu_offset to provide a more effective
- * means of obtaining the offset to the per cpu variables of the
- * current processor.
- */
-#ifndef __my_cpu_offset
-#define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
-#endif
-#ifdef CONFIG_DEBUG_PREEMPT
-#define my_cpu_offset per_cpu_offset(smp_processor_id())
-#else
-#define my_cpu_offset __my_cpu_offset
-#endif
-
-/*
- * Add a offset to a pointer but keep the pointer as is.
- *
- * Only S390 provides its own means of moving the pointer.
- */
-#ifndef SHIFT_PERCPU_PTR
-/* Weird cast keeps both GCC and sparse happy. */
-#define SHIFT_PERCPU_PTR(__p, __offset) ({ \
- __verify_pcpu_ptr((__p)); \
- RELOC_HIDE((typeof(*(__p)) __kernel __force *)(__p), (__offset)); \
-})
-#endif
-
-/*
- * A percpu variable may point to a discarded regions. The following are
- * established ways to produce a usable pointer from the percpu variable
- * offset.
- */
-#define per_cpu(var, cpu) \
- (*SHIFT_PERCPU_PTR(&(var), per_cpu_offset(cpu)))
-
-#ifndef __this_cpu_ptr
-#define __this_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
-#endif
-#ifdef CONFIG_DEBUG_PREEMPT
-#define this_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, my_cpu_offset)
-#else
-#define this_cpu_ptr(ptr) __this_cpu_ptr(ptr)
-#endif
-
-#define __get_cpu_var(var) (*this_cpu_ptr(&(var)))
-#define __raw_get_cpu_var(var) (*__this_cpu_ptr(&(var)))
-
-#ifdef CONFIG_HAVE_SETUP_PER_CPU_AREA
-extern void setup_per_cpu_areas(void);
-#endif
-
-#else /* ! SMP */
-
-#define VERIFY_PERCPU_PTR(__p) ({ \
- __verify_pcpu_ptr((__p)); \
- (typeof(*(__p)) __kernel __force *)(__p); \
-})
-
-#define per_cpu(var, cpu) (*((void)(cpu), VERIFY_PERCPU_PTR(&(var))))
-#define __get_cpu_var(var) (*VERIFY_PERCPU_PTR(&(var)))
-#define __raw_get_cpu_var(var) (*VERIFY_PERCPU_PTR(&(var)))
-#define this_cpu_ptr(ptr) per_cpu_ptr(ptr, 0)
-#define __this_cpu_ptr(ptr) this_cpu_ptr(ptr)
-
-#endif /* SMP */
-
-#ifndef PER_CPU_BASE_SECTION
-#ifdef CONFIG_SMP
-#define PER_CPU_BASE_SECTION ".data..percpu"
-#else
-#define PER_CPU_BASE_SECTION ".data"
-#endif
-#endif
-
-#ifdef CONFIG_SMP
-
-#ifdef MODULE
-#define PER_CPU_SHARED_ALIGNED_SECTION ""
-#define PER_CPU_ALIGNED_SECTION ""
-#else
-#define PER_CPU_SHARED_ALIGNED_SECTION "..shared_aligned"
-#define PER_CPU_ALIGNED_SECTION "..shared_aligned"
-#endif
-#define PER_CPU_FIRST_SECTION "..first"
-
-#else
-
-#define PER_CPU_SHARED_ALIGNED_SECTION ""
-#define PER_CPU_ALIGNED_SECTION "..shared_aligned"
-#define PER_CPU_FIRST_SECTION ""
-
-#endif
-
-#ifndef PER_CPU_ATTRIBUTES
-#define PER_CPU_ATTRIBUTES
-#endif
-
-#ifndef PER_CPU_DEF_ATTRIBUTES
-#define PER_CPU_DEF_ATTRIBUTES
-#endif
-
-#endif /* _ASM_GENERIC_PERCPU_H_ */
diff --git a/ANDROID_3.4.5/include/asm-generic/pgalloc.h b/ANDROID_3.4.5/include/asm-generic/pgalloc.h
deleted file mode 100644
index 9e429d08..00000000
--- a/ANDROID_3.4.5/include/asm-generic/pgalloc.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef __ASM_GENERIC_PGALLOC_H
-#define __ASM_GENERIC_PGALLOC_H
-/*
- * an empty file is enough for a nommu architecture
- */
-#ifdef CONFIG_MMU
-#error need to implement an architecture specific asm/pgalloc.h
-#endif
-
-#define check_pgt_cache() do { } while (0)
-
-#endif /* __ASM_GENERIC_PGALLOC_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/pgtable-nopmd.h b/ANDROID_3.4.5/include/asm-generic/pgtable-nopmd.h
deleted file mode 100644
index 725612b7..00000000
--- a/ANDROID_3.4.5/include/asm-generic/pgtable-nopmd.h
+++ /dev/null
@@ -1,69 +0,0 @@
-#ifndef _PGTABLE_NOPMD_H
-#define _PGTABLE_NOPMD_H
-
-#ifndef __ASSEMBLY__
-
-#include <asm-generic/pgtable-nopud.h>
-
-struct mm_struct;
-
-#define __PAGETABLE_PMD_FOLDED
-
-/*
- * Having the pmd type consist of a pud gets the size right, and allows
- * us to conceptually access the pud entry that this pmd is folded into
- * without casting.
- */
-typedef struct { pud_t pud; } pmd_t;
-
-#define PMD_SHIFT PUD_SHIFT
-#define PTRS_PER_PMD 1
-#define PMD_SIZE (1UL << PMD_SHIFT)
-#define PMD_MASK (~(PMD_SIZE-1))
-
-/*
- * The "pud_xxx()" functions here are trivial for a folded two-level
- * setup: the pmd is never bad, and a pmd always exists (as it's folded
- * into the pud entry)
- */
-static inline int pud_none(pud_t pud) { return 0; }
-static inline int pud_bad(pud_t pud) { return 0; }
-static inline int pud_present(pud_t pud) { return 1; }
-static inline void pud_clear(pud_t *pud) { }
-#define pmd_ERROR(pmd) (pud_ERROR((pmd).pud))
-
-#define pud_populate(mm, pmd, pte) do { } while (0)
-
-/*
- * (pmds are folded into puds so this doesn't get actually called,
- * but the define is needed for a generic inline function.)
- */
-#define set_pud(pudptr, pudval) set_pmd((pmd_t *)(pudptr), (pmd_t) { pudval })
-
-static inline pmd_t * pmd_offset(pud_t * pud, unsigned long address)
-{
- return (pmd_t *)pud;
-}
-
-#define pmd_val(x) (pud_val((x).pud))
-#define __pmd(x) ((pmd_t) { __pud(x) } )
-
-#define pud_page(pud) (pmd_page((pmd_t){ pud }))
-#define pud_page_vaddr(pud) (pmd_page_vaddr((pmd_t){ pud }))
-
-/*
- * allocating and freeing a pmd is trivial: the 1-entry pmd is
- * inside the pud, so has no extra memory associated with it.
- */
-#define pmd_alloc_one(mm, address) NULL
-static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd)
-{
-}
-#define __pmd_free_tlb(tlb, x, a) do { } while (0)
-
-#undef pmd_addr_end
-#define pmd_addr_end(addr, end) (end)
-
-#endif /* __ASSEMBLY__ */
-
-#endif /* _PGTABLE_NOPMD_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/pgtable-nopud.h b/ANDROID_3.4.5/include/asm-generic/pgtable-nopud.h
deleted file mode 100644
index 810431d8..00000000
--- a/ANDROID_3.4.5/include/asm-generic/pgtable-nopud.h
+++ /dev/null
@@ -1,61 +0,0 @@
-#ifndef _PGTABLE_NOPUD_H
-#define _PGTABLE_NOPUD_H
-
-#ifndef __ASSEMBLY__
-
-#define __PAGETABLE_PUD_FOLDED
-
-/*
- * Having the pud type consist of a pgd gets the size right, and allows
- * us to conceptually access the pgd entry that this pud is folded into
- * without casting.
- */
-typedef struct { pgd_t pgd; } pud_t;
-
-#define PUD_SHIFT PGDIR_SHIFT
-#define PTRS_PER_PUD 1
-#define PUD_SIZE (1UL << PUD_SHIFT)
-#define PUD_MASK (~(PUD_SIZE-1))
-
-/*
- * The "pgd_xxx()" functions here are trivial for a folded two-level
- * setup: the pud is never bad, and a pud always exists (as it's folded
- * into the pgd entry)
- */
-static inline int pgd_none(pgd_t pgd) { return 0; }
-static inline int pgd_bad(pgd_t pgd) { return 0; }
-static inline int pgd_present(pgd_t pgd) { return 1; }
-static inline void pgd_clear(pgd_t *pgd) { }
-#define pud_ERROR(pud) (pgd_ERROR((pud).pgd))
-
-#define pgd_populate(mm, pgd, pud) do { } while (0)
-/*
- * (puds are folded into pgds so this doesn't get actually called,
- * but the define is needed for a generic inline function.)
- */
-#define set_pgd(pgdptr, pgdval) set_pud((pud_t *)(pgdptr), (pud_t) { pgdval })
-
-static inline pud_t * pud_offset(pgd_t * pgd, unsigned long address)
-{
- return (pud_t *)pgd;
-}
-
-#define pud_val(x) (pgd_val((x).pgd))
-#define __pud(x) ((pud_t) { __pgd(x) } )
-
-#define pgd_page(pgd) (pud_page((pud_t){ pgd }))
-#define pgd_page_vaddr(pgd) (pud_page_vaddr((pud_t){ pgd }))
-
-/*
- * allocating and freeing a pud is trivial: the 1-entry pud is
- * inside the pgd, so has no extra memory associated with it.
- */
-#define pud_alloc_one(mm, address) NULL
-#define pud_free(mm, x) do { } while (0)
-#define __pud_free_tlb(tlb, x, a) do { } while (0)
-
-#undef pud_addr_end
-#define pud_addr_end(addr, end) (end)
-
-#endif /* __ASSEMBLY__ */
-#endif /* _PGTABLE_NOPUD_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/pgtable.h b/ANDROID_3.4.5/include/asm-generic/pgtable.h
deleted file mode 100644
index c7ec2cdc..00000000
--- a/ANDROID_3.4.5/include/asm-generic/pgtable.h
+++ /dev/null
@@ -1,538 +0,0 @@
-#ifndef _ASM_GENERIC_PGTABLE_H
-#define _ASM_GENERIC_PGTABLE_H
-
-#ifndef __ASSEMBLY__
-#ifdef CONFIG_MMU
-
-#include <linux/mm_types.h>
-#include <linux/bug.h>
-
-#ifndef __HAVE_ARCH_PTEP_SET_ACCESS_FLAGS
-extern int ptep_set_access_flags(struct vm_area_struct *vma,
- unsigned long address, pte_t *ptep,
- pte_t entry, int dirty);
-#endif
-
-#ifndef __HAVE_ARCH_PMDP_SET_ACCESS_FLAGS
-extern int pmdp_set_access_flags(struct vm_area_struct *vma,
- unsigned long address, pmd_t *pmdp,
- pmd_t entry, int dirty);
-#endif
-
-#ifndef __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG
-static inline int ptep_test_and_clear_young(struct vm_area_struct *vma,
- unsigned long address,
- pte_t *ptep)
-{
- pte_t pte = *ptep;
- int r = 1;
- if (!pte_young(pte))
- r = 0;
- else
- set_pte_at(vma->vm_mm, address, ptep, pte_mkold(pte));
- return r;
-}
-#endif
-
-#ifndef __HAVE_ARCH_PMDP_TEST_AND_CLEAR_YOUNG
-#ifdef CONFIG_TRANSPARENT_HUGEPAGE
-static inline int pmdp_test_and_clear_young(struct vm_area_struct *vma,
- unsigned long address,
- pmd_t *pmdp)
-{
- pmd_t pmd = *pmdp;
- int r = 1;
- if (!pmd_young(pmd))
- r = 0;
- else
- set_pmd_at(vma->vm_mm, address, pmdp, pmd_mkold(pmd));
- return r;
-}
-#else /* CONFIG_TRANSPARENT_HUGEPAGE */
-static inline int pmdp_test_and_clear_young(struct vm_area_struct *vma,
- unsigned long address,
- pmd_t *pmdp)
-{
- BUG();
- return 0;
-}
-#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
-#endif
-
-#ifndef __HAVE_ARCH_PTEP_CLEAR_YOUNG_FLUSH
-int ptep_clear_flush_young(struct vm_area_struct *vma,
- unsigned long address, pte_t *ptep);
-#endif
-
-#ifndef __HAVE_ARCH_PMDP_CLEAR_YOUNG_FLUSH
-int pmdp_clear_flush_young(struct vm_area_struct *vma,
- unsigned long address, pmd_t *pmdp);
-#endif
-
-#ifndef __HAVE_ARCH_PTEP_GET_AND_CLEAR
-static inline pte_t ptep_get_and_clear(struct mm_struct *mm,
- unsigned long address,
- pte_t *ptep)
-{
- pte_t pte = *ptep;
- pte_clear(mm, address, ptep);
- return pte;
-}
-#endif
-
-#ifndef __HAVE_ARCH_PMDP_GET_AND_CLEAR
-#ifdef CONFIG_TRANSPARENT_HUGEPAGE
-static inline pmd_t pmdp_get_and_clear(struct mm_struct *mm,
- unsigned long address,
- pmd_t *pmdp)
-{
- pmd_t pmd = *pmdp;
- pmd_clear(mm, address, pmdp);
- return pmd;
-}
-#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
-#endif
-
-#ifndef __HAVE_ARCH_PTEP_GET_AND_CLEAR_FULL
-static inline pte_t ptep_get_and_clear_full(struct mm_struct *mm,
- unsigned long address, pte_t *ptep,
- int full)
-{
- pte_t pte;
- pte = ptep_get_and_clear(mm, address, ptep);
- return pte;
-}
-#endif
-
-/*
- * Some architectures may be able to avoid expensive synchronization
- * primitives when modifications are made to PTE's which are already
- * not present, or in the process of an address space destruction.
- */
-#ifndef __HAVE_ARCH_PTE_CLEAR_NOT_PRESENT_FULL
-static inline void pte_clear_not_present_full(struct mm_struct *mm,
- unsigned long address,
- pte_t *ptep,
- int full)
-{
- pte_clear(mm, address, ptep);
-}
-#endif
-
-#ifndef __HAVE_ARCH_PTEP_CLEAR_FLUSH
-extern pte_t ptep_clear_flush(struct vm_area_struct *vma,
- unsigned long address,
- pte_t *ptep);
-#endif
-
-#ifndef __HAVE_ARCH_PMDP_CLEAR_FLUSH
-extern pmd_t pmdp_clear_flush(struct vm_area_struct *vma,
- unsigned long address,
- pmd_t *pmdp);
-#endif
-
-#ifndef __HAVE_ARCH_PTEP_SET_WRPROTECT
-struct mm_struct;
-static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long address, pte_t *ptep)
-{
- pte_t old_pte = *ptep;
- set_pte_at(mm, address, ptep, pte_wrprotect(old_pte));
-}
-#endif
-
-#ifndef __HAVE_ARCH_PMDP_SET_WRPROTECT
-#ifdef CONFIG_TRANSPARENT_HUGEPAGE
-static inline void pmdp_set_wrprotect(struct mm_struct *mm,
- unsigned long address, pmd_t *pmdp)
-{
- pmd_t old_pmd = *pmdp;
- set_pmd_at(mm, address, pmdp, pmd_wrprotect(old_pmd));
-}
-#else /* CONFIG_TRANSPARENT_HUGEPAGE */
-static inline void pmdp_set_wrprotect(struct mm_struct *mm,
- unsigned long address, pmd_t *pmdp)
-{
- BUG();
-}
-#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
-#endif
-
-#ifndef __HAVE_ARCH_PMDP_SPLITTING_FLUSH
-extern pmd_t pmdp_splitting_flush(struct vm_area_struct *vma,
- unsigned long address,
- pmd_t *pmdp);
-#endif
-
-#ifndef __HAVE_ARCH_PTE_SAME
-static inline int pte_same(pte_t pte_a, pte_t pte_b)
-{
- return pte_val(pte_a) == pte_val(pte_b);
-}
-#endif
-
-#ifndef __HAVE_ARCH_PMD_SAME
-#ifdef CONFIG_TRANSPARENT_HUGEPAGE
-static inline int pmd_same(pmd_t pmd_a, pmd_t pmd_b)
-{
- return pmd_val(pmd_a) == pmd_val(pmd_b);
-}
-#else /* CONFIG_TRANSPARENT_HUGEPAGE */
-static inline int pmd_same(pmd_t pmd_a, pmd_t pmd_b)
-{
- BUG();
- return 0;
-}
-#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
-#endif
-
-#ifndef __HAVE_ARCH_PAGE_TEST_AND_CLEAR_DIRTY
-#define page_test_and_clear_dirty(pfn, mapped) (0)
-#endif
-
-#ifndef __HAVE_ARCH_PAGE_TEST_AND_CLEAR_DIRTY
-#define pte_maybe_dirty(pte) pte_dirty(pte)
-#else
-#define pte_maybe_dirty(pte) (1)
-#endif
-
-#ifndef __HAVE_ARCH_PAGE_TEST_AND_CLEAR_YOUNG
-#define page_test_and_clear_young(pfn) (0)
-#endif
-
-#ifndef __HAVE_ARCH_PGD_OFFSET_GATE
-#define pgd_offset_gate(mm, addr) pgd_offset(mm, addr)
-#endif
-
-#ifndef __HAVE_ARCH_MOVE_PTE
-#define move_pte(pte, prot, old_addr, new_addr) (pte)
-#endif
-
-#ifndef flush_tlb_fix_spurious_fault
-#define flush_tlb_fix_spurious_fault(vma, address) flush_tlb_page(vma, address)
-#endif
-
-#ifndef pgprot_noncached
-#define pgprot_noncached(prot) (prot)
-#endif
-
-#ifndef pgprot_writecombine
-#define pgprot_writecombine pgprot_noncached
-#endif
-
-/*
- * When walking page tables, get the address of the next boundary,
- * or the end address of the range if that comes earlier. Although no
- * vma end wraps to 0, rounded up __boundary may wrap to 0 throughout.
- */
-
-#define pgd_addr_end(addr, end) \
-({ unsigned long __boundary = ((addr) + PGDIR_SIZE) & PGDIR_MASK; \
- (__boundary - 1 < (end) - 1)? __boundary: (end); \
-})
-
-#ifndef pud_addr_end
-#define pud_addr_end(addr, end) \
-({ unsigned long __boundary = ((addr) + PUD_SIZE) & PUD_MASK; \
- (__boundary - 1 < (end) - 1)? __boundary: (end); \
-})
-#endif
-
-#ifndef pmd_addr_end
-#define pmd_addr_end(addr, end) \
-({ unsigned long __boundary = ((addr) + PMD_SIZE) & PMD_MASK; \
- (__boundary - 1 < (end) - 1)? __boundary: (end); \
-})
-#endif
-
-/*
- * When walking page tables, we usually want to skip any p?d_none entries;
- * and any p?d_bad entries - reporting the error before resetting to none.
- * Do the tests inline, but report and clear the bad entry in mm/memory.c.
- */
-void pgd_clear_bad(pgd_t *);
-void pud_clear_bad(pud_t *);
-void pmd_clear_bad(pmd_t *);
-
-static inline int pgd_none_or_clear_bad(pgd_t *pgd)
-{
- if (pgd_none(*pgd))
- return 1;
- if (unlikely(pgd_bad(*pgd))) {
- pgd_clear_bad(pgd);
- return 1;
- }
- return 0;
-}
-
-static inline int pud_none_or_clear_bad(pud_t *pud)
-{
- if (pud_none(*pud))
- return 1;
- if (unlikely(pud_bad(*pud))) {
- pud_clear_bad(pud);
- return 1;
- }
- return 0;
-}
-
-static inline int pmd_none_or_clear_bad(pmd_t *pmd)
-{
- if (pmd_none(*pmd))
- return 1;
- if (unlikely(pmd_bad(*pmd))) {
- pmd_clear_bad(pmd);
- return 1;
- }
- return 0;
-}
-
-static inline pte_t __ptep_modify_prot_start(struct mm_struct *mm,
- unsigned long addr,
- pte_t *ptep)
-{
- /*
- * Get the current pte state, but zero it out to make it
- * non-present, preventing the hardware from asynchronously
- * updating it.
- */
- return ptep_get_and_clear(mm, addr, ptep);
-}
-
-static inline void __ptep_modify_prot_commit(struct mm_struct *mm,
- unsigned long addr,
- pte_t *ptep, pte_t pte)
-{
- /*
- * The pte is non-present, so there's no hardware state to
- * preserve.
- */
- set_pte_at(mm, addr, ptep, pte);
-}
-
-#ifndef __HAVE_ARCH_PTEP_MODIFY_PROT_TRANSACTION
-/*
- * Start a pte protection read-modify-write transaction, which
- * protects against asynchronous hardware modifications to the pte.
- * The intention is not to prevent the hardware from making pte
- * updates, but to prevent any updates it may make from being lost.
- *
- * This does not protect against other software modifications of the
- * pte; the appropriate pte lock must be held over the transation.
- *
- * Note that this interface is intended to be batchable, meaning that
- * ptep_modify_prot_commit may not actually update the pte, but merely
- * queue the update to be done at some later time. The update must be
- * actually committed before the pte lock is released, however.
- */
-static inline pte_t ptep_modify_prot_start(struct mm_struct *mm,
- unsigned long addr,
- pte_t *ptep)
-{
- return __ptep_modify_prot_start(mm, addr, ptep);
-}
-
-/*
- * Commit an update to a pte, leaving any hardware-controlled bits in
- * the PTE unmodified.
- */
-static inline void ptep_modify_prot_commit(struct mm_struct *mm,
- unsigned long addr,
- pte_t *ptep, pte_t pte)
-{
- __ptep_modify_prot_commit(mm, addr, ptep, pte);
-}
-#endif /* __HAVE_ARCH_PTEP_MODIFY_PROT_TRANSACTION */
-#endif /* CONFIG_MMU */
-
-/*
- * A facility to provide lazy MMU batching. This allows PTE updates and
- * page invalidations to be delayed until a call to leave lazy MMU mode
- * is issued. Some architectures may benefit from doing this, and it is
- * beneficial for both shadow and direct mode hypervisors, which may batch
- * the PTE updates which happen during this window. Note that using this
- * interface requires that read hazards be removed from the code. A read
- * hazard could result in the direct mode hypervisor case, since the actual
- * write to the page tables may not yet have taken place, so reads though
- * a raw PTE pointer after it has been modified are not guaranteed to be
- * up to date. This mode can only be entered and left under the protection of
- * the page table locks for all page tables which may be modified. In the UP
- * case, this is required so that preemption is disabled, and in the SMP case,
- * it must synchronize the delayed page table writes properly on other CPUs.
- */
-#ifndef __HAVE_ARCH_ENTER_LAZY_MMU_MODE
-#define arch_enter_lazy_mmu_mode() do {} while (0)
-#define arch_leave_lazy_mmu_mode() do {} while (0)
-#define arch_flush_lazy_mmu_mode() do {} while (0)
-#endif
-
-/*
- * A facility to provide batching of the reload of page tables and
- * other process state with the actual context switch code for
- * paravirtualized guests. By convention, only one of the batched
- * update (lazy) modes (CPU, MMU) should be active at any given time,
- * entry should never be nested, and entry and exits should always be
- * paired. This is for sanity of maintaining and reasoning about the
- * kernel code. In this case, the exit (end of the context switch) is
- * in architecture-specific code, and so doesn't need a generic
- * definition.
- */
-#ifndef __HAVE_ARCH_START_CONTEXT_SWITCH
-#define arch_start_context_switch(prev) do {} while (0)
-#endif
-
-#ifndef __HAVE_PFNMAP_TRACKING
-/*
- * Interface that can be used by architecture code to keep track of
- * memory type of pfn mappings (remap_pfn_range, vm_insert_pfn)
- *
- * track_pfn_vma_new is called when a _new_ pfn mapping is being established
- * for physical range indicated by pfn and size.
- */
-static inline int track_pfn_vma_new(struct vm_area_struct *vma, pgprot_t *prot,
- unsigned long pfn, unsigned long size)
-{
- return 0;
-}
-
-/*
- * Interface that can be used by architecture code to keep track of
- * memory type of pfn mappings (remap_pfn_range, vm_insert_pfn)
- *
- * track_pfn_vma_copy is called when vma that is covering the pfnmap gets
- * copied through copy_page_range().
- */
-static inline int track_pfn_vma_copy(struct vm_area_struct *vma)
-{
- return 0;
-}
-
-/*
- * Interface that can be used by architecture code to keep track of
- * memory type of pfn mappings (remap_pfn_range, vm_insert_pfn)
- *
- * untrack_pfn_vma is called while unmapping a pfnmap for a region.
- * untrack can be called for a specific region indicated by pfn and size or
- * can be for the entire vma (in which case size can be zero).
- */
-static inline void untrack_pfn_vma(struct vm_area_struct *vma,
- unsigned long pfn, unsigned long size)
-{
-}
-#else
-extern int track_pfn_vma_new(struct vm_area_struct *vma, pgprot_t *prot,
- unsigned long pfn, unsigned long size);
-extern int track_pfn_vma_copy(struct vm_area_struct *vma);
-extern void untrack_pfn_vma(struct vm_area_struct *vma, unsigned long pfn,
- unsigned long size);
-#endif
-
-#ifdef CONFIG_MMU
-
-#ifndef CONFIG_TRANSPARENT_HUGEPAGE
-static inline int pmd_trans_huge(pmd_t pmd)
-{
- return 0;
-}
-static inline int pmd_trans_splitting(pmd_t pmd)
-{
- return 0;
-}
-#ifndef __HAVE_ARCH_PMD_WRITE
-static inline int pmd_write(pmd_t pmd)
-{
- BUG();
- return 0;
-}
-#endif /* __HAVE_ARCH_PMD_WRITE */
-#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
-
-#ifndef pmd_read_atomic
-static inline pmd_t pmd_read_atomic(pmd_t *pmdp)
-{
- /*
- * Depend on compiler for an atomic pmd read. NOTE: this is
- * only going to work, if the pmdval_t isn't larger than
- * an unsigned long.
- */
- return *pmdp;
-}
-#endif
-
-/*
- * This function is meant to be used by sites walking pagetables with
- * the mmap_sem hold in read mode to protect against MADV_DONTNEED and
- * transhuge page faults. MADV_DONTNEED can convert a transhuge pmd
- * into a null pmd and the transhuge page fault can convert a null pmd
- * into an hugepmd or into a regular pmd (if the hugepage allocation
- * fails). While holding the mmap_sem in read mode the pmd becomes
- * stable and stops changing under us only if it's not null and not a
- * transhuge pmd. When those races occurs and this function makes a
- * difference vs the standard pmd_none_or_clear_bad, the result is
- * undefined so behaving like if the pmd was none is safe (because it
- * can return none anyway). The compiler level barrier() is critically
- * important to compute the two checks atomically on the same pmdval.
- *
- * For 32bit kernels with a 64bit large pmd_t this automatically takes
- * care of reading the pmd atomically to avoid SMP race conditions
- * against pmd_populate() when the mmap_sem is hold for reading by the
- * caller (a special atomic read not done by "gcc" as in the generic
- * version above, is also needed when THP is disabled because the page
- * fault can populate the pmd from under us).
- */
-static inline int pmd_none_or_trans_huge_or_clear_bad(pmd_t *pmd)
-{
- pmd_t pmdval = pmd_read_atomic(pmd);
- /*
- * The barrier will stabilize the pmdval in a register or on
- * the stack so that it will stop changing under the code.
- *
- * When CONFIG_TRANSPARENT_HUGEPAGE=y on x86 32bit PAE,
- * pmd_read_atomic is allowed to return a not atomic pmdval
- * (for example pointing to an hugepage that has never been
- * mapped in the pmd). The below checks will only care about
- * the low part of the pmd with 32bit PAE x86 anyway, with the
- * exception of pmd_none(). So the important thing is that if
- * the low part of the pmd is found null, the high part will
- * be also null or the pmd_none() check below would be
- * confused.
- */
-#ifdef CONFIG_TRANSPARENT_HUGEPAGE
- barrier();
-#endif
- if (pmd_none(pmdval))
- return 1;
- if (unlikely(pmd_bad(pmdval))) {
- if (!pmd_trans_huge(pmdval))
- pmd_clear_bad(pmd);
- return 1;
- }
- return 0;
-}
-
-/*
- * This is a noop if Transparent Hugepage Support is not built into
- * the kernel. Otherwise it is equivalent to
- * pmd_none_or_trans_huge_or_clear_bad(), and shall only be called in
- * places that already verified the pmd is not none and they want to
- * walk ptes while holding the mmap sem in read mode (write mode don't
- * need this). If THP is not enabled, the pmd can't go away under the
- * code even if MADV_DONTNEED runs, but if THP is enabled we need to
- * run a pmd_trans_unstable before walking the ptes after
- * split_huge_page_pmd returns (because it may have run when the pmd
- * become null, but then a page fault can map in a THP and not a
- * regular page).
- */
-static inline int pmd_trans_unstable(pmd_t *pmd)
-{
-#ifdef CONFIG_TRANSPARENT_HUGEPAGE
- return pmd_none_or_trans_huge_or_clear_bad(pmd);
-#else
- return 0;
-#endif
-}
-
-#endif /* CONFIG_MMU */
-
-#endif /* !__ASSEMBLY__ */
-
-#endif /* _ASM_GENERIC_PGTABLE_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/poll.h b/ANDROID_3.4.5/include/asm-generic/poll.h
deleted file mode 100644
index 9ce7f44a..00000000
--- a/ANDROID_3.4.5/include/asm-generic/poll.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef __ASM_GENERIC_POLL_H
-#define __ASM_GENERIC_POLL_H
-
-/* These are specified by iBCS2 */
-#define POLLIN 0x0001
-#define POLLPRI 0x0002
-#define POLLOUT 0x0004
-#define POLLERR 0x0008
-#define POLLHUP 0x0010
-#define POLLNVAL 0x0020
-
-/* The rest seem to be more-or-less nonstandard. Check them! */
-#define POLLRDNORM 0x0040
-#define POLLRDBAND 0x0080
-#ifndef POLLWRNORM
-#define POLLWRNORM 0x0100
-#endif
-#ifndef POLLWRBAND
-#define POLLWRBAND 0x0200
-#endif
-#ifndef POLLMSG
-#define POLLMSG 0x0400
-#endif
-#ifndef POLLREMOVE
-#define POLLREMOVE 0x1000
-#endif
-#ifndef POLLRDHUP
-#define POLLRDHUP 0x2000
-#endif
-
-#define POLLFREE 0x4000 /* currently only for epoll */
-
-struct pollfd {
- int fd;
- short events;
- short revents;
-};
-
-#endif /* __ASM_GENERIC_POLL_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/posix_types.h b/ANDROID_3.4.5/include/asm-generic/posix_types.h
deleted file mode 100644
index 91d44bd4..00000000
--- a/ANDROID_3.4.5/include/asm-generic/posix_types.h
+++ /dev/null
@@ -1,100 +0,0 @@
-#ifndef __ASM_GENERIC_POSIX_TYPES_H
-#define __ASM_GENERIC_POSIX_TYPES_H
-
-#include <asm/bitsperlong.h>
-/*
- * This file is generally used by user-level software, so you need to
- * be a little careful about namespace pollution etc.
- *
- * First the types that are often defined in different ways across
- * architectures, so that you can override them.
- */
-
-#ifndef __kernel_long_t
-typedef long __kernel_long_t;
-typedef unsigned long __kernel_ulong_t;
-#endif
-
-#ifndef __kernel_ino_t
-typedef __kernel_ulong_t __kernel_ino_t;
-#endif
-
-#ifndef __kernel_mode_t
-typedef unsigned int __kernel_mode_t;
-#endif
-
-#ifndef __kernel_nlink_t
-typedef __kernel_ulong_t __kernel_nlink_t;
-#endif
-
-#ifndef __kernel_pid_t
-typedef int __kernel_pid_t;
-#endif
-
-#ifndef __kernel_ipc_pid_t
-typedef int __kernel_ipc_pid_t;
-#endif
-
-#ifndef __kernel_uid_t
-typedef unsigned int __kernel_uid_t;
-typedef unsigned int __kernel_gid_t;
-#endif
-
-#ifndef __kernel_suseconds_t
-typedef __kernel_long_t __kernel_suseconds_t;
-#endif
-
-#ifndef __kernel_daddr_t
-typedef int __kernel_daddr_t;
-#endif
-
-#ifndef __kernel_uid32_t
-typedef unsigned int __kernel_uid32_t;
-typedef unsigned int __kernel_gid32_t;
-#endif
-
-#ifndef __kernel_old_uid_t
-typedef __kernel_uid_t __kernel_old_uid_t;
-typedef __kernel_gid_t __kernel_old_gid_t;
-#endif
-
-#ifndef __kernel_old_dev_t
-typedef unsigned int __kernel_old_dev_t;
-#endif
-
-/*
- * Most 32 bit architectures use "unsigned int" size_t,
- * and all 64 bit architectures use "unsigned long" size_t.
- */
-#ifndef __kernel_size_t
-#if __BITS_PER_LONG != 64
-typedef unsigned int __kernel_size_t;
-typedef int __kernel_ssize_t;
-typedef int __kernel_ptrdiff_t;
-#else
-typedef __kernel_ulong_t __kernel_size_t;
-typedef __kernel_long_t __kernel_ssize_t;
-typedef __kernel_long_t __kernel_ptrdiff_t;
-#endif
-#endif
-
-#ifndef __kernel_fsid_t
-typedef struct {
- int val[2];
-} __kernel_fsid_t;
-#endif
-
-/*
- * anything below here should be completely generic
- */
-typedef __kernel_long_t __kernel_off_t;
-typedef long long __kernel_loff_t;
-typedef __kernel_long_t __kernel_time_t;
-typedef __kernel_long_t __kernel_clock_t;
-typedef int __kernel_timer_t;
-typedef int __kernel_clockid_t;
-typedef char * __kernel_caddr_t;
-typedef unsigned short __kernel_uid16_t;
-typedef unsigned short __kernel_gid16_t;
-
-#endif /* __ASM_GENERIC_POSIX_TYPES_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/ptrace.h b/ANDROID_3.4.5/include/asm-generic/ptrace.h
deleted file mode 100644
index 82e674f6..00000000
--- a/ANDROID_3.4.5/include/asm-generic/ptrace.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Common low level (register) ptrace helpers
- *
- * Copyright 2004-2011 Analog Devices Inc.
- *
- * Licensed under the GPL-2 or later.
- */
-
-#ifndef __ASM_GENERIC_PTRACE_H__
-#define __ASM_GENERIC_PTRACE_H__
-
-#ifndef __ASSEMBLY__
-
-/* Helpers for working with the instruction pointer */
-#ifndef GET_IP
-#define GET_IP(regs) ((regs)->pc)
-#endif
-#ifndef SET_IP
-#define SET_IP(regs, val) (GET_IP(regs) = (val))
-#endif
-
-static inline unsigned long instruction_pointer(struct pt_regs *regs)
-{
- return GET_IP(regs);
-}
-static inline void instruction_pointer_set(struct pt_regs *regs,
- unsigned long val)
-{
- SET_IP(regs, val);
-}
-
-#ifndef profile_pc
-#define profile_pc(regs) instruction_pointer(regs)
-#endif
-
-/* Helpers for working with the user stack pointer */
-#ifndef GET_USP
-#define GET_USP(regs) ((regs)->usp)
-#endif
-#ifndef SET_USP
-#define SET_USP(regs, val) (GET_USP(regs) = (val))
-#endif
-
-static inline unsigned long user_stack_pointer(struct pt_regs *regs)
-{
- return GET_USP(regs);
-}
-static inline void user_stack_pointer_set(struct pt_regs *regs,
- unsigned long val)
-{
- SET_USP(regs, val);
-}
-
-/* Helpers for working with the frame pointer */
-#ifndef GET_FP
-#define GET_FP(regs) ((regs)->fp)
-#endif
-#ifndef SET_FP
-#define SET_FP(regs, val) (GET_FP(regs) = (val))
-#endif
-
-static inline unsigned long frame_pointer(struct pt_regs *regs)
-{
- return GET_FP(regs);
-}
-static inline void frame_pointer_set(struct pt_regs *regs,
- unsigned long val)
-{
- SET_FP(regs, val);
-}
-
-#endif /* __ASSEMBLY__ */
-
-#endif
diff --git a/ANDROID_3.4.5/include/asm-generic/resource.h b/ANDROID_3.4.5/include/asm-generic/resource.h
deleted file mode 100644
index 61fa862f..00000000
--- a/ANDROID_3.4.5/include/asm-generic/resource.h
+++ /dev/null
@@ -1,94 +0,0 @@
-#ifndef _ASM_GENERIC_RESOURCE_H
-#define _ASM_GENERIC_RESOURCE_H
-
-/*
- * Resource limit IDs
- *
- * ( Compatibility detail: there are architectures that have
- * a different rlimit ID order in the 5-9 range and want
- * to keep that order for binary compatibility. The reasons
- * are historic and all new rlimits are identical across all
- * arches. If an arch has such special order for some rlimits
- * then it defines them prior including asm-generic/resource.h. )
- */
-
-#define RLIMIT_CPU 0 /* CPU time in sec */
-#define RLIMIT_FSIZE 1 /* Maximum filesize */
-#define RLIMIT_DATA 2 /* max data size */
-#define RLIMIT_STACK 3 /* max stack size */
-#define RLIMIT_CORE 4 /* max core file size */
-
-#ifndef RLIMIT_RSS
-# define RLIMIT_RSS 5 /* max resident set size */
-#endif
-
-#ifndef RLIMIT_NPROC
-# define RLIMIT_NPROC 6 /* max number of processes */
-#endif
-
-#ifndef RLIMIT_NOFILE
-# define RLIMIT_NOFILE 7 /* max number of open files */
-#endif
-
-#ifndef RLIMIT_MEMLOCK
-# define RLIMIT_MEMLOCK 8 /* max locked-in-memory address space */
-#endif
-
-#ifndef RLIMIT_AS
-# define RLIMIT_AS 9 /* address space limit */
-#endif
-
-#define RLIMIT_LOCKS 10 /* maximum file locks held */
-#define RLIMIT_SIGPENDING 11 /* max number of pending signals */
-#define RLIMIT_MSGQUEUE 12 /* maximum bytes in POSIX mqueues */
-#define RLIMIT_NICE 13 /* max nice prio allowed to raise to
- 0-39 for nice level 19 .. -20 */
-#define RLIMIT_RTPRIO 14 /* maximum realtime priority */
-#define RLIMIT_RTTIME 15 /* timeout for RT tasks in us */
-#define RLIM_NLIMITS 16
-
-/*
- * SuS says limits have to be unsigned.
- * Which makes a ton more sense anyway.
- *
- * Some architectures override this (for compatibility reasons):
- */
-#ifndef RLIM_INFINITY
-# define RLIM_INFINITY (~0UL)
-#endif
-
-/*
- * RLIMIT_STACK default maximum - some architectures override it:
- */
-#ifndef _STK_LIM_MAX
-# define _STK_LIM_MAX RLIM_INFINITY
-#endif
-
-#ifdef __KERNEL__
-
-/*
- * boot-time rlimit defaults for the init task:
- */
-#define INIT_RLIMITS \
-{ \
- [RLIMIT_CPU] = { RLIM_INFINITY, RLIM_INFINITY }, \
- [RLIMIT_FSIZE] = { RLIM_INFINITY, RLIM_INFINITY }, \
- [RLIMIT_DATA] = { RLIM_INFINITY, RLIM_INFINITY }, \
- [RLIMIT_STACK] = { _STK_LIM, _STK_LIM_MAX }, \
- [RLIMIT_CORE] = { 0, RLIM_INFINITY }, \
- [RLIMIT_RSS] = { RLIM_INFINITY, RLIM_INFINITY }, \
- [RLIMIT_NPROC] = { 0, 0 }, \
- [RLIMIT_NOFILE] = { INR_OPEN_CUR, INR_OPEN_MAX }, \
- [RLIMIT_MEMLOCK] = { MLOCK_LIMIT, MLOCK_LIMIT }, \
- [RLIMIT_AS] = { RLIM_INFINITY, RLIM_INFINITY }, \
- [RLIMIT_LOCKS] = { RLIM_INFINITY, RLIM_INFINITY }, \
- [RLIMIT_SIGPENDING] = { 0, 0 }, \
- [RLIMIT_MSGQUEUE] = { MQ_BYTES_MAX, MQ_BYTES_MAX }, \
- [RLIMIT_NICE] = { 0, 0 }, \
- [RLIMIT_RTPRIO] = { 0, 0 }, \
- [RLIMIT_RTTIME] = { RLIM_INFINITY, RLIM_INFINITY }, \
-}
-
-#endif /* __KERNEL__ */
-
-#endif
diff --git a/ANDROID_3.4.5/include/asm-generic/rtc.h b/ANDROID_3.4.5/include/asm-generic/rtc.h
deleted file mode 100644
index fa86f240..00000000
--- a/ANDROID_3.4.5/include/asm-generic/rtc.h
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * include/asm-generic/rtc.h
- *
- * Author: Tom Rini <trini@mvista.com>
- *
- * Based on:
- * drivers/char/rtc.c
- *
- * Please read the COPYING file for all license details.
- */
-
-#ifndef __ASM_RTC_H__
-#define __ASM_RTC_H__
-
-#include <linux/mc146818rtc.h>
-#include <linux/rtc.h>
-#include <linux/bcd.h>
-#include <linux/delay.h>
-
-#define RTC_PIE 0x40 /* periodic interrupt enable */
-#define RTC_AIE 0x20 /* alarm interrupt enable */
-#define RTC_UIE 0x10 /* update-finished interrupt enable */
-
-/* some dummy definitions */
-#define RTC_BATT_BAD 0x100 /* battery bad */
-#define RTC_SQWE 0x08 /* enable square-wave output */
-#define RTC_DM_BINARY 0x04 /* all time/date values are BCD if clear */
-#define RTC_24H 0x02 /* 24 hour mode - else hours bit 7 means pm */
-#define RTC_DST_EN 0x01 /* auto switch DST - works f. USA only */
-
-/*
- * Returns true if a clock update is in progress
- */
-static inline unsigned char rtc_is_updating(void)
-{
- unsigned char uip;
- unsigned long flags;
-
- spin_lock_irqsave(&rtc_lock, flags);
- uip = (CMOS_READ(RTC_FREQ_SELECT) & RTC_UIP);
- spin_unlock_irqrestore(&rtc_lock, flags);
- return uip;
-}
-
-static inline unsigned int __get_rtc_time(struct rtc_time *time)
-{
- unsigned char ctrl;
- unsigned long flags;
-
-#ifdef CONFIG_MACH_DECSTATION
- unsigned int real_year;
-#endif
-
- /*
- * read RTC once any update in progress is done. The update
- * can take just over 2ms. We wait 20ms. There is no need to
- * to poll-wait (up to 1s - eeccch) for the falling edge of RTC_UIP.
- * If you need to know *exactly* when a second has started, enable
- * periodic update complete interrupts, (via ioctl) and then
- * immediately read /dev/rtc which will block until you get the IRQ.
- * Once the read clears, read the RTC time (again via ioctl). Easy.
- */
- if (rtc_is_updating())
- mdelay(20);
-
- /*
- * Only the values that we read from the RTC are set. We leave
- * tm_wday, tm_yday and tm_isdst untouched. Even though the
- * RTC has RTC_DAY_OF_WEEK, we ignore it, as it is only updated
- * by the RTC when initially set to a non-zero value.
- */
- spin_lock_irqsave(&rtc_lock, flags);
- time->tm_sec = CMOS_READ(RTC_SECONDS);
- time->tm_min = CMOS_READ(RTC_MINUTES);
- time->tm_hour = CMOS_READ(RTC_HOURS);
- time->tm_mday = CMOS_READ(RTC_DAY_OF_MONTH);
- time->tm_mon = CMOS_READ(RTC_MONTH);
- time->tm_year = CMOS_READ(RTC_YEAR);
-#ifdef CONFIG_MACH_DECSTATION
- real_year = CMOS_READ(RTC_DEC_YEAR);
-#endif
- ctrl = CMOS_READ(RTC_CONTROL);
- spin_unlock_irqrestore(&rtc_lock, flags);
-
- if (!(ctrl & RTC_DM_BINARY) || RTC_ALWAYS_BCD)
- {
- time->tm_sec = bcd2bin(time->tm_sec);
- time->tm_min = bcd2bin(time->tm_min);
- time->tm_hour = bcd2bin(time->tm_hour);
- time->tm_mday = bcd2bin(time->tm_mday);
- time->tm_mon = bcd2bin(time->tm_mon);
- time->tm_year = bcd2bin(time->tm_year);
- }
-
-#ifdef CONFIG_MACH_DECSTATION
- time->tm_year += real_year - 72;
-#endif
-
- /*
- * Account for differences between how the RTC uses the values
- * and how they are defined in a struct rtc_time;
- */
- if (time->tm_year <= 69)
- time->tm_year += 100;
-
- time->tm_mon--;
-
- return RTC_24H;
-}
-
-#ifndef get_rtc_time
-#define get_rtc_time __get_rtc_time
-#endif
-
-/* Set the current date and time in the real time clock. */
-static inline int __set_rtc_time(struct rtc_time *time)
-{
- unsigned long flags;
- unsigned char mon, day, hrs, min, sec;
- unsigned char save_control, save_freq_select;
- unsigned int yrs;
-#ifdef CONFIG_MACH_DECSTATION
- unsigned int real_yrs, leap_yr;
-#endif
-
- yrs = time->tm_year;
- mon = time->tm_mon + 1; /* tm_mon starts at zero */
- day = time->tm_mday;
- hrs = time->tm_hour;
- min = time->tm_min;
- sec = time->tm_sec;
-
- if (yrs > 255) /* They are unsigned */
- return -EINVAL;
-
- spin_lock_irqsave(&rtc_lock, flags);
-#ifdef CONFIG_MACH_DECSTATION
- real_yrs = yrs;
- leap_yr = ((!((yrs + 1900) % 4) && ((yrs + 1900) % 100)) ||
- !((yrs + 1900) % 400));
- yrs = 72;
-
- /*
- * We want to keep the year set to 73 until March
- * for non-leap years, so that Feb, 29th is handled
- * correctly.
- */
- if (!leap_yr && mon < 3) {
- real_yrs--;
- yrs = 73;
- }
-#endif
- /* These limits and adjustments are independent of
- * whether the chip is in binary mode or not.
- */
- if (yrs > 169) {
- spin_unlock_irqrestore(&rtc_lock, flags);
- return -EINVAL;
- }
-
- if (yrs >= 100)
- yrs -= 100;
-
- if (!(CMOS_READ(RTC_CONTROL) & RTC_DM_BINARY)
- || RTC_ALWAYS_BCD) {
- sec = bin2bcd(sec);
- min = bin2bcd(min);
- hrs = bin2bcd(hrs);
- day = bin2bcd(day);
- mon = bin2bcd(mon);
- yrs = bin2bcd(yrs);
- }
-
- save_control = CMOS_READ(RTC_CONTROL);
- CMOS_WRITE((save_control|RTC_SET), RTC_CONTROL);
- save_freq_select = CMOS_READ(RTC_FREQ_SELECT);
- CMOS_WRITE((save_freq_select|RTC_DIV_RESET2), RTC_FREQ_SELECT);
-
-#ifdef CONFIG_MACH_DECSTATION
- CMOS_WRITE(real_yrs, RTC_DEC_YEAR);
-#endif
- CMOS_WRITE(yrs, RTC_YEAR);
- CMOS_WRITE(mon, RTC_MONTH);
- CMOS_WRITE(day, RTC_DAY_OF_MONTH);
- CMOS_WRITE(hrs, RTC_HOURS);
- CMOS_WRITE(min, RTC_MINUTES);
- CMOS_WRITE(sec, RTC_SECONDS);
-
- CMOS_WRITE(save_control, RTC_CONTROL);
- CMOS_WRITE(save_freq_select, RTC_FREQ_SELECT);
-
- spin_unlock_irqrestore(&rtc_lock, flags);
-
- return 0;
-}
-
-#ifndef set_rtc_time
-#define set_rtc_time __set_rtc_time
-#endif
-
-static inline unsigned int get_rtc_ss(void)
-{
- struct rtc_time h;
-
- get_rtc_time(&h);
- return h.tm_sec;
-}
-
-static inline int get_rtc_pll(struct rtc_pll_info *pll)
-{
- return -EINVAL;
-}
-static inline int set_rtc_pll(struct rtc_pll_info *pll)
-{
- return -EINVAL;
-}
-
-#endif /* __ASM_RTC_H__ */
diff --git a/ANDROID_3.4.5/include/asm-generic/rwsem.h b/ANDROID_3.4.5/include/asm-generic/rwsem.h
deleted file mode 100644
index bb1e2cde..00000000
--- a/ANDROID_3.4.5/include/asm-generic/rwsem.h
+++ /dev/null
@@ -1,132 +0,0 @@
-#ifndef _ASM_POWERPC_RWSEM_H
-#define _ASM_POWERPC_RWSEM_H
-
-#ifndef _LINUX_RWSEM_H
-#error "Please don't include <asm/rwsem.h> directly, use <linux/rwsem.h> instead."
-#endif
-
-#ifdef __KERNEL__
-
-/*
- * R/W semaphores for PPC using the stuff in lib/rwsem.c.
- * Adapted largely from include/asm-i386/rwsem.h
- * by Paul Mackerras <paulus@samba.org>.
- */
-
-/*
- * the semaphore definition
- */
-#ifdef CONFIG_PPC64
-# define RWSEM_ACTIVE_MASK 0xffffffffL
-#else
-# define RWSEM_ACTIVE_MASK 0x0000ffffL
-#endif
-
-#define RWSEM_UNLOCKED_VALUE 0x00000000L
-#define RWSEM_ACTIVE_BIAS 0x00000001L
-#define RWSEM_WAITING_BIAS (-RWSEM_ACTIVE_MASK-1)
-#define RWSEM_ACTIVE_READ_BIAS RWSEM_ACTIVE_BIAS
-#define RWSEM_ACTIVE_WRITE_BIAS (RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS)
-
-/*
- * lock for reading
- */
-static inline void __down_read(struct rw_semaphore *sem)
-{
- if (unlikely(atomic_long_inc_return((atomic_long_t *)&sem->count) <= 0))
- rwsem_down_read_failed(sem);
-}
-
-static inline int __down_read_trylock(struct rw_semaphore *sem)
-{
- long tmp;
-
- while ((tmp = sem->count) >= 0) {
- if (tmp == cmpxchg(&sem->count, tmp,
- tmp + RWSEM_ACTIVE_READ_BIAS)) {
- return 1;
- }
- }
- return 0;
-}
-
-/*
- * lock for writing
- */
-static inline void __down_write_nested(struct rw_semaphore *sem, int subclass)
-{
- long tmp;
-
- tmp = atomic_long_add_return(RWSEM_ACTIVE_WRITE_BIAS,
- (atomic_long_t *)&sem->count);
- if (unlikely(tmp != RWSEM_ACTIVE_WRITE_BIAS))
- rwsem_down_write_failed(sem);
-}
-
-static inline void __down_write(struct rw_semaphore *sem)
-{
- __down_write_nested(sem, 0);
-}
-
-static inline int __down_write_trylock(struct rw_semaphore *sem)
-{
- long tmp;
-
- tmp = cmpxchg(&sem->count, RWSEM_UNLOCKED_VALUE,
- RWSEM_ACTIVE_WRITE_BIAS);
- return tmp == RWSEM_UNLOCKED_VALUE;
-}
-
-/*
- * unlock after reading
- */
-static inline void __up_read(struct rw_semaphore *sem)
-{
- long tmp;
-
- tmp = atomic_long_dec_return((atomic_long_t *)&sem->count);
- if (unlikely(tmp < -1 && (tmp & RWSEM_ACTIVE_MASK) == 0))
- rwsem_wake(sem);
-}
-
-/*
- * unlock after writing
- */
-static inline void __up_write(struct rw_semaphore *sem)
-{
- if (unlikely(atomic_long_sub_return(RWSEM_ACTIVE_WRITE_BIAS,
- (atomic_long_t *)&sem->count) < 0))
- rwsem_wake(sem);
-}
-
-/*
- * implement atomic add functionality
- */
-static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem)
-{
- atomic_long_add(delta, (atomic_long_t *)&sem->count);
-}
-
-/*
- * downgrade write lock to read lock
- */
-static inline void __downgrade_write(struct rw_semaphore *sem)
-{
- long tmp;
-
- tmp = atomic_long_add_return(-RWSEM_WAITING_BIAS,
- (atomic_long_t *)&sem->count);
- if (tmp < 0)
- rwsem_downgrade_wake(sem);
-}
-
-/*
- * implement exchange and add functionality
- */
-static inline long rwsem_atomic_update(long delta, struct rw_semaphore *sem)
-{
- return atomic_long_add_return(delta, (atomic_long_t *)&sem->count);
-}
-
-#endif /* __KERNEL__ */
-#endif /* _ASM_POWERPC_RWSEM_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/scatterlist.h b/ANDROID_3.4.5/include/asm-generic/scatterlist.h
deleted file mode 100644
index 5de07355..00000000
--- a/ANDROID_3.4.5/include/asm-generic/scatterlist.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef __ASM_GENERIC_SCATTERLIST_H
-#define __ASM_GENERIC_SCATTERLIST_H
-
-#include <linux/types.h>
-
-struct scatterlist {
-#ifdef CONFIG_DEBUG_SG
- unsigned long sg_magic;
-#endif
- unsigned long page_link;
- unsigned int offset;
- unsigned int length;
- dma_addr_t dma_address;
-#ifdef CONFIG_NEED_SG_DMA_LENGTH
- unsigned int dma_length;
-#endif
-};
-
-/*
- * These macros should be used after a dma_map_sg call has been done
- * to get bus addresses of each of the SG entries and their lengths.
- * You should only work with the number of sg entries pci_map_sg
- * returns, or alternatively stop on the first sg_dma_len(sg) which
- * is 0.
- */
-#define sg_dma_address(sg) ((sg)->dma_address)
-
-#ifdef CONFIG_NEED_SG_DMA_LENGTH
-#define sg_dma_len(sg) ((sg)->dma_length)
-#else
-#define sg_dma_len(sg) ((sg)->length)
-#endif
-
-#endif /* __ASM_GENERIC_SCATTERLIST_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/sections.h b/ANDROID_3.4.5/include/asm-generic/sections.h
deleted file mode 100644
index c1a1216e..00000000
--- a/ANDROID_3.4.5/include/asm-generic/sections.h
+++ /dev/null
@@ -1,43 +0,0 @@
-#ifndef _ASM_GENERIC_SECTIONS_H_
-#define _ASM_GENERIC_SECTIONS_H_
-
-/* References to section boundaries */
-
-extern char _text[], _stext[], _etext[];
-extern char _data[], _sdata[], _edata[];
-extern char __bss_start[], __bss_stop[];
-extern char __init_begin[], __init_end[];
-extern char _sinittext[], _einittext[];
-extern char _end[];
-extern char __per_cpu_load[], __per_cpu_start[], __per_cpu_end[];
-extern char __kprobes_text_start[], __kprobes_text_end[];
-extern char __entry_text_start[], __entry_text_end[];
-extern char __initdata_begin[], __initdata_end[];
-extern char __start_rodata[], __end_rodata[];
-
-/* Start and end of .ctors section - used for constructor calls. */
-extern char __ctors_start[], __ctors_end[];
-
-/* function descriptor handling (if any). Override
- * in asm/sections.h */
-#ifndef dereference_function_descriptor
-#define dereference_function_descriptor(p) (p)
-#endif
-
-/* random extra sections (if any). Override
- * in asm/sections.h */
-#ifndef arch_is_kernel_text
-static inline int arch_is_kernel_text(unsigned long addr)
-{
- return 0;
-}
-#endif
-
-#ifndef arch_is_kernel_data
-static inline int arch_is_kernel_data(unsigned long addr)
-{
- return 0;
-}
-#endif
-
-#endif /* _ASM_GENERIC_SECTIONS_H_ */
diff --git a/ANDROID_3.4.5/include/asm-generic/segment.h b/ANDROID_3.4.5/include/asm-generic/segment.h
deleted file mode 100644
index 5580eace..00000000
--- a/ANDROID_3.4.5/include/asm-generic/segment.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef __ASM_GENERIC_SEGMENT_H
-#define __ASM_GENERIC_SEGMENT_H
-/*
- * Only here because we have some old header files that expect it...
- *
- * New architectures probably don't want to have their own version.
- */
-
-#endif /* __ASM_GENERIC_SEGMENT_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/sembuf.h b/ANDROID_3.4.5/include/asm-generic/sembuf.h
deleted file mode 100644
index 4cb2c13e..00000000
--- a/ANDROID_3.4.5/include/asm-generic/sembuf.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef __ASM_GENERIC_SEMBUF_H
-#define __ASM_GENERIC_SEMBUF_H
-
-#include <asm/bitsperlong.h>
-
-/*
- * The semid64_ds structure for x86 architecture.
- * Note extra padding because this structure is passed back and forth
- * between kernel and user space.
- *
- * semid64_ds was originally meant to be architecture specific, but
- * everyone just ended up making identical copies without specific
- * optimizations, so we may just as well all use the same one.
- *
- * 64 bit architectures typically define a 64 bit __kernel_time_t,
- * so they do not need the first two padding words.
- * On big-endian systems, the padding is in the wrong place.
- *
- * Pad space is left for:
- * - 64-bit time_t to solve y2038 problem
- * - 2 miscellaneous 32-bit values
- */
-struct semid64_ds {
- struct ipc64_perm sem_perm; /* permissions .. see ipc.h */
- __kernel_time_t sem_otime; /* last semop time */
-#if __BITS_PER_LONG != 64
- unsigned long __unused1;
-#endif
- __kernel_time_t sem_ctime; /* last change time */
-#if __BITS_PER_LONG != 64
- unsigned long __unused2;
-#endif
- unsigned long sem_nsems; /* no. of semaphores in array */
- unsigned long __unused3;
- unsigned long __unused4;
-};
-
-#endif /* __ASM_GENERIC_SEMBUF_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/serial.h b/ANDROID_3.4.5/include/asm-generic/serial.h
deleted file mode 100644
index 5e291090..00000000
--- a/ANDROID_3.4.5/include/asm-generic/serial.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef __ASM_GENERIC_SERIAL_H
-#define __ASM_GENERIC_SERIAL_H
-
-/*
- * This should not be an architecture specific #define, oh well.
- *
- * Traditionally, it just describes i8250 and related serial ports
- * that have this clock rate.
- */
-
-#define BASE_BAUD (1843200 / 16)
-
-#endif /* __ASM_GENERIC_SERIAL_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/setup.h b/ANDROID_3.4.5/include/asm-generic/setup.h
deleted file mode 100644
index 6fc26a51..00000000
--- a/ANDROID_3.4.5/include/asm-generic/setup.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef __ASM_GENERIC_SETUP_H
-#define __ASM_GENERIC_SETUP_H
-
-#define COMMAND_LINE_SIZE 512
-
-#endif /* __ASM_GENERIC_SETUP_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/shmbuf.h b/ANDROID_3.4.5/include/asm-generic/shmbuf.h
deleted file mode 100644
index 5768fa60..00000000
--- a/ANDROID_3.4.5/include/asm-generic/shmbuf.h
+++ /dev/null
@@ -1,59 +0,0 @@
-#ifndef __ASM_GENERIC_SHMBUF_H
-#define __ASM_GENERIC_SHMBUF_H
-
-#include <asm/bitsperlong.h>
-
-/*
- * The shmid64_ds structure for x86 architecture.
- * Note extra padding because this structure is passed back and forth
- * between kernel and user space.
- *
- * shmid64_ds was originally meant to be architecture specific, but
- * everyone just ended up making identical copies without specific
- * optimizations, so we may just as well all use the same one.
- *
- * 64 bit architectures typically define a 64 bit __kernel_time_t,
- * so they do not need the first two padding words.
- * On big-endian systems, the padding is in the wrong place.
- *
- *
- * Pad space is left for:
- * - 64-bit time_t to solve y2038 problem
- * - 2 miscellaneous 32-bit values
- */
-
-struct shmid64_ds {
- struct ipc64_perm shm_perm; /* operation perms */
- size_t shm_segsz; /* size of segment (bytes) */
- __kernel_time_t shm_atime; /* last attach time */
-#if __BITS_PER_LONG != 64
- unsigned long __unused1;
-#endif
- __kernel_time_t shm_dtime; /* last detach time */
-#if __BITS_PER_LONG != 64
- unsigned long __unused2;
-#endif
- __kernel_time_t shm_ctime; /* last change time */
-#if __BITS_PER_LONG != 64
- unsigned long __unused3;
-#endif
- __kernel_pid_t shm_cpid; /* pid of creator */
- __kernel_pid_t shm_lpid; /* pid of last operator */
- unsigned long shm_nattch; /* no. of current attaches */
- unsigned long __unused4;
- unsigned long __unused5;
-};
-
-struct shminfo64 {
- unsigned long shmmax;
- unsigned long shmmin;
- unsigned long shmmni;
- unsigned long shmseg;
- unsigned long shmall;
- unsigned long __unused1;
- unsigned long __unused2;
- unsigned long __unused3;
- unsigned long __unused4;
-};
-
-#endif /* __ASM_GENERIC_SHMBUF_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/shmparam.h b/ANDROID_3.4.5/include/asm-generic/shmparam.h
deleted file mode 100644
index 51a3852d..00000000
--- a/ANDROID_3.4.5/include/asm-generic/shmparam.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef __ASM_GENERIC_SHMPARAM_H
-#define __ASM_GENERIC_SHMPARAM_H
-
-#define SHMLBA PAGE_SIZE /* attach addr a multiple of this */
-
-#endif /* _ASM_GENERIC_SHMPARAM_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/siginfo.h b/ANDROID_3.4.5/include/asm-generic/siginfo.h
deleted file mode 100644
index 5e5e3865..00000000
--- a/ANDROID_3.4.5/include/asm-generic/siginfo.h
+++ /dev/null
@@ -1,310 +0,0 @@
-#ifndef _ASM_GENERIC_SIGINFO_H
-#define _ASM_GENERIC_SIGINFO_H
-
-#include <linux/compiler.h>
-#include <linux/types.h>
-
-typedef union sigval {
- int sival_int;
- void __user *sival_ptr;
-} sigval_t;
-
-/*
- * This is the size (including padding) of the part of the
- * struct siginfo that is before the union.
- */
-#ifndef __ARCH_SI_PREAMBLE_SIZE
-#define __ARCH_SI_PREAMBLE_SIZE (3 * sizeof(int))
-#endif
-
-#define SI_MAX_SIZE 128
-#ifndef SI_PAD_SIZE
-#define SI_PAD_SIZE ((SI_MAX_SIZE - __ARCH_SI_PREAMBLE_SIZE) / sizeof(int))
-#endif
-
-#ifndef __ARCH_SI_UID_T
-#define __ARCH_SI_UID_T __kernel_uid32_t
-#endif
-
-/*
- * The default "si_band" type is "long", as specified by POSIX.
- * However, some architectures want to override this to "int"
- * for historical compatibility reasons, so we allow that.
- */
-#ifndef __ARCH_SI_BAND_T
-#define __ARCH_SI_BAND_T long
-#endif
-
-#ifndef __ARCH_SI_CLOCK_T
-#define __ARCH_SI_CLOCK_T __kernel_clock_t
-#endif
-
-#ifndef __ARCH_SI_ATTRIBUTES
-#define __ARCH_SI_ATTRIBUTES
-#endif
-
-#ifndef HAVE_ARCH_SIGINFO_T
-
-typedef struct siginfo {
- int si_signo;
- int si_errno;
- int si_code;
-
- union {
- int _pad[SI_PAD_SIZE];
-
- /* kill() */
- struct {
- __kernel_pid_t _pid; /* sender's pid */
- __ARCH_SI_UID_T _uid; /* sender's uid */
- } _kill;
-
- /* POSIX.1b timers */
- struct {
- __kernel_timer_t _tid; /* timer id */
- int _overrun; /* overrun count */
- char _pad[sizeof( __ARCH_SI_UID_T) - sizeof(int)];
- sigval_t _sigval; /* same as below */
- int _sys_private; /* not to be passed to user */
- } _timer;
-
- /* POSIX.1b signals */
- struct {
- __kernel_pid_t _pid; /* sender's pid */
- __ARCH_SI_UID_T _uid; /* sender's uid */
- sigval_t _sigval;
- } _rt;
-
- /* SIGCHLD */
- struct {
- __kernel_pid_t _pid; /* which child */
- __ARCH_SI_UID_T _uid; /* sender's uid */
- int _status; /* exit code */
- __ARCH_SI_CLOCK_T _utime;
- __ARCH_SI_CLOCK_T _stime;
- } _sigchld;
-
- /* SIGILL, SIGFPE, SIGSEGV, SIGBUS */
- struct {
- void __user *_addr; /* faulting insn/memory ref. */
-#ifdef __ARCH_SI_TRAPNO
- int _trapno; /* TRAP # which caused the signal */
-#endif
- short _addr_lsb; /* LSB of the reported address */
- } _sigfault;
-
- /* SIGPOLL */
- struct {
- __ARCH_SI_BAND_T _band; /* POLL_IN, POLL_OUT, POLL_MSG */
- int _fd;
- } _sigpoll;
- } _sifields;
-} __ARCH_SI_ATTRIBUTES siginfo_t;
-
-#endif
-
-/*
- * How these fields are to be accessed.
- */
-#define si_pid _sifields._kill._pid
-#define si_uid _sifields._kill._uid
-#define si_tid _sifields._timer._tid
-#define si_overrun _sifields._timer._overrun
-#define si_sys_private _sifields._timer._sys_private
-#define si_status _sifields._sigchld._status
-#define si_utime _sifields._sigchld._utime
-#define si_stime _sifields._sigchld._stime
-#define si_value _sifields._rt._sigval
-#define si_int _sifields._rt._sigval.sival_int
-#define si_ptr _sifields._rt._sigval.sival_ptr
-#define si_addr _sifields._sigfault._addr
-#ifdef __ARCH_SI_TRAPNO
-#define si_trapno _sifields._sigfault._trapno
-#endif
-#define si_addr_lsb _sifields._sigfault._addr_lsb
-#define si_band _sifields._sigpoll._band
-#define si_fd _sifields._sigpoll._fd
-
-#ifdef __KERNEL__
-#define __SI_MASK 0xffff0000u
-#define __SI_KILL (0 << 16)
-#define __SI_TIMER (1 << 16)
-#define __SI_POLL (2 << 16)
-#define __SI_FAULT (3 << 16)
-#define __SI_CHLD (4 << 16)
-#define __SI_RT (5 << 16)
-#define __SI_MESGQ (6 << 16)
-#define __SI_CODE(T,N) ((T) | ((N) & 0xffff))
-#else
-#define __SI_KILL 0
-#define __SI_TIMER 0
-#define __SI_POLL 0
-#define __SI_FAULT 0
-#define __SI_CHLD 0
-#define __SI_RT 0
-#define __SI_MESGQ 0
-#define __SI_CODE(T,N) (N)
-#endif
-
-/*
- * si_code values
- * Digital reserves positive values for kernel-generated signals.
- */
-#define SI_USER 0 /* sent by kill, sigsend, raise */
-#define SI_KERNEL 0x80 /* sent by the kernel from somewhere */
-#define SI_QUEUE -1 /* sent by sigqueue */
-#define SI_TIMER __SI_CODE(__SI_TIMER,-2) /* sent by timer expiration */
-#define SI_MESGQ __SI_CODE(__SI_MESGQ,-3) /* sent by real time mesq state change */
-#define SI_ASYNCIO -4 /* sent by AIO completion */
-#define SI_SIGIO -5 /* sent by queued SIGIO */
-#define SI_TKILL -6 /* sent by tkill system call */
-#define SI_DETHREAD -7 /* sent by execve() killing subsidiary threads */
-
-#define SI_FROMUSER(siptr) ((siptr)->si_code <= 0)
-#define SI_FROMKERNEL(siptr) ((siptr)->si_code > 0)
-
-/*
- * SIGILL si_codes
- */
-#define ILL_ILLOPC (__SI_FAULT|1) /* illegal opcode */
-#define ILL_ILLOPN (__SI_FAULT|2) /* illegal operand */
-#define ILL_ILLADR (__SI_FAULT|3) /* illegal addressing mode */
-#define ILL_ILLTRP (__SI_FAULT|4) /* illegal trap */
-#define ILL_PRVOPC (__SI_FAULT|5) /* privileged opcode */
-#define ILL_PRVREG (__SI_FAULT|6) /* privileged register */
-#define ILL_COPROC (__SI_FAULT|7) /* coprocessor error */
-#define ILL_BADSTK (__SI_FAULT|8) /* internal stack error */
-#define NSIGILL 8
-
-/*
- * SIGFPE si_codes
- */
-#define FPE_INTDIV (__SI_FAULT|1) /* integer divide by zero */
-#define FPE_INTOVF (__SI_FAULT|2) /* integer overflow */
-#define FPE_FLTDIV (__SI_FAULT|3) /* floating point divide by zero */
-#define FPE_FLTOVF (__SI_FAULT|4) /* floating point overflow */
-#define FPE_FLTUND (__SI_FAULT|5) /* floating point underflow */
-#define FPE_FLTRES (__SI_FAULT|6) /* floating point inexact result */
-#define FPE_FLTINV (__SI_FAULT|7) /* floating point invalid operation */
-#define FPE_FLTSUB (__SI_FAULT|8) /* subscript out of range */
-#define NSIGFPE 8
-
-/*
- * SIGSEGV si_codes
- */
-#define SEGV_MAPERR (__SI_FAULT|1) /* address not mapped to object */
-#define SEGV_ACCERR (__SI_FAULT|2) /* invalid permissions for mapped object */
-#define NSIGSEGV 2
-
-/*
- * SIGBUS si_codes
- */
-#define BUS_ADRALN (__SI_FAULT|1) /* invalid address alignment */
-#define BUS_ADRERR (__SI_FAULT|2) /* non-existent physical address */
-#define BUS_OBJERR (__SI_FAULT|3) /* object specific hardware error */
-/* hardware memory error consumed on a machine check: action required */
-#define BUS_MCEERR_AR (__SI_FAULT|4)
-/* hardware memory error detected in process but not consumed: action optional*/
-#define BUS_MCEERR_AO (__SI_FAULT|5)
-#define NSIGBUS 5
-
-/*
- * SIGTRAP si_codes
- */
-#define TRAP_BRKPT (__SI_FAULT|1) /* process breakpoint */
-#define TRAP_TRACE (__SI_FAULT|2) /* process trace trap */
-#define TRAP_BRANCH (__SI_FAULT|3) /* process taken branch trap */
-#define TRAP_HWBKPT (__SI_FAULT|4) /* hardware breakpoint/watchpoint */
-#define NSIGTRAP 4
-
-/*
- * SIGCHLD si_codes
- */
-#define CLD_EXITED (__SI_CHLD|1) /* child has exited */
-#define CLD_KILLED (__SI_CHLD|2) /* child was killed */
-#define CLD_DUMPED (__SI_CHLD|3) /* child terminated abnormally */
-#define CLD_TRAPPED (__SI_CHLD|4) /* traced child has trapped */
-#define CLD_STOPPED (__SI_CHLD|5) /* child has stopped */
-#define CLD_CONTINUED (__SI_CHLD|6) /* stopped child has continued */
-#define NSIGCHLD 6
-
-/*
- * SIGPOLL si_codes
- */
-#define POLL_IN (__SI_POLL|1) /* data input available */
-#define POLL_OUT (__SI_POLL|2) /* output buffers available */
-#define POLL_MSG (__SI_POLL|3) /* input message available */
-#define POLL_ERR (__SI_POLL|4) /* i/o error */
-#define POLL_PRI (__SI_POLL|5) /* high priority input available */
-#define POLL_HUP (__SI_POLL|6) /* device disconnected */
-#define NSIGPOLL 6
-
-/*
- * sigevent definitions
- *
- * It seems likely that SIGEV_THREAD will have to be handled from
- * userspace, libpthread transmuting it to SIGEV_SIGNAL, which the
- * thread manager then catches and does the appropriate nonsense.
- * However, everything is written out here so as to not get lost.
- */
-#define SIGEV_SIGNAL 0 /* notify via signal */
-#define SIGEV_NONE 1 /* other notification: meaningless */
-#define SIGEV_THREAD 2 /* deliver via thread creation */
-#define SIGEV_THREAD_ID 4 /* deliver to thread */
-
-/*
- * This works because the alignment is ok on all current architectures
- * but we leave open this being overridden in the future
- */
-#ifndef __ARCH_SIGEV_PREAMBLE_SIZE
-#define __ARCH_SIGEV_PREAMBLE_SIZE (sizeof(int) * 2 + sizeof(sigval_t))
-#endif
-
-#define SIGEV_MAX_SIZE 64
-#define SIGEV_PAD_SIZE ((SIGEV_MAX_SIZE - __ARCH_SIGEV_PREAMBLE_SIZE) \
- / sizeof(int))
-
-typedef struct sigevent {
- sigval_t sigev_value;
- int sigev_signo;
- int sigev_notify;
- union {
- int _pad[SIGEV_PAD_SIZE];
- int _tid;
-
- struct {
- void (*_function)(sigval_t);
- void *_attribute; /* really pthread_attr_t */
- } _sigev_thread;
- } _sigev_un;
-} sigevent_t;
-
-#define sigev_notify_function _sigev_un._sigev_thread._function
-#define sigev_notify_attributes _sigev_un._sigev_thread._attribute
-#define sigev_notify_thread_id _sigev_un._tid
-
-#ifdef __KERNEL__
-
-struct siginfo;
-void do_schedule_next_timer(struct siginfo *info);
-
-#ifndef HAVE_ARCH_COPY_SIGINFO
-
-#include <linux/string.h>
-
-static inline void copy_siginfo(struct siginfo *to, struct siginfo *from)
-{
- if (from->si_code < 0)
- memcpy(to, from, sizeof(*to));
- else
- /* _sigchld is currently the largest know union member */
- memcpy(to, from, __ARCH_SI_PREAMBLE_SIZE + sizeof(from->_sifields._sigchld));
-}
-
-#endif
-
-extern int copy_siginfo_to_user(struct siginfo __user *to, struct siginfo *from);
-
-#endif /* __KERNEL__ */
-
-#endif
diff --git a/ANDROID_3.4.5/include/asm-generic/signal-defs.h b/ANDROID_3.4.5/include/asm-generic/signal-defs.h
deleted file mode 100644
index 00f95df5..00000000
--- a/ANDROID_3.4.5/include/asm-generic/signal-defs.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef __ASM_GENERIC_SIGNAL_DEFS_H
-#define __ASM_GENERIC_SIGNAL_DEFS_H
-
-#include <linux/compiler.h>
-
-#ifndef SIG_BLOCK
-#define SIG_BLOCK 0 /* for blocking signals */
-#endif
-#ifndef SIG_UNBLOCK
-#define SIG_UNBLOCK 1 /* for unblocking signals */
-#endif
-#ifndef SIG_SETMASK
-#define SIG_SETMASK 2 /* for setting the signal mask */
-#endif
-
-#ifndef __ASSEMBLY__
-typedef void __signalfn_t(int);
-typedef __signalfn_t __user *__sighandler_t;
-
-typedef void __restorefn_t(void);
-typedef __restorefn_t __user *__sigrestore_t;
-
-#define SIG_DFL ((__force __sighandler_t)0) /* default signal handling */
-#define SIG_IGN ((__force __sighandler_t)1) /* ignore signal */
-#define SIG_ERR ((__force __sighandler_t)-1) /* error return from signal */
-#endif
-
-#endif /* __ASM_GENERIC_SIGNAL_DEFS_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/signal.h b/ANDROID_3.4.5/include/asm-generic/signal.h
deleted file mode 100644
index 555c0aee..00000000
--- a/ANDROID_3.4.5/include/asm-generic/signal.h
+++ /dev/null
@@ -1,131 +0,0 @@
-#ifndef __ASM_GENERIC_SIGNAL_H
-#define __ASM_GENERIC_SIGNAL_H
-
-#include <linux/types.h>
-
-#define _NSIG 64
-#define _NSIG_BPW __BITS_PER_LONG
-#define _NSIG_WORDS (_NSIG / _NSIG_BPW)
-
-#define SIGHUP 1
-#define SIGINT 2
-#define SIGQUIT 3
-#define SIGILL 4
-#define SIGTRAP 5
-#define SIGABRT 6
-#define SIGIOT 6
-#define SIGBUS 7
-#define SIGFPE 8
-#define SIGKILL 9
-#define SIGUSR1 10
-#define SIGSEGV 11
-#define SIGUSR2 12
-#define SIGPIPE 13
-#define SIGALRM 14
-#define SIGTERM 15
-#define SIGSTKFLT 16
-#define SIGCHLD 17
-#define SIGCONT 18
-#define SIGSTOP 19
-#define SIGTSTP 20
-#define SIGTTIN 21
-#define SIGTTOU 22
-#define SIGURG 23
-#define SIGXCPU 24
-#define SIGXFSZ 25
-#define SIGVTALRM 26
-#define SIGPROF 27
-#define SIGWINCH 28
-#define SIGIO 29
-#define SIGPOLL SIGIO
-/*
-#define SIGLOST 29
-*/
-#define SIGPWR 30
-#define SIGSYS 31
-#define SIGUNUSED 31
-
-/* These should not be considered constants from userland. */
-#define SIGRTMIN 32
-#ifndef SIGRTMAX
-#define SIGRTMAX _NSIG
-#endif
-
-/*
- * SA_FLAGS values:
- *
- * SA_ONSTACK indicates that a registered stack_t will be used.
- * SA_RESTART flag to get restarting signals (which were the default long ago)
- * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop.
- * SA_RESETHAND clears the handler when the signal is delivered.
- * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies.
- * SA_NODEFER prevents the current signal from being masked in the handler.
- *
- * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single
- * Unix names RESETHAND and NODEFER respectively.
- */
-#define SA_NOCLDSTOP 0x00000001
-#define SA_NOCLDWAIT 0x00000002
-#define SA_SIGINFO 0x00000004
-#define SA_ONSTACK 0x08000000
-#define SA_RESTART 0x10000000
-#define SA_NODEFER 0x40000000
-#define SA_RESETHAND 0x80000000
-
-#define SA_NOMASK SA_NODEFER
-#define SA_ONESHOT SA_RESETHAND
-
-/*
- * New architectures should not define the obsolete
- * SA_RESTORER 0x04000000
- */
-
-/*
- * sigaltstack controls
- */
-#define SS_ONSTACK 1
-#define SS_DISABLE 2
-
-#define MINSIGSTKSZ 2048
-#define SIGSTKSZ 8192
-
-#ifndef __ASSEMBLY__
-typedef struct {
- unsigned long sig[_NSIG_WORDS];
-} sigset_t;
-
-/* not actually used, but required for linux/syscalls.h */
-typedef unsigned long old_sigset_t;
-
-#include <asm-generic/signal-defs.h>
-
-struct sigaction {
- __sighandler_t sa_handler;
- unsigned long sa_flags;
-#ifdef SA_RESTORER
- __sigrestore_t sa_restorer;
-#endif
- sigset_t sa_mask; /* mask last for extensibility */
-};
-
-struct k_sigaction {
- struct sigaction sa;
-};
-
-typedef struct sigaltstack {
- void __user *ss_sp;
- int ss_flags;
- size_t ss_size;
-} stack_t;
-
-#ifdef __KERNEL__
-
-#include <asm/sigcontext.h>
-#undef __HAVE_ARCH_SIG_BITOPS
-
-#define ptrace_signal_deliver(regs, cookie) do { } while (0)
-
-#endif /* __KERNEL__ */
-#endif /* __ASSEMBLY__ */
-
-#endif /* _ASM_GENERIC_SIGNAL_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/sizes.h b/ANDROID_3.4.5/include/asm-generic/sizes.h
deleted file mode 100644
index ea5d4ef8..00000000
--- a/ANDROID_3.4.5/include/asm-generic/sizes.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * linux/include/asm-generic/sizes.h
- *
- * 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.
- */
-#ifndef __ASM_GENERIC_SIZES_H__
-#define __ASM_GENERIC_SIZES_H__
-
-#define SZ_1 0x00000001
-#define SZ_2 0x00000002
-#define SZ_4 0x00000004
-#define SZ_8 0x00000008
-#define SZ_16 0x00000010
-#define SZ_32 0x00000020
-#define SZ_64 0x00000040
-#define SZ_128 0x00000080
-#define SZ_256 0x00000100
-#define SZ_512 0x00000200
-
-#define SZ_1K 0x00000400
-#define SZ_2K 0x00000800
-#define SZ_4K 0x00001000
-#define SZ_8K 0x00002000
-#define SZ_16K 0x00004000
-#define SZ_32K 0x00008000
-#define SZ_64K 0x00010000
-#define SZ_128K 0x00020000
-#define SZ_256K 0x00040000
-#define SZ_512K 0x00080000
-
-#define SZ_1M 0x00100000
-#define SZ_2M 0x00200000
-#define SZ_4M 0x00400000
-#define SZ_8M 0x00800000
-#define SZ_16M 0x01000000
-#define SZ_32M 0x02000000
-#define SZ_64M 0x04000000
-#define SZ_128M 0x08000000
-#define SZ_256M 0x10000000
-#define SZ_512M 0x20000000
-
-#define SZ_1G 0x40000000
-#define SZ_2G 0x80000000
-
-#endif /* __ASM_GENERIC_SIZES_H__ */
diff --git a/ANDROID_3.4.5/include/asm-generic/socket.h b/ANDROID_3.4.5/include/asm-generic/socket.h
deleted file mode 100644
index b1bea032..00000000
--- a/ANDROID_3.4.5/include/asm-generic/socket.h
+++ /dev/null
@@ -1,75 +0,0 @@
-#ifndef __ASM_GENERIC_SOCKET_H
-#define __ASM_GENERIC_SOCKET_H
-
-#include <asm/sockios.h>
-
-/* For setsockopt(2) */
-#define SOL_SOCKET 1
-
-#define SO_DEBUG 1
-#define SO_REUSEADDR 2
-#define SO_TYPE 3
-#define SO_ERROR 4
-#define SO_DONTROUTE 5
-#define SO_BROADCAST 6
-#define SO_SNDBUF 7
-#define SO_RCVBUF 8
-#define SO_SNDBUFFORCE 32
-#define SO_RCVBUFFORCE 33
-#define SO_KEEPALIVE 9
-#define SO_OOBINLINE 10
-#define SO_NO_CHECK 11
-#define SO_PRIORITY 12
-#define SO_LINGER 13
-#define SO_BSDCOMPAT 14
-/* To add :#define SO_REUSEPORT 15 */
-
-#ifndef SO_PASSCRED /* powerpc only differs in these */
-#define SO_PASSCRED 16
-#define SO_PEERCRED 17
-#define SO_RCVLOWAT 18
-#define SO_SNDLOWAT 19
-#define SO_RCVTIMEO 20
-#define SO_SNDTIMEO 21
-#endif
-
-/* Security levels - as per NRL IPv6 - don't actually do anything */
-#define SO_SECURITY_AUTHENTICATION 22
-#define SO_SECURITY_ENCRYPTION_TRANSPORT 23
-#define SO_SECURITY_ENCRYPTION_NETWORK 24
-
-#define SO_BINDTODEVICE 25
-
-/* Socket filtering */
-#define SO_ATTACH_FILTER 26
-#define SO_DETACH_FILTER 27
-
-#define SO_PEERNAME 28
-#define SO_TIMESTAMP 29
-#define SCM_TIMESTAMP SO_TIMESTAMP
-
-#define SO_ACCEPTCONN 30
-
-#define SO_PEERSEC 31
-#define SO_PASSSEC 34
-#define SO_TIMESTAMPNS 35
-#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
-
-#define SO_MARK 36
-
-#define SO_TIMESTAMPING 37
-#define SCM_TIMESTAMPING SO_TIMESTAMPING
-
-#define SO_PROTOCOL 38
-#define SO_DOMAIN 39
-
-#define SO_RXQ_OVFL 40
-
-#define SO_WIFI_STATUS 41
-#define SCM_WIFI_STATUS SO_WIFI_STATUS
-#define SO_PEEK_OFF 42
-
-/* Instruct lower device to use last 4-bytes of skb data as FCS */
-#define SO_NOFCS 43
-
-#endif /* __ASM_GENERIC_SOCKET_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/sockios.h b/ANDROID_3.4.5/include/asm-generic/sockios.h
deleted file mode 100644
index 9a61a369..00000000
--- a/ANDROID_3.4.5/include/asm-generic/sockios.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef __ASM_GENERIC_SOCKIOS_H
-#define __ASM_GENERIC_SOCKIOS_H
-
-/* Socket-level I/O control calls. */
-#define FIOSETOWN 0x8901
-#define SIOCSPGRP 0x8902
-#define FIOGETOWN 0x8903
-#define SIOCGPGRP 0x8904
-#define SIOCATMARK 0x8905
-#define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
-#define SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */
-
-#endif /* __ASM_GENERIC_SOCKIOS_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/spinlock.h b/ANDROID_3.4.5/include/asm-generic/spinlock.h
deleted file mode 100644
index 1547a03a..00000000
--- a/ANDROID_3.4.5/include/asm-generic/spinlock.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef __ASM_GENERIC_SPINLOCK_H
-#define __ASM_GENERIC_SPINLOCK_H
-/*
- * You need to implement asm/spinlock.h for SMP support. The generic
- * version does not handle SMP.
- */
-#ifdef CONFIG_SMP
-#error need an architecture specific asm/spinlock.h
-#endif
-
-#endif /* __ASM_GENERIC_SPINLOCK_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/stat.h b/ANDROID_3.4.5/include/asm-generic/stat.h
deleted file mode 100644
index bd8cad21..00000000
--- a/ANDROID_3.4.5/include/asm-generic/stat.h
+++ /dev/null
@@ -1,72 +0,0 @@
-#ifndef __ASM_GENERIC_STAT_H
-#define __ASM_GENERIC_STAT_H
-
-/*
- * Everybody gets this wrong and has to stick with it for all
- * eternity. Hopefully, this version gets used by new architectures
- * so they don't fall into the same traps.
- *
- * stat64 is copied from powerpc64, with explicit padding added.
- * stat is the same structure layout on 64-bit, without the 'long long'
- * types.
- *
- * By convention, 64 bit architectures use the stat interface, while
- * 32 bit architectures use the stat64 interface. Note that we don't
- * provide an __old_kernel_stat here, which new architecture should
- * not have to start with.
- */
-
-#include <asm/bitsperlong.h>
-
-#define STAT_HAVE_NSEC 1
-
-struct stat {
- unsigned long st_dev; /* Device. */
- unsigned long st_ino; /* File serial number. */
- unsigned int st_mode; /* File mode. */
- unsigned int st_nlink; /* Link count. */
- unsigned int st_uid; /* User ID of the file's owner. */
- unsigned int st_gid; /* Group ID of the file's group. */
- unsigned long st_rdev; /* Device number, if device. */
- unsigned long __pad1;
- long st_size; /* Size of file, in bytes. */
- int st_blksize; /* Optimal block size for I/O. */
- int __pad2;
- long st_blocks; /* Number 512-byte blocks allocated. */
- long st_atime; /* Time of last access. */
- unsigned long st_atime_nsec;
- long st_mtime; /* Time of last modification. */
- unsigned long st_mtime_nsec;
- long st_ctime; /* Time of last status change. */
- unsigned long st_ctime_nsec;
- unsigned int __unused4;
- unsigned int __unused5;
-};
-
-/* This matches struct stat64 in glibc2.1. Only used for 32 bit. */
-#if __BITS_PER_LONG != 64 || defined(__ARCH_WANT_STAT64)
-struct stat64 {
- unsigned long long st_dev; /* Device. */
- unsigned long long st_ino; /* File serial number. */
- unsigned int st_mode; /* File mode. */
- unsigned int st_nlink; /* Link count. */
- unsigned int st_uid; /* User ID of the file's owner. */
- unsigned int st_gid; /* Group ID of the file's group. */
- unsigned long long st_rdev; /* Device number, if device. */
- unsigned long long __pad1;
- long long st_size; /* Size of file, in bytes. */
- int st_blksize; /* Optimal block size for I/O. */
- int __pad2;
- long long st_blocks; /* Number 512-byte blocks allocated. */
- int st_atime; /* Time of last access. */
- unsigned int st_atime_nsec;
- int st_mtime; /* Time of last modification. */
- unsigned int st_mtime_nsec;
- int st_ctime; /* Time of last status change. */
- unsigned int st_ctime_nsec;
- unsigned int __unused4;
- unsigned int __unused5;
-};
-#endif
-
-#endif /* __ASM_GENERIC_STAT_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/statfs.h b/ANDROID_3.4.5/include/asm-generic/statfs.h
deleted file mode 100644
index c749af9c..00000000
--- a/ANDROID_3.4.5/include/asm-generic/statfs.h
+++ /dev/null
@@ -1,86 +0,0 @@
-#ifndef _GENERIC_STATFS_H
-#define _GENERIC_STATFS_H
-
-#include <linux/types.h>
-
-#ifdef __KERNEL__
-typedef __kernel_fsid_t fsid_t;
-#endif
-
-/*
- * Most 64-bit platforms use 'long', while most 32-bit platforms use '__u32'.
- * Yes, they differ in signedness as well as size.
- * Special cases can override it for themselves -- except for S390x, which
- * is just a little too special for us. And MIPS, which I'm not touching
- * with a 10' pole.
- */
-#ifndef __statfs_word
-#if __BITS_PER_LONG == 64
-#define __statfs_word long
-#else
-#define __statfs_word __u32
-#endif
-#endif
-
-struct statfs {
- __statfs_word f_type;
- __statfs_word f_bsize;
- __statfs_word f_blocks;
- __statfs_word f_bfree;
- __statfs_word f_bavail;
- __statfs_word f_files;
- __statfs_word f_ffree;
- __kernel_fsid_t f_fsid;
- __statfs_word f_namelen;
- __statfs_word f_frsize;
- __statfs_word f_flags;
- __statfs_word f_spare[4];
-};
-
-/*
- * ARM needs to avoid the 32-bit padding at the end, for consistency
- * between EABI and OABI
- */
-#ifndef ARCH_PACK_STATFS64
-#define ARCH_PACK_STATFS64
-#endif
-
-struct statfs64 {
- __statfs_word f_type;
- __statfs_word f_bsize;
- __u64 f_blocks;
- __u64 f_bfree;
- __u64 f_bavail;
- __u64 f_files;
- __u64 f_ffree;
- __kernel_fsid_t f_fsid;
- __statfs_word f_namelen;
- __statfs_word f_frsize;
- __statfs_word f_flags;
- __statfs_word f_spare[4];
-} ARCH_PACK_STATFS64;
-
-/*
- * IA64 and x86_64 need to avoid the 32-bit padding at the end,
- * to be compatible with the i386 ABI
- */
-#ifndef ARCH_PACK_COMPAT_STATFS64
-#define ARCH_PACK_COMPAT_STATFS64
-#endif
-
-struct compat_statfs64 {
- __u32 f_type;
- __u32 f_bsize;
- __u64 f_blocks;
- __u64 f_bfree;
- __u64 f_bavail;
- __u64 f_files;
- __u64 f_ffree;
- __kernel_fsid_t f_fsid;
- __u32 f_namelen;
- __u32 f_frsize;
- __u32 f_flags;
- __u32 f_spare[4];
-} ARCH_PACK_COMPAT_STATFS64;
-
-#endif
diff --git a/ANDROID_3.4.5/include/asm-generic/string.h b/ANDROID_3.4.5/include/asm-generic/string.h
deleted file mode 100644
index de5e0201..00000000
--- a/ANDROID_3.4.5/include/asm-generic/string.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef __ASM_GENERIC_STRING_H
-#define __ASM_GENERIC_STRING_H
-/*
- * The kernel provides all required functions in lib/string.c
- *
- * Architectures probably want to provide at least their own optimized
- * memcpy and memset functions though.
- */
-
-#endif /* __ASM_GENERIC_STRING_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/swab.h b/ANDROID_3.4.5/include/asm-generic/swab.h
deleted file mode 100644
index a8e9029d..00000000
--- a/ANDROID_3.4.5/include/asm-generic/swab.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef _ASM_GENERIC_SWAB_H
-#define _ASM_GENERIC_SWAB_H
-
-#include <asm/bitsperlong.h>
-
-/*
- * 32 bit architectures typically (but not always) want to
- * set __SWAB_64_THRU_32__. In user space, this is only
- * valid if the compiler supports 64 bit data types.
- */
-
-#if __BITS_PER_LONG == 32
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__) || defined(__KERNEL__)
-#define __SWAB_64_THRU_32__
-#endif
-#endif
-
-#endif /* _ASM_GENERIC_SWAB_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/switch_to.h b/ANDROID_3.4.5/include/asm-generic/switch_to.h
deleted file mode 100644
index 052c4ac0..00000000
--- a/ANDROID_3.4.5/include/asm-generic/switch_to.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Generic task switch macro wrapper, based on MN10300 definitions.
- *
- * It should be possible to use these on really simple architectures,
- * but it serves more as a starting point for new ports.
- *
- * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
- * Written by David Howells (dhowells@redhat.com)
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public Licence
- * as published by the Free Software Foundation; either version
- * 2 of the Licence, or (at your option) any later version.
- */
-#ifndef __ASM_GENERIC_SWITCH_TO_H
-#define __ASM_GENERIC_SWITCH_TO_H
-
-#include <linux/thread_info.h>
-
-/*
- * Context switching is now performed out-of-line in switch_to.S
- */
-extern struct task_struct *__switch_to(struct task_struct *,
- struct task_struct *);
-
-#define switch_to(prev, next, last) \
- do { \
- ((last) = __switch_to((prev), (next))); \
- } while (0)
-
-#endif /* __ASM_GENERIC_SWITCH_TO_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/syscall.h b/ANDROID_3.4.5/include/asm-generic/syscall.h
deleted file mode 100644
index 5c122ae6..00000000
--- a/ANDROID_3.4.5/include/asm-generic/syscall.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * Access to user system call parameters and results
- *
- * Copyright (C) 2008-2009 Red Hat, Inc. All rights reserved.
- *
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU General Public License v.2.
- *
- * This file is a stub providing documentation for what functions
- * asm-ARCH/syscall.h files need to define. Most arch definitions
- * will be simple inlines.
- *
- * All of these functions expect to be called with no locks,
- * and only when the caller is sure that the task of interest
- * cannot return to user mode while we are looking at it.
- */
-
-#ifndef _ASM_SYSCALL_H
-#define _ASM_SYSCALL_H 1
-
-struct task_struct;
-struct pt_regs;
-
-/**
- * syscall_get_nr - find what system call a task is executing
- * @task: task of interest, must be blocked
- * @regs: task_pt_regs() of @task
- *
- * If @task is executing a system call or is at system call
- * tracing about to attempt one, returns the system call number.
- * If @task is not executing a system call, i.e. it's blocked
- * inside the kernel for a fault or signal, returns -1.
- *
- * Note this returns int even on 64-bit machines. Only 32 bits of
- * system call number can be meaningful. If the actual arch value
- * is 64 bits, this truncates to 32 bits so 0xffffffff means -1.
- *
- * It's only valid to call this when @task is known to be blocked.
- */
-int syscall_get_nr(struct task_struct *task, struct pt_regs *regs);
-
-/**
- * syscall_rollback - roll back registers after an aborted system call
- * @task: task of interest, must be in system call exit tracing
- * @regs: task_pt_regs() of @task
- *
- * It's only valid to call this when @task is stopped for system
- * call exit tracing (due to TIF_SYSCALL_TRACE or TIF_SYSCALL_AUDIT),
- * after tracehook_report_syscall_entry() returned nonzero to prevent
- * the system call from taking place.
- *
- * This rolls back the register state in @regs so it's as if the
- * system call instruction was a no-op. The registers containing
- * the system call number and arguments are as they were before the
- * system call instruction. This may not be the same as what the
- * register state looked like at system call entry tracing.
- */
-void syscall_rollback(struct task_struct *task, struct pt_regs *regs);
-
-/**
- * syscall_get_error - check result of traced system call
- * @task: task of interest, must be blocked
- * @regs: task_pt_regs() of @task
- *
- * Returns 0 if the system call succeeded, or -ERRORCODE if it failed.
- *
- * It's only valid to call this when @task is stopped for tracing on exit
- * from a system call, due to %TIF_SYSCALL_TRACE or %TIF_SYSCALL_AUDIT.
- */
-long syscall_get_error(struct task_struct *task, struct pt_regs *regs);
-
-/**
- * syscall_get_return_value - get the return value of a traced system call
- * @task: task of interest, must be blocked
- * @regs: task_pt_regs() of @task
- *
- * Returns the return value of the successful system call.
- * This value is meaningless if syscall_get_error() returned nonzero.
- *
- * It's only valid to call this when @task is stopped for tracing on exit
- * from a system call, due to %TIF_SYSCALL_TRACE or %TIF_SYSCALL_AUDIT.
- */
-long syscall_get_return_value(struct task_struct *task, struct pt_regs *regs);
-
-/**
- * syscall_set_return_value - change the return value of a traced system call
- * @task: task of interest, must be blocked
- * @regs: task_pt_regs() of @task
- * @error: negative error code, or zero to indicate success
- * @val: user return value if @error is zero
- *
- * This changes the results of the system call that user mode will see.
- * If @error is zero, the user sees a successful system call with a
- * return value of @val. If @error is nonzero, it's a negated errno
- * code; the user sees a failed system call with this errno code.
- *
- * It's only valid to call this when @task is stopped for tracing on exit
- * from a system call, due to %TIF_SYSCALL_TRACE or %TIF_SYSCALL_AUDIT.
- */
-void syscall_set_return_value(struct task_struct *task, struct pt_regs *regs,
- int error, long val);
-
-/**
- * syscall_get_arguments - extract system call parameter values
- * @task: task of interest, must be blocked
- * @regs: task_pt_regs() of @task
- * @i: argument index [0,5]
- * @n: number of arguments; n+i must be [1,6].
- * @args: array filled with argument values
- *
- * Fetches @n arguments to the system call starting with the @i'th argument
- * (from 0 through 5). Argument @i is stored in @args[0], and so on.
- * An arch inline version is probably optimal when @i and @n are constants.
- *
- * It's only valid to call this when @task is stopped for tracing on
- * entry to a system call, due to %TIF_SYSCALL_TRACE or %TIF_SYSCALL_AUDIT.
- * It's invalid to call this with @i + @n > 6; we only support system calls
- * taking up to 6 arguments.
- */
-void syscall_get_arguments(struct task_struct *task, struct pt_regs *regs,
- unsigned int i, unsigned int n, unsigned long *args);
-
-/**
- * syscall_set_arguments - change system call parameter value
- * @task: task of interest, must be in system call entry tracing
- * @regs: task_pt_regs() of @task
- * @i: argument index [0,5]
- * @n: number of arguments; n+i must be [1,6].
- * @args: array of argument values to store
- *
- * Changes @n arguments to the system call starting with the @i'th argument.
- * Argument @i gets value @args[0], and so on.
- * An arch inline version is probably optimal when @i and @n are constants.
- *
- * It's only valid to call this when @task is stopped for tracing on
- * entry to a system call, due to %TIF_SYSCALL_TRACE or %TIF_SYSCALL_AUDIT.
- * It's invalid to call this with @i + @n > 6; we only support system calls
- * taking up to 6 arguments.
- */
-void syscall_set_arguments(struct task_struct *task, struct pt_regs *regs,
- unsigned int i, unsigned int n,
- const unsigned long *args);
-
-#endif /* _ASM_SYSCALL_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/syscalls.h b/ANDROID_3.4.5/include/asm-generic/syscalls.h
deleted file mode 100644
index d89dec86..00000000
--- a/ANDROID_3.4.5/include/asm-generic/syscalls.h
+++ /dev/null
@@ -1,62 +0,0 @@
-#ifndef __ASM_GENERIC_SYSCALLS_H
-#define __ASM_GENERIC_SYSCALLS_H
-
-#include <linux/compiler.h>
-#include <linux/linkage.h>
-
-/*
- * Calling conventions for these system calls can differ, so
- * it's possible to override them.
- */
-#ifndef sys_clone
-asmlinkage long sys_clone(unsigned long clone_flags, unsigned long newsp,
- void __user *parent_tid, void __user *child_tid,
- struct pt_regs *regs);
-#endif
-
-#ifndef sys_fork
-asmlinkage long sys_fork(struct pt_regs *regs);
-#endif
-
-#ifndef sys_vfork
-asmlinkage long sys_vfork(struct pt_regs *regs);
-#endif
-
-#ifndef sys_execve
-asmlinkage long sys_execve(const char __user *filename,
- const char __user *const __user *argv,
- const char __user *const __user *envp,
- struct pt_regs *regs);
-#endif
-
-#ifndef sys_mmap2
-asmlinkage long sys_mmap2(unsigned long addr, unsigned long len,
- unsigned long prot, unsigned long flags,
- unsigned long fd, unsigned long pgoff);
-#endif
-
-#ifndef sys_mmap
-asmlinkage long sys_mmap(unsigned long addr, unsigned long len,
- unsigned long prot, unsigned long flags,
- unsigned long fd, off_t pgoff);
-#endif
-
-#ifndef sys_sigaltstack
-asmlinkage long sys_sigaltstack(const stack_t __user *, stack_t __user *,
- struct pt_regs *);
-#endif
-
-#ifndef sys_rt_sigreturn
-asmlinkage long sys_rt_sigreturn(struct pt_regs *regs);
-#endif
-
-#ifndef sys_rt_sigsuspend
-asmlinkage long sys_rt_sigsuspend(sigset_t __user *unewset, size_t sigsetsize);
-#endif
-
-#ifndef sys_rt_sigaction
-asmlinkage long sys_rt_sigaction(int sig, const struct sigaction __user *act,
- struct sigaction __user *oact, size_t sigsetsize);
-#endif
-
-#endif /* __ASM_GENERIC_SYSCALLS_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/termbits.h b/ANDROID_3.4.5/include/asm-generic/termbits.h
deleted file mode 100644
index 232b4781..00000000
--- a/ANDROID_3.4.5/include/asm-generic/termbits.h
+++ /dev/null
@@ -1,199 +0,0 @@
-#ifndef __ASM_GENERIC_TERMBITS_H
-#define __ASM_GENERIC_TERMBITS_H
-
-#include <linux/posix_types.h>
-
-typedef unsigned char cc_t;
-typedef unsigned int speed_t;
-typedef unsigned int tcflag_t;
-
-#define NCCS 19
-struct termios {
- tcflag_t c_iflag; /* input mode flags */
- tcflag_t c_oflag; /* output mode flags */
- tcflag_t c_cflag; /* control mode flags */
- tcflag_t c_lflag; /* local mode flags */
- cc_t c_line; /* line discipline */
- cc_t c_cc[NCCS]; /* control characters */
-};
-
-struct termios2 {
- tcflag_t c_iflag; /* input mode flags */
- tcflag_t c_oflag; /* output mode flags */
- tcflag_t c_cflag; /* control mode flags */
- tcflag_t c_lflag; /* local mode flags */
- cc_t c_line; /* line discipline */
- cc_t c_cc[NCCS]; /* control characters */
- speed_t c_ispeed; /* input speed */
- speed_t c_ospeed; /* output speed */
-};
-
-struct ktermios {
- tcflag_t c_iflag; /* input mode flags */
- tcflag_t c_oflag; /* output mode flags */
- tcflag_t c_cflag; /* control mode flags */
- tcflag_t c_lflag; /* local mode flags */
- cc_t c_line; /* line discipline */
- cc_t c_cc[NCCS]; /* control characters */
- speed_t c_ispeed; /* input speed */
- speed_t c_ospeed; /* output speed */
-};
-
-/* c_cc characters */
-#define VINTR 0
-#define VQUIT 1
-#define VERASE 2
-#define VKILL 3
-#define VEOF 4
-#define VTIME 5
-#define VMIN 6
-#define VSWTC 7
-#define VSTART 8
-#define VSTOP 9
-#define VSUSP 10
-#define VEOL 11
-#define VREPRINT 12
-#define VDISCARD 13
-#define VWERASE 14
-#define VLNEXT 15
-#define VEOL2 16
-
-/* c_iflag bits */
-#define IGNBRK 0000001
-#define BRKINT 0000002
-#define IGNPAR 0000004
-#define PARMRK 0000010
-#define INPCK 0000020
-#define ISTRIP 0000040
-#define INLCR 0000100
-#define IGNCR 0000200
-#define ICRNL 0000400
-#define IUCLC 0001000
-#define IXON 0002000
-#define IXANY 0004000
-#define IXOFF 0010000
-#define IMAXBEL 0020000
-#define IUTF8 0040000
-
-/* c_oflag bits */
-#define OPOST 0000001
-#define OLCUC 0000002
-#define ONLCR 0000004
-#define OCRNL 0000010
-#define ONOCR 0000020
-#define ONLRET 0000040
-#define OFILL 0000100
-#define OFDEL 0000200
-#define NLDLY 0000400
-#define NL0 0000000
-#define NL1 0000400
-#define CRDLY 0003000
-#define CR0 0000000
-#define CR1 0001000
-#define CR2 0002000
-#define CR3 0003000
-#define TABDLY 0014000
-#define TAB0 0000000
-#define TAB1 0004000
-#define TAB2 0010000
-#define TAB3 0014000
-#define XTABS 0014000
-#define BSDLY 0020000
-#define BS0 0000000
-#define BS1 0020000
-#define VTDLY 0040000
-#define VT0 0000000
-#define VT1 0040000
-#define FFDLY 0100000
-#define FF0 0000000
-#define FF1 0100000
-
-/* c_cflag bit meaning */
-#define CBAUD 0010017
-#define B0 0000000 /* hang up */
-#define B50 0000001
-#define B75 0000002
-#define B110 0000003
-#define B134 0000004
-#define B150 0000005
-#define B200 0000006
-#define B300 0000007
-#define B600 0000010
-#define B1200 0000011
-#define B1800 0000012
-#define B2400 0000013
-#define B4800 0000014
-#define B9600 0000015
-#define B19200 0000016
-#define B38400 0000017
-#define EXTA B19200
-#define EXTB B38400
-#define CSIZE 0000060
-#define CS5 0000000
-#define CS6 0000020
-#define CS7 0000040
-#define CS8 0000060
-#define CSTOPB 0000100
-#define CREAD 0000200
-#define PARENB 0000400
-#define PARODD 0001000
-#define HUPCL 0002000
-#define CLOCAL 0004000
-#define CBAUDEX 0010000
-#define BOTHER 0010000
-#define B57600 0010001
-#define B115200 0010002
-#define B230400 0010003
-#define B460800 0010004
-#define B500000 0010005
-#define B576000 0010006
-#define B921600 0010007
-#define B1000000 0010010
-#define B1152000 0010011
-#define B1500000 0010012
-#define B2000000 0010013
-#define B2500000 0010014
-#define B3000000 0010015
-#define B3500000 0010016
-#define B4000000 0010017
-#define CIBAUD 002003600000 /* input baud rate */
-#define CMSPAR 010000000000 /* mark or space (stick) parity */
-#define CRTSCTS 020000000000 /* flow control */
-
-#define IBSHIFT 16 /* Shift from CBAUD to CIBAUD */
-
-/* c_lflag bits */
-#define ISIG 0000001
-#define ICANON 0000002
-#define XCASE 0000004
-#define ECHO 0000010
-#define ECHOE 0000020
-#define ECHOK 0000040
-#define ECHONL 0000100
-#define NOFLSH 0000200
-#define TOSTOP 0000400
-#define ECHOCTL 0001000
-#define ECHOPRT 0002000
-#define ECHOKE 0004000
-#define FLUSHO 0010000
-#define PENDIN 0040000
-#define IEXTEN 0100000
-#define EXTPROC 0200000
-
-/* tcflow() and TCXONC use these */
-#define TCOOFF 0
-#define TCOON 1
-#define TCIOFF 2
-#define TCION 3
-
-/* tcflush() and TCFLSH use these */
-#define TCIFLUSH 0
-#define TCOFLUSH 1
-#define TCIOFLUSH 2
-
-/* tcsetattr uses these */
-#define TCSANOW 0
-#define TCSADRAIN 1
-#define TCSAFLUSH 2
-
-#endif /* __ASM_GENERIC_TERMBITS_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/termios-base.h b/ANDROID_3.4.5/include/asm-generic/termios-base.h
deleted file mode 100644
index 0a769feb..00000000
--- a/ANDROID_3.4.5/include/asm-generic/termios-base.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/* termios.h: generic termios/termio user copying/translation
- */
-
-#ifndef _ASM_GENERIC_TERMIOS_BASE_H
-#define _ASM_GENERIC_TERMIOS_BASE_H
-
-#include <asm/uaccess.h>
-
-#ifndef __ARCH_TERMIO_GETPUT
-
-/*
- * Translate a "termio" structure into a "termios". Ugh.
- */
-static inline int user_termio_to_kernel_termios(struct ktermios *termios,
- struct termio __user *termio)
-{
- unsigned short tmp;
-
- if (get_user(tmp, &termio->c_iflag) < 0)
- goto fault;
- termios->c_iflag = (0xffff0000 & termios->c_iflag) | tmp;
-
- if (get_user(tmp, &termio->c_oflag) < 0)
- goto fault;
- termios->c_oflag = (0xffff0000 & termios->c_oflag) | tmp;
-
- if (get_user(tmp, &termio->c_cflag) < 0)
- goto fault;
- termios->c_cflag = (0xffff0000 & termios->c_cflag) | tmp;
-
- if (get_user(tmp, &termio->c_lflag) < 0)
- goto fault;
- termios->c_lflag = (0xffff0000 & termios->c_lflag) | tmp;
-
- if (get_user(termios->c_line, &termio->c_line) < 0)
- goto fault;
-
- if (copy_from_user(termios->c_cc, termio->c_cc, NCC) != 0)
- goto fault;
-
- return 0;
-
- fault:
- return -EFAULT;
-}
-
-/*
- * Translate a "termios" structure into a "termio". Ugh.
- */
-static inline int kernel_termios_to_user_termio(struct termio __user *termio,
- struct ktermios *termios)
-{
- if (put_user(termios->c_iflag, &termio->c_iflag) < 0 ||
- put_user(termios->c_oflag, &termio->c_oflag) < 0 ||
- put_user(termios->c_cflag, &termio->c_cflag) < 0 ||
- put_user(termios->c_lflag, &termio->c_lflag) < 0 ||
- put_user(termios->c_line, &termio->c_line) < 0 ||
- copy_to_user(termio->c_cc, termios->c_cc, NCC) != 0)
- return -EFAULT;
-
- return 0;
-}
-
-#ifndef user_termios_to_kernel_termios
-#define user_termios_to_kernel_termios(k, u) copy_from_user(k, u, sizeof(struct termios))
-#endif
-
-#ifndef kernel_termios_to_user_termios
-#define kernel_termios_to_user_termios(u, k) copy_to_user(u, k, sizeof(struct termios))
-#endif
-
-#define user_termios_to_kernel_termios_1(k, u) copy_from_user(k, u, sizeof(struct termios))
-#define kernel_termios_to_user_termios_1(u, k) copy_to_user(u, k, sizeof(struct termios))
-
-#endif /* __ARCH_TERMIO_GETPUT */
-
-#endif /* _ASM_GENERIC_TERMIOS_BASE_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/termios.h b/ANDROID_3.4.5/include/asm-generic/termios.h
deleted file mode 100644
index d0922adc..00000000
--- a/ANDROID_3.4.5/include/asm-generic/termios.h
+++ /dev/null
@@ -1,154 +0,0 @@
-#ifndef _ASM_GENERIC_TERMIOS_H
-#define _ASM_GENERIC_TERMIOS_H
-/*
- * Most architectures have straight copies of the x86 code, with
- * varying levels of bug fixes on top. Usually it's a good idea
- * to use this generic version instead, but be careful to avoid
- * ABI changes.
- * New architectures should not provide their own version.
- */
-
-#include <asm/termbits.h>
-#include <asm/ioctls.h>
-
-struct winsize {
- unsigned short ws_row;
- unsigned short ws_col;
- unsigned short ws_xpixel;
- unsigned short ws_ypixel;
-};
-
-#define NCC 8
-struct termio {
- unsigned short c_iflag; /* input mode flags */
- unsigned short c_oflag; /* output mode flags */
- unsigned short c_cflag; /* control mode flags */
- unsigned short c_lflag; /* local mode flags */
- unsigned char c_line; /* line discipline */
- unsigned char c_cc[NCC]; /* control characters */
-};
-
-/* modem lines */
-#define TIOCM_LE 0x001
-#define TIOCM_DTR 0x002
-#define TIOCM_RTS 0x004
-#define TIOCM_ST 0x008
-#define TIOCM_SR 0x010
-#define TIOCM_CTS 0x020
-#define TIOCM_CAR 0x040
-#define TIOCM_RNG 0x080
-#define TIOCM_DSR 0x100
-#define TIOCM_CD TIOCM_CAR
-#define TIOCM_RI TIOCM_RNG
-#define TIOCM_OUT1 0x2000
-#define TIOCM_OUT2 0x4000
-#define TIOCM_LOOP 0x8000
-
-/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
-
-#ifdef __KERNEL__
-
-#include <asm/uaccess.h>
-
-/* intr=^C quit=^\ erase=del kill=^U
- eof=^D vtime=\0 vmin=\1 sxtc=\0
- start=^Q stop=^S susp=^Z eol=\0
- reprint=^R discard=^U werase=^W lnext=^V
- eol2=\0
-*/
-#define INIT_C_CC "\003\034\177\025\004\0\1\0\021\023\032\0\022\017\027\026\0"
-
-/*
- * Translate a "termio" structure into a "termios". Ugh.
- */
-static inline int user_termio_to_kernel_termios(struct ktermios *termios,
- const struct termio __user *termio)
-{
- unsigned short tmp;
-
- if (get_user(tmp, &termio->c_iflag) < 0)
- goto fault;
- termios->c_iflag = (0xffff0000 & termios->c_iflag) | tmp;
-
- if (get_user(tmp, &termio->c_oflag) < 0)
- goto fault;
- termios->c_oflag = (0xffff0000 & termios->c_oflag) | tmp;
-
- if (get_user(tmp, &termio->c_cflag) < 0)
- goto fault;
- termios->c_cflag = (0xffff0000 & termios->c_cflag) | tmp;
-
- if (get_user(tmp, &termio->c_lflag) < 0)
- goto fault;
- termios->c_lflag = (0xffff0000 & termios->c_lflag) | tmp;
-
- if (get_user(termios->c_line, &termio->c_line) < 0)
- goto fault;
-
- if (copy_from_user(termios->c_cc, termio->c_cc, NCC) != 0)
- goto fault;
-
- return 0;
-
- fault:
- return -EFAULT;
-}
-
-/*
- * Translate a "termios" structure into a "termio". Ugh.
- */
-static inline int kernel_termios_to_user_termio(struct termio __user *termio,
- struct ktermios *termios)
-{
- if (put_user(termios->c_iflag, &termio->c_iflag) < 0 ||
- put_user(termios->c_oflag, &termio->c_oflag) < 0 ||
- put_user(termios->c_cflag, &termio->c_cflag) < 0 ||
- put_user(termios->c_lflag, &termio->c_lflag) < 0 ||
- put_user(termios->c_line, &termio->c_line) < 0 ||
- copy_to_user(termio->c_cc, termios->c_cc, NCC) != 0)
- return -EFAULT;
-
- return 0;
-}
-
-#ifdef TCGETS2
-static inline int user_termios_to_kernel_termios(struct ktermios *k,
- struct termios2 __user *u)
-{
- return copy_from_user(k, u, sizeof(struct termios2));
-}
-
-static inline int kernel_termios_to_user_termios(struct termios2 __user *u,
- struct ktermios *k)
-{
- return copy_to_user(u, k, sizeof(struct termios2));
-}
-
-static inline int user_termios_to_kernel_termios_1(struct ktermios *k,
- struct termios __user *u)
-{
- return copy_from_user(k, u, sizeof(struct termios));
-}
-
-static inline int kernel_termios_to_user_termios_1(struct termios __user *u,
- struct ktermios *k)
-{
- return copy_to_user(u, k, sizeof(struct termios));
-}
-#else /* TCGETS2 */
-static inline int user_termios_to_kernel_termios(struct ktermios *k,
- struct termios __user *u)
-{
- return copy_from_user(k, u, sizeof(struct termios));
-}
-
-static inline int kernel_termios_to_user_termios(struct termios __user *u,
- struct ktermios *k)
-{
- return copy_to_user(u, k, sizeof(struct termios));
-}
-#endif /* TCGETS2 */
-
-#endif /* __KERNEL__ */
-
-#endif /* _ASM_GENERIC_TERMIOS_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/timex.h b/ANDROID_3.4.5/include/asm-generic/timex.h
deleted file mode 100644
index b2243cb8..00000000
--- a/ANDROID_3.4.5/include/asm-generic/timex.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef __ASM_GENERIC_TIMEX_H
-#define __ASM_GENERIC_TIMEX_H
-
-/*
- * If you have a cycle counter, return the value here.
- */
-typedef unsigned long cycles_t;
-#ifndef get_cycles
-static inline cycles_t get_cycles(void)
-{
- return 0;
-}
-#endif
-
-/*
- * Architectures are encouraged to implement read_current_timer
- * and define this in order to avoid the expensive delay loop
- * calibration during boot.
- */
-#undef ARCH_HAS_READ_CURRENT_TIMER
-
-#endif /* __ASM_GENERIC_TIMEX_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/tlb.h b/ANDROID_3.4.5/include/asm-generic/tlb.h
deleted file mode 100644
index f96a5b58..00000000
--- a/ANDROID_3.4.5/include/asm-generic/tlb.h
+++ /dev/null
@@ -1,178 +0,0 @@
-/* include/asm-generic/tlb.h
- *
- * Generic TLB shootdown code
- *
- * Copyright 2001 Red Hat, Inc.
- * Based on code from mm/memory.c Copyright Linus Torvalds and others.
- *
- * Copyright 2011 Red Hat, Inc., Peter Zijlstra <pzijlstr@redhat.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 _ASM_GENERIC__TLB_H
-#define _ASM_GENERIC__TLB_H
-
-#include <linux/swap.h>
-#include <asm/pgalloc.h>
-#include <asm/tlbflush.h>
-
-#ifdef CONFIG_HAVE_RCU_TABLE_FREE
-/*
- * Semi RCU freeing of the page directories.
- *
- * This is needed by some architectures to implement software pagetable walkers.
- *
- * gup_fast() and other software pagetable walkers do a lockless page-table
- * walk and therefore needs some synchronization with the freeing of the page
- * directories. The chosen means to accomplish that is by disabling IRQs over
- * the walk.
- *
- * Architectures that use IPIs to flush TLBs will then automagically DTRT,
- * since we unlink the page, flush TLBs, free the page. Since the disabling of
- * IRQs delays the completion of the TLB flush we can never observe an already
- * freed page.
- *
- * Architectures that do not have this (PPC) need to delay the freeing by some
- * other means, this is that means.
- *
- * What we do is batch the freed directory pages (tables) and RCU free them.
- * We use the sched RCU variant, as that guarantees that IRQ/preempt disabling
- * holds off grace periods.
- *
- * However, in order to batch these pages we need to allocate storage, this
- * allocation is deep inside the MM code and can thus easily fail on memory
- * pressure. To guarantee progress we fall back to single table freeing, see
- * the implementation of tlb_remove_table_one().
- *
- */
-struct mmu_table_batch {
- struct rcu_head rcu;
- unsigned int nr;
- void *tables[0];
-};
-
-#define MAX_TABLE_BATCH \
- ((PAGE_SIZE - sizeof(struct mmu_table_batch)) / sizeof(void *))
-
-extern void tlb_table_flush(struct mmu_gather *tlb);
-extern void tlb_remove_table(struct mmu_gather *tlb, void *table);
-
-#endif
-
-/*
- * If we can't allocate a page to make a big batch of page pointers
- * to work on, then just handle a few from the on-stack structure.
- */
-#define MMU_GATHER_BUNDLE 8
-
-struct mmu_gather_batch {
- struct mmu_gather_batch *next;
- unsigned int nr;
- unsigned int max;
- struct page *pages[0];
-};
-
-#define MAX_GATHER_BATCH \
- ((PAGE_SIZE - sizeof(struct mmu_gather_batch)) / sizeof(void *))
-
-/* struct mmu_gather is an opaque type used by the mm code for passing around
- * any data needed by arch specific code for tlb_remove_page.
- */
-struct mmu_gather {
- struct mm_struct *mm;
-#ifdef CONFIG_HAVE_RCU_TABLE_FREE
- struct mmu_table_batch *batch;
-#endif
- unsigned int need_flush : 1, /* Did free PTEs */
- fast_mode : 1; /* No batching */
-
- unsigned int fullmm;
-
- struct mmu_gather_batch *active;
- struct mmu_gather_batch local;
- struct page *__pages[MMU_GATHER_BUNDLE];
-};
-
-#define HAVE_GENERIC_MMU_GATHER
-
-static inline int tlb_fast_mode(struct mmu_gather *tlb)
-{
-#ifdef CONFIG_SMP
- return tlb->fast_mode;
-#else
- /*
- * For UP we don't need to worry about TLB flush
- * and page free order so much..
- */
- return 1;
-#endif
-}
-
-void tlb_gather_mmu(struct mmu_gather *tlb, struct mm_struct *mm, bool fullmm);
-void tlb_flush_mmu(struct mmu_gather *tlb);
-void tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end);
-int __tlb_remove_page(struct mmu_gather *tlb, struct page *page);
-
-/* tlb_remove_page
- * Similar to __tlb_remove_page but will call tlb_flush_mmu() itself when
- * required.
- */
-static inline void tlb_remove_page(struct mmu_gather *tlb, struct page *page)
-{
- if (!__tlb_remove_page(tlb, page))
- tlb_flush_mmu(tlb);
-}
-
-/**
- * tlb_remove_tlb_entry - remember a pte unmapping for later tlb invalidation.
- *
- * Record the fact that pte's were really umapped in ->need_flush, so we can
- * later optimise away the tlb invalidate. This helps when userspace is
- * unmapping already-unmapped pages, which happens quite a lot.
- */
-#define tlb_remove_tlb_entry(tlb, ptep, address) \
- do { \
- tlb->need_flush = 1; \
- __tlb_remove_tlb_entry(tlb, ptep, address); \
- } while (0)
-
-/**
- * tlb_remove_pmd_tlb_entry - remember a pmd mapping for later tlb invalidation
- * This is a nop so far, because only x86 needs it.
- */
-#ifndef __tlb_remove_pmd_tlb_entry
-#define __tlb_remove_pmd_tlb_entry(tlb, pmdp, address) do {} while (0)
-#endif
-
-#define tlb_remove_pmd_tlb_entry(tlb, pmdp, address) \
- do { \
- tlb->need_flush = 1; \
- __tlb_remove_pmd_tlb_entry(tlb, pmdp, address); \
- } while (0)
-
-#define pte_free_tlb(tlb, ptep, address) \
- do { \
- tlb->need_flush = 1; \
- __pte_free_tlb(tlb, ptep, address); \
- } while (0)
-
-#ifndef __ARCH_HAS_4LEVEL_HACK
-#define pud_free_tlb(tlb, pudp, address) \
- do { \
- tlb->need_flush = 1; \
- __pud_free_tlb(tlb, pudp, address); \
- } while (0)
-#endif
-
-#define pmd_free_tlb(tlb, pmdp, address) \
- do { \
- tlb->need_flush = 1; \
- __pmd_free_tlb(tlb, pmdp, address); \
- } while (0)
-
-#define tlb_migrate_finish(mm) do {} while (0)
-
-#endif /* _ASM_GENERIC__TLB_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/tlbflush.h b/ANDROID_3.4.5/include/asm-generic/tlbflush.h
deleted file mode 100644
index d6d0a884..00000000
--- a/ANDROID_3.4.5/include/asm-generic/tlbflush.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef __ASM_GENERIC_TLBFLUSH_H
-#define __ASM_GENERIC_TLBFLUSH_H
-/*
- * This is a dummy tlbflush implementation that can be used on all
- * nommu architectures.
- * If you have an MMU, you need to write your own functions.
- */
-#ifdef CONFIG_MMU
-#error need to implement an architecture specific asm/tlbflush.h
-#endif
-
-#include <linux/bug.h>
-
-static inline void flush_tlb_mm(struct mm_struct *mm)
-{
- BUG();
-}
-
-
-#endif /* __ASM_GENERIC_TLBFLUSH_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/topology.h b/ANDROID_3.4.5/include/asm-generic/topology.h
deleted file mode 100644
index fc824e28..00000000
--- a/ANDROID_3.4.5/include/asm-generic/topology.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * linux/include/asm-generic/topology.h
- *
- * Written by: Matthew Dobson, IBM Corporation
- *
- * Copyright (C) 2002, IBM Corp.
- *
- * 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, GOOD TITLE or
- * NON INFRINGEMENT. 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.
- *
- * Send feedback to <colpatch@us.ibm.com>
- */
-#ifndef _ASM_GENERIC_TOPOLOGY_H
-#define _ASM_GENERIC_TOPOLOGY_H
-
-#ifndef CONFIG_NUMA
-
-/* Other architectures wishing to use this simple topology API should fill
- in the below functions as appropriate in their own <asm/topology.h> file. */
-#ifndef cpu_to_node
-#define cpu_to_node(cpu) ((void)(cpu),0)
-#endif
-#ifndef set_numa_node
-#define set_numa_node(node)
-#endif
-#ifndef set_cpu_numa_node
-#define set_cpu_numa_node(cpu, node)
-#endif
-#ifndef cpu_to_mem
-#define cpu_to_mem(cpu) ((void)(cpu),0)
-#endif
-
-#ifndef parent_node
-#define parent_node(node) ((void)(node),0)
-#endif
-#ifndef cpumask_of_node
-#define cpumask_of_node(node) ((void)node, cpu_online_mask)
-#endif
-#ifndef pcibus_to_node
-#define pcibus_to_node(bus) ((void)(bus), -1)
-#endif
-
-#ifndef cpumask_of_pcibus
-#define cpumask_of_pcibus(bus) (pcibus_to_node(bus) == -1 ? \
- cpu_all_mask : \
- cpumask_of_node(pcibus_to_node(bus)))
-#endif
-
-#endif /* CONFIG_NUMA */
-
-#if !defined(CONFIG_NUMA) || !defined(CONFIG_HAVE_MEMORYLESS_NODES)
-
-#ifndef set_numa_mem
-#define set_numa_mem(node)
-#endif
-#ifndef set_cpu_numa_mem
-#define set_cpu_numa_mem(cpu, node)
-#endif
-
-#endif /* !CONFIG_NUMA || !CONFIG_HAVE_MEMORYLESS_NODES */
-
-#endif /* _ASM_GENERIC_TOPOLOGY_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/types.h b/ANDROID_3.4.5/include/asm-generic/types.h
deleted file mode 100644
index bd398060..00000000
--- a/ANDROID_3.4.5/include/asm-generic/types.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef _ASM_GENERIC_TYPES_H
-#define _ASM_GENERIC_TYPES_H
-/*
- * int-ll64 is used practically everywhere now,
- * so use it as a reasonable default.
- */
-#include <asm-generic/int-ll64.h>
-
-#endif /* _ASM_GENERIC_TYPES_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/uaccess-unaligned.h b/ANDROID_3.4.5/include/asm-generic/uaccess-unaligned.h
deleted file mode 100644
index 67deb898..00000000
--- a/ANDROID_3.4.5/include/asm-generic/uaccess-unaligned.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef __ASM_GENERIC_UACCESS_UNALIGNED_H
-#define __ASM_GENERIC_UACCESS_UNALIGNED_H
-
-/*
- * This macro should be used instead of __get_user() when accessing
- * values at locations that are not known to be aligned.
- */
-#define __get_user_unaligned(x, ptr) \
-({ \
- __typeof__ (*(ptr)) __x; \
- __copy_from_user(&__x, (ptr), sizeof(*(ptr))) ? -EFAULT : 0; \
- (x) = __x; \
-})
-
-
-/*
- * This macro should be used instead of __put_user() when accessing
- * values at locations that are not known to be aligned.
- */
-#define __put_user_unaligned(x, ptr) \
-({ \
- __typeof__ (*(ptr)) __x = (x); \
- __copy_to_user((ptr), &__x, sizeof(*(ptr))) ? -EFAULT : 0; \
-})
-
-#endif /* __ASM_GENERIC_UACCESS_UNALIGNED_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/uaccess.h b/ANDROID_3.4.5/include/asm-generic/uaccess.h
deleted file mode 100644
index 9788568f..00000000
--- a/ANDROID_3.4.5/include/asm-generic/uaccess.h
+++ /dev/null
@@ -1,334 +0,0 @@
-#ifndef __ASM_GENERIC_UACCESS_H
-#define __ASM_GENERIC_UACCESS_H
-
-/*
- * User space memory access functions, these should work
- * on a ny machine that has kernel and user data in the same
- * address space, e.g. all NOMMU machines.
- */
-#include <linux/sched.h>
-#include <linux/mm.h>
-#include <linux/string.h>
-
-#include <asm/segment.h>
-
-#define MAKE_MM_SEG(s) ((mm_segment_t) { (s) })
-
-#ifndef KERNEL_DS
-#define KERNEL_DS MAKE_MM_SEG(~0UL)
-#endif
-
-#ifndef USER_DS
-#define USER_DS MAKE_MM_SEG(TASK_SIZE - 1)
-#endif
-
-#ifndef get_fs
-#define get_ds() (KERNEL_DS)
-#define get_fs() (current_thread_info()->addr_limit)
-
-static inline void set_fs(mm_segment_t fs)
-{
- current_thread_info()->addr_limit = fs;
-}
-#endif
-
-#define segment_eq(a, b) ((a).seg == (b).seg)
-
-#define VERIFY_READ 0
-#define VERIFY_WRITE 1
-
-#define access_ok(type, addr, size) __access_ok((unsigned long)(addr),(size))
-
-/*
- * The architecture should really override this if possible, at least
- * doing a check on the get_fs()
- */
-#ifndef __access_ok
-static inline int __access_ok(unsigned long addr, unsigned long size)
-{
- return 1;
-}
-#endif
-
-/*
- * The exception table consists of pairs of addresses: the first is the
- * address of an instruction that is allowed to fault, and the second is
- * the address at which the program should continue. No registers are
- * modified, so it is entirely up to the continuation code to figure out
- * what to do.
- *
- * All the routines below use bits of fixup code that are out of line
- * with the main instruction path. This means when everything is well,
- * we don't even have to jump over them. Further, they do not intrude
- * on our cache or tlb entries.
- */
-
-struct exception_table_entry
-{
- unsigned long insn, fixup;
-};
-
-/* Returns 0 if exception not found and fixup otherwise. */
-extern unsigned long search_exception_table(unsigned long);
-
-/*
- * architectures with an MMU should override these two
- */
-#ifndef __copy_from_user
-static inline __must_check long __copy_from_user(void *to,
- const void __user * from, unsigned long n)
-{
- if (__builtin_constant_p(n)) {
- switch(n) {
- case 1:
- *(u8 *)to = *(u8 __force *)from;
- return 0;
- case 2:
- *(u16 *)to = *(u16 __force *)from;
- return 0;
- case 4:
- *(u32 *)to = *(u32 __force *)from;
- return 0;
-#ifdef CONFIG_64BIT
- case 8:
- *(u64 *)to = *(u64 __force *)from;
- return 0;
-#endif
- default:
- break;
- }
- }
-
- memcpy(to, (const void __force *)from, n);
- return 0;
-}
-#endif
-
-#ifndef __copy_to_user
-static inline __must_check long __copy_to_user(void __user *to,
- const void *from, unsigned long n)
-{
- if (__builtin_constant_p(n)) {
- switch(n) {
- case 1:
- *(u8 __force *)to = *(u8 *)from;
- return 0;
- case 2:
- *(u16 __force *)to = *(u16 *)from;
- return 0;
- case 4:
- *(u32 __force *)to = *(u32 *)from;
- return 0;
-#ifdef CONFIG_64BIT
- case 8:
- *(u64 __force *)to = *(u64 *)from;
- return 0;
-#endif
- default:
- break;
- }
- }
-
- memcpy((void __force *)to, from, n);
- return 0;
-}
-#endif
-
-/*
- * These are the main single-value transfer routines. They automatically
- * use the right size if we just have the right pointer type.
- * This version just falls back to copy_{from,to}_user, which should
- * provide a fast-path for small values.
- */
-#define __put_user(x, ptr) \
-({ \
- __typeof__(*(ptr)) __x = (x); \
- int __pu_err = -EFAULT; \
- __chk_user_ptr(ptr); \
- switch (sizeof (*(ptr))) { \
- case 1: \
- case 2: \
- case 4: \
- case 8: \
- __pu_err = __put_user_fn(sizeof (*(ptr)), \
- ptr, &__x); \
- break; \
- default: \
- __put_user_bad(); \
- break; \
- } \
- __pu_err; \
-})
-
-#define put_user(x, ptr) \
-({ \
- might_sleep(); \
- access_ok(VERIFY_WRITE, ptr, sizeof(*ptr)) ? \
- __put_user(x, ptr) : \
- -EFAULT; \
-})
-
-static inline int __put_user_fn(size_t size, void __user *ptr, void *x)
-{
- size = __copy_to_user(ptr, x, size);
- return size ? -EFAULT : size;
-}
-
-extern int __put_user_bad(void) __attribute__((noreturn));
-
-#define __get_user(x, ptr) \
-({ \
- int __gu_err = -EFAULT; \
- __chk_user_ptr(ptr); \
- switch (sizeof(*(ptr))) { \
- case 1: { \
- unsigned char __x; \
- __gu_err = __get_user_fn(sizeof (*(ptr)), \
- ptr, &__x); \
- (x) = *(__force __typeof__(*(ptr)) *) &__x; \
- break; \
- }; \
- case 2: { \
- unsigned short __x; \
- __gu_err = __get_user_fn(sizeof (*(ptr)), \
- ptr, &__x); \
- (x) = *(__force __typeof__(*(ptr)) *) &__x; \
- break; \
- }; \
- case 4: { \
- unsigned int __x; \
- __gu_err = __get_user_fn(sizeof (*(ptr)), \
- ptr, &__x); \
- (x) = *(__force __typeof__(*(ptr)) *) &__x; \
- break; \
- }; \
- case 8: { \
- unsigned long long __x; \
- __gu_err = __get_user_fn(sizeof (*(ptr)), \
- ptr, &__x); \
- (x) = *(__force __typeof__(*(ptr)) *) &__x; \
- break; \
- }; \
- default: \
- __get_user_bad(); \
- break; \
- } \
- __gu_err; \
-})
-
-#define get_user(x, ptr) \
-({ \
- might_sleep(); \
- access_ok(VERIFY_READ, ptr, sizeof(*ptr)) ? \
- __get_user(x, ptr) : \
- -EFAULT; \
-})
-
-static inline int __get_user_fn(size_t size, const void __user *ptr, void *x)
-{
- size = __copy_from_user(x, ptr, size);
- return size ? -EFAULT : size;
-}
-
-extern int __get_user_bad(void) __attribute__((noreturn));
-
-#ifndef __copy_from_user_inatomic
-#define __copy_from_user_inatomic __copy_from_user
-#endif
-
-#ifndef __copy_to_user_inatomic
-#define __copy_to_user_inatomic __copy_to_user
-#endif
-
-static inline long copy_from_user(void *to,
- const void __user * from, unsigned long n)
-{
- might_sleep();
- if (access_ok(VERIFY_READ, from, n))
- return __copy_from_user(to, from, n);
- else
- return n;
-}
-
-static inline long copy_to_user(void __user *to,
- const void *from, unsigned long n)
-{
- might_sleep();
- if (access_ok(VERIFY_WRITE, to, n))
- return __copy_to_user(to, from, n);
- else
- return n;
-}
-
-/*
- * Copy a null terminated string from userspace.
- */
-#ifndef __strncpy_from_user
-static inline long
-__strncpy_from_user(char *dst, const char __user *src, long count)
-{
- char *tmp;
- strncpy(dst, (const char __force *)src, count);
- for (tmp = dst; *tmp && count > 0; tmp++, count--)
- ;
- return (tmp - dst);
-}
-#endif
-
-static inline long
-strncpy_from_user(char *dst, const char __user *src, long count)
-{
- if (!access_ok(VERIFY_READ, src, 1))
- return -EFAULT;
- return __strncpy_from_user(dst, src, count);
-}
-
-/*
- * Return the size of a string (including the ending 0)
- *
- * Return 0 on exception, a value greater than N if too long
- */
-#ifndef __strnlen_user
-#define __strnlen_user(s, n) (strnlen((s), (n)) + 1)
-#endif
-
-/*
- * Unlike strnlen, strnlen_user includes the nul terminator in
- * its returned count. Callers should check for a returned value
- * greater than N as an indication the string is too long.
- */
-static inline long strnlen_user(const char __user *src, long n)
-{
- if (!access_ok(VERIFY_READ, src, 1))
- return 0;
- return __strnlen_user(src, n);
-}
-
-static inline long strlen_user(const char __user *src)
-{
- return strnlen_user(src, 32767);
-}
-
-/*
- * Zero Userspace
- */
-#ifndef __clear_user
-static inline __must_check unsigned long
-__clear_user(void __user *to, unsigned long n)
-{
- memset((void __force *)to, 0, n);
- return 0;
-}
-#endif
-
-static inline __must_check unsigned long
-clear_user(void __user *to, unsigned long n)
-{
- might_sleep();
- if (!access_ok(VERIFY_WRITE, to, n))
- return n;
-
- return __clear_user(to, n);
-}
-
-#endif /* __ASM_GENERIC_UACCESS_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/ucontext.h b/ANDROID_3.4.5/include/asm-generic/ucontext.h
deleted file mode 100644
index ad77343e..00000000
--- a/ANDROID_3.4.5/include/asm-generic/ucontext.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef __ASM_GENERIC_UCONTEXT_H
-#define __ASM_GENERIC_UCONTEXT_H
-
-struct ucontext {
- unsigned long uc_flags;
- struct ucontext *uc_link;
- stack_t uc_stack;
- struct sigcontext uc_mcontext;
- sigset_t uc_sigmask; /* mask last for extensibility */
-};
-
-#endif /* __ASM_GENERIC_UCONTEXT_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/unaligned.h b/ANDROID_3.4.5/include/asm-generic/unaligned.h
deleted file mode 100644
index 03cf5936..00000000
--- a/ANDROID_3.4.5/include/asm-generic/unaligned.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef __ASM_GENERIC_UNALIGNED_H
-#define __ASM_GENERIC_UNALIGNED_H
-
-/*
- * This is the most generic implementation of unaligned accesses
- * and should work almost anywhere.
- *
- * If an architecture can handle unaligned accesses in hardware,
- * it may want to use the linux/unaligned/access_ok.h implementation
- * instead.
- */
-#include <asm/byteorder.h>
-
-#if defined(__LITTLE_ENDIAN)
-# include <linux/unaligned/le_struct.h>
-# include <linux/unaligned/be_byteshift.h>
-# include <linux/unaligned/generic.h>
-# define get_unaligned __get_unaligned_le
-# define put_unaligned __put_unaligned_le
-#elif defined(__BIG_ENDIAN)
-# include <linux/unaligned/be_struct.h>
-# include <linux/unaligned/le_byteshift.h>
-# include <linux/unaligned/generic.h>
-# define get_unaligned __get_unaligned_be
-# define put_unaligned __put_unaligned_be
-#else
-# error need to define endianess
-#endif
-
-#endif /* __ASM_GENERIC_UNALIGNED_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/unistd.h b/ANDROID_3.4.5/include/asm-generic/unistd.h
deleted file mode 100644
index 991ef01c..00000000
--- a/ANDROID_3.4.5/include/asm-generic/unistd.h
+++ /dev/null
@@ -1,931 +0,0 @@
-#if !defined(_ASM_GENERIC_UNISTD_H) || defined(__SYSCALL)
-#define _ASM_GENERIC_UNISTD_H
-
-#include <asm/bitsperlong.h>
-
-/*
- * This file contains the system call numbers, based on the
- * layout of the x86-64 architecture, which embeds the
- * pointer to the syscall in the table.
- *
- * As a basic principle, no duplication of functionality
- * should be added, e.g. we don't use lseek when llseek
- * is present. New architectures should use this file
- * and implement the less feature-full calls in user space.
- */
-
-#ifndef __SYSCALL
-#define __SYSCALL(x, y)
-#endif
-
-#if __BITS_PER_LONG == 32 || defined(__SYSCALL_COMPAT)
-#define __SC_3264(_nr, _32, _64) __SYSCALL(_nr, _32)
-#else
-#define __SC_3264(_nr, _32, _64) __SYSCALL(_nr, _64)
-#endif
-
-#ifdef __SYSCALL_COMPAT
-#define __SC_COMP(_nr, _sys, _comp) __SYSCALL(_nr, _comp)
-#define __SC_COMP_3264(_nr, _32, _64, _comp) __SYSCALL(_nr, _comp)
-#else
-#define __SC_COMP(_nr, _sys, _comp) __SYSCALL(_nr, _sys)
-#define __SC_COMP_3264(_nr, _32, _64, _comp) __SC_3264(_nr, _32, _64)
-#endif
-
-#define __NR_io_setup 0
-__SC_COMP(__NR_io_setup, sys_io_setup, compat_sys_io_setup)
-#define __NR_io_destroy 1
-__SYSCALL(__NR_io_destroy, sys_io_destroy)
-#define __NR_io_submit 2
-__SC_COMP(__NR_io_submit, sys_io_submit, compat_sys_io_submit)
-#define __NR_io_cancel 3
-__SYSCALL(__NR_io_cancel, sys_io_cancel)
-#define __NR_io_getevents 4
-__SC_COMP(__NR_io_getevents, sys_io_getevents, compat_sys_io_getevents)
-
-/* fs/xattr.c */
-#define __NR_setxattr 5
-__SYSCALL(__NR_setxattr, sys_setxattr)
-#define __NR_lsetxattr 6
-__SYSCALL(__NR_lsetxattr, sys_lsetxattr)
-#define __NR_fsetxattr 7
-__SYSCALL(__NR_fsetxattr, sys_fsetxattr)
-#define __NR_getxattr 8
-__SYSCALL(__NR_getxattr, sys_getxattr)
-#define __NR_lgetxattr 9
-__SYSCALL(__NR_lgetxattr, sys_lgetxattr)
-#define __NR_fgetxattr 10
-__SYSCALL(__NR_fgetxattr, sys_fgetxattr)
-#define __NR_listxattr 11
-__SYSCALL(__NR_listxattr, sys_listxattr)
-#define __NR_llistxattr 12
-__SYSCALL(__NR_llistxattr, sys_llistxattr)
-#define __NR_flistxattr 13
-__SYSCALL(__NR_flistxattr, sys_flistxattr)
-#define __NR_removexattr 14
-__SYSCALL(__NR_removexattr, sys_removexattr)
-#define __NR_lremovexattr 15
-__SYSCALL(__NR_lremovexattr, sys_lremovexattr)
-#define __NR_fremovexattr 16
-__SYSCALL(__NR_fremovexattr, sys_fremovexattr)
-
-/* fs/dcache.c */
-#define __NR_getcwd 17
-__SYSCALL(__NR_getcwd, sys_getcwd)
-
-/* fs/cookies.c */
-#define __NR_lookup_dcookie 18
-__SC_COMP(__NR_lookup_dcookie, sys_lookup_dcookie, compat_sys_lookup_dcookie)
-
-/* fs/eventfd.c */
-#define __NR_eventfd2 19
-__SYSCALL(__NR_eventfd2, sys_eventfd2)
-
-/* fs/eventpoll.c */
-#define __NR_epoll_create1 20
-__SYSCALL(__NR_epoll_create1, sys_epoll_create1)
-#define __NR_epoll_ctl 21
-__SYSCALL(__NR_epoll_ctl, sys_epoll_ctl)
-#define __NR_epoll_pwait 22
-__SC_COMP(__NR_epoll_pwait, sys_epoll_pwait, compat_sys_epoll_pwait)
-
-/* fs/fcntl.c */
-#define __NR_dup 23
-__SYSCALL(__NR_dup, sys_dup)
-#define __NR_dup3 24
-__SYSCALL(__NR_dup3, sys_dup3)
-#define __NR3264_fcntl 25
-__SC_COMP_3264(__NR3264_fcntl, sys_fcntl64, sys_fcntl, compat_sys_fcntl64)
-
-/* fs/inotify_user.c */
-#define __NR_inotify_init1 26
-__SYSCALL(__NR_inotify_init1, sys_inotify_init1)
-#define __NR_inotify_add_watch 27
-__SYSCALL(__NR_inotify_add_watch, sys_inotify_add_watch)
-#define __NR_inotify_rm_watch 28
-__SYSCALL(__NR_inotify_rm_watch, sys_inotify_rm_watch)
-
-/* fs/ioctl.c */
-#define __NR_ioctl 29
-__SC_COMP(__NR_ioctl, sys_ioctl, compat_sys_ioctl)
-
-/* fs/ioprio.c */
-#define __NR_ioprio_set 30
-__SYSCALL(__NR_ioprio_set, sys_ioprio_set)
-#define __NR_ioprio_get 31
-__SYSCALL(__NR_ioprio_get, sys_ioprio_get)
-
-/* fs/locks.c */
-#define __NR_flock 32
-__SYSCALL(__NR_flock, sys_flock)
-
-/* fs/namei.c */
-#define __NR_mknodat 33
-__SYSCALL(__NR_mknodat, sys_mknodat)
-#define __NR_mkdirat 34
-__SYSCALL(__NR_mkdirat, sys_mkdirat)
-#define __NR_unlinkat 35
-__SYSCALL(__NR_unlinkat, sys_unlinkat)
-#define __NR_symlinkat 36
-__SYSCALL(__NR_symlinkat, sys_symlinkat)
-#define __NR_linkat 37
-__SYSCALL(__NR_linkat, sys_linkat)
-#define __NR_renameat 38
-__SYSCALL(__NR_renameat, sys_renameat)
-
-/* fs/namespace.c */
-#define __NR_umount2 39
-__SYSCALL(__NR_umount2, sys_umount)
-#define __NR_mount 40
-__SC_COMP(__NR_mount, sys_mount, compat_sys_mount)
-#define __NR_pivot_root 41
-__SYSCALL(__NR_pivot_root, sys_pivot_root)
-
-/* fs/nfsctl.c */
-#define __NR_nfsservctl 42
-__SYSCALL(__NR_nfsservctl, sys_ni_syscall)
-
-/* fs/open.c */
-#define __NR3264_statfs 43
-__SC_COMP_3264(__NR3264_statfs, sys_statfs64, sys_statfs, \
- compat_sys_statfs64)
-#define __NR3264_fstatfs 44
-__SC_COMP_3264(__NR3264_fstatfs, sys_fstatfs64, sys_fstatfs, \
- compat_sys_fstatfs64)
-#define __NR3264_truncate 45
-__SC_COMP_3264(__NR3264_truncate, sys_truncate64, sys_truncate, \
- compat_sys_truncate64)
-#define __NR3264_ftruncate 46
-__SC_COMP_3264(__NR3264_ftruncate, sys_ftruncate64, sys_ftruncate, \
- compat_sys_ftruncate64)
-
-#define __NR_fallocate 47
-__SC_COMP(__NR_fallocate, sys_fallocate, compat_sys_fallocate)
-#define __NR_faccessat 48
-__SYSCALL(__NR_faccessat, sys_faccessat)
-#define __NR_chdir 49
-__SYSCALL(__NR_chdir, sys_chdir)
-#define __NR_fchdir 50
-__SYSCALL(__NR_fchdir, sys_fchdir)
-#define __NR_chroot 51
-__SYSCALL(__NR_chroot, sys_chroot)
-#define __NR_fchmod 52
-__SYSCALL(__NR_fchmod, sys_fchmod)
-#define __NR_fchmodat 53
-__SYSCALL(__NR_fchmodat, sys_fchmodat)
-#define __NR_fchownat 54
-__SYSCALL(__NR_fchownat, sys_fchownat)
-#define __NR_fchown 55
-__SYSCALL(__NR_fchown, sys_fchown)
-#define __NR_openat 56
-__SC_COMP(__NR_openat, sys_openat, compat_sys_openat)
-#define __NR_close 57
-__SYSCALL(__NR_close, sys_close)
-#define __NR_vhangup 58
-__SYSCALL(__NR_vhangup, sys_vhangup)
-
-/* fs/pipe.c */
-#define __NR_pipe2 59
-__SYSCALL(__NR_pipe2, sys_pipe2)
-
-/* fs/quota.c */
-#define __NR_quotactl 60
-__SYSCALL(__NR_quotactl, sys_quotactl)
-
-/* fs/readdir.c */
-#define __NR_getdents64 61
-__SC_COMP(__NR_getdents64, sys_getdents64, compat_sys_getdents64)
-
-/* fs/read_write.c */
-#define __NR3264_lseek 62
-__SC_3264(__NR3264_lseek, sys_llseek, sys_lseek)
-#define __NR_read 63
-__SYSCALL(__NR_read, sys_read)
-#define __NR_write 64
-__SYSCALL(__NR_write, sys_write)
-#define __NR_readv 65
-__SC_COMP(__NR_readv, sys_readv, compat_sys_readv)
-#define __NR_writev 66
-__SC_COMP(__NR_writev, sys_writev, compat_sys_writev)
-#define __NR_pread64 67
-__SC_COMP(__NR_pread64, sys_pread64, compat_sys_pread64)
-#define __NR_pwrite64 68
-__SC_COMP(__NR_pwrite64, sys_pwrite64, compat_sys_pwrite64)
-#define __NR_preadv 69
-__SC_COMP(__NR_preadv, sys_preadv, compat_sys_preadv)
-#define __NR_pwritev 70
-__SC_COMP(__NR_pwritev, sys_pwritev, compat_sys_pwritev)
-
-/* fs/sendfile.c */
-#define __NR3264_sendfile 71
-__SYSCALL(__NR3264_sendfile, sys_sendfile64)
-
-/* fs/select.c */
-#define __NR_pselect6 72
-__SC_COMP(__NR_pselect6, sys_pselect6, compat_sys_pselect6)
-#define __NR_ppoll 73
-__SC_COMP(__NR_ppoll, sys_ppoll, compat_sys_ppoll)
-
-/* fs/signalfd.c */
-#define __NR_signalfd4 74
-__SC_COMP(__NR_signalfd4, sys_signalfd4, compat_sys_signalfd4)
-
-/* fs/splice.c */
-#define __NR_vmsplice 75
-__SC_COMP(__NR_vmsplice, sys_vmsplice, compat_sys_vmsplice)
-#define __NR_splice 76
-__SYSCALL(__NR_splice, sys_splice)
-#define __NR_tee 77
-__SYSCALL(__NR_tee, sys_tee)
-
-/* fs/stat.c */
-#define __NR_readlinkat 78
-__SYSCALL(__NR_readlinkat, sys_readlinkat)
-#define __NR3264_fstatat 79
-__SC_3264(__NR3264_fstatat, sys_fstatat64, sys_newfstatat)
-#define __NR3264_fstat 80
-__SC_3264(__NR3264_fstat, sys_fstat64, sys_newfstat)
-
-/* fs/sync.c */
-#define __NR_sync 81
-__SYSCALL(__NR_sync, sys_sync)
-#define __NR_fsync 82
-__SYSCALL(__NR_fsync, sys_fsync)
-#define __NR_fdatasync 83
-__SYSCALL(__NR_fdatasync, sys_fdatasync)
-#ifdef __ARCH_WANT_SYNC_FILE_RANGE2
-#define __NR_sync_file_range2 84
-__SC_COMP(__NR_sync_file_range2, sys_sync_file_range2, \
- compat_sys_sync_file_range2)
-#else
-#define __NR_sync_file_range 84
-__SC_COMP(__NR_sync_file_range, sys_sync_file_range, \
- compat_sys_sync_file_range)
-#endif
-
-/* fs/timerfd.c */
-#define __NR_timerfd_create 85
-__SYSCALL(__NR_timerfd_create, sys_timerfd_create)
-#define __NR_timerfd_settime 86
-__SC_COMP(__NR_timerfd_settime, sys_timerfd_settime, \
- compat_sys_timerfd_settime)
-#define __NR_timerfd_gettime 87
-__SC_COMP(__NR_timerfd_gettime, sys_timerfd_gettime, \
- compat_sys_timerfd_gettime)
-
-/* fs/utimes.c */
-#define __NR_utimensat 88
-__SC_COMP(__NR_utimensat, sys_utimensat, compat_sys_utimensat)
-
-/* kernel/acct.c */
-#define __NR_acct 89
-__SYSCALL(__NR_acct, sys_acct)
-
-/* kernel/capability.c */
-#define __NR_capget 90
-__SYSCALL(__NR_capget, sys_capget)
-#define __NR_capset 91
-__SYSCALL(__NR_capset, sys_capset)
-
-/* kernel/exec_domain.c */
-#define __NR_personality 92
-__SYSCALL(__NR_personality, sys_personality)
-
-/* kernel/exit.c */
-#define __NR_exit 93
-__SYSCALL(__NR_exit, sys_exit)
-#define __NR_exit_group 94
-__SYSCALL(__NR_exit_group, sys_exit_group)
-#define __NR_waitid 95
-__SC_COMP(__NR_waitid, sys_waitid, compat_sys_waitid)
-
-/* kernel/fork.c */
-#define __NR_set_tid_address 96
-__SYSCALL(__NR_set_tid_address, sys_set_tid_address)
-#define __NR_unshare 97
-__SYSCALL(__NR_unshare, sys_unshare)
-
-/* kernel/futex.c */
-#define __NR_futex 98
-__SC_COMP(__NR_futex, sys_futex, compat_sys_futex)
-#define __NR_set_robust_list 99
-__SC_COMP(__NR_set_robust_list, sys_set_robust_list, \
- compat_sys_set_robust_list)
-#define __NR_get_robust_list 100
-__SC_COMP(__NR_get_robust_list, sys_get_robust_list, \
- compat_sys_get_robust_list)
-
-/* kernel/hrtimer.c */
-#define __NR_nanosleep 101
-__SC_COMP(__NR_nanosleep, sys_nanosleep, compat_sys_nanosleep)
-
-/* kernel/itimer.c */
-#define __NR_getitimer 102
-__SC_COMP(__NR_getitimer, sys_getitimer, compat_sys_getitimer)
-#define __NR_setitimer 103
-__SC_COMP(__NR_setitimer, sys_setitimer, compat_sys_setitimer)
-
-/* kernel/kexec.c */
-#define __NR_kexec_load 104
-__SC_COMP(__NR_kexec_load, sys_kexec_load, compat_sys_kexec_load)
-
-/* kernel/module.c */
-#define __NR_init_module 105
-__SYSCALL(__NR_init_module, sys_init_module)
-#define __NR_delete_module 106
-__SYSCALL(__NR_delete_module, sys_delete_module)
-
-/* kernel/posix-timers.c */
-#define __NR_timer_create 107
-__SC_COMP(__NR_timer_create, sys_timer_create, compat_sys_timer_create)
-#define __NR_timer_gettime 108
-__SC_COMP(__NR_timer_gettime, sys_timer_gettime, compat_sys_timer_gettime)
-#define __NR_timer_getoverrun 109
-__SYSCALL(__NR_timer_getoverrun, sys_timer_getoverrun)
-#define __NR_timer_settime 110
-__SC_COMP(__NR_timer_settime, sys_timer_settime, compat_sys_timer_settime)
-#define __NR_timer_delete 111
-__SYSCALL(__NR_timer_delete, sys_timer_delete)
-#define __NR_clock_settime 112
-__SC_COMP(__NR_clock_settime, sys_clock_settime, compat_sys_clock_settime)
-#define __NR_clock_gettime 113
-__SC_COMP(__NR_clock_gettime, sys_clock_gettime, compat_sys_clock_gettime)
-#define __NR_clock_getres 114
-__SC_COMP(__NR_clock_getres, sys_clock_getres, compat_sys_clock_getres)
-#define __NR_clock_nanosleep 115
-__SC_COMP(__NR_clock_nanosleep, sys_clock_nanosleep, \
- compat_sys_clock_nanosleep)
-
-/* kernel/printk.c */
-#define __NR_syslog 116
-__SYSCALL(__NR_syslog, sys_syslog)
-
-/* kernel/ptrace.c */
-#define __NR_ptrace 117
-__SYSCALL(__NR_ptrace, sys_ptrace)
-
-/* kernel/sched.c */
-#define __NR_sched_setparam 118
-__SYSCALL(__NR_sched_setparam, sys_sched_setparam)
-#define __NR_sched_setscheduler 119
-__SYSCALL(__NR_sched_setscheduler, sys_sched_setscheduler)
-#define __NR_sched_getscheduler 120
-__SYSCALL(__NR_sched_getscheduler, sys_sched_getscheduler)
-#define __NR_sched_getparam 121
-__SYSCALL(__NR_sched_getparam, sys_sched_getparam)
-#define __NR_sched_setaffinity 122
-__SC_COMP(__NR_sched_setaffinity, sys_sched_setaffinity, \
- compat_sys_sched_setaffinity)
-#define __NR_sched_getaffinity 123
-__SC_COMP(__NR_sched_getaffinity, sys_sched_getaffinity, \
- compat_sys_sched_getaffinity)
-#define __NR_sched_yield 124
-__SYSCALL(__NR_sched_yield, sys_sched_yield)
-#define __NR_sched_get_priority_max 125
-__SYSCALL(__NR_sched_get_priority_max, sys_sched_get_priority_max)
-#define __NR_sched_get_priority_min 126
-__SYSCALL(__NR_sched_get_priority_min, sys_sched_get_priority_min)
-#define __NR_sched_rr_get_interval 127
-__SC_COMP(__NR_sched_rr_get_interval, sys_sched_rr_get_interval, \
- compat_sys_sched_rr_get_interval)
-
-/* kernel/signal.c */
-#define __NR_restart_syscall 128
-__SYSCALL(__NR_restart_syscall, sys_restart_syscall)
-#define __NR_kill 129
-__SYSCALL(__NR_kill, sys_kill)
-#define __NR_tkill 130
-__SYSCALL(__NR_tkill, sys_tkill)
-#define __NR_tgkill 131
-__SYSCALL(__NR_tgkill, sys_tgkill)
-#define __NR_sigaltstack 132
-__SC_COMP(__NR_sigaltstack, sys_sigaltstack, compat_sys_sigaltstack)
-#define __NR_rt_sigsuspend 133
-__SC_COMP(__NR_rt_sigsuspend, sys_rt_sigsuspend, compat_sys_rt_sigsuspend)
-#define __NR_rt_sigaction 134
-__SC_COMP(__NR_rt_sigaction, sys_rt_sigaction, compat_sys_rt_sigaction)
-#define __NR_rt_sigprocmask 135
-__SYSCALL(__NR_rt_sigprocmask, sys_rt_sigprocmask)
-#define __NR_rt_sigpending 136
-__SYSCALL(__NR_rt_sigpending, sys_rt_sigpending)
-#define __NR_rt_sigtimedwait 137
-__SC_COMP(__NR_rt_sigtimedwait, sys_rt_sigtimedwait, \
- compat_sys_rt_sigtimedwait)
-#define __NR_rt_sigqueueinfo 138
-__SC_COMP(__NR_rt_sigqueueinfo, sys_rt_sigqueueinfo, \
- compat_sys_rt_sigqueueinfo)
-#define __NR_rt_sigreturn 139
-__SC_COMP(__NR_rt_sigreturn, sys_rt_sigreturn, compat_sys_rt_sigreturn)
-
-/* kernel/sys.c */
-#define __NR_setpriority 140
-__SYSCALL(__NR_setpriority, sys_setpriority)
-#define __NR_getpriority 141
-__SYSCALL(__NR_getpriority, sys_getpriority)
-#define __NR_reboot 142
-__SYSCALL(__NR_reboot, sys_reboot)
-#define __NR_setregid 143
-__SYSCALL(__NR_setregid, sys_setregid)
-#define __NR_setgid 144
-__SYSCALL(__NR_setgid, sys_setgid)
-#define __NR_setreuid 145
-__SYSCALL(__NR_setreuid, sys_setreuid)
-#define __NR_setuid 146
-__SYSCALL(__NR_setuid, sys_setuid)
-#define __NR_setresuid 147
-__SYSCALL(__NR_setresuid, sys_setresuid)
-#define __NR_getresuid 148
-__SYSCALL(__NR_getresuid, sys_getresuid)
-#define __NR_setresgid 149
-__SYSCALL(__NR_setresgid, sys_setresgid)
-#define __NR_getresgid 150
-__SYSCALL(__NR_getresgid, sys_getresgid)
-#define __NR_setfsuid 151
-__SYSCALL(__NR_setfsuid, sys_setfsuid)
-#define __NR_setfsgid 152
-__SYSCALL(__NR_setfsgid, sys_setfsgid)
-#define __NR_times 153
-__SC_COMP(__NR_times, sys_times, compat_sys_times)
-#define __NR_setpgid 154
-__SYSCALL(__NR_setpgid, sys_setpgid)
-#define __NR_getpgid 155
-__SYSCALL(__NR_getpgid, sys_getpgid)
-#define __NR_getsid 156
-__SYSCALL(__NR_getsid, sys_getsid)
-#define __NR_setsid 157
-__SYSCALL(__NR_setsid, sys_setsid)
-#define __NR_getgroups 158
-__SYSCALL(__NR_getgroups, sys_getgroups)
-#define __NR_setgroups 159
-__SYSCALL(__NR_setgroups, sys_setgroups)
-#define __NR_uname 160
-__SYSCALL(__NR_uname, sys_newuname)
-#define __NR_sethostname 161
-__SYSCALL(__NR_sethostname, sys_sethostname)
-#define __NR_setdomainname 162
-__SYSCALL(__NR_setdomainname, sys_setdomainname)
-#define __NR_getrlimit 163
-__SC_COMP(__NR_getrlimit, sys_getrlimit, compat_sys_getrlimit)
-#define __NR_setrlimit 164
-__SC_COMP(__NR_setrlimit, sys_setrlimit, compat_sys_setrlimit)
-#define __NR_getrusage 165
-__SC_COMP(__NR_getrusage, sys_getrusage, compat_sys_getrusage)
-#define __NR_umask 166
-__SYSCALL(__NR_umask, sys_umask)
-#define __NR_prctl 167
-__SYSCALL(__NR_prctl, sys_prctl)
-#define __NR_getcpu 168
-__SYSCALL(__NR_getcpu, sys_getcpu)
-
-/* kernel/time.c */
-#define __NR_gettimeofday 169
-__SC_COMP(__NR_gettimeofday, sys_gettimeofday, compat_sys_gettimeofday)
-#define __NR_settimeofday 170
-__SC_COMP(__NR_settimeofday, sys_settimeofday, compat_sys_settimeofday)
-#define __NR_adjtimex 171
-__SC_COMP(__NR_adjtimex, sys_adjtimex, compat_sys_adjtimex)
-
-/* kernel/timer.c */
-#define __NR_getpid 172
-__SYSCALL(__NR_getpid, sys_getpid)
-#define __NR_getppid 173
-__SYSCALL(__NR_getppid, sys_getppid)
-#define __NR_getuid 174
-__SYSCALL(__NR_getuid, sys_getuid)
-#define __NR_geteuid 175
-__SYSCALL(__NR_geteuid, sys_geteuid)
-#define __NR_getgid 176
-__SYSCALL(__NR_getgid, sys_getgid)
-#define __NR_getegid 177
-__SYSCALL(__NR_getegid, sys_getegid)
-#define __NR_gettid 178
-__SYSCALL(__NR_gettid, sys_gettid)
-#define __NR_sysinfo 179
-__SC_COMP(__NR_sysinfo, sys_sysinfo, compat_sys_sysinfo)
-
-/* ipc/mqueue.c */
-#define __NR_mq_open 180
-__SC_COMP(__NR_mq_open, sys_mq_open, compat_sys_mq_open)
-#define __NR_mq_unlink 181
-__SYSCALL(__NR_mq_unlink, sys_mq_unlink)
-#define __NR_mq_timedsend 182
-__SC_COMP(__NR_mq_timedsend, sys_mq_timedsend, compat_sys_mq_timedsend)
-#define __NR_mq_timedreceive 183
-__SC_COMP(__NR_mq_timedreceive, sys_mq_timedreceive, \
- compat_sys_mq_timedreceive)
-#define __NR_mq_notify 184
-__SC_COMP(__NR_mq_notify, sys_mq_notify, compat_sys_mq_notify)
-#define __NR_mq_getsetattr 185
-__SC_COMP(__NR_mq_getsetattr, sys_mq_getsetattr, compat_sys_mq_getsetattr)
-
-/* ipc/msg.c */
-#define __NR_msgget 186
-__SYSCALL(__NR_msgget, sys_msgget)
-#define __NR_msgctl 187
-__SC_COMP(__NR_msgctl, sys_msgctl, compat_sys_msgctl)
-#define __NR_msgrcv 188
-__SC_COMP(__NR_msgrcv, sys_msgrcv, compat_sys_msgrcv)
-#define __NR_msgsnd 189
-__SC_COMP(__NR_msgsnd, sys_msgsnd, compat_sys_msgsnd)
-
-/* ipc/sem.c */
-#define __NR_semget 190
-__SYSCALL(__NR_semget, sys_semget)
-#define __NR_semctl 191
-__SC_COMP(__NR_semctl, sys_semctl, compat_sys_semctl)
-#define __NR_semtimedop 192
-__SC_COMP(__NR_semtimedop, sys_semtimedop, compat_sys_semtimedop)
-#define __NR_semop 193
-__SYSCALL(__NR_semop, sys_semop)
-
-/* ipc/shm.c */
-#define __NR_shmget 194
-__SYSCALL(__NR_shmget, sys_shmget)
-#define __NR_shmctl 195
-__SC_COMP(__NR_shmctl, sys_shmctl, compat_sys_shmctl)
-#define __NR_shmat 196
-__SC_COMP(__NR_shmat, sys_shmat, compat_sys_shmat)
-#define __NR_shmdt 197
-__SYSCALL(__NR_shmdt, sys_shmdt)
-
-/* net/socket.c */
-#define __NR_socket 198
-__SYSCALL(__NR_socket, sys_socket)
-#define __NR_socketpair 199
-__SYSCALL(__NR_socketpair, sys_socketpair)
-#define __NR_bind 200
-__SYSCALL(__NR_bind, sys_bind)
-#define __NR_listen 201
-__SYSCALL(__NR_listen, sys_listen)
-#define __NR_accept 202
-__SYSCALL(__NR_accept, sys_accept)
-#define __NR_connect 203
-__SYSCALL(__NR_connect, sys_connect)
-#define __NR_getsockname 204
-__SYSCALL(__NR_getsockname, sys_getsockname)
-#define __NR_getpeername 205
-__SYSCALL(__NR_getpeername, sys_getpeername)
-#define __NR_sendto 206
-__SYSCALL(__NR_sendto, sys_sendto)
-#define __NR_recvfrom 207
-__SC_COMP(__NR_recvfrom, sys_recvfrom, compat_sys_recvfrom)
-#define __NR_setsockopt 208
-__SC_COMP(__NR_setsockopt, sys_setsockopt, compat_sys_setsockopt)
-#define __NR_getsockopt 209
-__SC_COMP(__NR_getsockopt, sys_getsockopt, compat_sys_getsockopt)
-#define __NR_shutdown 210
-__SYSCALL(__NR_shutdown, sys_shutdown)
-#define __NR_sendmsg 211
-__SC_COMP(__NR_sendmsg, sys_sendmsg, compat_sys_sendmsg)
-#define __NR_recvmsg 212
-__SC_COMP(__NR_recvmsg, sys_recvmsg, compat_sys_recvmsg)
-
-/* mm/filemap.c */
-#define __NR_readahead 213
-__SC_COMP(__NR_readahead, sys_readahead, compat_sys_readahead)
-
-/* mm/nommu.c, also with MMU */
-#define __NR_brk 214
-__SYSCALL(__NR_brk, sys_brk)
-#define __NR_munmap 215
-__SYSCALL(__NR_munmap, sys_munmap)
-#define __NR_mremap 216
-__SYSCALL(__NR_mremap, sys_mremap)
-
-/* security/keys/keyctl.c */
-#define __NR_add_key 217
-__SYSCALL(__NR_add_key, sys_add_key)
-#define __NR_request_key 218
-__SYSCALL(__NR_request_key, sys_request_key)
-#define __NR_keyctl 219
-__SC_COMP(__NR_keyctl, sys_keyctl, compat_sys_keyctl)
-
-/* arch/example/kernel/sys_example.c */
-#define __NR_clone 220
-__SYSCALL(__NR_clone, sys_clone)
-#define __NR_execve 221
-__SC_COMP(__NR_execve, sys_execve, compat_sys_execve)
-
-#define __NR3264_mmap 222
-__SC_3264(__NR3264_mmap, sys_mmap2, sys_mmap)
-/* mm/fadvise.c */
-#define __NR3264_fadvise64 223
-__SC_COMP(__NR3264_fadvise64, sys_fadvise64_64, compat_sys_fadvise64_64)
-
-/* mm/, CONFIG_MMU only */
-#ifndef __ARCH_NOMMU
-#define __NR_swapon 224
-__SYSCALL(__NR_swapon, sys_swapon)
-#define __NR_swapoff 225
-__SYSCALL(__NR_swapoff, sys_swapoff)
-#define __NR_mprotect 226
-__SYSCALL(__NR_mprotect, sys_mprotect)
-#define __NR_msync 227
-__SYSCALL(__NR_msync, sys_msync)
-#define __NR_mlock 228
-__SYSCALL(__NR_mlock, sys_mlock)
-#define __NR_munlock 229
-__SYSCALL(__NR_munlock, sys_munlock)
-#define __NR_mlockall 230
-__SYSCALL(__NR_mlockall, sys_mlockall)
-#define __NR_munlockall 231
-__SYSCALL(__NR_munlockall, sys_munlockall)
-#define __NR_mincore 232
-__SYSCALL(__NR_mincore, sys_mincore)
-#define __NR_madvise 233
-__SYSCALL(__NR_madvise, sys_madvise)
-#define __NR_remap_file_pages 234
-__SYSCALL(__NR_remap_file_pages, sys_remap_file_pages)
-#define __NR_mbind 235
-__SC_COMP(__NR_mbind, sys_mbind, compat_sys_mbind)
-#define __NR_get_mempolicy 236
-__SC_COMP(__NR_get_mempolicy, sys_get_mempolicy, compat_sys_get_mempolicy)
-#define __NR_set_mempolicy 237
-__SC_COMP(__NR_set_mempolicy, sys_set_mempolicy, compat_sys_set_mempolicy)
-#define __NR_migrate_pages 238
-__SC_COMP(__NR_migrate_pages, sys_migrate_pages, compat_sys_migrate_pages)
-#define __NR_move_pages 239
-__SC_COMP(__NR_move_pages, sys_move_pages, compat_sys_move_pages)
-#endif
-
-#define __NR_rt_tgsigqueueinfo 240
-__SC_COMP(__NR_rt_tgsigqueueinfo, sys_rt_tgsigqueueinfo, \
- compat_sys_rt_tgsigqueueinfo)
-#define __NR_perf_event_open 241
-__SYSCALL(__NR_perf_event_open, sys_perf_event_open)
-#define __NR_accept4 242
-__SYSCALL(__NR_accept4, sys_accept4)
-#define __NR_recvmmsg 243
-__SC_COMP(__NR_recvmmsg, sys_recvmmsg, compat_sys_recvmmsg)
-
-/*
- * Architectures may provide up to 16 syscalls of their own
- * starting with this value.
- */
-#define __NR_arch_specific_syscall 244
-
-#define __NR_wait4 260
-__SC_COMP(__NR_wait4, sys_wait4, compat_sys_wait4)
-#define __NR_prlimit64 261
-__SYSCALL(__NR_prlimit64, sys_prlimit64)
-#define __NR_fanotify_init 262
-__SYSCALL(__NR_fanotify_init, sys_fanotify_init)
-#define __NR_fanotify_mark 263
-__SYSCALL(__NR_fanotify_mark, sys_fanotify_mark)
-#define __NR_name_to_handle_at 264
-__SYSCALL(__NR_name_to_handle_at, sys_name_to_handle_at)
-#define __NR_open_by_handle_at 265
-__SC_COMP(__NR_open_by_handle_at, sys_open_by_handle_at, \
- compat_sys_open_by_handle_at)
-#define __NR_clock_adjtime 266
-__SC_COMP(__NR_clock_adjtime, sys_clock_adjtime, compat_sys_clock_adjtime)
-#define __NR_syncfs 267
-__SYSCALL(__NR_syncfs, sys_syncfs)
-#define __NR_setns 268
-__SYSCALL(__NR_setns, sys_setns)
-#define __NR_sendmmsg 269
-__SC_COMP(__NR_sendmmsg, sys_sendmmsg, compat_sys_sendmmsg)
-#define __NR_process_vm_readv 270
-__SC_COMP(__NR_process_vm_readv, sys_process_vm_readv, \
- compat_sys_process_vm_readv)
-#define __NR_process_vm_writev 271
-__SC_COMP(__NR_process_vm_writev, sys_process_vm_writev, \
- compat_sys_process_vm_writev)
-
-#undef __NR_syscalls
-#define __NR_syscalls 272
-
-/*
- * All syscalls below here should go away really,
- * these are provided for both review and as a porting
- * help for the C library version.
-*
- * Last chance: are any of these important enough to
- * enable by default?
- */
-#ifdef __ARCH_WANT_SYSCALL_NO_AT
-#define __NR_open 1024
-__SYSCALL(__NR_open, sys_open)
-#define __NR_link 1025
-__SYSCALL(__NR_link, sys_link)
-#define __NR_unlink 1026
-__SYSCALL(__NR_unlink, sys_unlink)
-#define __NR_mknod 1027
-__SYSCALL(__NR_mknod, sys_mknod)
-#define __NR_chmod 1028
-__SYSCALL(__NR_chmod, sys_chmod)
-#define __NR_chown 1029
-__SYSCALL(__NR_chown, sys_chown)
-#define __NR_mkdir 1030
-__SYSCALL(__NR_mkdir, sys_mkdir)
-#define __NR_rmdir 1031
-__SYSCALL(__NR_rmdir, sys_rmdir)
-#define __NR_lchown 1032
-__SYSCALL(__NR_lchown, sys_lchown)
-#define __NR_access 1033
-__SYSCALL(__NR_access, sys_access)
-#define __NR_rename 1034
-__SYSCALL(__NR_rename, sys_rename)
-#define __NR_readlink 1035
-__SYSCALL(__NR_readlink, sys_readlink)
-#define __NR_symlink 1036
-__SYSCALL(__NR_symlink, sys_symlink)
-#define __NR_utimes 1037
-__SYSCALL(__NR_utimes, sys_utimes)
-#define __NR3264_stat 1038
-__SC_3264(__NR3264_stat, sys_stat64, sys_newstat)
-#define __NR3264_lstat 1039
-__SC_3264(__NR3264_lstat, sys_lstat64, sys_newlstat)
-
-#undef __NR_syscalls
-#define __NR_syscalls (__NR3264_lstat+1)
-#endif /* __ARCH_WANT_SYSCALL_NO_AT */
-
-#ifdef __ARCH_WANT_SYSCALL_NO_FLAGS
-#define __NR_pipe 1040
-__SYSCALL(__NR_pipe, sys_pipe)
-#define __NR_dup2 1041
-__SYSCALL(__NR_dup2, sys_dup2)
-#define __NR_epoll_create 1042
-__SYSCALL(__NR_epoll_create, sys_epoll_create)
-#define __NR_inotify_init 1043
-__SYSCALL(__NR_inotify_init, sys_inotify_init)
-#define __NR_eventfd 1044
-__SYSCALL(__NR_eventfd, sys_eventfd)
-#define __NR_signalfd 1045
-__SYSCALL(__NR_signalfd, sys_signalfd)
-
-#undef __NR_syscalls
-#define __NR_syscalls (__NR_signalfd+1)
-#endif /* __ARCH_WANT_SYSCALL_NO_FLAGS */
-
-#if (__BITS_PER_LONG == 32 || defined(__SYSCALL_COMPAT)) && \
- defined(__ARCH_WANT_SYSCALL_OFF_T)
-#define __NR_sendfile 1046
-__SYSCALL(__NR_sendfile, sys_sendfile)
-#define __NR_ftruncate 1047
-__SYSCALL(__NR_ftruncate, sys_ftruncate)
-#define __NR_truncate 1048
-__SYSCALL(__NR_truncate, sys_truncate)
-#define __NR_stat 1049
-__SYSCALL(__NR_stat, sys_newstat)
-#define __NR_lstat 1050
-__SYSCALL(__NR_lstat, sys_newlstat)
-#define __NR_fstat 1051
-__SYSCALL(__NR_fstat, sys_newfstat)
-#define __NR_fcntl 1052
-__SYSCALL(__NR_fcntl, sys_fcntl)
-#define __NR_fadvise64 1053
-#define __ARCH_WANT_SYS_FADVISE64
-__SYSCALL(__NR_fadvise64, sys_fadvise64)
-#define __NR_newfstatat 1054
-#define __ARCH_WANT_SYS_NEWFSTATAT
-__SYSCALL(__NR_newfstatat, sys_newfstatat)
-#define __NR_fstatfs 1055
-__SYSCALL(__NR_fstatfs, sys_fstatfs)
-#define __NR_statfs 1056
-__SYSCALL(__NR_statfs, sys_statfs)
-#define __NR_lseek 1057
-__SYSCALL(__NR_lseek, sys_lseek)
-#define __NR_mmap 1058
-__SYSCALL(__NR_mmap, sys_mmap)
-
-#undef __NR_syscalls
-#define __NR_syscalls (__NR_mmap+1)
-#endif /* 32 bit off_t syscalls */
-
-#ifdef __ARCH_WANT_SYSCALL_DEPRECATED
-#define __NR_alarm 1059
-#define __ARCH_WANT_SYS_ALARM
-__SYSCALL(__NR_alarm, sys_alarm)
-#define __NR_getpgrp 1060
-#define __ARCH_WANT_SYS_GETPGRP
-__SYSCALL(__NR_getpgrp, sys_getpgrp)
-#define __NR_pause 1061
-#define __ARCH_WANT_SYS_PAUSE
-__SYSCALL(__NR_pause, sys_pause)
-#define __NR_time 1062
-#define __ARCH_WANT_SYS_TIME
-#define __ARCH_WANT_COMPAT_SYS_TIME
-__SYSCALL(__NR_time, sys_time)
-#define __NR_utime 1063
-#define __ARCH_WANT_SYS_UTIME
-__SYSCALL(__NR_utime, sys_utime)
-
-#define __NR_creat 1064
-__SYSCALL(__NR_creat, sys_creat)
-#define __NR_getdents 1065
-#define __ARCH_WANT_SYS_GETDENTS
-__SYSCALL(__NR_getdents, sys_getdents)
-#define __NR_futimesat 1066
-__SYSCALL(__NR_futimesat, sys_futimesat)
-#define __NR_select 1067
-#define __ARCH_WANT_SYS_SELECT
-__SYSCALL(__NR_select, sys_select)
-#define __NR_poll 1068
-__SYSCALL(__NR_poll, sys_poll)
-#define __NR_epoll_wait 1069
-__SYSCALL(__NR_epoll_wait, sys_epoll_wait)
-#define __NR_ustat 1070
-__SYSCALL(__NR_ustat, sys_ustat)
-#define __NR_vfork 1071
-__SYSCALL(__NR_vfork, sys_vfork)
-#define __NR_oldwait4 1072
-__SYSCALL(__NR_oldwait4, sys_wait4)
-#define __NR_recv 1073
-__SYSCALL(__NR_recv, sys_recv)
-#define __NR_send 1074
-__SYSCALL(__NR_send, sys_send)
-#define __NR_bdflush 1075
-__SYSCALL(__NR_bdflush, sys_bdflush)
-#define __NR_umount 1076
-__SYSCALL(__NR_umount, sys_oldumount)
-#define __ARCH_WANT_SYS_OLDUMOUNT
-#define __NR_uselib 1077
-__SYSCALL(__NR_uselib, sys_uselib)
-#define __NR__sysctl 1078
-__SYSCALL(__NR__sysctl, sys_sysctl)
-
-#define __NR_fork 1079
-#ifdef CONFIG_MMU
-__SYSCALL(__NR_fork, sys_fork)
-#else
-__SYSCALL(__NR_fork, sys_ni_syscall)
-#endif /* CONFIG_MMU */
-
-#undef __NR_syscalls
-#define __NR_syscalls (__NR_fork+1)
-
-#endif /* __ARCH_WANT_SYSCALL_DEPRECATED */
-
-/*
- * 32 bit systems traditionally used different
- * syscalls for off_t and loff_t arguments, while
- * 64 bit systems only need the off_t version.
- * For new 32 bit platforms, there is no need to
- * implement the old 32 bit off_t syscalls, so
- * they take different names.
- * Here we map the numbers so that both versions
- * use the same syscall table layout.
- */
-#if __BITS_PER_LONG == 64 && !defined(__SYSCALL_COMPAT)
-#define __NR_fcntl __NR3264_fcntl
-#define __NR_statfs __NR3264_statfs
-#define __NR_fstatfs __NR3264_fstatfs
-#define __NR_truncate __NR3264_truncate
-#define __NR_ftruncate __NR3264_ftruncate
-#define __NR_lseek __NR3264_lseek
-#define __NR_sendfile __NR3264_sendfile
-#define __NR_newfstatat __NR3264_fstatat
-#define __NR_fstat __NR3264_fstat
-#define __NR_mmap __NR3264_mmap
-#define __NR_fadvise64 __NR3264_fadvise64
-#ifdef __NR3264_stat
-#define __NR_stat __NR3264_stat
-#define __NR_lstat __NR3264_lstat
-#endif
-#else
-#define __NR_fcntl64 __NR3264_fcntl
-#define __NR_statfs64 __NR3264_statfs
-#define __NR_fstatfs64 __NR3264_fstatfs
-#define __NR_truncate64 __NR3264_truncate
-#define __NR_ftruncate64 __NR3264_ftruncate
-#define __NR_llseek __NR3264_lseek
-#define __NR_sendfile64 __NR3264_sendfile
-#define __NR_fstatat64 __NR3264_fstatat
-#define __NR_fstat64 __NR3264_fstat
-#define __NR_mmap2 __NR3264_mmap
-#define __NR_fadvise64_64 __NR3264_fadvise64
-#ifdef __NR3264_stat
-#define __NR_stat64 __NR3264_stat
-#define __NR_lstat64 __NR3264_lstat
-#endif
-#endif
-
-#ifdef __KERNEL__
-
-/*
- * These are required system calls, we should
- * invert the logic eventually and let them
- * be selected by default.
- */
-#if __BITS_PER_LONG == 32
-#define __ARCH_WANT_STAT64
-#define __ARCH_WANT_SYS_LLSEEK
-#endif
-#define __ARCH_WANT_SYS_RT_SIGACTION
-#define __ARCH_WANT_SYS_RT_SIGSUSPEND
-#define __ARCH_WANT_COMPAT_SYS_RT_SIGSUSPEND
-
-/*
- * "Conditional" syscalls
- *
- * What we want is __attribute__((weak,alias("sys_ni_syscall"))),
- * but it doesn't work on all toolchains, so we just do it by hand
- */
-#ifndef cond_syscall
-#define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall")
-#endif
-
-#endif /* __KERNEL__ */
-#endif /* _ASM_GENERIC_UNISTD_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/user.h b/ANDROID_3.4.5/include/asm-generic/user.h
deleted file mode 100644
index 35638c34..00000000
--- a/ANDROID_3.4.5/include/asm-generic/user.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef __ASM_GENERIC_USER_H
-#define __ASM_GENERIC_USER_H
-/*
- * This file may define a 'struct user' structure. However, it is only
- * used for a.out files, which are not supported on new architectures.
- */
-
-#endif /* __ASM_GENERIC_USER_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/vga.h b/ANDROID_3.4.5/include/asm-generic/vga.h
deleted file mode 100644
index 36c8ff52..00000000
--- a/ANDROID_3.4.5/include/asm-generic/vga.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Access to VGA videoram
- *
- * (c) 1998 Martin Mares <mj@ucw.cz>
- */
-#ifndef __ASM_GENERIC_VGA_H
-#define __ASM_GENERIC_VGA_H
-
-/*
- * On most architectures that support VGA, we can just
- * recalculate addresses and then access the videoram
- * directly without any black magic.
- *
- * Everyone else needs to ioremap the address and use
- * proper I/O accesses.
- */
-#ifndef VGA_MAP_MEM
-#define VGA_MAP_MEM(x, s) (unsigned long)phys_to_virt(x)
-#endif
-
-#define vga_readb(x) (*(x))
-#define vga_writeb(x, y) (*(y) = (x))
-
-#endif /* _ASM_GENERIC_VGA_H */
diff --git a/ANDROID_3.4.5/include/asm-generic/vmlinux.lds.h b/ANDROID_3.4.5/include/asm-generic/vmlinux.lds.h
deleted file mode 100644
index 8aeadf6b..00000000
--- a/ANDROID_3.4.5/include/asm-generic/vmlinux.lds.h
+++ /dev/null
@@ -1,805 +0,0 @@
-/*
- * Helper macros to support writing architecture specific
- * linker scripts.
- *
- * A minimal linker scripts has following content:
- * [This is a sample, architectures may have special requiriements]
- *
- * OUTPUT_FORMAT(...)
- * OUTPUT_ARCH(...)
- * ENTRY(...)
- * SECTIONS
- * {
- * . = START;
- * __init_begin = .;
- * HEAD_TEXT_SECTION
- * INIT_TEXT_SECTION(PAGE_SIZE)
- * INIT_DATA_SECTION(...)
- * PERCPU_SECTION(CACHELINE_SIZE)
- * __init_end = .;
- *
- * _stext = .;
- * TEXT_SECTION = 0
- * _etext = .;
- *
- * _sdata = .;
- * RO_DATA_SECTION(PAGE_SIZE)
- * RW_DATA_SECTION(...)
- * _edata = .;
- *
- * EXCEPTION_TABLE(...)
- * NOTES
- *
- * BSS_SECTION(0, 0, 0)
- * _end = .;
- *
- * STABS_DEBUG
- * DWARF_DEBUG
- *
- * DISCARDS // must be the last
- * }
- *
- * [__init_begin, __init_end] is the init section that may be freed after init
- * [_stext, _etext] is the text section
- * [_sdata, _edata] is the data section
- *
- * Some of the included output section have their own set of constants.
- * Examples are: [__initramfs_start, __initramfs_end] for initramfs and
- * [__nosave_begin, __nosave_end] for the nosave data
- */
-
-#ifndef LOAD_OFFSET
-#define LOAD_OFFSET 0
-#endif
-
-#ifndef SYMBOL_PREFIX
-#define VMLINUX_SYMBOL(sym) sym
-#else
-#define PASTE2(x,y) x##y
-#define PASTE(x,y) PASTE2(x,y)
-#define VMLINUX_SYMBOL(sym) PASTE(SYMBOL_PREFIX, sym)
-#endif
-
-/* Align . to a 8 byte boundary equals to maximum function alignment. */
-#define ALIGN_FUNCTION() . = ALIGN(8)
-
-/*
- * Align to a 32 byte boundary equal to the
- * alignment gcc 4.5 uses for a struct
- */
-#define STRUCT_ALIGNMENT 32
-#define STRUCT_ALIGN() . = ALIGN(STRUCT_ALIGNMENT)
-
-/* The actual configuration determine if the init/exit sections
- * are handled as text/data or they can be discarded (which
- * often happens at runtime)
- */
-#ifdef CONFIG_HOTPLUG
-#define DEV_KEEP(sec) *(.dev##sec)
-#define DEV_DISCARD(sec)
-#else
-#define DEV_KEEP(sec)
-#define DEV_DISCARD(sec) *(.dev##sec)
-#endif
-
-#ifdef CONFIG_HOTPLUG_CPU
-#define CPU_KEEP(sec) *(.cpu##sec)
-#define CPU_DISCARD(sec)
-#else
-#define CPU_KEEP(sec)
-#define CPU_DISCARD(sec) *(.cpu##sec)
-#endif
-
-#if defined(CONFIG_MEMORY_HOTPLUG)
-#define MEM_KEEP(sec) *(.mem##sec)
-#define MEM_DISCARD(sec)
-#else
-#define MEM_KEEP(sec)
-#define MEM_DISCARD(sec) *(.mem##sec)
-#endif
-
-#ifdef CONFIG_FTRACE_MCOUNT_RECORD
-#define MCOUNT_REC() . = ALIGN(8); \
- VMLINUX_SYMBOL(__start_mcount_loc) = .; \
- *(__mcount_loc) \
- VMLINUX_SYMBOL(__stop_mcount_loc) = .;
-#else
-#define MCOUNT_REC()
-#endif
-
-#ifdef CONFIG_TRACE_BRANCH_PROFILING
-#define LIKELY_PROFILE() VMLINUX_SYMBOL(__start_annotated_branch_profile) = .; \
- *(_ftrace_annotated_branch) \
- VMLINUX_SYMBOL(__stop_annotated_branch_profile) = .;
-#else
-#define LIKELY_PROFILE()
-#endif
-
-#ifdef CONFIG_PROFILE_ALL_BRANCHES
-#define BRANCH_PROFILE() VMLINUX_SYMBOL(__start_branch_profile) = .; \
- *(_ftrace_branch) \
- VMLINUX_SYMBOL(__stop_branch_profile) = .;
-#else
-#define BRANCH_PROFILE()
-#endif
-
-#ifdef CONFIG_EVENT_TRACING
-#define FTRACE_EVENTS() . = ALIGN(8); \
- VMLINUX_SYMBOL(__start_ftrace_events) = .; \
- *(_ftrace_events) \
- VMLINUX_SYMBOL(__stop_ftrace_events) = .;
-#else
-#define FTRACE_EVENTS()
-#endif
-
-#ifdef CONFIG_TRACING
-#define TRACE_PRINTKS() VMLINUX_SYMBOL(__start___trace_bprintk_fmt) = .; \
- *(__trace_printk_fmt) /* Trace_printk fmt' pointer */ \
- VMLINUX_SYMBOL(__stop___trace_bprintk_fmt) = .;
-#else
-#define TRACE_PRINTKS()
-#endif
-
-#ifdef CONFIG_FTRACE_SYSCALLS
-#define TRACE_SYSCALLS() . = ALIGN(8); \
- VMLINUX_SYMBOL(__start_syscalls_metadata) = .; \
- *(__syscalls_metadata) \
- VMLINUX_SYMBOL(__stop_syscalls_metadata) = .;
-#else
-#define TRACE_SYSCALLS()
-#endif
-
-
-#define KERNEL_DTB() \
- STRUCT_ALIGN(); \
- VMLINUX_SYMBOL(__dtb_start) = .; \
- *(.dtb.init.rodata) \
- VMLINUX_SYMBOL(__dtb_end) = .;
-
-/* .data section */
-#define DATA_DATA \
- *(.data) \
- *(.ref.data) \
- *(.data..shared_aligned) /* percpu related */ \
- DEV_KEEP(init.data) \
- DEV_KEEP(exit.data) \
- CPU_KEEP(init.data) \
- CPU_KEEP(exit.data) \
- MEM_KEEP(init.data) \
- MEM_KEEP(exit.data) \
- *(.data.unlikely) \
- STRUCT_ALIGN(); \
- *(__tracepoints) \
- /* implement dynamic printk debug */ \
- . = ALIGN(8); \
- VMLINUX_SYMBOL(__start___jump_table) = .; \
- *(__jump_table) \
- VMLINUX_SYMBOL(__stop___jump_table) = .; \
- . = ALIGN(8); \
- VMLINUX_SYMBOL(__start___verbose) = .; \
- *(__verbose) \
- VMLINUX_SYMBOL(__stop___verbose) = .; \
- LIKELY_PROFILE() \
- BRANCH_PROFILE() \
- TRACE_PRINTKS()
-
-/*
- * Data section helpers
- */
-#define NOSAVE_DATA \
- . = ALIGN(PAGE_SIZE); \
- VMLINUX_SYMBOL(__nosave_begin) = .; \
- *(.data..nosave) \
- . = ALIGN(PAGE_SIZE); \
- VMLINUX_SYMBOL(__nosave_end) = .;
-
-#define PAGE_ALIGNED_DATA(page_align) \
- . = ALIGN(page_align); \
- *(.data..page_aligned)
-
-#define READ_MOSTLY_DATA(align) \
- . = ALIGN(align); \
- *(.data..read_mostly) \
- . = ALIGN(align);
-
-#define CACHELINE_ALIGNED_DATA(align) \
- . = ALIGN(align); \
- *(.data..cacheline_aligned)
-
-#define INIT_TASK_DATA(align) \
- . = ALIGN(align); \
- *(.data..init_task)
-
-/*
- * Read only Data
- */
-#define RO_DATA_SECTION(align) \
- . = ALIGN((align)); \
- .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \
- VMLINUX_SYMBOL(__start_rodata) = .; \
- *(.rodata) *(.rodata.*) \
- *(__vermagic) /* Kernel version magic */ \
- . = ALIGN(8); \
- VMLINUX_SYMBOL(__start___tracepoints_ptrs) = .; \
- *(__tracepoints_ptrs) /* Tracepoints: pointer array */\
- VMLINUX_SYMBOL(__stop___tracepoints_ptrs) = .; \
- *(__tracepoints_strings)/* Tracepoints: strings */ \
- } \
- \
- .rodata1 : AT(ADDR(.rodata1) - LOAD_OFFSET) { \
- *(.rodata1) \
- } \
- \
- BUG_TABLE \
- \
- /* PCI quirks */ \
- .pci_fixup : AT(ADDR(.pci_fixup) - LOAD_OFFSET) { \
- VMLINUX_SYMBOL(__start_pci_fixups_early) = .; \
- *(.pci_fixup_early) \
- VMLINUX_SYMBOL(__end_pci_fixups_early) = .; \
- VMLINUX_SYMBOL(__start_pci_fixups_header) = .; \
- *(.pci_fixup_header) \
- VMLINUX_SYMBOL(__end_pci_fixups_header) = .; \
- VMLINUX_SYMBOL(__start_pci_fixups_final) = .; \
- *(.pci_fixup_final) \
- VMLINUX_SYMBOL(__end_pci_fixups_final) = .; \
- VMLINUX_SYMBOL(__start_pci_fixups_enable) = .; \
- *(.pci_fixup_enable) \
- VMLINUX_SYMBOL(__end_pci_fixups_enable) = .; \
- VMLINUX_SYMBOL(__start_pci_fixups_resume) = .; \
- *(.pci_fixup_resume) \
- VMLINUX_SYMBOL(__end_pci_fixups_resume) = .; \
- VMLINUX_SYMBOL(__start_pci_fixups_resume_early) = .; \
- *(.pci_fixup_resume_early) \
- VMLINUX_SYMBOL(__end_pci_fixups_resume_early) = .; \
- VMLINUX_SYMBOL(__start_pci_fixups_suspend) = .; \
- *(.pci_fixup_suspend) \
- VMLINUX_SYMBOL(__end_pci_fixups_suspend) = .; \
- } \
- \
- /* Built-in firmware blobs */ \
- .builtin_fw : AT(ADDR(.builtin_fw) - LOAD_OFFSET) { \
- VMLINUX_SYMBOL(__start_builtin_fw) = .; \
- *(.builtin_fw) \
- VMLINUX_SYMBOL(__end_builtin_fw) = .; \
- } \
- \
- /* RapidIO route ops */ \
- .rio_ops : AT(ADDR(.rio_ops) - LOAD_OFFSET) { \
- VMLINUX_SYMBOL(__start_rio_switch_ops) = .; \
- *(.rio_switch_ops) \
- VMLINUX_SYMBOL(__end_rio_switch_ops) = .; \
- } \
- \
- TRACEDATA \
- \
- /* Kernel symbol table: Normal symbols */ \
- __ksymtab : AT(ADDR(__ksymtab) - LOAD_OFFSET) { \
- VMLINUX_SYMBOL(__start___ksymtab) = .; \
- *(SORT(___ksymtab+*)) \
- VMLINUX_SYMBOL(__stop___ksymtab) = .; \
- } \
- \
- /* Kernel symbol table: GPL-only symbols */ \
- __ksymtab_gpl : AT(ADDR(__ksymtab_gpl) - LOAD_OFFSET) { \
- VMLINUX_SYMBOL(__start___ksymtab_gpl) = .; \
- *(SORT(___ksymtab_gpl+*)) \
- VMLINUX_SYMBOL(__stop___ksymtab_gpl) = .; \
- } \
- \
- /* Kernel symbol table: Normal unused symbols */ \
- __ksymtab_unused : AT(ADDR(__ksymtab_unused) - LOAD_OFFSET) { \
- VMLINUX_SYMBOL(__start___ksymtab_unused) = .; \
- *(SORT(___ksymtab_unused+*)) \
- VMLINUX_SYMBOL(__stop___ksymtab_unused) = .; \
- } \
- \
- /* Kernel symbol table: GPL-only unused symbols */ \
- __ksymtab_unused_gpl : AT(ADDR(__ksymtab_unused_gpl) - LOAD_OFFSET) { \
- VMLINUX_SYMBOL(__start___ksymtab_unused_gpl) = .; \
- *(SORT(___ksymtab_unused_gpl+*)) \
- VMLINUX_SYMBOL(__stop___ksymtab_unused_gpl) = .; \
- } \
- \
- /* Kernel symbol table: GPL-future-only symbols */ \
- __ksymtab_gpl_future : AT(ADDR(__ksymtab_gpl_future) - LOAD_OFFSET) { \
- VMLINUX_SYMBOL(__start___ksymtab_gpl_future) = .; \
- *(SORT(___ksymtab_gpl_future+*)) \
- VMLINUX_SYMBOL(__stop___ksymtab_gpl_future) = .; \
- } \
- \
- /* Kernel symbol table: Normal symbols */ \
- __kcrctab : AT(ADDR(__kcrctab) - LOAD_OFFSET) { \
- VMLINUX_SYMBOL(__start___kcrctab) = .; \
- *(SORT(___kcrctab+*)) \
- VMLINUX_SYMBOL(__stop___kcrctab) = .; \
- } \
- \
- /* Kernel symbol table: GPL-only symbols */ \
- __kcrctab_gpl : AT(ADDR(__kcrctab_gpl) - LOAD_OFFSET) { \
- VMLINUX_SYMBOL(__start___kcrctab_gpl) = .; \
- *(SORT(___kcrctab_gpl+*)) \
- VMLINUX_SYMBOL(__stop___kcrctab_gpl) = .; \
- } \
- \
- /* Kernel symbol table: Normal unused symbols */ \
- __kcrctab_unused : AT(ADDR(__kcrctab_unused) - LOAD_OFFSET) { \
- VMLINUX_SYMBOL(__start___kcrctab_unused) = .; \
- *(SORT(___kcrctab_unused+*)) \
- VMLINUX_SYMBOL(__stop___kcrctab_unused) = .; \
- } \
- \
- /* Kernel symbol table: GPL-only unused symbols */ \
- __kcrctab_unused_gpl : AT(ADDR(__kcrctab_unused_gpl) - LOAD_OFFSET) { \
- VMLINUX_SYMBOL(__start___kcrctab_unused_gpl) = .; \
- *(SORT(___kcrctab_unused_gpl+*)) \
- VMLINUX_SYMBOL(__stop___kcrctab_unused_gpl) = .; \
- } \
- \
- /* Kernel symbol table: GPL-future-only symbols */ \
- __kcrctab_gpl_future : AT(ADDR(__kcrctab_gpl_future) - LOAD_OFFSET) { \
- VMLINUX_SYMBOL(__start___kcrctab_gpl_future) = .; \
- *(SORT(___kcrctab_gpl_future+*)) \
- VMLINUX_SYMBOL(__stop___kcrctab_gpl_future) = .; \
- } \
- \
- /* Kernel symbol table: strings */ \
- __ksymtab_strings : AT(ADDR(__ksymtab_strings) - LOAD_OFFSET) { \
- *(__ksymtab_strings) \
- } \
- \
- /* __*init sections */ \
- __init_rodata : AT(ADDR(__init_rodata) - LOAD_OFFSET) { \
- *(.ref.rodata) \
- DEV_KEEP(init.rodata) \
- DEV_KEEP(exit.rodata) \
- CPU_KEEP(init.rodata) \
- CPU_KEEP(exit.rodata) \
- MEM_KEEP(init.rodata) \
- MEM_KEEP(exit.rodata) \
- } \
- \
- /* Built-in module parameters. */ \
- __param : AT(ADDR(__param) - LOAD_OFFSET) { \
- VMLINUX_SYMBOL(__start___param) = .; \
- *(__param) \
- VMLINUX_SYMBOL(__stop___param) = .; \
- } \
- \
- /* Built-in module versions. */ \
- __modver : AT(ADDR(__modver) - LOAD_OFFSET) { \
- VMLINUX_SYMBOL(__start___modver) = .; \
- *(__modver) \
- VMLINUX_SYMBOL(__stop___modver) = .; \
- . = ALIGN((align)); \
- VMLINUX_SYMBOL(__end_rodata) = .; \
- } \
- . = ALIGN((align));
-
-/* RODATA & RO_DATA provided for backward compatibility.
- * All archs are supposed to use RO_DATA() */
-#define RODATA RO_DATA_SECTION(4096)
-#define RO_DATA(align) RO_DATA_SECTION(align)
-
-#define SECURITY_INIT \
- .security_initcall.init : AT(ADDR(.security_initcall.init) - LOAD_OFFSET) { \
- VMLINUX_SYMBOL(__security_initcall_start) = .; \
- *(.security_initcall.init) \
- VMLINUX_SYMBOL(__security_initcall_end) = .; \
- }
-
-/* .text section. Map to function alignment to avoid address changes
- * during second ld run in second ld pass when generating System.map */
-#define TEXT_TEXT \
- ALIGN_FUNCTION(); \
- *(.text.hot) \
- *(.text) \
- *(.ref.text) \
- DEV_KEEP(init.text) \
- DEV_KEEP(exit.text) \
- CPU_KEEP(init.text) \
- CPU_KEEP(exit.text) \
- MEM_KEEP(init.text) \
- MEM_KEEP(exit.text) \
- *(.text.unlikely)
-
-
-/* sched.text is aling to function alignment to secure we have same
- * address even at second ld pass when generating System.map */
-#define SCHED_TEXT \
- ALIGN_FUNCTION(); \
- VMLINUX_SYMBOL(__sched_text_start) = .; \
- *(.sched.text) \
- VMLINUX_SYMBOL(__sched_text_end) = .;
-
-/* spinlock.text is aling to function alignment to secure we have same
- * address even at second ld pass when generating System.map */
-#define LOCK_TEXT \
- ALIGN_FUNCTION(); \
- VMLINUX_SYMBOL(__lock_text_start) = .; \
- *(.spinlock.text) \
- VMLINUX_SYMBOL(__lock_text_end) = .;
-
-#define KPROBES_TEXT \
- ALIGN_FUNCTION(); \
- VMLINUX_SYMBOL(__kprobes_text_start) = .; \
- *(.kprobes.text) \
- VMLINUX_SYMBOL(__kprobes_text_end) = .;
-
-#define ENTRY_TEXT \
- ALIGN_FUNCTION(); \
- VMLINUX_SYMBOL(__entry_text_start) = .; \
- *(.entry.text) \
- VMLINUX_SYMBOL(__entry_text_end) = .;
-
-#ifdef CONFIG_FUNCTION_GRAPH_TRACER
-#define IRQENTRY_TEXT \
- ALIGN_FUNCTION(); \
- VMLINUX_SYMBOL(__irqentry_text_start) = .; \
- *(.irqentry.text) \
- VMLINUX_SYMBOL(__irqentry_text_end) = .;
-#else
-#define IRQENTRY_TEXT
-#endif
-
-/* Section used for early init (in .S files) */
-#define HEAD_TEXT *(.head.text)
-
-#define HEAD_TEXT_SECTION \
- .head.text : AT(ADDR(.head.text) - LOAD_OFFSET) { \
- HEAD_TEXT \
- }
-
-/*
- * Exception table
- */
-#define EXCEPTION_TABLE(align) \
- . = ALIGN(align); \
- __ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) { \
- VMLINUX_SYMBOL(__start___ex_table) = .; \
- *(__ex_table) \
- VMLINUX_SYMBOL(__stop___ex_table) = .; \
- }
-
-/*
- * Init task
- */
-#define INIT_TASK_DATA_SECTION(align) \
- . = ALIGN(align); \
- .data..init_task : AT(ADDR(.data..init_task) - LOAD_OFFSET) { \
- INIT_TASK_DATA(align) \
- }
-
-#ifdef CONFIG_CONSTRUCTORS
-#define KERNEL_CTORS() . = ALIGN(8); \
- VMLINUX_SYMBOL(__ctors_start) = .; \
- *(.ctors) \
- VMLINUX_SYMBOL(__ctors_end) = .;
-#else
-#define KERNEL_CTORS()
-#endif
-
-/* init and exit section handling */
-#define INIT_DATA \
- *(.init.data) \
- DEV_DISCARD(init.data) \
- CPU_DISCARD(init.data) \
- MEM_DISCARD(init.data) \
- KERNEL_CTORS() \
- *(.init.rodata) \
- MCOUNT_REC() \
- FTRACE_EVENTS() \
- TRACE_SYSCALLS() \
- DEV_DISCARD(init.rodata) \
- CPU_DISCARD(init.rodata) \
- MEM_DISCARD(init.rodata) \
- KERNEL_DTB()
-
-#define INIT_TEXT \
- *(.init.text) \
- DEV_DISCARD(init.text) \
- CPU_DISCARD(init.text) \
- MEM_DISCARD(init.text)
-
-#define EXIT_DATA \
- *(.exit.data) \
- DEV_DISCARD(exit.data) \
- DEV_DISCARD(exit.rodata) \
- CPU_DISCARD(exit.data) \
- CPU_DISCARD(exit.rodata) \
- MEM_DISCARD(exit.data) \
- MEM_DISCARD(exit.rodata)
-
-#define EXIT_TEXT \
- *(.exit.text) \
- DEV_DISCARD(exit.text) \
- CPU_DISCARD(exit.text) \
- MEM_DISCARD(exit.text)
-
-#define EXIT_CALL \
- *(.exitcall.exit)
-
-/*
- * bss (Block Started by Symbol) - uninitialized data
- * zeroed during startup
- */
-#define SBSS(sbss_align) \
- . = ALIGN(sbss_align); \
- .sbss : AT(ADDR(.sbss) - LOAD_OFFSET) { \
- *(.sbss) \
- *(.scommon) \
- }
-
-#define BSS(bss_align) \
- . = ALIGN(bss_align); \
- .bss : AT(ADDR(.bss) - LOAD_OFFSET) { \
- *(.bss..page_aligned) \
- *(.dynbss) \
- *(.bss) \
- *(COMMON) \
- }
-
-/*
- * DWARF debug sections.
- * Symbols in the DWARF debugging sections are relative to
- * the beginning of the section so we begin them at 0.
- */
-#define DWARF_DEBUG \
- /* DWARF 1 */ \
- .debug 0 : { *(.debug) } \
- .line 0 : { *(.line) } \
- /* GNU DWARF 1 extensions */ \
- .debug_srcinfo 0 : { *(.debug_srcinfo) } \
- .debug_sfnames 0 : { *(.debug_sfnames) } \
- /* DWARF 1.1 and DWARF 2 */ \
- .debug_aranges 0 : { *(.debug_aranges) } \
- .debug_pubnames 0 : { *(.debug_pubnames) } \
- /* DWARF 2 */ \
- .debug_info 0 : { *(.debug_info \
- .gnu.linkonce.wi.*) } \
- .debug_abbrev 0 : { *(.debug_abbrev) } \
- .debug_line 0 : { *(.debug_line) } \
- .debug_frame 0 : { *(.debug_frame) } \
- .debug_str 0 : { *(.debug_str) } \
- .debug_loc 0 : { *(.debug_loc) } \
- .debug_macinfo 0 : { *(.debug_macinfo) } \
- /* SGI/MIPS DWARF 2 extensions */ \
- .debug_weaknames 0 : { *(.debug_weaknames) } \
- .debug_funcnames 0 : { *(.debug_funcnames) } \
- .debug_typenames 0 : { *(.debug_typenames) } \
- .debug_varnames 0 : { *(.debug_varnames) } \
-
- /* Stabs debugging sections. */
-#define STABS_DEBUG \
- .stab 0 : { *(.stab) } \
- .stabstr 0 : { *(.stabstr) } \
- .stab.excl 0 : { *(.stab.excl) } \
- .stab.exclstr 0 : { *(.stab.exclstr) } \
- .stab.index 0 : { *(.stab.index) } \
- .stab.indexstr 0 : { *(.stab.indexstr) } \
- .comment 0 : { *(.comment) }
-
-#ifdef CONFIG_GENERIC_BUG
-#define BUG_TABLE \
- . = ALIGN(8); \
- __bug_table : AT(ADDR(__bug_table) - LOAD_OFFSET) { \
- VMLINUX_SYMBOL(__start___bug_table) = .; \
- *(__bug_table) \
- VMLINUX_SYMBOL(__stop___bug_table) = .; \
- }
-#else
-#define BUG_TABLE
-#endif
-
-#ifdef CONFIG_PM_TRACE
-#define TRACEDATA \
- . = ALIGN(4); \
- .tracedata : AT(ADDR(.tracedata) - LOAD_OFFSET) { \
- VMLINUX_SYMBOL(__tracedata_start) = .; \
- *(.tracedata) \
- VMLINUX_SYMBOL(__tracedata_end) = .; \
- }
-#else
-#define TRACEDATA
-#endif
-
-#define NOTES \
- .notes : AT(ADDR(.notes) - LOAD_OFFSET) { \
- VMLINUX_SYMBOL(__start_notes) = .; \
- *(.note.*) \
- VMLINUX_SYMBOL(__stop_notes) = .; \
- }
-
-#define INIT_SETUP(initsetup_align) \
- . = ALIGN(initsetup_align); \
- VMLINUX_SYMBOL(__setup_start) = .; \
- *(.init.setup) \
- VMLINUX_SYMBOL(__setup_end) = .;
-
-#define INIT_CALLS_LEVEL(level) \
- VMLINUX_SYMBOL(__initcall##level##_start) = .; \
- *(.initcall##level##.init) \
- *(.initcall##level##s.init) \
-
-#define INIT_CALLS \
- VMLINUX_SYMBOL(__initcall_start) = .; \
- *(.initcallearly.init) \
- INIT_CALLS_LEVEL(0) \
- INIT_CALLS_LEVEL(1) \
- INIT_CALLS_LEVEL(2) \
- INIT_CALLS_LEVEL(3) \
- INIT_CALLS_LEVEL(4) \
- INIT_CALLS_LEVEL(5) \
- INIT_CALLS_LEVEL(rootfs) \
- INIT_CALLS_LEVEL(6) \
- INIT_CALLS_LEVEL(7) \
- VMLINUX_SYMBOL(__initcall_end) = .;
-
-#define CON_INITCALL \
- VMLINUX_SYMBOL(__con_initcall_start) = .; \
- *(.con_initcall.init) \
- VMLINUX_SYMBOL(__con_initcall_end) = .;
-
-#define SECURITY_INITCALL \
- VMLINUX_SYMBOL(__security_initcall_start) = .; \
- *(.security_initcall.init) \
- VMLINUX_SYMBOL(__security_initcall_end) = .;
-
-#ifdef CONFIG_BLK_DEV_INITRD
-#define INIT_RAM_FS \
- . = ALIGN(4); \
- VMLINUX_SYMBOL(__initramfs_start) = .; \
- *(.init.ramfs) \
- . = ALIGN(8); \
- *(.init.ramfs.info)
-#else
-#define INIT_RAM_FS
-#endif
-
-/*
- * Default discarded sections.
- *
- * Some archs want to discard exit text/data at runtime rather than
- * link time due to cross-section references such as alt instructions,
- * bug table, eh_frame, etc. DISCARDS must be the last of output
- * section definitions so that such archs put those in earlier section
- * definitions.
- */
-#define DISCARDS \
- /DISCARD/ : { \
- EXIT_TEXT \
- EXIT_DATA \
- EXIT_CALL \
- *(.discard) \
- *(.discard.*) \
- }
-
-/**
- * PERCPU_INPUT - the percpu input sections
- * @cacheline: cacheline size
- *
- * The core percpu section names and core symbols which do not rely
- * directly upon load addresses.
- *
- * @cacheline is used to align subsections to avoid false cacheline
- * sharing between subsections for different purposes.
- */
-#define PERCPU_INPUT(cacheline) \
- VMLINUX_SYMBOL(__per_cpu_start) = .; \
- *(.data..percpu..first) \
- . = ALIGN(PAGE_SIZE); \
- *(.data..percpu..page_aligned) \
- . = ALIGN(cacheline); \
- *(.data..percpu..readmostly) \
- . = ALIGN(cacheline); \
- *(.data..percpu) \
- *(.data..percpu..shared_aligned) \
- VMLINUX_SYMBOL(__per_cpu_end) = .;
-
-/**
- * PERCPU_VADDR - define output section for percpu area
- * @cacheline: cacheline size
- * @vaddr: explicit base address (optional)
- * @phdr: destination PHDR (optional)
- *
- * Macro which expands to output section for percpu area.
- *
- * @cacheline is used to align subsections to avoid false cacheline
- * sharing between subsections for different purposes.
- *
- * If @vaddr is not blank, it specifies explicit base address and all
- * percpu symbols will be offset from the given address. If blank,
- * @vaddr always equals @laddr + LOAD_OFFSET.
- *
- * @phdr defines the output PHDR to use if not blank. Be warned that
- * output PHDR is sticky. If @phdr is specified, the next output
- * section in the linker script will go there too. @phdr should have
- * a leading colon.
- *
- * Note that this macros defines __per_cpu_load as an absolute symbol.
- * If there is no need to put the percpu section at a predetermined
- * address, use PERCPU_SECTION.
- */
-#define PERCPU_VADDR(cacheline, vaddr, phdr) \
- VMLINUX_SYMBOL(__per_cpu_load) = .; \
- .data..percpu vaddr : AT(VMLINUX_SYMBOL(__per_cpu_load) \
- - LOAD_OFFSET) { \
- PERCPU_INPUT(cacheline) \
- } phdr \
- . = VMLINUX_SYMBOL(__per_cpu_load) + SIZEOF(.data..percpu);
-
-/**
- * PERCPU_SECTION - define output section for percpu area, simple version
- * @cacheline: cacheline size
- *
- * Align to PAGE_SIZE and outputs output section for percpu area. This
- * macro doesn't manipulate @vaddr or @phdr and __per_cpu_load and
- * __per_cpu_start will be identical.
- *
- * This macro is equivalent to ALIGN(PAGE_SIZE); PERCPU_VADDR(@cacheline,,)
- * except that __per_cpu_load is defined as a relative symbol against
- * .data..percpu which is required for relocatable x86_32 configuration.
- */
-#define PERCPU_SECTION(cacheline) \
- . = ALIGN(PAGE_SIZE); \
- .data..percpu : AT(ADDR(.data..percpu) - LOAD_OFFSET) { \
- VMLINUX_SYMBOL(__per_cpu_load) = .; \
- PERCPU_INPUT(cacheline) \
- }
-
-
-/*
- * Definition of the high level *_SECTION macros
- * They will fit only a subset of the architectures
- */
-
-
-/*
- * Writeable data.
- * All sections are combined in a single .data section.
- * The sections following CONSTRUCTORS are arranged so their
- * typical alignment matches.
- * A cacheline is typical/always less than a PAGE_SIZE so
- * the sections that has this restriction (or similar)
- * is located before the ones requiring PAGE_SIZE alignment.
- * NOSAVE_DATA starts and ends with a PAGE_SIZE alignment which
- * matches the requirement of PAGE_ALIGNED_DATA.
- *
- * use 0 as page_align if page_aligned data is not used */
-#define RW_DATA_SECTION(cacheline, pagealigned, inittask) \
- . = ALIGN(PAGE_SIZE); \
- .data : AT(ADDR(.data) - LOAD_OFFSET) { \
- INIT_TASK_DATA(inittask) \
- NOSAVE_DATA \
- PAGE_ALIGNED_DATA(pagealigned) \
- CACHELINE_ALIGNED_DATA(cacheline) \
- READ_MOSTLY_DATA(cacheline) \
- DATA_DATA \
- CONSTRUCTORS \
- }
-
-#define INIT_TEXT_SECTION(inittext_align) \
- . = ALIGN(inittext_align); \
- .init.text : AT(ADDR(.init.text) - LOAD_OFFSET) { \
- VMLINUX_SYMBOL(_sinittext) = .; \
- INIT_TEXT \
- VMLINUX_SYMBOL(_einittext) = .; \
- }
-
-#define INIT_DATA_SECTION(initsetup_align) \
- .init.data : AT(ADDR(.init.data) - LOAD_OFFSET) { \
- INIT_DATA \
- INIT_SETUP(initsetup_align) \
- INIT_CALLS \
- CON_INITCALL \
- SECURITY_INITCALL \
- INIT_RAM_FS \
- }
-
-#define BSS_SECTION(sbss_align, bss_align, stop_align) \
- . = ALIGN(sbss_align); \
- VMLINUX_SYMBOL(__bss_start) = .; \
- SBSS(sbss_align) \
- BSS(bss_align) \
- . = ALIGN(stop_align); \
- VMLINUX_SYMBOL(__bss_stop) = .;
diff --git a/ANDROID_3.4.5/include/asm-generic/xor.h b/ANDROID_3.4.5/include/asm-generic/xor.h
deleted file mode 100644
index 6028fb86..00000000
--- a/ANDROID_3.4.5/include/asm-generic/xor.h
+++ /dev/null
@@ -1,718 +0,0 @@
-/*
- * include/asm-generic/xor.h
- *
- * Generic optimized RAID-5 checksumming 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.
- *
- * You should have received a copy of the GNU General Public License
- * (for example /usr/src/linux/COPYING); if not, write to the Free
- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <linux/prefetch.h>
-
-static void
-xor_8regs_2(unsigned long bytes, unsigned long *p1, unsigned long *p2)
-{
- long lines = bytes / (sizeof (long)) / 8;
-
- do {
- p1[0] ^= p2[0];
- p1[1] ^= p2[1];
- p1[2] ^= p2[2];
- p1[3] ^= p2[3];
- p1[4] ^= p2[4];
- p1[5] ^= p2[5];
- p1[6] ^= p2[6];
- p1[7] ^= p2[7];
- p1 += 8;
- p2 += 8;
- } while (--lines > 0);
-}
-
-static void
-xor_8regs_3(unsigned long bytes, unsigned long *p1, unsigned long *p2,
- unsigned long *p3)
-{
- long lines = bytes / (sizeof (long)) / 8;
-
- do {
- p1[0] ^= p2[0] ^ p3[0];
- p1[1] ^= p2[1] ^ p3[1];
- p1[2] ^= p2[2] ^ p3[2];
- p1[3] ^= p2[3] ^ p3[3];
- p1[4] ^= p2[4] ^ p3[4];
- p1[5] ^= p2[5] ^ p3[5];
- p1[6] ^= p2[6] ^ p3[6];
- p1[7] ^= p2[7] ^ p3[7];
- p1 += 8;
- p2 += 8;
- p3 += 8;
- } while (--lines > 0);
-}
-
-static void
-xor_8regs_4(unsigned long bytes, unsigned long *p1, unsigned long *p2,
- unsigned long *p3, unsigned long *p4)
-{
- long lines = bytes / (sizeof (long)) / 8;
-
- do {
- p1[0] ^= p2[0] ^ p3[0] ^ p4[0];
- p1[1] ^= p2[1] ^ p3[1] ^ p4[1];
- p1[2] ^= p2[2] ^ p3[2] ^ p4[2];
- p1[3] ^= p2[3] ^ p3[3] ^ p4[3];
- p1[4] ^= p2[4] ^ p3[4] ^ p4[4];
- p1[5] ^= p2[5] ^ p3[5] ^ p4[5];
- p1[6] ^= p2[6] ^ p3[6] ^ p4[6];
- p1[7] ^= p2[7] ^ p3[7] ^ p4[7];
- p1 += 8;
- p2 += 8;
- p3 += 8;
- p4 += 8;
- } while (--lines > 0);
-}
-
-static void
-xor_8regs_5(unsigned long bytes, unsigned long *p1, unsigned long *p2,
- unsigned long *p3, unsigned long *p4, unsigned long *p5)
-{
- long lines = bytes / (sizeof (long)) / 8;
-
- do {
- p1[0] ^= p2[0] ^ p3[0] ^ p4[0] ^ p5[0];
- p1[1] ^= p2[1] ^ p3[1] ^ p4[1] ^ p5[1];
- p1[2] ^= p2[2] ^ p3[2] ^ p4[2] ^ p5[2];
- p1[3] ^= p2[3] ^ p3[3] ^ p4[3] ^ p5[3];
- p1[4] ^= p2[4] ^ p3[4] ^ p4[4] ^ p5[4];
- p1[5] ^= p2[5] ^ p3[5] ^ p4[5] ^ p5[5];
- p1[6] ^= p2[6] ^ p3[6] ^ p4[6] ^ p5[6];
- p1[7] ^= p2[7] ^ p3[7] ^ p4[7] ^ p5[7];
- p1 += 8;
- p2 += 8;
- p3 += 8;
- p4 += 8;
- p5 += 8;
- } while (--lines > 0);
-}
-
-static void
-xor_32regs_2(unsigned long bytes, unsigned long *p1, unsigned long *p2)
-{
- long lines = bytes / (sizeof (long)) / 8;
-
- do {
- register long d0, d1, d2, d3, d4, d5, d6, d7;
- d0 = p1[0]; /* Pull the stuff into registers */
- d1 = p1[1]; /* ... in bursts, if possible. */
- d2 = p1[2];
- d3 = p1[3];
- d4 = p1[4];
- d5 = p1[5];
- d6 = p1[6];
- d7 = p1[7];
- d0 ^= p2[0];
- d1 ^= p2[1];
- d2 ^= p2[2];
- d3 ^= p2[3];
- d4 ^= p2[4];
- d5 ^= p2[5];
- d6 ^= p2[6];
- d7 ^= p2[7];
- p1[0] = d0; /* Store the result (in bursts) */
- p1[1] = d1;
- p1[2] = d2;
- p1[3] = d3;
- p1[4] = d4;
- p1[5] = d5;
- p1[6] = d6;
- p1[7] = d7;
- p1 += 8;
- p2 += 8;
- } while (--lines > 0);
-}
-
-static void
-xor_32regs_3(unsigned long bytes, unsigned long *p1, unsigned long *p2,
- unsigned long *p3)
-{
- long lines = bytes / (sizeof (long)) / 8;
-
- do {
- register long d0, d1, d2, d3, d4, d5, d6, d7;
- d0 = p1[0]; /* Pull the stuff into registers */
- d1 = p1[1]; /* ... in bursts, if possible. */
- d2 = p1[2];
- d3 = p1[3];
- d4 = p1[4];
- d5 = p1[5];
- d6 = p1[6];
- d7 = p1[7];
- d0 ^= p2[0];
- d1 ^= p2[1];
- d2 ^= p2[2];
- d3 ^= p2[3];
- d4 ^= p2[4];
- d5 ^= p2[5];
- d6 ^= p2[6];
- d7 ^= p2[7];
- d0 ^= p3[0];
- d1 ^= p3[1];
- d2 ^= p3[2];
- d3 ^= p3[3];
- d4 ^= p3[4];
- d5 ^= p3[5];
- d6 ^= p3[6];
- d7 ^= p3[7];
- p1[0] = d0; /* Store the result (in bursts) */
- p1[1] = d1;
- p1[2] = d2;
- p1[3] = d3;
- p1[4] = d4;
- p1[5] = d5;
- p1[6] = d6;
- p1[7] = d7;
- p1 += 8;
- p2 += 8;
- p3 += 8;
- } while (--lines > 0);
-}
-
-static void
-xor_32regs_4(unsigned long bytes, unsigned long *p1, unsigned long *p2,
- unsigned long *p3, unsigned long *p4)
-{
- long lines = bytes / (sizeof (long)) / 8;
-
- do {
- register long d0, d1, d2, d3, d4, d5, d6, d7;
- d0 = p1[0]; /* Pull the stuff into registers */
- d1 = p1[1]; /* ... in bursts, if possible. */
- d2 = p1[2];
- d3 = p1[3];
- d4 = p1[4];
- d5 = p1[5];
- d6 = p1[6];
- d7 = p1[7];
- d0 ^= p2[0];
- d1 ^= p2[1];
- d2 ^= p2[2];
- d3 ^= p2[3];
- d4 ^= p2[4];
- d5 ^= p2[5];
- d6 ^= p2[6];
- d7 ^= p2[7];
- d0 ^= p3[0];
- d1 ^= p3[1];
- d2 ^= p3[2];
- d3 ^= p3[3];
- d4 ^= p3[4];
- d5 ^= p3[5];
- d6 ^= p3[6];
- d7 ^= p3[7];
- d0 ^= p4[0];
- d1 ^= p4[1];
- d2 ^= p4[2];
- d3 ^= p4[3];
- d4 ^= p4[4];
- d5 ^= p4[5];
- d6 ^= p4[6];
- d7 ^= p4[7];
- p1[0] = d0; /* Store the result (in bursts) */
- p1[1] = d1;
- p1[2] = d2;
- p1[3] = d3;
- p1[4] = d4;
- p1[5] = d5;
- p1[6] = d6;
- p1[7] = d7;
- p1 += 8;
- p2 += 8;
- p3 += 8;
- p4 += 8;
- } while (--lines > 0);
-}
-
-static void
-xor_32regs_5(unsigned long bytes, unsigned long *p1, unsigned long *p2,
- unsigned long *p3, unsigned long *p4, unsigned long *p5)
-{
- long lines = bytes / (sizeof (long)) / 8;
-
- do {
- register long d0, d1, d2, d3, d4, d5, d6, d7;
- d0 = p1[0]; /* Pull the stuff into registers */
- d1 = p1[1]; /* ... in bursts, if possible. */
- d2 = p1[2];
- d3 = p1[3];
- d4 = p1[4];
- d5 = p1[5];
- d6 = p1[6];
- d7 = p1[7];
- d0 ^= p2[0];
- d1 ^= p2[1];
- d2 ^= p2[2];
- d3 ^= p2[3];
- d4 ^= p2[4];
- d5 ^= p2[5];
- d6 ^= p2[6];
- d7 ^= p2[7];
- d0 ^= p3[0];
- d1 ^= p3[1];
- d2 ^= p3[2];
- d3 ^= p3[3];
- d4 ^= p3[4];
- d5 ^= p3[5];
- d6 ^= p3[6];
- d7 ^= p3[7];
- d0 ^= p4[0];
- d1 ^= p4[1];
- d2 ^= p4[2];
- d3 ^= p4[3];
- d4 ^= p4[4];
- d5 ^= p4[5];
- d6 ^= p4[6];
- d7 ^= p4[7];
- d0 ^= p5[0];
- d1 ^= p5[1];
- d2 ^= p5[2];
- d3 ^= p5[3];
- d4 ^= p5[4];
- d5 ^= p5[5];
- d6 ^= p5[6];
- d7 ^= p5[7];
- p1[0] = d0; /* Store the result (in bursts) */
- p1[1] = d1;
- p1[2] = d2;
- p1[3] = d3;
- p1[4] = d4;
- p1[5] = d5;
- p1[6] = d6;
- p1[7] = d7;
- p1 += 8;
- p2 += 8;
- p3 += 8;
- p4 += 8;
- p5 += 8;
- } while (--lines > 0);
-}
-
-static void
-xor_8regs_p_2(unsigned long bytes, unsigned long *p1, unsigned long *p2)
-{
- long lines = bytes / (sizeof (long)) / 8 - 1;
- prefetchw(p1);
- prefetch(p2);
-
- do {
- prefetchw(p1+8);
- prefetch(p2+8);
- once_more:
- p1[0] ^= p2[0];
- p1[1] ^= p2[1];
- p1[2] ^= p2[2];
- p1[3] ^= p2[3];
- p1[4] ^= p2[4];
- p1[5] ^= p2[5];
- p1[6] ^= p2[6];
- p1[7] ^= p2[7];
- p1 += 8;
- p2 += 8;
- } while (--lines > 0);
- if (lines == 0)
- goto once_more;
-}
-
-static void
-xor_8regs_p_3(unsigned long bytes, unsigned long *p1, unsigned long *p2,
- unsigned long *p3)
-{
- long lines = bytes / (sizeof (long)) / 8 - 1;
- prefetchw(p1);
- prefetch(p2);
- prefetch(p3);
-
- do {
- prefetchw(p1+8);
- prefetch(p2+8);
- prefetch(p3+8);
- once_more:
- p1[0] ^= p2[0] ^ p3[0];
- p1[1] ^= p2[1] ^ p3[1];
- p1[2] ^= p2[2] ^ p3[2];
- p1[3] ^= p2[3] ^ p3[3];
- p1[4] ^= p2[4] ^ p3[4];
- p1[5] ^= p2[5] ^ p3[5];
- p1[6] ^= p2[6] ^ p3[6];
- p1[7] ^= p2[7] ^ p3[7];
- p1 += 8;
- p2 += 8;
- p3 += 8;
- } while (--lines > 0);
- if (lines == 0)
- goto once_more;
-}
-
-static void
-xor_8regs_p_4(unsigned long bytes, unsigned long *p1, unsigned long *p2,
- unsigned long *p3, unsigned long *p4)
-{
- long lines = bytes / (sizeof (long)) / 8 - 1;
-
- prefetchw(p1);
- prefetch(p2);
- prefetch(p3);
- prefetch(p4);
-
- do {
- prefetchw(p1+8);
- prefetch(p2+8);
- prefetch(p3+8);
- prefetch(p4+8);
- once_more:
- p1[0] ^= p2[0] ^ p3[0] ^ p4[0];
- p1[1] ^= p2[1] ^ p3[1] ^ p4[1];
- p1[2] ^= p2[2] ^ p3[2] ^ p4[2];
- p1[3] ^= p2[3] ^ p3[3] ^ p4[3];
- p1[4] ^= p2[4] ^ p3[4] ^ p4[4];
- p1[5] ^= p2[5] ^ p3[5] ^ p4[5];
- p1[6] ^= p2[6] ^ p3[6] ^ p4[6];
- p1[7] ^= p2[7] ^ p3[7] ^ p4[7];
- p1 += 8;
- p2 += 8;
- p3 += 8;
- p4 += 8;
- } while (--lines > 0);
- if (lines == 0)
- goto once_more;
-}
-
-static void
-xor_8regs_p_5(unsigned long bytes, unsigned long *p1, unsigned long *p2,
- unsigned long *p3, unsigned long *p4, unsigned long *p5)
-{
- long lines = bytes / (sizeof (long)) / 8 - 1;
-
- prefetchw(p1);
- prefetch(p2);
- prefetch(p3);
- prefetch(p4);
- prefetch(p5);
-
- do {
- prefetchw(p1+8);
- prefetch(p2+8);
- prefetch(p3+8);
- prefetch(p4+8);
- prefetch(p5+8);
- once_more:
- p1[0] ^= p2[0] ^ p3[0] ^ p4[0] ^ p5[0];
- p1[1] ^= p2[1] ^ p3[1] ^ p4[1] ^ p5[1];
- p1[2] ^= p2[2] ^ p3[2] ^ p4[2] ^ p5[2];
- p1[3] ^= p2[3] ^ p3[3] ^ p4[3] ^ p5[3];
- p1[4] ^= p2[4] ^ p3[4] ^ p4[4] ^ p5[4];
- p1[5] ^= p2[5] ^ p3[5] ^ p4[5] ^ p5[5];
- p1[6] ^= p2[6] ^ p3[6] ^ p4[6] ^ p5[6];
- p1[7] ^= p2[7] ^ p3[7] ^ p4[7] ^ p5[7];
- p1 += 8;
- p2 += 8;
- p3 += 8;
- p4 += 8;
- p5 += 8;
- } while (--lines > 0);
- if (lines == 0)
- goto once_more;
-}
-
-static void
-xor_32regs_p_2(unsigned long bytes, unsigned long *p1, unsigned long *p2)
-{
- long lines = bytes / (sizeof (long)) / 8 - 1;
-
- prefetchw(p1);
- prefetch(p2);
-
- do {
- register long d0, d1, d2, d3, d4, d5, d6, d7;
-
- prefetchw(p1+8);
- prefetch(p2+8);
- once_more:
- d0 = p1[0]; /* Pull the stuff into registers */
- d1 = p1[1]; /* ... in bursts, if possible. */
- d2 = p1[2];
- d3 = p1[3];
- d4 = p1[4];
- d5 = p1[5];
- d6 = p1[6];
- d7 = p1[7];
- d0 ^= p2[0];
- d1 ^= p2[1];
- d2 ^= p2[2];
- d3 ^= p2[3];
- d4 ^= p2[4];
- d5 ^= p2[5];
- d6 ^= p2[6];
- d7 ^= p2[7];
- p1[0] = d0; /* Store the result (in bursts) */
- p1[1] = d1;
- p1[2] = d2;
- p1[3] = d3;
- p1[4] = d4;
- p1[5] = d5;
- p1[6] = d6;
- p1[7] = d7;
- p1 += 8;
- p2 += 8;
- } while (--lines > 0);
- if (lines == 0)
- goto once_more;
-}
-
-static void
-xor_32regs_p_3(unsigned long bytes, unsigned long *p1, unsigned long *p2,
- unsigned long *p3)
-{
- long lines = bytes / (sizeof (long)) / 8 - 1;
-
- prefetchw(p1);
- prefetch(p2);
- prefetch(p3);
-
- do {
- register long d0, d1, d2, d3, d4, d5, d6, d7;
-
- prefetchw(p1+8);
- prefetch(p2+8);
- prefetch(p3+8);
- once_more:
- d0 = p1[0]; /* Pull the stuff into registers */
- d1 = p1[1]; /* ... in bursts, if possible. */
- d2 = p1[2];
- d3 = p1[3];
- d4 = p1[4];
- d5 = p1[5];
- d6 = p1[6];
- d7 = p1[7];
- d0 ^= p2[0];
- d1 ^= p2[1];
- d2 ^= p2[2];
- d3 ^= p2[3];
- d4 ^= p2[4];
- d5 ^= p2[5];
- d6 ^= p2[6];
- d7 ^= p2[7];
- d0 ^= p3[0];
- d1 ^= p3[1];
- d2 ^= p3[2];
- d3 ^= p3[3];
- d4 ^= p3[4];
- d5 ^= p3[5];
- d6 ^= p3[6];
- d7 ^= p3[7];
- p1[0] = d0; /* Store the result (in bursts) */
- p1[1] = d1;
- p1[2] = d2;
- p1[3] = d3;
- p1[4] = d4;
- p1[5] = d5;
- p1[6] = d6;
- p1[7] = d7;
- p1 += 8;
- p2 += 8;
- p3 += 8;
- } while (--lines > 0);
- if (lines == 0)
- goto once_more;
-}
-
-static void
-xor_32regs_p_4(unsigned long bytes, unsigned long *p1, unsigned long *p2,
- unsigned long *p3, unsigned long *p4)
-{
- long lines = bytes / (sizeof (long)) / 8 - 1;
-
- prefetchw(p1);
- prefetch(p2);
- prefetch(p3);
- prefetch(p4);
-
- do {
- register long d0, d1, d2, d3, d4, d5, d6, d7;
-
- prefetchw(p1+8);
- prefetch(p2+8);
- prefetch(p3+8);
- prefetch(p4+8);
- once_more:
- d0 = p1[0]; /* Pull the stuff into registers */
- d1 = p1[1]; /* ... in bursts, if possible. */
- d2 = p1[2];
- d3 = p1[3];
- d4 = p1[4];
- d5 = p1[5];
- d6 = p1[6];
- d7 = p1[7];
- d0 ^= p2[0];
- d1 ^= p2[1];
- d2 ^= p2[2];
- d3 ^= p2[3];
- d4 ^= p2[4];
- d5 ^= p2[5];
- d6 ^= p2[6];
- d7 ^= p2[7];
- d0 ^= p3[0];
- d1 ^= p3[1];
- d2 ^= p3[2];
- d3 ^= p3[3];
- d4 ^= p3[4];
- d5 ^= p3[5];
- d6 ^= p3[6];
- d7 ^= p3[7];
- d0 ^= p4[0];
- d1 ^= p4[1];
- d2 ^= p4[2];
- d3 ^= p4[3];
- d4 ^= p4[4];
- d5 ^= p4[5];
- d6 ^= p4[6];
- d7 ^= p4[7];
- p1[0] = d0; /* Store the result (in bursts) */
- p1[1] = d1;
- p1[2] = d2;
- p1[3] = d3;
- p1[4] = d4;
- p1[5] = d5;
- p1[6] = d6;
- p1[7] = d7;
- p1 += 8;
- p2 += 8;
- p3 += 8;
- p4 += 8;
- } while (--lines > 0);
- if (lines == 0)
- goto once_more;
-}
-
-static void
-xor_32regs_p_5(unsigned long bytes, unsigned long *p1, unsigned long *p2,
- unsigned long *p3, unsigned long *p4, unsigned long *p5)
-{
- long lines = bytes / (sizeof (long)) / 8 - 1;
-
- prefetchw(p1);
- prefetch(p2);
- prefetch(p3);
- prefetch(p4);
- prefetch(p5);
-
- do {
- register long d0, d1, d2, d3, d4, d5, d6, d7;
-
- prefetchw(p1+8);
- prefetch(p2+8);
- prefetch(p3+8);
- prefetch(p4+8);
- prefetch(p5+8);
- once_more:
- d0 = p1[0]; /* Pull the stuff into registers */
- d1 = p1[1]; /* ... in bursts, if possible. */
- d2 = p1[2];
- d3 = p1[3];
- d4 = p1[4];
- d5 = p1[5];
- d6 = p1[6];
- d7 = p1[7];
- d0 ^= p2[0];
- d1 ^= p2[1];
- d2 ^= p2[2];
- d3 ^= p2[3];
- d4 ^= p2[4];
- d5 ^= p2[5];
- d6 ^= p2[6];
- d7 ^= p2[7];
- d0 ^= p3[0];
- d1 ^= p3[1];
- d2 ^= p3[2];
- d3 ^= p3[3];
- d4 ^= p3[4];
- d5 ^= p3[5];
- d6 ^= p3[6];
- d7 ^= p3[7];
- d0 ^= p4[0];
- d1 ^= p4[1];
- d2 ^= p4[2];
- d3 ^= p4[3];
- d4 ^= p4[4];
- d5 ^= p4[5];
- d6 ^= p4[6];
- d7 ^= p4[7];
- d0 ^= p5[0];
- d1 ^= p5[1];
- d2 ^= p5[2];
- d3 ^= p5[3];
- d4 ^= p5[4];
- d5 ^= p5[5];
- d6 ^= p5[6];
- d7 ^= p5[7];
- p1[0] = d0; /* Store the result (in bursts) */
- p1[1] = d1;
- p1[2] = d2;
- p1[3] = d3;
- p1[4] = d4;
- p1[5] = d5;
- p1[6] = d6;
- p1[7] = d7;
- p1 += 8;
- p2 += 8;
- p3 += 8;
- p4 += 8;
- p5 += 8;
- } while (--lines > 0);
- if (lines == 0)
- goto once_more;
-}
-
-static struct xor_block_template xor_block_8regs = {
- .name = "8regs",
- .do_2 = xor_8regs_2,
- .do_3 = xor_8regs_3,
- .do_4 = xor_8regs_4,
- .do_5 = xor_8regs_5,
-};
-
-static struct xor_block_template xor_block_32regs = {
- .name = "32regs",
- .do_2 = xor_32regs_2,
- .do_3 = xor_32regs_3,
- .do_4 = xor_32regs_4,
- .do_5 = xor_32regs_5,
-};
-
-static struct xor_block_template xor_block_8regs_p = {
- .name = "8regs_prefetch",
- .do_2 = xor_8regs_p_2,
- .do_3 = xor_8regs_p_3,
- .do_4 = xor_8regs_p_4,
- .do_5 = xor_8regs_p_5,
-};
-
-static struct xor_block_template xor_block_32regs_p = {
- .name = "32regs_prefetch",
- .do_2 = xor_32regs_p_2,
- .do_3 = xor_32regs_p_3,
- .do_4 = xor_32regs_p_4,
- .do_5 = xor_32regs_p_5,
-};
-
-#define XOR_TRY_TEMPLATES \
- do { \
- xor_speed(&xor_block_8regs); \
- xor_speed(&xor_block_8regs_p); \
- xor_speed(&xor_block_32regs); \
- xor_speed(&xor_block_32regs_p); \
- } while (0)
diff --git a/ANDROID_3.4.5/include/crypto/aead.h b/ANDROID_3.4.5/include/crypto/aead.h
deleted file mode 100644
index 0edf949f..00000000
--- a/ANDROID_3.4.5/include/crypto/aead.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * AEAD: Authenticated Encryption with Associated Data
- *
- * Copyright (c) 2007 Herbert Xu <herbert@gondor.apana.org.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_AEAD_H
-#define _CRYPTO_AEAD_H
-
-#include <linux/crypto.h>
-#include <linux/kernel.h>
-#include <linux/slab.h>
-
-/**
- * struct aead_givcrypt_request - AEAD request with IV generation
- * @seq: Sequence number for IV generation
- * @giv: Space for generated IV
- * @areq: The AEAD request itself
- */
-struct aead_givcrypt_request {
- u64 seq;
- u8 *giv;
-
- struct aead_request areq;
-};
-
-static inline struct crypto_aead *aead_givcrypt_reqtfm(
- struct aead_givcrypt_request *req)
-{
- return crypto_aead_reqtfm(&req->areq);
-}
-
-static inline int crypto_aead_givencrypt(struct aead_givcrypt_request *req)
-{
- struct aead_tfm *crt = crypto_aead_crt(aead_givcrypt_reqtfm(req));
- return crt->givencrypt(req);
-};
-
-static inline int crypto_aead_givdecrypt(struct aead_givcrypt_request *req)
-{
- struct aead_tfm *crt = crypto_aead_crt(aead_givcrypt_reqtfm(req));
- return crt->givdecrypt(req);
-};
-
-static inline void aead_givcrypt_set_tfm(struct aead_givcrypt_request *req,
- struct crypto_aead *tfm)
-{
- req->areq.base.tfm = crypto_aead_tfm(tfm);
-}
-
-static inline struct aead_givcrypt_request *aead_givcrypt_alloc(
- struct crypto_aead *tfm, gfp_t gfp)
-{
- struct aead_givcrypt_request *req;
-
- req = kmalloc(sizeof(struct aead_givcrypt_request) +
- crypto_aead_reqsize(tfm), gfp);
-
- if (likely(req))
- aead_givcrypt_set_tfm(req, tfm);
-
- return req;
-}
-
-static inline void aead_givcrypt_free(struct aead_givcrypt_request *req)
-{
- kfree(req);
-}
-
-static inline void aead_givcrypt_set_callback(
- struct aead_givcrypt_request *req, u32 flags,
- crypto_completion_t complete, void *data)
-{
- aead_request_set_callback(&req->areq, flags, complete, data);
-}
-
-static inline void aead_givcrypt_set_crypt(struct aead_givcrypt_request *req,
- struct scatterlist *src,
- struct scatterlist *dst,
- unsigned int nbytes, void *iv)
-{
- aead_request_set_crypt(&req->areq, src, dst, nbytes, iv);
-}
-
-static inline void aead_givcrypt_set_assoc(struct aead_givcrypt_request *req,
- struct scatterlist *assoc,
- unsigned int assoclen)
-{
- aead_request_set_assoc(&req->areq, assoc, assoclen);
-}
-
-static inline void aead_givcrypt_set_giv(struct aead_givcrypt_request *req,
- u8 *giv, u64 seq)
-{
- req->giv = giv;
- req->seq = seq;
-}
-
-#endif /* _CRYPTO_AEAD_H */
diff --git a/ANDROID_3.4.5/include/crypto/aes.h b/ANDROID_3.4.5/include/crypto/aes.h
deleted file mode 100644
index 7524ba3b..00000000
--- a/ANDROID_3.4.5/include/crypto/aes.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Common values for AES algorithms
- */
-
-#ifndef _CRYPTO_AES_H
-#define _CRYPTO_AES_H
-
-#include <linux/types.h>
-#include <linux/crypto.h>
-
-#define AES_MIN_KEY_SIZE 16
-#define AES_MAX_KEY_SIZE 32
-#define AES_KEYSIZE_128 16
-#define AES_KEYSIZE_192 24
-#define AES_KEYSIZE_256 32
-#define AES_BLOCK_SIZE 16
-#define AES_MAX_KEYLENGTH (15 * 16)
-#define AES_MAX_KEYLENGTH_U32 (AES_MAX_KEYLENGTH / sizeof(u32))
-
-/*
- * Please ensure that the first two fields are 16-byte aligned
- * relative to the start of the structure, i.e., don't move them!
- */
-struct crypto_aes_ctx {
- u32 key_enc[AES_MAX_KEYLENGTH_U32];
- u32 key_dec[AES_MAX_KEYLENGTH_U32];
- u32 key_length;
-};
-
-extern const u32 crypto_ft_tab[4][256];
-extern const u32 crypto_fl_tab[4][256];
-extern const u32 crypto_it_tab[4][256];
-extern const u32 crypto_il_tab[4][256];
-
-int crypto_aes_set_key(struct crypto_tfm *tfm, const u8 *in_key,
- unsigned int key_len);
-int crypto_aes_expand_key(struct crypto_aes_ctx *ctx, const u8 *in_key,
- unsigned int key_len);
-#endif
diff --git a/ANDROID_3.4.5/include/crypto/algapi.h b/ANDROID_3.4.5/include/crypto/algapi.h
deleted file mode 100644
index 418d270e..00000000
--- a/ANDROID_3.4.5/include/crypto/algapi.h
+++ /dev/null
@@ -1,390 +0,0 @@
-/*
- * Cryptographic API for algorithms (i.e., low-level API).
- *
- * Copyright (c) 2006 Herbert Xu <herbert@gondor.apana.org.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_ALGAPI_H
-#define _CRYPTO_ALGAPI_H
-
-#include <linux/crypto.h>
-#include <linux/list.h>
-#include <linux/kernel.h>
-#include <linux/skbuff.h>
-
-struct module;
-struct rtattr;
-struct seq_file;
-
-struct crypto_type {
- unsigned int (*ctxsize)(struct crypto_alg *alg, u32 type, u32 mask);
- unsigned int (*extsize)(struct crypto_alg *alg);
- int (*init)(struct crypto_tfm *tfm, u32 type, u32 mask);
- int (*init_tfm)(struct crypto_tfm *tfm);
- void (*show)(struct seq_file *m, struct crypto_alg *alg);
- int (*report)(struct sk_buff *skb, struct crypto_alg *alg);
- struct crypto_alg *(*lookup)(const char *name, u32 type, u32 mask);
-
- unsigned int type;
- unsigned int maskclear;
- unsigned int maskset;
- unsigned int tfmsize;
-};
-
-struct crypto_instance {
- struct crypto_alg alg;
-
- struct crypto_template *tmpl;
- struct hlist_node list;
-
- void *__ctx[] CRYPTO_MINALIGN_ATTR;
-};
-
-struct crypto_template {
- struct list_head list;
- struct hlist_head instances;
- struct module *module;
-
- struct crypto_instance *(*alloc)(struct rtattr **tb);
- void (*free)(struct crypto_instance *inst);
- int (*create)(struct crypto_template *tmpl, struct rtattr **tb);
-
- char name[CRYPTO_MAX_ALG_NAME];
-};
-
-struct crypto_spawn {
- struct list_head list;
- struct crypto_alg *alg;
- struct crypto_instance *inst;
- const struct crypto_type *frontend;
- u32 mask;
-};
-
-struct crypto_queue {
- struct list_head list;
- struct list_head *backlog;
-
- unsigned int qlen;
- unsigned int max_qlen;
-};
-
-struct scatter_walk {
- struct scatterlist *sg;
- unsigned int offset;
-};
-
-struct blkcipher_walk {
- union {
- struct {
- struct page *page;
- unsigned long offset;
- } phys;
-
- struct {
- u8 *page;
- u8 *addr;
- } virt;
- } src, dst;
-
- struct scatter_walk in;
- unsigned int nbytes;
-
- struct scatter_walk out;
- unsigned int total;
-
- void *page;
- u8 *buffer;
- u8 *iv;
-
- int flags;
- unsigned int blocksize;
-};
-
-struct ablkcipher_walk {
- struct {
- struct page *page;
- unsigned int offset;
- } src, dst;
-
- struct scatter_walk in;
- unsigned int nbytes;
- struct scatter_walk out;
- unsigned int total;
- struct list_head buffers;
- u8 *iv_buffer;
- u8 *iv;
- int flags;
- unsigned int blocksize;
-};
-
-extern const struct crypto_type crypto_ablkcipher_type;
-extern const struct crypto_type crypto_aead_type;
-extern const struct crypto_type crypto_blkcipher_type;
-
-void crypto_mod_put(struct crypto_alg *alg);
-
-int crypto_register_template(struct crypto_template *tmpl);
-void crypto_unregister_template(struct crypto_template *tmpl);
-struct crypto_template *crypto_lookup_template(const char *name);
-
-int crypto_register_instance(struct crypto_template *tmpl,
- struct crypto_instance *inst);
-int crypto_unregister_instance(struct crypto_alg *alg);
-
-int crypto_init_spawn(struct crypto_spawn *spawn, struct crypto_alg *alg,
- struct crypto_instance *inst, u32 mask);
-int crypto_init_spawn2(struct crypto_spawn *spawn, struct crypto_alg *alg,
- struct crypto_instance *inst,
- const struct crypto_type *frontend);
-
-void crypto_drop_spawn(struct crypto_spawn *spawn);
-struct crypto_tfm *crypto_spawn_tfm(struct crypto_spawn *spawn, u32 type,
- u32 mask);
-void *crypto_spawn_tfm2(struct crypto_spawn *spawn);
-
-static inline void crypto_set_spawn(struct crypto_spawn *spawn,
- struct crypto_instance *inst)
-{
- spawn->inst = inst;
-}
-
-struct crypto_attr_type *crypto_get_attr_type(struct rtattr **tb);
-int crypto_check_attr_type(struct rtattr **tb, u32 type);
-const char *crypto_attr_alg_name(struct rtattr *rta);
-struct crypto_alg *crypto_attr_alg2(struct rtattr *rta,
- const struct crypto_type *frontend,
- u32 type, u32 mask);
-
-static inline struct crypto_alg *crypto_attr_alg(struct rtattr *rta,
- u32 type, u32 mask)
-{
- return crypto_attr_alg2(rta, NULL, type, mask);
-}
-
-int crypto_attr_u32(struct rtattr *rta, u32 *num);
-void *crypto_alloc_instance2(const char *name, struct crypto_alg *alg,
- unsigned int head);
-struct crypto_instance *crypto_alloc_instance(const char *name,
- struct crypto_alg *alg);
-
-void crypto_init_queue(struct crypto_queue *queue, unsigned int max_qlen);
-int crypto_enqueue_request(struct crypto_queue *queue,
- struct crypto_async_request *request);
-void *__crypto_dequeue_request(struct crypto_queue *queue, unsigned int offset);
-struct crypto_async_request *crypto_dequeue_request(struct crypto_queue *queue);
-int crypto_tfm_in_queue(struct crypto_queue *queue, struct crypto_tfm *tfm);
-
-/* These functions require the input/output to be aligned as u32. */
-void crypto_inc(u8 *a, unsigned int size);
-void crypto_xor(u8 *dst, const u8 *src, unsigned int size);
-
-int blkcipher_walk_done(struct blkcipher_desc *desc,
- struct blkcipher_walk *walk, int err);
-int blkcipher_walk_virt(struct blkcipher_desc *desc,
- struct blkcipher_walk *walk);
-int blkcipher_walk_phys(struct blkcipher_desc *desc,
- struct blkcipher_walk *walk);
-int blkcipher_walk_virt_block(struct blkcipher_desc *desc,
- struct blkcipher_walk *walk,
- unsigned int blocksize);
-
-int ablkcipher_walk_done(struct ablkcipher_request *req,
- struct ablkcipher_walk *walk, int err);
-int ablkcipher_walk_phys(struct ablkcipher_request *req,
- struct ablkcipher_walk *walk);
-void __ablkcipher_walk_complete(struct ablkcipher_walk *walk);
-
-static inline void *crypto_tfm_ctx_aligned(struct crypto_tfm *tfm)
-{
- return PTR_ALIGN(crypto_tfm_ctx(tfm),
- crypto_tfm_alg_alignmask(tfm) + 1);
-}
-
-static inline struct crypto_instance *crypto_tfm_alg_instance(
- struct crypto_tfm *tfm)
-{
- return container_of(tfm->__crt_alg, struct crypto_instance, alg);
-}
-
-static inline void *crypto_instance_ctx(struct crypto_instance *inst)
-{
- return inst->__ctx;
-}
-
-static inline struct ablkcipher_alg *crypto_ablkcipher_alg(
- struct crypto_ablkcipher *tfm)
-{
- return &crypto_ablkcipher_tfm(tfm)->__crt_alg->cra_ablkcipher;
-}
-
-static inline void *crypto_ablkcipher_ctx(struct crypto_ablkcipher *tfm)
-{
- return crypto_tfm_ctx(&tfm->base);
-}
-
-static inline void *crypto_ablkcipher_ctx_aligned(struct crypto_ablkcipher *tfm)
-{
- return crypto_tfm_ctx_aligned(&tfm->base);
-}
-
-static inline struct aead_alg *crypto_aead_alg(struct crypto_aead *tfm)
-{
- return &crypto_aead_tfm(tfm)->__crt_alg->cra_aead;
-}
-
-static inline void *crypto_aead_ctx(struct crypto_aead *tfm)
-{
- return crypto_tfm_ctx(&tfm->base);
-}
-
-static inline struct crypto_instance *crypto_aead_alg_instance(
- struct crypto_aead *aead)
-{
- return crypto_tfm_alg_instance(&aead->base);
-}
-
-static inline struct crypto_blkcipher *crypto_spawn_blkcipher(
- struct crypto_spawn *spawn)
-{
- u32 type = CRYPTO_ALG_TYPE_BLKCIPHER;
- u32 mask = CRYPTO_ALG_TYPE_MASK;
-
- return __crypto_blkcipher_cast(crypto_spawn_tfm(spawn, type, mask));
-}
-
-static inline void *crypto_blkcipher_ctx(struct crypto_blkcipher *tfm)
-{
- return crypto_tfm_ctx(&tfm->base);
-}
-
-static inline void *crypto_blkcipher_ctx_aligned(struct crypto_blkcipher *tfm)
-{
- return crypto_tfm_ctx_aligned(&tfm->base);
-}
-
-static inline struct crypto_cipher *crypto_spawn_cipher(
- struct crypto_spawn *spawn)
-{
- u32 type = CRYPTO_ALG_TYPE_CIPHER;
- u32 mask = CRYPTO_ALG_TYPE_MASK;
-
- return __crypto_cipher_cast(crypto_spawn_tfm(spawn, type, mask));
-}
-
-static inline struct cipher_alg *crypto_cipher_alg(struct crypto_cipher *tfm)
-{
- return &crypto_cipher_tfm(tfm)->__crt_alg->cra_cipher;
-}
-
-static inline struct crypto_hash *crypto_spawn_hash(struct crypto_spawn *spawn)
-{
- u32 type = CRYPTO_ALG_TYPE_HASH;
- u32 mask = CRYPTO_ALG_TYPE_HASH_MASK;
-
- return __crypto_hash_cast(crypto_spawn_tfm(spawn, type, mask));
-}
-
-static inline void *crypto_hash_ctx(struct crypto_hash *tfm)
-{
- return crypto_tfm_ctx(&tfm->base);
-}
-
-static inline void *crypto_hash_ctx_aligned(struct crypto_hash *tfm)
-{
- return crypto_tfm_ctx_aligned(&tfm->base);
-}
-
-static inline void blkcipher_walk_init(struct blkcipher_walk *walk,
- struct scatterlist *dst,
- struct scatterlist *src,
- unsigned int nbytes)
-{
- walk->in.sg = src;
- walk->out.sg = dst;
- walk->total = nbytes;
-}
-
-static inline void ablkcipher_walk_init(struct ablkcipher_walk *walk,
- struct scatterlist *dst,
- struct scatterlist *src,
- unsigned int nbytes)
-{
- walk->in.sg = src;
- walk->out.sg = dst;
- walk->total = nbytes;
- INIT_LIST_HEAD(&walk->buffers);
-}
-
-static inline void ablkcipher_walk_complete(struct ablkcipher_walk *walk)
-{
- if (unlikely(!list_empty(&walk->buffers)))
- __ablkcipher_walk_complete(walk);
-}
-
-static inline struct crypto_async_request *crypto_get_backlog(
- struct crypto_queue *queue)
-{
- return queue->backlog == &queue->list ? NULL :
- container_of(queue->backlog, struct crypto_async_request, list);
-}
-
-static inline int ablkcipher_enqueue_request(struct crypto_queue *queue,
- struct ablkcipher_request *request)
-{
- return crypto_enqueue_request(queue, &request->base);
-}
-
-static inline struct ablkcipher_request *ablkcipher_dequeue_request(
- struct crypto_queue *queue)
-{
- return ablkcipher_request_cast(crypto_dequeue_request(queue));
-}
-
-static inline void *ablkcipher_request_ctx(struct ablkcipher_request *req)
-{
- return req->__ctx;
-}
-
-static inline int ablkcipher_tfm_in_queue(struct crypto_queue *queue,
- struct crypto_ablkcipher *tfm)
-{
- return crypto_tfm_in_queue(queue, crypto_ablkcipher_tfm(tfm));
-}
-
-static inline void *aead_request_ctx(struct aead_request *req)
-{
- return req->__ctx;
-}
-
-static inline void aead_request_complete(struct aead_request *req, int err)
-{
- req->base.complete(&req->base, err);
-}
-
-static inline u32 aead_request_flags(struct aead_request *req)
-{
- return req->base.flags;
-}
-
-static inline struct crypto_alg *crypto_get_attr_alg(struct rtattr **tb,
- u32 type, u32 mask)
-{
- return crypto_attr_alg(tb[1], type, mask);
-}
-
-/*
- * Returns CRYPTO_ALG_ASYNC if type/mask requires the use of sync algorithms.
- * Otherwise returns zero.
- */
-static inline int crypto_requires_sync(u32 type, u32 mask)
-{
- return (type ^ CRYPTO_ALG_ASYNC) & mask & CRYPTO_ALG_ASYNC;
-}
-
-#endif /* _CRYPTO_ALGAPI_H */
-
diff --git a/ANDROID_3.4.5/include/crypto/authenc.h b/ANDROID_3.4.5/include/crypto/authenc.h
deleted file mode 100644
index e47b0449..00000000
--- a/ANDROID_3.4.5/include/crypto/authenc.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Authenc: Simple AEAD wrapper for IPsec
- *
- * Copyright (c) 2007 Herbert Xu <herbert@gondor.apana.org.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_AUTHENC_H
-#define _CRYPTO_AUTHENC_H
-
-#include <linux/types.h>
-
-enum {
- CRYPTO_AUTHENC_KEYA_UNSPEC,
- CRYPTO_AUTHENC_KEYA_PARAM,
-};
-
-struct crypto_authenc_key_param {
- __be32 enckeylen;
-};
-
-#endif /* _CRYPTO_AUTHENC_H */
-
diff --git a/ANDROID_3.4.5/include/crypto/b128ops.h b/ANDROID_3.4.5/include/crypto/b128ops.h
deleted file mode 100644
index 0b8e6bc5..00000000
--- a/ANDROID_3.4.5/include/crypto/b128ops.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/* b128ops.h - common 128-bit block operations
- *
- * Copyright (c) 2003, Dr Brian Gladman, Worcester, UK.
- * Copyright (c) 2006, Rik Snel <rsnel@cube.dyndns.org>
- *
- * Based on Dr Brian Gladman's (GPL'd) work published at
- * http://fp.gladman.plus.com/cryptography_technology/index.htm
- * See the original copyright notice below.
- *
- * 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) 2003, Dr Brian Gladman, 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.
- ---------------------------------------------------------------------------
- Issue Date: 13/06/2006
-*/
-
-#ifndef _CRYPTO_B128OPS_H
-#define _CRYPTO_B128OPS_H
-
-#include <linux/types.h>
-
-typedef struct {
- u64 a, b;
-} u128;
-
-typedef struct {
- __be64 a, b;
-} be128;
-
-typedef struct {
- __le64 b, a;
-} le128;
-
-static inline void u128_xor(u128 *r, const u128 *p, const u128 *q)
-{
- r->a = p->a ^ q->a;
- r->b = p->b ^ q->b;
-}
-
-static inline void be128_xor(be128 *r, const be128 *p, const be128 *q)
-{
- u128_xor((u128 *)r, (u128 *)p, (u128 *)q);
-}
-
-static inline void le128_xor(le128 *r, const le128 *p, const le128 *q)
-{
- u128_xor((u128 *)r, (u128 *)p, (u128 *)q);
-}
-
-#endif /* _CRYPTO_B128OPS_H */
diff --git a/ANDROID_3.4.5/include/crypto/blowfish.h b/ANDROID_3.4.5/include/crypto/blowfish.h
deleted file mode 100644
index 1450d4a2..00000000
--- a/ANDROID_3.4.5/include/crypto/blowfish.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Common values for blowfish algorithms
- */
-
-#ifndef _CRYPTO_BLOWFISH_H
-#define _CRYPTO_BLOWFISH_H
-
-#include <linux/types.h>
-#include <linux/crypto.h>
-
-#define BF_BLOCK_SIZE 8
-#define BF_MIN_KEY_SIZE 4
-#define BF_MAX_KEY_SIZE 56
-
-struct bf_ctx {
- u32 p[18];
- u32 s[1024];
-};
-
-int blowfish_setkey(struct crypto_tfm *tfm, const u8 *key,
- unsigned int key_len);
-
-#endif
diff --git a/ANDROID_3.4.5/include/crypto/compress.h b/ANDROID_3.4.5/include/crypto/compress.h
deleted file mode 100644
index 86163ef2..00000000
--- a/ANDROID_3.4.5/include/crypto/compress.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * Compress: Compression algorithms under the cryptographic API.
- *
- * Copyright 2008 Sony Corporation
- *
- * 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 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, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef _CRYPTO_COMPRESS_H
-#define _CRYPTO_COMPRESS_H
-
-#include <linux/crypto.h>
-
-
-struct comp_request {
- const void *next_in; /* next input byte */
- void *next_out; /* next output byte */
- unsigned int avail_in; /* bytes available at next_in */
- unsigned int avail_out; /* bytes available at next_out */
-};
-
-enum zlib_comp_params {
- ZLIB_COMP_LEVEL = 1, /* e.g. Z_DEFAULT_COMPRESSION */
- ZLIB_COMP_METHOD, /* e.g. Z_DEFLATED */
- ZLIB_COMP_WINDOWBITS, /* e.g. MAX_WBITS */
- ZLIB_COMP_MEMLEVEL, /* e.g. DEF_MEM_LEVEL */
- ZLIB_COMP_STRATEGY, /* e.g. Z_DEFAULT_STRATEGY */
- __ZLIB_COMP_MAX,
-};
-
-#define ZLIB_COMP_MAX (__ZLIB_COMP_MAX - 1)
-
-
-enum zlib_decomp_params {
- ZLIB_DECOMP_WINDOWBITS = 1, /* e.g. DEF_WBITS */
- __ZLIB_DECOMP_MAX,
-};
-
-#define ZLIB_DECOMP_MAX (__ZLIB_DECOMP_MAX - 1)
-
-
-struct crypto_pcomp {
- struct crypto_tfm base;
-};
-
-struct pcomp_alg {
- int (*compress_setup)(struct crypto_pcomp *tfm, void *params,
- unsigned int len);
- int (*compress_init)(struct crypto_pcomp *tfm);
- int (*compress_update)(struct crypto_pcomp *tfm,
- struct comp_request *req);
- int (*compress_final)(struct crypto_pcomp *tfm,
- struct comp_request *req);
- int (*decompress_setup)(struct crypto_pcomp *tfm, void *params,
- unsigned int len);
- int (*decompress_init)(struct crypto_pcomp *tfm);
- int (*decompress_update)(struct crypto_pcomp *tfm,
- struct comp_request *req);
- int (*decompress_final)(struct crypto_pcomp *tfm,
- struct comp_request *req);
-
- struct crypto_alg base;
-};
-
-extern struct crypto_pcomp *crypto_alloc_pcomp(const char *alg_name, u32 type,
- u32 mask);
-
-static inline struct crypto_tfm *crypto_pcomp_tfm(struct crypto_pcomp *tfm)
-{
- return &tfm->base;
-}
-
-static inline void crypto_free_pcomp(struct crypto_pcomp *tfm)
-{
- crypto_destroy_tfm(tfm, crypto_pcomp_tfm(tfm));
-}
-
-static inline struct pcomp_alg *__crypto_pcomp_alg(struct crypto_alg *alg)
-{
- return container_of(alg, struct pcomp_alg, base);
-}
-
-static inline struct pcomp_alg *crypto_pcomp_alg(struct crypto_pcomp *tfm)
-{
- return __crypto_pcomp_alg(crypto_pcomp_tfm(tfm)->__crt_alg);
-}
-
-static inline int crypto_compress_setup(struct crypto_pcomp *tfm,
- void *params, unsigned int len)
-{
- return crypto_pcomp_alg(tfm)->compress_setup(tfm, params, len);
-}
-
-static inline int crypto_compress_init(struct crypto_pcomp *tfm)
-{
- return crypto_pcomp_alg(tfm)->compress_init(tfm);
-}
-
-static inline int crypto_compress_update(struct crypto_pcomp *tfm,
- struct comp_request *req)
-{
- return crypto_pcomp_alg(tfm)->compress_update(tfm, req);
-}
-
-static inline int crypto_compress_final(struct crypto_pcomp *tfm,
- struct comp_request *req)
-{
- return crypto_pcomp_alg(tfm)->compress_final(tfm, req);
-}
-
-static inline int crypto_decompress_setup(struct crypto_pcomp *tfm,
- void *params, unsigned int len)
-{
- return crypto_pcomp_alg(tfm)->decompress_setup(tfm, params, len);
-}
-
-static inline int crypto_decompress_init(struct crypto_pcomp *tfm)
-{
- return crypto_pcomp_alg(tfm)->decompress_init(tfm);
-}
-
-static inline int crypto_decompress_update(struct crypto_pcomp *tfm,
- struct comp_request *req)
-{
- return crypto_pcomp_alg(tfm)->decompress_update(tfm, req);
-}
-
-static inline int crypto_decompress_final(struct crypto_pcomp *tfm,
- struct comp_request *req)
-{
- return crypto_pcomp_alg(tfm)->decompress_final(tfm, req);
-}
-
-#endif /* _CRYPTO_COMPRESS_H */
diff --git a/ANDROID_3.4.5/include/crypto/cryptd.h b/ANDROID_3.4.5/include/crypto/cryptd.h
deleted file mode 100644
index ba98918b..00000000
--- a/ANDROID_3.4.5/include/crypto/cryptd.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Software async crypto daemon
- *
- * Added AEAD support to cryptd.
- * Authors: Tadeusz Struk (tadeusz.struk@intel.com)
- * Adrian Hoban <adrian.hoban@intel.com>
- * Gabriele Paoloni <gabriele.paoloni@intel.com>
- * Aidan O'Mahony (aidan.o.mahony@intel.com)
- * Copyright (c) 2010, Intel Corporation.
- */
-
-#ifndef _CRYPTO_CRYPT_H
-#define _CRYPTO_CRYPT_H
-
-#include <linux/crypto.h>
-#include <linux/kernel.h>
-#include <crypto/hash.h>
-
-struct cryptd_ablkcipher {
- struct crypto_ablkcipher base;
-};
-
-static inline struct cryptd_ablkcipher *__cryptd_ablkcipher_cast(
- struct crypto_ablkcipher *tfm)
-{
- return (struct cryptd_ablkcipher *)tfm;
-}
-
-/* alg_name should be algorithm to be cryptd-ed */
-struct cryptd_ablkcipher *cryptd_alloc_ablkcipher(const char *alg_name,
- u32 type, u32 mask);
-struct crypto_blkcipher *cryptd_ablkcipher_child(struct cryptd_ablkcipher *tfm);
-void cryptd_free_ablkcipher(struct cryptd_ablkcipher *tfm);
-
-struct cryptd_ahash {
- struct crypto_ahash base;
-};
-
-static inline struct cryptd_ahash *__cryptd_ahash_cast(
- struct crypto_ahash *tfm)
-{
- return (struct cryptd_ahash *)tfm;
-}
-
-/* alg_name should be algorithm to be cryptd-ed */
-struct cryptd_ahash *cryptd_alloc_ahash(const char *alg_name,
- u32 type, u32 mask);
-struct crypto_shash *cryptd_ahash_child(struct cryptd_ahash *tfm);
-struct shash_desc *cryptd_shash_desc(struct ahash_request *req);
-void cryptd_free_ahash(struct cryptd_ahash *tfm);
-
-struct cryptd_aead {
- struct crypto_aead base;
-};
-
-static inline struct cryptd_aead *__cryptd_aead_cast(
- struct crypto_aead *tfm)
-{
- return (struct cryptd_aead *)tfm;
-}
-
-struct cryptd_aead *cryptd_alloc_aead(const char *alg_name,
- u32 type, u32 mask);
-
-struct crypto_aead *cryptd_aead_child(struct cryptd_aead *tfm);
-
-void cryptd_free_aead(struct cryptd_aead *tfm);
-
-#endif
diff --git a/ANDROID_3.4.5/include/crypto/crypto_wq.h b/ANDROID_3.4.5/include/crypto/crypto_wq.h
deleted file mode 100644
index a7d252da..00000000
--- a/ANDROID_3.4.5/include/crypto/crypto_wq.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef CRYPTO_WQ_H
-#define CRYPTO_WQ_H
-
-#include <linux/workqueue.h>
-
-extern struct workqueue_struct *kcrypto_wq;
-#endif
diff --git a/ANDROID_3.4.5/include/crypto/ctr.h b/ANDROID_3.4.5/include/crypto/ctr.h
deleted file mode 100644
index 4180fc08..00000000
--- a/ANDROID_3.4.5/include/crypto/ctr.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * CTR: Counter mode
- *
- * Copyright (c) 2007 Herbert Xu <herbert@gondor.apana.org.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_CTR_H
-#define _CRYPTO_CTR_H
-
-#define CTR_RFC3686_NONCE_SIZE 4
-#define CTR_RFC3686_IV_SIZE 8
-#define CTR_RFC3686_BLOCK_SIZE 16
-
-#endif /* _CRYPTO_CTR_H */
diff --git a/ANDROID_3.4.5/include/crypto/des.h b/ANDROID_3.4.5/include/crypto/des.h
deleted file mode 100644
index 2971c630..00000000
--- a/ANDROID_3.4.5/include/crypto/des.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * DES & Triple DES EDE Cipher Algorithms.
- */
-
-#ifndef __CRYPTO_DES_H
-#define __CRYPTO_DES_H
-
-#define DES_KEY_SIZE 8
-#define DES_EXPKEY_WORDS 32
-#define DES_BLOCK_SIZE 8
-
-#define DES3_EDE_KEY_SIZE (3 * DES_KEY_SIZE)
-#define DES3_EDE_EXPKEY_WORDS (3 * DES_EXPKEY_WORDS)
-#define DES3_EDE_BLOCK_SIZE DES_BLOCK_SIZE
-
-
-extern unsigned long des_ekey(u32 *pe, const u8 *k);
-
-#endif /* __CRYPTO_DES_H */
diff --git a/ANDROID_3.4.5/include/crypto/gf128mul.h b/ANDROID_3.4.5/include/crypto/gf128mul.h
deleted file mode 100644
index da2530e3..00000000
--- a/ANDROID_3.4.5/include/crypto/gf128mul.h
+++ /dev/null
@@ -1,200 +0,0 @@
-/* gf128mul.h - GF(2^128) multiplication functions
- *
- * Copyright (c) 2003, Dr Brian Gladman, Worcester, UK.
- * Copyright (c) 2006 Rik Snel <rsnel@cube.dyndns.org>
- *
- * Based on Dr Brian Gladman's (GPL'd) work published at
- * http://fp.gladman.plus.com/cryptography_technology/index.htm
- * See the original copyright notice below.
- *
- * 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) 2003, Dr Brian Gladman, 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.
- ---------------------------------------------------------------------------
- Issue Date: 31/01/2006
-
- An implementation of field multiplication in Galois Field GF(128)
-*/
-
-#ifndef _CRYPTO_GF128MUL_H
-#define _CRYPTO_GF128MUL_H
-
-#include <crypto/b128ops.h>
-#include <linux/slab.h>
-
-/* Comment by Rik:
- *
- * For some background on GF(2^128) see for example:
- * http://csrc.nist.gov/groups/ST/toolkit/BCM/documents/proposedmodes/gcm/gcm-revised-spec.pdf
- *
- * The elements of GF(2^128) := GF(2)[X]/(X^128-X^7-X^2-X^1-1) can
- * be mapped to computer memory in a variety of ways. Let's examine
- * three common cases.
- *
- * Take a look at the 16 binary octets below in memory order. The msb's
- * are left and the lsb's are right. char b[16] is an array and b[0] is
- * the first octet.
- *
- * 80000000 00000000 00000000 00000000 .... 00000000 00000000 00000000
- * b[0] b[1] b[2] b[3] b[13] b[14] b[15]
- *
- * Every bit is a coefficient of some power of X. We can store the bits
- * in every byte in little-endian order and the bytes themselves also in
- * little endian order. I will call this lle (little-little-endian).
- * The above buffer represents the polynomial 1, and X^7+X^2+X^1+1 looks
- * like 11100001 00000000 .... 00000000 = { 0xE1, 0x00, }.
- * This format was originally implemented in gf128mul and is used
- * in GCM (Galois/Counter mode) and in ABL (Arbitrary Block Length).
- *
- * Another convention says: store the bits in bigendian order and the
- * bytes also. This is bbe (big-big-endian). Now the buffer above
- * represents X^127. X^7+X^2+X^1+1 looks like 00000000 .... 10000111,
- * b[15] = 0x87 and the rest is 0. LRW uses this convention and bbe
- * is partly implemented.
- *
- * Both of the above formats are easy to implement on big-endian
- * machines.
- *
- * EME (which is patent encumbered) uses the ble format (bits are stored
- * in big endian order and the bytes in little endian). The above buffer
- * represents X^7 in this case and the primitive polynomial is b[0] = 0x87.
- *
- * The common machine word-size is smaller than 128 bits, so to make
- * an efficient implementation we must split into machine word sizes.
- * This file uses one 32bit for the moment. Machine endianness comes into
- * play. The lle format in relation to machine endianness is discussed
- * below by the original author of gf128mul Dr Brian Gladman.
- *
- * Let's look at the bbe and ble format on a little endian machine.
- *
- * bbe on a little endian machine u32 x[4]:
- *
- * MS x[0] LS MS x[1] LS
- * ms ls ms ls ms ls ms ls ms ls ms ls ms ls ms ls
- * 103..96 111.104 119.112 127.120 71...64 79...72 87...80 95...88
- *
- * MS x[2] LS MS x[3] LS
- * ms ls ms ls ms ls ms ls ms ls ms ls ms ls ms ls
- * 39...32 47...40 55...48 63...56 07...00 15...08 23...16 31...24
- *
- * ble on a little endian machine
- *
- * MS x[0] LS MS x[1] LS
- * ms ls ms ls ms ls ms ls ms ls ms ls ms ls ms ls
- * 31...24 23...16 15...08 07...00 63...56 55...48 47...40 39...32
- *
- * MS x[2] LS MS x[3] LS
- * ms ls ms ls ms ls ms ls ms ls ms ls ms ls ms ls
- * 95...88 87...80 79...72 71...64 127.120 199.112 111.104 103..96
- *
- * Multiplications in GF(2^128) are mostly bit-shifts, so you see why
- * ble (and lbe also) are easier to implement on a little-endian
- * machine than on a big-endian machine. The converse holds for bbe
- * and lle.
- *
- * Note: to have good alignment, it seems to me that it is sufficient
- * to keep elements of GF(2^128) in type u64[2]. On 32-bit wordsize
- * machines this will automatically aligned to wordsize and on a 64-bit
- * machine also.
- */
-/* Multiply a GF128 field element by x. Field elements are held in arrays
- of bytes in which field bits 8n..8n + 7 are held in byte[n], with lower
- indexed bits placed in the more numerically significant bit positions
- within bytes.
-
- On little endian machines the bit indexes translate into the bit
- positions within four 32-bit words in the following way
-
- MS x[0] LS MS x[1] LS
- ms ls ms ls ms ls ms ls ms ls ms ls ms ls ms ls
- 24...31 16...23 08...15 00...07 56...63 48...55 40...47 32...39
-
- MS x[2] LS MS x[3] LS
- ms ls ms ls ms ls ms ls ms ls ms ls ms ls ms ls
- 88...95 80...87 72...79 64...71 120.127 112.119 104.111 96..103
-
- On big endian machines the bit indexes translate into the bit
- positions within four 32-bit words in the following way
-
- MS x[0] LS MS x[1] LS
- ms ls ms ls ms ls ms ls ms ls ms ls ms ls ms ls
- 00...07 08...15 16...23 24...31 32...39 40...47 48...55 56...63
-
- MS x[2] LS MS x[3] LS
- ms ls ms ls ms ls ms ls ms ls ms ls ms ls ms ls
- 64...71 72...79 80...87 88...95 96..103 104.111 112.119 120.127
-*/
-
-/* A slow generic version of gf_mul, implemented for lle and bbe
- * It multiplies a and b and puts the result in a */
-void gf128mul_lle(be128 *a, const be128 *b);
-
-void gf128mul_bbe(be128 *a, const be128 *b);
-
-/* multiply by x in ble format, needed by XTS */
-void gf128mul_x_ble(be128 *a, const be128 *b);
-
-/* 4k table optimization */
-
-struct gf128mul_4k {
- be128 t[256];
-};
-
-struct gf128mul_4k *gf128mul_init_4k_lle(const be128 *g);
-struct gf128mul_4k *gf128mul_init_4k_bbe(const be128 *g);
-void gf128mul_4k_lle(be128 *a, struct gf128mul_4k *t);
-void gf128mul_4k_bbe(be128 *a, struct gf128mul_4k *t);
-
-static inline void gf128mul_free_4k(struct gf128mul_4k *t)
-{
- kfree(t);
-}
-
-
-/* 64k table optimization, implemented for lle and bbe */
-
-struct gf128mul_64k {
- struct gf128mul_4k *t[16];
-};
-
-/* first initialize with the constant factor with which you
- * want to multiply and then call gf128_64k_lle with the other
- * factor in the first argument, the table in the second and a
- * scratch register in the third. Afterwards *a = *r. */
-struct gf128mul_64k *gf128mul_init_64k_lle(const be128 *g);
-struct gf128mul_64k *gf128mul_init_64k_bbe(const be128 *g);
-void gf128mul_free_64k(struct gf128mul_64k *t);
-void gf128mul_64k_lle(be128 *a, struct gf128mul_64k *t);
-void gf128mul_64k_bbe(be128 *a, struct gf128mul_64k *t);
-
-#endif /* _CRYPTO_GF128MUL_H */
diff --git a/ANDROID_3.4.5/include/crypto/hash.h b/ANDROID_3.4.5/include/crypto/hash.h
deleted file mode 100644
index 26cb1eb1..00000000
--- a/ANDROID_3.4.5/include/crypto/hash.h
+++ /dev/null
@@ -1,353 +0,0 @@
-/*
- * Hash: Hash algorithms under the crypto API
- *
- * Copyright (c) 2008 Herbert Xu <herbert@gondor.apana.org.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_HASH_H
-#define _CRYPTO_HASH_H
-
-#include <linux/crypto.h>
-
-struct crypto_ahash;
-
-struct hash_alg_common {
- unsigned int digestsize;
- unsigned int statesize;
-
- struct crypto_alg base;
-};
-
-struct ahash_request {
- struct crypto_async_request base;
-
- unsigned int nbytes;
- struct scatterlist *src;
- u8 *result;
-
- /* This field may only be used by the ahash API code. */
- void *priv;
-
- void *__ctx[] CRYPTO_MINALIGN_ATTR;
-};
-
-struct ahash_alg {
- int (*init)(struct ahash_request *req);
- int (*update)(struct ahash_request *req);
- int (*final)(struct ahash_request *req);
- int (*finup)(struct ahash_request *req);
- int (*digest)(struct ahash_request *req);
- int (*export)(struct ahash_request *req, void *out);
- int (*import)(struct ahash_request *req, const void *in);
- int (*setkey)(struct crypto_ahash *tfm, const u8 *key,
- unsigned int keylen);
-
- struct hash_alg_common halg;
-};
-
-struct shash_desc {
- struct crypto_shash *tfm;
- u32 flags;
-
- void *__ctx[] CRYPTO_MINALIGN_ATTR;
-};
-
-struct shash_alg {
- int (*init)(struct shash_desc *desc);
- int (*update)(struct shash_desc *desc, const u8 *data,
- unsigned int len);
- int (*final)(struct shash_desc *desc, u8 *out);
- int (*finup)(struct shash_desc *desc, const u8 *data,
- unsigned int len, u8 *out);
- int (*digest)(struct shash_desc *desc, const u8 *data,
- unsigned int len, u8 *out);
- int (*export)(struct shash_desc *desc, void *out);
- int (*import)(struct shash_desc *desc, const void *in);
- int (*setkey)(struct crypto_shash *tfm, const u8 *key,
- unsigned int keylen);
-
- unsigned int descsize;
-
- /* These fields must match hash_alg_common. */
- unsigned int digestsize
- __attribute__ ((aligned(__alignof__(struct hash_alg_common))));
- unsigned int statesize;
-
- struct crypto_alg base;
-};
-
-struct crypto_ahash {
- int (*init)(struct ahash_request *req);
- int (*update)(struct ahash_request *req);
- int (*final)(struct ahash_request *req);
- int (*finup)(struct ahash_request *req);
- int (*digest)(struct ahash_request *req);
- int (*export)(struct ahash_request *req, void *out);
- int (*import)(struct ahash_request *req, const void *in);
- int (*setkey)(struct crypto_ahash *tfm, const u8 *key,
- unsigned int keylen);
-
- unsigned int reqsize;
- struct crypto_tfm base;
-};
-
-struct crypto_shash {
- unsigned int descsize;
- struct crypto_tfm base;
-};
-
-static inline struct crypto_ahash *__crypto_ahash_cast(struct crypto_tfm *tfm)
-{
- return container_of(tfm, struct crypto_ahash, base);
-}
-
-struct crypto_ahash *crypto_alloc_ahash(const char *alg_name, u32 type,
- u32 mask);
-
-static inline struct crypto_tfm *crypto_ahash_tfm(struct crypto_ahash *tfm)
-{
- return &tfm->base;
-}
-
-static inline void crypto_free_ahash(struct crypto_ahash *tfm)
-{
- crypto_destroy_tfm(tfm, crypto_ahash_tfm(tfm));
-}
-
-static inline unsigned int crypto_ahash_alignmask(
- struct crypto_ahash *tfm)
-{
- return crypto_tfm_alg_alignmask(crypto_ahash_tfm(tfm));
-}
-
-static inline struct hash_alg_common *__crypto_hash_alg_common(
- struct crypto_alg *alg)
-{
- return container_of(alg, struct hash_alg_common, base);
-}
-
-static inline struct hash_alg_common *crypto_hash_alg_common(
- struct crypto_ahash *tfm)
-{
- return __crypto_hash_alg_common(crypto_ahash_tfm(tfm)->__crt_alg);
-}
-
-static inline unsigned int crypto_ahash_digestsize(struct crypto_ahash *tfm)
-{
- return crypto_hash_alg_common(tfm)->digestsize;
-}
-
-static inline unsigned int crypto_ahash_statesize(struct crypto_ahash *tfm)
-{
- return crypto_hash_alg_common(tfm)->statesize;
-}
-
-static inline u32 crypto_ahash_get_flags(struct crypto_ahash *tfm)
-{
- return crypto_tfm_get_flags(crypto_ahash_tfm(tfm));
-}
-
-static inline void crypto_ahash_set_flags(struct crypto_ahash *tfm, u32 flags)
-{
- crypto_tfm_set_flags(crypto_ahash_tfm(tfm), flags);
-}
-
-static inline void crypto_ahash_clear_flags(struct crypto_ahash *tfm, u32 flags)
-{
- crypto_tfm_clear_flags(crypto_ahash_tfm(tfm), flags);
-}
-
-static inline struct crypto_ahash *crypto_ahash_reqtfm(
- struct ahash_request *req)
-{
- return __crypto_ahash_cast(req->base.tfm);
-}
-
-static inline unsigned int crypto_ahash_reqsize(struct crypto_ahash *tfm)
-{
- return tfm->reqsize;
-}
-
-static inline void *ahash_request_ctx(struct ahash_request *req)
-{
- return req->__ctx;
-}
-
-int crypto_ahash_setkey(struct crypto_ahash *tfm, const u8 *key,
- unsigned int keylen);
-int crypto_ahash_finup(struct ahash_request *req);
-int crypto_ahash_final(struct ahash_request *req);
-int crypto_ahash_digest(struct ahash_request *req);
-
-static inline int crypto_ahash_export(struct ahash_request *req, void *out)
-{
- return crypto_ahash_reqtfm(req)->export(req, out);
-}
-
-static inline int crypto_ahash_import(struct ahash_request *req, const void *in)
-{
- return crypto_ahash_reqtfm(req)->import(req, in);
-}
-
-static inline int crypto_ahash_init(struct ahash_request *req)
-{
- return crypto_ahash_reqtfm(req)->init(req);
-}
-
-static inline int crypto_ahash_update(struct ahash_request *req)
-{
- return crypto_ahash_reqtfm(req)->update(req);
-}
-
-static inline void ahash_request_set_tfm(struct ahash_request *req,
- struct crypto_ahash *tfm)
-{
- req->base.tfm = crypto_ahash_tfm(tfm);
-}
-
-static inline struct ahash_request *ahash_request_alloc(
- struct crypto_ahash *tfm, gfp_t gfp)
-{
- struct ahash_request *req;
-
- req = kmalloc(sizeof(struct ahash_request) +
- crypto_ahash_reqsize(tfm), gfp);
-
- if (likely(req))
- ahash_request_set_tfm(req, tfm);
-
- return req;
-}
-
-static inline void ahash_request_free(struct ahash_request *req)
-{
- kzfree(req);
-}
-
-static inline struct ahash_request *ahash_request_cast(
- struct crypto_async_request *req)
-{
- return container_of(req, struct ahash_request, base);
-}
-
-static inline void ahash_request_set_callback(struct ahash_request *req,
- u32 flags,
- crypto_completion_t complete,
- void *data)
-{
- req->base.complete = complete;
- req->base.data = data;
- req->base.flags = flags;
-}
-
-static inline void ahash_request_set_crypt(struct ahash_request *req,
- struct scatterlist *src, u8 *result,
- unsigned int nbytes)
-{
- req->src = src;
- req->nbytes = nbytes;
- req->result = result;
-}
-
-struct crypto_shash *crypto_alloc_shash(const char *alg_name, u32 type,
- u32 mask);
-
-static inline struct crypto_tfm *crypto_shash_tfm(struct crypto_shash *tfm)
-{
- return &tfm->base;
-}
-
-static inline void crypto_free_shash(struct crypto_shash *tfm)
-{
- crypto_destroy_tfm(tfm, crypto_shash_tfm(tfm));
-}
-
-static inline unsigned int crypto_shash_alignmask(
- struct crypto_shash *tfm)
-{
- return crypto_tfm_alg_alignmask(crypto_shash_tfm(tfm));
-}
-
-static inline unsigned int crypto_shash_blocksize(struct crypto_shash *tfm)
-{
- return crypto_tfm_alg_blocksize(crypto_shash_tfm(tfm));
-}
-
-static inline struct shash_alg *__crypto_shash_alg(struct crypto_alg *alg)
-{
- return container_of(alg, struct shash_alg, base);
-}
-
-static inline struct shash_alg *crypto_shash_alg(struct crypto_shash *tfm)
-{
- return __crypto_shash_alg(crypto_shash_tfm(tfm)->__crt_alg);
-}
-
-static inline unsigned int crypto_shash_digestsize(struct crypto_shash *tfm)
-{
- return crypto_shash_alg(tfm)->digestsize;
-}
-
-static inline unsigned int crypto_shash_statesize(struct crypto_shash *tfm)
-{
- return crypto_shash_alg(tfm)->statesize;
-}
-
-static inline u32 crypto_shash_get_flags(struct crypto_shash *tfm)
-{
- return crypto_tfm_get_flags(crypto_shash_tfm(tfm));
-}
-
-static inline void crypto_shash_set_flags(struct crypto_shash *tfm, u32 flags)
-{
- crypto_tfm_set_flags(crypto_shash_tfm(tfm), flags);
-}
-
-static inline void crypto_shash_clear_flags(struct crypto_shash *tfm, u32 flags)
-{
- crypto_tfm_clear_flags(crypto_shash_tfm(tfm), flags);
-}
-
-static inline unsigned int crypto_shash_descsize(struct crypto_shash *tfm)
-{
- return tfm->descsize;
-}
-
-static inline void *shash_desc_ctx(struct shash_desc *desc)
-{
- return desc->__ctx;
-}
-
-int crypto_shash_setkey(struct crypto_shash *tfm, const u8 *key,
- unsigned int keylen);
-int crypto_shash_digest(struct shash_desc *desc, const u8 *data,
- unsigned int len, u8 *out);
-
-static inline int crypto_shash_export(struct shash_desc *desc, void *out)
-{
- return crypto_shash_alg(desc->tfm)->export(desc, out);
-}
-
-static inline int crypto_shash_import(struct shash_desc *desc, const void *in)
-{
- return crypto_shash_alg(desc->tfm)->import(desc, in);
-}
-
-static inline int crypto_shash_init(struct shash_desc *desc)
-{
- return crypto_shash_alg(desc->tfm)->init(desc);
-}
-
-int crypto_shash_update(struct shash_desc *desc, const u8 *data,
- unsigned int len);
-int crypto_shash_final(struct shash_desc *desc, u8 *out);
-int crypto_shash_finup(struct shash_desc *desc, const u8 *data,
- unsigned int len, u8 *out);
-
-#endif /* _CRYPTO_HASH_H */
diff --git a/ANDROID_3.4.5/include/crypto/if_alg.h b/ANDROID_3.4.5/include/crypto/if_alg.h
deleted file mode 100644
index d61c1117..00000000
--- a/ANDROID_3.4.5/include/crypto/if_alg.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * if_alg: User-space algorithm interface
- *
- * Copyright (c) 2010 Herbert Xu <herbert@gondor.apana.org.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_IF_ALG_H
-#define _CRYPTO_IF_ALG_H
-
-#include <linux/compiler.h>
-#include <linux/completion.h>
-#include <linux/if_alg.h>
-#include <linux/scatterlist.h>
-#include <linux/types.h>
-#include <net/sock.h>
-
-#define ALG_MAX_PAGES 16
-
-struct crypto_async_request;
-
-struct alg_sock {
- /* struct sock must be the first member of struct alg_sock */
- struct sock sk;
-
- struct sock *parent;
-
- const struct af_alg_type *type;
- void *private;
-};
-
-struct af_alg_completion {
- struct completion completion;
- int err;
-};
-
-struct af_alg_control {
- struct af_alg_iv *iv;
- int op;
-};
-
-struct af_alg_type {
- void *(*bind)(const char *name, u32 type, u32 mask);
- void (*release)(void *private);
- int (*setkey)(void *private, const u8 *key, unsigned int keylen);
- int (*accept)(void *private, struct sock *sk);
-
- struct proto_ops *ops;
- struct module *owner;
- char name[14];
-};
-
-struct af_alg_sgl {
- struct scatterlist sg[ALG_MAX_PAGES];
- struct page *pages[ALG_MAX_PAGES];
-};
-
-int af_alg_register_type(const struct af_alg_type *type);
-int af_alg_unregister_type(const struct af_alg_type *type);
-
-int af_alg_release(struct socket *sock);
-int af_alg_accept(struct sock *sk, struct socket *newsock);
-
-int af_alg_make_sg(struct af_alg_sgl *sgl, void __user *addr, int len,
- int write);
-void af_alg_free_sg(struct af_alg_sgl *sgl);
-
-int af_alg_cmsg_send(struct msghdr *msg, struct af_alg_control *con);
-
-int af_alg_wait_for_completion(int err, struct af_alg_completion *completion);
-void af_alg_complete(struct crypto_async_request *req, int err);
-
-static inline struct alg_sock *alg_sk(struct sock *sk)
-{
- return (struct alg_sock *)sk;
-}
-
-static inline void af_alg_release_parent(struct sock *sk)
-{
- sock_put(alg_sk(sk)->parent);
-}
-
-static inline void af_alg_init_completion(struct af_alg_completion *completion)
-{
- init_completion(&completion->completion);
-}
-
-#endif /* _CRYPTO_IF_ALG_H */
diff --git a/ANDROID_3.4.5/include/crypto/internal/aead.h b/ANDROID_3.4.5/include/crypto/internal/aead.h
deleted file mode 100644
index 2eba3402..00000000
--- a/ANDROID_3.4.5/include/crypto/internal/aead.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * AEAD: Authenticated Encryption with Associated Data
- *
- * Copyright (c) 2007 Herbert Xu <herbert@gondor.apana.org.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_AEAD_H
-#define _CRYPTO_INTERNAL_AEAD_H
-
-#include <crypto/aead.h>
-#include <crypto/algapi.h>
-#include <linux/types.h>
-
-struct rtattr;
-
-struct crypto_aead_spawn {
- struct crypto_spawn base;
-};
-
-extern const struct crypto_type crypto_nivaead_type;
-
-static inline void crypto_set_aead_spawn(
- struct crypto_aead_spawn *spawn, struct crypto_instance *inst)
-{
- crypto_set_spawn(&spawn->base, inst);
-}
-
-struct crypto_alg *crypto_lookup_aead(const char *name, u32 type, u32 mask);
-
-int crypto_grab_aead(struct crypto_aead_spawn *spawn, const char *name,
- u32 type, u32 mask);
-
-static inline void crypto_drop_aead(struct crypto_aead_spawn *spawn)
-{
- crypto_drop_spawn(&spawn->base);
-}
-
-static inline struct crypto_alg *crypto_aead_spawn_alg(
- struct crypto_aead_spawn *spawn)
-{
- return spawn->base.alg;
-}
-
-static inline struct crypto_aead *crypto_spawn_aead(
- struct crypto_aead_spawn *spawn)
-{
- return __crypto_aead_cast(
- crypto_spawn_tfm(&spawn->base, CRYPTO_ALG_TYPE_AEAD,
- CRYPTO_ALG_TYPE_MASK));
-}
-
-struct crypto_instance *aead_geniv_alloc(struct crypto_template *tmpl,
- struct rtattr **tb, u32 type,
- u32 mask);
-void aead_geniv_free(struct crypto_instance *inst);
-int aead_geniv_init(struct crypto_tfm *tfm);
-void aead_geniv_exit(struct crypto_tfm *tfm);
-
-static inline struct crypto_aead *aead_geniv_base(struct crypto_aead *geniv)
-{
- return crypto_aead_crt(geniv)->base;
-}
-
-static inline void *aead_givcrypt_reqctx(struct aead_givcrypt_request *req)
-{
- return aead_request_ctx(&req->areq);
-}
-
-static inline void aead_givcrypt_complete(struct aead_givcrypt_request *req,
- int err)
-{
- aead_request_complete(&req->areq, err);
-}
-
-#endif /* _CRYPTO_INTERNAL_AEAD_H */
-
diff --git a/ANDROID_3.4.5/include/crypto/internal/compress.h b/ANDROID_3.4.5/include/crypto/internal/compress.h
deleted file mode 100644
index 178a888d..00000000
--- a/ANDROID_3.4.5/include/crypto/internal/compress.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Compress: Compression algorithms under the cryptographic API.
- *
- * Copyright 2008 Sony Corporation
- *
- * 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 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, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef _CRYPTO_INTERNAL_COMPRESS_H
-#define _CRYPTO_INTERNAL_COMPRESS_H
-
-#include <crypto/compress.h>
-
-extern int crypto_register_pcomp(struct pcomp_alg *alg);
-extern int crypto_unregister_pcomp(struct pcomp_alg *alg);
-
-#endif /* _CRYPTO_INTERNAL_COMPRESS_H */
diff --git a/ANDROID_3.4.5/include/crypto/internal/hash.h b/ANDROID_3.4.5/include/crypto/internal/hash.h
deleted file mode 100644
index 5bfad8c8..00000000
--- a/ANDROID_3.4.5/include/crypto/internal/hash.h
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- * Hash algorithms.
- *
- * Copyright (c) 2008 Herbert Xu <herbert@gondor.apana.org.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_HASH_H
-#define _CRYPTO_INTERNAL_HASH_H
-
-#include <crypto/algapi.h>
-#include <crypto/hash.h>
-
-struct ahash_request;
-struct scatterlist;
-
-struct crypto_hash_walk {
- char *data;
-
- unsigned int offset;
- unsigned int alignmask;
-
- struct page *pg;
- unsigned int entrylen;
-
- unsigned int total;
- struct scatterlist *sg;
-
- unsigned int flags;
-};
-
-struct ahash_instance {
- struct ahash_alg alg;
-};
-
-struct shash_instance {
- struct shash_alg alg;
-};
-
-struct crypto_ahash_spawn {
- struct crypto_spawn base;
-};
-
-struct crypto_shash_spawn {
- struct crypto_spawn base;
-};
-
-extern const struct crypto_type crypto_ahash_type;
-
-int crypto_hash_walk_done(struct crypto_hash_walk *walk, int err);
-int crypto_hash_walk_first(struct ahash_request *req,
- struct crypto_hash_walk *walk);
-int crypto_hash_walk_first_compat(struct hash_desc *hdesc,
- struct crypto_hash_walk *walk,
- struct scatterlist *sg, unsigned int len);
-
-static inline int crypto_hash_walk_last(struct crypto_hash_walk *walk)
-{
- return !(walk->entrylen | walk->total);
-}
-
-int crypto_register_ahash(struct ahash_alg *alg);
-int crypto_unregister_ahash(struct ahash_alg *alg);
-int ahash_register_instance(struct crypto_template *tmpl,
- struct ahash_instance *inst);
-void ahash_free_instance(struct crypto_instance *inst);
-
-int crypto_init_ahash_spawn(struct crypto_ahash_spawn *spawn,
- struct hash_alg_common *alg,
- struct crypto_instance *inst);
-
-static inline void crypto_drop_ahash(struct crypto_ahash_spawn *spawn)
-{
- crypto_drop_spawn(&spawn->base);
-}
-
-struct hash_alg_common *ahash_attr_alg(struct rtattr *rta, u32 type, u32 mask);
-
-int crypto_register_shash(struct shash_alg *alg);
-int crypto_unregister_shash(struct shash_alg *alg);
-int shash_register_instance(struct crypto_template *tmpl,
- struct shash_instance *inst);
-void shash_free_instance(struct crypto_instance *inst);
-
-int crypto_init_shash_spawn(struct crypto_shash_spawn *spawn,
- struct shash_alg *alg,
- struct crypto_instance *inst);
-
-static inline void crypto_drop_shash(struct crypto_shash_spawn *spawn)
-{
- crypto_drop_spawn(&spawn->base);
-}
-
-struct shash_alg *shash_attr_alg(struct rtattr *rta, u32 type, u32 mask);
-
-int shash_ahash_update(struct ahash_request *req, struct shash_desc *desc);
-int shash_ahash_finup(struct ahash_request *req, struct shash_desc *desc);
-int shash_ahash_digest(struct ahash_request *req, struct shash_desc *desc);
-
-int crypto_init_shash_ops_async(struct crypto_tfm *tfm);
-
-static inline void *crypto_ahash_ctx(struct crypto_ahash *tfm)
-{
- return crypto_tfm_ctx(crypto_ahash_tfm(tfm));
-}
-
-static inline struct ahash_alg *__crypto_ahash_alg(struct crypto_alg *alg)
-{
- return container_of(__crypto_hash_alg_common(alg), struct ahash_alg,
- halg);
-}
-
-static inline void crypto_ahash_set_reqsize(struct crypto_ahash *tfm,
- unsigned int reqsize)
-{
- tfm->reqsize = reqsize;
-}
-
-static inline struct crypto_instance *ahash_crypto_instance(
- struct ahash_instance *inst)
-{
- return container_of(&inst->alg.halg.base, struct crypto_instance, alg);
-}
-
-static inline struct ahash_instance *ahash_instance(
- struct crypto_instance *inst)
-{
- return container_of(&inst->alg, struct ahash_instance, alg.halg.base);
-}
-
-static inline void *ahash_instance_ctx(struct ahash_instance *inst)
-{
- return crypto_instance_ctx(ahash_crypto_instance(inst));
-}
-
-static inline unsigned int ahash_instance_headroom(void)
-{
- return sizeof(struct ahash_alg) - sizeof(struct crypto_alg);
-}
-
-static inline struct ahash_instance *ahash_alloc_instance(
- const char *name, struct crypto_alg *alg)
-{
- return crypto_alloc_instance2(name, alg, ahash_instance_headroom());
-}
-
-static inline struct crypto_ahash *crypto_spawn_ahash(
- struct crypto_ahash_spawn *spawn)
-{
- return crypto_spawn_tfm2(&spawn->base);
-}
-
-static inline int ahash_enqueue_request(struct crypto_queue *queue,
- struct ahash_request *request)
-{
- return crypto_enqueue_request(queue, &request->base);
-}
-
-static inline struct ahash_request *ahash_dequeue_request(
- struct crypto_queue *queue)
-{
- return ahash_request_cast(crypto_dequeue_request(queue));
-}
-
-static inline int ahash_tfm_in_queue(struct crypto_queue *queue,
- struct crypto_ahash *tfm)
-{
- return crypto_tfm_in_queue(queue, crypto_ahash_tfm(tfm));
-}
-
-static inline void *crypto_shash_ctx(struct crypto_shash *tfm)
-{
- return crypto_tfm_ctx(&tfm->base);
-}
-
-static inline struct crypto_instance *shash_crypto_instance(
- struct shash_instance *inst)
-{
- return container_of(&inst->alg.base, struct crypto_instance, alg);
-}
-
-static inline struct shash_instance *shash_instance(
- struct crypto_instance *inst)
-{
- return container_of(__crypto_shash_alg(&inst->alg),
- struct shash_instance, alg);
-}
-
-static inline void *shash_instance_ctx(struct shash_instance *inst)
-{
- return crypto_instance_ctx(shash_crypto_instance(inst));
-}
-
-static inline struct shash_instance *shash_alloc_instance(
- const char *name, struct crypto_alg *alg)
-{
- return crypto_alloc_instance2(name, alg,
- sizeof(struct shash_alg) - sizeof(*alg));
-}
-
-static inline struct crypto_shash *crypto_spawn_shash(
- struct crypto_shash_spawn *spawn)
-{
- return crypto_spawn_tfm2(&spawn->base);
-}
-
-static inline void *crypto_shash_ctx_aligned(struct crypto_shash *tfm)
-{
- return crypto_tfm_ctx_aligned(&tfm->base);
-}
-
-static inline struct crypto_shash *__crypto_shash_cast(struct crypto_tfm *tfm)
-{
- return container_of(tfm, struct crypto_shash, base);
-}
-
-#endif /* _CRYPTO_INTERNAL_HASH_H */
-
diff --git a/ANDROID_3.4.5/include/crypto/internal/rng.h b/ANDROID_3.4.5/include/crypto/internal/rng.h
deleted file mode 100644
index 89697336..00000000
--- a/ANDROID_3.4.5/include/crypto/internal/rng.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * RNG: Random Number Generator algorithms under the crypto API
- *
- * Copyright (c) 2008 Neil Horman <nhorman@tuxdriver.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_INTERNAL_RNG_H
-#define _CRYPTO_INTERNAL_RNG_H
-
-#include <crypto/algapi.h>
-#include <crypto/rng.h>
-
-extern const struct crypto_type crypto_rng_type;
-
-static inline void *crypto_rng_ctx(struct crypto_rng *tfm)
-{
- return crypto_tfm_ctx(&tfm->base);
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/crypto/internal/skcipher.h b/ANDROID_3.4.5/include/crypto/internal/skcipher.h
deleted file mode 100644
index 06e8b32d..00000000
--- a/ANDROID_3.4.5/include/crypto/internal/skcipher.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Symmetric key ciphers.
- *
- * Copyright (c) 2007 Herbert Xu <herbert@gondor.apana.org.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_SKCIPHER_H
-#define _CRYPTO_INTERNAL_SKCIPHER_H
-
-#include <crypto/algapi.h>
-#include <crypto/skcipher.h>
-#include <linux/types.h>
-
-struct rtattr;
-
-struct crypto_skcipher_spawn {
- struct crypto_spawn base;
-};
-
-extern const struct crypto_type crypto_givcipher_type;
-
-static inline void crypto_set_skcipher_spawn(
- struct crypto_skcipher_spawn *spawn, struct crypto_instance *inst)
-{
- crypto_set_spawn(&spawn->base, inst);
-}
-
-int crypto_grab_skcipher(struct crypto_skcipher_spawn *spawn, const char *name,
- u32 type, u32 mask);
-
-struct crypto_alg *crypto_lookup_skcipher(const char *name, u32 type, u32 mask);
-
-static inline void crypto_drop_skcipher(struct crypto_skcipher_spawn *spawn)
-{
- crypto_drop_spawn(&spawn->base);
-}
-
-static inline struct crypto_alg *crypto_skcipher_spawn_alg(
- struct crypto_skcipher_spawn *spawn)
-{
- return spawn->base.alg;
-}
-
-static inline struct crypto_ablkcipher *crypto_spawn_skcipher(
- struct crypto_skcipher_spawn *spawn)
-{
- return __crypto_ablkcipher_cast(
- crypto_spawn_tfm(&spawn->base, crypto_skcipher_type(0),
- crypto_skcipher_mask(0)));
-}
-
-int skcipher_null_givencrypt(struct skcipher_givcrypt_request *req);
-int skcipher_null_givdecrypt(struct skcipher_givcrypt_request *req);
-const char *crypto_default_geniv(const struct crypto_alg *alg);
-
-struct crypto_instance *skcipher_geniv_alloc(struct crypto_template *tmpl,
- struct rtattr **tb, u32 type,
- u32 mask);
-void skcipher_geniv_free(struct crypto_instance *inst);
-int skcipher_geniv_init(struct crypto_tfm *tfm);
-void skcipher_geniv_exit(struct crypto_tfm *tfm);
-
-static inline struct crypto_ablkcipher *skcipher_geniv_cipher(
- struct crypto_ablkcipher *geniv)
-{
- return crypto_ablkcipher_crt(geniv)->base;
-}
-
-static inline int skcipher_enqueue_givcrypt(
- struct crypto_queue *queue, struct skcipher_givcrypt_request *request)
-{
- return ablkcipher_enqueue_request(queue, &request->creq);
-}
-
-static inline struct skcipher_givcrypt_request *skcipher_dequeue_givcrypt(
- struct crypto_queue *queue)
-{
- return __crypto_dequeue_request(
- queue, offsetof(struct skcipher_givcrypt_request, creq.base));
-}
-
-static inline void *skcipher_givcrypt_reqctx(
- struct skcipher_givcrypt_request *req)
-{
- return ablkcipher_request_ctx(&req->creq);
-}
-
-static inline void ablkcipher_request_complete(struct ablkcipher_request *req,
- int err)
-{
- req->base.complete(&req->base, err);
-}
-
-static inline void skcipher_givcrypt_complete(
- struct skcipher_givcrypt_request *req, int err)
-{
- ablkcipher_request_complete(&req->creq, err);
-}
-
-static inline u32 ablkcipher_request_flags(struct ablkcipher_request *req)
-{
- return req->base.flags;
-}
-
-#endif /* _CRYPTO_INTERNAL_SKCIPHER_H */
-
diff --git a/ANDROID_3.4.5/include/crypto/lrw.h b/ANDROID_3.4.5/include/crypto/lrw.h
deleted file mode 100644
index 25a2c871..00000000
--- a/ANDROID_3.4.5/include/crypto/lrw.h
+++ /dev/null
@@ -1,43 +0,0 @@
-#ifndef _CRYPTO_LRW_H
-#define _CRYPTO_LRW_H
-
-#include <crypto/b128ops.h>
-
-struct scatterlist;
-struct gf128mul_64k;
-struct blkcipher_desc;
-
-#define LRW_BLOCK_SIZE 16
-
-struct lrw_table_ctx {
- /* optimizes multiplying a random (non incrementing, as at the
- * start of a new sector) value with key2, we could also have
- * used 4k optimization tables or no optimization at all. In the
- * latter case we would have to store key2 here */
- struct gf128mul_64k *table;
- /* stores:
- * key2*{ 0,0,...0,0,0,0,1 }, key2*{ 0,0,...0,0,0,1,1 },
- * key2*{ 0,0,...0,0,1,1,1 }, key2*{ 0,0,...0,1,1,1,1 }
- * key2*{ 0,0,...1,1,1,1,1 }, etc
- * needed for optimized multiplication of incrementing values
- * with key2 */
- be128 mulinc[128];
-};
-
-int lrw_init_table(struct lrw_table_ctx *ctx, const u8 *tweak);
-void lrw_free_table(struct lrw_table_ctx *ctx);
-
-struct lrw_crypt_req {
- be128 *tbuf;
- unsigned int tbuflen;
-
- struct lrw_table_ctx *table_ctx;
- void *crypt_ctx;
- void (*crypt_fn)(void *ctx, u8 *blks, unsigned int nbytes);
-};
-
-int lrw_crypt(struct blkcipher_desc *desc, struct scatterlist *dst,
- struct scatterlist *src, unsigned int nbytes,
- struct lrw_crypt_req *req);
-
-#endif /* _CRYPTO_LRW_H */
diff --git a/ANDROID_3.4.5/include/crypto/md5.h b/ANDROID_3.4.5/include/crypto/md5.h
deleted file mode 100644
index 65f299b0..00000000
--- a/ANDROID_3.4.5/include/crypto/md5.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef _CRYPTO_MD5_H
-#define _CRYPTO_MD5_H
-
-#include <linux/types.h>
-
-#define MD5_DIGEST_SIZE 16
-#define MD5_HMAC_BLOCK_SIZE 64
-#define MD5_BLOCK_WORDS 16
-#define MD5_HASH_WORDS 4
-
-struct md5_state {
- u32 hash[MD5_HASH_WORDS];
- u32 block[MD5_BLOCK_WORDS];
- u64 byte_count;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/crypto/padlock.h b/ANDROID_3.4.5/include/crypto/padlock.h
deleted file mode 100644
index d2cfa2ef..00000000
--- a/ANDROID_3.4.5/include/crypto/padlock.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Driver for VIA PadLock
- *
- * Copyright (c) 2004 Michal Ludvig <michal@logix.cz>
- *
- * 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_PADLOCK_H
-#define _CRYPTO_PADLOCK_H
-
-#define PADLOCK_ALIGNMENT 16
-
-#define PFX KBUILD_MODNAME ": "
-
-#define PADLOCK_CRA_PRIORITY 300
-#define PADLOCK_COMPOSITE_PRIORITY 400
-
-#ifdef CONFIG_64BIT
-#define STACK_ALIGN 16
-#else
-#define STACK_ALIGN 4
-#endif
-
-#endif /* _CRYPTO_PADLOCK_H */
diff --git a/ANDROID_3.4.5/include/crypto/pcrypt.h b/ANDROID_3.4.5/include/crypto/pcrypt.h
deleted file mode 100644
index d7d8bd8c..00000000
--- a/ANDROID_3.4.5/include/crypto/pcrypt.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * pcrypt - Parallel crypto engine.
- *
- * Copyright (C) 2009 secunet Security Networks AG
- * Copyright (C) 2009 Steffen Klassert <steffen.klassert@secunet.com>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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 _CRYPTO_PCRYPT_H
-#define _CRYPTO_PCRYPT_H
-
-#include <linux/crypto.h>
-#include <linux/kernel.h>
-#include <linux/padata.h>
-
-struct pcrypt_request {
- struct padata_priv padata;
- void *data;
- void *__ctx[] CRYPTO_MINALIGN_ATTR;
-};
-
-static inline void *pcrypt_request_ctx(struct pcrypt_request *req)
-{
- return req->__ctx;
-}
-
-static inline
-struct padata_priv *pcrypt_request_padata(struct pcrypt_request *req)
-{
- return &req->padata;
-}
-
-static inline
-struct pcrypt_request *pcrypt_padata_request(struct padata_priv *padata)
-{
- return container_of(padata, struct pcrypt_request, padata);
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/crypto/rng.h b/ANDROID_3.4.5/include/crypto/rng.h
deleted file mode 100644
index c93f9b91..00000000
--- a/ANDROID_3.4.5/include/crypto/rng.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * RNG: Random Number Generator algorithms under the crypto API
- *
- * Copyright (c) 2008 Neil Horman <nhorman@tuxdriver.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_RNG_H
-#define _CRYPTO_RNG_H
-
-#include <linux/crypto.h>
-
-extern struct crypto_rng *crypto_default_rng;
-
-int crypto_get_default_rng(void);
-void crypto_put_default_rng(void);
-
-static inline struct crypto_rng *__crypto_rng_cast(struct crypto_tfm *tfm)
-{
- return (struct crypto_rng *)tfm;
-}
-
-static inline struct crypto_rng *crypto_alloc_rng(const char *alg_name,
- u32 type, u32 mask)
-{
- type &= ~CRYPTO_ALG_TYPE_MASK;
- type |= CRYPTO_ALG_TYPE_RNG;
- mask |= CRYPTO_ALG_TYPE_MASK;
-
- return __crypto_rng_cast(crypto_alloc_base(alg_name, type, mask));
-}
-
-static inline struct crypto_tfm *crypto_rng_tfm(struct crypto_rng *tfm)
-{
- return &tfm->base;
-}
-
-static inline struct rng_alg *crypto_rng_alg(struct crypto_rng *tfm)
-{
- return &crypto_rng_tfm(tfm)->__crt_alg->cra_rng;
-}
-
-static inline struct rng_tfm *crypto_rng_crt(struct crypto_rng *tfm)
-{
- return &crypto_rng_tfm(tfm)->crt_rng;
-}
-
-static inline void crypto_free_rng(struct crypto_rng *tfm)
-{
- crypto_free_tfm(crypto_rng_tfm(tfm));
-}
-
-static inline int crypto_rng_get_bytes(struct crypto_rng *tfm,
- u8 *rdata, unsigned int dlen)
-{
- return crypto_rng_crt(tfm)->rng_gen_random(tfm, rdata, dlen);
-}
-
-static inline int crypto_rng_reset(struct crypto_rng *tfm,
- u8 *seed, unsigned int slen)
-{
- return crypto_rng_crt(tfm)->rng_reset(tfm, seed, slen);
-}
-
-static inline int crypto_rng_seedsize(struct crypto_rng *tfm)
-{
- return crypto_rng_alg(tfm)->seedsize;
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/crypto/scatterwalk.h b/ANDROID_3.4.5/include/crypto/scatterwalk.h
deleted file mode 100644
index 3744d2a6..00000000
--- a/ANDROID_3.4.5/include/crypto/scatterwalk.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Cryptographic scatter and gather helpers.
- *
- * 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>
- * Copyright (c) 2007 Herbert Xu <herbert@gondor.apana.org.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_SCATTERWALK_H
-#define _CRYPTO_SCATTERWALK_H
-
-#include <asm/kmap_types.h>
-#include <crypto/algapi.h>
-#include <linux/hardirq.h>
-#include <linux/highmem.h>
-#include <linux/kernel.h>
-#include <linux/mm.h>
-#include <linux/scatterlist.h>
-#include <linux/sched.h>
-
-static inline void crypto_yield(u32 flags)
-{
- if (flags & CRYPTO_TFM_REQ_MAY_SLEEP)
- cond_resched();
-}
-
-static inline void scatterwalk_sg_chain(struct scatterlist *sg1, int num,
- struct scatterlist *sg2)
-{
- sg_set_page(&sg1[num - 1], (void *)sg2, 0, 0);
- sg1[num - 1].page_link &= ~0x02;
-}
-
-static inline struct scatterlist *scatterwalk_sg_next(struct scatterlist *sg)
-{
- if (sg_is_last(sg))
- return NULL;
-
- return (++sg)->length ? sg : (void *)sg_page(sg);
-}
-
-static inline void scatterwalk_crypto_chain(struct scatterlist *head,
- struct scatterlist *sg,
- int chain, int num)
-{
- if (chain) {
- head->length += sg->length;
- sg = scatterwalk_sg_next(sg);
- }
-
- if (sg)
- scatterwalk_sg_chain(head, num, sg);
- else
- sg_mark_end(head);
-}
-
-static inline unsigned long scatterwalk_samebuf(struct scatter_walk *walk_in,
- struct scatter_walk *walk_out)
-{
- return !(((sg_page(walk_in->sg) - sg_page(walk_out->sg)) << PAGE_SHIFT) +
- (int)(walk_in->offset - walk_out->offset));
-}
-
-static inline unsigned int scatterwalk_pagelen(struct scatter_walk *walk)
-{
- unsigned int len = walk->sg->offset + walk->sg->length - walk->offset;
- unsigned int len_this_page = offset_in_page(~walk->offset) + 1;
- return len_this_page > len ? len : len_this_page;
-}
-
-static inline unsigned int scatterwalk_clamp(struct scatter_walk *walk,
- unsigned int nbytes)
-{
- unsigned int len_this_page = scatterwalk_pagelen(walk);
- return nbytes > len_this_page ? len_this_page : nbytes;
-}
-
-static inline void scatterwalk_advance(struct scatter_walk *walk,
- unsigned int nbytes)
-{
- walk->offset += nbytes;
-}
-
-static inline unsigned int scatterwalk_aligned(struct scatter_walk *walk,
- unsigned int alignmask)
-{
- return !(walk->offset & alignmask);
-}
-
-static inline struct page *scatterwalk_page(struct scatter_walk *walk)
-{
- return sg_page(walk->sg) + (walk->offset >> PAGE_SHIFT);
-}
-
-static inline void scatterwalk_unmap(void *vaddr)
-{
- kunmap_atomic(vaddr);
-}
-
-void scatterwalk_start(struct scatter_walk *walk, struct scatterlist *sg);
-void scatterwalk_copychunks(void *buf, struct scatter_walk *walk,
- size_t nbytes, int out);
-void *scatterwalk_map(struct scatter_walk *walk);
-void scatterwalk_done(struct scatter_walk *walk, int out, int more);
-
-void scatterwalk_map_and_copy(void *buf, struct scatterlist *sg,
- unsigned int start, unsigned int nbytes, int out);
-
-#endif /* _CRYPTO_SCATTERWALK_H */
diff --git a/ANDROID_3.4.5/include/crypto/serpent.h b/ANDROID_3.4.5/include/crypto/serpent.h
deleted file mode 100644
index b7e0941e..00000000
--- a/ANDROID_3.4.5/include/crypto/serpent.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Common values for serpent algorithms
- */
-
-#ifndef _CRYPTO_SERPENT_H
-#define _CRYPTO_SERPENT_H
-
-#include <linux/types.h>
-#include <linux/crypto.h>
-
-#define SERPENT_MIN_KEY_SIZE 0
-#define SERPENT_MAX_KEY_SIZE 32
-#define SERPENT_EXPKEY_WORDS 132
-#define SERPENT_BLOCK_SIZE 16
-
-struct serpent_ctx {
- u32 expkey[SERPENT_EXPKEY_WORDS];
-};
-
-int __serpent_setkey(struct serpent_ctx *ctx, const u8 *key,
- unsigned int keylen);
-int serpent_setkey(struct crypto_tfm *tfm, const u8 *key, unsigned int keylen);
-
-void __serpent_encrypt(struct serpent_ctx *ctx, u8 *dst, const u8 *src);
-void __serpent_decrypt(struct serpent_ctx *ctx, u8 *dst, const u8 *src);
-
-#endif
diff --git a/ANDROID_3.4.5/include/crypto/sha.h b/ANDROID_3.4.5/include/crypto/sha.h
deleted file mode 100644
index c6c9c1fe..00000000
--- a/ANDROID_3.4.5/include/crypto/sha.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Common values for SHA algorithms
- */
-
-#ifndef _CRYPTO_SHA_H
-#define _CRYPTO_SHA_H
-
-#include <linux/types.h>
-
-#define SHA1_DIGEST_SIZE 20
-#define SHA1_BLOCK_SIZE 64
-
-#define SHA224_DIGEST_SIZE 28
-#define SHA224_BLOCK_SIZE 64
-
-#define SHA256_DIGEST_SIZE 32
-#define SHA256_BLOCK_SIZE 64
-
-#define SHA384_DIGEST_SIZE 48
-#define SHA384_BLOCK_SIZE 128
-
-#define SHA512_DIGEST_SIZE 64
-#define SHA512_BLOCK_SIZE 128
-
-#define SHA1_H0 0x67452301UL
-#define SHA1_H1 0xefcdab89UL
-#define SHA1_H2 0x98badcfeUL
-#define SHA1_H3 0x10325476UL
-#define SHA1_H4 0xc3d2e1f0UL
-
-#define SHA224_H0 0xc1059ed8UL
-#define SHA224_H1 0x367cd507UL
-#define SHA224_H2 0x3070dd17UL
-#define SHA224_H3 0xf70e5939UL
-#define SHA224_H4 0xffc00b31UL
-#define SHA224_H5 0x68581511UL
-#define SHA224_H6 0x64f98fa7UL
-#define SHA224_H7 0xbefa4fa4UL
-
-#define SHA256_H0 0x6a09e667UL
-#define SHA256_H1 0xbb67ae85UL
-#define SHA256_H2 0x3c6ef372UL
-#define SHA256_H3 0xa54ff53aUL
-#define SHA256_H4 0x510e527fUL
-#define SHA256_H5 0x9b05688cUL
-#define SHA256_H6 0x1f83d9abUL
-#define SHA256_H7 0x5be0cd19UL
-
-#define SHA384_H0 0xcbbb9d5dc1059ed8ULL
-#define SHA384_H1 0x629a292a367cd507ULL
-#define SHA384_H2 0x9159015a3070dd17ULL
-#define SHA384_H3 0x152fecd8f70e5939ULL
-#define SHA384_H4 0x67332667ffc00b31ULL
-#define SHA384_H5 0x8eb44a8768581511ULL
-#define SHA384_H6 0xdb0c2e0d64f98fa7ULL
-#define SHA384_H7 0x47b5481dbefa4fa4ULL
-
-#define SHA512_H0 0x6a09e667f3bcc908ULL
-#define SHA512_H1 0xbb67ae8584caa73bULL
-#define SHA512_H2 0x3c6ef372fe94f82bULL
-#define SHA512_H3 0xa54ff53a5f1d36f1ULL
-#define SHA512_H4 0x510e527fade682d1ULL
-#define SHA512_H5 0x9b05688c2b3e6c1fULL
-#define SHA512_H6 0x1f83d9abfb41bd6bULL
-#define SHA512_H7 0x5be0cd19137e2179ULL
-
-struct sha1_state {
- u64 count;
- u32 state[SHA1_DIGEST_SIZE / 4];
- u8 buffer[SHA1_BLOCK_SIZE];
-};
-
-struct sha256_state {
- u64 count;
- u32 state[SHA256_DIGEST_SIZE / 4];
- u8 buf[SHA256_BLOCK_SIZE];
-};
-
-struct sha512_state {
- u64 count[2];
- u64 state[SHA512_DIGEST_SIZE / 8];
- u8 buf[SHA512_BLOCK_SIZE];
-};
-
-struct shash_desc;
-
-extern int crypto_sha1_update(struct shash_desc *desc, const u8 *data,
- unsigned int len);
-
-#endif
diff --git a/ANDROID_3.4.5/include/crypto/skcipher.h b/ANDROID_3.4.5/include/crypto/skcipher.h
deleted file mode 100644
index 25fd6126..00000000
--- a/ANDROID_3.4.5/include/crypto/skcipher.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Symmetric key ciphers.
- *
- * Copyright (c) 2007 Herbert Xu <herbert@gondor.apana.org.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_SKCIPHER_H
-#define _CRYPTO_SKCIPHER_H
-
-#include <linux/crypto.h>
-#include <linux/kernel.h>
-#include <linux/slab.h>
-
-/**
- * struct skcipher_givcrypt_request - Crypto request with IV generation
- * @seq: Sequence number for IV generation
- * @giv: Space for generated IV
- * @creq: The crypto request itself
- */
-struct skcipher_givcrypt_request {
- u64 seq;
- u8 *giv;
-
- struct ablkcipher_request creq;
-};
-
-static inline struct crypto_ablkcipher *skcipher_givcrypt_reqtfm(
- struct skcipher_givcrypt_request *req)
-{
- return crypto_ablkcipher_reqtfm(&req->creq);
-}
-
-static inline int crypto_skcipher_givencrypt(
- struct skcipher_givcrypt_request *req)
-{
- struct ablkcipher_tfm *crt =
- crypto_ablkcipher_crt(skcipher_givcrypt_reqtfm(req));
- return crt->givencrypt(req);
-};
-
-static inline int crypto_skcipher_givdecrypt(
- struct skcipher_givcrypt_request *req)
-{
- struct ablkcipher_tfm *crt =
- crypto_ablkcipher_crt(skcipher_givcrypt_reqtfm(req));
- return crt->givdecrypt(req);
-};
-
-static inline void skcipher_givcrypt_set_tfm(
- struct skcipher_givcrypt_request *req, struct crypto_ablkcipher *tfm)
-{
- req->creq.base.tfm = crypto_ablkcipher_tfm(tfm);
-}
-
-static inline struct skcipher_givcrypt_request *skcipher_givcrypt_cast(
- struct crypto_async_request *req)
-{
- return container_of(ablkcipher_request_cast(req),
- struct skcipher_givcrypt_request, creq);
-}
-
-static inline struct skcipher_givcrypt_request *skcipher_givcrypt_alloc(
- struct crypto_ablkcipher *tfm, gfp_t gfp)
-{
- struct skcipher_givcrypt_request *req;
-
- req = kmalloc(sizeof(struct skcipher_givcrypt_request) +
- crypto_ablkcipher_reqsize(tfm), gfp);
-
- if (likely(req))
- skcipher_givcrypt_set_tfm(req, tfm);
-
- return req;
-}
-
-static inline void skcipher_givcrypt_free(struct skcipher_givcrypt_request *req)
-{
- kfree(req);
-}
-
-static inline void skcipher_givcrypt_set_callback(
- struct skcipher_givcrypt_request *req, u32 flags,
- crypto_completion_t complete, void *data)
-{
- ablkcipher_request_set_callback(&req->creq, flags, complete, data);
-}
-
-static inline void skcipher_givcrypt_set_crypt(
- struct skcipher_givcrypt_request *req,
- struct scatterlist *src, struct scatterlist *dst,
- unsigned int nbytes, void *iv)
-{
- ablkcipher_request_set_crypt(&req->creq, src, dst, nbytes, iv);
-}
-
-static inline void skcipher_givcrypt_set_giv(
- struct skcipher_givcrypt_request *req, u8 *giv, u64 seq)
-{
- req->giv = giv;
- req->seq = seq;
-}
-
-#endif /* _CRYPTO_SKCIPHER_H */
-
diff --git a/ANDROID_3.4.5/include/crypto/twofish.h b/ANDROID_3.4.5/include/crypto/twofish.h
deleted file mode 100644
index 095c901a..00000000
--- a/ANDROID_3.4.5/include/crypto/twofish.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef _CRYPTO_TWOFISH_H
-#define _CRYPTO_TWOFISH_H
-
-#include <linux/types.h>
-
-#define TF_MIN_KEY_SIZE 16
-#define TF_MAX_KEY_SIZE 32
-#define TF_BLOCK_SIZE 16
-
-struct crypto_tfm;
-
-/* Structure for an expanded Twofish key. s contains the key-dependent
- * S-boxes composed with the MDS matrix; w contains the eight "whitening"
- * subkeys, K[0] through K[7]. k holds the remaining, "round" subkeys. Note
- * that k[i] corresponds to what the Twofish paper calls K[i+8]. */
-struct twofish_ctx {
- u32 s[4][256], w[8], k[32];
-};
-
-int __twofish_setkey(struct twofish_ctx *ctx, const u8 *key,
- unsigned int key_len, u32 *flags);
-int twofish_setkey(struct crypto_tfm *tfm, const u8 *key, unsigned int key_len);
-
-#endif
diff --git a/ANDROID_3.4.5/include/crypto/vmac.h b/ANDROID_3.4.5/include/crypto/vmac.h
deleted file mode 100644
index c4467c55..00000000
--- a/ANDROID_3.4.5/include/crypto/vmac.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Modified to interface to the Linux kernel
- * Copyright (c) 2009, Intel Corporation.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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.
- */
-
-#ifndef __CRYPTO_VMAC_H
-#define __CRYPTO_VMAC_H
-
-/* --------------------------------------------------------------------------
- * VMAC and VHASH Implementation by Ted Krovetz (tdk@acm.org) and Wei Dai.
- * This implementation is herby placed in the public domain.
- * The authors offers no warranty. Use at your own risk.
- * Please send bug reports to the authors.
- * Last modified: 17 APR 08, 1700 PDT
- * ----------------------------------------------------------------------- */
-
-/*
- * User definable settings.
- */
-#define VMAC_TAG_LEN 64
-#define VMAC_KEY_SIZE 128/* Must be 128, 192 or 256 */
-#define VMAC_KEY_LEN (VMAC_KEY_SIZE/8)
-#define VMAC_NHBYTES 128/* Must 2^i for any 3 < i < 13 Standard = 128*/
-
-/*
- * This implementation uses u32 and u64 as names for unsigned 32-
- * and 64-bit integer types. These are defined in C99 stdint.h. The
- * following may need adaptation if you are not running a C99 or
- * Microsoft C environment.
- */
-struct vmac_ctx {
- u64 nhkey[(VMAC_NHBYTES/8)+2*(VMAC_TAG_LEN/64-1)];
- u64 polykey[2*VMAC_TAG_LEN/64];
- u64 l3key[2*VMAC_TAG_LEN/64];
- u64 polytmp[2*VMAC_TAG_LEN/64];
- u64 cached_nonce[2];
- u64 cached_aes[2];
- int first_block_processed;
-};
-
-typedef u64 vmac_t;
-
-struct vmac_ctx_t {
- struct crypto_cipher *child;
- struct vmac_ctx __vmac_ctx;
-};
-
-#endif /* __CRYPTO_VMAC_H */
diff --git a/ANDROID_3.4.5/include/crypto/xts.h b/ANDROID_3.4.5/include/crypto/xts.h
deleted file mode 100644
index 72c09eb5..00000000
--- a/ANDROID_3.4.5/include/crypto/xts.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef _CRYPTO_XTS_H
-#define _CRYPTO_XTS_H
-
-#include <crypto/b128ops.h>
-
-struct scatterlist;
-struct blkcipher_desc;
-
-#define XTS_BLOCK_SIZE 16
-
-struct xts_crypt_req {
- be128 *tbuf;
- unsigned int tbuflen;
-
- void *tweak_ctx;
- void (*tweak_fn)(void *ctx, u8* dst, const u8* src);
- void *crypt_ctx;
- void (*crypt_fn)(void *ctx, u8 *blks, unsigned int nbytes);
-};
-
-#define XTS_TWEAK_CAST(x) ((void (*)(void *, u8*, const u8*))(x))
-
-int xts_crypt(struct blkcipher_desc *desc, struct scatterlist *dst,
- struct scatterlist *src, unsigned int nbytes,
- struct xts_crypt_req *req);
-
-#endif /* _CRYPTO_XTS_H */
diff --git a/ANDROID_3.4.5/include/drm/Kbuild b/ANDROID_3.4.5/include/drm/Kbuild
deleted file mode 100644
index 1e38a19d..00000000
--- a/ANDROID_3.4.5/include/drm/Kbuild
+++ /dev/null
@@ -1,15 +0,0 @@
-header-y += drm.h
-header-y += drm_fourcc.h
-header-y += drm_mode.h
-header-y += drm_sarea.h
-header-y += exynos_drm.h
-header-y += i810_drm.h
-header-y += i915_drm.h
-header-y += mga_drm.h
-header-y += nouveau_drm.h
-header-y += r128_drm.h
-header-y += radeon_drm.h
-header-y += savage_drm.h
-header-y += sis_drm.h
-header-y += via_drm.h
-header-y += vmwgfx_drm.h
diff --git a/ANDROID_3.4.5/include/drm/drm.h b/ANDROID_3.4.5/include/drm/drm.h
deleted file mode 100644
index 64ff02d5..00000000
--- a/ANDROID_3.4.5/include/drm/drm.h
+++ /dev/null
@@ -1,824 +0,0 @@
-/**
- * \file drm.h
- * Header for the Direct Rendering Manager
- *
- * \author Rickard E. (Rik) Faith <faith@valinux.com>
- *
- * \par Acknowledgments:
- * Dec 1999, Richard Henderson <rth@twiddle.net>, move to generic \c cmpxchg.
- */
-
-/*
- * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
- * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef _DRM_H_
-#define _DRM_H_
-
-#if defined(__linux__)
-
-#include <linux/types.h>
-#include <asm/ioctl.h>
-typedef unsigned int drm_handle_t;
-
-#else /* One of the BSDs */
-
-#include <sys/ioccom.h>
-#include <sys/types.h>
-typedef int8_t __s8;
-typedef uint8_t __u8;
-typedef int16_t __s16;
-typedef uint16_t __u16;
-typedef int32_t __s32;
-typedef uint32_t __u32;
-typedef int64_t __s64;
-typedef uint64_t __u64;
-typedef unsigned long drm_handle_t;
-
-#endif
-
-#define DRM_NAME "drm" /**< Name in kernel, /dev, and /proc */
-#define DRM_MIN_ORDER 5 /**< At least 2^5 bytes = 32 bytes */
-#define DRM_MAX_ORDER 22 /**< Up to 2^22 bytes = 4MB */
-#define DRM_RAM_PERCENT 10 /**< How much system ram can we lock? */
-
-#define _DRM_LOCK_HELD 0x80000000U /**< Hardware lock is held */
-#define _DRM_LOCK_CONT 0x40000000U /**< Hardware lock is contended */
-#define _DRM_LOCK_IS_HELD(lock) ((lock) & _DRM_LOCK_HELD)
-#define _DRM_LOCK_IS_CONT(lock) ((lock) & _DRM_LOCK_CONT)
-#define _DRM_LOCKING_CONTEXT(lock) ((lock) & ~(_DRM_LOCK_HELD|_DRM_LOCK_CONT))
-
-typedef unsigned int drm_context_t;
-typedef unsigned int drm_drawable_t;
-typedef unsigned int drm_magic_t;
-
-/**
- * Cliprect.
- *
- * \warning: If you change this structure, make sure you change
- * XF86DRIClipRectRec in the server as well
- *
- * \note KW: Actually it's illegal to change either for
- * backwards-compatibility reasons.
- */
-struct drm_clip_rect {
- unsigned short x1;
- unsigned short y1;
- unsigned short x2;
- unsigned short y2;
-};
-
-/**
- * Drawable information.
- */
-struct drm_drawable_info {
- unsigned int num_rects;
- struct drm_clip_rect *rects;
-};
-
-/**
- * Texture region,
- */
-struct drm_tex_region {
- unsigned char next;
- unsigned char prev;
- unsigned char in_use;
- unsigned char padding;
- unsigned int age;
-};
-
-/**
- * Hardware lock.
- *
- * The lock structure is a simple cache-line aligned integer. To avoid
- * processor bus contention on a multiprocessor system, there should not be any
- * other data stored in the same cache line.
- */
-struct drm_hw_lock {
- __volatile__ unsigned int lock; /**< lock variable */
- char padding[60]; /**< Pad to cache line */
-};
-
-/**
- * DRM_IOCTL_VERSION ioctl argument type.
- *
- * \sa drmGetVersion().
- */
-struct drm_version {
- int version_major; /**< Major version */
- int version_minor; /**< Minor version */
- int version_patchlevel; /**< Patch level */
- size_t name_len; /**< Length of name buffer */
- char __user *name; /**< Name of driver */
- size_t date_len; /**< Length of date buffer */
- char __user *date; /**< User-space buffer to hold date */
- size_t desc_len; /**< Length of desc buffer */
- char __user *desc; /**< User-space buffer to hold desc */
-};
-
-/**
- * DRM_IOCTL_GET_UNIQUE ioctl argument type.
- *
- * \sa drmGetBusid() and drmSetBusId().
- */
-struct drm_unique {
- size_t unique_len; /**< Length of unique */
- char __user *unique; /**< Unique name for driver instantiation */
-};
-
-struct drm_list {
- int count; /**< Length of user-space structures */
- struct drm_version __user *version;
-};
-
-struct drm_block {
- int unused;
-};
-
-/**
- * DRM_IOCTL_CONTROL ioctl argument type.
- *
- * \sa drmCtlInstHandler() and drmCtlUninstHandler().
- */
-struct drm_control {
- enum {
- DRM_ADD_COMMAND,
- DRM_RM_COMMAND,
- DRM_INST_HANDLER,
- DRM_UNINST_HANDLER
- } func;
- int irq;
-};
-
-/**
- * Type of memory to map.
- */
-enum drm_map_type {
- _DRM_FRAME_BUFFER = 0, /**< WC (no caching), no core dump */
- _DRM_REGISTERS = 1, /**< no caching, no core dump */
- _DRM_SHM = 2, /**< shared, cached */
- _DRM_AGP = 3, /**< AGP/GART */
- _DRM_SCATTER_GATHER = 4, /**< Scatter/gather memory for PCI DMA */
- _DRM_CONSISTENT = 5, /**< Consistent memory for PCI DMA */
- _DRM_GEM = 6, /**< GEM object */
-};
-
-/**
- * Memory mapping flags.
- */
-enum drm_map_flags {
- _DRM_RESTRICTED = 0x01, /**< Cannot be mapped to user-virtual */
- _DRM_READ_ONLY = 0x02,
- _DRM_LOCKED = 0x04, /**< shared, cached, locked */
- _DRM_KERNEL = 0x08, /**< kernel requires access */
- _DRM_WRITE_COMBINING = 0x10, /**< use write-combining if available */
- _DRM_CONTAINS_LOCK = 0x20, /**< SHM page that contains lock */
- _DRM_REMOVABLE = 0x40, /**< Removable mapping */
- _DRM_DRIVER = 0x80 /**< Managed by driver */
-};
-
-struct drm_ctx_priv_map {
- unsigned int ctx_id; /**< Context requesting private mapping */
- void *handle; /**< Handle of map */
-};
-
-/**
- * DRM_IOCTL_GET_MAP, DRM_IOCTL_ADD_MAP and DRM_IOCTL_RM_MAP ioctls
- * argument type.
- *
- * \sa drmAddMap().
- */
-struct drm_map {
- unsigned long offset; /**< Requested physical address (0 for SAREA)*/
- unsigned long size; /**< Requested physical size (bytes) */
- enum drm_map_type type; /**< Type of memory to map */
- enum drm_map_flags flags; /**< Flags */
- void *handle; /**< User-space: "Handle" to pass to mmap() */
- /**< Kernel-space: kernel-virtual address */
- int mtrr; /**< MTRR slot used */
- /* Private data */
-};
-
-/**
- * DRM_IOCTL_GET_CLIENT ioctl argument type.
- */
-struct drm_client {
- int idx; /**< Which client desired? */
- int auth; /**< Is client authenticated? */
- unsigned long pid; /**< Process ID */
- unsigned long uid; /**< User ID */
- unsigned long magic; /**< Magic */
- unsigned long iocs; /**< Ioctl count */
-};
-
-enum drm_stat_type {
- _DRM_STAT_LOCK,
- _DRM_STAT_OPENS,
- _DRM_STAT_CLOSES,
- _DRM_STAT_IOCTLS,
- _DRM_STAT_LOCKS,
- _DRM_STAT_UNLOCKS,
- _DRM_STAT_VALUE, /**< Generic value */
- _DRM_STAT_BYTE, /**< Generic byte counter (1024bytes/K) */
- _DRM_STAT_COUNT, /**< Generic non-byte counter (1000/k) */
-
- _DRM_STAT_IRQ, /**< IRQ */
- _DRM_STAT_PRIMARY, /**< Primary DMA bytes */
- _DRM_STAT_SECONDARY, /**< Secondary DMA bytes */
- _DRM_STAT_DMA, /**< DMA */
- _DRM_STAT_SPECIAL, /**< Special DMA (e.g., priority or polled) */
- _DRM_STAT_MISSED /**< Missed DMA opportunity */
- /* Add to the *END* of the list */
-};
-
-/**
- * DRM_IOCTL_GET_STATS ioctl argument type.
- */
-struct drm_stats {
- unsigned long count;
- struct {
- unsigned long value;
- enum drm_stat_type type;
- } data[15];
-};
-
-/**
- * Hardware locking flags.
- */
-enum drm_lock_flags {
- _DRM_LOCK_READY = 0x01, /**< Wait until hardware is ready for DMA */
- _DRM_LOCK_QUIESCENT = 0x02, /**< Wait until hardware quiescent */
- _DRM_LOCK_FLUSH = 0x04, /**< Flush this context's DMA queue first */
- _DRM_LOCK_FLUSH_ALL = 0x08, /**< Flush all DMA queues first */
- /* These *HALT* flags aren't supported yet
- -- they will be used to support the
- full-screen DGA-like mode. */
- _DRM_HALT_ALL_QUEUES = 0x10, /**< Halt all current and future queues */
- _DRM_HALT_CUR_QUEUES = 0x20 /**< Halt all current queues */
-};
-
-/**
- * DRM_IOCTL_LOCK, DRM_IOCTL_UNLOCK and DRM_IOCTL_FINISH ioctl argument type.
- *
- * \sa drmGetLock() and drmUnlock().
- */
-struct drm_lock {
- int context;
- enum drm_lock_flags flags;
-};
-
-/**
- * DMA flags
- *
- * \warning
- * These values \e must match xf86drm.h.
- *
- * \sa drm_dma.
- */
-enum drm_dma_flags {
- /* Flags for DMA buffer dispatch */
- _DRM_DMA_BLOCK = 0x01, /**<
- * Block until buffer dispatched.
- *
- * \note The buffer may not yet have
- * been processed by the hardware --
- * getting a hardware lock with the
- * hardware quiescent will ensure
- * that the buffer has been
- * processed.
- */
- _DRM_DMA_WHILE_LOCKED = 0x02, /**< Dispatch while lock held */
- _DRM_DMA_PRIORITY = 0x04, /**< High priority dispatch */
-
- /* Flags for DMA buffer request */
- _DRM_DMA_WAIT = 0x10, /**< Wait for free buffers */
- _DRM_DMA_SMALLER_OK = 0x20, /**< Smaller-than-requested buffers OK */
- _DRM_DMA_LARGER_OK = 0x40 /**< Larger-than-requested buffers OK */
-};
-
-/**
- * DRM_IOCTL_ADD_BUFS and DRM_IOCTL_MARK_BUFS ioctl argument type.
- *
- * \sa drmAddBufs().
- */
-struct drm_buf_desc {
- int count; /**< Number of buffers of this size */
- int size; /**< Size in bytes */
- int low_mark; /**< Low water mark */
- int high_mark; /**< High water mark */
- enum {
- _DRM_PAGE_ALIGN = 0x01, /**< Align on page boundaries for DMA */
- _DRM_AGP_BUFFER = 0x02, /**< Buffer is in AGP space */
- _DRM_SG_BUFFER = 0x04, /**< Scatter/gather memory buffer */
- _DRM_FB_BUFFER = 0x08, /**< Buffer is in frame buffer */
- _DRM_PCI_BUFFER_RO = 0x10 /**< Map PCI DMA buffer read-only */
- } flags;
- unsigned long agp_start; /**<
- * Start address of where the AGP buffers are
- * in the AGP aperture
- */
-};
-
-/**
- * DRM_IOCTL_INFO_BUFS ioctl argument type.
- */
-struct drm_buf_info {
- int count; /**< Entries in list */
- struct drm_buf_desc __user *list;
-};
-
-/**
- * DRM_IOCTL_FREE_BUFS ioctl argument type.
- */
-struct drm_buf_free {
- int count;
- int __user *list;
-};
-
-/**
- * Buffer information
- *
- * \sa drm_buf_map.
- */
-struct drm_buf_pub {
- int idx; /**< Index into the master buffer list */
- int total; /**< Buffer size */
- int used; /**< Amount of buffer in use (for DMA) */
- void __user *address; /**< Address of buffer */
-};
-
-/**
- * DRM_IOCTL_MAP_BUFS ioctl argument type.
- */
-struct drm_buf_map {
- int count; /**< Length of the buffer list */
- void __user *virtual; /**< Mmap'd area in user-virtual */
- struct drm_buf_pub __user *list; /**< Buffer information */
-};
-
-/**
- * DRM_IOCTL_DMA ioctl argument type.
- *
- * Indices here refer to the offset into the buffer list in drm_buf_get.
- *
- * \sa drmDMA().
- */
-struct drm_dma {
- int context; /**< Context handle */
- int send_count; /**< Number of buffers to send */
- int __user *send_indices; /**< List of handles to buffers */
- int __user *send_sizes; /**< Lengths of data to send */
- enum drm_dma_flags flags; /**< Flags */
- int request_count; /**< Number of buffers requested */
- int request_size; /**< Desired size for buffers */
- int __user *request_indices; /**< Buffer information */
- int __user *request_sizes;
- int granted_count; /**< Number of buffers granted */
-};
-
-enum drm_ctx_flags {
- _DRM_CONTEXT_PRESERVED = 0x01,
- _DRM_CONTEXT_2DONLY = 0x02
-};
-
-/**
- * DRM_IOCTL_ADD_CTX ioctl argument type.
- *
- * \sa drmCreateContext() and drmDestroyContext().
- */
-struct drm_ctx {
- drm_context_t handle;
- enum drm_ctx_flags flags;
-};
-
-/**
- * DRM_IOCTL_RES_CTX ioctl argument type.
- */
-struct drm_ctx_res {
- int count;
- struct drm_ctx __user *contexts;
-};
-
-/**
- * DRM_IOCTL_ADD_DRAW and DRM_IOCTL_RM_DRAW ioctl argument type.
- */
-struct drm_draw {
- drm_drawable_t handle;
-};
-
-/**
- * DRM_IOCTL_UPDATE_DRAW ioctl argument type.
- */
-typedef enum {
- DRM_DRAWABLE_CLIPRECTS,
-} drm_drawable_info_type_t;
-
-struct drm_update_draw {
- drm_drawable_t handle;
- unsigned int type;
- unsigned int num;
- unsigned long long data;
-};
-
-/**
- * DRM_IOCTL_GET_MAGIC and DRM_IOCTL_AUTH_MAGIC ioctl argument type.
- */
-struct drm_auth {
- drm_magic_t magic;
-};
-
-/**
- * DRM_IOCTL_IRQ_BUSID ioctl argument type.
- *
- * \sa drmGetInterruptFromBusID().
- */
-struct drm_irq_busid {
- int irq; /**< IRQ number */
- int busnum; /**< bus number */
- int devnum; /**< device number */
- int funcnum; /**< function number */
-};
-
-enum drm_vblank_seq_type {
- _DRM_VBLANK_ABSOLUTE = 0x0, /**< Wait for specific vblank sequence number */
- _DRM_VBLANK_RELATIVE = 0x1, /**< Wait for given number of vblanks */
- /* bits 1-6 are reserved for high crtcs */
- _DRM_VBLANK_HIGH_CRTC_MASK = 0x0000003e,
- _DRM_VBLANK_EVENT = 0x4000000, /**< Send event instead of blocking */
- _DRM_VBLANK_FLIP = 0x8000000, /**< Scheduled buffer swap should flip */
- _DRM_VBLANK_NEXTONMISS = 0x10000000, /**< If missed, wait for next vblank */
- _DRM_VBLANK_SECONDARY = 0x20000000, /**< Secondary display controller */
- _DRM_VBLANK_SIGNAL = 0x40000000 /**< Send signal instead of blocking, unsupported */
-};
-#define _DRM_VBLANK_HIGH_CRTC_SHIFT 1
-
-#define _DRM_VBLANK_TYPES_MASK (_DRM_VBLANK_ABSOLUTE | _DRM_VBLANK_RELATIVE)
-#define _DRM_VBLANK_FLAGS_MASK (_DRM_VBLANK_EVENT | _DRM_VBLANK_SIGNAL | \
- _DRM_VBLANK_SECONDARY | _DRM_VBLANK_NEXTONMISS)
-
-struct drm_wait_vblank_request {
- enum drm_vblank_seq_type type;
- unsigned int sequence;
- unsigned long signal;
-};
-
-struct drm_wait_vblank_reply {
- enum drm_vblank_seq_type type;
- unsigned int sequence;
- long tval_sec;
- long tval_usec;
-};
-
-/**
- * DRM_IOCTL_WAIT_VBLANK ioctl argument type.
- *
- * \sa drmWaitVBlank().
- */
-union drm_wait_vblank {
- struct drm_wait_vblank_request request;
- struct drm_wait_vblank_reply reply;
-};
-
-#define _DRM_PRE_MODESET 1
-#define _DRM_POST_MODESET 2
-
-/**
- * DRM_IOCTL_MODESET_CTL ioctl argument type
- *
- * \sa drmModesetCtl().
- */
-struct drm_modeset_ctl {
- __u32 crtc;
- __u32 cmd;
-};
-
-/**
- * DRM_IOCTL_AGP_ENABLE ioctl argument type.
- *
- * \sa drmAgpEnable().
- */
-struct drm_agp_mode {
- unsigned long mode; /**< AGP mode */
-};
-
-/**
- * DRM_IOCTL_AGP_ALLOC and DRM_IOCTL_AGP_FREE ioctls argument type.
- *
- * \sa drmAgpAlloc() and drmAgpFree().
- */
-struct drm_agp_buffer {
- unsigned long size; /**< In bytes -- will round to page boundary */
- unsigned long handle; /**< Used for binding / unbinding */
- unsigned long type; /**< Type of memory to allocate */
- unsigned long physical; /**< Physical used by i810 */
-};
-
-/**
- * DRM_IOCTL_AGP_BIND and DRM_IOCTL_AGP_UNBIND ioctls argument type.
- *
- * \sa drmAgpBind() and drmAgpUnbind().
- */
-struct drm_agp_binding {
- unsigned long handle; /**< From drm_agp_buffer */
- unsigned long offset; /**< In bytes -- will round to page boundary */
-};
-
-/**
- * DRM_IOCTL_AGP_INFO ioctl argument type.
- *
- * \sa drmAgpVersionMajor(), drmAgpVersionMinor(), drmAgpGetMode(),
- * drmAgpBase(), drmAgpSize(), drmAgpMemoryUsed(), drmAgpMemoryAvail(),
- * drmAgpVendorId() and drmAgpDeviceId().
- */
-struct drm_agp_info {
- int agp_version_major;
- int agp_version_minor;
- unsigned long mode;
- unsigned long aperture_base; /* physical address */
- unsigned long aperture_size; /* bytes */
- unsigned long memory_allowed; /* bytes */
- unsigned long memory_used;
-
- /* PCI information */
- unsigned short id_vendor;
- unsigned short id_device;
-};
-
-/**
- * DRM_IOCTL_SG_ALLOC ioctl argument type.
- */
-struct drm_scatter_gather {
- unsigned long size; /**< In bytes -- will round to page boundary */
- unsigned long handle; /**< Used for mapping / unmapping */
-};
-
-/**
- * DRM_IOCTL_SET_VERSION ioctl argument type.
- */
-struct drm_set_version {
- int drm_di_major;
- int drm_di_minor;
- int drm_dd_major;
- int drm_dd_minor;
-};
-
-/** DRM_IOCTL_GEM_CLOSE ioctl argument type */
-struct drm_gem_close {
- /** Handle of the object to be closed. */
- __u32 handle;
- __u32 pad;
-};
-
-/** DRM_IOCTL_GEM_FLINK ioctl argument type */
-struct drm_gem_flink {
- /** Handle for the object being named */
- __u32 handle;
-
- /** Returned global name */
- __u32 name;
-};
-
-/** DRM_IOCTL_GEM_OPEN ioctl argument type */
-struct drm_gem_open {
- /** Name of object being opened */
- __u32 name;
-
- /** Returned handle for the object */
- __u32 handle;
-
- /** Returned size of the object */
- __u64 size;
-};
-
-/** DRM_IOCTL_GET_CAP ioctl argument type */
-struct drm_get_cap {
- __u64 capability;
- __u64 value;
-};
-
-#define DRM_CLOEXEC O_CLOEXEC
-struct drm_prime_handle {
- __u32 handle;
-
- /** Flags.. only applicable for handle->fd */
- __u32 flags;
-
- /** Returned dmabuf file descriptor */
- __s32 fd;
-};
-
-#include "drm_mode.h"
-
-#define DRM_IOCTL_BASE 'd'
-#define DRM_IO(nr) _IO(DRM_IOCTL_BASE,nr)
-#define DRM_IOR(nr,type) _IOR(DRM_IOCTL_BASE,nr,type)
-#define DRM_IOW(nr,type) _IOW(DRM_IOCTL_BASE,nr,type)
-#define DRM_IOWR(nr,type) _IOWR(DRM_IOCTL_BASE,nr,type)
-
-#define DRM_IOCTL_VERSION DRM_IOWR(0x00, struct drm_version)
-#define DRM_IOCTL_GET_UNIQUE DRM_IOWR(0x01, struct drm_unique)
-#define DRM_IOCTL_GET_MAGIC DRM_IOR( 0x02, struct drm_auth)
-#define DRM_IOCTL_IRQ_BUSID DRM_IOWR(0x03, struct drm_irq_busid)
-#define DRM_IOCTL_GET_MAP DRM_IOWR(0x04, struct drm_map)
-#define DRM_IOCTL_GET_CLIENT DRM_IOWR(0x05, struct drm_client)
-#define DRM_IOCTL_GET_STATS DRM_IOR( 0x06, struct drm_stats)
-#define DRM_IOCTL_SET_VERSION DRM_IOWR(0x07, struct drm_set_version)
-#define DRM_IOCTL_MODESET_CTL DRM_IOW(0x08, struct drm_modeset_ctl)
-#define DRM_IOCTL_GEM_CLOSE DRM_IOW (0x09, struct drm_gem_close)
-#define DRM_IOCTL_GEM_FLINK DRM_IOWR(0x0a, struct drm_gem_flink)
-#define DRM_IOCTL_GEM_OPEN DRM_IOWR(0x0b, struct drm_gem_open)
-#define DRM_IOCTL_GET_CAP DRM_IOWR(0x0c, struct drm_get_cap)
-
-#define DRM_IOCTL_SET_UNIQUE DRM_IOW( 0x10, struct drm_unique)
-#define DRM_IOCTL_AUTH_MAGIC DRM_IOW( 0x11, struct drm_auth)
-#define DRM_IOCTL_BLOCK DRM_IOWR(0x12, struct drm_block)
-#define DRM_IOCTL_UNBLOCK DRM_IOWR(0x13, struct drm_block)
-#define DRM_IOCTL_CONTROL DRM_IOW( 0x14, struct drm_control)
-#define DRM_IOCTL_ADD_MAP DRM_IOWR(0x15, struct drm_map)
-#define DRM_IOCTL_ADD_BUFS DRM_IOWR(0x16, struct drm_buf_desc)
-#define DRM_IOCTL_MARK_BUFS DRM_IOW( 0x17, struct drm_buf_desc)
-#define DRM_IOCTL_INFO_BUFS DRM_IOWR(0x18, struct drm_buf_info)
-#define DRM_IOCTL_MAP_BUFS DRM_IOWR(0x19, struct drm_buf_map)
-#define DRM_IOCTL_FREE_BUFS DRM_IOW( 0x1a, struct drm_buf_free)
-
-#define DRM_IOCTL_RM_MAP DRM_IOW( 0x1b, struct drm_map)
-
-#define DRM_IOCTL_SET_SAREA_CTX DRM_IOW( 0x1c, struct drm_ctx_priv_map)
-#define DRM_IOCTL_GET_SAREA_CTX DRM_IOWR(0x1d, struct drm_ctx_priv_map)
-
-#define DRM_IOCTL_SET_MASTER DRM_IO(0x1e)
-#define DRM_IOCTL_DROP_MASTER DRM_IO(0x1f)
-
-#define DRM_IOCTL_ADD_CTX DRM_IOWR(0x20, struct drm_ctx)
-#define DRM_IOCTL_RM_CTX DRM_IOWR(0x21, struct drm_ctx)
-#define DRM_IOCTL_MOD_CTX DRM_IOW( 0x22, struct drm_ctx)
-#define DRM_IOCTL_GET_CTX DRM_IOWR(0x23, struct drm_ctx)
-#define DRM_IOCTL_SWITCH_CTX DRM_IOW( 0x24, struct drm_ctx)
-#define DRM_IOCTL_NEW_CTX DRM_IOW( 0x25, struct drm_ctx)
-#define DRM_IOCTL_RES_CTX DRM_IOWR(0x26, struct drm_ctx_res)
-#define DRM_IOCTL_ADD_DRAW DRM_IOWR(0x27, struct drm_draw)
-#define DRM_IOCTL_RM_DRAW DRM_IOWR(0x28, struct drm_draw)
-#define DRM_IOCTL_DMA DRM_IOWR(0x29, struct drm_dma)
-#define DRM_IOCTL_LOCK DRM_IOW( 0x2a, struct drm_lock)
-#define DRM_IOCTL_UNLOCK DRM_IOW( 0x2b, struct drm_lock)
-#define DRM_IOCTL_FINISH DRM_IOW( 0x2c, struct drm_lock)
-
-#define DRM_IOCTL_PRIME_HANDLE_TO_FD DRM_IOWR(0x2d, struct drm_prime_handle)
-#define DRM_IOCTL_PRIME_FD_TO_HANDLE DRM_IOWR(0x2e, struct drm_prime_handle)
-
-#define DRM_IOCTL_AGP_ACQUIRE DRM_IO( 0x30)
-#define DRM_IOCTL_AGP_RELEASE DRM_IO( 0x31)
-#define DRM_IOCTL_AGP_ENABLE DRM_IOW( 0x32, struct drm_agp_mode)
-#define DRM_IOCTL_AGP_INFO DRM_IOR( 0x33, struct drm_agp_info)
-#define DRM_IOCTL_AGP_ALLOC DRM_IOWR(0x34, struct drm_agp_buffer)
-#define DRM_IOCTL_AGP_FREE DRM_IOW( 0x35, struct drm_agp_buffer)
-#define DRM_IOCTL_AGP_BIND DRM_IOW( 0x36, struct drm_agp_binding)
-#define DRM_IOCTL_AGP_UNBIND DRM_IOW( 0x37, struct drm_agp_binding)
-
-#define DRM_IOCTL_SG_ALLOC DRM_IOWR(0x38, struct drm_scatter_gather)
-#define DRM_IOCTL_SG_FREE DRM_IOW( 0x39, struct drm_scatter_gather)
-
-#define DRM_IOCTL_WAIT_VBLANK DRM_IOWR(0x3a, union drm_wait_vblank)
-
-#define DRM_IOCTL_UPDATE_DRAW DRM_IOW(0x3f, struct drm_update_draw)
-
-#define DRM_IOCTL_MODE_GETRESOURCES DRM_IOWR(0xA0, struct drm_mode_card_res)
-#define DRM_IOCTL_MODE_GETCRTC DRM_IOWR(0xA1, struct drm_mode_crtc)
-#define DRM_IOCTL_MODE_SETCRTC DRM_IOWR(0xA2, struct drm_mode_crtc)
-#define DRM_IOCTL_MODE_CURSOR DRM_IOWR(0xA3, struct drm_mode_cursor)
-#define DRM_IOCTL_MODE_GETGAMMA DRM_IOWR(0xA4, struct drm_mode_crtc_lut)
-#define DRM_IOCTL_MODE_SETGAMMA DRM_IOWR(0xA5, struct drm_mode_crtc_lut)
-#define DRM_IOCTL_MODE_GETENCODER DRM_IOWR(0xA6, struct drm_mode_get_encoder)
-#define DRM_IOCTL_MODE_GETCONNECTOR DRM_IOWR(0xA7, struct drm_mode_get_connector)
-#define DRM_IOCTL_MODE_ATTACHMODE DRM_IOWR(0xA8, struct drm_mode_mode_cmd)
-#define DRM_IOCTL_MODE_DETACHMODE DRM_IOWR(0xA9, struct drm_mode_mode_cmd)
-
-#define DRM_IOCTL_MODE_GETPROPERTY DRM_IOWR(0xAA, struct drm_mode_get_property)
-#define DRM_IOCTL_MODE_SETPROPERTY DRM_IOWR(0xAB, struct drm_mode_connector_set_property)
-#define DRM_IOCTL_MODE_GETPROPBLOB DRM_IOWR(0xAC, struct drm_mode_get_blob)
-#define DRM_IOCTL_MODE_GETFB DRM_IOWR(0xAD, struct drm_mode_fb_cmd)
-#define DRM_IOCTL_MODE_ADDFB DRM_IOWR(0xAE, struct drm_mode_fb_cmd)
-#define DRM_IOCTL_MODE_RMFB DRM_IOWR(0xAF, unsigned int)
-#define DRM_IOCTL_MODE_PAGE_FLIP DRM_IOWR(0xB0, struct drm_mode_crtc_page_flip)
-#define DRM_IOCTL_MODE_DIRTYFB DRM_IOWR(0xB1, struct drm_mode_fb_dirty_cmd)
-
-#define DRM_IOCTL_MODE_CREATE_DUMB DRM_IOWR(0xB2, struct drm_mode_create_dumb)
-#define DRM_IOCTL_MODE_MAP_DUMB DRM_IOWR(0xB3, struct drm_mode_map_dumb)
-#define DRM_IOCTL_MODE_DESTROY_DUMB DRM_IOWR(0xB4, struct drm_mode_destroy_dumb)
-#define DRM_IOCTL_MODE_GETPLANERESOURCES DRM_IOWR(0xB5, struct drm_mode_get_plane_res)
-#define DRM_IOCTL_MODE_GETPLANE DRM_IOWR(0xB6, struct drm_mode_get_plane)
-#define DRM_IOCTL_MODE_SETPLANE DRM_IOWR(0xB7, struct drm_mode_set_plane)
-#define DRM_IOCTL_MODE_ADDFB2 DRM_IOWR(0xB8, struct drm_mode_fb_cmd2)
-
-/**
- * Device specific ioctls should only be in their respective headers
- * The device specific ioctl range is from 0x40 to 0x99.
- * Generic IOCTLS restart at 0xA0.
- *
- * \sa drmCommandNone(), drmCommandRead(), drmCommandWrite(), and
- * drmCommandReadWrite().
- */
-#define DRM_COMMAND_BASE 0x40
-#define DRM_COMMAND_END 0xA0
-
-/**
- * Header for events written back to userspace on the drm fd. The
- * type defines the type of event, the length specifies the total
- * length of the event (including the header), and user_data is
- * typically a 64 bit value passed with the ioctl that triggered the
- * event. A read on the drm fd will always only return complete
- * events, that is, if for example the read buffer is 100 bytes, and
- * there are two 64 byte events pending, only one will be returned.
- *
- * Event types 0 - 0x7fffffff are generic drm events, 0x80000000 and
- * up are chipset specific.
- */
-struct drm_event {
- __u32 type;
- __u32 length;
-};
-
-#define DRM_EVENT_VBLANK 0x01
-#define DRM_EVENT_FLIP_COMPLETE 0x02
-
-struct drm_event_vblank {
- struct drm_event base;
- __u64 user_data;
- __u32 tv_sec;
- __u32 tv_usec;
- __u32 sequence;
- __u32 reserved;
-};
-
-#define DRM_CAP_DUMB_BUFFER 0x1
-#define DRM_CAP_VBLANK_HIGH_CRTC 0x2
-#define DRM_CAP_DUMB_PREFERRED_DEPTH 0x3
-#define DRM_CAP_DUMB_PREFER_SHADOW 0x4
-
-/* typedef area */
-#ifndef __KERNEL__
-typedef struct drm_clip_rect drm_clip_rect_t;
-typedef struct drm_drawable_info drm_drawable_info_t;
-typedef struct drm_tex_region drm_tex_region_t;
-typedef struct drm_hw_lock drm_hw_lock_t;
-typedef struct drm_version drm_version_t;
-typedef struct drm_unique drm_unique_t;
-typedef struct drm_list drm_list_t;
-typedef struct drm_block drm_block_t;
-typedef struct drm_control drm_control_t;
-typedef enum drm_map_type drm_map_type_t;
-typedef enum drm_map_flags drm_map_flags_t;
-typedef struct drm_ctx_priv_map drm_ctx_priv_map_t;
-typedef struct drm_map drm_map_t;
-typedef struct drm_client drm_client_t;
-typedef enum drm_stat_type drm_stat_type_t;
-typedef struct drm_stats drm_stats_t;
-typedef enum drm_lock_flags drm_lock_flags_t;
-typedef struct drm_lock drm_lock_t;
-typedef enum drm_dma_flags drm_dma_flags_t;
-typedef struct drm_buf_desc drm_buf_desc_t;
-typedef struct drm_buf_info drm_buf_info_t;
-typedef struct drm_buf_free drm_buf_free_t;
-typedef struct drm_buf_pub drm_buf_pub_t;
-typedef struct drm_buf_map drm_buf_map_t;
-typedef struct drm_dma drm_dma_t;
-typedef union drm_wait_vblank drm_wait_vblank_t;
-typedef struct drm_agp_mode drm_agp_mode_t;
-typedef enum drm_ctx_flags drm_ctx_flags_t;
-typedef struct drm_ctx drm_ctx_t;
-typedef struct drm_ctx_res drm_ctx_res_t;
-typedef struct drm_draw drm_draw_t;
-typedef struct drm_update_draw drm_update_draw_t;
-typedef struct drm_auth drm_auth_t;
-typedef struct drm_irq_busid drm_irq_busid_t;
-typedef enum drm_vblank_seq_type drm_vblank_seq_type_t;
-
-typedef struct drm_agp_buffer drm_agp_buffer_t;
-typedef struct drm_agp_binding drm_agp_binding_t;
-typedef struct drm_agp_info drm_agp_info_t;
-typedef struct drm_scatter_gather drm_scatter_gather_t;
-typedef struct drm_set_version drm_set_version_t;
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/drm/drmP.h b/ANDROID_3.4.5/include/drm/drmP.h
deleted file mode 100644
index dd731043..00000000
--- a/ANDROID_3.4.5/include/drm/drmP.h
+++ /dev/null
@@ -1,1778 +0,0 @@
-/**
- * \file drmP.h
- * Private header for Direct Rendering Manager
- *
- * \author Rickard E. (Rik) Faith <faith@valinux.com>
- * \author Gareth Hughes <gareth@valinux.com>
- */
-
-/*
- * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
- * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
- * Copyright (c) 2009-2010, Code Aurora Forum.
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef _DRM_P_H_
-#define _DRM_P_H_
-
-#ifdef __KERNEL__
-#ifdef __alpha__
-/* add include of current.h so that "current" is defined
- * before static inline funcs in wait.h. Doing this so we
- * can build the DRM (part of PI DRI). 4/21/2000 S + B */
-#include <asm/current.h>
-#endif /* __alpha__ */
-#include <linux/kernel.h>
-#include <linux/miscdevice.h>
-#include <linux/fs.h>
-#include <linux/proc_fs.h>
-#include <linux/init.h>
-#include <linux/file.h>
-#include <linux/platform_device.h>
-#include <linux/pci.h>
-#include <linux/jiffies.h>
-#include <linux/dma-mapping.h>
-#include <linux/mm.h>
-#include <linux/cdev.h>
-#include <linux/mutex.h>
-#include <linux/slab.h>
-#if defined(__alpha__) || defined(__powerpc__)
-#include <asm/pgtable.h> /* For pte_wrprotect */
-#endif
-#include <asm/io.h>
-#include <asm/mman.h>
-#include <asm/uaccess.h>
-#ifdef CONFIG_MTRR
-#include <asm/mtrr.h>
-#endif
-#if defined(CONFIG_AGP) || defined(CONFIG_AGP_MODULE)
-#include <linux/types.h>
-#include <linux/agp_backend.h>
-#endif
-#include <linux/workqueue.h>
-#include <linux/poll.h>
-#include <asm/pgalloc.h>
-#include "drm.h"
-
-#include <linux/idr.h>
-
-#define __OS_HAS_AGP (defined(CONFIG_AGP) || (defined(CONFIG_AGP_MODULE) && defined(MODULE)))
-#define __OS_HAS_MTRR (defined(CONFIG_MTRR))
-
-struct module;
-
-struct drm_file;
-struct drm_device;
-
-#include "drm_os_linux.h"
-#include "drm_hashtab.h"
-#include "drm_mm.h"
-
-#define DRM_UT_CORE 0x01
-#define DRM_UT_DRIVER 0x02
-#define DRM_UT_KMS 0x04
-#define DRM_UT_PRIME 0x08
-/*
- * Three debug levels are defined.
- * drm_core, drm_driver, drm_kms
- * drm_core level can be used in the generic drm code. For example:
- * drm_ioctl, drm_mm, drm_memory
- * The macro definition of DRM_DEBUG is used.
- * DRM_DEBUG(fmt, args...)
- * The debug info by using the DRM_DEBUG can be obtained by adding
- * the boot option of "drm.debug=1".
- *
- * drm_driver level can be used in the specific drm driver. It is used
- * to add the debug info related with the drm driver. For example:
- * i915_drv, i915_dma, i915_gem, radeon_drv,
- * The macro definition of DRM_DEBUG_DRIVER can be used.
- * DRM_DEBUG_DRIVER(fmt, args...)
- * The debug info by using the DRM_DEBUG_DRIVER can be obtained by
- * adding the boot option of "drm.debug=0x02"
- *
- * drm_kms level can be used in the KMS code related with specific drm driver.
- * It is used to add the debug info related with KMS mode. For example:
- * the connector/crtc ,
- * The macro definition of DRM_DEBUG_KMS can be used.
- * DRM_DEBUG_KMS(fmt, args...)
- * The debug info by using the DRM_DEBUG_KMS can be obtained by
- * adding the boot option of "drm.debug=0x04"
- *
- * If we add the boot option of "drm.debug=0x06", we can get the debug info by
- * using the DRM_DEBUG_KMS and DRM_DEBUG_DRIVER.
- * If we add the boot option of "drm.debug=0x05", we can get the debug info by
- * using the DRM_DEBUG_KMS and DRM_DEBUG.
- */
-
-extern __printf(4, 5)
-void drm_ut_debug_printk(unsigned int request_level,
- const char *prefix,
- const char *function_name,
- const char *format, ...);
-extern __printf(2, 3)
-int drm_err(const char *func, const char *format, ...);
-
-/***********************************************************************/
-/** \name DRM template customization defaults */
-/*@{*/
-
-/* driver capabilities and requirements mask */
-#define DRIVER_USE_AGP 0x1
-#define DRIVER_REQUIRE_AGP 0x2
-#define DRIVER_USE_MTRR 0x4
-#define DRIVER_PCI_DMA 0x8
-#define DRIVER_SG 0x10
-#define DRIVER_HAVE_DMA 0x20
-#define DRIVER_HAVE_IRQ 0x40
-#define DRIVER_IRQ_SHARED 0x80
-#define DRIVER_IRQ_VBL 0x100
-#define DRIVER_DMA_QUEUE 0x200
-#define DRIVER_FB_DMA 0x400
-#define DRIVER_IRQ_VBL2 0x800
-#define DRIVER_GEM 0x1000
-#define DRIVER_MODESET 0x2000
-#define DRIVER_PRIME 0x4000
-
-#define DRIVER_BUS_PCI 0x1
-#define DRIVER_BUS_PLATFORM 0x2
-#define DRIVER_BUS_USB 0x3
-
-/***********************************************************************/
-/** \name Begin the DRM... */
-/*@{*/
-
-#define DRM_DEBUG_CODE 2 /**< Include debugging code if > 1, then
- also include looping detection. */
-
-#define DRM_MAGIC_HASH_ORDER 4 /**< Size of key hash table. Must be power of 2. */
-#define DRM_KERNEL_CONTEXT 0 /**< Change drm_resctx if changed */
-#define DRM_RESERVED_CONTEXTS 1 /**< Change drm_resctx if changed */
-#define DRM_LOOPING_LIMIT 5000000
-#define DRM_TIME_SLICE (HZ/20) /**< Time slice for GLXContexts */
-#define DRM_LOCK_SLICE 1 /**< Time slice for lock, in jiffies */
-
-#define DRM_FLAG_DEBUG 0x01
-
-#define DRM_MAX_CTXBITMAP (PAGE_SIZE * 8)
-#define DRM_MAP_HASH_OFFSET 0x10000000
-
-/*@}*/
-
-/***********************************************************************/
-/** \name Macros to make printk easier */
-/*@{*/
-
-/**
- * Error output.
- *
- * \param fmt printf() like format string.
- * \param arg arguments
- */
-#define DRM_ERROR(fmt, ...) \
- drm_err(__func__, fmt, ##__VA_ARGS__)
-
-#define DRM_INFO(fmt, ...) \
- printk(KERN_INFO "[" DRM_NAME "] " fmt, ##__VA_ARGS__)
-
-/**
- * Debug output.
- *
- * \param fmt printf() like format string.
- * \param arg arguments
- */
-#if DRM_DEBUG_CODE
-#define DRM_DEBUG(fmt, args...) \
- do { \
- drm_ut_debug_printk(DRM_UT_CORE, DRM_NAME, \
- __func__, fmt, ##args); \
- } while (0)
-
-#define DRM_DEBUG_DRIVER(fmt, args...) \
- do { \
- drm_ut_debug_printk(DRM_UT_DRIVER, DRM_NAME, \
- __func__, fmt, ##args); \
- } while (0)
-#define DRM_DEBUG_KMS(fmt, args...) \
- do { \
- drm_ut_debug_printk(DRM_UT_KMS, DRM_NAME, \
- __func__, fmt, ##args); \
- } while (0)
-#define DRM_DEBUG_PRIME(fmt, args...) \
- do { \
- drm_ut_debug_printk(DRM_UT_PRIME, DRM_NAME, \
- __func__, fmt, ##args); \
- } while (0)
-#define DRM_LOG(fmt, args...) \
- do { \
- drm_ut_debug_printk(DRM_UT_CORE, NULL, \
- NULL, fmt, ##args); \
- } while (0)
-#define DRM_LOG_KMS(fmt, args...) \
- do { \
- drm_ut_debug_printk(DRM_UT_KMS, NULL, \
- NULL, fmt, ##args); \
- } while (0)
-#define DRM_LOG_MODE(fmt, args...) \
- do { \
- drm_ut_debug_printk(DRM_UT_MODE, NULL, \
- NULL, fmt, ##args); \
- } while (0)
-#define DRM_LOG_DRIVER(fmt, args...) \
- do { \
- drm_ut_debug_printk(DRM_UT_DRIVER, NULL, \
- NULL, fmt, ##args); \
- } while (0)
-#else
-#define DRM_DEBUG_DRIVER(fmt, args...) do { } while (0)
-#define DRM_DEBUG_KMS(fmt, args...) do { } while (0)
-#define DRM_DEBUG_PRIME(fmt, args...) do { } while (0)
-#define DRM_DEBUG(fmt, arg...) do { } while (0)
-#define DRM_LOG(fmt, arg...) do { } while (0)
-#define DRM_LOG_KMS(fmt, args...) do { } while (0)
-#define DRM_LOG_MODE(fmt, arg...) do { } while (0)
-#define DRM_LOG_DRIVER(fmt, arg...) do { } while (0)
-
-#endif
-
-/*@}*/
-
-/***********************************************************************/
-/** \name Internal types and structures */
-/*@{*/
-
-#define DRM_ARRAY_SIZE(x) ARRAY_SIZE(x)
-
-#define DRM_LEFTCOUNT(x) (((x)->rp + (x)->count - (x)->wp) % ((x)->count + 1))
-#define DRM_BUFCOUNT(x) ((x)->count - DRM_LEFTCOUNT(x))
-
-#define DRM_IF_VERSION(maj, min) (maj << 16 | min)
-
-/**
- * Test that the hardware lock is held by the caller, returning otherwise.
- *
- * \param dev DRM device.
- * \param filp file pointer of the caller.
- */
-#define LOCK_TEST_WITH_RETURN( dev, _file_priv ) \
-do { \
- if (!_DRM_LOCK_IS_HELD(_file_priv->master->lock.hw_lock->lock) || \
- _file_priv->master->lock.file_priv != _file_priv) { \
- DRM_ERROR( "%s called without lock held, held %d owner %p %p\n",\
- __func__, _DRM_LOCK_IS_HELD(_file_priv->master->lock.hw_lock->lock),\
- _file_priv->master->lock.file_priv, _file_priv); \
- return -EINVAL; \
- } \
-} while (0)
-
-/**
- * Ioctl function type.
- *
- * \param inode device inode.
- * \param file_priv DRM file private pointer.
- * \param cmd command.
- * \param arg argument.
- */
-typedef int drm_ioctl_t(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-
-typedef int drm_ioctl_compat_t(struct file *filp, unsigned int cmd,
- unsigned long arg);
-
-#define DRM_IOCTL_NR(n) _IOC_NR(n)
-#define DRM_MAJOR 226
-
-#define DRM_AUTH 0x1
-#define DRM_MASTER 0x2
-#define DRM_ROOT_ONLY 0x4
-#define DRM_CONTROL_ALLOW 0x8
-#define DRM_UNLOCKED 0x10
-
-struct drm_ioctl_desc {
- unsigned int cmd;
- int flags;
- drm_ioctl_t *func;
- unsigned int cmd_drv;
-};
-
-/**
- * Creates a driver or general drm_ioctl_desc array entry for the given
- * ioctl, for use by drm_ioctl().
- */
-
-#define DRM_IOCTL_DEF_DRV(ioctl, _func, _flags) \
- [DRM_IOCTL_NR(DRM_##ioctl)] = {.cmd = DRM_##ioctl, .func = _func, .flags = _flags, .cmd_drv = DRM_IOCTL_##ioctl}
-
-struct drm_magic_entry {
- struct list_head head;
- struct drm_hash_item hash_item;
- struct drm_file *priv;
-};
-
-struct drm_vma_entry {
- struct list_head head;
- struct vm_area_struct *vma;
- pid_t pid;
-};
-
-/**
- * DMA buffer.
- */
-struct drm_buf {
- int idx; /**< Index into master buflist */
- int total; /**< Buffer size */
- int order; /**< log-base-2(total) */
- int used; /**< Amount of buffer in use (for DMA) */
- unsigned long offset; /**< Byte offset (used internally) */
- void *address; /**< Address of buffer */
- unsigned long bus_address; /**< Bus address of buffer */
- struct drm_buf *next; /**< Kernel-only: used for free list */
- __volatile__ int waiting; /**< On kernel DMA queue */
- __volatile__ int pending; /**< On hardware DMA queue */
- wait_queue_head_t dma_wait; /**< Processes waiting */
- struct drm_file *file_priv; /**< Private of holding file descr */
- int context; /**< Kernel queue for this buffer */
- int while_locked; /**< Dispatch this buffer while locked */
- enum {
- DRM_LIST_NONE = 0,
- DRM_LIST_FREE = 1,
- DRM_LIST_WAIT = 2,
- DRM_LIST_PEND = 3,
- DRM_LIST_PRIO = 4,
- DRM_LIST_RECLAIM = 5
- } list; /**< Which list we're on */
-
- int dev_priv_size; /**< Size of buffer private storage */
- void *dev_private; /**< Per-buffer private storage */
-};
-
-/** bufs is one longer than it has to be */
-struct drm_waitlist {
- int count; /**< Number of possible buffers */
- struct drm_buf **bufs; /**< List of pointers to buffers */
- struct drm_buf **rp; /**< Read pointer */
- struct drm_buf **wp; /**< Write pointer */
- struct drm_buf **end; /**< End pointer */
- spinlock_t read_lock;
- spinlock_t write_lock;
-};
-
-struct drm_freelist {
- int initialized; /**< Freelist in use */
- atomic_t count; /**< Number of free buffers */
- struct drm_buf *next; /**< End pointer */
-
- wait_queue_head_t waiting; /**< Processes waiting on free bufs */
- int low_mark; /**< Low water mark */
- int high_mark; /**< High water mark */
- atomic_t wfh; /**< If waiting for high mark */
- spinlock_t lock;
-};
-
-typedef struct drm_dma_handle {
- dma_addr_t busaddr;
- void *vaddr;
- size_t size;
-} drm_dma_handle_t;
-
-/**
- * Buffer entry. There is one of this for each buffer size order.
- */
-struct drm_buf_entry {
- int buf_size; /**< size */
- int buf_count; /**< number of buffers */
- struct drm_buf *buflist; /**< buffer list */
- int seg_count;
- int page_order;
- struct drm_dma_handle **seglist;
-
- struct drm_freelist freelist;
-};
-
-/* Event queued up for userspace to read */
-struct drm_pending_event {
- struct drm_event *event;
- struct list_head link;
- struct drm_file *file_priv;
- pid_t pid; /* pid of requester, no guarantee it's valid by the time
- we deliver the event, for tracing only */
- void (*destroy)(struct drm_pending_event *event);
-};
-
-/* initial implementaton using a linked list - todo hashtab */
-struct drm_prime_file_private {
- struct list_head head;
- struct mutex lock;
-};
-
-/** File private data */
-struct drm_file {
- int authenticated;
- pid_t pid;
- uid_t uid;
- drm_magic_t magic;
- unsigned long ioctl_count;
- struct list_head lhead;
- struct drm_minor *minor;
- unsigned long lock_count;
-
- /** Mapping of mm object handles to object pointers. */
- struct idr object_idr;
- /** Lock for synchronization of access to object_idr. */
- spinlock_t table_lock;
-
- struct file *filp;
- void *driver_priv;
-
- int is_master; /* this file private is a master for a minor */
- struct drm_master *master; /* master this node is currently associated with
- N.B. not always minor->master */
- struct list_head fbs;
-
- wait_queue_head_t event_wait;
- struct list_head event_list;
- int event_space;
-
- struct drm_prime_file_private prime;
-};
-
-/** Wait queue */
-struct drm_queue {
- atomic_t use_count; /**< Outstanding uses (+1) */
- atomic_t finalization; /**< Finalization in progress */
- atomic_t block_count; /**< Count of processes waiting */
- atomic_t block_read; /**< Queue blocked for reads */
- wait_queue_head_t read_queue; /**< Processes waiting on block_read */
- atomic_t block_write; /**< Queue blocked for writes */
- wait_queue_head_t write_queue; /**< Processes waiting on block_write */
- atomic_t total_queued; /**< Total queued statistic */
- atomic_t total_flushed; /**< Total flushes statistic */
- atomic_t total_locks; /**< Total locks statistics */
- enum drm_ctx_flags flags; /**< Context preserving and 2D-only */
- struct drm_waitlist waitlist; /**< Pending buffers */
- wait_queue_head_t flush_queue; /**< Processes waiting until flush */
-};
-
-/**
- * Lock data.
- */
-struct drm_lock_data {
- struct drm_hw_lock *hw_lock; /**< Hardware lock */
- /** Private of lock holder's file (NULL=kernel) */
- struct drm_file *file_priv;
- wait_queue_head_t lock_queue; /**< Queue of blocked processes */
- unsigned long lock_time; /**< Time of last lock in jiffies */
- spinlock_t spinlock;
- uint32_t kernel_waiters;
- uint32_t user_waiters;
- int idle_has_lock;
-};
-
-/**
- * DMA data.
- */
-struct drm_device_dma {
-
- struct drm_buf_entry bufs[DRM_MAX_ORDER + 1]; /**< buffers, grouped by their size order */
- int buf_count; /**< total number of buffers */
- struct drm_buf **buflist; /**< Vector of pointers into drm_device_dma::bufs */
- int seg_count;
- int page_count; /**< number of pages */
- unsigned long *pagelist; /**< page list */
- unsigned long byte_count;
- enum {
- _DRM_DMA_USE_AGP = 0x01,
- _DRM_DMA_USE_SG = 0x02,
- _DRM_DMA_USE_FB = 0x04,
- _DRM_DMA_USE_PCI_RO = 0x08
- } flags;
-
-};
-
-/**
- * AGP memory entry. Stored as a doubly linked list.
- */
-struct drm_agp_mem {
- unsigned long handle; /**< handle */
- DRM_AGP_MEM *memory;
- unsigned long bound; /**< address */
- int pages;
- struct list_head head;
-};
-
-/**
- * AGP data.
- *
- * \sa drm_agp_init() and drm_device::agp.
- */
-struct drm_agp_head {
- DRM_AGP_KERN agp_info; /**< AGP device information */
- struct list_head memory;
- unsigned long mode; /**< AGP mode */
- struct agp_bridge_data *bridge;
- int enabled; /**< whether the AGP bus as been enabled */
- int acquired; /**< whether the AGP device has been acquired */
- unsigned long base;
- int agp_mtrr;
- int cant_use_aperture;
- unsigned long page_mask;
-};
-
-/**
- * Scatter-gather memory.
- */
-struct drm_sg_mem {
- unsigned long handle;
- void *virtual;
- int pages;
- struct page **pagelist;
- dma_addr_t *busaddr;
-};
-
-struct drm_sigdata {
- int context;
- struct drm_hw_lock *lock;
-};
-
-
-/**
- * Kernel side of a mapping
- */
-struct drm_local_map {
- resource_size_t offset; /**< Requested physical address (0 for SAREA)*/
- unsigned long size; /**< Requested physical size (bytes) */
- enum drm_map_type type; /**< Type of memory to map */
- enum drm_map_flags flags; /**< Flags */
- void *handle; /**< User-space: "Handle" to pass to mmap() */
- /**< Kernel-space: kernel-virtual address */
- int mtrr; /**< MTRR slot used */
-};
-
-typedef struct drm_local_map drm_local_map_t;
-
-/**
- * Mappings list
- */
-struct drm_map_list {
- struct list_head head; /**< list head */
- struct drm_hash_item hash;
- struct drm_local_map *map; /**< mapping */
- uint64_t user_token;
- struct drm_master *master;
- struct drm_mm_node *file_offset_node; /**< fake offset */
-};
-
-/**
- * Context handle list
- */
-struct drm_ctx_list {
- struct list_head head; /**< list head */
- drm_context_t handle; /**< context handle */
- struct drm_file *tag; /**< associated fd private data */
-};
-
-/* location of GART table */
-#define DRM_ATI_GART_MAIN 1
-#define DRM_ATI_GART_FB 2
-
-#define DRM_ATI_GART_PCI 1
-#define DRM_ATI_GART_PCIE 2
-#define DRM_ATI_GART_IGP 3
-
-struct drm_ati_pcigart_info {
- int gart_table_location;
- int gart_reg_if;
- void *addr;
- dma_addr_t bus_addr;
- dma_addr_t table_mask;
- struct drm_dma_handle *table_handle;
- struct drm_local_map mapping;
- int table_size;
-};
-
-/**
- * GEM specific mm private for tracking GEM objects
- */
-struct drm_gem_mm {
- struct drm_mm offset_manager; /**< Offset mgmt for buffer objects */
- struct drm_open_hash offset_hash; /**< User token hash table for maps */
-};
-
-/**
- * This structure defines the drm_mm memory object, which will be used by the
- * DRM for its buffer objects.
- */
-struct drm_gem_object {
- /** Reference count of this object */
- struct kref refcount;
-
- /** Handle count of this object. Each handle also holds a reference */
- atomic_t handle_count; /* number of handles on this object */
-
- /** Related drm device */
- struct drm_device *dev;
-
- /** File representing the shmem storage */
- struct file *filp;
-
- /* Mapping info for this object */
- struct drm_map_list map_list;
-
- /**
- * Size of the object, in bytes. Immutable over the object's
- * lifetime.
- */
- size_t size;
-
- /**
- * Global name for this object, starts at 1. 0 means unnamed.
- * Access is covered by the object_name_lock in the related drm_device
- */
- int name;
-
- /**
- * Memory domains. These monitor which caches contain read/write data
- * related to the object. When transitioning from one set of domains
- * to another, the driver is called to ensure that caches are suitably
- * flushed and invalidated
- */
- uint32_t read_domains;
- uint32_t write_domain;
-
- /**
- * While validating an exec operation, the
- * new read/write domain values are computed here.
- * They will be transferred to the above values
- * at the point that any cache flushing occurs
- */
- uint32_t pending_read_domains;
- uint32_t pending_write_domain;
-
- void *driver_private;
-
- /* dma buf exported from this GEM object */
- struct dma_buf *export_dma_buf;
-
- /* dma buf attachment backing this object */
- struct dma_buf_attachment *import_attach;
-};
-
-#include "drm_crtc.h"
-
-/* per-master structure */
-struct drm_master {
-
- struct kref refcount; /* refcount for this master */
-
- struct list_head head; /**< each minor contains a list of masters */
- struct drm_minor *minor; /**< link back to minor we are a master for */
-
- char *unique; /**< Unique identifier: e.g., busid */
- int unique_len; /**< Length of unique field */
- int unique_size; /**< amount allocated */
-
- int blocked; /**< Blocked due to VC switch? */
-
- /** \name Authentication */
- /*@{ */
- struct drm_open_hash magiclist;
- struct list_head magicfree;
- /*@} */
-
- struct drm_lock_data lock; /**< Information on hardware lock */
-
- void *driver_priv; /**< Private structure for driver to use */
-};
-
-/* Size of ringbuffer for vblank timestamps. Just double-buffer
- * in initial implementation.
- */
-#define DRM_VBLANKTIME_RBSIZE 2
-
-/* Flags and return codes for get_vblank_timestamp() driver function. */
-#define DRM_CALLED_FROM_VBLIRQ 1
-#define DRM_VBLANKTIME_SCANOUTPOS_METHOD (1 << 0)
-#define DRM_VBLANKTIME_INVBL (1 << 1)
-
-/* get_scanout_position() return flags */
-#define DRM_SCANOUTPOS_VALID (1 << 0)
-#define DRM_SCANOUTPOS_INVBL (1 << 1)
-#define DRM_SCANOUTPOS_ACCURATE (1 << 2)
-
-struct drm_bus {
- int bus_type;
- int (*get_irq)(struct drm_device *dev);
- const char *(*get_name)(struct drm_device *dev);
- int (*set_busid)(struct drm_device *dev, struct drm_master *master);
- int (*set_unique)(struct drm_device *dev, struct drm_master *master,
- struct drm_unique *unique);
- int (*irq_by_busid)(struct drm_device *dev, struct drm_irq_busid *p);
- /* hooks that are for PCI */
- int (*agp_init)(struct drm_device *dev);
-
-};
-
-/**
- * DRM driver structure. This structure represent the common code for
- * a family of cards. There will one drm_device for each card present
- * in this family
- */
-struct drm_driver {
- int (*load) (struct drm_device *, unsigned long flags);
- int (*firstopen) (struct drm_device *);
- int (*open) (struct drm_device *, struct drm_file *);
- void (*preclose) (struct drm_device *, struct drm_file *file_priv);
- void (*postclose) (struct drm_device *, struct drm_file *);
- void (*lastclose) (struct drm_device *);
- int (*unload) (struct drm_device *);
- int (*suspend) (struct drm_device *, pm_message_t state);
- int (*resume) (struct drm_device *);
- int (*dma_ioctl) (struct drm_device *dev, void *data, struct drm_file *file_priv);
- int (*dma_quiescent) (struct drm_device *);
- int (*context_dtor) (struct drm_device *dev, int context);
-
- /**
- * get_vblank_counter - get raw hardware vblank counter
- * @dev: DRM device
- * @crtc: counter to fetch
- *
- * Driver callback for fetching a raw hardware vblank counter
- * for @crtc. If a device doesn't have a hardware counter, the
- * driver can simply return the value of drm_vblank_count and
- * make the enable_vblank() and disable_vblank() hooks into no-ops,
- * leaving interrupts enabled at all times.
- *
- * Wraparound handling and loss of events due to modesetting is dealt
- * with in the DRM core code.
- *
- * RETURNS
- * Raw vblank counter value.
- */
- u32 (*get_vblank_counter) (struct drm_device *dev, int crtc);
-
- /**
- * enable_vblank - enable vblank interrupt events
- * @dev: DRM device
- * @crtc: which irq to enable
- *
- * Enable vblank interrupts for @crtc. If the device doesn't have
- * a hardware vblank counter, this routine should be a no-op, since
- * interrupts will have to stay on to keep the count accurate.
- *
- * RETURNS
- * Zero on success, appropriate errno if the given @crtc's vblank
- * interrupt cannot be enabled.
- */
- int (*enable_vblank) (struct drm_device *dev, int crtc);
-
- /**
- * disable_vblank - disable vblank interrupt events
- * @dev: DRM device
- * @crtc: which irq to enable
- *
- * Disable vblank interrupts for @crtc. If the device doesn't have
- * a hardware vblank counter, this routine should be a no-op, since
- * interrupts will have to stay on to keep the count accurate.
- */
- void (*disable_vblank) (struct drm_device *dev, int crtc);
-
- /**
- * Called by \c drm_device_is_agp. Typically used to determine if a
- * card is really attached to AGP or not.
- *
- * \param dev DRM device handle
- *
- * \returns
- * One of three values is returned depending on whether or not the
- * card is absolutely \b not AGP (return of 0), absolutely \b is AGP
- * (return of 1), or may or may not be AGP (return of 2).
- */
- int (*device_is_agp) (struct drm_device *dev);
-
- /**
- * Called by vblank timestamping code.
- *
- * Return the current display scanout position from a crtc.
- *
- * \param dev DRM device.
- * \param crtc Id of the crtc to query.
- * \param *vpos Target location for current vertical scanout position.
- * \param *hpos Target location for current horizontal scanout position.
- *
- * Returns vpos as a positive number while in active scanout area.
- * Returns vpos as a negative number inside vblank, counting the number
- * of scanlines to go until end of vblank, e.g., -1 means "one scanline
- * until start of active scanout / end of vblank."
- *
- * \return Flags, or'ed together as follows:
- *
- * DRM_SCANOUTPOS_VALID = Query successful.
- * DRM_SCANOUTPOS_INVBL = Inside vblank.
- * DRM_SCANOUTPOS_ACCURATE = Returned position is accurate. A lack of
- * this flag means that returned position may be offset by a constant
- * but unknown small number of scanlines wrt. real scanout position.
- *
- */
- int (*get_scanout_position) (struct drm_device *dev, int crtc,
- int *vpos, int *hpos);
-
- /**
- * Called by \c drm_get_last_vbltimestamp. Should return a precise
- * timestamp when the most recent VBLANK interval ended or will end.
- *
- * Specifically, the timestamp in @vblank_time should correspond as
- * closely as possible to the time when the first video scanline of
- * the video frame after the end of VBLANK will start scanning out,
- * the time immediately after end of the VBLANK interval. If the
- * @crtc is currently inside VBLANK, this will be a time in the future.
- * If the @crtc is currently scanning out a frame, this will be the
- * past start time of the current scanout. This is meant to adhere
- * to the OpenML OML_sync_control extension specification.
- *
- * \param dev dev DRM device handle.
- * \param crtc crtc for which timestamp should be returned.
- * \param *max_error Maximum allowable timestamp error in nanoseconds.
- * Implementation should strive to provide timestamp
- * with an error of at most *max_error nanoseconds.
- * Returns true upper bound on error for timestamp.
- * \param *vblank_time Target location for returned vblank timestamp.
- * \param flags 0 = Defaults, no special treatment needed.
- * \param DRM_CALLED_FROM_VBLIRQ = Function is called from vblank
- * irq handler. Some drivers need to apply some workarounds
- * for gpu-specific vblank irq quirks if flag is set.
- *
- * \returns
- * Zero if timestamping isn't supported in current display mode or a
- * negative number on failure. A positive status code on success,
- * which describes how the vblank_time timestamp was computed.
- */
- int (*get_vblank_timestamp) (struct drm_device *dev, int crtc,
- int *max_error,
- struct timeval *vblank_time,
- unsigned flags);
-
- /* these have to be filled in */
-
- irqreturn_t(*irq_handler) (DRM_IRQ_ARGS);
- void (*irq_preinstall) (struct drm_device *dev);
- int (*irq_postinstall) (struct drm_device *dev);
- void (*irq_uninstall) (struct drm_device *dev);
- void (*reclaim_buffers) (struct drm_device *dev,
- struct drm_file * file_priv);
- void (*reclaim_buffers_locked) (struct drm_device *dev,
- struct drm_file *file_priv);
- void (*reclaim_buffers_idlelocked) (struct drm_device *dev,
- struct drm_file *file_priv);
- void (*set_version) (struct drm_device *dev,
- struct drm_set_version *sv);
-
- /* Master routines */
- int (*master_create)(struct drm_device *dev, struct drm_master *master);
- void (*master_destroy)(struct drm_device *dev, struct drm_master *master);
- /**
- * master_set is called whenever the minor master is set.
- * master_drop is called whenever the minor master is dropped.
- */
-
- int (*master_set)(struct drm_device *dev, struct drm_file *file_priv,
- bool from_open);
- void (*master_drop)(struct drm_device *dev, struct drm_file *file_priv,
- bool from_release);
-
- int (*debugfs_init)(struct drm_minor *minor);
- void (*debugfs_cleanup)(struct drm_minor *minor);
-
- /**
- * Driver-specific constructor for drm_gem_objects, to set up
- * obj->driver_private.
- *
- * Returns 0 on success.
- */
- int (*gem_init_object) (struct drm_gem_object *obj);
- void (*gem_free_object) (struct drm_gem_object *obj);
- int (*gem_open_object) (struct drm_gem_object *, struct drm_file *);
- void (*gem_close_object) (struct drm_gem_object *, struct drm_file *);
-
- /* prime: */
- /* export handle -> fd (see drm_gem_prime_handle_to_fd() helper) */
- int (*prime_handle_to_fd)(struct drm_device *dev, struct drm_file *file_priv,
- uint32_t handle, uint32_t flags, int *prime_fd);
- /* import fd -> handle (see drm_gem_prime_fd_to_handle() helper) */
- int (*prime_fd_to_handle)(struct drm_device *dev, struct drm_file *file_priv,
- int prime_fd, uint32_t *handle);
- /* export GEM -> dmabuf */
- struct dma_buf * (*gem_prime_export)(struct drm_device *dev,
- struct drm_gem_object *obj, int flags);
- /* import dmabuf -> GEM */
- struct drm_gem_object * (*gem_prime_import)(struct drm_device *dev,
- struct dma_buf *dma_buf);
-
- /* vga arb irq handler */
- void (*vgaarb_irq)(struct drm_device *dev, bool state);
-
- /* dumb alloc support */
- int (*dumb_create)(struct drm_file *file_priv,
- struct drm_device *dev,
- struct drm_mode_create_dumb *args);
- int (*dumb_map_offset)(struct drm_file *file_priv,
- struct drm_device *dev, uint32_t handle,
- uint64_t *offset);
- int (*dumb_destroy)(struct drm_file *file_priv,
- struct drm_device *dev,
- uint32_t handle);
-
- /* Driver private ops for this object */
- struct vm_operations_struct *gem_vm_ops;
-
- int major;
- int minor;
- int patchlevel;
- char *name;
- char *desc;
- char *date;
-
- u32 driver_features;
- int dev_priv_size;
- struct drm_ioctl_desc *ioctls;
- int num_ioctls;
- const struct file_operations *fops;
- union {
- struct pci_driver *pci;
- struct platform_device *platform_device;
- struct usb_driver *usb;
- } kdriver;
- struct drm_bus *bus;
-
- /* List of devices hanging off this driver */
- struct list_head device_list;
-};
-
-#define DRM_MINOR_UNASSIGNED 0
-#define DRM_MINOR_LEGACY 1
-#define DRM_MINOR_CONTROL 2
-#define DRM_MINOR_RENDER 3
-
-
-/**
- * debugfs node list. This structure represents a debugfs file to
- * be created by the drm core
- */
-struct drm_debugfs_list {
- const char *name; /** file name */
- int (*show)(struct seq_file*, void*); /** show callback */
- u32 driver_features; /**< Required driver features for this entry */
-};
-
-/**
- * debugfs node structure. This structure represents a debugfs file.
- */
-struct drm_debugfs_node {
- struct list_head list;
- struct drm_minor *minor;
- struct drm_debugfs_list *debugfs_ent;
- struct dentry *dent;
-};
-
-/**
- * Info file list entry. This structure represents a debugfs or proc file to
- * be created by the drm core
- */
-struct drm_info_list {
- const char *name; /** file name */
- int (*show)(struct seq_file*, void*); /** show callback */
- u32 driver_features; /**< Required driver features for this entry */
- void *data;
-};
-
-/**
- * debugfs node structure. This structure represents a debugfs file.
- */
-struct drm_info_node {
- struct list_head list;
- struct drm_minor *minor;
- struct drm_info_list *info_ent;
- struct dentry *dent;
-};
-
-/**
- * DRM minor structure. This structure represents a drm minor number.
- */
-struct drm_minor {
- int index; /**< Minor device number */
- int type; /**< Control or render */
- dev_t device; /**< Device number for mknod */
- struct device kdev; /**< Linux device */
- struct drm_device *dev;
-
- struct proc_dir_entry *proc_root; /**< proc directory entry */
- struct drm_info_node proc_nodes;
- struct dentry *debugfs_root;
-
- struct list_head debugfs_list;
- struct mutex debugfs_lock; /* Protects debugfs_list. */
-
- struct drm_master *master; /* currently active master for this node */
- struct list_head master_list;
- struct drm_mode_group mode_group;
-};
-
-/* mode specified on the command line */
-struct drm_cmdline_mode {
- bool specified;
- bool refresh_specified;
- bool bpp_specified;
- int xres, yres;
- int bpp;
- int refresh;
- bool rb;
- bool interlace;
- bool cvt;
- bool margins;
- enum drm_connector_force force;
-};
-
-
-struct drm_pending_vblank_event {
- struct drm_pending_event base;
- int pipe;
- struct drm_event_vblank event;
-};
-
-/**
- * DRM device structure. This structure represent a complete card that
- * may contain multiple heads.
- */
-struct drm_device {
- struct list_head driver_item; /**< list of devices per driver */
- char *devname; /**< For /proc/interrupts */
- int if_version; /**< Highest interface version set */
-
- /** \name Locks */
- /*@{ */
- spinlock_t count_lock; /**< For inuse, drm_device::open_count, drm_device::buf_use */
- struct mutex struct_mutex; /**< For others */
- /*@} */
-
- /** \name Usage Counters */
- /*@{ */
- int open_count; /**< Outstanding files open */
- atomic_t ioctl_count; /**< Outstanding IOCTLs pending */
- atomic_t vma_count; /**< Outstanding vma areas open */
- int buf_use; /**< Buffers in use -- cannot alloc */
- atomic_t buf_alloc; /**< Buffer allocation in progress */
- /*@} */
-
- /** \name Performance counters */
- /*@{ */
- unsigned long counters;
- enum drm_stat_type types[15];
- atomic_t counts[15];
- /*@} */
-
- struct list_head filelist;
-
- /** \name Memory management */
- /*@{ */
- struct list_head maplist; /**< Linked list of regions */
- int map_count; /**< Number of mappable regions */
- struct drm_open_hash map_hash; /**< User token hash table for maps */
-
- /** \name Context handle management */
- /*@{ */
- struct list_head ctxlist; /**< Linked list of context handles */
- int ctx_count; /**< Number of context handles */
- struct mutex ctxlist_mutex; /**< For ctxlist */
-
- struct idr ctx_idr;
-
- struct list_head vmalist; /**< List of vmas (for debugging) */
-
- /*@} */
-
- /** \name DMA queues (contexts) */
- /*@{ */
- int queue_count; /**< Number of active DMA queues */
- int queue_reserved; /**< Number of reserved DMA queues */
- int queue_slots; /**< Actual length of queuelist */
- struct drm_queue **queuelist; /**< Vector of pointers to DMA queues */
- struct drm_device_dma *dma; /**< Optional pointer for DMA support */
- /*@} */
-
- /** \name Context support */
- /*@{ */
- int irq_enabled; /**< True if irq handler is enabled */
- __volatile__ long context_flag; /**< Context swapping flag */
- __volatile__ long interrupt_flag; /**< Interruption handler flag */
- __volatile__ long dma_flag; /**< DMA dispatch flag */
- wait_queue_head_t context_wait; /**< Processes waiting on ctx switch */
- int last_checked; /**< Last context checked for DMA */
- int last_context; /**< Last current context */
- unsigned long last_switch; /**< jiffies at last context switch */
- /*@} */
-
- struct work_struct work;
- /** \name VBLANK IRQ support */
- /*@{ */
-
- /*
- * At load time, disabling the vblank interrupt won't be allowed since
- * old clients may not call the modeset ioctl and therefore misbehave.
- * Once the modeset ioctl *has* been called though, we can safely
- * disable them when unused.
- */
- int vblank_disable_allowed;
-
- wait_queue_head_t *vbl_queue; /**< VBLANK wait queue */
- atomic_t *_vblank_count; /**< number of VBLANK interrupts (driver must alloc the right number of counters) */
- struct timeval *_vblank_time; /**< timestamp of current vblank_count (drivers must alloc right number of fields) */
- spinlock_t vblank_time_lock; /**< Protects vblank count and time updates during vblank enable/disable */
- spinlock_t vbl_lock;
- atomic_t *vblank_refcount; /* number of users of vblank interruptsper crtc */
- u32 *last_vblank; /* protected by dev->vbl_lock, used */
- /* for wraparound handling */
- int *vblank_enabled; /* so we don't call enable more than
- once per disable */
- int *vblank_inmodeset; /* Display driver is setting mode */
- u32 *last_vblank_wait; /* Last vblank seqno waited per CRTC */
- struct timer_list vblank_disable_timer;
-
- u32 max_vblank_count; /**< size of vblank counter register */
-
- /**
- * List of events
- */
- struct list_head vblank_event_list;
- spinlock_t event_lock;
-
- /*@} */
- cycles_t ctx_start;
- cycles_t lck_start;
-
- struct fasync_struct *buf_async;/**< Processes waiting for SIGIO */
- wait_queue_head_t buf_readers; /**< Processes waiting to read */
- wait_queue_head_t buf_writers; /**< Processes waiting to ctx switch */
-
- struct drm_agp_head *agp; /**< AGP data */
-
- struct device *dev; /**< Device structure */
- struct pci_dev *pdev; /**< PCI device structure */
- int pci_vendor; /**< PCI vendor id */
- int pci_device; /**< PCI device id */
-#ifdef __alpha__
- struct pci_controller *hose;
-#endif
-
- struct platform_device *platformdev; /**< Platform device struture */
- struct usb_device *usbdev;
-
- struct drm_sg_mem *sg; /**< Scatter gather memory */
- unsigned int num_crtcs; /**< Number of CRTCs on this device */
- void *dev_private; /**< device private data */
- void *mm_private;
- struct address_space *dev_mapping;
- struct drm_sigdata sigdata; /**< For block_all_signals */
- sigset_t sigmask;
-
- struct drm_driver *driver;
- struct drm_local_map *agp_buffer_map;
- unsigned int agp_buffer_token;
- struct drm_minor *control; /**< Control node for card */
- struct drm_minor *primary; /**< render type primary screen head */
-
- struct drm_mode_config mode_config; /**< Current mode config */
-
- /** \name GEM information */
- /*@{ */
- spinlock_t object_name_lock;
- struct idr object_name_idr;
- /*@} */
- int switch_power_state;
-
- atomic_t unplugged; /* device has been unplugged or gone away */
-};
-
-#define DRM_SWITCH_POWER_ON 0
-#define DRM_SWITCH_POWER_OFF 1
-#define DRM_SWITCH_POWER_CHANGING 2
-
-static __inline__ int drm_core_check_feature(struct drm_device *dev,
- int feature)
-{
- return ((dev->driver->driver_features & feature) ? 1 : 0);
-}
-
-static inline int drm_dev_to_irq(struct drm_device *dev)
-{
- return dev->driver->bus->get_irq(dev);
-}
-
-
-#if __OS_HAS_AGP
-static inline int drm_core_has_AGP(struct drm_device *dev)
-{
- return drm_core_check_feature(dev, DRIVER_USE_AGP);
-}
-#else
-#define drm_core_has_AGP(dev) (0)
-#endif
-
-#if __OS_HAS_MTRR
-static inline int drm_core_has_MTRR(struct drm_device *dev)
-{
- return drm_core_check_feature(dev, DRIVER_USE_MTRR);
-}
-
-#define DRM_MTRR_WC MTRR_TYPE_WRCOMB
-
-static inline int drm_mtrr_add(unsigned long offset, unsigned long size,
- unsigned int flags)
-{
- return mtrr_add(offset, size, flags, 1);
-}
-
-static inline int drm_mtrr_del(int handle, unsigned long offset,
- unsigned long size, unsigned int flags)
-{
- return mtrr_del(handle, offset, size);
-}
-
-#else
-#define drm_core_has_MTRR(dev) (0)
-
-#define DRM_MTRR_WC 0
-
-static inline int drm_mtrr_add(unsigned long offset, unsigned long size,
- unsigned int flags)
-{
- return 0;
-}
-
-static inline int drm_mtrr_del(int handle, unsigned long offset,
- unsigned long size, unsigned int flags)
-{
- return 0;
-}
-#endif
-
-static inline void drm_device_set_unplugged(struct drm_device *dev)
-{
- smp_wmb();
- atomic_set(&dev->unplugged, 1);
-}
-
-static inline int drm_device_is_unplugged(struct drm_device *dev)
-{
- int ret = atomic_read(&dev->unplugged);
- smp_rmb();
- return ret;
-}
-
-/******************************************************************/
-/** \name Internal function definitions */
-/*@{*/
-
- /* Driver support (drm_drv.h) */
-extern long drm_ioctl(struct file *filp,
- unsigned int cmd, unsigned long arg);
-extern long drm_compat_ioctl(struct file *filp,
- unsigned int cmd, unsigned long arg);
-extern int drm_lastclose(struct drm_device *dev);
-
- /* Device support (drm_fops.h) */
-extern struct mutex drm_global_mutex;
-extern int drm_open(struct inode *inode, struct file *filp);
-extern int drm_stub_open(struct inode *inode, struct file *filp);
-extern int drm_fasync(int fd, struct file *filp, int on);
-extern ssize_t drm_read(struct file *filp, char __user *buffer,
- size_t count, loff_t *offset);
-extern int drm_release(struct inode *inode, struct file *filp);
-
- /* Mapping support (drm_vm.h) */
-extern int drm_mmap(struct file *filp, struct vm_area_struct *vma);
-extern int drm_mmap_locked(struct file *filp, struct vm_area_struct *vma);
-extern void drm_vm_open_locked(struct vm_area_struct *vma);
-extern void drm_vm_close_locked(struct vm_area_struct *vma);
-extern unsigned int drm_poll(struct file *filp, struct poll_table_struct *wait);
-
- /* Memory management support (drm_memory.h) */
-#include "drm_memory.h"
-extern void drm_free_agp(DRM_AGP_MEM * handle, int pages);
-extern int drm_bind_agp(DRM_AGP_MEM * handle, unsigned int start);
-extern DRM_AGP_MEM *drm_agp_bind_pages(struct drm_device *dev,
- struct page **pages,
- unsigned long num_pages,
- uint32_t gtt_offset,
- uint32_t type);
-extern int drm_unbind_agp(DRM_AGP_MEM * handle);
-
- /* Misc. IOCTL support (drm_ioctl.h) */
-extern int drm_irq_by_busid(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_getunique(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_setunique(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_getmap(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_getclient(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_getstats(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_getcap(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_setversion(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_noop(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-
- /* Context IOCTL support (drm_context.h) */
-extern int drm_resctx(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_addctx(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_modctx(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_getctx(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_switchctx(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_newctx(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_rmctx(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-
-extern int drm_ctxbitmap_init(struct drm_device *dev);
-extern void drm_ctxbitmap_cleanup(struct drm_device *dev);
-extern void drm_ctxbitmap_free(struct drm_device *dev, int ctx_handle);
-
-extern int drm_setsareactx(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_getsareactx(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-
- /* Authentication IOCTL support (drm_auth.h) */
-extern int drm_getmagic(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_authmagic(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_remove_magic(struct drm_master *master, drm_magic_t magic);
-
-/* Cache management (drm_cache.c) */
-void drm_clflush_pages(struct page *pages[], unsigned long num_pages);
-
- /* Locking IOCTL support (drm_lock.h) */
-extern int drm_lock(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_unlock(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_lock_free(struct drm_lock_data *lock_data, unsigned int context);
-extern void drm_idlelock_take(struct drm_lock_data *lock_data);
-extern void drm_idlelock_release(struct drm_lock_data *lock_data);
-
-/*
- * These are exported to drivers so that they can implement fencing using
- * DMA quiscent + idle. DMA quiescent usually requires the hardware lock.
- */
-
-extern int drm_i_have_hw_lock(struct drm_device *dev, struct drm_file *file_priv);
-
- /* Buffer management support (drm_bufs.h) */
-extern int drm_addbufs_agp(struct drm_device *dev, struct drm_buf_desc * request);
-extern int drm_addbufs_pci(struct drm_device *dev, struct drm_buf_desc * request);
-extern int drm_addmap(struct drm_device *dev, resource_size_t offset,
- unsigned int size, enum drm_map_type type,
- enum drm_map_flags flags, struct drm_local_map **map_ptr);
-extern int drm_addmap_ioctl(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_rmmap(struct drm_device *dev, struct drm_local_map *map);
-extern int drm_rmmap_locked(struct drm_device *dev, struct drm_local_map *map);
-extern int drm_rmmap_ioctl(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_addbufs(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_infobufs(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_markbufs(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_freebufs(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_mapbufs(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_order(unsigned long size);
-
- /* DMA support (drm_dma.h) */
-extern int drm_dma_setup(struct drm_device *dev);
-extern void drm_dma_takedown(struct drm_device *dev);
-extern void drm_free_buffer(struct drm_device *dev, struct drm_buf * buf);
-extern void drm_core_reclaim_buffers(struct drm_device *dev,
- struct drm_file *filp);
-
- /* IRQ support (drm_irq.h) */
-extern int drm_control(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_irq_install(struct drm_device *dev);
-extern int drm_irq_uninstall(struct drm_device *dev);
-
-extern int drm_vblank_init(struct drm_device *dev, int num_crtcs);
-extern int drm_wait_vblank(struct drm_device *dev, void *data,
- struct drm_file *filp);
-extern int drm_vblank_wait(struct drm_device *dev, unsigned int *vbl_seq);
-extern u32 drm_vblank_count(struct drm_device *dev, int crtc);
-extern u32 drm_vblank_count_and_time(struct drm_device *dev, int crtc,
- struct timeval *vblanktime);
-extern bool drm_handle_vblank(struct drm_device *dev, int crtc);
-extern int drm_vblank_get(struct drm_device *dev, int crtc);
-extern void drm_vblank_put(struct drm_device *dev, int crtc);
-extern void drm_vblank_off(struct drm_device *dev, int crtc);
-extern void drm_vblank_cleanup(struct drm_device *dev);
-extern u32 drm_get_last_vbltimestamp(struct drm_device *dev, int crtc,
- struct timeval *tvblank, unsigned flags);
-extern int drm_calc_vbltimestamp_from_scanoutpos(struct drm_device *dev,
- int crtc, int *max_error,
- struct timeval *vblank_time,
- unsigned flags,
- struct drm_crtc *refcrtc);
-extern void drm_calc_timestamping_constants(struct drm_crtc *crtc);
-
-extern bool
-drm_mode_parse_command_line_for_connector(const char *mode_option,
- struct drm_connector *connector,
- struct drm_cmdline_mode *mode);
-
-extern struct drm_display_mode *
-drm_mode_create_from_cmdline_mode(struct drm_device *dev,
- struct drm_cmdline_mode *cmd);
-
-/* Modesetting support */
-extern void drm_vblank_pre_modeset(struct drm_device *dev, int crtc);
-extern void drm_vblank_post_modeset(struct drm_device *dev, int crtc);
-extern int drm_modeset_ctl(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-
- /* AGP/GART support (drm_agpsupport.h) */
-extern struct drm_agp_head *drm_agp_init(struct drm_device *dev);
-extern int drm_agp_acquire(struct drm_device *dev);
-extern int drm_agp_acquire_ioctl(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_agp_release(struct drm_device *dev);
-extern int drm_agp_release_ioctl(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_agp_enable(struct drm_device *dev, struct drm_agp_mode mode);
-extern int drm_agp_enable_ioctl(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_agp_info(struct drm_device *dev, struct drm_agp_info *info);
-extern int drm_agp_info_ioctl(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_agp_alloc(struct drm_device *dev, struct drm_agp_buffer *request);
-extern int drm_agp_alloc_ioctl(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_agp_free(struct drm_device *dev, struct drm_agp_buffer *request);
-extern int drm_agp_free_ioctl(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_agp_unbind(struct drm_device *dev, struct drm_agp_binding *request);
-extern int drm_agp_unbind_ioctl(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_agp_bind(struct drm_device *dev, struct drm_agp_binding *request);
-extern int drm_agp_bind_ioctl(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-
- /* Stub support (drm_stub.h) */
-extern int drm_setmaster_ioctl(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_dropmaster_ioctl(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-struct drm_master *drm_master_create(struct drm_minor *minor);
-extern struct drm_master *drm_master_get(struct drm_master *master);
-extern void drm_master_put(struct drm_master **master);
-
-extern void drm_put_dev(struct drm_device *dev);
-extern int drm_put_minor(struct drm_minor **minor);
-extern void drm_unplug_dev(struct drm_device *dev);
-extern unsigned int drm_debug;
-
-extern unsigned int drm_vblank_offdelay;
-extern unsigned int drm_timestamp_precision;
-
-extern struct class *drm_class;
-extern struct proc_dir_entry *drm_proc_root;
-extern struct dentry *drm_debugfs_root;
-
-extern struct idr drm_minors_idr;
-
-extern struct drm_local_map *drm_getsarea(struct drm_device *dev);
-
- /* Proc support (drm_proc.h) */
-extern int drm_proc_init(struct drm_minor *minor, int minor_id,
- struct proc_dir_entry *root);
-extern int drm_proc_cleanup(struct drm_minor *minor, struct proc_dir_entry *root);
-
- /* Debugfs support */
-#if defined(CONFIG_DEBUG_FS)
-extern int drm_debugfs_init(struct drm_minor *minor, int minor_id,
- struct dentry *root);
-extern int drm_debugfs_create_files(struct drm_info_list *files, int count,
- struct dentry *root, struct drm_minor *minor);
-extern int drm_debugfs_remove_files(struct drm_info_list *files, int count,
- struct drm_minor *minor);
-extern int drm_debugfs_cleanup(struct drm_minor *minor);
-#endif
-
- /* Info file support */
-extern int drm_name_info(struct seq_file *m, void *data);
-extern int drm_vm_info(struct seq_file *m, void *data);
-extern int drm_queues_info(struct seq_file *m, void *data);
-extern int drm_bufs_info(struct seq_file *m, void *data);
-extern int drm_vblank_info(struct seq_file *m, void *data);
-extern int drm_clients_info(struct seq_file *m, void* data);
-extern int drm_gem_name_info(struct seq_file *m, void *data);
-
-
-extern int drm_gem_prime_handle_to_fd(struct drm_device *dev,
- struct drm_file *file_priv, uint32_t handle, uint32_t flags,
- int *prime_fd);
-extern int drm_gem_prime_fd_to_handle(struct drm_device *dev,
- struct drm_file *file_priv, int prime_fd, uint32_t *handle);
-
-extern int drm_prime_handle_to_fd_ioctl(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_prime_fd_to_handle_ioctl(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-
-extern struct sg_table *drm_prime_pages_to_sg(struct page **pages, int nr_pages);
-extern void drm_prime_gem_destroy(struct drm_gem_object *obj, struct sg_table *sg);
-
-
-void drm_prime_init_file_private(struct drm_prime_file_private *prime_fpriv);
-void drm_prime_destroy_file_private(struct drm_prime_file_private *prime_fpriv);
-int drm_prime_add_imported_buf_handle(struct drm_prime_file_private *prime_fpriv, struct dma_buf *dma_buf, uint32_t handle);
-int drm_prime_lookup_imported_buf_handle(struct drm_prime_file_private *prime_fpriv, struct dma_buf *dma_buf, uint32_t *handle);
-void drm_prime_remove_imported_buf_handle(struct drm_prime_file_private *prime_fpriv, struct dma_buf *dma_buf);
-
-int drm_prime_add_dma_buf(struct drm_device *dev, struct drm_gem_object *obj);
-int drm_prime_lookup_obj(struct drm_device *dev, struct dma_buf *buf,
- struct drm_gem_object **obj);
-
-#if DRM_DEBUG_CODE
-extern int drm_vma_info(struct seq_file *m, void *data);
-#endif
-
- /* Scatter Gather Support (drm_scatter.h) */
-extern void drm_sg_cleanup(struct drm_sg_mem * entry);
-extern int drm_sg_alloc_ioctl(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_sg_alloc(struct drm_device *dev, struct drm_scatter_gather * request);
-extern int drm_sg_free(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-
- /* ATI PCIGART support (ati_pcigart.h) */
-extern int drm_ati_pcigart_init(struct drm_device *dev,
- struct drm_ati_pcigart_info * gart_info);
-extern int drm_ati_pcigart_cleanup(struct drm_device *dev,
- struct drm_ati_pcigart_info * gart_info);
-
-extern drm_dma_handle_t *drm_pci_alloc(struct drm_device *dev, size_t size,
- size_t align);
-extern void __drm_pci_free(struct drm_device *dev, drm_dma_handle_t * dmah);
-extern void drm_pci_free(struct drm_device *dev, drm_dma_handle_t * dmah);
-
- /* sysfs support (drm_sysfs.c) */
-struct drm_sysfs_class;
-extern struct class *drm_sysfs_create(struct module *owner, char *name);
-extern void drm_sysfs_destroy(void);
-extern int drm_sysfs_device_add(struct drm_minor *minor);
-extern void drm_sysfs_hotplug_event(struct drm_device *dev);
-extern void drm_sysfs_device_remove(struct drm_minor *minor);
-extern char *drm_get_connector_status_name(enum drm_connector_status status);
-extern int drm_sysfs_connector_add(struct drm_connector *connector);
-extern void drm_sysfs_connector_remove(struct drm_connector *connector);
-
-/* Graphics Execution Manager library functions (drm_gem.c) */
-int drm_gem_init(struct drm_device *dev);
-void drm_gem_destroy(struct drm_device *dev);
-void drm_gem_object_release(struct drm_gem_object *obj);
-void drm_gem_object_free(struct kref *kref);
-struct drm_gem_object *drm_gem_object_alloc(struct drm_device *dev,
- size_t size);
-int drm_gem_object_init(struct drm_device *dev,
- struct drm_gem_object *obj, size_t size);
-int drm_gem_private_object_init(struct drm_device *dev,
- struct drm_gem_object *obj, size_t size);
-void drm_gem_object_handle_free(struct drm_gem_object *obj);
-void drm_gem_vm_open(struct vm_area_struct *vma);
-void drm_gem_vm_close(struct vm_area_struct *vma);
-int drm_gem_mmap(struct file *filp, struct vm_area_struct *vma);
-
-#include "drm_global.h"
-
-static inline void
-drm_gem_object_reference(struct drm_gem_object *obj)
-{
- kref_get(&obj->refcount);
-}
-
-static inline void
-drm_gem_object_unreference(struct drm_gem_object *obj)
-{
- if (obj != NULL)
- kref_put(&obj->refcount, drm_gem_object_free);
-}
-
-static inline void
-drm_gem_object_unreference_unlocked(struct drm_gem_object *obj)
-{
- if (obj != NULL) {
- struct drm_device *dev = obj->dev;
- mutex_lock(&dev->struct_mutex);
- kref_put(&obj->refcount, drm_gem_object_free);
- mutex_unlock(&dev->struct_mutex);
- }
-}
-
-int drm_gem_handle_create(struct drm_file *file_priv,
- struct drm_gem_object *obj,
- u32 *handlep);
-int drm_gem_handle_delete(struct drm_file *filp, u32 handle);
-
-static inline void
-drm_gem_object_handle_reference(struct drm_gem_object *obj)
-{
- drm_gem_object_reference(obj);
- atomic_inc(&obj->handle_count);
-}
-
-static inline void
-drm_gem_object_handle_unreference(struct drm_gem_object *obj)
-{
- if (obj == NULL)
- return;
-
- if (atomic_read(&obj->handle_count) == 0)
- return;
- /*
- * Must bump handle count first as this may be the last
- * ref, in which case the object would disappear before we
- * checked for a name
- */
- if (atomic_dec_and_test(&obj->handle_count))
- drm_gem_object_handle_free(obj);
- drm_gem_object_unreference(obj);
-}
-
-static inline void
-drm_gem_object_handle_unreference_unlocked(struct drm_gem_object *obj)
-{
- if (obj == NULL)
- return;
-
- if (atomic_read(&obj->handle_count) == 0)
- return;
-
- /*
- * Must bump handle count first as this may be the last
- * ref, in which case the object would disappear before we
- * checked for a name
- */
-
- if (atomic_dec_and_test(&obj->handle_count))
- drm_gem_object_handle_free(obj);
- drm_gem_object_unreference_unlocked(obj);
-}
-
-void drm_gem_free_mmap_offset(struct drm_gem_object *obj);
-int drm_gem_create_mmap_offset(struct drm_gem_object *obj);
-
-struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
- struct drm_file *filp,
- u32 handle);
-int drm_gem_close_ioctl(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-int drm_gem_flink_ioctl(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-int drm_gem_open_ioctl(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-void drm_gem_open(struct drm_device *dev, struct drm_file *file_private);
-void drm_gem_release(struct drm_device *dev, struct drm_file *file_private);
-
-extern void drm_core_ioremap(struct drm_local_map *map, struct drm_device *dev);
-extern void drm_core_ioremap_wc(struct drm_local_map *map, struct drm_device *dev);
-extern void drm_core_ioremapfree(struct drm_local_map *map, struct drm_device *dev);
-
-static __inline__ struct drm_local_map *drm_core_findmap(struct drm_device *dev,
- unsigned int token)
-{
- struct drm_map_list *_entry;
- list_for_each_entry(_entry, &dev->maplist, head)
- if (_entry->user_token == token)
- return _entry->map;
- return NULL;
-}
-
-static __inline__ void drm_core_dropmap(struct drm_local_map *map)
-{
-}
-
-#include "drm_mem_util.h"
-
-extern int drm_fill_in_dev(struct drm_device *dev,
- const struct pci_device_id *ent,
- struct drm_driver *driver);
-int drm_get_minor(struct drm_device *dev, struct drm_minor **minor, int type);
-/*@}*/
-
-/* PCI section */
-static __inline__ int drm_pci_device_is_agp(struct drm_device *dev)
-{
- if (dev->driver->device_is_agp != NULL) {
- int err = (*dev->driver->device_is_agp) (dev);
-
- if (err != 2) {
- return err;
- }
- }
-
- return pci_find_capability(dev->pdev, PCI_CAP_ID_AGP);
-}
-
-extern int drm_pci_init(struct drm_driver *driver, struct pci_driver *pdriver);
-extern void drm_pci_exit(struct drm_driver *driver, struct pci_driver *pdriver);
-extern int drm_get_pci_dev(struct pci_dev *pdev,
- const struct pci_device_id *ent,
- struct drm_driver *driver);
-
-
-/* platform section */
-extern int drm_platform_init(struct drm_driver *driver, struct platform_device *platform_device);
-extern void drm_platform_exit(struct drm_driver *driver, struct platform_device *platform_device);
-
-extern int drm_get_platform_dev(struct platform_device *pdev,
- struct drm_driver *driver);
-
-/* returns true if currently okay to sleep */
-static __inline__ bool drm_can_sleep(void)
-{
- if (in_atomic() || in_dbg_master() || irqs_disabled())
- return false;
- return true;
-}
-
-#endif /* __KERNEL__ */
-#endif
diff --git a/ANDROID_3.4.5/include/drm/drm_buffer.h b/ANDROID_3.4.5/include/drm/drm_buffer.h
deleted file mode 100644
index 322dbff3..00000000
--- a/ANDROID_3.4.5/include/drm/drm_buffer.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/**************************************************************************
- *
- * Copyright 2010 Pauli Nieminen.
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- * USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- *
- **************************************************************************/
-/*
- * Multipart buffer for coping data which is larger than the page size.
- *
- * Authors:
- * Pauli Nieminen <suokkos-at-gmail-dot-com>
- */
-
-#ifndef _DRM_BUFFER_H_
-#define _DRM_BUFFER_H_
-
-#include "drmP.h"
-
-struct drm_buffer {
- int iterator;
- int size;
- char *data[];
-};
-
-
-/**
- * Return the index of page that buffer is currently pointing at.
- */
-static inline int drm_buffer_page(struct drm_buffer *buf)
-{
- return buf->iterator / PAGE_SIZE;
-}
-/**
- * Return the index of the current byte in the page
- */
-static inline int drm_buffer_index(struct drm_buffer *buf)
-{
- return buf->iterator & (PAGE_SIZE - 1);
-}
-/**
- * Return number of bytes that is left to process
- */
-static inline int drm_buffer_unprocessed(struct drm_buffer *buf)
-{
- return buf->size - buf->iterator;
-}
-
-/**
- * Advance the buffer iterator number of bytes that is given.
- */
-static inline void drm_buffer_advance(struct drm_buffer *buf, int bytes)
-{
- buf->iterator += bytes;
-}
-
-/**
- * Allocate the drm buffer object.
- *
- * buf: A pointer to a pointer where the object is stored.
- * size: The number of bytes to allocate.
- */
-extern int drm_buffer_alloc(struct drm_buffer **buf, int size);
-
-/**
- * Copy the user data to the begin of the buffer and reset the processing
- * iterator.
- *
- * user_data: A pointer the data that is copied to the buffer.
- * size: The Number of bytes to copy.
- */
-extern int drm_buffer_copy_from_user(struct drm_buffer *buf,
- void __user *user_data, int size);
-
-/**
- * Free the drm buffer object
- */
-extern void drm_buffer_free(struct drm_buffer *buf);
-
-/**
- * Read an object from buffer that may be split to multiple parts. If object
- * is not split function just returns the pointer to object in buffer. But in
- * case of split object data is copied to given stack object that is suplied
- * by caller.
- *
- * The processing location of the buffer is also advanced to the next byte
- * after the object.
- *
- * objsize: The size of the objet in bytes.
- * stack_obj: A pointer to a memory location where object can be copied.
- */
-extern void *drm_buffer_read_object(struct drm_buffer *buf,
- int objsize, void *stack_obj);
-
-/**
- * Returns the pointer to the dword which is offset number of elements from the
- * current processing location.
- *
- * Caller must make sure that dword is not split in the buffer. This
- * requirement is easily met if all the sizes of objects in buffer are
- * multiples of dword and PAGE_SIZE is multiple dword.
- *
- * Call to this function doesn't change the processing location.
- *
- * offset: The index of the dword relative to the internat iterator.
- */
-static inline void *drm_buffer_pointer_to_dword(struct drm_buffer *buffer,
- int offset)
-{
- int iter = buffer->iterator + offset * 4;
- return &buffer->data[iter / PAGE_SIZE][iter & (PAGE_SIZE - 1)];
-}
-/**
- * Returns the pointer to the dword which is offset number of elements from
- * the current processing location.
- *
- * Call to this function doesn't change the processing location.
- *
- * offset: The index of the byte relative to the internat iterator.
- */
-static inline void *drm_buffer_pointer_to_byte(struct drm_buffer *buffer,
- int offset)
-{
- int iter = buffer->iterator + offset;
- return &buffer->data[iter / PAGE_SIZE][iter & (PAGE_SIZE - 1)];
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/drm/drm_cache.h b/ANDROID_3.4.5/include/drm/drm_cache.h
deleted file mode 100644
index 7bfb0630..00000000
--- a/ANDROID_3.4.5/include/drm/drm_cache.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/**************************************************************************
- *
- * Copyright 2009 Red Hat Inc.
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- * USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- *
- **************************************************************************/
-/*
- * Authors:
- * Dave Airlie <airlied@redhat.com>
- */
-
-#ifndef _DRM_CACHE_H_
-#define _DRM_CACHE_H_
-
-void drm_clflush_pages(struct page *pages[], unsigned long num_pages);
-
-#endif
diff --git a/ANDROID_3.4.5/include/drm/drm_core.h b/ANDROID_3.4.5/include/drm/drm_core.h
deleted file mode 100644
index 4e752386..00000000
--- a/ANDROID_3.4.5/include/drm/drm_core.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright 2004 Jon Smirl <jonsmirl@gmail.com>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sub license,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
- * VIA, S3 GRAPHICS, AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-#define CORE_AUTHOR "Gareth Hughes, Leif Delgass, José Fonseca, Jon Smirl"
-
-#define CORE_NAME "drm"
-#define CORE_DESC "DRM shared core routines"
-#define CORE_DATE "20060810"
-
-#define DRM_IF_MAJOR 1
-#define DRM_IF_MINOR 4
-
-#define CORE_MAJOR 1
-#define CORE_MINOR 1
-#define CORE_PATCHLEVEL 0
diff --git a/ANDROID_3.4.5/include/drm/drm_crtc.h b/ANDROID_3.4.5/include/drm/drm_crtc.h
deleted file mode 100644
index e250eda4..00000000
--- a/ANDROID_3.4.5/include/drm/drm_crtc.h
+++ /dev/null
@@ -1,1029 +0,0 @@
-/*
- * Copyright © 2006 Keith Packard
- * Copyright © 2007-2008 Dave Airlie
- * Copyright © 2007-2008 Intel Corporation
- * Jesse Barnes <jesse.barnes@intel.com>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- */
-#ifndef __DRM_CRTC_H__
-#define __DRM_CRTC_H__
-
-#include <linux/i2c.h>
-#include <linux/spinlock.h>
-#include <linux/types.h>
-#include <linux/idr.h>
-#include <linux/fb.h>
-
-#include <drm/drm_fourcc.h>
-
-struct drm_device;
-struct drm_mode_set;
-struct drm_framebuffer;
-
-
-#define DRM_MODE_OBJECT_CRTC 0xcccccccc
-#define DRM_MODE_OBJECT_CONNECTOR 0xc0c0c0c0
-#define DRM_MODE_OBJECT_ENCODER 0xe0e0e0e0
-#define DRM_MODE_OBJECT_MODE 0xdededede
-#define DRM_MODE_OBJECT_PROPERTY 0xb0b0b0b0
-#define DRM_MODE_OBJECT_FB 0xfbfbfbfb
-#define DRM_MODE_OBJECT_BLOB 0xbbbbbbbb
-#define DRM_MODE_OBJECT_PLANE 0xeeeeeeee
-
-struct drm_mode_object {
- uint32_t id;
- uint32_t type;
-};
-
-/*
- * Note on terminology: here, for brevity and convenience, we refer to connector
- * control chips as 'CRTCs'. They can control any type of connector, VGA, LVDS,
- * DVI, etc. And 'screen' refers to the whole of the visible display, which
- * may span multiple monitors (and therefore multiple CRTC and connector
- * structures).
- */
-
-enum drm_mode_status {
- MODE_OK = 0, /* Mode OK */
- MODE_HSYNC, /* hsync out of range */
- MODE_VSYNC, /* vsync out of range */
- MODE_H_ILLEGAL, /* mode has illegal horizontal timings */
- MODE_V_ILLEGAL, /* mode has illegal horizontal timings */
- MODE_BAD_WIDTH, /* requires an unsupported linepitch */
- MODE_NOMODE, /* no mode with a matching name */
- MODE_NO_INTERLACE, /* interlaced mode not supported */
- MODE_NO_DBLESCAN, /* doublescan mode not supported */
- MODE_NO_VSCAN, /* multiscan mode not supported */
- MODE_MEM, /* insufficient video memory */
- MODE_VIRTUAL_X, /* mode width too large for specified virtual size */
- MODE_VIRTUAL_Y, /* mode height too large for specified virtual size */
- MODE_MEM_VIRT, /* insufficient video memory given virtual size */
- MODE_NOCLOCK, /* no fixed clock available */
- MODE_CLOCK_HIGH, /* clock required is too high */
- MODE_CLOCK_LOW, /* clock required is too low */
- MODE_CLOCK_RANGE, /* clock/mode isn't in a ClockRange */
- MODE_BAD_HVALUE, /* horizontal timing was out of range */
- MODE_BAD_VVALUE, /* vertical timing was out of range */
- MODE_BAD_VSCAN, /* VScan value out of range */
- MODE_HSYNC_NARROW, /* horizontal sync too narrow */
- MODE_HSYNC_WIDE, /* horizontal sync too wide */
- MODE_HBLANK_NARROW, /* horizontal blanking too narrow */
- MODE_HBLANK_WIDE, /* horizontal blanking too wide */
- MODE_VSYNC_NARROW, /* vertical sync too narrow */
- MODE_VSYNC_WIDE, /* vertical sync too wide */
- MODE_VBLANK_NARROW, /* vertical blanking too narrow */
- MODE_VBLANK_WIDE, /* vertical blanking too wide */
- MODE_PANEL, /* exceeds panel dimensions */
- MODE_INTERLACE_WIDTH, /* width too large for interlaced mode */
- MODE_ONE_WIDTH, /* only one width is supported */
- MODE_ONE_HEIGHT, /* only one height is supported */
- MODE_ONE_SIZE, /* only one resolution is supported */
- MODE_NO_REDUCED, /* monitor doesn't accept reduced blanking */
- MODE_UNVERIFIED = -3, /* mode needs to reverified */
- MODE_BAD = -2, /* unspecified reason */
- MODE_ERROR = -1 /* error condition */
-};
-
-#define DRM_MODE_TYPE_CLOCK_CRTC_C (DRM_MODE_TYPE_CLOCK_C | \
- DRM_MODE_TYPE_CRTC_C)
-
-#define DRM_MODE(nm, t, c, hd, hss, hse, ht, hsk, vd, vss, vse, vt, vs, f) \
- .name = nm, .status = 0, .type = (t), .clock = (c), \
- .hdisplay = (hd), .hsync_start = (hss), .hsync_end = (hse), \
- .htotal = (ht), .hskew = (hsk), .vdisplay = (vd), \
- .vsync_start = (vss), .vsync_end = (vse), .vtotal = (vt), \
- .vscan = (vs), .flags = (f), .vrefresh = 0
-
-#define CRTC_INTERLACE_HALVE_V 0x1 /* halve V values for interlacing */
-
-struct drm_display_mode {
- /* Header */
- struct list_head head;
- struct drm_mode_object base;
-
- char name[DRM_DISPLAY_MODE_LEN];
-
- enum drm_mode_status status;
- unsigned int type;
-
- /* Proposed mode values */
- int clock; /* in kHz */
- int hdisplay;
- int hsync_start;
- int hsync_end;
- int htotal;
- int hskew;
- int vdisplay;
- int vsync_start;
- int vsync_end;
- int vtotal;
- int vscan;
- unsigned int flags;
-
- /* Addressable image size (may be 0 for projectors, etc.) */
- int width_mm;
- int height_mm;
-
- /* Actual mode we give to hw */
- int clock_index;
- int synth_clock;
- int crtc_hdisplay;
- int crtc_hblank_start;
- int crtc_hblank_end;
- int crtc_hsync_start;
- int crtc_hsync_end;
- int crtc_htotal;
- int crtc_hskew;
- int crtc_vdisplay;
- int crtc_vblank_start;
- int crtc_vblank_end;
- int crtc_vsync_start;
- int crtc_vsync_end;
- int crtc_vtotal;
- int crtc_hadjusted;
- int crtc_vadjusted;
-
- /* Driver private mode info */
- int private_size;
- int *private;
- int private_flags;
-
- int vrefresh; /* in Hz */
- int hsync; /* in kHz */
-};
-
-enum drm_connector_status {
- connector_status_connected = 1,
- connector_status_disconnected = 2,
- connector_status_unknown = 3,
-};
-
-enum subpixel_order {
- SubPixelUnknown = 0,
- SubPixelHorizontalRGB,
- SubPixelHorizontalBGR,
- SubPixelVerticalRGB,
- SubPixelVerticalBGR,
- SubPixelNone,
-};
-
-#define DRM_COLOR_FORMAT_RGB444 (1<<0)
-#define DRM_COLOR_FORMAT_YCRCB444 (1<<1)
-#define DRM_COLOR_FORMAT_YCRCB422 (1<<2)
-/*
- * Describes a given display (e.g. CRT or flat panel) and its limitations.
- */
-struct drm_display_info {
- char name[DRM_DISPLAY_INFO_LEN];
-
- /* Physical size */
- unsigned int width_mm;
- unsigned int height_mm;
-
- /* Clock limits FIXME: storage format */
- unsigned int min_vfreq, max_vfreq;
- unsigned int min_hfreq, max_hfreq;
- unsigned int pixel_clock;
- unsigned int bpc;
-
- enum subpixel_order subpixel_order;
- u32 color_formats;
-
- u8 cea_rev;
-
- char *raw_edid; /* if any */
-};
-
-struct drm_framebuffer_funcs {
- void (*destroy)(struct drm_framebuffer *framebuffer);
- int (*create_handle)(struct drm_framebuffer *fb,
- struct drm_file *file_priv,
- unsigned int *handle);
- /**
- * Optinal callback for the dirty fb ioctl.
- *
- * Userspace can notify the driver via this callback
- * that a area of the framebuffer has changed and should
- * be flushed to the display hardware.
- *
- * See documentation in drm_mode.h for the struct
- * drm_mode_fb_dirty_cmd for more information as all
- * the semantics and arguments have a one to one mapping
- * on this function.
- */
- int (*dirty)(struct drm_framebuffer *framebuffer,
- struct drm_file *file_priv, unsigned flags,
- unsigned color, struct drm_clip_rect *clips,
- unsigned num_clips);
-};
-
-struct drm_framebuffer {
- struct drm_device *dev;
- struct list_head head;
- struct drm_mode_object base;
- const struct drm_framebuffer_funcs *funcs;
- unsigned int pitches[4];
- unsigned int offsets[4];
- unsigned int width;
- unsigned int height;
- /* depth can be 15 or 16 */
- unsigned int depth;
- int bits_per_pixel;
- int flags;
- uint32_t pixel_format; /* fourcc format */
- struct list_head filp_head;
- /* if you are using the helper */
- void *helper_private;
-};
-
-struct drm_property_blob {
- struct drm_mode_object base;
- struct list_head head;
- unsigned int length;
- unsigned char data[];
-};
-
-struct drm_property_enum {
- uint64_t value;
- struct list_head head;
- char name[DRM_PROP_NAME_LEN];
-};
-
-struct drm_property {
- struct list_head head;
- struct drm_mode_object base;
- uint32_t flags;
- char name[DRM_PROP_NAME_LEN];
- uint32_t num_values;
- uint64_t *values;
-
- struct list_head enum_blob_list;
-};
-
-struct drm_crtc;
-struct drm_connector;
-struct drm_encoder;
-struct drm_pending_vblank_event;
-struct drm_plane;
-
-/**
- * drm_crtc_funcs - control CRTCs for a given device
- * @reset: reset CRTC after state has been invalidate (e.g. resume)
- * @dpms: control display power levels
- * @save: save CRTC state
- * @resore: restore CRTC state
- * @lock: lock the CRTC
- * @unlock: unlock the CRTC
- * @shadow_allocate: allocate shadow pixmap
- * @shadow_create: create shadow pixmap for rotation support
- * @shadow_destroy: free shadow pixmap
- * @mode_fixup: fixup proposed mode
- * @mode_set: set the desired mode on the CRTC
- * @gamma_set: specify color ramp for CRTC
- * @destroy: deinit and free object.
- *
- * The drm_crtc_funcs structure is the central CRTC management structure
- * in the DRM. Each CRTC controls one or more connectors (note that the name
- * CRTC is simply historical, a CRTC may control LVDS, VGA, DVI, TV out, etc.
- * connectors, not just CRTs).
- *
- * Each driver is responsible for filling out this structure at startup time,
- * in addition to providing other modesetting features, like i2c and DDC
- * bus accessors.
- */
-struct drm_crtc_funcs {
- /* Save CRTC state */
- void (*save)(struct drm_crtc *crtc); /* suspend? */
- /* Restore CRTC state */
- void (*restore)(struct drm_crtc *crtc); /* resume? */
- /* Reset CRTC state */
- void (*reset)(struct drm_crtc *crtc);
-
- /* cursor controls */
- int (*cursor_set)(struct drm_crtc *crtc, struct drm_file *file_priv,
- uint32_t handle, uint32_t width, uint32_t height);
- int (*cursor_move)(struct drm_crtc *crtc, int x, int y);
-
- /* Set gamma on the CRTC */
- void (*gamma_set)(struct drm_crtc *crtc, u16 *r, u16 *g, u16 *b,
- uint32_t start, uint32_t size);
- /* Object destroy routine */
- void (*destroy)(struct drm_crtc *crtc);
-
- int (*set_config)(struct drm_mode_set *set);
-
- /*
- * Flip to the given framebuffer. This implements the page
- * flip ioctl described in drm_mode.h, specifically, the
- * implementation must return immediately and block all
- * rendering to the current fb until the flip has completed.
- * If userspace set the event flag in the ioctl, the event
- * argument will point to an event to send back when the flip
- * completes, otherwise it will be NULL.
- */
- int (*page_flip)(struct drm_crtc *crtc,
- struct drm_framebuffer *fb,
- struct drm_pending_vblank_event *event);
-};
-
-/**
- * drm_crtc - central CRTC control structure
- * @dev: parent DRM device
- * @head: list management
- * @base: base KMS object for ID tracking etc.
- * @enabled: is this CRTC enabled?
- * @mode: current mode timings
- * @hwmode: mode timings as programmed to hw regs
- * @x: x position on screen
- * @y: y position on screen
- * @funcs: CRTC control functions
- * @gamma_size: size of gamma ramp
- * @gamma_store: gamma ramp values
- * @framedur_ns: precise frame timing
- * @framedur_ns: precise line timing
- * @pixeldur_ns: precise pixel timing
- * @helper_private: mid-layer private data
- *
- * Each CRTC may have one or more connectors associated with it. This structure
- * allows the CRTC to be controlled.
- */
-struct drm_crtc {
- struct drm_device *dev;
- struct list_head head;
-
- struct drm_mode_object base;
-
- /* framebuffer the connector is currently bound to */
- struct drm_framebuffer *fb;
-
- bool enabled;
-
- /* Requested mode from modesetting. */
- struct drm_display_mode mode;
-
- /* Programmed mode in hw, after adjustments for encoders,
- * crtc, panel scaling etc. Needed for timestamping etc.
- */
- struct drm_display_mode hwmode;
-
- int x, y;
- const struct drm_crtc_funcs *funcs;
-
- /* CRTC gamma size for reporting to userspace */
- uint32_t gamma_size;
- uint16_t *gamma_store;
-
- /* Constants needed for precise vblank and swap timestamping. */
- s64 framedur_ns, linedur_ns, pixeldur_ns;
-
- /* if you are using the helper */
- void *helper_private;
-};
-
-
-/**
- * drm_connector_funcs - control connectors on a given device
- * @dpms: set power state (see drm_crtc_funcs above)
- * @save: save connector state
- * @restore: restore connector state
- * @reset: reset connector after state has been invalidate (e.g. resume)
- * @mode_valid: is this mode valid on the given connector?
- * @mode_fixup: try to fixup proposed mode for this connector
- * @mode_set: set this mode
- * @detect: is this connector active?
- * @get_modes: get mode list for this connector
- * @set_property: property for this connector may need update
- * @destroy: make object go away
- * @force: notify the driver the connector is forced on
- *
- * Each CRTC may have one or more connectors attached to it. The functions
- * below allow the core DRM code to control connectors, enumerate available modes,
- * etc.
- */
-struct drm_connector_funcs {
- void (*dpms)(struct drm_connector *connector, int mode);
- void (*save)(struct drm_connector *connector);
- void (*restore)(struct drm_connector *connector);
- void (*reset)(struct drm_connector *connector);
-
- /* Check to see if anything is attached to the connector.
- * @force is set to false whilst polling, true when checking the
- * connector due to user request. @force can be used by the driver
- * to avoid expensive, destructive operations during automated
- * probing.
- */
- enum drm_connector_status (*detect)(struct drm_connector *connector,
- bool force);
- int (*fill_modes)(struct drm_connector *connector, uint32_t max_width, uint32_t max_height);
- int (*set_property)(struct drm_connector *connector, struct drm_property *property,
- uint64_t val);
- void (*destroy)(struct drm_connector *connector);
- void (*force)(struct drm_connector *connector);
-};
-
-/**
- * drm_encoder_funcs - encoder controls
- * @reset: reset state (e.g. at init or resume time)
- * @destroy: cleanup and free associated data
- *
- * Encoders sit between CRTCs and connectors.
- */
-struct drm_encoder_funcs {
- void (*reset)(struct drm_encoder *encoder);
- void (*destroy)(struct drm_encoder *encoder);
-};
-
-#define DRM_CONNECTOR_MAX_UMODES 16
-#define DRM_CONNECTOR_MAX_PROPERTY 16
-#define DRM_CONNECTOR_LEN 32
-#define DRM_CONNECTOR_MAX_ENCODER 3
-
-/**
- * drm_encoder - central DRM encoder structure
- * @dev: parent DRM device
- * @head: list management
- * @base: base KMS object
- * @encoder_type: one of the %DRM_MODE_ENCODER_<foo> types in drm_mode.h
- * @possible_crtcs: bitmask of potential CRTC bindings
- * @possible_clones: bitmask of potential sibling encoders for cloning
- * @crtc: currently bound CRTC
- * @funcs: control functions
- * @helper_private: mid-layer private data
- *
- * CRTCs drive pixels to encoders, which convert them into signals
- * appropriate for a given connector or set of connectors.
- */
-struct drm_encoder {
- struct drm_device *dev;
- struct list_head head;
-
- struct drm_mode_object base;
- int encoder_type;
- uint32_t possible_crtcs;
- uint32_t possible_clones;
-
- struct drm_crtc *crtc;
- const struct drm_encoder_funcs *funcs;
- void *helper_private;
-};
-
-enum drm_connector_force {
- DRM_FORCE_UNSPECIFIED,
- DRM_FORCE_OFF,
- DRM_FORCE_ON, /* force on analog part normally */
- DRM_FORCE_ON_DIGITAL, /* for DVI-I use digital connector */
-};
-
-/* should we poll this connector for connects and disconnects */
-/* hot plug detectable */
-#define DRM_CONNECTOR_POLL_HPD (1 << 0)
-/* poll for connections */
-#define DRM_CONNECTOR_POLL_CONNECT (1 << 1)
-/* can cleanly poll for disconnections without flickering the screen */
-/* DACs should rarely do this without a lot of testing */
-#define DRM_CONNECTOR_POLL_DISCONNECT (1 << 2)
-
-#define MAX_ELD_BYTES 128
-
-/**
- * drm_connector - central DRM connector control structure
- * @dev: parent DRM device
- * @kdev: kernel device for sysfs attributes
- * @attr: sysfs attributes
- * @head: list management
- * @base: base KMS object
- * @connector_type: one of the %DRM_MODE_CONNECTOR_<foo> types from drm_mode.h
- * @connector_type_id: index into connector type enum
- * @interlace_allowed: can this connector handle interlaced modes?
- * @doublescan_allowed: can this connector handle doublescan?
- * @modes: modes available on this connector (from fill_modes() + user)
- * @status: one of the drm_connector_status enums (connected, not, or unknown)
- * @probed_modes: list of modes derived directly from the display
- * @display_info: information about attached display (e.g. from EDID)
- * @funcs: connector control functions
- * @user_modes: user added mode list
- * @edid_blob_ptr: DRM property containing EDID if present
- * @property_ids: property tracking for this connector
- * @property_values: value pointers or data for properties
- * @polled: a %DRM_CONNECTOR_POLL_<foo> value for core driven polling
- * @dpms: current dpms state
- * @helper_private: mid-layer private data
- * @force: a %DRM_FORCE_<foo> state for forced mode sets
- * @encoder_ids: valid encoders for this connector
- * @encoder: encoder driving this connector, if any
- * @eld: EDID-like data, if present
- * @dvi_dual: dual link DVI, if found
- * @max_tmds_clock: max clock rate, if found
- * @latency_present: AV delay info from ELD, if found
- * @video_latency: video latency info from ELD, if found
- * @audio_latency: audio latency info from ELD, if found
- * @null_edid_counter: track sinks that give us all zeros for the EDID
- *
- * Each connector may be connected to one or more CRTCs, or may be clonable by
- * another connector if they can share a CRTC. Each connector also has a specific
- * position in the broader display (referred to as a 'screen' though it could
- * span multiple monitors).
- */
-struct drm_connector {
- struct drm_device *dev;
- struct device kdev;
- struct device_attribute *attr;
- struct list_head head;
-
- struct drm_mode_object base;
-
- int connector_type;
- int connector_type_id;
- bool interlace_allowed;
- bool doublescan_allowed;
- struct list_head modes; /* list of modes on this connector */
-
- enum drm_connector_status status;
-
- /* these are modes added by probing with DDC or the BIOS */
- struct list_head probed_modes;
-
- struct drm_display_info display_info;
- const struct drm_connector_funcs *funcs;
-
- struct list_head user_modes;
- struct drm_property_blob *edid_blob_ptr;
- u32 property_ids[DRM_CONNECTOR_MAX_PROPERTY];
- uint64_t property_values[DRM_CONNECTOR_MAX_PROPERTY];
-
- uint8_t polled; /* DRM_CONNECTOR_POLL_* */
-
- /* requested DPMS state */
- int dpms;
-
- void *helper_private;
-
- /* forced on connector */
- enum drm_connector_force force;
- uint32_t encoder_ids[DRM_CONNECTOR_MAX_ENCODER];
- struct drm_encoder *encoder; /* currently active encoder */
-
- /* EDID bits */
- uint8_t eld[MAX_ELD_BYTES];
- bool dvi_dual;
- int max_tmds_clock; /* in MHz */
- bool latency_present[2];
- int video_latency[2]; /* [0]: progressive, [1]: interlaced */
- int audio_latency[2];
- int null_edid_counter; /* needed to workaround some HW bugs where we get all 0s */
-};
-
-/**
- * drm_plane_funcs - driver plane control functions
- * @update_plane: update the plane configuration
- * @disable_plane: shut down the plane
- * @destroy: clean up plane resources
- */
-struct drm_plane_funcs {
- int (*update_plane)(struct drm_plane *plane,
- struct drm_crtc *crtc, struct drm_framebuffer *fb,
- int crtc_x, int crtc_y,
- unsigned int crtc_w, unsigned int crtc_h,
- uint32_t src_x, uint32_t src_y,
- uint32_t src_w, uint32_t src_h);
- int (*disable_plane)(struct drm_plane *plane);
- void (*destroy)(struct drm_plane *plane);
-};
-
-/**
- * drm_plane - central DRM plane control structure
- * @dev: DRM device this plane belongs to
- * @head: for list management
- * @base: base mode object
- * @possible_crtcs: pipes this plane can be bound to
- * @format_types: array of formats supported by this plane
- * @format_count: number of formats supported
- * @crtc: currently bound CRTC
- * @fb: currently bound fb
- * @gamma_size: size of gamma table
- * @gamma_store: gamma correction table
- * @enabled: enabled flag
- * @funcs: helper functions
- * @helper_private: storage for drver layer
- */
-struct drm_plane {
- struct drm_device *dev;
- struct list_head head;
-
- struct drm_mode_object base;
-
- uint32_t possible_crtcs;
- uint32_t *format_types;
- uint32_t format_count;
-
- struct drm_crtc *crtc;
- struct drm_framebuffer *fb;
-
- /* CRTC gamma size for reporting to userspace */
- uint32_t gamma_size;
- uint16_t *gamma_store;
-
- bool enabled;
-
- const struct drm_plane_funcs *funcs;
- void *helper_private;
-};
-
-/**
- * drm_mode_set - new values for a CRTC config change
- * @head: list management
- * @fb: framebuffer to use for new config
- * @crtc: CRTC whose configuration we're about to change
- * @mode: mode timings to use
- * @x: position of this CRTC relative to @fb
- * @y: position of this CRTC relative to @fb
- * @connectors: array of connectors to drive with this CRTC if possible
- * @num_connectors: size of @connectors array
- *
- * Represents a single crtc the connectors that it drives with what mode
- * and from which framebuffer it scans out from.
- *
- * This is used to set modes.
- */
-struct drm_mode_set {
- struct list_head head;
-
- struct drm_framebuffer *fb;
- struct drm_crtc *crtc;
- struct drm_display_mode *mode;
-
- uint32_t x;
- uint32_t y;
-
- struct drm_connector **connectors;
- size_t num_connectors;
-};
-
-/**
- * struct drm_mode_config_funcs - basic driver provided mode setting functions
- * @fb_create: create a new framebuffer object
- * @output_poll_changed: function to handle output configuration changes
- *
- * Some global (i.e. not per-CRTC, connector, etc) mode setting functions that
- * involve drivers.
- */
-struct drm_mode_config_funcs {
- struct drm_framebuffer *(*fb_create)(struct drm_device *dev,
- struct drm_file *file_priv,
- struct drm_mode_fb_cmd2 *mode_cmd);
- void (*output_poll_changed)(struct drm_device *dev);
-};
-
-/**
- * drm_mode_group - group of mode setting resources for potential sub-grouping
- * @num_crtcs: CRTC count
- * @num_encoders: encoder count
- * @num_connectors: connector count
- * @id_list: list of KMS object IDs in this group
- *
- * Currently this simply tracks the global mode setting state. But in the
- * future it could allow groups of objects to be set aside into independent
- * control groups for use by different user level processes (e.g. two X servers
- * running simultaneously on different heads, each with their own mode
- * configuration and freedom of mode setting).
- */
-struct drm_mode_group {
- uint32_t num_crtcs;
- uint32_t num_encoders;
- uint32_t num_connectors;
-
- /* list of object IDs for this group */
- uint32_t *id_list;
-};
-
-/**
- * drm_mode_config - Mode configuration control structure
- * @mutex: mutex protecting KMS related lists and structures
- * @idr_mutex: mutex for KMS ID allocation and management
- * @crtc_idr: main KMS ID tracking object
- * @num_fb: number of fbs available
- * @fb_list: list of framebuffers available
- * @num_connector: number of connectors on this device
- * @connector_list: list of connector objects
- * @num_encoder: number of encoders on this device
- * @encoder_list: list of encoder objects
- * @num_crtc: number of CRTCs on this device
- * @crtc_list: list of CRTC objects
- * @min_width: minimum pixel width on this device
- * @min_height: minimum pixel height on this device
- * @max_width: maximum pixel width on this device
- * @max_height: maximum pixel height on this device
- * @funcs: core driver provided mode setting functions
- * @fb_base: base address of the framebuffer
- * @poll_enabled: track polling status for this device
- * @output_poll_work: delayed work for polling in process context
- * @*_property: core property tracking
- *
- * Core mode resource tracking structure. All CRTC, encoders, and connectors
- * enumerated by the driver are added here, as are global properties. Some
- * global restrictions are also here, e.g. dimension restrictions.
- */
-struct drm_mode_config {
- struct mutex mutex; /* protects configuration (mode lists etc.) */
- struct mutex idr_mutex; /* for IDR management */
- struct idr crtc_idr; /* use this idr for all IDs, fb, crtc, connector, modes - just makes life easier */
- /* this is limited to one for now */
- int num_fb;
- struct list_head fb_list;
- int num_connector;
- struct list_head connector_list;
- int num_encoder;
- struct list_head encoder_list;
- int num_plane;
- struct list_head plane_list;
-
- int num_crtc;
- struct list_head crtc_list;
-
- struct list_head property_list;
-
- int min_width, min_height;
- int max_width, max_height;
- struct drm_mode_config_funcs *funcs;
- resource_size_t fb_base;
-
- /* output poll support */
- bool poll_enabled;
- struct delayed_work output_poll_work;
-
- /* pointers to standard properties */
- struct list_head property_blob_list;
- struct drm_property *edid_property;
- struct drm_property *dpms_property;
-
- /* DVI-I properties */
- struct drm_property *dvi_i_subconnector_property;
- struct drm_property *dvi_i_select_subconnector_property;
-
- /* TV properties */
- struct drm_property *tv_subconnector_property;
- struct drm_property *tv_select_subconnector_property;
- struct drm_property *tv_mode_property;
- struct drm_property *tv_left_margin_property;
- struct drm_property *tv_right_margin_property;
- struct drm_property *tv_top_margin_property;
- struct drm_property *tv_bottom_margin_property;
- struct drm_property *tv_brightness_property;
- struct drm_property *tv_contrast_property;
- struct drm_property *tv_flicker_reduction_property;
- struct drm_property *tv_overscan_property;
- struct drm_property *tv_saturation_property;
- struct drm_property *tv_hue_property;
-
- /* Optional properties */
- struct drm_property *scaling_mode_property;
- struct drm_property *dithering_mode_property;
- struct drm_property *dirty_info_property;
-
- /* dumb ioctl parameters */
- uint32_t preferred_depth, prefer_shadow;
-};
-
-#define obj_to_crtc(x) container_of(x, struct drm_crtc, base)
-#define obj_to_connector(x) container_of(x, struct drm_connector, base)
-#define obj_to_encoder(x) container_of(x, struct drm_encoder, base)
-#define obj_to_mode(x) container_of(x, struct drm_display_mode, base)
-#define obj_to_fb(x) container_of(x, struct drm_framebuffer, base)
-#define obj_to_property(x) container_of(x, struct drm_property, base)
-#define obj_to_blob(x) container_of(x, struct drm_property_blob, base)
-#define obj_to_plane(x) container_of(x, struct drm_plane, base)
-
-struct drm_prop_enum_list {
- int type;
- char *name;
-};
-
-extern int drm_crtc_init(struct drm_device *dev,
- struct drm_crtc *crtc,
- const struct drm_crtc_funcs *funcs);
-extern void drm_crtc_cleanup(struct drm_crtc *crtc);
-
-extern int drm_connector_init(struct drm_device *dev,
- struct drm_connector *connector,
- const struct drm_connector_funcs *funcs,
- int connector_type);
-
-extern void drm_connector_cleanup(struct drm_connector *connector);
-/* helper to unplug all connectors from sysfs for device */
-extern void drm_connector_unplug_all(struct drm_device *dev);
-
-extern int drm_encoder_init(struct drm_device *dev,
- struct drm_encoder *encoder,
- const struct drm_encoder_funcs *funcs,
- int encoder_type);
-
-extern int drm_plane_init(struct drm_device *dev,
- struct drm_plane *plane,
- unsigned long possible_crtcs,
- const struct drm_plane_funcs *funcs,
- const uint32_t *formats, uint32_t format_count,
- bool priv);
-extern void drm_plane_cleanup(struct drm_plane *plane);
-
-extern void drm_encoder_cleanup(struct drm_encoder *encoder);
-
-extern char *drm_get_connector_name(struct drm_connector *connector);
-extern char *drm_get_dpms_name(int val);
-extern char *drm_get_dvi_i_subconnector_name(int val);
-extern char *drm_get_dvi_i_select_name(int val);
-extern char *drm_get_tv_subconnector_name(int val);
-extern char *drm_get_tv_select_name(int val);
-extern void drm_fb_release(struct drm_file *file_priv);
-extern int drm_mode_group_init_legacy_group(struct drm_device *dev, struct drm_mode_group *group);
-extern struct edid *drm_get_edid(struct drm_connector *connector,
- struct i2c_adapter *adapter);
-extern int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid);
-extern void drm_mode_probed_add(struct drm_connector *connector, struct drm_display_mode *mode);
-extern void drm_mode_remove(struct drm_connector *connector, struct drm_display_mode *mode);
-extern void drm_mode_copy(struct drm_display_mode *dst, const struct drm_display_mode *src);
-extern struct drm_display_mode *drm_mode_duplicate(struct drm_device *dev,
- const struct drm_display_mode *mode);
-extern void drm_mode_debug_printmodeline(struct drm_display_mode *mode);
-extern void drm_mode_config_init(struct drm_device *dev);
-extern void drm_mode_config_reset(struct drm_device *dev);
-extern void drm_mode_config_cleanup(struct drm_device *dev);
-extern void drm_mode_set_name(struct drm_display_mode *mode);
-extern bool drm_mode_equal(struct drm_display_mode *mode1, struct drm_display_mode *mode2);
-extern int drm_mode_width(struct drm_display_mode *mode);
-extern int drm_mode_height(struct drm_display_mode *mode);
-
-/* for us by fb module */
-extern int drm_mode_attachmode_crtc(struct drm_device *dev,
- struct drm_crtc *crtc,
- const struct drm_display_mode *mode);
-extern int drm_mode_detachmode_crtc(struct drm_device *dev, struct drm_display_mode *mode);
-
-extern struct drm_display_mode *drm_mode_create(struct drm_device *dev);
-extern void drm_mode_destroy(struct drm_device *dev, struct drm_display_mode *mode);
-extern void drm_mode_list_concat(struct list_head *head,
- struct list_head *new);
-extern void drm_mode_validate_size(struct drm_device *dev,
- struct list_head *mode_list,
- int maxX, int maxY, int maxPitch);
-extern void drm_mode_prune_invalid(struct drm_device *dev,
- struct list_head *mode_list, bool verbose);
-extern void drm_mode_sort(struct list_head *mode_list);
-extern int drm_mode_hsync(const struct drm_display_mode *mode);
-extern int drm_mode_vrefresh(const struct drm_display_mode *mode);
-extern void drm_mode_set_crtcinfo(struct drm_display_mode *p,
- int adjust_flags);
-extern void drm_mode_connector_list_update(struct drm_connector *connector);
-extern int drm_mode_connector_update_edid_property(struct drm_connector *connector,
- struct edid *edid);
-extern int drm_connector_property_set_value(struct drm_connector *connector,
- struct drm_property *property,
- uint64_t value);
-extern int drm_connector_property_get_value(struct drm_connector *connector,
- struct drm_property *property,
- uint64_t *value);
-extern struct drm_display_mode *drm_crtc_mode_create(struct drm_device *dev);
-extern void drm_framebuffer_set_object(struct drm_device *dev,
- unsigned long handle);
-extern int drm_framebuffer_init(struct drm_device *dev,
- struct drm_framebuffer *fb,
- const struct drm_framebuffer_funcs *funcs);
-extern void drm_framebuffer_cleanup(struct drm_framebuffer *fb);
-extern int drmfb_probe(struct drm_device *dev, struct drm_crtc *crtc);
-extern int drmfb_remove(struct drm_device *dev, struct drm_framebuffer *fb);
-extern void drm_crtc_probe_connector_modes(struct drm_device *dev, int maxX, int maxY);
-extern bool drm_crtc_in_use(struct drm_crtc *crtc);
-
-extern int drm_connector_attach_property(struct drm_connector *connector,
- struct drm_property *property, uint64_t init_val);
-extern struct drm_property *drm_property_create(struct drm_device *dev, int flags,
- const char *name, int num_values);
-extern struct drm_property *drm_property_create_enum(struct drm_device *dev, int flags,
- const char *name,
- const struct drm_prop_enum_list *props,
- int num_values);
-struct drm_property *drm_property_create_range(struct drm_device *dev, int flags,
- const char *name,
- uint64_t min, uint64_t max);
-extern void drm_property_destroy(struct drm_device *dev, struct drm_property *property);
-extern int drm_property_add_enum(struct drm_property *property, int index,
- uint64_t value, const char *name);
-extern int drm_mode_create_dvi_i_properties(struct drm_device *dev);
-extern int drm_mode_create_tv_properties(struct drm_device *dev, int num_formats,
- char *formats[]);
-extern int drm_mode_create_scaling_mode_property(struct drm_device *dev);
-extern int drm_mode_create_dithering_property(struct drm_device *dev);
-extern int drm_mode_create_dirty_info_property(struct drm_device *dev);
-extern char *drm_get_encoder_name(struct drm_encoder *encoder);
-
-extern int drm_mode_connector_attach_encoder(struct drm_connector *connector,
- struct drm_encoder *encoder);
-extern void drm_mode_connector_detach_encoder(struct drm_connector *connector,
- struct drm_encoder *encoder);
-extern int drm_mode_crtc_set_gamma_size(struct drm_crtc *crtc,
- int gamma_size);
-extern struct drm_mode_object *drm_mode_object_find(struct drm_device *dev,
- uint32_t id, uint32_t type);
-/* IOCTLs */
-extern int drm_mode_getresources(struct drm_device *dev,
- void *data, struct drm_file *file_priv);
-extern int drm_mode_getplane_res(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-extern int drm_mode_getcrtc(struct drm_device *dev,
- void *data, struct drm_file *file_priv);
-extern int drm_mode_getconnector(struct drm_device *dev,
- void *data, struct drm_file *file_priv);
-extern int drm_mode_setcrtc(struct drm_device *dev,
- void *data, struct drm_file *file_priv);
-extern int drm_mode_getplane(struct drm_device *dev,
- void *data, struct drm_file *file_priv);
-extern int drm_mode_setplane(struct drm_device *dev,
- void *data, struct drm_file *file_priv);
-extern int drm_mode_cursor_ioctl(struct drm_device *dev,
- void *data, struct drm_file *file_priv);
-extern int drm_mode_addfb(struct drm_device *dev,
- void *data, struct drm_file *file_priv);
-extern int drm_mode_addfb2(struct drm_device *dev,
- void *data, struct drm_file *file_priv);
-extern uint32_t drm_mode_legacy_fb_format(uint32_t bpp, uint32_t depth);
-extern int drm_mode_rmfb(struct drm_device *dev,
- void *data, struct drm_file *file_priv);
-extern int drm_mode_getfb(struct drm_device *dev,
- void *data, struct drm_file *file_priv);
-extern int drm_mode_dirtyfb_ioctl(struct drm_device *dev,
- void *data, struct drm_file *file_priv);
-extern int drm_mode_addmode_ioctl(struct drm_device *dev,
- void *data, struct drm_file *file_priv);
-extern int drm_mode_rmmode_ioctl(struct drm_device *dev,
- void *data, struct drm_file *file_priv);
-extern int drm_mode_attachmode_ioctl(struct drm_device *dev,
- void *data, struct drm_file *file_priv);
-extern int drm_mode_detachmode_ioctl(struct drm_device *dev,
- void *data, struct drm_file *file_priv);
-
-extern int drm_mode_getproperty_ioctl(struct drm_device *dev,
- void *data, struct drm_file *file_priv);
-extern int drm_mode_getblob_ioctl(struct drm_device *dev,
- void *data, struct drm_file *file_priv);
-extern int drm_mode_connector_property_set_ioctl(struct drm_device *dev,
- void *data, struct drm_file *file_priv);
-extern int drm_mode_hotplug_ioctl(struct drm_device *dev,
- void *data, struct drm_file *file_priv);
-extern int drm_mode_replacefb(struct drm_device *dev,
- void *data, struct drm_file *file_priv);
-extern int drm_mode_getencoder(struct drm_device *dev,
- void *data, struct drm_file *file_priv);
-extern int drm_mode_gamma_get_ioctl(struct drm_device *dev,
- void *data, struct drm_file *file_priv);
-extern int drm_mode_gamma_set_ioctl(struct drm_device *dev,
- void *data, struct drm_file *file_priv);
-extern u8 *drm_find_cea_extension(struct edid *edid);
-extern bool drm_detect_hdmi_monitor(struct edid *edid);
-extern bool drm_detect_monitor_audio(struct edid *edid);
-extern int drm_mode_page_flip_ioctl(struct drm_device *dev,
- void *data, struct drm_file *file_priv);
-extern struct drm_display_mode *drm_cvt_mode(struct drm_device *dev,
- int hdisplay, int vdisplay, int vrefresh,
- bool reduced, bool interlaced, bool margins);
-extern struct drm_display_mode *drm_gtf_mode(struct drm_device *dev,
- int hdisplay, int vdisplay, int vrefresh,
- bool interlaced, int margins);
-extern struct drm_display_mode *drm_gtf_mode_complex(struct drm_device *dev,
- int hdisplay, int vdisplay, int vrefresh,
- bool interlaced, int margins, int GTF_M,
- int GTF_2C, int GTF_K, int GTF_2J);
-extern int drm_add_modes_noedid(struct drm_connector *connector,
- int hdisplay, int vdisplay);
-
-extern int drm_edid_header_is_valid(const u8 *raw_edid);
-extern bool drm_edid_block_valid(u8 *raw_edid);
-extern bool drm_edid_is_valid(struct edid *edid);
-struct drm_display_mode *drm_mode_find_dmt(struct drm_device *dev,
- int hsize, int vsize, int fresh);
-
-extern int drm_mode_create_dumb_ioctl(struct drm_device *dev,
- void *data, struct drm_file *file_priv);
-extern int drm_mode_mmap_dumb_ioctl(struct drm_device *dev,
- void *data, struct drm_file *file_priv);
-extern int drm_mode_destroy_dumb_ioctl(struct drm_device *dev,
- void *data, struct drm_file *file_priv);
-
-extern void drm_fb_get_bpp_depth(uint32_t format, unsigned int *depth,
- int *bpp);
-#endif /* __DRM_CRTC_H__ */
diff --git a/ANDROID_3.4.5/include/drm/drm_crtc_helper.h b/ANDROID_3.4.5/include/drm/drm_crtc_helper.h
deleted file mode 100644
index 37515d1a..00000000
--- a/ANDROID_3.4.5/include/drm/drm_crtc_helper.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Copyright © 2006 Keith Packard
- * Copyright © 2007-2008 Dave Airlie
- * Copyright © 2007-2008 Intel Corporation
- * Jesse Barnes <jesse.barnes@intel.com>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/*
- * The DRM mode setting helper functions are common code for drivers to use if
- * they wish. Drivers are not forced to use this code in their
- * implementations but it would be useful if they code they do use at least
- * provides a consistent interface and operation to userspace
- */
-
-#ifndef __DRM_CRTC_HELPER_H__
-#define __DRM_CRTC_HELPER_H__
-
-#include <linux/spinlock.h>
-#include <linux/types.h>
-#include <linux/idr.h>
-
-#include <linux/fb.h>
-
-enum mode_set_atomic {
- LEAVE_ATOMIC_MODE_SET,
- ENTER_ATOMIC_MODE_SET,
-};
-
-struct drm_crtc_helper_funcs {
- /*
- * Control power levels on the CRTC. If the mode passed in is
- * unsupported, the provider must use the next lowest power level.
- */
- void (*dpms)(struct drm_crtc *crtc, int mode);
- void (*prepare)(struct drm_crtc *crtc);
- void (*commit)(struct drm_crtc *crtc);
-
- /* Provider can fixup or change mode timings before modeset occurs */
- bool (*mode_fixup)(struct drm_crtc *crtc,
- struct drm_display_mode *mode,
- struct drm_display_mode *adjusted_mode);
- /* Actually set the mode */
- int (*mode_set)(struct drm_crtc *crtc, struct drm_display_mode *mode,
- struct drm_display_mode *adjusted_mode, int x, int y,
- struct drm_framebuffer *old_fb);
-
- /* Move the crtc on the current fb to the given position *optional* */
- int (*mode_set_base)(struct drm_crtc *crtc, int x, int y,
- struct drm_framebuffer *old_fb);
- int (*mode_set_base_atomic)(struct drm_crtc *crtc,
- struct drm_framebuffer *fb, int x, int y,
- enum mode_set_atomic);
-
- /* reload the current crtc LUT */
- void (*load_lut)(struct drm_crtc *crtc);
-
- /* disable crtc when not in use - more explicit than dpms off */
- void (*disable)(struct drm_crtc *crtc);
-};
-
-struct drm_encoder_helper_funcs {
- void (*dpms)(struct drm_encoder *encoder, int mode);
- void (*save)(struct drm_encoder *encoder);
- void (*restore)(struct drm_encoder *encoder);
-
- bool (*mode_fixup)(struct drm_encoder *encoder,
- struct drm_display_mode *mode,
- struct drm_display_mode *adjusted_mode);
- void (*prepare)(struct drm_encoder *encoder);
- void (*commit)(struct drm_encoder *encoder);
- void (*mode_set)(struct drm_encoder *encoder,
- struct drm_display_mode *mode,
- struct drm_display_mode *adjusted_mode);
- struct drm_crtc *(*get_crtc)(struct drm_encoder *encoder);
- /* detect for DAC style encoders */
- enum drm_connector_status (*detect)(struct drm_encoder *encoder,
- struct drm_connector *connector);
- /* disable encoder when not in use - more explicit than dpms off */
- void (*disable)(struct drm_encoder *encoder);
-};
-
-struct drm_connector_helper_funcs {
- int (*get_modes)(struct drm_connector *connector);
- int (*mode_valid)(struct drm_connector *connector,
- struct drm_display_mode *mode);
- struct drm_encoder *(*best_encoder)(struct drm_connector *connector);
-};
-
-extern int drm_helper_probe_single_connector_modes(struct drm_connector *connector, uint32_t maxX, uint32_t maxY);
-extern void drm_helper_disable_unused_functions(struct drm_device *dev);
-extern int drm_crtc_helper_set_config(struct drm_mode_set *set);
-extern bool drm_crtc_helper_set_mode(struct drm_crtc *crtc,
- struct drm_display_mode *mode,
- int x, int y,
- struct drm_framebuffer *old_fb);
-extern bool drm_helper_crtc_in_use(struct drm_crtc *crtc);
-extern bool drm_helper_encoder_in_use(struct drm_encoder *encoder);
-
-extern void drm_helper_connector_dpms(struct drm_connector *connector, int mode);
-
-extern int drm_helper_mode_fill_fb_struct(struct drm_framebuffer *fb,
- struct drm_mode_fb_cmd2 *mode_cmd);
-
-static inline void drm_crtc_helper_add(struct drm_crtc *crtc,
- const struct drm_crtc_helper_funcs *funcs)
-{
- crtc->helper_private = (void *)funcs;
-}
-
-static inline void drm_encoder_helper_add(struct drm_encoder *encoder,
- const struct drm_encoder_helper_funcs *funcs)
-{
- encoder->helper_private = (void *)funcs;
-}
-
-static inline void drm_connector_helper_add(struct drm_connector *connector,
- const struct drm_connector_helper_funcs *funcs)
-{
- connector->helper_private = (void *)funcs;
-}
-
-extern int drm_helper_resume_force_mode(struct drm_device *dev);
-extern void drm_kms_helper_poll_init(struct drm_device *dev);
-extern void drm_kms_helper_poll_fini(struct drm_device *dev);
-extern void drm_helper_hpd_irq_event(struct drm_device *dev);
-
-extern void drm_kms_helper_poll_disable(struct drm_device *dev);
-extern void drm_kms_helper_poll_enable(struct drm_device *dev);
-
-extern int drm_format_num_planes(uint32_t format);
-
-#endif
diff --git a/ANDROID_3.4.5/include/drm/drm_dp_helper.h b/ANDROID_3.4.5/include/drm/drm_dp_helper.h
deleted file mode 100644
index 93df2d72..00000000
--- a/ANDROID_3.4.5/include/drm/drm_dp_helper.h
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
- * Copyright © 2008 Keith Packard
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting documentation, and
- * that the name of the copyright holders not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission. The copyright holders make no representations
- * about the suitability of this software for any purpose. It is provided "as
- * is" without express or implied warranty.
- *
- * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
- * OF THIS SOFTWARE.
- */
-
-#ifndef _DRM_DP_HELPER_H_
-#define _DRM_DP_HELPER_H_
-
-#include <linux/types.h>
-#include <linux/i2c.h>
-
-/* From the VESA DisplayPort spec */
-
-#define AUX_NATIVE_WRITE 0x8
-#define AUX_NATIVE_READ 0x9
-#define AUX_I2C_WRITE 0x0
-#define AUX_I2C_READ 0x1
-#define AUX_I2C_STATUS 0x2
-#define AUX_I2C_MOT 0x4
-
-#define AUX_NATIVE_REPLY_ACK (0x0 << 4)
-#define AUX_NATIVE_REPLY_NACK (0x1 << 4)
-#define AUX_NATIVE_REPLY_DEFER (0x2 << 4)
-#define AUX_NATIVE_REPLY_MASK (0x3 << 4)
-
-#define AUX_I2C_REPLY_ACK (0x0 << 6)
-#define AUX_I2C_REPLY_NACK (0x1 << 6)
-#define AUX_I2C_REPLY_DEFER (0x2 << 6)
-#define AUX_I2C_REPLY_MASK (0x3 << 6)
-
-/* AUX CH addresses */
-/* DPCD */
-#define DP_DPCD_REV 0x000
-
-#define DP_MAX_LINK_RATE 0x001
-
-#define DP_MAX_LANE_COUNT 0x002
-# define DP_MAX_LANE_COUNT_MASK 0x1f
-# define DP_TPS3_SUPPORTED (1 << 6)
-# define DP_ENHANCED_FRAME_CAP (1 << 7)
-
-#define DP_MAX_DOWNSPREAD 0x003
-# define DP_NO_AUX_HANDSHAKE_LINK_TRAINING (1 << 6)
-
-#define DP_NORP 0x004
-
-#define DP_DOWNSTREAMPORT_PRESENT 0x005
-# define DP_DWN_STRM_PORT_PRESENT (1 << 0)
-# define DP_DWN_STRM_PORT_TYPE_MASK 0x06
-/* 00b = DisplayPort */
-/* 01b = Analog */
-/* 10b = TMDS or HDMI */
-/* 11b = Other */
-# define DP_FORMAT_CONVERSION (1 << 3)
-
-#define DP_MAIN_LINK_CHANNEL_CODING 0x006
-
-#define DP_EDP_CONFIGURATION_CAP 0x00d
-#define DP_TRAINING_AUX_RD_INTERVAL 0x00e
-
-#define DP_PSR_SUPPORT 0x070
-# define DP_PSR_IS_SUPPORTED 1
-#define DP_PSR_CAPS 0x071
-# define DP_PSR_NO_TRAIN_ON_EXIT 1
-# define DP_PSR_SETUP_TIME_330 (0 << 1)
-# define DP_PSR_SETUP_TIME_275 (1 << 1)
-# define DP_PSR_SETUP_TIME_220 (2 << 1)
-# define DP_PSR_SETUP_TIME_165 (3 << 1)
-# define DP_PSR_SETUP_TIME_110 (4 << 1)
-# define DP_PSR_SETUP_TIME_55 (5 << 1)
-# define DP_PSR_SETUP_TIME_0 (6 << 1)
-# define DP_PSR_SETUP_TIME_MASK (7 << 1)
-# define DP_PSR_SETUP_TIME_SHIFT 1
-
-/* link configuration */
-#define DP_LINK_BW_SET 0x100
-# define DP_LINK_BW_1_62 0x06
-# define DP_LINK_BW_2_7 0x0a
-# define DP_LINK_BW_5_4 0x14
-
-#define DP_LANE_COUNT_SET 0x101
-# define DP_LANE_COUNT_MASK 0x0f
-# define DP_LANE_COUNT_ENHANCED_FRAME_EN (1 << 7)
-
-#define DP_TRAINING_PATTERN_SET 0x102
-# define DP_TRAINING_PATTERN_DISABLE 0
-# define DP_TRAINING_PATTERN_1 1
-# define DP_TRAINING_PATTERN_2 2
-# define DP_TRAINING_PATTERN_3 3
-# define DP_TRAINING_PATTERN_MASK 0x3
-
-# define DP_LINK_QUAL_PATTERN_DISABLE (0 << 2)
-# define DP_LINK_QUAL_PATTERN_D10_2 (1 << 2)
-# define DP_LINK_QUAL_PATTERN_ERROR_RATE (2 << 2)
-# define DP_LINK_QUAL_PATTERN_PRBS7 (3 << 2)
-# define DP_LINK_QUAL_PATTERN_MASK (3 << 2)
-
-# define DP_RECOVERED_CLOCK_OUT_EN (1 << 4)
-# define DP_LINK_SCRAMBLING_DISABLE (1 << 5)
-
-# define DP_SYMBOL_ERROR_COUNT_BOTH (0 << 6)
-# define DP_SYMBOL_ERROR_COUNT_DISPARITY (1 << 6)
-# define DP_SYMBOL_ERROR_COUNT_SYMBOL (2 << 6)
-# define DP_SYMBOL_ERROR_COUNT_MASK (3 << 6)
-
-#define DP_TRAINING_LANE0_SET 0x103
-#define DP_TRAINING_LANE1_SET 0x104
-#define DP_TRAINING_LANE2_SET 0x105
-#define DP_TRAINING_LANE3_SET 0x106
-
-# define DP_TRAIN_VOLTAGE_SWING_MASK 0x3
-# define DP_TRAIN_VOLTAGE_SWING_SHIFT 0
-# define DP_TRAIN_MAX_SWING_REACHED (1 << 2)
-# define DP_TRAIN_VOLTAGE_SWING_400 (0 << 0)
-# define DP_TRAIN_VOLTAGE_SWING_600 (1 << 0)
-# define DP_TRAIN_VOLTAGE_SWING_800 (2 << 0)
-# define DP_TRAIN_VOLTAGE_SWING_1200 (3 << 0)
-
-# define DP_TRAIN_PRE_EMPHASIS_MASK (3 << 3)
-# define DP_TRAIN_PRE_EMPHASIS_0 (0 << 3)
-# define DP_TRAIN_PRE_EMPHASIS_3_5 (1 << 3)
-# define DP_TRAIN_PRE_EMPHASIS_6 (2 << 3)
-# define DP_TRAIN_PRE_EMPHASIS_9_5 (3 << 3)
-
-# define DP_TRAIN_PRE_EMPHASIS_SHIFT 3
-# define DP_TRAIN_MAX_PRE_EMPHASIS_REACHED (1 << 5)
-
-#define DP_DOWNSPREAD_CTRL 0x107
-# define DP_SPREAD_AMP_0_5 (1 << 4)
-
-#define DP_MAIN_LINK_CHANNEL_CODING_SET 0x108
-# define DP_SET_ANSI_8B10B (1 << 0)
-
-#define DP_PSR_EN_CFG 0x170
-# define DP_PSR_ENABLE (1 << 0)
-# define DP_PSR_MAIN_LINK_ACTIVE (1 << 1)
-# define DP_PSR_CRC_VERIFICATION (1 << 2)
-# define DP_PSR_FRAME_CAPTURE (1 << 3)
-
-#define DP_DEVICE_SERVICE_IRQ_VECTOR 0x201
-# define DP_REMOTE_CONTROL_COMMAND_PENDING (1 << 0)
-# define DP_AUTOMATED_TEST_REQUEST (1 << 1)
-# define DP_CP_IRQ (1 << 2)
-# define DP_SINK_SPECIFIC_IRQ (1 << 6)
-
-#define DP_EDP_CONFIGURATION_SET 0x10a
-
-#define DP_LANE0_1_STATUS 0x202
-#define DP_LANE2_3_STATUS 0x203
-# define DP_LANE_CR_DONE (1 << 0)
-# define DP_LANE_CHANNEL_EQ_DONE (1 << 1)
-# define DP_LANE_SYMBOL_LOCKED (1 << 2)
-
-#define DP_CHANNEL_EQ_BITS (DP_LANE_CR_DONE | \
- DP_LANE_CHANNEL_EQ_DONE | \
- DP_LANE_SYMBOL_LOCKED)
-
-#define DP_LANE_ALIGN_STATUS_UPDATED 0x204
-
-#define DP_INTERLANE_ALIGN_DONE (1 << 0)
-#define DP_DOWNSTREAM_PORT_STATUS_CHANGED (1 << 6)
-#define DP_LINK_STATUS_UPDATED (1 << 7)
-
-#define DP_SINK_STATUS 0x205
-
-#define DP_RECEIVE_PORT_0_STATUS (1 << 0)
-#define DP_RECEIVE_PORT_1_STATUS (1 << 1)
-
-#define DP_ADJUST_REQUEST_LANE0_1 0x206
-#define DP_ADJUST_REQUEST_LANE2_3 0x207
-# define DP_ADJUST_VOLTAGE_SWING_LANE0_MASK 0x03
-# define DP_ADJUST_VOLTAGE_SWING_LANE0_SHIFT 0
-# define DP_ADJUST_PRE_EMPHASIS_LANE0_MASK 0x0c
-# define DP_ADJUST_PRE_EMPHASIS_LANE0_SHIFT 2
-# define DP_ADJUST_VOLTAGE_SWING_LANE1_MASK 0x30
-# define DP_ADJUST_VOLTAGE_SWING_LANE1_SHIFT 4
-# define DP_ADJUST_PRE_EMPHASIS_LANE1_MASK 0xc0
-# define DP_ADJUST_PRE_EMPHASIS_LANE1_SHIFT 6
-
-#define DP_TEST_REQUEST 0x218
-# define DP_TEST_LINK_TRAINING (1 << 0)
-# define DP_TEST_LINK_PATTERN (1 << 1)
-# define DP_TEST_LINK_EDID_READ (1 << 2)
-# define DP_TEST_LINK_PHY_TEST_PATTERN (1 << 3) /* DPCD >= 1.1 */
-
-#define DP_TEST_LINK_RATE 0x219
-# define DP_LINK_RATE_162 (0x6)
-# define DP_LINK_RATE_27 (0xa)
-
-#define DP_TEST_LANE_COUNT 0x220
-
-#define DP_TEST_PATTERN 0x221
-
-#define DP_TEST_RESPONSE 0x260
-# define DP_TEST_ACK (1 << 0)
-# define DP_TEST_NAK (1 << 1)
-# define DP_TEST_EDID_CHECKSUM_WRITE (1 << 2)
-
-#define DP_SET_POWER 0x600
-# define DP_SET_POWER_D0 0x1
-# define DP_SET_POWER_D3 0x2
-
-#define DP_PSR_ERROR_STATUS 0x2006
-# define DP_PSR_LINK_CRC_ERROR (1 << 0)
-# define DP_PSR_RFB_STORAGE_ERROR (1 << 1)
-
-#define DP_PSR_ESI 0x2007
-# define DP_PSR_CAPS_CHANGE (1 << 0)
-
-#define DP_PSR_STATUS 0x2008
-# define DP_PSR_SINK_INACTIVE 0
-# define DP_PSR_SINK_ACTIVE_SRC_SYNCED 1
-# define DP_PSR_SINK_ACTIVE_RFB 2
-# define DP_PSR_SINK_ACTIVE_SINK_SYNCED 3
-# define DP_PSR_SINK_ACTIVE_RESYNC 4
-# define DP_PSR_SINK_INTERNAL_ERROR 7
-# define DP_PSR_SINK_STATE_MASK 0x07
-
-#define MODE_I2C_START 1
-#define MODE_I2C_WRITE 2
-#define MODE_I2C_READ 4
-#define MODE_I2C_STOP 8
-
-struct i2c_algo_dp_aux_data {
- bool running;
- u16 address;
- int (*aux_ch) (struct i2c_adapter *adapter,
- int mode, uint8_t write_byte,
- uint8_t *read_byte);
-};
-
-int
-i2c_dp_aux_add_bus(struct i2c_adapter *adapter);
-
-#endif /* _DRM_DP_HELPER_H_ */
diff --git a/ANDROID_3.4.5/include/drm/drm_edid.h b/ANDROID_3.4.5/include/drm/drm_edid.h
deleted file mode 100644
index bcb9a66b..00000000
--- a/ANDROID_3.4.5/include/drm/drm_edid.h
+++ /dev/null
@@ -1,243 +0,0 @@
-/*
- * Copyright © 2007-2008 Intel Corporation
- * Jesse Barnes <jesse.barnes@intel.com>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- */
-#ifndef __DRM_EDID_H__
-#define __DRM_EDID_H__
-
-#include <linux/types.h>
-
-#define EDID_LENGTH 128
-#define DDC_ADDR 0x50
-
-#define CEA_EXT 0x02
-#define VTB_EXT 0x10
-#define DI_EXT 0x40
-#define LS_EXT 0x50
-#define MI_EXT 0x60
-
-struct est_timings {
- u8 t1;
- u8 t2;
- u8 mfg_rsvd;
-} __attribute__((packed));
-
-/* 00=16:10, 01=4:3, 10=5:4, 11=16:9 */
-#define EDID_TIMING_ASPECT_SHIFT 6
-#define EDID_TIMING_ASPECT_MASK (0x3 << EDID_TIMING_ASPECT_SHIFT)
-
-/* need to add 60 */
-#define EDID_TIMING_VFREQ_SHIFT 0
-#define EDID_TIMING_VFREQ_MASK (0x3f << EDID_TIMING_VFREQ_SHIFT)
-
-struct std_timing {
- u8 hsize; /* need to multiply by 8 then add 248 */
- u8 vfreq_aspect;
-} __attribute__((packed));
-
-#define DRM_EDID_PT_HSYNC_POSITIVE (1 << 1)
-#define DRM_EDID_PT_VSYNC_POSITIVE (1 << 2)
-#define DRM_EDID_PT_SEPARATE_SYNC (3 << 3)
-#define DRM_EDID_PT_STEREO (1 << 5)
-#define DRM_EDID_PT_INTERLACED (1 << 7)
-
-/* If detailed data is pixel timing */
-struct detailed_pixel_timing {
- u8 hactive_lo;
- u8 hblank_lo;
- u8 hactive_hblank_hi;
- u8 vactive_lo;
- u8 vblank_lo;
- u8 vactive_vblank_hi;
- u8 hsync_offset_lo;
- u8 hsync_pulse_width_lo;
- u8 vsync_offset_pulse_width_lo;
- u8 hsync_vsync_offset_pulse_width_hi;
- u8 width_mm_lo;
- u8 height_mm_lo;
- u8 width_height_mm_hi;
- u8 hborder;
- u8 vborder;
- u8 misc;
-} __attribute__((packed));
-
-/* If it's not pixel timing, it'll be one of the below */
-struct detailed_data_string {
- u8 str[13];
-} __attribute__((packed));
-
-struct detailed_data_monitor_range {
- u8 min_vfreq;
- u8 max_vfreq;
- u8 min_hfreq_khz;
- u8 max_hfreq_khz;
- u8 pixel_clock_mhz; /* need to multiply by 10 */
- __le16 sec_gtf_toggle; /* A000=use above, 20=use below */
- u8 hfreq_start_khz; /* need to multiply by 2 */
- u8 c; /* need to divide by 2 */
- __le16 m;
- u8 k;
- u8 j; /* need to divide by 2 */
-} __attribute__((packed));
-
-struct detailed_data_wpindex {
- u8 white_yx_lo; /* Lower 2 bits each */
- u8 white_x_hi;
- u8 white_y_hi;
- u8 gamma; /* need to divide by 100 then add 1 */
-} __attribute__((packed));
-
-struct detailed_data_color_point {
- u8 windex1;
- u8 wpindex1[3];
- u8 windex2;
- u8 wpindex2[3];
-} __attribute__((packed));
-
-struct cvt_timing {
- u8 code[3];
-} __attribute__((packed));
-
-struct detailed_non_pixel {
- u8 pad1;
- u8 type; /* ff=serial, fe=string, fd=monitor range, fc=monitor name
- fb=color point data, fa=standard timing data,
- f9=undefined, f8=mfg. reserved */
- u8 pad2;
- union {
- struct detailed_data_string str;
- struct detailed_data_monitor_range range;
- struct detailed_data_wpindex color;
- struct std_timing timings[6];
- struct cvt_timing cvt[4];
- } data;
-} __attribute__((packed));
-
-#define EDID_DETAIL_EST_TIMINGS 0xf7
-#define EDID_DETAIL_CVT_3BYTE 0xf8
-#define EDID_DETAIL_COLOR_MGMT_DATA 0xf9
-#define EDID_DETAIL_STD_MODES 0xfa
-#define EDID_DETAIL_MONITOR_CPDATA 0xfb
-#define EDID_DETAIL_MONITOR_NAME 0xfc
-#define EDID_DETAIL_MONITOR_RANGE 0xfd
-#define EDID_DETAIL_MONITOR_STRING 0xfe
-#define EDID_DETAIL_MONITOR_SERIAL 0xff
-
-struct detailed_timing {
- __le16 pixel_clock; /* need to multiply by 10 KHz */
- union {
- struct detailed_pixel_timing pixel_data;
- struct detailed_non_pixel other_data;
- } data;
-} __attribute__((packed));
-
-#define DRM_EDID_INPUT_SERRATION_VSYNC (1 << 0)
-#define DRM_EDID_INPUT_SYNC_ON_GREEN (1 << 1)
-#define DRM_EDID_INPUT_COMPOSITE_SYNC (1 << 2)
-#define DRM_EDID_INPUT_SEPARATE_SYNCS (1 << 3)
-#define DRM_EDID_INPUT_BLANK_TO_BLACK (1 << 4)
-#define DRM_EDID_INPUT_VIDEO_LEVEL (3 << 5)
-#define DRM_EDID_INPUT_DIGITAL (1 << 7)
-#define DRM_EDID_DIGITAL_DEPTH_MASK (7 << 4)
-#define DRM_EDID_DIGITAL_DEPTH_UNDEF (0 << 4)
-#define DRM_EDID_DIGITAL_DEPTH_6 (1 << 4)
-#define DRM_EDID_DIGITAL_DEPTH_8 (2 << 4)
-#define DRM_EDID_DIGITAL_DEPTH_10 (3 << 4)
-#define DRM_EDID_DIGITAL_DEPTH_12 (4 << 4)
-#define DRM_EDID_DIGITAL_DEPTH_14 (5 << 4)
-#define DRM_EDID_DIGITAL_DEPTH_16 (6 << 4)
-#define DRM_EDID_DIGITAL_DEPTH_RSVD (7 << 4)
-#define DRM_EDID_DIGITAL_TYPE_UNDEF (0)
-#define DRM_EDID_DIGITAL_TYPE_DVI (1)
-#define DRM_EDID_DIGITAL_TYPE_HDMI_A (2)
-#define DRM_EDID_DIGITAL_TYPE_HDMI_B (3)
-#define DRM_EDID_DIGITAL_TYPE_MDDI (4)
-#define DRM_EDID_DIGITAL_TYPE_DP (5)
-
-#define DRM_EDID_FEATURE_DEFAULT_GTF (1 << 0)
-#define DRM_EDID_FEATURE_PREFERRED_TIMING (1 << 1)
-#define DRM_EDID_FEATURE_STANDARD_COLOR (1 << 2)
-/* If analog */
-#define DRM_EDID_FEATURE_DISPLAY_TYPE (3 << 3) /* 00=mono, 01=rgb, 10=non-rgb, 11=unknown */
-/* If digital */
-#define DRM_EDID_FEATURE_COLOR_MASK (3 << 3)
-#define DRM_EDID_FEATURE_RGB (0 << 3)
-#define DRM_EDID_FEATURE_RGB_YCRCB444 (1 << 3)
-#define DRM_EDID_FEATURE_RGB_YCRCB422 (2 << 3)
-#define DRM_EDID_FEATURE_RGB_YCRCB (3 << 3) /* both 4:4:4 and 4:2:2 */
-
-#define DRM_EDID_FEATURE_PM_ACTIVE_OFF (1 << 5)
-#define DRM_EDID_FEATURE_PM_SUSPEND (1 << 6)
-#define DRM_EDID_FEATURE_PM_STANDBY (1 << 7)
-
-struct edid {
- u8 header[8];
- /* Vendor & product info */
- u8 mfg_id[2];
- u8 prod_code[2];
- u32 serial; /* FIXME: byte order */
- u8 mfg_week;
- u8 mfg_year;
- /* EDID version */
- u8 version;
- u8 revision;
- /* Display info: */
- u8 input;
- u8 width_cm;
- u8 height_cm;
- u8 gamma;
- u8 features;
- /* Color characteristics */
- u8 red_green_lo;
- u8 black_white_lo;
- u8 red_x;
- u8 red_y;
- u8 green_x;
- u8 green_y;
- u8 blue_x;
- u8 blue_y;
- u8 white_x;
- u8 white_y;
- /* Est. timings and mfg rsvd timings*/
- struct est_timings established_timings;
- /* Standard timings 1-8*/
- struct std_timing standard_timings[8];
- /* Detailing timings 1-4 */
- struct detailed_timing detailed_timings[4];
- /* Number of 128 byte ext. blocks */
- u8 extensions;
- /* Checksum */
- u8 checksum;
-} __attribute__((packed));
-
-#define EDID_PRODUCT_ID(e) ((e)->prod_code[0] | ((e)->prod_code[1] << 8))
-
-struct drm_encoder;
-struct drm_connector;
-struct drm_display_mode;
-void drm_edid_to_eld(struct drm_connector *connector, struct edid *edid);
-int drm_av_sync_delay(struct drm_connector *connector,
- struct drm_display_mode *mode);
-struct drm_connector *drm_select_eld(struct drm_encoder *encoder,
- struct drm_display_mode *mode);
-int drm_load_edid_firmware(struct drm_connector *connector);
-
-#endif /* __DRM_EDID_H__ */
diff --git a/ANDROID_3.4.5/include/drm/drm_encoder_slave.h b/ANDROID_3.4.5/include/drm/drm_encoder_slave.h
deleted file mode 100644
index 2f65633d..00000000
--- a/ANDROID_3.4.5/include/drm/drm_encoder_slave.h
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Copyright (C) 2009 Francisco Jerez.
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial
- * portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
- * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
- * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- */
-
-#ifndef __DRM_ENCODER_SLAVE_H__
-#define __DRM_ENCODER_SLAVE_H__
-
-#include "drmP.h"
-#include "drm_crtc.h"
-
-/**
- * struct drm_encoder_slave_funcs - Entry points exposed by a slave encoder driver
- * @set_config: Initialize any encoder-specific modesetting parameters.
- * The meaning of the @params parameter is implementation
- * dependent. It will usually be a structure with DVO port
- * data format settings or timings. It's not required for
- * the new parameters to take effect until the next mode
- * is set.
- *
- * Most of its members are analogous to the function pointers in
- * &drm_encoder_helper_funcs and they can optionally be used to
- * initialize the latter. Connector-like methods (e.g. @get_modes and
- * @set_property) will typically be wrapped around and only be called
- * if the encoder is the currently selected one for the connector.
- */
-struct drm_encoder_slave_funcs {
- void (*set_config)(struct drm_encoder *encoder,
- void *params);
-
- void (*destroy)(struct drm_encoder *encoder);
- void (*dpms)(struct drm_encoder *encoder, int mode);
- void (*save)(struct drm_encoder *encoder);
- void (*restore)(struct drm_encoder *encoder);
- bool (*mode_fixup)(struct drm_encoder *encoder,
- struct drm_display_mode *mode,
- struct drm_display_mode *adjusted_mode);
- int (*mode_valid)(struct drm_encoder *encoder,
- struct drm_display_mode *mode);
- void (*mode_set)(struct drm_encoder *encoder,
- struct drm_display_mode *mode,
- struct drm_display_mode *adjusted_mode);
-
- enum drm_connector_status (*detect)(struct drm_encoder *encoder,
- struct drm_connector *connector);
- int (*get_modes)(struct drm_encoder *encoder,
- struct drm_connector *connector);
- int (*create_resources)(struct drm_encoder *encoder,
- struct drm_connector *connector);
- int (*set_property)(struct drm_encoder *encoder,
- struct drm_connector *connector,
- struct drm_property *property,
- uint64_t val);
-
-};
-
-/**
- * struct drm_encoder_slave - Slave encoder struct
- * @base: DRM encoder object.
- * @slave_funcs: Slave encoder callbacks.
- * @slave_priv: Slave encoder private data.
- * @bus_priv: Bus specific data.
- *
- * A &drm_encoder_slave has two sets of callbacks, @slave_funcs and the
- * ones in @base. The former are never actually called by the common
- * CRTC code, it's just a convenience for splitting the encoder
- * functions in an upper, GPU-specific layer and a (hopefully)
- * GPU-agnostic lower layer: It's the GPU driver responsibility to
- * call the slave methods when appropriate.
- *
- * drm_i2c_encoder_init() provides a way to get an implementation of
- * this.
- */
-struct drm_encoder_slave {
- struct drm_encoder base;
-
- struct drm_encoder_slave_funcs *slave_funcs;
- void *slave_priv;
- void *bus_priv;
-};
-#define to_encoder_slave(x) container_of((x), struct drm_encoder_slave, base)
-
-int drm_i2c_encoder_init(struct drm_device *dev,
- struct drm_encoder_slave *encoder,
- struct i2c_adapter *adap,
- const struct i2c_board_info *info);
-
-
-/**
- * struct drm_i2c_encoder_driver
- *
- * Describes a device driver for an encoder connected to the GPU
- * through an I2C bus. In addition to the entry points in @i2c_driver
- * an @encoder_init function should be provided. It will be called to
- * give the driver an opportunity to allocate any per-encoder data
- * structures and to initialize the @slave_funcs and (optionally)
- * @slave_priv members of @encoder.
- */
-struct drm_i2c_encoder_driver {
- struct i2c_driver i2c_driver;
-
- int (*encoder_init)(struct i2c_client *client,
- struct drm_device *dev,
- struct drm_encoder_slave *encoder);
-
-};
-#define to_drm_i2c_encoder_driver(x) container_of((x), \
- struct drm_i2c_encoder_driver, \
- i2c_driver)
-
-/**
- * drm_i2c_encoder_get_client - Get the I2C client corresponding to an encoder
- */
-static inline struct i2c_client *drm_i2c_encoder_get_client(struct drm_encoder *encoder)
-{
- return (struct i2c_client *)to_encoder_slave(encoder)->bus_priv;
-}
-
-/**
- * drm_i2c_encoder_register - Register an I2C encoder driver
- * @owner: Module containing the driver.
- * @driver: Driver to be registered.
- */
-static inline int drm_i2c_encoder_register(struct module *owner,
- struct drm_i2c_encoder_driver *driver)
-{
- return i2c_register_driver(owner, &driver->i2c_driver);
-}
-
-/**
- * drm_i2c_encoder_unregister - Unregister an I2C encoder driver
- * @driver: Driver to be unregistered.
- */
-static inline void drm_i2c_encoder_unregister(struct drm_i2c_encoder_driver *driver)
-{
- i2c_del_driver(&driver->i2c_driver);
-}
-
-void drm_i2c_encoder_destroy(struct drm_encoder *encoder);
-
-#endif
diff --git a/ANDROID_3.4.5/include/drm/drm_fb_helper.h b/ANDROID_3.4.5/include/drm/drm_fb_helper.h
deleted file mode 100644
index 5120b01c..00000000
--- a/ANDROID_3.4.5/include/drm/drm_fb_helper.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright (c) 2006-2009 Red Hat Inc.
- * Copyright (c) 2006-2008 Intel Corporation
- * Copyright (c) 2007 Dave Airlie <airlied@linux.ie>
- *
- * DRM framebuffer helper functions
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting documentation, and
- * that the name of the copyright holders not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission. The copyright holders make no representations
- * about the suitability of this software for any purpose. It is provided "as
- * is" without express or implied warranty.
- *
- * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
- * OF THIS SOFTWARE.
- *
- * Authors:
- * Dave Airlie <airlied@linux.ie>
- * Jesse Barnes <jesse.barnes@intel.com>
- */
-#ifndef DRM_FB_HELPER_H
-#define DRM_FB_HELPER_H
-
-struct drm_fb_helper;
-
-#include <linux/kgdb.h>
-
-struct drm_fb_helper_crtc {
- struct drm_mode_set mode_set;
- struct drm_display_mode *desired_mode;
-};
-
-struct drm_fb_helper_surface_size {
- u32 fb_width;
- u32 fb_height;
- u32 surface_width;
- u32 surface_height;
- u32 surface_bpp;
- u32 surface_depth;
-};
-
-struct drm_fb_helper_funcs {
- void (*gamma_set)(struct drm_crtc *crtc, u16 red, u16 green,
- u16 blue, int regno);
- void (*gamma_get)(struct drm_crtc *crtc, u16 *red, u16 *green,
- u16 *blue, int regno);
-
- int (*fb_probe)(struct drm_fb_helper *helper,
- struct drm_fb_helper_surface_size *sizes);
-};
-
-struct drm_fb_helper_connector {
- struct drm_connector *connector;
- struct drm_cmdline_mode cmdline_mode;
-};
-
-struct drm_fb_helper {
- struct drm_framebuffer *fb;
- struct drm_framebuffer *saved_fb;
- struct drm_device *dev;
- struct drm_display_mode *mode;
- int crtc_count;
- struct drm_fb_helper_crtc *crtc_info;
- int connector_count;
- struct drm_fb_helper_connector **connector_info;
- struct drm_fb_helper_funcs *funcs;
- struct fb_info *fbdev;
- u32 pseudo_palette[17];
- struct list_head kernel_fb_list;
-
- /* we got a hotplug but fbdev wasn't running the console
- delay until next set_par */
- bool delayed_hotplug;
-};
-
-int drm_fb_helper_single_fb_probe(struct drm_fb_helper *helper,
- int preferred_bpp);
-
-int drm_fb_helper_init(struct drm_device *dev,
- struct drm_fb_helper *helper, int crtc_count,
- int max_conn);
-void drm_fb_helper_fini(struct drm_fb_helper *helper);
-int drm_fb_helper_blank(int blank, struct fb_info *info);
-int drm_fb_helper_pan_display(struct fb_var_screeninfo *var,
- struct fb_info *info);
-int drm_fb_helper_set_par(struct fb_info *info);
-int drm_fb_helper_check_var(struct fb_var_screeninfo *var,
- struct fb_info *info);
-int drm_fb_helper_setcolreg(unsigned regno,
- unsigned red,
- unsigned green,
- unsigned blue,
- unsigned transp,
- struct fb_info *info);
-
-bool drm_fb_helper_restore_fbdev_mode(struct drm_fb_helper *fb_helper);
-void drm_fb_helper_restore(void);
-void drm_fb_helper_fill_var(struct fb_info *info, struct drm_fb_helper *fb_helper,
- uint32_t fb_width, uint32_t fb_height);
-void drm_fb_helper_fill_fix(struct fb_info *info, uint32_t pitch,
- uint32_t depth);
-
-int drm_fb_helper_setcmap(struct fb_cmap *cmap, struct fb_info *info);
-
-int drm_fb_helper_hotplug_event(struct drm_fb_helper *fb_helper);
-bool drm_fb_helper_initial_config(struct drm_fb_helper *fb_helper, int bpp_sel);
-int drm_fb_helper_single_add_all_connectors(struct drm_fb_helper *fb_helper);
-int drm_fb_helper_debug_enter(struct fb_info *info);
-int drm_fb_helper_debug_leave(struct fb_info *info);
-
-#endif
diff --git a/ANDROID_3.4.5/include/drm/drm_fixed.h b/ANDROID_3.4.5/include/drm/drm_fixed.h
deleted file mode 100644
index 4a08a664..00000000
--- a/ANDROID_3.4.5/include/drm/drm_fixed.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright 2009 Red Hat Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- *
- * Authors: Dave Airlie
- */
-#ifndef DRM_FIXED_H
-#define DRM_FIXED_H
-
-typedef union dfixed {
- u32 full;
-} fixed20_12;
-
-
-#define dfixed_const(A) (u32)(((A) << 12))/* + ((B + 0.000122)*4096)) */
-#define dfixed_const_half(A) (u32)(((A) << 12) + 2048)
-#define dfixed_const_666(A) (u32)(((A) << 12) + 2731)
-#define dfixed_const_8(A) (u32)(((A) << 12) + 3277)
-#define dfixed_mul(A, B) ((u64)((u64)(A).full * (B).full + 2048) >> 12)
-#define dfixed_init(A) { .full = dfixed_const((A)) }
-#define dfixed_init_half(A) { .full = dfixed_const_half((A)) }
-#define dfixed_trunc(A) ((A).full >> 12)
-
-static inline u32 dfixed_floor(fixed20_12 A)
-{
- u32 non_frac = dfixed_trunc(A);
-
- return dfixed_const(non_frac);
-}
-
-static inline u32 dfixed_ceil(fixed20_12 A)
-{
- u32 non_frac = dfixed_trunc(A);
-
- if (A.full > dfixed_const(non_frac))
- return dfixed_const(non_frac + 1);
- else
- return dfixed_const(non_frac);
-}
-
-static inline u32 dfixed_div(fixed20_12 A, fixed20_12 B)
-{
- u64 tmp = ((u64)A.full << 13);
-
- do_div(tmp, B.full);
- tmp += 1;
- tmp /= 2;
- return lower_32_bits(tmp);
-}
-#endif
diff --git a/ANDROID_3.4.5/include/drm/drm_fourcc.h b/ANDROID_3.4.5/include/drm/drm_fourcc.h
deleted file mode 100644
index bdf0152c..00000000
--- a/ANDROID_3.4.5/include/drm/drm_fourcc.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Copyright 2011 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef DRM_FOURCC_H
-#define DRM_FOURCC_H
-
-#include <linux/types.h>
-
-#define fourcc_code(a, b, c, d) ((__u32)(a) | ((__u32)(b) << 8) | \
- ((__u32)(c) << 16) | ((__u32)(d) << 24))
-
-#define DRM_FORMAT_BIG_ENDIAN (1<<31) /* format is big endian instead of little endian */
-
-/* color index */
-#define DRM_FORMAT_C8 fourcc_code('C', '8', ' ', ' ') /* [7:0] C */
-
-/* 8 bpp RGB */
-#define DRM_FORMAT_RGB332 fourcc_code('R', 'G', 'B', '8') /* [7:0] R:G:B 3:3:2 */
-#define DRM_FORMAT_BGR233 fourcc_code('B', 'G', 'R', '8') /* [7:0] B:G:R 2:3:3 */
-
-/* 16 bpp RGB */
-#define DRM_FORMAT_XRGB4444 fourcc_code('X', 'R', '1', '2') /* [15:0] x:R:G:B 4:4:4:4 little endian */
-#define DRM_FORMAT_XBGR4444 fourcc_code('X', 'B', '1', '2') /* [15:0] x:B:G:R 4:4:4:4 little endian */
-#define DRM_FORMAT_RGBX4444 fourcc_code('R', 'X', '1', '2') /* [15:0] R:G:B:x 4:4:4:4 little endian */
-#define DRM_FORMAT_BGRX4444 fourcc_code('B', 'X', '1', '2') /* [15:0] B:G:R:x 4:4:4:4 little endian */
-
-#define DRM_FORMAT_ARGB4444 fourcc_code('A', 'R', '1', '2') /* [15:0] A:R:G:B 4:4:4:4 little endian */
-#define DRM_FORMAT_ABGR4444 fourcc_code('A', 'B', '1', '2') /* [15:0] A:B:G:R 4:4:4:4 little endian */
-#define DRM_FORMAT_RGBA4444 fourcc_code('R', 'A', '1', '2') /* [15:0] R:G:B:A 4:4:4:4 little endian */
-#define DRM_FORMAT_BGRA4444 fourcc_code('B', 'A', '1', '2') /* [15:0] B:G:R:A 4:4:4:4 little endian */
-
-#define DRM_FORMAT_XRGB1555 fourcc_code('X', 'R', '1', '5') /* [15:0] x:R:G:B 1:5:5:5 little endian */
-#define DRM_FORMAT_XBGR1555 fourcc_code('X', 'B', '1', '5') /* [15:0] x:B:G:R 1:5:5:5 little endian */
-#define DRM_FORMAT_RGBX5551 fourcc_code('R', 'X', '1', '5') /* [15:0] R:G:B:x 5:5:5:1 little endian */
-#define DRM_FORMAT_BGRX5551 fourcc_code('B', 'X', '1', '5') /* [15:0] B:G:R:x 5:5:5:1 little endian */
-
-#define DRM_FORMAT_ARGB1555 fourcc_code('A', 'R', '1', '5') /* [15:0] A:R:G:B 1:5:5:5 little endian */
-#define DRM_FORMAT_ABGR1555 fourcc_code('A', 'B', '1', '5') /* [15:0] A:B:G:R 1:5:5:5 little endian */
-#define DRM_FORMAT_RGBA5551 fourcc_code('R', 'A', '1', '5') /* [15:0] R:G:B:A 5:5:5:1 little endian */
-#define DRM_FORMAT_BGRA5551 fourcc_code('B', 'A', '1', '5') /* [15:0] B:G:R:A 5:5:5:1 little endian */
-
-#define DRM_FORMAT_RGB565 fourcc_code('R', 'G', '1', '6') /* [15:0] R:G:B 5:6:5 little endian */
-#define DRM_FORMAT_BGR565 fourcc_code('B', 'G', '1', '6') /* [15:0] B:G:R 5:6:5 little endian */
-
-/* 24 bpp RGB */
-#define DRM_FORMAT_RGB888 fourcc_code('R', 'G', '2', '4') /* [23:0] R:G:B little endian */
-#define DRM_FORMAT_BGR888 fourcc_code('B', 'G', '2', '4') /* [23:0] B:G:R little endian */
-
-/* 32 bpp RGB */
-#define DRM_FORMAT_XRGB8888 fourcc_code('X', 'R', '2', '4') /* [31:0] x:R:G:B 8:8:8:8 little endian */
-#define DRM_FORMAT_XBGR8888 fourcc_code('X', 'B', '2', '4') /* [31:0] x:B:G:R 8:8:8:8 little endian */
-#define DRM_FORMAT_RGBX8888 fourcc_code('R', 'X', '2', '4') /* [31:0] R:G:B:x 8:8:8:8 little endian */
-#define DRM_FORMAT_BGRX8888 fourcc_code('B', 'X', '2', '4') /* [31:0] B:G:R:x 8:8:8:8 little endian */
-
-#define DRM_FORMAT_ARGB8888 fourcc_code('A', 'R', '2', '4') /* [31:0] A:R:G:B 8:8:8:8 little endian */
-#define DRM_FORMAT_ABGR8888 fourcc_code('A', 'B', '2', '4') /* [31:0] A:B:G:R 8:8:8:8 little endian */
-#define DRM_FORMAT_RGBA8888 fourcc_code('R', 'A', '2', '4') /* [31:0] R:G:B:A 8:8:8:8 little endian */
-#define DRM_FORMAT_BGRA8888 fourcc_code('B', 'A', '2', '4') /* [31:0] B:G:R:A 8:8:8:8 little endian */
-
-#define DRM_FORMAT_XRGB2101010 fourcc_code('X', 'R', '3', '0') /* [31:0] x:R:G:B 2:10:10:10 little endian */
-#define DRM_FORMAT_XBGR2101010 fourcc_code('X', 'B', '3', '0') /* [31:0] x:B:G:R 2:10:10:10 little endian */
-#define DRM_FORMAT_RGBX1010102 fourcc_code('R', 'X', '3', '0') /* [31:0] R:G:B:x 10:10:10:2 little endian */
-#define DRM_FORMAT_BGRX1010102 fourcc_code('B', 'X', '3', '0') /* [31:0] B:G:R:x 10:10:10:2 little endian */
-
-#define DRM_FORMAT_ARGB2101010 fourcc_code('A', 'R', '3', '0') /* [31:0] A:R:G:B 2:10:10:10 little endian */
-#define DRM_FORMAT_ABGR2101010 fourcc_code('A', 'B', '3', '0') /* [31:0] A:B:G:R 2:10:10:10 little endian */
-#define DRM_FORMAT_RGBA1010102 fourcc_code('R', 'A', '3', '0') /* [31:0] R:G:B:A 10:10:10:2 little endian */
-#define DRM_FORMAT_BGRA1010102 fourcc_code('B', 'A', '3', '0') /* [31:0] B:G:R:A 10:10:10:2 little endian */
-
-/* packed YCbCr */
-#define DRM_FORMAT_YUYV fourcc_code('Y', 'U', 'Y', 'V') /* [31:0] Cr0:Y1:Cb0:Y0 8:8:8:8 little endian */
-#define DRM_FORMAT_YVYU fourcc_code('Y', 'V', 'Y', 'U') /* [31:0] Cb0:Y1:Cr0:Y0 8:8:8:8 little endian */
-#define DRM_FORMAT_UYVY fourcc_code('U', 'Y', 'V', 'Y') /* [31:0] Y1:Cr0:Y0:Cb0 8:8:8:8 little endian */
-#define DRM_FORMAT_VYUY fourcc_code('V', 'Y', 'U', 'Y') /* [31:0] Y1:Cb0:Y0:Cr0 8:8:8:8 little endian */
-
-#define DRM_FORMAT_AYUV fourcc_code('A', 'Y', 'U', 'V') /* [31:0] A:Y:Cb:Cr 8:8:8:8 little endian */
-
-/*
- * 2 plane YCbCr
- * index 0 = Y plane, [7:0] Y
- * index 1 = Cr:Cb plane, [15:0] Cr:Cb little endian
- * or
- * index 1 = Cb:Cr plane, [15:0] Cb:Cr little endian
- */
-#define DRM_FORMAT_NV12 fourcc_code('N', 'V', '1', '2') /* 2x2 subsampled Cr:Cb plane */
-#define DRM_FORMAT_NV21 fourcc_code('N', 'V', '2', '1') /* 2x2 subsampled Cb:Cr plane */
-#define DRM_FORMAT_NV16 fourcc_code('N', 'V', '1', '6') /* 2x1 subsampled Cr:Cb plane */
-#define DRM_FORMAT_NV61 fourcc_code('N', 'V', '6', '1') /* 2x1 subsampled Cb:Cr plane */
-
-/* 2 non contiguous plane YCbCr */
-#define DRM_FORMAT_NV12M fourcc_code('N', 'M', '1', '2') /* 2x2 subsampled Cr:Cb plane */
-#define DRM_FORMAT_NV12MT fourcc_code('T', 'M', '1', '2') /* 2x2 subsampled Cr:Cb plane 64x32 macroblocks */
-
-/*
- * 3 plane YCbCr
- * index 0: Y plane, [7:0] Y
- * index 1: Cb plane, [7:0] Cb
- * index 2: Cr plane, [7:0] Cr
- * or
- * index 1: Cr plane, [7:0] Cr
- * index 2: Cb plane, [7:0] Cb
- */
-#define DRM_FORMAT_YUV410 fourcc_code('Y', 'U', 'V', '9') /* 4x4 subsampled Cb (1) and Cr (2) planes */
-#define DRM_FORMAT_YVU410 fourcc_code('Y', 'V', 'U', '9') /* 4x4 subsampled Cr (1) and Cb (2) planes */
-#define DRM_FORMAT_YUV411 fourcc_code('Y', 'U', '1', '1') /* 4x1 subsampled Cb (1) and Cr (2) planes */
-#define DRM_FORMAT_YVU411 fourcc_code('Y', 'V', '1', '1') /* 4x1 subsampled Cr (1) and Cb (2) planes */
-#define DRM_FORMAT_YUV420 fourcc_code('Y', 'U', '1', '2') /* 2x2 subsampled Cb (1) and Cr (2) planes */
-#define DRM_FORMAT_YVU420 fourcc_code('Y', 'V', '1', '2') /* 2x2 subsampled Cr (1) and Cb (2) planes */
-#define DRM_FORMAT_YUV422 fourcc_code('Y', 'U', '1', '6') /* 2x1 subsampled Cb (1) and Cr (2) planes */
-#define DRM_FORMAT_YVU422 fourcc_code('Y', 'V', '1', '6') /* 2x1 subsampled Cr (1) and Cb (2) planes */
-#define DRM_FORMAT_YUV444 fourcc_code('Y', 'U', '2', '4') /* non-subsampled Cb (1) and Cr (2) planes */
-#define DRM_FORMAT_YVU444 fourcc_code('Y', 'V', '2', '4') /* non-subsampled Cr (1) and Cb (2) planes */
-
-/* 3 non contiguous plane YCbCr */
-#define DRM_FORMAT_YUV420M fourcc_code('Y', 'M', '1', '2') /* 2x2 subsampled Cb (1) and Cr (2) planes */
-
-#endif /* DRM_FOURCC_H */
diff --git a/ANDROID_3.4.5/include/drm/drm_global.h b/ANDROID_3.4.5/include/drm/drm_global.h
deleted file mode 100644
index a06805ea..00000000
--- a/ANDROID_3.4.5/include/drm/drm_global.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/**************************************************************************
- *
- * Copyright 2008-2009 VMware, Inc., Palo Alto, CA., USA
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- * USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- **************************************************************************/
-/*
- * Authors: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
- */
-
-#ifndef _DRM_GLOBAL_H_
-#define _DRM_GLOBAL_H_
-enum drm_global_types {
- DRM_GLOBAL_TTM_MEM = 0,
- DRM_GLOBAL_TTM_BO,
- DRM_GLOBAL_TTM_OBJECT,
- DRM_GLOBAL_NUM
-};
-
-struct drm_global_reference {
- enum drm_global_types global_type;
- size_t size;
- void *object;
- int (*init) (struct drm_global_reference *);
- void (*release) (struct drm_global_reference *);
-};
-
-extern void drm_global_init(void);
-extern void drm_global_release(void);
-extern int drm_global_item_ref(struct drm_global_reference *ref);
-extern void drm_global_item_unref(struct drm_global_reference *ref);
-
-#endif
diff --git a/ANDROID_3.4.5/include/drm/drm_hashtab.h b/ANDROID_3.4.5/include/drm/drm_hashtab.h
deleted file mode 100644
index 3650d5d0..00000000
--- a/ANDROID_3.4.5/include/drm/drm_hashtab.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/**************************************************************************
- *
- * Copyright 2006 Tungsten Graphics, Inc., Bismack, ND. USA.
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- * USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- *
- **************************************************************************/
-/*
- * Simple open hash tab implementation.
- *
- * Authors:
- * Thomas Hellström <thomas-at-tungstengraphics-dot-com>
- */
-
-#ifndef DRM_HASHTAB_H
-#define DRM_HASHTAB_H
-
-#include <linux/list.h>
-
-#define drm_hash_entry(_ptr, _type, _member) container_of(_ptr, _type, _member)
-
-struct drm_hash_item {
- struct hlist_node head;
- unsigned long key;
-};
-
-struct drm_open_hash {
- struct hlist_head *table;
- u8 order;
-};
-
-extern int drm_ht_create(struct drm_open_hash *ht, unsigned int order);
-extern int drm_ht_insert_item(struct drm_open_hash *ht, struct drm_hash_item *item);
-extern int drm_ht_just_insert_please(struct drm_open_hash *ht, struct drm_hash_item *item,
- unsigned long seed, int bits, int shift,
- unsigned long add);
-extern int drm_ht_find_item(struct drm_open_hash *ht, unsigned long key, struct drm_hash_item **item);
-
-extern void drm_ht_verbose_list(struct drm_open_hash *ht, unsigned long key);
-extern int drm_ht_remove_key(struct drm_open_hash *ht, unsigned long key);
-extern int drm_ht_remove_item(struct drm_open_hash *ht, struct drm_hash_item *item);
-extern void drm_ht_remove(struct drm_open_hash *ht);
-
-
-#endif
diff --git a/ANDROID_3.4.5/include/drm/drm_mem_util.h b/ANDROID_3.4.5/include/drm/drm_mem_util.h
deleted file mode 100644
index 6bd325fe..00000000
--- a/ANDROID_3.4.5/include/drm/drm_mem_util.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- * Jesse Barnes <jbarnes@virtuousgeek.org>
- *
- */
-#ifndef _DRM_MEM_UTIL_H_
-#define _DRM_MEM_UTIL_H_
-
-#include <linux/vmalloc.h>
-
-static __inline__ void *drm_calloc_large(size_t nmemb, size_t size)
-{
- if (size != 0 && nmemb > ULONG_MAX / size)
- return NULL;
-
- if (size * nmemb <= PAGE_SIZE)
- return kcalloc(nmemb, size, GFP_KERNEL);
-
- return __vmalloc(size * nmemb,
- GFP_KERNEL | __GFP_HIGHMEM | __GFP_ZERO, PAGE_KERNEL);
-}
-
-/* Modeled after cairo's malloc_ab, it's like calloc but without the zeroing. */
-static __inline__ void *drm_malloc_ab(size_t nmemb, size_t size)
-{
- if (size != 0 && nmemb > ULONG_MAX / size)
- return NULL;
-
- if (size * nmemb <= PAGE_SIZE)
- return kmalloc(nmemb * size, GFP_KERNEL);
-
- return __vmalloc(size * nmemb,
- GFP_KERNEL | __GFP_HIGHMEM, PAGE_KERNEL);
-}
-
-static __inline void drm_free_large(void *ptr)
-{
- if (!is_vmalloc_addr(ptr))
- return kfree(ptr);
-
- vfree(ptr);
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/drm/drm_memory.h b/ANDROID_3.4.5/include/drm/drm_memory.h
deleted file mode 100644
index 15af9b32..00000000
--- a/ANDROID_3.4.5/include/drm/drm_memory.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/**
- * \file drm_memory.h
- * Memory management wrappers for DRM
- *
- * \author Rickard E. (Rik) Faith <faith@valinux.com>
- * \author Gareth Hughes <gareth@valinux.com>
- */
-
-/*
- * Created: Thu Feb 4 14:00:34 1999 by faith@valinux.com
- *
- * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
- * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#include <linux/highmem.h>
-#include <linux/vmalloc.h>
-#include "drmP.h"
-
-/**
- * Cut down version of drm_memory_debug.h, which used to be called
- * drm_memory.h.
- */
-
-#if __OS_HAS_AGP
-
-#ifdef HAVE_PAGE_AGP
-#include <asm/agp.h>
-#else
-# ifdef __powerpc__
-# define PAGE_AGP __pgprot(_PAGE_KERNEL | _PAGE_NO_CACHE)
-# else
-# define PAGE_AGP PAGE_KERNEL
-# endif
-#endif
-
-#else /* __OS_HAS_AGP */
-
-#endif
diff --git a/ANDROID_3.4.5/include/drm/drm_mm.h b/ANDROID_3.4.5/include/drm/drm_mm.h
deleted file mode 100644
index 564b14aa..00000000
--- a/ANDROID_3.4.5/include/drm/drm_mm.h
+++ /dev/null
@@ -1,188 +0,0 @@
-/**************************************************************************
- *
- * Copyright 2006-2008 Tungsten Graphics, Inc., Cedar Park, TX. USA.
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- * USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- *
- **************************************************************************/
-/*
- * Authors:
- * Thomas Hellstrom <thomas-at-tungstengraphics-dot-com>
- */
-
-#ifndef _DRM_MM_H_
-#define _DRM_MM_H_
-
-/*
- * Generic range manager structs
- */
-#include <linux/list.h>
-#ifdef CONFIG_DEBUG_FS
-#include <linux/seq_file.h>
-#endif
-
-struct drm_mm_node {
- struct list_head node_list;
- struct list_head hole_stack;
- unsigned hole_follows : 1;
- unsigned scanned_block : 1;
- unsigned scanned_prev_free : 1;
- unsigned scanned_next_free : 1;
- unsigned scanned_preceeds_hole : 1;
- unsigned allocated : 1;
- unsigned long start;
- unsigned long size;
- struct drm_mm *mm;
-};
-
-struct drm_mm {
- /* List of all memory nodes that immediately precede a free hole. */
- struct list_head hole_stack;
- /* head_node.node_list is the list of all memory nodes, ordered
- * according to the (increasing) start address of the memory node. */
- struct drm_mm_node head_node;
- struct list_head unused_nodes;
- int num_unused;
- spinlock_t unused_lock;
- unsigned int scan_check_range : 1;
- unsigned scan_alignment;
- unsigned long scan_size;
- unsigned long scan_hit_start;
- unsigned scan_hit_size;
- unsigned scanned_blocks;
- unsigned long scan_start;
- unsigned long scan_end;
- struct drm_mm_node *prev_scanned_node;
-};
-
-static inline bool drm_mm_node_allocated(struct drm_mm_node *node)
-{
- return node->allocated;
-}
-
-static inline bool drm_mm_initialized(struct drm_mm *mm)
-{
- return mm->hole_stack.next;
-}
-#define drm_mm_for_each_node(entry, mm) list_for_each_entry(entry, \
- &(mm)->head_node.node_list, \
- node_list)
-#define drm_mm_for_each_scanned_node_reverse(entry, n, mm) \
- for (entry = (mm)->prev_scanned_node, \
- next = entry ? list_entry(entry->node_list.next, \
- struct drm_mm_node, node_list) : NULL; \
- entry != NULL; entry = next, \
- next = entry ? list_entry(entry->node_list.next, \
- struct drm_mm_node, node_list) : NULL) \
-/*
- * Basic range manager support (drm_mm.c)
- */
-extern struct drm_mm_node *drm_mm_get_block_generic(struct drm_mm_node *node,
- unsigned long size,
- unsigned alignment,
- int atomic);
-extern struct drm_mm_node *drm_mm_get_block_range_generic(
- struct drm_mm_node *node,
- unsigned long size,
- unsigned alignment,
- unsigned long start,
- unsigned long end,
- int atomic);
-static inline struct drm_mm_node *drm_mm_get_block(struct drm_mm_node *parent,
- unsigned long size,
- unsigned alignment)
-{
- return drm_mm_get_block_generic(parent, size, alignment, 0);
-}
-static inline struct drm_mm_node *drm_mm_get_block_atomic(struct drm_mm_node *parent,
- unsigned long size,
- unsigned alignment)
-{
- return drm_mm_get_block_generic(parent, size, alignment, 1);
-}
-static inline struct drm_mm_node *drm_mm_get_block_range(
- struct drm_mm_node *parent,
- unsigned long size,
- unsigned alignment,
- unsigned long start,
- unsigned long end)
-{
- return drm_mm_get_block_range_generic(parent, size, alignment,
- start, end, 0);
-}
-static inline struct drm_mm_node *drm_mm_get_block_atomic_range(
- struct drm_mm_node *parent,
- unsigned long size,
- unsigned alignment,
- unsigned long start,
- unsigned long end)
-{
- return drm_mm_get_block_range_generic(parent, size, alignment,
- start, end, 1);
-}
-extern int drm_mm_insert_node(struct drm_mm *mm, struct drm_mm_node *node,
- unsigned long size, unsigned alignment);
-extern int drm_mm_insert_node_in_range(struct drm_mm *mm,
- struct drm_mm_node *node,
- unsigned long size, unsigned alignment,
- unsigned long start, unsigned long end);
-extern void drm_mm_put_block(struct drm_mm_node *cur);
-extern void drm_mm_remove_node(struct drm_mm_node *node);
-extern void drm_mm_replace_node(struct drm_mm_node *old, struct drm_mm_node *new);
-extern struct drm_mm_node *drm_mm_search_free(const struct drm_mm *mm,
- unsigned long size,
- unsigned alignment,
- int best_match);
-extern struct drm_mm_node *drm_mm_search_free_in_range(
- const struct drm_mm *mm,
- unsigned long size,
- unsigned alignment,
- unsigned long start,
- unsigned long end,
- int best_match);
-extern int drm_mm_init(struct drm_mm *mm, unsigned long start,
- unsigned long size);
-extern void drm_mm_takedown(struct drm_mm *mm);
-extern int drm_mm_clean(struct drm_mm *mm);
-extern int drm_mm_pre_get(struct drm_mm *mm);
-
-static inline struct drm_mm *drm_get_mm(struct drm_mm_node *block)
-{
- return block->mm;
-}
-
-void drm_mm_init_scan(struct drm_mm *mm, unsigned long size,
- unsigned alignment);
-void drm_mm_init_scan_with_range(struct drm_mm *mm, unsigned long size,
- unsigned alignment,
- unsigned long start,
- unsigned long end);
-int drm_mm_scan_add_block(struct drm_mm_node *node);
-int drm_mm_scan_remove_block(struct drm_mm_node *node);
-
-extern void drm_mm_debug_table(struct drm_mm *mm, const char *prefix);
-#ifdef CONFIG_DEBUG_FS
-int drm_mm_dump_table(struct seq_file *m, struct drm_mm *mm);
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/drm/drm_mode.h b/ANDROID_3.4.5/include/drm/drm_mode.h
deleted file mode 100644
index 4a0aae38..00000000
--- a/ANDROID_3.4.5/include/drm/drm_mode.h
+++ /dev/null
@@ -1,446 +0,0 @@
-/*
- * Copyright (c) 2007 Dave Airlie <airlied@linux.ie>
- * Copyright (c) 2007 Jakob Bornecrantz <wallbraker@gmail.com>
- * Copyright (c) 2008 Red Hat Inc.
- * Copyright (c) 2007-2008 Tungsten Graphics, Inc., Cedar Park, TX., USA
- * Copyright (c) 2007-2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-
-#ifndef _DRM_MODE_H
-#define _DRM_MODE_H
-
-#include <linux/types.h>
-
-#define DRM_DISPLAY_INFO_LEN 32
-#define DRM_CONNECTOR_NAME_LEN 32
-#define DRM_DISPLAY_MODE_LEN 32
-#define DRM_PROP_NAME_LEN 32
-
-#define DRM_MODE_TYPE_BUILTIN (1<<0)
-#define DRM_MODE_TYPE_CLOCK_C ((1<<1) | DRM_MODE_TYPE_BUILTIN)
-#define DRM_MODE_TYPE_CRTC_C ((1<<2) | DRM_MODE_TYPE_BUILTIN)
-#define DRM_MODE_TYPE_PREFERRED (1<<3)
-#define DRM_MODE_TYPE_DEFAULT (1<<4)
-#define DRM_MODE_TYPE_USERDEF (1<<5)
-#define DRM_MODE_TYPE_DRIVER (1<<6)
-
-/* Video mode flags */
-/* bit compatible with the xorg definitions. */
-#define DRM_MODE_FLAG_PHSYNC (1<<0)
-#define DRM_MODE_FLAG_NHSYNC (1<<1)
-#define DRM_MODE_FLAG_PVSYNC (1<<2)
-#define DRM_MODE_FLAG_NVSYNC (1<<3)
-#define DRM_MODE_FLAG_INTERLACE (1<<4)
-#define DRM_MODE_FLAG_DBLSCAN (1<<5)
-#define DRM_MODE_FLAG_CSYNC (1<<6)
-#define DRM_MODE_FLAG_PCSYNC (1<<7)
-#define DRM_MODE_FLAG_NCSYNC (1<<8)
-#define DRM_MODE_FLAG_HSKEW (1<<9) /* hskew provided */
-#define DRM_MODE_FLAG_BCAST (1<<10)
-#define DRM_MODE_FLAG_PIXMUX (1<<11)
-#define DRM_MODE_FLAG_DBLCLK (1<<12)
-#define DRM_MODE_FLAG_CLKDIV2 (1<<13)
-
-/* DPMS flags */
-/* bit compatible with the xorg definitions. */
-#define DRM_MODE_DPMS_ON 0
-#define DRM_MODE_DPMS_STANDBY 1
-#define DRM_MODE_DPMS_SUSPEND 2
-#define DRM_MODE_DPMS_OFF 3
-
-/* Scaling mode options */
-#define DRM_MODE_SCALE_NONE 0 /* Unmodified timing (display or
- software can still scale) */
-#define DRM_MODE_SCALE_FULLSCREEN 1 /* Full screen, ignore aspect */
-#define DRM_MODE_SCALE_CENTER 2 /* Centered, no scaling */
-#define DRM_MODE_SCALE_ASPECT 3 /* Full screen, preserve aspect */
-
-/* Dithering mode options */
-#define DRM_MODE_DITHERING_OFF 0
-#define DRM_MODE_DITHERING_ON 1
-#define DRM_MODE_DITHERING_AUTO 2
-
-/* Dirty info options */
-#define DRM_MODE_DIRTY_OFF 0
-#define DRM_MODE_DIRTY_ON 1
-#define DRM_MODE_DIRTY_ANNOTATE 2
-
-struct drm_mode_modeinfo {
- __u32 clock;
- __u16 hdisplay, hsync_start, hsync_end, htotal, hskew;
- __u16 vdisplay, vsync_start, vsync_end, vtotal, vscan;
-
- __u32 vrefresh;
-
- __u32 flags;
- __u32 type;
- char name[DRM_DISPLAY_MODE_LEN];
-};
-
-struct drm_mode_card_res {
- __u64 fb_id_ptr;
- __u64 crtc_id_ptr;
- __u64 connector_id_ptr;
- __u64 encoder_id_ptr;
- __u32 count_fbs;
- __u32 count_crtcs;
- __u32 count_connectors;
- __u32 count_encoders;
- __u32 min_width, max_width;
- __u32 min_height, max_height;
-};
-
-struct drm_mode_crtc {
- __u64 set_connectors_ptr;
- __u32 count_connectors;
-
- __u32 crtc_id; /**< Id */
- __u32 fb_id; /**< Id of framebuffer */
-
- __u32 x, y; /**< Position on the frameuffer */
-
- __u32 gamma_size;
- __u32 mode_valid;
- struct drm_mode_modeinfo mode;
-};
-
-#define DRM_MODE_PRESENT_TOP_FIELD (1<<0)
-#define DRM_MODE_PRESENT_BOTTOM_FIELD (1<<1)
-
-/* Planes blend with or override other bits on the CRTC */
-struct drm_mode_set_plane {
- __u32 plane_id;
- __u32 crtc_id;
- __u32 fb_id; /* fb object contains surface format type */
- __u32 flags; /* see above flags */
-
- /* Signed dest location allows it to be partially off screen */
- __s32 crtc_x, crtc_y;
- __u32 crtc_w, crtc_h;
-
- /* Source values are 16.16 fixed point */
- __u32 src_x, src_y;
- __u32 src_h, src_w;
-};
-
-struct drm_mode_get_plane {
- __u32 plane_id;
-
- __u32 crtc_id;
- __u32 fb_id;
-
- __u32 possible_crtcs;
- __u32 gamma_size;
-
- __u32 count_format_types;
- __u64 format_type_ptr;
-};
-
-struct drm_mode_get_plane_res {
- __u64 plane_id_ptr;
- __u32 count_planes;
-};
-
-#define DRM_MODE_ENCODER_NONE 0
-#define DRM_MODE_ENCODER_DAC 1
-#define DRM_MODE_ENCODER_TMDS 2
-#define DRM_MODE_ENCODER_LVDS 3
-#define DRM_MODE_ENCODER_TVDAC 4
-#define DRM_MODE_ENCODER_VIRTUAL 5
-
-struct drm_mode_get_encoder {
- __u32 encoder_id;
- __u32 encoder_type;
-
- __u32 crtc_id; /**< Id of crtc */
-
- __u32 possible_crtcs;
- __u32 possible_clones;
-};
-
-/* This is for connectors with multiple signal types. */
-/* Try to match DRM_MODE_CONNECTOR_X as closely as possible. */
-#define DRM_MODE_SUBCONNECTOR_Automatic 0
-#define DRM_MODE_SUBCONNECTOR_Unknown 0
-#define DRM_MODE_SUBCONNECTOR_DVID 3
-#define DRM_MODE_SUBCONNECTOR_DVIA 4
-#define DRM_MODE_SUBCONNECTOR_Composite 5
-#define DRM_MODE_SUBCONNECTOR_SVIDEO 6
-#define DRM_MODE_SUBCONNECTOR_Component 8
-#define DRM_MODE_SUBCONNECTOR_SCART 9
-
-#define DRM_MODE_CONNECTOR_Unknown 0
-#define DRM_MODE_CONNECTOR_VGA 1
-#define DRM_MODE_CONNECTOR_DVII 2
-#define DRM_MODE_CONNECTOR_DVID 3
-#define DRM_MODE_CONNECTOR_DVIA 4
-#define DRM_MODE_CONNECTOR_Composite 5
-#define DRM_MODE_CONNECTOR_SVIDEO 6
-#define DRM_MODE_CONNECTOR_LVDS 7
-#define DRM_MODE_CONNECTOR_Component 8
-#define DRM_MODE_CONNECTOR_9PinDIN 9
-#define DRM_MODE_CONNECTOR_DisplayPort 10
-#define DRM_MODE_CONNECTOR_HDMIA 11
-#define DRM_MODE_CONNECTOR_HDMIB 12
-#define DRM_MODE_CONNECTOR_TV 13
-#define DRM_MODE_CONNECTOR_eDP 14
-#define DRM_MODE_CONNECTOR_VIRTUAL 15
-
-struct drm_mode_get_connector {
-
- __u64 encoders_ptr;
- __u64 modes_ptr;
- __u64 props_ptr;
- __u64 prop_values_ptr;
-
- __u32 count_modes;
- __u32 count_props;
- __u32 count_encoders;
-
- __u32 encoder_id; /**< Current Encoder */
- __u32 connector_id; /**< Id */
- __u32 connector_type;
- __u32 connector_type_id;
-
- __u32 connection;
- __u32 mm_width, mm_height; /**< HxW in millimeters */
- __u32 subpixel;
-};
-
-#define DRM_MODE_PROP_PENDING (1<<0)
-#define DRM_MODE_PROP_RANGE (1<<1)
-#define DRM_MODE_PROP_IMMUTABLE (1<<2)
-#define DRM_MODE_PROP_ENUM (1<<3) /* enumerated type with text strings */
-#define DRM_MODE_PROP_BLOB (1<<4)
-
-struct drm_mode_property_enum {
- __u64 value;
- char name[DRM_PROP_NAME_LEN];
-};
-
-struct drm_mode_get_property {
- __u64 values_ptr; /* values and blob lengths */
- __u64 enum_blob_ptr; /* enum and blob id ptrs */
-
- __u32 prop_id;
- __u32 flags;
- char name[DRM_PROP_NAME_LEN];
-
- __u32 count_values;
- __u32 count_enum_blobs;
-};
-
-struct drm_mode_connector_set_property {
- __u64 value;
- __u32 prop_id;
- __u32 connector_id;
-};
-
-struct drm_mode_get_blob {
- __u32 blob_id;
- __u32 length;
- __u64 data;
-};
-
-struct drm_mode_fb_cmd {
- __u32 fb_id;
- __u32 width, height;
- __u32 pitch;
- __u32 bpp;
- __u32 depth;
- /* driver specific handle */
- __u32 handle;
-};
-
-#define DRM_MODE_FB_INTERLACED (1<<0) /* for interlaced framebuffers */
-
-struct drm_mode_fb_cmd2 {
- __u32 fb_id;
- __u32 width, height;
- __u32 pixel_format; /* fourcc code from drm_fourcc.h */
- __u32 flags; /* see above flags */
-
- /*
- * In case of planar formats, this ioctl allows up to 4
- * buffer objects with offets and pitches per plane.
- * The pitch and offset order is dictated by the fourcc,
- * e.g. NV12 (http://fourcc.org/yuv.php#NV12) is described as:
- *
- * YUV 4:2:0 image with a plane of 8 bit Y samples
- * followed by an interleaved U/V plane containing
- * 8 bit 2x2 subsampled colour difference samples.
- *
- * So it would consist of Y as offset[0] and UV as
- * offeset[1]. Note that offset[0] will generally
- * be 0.
- */
- __u32 handles[4];
- __u32 pitches[4]; /* pitch for each plane */
- __u32 offsets[4]; /* offset of each plane */
-};
-
-#define DRM_MODE_FB_DIRTY_ANNOTATE_COPY 0x01
-#define DRM_MODE_FB_DIRTY_ANNOTATE_FILL 0x02
-#define DRM_MODE_FB_DIRTY_FLAGS 0x03
-
-#define DRM_MODE_FB_DIRTY_MAX_CLIPS 256
-
-/*
- * Mark a region of a framebuffer as dirty.
- *
- * Some hardware does not automatically update display contents
- * as a hardware or software draw to a framebuffer. This ioctl
- * allows userspace to tell the kernel and the hardware what
- * regions of the framebuffer have changed.
- *
- * The kernel or hardware is free to update more then just the
- * region specified by the clip rects. The kernel or hardware
- * may also delay and/or coalesce several calls to dirty into a
- * single update.
- *
- * Userspace may annotate the updates, the annotates are a
- * promise made by the caller that the change is either a copy
- * of pixels or a fill of a single color in the region specified.
- *
- * If the DRM_MODE_FB_DIRTY_ANNOTATE_COPY flag is given then
- * the number of updated regions are half of num_clips given,
- * where the clip rects are paired in src and dst. The width and
- * height of each one of the pairs must match.
- *
- * If the DRM_MODE_FB_DIRTY_ANNOTATE_FILL flag is given the caller
- * promises that the region specified of the clip rects is filled
- * completely with a single color as given in the color argument.
- */
-
-struct drm_mode_fb_dirty_cmd {
- __u32 fb_id;
- __u32 flags;
- __u32 color;
- __u32 num_clips;
- __u64 clips_ptr;
-};
-
-struct drm_mode_mode_cmd {
- __u32 connector_id;
- struct drm_mode_modeinfo mode;
-};
-
-#define DRM_MODE_CURSOR_BO (1<<0)
-#define DRM_MODE_CURSOR_MOVE (1<<1)
-
-/*
- * depending on the value in flags different members are used.
- *
- * CURSOR_BO uses
- * crtc
- * width
- * height
- * handle - if 0 turns the cursor of
- *
- * CURSOR_MOVE uses
- * crtc
- * x
- * y
- */
-struct drm_mode_cursor {
- __u32 flags;
- __u32 crtc_id;
- __s32 x;
- __s32 y;
- __u32 width;
- __u32 height;
- /* driver specific handle */
- __u32 handle;
-};
-
-struct drm_mode_crtc_lut {
- __u32 crtc_id;
- __u32 gamma_size;
-
- /* pointers to arrays */
- __u64 red;
- __u64 green;
- __u64 blue;
-};
-
-#define DRM_MODE_PAGE_FLIP_EVENT 0x01
-#define DRM_MODE_PAGE_FLIP_FLAGS DRM_MODE_PAGE_FLIP_EVENT
-
-/*
- * Request a page flip on the specified crtc.
- *
- * This ioctl will ask KMS to schedule a page flip for the specified
- * crtc. Once any pending rendering targeting the specified fb (as of
- * ioctl time) has completed, the crtc will be reprogrammed to display
- * that fb after the next vertical refresh. The ioctl returns
- * immediately, but subsequent rendering to the current fb will block
- * in the execbuffer ioctl until the page flip happens. If a page
- * flip is already pending as the ioctl is called, EBUSY will be
- * returned.
- *
- * The ioctl supports one flag, DRM_MODE_PAGE_FLIP_EVENT, which will
- * request that drm sends back a vblank event (see drm.h: struct
- * drm_event_vblank) when the page flip is done. The user_data field
- * passed in with this ioctl will be returned as the user_data field
- * in the vblank event struct.
- *
- * The reserved field must be zero until we figure out something
- * clever to use it for.
- */
-
-struct drm_mode_crtc_page_flip {
- __u32 crtc_id;
- __u32 fb_id;
- __u32 flags;
- __u32 reserved;
- __u64 user_data;
-};
-
-/* create a dumb scanout buffer */
-struct drm_mode_create_dumb {
- uint32_t height;
- uint32_t width;
- uint32_t bpp;
- uint32_t flags;
- /* handle, pitch, size will be returned */
- uint32_t handle;
- uint32_t pitch;
- uint64_t size;
-};
-
-/* set up for mmap of a dumb scanout buffer */
-struct drm_mode_map_dumb {
- /** Handle for the object being mapped. */
- __u32 handle;
- __u32 pad;
- /**
- * Fake offset to use for subsequent mmap call
- *
- * This is a fixed-size type for 32/64 compatibility.
- */
- __u64 offset;
-};
-
-struct drm_mode_destroy_dumb {
- uint32_t handle;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/drm/drm_os_linux.h b/ANDROID_3.4.5/include/drm/drm_os_linux.h
deleted file mode 100644
index 39336914..00000000
--- a/ANDROID_3.4.5/include/drm/drm_os_linux.h
+++ /dev/null
@@ -1,127 +0,0 @@
-/**
- * \file drm_os_linux.h
- * OS abstraction macros.
- */
-
-#include <linux/interrupt.h> /* For task queue support */
-#include <linux/delay.h>
-
-#ifndef readq
-static inline u64 readq(void __iomem *reg)
-{
- return ((u64) readl(reg)) | (((u64) readl(reg + 4UL)) << 32);
-}
-
-static inline void writeq(u64 val, void __iomem *reg)
-{
- writel(val & 0xffffffff, reg);
- writel(val >> 32, reg + 0x4UL);
-}
-#endif
-
-/** Current process ID */
-#define DRM_CURRENTPID task_pid_nr(current)
-#define DRM_SUSER(p) capable(CAP_SYS_ADMIN)
-#define DRM_UDELAY(d) udelay(d)
-/** Read a byte from a MMIO region */
-#define DRM_READ8(map, offset) readb(((void __iomem *)(map)->handle) + (offset))
-/** Read a word from a MMIO region */
-#define DRM_READ16(map, offset) readw(((void __iomem *)(map)->handle) + (offset))
-/** Read a dword from a MMIO region */
-#define DRM_READ32(map, offset) readl(((void __iomem *)(map)->handle) + (offset))
-/** Write a byte into a MMIO region */
-#define DRM_WRITE8(map, offset, val) writeb(val, ((void __iomem *)(map)->handle) + (offset))
-/** Write a word into a MMIO region */
-#define DRM_WRITE16(map, offset, val) writew(val, ((void __iomem *)(map)->handle) + (offset))
-/** Write a dword into a MMIO region */
-#define DRM_WRITE32(map, offset, val) writel(val, ((void __iomem *)(map)->handle) + (offset))
-/** Read memory barrier */
-
-/** Read a qword from a MMIO region - be careful using these unless you really understand them */
-#define DRM_READ64(map, offset) readq(((void __iomem *)(map)->handle) + (offset))
-/** Write a qword into a MMIO region */
-#define DRM_WRITE64(map, offset, val) writeq(val, ((void __iomem *)(map)->handle) + (offset))
-
-#define DRM_READMEMORYBARRIER() rmb()
-/** Write memory barrier */
-#define DRM_WRITEMEMORYBARRIER() wmb()
-/** Read/write memory barrier */
-#define DRM_MEMORYBARRIER() mb()
-
-/** IRQ handler arguments and return type and values */
-#define DRM_IRQ_ARGS int irq, void *arg
-
-/** AGP types */
-#if __OS_HAS_AGP
-#define DRM_AGP_MEM struct agp_memory
-#define DRM_AGP_KERN struct agp_kern_info
-#else
-/* define some dummy types for non AGP supporting kernels */
-struct no_agp_kern {
- unsigned long aper_base;
- unsigned long aper_size;
-};
-#define DRM_AGP_MEM int
-#define DRM_AGP_KERN struct no_agp_kern
-#endif
-
-#if !(__OS_HAS_MTRR)
-static __inline__ int mtrr_add(unsigned long base, unsigned long size,
- unsigned int type, char increment)
-{
- return -ENODEV;
-}
-
-static __inline__ int mtrr_del(int reg, unsigned long base, unsigned long size)
-{
- return -ENODEV;
-}
-
-#define MTRR_TYPE_WRCOMB 1
-
-#endif
-
-/** Other copying of data to kernel space */
-#define DRM_COPY_FROM_USER(arg1, arg2, arg3) \
- copy_from_user(arg1, arg2, arg3)
-/** Other copying of data from kernel space */
-#define DRM_COPY_TO_USER(arg1, arg2, arg3) \
- copy_to_user(arg1, arg2, arg3)
-/* Macros for copyfrom user, but checking readability only once */
-#define DRM_VERIFYAREA_READ( uaddr, size ) \
- (access_ok( VERIFY_READ, uaddr, size ) ? 0 : -EFAULT)
-#define DRM_COPY_FROM_USER_UNCHECKED(arg1, arg2, arg3) \
- __copy_from_user(arg1, arg2, arg3)
-#define DRM_COPY_TO_USER_UNCHECKED(arg1, arg2, arg3) \
- __copy_to_user(arg1, arg2, arg3)
-#define DRM_GET_USER_UNCHECKED(val, uaddr) \
- __get_user(val, uaddr)
-
-#define DRM_HZ HZ
-
-#define DRM_WAIT_ON( ret, queue, timeout, condition ) \
-do { \
- DECLARE_WAITQUEUE(entry, current); \
- unsigned long end = jiffies + (timeout); \
- add_wait_queue(&(queue), &entry); \
- \
- for (;;) { \
- __set_current_state(TASK_INTERRUPTIBLE); \
- if (condition) \
- break; \
- if (time_after_eq(jiffies, end)) { \
- ret = -EBUSY; \
- break; \
- } \
- schedule_timeout((HZ/100 > 1) ? HZ/100 : 1); \
- if (signal_pending(current)) { \
- ret = -EINTR; \
- break; \
- } \
- } \
- __set_current_state(TASK_RUNNING); \
- remove_wait_queue(&(queue), &entry); \
-} while (0)
-
-#define DRM_WAKEUP( queue ) wake_up( queue )
-#define DRM_INIT_WAITQUEUE( queue ) init_waitqueue_head( queue )
diff --git a/ANDROID_3.4.5/include/drm/drm_pciids.h b/ANDROID_3.4.5/include/drm/drm_pciids.h
deleted file mode 100644
index 81368ab6..00000000
--- a/ANDROID_3.4.5/include/drm/drm_pciids.h
+++ /dev/null
@@ -1,766 +0,0 @@
-/*
- This file is auto-generated from the drm_pciids.txt in the DRM CVS
- Please contact dri-devel@lists.sf.net to add new cards to this list
-*/
-#define radeon_PCI_IDS \
- {0x1002, 0x3150, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_IS_MOBILITY}, \
- {0x1002, 0x3151, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x3152, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x3154, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x3155, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x3E50, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x3E54, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x4136, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS100|RADEON_IS_IGP}, \
- {0x1002, 0x4137, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS200|RADEON_IS_IGP}, \
- {0x1002, 0x4144, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R300}, \
- {0x1002, 0x4145, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R300}, \
- {0x1002, 0x4146, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R300}, \
- {0x1002, 0x4147, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R300}, \
- {0x1002, 0x4148, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R350}, \
- {0x1002, 0x4149, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R350}, \
- {0x1002, 0x414A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R350}, \
- {0x1002, 0x414B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R350}, \
- {0x1002, 0x4150, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV350}, \
- {0x1002, 0x4151, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV350}, \
- {0x1002, 0x4152, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV350}, \
- {0x1002, 0x4153, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV350}, \
- {0x1002, 0x4154, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV350}, \
- {0x1002, 0x4155, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV350}, \
- {0x1002, 0x4156, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV350}, \
- {0x1002, 0x4237, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS200|RADEON_IS_IGP}, \
- {0x1002, 0x4242, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R200}, \
- {0x1002, 0x4336, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS100|RADEON_IS_IGP|RADEON_IS_MOBILITY}, \
- {0x1002, 0x4337, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS200|RADEON_IS_IGP|RADEON_IS_MOBILITY}, \
- {0x1002, 0x4437, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS200|RADEON_IS_IGP|RADEON_IS_MOBILITY}, \
- {0x1002, 0x4966, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV250}, \
- {0x1002, 0x4967, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV250}, \
- {0x1002, 0x4A48, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R420|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x4A49, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R420|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x4A4A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R420|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x4A4B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R420|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x4A4C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R420|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x4A4D, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R420|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x4A4E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R420|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x4A4F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R420|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x4A50, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R420|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x4A54, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R420|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x4B48, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R420|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x4B49, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R420|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x4B4A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R420|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x4B4B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R420|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x4B4C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R420|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x4C57, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV200|RADEON_IS_MOBILITY}, \
- {0x1002, 0x4C58, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV200|RADEON_IS_MOBILITY}, \
- {0x1002, 0x4C59, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV100|RADEON_IS_MOBILITY}, \
- {0x1002, 0x4C5A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV100|RADEON_IS_MOBILITY}, \
- {0x1002, 0x4C64, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV250|RADEON_IS_MOBILITY}, \
- {0x1002, 0x4C66, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV250|RADEON_IS_MOBILITY}, \
- {0x1002, 0x4C67, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV250|RADEON_IS_MOBILITY}, \
- {0x1002, 0x4C6E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV280|RADEON_IS_MOBILITY}, \
- {0x1002, 0x4E44, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R300}, \
- {0x1002, 0x4E45, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R300}, \
- {0x1002, 0x4E46, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R300}, \
- {0x1002, 0x4E47, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R300}, \
- {0x1002, 0x4E48, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R350}, \
- {0x1002, 0x4E49, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R350}, \
- {0x1002, 0x4E4A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R350}, \
- {0x1002, 0x4E4B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R350}, \
- {0x1002, 0x4E50, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV350|RADEON_IS_MOBILITY}, \
- {0x1002, 0x4E51, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV350|RADEON_IS_MOBILITY}, \
- {0x1002, 0x4E52, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV350|RADEON_IS_MOBILITY}, \
- {0x1002, 0x4E53, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV350|RADEON_IS_MOBILITY}, \
- {0x1002, 0x4E54, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV350|RADEON_IS_MOBILITY}, \
- {0x1002, 0x4E56, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV350|RADEON_IS_MOBILITY}, \
- {0x1002, 0x5144, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R100|RADEON_SINGLE_CRTC}, \
- {0x1002, 0x5145, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R100|RADEON_SINGLE_CRTC}, \
- {0x1002, 0x5146, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R100|RADEON_SINGLE_CRTC}, \
- {0x1002, 0x5147, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R100|RADEON_SINGLE_CRTC}, \
- {0x1002, 0x5148, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R200}, \
- {0x1002, 0x514C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R200}, \
- {0x1002, 0x514D, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R200}, \
- {0x1002, 0x5157, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV200}, \
- {0x1002, 0x5158, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV200}, \
- {0x1002, 0x5159, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV100}, \
- {0x1002, 0x515A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV100}, \
- {0x1002, 0x515E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV100|RADEON_SINGLE_CRTC}, \
- {0x1002, 0x5460, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_IS_MOBILITY}, \
- {0x1002, 0x5462, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_IS_MOBILITY}, \
- {0x1002, 0x5464, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_IS_MOBILITY}, \
- {0x1002, 0x5548, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R423|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x5549, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R423|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x554A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R423|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x554B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R423|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x554C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R423|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x554D, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R423|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x554E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R423|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x554F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R423|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x5550, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R423|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x5551, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R423|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x5552, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R423|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x5554, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R423|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x564A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV410|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x564B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV410|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x564F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV410|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x5652, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV410|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x5653, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV410|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x5657, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV410|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x5834, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS300|RADEON_IS_IGP}, \
- {0x1002, 0x5835, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS300|RADEON_IS_IGP|RADEON_IS_MOBILITY}, \
- {0x1002, 0x5954, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS480|RADEON_IS_IGP|RADEON_IS_MOBILITY|RADEON_IS_IGPGART}, \
- {0x1002, 0x5955, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS480|RADEON_IS_IGP|RADEON_IS_MOBILITY|RADEON_IS_IGPGART}, \
- {0x1002, 0x5974, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS480|RADEON_IS_IGP|RADEON_IS_MOBILITY|RADEON_IS_IGPGART}, \
- {0x1002, 0x5975, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS480|RADEON_IS_IGP|RADEON_IS_MOBILITY|RADEON_IS_IGPGART}, \
- {0x1002, 0x5960, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV280}, \
- {0x1002, 0x5961, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV280}, \
- {0x1002, 0x5962, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV280}, \
- {0x1002, 0x5964, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV280}, \
- {0x1002, 0x5965, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV280}, \
- {0x1002, 0x5969, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV100|RADEON_SINGLE_CRTC}, \
- {0x1002, 0x5a41, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS400|RADEON_IS_IGP|RADEON_IS_IGPGART}, \
- {0x1002, 0x5a42, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS400|RADEON_IS_IGP|RADEON_IS_MOBILITY|RADEON_IS_IGPGART}, \
- {0x1002, 0x5a61, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS400|RADEON_IS_IGP|RADEON_IS_IGPGART}, \
- {0x1002, 0x5a62, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS400|RADEON_IS_IGP|RADEON_IS_MOBILITY|RADEON_IS_IGPGART}, \
- {0x1002, 0x5b60, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x5b62, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x5b63, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x5b64, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x5b65, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x5c61, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV280|RADEON_IS_MOBILITY}, \
- {0x1002, 0x5c63, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV280|RADEON_IS_MOBILITY}, \
- {0x1002, 0x5d48, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R423|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x5d49, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R423|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x5d4a, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R423|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x5d4c, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R423|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x5d4d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R423|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x5d4e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R423|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x5d4f, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R423|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x5d50, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R423|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x5d52, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R423|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x5d57, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R423|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x5e48, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV410|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x5e4a, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV410|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x5e4b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV410|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x5e4c, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV410|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x5e4d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV410|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x5e4f, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV410|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6700, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAYMAN|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6701, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAYMAN|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6702, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAYMAN|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6703, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAYMAN|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6704, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAYMAN|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6705, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAYMAN|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6706, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAYMAN|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6707, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAYMAN|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6708, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAYMAN|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6709, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAYMAN|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6718, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAYMAN|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6719, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAYMAN|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x671c, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAYMAN|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x671d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAYMAN|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x671f, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAYMAN|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6720, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_BARTS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6721, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_BARTS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6722, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_BARTS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6723, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_BARTS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6724, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_BARTS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6725, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_BARTS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6726, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_BARTS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6727, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_BARTS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6728, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_BARTS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6729, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_BARTS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6738, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_BARTS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6739, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_BARTS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x673e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_BARTS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6740, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6741, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6742, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6743, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6744, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6745, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6746, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6747, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6748, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6749, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x674A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6750, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6751, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6758, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6759, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x675B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x675D, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x675F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6760, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAICOS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6761, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAICOS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6762, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAICOS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6763, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAICOS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6764, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAICOS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6765, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAICOS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6766, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAICOS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6767, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAICOS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6768, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAICOS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6770, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAICOS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6771, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAICOS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6772, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAICOS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6778, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAICOS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6779, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAICOS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x677B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAICOS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6780, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6784, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6788, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x678A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6790, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6798, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6799, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x679A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x679E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x679F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6800, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6801, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6802, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6808, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6809, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6810, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6818, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6819, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6820, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_VERDE|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6821, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_VERDE|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6823, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_VERDE|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6824, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_VERDE|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6825, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_VERDE|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6826, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_VERDE|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6827, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_VERDE|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6828, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_VERDE|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6829, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_VERDE|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x682B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_VERDE|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x682D, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_VERDE|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x682F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_VERDE|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6830, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_VERDE|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6831, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_VERDE|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6837, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_VERDE|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6838, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_VERDE|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6839, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_VERDE|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x683B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_VERDE|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x683D, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_VERDE|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x683F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_VERDE|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6840, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6841, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6842, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6843, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6849, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x684C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6850, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6858, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6859, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6880, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYPRESS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6888, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYPRESS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6889, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYPRESS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x688A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYPRESS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x688C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYPRESS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x688D, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYPRESS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6898, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYPRESS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x6899, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYPRESS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x689b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYPRESS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x689c, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_HEMLOCK|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x689d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_HEMLOCK|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x689e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYPRESS|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x68a0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_JUNIPER|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x68a1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_JUNIPER|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x68a8, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_JUNIPER|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x68a9, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_JUNIPER|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x68b0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_JUNIPER|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x68b8, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_JUNIPER|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x68b9, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_JUNIPER|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x68ba, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_JUNIPER|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x68be, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_JUNIPER|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x68bf, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_JUNIPER|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x68c0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_REDWOOD|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x68c1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_REDWOOD|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x68c7, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_REDWOOD|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x68c8, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_REDWOOD|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x68c9, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_REDWOOD|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x68d8, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_REDWOOD|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x68d9, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_REDWOOD|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x68da, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_REDWOOD|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x68de, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_REDWOOD|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x68e0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CEDAR|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x68e1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CEDAR|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x68e4, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CEDAR|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x68e5, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CEDAR|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x68e8, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CEDAR|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x68e9, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CEDAR|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x68f1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CEDAR|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x68f2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CEDAR|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x68f8, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CEDAR|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x68f9, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CEDAR|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x68fa, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CEDAR|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x68fe, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CEDAR|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7100, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R520|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7101, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R520|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7102, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R520|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7103, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R520|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7104, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R520|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7105, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R520|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7106, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R520|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7108, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R520|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7109, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R520|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x710A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R520|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x710B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R520|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x710C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R520|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x710E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R520|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x710F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R520|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7140, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7141, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7142, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7143, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7144, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7145, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7146, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7147, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7149, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x714A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x714B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x714C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x714D, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x714E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x714F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7151, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7152, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7153, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x715E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x715F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7180, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7181, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7183, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7186, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7187, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7188, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x718A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x718B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x718C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x718D, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x718F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7193, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7196, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x719B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x719F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x71C0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV530|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x71C1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV530|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x71C2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV530|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x71C3, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV530|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x71C4, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV530|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x71C5, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV530|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x71C6, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV530|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x71C7, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV530|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x71CD, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV530|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x71CE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV530|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x71D2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV530|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x71D4, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV530|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x71D5, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV530|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x71D6, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV530|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x71DA, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV530|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x71DE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV530|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7200, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7210, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7211, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7240, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R580|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7243, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R580|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7244, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R580|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7245, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R580|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7246, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R580|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7247, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R580|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7248, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R580|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7249, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R580|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x724A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R580|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x724B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R580|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x724C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R580|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x724D, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R580|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x724E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R580|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x724F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R580|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7280, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV570|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7281, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV560|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7283, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV560|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7284, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R580|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7287, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV560|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7288, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV570|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7289, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV570|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x728B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV570|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x728C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV570|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7290, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV560|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7291, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV560|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7293, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV560|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7297, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV560|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7834, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS300|RADEON_IS_IGP|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7835, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS300|RADEON_IS_IGP|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x791e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS690|RADEON_IS_IGP|RADEON_NEW_MEMMAP|RADEON_IS_IGPGART}, \
- {0x1002, 0x791f, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS690|RADEON_IS_IGP|RADEON_NEW_MEMMAP|RADEON_IS_IGPGART}, \
- {0x1002, 0x793f, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS600|RADEON_IS_IGP|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7941, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS600|RADEON_IS_IGP|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x7942, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS600|RADEON_IS_IGP|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x796c, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS740|RADEON_IS_IGP|RADEON_NEW_MEMMAP|RADEON_IS_IGPGART}, \
- {0x1002, 0x796d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS740|RADEON_IS_IGP|RADEON_NEW_MEMMAP|RADEON_IS_IGPGART}, \
- {0x1002, 0x796e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS740|RADEON_IS_IGP|RADEON_NEW_MEMMAP|RADEON_IS_IGPGART}, \
- {0x1002, 0x796f, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS740|RADEON_IS_IGP|RADEON_NEW_MEMMAP|RADEON_IS_IGPGART}, \
- {0x1002, 0x9400, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R600|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9401, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R600|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9402, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R600|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9403, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R600|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9405, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R600|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x940A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R600|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x940B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R600|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x940F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R600|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x94A0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV740|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x94A1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV740|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x94A3, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV740|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x94B1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV740|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x94B3, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV740|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x94B4, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV740|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x94B5, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV740|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x94B9, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV740|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9440, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV770|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9441, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV770|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9442, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV770|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9443, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV770|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9444, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV770|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9446, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV770|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x944A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV770|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x944B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV770|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x944C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV770|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x944E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV770|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9450, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV770|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9452, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV770|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9456, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV770|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x945A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV770|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x945B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV770|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x945E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV770|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9460, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV770|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9462, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV770|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x946A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV770|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x946B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV770|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x947A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV770|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x947B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV770|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9480, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV730|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9487, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV730|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9488, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV730|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9489, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV730|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x948A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV730|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x948F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV730|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9490, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV730|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9491, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV730|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9495, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV730|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9498, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV730|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x949C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV730|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x949E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV730|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x949F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV730|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x94C0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV610|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x94C1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV610|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x94C3, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV610|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x94C4, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV610|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x94C5, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV610|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x94C6, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV610|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x94C7, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV610|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x94C8, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV610|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x94C9, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV610|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x94CB, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV610|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x94CC, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV610|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x94CD, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV610|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9500, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV670|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9501, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV670|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9504, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV670|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9505, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV670|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9506, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV670|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9507, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV670|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9508, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV670|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9509, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV670|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x950F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV670|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9511, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV670|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9515, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV670|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9517, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV670|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9519, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV670|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9540, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV710|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9541, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV710|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9542, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV710|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x954E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV710|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x954F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV710|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9552, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV710|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9553, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV710|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9555, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV710|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9557, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV710|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x955f, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV710|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9580, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV630|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9581, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV630|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9583, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV630|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9586, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV630|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9587, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV630|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9588, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV630|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9589, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV630|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x958A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV630|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x958B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV630|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x958C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV630|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x958D, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV630|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x958E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV630|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x958F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV630|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9590, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV635|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9591, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV635|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9593, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV635|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9595, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV635|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9596, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV635|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9597, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV635|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9598, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV635|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9599, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV635|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x959B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV635|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x95C0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV620|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x95C2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV620|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x95C4, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV620|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x95C5, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV620|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x95C6, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV620|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x95C7, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV620|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x95C9, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV620|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x95CC, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV620|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x95CD, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV620|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x95CE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV620|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x95CF, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV620|RADEON_NEW_MEMMAP}, \
- {0x1002, 0x9610, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS780|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9611, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS780|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9612, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS780|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9613, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS780|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9614, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS780|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9615, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS780|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9616, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS780|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9640, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9641, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9642, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO2|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9643, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO2|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9644, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO2|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9645, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO2|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9647, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP},\
- {0x1002, 0x9648, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP},\
- {0x1002, 0x9649, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP},\
- {0x1002, 0x964a, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x964b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x964c, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x964e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP},\
- {0x1002, 0x964f, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP},\
- {0x1002, 0x9710, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS880|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9711, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS880|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9712, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS880|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9713, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS880|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9714, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS880|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9715, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS880|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9802, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9803, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9804, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9805, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9806, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9807, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9808, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9809, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x980A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9900, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9901, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9903, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9904, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9905, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9906, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9907, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9908, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9909, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x990A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x990F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9910, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9913, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9917, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9918, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9919, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9990, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9991, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9992, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9993, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x9994, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x99A0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x99A2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0x1002, 0x99A4, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- {0, 0, 0}
-
-#define r128_PCI_IDS \
- {0x1002, 0x4c45, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x4c46, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x4d46, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x4d4c, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x5041, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x5042, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x5043, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x5044, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x5045, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x5046, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x5047, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x5048, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x5049, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x504A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x504B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x504C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x504D, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x504E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x504F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x5050, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x5051, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x5052, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x5053, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x5054, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x5055, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x5056, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x5057, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x5058, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x5245, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x5246, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x5247, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x524b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x524c, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x534d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x5446, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x544C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x5452, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0, 0, 0}
-
-#define mga_PCI_IDS \
- {0x102b, 0x0520, PCI_ANY_ID, PCI_ANY_ID, 0, 0, MGA_CARD_TYPE_G200}, \
- {0x102b, 0x0521, PCI_ANY_ID, PCI_ANY_ID, 0, 0, MGA_CARD_TYPE_G200}, \
- {0x102b, 0x0525, PCI_ANY_ID, PCI_ANY_ID, 0, 0, MGA_CARD_TYPE_G400}, \
- {0x102b, 0x2527, PCI_ANY_ID, PCI_ANY_ID, 0, 0, MGA_CARD_TYPE_G550}, \
- {0, 0, 0}
-
-#define mach64_PCI_IDS \
- {0x1002, 0x4749, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x4750, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x4751, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x4742, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x4744, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x4c49, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x4c50, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x4c51, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x4c42, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x4c44, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x474c, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x474f, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x4752, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x4753, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x474d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x474e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x4c52, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x4c53, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x4c4d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1002, 0x4c4e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0, 0, 0}
-
-#define sisdrv_PCI_IDS \
- {0x1039, 0x0300, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1039, 0x5300, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1039, 0x6300, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1039, 0x6330, PCI_ANY_ID, PCI_ANY_ID, 0, 0, SIS_CHIP_315}, \
- {0x1039, 0x6351, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1039, 0x7300, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x18CA, 0x0040, PCI_ANY_ID, PCI_ANY_ID, 0, 0, SIS_CHIP_315}, \
- {0x18CA, 0x0042, PCI_ANY_ID, PCI_ANY_ID, 0, 0, SIS_CHIP_315}, \
- {0, 0, 0}
-
-#define tdfx_PCI_IDS \
- {0x121a, 0x0003, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x121a, 0x0004, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x121a, 0x0005, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x121a, 0x0007, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x121a, 0x0009, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x121a, 0x000b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0, 0, 0}
-
-#define viadrv_PCI_IDS \
- {0x1106, 0x3022, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1106, 0x3118, PCI_ANY_ID, PCI_ANY_ID, 0, 0, VIA_PRO_GROUP_A}, \
- {0x1106, 0x3122, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1106, 0x7205, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1106, 0x3108, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1106, 0x3344, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1106, 0x3343, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x1106, 0x3230, PCI_ANY_ID, PCI_ANY_ID, 0, 0, VIA_DX9_0}, \
- {0x1106, 0x3157, PCI_ANY_ID, PCI_ANY_ID, 0, 0, VIA_PRO_GROUP_A}, \
- {0, 0, 0}
-
-#define i810_PCI_IDS \
- {0x8086, 0x7121, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x8086, 0x7123, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x8086, 0x7125, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x8086, 0x1132, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0, 0, 0}
-
-#define i830_PCI_IDS \
- {0x8086, 0x3577, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x8086, 0x2562, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x8086, 0x3582, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x8086, 0x2572, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0x8086, 0x358e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0, 0, 0}
-
-#define gamma_PCI_IDS \
- {0x3d3d, 0x0008, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
- {0, 0, 0}
-
-#define savage_PCI_IDS \
- {0x5333, 0x8a20, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_SAVAGE3D}, \
- {0x5333, 0x8a21, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_SAVAGE3D}, \
- {0x5333, 0x8a22, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_SAVAGE4}, \
- {0x5333, 0x8a23, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_SAVAGE4}, \
- {0x5333, 0x8c10, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_SAVAGE_MX}, \
- {0x5333, 0x8c11, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_SAVAGE_MX}, \
- {0x5333, 0x8c12, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_SAVAGE_MX}, \
- {0x5333, 0x8c13, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_SAVAGE_MX}, \
- {0x5333, 0x8c22, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_SUPERSAVAGE}, \
- {0x5333, 0x8c24, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_SUPERSAVAGE}, \
- {0x5333, 0x8c26, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_SUPERSAVAGE}, \
- {0x5333, 0x8c2a, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_SUPERSAVAGE}, \
- {0x5333, 0x8c2b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_SUPERSAVAGE}, \
- {0x5333, 0x8c2c, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_SUPERSAVAGE}, \
- {0x5333, 0x8c2d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_SUPERSAVAGE}, \
- {0x5333, 0x8c2e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_SUPERSAVAGE}, \
- {0x5333, 0x8c2f, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_SUPERSAVAGE}, \
- {0x5333, 0x8a25, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_PROSAVAGE}, \
- {0x5333, 0x8a26, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_PROSAVAGE}, \
- {0x5333, 0x8d01, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_TWISTER}, \
- {0x5333, 0x8d02, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_TWISTER}, \
- {0x5333, 0x8d03, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_PROSAVAGEDDR}, \
- {0x5333, 0x8d04, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_PROSAVAGEDDR}, \
- {0, 0, 0}
-
-#define ffb_PCI_IDS \
- {0, 0, 0}
-
-#define i915_PCI_IDS \
- {0x8086, 0x3577, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
- {0x8086, 0x2562, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
- {0x8086, 0x3582, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
- {0x8086, 0x2572, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
- {0x8086, 0x2582, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
- {0x8086, 0x258a, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
- {0x8086, 0x2592, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
- {0x8086, 0x2772, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
- {0x8086, 0x27a2, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
- {0x8086, 0x27ae, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
- {0x8086, 0x2972, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
- {0x8086, 0x2982, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
- {0x8086, 0x2992, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
- {0x8086, 0x29a2, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
- {0x8086, 0x29b2, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
- {0x8086, 0x29c2, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
- {0x8086, 0x29d2, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
- {0x8086, 0x2a02, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
- {0x8086, 0x2a12, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
- {0x8086, 0x2a42, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
- {0x8086, 0x2e02, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
- {0x8086, 0x2e12, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
- {0x8086, 0x2e22, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
- {0x8086, 0x2e32, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
- {0x8086, 0x2e42, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
- {0x8086, 0xa001, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
- {0x8086, 0xa011, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
- {0x8086, 0x35e8, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
- {0x8086, 0x0042, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
- {0x8086, 0x0046, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
- {0x8086, 0x0102, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
- {0, 0, 0}
diff --git a/ANDROID_3.4.5/include/drm/drm_sarea.h b/ANDROID_3.4.5/include/drm/drm_sarea.h
deleted file mode 100644
index ee5389d2..00000000
--- a/ANDROID_3.4.5/include/drm/drm_sarea.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/**
- * \file drm_sarea.h
- * \brief SAREA definitions
- *
- * \author Michel Dänzer <michel@daenzer.net>
- */
-
-/*
- * Copyright 2002 Tungsten Graphics, Inc., Cedar Park, Texas.
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef _DRM_SAREA_H_
-#define _DRM_SAREA_H_
-
-#include "drm.h"
-
-/* SAREA area needs to be at least a page */
-#if defined(__alpha__)
-#define SAREA_MAX 0x2000U
-#elif defined(__ia64__)
-#define SAREA_MAX 0x10000U /* 64kB */
-#else
-/* Intel 830M driver needs at least 8k SAREA */
-#define SAREA_MAX 0x2000U
-#endif
-
-/** Maximum number of drawables in the SAREA */
-#define SAREA_MAX_DRAWABLES 256
-
-#define SAREA_DRAWABLE_CLAIMED_ENTRY 0x80000000
-
-/** SAREA drawable */
-struct drm_sarea_drawable {
- unsigned int stamp;
- unsigned int flags;
-};
-
-/** SAREA frame */
-struct drm_sarea_frame {
- unsigned int x;
- unsigned int y;
- unsigned int width;
- unsigned int height;
- unsigned int fullscreen;
-};
-
-/** SAREA */
-struct drm_sarea {
- /** first thing is always the DRM locking structure */
- struct drm_hw_lock lock;
- /** \todo Use readers/writer lock for drm_sarea::drawable_lock */
- struct drm_hw_lock drawable_lock;
- struct drm_sarea_drawable drawableTable[SAREA_MAX_DRAWABLES]; /**< drawables */
- struct drm_sarea_frame frame; /**< frame */
- drm_context_t dummy_context;
-};
-
-#ifndef __KERNEL__
-typedef struct drm_sarea_drawable drm_sarea_drawable_t;
-typedef struct drm_sarea_frame drm_sarea_frame_t;
-typedef struct drm_sarea drm_sarea_t;
-#endif
-
-#endif /* _DRM_SAREA_H_ */
diff --git a/ANDROID_3.4.5/include/drm/drm_sysfs.h b/ANDROID_3.4.5/include/drm/drm_sysfs.h
deleted file mode 100644
index 1d8e033f..00000000
--- a/ANDROID_3.4.5/include/drm/drm_sysfs.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef _DRM_SYSFS_H_
-#define _DRM_SYSFS_H_
-
-/**
- * This minimalistic include file is intended for users (read TTM) that
- * don't want to include the full drmP.h file.
- */
-
-extern int drm_class_device_register(struct device *dev);
-extern void drm_class_device_unregister(struct device *dev);
-
-#endif
diff --git a/ANDROID_3.4.5/include/drm/drm_usb.h b/ANDROID_3.4.5/include/drm/drm_usb.h
deleted file mode 100644
index 33506c11..00000000
--- a/ANDROID_3.4.5/include/drm/drm_usb.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef DRM_USB_H
-#define DRM_USB_H
-
-#include <drmP.h>
-
-#include <linux/usb.h>
-
-extern int drm_usb_init(struct drm_driver *driver, struct usb_driver *udriver);
-extern void drm_usb_exit(struct drm_driver *driver, struct usb_driver *udriver);
-
-int drm_get_usb_dev(struct usb_interface *interface,
- const struct usb_device_id *id,
- struct drm_driver *driver);
-
-#endif
diff --git a/ANDROID_3.4.5/include/drm/exynos_drm.h b/ANDROID_3.4.5/include/drm/exynos_drm.h
deleted file mode 100644
index e478de4e..00000000
--- a/ANDROID_3.4.5/include/drm/exynos_drm.h
+++ /dev/null
@@ -1,185 +0,0 @@
-/* exynos_drm.h
- *
- * Copyright (c) 2011 Samsung Electronics Co., Ltd.
- * Authors:
- * Inki Dae <inki.dae@samsung.com>
- * Joonyoung Shim <jy0922.shim@samsung.com>
- * Seung-Woo Kim <sw0312.kim@samsung.com>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef _EXYNOS_DRM_H_
-#define _EXYNOS_DRM_H_
-
-/**
- * User-desired buffer creation information structure.
- *
- * @size: user-desired memory allocation size.
- * - this size value would be page-aligned internally.
- * @flags: user request for setting memory type or cache attributes.
- * @handle: returned a handle to created gem object.
- * - this handle will be set by gem module of kernel side.
- */
-struct drm_exynos_gem_create {
- uint64_t size;
- unsigned int flags;
- unsigned int handle;
-};
-
-/**
- * A structure for getting buffer offset.
- *
- * @handle: a pointer to gem object created.
- * @pad: just padding to be 64-bit aligned.
- * @offset: relatived offset value of the memory region allocated.
- * - this value should be set by user.
- */
-struct drm_exynos_gem_map_off {
- unsigned int handle;
- unsigned int pad;
- uint64_t offset;
-};
-
-/**
- * A structure for mapping buffer.
- *
- * @handle: a handle to gem object created.
- * @size: memory size to be mapped.
- * @mapped: having user virtual address mmaped.
- * - this variable would be filled by exynos gem module
- * of kernel side with user virtual address which is allocated
- * by do_mmap().
- */
-struct drm_exynos_gem_mmap {
- unsigned int handle;
- unsigned int size;
- uint64_t mapped;
-};
-
-/**
- * A structure for user connection request of virtual display.
- *
- * @connection: indicate whether doing connetion or not by user.
- * @extensions: if this value is 1 then the vidi driver would need additional
- * 128bytes edid data.
- * @edid: the edid data pointer from user side.
- */
-struct drm_exynos_vidi_connection {
- unsigned int connection;
- unsigned int extensions;
- uint64_t edid;
-};
-
-struct drm_exynos_plane_set_zpos {
- __u32 plane_id;
- __s32 zpos;
-};
-
-/* memory type definitions. */
-enum e_drm_exynos_gem_mem_type {
- /* Physically Non-Continuous memory. */
- EXYNOS_BO_NONCONTIG = 1 << 0,
- EXYNOS_BO_MASK = EXYNOS_BO_NONCONTIG
-};
-
-#define DRM_EXYNOS_GEM_CREATE 0x00
-#define DRM_EXYNOS_GEM_MAP_OFFSET 0x01
-#define DRM_EXYNOS_GEM_MMAP 0x02
-/* Reserved 0x03 ~ 0x05 for exynos specific gem ioctl */
-#define DRM_EXYNOS_PLANE_SET_ZPOS 0x06
-#define DRM_EXYNOS_VIDI_CONNECTION 0x07
-
-#define DRM_IOCTL_EXYNOS_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + \
- DRM_EXYNOS_GEM_CREATE, struct drm_exynos_gem_create)
-
-#define DRM_IOCTL_EXYNOS_GEM_MAP_OFFSET DRM_IOWR(DRM_COMMAND_BASE + \
- DRM_EXYNOS_GEM_MAP_OFFSET, struct drm_exynos_gem_map_off)
-
-#define DRM_IOCTL_EXYNOS_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + \
- DRM_EXYNOS_GEM_MMAP, struct drm_exynos_gem_mmap)
-
-#define DRM_IOCTL_EXYNOS_PLANE_SET_ZPOS DRM_IOWR(DRM_COMMAND_BASE + \
- DRM_EXYNOS_PLANE_SET_ZPOS, struct drm_exynos_plane_set_zpos)
-
-#define DRM_IOCTL_EXYNOS_VIDI_CONNECTION DRM_IOWR(DRM_COMMAND_BASE + \
- DRM_EXYNOS_VIDI_CONNECTION, struct drm_exynos_vidi_connection)
-
-#ifdef __KERNEL__
-
-/**
- * A structure for lcd panel information.
- *
- * @timing: default video mode for initializing
- * @width_mm: physical size of lcd width.
- * @height_mm: physical size of lcd height.
- */
-struct exynos_drm_panel_info {
- struct fb_videomode timing;
- u32 width_mm;
- u32 height_mm;
-};
-
-/**
- * Platform Specific Structure for DRM based FIMD.
- *
- * @panel: default panel info for initializing
- * @default_win: default window layer number to be used for UI.
- * @bpp: default bit per pixel.
- */
-struct exynos_drm_fimd_pdata {
- struct exynos_drm_panel_info panel;
- u32 vidcon0;
- u32 vidcon1;
- unsigned int default_win;
- unsigned int bpp;
-};
-
-/**
- * Platform Specific Structure for DRM based HDMI.
- *
- * @hdmi_dev: device point to specific hdmi driver.
- * @mixer_dev: device point to specific mixer driver.
- *
- * this structure is used for common hdmi driver and each device object
- * would be used to access specific device driver(hdmi or mixer driver)
- */
-struct exynos_drm_common_hdmi_pd {
- struct device *hdmi_dev;
- struct device *mixer_dev;
-};
-
-/**
- * Platform Specific Structure for DRM based HDMI core.
- *
- * @timing: default video mode for initializing
- * @default_win: default window layer number to be used for UI.
- * @bpp: default bit per pixel.
- * @is_v13: set if hdmi version 13 is.
- */
-struct exynos_drm_hdmi_pdata {
- struct fb_videomode timing;
- unsigned int default_win;
- unsigned int bpp;
- unsigned int is_v13:1;
-};
-
-#endif /* __KERNEL__ */
-#endif /* _EXYNOS_DRM_H_ */
diff --git a/ANDROID_3.4.5/include/drm/gma_drm.h b/ANDROID_3.4.5/include/drm/gma_drm.h
deleted file mode 100644
index 884613ee..00000000
--- a/ANDROID_3.4.5/include/drm/gma_drm.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/**************************************************************************
- * Copyright (c) 2007-2011, Intel Corporation.
- * All Rights Reserved.
- * Copyright (c) 2008, Tungsten Graphics Inc. Cedar Park, TX., USA.
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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 _PSB_DRM_H_
-#define _PSB_DRM_H_
-
-/*
- * Manage the LUT for an output
- */
-struct drm_psb_dpst_lut_arg {
- uint8_t lut[256];
- int output_id;
-};
-
-/*
- * Validate modes
- */
-struct drm_psb_mode_operation_arg {
- u32 obj_id;
- u16 operation;
- struct drm_mode_modeinfo mode;
- u64 data;
-};
-
-/*
- * Query the stolen memory for smarter management of
- * memory by the server
- */
-struct drm_psb_stolen_memory_arg {
- u32 base;
- u32 size;
-};
-
-struct drm_psb_get_pipe_from_crtc_id_arg {
- /** ID of CRTC being requested **/
- u32 crtc_id;
- /** pipe of requested CRTC **/
- u32 pipe;
-};
-
-struct drm_psb_gem_create {
- __u64 size;
- __u32 handle;
- __u32 flags;
-#define GMA_GEM_CREATE_STOLEN 1 /* Stolen memory can be used */
-};
-
-struct drm_psb_gem_mmap {
- __u32 handle;
- __u32 pad;
- /**
- * Fake offset to use for subsequent mmap call
- *
- * This is a fixed-size type for 32/64 compatibility.
- */
- __u64 offset;
-};
-
-/* Controlling the kernel modesetting buffers */
-
-#define DRM_GMA_GEM_CREATE 0x00 /* Create a GEM object */
-#define DRM_GMA_GEM_MMAP 0x01 /* Map GEM memory */
-#define DRM_GMA_STOLEN_MEMORY 0x02 /* Report stolen memory */
-#define DRM_GMA_2D_OP 0x03 /* Will be merged later */
-#define DRM_GMA_GAMMA 0x04 /* Set gamma table */
-#define DRM_GMA_ADB 0x05 /* Get backlight */
-#define DRM_GMA_DPST_BL 0x06 /* Set backlight */
-#define DRM_GMA_MODE_OPERATION 0x07 /* Mode validation/DC set */
-#define PSB_MODE_OPERATION_MODE_VALID 0x01
-#define DRM_GMA_GET_PIPE_FROM_CRTC_ID 0x08 /* CRTC to physical pipe# */
-
-
-#endif
diff --git a/ANDROID_3.4.5/include/drm/i2c/ch7006.h b/ANDROID_3.4.5/include/drm/i2c/ch7006.h
deleted file mode 100644
index 8390b437..00000000
--- a/ANDROID_3.4.5/include/drm/i2c/ch7006.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (C) 2009 Francisco Jerez.
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial
- * portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
- * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
- * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- */
-
-#ifndef __DRM_I2C_CH7006_H__
-#define __DRM_I2C_CH7006_H__
-
-/**
- * struct ch7006_encoder_params
- *
- * Describes how the ch7006 is wired up with the GPU. It should be
- * used as the @params parameter of its @set_config method.
- *
- * See "http://www.chrontel.com/pdf/7006.pdf" for their precise
- * meaning.
- */
-struct ch7006_encoder_params {
- enum {
- CH7006_FORMAT_RGB16 = 0,
- CH7006_FORMAT_YCrCb24m16,
- CH7006_FORMAT_RGB24m16,
- CH7006_FORMAT_RGB15,
- CH7006_FORMAT_RGB24m12C,
- CH7006_FORMAT_RGB24m12I,
- CH7006_FORMAT_RGB24m8,
- CH7006_FORMAT_RGB16m8,
- CH7006_FORMAT_RGB15m8,
- CH7006_FORMAT_YCrCb24m8,
- } input_format;
-
- enum {
- CH7006_CLOCK_SLAVE = 0,
- CH7006_CLOCK_MASTER,
- } clock_mode;
-
- enum {
- CH7006_CLOCK_EDGE_NEG = 0,
- CH7006_CLOCK_EDGE_POS,
- } clock_edge;
-
- int xcm, pcm;
-
- enum {
- CH7006_SYNC_SLAVE = 0,
- CH7006_SYNC_MASTER,
- } sync_direction;
-
- enum {
- CH7006_SYNC_SEPARATED = 0,
- CH7006_SYNC_EMBEDDED,
- } sync_encoding;
-
- enum {
- CH7006_POUT_1_8V = 0,
- CH7006_POUT_3_3V,
- } pout_level;
-
- enum {
- CH7006_ACTIVE_HSYNC = 0,
- CH7006_ACTIVE_DSTART,
- } active_detect;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/drm/i2c/sil164.h b/ANDROID_3.4.5/include/drm/i2c/sil164.h
deleted file mode 100644
index 205e2738..00000000
--- a/ANDROID_3.4.5/include/drm/i2c/sil164.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (C) 2010 Francisco Jerez.
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial
- * portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
- * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
- * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- */
-
-#ifndef __DRM_I2C_SIL164_H__
-#define __DRM_I2C_SIL164_H__
-
-/**
- * struct sil164_encoder_params
- *
- * Describes how the sil164 is connected to the GPU. It should be used
- * as the @params parameter of its @set_config method.
- *
- * See "http://www.siliconimage.com/docs/SiI-DS-0021-E-164.pdf".
- */
-struct sil164_encoder_params {
- enum {
- SIL164_INPUT_EDGE_FALLING = 0,
- SIL164_INPUT_EDGE_RISING
- } input_edge;
-
- enum {
- SIL164_INPUT_WIDTH_12BIT = 0,
- SIL164_INPUT_WIDTH_24BIT
- } input_width;
-
- enum {
- SIL164_INPUT_SINGLE_EDGE = 0,
- SIL164_INPUT_DUAL_EDGE
- } input_dual;
-
- enum {
- SIL164_PLL_FILTER_ON = 0,
- SIL164_PLL_FILTER_OFF,
- } pll_filter;
-
- int input_skew; /** < Allowed range [-4, 3], use 0 for no de-skew. */
- int duallink_skew; /** < Allowed range [-4, 3]. */
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/drm/i810_drm.h b/ANDROID_3.4.5/include/drm/i810_drm.h
deleted file mode 100644
index 7a10bb6f..00000000
--- a/ANDROID_3.4.5/include/drm/i810_drm.h
+++ /dev/null
@@ -1,281 +0,0 @@
-#ifndef _I810_DRM_H_
-#define _I810_DRM_H_
-
-/* WARNING: These defines must be the same as what the Xserver uses.
- * if you change them, you must change the defines in the Xserver.
- */
-
-#ifndef _I810_DEFINES_
-#define _I810_DEFINES_
-
-#define I810_DMA_BUF_ORDER 12
-#define I810_DMA_BUF_SZ (1<<I810_DMA_BUF_ORDER)
-#define I810_DMA_BUF_NR 256
-#define I810_NR_SAREA_CLIPRECTS 8
-
-/* Each region is a minimum of 64k, and there are at most 64 of them.
- */
-#define I810_NR_TEX_REGIONS 64
-#define I810_LOG_MIN_TEX_REGION_SIZE 16
-#endif
-
-#define I810_UPLOAD_TEX0IMAGE 0x1 /* handled clientside */
-#define I810_UPLOAD_TEX1IMAGE 0x2 /* handled clientside */
-#define I810_UPLOAD_CTX 0x4
-#define I810_UPLOAD_BUFFERS 0x8
-#define I810_UPLOAD_TEX0 0x10
-#define I810_UPLOAD_TEX1 0x20
-#define I810_UPLOAD_CLIPRECTS 0x40
-
-/* Indices into buf.Setup where various bits of state are mirrored per
- * context and per buffer. These can be fired at the card as a unit,
- * or in a piecewise fashion as required.
- */
-
-/* Destbuffer state
- * - backbuffer linear offset and pitch -- invarient in the current dri
- * - zbuffer linear offset and pitch -- also invarient
- * - drawing origin in back and depth buffers.
- *
- * Keep the depth/back buffer state here to accommodate private buffers
- * in the future.
- */
-#define I810_DESTREG_DI0 0 /* CMD_OP_DESTBUFFER_INFO (2 dwords) */
-#define I810_DESTREG_DI1 1
-#define I810_DESTREG_DV0 2 /* GFX_OP_DESTBUFFER_VARS (2 dwords) */
-#define I810_DESTREG_DV1 3
-#define I810_DESTREG_DR0 4 /* GFX_OP_DRAWRECT_INFO (4 dwords) */
-#define I810_DESTREG_DR1 5
-#define I810_DESTREG_DR2 6
-#define I810_DESTREG_DR3 7
-#define I810_DESTREG_DR4 8
-#define I810_DEST_SETUP_SIZE 10
-
-/* Context state
- */
-#define I810_CTXREG_CF0 0 /* GFX_OP_COLOR_FACTOR */
-#define I810_CTXREG_CF1 1
-#define I810_CTXREG_ST0 2 /* GFX_OP_STIPPLE */
-#define I810_CTXREG_ST1 3
-#define I810_CTXREG_VF 4 /* GFX_OP_VERTEX_FMT */
-#define I810_CTXREG_MT 5 /* GFX_OP_MAP_TEXELS */
-#define I810_CTXREG_MC0 6 /* GFX_OP_MAP_COLOR_STAGES - stage 0 */
-#define I810_CTXREG_MC1 7 /* GFX_OP_MAP_COLOR_STAGES - stage 1 */
-#define I810_CTXREG_MC2 8 /* GFX_OP_MAP_COLOR_STAGES - stage 2 */
-#define I810_CTXREG_MA0 9 /* GFX_OP_MAP_ALPHA_STAGES - stage 0 */
-#define I810_CTXREG_MA1 10 /* GFX_OP_MAP_ALPHA_STAGES - stage 1 */
-#define I810_CTXREG_MA2 11 /* GFX_OP_MAP_ALPHA_STAGES - stage 2 */
-#define I810_CTXREG_SDM 12 /* GFX_OP_SRC_DEST_MONO */
-#define I810_CTXREG_FOG 13 /* GFX_OP_FOG_COLOR */
-#define I810_CTXREG_B1 14 /* GFX_OP_BOOL_1 */
-#define I810_CTXREG_B2 15 /* GFX_OP_BOOL_2 */
-#define I810_CTXREG_LCS 16 /* GFX_OP_LINEWIDTH_CULL_SHADE_MODE */
-#define I810_CTXREG_PV 17 /* GFX_OP_PV_RULE -- Invarient! */
-#define I810_CTXREG_ZA 18 /* GFX_OP_ZBIAS_ALPHAFUNC */
-#define I810_CTXREG_AA 19 /* GFX_OP_ANTIALIAS */
-#define I810_CTX_SETUP_SIZE 20
-
-/* Texture state (per tex unit)
- */
-#define I810_TEXREG_MI0 0 /* GFX_OP_MAP_INFO (4 dwords) */
-#define I810_TEXREG_MI1 1
-#define I810_TEXREG_MI2 2
-#define I810_TEXREG_MI3 3
-#define I810_TEXREG_MF 4 /* GFX_OP_MAP_FILTER */
-#define I810_TEXREG_MLC 5 /* GFX_OP_MAP_LOD_CTL */
-#define I810_TEXREG_MLL 6 /* GFX_OP_MAP_LOD_LIMITS */
-#define I810_TEXREG_MCS 7 /* GFX_OP_MAP_COORD_SETS ??? */
-#define I810_TEX_SETUP_SIZE 8
-
-/* Flags for clear ioctl
- */
-#define I810_FRONT 0x1
-#define I810_BACK 0x2
-#define I810_DEPTH 0x4
-
-typedef enum _drm_i810_init_func {
- I810_INIT_DMA = 0x01,
- I810_CLEANUP_DMA = 0x02,
- I810_INIT_DMA_1_4 = 0x03
-} drm_i810_init_func_t;
-
-/* This is the init structure after v1.2 */
-typedef struct _drm_i810_init {
- drm_i810_init_func_t func;
- unsigned int mmio_offset;
- unsigned int buffers_offset;
- int sarea_priv_offset;
- unsigned int ring_start;
- unsigned int ring_end;
- unsigned int ring_size;
- unsigned int front_offset;
- unsigned int back_offset;
- unsigned int depth_offset;
- unsigned int overlay_offset;
- unsigned int overlay_physical;
- unsigned int w;
- unsigned int h;
- unsigned int pitch;
- unsigned int pitch_bits;
-} drm_i810_init_t;
-
-/* This is the init structure prior to v1.2 */
-typedef struct _drm_i810_pre12_init {
- drm_i810_init_func_t func;
- unsigned int mmio_offset;
- unsigned int buffers_offset;
- int sarea_priv_offset;
- unsigned int ring_start;
- unsigned int ring_end;
- unsigned int ring_size;
- unsigned int front_offset;
- unsigned int back_offset;
- unsigned int depth_offset;
- unsigned int w;
- unsigned int h;
- unsigned int pitch;
- unsigned int pitch_bits;
-} drm_i810_pre12_init_t;
-
-/* Warning: If you change the SAREA structure you must change the Xserver
- * structure as well */
-
-typedef struct _drm_i810_tex_region {
- unsigned char next, prev; /* indices to form a circular LRU */
- unsigned char in_use; /* owned by a client, or free? */
- int age; /* tracked by clients to update local LRU's */
-} drm_i810_tex_region_t;
-
-typedef struct _drm_i810_sarea {
- unsigned int ContextState[I810_CTX_SETUP_SIZE];
- unsigned int BufferState[I810_DEST_SETUP_SIZE];
- unsigned int TexState[2][I810_TEX_SETUP_SIZE];
- unsigned int dirty;
-
- unsigned int nbox;
- struct drm_clip_rect boxes[I810_NR_SAREA_CLIPRECTS];
-
- /* Maintain an LRU of contiguous regions of texture space. If
- * you think you own a region of texture memory, and it has an
- * age different to the one you set, then you are mistaken and
- * it has been stolen by another client. If global texAge
- * hasn't changed, there is no need to walk the list.
- *
- * These regions can be used as a proxy for the fine-grained
- * texture information of other clients - by maintaining them
- * in the same lru which is used to age their own textures,
- * clients have an approximate lru for the whole of global
- * texture space, and can make informed decisions as to which
- * areas to kick out. There is no need to choose whether to
- * kick out your own texture or someone else's - simply eject
- * them all in LRU order.
- */
-
- drm_i810_tex_region_t texList[I810_NR_TEX_REGIONS + 1];
- /* Last elt is sentinal */
- int texAge; /* last time texture was uploaded */
- int last_enqueue; /* last time a buffer was enqueued */
- int last_dispatch; /* age of the most recently dispatched buffer */
- int last_quiescent; /* */
- int ctxOwner; /* last context to upload state */
-
- int vertex_prim;
-
- int pf_enabled; /* is pageflipping allowed? */
- int pf_active;
- int pf_current_page; /* which buffer is being displayed? */
-} drm_i810_sarea_t;
-
-/* WARNING: If you change any of these defines, make sure to change the
- * defines in the Xserver file (xf86drmMga.h)
- */
-
-/* i810 specific ioctls
- * The device specific ioctl range is 0x40 to 0x79.
- */
-#define DRM_I810_INIT 0x00
-#define DRM_I810_VERTEX 0x01
-#define DRM_I810_CLEAR 0x02
-#define DRM_I810_FLUSH 0x03
-#define DRM_I810_GETAGE 0x04
-#define DRM_I810_GETBUF 0x05
-#define DRM_I810_SWAP 0x06
-#define DRM_I810_COPY 0x07
-#define DRM_I810_DOCOPY 0x08
-#define DRM_I810_OV0INFO 0x09
-#define DRM_I810_FSTATUS 0x0a
-#define DRM_I810_OV0FLIP 0x0b
-#define DRM_I810_MC 0x0c
-#define DRM_I810_RSTATUS 0x0d
-#define DRM_I810_FLIP 0x0e
-
-#define DRM_IOCTL_I810_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_I810_INIT, drm_i810_init_t)
-#define DRM_IOCTL_I810_VERTEX DRM_IOW( DRM_COMMAND_BASE + DRM_I810_VERTEX, drm_i810_vertex_t)
-#define DRM_IOCTL_I810_CLEAR DRM_IOW( DRM_COMMAND_BASE + DRM_I810_CLEAR, drm_i810_clear_t)
-#define DRM_IOCTL_I810_FLUSH DRM_IO( DRM_COMMAND_BASE + DRM_I810_FLUSH)
-#define DRM_IOCTL_I810_GETAGE DRM_IO( DRM_COMMAND_BASE + DRM_I810_GETAGE)
-#define DRM_IOCTL_I810_GETBUF DRM_IOWR(DRM_COMMAND_BASE + DRM_I810_GETBUF, drm_i810_dma_t)
-#define DRM_IOCTL_I810_SWAP DRM_IO( DRM_COMMAND_BASE + DRM_I810_SWAP)
-#define DRM_IOCTL_I810_COPY DRM_IOW( DRM_COMMAND_BASE + DRM_I810_COPY, drm_i810_copy_t)
-#define DRM_IOCTL_I810_DOCOPY DRM_IO( DRM_COMMAND_BASE + DRM_I810_DOCOPY)
-#define DRM_IOCTL_I810_OV0INFO DRM_IOR( DRM_COMMAND_BASE + DRM_I810_OV0INFO, drm_i810_overlay_t)
-#define DRM_IOCTL_I810_FSTATUS DRM_IO ( DRM_COMMAND_BASE + DRM_I810_FSTATUS)
-#define DRM_IOCTL_I810_OV0FLIP DRM_IO ( DRM_COMMAND_BASE + DRM_I810_OV0FLIP)
-#define DRM_IOCTL_I810_MC DRM_IOW( DRM_COMMAND_BASE + DRM_I810_MC, drm_i810_mc_t)
-#define DRM_IOCTL_I810_RSTATUS DRM_IO ( DRM_COMMAND_BASE + DRM_I810_RSTATUS)
-#define DRM_IOCTL_I810_FLIP DRM_IO ( DRM_COMMAND_BASE + DRM_I810_FLIP)
-
-typedef struct _drm_i810_clear {
- int clear_color;
- int clear_depth;
- int flags;
-} drm_i810_clear_t;
-
-/* These may be placeholders if we have more cliprects than
- * I810_NR_SAREA_CLIPRECTS. In that case, the client sets discard to
- * false, indicating that the buffer will be dispatched again with a
- * new set of cliprects.
- */
-typedef struct _drm_i810_vertex {
- int idx; /* buffer index */
- int used; /* nr bytes in use */
- int discard; /* client is finished with the buffer? */
-} drm_i810_vertex_t;
-
-typedef struct _drm_i810_copy_t {
- int idx; /* buffer index */
- int used; /* nr bytes in use */
- void *address; /* Address to copy from */
-} drm_i810_copy_t;
-
-#define PR_TRIANGLES (0x0<<18)
-#define PR_TRISTRIP_0 (0x1<<18)
-#define PR_TRISTRIP_1 (0x2<<18)
-#define PR_TRIFAN (0x3<<18)
-#define PR_POLYGON (0x4<<18)
-#define PR_LINES (0x5<<18)
-#define PR_LINESTRIP (0x6<<18)
-#define PR_RECTS (0x7<<18)
-#define PR_MASK (0x7<<18)
-
-typedef struct drm_i810_dma {
- void *virtual;
- int request_idx;
- int request_size;
- int granted;
-} drm_i810_dma_t;
-
-typedef struct _drm_i810_overlay_t {
- unsigned int offset; /* Address of the Overlay Regs */
- unsigned int physical;
-} drm_i810_overlay_t;
-
-typedef struct _drm_i810_mc {
- int idx; /* buffer index */
- int used; /* nr bytes in use */
- int num_blocks; /* number of GFXBlocks */
- int *length; /* List of lengths for GFXBlocks (FUTURE) */
- unsigned int last_render; /* Last Render Request */
-} drm_i810_mc_t;
-
-#endif /* _I810_DRM_H_ */
diff --git a/ANDROID_3.4.5/include/drm/i915_drm.h b/ANDROID_3.4.5/include/drm/i915_drm.h
deleted file mode 100644
index da929bb5..00000000
--- a/ANDROID_3.4.5/include/drm/i915_drm.h
+++ /dev/null
@@ -1,888 +0,0 @@
-/*
- * Copyright 2003 Tungsten Graphics, Inc., Cedar Park, Texas.
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
- * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
- * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- */
-
-#ifndef _I915_DRM_H_
-#define _I915_DRM_H_
-
-#include "drm.h"
-
-/* Please note that modifications to all structs defined here are
- * subject to backwards-compatibility constraints.
- */
-
-#ifdef __KERNEL__
-/* For use by IPS driver */
-extern unsigned long i915_read_mch_val(void);
-extern bool i915_gpu_raise(void);
-extern bool i915_gpu_lower(void);
-extern bool i915_gpu_busy(void);
-extern bool i915_gpu_turbo_disable(void);
-#endif
-
-/* Each region is a minimum of 16k, and there are at most 255 of them.
- */
-#define I915_NR_TEX_REGIONS 255 /* table size 2k - maximum due to use
- * of chars for next/prev indices */
-#define I915_LOG_MIN_TEX_REGION_SIZE 14
-
-typedef struct _drm_i915_init {
- enum {
- I915_INIT_DMA = 0x01,
- I915_CLEANUP_DMA = 0x02,
- I915_RESUME_DMA = 0x03
- } func;
- unsigned int mmio_offset;
- int sarea_priv_offset;
- unsigned int ring_start;
- unsigned int ring_end;
- unsigned int ring_size;
- unsigned int front_offset;
- unsigned int back_offset;
- unsigned int depth_offset;
- unsigned int w;
- unsigned int h;
- unsigned int pitch;
- unsigned int pitch_bits;
- unsigned int back_pitch;
- unsigned int depth_pitch;
- unsigned int cpp;
- unsigned int chipset;
-} drm_i915_init_t;
-
-typedef struct _drm_i915_sarea {
- struct drm_tex_region texList[I915_NR_TEX_REGIONS + 1];
- int last_upload; /* last time texture was uploaded */
- int last_enqueue; /* last time a buffer was enqueued */
- int last_dispatch; /* age of the most recently dispatched buffer */
- int ctxOwner; /* last context to upload state */
- int texAge;
- int pf_enabled; /* is pageflipping allowed? */
- int pf_active;
- int pf_current_page; /* which buffer is being displayed? */
- int perf_boxes; /* performance boxes to be displayed */
- int width, height; /* screen size in pixels */
-
- drm_handle_t front_handle;
- int front_offset;
- int front_size;
-
- drm_handle_t back_handle;
- int back_offset;
- int back_size;
-
- drm_handle_t depth_handle;
- int depth_offset;
- int depth_size;
-
- drm_handle_t tex_handle;
- int tex_offset;
- int tex_size;
- int log_tex_granularity;
- int pitch;
- int rotation; /* 0, 90, 180 or 270 */
- int rotated_offset;
- int rotated_size;
- int rotated_pitch;
- int virtualX, virtualY;
-
- unsigned int front_tiled;
- unsigned int back_tiled;
- unsigned int depth_tiled;
- unsigned int rotated_tiled;
- unsigned int rotated2_tiled;
-
- int pipeA_x;
- int pipeA_y;
- int pipeA_w;
- int pipeA_h;
- int pipeB_x;
- int pipeB_y;
- int pipeB_w;
- int pipeB_h;
-
- /* fill out some space for old userspace triple buffer */
- drm_handle_t unused_handle;
- __u32 unused1, unused2, unused3;
-
- /* buffer object handles for static buffers. May change
- * over the lifetime of the client.
- */
- __u32 front_bo_handle;
- __u32 back_bo_handle;
- __u32 unused_bo_handle;
- __u32 depth_bo_handle;
-
-} drm_i915_sarea_t;
-
-/* due to userspace building against these headers we need some compat here */
-#define planeA_x pipeA_x
-#define planeA_y pipeA_y
-#define planeA_w pipeA_w
-#define planeA_h pipeA_h
-#define planeB_x pipeB_x
-#define planeB_y pipeB_y
-#define planeB_w pipeB_w
-#define planeB_h pipeB_h
-
-/* Flags for perf_boxes
- */
-#define I915_BOX_RING_EMPTY 0x1
-#define I915_BOX_FLIP 0x2
-#define I915_BOX_WAIT 0x4
-#define I915_BOX_TEXTURE_LOAD 0x8
-#define I915_BOX_LOST_CONTEXT 0x10
-
-/* I915 specific ioctls
- * The device specific ioctl range is 0x40 to 0x79.
- */
-#define DRM_I915_INIT 0x00
-#define DRM_I915_FLUSH 0x01
-#define DRM_I915_FLIP 0x02
-#define DRM_I915_BATCHBUFFER 0x03
-#define DRM_I915_IRQ_EMIT 0x04
-#define DRM_I915_IRQ_WAIT 0x05
-#define DRM_I915_GETPARAM 0x06
-#define DRM_I915_SETPARAM 0x07
-#define DRM_I915_ALLOC 0x08
-#define DRM_I915_FREE 0x09
-#define DRM_I915_INIT_HEAP 0x0a
-#define DRM_I915_CMDBUFFER 0x0b
-#define DRM_I915_DESTROY_HEAP 0x0c
-#define DRM_I915_SET_VBLANK_PIPE 0x0d
-#define DRM_I915_GET_VBLANK_PIPE 0x0e
-#define DRM_I915_VBLANK_SWAP 0x0f
-#define DRM_I915_HWS_ADDR 0x11
-#define DRM_I915_GEM_INIT 0x13
-#define DRM_I915_GEM_EXECBUFFER 0x14
-#define DRM_I915_GEM_PIN 0x15
-#define DRM_I915_GEM_UNPIN 0x16
-#define DRM_I915_GEM_BUSY 0x17
-#define DRM_I915_GEM_THROTTLE 0x18
-#define DRM_I915_GEM_ENTERVT 0x19
-#define DRM_I915_GEM_LEAVEVT 0x1a
-#define DRM_I915_GEM_CREATE 0x1b
-#define DRM_I915_GEM_PREAD 0x1c
-#define DRM_I915_GEM_PWRITE 0x1d
-#define DRM_I915_GEM_MMAP 0x1e
-#define DRM_I915_GEM_SET_DOMAIN 0x1f
-#define DRM_I915_GEM_SW_FINISH 0x20
-#define DRM_I915_GEM_SET_TILING 0x21
-#define DRM_I915_GEM_GET_TILING 0x22
-#define DRM_I915_GEM_GET_APERTURE 0x23
-#define DRM_I915_GEM_MMAP_GTT 0x24
-#define DRM_I915_GET_PIPE_FROM_CRTC_ID 0x25
-#define DRM_I915_GEM_MADVISE 0x26
-#define DRM_I915_OVERLAY_PUT_IMAGE 0x27
-#define DRM_I915_OVERLAY_ATTRS 0x28
-#define DRM_I915_GEM_EXECBUFFER2 0x29
-#define DRM_I915_GET_SPRITE_COLORKEY 0x2a
-#define DRM_I915_SET_SPRITE_COLORKEY 0x2b
-
-#define DRM_IOCTL_I915_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t)
-#define DRM_IOCTL_I915_FLUSH DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH)
-#define DRM_IOCTL_I915_FLIP DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLIP)
-#define DRM_IOCTL_I915_BATCHBUFFER DRM_IOW( DRM_COMMAND_BASE + DRM_I915_BATCHBUFFER, drm_i915_batchbuffer_t)
-#define DRM_IOCTL_I915_IRQ_EMIT DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_IRQ_EMIT, drm_i915_irq_emit_t)
-#define DRM_IOCTL_I915_IRQ_WAIT DRM_IOW( DRM_COMMAND_BASE + DRM_I915_IRQ_WAIT, drm_i915_irq_wait_t)
-#define DRM_IOCTL_I915_GETPARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GETPARAM, drm_i915_getparam_t)
-#define DRM_IOCTL_I915_SETPARAM DRM_IOW( DRM_COMMAND_BASE + DRM_I915_SETPARAM, drm_i915_setparam_t)
-#define DRM_IOCTL_I915_ALLOC DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_ALLOC, drm_i915_mem_alloc_t)
-#define DRM_IOCTL_I915_FREE DRM_IOW( DRM_COMMAND_BASE + DRM_I915_FREE, drm_i915_mem_free_t)
-#define DRM_IOCTL_I915_INIT_HEAP DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT_HEAP, drm_i915_mem_init_heap_t)
-#define DRM_IOCTL_I915_CMDBUFFER DRM_IOW( DRM_COMMAND_BASE + DRM_I915_CMDBUFFER, drm_i915_cmdbuffer_t)
-#define DRM_IOCTL_I915_DESTROY_HEAP DRM_IOW( DRM_COMMAND_BASE + DRM_I915_DESTROY_HEAP, drm_i915_mem_destroy_heap_t)
-#define DRM_IOCTL_I915_SET_VBLANK_PIPE DRM_IOW( DRM_COMMAND_BASE + DRM_I915_SET_VBLANK_PIPE, drm_i915_vblank_pipe_t)
-#define DRM_IOCTL_I915_GET_VBLANK_PIPE DRM_IOR( DRM_COMMAND_BASE + DRM_I915_GET_VBLANK_PIPE, drm_i915_vblank_pipe_t)
-#define DRM_IOCTL_I915_VBLANK_SWAP DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_VBLANK_SWAP, drm_i915_vblank_swap_t)
-#define DRM_IOCTL_I915_HWS_ADDR DRM_IOW(DRM_COMMAND_BASE + DRM_I915_HWS_ADDR, struct drm_i915_gem_init)
-#define DRM_IOCTL_I915_GEM_INIT DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_INIT, struct drm_i915_gem_init)
-#define DRM_IOCTL_I915_GEM_EXECBUFFER DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_EXECBUFFER, struct drm_i915_gem_execbuffer)
-#define DRM_IOCTL_I915_GEM_EXECBUFFER2 DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_EXECBUFFER2, struct drm_i915_gem_execbuffer2)
-#define DRM_IOCTL_I915_GEM_PIN DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_PIN, struct drm_i915_gem_pin)
-#define DRM_IOCTL_I915_GEM_UNPIN DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_UNPIN, struct drm_i915_gem_unpin)
-#define DRM_IOCTL_I915_GEM_BUSY DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_BUSY, struct drm_i915_gem_busy)
-#define DRM_IOCTL_I915_GEM_THROTTLE DRM_IO ( DRM_COMMAND_BASE + DRM_I915_GEM_THROTTLE)
-#define DRM_IOCTL_I915_GEM_ENTERVT DRM_IO(DRM_COMMAND_BASE + DRM_I915_GEM_ENTERVT)
-#define DRM_IOCTL_I915_GEM_LEAVEVT DRM_IO(DRM_COMMAND_BASE + DRM_I915_GEM_LEAVEVT)
-#define DRM_IOCTL_I915_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_CREATE, struct drm_i915_gem_create)
-#define DRM_IOCTL_I915_GEM_PREAD DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_PREAD, struct drm_i915_gem_pread)
-#define DRM_IOCTL_I915_GEM_PWRITE DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_PWRITE, struct drm_i915_gem_pwrite)
-#define DRM_IOCTL_I915_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MMAP, struct drm_i915_gem_mmap)
-#define DRM_IOCTL_I915_GEM_MMAP_GTT DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MMAP_GTT, struct drm_i915_gem_mmap_gtt)
-#define DRM_IOCTL_I915_GEM_SET_DOMAIN DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_SET_DOMAIN, struct drm_i915_gem_set_domain)
-#define DRM_IOCTL_I915_GEM_SW_FINISH DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_SW_FINISH, struct drm_i915_gem_sw_finish)
-#define DRM_IOCTL_I915_GEM_SET_TILING DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_SET_TILING, struct drm_i915_gem_set_tiling)
-#define DRM_IOCTL_I915_GEM_GET_TILING DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_GET_TILING, struct drm_i915_gem_get_tiling)
-#define DRM_IOCTL_I915_GEM_GET_APERTURE DRM_IOR (DRM_COMMAND_BASE + DRM_I915_GEM_GET_APERTURE, struct drm_i915_gem_get_aperture)
-#define DRM_IOCTL_I915_GET_PIPE_FROM_CRTC_ID DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GET_PIPE_FROM_CRTC_ID, struct drm_i915_get_pipe_from_crtc_id)
-#define DRM_IOCTL_I915_GEM_MADVISE DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MADVISE, struct drm_i915_gem_madvise)
-#define DRM_IOCTL_I915_OVERLAY_PUT_IMAGE DRM_IOW(DRM_COMMAND_BASE + DRM_I915_OVERLAY_PUT_IMAGE, struct drm_intel_overlay_put_image)
-#define DRM_IOCTL_I915_OVERLAY_ATTRS DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_OVERLAY_ATTRS, struct drm_intel_overlay_attrs)
-#define DRM_IOCTL_I915_SET_SPRITE_COLORKEY DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_SET_SPRITE_COLORKEY, struct drm_intel_sprite_colorkey)
-#define DRM_IOCTL_I915_GET_SPRITE_COLORKEY DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_SET_SPRITE_COLORKEY, struct drm_intel_sprite_colorkey)
-
-/* Allow drivers to submit batchbuffers directly to hardware, relying
- * on the security mechanisms provided by hardware.
- */
-typedef struct drm_i915_batchbuffer {
- int start; /* agp offset */
- int used; /* nr bytes in use */
- int DR1; /* hw flags for GFX_OP_DRAWRECT_INFO */
- int DR4; /* window origin for GFX_OP_DRAWRECT_INFO */
- int num_cliprects; /* mulitpass with multiple cliprects? */
- struct drm_clip_rect __user *cliprects; /* pointer to userspace cliprects */
-} drm_i915_batchbuffer_t;
-
-/* As above, but pass a pointer to userspace buffer which can be
- * validated by the kernel prior to sending to hardware.
- */
-typedef struct _drm_i915_cmdbuffer {
- char __user *buf; /* pointer to userspace command buffer */
- int sz; /* nr bytes in buf */
- int DR1; /* hw flags for GFX_OP_DRAWRECT_INFO */
- int DR4; /* window origin for GFX_OP_DRAWRECT_INFO */
- int num_cliprects; /* mulitpass with multiple cliprects? */
- struct drm_clip_rect __user *cliprects; /* pointer to userspace cliprects */
-} drm_i915_cmdbuffer_t;
-
-/* Userspace can request & wait on irq's:
- */
-typedef struct drm_i915_irq_emit {
- int __user *irq_seq;
-} drm_i915_irq_emit_t;
-
-typedef struct drm_i915_irq_wait {
- int irq_seq;
-} drm_i915_irq_wait_t;
-
-/* Ioctl to query kernel params:
- */
-#define I915_PARAM_IRQ_ACTIVE 1
-#define I915_PARAM_ALLOW_BATCHBUFFER 2
-#define I915_PARAM_LAST_DISPATCH 3
-#define I915_PARAM_CHIPSET_ID 4
-#define I915_PARAM_HAS_GEM 5
-#define I915_PARAM_NUM_FENCES_AVAIL 6
-#define I915_PARAM_HAS_OVERLAY 7
-#define I915_PARAM_HAS_PAGEFLIPPING 8
-#define I915_PARAM_HAS_EXECBUF2 9
-#define I915_PARAM_HAS_BSD 10
-#define I915_PARAM_HAS_BLT 11
-#define I915_PARAM_HAS_RELAXED_FENCING 12
-#define I915_PARAM_HAS_COHERENT_RINGS 13
-#define I915_PARAM_HAS_EXEC_CONSTANTS 14
-#define I915_PARAM_HAS_RELAXED_DELTA 15
-#define I915_PARAM_HAS_GEN7_SOL_RESET 16
-#define I915_PARAM_HAS_LLC 17
-
-typedef struct drm_i915_getparam {
- int param;
- int __user *value;
-} drm_i915_getparam_t;
-
-/* Ioctl to set kernel params:
- */
-#define I915_SETPARAM_USE_MI_BATCHBUFFER_START 1
-#define I915_SETPARAM_TEX_LRU_LOG_GRANULARITY 2
-#define I915_SETPARAM_ALLOW_BATCHBUFFER 3
-#define I915_SETPARAM_NUM_USED_FENCES 4
-
-typedef struct drm_i915_setparam {
- int param;
- int value;
-} drm_i915_setparam_t;
-
-/* A memory manager for regions of shared memory:
- */
-#define I915_MEM_REGION_AGP 1
-
-typedef struct drm_i915_mem_alloc {
- int region;
- int alignment;
- int size;
- int __user *region_offset; /* offset from start of fb or agp */
-} drm_i915_mem_alloc_t;
-
-typedef struct drm_i915_mem_free {
- int region;
- int region_offset;
-} drm_i915_mem_free_t;
-
-typedef struct drm_i915_mem_init_heap {
- int region;
- int size;
- int start;
-} drm_i915_mem_init_heap_t;
-
-/* Allow memory manager to be torn down and re-initialized (eg on
- * rotate):
- */
-typedef struct drm_i915_mem_destroy_heap {
- int region;
-} drm_i915_mem_destroy_heap_t;
-
-/* Allow X server to configure which pipes to monitor for vblank signals
- */
-#define DRM_I915_VBLANK_PIPE_A 1
-#define DRM_I915_VBLANK_PIPE_B 2
-
-typedef struct drm_i915_vblank_pipe {
- int pipe;
-} drm_i915_vblank_pipe_t;
-
-/* Schedule buffer swap at given vertical blank:
- */
-typedef struct drm_i915_vblank_swap {
- drm_drawable_t drawable;
- enum drm_vblank_seq_type seqtype;
- unsigned int sequence;
-} drm_i915_vblank_swap_t;
-
-typedef struct drm_i915_hws_addr {
- __u64 addr;
-} drm_i915_hws_addr_t;
-
-struct drm_i915_gem_init {
- /**
- * Beginning offset in the GTT to be managed by the DRM memory
- * manager.
- */
- __u64 gtt_start;
- /**
- * Ending offset in the GTT to be managed by the DRM memory
- * manager.
- */
- __u64 gtt_end;
-};
-
-struct drm_i915_gem_create {
- /**
- * Requested size for the object.
- *
- * The (page-aligned) allocated size for the object will be returned.
- */
- __u64 size;
- /**
- * Returned handle for the object.
- *
- * Object handles are nonzero.
- */
- __u32 handle;
- __u32 pad;
-};
-
-struct drm_i915_gem_pread {
- /** Handle for the object being read. */
- __u32 handle;
- __u32 pad;
- /** Offset into the object to read from */
- __u64 offset;
- /** Length of data to read */
- __u64 size;
- /**
- * Pointer to write the data into.
- *
- * This is a fixed-size type for 32/64 compatibility.
- */
- __u64 data_ptr;
-};
-
-struct drm_i915_gem_pwrite {
- /** Handle for the object being written to. */
- __u32 handle;
- __u32 pad;
- /** Offset into the object to write to */
- __u64 offset;
- /** Length of data to write */
- __u64 size;
- /**
- * Pointer to read the data from.
- *
- * This is a fixed-size type for 32/64 compatibility.
- */
- __u64 data_ptr;
-};
-
-struct drm_i915_gem_mmap {
- /** Handle for the object being mapped. */
- __u32 handle;
- __u32 pad;
- /** Offset in the object to map. */
- __u64 offset;
- /**
- * Length of data to map.
- *
- * The value will be page-aligned.
- */
- __u64 size;
- /**
- * Returned pointer the data was mapped at.
- *
- * This is a fixed-size type for 32/64 compatibility.
- */
- __u64 addr_ptr;
-};
-
-struct drm_i915_gem_mmap_gtt {
- /** Handle for the object being mapped. */
- __u32 handle;
- __u32 pad;
- /**
- * Fake offset to use for subsequent mmap call
- *
- * This is a fixed-size type for 32/64 compatibility.
- */
- __u64 offset;
-};
-
-struct drm_i915_gem_set_domain {
- /** Handle for the object */
- __u32 handle;
-
- /** New read domains */
- __u32 read_domains;
-
- /** New write domain */
- __u32 write_domain;
-};
-
-struct drm_i915_gem_sw_finish {
- /** Handle for the object */
- __u32 handle;
-};
-
-struct drm_i915_gem_relocation_entry {
- /**
- * Handle of the buffer being pointed to by this relocation entry.
- *
- * It's appealing to make this be an index into the mm_validate_entry
- * list to refer to the buffer, but this allows the driver to create
- * a relocation list for state buffers and not re-write it per
- * exec using the buffer.
- */
- __u32 target_handle;
-
- /**
- * Value to be added to the offset of the target buffer to make up
- * the relocation entry.
- */
- __u32 delta;
-
- /** Offset in the buffer the relocation entry will be written into */
- __u64 offset;
-
- /**
- * Offset value of the target buffer that the relocation entry was last
- * written as.
- *
- * If the buffer has the same offset as last time, we can skip syncing
- * and writing the relocation. This value is written back out by
- * the execbuffer ioctl when the relocation is written.
- */
- __u64 presumed_offset;
-
- /**
- * Target memory domains read by this operation.
- */
- __u32 read_domains;
-
- /**
- * Target memory domains written by this operation.
- *
- * Note that only one domain may be written by the whole
- * execbuffer operation, so that where there are conflicts,
- * the application will get -EINVAL back.
- */
- __u32 write_domain;
-};
-
-/** @{
- * Intel memory domains
- *
- * Most of these just align with the various caches in
- * the system and are used to flush and invalidate as
- * objects end up cached in different domains.
- */
-/** CPU cache */
-#define I915_GEM_DOMAIN_CPU 0x00000001
-/** Render cache, used by 2D and 3D drawing */
-#define I915_GEM_DOMAIN_RENDER 0x00000002
-/** Sampler cache, used by texture engine */
-#define I915_GEM_DOMAIN_SAMPLER 0x00000004
-/** Command queue, used to load batch buffers */
-#define I915_GEM_DOMAIN_COMMAND 0x00000008
-/** Instruction cache, used by shader programs */
-#define I915_GEM_DOMAIN_INSTRUCTION 0x00000010
-/** Vertex address cache */
-#define I915_GEM_DOMAIN_VERTEX 0x00000020
-/** GTT domain - aperture and scanout */
-#define I915_GEM_DOMAIN_GTT 0x00000040
-/** @} */
-
-struct drm_i915_gem_exec_object {
- /**
- * User's handle for a buffer to be bound into the GTT for this
- * operation.
- */
- __u32 handle;
-
- /** Number of relocations to be performed on this buffer */
- __u32 relocation_count;
- /**
- * Pointer to array of struct drm_i915_gem_relocation_entry containing
- * the relocations to be performed in this buffer.
- */
- __u64 relocs_ptr;
-
- /** Required alignment in graphics aperture */
- __u64 alignment;
-
- /**
- * Returned value of the updated offset of the object, for future
- * presumed_offset writes.
- */
- __u64 offset;
-};
-
-struct drm_i915_gem_execbuffer {
- /**
- * List of buffers to be validated with their relocations to be
- * performend on them.
- *
- * This is a pointer to an array of struct drm_i915_gem_validate_entry.
- *
- * These buffers must be listed in an order such that all relocations
- * a buffer is performing refer to buffers that have already appeared
- * in the validate list.
- */
- __u64 buffers_ptr;
- __u32 buffer_count;
-
- /** Offset in the batchbuffer to start execution from. */
- __u32 batch_start_offset;
- /** Bytes used in batchbuffer from batch_start_offset */
- __u32 batch_len;
- __u32 DR1;
- __u32 DR4;
- __u32 num_cliprects;
- /** This is a struct drm_clip_rect *cliprects */
- __u64 cliprects_ptr;
-};
-
-struct drm_i915_gem_exec_object2 {
- /**
- * User's handle for a buffer to be bound into the GTT for this
- * operation.
- */
- __u32 handle;
-
- /** Number of relocations to be performed on this buffer */
- __u32 relocation_count;
- /**
- * Pointer to array of struct drm_i915_gem_relocation_entry containing
- * the relocations to be performed in this buffer.
- */
- __u64 relocs_ptr;
-
- /** Required alignment in graphics aperture */
- __u64 alignment;
-
- /**
- * Returned value of the updated offset of the object, for future
- * presumed_offset writes.
- */
- __u64 offset;
-
-#define EXEC_OBJECT_NEEDS_FENCE (1<<0)
- __u64 flags;
- __u64 rsvd1;
- __u64 rsvd2;
-};
-
-struct drm_i915_gem_execbuffer2 {
- /**
- * List of gem_exec_object2 structs
- */
- __u64 buffers_ptr;
- __u32 buffer_count;
-
- /** Offset in the batchbuffer to start execution from. */
- __u32 batch_start_offset;
- /** Bytes used in batchbuffer from batch_start_offset */
- __u32 batch_len;
- __u32 DR1;
- __u32 DR4;
- __u32 num_cliprects;
- /** This is a struct drm_clip_rect *cliprects */
- __u64 cliprects_ptr;
-#define I915_EXEC_RING_MASK (7<<0)
-#define I915_EXEC_DEFAULT (0<<0)
-#define I915_EXEC_RENDER (1<<0)
-#define I915_EXEC_BSD (2<<0)
-#define I915_EXEC_BLT (3<<0)
-
-/* Used for switching the constants addressing mode on gen4+ RENDER ring.
- * Gen6+ only supports relative addressing to dynamic state (default) and
- * absolute addressing.
- *
- * These flags are ignored for the BSD and BLT rings.
- */
-#define I915_EXEC_CONSTANTS_MASK (3<<6)
-#define I915_EXEC_CONSTANTS_REL_GENERAL (0<<6) /* default */
-#define I915_EXEC_CONSTANTS_ABSOLUTE (1<<6)
-#define I915_EXEC_CONSTANTS_REL_SURFACE (2<<6) /* gen4/5 only */
- __u64 flags;
- __u64 rsvd1;
- __u64 rsvd2;
-};
-
-/** Resets the SO write offset registers for transform feedback on gen7. */
-#define I915_EXEC_GEN7_SOL_RESET (1<<8)
-
-struct drm_i915_gem_pin {
- /** Handle of the buffer to be pinned. */
- __u32 handle;
- __u32 pad;
-
- /** alignment required within the aperture */
- __u64 alignment;
-
- /** Returned GTT offset of the buffer. */
- __u64 offset;
-};
-
-struct drm_i915_gem_unpin {
- /** Handle of the buffer to be unpinned. */
- __u32 handle;
- __u32 pad;
-};
-
-struct drm_i915_gem_busy {
- /** Handle of the buffer to check for busy */
- __u32 handle;
-
- /** Return busy status (1 if busy, 0 if idle) */
- __u32 busy;
-};
-
-#define I915_TILING_NONE 0
-#define I915_TILING_X 1
-#define I915_TILING_Y 2
-
-#define I915_BIT_6_SWIZZLE_NONE 0
-#define I915_BIT_6_SWIZZLE_9 1
-#define I915_BIT_6_SWIZZLE_9_10 2
-#define I915_BIT_6_SWIZZLE_9_11 3
-#define I915_BIT_6_SWIZZLE_9_10_11 4
-/* Not seen by userland */
-#define I915_BIT_6_SWIZZLE_UNKNOWN 5
-/* Seen by userland. */
-#define I915_BIT_6_SWIZZLE_9_17 6
-#define I915_BIT_6_SWIZZLE_9_10_17 7
-
-struct drm_i915_gem_set_tiling {
- /** Handle of the buffer to have its tiling state updated */
- __u32 handle;
-
- /**
- * Tiling mode for the object (I915_TILING_NONE, I915_TILING_X,
- * I915_TILING_Y).
- *
- * This value is to be set on request, and will be updated by the
- * kernel on successful return with the actual chosen tiling layout.
- *
- * The tiling mode may be demoted to I915_TILING_NONE when the system
- * has bit 6 swizzling that can't be managed correctly by GEM.
- *
- * Buffer contents become undefined when changing tiling_mode.
- */
- __u32 tiling_mode;
-
- /**
- * Stride in bytes for the object when in I915_TILING_X or
- * I915_TILING_Y.
- */
- __u32 stride;
-
- /**
- * Returned address bit 6 swizzling required for CPU access through
- * mmap mapping.
- */
- __u32 swizzle_mode;
-};
-
-struct drm_i915_gem_get_tiling {
- /** Handle of the buffer to get tiling state for. */
- __u32 handle;
-
- /**
- * Current tiling mode for the object (I915_TILING_NONE, I915_TILING_X,
- * I915_TILING_Y).
- */
- __u32 tiling_mode;
-
- /**
- * Returned address bit 6 swizzling required for CPU access through
- * mmap mapping.
- */
- __u32 swizzle_mode;
-};
-
-struct drm_i915_gem_get_aperture {
- /** Total size of the aperture used by i915_gem_execbuffer, in bytes */
- __u64 aper_size;
-
- /**
- * Available space in the aperture used by i915_gem_execbuffer, in
- * bytes
- */
- __u64 aper_available_size;
-};
-
-struct drm_i915_get_pipe_from_crtc_id {
- /** ID of CRTC being requested **/
- __u32 crtc_id;
-
- /** pipe of requested CRTC **/
- __u32 pipe;
-};
-
-#define I915_MADV_WILLNEED 0
-#define I915_MADV_DONTNEED 1
-#define __I915_MADV_PURGED 2 /* internal state */
-
-struct drm_i915_gem_madvise {
- /** Handle of the buffer to change the backing store advice */
- __u32 handle;
-
- /* Advice: either the buffer will be needed again in the near future,
- * or wont be and could be discarded under memory pressure.
- */
- __u32 madv;
-
- /** Whether the backing store still exists. */
- __u32 retained;
-};
-
-/* flags */
-#define I915_OVERLAY_TYPE_MASK 0xff
-#define I915_OVERLAY_YUV_PLANAR 0x01
-#define I915_OVERLAY_YUV_PACKED 0x02
-#define I915_OVERLAY_RGB 0x03
-
-#define I915_OVERLAY_DEPTH_MASK 0xff00
-#define I915_OVERLAY_RGB24 0x1000
-#define I915_OVERLAY_RGB16 0x2000
-#define I915_OVERLAY_RGB15 0x3000
-#define I915_OVERLAY_YUV422 0x0100
-#define I915_OVERLAY_YUV411 0x0200
-#define I915_OVERLAY_YUV420 0x0300
-#define I915_OVERLAY_YUV410 0x0400
-
-#define I915_OVERLAY_SWAP_MASK 0xff0000
-#define I915_OVERLAY_NO_SWAP 0x000000
-#define I915_OVERLAY_UV_SWAP 0x010000
-#define I915_OVERLAY_Y_SWAP 0x020000
-#define I915_OVERLAY_Y_AND_UV_SWAP 0x030000
-
-#define I915_OVERLAY_FLAGS_MASK 0xff000000
-#define I915_OVERLAY_ENABLE 0x01000000
-
-struct drm_intel_overlay_put_image {
- /* various flags and src format description */
- __u32 flags;
- /* source picture description */
- __u32 bo_handle;
- /* stride values and offsets are in bytes, buffer relative */
- __u16 stride_Y; /* stride for packed formats */
- __u16 stride_UV;
- __u32 offset_Y; /* offset for packet formats */
- __u32 offset_U;
- __u32 offset_V;
- /* in pixels */
- __u16 src_width;
- __u16 src_height;
- /* to compensate the scaling factors for partially covered surfaces */
- __u16 src_scan_width;
- __u16 src_scan_height;
- /* output crtc description */
- __u32 crtc_id;
- __u16 dst_x;
- __u16 dst_y;
- __u16 dst_width;
- __u16 dst_height;
-};
-
-/* flags */
-#define I915_OVERLAY_UPDATE_ATTRS (1<<0)
-#define I915_OVERLAY_UPDATE_GAMMA (1<<1)
-struct drm_intel_overlay_attrs {
- __u32 flags;
- __u32 color_key;
- __s32 brightness;
- __u32 contrast;
- __u32 saturation;
- __u32 gamma0;
- __u32 gamma1;
- __u32 gamma2;
- __u32 gamma3;
- __u32 gamma4;
- __u32 gamma5;
-};
-
-/*
- * Intel sprite handling
- *
- * Color keying works with a min/mask/max tuple. Both source and destination
- * color keying is allowed.
- *
- * Source keying:
- * Sprite pixels within the min & max values, masked against the color channels
- * specified in the mask field, will be transparent. All other pixels will
- * be displayed on top of the primary plane. For RGB surfaces, only the min
- * and mask fields will be used; ranged compares are not allowed.
- *
- * Destination keying:
- * Primary plane pixels that match the min value, masked against the color
- * channels specified in the mask field, will be replaced by corresponding
- * pixels from the sprite plane.
- *
- * Note that source & destination keying are exclusive; only one can be
- * active on a given plane.
- */
-
-#define I915_SET_COLORKEY_NONE (1<<0) /* disable color key matching */
-#define I915_SET_COLORKEY_DESTINATION (1<<1)
-#define I915_SET_COLORKEY_SOURCE (1<<2)
-struct drm_intel_sprite_colorkey {
- __u32 plane_id;
- __u32 min_value;
- __u32 channel_mask;
- __u32 max_value;
- __u32 flags;
-};
-
-#endif /* _I915_DRM_H_ */
diff --git a/ANDROID_3.4.5/include/drm/intel-gtt.h b/ANDROID_3.4.5/include/drm/intel-gtt.h
deleted file mode 100644
index 923afb5d..00000000
--- a/ANDROID_3.4.5/include/drm/intel-gtt.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Common header for intel-gtt.ko and i915.ko */
-
-#ifndef _DRM_INTEL_GTT_H
-#define _DRM_INTEL_GTT_H
-
-const struct intel_gtt {
- /* Size of memory reserved for graphics by the BIOS */
- unsigned int stolen_size;
- /* Total number of gtt entries. */
- unsigned int gtt_total_entries;
- /* Part of the gtt that is mappable by the cpu, for those chips where
- * this is not the full gtt. */
- unsigned int gtt_mappable_entries;
- /* Whether i915 needs to use the dmar apis or not. */
- unsigned int needs_dmar : 1;
- /* Whether we idle the gpu before mapping/unmapping */
- unsigned int do_idle_maps : 1;
- /* Share the scratch page dma with ppgtts. */
- dma_addr_t scratch_page_dma;
- /* for ppgtt PDE access */
- u32 __iomem *gtt;
-} *intel_gtt_get(void);
-
-void intel_gtt_chipset_flush(void);
-void intel_gtt_unmap_memory(struct scatterlist *sg_list, int num_sg);
-void intel_gtt_clear_range(unsigned int first_entry, unsigned int num_entries);
-int intel_gtt_map_memory(struct page **pages, unsigned int num_entries,
- struct scatterlist **sg_list, int *num_sg);
-void intel_gtt_insert_sg_entries(struct scatterlist *sg_list,
- unsigned int sg_len,
- unsigned int pg_start,
- unsigned int flags);
-void intel_gtt_insert_pages(unsigned int first_entry, unsigned int num_entries,
- struct page **pages, unsigned int flags);
-
-/* Special gtt memory types */
-#define AGP_DCACHE_MEMORY 1
-#define AGP_PHYS_MEMORY 2
-
-/* New caching attributes for gen6/sandybridge */
-#define AGP_USER_CACHED_MEMORY_LLC_MLC (AGP_USER_TYPES + 2)
-#define AGP_USER_UNCACHED_MEMORY (AGP_USER_TYPES + 4)
-
-/* flag for GFDT type */
-#define AGP_USER_CACHED_MEMORY_GFDT (1 << 3)
-
-#ifdef CONFIG_INTEL_IOMMU
-extern int intel_iommu_gfx_mapped;
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/drm/mga_drm.h b/ANDROID_3.4.5/include/drm/mga_drm.h
deleted file mode 100644
index fca81700..00000000
--- a/ANDROID_3.4.5/include/drm/mga_drm.h
+++ /dev/null
@@ -1,419 +0,0 @@
-/* mga_drm.h -- Public header for the Matrox g200/g400 driver -*- linux-c -*-
- * Created: Tue Jan 25 01:50:01 1999 by jhartmann@precisioninsight.com
- *
- * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
- * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- *
- * Authors:
- * Jeff Hartmann <jhartmann@valinux.com>
- * Keith Whitwell <keith@tungstengraphics.com>
- *
- * Rewritten by:
- * Gareth Hughes <gareth@valinux.com>
- */
-
-#ifndef __MGA_DRM_H__
-#define __MGA_DRM_H__
-
-#include "drm.h"
-
-/* WARNING: If you change any of these defines, make sure to change the
- * defines in the Xserver file (mga_sarea.h)
- */
-
-#ifndef __MGA_SAREA_DEFINES__
-#define __MGA_SAREA_DEFINES__
-
-/* WARP pipe flags
- */
-#define MGA_F 0x1 /* fog */
-#define MGA_A 0x2 /* alpha */
-#define MGA_S 0x4 /* specular */
-#define MGA_T2 0x8 /* multitexture */
-
-#define MGA_WARP_TGZ 0
-#define MGA_WARP_TGZF (MGA_F)
-#define MGA_WARP_TGZA (MGA_A)
-#define MGA_WARP_TGZAF (MGA_F|MGA_A)
-#define MGA_WARP_TGZS (MGA_S)
-#define MGA_WARP_TGZSF (MGA_S|MGA_F)
-#define MGA_WARP_TGZSA (MGA_S|MGA_A)
-#define MGA_WARP_TGZSAF (MGA_S|MGA_F|MGA_A)
-#define MGA_WARP_T2GZ (MGA_T2)
-#define MGA_WARP_T2GZF (MGA_T2|MGA_F)
-#define MGA_WARP_T2GZA (MGA_T2|MGA_A)
-#define MGA_WARP_T2GZAF (MGA_T2|MGA_A|MGA_F)
-#define MGA_WARP_T2GZS (MGA_T2|MGA_S)
-#define MGA_WARP_T2GZSF (MGA_T2|MGA_S|MGA_F)
-#define MGA_WARP_T2GZSA (MGA_T2|MGA_S|MGA_A)
-#define MGA_WARP_T2GZSAF (MGA_T2|MGA_S|MGA_F|MGA_A)
-
-#define MGA_MAX_G200_PIPES 8 /* no multitex */
-#define MGA_MAX_G400_PIPES 16
-#define MGA_MAX_WARP_PIPES MGA_MAX_G400_PIPES
-#define MGA_WARP_UCODE_SIZE 32768 /* in bytes */
-
-#define MGA_CARD_TYPE_G200 1
-#define MGA_CARD_TYPE_G400 2
-#define MGA_CARD_TYPE_G450 3 /* not currently used */
-#define MGA_CARD_TYPE_G550 4
-
-#define MGA_FRONT 0x1
-#define MGA_BACK 0x2
-#define MGA_DEPTH 0x4
-
-/* What needs to be changed for the current vertex dma buffer?
- */
-#define MGA_UPLOAD_CONTEXT 0x1
-#define MGA_UPLOAD_TEX0 0x2
-#define MGA_UPLOAD_TEX1 0x4
-#define MGA_UPLOAD_PIPE 0x8
-#define MGA_UPLOAD_TEX0IMAGE 0x10 /* handled client-side */
-#define MGA_UPLOAD_TEX1IMAGE 0x20 /* handled client-side */
-#define MGA_UPLOAD_2D 0x40
-#define MGA_WAIT_AGE 0x80 /* handled client-side */
-#define MGA_UPLOAD_CLIPRECTS 0x100 /* handled client-side */
-#if 0
-#define MGA_DMA_FLUSH 0x200 /* set when someone gets the lock
- quiescent */
-#endif
-
-/* 32 buffers of 64k each, total 2 meg.
- */
-#define MGA_BUFFER_SIZE (1 << 16)
-#define MGA_NUM_BUFFERS 128
-
-/* Keep these small for testing.
- */
-#define MGA_NR_SAREA_CLIPRECTS 8
-
-/* 2 heaps (1 for card, 1 for agp), each divided into up to 128
- * regions, subject to a minimum region size of (1<<16) == 64k.
- *
- * Clients may subdivide regions internally, but when sharing between
- * clients, the region size is the minimum granularity.
- */
-
-#define MGA_CARD_HEAP 0
-#define MGA_AGP_HEAP 1
-#define MGA_NR_TEX_HEAPS 2
-#define MGA_NR_TEX_REGIONS 16
-#define MGA_LOG_MIN_TEX_REGION_SIZE 16
-
-#define DRM_MGA_IDLE_RETRY 2048
-
-#endif /* __MGA_SAREA_DEFINES__ */
-
-/* Setup registers for 3D context
- */
-typedef struct {
- unsigned int dstorg;
- unsigned int maccess;
- unsigned int plnwt;
- unsigned int dwgctl;
- unsigned int alphactrl;
- unsigned int fogcolor;
- unsigned int wflag;
- unsigned int tdualstage0;
- unsigned int tdualstage1;
- unsigned int fcol;
- unsigned int stencil;
- unsigned int stencilctl;
-} drm_mga_context_regs_t;
-
-/* Setup registers for 2D, X server
- */
-typedef struct {
- unsigned int pitch;
-} drm_mga_server_regs_t;
-
-/* Setup registers for each texture unit
- */
-typedef struct {
- unsigned int texctl;
- unsigned int texctl2;
- unsigned int texfilter;
- unsigned int texbordercol;
- unsigned int texorg;
- unsigned int texwidth;
- unsigned int texheight;
- unsigned int texorg1;
- unsigned int texorg2;
- unsigned int texorg3;
- unsigned int texorg4;
-} drm_mga_texture_regs_t;
-
-/* General aging mechanism
- */
-typedef struct {
- unsigned int head; /* Position of head pointer */
- unsigned int wrap; /* Primary DMA wrap count */
-} drm_mga_age_t;
-
-typedef struct _drm_mga_sarea {
- /* The channel for communication of state information to the kernel
- * on firing a vertex dma buffer.
- */
- drm_mga_context_regs_t context_state;
- drm_mga_server_regs_t server_state;
- drm_mga_texture_regs_t tex_state[2];
- unsigned int warp_pipe;
- unsigned int dirty;
- unsigned int vertsize;
-
- /* The current cliprects, or a subset thereof.
- */
- struct drm_clip_rect boxes[MGA_NR_SAREA_CLIPRECTS];
- unsigned int nbox;
-
- /* Information about the most recently used 3d drawable. The
- * client fills in the req_* fields, the server fills in the
- * exported_ fields and puts the cliprects into boxes, above.
- *
- * The client clears the exported_drawable field before
- * clobbering the boxes data.
- */
- unsigned int req_drawable; /* the X drawable id */
- unsigned int req_draw_buffer; /* MGA_FRONT or MGA_BACK */
-
- unsigned int exported_drawable;
- unsigned int exported_index;
- unsigned int exported_stamp;
- unsigned int exported_buffers;
- unsigned int exported_nfront;
- unsigned int exported_nback;
- int exported_back_x, exported_front_x, exported_w;
- int exported_back_y, exported_front_y, exported_h;
- struct drm_clip_rect exported_boxes[MGA_NR_SAREA_CLIPRECTS];
-
- /* Counters for aging textures and for client-side throttling.
- */
- unsigned int status[4];
- unsigned int last_wrap;
-
- drm_mga_age_t last_frame;
- unsigned int last_enqueue; /* last time a buffer was enqueued */
- unsigned int last_dispatch; /* age of the most recently dispatched buffer */
- unsigned int last_quiescent; /* */
-
- /* LRU lists for texture memory in agp space and on the card.
- */
- struct drm_tex_region texList[MGA_NR_TEX_HEAPS][MGA_NR_TEX_REGIONS + 1];
- unsigned int texAge[MGA_NR_TEX_HEAPS];
-
- /* Mechanism to validate card state.
- */
- int ctxOwner;
-} drm_mga_sarea_t;
-
-/* MGA specific ioctls
- * The device specific ioctl range is 0x40 to 0x79.
- */
-#define DRM_MGA_INIT 0x00
-#define DRM_MGA_FLUSH 0x01
-#define DRM_MGA_RESET 0x02
-#define DRM_MGA_SWAP 0x03
-#define DRM_MGA_CLEAR 0x04
-#define DRM_MGA_VERTEX 0x05
-#define DRM_MGA_INDICES 0x06
-#define DRM_MGA_ILOAD 0x07
-#define DRM_MGA_BLIT 0x08
-#define DRM_MGA_GETPARAM 0x09
-
-/* 3.2:
- * ioctls for operating on fences.
- */
-#define DRM_MGA_SET_FENCE 0x0a
-#define DRM_MGA_WAIT_FENCE 0x0b
-#define DRM_MGA_DMA_BOOTSTRAP 0x0c
-
-#define DRM_IOCTL_MGA_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_MGA_INIT, drm_mga_init_t)
-#define DRM_IOCTL_MGA_FLUSH DRM_IOW( DRM_COMMAND_BASE + DRM_MGA_FLUSH, struct drm_lock)
-#define DRM_IOCTL_MGA_RESET DRM_IO( DRM_COMMAND_BASE + DRM_MGA_RESET)
-#define DRM_IOCTL_MGA_SWAP DRM_IO( DRM_COMMAND_BASE + DRM_MGA_SWAP)
-#define DRM_IOCTL_MGA_CLEAR DRM_IOW( DRM_COMMAND_BASE + DRM_MGA_CLEAR, drm_mga_clear_t)
-#define DRM_IOCTL_MGA_VERTEX DRM_IOW( DRM_COMMAND_BASE + DRM_MGA_VERTEX, drm_mga_vertex_t)
-#define DRM_IOCTL_MGA_INDICES DRM_IOW( DRM_COMMAND_BASE + DRM_MGA_INDICES, drm_mga_indices_t)
-#define DRM_IOCTL_MGA_ILOAD DRM_IOW( DRM_COMMAND_BASE + DRM_MGA_ILOAD, drm_mga_iload_t)
-#define DRM_IOCTL_MGA_BLIT DRM_IOW( DRM_COMMAND_BASE + DRM_MGA_BLIT, drm_mga_blit_t)
-#define DRM_IOCTL_MGA_GETPARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_MGA_GETPARAM, drm_mga_getparam_t)
-#define DRM_IOCTL_MGA_SET_FENCE DRM_IOW( DRM_COMMAND_BASE + DRM_MGA_SET_FENCE, __u32)
-#define DRM_IOCTL_MGA_WAIT_FENCE DRM_IOWR(DRM_COMMAND_BASE + DRM_MGA_WAIT_FENCE, __u32)
-#define DRM_IOCTL_MGA_DMA_BOOTSTRAP DRM_IOWR(DRM_COMMAND_BASE + DRM_MGA_DMA_BOOTSTRAP, drm_mga_dma_bootstrap_t)
-
-typedef struct _drm_mga_warp_index {
- int installed;
- unsigned long phys_addr;
- int size;
-} drm_mga_warp_index_t;
-
-typedef struct drm_mga_init {
- enum {
- MGA_INIT_DMA = 0x01,
- MGA_CLEANUP_DMA = 0x02
- } func;
-
- unsigned long sarea_priv_offset;
-
- int chipset;
- int sgram;
-
- unsigned int maccess;
-
- unsigned int fb_cpp;
- unsigned int front_offset, front_pitch;
- unsigned int back_offset, back_pitch;
-
- unsigned int depth_cpp;
- unsigned int depth_offset, depth_pitch;
-
- unsigned int texture_offset[MGA_NR_TEX_HEAPS];
- unsigned int texture_size[MGA_NR_TEX_HEAPS];
-
- unsigned long fb_offset;
- unsigned long mmio_offset;
- unsigned long status_offset;
- unsigned long warp_offset;
- unsigned long primary_offset;
- unsigned long buffers_offset;
-} drm_mga_init_t;
-
-typedef struct drm_mga_dma_bootstrap {
- /**
- * \name AGP texture region
- *
- * On return from the DRM_MGA_DMA_BOOTSTRAP ioctl, these fields will
- * be filled in with the actual AGP texture settings.
- *
- * \warning
- * If these fields are non-zero, but dma_mga_dma_bootstrap::agp_mode
- * is zero, it means that PCI memory (most likely through the use of
- * an IOMMU) is being used for "AGP" textures.
- */
- /*@{ */
- unsigned long texture_handle; /**< Handle used to map AGP textures. */
- __u32 texture_size; /**< Size of the AGP texture region. */
- /*@} */
-
- /**
- * Requested size of the primary DMA region.
- *
- * On return from the DRM_MGA_DMA_BOOTSTRAP ioctl, this field will be
- * filled in with the actual AGP mode. If AGP was not available
- */
- __u32 primary_size;
-
- /**
- * Requested number of secondary DMA buffers.
- *
- * On return from the DRM_MGA_DMA_BOOTSTRAP ioctl, this field will be
- * filled in with the actual number of secondary DMA buffers
- * allocated. Particularly when PCI DMA is used, this may be
- * (subtantially) less than the number requested.
- */
- __u32 secondary_bin_count;
-
- /**
- * Requested size of each secondary DMA buffer.
- *
- * While the kernel \b is free to reduce
- * dma_mga_dma_bootstrap::secondary_bin_count, it is \b not allowed
- * to reduce dma_mga_dma_bootstrap::secondary_bin_size.
- */
- __u32 secondary_bin_size;
-
- /**
- * Bit-wise mask of AGPSTAT2_* values. Currently only \c AGPSTAT2_1X,
- * \c AGPSTAT2_2X, and \c AGPSTAT2_4X are supported. If this value is
- * zero, it means that PCI DMA should be used, even if AGP is
- * possible.
- *
- * On return from the DRM_MGA_DMA_BOOTSTRAP ioctl, this field will be
- * filled in with the actual AGP mode. If AGP was not available
- * (i.e., PCI DMA was used), this value will be zero.
- */
- __u32 agp_mode;
-
- /**
- * Desired AGP GART size, measured in megabytes.
- */
- __u8 agp_size;
-} drm_mga_dma_bootstrap_t;
-
-typedef struct drm_mga_clear {
- unsigned int flags;
- unsigned int clear_color;
- unsigned int clear_depth;
- unsigned int color_mask;
- unsigned int depth_mask;
-} drm_mga_clear_t;
-
-typedef struct drm_mga_vertex {
- int idx; /* buffer to queue */
- int used; /* bytes in use */
- int discard; /* client finished with buffer? */
-} drm_mga_vertex_t;
-
-typedef struct drm_mga_indices {
- int idx; /* buffer to queue */
- unsigned int start;
- unsigned int end;
- int discard; /* client finished with buffer? */
-} drm_mga_indices_t;
-
-typedef struct drm_mga_iload {
- int idx;
- unsigned int dstorg;
- unsigned int length;
-} drm_mga_iload_t;
-
-typedef struct _drm_mga_blit {
- unsigned int planemask;
- unsigned int srcorg;
- unsigned int dstorg;
- int src_pitch, dst_pitch;
- int delta_sx, delta_sy;
- int delta_dx, delta_dy;
- int height, ydir; /* flip image vertically */
- int source_pitch, dest_pitch;
-} drm_mga_blit_t;
-
-/* 3.1: An ioctl to get parameters that aren't available to the 3d
- * client any other way.
- */
-#define MGA_PARAM_IRQ_NR 1
-
-/* 3.2: Query the actual card type. The DDX only distinguishes between
- * G200 chips and non-G200 chips, which it calls G400. It turns out that
- * there are some very sublte differences between the G4x0 chips and the G550
- * chips. Using this parameter query, a client-side driver can detect the
- * difference between a G4x0 and a G550.
- */
-#define MGA_PARAM_CARD_TYPE 2
-
-typedef struct drm_mga_getparam {
- int param;
- void __user *value;
-} drm_mga_getparam_t;
-
-#endif
diff --git a/ANDROID_3.4.5/include/drm/nouveau_drm.h b/ANDROID_3.4.5/include/drm/nouveau_drm.h
deleted file mode 100644
index 5edd3a76..00000000
--- a/ANDROID_3.4.5/include/drm/nouveau_drm.h
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * Copyright 2005 Stephane Marchesin.
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef __NOUVEAU_DRM_H__
-#define __NOUVEAU_DRM_H__
-
-#define NOUVEAU_DRM_HEADER_PATCHLEVEL 16
-
-struct drm_nouveau_channel_alloc {
- uint32_t fb_ctxdma_handle;
- uint32_t tt_ctxdma_handle;
-
- int channel;
- uint32_t pushbuf_domains;
-
- /* Notifier memory */
- uint32_t notifier_handle;
-
- /* DRM-enforced subchannel assignments */
- struct {
- uint32_t handle;
- uint32_t grclass;
- } subchan[8];
- uint32_t nr_subchan;
-};
-
-struct drm_nouveau_channel_free {
- int channel;
-};
-
-struct drm_nouveau_grobj_alloc {
- int channel;
- uint32_t handle;
- int class;
-};
-
-struct drm_nouveau_notifierobj_alloc {
- uint32_t channel;
- uint32_t handle;
- uint32_t size;
- uint32_t offset;
-};
-
-struct drm_nouveau_gpuobj_free {
- int channel;
- uint32_t handle;
-};
-
-/* FIXME : maybe unify {GET,SET}PARAMs */
-#define NOUVEAU_GETPARAM_PCI_VENDOR 3
-#define NOUVEAU_GETPARAM_PCI_DEVICE 4
-#define NOUVEAU_GETPARAM_BUS_TYPE 5
-#define NOUVEAU_GETPARAM_FB_SIZE 8
-#define NOUVEAU_GETPARAM_AGP_SIZE 9
-#define NOUVEAU_GETPARAM_CHIPSET_ID 11
-#define NOUVEAU_GETPARAM_VM_VRAM_BASE 12
-#define NOUVEAU_GETPARAM_GRAPH_UNITS 13
-#define NOUVEAU_GETPARAM_PTIMER_TIME 14
-#define NOUVEAU_GETPARAM_HAS_BO_USAGE 15
-#define NOUVEAU_GETPARAM_HAS_PAGEFLIP 16
-struct drm_nouveau_getparam {
- uint64_t param;
- uint64_t value;
-};
-
-struct drm_nouveau_setparam {
- uint64_t param;
- uint64_t value;
-};
-
-#define NOUVEAU_GEM_DOMAIN_CPU (1 << 0)
-#define NOUVEAU_GEM_DOMAIN_VRAM (1 << 1)
-#define NOUVEAU_GEM_DOMAIN_GART (1 << 2)
-#define NOUVEAU_GEM_DOMAIN_MAPPABLE (1 << 3)
-
-#define NOUVEAU_GEM_TILE_COMP 0x00030000 /* nv50-only */
-#define NOUVEAU_GEM_TILE_LAYOUT_MASK 0x0000ff00
-#define NOUVEAU_GEM_TILE_16BPP 0x00000001
-#define NOUVEAU_GEM_TILE_32BPP 0x00000002
-#define NOUVEAU_GEM_TILE_ZETA 0x00000004
-#define NOUVEAU_GEM_TILE_NONCONTIG 0x00000008
-
-struct drm_nouveau_gem_info {
- uint32_t handle;
- uint32_t domain;
- uint64_t size;
- uint64_t offset;
- uint64_t map_handle;
- uint32_t tile_mode;
- uint32_t tile_flags;
-};
-
-struct drm_nouveau_gem_new {
- struct drm_nouveau_gem_info info;
- uint32_t channel_hint;
- uint32_t align;
-};
-
-#define NOUVEAU_GEM_MAX_BUFFERS 1024
-struct drm_nouveau_gem_pushbuf_bo_presumed {
- uint32_t valid;
- uint32_t domain;
- uint64_t offset;
-};
-
-struct drm_nouveau_gem_pushbuf_bo {
- uint64_t user_priv;
- uint32_t handle;
- uint32_t read_domains;
- uint32_t write_domains;
- uint32_t valid_domains;
- struct drm_nouveau_gem_pushbuf_bo_presumed presumed;
-};
-
-#define NOUVEAU_GEM_RELOC_LOW (1 << 0)
-#define NOUVEAU_GEM_RELOC_HIGH (1 << 1)
-#define NOUVEAU_GEM_RELOC_OR (1 << 2)
-#define NOUVEAU_GEM_MAX_RELOCS 1024
-struct drm_nouveau_gem_pushbuf_reloc {
- uint32_t reloc_bo_index;
- uint32_t reloc_bo_offset;
- uint32_t bo_index;
- uint32_t flags;
- uint32_t data;
- uint32_t vor;
- uint32_t tor;
-};
-
-#define NOUVEAU_GEM_MAX_PUSH 512
-struct drm_nouveau_gem_pushbuf_push {
- uint32_t bo_index;
- uint32_t pad;
- uint64_t offset;
- uint64_t length;
-};
-
-struct drm_nouveau_gem_pushbuf {
- uint32_t channel;
- uint32_t nr_buffers;
- uint64_t buffers;
- uint32_t nr_relocs;
- uint32_t nr_push;
- uint64_t relocs;
- uint64_t push;
- uint32_t suffix0;
- uint32_t suffix1;
- uint64_t vram_available;
- uint64_t gart_available;
-};
-
-#define NOUVEAU_GEM_CPU_PREP_NOWAIT 0x00000001
-#define NOUVEAU_GEM_CPU_PREP_WRITE 0x00000004
-struct drm_nouveau_gem_cpu_prep {
- uint32_t handle;
- uint32_t flags;
-};
-
-struct drm_nouveau_gem_cpu_fini {
- uint32_t handle;
-};
-
-enum nouveau_bus_type {
- NV_AGP = 0,
- NV_PCI = 1,
- NV_PCIE = 2,
-};
-
-struct drm_nouveau_sarea {
-};
-
-#define DRM_NOUVEAU_GETPARAM 0x00
-#define DRM_NOUVEAU_SETPARAM 0x01
-#define DRM_NOUVEAU_CHANNEL_ALLOC 0x02
-#define DRM_NOUVEAU_CHANNEL_FREE 0x03
-#define DRM_NOUVEAU_GROBJ_ALLOC 0x04
-#define DRM_NOUVEAU_NOTIFIEROBJ_ALLOC 0x05
-#define DRM_NOUVEAU_GPUOBJ_FREE 0x06
-#define DRM_NOUVEAU_GEM_NEW 0x40
-#define DRM_NOUVEAU_GEM_PUSHBUF 0x41
-#define DRM_NOUVEAU_GEM_CPU_PREP 0x42
-#define DRM_NOUVEAU_GEM_CPU_FINI 0x43
-#define DRM_NOUVEAU_GEM_INFO 0x44
-
-#define DRM_IOCTL_NOUVEAU_GETPARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_GETPARAM, struct drm_nouveau_getparam)
-#define DRM_IOCTL_NOUVEAU_SETPARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_SETPARAM, struct drm_nouveau_setparam)
-#define DRM_IOCTL_NOUVEAU_CHANNEL_ALLOC DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_CHANNEL_ALLOC, struct drm_nouveau_channel_alloc)
-#define DRM_IOCTL_NOUVEAU_CHANNEL_FREE DRM_IOW (DRM_COMMAND_BASE + DRM_NOUVEAU_CHANNEL_FREE, struct drm_nouveau_channel_free)
-#define DRM_IOCTL_NOUVEAU_GROBJ_ALLOC DRM_IOW (DRM_COMMAND_BASE + DRM_NOUVEAU_GROBJ_ALLOC, struct drm_nouveau_grobj_alloc)
-#define DRM_IOCTL_NOUVEAU_NOTIFIEROBJ_ALLOC DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_NOTIFIEROBJ_ALLOC, struct drm_nouveau_notifierobj_alloc)
-#define DRM_IOCTL_NOUVEAU_GPUOBJ_FREE DRM_IOW (DRM_COMMAND_BASE + DRM_NOUVEAU_GPUOBJ_FREE, struct drm_nouveau_gpuobj_free)
-#define DRM_IOCTL_NOUVEAU_GEM_NEW DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_GEM_NEW, struct drm_nouveau_gem_new)
-#define DRM_IOCTL_NOUVEAU_GEM_PUSHBUF DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_GEM_PUSHBUF, struct drm_nouveau_gem_pushbuf)
-#define DRM_IOCTL_NOUVEAU_GEM_CPU_PREP DRM_IOW (DRM_COMMAND_BASE + DRM_NOUVEAU_GEM_CPU_PREP, struct drm_nouveau_gem_cpu_prep)
-#define DRM_IOCTL_NOUVEAU_GEM_CPU_FINI DRM_IOW (DRM_COMMAND_BASE + DRM_NOUVEAU_GEM_CPU_FINI, struct drm_nouveau_gem_cpu_fini)
-#define DRM_IOCTL_NOUVEAU_GEM_INFO DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_GEM_INFO, struct drm_nouveau_gem_info)
-
-#endif /* __NOUVEAU_DRM_H__ */
diff --git a/ANDROID_3.4.5/include/drm/r128_drm.h b/ANDROID_3.4.5/include/drm/r128_drm.h
deleted file mode 100644
index 8d8878b5..00000000
--- a/ANDROID_3.4.5/include/drm/r128_drm.h
+++ /dev/null
@@ -1,326 +0,0 @@
-/* r128_drm.h -- Public header for the r128 driver -*- linux-c -*-
- * Created: Wed Apr 5 19:24:19 2000 by kevin@precisioninsight.com
- */
-/*
- * Copyright 2000 Precision Insight, Inc., Cedar Park, Texas.
- * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- * Authors:
- * Gareth Hughes <gareth@valinux.com>
- * Kevin E. Martin <martin@valinux.com>
- */
-
-#ifndef __R128_DRM_H__
-#define __R128_DRM_H__
-
-/* WARNING: If you change any of these defines, make sure to change the
- * defines in the X server file (r128_sarea.h)
- */
-#ifndef __R128_SAREA_DEFINES__
-#define __R128_SAREA_DEFINES__
-
-/* What needs to be changed for the current vertex buffer?
- */
-#define R128_UPLOAD_CONTEXT 0x001
-#define R128_UPLOAD_SETUP 0x002
-#define R128_UPLOAD_TEX0 0x004
-#define R128_UPLOAD_TEX1 0x008
-#define R128_UPLOAD_TEX0IMAGES 0x010
-#define R128_UPLOAD_TEX1IMAGES 0x020
-#define R128_UPLOAD_CORE 0x040
-#define R128_UPLOAD_MASKS 0x080
-#define R128_UPLOAD_WINDOW 0x100
-#define R128_UPLOAD_CLIPRECTS 0x200 /* handled client-side */
-#define R128_REQUIRE_QUIESCENCE 0x400
-#define R128_UPLOAD_ALL 0x7ff
-
-#define R128_FRONT 0x1
-#define R128_BACK 0x2
-#define R128_DEPTH 0x4
-
-/* Primitive types
- */
-#define R128_POINTS 0x1
-#define R128_LINES 0x2
-#define R128_LINE_STRIP 0x3
-#define R128_TRIANGLES 0x4
-#define R128_TRIANGLE_FAN 0x5
-#define R128_TRIANGLE_STRIP 0x6
-
-/* Vertex/indirect buffer size
- */
-#define R128_BUFFER_SIZE 16384
-
-/* Byte offsets for indirect buffer data
- */
-#define R128_INDEX_PRIM_OFFSET 20
-#define R128_HOSTDATA_BLIT_OFFSET 32
-
-/* Keep these small for testing.
- */
-#define R128_NR_SAREA_CLIPRECTS 12
-
-/* There are 2 heaps (local/AGP). Each region within a heap is a
- * minimum of 64k, and there are at most 64 of them per heap.
- */
-#define R128_LOCAL_TEX_HEAP 0
-#define R128_AGP_TEX_HEAP 1
-#define R128_NR_TEX_HEAPS 2
-#define R128_NR_TEX_REGIONS 64
-#define R128_LOG_TEX_GRANULARITY 16
-
-#define R128_NR_CONTEXT_REGS 12
-
-#define R128_MAX_TEXTURE_LEVELS 11
-#define R128_MAX_TEXTURE_UNITS 2
-
-#endif /* __R128_SAREA_DEFINES__ */
-
-typedef struct {
- /* Context state - can be written in one large chunk */
- unsigned int dst_pitch_offset_c;
- unsigned int dp_gui_master_cntl_c;
- unsigned int sc_top_left_c;
- unsigned int sc_bottom_right_c;
- unsigned int z_offset_c;
- unsigned int z_pitch_c;
- unsigned int z_sten_cntl_c;
- unsigned int tex_cntl_c;
- unsigned int misc_3d_state_cntl_reg;
- unsigned int texture_clr_cmp_clr_c;
- unsigned int texture_clr_cmp_msk_c;
- unsigned int fog_color_c;
-
- /* Texture state */
- unsigned int tex_size_pitch_c;
- unsigned int constant_color_c;
-
- /* Setup state */
- unsigned int pm4_vc_fpu_setup;
- unsigned int setup_cntl;
-
- /* Mask state */
- unsigned int dp_write_mask;
- unsigned int sten_ref_mask_c;
- unsigned int plane_3d_mask_c;
-
- /* Window state */
- unsigned int window_xy_offset;
-
- /* Core state */
- unsigned int scale_3d_cntl;
-} drm_r128_context_regs_t;
-
-/* Setup registers for each texture unit
- */
-typedef struct {
- unsigned int tex_cntl;
- unsigned int tex_combine_cntl;
- unsigned int tex_size_pitch;
- unsigned int tex_offset[R128_MAX_TEXTURE_LEVELS];
- unsigned int tex_border_color;
-} drm_r128_texture_regs_t;
-
-typedef struct drm_r128_sarea {
- /* The channel for communication of state information to the kernel
- * on firing a vertex buffer.
- */
- drm_r128_context_regs_t context_state;
- drm_r128_texture_regs_t tex_state[R128_MAX_TEXTURE_UNITS];
- unsigned int dirty;
- unsigned int vertsize;
- unsigned int vc_format;
-
- /* The current cliprects, or a subset thereof.
- */
- struct drm_clip_rect boxes[R128_NR_SAREA_CLIPRECTS];
- unsigned int nbox;
-
- /* Counters for client-side throttling of rendering clients.
- */
- unsigned int last_frame;
- unsigned int last_dispatch;
-
- struct drm_tex_region tex_list[R128_NR_TEX_HEAPS][R128_NR_TEX_REGIONS + 1];
- unsigned int tex_age[R128_NR_TEX_HEAPS];
- int ctx_owner;
- int pfAllowPageFlip; /* number of 3d windows (0,1,2 or more) */
- int pfCurrentPage; /* which buffer is being displayed? */
-} drm_r128_sarea_t;
-
-/* WARNING: If you change any of these defines, make sure to change the
- * defines in the Xserver file (xf86drmR128.h)
- */
-
-/* Rage 128 specific ioctls
- * The device specific ioctl range is 0x40 to 0x79.
- */
-#define DRM_R128_INIT 0x00
-#define DRM_R128_CCE_START 0x01
-#define DRM_R128_CCE_STOP 0x02
-#define DRM_R128_CCE_RESET 0x03
-#define DRM_R128_CCE_IDLE 0x04
-/* 0x05 not used */
-#define DRM_R128_RESET 0x06
-#define DRM_R128_SWAP 0x07
-#define DRM_R128_CLEAR 0x08
-#define DRM_R128_VERTEX 0x09
-#define DRM_R128_INDICES 0x0a
-#define DRM_R128_BLIT 0x0b
-#define DRM_R128_DEPTH 0x0c
-#define DRM_R128_STIPPLE 0x0d
-/* 0x0e not used */
-#define DRM_R128_INDIRECT 0x0f
-#define DRM_R128_FULLSCREEN 0x10
-#define DRM_R128_CLEAR2 0x11
-#define DRM_R128_GETPARAM 0x12
-#define DRM_R128_FLIP 0x13
-
-#define DRM_IOCTL_R128_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_R128_INIT, drm_r128_init_t)
-#define DRM_IOCTL_R128_CCE_START DRM_IO( DRM_COMMAND_BASE + DRM_R128_CCE_START)
-#define DRM_IOCTL_R128_CCE_STOP DRM_IOW( DRM_COMMAND_BASE + DRM_R128_CCE_STOP, drm_r128_cce_stop_t)
-#define DRM_IOCTL_R128_CCE_RESET DRM_IO( DRM_COMMAND_BASE + DRM_R128_CCE_RESET)
-#define DRM_IOCTL_R128_CCE_IDLE DRM_IO( DRM_COMMAND_BASE + DRM_R128_CCE_IDLE)
-/* 0x05 not used */
-#define DRM_IOCTL_R128_RESET DRM_IO( DRM_COMMAND_BASE + DRM_R128_RESET)
-#define DRM_IOCTL_R128_SWAP DRM_IO( DRM_COMMAND_BASE + DRM_R128_SWAP)
-#define DRM_IOCTL_R128_CLEAR DRM_IOW( DRM_COMMAND_BASE + DRM_R128_CLEAR, drm_r128_clear_t)
-#define DRM_IOCTL_R128_VERTEX DRM_IOW( DRM_COMMAND_BASE + DRM_R128_VERTEX, drm_r128_vertex_t)
-#define DRM_IOCTL_R128_INDICES DRM_IOW( DRM_COMMAND_BASE + DRM_R128_INDICES, drm_r128_indices_t)
-#define DRM_IOCTL_R128_BLIT DRM_IOW( DRM_COMMAND_BASE + DRM_R128_BLIT, drm_r128_blit_t)
-#define DRM_IOCTL_R128_DEPTH DRM_IOW( DRM_COMMAND_BASE + DRM_R128_DEPTH, drm_r128_depth_t)
-#define DRM_IOCTL_R128_STIPPLE DRM_IOW( DRM_COMMAND_BASE + DRM_R128_STIPPLE, drm_r128_stipple_t)
-/* 0x0e not used */
-#define DRM_IOCTL_R128_INDIRECT DRM_IOWR(DRM_COMMAND_BASE + DRM_R128_INDIRECT, drm_r128_indirect_t)
-#define DRM_IOCTL_R128_FULLSCREEN DRM_IOW( DRM_COMMAND_BASE + DRM_R128_FULLSCREEN, drm_r128_fullscreen_t)
-#define DRM_IOCTL_R128_CLEAR2 DRM_IOW( DRM_COMMAND_BASE + DRM_R128_CLEAR2, drm_r128_clear2_t)
-#define DRM_IOCTL_R128_GETPARAM DRM_IOWR( DRM_COMMAND_BASE + DRM_R128_GETPARAM, drm_r128_getparam_t)
-#define DRM_IOCTL_R128_FLIP DRM_IO( DRM_COMMAND_BASE + DRM_R128_FLIP)
-
-typedef struct drm_r128_init {
- enum {
- R128_INIT_CCE = 0x01,
- R128_CLEANUP_CCE = 0x02
- } func;
- unsigned long sarea_priv_offset;
- int is_pci;
- int cce_mode;
- int cce_secure;
- int ring_size;
- int usec_timeout;
-
- unsigned int fb_bpp;
- unsigned int front_offset, front_pitch;
- unsigned int back_offset, back_pitch;
- unsigned int depth_bpp;
- unsigned int depth_offset, depth_pitch;
- unsigned int span_offset;
-
- unsigned long fb_offset;
- unsigned long mmio_offset;
- unsigned long ring_offset;
- unsigned long ring_rptr_offset;
- unsigned long buffers_offset;
- unsigned long agp_textures_offset;
-} drm_r128_init_t;
-
-typedef struct drm_r128_cce_stop {
- int flush;
- int idle;
-} drm_r128_cce_stop_t;
-
-typedef struct drm_r128_clear {
- unsigned int flags;
- unsigned int clear_color;
- unsigned int clear_depth;
- unsigned int color_mask;
- unsigned int depth_mask;
-} drm_r128_clear_t;
-
-typedef struct drm_r128_vertex {
- int prim;
- int idx; /* Index of vertex buffer */
- int count; /* Number of vertices in buffer */
- int discard; /* Client finished with buffer? */
-} drm_r128_vertex_t;
-
-typedef struct drm_r128_indices {
- int prim;
- int idx;
- int start;
- int end;
- int discard; /* Client finished with buffer? */
-} drm_r128_indices_t;
-
-typedef struct drm_r128_blit {
- int idx;
- int pitch;
- int offset;
- int format;
- unsigned short x, y;
- unsigned short width, height;
-} drm_r128_blit_t;
-
-typedef struct drm_r128_depth {
- enum {
- R128_WRITE_SPAN = 0x01,
- R128_WRITE_PIXELS = 0x02,
- R128_READ_SPAN = 0x03,
- R128_READ_PIXELS = 0x04
- } func;
- int n;
- int __user *x;
- int __user *y;
- unsigned int __user *buffer;
- unsigned char __user *mask;
-} drm_r128_depth_t;
-
-typedef struct drm_r128_stipple {
- unsigned int __user *mask;
-} drm_r128_stipple_t;
-
-typedef struct drm_r128_indirect {
- int idx;
- int start;
- int end;
- int discard;
-} drm_r128_indirect_t;
-
-typedef struct drm_r128_fullscreen {
- enum {
- R128_INIT_FULLSCREEN = 0x01,
- R128_CLEANUP_FULLSCREEN = 0x02
- } func;
-} drm_r128_fullscreen_t;
-
-/* 2.3: An ioctl to get parameters that aren't available to the 3d
- * client any other way.
- */
-#define R128_PARAM_IRQ_NR 1
-
-typedef struct drm_r128_getparam {
- int param;
- void __user *value;
-} drm_r128_getparam_t;
-
-#endif
diff --git a/ANDROID_3.4.5/include/drm/radeon_drm.h b/ANDROID_3.4.5/include/drm/radeon_drm.h
deleted file mode 100644
index 7c491b4b..00000000
--- a/ANDROID_3.4.5/include/drm/radeon_drm.h
+++ /dev/null
@@ -1,975 +0,0 @@
-/* radeon_drm.h -- Public header for the radeon driver -*- linux-c -*-
- *
- * Copyright 2000 Precision Insight, Inc., Cedar Park, Texas.
- * Copyright 2000 VA Linux Systems, Inc., Fremont, California.
- * Copyright 2002 Tungsten Graphics, Inc., Cedar Park, Texas.
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- * Authors:
- * Kevin E. Martin <martin@valinux.com>
- * Gareth Hughes <gareth@valinux.com>
- * Keith Whitwell <keith@tungstengraphics.com>
- */
-
-#ifndef __RADEON_DRM_H__
-#define __RADEON_DRM_H__
-
-#include "drm.h"
-
-/* WARNING: If you change any of these defines, make sure to change the
- * defines in the X server file (radeon_sarea.h)
- */
-#ifndef __RADEON_SAREA_DEFINES__
-#define __RADEON_SAREA_DEFINES__
-
-/* Old style state flags, required for sarea interface (1.1 and 1.2
- * clears) and 1.2 drm_vertex2 ioctl.
- */
-#define RADEON_UPLOAD_CONTEXT 0x00000001
-#define RADEON_UPLOAD_VERTFMT 0x00000002
-#define RADEON_UPLOAD_LINE 0x00000004
-#define RADEON_UPLOAD_BUMPMAP 0x00000008
-#define RADEON_UPLOAD_MASKS 0x00000010
-#define RADEON_UPLOAD_VIEWPORT 0x00000020
-#define RADEON_UPLOAD_SETUP 0x00000040
-#define RADEON_UPLOAD_TCL 0x00000080
-#define RADEON_UPLOAD_MISC 0x00000100
-#define RADEON_UPLOAD_TEX0 0x00000200
-#define RADEON_UPLOAD_TEX1 0x00000400
-#define RADEON_UPLOAD_TEX2 0x00000800
-#define RADEON_UPLOAD_TEX0IMAGES 0x00001000
-#define RADEON_UPLOAD_TEX1IMAGES 0x00002000
-#define RADEON_UPLOAD_TEX2IMAGES 0x00004000
-#define RADEON_UPLOAD_CLIPRECTS 0x00008000 /* handled client-side */
-#define RADEON_REQUIRE_QUIESCENCE 0x00010000
-#define RADEON_UPLOAD_ZBIAS 0x00020000 /* version 1.2 and newer */
-#define RADEON_UPLOAD_ALL 0x003effff
-#define RADEON_UPLOAD_CONTEXT_ALL 0x003e01ff
-
-/* New style per-packet identifiers for use in cmd_buffer ioctl with
- * the RADEON_EMIT_PACKET command. Comments relate new packets to old
- * state bits and the packet size:
- */
-#define RADEON_EMIT_PP_MISC 0 /* context/7 */
-#define RADEON_EMIT_PP_CNTL 1 /* context/3 */
-#define RADEON_EMIT_RB3D_COLORPITCH 2 /* context/1 */
-#define RADEON_EMIT_RE_LINE_PATTERN 3 /* line/2 */
-#define RADEON_EMIT_SE_LINE_WIDTH 4 /* line/1 */
-#define RADEON_EMIT_PP_LUM_MATRIX 5 /* bumpmap/1 */
-#define RADEON_EMIT_PP_ROT_MATRIX_0 6 /* bumpmap/2 */
-#define RADEON_EMIT_RB3D_STENCILREFMASK 7 /* masks/3 */
-#define RADEON_EMIT_SE_VPORT_XSCALE 8 /* viewport/6 */
-#define RADEON_EMIT_SE_CNTL 9 /* setup/2 */
-#define RADEON_EMIT_SE_CNTL_STATUS 10 /* setup/1 */
-#define RADEON_EMIT_RE_MISC 11 /* misc/1 */
-#define RADEON_EMIT_PP_TXFILTER_0 12 /* tex0/6 */
-#define RADEON_EMIT_PP_BORDER_COLOR_0 13 /* tex0/1 */
-#define RADEON_EMIT_PP_TXFILTER_1 14 /* tex1/6 */
-#define RADEON_EMIT_PP_BORDER_COLOR_1 15 /* tex1/1 */
-#define RADEON_EMIT_PP_TXFILTER_2 16 /* tex2/6 */
-#define RADEON_EMIT_PP_BORDER_COLOR_2 17 /* tex2/1 */
-#define RADEON_EMIT_SE_ZBIAS_FACTOR 18 /* zbias/2 */
-#define RADEON_EMIT_SE_TCL_OUTPUT_VTX_FMT 19 /* tcl/11 */
-#define RADEON_EMIT_SE_TCL_MATERIAL_EMMISSIVE_RED 20 /* material/17 */
-#define R200_EMIT_PP_TXCBLEND_0 21 /* tex0/4 */
-#define R200_EMIT_PP_TXCBLEND_1 22 /* tex1/4 */
-#define R200_EMIT_PP_TXCBLEND_2 23 /* tex2/4 */
-#define R200_EMIT_PP_TXCBLEND_3 24 /* tex3/4 */
-#define R200_EMIT_PP_TXCBLEND_4 25 /* tex4/4 */
-#define R200_EMIT_PP_TXCBLEND_5 26 /* tex5/4 */
-#define R200_EMIT_PP_TXCBLEND_6 27 /* /4 */
-#define R200_EMIT_PP_TXCBLEND_7 28 /* /4 */
-#define R200_EMIT_TCL_LIGHT_MODEL_CTL_0 29 /* tcl/7 */
-#define R200_EMIT_TFACTOR_0 30 /* tf/7 */
-#define R200_EMIT_VTX_FMT_0 31 /* vtx/5 */
-#define R200_EMIT_VAP_CTL 32 /* vap/1 */
-#define R200_EMIT_MATRIX_SELECT_0 33 /* msl/5 */
-#define R200_EMIT_TEX_PROC_CTL_2 34 /* tcg/5 */
-#define R200_EMIT_TCL_UCP_VERT_BLEND_CTL 35 /* tcl/1 */
-#define R200_EMIT_PP_TXFILTER_0 36 /* tex0/6 */
-#define R200_EMIT_PP_TXFILTER_1 37 /* tex1/6 */
-#define R200_EMIT_PP_TXFILTER_2 38 /* tex2/6 */
-#define R200_EMIT_PP_TXFILTER_3 39 /* tex3/6 */
-#define R200_EMIT_PP_TXFILTER_4 40 /* tex4/6 */
-#define R200_EMIT_PP_TXFILTER_5 41 /* tex5/6 */
-#define R200_EMIT_PP_TXOFFSET_0 42 /* tex0/1 */
-#define R200_EMIT_PP_TXOFFSET_1 43 /* tex1/1 */
-#define R200_EMIT_PP_TXOFFSET_2 44 /* tex2/1 */
-#define R200_EMIT_PP_TXOFFSET_3 45 /* tex3/1 */
-#define R200_EMIT_PP_TXOFFSET_4 46 /* tex4/1 */
-#define R200_EMIT_PP_TXOFFSET_5 47 /* tex5/1 */
-#define R200_EMIT_VTE_CNTL 48 /* vte/1 */
-#define R200_EMIT_OUTPUT_VTX_COMP_SEL 49 /* vtx/1 */
-#define R200_EMIT_PP_TAM_DEBUG3 50 /* tam/1 */
-#define R200_EMIT_PP_CNTL_X 51 /* cst/1 */
-#define R200_EMIT_RB3D_DEPTHXY_OFFSET 52 /* cst/1 */
-#define R200_EMIT_RE_AUX_SCISSOR_CNTL 53 /* cst/1 */
-#define R200_EMIT_RE_SCISSOR_TL_0 54 /* cst/2 */
-#define R200_EMIT_RE_SCISSOR_TL_1 55 /* cst/2 */
-#define R200_EMIT_RE_SCISSOR_TL_2 56 /* cst/2 */
-#define R200_EMIT_SE_VAP_CNTL_STATUS 57 /* cst/1 */
-#define R200_EMIT_SE_VTX_STATE_CNTL 58 /* cst/1 */
-#define R200_EMIT_RE_POINTSIZE 59 /* cst/1 */
-#define R200_EMIT_TCL_INPUT_VTX_VECTOR_ADDR_0 60 /* cst/4 */
-#define R200_EMIT_PP_CUBIC_FACES_0 61
-#define R200_EMIT_PP_CUBIC_OFFSETS_0 62
-#define R200_EMIT_PP_CUBIC_FACES_1 63
-#define R200_EMIT_PP_CUBIC_OFFSETS_1 64
-#define R200_EMIT_PP_CUBIC_FACES_2 65
-#define R200_EMIT_PP_CUBIC_OFFSETS_2 66
-#define R200_EMIT_PP_CUBIC_FACES_3 67
-#define R200_EMIT_PP_CUBIC_OFFSETS_3 68
-#define R200_EMIT_PP_CUBIC_FACES_4 69
-#define R200_EMIT_PP_CUBIC_OFFSETS_4 70
-#define R200_EMIT_PP_CUBIC_FACES_5 71
-#define R200_EMIT_PP_CUBIC_OFFSETS_5 72
-#define RADEON_EMIT_PP_TEX_SIZE_0 73
-#define RADEON_EMIT_PP_TEX_SIZE_1 74
-#define RADEON_EMIT_PP_TEX_SIZE_2 75
-#define R200_EMIT_RB3D_BLENDCOLOR 76
-#define R200_EMIT_TCL_POINT_SPRITE_CNTL 77
-#define RADEON_EMIT_PP_CUBIC_FACES_0 78
-#define RADEON_EMIT_PP_CUBIC_OFFSETS_T0 79
-#define RADEON_EMIT_PP_CUBIC_FACES_1 80
-#define RADEON_EMIT_PP_CUBIC_OFFSETS_T1 81
-#define RADEON_EMIT_PP_CUBIC_FACES_2 82
-#define RADEON_EMIT_PP_CUBIC_OFFSETS_T2 83
-#define R200_EMIT_PP_TRI_PERF_CNTL 84
-#define R200_EMIT_PP_AFS_0 85
-#define R200_EMIT_PP_AFS_1 86
-#define R200_EMIT_ATF_TFACTOR 87
-#define R200_EMIT_PP_TXCTLALL_0 88
-#define R200_EMIT_PP_TXCTLALL_1 89
-#define R200_EMIT_PP_TXCTLALL_2 90
-#define R200_EMIT_PP_TXCTLALL_3 91
-#define R200_EMIT_PP_TXCTLALL_4 92
-#define R200_EMIT_PP_TXCTLALL_5 93
-#define R200_EMIT_VAP_PVS_CNTL 94
-#define RADEON_MAX_STATE_PACKETS 95
-
-/* Commands understood by cmd_buffer ioctl. More can be added but
- * obviously these can't be removed or changed:
- */
-#define RADEON_CMD_PACKET 1 /* emit one of the register packets above */
-#define RADEON_CMD_SCALARS 2 /* emit scalar data */
-#define RADEON_CMD_VECTORS 3 /* emit vector data */
-#define RADEON_CMD_DMA_DISCARD 4 /* discard current dma buf */
-#define RADEON_CMD_PACKET3 5 /* emit hw packet */
-#define RADEON_CMD_PACKET3_CLIP 6 /* emit hw packet wrapped in cliprects */
-#define RADEON_CMD_SCALARS2 7 /* r200 stopgap */
-#define RADEON_CMD_WAIT 8 /* emit hw wait commands -- note:
- * doesn't make the cpu wait, just
- * the graphics hardware */
-#define RADEON_CMD_VECLINEAR 9 /* another r200 stopgap */
-
-typedef union {
- int i;
- struct {
- unsigned char cmd_type, pad0, pad1, pad2;
- } header;
- struct {
- unsigned char cmd_type, packet_id, pad0, pad1;
- } packet;
- struct {
- unsigned char cmd_type, offset, stride, count;
- } scalars;
- struct {
- unsigned char cmd_type, offset, stride, count;
- } vectors;
- struct {
- unsigned char cmd_type, addr_lo, addr_hi, count;
- } veclinear;
- struct {
- unsigned char cmd_type, buf_idx, pad0, pad1;
- } dma;
- struct {
- unsigned char cmd_type, flags, pad0, pad1;
- } wait;
-} drm_radeon_cmd_header_t;
-
-#define RADEON_WAIT_2D 0x1
-#define RADEON_WAIT_3D 0x2
-
-/* Allowed parameters for R300_CMD_PACKET3
- */
-#define R300_CMD_PACKET3_CLEAR 0
-#define R300_CMD_PACKET3_RAW 1
-
-/* Commands understood by cmd_buffer ioctl for R300.
- * The interface has not been stabilized, so some of these may be removed
- * and eventually reordered before stabilization.
- */
-#define R300_CMD_PACKET0 1
-#define R300_CMD_VPU 2 /* emit vertex program upload */
-#define R300_CMD_PACKET3 3 /* emit a packet3 */
-#define R300_CMD_END3D 4 /* emit sequence ending 3d rendering */
-#define R300_CMD_CP_DELAY 5
-#define R300_CMD_DMA_DISCARD 6
-#define R300_CMD_WAIT 7
-# define R300_WAIT_2D 0x1
-# define R300_WAIT_3D 0x2
-/* these two defines are DOING IT WRONG - however
- * we have userspace which relies on using these.
- * The wait interface is backwards compat new
- * code should use the NEW_WAIT defines below
- * THESE ARE NOT BIT FIELDS
- */
-# define R300_WAIT_2D_CLEAN 0x3
-# define R300_WAIT_3D_CLEAN 0x4
-
-# define R300_NEW_WAIT_2D_3D 0x3
-# define R300_NEW_WAIT_2D_2D_CLEAN 0x4
-# define R300_NEW_WAIT_3D_3D_CLEAN 0x6
-# define R300_NEW_WAIT_2D_2D_CLEAN_3D_3D_CLEAN 0x8
-
-#define R300_CMD_SCRATCH 8
-#define R300_CMD_R500FP 9
-
-typedef union {
- unsigned int u;
- struct {
- unsigned char cmd_type, pad0, pad1, pad2;
- } header;
- struct {
- unsigned char cmd_type, count, reglo, reghi;
- } packet0;
- struct {
- unsigned char cmd_type, count, adrlo, adrhi;
- } vpu;
- struct {
- unsigned char cmd_type, packet, pad0, pad1;
- } packet3;
- struct {
- unsigned char cmd_type, packet;
- unsigned short count; /* amount of packet2 to emit */
- } delay;
- struct {
- unsigned char cmd_type, buf_idx, pad0, pad1;
- } dma;
- struct {
- unsigned char cmd_type, flags, pad0, pad1;
- } wait;
- struct {
- unsigned char cmd_type, reg, n_bufs, flags;
- } scratch;
- struct {
- unsigned char cmd_type, count, adrlo, adrhi_flags;
- } r500fp;
-} drm_r300_cmd_header_t;
-
-#define RADEON_FRONT 0x1
-#define RADEON_BACK 0x2
-#define RADEON_DEPTH 0x4
-#define RADEON_STENCIL 0x8
-#define RADEON_CLEAR_FASTZ 0x80000000
-#define RADEON_USE_HIERZ 0x40000000
-#define RADEON_USE_COMP_ZBUF 0x20000000
-
-#define R500FP_CONSTANT_TYPE (1 << 1)
-#define R500FP_CONSTANT_CLAMP (1 << 2)
-
-/* Primitive types
- */
-#define RADEON_POINTS 0x1
-#define RADEON_LINES 0x2
-#define RADEON_LINE_STRIP 0x3
-#define RADEON_TRIANGLES 0x4
-#define RADEON_TRIANGLE_FAN 0x5
-#define RADEON_TRIANGLE_STRIP 0x6
-
-/* Vertex/indirect buffer size
- */
-#define RADEON_BUFFER_SIZE 65536
-
-/* Byte offsets for indirect buffer data
- */
-#define RADEON_INDEX_PRIM_OFFSET 20
-
-#define RADEON_SCRATCH_REG_OFFSET 32
-
-#define R600_SCRATCH_REG_OFFSET 256
-
-#define RADEON_NR_SAREA_CLIPRECTS 12
-
-/* There are 2 heaps (local/GART). Each region within a heap is a
- * minimum of 64k, and there are at most 64 of them per heap.
- */
-#define RADEON_LOCAL_TEX_HEAP 0
-#define RADEON_GART_TEX_HEAP 1
-#define RADEON_NR_TEX_HEAPS 2
-#define RADEON_NR_TEX_REGIONS 64
-#define RADEON_LOG_TEX_GRANULARITY 16
-
-#define RADEON_MAX_TEXTURE_LEVELS 12
-#define RADEON_MAX_TEXTURE_UNITS 3
-
-#define RADEON_MAX_SURFACES 8
-
-/* Blits have strict offset rules. All blit offset must be aligned on
- * a 1K-byte boundary.
- */
-#define RADEON_OFFSET_SHIFT 10
-#define RADEON_OFFSET_ALIGN (1 << RADEON_OFFSET_SHIFT)
-#define RADEON_OFFSET_MASK (RADEON_OFFSET_ALIGN - 1)
-
-#endif /* __RADEON_SAREA_DEFINES__ */
-
-typedef struct {
- unsigned int red;
- unsigned int green;
- unsigned int blue;
- unsigned int alpha;
-} radeon_color_regs_t;
-
-typedef struct {
- /* Context state */
- unsigned int pp_misc; /* 0x1c14 */
- unsigned int pp_fog_color;
- unsigned int re_solid_color;
- unsigned int rb3d_blendcntl;
- unsigned int rb3d_depthoffset;
- unsigned int rb3d_depthpitch;
- unsigned int rb3d_zstencilcntl;
-
- unsigned int pp_cntl; /* 0x1c38 */
- unsigned int rb3d_cntl;
- unsigned int rb3d_coloroffset;
- unsigned int re_width_height;
- unsigned int rb3d_colorpitch;
- unsigned int se_cntl;
-
- /* Vertex format state */
- unsigned int se_coord_fmt; /* 0x1c50 */
-
- /* Line state */
- unsigned int re_line_pattern; /* 0x1cd0 */
- unsigned int re_line_state;
-
- unsigned int se_line_width; /* 0x1db8 */
-
- /* Bumpmap state */
- unsigned int pp_lum_matrix; /* 0x1d00 */
-
- unsigned int pp_rot_matrix_0; /* 0x1d58 */
- unsigned int pp_rot_matrix_1;
-
- /* Mask state */
- unsigned int rb3d_stencilrefmask; /* 0x1d7c */
- unsigned int rb3d_ropcntl;
- unsigned int rb3d_planemask;
-
- /* Viewport state */
- unsigned int se_vport_xscale; /* 0x1d98 */
- unsigned int se_vport_xoffset;
- unsigned int se_vport_yscale;
- unsigned int se_vport_yoffset;
- unsigned int se_vport_zscale;
- unsigned int se_vport_zoffset;
-
- /* Setup state */
- unsigned int se_cntl_status; /* 0x2140 */
-
- /* Misc state */
- unsigned int re_top_left; /* 0x26c0 */
- unsigned int re_misc;
-} drm_radeon_context_regs_t;
-
-typedef struct {
- /* Zbias state */
- unsigned int se_zbias_factor; /* 0x1dac */
- unsigned int se_zbias_constant;
-} drm_radeon_context2_regs_t;
-
-/* Setup registers for each texture unit
- */
-typedef struct {
- unsigned int pp_txfilter;
- unsigned int pp_txformat;
- unsigned int pp_txoffset;
- unsigned int pp_txcblend;
- unsigned int pp_txablend;
- unsigned int pp_tfactor;
- unsigned int pp_border_color;
-} drm_radeon_texture_regs_t;
-
-typedef struct {
- unsigned int start;
- unsigned int finish;
- unsigned int prim:8;
- unsigned int stateidx:8;
- unsigned int numverts:16; /* overloaded as offset/64 for elt prims */
- unsigned int vc_format; /* vertex format */
-} drm_radeon_prim_t;
-
-typedef struct {
- drm_radeon_context_regs_t context;
- drm_radeon_texture_regs_t tex[RADEON_MAX_TEXTURE_UNITS];
- drm_radeon_context2_regs_t context2;
- unsigned int dirty;
-} drm_radeon_state_t;
-
-typedef struct {
- /* The channel for communication of state information to the
- * kernel on firing a vertex buffer with either of the
- * obsoleted vertex/index ioctls.
- */
- drm_radeon_context_regs_t context_state;
- drm_radeon_texture_regs_t tex_state[RADEON_MAX_TEXTURE_UNITS];
- unsigned int dirty;
- unsigned int vertsize;
- unsigned int vc_format;
-
- /* The current cliprects, or a subset thereof.
- */
- struct drm_clip_rect boxes[RADEON_NR_SAREA_CLIPRECTS];
- unsigned int nbox;
-
- /* Counters for client-side throttling of rendering clients.
- */
- unsigned int last_frame;
- unsigned int last_dispatch;
- unsigned int last_clear;
-
- struct drm_tex_region tex_list[RADEON_NR_TEX_HEAPS][RADEON_NR_TEX_REGIONS +
- 1];
- unsigned int tex_age[RADEON_NR_TEX_HEAPS];
- int ctx_owner;
- int pfState; /* number of 3d windows (0,1,2ormore) */
- int pfCurrentPage; /* which buffer is being displayed? */
- int crtc2_base; /* CRTC2 frame offset */
- int tiling_enabled; /* set by drm, read by 2d + 3d clients */
-} drm_radeon_sarea_t;
-
-/* WARNING: If you change any of these defines, make sure to change the
- * defines in the Xserver file (xf86drmRadeon.h)
- *
- * KW: actually it's illegal to change any of this (backwards compatibility).
- */
-
-/* Radeon specific ioctls
- * The device specific ioctl range is 0x40 to 0x79.
- */
-#define DRM_RADEON_CP_INIT 0x00
-#define DRM_RADEON_CP_START 0x01
-#define DRM_RADEON_CP_STOP 0x02
-#define DRM_RADEON_CP_RESET 0x03
-#define DRM_RADEON_CP_IDLE 0x04
-#define DRM_RADEON_RESET 0x05
-#define DRM_RADEON_FULLSCREEN 0x06
-#define DRM_RADEON_SWAP 0x07
-#define DRM_RADEON_CLEAR 0x08
-#define DRM_RADEON_VERTEX 0x09
-#define DRM_RADEON_INDICES 0x0A
-#define DRM_RADEON_NOT_USED
-#define DRM_RADEON_STIPPLE 0x0C
-#define DRM_RADEON_INDIRECT 0x0D
-#define DRM_RADEON_TEXTURE 0x0E
-#define DRM_RADEON_VERTEX2 0x0F
-#define DRM_RADEON_CMDBUF 0x10
-#define DRM_RADEON_GETPARAM 0x11
-#define DRM_RADEON_FLIP 0x12
-#define DRM_RADEON_ALLOC 0x13
-#define DRM_RADEON_FREE 0x14
-#define DRM_RADEON_INIT_HEAP 0x15
-#define DRM_RADEON_IRQ_EMIT 0x16
-#define DRM_RADEON_IRQ_WAIT 0x17
-#define DRM_RADEON_CP_RESUME 0x18
-#define DRM_RADEON_SETPARAM 0x19
-#define DRM_RADEON_SURF_ALLOC 0x1a
-#define DRM_RADEON_SURF_FREE 0x1b
-/* KMS ioctl */
-#define DRM_RADEON_GEM_INFO 0x1c
-#define DRM_RADEON_GEM_CREATE 0x1d
-#define DRM_RADEON_GEM_MMAP 0x1e
-#define DRM_RADEON_GEM_PREAD 0x21
-#define DRM_RADEON_GEM_PWRITE 0x22
-#define DRM_RADEON_GEM_SET_DOMAIN 0x23
-#define DRM_RADEON_GEM_WAIT_IDLE 0x24
-#define DRM_RADEON_CS 0x26
-#define DRM_RADEON_INFO 0x27
-#define DRM_RADEON_GEM_SET_TILING 0x28
-#define DRM_RADEON_GEM_GET_TILING 0x29
-#define DRM_RADEON_GEM_BUSY 0x2a
-#define DRM_RADEON_GEM_VA 0x2b
-
-#define DRM_IOCTL_RADEON_CP_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CP_INIT, drm_radeon_init_t)
-#define DRM_IOCTL_RADEON_CP_START DRM_IO( DRM_COMMAND_BASE + DRM_RADEON_CP_START)
-#define DRM_IOCTL_RADEON_CP_STOP DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CP_STOP, drm_radeon_cp_stop_t)
-#define DRM_IOCTL_RADEON_CP_RESET DRM_IO( DRM_COMMAND_BASE + DRM_RADEON_CP_RESET)
-#define DRM_IOCTL_RADEON_CP_IDLE DRM_IO( DRM_COMMAND_BASE + DRM_RADEON_CP_IDLE)
-#define DRM_IOCTL_RADEON_RESET DRM_IO( DRM_COMMAND_BASE + DRM_RADEON_RESET)
-#define DRM_IOCTL_RADEON_FULLSCREEN DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_FULLSCREEN, drm_radeon_fullscreen_t)
-#define DRM_IOCTL_RADEON_SWAP DRM_IO( DRM_COMMAND_BASE + DRM_RADEON_SWAP)
-#define DRM_IOCTL_RADEON_CLEAR DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CLEAR, drm_radeon_clear_t)
-#define DRM_IOCTL_RADEON_VERTEX DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_VERTEX, drm_radeon_vertex_t)
-#define DRM_IOCTL_RADEON_INDICES DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_INDICES, drm_radeon_indices_t)
-#define DRM_IOCTL_RADEON_STIPPLE DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_STIPPLE, drm_radeon_stipple_t)
-#define DRM_IOCTL_RADEON_INDIRECT DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_INDIRECT, drm_radeon_indirect_t)
-#define DRM_IOCTL_RADEON_TEXTURE DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_TEXTURE, drm_radeon_texture_t)
-#define DRM_IOCTL_RADEON_VERTEX2 DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_VERTEX2, drm_radeon_vertex2_t)
-#define DRM_IOCTL_RADEON_CMDBUF DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CMDBUF, drm_radeon_cmd_buffer_t)
-#define DRM_IOCTL_RADEON_GETPARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GETPARAM, drm_radeon_getparam_t)
-#define DRM_IOCTL_RADEON_FLIP DRM_IO( DRM_COMMAND_BASE + DRM_RADEON_FLIP)
-#define DRM_IOCTL_RADEON_ALLOC DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_ALLOC, drm_radeon_mem_alloc_t)
-#define DRM_IOCTL_RADEON_FREE DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_FREE, drm_radeon_mem_free_t)
-#define DRM_IOCTL_RADEON_INIT_HEAP DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_INIT_HEAP, drm_radeon_mem_init_heap_t)
-#define DRM_IOCTL_RADEON_IRQ_EMIT DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_IRQ_EMIT, drm_radeon_irq_emit_t)
-#define DRM_IOCTL_RADEON_IRQ_WAIT DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_IRQ_WAIT, drm_radeon_irq_wait_t)
-#define DRM_IOCTL_RADEON_CP_RESUME DRM_IO( DRM_COMMAND_BASE + DRM_RADEON_CP_RESUME)
-#define DRM_IOCTL_RADEON_SETPARAM DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_SETPARAM, drm_radeon_setparam_t)
-#define DRM_IOCTL_RADEON_SURF_ALLOC DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_SURF_ALLOC, drm_radeon_surface_alloc_t)
-#define DRM_IOCTL_RADEON_SURF_FREE DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_SURF_FREE, drm_radeon_surface_free_t)
-/* KMS */
-#define DRM_IOCTL_RADEON_GEM_INFO DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_INFO, struct drm_radeon_gem_info)
-#define DRM_IOCTL_RADEON_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_CREATE, struct drm_radeon_gem_create)
-#define DRM_IOCTL_RADEON_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_MMAP, struct drm_radeon_gem_mmap)
-#define DRM_IOCTL_RADEON_GEM_PREAD DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_PREAD, struct drm_radeon_gem_pread)
-#define DRM_IOCTL_RADEON_GEM_PWRITE DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_PWRITE, struct drm_radeon_gem_pwrite)
-#define DRM_IOCTL_RADEON_GEM_SET_DOMAIN DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_SET_DOMAIN, struct drm_radeon_gem_set_domain)
-#define DRM_IOCTL_RADEON_GEM_WAIT_IDLE DRM_IOW(DRM_COMMAND_BASE + DRM_RADEON_GEM_WAIT_IDLE, struct drm_radeon_gem_wait_idle)
-#define DRM_IOCTL_RADEON_CS DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_CS, struct drm_radeon_cs)
-#define DRM_IOCTL_RADEON_INFO DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_INFO, struct drm_radeon_info)
-#define DRM_IOCTL_RADEON_GEM_SET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_SET_TILING, struct drm_radeon_gem_set_tiling)
-#define DRM_IOCTL_RADEON_GEM_GET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_GET_TILING, struct drm_radeon_gem_get_tiling)
-#define DRM_IOCTL_RADEON_GEM_BUSY DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_BUSY, struct drm_radeon_gem_busy)
-#define DRM_IOCTL_RADEON_GEM_VA DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_VA, struct drm_radeon_gem_va)
-
-typedef struct drm_radeon_init {
- enum {
- RADEON_INIT_CP = 0x01,
- RADEON_CLEANUP_CP = 0x02,
- RADEON_INIT_R200_CP = 0x03,
- RADEON_INIT_R300_CP = 0x04,
- RADEON_INIT_R600_CP = 0x05
- } func;
- unsigned long sarea_priv_offset;
- int is_pci;
- int cp_mode;
- int gart_size;
- int ring_size;
- int usec_timeout;
-
- unsigned int fb_bpp;
- unsigned int front_offset, front_pitch;
- unsigned int back_offset, back_pitch;
- unsigned int depth_bpp;
- unsigned int depth_offset, depth_pitch;
-
- unsigned long fb_offset;
- unsigned long mmio_offset;
- unsigned long ring_offset;
- unsigned long ring_rptr_offset;
- unsigned long buffers_offset;
- unsigned long gart_textures_offset;
-} drm_radeon_init_t;
-
-typedef struct drm_radeon_cp_stop {
- int flush;
- int idle;
-} drm_radeon_cp_stop_t;
-
-typedef struct drm_radeon_fullscreen {
- enum {
- RADEON_INIT_FULLSCREEN = 0x01,
- RADEON_CLEANUP_FULLSCREEN = 0x02
- } func;
-} drm_radeon_fullscreen_t;
-
-#define CLEAR_X1 0
-#define CLEAR_Y1 1
-#define CLEAR_X2 2
-#define CLEAR_Y2 3
-#define CLEAR_DEPTH 4
-
-typedef union drm_radeon_clear_rect {
- float f[5];
- unsigned int ui[5];
-} drm_radeon_clear_rect_t;
-
-typedef struct drm_radeon_clear {
- unsigned int flags;
- unsigned int clear_color;
- unsigned int clear_depth;
- unsigned int color_mask;
- unsigned int depth_mask; /* misnamed field: should be stencil */
- drm_radeon_clear_rect_t __user *depth_boxes;
-} drm_radeon_clear_t;
-
-typedef struct drm_radeon_vertex {
- int prim;
- int idx; /* Index of vertex buffer */
- int count; /* Number of vertices in buffer */
- int discard; /* Client finished with buffer? */
-} drm_radeon_vertex_t;
-
-typedef struct drm_radeon_indices {
- int prim;
- int idx;
- int start;
- int end;
- int discard; /* Client finished with buffer? */
-} drm_radeon_indices_t;
-
-/* v1.2 - obsoletes drm_radeon_vertex and drm_radeon_indices
- * - allows multiple primitives and state changes in a single ioctl
- * - supports driver change to emit native primitives
- */
-typedef struct drm_radeon_vertex2 {
- int idx; /* Index of vertex buffer */
- int discard; /* Client finished with buffer? */
- int nr_states;
- drm_radeon_state_t __user *state;
- int nr_prims;
- drm_radeon_prim_t __user *prim;
-} drm_radeon_vertex2_t;
-
-/* v1.3 - obsoletes drm_radeon_vertex2
- * - allows arbitrarily large cliprect list
- * - allows updating of tcl packet, vector and scalar state
- * - allows memory-efficient description of state updates
- * - allows state to be emitted without a primitive
- * (for clears, ctx switches)
- * - allows more than one dma buffer to be referenced per ioctl
- * - supports tcl driver
- * - may be extended in future versions with new cmd types, packets
- */
-typedef struct drm_radeon_cmd_buffer {
- int bufsz;
- char __user *buf;
- int nbox;
- struct drm_clip_rect __user *boxes;
-} drm_radeon_cmd_buffer_t;
-
-typedef struct drm_radeon_tex_image {
- unsigned int x, y; /* Blit coordinates */
- unsigned int width, height;
- const void __user *data;
-} drm_radeon_tex_image_t;
-
-typedef struct drm_radeon_texture {
- unsigned int offset;
- int pitch;
- int format;
- int width; /* Texture image coordinates */
- int height;
- drm_radeon_tex_image_t __user *image;
-} drm_radeon_texture_t;
-
-typedef struct drm_radeon_stipple {
- unsigned int __user *mask;
-} drm_radeon_stipple_t;
-
-typedef struct drm_radeon_indirect {
- int idx;
- int start;
- int end;
- int discard;
-} drm_radeon_indirect_t;
-
-/* enum for card type parameters */
-#define RADEON_CARD_PCI 0
-#define RADEON_CARD_AGP 1
-#define RADEON_CARD_PCIE 2
-
-/* 1.3: An ioctl to get parameters that aren't available to the 3d
- * client any other way.
- */
-#define RADEON_PARAM_GART_BUFFER_OFFSET 1 /* card offset of 1st GART buffer */
-#define RADEON_PARAM_LAST_FRAME 2
-#define RADEON_PARAM_LAST_DISPATCH 3
-#define RADEON_PARAM_LAST_CLEAR 4
-/* Added with DRM version 1.6. */
-#define RADEON_PARAM_IRQ_NR 5
-#define RADEON_PARAM_GART_BASE 6 /* card offset of GART base */
-/* Added with DRM version 1.8. */
-#define RADEON_PARAM_REGISTER_HANDLE 7 /* for drmMap() */
-#define RADEON_PARAM_STATUS_HANDLE 8
-#define RADEON_PARAM_SAREA_HANDLE 9
-#define RADEON_PARAM_GART_TEX_HANDLE 10
-#define RADEON_PARAM_SCRATCH_OFFSET 11
-#define RADEON_PARAM_CARD_TYPE 12
-#define RADEON_PARAM_VBLANK_CRTC 13 /* VBLANK CRTC */
-#define RADEON_PARAM_FB_LOCATION 14 /* FB location */
-#define RADEON_PARAM_NUM_GB_PIPES 15 /* num GB pipes */
-#define RADEON_PARAM_DEVICE_ID 16
-#define RADEON_PARAM_NUM_Z_PIPES 17 /* num Z pipes */
-
-typedef struct drm_radeon_getparam {
- int param;
- void __user *value;
-} drm_radeon_getparam_t;
-
-/* 1.6: Set up a memory manager for regions of shared memory:
- */
-#define RADEON_MEM_REGION_GART 1
-#define RADEON_MEM_REGION_FB 2
-
-typedef struct drm_radeon_mem_alloc {
- int region;
- int alignment;
- int size;
- int __user *region_offset; /* offset from start of fb or GART */
-} drm_radeon_mem_alloc_t;
-
-typedef struct drm_radeon_mem_free {
- int region;
- int region_offset;
-} drm_radeon_mem_free_t;
-
-typedef struct drm_radeon_mem_init_heap {
- int region;
- int size;
- int start;
-} drm_radeon_mem_init_heap_t;
-
-/* 1.6: Userspace can request & wait on irq's:
- */
-typedef struct drm_radeon_irq_emit {
- int __user *irq_seq;
-} drm_radeon_irq_emit_t;
-
-typedef struct drm_radeon_irq_wait {
- int irq_seq;
-} drm_radeon_irq_wait_t;
-
-/* 1.10: Clients tell the DRM where they think the framebuffer is located in
- * the card's address space, via a new generic ioctl to set parameters
- */
-
-typedef struct drm_radeon_setparam {
- unsigned int param;
- __s64 value;
-} drm_radeon_setparam_t;
-
-#define RADEON_SETPARAM_FB_LOCATION 1 /* determined framebuffer location */
-#define RADEON_SETPARAM_SWITCH_TILING 2 /* enable/disable color tiling */
-#define RADEON_SETPARAM_PCIGART_LOCATION 3 /* PCI Gart Location */
-#define RADEON_SETPARAM_NEW_MEMMAP 4 /* Use new memory map */
-#define RADEON_SETPARAM_PCIGART_TABLE_SIZE 5 /* PCI GART Table Size */
-#define RADEON_SETPARAM_VBLANK_CRTC 6 /* VBLANK CRTC */
-/* 1.14: Clients can allocate/free a surface
- */
-typedef struct drm_radeon_surface_alloc {
- unsigned int address;
- unsigned int size;
- unsigned int flags;
-} drm_radeon_surface_alloc_t;
-
-typedef struct drm_radeon_surface_free {
- unsigned int address;
-} drm_radeon_surface_free_t;
-
-#define DRM_RADEON_VBLANK_CRTC1 1
-#define DRM_RADEON_VBLANK_CRTC2 2
-
-/*
- * Kernel modesetting world below.
- */
-#define RADEON_GEM_DOMAIN_CPU 0x1
-#define RADEON_GEM_DOMAIN_GTT 0x2
-#define RADEON_GEM_DOMAIN_VRAM 0x4
-
-struct drm_radeon_gem_info {
- uint64_t gart_size;
- uint64_t vram_size;
- uint64_t vram_visible;
-};
-
-#define RADEON_GEM_NO_BACKING_STORE 1
-
-struct drm_radeon_gem_create {
- uint64_t size;
- uint64_t alignment;
- uint32_t handle;
- uint32_t initial_domain;
- uint32_t flags;
-};
-
-#define RADEON_TILING_MACRO 0x1
-#define RADEON_TILING_MICRO 0x2
-#define RADEON_TILING_SWAP_16BIT 0x4
-#define RADEON_TILING_SWAP_32BIT 0x8
-/* this object requires a surface when mapped - i.e. front buffer */
-#define RADEON_TILING_SURFACE 0x10
-#define RADEON_TILING_MICRO_SQUARE 0x20
-#define RADEON_TILING_EG_BANKW_SHIFT 8
-#define RADEON_TILING_EG_BANKW_MASK 0xf
-#define RADEON_TILING_EG_BANKH_SHIFT 12
-#define RADEON_TILING_EG_BANKH_MASK 0xf
-#define RADEON_TILING_EG_MACRO_TILE_ASPECT_SHIFT 16
-#define RADEON_TILING_EG_MACRO_TILE_ASPECT_MASK 0xf
-#define RADEON_TILING_EG_TILE_SPLIT_SHIFT 24
-#define RADEON_TILING_EG_TILE_SPLIT_MASK 0xf
-#define RADEON_TILING_EG_STENCIL_TILE_SPLIT_SHIFT 28
-#define RADEON_TILING_EG_STENCIL_TILE_SPLIT_MASK 0xf
-
-struct drm_radeon_gem_set_tiling {
- uint32_t handle;
- uint32_t tiling_flags;
- uint32_t pitch;
-};
-
-struct drm_radeon_gem_get_tiling {
- uint32_t handle;
- uint32_t tiling_flags;
- uint32_t pitch;
-};
-
-struct drm_radeon_gem_mmap {
- uint32_t handle;
- uint32_t pad;
- uint64_t offset;
- uint64_t size;
- uint64_t addr_ptr;
-};
-
-struct drm_radeon_gem_set_domain {
- uint32_t handle;
- uint32_t read_domains;
- uint32_t write_domain;
-};
-
-struct drm_radeon_gem_wait_idle {
- uint32_t handle;
- uint32_t pad;
-};
-
-struct drm_radeon_gem_busy {
- uint32_t handle;
- uint32_t domain;
-};
-
-struct drm_radeon_gem_pread {
- /** Handle for the object being read. */
- uint32_t handle;
- uint32_t pad;
- /** Offset into the object to read from */
- uint64_t offset;
- /** Length of data to read */
- uint64_t size;
- /** Pointer to write the data into. */
- /* void *, but pointers are not 32/64 compatible */
- uint64_t data_ptr;
-};
-
-struct drm_radeon_gem_pwrite {
- /** Handle for the object being written to. */
- uint32_t handle;
- uint32_t pad;
- /** Offset into the object to write to */
- uint64_t offset;
- /** Length of data to write */
- uint64_t size;
- /** Pointer to read the data from. */
- /* void *, but pointers are not 32/64 compatible */
- uint64_t data_ptr;
-};
-
-#define RADEON_VA_MAP 1
-#define RADEON_VA_UNMAP 2
-
-#define RADEON_VA_RESULT_OK 0
-#define RADEON_VA_RESULT_ERROR 1
-#define RADEON_VA_RESULT_VA_EXIST 2
-
-#define RADEON_VM_PAGE_VALID (1 << 0)
-#define RADEON_VM_PAGE_READABLE (1 << 1)
-#define RADEON_VM_PAGE_WRITEABLE (1 << 2)
-#define RADEON_VM_PAGE_SYSTEM (1 << 3)
-#define RADEON_VM_PAGE_SNOOPED (1 << 4)
-
-struct drm_radeon_gem_va {
- uint32_t handle;
- uint32_t operation;
- uint32_t vm_id;
- uint32_t flags;
- uint64_t offset;
-};
-
-#define RADEON_CHUNK_ID_RELOCS 0x01
-#define RADEON_CHUNK_ID_IB 0x02
-#define RADEON_CHUNK_ID_FLAGS 0x03
-#define RADEON_CHUNK_ID_CONST_IB 0x04
-
-/* The first dword of RADEON_CHUNK_ID_FLAGS is a uint32 of these flags: */
-#define RADEON_CS_KEEP_TILING_FLAGS 0x01
-#define RADEON_CS_USE_VM 0x02
-/* The second dword of RADEON_CHUNK_ID_FLAGS is a uint32 that sets the ring type */
-#define RADEON_CS_RING_GFX 0
-#define RADEON_CS_RING_COMPUTE 1
-/* The third dword of RADEON_CHUNK_ID_FLAGS is a sint32 that sets the priority */
-/* 0 = normal, + = higher priority, - = lower priority */
-
-struct drm_radeon_cs_chunk {
- uint32_t chunk_id;
- uint32_t length_dw;
- uint64_t chunk_data;
-};
-
-/* drm_radeon_cs_reloc.flags */
-#define RADEON_RELOC_DONT_SYNC 0x01
-
-struct drm_radeon_cs_reloc {
- uint32_t handle;
- uint32_t read_domains;
- uint32_t write_domain;
- uint32_t flags;
-};
-
-struct drm_radeon_cs {
- uint32_t num_chunks;
- uint32_t cs_id;
- /* this points to uint64_t * which point to cs chunks */
- uint64_t chunks;
- /* updates to the limits after this CS ioctl */
- uint64_t gart_limit;
- uint64_t vram_limit;
-};
-
-#define RADEON_INFO_DEVICE_ID 0x00
-#define RADEON_INFO_NUM_GB_PIPES 0x01
-#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
-#define RADEON_INFO_TILING_CONFIG 0x06
-#define RADEON_INFO_WANT_HYPERZ 0x07
-#define RADEON_INFO_WANT_CMASK 0x08 /* get access to CMASK on r300 */
-#define RADEON_INFO_CLOCK_CRYSTAL_FREQ 0x09 /* clock crystal frequency */
-#define RADEON_INFO_NUM_BACKENDS 0x0a /* DB/backends for r600+ - need for OQ */
-#define RADEON_INFO_NUM_TILE_PIPES 0x0b /* tile pipes for r600+ */
-#define RADEON_INFO_FUSION_GART_WORKING 0x0c /* fusion writes to GTT were broken before this */
-#define RADEON_INFO_BACKEND_MAP 0x0d /* pipe to backend map, needed by mesa */
-/* virtual address start, va < start are reserved by the kernel */
-#define RADEON_INFO_VA_START 0x0e
-/* maximum size of ib using the virtual memory cs */
-#define RADEON_INFO_IB_VM_MAX_SIZE 0x0f
-/* max pipes - needed for compute shaders */
-#define RADEON_INFO_MAX_PIPES 0x10
-
-struct drm_radeon_info {
- uint32_t request;
- uint32_t pad;
- uint64_t value;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/drm/savage_drm.h b/ANDROID_3.4.5/include/drm/savage_drm.h
deleted file mode 100644
index 818d49be..00000000
--- a/ANDROID_3.4.5/include/drm/savage_drm.h
+++ /dev/null
@@ -1,210 +0,0 @@
-/* savage_drm.h -- Public header for the savage driver
- *
- * Copyright 2004 Felix Kuehling
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sub license,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NON-INFRINGEMENT. IN NO EVENT SHALL FELIX KUEHLING BE LIABLE FOR
- * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
- * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef __SAVAGE_DRM_H__
-#define __SAVAGE_DRM_H__
-
-#ifndef __SAVAGE_SAREA_DEFINES__
-#define __SAVAGE_SAREA_DEFINES__
-
-/* 2 heaps (1 for card, 1 for agp), each divided into up to 128
- * regions, subject to a minimum region size of (1<<16) == 64k.
- *
- * Clients may subdivide regions internally, but when sharing between
- * clients, the region size is the minimum granularity.
- */
-
-#define SAVAGE_CARD_HEAP 0
-#define SAVAGE_AGP_HEAP 1
-#define SAVAGE_NR_TEX_HEAPS 2
-#define SAVAGE_NR_TEX_REGIONS 16
-#define SAVAGE_LOG_MIN_TEX_REGION_SIZE 16
-
-#endif /* __SAVAGE_SAREA_DEFINES__ */
-
-typedef struct _drm_savage_sarea {
- /* LRU lists for texture memory in agp space and on the card.
- */
- struct drm_tex_region texList[SAVAGE_NR_TEX_HEAPS][SAVAGE_NR_TEX_REGIONS +
- 1];
- unsigned int texAge[SAVAGE_NR_TEX_HEAPS];
-
- /* Mechanism to validate card state.
- */
- int ctxOwner;
-} drm_savage_sarea_t, *drm_savage_sarea_ptr;
-
-/* Savage-specific ioctls
- */
-#define DRM_SAVAGE_BCI_INIT 0x00
-#define DRM_SAVAGE_BCI_CMDBUF 0x01
-#define DRM_SAVAGE_BCI_EVENT_EMIT 0x02
-#define DRM_SAVAGE_BCI_EVENT_WAIT 0x03
-
-#define DRM_IOCTL_SAVAGE_BCI_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_SAVAGE_BCI_INIT, drm_savage_init_t)
-#define DRM_IOCTL_SAVAGE_BCI_CMDBUF DRM_IOW( DRM_COMMAND_BASE + DRM_SAVAGE_BCI_CMDBUF, drm_savage_cmdbuf_t)
-#define DRM_IOCTL_SAVAGE_BCI_EVENT_EMIT DRM_IOWR(DRM_COMMAND_BASE + DRM_SAVAGE_BCI_EVENT_EMIT, drm_savage_event_emit_t)
-#define DRM_IOCTL_SAVAGE_BCI_EVENT_WAIT DRM_IOW( DRM_COMMAND_BASE + DRM_SAVAGE_BCI_EVENT_WAIT, drm_savage_event_wait_t)
-
-#define SAVAGE_DMA_PCI 1
-#define SAVAGE_DMA_AGP 3
-typedef struct drm_savage_init {
- enum {
- SAVAGE_INIT_BCI = 1,
- SAVAGE_CLEANUP_BCI = 2
- } func;
- unsigned int sarea_priv_offset;
-
- /* some parameters */
- unsigned int cob_size;
- unsigned int bci_threshold_lo, bci_threshold_hi;
- unsigned int dma_type;
-
- /* frame buffer layout */
- unsigned int fb_bpp;
- unsigned int front_offset, front_pitch;
- unsigned int back_offset, back_pitch;
- unsigned int depth_bpp;
- unsigned int depth_offset, depth_pitch;
-
- /* local textures */
- unsigned int texture_offset;
- unsigned int texture_size;
-
- /* physical locations of non-permanent maps */
- unsigned long status_offset;
- unsigned long buffers_offset;
- unsigned long agp_textures_offset;
- unsigned long cmd_dma_offset;
-} drm_savage_init_t;
-
-typedef union drm_savage_cmd_header drm_savage_cmd_header_t;
-typedef struct drm_savage_cmdbuf {
- /* command buffer in client's address space */
- drm_savage_cmd_header_t __user *cmd_addr;
- unsigned int size; /* size of the command buffer in 64bit units */
-
- unsigned int dma_idx; /* DMA buffer index to use */
- int discard; /* discard DMA buffer when done */
- /* vertex buffer in client's address space */
- unsigned int __user *vb_addr;
- unsigned int vb_size; /* size of client vertex buffer in bytes */
- unsigned int vb_stride; /* stride of vertices in 32bit words */
- /* boxes in client's address space */
- struct drm_clip_rect __user *box_addr;
- unsigned int nbox; /* number of clipping boxes */
-} drm_savage_cmdbuf_t;
-
-#define SAVAGE_WAIT_2D 0x1 /* wait for 2D idle before updating event tag */
-#define SAVAGE_WAIT_3D 0x2 /* wait for 3D idle before updating event tag */
-#define SAVAGE_WAIT_IRQ 0x4 /* emit or wait for IRQ, not implemented yet */
-typedef struct drm_savage_event {
- unsigned int count;
- unsigned int flags;
-} drm_savage_event_emit_t, drm_savage_event_wait_t;
-
-/* Commands for the cmdbuf ioctl
- */
-#define SAVAGE_CMD_STATE 0 /* a range of state registers */
-#define SAVAGE_CMD_DMA_PRIM 1 /* vertices from DMA buffer */
-#define SAVAGE_CMD_VB_PRIM 2 /* vertices from client vertex buffer */
-#define SAVAGE_CMD_DMA_IDX 3 /* indexed vertices from DMA buffer */
-#define SAVAGE_CMD_VB_IDX 4 /* indexed vertices client vertex buffer */
-#define SAVAGE_CMD_CLEAR 5 /* clear buffers */
-#define SAVAGE_CMD_SWAP 6 /* swap buffers */
-
-/* Primitive types
-*/
-#define SAVAGE_PRIM_TRILIST 0 /* triangle list */
-#define SAVAGE_PRIM_TRISTRIP 1 /* triangle strip */
-#define SAVAGE_PRIM_TRIFAN 2 /* triangle fan */
-#define SAVAGE_PRIM_TRILIST_201 3 /* reorder verts for correct flat
- * shading on s3d */
-
-/* Skip flags (vertex format)
- */
-#define SAVAGE_SKIP_Z 0x01
-#define SAVAGE_SKIP_W 0x02
-#define SAVAGE_SKIP_C0 0x04
-#define SAVAGE_SKIP_C1 0x08
-#define SAVAGE_SKIP_S0 0x10
-#define SAVAGE_SKIP_T0 0x20
-#define SAVAGE_SKIP_ST0 0x30
-#define SAVAGE_SKIP_S1 0x40
-#define SAVAGE_SKIP_T1 0x80
-#define SAVAGE_SKIP_ST1 0xc0
-#define SAVAGE_SKIP_ALL_S3D 0x3f
-#define SAVAGE_SKIP_ALL_S4 0xff
-
-/* Buffer names for clear command
- */
-#define SAVAGE_FRONT 0x1
-#define SAVAGE_BACK 0x2
-#define SAVAGE_DEPTH 0x4
-
-/* 64-bit command header
- */
-union drm_savage_cmd_header {
- struct {
- unsigned char cmd; /* command */
- unsigned char pad0;
- unsigned short pad1;
- unsigned short pad2;
- unsigned short pad3;
- } cmd; /* generic */
- struct {
- unsigned char cmd;
- unsigned char global; /* need idle engine? */
- unsigned short count; /* number of consecutive registers */
- unsigned short start; /* first register */
- unsigned short pad3;
- } state; /* SAVAGE_CMD_STATE */
- struct {
- unsigned char cmd;
- unsigned char prim; /* primitive type */
- unsigned short skip; /* vertex format (skip flags) */
- unsigned short count; /* number of vertices */
- unsigned short start; /* first vertex in DMA/vertex buffer */
- } prim; /* SAVAGE_CMD_DMA_PRIM, SAVAGE_CMD_VB_PRIM */
- struct {
- unsigned char cmd;
- unsigned char prim;
- unsigned short skip;
- unsigned short count; /* number of indices that follow */
- unsigned short pad3;
- } idx; /* SAVAGE_CMD_DMA_IDX, SAVAGE_CMD_VB_IDX */
- struct {
- unsigned char cmd;
- unsigned char pad0;
- unsigned short pad1;
- unsigned int flags;
- } clear0; /* SAVAGE_CMD_CLEAR */
- struct {
- unsigned int mask;
- unsigned int value;
- } clear1; /* SAVAGE_CMD_CLEAR data */
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/drm/sis_drm.h b/ANDROID_3.4.5/include/drm/sis_drm.h
deleted file mode 100644
index 035b804d..00000000
--- a/ANDROID_3.4.5/include/drm/sis_drm.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* sis_drv.h -- Private header for sis driver -*- linux-c -*- */
-/*
- * Copyright 2005 Eric Anholt
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- */
-
-#ifndef __SIS_DRM_H__
-#define __SIS_DRM_H__
-
-/* SiS specific ioctls */
-#define NOT_USED_0_3
-#define DRM_SIS_FB_ALLOC 0x04
-#define DRM_SIS_FB_FREE 0x05
-#define NOT_USED_6_12
-#define DRM_SIS_AGP_INIT 0x13
-#define DRM_SIS_AGP_ALLOC 0x14
-#define DRM_SIS_AGP_FREE 0x15
-#define DRM_SIS_FB_INIT 0x16
-
-#define DRM_IOCTL_SIS_FB_ALLOC DRM_IOWR(DRM_COMMAND_BASE + DRM_SIS_FB_ALLOC, drm_sis_mem_t)
-#define DRM_IOCTL_SIS_FB_FREE DRM_IOW( DRM_COMMAND_BASE + DRM_SIS_FB_FREE, drm_sis_mem_t)
-#define DRM_IOCTL_SIS_AGP_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_SIS_AGP_INIT, drm_sis_agp_t)
-#define DRM_IOCTL_SIS_AGP_ALLOC DRM_IOWR(DRM_COMMAND_BASE + DRM_SIS_AGP_ALLOC, drm_sis_mem_t)
-#define DRM_IOCTL_SIS_AGP_FREE DRM_IOW( DRM_COMMAND_BASE + DRM_SIS_AGP_FREE, drm_sis_mem_t)
-#define DRM_IOCTL_SIS_FB_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_SIS_FB_INIT, drm_sis_fb_t)
-/*
-#define DRM_IOCTL_SIS_FLIP DRM_IOW( 0x48, drm_sis_flip_t)
-#define DRM_IOCTL_SIS_FLIP_INIT DRM_IO( 0x49)
-#define DRM_IOCTL_SIS_FLIP_FINAL DRM_IO( 0x50)
-*/
-
-typedef struct {
- int context;
- unsigned int offset;
- unsigned int size;
- unsigned long free;
-} drm_sis_mem_t;
-
-typedef struct {
- unsigned int offset, size;
-} drm_sis_agp_t;
-
-typedef struct {
- unsigned int offset, size;
-} drm_sis_fb_t;
-
-struct sis_file_private {
- struct list_head obj_list;
-};
-
-#endif /* __SIS_DRM_H__ */
diff --git a/ANDROID_3.4.5/include/drm/ttm/ttm_bo_api.h b/ANDROID_3.4.5/include/drm/ttm/ttm_bo_api.h
deleted file mode 100644
index 974c8f80..00000000
--- a/ANDROID_3.4.5/include/drm/ttm/ttm_bo_api.h
+++ /dev/null
@@ -1,732 +0,0 @@
-/**************************************************************************
- *
- * Copyright (c) 2006-2009 VMware, Inc., Palo Alto, CA., USA
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- * USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- **************************************************************************/
-/*
- * Authors: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
- */
-
-#ifndef _TTM_BO_API_H_
-#define _TTM_BO_API_H_
-
-#include "drm_hashtab.h"
-#include <linux/kref.h>
-#include <linux/list.h>
-#include <linux/wait.h>
-#include <linux/mutex.h>
-#include <linux/mm.h>
-#include <linux/rbtree.h>
-#include <linux/bitmap.h>
-
-struct ttm_bo_device;
-
-struct drm_mm_node;
-
-
-/**
- * struct ttm_placement
- *
- * @fpfn: first valid page frame number to put the object
- * @lpfn: last valid page frame number to put the object
- * @num_placement: number of preferred placements
- * @placement: preferred placements
- * @num_busy_placement: number of preferred placements when need to evict buffer
- * @busy_placement: preferred placements when need to evict buffer
- *
- * Structure indicating the placement you request for an object.
- */
-struct ttm_placement {
- unsigned fpfn;
- unsigned lpfn;
- unsigned num_placement;
- const uint32_t *placement;
- unsigned num_busy_placement;
- const uint32_t *busy_placement;
-};
-
-/**
- * struct ttm_bus_placement
- *
- * @addr: mapped virtual address
- * @base: bus base address
- * @is_iomem: is this io memory ?
- * @size: size in byte
- * @offset: offset from the base address
- * @io_reserved_vm: The VM system has a refcount in @io_reserved_count
- * @io_reserved_count: Refcounting the numbers of callers to ttm_mem_io_reserve
- *
- * Structure indicating the bus placement of an object.
- */
-struct ttm_bus_placement {
- void *addr;
- unsigned long base;
- unsigned long size;
- unsigned long offset;
- bool is_iomem;
- bool io_reserved_vm;
- uint64_t io_reserved_count;
-};
-
-
-/**
- * struct ttm_mem_reg
- *
- * @mm_node: Memory manager node.
- * @size: Requested size of memory region.
- * @num_pages: Actual size of memory region in pages.
- * @page_alignment: Page alignment.
- * @placement: Placement flags.
- * @bus: Placement on io bus accessible to the CPU
- *
- * Structure indicating the placement and space resources used by a
- * buffer object.
- */
-
-struct ttm_mem_reg {
- void *mm_node;
- unsigned long start;
- unsigned long size;
- unsigned long num_pages;
- uint32_t page_alignment;
- uint32_t mem_type;
- uint32_t placement;
- struct ttm_bus_placement bus;
-};
-
-/**
- * enum ttm_bo_type
- *
- * @ttm_bo_type_device: These are 'normal' buffers that can
- * be mmapped by user space. Each of these bos occupy a slot in the
- * device address space, that can be used for normal vm operations.
- *
- * @ttm_bo_type_kernel: These buffers are like ttm_bo_type_device buffers,
- * but they cannot be accessed from user-space. For kernel-only use.
- */
-
-enum ttm_bo_type {
- ttm_bo_type_device,
- ttm_bo_type_kernel
-};
-
-struct ttm_tt;
-
-/**
- * struct ttm_buffer_object
- *
- * @bdev: Pointer to the buffer object device structure.
- * @buffer_start: The virtual user-space start address of ttm_bo_type_user
- * buffers.
- * @type: The bo type.
- * @destroy: Destruction function. If NULL, kfree is used.
- * @num_pages: Actual number of pages.
- * @addr_space_offset: Address space offset.
- * @acc_size: Accounted size for this object.
- * @kref: Reference count of this buffer object. When this refcount reaches
- * zero, the object is put on the delayed delete list.
- * @list_kref: List reference count of this buffer object. This member is
- * used to avoid destruction while the buffer object is still on a list.
- * Lru lists may keep one refcount, the delayed delete list, and kref != 0
- * keeps one refcount. When this refcount reaches zero,
- * the object is destroyed.
- * @event_queue: Queue for processes waiting on buffer object status change.
- * @mem: structure describing current placement.
- * @persistent_swap_storage: Usually the swap storage is deleted for buffers
- * pinned in physical memory. If this behaviour is not desired, this member
- * holds a pointer to a persistent shmem object.
- * @ttm: TTM structure holding system pages.
- * @evicted: Whether the object was evicted without user-space knowing.
- * @cpu_writes: For synchronization. Number of cpu writers.
- * @lru: List head for the lru list.
- * @ddestroy: List head for the delayed destroy list.
- * @swap: List head for swap LRU list.
- * @val_seq: Sequence of the validation holding the @reserved lock.
- * Used to avoid starvation when many processes compete to validate the
- * buffer. This member is protected by the bo_device::lru_lock.
- * @seq_valid: The value of @val_seq is valid. This value is protected by
- * the bo_device::lru_lock.
- * @reserved: Deadlock-free lock used for synchronization state transitions.
- * @sync_obj_arg: Opaque argument to synchronization object function.
- * @sync_obj: Pointer to a synchronization object.
- * @priv_flags: Flags describing buffer object internal state.
- * @vm_rb: Rb node for the vm rb tree.
- * @vm_node: Address space manager node.
- * @offset: The current GPU offset, which can have different meanings
- * depending on the memory type. For SYSTEM type memory, it should be 0.
- * @cur_placement: Hint of current placement.
- *
- * Base class for TTM buffer object, that deals with data placement and CPU
- * mappings. GPU mappings are really up to the driver, but for simpler GPUs
- * the driver can usually use the placement offset @offset directly as the
- * GPU virtual address. For drivers implementing multiple
- * GPU memory manager contexts, the driver should manage the address space
- * in these contexts separately and use these objects to get the correct
- * placement and caching for these GPU maps. This makes it possible to use
- * these objects for even quite elaborate memory management schemes.
- * The destroy member, the API visibility of this object makes it possible
- * to derive driver specific types.
- */
-
-struct ttm_buffer_object {
- /**
- * Members constant at init.
- */
-
- struct ttm_bo_global *glob;
- struct ttm_bo_device *bdev;
- unsigned long buffer_start;
- enum ttm_bo_type type;
- void (*destroy) (struct ttm_buffer_object *);
- unsigned long num_pages;
- uint64_t addr_space_offset;
- size_t acc_size;
-
- /**
- * Members not needing protection.
- */
-
- struct kref kref;
- struct kref list_kref;
- wait_queue_head_t event_queue;
-
- /**
- * Members protected by the bo::reserved lock.
- */
-
- struct ttm_mem_reg mem;
- struct file *persistent_swap_storage;
- struct ttm_tt *ttm;
- bool evicted;
-
- /**
- * Members protected by the bo::reserved lock only when written to.
- */
-
- atomic_t cpu_writers;
-
- /**
- * Members protected by the bdev::lru_lock.
- */
-
- struct list_head lru;
- struct list_head ddestroy;
- struct list_head swap;
- struct list_head io_reserve_lru;
- uint32_t val_seq;
- bool seq_valid;
-
- /**
- * Members protected by the bdev::lru_lock
- * only when written to.
- */
-
- atomic_t reserved;
-
- /**
- * Members protected by struct buffer_object_device::fence_lock
- * In addition, setting sync_obj to anything else
- * than NULL requires bo::reserved to be held. This allows for
- * checking NULL while reserved but not holding the mentioned lock.
- */
-
- void *sync_obj_arg;
- void *sync_obj;
- unsigned long priv_flags;
-
- /**
- * Members protected by the bdev::vm_lock
- */
-
- struct rb_node vm_rb;
- struct drm_mm_node *vm_node;
-
-
- /**
- * Special members that are protected by the reserve lock
- * and the bo::lock when written to. Can be read with
- * either of these locks held.
- */
-
- unsigned long offset;
- uint32_t cur_placement;
-};
-
-/**
- * struct ttm_bo_kmap_obj
- *
- * @virtual: The current kernel virtual address.
- * @page: The page when kmap'ing a single page.
- * @bo_kmap_type: Type of bo_kmap.
- *
- * Object describing a kernel mapping. Since a TTM bo may be located
- * in various memory types with various caching policies, the
- * mapping can either be an ioremap, a vmap, a kmap or part of a
- * premapped region.
- */
-
-#define TTM_BO_MAP_IOMEM_MASK 0x80
-struct ttm_bo_kmap_obj {
- void *virtual;
- struct page *page;
- enum {
- ttm_bo_map_iomap = 1 | TTM_BO_MAP_IOMEM_MASK,
- ttm_bo_map_vmap = 2,
- ttm_bo_map_kmap = 3,
- ttm_bo_map_premapped = 4 | TTM_BO_MAP_IOMEM_MASK,
- } bo_kmap_type;
- struct ttm_buffer_object *bo;
-};
-
-/**
- * ttm_bo_reference - reference a struct ttm_buffer_object
- *
- * @bo: The buffer object.
- *
- * Returns a refcounted pointer to a buffer object.
- */
-
-static inline struct ttm_buffer_object *
-ttm_bo_reference(struct ttm_buffer_object *bo)
-{
- kref_get(&bo->kref);
- return bo;
-}
-
-/**
- * ttm_bo_wait - wait for buffer idle.
- *
- * @bo: The buffer object.
- * @interruptible: Use interruptible wait.
- * @no_wait: Return immediately if buffer is busy.
- *
- * This function must be called with the bo::mutex held, and makes
- * sure any previous rendering to the buffer is completed.
- * Note: It might be necessary to block validations before the
- * wait by reserving the buffer.
- * Returns -EBUSY if no_wait is true and the buffer is busy.
- * Returns -ERESTARTSYS if interrupted by a signal.
- */
-extern int ttm_bo_wait(struct ttm_buffer_object *bo, bool lazy,
- bool interruptible, bool no_wait);
-/**
- * ttm_bo_validate
- *
- * @bo: The buffer object.
- * @placement: Proposed placement for the buffer object.
- * @interruptible: Sleep interruptible if sleeping.
- * @no_wait_reserve: Return immediately if other buffers are busy.
- * @no_wait_gpu: Return immediately if the GPU is busy.
- *
- * Changes placement and caching policy of the buffer object
- * according proposed placement.
- * Returns
- * -EINVAL on invalid proposed placement.
- * -ENOMEM on out-of-memory condition.
- * -EBUSY if no_wait is true and buffer busy.
- * -ERESTARTSYS if interrupted by a signal.
- */
-extern int ttm_bo_validate(struct ttm_buffer_object *bo,
- struct ttm_placement *placement,
- bool interruptible, bool no_wait_reserve,
- bool no_wait_gpu);
-
-/**
- * ttm_bo_unref
- *
- * @bo: The buffer object.
- *
- * Unreference and clear a pointer to a buffer object.
- */
-extern void ttm_bo_unref(struct ttm_buffer_object **bo);
-
-
-/**
- * ttm_bo_list_ref_sub
- *
- * @bo: The buffer object.
- * @count: The number of references with which to decrease @bo::list_kref;
- * @never_free: The refcount should not reach zero with this operation.
- *
- * Release @count lru list references to this buffer object.
- */
-extern void ttm_bo_list_ref_sub(struct ttm_buffer_object *bo, int count,
- bool never_free);
-
-/**
- * ttm_bo_add_to_lru
- *
- * @bo: The buffer object.
- *
- * Add this bo to the relevant mem type lru and, if it's backed by
- * system pages (ttms) to the swap list.
- * This function must be called with struct ttm_bo_global::lru_lock held, and
- * is typically called immediately prior to unreserving a bo.
- */
-extern void ttm_bo_add_to_lru(struct ttm_buffer_object *bo);
-
-/**
- * ttm_bo_del_from_lru
- *
- * @bo: The buffer object.
- *
- * Remove this bo from all lru lists used to lookup and reserve an object.
- * This function must be called with struct ttm_bo_global::lru_lock held,
- * and is usually called just immediately after the bo has been reserved to
- * avoid recursive reservation from lru lists.
- */
-extern int ttm_bo_del_from_lru(struct ttm_buffer_object *bo);
-
-
-/**
- * ttm_bo_lock_delayed_workqueue
- *
- * Prevent the delayed workqueue from running.
- * Returns
- * True if the workqueue was queued at the time
- */
-extern int ttm_bo_lock_delayed_workqueue(struct ttm_bo_device *bdev);
-
-/**
- * ttm_bo_unlock_delayed_workqueue
- *
- * Allows the delayed workqueue to run.
- */
-extern void ttm_bo_unlock_delayed_workqueue(struct ttm_bo_device *bdev,
- int resched);
-
-/**
- * ttm_bo_synccpu_write_grab
- *
- * @bo: The buffer object:
- * @no_wait: Return immediately if buffer is busy.
- *
- * Synchronizes a buffer object for CPU RW access. This means
- * blocking command submission that affects the buffer and
- * waiting for buffer idle. This lock is recursive.
- * Returns
- * -EBUSY if the buffer is busy and no_wait is true.
- * -ERESTARTSYS if interrupted by a signal.
- */
-extern int
-ttm_bo_synccpu_write_grab(struct ttm_buffer_object *bo, bool no_wait);
-
-/**
- * ttm_bo_synccpu_write_release:
- *
- * @bo : The buffer object.
- *
- * Releases a synccpu lock.
- */
-extern void ttm_bo_synccpu_write_release(struct ttm_buffer_object *bo);
-
-/**
- * ttm_bo_acc_size
- *
- * @bdev: Pointer to a ttm_bo_device struct.
- * @bo_size: size of the buffer object in byte.
- * @struct_size: size of the structure holding buffer object datas
- *
- * Returns size to account for a buffer object
- */
-size_t ttm_bo_acc_size(struct ttm_bo_device *bdev,
- unsigned long bo_size,
- unsigned struct_size);
-size_t ttm_bo_dma_acc_size(struct ttm_bo_device *bdev,
- unsigned long bo_size,
- unsigned struct_size);
-
-/**
- * ttm_bo_init
- *
- * @bdev: Pointer to a ttm_bo_device struct.
- * @bo: Pointer to a ttm_buffer_object to be initialized.
- * @size: Requested size of buffer object.
- * @type: Requested type of buffer object.
- * @flags: Initial placement flags.
- * @page_alignment: Data alignment in pages.
- * @buffer_start: Virtual address of user space data backing a
- * user buffer object.
- * @interruptible: If needing to sleep to wait for GPU resources,
- * sleep interruptible.
- * @persistent_swap_storage: Usually the swap storage is deleted for buffers
- * pinned in physical memory. If this behaviour is not desired, this member
- * holds a pointer to a persistent shmem object. Typically, this would
- * point to the shmem object backing a GEM object if TTM is used to back a
- * GEM user interface.
- * @acc_size: Accounted size for this object.
- * @destroy: Destroy function. Use NULL for kfree().
- *
- * This function initializes a pre-allocated struct ttm_buffer_object.
- * As this object may be part of a larger structure, this function,
- * together with the @destroy function,
- * enables driver-specific objects derived from a ttm_buffer_object.
- * On successful return, the object kref and list_kref are set to 1.
- * If a failure occurs, the function will call the @destroy function, or
- * kfree() if @destroy is NULL. Thus, after a failure, dereferencing @bo is
- * illegal and will likely cause memory corruption.
- *
- * Returns
- * -ENOMEM: Out of memory.
- * -EINVAL: Invalid placement flags.
- * -ERESTARTSYS: Interrupted by signal while sleeping waiting for resources.
- */
-
-extern int ttm_bo_init(struct ttm_bo_device *bdev,
- struct ttm_buffer_object *bo,
- unsigned long size,
- enum ttm_bo_type type,
- struct ttm_placement *placement,
- uint32_t page_alignment,
- unsigned long buffer_start,
- bool interrubtible,
- struct file *persistent_swap_storage,
- size_t acc_size,
- void (*destroy) (struct ttm_buffer_object *));
-
-/**
- * ttm_bo_synccpu_object_init
- *
- * @bdev: Pointer to a ttm_bo_device struct.
- * @bo: Pointer to a ttm_buffer_object to be initialized.
- * @size: Requested size of buffer object.
- * @type: Requested type of buffer object.
- * @flags: Initial placement flags.
- * @page_alignment: Data alignment in pages.
- * @buffer_start: Virtual address of user space data backing a
- * user buffer object.
- * @interruptible: If needing to sleep while waiting for GPU resources,
- * sleep interruptible.
- * @persistent_swap_storage: Usually the swap storage is deleted for buffers
- * pinned in physical memory. If this behaviour is not desired, this member
- * holds a pointer to a persistent shmem object. Typically, this would
- * point to the shmem object backing a GEM object if TTM is used to back a
- * GEM user interface.
- * @p_bo: On successful completion *p_bo points to the created object.
- *
- * This function allocates a ttm_buffer_object, and then calls ttm_bo_init
- * on that object. The destroy function is set to kfree().
- * Returns
- * -ENOMEM: Out of memory.
- * -EINVAL: Invalid placement flags.
- * -ERESTARTSYS: Interrupted by signal while waiting for resources.
- */
-
-extern int ttm_bo_create(struct ttm_bo_device *bdev,
- unsigned long size,
- enum ttm_bo_type type,
- struct ttm_placement *placement,
- uint32_t page_alignment,
- unsigned long buffer_start,
- bool interruptible,
- struct file *persistent_swap_storage,
- struct ttm_buffer_object **p_bo);
-
-/**
- * ttm_bo_check_placement
- *
- * @bo: the buffer object.
- * @placement: placements
- *
- * Performs minimal validity checking on an intended change of
- * placement flags.
- * Returns
- * -EINVAL: Intended change is invalid or not allowed.
- */
-extern int ttm_bo_check_placement(struct ttm_buffer_object *bo,
- struct ttm_placement *placement);
-
-/**
- * ttm_bo_init_mm
- *
- * @bdev: Pointer to a ttm_bo_device struct.
- * @mem_type: The memory type.
- * @p_size: size managed area in pages.
- *
- * Initialize a manager for a given memory type.
- * Note: if part of driver firstopen, it must be protected from a
- * potentially racing lastclose.
- * Returns:
- * -EINVAL: invalid size or memory type.
- * -ENOMEM: Not enough memory.
- * May also return driver-specified errors.
- */
-
-extern int ttm_bo_init_mm(struct ttm_bo_device *bdev, unsigned type,
- unsigned long p_size);
-/**
- * ttm_bo_clean_mm
- *
- * @bdev: Pointer to a ttm_bo_device struct.
- * @mem_type: The memory type.
- *
- * Take down a manager for a given memory type after first walking
- * the LRU list to evict any buffers left alive.
- *
- * Normally, this function is part of lastclose() or unload(), and at that
- * point there shouldn't be any buffers left created by user-space, since
- * there should've been removed by the file descriptor release() method.
- * However, before this function is run, make sure to signal all sync objects,
- * and verify that the delayed delete queue is empty. The driver must also
- * make sure that there are no NO_EVICT buffers present in this memory type
- * when the call is made.
- *
- * If this function is part of a VT switch, the caller must make sure that
- * there are no appications currently validating buffers before this
- * function is called. The caller can do that by first taking the
- * struct ttm_bo_device::ttm_lock in write mode.
- *
- * Returns:
- * -EINVAL: invalid or uninitialized memory type.
- * -EBUSY: There are still buffers left in this memory type.
- */
-
-extern int ttm_bo_clean_mm(struct ttm_bo_device *bdev, unsigned mem_type);
-
-/**
- * ttm_bo_evict_mm
- *
- * @bdev: Pointer to a ttm_bo_device struct.
- * @mem_type: The memory type.
- *
- * Evicts all buffers on the lru list of the memory type.
- * This is normally part of a VT switch or an
- * out-of-memory-space-due-to-fragmentation handler.
- * The caller must make sure that there are no other processes
- * currently validating buffers, and can do that by taking the
- * struct ttm_bo_device::ttm_lock in write mode.
- *
- * Returns:
- * -EINVAL: Invalid or uninitialized memory type.
- * -ERESTARTSYS: The call was interrupted by a signal while waiting to
- * evict a buffer.
- */
-
-extern int ttm_bo_evict_mm(struct ttm_bo_device *bdev, unsigned mem_type);
-
-/**
- * ttm_kmap_obj_virtual
- *
- * @map: A struct ttm_bo_kmap_obj returned from ttm_bo_kmap.
- * @is_iomem: Pointer to an integer that on return indicates 1 if the
- * virtual map is io memory, 0 if normal memory.
- *
- * Returns the virtual address of a buffer object area mapped by ttm_bo_kmap.
- * If *is_iomem is 1 on return, the virtual address points to an io memory area,
- * that should strictly be accessed by the iowriteXX() and similar functions.
- */
-
-static inline void *ttm_kmap_obj_virtual(struct ttm_bo_kmap_obj *map,
- bool *is_iomem)
-{
- *is_iomem = !!(map->bo_kmap_type & TTM_BO_MAP_IOMEM_MASK);
- return map->virtual;
-}
-
-/**
- * ttm_bo_kmap
- *
- * @bo: The buffer object.
- * @start_page: The first page to map.
- * @num_pages: Number of pages to map.
- * @map: pointer to a struct ttm_bo_kmap_obj representing the map.
- *
- * Sets up a kernel virtual mapping, using ioremap, vmap or kmap to the
- * data in the buffer object. The ttm_kmap_obj_virtual function can then be
- * used to obtain a virtual address to the data.
- *
- * Returns
- * -ENOMEM: Out of memory.
- * -EINVAL: Invalid range.
- */
-
-extern int ttm_bo_kmap(struct ttm_buffer_object *bo, unsigned long start_page,
- unsigned long num_pages, struct ttm_bo_kmap_obj *map);
-
-/**
- * ttm_bo_kunmap
- *
- * @map: Object describing the map to unmap.
- *
- * Unmaps a kernel map set up by ttm_bo_kmap.
- */
-
-extern void ttm_bo_kunmap(struct ttm_bo_kmap_obj *map);
-
-/**
- * ttm_fbdev_mmap - mmap fbdev memory backed by a ttm buffer object.
- *
- * @vma: vma as input from the fbdev mmap method.
- * @bo: The bo backing the address space. The address space will
- * have the same size as the bo, and start at offset 0.
- *
- * This function is intended to be called by the fbdev mmap method
- * if the fbdev address space is to be backed by a bo.
- */
-
-extern int ttm_fbdev_mmap(struct vm_area_struct *vma,
- struct ttm_buffer_object *bo);
-
-/**
- * ttm_bo_mmap - mmap out of the ttm device address space.
- *
- * @filp: filp as input from the mmap method.
- * @vma: vma as input from the mmap method.
- * @bdev: Pointer to the ttm_bo_device with the address space manager.
- *
- * This function is intended to be called by the device mmap method.
- * if the device address space is to be backed by the bo manager.
- */
-
-extern int ttm_bo_mmap(struct file *filp, struct vm_area_struct *vma,
- struct ttm_bo_device *bdev);
-
-/**
- * ttm_bo_io
- *
- * @bdev: Pointer to the struct ttm_bo_device.
- * @filp: Pointer to the struct file attempting to read / write.
- * @wbuf: User-space pointer to address of buffer to write. NULL on read.
- * @rbuf: User-space pointer to address of buffer to read into.
- * Null on write.
- * @count: Number of bytes to read / write.
- * @f_pos: Pointer to current file position.
- * @write: 1 for read, 0 for write.
- *
- * This function implements read / write into ttm buffer objects, and is
- * intended to
- * be called from the fops::read and fops::write method.
- * Returns:
- * See man (2) write, man(2) read. In particular,
- * the function may return -ERESTARTSYS if
- * interrupted by a signal.
- */
-
-extern ssize_t ttm_bo_io(struct ttm_bo_device *bdev, struct file *filp,
- const char __user *wbuf, char __user *rbuf,
- size_t count, loff_t *f_pos, bool write);
-
-extern void ttm_bo_swapout_all(struct ttm_bo_device *bdev);
-
-#endif
diff --git a/ANDROID_3.4.5/include/drm/ttm/ttm_bo_driver.h b/ANDROID_3.4.5/include/drm/ttm/ttm_bo_driver.h
deleted file mode 100644
index d43e8923..00000000
--- a/ANDROID_3.4.5/include/drm/ttm/ttm_bo_driver.h
+++ /dev/null
@@ -1,1037 +0,0 @@
-/**************************************************************************
- *
- * Copyright (c) 2006-2009 Vmware, Inc., Palo Alto, CA., USA
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- * USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- **************************************************************************/
-/*
- * Authors: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
- */
-#ifndef _TTM_BO_DRIVER_H_
-#define _TTM_BO_DRIVER_H_
-
-#include "ttm/ttm_bo_api.h"
-#include "ttm/ttm_memory.h"
-#include "ttm/ttm_module.h"
-#include "drm_mm.h"
-#include "drm_global.h"
-#include "linux/workqueue.h"
-#include "linux/fs.h"
-#include "linux/spinlock.h"
-
-struct ttm_backend;
-
-struct ttm_backend_func {
- /**
- * struct ttm_backend_func member bind
- *
- * @ttm: Pointer to a struct ttm_tt.
- * @bo_mem: Pointer to a struct ttm_mem_reg describing the
- * memory type and location for binding.
- *
- * Bind the backend pages into the aperture in the location
- * indicated by @bo_mem. This function should be able to handle
- * differences between aperture and system page sizes.
- */
- int (*bind) (struct ttm_tt *ttm, struct ttm_mem_reg *bo_mem);
-
- /**
- * struct ttm_backend_func member unbind
- *
- * @ttm: Pointer to a struct ttm_tt.
- *
- * Unbind previously bound backend pages. This function should be
- * able to handle differences between aperture and system page sizes.
- */
- int (*unbind) (struct ttm_tt *ttm);
-
- /**
- * struct ttm_backend_func member destroy
- *
- * @ttm: Pointer to a struct ttm_tt.
- *
- * Destroy the backend. This will be call back from ttm_tt_destroy so
- * don't call ttm_tt_destroy from the callback or infinite loop.
- */
- void (*destroy) (struct ttm_tt *ttm);
-};
-
-#define TTM_PAGE_FLAG_WRITE (1 << 3)
-#define TTM_PAGE_FLAG_SWAPPED (1 << 4)
-#define TTM_PAGE_FLAG_PERSISTENT_SWAP (1 << 5)
-#define TTM_PAGE_FLAG_ZERO_ALLOC (1 << 6)
-#define TTM_PAGE_FLAG_DMA32 (1 << 7)
-
-enum ttm_caching_state {
- tt_uncached,
- tt_wc,
- tt_cached
-};
-
-/**
- * struct ttm_tt
- *
- * @bdev: Pointer to a struct ttm_bo_device.
- * @func: Pointer to a struct ttm_backend_func that describes
- * the backend methods.
- * @dummy_read_page: Page to map where the ttm_tt page array contains a NULL
- * pointer.
- * @pages: Array of pages backing the data.
- * @num_pages: Number of pages in the page array.
- * @bdev: Pointer to the current struct ttm_bo_device.
- * @be: Pointer to the ttm backend.
- * @swap_storage: Pointer to shmem struct file for swap storage.
- * @caching_state: The current caching state of the pages.
- * @state: The current binding state of the pages.
- *
- * This is a structure holding the pages, caching- and aperture binding
- * status for a buffer object that isn't backed by fixed (VRAM / AGP)
- * memory.
- */
-
-struct ttm_tt {
- struct ttm_bo_device *bdev;
- struct ttm_backend_func *func;
- struct page *dummy_read_page;
- struct page **pages;
- uint32_t page_flags;
- unsigned long num_pages;
- struct ttm_bo_global *glob;
- struct ttm_backend *be;
- struct file *swap_storage;
- enum ttm_caching_state caching_state;
- enum {
- tt_bound,
- tt_unbound,
- tt_unpopulated,
- } state;
-};
-
-/**
- * struct ttm_dma_tt
- *
- * @ttm: Base ttm_tt struct.
- * @dma_address: The DMA (bus) addresses of the pages
- * @pages_list: used by some page allocation backend
- *
- * This is a structure holding the pages, caching- and aperture binding
- * status for a buffer object that isn't backed by fixed (VRAM / AGP)
- * memory.
- */
-struct ttm_dma_tt {
- struct ttm_tt ttm;
- dma_addr_t *dma_address;
- struct list_head pages_list;
-};
-
-#define TTM_MEMTYPE_FLAG_FIXED (1 << 0) /* Fixed (on-card) PCI memory */
-#define TTM_MEMTYPE_FLAG_MAPPABLE (1 << 1) /* Memory mappable */
-#define TTM_MEMTYPE_FLAG_CMA (1 << 3) /* Can't map aperture */
-
-struct ttm_mem_type_manager;
-
-struct ttm_mem_type_manager_func {
- /**
- * struct ttm_mem_type_manager member init
- *
- * @man: Pointer to a memory type manager.
- * @p_size: Implementation dependent, but typically the size of the
- * range to be managed in pages.
- *
- * Called to initialize a private range manager. The function is
- * expected to initialize the man::priv member.
- * Returns 0 on success, negative error code on failure.
- */
- int (*init)(struct ttm_mem_type_manager *man, unsigned long p_size);
-
- /**
- * struct ttm_mem_type_manager member takedown
- *
- * @man: Pointer to a memory type manager.
- *
- * Called to undo the setup done in init. All allocated resources
- * should be freed.
- */
- int (*takedown)(struct ttm_mem_type_manager *man);
-
- /**
- * struct ttm_mem_type_manager member get_node
- *
- * @man: Pointer to a memory type manager.
- * @bo: Pointer to the buffer object we're allocating space for.
- * @placement: Placement details.
- * @mem: Pointer to a struct ttm_mem_reg to be filled in.
- *
- * This function should allocate space in the memory type managed
- * by @man. Placement details if
- * applicable are given by @placement. If successful,
- * @mem::mm_node should be set to a non-null value, and
- * @mem::start should be set to a value identifying the beginning
- * of the range allocated, and the function should return zero.
- * If the memory region accommodate the buffer object, @mem::mm_node
- * should be set to NULL, and the function should return 0.
- * If a system error occurred, preventing the request to be fulfilled,
- * the function should return a negative error code.
- *
- * Note that @mem::mm_node will only be dereferenced by
- * struct ttm_mem_type_manager functions and optionally by the driver,
- * which has knowledge of the underlying type.
- *
- * This function may not be called from within atomic context, so
- * an implementation can and must use either a mutex or a spinlock to
- * protect any data structures managing the space.
- */
- int (*get_node)(struct ttm_mem_type_manager *man,
- struct ttm_buffer_object *bo,
- struct ttm_placement *placement,
- struct ttm_mem_reg *mem);
-
- /**
- * struct ttm_mem_type_manager member put_node
- *
- * @man: Pointer to a memory type manager.
- * @mem: Pointer to a struct ttm_mem_reg to be filled in.
- *
- * This function frees memory type resources previously allocated
- * and that are identified by @mem::mm_node and @mem::start. May not
- * be called from within atomic context.
- */
- void (*put_node)(struct ttm_mem_type_manager *man,
- struct ttm_mem_reg *mem);
-
- /**
- * struct ttm_mem_type_manager member debug
- *
- * @man: Pointer to a memory type manager.
- * @prefix: Prefix to be used in printout to identify the caller.
- *
- * This function is called to print out the state of the memory
- * type manager to aid debugging of out-of-memory conditions.
- * It may not be called from within atomic context.
- */
- void (*debug)(struct ttm_mem_type_manager *man, const char *prefix);
-};
-
-/**
- * struct ttm_mem_type_manager
- *
- * @has_type: The memory type has been initialized.
- * @use_type: The memory type is enabled.
- * @flags: TTM_MEMTYPE_XX flags identifying the traits of the memory
- * managed by this memory type.
- * @gpu_offset: If used, the GPU offset of the first managed page of
- * fixed memory or the first managed location in an aperture.
- * @size: Size of the managed region.
- * @available_caching: A mask of available caching types, TTM_PL_FLAG_XX,
- * as defined in ttm_placement_common.h
- * @default_caching: The default caching policy used for a buffer object
- * placed in this memory type if the user doesn't provide one.
- * @func: structure pointer implementing the range manager. See above
- * @priv: Driver private closure for @func.
- * @io_reserve_mutex: Mutex optionally protecting shared io_reserve structures
- * @use_io_reserve_lru: Use an lru list to try to unreserve io_mem_regions
- * reserved by the TTM vm system.
- * @io_reserve_lru: Optional lru list for unreserving io mem regions.
- * @io_reserve_fastpath: Only use bdev::driver::io_mem_reserve to obtain
- * static information. bdev::driver::io_mem_free is never used.
- * @lru: The lru list for this memory type.
- *
- * This structure is used to identify and manage memory types for a device.
- * It's set up by the ttm_bo_driver::init_mem_type method.
- */
-
-
-
-struct ttm_mem_type_manager {
- struct ttm_bo_device *bdev;
-
- /*
- * No protection. Constant from start.
- */
-
- bool has_type;
- bool use_type;
- uint32_t flags;
- unsigned long gpu_offset;
- uint64_t size;
- uint32_t available_caching;
- uint32_t default_caching;
- const struct ttm_mem_type_manager_func *func;
- void *priv;
- struct mutex io_reserve_mutex;
- bool use_io_reserve_lru;
- bool io_reserve_fastpath;
-
- /*
- * Protected by @io_reserve_mutex:
- */
-
- struct list_head io_reserve_lru;
-
- /*
- * Protected by the global->lru_lock.
- */
-
- struct list_head lru;
-};
-
-/**
- * struct ttm_bo_driver
- *
- * @create_ttm_backend_entry: Callback to create a struct ttm_backend.
- * @invalidate_caches: Callback to invalidate read caches when a buffer object
- * has been evicted.
- * @init_mem_type: Callback to initialize a struct ttm_mem_type_manager
- * structure.
- * @evict_flags: Callback to obtain placement flags when a buffer is evicted.
- * @move: Callback for a driver to hook in accelerated functions to
- * move a buffer.
- * If set to NULL, a potentially slow memcpy() move is used.
- * @sync_obj_signaled: See ttm_fence_api.h
- * @sync_obj_wait: See ttm_fence_api.h
- * @sync_obj_flush: See ttm_fence_api.h
- * @sync_obj_unref: See ttm_fence_api.h
- * @sync_obj_ref: See ttm_fence_api.h
- */
-
-struct ttm_bo_driver {
- /**
- * ttm_tt_create
- *
- * @bdev: pointer to a struct ttm_bo_device:
- * @size: Size of the data needed backing.
- * @page_flags: Page flags as identified by TTM_PAGE_FLAG_XX flags.
- * @dummy_read_page: See struct ttm_bo_device.
- *
- * Create a struct ttm_tt to back data with system memory pages.
- * No pages are actually allocated.
- * Returns:
- * NULL: Out of memory.
- */
- struct ttm_tt *(*ttm_tt_create)(struct ttm_bo_device *bdev,
- unsigned long size,
- uint32_t page_flags,
- struct page *dummy_read_page);
-
- /**
- * ttm_tt_populate
- *
- * @ttm: The struct ttm_tt to contain the backing pages.
- *
- * Allocate all backing pages
- * Returns:
- * -ENOMEM: Out of memory.
- */
- int (*ttm_tt_populate)(struct ttm_tt *ttm);
-
- /**
- * ttm_tt_unpopulate
- *
- * @ttm: The struct ttm_tt to contain the backing pages.
- *
- * Free all backing page
- */
- void (*ttm_tt_unpopulate)(struct ttm_tt *ttm);
-
- /**
- * struct ttm_bo_driver member invalidate_caches
- *
- * @bdev: the buffer object device.
- * @flags: new placement of the rebound buffer object.
- *
- * A previosly evicted buffer has been rebound in a
- * potentially new location. Tell the driver that it might
- * consider invalidating read (texture) caches on the next command
- * submission as a consequence.
- */
-
- int (*invalidate_caches) (struct ttm_bo_device *bdev, uint32_t flags);
- int (*init_mem_type) (struct ttm_bo_device *bdev, uint32_t type,
- struct ttm_mem_type_manager *man);
- /**
- * struct ttm_bo_driver member evict_flags:
- *
- * @bo: the buffer object to be evicted
- *
- * Return the bo flags for a buffer which is not mapped to the hardware.
- * These will be placed in proposed_flags so that when the move is
- * finished, they'll end up in bo->mem.flags
- */
-
- void(*evict_flags) (struct ttm_buffer_object *bo,
- struct ttm_placement *placement);
- /**
- * struct ttm_bo_driver member move:
- *
- * @bo: the buffer to move
- * @evict: whether this motion is evicting the buffer from
- * the graphics address space
- * @interruptible: Use interruptible sleeps if possible when sleeping.
- * @no_wait: whether this should give up and return -EBUSY
- * if this move would require sleeping
- * @new_mem: the new memory region receiving the buffer
- *
- * Move a buffer between two memory regions.
- */
- int (*move) (struct ttm_buffer_object *bo,
- bool evict, bool interruptible,
- bool no_wait_reserve, bool no_wait_gpu,
- struct ttm_mem_reg *new_mem);
-
- /**
- * struct ttm_bo_driver_member verify_access
- *
- * @bo: Pointer to a buffer object.
- * @filp: Pointer to a struct file trying to access the object.
- *
- * Called from the map / write / read methods to verify that the
- * caller is permitted to access the buffer object.
- * This member may be set to NULL, which will refuse this kind of
- * access for all buffer objects.
- * This function should return 0 if access is granted, -EPERM otherwise.
- */
- int (*verify_access) (struct ttm_buffer_object *bo,
- struct file *filp);
-
- /**
- * In case a driver writer dislikes the TTM fence objects,
- * the driver writer can replace those with sync objects of
- * his / her own. If it turns out that no driver writer is
- * using these. I suggest we remove these hooks and plug in
- * fences directly. The bo driver needs the following functionality:
- * See the corresponding functions in the fence object API
- * documentation.
- */
-
- bool (*sync_obj_signaled) (void *sync_obj, void *sync_arg);
- int (*sync_obj_wait) (void *sync_obj, void *sync_arg,
- bool lazy, bool interruptible);
- int (*sync_obj_flush) (void *sync_obj, void *sync_arg);
- void (*sync_obj_unref) (void **sync_obj);
- void *(*sync_obj_ref) (void *sync_obj);
-
- /* hook to notify driver about a driver move so it
- * can do tiling things */
- void (*move_notify)(struct ttm_buffer_object *bo,
- struct ttm_mem_reg *new_mem);
- /* notify the driver we are taking a fault on this BO
- * and have reserved it */
- int (*fault_reserve_notify)(struct ttm_buffer_object *bo);
-
- /**
- * notify the driver that we're about to swap out this bo
- */
- void (*swap_notify) (struct ttm_buffer_object *bo);
-
- /**
- * Driver callback on when mapping io memory (for bo_move_memcpy
- * for instance). TTM will take care to call io_mem_free whenever
- * the mapping is not use anymore. io_mem_reserve & io_mem_free
- * are balanced.
- */
- int (*io_mem_reserve)(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem);
- void (*io_mem_free)(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem);
-};
-
-/**
- * struct ttm_bo_global_ref - Argument to initialize a struct ttm_bo_global.
- */
-
-struct ttm_bo_global_ref {
- struct drm_global_reference ref;
- struct ttm_mem_global *mem_glob;
-};
-
-/**
- * struct ttm_bo_global - Buffer object driver global data.
- *
- * @mem_glob: Pointer to a struct ttm_mem_global object for accounting.
- * @dummy_read_page: Pointer to a dummy page used for mapping requests
- * of unpopulated pages.
- * @shrink: A shrink callback object used for buffer object swap.
- * @device_list_mutex: Mutex protecting the device list.
- * This mutex is held while traversing the device list for pm options.
- * @lru_lock: Spinlock protecting the bo subsystem lru lists.
- * @device_list: List of buffer object devices.
- * @swap_lru: Lru list of buffer objects used for swapping.
- */
-
-struct ttm_bo_global {
-
- /**
- * Constant after init.
- */
-
- struct kobject kobj;
- struct ttm_mem_global *mem_glob;
- struct page *dummy_read_page;
- struct ttm_mem_shrink shrink;
- struct mutex device_list_mutex;
- spinlock_t lru_lock;
-
- /**
- * Protected by device_list_mutex.
- */
- struct list_head device_list;
-
- /**
- * Protected by the lru_lock.
- */
- struct list_head swap_lru;
-
- /**
- * Internal protection.
- */
- atomic_t bo_count;
-};
-
-
-#define TTM_NUM_MEM_TYPES 8
-
-#define TTM_BO_PRIV_FLAG_MOVING 0 /* Buffer object is moving and needs
- idling before CPU mapping */
-#define TTM_BO_PRIV_FLAG_MAX 1
-/**
- * struct ttm_bo_device - Buffer object driver device-specific data.
- *
- * @driver: Pointer to a struct ttm_bo_driver struct setup by the driver.
- * @man: An array of mem_type_managers.
- * @fence_lock: Protects the synchronizing members on *all* bos belonging
- * to this device.
- * @addr_space_mm: Range manager for the device address space.
- * lru_lock: Spinlock that protects the buffer+device lru lists and
- * ddestroy lists.
- * @val_seq: Current validation sequence.
- * @nice_mode: Try nicely to wait for buffer idle when cleaning a manager.
- * If a GPU lockup has been detected, this is forced to 0.
- * @dev_mapping: A pointer to the struct address_space representing the
- * device address space.
- * @wq: Work queue structure for the delayed delete workqueue.
- *
- */
-
-struct ttm_bo_device {
-
- /*
- * Constant after bo device init / atomic.
- */
- struct list_head device_list;
- struct ttm_bo_global *glob;
- struct ttm_bo_driver *driver;
- rwlock_t vm_lock;
- struct ttm_mem_type_manager man[TTM_NUM_MEM_TYPES];
- spinlock_t fence_lock;
- /*
- * Protected by the vm lock.
- */
- struct rb_root addr_space_rb;
- struct drm_mm addr_space_mm;
-
- /*
- * Protected by the global:lru lock.
- */
- struct list_head ddestroy;
- uint32_t val_seq;
-
- /*
- * Protected by load / firstopen / lastclose /unload sync.
- */
-
- bool nice_mode;
- struct address_space *dev_mapping;
-
- /*
- * Internal protection.
- */
-
- struct delayed_work wq;
-
- bool need_dma32;
-};
-
-/**
- * ttm_flag_masked
- *
- * @old: Pointer to the result and original value.
- * @new: New value of bits.
- * @mask: Mask of bits to change.
- *
- * Convenience function to change a number of bits identified by a mask.
- */
-
-static inline uint32_t
-ttm_flag_masked(uint32_t *old, uint32_t new, uint32_t mask)
-{
- *old ^= (*old ^ new) & mask;
- return *old;
-}
-
-/**
- * ttm_tt_init
- *
- * @ttm: The struct ttm_tt.
- * @bdev: pointer to a struct ttm_bo_device:
- * @size: Size of the data needed backing.
- * @page_flags: Page flags as identified by TTM_PAGE_FLAG_XX flags.
- * @dummy_read_page: See struct ttm_bo_device.
- *
- * Create a struct ttm_tt to back data with system memory pages.
- * No pages are actually allocated.
- * Returns:
- * NULL: Out of memory.
- */
-extern int ttm_tt_init(struct ttm_tt *ttm, struct ttm_bo_device *bdev,
- unsigned long size, uint32_t page_flags,
- struct page *dummy_read_page);
-extern int ttm_dma_tt_init(struct ttm_dma_tt *ttm_dma, struct ttm_bo_device *bdev,
- unsigned long size, uint32_t page_flags,
- struct page *dummy_read_page);
-
-/**
- * ttm_tt_fini
- *
- * @ttm: the ttm_tt structure.
- *
- * Free memory of ttm_tt structure
- */
-extern void ttm_tt_fini(struct ttm_tt *ttm);
-extern void ttm_dma_tt_fini(struct ttm_dma_tt *ttm_dma);
-
-/**
- * ttm_ttm_bind:
- *
- * @ttm: The struct ttm_tt containing backing pages.
- * @bo_mem: The struct ttm_mem_reg identifying the binding location.
- *
- * Bind the pages of @ttm to an aperture location identified by @bo_mem
- */
-extern int ttm_tt_bind(struct ttm_tt *ttm, struct ttm_mem_reg *bo_mem);
-
-/**
- * ttm_ttm_destroy:
- *
- * @ttm: The struct ttm_tt.
- *
- * Unbind, unpopulate and destroy common struct ttm_tt.
- */
-extern void ttm_tt_destroy(struct ttm_tt *ttm);
-
-/**
- * ttm_ttm_unbind:
- *
- * @ttm: The struct ttm_tt.
- *
- * Unbind a struct ttm_tt.
- */
-extern void ttm_tt_unbind(struct ttm_tt *ttm);
-
-/**
- * ttm_tt_swapin:
- *
- * @ttm: The struct ttm_tt.
- *
- * Swap in a previously swap out ttm_tt.
- */
-extern int ttm_tt_swapin(struct ttm_tt *ttm);
-
-/**
- * ttm_tt_cache_flush:
- *
- * @pages: An array of pointers to struct page:s to flush.
- * @num_pages: Number of pages to flush.
- *
- * Flush the data of the indicated pages from the cpu caches.
- * This is used when changing caching attributes of the pages from
- * cache-coherent.
- */
-extern void ttm_tt_cache_flush(struct page *pages[], unsigned long num_pages);
-
-/**
- * ttm_tt_set_placement_caching:
- *
- * @ttm A struct ttm_tt the backing pages of which will change caching policy.
- * @placement: Flag indicating the desired caching policy.
- *
- * This function will change caching policy of any default kernel mappings of
- * the pages backing @ttm. If changing from cached to uncached or
- * write-combined,
- * all CPU caches will first be flushed to make sure the data of the pages
- * hit RAM. This function may be very costly as it involves global TLB
- * and cache flushes and potential page splitting / combining.
- */
-extern int ttm_tt_set_placement_caching(struct ttm_tt *ttm, uint32_t placement);
-extern int ttm_tt_swapout(struct ttm_tt *ttm,
- struct file *persistent_swap_storage);
-
-/*
- * ttm_bo.c
- */
-
-/**
- * ttm_mem_reg_is_pci
- *
- * @bdev: Pointer to a struct ttm_bo_device.
- * @mem: A valid struct ttm_mem_reg.
- *
- * Returns true if the memory described by @mem is PCI memory,
- * false otherwise.
- */
-extern bool ttm_mem_reg_is_pci(struct ttm_bo_device *bdev,
- struct ttm_mem_reg *mem);
-
-/**
- * ttm_bo_mem_space
- *
- * @bo: Pointer to a struct ttm_buffer_object. the data of which
- * we want to allocate space for.
- * @proposed_placement: Proposed new placement for the buffer object.
- * @mem: A struct ttm_mem_reg.
- * @interruptible: Sleep interruptible when sliping.
- * @no_wait_reserve: Return immediately if other buffers are busy.
- * @no_wait_gpu: Return immediately if the GPU is busy.
- *
- * Allocate memory space for the buffer object pointed to by @bo, using
- * the placement flags in @mem, potentially evicting other idle buffer objects.
- * This function may sleep while waiting for space to become available.
- * Returns:
- * -EBUSY: No space available (only if no_wait == 1).
- * -ENOMEM: Could not allocate memory for the buffer object, either due to
- * fragmentation or concurrent allocators.
- * -ERESTARTSYS: An interruptible sleep was interrupted by a signal.
- */
-extern int ttm_bo_mem_space(struct ttm_buffer_object *bo,
- struct ttm_placement *placement,
- struct ttm_mem_reg *mem,
- bool interruptible,
- bool no_wait_reserve, bool no_wait_gpu);
-
-extern void ttm_bo_mem_put(struct ttm_buffer_object *bo,
- struct ttm_mem_reg *mem);
-extern void ttm_bo_mem_put_locked(struct ttm_buffer_object *bo,
- struct ttm_mem_reg *mem);
-
-/**
- * ttm_bo_wait_for_cpu
- *
- * @bo: Pointer to a struct ttm_buffer_object.
- * @no_wait: Don't sleep while waiting.
- *
- * Wait until a buffer object is no longer sync'ed for CPU access.
- * Returns:
- * -EBUSY: Buffer object was sync'ed for CPU access. (only if no_wait == 1).
- * -ERESTARTSYS: An interruptible sleep was interrupted by a signal.
- */
-
-extern int ttm_bo_wait_cpu(struct ttm_buffer_object *bo, bool no_wait);
-
-extern void ttm_bo_global_release(struct drm_global_reference *ref);
-extern int ttm_bo_global_init(struct drm_global_reference *ref);
-
-extern int ttm_bo_device_release(struct ttm_bo_device *bdev);
-
-/**
- * ttm_bo_device_init
- *
- * @bdev: A pointer to a struct ttm_bo_device to initialize.
- * @glob: A pointer to an initialized struct ttm_bo_global.
- * @driver: A pointer to a struct ttm_bo_driver set up by the caller.
- * @file_page_offset: Offset into the device address space that is available
- * for buffer data. This ensures compatibility with other users of the
- * address space.
- *
- * Initializes a struct ttm_bo_device:
- * Returns:
- * !0: Failure.
- */
-extern int ttm_bo_device_init(struct ttm_bo_device *bdev,
- struct ttm_bo_global *glob,
- struct ttm_bo_driver *driver,
- uint64_t file_page_offset, bool need_dma32);
-
-/**
- * ttm_bo_unmap_virtual
- *
- * @bo: tear down the virtual mappings for this BO
- */
-extern void ttm_bo_unmap_virtual(struct ttm_buffer_object *bo);
-
-/**
- * ttm_bo_unmap_virtual
- *
- * @bo: tear down the virtual mappings for this BO
- *
- * The caller must take ttm_mem_io_lock before calling this function.
- */
-extern void ttm_bo_unmap_virtual_locked(struct ttm_buffer_object *bo);
-
-extern int ttm_mem_io_reserve_vm(struct ttm_buffer_object *bo);
-extern void ttm_mem_io_free_vm(struct ttm_buffer_object *bo);
-extern int ttm_mem_io_lock(struct ttm_mem_type_manager *man,
- bool interruptible);
-extern void ttm_mem_io_unlock(struct ttm_mem_type_manager *man);
-
-
-/**
- * ttm_bo_reserve:
- *
- * @bo: A pointer to a struct ttm_buffer_object.
- * @interruptible: Sleep interruptible if waiting.
- * @no_wait: Don't sleep while trying to reserve, rather return -EBUSY.
- * @use_sequence: If @bo is already reserved, Only sleep waiting for
- * it to become unreserved if @sequence < (@bo)->sequence.
- *
- * Locks a buffer object for validation. (Or prevents other processes from
- * locking it for validation) and removes it from lru lists, while taking
- * a number of measures to prevent deadlocks.
- *
- * Deadlocks may occur when two processes try to reserve multiple buffers in
- * different order, either by will or as a result of a buffer being evicted
- * to make room for a buffer already reserved. (Buffers are reserved before
- * they are evicted). The following algorithm prevents such deadlocks from
- * occurring:
- * 1) Buffers are reserved with the lru spinlock held. Upon successful
- * reservation they are removed from the lru list. This stops a reserved buffer
- * from being evicted. However the lru spinlock is released between the time
- * a buffer is selected for eviction and the time it is reserved.
- * Therefore a check is made when a buffer is reserved for eviction, that it
- * is still the first buffer in the lru list, before it is removed from the
- * list. @check_lru == 1 forces this check. If it fails, the function returns
- * -EINVAL, and the caller should then choose a new buffer to evict and repeat
- * the procedure.
- * 2) Processes attempting to reserve multiple buffers other than for eviction,
- * (typically execbuf), should first obtain a unique 32-bit
- * validation sequence number,
- * and call this function with @use_sequence == 1 and @sequence == the unique
- * sequence number. If upon call of this function, the buffer object is already
- * reserved, the validation sequence is checked against the validation
- * sequence of the process currently reserving the buffer,
- * and if the current validation sequence is greater than that of the process
- * holding the reservation, the function returns -EAGAIN. Otherwise it sleeps
- * waiting for the buffer to become unreserved, after which it retries
- * reserving.
- * The caller should, when receiving an -EAGAIN error
- * release all its buffer reservations, wait for @bo to become unreserved, and
- * then rerun the validation with the same validation sequence. This procedure
- * will always guarantee that the process with the lowest validation sequence
- * will eventually succeed, preventing both deadlocks and starvation.
- *
- * Returns:
- * -EAGAIN: The reservation may cause a deadlock.
- * Release all buffer reservations, wait for @bo to become unreserved and
- * try again. (only if use_sequence == 1).
- * -ERESTARTSYS: A wait for the buffer to become unreserved was interrupted by
- * a signal. Release all buffer reservations and return to user-space.
- * -EBUSY: The function needed to sleep, but @no_wait was true
- * -EDEADLK: Bo already reserved using @sequence. This error code will only
- * be returned if @use_sequence is set to true.
- */
-extern int ttm_bo_reserve(struct ttm_buffer_object *bo,
- bool interruptible,
- bool no_wait, bool use_sequence, uint32_t sequence);
-
-
-/**
- * ttm_bo_reserve_locked:
- *
- * @bo: A pointer to a struct ttm_buffer_object.
- * @interruptible: Sleep interruptible if waiting.
- * @no_wait: Don't sleep while trying to reserve, rather return -EBUSY.
- * @use_sequence: If @bo is already reserved, Only sleep waiting for
- * it to become unreserved if @sequence < (@bo)->sequence.
- *
- * Must be called with struct ttm_bo_global::lru_lock held,
- * and will not remove reserved buffers from the lru lists.
- * The function may release the LRU spinlock if it needs to sleep.
- * Otherwise identical to ttm_bo_reserve.
- *
- * Returns:
- * -EAGAIN: The reservation may cause a deadlock.
- * Release all buffer reservations, wait for @bo to become unreserved and
- * try again. (only if use_sequence == 1).
- * -ERESTARTSYS: A wait for the buffer to become unreserved was interrupted by
- * a signal. Release all buffer reservations and return to user-space.
- * -EBUSY: The function needed to sleep, but @no_wait was true
- * -EDEADLK: Bo already reserved using @sequence. This error code will only
- * be returned if @use_sequence is set to true.
- */
-extern int ttm_bo_reserve_locked(struct ttm_buffer_object *bo,
- bool interruptible,
- bool no_wait, bool use_sequence,
- uint32_t sequence);
-
-/**
- * ttm_bo_unreserve
- *
- * @bo: A pointer to a struct ttm_buffer_object.
- *
- * Unreserve a previous reservation of @bo.
- */
-extern void ttm_bo_unreserve(struct ttm_buffer_object *bo);
-
-/**
- * ttm_bo_unreserve_locked
- *
- * @bo: A pointer to a struct ttm_buffer_object.
- *
- * Unreserve a previous reservation of @bo.
- * Needs to be called with struct ttm_bo_global::lru_lock held.
- */
-extern void ttm_bo_unreserve_locked(struct ttm_buffer_object *bo);
-
-/**
- * ttm_bo_wait_unreserved
- *
- * @bo: A pointer to a struct ttm_buffer_object.
- *
- * Wait for a struct ttm_buffer_object to become unreserved.
- * This is typically used in the execbuf code to relax cpu-usage when
- * a potential deadlock condition backoff.
- */
-extern int ttm_bo_wait_unreserved(struct ttm_buffer_object *bo,
- bool interruptible);
-
-/*
- * ttm_bo_util.c
- */
-
-/**
- * ttm_bo_move_ttm
- *
- * @bo: A pointer to a struct ttm_buffer_object.
- * @evict: 1: This is an eviction. Don't try to pipeline.
- * @no_wait_reserve: Return immediately if other buffers are busy.
- * @no_wait_gpu: Return immediately if the GPU is busy.
- * @new_mem: struct ttm_mem_reg indicating where to move.
- *
- * Optimized move function for a buffer object with both old and
- * new placement backed by a TTM. The function will, if successful,
- * free any old aperture space, and set (@new_mem)->mm_node to NULL,
- * and update the (@bo)->mem placement flags. If unsuccessful, the old
- * data remains untouched, and it's up to the caller to free the
- * memory space indicated by @new_mem.
- * Returns:
- * !0: Failure.
- */
-
-extern int ttm_bo_move_ttm(struct ttm_buffer_object *bo,
- bool evict, bool no_wait_reserve,
- bool no_wait_gpu, struct ttm_mem_reg *new_mem);
-
-/**
- * ttm_bo_move_memcpy
- *
- * @bo: A pointer to a struct ttm_buffer_object.
- * @evict: 1: This is an eviction. Don't try to pipeline.
- * @no_wait_reserve: Return immediately if other buffers are busy.
- * @no_wait_gpu: Return immediately if the GPU is busy.
- * @new_mem: struct ttm_mem_reg indicating where to move.
- *
- * Fallback move function for a mappable buffer object in mappable memory.
- * The function will, if successful,
- * free any old aperture space, and set (@new_mem)->mm_node to NULL,
- * and update the (@bo)->mem placement flags. If unsuccessful, the old
- * data remains untouched, and it's up to the caller to free the
- * memory space indicated by @new_mem.
- * Returns:
- * !0: Failure.
- */
-
-extern int ttm_bo_move_memcpy(struct ttm_buffer_object *bo,
- bool evict, bool no_wait_reserve,
- bool no_wait_gpu, struct ttm_mem_reg *new_mem);
-
-/**
- * ttm_bo_free_old_node
- *
- * @bo: A pointer to a struct ttm_buffer_object.
- *
- * Utility function to free an old placement after a successful move.
- */
-extern void ttm_bo_free_old_node(struct ttm_buffer_object *bo);
-
-/**
- * ttm_bo_move_accel_cleanup.
- *
- * @bo: A pointer to a struct ttm_buffer_object.
- * @sync_obj: A sync object that signals when moving is complete.
- * @sync_obj_arg: An argument to pass to the sync object idle / wait
- * functions.
- * @evict: This is an evict move. Don't return until the buffer is idle.
- * @no_wait_reserve: Return immediately if other buffers are busy.
- * @no_wait_gpu: Return immediately if the GPU is busy.
- * @new_mem: struct ttm_mem_reg indicating where to move.
- *
- * Accelerated move function to be called when an accelerated move
- * has been scheduled. The function will create a new temporary buffer object
- * representing the old placement, and put the sync object on both buffer
- * objects. After that the newly created buffer object is unref'd to be
- * destroyed when the move is complete. This will help pipeline
- * buffer moves.
- */
-
-extern int ttm_bo_move_accel_cleanup(struct ttm_buffer_object *bo,
- void *sync_obj,
- void *sync_obj_arg,
- bool evict, bool no_wait_reserve,
- bool no_wait_gpu,
- struct ttm_mem_reg *new_mem);
-/**
- * ttm_io_prot
- *
- * @c_state: Caching state.
- * @tmp: Page protection flag for a normal, cached mapping.
- *
- * Utility function that returns the pgprot_t that should be used for
- * setting up a PTE with the caching model indicated by @c_state.
- */
-extern pgprot_t ttm_io_prot(uint32_t caching_flags, pgprot_t tmp);
-
-extern const struct ttm_mem_type_manager_func ttm_bo_manager_func;
-
-#if (defined(CONFIG_AGP) || (defined(CONFIG_AGP_MODULE) && defined(MODULE)))
-#define TTM_HAS_AGP
-#include <linux/agp_backend.h>
-
-/**
- * ttm_agp_tt_create
- *
- * @bdev: Pointer to a struct ttm_bo_device.
- * @bridge: The agp bridge this device is sitting on.
- * @size: Size of the data needed backing.
- * @page_flags: Page flags as identified by TTM_PAGE_FLAG_XX flags.
- * @dummy_read_page: See struct ttm_bo_device.
- *
- *
- * Create a TTM backend that uses the indicated AGP bridge as an aperture
- * for TT memory. This function uses the linux agpgart interface to
- * bind and unbind memory backing a ttm_tt.
- */
-extern struct ttm_tt *ttm_agp_tt_create(struct ttm_bo_device *bdev,
- struct agp_bridge_data *bridge,
- unsigned long size, uint32_t page_flags,
- struct page *dummy_read_page);
-int ttm_agp_tt_populate(struct ttm_tt *ttm);
-void ttm_agp_tt_unpopulate(struct ttm_tt *ttm);
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/drm/ttm/ttm_execbuf_util.h b/ANDROID_3.4.5/include/drm/ttm/ttm_execbuf_util.h
deleted file mode 100644
index 26cc7f9f..00000000
--- a/ANDROID_3.4.5/include/drm/ttm/ttm_execbuf_util.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/**************************************************************************
- *
- * Copyright (c) 2006-2009 VMware, Inc., Palo Alto, CA., USA
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- * USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- **************************************************************************/
-/*
- * Authors: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
- */
-
-#ifndef _TTM_EXECBUF_UTIL_H_
-#define _TTM_EXECBUF_UTIL_H_
-
-#include "ttm/ttm_bo_api.h"
-#include <linux/list.h>
-
-/**
- * struct ttm_validate_buffer
- *
- * @head: list head for thread-private list.
- * @bo: refcounted buffer object pointer.
- * @new_sync_obj_arg: New sync_obj_arg for @bo, to be used once
- * adding a new sync object.
- * @reserved: Indicates whether @bo has been reserved for validation.
- * @removed: Indicates whether @bo has been removed from lru lists.
- * @put_count: Number of outstanding references on bo::list_kref.
- * @old_sync_obj: Pointer to a sync object about to be unreferenced
- */
-
-struct ttm_validate_buffer {
- struct list_head head;
- struct ttm_buffer_object *bo;
- void *new_sync_obj_arg;
- bool reserved;
- bool removed;
- int put_count;
- void *old_sync_obj;
-};
-
-/**
- * function ttm_eu_backoff_reservation
- *
- * @list: thread private list of ttm_validate_buffer structs.
- *
- * Undoes all buffer validation reservations for bos pointed to by
- * the list entries.
- */
-
-extern void ttm_eu_backoff_reservation(struct list_head *list);
-
-/**
- * function ttm_eu_reserve_buffers
- *
- * @list: thread private list of ttm_validate_buffer structs.
- *
- * Tries to reserve bos pointed to by the list entries for validation.
- * If the function returns 0, all buffers are marked as "unfenced",
- * taken off the lru lists and are not synced for write CPU usage.
- *
- * If the function detects a deadlock due to multiple threads trying to
- * reserve the same buffers in reverse order, all threads except one will
- * back off and retry. This function may sleep while waiting for
- * CPU write reservations to be cleared, and for other threads to
- * unreserve their buffers.
- *
- * This function may return -ERESTART or -EAGAIN if the calling process
- * receives a signal while waiting. In that case, no buffers on the list
- * will be reserved upon return.
- *
- * Buffers reserved by this function should be unreserved by
- * a call to either ttm_eu_backoff_reservation() or
- * ttm_eu_fence_buffer_objects() when command submission is complete or
- * has failed.
- */
-
-extern int ttm_eu_reserve_buffers(struct list_head *list);
-
-/**
- * function ttm_eu_fence_buffer_objects.
- *
- * @list: thread private list of ttm_validate_buffer structs.
- * @sync_obj: The new sync object for the buffers.
- *
- * This function should be called when command submission is complete, and
- * it will add a new sync object to bos pointed to by entries on @list.
- * It also unreserves all buffers, putting them on lru lists.
- *
- */
-
-extern void ttm_eu_fence_buffer_objects(struct list_head *list, void *sync_obj);
-
-#endif
diff --git a/ANDROID_3.4.5/include/drm/ttm/ttm_lock.h b/ANDROID_3.4.5/include/drm/ttm/ttm_lock.h
deleted file mode 100644
index 2e7f0c94..00000000
--- a/ANDROID_3.4.5/include/drm/ttm/ttm_lock.h
+++ /dev/null
@@ -1,247 +0,0 @@
-/**************************************************************************
- *
- * Copyright (c) 2007-2009 VMware, Inc., Palo Alto, CA., USA
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- * USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- **************************************************************************/
-/*
- * Authors: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
- */
-
-/** @file ttm_lock.h
- * This file implements a simple replacement for the buffer manager use
- * of the DRM heavyweight hardware lock.
- * The lock is a read-write lock. Taking it in read mode and write mode
- * is relatively fast, and intended for in-kernel use only.
- *
- * The vt mode is used only when there is a need to block all
- * user-space processes from validating buffers.
- * It's allowed to leave kernel space with the vt lock held.
- * If a user-space process dies while having the vt-lock,
- * it will be released during the file descriptor release. The vt lock
- * excludes write lock and read lock.
- *
- * The suspend mode is used to lock out all TTM users when preparing for
- * and executing suspend operations.
- *
- */
-
-#ifndef _TTM_LOCK_H_
-#define _TTM_LOCK_H_
-
-#include "ttm/ttm_object.h"
-#include <linux/wait.h>
-#include <linux/atomic.h>
-
-/**
- * struct ttm_lock
- *
- * @base: ttm base object used solely to release the lock if the client
- * holding the lock dies.
- * @queue: Queue for processes waiting for lock change-of-status.
- * @lock: Spinlock protecting some lock members.
- * @rw: Read-write lock counter. Protected by @lock.
- * @flags: Lock state. Protected by @lock.
- * @kill_takers: Boolean whether to kill takers of the lock.
- * @signal: Signal to send when kill_takers is true.
- */
-
-struct ttm_lock {
- struct ttm_base_object base;
- wait_queue_head_t queue;
- spinlock_t lock;
- int32_t rw;
- uint32_t flags;
- bool kill_takers;
- int signal;
- struct ttm_object_file *vt_holder;
-};
-
-
-/**
- * ttm_lock_init
- *
- * @lock: Pointer to a struct ttm_lock
- * Initializes the lock.
- */
-extern void ttm_lock_init(struct ttm_lock *lock);
-
-/**
- * ttm_read_unlock
- *
- * @lock: Pointer to a struct ttm_lock
- *
- * Releases a read lock.
- */
-extern void ttm_read_unlock(struct ttm_lock *lock);
-
-/**
- * ttm_read_lock
- *
- * @lock: Pointer to a struct ttm_lock
- * @interruptible: Interruptible sleeping while waiting for a lock.
- *
- * Takes the lock in read mode.
- * Returns:
- * -ERESTARTSYS If interrupted by a signal and interruptible is true.
- */
-extern int ttm_read_lock(struct ttm_lock *lock, bool interruptible);
-
-/**
- * ttm_read_trylock
- *
- * @lock: Pointer to a struct ttm_lock
- * @interruptible: Interruptible sleeping while waiting for a lock.
- *
- * Tries to take the lock in read mode. If the lock is already held
- * in write mode, the function will return -EBUSY. If the lock is held
- * in vt or suspend mode, the function will sleep until these modes
- * are unlocked.
- *
- * Returns:
- * -EBUSY The lock was already held in write mode.
- * -ERESTARTSYS If interrupted by a signal and interruptible is true.
- */
-extern int ttm_read_trylock(struct ttm_lock *lock, bool interruptible);
-
-/**
- * ttm_write_unlock
- *
- * @lock: Pointer to a struct ttm_lock
- *
- * Releases a write lock.
- */
-extern void ttm_write_unlock(struct ttm_lock *lock);
-
-/**
- * ttm_write_lock
- *
- * @lock: Pointer to a struct ttm_lock
- * @interruptible: Interruptible sleeping while waiting for a lock.
- *
- * Takes the lock in write mode.
- * Returns:
- * -ERESTARTSYS If interrupted by a signal and interruptible is true.
- */
-extern int ttm_write_lock(struct ttm_lock *lock, bool interruptible);
-
-/**
- * ttm_lock_downgrade
- *
- * @lock: Pointer to a struct ttm_lock
- *
- * Downgrades a write lock to a read lock.
- */
-extern void ttm_lock_downgrade(struct ttm_lock *lock);
-
-/**
- * ttm_suspend_lock
- *
- * @lock: Pointer to a struct ttm_lock
- *
- * Takes the lock in suspend mode. Excludes read and write mode.
- */
-extern void ttm_suspend_lock(struct ttm_lock *lock);
-
-/**
- * ttm_suspend_unlock
- *
- * @lock: Pointer to a struct ttm_lock
- *
- * Releases a suspend lock
- */
-extern void ttm_suspend_unlock(struct ttm_lock *lock);
-
-/**
- * ttm_vt_lock
- *
- * @lock: Pointer to a struct ttm_lock
- * @interruptible: Interruptible sleeping while waiting for a lock.
- * @tfile: Pointer to a struct ttm_object_file to register the lock with.
- *
- * Takes the lock in vt mode.
- * Returns:
- * -ERESTARTSYS If interrupted by a signal and interruptible is true.
- * -ENOMEM: Out of memory when locking.
- */
-extern int ttm_vt_lock(struct ttm_lock *lock, bool interruptible,
- struct ttm_object_file *tfile);
-
-/**
- * ttm_vt_unlock
- *
- * @lock: Pointer to a struct ttm_lock
- *
- * Releases a vt lock.
- * Returns:
- * -EINVAL If the lock was not held.
- */
-extern int ttm_vt_unlock(struct ttm_lock *lock);
-
-/**
- * ttm_write_unlock
- *
- * @lock: Pointer to a struct ttm_lock
- *
- * Releases a write lock.
- */
-extern void ttm_write_unlock(struct ttm_lock *lock);
-
-/**
- * ttm_write_lock
- *
- * @lock: Pointer to a struct ttm_lock
- * @interruptible: Interruptible sleeping while waiting for a lock.
- *
- * Takes the lock in write mode.
- * Returns:
- * -ERESTARTSYS If interrupted by a signal and interruptible is true.
- */
-extern int ttm_write_lock(struct ttm_lock *lock, bool interruptible);
-
-/**
- * ttm_lock_set_kill
- *
- * @lock: Pointer to a struct ttm_lock
- * @val: Boolean whether to kill processes taking the lock.
- * @signal: Signal to send to the process taking the lock.
- *
- * The kill-when-taking-lock functionality is used to kill processes that keep
- * on using the TTM functionality when its resources has been taken down, for
- * example when the X server exits. A typical sequence would look like this:
- * - X server takes lock in write mode.
- * - ttm_lock_set_kill() is called with @val set to true.
- * - As part of X server exit, TTM resources are taken down.
- * - X server releases the lock on file release.
- * - Another dri client wants to render, takes the lock and is killed.
- *
- */
-static inline void ttm_lock_set_kill(struct ttm_lock *lock, bool val,
- int signal)
-{
- lock->kill_takers = val;
- if (val)
- lock->signal = signal;
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/drm/ttm/ttm_memory.h b/ANDROID_3.4.5/include/drm/ttm/ttm_memory.h
deleted file mode 100644
index d6d1da46..00000000
--- a/ANDROID_3.4.5/include/drm/ttm/ttm_memory.h
+++ /dev/null
@@ -1,160 +0,0 @@
-/**************************************************************************
- *
- * Copyright (c) 2006-2009 VMware, Inc., Palo Alto, CA., USA
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- * USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- **************************************************************************/
-
-#ifndef TTM_MEMORY_H
-#define TTM_MEMORY_H
-
-#include <linux/workqueue.h>
-#include <linux/spinlock.h>
-#include <linux/bug.h>
-#include <linux/wait.h>
-#include <linux/errno.h>
-#include <linux/kobject.h>
-#include <linux/mm.h>
-
-/**
- * struct ttm_mem_shrink - callback to shrink TTM memory usage.
- *
- * @do_shrink: The callback function.
- *
- * Arguments to the do_shrink functions are intended to be passed using
- * inheritance. That is, the argument class derives from struct ttm_mem_shrink,
- * and can be accessed using container_of().
- */
-
-struct ttm_mem_shrink {
- int (*do_shrink) (struct ttm_mem_shrink *);
-};
-
-/**
- * struct ttm_mem_global - Global memory accounting structure.
- *
- * @shrink: A single callback to shrink TTM memory usage. Extend this
- * to a linked list to be able to handle multiple callbacks when needed.
- * @swap_queue: A workqueue to handle shrinking in low memory situations. We
- * need a separate workqueue since it will spend a lot of time waiting
- * for the GPU, and this will otherwise block other workqueue tasks(?)
- * At this point we use only a single-threaded workqueue.
- * @work: The workqueue callback for the shrink queue.
- * @queue: Wait queue for processes suspended waiting for memory.
- * @lock: Lock to protect the @shrink - and the memory accounting members,
- * that is, essentially the whole structure with some exceptions.
- * @zones: Array of pointers to accounting zones.
- * @num_zones: Number of populated entries in the @zones array.
- * @zone_kernel: Pointer to the kernel zone.
- * @zone_highmem: Pointer to the highmem zone if there is one.
- * @zone_dma32: Pointer to the dma32 zone if there is one.
- *
- * Note that this structure is not per device. It should be global for all
- * graphics devices.
- */
-
-#define TTM_MEM_MAX_ZONES 2
-struct ttm_mem_zone;
-struct ttm_mem_global {
- struct kobject kobj;
- struct ttm_mem_shrink *shrink;
- struct workqueue_struct *swap_queue;
- struct work_struct work;
- wait_queue_head_t queue;
- spinlock_t lock;
- struct ttm_mem_zone *zones[TTM_MEM_MAX_ZONES];
- unsigned int num_zones;
- struct ttm_mem_zone *zone_kernel;
-#ifdef CONFIG_HIGHMEM
- struct ttm_mem_zone *zone_highmem;
-#else
- struct ttm_mem_zone *zone_dma32;
-#endif
-};
-
-/**
- * ttm_mem_init_shrink - initialize a struct ttm_mem_shrink object
- *
- * @shrink: The object to initialize.
- * @func: The callback function.
- */
-
-static inline void ttm_mem_init_shrink(struct ttm_mem_shrink *shrink,
- int (*func) (struct ttm_mem_shrink *))
-{
- shrink->do_shrink = func;
-}
-
-/**
- * ttm_mem_register_shrink - register a struct ttm_mem_shrink object.
- *
- * @glob: The struct ttm_mem_global object to register with.
- * @shrink: An initialized struct ttm_mem_shrink object to register.
- *
- * Returns:
- * -EBUSY: There's already a callback registered. (May change).
- */
-
-static inline int ttm_mem_register_shrink(struct ttm_mem_global *glob,
- struct ttm_mem_shrink *shrink)
-{
- spin_lock(&glob->lock);
- if (glob->shrink != NULL) {
- spin_unlock(&glob->lock);
- return -EBUSY;
- }
- glob->shrink = shrink;
- spin_unlock(&glob->lock);
- return 0;
-}
-
-/**
- * ttm_mem_unregister_shrink - unregister a struct ttm_mem_shrink object.
- *
- * @glob: The struct ttm_mem_global object to unregister from.
- * @shrink: A previously registert struct ttm_mem_shrink object.
- *
- */
-
-static inline void ttm_mem_unregister_shrink(struct ttm_mem_global *glob,
- struct ttm_mem_shrink *shrink)
-{
- spin_lock(&glob->lock);
- BUG_ON(glob->shrink != shrink);
- glob->shrink = NULL;
- spin_unlock(&glob->lock);
-}
-
-extern int ttm_mem_global_init(struct ttm_mem_global *glob);
-extern void ttm_mem_global_release(struct ttm_mem_global *glob);
-extern int ttm_mem_global_alloc(struct ttm_mem_global *glob, uint64_t memory,
- bool no_wait, bool interruptible);
-extern void ttm_mem_global_free(struct ttm_mem_global *glob,
- uint64_t amount);
-extern int ttm_mem_global_alloc_page(struct ttm_mem_global *glob,
- struct page *page,
- bool no_wait, bool interruptible);
-extern void ttm_mem_global_free_page(struct ttm_mem_global *glob,
- struct page *page);
-extern size_t ttm_round_pot(size_t size);
-#endif
diff --git a/ANDROID_3.4.5/include/drm/ttm/ttm_module.h b/ANDROID_3.4.5/include/drm/ttm/ttm_module.h
deleted file mode 100644
index 45fa318c..00000000
--- a/ANDROID_3.4.5/include/drm/ttm/ttm_module.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/**************************************************************************
- *
- * Copyright 2008-2009 VMware, Inc., Palo Alto, CA., USA
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- * USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- **************************************************************************/
-/*
- * Authors: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
- */
-
-#ifndef _TTM_MODULE_H_
-#define _TTM_MODULE_H_
-
-#include <linux/kernel.h>
-struct kobject;
-
-#define TTM_PFX "[TTM] "
-extern struct kobject *ttm_get_kobj(void);
-
-#endif /* _TTM_MODULE_H_ */
diff --git a/ANDROID_3.4.5/include/drm/ttm/ttm_object.h b/ANDROID_3.4.5/include/drm/ttm/ttm_object.h
deleted file mode 100644
index e46054e5..00000000
--- a/ANDROID_3.4.5/include/drm/ttm/ttm_object.h
+++ /dev/null
@@ -1,271 +0,0 @@
-/**************************************************************************
- *
- * Copyright (c) 2006-2009 VMware, Inc., Palo Alto, CA., USA
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- * USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- **************************************************************************/
-/*
- * Authors: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
- */
-/** @file ttm_object.h
- *
- * Base- and reference object implementation for the various
- * ttm objects. Implements reference counting, minimal security checks
- * and release on file close.
- */
-
-#ifndef _TTM_OBJECT_H_
-#define _TTM_OBJECT_H_
-
-#include <linux/list.h>
-#include "drm_hashtab.h"
-#include <linux/kref.h>
-#include <ttm/ttm_memory.h>
-
-/**
- * enum ttm_ref_type
- *
- * Describes what type of reference a ref object holds.
- *
- * TTM_REF_USAGE is a simple refcount on a base object.
- *
- * TTM_REF_SYNCCPU_READ is a SYNCCPU_READ reference on a
- * buffer object.
- *
- * TTM_REF_SYNCCPU_WRITE is a SYNCCPU_WRITE reference on a
- * buffer object.
- *
- */
-
-enum ttm_ref_type {
- TTM_REF_USAGE,
- TTM_REF_SYNCCPU_READ,
- TTM_REF_SYNCCPU_WRITE,
- TTM_REF_NUM
-};
-
-/**
- * enum ttm_object_type
- *
- * One entry per ttm object type.
- * Device-specific types should use the
- * ttm_driver_typex types.
- */
-
-enum ttm_object_type {
- ttm_fence_type,
- ttm_buffer_type,
- ttm_lock_type,
- ttm_driver_type0 = 256,
- ttm_driver_type1,
- ttm_driver_type2,
- ttm_driver_type3,
- ttm_driver_type4,
- ttm_driver_type5
-};
-
-struct ttm_object_file;
-struct ttm_object_device;
-
-/**
- * struct ttm_base_object
- *
- * @hash: hash entry for the per-device object hash.
- * @type: derived type this object is base class for.
- * @shareable: Other ttm_object_files can access this object.
- *
- * @tfile: Pointer to ttm_object_file of the creator.
- * NULL if the object was not created by a user request.
- * (kernel object).
- *
- * @refcount: Number of references to this object, not
- * including the hash entry. A reference to a base object can
- * only be held by a ref object.
- *
- * @refcount_release: A function to be called when there are
- * no more references to this object. This function should
- * destroy the object (or make sure destruction eventually happens),
- * and when it is called, the object has
- * already been taken out of the per-device hash. The parameter
- * "base" should be set to NULL by the function.
- *
- * @ref_obj_release: A function to be called when a reference object
- * with another ttm_ref_type than TTM_REF_USAGE is deleted.
- * This function may, for example, release a lock held by a user-space
- * process.
- *
- * This struct is intended to be used as a base struct for objects that
- * are visible to user-space. It provides a global name, race-safe
- * access and refcounting, minimal access contol and hooks for unref actions.
- */
-
-struct ttm_base_object {
- struct drm_hash_item hash;
- enum ttm_object_type object_type;
- bool shareable;
- struct ttm_object_file *tfile;
- struct kref refcount;
- void (*refcount_release) (struct ttm_base_object **base);
- void (*ref_obj_release) (struct ttm_base_object *base,
- enum ttm_ref_type ref_type);
-};
-
-/**
- * ttm_base_object_init
- *
- * @tfile: Pointer to a struct ttm_object_file.
- * @base: The struct ttm_base_object to initialize.
- * @shareable: This object is shareable with other applcations.
- * (different @tfile pointers.)
- * @type: The object type.
- * @refcount_release: See the struct ttm_base_object description.
- * @ref_obj_release: See the struct ttm_base_object description.
- *
- * Initializes a struct ttm_base_object.
- */
-
-extern int ttm_base_object_init(struct ttm_object_file *tfile,
- struct ttm_base_object *base,
- bool shareable,
- enum ttm_object_type type,
- void (*refcount_release) (struct ttm_base_object
- **),
- void (*ref_obj_release) (struct ttm_base_object
- *,
- enum ttm_ref_type
- ref_type));
-
-/**
- * ttm_base_object_lookup
- *
- * @tfile: Pointer to a struct ttm_object_file.
- * @key: Hash key
- *
- * Looks up a struct ttm_base_object with the key @key.
- * Also verifies that the object is visible to the application, by
- * comparing the @tfile argument and checking the object shareable flag.
- */
-
-extern struct ttm_base_object *ttm_base_object_lookup(struct ttm_object_file
- *tfile, uint32_t key);
-
-/**
- * ttm_base_object_unref
- *
- * @p_base: Pointer to a pointer referencing a struct ttm_base_object.
- *
- * Decrements the base object refcount and clears the pointer pointed to by
- * p_base.
- */
-
-extern void ttm_base_object_unref(struct ttm_base_object **p_base);
-
-/**
- * ttm_ref_object_add.
- *
- * @tfile: A struct ttm_object_file representing the application owning the
- * ref_object.
- * @base: The base object to reference.
- * @ref_type: The type of reference.
- * @existed: Upon completion, indicates that an identical reference object
- * already existed, and the refcount was upped on that object instead.
- *
- * Adding a ref object to a base object is basically like referencing the
- * base object, but a user-space application holds the reference. When the
- * file corresponding to @tfile is closed, all its reference objects are
- * deleted. A reference object can have different types depending on what
- * it's intended for. It can be refcounting to prevent object destruction,
- * When user-space takes a lock, it can add a ref object to that lock to
- * make sure the lock is released if the application dies. A ref object
- * will hold a single reference on a base object.
- */
-extern int ttm_ref_object_add(struct ttm_object_file *tfile,
- struct ttm_base_object *base,
- enum ttm_ref_type ref_type, bool *existed);
-/**
- * ttm_ref_object_base_unref
- *
- * @key: Key representing the base object.
- * @ref_type: Ref type of the ref object to be dereferenced.
- *
- * Unreference a ref object with type @ref_type
- * on the base object identified by @key. If there are no duplicate
- * references, the ref object will be destroyed and the base object
- * will be unreferenced.
- */
-extern int ttm_ref_object_base_unref(struct ttm_object_file *tfile,
- unsigned long key,
- enum ttm_ref_type ref_type);
-
-/**
- * ttm_object_file_init - initialize a struct ttm_object file
- *
- * @tdev: A struct ttm_object device this file is initialized on.
- * @hash_order: Order of the hash table used to hold the reference objects.
- *
- * This is typically called by the file_ops::open function.
- */
-
-extern struct ttm_object_file *ttm_object_file_init(struct ttm_object_device
- *tdev,
- unsigned int hash_order);
-
-/**
- * ttm_object_file_release - release data held by a ttm_object_file
- *
- * @p_tfile: Pointer to pointer to the ttm_object_file object to release.
- * *p_tfile will be set to NULL by this function.
- *
- * Releases all data associated by a ttm_object_file.
- * Typically called from file_ops::release. The caller must
- * ensure that there are no concurrent users of tfile.
- */
-
-extern void ttm_object_file_release(struct ttm_object_file **p_tfile);
-
-/**
- * ttm_object device init - initialize a struct ttm_object_device
- *
- * @hash_order: Order of hash table used to hash the base objects.
- *
- * This function is typically called on device initialization to prepare
- * data structures needed for ttm base and ref objects.
- */
-
-extern struct ttm_object_device *ttm_object_device_init
- (struct ttm_mem_global *mem_glob, unsigned int hash_order);
-
-/**
- * ttm_object_device_release - release data held by a ttm_object_device
- *
- * @p_tdev: Pointer to pointer to the ttm_object_device object to release.
- * *p_tdev will be set to NULL by this function.
- *
- * Releases all data associated by a ttm_object_device.
- * Typically called from driver::unload before the destruction of the
- * device private data structure.
- */
-
-extern void ttm_object_device_release(struct ttm_object_device **p_tdev);
-
-#endif
diff --git a/ANDROID_3.4.5/include/drm/ttm/ttm_page_alloc.h b/ANDROID_3.4.5/include/drm/ttm/ttm_page_alloc.h
deleted file mode 100644
index 5fe27400..00000000
--- a/ANDROID_3.4.5/include/drm/ttm/ttm_page_alloc.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (c) Red Hat Inc.
-
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sub license,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- * Authors: Dave Airlie <airlied@redhat.com>
- * Jerome Glisse <jglisse@redhat.com>
- */
-#ifndef TTM_PAGE_ALLOC
-#define TTM_PAGE_ALLOC
-
-#include "ttm_bo_driver.h"
-#include "ttm_memory.h"
-
-/**
- * Initialize pool allocator.
- */
-int ttm_page_alloc_init(struct ttm_mem_global *glob, unsigned max_pages);
-/**
- * Free pool allocator.
- */
-void ttm_page_alloc_fini(void);
-
-/**
- * ttm_pool_populate:
- *
- * @ttm: The struct ttm_tt to contain the backing pages.
- *
- * Add backing pages to all of @ttm
- */
-extern int ttm_pool_populate(struct ttm_tt *ttm);
-
-/**
- * ttm_pool_unpopulate:
- *
- * @ttm: The struct ttm_tt which to free backing pages.
- *
- * Free all pages of @ttm
- */
-extern void ttm_pool_unpopulate(struct ttm_tt *ttm);
-
-/**
- * Output the state of pools to debugfs file
- */
-extern int ttm_page_alloc_debugfs(struct seq_file *m, void *data);
-
-
-#ifdef CONFIG_SWIOTLB
-/**
- * Initialize pool allocator.
- */
-int ttm_dma_page_alloc_init(struct ttm_mem_global *glob, unsigned max_pages);
-
-/**
- * Free pool allocator.
- */
-void ttm_dma_page_alloc_fini(void);
-
-/**
- * Output the state of pools to debugfs file
- */
-extern int ttm_dma_page_alloc_debugfs(struct seq_file *m, void *data);
-
-extern int ttm_dma_populate(struct ttm_dma_tt *ttm_dma, struct device *dev);
-extern void ttm_dma_unpopulate(struct ttm_dma_tt *ttm_dma, struct device *dev);
-
-#else
-static inline int ttm_dma_page_alloc_init(struct ttm_mem_global *glob,
- unsigned max_pages)
-{
- return -ENODEV;
-}
-
-static inline void ttm_dma_page_alloc_fini(void) { return; }
-
-static inline int ttm_dma_page_alloc_debugfs(struct seq_file *m, void *data)
-{
- return 0;
-}
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/drm/ttm/ttm_placement.h b/ANDROID_3.4.5/include/drm/ttm/ttm_placement.h
deleted file mode 100644
index c84ff153..00000000
--- a/ANDROID_3.4.5/include/drm/ttm/ttm_placement.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/**************************************************************************
- *
- * Copyright (c) 2006-2009 VMware, Inc., Palo Alto, CA., USA
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- * USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- **************************************************************************/
-/*
- * Authors: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
- */
-
-#ifndef _TTM_PLACEMENT_H_
-#define _TTM_PLACEMENT_H_
-/*
- * Memory regions for data placement.
- */
-
-#define TTM_PL_SYSTEM 0
-#define TTM_PL_TT 1
-#define TTM_PL_VRAM 2
-#define TTM_PL_PRIV0 3
-#define TTM_PL_PRIV1 4
-#define TTM_PL_PRIV2 5
-#define TTM_PL_PRIV3 6
-#define TTM_PL_PRIV4 7
-#define TTM_PL_PRIV5 8
-#define TTM_PL_SWAPPED 15
-
-#define TTM_PL_FLAG_SYSTEM (1 << TTM_PL_SYSTEM)
-#define TTM_PL_FLAG_TT (1 << TTM_PL_TT)
-#define TTM_PL_FLAG_VRAM (1 << TTM_PL_VRAM)
-#define TTM_PL_FLAG_PRIV0 (1 << TTM_PL_PRIV0)
-#define TTM_PL_FLAG_PRIV1 (1 << TTM_PL_PRIV1)
-#define TTM_PL_FLAG_PRIV2 (1 << TTM_PL_PRIV2)
-#define TTM_PL_FLAG_PRIV3 (1 << TTM_PL_PRIV3)
-#define TTM_PL_FLAG_PRIV4 (1 << TTM_PL_PRIV4)
-#define TTM_PL_FLAG_PRIV5 (1 << TTM_PL_PRIV5)
-#define TTM_PL_FLAG_SWAPPED (1 << TTM_PL_SWAPPED)
-#define TTM_PL_MASK_MEM 0x0000FFFF
-
-/*
- * Other flags that affects data placement.
- * TTM_PL_FLAG_CACHED indicates cache-coherent mappings
- * if available.
- * TTM_PL_FLAG_SHARED means that another application may
- * reference the buffer.
- * TTM_PL_FLAG_NO_EVICT means that the buffer may never
- * be evicted to make room for other buffers.
- */
-
-#define TTM_PL_FLAG_CACHED (1 << 16)
-#define TTM_PL_FLAG_UNCACHED (1 << 17)
-#define TTM_PL_FLAG_WC (1 << 18)
-#define TTM_PL_FLAG_SHARED (1 << 20)
-#define TTM_PL_FLAG_NO_EVICT (1 << 21)
-
-#define TTM_PL_MASK_CACHING (TTM_PL_FLAG_CACHED | \
- TTM_PL_FLAG_UNCACHED | \
- TTM_PL_FLAG_WC)
-
-#define TTM_PL_MASK_MEMTYPE (TTM_PL_MASK_MEM | TTM_PL_MASK_CACHING)
-
-/*
- * Access flags to be used for CPU- and GPU- mappings.
- * The idea is that the TTM synchronization mechanism will
- * allow concurrent READ access and exclusive write access.
- * Currently GPU- and CPU accesses are exclusive.
- */
-
-#define TTM_ACCESS_READ (1 << 0)
-#define TTM_ACCESS_WRITE (1 << 1)
-
-#endif
diff --git a/ANDROID_3.4.5/include/drm/via_drm.h b/ANDROID_3.4.5/include/drm/via_drm.h
deleted file mode 100644
index 79b3b6e0..00000000
--- a/ANDROID_3.4.5/include/drm/via_drm.h
+++ /dev/null
@@ -1,281 +0,0 @@
-/*
- * Copyright 1998-2003 VIA Technologies, Inc. All Rights Reserved.
- * Copyright 2001-2003 S3 Graphics, Inc. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sub license,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
- * VIA, S3 GRAPHICS, AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-#ifndef _VIA_DRM_H_
-#define _VIA_DRM_H_
-
-#include "drm.h"
-
-/* WARNING: These defines must be the same as what the Xserver uses.
- * if you change them, you must change the defines in the Xserver.
- */
-
-#ifndef _VIA_DEFINES_
-#define _VIA_DEFINES_
-
-#ifndef __KERNEL__
-#include "via_drmclient.h"
-#endif
-
-#define VIA_NR_SAREA_CLIPRECTS 8
-#define VIA_NR_XVMC_PORTS 10
-#define VIA_NR_XVMC_LOCKS 5
-#define VIA_MAX_CACHELINE_SIZE 64
-#define XVMCLOCKPTR(saPriv,lockNo) \
- ((volatile struct drm_hw_lock *)(((((unsigned long) (saPriv)->XvMCLockArea) + \
- (VIA_MAX_CACHELINE_SIZE - 1)) & \
- ~(VIA_MAX_CACHELINE_SIZE - 1)) + \
- VIA_MAX_CACHELINE_SIZE*(lockNo)))
-
-/* Each region is a minimum of 64k, and there are at most 64 of them.
- */
-#define VIA_NR_TEX_REGIONS 64
-#define VIA_LOG_MIN_TEX_REGION_SIZE 16
-#endif
-
-#define VIA_UPLOAD_TEX0IMAGE 0x1 /* handled clientside */
-#define VIA_UPLOAD_TEX1IMAGE 0x2 /* handled clientside */
-#define VIA_UPLOAD_CTX 0x4
-#define VIA_UPLOAD_BUFFERS 0x8
-#define VIA_UPLOAD_TEX0 0x10
-#define VIA_UPLOAD_TEX1 0x20
-#define VIA_UPLOAD_CLIPRECTS 0x40
-#define VIA_UPLOAD_ALL 0xff
-
-/* VIA specific ioctls */
-#define DRM_VIA_ALLOCMEM 0x00
-#define DRM_VIA_FREEMEM 0x01
-#define DRM_VIA_AGP_INIT 0x02
-#define DRM_VIA_FB_INIT 0x03
-#define DRM_VIA_MAP_INIT 0x04
-#define DRM_VIA_DEC_FUTEX 0x05
-#define NOT_USED
-#define DRM_VIA_DMA_INIT 0x07
-#define DRM_VIA_CMDBUFFER 0x08
-#define DRM_VIA_FLUSH 0x09
-#define DRM_VIA_PCICMD 0x0a
-#define DRM_VIA_CMDBUF_SIZE 0x0b
-#define NOT_USED
-#define DRM_VIA_WAIT_IRQ 0x0d
-#define DRM_VIA_DMA_BLIT 0x0e
-#define DRM_VIA_BLIT_SYNC 0x0f
-
-#define DRM_IOCTL_VIA_ALLOCMEM DRM_IOWR(DRM_COMMAND_BASE + DRM_VIA_ALLOCMEM, drm_via_mem_t)
-#define DRM_IOCTL_VIA_FREEMEM DRM_IOW( DRM_COMMAND_BASE + DRM_VIA_FREEMEM, drm_via_mem_t)
-#define DRM_IOCTL_VIA_AGP_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_VIA_AGP_INIT, drm_via_agp_t)
-#define DRM_IOCTL_VIA_FB_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_VIA_FB_INIT, drm_via_fb_t)
-#define DRM_IOCTL_VIA_MAP_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_VIA_MAP_INIT, drm_via_init_t)
-#define DRM_IOCTL_VIA_DEC_FUTEX DRM_IOW( DRM_COMMAND_BASE + DRM_VIA_DEC_FUTEX, drm_via_futex_t)
-#define DRM_IOCTL_VIA_DMA_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_VIA_DMA_INIT, drm_via_dma_init_t)
-#define DRM_IOCTL_VIA_CMDBUFFER DRM_IOW( DRM_COMMAND_BASE + DRM_VIA_CMDBUFFER, drm_via_cmdbuffer_t)
-#define DRM_IOCTL_VIA_FLUSH DRM_IO( DRM_COMMAND_BASE + DRM_VIA_FLUSH)
-#define DRM_IOCTL_VIA_PCICMD DRM_IOW( DRM_COMMAND_BASE + DRM_VIA_PCICMD, drm_via_cmdbuffer_t)
-#define DRM_IOCTL_VIA_CMDBUF_SIZE DRM_IOWR( DRM_COMMAND_BASE + DRM_VIA_CMDBUF_SIZE, \
- drm_via_cmdbuf_size_t)
-#define DRM_IOCTL_VIA_WAIT_IRQ DRM_IOWR( DRM_COMMAND_BASE + DRM_VIA_WAIT_IRQ, drm_via_irqwait_t)
-#define DRM_IOCTL_VIA_DMA_BLIT DRM_IOW(DRM_COMMAND_BASE + DRM_VIA_DMA_BLIT, drm_via_dmablit_t)
-#define DRM_IOCTL_VIA_BLIT_SYNC DRM_IOW(DRM_COMMAND_BASE + DRM_VIA_BLIT_SYNC, drm_via_blitsync_t)
-
-/* Indices into buf.Setup where various bits of state are mirrored per
- * context and per buffer. These can be fired at the card as a unit,
- * or in a piecewise fashion as required.
- */
-
-#define VIA_TEX_SETUP_SIZE 8
-
-/* Flags for clear ioctl
- */
-#define VIA_FRONT 0x1
-#define VIA_BACK 0x2
-#define VIA_DEPTH 0x4
-#define VIA_STENCIL 0x8
-#define VIA_MEM_VIDEO 0 /* matches drm constant */
-#define VIA_MEM_AGP 1 /* matches drm constant */
-#define VIA_MEM_SYSTEM 2
-#define VIA_MEM_MIXED 3
-#define VIA_MEM_UNKNOWN 4
-
-typedef struct {
- __u32 offset;
- __u32 size;
-} drm_via_agp_t;
-
-typedef struct {
- __u32 offset;
- __u32 size;
-} drm_via_fb_t;
-
-typedef struct {
- __u32 context;
- __u32 type;
- __u32 size;
- unsigned long index;
- unsigned long offset;
-} drm_via_mem_t;
-
-typedef struct _drm_via_init {
- enum {
- VIA_INIT_MAP = 0x01,
- VIA_CLEANUP_MAP = 0x02
- } func;
-
- unsigned long sarea_priv_offset;
- unsigned long fb_offset;
- unsigned long mmio_offset;
- unsigned long agpAddr;
-} drm_via_init_t;
-
-typedef struct _drm_via_futex {
- enum {
- VIA_FUTEX_WAIT = 0x00,
- VIA_FUTEX_WAKE = 0X01
- } func;
- __u32 ms;
- __u32 lock;
- __u32 val;
-} drm_via_futex_t;
-
-typedef struct _drm_via_dma_init {
- enum {
- VIA_INIT_DMA = 0x01,
- VIA_CLEANUP_DMA = 0x02,
- VIA_DMA_INITIALIZED = 0x03
- } func;
-
- unsigned long offset;
- unsigned long size;
- unsigned long reg_pause_addr;
-} drm_via_dma_init_t;
-
-typedef struct _drm_via_cmdbuffer {
- char __user *buf;
- unsigned long size;
-} drm_via_cmdbuffer_t;
-
-/* Warning: If you change the SAREA structure you must change the Xserver
- * structure as well */
-
-typedef struct _drm_via_tex_region {
- unsigned char next, prev; /* indices to form a circular LRU */
- unsigned char inUse; /* owned by a client, or free? */
- int age; /* tracked by clients to update local LRU's */
-} drm_via_tex_region_t;
-
-typedef struct _drm_via_sarea {
- unsigned int dirty;
- unsigned int nbox;
- struct drm_clip_rect boxes[VIA_NR_SAREA_CLIPRECTS];
- drm_via_tex_region_t texList[VIA_NR_TEX_REGIONS + 1];
- int texAge; /* last time texture was uploaded */
- int ctxOwner; /* last context to upload state */
- int vertexPrim;
-
- /*
- * Below is for XvMC.
- * We want the lock integers alone on, and aligned to, a cache line.
- * Therefore this somewhat strange construct.
- */
-
- char XvMCLockArea[VIA_MAX_CACHELINE_SIZE * (VIA_NR_XVMC_LOCKS + 1)];
-
- unsigned int XvMCDisplaying[VIA_NR_XVMC_PORTS];
- unsigned int XvMCSubPicOn[VIA_NR_XVMC_PORTS];
- unsigned int XvMCCtxNoGrabbed; /* Last context to hold decoder */
-
- /* Used by the 3d driver only at this point, for pageflipping:
- */
- unsigned int pfCurrentOffset;
-} drm_via_sarea_t;
-
-typedef struct _drm_via_cmdbuf_size {
- enum {
- VIA_CMDBUF_SPACE = 0x01,
- VIA_CMDBUF_LAG = 0x02
- } func;
- int wait;
- __u32 size;
-} drm_via_cmdbuf_size_t;
-
-typedef enum {
- VIA_IRQ_ABSOLUTE = 0x0,
- VIA_IRQ_RELATIVE = 0x1,
- VIA_IRQ_SIGNAL = 0x10000000,
- VIA_IRQ_FORCE_SEQUENCE = 0x20000000
-} via_irq_seq_type_t;
-
-#define VIA_IRQ_FLAGS_MASK 0xF0000000
-
-enum drm_via_irqs {
- drm_via_irq_hqv0 = 0,
- drm_via_irq_hqv1,
- drm_via_irq_dma0_dd,
- drm_via_irq_dma0_td,
- drm_via_irq_dma1_dd,
- drm_via_irq_dma1_td,
- drm_via_irq_num
-};
-
-struct drm_via_wait_irq_request {
- unsigned irq;
- via_irq_seq_type_t type;
- __u32 sequence;
- __u32 signal;
-};
-
-typedef union drm_via_irqwait {
- struct drm_via_wait_irq_request request;
- struct drm_wait_vblank_reply reply;
-} drm_via_irqwait_t;
-
-typedef struct drm_via_blitsync {
- __u32 sync_handle;
- unsigned engine;
-} drm_via_blitsync_t;
-
-/* - * Below,"flags" is currently unused but will be used for possible future
- * extensions like kernel space bounce buffers for bad alignments and
- * blit engine busy-wait polling for better latency in the absence of
- * interrupts.
- */
-
-typedef struct drm_via_dmablit {
- __u32 num_lines;
- __u32 line_length;
-
- __u32 fb_addr;
- __u32 fb_stride;
-
- unsigned char *mem_addr;
- __u32 mem_stride;
-
- __u32 flags;
- int to_fb;
-
- drm_via_blitsync_t sync;
-} drm_via_dmablit_t;
-
-struct via_file_private {
- struct list_head obj_list;
-};
-
-#endif /* _VIA_DRM_H_ */
diff --git a/ANDROID_3.4.5/include/drm/vmwgfx_drm.h b/ANDROID_3.4.5/include/drm/vmwgfx_drm.h
deleted file mode 100644
index bcb0912a..00000000
--- a/ANDROID_3.4.5/include/drm/vmwgfx_drm.h
+++ /dev/null
@@ -1,790 +0,0 @@
-/**************************************************************************
- *
- * Copyright © 2009 VMware, Inc., Palo Alto, CA., USA
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- * USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- **************************************************************************/
-
-#ifndef __VMWGFX_DRM_H__
-#define __VMWGFX_DRM_H__
-
-#define DRM_VMW_MAX_SURFACE_FACES 6
-#define DRM_VMW_MAX_MIP_LEVELS 24
-
-
-#define DRM_VMW_GET_PARAM 0
-#define DRM_VMW_ALLOC_DMABUF 1
-#define DRM_VMW_UNREF_DMABUF 2
-#define DRM_VMW_CURSOR_BYPASS 3
-/* guarded by DRM_VMW_PARAM_NUM_STREAMS != 0*/
-#define DRM_VMW_CONTROL_STREAM 4
-#define DRM_VMW_CLAIM_STREAM 5
-#define DRM_VMW_UNREF_STREAM 6
-/* guarded by DRM_VMW_PARAM_3D == 1 */
-#define DRM_VMW_CREATE_CONTEXT 7
-#define DRM_VMW_UNREF_CONTEXT 8
-#define DRM_VMW_CREATE_SURFACE 9
-#define DRM_VMW_UNREF_SURFACE 10
-#define DRM_VMW_REF_SURFACE 11
-#define DRM_VMW_EXECBUF 12
-#define DRM_VMW_GET_3D_CAP 13
-#define DRM_VMW_FENCE_WAIT 14
-#define DRM_VMW_FENCE_SIGNALED 15
-#define DRM_VMW_FENCE_UNREF 16
-#define DRM_VMW_FENCE_EVENT 17
-#define DRM_VMW_PRESENT 18
-#define DRM_VMW_PRESENT_READBACK 19
-#define DRM_VMW_UPDATE_LAYOUT 20
-
-/*************************************************************************/
-/**
- * DRM_VMW_GET_PARAM - get device information.
- *
- * DRM_VMW_PARAM_FIFO_OFFSET:
- * Offset to use to map the first page of the FIFO read-only.
- * The fifo is mapped using the mmap() system call on the drm device.
- *
- * DRM_VMW_PARAM_OVERLAY_IOCTL:
- * Does the driver support the overlay ioctl.
- */
-
-#define DRM_VMW_PARAM_NUM_STREAMS 0
-#define DRM_VMW_PARAM_NUM_FREE_STREAMS 1
-#define DRM_VMW_PARAM_3D 2
-#define DRM_VMW_PARAM_HW_CAPS 3
-#define DRM_VMW_PARAM_FIFO_CAPS 4
-#define DRM_VMW_PARAM_MAX_FB_SIZE 5
-#define DRM_VMW_PARAM_FIFO_HW_VERSION 6
-
-/**
- * struct drm_vmw_getparam_arg
- *
- * @value: Returned value. //Out
- * @param: Parameter to query. //In.
- *
- * Argument to the DRM_VMW_GET_PARAM Ioctl.
- */
-
-struct drm_vmw_getparam_arg {
- uint64_t value;
- uint32_t param;
- uint32_t pad64;
-};
-
-/*************************************************************************/
-/**
- * DRM_VMW_CREATE_CONTEXT - Create a host context.
- *
- * Allocates a device unique context id, and queues a create context command
- * for the host. Does not wait for host completion.
- */
-
-/**
- * struct drm_vmw_context_arg
- *
- * @cid: Device unique context ID.
- *
- * Output argument to the DRM_VMW_CREATE_CONTEXT Ioctl.
- * Input argument to the DRM_VMW_UNREF_CONTEXT Ioctl.
- */
-
-struct drm_vmw_context_arg {
- int32_t cid;
- uint32_t pad64;
-};
-
-/*************************************************************************/
-/**
- * DRM_VMW_UNREF_CONTEXT - Create a host context.
- *
- * Frees a global context id, and queues a destroy host command for the host.
- * Does not wait for host completion. The context ID can be used directly
- * in the command stream and shows up as the same context ID on the host.
- */
-
-/*************************************************************************/
-/**
- * DRM_VMW_CREATE_SURFACE - Create a host suface.
- *
- * Allocates a device unique surface id, and queues a create surface command
- * for the host. Does not wait for host completion. The surface ID can be
- * used directly in the command stream and shows up as the same surface
- * ID on the host.
- */
-
-/**
- * struct drm_wmv_surface_create_req
- *
- * @flags: Surface flags as understood by the host.
- * @format: Surface format as understood by the host.
- * @mip_levels: Number of mip levels for each face.
- * An unused face should have 0 encoded.
- * @size_addr: Address of a user-space array of sruct drm_vmw_size
- * cast to an uint64_t for 32-64 bit compatibility.
- * The size of the array should equal the total number of mipmap levels.
- * @shareable: Boolean whether other clients (as identified by file descriptors)
- * may reference this surface.
- * @scanout: Boolean whether the surface is intended to be used as a
- * scanout.
- *
- * Input data to the DRM_VMW_CREATE_SURFACE Ioctl.
- * Output data from the DRM_VMW_REF_SURFACE Ioctl.
- */
-
-struct drm_vmw_surface_create_req {
- uint32_t flags;
- uint32_t format;
- uint32_t mip_levels[DRM_VMW_MAX_SURFACE_FACES];
- uint64_t size_addr;
- int32_t shareable;
- int32_t scanout;
-};
-
-/**
- * struct drm_wmv_surface_arg
- *
- * @sid: Surface id of created surface or surface to destroy or reference.
- *
- * Output data from the DRM_VMW_CREATE_SURFACE Ioctl.
- * Input argument to the DRM_VMW_UNREF_SURFACE Ioctl.
- * Input argument to the DRM_VMW_REF_SURFACE Ioctl.
- */
-
-struct drm_vmw_surface_arg {
- int32_t sid;
- uint32_t pad64;
-};
-
-/**
- * struct drm_vmw_size ioctl.
- *
- * @width - mip level width
- * @height - mip level height
- * @depth - mip level depth
- *
- * Description of a mip level.
- * Input data to the DRM_WMW_CREATE_SURFACE Ioctl.
- */
-
-struct drm_vmw_size {
- uint32_t width;
- uint32_t height;
- uint32_t depth;
- uint32_t pad64;
-};
-
-/**
- * union drm_vmw_surface_create_arg
- *
- * @rep: Output data as described above.
- * @req: Input data as described above.
- *
- * Argument to the DRM_VMW_CREATE_SURFACE Ioctl.
- */
-
-union drm_vmw_surface_create_arg {
- struct drm_vmw_surface_arg rep;
- struct drm_vmw_surface_create_req req;
-};
-
-/*************************************************************************/
-/**
- * DRM_VMW_REF_SURFACE - Reference a host surface.
- *
- * Puts a reference on a host surface with a give sid, as previously
- * returned by the DRM_VMW_CREATE_SURFACE ioctl.
- * A reference will make sure the surface isn't destroyed while we hold
- * it and will allow the calling client to use the surface ID in the command
- * stream.
- *
- * On successful return, the Ioctl returns the surface information given
- * in the DRM_VMW_CREATE_SURFACE ioctl.
- */
-
-/**
- * union drm_vmw_surface_reference_arg
- *
- * @rep: Output data as described above.
- * @req: Input data as described above.
- *
- * Argument to the DRM_VMW_REF_SURFACE Ioctl.
- */
-
-union drm_vmw_surface_reference_arg {
- struct drm_vmw_surface_create_req rep;
- struct drm_vmw_surface_arg req;
-};
-
-/*************************************************************************/
-/**
- * DRM_VMW_UNREF_SURFACE - Unreference a host surface.
- *
- * Clear a reference previously put on a host surface.
- * When all references are gone, including the one implicitly placed
- * on creation,
- * a destroy surface command will be queued for the host.
- * Does not wait for completion.
- */
-
-/*************************************************************************/
-/**
- * DRM_VMW_EXECBUF
- *
- * Submit a command buffer for execution on the host, and return a
- * fence seqno that when signaled, indicates that the command buffer has
- * executed.
- */
-
-/**
- * struct drm_vmw_execbuf_arg
- *
- * @commands: User-space address of a command buffer cast to an uint64_t.
- * @command-size: Size in bytes of the command buffer.
- * @throttle-us: Sleep until software is less than @throttle_us
- * microseconds ahead of hardware. The driver may round this value
- * to the nearest kernel tick.
- * @fence_rep: User-space address of a struct drm_vmw_fence_rep cast to an
- * uint64_t.
- * @version: Allows expanding the execbuf ioctl parameters without breaking
- * backwards compatibility, since user-space will always tell the kernel
- * which version it uses.
- * @flags: Execbuf flags. None currently.
- *
- * Argument to the DRM_VMW_EXECBUF Ioctl.
- */
-
-#define DRM_VMW_EXECBUF_VERSION 1
-
-struct drm_vmw_execbuf_arg {
- uint64_t commands;
- uint32_t command_size;
- uint32_t throttle_us;
- uint64_t fence_rep;
- uint32_t version;
- uint32_t flags;
-};
-
-/**
- * struct drm_vmw_fence_rep
- *
- * @handle: Fence object handle for fence associated with a command submission.
- * @mask: Fence flags relevant for this fence object.
- * @seqno: Fence sequence number in fifo. A fence object with a lower
- * seqno will signal the EXEC flag before a fence object with a higher
- * seqno. This can be used by user-space to avoid kernel calls to determine
- * whether a fence has signaled the EXEC flag. Note that @seqno will
- * wrap at 32-bit.
- * @passed_seqno: The highest seqno number processed by the hardware
- * so far. This can be used to mark user-space fence objects as signaled, and
- * to determine whether a fence seqno might be stale.
- * @error: This member should've been set to -EFAULT on submission.
- * The following actions should be take on completion:
- * error == -EFAULT: Fence communication failed. The host is synchronized.
- * Use the last fence id read from the FIFO fence register.
- * error != 0 && error != -EFAULT:
- * Fence submission failed. The host is synchronized. Use the fence_seq member.
- * error == 0: All is OK, The host may not be synchronized.
- * Use the fence_seq member.
- *
- * Input / Output data to the DRM_VMW_EXECBUF Ioctl.
- */
-
-struct drm_vmw_fence_rep {
- uint32_t handle;
- uint32_t mask;
- uint32_t seqno;
- uint32_t passed_seqno;
- uint32_t pad64;
- int32_t error;
-};
-
-/*************************************************************************/
-/**
- * DRM_VMW_ALLOC_DMABUF
- *
- * Allocate a DMA buffer that is visible also to the host.
- * NOTE: The buffer is
- * identified by a handle and an offset, which are private to the guest, but
- * useable in the command stream. The guest kernel may translate these
- * and patch up the command stream accordingly. In the future, the offset may
- * be zero at all times, or it may disappear from the interface before it is
- * fixed.
- *
- * The DMA buffer may stay user-space mapped in the guest at all times,
- * and is thus suitable for sub-allocation.
- *
- * DMA buffers are mapped using the mmap() syscall on the drm device.
- */
-
-/**
- * struct drm_vmw_alloc_dmabuf_req
- *
- * @size: Required minimum size of the buffer.
- *
- * Input data to the DRM_VMW_ALLOC_DMABUF Ioctl.
- */
-
-struct drm_vmw_alloc_dmabuf_req {
- uint32_t size;
- uint32_t pad64;
-};
-
-/**
- * struct drm_vmw_dmabuf_rep
- *
- * @map_handle: Offset to use in the mmap() call used to map the buffer.
- * @handle: Handle unique to this buffer. Used for unreferencing.
- * @cur_gmr_id: GMR id to use in the command stream when this buffer is
- * referenced. See not above.
- * @cur_gmr_offset: Offset to use in the command stream when this buffer is
- * referenced. See note above.
- *
- * Output data from the DRM_VMW_ALLOC_DMABUF Ioctl.
- */
-
-struct drm_vmw_dmabuf_rep {
- uint64_t map_handle;
- uint32_t handle;
- uint32_t cur_gmr_id;
- uint32_t cur_gmr_offset;
- uint32_t pad64;
-};
-
-/**
- * union drm_vmw_dmabuf_arg
- *
- * @req: Input data as described above.
- * @rep: Output data as described above.
- *
- * Argument to the DRM_VMW_ALLOC_DMABUF Ioctl.
- */
-
-union drm_vmw_alloc_dmabuf_arg {
- struct drm_vmw_alloc_dmabuf_req req;
- struct drm_vmw_dmabuf_rep rep;
-};
-
-/*************************************************************************/
-/**
- * DRM_VMW_UNREF_DMABUF - Free a DMA buffer.
- *
- */
-
-/**
- * struct drm_vmw_unref_dmabuf_arg
- *
- * @handle: Handle indicating what buffer to free. Obtained from the
- * DRM_VMW_ALLOC_DMABUF Ioctl.
- *
- * Argument to the DRM_VMW_UNREF_DMABUF Ioctl.
- */
-
-struct drm_vmw_unref_dmabuf_arg {
- uint32_t handle;
- uint32_t pad64;
-};
-
-/*************************************************************************/
-/**
- * DRM_VMW_CONTROL_STREAM - Control overlays, aka streams.
- *
- * This IOCTL controls the overlay units of the svga device.
- * The SVGA overlay units does not work like regular hardware units in
- * that they do not automaticaly read back the contents of the given dma
- * buffer. But instead only read back for each call to this ioctl, and
- * at any point between this call being made and a following call that
- * either changes the buffer or disables the stream.
- */
-
-/**
- * struct drm_vmw_rect
- *
- * Defines a rectangle. Used in the overlay ioctl to define
- * source and destination rectangle.
- */
-
-struct drm_vmw_rect {
- int32_t x;
- int32_t y;
- uint32_t w;
- uint32_t h;
-};
-
-/**
- * struct drm_vmw_control_stream_arg
- *
- * @stream_id: Stearm to control
- * @enabled: If false all following arguments are ignored.
- * @handle: Handle to buffer for getting data from.
- * @format: Format of the overlay as understood by the host.
- * @width: Width of the overlay.
- * @height: Height of the overlay.
- * @size: Size of the overlay in bytes.
- * @pitch: Array of pitches, the two last are only used for YUV12 formats.
- * @offset: Offset from start of dma buffer to overlay.
- * @src: Source rect, must be within the defined area above.
- * @dst: Destination rect, x and y may be negative.
- *
- * Argument to the DRM_VMW_CONTROL_STREAM Ioctl.
- */
-
-struct drm_vmw_control_stream_arg {
- uint32_t stream_id;
- uint32_t enabled;
-
- uint32_t flags;
- uint32_t color_key;
-
- uint32_t handle;
- uint32_t offset;
- int32_t format;
- uint32_t size;
- uint32_t width;
- uint32_t height;
- uint32_t pitch[3];
-
- uint32_t pad64;
- struct drm_vmw_rect src;
- struct drm_vmw_rect dst;
-};
-
-/*************************************************************************/
-/**
- * DRM_VMW_CURSOR_BYPASS - Give extra information about cursor bypass.
- *
- */
-
-#define DRM_VMW_CURSOR_BYPASS_ALL (1 << 0)
-#define DRM_VMW_CURSOR_BYPASS_FLAGS (1)
-
-/**
- * struct drm_vmw_cursor_bypass_arg
- *
- * @flags: Flags.
- * @crtc_id: Crtc id, only used if DMR_CURSOR_BYPASS_ALL isn't passed.
- * @xpos: X position of cursor.
- * @ypos: Y position of cursor.
- * @xhot: X hotspot.
- * @yhot: Y hotspot.
- *
- * Argument to the DRM_VMW_CURSOR_BYPASS Ioctl.
- */
-
-struct drm_vmw_cursor_bypass_arg {
- uint32_t flags;
- uint32_t crtc_id;
- int32_t xpos;
- int32_t ypos;
- int32_t xhot;
- int32_t yhot;
-};
-
-/*************************************************************************/
-/**
- * DRM_VMW_CLAIM_STREAM - Claim a single stream.
- */
-
-/**
- * struct drm_vmw_context_arg
- *
- * @stream_id: Device unique context ID.
- *
- * Output argument to the DRM_VMW_CREATE_CONTEXT Ioctl.
- * Input argument to the DRM_VMW_UNREF_CONTEXT Ioctl.
- */
-
-struct drm_vmw_stream_arg {
- uint32_t stream_id;
- uint32_t pad64;
-};
-
-/*************************************************************************/
-/**
- * DRM_VMW_UNREF_STREAM - Unclaim a stream.
- *
- * Return a single stream that was claimed by this process. Also makes
- * sure that the stream has been stopped.
- */
-
-/*************************************************************************/
-/**
- * DRM_VMW_GET_3D_CAP
- *
- * Read 3D capabilities from the FIFO
- *
- */
-
-/**
- * struct drm_vmw_get_3d_cap_arg
- *
- * @buffer: Pointer to a buffer for capability data, cast to an uint64_t
- * @size: Max size to copy
- *
- * Input argument to the DRM_VMW_GET_3D_CAP_IOCTL
- * ioctls.
- */
-
-struct drm_vmw_get_3d_cap_arg {
- uint64_t buffer;
- uint32_t max_size;
- uint32_t pad64;
-};
-
-/*************************************************************************/
-/**
- * DRM_VMW_FENCE_WAIT
- *
- * Waits for a fence object to signal. The wait is interruptible, so that
- * signals may be delivered during the interrupt. The wait may timeout,
- * in which case the calls returns -EBUSY. If the wait is restarted,
- * that is restarting without resetting @cookie_valid to zero,
- * the timeout is computed from the first call.
- *
- * The flags argument to the DRM_VMW_FENCE_WAIT ioctl indicates what to wait
- * on:
- * DRM_VMW_FENCE_FLAG_EXEC: All commands ahead of the fence in the command
- * stream
- * have executed.
- * DRM_VMW_FENCE_FLAG_QUERY: All query results resulting from query finish
- * commands
- * in the buffer given to the EXECBUF ioctl returning the fence object handle
- * are available to user-space.
- *
- * DRM_VMW_WAIT_OPTION_UNREF: If this wait option is given, and the
- * fenc wait ioctl returns 0, the fence object has been unreferenced after
- * the wait.
- */
-
-#define DRM_VMW_FENCE_FLAG_EXEC (1 << 0)
-#define DRM_VMW_FENCE_FLAG_QUERY (1 << 1)
-
-#define DRM_VMW_WAIT_OPTION_UNREF (1 << 0)
-
-/**
- * struct drm_vmw_fence_wait_arg
- *
- * @handle: Fence object handle as returned by the DRM_VMW_EXECBUF ioctl.
- * @cookie_valid: Must be reset to 0 on first call. Left alone on restart.
- * @kernel_cookie: Set to 0 on first call. Left alone on restart.
- * @timeout_us: Wait timeout in microseconds. 0 for indefinite timeout.
- * @lazy: Set to 1 if timing is not critical. Allow more than a kernel tick
- * before returning.
- * @flags: Fence flags to wait on.
- * @wait_options: Options that control the behaviour of the wait ioctl.
- *
- * Input argument to the DRM_VMW_FENCE_WAIT ioctl.
- */
-
-struct drm_vmw_fence_wait_arg {
- uint32_t handle;
- int32_t cookie_valid;
- uint64_t kernel_cookie;
- uint64_t timeout_us;
- int32_t lazy;
- int32_t flags;
- int32_t wait_options;
- int32_t pad64;
-};
-
-/*************************************************************************/
-/**
- * DRM_VMW_FENCE_SIGNALED
- *
- * Checks if a fence object is signaled..
- */
-
-/**
- * struct drm_vmw_fence_signaled_arg
- *
- * @handle: Fence object handle as returned by the DRM_VMW_EXECBUF ioctl.
- * @flags: Fence object flags input to DRM_VMW_FENCE_SIGNALED ioctl
- * @signaled: Out: Flags signaled.
- * @sequence: Out: Highest sequence passed so far. Can be used to signal the
- * EXEC flag of user-space fence objects.
- *
- * Input/Output argument to the DRM_VMW_FENCE_SIGNALED and DRM_VMW_FENCE_UNREF
- * ioctls.
- */
-
-struct drm_vmw_fence_signaled_arg {
- uint32_t handle;
- uint32_t flags;
- int32_t signaled;
- uint32_t passed_seqno;
- uint32_t signaled_flags;
- uint32_t pad64;
-};
-
-/*************************************************************************/
-/**
- * DRM_VMW_FENCE_UNREF
- *
- * Unreferences a fence object, and causes it to be destroyed if there are no
- * other references to it.
- *
- */
-
-/**
- * struct drm_vmw_fence_arg
- *
- * @handle: Fence object handle as returned by the DRM_VMW_EXECBUF ioctl.
- *
- * Input/Output argument to the DRM_VMW_FENCE_UNREF ioctl..
- */
-
-struct drm_vmw_fence_arg {
- uint32_t handle;
- uint32_t pad64;
-};
-
-
-/*************************************************************************/
-/**
- * DRM_VMW_FENCE_EVENT
- *
- * Queues an event on a fence to be delivered on the drm character device
- * when the fence has signaled the DRM_VMW_FENCE_FLAG_EXEC flag.
- * Optionally the approximate time when the fence signaled is
- * given by the event.
- */
-
-/*
- * The event type
- */
-#define DRM_VMW_EVENT_FENCE_SIGNALED 0x80000000
-
-struct drm_vmw_event_fence {
- struct drm_event base;
- uint64_t user_data;
- uint32_t tv_sec;
- uint32_t tv_usec;
-};
-
-/*
- * Flags that may be given to the command.
- */
-/* Request fence signaled time on the event. */
-#define DRM_VMW_FE_FLAG_REQ_TIME (1 << 0)
-
-/**
- * struct drm_vmw_fence_event_arg
- *
- * @fence_rep: Pointer to fence_rep structure cast to uint64_t or 0 if
- * the fence is not supposed to be referenced by user-space.
- * @user_info: Info to be delivered with the event.
- * @handle: Attach the event to this fence only.
- * @flags: A set of flags as defined above.
- */
-struct drm_vmw_fence_event_arg {
- uint64_t fence_rep;
- uint64_t user_data;
- uint32_t handle;
- uint32_t flags;
-};
-
-
-/*************************************************************************/
-/**
- * DRM_VMW_PRESENT
- *
- * Executes an SVGA present on a given fb for a given surface. The surface
- * is placed on the framebuffer. Cliprects are given relative to the given
- * point (the point disignated by dest_{x|y}).
- *
- */
-
-/**
- * struct drm_vmw_present_arg
- * @fb_id: framebuffer id to present / read back from.
- * @sid: Surface id to present from.
- * @dest_x: X placement coordinate for surface.
- * @dest_y: Y placement coordinate for surface.
- * @clips_ptr: Pointer to an array of clip rects cast to an uint64_t.
- * @num_clips: Number of cliprects given relative to the framebuffer origin,
- * in the same coordinate space as the frame buffer.
- * @pad64: Unused 64-bit padding.
- *
- * Input argument to the DRM_VMW_PRESENT ioctl.
- */
-
-struct drm_vmw_present_arg {
- uint32_t fb_id;
- uint32_t sid;
- int32_t dest_x;
- int32_t dest_y;
- uint64_t clips_ptr;
- uint32_t num_clips;
- uint32_t pad64;
-};
-
-
-/*************************************************************************/
-/**
- * DRM_VMW_PRESENT_READBACK
- *
- * Executes an SVGA present readback from a given fb to the dma buffer
- * currently bound as the fb. If there is no dma buffer bound to the fb,
- * an error will be returned.
- *
- */
-
-/**
- * struct drm_vmw_present_arg
- * @fb_id: fb_id to present / read back from.
- * @num_clips: Number of cliprects.
- * @clips_ptr: Pointer to an array of clip rects cast to an uint64_t.
- * @fence_rep: Pointer to a struct drm_vmw_fence_rep, cast to an uint64_t.
- * If this member is NULL, then the ioctl should not return a fence.
- */
-
-struct drm_vmw_present_readback_arg {
- uint32_t fb_id;
- uint32_t num_clips;
- uint64_t clips_ptr;
- uint64_t fence_rep;
-};
-
-/*************************************************************************/
-/**
- * DRM_VMW_UPDATE_LAYOUT - Update layout
- *
- * Updates the preferred modes and connection status for connectors. The
- * command consists of one drm_vmw_update_layout_arg pointing to an array
- * of num_outputs drm_vmw_rect's.
- */
-
-/**
- * struct drm_vmw_update_layout_arg
- *
- * @num_outputs: number of active connectors
- * @rects: pointer to array of drm_vmw_rect cast to an uint64_t
- *
- * Input argument to the DRM_VMW_UPDATE_LAYOUT Ioctl.
- */
-struct drm_vmw_update_layout_arg {
- uint32_t num_outputs;
- uint32_t pad64;
- uint64_t rects;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/keys/ceph-type.h b/ANDROID_3.4.5/include/keys/ceph-type.h
deleted file mode 100644
index f69c4ac1..00000000
--- a/ANDROID_3.4.5/include/keys/ceph-type.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef _KEYS_CEPH_TYPE_H
-#define _KEYS_CEPH_TYPE_H
-
-#include <linux/key.h>
-
-extern struct key_type key_type_ceph;
-
-#endif
diff --git a/ANDROID_3.4.5/include/keys/dns_resolver-type.h b/ANDROID_3.4.5/include/keys/dns_resolver-type.h
deleted file mode 100644
index 9284a193..00000000
--- a/ANDROID_3.4.5/include/keys/dns_resolver-type.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* DNS resolver key type
- *
- * Copyright (C) 2010 Wang Lei. All Rights Reserved.
- * Written by Wang Lei (wang840925@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.
- */
-
-#ifndef _KEYS_DNS_RESOLVER_TYPE_H
-#define _KEYS_DNS_RESOLVER_TYPE_H
-
-#include <linux/key-type.h>
-
-extern struct key_type key_type_dns_resolver;
-
-extern int request_dns_resolver_key(const char *description,
- const char *callout_info,
- char **data);
-
-#endif /* _KEYS_DNS_RESOLVER_TYPE_H */
diff --git a/ANDROID_3.4.5/include/keys/encrypted-type.h b/ANDROID_3.4.5/include/keys/encrypted-type.h
deleted file mode 100644
index 1d454137..00000000
--- a/ANDROID_3.4.5/include/keys/encrypted-type.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2010 IBM Corporation
- * Copyright (C) 2010 Politecnico di Torino, Italy
- * TORSEC group -- http://security.polito.it
- *
- * Authors:
- * Mimi Zohar <zohar@us.ibm.com>
- * Roberto Sassu <roberto.sassu@polito.it>
- *
- * 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 _KEYS_ENCRYPTED_TYPE_H
-#define _KEYS_ENCRYPTED_TYPE_H
-
-#include <linux/key.h>
-#include <linux/rcupdate.h>
-
-struct encrypted_key_payload {
- struct rcu_head rcu;
- char *format; /* datablob: format */
- char *master_desc; /* datablob: master key name */
- char *datalen; /* datablob: decrypted key length */
- u8 *iv; /* datablob: iv */
- u8 *encrypted_data; /* datablob: encrypted data */
- unsigned short datablob_len; /* length of datablob */
- unsigned short decrypted_datalen; /* decrypted data length */
- unsigned short payload_datalen; /* payload data length */
- unsigned short encrypted_key_format; /* encrypted key format */
- u8 *decrypted_data; /* decrypted data */
- u8 payload_data[0]; /* payload data + datablob + hmac */
-};
-
-extern struct key_type key_type_encrypted;
-
-#endif /* _KEYS_ENCRYPTED_TYPE_H */
diff --git a/ANDROID_3.4.5/include/keys/keyring-type.h b/ANDROID_3.4.5/include/keys/keyring-type.h
deleted file mode 100644
index 843f872a..00000000
--- a/ANDROID_3.4.5/include/keys/keyring-type.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Keyring key type
- *
- * Copyright (C) 2008 Red Hat, Inc. All Rights Reserved.
- * Written by David Howells (dhowells@redhat.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 _KEYS_KEYRING_TYPE_H
-#define _KEYS_KEYRING_TYPE_H
-
-#include <linux/key.h>
-#include <linux/rcupdate.h>
-
-/*
- * the keyring payload contains a list of the keys to which the keyring is
- * subscribed
- */
-struct keyring_list {
- struct rcu_head rcu; /* RCU deletion hook */
- unsigned short maxkeys; /* max keys this list can hold */
- unsigned short nkeys; /* number of keys currently held */
- unsigned short delkey; /* key to be unlinked by RCU */
- struct key *keys[0];
-};
-
-
-#endif /* _KEYS_KEYRING_TYPE_H */
diff --git a/ANDROID_3.4.5/include/keys/rxrpc-type.h b/ANDROID_3.4.5/include/keys/rxrpc-type.h
deleted file mode 100644
index fc487543..00000000
--- a/ANDROID_3.4.5/include/keys/rxrpc-type.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/* RxRPC key type
- *
- * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
- * Written by David Howells (dhowells@redhat.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 _KEYS_RXRPC_TYPE_H
-#define _KEYS_RXRPC_TYPE_H
-
-#include <linux/key.h>
-
-/*
- * key type for AF_RXRPC keys
- */
-extern struct key_type key_type_rxrpc;
-
-extern struct key *rxrpc_get_null_key(const char *);
-
-/*
- * RxRPC key for Kerberos IV (type-2 security)
- */
-struct rxkad_key {
- u32 vice_id;
- u32 start; /* time at which ticket starts */
- u32 expiry; /* time at which ticket expires */
- u32 kvno; /* key version number */
- u8 primary_flag; /* T if key for primary cell for this user */
- u16 ticket_len; /* length of ticket[] */
- u8 session_key[8]; /* DES session key */
- u8 ticket[0]; /* the encrypted ticket */
-};
-
-/*
- * Kerberos 5 principal
- * name/name/name@realm
- */
-struct krb5_principal {
- u8 n_name_parts; /* N of parts of the name part of the principal */
- char **name_parts; /* parts of the name part of the principal */
- char *realm; /* parts of the realm part of the principal */
-};
-
-/*
- * Kerberos 5 tagged data
- */
-struct krb5_tagged_data {
- /* for tag value, see /usr/include/krb5/krb5.h
- * - KRB5_AUTHDATA_* for auth data
- * -
- */
- s32 tag;
- u32 data_len;
- u8 *data;
-};
-
-/*
- * RxRPC key for Kerberos V (type-5 security)
- */
-struct rxk5_key {
- u64 authtime; /* time at which auth token generated */
- u64 starttime; /* time at which auth token starts */
- u64 endtime; /* time at which auth token expired */
- u64 renew_till; /* time to which auth token can be renewed */
- s32 is_skey; /* T if ticket is encrypted in another ticket's
- * skey */
- s32 flags; /* mask of TKT_FLG_* bits (krb5/krb5.h) */
- struct krb5_principal client; /* client principal name */
- struct krb5_principal server; /* server principal name */
- u16 ticket_len; /* length of ticket */
- u16 ticket2_len; /* length of second ticket */
- u8 n_authdata; /* number of authorisation data elements */
- u8 n_addresses; /* number of addresses */
- struct krb5_tagged_data session; /* session data; tag is enctype */
- struct krb5_tagged_data *addresses; /* addresses */
- u8 *ticket; /* krb5 ticket */
- u8 *ticket2; /* second krb5 ticket, if related to ticket (via
- * DUPLICATE-SKEY or ENC-TKT-IN-SKEY) */
- struct krb5_tagged_data *authdata; /* authorisation data */
-};
-
-/*
- * list of tokens attached to an rxrpc key
- */
-struct rxrpc_key_token {
- u16 security_index; /* RxRPC header security index */
- struct rxrpc_key_token *next; /* the next token in the list */
- union {
- struct rxkad_key *kad;
- struct rxk5_key *k5;
- };
-};
-
-/*
- * structure of raw payloads passed to add_key() or instantiate key
- */
-struct rxrpc_key_data_v1 {
- u16 security_index;
- u16 ticket_length;
- u32 expiry; /* time_t */
- u32 kvno;
- u8 session_key[8];
- u8 ticket[0];
-};
-
-/*
- * AF_RXRPC key payload derived from XDR format
- * - based on openafs-1.4.10/src/auth/afs_token.xg
- */
-#define AFSTOKEN_LENGTH_MAX 16384 /* max payload size */
-#define AFSTOKEN_STRING_MAX 256 /* max small string length */
-#define AFSTOKEN_DATA_MAX 64 /* max small data length */
-#define AFSTOKEN_CELL_MAX 64 /* max cellname length */
-#define AFSTOKEN_MAX 8 /* max tokens per payload */
-#define AFSTOKEN_BDATALN_MAX 16384 /* max big data length */
-#define AFSTOKEN_RK_TIX_MAX 12000 /* max RxKAD ticket size */
-#define AFSTOKEN_GK_KEY_MAX 64 /* max GSSAPI key size */
-#define AFSTOKEN_GK_TOKEN_MAX 16384 /* max GSSAPI token size */
-#define AFSTOKEN_K5_COMPONENTS_MAX 16 /* max K5 components */
-#define AFSTOKEN_K5_NAME_MAX 128 /* max K5 name length */
-#define AFSTOKEN_K5_REALM_MAX 64 /* max K5 realm name length */
-#define AFSTOKEN_K5_TIX_MAX 16384 /* max K5 ticket size */
-#define AFSTOKEN_K5_ADDRESSES_MAX 16 /* max K5 addresses */
-#define AFSTOKEN_K5_AUTHDATA_MAX 16 /* max K5 pieces of auth data */
-
-#endif /* _KEYS_RXRPC_TYPE_H */
diff --git a/ANDROID_3.4.5/include/keys/trusted-type.h b/ANDROID_3.4.5/include/keys/trusted-type.h
deleted file mode 100644
index 56f82e5c..00000000
--- a/ANDROID_3.4.5/include/keys/trusted-type.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2010 IBM Corporation
- * Author: David Safford <safford@us.ibm.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, version 2 of the License.
- */
-
-#ifndef _KEYS_TRUSTED_TYPE_H
-#define _KEYS_TRUSTED_TYPE_H
-
-#include <linux/key.h>
-#include <linux/rcupdate.h>
-
-#define MIN_KEY_SIZE 32
-#define MAX_KEY_SIZE 128
-#define MAX_BLOB_SIZE 320
-
-struct trusted_key_payload {
- struct rcu_head rcu;
- unsigned int key_len;
- unsigned int blob_len;
- unsigned char migratable;
- unsigned char key[MAX_KEY_SIZE + 1];
- unsigned char blob[MAX_BLOB_SIZE];
-};
-
-extern struct key_type key_type_trusted;
-
-#endif /* _KEYS_TRUSTED_TYPE_H */
diff --git a/ANDROID_3.4.5/include/keys/user-type.h b/ANDROID_3.4.5/include/keys/user-type.h
deleted file mode 100644
index bc9ec1d7..00000000
--- a/ANDROID_3.4.5/include/keys/user-type.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* user-type.h: User-defined key type
- *
- * Copyright (C) 2005 Red Hat, Inc. All Rights Reserved.
- * Written by David Howells (dhowells@redhat.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 _KEYS_USER_TYPE_H
-#define _KEYS_USER_TYPE_H
-
-#include <linux/key.h>
-#include <linux/rcupdate.h>
-
-/*****************************************************************************/
-/*
- * the payload for a key of type "user" or "logon"
- * - once filled in and attached to a key:
- * - the payload struct is invariant may not be changed, only replaced
- * - the payload must be read with RCU procedures or with the key semaphore
- * held
- * - the payload may only be replaced with the key semaphore write-locked
- * - the key's data length is the size of the actual data, not including the
- * payload wrapper
- */
-struct user_key_payload {
- struct rcu_head rcu; /* RCU destructor */
- unsigned short datalen; /* length of this data */
- char data[0]; /* actual data */
-};
-
-extern struct key_type key_type_user;
-extern struct key_type key_type_logon;
-
-extern int user_instantiate(struct key *key, const void *data, size_t datalen);
-extern int user_update(struct key *key, const void *data, size_t datalen);
-extern int user_match(const struct key *key, const void *criterion);
-extern void user_revoke(struct key *key);
-extern void user_destroy(struct key *key);
-extern void user_describe(const struct key *user, struct seq_file *m);
-extern long user_read(const struct key *key,
- char __user *buffer, size_t buflen);
-
-
-#endif /* _KEYS_USER_TYPE_H */
diff --git a/ANDROID_3.4.5/include/linux/8250_pci.h b/ANDROID_3.4.5/include/linux/8250_pci.h
deleted file mode 100644
index b24ff086..00000000
--- a/ANDROID_3.4.5/include/linux/8250_pci.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Definitions for PCI support.
- */
-#define FL_BASE_MASK 0x0007
-#define FL_BASE0 0x0000
-#define FL_BASE1 0x0001
-#define FL_BASE2 0x0002
-#define FL_BASE3 0x0003
-#define FL_BASE4 0x0004
-#define FL_GET_BASE(x) (x & FL_BASE_MASK)
-
-/* Use successive BARs (PCI base address registers),
- else use offset into some specified BAR */
-#define FL_BASE_BARS 0x0008
-
-/* do not assign an irq */
-#define FL_NOIRQ 0x0080
-
-/* Use the Base address register size to cap number of ports */
-#define FL_REGION_SZ_CAP 0x0100
-
-struct pciserial_board {
- unsigned int flags;
- unsigned int num_ports;
- unsigned int base_baud;
- unsigned int uart_offset;
- unsigned int reg_shift;
- unsigned int first_offset;
-};
-
-struct serial_private;
-
-struct serial_private *
-pciserial_init_ports(struct pci_dev *dev, const struct pciserial_board *board);
-void pciserial_remove_ports(struct serial_private *priv);
-void pciserial_suspend_ports(struct serial_private *priv);
-void pciserial_resume_ports(struct serial_private *priv);
diff --git a/ANDROID_3.4.5/include/linux/Kbuild b/ANDROID_3.4.5/include/linux/Kbuild
deleted file mode 100644
index fb53cda1..00000000
--- a/ANDROID_3.4.5/include/linux/Kbuild
+++ /dev/null
@@ -1,412 +0,0 @@
-header-y += byteorder/
-header-y += can/
-header-y += caif/
-header-y += dvb/
-header-y += hdlc/
-header-y += hsi/
-header-y += isdn/
-header-y += mmc/
-header-y += nfsd/
-header-y += raid/
-header-y += spi/
-header-y += sunrpc/
-header-y += tc_act/
-header-y += tc_ematch/
-header-y += netfilter/
-header-y += netfilter_arp/
-header-y += netfilter_bridge/
-header-y += netfilter_ipv4/
-header-y += netfilter_ipv6/
-header-y += usb/
-header-y += wimax/
-
-objhdr-y += version.h
-
-ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/asm/a.out.h \
- $(srctree)/include/asm-$(SRCARCH)/a.out.h \
- $(INSTALL_HDR_PATH)/include/asm-*/a.out.h),)
-header-y += a.out.h
-endif
-ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/asm/kvm.h \
- $(srctree)/include/asm-$(SRCARCH)/kvm.h \
- $(INSTALL_HDR_PATH)/include/asm-*/kvm.h),)
-header-y += kvm.h
-endif
-ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/asm/kvm_para.h \
- $(srctree)/include/asm-$(SRCARCH)/kvm_para.h \
- $(INSTALL_HDR_PATH)/include/asm-*/kvm_para.h),)
-header-y += kvm_para.h
-endif
-
-header-y += acct.h
-header-y += adb.h
-header-y += adfs_fs.h
-header-y += affs_hardblocks.h
-header-y += agpgart.h
-header-y += aio_abi.h
-header-y += apm_bios.h
-header-y += arcfb.h
-header-y += atalk.h
-header-y += atm.h
-header-y += atm_eni.h
-header-y += atm_he.h
-header-y += atm_idt77105.h
-header-y += atm_nicstar.h
-header-y += atm_tcp.h
-header-y += atm_zatm.h
-header-y += atmapi.h
-header-y += atmarp.h
-header-y += atmbr2684.h
-header-y += atmclip.h
-header-y += atmdev.h
-header-y += atmioc.h
-header-y += atmlec.h
-header-y += atmmpc.h
-header-y += atmppp.h
-header-y += atmsap.h
-header-y += atmsvc.h
-header-y += audit.h
-header-y += auto_fs.h
-header-y += auto_fs4.h
-header-y += auxvec.h
-header-y += ax25.h
-header-y += b1lli.h
-header-y += baycom.h
-header-y += bfs_fs.h
-header-y += binfmts.h
-header-y += blk_types.h
-header-y += blkpg.h
-header-y += blktrace_api.h
-header-y += bpqether.h
-header-y += bsg.h
-header-y += can.h
-header-y += capability.h
-header-y += capi.h
-header-y += cciss_defs.h
-header-y += cciss_ioctl.h
-header-y += cdk.h
-header-y += cdrom.h
-header-y += cgroupstats.h
-header-y += chio.h
-header-y += cm4000_cs.h
-header-y += cn_proc.h
-header-y += coda.h
-header-y += coda_psdev.h
-header-y += coff.h
-header-y += comstats.h
-header-y += connector.h
-header-y += const.h
-header-y += cramfs_fs.h
-header-y += cuda.h
-header-y += cyclades.h
-header-y += cycx_cfm.h
-header-y += dcbnl.h
-header-y += dccp.h
-header-y += dlm.h
-header-y += dlm_device.h
-header-y += dlm_netlink.h
-header-y += dlm_plock.h
-header-y += dlmconstants.h
-header-y += dm-ioctl.h
-header-y += dm-log-userspace.h
-header-y += dn.h
-header-y += dqblk_xfs.h
-header-y += edd.h
-header-y += efs_fs_sb.h
-header-y += elf-em.h
-header-y += elf-fdpic.h
-header-y += elf.h
-header-y += elfcore.h
-header-y += errno.h
-header-y += errqueue.h
-header-y += ethtool.h
-header-y += eventpoll.h
-header-y += fadvise.h
-header-y += falloc.h
-header-y += fanotify.h
-header-y += fb.h
-header-y += fcntl.h
-header-y += fd.h
-header-y += fdreg.h
-header-y += fib_rules.h
-header-y += fiemap.h
-header-y += filter.h
-header-y += firewire-cdev.h
-header-y += firewire-constants.h
-header-y += flat.h
-header-y += fs.h
-header-y += fsl_hypervisor.h
-header-y += fuse.h
-header-y += futex.h
-header-y += gameport.h
-header-y += gen_stats.h
-header-y += generic_serial.h
-header-y += genetlink.h
-header-y += gfs2_ondisk.h
-header-y += gigaset_dev.h
-header-y += hdlc.h
-header-y += hdlcdrv.h
-header-y += hdreg.h
-header-y += hid.h
-header-y += hiddev.h
-header-y += hidraw.h
-header-y += hpet.h
-header-y += hysdn_if.h
-header-y += i2c-dev.h
-header-y += i2c.h
-header-y += i2o-dev.h
-header-y += i8k.h
-header-y += icmp.h
-header-y += icmpv6.h
-header-y += if.h
-header-y += if_addr.h
-header-y += if_addrlabel.h
-header-y += if_alg.h
-header-y += if_arcnet.h
-header-y += if_arp.h
-header-y += if_bonding.h
-header-y += if_bridge.h
-header-y += if_cablemodem.h
-header-y += if_ec.h
-header-y += if_eql.h
-header-y += if_ether.h
-header-y += if_fc.h
-header-y += if_fddi.h
-header-y += if_frad.h
-header-y += if_hippi.h
-header-y += if_infiniband.h
-header-y += if_link.h
-header-y += if_ltalk.h
-header-y += if_packet.h
-header-y += if_phonet.h
-header-y += if_plip.h
-header-y += if_ppp.h
-header-y += if_pppol2tp.h
-header-y += if_pppox.h
-header-y += if_pppolac.h
-header-y += if_pppopns.h
-header-y += if_slip.h
-header-y += if_strip.h
-header-y += if_team.h
-header-y += if_tr.h
-header-y += if_tun.h
-header-y += if_tunnel.h
-header-y += if_vlan.h
-header-y += if_x25.h
-header-y += igmp.h
-header-y += in.h
-header-y += in6.h
-header-y += in_route.h
-header-y += sock_diag.h
-header-y += inet_diag.h
-header-y += unix_diag.h
-header-y += inotify.h
-header-y += input.h
-header-y += ioctl.h
-header-y += ip.h
-header-y += ip6_tunnel.h
-header-y += ip_vs.h
-header-y += ipc.h
-header-y += ipmi.h
-header-y += ipmi_msgdefs.h
-header-y += ipsec.h
-header-y += ipv6.h
-header-y += ipv6_route.h
-header-y += ipx.h
-header-y += irda.h
-header-y += irqnr.h
-header-y += isdn.h
-header-y += isdn_divertif.h
-header-y += isdn_ppp.h
-header-y += isdnif.h
-header-y += iso_fs.h
-header-y += ivtv.h
-header-y += ivtvfb.h
-header-y += ixjuser.h
-header-y += jffs2.h
-header-y += joystick.h
-header-y += kd.h
-header-y += kdev_t.h
-header-y += kernel.h
-header-y += kernelcapi.h
-header-y += kernel-page-flags.h
-header-y += keyboard.h
-header-y += keyctl.h
-header-y += l2tp.h
-header-y += limits.h
-header-y += llc.h
-header-y += loop.h
-header-y += lp.h
-header-y += magic.h
-header-y += major.h
-header-y += map_to_7segment.h
-header-y += matroxfb.h
-header-y += mdio.h
-header-y += media.h
-header-y += mempolicy.h
-header-y += meye.h
-header-y += mii.h
-header-y += minix_fs.h
-header-y += mman.h
-header-y += mmtimer.h
-header-y += mqueue.h
-header-y += mroute.h
-header-y += mroute6.h
-header-y += msdos_fs.h
-header-y += msg.h
-header-y += mtio.h
-header-y += n_r3964.h
-header-y += nbd.h
-header-y += ncp.h
-header-y += ncp_fs.h
-header-y += ncp_mount.h
-header-y += ncp_no.h
-header-y += neighbour.h
-header-y += net.h
-header-y += net_dropmon.h
-header-y += net_tstamp.h
-header-y += netdevice.h
-header-y += netfilter.h
-header-y += netfilter_arp.h
-header-y += netfilter_bridge.h
-header-y += netfilter_decnet.h
-header-y += netfilter_ipv4.h
-header-y += netfilter_ipv6.h
-header-y += netlink.h
-header-y += netrom.h
-header-y += nfs.h
-header-y += nfs2.h
-header-y += nfs3.h
-header-y += nfs4.h
-header-y += nfs4_mount.h
-header-y += nfs_fs.h
-header-y += nfs_idmap.h
-header-y += nfs_mount.h
-header-y += nfsacl.h
-header-y += nl80211.h
-header-y += nubus.h
-header-y += nvram.h
-header-y += omap3isp.h
-header-y += omapfb.h
-header-y += oom.h
-header-y += param.h
-header-y += parport.h
-header-y += patchkey.h
-header-y += pci.h
-header-y += pci_regs.h
-header-y += perf_event.h
-header-y += personality.h
-header-y += pfkeyv2.h
-header-y += pg.h
-header-y += phantom.h
-header-y += phonet.h
-header-y += pkt_cls.h
-header-y += pkt_sched.h
-header-y += pktcdvd.h
-header-y += pmu.h
-header-y += poll.h
-header-y += posix_types.h
-header-y += ppdev.h
-header-y += ppp-comp.h
-header-y += ppp-ioctl.h
-header-y += ppp_defs.h
-header-y += pps.h
-header-y += prctl.h
-header-y += ptp_clock.h
-header-y += ptrace.h
-header-y += qnx4_fs.h
-header-y += qnxtypes.h
-header-y += quota.h
-header-y += radeonfb.h
-header-y += random.h
-header-y += raw.h
-header-y += rds.h
-header-y += reboot.h
-header-y += reiserfs_fs.h
-header-y += reiserfs_xattr.h
-header-y += resource.h
-header-y += rfkill.h
-header-y += romfs_fs.h
-header-y += rose.h
-header-y += route.h
-header-y += rtc.h
-header-y += rtnetlink.h
-header-y += scc.h
-header-y += sched.h
-header-y += screen_info.h
-header-y += sdla.h
-header-y += securebits.h
-header-y += selinux_netlink.h
-header-y += sem.h
-header-y += serial.h
-header-y += serial_core.h
-header-y += serial_reg.h
-header-y += serio.h
-header-y += shm.h
-header-y += signal.h
-header-y += signalfd.h
-header-y += snmp.h
-header-y += socket.h
-header-y += sockios.h
-header-y += som.h
-header-y += sonet.h
-header-y += sonypi.h
-header-y += sound.h
-header-y += soundcard.h
-header-y += stat.h
-header-y += stddef.h
-header-y += string.h
-header-y += suspend_ioctls.h
-header-y += swab.h
-header-y += synclink.h
-header-y += sysctl.h
-header-y += sysinfo.h
-header-y += taskstats.h
-header-y += tcp.h
-header-y += telephony.h
-header-y += termios.h
-header-y += time.h
-header-y += times.h
-header-y += timex.h
-header-y += tiocl.h
-header-y += tipc.h
-header-y += tipc_config.h
-header-y += toshiba.h
-header-y += tty.h
-header-y += types.h
-header-y += udf_fs_i.h
-header-y += udp.h
-header-y += uhid.h
-header-y += uinput.h
-header-y += uio.h
-header-y += ultrasound.h
-header-y += un.h
-header-y += unistd.h
-header-y += usbdevice_fs.h
-header-y += utime.h
-header-y += utsname.h
-header-y += uvcvideo.h
-header-y += v4l2-mediabus.h
-header-y += v4l2-subdev.h
-header-y += veth.h
-header-y += vhost.h
-header-y += videodev2.h
-header-y += virtio_9p.h
-header-y += virtio_balloon.h
-header-y += virtio_blk.h
-header-y += virtio_config.h
-header-y += virtio_console.h
-header-y += virtio_ids.h
-header-y += virtio_net.h
-header-y += virtio_pci.h
-header-y += virtio_ring.h
-header-y += virtio_rng.h
-header-y += vt.h
-header-y += wait.h
-header-y += wanrouter.h
-header-y += watchdog.h
-header-y += wimax.h
-header-y += wireless.h
-header-y += x25.h
-header-y += xattr.h
-header-y += xfrm.h
diff --git a/ANDROID_3.4.5/include/linux/a.out.h b/ANDROID_3.4.5/include/linux/a.out.h
deleted file mode 100644
index e86dfca4..00000000
--- a/ANDROID_3.4.5/include/linux/a.out.h
+++ /dev/null
@@ -1,278 +0,0 @@
-#ifndef __A_OUT_GNU_H__
-#define __A_OUT_GNU_H__
-
-#define __GNU_EXEC_MACROS__
-
-#ifndef __STRUCT_EXEC_OVERRIDE__
-
-#include <asm/a.out.h>
-
-#endif /* __STRUCT_EXEC_OVERRIDE__ */
-
-#ifndef __ASSEMBLY__
-
-/* these go in the N_MACHTYPE field */
-enum machine_type {
-#if defined (M_OLDSUN2)
- M__OLDSUN2 = M_OLDSUN2,
-#else
- M_OLDSUN2 = 0,
-#endif
-#if defined (M_68010)
- M__68010 = M_68010,
-#else
- M_68010 = 1,
-#endif
-#if defined (M_68020)
- M__68020 = M_68020,
-#else
- M_68020 = 2,
-#endif
-#if defined (M_SPARC)
- M__SPARC = M_SPARC,
-#else
- M_SPARC = 3,
-#endif
- /* skip a bunch so we don't run into any of sun's numbers */
- M_386 = 100,
- M_MIPS1 = 151, /* MIPS R3000/R3000 binary */
- M_MIPS2 = 152 /* MIPS R6000/R4000 binary */
-};
-
-#if !defined (N_MAGIC)
-#define N_MAGIC(exec) ((exec).a_info & 0xffff)
-#endif
-#define N_MACHTYPE(exec) ((enum machine_type)(((exec).a_info >> 16) & 0xff))
-#define N_FLAGS(exec) (((exec).a_info >> 24) & 0xff)
-#define N_SET_INFO(exec, magic, type, flags) \
- ((exec).a_info = ((magic) & 0xffff) \
- | (((int)(type) & 0xff) << 16) \
- | (((flags) & 0xff) << 24))
-#define N_SET_MAGIC(exec, magic) \
- ((exec).a_info = (((exec).a_info & 0xffff0000) | ((magic) & 0xffff)))
-
-#define N_SET_MACHTYPE(exec, machtype) \
- ((exec).a_info = \
- ((exec).a_info&0xff00ffff) | ((((int)(machtype))&0xff) << 16))
-
-#define N_SET_FLAGS(exec, flags) \
- ((exec).a_info = \
- ((exec).a_info&0x00ffffff) | (((flags) & 0xff) << 24))
-
-/* Code indicating object file or impure executable. */
-#define OMAGIC 0407
-/* Code indicating pure executable. */
-#define NMAGIC 0410
-/* Code indicating demand-paged executable. */
-#define ZMAGIC 0413
-/* This indicates a demand-paged executable with the header in the text.
- The first page is unmapped to help trap NULL pointer references */
-#define QMAGIC 0314
-
-/* Code indicating core file. */
-#define CMAGIC 0421
-
-#if !defined (N_BADMAG)
-#define N_BADMAG(x) (N_MAGIC(x) != OMAGIC \
- && N_MAGIC(x) != NMAGIC \
- && N_MAGIC(x) != ZMAGIC \
- && N_MAGIC(x) != QMAGIC)
-#endif
-
-#define _N_HDROFF(x) (1024 - sizeof (struct exec))
-
-#if !defined (N_TXTOFF)
-#define N_TXTOFF(x) \
- (N_MAGIC(x) == ZMAGIC ? _N_HDROFF((x)) + sizeof (struct exec) : \
- (N_MAGIC(x) == QMAGIC ? 0 : sizeof (struct exec)))
-#endif
-
-#if !defined (N_DATOFF)
-#define N_DATOFF(x) (N_TXTOFF(x) + (x).a_text)
-#endif
-
-#if !defined (N_TRELOFF)
-#define N_TRELOFF(x) (N_DATOFF(x) + (x).a_data)
-#endif
-
-#if !defined (N_DRELOFF)
-#define N_DRELOFF(x) (N_TRELOFF(x) + N_TRSIZE(x))
-#endif
-
-#if !defined (N_SYMOFF)
-#define N_SYMOFF(x) (N_DRELOFF(x) + N_DRSIZE(x))
-#endif
-
-#if !defined (N_STROFF)
-#define N_STROFF(x) (N_SYMOFF(x) + N_SYMSIZE(x))
-#endif
-
-/* Address of text segment in memory after it is loaded. */
-#if !defined (N_TXTADDR)
-#define N_TXTADDR(x) (N_MAGIC(x) == QMAGIC ? PAGE_SIZE : 0)
-#endif
-
-/* Address of data segment in memory after it is loaded.
- Note that it is up to you to define SEGMENT_SIZE
- on machines not listed here. */
-#if defined(vax) || defined(hp300) || defined(pyr)
-#define SEGMENT_SIZE page_size
-#endif
-#ifdef sony
-#define SEGMENT_SIZE 0x2000
-#endif /* Sony. */
-#ifdef is68k
-#define SEGMENT_SIZE 0x20000
-#endif
-#if defined(m68k) && defined(PORTAR)
-#define PAGE_SIZE 0x400
-#define SEGMENT_SIZE PAGE_SIZE
-#endif
-
-#ifdef linux
-#ifdef __KERNEL__
-#include <asm/page.h>
-#else
-#include <unistd.h>
-#endif
-#if defined(__i386__) || defined(__mc68000__)
-#define SEGMENT_SIZE 1024
-#else
-#ifndef SEGMENT_SIZE
-#ifdef __KERNEL__
-#define SEGMENT_SIZE PAGE_SIZE
-#else
-#define SEGMENT_SIZE getpagesize()
-#endif
-#endif
-#endif
-#endif
-
-#define _N_SEGMENT_ROUND(x) ALIGN(x, SEGMENT_SIZE)
-
-#define _N_TXTENDADDR(x) (N_TXTADDR(x)+(x).a_text)
-
-#ifndef N_DATADDR
-#define N_DATADDR(x) \
- (N_MAGIC(x)==OMAGIC? (_N_TXTENDADDR(x)) \
- : (_N_SEGMENT_ROUND (_N_TXTENDADDR(x))))
-#endif
-
-/* Address of bss segment in memory after it is loaded. */
-#if !defined (N_BSSADDR)
-#define N_BSSADDR(x) (N_DATADDR(x) + (x).a_data)
-#endif
-
-#if !defined (N_NLIST_DECLARED)
-struct nlist {
- union {
- char *n_name;
- struct nlist *n_next;
- long n_strx;
- } n_un;
- unsigned char n_type;
- char n_other;
- short n_desc;
- unsigned long n_value;
-};
-#endif /* no N_NLIST_DECLARED. */
-
-#if !defined (N_UNDF)
-#define N_UNDF 0
-#endif
-#if !defined (N_ABS)
-#define N_ABS 2
-#endif
-#if !defined (N_TEXT)
-#define N_TEXT 4
-#endif
-#if !defined (N_DATA)
-#define N_DATA 6
-#endif
-#if !defined (N_BSS)
-#define N_BSS 8
-#endif
-#if !defined (N_FN)
-#define N_FN 15
-#endif
-
-#if !defined (N_EXT)
-#define N_EXT 1
-#endif
-#if !defined (N_TYPE)
-#define N_TYPE 036
-#endif
-#if !defined (N_STAB)
-#define N_STAB 0340
-#endif
-
-/* The following type indicates the definition of a symbol as being
- an indirect reference to another symbol. The other symbol
- appears as an undefined reference, immediately following this symbol.
-
- Indirection is asymmetrical. The other symbol's value will be used
- to satisfy requests for the indirect symbol, but not vice versa.
- If the other symbol does not have a definition, libraries will
- be searched to find a definition. */
-#define N_INDR 0xa
-
-/* The following symbols refer to set elements.
- All the N_SET[ATDB] symbols with the same name form one set.
- Space is allocated for the set in the text section, and each set
- element's value is stored into one word of the space.
- The first word of the space is the length of the set (number of elements).
-
- The address of the set is made into an N_SETV symbol
- whose name is the same as the name of the set.
- This symbol acts like a N_DATA global symbol
- in that it can satisfy undefined external references. */
-
-/* These appear as input to LD, in a .o file. */
-#define N_SETA 0x14 /* Absolute set element symbol */
-#define N_SETT 0x16 /* Text set element symbol */
-#define N_SETD 0x18 /* Data set element symbol */
-#define N_SETB 0x1A /* Bss set element symbol */
-
-/* This is output from LD. */
-#define N_SETV 0x1C /* Pointer to set vector in data area. */
-
-#if !defined (N_RELOCATION_INFO_DECLARED)
-/* This structure describes a single relocation to be performed.
- The text-relocation section of the file is a vector of these structures,
- all of which apply to the text section.
- Likewise, the data-relocation section applies to the data section. */
-
-struct relocation_info
-{
- /* Address (within segment) to be relocated. */
- int r_address;
- /* The meaning of r_symbolnum depends on r_extern. */
- unsigned int r_symbolnum:24;
- /* Nonzero means value is a pc-relative offset
- and it should be relocated for changes in its own address
- as well as for changes in the symbol or section specified. */
- unsigned int r_pcrel:1;
- /* Length (as exponent of 2) of the field to be relocated.
- Thus, a value of 2 indicates 1<<2 bytes. */
- unsigned int r_length:2;
- /* 1 => relocate with value of symbol.
- r_symbolnum is the index of the symbol
- in file's the symbol table.
- 0 => relocate with the address of a segment.
- r_symbolnum is N_TEXT, N_DATA, N_BSS or N_ABS
- (the N_EXT bit may be set also, but signifies nothing). */
- unsigned int r_extern:1;
- /* Four bits that aren't used, but when writing an object file
- it is desirable to clear them. */
-#ifdef NS32K
- unsigned r_bsr:1;
- unsigned r_disp:1;
- unsigned r_pad:2;
-#else
- unsigned int r_pad:4;
-#endif
-};
-#endif /* no N_RELOCATION_INFO_DECLARED. */
-
-#endif /*__ASSEMBLY__ */
-#endif /* __A_OUT_GNU_H__ */
diff --git a/ANDROID_3.4.5/include/linux/ac97_codec.h b/ANDROID_3.4.5/include/linux/ac97_codec.h
deleted file mode 100644
index 0260c3e7..00000000
--- a/ANDROID_3.4.5/include/linux/ac97_codec.h
+++ /dev/null
@@ -1,362 +0,0 @@
-#ifndef _AC97_CODEC_H_
-#define _AC97_CODEC_H_
-
-#include <linux/types.h>
-#include <linux/soundcard.h>
-
-/* AC97 1.0 */
-#define AC97_RESET 0x0000 //
-#define AC97_MASTER_VOL_STEREO 0x0002 // Line Out
-#define AC97_HEADPHONE_VOL 0x0004 //
-#define AC97_MASTER_VOL_MONO 0x0006 // TAD Output
-#define AC97_MASTER_TONE 0x0008 //
-#define AC97_PCBEEP_VOL 0x000a // none
-#define AC97_PHONE_VOL 0x000c // TAD Input (mono)
-#define AC97_MIC_VOL 0x000e // MIC Input (mono)
-#define AC97_LINEIN_VOL 0x0010 // Line Input (stereo)
-#define AC97_CD_VOL 0x0012 // CD Input (stereo)
-#define AC97_VIDEO_VOL 0x0014 // none
-#define AC97_AUX_VOL 0x0016 // Aux Input (stereo)
-#define AC97_PCMOUT_VOL 0x0018 // Wave Output (stereo)
-#define AC97_RECORD_SELECT 0x001a //
-#define AC97_RECORD_GAIN 0x001c
-#define AC97_RECORD_GAIN_MIC 0x001e
-#define AC97_GENERAL_PURPOSE 0x0020
-#define AC97_3D_CONTROL 0x0022
-#define AC97_MODEM_RATE 0x0024
-#define AC97_POWER_CONTROL 0x0026
-
-/* AC'97 2.0 */
-#define AC97_EXTENDED_ID 0x0028 /* Extended Audio ID */
-#define AC97_EXTENDED_STATUS 0x002A /* Extended Audio Status */
-#define AC97_PCM_FRONT_DAC_RATE 0x002C /* PCM Front DAC Rate */
-#define AC97_PCM_SURR_DAC_RATE 0x002E /* PCM Surround DAC Rate */
-#define AC97_PCM_LFE_DAC_RATE 0x0030 /* PCM LFE DAC Rate */
-#define AC97_PCM_LR_ADC_RATE 0x0032 /* PCM LR ADC Rate */
-#define AC97_PCM_MIC_ADC_RATE 0x0034 /* PCM MIC ADC Rate */
-#define AC97_CENTER_LFE_MASTER 0x0036 /* Center + LFE Master Volume */
-#define AC97_SURROUND_MASTER 0x0038 /* Surround (Rear) Master Volume */
-#define AC97_RESERVED_3A 0x003A /* Reserved in AC '97 < 2.2 */
-
-/* AC'97 2.2 */
-#define AC97_SPDIF_CONTROL 0x003A /* S/PDIF Control */
-
-/* range 0x3c-0x58 - MODEM */
-#define AC97_EXTENDED_MODEM_ID 0x003C
-#define AC97_EXTEND_MODEM_STAT 0x003E
-#define AC97_LINE1_RATE 0x0040
-#define AC97_LINE2_RATE 0x0042
-#define AC97_HANDSET_RATE 0x0044
-#define AC97_LINE1_LEVEL 0x0046
-#define AC97_LINE2_LEVEL 0x0048
-#define AC97_HANDSET_LEVEL 0x004A
-#define AC97_GPIO_CONFIG 0x004C
-#define AC97_GPIO_POLARITY 0x004E
-#define AC97_GPIO_STICKY 0x0050
-#define AC97_GPIO_WAKE_UP 0x0052
-#define AC97_GPIO_STATUS 0x0054
-#define AC97_MISC_MODEM_STAT 0x0056
-#define AC97_RESERVED_58 0x0058
-
-/* registers 0x005a - 0x007a are vendor reserved */
-
-#define AC97_VENDOR_ID1 0x007c
-#define AC97_VENDOR_ID2 0x007e
-
-/* volume control bit defines */
-#define AC97_MUTE 0x8000
-#define AC97_MICBOOST 0x0040
-#define AC97_LEFTVOL 0x3f00
-#define AC97_RIGHTVOL 0x003f
-
-/* record mux defines */
-#define AC97_RECMUX_MIC 0x0000
-#define AC97_RECMUX_CD 0x0101
-#define AC97_RECMUX_VIDEO 0x0202
-#define AC97_RECMUX_AUX 0x0303
-#define AC97_RECMUX_LINE 0x0404
-#define AC97_RECMUX_STEREO_MIX 0x0505
-#define AC97_RECMUX_MONO_MIX 0x0606
-#define AC97_RECMUX_PHONE 0x0707
-
-/* general purpose register bit defines */
-#define AC97_GP_LPBK 0x0080 /* Loopback mode */
-#define AC97_GP_MS 0x0100 /* Mic Select 0=Mic1, 1=Mic2 */
-#define AC97_GP_MIX 0x0200 /* Mono output select 0=Mix, 1=Mic */
-#define AC97_GP_RLBK 0x0400 /* Remote Loopback - Modem line codec */
-#define AC97_GP_LLBK 0x0800 /* Local Loopback - Modem Line codec */
-#define AC97_GP_LD 0x1000 /* Loudness 1=on */
-#define AC97_GP_3D 0x2000 /* 3D Enhancement 1=on */
-#define AC97_GP_ST 0x4000 /* Stereo Enhancement 1=on */
-#define AC97_GP_POP 0x8000 /* Pcm Out Path, 0=pre 3D, 1=post 3D */
-
-/* extended audio status and control bit defines */
-#define AC97_EA_VRA 0x0001 /* Variable bit rate enable bit */
-#define AC97_EA_DRA 0x0002 /* Double-rate audio enable bit */
-#define AC97_EA_SPDIF 0x0004 /* S/PDIF Enable bit */
-#define AC97_EA_VRM 0x0008 /* Variable bit rate for MIC enable bit */
-#define AC97_EA_CDAC 0x0040 /* PCM Center DAC is ready (Read only) */
-#define AC97_EA_SDAC 0x0040 /* PCM Surround DACs are ready (Read only) */
-#define AC97_EA_LDAC 0x0080 /* PCM LFE DAC is ready (Read only) */
-#define AC97_EA_MDAC 0x0100 /* MIC ADC is ready (Read only) */
-#define AC97_EA_SPCV 0x0400 /* S/PDIF configuration valid (Read only) */
-#define AC97_EA_PRI 0x0800 /* Turns the PCM Center DAC off */
-#define AC97_EA_PRJ 0x1000 /* Turns the PCM Surround DACs off */
-#define AC97_EA_PRK 0x2000 /* Turns the PCM LFE DAC off */
-#define AC97_EA_PRL 0x4000 /* Turns the MIC ADC off */
-#define AC97_EA_SLOT_MASK 0xffcf /* Mask for slot assignment bits */
-#define AC97_EA_SPSA_3_4 0x0000 /* Slot assigned to 3 & 4 */
-#define AC97_EA_SPSA_7_8 0x0010 /* Slot assigned to 7 & 8 */
-#define AC97_EA_SPSA_6_9 0x0020 /* Slot assigned to 6 & 9 */
-#define AC97_EA_SPSA_10_11 0x0030 /* Slot assigned to 10 & 11 */
-
-/* S/PDIF control bit defines */
-#define AC97_SC_PRO 0x0001 /* Professional status */
-#define AC97_SC_NAUDIO 0x0002 /* Non audio stream */
-#define AC97_SC_COPY 0x0004 /* Copyright status */
-#define AC97_SC_PRE 0x0008 /* Preemphasis status */
-#define AC97_SC_CC_MASK 0x07f0 /* Category Code mask */
-#define AC97_SC_L 0x0800 /* Generation Level status */
-#define AC97_SC_SPSR_MASK 0xcfff /* S/PDIF Sample Rate bits */
-#define AC97_SC_SPSR_44K 0x0000 /* Use 44.1kHz Sample rate */
-#define AC97_SC_SPSR_48K 0x2000 /* Use 48kHz Sample rate */
-#define AC97_SC_SPSR_32K 0x3000 /* Use 32kHz Sample rate */
-#define AC97_SC_DRS 0x4000 /* Double Rate S/PDIF */
-#define AC97_SC_V 0x8000 /* Validity status */
-
-/* powerdown control and status bit defines */
-
-/* status */
-#define AC97_PWR_MDM 0x0010 /* Modem section ready */
-#define AC97_PWR_REF 0x0008 /* Vref nominal */
-#define AC97_PWR_ANL 0x0004 /* Analog section ready */
-#define AC97_PWR_DAC 0x0002 /* DAC section ready */
-#define AC97_PWR_ADC 0x0001 /* ADC section ready */
-
-/* control */
-#define AC97_PWR_PR0 0x0100 /* ADC and Mux powerdown */
-#define AC97_PWR_PR1 0x0200 /* DAC powerdown */
-#define AC97_PWR_PR2 0x0400 /* Output mixer powerdown (Vref on) */
-#define AC97_PWR_PR3 0x0800 /* Output mixer powerdown (Vref off) */
-#define AC97_PWR_PR4 0x1000 /* AC-link powerdown */
-#define AC97_PWR_PR5 0x2000 /* Internal Clk disable */
-#define AC97_PWR_PR6 0x4000 /* HP amp powerdown */
-#define AC97_PWR_PR7 0x8000 /* Modem off - if supported */
-
-/* extended audio ID register bit defines */
-#define AC97_EXTID_VRA 0x0001
-#define AC97_EXTID_DRA 0x0002
-#define AC97_EXTID_SPDIF 0x0004
-#define AC97_EXTID_VRM 0x0008
-#define AC97_EXTID_DSA0 0x0010
-#define AC97_EXTID_DSA1 0x0020
-#define AC97_EXTID_CDAC 0x0040
-#define AC97_EXTID_SDAC 0x0080
-#define AC97_EXTID_LDAC 0x0100
-#define AC97_EXTID_AMAP 0x0200
-#define AC97_EXTID_REV0 0x0400
-#define AC97_EXTID_REV1 0x0800
-#define AC97_EXTID_ID0 0x4000
-#define AC97_EXTID_ID1 0x8000
-
-/* extended status register bit defines */
-#define AC97_EXTSTAT_VRA 0x0001
-#define AC97_EXTSTAT_DRA 0x0002
-#define AC97_EXTSTAT_SPDIF 0x0004
-#define AC97_EXTSTAT_VRM 0x0008
-#define AC97_EXTSTAT_SPSA0 0x0010
-#define AC97_EXTSTAT_SPSA1 0x0020
-#define AC97_EXTSTAT_CDAC 0x0040
-#define AC97_EXTSTAT_SDAC 0x0080
-#define AC97_EXTSTAT_LDAC 0x0100
-#define AC97_EXTSTAT_MADC 0x0200
-#define AC97_EXTSTAT_SPCV 0x0400
-#define AC97_EXTSTAT_PRI 0x0800
-#define AC97_EXTSTAT_PRJ 0x1000
-#define AC97_EXTSTAT_PRK 0x2000
-#define AC97_EXTSTAT_PRL 0x4000
-
-/* extended audio ID register bit defines */
-#define AC97_EXTID_VRA 0x0001
-#define AC97_EXTID_DRA 0x0002
-#define AC97_EXTID_SPDIF 0x0004
-#define AC97_EXTID_VRM 0x0008
-#define AC97_EXTID_DSA0 0x0010
-#define AC97_EXTID_DSA1 0x0020
-#define AC97_EXTID_CDAC 0x0040
-#define AC97_EXTID_SDAC 0x0080
-#define AC97_EXTID_LDAC 0x0100
-#define AC97_EXTID_AMAP 0x0200
-#define AC97_EXTID_REV0 0x0400
-#define AC97_EXTID_REV1 0x0800
-#define AC97_EXTID_ID0 0x4000
-#define AC97_EXTID_ID1 0x8000
-
-/* extended status register bit defines */
-#define AC97_EXTSTAT_VRA 0x0001
-#define AC97_EXTSTAT_DRA 0x0002
-#define AC97_EXTSTAT_SPDIF 0x0004
-#define AC97_EXTSTAT_VRM 0x0008
-#define AC97_EXTSTAT_SPSA0 0x0010
-#define AC97_EXTSTAT_SPSA1 0x0020
-#define AC97_EXTSTAT_CDAC 0x0040
-#define AC97_EXTSTAT_SDAC 0x0080
-#define AC97_EXTSTAT_LDAC 0x0100
-#define AC97_EXTSTAT_MADC 0x0200
-#define AC97_EXTSTAT_SPCV 0x0400
-#define AC97_EXTSTAT_PRI 0x0800
-#define AC97_EXTSTAT_PRJ 0x1000
-#define AC97_EXTSTAT_PRK 0x2000
-#define AC97_EXTSTAT_PRL 0x4000
-
-/* useful power states */
-#define AC97_PWR_D0 0x0000 /* everything on */
-#define AC97_PWR_D1 AC97_PWR_PR0|AC97_PWR_PR1|AC97_PWR_PR4
-#define AC97_PWR_D2 AC97_PWR_PR0|AC97_PWR_PR1|AC97_PWR_PR2|AC97_PWR_PR3|AC97_PWR_PR4
-#define AC97_PWR_D3 AC97_PWR_PR0|AC97_PWR_PR1|AC97_PWR_PR2|AC97_PWR_PR3|AC97_PWR_PR4
-#define AC97_PWR_ANLOFF AC97_PWR_PR2|AC97_PWR_PR3 /* analog section off */
-
-/* Total number of defined registers. */
-#define AC97_REG_CNT 64
-
-
-/* OSS interface to the ac97s.. */
-#define AC97_STEREO_MASK (SOUND_MASK_VOLUME|SOUND_MASK_PCM|\
- SOUND_MASK_LINE|SOUND_MASK_CD|\
- SOUND_MASK_ALTPCM|SOUND_MASK_IGAIN|\
- SOUND_MASK_LINE1|SOUND_MASK_VIDEO)
-
-#define AC97_SUPPORTED_MASK (AC97_STEREO_MASK | \
- SOUND_MASK_BASS|SOUND_MASK_TREBLE|\
- SOUND_MASK_SPEAKER|SOUND_MASK_MIC|\
- SOUND_MASK_PHONEIN|SOUND_MASK_PHONEOUT)
-
-#define AC97_RECORD_MASK (SOUND_MASK_MIC|\
- SOUND_MASK_CD|SOUND_MASK_IGAIN|SOUND_MASK_VIDEO|\
- SOUND_MASK_LINE1| SOUND_MASK_LINE|\
- SOUND_MASK_PHONEIN)
-
-/* original check is not good enough in case FOO is greater than
- * SOUND_MIXER_NRDEVICES because the supported_mixers has exactly
- * SOUND_MIXER_NRDEVICES elements.
- * before matching the given mixer against the bitmask in supported_mixers we
- * check if mixer number exceeds maximum allowed size which is as mentioned
- * above SOUND_MIXER_NRDEVICES */
-#define supported_mixer(CODEC,FOO) ((FOO >= 0) && \
- (FOO < SOUND_MIXER_NRDEVICES) && \
- (CODEC)->supported_mixers & (1<<FOO) )
-
-struct ac97_codec {
- /* Linked list of codecs */
- struct list_head list;
-
- /* AC97 controller connected with */
- void *private_data;
-
- char *name;
- int id;
- int dev_mixer;
- int type;
- u32 model;
-
- unsigned int modem:1;
-
- struct ac97_ops *codec_ops;
-
- /* controller specific lower leverl ac97 accessing routines.
- must be re-entrant safe */
- u16 (*codec_read) (struct ac97_codec *codec, u8 reg);
- void (*codec_write) (struct ac97_codec *codec, u8 reg, u16 val);
-
- /* Wait for codec-ready. Ok to sleep here. */
- void (*codec_wait) (struct ac97_codec *codec);
-
- /* callback used by helper drivers for interesting ac97 setups */
- void (*codec_unregister) (struct ac97_codec *codec);
-
- struct ac97_driver *driver;
- void *driver_private; /* Private data for the driver */
-
- spinlock_t lock;
-
- /* OSS mixer masks */
- int modcnt;
- int supported_mixers;
- int stereo_mixers;
- int record_sources;
-
- /* Property flags */
- int flags;
-
- int bit_resolution;
-
- /* OSS mixer interface */
- int (*read_mixer) (struct ac97_codec *codec, int oss_channel);
- void (*write_mixer)(struct ac97_codec *codec, int oss_channel,
- unsigned int left, unsigned int right);
- int (*recmask_io) (struct ac97_codec *codec, int rw, int mask);
- int (*mixer_ioctl)(struct ac97_codec *codec, unsigned int cmd, unsigned long arg);
-
- /* saved OSS mixer states */
- unsigned int mixer_state[SOUND_MIXER_NRDEVICES];
-
- /* Software Modem interface */
- int (*modem_ioctl)(struct ac97_codec *codec, unsigned int cmd, unsigned long arg);
-};
-
-/*
- * Operation structures for each known AC97 chip
- */
-
-struct ac97_ops
-{
- /* Initialise */
- int (*init)(struct ac97_codec *c);
- /* Amplifier control */
- int (*amplifier)(struct ac97_codec *codec, int on);
- /* Digital mode control */
- int (*digital)(struct ac97_codec *codec, int slots, int rate, int mode);
-#define AUDIO_DIGITAL 0x8000
-#define AUDIO_PRO 0x4000
-#define AUDIO_DRS 0x2000
-#define AUDIO_CCMASK 0x003F
-
-#define AC97_DELUDED_MODEM 1 /* Audio codec reports its a modem */
-#define AC97_NO_PCM_VOLUME 2 /* Volume control is missing */
-#define AC97_DEFAULT_POWER_OFF 4 /* Needs warm reset to power up */
-};
-
-extern int ac97_probe_codec(struct ac97_codec *);
-
-extern struct ac97_codec *ac97_alloc_codec(void);
-extern void ac97_release_codec(struct ac97_codec *codec);
-
-struct ac97_driver {
- struct list_head list;
- char *name;
- u32 codec_id;
- u32 codec_mask;
- int (*probe) (struct ac97_codec *codec, struct ac97_driver *driver);
- void (*remove) (struct ac97_codec *codec, struct ac97_driver *driver);
-};
-
-/* quirk types */
-enum {
- AC97_TUNE_DEFAULT = -1, /* use default from quirk list (not valid in list) */
- AC97_TUNE_NONE = 0, /* nothing extra to do */
- AC97_TUNE_HP_ONLY, /* headphone (true line-out) control as master only */
- AC97_TUNE_SWAP_HP, /* swap headphone and master controls */
- AC97_TUNE_SWAP_SURROUND, /* swap master and surround controls */
- AC97_TUNE_AD_SHARING, /* for AD1985, turn on OMS bit and use headphone */
- AC97_TUNE_ALC_JACK, /* for Realtek, enable JACK detection */
-};
-
-struct ac97_quirk {
- unsigned short vendor; /* PCI vendor id */
- unsigned short device; /* PCI device id */
- unsigned short mask; /* device id bit mask, 0 = accept all */
- const char *name; /* name shown as info */
- int type; /* quirk type above */
-};
-
-#endif /* _AC97_CODEC_H_ */
diff --git a/ANDROID_3.4.5/include/linux/acct.h b/ANDROID_3.4.5/include/linux/acct.h
deleted file mode 100644
index d537aa0e..00000000
--- a/ANDROID_3.4.5/include/linux/acct.h
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * BSD Process Accounting for Linux - Definitions
- *
- * Author: Marco van Wieringen (mvw@planets.elm.net)
- *
- * This header file contains the definitions needed to implement
- * BSD-style process accounting. The kernel accounting code and all
- * user-level programs that try to do something useful with the
- * process accounting log must include this file.
- *
- * Copyright (C) 1995 - 1997 Marco van Wieringen - ELM Consultancy B.V.
- *
- */
-
-#ifndef _LINUX_ACCT_H
-#define _LINUX_ACCT_H
-
-#include <linux/types.h>
-
-#include <asm/param.h>
-#include <asm/byteorder.h>
-
-/*
- * comp_t is a 16-bit "floating" point number with a 3-bit base 8
- * exponent and a 13-bit fraction.
- * comp2_t is 24-bit with 5-bit base 2 exponent and 20 bit fraction
- * (leading 1 not stored).
- * See linux/kernel/acct.c for the specific encoding systems used.
- */
-
-typedef __u16 comp_t;
-typedef __u32 comp2_t;
-
-/*
- * accounting file record
- *
- * This structure contains all of the information written out to the
- * process accounting file whenever a process exits.
- */
-
-#define ACCT_COMM 16
-
-struct acct
-{
- char ac_flag; /* Flags */
- char ac_version; /* Always set to ACCT_VERSION */
- /* for binary compatibility back until 2.0 */
- __u16 ac_uid16; /* LSB of Real User ID */
- __u16 ac_gid16; /* LSB of Real Group ID */
- __u16 ac_tty; /* Control Terminal */
- __u32 ac_btime; /* Process Creation Time */
- comp_t ac_utime; /* User Time */
- comp_t ac_stime; /* System Time */
- comp_t ac_etime; /* Elapsed Time */
- comp_t ac_mem; /* Average Memory Usage */
- comp_t ac_io; /* Chars Transferred */
- comp_t ac_rw; /* Blocks Read or Written */
- comp_t ac_minflt; /* Minor Pagefaults */
- comp_t ac_majflt; /* Major Pagefaults */
- comp_t ac_swaps; /* Number of Swaps */
-/* m68k had no padding here. */
-#if !defined(CONFIG_M68K) || !defined(__KERNEL__)
- __u16 ac_ahz; /* AHZ */
-#endif
- __u32 ac_exitcode; /* Exitcode */
- char ac_comm[ACCT_COMM + 1]; /* Command Name */
- __u8 ac_etime_hi; /* Elapsed Time MSB */
- __u16 ac_etime_lo; /* Elapsed Time LSB */
- __u32 ac_uid; /* Real User ID */
- __u32 ac_gid; /* Real Group ID */
-};
-
-struct acct_v3
-{
- char ac_flag; /* Flags */
- char ac_version; /* Always set to ACCT_VERSION */
- __u16 ac_tty; /* Control Terminal */
- __u32 ac_exitcode; /* Exitcode */
- __u32 ac_uid; /* Real User ID */
- __u32 ac_gid; /* Real Group ID */
- __u32 ac_pid; /* Process ID */
- __u32 ac_ppid; /* Parent Process ID */
- __u32 ac_btime; /* Process Creation Time */
-#ifdef __KERNEL__
- __u32 ac_etime; /* Elapsed Time */
-#else
- float ac_etime; /* Elapsed Time */
-#endif
- comp_t ac_utime; /* User Time */
- comp_t ac_stime; /* System Time */
- comp_t ac_mem; /* Average Memory Usage */
- comp_t ac_io; /* Chars Transferred */
- comp_t ac_rw; /* Blocks Read or Written */
- comp_t ac_minflt; /* Minor Pagefaults */
- comp_t ac_majflt; /* Major Pagefaults */
- comp_t ac_swaps; /* Number of Swaps */
- char ac_comm[ACCT_COMM]; /* Command Name */
-};
-
-/*
- * accounting flags
- */
- /* bit set when the process ... */
-#define AFORK 0x01 /* ... executed fork, but did not exec */
-#define ASU 0x02 /* ... used super-user privileges */
-#define ACOMPAT 0x04 /* ... used compatibility mode (VAX only not used) */
-#define ACORE 0x08 /* ... dumped core */
-#define AXSIG 0x10 /* ... was killed by a signal */
-
-#ifdef __BIG_ENDIAN
-#define ACCT_BYTEORDER 0x80 /* accounting file is big endian */
-#else
-#define ACCT_BYTEORDER 0x00 /* accounting file is little endian */
-#endif
-
-#ifdef __KERNEL__
-
-
-#ifdef CONFIG_BSD_PROCESS_ACCT
-struct vfsmount;
-struct super_block;
-struct pacct_struct;
-struct pid_namespace;
-extern int acct_parm[]; /* for sysctl */
-extern void acct_auto_close_mnt(struct vfsmount *m);
-extern void acct_auto_close(struct super_block *sb);
-extern void acct_collect(long exitcode, int group_dead);
-extern void acct_process(void);
-extern void acct_exit_ns(struct pid_namespace *);
-#else
-#define acct_auto_close_mnt(x) do { } while (0)
-#define acct_auto_close(x) do { } while (0)
-#define acct_collect(x,y) do { } while (0)
-#define acct_process() do { } while (0)
-#define acct_exit_ns(ns) do { } while (0)
-#endif
-
-/*
- * ACCT_VERSION numbers as yet defined:
- * 0: old format (until 2.6.7) with 16 bit uid/gid
- * 1: extended variant (binary compatible on M68K)
- * 2: extended variant (binary compatible on everything except M68K)
- * 3: new binary incompatible format (64 bytes)
- * 4: new binary incompatible format (128 bytes)
- * 5: new binary incompatible format (128 bytes, second half)
- *
- */
-
-#undef ACCT_VERSION
-#undef AHZ
-
-#ifdef CONFIG_BSD_PROCESS_ACCT_V3
-#define ACCT_VERSION 3
-#define AHZ 100
-typedef struct acct_v3 acct_t;
-#else
-#ifdef CONFIG_M68K
-#define ACCT_VERSION 1
-#else
-#define ACCT_VERSION 2
-#endif
-#define AHZ (USER_HZ)
-typedef struct acct acct_t;
-#endif
-
-#else
-#define ACCT_VERSION 2
-#define AHZ (HZ)
-#endif /* __KERNEL */
-
-#ifdef __KERNEL__
-#include <linux/jiffies.h>
-/*
- * Yet another set of HZ to *HZ helper functions.
- * See <linux/jiffies.h> for the original.
- */
-
-static inline u32 jiffies_to_AHZ(unsigned long x)
-{
-#if (TICK_NSEC % (NSEC_PER_SEC / AHZ)) == 0
-# if HZ < AHZ
- return x * (AHZ / HZ);
-# else
- return x / (HZ / AHZ);
-# endif
-#else
- u64 tmp = (u64)x * TICK_NSEC;
- do_div(tmp, (NSEC_PER_SEC / AHZ));
- return (long)tmp;
-#endif
-}
-
-static inline u64 nsec_to_AHZ(u64 x)
-{
-#if (NSEC_PER_SEC % AHZ) == 0
- do_div(x, (NSEC_PER_SEC / AHZ));
-#elif (AHZ % 512) == 0
- x *= AHZ/512;
- do_div(x, (NSEC_PER_SEC / 512));
-#else
- /*
- * max relative error 5.7e-8 (1.8s per year) for AHZ <= 1024,
- * overflow after 64.99 years.
- * exact for AHZ=60, 72, 90, 120, 144, 180, 300, 600, 900, ...
- */
- x *= 9;
- do_div(x, (unsigned long)((9ull * NSEC_PER_SEC + (AHZ/2))
- / AHZ));
-#endif
- return x;
-}
-
-#endif /* __KERNEL */
-
-#endif /* _LINUX_ACCT_H */
diff --git a/ANDROID_3.4.5/include/linux/acpi.h b/ANDROID_3.4.5/include/linux/acpi.h
deleted file mode 100644
index f421dd84..00000000
--- a/ANDROID_3.4.5/include/linux/acpi.h
+++ /dev/null
@@ -1,385 +0,0 @@
-/*
- * acpi.h - ACPI Interface
- *
- * Copyright (C) 2001 Paul Diefenbaugh <paul.s.diefenbaugh@intel.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
- *
- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- */
-
-#ifndef _LINUX_ACPI_H
-#define _LINUX_ACPI_H
-
-#include <linux/ioport.h> /* for struct resource */
-
-#ifdef CONFIG_ACPI
-
-#ifndef _LINUX
-#define _LINUX
-#endif
-
-#include <linux/list.h>
-#include <linux/mod_devicetable.h>
-
-#include <acpi/acpi.h>
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
-#include <acpi/acpi_numa.h>
-#include <asm/acpi.h>
-
-enum acpi_irq_model_id {
- ACPI_IRQ_MODEL_PIC = 0,
- ACPI_IRQ_MODEL_IOAPIC,
- ACPI_IRQ_MODEL_IOSAPIC,
- ACPI_IRQ_MODEL_PLATFORM,
- ACPI_IRQ_MODEL_COUNT
-};
-
-extern enum acpi_irq_model_id acpi_irq_model;
-
-enum acpi_interrupt_id {
- ACPI_INTERRUPT_PMI = 1,
- ACPI_INTERRUPT_INIT,
- ACPI_INTERRUPT_CPEI,
- ACPI_INTERRUPT_COUNT
-};
-
-#define ACPI_SPACE_MEM 0
-
-enum acpi_address_range_id {
- ACPI_ADDRESS_RANGE_MEMORY = 1,
- ACPI_ADDRESS_RANGE_RESERVED = 2,
- ACPI_ADDRESS_RANGE_ACPI = 3,
- ACPI_ADDRESS_RANGE_NVS = 4,
- ACPI_ADDRESS_RANGE_COUNT
-};
-
-
-/* Table Handlers */
-
-typedef int (*acpi_table_handler) (struct acpi_table_header *table);
-
-typedef int (*acpi_table_entry_handler) (struct acpi_subtable_header *header, const unsigned long end);
-
-char * __acpi_map_table (unsigned long phys_addr, unsigned long size);
-void __acpi_unmap_table(char *map, unsigned long size);
-int early_acpi_boot_init(void);
-int acpi_boot_init (void);
-void acpi_boot_table_init (void);
-int acpi_mps_check (void);
-int acpi_numa_init (void);
-
-int acpi_table_init (void);
-int acpi_table_parse (char *id, acpi_table_handler handler);
-int __init acpi_table_parse_entries(char *id, unsigned long table_size,
- int entry_id, acpi_table_entry_handler handler, unsigned int max_entries);
-int acpi_table_parse_madt (enum acpi_madt_type id, acpi_table_entry_handler handler, unsigned int max_entries);
-int acpi_parse_mcfg (struct acpi_table_header *header);
-void acpi_table_print_madt_entry (struct acpi_subtable_header *madt);
-
-/* the following four functions are architecture-dependent */
-void acpi_numa_slit_init (struct acpi_table_slit *slit);
-void acpi_numa_processor_affinity_init (struct acpi_srat_cpu_affinity *pa);
-void acpi_numa_x2apic_affinity_init(struct acpi_srat_x2apic_cpu_affinity *pa);
-void acpi_numa_memory_affinity_init (struct acpi_srat_mem_affinity *ma);
-void acpi_numa_arch_fixup(void);
-
-#ifdef CONFIG_ACPI_HOTPLUG_CPU
-/* Arch dependent functions for cpu hotplug support */
-int acpi_map_lsapic(acpi_handle handle, int *pcpu);
-int acpi_unmap_lsapic(int cpu);
-#endif /* CONFIG_ACPI_HOTPLUG_CPU */
-
-int acpi_register_ioapic(acpi_handle handle, u64 phys_addr, u32 gsi_base);
-int acpi_unregister_ioapic(acpi_handle handle, u32 gsi_base);
-void acpi_irq_stats_init(void);
-extern u32 acpi_irq_handled;
-extern u32 acpi_irq_not_handled;
-
-extern int sbf_port;
-extern unsigned long acpi_realmode_flags;
-
-int acpi_register_gsi (struct device *dev, u32 gsi, int triggering, int polarity);
-int acpi_gsi_to_irq (u32 gsi, unsigned int *irq);
-int acpi_isa_irq_to_gsi (unsigned isa_irq, u32 *gsi);
-
-#ifdef CONFIG_X86_IO_APIC
-extern int acpi_get_override_irq(u32 gsi, int *trigger, int *polarity);
-#else
-#define acpi_get_override_irq(gsi, trigger, polarity) (-1)
-#endif
-/*
- * This function undoes the effect of one call to acpi_register_gsi().
- * If this matches the last registration, any IRQ resources for gsi
- * are freed.
- */
-void acpi_unregister_gsi (u32 gsi);
-
-struct pci_dev;
-
-int acpi_pci_irq_enable (struct pci_dev *dev);
-void acpi_penalize_isa_irq(int irq, int active);
-
-void acpi_pci_irq_disable (struct pci_dev *dev);
-
-struct acpi_pci_driver {
- struct acpi_pci_driver *next;
- int (*add)(acpi_handle handle);
- void (*remove)(acpi_handle handle);
-};
-
-int acpi_pci_register_driver(struct acpi_pci_driver *driver);
-void acpi_pci_unregister_driver(struct acpi_pci_driver *driver);
-
-extern int ec_read(u8 addr, u8 *val);
-extern int ec_write(u8 addr, u8 val);
-extern int ec_transaction(u8 command,
- const u8 *wdata, unsigned wdata_len,
- u8 *rdata, unsigned rdata_len);
-extern acpi_handle ec_get_handle(void);
-
-#if defined(CONFIG_ACPI_WMI) || defined(CONFIG_ACPI_WMI_MODULE)
-
-typedef void (*wmi_notify_handler) (u32 value, void *context);
-
-extern acpi_status wmi_evaluate_method(const char *guid, u8 instance,
- u32 method_id,
- const struct acpi_buffer *in,
- struct acpi_buffer *out);
-extern acpi_status wmi_query_block(const char *guid, u8 instance,
- struct acpi_buffer *out);
-extern acpi_status wmi_set_block(const char *guid, u8 instance,
- const struct acpi_buffer *in);
-extern acpi_status wmi_install_notify_handler(const char *guid,
- wmi_notify_handler handler, void *data);
-extern acpi_status wmi_remove_notify_handler(const char *guid);
-extern acpi_status wmi_get_event_data(u32 event, struct acpi_buffer *out);
-extern bool wmi_has_guid(const char *guid);
-
-#endif /* CONFIG_ACPI_WMI */
-
-#define ACPI_VIDEO_OUTPUT_SWITCHING 0x0001
-#define ACPI_VIDEO_DEVICE_POSTING 0x0002
-#define ACPI_VIDEO_ROM_AVAILABLE 0x0004
-#define ACPI_VIDEO_BACKLIGHT 0x0008
-#define ACPI_VIDEO_BACKLIGHT_FORCE_VENDOR 0x0010
-#define ACPI_VIDEO_BACKLIGHT_FORCE_VIDEO 0x0020
-#define ACPI_VIDEO_OUTPUT_SWITCHING_FORCE_VENDOR 0x0040
-#define ACPI_VIDEO_OUTPUT_SWITCHING_FORCE_VIDEO 0x0080
-#define ACPI_VIDEO_BACKLIGHT_DMI_VENDOR 0x0100
-#define ACPI_VIDEO_BACKLIGHT_DMI_VIDEO 0x0200
-#define ACPI_VIDEO_OUTPUT_SWITCHING_DMI_VENDOR 0x0400
-#define ACPI_VIDEO_OUTPUT_SWITCHING_DMI_VIDEO 0x0800
-
-#if defined(CONFIG_ACPI_VIDEO) || defined(CONFIG_ACPI_VIDEO_MODULE)
-
-extern long acpi_video_get_capabilities(acpi_handle graphics_dev_handle);
-extern long acpi_is_video_device(struct acpi_device *device);
-extern int acpi_video_backlight_support(void);
-extern int acpi_video_display_switch_support(void);
-
-#else
-
-static inline long acpi_video_get_capabilities(acpi_handle graphics_dev_handle)
-{
- return 0;
-}
-
-static inline long acpi_is_video_device(struct acpi_device *device)
-{
- return 0;
-}
-
-static inline int acpi_video_backlight_support(void)
-{
- return 0;
-}
-
-static inline int acpi_video_display_switch_support(void)
-{
- return 0;
-}
-
-#endif /* defined(CONFIG_ACPI_VIDEO) || defined(CONFIG_ACPI_VIDEO_MODULE) */
-
-extern int acpi_blacklisted(void);
-extern void acpi_dmi_osi_linux(int enable, const struct dmi_system_id *d);
-extern void acpi_osi_setup(char *str);
-
-#ifdef CONFIG_ACPI_NUMA
-int acpi_get_pxm(acpi_handle handle);
-int acpi_get_node(acpi_handle *handle);
-#else
-static inline int acpi_get_pxm(acpi_handle handle)
-{
- return 0;
-}
-static inline int acpi_get_node(acpi_handle *handle)
-{
- return 0;
-}
-#endif
-extern int acpi_paddr_to_node(u64 start_addr, u64 size);
-
-extern int pnpacpi_disabled;
-
-#define PXM_INVAL (-1)
-
-int acpi_check_resource_conflict(const struct resource *res);
-
-int acpi_check_region(resource_size_t start, resource_size_t n,
- const char *name);
-
-int acpi_resources_are_enforced(void);
-
-#ifdef CONFIG_PM_SLEEP
-void __init acpi_no_s4_hw_signature(void);
-void __init acpi_old_suspend_ordering(void);
-void __init acpi_nvs_nosave(void);
-#endif /* CONFIG_PM_SLEEP */
-
-struct acpi_osc_context {
- char *uuid_str; /* uuid string */
- int rev;
- struct acpi_buffer cap; /* arg2/arg3 */
- struct acpi_buffer ret; /* free by caller if success */
-};
-
-#define OSC_QUERY_TYPE 0
-#define OSC_SUPPORT_TYPE 1
-#define OSC_CONTROL_TYPE 2
-
-/* _OSC DW0 Definition */
-#define OSC_QUERY_ENABLE 1
-#define OSC_REQUEST_ERROR 2
-#define OSC_INVALID_UUID_ERROR 4
-#define OSC_INVALID_REVISION_ERROR 8
-#define OSC_CAPABILITIES_MASK_ERROR 16
-
-acpi_status acpi_run_osc(acpi_handle handle, struct acpi_osc_context *context);
-
-/* platform-wide _OSC bits */
-#define OSC_SB_PAD_SUPPORT 1
-#define OSC_SB_PPC_OST_SUPPORT 2
-#define OSC_SB_PR3_SUPPORT 4
-#define OSC_SB_CPUHP_OST_SUPPORT 8
-#define OSC_SB_APEI_SUPPORT 16
-
-extern bool osc_sb_apei_support_acked;
-
-/* PCI defined _OSC bits */
-/* _OSC DW1 Definition (OS Support Fields) */
-#define OSC_EXT_PCI_CONFIG_SUPPORT 1
-#define OSC_ACTIVE_STATE_PWR_SUPPORT 2
-#define OSC_CLOCK_PWR_CAPABILITY_SUPPORT 4
-#define OSC_PCI_SEGMENT_GROUPS_SUPPORT 8
-#define OSC_MSI_SUPPORT 16
-#define OSC_PCI_SUPPORT_MASKS 0x1f
-
-/* _OSC DW1 Definition (OS Control Fields) */
-#define OSC_PCI_EXPRESS_NATIVE_HP_CONTROL 1
-#define OSC_SHPC_NATIVE_HP_CONTROL 2
-#define OSC_PCI_EXPRESS_PME_CONTROL 4
-#define OSC_PCI_EXPRESS_AER_CONTROL 8
-#define OSC_PCI_EXPRESS_CAP_STRUCTURE_CONTROL 16
-
-#define OSC_PCI_CONTROL_MASKS (OSC_PCI_EXPRESS_NATIVE_HP_CONTROL | \
- OSC_SHPC_NATIVE_HP_CONTROL | \
- OSC_PCI_EXPRESS_PME_CONTROL | \
- OSC_PCI_EXPRESS_AER_CONTROL | \
- OSC_PCI_EXPRESS_CAP_STRUCTURE_CONTROL)
-
-#define OSC_PCI_NATIVE_HOTPLUG (OSC_PCI_EXPRESS_NATIVE_HP_CONTROL | \
- OSC_SHPC_NATIVE_HP_CONTROL)
-
-extern acpi_status acpi_pci_osc_control_set(acpi_handle handle,
- u32 *mask, u32 req);
-extern void acpi_early_init(void);
-
-extern int acpi_nvs_register(__u64 start, __u64 size);
-
-extern int acpi_nvs_for_each_region(int (*func)(__u64, __u64, void *),
- void *data);
-
-#else /* !CONFIG_ACPI */
-
-#define acpi_disabled 1
-
-static inline void acpi_early_init(void) { }
-
-static inline int early_acpi_boot_init(void)
-{
- return 0;
-}
-static inline int acpi_boot_init(void)
-{
- return 0;
-}
-
-static inline void acpi_boot_table_init(void)
-{
- return;
-}
-
-static inline int acpi_mps_check(void)
-{
- return 0;
-}
-
-static inline int acpi_check_resource_conflict(struct resource *res)
-{
- return 0;
-}
-
-static inline int acpi_check_region(resource_size_t start, resource_size_t n,
- const char *name)
-{
- return 0;
-}
-
-struct acpi_table_header;
-static inline int acpi_table_parse(char *id,
- int (*handler)(struct acpi_table_header *))
-{
- return -1;
-}
-
-static inline int acpi_nvs_register(__u64 start, __u64 size)
-{
- return 0;
-}
-
-static inline int acpi_nvs_for_each_region(int (*func)(__u64, __u64, void *),
- void *data)
-{
- return 0;
-}
-
-#endif /* !CONFIG_ACPI */
-
-#ifdef CONFIG_ACPI
-void acpi_os_set_prepare_sleep(int (*func)(u8 sleep_state,
- u32 pm1a_ctrl, u32 pm1b_ctrl));
-
-acpi_status acpi_os_prepare_sleep(u8 sleep_state,
- u32 pm1a_control, u32 pm1b_control);
-#else
-#define acpi_os_set_prepare_sleep(func, pm1a_ctrl, pm1b_ctrl) do { } while (0)
-#endif
-
-#endif /*_LINUX_ACPI_H*/
diff --git a/ANDROID_3.4.5/include/linux/acpi_io.h b/ANDROID_3.4.5/include/linux/acpi_io.h
deleted file mode 100644
index b0ffa219..00000000
--- a/ANDROID_3.4.5/include/linux/acpi_io.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef _ACPI_IO_H_
-#define _ACPI_IO_H_
-
-#include <linux/io.h>
-#include <acpi/acpi.h>
-
-static inline void __iomem *acpi_os_ioremap(acpi_physical_address phys,
- acpi_size size)
-{
- return ioremap_cache(phys, size);
-}
-
-void __iomem *acpi_os_get_iomem(acpi_physical_address phys, unsigned int size);
-
-int acpi_os_map_generic_address(struct acpi_generic_address *addr);
-void acpi_os_unmap_generic_address(struct acpi_generic_address *addr);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/acpi_pmtmr.h b/ANDROID_3.4.5/include/linux/acpi_pmtmr.h
deleted file mode 100644
index 1d0ef1ae..00000000
--- a/ANDROID_3.4.5/include/linux/acpi_pmtmr.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef _ACPI_PMTMR_H_
-#define _ACPI_PMTMR_H_
-
-#include <linux/clocksource.h>
-
-/* Number of PMTMR ticks expected during calibration run */
-#define PMTMR_TICKS_PER_SEC 3579545
-
-/* limit it to 24 bits */
-#define ACPI_PM_MASK CLOCKSOURCE_MASK(24)
-
-/* Overrun value */
-#define ACPI_PM_OVRRUN (1<<24)
-
-#ifdef CONFIG_X86_PM_TIMER
-
-extern u32 acpi_pm_read_verified(void);
-extern u32 pmtmr_ioport;
-
-static inline u32 acpi_pm_read_early(void)
-{
- if (!pmtmr_ioport)
- return 0;
- /* mask the output to 24 bits */
- return acpi_pm_read_verified() & ACPI_PM_MASK;
-}
-
-#else
-
-static inline u32 acpi_pm_read_early(void)
-{
- return 0;
-}
-
-#endif
-
-#endif
-
diff --git a/ANDROID_3.4.5/include/linux/adb.h b/ANDROID_3.4.5/include/linux/adb.h
deleted file mode 100644
index 63bca502..00000000
--- a/ANDROID_3.4.5/include/linux/adb.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Definitions for ADB (Apple Desktop Bus) support.
- */
-#ifndef __ADB_H
-#define __ADB_H
-
-/* ADB commands */
-#define ADB_BUSRESET 0
-#define ADB_FLUSH(id) (0x01 | ((id) << 4))
-#define ADB_WRITEREG(id, reg) (0x08 | (reg) | ((id) << 4))
-#define ADB_READREG(id, reg) (0x0C | (reg) | ((id) << 4))
-
-/* ADB default device IDs (upper 4 bits of ADB command byte) */
-#define ADB_DONGLE 1 /* "software execution control" devices */
-#define ADB_KEYBOARD 2
-#define ADB_MOUSE 3
-#define ADB_TABLET 4
-#define ADB_MODEM 5
-#define ADB_MISC 7 /* maybe a monitor */
-
-#define ADB_RET_OK 0
-#define ADB_RET_TIMEOUT 3
-
-/* The kind of ADB request. The controller may emulate some
- or all of those CUDA/PMU packet kinds */
-#define ADB_PACKET 0
-#define CUDA_PACKET 1
-#define ERROR_PACKET 2
-#define TIMER_PACKET 3
-#define POWER_PACKET 4
-#define MACIIC_PACKET 5
-#define PMU_PACKET 6
-#define ADB_QUERY 7
-
-/* ADB queries */
-
-/* ADB_QUERY_GETDEVINFO
- * Query ADB slot for device presence
- * data[2] = id, rep[0] = orig addr, rep[1] = handler_id
- */
-#define ADB_QUERY_GETDEVINFO 1
-
-#ifdef __KERNEL__
-
-struct adb_request {
- unsigned char data[32];
- int nbytes;
- unsigned char reply[32];
- int reply_len;
- unsigned char reply_expected;
- unsigned char sent;
- unsigned char complete;
- void (*done)(struct adb_request *);
- void *arg;
- struct adb_request *next;
-};
-
-struct adb_ids {
- int nids;
- unsigned char id[16];
-};
-
-/* Structure which encapsulates a low-level ADB driver */
-
-struct adb_driver {
- char name[16];
- int (*probe)(void);
- int (*init)(void);
- int (*send_request)(struct adb_request *req, int sync);
- int (*autopoll)(int devs);
- void (*poll)(void);
- int (*reset_bus)(void);
-};
-
-/* Values for adb_request flags */
-#define ADBREQ_REPLY 1 /* expect reply */
-#define ADBREQ_SYNC 2 /* poll until done */
-#define ADBREQ_NOSEND 4 /* build the request, but don't send it */
-
-/* Messages sent thru the client_list notifier. You should NOT stop
- the operation, at least not with this version */
-enum adb_message {
- ADB_MSG_POWERDOWN, /* Currently called before sleep only */
- ADB_MSG_PRE_RESET, /* Called before resetting the bus */
- ADB_MSG_POST_RESET /* Called after resetting the bus (re-do init & register) */
-};
-extern struct blocking_notifier_head adb_client_list;
-
-int adb_request(struct adb_request *req, void (*done)(struct adb_request *),
- int flags, int nbytes, ...);
-int adb_register(int default_id,int handler_id,struct adb_ids *ids,
- void (*handler)(unsigned char *, int, int));
-int adb_unregister(int index);
-void adb_poll(void);
-void adb_input(unsigned char *, int, int);
-int adb_reset_bus(void);
-
-int adb_try_handler_change(int address, int new_id);
-int adb_get_infos(int address, int *original_address, int *handler_id);
-
-#endif /* __KERNEL__ */
-
-#endif /* __ADB_H */
diff --git a/ANDROID_3.4.5/include/linux/adfs_fs.h b/ANDROID_3.4.5/include/linux/adfs_fs.h
deleted file mode 100644
index b19801f7..00000000
--- a/ANDROID_3.4.5/include/linux/adfs_fs.h
+++ /dev/null
@@ -1,63 +0,0 @@
-#ifndef _ADFS_FS_H
-#define _ADFS_FS_H
-
-#include <linux/types.h>
-#include <linux/magic.h>
-
-/*
- * Disc Record at disc address 0xc00
- */
-struct adfs_discrecord {
- __u8 log2secsize;
- __u8 secspertrack;
- __u8 heads;
- __u8 density;
- __u8 idlen;
- __u8 log2bpmb;
- __u8 skew;
- __u8 bootoption;
- __u8 lowsector;
- __u8 nzones;
- __le16 zone_spare;
- __le32 root;
- __le32 disc_size;
- __le16 disc_id;
- __u8 disc_name[10];
- __le32 disc_type;
- __le32 disc_size_high;
- __u8 log2sharesize:4;
- __u8 unused40:4;
- __u8 big_flag:1;
- __u8 unused41:1;
- __u8 nzones_high;
- __le32 format_version;
- __le32 root_size;
- __u8 unused52[60 - 52];
-};
-
-#define ADFS_DISCRECORD (0xc00)
-#define ADFS_DR_OFFSET (0x1c0)
-#define ADFS_DR_SIZE 60
-#define ADFS_DR_SIZE_BITS (ADFS_DR_SIZE << 3)
-
-#ifdef __KERNEL__
-/*
- * Calculate the boot block checksum on an ADFS drive. Note that this will
- * appear to be correct if the sector contains all zeros, so also check that
- * the disk size is non-zero!!!
- */
-static inline int adfs_checkbblk(unsigned char *ptr)
-{
- unsigned int result = 0;
- unsigned char *p = ptr + 511;
-
- do {
- result = (result & 0xff) + (result >> 8);
- result = result + *--p;
- } while (p != ptr);
-
- return (result & 0xff) != ptr[511];
-}
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/aer.h b/ANDROID_3.4.5/include/linux/aer.h
deleted file mode 100644
index 544abdb2..00000000
--- a/ANDROID_3.4.5/include/linux/aer.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2006 Intel Corp.
- * Tom Long Nguyen (tom.l.nguyen@intel.com)
- * Zhang Yanmin (yanmin.zhang@intel.com)
- */
-
-#ifndef _AER_H_
-#define _AER_H_
-
-struct aer_header_log_regs {
- unsigned int dw0;
- unsigned int dw1;
- unsigned int dw2;
- unsigned int dw3;
-};
-
-struct aer_capability_regs {
- u32 header;
- u32 uncor_status;
- u32 uncor_mask;
- u32 uncor_severity;
- u32 cor_status;
- u32 cor_mask;
- u32 cap_control;
- struct aer_header_log_regs header_log;
- u32 root_command;
- u32 root_status;
- u16 cor_err_source;
- u16 uncor_err_source;
-};
-
-#if defined(CONFIG_PCIEAER)
-/* pci-e port driver needs this function to enable aer */
-extern int pci_enable_pcie_error_reporting(struct pci_dev *dev);
-extern int pci_disable_pcie_error_reporting(struct pci_dev *dev);
-extern int pci_cleanup_aer_uncorrect_error_status(struct pci_dev *dev);
-#else
-static inline int pci_enable_pcie_error_reporting(struct pci_dev *dev)
-{
- return -EINVAL;
-}
-static inline int pci_disable_pcie_error_reporting(struct pci_dev *dev)
-{
- return -EINVAL;
-}
-static inline int pci_cleanup_aer_uncorrect_error_status(struct pci_dev *dev)
-{
- return -EINVAL;
-}
-#endif
-
-extern void cper_print_aer(const char *prefix, int cper_severity,
- struct aer_capability_regs *aer);
-extern int cper_severity_to_aer(int cper_severity);
-extern void aer_recover_queue(int domain, unsigned int bus, unsigned int devfn,
- int severity);
-#endif //_AER_H_
-
diff --git a/ANDROID_3.4.5/include/linux/affs_hardblocks.h b/ANDROID_3.4.5/include/linux/affs_hardblocks.h
deleted file mode 100644
index f1b948c1..00000000
--- a/ANDROID_3.4.5/include/linux/affs_hardblocks.h
+++ /dev/null
@@ -1,68 +0,0 @@
-#ifndef AFFS_HARDBLOCKS_H
-#define AFFS_HARDBLOCKS_H
-
-#include <linux/types.h>
-
-/* Just the needed definitions for the RDB of an Amiga HD. */
-
-struct RigidDiskBlock {
- __u32 rdb_ID;
- __be32 rdb_SummedLongs;
- __s32 rdb_ChkSum;
- __u32 rdb_HostID;
- __be32 rdb_BlockBytes;
- __u32 rdb_Flags;
- __u32 rdb_BadBlockList;
- __be32 rdb_PartitionList;
- __u32 rdb_FileSysHeaderList;
- __u32 rdb_DriveInit;
- __u32 rdb_Reserved1[6];
- __u32 rdb_Cylinders;
- __u32 rdb_Sectors;
- __u32 rdb_Heads;
- __u32 rdb_Interleave;
- __u32 rdb_Park;
- __u32 rdb_Reserved2[3];
- __u32 rdb_WritePreComp;
- __u32 rdb_ReducedWrite;
- __u32 rdb_StepRate;
- __u32 rdb_Reserved3[5];
- __u32 rdb_RDBBlocksLo;
- __u32 rdb_RDBBlocksHi;
- __u32 rdb_LoCylinder;
- __u32 rdb_HiCylinder;
- __u32 rdb_CylBlocks;
- __u32 rdb_AutoParkSeconds;
- __u32 rdb_HighRDSKBlock;
- __u32 rdb_Reserved4;
- char rdb_DiskVendor[8];
- char rdb_DiskProduct[16];
- char rdb_DiskRevision[4];
- char rdb_ControllerVendor[8];
- char rdb_ControllerProduct[16];
- char rdb_ControllerRevision[4];
- __u32 rdb_Reserved5[10];
-};
-
-#define IDNAME_RIGIDDISK 0x5244534B /* "RDSK" */
-
-struct PartitionBlock {
- __be32 pb_ID;
- __be32 pb_SummedLongs;
- __s32 pb_ChkSum;
- __u32 pb_HostID;
- __be32 pb_Next;
- __u32 pb_Flags;
- __u32 pb_Reserved1[2];
- __u32 pb_DevFlags;
- __u8 pb_DriveName[32];
- __u32 pb_Reserved2[15];
- __be32 pb_Environment[17];
- __u32 pb_EReserved[15];
-};
-
-#define IDNAME_PARTITION 0x50415254 /* "PART" */
-
-#define RDB_ALLOCATION_LIMIT 16
-
-#endif /* AFFS_HARDBLOCKS_H */
diff --git a/ANDROID_3.4.5/include/linux/agp_backend.h b/ANDROID_3.4.5/include/linux/agp_backend.h
deleted file mode 100644
index eaf6cd75..00000000
--- a/ANDROID_3.4.5/include/linux/agp_backend.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * AGPGART backend specific includes. Not for userspace consumption.
- *
- * Copyright (C) 2004 Silicon Graphics, Inc.
- * Copyright (C) 2002-2003 Dave Jones
- * Copyright (C) 1999 Jeff Hartmann
- * Copyright (C) 1999 Precision Insight, Inc.
- * Copyright (C) 1999 Xi Graphics, Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * JEFF HARTMANN, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
- * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- */
-
-#ifndef _AGP_BACKEND_H
-#define _AGP_BACKEND_H 1
-
-#include <linux/list.h>
-
-enum chipset_type {
- NOT_SUPPORTED,
- SUPPORTED,
-};
-
-struct agp_version {
- u16 major;
- u16 minor;
-};
-
-struct agp_kern_info {
- struct agp_version version;
- struct pci_dev *device;
- enum chipset_type chipset;
- unsigned long mode;
- unsigned long aper_base;
- size_t aper_size;
- int max_memory; /* In pages */
- int current_memory;
- bool cant_use_aperture;
- unsigned long page_mask;
- const struct vm_operations_struct *vm_ops;
-};
-
-/*
- * The agp_memory structure has information about the block of agp memory
- * allocated. A caller may manipulate the next and prev pointers to link
- * each allocated item into a list. These pointers are ignored by the backend.
- * Everything else should never be written to, but the caller may read any of
- * the items to determine the status of this block of agp memory.
- */
-
-struct agp_bridge_data;
-
-struct agp_memory {
- struct agp_memory *next;
- struct agp_memory *prev;
- struct agp_bridge_data *bridge;
- struct page **pages;
- size_t page_count;
- int key;
- int num_scratch_pages;
- off_t pg_start;
- u32 type;
- u32 physical;
- bool is_bound;
- bool is_flushed;
- /* list of agp_memory mapped to the aperture */
- struct list_head mapped_list;
- /* DMA-mapped addresses */
- struct scatterlist *sg_list;
- int num_sg;
-};
-
-#define AGP_NORMAL_MEMORY 0
-
-#define AGP_USER_TYPES (1 << 16)
-#define AGP_USER_MEMORY (AGP_USER_TYPES)
-#define AGP_USER_CACHED_MEMORY (AGP_USER_TYPES + 1)
-
-extern struct agp_bridge_data *agp_bridge;
-extern struct list_head agp_bridges;
-
-extern struct agp_bridge_data *(*agp_find_bridge)(struct pci_dev *);
-
-extern void agp_free_memory(struct agp_memory *);
-extern struct agp_memory *agp_allocate_memory(struct agp_bridge_data *, size_t, u32);
-extern int agp_copy_info(struct agp_bridge_data *, struct agp_kern_info *);
-extern int agp_bind_memory(struct agp_memory *, off_t);
-extern int agp_unbind_memory(struct agp_memory *);
-extern void agp_enable(struct agp_bridge_data *, u32);
-extern struct agp_bridge_data *agp_backend_acquire(struct pci_dev *);
-extern void agp_backend_release(struct agp_bridge_data *);
-
-#endif /* _AGP_BACKEND_H */
diff --git a/ANDROID_3.4.5/include/linux/agpgart.h b/ANDROID_3.4.5/include/linux/agpgart.h
deleted file mode 100644
index f6778ece..00000000
--- a/ANDROID_3.4.5/include/linux/agpgart.h
+++ /dev/null
@@ -1,214 +0,0 @@
-/*
- * AGPGART module version 0.99
- * Copyright (C) 1999 Jeff Hartmann
- * Copyright (C) 1999 Precision Insight, Inc.
- * Copyright (C) 1999 Xi Graphics, Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * JEFF HARTMANN, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
- * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- */
-
-#ifndef _AGP_H
-#define _AGP_H 1
-
-#define AGPIOC_BASE 'A'
-#define AGPIOC_INFO _IOR (AGPIOC_BASE, 0, struct agp_info*)
-#define AGPIOC_ACQUIRE _IO (AGPIOC_BASE, 1)
-#define AGPIOC_RELEASE _IO (AGPIOC_BASE, 2)
-#define AGPIOC_SETUP _IOW (AGPIOC_BASE, 3, struct agp_setup*)
-#define AGPIOC_RESERVE _IOW (AGPIOC_BASE, 4, struct agp_region*)
-#define AGPIOC_PROTECT _IOW (AGPIOC_BASE, 5, struct agp_region*)
-#define AGPIOC_ALLOCATE _IOWR(AGPIOC_BASE, 6, struct agp_allocate*)
-#define AGPIOC_DEALLOCATE _IOW (AGPIOC_BASE, 7, int)
-#define AGPIOC_BIND _IOW (AGPIOC_BASE, 8, struct agp_bind*)
-#define AGPIOC_UNBIND _IOW (AGPIOC_BASE, 9, struct agp_unbind*)
-#define AGPIOC_CHIPSET_FLUSH _IO (AGPIOC_BASE, 10)
-
-#define AGP_DEVICE "/dev/agpgart"
-
-#ifndef TRUE
-#define TRUE 1
-#endif
-
-#ifndef FALSE
-#define FALSE 0
-#endif
-
-#ifndef __KERNEL__
-#include <linux/types.h>
-
-struct agp_version {
- __u16 major;
- __u16 minor;
-};
-
-typedef struct _agp_info {
- struct agp_version version; /* version of the driver */
- __u32 bridge_id; /* bridge vendor/device */
- __u32 agp_mode; /* mode info of bridge */
- unsigned long aper_base;/* base of aperture */
- size_t aper_size; /* size of aperture */
- size_t pg_total; /* max pages (swap + system) */
- size_t pg_system; /* max pages (system) */
- size_t pg_used; /* current pages used */
-} agp_info;
-
-typedef struct _agp_setup {
- __u32 agp_mode; /* mode info of bridge */
-} agp_setup;
-
-/*
- * The "prot" down below needs still a "sleep" flag somehow ...
- */
-typedef struct _agp_segment {
- __kernel_off_t pg_start; /* starting page to populate */
- __kernel_size_t pg_count; /* number of pages */
- int prot; /* prot flags for mmap */
-} agp_segment;
-
-typedef struct _agp_region {
- __kernel_pid_t pid; /* pid of process */
- __kernel_size_t seg_count; /* number of segments */
- struct _agp_segment *seg_list;
-} agp_region;
-
-typedef struct _agp_allocate {
- int key; /* tag of allocation */
- __kernel_size_t pg_count;/* number of pages */
- __u32 type; /* 0 == normal, other devspec */
- __u32 physical; /* device specific (some devices
- * need a phys address of the
- * actual page behind the gatt
- * table) */
-} agp_allocate;
-
-typedef struct _agp_bind {
- int key; /* tag of allocation */
- __kernel_off_t pg_start;/* starting page to populate */
-} agp_bind;
-
-typedef struct _agp_unbind {
- int key; /* tag of allocation */
- __u32 priority; /* priority for paging out */
-} agp_unbind;
-
-#else /* __KERNEL__ */
-#include <linux/mutex.h>
-#include <linux/agp_backend.h>
-
-#define AGPGART_MINOR 175
-
-struct agp_info {
- struct agp_version version; /* version of the driver */
- u32 bridge_id; /* bridge vendor/device */
- u32 agp_mode; /* mode info of bridge */
- unsigned long aper_base;/* base of aperture */
- size_t aper_size; /* size of aperture */
- size_t pg_total; /* max pages (swap + system) */
- size_t pg_system; /* max pages (system) */
- size_t pg_used; /* current pages used */
-};
-
-struct agp_setup {
- u32 agp_mode; /* mode info of bridge */
-};
-
-/*
- * The "prot" down below needs still a "sleep" flag somehow ...
- */
-struct agp_segment {
- off_t pg_start; /* starting page to populate */
- size_t pg_count; /* number of pages */
- int prot; /* prot flags for mmap */
-};
-
-struct agp_segment_priv {
- off_t pg_start;
- size_t pg_count;
- pgprot_t prot;
-};
-
-struct agp_region {
- pid_t pid; /* pid of process */
- size_t seg_count; /* number of segments */
- struct agp_segment *seg_list;
-};
-
-struct agp_allocate {
- int key; /* tag of allocation */
- size_t pg_count; /* number of pages */
- u32 type; /* 0 == normal, other devspec */
- u32 physical; /* device specific (some devices
- * need a phys address of the
- * actual page behind the gatt
- * table) */
-};
-
-struct agp_bind {
- int key; /* tag of allocation */
- off_t pg_start; /* starting page to populate */
-};
-
-struct agp_unbind {
- int key; /* tag of allocation */
- u32 priority; /* priority for paging out */
-};
-
-struct agp_client {
- struct agp_client *next;
- struct agp_client *prev;
- pid_t pid;
- int num_segments;
- struct agp_segment_priv **segments;
-};
-
-struct agp_controller {
- struct agp_controller *next;
- struct agp_controller *prev;
- pid_t pid;
- int num_clients;
- struct agp_memory *pool;
- struct agp_client *clients;
-};
-
-#define AGP_FF_ALLOW_CLIENT 0
-#define AGP_FF_ALLOW_CONTROLLER 1
-#define AGP_FF_IS_CLIENT 2
-#define AGP_FF_IS_CONTROLLER 3
-#define AGP_FF_IS_VALID 4
-
-struct agp_file_private {
- struct agp_file_private *next;
- struct agp_file_private *prev;
- pid_t my_pid;
- unsigned long access_flags; /* long req'd for set_bit --RR */
-};
-
-struct agp_front_data {
- struct mutex agp_mutex;
- struct agp_controller *current_controller;
- struct agp_controller *controllers;
- struct agp_file_private *file_priv_list;
- bool used_by_controller;
- bool backend_acquired;
-};
-
-#endif /* __KERNEL__ */
-
-#endif /* _AGP_H */
diff --git a/ANDROID_3.4.5/include/linux/ahci_platform.h b/ANDROID_3.4.5/include/linux/ahci_platform.h
deleted file mode 100644
index 73a25005..00000000
--- a/ANDROID_3.4.5/include/linux/ahci_platform.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * AHCI SATA platform driver
- *
- * Copyright 2004-2005 Red Hat, Inc.
- * Jeff Garzik <jgarzik@pobox.com>
- * Copyright 2010 MontaVista Software, LLC.
- * Anton Vorontsov <avorontsov@ru.mvista.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, or (at your option)
- * any later version.
- */
-
-#ifndef _AHCI_PLATFORM_H
-#define _AHCI_PLATFORM_H
-
-#include <linux/compiler.h>
-
-struct device;
-struct ata_port_info;
-
-struct ahci_platform_data {
- int (*init)(struct device *dev, void __iomem *addr);
- void (*exit)(struct device *dev);
- int (*suspend)(struct device *dev);
- int (*resume)(struct device *dev);
- const struct ata_port_info *ata_port_info;
- unsigned int force_port_map;
- unsigned int mask_port_map;
-};
-
-#endif /* _AHCI_PLATFORM_H */
diff --git a/ANDROID_3.4.5/include/linux/aio.h b/ANDROID_3.4.5/include/linux/aio.h
deleted file mode 100644
index b1a520ec..00000000
--- a/ANDROID_3.4.5/include/linux/aio.h
+++ /dev/null
@@ -1,240 +0,0 @@
-#ifndef __LINUX__AIO_H
-#define __LINUX__AIO_H
-
-#include <linux/list.h>
-#include <linux/workqueue.h>
-#include <linux/aio_abi.h>
-#include <linux/uio.h>
-#include <linux/rcupdate.h>
-
-#include <linux/atomic.h>
-
-#define AIO_MAXSEGS 4
-#define AIO_KIOGRP_NR_ATOMIC 8
-
-struct kioctx;
-
-/* Notes on cancelling a kiocb:
- * If a kiocb is cancelled, aio_complete may return 0 to indicate
- * that cancel has not yet disposed of the kiocb. All cancel
- * operations *must* call aio_put_req to dispose of the kiocb
- * to guard against races with the completion code.
- */
-#define KIOCB_C_CANCELLED 0x01
-#define KIOCB_C_COMPLETE 0x02
-
-#define KIOCB_SYNC_KEY (~0U)
-
-/* ki_flags bits */
-/*
- * This may be used for cancel/retry serialization in the future, but
- * for now it's unused and we probably don't want modules to even
- * think they can use it.
- */
-/* #define KIF_LOCKED 0 */
-#define KIF_KICKED 1
-#define KIF_CANCELLED 2
-
-#define kiocbTryLock(iocb) test_and_set_bit(KIF_LOCKED, &(iocb)->ki_flags)
-#define kiocbTryKick(iocb) test_and_set_bit(KIF_KICKED, &(iocb)->ki_flags)
-
-#define kiocbSetLocked(iocb) set_bit(KIF_LOCKED, &(iocb)->ki_flags)
-#define kiocbSetKicked(iocb) set_bit(KIF_KICKED, &(iocb)->ki_flags)
-#define kiocbSetCancelled(iocb) set_bit(KIF_CANCELLED, &(iocb)->ki_flags)
-
-#define kiocbClearLocked(iocb) clear_bit(KIF_LOCKED, &(iocb)->ki_flags)
-#define kiocbClearKicked(iocb) clear_bit(KIF_KICKED, &(iocb)->ki_flags)
-#define kiocbClearCancelled(iocb) clear_bit(KIF_CANCELLED, &(iocb)->ki_flags)
-
-#define kiocbIsLocked(iocb) test_bit(KIF_LOCKED, &(iocb)->ki_flags)
-#define kiocbIsKicked(iocb) test_bit(KIF_KICKED, &(iocb)->ki_flags)
-#define kiocbIsCancelled(iocb) test_bit(KIF_CANCELLED, &(iocb)->ki_flags)
-
-/* is there a better place to document function pointer methods? */
-/**
- * ki_retry - iocb forward progress callback
- * @kiocb: The kiocb struct to advance by performing an operation.
- *
- * This callback is called when the AIO core wants a given AIO operation
- * to make forward progress. The kiocb argument describes the operation
- * that is to be performed. As the operation proceeds, perhaps partially,
- * ki_retry is expected to update the kiocb with progress made. Typically
- * ki_retry is set in the AIO core and it itself calls file_operations
- * helpers.
- *
- * ki_retry's return value determines when the AIO operation is completed
- * and an event is generated in the AIO event ring. Except the special
- * return values described below, the value that is returned from ki_retry
- * is transferred directly into the completion ring as the operation's
- * resulting status. Once this has happened ki_retry *MUST NOT* reference
- * the kiocb pointer again.
- *
- * If ki_retry returns -EIOCBQUEUED it has made a promise that aio_complete()
- * will be called on the kiocb pointer in the future. The AIO core will
- * not ask the method again -- ki_retry must ensure forward progress.
- * aio_complete() must be called once and only once in the future, multiple
- * calls may result in undefined behaviour.
- *
- * If ki_retry returns -EIOCBRETRY it has made a promise that kick_iocb()
- * will be called on the kiocb pointer in the future. This may happen
- * through generic helpers that associate kiocb->ki_wait with a wait
- * queue head that ki_retry uses via current->io_wait. It can also happen
- * with custom tracking and manual calls to kick_iocb(), though that is
- * discouraged. In either case, kick_iocb() must be called once and only
- * once. ki_retry must ensure forward progress, the AIO core will wait
- * indefinitely for kick_iocb() to be called.
- */
-struct kiocb {
- struct list_head ki_run_list;
- unsigned long ki_flags;
- int ki_users;
- unsigned ki_key; /* id of this request */
-
- struct file *ki_filp;
- struct kioctx *ki_ctx; /* may be NULL for sync ops */
- int (*ki_cancel)(struct kiocb *, struct io_event *);
- ssize_t (*ki_retry)(struct kiocb *);
- void (*ki_dtor)(struct kiocb *);
-
- union {
- void __user *user;
- struct task_struct *tsk;
- } ki_obj;
-
- __u64 ki_user_data; /* user's data for completion */
- loff_t ki_pos;
-
- void *private;
- /* State that we remember to be able to restart/retry */
- unsigned short ki_opcode;
- size_t ki_nbytes; /* copy of iocb->aio_nbytes */
- char __user *ki_buf; /* remaining iocb->aio_buf */
- size_t ki_left; /* remaining bytes */
- struct iovec ki_inline_vec; /* inline vector */
- struct iovec *ki_iovec;
- unsigned long ki_nr_segs;
- unsigned long ki_cur_seg;
-
- struct list_head ki_list; /* the aio core uses this
- * for cancellation */
- struct list_head ki_batch; /* batch allocation */
-
- /*
- * If the aio_resfd field of the userspace iocb is not zero,
- * this is the underlying eventfd context to deliver events to.
- */
- struct eventfd_ctx *ki_eventfd;
-};
-
-#define is_sync_kiocb(iocb) ((iocb)->ki_key == KIOCB_SYNC_KEY)
-#define init_sync_kiocb(x, filp) \
- do { \
- struct task_struct *tsk = current; \
- (x)->ki_flags = 0; \
- (x)->ki_users = 1; \
- (x)->ki_key = KIOCB_SYNC_KEY; \
- (x)->ki_filp = (filp); \
- (x)->ki_ctx = NULL; \
- (x)->ki_cancel = NULL; \
- (x)->ki_retry = NULL; \
- (x)->ki_dtor = NULL; \
- (x)->ki_obj.tsk = tsk; \
- (x)->ki_user_data = 0; \
- (x)->private = NULL; \
- } while (0)
-
-#define AIO_RING_MAGIC 0xa10a10a1
-#define AIO_RING_COMPAT_FEATURES 1
-#define AIO_RING_INCOMPAT_FEATURES 0
-struct aio_ring {
- unsigned id; /* kernel internal index number */
- unsigned nr; /* number of io_events */
- unsigned head;
- unsigned tail;
-
- unsigned magic;
- unsigned compat_features;
- unsigned incompat_features;
- unsigned header_length; /* size of aio_ring */
-
-
- struct io_event io_events[0];
-}; /* 128 bytes + ring size */
-
-#define aio_ring_avail(info, ring) (((ring)->head + (info)->nr - 1 - (ring)->tail) % (info)->nr)
-
-#define AIO_RING_PAGES 8
-struct aio_ring_info {
- unsigned long mmap_base;
- unsigned long mmap_size;
-
- struct page **ring_pages;
- spinlock_t ring_lock;
- long nr_pages;
-
- unsigned nr, tail;
-
- struct page *internal_pages[AIO_RING_PAGES];
-};
-
-struct kioctx {
- atomic_t users;
- int dead;
- struct mm_struct *mm;
-
- /* This needs improving */
- unsigned long user_id;
- struct hlist_node list;
-
- wait_queue_head_t wait;
-
- spinlock_t ctx_lock;
-
- int reqs_active;
- struct list_head active_reqs; /* used for cancellation */
- struct list_head run_list; /* used for kicked reqs */
-
- /* sys_io_setup currently limits this to an unsigned int */
- unsigned max_reqs;
-
- struct aio_ring_info ring_info;
-
- struct delayed_work wq;
-
- struct rcu_head rcu_head;
-};
-
-/* prototypes */
-extern unsigned aio_max_size;
-
-#ifdef CONFIG_AIO
-extern ssize_t wait_on_sync_kiocb(struct kiocb *iocb);
-extern int aio_put_req(struct kiocb *iocb);
-extern void kick_iocb(struct kiocb *iocb);
-extern int aio_complete(struct kiocb *iocb, long res, long res2);
-struct mm_struct;
-extern void exit_aio(struct mm_struct *mm);
-extern long do_io_submit(aio_context_t ctx_id, long nr,
- struct iocb __user *__user *iocbpp, bool compat);
-#else
-static inline ssize_t wait_on_sync_kiocb(struct kiocb *iocb) { return 0; }
-static inline int aio_put_req(struct kiocb *iocb) { return 0; }
-static inline void kick_iocb(struct kiocb *iocb) { }
-static inline int aio_complete(struct kiocb *iocb, long res, long res2) { return 0; }
-struct mm_struct;
-static inline void exit_aio(struct mm_struct *mm) { }
-static inline long do_io_submit(aio_context_t ctx_id, long nr,
- struct iocb __user * __user *iocbpp,
- bool compat) { return 0; }
-#endif /* CONFIG_AIO */
-
-static inline struct kiocb *list_kiocb(struct list_head *h)
-{
- return list_entry(h, struct kiocb, ki_list);
-}
-
-/* for sysctl: */
-extern unsigned long aio_nr;
-extern unsigned long aio_max_nr;
-
-#endif /* __LINUX__AIO_H */
diff --git a/ANDROID_3.4.5/include/linux/aio_abi.h b/ANDROID_3.4.5/include/linux/aio_abi.h
deleted file mode 100644
index 86fa7a71..00000000
--- a/ANDROID_3.4.5/include/linux/aio_abi.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/* include/linux/aio_abi.h
- *
- * Copyright 2000,2001,2002 Red Hat.
- *
- * Written by Benjamin LaHaise <bcrl@kvack.org>
- *
- * Distribute under the terms of the GPLv2 (see ../../COPYING) or under
- * the following terms.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation is hereby granted, provided that the above copyright
- * notice appears in all copies. This software is provided without any
- * warranty, express or implied. Red Hat makes no representations about
- * the suitability of this software for any purpose.
- *
- * IN NO EVENT SHALL RED HAT BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
- * SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF
- * THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF RED HAT HAS BEEN ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * RED HAT DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND
- * RED HAT HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES,
- * ENHANCEMENTS, OR MODIFICATIONS.
- */
-#ifndef __LINUX__AIO_ABI_H
-#define __LINUX__AIO_ABI_H
-
-#include <linux/types.h>
-#include <asm/byteorder.h>
-
-typedef __kernel_ulong_t aio_context_t;
-
-enum {
- IOCB_CMD_PREAD = 0,
- IOCB_CMD_PWRITE = 1,
- IOCB_CMD_FSYNC = 2,
- IOCB_CMD_FDSYNC = 3,
- /* These two are experimental.
- * IOCB_CMD_PREADX = 4,
- * IOCB_CMD_POLL = 5,
- */
- IOCB_CMD_NOOP = 6,
- IOCB_CMD_PREADV = 7,
- IOCB_CMD_PWRITEV = 8,
-};
-
-/*
- * Valid flags for the "aio_flags" member of the "struct iocb".
- *
- * IOCB_FLAG_RESFD - Set if the "aio_resfd" member of the "struct iocb"
- * is valid.
- */
-#define IOCB_FLAG_RESFD (1 << 0)
-
-/* read() from /dev/aio returns these structures. */
-struct io_event {
- __u64 data; /* the data field from the iocb */
- __u64 obj; /* what iocb this event came from */
- __s64 res; /* result code for this event */
- __s64 res2; /* secondary result */
-};
-
-#if defined(__LITTLE_ENDIAN)
-#define PADDED(x,y) x, y
-#elif defined(__BIG_ENDIAN)
-#define PADDED(x,y) y, x
-#else
-#error edit for your odd byteorder.
-#endif
-
-/*
- * we always use a 64bit off_t when communicating
- * with userland. its up to libraries to do the
- * proper padding and aio_error abstraction
- */
-
-struct iocb {
- /* these are internal to the kernel/libc. */
- __u64 aio_data; /* data to be returned in event's data */
- __u32 PADDED(aio_key, aio_reserved1);
- /* the kernel sets aio_key to the req # */
-
- /* common fields */
- __u16 aio_lio_opcode; /* see IOCB_CMD_ above */
- __s16 aio_reqprio;
- __u32 aio_fildes;
-
- __u64 aio_buf;
- __u64 aio_nbytes;
- __s64 aio_offset;
-
- /* extra parameters */
- __u64 aio_reserved2; /* TODO: use this for a (struct sigevent *) */
-
- /* flags for the "struct iocb" */
- __u32 aio_flags;
-
- /*
- * if the IOCB_FLAG_RESFD flag of "aio_flags" is set, this is an
- * eventfd to signal AIO readiness to
- */
- __u32 aio_resfd;
-}; /* 64 bytes */
-
-#undef IFBIG
-#undef IFLITTLE
-
-#endif /* __LINUX__AIO_ABI_H */
-
diff --git a/ANDROID_3.4.5/include/linux/akm8975.h b/ANDROID_3.4.5/include/linux/akm8975.h
deleted file mode 100644
index 6a7c4326..00000000
--- a/ANDROID_3.4.5/include/linux/akm8975.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Definitions for akm8975 compass chip.
- */
-#ifndef AKM8975_H
-#define AKM8975_H
-
-#include <linux/ioctl.h>
-
-/*! \name AK8975 operation mode
- \anchor AK8975_Mode
- Defines an operation mode of the AK8975.*/
-/*! @{*/
-#define AK8975_MODE_SNG_MEASURE 0x01
-#define AK8975_MODE_SELF_TEST 0x08
-#define AK8975_MODE_FUSE_ACCESS 0x0F
-#define AK8975_MODE_POWER_DOWN 0x00
-/*! @}*/
-
-#define RBUFF_SIZE 8 /* Rx buffer size */
-
-/*! \name AK8975 register address
-\anchor AK8975_REG
-Defines a register address of the AK8975.*/
-/*! @{*/
-#define AK8975_REG_WIA 0x00
-#define AK8975_REG_INFO 0x01
-#define AK8975_REG_ST1 0x02
-#define AK8975_REG_HXL 0x03
-#define AK8975_REG_HXH 0x04
-#define AK8975_REG_HYL 0x05
-#define AK8975_REG_HYH 0x06
-#define AK8975_REG_HZL 0x07
-#define AK8975_REG_HZH 0x08
-#define AK8975_REG_ST2 0x09
-#define AK8975_REG_CNTL 0x0A
-#define AK8975_REG_RSV 0x0B
-#define AK8975_REG_ASTC 0x0C
-#define AK8975_REG_TS1 0x0D
-#define AK8975_REG_TS2 0x0E
-#define AK8975_REG_I2CDIS 0x0F
-/*! @}*/
-
-/*! \name AK8975 fuse-rom address
-\anchor AK8975_FUSE
-Defines a read-only address of the fuse ROM of the AK8975.*/
-/*! @{*/
-#define AK8975_FUSE_ASAX 0x10
-#define AK8975_FUSE_ASAY 0x11
-#define AK8975_FUSE_ASAZ 0x12
-/*! @}*/
-
-#define AKMIO 0xA1
-
-/* IOCTLs for AKM library */
-#define ECS_IOCTL_WRITE _IOW(AKMIO, 0x02, char[5])
-#define ECS_IOCTL_READ _IOWR(AKMIO, 0x03, char[5])
-#define ECS_IOCTL_GETDATA _IOR(AKMIO, 0x08, char[RBUFF_SIZE])
-#define ECS_IOCTL_SET_YPR _IOW(AKMIO, 0x0C, short[12])
-#define ECS_IOCTL_GET_OPEN_STATUS _IOR(AKMIO, 0x0D, int)
-#define ECS_IOCTL_GET_CLOSE_STATUS _IOR(AKMIO, 0x0E, int)
-#define ECS_IOCTL_GET_DELAY _IOR(AKMIO, 0x30, short)
-
-/* IOCTLs for APPs */
-#define ECS_IOCTL_APP_SET_MFLAG _IOW(AKMIO, 0x11, short)
-#define ECS_IOCTL_APP_GET_MFLAG _IOW(AKMIO, 0x12, short)
-#define ECS_IOCTL_APP_SET_AFLAG _IOW(AKMIO, 0x13, short)
-#define ECS_IOCTL_APP_GET_AFLAG _IOR(AKMIO, 0x14, short)
-#define ECS_IOCTL_APP_SET_DELAY _IOW(AKMIO, 0x18, short)
-#define ECS_IOCTL_APP_GET_DELAY ECS_IOCTL_GET_DELAY
-/* Set raw magnetic vector flag */
-#define ECS_IOCTL_APP_SET_MVFLAG _IOW(AKMIO, 0x19, short)
-/* Get raw magnetic vector flag */
-#define ECS_IOCTL_APP_GET_MVFLAG _IOR(AKMIO, 0x1A, short)
-#define ECS_IOCTL_APP_SET_TFLAG _IOR(AKMIO, 0x15, short)
-
-
-struct akm8975_platform_data {
- int intr;
-
- int (*init)(void);
- void (*exit)(void);
- int (*power_on)(void);
- int (*power_off)(void);
-};
-
-#endif
-
diff --git a/ANDROID_3.4.5/include/linux/alarmtimer.h b/ANDROID_3.4.5/include/linux/alarmtimer.h
deleted file mode 100644
index 96c5c249..00000000
--- a/ANDROID_3.4.5/include/linux/alarmtimer.h
+++ /dev/null
@@ -1,82 +0,0 @@
-#ifndef _LINUX_ALARMTIMER_H
-#define _LINUX_ALARMTIMER_H
-
-#include <linux/time.h>
-#include <linux/hrtimer.h>
-#include <linux/timerqueue.h>
-#include <linux/rtc.h>
-
-enum alarmtimer_type {
- ALARM_REALTIME,
- ALARM_BOOTTIME,
-
- ALARM_NUMTYPE,
-};
-
-enum alarmtimer_restart {
- ALARMTIMER_NORESTART,
- ALARMTIMER_RESTART,
-};
-
-
-#define ALARMTIMER_STATE_INACTIVE 0x00
-#define ALARMTIMER_STATE_ENQUEUED 0x01
-#define ALARMTIMER_STATE_CALLBACK 0x02
-
-/**
- * struct alarm - Alarm timer structure
- * @node: timerqueue node for adding to the event list this value
- * also includes the expiration time.
- * @period: Period for recuring alarms
- * @function: Function pointer to be executed when the timer fires.
- * @type: Alarm type (BOOTTIME/REALTIME)
- * @enabled: Flag that represents if the alarm is set to fire or not
- * @data: Internal data value.
- */
-struct alarm {
- struct timerqueue_node node;
- enum alarmtimer_restart (*function)(struct alarm *, ktime_t now);
- enum alarmtimer_type type;
- int state;
- void *data;
-};
-
-void alarm_init(struct alarm *alarm, enum alarmtimer_type type,
- enum alarmtimer_restart (*function)(struct alarm *, ktime_t));
-void alarm_start(struct alarm *alarm, ktime_t start);
-int alarm_try_to_cancel(struct alarm *alarm);
-int alarm_cancel(struct alarm *alarm);
-
-u64 alarm_forward(struct alarm *alarm, ktime_t now, ktime_t interval);
-
-/*
- * A alarmtimer is active, when it is enqueued into timerqueue or the
- * callback function is running.
- */
-static inline int alarmtimer_active(const struct alarm *timer)
-{
- return timer->state != ALARMTIMER_STATE_INACTIVE;
-}
-
-/*
- * Helper function to check, whether the timer is on one of the queues
- */
-static inline int alarmtimer_is_queued(struct alarm *timer)
-{
- return timer->state & ALARMTIMER_STATE_ENQUEUED;
-}
-
-/*
- * Helper function to check, whether the timer is running the callback
- * function
- */
-static inline int alarmtimer_callback_running(struct alarm *timer)
-{
- return timer->state & ALARMTIMER_STATE_CALLBACK;
-}
-
-
-/* Provide way to access the rtc device being used by alarmtimers */
-struct rtc_device *alarmtimer_get_rtcdev(void);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/altera_jtaguart.h b/ANDROID_3.4.5/include/linux/altera_jtaguart.h
deleted file mode 100644
index 953b178a..00000000
--- a/ANDROID_3.4.5/include/linux/altera_jtaguart.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * altera_jtaguart.h -- Altera JTAG UART driver defines.
- */
-
-#ifndef __ALTJUART_H
-#define __ALTJUART_H
-
-#define ALTERA_JTAGUART_MAJOR 204
-#define ALTERA_JTAGUART_MINOR 186
-
-struct altera_jtaguart_platform_uart {
- unsigned long mapbase; /* Physical address base */
- unsigned int irq; /* Interrupt vector */
-};
-
-#endif /* __ALTJUART_H */
diff --git a/ANDROID_3.4.5/include/linux/altera_uart.h b/ANDROID_3.4.5/include/linux/altera_uart.h
deleted file mode 100644
index c022c82d..00000000
--- a/ANDROID_3.4.5/include/linux/altera_uart.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * altera_uart.h -- Altera UART driver defines.
- */
-
-#ifndef __ALTUART_H
-#define __ALTUART_H
-
-struct altera_uart_platform_uart {
- unsigned long mapbase; /* Physical address base */
- unsigned int irq; /* Interrupt vector */
- unsigned int uartclk; /* UART clock rate */
- unsigned int bus_shift; /* Bus shift (address stride) */
-};
-
-#endif /* __ALTUART_H */
diff --git a/ANDROID_3.4.5/include/linux/amba/bus.h b/ANDROID_3.4.5/include/linux/amba/bus.h
deleted file mode 100644
index 8d54f794..00000000
--- a/ANDROID_3.4.5/include/linux/amba/bus.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * linux/include/amba/bus.h
- *
- * This device type deals with ARM PrimeCells and anything else that
- * presents a proper CID (0xB105F00D) at the end of the I/O register
- * region or that is derived from a PrimeCell.
- *
- * Copyright (C) 2003 Deep Blue Solutions Ltd, 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 version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef ASMARM_AMBA_H
-#define ASMARM_AMBA_H
-
-#include <linux/clk.h>
-#include <linux/device.h>
-#include <linux/mod_devicetable.h>
-#include <linux/err.h>
-#include <linux/resource.h>
-#include <linux/regulator/consumer.h>
-
-#define AMBA_NR_IRQS 2
-#define AMBA_CID 0xb105f00d
-
-struct clk;
-
-struct amba_device {
- struct device dev;
- struct resource res;
- struct clk *pclk;
- u64 dma_mask;
- unsigned int periphid;
- unsigned int irq[AMBA_NR_IRQS];
-};
-
-struct amba_driver {
- struct device_driver drv;
- int (*probe)(struct amba_device *, const struct amba_id *);
- int (*remove)(struct amba_device *);
- void (*shutdown)(struct amba_device *);
- int (*suspend)(struct amba_device *, pm_message_t);
- int (*resume)(struct amba_device *);
- const struct amba_id *id_table;
-};
-
-enum amba_vendor {
- AMBA_VENDOR_ARM = 0x41,
- AMBA_VENDOR_ST = 0x80,
-};
-
-extern struct bus_type amba_bustype;
-
-#define to_amba_device(d) container_of(d, struct amba_device, dev)
-
-#define amba_get_drvdata(d) dev_get_drvdata(&d->dev)
-#define amba_set_drvdata(d,p) dev_set_drvdata(&d->dev, p)
-
-int amba_driver_register(struct amba_driver *);
-void amba_driver_unregister(struct amba_driver *);
-struct amba_device *amba_device_alloc(const char *, resource_size_t, size_t);
-void amba_device_put(struct amba_device *);
-int amba_device_add(struct amba_device *, struct resource *);
-int amba_device_register(struct amba_device *, struct resource *);
-void amba_device_unregister(struct amba_device *);
-struct amba_device *amba_find_device(const char *, struct device *, unsigned int, unsigned int);
-int amba_request_regions(struct amba_device *, const char *);
-void amba_release_regions(struct amba_device *);
-
-#define amba_pclk_enable(d) \
- (IS_ERR((d)->pclk) ? 0 : clk_enable((d)->pclk))
-
-#define amba_pclk_disable(d) \
- do { if (!IS_ERR((d)->pclk)) clk_disable((d)->pclk); } while (0)
-
-/* Some drivers don't use the struct amba_device */
-#define AMBA_CONFIG_BITS(a) (((a) >> 24) & 0xff)
-#define AMBA_REV_BITS(a) (((a) >> 20) & 0x0f)
-#define AMBA_MANF_BITS(a) (((a) >> 12) & 0xff)
-#define AMBA_PART_BITS(a) ((a) & 0xfff)
-
-#define amba_config(d) AMBA_CONFIG_BITS((d)->periphid)
-#define amba_rev(d) AMBA_REV_BITS((d)->periphid)
-#define amba_manf(d) AMBA_MANF_BITS((d)->periphid)
-#define amba_part(d) AMBA_PART_BITS((d)->periphid)
-
-#define __AMBA_DEV(busid, data, mask) \
- { \
- .coherent_dma_mask = mask, \
- .init_name = busid, \
- .platform_data = data, \
- }
-
-/*
- * APB devices do not themselves have the ability to address memory,
- * so DMA masks should be zero (much like USB peripheral devices.)
- * The DMA controller DMA masks should be used instead (much like
- * USB host controllers in conventional PCs.)
- */
-#define AMBA_APB_DEVICE(name, busid, id, base, irqs, data) \
-struct amba_device name##_device = { \
- .dev = __AMBA_DEV(busid, data, 0), \
- .res = DEFINE_RES_MEM(base, SZ_4K), \
- .irq = irqs, \
- .periphid = id, \
-}
-
-/*
- * AHB devices are DMA capable, so set their DMA masks
- */
-#define AMBA_AHB_DEVICE(name, busid, id, base, irqs, data) \
-struct amba_device name##_device = { \
- .dev = __AMBA_DEV(busid, data, ~0ULL), \
- .res = DEFINE_RES_MEM(base, SZ_4K), \
- .dma_mask = ~0ULL, \
- .irq = irqs, \
- .periphid = id, \
-}
-
-/*
- * module_amba_driver() - Helper macro for drivers that don't do anything
- * special in module init/exit. This eliminates a lot of boilerplate. Each
- * module may only use this macro once, and calling it replaces module_init()
- * and module_exit()
- */
-#define module_amba_driver(__amba_drv) \
- module_driver(__amba_drv, amba_driver_register, amba_driver_unregister)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/amba/clcd.h b/ANDROID_3.4.5/include/linux/amba/clcd.h
deleted file mode 100644
index e82e3ee2..00000000
--- a/ANDROID_3.4.5/include/linux/amba/clcd.h
+++ /dev/null
@@ -1,330 +0,0 @@
-/*
- * linux/include/asm-arm/hardware/amba_clcd.h -- Integrator LCD panel.
- *
- * David A Rusling
- *
- * Copyright (C) 2001 ARM Limited
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file COPYING in the main directory of this archive
- * for more details.
- */
-#include <linux/fb.h>
-
-/*
- * CLCD Controller Internal Register addresses
- */
-#define CLCD_TIM0 0x00000000
-#define CLCD_TIM1 0x00000004
-#define CLCD_TIM2 0x00000008
-#define CLCD_TIM3 0x0000000c
-#define CLCD_UBAS 0x00000010
-#define CLCD_LBAS 0x00000014
-
-#define CLCD_PL110_IENB 0x00000018
-#define CLCD_PL110_CNTL 0x0000001c
-#define CLCD_PL110_STAT 0x00000020
-#define CLCD_PL110_INTR 0x00000024
-#define CLCD_PL110_UCUR 0x00000028
-#define CLCD_PL110_LCUR 0x0000002C
-
-#define CLCD_PL111_CNTL 0x00000018
-#define CLCD_PL111_IENB 0x0000001c
-#define CLCD_PL111_RIS 0x00000020
-#define CLCD_PL111_MIS 0x00000024
-#define CLCD_PL111_ICR 0x00000028
-#define CLCD_PL111_UCUR 0x0000002c
-#define CLCD_PL111_LCUR 0x00000030
-
-#define CLCD_PALL 0x00000200
-#define CLCD_PALETTE 0x00000200
-
-#define TIM2_CLKSEL (1 << 5)
-#define TIM2_IVS (1 << 11)
-#define TIM2_IHS (1 << 12)
-#define TIM2_IPC (1 << 13)
-#define TIM2_IOE (1 << 14)
-#define TIM2_BCD (1 << 26)
-
-#define CNTL_LCDEN (1 << 0)
-#define CNTL_LCDBPP1 (0 << 1)
-#define CNTL_LCDBPP2 (1 << 1)
-#define CNTL_LCDBPP4 (2 << 1)
-#define CNTL_LCDBPP8 (3 << 1)
-#define CNTL_LCDBPP16 (4 << 1)
-#define CNTL_LCDBPP16_565 (6 << 1)
-#define CNTL_LCDBPP16_444 (7 << 1)
-#define CNTL_LCDBPP24 (5 << 1)
-#define CNTL_LCDBW (1 << 4)
-#define CNTL_LCDTFT (1 << 5)
-#define CNTL_LCDMONO8 (1 << 6)
-#define CNTL_LCDDUAL (1 << 7)
-#define CNTL_BGR (1 << 8)
-#define CNTL_BEBO (1 << 9)
-#define CNTL_BEPO (1 << 10)
-#define CNTL_LCDPWR (1 << 11)
-#define CNTL_LCDVCOMP(x) ((x) << 12)
-#define CNTL_LDMAFIFOTIME (1 << 15)
-#define CNTL_WATERMARK (1 << 16)
-
-enum {
- /* individual formats */
- CLCD_CAP_RGB444 = (1 << 0),
- CLCD_CAP_RGB5551 = (1 << 1),
- CLCD_CAP_RGB565 = (1 << 2),
- CLCD_CAP_RGB888 = (1 << 3),
- CLCD_CAP_BGR444 = (1 << 4),
- CLCD_CAP_BGR5551 = (1 << 5),
- CLCD_CAP_BGR565 = (1 << 6),
- CLCD_CAP_BGR888 = (1 << 7),
-
- /* connection layouts */
- CLCD_CAP_444 = CLCD_CAP_RGB444 | CLCD_CAP_BGR444,
- CLCD_CAP_5551 = CLCD_CAP_RGB5551 | CLCD_CAP_BGR5551,
- CLCD_CAP_565 = CLCD_CAP_RGB565 | CLCD_CAP_BGR565,
- CLCD_CAP_888 = CLCD_CAP_RGB888 | CLCD_CAP_BGR888,
-
- /* red/blue ordering */
- CLCD_CAP_RGB = CLCD_CAP_RGB444 | CLCD_CAP_RGB5551 |
- CLCD_CAP_RGB565 | CLCD_CAP_RGB888,
- CLCD_CAP_BGR = CLCD_CAP_BGR444 | CLCD_CAP_BGR5551 |
- CLCD_CAP_BGR565 | CLCD_CAP_BGR888,
-
- CLCD_CAP_ALL = CLCD_CAP_BGR | CLCD_CAP_RGB,
-};
-
-struct clcd_panel {
- struct fb_videomode mode;
- signed short width; /* width in mm */
- signed short height; /* height in mm */
- u32 tim2;
- u32 tim3;
- u32 cntl;
- u32 caps;
- unsigned int bpp:8,
- fixedtimings:1,
- grayscale:1;
- unsigned int connector;
-};
-
-struct clcd_regs {
- u32 tim0;
- u32 tim1;
- u32 tim2;
- u32 tim3;
- u32 cntl;
- unsigned long pixclock;
-};
-
-struct clcd_fb;
-
-/*
- * the board-type specific routines
- */
-struct clcd_board {
- const char *name;
-
- /*
- * Optional. Hardware capability flags.
- */
- u32 caps;
-
- /*
- * Optional. Check whether the var structure is acceptable
- * for this display.
- */
- int (*check)(struct clcd_fb *fb, struct fb_var_screeninfo *var);
-
- /*
- * Compulsory. Decode fb->fb.var into regs->*. In the case of
- * fixed timing, set regs->* to the register values required.
- */
- void (*decode)(struct clcd_fb *fb, struct clcd_regs *regs);
-
- /*
- * Optional. Disable any extra display hardware.
- */
- void (*disable)(struct clcd_fb *);
-
- /*
- * Optional. Enable any extra display hardware.
- */
- void (*enable)(struct clcd_fb *);
-
- /*
- * Setup platform specific parts of CLCD driver
- */
- int (*setup)(struct clcd_fb *);
-
- /*
- * mmap the framebuffer memory
- */
- int (*mmap)(struct clcd_fb *, struct vm_area_struct *);
-
- /*
- * Remove platform specific parts of CLCD driver
- */
- void (*remove)(struct clcd_fb *);
-};
-
-struct amba_device;
-struct clk;
-
-/* this data structure describes each frame buffer device we find */
-struct clcd_fb {
- struct fb_info fb;
- struct amba_device *dev;
- struct clk *clk;
- struct clcd_panel *panel;
- struct clcd_board *board;
- void *board_data;
- void __iomem *regs;
- u16 off_ienb;
- u16 off_cntl;
- u32 clcd_cntl;
- u32 cmap[16];
- bool clk_enabled;
-};
-
-static inline void clcdfb_decode(struct clcd_fb *fb, struct clcd_regs *regs)
-{
- struct fb_var_screeninfo *var = &fb->fb.var;
- u32 val, cpl;
-
- /*
- * Program the CLCD controller registers and start the CLCD
- */
- val = ((var->xres / 16) - 1) << 2;
- val |= (var->hsync_len - 1) << 8;
- val |= (var->right_margin - 1) << 16;
- val |= (var->left_margin - 1) << 24;
- regs->tim0 = val;
-
- val = var->yres;
- if (fb->panel->cntl & CNTL_LCDDUAL)
- val /= 2;
- val -= 1;
- val |= (var->vsync_len - 1) << 10;
- val |= var->lower_margin << 16;
- val |= var->upper_margin << 24;
- regs->tim1 = val;
-
- val = fb->panel->tim2;
- val |= var->sync & FB_SYNC_HOR_HIGH_ACT ? 0 : TIM2_IHS;
- val |= var->sync & FB_SYNC_VERT_HIGH_ACT ? 0 : TIM2_IVS;
-
- cpl = var->xres_virtual;
- if (fb->panel->cntl & CNTL_LCDTFT) /* TFT */
- /* / 1 */;
- else if (!var->grayscale) /* STN color */
- cpl = cpl * 8 / 3;
- else if (fb->panel->cntl & CNTL_LCDMONO8) /* STN monochrome, 8bit */
- cpl /= 8;
- else /* STN monochrome, 4bit */
- cpl /= 4;
-
- regs->tim2 = val | ((cpl - 1) << 16);
-
- regs->tim3 = fb->panel->tim3;
-
- val = fb->panel->cntl;
- if (var->grayscale)
- val |= CNTL_LCDBW;
-
- if (fb->panel->caps && fb->board->caps &&
- var->bits_per_pixel >= 16) {
- /*
- * if board and panel supply capabilities, we can support
- * changing BGR/RGB depending on supplied parameters
- */
- if (var->red.offset == 0)
- val &= ~CNTL_BGR;
- else
- val |= CNTL_BGR;
- }
-
- switch (var->bits_per_pixel) {
- case 1:
- val |= CNTL_LCDBPP1;
- break;
- case 2:
- val |= CNTL_LCDBPP2;
- break;
- case 4:
- val |= CNTL_LCDBPP4;
- break;
- case 8:
- val |= CNTL_LCDBPP8;
- break;
- case 16:
- /*
- * PL110 cannot choose between 5551 and 565 modes in its
- * control register. It is possible to use 565 with
- * custom external wiring.
- */
- if (amba_part(fb->dev) == 0x110 ||
- var->green.length == 5)
- val |= CNTL_LCDBPP16;
- else if (var->green.length == 6)
- val |= CNTL_LCDBPP16_565;
- else
- val |= CNTL_LCDBPP16_444;
- break;
- case 32:
- val |= CNTL_LCDBPP24;
- break;
- }
-
- regs->cntl = val;
- regs->pixclock = var->pixclock;
-}
-
-static inline int clcdfb_check(struct clcd_fb *fb, struct fb_var_screeninfo *var)
-{
- var->xres_virtual = var->xres = (var->xres + 15) & ~15;
- var->yres_virtual = var->yres = (var->yres + 1) & ~1;
-
-#define CHECK(e,l,h) (var->e < l || var->e > h)
- if (CHECK(right_margin, (5+1), 256) || /* back porch */
- CHECK(left_margin, (5+1), 256) || /* front porch */
- CHECK(hsync_len, (5+1), 256) ||
- var->xres > 4096 ||
- var->lower_margin > 255 || /* back porch */
- var->upper_margin > 255 || /* front porch */
- var->vsync_len > 32 ||
- var->yres > 1024)
- return -EINVAL;
-#undef CHECK
-
- /* single panel mode: PCD = max(PCD, 1) */
- /* dual panel mode: PCD = max(PCD, 5) */
-
- /*
- * You can't change the grayscale setting, and
- * we can only do non-interlaced video.
- */
- if (var->grayscale != fb->fb.var.grayscale ||
- (var->vmode & FB_VMODE_MASK) != FB_VMODE_NONINTERLACED)
- return -EINVAL;
-
-#define CHECK(e) (var->e != fb->fb.var.e)
- if (fb->panel->fixedtimings &&
- (CHECK(xres) ||
- CHECK(yres) ||
- CHECK(bits_per_pixel) ||
- CHECK(pixclock) ||
- CHECK(left_margin) ||
- CHECK(right_margin) ||
- CHECK(upper_margin) ||
- CHECK(lower_margin) ||
- CHECK(hsync_len) ||
- CHECK(vsync_len) ||
- CHECK(sync)))
- return -EINVAL;
-#undef CHECK
-
- var->nonstd = 0;
- var->accel_flags = 0;
-
- return 0;
-}
diff --git a/ANDROID_3.4.5/include/linux/amba/kmi.h b/ANDROID_3.4.5/include/linux/amba/kmi.h
deleted file mode 100644
index a39e5be7..00000000
--- a/ANDROID_3.4.5/include/linux/amba/kmi.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * linux/include/asm-arm/hardware/amba_kmi.h
- *
- * Internal header file for AMBA KMI ports
- *
- * Copyright (C) 2000 Deep Blue Solutions 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; 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
- *
- *
- * ---------------------------------------------------------------------------
- * From ARM PrimeCell(tm) PS2 Keyboard/Mouse Interface (PL050) Technical
- * Reference Manual - ARM DDI 0143B - see http://www.arm.com/
- * ---------------------------------------------------------------------------
- */
-#ifndef ASM_ARM_HARDWARE_AMBA_KMI_H
-#define ASM_ARM_HARDWARE_AMBA_KMI_H
-
-/*
- * KMI control register:
- * KMICR_TYPE 0 = PS2/AT mode, 1 = No line control bit mode
- * KMICR_RXINTREN 1 = enable RX interrupts
- * KMICR_TXINTREN 1 = enable TX interrupts
- * KMICR_EN 1 = enable KMI
- * KMICR_FD 1 = force KMI data low
- * KMICR_FC 1 = force KMI clock low
- */
-#define KMICR (KMI_BASE + 0x00)
-#define KMICR_TYPE (1 << 5)
-#define KMICR_RXINTREN (1 << 4)
-#define KMICR_TXINTREN (1 << 3)
-#define KMICR_EN (1 << 2)
-#define KMICR_FD (1 << 1)
-#define KMICR_FC (1 << 0)
-
-/*
- * KMI status register:
- * KMISTAT_TXEMPTY 1 = transmitter register empty
- * KMISTAT_TXBUSY 1 = currently sending data
- * KMISTAT_RXFULL 1 = receiver register ready to be read
- * KMISTAT_RXBUSY 1 = currently receiving data
- * KMISTAT_RXPARITY parity of last databyte received
- * KMISTAT_IC current level of KMI clock input
- * KMISTAT_ID current level of KMI data input
- */
-#define KMISTAT (KMI_BASE + 0x04)
-#define KMISTAT_TXEMPTY (1 << 6)
-#define KMISTAT_TXBUSY (1 << 5)
-#define KMISTAT_RXFULL (1 << 4)
-#define KMISTAT_RXBUSY (1 << 3)
-#define KMISTAT_RXPARITY (1 << 2)
-#define KMISTAT_IC (1 << 1)
-#define KMISTAT_ID (1 << 0)
-
-/*
- * KMI data register
- */
-#define KMIDATA (KMI_BASE + 0x08)
-
-/*
- * KMI clock divisor: to generate 8MHz internal clock
- * div = (ref / 8MHz) - 1; 0 <= div <= 15
- */
-#define KMICLKDIV (KMI_BASE + 0x0c)
-
-/*
- * KMI interrupt register:
- * KMIIR_TXINTR 1 = transmit interrupt asserted
- * KMIIR_RXINTR 1 = receive interrupt asserted
- */
-#define KMIIR (KMI_BASE + 0x10)
-#define KMIIR_TXINTR (1 << 1)
-#define KMIIR_RXINTR (1 << 0)
-
-/*
- * The size of the KMI primecell
- */
-#define KMI_SIZE (0x100)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/amba/mmci.h b/ANDROID_3.4.5/include/linux/amba/mmci.h
deleted file mode 100644
index 9d1d9caf..00000000
--- a/ANDROID_3.4.5/include/linux/amba/mmci.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * include/linux/amba/mmci.h
- */
-#ifndef AMBA_MMCI_H
-#define AMBA_MMCI_H
-
-#include <linux/mmc/host.h>
-#include <linux/mmc/card.h>
-#include <linux/mmc/sdio_func.h>
-
-struct embedded_sdio_data {
- struct sdio_cis cis;
- struct sdio_cccr cccr;
- struct sdio_embedded_func *funcs;
- int num_funcs;
-};
-
-
-/*
- * These defines is places here due to access is needed from machine
- * configuration files. The ST Micro version does not have ROD and
- * reuse the voltage registers for direction settings.
- */
-#define MCI_ST_DATA2DIREN (1 << 2)
-#define MCI_ST_CMDDIREN (1 << 3)
-#define MCI_ST_DATA0DIREN (1 << 4)
-#define MCI_ST_DATA31DIREN (1 << 5)
-#define MCI_ST_FBCLKEN (1 << 7)
-#define MCI_ST_DATA74DIREN (1 << 8)
-
-/* Just some dummy forwarding */
-struct dma_chan;
-
-/**
- * struct mmci_platform_data - platform configuration for the MMCI
- * (also known as PL180) block.
- * @f_max: the maximum operational frequency for this host in this
- * platform configuration. When this is specified it takes precedence
- * over the module parameter for the same frequency.
- * @ocr_mask: available voltages on the 4 pins from the block, this
- * is ignored if a regulator is used, see the MMC_VDD_* masks in
- * mmc/host.h
- * @ios_handler: a callback function to act on specfic ios changes,
- * used for example to control a levelshifter
- * mask into a value to be binary (or set some other custom bits
- * in MMCIPWR) or:ed and written into the MMCIPWR register of the
- * block. May also control external power based on the power_mode.
- * @status: if no GPIO read function was given to the block in
- * gpio_wp (below) this function will be called to determine
- * whether a card is present in the MMC slot or not
- * @gpio_wp: read this GPIO pin to see if the card is write protected
- * @gpio_cd: read this GPIO pin to detect card insertion
- * @cd_invert: true if the gpio_cd pin value is active low
- * @capabilities: the capabilities of the block as implemented in
- * this platform, signify anything MMC_CAP_* from mmc/host.h
- * @capabilities2: more capabilities, MMC_CAP2_* from mmc/host.h
- * @sigdir: a bit field indicating for what bits in the MMC bus the host
- * should enable signal direction indication.
- * @dma_filter: function used to select an appropriate RX and TX
- * DMA channel to be used for DMA, if and only if you're deploying the
- * generic DMA engine
- * @dma_rx_param: parameter passed to the DMA allocation
- * filter in order to select an appropriate RX channel. If
- * there is a bidirectional RX+TX channel, then just specify
- * this and leave dma_tx_param set to NULL
- * @dma_tx_param: parameter passed to the DMA allocation
- * filter in order to select an appropriate TX channel. If this
- * is NULL the driver will attempt to use the RX channel as a
- * bidirectional channel
- */
-struct mmci_platform_data {
- unsigned int f_max;
- unsigned int ocr_mask;
- int (*ios_handler)(struct device *, struct mmc_ios *);
- unsigned int (*status)(struct device *);
- int gpio_wp;
- int gpio_cd;
- bool cd_invert;
- unsigned long capabilities;
- unsigned long capabilities2;
- u32 sigdir;
- bool (*dma_filter)(struct dma_chan *chan, void *filter_param);
- void *dma_rx_param;
- void *dma_tx_param;
- unsigned int status_irq;
- struct embedded_sdio_data *embedded_sdio;
- int (*register_status_notify)(void (*callback)(int card_present, void *dev_id), void *dev_id);
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/amba/pl022.h b/ANDROID_3.4.5/include/linux/amba/pl022.h
deleted file mode 100644
index 76dd1b19..00000000
--- a/ANDROID_3.4.5/include/linux/amba/pl022.h
+++ /dev/null
@@ -1,300 +0,0 @@
-/*
- * include/linux/amba/pl022.h
- *
- * Copyright (C) 2008-2009 ST-Ericsson AB
- * Copyright (C) 2006 STMicroelectronics Pvt. Ltd.
- *
- * Author: Linus Walleij <linus.walleij@stericsson.com>
- *
- * Initial version inspired by:
- * linux-2.6.17-rc3-mm1/drivers/spi/pxa2xx_spi.c
- * Initial adoption to PL022 by:
- * Sachin Verma <sachin.verma@st.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.
- */
-
-#ifndef _SSP_PL022_H
-#define _SSP_PL022_H
-
-#include <linux/types.h>
-
-/**
- * whether SSP is in loopback mode or not
- */
-enum ssp_loopback {
- LOOPBACK_DISABLED,
- LOOPBACK_ENABLED
-};
-
-/**
- * enum ssp_interface - interfaces allowed for this SSP Controller
- * @SSP_INTERFACE_MOTOROLA_SPI: Motorola Interface
- * @SSP_INTERFACE_TI_SYNC_SERIAL: Texas Instrument Synchronous Serial
- * interface
- * @SSP_INTERFACE_NATIONAL_MICROWIRE: National Semiconductor Microwire
- * interface
- * @SSP_INTERFACE_UNIDIRECTIONAL: Unidirectional interface (STn8810
- * &STn8815 only)
- */
-enum ssp_interface {
- SSP_INTERFACE_MOTOROLA_SPI,
- SSP_INTERFACE_TI_SYNC_SERIAL,
- SSP_INTERFACE_NATIONAL_MICROWIRE,
- SSP_INTERFACE_UNIDIRECTIONAL
-};
-
-/**
- * enum ssp_hierarchy - whether SSP is configured as Master or Slave
- */
-enum ssp_hierarchy {
- SSP_MASTER,
- SSP_SLAVE
-};
-
-/**
- * enum ssp_clock_params - clock parameters, to set SSP clock at a
- * desired freq
- */
-struct ssp_clock_params {
- u8 cpsdvsr; /* value from 2 to 254 (even only!) */
- u8 scr; /* value from 0 to 255 */
-};
-
-/**
- * enum ssp_rx_endian - endianess of Rx FIFO Data
- * this feature is only available in ST versionf of PL022
- */
-enum ssp_rx_endian {
- SSP_RX_MSB,
- SSP_RX_LSB
-};
-
-/**
- * enum ssp_tx_endian - endianess of Tx FIFO Data
- */
-enum ssp_tx_endian {
- SSP_TX_MSB,
- SSP_TX_LSB
-};
-
-/**
- * enum ssp_data_size - number of bits in one data element
- */
-enum ssp_data_size {
- SSP_DATA_BITS_4 = 0x03, SSP_DATA_BITS_5, SSP_DATA_BITS_6,
- SSP_DATA_BITS_7, SSP_DATA_BITS_8, SSP_DATA_BITS_9,
- SSP_DATA_BITS_10, SSP_DATA_BITS_11, SSP_DATA_BITS_12,
- SSP_DATA_BITS_13, SSP_DATA_BITS_14, SSP_DATA_BITS_15,
- SSP_DATA_BITS_16, SSP_DATA_BITS_17, SSP_DATA_BITS_18,
- SSP_DATA_BITS_19, SSP_DATA_BITS_20, SSP_DATA_BITS_21,
- SSP_DATA_BITS_22, SSP_DATA_BITS_23, SSP_DATA_BITS_24,
- SSP_DATA_BITS_25, SSP_DATA_BITS_26, SSP_DATA_BITS_27,
- SSP_DATA_BITS_28, SSP_DATA_BITS_29, SSP_DATA_BITS_30,
- SSP_DATA_BITS_31, SSP_DATA_BITS_32
-};
-
-/**
- * enum ssp_mode - SSP mode of operation (Communication modes)
- */
-enum ssp_mode {
- INTERRUPT_TRANSFER,
- POLLING_TRANSFER,
- DMA_TRANSFER
-};
-
-/**
- * enum ssp_rx_level_trig - receive FIFO watermark level which triggers
- * IT: Interrupt fires when _N_ or more elements in RX FIFO.
- */
-enum ssp_rx_level_trig {
- SSP_RX_1_OR_MORE_ELEM,
- SSP_RX_4_OR_MORE_ELEM,
- SSP_RX_8_OR_MORE_ELEM,
- SSP_RX_16_OR_MORE_ELEM,
- SSP_RX_32_OR_MORE_ELEM
-};
-
-/**
- * Transmit FIFO watermark level which triggers (IT Interrupt fires
- * when _N_ or more empty locations in TX FIFO)
- */
-enum ssp_tx_level_trig {
- SSP_TX_1_OR_MORE_EMPTY_LOC,
- SSP_TX_4_OR_MORE_EMPTY_LOC,
- SSP_TX_8_OR_MORE_EMPTY_LOC,
- SSP_TX_16_OR_MORE_EMPTY_LOC,
- SSP_TX_32_OR_MORE_EMPTY_LOC
-};
-
-/**
- * enum SPI Clock Phase - clock phase (Motorola SPI interface only)
- * @SSP_CLK_FIRST_EDGE: Receive data on first edge transition (actual direction depends on polarity)
- * @SSP_CLK_SECOND_EDGE: Receive data on second edge transition (actual direction depends on polarity)
- */
-enum ssp_spi_clk_phase {
- SSP_CLK_FIRST_EDGE,
- SSP_CLK_SECOND_EDGE
-};
-
-/**
- * enum SPI Clock Polarity - clock polarity (Motorola SPI interface only)
- * @SSP_CLK_POL_IDLE_LOW: Low inactive level
- * @SSP_CLK_POL_IDLE_HIGH: High inactive level
- */
-enum ssp_spi_clk_pol {
- SSP_CLK_POL_IDLE_LOW,
- SSP_CLK_POL_IDLE_HIGH
-};
-
-/**
- * Microwire Conrol Lengths Command size in microwire format
- */
-enum ssp_microwire_ctrl_len {
- SSP_BITS_4 = 0x03, SSP_BITS_5, SSP_BITS_6,
- SSP_BITS_7, SSP_BITS_8, SSP_BITS_9,
- SSP_BITS_10, SSP_BITS_11, SSP_BITS_12,
- SSP_BITS_13, SSP_BITS_14, SSP_BITS_15,
- SSP_BITS_16, SSP_BITS_17, SSP_BITS_18,
- SSP_BITS_19, SSP_BITS_20, SSP_BITS_21,
- SSP_BITS_22, SSP_BITS_23, SSP_BITS_24,
- SSP_BITS_25, SSP_BITS_26, SSP_BITS_27,
- SSP_BITS_28, SSP_BITS_29, SSP_BITS_30,
- SSP_BITS_31, SSP_BITS_32
-};
-
-/**
- * enum Microwire Wait State
- * @SSP_MWIRE_WAIT_ZERO: No wait state inserted after last command bit
- * @SSP_MWIRE_WAIT_ONE: One wait state inserted after last command bit
- */
-enum ssp_microwire_wait_state {
- SSP_MWIRE_WAIT_ZERO,
- SSP_MWIRE_WAIT_ONE
-};
-
-/**
- * enum ssp_duplex - whether Full/Half Duplex on microwire, only
- * available in the ST Micro variant.
- * @SSP_MICROWIRE_CHANNEL_FULL_DUPLEX: SSPTXD becomes bi-directional,
- * SSPRXD not used
- * @SSP_MICROWIRE_CHANNEL_HALF_DUPLEX: SSPTXD is an output, SSPRXD is
- * an input.
- */
-enum ssp_duplex {
- SSP_MICROWIRE_CHANNEL_FULL_DUPLEX,
- SSP_MICROWIRE_CHANNEL_HALF_DUPLEX
-};
-
-/**
- * enum ssp_clkdelay - an optional clock delay on the feedback clock
- * only available in the ST Micro PL023 variant.
- * @SSP_FEEDBACK_CLK_DELAY_NONE: no delay, the data coming in from the
- * slave is sampled directly
- * @SSP_FEEDBACK_CLK_DELAY_1T: the incoming slave data is sampled with
- * a delay of T-dt
- * @SSP_FEEDBACK_CLK_DELAY_2T: dito with a delay if 2T-dt
- * @SSP_FEEDBACK_CLK_DELAY_3T: dito with a delay if 3T-dt
- * @SSP_FEEDBACK_CLK_DELAY_4T: dito with a delay if 4T-dt
- * @SSP_FEEDBACK_CLK_DELAY_5T: dito with a delay if 5T-dt
- * @SSP_FEEDBACK_CLK_DELAY_6T: dito with a delay if 6T-dt
- * @SSP_FEEDBACK_CLK_DELAY_7T: dito with a delay if 7T-dt
- */
-enum ssp_clkdelay {
- SSP_FEEDBACK_CLK_DELAY_NONE,
- SSP_FEEDBACK_CLK_DELAY_1T,
- SSP_FEEDBACK_CLK_DELAY_2T,
- SSP_FEEDBACK_CLK_DELAY_3T,
- SSP_FEEDBACK_CLK_DELAY_4T,
- SSP_FEEDBACK_CLK_DELAY_5T,
- SSP_FEEDBACK_CLK_DELAY_6T,
- SSP_FEEDBACK_CLK_DELAY_7T
-};
-
-/**
- * CHIP select/deselect commands
- */
-enum ssp_chip_select {
- SSP_CHIP_SELECT,
- SSP_CHIP_DESELECT
-};
-
-
-struct dma_chan;
-/**
- * struct pl022_ssp_master - device.platform_data for SPI controller devices.
- * @num_chipselect: chipselects are used to distinguish individual
- * SPI slaves, and are numbered from zero to num_chipselects - 1.
- * each slave has a chipselect signal, but it's common that not
- * every chipselect is connected to a slave.
- * @enable_dma: if true enables DMA driven transfers.
- * @dma_rx_param: parameter to locate an RX DMA channel.
- * @dma_tx_param: parameter to locate a TX DMA channel.
- * @autosuspend_delay: delay in ms following transfer completion before the
- * runtime power management system suspends the device. A setting of 0
- * indicates no delay and the device will be suspended immediately.
- * @rt: indicates the controller should run the message pump with realtime
- * priority to minimise the transfer latency on the bus.
- */
-struct pl022_ssp_controller {
- u16 bus_id;
- u8 num_chipselect;
- u8 enable_dma:1;
- bool (*dma_filter)(struct dma_chan *chan, void *filter_param);
- void *dma_rx_param;
- void *dma_tx_param;
- int autosuspend_delay;
- bool rt;
-};
-
-/**
- * struct ssp_config_chip - spi_board_info.controller_data for SPI
- * slave devices, copied to spi_device.controller_data.
- *
- * @lbm: used for test purpose to internally connect RX and TX
- * @iface: Interface type(Motorola, TI, Microwire, Universal)
- * @hierarchy: sets whether interface is master or slave
- * @slave_tx_disable: SSPTXD is disconnected (in slave mode only)
- * @clk_freq: Tune freq parameters of SSP(when in master mode)
- * @endian_rx: Endianess of Data in Rx FIFO
- * @endian_tx: Endianess of Data in Tx FIFO
- * @data_size: Width of data element(4 to 32 bits)
- * @com_mode: communication mode: polling, Interrupt or DMA
- * @rx_lev_trig: Rx FIFO watermark level (for IT & DMA mode)
- * @tx_lev_trig: Tx FIFO watermark level (for IT & DMA mode)
- * @clk_phase: Motorola SPI interface Clock phase
- * @clk_pol: Motorola SPI interface Clock polarity
- * @ctrl_len: Microwire interface: Control length
- * @wait_state: Microwire interface: Wait state
- * @duplex: Microwire interface: Full/Half duplex
- * @clkdelay: on the PL023 variant, the delay in feeback clock cycles
- * before sampling the incoming line
- * @cs_control: function pointer to board-specific function to
- * assert/deassert I/O port to control HW generation of devices chip-select.
- * @dma_xfer_type: Type of DMA xfer (Mem-to-periph or Periph-to-Periph)
- * @dma_config: DMA configuration for SSP controller and peripheral
- */
-struct pl022_config_chip {
- enum ssp_interface iface;
- enum ssp_hierarchy hierarchy;
- bool slave_tx_disable;
- struct ssp_clock_params clk_freq;
- enum ssp_mode com_mode;
- enum ssp_rx_level_trig rx_lev_trig;
- enum ssp_tx_level_trig tx_lev_trig;
- enum ssp_microwire_ctrl_len ctrl_len;
- enum ssp_microwire_wait_state wait_state;
- enum ssp_duplex duplex;
- enum ssp_clkdelay clkdelay;
- void (*cs_control) (u32 control);
-};
-
-#endif /* _SSP_PL022_H */
diff --git a/ANDROID_3.4.5/include/linux/amba/pl061.h b/ANDROID_3.4.5/include/linux/amba/pl061.h
deleted file mode 100644
index fb83c045..00000000
--- a/ANDROID_3.4.5/include/linux/amba/pl061.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#include <linux/types.h>
-
-/* platform data for the PL061 GPIO driver */
-
-struct pl061_platform_data {
- /* number of the first GPIO */
- unsigned gpio_base;
-
- /* number of the first IRQ.
- * If the IRQ functionality in not desired this must be set to 0.
- */
- unsigned irq_base;
-
- u8 directions; /* startup directions, 1: out, 0: in */
- u8 values; /* startup values */
-};
diff --git a/ANDROID_3.4.5/include/linux/amba/pl08x.h b/ANDROID_3.4.5/include/linux/amba/pl08x.h
deleted file mode 100644
index e64ce2cf..00000000
--- a/ANDROID_3.4.5/include/linux/amba/pl08x.h
+++ /dev/null
@@ -1,244 +0,0 @@
-/*
- * linux/amba/pl08x.h - ARM PrimeCell DMA Controller driver
- *
- * Copyright (C) 2005 ARM Ltd
- * Copyright (C) 2010 ST-Ericsson SA
- *
- * 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.
- *
- * pl08x information required by platform code
- *
- * Please credit ARM.com
- * Documentation: ARM DDI 0196D
- */
-
-#ifndef AMBA_PL08X_H
-#define AMBA_PL08X_H
-
-/* We need sizes of structs from this header */
-#include <linux/dmaengine.h>
-#include <linux/interrupt.h>
-
-struct pl08x_lli;
-struct pl08x_driver_data;
-
-/* Bitmasks for selecting AHB ports for DMA transfers */
-enum {
- PL08X_AHB1 = (1 << 0),
- PL08X_AHB2 = (1 << 1)
-};
-
-/**
- * struct pl08x_channel_data - data structure to pass info between
- * platform and PL08x driver regarding channel configuration
- * @bus_id: name of this device channel, not just a device name since
- * devices may have more than one channel e.g. "foo_tx"
- * @min_signal: the minimum DMA signal number to be muxed in for this
- * channel (for platforms supporting muxed signals). If you have
- * static assignments, make sure this is set to the assigned signal
- * number, PL08x have 16 possible signals in number 0 thru 15 so
- * when these are not enough they often get muxed (in hardware)
- * disabling simultaneous use of the same channel for two devices.
- * @max_signal: the maximum DMA signal number to be muxed in for
- * the channel. Set to the same as min_signal for
- * devices with static assignments
- * @muxval: a number usually used to poke into some mux regiser to
- * mux in the signal to this channel
- * @cctl_opt: default options for the channel control register
- * @addr: source/target address in physical memory for this DMA channel,
- * can be the address of a FIFO register for burst requests for example.
- * This can be left undefined if the PrimeCell API is used for configuring
- * this.
- * @circular_buffer: whether the buffer passed in is circular and
- * shall simply be looped round round (like a record baby round
- * round round round)
- * @single: the device connected to this channel will request single DMA
- * transfers, not bursts. (Bursts are default.)
- * @periph_buses: the device connected to this channel is accessible via
- * these buses (use PL08X_AHB1 | PL08X_AHB2).
- */
-struct pl08x_channel_data {
- char *bus_id;
- int min_signal;
- int max_signal;
- u32 muxval;
- u32 cctl;
- dma_addr_t addr;
- bool circular_buffer;
- bool single;
- u8 periph_buses;
-};
-
-/**
- * Struct pl08x_bus_data - information of source or destination
- * busses for a transfer
- * @addr: current address
- * @maxwidth: the maximum width of a transfer on this bus
- * @buswidth: the width of this bus in bytes: 1, 2 or 4
- */
-struct pl08x_bus_data {
- dma_addr_t addr;
- u8 maxwidth;
- u8 buswidth;
-};
-
-/**
- * struct pl08x_phy_chan - holder for the physical channels
- * @id: physical index to this channel
- * @lock: a lock to use when altering an instance of this struct
- * @signal: the physical signal (aka channel) serving this physical channel
- * right now
- * @serving: the virtual channel currently being served by this physical
- * channel
- */
-struct pl08x_phy_chan {
- unsigned int id;
- void __iomem *base;
- spinlock_t lock;
- int signal;
- struct pl08x_dma_chan *serving;
-};
-
-/**
- * struct pl08x_sg - structure containing data per sg
- * @src_addr: src address of sg
- * @dst_addr: dst address of sg
- * @len: transfer len in bytes
- * @node: node for txd's dsg_list
- */
-struct pl08x_sg {
- dma_addr_t src_addr;
- dma_addr_t dst_addr;
- size_t len;
- struct list_head node;
-};
-
-/**
- * struct pl08x_txd - wrapper for struct dma_async_tx_descriptor
- * @tx: async tx descriptor
- * @node: node for txd list for channels
- * @dsg_list: list of children sg's
- * @direction: direction of transfer
- * @llis_bus: DMA memory address (physical) start for the LLIs
- * @llis_va: virtual memory address start for the LLIs
- * @cctl: control reg values for current txd
- * @ccfg: config reg values for current txd
- */
-struct pl08x_txd {
- struct dma_async_tx_descriptor tx;
- struct list_head node;
- struct list_head dsg_list;
- enum dma_transfer_direction direction;
- dma_addr_t llis_bus;
- struct pl08x_lli *llis_va;
- /* Default cctl value for LLIs */
- u32 cctl;
- /*
- * Settings to be put into the physical channel when we
- * trigger this txd. Other registers are in llis_va[0].
- */
- u32 ccfg;
-};
-
-/**
- * struct pl08x_dma_chan_state - holds the PL08x specific virtual channel
- * states
- * @PL08X_CHAN_IDLE: the channel is idle
- * @PL08X_CHAN_RUNNING: the channel has allocated a physical transport
- * channel and is running a transfer on it
- * @PL08X_CHAN_PAUSED: the channel has allocated a physical transport
- * channel, but the transfer is currently paused
- * @PL08X_CHAN_WAITING: the channel is waiting for a physical transport
- * channel to become available (only pertains to memcpy channels)
- */
-enum pl08x_dma_chan_state {
- PL08X_CHAN_IDLE,
- PL08X_CHAN_RUNNING,
- PL08X_CHAN_PAUSED,
- PL08X_CHAN_WAITING,
-};
-
-/**
- * struct pl08x_dma_chan - this structure wraps a DMA ENGINE channel
- * @chan: wrappped abstract channel
- * @phychan: the physical channel utilized by this channel, if there is one
- * @phychan_hold: if non-zero, hold on to the physical channel even if we
- * have no pending entries
- * @tasklet: tasklet scheduled by the IRQ to handle actual work etc
- * @name: name of channel
- * @cd: channel platform data
- * @runtime_addr: address for RX/TX according to the runtime config
- * @runtime_direction: current direction of this channel according to
- * runtime config
- * @pend_list: queued transactions pending on this channel
- * @at: active transaction on this channel
- * @lock: a lock for this channel data
- * @host: a pointer to the host (internal use)
- * @state: whether the channel is idle, paused, running etc
- * @slave: whether this channel is a device (slave) or for memcpy
- * @device_fc: Flow Controller Settings for ccfg register. Only valid for slave
- * channels. Fill with 'true' if peripheral should be flow controller. Direction
- * will be selected at Runtime.
- * @waiting: a TX descriptor on this channel which is waiting for a physical
- * channel to become available
- */
-struct pl08x_dma_chan {
- struct dma_chan chan;
- struct pl08x_phy_chan *phychan;
- int phychan_hold;
- struct tasklet_struct tasklet;
- char *name;
- const struct pl08x_channel_data *cd;
- dma_addr_t src_addr;
- dma_addr_t dst_addr;
- u32 src_cctl;
- u32 dst_cctl;
- enum dma_transfer_direction runtime_direction;
- struct list_head pend_list;
- struct pl08x_txd *at;
- spinlock_t lock;
- struct pl08x_driver_data *host;
- enum pl08x_dma_chan_state state;
- bool slave;
- bool device_fc;
- struct pl08x_txd *waiting;
-};
-
-/**
- * struct pl08x_platform_data - the platform configuration for the PL08x
- * PrimeCells.
- * @slave_channels: the channels defined for the different devices on the
- * platform, all inclusive, including multiplexed channels. The available
- * physical channels will be multiplexed around these signals as they are
- * requested, just enumerate all possible channels.
- * @get_signal: request a physical signal to be used for a DMA transfer
- * immediately: if there is some multiplexing or similar blocking the use
- * of the channel the transfer can be denied by returning less than zero,
- * else it returns the allocated signal number
- * @put_signal: indicate to the platform that this physical signal is not
- * running any DMA transfer and multiplexing can be recycled
- * @lli_buses: buses which LLIs can be fetched from: PL08X_AHB1 | PL08X_AHB2
- * @mem_buses: buses which memory can be accessed from: PL08X_AHB1 | PL08X_AHB2
- */
-struct pl08x_platform_data {
- const struct pl08x_channel_data *slave_channels;
- unsigned int num_slave_channels;
- struct pl08x_channel_data memcpy_channel;
- int (*get_signal)(struct pl08x_dma_chan *);
- void (*put_signal)(struct pl08x_dma_chan *);
- u8 lli_buses;
- u8 mem_buses;
-};
-
-#ifdef CONFIG_AMBA_PL08X
-bool pl08x_filter_id(struct dma_chan *chan, void *chan_id);
-#else
-static inline bool pl08x_filter_id(struct dma_chan *chan, void *chan_id)
-{
- return false;
-}
-#endif
-
-#endif /* AMBA_PL08X_H */
diff --git a/ANDROID_3.4.5/include/linux/amba/pl093.h b/ANDROID_3.4.5/include/linux/amba/pl093.h
deleted file mode 100644
index 2983e367..00000000
--- a/ANDROID_3.4.5/include/linux/amba/pl093.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/* linux/amba/pl093.h
- *
- * Copyright (c) 2008 Simtec Electronics
- * http://armlinux.simtec.co.uk/
- * Ben Dooks <ben@simtec.co.uk>
- *
- * AMBA PL093 SSMC (synchronous static memory controller)
- * See DDI0236.pdf (r0p4) for more details
- *
- * 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.
-*/
-
-#define SMB_BANK(x) ((x) * 0x20) /* each bank control set is 0x20 apart */
-
-/* Offsets for SMBxxxxRy registers */
-
-#define SMBIDCYR (0x00)
-#define SMBWSTRDR (0x04)
-#define SMBWSTWRR (0x08)
-#define SMBWSTOENR (0x0C)
-#define SMBWSTWENR (0x10)
-#define SMBCR (0x14)
-#define SMBSR (0x18)
-#define SMBWSTBRDR (0x1C)
-
-/* Masks for SMB registers */
-#define IDCY_MASK (0xf)
-#define WSTRD_MASK (0xf)
-#define WSTWR_MASK (0xf)
-#define WSTOEN_MASK (0xf)
-#define WSTWEN_MASK (0xf)
-
-/* Notes from datasheet:
- * WSTOEN <= WSTRD
- * WSTWEN <= WSTWR
- *
- * WSTOEN is not used with nWAIT
- */
-
-/* SMBCR bit definitions */
-#define SMBCR_BIWRITEEN (1 << 21)
-#define SMBCR_ADDRVALIDWRITEEN (1 << 20)
-#define SMBCR_SYNCWRITE (1 << 17)
-#define SMBCR_BMWRITE (1 << 16)
-#define SMBCR_WRAPREAD (1 << 14)
-#define SMBCR_BIREADEN (1 << 13)
-#define SMBCR_ADDRVALIDREADEN (1 << 12)
-#define SMBCR_SYNCREAD (1 << 9)
-#define SMBCR_BMREAD (1 << 8)
-#define SMBCR_SMBLSPOL (1 << 6)
-#define SMBCR_WP (1 << 3)
-#define SMBCR_WAITEN (1 << 2)
-#define SMBCR_WAITPOL (1 << 1)
-#define SMBCR_RBLE (1 << 0)
-
-#define SMBCR_BURSTLENWRITE_MASK (3 << 18)
-#define SMBCR_BURSTLENWRITE_4 (0 << 18)
-#define SMBCR_BURSTLENWRITE_8 (1 << 18)
-#define SMBCR_BURSTLENWRITE_RESERVED (2 << 18)
-#define SMBCR_BURSTLENWRITE_CONTINUOUS (3 << 18)
-
-#define SMBCR_BURSTLENREAD_MASK (3 << 10)
-#define SMBCR_BURSTLENREAD_4 (0 << 10)
-#define SMBCR_BURSTLENREAD_8 (1 << 10)
-#define SMBCR_BURSTLENREAD_16 (2 << 10)
-#define SMBCR_BURSTLENREAD_CONTINUOUS (3 << 10)
-
-#define SMBCR_MW_MASK (3 << 4)
-#define SMBCR_MW_8BIT (0 << 4)
-#define SMBCR_MW_16BIT (1 << 4)
-#define SMBCR_MW_M32BIT (2 << 4)
-
-/* SSMC status registers */
-#define SSMCCSR (0x200)
-#define SSMCCR (0x204)
-#define SSMCITCR (0x208)
-#define SSMCITIP (0x20C)
-#define SSMCITIOP (0x210)
diff --git a/ANDROID_3.4.5/include/linux/amba/pl330.h b/ANDROID_3.4.5/include/linux/amba/pl330.h
deleted file mode 100644
index fe93758e..00000000
--- a/ANDROID_3.4.5/include/linux/amba/pl330.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* linux/include/linux/amba/pl330.h
- *
- * Copyright (C) 2010 Samsung Electronics Co. Ltd.
- * Jaswinder Singh <jassi.brar@samsung.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 __AMBA_PL330_H_
-#define __AMBA_PL330_H_
-
-#include <linux/dmaengine.h>
-
-struct dma_pl330_platdata {
- /*
- * Number of valid peripherals connected to DMAC.
- * This may be different from the value read from
- * CR0, as the PL330 implementation might have 'holes'
- * in the peri list or the peri could also be reached
- * from another DMAC which the platform prefers.
- */
- u8 nr_valid_peri;
- /* Array of valid peripherals */
- u8 *peri_id;
- /* Operational capabilities */
- dma_cap_mask_t cap_mask;
- /* Bytes to allocate for MC buffer */
- unsigned mcbuf_sz;
-};
-
-extern bool pl330_filter(struct dma_chan *chan, void *param);
-#endif /* __AMBA_PL330_H_ */
diff --git a/ANDROID_3.4.5/include/linux/amba/serial.h b/ANDROID_3.4.5/include/linux/amba/serial.h
deleted file mode 100644
index d117b29d..00000000
--- a/ANDROID_3.4.5/include/linux/amba/serial.h
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- * linux/include/asm-arm/hardware/serial_amba.h
- *
- * Internal header file for AMBA serial ports
- *
- * Copyright (C) ARM Limited
- * Copyright (C) 2000 Deep Blue Solutions 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; 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
- */
-#ifndef ASM_ARM_HARDWARE_SERIAL_AMBA_H
-#define ASM_ARM_HARDWARE_SERIAL_AMBA_H
-
-#include <linux/types.h>
-
-/* -------------------------------------------------------------------------------
- * From AMBA UART (PL010) Block Specification
- * -------------------------------------------------------------------------------
- * UART Register Offsets.
- */
-#define UART01x_DR 0x00 /* Data read or written from the interface. */
-#define UART01x_RSR 0x04 /* Receive status register (Read). */
-#define UART01x_ECR 0x04 /* Error clear register (Write). */
-#define UART010_LCRH 0x08 /* Line control register, high byte. */
-#define ST_UART011_DMAWM 0x08 /* DMA watermark configure register. */
-#define UART010_LCRM 0x0C /* Line control register, middle byte. */
-#define ST_UART011_TIMEOUT 0x0C /* Timeout period register. */
-#define UART010_LCRL 0x10 /* Line control register, low byte. */
-#define UART010_CR 0x14 /* Control register. */
-#define UART01x_FR 0x18 /* Flag register (Read only). */
-#define UART010_IIR 0x1C /* Interrupt indentification register (Read). */
-#define UART010_ICR 0x1C /* Interrupt clear register (Write). */
-#define ST_UART011_LCRH_RX 0x1C /* Rx line control register. */
-#define UART01x_ILPR 0x20 /* IrDA low power counter register. */
-#define UART011_IBRD 0x24 /* Integer baud rate divisor register. */
-#define UART011_FBRD 0x28 /* Fractional baud rate divisor register. */
-#define UART011_LCRH 0x2c /* Line control register. */
-#define ST_UART011_LCRH_TX 0x2c /* Tx Line control register. */
-#define UART011_CR 0x30 /* Control register. */
-#define UART011_IFLS 0x34 /* Interrupt fifo level select. */
-#define UART011_IMSC 0x38 /* Interrupt mask. */
-#define UART011_RIS 0x3c /* Raw interrupt status. */
-#define UART011_MIS 0x40 /* Masked interrupt status. */
-#define UART011_ICR 0x44 /* Interrupt clear register. */
-#define UART011_DMACR 0x48 /* DMA control register. */
-#define ST_UART011_XFCR 0x50 /* XON/XOFF control register. */
-#define ST_UART011_XON1 0x54 /* XON1 register. */
-#define ST_UART011_XON2 0x58 /* XON2 register. */
-#define ST_UART011_XOFF1 0x5C /* XON1 register. */
-#define ST_UART011_XOFF2 0x60 /* XON2 register. */
-#define ST_UART011_ITCR 0x80 /* Integration test control register. */
-#define ST_UART011_ITIP 0x84 /* Integration test input register. */
-#define ST_UART011_ABCR 0x100 /* Autobaud control register. */
-#define ST_UART011_ABIMSC 0x15C /* Autobaud interrupt mask/clear register. */
-
-#define UART011_DR_OE (1 << 11)
-#define UART011_DR_BE (1 << 10)
-#define UART011_DR_PE (1 << 9)
-#define UART011_DR_FE (1 << 8)
-
-#define UART01x_RSR_OE 0x08
-#define UART01x_RSR_BE 0x04
-#define UART01x_RSR_PE 0x02
-#define UART01x_RSR_FE 0x01
-
-#define UART011_FR_RI 0x100
-#define UART011_FR_TXFE 0x080
-#define UART011_FR_RXFF 0x040
-#define UART01x_FR_TXFF 0x020
-#define UART01x_FR_RXFE 0x010
-#define UART01x_FR_BUSY 0x008
-#define UART01x_FR_DCD 0x004
-#define UART01x_FR_DSR 0x002
-#define UART01x_FR_CTS 0x001
-#define UART01x_FR_TMSK (UART01x_FR_TXFF + UART01x_FR_BUSY)
-
-#define UART011_CR_CTSEN 0x8000 /* CTS hardware flow control */
-#define UART011_CR_RTSEN 0x4000 /* RTS hardware flow control */
-#define UART011_CR_OUT2 0x2000 /* OUT2 */
-#define UART011_CR_OUT1 0x1000 /* OUT1 */
-#define UART011_CR_RTS 0x0800 /* RTS */
-#define UART011_CR_DTR 0x0400 /* DTR */
-#define UART011_CR_RXE 0x0200 /* receive enable */
-#define UART011_CR_TXE 0x0100 /* transmit enable */
-#define UART011_CR_LBE 0x0080 /* loopback enable */
-#define UART010_CR_RTIE 0x0040
-#define UART010_CR_TIE 0x0020
-#define UART010_CR_RIE 0x0010
-#define UART010_CR_MSIE 0x0008
-#define ST_UART011_CR_OVSFACT 0x0008 /* Oversampling factor */
-#define UART01x_CR_IIRLP 0x0004 /* SIR low power mode */
-#define UART01x_CR_SIREN 0x0002 /* SIR enable */
-#define UART01x_CR_UARTEN 0x0001 /* UART enable */
-
-#define UART011_LCRH_SPS 0x80
-#define UART01x_LCRH_WLEN_8 0x60
-#define UART01x_LCRH_WLEN_7 0x40
-#define UART01x_LCRH_WLEN_6 0x20
-#define UART01x_LCRH_WLEN_5 0x00
-#define UART01x_LCRH_FEN 0x10
-#define UART01x_LCRH_STP2 0x08
-#define UART01x_LCRH_EPS 0x04
-#define UART01x_LCRH_PEN 0x02
-#define UART01x_LCRH_BRK 0x01
-
-#define ST_UART011_DMAWM_RX_1 (0 << 3)
-#define ST_UART011_DMAWM_RX_2 (1 << 3)
-#define ST_UART011_DMAWM_RX_4 (2 << 3)
-#define ST_UART011_DMAWM_RX_8 (3 << 3)
-#define ST_UART011_DMAWM_RX_16 (4 << 3)
-#define ST_UART011_DMAWM_RX_32 (5 << 3)
-#define ST_UART011_DMAWM_RX_48 (6 << 3)
-#define ST_UART011_DMAWM_TX_1 0
-#define ST_UART011_DMAWM_TX_2 1
-#define ST_UART011_DMAWM_TX_4 2
-#define ST_UART011_DMAWM_TX_8 3
-#define ST_UART011_DMAWM_TX_16 4
-#define ST_UART011_DMAWM_TX_32 5
-#define ST_UART011_DMAWM_TX_48 6
-
-#define UART010_IIR_RTIS 0x08
-#define UART010_IIR_TIS 0x04
-#define UART010_IIR_RIS 0x02
-#define UART010_IIR_MIS 0x01
-
-#define UART011_IFLS_RX1_8 (0 << 3)
-#define UART011_IFLS_RX2_8 (1 << 3)
-#define UART011_IFLS_RX4_8 (2 << 3)
-#define UART011_IFLS_RX6_8 (3 << 3)
-#define UART011_IFLS_RX7_8 (4 << 3)
-#define UART011_IFLS_TX1_8 (0 << 0)
-#define UART011_IFLS_TX2_8 (1 << 0)
-#define UART011_IFLS_TX4_8 (2 << 0)
-#define UART011_IFLS_TX6_8 (3 << 0)
-#define UART011_IFLS_TX7_8 (4 << 0)
-/* special values for ST vendor with deeper fifo */
-#define UART011_IFLS_RX_HALF (5 << 3)
-#define UART011_IFLS_TX_HALF (5 << 0)
-
-#define UART011_OEIM (1 << 10) /* overrun error interrupt mask */
-#define UART011_BEIM (1 << 9) /* break error interrupt mask */
-#define UART011_PEIM (1 << 8) /* parity error interrupt mask */
-#define UART011_FEIM (1 << 7) /* framing error interrupt mask */
-#define UART011_RTIM (1 << 6) /* receive timeout interrupt mask */
-#define UART011_TXIM (1 << 5) /* transmit interrupt mask */
-#define UART011_RXIM (1 << 4) /* receive interrupt mask */
-#define UART011_DSRMIM (1 << 3) /* DSR interrupt mask */
-#define UART011_DCDMIM (1 << 2) /* DCD interrupt mask */
-#define UART011_CTSMIM (1 << 1) /* CTS interrupt mask */
-#define UART011_RIMIM (1 << 0) /* RI interrupt mask */
-
-#define UART011_OEIS (1 << 10) /* overrun error interrupt status */
-#define UART011_BEIS (1 << 9) /* break error interrupt status */
-#define UART011_PEIS (1 << 8) /* parity error interrupt status */
-#define UART011_FEIS (1 << 7) /* framing error interrupt status */
-#define UART011_RTIS (1 << 6) /* receive timeout interrupt status */
-#define UART011_TXIS (1 << 5) /* transmit interrupt status */
-#define UART011_RXIS (1 << 4) /* receive interrupt status */
-#define UART011_DSRMIS (1 << 3) /* DSR interrupt status */
-#define UART011_DCDMIS (1 << 2) /* DCD interrupt status */
-#define UART011_CTSMIS (1 << 1) /* CTS interrupt status */
-#define UART011_RIMIS (1 << 0) /* RI interrupt status */
-
-#define UART011_OEIC (1 << 10) /* overrun error interrupt clear */
-#define UART011_BEIC (1 << 9) /* break error interrupt clear */
-#define UART011_PEIC (1 << 8) /* parity error interrupt clear */
-#define UART011_FEIC (1 << 7) /* framing error interrupt clear */
-#define UART011_RTIC (1 << 6) /* receive timeout interrupt clear */
-#define UART011_TXIC (1 << 5) /* transmit interrupt clear */
-#define UART011_RXIC (1 << 4) /* receive interrupt clear */
-#define UART011_DSRMIC (1 << 3) /* DSR interrupt clear */
-#define UART011_DCDMIC (1 << 2) /* DCD interrupt clear */
-#define UART011_CTSMIC (1 << 1) /* CTS interrupt clear */
-#define UART011_RIMIC (1 << 0) /* RI interrupt clear */
-
-#define UART011_DMAONERR (1 << 2) /* disable dma on error */
-#define UART011_TXDMAE (1 << 1) /* enable transmit dma */
-#define UART011_RXDMAE (1 << 0) /* enable receive dma */
-
-#define UART01x_RSR_ANY (UART01x_RSR_OE|UART01x_RSR_BE|UART01x_RSR_PE|UART01x_RSR_FE)
-#define UART01x_FR_MODEM_ANY (UART01x_FR_DCD|UART01x_FR_DSR|UART01x_FR_CTS)
-
-#ifndef __ASSEMBLY__
-struct amba_device; /* in uncompress this is included but amba/bus.h is not */
-struct amba_pl010_data {
- void (*set_mctrl)(struct amba_device *dev, void __iomem *base, unsigned int mctrl);
-};
-
-struct dma_chan;
-struct amba_pl011_data {
- bool (*dma_filter)(struct dma_chan *chan, void *filter_param);
- void *dma_rx_param;
- void *dma_tx_param;
- void (*init) (void);
- void (*exit) (void);
- void (*reset) (void);
-};
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/amd-iommu.h b/ANDROID_3.4.5/include/linux/amd-iommu.h
deleted file mode 100644
index 15f6b9ed..00000000
--- a/ANDROID_3.4.5/include/linux/amd-iommu.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (C) 2007-2010 Advanced Micro Devices, Inc.
- * Author: Joerg Roedel <joerg.roedel@amd.com>
- * Leo Duran <leo.duran@amd.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.
- *
- * 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
- */
-
-#ifndef _ASM_X86_AMD_IOMMU_H
-#define _ASM_X86_AMD_IOMMU_H
-
-#include <linux/types.h>
-
-#ifdef CONFIG_AMD_IOMMU
-
-struct task_struct;
-struct pci_dev;
-
-extern int amd_iommu_detect(void);
-extern int amd_iommu_init_hardware(void);
-
-/**
- * amd_iommu_enable_device_erratum() - Enable erratum workaround for device
- * in the IOMMUv2 driver
- * @pdev: The PCI device the workaround is necessary for
- * @erratum: The erratum workaround to enable
- *
- * The function needs to be called before amd_iommu_init_device().
- * Possible values for the erratum number are for now:
- * - AMD_PRI_DEV_ERRATUM_ENABLE_RESET - Reset PRI capability when PRI
- * is enabled
- * - AMD_PRI_DEV_ERRATUM_LIMIT_REQ_ONE - Limit number of outstanding PRI
- * requests to one
- */
-#define AMD_PRI_DEV_ERRATUM_ENABLE_RESET 0
-#define AMD_PRI_DEV_ERRATUM_LIMIT_REQ_ONE 1
-
-extern void amd_iommu_enable_device_erratum(struct pci_dev *pdev, u32 erratum);
-
-/**
- * amd_iommu_init_device() - Init device for use with IOMMUv2 driver
- * @pdev: The PCI device to initialize
- * @pasids: Number of PASIDs to support for this device
- *
- * This function does all setup for the device pdev so that it can be
- * used with IOMMUv2.
- * Returns 0 on success or negative value on error.
- */
-extern int amd_iommu_init_device(struct pci_dev *pdev, int pasids);
-
-/**
- * amd_iommu_free_device() - Free all IOMMUv2 related device resources
- * and disable IOMMUv2 usage for this device
- * @pdev: The PCI device to disable IOMMUv2 usage for'
- */
-extern void amd_iommu_free_device(struct pci_dev *pdev);
-
-/**
- * amd_iommu_bind_pasid() - Bind a given task to a PASID on a device
- * @pdev: The PCI device to bind the task to
- * @pasid: The PASID on the device the task should be bound to
- * @task: the task to bind
- *
- * The function returns 0 on success or a negative value on error.
- */
-extern int amd_iommu_bind_pasid(struct pci_dev *pdev, int pasid,
- struct task_struct *task);
-
-/**
- * amd_iommu_unbind_pasid() - Unbind a PASID from its task on
- * a device
- * @pdev: The device of the PASID
- * @pasid: The PASID to unbind
- *
- * When this function returns the device is no longer using the PASID
- * and the PASID is no longer bound to its task.
- */
-extern void amd_iommu_unbind_pasid(struct pci_dev *pdev, int pasid);
-
-/**
- * amd_iommu_set_invalid_ppr_cb() - Register a call-back for failed
- * PRI requests
- * @pdev: The PCI device the call-back should be registered for
- * @cb: The call-back function
- *
- * The IOMMUv2 driver invokes this call-back when it is unable to
- * successfully handle a PRI request. The device driver can then decide
- * which PRI response the device should see. Possible return values for
- * the call-back are:
- *
- * - AMD_IOMMU_INV_PRI_RSP_SUCCESS - Send SUCCESS back to the device
- * - AMD_IOMMU_INV_PRI_RSP_INVALID - Send INVALID back to the device
- * - AMD_IOMMU_INV_PRI_RSP_FAIL - Send Failure back to the device,
- * the device is required to disable
- * PRI when it receives this response
- *
- * The function returns 0 on success or negative value on error.
- */
-#define AMD_IOMMU_INV_PRI_RSP_SUCCESS 0
-#define AMD_IOMMU_INV_PRI_RSP_INVALID 1
-#define AMD_IOMMU_INV_PRI_RSP_FAIL 2
-
-typedef int (*amd_iommu_invalid_ppr_cb)(struct pci_dev *pdev,
- int pasid,
- unsigned long address,
- u16);
-
-extern int amd_iommu_set_invalid_ppr_cb(struct pci_dev *pdev,
- amd_iommu_invalid_ppr_cb cb);
-
-/**
- * amd_iommu_device_info() - Get information about IOMMUv2 support of a
- * PCI device
- * @pdev: PCI device to query information from
- * @info: A pointer to an amd_iommu_device_info structure which will contain
- * the information about the PCI device
- *
- * Returns 0 on success, negative value on error
- */
-
-#define AMD_IOMMU_DEVICE_FLAG_ATS_SUP 0x1 /* ATS feature supported */
-#define AMD_IOMMU_DEVICE_FLAG_PRI_SUP 0x2 /* PRI feature supported */
-#define AMD_IOMMU_DEVICE_FLAG_PASID_SUP 0x4 /* PASID context supported */
-#define AMD_IOMMU_DEVICE_FLAG_EXEC_SUP 0x8 /* Device may request execution
- on memory pages */
-#define AMD_IOMMU_DEVICE_FLAG_PRIV_SUP 0x10 /* Device may request
- super-user privileges */
-
-struct amd_iommu_device_info {
- int max_pasids;
- u32 flags;
-};
-
-extern int amd_iommu_device_info(struct pci_dev *pdev,
- struct amd_iommu_device_info *info);
-
-/**
- * amd_iommu_set_invalidate_ctx_cb() - Register a call-back for invalidating
- * a pasid context. This call-back is
- * invoked when the IOMMUv2 driver needs to
- * invalidate a PASID context, for example
- * because the task that is bound to that
- * context is about to exit.
- *
- * @pdev: The PCI device the call-back should be registered for
- * @cb: The call-back function
- */
-
-typedef void (*amd_iommu_invalidate_ctx)(struct pci_dev *pdev, int pasid);
-
-extern int amd_iommu_set_invalidate_ctx_cb(struct pci_dev *pdev,
- amd_iommu_invalidate_ctx cb);
-
-#else
-
-static inline int amd_iommu_detect(void) { return -ENODEV; }
-
-#endif
-
-#endif /* _ASM_X86_AMD_IOMMU_H */
diff --git a/ANDROID_3.4.5/include/linux/amifd.h b/ANDROID_3.4.5/include/linux/amifd.h
deleted file mode 100644
index 34699326..00000000
--- a/ANDROID_3.4.5/include/linux/amifd.h
+++ /dev/null
@@ -1,62 +0,0 @@
-#ifndef _AMIFD_H
-#define _AMIFD_H
-
-/* Definitions for the Amiga floppy driver */
-
-#include <linux/fd.h>
-
-#define FD_MAX_UNITS 4 /* Max. Number of drives */
-#define FLOPPY_MAX_SECTORS 22 /* Max. Number of sectors per track */
-
-#ifndef ASSEMBLER
-
-struct fd_data_type {
- char *name; /* description of data type */
- int sects; /* sectors per track */
-#ifdef __STDC__
- int (*read_fkt)(int);
- void (*write_fkt)(int);
-#else
- int (*read_fkt)(); /* read whole track */
- void (*write_fkt)(); /* write whole track */
-#endif
-};
-
-/*
-** Floppy type descriptions
-*/
-
-struct fd_drive_type {
- unsigned long code; /* code returned from drive */
- char *name; /* description of drive */
- unsigned int tracks; /* number of tracks */
- unsigned int heads; /* number of heads */
- unsigned int read_size; /* raw read size for one track */
- unsigned int write_size; /* raw write size for one track */
- unsigned int sect_mult; /* sectors and gap multiplier (HD = 2) */
- unsigned int precomp1; /* start track for precomp 1 */
- unsigned int precomp2; /* start track for precomp 2 */
- unsigned int step_delay; /* time (in ms) for delay after step */
- unsigned int settle_time; /* time to settle after dir change */
- unsigned int side_time; /* time needed to change sides */
-};
-
-struct amiga_floppy_struct {
- struct fd_drive_type *type; /* type of floppy for this unit */
- struct fd_data_type *dtype; /* type of floppy for this unit */
- int track; /* current track (-1 == unknown) */
- unsigned char *trackbuf; /* current track (kmaloc()'d */
-
- int blocks; /* total # blocks on disk */
-
- int changed; /* true when not known */
- int disk; /* disk in drive (-1 == unknown) */
- int motor; /* true when motor is at speed */
- int busy; /* true when drive is active */
- int dirty; /* true when trackbuf is not on disk */
- int status; /* current error code for unit */
- struct gendisk *gendisk;
-};
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/amifdreg.h b/ANDROID_3.4.5/include/linux/amifdreg.h
deleted file mode 100644
index 76188bf4..00000000
--- a/ANDROID_3.4.5/include/linux/amifdreg.h
+++ /dev/null
@@ -1,81 +0,0 @@
-#ifndef _LINUX_AMIFDREG_H
-#define _LINUX_AMIFDREG_H
-
-/*
-** CIAAPRA bits (read only)
-*/
-
-#define DSKRDY (0x1<<5) /* disk ready when low */
-#define DSKTRACK0 (0x1<<4) /* head at track zero when low */
-#define DSKPROT (0x1<<3) /* disk protected when low */
-#define DSKCHANGE (0x1<<2) /* low when disk removed */
-
-/*
-** CIAAPRB bits (read/write)
-*/
-
-#define DSKMOTOR (0x1<<7) /* motor on when low */
-#define DSKSEL3 (0x1<<6) /* select drive 3 when low */
-#define DSKSEL2 (0x1<<5) /* select drive 2 when low */
-#define DSKSEL1 (0x1<<4) /* select drive 1 when low */
-#define DSKSEL0 (0x1<<3) /* select drive 0 when low */
-#define DSKSIDE (0x1<<2) /* side selection: 0 = upper, 1 = lower */
-#define DSKDIREC (0x1<<1) /* step direction: 0=in, 1=out (to trk 0) */
-#define DSKSTEP (0x1) /* pulse low to step head 1 track */
-
-/*
-** DSKBYTR bits (read only)
-*/
-
-#define DSKBYT (1<<15) /* register contains valid byte when set */
-#define DMAON (1<<14) /* disk DMA enabled */
-#define DISKWRITE (1<<13) /* disk write bit in DSKLEN enabled */
-#define WORDEQUAL (1<<12) /* DSKSYNC register match when true */
-/* bits 7-0 are data */
-
-/*
-** ADKCON/ADKCONR bits
-*/
-
-#ifndef SETCLR
-#define ADK_SETCLR (1<<15) /* control bit */
-#endif
-#define ADK_PRECOMP1 (1<<14) /* precompensation selection */
-#define ADK_PRECOMP0 (1<<13) /* 00=none, 01=140ns, 10=280ns, 11=500ns */
-#define ADK_MFMPREC (1<<12) /* 0=GCR precomp., 1=MFM precomp. */
-#define ADK_WORDSYNC (1<<10) /* enable DSKSYNC auto DMA */
-#define ADK_MSBSYNC (1<<9) /* when 1, enable sync on MSbit (for GCR) */
-#define ADK_FAST (1<<8) /* bit cell: 0=2us (GCR), 1=1us (MFM) */
-
-/*
-** DSKLEN bits
-*/
-
-#define DSKLEN_DMAEN (1<<15)
-#define DSKLEN_WRITE (1<<14)
-
-/*
-** INTENA/INTREQ bits
-*/
-
-#define DSKINDEX (0x1<<4) /* DSKINDEX bit */
-
-/*
-** Misc
-*/
-
-#define MFM_SYNC 0x4489 /* standard MFM sync value */
-
-/* Values for FD_COMMAND */
-#define FD_RECALIBRATE 0x07 /* move to track 0 */
-#define FD_SEEK 0x0F /* seek track */
-#define FD_READ 0xE6 /* read with MT, MFM, SKip deleted */
-#define FD_WRITE 0xC5 /* write with MT, MFM */
-#define FD_SENSEI 0x08 /* Sense Interrupt Status */
-#define FD_SPECIFY 0x03 /* specify HUT etc */
-#define FD_FORMAT 0x4D /* format one track */
-#define FD_VERSION 0x10 /* get version code */
-#define FD_CONFIGURE 0x13 /* configure FIFO operation */
-#define FD_PERPENDICULAR 0x12 /* perpendicular r/w mode */
-
-#endif /* _LINUX_AMIFDREG_H */
diff --git a/ANDROID_3.4.5/include/linux/amigaffs.h b/ANDROID_3.4.5/include/linux/amigaffs.h
deleted file mode 100644
index 43b41c06..00000000
--- a/ANDROID_3.4.5/include/linux/amigaffs.h
+++ /dev/null
@@ -1,144 +0,0 @@
-#ifndef AMIGAFFS_H
-#define AMIGAFFS_H
-
-#include <linux/types.h>
-#include <asm/byteorder.h>
-
-#define FS_OFS 0x444F5300
-#define FS_FFS 0x444F5301
-#define FS_INTLOFS 0x444F5302
-#define FS_INTLFFS 0x444F5303
-#define FS_DCOFS 0x444F5304
-#define FS_DCFFS 0x444F5305
-#define MUFS_FS 0x6d754653 /* 'muFS' */
-#define MUFS_OFS 0x6d754600 /* 'muF\0' */
-#define MUFS_FFS 0x6d754601 /* 'muF\1' */
-#define MUFS_INTLOFS 0x6d754602 /* 'muF\2' */
-#define MUFS_INTLFFS 0x6d754603 /* 'muF\3' */
-#define MUFS_DCOFS 0x6d754604 /* 'muF\4' */
-#define MUFS_DCFFS 0x6d754605 /* 'muF\5' */
-
-#define T_SHORT 2
-#define T_LIST 16
-#define T_DATA 8
-
-#define ST_LINKFILE -4
-#define ST_FILE -3
-#define ST_ROOT 1
-#define ST_USERDIR 2
-#define ST_SOFTLINK 3
-#define ST_LINKDIR 4
-
-#define AFFS_ROOT_BMAPS 25
-
-struct affs_date {
- __be32 days;
- __be32 mins;
- __be32 ticks;
-};
-
-struct affs_short_date {
- __be16 days;
- __be16 mins;
- __be16 ticks;
-};
-
-struct affs_root_head {
- __be32 ptype;
- __be32 spare1;
- __be32 spare2;
- __be32 hash_size;
- __be32 spare3;
- __be32 checksum;
- __be32 hashtable[1];
-};
-
-struct affs_root_tail {
- __be32 bm_flag;
- __be32 bm_blk[AFFS_ROOT_BMAPS];
- __be32 bm_ext;
- struct affs_date root_change;
- u8 disk_name[32];
- __be32 spare1;
- __be32 spare2;
- struct affs_date disk_change;
- struct affs_date disk_create;
- __be32 spare3;
- __be32 spare4;
- __be32 dcache;
- __be32 stype;
-};
-
-struct affs_head {
- __be32 ptype;
- __be32 key;
- __be32 block_count;
- __be32 spare1;
- __be32 first_data;
- __be32 checksum;
- __be32 table[1];
-};
-
-struct affs_tail {
- __be32 spare1;
- __be16 uid;
- __be16 gid;
- __be32 protect;
- __be32 size;
- u8 comment[92];
- struct affs_date change;
- u8 name[32];
- __be32 spare2;
- __be32 original;
- __be32 link_chain;
- __be32 spare[5];
- __be32 hash_chain;
- __be32 parent;
- __be32 extension;
- __be32 stype;
-};
-
-struct slink_front
-{
- __be32 ptype;
- __be32 key;
- __be32 spare1[3];
- __be32 checksum;
- u8 symname[1]; /* depends on block size */
-};
-
-struct affs_data_head
-{
- __be32 ptype;
- __be32 key;
- __be32 sequence;
- __be32 size;
- __be32 next;
- __be32 checksum;
- u8 data[1]; /* depends on block size */
-};
-
-/* Permission bits */
-
-#define FIBF_OTR_READ 0x8000
-#define FIBF_OTR_WRITE 0x4000
-#define FIBF_OTR_EXECUTE 0x2000
-#define FIBF_OTR_DELETE 0x1000
-#define FIBF_GRP_READ 0x0800
-#define FIBF_GRP_WRITE 0x0400
-#define FIBF_GRP_EXECUTE 0x0200
-#define FIBF_GRP_DELETE 0x0100
-
-#define FIBF_HIDDEN 0x0080
-#define FIBF_SCRIPT 0x0040
-#define FIBF_PURE 0x0020 /* no use under linux */
-#define FIBF_ARCHIVED 0x0010 /* never set, always cleared on write */
-#define FIBF_NOREAD 0x0008 /* 0 means allowed */
-#define FIBF_NOWRITE 0x0004 /* 0 means allowed */
-#define FIBF_NOEXECUTE 0x0002 /* 0 means allowed, ignored under linux */
-#define FIBF_NODELETE 0x0001 /* 0 means allowed */
-
-#define FIBF_OWNER 0x000F /* Bits pertaining to owner */
-#define FIBF_MASK 0xEE0E /* Bits modified by Linux */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/android_aid.h b/ANDROID_3.4.5/include/linux/android_aid.h
deleted file mode 100644
index 0f904b3b..00000000
--- a/ANDROID_3.4.5/include/linux/android_aid.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* include/linux/android_aid.h
- *
- * Copyright (C) 2008 Google, Inc.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#ifndef _LINUX_ANDROID_AID_H
-#define _LINUX_ANDROID_AID_H
-
-/* AIDs that the kernel treats differently */
-#define AID_NET_BT_ADMIN 3001
-#define AID_NET_BT 3002
-#define AID_INET 3003
-#define AID_NET_RAW 3004
-#define AID_NET_ADMIN 3005
-#define AID_NET_BW_STATS 3006 /* read bandwidth statistics */
-#define AID_NET_BW_ACCT 3007 /* change bandwidth statistics accounting */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/anon_inodes.h b/ANDROID_3.4.5/include/linux/anon_inodes.h
deleted file mode 100644
index 8013a452..00000000
--- a/ANDROID_3.4.5/include/linux/anon_inodes.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * include/linux/anon_inodes.h
- *
- * Copyright (C) 2007 Davide Libenzi <davidel@xmailserver.org>
- *
- */
-
-#ifndef _LINUX_ANON_INODES_H
-#define _LINUX_ANON_INODES_H
-
-struct file_operations;
-
-struct file *anon_inode_getfile(const char *name,
- const struct file_operations *fops,
- void *priv, int flags);
-int anon_inode_getfd(const char *name, const struct file_operations *fops,
- void *priv, int flags);
-
-#endif /* _LINUX_ANON_INODES_H */
-
diff --git a/ANDROID_3.4.5/include/linux/apm-emulation.h b/ANDROID_3.4.5/include/linux/apm-emulation.h
deleted file mode 100644
index e6d80035..00000000
--- a/ANDROID_3.4.5/include/linux/apm-emulation.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* -*- linux-c -*-
- *
- * (C) 2003 zecke@handhelds.org
- *
- * GPL version 2
- *
- * based on arch/arm/kernel/apm.c
- * factor out the information needed by architectures to provide
- * apm status
- */
-#ifndef __LINUX_APM_EMULATION_H
-#define __LINUX_APM_EMULATION_H
-
-#include <linux/apm_bios.h>
-
-/*
- * This structure gets filled in by the machine specific 'get_power_status'
- * implementation. Any fields which are not set default to a safe value.
- */
-struct apm_power_info {
- unsigned char ac_line_status;
-#define APM_AC_OFFLINE 0
-#define APM_AC_ONLINE 1
-#define APM_AC_BACKUP 2
-#define APM_AC_UNKNOWN 0xff
-
- unsigned char battery_status;
-#define APM_BATTERY_STATUS_HIGH 0
-#define APM_BATTERY_STATUS_LOW 1
-#define APM_BATTERY_STATUS_CRITICAL 2
-#define APM_BATTERY_STATUS_CHARGING 3
-#define APM_BATTERY_STATUS_NOT_PRESENT 4
-#define APM_BATTERY_STATUS_UNKNOWN 0xff
-
- unsigned char battery_flag;
-#define APM_BATTERY_FLAG_HIGH (1 << 0)
-#define APM_BATTERY_FLAG_LOW (1 << 1)
-#define APM_BATTERY_FLAG_CRITICAL (1 << 2)
-#define APM_BATTERY_FLAG_CHARGING (1 << 3)
-#define APM_BATTERY_FLAG_NOT_PRESENT (1 << 7)
-#define APM_BATTERY_FLAG_UNKNOWN 0xff
-
- int battery_life;
- int time;
- int units;
-#define APM_UNITS_MINS 0
-#define APM_UNITS_SECS 1
-#define APM_UNITS_UNKNOWN -1
-
-};
-
-/*
- * This allows machines to provide their own "apm get power status" function.
- */
-extern void (*apm_get_power_status)(struct apm_power_info *);
-
-/*
- * Queue an event (APM_SYS_SUSPEND or APM_CRITICAL_SUSPEND)
- */
-void apm_queue_event(apm_event_t event);
-
-#endif /* __LINUX_APM_EMULATION_H */
diff --git a/ANDROID_3.4.5/include/linux/apm_bios.h b/ANDROID_3.4.5/include/linux/apm_bios.h
deleted file mode 100644
index 01a6244c..00000000
--- a/ANDROID_3.4.5/include/linux/apm_bios.h
+++ /dev/null
@@ -1,220 +0,0 @@
-#ifndef _LINUX_APM_H
-#define _LINUX_APM_H
-
-/*
- * Include file for the interface to an APM BIOS
- * Copyright 1994-2001 Stephen Rothwell (sfr@canb.auug.org.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, 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/types.h>
-
-typedef unsigned short apm_event_t;
-typedef unsigned short apm_eventinfo_t;
-
-struct apm_bios_info {
- __u16 version;
- __u16 cseg;
- __u32 offset;
- __u16 cseg_16;
- __u16 dseg;
- __u16 flags;
- __u16 cseg_len;
- __u16 cseg_16_len;
- __u16 dseg_len;
-};
-
-#ifdef __KERNEL__
-
-#define APM_CS (GDT_ENTRY_APMBIOS_BASE * 8)
-#define APM_CS_16 (APM_CS + 8)
-#define APM_DS (APM_CS_16 + 8)
-
-/* Results of APM Installation Check */
-#define APM_16_BIT_SUPPORT 0x0001
-#define APM_32_BIT_SUPPORT 0x0002
-#define APM_IDLE_SLOWS_CLOCK 0x0004
-#define APM_BIOS_DISABLED 0x0008
-#define APM_BIOS_DISENGAGED 0x0010
-
-/*
- * Data for APM that is persistent across module unload/load
- */
-struct apm_info {
- struct apm_bios_info bios;
- unsigned short connection_version;
- int get_power_status_broken;
- int get_power_status_swabinminutes;
- int allow_ints;
- int forbid_idle;
- int realmode_power_off;
- int disabled;
-};
-
-/*
- * The APM function codes
- */
-#define APM_FUNC_INST_CHECK 0x5300
-#define APM_FUNC_REAL_CONN 0x5301
-#define APM_FUNC_16BIT_CONN 0x5302
-#define APM_FUNC_32BIT_CONN 0x5303
-#define APM_FUNC_DISCONN 0x5304
-#define APM_FUNC_IDLE 0x5305
-#define APM_FUNC_BUSY 0x5306
-#define APM_FUNC_SET_STATE 0x5307
-#define APM_FUNC_ENABLE_PM 0x5308
-#define APM_FUNC_RESTORE_BIOS 0x5309
-#define APM_FUNC_GET_STATUS 0x530a
-#define APM_FUNC_GET_EVENT 0x530b
-#define APM_FUNC_GET_STATE 0x530c
-#define APM_FUNC_ENABLE_DEV_PM 0x530d
-#define APM_FUNC_VERSION 0x530e
-#define APM_FUNC_ENGAGE_PM 0x530f
-#define APM_FUNC_GET_CAP 0x5310
-#define APM_FUNC_RESUME_TIMER 0x5311
-#define APM_FUNC_RESUME_ON_RING 0x5312
-#define APM_FUNC_TIMER 0x5313
-
-/*
- * Function code for APM_FUNC_RESUME_TIMER
- */
-#define APM_FUNC_DISABLE_TIMER 0
-#define APM_FUNC_GET_TIMER 1
-#define APM_FUNC_SET_TIMER 2
-
-/*
- * Function code for APM_FUNC_RESUME_ON_RING
- */
-#define APM_FUNC_DISABLE_RING 0
-#define APM_FUNC_ENABLE_RING 1
-#define APM_FUNC_GET_RING 2
-
-/*
- * Function code for APM_FUNC_TIMER_STATUS
- */
-#define APM_FUNC_TIMER_DISABLE 0
-#define APM_FUNC_TIMER_ENABLE 1
-#define APM_FUNC_TIMER_GET 2
-
-/*
- * in arch/i386/kernel/setup.c
- */
-extern struct apm_info apm_info;
-
-#endif /* __KERNEL__ */
-
-/*
- * Power states
- */
-#define APM_STATE_READY 0x0000
-#define APM_STATE_STANDBY 0x0001
-#define APM_STATE_SUSPEND 0x0002
-#define APM_STATE_OFF 0x0003
-#define APM_STATE_BUSY 0x0004
-#define APM_STATE_REJECT 0x0005
-#define APM_STATE_OEM_SYS 0x0020
-#define APM_STATE_OEM_DEV 0x0040
-
-#define APM_STATE_DISABLE 0x0000
-#define APM_STATE_ENABLE 0x0001
-
-#define APM_STATE_DISENGAGE 0x0000
-#define APM_STATE_ENGAGE 0x0001
-
-/*
- * Events (results of Get PM Event)
- */
-#define APM_SYS_STANDBY 0x0001
-#define APM_SYS_SUSPEND 0x0002
-#define APM_NORMAL_RESUME 0x0003
-#define APM_CRITICAL_RESUME 0x0004
-#define APM_LOW_BATTERY 0x0005
-#define APM_POWER_STATUS_CHANGE 0x0006
-#define APM_UPDATE_TIME 0x0007
-#define APM_CRITICAL_SUSPEND 0x0008
-#define APM_USER_STANDBY 0x0009
-#define APM_USER_SUSPEND 0x000a
-#define APM_STANDBY_RESUME 0x000b
-#define APM_CAPABILITY_CHANGE 0x000c
-
-/*
- * Error codes
- */
-#define APM_SUCCESS 0x00
-#define APM_DISABLED 0x01
-#define APM_CONNECTED 0x02
-#define APM_NOT_CONNECTED 0x03
-#define APM_16_CONNECTED 0x05
-#define APM_16_UNSUPPORTED 0x06
-#define APM_32_CONNECTED 0x07
-#define APM_32_UNSUPPORTED 0x08
-#define APM_BAD_DEVICE 0x09
-#define APM_BAD_PARAM 0x0a
-#define APM_NOT_ENGAGED 0x0b
-#define APM_BAD_FUNCTION 0x0c
-#define APM_RESUME_DISABLED 0x0d
-#define APM_NO_ERROR 0x53
-#define APM_BAD_STATE 0x60
-#define APM_NO_EVENTS 0x80
-#define APM_NOT_PRESENT 0x86
-
-/*
- * APM Device IDs
- */
-#define APM_DEVICE_BIOS 0x0000
-#define APM_DEVICE_ALL 0x0001
-#define APM_DEVICE_DISPLAY 0x0100
-#define APM_DEVICE_STORAGE 0x0200
-#define APM_DEVICE_PARALLEL 0x0300
-#define APM_DEVICE_SERIAL 0x0400
-#define APM_DEVICE_NETWORK 0x0500
-#define APM_DEVICE_PCMCIA 0x0600
-#define APM_DEVICE_BATTERY 0x8000
-#define APM_DEVICE_OEM 0xe000
-#define APM_DEVICE_OLD_ALL 0xffff
-#define APM_DEVICE_CLASS 0x00ff
-#define APM_DEVICE_MASK 0xff00
-
-#ifdef __KERNEL__
-/*
- * This is the "All Devices" ID communicated to the BIOS
- */
-#define APM_DEVICE_BALL ((apm_info.connection_version > 0x0100) ? \
- APM_DEVICE_ALL : APM_DEVICE_OLD_ALL)
-#endif
-
-/*
- * Battery status
- */
-#define APM_MAX_BATTERIES 2
-
-/*
- * APM defined capability bit flags
- */
-#define APM_CAP_GLOBAL_STANDBY 0x0001
-#define APM_CAP_GLOBAL_SUSPEND 0x0002
-#define APM_CAP_RESUME_STANDBY_TIMER 0x0004 /* Timer resume from standby */
-#define APM_CAP_RESUME_SUSPEND_TIMER 0x0008 /* Timer resume from suspend */
-#define APM_CAP_RESUME_STANDBY_RING 0x0010 /* Resume on Ring fr standby */
-#define APM_CAP_RESUME_SUSPEND_RING 0x0020 /* Resume on Ring fr suspend */
-#define APM_CAP_RESUME_STANDBY_PCMCIA 0x0040 /* Resume on PCMCIA Ring */
-#define APM_CAP_RESUME_SUSPEND_PCMCIA 0x0080 /* Resume on PCMCIA Ring */
-
-/*
- * ioctl operations
- */
-#include <linux/ioctl.h>
-
-#define APM_IOC_STANDBY _IO('A', 1)
-#define APM_IOC_SUSPEND _IO('A', 2)
-
-#endif /* LINUX_APM_H */
diff --git a/ANDROID_3.4.5/include/linux/apple_bl.h b/ANDROID_3.4.5/include/linux/apple_bl.h
deleted file mode 100644
index 47bedc0e..00000000
--- a/ANDROID_3.4.5/include/linux/apple_bl.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * apple_bl exported symbols
- */
-
-#ifndef _LINUX_APPLE_BL_H
-#define _LINUX_APPLE_BL_H
-
-#ifdef CONFIG_BACKLIGHT_APPLE
-
-extern int apple_bl_register(void);
-extern void apple_bl_unregister(void);
-
-#else /* !CONFIG_BACKLIGHT_APPLE */
-
-static inline int apple_bl_register(void)
-{
- return 0;
-}
-
-static inline void apple_bl_unregister(void)
-{
-}
-
-#endif /* !CONFIG_BACKLIGHT_APPLE */
-
-#endif /* _LINUX_APPLE_BL_H */
diff --git a/ANDROID_3.4.5/include/linux/arcdevice.h b/ANDROID_3.4.5/include/linux/arcdevice.h
deleted file mode 100644
index 7216b0da..00000000
--- a/ANDROID_3.4.5/include/linux/arcdevice.h
+++ /dev/null
@@ -1,346 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. NET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Definitions used by the ARCnet driver.
- *
- * Authors: Avery Pennarun and David Woodhouse
- *
- * 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_ARCDEVICE_H
-#define _LINUX_ARCDEVICE_H
-
-#include <asm/timex.h>
-#include <linux/if_arcnet.h>
-
-#ifdef __KERNEL__
-#include <linux/irqreturn.h>
-
-#ifndef bool
-#define bool int
-#endif
-
-/*
- * RECON_THRESHOLD is the maximum number of RECON messages to receive
- * within one minute before printing a "cabling problem" warning. The
- * default value should be fine.
- *
- * After that, a "cabling restored" message will be printed on the next IRQ
- * if no RECON messages have been received for 10 seconds.
- *
- * Do not define RECON_THRESHOLD at all if you want to disable this feature.
- */
-#define RECON_THRESHOLD 30
-
-
-/*
- * Define this to the minimum "timeout" value. If a transmit takes longer
- * than TX_TIMEOUT jiffies, Linux will abort the TX and retry. On a large
- * network, or one with heavy network traffic, this timeout may need to be
- * increased. The larger it is, though, the longer it will be between
- * necessary transmits - don't set this too high.
- */
-#define TX_TIMEOUT (HZ * 200 / 1000)
-
-
-/* Display warnings about the driver being an ALPHA version. */
-#undef ALPHA_WARNING
-
-
-/*
- * Debugging bitflags: each option can be enabled individually.
- *
- * Note: only debug flags included in the ARCNET_DEBUG_MAX define will
- * actually be available. GCC will (at least, GCC 2.7.0 will) notice
- * lines using a BUGLVL not in ARCNET_DEBUG_MAX and automatically optimize
- * them out.
- */
-#define D_NORMAL 1 /* important operational info */
-#define D_EXTRA 2 /* useful, but non-vital information */
-#define D_INIT 4 /* show init/probe messages */
-#define D_INIT_REASONS 8 /* show reasons for discarding probes */
-#define D_RECON 32 /* print a message whenever token is lost */
-#define D_PROTO 64 /* debug auto-protocol support */
-/* debug levels below give LOTS of output during normal operation! */
-#define D_DURING 128 /* trace operations (including irq's) */
-#define D_TX 256 /* show tx packets */
-#define D_RX 512 /* show rx packets */
-#define D_SKB 1024 /* show skb's */
-#define D_SKB_SIZE 2048 /* show skb sizes */
-#define D_TIMING 4096 /* show time needed to copy buffers to card */
-#define D_DEBUG 8192 /* Very detailed debug line for line */
-
-#ifndef ARCNET_DEBUG_MAX
-#define ARCNET_DEBUG_MAX (127) /* change to ~0 if you want detailed debugging */
-#endif
-
-#ifndef ARCNET_DEBUG
-#define ARCNET_DEBUG (D_NORMAL|D_EXTRA)
-#endif
-extern int arcnet_debug;
-
-/* macros to simplify debug checking */
-#define BUGLVL(x) if ((ARCNET_DEBUG_MAX)&arcnet_debug&(x))
-#define BUGMSG2(x,msg,args...) do { BUGLVL(x) printk(msg, ## args); } while (0)
-#define BUGMSG(x,msg,args...) \
- BUGMSG2(x, "%s%6s: " msg, \
- x==D_NORMAL ? KERN_WARNING \
- : x < D_DURING ? KERN_INFO : KERN_DEBUG, \
- dev->name , ## args)
-
-/* see how long a function call takes to run, expressed in CPU cycles */
-#define TIME(name, bytes, call) BUGLVL(D_TIMING) { \
- unsigned long _x, _y; \
- _x = get_cycles(); \
- call; \
- _y = get_cycles(); \
- BUGMSG(D_TIMING, \
- "%s: %d bytes in %lu cycles == " \
- "%lu Kbytes/100Mcycle\n",\
- name, bytes, _y - _x, \
- 100000000 / 1024 * bytes / (_y - _x + 1));\
- } \
- else { \
- call;\
- }
-
-
-/*
- * Time needed to reset the card - in ms (milliseconds). This works on my
- * SMC PC100. I can't find a reference that tells me just how long I
- * should wait.
- */
-#define RESETtime (300)
-
-/*
- * These are the max/min lengths of packet payload, not including the
- * arc_hardware header, but definitely including the soft header.
- *
- * Note: packet sizes 254, 255, 256 are impossible because of the way
- * ARCnet registers work That's why RFC1201 defines "exception" packets.
- * In non-RFC1201 protocols, we have to just tack some extra bytes on the
- * end.
- */
-#define MTU 253 /* normal packet max size */
-#define MinTU 257 /* extended packet min size */
-#define XMTU 508 /* extended packet max size */
-
-/* status/interrupt mask bit fields */
-#define TXFREEflag 0x01 /* transmitter available */
-#define TXACKflag 0x02 /* transmitted msg. ackd */
-#define RECONflag 0x04 /* network reconfigured */
-#define TESTflag 0x08 /* test flag */
-#define EXCNAKflag 0x08 /* excesive nak flag */
-#define RESETflag 0x10 /* power-on-reset */
-#define RES1flag 0x20 /* reserved - usually set by jumper */
-#define RES2flag 0x40 /* reserved - usually set by jumper */
-#define NORXflag 0x80 /* receiver inhibited */
-
-/* Flags used for IO-mapped memory operations */
-#define AUTOINCflag 0x40 /* Increase location with each access */
-#define IOMAPflag 0x02 /* (for 90xx) Use IO mapped memory, not mmap */
-#define ENABLE16flag 0x80 /* (for 90xx) Enable 16-bit mode */
-
-/* in the command register, the following bits have these meanings:
- * 0-2 command
- * 3-4 page number (for enable rcv/xmt command)
- * 7 receive broadcasts
- */
-#define NOTXcmd 0x01 /* disable transmitter */
-#define NORXcmd 0x02 /* disable receiver */
-#define TXcmd 0x03 /* enable transmitter */
-#define RXcmd 0x04 /* enable receiver */
-#define CONFIGcmd 0x05 /* define configuration */
-#define CFLAGScmd 0x06 /* clear flags */
-#define TESTcmd 0x07 /* load test flags */
-
-/* flags for "clear flags" command */
-#define RESETclear 0x08 /* power-on-reset */
-#define CONFIGclear 0x10 /* system reconfigured */
-
-#define EXCNAKclear 0x0E /* Clear and acknowledge the excive nak bit */
-
-/* flags for "load test flags" command */
-#define TESTload 0x08 /* test flag (diagnostic) */
-
-/* byte deposited into first address of buffers on reset */
-#define TESTvalue 0321 /* that's octal for 0xD1 :) */
-
-/* for "enable receiver" command */
-#define RXbcasts 0x80 /* receive broadcasts */
-
-/* flags for "define configuration" command */
-#define NORMALconf 0x00 /* 1-249 byte packets */
-#define EXTconf 0x08 /* 250-504 byte packets */
-
-/* card feature flags, set during auto-detection.
- * (currently only used by com20020pci)
- */
-#define ARC_IS_5MBIT 1 /* card default speed is 5MBit */
-#define ARC_CAN_10MBIT 2 /* card uses COM20022, supporting 10MBit,
- but default is 2.5MBit. */
-
-
-/* information needed to define an encapsulation driver */
-struct ArcProto {
- char suffix; /* a for RFC1201, e for ether-encap, etc. */
- int mtu; /* largest possible packet */
- int is_ip; /* This is a ip plugin - not a raw thing */
-
- void (*rx) (struct net_device * dev, int bufnum,
- struct archdr * pkthdr, int length);
- int (*build_header) (struct sk_buff * skb, struct net_device *dev,
- unsigned short ethproto, uint8_t daddr);
-
- /* these functions return '1' if the skb can now be freed */
- int (*prepare_tx) (struct net_device * dev, struct archdr * pkt, int length,
- int bufnum);
- int (*continue_tx) (struct net_device * dev, int bufnum);
- int (*ack_tx) (struct net_device * dev, int acked);
-};
-
-extern struct ArcProto *arc_proto_map[256], *arc_proto_default,
- *arc_bcast_proto, *arc_raw_proto;
-
-
-/*
- * "Incoming" is information needed for each address that could be sending
- * to us. Mostly for partially-received split packets.
- */
-struct Incoming {
- struct sk_buff *skb; /* packet data buffer */
- __be16 sequence; /* sequence number of assembly */
- uint8_t lastpacket, /* number of last packet (from 1) */
- numpackets; /* number of packets in split */
-};
-
-
-/* only needed for RFC1201 */
-struct Outgoing {
- struct ArcProto *proto; /* protocol driver that owns this:
- * if NULL, no packet is pending.
- */
- struct sk_buff *skb; /* buffer from upper levels */
- struct archdr *pkt; /* a pointer into the skb */
- uint16_t length, /* bytes total */
- dataleft, /* bytes left */
- segnum, /* segment being sent */
- numsegs; /* number of segments */
-};
-
-
-struct arcnet_local {
- uint8_t config, /* current value of CONFIG register */
- timeout, /* Extended timeout for COM20020 */
- backplane, /* Backplane flag for COM20020 */
- clockp, /* COM20020 clock divider */
- clockm, /* COM20020 clock multiplier flag */
- setup, /* Contents of setup1 register */
- setup2, /* Contents of setup2 register */
- intmask; /* current value of INTMASK register */
- uint8_t default_proto[256]; /* default encap to use for each host */
- int cur_tx, /* buffer used by current transmit, or -1 */
- next_tx, /* buffer where a packet is ready to send */
- cur_rx; /* current receive buffer */
- int lastload_dest, /* can last loaded packet be acked? */
- lasttrans_dest; /* can last TX'd packet be acked? */
- int timed_out; /* need to process TX timeout and drop packet */
- unsigned long last_timeout; /* time of last reported timeout */
- char *card_name; /* card ident string */
- int card_flags; /* special card features */
-
-
- /* On preemtive and SMB a lock is needed */
- spinlock_t lock;
-
- /*
- * Buffer management: an ARCnet card has 4 x 512-byte buffers, each of
- * which can be used for either sending or receiving. The new dynamic
- * buffer management routines use a simple circular queue of available
- * buffers, and take them as they're needed. This way, we simplify
- * situations in which we (for example) want to pre-load a transmit
- * buffer, or start receiving while we copy a received packet to
- * memory.
- *
- * The rules: only the interrupt handler is allowed to _add_ buffers to
- * the queue; thus, this doesn't require a lock. Both the interrupt
- * handler and the transmit function will want to _remove_ buffers, so
- * we need to handle the situation where they try to do it at the same
- * time.
- *
- * If next_buf == first_free_buf, the queue is empty. Since there are
- * only four possible buffers, the queue should never be full.
- */
- atomic_t buf_lock;
- int buf_queue[5];
- int next_buf, first_free_buf;
-
- /* network "reconfiguration" handling */
- unsigned long first_recon; /* time of "first" RECON message to count */
- unsigned long last_recon; /* time of most recent RECON */
- int num_recons; /* number of RECONs between first and last. */
- bool network_down; /* do we think the network is down? */
-
- bool excnak_pending; /* We just got an excesive nak interrupt */
-
- struct {
- uint16_t sequence; /* sequence number (incs with each packet) */
- __be16 aborted_seq;
-
- struct Incoming incoming[256]; /* one from each address */
- } rfc1201;
-
- /* really only used by rfc1201, but we'll pretend it's not */
- struct Outgoing outgoing; /* packet currently being sent */
-
- /* hardware-specific functions */
- struct {
- struct module *owner;
- void (*command) (struct net_device * dev, int cmd);
- int (*status) (struct net_device * dev);
- void (*intmask) (struct net_device * dev, int mask);
- bool (*reset) (struct net_device * dev, bool really_reset);
- void (*open) (struct net_device * dev);
- void (*close) (struct net_device * dev);
-
- void (*copy_to_card) (struct net_device * dev, int bufnum, int offset,
- void *buf, int count);
- void (*copy_from_card) (struct net_device * dev, int bufnum, int offset,
- void *buf, int count);
- } hw;
-
- void __iomem *mem_start; /* pointer to ioremap'ed MMIO */
-};
-
-
-#define ARCRESET(x) (lp->hw.reset(dev, (x)))
-#define ACOMMAND(x) (lp->hw.command(dev, (x)))
-#define ASTATUS() (lp->hw.status(dev))
-#define AINTMASK(x) (lp->hw.intmask(dev, (x)))
-
-
-
-#if ARCNET_DEBUG_MAX & D_SKB
-void arcnet_dump_skb(struct net_device *dev, struct sk_buff *skb, char *desc);
-#else
-#define arcnet_dump_skb(dev,skb,desc) ;
-#endif
-
-void arcnet_unregister_proto(struct ArcProto *proto);
-irqreturn_t arcnet_interrupt(int irq, void *dev_id);
-struct net_device *alloc_arcdev(const char *name);
-
-int arcnet_open(struct net_device *dev);
-int arcnet_close(struct net_device *dev);
-netdev_tx_t arcnet_send_packet(struct sk_buff *skb,
- struct net_device *dev);
-void arcnet_timeout(struct net_device *dev);
-
-#endif /* __KERNEL__ */
-#endif /* _LINUX_ARCDEVICE_H */
diff --git a/ANDROID_3.4.5/include/linux/arcfb.h b/ANDROID_3.4.5/include/linux/arcfb.h
deleted file mode 100644
index 721e7654..00000000
--- a/ANDROID_3.4.5/include/linux/arcfb.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef __LINUX_ARCFB_H__
-#define __LINUX_ARCFB_H__
-
-#define FBIO_WAITEVENT _IO('F', 0x88)
-#define FBIO_GETCONTROL2 _IOR('F', 0x89, size_t)
-
-#endif
-
diff --git a/ANDROID_3.4.5/include/linux/async.h b/ANDROID_3.4.5/include/linux/async.h
deleted file mode 100644
index 68a95301..00000000
--- a/ANDROID_3.4.5/include/linux/async.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * async.h: Asynchronous function calls for boot performance
- *
- * (C) Copyright 2009 Intel Corporation
- * Author: Arjan van de Ven <arjan@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
- * as published by the Free Software Foundation; version 2
- * of the License.
- */
-
-#include <linux/types.h>
-#include <linux/list.h>
-
-typedef u64 async_cookie_t;
-typedef void (async_func_ptr) (void *data, async_cookie_t cookie);
-
-extern async_cookie_t async_schedule(async_func_ptr *ptr, void *data);
-extern async_cookie_t async_schedule_domain(async_func_ptr *ptr, void *data,
- struct list_head *list);
-extern void async_synchronize_full(void);
-extern void async_synchronize_full_domain(struct list_head *list);
-extern void async_synchronize_cookie(async_cookie_t cookie);
-extern void async_synchronize_cookie_domain(async_cookie_t cookie,
- struct list_head *list);
-
diff --git a/ANDROID_3.4.5/include/linux/async_tx.h b/ANDROID_3.4.5/include/linux/async_tx.h
deleted file mode 100644
index a1c486a8..00000000
--- a/ANDROID_3.4.5/include/linux/async_tx.h
+++ /dev/null
@@ -1,209 +0,0 @@
-/*
- * Copyright © 2006, Intel Corporation.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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 _ASYNC_TX_H_
-#define _ASYNC_TX_H_
-#include <linux/dmaengine.h>
-#include <linux/spinlock.h>
-#include <linux/interrupt.h>
-
-/* on architectures without dma-mapping capabilities we need to ensure
- * that the asynchronous path compiles away
- */
-#ifdef CONFIG_HAS_DMA
-#define __async_inline
-#else
-#define __async_inline __always_inline
-#endif
-
-/**
- * dma_chan_ref - object used to manage dma channels received from the
- * dmaengine core.
- * @chan - the channel being tracked
- * @node - node for the channel to be placed on async_tx_master_list
- * @rcu - for list_del_rcu
- * @count - number of times this channel is listed in the pool
- * (for channels with multiple capabiities)
- */
-struct dma_chan_ref {
- struct dma_chan *chan;
- struct list_head node;
- struct rcu_head rcu;
- atomic_t count;
-};
-
-/**
- * async_tx_flags - modifiers for the async_* calls
- * @ASYNC_TX_XOR_ZERO_DST: this flag must be used for xor operations where the
- * the destination address is not a source. The asynchronous case handles this
- * implicitly, the synchronous case needs to zero the destination block.
- * @ASYNC_TX_XOR_DROP_DST: this flag must be used if the destination address is
- * also one of the source addresses. In the synchronous case the destination
- * address is an implied source, whereas the asynchronous case it must be listed
- * as a source. The destination address must be the first address in the source
- * array.
- * @ASYNC_TX_ACK: immediately ack the descriptor, precludes setting up a
- * dependency chain
- * @ASYNC_TX_FENCE: specify that the next operation in the dependency
- * chain uses this operation's result as an input
- */
-enum async_tx_flags {
- ASYNC_TX_XOR_ZERO_DST = (1 << 0),
- ASYNC_TX_XOR_DROP_DST = (1 << 1),
- ASYNC_TX_ACK = (1 << 2),
- ASYNC_TX_FENCE = (1 << 3),
-};
-
-/**
- * struct async_submit_ctl - async_tx submission/completion modifiers
- * @flags: submission modifiers
- * @depend_tx: parent dependency of the current operation being submitted
- * @cb_fn: callback routine to run at operation completion
- * @cb_param: parameter for the callback routine
- * @scribble: caller provided space for dma/page address conversions
- */
-struct async_submit_ctl {
- enum async_tx_flags flags;
- struct dma_async_tx_descriptor *depend_tx;
- dma_async_tx_callback cb_fn;
- void *cb_param;
- void *scribble;
-};
-
-#ifdef CONFIG_DMA_ENGINE
-#define async_tx_issue_pending_all dma_issue_pending_all
-
-/**
- * async_tx_issue_pending - send pending descriptor to the hardware channel
- * @tx: descriptor handle to retrieve hardware context
- *
- * Note: any dependent operations will have already been issued by
- * async_tx_channel_switch, or (in the case of no channel switch) will
- * be already pending on this channel.
- */
-static inline void async_tx_issue_pending(struct dma_async_tx_descriptor *tx)
-{
- if (likely(tx)) {
- struct dma_chan *chan = tx->chan;
- struct dma_device *dma = chan->device;
-
- dma->device_issue_pending(chan);
- }
-}
-#ifdef CONFIG_ARCH_HAS_ASYNC_TX_FIND_CHANNEL
-#include <asm/async_tx.h>
-#else
-#define async_tx_find_channel(dep, type, dst, dst_count, src, src_count, len) \
- __async_tx_find_channel(dep, type)
-struct dma_chan *
-__async_tx_find_channel(struct async_submit_ctl *submit,
- enum dma_transaction_type tx_type);
-#endif /* CONFIG_ARCH_HAS_ASYNC_TX_FIND_CHANNEL */
-#else
-static inline void async_tx_issue_pending_all(void)
-{
- do { } while (0);
-}
-
-static inline void async_tx_issue_pending(struct dma_async_tx_descriptor *tx)
-{
- do { } while (0);
-}
-
-static inline struct dma_chan *
-async_tx_find_channel(struct async_submit_ctl *submit,
- enum dma_transaction_type tx_type, struct page **dst,
- int dst_count, struct page **src, int src_count,
- size_t len)
-{
- return NULL;
-}
-#endif
-
-/**
- * async_tx_sync_epilog - actions to take if an operation is run synchronously
- * @cb_fn: function to call when the transaction completes
- * @cb_fn_param: parameter to pass to the callback routine
- */
-static inline void
-async_tx_sync_epilog(struct async_submit_ctl *submit)
-{
- if (submit->cb_fn)
- submit->cb_fn(submit->cb_param);
-}
-
-typedef union {
- unsigned long addr;
- struct page *page;
- dma_addr_t dma;
-} addr_conv_t;
-
-static inline void
-init_async_submit(struct async_submit_ctl *args, enum async_tx_flags flags,
- struct dma_async_tx_descriptor *tx,
- dma_async_tx_callback cb_fn, void *cb_param,
- addr_conv_t *scribble)
-{
- args->flags = flags;
- args->depend_tx = tx;
- args->cb_fn = cb_fn;
- args->cb_param = cb_param;
- args->scribble = scribble;
-}
-
-void async_tx_submit(struct dma_chan *chan, struct dma_async_tx_descriptor *tx,
- struct async_submit_ctl *submit);
-
-struct dma_async_tx_descriptor *
-async_xor(struct page *dest, struct page **src_list, unsigned int offset,
- int src_cnt, size_t len, struct async_submit_ctl *submit);
-
-struct dma_async_tx_descriptor *
-async_xor_val(struct page *dest, struct page **src_list, unsigned int offset,
- int src_cnt, size_t len, enum sum_check_flags *result,
- struct async_submit_ctl *submit);
-
-struct dma_async_tx_descriptor *
-async_memcpy(struct page *dest, struct page *src, unsigned int dest_offset,
- unsigned int src_offset, size_t len,
- struct async_submit_ctl *submit);
-
-struct dma_async_tx_descriptor *
-async_memset(struct page *dest, int val, unsigned int offset,
- size_t len, struct async_submit_ctl *submit);
-
-struct dma_async_tx_descriptor *async_trigger_callback(struct async_submit_ctl *submit);
-
-struct dma_async_tx_descriptor *
-async_gen_syndrome(struct page **blocks, unsigned int offset, int src_cnt,
- size_t len, struct async_submit_ctl *submit);
-
-struct dma_async_tx_descriptor *
-async_syndrome_val(struct page **blocks, unsigned int offset, int src_cnt,
- size_t len, enum sum_check_flags *pqres, struct page *spare,
- struct async_submit_ctl *submit);
-
-struct dma_async_tx_descriptor *
-async_raid6_2data_recov(int src_num, size_t bytes, int faila, int failb,
- struct page **ptrs, struct async_submit_ctl *submit);
-
-struct dma_async_tx_descriptor *
-async_raid6_datap_recov(int src_num, size_t bytes, int faila,
- struct page **ptrs, struct async_submit_ctl *submit);
-
-void async_tx_quiesce(struct dma_async_tx_descriptor **tx);
-#endif /* _ASYNC_TX_H_ */
diff --git a/ANDROID_3.4.5/include/linux/ata.h b/ANDROID_3.4.5/include/linux/ata.h
deleted file mode 100644
index 32df2b6e..00000000
--- a/ANDROID_3.4.5/include/linux/ata.h
+++ /dev/null
@@ -1,1078 +0,0 @@
-
-/*
- * Copyright 2003-2004 Red Hat, Inc. All rights reserved.
- * Copyright 2003-2004 Jeff Garzik
- *
- *
- * 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.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- *
- * libata documentation is available via 'make {ps|pdf}docs',
- * as Documentation/DocBook/libata.*
- *
- * Hardware documentation available from http://www.t13.org/
- *
- */
-
-#ifndef __LINUX_ATA_H__
-#define __LINUX_ATA_H__
-
-#include <linux/kernel.h>
-#include <linux/string.h>
-#include <linux/types.h>
-#include <asm/byteorder.h>
-
-/* defines only for the constants which don't work well as enums */
-#define ATA_DMA_BOUNDARY 0xffffUL
-#define ATA_DMA_MASK 0xffffffffULL
-
-enum {
- /* various global constants */
- ATA_MAX_DEVICES = 2, /* per bus/port */
- ATA_MAX_PRD = 256, /* we could make these 256/256 */
- ATA_SECT_SIZE = 512,
- ATA_MAX_SECTORS_128 = 128,
- ATA_MAX_SECTORS = 256,
- ATA_MAX_SECTORS_LBA48 = 65535,/* TODO: 65536? */
- ATA_MAX_SECTORS_TAPE = 65535,
-
- ATA_ID_WORDS = 256,
- ATA_ID_CONFIG = 0,
- ATA_ID_CYLS = 1,
- ATA_ID_HEADS = 3,
- ATA_ID_SECTORS = 6,
- ATA_ID_SERNO = 10,
- ATA_ID_BUF_SIZE = 21,
- ATA_ID_FW_REV = 23,
- ATA_ID_PROD = 27,
- ATA_ID_MAX_MULTSECT = 47,
- ATA_ID_DWORD_IO = 48,
- ATA_ID_CAPABILITY = 49,
- ATA_ID_OLD_PIO_MODES = 51,
- ATA_ID_OLD_DMA_MODES = 52,
- ATA_ID_FIELD_VALID = 53,
- ATA_ID_CUR_CYLS = 54,
- ATA_ID_CUR_HEADS = 55,
- ATA_ID_CUR_SECTORS = 56,
- ATA_ID_MULTSECT = 59,
- ATA_ID_LBA_CAPACITY = 60,
- ATA_ID_SWDMA_MODES = 62,
- ATA_ID_MWDMA_MODES = 63,
- ATA_ID_PIO_MODES = 64,
- ATA_ID_EIDE_DMA_MIN = 65,
- ATA_ID_EIDE_DMA_TIME = 66,
- ATA_ID_EIDE_PIO = 67,
- ATA_ID_EIDE_PIO_IORDY = 68,
- ATA_ID_ADDITIONAL_SUPP = 69,
- ATA_ID_QUEUE_DEPTH = 75,
- ATA_ID_MAJOR_VER = 80,
- ATA_ID_COMMAND_SET_1 = 82,
- ATA_ID_COMMAND_SET_2 = 83,
- ATA_ID_CFSSE = 84,
- ATA_ID_CFS_ENABLE_1 = 85,
- ATA_ID_CFS_ENABLE_2 = 86,
- ATA_ID_CSF_DEFAULT = 87,
- ATA_ID_UDMA_MODES = 88,
- ATA_ID_HW_CONFIG = 93,
- ATA_ID_SPG = 98,
- ATA_ID_LBA_CAPACITY_2 = 100,
- ATA_ID_SECTOR_SIZE = 106,
- ATA_ID_WWN = 108,
- ATA_ID_LOGICAL_SECTOR_SIZE = 117, /* and 118 */
- ATA_ID_LAST_LUN = 126,
- ATA_ID_DLF = 128,
- ATA_ID_CSFO = 129,
- ATA_ID_CFA_POWER = 160,
- ATA_ID_CFA_KEY_MGMT = 162,
- ATA_ID_CFA_MODES = 163,
- ATA_ID_DATA_SET_MGMT = 169,
- ATA_ID_ROT_SPEED = 217,
- ATA_ID_PIO4 = (1 << 1),
-
- ATA_ID_SERNO_LEN = 20,
- ATA_ID_FW_REV_LEN = 8,
- ATA_ID_PROD_LEN = 40,
- ATA_ID_WWN_LEN = 8,
-
- ATA_PCI_CTL_OFS = 2,
-
- ATA_PIO0 = (1 << 0),
- ATA_PIO1 = ATA_PIO0 | (1 << 1),
- ATA_PIO2 = ATA_PIO1 | (1 << 2),
- ATA_PIO3 = ATA_PIO2 | (1 << 3),
- ATA_PIO4 = ATA_PIO3 | (1 << 4),
- ATA_PIO5 = ATA_PIO4 | (1 << 5),
- ATA_PIO6 = ATA_PIO5 | (1 << 6),
-
- ATA_PIO4_ONLY = (1 << 4),
-
- ATA_SWDMA0 = (1 << 0),
- ATA_SWDMA1 = ATA_SWDMA0 | (1 << 1),
- ATA_SWDMA2 = ATA_SWDMA1 | (1 << 2),
-
- ATA_SWDMA2_ONLY = (1 << 2),
-
- ATA_MWDMA0 = (1 << 0),
- ATA_MWDMA1 = ATA_MWDMA0 | (1 << 1),
- ATA_MWDMA2 = ATA_MWDMA1 | (1 << 2),
- ATA_MWDMA3 = ATA_MWDMA2 | (1 << 3),
- ATA_MWDMA4 = ATA_MWDMA3 | (1 << 4),
-
- ATA_MWDMA12_ONLY = (1 << 1) | (1 << 2),
- ATA_MWDMA2_ONLY = (1 << 2),
-
- ATA_UDMA0 = (1 << 0),
- ATA_UDMA1 = ATA_UDMA0 | (1 << 1),
- ATA_UDMA2 = ATA_UDMA1 | (1 << 2),
- ATA_UDMA3 = ATA_UDMA2 | (1 << 3),
- ATA_UDMA4 = ATA_UDMA3 | (1 << 4),
- ATA_UDMA5 = ATA_UDMA4 | (1 << 5),
- ATA_UDMA6 = ATA_UDMA5 | (1 << 6),
- ATA_UDMA7 = ATA_UDMA6 | (1 << 7),
- /* ATA_UDMA7 is just for completeness... doesn't exist (yet?). */
-
- ATA_UDMA24_ONLY = (1 << 2) | (1 << 4),
-
- ATA_UDMA_MASK_40C = ATA_UDMA2, /* udma0-2 */
-
- /* DMA-related */
- ATA_PRD_SZ = 8,
- ATA_PRD_TBL_SZ = (ATA_MAX_PRD * ATA_PRD_SZ),
- ATA_PRD_EOT = (1 << 31), /* end-of-table flag */
-
- ATA_DMA_TABLE_OFS = 4,
- ATA_DMA_STATUS = 2,
- ATA_DMA_CMD = 0,
- ATA_DMA_WR = (1 << 3),
- ATA_DMA_START = (1 << 0),
- ATA_DMA_INTR = (1 << 2),
- ATA_DMA_ERR = (1 << 1),
- ATA_DMA_ACTIVE = (1 << 0),
-
- /* bits in ATA command block registers */
- ATA_HOB = (1 << 7), /* LBA48 selector */
- ATA_NIEN = (1 << 1), /* disable-irq flag */
- ATA_LBA = (1 << 6), /* LBA28 selector */
- ATA_DEV1 = (1 << 4), /* Select Device 1 (slave) */
- ATA_DEVICE_OBS = (1 << 7) | (1 << 5), /* obs bits in dev reg */
- ATA_DEVCTL_OBS = (1 << 3), /* obsolete bit in devctl reg */
- ATA_BUSY = (1 << 7), /* BSY status bit */
- ATA_DRDY = (1 << 6), /* device ready */
- ATA_DF = (1 << 5), /* device fault */
- ATA_DSC = (1 << 4), /* drive seek complete */
- ATA_DRQ = (1 << 3), /* data request i/o */
- ATA_CORR = (1 << 2), /* corrected data error */
- ATA_IDX = (1 << 1), /* index */
- ATA_ERR = (1 << 0), /* have an error */
- ATA_SRST = (1 << 2), /* software reset */
- ATA_ICRC = (1 << 7), /* interface CRC error */
- ATA_BBK = ATA_ICRC, /* pre-EIDE: block marked bad */
- ATA_UNC = (1 << 6), /* uncorrectable media error */
- ATA_MC = (1 << 5), /* media changed */
- ATA_IDNF = (1 << 4), /* ID not found */
- ATA_MCR = (1 << 3), /* media change requested */
- ATA_ABORTED = (1 << 2), /* command aborted */
- ATA_TRK0NF = (1 << 1), /* track 0 not found */
- ATA_AMNF = (1 << 0), /* address mark not found */
- ATAPI_LFS = 0xF0, /* last failed sense */
- ATAPI_EOM = ATA_TRK0NF, /* end of media */
- ATAPI_ILI = ATA_AMNF, /* illegal length indication */
- ATAPI_IO = (1 << 1),
- ATAPI_COD = (1 << 0),
-
- /* ATA command block registers */
- ATA_REG_DATA = 0x00,
- ATA_REG_ERR = 0x01,
- ATA_REG_NSECT = 0x02,
- ATA_REG_LBAL = 0x03,
- ATA_REG_LBAM = 0x04,
- ATA_REG_LBAH = 0x05,
- ATA_REG_DEVICE = 0x06,
- ATA_REG_STATUS = 0x07,
-
- ATA_REG_FEATURE = ATA_REG_ERR, /* and their aliases */
- ATA_REG_CMD = ATA_REG_STATUS,
- ATA_REG_BYTEL = ATA_REG_LBAM,
- ATA_REG_BYTEH = ATA_REG_LBAH,
- ATA_REG_DEVSEL = ATA_REG_DEVICE,
- ATA_REG_IRQ = ATA_REG_NSECT,
-
- /* ATA device commands */
- ATA_CMD_DEV_RESET = 0x08, /* ATAPI device reset */
- ATA_CMD_CHK_POWER = 0xE5, /* check power mode */
- ATA_CMD_STANDBY = 0xE2, /* place in standby power mode */
- ATA_CMD_IDLE = 0xE3, /* place in idle power mode */
- ATA_CMD_EDD = 0x90, /* execute device diagnostic */
- ATA_CMD_DOWNLOAD_MICRO = 0x92,
- ATA_CMD_NOP = 0x00,
- ATA_CMD_FLUSH = 0xE7,
- ATA_CMD_FLUSH_EXT = 0xEA,
- ATA_CMD_ID_ATA = 0xEC,
- ATA_CMD_ID_ATAPI = 0xA1,
- ATA_CMD_SERVICE = 0xA2,
- ATA_CMD_READ = 0xC8,
- ATA_CMD_READ_EXT = 0x25,
- ATA_CMD_READ_QUEUED = 0x26,
- ATA_CMD_READ_STREAM_EXT = 0x2B,
- ATA_CMD_READ_STREAM_DMA_EXT = 0x2A,
- ATA_CMD_WRITE = 0xCA,
- ATA_CMD_WRITE_EXT = 0x35,
- ATA_CMD_WRITE_QUEUED = 0x36,
- ATA_CMD_WRITE_STREAM_EXT = 0x3B,
- ATA_CMD_WRITE_STREAM_DMA_EXT = 0x3A,
- ATA_CMD_WRITE_FUA_EXT = 0x3D,
- ATA_CMD_WRITE_QUEUED_FUA_EXT = 0x3E,
- ATA_CMD_FPDMA_READ = 0x60,
- ATA_CMD_FPDMA_WRITE = 0x61,
- ATA_CMD_PIO_READ = 0x20,
- ATA_CMD_PIO_READ_EXT = 0x24,
- ATA_CMD_PIO_WRITE = 0x30,
- ATA_CMD_PIO_WRITE_EXT = 0x34,
- ATA_CMD_READ_MULTI = 0xC4,
- ATA_CMD_READ_MULTI_EXT = 0x29,
- ATA_CMD_WRITE_MULTI = 0xC5,
- ATA_CMD_WRITE_MULTI_EXT = 0x39,
- ATA_CMD_WRITE_MULTI_FUA_EXT = 0xCE,
- ATA_CMD_SET_FEATURES = 0xEF,
- ATA_CMD_SET_MULTI = 0xC6,
- ATA_CMD_PACKET = 0xA0,
- ATA_CMD_VERIFY = 0x40,
- ATA_CMD_VERIFY_EXT = 0x42,
- ATA_CMD_WRITE_UNCORR_EXT = 0x45,
- ATA_CMD_STANDBYNOW1 = 0xE0,
- ATA_CMD_IDLEIMMEDIATE = 0xE1,
- ATA_CMD_SLEEP = 0xE6,
- ATA_CMD_INIT_DEV_PARAMS = 0x91,
- ATA_CMD_READ_NATIVE_MAX = 0xF8,
- ATA_CMD_READ_NATIVE_MAX_EXT = 0x27,
- ATA_CMD_SET_MAX = 0xF9,
- ATA_CMD_SET_MAX_EXT = 0x37,
- ATA_CMD_READ_LOG_EXT = 0x2F,
- ATA_CMD_WRITE_LOG_EXT = 0x3F,
- ATA_CMD_READ_LOG_DMA_EXT = 0x47,
- ATA_CMD_WRITE_LOG_DMA_EXT = 0x57,
- ATA_CMD_TRUSTED_RCV = 0x5C,
- ATA_CMD_TRUSTED_RCV_DMA = 0x5D,
- ATA_CMD_TRUSTED_SND = 0x5E,
- ATA_CMD_TRUSTED_SND_DMA = 0x5F,
- ATA_CMD_PMP_READ = 0xE4,
- ATA_CMD_PMP_WRITE = 0xE8,
- ATA_CMD_CONF_OVERLAY = 0xB1,
- ATA_CMD_SEC_SET_PASS = 0xF1,
- ATA_CMD_SEC_UNLOCK = 0xF2,
- ATA_CMD_SEC_ERASE_PREP = 0xF3,
- ATA_CMD_SEC_ERASE_UNIT = 0xF4,
- ATA_CMD_SEC_FREEZE_LOCK = 0xF5,
- ATA_CMD_SEC_DISABLE_PASS = 0xF6,
- ATA_CMD_CONFIG_STREAM = 0x51,
- ATA_CMD_SMART = 0xB0,
- ATA_CMD_MEDIA_LOCK = 0xDE,
- ATA_CMD_MEDIA_UNLOCK = 0xDF,
- ATA_CMD_DSM = 0x06,
- ATA_CMD_CHK_MED_CRD_TYP = 0xD1,
- ATA_CMD_CFA_REQ_EXT_ERR = 0x03,
- ATA_CMD_CFA_WRITE_NE = 0x38,
- ATA_CMD_CFA_TRANS_SECT = 0x87,
- ATA_CMD_CFA_ERASE = 0xC0,
- ATA_CMD_CFA_WRITE_MULT_NE = 0xCD,
- /* marked obsolete in the ATA/ATAPI-7 spec */
- ATA_CMD_RESTORE = 0x10,
-
- /* READ_LOG_EXT pages */
- ATA_LOG_SATA_NCQ = 0x10,
-
- /* READ/WRITE LONG (obsolete) */
- ATA_CMD_READ_LONG = 0x22,
- ATA_CMD_READ_LONG_ONCE = 0x23,
- ATA_CMD_WRITE_LONG = 0x32,
- ATA_CMD_WRITE_LONG_ONCE = 0x33,
-
- /* SETFEATURES stuff */
- SETFEATURES_XFER = 0x03,
- XFER_UDMA_7 = 0x47,
- XFER_UDMA_6 = 0x46,
- XFER_UDMA_5 = 0x45,
- XFER_UDMA_4 = 0x44,
- XFER_UDMA_3 = 0x43,
- XFER_UDMA_2 = 0x42,
- XFER_UDMA_1 = 0x41,
- XFER_UDMA_0 = 0x40,
- XFER_MW_DMA_4 = 0x24, /* CFA only */
- XFER_MW_DMA_3 = 0x23, /* CFA only */
- XFER_MW_DMA_2 = 0x22,
- XFER_MW_DMA_1 = 0x21,
- XFER_MW_DMA_0 = 0x20,
- XFER_SW_DMA_2 = 0x12,
- XFER_SW_DMA_1 = 0x11,
- XFER_SW_DMA_0 = 0x10,
- XFER_PIO_6 = 0x0E, /* CFA only */
- XFER_PIO_5 = 0x0D, /* CFA only */
- XFER_PIO_4 = 0x0C,
- XFER_PIO_3 = 0x0B,
- XFER_PIO_2 = 0x0A,
- XFER_PIO_1 = 0x09,
- XFER_PIO_0 = 0x08,
- XFER_PIO_SLOW = 0x00,
-
- SETFEATURES_WC_ON = 0x02, /* Enable write cache */
- SETFEATURES_WC_OFF = 0x82, /* Disable write cache */
-
- /* Enable/Disable Automatic Acoustic Management */
- SETFEATURES_AAM_ON = 0x42,
- SETFEATURES_AAM_OFF = 0xC2,
-
- SETFEATURES_SPINUP = 0x07, /* Spin-up drive */
-
- SETFEATURES_SATA_ENABLE = 0x10, /* Enable use of SATA feature */
- SETFEATURES_SATA_DISABLE = 0x90, /* Disable use of SATA feature */
-
- /* SETFEATURE Sector counts for SATA features */
- SATA_FPDMA_OFFSET = 0x01, /* FPDMA non-zero buffer offsets */
- SATA_FPDMA_AA = 0x02, /* FPDMA Setup FIS Auto-Activate */
- SATA_DIPM = 0x03, /* Device Initiated Power Management */
- SATA_FPDMA_IN_ORDER = 0x04, /* FPDMA in-order data delivery */
- SATA_AN = 0x05, /* Asynchronous Notification */
- SATA_SSP = 0x06, /* Software Settings Preservation */
-
- /* feature values for SET_MAX */
- ATA_SET_MAX_ADDR = 0x00,
- ATA_SET_MAX_PASSWD = 0x01,
- ATA_SET_MAX_LOCK = 0x02,
- ATA_SET_MAX_UNLOCK = 0x03,
- ATA_SET_MAX_FREEZE_LOCK = 0x04,
-
- /* feature values for DEVICE CONFIGURATION OVERLAY */
- ATA_DCO_RESTORE = 0xC0,
- ATA_DCO_FREEZE_LOCK = 0xC1,
- ATA_DCO_IDENTIFY = 0xC2,
- ATA_DCO_SET = 0xC3,
-
- /* feature values for SMART */
- ATA_SMART_ENABLE = 0xD8,
- ATA_SMART_READ_VALUES = 0xD0,
- ATA_SMART_READ_THRESHOLDS = 0xD1,
-
- /* feature values for Data Set Management */
- ATA_DSM_TRIM = 0x01,
-
- /* password used in LBA Mid / LBA High for executing SMART commands */
- ATA_SMART_LBAM_PASS = 0x4F,
- ATA_SMART_LBAH_PASS = 0xC2,
-
- /* ATAPI stuff */
- ATAPI_PKT_DMA = (1 << 0),
- ATAPI_DMADIR = (1 << 2), /* ATAPI data dir:
- 0=to device, 1=to host */
- ATAPI_CDB_LEN = 16,
-
- /* PMP stuff */
- SATA_PMP_MAX_PORTS = 15,
- SATA_PMP_CTRL_PORT = 15,
-
- SATA_PMP_GSCR_DWORDS = 128,
- SATA_PMP_GSCR_PROD_ID = 0,
- SATA_PMP_GSCR_REV = 1,
- SATA_PMP_GSCR_PORT_INFO = 2,
- SATA_PMP_GSCR_ERROR = 32,
- SATA_PMP_GSCR_ERROR_EN = 33,
- SATA_PMP_GSCR_FEAT = 64,
- SATA_PMP_GSCR_FEAT_EN = 96,
-
- SATA_PMP_PSCR_STATUS = 0,
- SATA_PMP_PSCR_ERROR = 1,
- SATA_PMP_PSCR_CONTROL = 2,
-
- SATA_PMP_FEAT_BIST = (1 << 0),
- SATA_PMP_FEAT_PMREQ = (1 << 1),
- SATA_PMP_FEAT_DYNSSC = (1 << 2),
- SATA_PMP_FEAT_NOTIFY = (1 << 3),
-
- /* cable types */
- ATA_CBL_NONE = 0,
- ATA_CBL_PATA40 = 1,
- ATA_CBL_PATA80 = 2,
- ATA_CBL_PATA40_SHORT = 3, /* 40 wire cable to high UDMA spec */
- ATA_CBL_PATA_UNK = 4, /* don't know, maybe 80c? */
- ATA_CBL_PATA_IGN = 5, /* don't know, ignore cable handling */
- ATA_CBL_SATA = 6,
-
- /* SATA Status and Control Registers */
- SCR_STATUS = 0,
- SCR_ERROR = 1,
- SCR_CONTROL = 2,
- SCR_ACTIVE = 3,
- SCR_NOTIFICATION = 4,
-
- /* SError bits */
- SERR_DATA_RECOVERED = (1 << 0), /* recovered data error */
- SERR_COMM_RECOVERED = (1 << 1), /* recovered comm failure */
- SERR_DATA = (1 << 8), /* unrecovered data error */
- SERR_PERSISTENT = (1 << 9), /* persistent data/comm error */
- SERR_PROTOCOL = (1 << 10), /* protocol violation */
- SERR_INTERNAL = (1 << 11), /* host internal error */
- SERR_PHYRDY_CHG = (1 << 16), /* PHY RDY changed */
- SERR_PHY_INT_ERR = (1 << 17), /* PHY internal error */
- SERR_COMM_WAKE = (1 << 18), /* Comm wake */
- SERR_10B_8B_ERR = (1 << 19), /* 10b to 8b decode error */
- SERR_DISPARITY = (1 << 20), /* Disparity */
- SERR_CRC = (1 << 21), /* CRC error */
- SERR_HANDSHAKE = (1 << 22), /* Handshake error */
- SERR_LINK_SEQ_ERR = (1 << 23), /* Link sequence error */
- SERR_TRANS_ST_ERROR = (1 << 24), /* Transport state trans. error */
- SERR_UNRECOG_FIS = (1 << 25), /* Unrecognized FIS */
- SERR_DEV_XCHG = (1 << 26), /* device exchanged */
-
- /* struct ata_taskfile flags */
- ATA_TFLAG_LBA48 = (1 << 0), /* enable 48-bit LBA and "HOB" */
- ATA_TFLAG_ISADDR = (1 << 1), /* enable r/w to nsect/lba regs */
- ATA_TFLAG_DEVICE = (1 << 2), /* enable r/w to device reg */
- ATA_TFLAG_WRITE = (1 << 3), /* data dir: host->dev==1 (write) */
- ATA_TFLAG_LBA = (1 << 4), /* enable LBA */
- ATA_TFLAG_FUA = (1 << 5), /* enable FUA */
- ATA_TFLAG_POLLING = (1 << 6), /* set nIEN to 1 and use polling */
-
- /* protocol flags */
- ATA_PROT_FLAG_PIO = (1 << 0), /* is PIO */
- ATA_PROT_FLAG_DMA = (1 << 1), /* is DMA */
- ATA_PROT_FLAG_DATA = ATA_PROT_FLAG_PIO | ATA_PROT_FLAG_DMA,
- ATA_PROT_FLAG_NCQ = (1 << 2), /* is NCQ */
- ATA_PROT_FLAG_ATAPI = (1 << 3), /* is ATAPI */
-};
-
-enum ata_tf_protocols {
- /* ATA taskfile protocols */
- ATA_PROT_UNKNOWN, /* unknown/invalid */
- ATA_PROT_NODATA, /* no data */
- ATA_PROT_PIO, /* PIO data xfer */
- ATA_PROT_DMA, /* DMA */
- ATA_PROT_NCQ, /* NCQ */
- ATAPI_PROT_NODATA, /* packet command, no data */
- ATAPI_PROT_PIO, /* packet command, PIO data xfer*/
- ATAPI_PROT_DMA, /* packet command with special DMA sauce */
-};
-
-enum ata_ioctls {
- ATA_IOC_GET_IO32 = 0x309,
- ATA_IOC_SET_IO32 = 0x324,
-};
-
-/* core structures */
-
-struct ata_bmdma_prd {
- __le32 addr;
- __le32 flags_len;
-};
-
-struct ata_taskfile {
- unsigned long flags; /* ATA_TFLAG_xxx */
- u8 protocol; /* ATA_PROT_xxx */
-
- u8 ctl; /* control reg */
-
- u8 hob_feature; /* additional data */
- u8 hob_nsect; /* to support LBA48 */
- u8 hob_lbal;
- u8 hob_lbam;
- u8 hob_lbah;
-
- u8 feature;
- u8 nsect;
- u8 lbal;
- u8 lbam;
- u8 lbah;
-
- u8 device;
-
- u8 command; /* IO operation */
-};
-
-/*
- * protocol tests
- */
-static inline unsigned int ata_prot_flags(u8 prot)
-{
- switch (prot) {
- case ATA_PROT_NODATA:
- return 0;
- case ATA_PROT_PIO:
- return ATA_PROT_FLAG_PIO;
- case ATA_PROT_DMA:
- return ATA_PROT_FLAG_DMA;
- case ATA_PROT_NCQ:
- return ATA_PROT_FLAG_DMA | ATA_PROT_FLAG_NCQ;
- case ATAPI_PROT_NODATA:
- return ATA_PROT_FLAG_ATAPI;
- case ATAPI_PROT_PIO:
- return ATA_PROT_FLAG_ATAPI | ATA_PROT_FLAG_PIO;
- case ATAPI_PROT_DMA:
- return ATA_PROT_FLAG_ATAPI | ATA_PROT_FLAG_DMA;
- }
- return 0;
-}
-
-static inline int ata_is_atapi(u8 prot)
-{
- return ata_prot_flags(prot) & ATA_PROT_FLAG_ATAPI;
-}
-
-static inline int ata_is_nodata(u8 prot)
-{
- return !(ata_prot_flags(prot) & ATA_PROT_FLAG_DATA);
-}
-
-static inline int ata_is_pio(u8 prot)
-{
- return ata_prot_flags(prot) & ATA_PROT_FLAG_PIO;
-}
-
-static inline int ata_is_dma(u8 prot)
-{
- return ata_prot_flags(prot) & ATA_PROT_FLAG_DMA;
-}
-
-static inline int ata_is_ncq(u8 prot)
-{
- return ata_prot_flags(prot) & ATA_PROT_FLAG_NCQ;
-}
-
-static inline int ata_is_data(u8 prot)
-{
- return ata_prot_flags(prot) & ATA_PROT_FLAG_DATA;
-}
-
-/*
- * id tests
- */
-#define ata_id_is_ata(id) (((id)[ATA_ID_CONFIG] & (1 << 15)) == 0)
-#define ata_id_has_lba(id) ((id)[ATA_ID_CAPABILITY] & (1 << 9))
-#define ata_id_has_dma(id) ((id)[ATA_ID_CAPABILITY] & (1 << 8))
-#define ata_id_has_ncq(id) ((id)[76] & (1 << 8))
-#define ata_id_queue_depth(id) (((id)[ATA_ID_QUEUE_DEPTH] & 0x1f) + 1)
-#define ata_id_removeable(id) ((id)[ATA_ID_CONFIG] & (1 << 7))
-#define ata_id_has_atapi_AN(id) \
- ( (((id)[76] != 0x0000) && ((id)[76] != 0xffff)) && \
- ((id)[78] & (1 << 5)) )
-#define ata_id_has_fpdma_aa(id) \
- ( (((id)[76] != 0x0000) && ((id)[76] != 0xffff)) && \
- ((id)[78] & (1 << 2)) )
-#define ata_id_iordy_disable(id) ((id)[ATA_ID_CAPABILITY] & (1 << 10))
-#define ata_id_has_iordy(id) ((id)[ATA_ID_CAPABILITY] & (1 << 11))
-#define ata_id_u32(id,n) \
- (((u32) (id)[(n) + 1] << 16) | ((u32) (id)[(n)]))
-#define ata_id_u64(id,n) \
- ( ((u64) (id)[(n) + 3] << 48) | \
- ((u64) (id)[(n) + 2] << 32) | \
- ((u64) (id)[(n) + 1] << 16) | \
- ((u64) (id)[(n) + 0]) )
-
-#define ata_id_cdb_intr(id) (((id)[ATA_ID_CONFIG] & 0x60) == 0x20)
-
-static inline bool ata_id_has_hipm(const u16 *id)
-{
- u16 val = id[76];
-
- if (val == 0 || val == 0xffff)
- return false;
-
- return val & (1 << 9);
-}
-
-static inline bool ata_id_has_dipm(const u16 *id)
-{
- u16 val = id[78];
-
- if (val == 0 || val == 0xffff)
- return false;
-
- return val & (1 << 3);
-}
-
-
-static inline bool ata_id_has_fua(const u16 *id)
-{
- if ((id[ATA_ID_CFSSE] & 0xC000) != 0x4000)
- return false;
- return id[ATA_ID_CFSSE] & (1 << 6);
-}
-
-static inline bool ata_id_has_flush(const u16 *id)
-{
- if ((id[ATA_ID_COMMAND_SET_2] & 0xC000) != 0x4000)
- return false;
- return id[ATA_ID_COMMAND_SET_2] & (1 << 12);
-}
-
-static inline bool ata_id_flush_enabled(const u16 *id)
-{
- if (ata_id_has_flush(id) == 0)
- return false;
- if ((id[ATA_ID_CSF_DEFAULT] & 0xC000) != 0x4000)
- return false;
- return id[ATA_ID_CFS_ENABLE_2] & (1 << 12);
-}
-
-static inline bool ata_id_has_flush_ext(const u16 *id)
-{
- if ((id[ATA_ID_COMMAND_SET_2] & 0xC000) != 0x4000)
- return false;
- return id[ATA_ID_COMMAND_SET_2] & (1 << 13);
-}
-
-static inline bool ata_id_flush_ext_enabled(const u16 *id)
-{
- if (ata_id_has_flush_ext(id) == 0)
- return false;
- if ((id[ATA_ID_CSF_DEFAULT] & 0xC000) != 0x4000)
- return false;
- /*
- * some Maxtor disks have bit 13 defined incorrectly
- * so check bit 10 too
- */
- return (id[ATA_ID_CFS_ENABLE_2] & 0x2400) == 0x2400;
-}
-
-static inline u32 ata_id_logical_sector_size(const u16 *id)
-{
- /* T13/1699-D Revision 6a, Sep 6, 2008. Page 128.
- * IDENTIFY DEVICE data, word 117-118.
- * 0xd000 ignores bit 13 (logical:physical > 1)
- */
- if ((id[ATA_ID_SECTOR_SIZE] & 0xd000) == 0x5000)
- return (((id[ATA_ID_LOGICAL_SECTOR_SIZE+1] << 16)
- + id[ATA_ID_LOGICAL_SECTOR_SIZE]) * sizeof(u16)) ;
- return ATA_SECT_SIZE;
-}
-
-static inline u8 ata_id_log2_per_physical_sector(const u16 *id)
-{
- /* T13/1699-D Revision 6a, Sep 6, 2008. Page 128.
- * IDENTIFY DEVICE data, word 106.
- * 0xe000 ignores bit 12 (logical sector > 512 bytes)
- */
- if ((id[ATA_ID_SECTOR_SIZE] & 0xe000) == 0x6000)
- return (id[ATA_ID_SECTOR_SIZE] & 0xf);
- return 0;
-}
-
-/* Offset of logical sectors relative to physical sectors.
- *
- * If device has more than one logical sector per physical sector
- * (aka 512 byte emulation), vendors might offset the "sector 0" address
- * so sector 63 is "naturally aligned" - e.g. FAT partition table.
- * This avoids Read/Mod/Write penalties when using FAT partition table
- * and updating "well aligned" (FS perspective) physical sectors on every
- * transaction.
- */
-static inline u16 ata_id_logical_sector_offset(const u16 *id,
- u8 log2_per_phys)
-{
- u16 word_209 = id[209];
-
- if ((log2_per_phys > 1) && (word_209 & 0xc000) == 0x4000) {
- u16 first = word_209 & 0x3fff;
- if (first > 0)
- return (1 << log2_per_phys) - first;
- }
- return 0;
-}
-
-static inline bool ata_id_has_lba48(const u16 *id)
-{
- if ((id[ATA_ID_COMMAND_SET_2] & 0xC000) != 0x4000)
- return false;
- if (!ata_id_u64(id, ATA_ID_LBA_CAPACITY_2))
- return false;
- return id[ATA_ID_COMMAND_SET_2] & (1 << 10);
-}
-
-static inline bool ata_id_lba48_enabled(const u16 *id)
-{
- if (ata_id_has_lba48(id) == 0)
- return false;
- if ((id[ATA_ID_CSF_DEFAULT] & 0xC000) != 0x4000)
- return false;
- return id[ATA_ID_CFS_ENABLE_2] & (1 << 10);
-}
-
-static inline bool ata_id_hpa_enabled(const u16 *id)
-{
- /* Yes children, word 83 valid bits cover word 82 data */
- if ((id[ATA_ID_COMMAND_SET_2] & 0xC000) != 0x4000)
- return false;
- /* And 87 covers 85-87 */
- if ((id[ATA_ID_CSF_DEFAULT] & 0xC000) != 0x4000)
- return false;
- /* Check command sets enabled as well as supported */
- if ((id[ATA_ID_CFS_ENABLE_1] & (1 << 10)) == 0)
- return false;
- return id[ATA_ID_COMMAND_SET_1] & (1 << 10);
-}
-
-static inline bool ata_id_has_wcache(const u16 *id)
-{
- /* Yes children, word 83 valid bits cover word 82 data */
- if ((id[ATA_ID_COMMAND_SET_2] & 0xC000) != 0x4000)
- return false;
- return id[ATA_ID_COMMAND_SET_1] & (1 << 5);
-}
-
-static inline bool ata_id_has_pm(const u16 *id)
-{
- if ((id[ATA_ID_COMMAND_SET_2] & 0xC000) != 0x4000)
- return false;
- return id[ATA_ID_COMMAND_SET_1] & (1 << 3);
-}
-
-static inline bool ata_id_rahead_enabled(const u16 *id)
-{
- if ((id[ATA_ID_CSF_DEFAULT] & 0xC000) != 0x4000)
- return false;
- return id[ATA_ID_CFS_ENABLE_1] & (1 << 6);
-}
-
-static inline bool ata_id_wcache_enabled(const u16 *id)
-{
- if ((id[ATA_ID_CSF_DEFAULT] & 0xC000) != 0x4000)
- return false;
- return id[ATA_ID_CFS_ENABLE_1] & (1 << 5);
-}
-
-/**
- * ata_id_major_version - get ATA level of drive
- * @id: Identify data
- *
- * Caveats:
- * ATA-1 considers identify optional
- * ATA-2 introduces mandatory identify
- * ATA-3 introduces word 80 and accurate reporting
- *
- * The practical impact of this is that ata_id_major_version cannot
- * reliably report on drives below ATA3.
- */
-
-static inline unsigned int ata_id_major_version(const u16 *id)
-{
- unsigned int mver;
-
- if (id[ATA_ID_MAJOR_VER] == 0xFFFF)
- return 0;
-
- for (mver = 14; mver >= 1; mver--)
- if (id[ATA_ID_MAJOR_VER] & (1 << mver))
- break;
- return mver;
-}
-
-static inline bool ata_id_is_sata(const u16 *id)
-{
- /*
- * See if word 93 is 0 AND drive is at least ATA-5 compatible
- * verifying that word 80 by casting it to a signed type --
- * this trick allows us to filter out the reserved values of
- * 0x0000 and 0xffff along with the earlier ATA revisions...
- */
- if (id[ATA_ID_HW_CONFIG] == 0 && (short)id[ATA_ID_MAJOR_VER] >= 0x0020)
- return true;
- return false;
-}
-
-static inline bool ata_id_has_tpm(const u16 *id)
-{
- /* The TPM bits are only valid on ATA8 */
- if (ata_id_major_version(id) < 8)
- return false;
- if ((id[48] & 0xC000) != 0x4000)
- return false;
- return id[48] & (1 << 0);
-}
-
-static inline bool ata_id_has_dword_io(const u16 *id)
-{
- /* ATA 8 reuses this flag for "trusted" computing */
- if (ata_id_major_version(id) > 7)
- return false;
- return id[ATA_ID_DWORD_IO] & (1 << 0);
-}
-
-static inline bool ata_id_has_unload(const u16 *id)
-{
- if (ata_id_major_version(id) >= 7 &&
- (id[ATA_ID_CFSSE] & 0xC000) == 0x4000 &&
- id[ATA_ID_CFSSE] & (1 << 13))
- return true;
- return false;
-}
-
-static inline bool ata_id_has_wwn(const u16 *id)
-{
- return (id[ATA_ID_CSF_DEFAULT] & 0xC100) == 0x4100;
-}
-
-static inline int ata_id_form_factor(const u16 *id)
-{
- u16 val = id[168];
-
- if (ata_id_major_version(id) < 7 || val == 0 || val == 0xffff)
- return 0;
-
- val &= 0xf;
-
- if (val > 5)
- return 0;
-
- return val;
-}
-
-static inline int ata_id_rotation_rate(const u16 *id)
-{
- u16 val = id[217];
-
- if (ata_id_major_version(id) < 7 || val == 0 || val == 0xffff)
- return 0;
-
- if (val > 1 && val < 0x401)
- return 0;
-
- return val;
-}
-
-static inline bool ata_id_has_trim(const u16 *id)
-{
- if (ata_id_major_version(id) >= 7 &&
- (id[ATA_ID_DATA_SET_MGMT] & 1))
- return true;
- return false;
-}
-
-static inline bool ata_id_has_zero_after_trim(const u16 *id)
-{
- /* DSM supported, deterministic read, and read zero after trim set */
- if (ata_id_has_trim(id) &&
- (id[ATA_ID_ADDITIONAL_SUPP] & 0x4020) == 0x4020)
- return true;
-
- return false;
-}
-
-static inline bool ata_id_current_chs_valid(const u16 *id)
-{
- /* For ATA-1 devices, if the INITIALIZE DEVICE PARAMETERS command
- has not been issued to the device then the values of
- id[ATA_ID_CUR_CYLS] to id[ATA_ID_CUR_SECTORS] are vendor specific. */
- return (id[ATA_ID_FIELD_VALID] & 1) && /* Current translation valid */
- id[ATA_ID_CUR_CYLS] && /* cylinders in current translation */
- id[ATA_ID_CUR_HEADS] && /* heads in current translation */
- id[ATA_ID_CUR_HEADS] <= 16 &&
- id[ATA_ID_CUR_SECTORS]; /* sectors in current translation */
-}
-
-static inline bool ata_id_is_cfa(const u16 *id)
-{
- if ((id[ATA_ID_CONFIG] == 0x848A) || /* Traditional CF */
- (id[ATA_ID_CONFIG] == 0x844A)) /* Delkin Devices CF */
- return true;
- /*
- * CF specs don't require specific value in the word 0 anymore and yet
- * they forbid to report the ATA version in the word 80 and require the
- * CFA feature set support to be indicated in the word 83 in this case.
- * Unfortunately, some cards only follow either of this requirements,
- * and while those that don't indicate CFA feature support need some
- * sort of quirk list, it seems impractical for the ones that do...
- */
- return (id[ATA_ID_COMMAND_SET_2] & 0xC004) == 0x4004;
-}
-
-static inline bool ata_id_is_ssd(const u16 *id)
-{
- return id[ATA_ID_ROT_SPEED] == 0x01;
-}
-
-static inline bool ata_id_pio_need_iordy(const u16 *id, const u8 pio)
-{
- /* CF spec. r4.1 Table 22 says no IORDY on PIO5 and PIO6. */
- if (pio > 4 && ata_id_is_cfa(id))
- return false;
- /* For PIO3 and higher it is mandatory. */
- if (pio > 2)
- return true;
- /* Turn it on when possible. */
- return ata_id_has_iordy(id);
-}
-
-static inline bool ata_drive_40wire(const u16 *dev_id)
-{
- if (ata_id_is_sata(dev_id))
- return false; /* SATA */
- if ((dev_id[ATA_ID_HW_CONFIG] & 0xE000) == 0x6000)
- return false; /* 80 wire */
- return true;
-}
-
-static inline bool ata_drive_40wire_relaxed(const u16 *dev_id)
-{
- if ((dev_id[ATA_ID_HW_CONFIG] & 0x2000) == 0x2000)
- return false; /* 80 wire */
- return true;
-}
-
-static inline int atapi_cdb_len(const u16 *dev_id)
-{
- u16 tmp = dev_id[ATA_ID_CONFIG] & 0x3;
- switch (tmp) {
- case 0: return 12;
- case 1: return 16;
- default: return -1;
- }
-}
-
-static inline bool atapi_command_packet_set(const u16 *dev_id)
-{
- return (dev_id[ATA_ID_CONFIG] >> 8) & 0x1f;
-}
-
-static inline bool atapi_id_dmadir(const u16 *dev_id)
-{
- return ata_id_major_version(dev_id) >= 7 && (dev_id[62] & 0x8000);
-}
-
-/*
- * ata_id_is_lba_capacity_ok() performs a sanity check on
- * the claimed LBA capacity value for the device.
- *
- * Returns 1 if LBA capacity looks sensible, 0 otherwise.
- *
- * It is called only once for each device.
- */
-static inline bool ata_id_is_lba_capacity_ok(u16 *id)
-{
- unsigned long lba_sects, chs_sects, head, tail;
-
- /* No non-LBA info .. so valid! */
- if (id[ATA_ID_CYLS] == 0)
- return true;
-
- lba_sects = ata_id_u32(id, ATA_ID_LBA_CAPACITY);
-
- /*
- * The ATA spec tells large drives to return
- * C/H/S = 16383/16/63 independent of their size.
- * Some drives can be jumpered to use 15 heads instead of 16.
- * Some drives can be jumpered to use 4092 cyls instead of 16383.
- */
- if ((id[ATA_ID_CYLS] == 16383 ||
- (id[ATA_ID_CYLS] == 4092 && id[ATA_ID_CUR_CYLS] == 16383)) &&
- id[ATA_ID_SECTORS] == 63 &&
- (id[ATA_ID_HEADS] == 15 || id[ATA_ID_HEADS] == 16) &&
- (lba_sects >= 16383 * 63 * id[ATA_ID_HEADS]))
- return true;
-
- chs_sects = id[ATA_ID_CYLS] * id[ATA_ID_HEADS] * id[ATA_ID_SECTORS];
-
- /* perform a rough sanity check on lba_sects: within 10% is OK */
- if (lba_sects - chs_sects < chs_sects/10)
- return true;
-
- /* some drives have the word order reversed */
- head = (lba_sects >> 16) & 0xffff;
- tail = lba_sects & 0xffff;
- lba_sects = head | (tail << 16);
-
- if (lba_sects - chs_sects < chs_sects/10) {
- *(__le32 *)&id[ATA_ID_LBA_CAPACITY] = __cpu_to_le32(lba_sects);
- return true; /* LBA capacity is (now) good */
- }
-
- return false; /* LBA capacity value may be bad */
-}
-
-static inline void ata_id_to_hd_driveid(u16 *id)
-{
-#ifdef __BIG_ENDIAN
- /* accessed in struct hd_driveid as 8-bit values */
- id[ATA_ID_MAX_MULTSECT] = __cpu_to_le16(id[ATA_ID_MAX_MULTSECT]);
- id[ATA_ID_CAPABILITY] = __cpu_to_le16(id[ATA_ID_CAPABILITY]);
- id[ATA_ID_OLD_PIO_MODES] = __cpu_to_le16(id[ATA_ID_OLD_PIO_MODES]);
- id[ATA_ID_OLD_DMA_MODES] = __cpu_to_le16(id[ATA_ID_OLD_DMA_MODES]);
- id[ATA_ID_MULTSECT] = __cpu_to_le16(id[ATA_ID_MULTSECT]);
-
- /* as 32-bit values */
- *(u32 *)&id[ATA_ID_LBA_CAPACITY] = ata_id_u32(id, ATA_ID_LBA_CAPACITY);
- *(u32 *)&id[ATA_ID_SPG] = ata_id_u32(id, ATA_ID_SPG);
-
- /* as 64-bit value */
- *(u64 *)&id[ATA_ID_LBA_CAPACITY_2] =
- ata_id_u64(id, ATA_ID_LBA_CAPACITY_2);
-#endif
-}
-
-/*
- * Write LBA Range Entries to the buffer that will cover the extent from
- * sector to sector + count. This is used for TRIM and for ADD LBA(S)
- * TO NV CACHE PINNED SET.
- */
-static inline unsigned ata_set_lba_range_entries(void *_buffer,
- unsigned buf_size, u64 sector, unsigned long count)
-{
- __le64 *buffer = _buffer;
- unsigned i = 0, used_bytes;
-
- while (i < buf_size / 8 ) { /* 6-byte LBA + 2-byte range per entry */
- u64 entry = sector |
- ((u64)(count > 0xffff ? 0xffff : count) << 48);
- buffer[i++] = __cpu_to_le64(entry);
- if (count <= 0xffff)
- break;
- count -= 0xffff;
- sector += 0xffff;
- }
-
- used_bytes = ALIGN(i * 8, 512);
- memset(buffer + i, 0, used_bytes - i * 8);
- return used_bytes;
-}
-
-static inline int is_multi_taskfile(struct ata_taskfile *tf)
-{
- return (tf->command == ATA_CMD_READ_MULTI) ||
- (tf->command == ATA_CMD_WRITE_MULTI) ||
- (tf->command == ATA_CMD_READ_MULTI_EXT) ||
- (tf->command == ATA_CMD_WRITE_MULTI_EXT) ||
- (tf->command == ATA_CMD_WRITE_MULTI_FUA_EXT);
-}
-
-static inline bool ata_ok(u8 status)
-{
- return ((status & (ATA_BUSY | ATA_DRDY | ATA_DF | ATA_DRQ | ATA_ERR))
- == ATA_DRDY);
-}
-
-static inline bool lba_28_ok(u64 block, u32 n_block)
-{
- /* check the ending block number: must be LESS THAN 0x0fffffff */
- return ((block + n_block) < ((1 << 28) - 1)) && (n_block <= 256);
-}
-
-static inline bool lba_48_ok(u64 block, u32 n_block)
-{
- /* check the ending block number */
- return ((block + n_block - 1) < ((u64)1 << 48)) && (n_block <= 65536);
-}
-
-#define sata_pmp_gscr_vendor(gscr) ((gscr)[SATA_PMP_GSCR_PROD_ID] & 0xffff)
-#define sata_pmp_gscr_devid(gscr) ((gscr)[SATA_PMP_GSCR_PROD_ID] >> 16)
-#define sata_pmp_gscr_rev(gscr) (((gscr)[SATA_PMP_GSCR_REV] >> 8) & 0xff)
-#define sata_pmp_gscr_ports(gscr) ((gscr)[SATA_PMP_GSCR_PORT_INFO] & 0xf)
-
-#endif /* __LINUX_ATA_H__ */
diff --git a/ANDROID_3.4.5/include/linux/ata_platform.h b/ANDROID_3.4.5/include/linux/ata_platform.h
deleted file mode 100644
index b856a2a5..00000000
--- a/ANDROID_3.4.5/include/linux/ata_platform.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef __LINUX_ATA_PLATFORM_H
-#define __LINUX_ATA_PLATFORM_H
-
-struct pata_platform_info {
- /*
- * I/O port shift, for platforms with ports that are
- * constantly spaced and need larger than the 1-byte
- * spacing used by ata_std_ports().
- */
- unsigned int ioport_shift;
- /*
- * Indicate platform specific irq types and initial
- * IRQ flags when call request_irq()
- */
- unsigned int irq_flags;
-};
-
-extern int __devinit __pata_platform_probe(struct device *dev,
- struct resource *io_res,
- struct resource *ctl_res,
- struct resource *irq_res,
- unsigned int ioport_shift,
- int __pio_mask);
-
-extern int __devexit __pata_platform_remove(struct device *dev);
-
-/*
- * Marvell SATA private data
- */
-struct mv_sata_platform_data {
- int n_ports; /* number of sata ports */
-};
-
-#endif /* __LINUX_ATA_PLATFORM_H */
diff --git a/ANDROID_3.4.5/include/linux/atalk.h b/ANDROID_3.4.5/include/linux/atalk.h
deleted file mode 100644
index f57c3688..00000000
--- a/ANDROID_3.4.5/include/linux/atalk.h
+++ /dev/null
@@ -1,209 +0,0 @@
-#ifndef __LINUX_ATALK_H__
-#define __LINUX_ATALK_H__
-
-#include <linux/types.h>
-#include <asm/byteorder.h>
-#include <linux/socket.h>
-
-/*
- * AppleTalk networking structures
- *
- * The following are directly referenced from the University Of Michigan
- * netatalk for compatibility reasons.
- */
-#define ATPORT_FIRST 1
-#define ATPORT_RESERVED 128
-#define ATPORT_LAST 254 /* 254 is only legal on localtalk */
-#define ATADDR_ANYNET (__u16)0
-#define ATADDR_ANYNODE (__u8)0
-#define ATADDR_ANYPORT (__u8)0
-#define ATADDR_BCAST (__u8)255
-#define DDP_MAXSZ 587
-#define DDP_MAXHOPS 15 /* 4 bits of hop counter */
-
-#define SIOCATALKDIFADDR (SIOCPROTOPRIVATE + 0)
-
-struct atalk_addr {
- __be16 s_net;
- __u8 s_node;
-};
-
-struct sockaddr_at {
- __kernel_sa_family_t sat_family;
- __u8 sat_port;
- struct atalk_addr sat_addr;
- char sat_zero[8];
-};
-
-struct atalk_netrange {
- __u8 nr_phase;
- __be16 nr_firstnet;
- __be16 nr_lastnet;
-};
-
-#ifdef __KERNEL__
-
-#include <net/sock.h>
-
-struct atalk_route {
- struct net_device *dev;
- struct atalk_addr target;
- struct atalk_addr gateway;
- int flags;
- struct atalk_route *next;
-};
-
-/**
- * struct atalk_iface - AppleTalk Interface
- * @dev - Network device associated with this interface
- * @address - Our address
- * @status - What are we doing?
- * @nets - Associated direct netrange
- * @next - next element in the list of interfaces
- */
-struct atalk_iface {
- struct net_device *dev;
- struct atalk_addr address;
- int status;
-#define ATIF_PROBE 1 /* Probing for an address */
-#define ATIF_PROBE_FAIL 2 /* Probe collided */
- struct atalk_netrange nets;
- struct atalk_iface *next;
-};
-
-struct atalk_sock {
- /* struct sock has to be the first member of atalk_sock */
- struct sock sk;
- __be16 dest_net;
- __be16 src_net;
- unsigned char dest_node;
- unsigned char src_node;
- unsigned char dest_port;
- unsigned char src_port;
-};
-
-static inline struct atalk_sock *at_sk(struct sock *sk)
-{
- return (struct atalk_sock *)sk;
-}
-
-struct ddpehdr {
- __be16 deh_len_hops; /* lower 10 bits are length, next 4 - hops */
- __be16 deh_sum;
- __be16 deh_dnet;
- __be16 deh_snet;
- __u8 deh_dnode;
- __u8 deh_snode;
- __u8 deh_dport;
- __u8 deh_sport;
- /* And netatalk apps expect to stick the type in themselves */
-};
-
-static __inline__ struct ddpehdr *ddp_hdr(struct sk_buff *skb)
-{
- return (struct ddpehdr *)skb_transport_header(skb);
-}
-
-/* AppleTalk AARP headers */
-struct elapaarp {
- __be16 hw_type;
-#define AARP_HW_TYPE_ETHERNET 1
-#define AARP_HW_TYPE_TOKENRING 2
- __be16 pa_type;
- __u8 hw_len;
- __u8 pa_len;
-#define AARP_PA_ALEN 4
- __be16 function;
-#define AARP_REQUEST 1
-#define AARP_REPLY 2
-#define AARP_PROBE 3
- __u8 hw_src[ETH_ALEN];
- __u8 pa_src_zero;
- __be16 pa_src_net;
- __u8 pa_src_node;
- __u8 hw_dst[ETH_ALEN];
- __u8 pa_dst_zero;
- __be16 pa_dst_net;
- __u8 pa_dst_node;
-} __attribute__ ((packed));
-
-static __inline__ struct elapaarp *aarp_hdr(struct sk_buff *skb)
-{
- return (struct elapaarp *)skb_transport_header(skb);
-}
-
-/* Not specified - how long till we drop a resolved entry */
-#define AARP_EXPIRY_TIME (5 * 60 * HZ)
-/* Size of hash table */
-#define AARP_HASH_SIZE 16
-/* Fast retransmission timer when resolving */
-#define AARP_TICK_TIME (HZ / 5)
-/* Send 10 requests then give up (2 seconds) */
-#define AARP_RETRANSMIT_LIMIT 10
-/*
- * Some value bigger than total retransmit time + a bit for last reply to
- * appear and to stop continual requests
- */
-#define AARP_RESOLVE_TIME (10 * HZ)
-
-extern struct datalink_proto *ddp_dl, *aarp_dl;
-extern void aarp_proto_init(void);
-
-/* Inter module exports */
-
-/* Give a device find its atif control structure */
-static inline struct atalk_iface *atalk_find_dev(struct net_device *dev)
-{
- return dev->atalk_ptr;
-}
-
-extern struct atalk_addr *atalk_find_dev_addr(struct net_device *dev);
-extern struct net_device *atrtr_get_dev(struct atalk_addr *sa);
-extern int aarp_send_ddp(struct net_device *dev,
- struct sk_buff *skb,
- struct atalk_addr *sa, void *hwaddr);
-extern void aarp_device_down(struct net_device *dev);
-extern void aarp_probe_network(struct atalk_iface *atif);
-extern int aarp_proxy_probe_network(struct atalk_iface *atif,
- struct atalk_addr *sa);
-extern void aarp_proxy_remove(struct net_device *dev,
- struct atalk_addr *sa);
-
-extern void aarp_cleanup_module(void);
-
-extern struct hlist_head atalk_sockets;
-extern rwlock_t atalk_sockets_lock;
-
-extern struct atalk_route *atalk_routes;
-extern rwlock_t atalk_routes_lock;
-
-extern struct atalk_iface *atalk_interfaces;
-extern rwlock_t atalk_interfaces_lock;
-
-extern struct atalk_route atrtr_default;
-
-extern const struct file_operations atalk_seq_arp_fops;
-
-extern int sysctl_aarp_expiry_time;
-extern int sysctl_aarp_tick_time;
-extern int sysctl_aarp_retransmit_limit;
-extern int sysctl_aarp_resolve_time;
-
-#ifdef CONFIG_SYSCTL
-extern void atalk_register_sysctl(void);
-extern void atalk_unregister_sysctl(void);
-#else
-#define atalk_register_sysctl() do { } while(0)
-#define atalk_unregister_sysctl() do { } while(0)
-#endif
-
-#ifdef CONFIG_PROC_FS
-extern int atalk_proc_init(void);
-extern void atalk_proc_exit(void);
-#else
-#define atalk_proc_init() ({ 0; })
-#define atalk_proc_exit() do { } while(0)
-#endif /* CONFIG_PROC_FS */
-
-#endif /* __KERNEL__ */
-#endif /* __LINUX_ATALK_H__ */
diff --git a/ANDROID_3.4.5/include/linux/ath9k_platform.h b/ANDROID_3.4.5/include/linux/ath9k_platform.h
deleted file mode 100644
index 6e3f54f3..00000000
--- a/ANDROID_3.4.5/include/linux/ath9k_platform.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2008 Atheros Communications Inc.
- * Copyright (c) 2009 Gabor Juhos <juhosg@openwrt.org>
- * Copyright (c) 2009 Imre Kaloz <kaloz@openwrt.org>
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifndef _LINUX_ATH9K_PLATFORM_H
-#define _LINUX_ATH9K_PLATFORM_H
-
-#define ATH9K_PLAT_EEP_MAX_WORDS 2048
-
-struct ath9k_platform_data {
- u16 eeprom_data[ATH9K_PLAT_EEP_MAX_WORDS];
- u8 *macaddr;
-
- int led_pin;
- u32 gpio_mask;
- u32 gpio_val;
-
- bool is_clk_25mhz;
- int (*get_mac_revision)(void);
- int (*external_reset)(void);
-};
-
-#endif /* _LINUX_ATH9K_PLATFORM_H */
diff --git a/ANDROID_3.4.5/include/linux/atm.h b/ANDROID_3.4.5/include/linux/atm.h
deleted file mode 100644
index d3b29217..00000000
--- a/ANDROID_3.4.5/include/linux/atm.h
+++ /dev/null
@@ -1,251 +0,0 @@
-/* atm.h - general ATM declarations */
-
-/* Written 1995-2000 by Werner Almesberger, EPFL LRC/ICA */
-
-
-/*
- * WARNING: User-space programs should not #include <linux/atm.h> directly.
- * Instead, #include <atm.h>
- */
-
-#ifndef _LINUX_ATM_H
-#define _LINUX_ATM_H
-
-/*
- * BEGIN_xx and END_xx markers are used for automatic generation of
- * documentation. Do not change them.
- */
-
-#include <linux/compiler.h>
-#include <linux/atmapi.h>
-#include <linux/atmsap.h>
-#include <linux/atmioc.h>
-#include <linux/types.h>
-
-
-/* general ATM constants */
-#define ATM_CELL_SIZE 53 /* ATM cell size incl. header */
-#define ATM_CELL_PAYLOAD 48 /* ATM payload size */
-#define ATM_AAL0_SDU 52 /* AAL0 SDU size */
-#define ATM_MAX_AAL34_PDU 65535 /* maximum AAL3/4 PDU payload */
-#define ATM_AAL5_TRAILER 8 /* AAL5 trailer size */
-#define ATM_MAX_AAL5_PDU 65535 /* maximum AAL5 PDU payload */
-#define ATM_MAX_CDV 9999 /* maximum (default) CDV */
-#define ATM_NOT_RSV_VCI 32 /* first non-reserved VCI value */
-
-#define ATM_MAX_VPI 255 /* maximum VPI at the UNI */
-#define ATM_MAX_VPI_NNI 4096 /* maximum VPI at the NNI */
-#define ATM_MAX_VCI 65535 /* maximum VCI */
-
-
-/* "protcol" values for the socket system call */
-#define ATM_NO_AAL 0 /* AAL not specified */
-#define ATM_AAL0 13 /* "raw" ATM cells */
-#define ATM_AAL1 1 /* AAL1 (CBR) */
-#define ATM_AAL2 2 /* AAL2 (VBR) */
-#define ATM_AAL34 3 /* AAL3/4 (data) */
-#define ATM_AAL5 5 /* AAL5 (data) */
-
-/*
- * socket option name coding functions
- *
- * Note that __SO_ENCODE and __SO_LEVEL are somewhat a hack since the
- * << 22 only reserves 9 bits for the level. On some architectures
- * SOL_SOCKET is 0xFFFF, so that's a bit of a problem
- */
-
-#define __SO_ENCODE(l,n,t) ((((l) & 0x1FF) << 22) | ((n) << 16) | \
- sizeof(t))
-#define __SO_LEVEL_MATCH(c,m) (((c) >> 22) == ((m) & 0x1FF))
-#define __SO_NUMBER(c) (((c) >> 16) & 0x3f)
-#define __SO_SIZE(c) ((c) & 0x3fff)
-
-/*
- * ATM layer
- */
-
-#define SO_SETCLP __SO_ENCODE(SOL_ATM,0,int)
- /* set CLP bit value - TODO */
-#define SO_CIRANGE __SO_ENCODE(SOL_ATM,1,struct atm_cirange)
- /* connection identifier range; socket must be
- bound or connected */
-#define SO_ATMQOS __SO_ENCODE(SOL_ATM,2,struct atm_qos)
- /* Quality of Service setting */
-#define SO_ATMSAP __SO_ENCODE(SOL_ATM,3,struct atm_sap)
- /* Service Access Point */
-#define SO_ATMPVC __SO_ENCODE(SOL_ATM,4,struct sockaddr_atmpvc)
- /* "PVC" address (also for SVCs); get only */
-#define SO_MULTIPOINT __SO_ENCODE(SOL_ATM, 5, int)
- /* make this vc a p2mp */
-
-
-/*
- * Note @@@: since the socket layers don't really distinguish the control and
- * the data plane but generally seems to be data plane-centric, any layer is
- * about equally wrong for the SAP. If you have a better idea about this,
- * please speak up ...
- */
-
-
-/* ATM cell header (for AAL0) */
-
-/* BEGIN_CH */
-#define ATM_HDR_GFC_MASK 0xf0000000
-#define ATM_HDR_GFC_SHIFT 28
-#define ATM_HDR_VPI_MASK 0x0ff00000
-#define ATM_HDR_VPI_SHIFT 20
-#define ATM_HDR_VCI_MASK 0x000ffff0
-#define ATM_HDR_VCI_SHIFT 4
-#define ATM_HDR_PTI_MASK 0x0000000e
-#define ATM_HDR_PTI_SHIFT 1
-#define ATM_HDR_CLP 0x00000001
-/* END_CH */
-
-
-/* PTI codings */
-
-/* BEGIN_PTI */
-#define ATM_PTI_US0 0 /* user data cell, congestion not exp, SDU-type 0 */
-#define ATM_PTI_US1 1 /* user data cell, congestion not exp, SDU-type 1 */
-#define ATM_PTI_UCES0 2 /* user data cell, cong. experienced, SDU-type 0 */
-#define ATM_PTI_UCES1 3 /* user data cell, cong. experienced, SDU-type 1 */
-#define ATM_PTI_SEGF5 4 /* segment OAM F5 flow related cell */
-#define ATM_PTI_E2EF5 5 /* end-to-end OAM F5 flow related cell */
-#define ATM_PTI_RSV_RM 6 /* reserved for traffic control/resource mgmt */
-#define ATM_PTI_RSV 7 /* reserved */
-/* END_PTI */
-
-
-/*
- * The following items should stay in linux/atm.h, which should be linked to
- * netatm/atm.h
- */
-
-/* Traffic description */
-
-#define ATM_NONE 0 /* no traffic */
-#define ATM_UBR 1
-#define ATM_CBR 2
-#define ATM_VBR 3
-#define ATM_ABR 4
-#define ATM_ANYCLASS 5 /* compatible with everything */
-
-#define ATM_MAX_PCR -1 /* maximum available PCR */
-
-struct atm_trafprm {
- unsigned char traffic_class; /* traffic class (ATM_UBR, ...) */
- int max_pcr; /* maximum PCR in cells per second */
- int pcr; /* desired PCR in cells per second */
- int min_pcr; /* minimum PCR in cells per second */
- int max_cdv; /* maximum CDV in microseconds */
- int max_sdu; /* maximum SDU in bytes */
- /* extra params for ABR */
- unsigned int icr; /* Initial Cell Rate (24-bit) */
- unsigned int tbe; /* Transient Buffer Exposure (24-bit) */
- unsigned int frtt : 24; /* Fixed Round Trip Time (24-bit) */
- unsigned int rif : 4; /* Rate Increment Factor (4-bit) */
- unsigned int rdf : 4; /* Rate Decrease Factor (4-bit) */
- unsigned int nrm_pres :1; /* nrm present bit */
- unsigned int trm_pres :1; /* rm present bit */
- unsigned int adtf_pres :1; /* adtf present bit */
- unsigned int cdf_pres :1; /* cdf present bit*/
- unsigned int nrm :3; /* Max # of Cells for each forward RM cell (3-bit) */
- unsigned int trm :3; /* Time between forward RM cells (3-bit) */
- unsigned int adtf :10; /* ACR Decrease Time Factor (10-bit) */
- unsigned int cdf :3; /* Cutoff Decrease Factor (3-bit) */
- unsigned int spare :9; /* spare bits */
-};
-
-struct atm_qos {
- struct atm_trafprm txtp; /* parameters in TX direction */
- struct atm_trafprm rxtp __ATM_API_ALIGN;
- /* parameters in RX direction */
- unsigned char aal __ATM_API_ALIGN;
-};
-
-/* PVC addressing */
-
-#define ATM_ITF_ANY -1 /* "magic" PVC address values */
-#define ATM_VPI_ANY -1
-#define ATM_VCI_ANY -1
-#define ATM_VPI_UNSPEC -2
-#define ATM_VCI_UNSPEC -2
-
-
-struct sockaddr_atmpvc {
- unsigned short sap_family; /* address family, AF_ATMPVC */
- struct { /* PVC address */
- short itf; /* ATM interface */
- short vpi; /* VPI (only 8 bits at UNI) */
- int vci; /* VCI (only 16 bits at UNI) */
- } sap_addr __ATM_API_ALIGN; /* PVC address */
-};
-
-/* SVC addressing */
-
-#define ATM_ESA_LEN 20 /* ATM End System Address length */
-#define ATM_E164_LEN 12 /* maximum E.164 number length */
-
-#define ATM_AFI_DCC 0x39 /* DCC ATM Format */
-#define ATM_AFI_ICD 0x47 /* ICD ATM Format */
-#define ATM_AFI_E164 0x45 /* E.164 ATM Format */
-#define ATM_AFI_LOCAL 0x49 /* Local ATM Format */
-
-#define ATM_AFI_DCC_GROUP 0xBD /* DCC ATM Group Format */
-#define ATM_AFI_ICD_GROUP 0xC5 /* ICD ATM Group Format */
-#define ATM_AFI_E164_GROUP 0xC3 /* E.164 ATM Group Format */
-#define ATM_AFI_LOCAL_GROUP 0xC7 /* Local ATM Group Format */
-
-#define ATM_LIJ_NONE 0 /* no leaf-initiated join */
-#define ATM_LIJ 1 /* request joining */
-#define ATM_LIJ_RPJ 2 /* set to root-prompted join */
-#define ATM_LIJ_NJ 3 /* set to network join */
-
-
-struct sockaddr_atmsvc {
- unsigned short sas_family; /* address family, AF_ATMSVC */
- struct { /* SVC address */
- unsigned char prv[ATM_ESA_LEN];/* private ATM address */
- char pub[ATM_E164_LEN+1]; /* public address (E.164) */
- /* unused addresses must be bzero'ed */
- char lij_type; /* role in LIJ call; one of ATM_LIJ* */
- __u32 lij_id; /* LIJ call identifier */
- } sas_addr __ATM_API_ALIGN; /* SVC address */
-};
-
-
-static __inline__ int atmsvc_addr_in_use(struct sockaddr_atmsvc addr)
-{
- return *addr.sas_addr.prv || *addr.sas_addr.pub;
-}
-
-
-static __inline__ int atmpvc_addr_in_use(struct sockaddr_atmpvc addr)
-{
- return addr.sap_addr.itf || addr.sap_addr.vpi || addr.sap_addr.vci;
-}
-
-
-/*
- * Some stuff for linux/sockios.h
- */
-
-struct atmif_sioc {
- int number;
- int length;
- void __user *arg;
-};
-
-#ifdef __KERNEL__
-#ifdef CONFIG_COMPAT
-#include <linux/compat.h>
-struct compat_atmif_sioc {
- int number;
- int length;
- compat_uptr_t arg;
-};
-#endif
-#endif
-
-typedef unsigned short atm_backend_t;
-#endif
diff --git a/ANDROID_3.4.5/include/linux/atm_eni.h b/ANDROID_3.4.5/include/linux/atm_eni.h
deleted file mode 100644
index 34f31797..00000000
--- a/ANDROID_3.4.5/include/linux/atm_eni.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* atm_eni.h - Driver-specific declarations of the ENI driver (for use by
- driver-specific utilities) */
-
-/* Written 1995-2000 by Werner Almesberger, EPFL LRC/ICA */
-
-
-#ifndef LINUX_ATM_ENI_H
-#define LINUX_ATM_ENI_H
-
-#include <linux/atmioc.h>
-
-
-struct eni_multipliers {
- int tx,rx; /* values are in percent and must be > 100 */
-};
-
-
-#define ENI_MEMDUMP _IOW('a',ATMIOC_SARPRV,struct atmif_sioc)
- /* printk memory map */
-#define ENI_SETMULT _IOW('a',ATMIOC_SARPRV+7,struct atmif_sioc)
- /* set buffer multipliers */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/atm_he.h b/ANDROID_3.4.5/include/linux/atm_he.h
deleted file mode 100644
index 2a7713b5..00000000
--- a/ANDROID_3.4.5/include/linux/atm_he.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* atm_he.h */
-
-#ifndef LINUX_ATM_HE_H
-#define LINUX_ATM_HE_H
-
-#include <linux/atmioc.h>
-
-#define HE_GET_REG _IOW('a', ATMIOC_SARPRV, struct atmif_sioc)
-
-#define HE_REGTYPE_PCI 1
-#define HE_REGTYPE_RCM 2
-#define HE_REGTYPE_TCM 3
-#define HE_REGTYPE_MBOX 4
-
-struct he_ioctl_reg {
- unsigned addr, val;
- char type;
-};
-
-#endif /* LINUX_ATM_HE_H */
diff --git a/ANDROID_3.4.5/include/linux/atm_idt77105.h b/ANDROID_3.4.5/include/linux/atm_idt77105.h
deleted file mode 100644
index 8b724000..00000000
--- a/ANDROID_3.4.5/include/linux/atm_idt77105.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* atm_idt77105.h - Driver-specific declarations of the IDT77105 driver (for
- * use by driver-specific utilities) */
-
-/* Written 1999 by Greg Banks <gnb@linuxfan.com>. Copied from atm_suni.h. */
-
-
-#ifndef LINUX_ATM_IDT77105_H
-#define LINUX_ATM_IDT77105_H
-
-#include <linux/types.h>
-#include <linux/atmioc.h>
-#include <linux/atmdev.h>
-
-/*
- * Structure for IDT77105_GETSTAT and IDT77105_GETSTATZ ioctls.
- * Pointed to by `arg' in atmif_sioc.
- */
-struct idt77105_stats {
- __u32 symbol_errors; /* wire symbol errors */
- __u32 tx_cells; /* cells transmitted */
- __u32 rx_cells; /* cells received */
- __u32 rx_hec_errors; /* Header Error Check errors on receive */
-};
-
-#define IDT77105_GETSTAT _IOW('a',ATMIOC_PHYPRV+2,struct atmif_sioc) /* get stats */
-#define IDT77105_GETSTATZ _IOW('a',ATMIOC_PHYPRV+3,struct atmif_sioc) /* get stats and zero */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/atm_nicstar.h b/ANDROID_3.4.5/include/linux/atm_nicstar.h
deleted file mode 100644
index 577b79f3..00000000
--- a/ANDROID_3.4.5/include/linux/atm_nicstar.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/******************************************************************************
- *
- * atm_nicstar.h
- *
- * Driver-specific declarations for use by NICSTAR driver specific utils.
- *
- * Author: Rui Prior
- *
- * (C) INESC 1998
- *
- ******************************************************************************/
-
-
-#ifndef LINUX_ATM_NICSTAR_H
-#define LINUX_ATM_NICSTAR_H
-
-/* Note: non-kernel programs including this file must also include
- * sys/types.h for struct timeval
- */
-
-#include <linux/atmapi.h>
-#include <linux/atmioc.h>
-
-#define NS_GETPSTAT _IOWR('a',ATMIOC_SARPRV+1,struct atmif_sioc)
- /* get pool statistics */
-#define NS_SETBUFLEV _IOW('a',ATMIOC_SARPRV+2,struct atmif_sioc)
- /* set buffer level markers */
-#define NS_ADJBUFLEV _IO('a',ATMIOC_SARPRV+3)
- /* adjust buffer level */
-
-typedef struct buf_nr
-{
- unsigned min;
- unsigned init;
- unsigned max;
-}buf_nr;
-
-
-typedef struct pool_levels
-{
- int buftype;
- int count; /* (At least for now) only used in NS_GETPSTAT */
- buf_nr level;
-} pool_levels;
-
-/* type must be one of the following: */
-#define NS_BUFTYPE_SMALL 1
-#define NS_BUFTYPE_LARGE 2
-#define NS_BUFTYPE_HUGE 3
-#define NS_BUFTYPE_IOVEC 4
-
-
-#endif /* LINUX_ATM_NICSTAR_H */
diff --git a/ANDROID_3.4.5/include/linux/atm_suni.h b/ANDROID_3.4.5/include/linux/atm_suni.h
deleted file mode 100644
index 84f3aab5..00000000
--- a/ANDROID_3.4.5/include/linux/atm_suni.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/* atm_suni.h - Driver-specific declarations of the SUNI driver (for use by
- driver-specific utilities) */
-
-/* Written 1998,2000 by Werner Almesberger, EPFL ICA */
-
-
-#ifndef LINUX_ATM_SUNI_H
-#define LINUX_ATM_SUNI_H
-
-/* everything obsoleted */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/atm_tcp.h b/ANDROID_3.4.5/include/linux/atm_tcp.h
deleted file mode 100644
index 375638f8..00000000
--- a/ANDROID_3.4.5/include/linux/atm_tcp.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* atm_tcp.h - Driver-specific declarations of the ATMTCP driver (for use by
- driver-specific utilities) */
-
-/* Written 1997-2000 by Werner Almesberger, EPFL LRC/ICA */
-
-
-#ifndef LINUX_ATM_TCP_H
-#define LINUX_ATM_TCP_H
-
-#include <linux/atmapi.h>
-#include <linux/atm.h>
-#include <linux/atmioc.h>
-#include <linux/types.h>
-
-
-/*
- * All values in struct atmtcp_hdr are in network byte order
- */
-
-struct atmtcp_hdr {
- __u16 vpi;
- __u16 vci;
- __u32 length; /* ... of data part */
-};
-
-/*
- * All values in struct atmtcp_command are in host byte order
- */
-
-#define ATMTCP_HDR_MAGIC (~0) /* this length indicates a command */
-#define ATMTCP_CTRL_OPEN 1 /* request/reply */
-#define ATMTCP_CTRL_CLOSE 2 /* request/reply */
-
-struct atmtcp_control {
- struct atmtcp_hdr hdr; /* must be first */
- int type; /* message type; both directions */
- atm_kptr_t vcc; /* both directions */
- struct sockaddr_atmpvc addr; /* suggested value from kernel */
- struct atm_qos qos; /* both directions */
- int result; /* to kernel only */
-} __ATM_API_ALIGN;
-
-/*
- * Field usage:
- * Messge type dir. hdr.v?i type addr qos vcc result
- * ----------- ---- ------- ---- ---- --- --- ------
- * OPEN K->D Y Y Y Y Y 0
- * OPEN D->K - Y Y Y Y Y
- * CLOSE K->D - - Y - Y 0
- * CLOSE D->K - - - - Y Y
- */
-
-#define SIOCSIFATMTCP _IO('a',ATMIOC_ITF) /* set ATMTCP mode */
-#define ATMTCP_CREATE _IO('a',ATMIOC_ITF+14) /* create persistent ATMTCP
- interface */
-#define ATMTCP_REMOVE _IO('a',ATMIOC_ITF+15) /* destroy persistent ATMTCP
- interface */
-
-
-#ifdef __KERNEL__
-
-struct atm_tcp_ops {
- int (*attach)(struct atm_vcc *vcc,int itf);
- int (*create_persistent)(int itf);
- int (*remove_persistent)(int itf);
- struct module *owner;
-};
-
-extern struct atm_tcp_ops atm_tcp_ops;
-
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/atm_zatm.h b/ANDROID_3.4.5/include/linux/atm_zatm.h
deleted file mode 100644
index 10f0fa29..00000000
--- a/ANDROID_3.4.5/include/linux/atm_zatm.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* atm_zatm.h - Driver-specific declarations of the ZATM driver (for use by
- driver-specific utilities) */
-
-/* Written 1995-1999 by Werner Almesberger, EPFL LRC/ICA */
-
-
-#ifndef LINUX_ATM_ZATM_H
-#define LINUX_ATM_ZATM_H
-
-/*
- * Note: non-kernel programs including this file must also include
- * sys/types.h for struct timeval
- */
-
-#include <linux/atmapi.h>
-#include <linux/atmioc.h>
-
-#define ZATM_GETPOOL _IOW('a',ATMIOC_SARPRV+1,struct atmif_sioc)
- /* get pool statistics */
-#define ZATM_GETPOOLZ _IOW('a',ATMIOC_SARPRV+2,struct atmif_sioc)
- /* get statistics and zero */
-#define ZATM_SETPOOL _IOW('a',ATMIOC_SARPRV+3,struct atmif_sioc)
- /* set pool parameters */
-
-struct zatm_pool_info {
- int ref_count; /* free buffer pool usage counters */
- int low_water,high_water; /* refill parameters */
- int rqa_count,rqu_count; /* queue condition counters */
- int offset,next_off; /* alignment optimizations: offset */
- int next_cnt,next_thres; /* repetition counter and threshold */
-};
-
-struct zatm_pool_req {
- int pool_num; /* pool number */
- struct zatm_pool_info info; /* actual information */
-};
-
-struct zatm_t_hist {
- struct timeval real; /* real (wall-clock) time */
- struct timeval expected; /* expected real time */
-};
-
-
-#define ZATM_OAM_POOL 0 /* free buffer pool for OAM cells */
-#define ZATM_AAL0_POOL 1 /* free buffer pool for AAL0 cells */
-#define ZATM_AAL5_POOL_BASE 2 /* first AAL5 free buffer pool */
-#define ZATM_LAST_POOL ZATM_AAL5_POOL_BASE+10 /* max. 64 kB */
-
-#define ZATM_TIMER_HISTORY_SIZE 16 /* number of timer adjustments to
- record; must be 2^n */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/atmapi.h b/ANDROID_3.4.5/include/linux/atmapi.h
deleted file mode 100644
index 8fe54d90..00000000
--- a/ANDROID_3.4.5/include/linux/atmapi.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* atmapi.h - ATM API user space/kernel compatibility */
-
-/* Written 1999,2000 by Werner Almesberger, EPFL ICA */
-
-
-#ifndef _LINUX_ATMAPI_H
-#define _LINUX_ATMAPI_H
-
-#if defined(__sparc__) || defined(__ia64__)
-/* such alignment is not required on 32 bit sparcs, but we can't
- figure that we are on a sparc64 while compiling user-space programs. */
-#define __ATM_API_ALIGN __attribute__((aligned(8)))
-#else
-#define __ATM_API_ALIGN
-#endif
-
-
-/*
- * Opaque type for kernel pointers. Note that _ is never accessed. We need
- * the struct in order hide the array, so that we can make simple assignments
- * instead of being forced to use memcpy. It also improves error reporting for
- * code that still assumes that we're passing unsigned longs.
- *
- * Convention: NULL pointers are passed as a field of all zeroes.
- */
-
-typedef struct { unsigned char _[8]; } __ATM_API_ALIGN atm_kptr_t;
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/atmarp.h b/ANDROID_3.4.5/include/linux/atmarp.h
deleted file mode 100644
index 231f4bde..00000000
--- a/ANDROID_3.4.5/include/linux/atmarp.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* atmarp.h - ATM ARP protocol and kernel-demon interface definitions */
-
-/* Written 1995-1999 by Werner Almesberger, EPFL LRC/ICA */
-
-
-#ifndef _LINUX_ATMARP_H
-#define _LINUX_ATMARP_H
-
-#include <linux/types.h>
-#include <linux/atmapi.h>
-#include <linux/atmioc.h>
-
-
-#define ATMARP_RETRY_DELAY 30 /* request next resolution or forget
- NAK after 30 sec - should go into
- atmclip.h */
-#define ATMARP_MAX_UNRES_PACKETS 5 /* queue that many packets while
- waiting for the resolver */
-
-
-#define ATMARPD_CTRL _IO('a',ATMIOC_CLIP+1) /* become atmarpd ctrl sock */
-#define ATMARP_MKIP _IO('a',ATMIOC_CLIP+2) /* attach socket to IP */
-#define ATMARP_SETENTRY _IO('a',ATMIOC_CLIP+3) /* fill or hide ARP entry */
-#define ATMARP_ENCAP _IO('a',ATMIOC_CLIP+5) /* change encapsulation */
-
-
-enum atmarp_ctrl_type {
- act_invalid, /* catch uninitialized structures */
- act_need, /* need address resolution */
- act_up, /* interface is coming up */
- act_down, /* interface is going down */
- act_change /* interface configuration has changed */
-};
-
-struct atmarp_ctrl {
- enum atmarp_ctrl_type type; /* message type */
- int itf_num;/* interface number (if present) */
- __be32 ip; /* IP address (act_need only) */
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/atmbr2684.h b/ANDROID_3.4.5/include/linux/atmbr2684.h
deleted file mode 100644
index fdb2629b..00000000
--- a/ANDROID_3.4.5/include/linux/atmbr2684.h
+++ /dev/null
@@ -1,117 +0,0 @@
-#ifndef _LINUX_ATMBR2684_H
-#define _LINUX_ATMBR2684_H
-
-#include <linux/types.h>
-#include <linux/atm.h>
-#include <linux/if.h> /* For IFNAMSIZ */
-
-/*
- * Type of media we're bridging (ethernet, token ring, etc) Currently only
- * ethernet is supported
- */
-#define BR2684_MEDIA_ETHERNET (0) /* 802.3 */
-#define BR2684_MEDIA_802_4 (1) /* 802.4 */
-#define BR2684_MEDIA_TR (2) /* 802.5 - token ring */
-#define BR2684_MEDIA_FDDI (3)
-#define BR2684_MEDIA_802_6 (4) /* 802.6 */
-
- /* used only at device creation: */
-#define BR2684_FLAG_ROUTED (1<<16) /* payload is routed, not bridged */
-
-/*
- * Is there FCS inbound on this VC? This currently isn't supported.
- */
-#define BR2684_FCSIN_NO (0)
-#define BR2684_FCSIN_IGNORE (1)
-#define BR2684_FCSIN_VERIFY (2)
-
-/*
- * Is there FCS outbound on this VC? This currently isn't supported.
- */
-#define BR2684_FCSOUT_NO (0)
-#define BR2684_FCSOUT_SENDZERO (1)
-#define BR2684_FCSOUT_GENERATE (2)
-
-/*
- * Does this VC include LLC encapsulation?
- */
-#define BR2684_ENCAPS_VC (0) /* VC-mux */
-#define BR2684_ENCAPS_LLC (1)
-#define BR2684_ENCAPS_AUTODETECT (2) /* Unsuported */
-
-/*
- * Is this VC bridged or routed?
- */
-
-#define BR2684_PAYLOAD_ROUTED (0)
-#define BR2684_PAYLOAD_BRIDGED (1)
-
-/*
- * This is for the ATM_NEWBACKENDIF call - these are like socket families:
- * the first element of the structure is the backend number and the rest
- * is per-backend specific
- */
-struct atm_newif_br2684 {
- atm_backend_t backend_num; /* ATM_BACKEND_BR2684 */
- int media; /* BR2684_MEDIA_*, flags in upper bits */
- char ifname[IFNAMSIZ];
- int mtu;
-};
-
-/*
- * This structure is used to specify a br2684 interface - either by a
- * positive integer (returned by ATM_NEWBACKENDIF) or the interfaces name
- */
-#define BR2684_FIND_BYNOTHING (0)
-#define BR2684_FIND_BYNUM (1)
-#define BR2684_FIND_BYIFNAME (2)
-struct br2684_if_spec {
- int method; /* BR2684_FIND_* */
- union {
- char ifname[IFNAMSIZ];
- int devnum;
- } spec;
-};
-
-/*
- * This is for the ATM_SETBACKEND call - these are like socket families:
- * the first element of the structure is the backend number and the rest
- * is per-backend specific
- */
-struct atm_backend_br2684 {
- atm_backend_t backend_num; /* ATM_BACKEND_BR2684 */
- struct br2684_if_spec ifspec;
- int fcs_in; /* BR2684_FCSIN_* */
- int fcs_out; /* BR2684_FCSOUT_* */
- int fcs_auto; /* 1: fcs_{in,out} disabled if no FCS rx'ed */
- int encaps; /* BR2684_ENCAPS_* */
- int has_vpiid; /* 1: use vpn_id - Unsupported */
- __u8 vpn_id[7];
- int send_padding; /* unsupported */
- int min_size; /* we will pad smaller packets than this */
-};
-
-/*
- * The BR2684_SETFILT ioctl is an experimental mechanism for folks
- * terminating a large number of IP-only vcc's. When netfilter allows
- * efficient per-if in/out filters, this support will be removed
- */
-struct br2684_filter {
- __be32 prefix; /* network byte order */
- __be32 netmask; /* 0 = disable filter */
-};
-
-struct br2684_filter_set {
- struct br2684_if_spec ifspec;
- struct br2684_filter filter;
-};
-
-enum br2684_payload {
- p_routed = BR2684_PAYLOAD_ROUTED,
- p_bridged = BR2684_PAYLOAD_BRIDGED,
-};
-
-#define BR2684_SETFILT _IOW( 'a', ATMIOC_BACKEND + 0, \
- struct br2684_filter_set)
-
-#endif /* _LINUX_ATMBR2684_H */
diff --git a/ANDROID_3.4.5/include/linux/atmclip.h b/ANDROID_3.4.5/include/linux/atmclip.h
deleted file mode 100644
index 02c94c44..00000000
--- a/ANDROID_3.4.5/include/linux/atmclip.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* atmclip.h - Classical IP over ATM */
-
-/* Written 1995-1998 by Werner Almesberger, EPFL LRC/ICA */
-
-
-#ifndef LINUX_ATMCLIP_H
-#define LINUX_ATMCLIP_H
-
-#include <linux/sockios.h>
-#include <linux/atmioc.h>
-
-
-#define RFC1483LLC_LEN 8 /* LLC+OUI+PID = 8 */
-#define RFC1626_MTU 9180 /* RFC1626 default MTU */
-
-#define CLIP_DEFAULT_IDLETIMER 1200 /* 20 minutes, see RFC1755 */
-#define CLIP_CHECK_INTERVAL 10 /* check every ten seconds */
-
-#define SIOCMKCLIP _IO('a',ATMIOC_CLIP) /* create IP interface */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/atmdev.h b/ANDROID_3.4.5/include/linux/atmdev.h
deleted file mode 100644
index 06fd4bbc..00000000
--- a/ANDROID_3.4.5/include/linux/atmdev.h
+++ /dev/null
@@ -1,526 +0,0 @@
-/* atmdev.h - ATM device driver declarations and various related items */
-
-/* Written 1995-2000 by Werner Almesberger, EPFL LRC/ICA */
-
-
-#ifndef LINUX_ATMDEV_H
-#define LINUX_ATMDEV_H
-
-
-#include <linux/atmapi.h>
-#include <linux/atm.h>
-#include <linux/atmioc.h>
-
-
-#define ESI_LEN 6
-
-#define ATM_OC3_PCR (155520000/270*260/8/53)
- /* OC3 link rate: 155520000 bps
- SONET overhead: /270*260 (9 section, 1 path)
- bits per cell: /8/53
- max cell rate: 353207.547 cells/sec */
-#define ATM_25_PCR ((25600000/8-8000)/54)
- /* 25 Mbps ATM cell rate (59111) */
-#define ATM_OC12_PCR (622080000/1080*1040/8/53)
- /* OC12 link rate: 622080000 bps
- SONET overhead: /1080*1040
- bits per cell: /8/53
- max cell rate: 1412830.188 cells/sec */
-#define ATM_DS3_PCR (8000*12)
- /* DS3: 12 cells in a 125 usec time slot */
-
-
-#define __AAL_STAT_ITEMS \
- __HANDLE_ITEM(tx); /* TX okay */ \
- __HANDLE_ITEM(tx_err); /* TX errors */ \
- __HANDLE_ITEM(rx); /* RX okay */ \
- __HANDLE_ITEM(rx_err); /* RX errors */ \
- __HANDLE_ITEM(rx_drop); /* RX out of memory */
-
-struct atm_aal_stats {
-#define __HANDLE_ITEM(i) int i
- __AAL_STAT_ITEMS
-#undef __HANDLE_ITEM
-};
-
-
-struct atm_dev_stats {
- struct atm_aal_stats aal0;
- struct atm_aal_stats aal34;
- struct atm_aal_stats aal5;
-} __ATM_API_ALIGN;
-
-
-#define ATM_GETLINKRATE _IOW('a',ATMIOC_ITF+1,struct atmif_sioc)
- /* get link rate */
-#define ATM_GETNAMES _IOW('a',ATMIOC_ITF+3,struct atm_iobuf)
- /* get interface names (numbers) */
-#define ATM_GETTYPE _IOW('a',ATMIOC_ITF+4,struct atmif_sioc)
- /* get interface type name */
-#define ATM_GETESI _IOW('a',ATMIOC_ITF+5,struct atmif_sioc)
- /* get interface ESI */
-#define ATM_GETADDR _IOW('a',ATMIOC_ITF+6,struct atmif_sioc)
- /* get itf's local ATM addr. list */
-#define ATM_RSTADDR _IOW('a',ATMIOC_ITF+7,struct atmif_sioc)
- /* reset itf's ATM address list */
-#define ATM_ADDADDR _IOW('a',ATMIOC_ITF+8,struct atmif_sioc)
- /* add a local ATM address */
-#define ATM_DELADDR _IOW('a',ATMIOC_ITF+9,struct atmif_sioc)
- /* remove a local ATM address */
-#define ATM_GETCIRANGE _IOW('a',ATMIOC_ITF+10,struct atmif_sioc)
- /* get connection identifier range */
-#define ATM_SETCIRANGE _IOW('a',ATMIOC_ITF+11,struct atmif_sioc)
- /* set connection identifier range */
-#define ATM_SETESI _IOW('a',ATMIOC_ITF+12,struct atmif_sioc)
- /* set interface ESI */
-#define ATM_SETESIF _IOW('a',ATMIOC_ITF+13,struct atmif_sioc)
- /* force interface ESI */
-#define ATM_ADDLECSADDR _IOW('a', ATMIOC_ITF+14, struct atmif_sioc)
- /* register a LECS address */
-#define ATM_DELLECSADDR _IOW('a', ATMIOC_ITF+15, struct atmif_sioc)
- /* unregister a LECS address */
-#define ATM_GETLECSADDR _IOW('a', ATMIOC_ITF+16, struct atmif_sioc)
- /* retrieve LECS address(es) */
-
-#define ATM_GETSTAT _IOW('a',ATMIOC_SARCOM+0,struct atmif_sioc)
- /* get AAL layer statistics */
-#define ATM_GETSTATZ _IOW('a',ATMIOC_SARCOM+1,struct atmif_sioc)
- /* get AAL layer statistics and zero */
-#define ATM_GETLOOP _IOW('a',ATMIOC_SARCOM+2,struct atmif_sioc)
- /* get loopback mode */
-#define ATM_SETLOOP _IOW('a',ATMIOC_SARCOM+3,struct atmif_sioc)
- /* set loopback mode */
-#define ATM_QUERYLOOP _IOW('a',ATMIOC_SARCOM+4,struct atmif_sioc)
- /* query supported loopback modes */
-#define ATM_SETSC _IOW('a',ATMIOC_SPECIAL+1,int)
- /* enable or disable single-copy */
-#define ATM_SETBACKEND _IOW('a',ATMIOC_SPECIAL+2,atm_backend_t)
- /* set backend handler */
-#define ATM_NEWBACKENDIF _IOW('a',ATMIOC_SPECIAL+3,atm_backend_t)
- /* use backend to make new if */
-#define ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct atm_iobuf)
- /* add party to p2mp call */
-#ifdef CONFIG_COMPAT
-/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */
-#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL+4,struct compat_atm_iobuf)
-#endif
-#define ATM_DROPPARTY _IOW('a', ATMIOC_SPECIAL+5,int)
- /* drop party from p2mp call */
-
-/*
- * These are backend handkers that can be set via the ATM_SETBACKEND call
- * above. In the future we may support dynamic loading of these - for now,
- * they're just being used to share the ATMIOC_BACKEND ioctls
- */
-#define ATM_BACKEND_RAW 0
-#define ATM_BACKEND_PPP 1 /* PPPoATM - RFC2364 */
-#define ATM_BACKEND_BR2684 2 /* Bridged RFC1483/2684 */
-
-/* for ATM_GETTYPE */
-#define ATM_ITFTYP_LEN 8 /* maximum length of interface type name */
-
-/*
- * Loopback modes for ATM_{PHY,SAR}_{GET,SET}LOOP
- */
-
-/* Point of loopback CPU-->SAR-->PHY-->line--> ... */
-#define __ATM_LM_NONE 0 /* no loop back ^ ^ ^ ^ */
-#define __ATM_LM_AAL 1 /* loop back PDUs --' | | | */
-#define __ATM_LM_ATM 2 /* loop back ATM cells ---' | | */
-/* RESERVED 4 loop back on PHY side ---' */
-#define __ATM_LM_PHY 8 /* loop back bits (digital) ----' | */
-#define __ATM_LM_ANALOG 16 /* loop back the analog signal --------' */
-
-/* Direction of loopback */
-#define __ATM_LM_MKLOC(n) ((n)) /* Local (i.e. loop TX to RX) */
-#define __ATM_LM_MKRMT(n) ((n) << 8) /* Remote (i.e. loop RX to TX) */
-
-#define __ATM_LM_XTLOC(n) ((n) & 0xff)
-#define __ATM_LM_XTRMT(n) (((n) >> 8) & 0xff)
-
-#define ATM_LM_NONE 0 /* no loopback */
-
-#define ATM_LM_LOC_AAL __ATM_LM_MKLOC(__ATM_LM_AAL)
-#define ATM_LM_LOC_ATM __ATM_LM_MKLOC(__ATM_LM_ATM)
-#define ATM_LM_LOC_PHY __ATM_LM_MKLOC(__ATM_LM_PHY)
-#define ATM_LM_LOC_ANALOG __ATM_LM_MKLOC(__ATM_LM_ANALOG)
-
-#define ATM_LM_RMT_AAL __ATM_LM_MKRMT(__ATM_LM_AAL)
-#define ATM_LM_RMT_ATM __ATM_LM_MKRMT(__ATM_LM_ATM)
-#define ATM_LM_RMT_PHY __ATM_LM_MKRMT(__ATM_LM_PHY)
-#define ATM_LM_RMT_ANALOG __ATM_LM_MKRMT(__ATM_LM_ANALOG)
-
-/*
- * Note: ATM_LM_LOC_* and ATM_LM_RMT_* can be combined, provided that
- * __ATM_LM_XTLOC(x) <= __ATM_LM_XTRMT(x)
- */
-
-
-struct atm_iobuf {
- int length;
- void __user *buffer;
-};
-
-/* for ATM_GETCIRANGE / ATM_SETCIRANGE */
-
-#define ATM_CI_MAX -1 /* use maximum range of VPI/VCI */
-
-struct atm_cirange {
- signed char vpi_bits; /* 1..8, ATM_CI_MAX (-1) for maximum */
- signed char vci_bits; /* 1..16, ATM_CI_MAX (-1) for maximum */
-};
-
-/* for ATM_SETSC; actually taken from the ATM_VF number space */
-
-#define ATM_SC_RX 1024 /* enable RX single-copy */
-#define ATM_SC_TX 2048 /* enable TX single-copy */
-
-#define ATM_BACKLOG_DEFAULT 32 /* if we get more, we're likely to time out
- anyway */
-
-/* MF: change_qos (Modify) flags */
-
-#define ATM_MF_IMMED 1 /* Block until change is effective */
-#define ATM_MF_INC_RSV 2 /* Change reservation on increase */
-#define ATM_MF_INC_SHP 4 /* Change shaping on increase */
-#define ATM_MF_DEC_RSV 8 /* Change reservation on decrease */
-#define ATM_MF_DEC_SHP 16 /* Change shaping on decrease */
-#define ATM_MF_BWD 32 /* Set the backward direction parameters */
-
-#define ATM_MF_SET (ATM_MF_INC_RSV | ATM_MF_INC_SHP | ATM_MF_DEC_RSV | \
- ATM_MF_DEC_SHP | ATM_MF_BWD)
-
-/*
- * ATM_VS_* are used to express VC state in a human-friendly way.
- */
-
-#define ATM_VS_IDLE 0 /* VC is not used */
-#define ATM_VS_CONNECTED 1 /* VC is connected */
-#define ATM_VS_CLOSING 2 /* VC is closing */
-#define ATM_VS_LISTEN 3 /* VC is listening for incoming setups */
-#define ATM_VS_INUSE 4 /* VC is in use (registered with atmsigd) */
-#define ATM_VS_BOUND 5 /* VC is bound */
-
-#define ATM_VS2TXT_MAP \
- "IDLE", "CONNECTED", "CLOSING", "LISTEN", "INUSE", "BOUND"
-
-#define ATM_VF2TXT_MAP \
- "ADDR", "READY", "PARTIAL", "REGIS", \
- "RELEASED", "HASQOS", "LISTEN", "META", \
- "256", "512", "1024", "2048", \
- "SESSION", "HASSAP", "BOUND", "CLOSE"
-
-
-#ifdef __KERNEL__
-
-#include <linux/wait.h> /* wait_queue_head_t */
-#include <linux/time.h> /* struct timeval */
-#include <linux/net.h>
-#include <linux/bug.h>
-#include <linux/skbuff.h> /* struct sk_buff */
-#include <linux/uio.h>
-#include <net/sock.h>
-#include <linux/atomic.h>
-
-#ifdef CONFIG_PROC_FS
-#include <linux/proc_fs.h>
-
-extern struct proc_dir_entry *atm_proc_root;
-#endif
-
-#ifdef CONFIG_COMPAT
-#include <linux/compat.h>
-struct compat_atm_iobuf {
- int length;
- compat_uptr_t buffer;
-};
-#endif
-
-struct k_atm_aal_stats {
-#define __HANDLE_ITEM(i) atomic_t i
- __AAL_STAT_ITEMS
-#undef __HANDLE_ITEM
-};
-
-
-struct k_atm_dev_stats {
- struct k_atm_aal_stats aal0;
- struct k_atm_aal_stats aal34;
- struct k_atm_aal_stats aal5;
-};
-
-struct device;
-
-enum {
- ATM_VF_ADDR, /* Address is in use. Set by anybody, cleared
- by device driver. */
- ATM_VF_READY, /* VC is ready to transfer data. Set by device
- driver, cleared by anybody. */
- ATM_VF_PARTIAL, /* resources are bound to PVC (partial PVC
- setup), controlled by socket layer */
- ATM_VF_REGIS, /* registered with demon, controlled by SVC
- socket layer */
- ATM_VF_BOUND, /* local SAP is set, controlled by SVC socket
- layer */
- ATM_VF_RELEASED, /* demon has indicated/requested release,
- controlled by SVC socket layer */
- ATM_VF_HASQOS, /* QOS parameters have been set */
- ATM_VF_LISTEN, /* socket is used for listening */
- ATM_VF_META, /* SVC socket isn't used for normal data
- traffic and doesn't depend on signaling
- to be available */
- ATM_VF_SESSION, /* VCC is p2mp session control descriptor */
- ATM_VF_HASSAP, /* SAP has been set */
- ATM_VF_CLOSE, /* asynchronous close - treat like VF_RELEASED*/
- ATM_VF_WAITING, /* waiting for reply from sigd */
- ATM_VF_IS_CLIP, /* in use by CLIP protocol */
-};
-
-
-#define ATM_VF2VS(flags) \
- (test_bit(ATM_VF_READY,&(flags)) ? ATM_VS_CONNECTED : \
- test_bit(ATM_VF_RELEASED,&(flags)) ? ATM_VS_CLOSING : \
- test_bit(ATM_VF_LISTEN,&(flags)) ? ATM_VS_LISTEN : \
- test_bit(ATM_VF_REGIS,&(flags)) ? ATM_VS_INUSE : \
- test_bit(ATM_VF_BOUND,&(flags)) ? ATM_VS_BOUND : ATM_VS_IDLE)
-
-
-enum {
- ATM_DF_REMOVED, /* device was removed from atm_devs list */
-};
-
-
-#define ATM_PHY_SIG_LOST 0 /* no carrier/light */
-#define ATM_PHY_SIG_UNKNOWN 1 /* carrier/light status is unknown */
-#define ATM_PHY_SIG_FOUND 2 /* carrier/light okay */
-
-#define ATM_ATMOPT_CLP 1 /* set CLP bit */
-
-struct atm_vcc {
- /* struct sock has to be the first member of atm_vcc */
- struct sock sk;
- unsigned long flags; /* VCC flags (ATM_VF_*) */
- short vpi; /* VPI and VCI (types must be equal */
- /* with sockaddr) */
- int vci;
- unsigned long aal_options; /* AAL layer options */
- unsigned long atm_options; /* ATM layer options */
- struct atm_dev *dev; /* device back pointer */
- struct atm_qos qos; /* QOS */
- struct atm_sap sap; /* SAP */
- void (*push)(struct atm_vcc *vcc,struct sk_buff *skb);
- void (*pop)(struct atm_vcc *vcc,struct sk_buff *skb); /* optional */
- int (*push_oam)(struct atm_vcc *vcc,void *cell);
- int (*send)(struct atm_vcc *vcc,struct sk_buff *skb);
- void *dev_data; /* per-device data */
- void *proto_data; /* per-protocol data */
- struct k_atm_aal_stats *stats; /* pointer to AAL stats group */
- /* SVC part --- may move later ------------------------------------- */
- short itf; /* interface number */
- struct sockaddr_atmsvc local;
- struct sockaddr_atmsvc remote;
- /* Multipoint part ------------------------------------------------- */
- struct atm_vcc *session; /* session VCC descriptor */
- /* Other stuff ----------------------------------------------------- */
- void *user_back; /* user backlink - not touched by */
- /* native ATM stack. Currently used */
- /* by CLIP and sch_atm. */
-};
-
-static inline struct atm_vcc *atm_sk(struct sock *sk)
-{
- return (struct atm_vcc *)sk;
-}
-
-static inline struct atm_vcc *ATM_SD(struct socket *sock)
-{
- return atm_sk(sock->sk);
-}
-
-static inline struct sock *sk_atm(struct atm_vcc *vcc)
-{
- return (struct sock *)vcc;
-}
-
-struct atm_dev_addr {
- struct sockaddr_atmsvc addr; /* ATM address */
- struct list_head entry; /* next address */
-};
-
-enum atm_addr_type_t { ATM_ADDR_LOCAL, ATM_ADDR_LECS };
-
-struct atm_dev {
- const struct atmdev_ops *ops; /* device operations; NULL if unused */
- const struct atmphy_ops *phy; /* PHY operations, may be undefined */
- /* (NULL) */
- const char *type; /* device type name */
- int number; /* device index */
- void *dev_data; /* per-device data */
- void *phy_data; /* private PHY date */
- unsigned long flags; /* device flags (ATM_DF_*) */
- struct list_head local; /* local ATM addresses */
- struct list_head lecs; /* LECS ATM addresses learned via ILMI */
- unsigned char esi[ESI_LEN]; /* ESI ("MAC" addr) */
- struct atm_cirange ci_range; /* VPI/VCI range */
- struct k_atm_dev_stats stats; /* statistics */
- char signal; /* signal status (ATM_PHY_SIG_*) */
- int link_rate; /* link rate (default: OC3) */
- atomic_t refcnt; /* reference count */
- spinlock_t lock; /* protect internal members */
-#ifdef CONFIG_PROC_FS
- struct proc_dir_entry *proc_entry; /* proc entry */
- char *proc_name; /* proc entry name */
-#endif
- struct device class_dev; /* sysfs device */
- struct list_head dev_list; /* linkage */
-};
-
-
-/* OF: send_Oam Flags */
-
-#define ATM_OF_IMMED 1 /* Attempt immediate delivery */
-#define ATM_OF_INRATE 2 /* Attempt in-rate delivery */
-
-
-/*
- * ioctl, getsockopt, and setsockopt are optional and can be set to NULL.
- */
-
-struct atmdev_ops { /* only send is required */
- void (*dev_close)(struct atm_dev *dev);
- int (*open)(struct atm_vcc *vcc);
- void (*close)(struct atm_vcc *vcc);
- int (*ioctl)(struct atm_dev *dev,unsigned int cmd,void __user *arg);
-#ifdef CONFIG_COMPAT
- int (*compat_ioctl)(struct atm_dev *dev,unsigned int cmd,
- void __user *arg);
-#endif
- int (*getsockopt)(struct atm_vcc *vcc,int level,int optname,
- void __user *optval,int optlen);
- int (*setsockopt)(struct atm_vcc *vcc,int level,int optname,
- void __user *optval,unsigned int optlen);
- int (*send)(struct atm_vcc *vcc,struct sk_buff *skb);
- int (*send_oam)(struct atm_vcc *vcc,void *cell,int flags);
- void (*phy_put)(struct atm_dev *dev,unsigned char value,
- unsigned long addr);
- unsigned char (*phy_get)(struct atm_dev *dev,unsigned long addr);
- int (*change_qos)(struct atm_vcc *vcc,struct atm_qos *qos,int flags);
- int (*proc_read)(struct atm_dev *dev,loff_t *pos,char *page);
- struct module *owner;
-};
-
-struct atmphy_ops {
- int (*start)(struct atm_dev *dev);
- int (*ioctl)(struct atm_dev *dev,unsigned int cmd,void __user *arg);
- void (*interrupt)(struct atm_dev *dev);
- int (*stop)(struct atm_dev *dev);
-};
-
-struct atm_skb_data {
- struct atm_vcc *vcc; /* ATM VCC */
- unsigned long atm_options; /* ATM layer options */
-};
-
-#define VCC_HTABLE_SIZE 32
-
-extern struct hlist_head vcc_hash[VCC_HTABLE_SIZE];
-extern rwlock_t vcc_sklist_lock;
-
-#define ATM_SKB(skb) (((struct atm_skb_data *) (skb)->cb))
-
-struct atm_dev *atm_dev_register(const char *type, struct device *parent,
- const struct atmdev_ops *ops,
- int number, /* -1 == pick first available */
- unsigned long *flags);
-struct atm_dev *atm_dev_lookup(int number);
-void atm_dev_deregister(struct atm_dev *dev);
-
-/* atm_dev_signal_change
- *
- * Propagate lower layer signal change in atm_dev->signal to netdevice.
- * The event will be sent via a notifier call chain.
- */
-void atm_dev_signal_change(struct atm_dev *dev, char signal);
-
-void vcc_insert_socket(struct sock *sk);
-
-void atm_dev_release_vccs(struct atm_dev *dev);
-
-
-static inline void atm_force_charge(struct atm_vcc *vcc,int truesize)
-{
- atomic_add(truesize, &sk_atm(vcc)->sk_rmem_alloc);
-}
-
-
-static inline void atm_return(struct atm_vcc *vcc,int truesize)
-{
- atomic_sub(truesize, &sk_atm(vcc)->sk_rmem_alloc);
-}
-
-
-static inline int atm_may_send(struct atm_vcc *vcc,unsigned int size)
-{
- return (size + atomic_read(&sk_atm(vcc)->sk_wmem_alloc)) <
- sk_atm(vcc)->sk_sndbuf;
-}
-
-
-static inline void atm_dev_hold(struct atm_dev *dev)
-{
- atomic_inc(&dev->refcnt);
-}
-
-
-static inline void atm_dev_put(struct atm_dev *dev)
-{
- if (atomic_dec_and_test(&dev->refcnt)) {
- BUG_ON(!test_bit(ATM_DF_REMOVED, &dev->flags));
- if (dev->ops->dev_close)
- dev->ops->dev_close(dev);
- put_device(&dev->class_dev);
- }
-}
-
-
-int atm_charge(struct atm_vcc *vcc,int truesize);
-struct sk_buff *atm_alloc_charge(struct atm_vcc *vcc,int pdu_size,
- gfp_t gfp_flags);
-int atm_pcr_goal(const struct atm_trafprm *tp);
-
-void vcc_release_async(struct atm_vcc *vcc, int reply);
-
-struct atm_ioctl {
- struct module *owner;
- /* A module reference is kept if appropriate over this call.
- * Return -ENOIOCTLCMD if you don't handle it. */
- int (*ioctl)(struct socket *, unsigned int cmd, unsigned long arg);
- struct list_head list;
-};
-
-/**
- * register_atm_ioctl - register handler for ioctl operations
- *
- * Special (non-device) handlers of ioctl's should
- * register here. If you're a normal device, you should
- * set .ioctl in your atmdev_ops instead.
- */
-void register_atm_ioctl(struct atm_ioctl *);
-
-/**
- * deregister_atm_ioctl - remove the ioctl handler
- */
-void deregister_atm_ioctl(struct atm_ioctl *);
-
-
-/* register_atmdevice_notifier - register atm_dev notify events
- *
- * Clients like br2684 will register notify events
- * Currently we notify of signal found/lost
- */
-int register_atmdevice_notifier(struct notifier_block *nb);
-void unregister_atmdevice_notifier(struct notifier_block *nb);
-
-#endif /* __KERNEL__ */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/atmel-mci.h b/ANDROID_3.4.5/include/linux/atmel-mci.h
deleted file mode 100644
index 4c7a4b21..00000000
--- a/ANDROID_3.4.5/include/linux/atmel-mci.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef __LINUX_ATMEL_MCI_H
-#define __LINUX_ATMEL_MCI_H
-
-#define ATMCI_MAX_NR_SLOTS 2
-
-/**
- * struct mci_slot_pdata - board-specific per-slot configuration
- * @bus_width: Number of data lines wired up the slot
- * @detect_pin: GPIO pin wired to the card detect switch
- * @wp_pin: GPIO pin wired to the write protect sensor
- * @detect_is_active_high: The state of the detect pin when it is active
- *
- * If a given slot is not present on the board, @bus_width should be
- * set to 0. The other fields are ignored in this case.
- *
- * Any pins that aren't available should be set to a negative value.
- *
- * Note that support for multiple slots is experimental -- some cards
- * might get upset if we don't get the clock management exactly right.
- * But in most cases, it should work just fine.
- */
-struct mci_slot_pdata {
- unsigned int bus_width;
- int detect_pin;
- int wp_pin;
- bool detect_is_active_high;
-};
-
-/**
- * struct mci_platform_data - board-specific MMC/SDcard configuration
- * @dma_slave: DMA slave interface to use in data transfers.
- * @slot: Per-slot configuration data.
- */
-struct mci_platform_data {
- struct mci_dma_data *dma_slave;
- struct mci_slot_pdata slot[ATMCI_MAX_NR_SLOTS];
-};
-
-#endif /* __LINUX_ATMEL_MCI_H */
diff --git a/ANDROID_3.4.5/include/linux/atmel-pwm-bl.h b/ANDROID_3.4.5/include/linux/atmel-pwm-bl.h
deleted file mode 100644
index 0153a478..00000000
--- a/ANDROID_3.4.5/include/linux/atmel-pwm-bl.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2007 Atmel Corporation
- *
- * Driver for the AT32AP700X PS/2 controller (PSIF).
- *
- * 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.
- */
-
-#ifndef __INCLUDE_ATMEL_PWM_BL_H
-#define __INCLUDE_ATMEL_PWM_BL_H
-
-/**
- * struct atmel_pwm_bl_platform_data
- * @pwm_channel: which PWM channel in the PWM module to use.
- * @pwm_frequency: PWM frequency to generate, the driver will try to be as
- * close as the prescaler allows.
- * @pwm_compare_max: value to use in the PWM channel compare register.
- * @pwm_duty_max: maximum duty cycle value, must be less than or equal to
- * pwm_compare_max.
- * @pwm_duty_min: minimum duty cycle value, must be less than pwm_duty_max.
- * @pwm_active_low: set to one if the low part of the PWM signal increases the
- * brightness of the backlight.
- * @gpio_on: GPIO line to control the backlight on/off, set to -1 if not used.
- * @on_active_low: set to one if the on/off signal is on when GPIO is low.
- *
- * This struct must be added to the platform device in the board code. It is
- * used by the atmel-pwm-bl driver to setup the GPIO to control on/off and the
- * PWM device.
- */
-struct atmel_pwm_bl_platform_data {
- unsigned int pwm_channel;
- unsigned int pwm_frequency;
- unsigned int pwm_compare_max;
- unsigned int pwm_duty_max;
- unsigned int pwm_duty_min;
- unsigned int pwm_active_low;
- int gpio_on;
- unsigned int on_active_low;
-};
-
-#endif /* __INCLUDE_ATMEL_PWM_BL_H */
diff --git a/ANDROID_3.4.5/include/linux/atmel-ssc.h b/ANDROID_3.4.5/include/linux/atmel-ssc.h
deleted file mode 100644
index 06023393..00000000
--- a/ANDROID_3.4.5/include/linux/atmel-ssc.h
+++ /dev/null
@@ -1,312 +0,0 @@
-#ifndef __INCLUDE_ATMEL_SSC_H
-#define __INCLUDE_ATMEL_SSC_H
-
-#include <linux/platform_device.h>
-#include <linux/list.h>
-
-struct ssc_device {
- struct list_head list;
- void __iomem *regs;
- struct platform_device *pdev;
- struct clk *clk;
- int user;
- int irq;
-};
-
-struct ssc_device * __must_check ssc_request(unsigned int ssc_num);
-void ssc_free(struct ssc_device *ssc);
-
-/* SSC register offsets */
-
-/* SSC Control Register */
-#define SSC_CR 0x00000000
-#define SSC_CR_RXDIS_SIZE 1
-#define SSC_CR_RXDIS_OFFSET 1
-#define SSC_CR_RXEN_SIZE 1
-#define SSC_CR_RXEN_OFFSET 0
-#define SSC_CR_SWRST_SIZE 1
-#define SSC_CR_SWRST_OFFSET 15
-#define SSC_CR_TXDIS_SIZE 1
-#define SSC_CR_TXDIS_OFFSET 9
-#define SSC_CR_TXEN_SIZE 1
-#define SSC_CR_TXEN_OFFSET 8
-
-/* SSC Clock Mode Register */
-#define SSC_CMR 0x00000004
-#define SSC_CMR_DIV_SIZE 12
-#define SSC_CMR_DIV_OFFSET 0
-
-/* SSC Receive Clock Mode Register */
-#define SSC_RCMR 0x00000010
-#define SSC_RCMR_CKG_SIZE 2
-#define SSC_RCMR_CKG_OFFSET 6
-#define SSC_RCMR_CKI_SIZE 1
-#define SSC_RCMR_CKI_OFFSET 5
-#define SSC_RCMR_CKO_SIZE 3
-#define SSC_RCMR_CKO_OFFSET 2
-#define SSC_RCMR_CKS_SIZE 2
-#define SSC_RCMR_CKS_OFFSET 0
-#define SSC_RCMR_PERIOD_SIZE 8
-#define SSC_RCMR_PERIOD_OFFSET 24
-#define SSC_RCMR_START_SIZE 4
-#define SSC_RCMR_START_OFFSET 8
-#define SSC_RCMR_STOP_SIZE 1
-#define SSC_RCMR_STOP_OFFSET 12
-#define SSC_RCMR_STTDLY_SIZE 8
-#define SSC_RCMR_STTDLY_OFFSET 16
-
-/* SSC Receive Frame Mode Register */
-#define SSC_RFMR 0x00000014
-#define SSC_RFMR_DATLEN_SIZE 5
-#define SSC_RFMR_DATLEN_OFFSET 0
-#define SSC_RFMR_DATNB_SIZE 4
-#define SSC_RFMR_DATNB_OFFSET 8
-#define SSC_RFMR_FSEDGE_SIZE 1
-#define SSC_RFMR_FSEDGE_OFFSET 24
-#define SSC_RFMR_FSLEN_SIZE 4
-#define SSC_RFMR_FSLEN_OFFSET 16
-#define SSC_RFMR_FSOS_SIZE 4
-#define SSC_RFMR_FSOS_OFFSET 20
-#define SSC_RFMR_LOOP_SIZE 1
-#define SSC_RFMR_LOOP_OFFSET 5
-#define SSC_RFMR_MSBF_SIZE 1
-#define SSC_RFMR_MSBF_OFFSET 7
-
-/* SSC Transmit Clock Mode Register */
-#define SSC_TCMR 0x00000018
-#define SSC_TCMR_CKG_SIZE 2
-#define SSC_TCMR_CKG_OFFSET 6
-#define SSC_TCMR_CKI_SIZE 1
-#define SSC_TCMR_CKI_OFFSET 5
-#define SSC_TCMR_CKO_SIZE 3
-#define SSC_TCMR_CKO_OFFSET 2
-#define SSC_TCMR_CKS_SIZE 2
-#define SSC_TCMR_CKS_OFFSET 0
-#define SSC_TCMR_PERIOD_SIZE 8
-#define SSC_TCMR_PERIOD_OFFSET 24
-#define SSC_TCMR_START_SIZE 4
-#define SSC_TCMR_START_OFFSET 8
-#define SSC_TCMR_STTDLY_SIZE 8
-#define SSC_TCMR_STTDLY_OFFSET 16
-
-/* SSC Transmit Frame Mode Register */
-#define SSC_TFMR 0x0000001c
-#define SSC_TFMR_DATDEF_SIZE 1
-#define SSC_TFMR_DATDEF_OFFSET 5
-#define SSC_TFMR_DATLEN_SIZE 5
-#define SSC_TFMR_DATLEN_OFFSET 0
-#define SSC_TFMR_DATNB_SIZE 4
-#define SSC_TFMR_DATNB_OFFSET 8
-#define SSC_TFMR_FSDEN_SIZE 1
-#define SSC_TFMR_FSDEN_OFFSET 23
-#define SSC_TFMR_FSEDGE_SIZE 1
-#define SSC_TFMR_FSEDGE_OFFSET 24
-#define SSC_TFMR_FSLEN_SIZE 4
-#define SSC_TFMR_FSLEN_OFFSET 16
-#define SSC_TFMR_FSOS_SIZE 3
-#define SSC_TFMR_FSOS_OFFSET 20
-#define SSC_TFMR_MSBF_SIZE 1
-#define SSC_TFMR_MSBF_OFFSET 7
-
-/* SSC Receive Hold Register */
-#define SSC_RHR 0x00000020
-#define SSC_RHR_RDAT_SIZE 32
-#define SSC_RHR_RDAT_OFFSET 0
-
-/* SSC Transmit Hold Register */
-#define SSC_THR 0x00000024
-#define SSC_THR_TDAT_SIZE 32
-#define SSC_THR_TDAT_OFFSET 0
-
-/* SSC Receive Sync. Holding Register */
-#define SSC_RSHR 0x00000030
-#define SSC_RSHR_RSDAT_SIZE 16
-#define SSC_RSHR_RSDAT_OFFSET 0
-
-/* SSC Transmit Sync. Holding Register */
-#define SSC_TSHR 0x00000034
-#define SSC_TSHR_TSDAT_SIZE 16
-#define SSC_TSHR_RSDAT_OFFSET 0
-
-/* SSC Receive Compare 0 Register */
-#define SSC_RC0R 0x00000038
-#define SSC_RC0R_CP0_SIZE 16
-#define SSC_RC0R_CP0_OFFSET 0
-
-/* SSC Receive Compare 1 Register */
-#define SSC_RC1R 0x0000003c
-#define SSC_RC1R_CP1_SIZE 16
-#define SSC_RC1R_CP1_OFFSET 0
-
-/* SSC Status Register */
-#define SSC_SR 0x00000040
-#define SSC_SR_CP0_SIZE 1
-#define SSC_SR_CP0_OFFSET 8
-#define SSC_SR_CP1_SIZE 1
-#define SSC_SR_CP1_OFFSET 9
-#define SSC_SR_ENDRX_SIZE 1
-#define SSC_SR_ENDRX_OFFSET 6
-#define SSC_SR_ENDTX_SIZE 1
-#define SSC_SR_ENDTX_OFFSET 2
-#define SSC_SR_OVRUN_SIZE 1
-#define SSC_SR_OVRUN_OFFSET 5
-#define SSC_SR_RXBUFF_SIZE 1
-#define SSC_SR_RXBUFF_OFFSET 7
-#define SSC_SR_RXEN_SIZE 1
-#define SSC_SR_RXEN_OFFSET 17
-#define SSC_SR_RXRDY_SIZE 1
-#define SSC_SR_RXRDY_OFFSET 4
-#define SSC_SR_RXSYN_SIZE 1
-#define SSC_SR_RXSYN_OFFSET 11
-#define SSC_SR_TXBUFE_SIZE 1
-#define SSC_SR_TXBUFE_OFFSET 3
-#define SSC_SR_TXEMPTY_SIZE 1
-#define SSC_SR_TXEMPTY_OFFSET 1
-#define SSC_SR_TXEN_SIZE 1
-#define SSC_SR_TXEN_OFFSET 16
-#define SSC_SR_TXRDY_SIZE 1
-#define SSC_SR_TXRDY_OFFSET 0
-#define SSC_SR_TXSYN_SIZE 1
-#define SSC_SR_TXSYN_OFFSET 10
-
-/* SSC Interrupt Enable Register */
-#define SSC_IER 0x00000044
-#define SSC_IER_CP0_SIZE 1
-#define SSC_IER_CP0_OFFSET 8
-#define SSC_IER_CP1_SIZE 1
-#define SSC_IER_CP1_OFFSET 9
-#define SSC_IER_ENDRX_SIZE 1
-#define SSC_IER_ENDRX_OFFSET 6
-#define SSC_IER_ENDTX_SIZE 1
-#define SSC_IER_ENDTX_OFFSET 2
-#define SSC_IER_OVRUN_SIZE 1
-#define SSC_IER_OVRUN_OFFSET 5
-#define SSC_IER_RXBUFF_SIZE 1
-#define SSC_IER_RXBUFF_OFFSET 7
-#define SSC_IER_RXRDY_SIZE 1
-#define SSC_IER_RXRDY_OFFSET 4
-#define SSC_IER_RXSYN_SIZE 1
-#define SSC_IER_RXSYN_OFFSET 11
-#define SSC_IER_TXBUFE_SIZE 1
-#define SSC_IER_TXBUFE_OFFSET 3
-#define SSC_IER_TXEMPTY_SIZE 1
-#define SSC_IER_TXEMPTY_OFFSET 1
-#define SSC_IER_TXRDY_SIZE 1
-#define SSC_IER_TXRDY_OFFSET 0
-#define SSC_IER_TXSYN_SIZE 1
-#define SSC_IER_TXSYN_OFFSET 10
-
-/* SSC Interrupt Disable Register */
-#define SSC_IDR 0x00000048
-#define SSC_IDR_CP0_SIZE 1
-#define SSC_IDR_CP0_OFFSET 8
-#define SSC_IDR_CP1_SIZE 1
-#define SSC_IDR_CP1_OFFSET 9
-#define SSC_IDR_ENDRX_SIZE 1
-#define SSC_IDR_ENDRX_OFFSET 6
-#define SSC_IDR_ENDTX_SIZE 1
-#define SSC_IDR_ENDTX_OFFSET 2
-#define SSC_IDR_OVRUN_SIZE 1
-#define SSC_IDR_OVRUN_OFFSET 5
-#define SSC_IDR_RXBUFF_SIZE 1
-#define SSC_IDR_RXBUFF_OFFSET 7
-#define SSC_IDR_RXRDY_SIZE 1
-#define SSC_IDR_RXRDY_OFFSET 4
-#define SSC_IDR_RXSYN_SIZE 1
-#define SSC_IDR_RXSYN_OFFSET 11
-#define SSC_IDR_TXBUFE_SIZE 1
-#define SSC_IDR_TXBUFE_OFFSET 3
-#define SSC_IDR_TXEMPTY_SIZE 1
-#define SSC_IDR_TXEMPTY_OFFSET 1
-#define SSC_IDR_TXRDY_SIZE 1
-#define SSC_IDR_TXRDY_OFFSET 0
-#define SSC_IDR_TXSYN_SIZE 1
-#define SSC_IDR_TXSYN_OFFSET 10
-
-/* SSC Interrupt Mask Register */
-#define SSC_IMR 0x0000004c
-#define SSC_IMR_CP0_SIZE 1
-#define SSC_IMR_CP0_OFFSET 8
-#define SSC_IMR_CP1_SIZE 1
-#define SSC_IMR_CP1_OFFSET 9
-#define SSC_IMR_ENDRX_SIZE 1
-#define SSC_IMR_ENDRX_OFFSET 6
-#define SSC_IMR_ENDTX_SIZE 1
-#define SSC_IMR_ENDTX_OFFSET 2
-#define SSC_IMR_OVRUN_SIZE 1
-#define SSC_IMR_OVRUN_OFFSET 5
-#define SSC_IMR_RXBUFF_SIZE 1
-#define SSC_IMR_RXBUFF_OFFSET 7
-#define SSC_IMR_RXRDY_SIZE 1
-#define SSC_IMR_RXRDY_OFFSET 4
-#define SSC_IMR_RXSYN_SIZE 1
-#define SSC_IMR_RXSYN_OFFSET 11
-#define SSC_IMR_TXBUFE_SIZE 1
-#define SSC_IMR_TXBUFE_OFFSET 3
-#define SSC_IMR_TXEMPTY_SIZE 1
-#define SSC_IMR_TXEMPTY_OFFSET 1
-#define SSC_IMR_TXRDY_SIZE 1
-#define SSC_IMR_TXRDY_OFFSET 0
-#define SSC_IMR_TXSYN_SIZE 1
-#define SSC_IMR_TXSYN_OFFSET 10
-
-/* SSC PDC Receive Pointer Register */
-#define SSC_PDC_RPR 0x00000100
-
-/* SSC PDC Receive Counter Register */
-#define SSC_PDC_RCR 0x00000104
-
-/* SSC PDC Transmit Pointer Register */
-#define SSC_PDC_TPR 0x00000108
-
-/* SSC PDC Receive Next Pointer Register */
-#define SSC_PDC_RNPR 0x00000110
-
-/* SSC PDC Receive Next Counter Register */
-#define SSC_PDC_RNCR 0x00000114
-
-/* SSC PDC Transmit Counter Register */
-#define SSC_PDC_TCR 0x0000010c
-
-/* SSC PDC Transmit Next Pointer Register */
-#define SSC_PDC_TNPR 0x00000118
-
-/* SSC PDC Transmit Next Counter Register */
-#define SSC_PDC_TNCR 0x0000011c
-
-/* SSC PDC Transfer Control Register */
-#define SSC_PDC_PTCR 0x00000120
-#define SSC_PDC_PTCR_RXTDIS_SIZE 1
-#define SSC_PDC_PTCR_RXTDIS_OFFSET 1
-#define SSC_PDC_PTCR_RXTEN_SIZE 1
-#define SSC_PDC_PTCR_RXTEN_OFFSET 0
-#define SSC_PDC_PTCR_TXTDIS_SIZE 1
-#define SSC_PDC_PTCR_TXTDIS_OFFSET 9
-#define SSC_PDC_PTCR_TXTEN_SIZE 1
-#define SSC_PDC_PTCR_TXTEN_OFFSET 8
-
-/* SSC PDC Transfer Status Register */
-#define SSC_PDC_PTSR 0x00000124
-#define SSC_PDC_PTSR_RXTEN_SIZE 1
-#define SSC_PDC_PTSR_RXTEN_OFFSET 0
-#define SSC_PDC_PTSR_TXTEN_SIZE 1
-#define SSC_PDC_PTSR_TXTEN_OFFSET 8
-
-/* Bit manipulation macros */
-#define SSC_BIT(name) \
- (1 << SSC_##name##_OFFSET)
-#define SSC_BF(name, value) \
- (((value) & ((1 << SSC_##name##_SIZE) - 1)) \
- << SSC_##name##_OFFSET)
-#define SSC_BFEXT(name, value) \
- (((value) >> SSC_##name##_OFFSET) \
- & ((1 << SSC_##name##_SIZE) - 1))
-#define SSC_BFINS(name, value, old) \
- (((old) & ~(((1 << SSC_##name##_SIZE) - 1) \
- << SSC_##name##_OFFSET)) | SSC_BF(name, value))
-
-/* Register access macros */
-#define ssc_readl(base, reg) __raw_readl(base + SSC_##reg)
-#define ssc_writel(base, reg, value) __raw_writel((value), base + SSC_##reg)
-
-#endif /* __INCLUDE_ATMEL_SSC_H */
diff --git a/ANDROID_3.4.5/include/linux/atmel_pdc.h b/ANDROID_3.4.5/include/linux/atmel_pdc.h
deleted file mode 100644
index 63499ce8..00000000
--- a/ANDROID_3.4.5/include/linux/atmel_pdc.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * include/linux/atmel_pdc.h
- *
- * Copyright (C) 2005 Ivan Kokshaysky
- * Copyright (C) SAN People
- *
- * Peripheral Data Controller (PDC) registers.
- * Based on AT91RM9200 datasheet revision E.
- *
- * 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 ATMEL_PDC_H
-#define ATMEL_PDC_H
-
-#define ATMEL_PDC_RPR 0x100 /* Receive Pointer Register */
-#define ATMEL_PDC_RCR 0x104 /* Receive Counter Register */
-#define ATMEL_PDC_TPR 0x108 /* Transmit Pointer Register */
-#define ATMEL_PDC_TCR 0x10c /* Transmit Counter Register */
-#define ATMEL_PDC_RNPR 0x110 /* Receive Next Pointer Register */
-#define ATMEL_PDC_RNCR 0x114 /* Receive Next Counter Register */
-#define ATMEL_PDC_TNPR 0x118 /* Transmit Next Pointer Register */
-#define ATMEL_PDC_TNCR 0x11c /* Transmit Next Counter Register */
-
-#define ATMEL_PDC_PTCR 0x120 /* Transfer Control Register */
-#define ATMEL_PDC_RXTEN (1 << 0) /* Receiver Transfer Enable */
-#define ATMEL_PDC_RXTDIS (1 << 1) /* Receiver Transfer Disable */
-#define ATMEL_PDC_TXTEN (1 << 8) /* Transmitter Transfer Enable */
-#define ATMEL_PDC_TXTDIS (1 << 9) /* Transmitter Transfer Disable */
-
-#define ATMEL_PDC_PTSR 0x124 /* Transfer Status Register */
-
-#define ATMEL_PDC_SCND_BUF_OFF 0x10 /* Offset between first and second buffer registers */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/atmel_pwm.h b/ANDROID_3.4.5/include/linux/atmel_pwm.h
deleted file mode 100644
index ea04abb3..00000000
--- a/ANDROID_3.4.5/include/linux/atmel_pwm.h
+++ /dev/null
@@ -1,70 +0,0 @@
-#ifndef __LINUX_ATMEL_PWM_H
-#define __LINUX_ATMEL_PWM_H
-
-/**
- * struct pwm_channel - driver handle to a PWM channel
- * @regs: base of this channel's registers
- * @index: number of this channel (0..31)
- * @mck: base clock rate, which can be prescaled and maybe subdivided
- *
- * Drivers initialize a pwm_channel structure using pwm_channel_alloc().
- * Then they configure its clock rate (derived from MCK), alignment,
- * polarity, and duty cycle by writing directly to the channel registers,
- * before enabling the channel by calling pwm_channel_enable().
- *
- * After emitting a PWM signal for the desired length of time, drivers
- * may then pwm_channel_disable() or pwm_channel_free(). Both of these
- * disable the channel, but when it's freed the IRQ is deconfigured and
- * the channel must later be re-allocated and reconfigured.
- *
- * Note that if the period or duty cycle need to be changed while the
- * PWM channel is operating, drivers must use the PWM_CUPD double buffer
- * mechanism, either polling until they change or getting implicitly
- * notified through a once-per-period interrupt handler.
- */
-struct pwm_channel {
- void __iomem *regs;
- unsigned index;
- unsigned long mck;
-};
-
-extern int pwm_channel_alloc(int index, struct pwm_channel *ch);
-extern int pwm_channel_free(struct pwm_channel *ch);
-
-extern int pwm_clk_alloc(unsigned prescale, unsigned div);
-extern void pwm_clk_free(unsigned clk);
-
-extern int __pwm_channel_onoff(struct pwm_channel *ch, int enabled);
-
-#define pwm_channel_enable(ch) __pwm_channel_onoff((ch), 1)
-#define pwm_channel_disable(ch) __pwm_channel_onoff((ch), 0)
-
-/* periodic interrupts, mostly for CUPD changes to period or cycle */
-extern int pwm_channel_handler(struct pwm_channel *ch,
- void (*handler)(struct pwm_channel *ch));
-
-/* per-channel registers (banked at pwm_channel->regs) */
-#define PWM_CMR 0x00 /* mode register */
-#define PWM_CPR_CPD (1 << 10) /* set: CUPD modifies period */
-#define PWM_CPR_CPOL (1 << 9) /* set: idle high */
-#define PWM_CPR_CALG (1 << 8) /* set: center align */
-#define PWM_CPR_CPRE (0xf << 0) /* mask: rate is mck/(2^pre) */
-#define PWM_CPR_CLKA (0xb << 0) /* rate CLKA */
-#define PWM_CPR_CLKB (0xc << 0) /* rate CLKB */
-#define PWM_CDTY 0x04 /* duty cycle (max of CPRD) */
-#define PWM_CPRD 0x08 /* period (count up from zero) */
-#define PWM_CCNT 0x0c /* counter (20 bits?) */
-#define PWM_CUPD 0x10 /* update CPRD (or CDTY) next period */
-
-static inline void
-pwm_channel_writel(struct pwm_channel *pwmc, unsigned offset, u32 val)
-{
- __raw_writel(val, pwmc->regs + offset);
-}
-
-static inline u32 pwm_channel_readl(struct pwm_channel *pwmc, unsigned offset)
-{
- return __raw_readl(pwmc->regs + offset);
-}
-
-#endif /* __LINUX_ATMEL_PWM_H */
diff --git a/ANDROID_3.4.5/include/linux/atmel_serial.h b/ANDROID_3.4.5/include/linux/atmel_serial.h
deleted file mode 100644
index fd683376..00000000
--- a/ANDROID_3.4.5/include/linux/atmel_serial.h
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * include/linux/atmel_serial.h
- *
- * Copyright (C) 2005 Ivan Kokshaysky
- * Copyright (C) SAN People
- *
- * USART registers.
- * Based on AT91RM9200 datasheet revision E.
- *
- * 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 ATMEL_SERIAL_H
-#define ATMEL_SERIAL_H
-
-#define ATMEL_US_CR 0x00 /* Control Register */
-#define ATMEL_US_RSTRX (1 << 2) /* Reset Receiver */
-#define ATMEL_US_RSTTX (1 << 3) /* Reset Transmitter */
-#define ATMEL_US_RXEN (1 << 4) /* Receiver Enable */
-#define ATMEL_US_RXDIS (1 << 5) /* Receiver Disable */
-#define ATMEL_US_TXEN (1 << 6) /* Transmitter Enable */
-#define ATMEL_US_TXDIS (1 << 7) /* Transmitter Disable */
-#define ATMEL_US_RSTSTA (1 << 8) /* Reset Status Bits */
-#define ATMEL_US_STTBRK (1 << 9) /* Start Break */
-#define ATMEL_US_STPBRK (1 << 10) /* Stop Break */
-#define ATMEL_US_STTTO (1 << 11) /* Start Time-out */
-#define ATMEL_US_SENDA (1 << 12) /* Send Address */
-#define ATMEL_US_RSTIT (1 << 13) /* Reset Iterations */
-#define ATMEL_US_RSTNACK (1 << 14) /* Reset Non Acknowledge */
-#define ATMEL_US_RETTO (1 << 15) /* Rearm Time-out */
-#define ATMEL_US_DTREN (1 << 16) /* Data Terminal Ready Enable [AT91RM9200 only] */
-#define ATMEL_US_DTRDIS (1 << 17) /* Data Terminal Ready Disable [AT91RM9200 only] */
-#define ATMEL_US_RTSEN (1 << 18) /* Request To Send Enable */
-#define ATMEL_US_RTSDIS (1 << 19) /* Request To Send Disable */
-
-#define ATMEL_US_MR 0x04 /* Mode Register */
-#define ATMEL_US_USMODE (0xf << 0) /* Mode of the USART */
-#define ATMEL_US_USMODE_NORMAL 0
-#define ATMEL_US_USMODE_RS485 1
-#define ATMEL_US_USMODE_HWHS 2
-#define ATMEL_US_USMODE_MODEM 3
-#define ATMEL_US_USMODE_ISO7816_T0 4
-#define ATMEL_US_USMODE_ISO7816_T1 6
-#define ATMEL_US_USMODE_IRDA 8
-#define ATMEL_US_USCLKS (3 << 4) /* Clock Selection */
-#define ATMEL_US_USCLKS_MCK (0 << 4)
-#define ATMEL_US_USCLKS_MCK_DIV8 (1 << 4)
-#define ATMEL_US_USCLKS_SCK (3 << 4)
-#define ATMEL_US_CHRL (3 << 6) /* Character Length */
-#define ATMEL_US_CHRL_5 (0 << 6)
-#define ATMEL_US_CHRL_6 (1 << 6)
-#define ATMEL_US_CHRL_7 (2 << 6)
-#define ATMEL_US_CHRL_8 (3 << 6)
-#define ATMEL_US_SYNC (1 << 8) /* Synchronous Mode Select */
-#define ATMEL_US_PAR (7 << 9) /* Parity Type */
-#define ATMEL_US_PAR_EVEN (0 << 9)
-#define ATMEL_US_PAR_ODD (1 << 9)
-#define ATMEL_US_PAR_SPACE (2 << 9)
-#define ATMEL_US_PAR_MARK (3 << 9)
-#define ATMEL_US_PAR_NONE (4 << 9)
-#define ATMEL_US_PAR_MULTI_DROP (6 << 9)
-#define ATMEL_US_NBSTOP (3 << 12) /* Number of Stop Bits */
-#define ATMEL_US_NBSTOP_1 (0 << 12)
-#define ATMEL_US_NBSTOP_1_5 (1 << 12)
-#define ATMEL_US_NBSTOP_2 (2 << 12)
-#define ATMEL_US_CHMODE (3 << 14) /* Channel Mode */
-#define ATMEL_US_CHMODE_NORMAL (0 << 14)
-#define ATMEL_US_CHMODE_ECHO (1 << 14)
-#define ATMEL_US_CHMODE_LOC_LOOP (2 << 14)
-#define ATMEL_US_CHMODE_REM_LOOP (3 << 14)
-#define ATMEL_US_MSBF (1 << 16) /* Bit Order */
-#define ATMEL_US_MODE9 (1 << 17) /* 9-bit Character Length */
-#define ATMEL_US_CLKO (1 << 18) /* Clock Output Select */
-#define ATMEL_US_OVER (1 << 19) /* Oversampling Mode */
-#define ATMEL_US_INACK (1 << 20) /* Inhibit Non Acknowledge */
-#define ATMEL_US_DSNACK (1 << 21) /* Disable Successive NACK */
-#define ATMEL_US_MAX_ITER (7 << 24) /* Max Iterations */
-#define ATMEL_US_FILTER (1 << 28) /* Infrared Receive Line Filter */
-
-#define ATMEL_US_IER 0x08 /* Interrupt Enable Register */
-#define ATMEL_US_RXRDY (1 << 0) /* Receiver Ready */
-#define ATMEL_US_TXRDY (1 << 1) /* Transmitter Ready */
-#define ATMEL_US_RXBRK (1 << 2) /* Break Received / End of Break */
-#define ATMEL_US_ENDRX (1 << 3) /* End of Receiver Transfer */
-#define ATMEL_US_ENDTX (1 << 4) /* End of Transmitter Transfer */
-#define ATMEL_US_OVRE (1 << 5) /* Overrun Error */
-#define ATMEL_US_FRAME (1 << 6) /* Framing Error */
-#define ATMEL_US_PARE (1 << 7) /* Parity Error */
-#define ATMEL_US_TIMEOUT (1 << 8) /* Receiver Time-out */
-#define ATMEL_US_TXEMPTY (1 << 9) /* Transmitter Empty */
-#define ATMEL_US_ITERATION (1 << 10) /* Max number of Repetitions Reached */
-#define ATMEL_US_TXBUFE (1 << 11) /* Transmission Buffer Empty */
-#define ATMEL_US_RXBUFF (1 << 12) /* Reception Buffer Full */
-#define ATMEL_US_NACK (1 << 13) /* Non Acknowledge */
-#define ATMEL_US_RIIC (1 << 16) /* Ring Indicator Input Change [AT91RM9200 only] */
-#define ATMEL_US_DSRIC (1 << 17) /* Data Set Ready Input Change [AT91RM9200 only] */
-#define ATMEL_US_DCDIC (1 << 18) /* Data Carrier Detect Input Change [AT91RM9200 only] */
-#define ATMEL_US_CTSIC (1 << 19) /* Clear to Send Input Change */
-#define ATMEL_US_RI (1 << 20) /* RI */
-#define ATMEL_US_DSR (1 << 21) /* DSR */
-#define ATMEL_US_DCD (1 << 22) /* DCD */
-#define ATMEL_US_CTS (1 << 23) /* CTS */
-
-#define ATMEL_US_IDR 0x0c /* Interrupt Disable Register */
-#define ATMEL_US_IMR 0x10 /* Interrupt Mask Register */
-#define ATMEL_US_CSR 0x14 /* Channel Status Register */
-#define ATMEL_US_RHR 0x18 /* Receiver Holding Register */
-#define ATMEL_US_THR 0x1c /* Transmitter Holding Register */
-#define ATMEL_US_SYNH (1 << 15) /* Transmit/Receive Sync [AT91SAM9261 only] */
-
-#define ATMEL_US_BRGR 0x20 /* Baud Rate Generator Register */
-#define ATMEL_US_CD (0xffff << 0) /* Clock Divider */
-
-#define ATMEL_US_RTOR 0x24 /* Receiver Time-out Register */
-#define ATMEL_US_TO (0xffff << 0) /* Time-out Value */
-
-#define ATMEL_US_TTGR 0x28 /* Transmitter Timeguard Register */
-#define ATMEL_US_TG (0xff << 0) /* Timeguard Value */
-
-#define ATMEL_US_FIDI 0x40 /* FI DI Ratio Register */
-#define ATMEL_US_NER 0x44 /* Number of Errors Register */
-#define ATMEL_US_IF 0x4c /* IrDA Filter Register */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/atmel_tc.h b/ANDROID_3.4.5/include/linux/atmel_tc.h
deleted file mode 100644
index 1d14b1dc..00000000
--- a/ANDROID_3.4.5/include/linux/atmel_tc.h
+++ /dev/null
@@ -1,262 +0,0 @@
-/*
- * Timer/Counter Unit (TC) registers.
- *
- * 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 ATMEL_TC_H
-#define ATMEL_TC_H
-
-#include <linux/compiler.h>
-#include <linux/list.h>
-
-/*
- * Many 32-bit Atmel SOCs include one or more TC blocks, each of which holds
- * three general-purpose 16-bit timers. These timers share one register bank.
- * Depending on the SOC, each timer may have its own clock and IRQ, or those
- * may be shared by the whole TC block.
- *
- * These TC blocks may have up to nine external pins: TCLK0..2 signals for
- * clocks or clock gates, and per-timer TIOA and TIOB signals used for PWM
- * or triggering. Those pins need to be set up for use with the TC block,
- * else they will be used as GPIOs or for a different controller.
- *
- * Although we expect each TC block to have a platform_device node, those
- * nodes are not what drivers bind to. Instead, they ask for a specific
- * TC block, by number ... which is a common approach on systems with many
- * timers. Then they use clk_get() and platform_get_irq() to get clock and
- * IRQ resources.
- */
-
-struct clk;
-
-/**
- * struct atmel_tcb_config - SoC data for a Timer/Counter Block
- * @counter_width: size in bits of a timer counter register
- */
-struct atmel_tcb_config {
- size_t counter_width;
-};
-
-/**
- * struct atmel_tc - information about a Timer/Counter Block
- * @pdev: physical device
- * @iomem: resource associated with the I/O register
- * @regs: mapping through which the I/O registers can be accessed
- * @tcb_config: configuration data from SoC
- * @irq: irq for each of the three channels
- * @clk: internal clock source for each of the three channels
- * @node: list node, for tclib internal use
- *
- * On some platforms, each TC channel has its own clocks and IRQs,
- * while on others, all TC channels share the same clock and IRQ.
- * Drivers should clk_enable() all the clocks they need even though
- * all the entries in @clk may point to the same physical clock.
- * Likewise, drivers should request irqs independently for each
- * channel, but they must use IRQF_SHARED in case some of the entries
- * in @irq are actually the same IRQ.
- */
-struct atmel_tc {
- struct platform_device *pdev;
- struct resource *iomem;
- void __iomem *regs;
- struct atmel_tcb_config *tcb_config;
- int irq[3];
- struct clk *clk[3];
- struct list_head node;
-};
-
-extern struct atmel_tc *atmel_tc_alloc(unsigned block, const char *name);
-extern void atmel_tc_free(struct atmel_tc *tc);
-
-/* platform-specific ATMEL_TC_TIMER_CLOCKx divisors (0 means 32KiHz) */
-extern const u8 atmel_tc_divisors[5];
-
-
-/*
- * Two registers have block-wide controls. These are: configuring the three
- * "external" clocks (or event sources) used by the timer channels; and
- * synchronizing the timers by resetting them all at once.
- *
- * "External" can mean "external to chip" using the TCLK0, TCLK1, or TCLK2
- * signals. Or, it can mean "external to timer", using the TIOA output from
- * one of the other two timers that's being run in waveform mode.
- */
-
-#define ATMEL_TC_BCR 0xc0 /* TC Block Control Register */
-#define ATMEL_TC_SYNC (1 << 0) /* synchronize timers */
-
-#define ATMEL_TC_BMR 0xc4 /* TC Block Mode Register */
-#define ATMEL_TC_TC0XC0S (3 << 0) /* external clock 0 source */
-#define ATMEL_TC_TC0XC0S_TCLK0 (0 << 0)
-#define ATMEL_TC_TC0XC0S_NONE (1 << 0)
-#define ATMEL_TC_TC0XC0S_TIOA1 (2 << 0)
-#define ATMEL_TC_TC0XC0S_TIOA2 (3 << 0)
-#define ATMEL_TC_TC1XC1S (3 << 2) /* external clock 1 source */
-#define ATMEL_TC_TC1XC1S_TCLK1 (0 << 2)
-#define ATMEL_TC_TC1XC1S_NONE (1 << 2)
-#define ATMEL_TC_TC1XC1S_TIOA0 (2 << 2)
-#define ATMEL_TC_TC1XC1S_TIOA2 (3 << 2)
-#define ATMEL_TC_TC2XC2S (3 << 4) /* external clock 2 source */
-#define ATMEL_TC_TC2XC2S_TCLK2 (0 << 4)
-#define ATMEL_TC_TC2XC2S_NONE (1 << 4)
-#define ATMEL_TC_TC2XC2S_TIOA0 (2 << 4)
-#define ATMEL_TC_TC2XC2S_TIOA1 (3 << 4)
-
-
-/*
- * Each TC block has three "channels", each with one counter and controls.
- *
- * Note that the semantics of ATMEL_TC_TIMER_CLOCKx (input clock selection
- * when it's not "external") is silicon-specific. AT91 platforms use one
- * set of definitions; AVR32 platforms use a different set. Don't hard-wire
- * such knowledge into your code, use the global "atmel_tc_divisors" ...
- * where index N is the divisor for clock N+1, else zero to indicate it uses
- * the 32 KiHz clock.
- *
- * The timers can be chained in various ways, and operated in "waveform"
- * generation mode (including PWM) or "capture" mode (to time events). In
- * both modes, behavior can be configured in many ways.
- *
- * Each timer has two I/O pins, TIOA and TIOB. Waveform mode uses TIOA as a
- * PWM output, and TIOB as either another PWM or as a trigger. Capture mode
- * uses them only as inputs.
- */
-#define ATMEL_TC_CHAN(idx) ((idx)*0x40)
-#define ATMEL_TC_REG(idx, reg) (ATMEL_TC_CHAN(idx) + ATMEL_TC_ ## reg)
-
-#define ATMEL_TC_CCR 0x00 /* Channel Control Register */
-#define ATMEL_TC_CLKEN (1 << 0) /* clock enable */
-#define ATMEL_TC_CLKDIS (1 << 1) /* clock disable */
-#define ATMEL_TC_SWTRG (1 << 2) /* software trigger */
-
-#define ATMEL_TC_CMR 0x04 /* Channel Mode Register */
-
-/* Both modes share some CMR bits */
-#define ATMEL_TC_TCCLKS (7 << 0) /* clock source */
-#define ATMEL_TC_TIMER_CLOCK1 (0 << 0)
-#define ATMEL_TC_TIMER_CLOCK2 (1 << 0)
-#define ATMEL_TC_TIMER_CLOCK3 (2 << 0)
-#define ATMEL_TC_TIMER_CLOCK4 (3 << 0)
-#define ATMEL_TC_TIMER_CLOCK5 (4 << 0)
-#define ATMEL_TC_XC0 (5 << 0)
-#define ATMEL_TC_XC1 (6 << 0)
-#define ATMEL_TC_XC2 (7 << 0)
-#define ATMEL_TC_CLKI (1 << 3) /* clock invert */
-#define ATMEL_TC_BURST (3 << 4) /* clock gating */
-#define ATMEL_TC_GATE_NONE (0 << 4)
-#define ATMEL_TC_GATE_XC0 (1 << 4)
-#define ATMEL_TC_GATE_XC1 (2 << 4)
-#define ATMEL_TC_GATE_XC2 (3 << 4)
-#define ATMEL_TC_WAVE (1 << 15) /* true = Waveform mode */
-
-/* CAPTURE mode CMR bits */
-#define ATMEL_TC_LDBSTOP (1 << 6) /* counter stops on RB load */
-#define ATMEL_TC_LDBDIS (1 << 7) /* counter disable on RB load */
-#define ATMEL_TC_ETRGEDG (3 << 8) /* external trigger edge */
-#define ATMEL_TC_ETRGEDG_NONE (0 << 8)
-#define ATMEL_TC_ETRGEDG_RISING (1 << 8)
-#define ATMEL_TC_ETRGEDG_FALLING (2 << 8)
-#define ATMEL_TC_ETRGEDG_BOTH (3 << 8)
-#define ATMEL_TC_ABETRG (1 << 10) /* external trigger is TIOA? */
-#define ATMEL_TC_CPCTRG (1 << 14) /* RC compare trigger enable */
-#define ATMEL_TC_LDRA (3 << 16) /* RA loading edge (of TIOA) */
-#define ATMEL_TC_LDRA_NONE (0 << 16)
-#define ATMEL_TC_LDRA_RISING (1 << 16)
-#define ATMEL_TC_LDRA_FALLING (2 << 16)
-#define ATMEL_TC_LDRA_BOTH (3 << 16)
-#define ATMEL_TC_LDRB (3 << 18) /* RB loading edge (of TIOA) */
-#define ATMEL_TC_LDRB_NONE (0 << 18)
-#define ATMEL_TC_LDRB_RISING (1 << 18)
-#define ATMEL_TC_LDRB_FALLING (2 << 18)
-#define ATMEL_TC_LDRB_BOTH (3 << 18)
-
-/* WAVEFORM mode CMR bits */
-#define ATMEL_TC_CPCSTOP (1 << 6) /* RC compare stops counter */
-#define ATMEL_TC_CPCDIS (1 << 7) /* RC compare disables counter */
-#define ATMEL_TC_EEVTEDG (3 << 8) /* external event edge */
-#define ATMEL_TC_EEVTEDG_NONE (0 << 8)
-#define ATMEL_TC_EEVTEDG_RISING (1 << 8)
-#define ATMEL_TC_EEVTEDG_FALLING (2 << 8)
-#define ATMEL_TC_EEVTEDG_BOTH (3 << 8)
-#define ATMEL_TC_EEVT (3 << 10) /* external event source */
-#define ATMEL_TC_EEVT_TIOB (0 << 10)
-#define ATMEL_TC_EEVT_XC0 (1 << 10)
-#define ATMEL_TC_EEVT_XC1 (2 << 10)
-#define ATMEL_TC_EEVT_XC2 (3 << 10)
-#define ATMEL_TC_ENETRG (1 << 12) /* external event is trigger */
-#define ATMEL_TC_WAVESEL (3 << 13) /* waveform type */
-#define ATMEL_TC_WAVESEL_UP (0 << 13)
-#define ATMEL_TC_WAVESEL_UPDOWN (1 << 13)
-#define ATMEL_TC_WAVESEL_UP_AUTO (2 << 13)
-#define ATMEL_TC_WAVESEL_UPDOWN_AUTO (3 << 13)
-#define ATMEL_TC_ACPA (3 << 16) /* RA compare changes TIOA */
-#define ATMEL_TC_ACPA_NONE (0 << 16)
-#define ATMEL_TC_ACPA_SET (1 << 16)
-#define ATMEL_TC_ACPA_CLEAR (2 << 16)
-#define ATMEL_TC_ACPA_TOGGLE (3 << 16)
-#define ATMEL_TC_ACPC (3 << 18) /* RC compare changes TIOA */
-#define ATMEL_TC_ACPC_NONE (0 << 18)
-#define ATMEL_TC_ACPC_SET (1 << 18)
-#define ATMEL_TC_ACPC_CLEAR (2 << 18)
-#define ATMEL_TC_ACPC_TOGGLE (3 << 18)
-#define ATMEL_TC_AEEVT (3 << 20) /* external event changes TIOA */
-#define ATMEL_TC_AEEVT_NONE (0 << 20)
-#define ATMEL_TC_AEEVT_SET (1 << 20)
-#define ATMEL_TC_AEEVT_CLEAR (2 << 20)
-#define ATMEL_TC_AEEVT_TOGGLE (3 << 20)
-#define ATMEL_TC_ASWTRG (3 << 22) /* software trigger changes TIOA */
-#define ATMEL_TC_ASWTRG_NONE (0 << 22)
-#define ATMEL_TC_ASWTRG_SET (1 << 22)
-#define ATMEL_TC_ASWTRG_CLEAR (2 << 22)
-#define ATMEL_TC_ASWTRG_TOGGLE (3 << 22)
-#define ATMEL_TC_BCPB (3 << 24) /* RB compare changes TIOB */
-#define ATMEL_TC_BCPB_NONE (0 << 24)
-#define ATMEL_TC_BCPB_SET (1 << 24)
-#define ATMEL_TC_BCPB_CLEAR (2 << 24)
-#define ATMEL_TC_BCPB_TOGGLE (3 << 24)
-#define ATMEL_TC_BCPC (3 << 26) /* RC compare changes TIOB */
-#define ATMEL_TC_BCPC_NONE (0 << 26)
-#define ATMEL_TC_BCPC_SET (1 << 26)
-#define ATMEL_TC_BCPC_CLEAR (2 << 26)
-#define ATMEL_TC_BCPC_TOGGLE (3 << 26)
-#define ATMEL_TC_BEEVT (3 << 28) /* external event changes TIOB */
-#define ATMEL_TC_BEEVT_NONE (0 << 28)
-#define ATMEL_TC_BEEVT_SET (1 << 28)
-#define ATMEL_TC_BEEVT_CLEAR (2 << 28)
-#define ATMEL_TC_BEEVT_TOGGLE (3 << 28)
-#define ATMEL_TC_BSWTRG (3 << 30) /* software trigger changes TIOB */
-#define ATMEL_TC_BSWTRG_NONE (0 << 30)
-#define ATMEL_TC_BSWTRG_SET (1 << 30)
-#define ATMEL_TC_BSWTRG_CLEAR (2 << 30)
-#define ATMEL_TC_BSWTRG_TOGGLE (3 << 30)
-
-#define ATMEL_TC_CV 0x10 /* counter Value */
-#define ATMEL_TC_RA 0x14 /* register A */
-#define ATMEL_TC_RB 0x18 /* register B */
-#define ATMEL_TC_RC 0x1c /* register C */
-
-#define ATMEL_TC_SR 0x20 /* status (read-only) */
-/* Status-only flags */
-#define ATMEL_TC_CLKSTA (1 << 16) /* clock enabled */
-#define ATMEL_TC_MTIOA (1 << 17) /* TIOA mirror */
-#define ATMEL_TC_MTIOB (1 << 18) /* TIOB mirror */
-
-#define ATMEL_TC_IER 0x24 /* interrupt enable (write-only) */
-#define ATMEL_TC_IDR 0x28 /* interrupt disable (write-only) */
-#define ATMEL_TC_IMR 0x2c /* interrupt mask (read-only) */
-
-/* Status and IRQ flags */
-#define ATMEL_TC_COVFS (1 << 0) /* counter overflow */
-#define ATMEL_TC_LOVRS (1 << 1) /* load overrun */
-#define ATMEL_TC_CPAS (1 << 2) /* RA compare */
-#define ATMEL_TC_CPBS (1 << 3) /* RB compare */
-#define ATMEL_TC_CPCS (1 << 4) /* RC compare */
-#define ATMEL_TC_LDRAS (1 << 5) /* RA loading */
-#define ATMEL_TC_LDRBS (1 << 6) /* RB loading */
-#define ATMEL_TC_ETRGS (1 << 7) /* external trigger */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/atmioc.h b/ANDROID_3.4.5/include/linux/atmioc.h
deleted file mode 100644
index 37f67aa8..00000000
--- a/ANDROID_3.4.5/include/linux/atmioc.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* atmioc.h - ranges for ATM-related ioctl numbers */
-
-/* Written 1995-1999 by Werner Almesberger, EPFL LRC/ICA */
-
-
-/*
- * See http://icawww1.epfl.ch/linux-atm/magic.html for the complete list of
- * "magic" ioctl numbers.
- */
-
-
-#ifndef _LINUX_ATMIOC_H
-#define _LINUX_ATMIOC_H
-
-#include <asm/ioctl.h>
- /* everybody including atmioc.h will also need _IO{,R,W,WR} */
-
-#define ATMIOC_PHYCOM 0x00 /* PHY device common ioctls, globally unique */
-#define ATMIOC_PHYCOM_END 0x0f
-#define ATMIOC_PHYTYP 0x10 /* PHY dev type ioctls, unique per PHY type */
-#define ATMIOC_PHYTYP_END 0x2f
-#define ATMIOC_PHYPRV 0x30 /* PHY dev private ioctls, unique per driver */
-#define ATMIOC_PHYPRV_END 0x4f
-#define ATMIOC_SARCOM 0x50 /* SAR device common ioctls, globally unique */
-#define ATMIOC_SARCOM_END 0x50
-#define ATMIOC_SARPRV 0x60 /* SAR dev private ioctls, unique per driver */
-#define ATMIOC_SARPRV_END 0x7f
-#define ATMIOC_ITF 0x80 /* Interface ioctls, globally unique */
-#define ATMIOC_ITF_END 0x8f
-#define ATMIOC_BACKEND 0x90 /* ATM generic backend ioctls, u. per backend */
-#define ATMIOC_BACKEND_END 0xaf
-/* 0xb0-0xbf: Reserved for future use */
-#define ATMIOC_AREQUIPA 0xc0 /* Application requested IP over ATM, glob. u. */
-#define ATMIOC_LANE 0xd0 /* LAN Emulation, globally unique */
-#define ATMIOC_MPOA 0xd8 /* MPOA, globally unique */
-#define ATMIOC_CLIP 0xe0 /* Classical IP over ATM control, globally u. */
-#define ATMIOC_CLIP_END 0xef
-#define ATMIOC_SPECIAL 0xf0 /* Special-purpose controls, globally unique */
-#define ATMIOC_SPECIAL_END 0xff
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/atmlec.h b/ANDROID_3.4.5/include/linux/atmlec.h
deleted file mode 100644
index 39c917fd..00000000
--- a/ANDROID_3.4.5/include/linux/atmlec.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * ATM Lan Emulation Daemon driver interface
- *
- * Marko Kiiskila <mkiiskila@yahoo.com>
- */
-
-#ifndef _ATMLEC_H_
-#define _ATMLEC_H_
-
-#include <linux/atmapi.h>
-#include <linux/atmioc.h>
-#include <linux/atm.h>
-#include <linux/if_ether.h>
-#include <linux/types.h>
-
-/* ATM lec daemon control socket */
-#define ATMLEC_CTRL _IO('a', ATMIOC_LANE)
-#define ATMLEC_DATA _IO('a', ATMIOC_LANE+1)
-#define ATMLEC_MCAST _IO('a', ATMIOC_LANE+2)
-
-/* Maximum number of LEC interfaces (tweakable) */
-#define MAX_LEC_ITF 48
-
-/*
- * From the total of MAX_LEC_ITF, last NUM_TR_DEVS are reserved for Token Ring.
- * E.g. if MAX_LEC_ITF = 48 and NUM_TR_DEVS = 8, then lec0-lec39 are for
- * Ethernet ELANs and lec40-lec47 are for Token Ring ELANS.
- */
-#define NUM_TR_DEVS 8
-
-typedef enum {
- l_set_mac_addr,
- l_del_mac_addr,
- l_svc_setup,
- l_addr_delete,
- l_topology_change,
- l_flush_complete,
- l_arp_update,
- l_narp_req, /* LANE2 mandates the use of this */
- l_config,
- l_flush_tran_id,
- l_set_lecid,
- l_arp_xmt,
- l_rdesc_arp_xmt,
- l_associate_req,
- l_should_bridge /* should we bridge this MAC? */
-} atmlec_msg_type;
-
-#define ATMLEC_MSG_TYPE_MAX l_should_bridge
-
-struct atmlec_config_msg {
- unsigned int maximum_unknown_frame_count;
- unsigned int max_unknown_frame_time;
- unsigned short max_retry_count;
- unsigned int aging_time;
- unsigned int forward_delay_time;
- unsigned int arp_response_time;
- unsigned int flush_timeout;
- unsigned int path_switching_delay;
- unsigned int lane_version; /* LANE2: 1 for LANEv1, 2 for LANEv2 */
- int mtu;
- int is_proxy;
-};
-
-struct atmlec_msg {
- atmlec_msg_type type;
- int sizeoftlvs; /* LANE2: if != 0, tlvs follow */
- union {
- struct {
- unsigned char mac_addr[ETH_ALEN];
- unsigned char atm_addr[ATM_ESA_LEN];
- unsigned int flag; /*
- * Topology_change flag,
- * remoteflag, permanent flag,
- * lecid, transaction id
- */
- unsigned int targetless_le_arp; /* LANE2 */
- unsigned int no_source_le_narp; /* LANE2 */
- } normal;
- struct atmlec_config_msg config;
- struct {
- __u16 lec_id; /* requestor lec_id */
- __u32 tran_id; /* transaction id */
- unsigned char mac_addr[ETH_ALEN]; /* dst mac addr */
- unsigned char atm_addr[ATM_ESA_LEN]; /* reqestor ATM addr */
- } proxy; /*
- * For mapping LE_ARP requests to responses. Filled by
- * zeppelin, returned by kernel. Used only when proxying
- */
- } content;
-} __ATM_API_ALIGN;
-
-struct atmlec_ioc {
- int dev_num;
- unsigned char atm_addr[ATM_ESA_LEN];
- unsigned char receive; /* 1= receive vcc, 0 = send vcc */
-};
-#endif /* _ATMLEC_H_ */
diff --git a/ANDROID_3.4.5/include/linux/atmmpc.h b/ANDROID_3.4.5/include/linux/atmmpc.h
deleted file mode 100644
index 2aba5787..00000000
--- a/ANDROID_3.4.5/include/linux/atmmpc.h
+++ /dev/null
@@ -1,126 +0,0 @@
-#ifndef _ATMMPC_H_
-#define _ATMMPC_H_
-
-#include <linux/atmapi.h>
-#include <linux/atmioc.h>
-#include <linux/atm.h>
-#include <linux/types.h>
-
-#define ATMMPC_CTRL _IO('a', ATMIOC_MPOA)
-#define ATMMPC_DATA _IO('a', ATMIOC_MPOA+1)
-
-#define MPC_SOCKET_INGRESS 1
-#define MPC_SOCKET_EGRESS 2
-
-struct atmmpc_ioc {
- int dev_num;
- __be32 ipaddr; /* the IP address of the shortcut */
- int type; /* ingress or egress */
-};
-
-typedef struct in_ctrl_info {
- __u8 Last_NHRP_CIE_code;
- __u8 Last_Q2931_cause_value;
- __u8 eg_MPC_ATM_addr[ATM_ESA_LEN];
- __be32 tag;
- __be32 in_dst_ip; /* IP address this ingress MPC sends packets to */
- __u16 holding_time;
- __u32 request_id;
-} in_ctrl_info;
-
-typedef struct eg_ctrl_info {
- __u8 DLL_header[256];
- __u8 DH_length;
- __be32 cache_id;
- __be32 tag;
- __be32 mps_ip;
- __be32 eg_dst_ip; /* IP address to which ingress MPC sends packets */
- __u8 in_MPC_data_ATM_addr[ATM_ESA_LEN];
- __u16 holding_time;
-} eg_ctrl_info;
-
-struct mpc_parameters {
- __u16 mpc_p1; /* Shortcut-Setup Frame Count */
- __u16 mpc_p2; /* Shortcut-Setup Frame Time */
- __u8 mpc_p3[8]; /* Flow-detection Protocols */
- __u16 mpc_p4; /* MPC Initial Retry Time */
- __u16 mpc_p5; /* MPC Retry Time Maximum */
- __u16 mpc_p6; /* Hold Down Time */
-} ;
-
-struct k_message {
- __u16 type;
- __be32 ip_mask;
- __u8 MPS_ctrl[ATM_ESA_LEN];
- union {
- in_ctrl_info in_info;
- eg_ctrl_info eg_info;
- struct mpc_parameters params;
- } content;
- struct atm_qos qos;
-} __ATM_API_ALIGN;
-
-struct llc_snap_hdr {
- /* RFC 1483 LLC/SNAP encapsulation for routed IP PDUs */
- __u8 dsap; /* Destination Service Access Point (0xAA) */
- __u8 ssap; /* Source Service Access Point (0xAA) */
- __u8 ui; /* Unnumbered Information (0x03) */
- __u8 org[3]; /* Organizational identification (0x000000) */
- __u8 type[2]; /* Ether type (for IP) (0x0800) */
-};
-
-/* TLVs this MPC recognizes */
-#define TLV_MPOA_DEVICE_TYPE 0x00a03e2a
-
-/* MPOA device types in MPOA Device Type TLV */
-#define NON_MPOA 0
-#define MPS 1
-#define MPC 2
-#define MPS_AND_MPC 3
-
-
-/* MPC parameter defaults */
-
-#define MPC_P1 10 /* Shortcut-Setup Frame Count */
-#define MPC_P2 1 /* Shortcut-Setup Frame Time */
-#define MPC_P3 0 /* Flow-detection Protocols */
-#define MPC_P4 5 /* MPC Initial Retry Time */
-#define MPC_P5 40 /* MPC Retry Time Maximum */
-#define MPC_P6 160 /* Hold Down Time */
-#define HOLDING_TIME_DEFAULT 1200 /* same as MPS-p7 */
-
-/* MPC constants */
-
-#define MPC_C1 2 /* Retry Time Multiplier */
-#define MPC_C2 60 /* Initial Keep-Alive Lifetime */
-
-/* Message types - to MPOA daemon */
-
-#define SND_MPOA_RES_RQST 201
-#define SET_MPS_CTRL_ADDR 202
-#define SND_MPOA_RES_RTRY 203 /* Different type in a retry due to req id */
-#define STOP_KEEP_ALIVE_SM 204
-#define EGRESS_ENTRY_REMOVED 205
-#define SND_EGRESS_PURGE 206
-#define DIE 207 /* tell the daemon to exit() */
-#define DATA_PLANE_PURGE 208 /* Data plane purge because of egress cache hit miss or dead MPS */
-#define OPEN_INGRESS_SVC 209
-
-/* Message types - from MPOA daemon */
-
-#define MPOA_TRIGGER_RCVD 101
-#define MPOA_RES_REPLY_RCVD 102
-#define INGRESS_PURGE_RCVD 103
-#define EGRESS_PURGE_RCVD 104
-#define MPS_DEATH 105
-#define CACHE_IMPOS_RCVD 106
-#define SET_MPC_CTRL_ADDR 107 /* Our MPC's control ATM address */
-#define SET_MPS_MAC_ADDR 108
-#define CLEAN_UP_AND_EXIT 109
-#define SET_MPC_PARAMS 110 /* MPC configuration parameters */
-
-/* Message types - bidirectional */
-
-#define RELOAD 301 /* kill -HUP the daemon for reload */
-
-#endif /* _ATMMPC_H_ */
diff --git a/ANDROID_3.4.5/include/linux/atmppp.h b/ANDROID_3.4.5/include/linux/atmppp.h
deleted file mode 100644
index 300dcce0..00000000
--- a/ANDROID_3.4.5/include/linux/atmppp.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* atmppp.h - RFC2364 PPPoATM */
-
-/* Written 2000 by Mitchell Blank Jr */
-
-#ifndef _LINUX_ATMPPP_H
-#define _LINUX_ATMPPP_H
-
-#include <linux/atm.h>
-
-#define PPPOATM_ENCAPS_AUTODETECT (0)
-#define PPPOATM_ENCAPS_VC (1)
-#define PPPOATM_ENCAPS_LLC (2)
-
-/*
- * This is for the ATM_SETBACKEND call - these are like socket families:
- * the first element of the structure is the backend number and the rest
- * is per-backend specific
- */
-struct atm_backend_ppp {
- atm_backend_t backend_num; /* ATM_BACKEND_PPP */
- int encaps; /* PPPOATM_ENCAPS_* */
-};
-
-#endif /* _LINUX_ATMPPP_H */
diff --git a/ANDROID_3.4.5/include/linux/atmsap.h b/ANDROID_3.4.5/include/linux/atmsap.h
deleted file mode 100644
index 799b1045..00000000
--- a/ANDROID_3.4.5/include/linux/atmsap.h
+++ /dev/null
@@ -1,162 +0,0 @@
-/* atmsap.h - ATM Service Access Point addressing definitions */
-
-/* Written 1995-1999 by Werner Almesberger, EPFL LRC/ICA */
-
-
-#ifndef _LINUX_ATMSAP_H
-#define _LINUX_ATMSAP_H
-
-#include <linux/atmapi.h>
-
-/*
- * BEGIN_xx and END_xx markers are used for automatic generation of
- * documentation. Do not change them.
- */
-
-
-/*
- * Layer 2 protocol identifiers
- */
-
-/* BEGIN_L2 */
-#define ATM_L2_NONE 0 /* L2 not specified */
-#define ATM_L2_ISO1745 0x01 /* Basic mode ISO 1745 */
-#define ATM_L2_Q291 0x02 /* ITU-T Q.291 (Rec. I.441) */
-#define ATM_L2_X25_LL 0x06 /* ITU-T X.25, link layer */
-#define ATM_L2_X25_ML 0x07 /* ITU-T X.25, multilink */
-#define ATM_L2_LAPB 0x08 /* Extended LAPB, half-duplex (Rec. T.71) */
-#define ATM_L2_HDLC_ARM 0x09 /* HDLC ARM (ISO/IEC 4335) */
-#define ATM_L2_HDLC_NRM 0x0a /* HDLC NRM (ISO/IEC 4335) */
-#define ATM_L2_HDLC_ABM 0x0b /* HDLC ABM (ISO/IEC 4335) */
-#define ATM_L2_ISO8802 0x0c /* LAN LLC (ISO/IEC 8802/2) */
-#define ATM_L2_X75 0x0d /* ITU-T X.75, SLP */
-#define ATM_L2_Q922 0x0e /* ITU-T Q.922 */
-#define ATM_L2_USER 0x10 /* user-specified */
-#define ATM_L2_ISO7776 0x11 /* ISO 7776 DTE-DTE */
-/* END_L2 */
-
-
-/*
- * Layer 3 protocol identifiers
- */
-
-/* BEGIN_L3 */
-#define ATM_L3_NONE 0 /* L3 not specified */
-#define ATM_L3_X25 0x06 /* ITU-T X.25, packet layer */
-#define ATM_L3_ISO8208 0x07 /* ISO/IEC 8208 */
-#define ATM_L3_X223 0x08 /* ITU-T X.223 | ISO/IEC 8878 */
-#define ATM_L3_ISO8473 0x09 /* ITU-T X.233 | ISO/IEC 8473 */
-#define ATM_L3_T70 0x0a /* ITU-T T.70 minimum network layer */
-#define ATM_L3_TR9577 0x0b /* ISO/IEC TR 9577 */
-#define ATM_L3_H310 0x0c /* ITU-T Recommendation H.310 */
-#define ATM_L3_H321 0x0d /* ITU-T Recommendation H.321 */
-#define ATM_L3_USER 0x10 /* user-specified */
-/* END_L3 */
-
-
-/*
- * High layer identifiers
- */
-
-/* BEGIN_HL */
-#define ATM_HL_NONE 0 /* HL not specified */
-#define ATM_HL_ISO 0x01 /* ISO */
-#define ATM_HL_USER 0x02 /* user-specific */
-#define ATM_HL_HLP 0x03 /* high layer profile - UNI 3.0 only */
-#define ATM_HL_VENDOR 0x04 /* vendor-specific application identifier */
-/* END_HL */
-
-
-/*
- * ITU-T coded mode of operation
- */
-
-/* BEGIN_IMD */
-#define ATM_IMD_NONE 0 /* mode not specified */
-#define ATM_IMD_NORMAL 1 /* normal mode of operation */
-#define ATM_IMD_EXTENDED 2 /* extended mode of operation */
-/* END_IMD */
-
-/*
- * H.310 code points
- */
-
-#define ATM_TT_NONE 0 /* terminal type not specified */
-#define ATM_TT_RX 1 /* receive only */
-#define ATM_TT_TX 2 /* send only */
-#define ATM_TT_RXTX 3 /* receive and send */
-
-#define ATM_MC_NONE 0 /* no multiplexing */
-#define ATM_MC_TS 1 /* transport stream (TS) */
-#define ATM_MC_TS_FEC 2 /* transport stream with forward error corr. */
-#define ATM_MC_PS 3 /* program stream (PS) */
-#define ATM_MC_PS_FEC 4 /* program stream with forward error corr. */
-#define ATM_MC_H221 5 /* ITU-T Rec. H.221 */
-
-/*
- * SAP structures
- */
-
-#define ATM_MAX_HLI 8 /* maximum high-layer information length */
-
-
-struct atm_blli {
- unsigned char l2_proto; /* layer 2 protocol */
- union {
- struct {
- unsigned char mode; /* mode of operation (ATM_IMD_xxx), 0 if */
- /* absent */
- unsigned char window; /* window size (k), 1-127 (0 to omit) */
- } itu; /* ITU-T encoding */
- unsigned char user; /* user-specified l2 information */
- } l2;
- unsigned char l3_proto; /* layer 3 protocol */
- union {
- struct {
- unsigned char mode; /* mode of operation (ATM_IMD_xxx), 0 if */
- /* absent */
- unsigned char def_size; /* default packet size (log2), 4-12 (0 to */
- /* omit) */
- unsigned char window;/* packet window size, 1-127 (0 to omit) */
- } itu; /* ITU-T encoding */
- unsigned char user; /* user specified l3 information */
- struct { /* if l3_proto = ATM_L3_H310 */
- unsigned char term_type; /* terminal type */
- unsigned char fw_mpx_cap; /* forward multiplexing capability */
- /* only if term_type != ATM_TT_NONE */
- unsigned char bw_mpx_cap; /* backward multiplexing capability */
- /* only if term_type != ATM_TT_NONE */
- } h310;
- struct { /* if l3_proto = ATM_L3_TR9577 */
- unsigned char ipi; /* initial protocol id */
- unsigned char snap[5];/* IEEE 802.1 SNAP identifier */
- /* (only if ipi == NLPID_IEEE802_1_SNAP) */
- } tr9577;
- } l3;
-} __ATM_API_ALIGN;
-
-
-struct atm_bhli {
- unsigned char hl_type; /* high layer information type */
- unsigned char hl_length; /* length (only if hl_type == ATM_HL_USER || */
- /* hl_type == ATM_HL_ISO) */
- unsigned char hl_info[ATM_MAX_HLI];/* high layer information */
-};
-
-
-#define ATM_MAX_BLLI 3 /* maximum number of BLLI elements */
-
-
-struct atm_sap {
- struct atm_bhli bhli; /* local SAP, high-layer information */
- struct atm_blli blli[ATM_MAX_BLLI] __ATM_API_ALIGN;
- /* local SAP, low-layer info */
-};
-
-
-static __inline__ int blli_in_use(struct atm_blli blli)
-{
- return blli.l2_proto || blli.l3_proto;
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/atmsvc.h b/ANDROID_3.4.5/include/linux/atmsvc.h
deleted file mode 100644
index aa71583b..00000000
--- a/ANDROID_3.4.5/include/linux/atmsvc.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* atmsvc.h - ATM signaling kernel-demon interface definitions */
-
-/* Written 1995-2000 by Werner Almesberger, EPFL LRC/ICA */
-
-
-#ifndef _LINUX_ATMSVC_H
-#define _LINUX_ATMSVC_H
-
-#include <linux/atmapi.h>
-#include <linux/atm.h>
-#include <linux/atmioc.h>
-
-
-#define ATMSIGD_CTRL _IO('a',ATMIOC_SPECIAL)
- /* become ATM signaling demon control socket */
-
-enum atmsvc_msg_type { as_catch_null, as_bind, as_connect, as_accept, as_reject,
- as_listen, as_okay, as_error, as_indicate, as_close,
- as_itf_notify, as_modify, as_identify, as_terminate,
- as_addparty, as_dropparty };
-
-struct atmsvc_msg {
- enum atmsvc_msg_type type;
- atm_kptr_t vcc;
- atm_kptr_t listen_vcc; /* indicate */
- int reply; /* for okay and close: */
- /* < 0: error before active */
- /* (sigd has discarded ctx) */
- /* ==0: success */
- /* > 0: error when active (still */
- /* need to close) */
- struct sockaddr_atmpvc pvc; /* indicate, okay (connect) */
- struct sockaddr_atmsvc local; /* local SVC address */
- struct atm_qos qos; /* QOS parameters */
- struct atm_sap sap; /* SAP */
- unsigned int session; /* for p2pm */
- struct sockaddr_atmsvc svc; /* SVC address */
-} __ATM_API_ALIGN;
-
-/*
- * Message contents: see ftp://icaftp.epfl.ch/pub/linux/atm/docs/isp-*.tar.gz
- */
-
-/*
- * Some policy stuff for atmsigd and for net/atm/svc.c. Both have to agree on
- * what PCR is used to request bandwidth from the device driver. net/atm/svc.c
- * tries to do better than that, but only if there's no routing decision (i.e.
- * if signaling only uses one ATM interface).
- */
-
-#define SELECT_TOP_PCR(tp) ((tp).pcr ? (tp).pcr : \
- (tp).max_pcr && (tp).max_pcr != ATM_MAX_PCR ? (tp).max_pcr : \
- (tp).min_pcr ? (tp).min_pcr : ATM_MAX_PCR)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/atomic.h b/ANDROID_3.4.5/include/linux/atomic.h
deleted file mode 100644
index 70cfcb2d..00000000
--- a/ANDROID_3.4.5/include/linux/atomic.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/* Atomic operations usable in machine independent code */
-#ifndef _LINUX_ATOMIC_H
-#define _LINUX_ATOMIC_H
-#include <asm/atomic.h>
-
-/**
- * atomic_add_unless - add unless the number is already a given value
- * @v: pointer of type atomic_t
- * @a: the amount to add to v...
- * @u: ...unless v is equal to u.
- *
- * Atomically adds @a to @v, so long as @v was not already @u.
- * Returns non-zero if @v was not @u, and zero otherwise.
- */
-static inline int atomic_add_unless(atomic_t *v, int a, int u)
-{
- return __atomic_add_unless(v, a, u) != u;
-}
-
-/**
- * atomic_inc_not_zero - increment unless the number is zero
- * @v: pointer of type atomic_t
- *
- * Atomically increments @v by 1, so long as @v is non-zero.
- * Returns non-zero if @v was non-zero, and zero otherwise.
- */
-#ifndef atomic_inc_not_zero
-#define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0)
-#endif
-
-/**
- * atomic_inc_not_zero_hint - increment if not null
- * @v: pointer of type atomic_t
- * @hint: probable value of the atomic before the increment
- *
- * This version of atomic_inc_not_zero() gives a hint of probable
- * value of the atomic. This helps processor to not read the memory
- * before doing the atomic read/modify/write cycle, lowering
- * number of bus transactions on some arches.
- *
- * Returns: 0 if increment was not done, 1 otherwise.
- */
-#ifndef atomic_inc_not_zero_hint
-static inline int atomic_inc_not_zero_hint(atomic_t *v, int hint)
-{
- int val, c = hint;
-
- /* sanity test, should be removed by compiler if hint is a constant */
- if (!hint)
- return atomic_inc_not_zero(v);
-
- do {
- val = atomic_cmpxchg(v, c, c + 1);
- if (val == c)
- return 1;
- c = val;
- } while (c);
-
- return 0;
-}
-#endif
-
-#ifndef atomic_inc_unless_negative
-static inline int atomic_inc_unless_negative(atomic_t *p)
-{
- int v, v1;
- for (v = 0; v >= 0; v = v1) {
- v1 = atomic_cmpxchg(p, v, v + 1);
- if (likely(v1 == v))
- return 1;
- }
- return 0;
-}
-#endif
-
-#ifndef atomic_dec_unless_positive
-static inline int atomic_dec_unless_positive(atomic_t *p)
-{
- int v, v1;
- for (v = 0; v <= 0; v = v1) {
- v1 = atomic_cmpxchg(p, v, v - 1);
- if (likely(v1 == v))
- return 1;
- }
- return 0;
-}
-#endif
-
-#ifndef CONFIG_ARCH_HAS_ATOMIC_OR
-static inline void atomic_or(int i, atomic_t *v)
-{
- int old;
- int new;
-
- do {
- old = atomic_read(v);
- new = old | i;
- } while (atomic_cmpxchg(v, old, new) != old);
-}
-#endif /* #ifndef CONFIG_ARCH_HAS_ATOMIC_OR */
-
-#include <asm-generic/atomic-long.h>
-#ifdef CONFIG_GENERIC_ATOMIC64
-#include <asm-generic/atomic64.h>
-#endif
-#endif /* _LINUX_ATOMIC_H */
diff --git a/ANDROID_3.4.5/include/linux/attribute_container.h b/ANDROID_3.4.5/include/linux/attribute_container.h
deleted file mode 100644
index 896c6892..00000000
--- a/ANDROID_3.4.5/include/linux/attribute_container.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * attribute_container.h - a generic container for all classes
- *
- * Copyright (c) 2005 - James Bottomley <James.Bottomley@steeleye.com>
- *
- * This file is licensed under GPLv2
- */
-
-#ifndef _ATTRIBUTE_CONTAINER_H_
-#define _ATTRIBUTE_CONTAINER_H_
-
-#include <linux/list.h>
-#include <linux/klist.h>
-
-struct device;
-
-struct attribute_container {
- struct list_head node;
- struct klist containers;
- struct class *class;
- const struct attribute_group *grp;
- struct device_attribute **attrs;
- int (*match)(struct attribute_container *, struct device *);
-#define ATTRIBUTE_CONTAINER_NO_CLASSDEVS 0x01
- unsigned long flags;
-};
-
-static inline int
-attribute_container_no_classdevs(struct attribute_container *atc)
-{
- return atc->flags & ATTRIBUTE_CONTAINER_NO_CLASSDEVS;
-}
-
-static inline void
-attribute_container_set_no_classdevs(struct attribute_container *atc)
-{
- atc->flags |= ATTRIBUTE_CONTAINER_NO_CLASSDEVS;
-}
-
-int attribute_container_register(struct attribute_container *cont);
-int __must_check attribute_container_unregister(struct attribute_container *cont);
-void attribute_container_create_device(struct device *dev,
- int (*fn)(struct attribute_container *,
- struct device *,
- struct device *));
-void attribute_container_add_device(struct device *dev,
- int (*fn)(struct attribute_container *,
- struct device *,
- struct device *));
-void attribute_container_remove_device(struct device *dev,
- void (*fn)(struct attribute_container *,
- struct device *,
- struct device *));
-void attribute_container_device_trigger(struct device *dev,
- int (*fn)(struct attribute_container *,
- struct device *,
- struct device *));
-void attribute_container_trigger(struct device *dev,
- int (*fn)(struct attribute_container *,
- struct device *));
-int attribute_container_add_attrs(struct device *classdev);
-int attribute_container_add_class_device(struct device *classdev);
-int attribute_container_add_class_device_adapter(struct attribute_container *cont,
- struct device *dev,
- struct device *classdev);
-void attribute_container_remove_attrs(struct device *classdev);
-void attribute_container_class_device_del(struct device *classdev);
-struct attribute_container *attribute_container_classdev_to_container(struct device *);
-struct device *attribute_container_find_class_device(struct attribute_container *, struct device *);
-struct device_attribute **attribute_container_classdev_to_attrs(const struct device *classdev);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/audit.h b/ANDROID_3.4.5/include/linux/audit.h
deleted file mode 100644
index ed3ef197..00000000
--- a/ANDROID_3.4.5/include/linux/audit.h
+++ /dev/null
@@ -1,723 +0,0 @@
-/* audit.h -- Auditing support
- *
- * Copyright 2003-2004 Red Hat Inc., Durham, North Carolina.
- * 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
- *
- * Written by Rickard E. (Rik) Faith <faith@redhat.com>
- *
- */
-
-#ifndef _LINUX_AUDIT_H_
-#define _LINUX_AUDIT_H_
-
-#include <linux/types.h>
-#include <linux/elf-em.h>
-#include <linux/ptrace.h>
-
-/* The netlink messages for the audit system is divided into blocks:
- * 1000 - 1099 are for commanding the audit system
- * 1100 - 1199 user space trusted application messages
- * 1200 - 1299 messages internal to the audit daemon
- * 1300 - 1399 audit event messages
- * 1400 - 1499 SE Linux use
- * 1500 - 1599 kernel LSPP events
- * 1600 - 1699 kernel crypto events
- * 1700 - 1799 kernel anomaly records
- * 1800 - 1899 kernel integrity events
- * 1900 - 1999 future kernel use
- * 2000 is for otherwise unclassified kernel audit messages (legacy)
- * 2001 - 2099 unused (kernel)
- * 2100 - 2199 user space anomaly records
- * 2200 - 2299 user space actions taken in response to anomalies
- * 2300 - 2399 user space generated LSPP events
- * 2400 - 2499 user space crypto events
- * 2500 - 2999 future user space (maybe integrity labels and related events)
- *
- * Messages from 1000-1199 are bi-directional. 1200-1299 & 2100 - 2999 are
- * exclusively user space. 1300-2099 is kernel --> user space
- * communication.
- */
-#define AUDIT_GET 1000 /* Get status */
-#define AUDIT_SET 1001 /* Set status (enable/disable/auditd) */
-#define AUDIT_LIST 1002 /* List syscall rules -- deprecated */
-#define AUDIT_ADD 1003 /* Add syscall rule -- deprecated */
-#define AUDIT_DEL 1004 /* Delete syscall rule -- deprecated */
-#define AUDIT_USER 1005 /* Message from userspace -- deprecated */
-#define AUDIT_LOGIN 1006 /* Define the login id and information */
-#define AUDIT_WATCH_INS 1007 /* Insert file/dir watch entry */
-#define AUDIT_WATCH_REM 1008 /* Remove file/dir watch entry */
-#define AUDIT_WATCH_LIST 1009 /* List all file/dir watches */
-#define AUDIT_SIGNAL_INFO 1010 /* Get info about sender of signal to auditd */
-#define AUDIT_ADD_RULE 1011 /* Add syscall filtering rule */
-#define AUDIT_DEL_RULE 1012 /* Delete syscall filtering rule */
-#define AUDIT_LIST_RULES 1013 /* List syscall filtering rules */
-#define AUDIT_TRIM 1014 /* Trim junk from watched tree */
-#define AUDIT_MAKE_EQUIV 1015 /* Append to watched tree */
-#define AUDIT_TTY_GET 1016 /* Get TTY auditing status */
-#define AUDIT_TTY_SET 1017 /* Set TTY auditing status */
-
-#define AUDIT_FIRST_USER_MSG 1100 /* Userspace messages mostly uninteresting to kernel */
-#define AUDIT_USER_AVC 1107 /* We filter this differently */
-#define AUDIT_USER_TTY 1124 /* Non-ICANON TTY input meaning */
-#define AUDIT_LAST_USER_MSG 1199
-#define AUDIT_FIRST_USER_MSG2 2100 /* More user space messages */
-#define AUDIT_LAST_USER_MSG2 2999
-
-#define AUDIT_DAEMON_START 1200 /* Daemon startup record */
-#define AUDIT_DAEMON_END 1201 /* Daemon normal stop record */
-#define AUDIT_DAEMON_ABORT 1202 /* Daemon error stop record */
-#define AUDIT_DAEMON_CONFIG 1203 /* Daemon config change */
-
-#define AUDIT_SYSCALL 1300 /* Syscall event */
-/* #define AUDIT_FS_WATCH 1301 * Deprecated */
-#define AUDIT_PATH 1302 /* Filename path information */
-#define AUDIT_IPC 1303 /* IPC record */
-#define AUDIT_SOCKETCALL 1304 /* sys_socketcall arguments */
-#define AUDIT_CONFIG_CHANGE 1305 /* Audit system configuration change */
-#define AUDIT_SOCKADDR 1306 /* sockaddr copied as syscall arg */
-#define AUDIT_CWD 1307 /* Current working directory */
-#define AUDIT_EXECVE 1309 /* execve arguments */
-#define AUDIT_IPC_SET_PERM 1311 /* IPC new permissions record type */
-#define AUDIT_MQ_OPEN 1312 /* POSIX MQ open record type */
-#define AUDIT_MQ_SENDRECV 1313 /* POSIX MQ send/receive record type */
-#define AUDIT_MQ_NOTIFY 1314 /* POSIX MQ notify record type */
-#define AUDIT_MQ_GETSETATTR 1315 /* POSIX MQ get/set attribute record type */
-#define AUDIT_KERNEL_OTHER 1316 /* For use by 3rd party modules */
-#define AUDIT_FD_PAIR 1317 /* audit record for pipe/socketpair */
-#define AUDIT_OBJ_PID 1318 /* ptrace target */
-#define AUDIT_TTY 1319 /* Input on an administrative TTY */
-#define AUDIT_EOE 1320 /* End of multi-record event */
-#define AUDIT_BPRM_FCAPS 1321 /* Information about fcaps increasing perms */
-#define AUDIT_CAPSET 1322 /* Record showing argument to sys_capset */
-#define AUDIT_MMAP 1323 /* Record showing descriptor and flags in mmap */
-#define AUDIT_NETFILTER_PKT 1324 /* Packets traversing netfilter chains */
-#define AUDIT_NETFILTER_CFG 1325 /* Netfilter chain modifications */
-
-#define AUDIT_AVC 1400 /* SE Linux avc denial or grant */
-#define AUDIT_SELINUX_ERR 1401 /* Internal SE Linux Errors */
-#define AUDIT_AVC_PATH 1402 /* dentry, vfsmount pair from avc */
-#define AUDIT_MAC_POLICY_LOAD 1403 /* Policy file load */
-#define AUDIT_MAC_STATUS 1404 /* Changed enforcing,permissive,off */
-#define AUDIT_MAC_CONFIG_CHANGE 1405 /* Changes to booleans */
-#define AUDIT_MAC_UNLBL_ALLOW 1406 /* NetLabel: allow unlabeled traffic */
-#define AUDIT_MAC_CIPSOV4_ADD 1407 /* NetLabel: add CIPSOv4 DOI entry */
-#define AUDIT_MAC_CIPSOV4_DEL 1408 /* NetLabel: del CIPSOv4 DOI entry */
-#define AUDIT_MAC_MAP_ADD 1409 /* NetLabel: add LSM domain mapping */
-#define AUDIT_MAC_MAP_DEL 1410 /* NetLabel: del LSM domain mapping */
-#define AUDIT_MAC_IPSEC_ADDSA 1411 /* Not used */
-#define AUDIT_MAC_IPSEC_DELSA 1412 /* Not used */
-#define AUDIT_MAC_IPSEC_ADDSPD 1413 /* Not used */
-#define AUDIT_MAC_IPSEC_DELSPD 1414 /* Not used */
-#define AUDIT_MAC_IPSEC_EVENT 1415 /* Audit an IPSec event */
-#define AUDIT_MAC_UNLBL_STCADD 1416 /* NetLabel: add a static label */
-#define AUDIT_MAC_UNLBL_STCDEL 1417 /* NetLabel: del a static label */
-
-#define AUDIT_FIRST_KERN_ANOM_MSG 1700
-#define AUDIT_LAST_KERN_ANOM_MSG 1799
-#define AUDIT_ANOM_PROMISCUOUS 1700 /* Device changed promiscuous mode */
-#define AUDIT_ANOM_ABEND 1701 /* Process ended abnormally */
-#define AUDIT_INTEGRITY_DATA 1800 /* Data integrity verification */
-#define AUDIT_INTEGRITY_METADATA 1801 /* Metadata integrity verification */
-#define AUDIT_INTEGRITY_STATUS 1802 /* Integrity enable status */
-#define AUDIT_INTEGRITY_HASH 1803 /* Integrity HASH type */
-#define AUDIT_INTEGRITY_PCR 1804 /* PCR invalidation msgs */
-#define AUDIT_INTEGRITY_RULE 1805 /* policy rule */
-
-#define AUDIT_KERNEL 2000 /* Asynchronous audit record. NOT A REQUEST. */
-
-/* Rule flags */
-#define AUDIT_FILTER_USER 0x00 /* Apply rule to user-generated messages */
-#define AUDIT_FILTER_TASK 0x01 /* Apply rule at task creation (not syscall) */
-#define AUDIT_FILTER_ENTRY 0x02 /* Apply rule at syscall entry */
-#define AUDIT_FILTER_WATCH 0x03 /* Apply rule to file system watches */
-#define AUDIT_FILTER_EXIT 0x04 /* Apply rule at syscall exit */
-#define AUDIT_FILTER_TYPE 0x05 /* Apply rule at audit_log_start */
-
-#define AUDIT_NR_FILTERS 6
-
-#define AUDIT_FILTER_PREPEND 0x10 /* Prepend to front of list */
-
-/* Rule actions */
-#define AUDIT_NEVER 0 /* Do not build context if rule matches */
-#define AUDIT_POSSIBLE 1 /* Build context if rule matches */
-#define AUDIT_ALWAYS 2 /* Generate audit record if rule matches */
-
-/* Rule structure sizes -- if these change, different AUDIT_ADD and
- * AUDIT_LIST commands must be implemented. */
-#define AUDIT_MAX_FIELDS 64
-#define AUDIT_MAX_KEY_LEN 256
-#define AUDIT_BITMASK_SIZE 64
-#define AUDIT_WORD(nr) ((__u32)((nr)/32))
-#define AUDIT_BIT(nr) (1 << ((nr) - AUDIT_WORD(nr)*32))
-
-#define AUDIT_SYSCALL_CLASSES 16
-#define AUDIT_CLASS_DIR_WRITE 0
-#define AUDIT_CLASS_DIR_WRITE_32 1
-#define AUDIT_CLASS_CHATTR 2
-#define AUDIT_CLASS_CHATTR_32 3
-#define AUDIT_CLASS_READ 4
-#define AUDIT_CLASS_READ_32 5
-#define AUDIT_CLASS_WRITE 6
-#define AUDIT_CLASS_WRITE_32 7
-#define AUDIT_CLASS_SIGNAL 8
-#define AUDIT_CLASS_SIGNAL_32 9
-
-/* This bitmask is used to validate user input. It represents all bits that
- * are currently used in an audit field constant understood by the kernel.
- * If you are adding a new #define AUDIT_<whatever>, please ensure that
- * AUDIT_UNUSED_BITS is updated if need be. */
-#define AUDIT_UNUSED_BITS 0x07FFFC00
-
-/* AUDIT_FIELD_COMPARE rule list */
-#define AUDIT_COMPARE_UID_TO_OBJ_UID 1
-#define AUDIT_COMPARE_GID_TO_OBJ_GID 2
-#define AUDIT_COMPARE_EUID_TO_OBJ_UID 3
-#define AUDIT_COMPARE_EGID_TO_OBJ_GID 4
-#define AUDIT_COMPARE_AUID_TO_OBJ_UID 5
-#define AUDIT_COMPARE_SUID_TO_OBJ_UID 6
-#define AUDIT_COMPARE_SGID_TO_OBJ_GID 7
-#define AUDIT_COMPARE_FSUID_TO_OBJ_UID 8
-#define AUDIT_COMPARE_FSGID_TO_OBJ_GID 9
-
-#define AUDIT_COMPARE_UID_TO_AUID 10
-#define AUDIT_COMPARE_UID_TO_EUID 11
-#define AUDIT_COMPARE_UID_TO_FSUID 12
-#define AUDIT_COMPARE_UID_TO_SUID 13
-
-#define AUDIT_COMPARE_AUID_TO_FSUID 14
-#define AUDIT_COMPARE_AUID_TO_SUID 15
-#define AUDIT_COMPARE_AUID_TO_EUID 16
-
-#define AUDIT_COMPARE_EUID_TO_SUID 17
-#define AUDIT_COMPARE_EUID_TO_FSUID 18
-
-#define AUDIT_COMPARE_SUID_TO_FSUID 19
-
-#define AUDIT_COMPARE_GID_TO_EGID 20
-#define AUDIT_COMPARE_GID_TO_FSGID 21
-#define AUDIT_COMPARE_GID_TO_SGID 22
-
-#define AUDIT_COMPARE_EGID_TO_FSGID 23
-#define AUDIT_COMPARE_EGID_TO_SGID 24
-#define AUDIT_COMPARE_SGID_TO_FSGID 25
-
-#define AUDIT_MAX_FIELD_COMPARE AUDIT_COMPARE_SGID_TO_FSGID
-
-/* Rule fields */
- /* These are useful when checking the
- * task structure at task creation time
- * (AUDIT_PER_TASK). */
-#define AUDIT_PID 0
-#define AUDIT_UID 1
-#define AUDIT_EUID 2
-#define AUDIT_SUID 3
-#define AUDIT_FSUID 4
-#define AUDIT_GID 5
-#define AUDIT_EGID 6
-#define AUDIT_SGID 7
-#define AUDIT_FSGID 8
-#define AUDIT_LOGINUID 9
-#define AUDIT_PERS 10
-#define AUDIT_ARCH 11
-#define AUDIT_MSGTYPE 12
-#define AUDIT_SUBJ_USER 13 /* security label user */
-#define AUDIT_SUBJ_ROLE 14 /* security label role */
-#define AUDIT_SUBJ_TYPE 15 /* security label type */
-#define AUDIT_SUBJ_SEN 16 /* security label sensitivity label */
-#define AUDIT_SUBJ_CLR 17 /* security label clearance label */
-#define AUDIT_PPID 18
-#define AUDIT_OBJ_USER 19
-#define AUDIT_OBJ_ROLE 20
-#define AUDIT_OBJ_TYPE 21
-#define AUDIT_OBJ_LEV_LOW 22
-#define AUDIT_OBJ_LEV_HIGH 23
-
- /* These are ONLY useful when checking
- * at syscall exit time (AUDIT_AT_EXIT). */
-#define AUDIT_DEVMAJOR 100
-#define AUDIT_DEVMINOR 101
-#define AUDIT_INODE 102
-#define AUDIT_EXIT 103
-#define AUDIT_SUCCESS 104 /* exit >= 0; value ignored */
-#define AUDIT_WATCH 105
-#define AUDIT_PERM 106
-#define AUDIT_DIR 107
-#define AUDIT_FILETYPE 108
-#define AUDIT_OBJ_UID 109
-#define AUDIT_OBJ_GID 110
-#define AUDIT_FIELD_COMPARE 111
-
-#define AUDIT_ARG0 200
-#define AUDIT_ARG1 (AUDIT_ARG0+1)
-#define AUDIT_ARG2 (AUDIT_ARG0+2)
-#define AUDIT_ARG3 (AUDIT_ARG0+3)
-
-#define AUDIT_FILTERKEY 210
-
-#define AUDIT_NEGATE 0x80000000
-
-/* These are the supported operators.
- * 4 2 1 8
- * = > < ?
- * ----------
- * 0 0 0 0 00 nonsense
- * 0 0 0 1 08 & bit mask
- * 0 0 1 0 10 <
- * 0 1 0 0 20 >
- * 0 1 1 0 30 !=
- * 1 0 0 0 40 =
- * 1 0 0 1 48 &= bit test
- * 1 0 1 0 50 <=
- * 1 1 0 0 60 >=
- * 1 1 1 1 78 all operators
- */
-#define AUDIT_BIT_MASK 0x08000000
-#define AUDIT_LESS_THAN 0x10000000
-#define AUDIT_GREATER_THAN 0x20000000
-#define AUDIT_NOT_EQUAL 0x30000000
-#define AUDIT_EQUAL 0x40000000
-#define AUDIT_BIT_TEST (AUDIT_BIT_MASK|AUDIT_EQUAL)
-#define AUDIT_LESS_THAN_OR_EQUAL (AUDIT_LESS_THAN|AUDIT_EQUAL)
-#define AUDIT_GREATER_THAN_OR_EQUAL (AUDIT_GREATER_THAN|AUDIT_EQUAL)
-#define AUDIT_OPERATORS (AUDIT_EQUAL|AUDIT_NOT_EQUAL|AUDIT_BIT_MASK)
-
-enum {
- Audit_equal,
- Audit_not_equal,
- Audit_bitmask,
- Audit_bittest,
- Audit_lt,
- Audit_gt,
- Audit_le,
- Audit_ge,
- Audit_bad
-};
-
-/* Status symbols */
- /* Mask values */
-#define AUDIT_STATUS_ENABLED 0x0001
-#define AUDIT_STATUS_FAILURE 0x0002
-#define AUDIT_STATUS_PID 0x0004
-#define AUDIT_STATUS_RATE_LIMIT 0x0008
-#define AUDIT_STATUS_BACKLOG_LIMIT 0x0010
- /* Failure-to-log actions */
-#define AUDIT_FAIL_SILENT 0
-#define AUDIT_FAIL_PRINTK 1
-#define AUDIT_FAIL_PANIC 2
-
-/* distinguish syscall tables */
-#define __AUDIT_ARCH_64BIT 0x80000000
-#define __AUDIT_ARCH_LE 0x40000000
-#define AUDIT_ARCH_ALPHA (EM_ALPHA|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)
-#define AUDIT_ARCH_ARM (EM_ARM|__AUDIT_ARCH_LE)
-#define AUDIT_ARCH_ARMEB (EM_ARM)
-#define AUDIT_ARCH_CRIS (EM_CRIS|__AUDIT_ARCH_LE)
-#define AUDIT_ARCH_FRV (EM_FRV)
-#define AUDIT_ARCH_H8300 (EM_H8_300)
-#define AUDIT_ARCH_I386 (EM_386|__AUDIT_ARCH_LE)
-#define AUDIT_ARCH_IA64 (EM_IA_64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)
-#define AUDIT_ARCH_M32R (EM_M32R)
-#define AUDIT_ARCH_M68K (EM_68K)
-#define AUDIT_ARCH_MIPS (EM_MIPS)
-#define AUDIT_ARCH_MIPSEL (EM_MIPS|__AUDIT_ARCH_LE)
-#define AUDIT_ARCH_MIPS64 (EM_MIPS|__AUDIT_ARCH_64BIT)
-#define AUDIT_ARCH_MIPSEL64 (EM_MIPS|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)
-#define AUDIT_ARCH_PARISC (EM_PARISC)
-#define AUDIT_ARCH_PARISC64 (EM_PARISC|__AUDIT_ARCH_64BIT)
-#define AUDIT_ARCH_PPC (EM_PPC)
-#define AUDIT_ARCH_PPC64 (EM_PPC64|__AUDIT_ARCH_64BIT)
-#define AUDIT_ARCH_S390 (EM_S390)
-#define AUDIT_ARCH_S390X (EM_S390|__AUDIT_ARCH_64BIT)
-#define AUDIT_ARCH_SH (EM_SH)
-#define AUDIT_ARCH_SHEL (EM_SH|__AUDIT_ARCH_LE)
-#define AUDIT_ARCH_SH64 (EM_SH|__AUDIT_ARCH_64BIT)
-#define AUDIT_ARCH_SHEL64 (EM_SH|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)
-#define AUDIT_ARCH_SPARC (EM_SPARC)
-#define AUDIT_ARCH_SPARC64 (EM_SPARCV9|__AUDIT_ARCH_64BIT)
-#define AUDIT_ARCH_X86_64 (EM_X86_64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)
-
-#define AUDIT_PERM_EXEC 1
-#define AUDIT_PERM_WRITE 2
-#define AUDIT_PERM_READ 4
-#define AUDIT_PERM_ATTR 8
-
-struct audit_status {
- __u32 mask; /* Bit mask for valid entries */
- __u32 enabled; /* 1 = enabled, 0 = disabled */
- __u32 failure; /* Failure-to-log action */
- __u32 pid; /* pid of auditd process */
- __u32 rate_limit; /* messages rate limit (per second) */
- __u32 backlog_limit; /* waiting messages limit */
- __u32 lost; /* messages lost */
- __u32 backlog; /* messages waiting in queue */
-};
-
-struct audit_tty_status {
- __u32 enabled; /* 1 = enabled, 0 = disabled */
-};
-
-/* audit_rule_data supports filter rules with both integer and string
- * fields. It corresponds with AUDIT_ADD_RULE, AUDIT_DEL_RULE and
- * AUDIT_LIST_RULES requests.
- */
-struct audit_rule_data {
- __u32 flags; /* AUDIT_PER_{TASK,CALL}, AUDIT_PREPEND */
- __u32 action; /* AUDIT_NEVER, AUDIT_POSSIBLE, AUDIT_ALWAYS */
- __u32 field_count;
- __u32 mask[AUDIT_BITMASK_SIZE]; /* syscall(s) affected */
- __u32 fields[AUDIT_MAX_FIELDS];
- __u32 values[AUDIT_MAX_FIELDS];
- __u32 fieldflags[AUDIT_MAX_FIELDS];
- __u32 buflen; /* total length of string fields */
- char buf[0]; /* string fields buffer */
-};
-
-/* audit_rule is supported to maintain backward compatibility with
- * userspace. It supports integer fields only and corresponds to
- * AUDIT_ADD, AUDIT_DEL and AUDIT_LIST requests.
- */
-struct audit_rule { /* for AUDIT_LIST, AUDIT_ADD, and AUDIT_DEL */
- __u32 flags; /* AUDIT_PER_{TASK,CALL}, AUDIT_PREPEND */
- __u32 action; /* AUDIT_NEVER, AUDIT_POSSIBLE, AUDIT_ALWAYS */
- __u32 field_count;
- __u32 mask[AUDIT_BITMASK_SIZE];
- __u32 fields[AUDIT_MAX_FIELDS];
- __u32 values[AUDIT_MAX_FIELDS];
-};
-
-#ifdef __KERNEL__
-#include <linux/sched.h>
-
-struct audit_sig_info {
- uid_t uid;
- pid_t pid;
- char ctx[0];
-};
-
-struct audit_buffer;
-struct audit_context;
-struct inode;
-struct netlink_skb_parms;
-struct path;
-struct linux_binprm;
-struct mq_attr;
-struct mqstat;
-struct audit_watch;
-struct audit_tree;
-
-struct audit_krule {
- int vers_ops;
- u32 flags;
- u32 listnr;
- u32 action;
- u32 mask[AUDIT_BITMASK_SIZE];
- u32 buflen; /* for data alloc on list rules */
- u32 field_count;
- char *filterkey; /* ties events to rules */
- struct audit_field *fields;
- struct audit_field *arch_f; /* quick access to arch field */
- struct audit_field *inode_f; /* quick access to an inode field */
- struct audit_watch *watch; /* associated watch */
- struct audit_tree *tree; /* associated watched tree */
- struct list_head rlist; /* entry in audit_{watch,tree}.rules list */
- struct list_head list; /* for AUDIT_LIST* purposes only */
- u64 prio;
-};
-
-struct audit_field {
- u32 type;
- u32 val;
- u32 op;
- char *lsm_str;
- void *lsm_rule;
-};
-
-extern int __init audit_register_class(int class, unsigned *list);
-extern int audit_classify_syscall(int abi, unsigned syscall);
-extern int audit_classify_arch(int arch);
-#ifdef CONFIG_AUDITSYSCALL
-/* These are defined in auditsc.c */
- /* Public API */
-extern int audit_alloc(struct task_struct *task);
-extern void __audit_free(struct task_struct *task);
-extern void __audit_syscall_entry(int arch,
- int major, unsigned long a0, unsigned long a1,
- unsigned long a2, unsigned long a3);
-extern void __audit_syscall_exit(int ret_success, long ret_value);
-extern void __audit_getname(const char *name);
-extern void audit_putname(const char *name);
-extern void __audit_inode(const char *name, const struct dentry *dentry);
-extern void __audit_inode_child(const struct dentry *dentry,
- const struct inode *parent);
-extern void __audit_seccomp(unsigned long syscall);
-extern void __audit_ptrace(struct task_struct *t);
-
-static inline int audit_dummy_context(void)
-{
- void *p = current->audit_context;
- return !p || *(int *)p;
-}
-static inline void audit_free(struct task_struct *task)
-{
- if (unlikely(task->audit_context))
- __audit_free(task);
-}
-static inline void audit_syscall_entry(int arch, int major, unsigned long a0,
- unsigned long a1, unsigned long a2,
- unsigned long a3)
-{
- if (unlikely(!audit_dummy_context()))
- __audit_syscall_entry(arch, major, a0, a1, a2, a3);
-}
-static inline void audit_syscall_exit(void *pt_regs)
-{
- if (unlikely(current->audit_context)) {
- int success = is_syscall_success(pt_regs);
- int return_code = regs_return_value(pt_regs);
-
- __audit_syscall_exit(success, return_code);
- }
-}
-static inline void audit_getname(const char *name)
-{
- if (unlikely(!audit_dummy_context()))
- __audit_getname(name);
-}
-static inline void audit_inode(const char *name, const struct dentry *dentry) {
- if (unlikely(!audit_dummy_context()))
- __audit_inode(name, dentry);
-}
-static inline void audit_inode_child(const struct dentry *dentry,
- const struct inode *parent) {
- if (unlikely(!audit_dummy_context()))
- __audit_inode_child(dentry, parent);
-}
-void audit_core_dumps(long signr);
-
-static inline void audit_seccomp(unsigned long syscall)
-{
- if (unlikely(!audit_dummy_context()))
- __audit_seccomp(syscall);
-}
-
-static inline void audit_ptrace(struct task_struct *t)
-{
- if (unlikely(!audit_dummy_context()))
- __audit_ptrace(t);
-}
-
- /* Private API (for audit.c only) */
-extern unsigned int audit_serial(void);
-extern int auditsc_get_stamp(struct audit_context *ctx,
- struct timespec *t, unsigned int *serial);
-extern int audit_set_loginuid(uid_t loginuid);
-#define audit_get_loginuid(t) ((t)->loginuid)
-#define audit_get_sessionid(t) ((t)->sessionid)
-extern void audit_log_task_context(struct audit_buffer *ab);
-extern void __audit_ipc_obj(struct kern_ipc_perm *ipcp);
-extern void __audit_ipc_set_perm(unsigned long qbytes, uid_t uid, gid_t gid, umode_t mode);
-extern int __audit_bprm(struct linux_binprm *bprm);
-extern void __audit_socketcall(int nargs, unsigned long *args);
-extern int __audit_sockaddr(int len, void *addr);
-extern void __audit_fd_pair(int fd1, int fd2);
-extern void __audit_mq_open(int oflag, umode_t mode, struct mq_attr *attr);
-extern void __audit_mq_sendrecv(mqd_t mqdes, size_t msg_len, unsigned int msg_prio, const struct timespec *abs_timeout);
-extern void __audit_mq_notify(mqd_t mqdes, const struct sigevent *notification);
-extern void __audit_mq_getsetattr(mqd_t mqdes, struct mq_attr *mqstat);
-extern int __audit_log_bprm_fcaps(struct linux_binprm *bprm,
- const struct cred *new,
- const struct cred *old);
-extern void __audit_log_capset(pid_t pid, const struct cred *new, const struct cred *old);
-extern void __audit_mmap_fd(int fd, int flags);
-
-static inline void audit_ipc_obj(struct kern_ipc_perm *ipcp)
-{
- if (unlikely(!audit_dummy_context()))
- __audit_ipc_obj(ipcp);
-}
-static inline void audit_fd_pair(int fd1, int fd2)
-{
- if (unlikely(!audit_dummy_context()))
- __audit_fd_pair(fd1, fd2);
-}
-static inline void audit_ipc_set_perm(unsigned long qbytes, uid_t uid, gid_t gid, umode_t mode)
-{
- if (unlikely(!audit_dummy_context()))
- __audit_ipc_set_perm(qbytes, uid, gid, mode);
-}
-static inline int audit_bprm(struct linux_binprm *bprm)
-{
- if (unlikely(!audit_dummy_context()))
- return __audit_bprm(bprm);
- return 0;
-}
-static inline void audit_socketcall(int nargs, unsigned long *args)
-{
- if (unlikely(!audit_dummy_context()))
- __audit_socketcall(nargs, args);
-}
-static inline int audit_sockaddr(int len, void *addr)
-{
- if (unlikely(!audit_dummy_context()))
- return __audit_sockaddr(len, addr);
- return 0;
-}
-static inline void audit_mq_open(int oflag, umode_t mode, struct mq_attr *attr)
-{
- if (unlikely(!audit_dummy_context()))
- __audit_mq_open(oflag, mode, attr);
-}
-static inline void audit_mq_sendrecv(mqd_t mqdes, size_t msg_len, unsigned int msg_prio, const struct timespec *abs_timeout)
-{
- if (unlikely(!audit_dummy_context()))
- __audit_mq_sendrecv(mqdes, msg_len, msg_prio, abs_timeout);
-}
-static inline void audit_mq_notify(mqd_t mqdes, const struct sigevent *notification)
-{
- if (unlikely(!audit_dummy_context()))
- __audit_mq_notify(mqdes, notification);
-}
-static inline void audit_mq_getsetattr(mqd_t mqdes, struct mq_attr *mqstat)
-{
- if (unlikely(!audit_dummy_context()))
- __audit_mq_getsetattr(mqdes, mqstat);
-}
-
-static inline int audit_log_bprm_fcaps(struct linux_binprm *bprm,
- const struct cred *new,
- const struct cred *old)
-{
- if (unlikely(!audit_dummy_context()))
- return __audit_log_bprm_fcaps(bprm, new, old);
- return 0;
-}
-
-static inline void audit_log_capset(pid_t pid, const struct cred *new,
- const struct cred *old)
-{
- if (unlikely(!audit_dummy_context()))
- __audit_log_capset(pid, new, old);
-}
-
-static inline void audit_mmap_fd(int fd, int flags)
-{
- if (unlikely(!audit_dummy_context()))
- __audit_mmap_fd(fd, flags);
-}
-
-extern int audit_n_rules;
-extern int audit_signals;
-#else /* CONFIG_AUDITSYSCALL */
-#define audit_alloc(t) ({ 0; })
-#define audit_free(t) do { ; } while (0)
-#define audit_syscall_entry(ta,a,b,c,d,e) do { ; } while (0)
-#define audit_syscall_exit(r) do { ; } while (0)
-#define audit_dummy_context() 1
-#define audit_getname(n) do { ; } while (0)
-#define audit_putname(n) do { ; } while (0)
-#define __audit_inode(n,d) do { ; } while (0)
-#define __audit_inode_child(i,p) do { ; } while (0)
-#define audit_inode(n,d) do { (void)(d); } while (0)
-#define audit_inode_child(i,p) do { ; } while (0)
-#define audit_core_dumps(i) do { ; } while (0)
-#define audit_seccomp(i) do { ; } while (0)
-#define auditsc_get_stamp(c,t,s) (0)
-#define audit_get_loginuid(t) (-1)
-#define audit_get_sessionid(t) (-1)
-#define audit_log_task_context(b) do { ; } while (0)
-#define audit_ipc_obj(i) ((void)0)
-#define audit_ipc_set_perm(q,u,g,m) ((void)0)
-#define audit_bprm(p) ({ 0; })
-#define audit_socketcall(n,a) ((void)0)
-#define audit_fd_pair(n,a) ((void)0)
-#define audit_sockaddr(len, addr) ({ 0; })
-#define audit_mq_open(o,m,a) ((void)0)
-#define audit_mq_sendrecv(d,l,p,t) ((void)0)
-#define audit_mq_notify(d,n) ((void)0)
-#define audit_mq_getsetattr(d,s) ((void)0)
-#define audit_log_bprm_fcaps(b, ncr, ocr) ({ 0; })
-#define audit_log_capset(pid, ncr, ocr) ((void)0)
-#define audit_mmap_fd(fd, flags) ((void)0)
-#define audit_ptrace(t) ((void)0)
-#define audit_n_rules 0
-#define audit_signals 0
-#endif /* CONFIG_AUDITSYSCALL */
-
-#ifdef CONFIG_AUDIT
-/* These are defined in audit.c */
- /* Public API */
-extern __printf(4, 5)
-void audit_log(struct audit_context *ctx, gfp_t gfp_mask, int type,
- const char *fmt, ...);
-
-extern struct audit_buffer *audit_log_start(struct audit_context *ctx, gfp_t gfp_mask, int type);
-extern __printf(2, 3)
-void audit_log_format(struct audit_buffer *ab, const char *fmt, ...);
-extern void audit_log_end(struct audit_buffer *ab);
-extern int audit_string_contains_control(const char *string,
- size_t len);
-extern void audit_log_n_hex(struct audit_buffer *ab,
- const unsigned char *buf,
- size_t len);
-extern void audit_log_n_string(struct audit_buffer *ab,
- const char *buf,
- size_t n);
-#define audit_log_string(a,b) audit_log_n_string(a, b, strlen(b));
-extern void audit_log_n_untrustedstring(struct audit_buffer *ab,
- const char *string,
- size_t n);
-extern void audit_log_untrustedstring(struct audit_buffer *ab,
- const char *string);
-extern void audit_log_d_path(struct audit_buffer *ab,
- const char *prefix,
- const struct path *path);
-extern void audit_log_key(struct audit_buffer *ab,
- char *key);
-extern void audit_log_lost(const char *message);
-#ifdef CONFIG_SECURITY
-extern void audit_log_secctx(struct audit_buffer *ab, u32 secid);
-#else
-#define audit_log_secctx(b,s) do { ; } while (0)
-#endif
-
-extern int audit_update_lsm_rules(void);
-
- /* Private API (for audit.c only) */
-extern int audit_filter_user(struct netlink_skb_parms *cb);
-extern int audit_filter_type(int type);
-extern int audit_receive_filter(int type, int pid, int uid, int seq,
- void *data, size_t datasz, uid_t loginuid,
- u32 sessionid, u32 sid);
-extern int audit_enabled;
-#else
-#define audit_log(c,g,t,f,...) do { ; } while (0)
-#define audit_log_start(c,g,t) ({ NULL; })
-#define audit_log_vformat(b,f,a) do { ; } while (0)
-#define audit_log_format(b,f,...) do { ; } while (0)
-#define audit_log_end(b) do { ; } while (0)
-#define audit_log_n_hex(a,b,l) do { ; } while (0)
-#define audit_log_n_string(a,c,l) do { ; } while (0)
-#define audit_log_string(a,c) do { ; } while (0)
-#define audit_log_n_untrustedstring(a,n,s) do { ; } while (0)
-#define audit_log_untrustedstring(a,s) do { ; } while (0)
-#define audit_log_d_path(b, p, d) do { ; } while (0)
-#define audit_log_key(b, k) do { ; } while (0)
-#define audit_log_secctx(b,s) do { ; } while (0)
-#define audit_enabled 0
-#endif
-#endif
-#endif
diff --git a/ANDROID_3.4.5/include/linux/auto_dev-ioctl.h b/ANDROID_3.4.5/include/linux/auto_dev-ioctl.h
deleted file mode 100644
index 850f39b3..00000000
--- a/ANDROID_3.4.5/include/linux/auto_dev-ioctl.h
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
- * Copyright 2008 Red Hat, Inc. All rights reserved.
- * Copyright 2008 Ian Kent <raven@themaw.net>
- *
- * This file is part of the Linux kernel and is made available under
- * the terms of the GNU General Public License, version 2, or at your
- * option, any later version, incorporated herein by reference.
- */
-
-#ifndef _LINUX_AUTO_DEV_IOCTL_H
-#define _LINUX_AUTO_DEV_IOCTL_H
-
-#include <linux/auto_fs.h>
-
-#ifdef __KERNEL__
-#include <linux/string.h>
-#else
-#include <string.h>
-#endif /* __KERNEL__ */
-
-#define AUTOFS_DEVICE_NAME "autofs"
-
-#define AUTOFS_DEV_IOCTL_VERSION_MAJOR 1
-#define AUTOFS_DEV_IOCTL_VERSION_MINOR 0
-
-#define AUTOFS_DEVID_LEN 16
-
-#define AUTOFS_DEV_IOCTL_SIZE sizeof(struct autofs_dev_ioctl)
-
-/*
- * An ioctl interface for autofs mount point control.
- */
-
-struct args_protover {
- __u32 version;
-};
-
-struct args_protosubver {
- __u32 sub_version;
-};
-
-struct args_openmount {
- __u32 devid;
-};
-
-struct args_ready {
- __u32 token;
-};
-
-struct args_fail {
- __u32 token;
- __s32 status;
-};
-
-struct args_setpipefd {
- __s32 pipefd;
-};
-
-struct args_timeout {
- __u64 timeout;
-};
-
-struct args_requester {
- __u32 uid;
- __u32 gid;
-};
-
-struct args_expire {
- __u32 how;
-};
-
-struct args_askumount {
- __u32 may_umount;
-};
-
-struct args_ismountpoint {
- union {
- struct args_in {
- __u32 type;
- } in;
- struct args_out {
- __u32 devid;
- __u32 magic;
- } out;
- };
-};
-
-/*
- * All the ioctls use this structure.
- * When sending a path size must account for the total length
- * of the chunk of memory otherwise is is the size of the
- * structure.
- */
-
-struct autofs_dev_ioctl {
- __u32 ver_major;
- __u32 ver_minor;
- __u32 size; /* total size of data passed in
- * including this struct */
- __s32 ioctlfd; /* automount command fd */
-
- /* Command parameters */
-
- union {
- struct args_protover protover;
- struct args_protosubver protosubver;
- struct args_openmount openmount;
- struct args_ready ready;
- struct args_fail fail;
- struct args_setpipefd setpipefd;
- struct args_timeout timeout;
- struct args_requester requester;
- struct args_expire expire;
- struct args_askumount askumount;
- struct args_ismountpoint ismountpoint;
- };
-
- char path[0];
-};
-
-static inline void init_autofs_dev_ioctl(struct autofs_dev_ioctl *in)
-{
- memset(in, 0, sizeof(struct autofs_dev_ioctl));
- in->ver_major = AUTOFS_DEV_IOCTL_VERSION_MAJOR;
- in->ver_minor = AUTOFS_DEV_IOCTL_VERSION_MINOR;
- in->size = sizeof(struct autofs_dev_ioctl);
- in->ioctlfd = -1;
- return;
-}
-
-/*
- * If you change this make sure you make the corresponding change
- * to autofs-dev-ioctl.c:lookup_ioctl()
- */
-enum {
- /* Get various version info */
- AUTOFS_DEV_IOCTL_VERSION_CMD = 0x71,
- AUTOFS_DEV_IOCTL_PROTOVER_CMD,
- AUTOFS_DEV_IOCTL_PROTOSUBVER_CMD,
-
- /* Open mount ioctl fd */
- AUTOFS_DEV_IOCTL_OPENMOUNT_CMD,
-
- /* Close mount ioctl fd */
- AUTOFS_DEV_IOCTL_CLOSEMOUNT_CMD,
-
- /* Mount/expire status returns */
- AUTOFS_DEV_IOCTL_READY_CMD,
- AUTOFS_DEV_IOCTL_FAIL_CMD,
-
- /* Activate/deactivate autofs mount */
- AUTOFS_DEV_IOCTL_SETPIPEFD_CMD,
- AUTOFS_DEV_IOCTL_CATATONIC_CMD,
-
- /* Expiry timeout */
- AUTOFS_DEV_IOCTL_TIMEOUT_CMD,
-
- /* Get mount last requesting uid and gid */
- AUTOFS_DEV_IOCTL_REQUESTER_CMD,
-
- /* Check for eligible expire candidates */
- AUTOFS_DEV_IOCTL_EXPIRE_CMD,
-
- /* Request busy status */
- AUTOFS_DEV_IOCTL_ASKUMOUNT_CMD,
-
- /* Check if path is a mountpoint */
- AUTOFS_DEV_IOCTL_ISMOUNTPOINT_CMD,
-};
-
-#define AUTOFS_IOCTL 0x93
-
-#define AUTOFS_DEV_IOCTL_VERSION \
- _IOWR(AUTOFS_IOCTL, \
- AUTOFS_DEV_IOCTL_VERSION_CMD, struct autofs_dev_ioctl)
-
-#define AUTOFS_DEV_IOCTL_PROTOVER \
- _IOWR(AUTOFS_IOCTL, \
- AUTOFS_DEV_IOCTL_PROTOVER_CMD, struct autofs_dev_ioctl)
-
-#define AUTOFS_DEV_IOCTL_PROTOSUBVER \
- _IOWR(AUTOFS_IOCTL, \
- AUTOFS_DEV_IOCTL_PROTOSUBVER_CMD, struct autofs_dev_ioctl)
-
-#define AUTOFS_DEV_IOCTL_OPENMOUNT \
- _IOWR(AUTOFS_IOCTL, \
- AUTOFS_DEV_IOCTL_OPENMOUNT_CMD, struct autofs_dev_ioctl)
-
-#define AUTOFS_DEV_IOCTL_CLOSEMOUNT \
- _IOWR(AUTOFS_IOCTL, \
- AUTOFS_DEV_IOCTL_CLOSEMOUNT_CMD, struct autofs_dev_ioctl)
-
-#define AUTOFS_DEV_IOCTL_READY \
- _IOWR(AUTOFS_IOCTL, \
- AUTOFS_DEV_IOCTL_READY_CMD, struct autofs_dev_ioctl)
-
-#define AUTOFS_DEV_IOCTL_FAIL \
- _IOWR(AUTOFS_IOCTL, \
- AUTOFS_DEV_IOCTL_FAIL_CMD, struct autofs_dev_ioctl)
-
-#define AUTOFS_DEV_IOCTL_SETPIPEFD \
- _IOWR(AUTOFS_IOCTL, \
- AUTOFS_DEV_IOCTL_SETPIPEFD_CMD, struct autofs_dev_ioctl)
-
-#define AUTOFS_DEV_IOCTL_CATATONIC \
- _IOWR(AUTOFS_IOCTL, \
- AUTOFS_DEV_IOCTL_CATATONIC_CMD, struct autofs_dev_ioctl)
-
-#define AUTOFS_DEV_IOCTL_TIMEOUT \
- _IOWR(AUTOFS_IOCTL, \
- AUTOFS_DEV_IOCTL_TIMEOUT_CMD, struct autofs_dev_ioctl)
-
-#define AUTOFS_DEV_IOCTL_REQUESTER \
- _IOWR(AUTOFS_IOCTL, \
- AUTOFS_DEV_IOCTL_REQUESTER_CMD, struct autofs_dev_ioctl)
-
-#define AUTOFS_DEV_IOCTL_EXPIRE \
- _IOWR(AUTOFS_IOCTL, \
- AUTOFS_DEV_IOCTL_EXPIRE_CMD, struct autofs_dev_ioctl)
-
-#define AUTOFS_DEV_IOCTL_ASKUMOUNT \
- _IOWR(AUTOFS_IOCTL, \
- AUTOFS_DEV_IOCTL_ASKUMOUNT_CMD, struct autofs_dev_ioctl)
-
-#define AUTOFS_DEV_IOCTL_ISMOUNTPOINT \
- _IOWR(AUTOFS_IOCTL, \
- AUTOFS_DEV_IOCTL_ISMOUNTPOINT_CMD, struct autofs_dev_ioctl)
-
-#endif /* _LINUX_AUTO_DEV_IOCTL_H */
diff --git a/ANDROID_3.4.5/include/linux/auto_fs.h b/ANDROID_3.4.5/include/linux/auto_fs.h
deleted file mode 100644
index da64e150..00000000
--- a/ANDROID_3.4.5/include/linux/auto_fs.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/* -*- linux-c -*- ------------------------------------------------------- *
- *
- * linux/include/linux/auto_fs.h
- *
- * Copyright 1997 Transmeta Corporation - All Rights Reserved
- *
- * This file is part of the Linux kernel and is made available under
- * the terms of the GNU General Public License, version 2, or at your
- * option, any later version, incorporated herein by reference.
- *
- * ----------------------------------------------------------------------- */
-
-
-#ifndef _LINUX_AUTO_FS_H
-#define _LINUX_AUTO_FS_H
-
-#include <linux/types.h>
-#ifdef __KERNEL__
-#include <linux/fs.h>
-#include <linux/limits.h>
-#include <linux/ioctl.h>
-#else
-#include <sys/ioctl.h>
-#endif /* __KERNEL__ */
-
-/* This file describes autofs v3 */
-#define AUTOFS_PROTO_VERSION 3
-
-/* Range of protocol versions defined */
-#define AUTOFS_MAX_PROTO_VERSION AUTOFS_PROTO_VERSION
-#define AUTOFS_MIN_PROTO_VERSION AUTOFS_PROTO_VERSION
-
-/*
- * Architectures where both 32- and 64-bit binaries can be executed
- * on 64-bit kernels need this. This keeps the structure format
- * uniform, and makes sure the wait_queue_token isn't too big to be
- * passed back down to the kernel.
- *
- * This assumes that on these architectures:
- * mode 32 bit 64 bit
- * -------------------------
- * int 32 bit 32 bit
- * long 32 bit 64 bit
- *
- * If so, 32-bit user-space code should be backwards compatible.
- */
-
-#if defined(__sparc__) || defined(__mips__) || defined(__x86_64__) \
- || defined(__powerpc__) || defined(__s390__)
-typedef unsigned int autofs_wqt_t;
-#else
-typedef unsigned long autofs_wqt_t;
-#endif
-
-/* Packet types */
-#define autofs_ptype_missing 0 /* Missing entry (mount request) */
-#define autofs_ptype_expire 1 /* Expire entry (umount request) */
-
-struct autofs_packet_hdr {
- int proto_version; /* Protocol version */
- int type; /* Type of packet */
-};
-
-struct autofs_packet_missing {
- struct autofs_packet_hdr hdr;
- autofs_wqt_t wait_queue_token;
- int len;
- char name[NAME_MAX+1];
-};
-
-/* v3 expire (via ioctl) */
-struct autofs_packet_expire {
- struct autofs_packet_hdr hdr;
- int len;
- char name[NAME_MAX+1];
-};
-
-#define AUTOFS_IOC_READY _IO(0x93,0x60)
-#define AUTOFS_IOC_FAIL _IO(0x93,0x61)
-#define AUTOFS_IOC_CATATONIC _IO(0x93,0x62)
-#define AUTOFS_IOC_PROTOVER _IOR(0x93,0x63,int)
-#define AUTOFS_IOC_SETTIMEOUT32 _IOWR(0x93,0x64,compat_ulong_t)
-#define AUTOFS_IOC_SETTIMEOUT _IOWR(0x93,0x64,unsigned long)
-#define AUTOFS_IOC_EXPIRE _IOR(0x93,0x65,struct autofs_packet_expire)
-
-#endif /* _LINUX_AUTO_FS_H */
diff --git a/ANDROID_3.4.5/include/linux/auto_fs4.h b/ANDROID_3.4.5/include/linux/auto_fs4.h
deleted file mode 100644
index e02982fa..00000000
--- a/ANDROID_3.4.5/include/linux/auto_fs4.h
+++ /dev/null
@@ -1,164 +0,0 @@
-/* -*- c -*-
- * linux/include/linux/auto_fs4.h
- *
- * Copyright 1999-2000 Jeremy Fitzhardinge <jeremy@goop.org>
- *
- * This file is part of the Linux kernel and is made available under
- * the terms of the GNU General Public License, version 2, or at your
- * option, any later version, incorporated herein by reference.
- */
-
-#ifndef _LINUX_AUTO_FS4_H
-#define _LINUX_AUTO_FS4_H
-
-/* Include common v3 definitions */
-#include <linux/types.h>
-#include <linux/auto_fs.h>
-
-/* autofs v4 definitions */
-#undef AUTOFS_PROTO_VERSION
-#undef AUTOFS_MIN_PROTO_VERSION
-#undef AUTOFS_MAX_PROTO_VERSION
-
-#define AUTOFS_PROTO_VERSION 5
-#define AUTOFS_MIN_PROTO_VERSION 3
-#define AUTOFS_MAX_PROTO_VERSION 5
-
-#define AUTOFS_PROTO_SUBVERSION 2
-
-/* Mask for expire behaviour */
-#define AUTOFS_EXP_IMMEDIATE 1
-#define AUTOFS_EXP_LEAVES 2
-
-#define AUTOFS_TYPE_ANY 0U
-#define AUTOFS_TYPE_INDIRECT 1U
-#define AUTOFS_TYPE_DIRECT 2U
-#define AUTOFS_TYPE_OFFSET 4U
-
-static inline void set_autofs_type_indirect(unsigned int *type)
-{
- *type = AUTOFS_TYPE_INDIRECT;
- return;
-}
-
-static inline unsigned int autofs_type_indirect(unsigned int type)
-{
- return (type == AUTOFS_TYPE_INDIRECT);
-}
-
-static inline void set_autofs_type_direct(unsigned int *type)
-{
- *type = AUTOFS_TYPE_DIRECT;
- return;
-}
-
-static inline unsigned int autofs_type_direct(unsigned int type)
-{
- return (type == AUTOFS_TYPE_DIRECT);
-}
-
-static inline void set_autofs_type_offset(unsigned int *type)
-{
- *type = AUTOFS_TYPE_OFFSET;
- return;
-}
-
-static inline unsigned int autofs_type_offset(unsigned int type)
-{
- return (type == AUTOFS_TYPE_OFFSET);
-}
-
-static inline unsigned int autofs_type_trigger(unsigned int type)
-{
- return (type == AUTOFS_TYPE_DIRECT || type == AUTOFS_TYPE_OFFSET);
-}
-
-/*
- * This isn't really a type as we use it to say "no type set" to
- * indicate we want to search for "any" mount in the
- * autofs_dev_ioctl_ismountpoint() device ioctl function.
- */
-static inline void set_autofs_type_any(unsigned int *type)
-{
- *type = AUTOFS_TYPE_ANY;
- return;
-}
-
-static inline unsigned int autofs_type_any(unsigned int type)
-{
- return (type == AUTOFS_TYPE_ANY);
-}
-
-/* Daemon notification packet types */
-enum autofs_notify {
- NFY_NONE,
- NFY_MOUNT,
- NFY_EXPIRE
-};
-
-/* Kernel protocol version 4 packet types */
-
-/* Expire entry (umount request) */
-#define autofs_ptype_expire_multi 2
-
-/* Kernel protocol version 5 packet types */
-
-/* Indirect mount missing and expire requests. */
-#define autofs_ptype_missing_indirect 3
-#define autofs_ptype_expire_indirect 4
-
-/* Direct mount missing and expire requests */
-#define autofs_ptype_missing_direct 5
-#define autofs_ptype_expire_direct 6
-
-/* v4 multi expire (via pipe) */
-struct autofs_packet_expire_multi {
- struct autofs_packet_hdr hdr;
- autofs_wqt_t wait_queue_token;
- int len;
- char name[NAME_MAX+1];
-};
-
-union autofs_packet_union {
- struct autofs_packet_hdr hdr;
- struct autofs_packet_missing missing;
- struct autofs_packet_expire expire;
- struct autofs_packet_expire_multi expire_multi;
-};
-
-/* autofs v5 common packet struct */
-struct autofs_v5_packet {
- struct autofs_packet_hdr hdr;
- autofs_wqt_t wait_queue_token;
- __u32 dev;
- __u64 ino;
- __u32 uid;
- __u32 gid;
- __u32 pid;
- __u32 tgid;
- __u32 len;
- char name[NAME_MAX+1];
-};
-
-typedef struct autofs_v5_packet autofs_packet_missing_indirect_t;
-typedef struct autofs_v5_packet autofs_packet_expire_indirect_t;
-typedef struct autofs_v5_packet autofs_packet_missing_direct_t;
-typedef struct autofs_v5_packet autofs_packet_expire_direct_t;
-
-union autofs_v5_packet_union {
- struct autofs_packet_hdr hdr;
- struct autofs_v5_packet v5_packet;
- autofs_packet_missing_indirect_t missing_indirect;
- autofs_packet_expire_indirect_t expire_indirect;
- autofs_packet_missing_direct_t missing_direct;
- autofs_packet_expire_direct_t expire_direct;
-};
-
-#define AUTOFS_IOC_EXPIRE_MULTI _IOW(0x93,0x66,int)
-#define AUTOFS_IOC_EXPIRE_INDIRECT AUTOFS_IOC_EXPIRE_MULTI
-#define AUTOFS_IOC_EXPIRE_DIRECT AUTOFS_IOC_EXPIRE_MULTI
-#define AUTOFS_IOC_PROTOSUBVER _IOR(0x93,0x67,int)
-#define AUTOFS_IOC_ASKUMOUNT _IOR(0x93,0x70,int)
-
-
-#endif /* _LINUX_AUTO_FS4_H */
diff --git a/ANDROID_3.4.5/include/linux/auxvec.h b/ANDROID_3.4.5/include/linux/auxvec.h
deleted file mode 100644
index f3b5d4e3..00000000
--- a/ANDROID_3.4.5/include/linux/auxvec.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef _LINUX_AUXVEC_H
-#define _LINUX_AUXVEC_H
-
-#include <asm/auxvec.h>
-
-/* Symbolic values for the entries in the auxiliary table
- put on the initial stack */
-#define AT_NULL 0 /* end of vector */
-#define AT_IGNORE 1 /* entry should be ignored */
-#define AT_EXECFD 2 /* file descriptor of program */
-#define AT_PHDR 3 /* program headers for program */
-#define AT_PHENT 4 /* size of program header entry */
-#define AT_PHNUM 5 /* number of program headers */
-#define AT_PAGESZ 6 /* system page size */
-#define AT_BASE 7 /* base address of interpreter */
-#define AT_FLAGS 8 /* flags */
-#define AT_ENTRY 9 /* entry point of program */
-#define AT_NOTELF 10 /* program is not ELF */
-#define AT_UID 11 /* real uid */
-#define AT_EUID 12 /* effective uid */
-#define AT_GID 13 /* real gid */
-#define AT_EGID 14 /* effective gid */
-#define AT_PLATFORM 15 /* string identifying CPU for optimizations */
-#define AT_HWCAP 16 /* arch dependent hints at CPU capabilities */
-#define AT_CLKTCK 17 /* frequency at which times() increments */
-/* AT_* values 18 through 22 are reserved */
-#define AT_SECURE 23 /* secure mode boolean */
-#define AT_BASE_PLATFORM 24 /* string identifying real platform, may
- * differ from AT_PLATFORM. */
-#define AT_RANDOM 25 /* address of 16 random bytes */
-
-#define AT_EXECFN 31 /* filename of program */
-
-#ifdef __KERNEL__
-#define AT_VECTOR_SIZE_BASE 19 /* NEW_AUX_ENT entries in auxiliary table */
- /* number of "#define AT_.*" above, minus {AT_NULL, AT_IGNORE, AT_NOTELF} */
-#endif
-
-#endif /* _LINUX_AUXVEC_H */
diff --git a/ANDROID_3.4.5/include/linux/average.h b/ANDROID_3.4.5/include/linux/average.h
deleted file mode 100644
index c6028fd7..00000000
--- a/ANDROID_3.4.5/include/linux/average.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef _LINUX_AVERAGE_H
-#define _LINUX_AVERAGE_H
-
-/* Exponentially weighted moving average (EWMA) */
-
-/* For more documentation see lib/average.c */
-
-struct ewma {
- unsigned long internal;
- unsigned long factor;
- unsigned long weight;
-};
-
-extern void ewma_init(struct ewma *avg, unsigned long factor,
- unsigned long weight);
-
-extern struct ewma *ewma_add(struct ewma *avg, unsigned long val);
-
-/**
- * ewma_read() - Get average value
- * @avg: Average structure
- *
- * Returns the average value held in @avg.
- */
-static inline unsigned long ewma_read(const struct ewma *avg)
-{
- return avg->internal >> avg->factor;
-}
-
-#endif /* _LINUX_AVERAGE_H */
diff --git a/ANDROID_3.4.5/include/linux/ax25.h b/ANDROID_3.4.5/include/linux/ax25.h
deleted file mode 100644
index 74c89a41..00000000
--- a/ANDROID_3.4.5/include/linux/ax25.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * These are the public elements of the Linux kernel AX.25 code. A similar
- * file netrom.h exists for the NET/ROM protocol.
- */
-
-#ifndef AX25_KERNEL_H
-#define AX25_KERNEL_H
-
-#include <linux/socket.h>
-
-#define AX25_MTU 256
-#define AX25_MAX_DIGIS 8
-
-#define AX25_WINDOW 1
-#define AX25_T1 2
-#define AX25_N2 3
-#define AX25_T3 4
-#define AX25_T2 5
-#define AX25_BACKOFF 6
-#define AX25_EXTSEQ 7
-#define AX25_PIDINCL 8
-#define AX25_IDLE 9
-#define AX25_PACLEN 10
-#define AX25_IAMDIGI 12
-
-#define AX25_KILL 99
-
-#define SIOCAX25GETUID (SIOCPROTOPRIVATE+0)
-#define SIOCAX25ADDUID (SIOCPROTOPRIVATE+1)
-#define SIOCAX25DELUID (SIOCPROTOPRIVATE+2)
-#define SIOCAX25NOUID (SIOCPROTOPRIVATE+3)
-#define SIOCAX25OPTRT (SIOCPROTOPRIVATE+7)
-#define SIOCAX25CTLCON (SIOCPROTOPRIVATE+8)
-#define SIOCAX25GETINFOOLD (SIOCPROTOPRIVATE+9)
-#define SIOCAX25ADDFWD (SIOCPROTOPRIVATE+10)
-#define SIOCAX25DELFWD (SIOCPROTOPRIVATE+11)
-#define SIOCAX25DEVCTL (SIOCPROTOPRIVATE+12)
-#define SIOCAX25GETINFO (SIOCPROTOPRIVATE+13)
-
-#define AX25_SET_RT_IPMODE 2
-
-#define AX25_NOUID_DEFAULT 0
-#define AX25_NOUID_BLOCK 1
-
-typedef struct {
- char ax25_call[7]; /* 6 call + SSID (shifted ascii!) */
-} ax25_address;
-
-struct sockaddr_ax25 {
- __kernel_sa_family_t sax25_family;
- ax25_address sax25_call;
- int sax25_ndigis;
- /* Digipeater ax25_address sets follow */
-};
-
-#define sax25_uid sax25_ndigis
-
-struct full_sockaddr_ax25 {
- struct sockaddr_ax25 fsa_ax25;
- ax25_address fsa_digipeater[AX25_MAX_DIGIS];
-};
-
-struct ax25_routes_struct {
- ax25_address port_addr;
- ax25_address dest_addr;
- unsigned char digi_count;
- ax25_address digi_addr[AX25_MAX_DIGIS];
-};
-
-struct ax25_route_opt_struct {
- ax25_address port_addr;
- ax25_address dest_addr;
- int cmd;
- int arg;
-};
-
-struct ax25_ctl_struct {
- ax25_address port_addr;
- ax25_address source_addr;
- ax25_address dest_addr;
- unsigned int cmd;
- unsigned long arg;
- unsigned char digi_count;
- ax25_address digi_addr[AX25_MAX_DIGIS];
-};
-
-/* this will go away. Please do not export to user land */
-struct ax25_info_struct_deprecated {
- unsigned int n2, n2count;
- unsigned int t1, t1timer;
- unsigned int t2, t2timer;
- unsigned int t3, t3timer;
- unsigned int idle, idletimer;
- unsigned int state;
- unsigned int rcv_q, snd_q;
-};
-
-struct ax25_info_struct {
- unsigned int n2, n2count;
- unsigned int t1, t1timer;
- unsigned int t2, t2timer;
- unsigned int t3, t3timer;
- unsigned int idle, idletimer;
- unsigned int state;
- unsigned int rcv_q, snd_q;
- unsigned int vs, vr, va, vs_max;
- unsigned int paclen;
- unsigned int window;
-};
-
-struct ax25_fwd_struct {
- ax25_address port_from;
- ax25_address port_to;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/b1lli.h b/ANDROID_3.4.5/include/linux/b1lli.h
deleted file mode 100644
index 713f7126..00000000
--- a/ANDROID_3.4.5/include/linux/b1lli.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* $Id: b1lli.h,v 1.8.8.3 2001/09/23 22:25:05 kai Exp $
- *
- * ISDN lowlevel-module for AVM B1-card.
- *
- * Copyright 1996 by Carsten Paeth (calle@calle.in-berlin.de)
- *
- * This software may be used and distributed according to the terms
- * of the GNU General Public License, incorporated herein by reference.
- *
- */
-
-#ifndef _B1LLI_H_
-#define _B1LLI_H_
-/*
- * struct for loading t4 file
- */
-typedef struct avmb1_t4file {
- int len;
- unsigned char *data;
-} avmb1_t4file;
-
-typedef struct avmb1_loaddef {
- int contr;
- avmb1_t4file t4file;
-} avmb1_loaddef;
-
-typedef struct avmb1_loadandconfigdef {
- int contr;
- avmb1_t4file t4file;
- avmb1_t4file t4config;
-} avmb1_loadandconfigdef;
-
-typedef struct avmb1_resetdef {
- int contr;
-} avmb1_resetdef;
-
-typedef struct avmb1_getdef {
- int contr;
- int cardtype;
- int cardstate;
-} avmb1_getdef;
-
-/*
- * struct for adding new cards
- */
-typedef struct avmb1_carddef {
- int port;
- int irq;
-} avmb1_carddef;
-
-#define AVM_CARDTYPE_B1 0
-#define AVM_CARDTYPE_T1 1
-#define AVM_CARDTYPE_M1 2
-#define AVM_CARDTYPE_M2 3
-
-typedef struct avmb1_extcarddef {
- int port;
- int irq;
- int cardtype;
- int cardnr; /* for HEMA/T1 */
-} avmb1_extcarddef;
-
-#define AVMB1_LOAD 0 /* load image to card */
-#define AVMB1_ADDCARD 1 /* add a new card - OBSOLETE */
-#define AVMB1_RESETCARD 2 /* reset a card */
-#define AVMB1_LOAD_AND_CONFIG 3 /* load image and config to card */
-#define AVMB1_ADDCARD_WITH_TYPE 4 /* add a new card, with cardtype */
-#define AVMB1_GET_CARDINFO 5 /* get cardtype */
-#define AVMB1_REMOVECARD 6 /* remove a card - OBSOLETE */
-
-#define AVMB1_REGISTERCARD_IS_OBSOLETE
-
-#endif /* _B1LLI_H_ */
diff --git a/ANDROID_3.4.5/include/linux/b1pcmcia.h b/ANDROID_3.4.5/include/linux/b1pcmcia.h
deleted file mode 100644
index 12a867c6..00000000
--- a/ANDROID_3.4.5/include/linux/b1pcmcia.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* $Id: b1pcmcia.h,v 1.1.8.2 2001/09/23 22:25:05 kai Exp $
- *
- * Exported functions of module b1pcmcia to be called by
- * avm_cs card services module.
- *
- * Copyright 1999 by Carsten Paeth (calle@calle.in-berlin.de)
- *
- * This software may be used and distributed according to the terms
- * of the GNU General Public License, incorporated herein by reference.
- *
- */
-
-#ifndef _B1PCMCIA_H_
-#define _B1PCMCIA_H_
-
-int b1pcmcia_addcard_b1(unsigned int port, unsigned irq);
-int b1pcmcia_addcard_m1(unsigned int port, unsigned irq);
-int b1pcmcia_addcard_m2(unsigned int port, unsigned irq);
-int b1pcmcia_delcard(unsigned int port, unsigned irq);
-
-#endif /* _B1PCMCIA_H_ */
diff --git a/ANDROID_3.4.5/include/linux/backing-dev.h b/ANDROID_3.4.5/include/linux/backing-dev.h
deleted file mode 100644
index b1038bd6..00000000
--- a/ANDROID_3.4.5/include/linux/backing-dev.h
+++ /dev/null
@@ -1,356 +0,0 @@
-/*
- * include/linux/backing-dev.h
- *
- * low-level device information and state which is propagated up through
- * to high-level code.
- */
-
-#ifndef _LINUX_BACKING_DEV_H
-#define _LINUX_BACKING_DEV_H
-
-#include <linux/percpu_counter.h>
-#include <linux/log2.h>
-#include <linux/proportions.h>
-#include <linux/kernel.h>
-#include <linux/fs.h>
-#include <linux/sched.h>
-#include <linux/timer.h>
-#include <linux/writeback.h>
-#include <linux/atomic.h>
-
-struct page;
-struct device;
-struct dentry;
-
-/*
- * Bits in backing_dev_info.state
- */
-enum bdi_state {
- BDI_pending, /* On its way to being activated */
- BDI_wb_alloc, /* Default embedded wb allocated */
- BDI_async_congested, /* The async (write) queue is getting full */
- BDI_sync_congested, /* The sync queue is getting full */
- BDI_registered, /* bdi_register() was done */
- BDI_writeback_running, /* Writeback is in progress */
- BDI_unused, /* Available bits start here */
-};
-
-typedef int (congested_fn)(void *, int);
-
-enum bdi_stat_item {
- BDI_RECLAIMABLE,
- BDI_WRITEBACK,
- BDI_DIRTIED,
- BDI_WRITTEN,
- NR_BDI_STAT_ITEMS
-};
-
-#define BDI_STAT_BATCH (8*(1+ilog2(nr_cpu_ids)))
-
-struct bdi_writeback {
- struct backing_dev_info *bdi; /* our parent bdi */
- unsigned int nr;
-
- unsigned long last_old_flush; /* last old data flush */
- unsigned long last_active; /* last time bdi thread was active */
-
- struct task_struct *task; /* writeback thread */
- struct timer_list wakeup_timer; /* used for delayed bdi thread wakeup */
- struct list_head b_dirty; /* dirty inodes */
- struct list_head b_io; /* parked for writeback */
- struct list_head b_more_io; /* parked for more writeback */
- spinlock_t list_lock; /* protects the b_* lists */
-};
-
-struct backing_dev_info {
- struct list_head bdi_list;
- unsigned long ra_pages; /* max readahead in PAGE_CACHE_SIZE units */
- unsigned long state; /* Always use atomic bitops on this */
- unsigned int capabilities; /* Device capabilities */
- congested_fn *congested_fn; /* Function pointer if device is md/dm */
- void *congested_data; /* Pointer to aux data for congested func */
-
- char *name;
-
- struct percpu_counter bdi_stat[NR_BDI_STAT_ITEMS];
-
- unsigned long bw_time_stamp; /* last time write bw is updated */
- unsigned long dirtied_stamp;
- unsigned long written_stamp; /* pages written at bw_time_stamp */
- unsigned long write_bandwidth; /* the estimated write bandwidth */
- unsigned long avg_write_bandwidth; /* further smoothed write bw */
-
- /*
- * The base dirty throttle rate, re-calculated on every 200ms.
- * All the bdi tasks' dirty rate will be curbed under it.
- * @dirty_ratelimit tracks the estimated @balanced_dirty_ratelimit
- * in small steps and is much more smooth/stable than the latter.
- */
- unsigned long dirty_ratelimit;
- unsigned long balanced_dirty_ratelimit;
-
- struct prop_local_percpu completions;
- int dirty_exceeded;
-
- unsigned int min_ratio;
- unsigned int max_ratio, max_prop_frac;
-
- struct bdi_writeback wb; /* default writeback info for this bdi */
- spinlock_t wb_lock; /* protects work_list */
-
- struct list_head work_list;
-
- struct device *dev;
-
- struct timer_list laptop_mode_wb_timer;
-
-#ifdef CONFIG_DEBUG_FS
- struct dentry *debug_dir;
- struct dentry *debug_stats;
-#endif
-};
-
-int bdi_init(struct backing_dev_info *bdi);
-void bdi_destroy(struct backing_dev_info *bdi);
-
-int bdi_register(struct backing_dev_info *bdi, struct device *parent,
- const char *fmt, ...);
-int bdi_register_dev(struct backing_dev_info *bdi, dev_t dev);
-void bdi_unregister(struct backing_dev_info *bdi);
-int bdi_setup_and_register(struct backing_dev_info *, char *, unsigned int);
-void bdi_start_writeback(struct backing_dev_info *bdi, long nr_pages,
- enum wb_reason reason);
-void bdi_start_background_writeback(struct backing_dev_info *bdi);
-int bdi_writeback_thread(void *data);
-int bdi_has_dirty_io(struct backing_dev_info *bdi);
-void bdi_arm_supers_timer(void);
-void bdi_wakeup_thread_delayed(struct backing_dev_info *bdi);
-void bdi_lock_two(struct bdi_writeback *wb1, struct bdi_writeback *wb2);
-
-extern spinlock_t bdi_lock;
-extern struct list_head bdi_list;
-extern struct list_head bdi_pending_list;
-
-static inline int wb_has_dirty_io(struct bdi_writeback *wb)
-{
- return !list_empty(&wb->b_dirty) ||
- !list_empty(&wb->b_io) ||
- !list_empty(&wb->b_more_io);
-}
-
-static inline void __add_bdi_stat(struct backing_dev_info *bdi,
- enum bdi_stat_item item, s64 amount)
-{
- __percpu_counter_add(&bdi->bdi_stat[item], amount, BDI_STAT_BATCH);
-}
-
-static inline void __inc_bdi_stat(struct backing_dev_info *bdi,
- enum bdi_stat_item item)
-{
- __add_bdi_stat(bdi, item, 1);
-}
-
-static inline void inc_bdi_stat(struct backing_dev_info *bdi,
- enum bdi_stat_item item)
-{
- unsigned long flags;
-
- local_irq_save(flags);
- __inc_bdi_stat(bdi, item);
- local_irq_restore(flags);
-}
-
-static inline void __dec_bdi_stat(struct backing_dev_info *bdi,
- enum bdi_stat_item item)
-{
- __add_bdi_stat(bdi, item, -1);
-}
-
-static inline void dec_bdi_stat(struct backing_dev_info *bdi,
- enum bdi_stat_item item)
-{
- unsigned long flags;
-
- local_irq_save(flags);
- __dec_bdi_stat(bdi, item);
- local_irq_restore(flags);
-}
-
-static inline s64 bdi_stat(struct backing_dev_info *bdi,
- enum bdi_stat_item item)
-{
- return percpu_counter_read_positive(&bdi->bdi_stat[item]);
-}
-
-static inline s64 __bdi_stat_sum(struct backing_dev_info *bdi,
- enum bdi_stat_item item)
-{
- return percpu_counter_sum_positive(&bdi->bdi_stat[item]);
-}
-
-static inline s64 bdi_stat_sum(struct backing_dev_info *bdi,
- enum bdi_stat_item item)
-{
- s64 sum;
- unsigned long flags;
-
- local_irq_save(flags);
- sum = __bdi_stat_sum(bdi, item);
- local_irq_restore(flags);
-
- return sum;
-}
-
-extern void bdi_writeout_inc(struct backing_dev_info *bdi);
-
-/*
- * maximal error of a stat counter.
- */
-static inline unsigned long bdi_stat_error(struct backing_dev_info *bdi)
-{
-#ifdef CONFIG_SMP
- return nr_cpu_ids * BDI_STAT_BATCH;
-#else
- return 1;
-#endif
-}
-
-int bdi_set_min_ratio(struct backing_dev_info *bdi, unsigned int min_ratio);
-int bdi_set_max_ratio(struct backing_dev_info *bdi, unsigned int max_ratio);
-
-/*
- * Flags in backing_dev_info::capability
- *
- * The first three flags control whether dirty pages will contribute to the
- * VM's accounting and whether writepages() should be called for dirty pages
- * (something that would not, for example, be appropriate for ramfs)
- *
- * WARNING: these flags are closely related and should not normally be
- * used separately. The BDI_CAP_NO_ACCT_AND_WRITEBACK combines these
- * three flags into a single convenience macro.
- *
- * BDI_CAP_NO_ACCT_DIRTY: Dirty pages shouldn't contribute to accounting
- * BDI_CAP_NO_WRITEBACK: Don't write pages back
- * BDI_CAP_NO_ACCT_WB: Don't automatically account writeback pages
- *
- * These flags let !MMU mmap() govern direct device mapping vs immediate
- * copying more easily for MAP_PRIVATE, especially for ROM filesystems.
- *
- * BDI_CAP_MAP_COPY: Copy can be mapped (MAP_PRIVATE)
- * BDI_CAP_MAP_DIRECT: Can be mapped directly (MAP_SHARED)
- * BDI_CAP_READ_MAP: Can be mapped for reading
- * BDI_CAP_WRITE_MAP: Can be mapped for writing
- * BDI_CAP_EXEC_MAP: Can be mapped for execution
- *
- * BDI_CAP_SWAP_BACKED: Count shmem/tmpfs objects as swap-backed.
- */
-#define BDI_CAP_NO_ACCT_DIRTY 0x00000001
-#define BDI_CAP_NO_WRITEBACK 0x00000002
-#define BDI_CAP_MAP_COPY 0x00000004
-#define BDI_CAP_MAP_DIRECT 0x00000008
-#define BDI_CAP_READ_MAP 0x00000010
-#define BDI_CAP_WRITE_MAP 0x00000020
-#define BDI_CAP_EXEC_MAP 0x00000040
-#define BDI_CAP_NO_ACCT_WB 0x00000080
-#define BDI_CAP_SWAP_BACKED 0x00000100
-
-#define BDI_CAP_VMFLAGS \
- (BDI_CAP_READ_MAP | BDI_CAP_WRITE_MAP | BDI_CAP_EXEC_MAP)
-
-#define BDI_CAP_NO_ACCT_AND_WRITEBACK \
- (BDI_CAP_NO_WRITEBACK | BDI_CAP_NO_ACCT_DIRTY | BDI_CAP_NO_ACCT_WB)
-
-#if defined(VM_MAYREAD) && \
- (BDI_CAP_READ_MAP != VM_MAYREAD || \
- BDI_CAP_WRITE_MAP != VM_MAYWRITE || \
- BDI_CAP_EXEC_MAP != VM_MAYEXEC)
-#error please change backing_dev_info::capabilities flags
-#endif
-
-extern struct backing_dev_info default_backing_dev_info;
-extern struct backing_dev_info noop_backing_dev_info;
-
-int writeback_in_progress(struct backing_dev_info *bdi);
-
-static inline int bdi_congested(struct backing_dev_info *bdi, int bdi_bits)
-{
- if (bdi->congested_fn)
- return bdi->congested_fn(bdi->congested_data, bdi_bits);
- return (bdi->state & bdi_bits);
-}
-
-static inline int bdi_read_congested(struct backing_dev_info *bdi)
-{
- return bdi_congested(bdi, 1 << BDI_sync_congested);
-}
-
-static inline int bdi_write_congested(struct backing_dev_info *bdi)
-{
- return bdi_congested(bdi, 1 << BDI_async_congested);
-}
-
-static inline int bdi_rw_congested(struct backing_dev_info *bdi)
-{
- return bdi_congested(bdi, (1 << BDI_sync_congested) |
- (1 << BDI_async_congested));
-}
-
-enum {
- BLK_RW_ASYNC = 0,
- BLK_RW_SYNC = 1,
-};
-
-void clear_bdi_congested(struct backing_dev_info *bdi, int sync);
-void set_bdi_congested(struct backing_dev_info *bdi, int sync);
-long congestion_wait(int sync, long timeout);
-long wait_iff_congested(struct zone *zone, int sync, long timeout);
-
-static inline bool bdi_cap_writeback_dirty(struct backing_dev_info *bdi)
-{
- return !(bdi->capabilities & BDI_CAP_NO_WRITEBACK);
-}
-
-static inline bool bdi_cap_account_dirty(struct backing_dev_info *bdi)
-{
- return !(bdi->capabilities & BDI_CAP_NO_ACCT_DIRTY);
-}
-
-static inline bool bdi_cap_account_writeback(struct backing_dev_info *bdi)
-{
- /* Paranoia: BDI_CAP_NO_WRITEBACK implies BDI_CAP_NO_ACCT_WB */
- return !(bdi->capabilities & (BDI_CAP_NO_ACCT_WB |
- BDI_CAP_NO_WRITEBACK));
-}
-
-static inline bool bdi_cap_swap_backed(struct backing_dev_info *bdi)
-{
- return bdi->capabilities & BDI_CAP_SWAP_BACKED;
-}
-
-static inline bool bdi_cap_flush_forker(struct backing_dev_info *bdi)
-{
- return bdi == &default_backing_dev_info;
-}
-
-static inline bool mapping_cap_writeback_dirty(struct address_space *mapping)
-{
- return bdi_cap_writeback_dirty(mapping->backing_dev_info);
-}
-
-static inline bool mapping_cap_account_dirty(struct address_space *mapping)
-{
- return bdi_cap_account_dirty(mapping->backing_dev_info);
-}
-
-static inline bool mapping_cap_swap_backed(struct address_space *mapping)
-{
- return bdi_cap_swap_backed(mapping->backing_dev_info);
-}
-
-static inline int bdi_sched_wait(void *word)
-{
- schedule();
- return 0;
-}
-
-#endif /* _LINUX_BACKING_DEV_H */
diff --git a/ANDROID_3.4.5/include/linux/backlight.h b/ANDROID_3.4.5/include/linux/backlight.h
deleted file mode 100644
index 5ffc6dda..00000000
--- a/ANDROID_3.4.5/include/linux/backlight.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Backlight Lowlevel Control Abstraction
- *
- * Copyright (C) 2003,2004 Hewlett-Packard Company
- *
- */
-
-#ifndef _LINUX_BACKLIGHT_H
-#define _LINUX_BACKLIGHT_H
-
-#include <linux/device.h>
-#include <linux/mutex.h>
-#include <linux/notifier.h>
-
-/* Notes on locking:
- *
- * backlight_device->ops_lock is an internal backlight lock protecting the
- * ops pointer and no code outside the core should need to touch it.
- *
- * Access to update_status() is serialised by the update_lock mutex since
- * most drivers seem to need this and historically get it wrong.
- *
- * Most drivers don't need locking on their get_brightness() method.
- * If yours does, you need to implement it in the driver. You can use the
- * update_lock mutex if appropriate.
- *
- * Any other use of the locks below is probably wrong.
- */
-
-enum backlight_update_reason {
- BACKLIGHT_UPDATE_HOTKEY,
- BACKLIGHT_UPDATE_SYSFS,
-};
-
-enum backlight_type {
- BACKLIGHT_RAW = 1,
- BACKLIGHT_PLATFORM,
- BACKLIGHT_FIRMWARE,
- BACKLIGHT_TYPE_MAX,
-};
-
-struct backlight_device;
-struct fb_info;
-
-struct backlight_ops {
- unsigned int options;
-
-#define BL_CORE_SUSPENDRESUME (1 << 0)
-
- /* Notify the backlight driver some property has changed */
- int (*update_status)(struct backlight_device *);
- /* Return the current backlight brightness (accounting for power,
- fb_blank etc.) */
- int (*get_brightness)(struct backlight_device *);
- /* Check if given framebuffer device is the one bound to this backlight;
- return 0 if not, !=0 if it is. If NULL, backlight always matches the fb. */
- int (*check_fb)(struct backlight_device *, struct fb_info *);
-};
-
-/* This structure defines all the properties of a backlight */
-struct backlight_properties {
- /* Current User requested brightness (0 - max_brightness) */
- int brightness;
- /* Maximal value for brightness (read-only) */
- int max_brightness;
- /* Current FB Power mode (0: full on, 1..3: power saving
- modes; 4: full off), see FB_BLANK_XXX */
- int power;
- /* FB Blanking active? (values as for power) */
- /* Due to be removed, please use (state & BL_CORE_FBBLANK) */
- int fb_blank;
- /* Backlight type */
- enum backlight_type type;
- /* Flags used to signal drivers of state changes */
- /* Upper 4 bits are reserved for driver internal use */
- unsigned int state;
-
-#define BL_CORE_SUSPENDED (1 << 0) /* backlight is suspended */
-#define BL_CORE_FBBLANK (1 << 1) /* backlight is under an fb blank event */
-#define BL_CORE_DRIVER4 (1 << 28) /* reserved for driver specific use */
-#define BL_CORE_DRIVER3 (1 << 29) /* reserved for driver specific use */
-#define BL_CORE_DRIVER2 (1 << 30) /* reserved for driver specific use */
-#define BL_CORE_DRIVER1 (1 << 31) /* reserved for driver specific use */
-
-};
-
-struct backlight_device {
- /* Backlight properties */
- struct backlight_properties props;
-
- /* Serialise access to update_status method */
- struct mutex update_lock;
-
- /* This protects the 'ops' field. If 'ops' is NULL, the driver that
- registered this device has been unloaded, and if class_get_devdata()
- points to something in the body of that driver, it is also invalid. */
- struct mutex ops_lock;
- const struct backlight_ops *ops;
-
- /* The framebuffer notifier block */
- struct notifier_block fb_notif;
-
- struct device dev;
-};
-
-static inline void backlight_update_status(struct backlight_device *bd)
-{
- mutex_lock(&bd->update_lock);
- if (bd->ops && bd->ops->update_status)
- bd->ops->update_status(bd);
- mutex_unlock(&bd->update_lock);
-}
-
-extern struct backlight_device *backlight_device_register(const char *name,
- struct device *dev, void *devdata, const struct backlight_ops *ops,
- const struct backlight_properties *props);
-extern void backlight_device_unregister(struct backlight_device *bd);
-extern void backlight_force_update(struct backlight_device *bd,
- enum backlight_update_reason reason);
-
-#define to_backlight_device(obj) container_of(obj, struct backlight_device, dev)
-
-static inline void * bl_get_data(struct backlight_device *bl_dev)
-{
- return dev_get_drvdata(&bl_dev->dev);
-}
-
-struct generic_bl_info {
- const char *name;
- int max_intensity;
- int default_intensity;
- int limit_mask;
- void (*set_bl_intensity)(int intensity);
- void (*kick_battery)(void);
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/basic_mmio_gpio.h b/ANDROID_3.4.5/include/linux/basic_mmio_gpio.h
deleted file mode 100644
index feb91219..00000000
--- a/ANDROID_3.4.5/include/linux/basic_mmio_gpio.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Basic memory-mapped GPIO controllers.
- *
- * Copyright 2008 MontaVista Software, Inc.
- * Copyright 2008,2010 Anton Vorontsov <cbouatmailru@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.
- */
-
-#ifndef __BASIC_MMIO_GPIO_H
-#define __BASIC_MMIO_GPIO_H
-
-#include <linux/gpio.h>
-#include <linux/types.h>
-#include <linux/compiler.h>
-#include <linux/spinlock_types.h>
-
-struct bgpio_pdata {
- int base;
- int ngpio;
-};
-
-struct device;
-
-struct bgpio_chip {
- struct gpio_chip gc;
-
- unsigned long (*read_reg)(void __iomem *reg);
- void (*write_reg)(void __iomem *reg, unsigned long data);
-
- void __iomem *reg_dat;
- void __iomem *reg_set;
- void __iomem *reg_clr;
- void __iomem *reg_dir;
-
- /* Number of bits (GPIOs): <register width> * 8. */
- int bits;
-
- /*
- * Some GPIO controllers work with the big-endian bits notation,
- * e.g. in a 8-bits register, GPIO7 is the least significant bit.
- */
- unsigned long (*pin2mask)(struct bgpio_chip *bgc, unsigned int pin);
-
- /*
- * Used to lock bgpio_chip->data. Also, this is needed to keep
- * shadowed and real data registers writes together.
- */
- spinlock_t lock;
-
- /* Shadowed data register to clear/set bits safely. */
- unsigned long data;
-
- /* Shadowed direction registers to clear/set direction safely. */
- unsigned long dir;
-};
-
-static inline struct bgpio_chip *to_bgpio_chip(struct gpio_chip *gc)
-{
- return container_of(gc, struct bgpio_chip, gc);
-}
-
-int bgpio_remove(struct bgpio_chip *bgc);
-int bgpio_init(struct bgpio_chip *bgc, struct device *dev,
- unsigned long sz, void __iomem *dat, void __iomem *set,
- void __iomem *clr, void __iomem *dirout, void __iomem *dirin,
- bool big_endian);
-
-#endif /* __BASIC_MMIO_GPIO_H */
diff --git a/ANDROID_3.4.5/include/linux/baycom.h b/ANDROID_3.4.5/include/linux/baycom.h
deleted file mode 100644
index 81249e02..00000000
--- a/ANDROID_3.4.5/include/linux/baycom.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * The Linux BAYCOM driver for the Baycom serial 1200 baud modem
- * and the parallel 9600 baud modem
- * (C) 1997-1998 by Thomas Sailer, HB9JNX/AE4WA
- */
-
-#ifndef _BAYCOM_H
-#define _BAYCOM_H
-
-/* -------------------------------------------------------------------- */
-/*
- * structs for the IOCTL commands
- */
-
-struct baycom_debug_data {
- unsigned long debug1;
- unsigned long debug2;
- long debug3;
-};
-
-struct baycom_ioctl {
- int cmd;
- union {
- struct baycom_debug_data dbg;
- } data;
-};
-
-/* -------------------------------------------------------------------- */
-
-/*
- * ioctl values change for baycom
- */
-#define BAYCOMCTL_GETDEBUG 0x92
-
-/* -------------------------------------------------------------------- */
-
-#endif /* _BAYCOM_H */
-
-/* --------------------------------------------------------------------- */
diff --git a/ANDROID_3.4.5/include/linux/bcd.h b/ANDROID_3.4.5/include/linux/bcd.h
deleted file mode 100644
index 22ea563b..00000000
--- a/ANDROID_3.4.5/include/linux/bcd.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef _BCD_H
-#define _BCD_H
-
-#include <linux/compiler.h>
-
-unsigned bcd2bin(unsigned char val) __attribute_const__;
-unsigned char bin2bcd(unsigned val) __attribute_const__;
-
-#endif /* _BCD_H */
diff --git a/ANDROID_3.4.5/include/linux/bch.h b/ANDROID_3.4.5/include/linux/bch.h
deleted file mode 100644
index 295b4ef1..00000000
--- a/ANDROID_3.4.5/include/linux/bch.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Generic binary BCH encoding/decoding library
- *
- * 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.
- *
- * 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.
- *
- * Copyright © 2011 Parrot S.A.
- *
- * Author: Ivan Djelic <ivan.djelic@parrot.com>
- *
- * Description:
- *
- * This library provides runtime configurable encoding/decoding of binary
- * Bose-Chaudhuri-Hocquenghem (BCH) codes.
-*/
-#ifndef _BCH_H
-#define _BCH_H
-
-#include <linux/types.h>
-
-/**
- * struct bch_control - BCH control structure
- * @m: Galois field order
- * @n: maximum codeword size in bits (= 2^m-1)
- * @t: error correction capability in bits
- * @ecc_bits: ecc exact size in bits, i.e. generator polynomial degree (<=m*t)
- * @ecc_bytes: ecc max size (m*t bits) in bytes
- * @a_pow_tab: Galois field GF(2^m) exponentiation lookup table
- * @a_log_tab: Galois field GF(2^m) log lookup table
- * @mod8_tab: remainder generator polynomial lookup tables
- * @ecc_buf: ecc parity words buffer
- * @ecc_buf2: ecc parity words buffer
- * @xi_tab: GF(2^m) base for solving degree 2 polynomial roots
- * @syn: syndrome buffer
- * @cache: log-based polynomial representation buffer
- * @elp: error locator polynomial
- * @poly_2t: temporary polynomials of degree 2t
- */
-struct bch_control {
- unsigned int m;
- unsigned int n;
- unsigned int t;
- unsigned int ecc_bits;
- unsigned int ecc_bytes;
-/* private: */
- uint16_t *a_pow_tab;
- uint16_t *a_log_tab;
- uint32_t *mod8_tab;
- uint32_t *ecc_buf;
- uint32_t *ecc_buf2;
- unsigned int *xi_tab;
- unsigned int *syn;
- int *cache;
- struct gf_poly *elp;
- struct gf_poly *poly_2t[4];
-};
-
-struct bch_control *init_bch(int m, int t, unsigned int prim_poly);
-
-void free_bch(struct bch_control *bch);
-
-void encode_bch(struct bch_control *bch, const uint8_t *data,
- unsigned int len, uint8_t *ecc);
-
-int decode_bch(struct bch_control *bch, const uint8_t *data, unsigned int len,
- const uint8_t *recv_ecc, const uint8_t *calc_ecc,
- const unsigned int *syn, unsigned int *errloc);
-
-#endif /* _BCH_H */
diff --git a/ANDROID_3.4.5/include/linux/bcma/bcma.h b/ANDROID_3.4.5/include/linux/bcma/bcma.h
deleted file mode 100644
index 5af9a075..00000000
--- a/ANDROID_3.4.5/include/linux/bcma/bcma.h
+++ /dev/null
@@ -1,307 +0,0 @@
-#ifndef LINUX_BCMA_H_
-#define LINUX_BCMA_H_
-
-#include <linux/pci.h>
-#include <linux/mod_devicetable.h>
-
-#include <linux/bcma/bcma_driver_chipcommon.h>
-#include <linux/bcma/bcma_driver_pci.h>
-#include <linux/bcma/bcma_driver_mips.h>
-#include <linux/ssb/ssb.h> /* SPROM sharing */
-
-#include "bcma_regs.h"
-
-struct bcma_device;
-struct bcma_bus;
-
-enum bcma_hosttype {
- BCMA_HOSTTYPE_PCI,
- BCMA_HOSTTYPE_SDIO,
- BCMA_HOSTTYPE_SOC,
-};
-
-struct bcma_chipinfo {
- u16 id;
- u8 rev;
- u8 pkg;
-};
-
-enum bcma_clkmode {
- BCMA_CLKMODE_FAST,
- BCMA_CLKMODE_DYNAMIC,
-};
-
-struct bcma_host_ops {
- u8 (*read8)(struct bcma_device *core, u16 offset);
- u16 (*read16)(struct bcma_device *core, u16 offset);
- u32 (*read32)(struct bcma_device *core, u16 offset);
- void (*write8)(struct bcma_device *core, u16 offset, u8 value);
- void (*write16)(struct bcma_device *core, u16 offset, u16 value);
- void (*write32)(struct bcma_device *core, u16 offset, u32 value);
-#ifdef CONFIG_BCMA_BLOCKIO
- void (*block_read)(struct bcma_device *core, void *buffer,
- size_t count, u16 offset, u8 reg_width);
- void (*block_write)(struct bcma_device *core, const void *buffer,
- size_t count, u16 offset, u8 reg_width);
-#endif
- /* Agent ops */
- u32 (*aread32)(struct bcma_device *core, u16 offset);
- void (*awrite32)(struct bcma_device *core, u16 offset, u32 value);
-};
-
-/* Core manufacturers */
-#define BCMA_MANUF_ARM 0x43B
-#define BCMA_MANUF_MIPS 0x4A7
-#define BCMA_MANUF_BCM 0x4BF
-
-/* Core class values. */
-#define BCMA_CL_SIM 0x0
-#define BCMA_CL_EROM 0x1
-#define BCMA_CL_CORESIGHT 0x9
-#define BCMA_CL_VERIF 0xB
-#define BCMA_CL_OPTIMO 0xD
-#define BCMA_CL_GEN 0xE
-#define BCMA_CL_PRIMECELL 0xF
-
-/* Core-ID values. */
-#define BCMA_CORE_OOB_ROUTER 0x367 /* Out of band */
-#define BCMA_CORE_INVALID 0x700
-#define BCMA_CORE_CHIPCOMMON 0x800
-#define BCMA_CORE_ILINE20 0x801
-#define BCMA_CORE_SRAM 0x802
-#define BCMA_CORE_SDRAM 0x803
-#define BCMA_CORE_PCI 0x804
-#define BCMA_CORE_MIPS 0x805
-#define BCMA_CORE_ETHERNET 0x806
-#define BCMA_CORE_V90 0x807
-#define BCMA_CORE_USB11_HOSTDEV 0x808
-#define BCMA_CORE_ADSL 0x809
-#define BCMA_CORE_ILINE100 0x80A
-#define BCMA_CORE_IPSEC 0x80B
-#define BCMA_CORE_UTOPIA 0x80C
-#define BCMA_CORE_PCMCIA 0x80D
-#define BCMA_CORE_INTERNAL_MEM 0x80E
-#define BCMA_CORE_MEMC_SDRAM 0x80F
-#define BCMA_CORE_OFDM 0x810
-#define BCMA_CORE_EXTIF 0x811
-#define BCMA_CORE_80211 0x812
-#define BCMA_CORE_PHY_A 0x813
-#define BCMA_CORE_PHY_B 0x814
-#define BCMA_CORE_PHY_G 0x815
-#define BCMA_CORE_MIPS_3302 0x816
-#define BCMA_CORE_USB11_HOST 0x817
-#define BCMA_CORE_USB11_DEV 0x818
-#define BCMA_CORE_USB20_HOST 0x819
-#define BCMA_CORE_USB20_DEV 0x81A
-#define BCMA_CORE_SDIO_HOST 0x81B
-#define BCMA_CORE_ROBOSWITCH 0x81C
-#define BCMA_CORE_PARA_ATA 0x81D
-#define BCMA_CORE_SATA_XORDMA 0x81E
-#define BCMA_CORE_ETHERNET_GBIT 0x81F
-#define BCMA_CORE_PCIE 0x820
-#define BCMA_CORE_PHY_N 0x821
-#define BCMA_CORE_SRAM_CTL 0x822
-#define BCMA_CORE_MINI_MACPHY 0x823
-#define BCMA_CORE_ARM_1176 0x824
-#define BCMA_CORE_ARM_7TDMI 0x825
-#define BCMA_CORE_PHY_LP 0x826
-#define BCMA_CORE_PMU 0x827
-#define BCMA_CORE_PHY_SSN 0x828
-#define BCMA_CORE_SDIO_DEV 0x829
-#define BCMA_CORE_ARM_CM3 0x82A
-#define BCMA_CORE_PHY_HT 0x82B
-#define BCMA_CORE_MIPS_74K 0x82C
-#define BCMA_CORE_MAC_GBIT 0x82D
-#define BCMA_CORE_DDR12_MEM_CTL 0x82E
-#define BCMA_CORE_PCIE_RC 0x82F /* PCIe Root Complex */
-#define BCMA_CORE_OCP_OCP_BRIDGE 0x830
-#define BCMA_CORE_SHARED_COMMON 0x831
-#define BCMA_CORE_OCP_AHB_BRIDGE 0x832
-#define BCMA_CORE_SPI_HOST 0x833
-#define BCMA_CORE_I2S 0x834
-#define BCMA_CORE_SDR_DDR1_MEM_CTL 0x835 /* SDR/DDR1 memory controller core */
-#define BCMA_CORE_SHIM 0x837 /* SHIM component in ubus/6362 */
-#define BCMA_CORE_DEFAULT 0xFFF
-
-#define BCMA_MAX_NR_CORES 16
-
-struct bcma_device {
- struct bcma_bus *bus;
- struct bcma_device_id id;
-
- struct device dev;
- struct device *dma_dev;
-
- unsigned int irq;
- bool dev_registered;
-
- u8 core_index;
- u8 core_unit;
-
- u32 addr;
- u32 wrap;
-
- void __iomem *io_addr;
- void __iomem *io_wrap;
-
- void *drvdata;
- struct list_head list;
-};
-
-static inline void *bcma_get_drvdata(struct bcma_device *core)
-{
- return core->drvdata;
-}
-static inline void bcma_set_drvdata(struct bcma_device *core, void *drvdata)
-{
- core->drvdata = drvdata;
-}
-
-struct bcma_driver {
- const char *name;
- const struct bcma_device_id *id_table;
-
- int (*probe)(struct bcma_device *dev);
- void (*remove)(struct bcma_device *dev);
- int (*suspend)(struct bcma_device *dev);
- int (*resume)(struct bcma_device *dev);
- void (*shutdown)(struct bcma_device *dev);
-
- struct device_driver drv;
-};
-extern
-int __bcma_driver_register(struct bcma_driver *drv, struct module *owner);
-#define bcma_driver_register(drv) \
- __bcma_driver_register(drv, THIS_MODULE)
-
-extern void bcma_driver_unregister(struct bcma_driver *drv);
-
-/* Set a fallback SPROM.
- * See kdoc at the function definition for complete documentation. */
-extern int bcma_arch_register_fallback_sprom(
- int (*sprom_callback)(struct bcma_bus *bus,
- struct ssb_sprom *out));
-
-struct bcma_bus {
- /* The MMIO area. */
- void __iomem *mmio;
-
- const struct bcma_host_ops *ops;
-
- enum bcma_hosttype hosttype;
- union {
- /* Pointer to the PCI bus (only for BCMA_HOSTTYPE_PCI) */
- struct pci_dev *host_pci;
- /* Pointer to the SDIO device (only for BCMA_HOSTTYPE_SDIO) */
- struct sdio_func *host_sdio;
- };
-
- struct bcma_chipinfo chipinfo;
-
- struct bcma_device *mapped_core;
- struct list_head cores;
- u8 nr_cores;
- u8 init_done:1;
- u8 num;
-
- struct bcma_drv_cc drv_cc;
- struct bcma_drv_pci drv_pci;
- struct bcma_drv_mips drv_mips;
-
- /* We decided to share SPROM struct with SSB as long as we do not need
- * any hacks for BCMA. This simplifies drivers code. */
- struct ssb_sprom sprom;
-};
-
-static inline u32 bcma_read8(struct bcma_device *core, u16 offset)
-{
- return core->bus->ops->read8(core, offset);
-}
-static inline u32 bcma_read16(struct bcma_device *core, u16 offset)
-{
- return core->bus->ops->read16(core, offset);
-}
-static inline u32 bcma_read32(struct bcma_device *core, u16 offset)
-{
- return core->bus->ops->read32(core, offset);
-}
-static inline
-void bcma_write8(struct bcma_device *core, u16 offset, u32 value)
-{
- core->bus->ops->write8(core, offset, value);
-}
-static inline
-void bcma_write16(struct bcma_device *core, u16 offset, u32 value)
-{
- core->bus->ops->write16(core, offset, value);
-}
-static inline
-void bcma_write32(struct bcma_device *core, u16 offset, u32 value)
-{
- core->bus->ops->write32(core, offset, value);
-}
-#ifdef CONFIG_BCMA_BLOCKIO
-static inline void bcma_block_read(struct bcma_device *core, void *buffer,
- size_t count, u16 offset, u8 reg_width)
-{
- core->bus->ops->block_read(core, buffer, count, offset, reg_width);
-}
-static inline void bcma_block_write(struct bcma_device *core,
- const void *buffer, size_t count,
- u16 offset, u8 reg_width)
-{
- core->bus->ops->block_write(core, buffer, count, offset, reg_width);
-}
-#endif
-static inline u32 bcma_aread32(struct bcma_device *core, u16 offset)
-{
- return core->bus->ops->aread32(core, offset);
-}
-static inline
-void bcma_awrite32(struct bcma_device *core, u16 offset, u32 value)
-{
- core->bus->ops->awrite32(core, offset, value);
-}
-
-static inline void bcma_mask32(struct bcma_device *cc, u16 offset, u32 mask)
-{
- bcma_write32(cc, offset, bcma_read32(cc, offset) & mask);
-}
-static inline void bcma_set32(struct bcma_device *cc, u16 offset, u32 set)
-{
- bcma_write32(cc, offset, bcma_read32(cc, offset) | set);
-}
-static inline void bcma_maskset32(struct bcma_device *cc,
- u16 offset, u32 mask, u32 set)
-{
- bcma_write32(cc, offset, (bcma_read32(cc, offset) & mask) | set);
-}
-static inline void bcma_mask16(struct bcma_device *cc, u16 offset, u16 mask)
-{
- bcma_write16(cc, offset, bcma_read16(cc, offset) & mask);
-}
-static inline void bcma_set16(struct bcma_device *cc, u16 offset, u16 set)
-{
- bcma_write16(cc, offset, bcma_read16(cc, offset) | set);
-}
-static inline void bcma_maskset16(struct bcma_device *cc,
- u16 offset, u16 mask, u16 set)
-{
- bcma_write16(cc, offset, (bcma_read16(cc, offset) & mask) | set);
-}
-
-extern struct bcma_device *bcma_find_core(struct bcma_bus *bus, u16 coreid);
-extern bool bcma_core_is_enabled(struct bcma_device *core);
-extern void bcma_core_disable(struct bcma_device *core, u32 flags);
-extern int bcma_core_enable(struct bcma_device *core, u32 flags);
-extern void bcma_core_set_clockmode(struct bcma_device *core,
- enum bcma_clkmode clkmode);
-extern void bcma_core_pll_ctl(struct bcma_device *core, u32 req, u32 status,
- bool on);
-#define BCMA_DMA_TRANSLATION_MASK 0xC0000000
-#define BCMA_DMA_TRANSLATION_NONE 0x00000000
-#define BCMA_DMA_TRANSLATION_DMA32_CMT 0x40000000 /* Client Mode Translation for 32-bit DMA */
-#define BCMA_DMA_TRANSLATION_DMA64_CMT 0x80000000 /* Client Mode Translation for 64-bit DMA */
-extern u32 bcma_core_dma_translation(struct bcma_device *core);
-
-#endif /* LINUX_BCMA_H_ */
diff --git a/ANDROID_3.4.5/include/linux/bcma/bcma_driver_chipcommon.h b/ANDROID_3.4.5/include/linux/bcma/bcma_driver_chipcommon.h
deleted file mode 100644
index 8bbfe31f..00000000
--- a/ANDROID_3.4.5/include/linux/bcma/bcma_driver_chipcommon.h
+++ /dev/null
@@ -1,415 +0,0 @@
-#ifndef LINUX_BCMA_DRIVER_CC_H_
-#define LINUX_BCMA_DRIVER_CC_H_
-
-/** ChipCommon core registers. **/
-#define BCMA_CC_ID 0x0000
-#define BCMA_CC_ID_ID 0x0000FFFF
-#define BCMA_CC_ID_ID_SHIFT 0
-#define BCMA_CC_ID_REV 0x000F0000
-#define BCMA_CC_ID_REV_SHIFT 16
-#define BCMA_CC_ID_PKG 0x00F00000
-#define BCMA_CC_ID_PKG_SHIFT 20
-#define BCMA_CC_ID_NRCORES 0x0F000000
-#define BCMA_CC_ID_NRCORES_SHIFT 24
-#define BCMA_CC_ID_TYPE 0xF0000000
-#define BCMA_CC_ID_TYPE_SHIFT 28
-#define BCMA_CC_CAP 0x0004 /* Capabilities */
-#define BCMA_CC_CAP_NRUART 0x00000003 /* # of UARTs */
-#define BCMA_CC_CAP_MIPSEB 0x00000004 /* MIPS in BigEndian Mode */
-#define BCMA_CC_CAP_UARTCLK 0x00000018 /* UART clock select */
-#define BCMA_CC_CAP_UARTCLK_INT 0x00000008 /* UARTs are driven by internal divided clock */
-#define BCMA_CC_CAP_UARTGPIO 0x00000020 /* UARTs on GPIO 15-12 */
-#define BCMA_CC_CAP_EXTBUS 0x000000C0 /* External buses present */
-#define BCMA_CC_CAP_FLASHT 0x00000700 /* Flash Type */
-#define BCMA_CC_FLASHT_NONE 0x00000000 /* No flash */
-#define BCMA_CC_FLASHT_STSER 0x00000100 /* ST serial flash */
-#define BCMA_CC_FLASHT_ATSER 0x00000200 /* Atmel serial flash */
-#define BCMA_CC_FLASHT_NFLASH 0x00000200
-#define BCMA_CC_FLASHT_PARA 0x00000700 /* Parallel flash */
-#define BCMA_CC_CAP_PLLT 0x00038000 /* PLL Type */
-#define BCMA_PLLTYPE_NONE 0x00000000
-#define BCMA_PLLTYPE_1 0x00010000 /* 48Mhz base, 3 dividers */
-#define BCMA_PLLTYPE_2 0x00020000 /* 48Mhz, 4 dividers */
-#define BCMA_PLLTYPE_3 0x00030000 /* 25Mhz, 2 dividers */
-#define BCMA_PLLTYPE_4 0x00008000 /* 48Mhz, 4 dividers */
-#define BCMA_PLLTYPE_5 0x00018000 /* 25Mhz, 4 dividers */
-#define BCMA_PLLTYPE_6 0x00028000 /* 100/200 or 120/240 only */
-#define BCMA_PLLTYPE_7 0x00038000 /* 25Mhz, 4 dividers */
-#define BCMA_CC_CAP_PCTL 0x00040000 /* Power Control */
-#define BCMA_CC_CAP_OTPS 0x00380000 /* OTP size */
-#define BCMA_CC_CAP_OTPS_SHIFT 19
-#define BCMA_CC_CAP_OTPS_BASE 5
-#define BCMA_CC_CAP_JTAGM 0x00400000 /* JTAG master present */
-#define BCMA_CC_CAP_BROM 0x00800000 /* Internal boot ROM active */
-#define BCMA_CC_CAP_64BIT 0x08000000 /* 64-bit Backplane */
-#define BCMA_CC_CAP_PMU 0x10000000 /* PMU available (rev >= 20) */
-#define BCMA_CC_CAP_ECI 0x20000000 /* ECI available (rev >= 20) */
-#define BCMA_CC_CAP_SPROM 0x40000000 /* SPROM present */
-#define BCMA_CC_CORECTL 0x0008
-#define BCMA_CC_CORECTL_UARTCLK0 0x00000001 /* Drive UART with internal clock */
-#define BCMA_CC_CORECTL_SE 0x00000002 /* sync clk out enable (corerev >= 3) */
-#define BCMA_CC_CORECTL_UARTCLKEN 0x00000008 /* UART clock enable (rev >= 21) */
-#define BCMA_CC_BIST 0x000C
-#define BCMA_CC_OTPS 0x0010 /* OTP status */
-#define BCMA_CC_OTPS_PROGFAIL 0x80000000
-#define BCMA_CC_OTPS_PROTECT 0x00000007
-#define BCMA_CC_OTPS_HW_PROTECT 0x00000001
-#define BCMA_CC_OTPS_SW_PROTECT 0x00000002
-#define BCMA_CC_OTPS_CID_PROTECT 0x00000004
-#define BCMA_CC_OTPS_GU_PROG_IND 0x00000F00 /* General Use programmed indication */
-#define BCMA_CC_OTPS_GU_PROG_IND_SHIFT 8
-#define BCMA_CC_OTPS_GU_PROG_HW 0x00000100 /* HW region programmed */
-#define BCMA_CC_OTPC 0x0014 /* OTP control */
-#define BCMA_CC_OTPC_RECWAIT 0xFF000000
-#define BCMA_CC_OTPC_PROGWAIT 0x00FFFF00
-#define BCMA_CC_OTPC_PRW_SHIFT 8
-#define BCMA_CC_OTPC_MAXFAIL 0x00000038
-#define BCMA_CC_OTPC_VSEL 0x00000006
-#define BCMA_CC_OTPC_SELVL 0x00000001
-#define BCMA_CC_OTPP 0x0018 /* OTP prog */
-#define BCMA_CC_OTPP_COL 0x000000FF
-#define BCMA_CC_OTPP_ROW 0x0000FF00
-#define BCMA_CC_OTPP_ROW_SHIFT 8
-#define BCMA_CC_OTPP_READERR 0x10000000
-#define BCMA_CC_OTPP_VALUE 0x20000000
-#define BCMA_CC_OTPP_READ 0x40000000
-#define BCMA_CC_OTPP_START 0x80000000
-#define BCMA_CC_OTPP_BUSY 0x80000000
-#define BCMA_CC_OTPL 0x001C /* OTP layout */
-#define BCMA_CC_OTPL_GURGN_OFFSET 0x00000FFF /* offset of general use region */
-#define BCMA_CC_IRQSTAT 0x0020
-#define BCMA_CC_IRQMASK 0x0024
-#define BCMA_CC_IRQ_GPIO 0x00000001 /* gpio intr */
-#define BCMA_CC_IRQ_EXT 0x00000002 /* ro: ext intr pin (corerev >= 3) */
-#define BCMA_CC_IRQ_WDRESET 0x80000000 /* watchdog reset occurred */
-#define BCMA_CC_CHIPCTL 0x0028 /* Rev >= 11 only */
-#define BCMA_CC_CHIPSTAT 0x002C /* Rev >= 11 only */
-#define BCMA_CC_CHIPST_4313_SPROM_PRESENT 1
-#define BCMA_CC_CHIPST_4313_OTP_PRESENT 2
-#define BCMA_CC_CHIPST_4331_SPROM_PRESENT 2
-#define BCMA_CC_CHIPST_4331_OTP_PRESENT 4
-#define BCMA_CC_JCMD 0x0030 /* Rev >= 10 only */
-#define BCMA_CC_JCMD_START 0x80000000
-#define BCMA_CC_JCMD_BUSY 0x80000000
-#define BCMA_CC_JCMD_PAUSE 0x40000000
-#define BCMA_CC_JCMD0_ACC_MASK 0x0000F000
-#define BCMA_CC_JCMD0_ACC_IRDR 0x00000000
-#define BCMA_CC_JCMD0_ACC_DR 0x00001000
-#define BCMA_CC_JCMD0_ACC_IR 0x00002000
-#define BCMA_CC_JCMD0_ACC_RESET 0x00003000
-#define BCMA_CC_JCMD0_ACC_IRPDR 0x00004000
-#define BCMA_CC_JCMD0_ACC_PDR 0x00005000
-#define BCMA_CC_JCMD0_IRW_MASK 0x00000F00
-#define BCMA_CC_JCMD_ACC_MASK 0x000F0000 /* Changes for corerev 11 */
-#define BCMA_CC_JCMD_ACC_IRDR 0x00000000
-#define BCMA_CC_JCMD_ACC_DR 0x00010000
-#define BCMA_CC_JCMD_ACC_IR 0x00020000
-#define BCMA_CC_JCMD_ACC_RESET 0x00030000
-#define BCMA_CC_JCMD_ACC_IRPDR 0x00040000
-#define BCMA_CC_JCMD_ACC_PDR 0x00050000
-#define BCMA_CC_JCMD_IRW_MASK 0x00001F00
-#define BCMA_CC_JCMD_IRW_SHIFT 8
-#define BCMA_CC_JCMD_DRW_MASK 0x0000003F
-#define BCMA_CC_JIR 0x0034 /* Rev >= 10 only */
-#define BCMA_CC_JDR 0x0038 /* Rev >= 10 only */
-#define BCMA_CC_JCTL 0x003C /* Rev >= 10 only */
-#define BCMA_CC_JCTL_FORCE_CLK 4 /* Force clock */
-#define BCMA_CC_JCTL_EXT_EN 2 /* Enable external targets */
-#define BCMA_CC_JCTL_EN 1 /* Enable Jtag master */
-#define BCMA_CC_FLASHCTL 0x0040
-#define BCMA_CC_FLASHCTL_START 0x80000000
-#define BCMA_CC_FLASHCTL_BUSY BCMA_CC_FLASHCTL_START
-#define BCMA_CC_FLASHADDR 0x0044
-#define BCMA_CC_FLASHDATA 0x0048
-#define BCMA_CC_BCAST_ADDR 0x0050
-#define BCMA_CC_BCAST_DATA 0x0054
-#define BCMA_CC_GPIOPULLUP 0x0058 /* Rev >= 20 only */
-#define BCMA_CC_GPIOPULLDOWN 0x005C /* Rev >= 20 only */
-#define BCMA_CC_GPIOIN 0x0060
-#define BCMA_CC_GPIOOUT 0x0064
-#define BCMA_CC_GPIOOUTEN 0x0068
-#define BCMA_CC_GPIOCTL 0x006C
-#define BCMA_CC_GPIOPOL 0x0070
-#define BCMA_CC_GPIOIRQ 0x0074
-#define BCMA_CC_WATCHDOG 0x0080
-#define BCMA_CC_GPIOTIMER 0x0088 /* LED powersave (corerev >= 16) */
-#define BCMA_CC_GPIOTIMER_OFFTIME 0x0000FFFF
-#define BCMA_CC_GPIOTIMER_OFFTIME_SHIFT 0
-#define BCMA_CC_GPIOTIMER_ONTIME 0xFFFF0000
-#define BCMA_CC_GPIOTIMER_ONTIME_SHIFT 16
-#define BCMA_CC_GPIOTOUTM 0x008C /* LED powersave (corerev >= 16) */
-#define BCMA_CC_CLOCK_N 0x0090
-#define BCMA_CC_CLOCK_SB 0x0094
-#define BCMA_CC_CLOCK_PCI 0x0098
-#define BCMA_CC_CLOCK_M2 0x009C
-#define BCMA_CC_CLOCK_MIPS 0x00A0
-#define BCMA_CC_CLKDIV 0x00A4 /* Rev >= 3 only */
-#define BCMA_CC_CLKDIV_SFLASH 0x0F000000
-#define BCMA_CC_CLKDIV_SFLASH_SHIFT 24
-#define BCMA_CC_CLKDIV_OTP 0x000F0000
-#define BCMA_CC_CLKDIV_OTP_SHIFT 16
-#define BCMA_CC_CLKDIV_JTAG 0x00000F00
-#define BCMA_CC_CLKDIV_JTAG_SHIFT 8
-#define BCMA_CC_CLKDIV_UART 0x000000FF
-#define BCMA_CC_CAP_EXT 0x00AC /* Capabilities */
-#define BCMA_CC_PLLONDELAY 0x00B0 /* Rev >= 4 only */
-#define BCMA_CC_FREFSELDELAY 0x00B4 /* Rev >= 4 only */
-#define BCMA_CC_SLOWCLKCTL 0x00B8 /* 6 <= Rev <= 9 only */
-#define BCMA_CC_SLOWCLKCTL_SRC 0x00000007 /* slow clock source mask */
-#define BCMA_CC_SLOWCLKCTL_SRC_LPO 0x00000000 /* source of slow clock is LPO */
-#define BCMA_CC_SLOWCLKCTL_SRC_XTAL 0x00000001 /* source of slow clock is crystal */
-#define BCMA_CC_SLOECLKCTL_SRC_PCI 0x00000002 /* source of slow clock is PCI */
-#define BCMA_CC_SLOWCLKCTL_LPOFREQ 0x00000200 /* LPOFreqSel, 1: 160Khz, 0: 32KHz */
-#define BCMA_CC_SLOWCLKCTL_LPOPD 0x00000400 /* LPOPowerDown, 1: LPO is disabled, 0: LPO is enabled */
-#define BCMA_CC_SLOWCLKCTL_FSLOW 0x00000800 /* ForceSlowClk, 1: sb/cores running on slow clock, 0: power logic control */
-#define BCMA_CC_SLOWCLKCTL_IPLL 0x00001000 /* IgnorePllOffReq, 1/0: power logic ignores/honors PLL clock disable requests from core */
-#define BCMA_CC_SLOWCLKCTL_ENXTAL 0x00002000 /* XtalControlEn, 1/0: power logic does/doesn't disable crystal when appropriate */
-#define BCMA_CC_SLOWCLKCTL_XTALPU 0x00004000 /* XtalPU (RO), 1/0: crystal running/disabled */
-#define BCMA_CC_SLOWCLKCTL_CLKDIV 0xFFFF0000 /* ClockDivider (SlowClk = 1/(4+divisor)) */
-#define BCMA_CC_SLOWCLKCTL_CLKDIV_SHIFT 16
-#define BCMA_CC_SYSCLKCTL 0x00C0 /* Rev >= 3 only */
-#define BCMA_CC_SYSCLKCTL_IDLPEN 0x00000001 /* ILPen: Enable Idle Low Power */
-#define BCMA_CC_SYSCLKCTL_ALPEN 0x00000002 /* ALPen: Enable Active Low Power */
-#define BCMA_CC_SYSCLKCTL_PLLEN 0x00000004 /* ForcePLLOn */
-#define BCMA_CC_SYSCLKCTL_FORCEALP 0x00000008 /* Force ALP (or HT if ALPen is not set */
-#define BCMA_CC_SYSCLKCTL_FORCEHT 0x00000010 /* Force HT */
-#define BCMA_CC_SYSCLKCTL_CLKDIV 0xFFFF0000 /* ClkDiv (ILP = 1/(4+divisor)) */
-#define BCMA_CC_SYSCLKCTL_CLKDIV_SHIFT 16
-#define BCMA_CC_CLKSTSTR 0x00C4 /* Rev >= 3 only */
-#define BCMA_CC_EROM 0x00FC
-#define BCMA_CC_PCMCIA_CFG 0x0100
-#define BCMA_CC_PCMCIA_MEMWAIT 0x0104
-#define BCMA_CC_PCMCIA_ATTRWAIT 0x0108
-#define BCMA_CC_PCMCIA_IOWAIT 0x010C
-#define BCMA_CC_IDE_CFG 0x0110
-#define BCMA_CC_IDE_MEMWAIT 0x0114
-#define BCMA_CC_IDE_ATTRWAIT 0x0118
-#define BCMA_CC_IDE_IOWAIT 0x011C
-#define BCMA_CC_PROG_CFG 0x0120
-#define BCMA_CC_PROG_WAITCNT 0x0124
-#define BCMA_CC_FLASH_CFG 0x0128
-#define BCMA_CC_FLASH_CFG_DS 0x0010 /* Data size, 0=8bit, 1=16bit */
-#define BCMA_CC_FLASH_WAITCNT 0x012C
-#define BCMA_CC_SROM_CONTROL 0x0190
-#define BCMA_CC_SROM_CONTROL_START 0x80000000
-#define BCMA_CC_SROM_CONTROL_BUSY 0x80000000
-#define BCMA_CC_SROM_CONTROL_OPCODE 0x60000000
-#define BCMA_CC_SROM_CONTROL_OP_READ 0x00000000
-#define BCMA_CC_SROM_CONTROL_OP_WRITE 0x20000000
-#define BCMA_CC_SROM_CONTROL_OP_WRDIS 0x40000000
-#define BCMA_CC_SROM_CONTROL_OP_WREN 0x60000000
-#define BCMA_CC_SROM_CONTROL_OTPSEL 0x00000010
-#define BCMA_CC_SROM_CONTROL_LOCK 0x00000008
-#define BCMA_CC_SROM_CONTROL_SIZE_MASK 0x00000006
-#define BCMA_CC_SROM_CONTROL_SIZE_1K 0x00000000
-#define BCMA_CC_SROM_CONTROL_SIZE_4K 0x00000002
-#define BCMA_CC_SROM_CONTROL_SIZE_16K 0x00000004
-#define BCMA_CC_SROM_CONTROL_SIZE_SHIFT 1
-#define BCMA_CC_SROM_CONTROL_PRESENT 0x00000001
-/* 0x1E0 is defined as shared BCMA_CLKCTLST */
-#define BCMA_CC_HW_WORKAROUND 0x01E4 /* Hardware workaround (rev >= 20) */
-#define BCMA_CC_UART0_DATA 0x0300
-#define BCMA_CC_UART0_IMR 0x0304
-#define BCMA_CC_UART0_FCR 0x0308
-#define BCMA_CC_UART0_LCR 0x030C
-#define BCMA_CC_UART0_MCR 0x0310
-#define BCMA_CC_UART0_LSR 0x0314
-#define BCMA_CC_UART0_MSR 0x0318
-#define BCMA_CC_UART0_SCRATCH 0x031C
-#define BCMA_CC_UART1_DATA 0x0400
-#define BCMA_CC_UART1_IMR 0x0404
-#define BCMA_CC_UART1_FCR 0x0408
-#define BCMA_CC_UART1_LCR 0x040C
-#define BCMA_CC_UART1_MCR 0x0410
-#define BCMA_CC_UART1_LSR 0x0414
-#define BCMA_CC_UART1_MSR 0x0418
-#define BCMA_CC_UART1_SCRATCH 0x041C
-/* PMU registers (rev >= 20) */
-#define BCMA_CC_PMU_CTL 0x0600 /* PMU control */
-#define BCMA_CC_PMU_CTL_ILP_DIV 0xFFFF0000 /* ILP div mask */
-#define BCMA_CC_PMU_CTL_ILP_DIV_SHIFT 16
-#define BCMA_CC_PMU_CTL_PLL_UPD 0x00000400
-#define BCMA_CC_PMU_CTL_NOILPONW 0x00000200 /* No ILP on wait */
-#define BCMA_CC_PMU_CTL_HTREQEN 0x00000100 /* HT req enable */
-#define BCMA_CC_PMU_CTL_ALPREQEN 0x00000080 /* ALP req enable */
-#define BCMA_CC_PMU_CTL_XTALFREQ 0x0000007C /* Crystal freq */
-#define BCMA_CC_PMU_CTL_XTALFREQ_SHIFT 2
-#define BCMA_CC_PMU_CTL_ILPDIVEN 0x00000002 /* ILP div enable */
-#define BCMA_CC_PMU_CTL_LPOSEL 0x00000001 /* LPO sel */
-#define BCMA_CC_PMU_CAP 0x0604 /* PMU capabilities */
-#define BCMA_CC_PMU_CAP_REVISION 0x000000FF /* Revision mask */
-#define BCMA_CC_PMU_STAT 0x0608 /* PMU status */
-#define BCMA_CC_PMU_STAT_INTPEND 0x00000040 /* Interrupt pending */
-#define BCMA_CC_PMU_STAT_SBCLKST 0x00000030 /* Backplane clock status? */
-#define BCMA_CC_PMU_STAT_HAVEALP 0x00000008 /* ALP available */
-#define BCMA_CC_PMU_STAT_HAVEHT 0x00000004 /* HT available */
-#define BCMA_CC_PMU_STAT_RESINIT 0x00000003 /* Res init */
-#define BCMA_CC_PMU_RES_STAT 0x060C /* PMU res status */
-#define BCMA_CC_PMU_RES_PEND 0x0610 /* PMU res pending */
-#define BCMA_CC_PMU_TIMER 0x0614 /* PMU timer */
-#define BCMA_CC_PMU_MINRES_MSK 0x0618 /* PMU min res mask */
-#define BCMA_CC_PMU_MAXRES_MSK 0x061C /* PMU max res mask */
-#define BCMA_CC_PMU_RES_TABSEL 0x0620 /* PMU res table sel */
-#define BCMA_CC_PMU_RES_DEPMSK 0x0624 /* PMU res dep mask */
-#define BCMA_CC_PMU_RES_UPDNTM 0x0628 /* PMU res updown timer */
-#define BCMA_CC_PMU_RES_TIMER 0x062C /* PMU res timer */
-#define BCMA_CC_PMU_CLKSTRETCH 0x0630 /* PMU clockstretch */
-#define BCMA_CC_PMU_WATCHDOG 0x0634 /* PMU watchdog */
-#define BCMA_CC_PMU_RES_REQTS 0x0640 /* PMU res req timer sel */
-#define BCMA_CC_PMU_RES_REQT 0x0644 /* PMU res req timer */
-#define BCMA_CC_PMU_RES_REQM 0x0648 /* PMU res req mask */
-#define BCMA_CC_CHIPCTL_ADDR 0x0650
-#define BCMA_CC_CHIPCTL_DATA 0x0654
-#define BCMA_CC_REGCTL_ADDR 0x0658
-#define BCMA_CC_REGCTL_DATA 0x065C
-#define BCMA_CC_PLLCTL_ADDR 0x0660
-#define BCMA_CC_PLLCTL_DATA 0x0664
-#define BCMA_CC_SPROM 0x0800 /* SPROM beginning */
-
-/* Divider allocation in 4716/47162/5356 */
-#define BCMA_CC_PMU5_MAINPLL_CPU 1
-#define BCMA_CC_PMU5_MAINPLL_MEM 2
-#define BCMA_CC_PMU5_MAINPLL_SSB 3
-
-/* PLL usage in 4716/47162 */
-#define BCMA_CC_PMU4716_MAINPLL_PLL0 12
-
-/* PLL usage in 5356/5357 */
-#define BCMA_CC_PMU5356_MAINPLL_PLL0 0
-#define BCMA_CC_PMU5357_MAINPLL_PLL0 0
-
-/* 4706 PMU */
-#define BCMA_CC_PMU4706_MAINPLL_PLL0 0
-
-/* ALP clock on pre-PMU chips */
-#define BCMA_CC_PMU_ALP_CLOCK 20000000
-/* HT clock for systems with PMU-enabled chipcommon */
-#define BCMA_CC_PMU_HT_CLOCK 80000000
-
-/* PMU rev 5 (& 6) */
-#define BCMA_CC_PPL_P1P2_OFF 0
-#define BCMA_CC_PPL_P1_MASK 0x0f000000
-#define BCMA_CC_PPL_P1_SHIFT 24
-#define BCMA_CC_PPL_P2_MASK 0x00f00000
-#define BCMA_CC_PPL_P2_SHIFT 20
-#define BCMA_CC_PPL_M14_OFF 1
-#define BCMA_CC_PPL_MDIV_MASK 0x000000ff
-#define BCMA_CC_PPL_MDIV_WIDTH 8
-#define BCMA_CC_PPL_NM5_OFF 2
-#define BCMA_CC_PPL_NDIV_MASK 0xfff00000
-#define BCMA_CC_PPL_NDIV_SHIFT 20
-#define BCMA_CC_PPL_FMAB_OFF 3
-#define BCMA_CC_PPL_MRAT_MASK 0xf0000000
-#define BCMA_CC_PPL_MRAT_SHIFT 28
-#define BCMA_CC_PPL_ABRAT_MASK 0x08000000
-#define BCMA_CC_PPL_ABRAT_SHIFT 27
-#define BCMA_CC_PPL_FDIV_MASK 0x07ffffff
-#define BCMA_CC_PPL_PLLCTL_OFF 4
-#define BCMA_CC_PPL_PCHI_OFF 5
-#define BCMA_CC_PPL_PCHI_MASK 0x0000003f
-
-/* BCM4331 ChipControl numbers. */
-#define BCMA_CHIPCTL_4331_BT_COEXIST BIT(0) /* 0 disable */
-#define BCMA_CHIPCTL_4331_SECI BIT(1) /* 0 SECI is disabled (JATG functional) */
-#define BCMA_CHIPCTL_4331_EXT_LNA BIT(2) /* 0 disable */
-#define BCMA_CHIPCTL_4331_SPROM_GPIO13_15 BIT(3) /* sprom/gpio13-15 mux */
-#define BCMA_CHIPCTL_4331_EXTPA_EN BIT(4) /* 0 ext pa disable, 1 ext pa enabled */
-#define BCMA_CHIPCTL_4331_GPIOCLK_ON_SPROMCS BIT(5) /* set drive out GPIO_CLK on sprom_cs pin */
-#define BCMA_CHIPCTL_4331_PCIE_MDIO_ON_SPROMCS BIT(6) /* use sprom_cs pin as PCIE mdio interface */
-#define BCMA_CHIPCTL_4331_EXTPA_ON_GPIO2_5 BIT(7) /* aband extpa will be at gpio2/5 and sprom_dout */
-#define BCMA_CHIPCTL_4331_OVR_PIPEAUXCLKEN BIT(8) /* override core control on pipe_AuxClkEnable */
-#define BCMA_CHIPCTL_4331_OVR_PIPEAUXPWRDOWN BIT(9) /* override core control on pipe_AuxPowerDown */
-#define BCMA_CHIPCTL_4331_PCIE_AUXCLKEN BIT(10) /* pcie_auxclkenable */
-#define BCMA_CHIPCTL_4331_PCIE_PIPE_PLLDOWN BIT(11) /* pcie_pipe_pllpowerdown */
-#define BCMA_CHIPCTL_4331_BT_SHD0_ON_GPIO4 BIT(16) /* enable bt_shd0 at gpio4 */
-#define BCMA_CHIPCTL_4331_BT_SHD1_ON_GPIO5 BIT(17) /* enable bt_shd1 at gpio5 */
-
-/* Data for the PMU, if available.
- * Check availability with ((struct bcma_chipcommon)->capabilities & BCMA_CC_CAP_PMU)
- */
-struct bcma_chipcommon_pmu {
- u8 rev; /* PMU revision */
- u32 crystalfreq; /* The active crystal frequency (in kHz) */
-};
-
-#ifdef CONFIG_BCMA_DRIVER_MIPS
-struct bcma_pflash {
- u8 buswidth;
- u32 window;
- u32 window_size;
-};
-
-struct bcma_serial_port {
- void *regs;
- unsigned long clockspeed;
- unsigned int irq;
- unsigned int baud_base;
- unsigned int reg_shift;
-};
-#endif /* CONFIG_BCMA_DRIVER_MIPS */
-
-struct bcma_drv_cc {
- struct bcma_device *core;
- u32 status;
- u32 capabilities;
- u32 capabilities_ext;
- u8 setup_done:1;
- /* Fast Powerup Delay constant */
- u16 fast_pwrup_delay;
- struct bcma_chipcommon_pmu pmu;
-#ifdef CONFIG_BCMA_DRIVER_MIPS
- struct bcma_pflash pflash;
-
- int nr_serial_ports;
- struct bcma_serial_port serial_ports[4];
-#endif /* CONFIG_BCMA_DRIVER_MIPS */
-};
-
-/* Register access */
-#define bcma_cc_read32(cc, offset) \
- bcma_read32((cc)->core, offset)
-#define bcma_cc_write32(cc, offset, val) \
- bcma_write32((cc)->core, offset, val)
-
-#define bcma_cc_mask32(cc, offset, mask) \
- bcma_cc_write32(cc, offset, bcma_cc_read32(cc, offset) & (mask))
-#define bcma_cc_set32(cc, offset, set) \
- bcma_cc_write32(cc, offset, bcma_cc_read32(cc, offset) | (set))
-#define bcma_cc_maskset32(cc, offset, mask, set) \
- bcma_cc_write32(cc, offset, (bcma_cc_read32(cc, offset) & (mask)) | (set))
-
-extern void bcma_core_chipcommon_init(struct bcma_drv_cc *cc);
-
-extern void bcma_chipco_suspend(struct bcma_drv_cc *cc);
-extern void bcma_chipco_resume(struct bcma_drv_cc *cc);
-
-void bcma_chipco_bcm4331_ext_pa_lines_ctl(struct bcma_drv_cc *cc, bool enable);
-
-extern void bcma_chipco_watchdog_timer_set(struct bcma_drv_cc *cc,
- u32 ticks);
-
-void bcma_chipco_irq_mask(struct bcma_drv_cc *cc, u32 mask, u32 value);
-
-u32 bcma_chipco_irq_status(struct bcma_drv_cc *cc, u32 mask);
-
-/* Chipcommon GPIO pin access. */
-u32 bcma_chipco_gpio_in(struct bcma_drv_cc *cc, u32 mask);
-u32 bcma_chipco_gpio_out(struct bcma_drv_cc *cc, u32 mask, u32 value);
-u32 bcma_chipco_gpio_outen(struct bcma_drv_cc *cc, u32 mask, u32 value);
-u32 bcma_chipco_gpio_control(struct bcma_drv_cc *cc, u32 mask, u32 value);
-u32 bcma_chipco_gpio_intmask(struct bcma_drv_cc *cc, u32 mask, u32 value);
-u32 bcma_chipco_gpio_polarity(struct bcma_drv_cc *cc, u32 mask, u32 value);
-
-/* PMU support */
-extern void bcma_pmu_init(struct bcma_drv_cc *cc);
-
-extern void bcma_chipco_pll_write(struct bcma_drv_cc *cc, u32 offset,
- u32 value);
-extern void bcma_chipco_pll_maskset(struct bcma_drv_cc *cc, u32 offset,
- u32 mask, u32 set);
-extern void bcma_chipco_chipctl_maskset(struct bcma_drv_cc *cc,
- u32 offset, u32 mask, u32 set);
-extern void bcma_chipco_regctl_maskset(struct bcma_drv_cc *cc,
- u32 offset, u32 mask, u32 set);
-
-#endif /* LINUX_BCMA_DRIVER_CC_H_ */
diff --git a/ANDROID_3.4.5/include/linux/bcma/bcma_driver_mips.h b/ANDROID_3.4.5/include/linux/bcma/bcma_driver_mips.h
deleted file mode 100644
index c0043645..00000000
--- a/ANDROID_3.4.5/include/linux/bcma/bcma_driver_mips.h
+++ /dev/null
@@ -1,51 +0,0 @@
-#ifndef LINUX_BCMA_DRIVER_MIPS_H_
-#define LINUX_BCMA_DRIVER_MIPS_H_
-
-#define BCMA_MIPS_IPSFLAG 0x0F08
-/* which sbflags get routed to mips interrupt 1 */
-#define BCMA_MIPS_IPSFLAG_IRQ1 0x0000003F
-#define BCMA_MIPS_IPSFLAG_IRQ1_SHIFT 0
-/* which sbflags get routed to mips interrupt 2 */
-#define BCMA_MIPS_IPSFLAG_IRQ2 0x00003F00
-#define BCMA_MIPS_IPSFLAG_IRQ2_SHIFT 8
-/* which sbflags get routed to mips interrupt 3 */
-#define BCMA_MIPS_IPSFLAG_IRQ3 0x003F0000
-#define BCMA_MIPS_IPSFLAG_IRQ3_SHIFT 16
-/* which sbflags get routed to mips interrupt 4 */
-#define BCMA_MIPS_IPSFLAG_IRQ4 0x3F000000
-#define BCMA_MIPS_IPSFLAG_IRQ4_SHIFT 24
-
-/* MIPS 74K core registers */
-#define BCMA_MIPS_MIPS74K_CORECTL 0x0000
-#define BCMA_MIPS_MIPS74K_EXCEPTBASE 0x0004
-#define BCMA_MIPS_MIPS74K_BIST 0x000C
-#define BCMA_MIPS_MIPS74K_INTMASK_INT0 0x0014
-#define BCMA_MIPS_MIPS74K_INTMASK(int) \
- ((int) * 4 + BCMA_MIPS_MIPS74K_INTMASK_INT0)
-#define BCMA_MIPS_MIPS74K_NMIMASK 0x002C
-#define BCMA_MIPS_MIPS74K_GPIOSEL 0x0040
-#define BCMA_MIPS_MIPS74K_GPIOOUT 0x0044
-#define BCMA_MIPS_MIPS74K_GPIOEN 0x0048
-#define BCMA_MIPS_MIPS74K_CLKCTLST 0x01E0
-
-#define BCMA_MIPS_OOBSELOUTA30 0x100
-
-struct bcma_device;
-
-struct bcma_drv_mips {
- struct bcma_device *core;
- u8 setup_done:1;
- unsigned int assigned_irqs;
-};
-
-#ifdef CONFIG_BCMA_DRIVER_MIPS
-extern void bcma_core_mips_init(struct bcma_drv_mips *mcore);
-#else
-static inline void bcma_core_mips_init(struct bcma_drv_mips *mcore) { }
-#endif
-
-extern u32 bcma_cpu_clock(struct bcma_drv_mips *mcore);
-
-extern unsigned int bcma_core_mips_irq(struct bcma_device *dev);
-
-#endif /* LINUX_BCMA_DRIVER_MIPS_H_ */
diff --git a/ANDROID_3.4.5/include/linux/bcma/bcma_driver_pci.h b/ANDROID_3.4.5/include/linux/bcma/bcma_driver_pci.h
deleted file mode 100644
index 46c71e27..00000000
--- a/ANDROID_3.4.5/include/linux/bcma/bcma_driver_pci.h
+++ /dev/null
@@ -1,214 +0,0 @@
-#ifndef LINUX_BCMA_DRIVER_PCI_H_
-#define LINUX_BCMA_DRIVER_PCI_H_
-
-#include <linux/types.h>
-
-struct pci_dev;
-
-/** PCI core registers. **/
-#define BCMA_CORE_PCI_CTL 0x0000 /* PCI Control */
-#define BCMA_CORE_PCI_CTL_RST_OE 0x00000001 /* PCI_RESET Output Enable */
-#define BCMA_CORE_PCI_CTL_RST 0x00000002 /* PCI_RESET driven out to pin */
-#define BCMA_CORE_PCI_CTL_CLK_OE 0x00000004 /* Clock gate Output Enable */
-#define BCMA_CORE_PCI_CTL_CLK 0x00000008 /* Gate for clock driven out to pin */
-#define BCMA_CORE_PCI_ARBCTL 0x0010 /* PCI Arbiter Control */
-#define BCMA_CORE_PCI_ARBCTL_INTERN 0x00000001 /* Use internal arbiter */
-#define BCMA_CORE_PCI_ARBCTL_EXTERN 0x00000002 /* Use external arbiter */
-#define BCMA_CORE_PCI_ARBCTL_PARKID 0x00000006 /* Mask, selects which agent is parked on an idle bus */
-#define BCMA_CORE_PCI_ARBCTL_PARKID_LAST 0x00000000 /* Last requestor */
-#define BCMA_CORE_PCI_ARBCTL_PARKID_4710 0x00000002 /* 4710 */
-#define BCMA_CORE_PCI_ARBCTL_PARKID_EXT0 0x00000004 /* External requestor 0 */
-#define BCMA_CORE_PCI_ARBCTL_PARKID_EXT1 0x00000006 /* External requestor 1 */
-#define BCMA_CORE_PCI_ISTAT 0x0020 /* Interrupt status */
-#define BCMA_CORE_PCI_ISTAT_INTA 0x00000001 /* PCI INTA# */
-#define BCMA_CORE_PCI_ISTAT_INTB 0x00000002 /* PCI INTB# */
-#define BCMA_CORE_PCI_ISTAT_SERR 0x00000004 /* PCI SERR# (write to clear) */
-#define BCMA_CORE_PCI_ISTAT_PERR 0x00000008 /* PCI PERR# (write to clear) */
-#define BCMA_CORE_PCI_ISTAT_PME 0x00000010 /* PCI PME# */
-#define BCMA_CORE_PCI_IMASK 0x0024 /* Interrupt mask */
-#define BCMA_CORE_PCI_IMASK_INTA 0x00000001 /* PCI INTA# */
-#define BCMA_CORE_PCI_IMASK_INTB 0x00000002 /* PCI INTB# */
-#define BCMA_CORE_PCI_IMASK_SERR 0x00000004 /* PCI SERR# */
-#define BCMA_CORE_PCI_IMASK_PERR 0x00000008 /* PCI PERR# */
-#define BCMA_CORE_PCI_IMASK_PME 0x00000010 /* PCI PME# */
-#define BCMA_CORE_PCI_MBOX 0x0028 /* Backplane to PCI Mailbox */
-#define BCMA_CORE_PCI_MBOX_F0_0 0x00000100 /* PCI function 0, INT 0 */
-#define BCMA_CORE_PCI_MBOX_F0_1 0x00000200 /* PCI function 0, INT 1 */
-#define BCMA_CORE_PCI_MBOX_F1_0 0x00000400 /* PCI function 1, INT 0 */
-#define BCMA_CORE_PCI_MBOX_F1_1 0x00000800 /* PCI function 1, INT 1 */
-#define BCMA_CORE_PCI_MBOX_F2_0 0x00001000 /* PCI function 2, INT 0 */
-#define BCMA_CORE_PCI_MBOX_F2_1 0x00002000 /* PCI function 2, INT 1 */
-#define BCMA_CORE_PCI_MBOX_F3_0 0x00004000 /* PCI function 3, INT 0 */
-#define BCMA_CORE_PCI_MBOX_F3_1 0x00008000 /* PCI function 3, INT 1 */
-#define BCMA_CORE_PCI_BCAST_ADDR 0x0050 /* Backplane Broadcast Address */
-#define BCMA_CORE_PCI_BCAST_ADDR_MASK 0x000000FF
-#define BCMA_CORE_PCI_BCAST_DATA 0x0054 /* Backplane Broadcast Data */
-#define BCMA_CORE_PCI_GPIO_IN 0x0060 /* rev >= 2 only */
-#define BCMA_CORE_PCI_GPIO_OUT 0x0064 /* rev >= 2 only */
-#define BCMA_CORE_PCI_GPIO_ENABLE 0x0068 /* rev >= 2 only */
-#define BCMA_CORE_PCI_GPIO_CTL 0x006C /* rev >= 2 only */
-#define BCMA_CORE_PCI_SBTOPCI0 0x0100 /* Backplane to PCI translation 0 (sbtopci0) */
-#define BCMA_CORE_PCI_SBTOPCI0_MASK 0xFC000000
-#define BCMA_CORE_PCI_SBTOPCI1 0x0104 /* Backplane to PCI translation 1 (sbtopci1) */
-#define BCMA_CORE_PCI_SBTOPCI1_MASK 0xFC000000
-#define BCMA_CORE_PCI_SBTOPCI2 0x0108 /* Backplane to PCI translation 2 (sbtopci2) */
-#define BCMA_CORE_PCI_SBTOPCI2_MASK 0xC0000000
-#define BCMA_CORE_PCI_CONFIG_ADDR 0x0120 /* pcie config space access */
-#define BCMA_CORE_PCI_CONFIG_DATA 0x0124 /* pcie config space access */
-#define BCMA_CORE_PCI_MDIO_CONTROL 0x0128 /* controls the mdio access */
-#define BCMA_CORE_PCI_MDIOCTL_DIVISOR_MASK 0x7f /* clock to be used on MDIO */
-#define BCMA_CORE_PCI_MDIOCTL_DIVISOR_VAL 0x2
-#define BCMA_CORE_PCI_MDIOCTL_PREAM_EN 0x80 /* Enable preamble sequnce */
-#define BCMA_CORE_PCI_MDIOCTL_ACCESS_DONE 0x100 /* Tranaction complete */
-#define BCMA_CORE_PCI_MDIO_DATA 0x012c /* Data to the mdio access */
-#define BCMA_CORE_PCI_MDIODATA_MASK 0x0000ffff /* data 2 bytes */
-#define BCMA_CORE_PCI_MDIODATA_TA 0x00020000 /* Turnaround */
-#define BCMA_CORE_PCI_MDIODATA_REGADDR_SHF_OLD 18 /* Regaddr shift (rev < 10) */
-#define BCMA_CORE_PCI_MDIODATA_REGADDR_MASK_OLD 0x003c0000 /* Regaddr Mask (rev < 10) */
-#define BCMA_CORE_PCI_MDIODATA_DEVADDR_SHF_OLD 22 /* Physmedia devaddr shift (rev < 10) */
-#define BCMA_CORE_PCI_MDIODATA_DEVADDR_MASK_OLD 0x0fc00000 /* Physmedia devaddr Mask (rev < 10) */
-#define BCMA_CORE_PCI_MDIODATA_REGADDR_SHF 18 /* Regaddr shift */
-#define BCMA_CORE_PCI_MDIODATA_REGADDR_MASK 0x007c0000 /* Regaddr Mask */
-#define BCMA_CORE_PCI_MDIODATA_DEVADDR_SHF 23 /* Physmedia devaddr shift */
-#define BCMA_CORE_PCI_MDIODATA_DEVADDR_MASK 0x0f800000 /* Physmedia devaddr Mask */
-#define BCMA_CORE_PCI_MDIODATA_WRITE 0x10000000 /* write Transaction */
-#define BCMA_CORE_PCI_MDIODATA_READ 0x20000000 /* Read Transaction */
-#define BCMA_CORE_PCI_MDIODATA_START 0x40000000 /* start of Transaction */
-#define BCMA_CORE_PCI_MDIODATA_DEV_ADDR 0x0 /* dev address for serdes */
-#define BCMA_CORE_PCI_MDIODATA_BLK_ADDR 0x1F /* blk address for serdes */
-#define BCMA_CORE_PCI_MDIODATA_DEV_PLL 0x1d /* SERDES PLL Dev */
-#define BCMA_CORE_PCI_MDIODATA_DEV_TX 0x1e /* SERDES TX Dev */
-#define BCMA_CORE_PCI_MDIODATA_DEV_RX 0x1f /* SERDES RX Dev */
-#define BCMA_CORE_PCI_PCIEIND_ADDR 0x0130 /* indirect access to the internal register */
-#define BCMA_CORE_PCI_PCIEIND_DATA 0x0134 /* Data to/from the internal regsiter */
-#define BCMA_CORE_PCI_CLKREQENCTRL 0x0138 /* >= rev 6, Clkreq rdma control */
-#define BCMA_CORE_PCI_PCICFG0 0x0400 /* PCI config space 0 (rev >= 8) */
-#define BCMA_CORE_PCI_PCICFG1 0x0500 /* PCI config space 1 (rev >= 8) */
-#define BCMA_CORE_PCI_PCICFG2 0x0600 /* PCI config space 2 (rev >= 8) */
-#define BCMA_CORE_PCI_PCICFG3 0x0700 /* PCI config space 3 (rev >= 8) */
-#define BCMA_CORE_PCI_SPROM(wordoffset) (0x0800 + ((wordoffset) * 2)) /* SPROM shadow area (72 bytes) */
-
-/* SBtoPCIx */
-#define BCMA_CORE_PCI_SBTOPCI_MEM 0x00000000
-#define BCMA_CORE_PCI_SBTOPCI_IO 0x00000001
-#define BCMA_CORE_PCI_SBTOPCI_CFG0 0x00000002
-#define BCMA_CORE_PCI_SBTOPCI_CFG1 0x00000003
-#define BCMA_CORE_PCI_SBTOPCI_PREF 0x00000004 /* Prefetch enable */
-#define BCMA_CORE_PCI_SBTOPCI_BURST 0x00000008 /* Burst enable */
-#define BCMA_CORE_PCI_SBTOPCI_MRM 0x00000020 /* Memory Read Multiple */
-#define BCMA_CORE_PCI_SBTOPCI_RC 0x00000030 /* Read Command mask (rev >= 11) */
-#define BCMA_CORE_PCI_SBTOPCI_RC_READ 0x00000000 /* Memory read */
-#define BCMA_CORE_PCI_SBTOPCI_RC_READL 0x00000010 /* Memory read line */
-#define BCMA_CORE_PCI_SBTOPCI_RC_READM 0x00000020 /* Memory read multiple */
-
-/* PCIE protocol PHY diagnostic registers */
-#define BCMA_CORE_PCI_PLP_MODEREG 0x200 /* Mode */
-#define BCMA_CORE_PCI_PLP_STATUSREG 0x204 /* Status */
-#define BCMA_CORE_PCI_PLP_POLARITYINV_STAT 0x10 /* Status reg PCIE_PLP_STATUSREG */
-#define BCMA_CORE_PCI_PLP_LTSSMCTRLREG 0x208 /* LTSSM control */
-#define BCMA_CORE_PCI_PLP_LTLINKNUMREG 0x20c /* Link Training Link number */
-#define BCMA_CORE_PCI_PLP_LTLANENUMREG 0x210 /* Link Training Lane number */
-#define BCMA_CORE_PCI_PLP_LTNFTSREG 0x214 /* Link Training N_FTS */
-#define BCMA_CORE_PCI_PLP_ATTNREG 0x218 /* Attention */
-#define BCMA_CORE_PCI_PLP_ATTNMASKREG 0x21C /* Attention Mask */
-#define BCMA_CORE_PCI_PLP_RXERRCTR 0x220 /* Rx Error */
-#define BCMA_CORE_PCI_PLP_RXFRMERRCTR 0x224 /* Rx Framing Error */
-#define BCMA_CORE_PCI_PLP_RXERRTHRESHREG 0x228 /* Rx Error threshold */
-#define BCMA_CORE_PCI_PLP_TESTCTRLREG 0x22C /* Test Control reg */
-#define BCMA_CORE_PCI_PLP_SERDESCTRLOVRDREG 0x230 /* SERDES Control Override */
-#define BCMA_CORE_PCI_PLP_TIMINGOVRDREG 0x234 /* Timing param override */
-#define BCMA_CORE_PCI_PLP_RXTXSMDIAGREG 0x238 /* RXTX State Machine Diag */
-#define BCMA_CORE_PCI_PLP_LTSSMDIAGREG 0x23C /* LTSSM State Machine Diag */
-
-/* PCIE protocol DLLP diagnostic registers */
-#define BCMA_CORE_PCI_DLLP_LCREG 0x100 /* Link Control */
-#define BCMA_CORE_PCI_DLLP_LSREG 0x104 /* Link Status */
-#define BCMA_CORE_PCI_DLLP_LAREG 0x108 /* Link Attention */
-#define BCMA_CORE_PCI_DLLP_LSREG_LINKUP (1 << 16)
-#define BCMA_CORE_PCI_DLLP_LAMASKREG 0x10C /* Link Attention Mask */
-#define BCMA_CORE_PCI_DLLP_NEXTTXSEQNUMREG 0x110 /* Next Tx Seq Num */
-#define BCMA_CORE_PCI_DLLP_ACKEDTXSEQNUMREG 0x114 /* Acked Tx Seq Num */
-#define BCMA_CORE_PCI_DLLP_PURGEDTXSEQNUMREG 0x118 /* Purged Tx Seq Num */
-#define BCMA_CORE_PCI_DLLP_RXSEQNUMREG 0x11C /* Rx Sequence Number */
-#define BCMA_CORE_PCI_DLLP_LRREG 0x120 /* Link Replay */
-#define BCMA_CORE_PCI_DLLP_LACKTOREG 0x124 /* Link Ack Timeout */
-#define BCMA_CORE_PCI_DLLP_PMTHRESHREG 0x128 /* Power Management Threshold */
-#define BCMA_CORE_PCI_DLLP_RTRYWPREG 0x12C /* Retry buffer write ptr */
-#define BCMA_CORE_PCI_DLLP_RTRYRPREG 0x130 /* Retry buffer Read ptr */
-#define BCMA_CORE_PCI_DLLP_RTRYPPREG 0x134 /* Retry buffer Purged ptr */
-#define BCMA_CORE_PCI_DLLP_RTRRWREG 0x138 /* Retry buffer Read/Write */
-#define BCMA_CORE_PCI_DLLP_ECTHRESHREG 0x13C /* Error Count Threshold */
-#define BCMA_CORE_PCI_DLLP_TLPERRCTRREG 0x140 /* TLP Error Counter */
-#define BCMA_CORE_PCI_DLLP_ERRCTRREG 0x144 /* Error Counter */
-#define BCMA_CORE_PCI_DLLP_NAKRXCTRREG 0x148 /* NAK Received Counter */
-#define BCMA_CORE_PCI_DLLP_TESTREG 0x14C /* Test */
-#define BCMA_CORE_PCI_DLLP_PKTBIST 0x150 /* Packet BIST */
-#define BCMA_CORE_PCI_DLLP_PCIE11 0x154 /* DLLP PCIE 1.1 reg */
-
-/* SERDES RX registers */
-#define BCMA_CORE_PCI_SERDES_RX_CTRL 1 /* Rx cntrl */
-#define BCMA_CORE_PCI_SERDES_RX_CTRL_FORCE 0x80 /* rxpolarity_force */
-#define BCMA_CORE_PCI_SERDES_RX_CTRL_POLARITY 0x40 /* rxpolarity_value */
-#define BCMA_CORE_PCI_SERDES_RX_TIMER1 2 /* Rx Timer1 */
-#define BCMA_CORE_PCI_SERDES_RX_CDR 6 /* CDR */
-#define BCMA_CORE_PCI_SERDES_RX_CDRBW 7 /* CDR BW */
-
-/* SERDES PLL registers */
-#define BCMA_CORE_PCI_SERDES_PLL_CTRL 1 /* PLL control reg */
-#define BCMA_CORE_PCI_PLL_CTRL_FREQDET_EN 0x4000 /* bit 14 is FREQDET on */
-
-/* PCIcore specific boardflags */
-#define BCMA_CORE_PCI_BFL_NOPCI 0x00000400 /* Board leaves PCI floating */
-
-/* PCIE Config space accessing MACROS */
-#define BCMA_CORE_PCI_CFG_BUS_SHIFT 24 /* Bus shift */
-#define BCMA_CORE_PCI_CFG_SLOT_SHIFT 19 /* Slot/Device shift */
-#define BCMA_CORE_PCI_CFG_FUN_SHIFT 16 /* Function shift */
-#define BCMA_CORE_PCI_CFG_OFF_SHIFT 0 /* Register shift */
-
-#define BCMA_CORE_PCI_CFG_BUS_MASK 0xff /* Bus mask */
-#define BCMA_CORE_PCI_CFG_SLOT_MASK 0x1f /* Slot/Device mask */
-#define BCMA_CORE_PCI_CFG_FUN_MASK 7 /* Function mask */
-#define BCMA_CORE_PCI_CFG_OFF_MASK 0xfff /* Register mask */
-
-/* PCIE Root Capability Register bits (Host mode only) */
-#define BCMA_CORE_PCI_RC_CRS_VISIBILITY 0x0001
-
-struct bcma_drv_pci;
-
-#ifdef CONFIG_BCMA_DRIVER_PCI_HOSTMODE
-struct bcma_drv_pci_host {
- struct bcma_drv_pci *pdev;
-
- u32 host_cfg_addr;
- spinlock_t cfgspace_lock;
-
- struct pci_controller pci_controller;
- struct pci_ops pci_ops;
- struct resource mem_resource;
- struct resource io_resource;
-};
-#endif
-
-struct bcma_drv_pci {
- struct bcma_device *core;
- u8 setup_done:1;
- u8 hostmode:1;
-
-#ifdef CONFIG_BCMA_DRIVER_PCI_HOSTMODE
- struct bcma_drv_pci_host *host_controller;
-#endif
-};
-
-/* Register access */
-#define pcicore_read32(pc, offset) bcma_read32((pc)->core, offset)
-#define pcicore_write32(pc, offset, val) bcma_write32((pc)->core, offset, val)
-
-extern void __devinit bcma_core_pci_init(struct bcma_drv_pci *pc);
-extern int bcma_core_pci_irq_ctl(struct bcma_drv_pci *pc,
- struct bcma_device *core, bool enable);
-
-extern int bcma_core_pci_pcibios_map_irq(const struct pci_dev *dev);
-extern int bcma_core_pci_plat_dev_init(struct pci_dev *dev);
-
-#endif /* LINUX_BCMA_DRIVER_PCI_H_ */
diff --git a/ANDROID_3.4.5/include/linux/bcma/bcma_regs.h b/ANDROID_3.4.5/include/linux/bcma/bcma_regs.h
deleted file mode 100644
index 5a71d571..00000000
--- a/ANDROID_3.4.5/include/linux/bcma/bcma_regs.h
+++ /dev/null
@@ -1,86 +0,0 @@
-#ifndef LINUX_BCMA_REGS_H_
-#define LINUX_BCMA_REGS_H_
-
-/* Some single registers are shared between many cores */
-/* BCMA_CLKCTLST: ChipCommon (rev >= 20), PCIe, 80211 */
-#define BCMA_CLKCTLST 0x01E0 /* Clock control and status */
-#define BCMA_CLKCTLST_FORCEALP 0x00000001 /* Force ALP request */
-#define BCMA_CLKCTLST_FORCEHT 0x00000002 /* Force HT request */
-#define BCMA_CLKCTLST_FORCEILP 0x00000004 /* Force ILP request */
-#define BCMA_CLKCTLST_HAVEALPREQ 0x00000008 /* ALP available request */
-#define BCMA_CLKCTLST_HAVEHTREQ 0x00000010 /* HT available request */
-#define BCMA_CLKCTLST_HWCROFF 0x00000020 /* Force HW clock request off */
-#define BCMA_CLKCTLST_EXTRESREQ 0x00000700 /* Mask of external resource requests */
-#define BCMA_CLKCTLST_HAVEALP 0x00010000 /* ALP available */
-#define BCMA_CLKCTLST_HAVEHT 0x00020000 /* HT available */
-#define BCMA_CLKCTLST_BP_ON_ALP 0x00040000 /* RO: running on ALP clock */
-#define BCMA_CLKCTLST_BP_ON_HT 0x00080000 /* RO: running on HT clock */
-#define BCMA_CLKCTLST_EXTRESST 0x07000000 /* Mask of external resource status */
-/* Is there any BCM4328 on BCMA bus? */
-#define BCMA_CLKCTLST_4328A0_HAVEHT 0x00010000 /* 4328a0 has reversed bits */
-#define BCMA_CLKCTLST_4328A0_HAVEALP 0x00020000 /* 4328a0 has reversed bits */
-
-/* Agent registers (common for every core) */
-#define BCMA_IOCTL 0x0408 /* IO control */
-#define BCMA_IOCTL_CLK 0x0001
-#define BCMA_IOCTL_FGC 0x0002
-#define BCMA_IOCTL_CORE_BITS 0x3FFC
-#define BCMA_IOCTL_PME_EN 0x4000
-#define BCMA_IOCTL_BIST_EN 0x8000
-#define BCMA_IOST 0x0500 /* IO status */
-#define BCMA_IOST_CORE_BITS 0x0FFF
-#define BCMA_IOST_DMA64 0x1000
-#define BCMA_IOST_GATED_CLK 0x2000
-#define BCMA_IOST_BIST_ERROR 0x4000
-#define BCMA_IOST_BIST_DONE 0x8000
-#define BCMA_RESET_CTL 0x0800
-#define BCMA_RESET_CTL_RESET 0x0001
-
-/* BCMA PCI config space registers. */
-#define BCMA_PCI_PMCSR 0x44
-#define BCMA_PCI_PE 0x100
-#define BCMA_PCI_BAR0_WIN 0x80 /* Backplane address space 0 */
-#define BCMA_PCI_BAR1_WIN 0x84 /* Backplane address space 1 */
-#define BCMA_PCI_SPROMCTL 0x88 /* SPROM control */
-#define BCMA_PCI_SPROMCTL_WE 0x10 /* SPROM write enable */
-#define BCMA_PCI_BAR1_CONTROL 0x8c /* Address space 1 burst control */
-#define BCMA_PCI_IRQS 0x90 /* PCI interrupts */
-#define BCMA_PCI_IRQMASK 0x94 /* PCI IRQ control and mask (pcirev >= 6 only) */
-#define BCMA_PCI_BACKPLANE_IRQS 0x98 /* Backplane Interrupts */
-#define BCMA_PCI_BAR0_WIN2 0xAC
-#define BCMA_PCI_GPIO_IN 0xB0 /* GPIO Input (pcirev >= 3 only) */
-#define BCMA_PCI_GPIO_OUT 0xB4 /* GPIO Output (pcirev >= 3 only) */
-#define BCMA_PCI_GPIO_OUT_ENABLE 0xB8 /* GPIO Output Enable/Disable (pcirev >= 3 only) */
-#define BCMA_PCI_GPIO_SCS 0x10 /* PCI config space bit 4 for 4306c0 slow clock source */
-#define BCMA_PCI_GPIO_HWRAD 0x20 /* PCI config space GPIO 13 for hw radio disable */
-#define BCMA_PCI_GPIO_XTAL 0x40 /* PCI config space GPIO 14 for Xtal powerup */
-#define BCMA_PCI_GPIO_PLL 0x80 /* PCI config space GPIO 15 for PLL powerdown */
-
-/* SiliconBackplane Address Map.
- * All regions may not exist on all chips.
- */
-#define BCMA_SOC_SDRAM_BASE 0x00000000U /* Physical SDRAM */
-#define BCMA_SOC_PCI_MEM 0x08000000U /* Host Mode sb2pcitranslation0 (64 MB) */
-#define BCMA_SOC_PCI_MEM_SZ (64 * 1024 * 1024)
-#define BCMA_SOC_PCI_CFG 0x0c000000U /* Host Mode sb2pcitranslation1 (64 MB) */
-#define BCMA_SOC_SDRAM_SWAPPED 0x10000000U /* Byteswapped Physical SDRAM */
-#define BCMA_SOC_SDRAM_R2 0x80000000U /* Region 2 for sdram (512 MB) */
-
-
-#define BCMA_SOC_PCI_DMA 0x40000000U /* Client Mode sb2pcitranslation2 (1 GB) */
-#define BCMA_SOC_PCI_DMA2 0x80000000U /* Client Mode sb2pcitranslation2 (1 GB) */
-#define BCMA_SOC_PCI_DMA_SZ 0x40000000U /* Client Mode sb2pcitranslation2 size in bytes */
-#define BCMA_SOC_PCIE_DMA_L32 0x00000000U /* PCIE Client Mode sb2pcitranslation2
- * (2 ZettaBytes), low 32 bits
- */
-#define BCMA_SOC_PCIE_DMA_H32 0x80000000U /* PCIE Client Mode sb2pcitranslation2
- * (2 ZettaBytes), high 32 bits
- */
-
-#define BCMA_SOC_PCI1_MEM 0x40000000U /* Host Mode sb2pcitranslation0 (64 MB) */
-#define BCMA_SOC_PCI1_CFG 0x44000000U /* Host Mode sb2pcitranslation1 (64 MB) */
-#define BCMA_SOC_PCIE1_DMA_H32 0xc0000000U /* PCIE Client Mode sb2pcitranslation2
- * (2 ZettaBytes), high 32 bits
- */
-
-#endif /* LINUX_BCMA_REGS_H_ */
diff --git a/ANDROID_3.4.5/include/linux/bcma/bcma_soc.h b/ANDROID_3.4.5/include/linux/bcma/bcma_soc.h
deleted file mode 100644
index 4203c559..00000000
--- a/ANDROID_3.4.5/include/linux/bcma/bcma_soc.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef LINUX_BCMA_SOC_H_
-#define LINUX_BCMA_SOC_H_
-
-#include <linux/bcma/bcma.h>
-
-struct bcma_soc {
- struct bcma_bus bus;
- struct bcma_device core_cc;
- struct bcma_device core_mips;
-};
-
-int __init bcma_host_soc_register(struct bcma_soc *soc);
-
-int bcma_bus_register(struct bcma_bus *bus);
-
-#endif /* LINUX_BCMA_SOC_H_ */
diff --git a/ANDROID_3.4.5/include/linux/bfin_mac.h b/ANDROID_3.4.5/include/linux/bfin_mac.h
deleted file mode 100644
index a69554ef..00000000
--- a/ANDROID_3.4.5/include/linux/bfin_mac.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Blackfin On-Chip MAC Driver
- *
- * Copyright 2004-2010 Analog Devices Inc.
- *
- * Enter bugs at http://blackfin.uclinux.org/
- *
- * Licensed under the GPL-2 or later.
- */
-
-#ifndef _LINUX_BFIN_MAC_H_
-#define _LINUX_BFIN_MAC_H_
-
-#include <linux/phy.h>
-
-struct bfin_phydev_platform_data {
- unsigned short addr;
- int irq;
-};
-
-struct bfin_mii_bus_platform_data {
- int phydev_number;
- struct bfin_phydev_platform_data *phydev_data;
- const unsigned short *mac_peripherals;
- int phy_mode;
- unsigned int phy_mask;
- unsigned short vlan1_mask, vlan2_mask;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/bfs_fs.h b/ANDROID_3.4.5/include/linux/bfs_fs.h
deleted file mode 100644
index 1c0b355a..00000000
--- a/ANDROID_3.4.5/include/linux/bfs_fs.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * include/linux/bfs_fs.h - BFS data structures on disk.
- * Copyright (C) 1999 Tigran Aivazian <tigran@veritas.com>
- */
-
-#ifndef _LINUX_BFS_FS_H
-#define _LINUX_BFS_FS_H
-
-#include <linux/types.h>
-
-#define BFS_BSIZE_BITS 9
-#define BFS_BSIZE (1<<BFS_BSIZE_BITS)
-
-#define BFS_MAGIC 0x1BADFACE
-#define BFS_ROOT_INO 2
-#define BFS_INODES_PER_BLOCK 8
-
-/* SVR4 vnode type values (bfs_inode->i_vtype) */
-#define BFS_VDIR 2L
-#define BFS_VREG 1L
-
-/* BFS inode layout on disk */
-struct bfs_inode {
- __le16 i_ino;
- __u16 i_unused;
- __le32 i_sblock;
- __le32 i_eblock;
- __le32 i_eoffset;
- __le32 i_vtype;
- __le32 i_mode;
- __le32 i_uid;
- __le32 i_gid;
- __le32 i_nlink;
- __le32 i_atime;
- __le32 i_mtime;
- __le32 i_ctime;
- __u32 i_padding[4];
-};
-
-#define BFS_NAMELEN 14
-#define BFS_DIRENT_SIZE 16
-#define BFS_DIRS_PER_BLOCK 32
-
-struct bfs_dirent {
- __le16 ino;
- char name[BFS_NAMELEN];
-};
-
-/* BFS superblock layout on disk */
-struct bfs_super_block {
- __le32 s_magic;
- __le32 s_start;
- __le32 s_end;
- __le32 s_from;
- __le32 s_to;
- __s32 s_bfrom;
- __s32 s_bto;
- char s_fsname[6];
- char s_volume[6];
- __u32 s_padding[118];
-};
-
-
-#define BFS_OFF2INO(offset) \
- ((((offset) - BFS_BSIZE) / sizeof(struct bfs_inode)) + BFS_ROOT_INO)
-
-#define BFS_INO2OFF(ino) \
- ((__u32)(((ino) - BFS_ROOT_INO) * sizeof(struct bfs_inode)) + BFS_BSIZE)
-#define BFS_NZFILESIZE(ip) \
- ((le32_to_cpu((ip)->i_eoffset) + 1) - le32_to_cpu((ip)->i_sblock) * BFS_BSIZE)
-
-#define BFS_FILESIZE(ip) \
- ((ip)->i_sblock == 0 ? 0 : BFS_NZFILESIZE(ip))
-
-#define BFS_FILEBLOCKS(ip) \
- ((ip)->i_sblock == 0 ? 0 : (le32_to_cpu((ip)->i_eblock) + 1) - le32_to_cpu((ip)->i_sblock))
-#define BFS_UNCLEAN(bfs_sb, sb) \
- ((le32_to_cpu(bfs_sb->s_from) != -1) && (le32_to_cpu(bfs_sb->s_to) != -1) && !(sb->s_flags & MS_RDONLY))
-
-
-#endif /* _LINUX_BFS_FS_H */
diff --git a/ANDROID_3.4.5/include/linux/binfmts.h b/ANDROID_3.4.5/include/linux/binfmts.h
deleted file mode 100644
index 366422bc..00000000
--- a/ANDROID_3.4.5/include/linux/binfmts.h
+++ /dev/null
@@ -1,140 +0,0 @@
-#ifndef _LINUX_BINFMTS_H
-#define _LINUX_BINFMTS_H
-
-#include <linux/capability.h>
-
-struct pt_regs;
-
-/*
- * These are the maximum length and maximum number of strings passed to the
- * execve() system call. MAX_ARG_STRLEN is essentially random but serves to
- * prevent the kernel from being unduly impacted by misaddressed pointers.
- * MAX_ARG_STRINGS is chosen to fit in a signed 32-bit integer.
- */
-#define MAX_ARG_STRLEN (PAGE_SIZE * 32)
-#define MAX_ARG_STRINGS 0x7FFFFFFF
-
-/* sizeof(linux_binprm->buf) */
-#define BINPRM_BUF_SIZE 128
-
-#ifdef __KERNEL__
-#include <linux/sched.h>
-
-#define CORENAME_MAX_SIZE 128
-
-/*
- * This structure is used to hold the arguments that are used when loading binaries.
- */
-struct linux_binprm {
- char buf[BINPRM_BUF_SIZE];
-#ifdef CONFIG_MMU
- struct vm_area_struct *vma;
- unsigned long vma_pages;
-#else
-# define MAX_ARG_PAGES 32
- struct page *page[MAX_ARG_PAGES];
-#endif
- struct mm_struct *mm;
- unsigned long p; /* current top of mem */
- unsigned int
- cred_prepared:1,/* true if creds already prepared (multiple
- * preps happen for interpreters) */
- cap_effective:1;/* true if has elevated effective capabilities,
- * false if not; except for init which inherits
- * its parent's caps anyway */
-#ifdef __alpha__
- unsigned int taso:1;
-#endif
- unsigned int recursion_depth;
- struct file * file;
- struct cred *cred; /* new credentials */
- int unsafe; /* how unsafe this exec is (mask of LSM_UNSAFE_*) */
- unsigned int per_clear; /* bits to clear in current->personality */
- int argc, envc;
- const char * filename; /* Name of binary as seen by procps */
- const char * interp; /* Name of the binary really executed. Most
- of the time same as filename, but could be
- different for binfmt_{misc,script} */
- unsigned interp_flags;
- unsigned interp_data;
- unsigned long loader, exec;
- char tcomm[TASK_COMM_LEN];
-};
-
-#define BINPRM_FLAGS_ENFORCE_NONDUMP_BIT 0
-#define BINPRM_FLAGS_ENFORCE_NONDUMP (1 << BINPRM_FLAGS_ENFORCE_NONDUMP_BIT)
-
-/* fd of the binary should be passed to the interpreter */
-#define BINPRM_FLAGS_EXECFD_BIT 1
-#define BINPRM_FLAGS_EXECFD (1 << BINPRM_FLAGS_EXECFD_BIT)
-
-#define BINPRM_MAX_RECURSION 4
-
-/* Function parameter for binfmt->coredump */
-struct coredump_params {
- long signr;
- struct pt_regs *regs;
- struct file *file;
- unsigned long limit;
- unsigned long mm_flags;
-};
-
-/*
- * This structure defines the functions that are used to load the binary formats that
- * linux accepts.
- */
-struct linux_binfmt {
- struct list_head lh;
- struct module *module;
- int (*load_binary)(struct linux_binprm *, struct pt_regs * regs);
- int (*load_shlib)(struct file *);
- int (*core_dump)(struct coredump_params *cprm);
- unsigned long min_coredump; /* minimal dump size */
-};
-
-extern void __register_binfmt(struct linux_binfmt *fmt, int insert);
-
-/* Registration of default binfmt handlers */
-static inline void register_binfmt(struct linux_binfmt *fmt)
-{
- __register_binfmt(fmt, 0);
-}
-/* Same as above, but adds a new binfmt at the top of the list */
-static inline void insert_binfmt(struct linux_binfmt *fmt)
-{
- __register_binfmt(fmt, 1);
-}
-
-extern void unregister_binfmt(struct linux_binfmt *);
-
-extern int prepare_binprm(struct linux_binprm *);
-extern int __must_check remove_arg_zero(struct linux_binprm *);
-extern int search_binary_handler(struct linux_binprm *, struct pt_regs *);
-extern int flush_old_exec(struct linux_binprm * bprm);
-extern void setup_new_exec(struct linux_binprm * bprm);
-extern void would_dump(struct linux_binprm *, struct file *);
-
-extern int suid_dumpable;
-#define SUID_DUMP_DISABLE 0 /* No setuid dumping */
-#define SUID_DUMP_USER 1 /* Dump as user of process */
-#define SUID_DUMP_ROOT 2 /* Dump as root */
-
-/* Stack area protections */
-#define EXSTACK_DEFAULT 0 /* Whatever the arch defaults to */
-#define EXSTACK_DISABLE_X 1 /* Disable executable stacks */
-#define EXSTACK_ENABLE_X 2 /* Enable executable stacks */
-
-extern int setup_arg_pages(struct linux_binprm * bprm,
- unsigned long stack_top,
- int executable_stack);
-extern int bprm_mm_init(struct linux_binprm *bprm);
-extern int copy_strings_kernel(int argc, const char *const *argv,
- struct linux_binprm *bprm);
-extern int prepare_bprm_creds(struct linux_binprm *bprm);
-extern void install_exec_creds(struct linux_binprm *bprm);
-extern void do_coredump(long signr, int exit_code, struct pt_regs *regs);
-extern void set_binfmt(struct linux_binfmt *new);
-extern void free_bprm(struct linux_binprm *);
-
-#endif /* __KERNEL__ */
-#endif /* _LINUX_BINFMTS_H */
diff --git a/ANDROID_3.4.5/include/linux/bio.h b/ANDROID_3.4.5/include/linux/bio.h
deleted file mode 100644
index 4d94eb8b..00000000
--- a/ANDROID_3.4.5/include/linux/bio.h
+++ /dev/null
@@ -1,581 +0,0 @@
-/*
- * 2.5 block I/O model
- *
- * Copyright (C) 2001 Jens Axboe <axboe@suse.de>
- *
- * 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.
- *
- * 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 Licens
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-
- */
-#ifndef __LINUX_BIO_H
-#define __LINUX_BIO_H
-
-#include <linux/highmem.h>
-#include <linux/mempool.h>
-#include <linux/ioprio.h>
-#include <linux/bug.h>
-
-#ifdef CONFIG_BLOCK
-
-#include <asm/io.h>
-
-/* struct bio, bio_vec and BIO_* flags are defined in blk_types.h */
-#include <linux/blk_types.h>
-
-#define BIO_DEBUG
-
-#ifdef BIO_DEBUG
-#define BIO_BUG_ON BUG_ON
-#else
-#define BIO_BUG_ON
-#endif
-
-#define BIO_MAX_PAGES 256
-#define BIO_MAX_SIZE (BIO_MAX_PAGES << PAGE_CACHE_SHIFT)
-#define BIO_MAX_SECTORS (BIO_MAX_SIZE >> 9)
-
-/*
- * upper 16 bits of bi_rw define the io priority of this bio
- */
-#define BIO_PRIO_SHIFT (8 * sizeof(unsigned long) - IOPRIO_BITS)
-#define bio_prio(bio) ((bio)->bi_rw >> BIO_PRIO_SHIFT)
-#define bio_prio_valid(bio) ioprio_valid(bio_prio(bio))
-
-#define bio_set_prio(bio, prio) do { \
- WARN_ON(prio >= (1 << IOPRIO_BITS)); \
- (bio)->bi_rw &= ((1UL << BIO_PRIO_SHIFT) - 1); \
- (bio)->bi_rw |= ((unsigned long) (prio) << BIO_PRIO_SHIFT); \
-} while (0)
-
-/*
- * various member access, note that bio_data should of course not be used
- * on highmem page vectors
- */
-#define bio_iovec_idx(bio, idx) (&((bio)->bi_io_vec[(idx)]))
-#define bio_iovec(bio) bio_iovec_idx((bio), (bio)->bi_idx)
-#define bio_page(bio) bio_iovec((bio))->bv_page
-#define bio_offset(bio) bio_iovec((bio))->bv_offset
-#define bio_segments(bio) ((bio)->bi_vcnt - (bio)->bi_idx)
-#define bio_sectors(bio) ((bio)->bi_size >> 9)
-
-static inline unsigned int bio_cur_bytes(struct bio *bio)
-{
- if (bio->bi_vcnt)
- return bio_iovec(bio)->bv_len;
- else /* dataless requests such as discard */
- return bio->bi_size;
-}
-
-static inline void *bio_data(struct bio *bio)
-{
- if (bio->bi_vcnt)
- return page_address(bio_page(bio)) + bio_offset(bio);
-
- return NULL;
-}
-
-static inline int bio_has_allocated_vec(struct bio *bio)
-{
- return bio->bi_io_vec && bio->bi_io_vec != bio->bi_inline_vecs;
-}
-
-/*
- * will die
- */
-#define bio_to_phys(bio) (page_to_phys(bio_page((bio))) + (unsigned long) bio_offset((bio)))
-#define bvec_to_phys(bv) (page_to_phys((bv)->bv_page) + (unsigned long) (bv)->bv_offset)
-
-/*
- * queues that have highmem support enabled may still need to revert to
- * PIO transfers occasionally and thus map high pages temporarily. For
- * permanent PIO fall back, user is probably better off disabling highmem
- * I/O completely on that queue (see ide-dma for example)
- */
-#define __bio_kmap_atomic(bio, idx, kmtype) \
- (kmap_atomic(bio_iovec_idx((bio), (idx))->bv_page) + \
- bio_iovec_idx((bio), (idx))->bv_offset)
-
-#define __bio_kunmap_atomic(addr, kmtype) kunmap_atomic(addr)
-
-/*
- * merge helpers etc
- */
-
-#define __BVEC_END(bio) bio_iovec_idx((bio), (bio)->bi_vcnt - 1)
-#define __BVEC_START(bio) bio_iovec_idx((bio), (bio)->bi_idx)
-
-/* Default implementation of BIOVEC_PHYS_MERGEABLE */
-#define __BIOVEC_PHYS_MERGEABLE(vec1, vec2) \
- ((bvec_to_phys((vec1)) + (vec1)->bv_len) == bvec_to_phys((vec2)))
-
-/*
- * allow arch override, for eg virtualized architectures (put in asm/io.h)
- */
-#ifndef BIOVEC_PHYS_MERGEABLE
-#define BIOVEC_PHYS_MERGEABLE(vec1, vec2) \
- __BIOVEC_PHYS_MERGEABLE(vec1, vec2)
-#endif
-
-#define __BIO_SEG_BOUNDARY(addr1, addr2, mask) \
- (((addr1) | (mask)) == (((addr2) - 1) | (mask)))
-#define BIOVEC_SEG_BOUNDARY(q, b1, b2) \
- __BIO_SEG_BOUNDARY(bvec_to_phys((b1)), bvec_to_phys((b2)) + (b2)->bv_len, queue_segment_boundary((q)))
-#define BIO_SEG_BOUNDARY(q, b1, b2) \
- BIOVEC_SEG_BOUNDARY((q), __BVEC_END((b1)), __BVEC_START((b2)))
-
-#define bio_io_error(bio) bio_endio((bio), -EIO)
-
-/*
- * drivers should not use the __ version unless they _really_ want to
- * run through the entire bio and not just pending pieces
- */
-#define __bio_for_each_segment(bvl, bio, i, start_idx) \
- for (bvl = bio_iovec_idx((bio), (start_idx)), i = (start_idx); \
- i < (bio)->bi_vcnt; \
- bvl++, i++)
-
-#define bio_for_each_segment(bvl, bio, i) \
- __bio_for_each_segment(bvl, bio, i, (bio)->bi_idx)
-
-/*
- * get a reference to a bio, so it won't disappear. the intended use is
- * something like:
- *
- * bio_get(bio);
- * submit_bio(rw, bio);
- * if (bio->bi_flags ...)
- * do_something
- * bio_put(bio);
- *
- * without the bio_get(), it could potentially complete I/O before submit_bio
- * returns. and then bio would be freed memory when if (bio->bi_flags ...)
- * runs
- */
-#define bio_get(bio) atomic_inc(&(bio)->bi_cnt)
-
-#if defined(CONFIG_BLK_DEV_INTEGRITY)
-/*
- * bio integrity payload
- */
-struct bio_integrity_payload {
- struct bio *bip_bio; /* parent bio */
-
- sector_t bip_sector; /* virtual start sector */
-
- void *bip_buf; /* generated integrity data */
- bio_end_io_t *bip_end_io; /* saved I/O completion fn */
-
- unsigned int bip_size;
-
- unsigned short bip_slab; /* slab the bip came from */
- unsigned short bip_vcnt; /* # of integrity bio_vecs */
- unsigned short bip_idx; /* current bip_vec index */
-
- struct work_struct bip_work; /* I/O completion */
- struct bio_vec bip_vec[0]; /* embedded bvec array */
-};
-#endif /* CONFIG_BLK_DEV_INTEGRITY */
-
-/*
- * A bio_pair is used when we need to split a bio.
- * This can only happen for a bio that refers to just one
- * page of data, and in the unusual situation when the
- * page crosses a chunk/device boundary
- *
- * The address of the master bio is stored in bio1.bi_private
- * The address of the pool the pair was allocated from is stored
- * in bio2.bi_private
- */
-struct bio_pair {
- struct bio bio1, bio2;
- struct bio_vec bv1, bv2;
-#if defined(CONFIG_BLK_DEV_INTEGRITY)
- struct bio_integrity_payload bip1, bip2;
- struct bio_vec iv1, iv2;
-#endif
- atomic_t cnt;
- int error;
-};
-extern struct bio_pair *bio_split(struct bio *bi, int first_sectors);
-extern void bio_pair_release(struct bio_pair *dbio);
-
-extern struct bio_set *bioset_create(unsigned int, unsigned int);
-extern void bioset_free(struct bio_set *);
-
-extern struct bio *bio_alloc(gfp_t, unsigned int);
-extern struct bio *bio_kmalloc(gfp_t, unsigned int);
-extern struct bio *bio_alloc_bioset(gfp_t, int, struct bio_set *);
-extern void bio_put(struct bio *);
-extern void bio_free(struct bio *, struct bio_set *);
-
-extern void bio_endio(struct bio *, int);
-struct request_queue;
-extern int bio_phys_segments(struct request_queue *, struct bio *);
-
-extern void __bio_clone(struct bio *, struct bio *);
-extern struct bio *bio_clone(struct bio *, gfp_t);
-
-extern void bio_init(struct bio *);
-
-extern int bio_add_page(struct bio *, struct page *, unsigned int,unsigned int);
-extern int bio_add_pc_page(struct request_queue *, struct bio *, struct page *,
- unsigned int, unsigned int);
-extern int bio_get_nr_vecs(struct block_device *);
-extern sector_t bio_sector_offset(struct bio *, unsigned short, unsigned int);
-extern struct bio *bio_map_user(struct request_queue *, struct block_device *,
- unsigned long, unsigned int, int, gfp_t);
-struct sg_iovec;
-struct rq_map_data;
-extern struct bio *bio_map_user_iov(struct request_queue *,
- struct block_device *,
- struct sg_iovec *, int, int, gfp_t);
-extern void bio_unmap_user(struct bio *);
-extern struct bio *bio_map_kern(struct request_queue *, void *, unsigned int,
- gfp_t);
-extern struct bio *bio_copy_kern(struct request_queue *, void *, unsigned int,
- gfp_t, int);
-extern void bio_set_pages_dirty(struct bio *bio);
-extern void bio_check_pages_dirty(struct bio *bio);
-
-#ifndef ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE
-# error "You should define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE for your platform"
-#endif
-#if ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE
-extern void bio_flush_dcache_pages(struct bio *bi);
-#else
-static inline void bio_flush_dcache_pages(struct bio *bi)
-{
-}
-#endif
-
-extern struct bio *bio_copy_user(struct request_queue *, struct rq_map_data *,
- unsigned long, unsigned int, int, gfp_t);
-extern struct bio *bio_copy_user_iov(struct request_queue *,
- struct rq_map_data *, struct sg_iovec *,
- int, int, gfp_t);
-extern int bio_uncopy_user(struct bio *);
-void zero_fill_bio(struct bio *bio);
-extern struct bio_vec *bvec_alloc_bs(gfp_t, int, unsigned long *, struct bio_set *);
-extern void bvec_free_bs(struct bio_set *, struct bio_vec *, unsigned int);
-extern unsigned int bvec_nr_vecs(unsigned short idx);
-
-/*
- * bio_set is used to allow other portions of the IO system to
- * allocate their own private memory pools for bio and iovec structures.
- * These memory pools in turn all allocate from the bio_slab
- * and the bvec_slabs[].
- */
-#define BIO_POOL_SIZE 2
-#define BIOVEC_NR_POOLS 6
-#define BIOVEC_MAX_IDX (BIOVEC_NR_POOLS - 1)
-
-struct bio_set {
- struct kmem_cache *bio_slab;
- unsigned int front_pad;
-
- mempool_t *bio_pool;
-#if defined(CONFIG_BLK_DEV_INTEGRITY)
- mempool_t *bio_integrity_pool;
-#endif
- mempool_t *bvec_pool;
-};
-
-struct biovec_slab {
- int nr_vecs;
- char *name;
- struct kmem_cache *slab;
-};
-
-extern struct bio_set *fs_bio_set;
-
-/*
- * a small number of entries is fine, not going to be performance critical.
- * basically we just need to survive
- */
-#define BIO_SPLIT_ENTRIES 2
-
-#ifdef CONFIG_HIGHMEM
-/*
- * remember never ever reenable interrupts between a bvec_kmap_irq and
- * bvec_kunmap_irq!
- */
-static inline char *bvec_kmap_irq(struct bio_vec *bvec, unsigned long *flags)
-{
- unsigned long addr;
-
- /*
- * might not be a highmem page, but the preempt/irq count
- * balancing is a lot nicer this way
- */
- local_irq_save(*flags);
- addr = (unsigned long) kmap_atomic(bvec->bv_page);
-
- BUG_ON(addr & ~PAGE_MASK);
-
- return (char *) addr + bvec->bv_offset;
-}
-
-static inline void bvec_kunmap_irq(char *buffer, unsigned long *flags)
-{
- unsigned long ptr = (unsigned long) buffer & PAGE_MASK;
-
- kunmap_atomic((void *) ptr);
- local_irq_restore(*flags);
-}
-
-#else
-static inline char *bvec_kmap_irq(struct bio_vec *bvec, unsigned long *flags)
-{
- return page_address(bvec->bv_page) + bvec->bv_offset;
-}
-
-static inline void bvec_kunmap_irq(char *buffer, unsigned long *flags)
-{
- *flags = 0;
-}
-#endif
-
-static inline char *__bio_kmap_irq(struct bio *bio, unsigned short idx,
- unsigned long *flags)
-{
- return bvec_kmap_irq(bio_iovec_idx(bio, idx), flags);
-}
-#define __bio_kunmap_irq(buf, flags) bvec_kunmap_irq(buf, flags)
-
-#define bio_kmap_irq(bio, flags) \
- __bio_kmap_irq((bio), (bio)->bi_idx, (flags))
-#define bio_kunmap_irq(buf,flags) __bio_kunmap_irq(buf, flags)
-
-/*
- * Check whether this bio carries any data or not. A NULL bio is allowed.
- */
-static inline int bio_has_data(struct bio *bio)
-{
- return bio && bio->bi_io_vec != NULL;
-}
-
-/*
- * BIO list management for use by remapping drivers (e.g. DM or MD) and loop.
- *
- * A bio_list anchors a singly-linked list of bios chained through the bi_next
- * member of the bio. The bio_list also caches the last list member to allow
- * fast access to the tail.
- */
-struct bio_list {
- struct bio *head;
- struct bio *tail;
-};
-
-static inline int bio_list_empty(const struct bio_list *bl)
-{
- return bl->head == NULL;
-}
-
-static inline void bio_list_init(struct bio_list *bl)
-{
- bl->head = bl->tail = NULL;
-}
-
-#define bio_list_for_each(bio, bl) \
- for (bio = (bl)->head; bio; bio = bio->bi_next)
-
-static inline unsigned bio_list_size(const struct bio_list *bl)
-{
- unsigned sz = 0;
- struct bio *bio;
-
- bio_list_for_each(bio, bl)
- sz++;
-
- return sz;
-}
-
-static inline void bio_list_add(struct bio_list *bl, struct bio *bio)
-{
- bio->bi_next = NULL;
-
- if (bl->tail)
- bl->tail->bi_next = bio;
- else
- bl->head = bio;
-
- bl->tail = bio;
-}
-
-static inline void bio_list_add_head(struct bio_list *bl, struct bio *bio)
-{
- bio->bi_next = bl->head;
-
- bl->head = bio;
-
- if (!bl->tail)
- bl->tail = bio;
-}
-
-static inline void bio_list_merge(struct bio_list *bl, struct bio_list *bl2)
-{
- if (!bl2->head)
- return;
-
- if (bl->tail)
- bl->tail->bi_next = bl2->head;
- else
- bl->head = bl2->head;
-
- bl->tail = bl2->tail;
-}
-
-static inline void bio_list_merge_head(struct bio_list *bl,
- struct bio_list *bl2)
-{
- if (!bl2->head)
- return;
-
- if (bl->head)
- bl2->tail->bi_next = bl->head;
- else
- bl->tail = bl2->tail;
-
- bl->head = bl2->head;
-}
-
-static inline struct bio *bio_list_peek(struct bio_list *bl)
-{
- return bl->head;
-}
-
-static inline struct bio *bio_list_pop(struct bio_list *bl)
-{
- struct bio *bio = bl->head;
-
- if (bio) {
- bl->head = bl->head->bi_next;
- if (!bl->head)
- bl->tail = NULL;
-
- bio->bi_next = NULL;
- }
-
- return bio;
-}
-
-static inline struct bio *bio_list_get(struct bio_list *bl)
-{
- struct bio *bio = bl->head;
-
- bl->head = bl->tail = NULL;
-
- return bio;
-}
-
-#if defined(CONFIG_BLK_DEV_INTEGRITY)
-
-#define bip_vec_idx(bip, idx) (&(bip->bip_vec[(idx)]))
-#define bip_vec(bip) bip_vec_idx(bip, 0)
-
-#define __bip_for_each_vec(bvl, bip, i, start_idx) \
- for (bvl = bip_vec_idx((bip), (start_idx)), i = (start_idx); \
- i < (bip)->bip_vcnt; \
- bvl++, i++)
-
-#define bip_for_each_vec(bvl, bip, i) \
- __bip_for_each_vec(bvl, bip, i, (bip)->bip_idx)
-
-#define bio_for_each_integrity_vec(_bvl, _bio, _iter) \
- for_each_bio(_bio) \
- bip_for_each_vec(_bvl, _bio->bi_integrity, _iter)
-
-#define bio_integrity(bio) (bio->bi_integrity != NULL)
-
-extern struct bio_integrity_payload *bio_integrity_alloc_bioset(struct bio *, gfp_t, unsigned int, struct bio_set *);
-extern struct bio_integrity_payload *bio_integrity_alloc(struct bio *, gfp_t, unsigned int);
-extern void bio_integrity_free(struct bio *, struct bio_set *);
-extern int bio_integrity_add_page(struct bio *, struct page *, unsigned int, unsigned int);
-extern int bio_integrity_enabled(struct bio *bio);
-extern int bio_integrity_set_tag(struct bio *, void *, unsigned int);
-extern int bio_integrity_get_tag(struct bio *, void *, unsigned int);
-extern int bio_integrity_prep(struct bio *);
-extern void bio_integrity_endio(struct bio *, int);
-extern void bio_integrity_advance(struct bio *, unsigned int);
-extern void bio_integrity_trim(struct bio *, unsigned int, unsigned int);
-extern void bio_integrity_split(struct bio *, struct bio_pair *, int);
-extern int bio_integrity_clone(struct bio *, struct bio *, gfp_t, struct bio_set *);
-extern int bioset_integrity_create(struct bio_set *, int);
-extern void bioset_integrity_free(struct bio_set *);
-extern void bio_integrity_init(void);
-
-#else /* CONFIG_BLK_DEV_INTEGRITY */
-
-static inline int bio_integrity(struct bio *bio)
-{
- return 0;
-}
-
-static inline int bio_integrity_enabled(struct bio *bio)
-{
- return 0;
-}
-
-static inline int bioset_integrity_create(struct bio_set *bs, int pool_size)
-{
- return 0;
-}
-
-static inline void bioset_integrity_free (struct bio_set *bs)
-{
- return;
-}
-
-static inline int bio_integrity_prep(struct bio *bio)
-{
- return 0;
-}
-
-static inline void bio_integrity_free(struct bio *bio, struct bio_set *bs)
-{
- return;
-}
-
-static inline int bio_integrity_clone(struct bio *bio, struct bio *bio_src,
- gfp_t gfp_mask, struct bio_set *bs)
-{
- return 0;
-}
-
-static inline void bio_integrity_split(struct bio *bio, struct bio_pair *bp,
- int sectors)
-{
- return;
-}
-
-static inline void bio_integrity_advance(struct bio *bio,
- unsigned int bytes_done)
-{
- return;
-}
-
-static inline void bio_integrity_trim(struct bio *bio, unsigned int offset,
- unsigned int sectors)
-{
- return;
-}
-
-static inline void bio_integrity_init(void)
-{
- return;
-}
-
-#endif /* CONFIG_BLK_DEV_INTEGRITY */
-
-#endif /* CONFIG_BLOCK */
-#endif /* __LINUX_BIO_H */
diff --git a/ANDROID_3.4.5/include/linux/bit_spinlock.h b/ANDROID_3.4.5/include/linux/bit_spinlock.h
deleted file mode 100644
index 3b5bafce..00000000
--- a/ANDROID_3.4.5/include/linux/bit_spinlock.h
+++ /dev/null
@@ -1,100 +0,0 @@
-#ifndef __LINUX_BIT_SPINLOCK_H
-#define __LINUX_BIT_SPINLOCK_H
-
-#include <linux/kernel.h>
-#include <linux/preempt.h>
-#include <linux/atomic.h>
-#include <linux/bug.h>
-
-/*
- * bit-based spin_lock()
- *
- * Don't use this unless you really need to: spin_lock() and spin_unlock()
- * are significantly faster.
- */
-static inline void bit_spin_lock(int bitnum, unsigned long *addr)
-{
- /*
- * Assuming the lock is uncontended, this never enters
- * the body of the outer loop. If it is contended, then
- * within the inner loop a non-atomic test is used to
- * busywait with less bus contention for a good time to
- * attempt to acquire the lock bit.
- */
- preempt_disable();
-#if defined(CONFIG_SMP) || defined(CONFIG_DEBUG_SPINLOCK)
- while (unlikely(test_and_set_bit_lock(bitnum, addr))) {
- preempt_enable();
- do {
- cpu_relax();
- } while (test_bit(bitnum, addr));
- preempt_disable();
- }
-#endif
- __acquire(bitlock);
-}
-
-/*
- * Return true if it was acquired
- */
-static inline int bit_spin_trylock(int bitnum, unsigned long *addr)
-{
- preempt_disable();
-#if defined(CONFIG_SMP) || defined(CONFIG_DEBUG_SPINLOCK)
- if (unlikely(test_and_set_bit_lock(bitnum, addr))) {
- preempt_enable();
- return 0;
- }
-#endif
- __acquire(bitlock);
- return 1;
-}
-
-/*
- * bit-based spin_unlock()
- */
-static inline void bit_spin_unlock(int bitnum, unsigned long *addr)
-{
-#ifdef CONFIG_DEBUG_SPINLOCK
- BUG_ON(!test_bit(bitnum, addr));
-#endif
-#if defined(CONFIG_SMP) || defined(CONFIG_DEBUG_SPINLOCK)
- clear_bit_unlock(bitnum, addr);
-#endif
- preempt_enable();
- __release(bitlock);
-}
-
-/*
- * bit-based spin_unlock()
- * non-atomic version, which can be used eg. if the bit lock itself is
- * protecting the rest of the flags in the word.
- */
-static inline void __bit_spin_unlock(int bitnum, unsigned long *addr)
-{
-#ifdef CONFIG_DEBUG_SPINLOCK
- BUG_ON(!test_bit(bitnum, addr));
-#endif
-#if defined(CONFIG_SMP) || defined(CONFIG_DEBUG_SPINLOCK)
- __clear_bit_unlock(bitnum, addr);
-#endif
- preempt_enable();
- __release(bitlock);
-}
-
-/*
- * Return true if the lock is held.
- */
-static inline int bit_spin_is_locked(int bitnum, unsigned long *addr)
-{
-#if defined(CONFIG_SMP) || defined(CONFIG_DEBUG_SPINLOCK)
- return test_bit(bitnum, addr);
-#elif defined CONFIG_PREEMPT_COUNT
- return preempt_count();
-#else
- return 1;
-#endif
-}
-
-#endif /* __LINUX_BIT_SPINLOCK_H */
-
diff --git a/ANDROID_3.4.5/include/linux/bitmap.h b/ANDROID_3.4.5/include/linux/bitmap.h
deleted file mode 100644
index 7ad63450..00000000
--- a/ANDROID_3.4.5/include/linux/bitmap.h
+++ /dev/null
@@ -1,309 +0,0 @@
-#ifndef __LINUX_BITMAP_H
-#define __LINUX_BITMAP_H
-
-#ifndef __ASSEMBLY__
-
-#include <linux/types.h>
-#include <linux/bitops.h>
-#include <linux/string.h>
-#include <linux/kernel.h>
-
-/*
- * bitmaps provide bit arrays that consume one or more unsigned
- * longs. The bitmap interface and available operations are listed
- * here, in bitmap.h
- *
- * Function implementations generic to all architectures are in
- * lib/bitmap.c. Functions implementations that are architecture
- * specific are in various include/asm-<arch>/bitops.h headers
- * and other arch/<arch> specific files.
- *
- * See lib/bitmap.c for more details.
- */
-
-/*
- * The available bitmap operations and their rough meaning in the
- * case that the bitmap is a single unsigned long are thus:
- *
- * Note that nbits should be always a compile time evaluable constant.
- * Otherwise many inlines will generate horrible code.
- *
- * bitmap_zero(dst, nbits) *dst = 0UL
- * bitmap_fill(dst, nbits) *dst = ~0UL
- * bitmap_copy(dst, src, nbits) *dst = *src
- * bitmap_and(dst, src1, src2, nbits) *dst = *src1 & *src2
- * bitmap_or(dst, src1, src2, nbits) *dst = *src1 | *src2
- * bitmap_xor(dst, src1, src2, nbits) *dst = *src1 ^ *src2
- * bitmap_andnot(dst, src1, src2, nbits) *dst = *src1 & ~(*src2)
- * bitmap_complement(dst, src, nbits) *dst = ~(*src)
- * bitmap_equal(src1, src2, nbits) Are *src1 and *src2 equal?
- * bitmap_intersects(src1, src2, nbits) Do *src1 and *src2 overlap?
- * bitmap_subset(src1, src2, nbits) Is *src1 a subset of *src2?
- * bitmap_empty(src, nbits) Are all bits zero in *src?
- * bitmap_full(src, nbits) Are all bits set in *src?
- * bitmap_weight(src, nbits) Hamming Weight: number set bits
- * bitmap_set(dst, pos, nbits) Set specified bit area
- * bitmap_clear(dst, pos, nbits) Clear specified bit area
- * bitmap_find_next_zero_area(buf, len, pos, n, mask) Find bit free area
- * bitmap_shift_right(dst, src, n, nbits) *dst = *src >> n
- * bitmap_shift_left(dst, src, n, nbits) *dst = *src << n
- * bitmap_remap(dst, src, old, new, nbits) *dst = map(old, new)(src)
- * bitmap_bitremap(oldbit, old, new, nbits) newbit = map(old, new)(oldbit)
- * bitmap_onto(dst, orig, relmap, nbits) *dst = orig relative to relmap
- * bitmap_fold(dst, orig, sz, nbits) dst bits = orig bits mod sz
- * bitmap_scnprintf(buf, len, src, nbits) Print bitmap src to buf
- * bitmap_parse(buf, buflen, dst, nbits) Parse bitmap dst from kernel buf
- * bitmap_parse_user(ubuf, ulen, dst, nbits) Parse bitmap dst from user buf
- * bitmap_scnlistprintf(buf, len, src, nbits) Print bitmap src as list to buf
- * bitmap_parselist(buf, dst, nbits) Parse bitmap dst from kernel buf
- * bitmap_parselist_user(buf, dst, nbits) Parse bitmap dst from user buf
- * bitmap_find_free_region(bitmap, bits, order) Find and allocate bit region
- * bitmap_release_region(bitmap, pos, order) Free specified bit region
- * bitmap_allocate_region(bitmap, pos, order) Allocate specified bit region
- */
-
-/*
- * Also the following operations in asm/bitops.h apply to bitmaps.
- *
- * set_bit(bit, addr) *addr |= bit
- * clear_bit(bit, addr) *addr &= ~bit
- * change_bit(bit, addr) *addr ^= bit
- * test_bit(bit, addr) Is bit set in *addr?
- * test_and_set_bit(bit, addr) Set bit and return old value
- * test_and_clear_bit(bit, addr) Clear bit and return old value
- * test_and_change_bit(bit, addr) Change bit and return old value
- * find_first_zero_bit(addr, nbits) Position first zero bit in *addr
- * find_first_bit(addr, nbits) Position first set bit in *addr
- * find_next_zero_bit(addr, nbits, bit) Position next zero bit in *addr >= bit
- * find_next_bit(addr, nbits, bit) Position next set bit in *addr >= bit
- */
-
-/*
- * The DECLARE_BITMAP(name,bits) macro, in linux/types.h, can be used
- * to declare an array named 'name' of just enough unsigned longs to
- * contain all bit positions from 0 to 'bits' - 1.
- */
-
-/*
- * lib/bitmap.c provides these functions:
- */
-
-extern int __bitmap_empty(const unsigned long *bitmap, int bits);
-extern int __bitmap_full(const unsigned long *bitmap, int bits);
-extern int __bitmap_equal(const unsigned long *bitmap1,
- const unsigned long *bitmap2, int bits);
-extern void __bitmap_complement(unsigned long *dst, const unsigned long *src,
- int bits);
-extern void __bitmap_shift_right(unsigned long *dst,
- const unsigned long *src, int shift, int bits);
-extern void __bitmap_shift_left(unsigned long *dst,
- const unsigned long *src, int shift, int bits);
-extern int __bitmap_and(unsigned long *dst, const unsigned long *bitmap1,
- const unsigned long *bitmap2, int bits);
-extern void __bitmap_or(unsigned long *dst, const unsigned long *bitmap1,
- const unsigned long *bitmap2, int bits);
-extern void __bitmap_xor(unsigned long *dst, const unsigned long *bitmap1,
- const unsigned long *bitmap2, int bits);
-extern int __bitmap_andnot(unsigned long *dst, const unsigned long *bitmap1,
- const unsigned long *bitmap2, int bits);
-extern int __bitmap_intersects(const unsigned long *bitmap1,
- const unsigned long *bitmap2, int bits);
-extern int __bitmap_subset(const unsigned long *bitmap1,
- const unsigned long *bitmap2, int bits);
-extern int __bitmap_weight(const unsigned long *bitmap, int bits);
-
-extern void bitmap_set(unsigned long *map, int i, int len);
-extern void bitmap_clear(unsigned long *map, int start, int nr);
-extern unsigned long bitmap_find_next_zero_area(unsigned long *map,
- unsigned long size,
- unsigned long start,
- unsigned int nr,
- unsigned long align_mask);
-
-extern int bitmap_scnprintf(char *buf, unsigned int len,
- const unsigned long *src, int nbits);
-extern int __bitmap_parse(const char *buf, unsigned int buflen, int is_user,
- unsigned long *dst, int nbits);
-extern int bitmap_parse_user(const char __user *ubuf, unsigned int ulen,
- unsigned long *dst, int nbits);
-extern int bitmap_scnlistprintf(char *buf, unsigned int len,
- const unsigned long *src, int nbits);
-extern int bitmap_parselist(const char *buf, unsigned long *maskp,
- int nmaskbits);
-extern int bitmap_parselist_user(const char __user *ubuf, unsigned int ulen,
- unsigned long *dst, int nbits);
-extern void bitmap_remap(unsigned long *dst, const unsigned long *src,
- const unsigned long *old, const unsigned long *new, int bits);
-extern int bitmap_bitremap(int oldbit,
- const unsigned long *old, const unsigned long *new, int bits);
-extern void bitmap_onto(unsigned long *dst, const unsigned long *orig,
- const unsigned long *relmap, int bits);
-extern void bitmap_fold(unsigned long *dst, const unsigned long *orig,
- int sz, int bits);
-extern int bitmap_find_free_region(unsigned long *bitmap, int bits, int order);
-extern void bitmap_release_region(unsigned long *bitmap, int pos, int order);
-extern int bitmap_allocate_region(unsigned long *bitmap, int pos, int order);
-extern void bitmap_copy_le(void *dst, const unsigned long *src, int nbits);
-extern int bitmap_ord_to_pos(const unsigned long *bitmap, int n, int bits);
-
-#define BITMAP_FIRST_WORD_MASK(start) (~0UL << ((start) % BITS_PER_LONG))
-#define BITMAP_LAST_WORD_MASK(nbits) \
-( \
- ((nbits) % BITS_PER_LONG) ? \
- (1UL<<((nbits) % BITS_PER_LONG))-1 : ~0UL \
-)
-
-#define small_const_nbits(nbits) \
- (__builtin_constant_p(nbits) && (nbits) <= BITS_PER_LONG)
-
-static inline void bitmap_zero(unsigned long *dst, int nbits)
-{
- if (small_const_nbits(nbits))
- *dst = 0UL;
- else {
- int len = BITS_TO_LONGS(nbits) * sizeof(unsigned long);
- memset(dst, 0, len);
- }
-}
-
-static inline void bitmap_fill(unsigned long *dst, int nbits)
-{
- size_t nlongs = BITS_TO_LONGS(nbits);
- if (!small_const_nbits(nbits)) {
- int len = (nlongs - 1) * sizeof(unsigned long);
- memset(dst, 0xff, len);
- }
- dst[nlongs - 1] = BITMAP_LAST_WORD_MASK(nbits);
-}
-
-static inline void bitmap_copy(unsigned long *dst, const unsigned long *src,
- int nbits)
-{
- if (small_const_nbits(nbits))
- *dst = *src;
- else {
- int len = BITS_TO_LONGS(nbits) * sizeof(unsigned long);
- memcpy(dst, src, len);
- }
-}
-
-static inline int bitmap_and(unsigned long *dst, const unsigned long *src1,
- const unsigned long *src2, int nbits)
-{
- if (small_const_nbits(nbits))
- return (*dst = *src1 & *src2) != 0;
- return __bitmap_and(dst, src1, src2, nbits);
-}
-
-static inline void bitmap_or(unsigned long *dst, const unsigned long *src1,
- const unsigned long *src2, int nbits)
-{
- if (small_const_nbits(nbits))
- *dst = *src1 | *src2;
- else
- __bitmap_or(dst, src1, src2, nbits);
-}
-
-static inline void bitmap_xor(unsigned long *dst, const unsigned long *src1,
- const unsigned long *src2, int nbits)
-{
- if (small_const_nbits(nbits))
- *dst = *src1 ^ *src2;
- else
- __bitmap_xor(dst, src1, src2, nbits);
-}
-
-static inline int bitmap_andnot(unsigned long *dst, const unsigned long *src1,
- const unsigned long *src2, int nbits)
-{
- if (small_const_nbits(nbits))
- return (*dst = *src1 & ~(*src2)) != 0;
- return __bitmap_andnot(dst, src1, src2, nbits);
-}
-
-static inline void bitmap_complement(unsigned long *dst, const unsigned long *src,
- int nbits)
-{
- if (small_const_nbits(nbits))
- *dst = ~(*src) & BITMAP_LAST_WORD_MASK(nbits);
- else
- __bitmap_complement(dst, src, nbits);
-}
-
-static inline int bitmap_equal(const unsigned long *src1,
- const unsigned long *src2, int nbits)
-{
- if (small_const_nbits(nbits))
- return ! ((*src1 ^ *src2) & BITMAP_LAST_WORD_MASK(nbits));
- else
- return __bitmap_equal(src1, src2, nbits);
-}
-
-static inline int bitmap_intersects(const unsigned long *src1,
- const unsigned long *src2, int nbits)
-{
- if (small_const_nbits(nbits))
- return ((*src1 & *src2) & BITMAP_LAST_WORD_MASK(nbits)) != 0;
- else
- return __bitmap_intersects(src1, src2, nbits);
-}
-
-static inline int bitmap_subset(const unsigned long *src1,
- const unsigned long *src2, int nbits)
-{
- if (small_const_nbits(nbits))
- return ! ((*src1 & ~(*src2)) & BITMAP_LAST_WORD_MASK(nbits));
- else
- return __bitmap_subset(src1, src2, nbits);
-}
-
-static inline int bitmap_empty(const unsigned long *src, int nbits)
-{
- if (small_const_nbits(nbits))
- return ! (*src & BITMAP_LAST_WORD_MASK(nbits));
- else
- return __bitmap_empty(src, nbits);
-}
-
-static inline int bitmap_full(const unsigned long *src, int nbits)
-{
- if (small_const_nbits(nbits))
- return ! (~(*src) & BITMAP_LAST_WORD_MASK(nbits));
- else
- return __bitmap_full(src, nbits);
-}
-
-static inline int bitmap_weight(const unsigned long *src, int nbits)
-{
- if (small_const_nbits(nbits))
- return hweight_long(*src & BITMAP_LAST_WORD_MASK(nbits));
- return __bitmap_weight(src, nbits);
-}
-
-static inline void bitmap_shift_right(unsigned long *dst,
- const unsigned long *src, int n, int nbits)
-{
- if (small_const_nbits(nbits))
- *dst = *src >> n;
- else
- __bitmap_shift_right(dst, src, n, nbits);
-}
-
-static inline void bitmap_shift_left(unsigned long *dst,
- const unsigned long *src, int n, int nbits)
-{
- if (small_const_nbits(nbits))
- *dst = (*src << n) & BITMAP_LAST_WORD_MASK(nbits);
- else
- __bitmap_shift_left(dst, src, n, nbits);
-}
-
-static inline int bitmap_parse(const char *buf, unsigned int buflen,
- unsigned long *maskp, int nmaskbits)
-{
- return __bitmap_parse(buf, buflen, 0, maskp, nmaskbits);
-}
-
-#endif /* __ASSEMBLY__ */
-
-#endif /* __LINUX_BITMAP_H */
diff --git a/ANDROID_3.4.5/include/linux/bitops.h b/ANDROID_3.4.5/include/linux/bitops.h
deleted file mode 100644
index a3b6b821..00000000
--- a/ANDROID_3.4.5/include/linux/bitops.h
+++ /dev/null
@@ -1,201 +0,0 @@
-#ifndef _LINUX_BITOPS_H
-#define _LINUX_BITOPS_H
-#include <asm/types.h>
-
-#ifdef __KERNEL__
-#define BIT(nr) (1UL << (nr))
-#define BIT_MASK(nr) (1UL << ((nr) % BITS_PER_LONG))
-#define BIT_WORD(nr) ((nr) / BITS_PER_LONG)
-#define BITS_PER_BYTE 8
-#define BITS_TO_LONGS(nr) DIV_ROUND_UP(nr, BITS_PER_BYTE * sizeof(long))
-#endif
-
-extern unsigned int __sw_hweight8(unsigned int w);
-extern unsigned int __sw_hweight16(unsigned int w);
-extern unsigned int __sw_hweight32(unsigned int w);
-extern unsigned long __sw_hweight64(__u64 w);
-
-/*
- * Include this here because some architectures need generic_ffs/fls in
- * scope
- */
-#include <asm/bitops.h>
-
-#define for_each_set_bit(bit, addr, size) \
- for ((bit) = find_first_bit((addr), (size)); \
- (bit) < (size); \
- (bit) = find_next_bit((addr), (size), (bit) + 1))
-
-/* same as for_each_set_bit() but use bit as value to start with */
-#define for_each_set_bit_from(bit, addr, size) \
- for ((bit) = find_next_bit((addr), (size), (bit)); \
- (bit) < (size); \
- (bit) = find_next_bit((addr), (size), (bit) + 1))
-
-#define for_each_clear_bit(bit, addr, size) \
- for ((bit) = find_first_zero_bit((addr), (size)); \
- (bit) < (size); \
- (bit) = find_next_zero_bit((addr), (size), (bit) + 1))
-
-/* same as for_each_clear_bit() but use bit as value to start with */
-#define for_each_clear_bit_from(bit, addr, size) \
- for ((bit) = find_next_zero_bit((addr), (size), (bit)); \
- (bit) < (size); \
- (bit) = find_next_zero_bit((addr), (size), (bit) + 1))
-
-static __inline__ int get_bitmask_order(unsigned int count)
-{
- int order;
-
- order = fls(count);
- return order; /* We could be slightly more clever with -1 here... */
-}
-
-static __inline__ int get_count_order(unsigned int count)
-{
- int order;
-
- order = fls(count) - 1;
- if (count & (count - 1))
- order++;
- return order;
-}
-
-static inline unsigned long hweight_long(unsigned long w)
-{
- return sizeof(w) == 4 ? hweight32(w) : hweight64(w);
-}
-
-/**
- * rol64 - rotate a 64-bit value left
- * @word: value to rotate
- * @shift: bits to roll
- */
-static inline __u64 rol64(__u64 word, unsigned int shift)
-{
- return (word << shift) | (word >> (64 - shift));
-}
-
-/**
- * ror64 - rotate a 64-bit value right
- * @word: value to rotate
- * @shift: bits to roll
- */
-static inline __u64 ror64(__u64 word, unsigned int shift)
-{
- return (word >> shift) | (word << (64 - shift));
-}
-
-/**
- * rol32 - rotate a 32-bit value left
- * @word: value to rotate
- * @shift: bits to roll
- */
-static inline __u32 rol32(__u32 word, unsigned int shift)
-{
- return (word << shift) | (word >> (32 - shift));
-}
-
-/**
- * ror32 - rotate a 32-bit value right
- * @word: value to rotate
- * @shift: bits to roll
- */
-static inline __u32 ror32(__u32 word, unsigned int shift)
-{
- return (word >> shift) | (word << (32 - shift));
-}
-
-/**
- * rol16 - rotate a 16-bit value left
- * @word: value to rotate
- * @shift: bits to roll
- */
-static inline __u16 rol16(__u16 word, unsigned int shift)
-{
- return (word << shift) | (word >> (16 - shift));
-}
-
-/**
- * ror16 - rotate a 16-bit value right
- * @word: value to rotate
- * @shift: bits to roll
- */
-static inline __u16 ror16(__u16 word, unsigned int shift)
-{
- return (word >> shift) | (word << (16 - shift));
-}
-
-/**
- * rol8 - rotate an 8-bit value left
- * @word: value to rotate
- * @shift: bits to roll
- */
-static inline __u8 rol8(__u8 word, unsigned int shift)
-{
- return (word << shift) | (word >> (8 - shift));
-}
-
-/**
- * ror8 - rotate an 8-bit value right
- * @word: value to rotate
- * @shift: bits to roll
- */
-static inline __u8 ror8(__u8 word, unsigned int shift)
-{
- return (word >> shift) | (word << (8 - shift));
-}
-
-/**
- * sign_extend32 - sign extend a 32-bit value using specified bit as sign-bit
- * @value: value to sign extend
- * @index: 0 based bit index (0<=index<32) to sign bit
- */
-static inline __s32 sign_extend32(__u32 value, int index)
-{
- __u8 shift = 31 - index;
- return (__s32)(value << shift) >> shift;
-}
-
-static inline unsigned fls_long(unsigned long l)
-{
- if (sizeof(l) == 4)
- return fls(l);
- return fls64(l);
-}
-
-/**
- * __ffs64 - find first set bit in a 64 bit word
- * @word: The 64 bit word
- *
- * On 64 bit arches this is a synomyn for __ffs
- * The result is not defined if no bits are set, so check that @word
- * is non-zero before calling this.
- */
-static inline unsigned long __ffs64(u64 word)
-{
-#if BITS_PER_LONG == 32
- if (((u32)word) == 0UL)
- return __ffs((u32)(word >> 32)) + 32;
-#elif BITS_PER_LONG != 64
-#error BITS_PER_LONG not 32 or 64
-#endif
- return __ffs((unsigned long)word);
-}
-
-#ifdef __KERNEL__
-
-#ifndef find_last_bit
-/**
- * find_last_bit - find the last set bit in a memory region
- * @addr: The address to start the search at
- * @size: The maximum size to search
- *
- * Returns the bit number of the first set bit, or size.
- */
-extern unsigned long find_last_bit(const unsigned long *addr,
- unsigned long size);
-#endif
-
-#endif /* __KERNEL__ */
-#endif
diff --git a/ANDROID_3.4.5/include/linux/bitrev.h b/ANDROID_3.4.5/include/linux/bitrev.h
deleted file mode 100644
index 7ffe03f4..00000000
--- a/ANDROID_3.4.5/include/linux/bitrev.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef _LINUX_BITREV_H
-#define _LINUX_BITREV_H
-
-#include <linux/types.h>
-
-extern u8 const byte_rev_table[256];
-
-static inline u8 bitrev8(u8 byte)
-{
- return byte_rev_table[byte];
-}
-
-extern u16 bitrev16(u16 in);
-extern u32 bitrev32(u32 in);
-
-#endif /* _LINUX_BITREV_H */
diff --git a/ANDROID_3.4.5/include/linux/blk-iopoll.h b/ANDROID_3.4.5/include/linux/blk-iopoll.h
deleted file mode 100644
index 308734d3..00000000
--- a/ANDROID_3.4.5/include/linux/blk-iopoll.h
+++ /dev/null
@@ -1,48 +0,0 @@
-#ifndef BLK_IOPOLL_H
-#define BLK_IOPOLL_H
-
-struct blk_iopoll;
-typedef int (blk_iopoll_fn)(struct blk_iopoll *, int);
-
-struct blk_iopoll {
- struct list_head list;
- unsigned long state;
- unsigned long data;
- int weight;
- int max;
- blk_iopoll_fn *poll;
-};
-
-enum {
- IOPOLL_F_SCHED = 0,
- IOPOLL_F_DISABLE = 1,
-};
-
-/*
- * Returns 0 if we successfully set the IOPOLL_F_SCHED bit, indicating
- * that we were the first to acquire this iop for scheduling. If this iop
- * is currently disabled, return "failure".
- */
-static inline int blk_iopoll_sched_prep(struct blk_iopoll *iop)
-{
- if (!test_bit(IOPOLL_F_DISABLE, &iop->state))
- return test_and_set_bit(IOPOLL_F_SCHED, &iop->state);
-
- return 1;
-}
-
-static inline int blk_iopoll_disable_pending(struct blk_iopoll *iop)
-{
- return test_bit(IOPOLL_F_DISABLE, &iop->state);
-}
-
-extern void blk_iopoll_sched(struct blk_iopoll *);
-extern void blk_iopoll_init(struct blk_iopoll *, int, blk_iopoll_fn *);
-extern void blk_iopoll_complete(struct blk_iopoll *);
-extern void __blk_iopoll_complete(struct blk_iopoll *);
-extern void blk_iopoll_enable(struct blk_iopoll *);
-extern void blk_iopoll_disable(struct blk_iopoll *);
-
-extern int blk_iopoll_enabled;
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/blk_types.h b/ANDROID_3.4.5/include/linux/blk_types.h
deleted file mode 100644
index 4053cbd4..00000000
--- a/ANDROID_3.4.5/include/linux/blk_types.h
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
- * Block data types and constants. Directly include this file only to
- * break include dependency loop.
- */
-#ifndef __LINUX_BLK_TYPES_H
-#define __LINUX_BLK_TYPES_H
-
-#ifdef CONFIG_BLOCK
-
-#include <linux/types.h>
-
-struct bio_set;
-struct bio;
-struct bio_integrity_payload;
-struct page;
-struct block_device;
-typedef void (bio_end_io_t) (struct bio *, int);
-typedef void (bio_destructor_t) (struct bio *);
-
-/*
- * was unsigned short, but we might as well be ready for > 64kB I/O pages
- */
-struct bio_vec {
- struct page *bv_page;
- unsigned int bv_len;
- unsigned int bv_offset;
-};
-
-/*
- * main unit of I/O for the block layer and lower layers (ie drivers and
- * stacking drivers)
- */
-struct bio {
- sector_t bi_sector; /* device address in 512 byte
- sectors */
- struct bio *bi_next; /* request queue link */
- struct block_device *bi_bdev;
- unsigned long bi_flags; /* status, command, etc */
- unsigned long bi_rw; /* bottom bits READ/WRITE,
- * top bits priority
- */
-
- unsigned short bi_vcnt; /* how many bio_vec's */
- unsigned short bi_idx; /* current index into bvl_vec */
-
- /* Number of segments in this BIO after
- * physical address coalescing is performed.
- */
- unsigned int bi_phys_segments;
-
- unsigned int bi_size; /* residual I/O count */
-
- /*
- * To keep track of the max segment size, we account for the
- * sizes of the first and last mergeable segments in this bio.
- */
- unsigned int bi_seg_front_size;
- unsigned int bi_seg_back_size;
-
- unsigned int bi_max_vecs; /* max bvl_vecs we can hold */
-
- atomic_t bi_cnt; /* pin count */
-
- struct bio_vec *bi_io_vec; /* the actual vec list */
-
- bio_end_io_t *bi_end_io;
-
- void *bi_private;
-#if defined(CONFIG_BLK_DEV_INTEGRITY)
- struct bio_integrity_payload *bi_integrity; /* data integrity */
-#endif
-
- bio_destructor_t *bi_destructor; /* destructor */
-
- /*
- * We can inline a number of vecs at the end of the bio, to avoid
- * double allocations for a small number of bio_vecs. This member
- * MUST obviously be kept at the very end of the bio.
- */
- struct bio_vec bi_inline_vecs[0];
-};
-
-/*
- * bio flags
- */
-#define BIO_UPTODATE 0 /* ok after I/O completion */
-#define BIO_RW_BLOCK 1 /* RW_AHEAD set, and read/write would block */
-#define BIO_EOF 2 /* out-out-bounds error */
-#define BIO_SEG_VALID 3 /* bi_phys_segments valid */
-#define BIO_CLONED 4 /* doesn't own data */
-#define BIO_BOUNCED 5 /* bio is a bounce bio */
-#define BIO_USER_MAPPED 6 /* contains user pages */
-#define BIO_EOPNOTSUPP 7 /* not supported */
-#define BIO_NULL_MAPPED 8 /* contains invalid user pages */
-#define BIO_FS_INTEGRITY 9 /* fs owns integrity data, not block layer */
-#define BIO_QUIET 10 /* Make BIO Quiet */
-#define BIO_MAPPED_INTEGRITY 11/* integrity metadata has been remapped */
-#define bio_flagged(bio, flag) ((bio)->bi_flags & (1 << (flag)))
-
-/*
- * top 4 bits of bio flags indicate the pool this bio came from
- */
-#define BIO_POOL_BITS (4)
-#define BIO_POOL_NONE ((1UL << BIO_POOL_BITS) - 1)
-#define BIO_POOL_OFFSET (BITS_PER_LONG - BIO_POOL_BITS)
-#define BIO_POOL_MASK (1UL << BIO_POOL_OFFSET)
-#define BIO_POOL_IDX(bio) ((bio)->bi_flags >> BIO_POOL_OFFSET)
-
-#endif /* CONFIG_BLOCK */
-
-/*
- * Request flags. For use in the cmd_flags field of struct request, and in
- * bi_rw of struct bio. Note that some flags are only valid in either one.
- */
-enum rq_flag_bits {
- /* common flags */
- __REQ_WRITE, /* not set, read. set, write */
- __REQ_FAILFAST_DEV, /* no driver retries of device errors */
- __REQ_FAILFAST_TRANSPORT, /* no driver retries of transport errors */
- __REQ_FAILFAST_DRIVER, /* no driver retries of driver errors */
-
- __REQ_SYNC, /* request is sync (sync write or read) */
- __REQ_META, /* metadata io request */
- __REQ_PRIO, /* boost priority in cfq */
- __REQ_DISCARD, /* request to discard sectors */
- __REQ_SECURE, /* secure discard (used with __REQ_DISCARD) */
-
- __REQ_NOIDLE, /* don't anticipate more IO after this one */
- __REQ_FUA, /* forced unit access */
- __REQ_FLUSH, /* request for cache flush */
-
- /* bio only flags */
- __REQ_RAHEAD, /* read ahead, can fail anytime */
- __REQ_THROTTLED, /* This bio has already been subjected to
- * throttling rules. Don't do it again. */
-
- /* request only flags */
- __REQ_SORTED, /* elevator knows about this request */
- __REQ_SOFTBARRIER, /* may not be passed by ioscheduler */
- __REQ_NOMERGE, /* don't touch this for merging */
- __REQ_STARTED, /* drive already may have started this one */
- __REQ_DONTPREP, /* don't call prep for this one */
- __REQ_QUEUED, /* uses queueing */
- __REQ_ELVPRIV, /* elevator private data attached */
- __REQ_FAILED, /* set if the request failed */
- __REQ_QUIET, /* don't worry about errors */
- __REQ_PREEMPT, /* set for "ide_preempt" requests */
- __REQ_ALLOCED, /* request came from our alloc pool */
- __REQ_COPY_USER, /* contains copies of user pages */
- __REQ_FLUSH_SEQ, /* request for flush sequence */
- __REQ_IO_STAT, /* account I/O stat */
- __REQ_MIXED_MERGE, /* merge of different types, fail separately */
- __REQ_NR_BITS, /* stops here */
-};
-
-#define REQ_WRITE (1 << __REQ_WRITE)
-#define REQ_FAILFAST_DEV (1 << __REQ_FAILFAST_DEV)
-#define REQ_FAILFAST_TRANSPORT (1 << __REQ_FAILFAST_TRANSPORT)
-#define REQ_FAILFAST_DRIVER (1 << __REQ_FAILFAST_DRIVER)
-#define REQ_SYNC (1 << __REQ_SYNC)
-#define REQ_META (1 << __REQ_META)
-#define REQ_PRIO (1 << __REQ_PRIO)
-#define REQ_DISCARD (1 << __REQ_DISCARD)
-#define REQ_NOIDLE (1 << __REQ_NOIDLE)
-
-#define REQ_FAILFAST_MASK \
- (REQ_FAILFAST_DEV | REQ_FAILFAST_TRANSPORT | REQ_FAILFAST_DRIVER)
-#define REQ_COMMON_MASK \
- (REQ_WRITE | REQ_FAILFAST_MASK | REQ_SYNC | REQ_META | REQ_PRIO | \
- REQ_DISCARD | REQ_NOIDLE | REQ_FLUSH | REQ_FUA | REQ_SECURE)
-#define REQ_CLONE_MASK REQ_COMMON_MASK
-
-#define REQ_RAHEAD (1 << __REQ_RAHEAD)
-#define REQ_THROTTLED (1 << __REQ_THROTTLED)
-
-#define REQ_SORTED (1 << __REQ_SORTED)
-#define REQ_SOFTBARRIER (1 << __REQ_SOFTBARRIER)
-#define REQ_FUA (1 << __REQ_FUA)
-#define REQ_NOMERGE (1 << __REQ_NOMERGE)
-#define REQ_STARTED (1 << __REQ_STARTED)
-#define REQ_DONTPREP (1 << __REQ_DONTPREP)
-#define REQ_QUEUED (1 << __REQ_QUEUED)
-#define REQ_ELVPRIV (1 << __REQ_ELVPRIV)
-#define REQ_FAILED (1 << __REQ_FAILED)
-#define REQ_QUIET (1 << __REQ_QUIET)
-#define REQ_PREEMPT (1 << __REQ_PREEMPT)
-#define REQ_ALLOCED (1 << __REQ_ALLOCED)
-#define REQ_COPY_USER (1 << __REQ_COPY_USER)
-#define REQ_FLUSH (1 << __REQ_FLUSH)
-#define REQ_FLUSH_SEQ (1 << __REQ_FLUSH_SEQ)
-#define REQ_IO_STAT (1 << __REQ_IO_STAT)
-#define REQ_MIXED_MERGE (1 << __REQ_MIXED_MERGE)
-#define REQ_SECURE (1 << __REQ_SECURE)
-
-#endif /* __LINUX_BLK_TYPES_H */
diff --git a/ANDROID_3.4.5/include/linux/blkdev.h b/ANDROID_3.4.5/include/linux/blkdev.h
deleted file mode 100644
index 4d4ac24a..00000000
--- a/ANDROID_3.4.5/include/linux/blkdev.h
+++ /dev/null
@@ -1,1421 +0,0 @@
-#ifndef _LINUX_BLKDEV_H
-#define _LINUX_BLKDEV_H
-
-#include <linux/sched.h>
-
-#ifdef CONFIG_BLOCK
-
-#include <linux/major.h>
-#include <linux/genhd.h>
-#include <linux/list.h>
-#include <linux/timer.h>
-#include <linux/workqueue.h>
-#include <linux/pagemap.h>
-#include <linux/backing-dev.h>
-#include <linux/wait.h>
-#include <linux/mempool.h>
-#include <linux/bio.h>
-#include <linux/stringify.h>
-#include <linux/gfp.h>
-#include <linux/bsg.h>
-#include <linux/smp.h>
-
-#include <asm/scatterlist.h>
-
-struct module;
-struct scsi_ioctl_command;
-
-struct request_queue;
-struct elevator_queue;
-struct request_pm_state;
-struct blk_trace;
-struct request;
-struct sg_io_hdr;
-struct bsg_job;
-
-#define BLKDEV_MIN_RQ 4
-#define BLKDEV_MAX_RQ 128 /* Default maximum */
-
-struct request;
-typedef void (rq_end_io_fn)(struct request *, int);
-
-struct request_list {
- /*
- * count[], starved[], and wait[] are indexed by
- * BLK_RW_SYNC/BLK_RW_ASYNC
- */
- int count[2];
- int starved[2];
- int elvpriv;
- mempool_t *rq_pool;
- wait_queue_head_t wait[2];
-};
-
-/*
- * request command types
- */
-enum rq_cmd_type_bits {
- REQ_TYPE_FS = 1, /* fs request */
- REQ_TYPE_BLOCK_PC, /* scsi command */
- REQ_TYPE_SENSE, /* sense request */
- REQ_TYPE_PM_SUSPEND, /* suspend request */
- REQ_TYPE_PM_RESUME, /* resume request */
- REQ_TYPE_PM_SHUTDOWN, /* shutdown request */
- REQ_TYPE_SPECIAL, /* driver defined type */
- /*
- * for ATA/ATAPI devices. this really doesn't belong here, ide should
- * use REQ_TYPE_SPECIAL and use rq->cmd[0] with the range of driver
- * private REQ_LB opcodes to differentiate what type of request this is
- */
- REQ_TYPE_ATA_TASKFILE,
- REQ_TYPE_ATA_PC,
-};
-
-#define BLK_MAX_CDB 16
-
-/*
- * try to put the fields that are referenced together in the same cacheline.
- * if you modify this structure, be sure to check block/blk-core.c:blk_rq_init()
- * as well!
- */
-struct request {
- struct list_head queuelist;
- struct call_single_data csd;
-
- struct request_queue *q;
-
- unsigned int cmd_flags;
- enum rq_cmd_type_bits cmd_type;
- unsigned long atomic_flags;
-
- int cpu;
-
- /* the following two fields are internal, NEVER access directly */
- unsigned int __data_len; /* total data len */
- sector_t __sector; /* sector cursor */
-
- struct bio *bio;
- struct bio *biotail;
-
- struct hlist_node hash; /* merge hash */
- /*
- * The rb_node is only used inside the io scheduler, requests
- * are pruned when moved to the dispatch queue. So let the
- * completion_data share space with the rb_node.
- */
- union {
- struct rb_node rb_node; /* sort/lookup */
- void *completion_data;
- };
-
- /*
- * Three pointers are available for the IO schedulers, if they need
- * more they have to dynamically allocate it. Flush requests are
- * never put on the IO scheduler. So let the flush fields share
- * space with the elevator data.
- */
- union {
- struct {
- struct io_cq *icq;
- void *priv[2];
- } elv;
-
- struct {
- unsigned int seq;
- struct list_head list;
- rq_end_io_fn *saved_end_io;
- } flush;
- };
-
- struct gendisk *rq_disk;
- struct hd_struct *part;
- unsigned long start_time;
-#ifdef CONFIG_BLK_CGROUP
- unsigned long long start_time_ns;
- unsigned long long io_start_time_ns; /* when passed to hardware */
-#endif
- /* Number of scatter-gather DMA addr+len pairs after
- * physical address coalescing is performed.
- */
- unsigned short nr_phys_segments;
-#if defined(CONFIG_BLK_DEV_INTEGRITY)
- unsigned short nr_integrity_segments;
-#endif
-
- unsigned short ioprio;
-
- int ref_count;
-
- void *special; /* opaque pointer available for LLD use */
- char *buffer; /* kaddr of the current segment if available */
-
- int tag;
- int errors;
-
- /*
- * when request is used as a packet command carrier
- */
- unsigned char __cmd[BLK_MAX_CDB];
- unsigned char *cmd;
- unsigned short cmd_len;
-
- unsigned int extra_len; /* length of alignment and padding */
- unsigned int sense_len;
- unsigned int resid_len; /* residual count */
- void *sense;
-
- unsigned long deadline;
- struct list_head timeout_list;
- unsigned int timeout;
- int retries;
-
- /*
- * completion callback.
- */
- rq_end_io_fn *end_io;
- void *end_io_data;
-
- /* for bidi */
- struct request *next_rq;
-};
-
-static inline unsigned short req_get_ioprio(struct request *req)
-{
- return req->ioprio;
-}
-
-/*
- * State information carried for REQ_TYPE_PM_SUSPEND and REQ_TYPE_PM_RESUME
- * requests. Some step values could eventually be made generic.
- */
-struct request_pm_state
-{
- /* PM state machine step value, currently driver specific */
- int pm_step;
- /* requested PM state value (S1, S2, S3, S4, ...) */
- u32 pm_state;
- void* data; /* for driver use */
-};
-
-#include <linux/elevator.h>
-
-typedef void (request_fn_proc) (struct request_queue *q);
-typedef void (make_request_fn) (struct request_queue *q, struct bio *bio);
-typedef int (prep_rq_fn) (struct request_queue *, struct request *);
-typedef void (unprep_rq_fn) (struct request_queue *, struct request *);
-
-struct bio_vec;
-struct bvec_merge_data {
- struct block_device *bi_bdev;
- sector_t bi_sector;
- unsigned bi_size;
- unsigned long bi_rw;
-};
-typedef int (merge_bvec_fn) (struct request_queue *, struct bvec_merge_data *,
- struct bio_vec *);
-typedef void (softirq_done_fn)(struct request *);
-typedef int (dma_drain_needed_fn)(struct request *);
-typedef int (lld_busy_fn) (struct request_queue *q);
-typedef int (bsg_job_fn) (struct bsg_job *);
-
-enum blk_eh_timer_return {
- BLK_EH_NOT_HANDLED,
- BLK_EH_HANDLED,
- BLK_EH_RESET_TIMER,
-};
-
-typedef enum blk_eh_timer_return (rq_timed_out_fn)(struct request *);
-
-enum blk_queue_state {
- Queue_down,
- Queue_up,
-};
-
-struct blk_queue_tag {
- struct request **tag_index; /* map of busy tags */
- unsigned long *tag_map; /* bit map of free/busy tags */
- int busy; /* current depth */
- int max_depth; /* what we will send to device */
- int real_max_depth; /* what the array can hold */
- atomic_t refcnt; /* map can be shared */
-};
-
-#define BLK_SCSI_MAX_CMDS (256)
-#define BLK_SCSI_CMD_PER_LONG (BLK_SCSI_MAX_CMDS / (sizeof(long) * 8))
-
-struct queue_limits {
- unsigned long bounce_pfn;
- unsigned long seg_boundary_mask;
-
- unsigned int max_hw_sectors;
- unsigned int max_sectors;
- unsigned int max_segment_size;
- unsigned int physical_block_size;
- unsigned int alignment_offset;
- unsigned int io_min;
- unsigned int io_opt;
- unsigned int max_discard_sectors;
- unsigned int discard_granularity;
- unsigned int discard_alignment;
-
- unsigned short logical_block_size;
- unsigned short max_segments;
- unsigned short max_integrity_segments;
-
- unsigned char misaligned;
- unsigned char discard_misaligned;
- unsigned char cluster;
- unsigned char discard_zeroes_data;
-};
-
-struct request_queue {
- /*
- * Together with queue_head for cacheline sharing
- */
- struct list_head queue_head;
- struct request *last_merge;
- struct elevator_queue *elevator;
-
- /*
- * the queue request freelist, one for reads and one for writes
- */
- struct request_list rq;
-
- request_fn_proc *request_fn;
- make_request_fn *make_request_fn;
- prep_rq_fn *prep_rq_fn;
- unprep_rq_fn *unprep_rq_fn;
- merge_bvec_fn *merge_bvec_fn;
- softirq_done_fn *softirq_done_fn;
- rq_timed_out_fn *rq_timed_out_fn;
- dma_drain_needed_fn *dma_drain_needed;
- lld_busy_fn *lld_busy_fn;
-
- /*
- * Dispatch queue sorting
- */
- sector_t end_sector;
- struct request *boundary_rq;
-
- /*
- * Delayed queue handling
- */
- struct delayed_work delay_work;
-
- struct backing_dev_info backing_dev_info;
-
- /*
- * The queue owner gets to use this for whatever they like.
- * ll_rw_blk doesn't touch it.
- */
- void *queuedata;
-
- /*
- * various queue flags, see QUEUE_* below
- */
- unsigned long queue_flags;
-
- /*
- * ida allocated id for this queue. Used to index queues from
- * ioctx.
- */
- int id;
-
- /*
- * queue needs bounce pages for pages above this limit
- */
- gfp_t bounce_gfp;
-
- /*
- * protects queue structures from reentrancy. ->__queue_lock should
- * _never_ be used directly, it is queue private. always use
- * ->queue_lock.
- */
- spinlock_t __queue_lock;
- spinlock_t *queue_lock;
-
- /*
- * queue kobject
- */
- struct kobject kobj;
-
- /*
- * queue settings
- */
- unsigned long nr_requests; /* Max # of requests */
- unsigned int nr_congestion_on;
- unsigned int nr_congestion_off;
- unsigned int nr_batching;
-
- unsigned int dma_drain_size;
- void *dma_drain_buffer;
- unsigned int dma_pad_mask;
- unsigned int dma_alignment;
-
- struct blk_queue_tag *queue_tags;
- struct list_head tag_busy_list;
-
- unsigned int nr_sorted;
- unsigned int in_flight[2];
-
- unsigned int rq_timeout;
- struct timer_list timeout;
- struct list_head timeout_list;
-
- struct list_head icq_list;
-
- struct queue_limits limits;
-
- /*
- * sg stuff
- */
- unsigned int sg_timeout;
- unsigned int sg_reserved_size;
- int node;
-#ifdef CONFIG_BLK_DEV_IO_TRACE
- struct blk_trace *blk_trace;
-#endif
- /*
- * for flush operations
- */
- unsigned int flush_flags;
- unsigned int flush_not_queueable:1;
- unsigned int flush_queue_delayed:1;
- unsigned int flush_pending_idx:1;
- unsigned int flush_running_idx:1;
- unsigned long flush_pending_since;
- struct list_head flush_queue[2];
- struct list_head flush_data_in_flight;
- struct request flush_rq;
-
- struct mutex sysfs_lock;
-
-#if defined(CONFIG_BLK_DEV_BSG)
- bsg_job_fn *bsg_job_fn;
- int bsg_job_size;
- struct bsg_class_device bsg_dev;
-#endif
-
-#ifdef CONFIG_BLK_DEV_THROTTLING
- /* Throttle data */
- struct throtl_data *td;
-#endif
-};
-
-#define QUEUE_FLAG_QUEUED 1 /* uses generic tag queueing */
-#define QUEUE_FLAG_STOPPED 2 /* queue is stopped */
-#define QUEUE_FLAG_SYNCFULL 3 /* read queue has been filled */
-#define QUEUE_FLAG_ASYNCFULL 4 /* write queue has been filled */
-#define QUEUE_FLAG_DEAD 5 /* queue being torn down */
-#define QUEUE_FLAG_ELVSWITCH 6 /* don't use elevator, just do FIFO */
-#define QUEUE_FLAG_BIDI 7 /* queue supports bidi requests */
-#define QUEUE_FLAG_NOMERGES 8 /* disable merge attempts */
-#define QUEUE_FLAG_SAME_COMP 9 /* complete on same CPU-group */
-#define QUEUE_FLAG_FAIL_IO 10 /* fake timeout */
-#define QUEUE_FLAG_STACKABLE 11 /* supports request stacking */
-#define QUEUE_FLAG_NONROT 12 /* non-rotational device (SSD) */
-#define QUEUE_FLAG_VIRT QUEUE_FLAG_NONROT /* paravirt device */
-#define QUEUE_FLAG_IO_STAT 13 /* do IO stats */
-#define QUEUE_FLAG_DISCARD 14 /* supports DISCARD */
-#define QUEUE_FLAG_NOXMERGES 15 /* No extended merges */
-#define QUEUE_FLAG_ADD_RANDOM 16 /* Contributes to random pool */
-#define QUEUE_FLAG_SECDISCARD 17 /* supports SECDISCARD */
-#define QUEUE_FLAG_SAME_FORCE 18 /* force complete on same CPU */
-
-#define QUEUE_FLAG_DEFAULT ((1 << QUEUE_FLAG_IO_STAT) | \
- (1 << QUEUE_FLAG_STACKABLE) | \
- (1 << QUEUE_FLAG_SAME_COMP) | \
- (1 << QUEUE_FLAG_ADD_RANDOM))
-
-static inline void queue_lockdep_assert_held(struct request_queue *q)
-{
- if (q->queue_lock)
- lockdep_assert_held(q->queue_lock);
-}
-
-static inline void queue_flag_set_unlocked(unsigned int flag,
- struct request_queue *q)
-{
- __set_bit(flag, &q->queue_flags);
-}
-
-static inline int queue_flag_test_and_clear(unsigned int flag,
- struct request_queue *q)
-{
- queue_lockdep_assert_held(q);
-
- if (test_bit(flag, &q->queue_flags)) {
- __clear_bit(flag, &q->queue_flags);
- return 1;
- }
-
- return 0;
-}
-
-static inline int queue_flag_test_and_set(unsigned int flag,
- struct request_queue *q)
-{
- queue_lockdep_assert_held(q);
-
- if (!test_bit(flag, &q->queue_flags)) {
- __set_bit(flag, &q->queue_flags);
- return 0;
- }
-
- return 1;
-}
-
-static inline void queue_flag_set(unsigned int flag, struct request_queue *q)
-{
- queue_lockdep_assert_held(q);
- __set_bit(flag, &q->queue_flags);
-}
-
-static inline void queue_flag_clear_unlocked(unsigned int flag,
- struct request_queue *q)
-{
- __clear_bit(flag, &q->queue_flags);
-}
-
-static inline int queue_in_flight(struct request_queue *q)
-{
- return q->in_flight[0] + q->in_flight[1];
-}
-
-static inline void queue_flag_clear(unsigned int flag, struct request_queue *q)
-{
- queue_lockdep_assert_held(q);
- __clear_bit(flag, &q->queue_flags);
-}
-
-#define blk_queue_tagged(q) test_bit(QUEUE_FLAG_QUEUED, &(q)->queue_flags)
-#define blk_queue_stopped(q) test_bit(QUEUE_FLAG_STOPPED, &(q)->queue_flags)
-#define blk_queue_dead(q) test_bit(QUEUE_FLAG_DEAD, &(q)->queue_flags)
-#define blk_queue_nomerges(q) test_bit(QUEUE_FLAG_NOMERGES, &(q)->queue_flags)
-#define blk_queue_noxmerges(q) \
- test_bit(QUEUE_FLAG_NOXMERGES, &(q)->queue_flags)
-#define blk_queue_nonrot(q) test_bit(QUEUE_FLAG_NONROT, &(q)->queue_flags)
-#define blk_queue_io_stat(q) test_bit(QUEUE_FLAG_IO_STAT, &(q)->queue_flags)
-#define blk_queue_add_random(q) test_bit(QUEUE_FLAG_ADD_RANDOM, &(q)->queue_flags)
-#define blk_queue_stackable(q) \
- test_bit(QUEUE_FLAG_STACKABLE, &(q)->queue_flags)
-#define blk_queue_discard(q) test_bit(QUEUE_FLAG_DISCARD, &(q)->queue_flags)
-#define blk_queue_secdiscard(q) (blk_queue_discard(q) && \
- test_bit(QUEUE_FLAG_SECDISCARD, &(q)->queue_flags))
-
-#define blk_noretry_request(rq) \
- ((rq)->cmd_flags & (REQ_FAILFAST_DEV|REQ_FAILFAST_TRANSPORT| \
- REQ_FAILFAST_DRIVER))
-
-#define blk_account_rq(rq) \
- (((rq)->cmd_flags & REQ_STARTED) && \
- ((rq)->cmd_type == REQ_TYPE_FS || \
- ((rq)->cmd_flags & REQ_DISCARD)))
-
-#define blk_pm_request(rq) \
- ((rq)->cmd_type == REQ_TYPE_PM_SUSPEND || \
- (rq)->cmd_type == REQ_TYPE_PM_RESUME)
-
-#define blk_rq_cpu_valid(rq) ((rq)->cpu != -1)
-#define blk_bidi_rq(rq) ((rq)->next_rq != NULL)
-/* rq->queuelist of dequeued request must be list_empty() */
-#define blk_queued_rq(rq) (!list_empty(&(rq)->queuelist))
-
-#define list_entry_rq(ptr) list_entry((ptr), struct request, queuelist)
-
-#define rq_data_dir(rq) ((rq)->cmd_flags & 1)
-
-static inline unsigned int blk_queue_cluster(struct request_queue *q)
-{
- return q->limits.cluster;
-}
-
-/*
- * We regard a request as sync, if either a read or a sync write
- */
-static inline bool rw_is_sync(unsigned int rw_flags)
-{
- return !(rw_flags & REQ_WRITE) || (rw_flags & REQ_SYNC);
-}
-
-static inline bool rq_is_sync(struct request *rq)
-{
- return rw_is_sync(rq->cmd_flags);
-}
-
-static inline int blk_queue_full(struct request_queue *q, int sync)
-{
- if (sync)
- return test_bit(QUEUE_FLAG_SYNCFULL, &q->queue_flags);
- return test_bit(QUEUE_FLAG_ASYNCFULL, &q->queue_flags);
-}
-
-static inline void blk_set_queue_full(struct request_queue *q, int sync)
-{
- if (sync)
- queue_flag_set(QUEUE_FLAG_SYNCFULL, q);
- else
- queue_flag_set(QUEUE_FLAG_ASYNCFULL, q);
-}
-
-static inline void blk_clear_queue_full(struct request_queue *q, int sync)
-{
- if (sync)
- queue_flag_clear(QUEUE_FLAG_SYNCFULL, q);
- else
- queue_flag_clear(QUEUE_FLAG_ASYNCFULL, q);
-}
-
-
-/*
- * mergeable request must not have _NOMERGE or _BARRIER bit set, nor may
- * it already be started by driver.
- */
-#define RQ_NOMERGE_FLAGS \
- (REQ_NOMERGE | REQ_STARTED | REQ_SOFTBARRIER | REQ_FLUSH | REQ_FUA)
-#define rq_mergeable(rq) \
- (!((rq)->cmd_flags & RQ_NOMERGE_FLAGS) && \
- (((rq)->cmd_flags & REQ_DISCARD) || \
- (rq)->cmd_type == REQ_TYPE_FS))
-
-/*
- * q->prep_rq_fn return values
- */
-#define BLKPREP_OK 0 /* serve it */
-#define BLKPREP_KILL 1 /* fatal error, kill */
-#define BLKPREP_DEFER 2 /* leave on queue */
-
-extern unsigned long blk_max_low_pfn, blk_max_pfn;
-
-/*
- * standard bounce addresses:
- *
- * BLK_BOUNCE_HIGH : bounce all highmem pages
- * BLK_BOUNCE_ANY : don't bounce anything
- * BLK_BOUNCE_ISA : bounce pages above ISA DMA boundary
- */
-
-#if BITS_PER_LONG == 32
-#define BLK_BOUNCE_HIGH ((u64)blk_max_low_pfn << PAGE_SHIFT)
-#else
-#define BLK_BOUNCE_HIGH -1ULL
-#endif
-#define BLK_BOUNCE_ANY (-1ULL)
-#define BLK_BOUNCE_ISA (DMA_BIT_MASK(24))
-
-/*
- * default timeout for SG_IO if none specified
- */
-#define BLK_DEFAULT_SG_TIMEOUT (60 * HZ)
-#define BLK_MIN_SG_TIMEOUT (7 * HZ)
-
-#ifdef CONFIG_BOUNCE
-extern int init_emergency_isa_pool(void);
-extern void blk_queue_bounce(struct request_queue *q, struct bio **bio);
-#else
-static inline int init_emergency_isa_pool(void)
-{
- return 0;
-}
-static inline void blk_queue_bounce(struct request_queue *q, struct bio **bio)
-{
-}
-#endif /* CONFIG_MMU */
-
-struct rq_map_data {
- struct page **pages;
- int page_order;
- int nr_entries;
- unsigned long offset;
- int null_mapped;
- int from_user;
-};
-
-struct req_iterator {
- int i;
- struct bio *bio;
-};
-
-/* This should not be used directly - use rq_for_each_segment */
-#define for_each_bio(_bio) \
- for (; _bio; _bio = _bio->bi_next)
-#define __rq_for_each_bio(_bio, rq) \
- if ((rq->bio)) \
- for (_bio = (rq)->bio; _bio; _bio = _bio->bi_next)
-
-#define rq_for_each_segment(bvl, _rq, _iter) \
- __rq_for_each_bio(_iter.bio, _rq) \
- bio_for_each_segment(bvl, _iter.bio, _iter.i)
-
-#define rq_iter_last(rq, _iter) \
- (_iter.bio->bi_next == NULL && _iter.i == _iter.bio->bi_vcnt-1)
-
-#ifndef ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE
-# error "You should define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE for your platform"
-#endif
-#if ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE
-extern void rq_flush_dcache_pages(struct request *rq);
-#else
-static inline void rq_flush_dcache_pages(struct request *rq)
-{
-}
-#endif
-
-extern int blk_register_queue(struct gendisk *disk);
-extern void blk_unregister_queue(struct gendisk *disk);
-extern void generic_make_request(struct bio *bio);
-extern void blk_rq_init(struct request_queue *q, struct request *rq);
-extern void blk_put_request(struct request *);
-extern void __blk_put_request(struct request_queue *, struct request *);
-extern struct request *blk_get_request(struct request_queue *, int, gfp_t);
-extern struct request *blk_make_request(struct request_queue *, struct bio *,
- gfp_t);
-extern void blk_requeue_request(struct request_queue *, struct request *);
-extern void blk_add_request_payload(struct request *rq, struct page *page,
- unsigned int len);
-extern int blk_rq_check_limits(struct request_queue *q, struct request *rq);
-extern int blk_lld_busy(struct request_queue *q);
-extern int blk_rq_prep_clone(struct request *rq, struct request *rq_src,
- struct bio_set *bs, gfp_t gfp_mask,
- int (*bio_ctr)(struct bio *, struct bio *, void *),
- void *data);
-extern void blk_rq_unprep_clone(struct request *rq);
-extern int blk_insert_cloned_request(struct request_queue *q,
- struct request *rq);
-extern void blk_delay_queue(struct request_queue *, unsigned long);
-extern void blk_recount_segments(struct request_queue *, struct bio *);
-extern int scsi_verify_blk_ioctl(struct block_device *, unsigned int);
-extern int scsi_cmd_blk_ioctl(struct block_device *, fmode_t,
- unsigned int, void __user *);
-extern int scsi_cmd_ioctl(struct request_queue *, struct gendisk *, fmode_t,
- unsigned int, void __user *);
-extern int sg_scsi_ioctl(struct request_queue *, struct gendisk *, fmode_t,
- struct scsi_ioctl_command __user *);
-
-extern void blk_queue_bio(struct request_queue *q, struct bio *bio);
-
-/*
- * A queue has just exitted congestion. Note this in the global counter of
- * congested queues, and wake up anyone who was waiting for requests to be
- * put back.
- */
-static inline void blk_clear_queue_congested(struct request_queue *q, int sync)
-{
- clear_bdi_congested(&q->backing_dev_info, sync);
-}
-
-/*
- * A queue has just entered congestion. Flag that in the queue's VM-visible
- * state flags and increment the global gounter of congested queues.
- */
-static inline void blk_set_queue_congested(struct request_queue *q, int sync)
-{
- set_bdi_congested(&q->backing_dev_info, sync);
-}
-
-extern void blk_start_queue(struct request_queue *q);
-extern void blk_stop_queue(struct request_queue *q);
-extern void blk_sync_queue(struct request_queue *q);
-extern void __blk_stop_queue(struct request_queue *q);
-extern void __blk_run_queue(struct request_queue *q);
-extern void blk_run_queue(struct request_queue *);
-extern void blk_run_queue_async(struct request_queue *q);
-extern int blk_rq_map_user(struct request_queue *, struct request *,
- struct rq_map_data *, void __user *, unsigned long,
- gfp_t);
-extern int blk_rq_unmap_user(struct bio *);
-extern int blk_rq_map_kern(struct request_queue *, struct request *, void *, unsigned int, gfp_t);
-extern int blk_rq_map_user_iov(struct request_queue *, struct request *,
- struct rq_map_data *, struct sg_iovec *, int,
- unsigned int, gfp_t);
-extern int blk_execute_rq(struct request_queue *, struct gendisk *,
- struct request *, int);
-extern void blk_execute_rq_nowait(struct request_queue *, struct gendisk *,
- struct request *, int, rq_end_io_fn *);
-
-static inline struct request_queue *bdev_get_queue(struct block_device *bdev)
-{
- return bdev->bd_disk->queue;
-}
-
-/*
- * blk_rq_pos() : the current sector
- * blk_rq_bytes() : bytes left in the entire request
- * blk_rq_cur_bytes() : bytes left in the current segment
- * blk_rq_err_bytes() : bytes left till the next error boundary
- * blk_rq_sectors() : sectors left in the entire request
- * blk_rq_cur_sectors() : sectors left in the current segment
- */
-static inline sector_t blk_rq_pos(const struct request *rq)
-{
- return rq->__sector;
-}
-
-static inline unsigned int blk_rq_bytes(const struct request *rq)
-{
- return rq->__data_len;
-}
-
-static inline int blk_rq_cur_bytes(const struct request *rq)
-{
- return rq->bio ? bio_cur_bytes(rq->bio) : 0;
-}
-
-extern unsigned int blk_rq_err_bytes(const struct request *rq);
-
-static inline unsigned int blk_rq_sectors(const struct request *rq)
-{
- return blk_rq_bytes(rq) >> 9;
-}
-
-static inline unsigned int blk_rq_cur_sectors(const struct request *rq)
-{
- return blk_rq_cur_bytes(rq) >> 9;
-}
-
-/*
- * Request issue related functions.
- */
-extern struct request *blk_peek_request(struct request_queue *q);
-extern void blk_start_request(struct request *rq);
-extern struct request *blk_fetch_request(struct request_queue *q);
-
-/*
- * Request completion related functions.
- *
- * blk_update_request() completes given number of bytes and updates
- * the request without completing it.
- *
- * blk_end_request() and friends. __blk_end_request() must be called
- * with the request queue spinlock acquired.
- *
- * Several drivers define their own end_request and call
- * blk_end_request() for parts of the original function.
- * This prevents code duplication in drivers.
- */
-extern bool blk_update_request(struct request *rq, int error,
- unsigned int nr_bytes);
-extern bool blk_end_request(struct request *rq, int error,
- unsigned int nr_bytes);
-extern void blk_end_request_all(struct request *rq, int error);
-extern bool blk_end_request_cur(struct request *rq, int error);
-extern bool blk_end_request_err(struct request *rq, int error);
-extern bool __blk_end_request(struct request *rq, int error,
- unsigned int nr_bytes);
-extern void __blk_end_request_all(struct request *rq, int error);
-extern bool __blk_end_request_cur(struct request *rq, int error);
-extern bool __blk_end_request_err(struct request *rq, int error);
-
-extern void blk_complete_request(struct request *);
-extern void __blk_complete_request(struct request *);
-extern void blk_abort_request(struct request *);
-extern void blk_abort_queue(struct request_queue *);
-extern void blk_unprep_request(struct request *);
-
-/*
- * Access functions for manipulating queue properties
- */
-extern struct request_queue *blk_init_queue_node(request_fn_proc *rfn,
- spinlock_t *lock, int node_id);
-extern struct request_queue *blk_init_queue(request_fn_proc *, spinlock_t *);
-extern struct request_queue *blk_init_allocated_queue(struct request_queue *,
- request_fn_proc *, spinlock_t *);
-extern void blk_cleanup_queue(struct request_queue *);
-extern void blk_queue_make_request(struct request_queue *, make_request_fn *);
-extern void blk_queue_bounce_limit(struct request_queue *, u64);
-extern void blk_limits_max_hw_sectors(struct queue_limits *, unsigned int);
-extern void blk_queue_max_hw_sectors(struct request_queue *, unsigned int);
-extern void blk_queue_max_segments(struct request_queue *, unsigned short);
-extern void blk_queue_max_segment_size(struct request_queue *, unsigned int);
-extern void blk_queue_max_discard_sectors(struct request_queue *q,
- unsigned int max_discard_sectors);
-extern void blk_queue_logical_block_size(struct request_queue *, unsigned short);
-extern void blk_queue_physical_block_size(struct request_queue *, unsigned int);
-extern void blk_queue_alignment_offset(struct request_queue *q,
- unsigned int alignment);
-extern void blk_limits_io_min(struct queue_limits *limits, unsigned int min);
-extern void blk_queue_io_min(struct request_queue *q, unsigned int min);
-extern void blk_limits_io_opt(struct queue_limits *limits, unsigned int opt);
-extern void blk_queue_io_opt(struct request_queue *q, unsigned int opt);
-extern void blk_set_default_limits(struct queue_limits *lim);
-extern void blk_set_stacking_limits(struct queue_limits *lim);
-extern int blk_stack_limits(struct queue_limits *t, struct queue_limits *b,
- sector_t offset);
-extern int bdev_stack_limits(struct queue_limits *t, struct block_device *bdev,
- sector_t offset);
-extern void disk_stack_limits(struct gendisk *disk, struct block_device *bdev,
- sector_t offset);
-extern void blk_queue_stack_limits(struct request_queue *t, struct request_queue *b);
-extern void blk_queue_dma_pad(struct request_queue *, unsigned int);
-extern void blk_queue_update_dma_pad(struct request_queue *, unsigned int);
-extern int blk_queue_dma_drain(struct request_queue *q,
- dma_drain_needed_fn *dma_drain_needed,
- void *buf, unsigned int size);
-extern void blk_queue_lld_busy(struct request_queue *q, lld_busy_fn *fn);
-extern void blk_queue_segment_boundary(struct request_queue *, unsigned long);
-extern void blk_queue_prep_rq(struct request_queue *, prep_rq_fn *pfn);
-extern void blk_queue_unprep_rq(struct request_queue *, unprep_rq_fn *ufn);
-extern void blk_queue_merge_bvec(struct request_queue *, merge_bvec_fn *);
-extern void blk_queue_dma_alignment(struct request_queue *, int);
-extern void blk_queue_update_dma_alignment(struct request_queue *, int);
-extern void blk_queue_softirq_done(struct request_queue *, softirq_done_fn *);
-extern void blk_queue_rq_timed_out(struct request_queue *, rq_timed_out_fn *);
-extern void blk_queue_rq_timeout(struct request_queue *, unsigned int);
-extern void blk_queue_flush(struct request_queue *q, unsigned int flush);
-extern void blk_queue_flush_queueable(struct request_queue *q, bool queueable);
-extern struct backing_dev_info *blk_get_backing_dev_info(struct block_device *bdev);
-
-extern int blk_rq_map_sg(struct request_queue *, struct request *, struct scatterlist *);
-extern void blk_dump_rq_flags(struct request *, char *);
-extern long nr_blockdev_pages(void);
-
-bool __must_check blk_get_queue(struct request_queue *);
-struct request_queue *blk_alloc_queue(gfp_t);
-struct request_queue *blk_alloc_queue_node(gfp_t, int);
-extern void blk_put_queue(struct request_queue *);
-
-/*
- * blk_plug permits building a queue of related requests by holding the I/O
- * fragments for a short period. This allows merging of sequential requests
- * into single larger request. As the requests are moved from a per-task list to
- * the device's request_queue in a batch, this results in improved scalability
- * as the lock contention for request_queue lock is reduced.
- *
- * It is ok not to disable preemption when adding the request to the plug list
- * or when attempting a merge, because blk_schedule_flush_list() will only flush
- * the plug list when the task sleeps by itself. For details, please see
- * schedule() where blk_schedule_flush_plug() is called.
- */
-struct blk_plug {
- unsigned long magic; /* detect uninitialized use-cases */
- struct list_head list; /* requests */
- struct list_head cb_list; /* md requires an unplug callback */
- unsigned int should_sort; /* list to be sorted before flushing? */
-};
-#define BLK_MAX_REQUEST_COUNT 16
-
-struct blk_plug_cb {
- struct list_head list;
- void (*callback)(struct blk_plug_cb *);
-};
-
-extern void blk_start_plug(struct blk_plug *);
-extern void blk_finish_plug(struct blk_plug *);
-extern void blk_flush_plug_list(struct blk_plug *, bool);
-
-static inline void blk_flush_plug(struct task_struct *tsk)
-{
- struct blk_plug *plug = tsk->plug;
-
- if (plug)
- blk_flush_plug_list(plug, false);
-}
-
-static inline void blk_schedule_flush_plug(struct task_struct *tsk)
-{
- struct blk_plug *plug = tsk->plug;
-
- if (plug)
- blk_flush_plug_list(plug, true);
-}
-
-static inline bool blk_needs_flush_plug(struct task_struct *tsk)
-{
- struct blk_plug *plug = tsk->plug;
-
- return plug && (!list_empty(&plug->list) || !list_empty(&plug->cb_list));
-}
-
-/*
- * tag stuff
- */
-#define blk_rq_tagged(rq) ((rq)->cmd_flags & REQ_QUEUED)
-extern int blk_queue_start_tag(struct request_queue *, struct request *);
-extern struct request *blk_queue_find_tag(struct request_queue *, int);
-extern void blk_queue_end_tag(struct request_queue *, struct request *);
-extern int blk_queue_init_tags(struct request_queue *, int, struct blk_queue_tag *);
-extern void blk_queue_free_tags(struct request_queue *);
-extern int blk_queue_resize_tags(struct request_queue *, int);
-extern void blk_queue_invalidate_tags(struct request_queue *);
-extern struct blk_queue_tag *blk_init_tags(int);
-extern void blk_free_tags(struct blk_queue_tag *);
-
-static inline struct request *blk_map_queue_find_tag(struct blk_queue_tag *bqt,
- int tag)
-{
- if (unlikely(bqt == NULL || tag >= bqt->real_max_depth))
- return NULL;
- return bqt->tag_index[tag];
-}
-
-#define BLKDEV_DISCARD_SECURE 0x01 /* secure discard */
-
-extern int blkdev_issue_flush(struct block_device *, gfp_t, sector_t *);
-extern int blkdev_issue_discard(struct block_device *bdev, sector_t sector,
- sector_t nr_sects, gfp_t gfp_mask, unsigned long flags);
-extern int blkdev_issue_zeroout(struct block_device *bdev, sector_t sector,
- sector_t nr_sects, gfp_t gfp_mask);
-static inline int sb_issue_discard(struct super_block *sb, sector_t block,
- sector_t nr_blocks, gfp_t gfp_mask, unsigned long flags)
-{
- return blkdev_issue_discard(sb->s_bdev, block << (sb->s_blocksize_bits - 9),
- nr_blocks << (sb->s_blocksize_bits - 9),
- gfp_mask, flags);
-}
-static inline int sb_issue_zeroout(struct super_block *sb, sector_t block,
- sector_t nr_blocks, gfp_t gfp_mask)
-{
- return blkdev_issue_zeroout(sb->s_bdev,
- block << (sb->s_blocksize_bits - 9),
- nr_blocks << (sb->s_blocksize_bits - 9),
- gfp_mask);
-}
-
-extern int blk_verify_command(unsigned char *cmd, fmode_t has_write_perm);
-
-enum blk_default_limits {
- BLK_MAX_SEGMENTS = 128,
- BLK_SAFE_MAX_SECTORS = 255,
- BLK_DEF_MAX_SECTORS = 1024,
- BLK_MAX_SEGMENT_SIZE = 65536,
- BLK_SEG_BOUNDARY_MASK = 0xFFFFFFFFUL,
-};
-
-#define blkdev_entry_to_request(entry) list_entry((entry), struct request, queuelist)
-
-static inline unsigned long queue_bounce_pfn(struct request_queue *q)
-{
- return q->limits.bounce_pfn;
-}
-
-static inline unsigned long queue_segment_boundary(struct request_queue *q)
-{
- return q->limits.seg_boundary_mask;
-}
-
-static inline unsigned int queue_max_sectors(struct request_queue *q)
-{
- return q->limits.max_sectors;
-}
-
-static inline unsigned int queue_max_hw_sectors(struct request_queue *q)
-{
- return q->limits.max_hw_sectors;
-}
-
-static inline unsigned short queue_max_segments(struct request_queue *q)
-{
- return q->limits.max_segments;
-}
-
-static inline unsigned int queue_max_segment_size(struct request_queue *q)
-{
- return q->limits.max_segment_size;
-}
-
-static inline unsigned short queue_logical_block_size(struct request_queue *q)
-{
- int retval = 512;
-
- if (q && q->limits.logical_block_size)
- retval = q->limits.logical_block_size;
-
- return retval;
-}
-
-static inline unsigned short bdev_logical_block_size(struct block_device *bdev)
-{
- return queue_logical_block_size(bdev_get_queue(bdev));
-}
-
-static inline unsigned int queue_physical_block_size(struct request_queue *q)
-{
- return q->limits.physical_block_size;
-}
-
-static inline unsigned int bdev_physical_block_size(struct block_device *bdev)
-{
- return queue_physical_block_size(bdev_get_queue(bdev));
-}
-
-static inline unsigned int queue_io_min(struct request_queue *q)
-{
- return q->limits.io_min;
-}
-
-static inline int bdev_io_min(struct block_device *bdev)
-{
- return queue_io_min(bdev_get_queue(bdev));
-}
-
-static inline unsigned int queue_io_opt(struct request_queue *q)
-{
- return q->limits.io_opt;
-}
-
-static inline int bdev_io_opt(struct block_device *bdev)
-{
- return queue_io_opt(bdev_get_queue(bdev));
-}
-
-static inline int queue_alignment_offset(struct request_queue *q)
-{
- if (q->limits.misaligned)
- return -1;
-
- return q->limits.alignment_offset;
-}
-
-static inline int queue_limit_alignment_offset(struct queue_limits *lim, sector_t sector)
-{
- unsigned int granularity = max(lim->physical_block_size, lim->io_min);
- unsigned int alignment = (sector << 9) & (granularity - 1);
-
- return (granularity + lim->alignment_offset - alignment)
- & (granularity - 1);
-}
-
-static inline int bdev_alignment_offset(struct block_device *bdev)
-{
- struct request_queue *q = bdev_get_queue(bdev);
-
- if (q->limits.misaligned)
- return -1;
-
- if (bdev != bdev->bd_contains)
- return bdev->bd_part->alignment_offset;
-
- return q->limits.alignment_offset;
-}
-
-static inline int queue_discard_alignment(struct request_queue *q)
-{
- if (q->limits.discard_misaligned)
- return -1;
-
- return q->limits.discard_alignment;
-}
-
-static inline int queue_limit_discard_alignment(struct queue_limits *lim, sector_t sector)
-{
- unsigned int alignment = (sector << 9) & (lim->discard_granularity - 1);
-
- if (!lim->max_discard_sectors)
- return 0;
-
- return (lim->discard_granularity + lim->discard_alignment - alignment)
- & (lim->discard_granularity - 1);
-}
-
-static inline unsigned int queue_discard_zeroes_data(struct request_queue *q)
-{
- if (q->limits.max_discard_sectors && q->limits.discard_zeroes_data == 1)
- return 1;
-
- return 0;
-}
-
-static inline unsigned int bdev_discard_zeroes_data(struct block_device *bdev)
-{
- return queue_discard_zeroes_data(bdev_get_queue(bdev));
-}
-
-static inline int queue_dma_alignment(struct request_queue *q)
-{
- return q ? q->dma_alignment : 511;
-}
-
-static inline int blk_rq_aligned(struct request_queue *q, unsigned long addr,
- unsigned int len)
-{
- unsigned int alignment = queue_dma_alignment(q) | q->dma_pad_mask;
- return !(addr & alignment) && !(len & alignment);
-}
-
-/* assumes size > 256 */
-static inline unsigned int blksize_bits(unsigned int size)
-{
- unsigned int bits = 8;
- do {
- bits++;
- size >>= 1;
- } while (size > 256);
- return bits;
-}
-
-static inline unsigned int block_size(struct block_device *bdev)
-{
- return bdev->bd_block_size;
-}
-
-static inline bool queue_flush_queueable(struct request_queue *q)
-{
- return !q->flush_not_queueable;
-}
-
-typedef struct {struct page *v;} Sector;
-
-unsigned char *read_dev_sector(struct block_device *, sector_t, Sector *);
-
-static inline void put_dev_sector(Sector p)
-{
- page_cache_release(p.v);
-}
-
-struct work_struct;
-int kblockd_schedule_work(struct request_queue *q, struct work_struct *work);
-
-#ifdef CONFIG_BLK_CGROUP
-/*
- * This should not be using sched_clock(). A real patch is in progress
- * to fix this up, until that is in place we need to disable preemption
- * around sched_clock() in this function and set_io_start_time_ns().
- */
-static inline void set_start_time_ns(struct request *req)
-{
- preempt_disable();
- req->start_time_ns = sched_clock();
- preempt_enable();
-}
-
-static inline void set_io_start_time_ns(struct request *req)
-{
- preempt_disable();
- req->io_start_time_ns = sched_clock();
- preempt_enable();
-}
-
-static inline uint64_t rq_start_time_ns(struct request *req)
-{
- return req->start_time_ns;
-}
-
-static inline uint64_t rq_io_start_time_ns(struct request *req)
-{
- return req->io_start_time_ns;
-}
-#else
-static inline void set_start_time_ns(struct request *req) {}
-static inline void set_io_start_time_ns(struct request *req) {}
-static inline uint64_t rq_start_time_ns(struct request *req)
-{
- return 0;
-}
-static inline uint64_t rq_io_start_time_ns(struct request *req)
-{
- return 0;
-}
-#endif
-
-#define MODULE_ALIAS_BLOCKDEV(major,minor) \
- MODULE_ALIAS("block-major-" __stringify(major) "-" __stringify(minor))
-#define MODULE_ALIAS_BLOCKDEV_MAJOR(major) \
- MODULE_ALIAS("block-major-" __stringify(major) "-*")
-
-#if defined(CONFIG_BLK_DEV_INTEGRITY)
-
-#define INTEGRITY_FLAG_READ 2 /* verify data integrity on read */
-#define INTEGRITY_FLAG_WRITE 4 /* generate data integrity on write */
-
-struct blk_integrity_exchg {
- void *prot_buf;
- void *data_buf;
- sector_t sector;
- unsigned int data_size;
- unsigned short sector_size;
- const char *disk_name;
-};
-
-typedef void (integrity_gen_fn) (struct blk_integrity_exchg *);
-typedef int (integrity_vrfy_fn) (struct blk_integrity_exchg *);
-typedef void (integrity_set_tag_fn) (void *, void *, unsigned int);
-typedef void (integrity_get_tag_fn) (void *, void *, unsigned int);
-
-struct blk_integrity {
- integrity_gen_fn *generate_fn;
- integrity_vrfy_fn *verify_fn;
- integrity_set_tag_fn *set_tag_fn;
- integrity_get_tag_fn *get_tag_fn;
-
- unsigned short flags;
- unsigned short tuple_size;
- unsigned short sector_size;
- unsigned short tag_size;
-
- const char *name;
-
- struct kobject kobj;
-};
-
-extern bool blk_integrity_is_initialized(struct gendisk *);
-extern int blk_integrity_register(struct gendisk *, struct blk_integrity *);
-extern void blk_integrity_unregister(struct gendisk *);
-extern int blk_integrity_compare(struct gendisk *, struct gendisk *);
-extern int blk_rq_map_integrity_sg(struct request_queue *, struct bio *,
- struct scatterlist *);
-extern int blk_rq_count_integrity_sg(struct request_queue *, struct bio *);
-extern int blk_integrity_merge_rq(struct request_queue *, struct request *,
- struct request *);
-extern int blk_integrity_merge_bio(struct request_queue *, struct request *,
- struct bio *);
-
-static inline
-struct blk_integrity *bdev_get_integrity(struct block_device *bdev)
-{
- return bdev->bd_disk->integrity;
-}
-
-static inline struct blk_integrity *blk_get_integrity(struct gendisk *disk)
-{
- return disk->integrity;
-}
-
-static inline int blk_integrity_rq(struct request *rq)
-{
- if (rq->bio == NULL)
- return 0;
-
- return bio_integrity(rq->bio);
-}
-
-static inline void blk_queue_max_integrity_segments(struct request_queue *q,
- unsigned int segs)
-{
- q->limits.max_integrity_segments = segs;
-}
-
-static inline unsigned short
-queue_max_integrity_segments(struct request_queue *q)
-{
- return q->limits.max_integrity_segments;
-}
-
-#else /* CONFIG_BLK_DEV_INTEGRITY */
-
-struct bio;
-struct block_device;
-struct gendisk;
-struct blk_integrity;
-
-static inline int blk_integrity_rq(struct request *rq)
-{
- return 0;
-}
-static inline int blk_rq_count_integrity_sg(struct request_queue *q,
- struct bio *b)
-{
- return 0;
-}
-static inline int blk_rq_map_integrity_sg(struct request_queue *q,
- struct bio *b,
- struct scatterlist *s)
-{
- return 0;
-}
-static inline struct blk_integrity *bdev_get_integrity(struct block_device *b)
-{
- return 0;
-}
-static inline struct blk_integrity *blk_get_integrity(struct gendisk *disk)
-{
- return NULL;
-}
-static inline int blk_integrity_compare(struct gendisk *a, struct gendisk *b)
-{
- return 0;
-}
-static inline int blk_integrity_register(struct gendisk *d,
- struct blk_integrity *b)
-{
- return 0;
-}
-static inline void blk_integrity_unregister(struct gendisk *d)
-{
-}
-static inline void blk_queue_max_integrity_segments(struct request_queue *q,
- unsigned int segs)
-{
-}
-static inline unsigned short queue_max_integrity_segments(struct request_queue *q)
-{
- return 0;
-}
-static inline int blk_integrity_merge_rq(struct request_queue *rq,
- struct request *r1,
- struct request *r2)
-{
- return 0;
-}
-static inline int blk_integrity_merge_bio(struct request_queue *rq,
- struct request *r,
- struct bio *b)
-{
- return 0;
-}
-static inline bool blk_integrity_is_initialized(struct gendisk *g)
-{
- return 0;
-}
-
-#endif /* CONFIG_BLK_DEV_INTEGRITY */
-
-struct block_device_operations {
- int (*open) (struct block_device *, fmode_t);
- int (*release) (struct gendisk *, fmode_t);
- int (*ioctl) (struct block_device *, fmode_t, unsigned, unsigned long);
- int (*compat_ioctl) (struct block_device *, fmode_t, unsigned, unsigned long);
- int (*direct_access) (struct block_device *, sector_t,
- void **, unsigned long *);
- unsigned int (*check_events) (struct gendisk *disk,
- unsigned int clearing);
- /* ->media_changed() is DEPRECATED, use ->check_events() instead */
- int (*media_changed) (struct gendisk *);
- void (*unlock_native_capacity) (struct gendisk *);
- int (*revalidate_disk) (struct gendisk *);
- int (*getgeo)(struct block_device *, struct hd_geometry *);
- /* this callback is with swap_lock and sometimes page table lock held */
- void (*swap_slot_free_notify) (struct block_device *, unsigned long);
- struct module *owner;
-};
-
-extern int __blkdev_driver_ioctl(struct block_device *, fmode_t, unsigned int,
- unsigned long);
-#else /* CONFIG_BLOCK */
-/*
- * stubs for when the block layer is configured out
- */
-#define buffer_heads_over_limit 0
-
-static inline long nr_blockdev_pages(void)
-{
- return 0;
-}
-
-struct blk_plug {
-};
-
-static inline void blk_start_plug(struct blk_plug *plug)
-{
-}
-
-static inline void blk_finish_plug(struct blk_plug *plug)
-{
-}
-
-static inline void blk_flush_plug(struct task_struct *task)
-{
-}
-
-static inline void blk_schedule_flush_plug(struct task_struct *task)
-{
-}
-
-
-static inline bool blk_needs_flush_plug(struct task_struct *tsk)
-{
- return false;
-}
-
-#endif /* CONFIG_BLOCK */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/blkpg.h b/ANDROID_3.4.5/include/linux/blkpg.h
deleted file mode 100644
index faf8a45a..00000000
--- a/ANDROID_3.4.5/include/linux/blkpg.h
+++ /dev/null
@@ -1,58 +0,0 @@
-#ifndef _LINUX_BLKPG_H
-#define _LINUX_BLKPG_H
-
-/*
- * Partition table and disk geometry handling
- *
- * A single ioctl with lots of subfunctions:
- *
- * Device number stuff:
- * get_whole_disk() (given the device number of a partition,
- * find the device number of the encompassing disk)
- * get_all_partitions() (given the device number of a disk, return the
- * device numbers of all its known partitions)
- *
- * Partition stuff:
- * add_partition()
- * delete_partition()
- * test_partition_in_use() (also for test_disk_in_use)
- *
- * Geometry stuff:
- * get_geometry()
- * set_geometry()
- * get_bios_drivedata()
- *
- * For today, only the partition stuff - aeb, 990515
- */
-#include <linux/compiler.h>
-#include <linux/ioctl.h>
-
-#define BLKPG _IO(0x12,105)
-
-/* The argument structure */
-struct blkpg_ioctl_arg {
- int op;
- int flags;
- int datalen;
- void __user *data;
-};
-
-/* The subfunctions (for the op field) */
-#define BLKPG_ADD_PARTITION 1
-#define BLKPG_DEL_PARTITION 2
-
-/* Sizes of name fields. Unused at present. */
-#define BLKPG_DEVNAMELTH 64
-#define BLKPG_VOLNAMELTH 64
-
-/* The data structure for ADD_PARTITION and DEL_PARTITION */
-struct blkpg_partition {
- long long start; /* starting offset in bytes */
- long long length; /* length in bytes */
- int pno; /* partition number */
- char devname[BLKPG_DEVNAMELTH]; /* partition name, like sda5 or c0d1p2,
- to be used in kernel messages */
- char volname[BLKPG_VOLNAMELTH]; /* volume label */
-};
-
-#endif /* _LINUX_BLKPG_H */
diff --git a/ANDROID_3.4.5/include/linux/blktrace_api.h b/ANDROID_3.4.5/include/linux/blktrace_api.h
deleted file mode 100644
index 4d1a0748..00000000
--- a/ANDROID_3.4.5/include/linux/blktrace_api.h
+++ /dev/null
@@ -1,254 +0,0 @@
-#ifndef BLKTRACE_H
-#define BLKTRACE_H
-
-#include <linux/types.h>
-#ifdef __KERNEL__
-#include <linux/blkdev.h>
-#include <linux/relay.h>
-#include <linux/compat.h>
-#endif
-
-/*
- * Trace categories
- */
-enum blktrace_cat {
- BLK_TC_READ = 1 << 0, /* reads */
- BLK_TC_WRITE = 1 << 1, /* writes */
- BLK_TC_FLUSH = 1 << 2, /* flush */
- BLK_TC_SYNC = 1 << 3, /* sync IO */
- BLK_TC_SYNCIO = BLK_TC_SYNC,
- BLK_TC_QUEUE = 1 << 4, /* queueing/merging */
- BLK_TC_REQUEUE = 1 << 5, /* requeueing */
- BLK_TC_ISSUE = 1 << 6, /* issue */
- BLK_TC_COMPLETE = 1 << 7, /* completions */
- BLK_TC_FS = 1 << 8, /* fs requests */
- BLK_TC_PC = 1 << 9, /* pc requests */
- BLK_TC_NOTIFY = 1 << 10, /* special message */
- BLK_TC_AHEAD = 1 << 11, /* readahead */
- BLK_TC_META = 1 << 12, /* metadata */
- BLK_TC_DISCARD = 1 << 13, /* discard requests */
- BLK_TC_DRV_DATA = 1 << 14, /* binary per-driver data */
- BLK_TC_FUA = 1 << 15, /* fua requests */
-
- BLK_TC_END = 1 << 15, /* we've run out of bits! */
-};
-
-#define BLK_TC_SHIFT (16)
-#define BLK_TC_ACT(act) ((act) << BLK_TC_SHIFT)
-
-/*
- * Basic trace actions
- */
-enum blktrace_act {
- __BLK_TA_QUEUE = 1, /* queued */
- __BLK_TA_BACKMERGE, /* back merged to existing rq */
- __BLK_TA_FRONTMERGE, /* front merge to existing rq */
- __BLK_TA_GETRQ, /* allocated new request */
- __BLK_TA_SLEEPRQ, /* sleeping on rq allocation */
- __BLK_TA_REQUEUE, /* request requeued */
- __BLK_TA_ISSUE, /* sent to driver */
- __BLK_TA_COMPLETE, /* completed by driver */
- __BLK_TA_PLUG, /* queue was plugged */
- __BLK_TA_UNPLUG_IO, /* queue was unplugged by io */
- __BLK_TA_UNPLUG_TIMER, /* queue was unplugged by timer */
- __BLK_TA_INSERT, /* insert request */
- __BLK_TA_SPLIT, /* bio was split */
- __BLK_TA_BOUNCE, /* bio was bounced */
- __BLK_TA_REMAP, /* bio was remapped */
- __BLK_TA_ABORT, /* request aborted */
- __BLK_TA_DRV_DATA, /* driver-specific binary data */
-};
-
-/*
- * Notify events.
- */
-enum blktrace_notify {
- __BLK_TN_PROCESS = 0, /* establish pid/name mapping */
- __BLK_TN_TIMESTAMP, /* include system clock */
- __BLK_TN_MESSAGE, /* Character string message */
-};
-
-
-/*
- * Trace actions in full. Additionally, read or write is masked
- */
-#define BLK_TA_QUEUE (__BLK_TA_QUEUE | BLK_TC_ACT(BLK_TC_QUEUE))
-#define BLK_TA_BACKMERGE (__BLK_TA_BACKMERGE | BLK_TC_ACT(BLK_TC_QUEUE))
-#define BLK_TA_FRONTMERGE (__BLK_TA_FRONTMERGE | BLK_TC_ACT(BLK_TC_QUEUE))
-#define BLK_TA_GETRQ (__BLK_TA_GETRQ | BLK_TC_ACT(BLK_TC_QUEUE))
-#define BLK_TA_SLEEPRQ (__BLK_TA_SLEEPRQ | BLK_TC_ACT(BLK_TC_QUEUE))
-#define BLK_TA_REQUEUE (__BLK_TA_REQUEUE | BLK_TC_ACT(BLK_TC_REQUEUE))
-#define BLK_TA_ISSUE (__BLK_TA_ISSUE | BLK_TC_ACT(BLK_TC_ISSUE))
-#define BLK_TA_COMPLETE (__BLK_TA_COMPLETE| BLK_TC_ACT(BLK_TC_COMPLETE))
-#define BLK_TA_PLUG (__BLK_TA_PLUG | BLK_TC_ACT(BLK_TC_QUEUE))
-#define BLK_TA_UNPLUG_IO (__BLK_TA_UNPLUG_IO | BLK_TC_ACT(BLK_TC_QUEUE))
-#define BLK_TA_UNPLUG_TIMER (__BLK_TA_UNPLUG_TIMER | BLK_TC_ACT(BLK_TC_QUEUE))
-#define BLK_TA_INSERT (__BLK_TA_INSERT | BLK_TC_ACT(BLK_TC_QUEUE))
-#define BLK_TA_SPLIT (__BLK_TA_SPLIT)
-#define BLK_TA_BOUNCE (__BLK_TA_BOUNCE)
-#define BLK_TA_REMAP (__BLK_TA_REMAP | BLK_TC_ACT(BLK_TC_QUEUE))
-#define BLK_TA_ABORT (__BLK_TA_ABORT | BLK_TC_ACT(BLK_TC_QUEUE))
-#define BLK_TA_DRV_DATA (__BLK_TA_DRV_DATA | BLK_TC_ACT(BLK_TC_DRV_DATA))
-
-#define BLK_TN_PROCESS (__BLK_TN_PROCESS | BLK_TC_ACT(BLK_TC_NOTIFY))
-#define BLK_TN_TIMESTAMP (__BLK_TN_TIMESTAMP | BLK_TC_ACT(BLK_TC_NOTIFY))
-#define BLK_TN_MESSAGE (__BLK_TN_MESSAGE | BLK_TC_ACT(BLK_TC_NOTIFY))
-
-#define BLK_IO_TRACE_MAGIC 0x65617400
-#define BLK_IO_TRACE_VERSION 0x07
-
-/*
- * The trace itself
- */
-struct blk_io_trace {
- __u32 magic; /* MAGIC << 8 | version */
- __u32 sequence; /* event number */
- __u64 time; /* in microseconds */
- __u64 sector; /* disk offset */
- __u32 bytes; /* transfer length */
- __u32 action; /* what happened */
- __u32 pid; /* who did it */
- __u32 device; /* device number */
- __u32 cpu; /* on what cpu did it happen */
- __u16 error; /* completion error */
- __u16 pdu_len; /* length of data after this trace */
-};
-
-/*
- * The remap event
- */
-struct blk_io_trace_remap {
- __be32 device_from;
- __be32 device_to;
- __be64 sector_from;
-};
-
-enum {
- Blktrace_setup = 1,
- Blktrace_running,
- Blktrace_stopped,
-};
-
-#define BLKTRACE_BDEV_SIZE 32
-
-/*
- * User setup structure passed with BLKTRACESTART
- */
-struct blk_user_trace_setup {
- char name[BLKTRACE_BDEV_SIZE]; /* output */
- __u16 act_mask; /* input */
- __u32 buf_size; /* input */
- __u32 buf_nr; /* input */
- __u64 start_lba;
- __u64 end_lba;
- __u32 pid;
-};
-
-#ifdef __KERNEL__
-#if defined(CONFIG_BLK_DEV_IO_TRACE)
-
-#include <linux/sysfs.h>
-
-struct blk_trace {
- int trace_state;
- struct rchan *rchan;
- unsigned long __percpu *sequence;
- unsigned char __percpu *msg_data;
- u16 act_mask;
- u64 start_lba;
- u64 end_lba;
- u32 pid;
- u32 dev;
- struct dentry *dir;
- struct dentry *dropped_file;
- struct dentry *msg_file;
- atomic_t dropped;
-};
-
-extern int blk_trace_ioctl(struct block_device *, unsigned, char __user *);
-extern void blk_trace_shutdown(struct request_queue *);
-extern int do_blk_trace_setup(struct request_queue *q, char *name,
- dev_t dev, struct block_device *bdev,
- struct blk_user_trace_setup *buts);
-extern __printf(2, 3)
-void __trace_note_message(struct blk_trace *, const char *fmt, ...);
-
-/**
- * blk_add_trace_msg - Add a (simple) message to the blktrace stream
- * @q: queue the io is for
- * @fmt: format to print message in
- * args... Variable argument list for format
- *
- * Description:
- * Records a (simple) message onto the blktrace stream.
- *
- * NOTE: BLK_TN_MAX_MSG characters are output at most.
- * NOTE: Can not use 'static inline' due to presence of var args...
- *
- **/
-#define blk_add_trace_msg(q, fmt, ...) \
- do { \
- struct blk_trace *bt = (q)->blk_trace; \
- if (unlikely(bt)) \
- __trace_note_message(bt, fmt, ##__VA_ARGS__); \
- } while (0)
-#define BLK_TN_MAX_MSG 128
-
-extern void blk_add_driver_data(struct request_queue *q, struct request *rq,
- void *data, size_t len);
-extern int blk_trace_setup(struct request_queue *q, char *name, dev_t dev,
- struct block_device *bdev,
- char __user *arg);
-extern int blk_trace_startstop(struct request_queue *q, int start);
-extern int blk_trace_remove(struct request_queue *q);
-extern void blk_trace_remove_sysfs(struct device *dev);
-extern int blk_trace_init_sysfs(struct device *dev);
-
-extern struct attribute_group blk_trace_attr_group;
-
-#else /* !CONFIG_BLK_DEV_IO_TRACE */
-# define blk_trace_ioctl(bdev, cmd, arg) (-ENOTTY)
-# define blk_trace_shutdown(q) do { } while (0)
-# define do_blk_trace_setup(q, name, dev, bdev, buts) (-ENOTTY)
-# define blk_add_driver_data(q, rq, data, len) do {} while (0)
-# define blk_trace_setup(q, name, dev, bdev, arg) (-ENOTTY)
-# define blk_trace_startstop(q, start) (-ENOTTY)
-# define blk_trace_remove(q) (-ENOTTY)
-# define blk_add_trace_msg(q, fmt, ...) do { } while (0)
-# define blk_trace_remove_sysfs(dev) do { } while (0)
-static inline int blk_trace_init_sysfs(struct device *dev)
-{
- return 0;
-}
-
-#endif /* CONFIG_BLK_DEV_IO_TRACE */
-
-#ifdef CONFIG_COMPAT
-
-struct compat_blk_user_trace_setup {
- char name[32];
- u16 act_mask;
- u32 buf_size;
- u32 buf_nr;
- compat_u64 start_lba;
- compat_u64 end_lba;
- u32 pid;
-};
-#define BLKTRACESETUP32 _IOWR(0x12, 115, struct compat_blk_user_trace_setup)
-
-#endif
-
-#if defined(CONFIG_EVENT_TRACING) && defined(CONFIG_BLOCK)
-
-static inline int blk_cmd_buf_len(struct request *rq)
-{
- return (rq->cmd_type == REQ_TYPE_BLOCK_PC) ? rq->cmd_len * 3 : 1;
-}
-
-extern void blk_dump_cmd(char *buf, struct request *rq);
-extern void blk_fill_rwbs(char *rwbs, u32 rw, int bytes);
-
-#endif /* CONFIG_EVENT_TRACING && CONFIG_BLOCK */
-
-#endif /* __KERNEL__ */
-#endif
diff --git a/ANDROID_3.4.5/include/linux/blockgroup_lock.h b/ANDROID_3.4.5/include/linux/blockgroup_lock.h
deleted file mode 100644
index e44b88ba..00000000
--- a/ANDROID_3.4.5/include/linux/blockgroup_lock.h
+++ /dev/null
@@ -1,62 +0,0 @@
-#ifndef _LINUX_BLOCKGROUP_LOCK_H
-#define _LINUX_BLOCKGROUP_LOCK_H
-/*
- * Per-blockgroup locking for ext2 and ext3.
- *
- * Simple hashed spinlocking.
- */
-
-#include <linux/spinlock.h>
-#include <linux/cache.h>
-
-#ifdef CONFIG_SMP
-
-/*
- * We want a power-of-two. Is there a better way than this?
- */
-
-#if NR_CPUS >= 32
-#define NR_BG_LOCKS 128
-#elif NR_CPUS >= 16
-#define NR_BG_LOCKS 64
-#elif NR_CPUS >= 8
-#define NR_BG_LOCKS 32
-#elif NR_CPUS >= 4
-#define NR_BG_LOCKS 16
-#elif NR_CPUS >= 2
-#define NR_BG_LOCKS 8
-#else
-#define NR_BG_LOCKS 4
-#endif
-
-#else /* CONFIG_SMP */
-#define NR_BG_LOCKS 1
-#endif /* CONFIG_SMP */
-
-struct bgl_lock {
- spinlock_t lock;
-} ____cacheline_aligned_in_smp;
-
-struct blockgroup_lock {
- struct bgl_lock locks[NR_BG_LOCKS];
-};
-
-static inline void bgl_lock_init(struct blockgroup_lock *bgl)
-{
- int i;
-
- for (i = 0; i < NR_BG_LOCKS; i++)
- spin_lock_init(&bgl->locks[i].lock);
-}
-
-/*
- * The accessor is a macro so we can embed a blockgroup_lock into different
- * superblock types
- */
-static inline spinlock_t *
-bgl_lock_ptr(struct blockgroup_lock *bgl, unsigned int block_group)
-{
- return &bgl->locks[(block_group) & (NR_BG_LOCKS-1)].lock;
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/bma150.h b/ANDROID_3.4.5/include/linux/bma150.h
deleted file mode 100644
index 7911fda2..00000000
--- a/ANDROID_3.4.5/include/linux/bma150.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2011 Bosch Sensortec GmbH
- * Copyright (c) 2011 Unixphere
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef _BMA150_H_
-#define _BMA150_H_
-
-#define BMA150_DRIVER "bma150"
-
-struct bma150_cfg {
- bool any_motion_int; /* Set to enable any-motion interrupt */
- bool hg_int; /* Set to enable high-G interrupt */
- bool lg_int; /* Set to enable low-G interrupt */
- unsigned char any_motion_dur; /* Any-motion duration */
- unsigned char any_motion_thres; /* Any-motion threshold */
- unsigned char hg_hyst; /* High-G hysterisis */
- unsigned char hg_dur; /* High-G duration */
- unsigned char hg_thres; /* High-G threshold */
- unsigned char lg_hyst; /* Low-G hysterisis */
- unsigned char lg_dur; /* Low-G duration */
- unsigned char lg_thres; /* Low-G threshold */
- unsigned char range; /* BMA0150_RANGE_xxx (in G) */
- unsigned char bandwidth; /* BMA0150_BW_xxx (in Hz) */
-};
-
-struct bma150_platform_data {
- struct bma150_cfg cfg;
- int (*irq_gpio_cfg)(void);
-};
-
-#endif /* _BMA150_H_ */
diff --git a/ANDROID_3.4.5/include/linux/bootmem.h b/ANDROID_3.4.5/include/linux/bootmem.h
deleted file mode 100644
index 66d3e954..00000000
--- a/ANDROID_3.4.5/include/linux/bootmem.h
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * Discontiguous memory support, Kanoj Sarcar, SGI, Nov 1999
- */
-#ifndef _LINUX_BOOTMEM_H
-#define _LINUX_BOOTMEM_H
-
-#include <linux/mmzone.h>
-#include <asm/dma.h>
-
-/*
- * simple boot-time physical memory area allocator.
- */
-
-extern unsigned long max_low_pfn;
-extern unsigned long min_low_pfn;
-
-/*
- * highest page
- */
-extern unsigned long max_pfn;
-
-#ifndef CONFIG_NO_BOOTMEM
-/*
- * node_bootmem_map is a map pointer - the bits represent all physical
- * memory pages (including holes) on the node.
- */
-typedef struct bootmem_data {
- unsigned long node_min_pfn;
- unsigned long node_low_pfn;
- void *node_bootmem_map;
- unsigned long last_end_off;
- unsigned long hint_idx;
- struct list_head list;
-} bootmem_data_t;
-
-extern bootmem_data_t bootmem_node_data[];
-#endif
-
-extern unsigned long bootmem_bootmap_pages(unsigned long);
-
-extern unsigned long init_bootmem_node(pg_data_t *pgdat,
- unsigned long freepfn,
- unsigned long startpfn,
- unsigned long endpfn);
-extern unsigned long init_bootmem(unsigned long addr, unsigned long memend);
-
-extern unsigned long free_low_memory_core_early(int nodeid);
-extern unsigned long free_all_bootmem_node(pg_data_t *pgdat);
-extern unsigned long free_all_bootmem(void);
-
-extern void free_bootmem_node(pg_data_t *pgdat,
- unsigned long addr,
- unsigned long size);
-extern void free_bootmem(unsigned long addr, unsigned long size);
-extern void free_bootmem_late(unsigned long addr, unsigned long size);
-
-/*
- * Flags for reserve_bootmem (also if CONFIG_HAVE_ARCH_BOOTMEM_NODE,
- * the architecture-specific code should honor this).
- *
- * If flags is 0, then the return value is always 0 (success). If
- * flags contains BOOTMEM_EXCLUSIVE, then -EBUSY is returned if the
- * memory already was reserved.
- */
-#define BOOTMEM_DEFAULT 0
-#define BOOTMEM_EXCLUSIVE (1<<0)
-
-extern int reserve_bootmem(unsigned long addr,
- unsigned long size,
- int flags);
-extern int reserve_bootmem_node(pg_data_t *pgdat,
- unsigned long physaddr,
- unsigned long size,
- int flags);
-
-extern void *__alloc_bootmem(unsigned long size,
- unsigned long align,
- unsigned long goal);
-extern void *__alloc_bootmem_nopanic(unsigned long size,
- unsigned long align,
- unsigned long goal);
-extern void *__alloc_bootmem_node(pg_data_t *pgdat,
- unsigned long size,
- unsigned long align,
- unsigned long goal);
-void *__alloc_bootmem_node_high(pg_data_t *pgdat,
- unsigned long size,
- unsigned long align,
- unsigned long goal);
-extern void *__alloc_bootmem_node_nopanic(pg_data_t *pgdat,
- unsigned long size,
- unsigned long align,
- unsigned long goal);
-extern void *__alloc_bootmem_low(unsigned long size,
- unsigned long align,
- unsigned long goal);
-extern void *__alloc_bootmem_low_node(pg_data_t *pgdat,
- unsigned long size,
- unsigned long align,
- unsigned long goal);
-
-#ifdef CONFIG_NO_BOOTMEM
-/* We are using top down, so it is safe to use 0 here */
-#define BOOTMEM_LOW_LIMIT 0
-#else
-#define BOOTMEM_LOW_LIMIT __pa(MAX_DMA_ADDRESS)
-#endif
-
-#define alloc_bootmem(x) \
- __alloc_bootmem(x, SMP_CACHE_BYTES, BOOTMEM_LOW_LIMIT)
-#define alloc_bootmem_align(x, align) \
- __alloc_bootmem(x, align, BOOTMEM_LOW_LIMIT)
-#define alloc_bootmem_nopanic(x) \
- __alloc_bootmem_nopanic(x, SMP_CACHE_BYTES, BOOTMEM_LOW_LIMIT)
-#define alloc_bootmem_pages(x) \
- __alloc_bootmem(x, PAGE_SIZE, BOOTMEM_LOW_LIMIT)
-#define alloc_bootmem_pages_nopanic(x) \
- __alloc_bootmem_nopanic(x, PAGE_SIZE, BOOTMEM_LOW_LIMIT)
-#define alloc_bootmem_node(pgdat, x) \
- __alloc_bootmem_node(pgdat, x, SMP_CACHE_BYTES, BOOTMEM_LOW_LIMIT)
-#define alloc_bootmem_node_nopanic(pgdat, x) \
- __alloc_bootmem_node_nopanic(pgdat, x, SMP_CACHE_BYTES, BOOTMEM_LOW_LIMIT)
-#define alloc_bootmem_pages_node(pgdat, x) \
- __alloc_bootmem_node(pgdat, x, PAGE_SIZE, BOOTMEM_LOW_LIMIT)
-#define alloc_bootmem_pages_node_nopanic(pgdat, x) \
- __alloc_bootmem_node_nopanic(pgdat, x, PAGE_SIZE, BOOTMEM_LOW_LIMIT)
-
-#define alloc_bootmem_low(x) \
- __alloc_bootmem_low(x, SMP_CACHE_BYTES, 0)
-#define alloc_bootmem_low_pages(x) \
- __alloc_bootmem_low(x, PAGE_SIZE, 0)
-#define alloc_bootmem_low_pages_node(pgdat, x) \
- __alloc_bootmem_low_node(pgdat, x, PAGE_SIZE, 0)
-
-extern int reserve_bootmem_generic(unsigned long addr, unsigned long size,
- int flags);
-
-extern void *alloc_bootmem_section(unsigned long size,
- unsigned long section_nr);
-
-#ifdef CONFIG_HAVE_ARCH_ALLOC_REMAP
-extern void *alloc_remap(int nid, unsigned long size);
-#else
-static inline void *alloc_remap(int nid, unsigned long size)
-{
- return NULL;
-}
-#endif /* CONFIG_HAVE_ARCH_ALLOC_REMAP */
-
-extern void *alloc_large_system_hash(const char *tablename,
- unsigned long bucketsize,
- unsigned long numentries,
- int scale,
- int flags,
- unsigned int *_hash_shift,
- unsigned int *_hash_mask,
- unsigned long limit);
-
-#define HASH_EARLY 0x00000001 /* Allocating during early boot? */
-#define HASH_SMALL 0x00000002 /* sub-page allocation allowed, min
- * shift passed via *_hash_shift */
-
-/* Only NUMA needs hash distribution. 64bit NUMA architectures have
- * sufficient vmalloc space.
- */
-#if defined(CONFIG_NUMA) && defined(CONFIG_64BIT)
-#define HASHDIST_DEFAULT 1
-#else
-#define HASHDIST_DEFAULT 0
-#endif
-extern int hashdist; /* Distribute hashes across NUMA nodes? */
-
-
-#endif /* _LINUX_BOOTMEM_H */
diff --git a/ANDROID_3.4.5/include/linux/bottom_half.h b/ANDROID_3.4.5/include/linux/bottom_half.h
deleted file mode 100644
index 27b1bcff..00000000
--- a/ANDROID_3.4.5/include/linux/bottom_half.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef _LINUX_BH_H
-#define _LINUX_BH_H
-
-extern void local_bh_disable(void);
-extern void _local_bh_enable(void);
-extern void local_bh_enable(void);
-extern void local_bh_enable_ip(unsigned long ip);
-
-#endif /* _LINUX_BH_H */
diff --git a/ANDROID_3.4.5/include/linux/bpqether.h b/ANDROID_3.4.5/include/linux/bpqether.h
deleted file mode 100644
index a6c35e1a..00000000
--- a/ANDROID_3.4.5/include/linux/bpqether.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef __BPQETHER_H
-#define __BPQETHER_H
-
-/*
- * Defines for the BPQETHER pseudo device driver
- */
-
-#ifndef __LINUX_IF_ETHER_H
-#include <linux/if_ether.h>
-#endif
-
-#define SIOCSBPQETHOPT (SIOCDEVPRIVATE+0) /* reserved */
-#define SIOCSBPQETHADDR (SIOCDEVPRIVATE+1)
-
-struct bpq_ethaddr {
- unsigned char destination[ETH_ALEN];
- unsigned char accept[ETH_ALEN];
-};
-
-/*
- * For SIOCSBPQETHOPT - this is compatible with PI2/PacketTwin card drivers,
- * currently not implemented, though. If someone wants to hook a radio
- * to his Ethernet card he may find this useful. ;-)
- */
-
-#define SIOCGBPQETHPARAM 0x5000 /* get Level 1 parameters */
-#define SIOCSBPQETHPARAM 0x5001 /* set */
-
-struct bpq_req {
- int cmd;
- int speed; /* unused */
- int clockmode; /* unused */
- int txdelay;
- unsigned char persist; /* unused */
- int slotime; /* unused */
- int squeldelay;
- int dmachan; /* unused */
- int irq; /* unused */
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/brcmphy.h b/ANDROID_3.4.5/include/linux/brcmphy.h
deleted file mode 100644
index b840a496..00000000
--- a/ANDROID_3.4.5/include/linux/brcmphy.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#define PHY_ID_BCM50610 0x0143bd60
-#define PHY_ID_BCM50610M 0x0143bd70
-#define PHY_ID_BCM5241 0x0143bc30
-#define PHY_ID_BCMAC131 0x0143bc70
-#define PHY_ID_BCM5481 0x0143bca0
-#define PHY_ID_BCM5482 0x0143bcb0
-#define PHY_ID_BCM5411 0x00206070
-#define PHY_ID_BCM5421 0x002060e0
-#define PHY_ID_BCM5464 0x002060b0
-#define PHY_ID_BCM5461 0x002060c0
-#define PHY_ID_BCM57780 0x03625d90
-
-#define PHY_BCM_OUI_MASK 0xfffffc00
-#define PHY_BCM_OUI_1 0x00206000
-#define PHY_BCM_OUI_2 0x0143bc00
-#define PHY_BCM_OUI_3 0x03625c00
-
-
-#define PHY_BCM_FLAGS_MODE_COPPER 0x00000001
-#define PHY_BCM_FLAGS_MODE_1000BX 0x00000002
-#define PHY_BCM_FLAGS_INTF_SGMII 0x00000010
-#define PHY_BCM_FLAGS_INTF_XAUI 0x00000020
-#define PHY_BRCM_WIRESPEED_ENABLE 0x00000100
-#define PHY_BRCM_AUTO_PWRDWN_ENABLE 0x00000200
-#define PHY_BRCM_RX_REFCLK_UNUSED 0x00000400
-#define PHY_BRCM_STD_IBND_DISABLE 0x00000800
-#define PHY_BRCM_EXT_IBND_RX_ENABLE 0x00001000
-#define PHY_BRCM_EXT_IBND_TX_ENABLE 0x00002000
-#define PHY_BRCM_CLEAR_RGMII_MODE 0x00004000
-#define PHY_BRCM_DIS_TXCRXC_NOENRGY 0x00008000
-#define PHY_BCM_FLAGS_VALID 0x80000000
diff --git a/ANDROID_3.4.5/include/linux/bsearch.h b/ANDROID_3.4.5/include/linux/bsearch.h
deleted file mode 100644
index 90b1aa86..00000000
--- a/ANDROID_3.4.5/include/linux/bsearch.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef _LINUX_BSEARCH_H
-#define _LINUX_BSEARCH_H
-
-#include <linux/types.h>
-
-void *bsearch(const void *key, const void *base, size_t num, size_t size,
- int (*cmp)(const void *key, const void *elt));
-
-#endif /* _LINUX_BSEARCH_H */
diff --git a/ANDROID_3.4.5/include/linux/bsg-lib.h b/ANDROID_3.4.5/include/linux/bsg-lib.h
deleted file mode 100644
index f55ab8cd..00000000
--- a/ANDROID_3.4.5/include/linux/bsg-lib.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * BSG helper library
- *
- * Copyright (C) 2008 James Smart, Emulex Corporation
- * Copyright (C) 2011 Red Hat, Inc. All rights reserved.
- * Copyright (C) 2011 Mike Christie
- *
- * 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
- *
- */
-#ifndef _BLK_BSG_
-#define _BLK_BSG_
-
-#include <linux/blkdev.h>
-
-struct request;
-struct device;
-struct scatterlist;
-struct request_queue;
-
-struct bsg_buffer {
- unsigned int payload_len;
- int sg_cnt;
- struct scatterlist *sg_list;
-};
-
-struct bsg_job {
- struct device *dev;
- struct request *req;
-
- /* Transport/driver specific request/reply structs */
- void *request;
- void *reply;
-
- unsigned int request_len;
- unsigned int reply_len;
- /*
- * On entry : reply_len indicates the buffer size allocated for
- * the reply.
- *
- * Upon completion : the message handler must set reply_len
- * to indicates the size of the reply to be returned to the
- * caller.
- */
-
- /* DMA payloads for the request/response */
- struct bsg_buffer request_payload;
- struct bsg_buffer reply_payload;
-
- void *dd_data; /* Used for driver-specific storage */
-};
-
-void bsg_job_done(struct bsg_job *job, int result,
- unsigned int reply_payload_rcv_len);
-int bsg_setup_queue(struct device *dev, struct request_queue *q, char *name,
- bsg_job_fn *job_fn, int dd_job_size);
-void bsg_request_fn(struct request_queue *q);
-void bsg_remove_queue(struct request_queue *q);
-void bsg_goose_queue(struct request_queue *q);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/bsg.h b/ANDROID_3.4.5/include/linux/bsg.h
deleted file mode 100644
index ecb4730d..00000000
--- a/ANDROID_3.4.5/include/linux/bsg.h
+++ /dev/null
@@ -1,94 +0,0 @@
-#ifndef BSG_H
-#define BSG_H
-
-#include <linux/types.h>
-
-#define BSG_PROTOCOL_SCSI 0
-
-#define BSG_SUB_PROTOCOL_SCSI_CMD 0
-#define BSG_SUB_PROTOCOL_SCSI_TMF 1
-#define BSG_SUB_PROTOCOL_SCSI_TRANSPORT 2
-
-/*
- * For flags member below
- * sg.h sg_io_hdr also has bits defined for it's flags member. However
- * none of these bits are implemented/used by bsg. The bits below are
- * allocated to not conflict with sg.h ones anyway.
- */
-#define BSG_FLAG_Q_AT_TAIL 0x10 /* default, == 0 at this bit, is Q_AT_HEAD */
-
-struct sg_io_v4 {
- __s32 guard; /* [i] 'Q' to differentiate from v3 */
- __u32 protocol; /* [i] 0 -> SCSI , .... */
- __u32 subprotocol; /* [i] 0 -> SCSI command, 1 -> SCSI task
- management function, .... */
-
- __u32 request_len; /* [i] in bytes */
- __u64 request; /* [i], [*i] {SCSI: cdb} */
- __u64 request_tag; /* [i] {SCSI: task tag (only if flagged)} */
- __u32 request_attr; /* [i] {SCSI: task attribute} */
- __u32 request_priority; /* [i] {SCSI: task priority} */
- __u32 request_extra; /* [i] {spare, for padding} */
- __u32 max_response_len; /* [i] in bytes */
- __u64 response; /* [i], [*o] {SCSI: (auto)sense data} */
-
- /* "dout_": data out (to device); "din_": data in (from device) */
- __u32 dout_iovec_count; /* [i] 0 -> "flat" dout transfer else
- dout_xfer points to array of iovec */
- __u32 dout_xfer_len; /* [i] bytes to be transferred to device */
- __u32 din_iovec_count; /* [i] 0 -> "flat" din transfer */
- __u32 din_xfer_len; /* [i] bytes to be transferred from device */
- __u64 dout_xferp; /* [i], [*i] */
- __u64 din_xferp; /* [i], [*o] */
-
- __u32 timeout; /* [i] units: millisecond */
- __u32 flags; /* [i] bit mask */
- __u64 usr_ptr; /* [i->o] unused internally */
- __u32 spare_in; /* [i] */
-
- __u32 driver_status; /* [o] 0 -> ok */
- __u32 transport_status; /* [o] 0 -> ok */
- __u32 device_status; /* [o] {SCSI: command completion status} */
- __u32 retry_delay; /* [o] {SCSI: status auxiliary information} */
- __u32 info; /* [o] additional information */
- __u32 duration; /* [o] time to complete, in milliseconds */
- __u32 response_len; /* [o] bytes of response actually written */
- __s32 din_resid; /* [o] din_xfer_len - actual_din_xfer_len */
- __s32 dout_resid; /* [o] dout_xfer_len - actual_dout_xfer_len */
- __u64 generated_tag; /* [o] {SCSI: transport generated task tag} */
- __u32 spare_out; /* [o] */
-
- __u32 padding;
-};
-
-#ifdef __KERNEL__
-
-#if defined(CONFIG_BLK_DEV_BSG)
-struct bsg_class_device {
- struct device *class_dev;
- struct device *parent;
- int minor;
- struct request_queue *queue;
- struct kref ref;
- void (*release)(struct device *);
-};
-
-extern int bsg_register_queue(struct request_queue *q,
- struct device *parent, const char *name,
- void (*release)(struct device *));
-extern void bsg_unregister_queue(struct request_queue *);
-#else
-static inline int bsg_register_queue(struct request_queue *q,
- struct device *parent, const char *name,
- void (*release)(struct device *))
-{
- return 0;
-}
-static inline void bsg_unregister_queue(struct request_queue *q)
-{
-}
-#endif
-
-#endif /* __KERNEL__ */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/btree-128.h b/ANDROID_3.4.5/include/linux/btree-128.h
deleted file mode 100644
index 0b3414c4..00000000
--- a/ANDROID_3.4.5/include/linux/btree-128.h
+++ /dev/null
@@ -1,109 +0,0 @@
-extern struct btree_geo btree_geo128;
-
-struct btree_head128 { struct btree_head h; };
-
-static inline void btree_init_mempool128(struct btree_head128 *head,
- mempool_t *mempool)
-{
- btree_init_mempool(&head->h, mempool);
-}
-
-static inline int btree_init128(struct btree_head128 *head)
-{
- return btree_init(&head->h);
-}
-
-static inline void btree_destroy128(struct btree_head128 *head)
-{
- btree_destroy(&head->h);
-}
-
-static inline void *btree_lookup128(struct btree_head128 *head, u64 k1, u64 k2)
-{
- u64 key[2] = {k1, k2};
- return btree_lookup(&head->h, &btree_geo128, (unsigned long *)&key);
-}
-
-static inline void *btree_get_prev128(struct btree_head128 *head,
- u64 *k1, u64 *k2)
-{
- u64 key[2] = {*k1, *k2};
- void *val;
-
- val = btree_get_prev(&head->h, &btree_geo128,
- (unsigned long *)&key);
- *k1 = key[0];
- *k2 = key[1];
- return val;
-}
-
-static inline int btree_insert128(struct btree_head128 *head, u64 k1, u64 k2,
- void *val, gfp_t gfp)
-{
- u64 key[2] = {k1, k2};
- return btree_insert(&head->h, &btree_geo128,
- (unsigned long *)&key, val, gfp);
-}
-
-static inline int btree_update128(struct btree_head128 *head, u64 k1, u64 k2,
- void *val)
-{
- u64 key[2] = {k1, k2};
- return btree_update(&head->h, &btree_geo128,
- (unsigned long *)&key, val);
-}
-
-static inline void *btree_remove128(struct btree_head128 *head, u64 k1, u64 k2)
-{
- u64 key[2] = {k1, k2};
- return btree_remove(&head->h, &btree_geo128, (unsigned long *)&key);
-}
-
-static inline void *btree_last128(struct btree_head128 *head, u64 *k1, u64 *k2)
-{
- u64 key[2];
- void *val;
-
- val = btree_last(&head->h, &btree_geo128, (unsigned long *)&key[0]);
- if (val) {
- *k1 = key[0];
- *k2 = key[1];
- }
-
- return val;
-}
-
-static inline int btree_merge128(struct btree_head128 *target,
- struct btree_head128 *victim,
- gfp_t gfp)
-{
- return btree_merge(&target->h, &victim->h, &btree_geo128, gfp);
-}
-
-void visitor128(void *elem, unsigned long opaque, unsigned long *__key,
- size_t index, void *__func);
-
-typedef void (*visitor128_t)(void *elem, unsigned long opaque,
- u64 key1, u64 key2, size_t index);
-
-static inline size_t btree_visitor128(struct btree_head128 *head,
- unsigned long opaque,
- visitor128_t func2)
-{
- return btree_visitor(&head->h, &btree_geo128, opaque,
- visitor128, func2);
-}
-
-static inline size_t btree_grim_visitor128(struct btree_head128 *head,
- unsigned long opaque,
- visitor128_t func2)
-{
- return btree_grim_visitor(&head->h, &btree_geo128, opaque,
- visitor128, func2);
-}
-
-#define btree_for_each_safe128(head, k1, k2, val) \
- for (val = btree_last128(head, &k1, &k2); \
- val; \
- val = btree_get_prev128(head, &k1, &k2))
-
diff --git a/ANDROID_3.4.5/include/linux/btree-type.h b/ANDROID_3.4.5/include/linux/btree-type.h
deleted file mode 100644
index 9a1147ef..00000000
--- a/ANDROID_3.4.5/include/linux/btree-type.h
+++ /dev/null
@@ -1,147 +0,0 @@
-#define __BTREE_TP(pfx, type, sfx) pfx ## type ## sfx
-#define _BTREE_TP(pfx, type, sfx) __BTREE_TP(pfx, type, sfx)
-#define BTREE_TP(pfx) _BTREE_TP(pfx, BTREE_TYPE_SUFFIX,)
-#define BTREE_FN(name) BTREE_TP(btree_ ## name)
-#define BTREE_TYPE_HEAD BTREE_TP(struct btree_head)
-#define VISITOR_FN BTREE_TP(visitor)
-#define VISITOR_FN_T _BTREE_TP(visitor, BTREE_TYPE_SUFFIX, _t)
-
-BTREE_TYPE_HEAD {
- struct btree_head h;
-};
-
-static inline void BTREE_FN(init_mempool)(BTREE_TYPE_HEAD *head,
- mempool_t *mempool)
-{
- btree_init_mempool(&head->h, mempool);
-}
-
-static inline int BTREE_FN(init)(BTREE_TYPE_HEAD *head)
-{
- return btree_init(&head->h);
-}
-
-static inline void BTREE_FN(destroy)(BTREE_TYPE_HEAD *head)
-{
- btree_destroy(&head->h);
-}
-
-static inline int BTREE_FN(merge)(BTREE_TYPE_HEAD *target,
- BTREE_TYPE_HEAD *victim,
- gfp_t gfp)
-{
- return btree_merge(&target->h, &victim->h, BTREE_TYPE_GEO, gfp);
-}
-
-#if (BITS_PER_LONG > BTREE_TYPE_BITS)
-static inline void *BTREE_FN(lookup)(BTREE_TYPE_HEAD *head, BTREE_KEYTYPE key)
-{
- unsigned long _key = key;
- return btree_lookup(&head->h, BTREE_TYPE_GEO, &_key);
-}
-
-static inline int BTREE_FN(insert)(BTREE_TYPE_HEAD *head, BTREE_KEYTYPE key,
- void *val, gfp_t gfp)
-{
- unsigned long _key = key;
- return btree_insert(&head->h, BTREE_TYPE_GEO, &_key, val, gfp);
-}
-
-static inline int BTREE_FN(update)(BTREE_TYPE_HEAD *head, BTREE_KEYTYPE key,
- void *val)
-{
- unsigned long _key = key;
- return btree_update(&head->h, BTREE_TYPE_GEO, &_key, val);
-}
-
-static inline void *BTREE_FN(remove)(BTREE_TYPE_HEAD *head, BTREE_KEYTYPE key)
-{
- unsigned long _key = key;
- return btree_remove(&head->h, BTREE_TYPE_GEO, &_key);
-}
-
-static inline void *BTREE_FN(last)(BTREE_TYPE_HEAD *head, BTREE_KEYTYPE *key)
-{
- unsigned long _key;
- void *val = btree_last(&head->h, BTREE_TYPE_GEO, &_key);
- if (val)
- *key = _key;
- return val;
-}
-
-static inline void *BTREE_FN(get_prev)(BTREE_TYPE_HEAD *head, BTREE_KEYTYPE *key)
-{
- unsigned long _key = *key;
- void *val = btree_get_prev(&head->h, BTREE_TYPE_GEO, &_key);
- if (val)
- *key = _key;
- return val;
-}
-#else
-static inline void *BTREE_FN(lookup)(BTREE_TYPE_HEAD *head, BTREE_KEYTYPE key)
-{
- return btree_lookup(&head->h, BTREE_TYPE_GEO, (unsigned long *)&key);
-}
-
-static inline int BTREE_FN(insert)(BTREE_TYPE_HEAD *head, BTREE_KEYTYPE key,
- void *val, gfp_t gfp)
-{
- return btree_insert(&head->h, BTREE_TYPE_GEO, (unsigned long *)&key,
- val, gfp);
-}
-
-static inline int BTREE_FN(update)(BTREE_TYPE_HEAD *head, BTREE_KEYTYPE key,
- void *val)
-{
- return btree_update(&head->h, BTREE_TYPE_GEO, (unsigned long *)&key, val);
-}
-
-static inline void *BTREE_FN(remove)(BTREE_TYPE_HEAD *head, BTREE_KEYTYPE key)
-{
- return btree_remove(&head->h, BTREE_TYPE_GEO, (unsigned long *)&key);
-}
-
-static inline void *BTREE_FN(last)(BTREE_TYPE_HEAD *head, BTREE_KEYTYPE *key)
-{
- return btree_last(&head->h, BTREE_TYPE_GEO, (unsigned long *)key);
-}
-
-static inline void *BTREE_FN(get_prev)(BTREE_TYPE_HEAD *head, BTREE_KEYTYPE *key)
-{
- return btree_get_prev(&head->h, BTREE_TYPE_GEO, (unsigned long *)key);
-}
-#endif
-
-void VISITOR_FN(void *elem, unsigned long opaque, unsigned long *key,
- size_t index, void *__func);
-
-typedef void (*VISITOR_FN_T)(void *elem, unsigned long opaque,
- BTREE_KEYTYPE key, size_t index);
-
-static inline size_t BTREE_FN(visitor)(BTREE_TYPE_HEAD *head,
- unsigned long opaque,
- VISITOR_FN_T func2)
-{
- return btree_visitor(&head->h, BTREE_TYPE_GEO, opaque,
- visitorl, func2);
-}
-
-static inline size_t BTREE_FN(grim_visitor)(BTREE_TYPE_HEAD *head,
- unsigned long opaque,
- VISITOR_FN_T func2)
-{
- return btree_grim_visitor(&head->h, BTREE_TYPE_GEO, opaque,
- visitorl, func2);
-}
-
-#undef VISITOR_FN
-#undef VISITOR_FN_T
-#undef __BTREE_TP
-#undef _BTREE_TP
-#undef BTREE_TP
-#undef BTREE_FN
-#undef BTREE_TYPE_HEAD
-#undef BTREE_TYPE_SUFFIX
-#undef BTREE_TYPE_GEO
-#undef BTREE_KEYTYPE
-#undef BTREE_TYPE_BITS
diff --git a/ANDROID_3.4.5/include/linux/btree.h b/ANDROID_3.4.5/include/linux/btree.h
deleted file mode 100644
index 65b5bb05..00000000
--- a/ANDROID_3.4.5/include/linux/btree.h
+++ /dev/null
@@ -1,243 +0,0 @@
-#ifndef BTREE_H
-#define BTREE_H
-
-#include <linux/kernel.h>
-#include <linux/mempool.h>
-
-/**
- * DOC: B+Tree basics
- *
- * A B+Tree is a data structure for looking up arbitrary (currently allowing
- * unsigned long, u32, u64 and 2 * u64) keys into pointers. The data structure
- * is described at http://en.wikipedia.org/wiki/B-tree, we currently do not
- * use binary search to find the key on lookups.
- *
- * Each B+Tree consists of a head, that contains bookkeeping information and
- * a variable number (starting with zero) nodes. Each node contains the keys
- * and pointers to sub-nodes, or, for leaf nodes, the keys and values for the
- * tree entries.
- *
- * Each node in this implementation has the following layout:
- * [key1, key2, ..., keyN] [val1, val2, ..., valN]
- *
- * Each key here is an array of unsigned longs, geo->no_longs in total. The
- * number of keys and values (N) is geo->no_pairs.
- */
-
-/**
- * struct btree_head - btree head
- *
- * @node: the first node in the tree
- * @mempool: mempool used for node allocations
- * @height: current of the tree
- */
-struct btree_head {
- unsigned long *node;
- mempool_t *mempool;
- int height;
-};
-
-/* btree geometry */
-struct btree_geo;
-
-/**
- * btree_alloc - allocate function for the mempool
- * @gfp_mask: gfp mask for the allocation
- * @pool_data: unused
- */
-void *btree_alloc(gfp_t gfp_mask, void *pool_data);
-
-/**
- * btree_free - free function for the mempool
- * @element: the element to free
- * @pool_data: unused
- */
-void btree_free(void *element, void *pool_data);
-
-/**
- * btree_init_mempool - initialise a btree with given mempool
- *
- * @head: the btree head to initialise
- * @mempool: the mempool to use
- *
- * When this function is used, there is no need to destroy
- * the mempool.
- */
-void btree_init_mempool(struct btree_head *head, mempool_t *mempool);
-
-/**
- * btree_init - initialise a btree
- *
- * @head: the btree head to initialise
- *
- * This function allocates the memory pool that the
- * btree needs. Returns zero or a negative error code
- * (-%ENOMEM) when memory allocation fails.
- *
- */
-int __must_check btree_init(struct btree_head *head);
-
-/**
- * btree_destroy - destroy mempool
- *
- * @head: the btree head to destroy
- *
- * This function destroys the internal memory pool, use only
- * when using btree_init(), not with btree_init_mempool().
- */
-void btree_destroy(struct btree_head *head);
-
-/**
- * btree_lookup - look up a key in the btree
- *
- * @head: the btree to look in
- * @geo: the btree geometry
- * @key: the key to look up
- *
- * This function returns the value for the given key, or %NULL.
- */
-void *btree_lookup(struct btree_head *head, struct btree_geo *geo,
- unsigned long *key);
-
-/**
- * btree_insert - insert an entry into the btree
- *
- * @head: the btree to add to
- * @geo: the btree geometry
- * @key: the key to add (must not already be present)
- * @val: the value to add (must not be %NULL)
- * @gfp: allocation flags for node allocations
- *
- * This function returns 0 if the item could be added, or an
- * error code if it failed (may fail due to memory pressure).
- */
-int __must_check btree_insert(struct btree_head *head, struct btree_geo *geo,
- unsigned long *key, void *val, gfp_t gfp);
-/**
- * btree_update - update an entry in the btree
- *
- * @head: the btree to update
- * @geo: the btree geometry
- * @key: the key to update
- * @val: the value to change it to (must not be %NULL)
- *
- * This function returns 0 if the update was successful, or
- * -%ENOENT if the key could not be found.
- */
-int btree_update(struct btree_head *head, struct btree_geo *geo,
- unsigned long *key, void *val);
-/**
- * btree_remove - remove an entry from the btree
- *
- * @head: the btree to update
- * @geo: the btree geometry
- * @key: the key to remove
- *
- * This function returns the removed entry, or %NULL if the key
- * could not be found.
- */
-void *btree_remove(struct btree_head *head, struct btree_geo *geo,
- unsigned long *key);
-
-/**
- * btree_merge - merge two btrees
- *
- * @target: the tree that gets all the entries
- * @victim: the tree that gets merged into @target
- * @geo: the btree geometry
- * @gfp: allocation flags
- *
- * The two trees @target and @victim may not contain the same keys,
- * that is a bug and triggers a BUG(). This function returns zero
- * if the trees were merged successfully, and may return a failure
- * when memory allocation fails, in which case both trees might have
- * been partially merged, i.e. some entries have been moved from
- * @victim to @target.
- */
-int btree_merge(struct btree_head *target, struct btree_head *victim,
- struct btree_geo *geo, gfp_t gfp);
-
-/**
- * btree_last - get last entry in btree
- *
- * @head: btree head
- * @geo: btree geometry
- * @key: last key
- *
- * Returns the last entry in the btree, and sets @key to the key
- * of that entry; returns NULL if the tree is empty, in that case
- * key is not changed.
- */
-void *btree_last(struct btree_head *head, struct btree_geo *geo,
- unsigned long *key);
-
-/**
- * btree_get_prev - get previous entry
- *
- * @head: btree head
- * @geo: btree geometry
- * @key: pointer to key
- *
- * The function returns the next item right before the value pointed to by
- * @key, and updates @key with its key, or returns %NULL when there is no
- * entry with a key smaller than the given key.
- */
-void *btree_get_prev(struct btree_head *head, struct btree_geo *geo,
- unsigned long *key);
-
-
-/* internal use, use btree_visitor{l,32,64,128} */
-size_t btree_visitor(struct btree_head *head, struct btree_geo *geo,
- unsigned long opaque,
- void (*func)(void *elem, unsigned long opaque,
- unsigned long *key, size_t index,
- void *func2),
- void *func2);
-
-/* internal use, use btree_grim_visitor{l,32,64,128} */
-size_t btree_grim_visitor(struct btree_head *head, struct btree_geo *geo,
- unsigned long opaque,
- void (*func)(void *elem, unsigned long opaque,
- unsigned long *key,
- size_t index, void *func2),
- void *func2);
-
-
-#include <linux/btree-128.h>
-
-extern struct btree_geo btree_geo32;
-#define BTREE_TYPE_SUFFIX l
-#define BTREE_TYPE_BITS BITS_PER_LONG
-#define BTREE_TYPE_GEO &btree_geo32
-#define BTREE_KEYTYPE unsigned long
-#include <linux/btree-type.h>
-
-#define btree_for_each_safel(head, key, val) \
- for (val = btree_lastl(head, &key); \
- val; \
- val = btree_get_prevl(head, &key))
-
-#define BTREE_TYPE_SUFFIX 32
-#define BTREE_TYPE_BITS 32
-#define BTREE_TYPE_GEO &btree_geo32
-#define BTREE_KEYTYPE u32
-#include <linux/btree-type.h>
-
-#define btree_for_each_safe32(head, key, val) \
- for (val = btree_last32(head, &key); \
- val; \
- val = btree_get_prev32(head, &key))
-
-extern struct btree_geo btree_geo64;
-#define BTREE_TYPE_SUFFIX 64
-#define BTREE_TYPE_BITS 64
-#define BTREE_TYPE_GEO &btree_geo64
-#define BTREE_KEYTYPE u64
-#include <linux/btree-type.h>
-
-#define btree_for_each_safe64(head, key, val) \
- for (val = btree_last64(head, &key); \
- val; \
- val = btree_get_prev64(head, &key))
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/buffer_head.h b/ANDROID_3.4.5/include/linux/buffer_head.h
deleted file mode 100644
index 458f4977..00000000
--- a/ANDROID_3.4.5/include/linux/buffer_head.h
+++ /dev/null
@@ -1,350 +0,0 @@
-/*
- * include/linux/buffer_head.h
- *
- * Everything to do with buffer_heads.
- */
-
-#ifndef _LINUX_BUFFER_HEAD_H
-#define _LINUX_BUFFER_HEAD_H
-
-#include <linux/types.h>
-#include <linux/fs.h>
-#include <linux/linkage.h>
-#include <linux/pagemap.h>
-#include <linux/wait.h>
-#include <linux/atomic.h>
-
-#ifdef CONFIG_BLOCK
-
-enum bh_state_bits {
- BH_Uptodate, /* Contains valid data */
- BH_Dirty, /* Is dirty */
- BH_Lock, /* Is locked */
- BH_Req, /* Has been submitted for I/O */
- BH_Uptodate_Lock,/* Used by the first bh in a page, to serialise
- * IO completion of other buffers in the page
- */
-
- BH_Mapped, /* Has a disk mapping */
- BH_New, /* Disk mapping was newly created by get_block */
- BH_Async_Read, /* Is under end_buffer_async_read I/O */
- BH_Async_Write, /* Is under end_buffer_async_write I/O */
- BH_Delay, /* Buffer is not yet allocated on disk */
- BH_Boundary, /* Block is followed by a discontiguity */
- BH_Write_EIO, /* I/O error on write */
- BH_Unwritten, /* Buffer is allocated on disk but not written */
- BH_Quiet, /* Buffer Error Prinks to be quiet */
-
- BH_PrivateStart,/* not a state bit, but the first bit available
- * for private allocation by other entities
- */
-};
-
-#define MAX_BUF_PER_PAGE (PAGE_CACHE_SIZE / 512)
-
-struct page;
-struct buffer_head;
-struct address_space;
-typedef void (bh_end_io_t)(struct buffer_head *bh, int uptodate);
-
-/*
- * Historically, a buffer_head was used to map a single block
- * within a page, and of course as the unit of I/O through the
- * filesystem and block layers. Nowadays the basic I/O unit
- * is the bio, and buffer_heads are used for extracting block
- * mappings (via a get_block_t call), for tracking state within
- * a page (via a page_mapping) and for wrapping bio submission
- * for backward compatibility reasons (e.g. submit_bh).
- */
-struct buffer_head {
- unsigned long b_state; /* buffer state bitmap (see above) */
- struct buffer_head *b_this_page;/* circular list of page's buffers */
- struct page *b_page; /* the page this bh is mapped to */
-
- sector_t b_blocknr; /* start block number */
- size_t b_size; /* size of mapping */
- char *b_data; /* pointer to data within the page */
-
- struct block_device *b_bdev;
- bh_end_io_t *b_end_io; /* I/O completion */
- void *b_private; /* reserved for b_end_io */
- struct list_head b_assoc_buffers; /* associated with another mapping */
- struct address_space *b_assoc_map; /* mapping this buffer is
- associated with */
- atomic_t b_count; /* users using this buffer_head */
-};
-
-/*
- * macro tricks to expand the set_buffer_foo(), clear_buffer_foo()
- * and buffer_foo() functions.
- */
-#define BUFFER_FNS(bit, name) \
-static inline void set_buffer_##name(struct buffer_head *bh) \
-{ \
- set_bit(BH_##bit, &(bh)->b_state); \
-} \
-static inline void clear_buffer_##name(struct buffer_head *bh) \
-{ \
- clear_bit(BH_##bit, &(bh)->b_state); \
-} \
-static inline int buffer_##name(const struct buffer_head *bh) \
-{ \
- return test_bit(BH_##bit, &(bh)->b_state); \
-}
-
-/*
- * test_set_buffer_foo() and test_clear_buffer_foo()
- */
-#define TAS_BUFFER_FNS(bit, name) \
-static inline int test_set_buffer_##name(struct buffer_head *bh) \
-{ \
- return test_and_set_bit(BH_##bit, &(bh)->b_state); \
-} \
-static inline int test_clear_buffer_##name(struct buffer_head *bh) \
-{ \
- return test_and_clear_bit(BH_##bit, &(bh)->b_state); \
-} \
-
-/*
- * Emit the buffer bitops functions. Note that there are also functions
- * of the form "mark_buffer_foo()". These are higher-level functions which
- * do something in addition to setting a b_state bit.
- */
-BUFFER_FNS(Uptodate, uptodate)
-BUFFER_FNS(Dirty, dirty)
-TAS_BUFFER_FNS(Dirty, dirty)
-BUFFER_FNS(Lock, locked)
-BUFFER_FNS(Req, req)
-TAS_BUFFER_FNS(Req, req)
-BUFFER_FNS(Mapped, mapped)
-BUFFER_FNS(New, new)
-BUFFER_FNS(Async_Read, async_read)
-BUFFER_FNS(Async_Write, async_write)
-BUFFER_FNS(Delay, delay)
-BUFFER_FNS(Boundary, boundary)
-BUFFER_FNS(Write_EIO, write_io_error)
-BUFFER_FNS(Unwritten, unwritten)
-
-#define bh_offset(bh) ((unsigned long)(bh)->b_data & ~PAGE_MASK)
-#define touch_buffer(bh) mark_page_accessed(bh->b_page)
-
-/* If we *know* page->private refers to buffer_heads */
-#define page_buffers(page) \
- ({ \
- BUG_ON(!PagePrivate(page)); \
- ((struct buffer_head *)page_private(page)); \
- })
-#define page_has_buffers(page) PagePrivate(page)
-
-/*
- * Declarations
- */
-
-void mark_buffer_dirty(struct buffer_head *bh);
-void init_buffer(struct buffer_head *, bh_end_io_t *, void *);
-void set_bh_page(struct buffer_head *bh,
- struct page *page, unsigned long offset);
-int try_to_free_buffers(struct page *);
-struct buffer_head *alloc_page_buffers(struct page *page, unsigned long size,
- int retry);
-void create_empty_buffers(struct page *, unsigned long,
- unsigned long b_state);
-void end_buffer_read_sync(struct buffer_head *bh, int uptodate);
-void end_buffer_write_sync(struct buffer_head *bh, int uptodate);
-void end_buffer_async_write(struct buffer_head *bh, int uptodate);
-
-/* Things to do with buffers at mapping->private_list */
-void mark_buffer_dirty_inode(struct buffer_head *bh, struct inode *inode);
-int inode_has_buffers(struct inode *);
-void invalidate_inode_buffers(struct inode *);
-int remove_inode_buffers(struct inode *inode);
-int sync_mapping_buffers(struct address_space *mapping);
-void unmap_underlying_metadata(struct block_device *bdev, sector_t block);
-
-void mark_buffer_async_write(struct buffer_head *bh);
-void __wait_on_buffer(struct buffer_head *);
-wait_queue_head_t *bh_waitq_head(struct buffer_head *bh);
-struct buffer_head *__find_get_block(struct block_device *bdev, sector_t block,
- unsigned size);
-struct buffer_head *__getblk(struct block_device *bdev, sector_t block,
- unsigned size);
-void __brelse(struct buffer_head *);
-void __bforget(struct buffer_head *);
-void __breadahead(struct block_device *, sector_t block, unsigned int size);
-struct buffer_head *__bread(struct block_device *, sector_t block, unsigned size);
-void invalidate_bh_lrus(void);
-struct buffer_head *alloc_buffer_head(gfp_t gfp_flags);
-void free_buffer_head(struct buffer_head * bh);
-void unlock_buffer(struct buffer_head *bh);
-void __lock_buffer(struct buffer_head *bh);
-void ll_rw_block(int, int, struct buffer_head * bh[]);
-int sync_dirty_buffer(struct buffer_head *bh);
-int __sync_dirty_buffer(struct buffer_head *bh, int rw);
-void write_dirty_buffer(struct buffer_head *bh, int rw);
-int submit_bh(int, struct buffer_head *);
-void write_boundary_block(struct block_device *bdev,
- sector_t bblock, unsigned blocksize);
-int bh_uptodate_or_lock(struct buffer_head *bh);
-int bh_submit_read(struct buffer_head *bh);
-
-extern int buffer_heads_over_limit;
-
-/*
- * Generic address_space_operations implementations for buffer_head-backed
- * address_spaces.
- */
-void block_invalidatepage(struct page *page, unsigned long offset);
-int block_write_full_page(struct page *page, get_block_t *get_block,
- struct writeback_control *wbc);
-int block_write_full_page_endio(struct page *page, get_block_t *get_block,
- struct writeback_control *wbc, bh_end_io_t *handler);
-int block_read_full_page(struct page*, get_block_t*);
-int block_is_partially_uptodate(struct page *page, read_descriptor_t *desc,
- unsigned long from);
-int block_write_begin(struct address_space *mapping, loff_t pos, unsigned len,
- unsigned flags, struct page **pagep, get_block_t *get_block);
-int __block_write_begin(struct page *page, loff_t pos, unsigned len,
- get_block_t *get_block);
-int block_write_end(struct file *, struct address_space *,
- loff_t, unsigned, unsigned,
- struct page *, void *);
-int generic_write_end(struct file *, struct address_space *,
- loff_t, unsigned, unsigned,
- struct page *, void *);
-void page_zero_new_buffers(struct page *page, unsigned from, unsigned to);
-int cont_write_begin(struct file *, struct address_space *, loff_t,
- unsigned, unsigned, struct page **, void **,
- get_block_t *, loff_t *);
-int generic_cont_expand_simple(struct inode *inode, loff_t size);
-int block_commit_write(struct page *page, unsigned from, unsigned to);
-int __block_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf,
- get_block_t get_block);
-int block_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf,
- get_block_t get_block);
-/* Convert errno to return value from ->page_mkwrite() call */
-static inline int block_page_mkwrite_return(int err)
-{
- if (err == 0)
- return VM_FAULT_LOCKED;
- if (err == -EFAULT)
- return VM_FAULT_NOPAGE;
- if (err == -ENOMEM)
- return VM_FAULT_OOM;
- if (err == -EAGAIN)
- return VM_FAULT_RETRY;
- /* -ENOSPC, -EDQUOT, -EIO ... */
- return VM_FAULT_SIGBUS;
-}
-sector_t generic_block_bmap(struct address_space *, sector_t, get_block_t *);
-int block_truncate_page(struct address_space *, loff_t, get_block_t *);
-int nobh_write_begin(struct address_space *, loff_t, unsigned, unsigned,
- struct page **, void **, get_block_t*);
-int nobh_write_end(struct file *, struct address_space *,
- loff_t, unsigned, unsigned,
- struct page *, void *);
-int nobh_truncate_page(struct address_space *, loff_t, get_block_t *);
-int nobh_writepage(struct page *page, get_block_t *get_block,
- struct writeback_control *wbc);
-
-void buffer_init(void);
-
-/*
- * inline definitions
- */
-
-static inline void attach_page_buffers(struct page *page,
- struct buffer_head *head)
-{
- page_cache_get(page);
- SetPagePrivate(page);
- set_page_private(page, (unsigned long)head);
-}
-
-static inline void get_bh(struct buffer_head *bh)
-{
- atomic_inc(&bh->b_count);
-}
-
-static inline void put_bh(struct buffer_head *bh)
-{
- smp_mb__before_atomic_dec();
- atomic_dec(&bh->b_count);
-}
-
-static inline void brelse(struct buffer_head *bh)
-{
- if (bh)
- __brelse(bh);
-}
-
-static inline void bforget(struct buffer_head *bh)
-{
- if (bh)
- __bforget(bh);
-}
-
-static inline struct buffer_head *
-sb_bread(struct super_block *sb, sector_t block)
-{
- return __bread(sb->s_bdev, block, sb->s_blocksize);
-}
-
-static inline void
-sb_breadahead(struct super_block *sb, sector_t block)
-{
- __breadahead(sb->s_bdev, block, sb->s_blocksize);
-}
-
-static inline struct buffer_head *
-sb_getblk(struct super_block *sb, sector_t block)
-{
- return __getblk(sb->s_bdev, block, sb->s_blocksize);
-}
-
-static inline struct buffer_head *
-sb_find_get_block(struct super_block *sb, sector_t block)
-{
- return __find_get_block(sb->s_bdev, block, sb->s_blocksize);
-}
-
-static inline void
-map_bh(struct buffer_head *bh, struct super_block *sb, sector_t block)
-{
- set_buffer_mapped(bh);
- bh->b_bdev = sb->s_bdev;
- bh->b_blocknr = block;
- bh->b_size = sb->s_blocksize;
-}
-
-static inline void wait_on_buffer(struct buffer_head *bh)
-{
- might_sleep();
- if (buffer_locked(bh))
- __wait_on_buffer(bh);
-}
-
-static inline int trylock_buffer(struct buffer_head *bh)
-{
- return likely(!test_and_set_bit_lock(BH_Lock, &bh->b_state));
-}
-
-static inline void lock_buffer(struct buffer_head *bh)
-{
- might_sleep();
- if (!trylock_buffer(bh))
- __lock_buffer(bh);
-}
-
-extern int __set_page_dirty_buffers(struct page *page);
-
-#else /* CONFIG_BLOCK */
-
-static inline void buffer_init(void) {}
-static inline int try_to_free_buffers(struct page *page) { return 1; }
-static inline int inode_has_buffers(struct inode *inode) { return 0; }
-static inline void invalidate_inode_buffers(struct inode *inode) {}
-static inline int remove_inode_buffers(struct inode *inode) { return 1; }
-static inline int sync_mapping_buffers(struct address_space *mapping) { return 0; }
-
-#endif /* CONFIG_BLOCK */
-#endif /* _LINUX_BUFFER_HEAD_H */
diff --git a/ANDROID_3.4.5/include/linux/bug.h b/ANDROID_3.4.5/include/linux/bug.h
deleted file mode 100644
index 72961c39..00000000
--- a/ANDROID_3.4.5/include/linux/bug.h
+++ /dev/null
@@ -1,99 +0,0 @@
-#ifndef _LINUX_BUG_H
-#define _LINUX_BUG_H
-
-#include <asm/bug.h>
-
-enum bug_trap_type {
- BUG_TRAP_TYPE_NONE = 0,
- BUG_TRAP_TYPE_WARN = 1,
- BUG_TRAP_TYPE_BUG = 2,
-};
-
-struct pt_regs;
-
-#ifdef __CHECKER__
-#define BUILD_BUG_ON_NOT_POWER_OF_2(n)
-#define BUILD_BUG_ON_ZERO(e) (0)
-#define BUILD_BUG_ON_NULL(e) ((void*)0)
-#define BUILD_BUG_ON(condition)
-#define BUILD_BUG() (0)
-#else /* __CHECKER__ */
-
-/* Force a compilation error if a constant expression is not a power of 2 */
-#define BUILD_BUG_ON_NOT_POWER_OF_2(n) \
- BUILD_BUG_ON((n) == 0 || (((n) & ((n) - 1)) != 0))
-
-/* Force a compilation error if condition is true, but also produce a
- result (of value 0 and type size_t), so the expression can be used
- e.g. in a structure initializer (or where-ever else comma expressions
- aren't permitted). */
-#define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); }))
-#define BUILD_BUG_ON_NULL(e) ((void *)sizeof(struct { int:-!!(e); }))
-
-/**
- * BUILD_BUG_ON - break compile if a condition is true.
- * @condition: the condition which the compiler should know is false.
- *
- * If you have some code which relies on certain constants being equal, or
- * other compile-time-evaluated condition, you should use BUILD_BUG_ON to
- * detect if someone changes it.
- *
- * The implementation uses gcc's reluctance to create a negative array, but
- * gcc (as of 4.4) only emits that error for obvious cases (eg. not arguments
- * to inline functions). So as a fallback we use the optimizer; if it can't
- * prove the condition is false, it will cause a link error on the undefined
- * "__build_bug_on_failed". This error message can be harder to track down
- * though, hence the two different methods.
- */
-#ifndef __OPTIMIZE__
-#define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)]))
-#else
-extern int __build_bug_on_failed;
-#define BUILD_BUG_ON(condition) \
- do { \
- ((void)sizeof(char[1 - 2*!!(condition)])); \
- if (condition) __build_bug_on_failed = 1; \
- } while(0)
-#endif
-
-/**
- * BUILD_BUG - break compile if used.
- *
- * If you have some code that you expect the compiler to eliminate at
- * build time, you should use BUILD_BUG to detect if it is
- * unexpectedly used.
- */
-#define BUILD_BUG() \
- do { \
- extern void __build_bug_failed(void) \
- __linktime_error("BUILD_BUG failed"); \
- __build_bug_failed(); \
- } while (0)
-
-#endif /* __CHECKER__ */
-
-#ifdef CONFIG_GENERIC_BUG
-#include <asm-generic/bug.h>
-
-static inline int is_warning_bug(const struct bug_entry *bug)
-{
- return bug->flags & BUGFLAG_WARNING;
-}
-
-const struct bug_entry *find_bug(unsigned long bugaddr);
-
-enum bug_trap_type report_bug(unsigned long bug_addr, struct pt_regs *regs);
-
-/* These are defined by the architecture */
-int is_valid_bugaddr(unsigned long addr);
-
-#else /* !CONFIG_GENERIC_BUG */
-
-static inline enum bug_trap_type report_bug(unsigned long bug_addr,
- struct pt_regs *regs)
-{
- return BUG_TRAP_TYPE_BUG;
-}
-
-#endif /* CONFIG_GENERIC_BUG */
-#endif /* _LINUX_BUG_H */
diff --git a/ANDROID_3.4.5/include/linux/byteorder/Kbuild b/ANDROID_3.4.5/include/linux/byteorder/Kbuild
deleted file mode 100644
index 5896e344..00000000
--- a/ANDROID_3.4.5/include/linux/byteorder/Kbuild
+++ /dev/null
@@ -1,2 +0,0 @@
-header-y += big_endian.h
-header-y += little_endian.h
diff --git a/ANDROID_3.4.5/include/linux/byteorder/big_endian.h b/ANDROID_3.4.5/include/linux/byteorder/big_endian.h
deleted file mode 100644
index 3c80fd7e..00000000
--- a/ANDROID_3.4.5/include/linux/byteorder/big_endian.h
+++ /dev/null
@@ -1,108 +0,0 @@
-#ifndef _LINUX_BYTEORDER_BIG_ENDIAN_H
-#define _LINUX_BYTEORDER_BIG_ENDIAN_H
-
-#ifndef __BIG_ENDIAN
-#define __BIG_ENDIAN 4321
-#endif
-#ifndef __BIG_ENDIAN_BITFIELD
-#define __BIG_ENDIAN_BITFIELD
-#endif
-
-#include <linux/types.h>
-#include <linux/swab.h>
-
-#define __constant_htonl(x) ((__force __be32)(__u32)(x))
-#define __constant_ntohl(x) ((__force __u32)(__be32)(x))
-#define __constant_htons(x) ((__force __be16)(__u16)(x))
-#define __constant_ntohs(x) ((__force __u16)(__be16)(x))
-#define __constant_cpu_to_le64(x) ((__force __le64)___constant_swab64((x)))
-#define __constant_le64_to_cpu(x) ___constant_swab64((__force __u64)(__le64)(x))
-#define __constant_cpu_to_le32(x) ((__force __le32)___constant_swab32((x)))
-#define __constant_le32_to_cpu(x) ___constant_swab32((__force __u32)(__le32)(x))
-#define __constant_cpu_to_le16(x) ((__force __le16)___constant_swab16((x)))
-#define __constant_le16_to_cpu(x) ___constant_swab16((__force __u16)(__le16)(x))
-#define __constant_cpu_to_be64(x) ((__force __be64)(__u64)(x))
-#define __constant_be64_to_cpu(x) ((__force __u64)(__be64)(x))
-#define __constant_cpu_to_be32(x) ((__force __be32)(__u32)(x))
-#define __constant_be32_to_cpu(x) ((__force __u32)(__be32)(x))
-#define __constant_cpu_to_be16(x) ((__force __be16)(__u16)(x))
-#define __constant_be16_to_cpu(x) ((__force __u16)(__be16)(x))
-#define __cpu_to_le64(x) ((__force __le64)__swab64((x)))
-#define __le64_to_cpu(x) __swab64((__force __u64)(__le64)(x))
-#define __cpu_to_le32(x) ((__force __le32)__swab32((x)))
-#define __le32_to_cpu(x) __swab32((__force __u32)(__le32)(x))
-#define __cpu_to_le16(x) ((__force __le16)__swab16((x)))
-#define __le16_to_cpu(x) __swab16((__force __u16)(__le16)(x))
-#define __cpu_to_be64(x) ((__force __be64)(__u64)(x))
-#define __be64_to_cpu(x) ((__force __u64)(__be64)(x))
-#define __cpu_to_be32(x) ((__force __be32)(__u32)(x))
-#define __be32_to_cpu(x) ((__force __u32)(__be32)(x))
-#define __cpu_to_be16(x) ((__force __be16)(__u16)(x))
-#define __be16_to_cpu(x) ((__force __u16)(__be16)(x))
-
-static inline __le64 __cpu_to_le64p(const __u64 *p)
-{
- return (__force __le64)__swab64p(p);
-}
-static inline __u64 __le64_to_cpup(const __le64 *p)
-{
- return __swab64p((__u64 *)p);
-}
-static inline __le32 __cpu_to_le32p(const __u32 *p)
-{
- return (__force __le32)__swab32p(p);
-}
-static inline __u32 __le32_to_cpup(const __le32 *p)
-{
- return __swab32p((__u32 *)p);
-}
-static inline __le16 __cpu_to_le16p(const __u16 *p)
-{
- return (__force __le16)__swab16p(p);
-}
-static inline __u16 __le16_to_cpup(const __le16 *p)
-{
- return __swab16p((__u16 *)p);
-}
-static inline __be64 __cpu_to_be64p(const __u64 *p)
-{
- return (__force __be64)*p;
-}
-static inline __u64 __be64_to_cpup(const __be64 *p)
-{
- return (__force __u64)*p;
-}
-static inline __be32 __cpu_to_be32p(const __u32 *p)
-{
- return (__force __be32)*p;
-}
-static inline __u32 __be32_to_cpup(const __be32 *p)
-{
- return (__force __u32)*p;
-}
-static inline __be16 __cpu_to_be16p(const __u16 *p)
-{
- return (__force __be16)*p;
-}
-static inline __u16 __be16_to_cpup(const __be16 *p)
-{
- return (__force __u16)*p;
-}
-#define __cpu_to_le64s(x) __swab64s((x))
-#define __le64_to_cpus(x) __swab64s((x))
-#define __cpu_to_le32s(x) __swab32s((x))
-#define __le32_to_cpus(x) __swab32s((x))
-#define __cpu_to_le16s(x) __swab16s((x))
-#define __le16_to_cpus(x) __swab16s((x))
-#define __cpu_to_be64s(x) do { (void)(x); } while (0)
-#define __be64_to_cpus(x) do { (void)(x); } while (0)
-#define __cpu_to_be32s(x) do { (void)(x); } while (0)
-#define __be32_to_cpus(x) do { (void)(x); } while (0)
-#define __cpu_to_be16s(x) do { (void)(x); } while (0)
-#define __be16_to_cpus(x) do { (void)(x); } while (0)
-
-#ifdef __KERNEL__
-#include <linux/byteorder/generic.h>
-#endif
-
-#endif /* _LINUX_BYTEORDER_BIG_ENDIAN_H */
diff --git a/ANDROID_3.4.5/include/linux/byteorder/generic.h b/ANDROID_3.4.5/include/linux/byteorder/generic.h
deleted file mode 100644
index 0846e6b9..00000000
--- a/ANDROID_3.4.5/include/linux/byteorder/generic.h
+++ /dev/null
@@ -1,173 +0,0 @@
-#ifndef _LINUX_BYTEORDER_GENERIC_H
-#define _LINUX_BYTEORDER_GENERIC_H
-
-/*
- * linux/byteorder_generic.h
- * Generic Byte-reordering support
- *
- * The "... p" macros, like le64_to_cpup, can be used with pointers
- * to unaligned data, but there will be a performance penalty on
- * some architectures. Use get_unaligned for unaligned data.
- *
- * Francois-Rene Rideau <fare@tunes.org> 19970707
- * gathered all the good ideas from all asm-foo/byteorder.h into one file,
- * cleaned them up.
- * I hope it is compliant with non-GCC compilers.
- * I decided to put __BYTEORDER_HAS_U64__ in byteorder.h,
- * because I wasn't sure it would be ok to put it in types.h
- * Upgraded it to 2.1.43
- * Francois-Rene Rideau <fare@tunes.org> 19971012
- * Upgraded it to 2.1.57
- * to please Linus T., replaced huge #ifdef's between little/big endian
- * by nestedly #include'd files.
- * Francois-Rene Rideau <fare@tunes.org> 19971205
- * Made it to 2.1.71; now a facelift:
- * Put files under include/linux/byteorder/
- * Split swab from generic support.
- *
- * TODO:
- * = Regular kernel maintainers could also replace all these manual
- * byteswap macros that remain, disseminated among drivers,
- * after some grep or the sources...
- * = Linus might want to rename all these macros and files to fit his taste,
- * to fit his personal naming scheme.
- * = it seems that a few drivers would also appreciate
- * nybble swapping support...
- * = every architecture could add their byteswap macro in asm/byteorder.h
- * see how some architectures already do (i386, alpha, ppc, etc)
- * = cpu_to_beXX and beXX_to_cpu might some day need to be well
- * distinguished throughout the kernel. This is not the case currently,
- * since little endian, big endian, and pdp endian machines needn't it.
- * But this might be the case for, say, a port of Linux to 20/21 bit
- * architectures (and F21 Linux addict around?).
- */
-
-/*
- * The following macros are to be defined by <asm/byteorder.h>:
- *
- * Conversion of long and short int between network and host format
- * ntohl(__u32 x)
- * ntohs(__u16 x)
- * htonl(__u32 x)
- * htons(__u16 x)
- * It seems that some programs (which? where? or perhaps a standard? POSIX?)
- * might like the above to be functions, not macros (why?).
- * if that's true, then detect them, and take measures.
- * Anyway, the measure is: define only ___ntohl as a macro instead,
- * and in a separate file, have
- * unsigned long inline ntohl(x){return ___ntohl(x);}
- *
- * The same for constant arguments
- * __constant_ntohl(__u32 x)
- * __constant_ntohs(__u16 x)
- * __constant_htonl(__u32 x)
- * __constant_htons(__u16 x)
- *
- * Conversion of XX-bit integers (16- 32- or 64-)
- * between native CPU format and little/big endian format
- * 64-bit stuff only defined for proper architectures
- * cpu_to_[bl]eXX(__uXX x)
- * [bl]eXX_to_cpu(__uXX x)
- *
- * The same, but takes a pointer to the value to convert
- * cpu_to_[bl]eXXp(__uXX x)
- * [bl]eXX_to_cpup(__uXX x)
- *
- * The same, but change in situ
- * cpu_to_[bl]eXXs(__uXX x)
- * [bl]eXX_to_cpus(__uXX x)
- *
- * See asm-foo/byteorder.h for examples of how to provide
- * architecture-optimized versions
- *
- */
-
-#define cpu_to_le64 __cpu_to_le64
-#define le64_to_cpu __le64_to_cpu
-#define cpu_to_le32 __cpu_to_le32
-#define le32_to_cpu __le32_to_cpu
-#define cpu_to_le16 __cpu_to_le16
-#define le16_to_cpu __le16_to_cpu
-#define cpu_to_be64 __cpu_to_be64
-#define be64_to_cpu __be64_to_cpu
-#define cpu_to_be32 __cpu_to_be32
-#define be32_to_cpu __be32_to_cpu
-#define cpu_to_be16 __cpu_to_be16
-#define be16_to_cpu __be16_to_cpu
-#define cpu_to_le64p __cpu_to_le64p
-#define le64_to_cpup __le64_to_cpup
-#define cpu_to_le32p __cpu_to_le32p
-#define le32_to_cpup __le32_to_cpup
-#define cpu_to_le16p __cpu_to_le16p
-#define le16_to_cpup __le16_to_cpup
-#define cpu_to_be64p __cpu_to_be64p
-#define be64_to_cpup __be64_to_cpup
-#define cpu_to_be32p __cpu_to_be32p
-#define be32_to_cpup __be32_to_cpup
-#define cpu_to_be16p __cpu_to_be16p
-#define be16_to_cpup __be16_to_cpup
-#define cpu_to_le64s __cpu_to_le64s
-#define le64_to_cpus __le64_to_cpus
-#define cpu_to_le32s __cpu_to_le32s
-#define le32_to_cpus __le32_to_cpus
-#define cpu_to_le16s __cpu_to_le16s
-#define le16_to_cpus __le16_to_cpus
-#define cpu_to_be64s __cpu_to_be64s
-#define be64_to_cpus __be64_to_cpus
-#define cpu_to_be32s __cpu_to_be32s
-#define be32_to_cpus __be32_to_cpus
-#define cpu_to_be16s __cpu_to_be16s
-#define be16_to_cpus __be16_to_cpus
-
-/*
- * They have to be macros in order to do the constant folding
- * correctly - if the argument passed into a inline function
- * it is no longer constant according to gcc..
- */
-
-#undef ntohl
-#undef ntohs
-#undef htonl
-#undef htons
-
-#define ___htonl(x) __cpu_to_be32(x)
-#define ___htons(x) __cpu_to_be16(x)
-#define ___ntohl(x) __be32_to_cpu(x)
-#define ___ntohs(x) __be16_to_cpu(x)
-
-#define htonl(x) ___htonl(x)
-#define ntohl(x) ___ntohl(x)
-#define htons(x) ___htons(x)
-#define ntohs(x) ___ntohs(x)
-
-static inline void le16_add_cpu(__le16 *var, u16 val)
-{
- *var = cpu_to_le16(le16_to_cpu(*var) + val);
-}
-
-static inline void le32_add_cpu(__le32 *var, u32 val)
-{
- *var = cpu_to_le32(le32_to_cpu(*var) + val);
-}
-
-static inline void le64_add_cpu(__le64 *var, u64 val)
-{
- *var = cpu_to_le64(le64_to_cpu(*var) + val);
-}
-
-static inline void be16_add_cpu(__be16 *var, u16 val)
-{
- *var = cpu_to_be16(be16_to_cpu(*var) + val);
-}
-
-static inline void be32_add_cpu(__be32 *var, u32 val)
-{
- *var = cpu_to_be32(be32_to_cpu(*var) + val);
-}
-
-static inline void be64_add_cpu(__be64 *var, u64 val)
-{
- *var = cpu_to_be64(be64_to_cpu(*var) + val);
-}
-
-#endif /* _LINUX_BYTEORDER_GENERIC_H */
diff --git a/ANDROID_3.4.5/include/linux/byteorder/little_endian.h b/ANDROID_3.4.5/include/linux/byteorder/little_endian.h
deleted file mode 100644
index 83195fb8..00000000
--- a/ANDROID_3.4.5/include/linux/byteorder/little_endian.h
+++ /dev/null
@@ -1,108 +0,0 @@
-#ifndef _LINUX_BYTEORDER_LITTLE_ENDIAN_H
-#define _LINUX_BYTEORDER_LITTLE_ENDIAN_H
-
-#ifndef __LITTLE_ENDIAN
-#define __LITTLE_ENDIAN 1234
-#endif
-#ifndef __LITTLE_ENDIAN_BITFIELD
-#define __LITTLE_ENDIAN_BITFIELD
-#endif
-
-#include <linux/types.h>
-#include <linux/swab.h>
-
-#define __constant_htonl(x) ((__force __be32)___constant_swab32((x)))
-#define __constant_ntohl(x) ___constant_swab32((__force __be32)(x))
-#define __constant_htons(x) ((__force __be16)___constant_swab16((x)))
-#define __constant_ntohs(x) ___constant_swab16((__force __be16)(x))
-#define __constant_cpu_to_le64(x) ((__force __le64)(__u64)(x))
-#define __constant_le64_to_cpu(x) ((__force __u64)(__le64)(x))
-#define __constant_cpu_to_le32(x) ((__force __le32)(__u32)(x))
-#define __constant_le32_to_cpu(x) ((__force __u32)(__le32)(x))
-#define __constant_cpu_to_le16(x) ((__force __le16)(__u16)(x))
-#define __constant_le16_to_cpu(x) ((__force __u16)(__le16)(x))
-#define __constant_cpu_to_be64(x) ((__force __be64)___constant_swab64((x)))
-#define __constant_be64_to_cpu(x) ___constant_swab64((__force __u64)(__be64)(x))
-#define __constant_cpu_to_be32(x) ((__force __be32)___constant_swab32((x)))
-#define __constant_be32_to_cpu(x) ___constant_swab32((__force __u32)(__be32)(x))
-#define __constant_cpu_to_be16(x) ((__force __be16)___constant_swab16((x)))
-#define __constant_be16_to_cpu(x) ___constant_swab16((__force __u16)(__be16)(x))
-#define __cpu_to_le64(x) ((__force __le64)(__u64)(x))
-#define __le64_to_cpu(x) ((__force __u64)(__le64)(x))
-#define __cpu_to_le32(x) ((__force __le32)(__u32)(x))
-#define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
-#define __cpu_to_le16(x) ((__force __le16)(__u16)(x))
-#define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
-#define __cpu_to_be64(x) ((__force __be64)__swab64((x)))
-#define __be64_to_cpu(x) __swab64((__force __u64)(__be64)(x))
-#define __cpu_to_be32(x) ((__force __be32)__swab32((x)))
-#define __be32_to_cpu(x) __swab32((__force __u32)(__be32)(x))
-#define __cpu_to_be16(x) ((__force __be16)__swab16((x)))
-#define __be16_to_cpu(x) __swab16((__force __u16)(__be16)(x))
-
-static inline __le64 __cpu_to_le64p(const __u64 *p)
-{
- return (__force __le64)*p;
-}
-static inline __u64 __le64_to_cpup(const __le64 *p)
-{
- return (__force __u64)*p;
-}
-static inline __le32 __cpu_to_le32p(const __u32 *p)
-{
- return (__force __le32)*p;
-}
-static inline __u32 __le32_to_cpup(const __le32 *p)
-{
- return (__force __u32)*p;
-}
-static inline __le16 __cpu_to_le16p(const __u16 *p)
-{
- return (__force __le16)*p;
-}
-static inline __u16 __le16_to_cpup(const __le16 *p)
-{
- return (__force __u16)*p;
-}
-static inline __be64 __cpu_to_be64p(const __u64 *p)
-{
- return (__force __be64)__swab64p(p);
-}
-static inline __u64 __be64_to_cpup(const __be64 *p)
-{
- return __swab64p((__u64 *)p);
-}
-static inline __be32 __cpu_to_be32p(const __u32 *p)
-{
- return (__force __be32)__swab32p(p);
-}
-static inline __u32 __be32_to_cpup(const __be32 *p)
-{
- return __swab32p((__u32 *)p);
-}
-static inline __be16 __cpu_to_be16p(const __u16 *p)
-{
- return (__force __be16)__swab16p(p);
-}
-static inline __u16 __be16_to_cpup(const __be16 *p)
-{
- return __swab16p((__u16 *)p);
-}
-#define __cpu_to_le64s(x) do { (void)(x); } while (0)
-#define __le64_to_cpus(x) do { (void)(x); } while (0)
-#define __cpu_to_le32s(x) do { (void)(x); } while (0)
-#define __le32_to_cpus(x) do { (void)(x); } while (0)
-#define __cpu_to_le16s(x) do { (void)(x); } while (0)
-#define __le16_to_cpus(x) do { (void)(x); } while (0)
-#define __cpu_to_be64s(x) __swab64s((x))
-#define __be64_to_cpus(x) __swab64s((x))
-#define __cpu_to_be32s(x) __swab32s((x))
-#define __be32_to_cpus(x) __swab32s((x))
-#define __cpu_to_be16s(x) __swab16s((x))
-#define __be16_to_cpus(x) __swab16s((x))
-
-#ifdef __KERNEL__
-#include <linux/byteorder/generic.h>
-#endif
-
-#endif /* _LINUX_BYTEORDER_LITTLE_ENDIAN_H */
diff --git a/ANDROID_3.4.5/include/linux/c2port.h b/ANDROID_3.4.5/include/linux/c2port.h
deleted file mode 100644
index 4efabcb5..00000000
--- a/ANDROID_3.4.5/include/linux/c2port.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Silicon Labs C2 port Linux support
- *
- * Copyright (c) 2007 Rodolfo Giometti <giometti@linux.it>
- * Copyright (c) 2007 Eurotech S.p.A. <info@eurotech.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
- */
-
-#include <linux/kmemcheck.h>
-
-#define C2PORT_NAME_LEN 32
-
-struct device;
-
-/*
- * C2 port basic structs
- */
-
-/* Main struct */
-struct c2port_ops;
-struct c2port_device {
- kmemcheck_bitfield_begin(flags);
- unsigned int access:1;
- unsigned int flash_access:1;
- kmemcheck_bitfield_end(flags);
-
- int id;
- char name[C2PORT_NAME_LEN];
- struct c2port_ops *ops;
- struct mutex mutex; /* prevent races during read/write */
-
- struct device *dev;
-
- void *private_data;
-};
-
-/* Basic operations */
-struct c2port_ops {
- /* Flash layout */
- unsigned short block_size; /* flash block size in bytes */
- unsigned short blocks_num; /* flash blocks number */
-
- /* Enable or disable the access to C2 port */
- void (*access)(struct c2port_device *dev, int status);
-
- /* Set C2D data line as input/output */
- void (*c2d_dir)(struct c2port_device *dev, int dir);
-
- /* Read/write C2D data line */
- int (*c2d_get)(struct c2port_device *dev);
- void (*c2d_set)(struct c2port_device *dev, int status);
-
- /* Write C2CK clock line */
- void (*c2ck_set)(struct c2port_device *dev, int status);
-};
-
-/*
- * Exported functions
- */
-
-extern struct c2port_device *c2port_device_register(char *name,
- struct c2port_ops *ops, void *devdata);
-extern void c2port_device_unregister(struct c2port_device *dev);
diff --git a/ANDROID_3.4.5/include/linux/cache.h b/ANDROID_3.4.5/include/linux/cache.h
deleted file mode 100644
index 4c570653..00000000
--- a/ANDROID_3.4.5/include/linux/cache.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef __LINUX_CACHE_H
-#define __LINUX_CACHE_H
-
-#include <linux/kernel.h>
-#include <asm/cache.h>
-
-#ifndef L1_CACHE_ALIGN
-#define L1_CACHE_ALIGN(x) ALIGN(x, L1_CACHE_BYTES)
-#endif
-
-#ifndef SMP_CACHE_BYTES
-#define SMP_CACHE_BYTES L1_CACHE_BYTES
-#endif
-
-#ifndef __read_mostly
-#define __read_mostly
-#endif
-
-#ifndef ____cacheline_aligned
-#define ____cacheline_aligned __attribute__((__aligned__(SMP_CACHE_BYTES)))
-#endif
-
-#ifndef ____cacheline_aligned_in_smp
-#ifdef CONFIG_SMP
-#define ____cacheline_aligned_in_smp ____cacheline_aligned
-#else
-#define ____cacheline_aligned_in_smp
-#endif /* CONFIG_SMP */
-#endif
-
-#ifndef __cacheline_aligned
-#define __cacheline_aligned \
- __attribute__((__aligned__(SMP_CACHE_BYTES), \
- __section__(".data..cacheline_aligned")))
-#endif /* __cacheline_aligned */
-
-#ifndef __cacheline_aligned_in_smp
-#ifdef CONFIG_SMP
-#define __cacheline_aligned_in_smp __cacheline_aligned
-#else
-#define __cacheline_aligned_in_smp
-#endif /* CONFIG_SMP */
-#endif
-
-/*
- * The maximum alignment needed for some critical structures
- * These could be inter-node cacheline sizes/L3 cacheline
- * size etc. Define this in asm/cache.h for your arch
- */
-#ifndef INTERNODE_CACHE_SHIFT
-#define INTERNODE_CACHE_SHIFT L1_CACHE_SHIFT
-#endif
-
-#if !defined(____cacheline_internodealigned_in_smp)
-#if defined(CONFIG_SMP)
-#define ____cacheline_internodealigned_in_smp \
- __attribute__((__aligned__(1 << (INTERNODE_CACHE_SHIFT))))
-#else
-#define ____cacheline_internodealigned_in_smp
-#endif
-#endif
-
-#ifndef CONFIG_ARCH_HAS_CACHE_LINE_SIZE
-#define cache_line_size() L1_CACHE_BYTES
-#endif
-
-#endif /* __LINUX_CACHE_H */
diff --git a/ANDROID_3.4.5/include/linux/caif/Kbuild b/ANDROID_3.4.5/include/linux/caif/Kbuild
deleted file mode 100644
index a9cf2506..00000000
--- a/ANDROID_3.4.5/include/linux/caif/Kbuild
+++ /dev/null
@@ -1,2 +0,0 @@
-header-y += caif_socket.h
-header-y += if_caif.h
diff --git a/ANDROID_3.4.5/include/linux/caif/caif_socket.h b/ANDROID_3.4.5/include/linux/caif/caif_socket.h
deleted file mode 100644
index 3f3bac6a..00000000
--- a/ANDROID_3.4.5/include/linux/caif/caif_socket.h
+++ /dev/null
@@ -1,194 +0,0 @@
-/* linux/caif_socket.h
- * CAIF Definitions for CAIF socket and network layer
- * Copyright (C) ST-Ericsson AB 2010
- * Author: Sjur Brendeland/ sjur.brandeland@stericsson.com
- * License terms: GNU General Public License (GPL) version 2
- */
-
-#ifndef _LINUX_CAIF_SOCKET_H
-#define _LINUX_CAIF_SOCKET_H
-
-#include <linux/types.h>
-#include <linux/socket.h>
-
-/**
- * enum caif_link_selector - Physical Link Selection.
- * @CAIF_LINK_HIGH_BANDW: Physical interface for high-bandwidth
- * traffic.
- * @CAIF_LINK_LOW_LATENCY: Physical interface for low-latency
- * traffic.
- *
- * CAIF Link Layers can register their link properties.
- * This enum is used for choosing between CAIF Link Layers when
- * setting up CAIF Channels when multiple CAIF Link Layers exists.
- */
-enum caif_link_selector {
- CAIF_LINK_HIGH_BANDW,
- CAIF_LINK_LOW_LATENCY
-};
-
-/**
- * enum caif_channel_priority - CAIF channel priorities.
- *
- * @CAIF_PRIO_MIN: Min priority for a channel.
- * @CAIF_PRIO_LOW: Low-priority channel.
- * @CAIF_PRIO_NORMAL: Normal/default priority level.
- * @CAIF_PRIO_HIGH: High priority level
- * @CAIF_PRIO_MAX: Max priority for channel
- *
- * Priority can be set on CAIF Channels in order to
- * prioritize between traffic on different CAIF Channels.
- * These priority levels are recommended, but the priority value
- * is not restricted to the values defined in this enum, any value
- * between CAIF_PRIO_MIN and CAIF_PRIO_MAX could be used.
- */
-enum caif_channel_priority {
- CAIF_PRIO_MIN = 0x01,
- CAIF_PRIO_LOW = 0x04,
- CAIF_PRIO_NORMAL = 0x0f,
- CAIF_PRIO_HIGH = 0x14,
- CAIF_PRIO_MAX = 0x1F
-};
-
-/**
- * enum caif_protocol_type - CAIF Channel type.
- * @CAIFPROTO_AT: Classic AT channel.
- * @CAIFPROTO_DATAGRAM: Datagram channel.
- * @CAIFPROTO_DATAGRAM_LOOP: Datagram loopback channel, used for testing.
- * @CAIFPROTO_UTIL: Utility (Psock) channel.
- * @CAIFPROTO_RFM: Remote File Manager
- * @CAIFPROTO_DEBUG: Debug link
- *
- * This enum defines the CAIF Channel type to be used. This defines
- * the service to connect to on the modem.
- */
-enum caif_protocol_type {
- CAIFPROTO_AT,
- CAIFPROTO_DATAGRAM,
- CAIFPROTO_DATAGRAM_LOOP,
- CAIFPROTO_UTIL,
- CAIFPROTO_RFM,
- CAIFPROTO_DEBUG,
- _CAIFPROTO_MAX
-};
-#define CAIFPROTO_MAX _CAIFPROTO_MAX
-
-/**
- * enum caif_at_type - AT Service Endpoint
- * @CAIF_ATTYPE_PLAIN: Connects to a plain vanilla AT channel.
- */
-enum caif_at_type {
- CAIF_ATTYPE_PLAIN = 2
-};
- /**
- * enum caif_debug_type - Content selection for debug connection
- * @CAIF_DEBUG_TRACE_INTERACTIVE: Connection will contain
- * both trace and interactive debug.
- * @CAIF_DEBUG_TRACE: Connection contains trace only.
- * @CAIF_DEBUG_INTERACTIVE: Connection to interactive debug.
- */
-enum caif_debug_type {
- CAIF_DEBUG_TRACE_INTERACTIVE = 0,
- CAIF_DEBUG_TRACE,
- CAIF_DEBUG_INTERACTIVE,
-};
-
-/**
- * enum caif_debug_service - Debug Service Endpoint
- * @CAIF_RADIO_DEBUG_SERVICE: Debug service on the Radio sub-system
- * @CAIF_APP_DEBUG_SERVICE: Debug for the applications sub-system
- */
-enum caif_debug_service {
- CAIF_RADIO_DEBUG_SERVICE = 1,
- CAIF_APP_DEBUG_SERVICE
-};
-
-/**
- * struct sockaddr_caif - the sockaddr structure for CAIF sockets.
- * @family: Address family number, must be AF_CAIF.
- * @u: Union of address data 'switched' by family.
- * :
- * @u.at: Applies when family = CAIFPROTO_AT.
- *
- * @u.at.type: Type of AT link to set up (enum caif_at_type).
- *
- * @u.util: Applies when family = CAIFPROTO_UTIL
- *
- * @u.util.service: Utility service name.
- *
- * @u.dgm: Applies when family = CAIFPROTO_DATAGRAM
- *
- * @u.dgm.connection_id: Datagram connection id.
- *
- * @u.dgm.nsapi: NSAPI of the PDP-Context.
- *
- * @u.rfm: Applies when family = CAIFPROTO_RFM
- *
- * @u.rfm.connection_id: Connection ID for RFM.
- *
- * @u.rfm.volume: Volume to mount.
- *
- * @u.dbg: Applies when family = CAIFPROTO_DEBUG.
- *
- * @u.dbg.type: Type of debug connection to set up
- * (caif_debug_type).
- *
- * @u.dbg.service: Service sub-system to connect (caif_debug_service
- * Description:
- * This structure holds the connect parameters used for setting up a
- * CAIF Channel. It defines the service to connect to on the modem.
- */
-struct sockaddr_caif {
- __kernel_sa_family_t family;
- union {
- struct {
- __u8 type; /* type: enum caif_at_type */
- } at; /* CAIFPROTO_AT */
- struct {
- char service[16];
- } util; /* CAIFPROTO_UTIL */
- union {
- __u32 connection_id;
- __u8 nsapi;
- } dgm; /* CAIFPROTO_DATAGRAM(_LOOP)*/
- struct {
- __u32 connection_id;
- char volume[16];
- } rfm; /* CAIFPROTO_RFM */
- struct {
- __u8 type; /* type:enum caif_debug_type */
- __u8 service; /* service:caif_debug_service */
- } dbg; /* CAIFPROTO_DEBUG */
- } u;
-};
-
-/**
- * enum caif_socket_opts - CAIF option values for getsockopt and setsockopt.
- *
- * @CAIFSO_LINK_SELECT: Selector used if multiple CAIF Link layers are
- * available. Either a high bandwidth
- * link can be selected (CAIF_LINK_HIGH_BANDW) or
- * or a low latency link (CAIF_LINK_LOW_LATENCY).
- * This option is of type __u32.
- * Alternatively SO_BINDTODEVICE can be used.
- *
- * @CAIFSO_REQ_PARAM: Used to set the request parameters for a
- * utility channel. (maximum 256 bytes). This
- * option must be set before connecting.
- *
- * @CAIFSO_RSP_PARAM: Gets the response parameters for a utility
- * channel. (maximum 256 bytes). This option
- * is valid after a successful connect.
- *
- *
- * This enum defines the CAIF Socket options to be used on a socket
- * of type PF_CAIF.
- *
- */
-enum caif_socket_opts {
- CAIFSO_LINK_SELECT = 127,
- CAIFSO_REQ_PARAM = 128,
- CAIFSO_RSP_PARAM = 129,
-};
-
-#endif /* _LINUX_CAIF_SOCKET_H */
diff --git a/ANDROID_3.4.5/include/linux/caif/if_caif.h b/ANDROID_3.4.5/include/linux/caif/if_caif.h
deleted file mode 100644
index 5e7eed4e..00000000
--- a/ANDROID_3.4.5/include/linux/caif/if_caif.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson AB 2010
- * Author: Sjur Brendeland/ sjur.brandeland@stericsson.com
- * License terms: GNU General Public License (GPL) version 2
- */
-
-#ifndef IF_CAIF_H_
-#define IF_CAIF_H_
-#include <linux/sockios.h>
-#include <linux/types.h>
-#include <linux/socket.h>
-
-/**
- * enum ifla_caif - CAIF NetlinkRT parameters.
- * @IFLA_CAIF_IPV4_CONNID: Connection ID for IPv4 PDP Context.
- * The type of attribute is NLA_U32.
- * @IFLA_CAIF_IPV6_CONNID: Connection ID for IPv6 PDP Context.
- * The type of attribute is NLA_U32.
- * @IFLA_CAIF_LOOPBACK: If different from zero, device is doing loopback
- * The type of attribute is NLA_U8.
- *
- * When using RT Netlink to create, destroy or configure a CAIF IP interface,
- * enum ifla_caif is used to specify the configuration attributes.
- */
-enum ifla_caif {
- __IFLA_CAIF_UNSPEC,
- IFLA_CAIF_IPV4_CONNID,
- IFLA_CAIF_IPV6_CONNID,
- IFLA_CAIF_LOOPBACK,
- __IFLA_CAIF_MAX
-};
-#define IFLA_CAIF_MAX (__IFLA_CAIF_MAX-1)
-
-#endif /*IF_CAIF_H_*/
diff --git a/ANDROID_3.4.5/include/linux/can.h b/ANDROID_3.4.5/include/linux/can.h
deleted file mode 100644
index 9a19bcb3..00000000
--- a/ANDROID_3.4.5/include/linux/can.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * linux/can.h
- *
- * Definitions for CAN network layer (socket addr / CAN frame / CAN filter)
- *
- * Authors: Oliver Hartkopp <oliver.hartkopp@volkswagen.de>
- * Urs Thuermann <urs.thuermann@volkswagen.de>
- * Copyright (c) 2002-2007 Volkswagen Group Electronic Research
- * All rights reserved.
- *
- */
-
-#ifndef CAN_H
-#define CAN_H
-
-#include <linux/types.h>
-#include <linux/socket.h>
-
-/* controller area network (CAN) kernel definitions */
-
-/* special address description flags for the CAN_ID */
-#define CAN_EFF_FLAG 0x80000000U /* EFF/SFF is set in the MSB */
-#define CAN_RTR_FLAG 0x40000000U /* remote transmission request */
-#define CAN_ERR_FLAG 0x20000000U /* error frame */
-
-/* valid bits in CAN ID for frame formats */
-#define CAN_SFF_MASK 0x000007FFU /* standard frame format (SFF) */
-#define CAN_EFF_MASK 0x1FFFFFFFU /* extended frame format (EFF) */
-#define CAN_ERR_MASK 0x1FFFFFFFU /* omit EFF, RTR, ERR flags */
-
-/*
- * Controller Area Network Identifier structure
- *
- * bit 0-28 : CAN identifier (11/29 bit)
- * bit 29 : error frame flag (0 = data frame, 1 = error frame)
- * bit 30 : remote transmission request flag (1 = rtr frame)
- * bit 31 : frame format flag (0 = standard 11 bit, 1 = extended 29 bit)
- */
-typedef __u32 canid_t;
-
-/*
- * Controller Area Network Error Frame Mask structure
- *
- * bit 0-28 : error class mask (see include/linux/can/error.h)
- * bit 29-31 : set to zero
- */
-typedef __u32 can_err_mask_t;
-
-/**
- * struct can_frame - basic CAN frame structure
- * @can_id: the CAN ID of the frame and CAN_*_FLAG flags, see above.
- * @can_dlc: the data length field of the CAN frame
- * @data: the CAN frame payload.
- */
-struct can_frame {
- canid_t can_id; /* 32 bit CAN_ID + EFF/RTR/ERR flags */
- __u8 can_dlc; /* data length code: 0 .. 8 */
- __u8 data[8] __attribute__((aligned(8)));
-};
-
-/* particular protocols of the protocol family PF_CAN */
-#define CAN_RAW 1 /* RAW sockets */
-#define CAN_BCM 2 /* Broadcast Manager */
-#define CAN_TP16 3 /* VAG Transport Protocol v1.6 */
-#define CAN_TP20 4 /* VAG Transport Protocol v2.0 */
-#define CAN_MCNET 5 /* Bosch MCNet */
-#define CAN_ISOTP 6 /* ISO 15765-2 Transport Protocol */
-#define CAN_NPROTO 7
-
-#define SOL_CAN_BASE 100
-
-/**
- * struct sockaddr_can - the sockaddr structure for CAN sockets
- * @can_family: address family number AF_CAN.
- * @can_ifindex: CAN network interface index.
- * @can_addr: protocol specific address information
- */
-struct sockaddr_can {
- __kernel_sa_family_t can_family;
- int can_ifindex;
- union {
- /* transport protocol class address information (e.g. ISOTP) */
- struct { canid_t rx_id, tx_id; } tp;
-
- /* reserved for future CAN protocols address information */
- } can_addr;
-};
-
-/**
- * struct can_filter - CAN ID based filter in can_register().
- * @can_id: relevant bits of CAN ID which are not masked out.
- * @can_mask: CAN mask (see description)
- *
- * Description:
- * A filter matches, when
- *
- * <received_can_id> & mask == can_id & mask
- *
- * The filter can be inverted (CAN_INV_FILTER bit set in can_id) or it can
- * filter for error frames (CAN_ERR_FLAG bit set in mask).
- */
-struct can_filter {
- canid_t can_id;
- canid_t can_mask;
-};
-
-#define CAN_INV_FILTER 0x20000000U /* to be set in can_filter.can_id */
-
-#endif /* CAN_H */
diff --git a/ANDROID_3.4.5/include/linux/can/Kbuild b/ANDROID_3.4.5/include/linux/can/Kbuild
deleted file mode 100644
index c62b7f17..00000000
--- a/ANDROID_3.4.5/include/linux/can/Kbuild
+++ /dev/null
@@ -1,5 +0,0 @@
-header-y += raw.h
-header-y += bcm.h
-header-y += gw.h
-header-y += error.h
-header-y += netlink.h
diff --git a/ANDROID_3.4.5/include/linux/can/bcm.h b/ANDROID_3.4.5/include/linux/can/bcm.h
deleted file mode 100644
index 3ebe387f..00000000
--- a/ANDROID_3.4.5/include/linux/can/bcm.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * linux/can/bcm.h
- *
- * Definitions for CAN Broadcast Manager (BCM)
- *
- * Author: Oliver Hartkopp <oliver.hartkopp@volkswagen.de>
- * Copyright (c) 2002-2007 Volkswagen Group Electronic Research
- * All rights reserved.
- *
- */
-
-#ifndef CAN_BCM_H
-#define CAN_BCM_H
-
-#include <linux/types.h>
-#include <linux/can.h>
-
-/**
- * struct bcm_msg_head - head of messages to/from the broadcast manager
- * @opcode: opcode, see enum below.
- * @flags: special flags, see below.
- * @count: number of frames to send before changing interval.
- * @ival1: interval for the first @count frames.
- * @ival2: interval for the following frames.
- * @can_id: CAN ID of frames to be sent or received.
- * @nframes: number of frames appended to the message head.
- * @frames: array of CAN frames.
- */
-struct bcm_msg_head {
- __u32 opcode;
- __u32 flags;
- __u32 count;
- struct timeval ival1, ival2;
- canid_t can_id;
- __u32 nframes;
- struct can_frame frames[0];
-};
-
-enum {
- TX_SETUP = 1, /* create (cyclic) transmission task */
- TX_DELETE, /* remove (cyclic) transmission task */
- TX_READ, /* read properties of (cyclic) transmission task */
- TX_SEND, /* send one CAN frame */
- RX_SETUP, /* create RX content filter subscription */
- RX_DELETE, /* remove RX content filter subscription */
- RX_READ, /* read properties of RX content filter subscription */
- TX_STATUS, /* reply to TX_READ request */
- TX_EXPIRED, /* notification on performed transmissions (count=0) */
- RX_STATUS, /* reply to RX_READ request */
- RX_TIMEOUT, /* cyclic message is absent */
- RX_CHANGED /* updated CAN frame (detected content change) */
-};
-
-#define SETTIMER 0x0001
-#define STARTTIMER 0x0002
-#define TX_COUNTEVT 0x0004
-#define TX_ANNOUNCE 0x0008
-#define TX_CP_CAN_ID 0x0010
-#define RX_FILTER_ID 0x0020
-#define RX_CHECK_DLC 0x0040
-#define RX_NO_AUTOTIMER 0x0080
-#define RX_ANNOUNCE_RESUME 0x0100
-#define TX_RESET_MULTI_IDX 0x0200
-#define RX_RTR_FRAME 0x0400
-
-#endif /* CAN_BCM_H */
diff --git a/ANDROID_3.4.5/include/linux/can/core.h b/ANDROID_3.4.5/include/linux/can/core.h
deleted file mode 100644
index 0ccc1cd2..00000000
--- a/ANDROID_3.4.5/include/linux/can/core.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * linux/can/core.h
- *
- * Protoypes and definitions for CAN protocol modules using the PF_CAN core
- *
- * Authors: Oliver Hartkopp <oliver.hartkopp@volkswagen.de>
- * Urs Thuermann <urs.thuermann@volkswagen.de>
- * Copyright (c) 2002-2007 Volkswagen Group Electronic Research
- * All rights reserved.
- *
- */
-
-#ifndef CAN_CORE_H
-#define CAN_CORE_H
-
-#include <linux/can.h>
-#include <linux/skbuff.h>
-#include <linux/netdevice.h>
-
-#define CAN_VERSION "20090105"
-
-/* increment this number each time you change some user-space interface */
-#define CAN_ABI_VERSION "8"
-
-#define CAN_VERSION_STRING "rev " CAN_VERSION " abi " CAN_ABI_VERSION
-
-#define DNAME(dev) ((dev) ? (dev)->name : "any")
-
-/**
- * struct can_proto - CAN protocol structure
- * @type: type argument in socket() syscall, e.g. SOCK_DGRAM.
- * @protocol: protocol number in socket() syscall.
- * @ops: pointer to struct proto_ops for sock->ops.
- * @prot: pointer to struct proto structure.
- */
-struct can_proto {
- int type;
- int protocol;
- const struct proto_ops *ops;
- struct proto *prot;
-};
-
-/* function prototypes for the CAN networklayer core (af_can.c) */
-
-extern int can_proto_register(const struct can_proto *cp);
-extern void can_proto_unregister(const struct can_proto *cp);
-
-extern int can_rx_register(struct net_device *dev, canid_t can_id,
- canid_t mask,
- void (*func)(struct sk_buff *, void *),
- void *data, char *ident);
-
-extern void can_rx_unregister(struct net_device *dev, canid_t can_id,
- canid_t mask,
- void (*func)(struct sk_buff *, void *),
- void *data);
-
-extern int can_send(struct sk_buff *skb, int loop);
-extern int can_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg);
-
-#endif /* CAN_CORE_H */
diff --git a/ANDROID_3.4.5/include/linux/can/dev.h b/ANDROID_3.4.5/include/linux/can/dev.h
deleted file mode 100644
index 5d2efe7e..00000000
--- a/ANDROID_3.4.5/include/linux/can/dev.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * linux/can/dev.h
- *
- * Definitions for the CAN network device driver interface
- *
- * Copyright (C) 2006 Andrey Volkov <avolkov@varma-el.com>
- * Varma Electronics Oy
- *
- * Copyright (C) 2008 Wolfgang Grandegger <wg@grandegger.com>
- *
- */
-
-#ifndef CAN_DEV_H
-#define CAN_DEV_H
-
-#include <linux/can.h>
-#include <linux/can/netlink.h>
-#include <linux/can/error.h>
-
-/*
- * CAN mode
- */
-enum can_mode {
- CAN_MODE_STOP = 0,
- CAN_MODE_START,
- CAN_MODE_SLEEP
-};
-
-/*
- * CAN common private data
- */
-struct can_priv {
- struct can_device_stats can_stats;
-
- struct can_bittiming bittiming;
- struct can_bittiming_const *bittiming_const;
- struct can_clock clock;
-
- enum can_state state;
- u32 ctrlmode;
- u32 ctrlmode_supported;
-
- int restart_ms;
- struct timer_list restart_timer;
-
- int (*do_set_bittiming)(struct net_device *dev);
- int (*do_set_mode)(struct net_device *dev, enum can_mode mode);
- int (*do_get_state)(const struct net_device *dev,
- enum can_state *state);
- int (*do_get_berr_counter)(const struct net_device *dev,
- struct can_berr_counter *bec);
-
- unsigned int echo_skb_max;
- struct sk_buff **echo_skb;
-};
-
-/*
- * get_can_dlc(value) - helper macro to cast a given data length code (dlc)
- * to __u8 and ensure the dlc value to be max. 8 bytes.
- *
- * To be used in the CAN netdriver receive path to ensure conformance with
- * ISO 11898-1 Chapter 8.4.2.3 (DLC field)
- */
-#define get_can_dlc(i) (min_t(__u8, (i), 8))
-
-/* Drop a given socketbuffer if it does not contain a valid CAN frame. */
-static inline int can_dropped_invalid_skb(struct net_device *dev,
- struct sk_buff *skb)
-{
- const struct can_frame *cf = (struct can_frame *)skb->data;
-
- if (unlikely(skb->len != sizeof(*cf) || cf->can_dlc > 8)) {
- kfree_skb(skb);
- dev->stats.tx_dropped++;
- return 1;
- }
-
- return 0;
-}
-
-struct net_device *alloc_candev(int sizeof_priv, unsigned int echo_skb_max);
-void free_candev(struct net_device *dev);
-
-int open_candev(struct net_device *dev);
-void close_candev(struct net_device *dev);
-
-int register_candev(struct net_device *dev);
-void unregister_candev(struct net_device *dev);
-
-int can_restart_now(struct net_device *dev);
-void can_bus_off(struct net_device *dev);
-
-void can_put_echo_skb(struct sk_buff *skb, struct net_device *dev,
- unsigned int idx);
-unsigned int can_get_echo_skb(struct net_device *dev, unsigned int idx);
-void can_free_echo_skb(struct net_device *dev, unsigned int idx);
-
-struct sk_buff *alloc_can_skb(struct net_device *dev, struct can_frame **cf);
-struct sk_buff *alloc_can_err_skb(struct net_device *dev,
- struct can_frame **cf);
-
-#endif /* CAN_DEV_H */
diff --git a/ANDROID_3.4.5/include/linux/can/error.h b/ANDROID_3.4.5/include/linux/can/error.h
deleted file mode 100644
index 63e855ea..00000000
--- a/ANDROID_3.4.5/include/linux/can/error.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * linux/can/error.h
- *
- * Definitions of the CAN error frame to be filtered and passed to the user.
- *
- * Author: Oliver Hartkopp <oliver.hartkopp@volkswagen.de>
- * Copyright (c) 2002-2007 Volkswagen Group Electronic Research
- * All rights reserved.
- *
- */
-
-#ifndef CAN_ERROR_H
-#define CAN_ERROR_H
-
-#define CAN_ERR_DLC 8 /* dlc for error frames */
-
-/* error class (mask) in can_id */
-#define CAN_ERR_TX_TIMEOUT 0x00000001U /* TX timeout (by netdevice driver) */
-#define CAN_ERR_LOSTARB 0x00000002U /* lost arbitration / data[0] */
-#define CAN_ERR_CRTL 0x00000004U /* controller problems / data[1] */
-#define CAN_ERR_PROT 0x00000008U /* protocol violations / data[2..3] */
-#define CAN_ERR_TRX 0x00000010U /* transceiver status / data[4] */
-#define CAN_ERR_ACK 0x00000020U /* received no ACK on transmission */
-#define CAN_ERR_BUSOFF 0x00000040U /* bus off */
-#define CAN_ERR_BUSERROR 0x00000080U /* bus error (may flood!) */
-#define CAN_ERR_RESTARTED 0x00000100U /* controller restarted */
-
-/* arbitration lost in bit ... / data[0] */
-#define CAN_ERR_LOSTARB_UNSPEC 0x00 /* unspecified */
- /* else bit number in bitstream */
-
-/* error status of CAN-controller / data[1] */
-#define CAN_ERR_CRTL_UNSPEC 0x00 /* unspecified */
-#define CAN_ERR_CRTL_RX_OVERFLOW 0x01 /* RX buffer overflow */
-#define CAN_ERR_CRTL_TX_OVERFLOW 0x02 /* TX buffer overflow */
-#define CAN_ERR_CRTL_RX_WARNING 0x04 /* reached warning level for RX errors */
-#define CAN_ERR_CRTL_TX_WARNING 0x08 /* reached warning level for TX errors */
-#define CAN_ERR_CRTL_RX_PASSIVE 0x10 /* reached error passive status RX */
-#define CAN_ERR_CRTL_TX_PASSIVE 0x20 /* reached error passive status TX */
- /* (at least one error counter exceeds */
- /* the protocol-defined level of 127) */
-
-/* error in CAN protocol (type) / data[2] */
-#define CAN_ERR_PROT_UNSPEC 0x00 /* unspecified */
-#define CAN_ERR_PROT_BIT 0x01 /* single bit error */
-#define CAN_ERR_PROT_FORM 0x02 /* frame format error */
-#define CAN_ERR_PROT_STUFF 0x04 /* bit stuffing error */
-#define CAN_ERR_PROT_BIT0 0x08 /* unable to send dominant bit */
-#define CAN_ERR_PROT_BIT1 0x10 /* unable to send recessive bit */
-#define CAN_ERR_PROT_OVERLOAD 0x20 /* bus overload */
-#define CAN_ERR_PROT_ACTIVE 0x40 /* active error announcement */
-#define CAN_ERR_PROT_TX 0x80 /* error occurred on transmission */
-
-/* error in CAN protocol (location) / data[3] */
-#define CAN_ERR_PROT_LOC_UNSPEC 0x00 /* unspecified */
-#define CAN_ERR_PROT_LOC_SOF 0x03 /* start of frame */
-#define CAN_ERR_PROT_LOC_ID28_21 0x02 /* ID bits 28 - 21 (SFF: 10 - 3) */
-#define CAN_ERR_PROT_LOC_ID20_18 0x06 /* ID bits 20 - 18 (SFF: 2 - 0 )*/
-#define CAN_ERR_PROT_LOC_SRTR 0x04 /* substitute RTR (SFF: RTR) */
-#define CAN_ERR_PROT_LOC_IDE 0x05 /* identifier extension */
-#define CAN_ERR_PROT_LOC_ID17_13 0x07 /* ID bits 17-13 */
-#define CAN_ERR_PROT_LOC_ID12_05 0x0F /* ID bits 12-5 */
-#define CAN_ERR_PROT_LOC_ID04_00 0x0E /* ID bits 4-0 */
-#define CAN_ERR_PROT_LOC_RTR 0x0C /* RTR */
-#define CAN_ERR_PROT_LOC_RES1 0x0D /* reserved bit 1 */
-#define CAN_ERR_PROT_LOC_RES0 0x09 /* reserved bit 0 */
-#define CAN_ERR_PROT_LOC_DLC 0x0B /* data length code */
-#define CAN_ERR_PROT_LOC_DATA 0x0A /* data section */
-#define CAN_ERR_PROT_LOC_CRC_SEQ 0x08 /* CRC sequence */
-#define CAN_ERR_PROT_LOC_CRC_DEL 0x18 /* CRC delimiter */
-#define CAN_ERR_PROT_LOC_ACK 0x19 /* ACK slot */
-#define CAN_ERR_PROT_LOC_ACK_DEL 0x1B /* ACK delimiter */
-#define CAN_ERR_PROT_LOC_EOF 0x1A /* end of frame */
-#define CAN_ERR_PROT_LOC_INTERM 0x12 /* intermission */
-
-/* error status of CAN-transceiver / data[4] */
-/* CANH CANL */
-#define CAN_ERR_TRX_UNSPEC 0x00 /* 0000 0000 */
-#define CAN_ERR_TRX_CANH_NO_WIRE 0x04 /* 0000 0100 */
-#define CAN_ERR_TRX_CANH_SHORT_TO_BAT 0x05 /* 0000 0101 */
-#define CAN_ERR_TRX_CANH_SHORT_TO_VCC 0x06 /* 0000 0110 */
-#define CAN_ERR_TRX_CANH_SHORT_TO_GND 0x07 /* 0000 0111 */
-#define CAN_ERR_TRX_CANL_NO_WIRE 0x40 /* 0100 0000 */
-#define CAN_ERR_TRX_CANL_SHORT_TO_BAT 0x50 /* 0101 0000 */
-#define CAN_ERR_TRX_CANL_SHORT_TO_VCC 0x60 /* 0110 0000 */
-#define CAN_ERR_TRX_CANL_SHORT_TO_GND 0x70 /* 0111 0000 */
-#define CAN_ERR_TRX_CANL_SHORT_TO_CANH 0x80 /* 1000 0000 */
-
-/* controller specific additional information / data[5..7] */
-
-#endif /* CAN_ERROR_H */
diff --git a/ANDROID_3.4.5/include/linux/can/gw.h b/ANDROID_3.4.5/include/linux/can/gw.h
deleted file mode 100644
index 8e1db18c..00000000
--- a/ANDROID_3.4.5/include/linux/can/gw.h
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * linux/can/gw.h
- *
- * Definitions for CAN frame Gateway/Router/Bridge
- *
- * Author: Oliver Hartkopp <oliver.hartkopp@volkswagen.de>
- * Copyright (c) 2011 Volkswagen Group Electronic Research
- * All rights reserved.
- *
- */
-
-#ifndef CAN_GW_H
-#define CAN_GW_H
-
-#include <linux/types.h>
-#include <linux/can.h>
-
-struct rtcanmsg {
- __u8 can_family;
- __u8 gwtype;
- __u16 flags;
-};
-
-/* CAN gateway types */
-enum {
- CGW_TYPE_UNSPEC,
- CGW_TYPE_CAN_CAN, /* CAN->CAN routing */
- __CGW_TYPE_MAX
-};
-
-#define CGW_TYPE_MAX (__CGW_TYPE_MAX - 1)
-
-/* CAN rtnetlink attribute definitions */
-enum {
- CGW_UNSPEC,
- CGW_MOD_AND, /* CAN frame modification binary AND */
- CGW_MOD_OR, /* CAN frame modification binary OR */
- CGW_MOD_XOR, /* CAN frame modification binary XOR */
- CGW_MOD_SET, /* CAN frame modification set alternate values */
- CGW_CS_XOR, /* set data[] XOR checksum into data[index] */
- CGW_CS_CRC8, /* set data[] CRC8 checksum into data[index] */
- CGW_HANDLED, /* number of handled CAN frames */
- CGW_DROPPED, /* number of dropped CAN frames */
- CGW_SRC_IF, /* ifindex of source network interface */
- CGW_DST_IF, /* ifindex of destination network interface */
- CGW_FILTER, /* specify struct can_filter on source CAN device */
- __CGW_MAX
-};
-
-#define CGW_MAX (__CGW_MAX - 1)
-
-#define CGW_FLAGS_CAN_ECHO 0x01
-#define CGW_FLAGS_CAN_SRC_TSTAMP 0x02
-
-#define CGW_MOD_FUNCS 4 /* AND OR XOR SET */
-
-/* CAN frame elements that are affected by curr. 3 CAN frame modifications */
-#define CGW_MOD_ID 0x01
-#define CGW_MOD_DLC 0x02
-#define CGW_MOD_DATA 0x04
-
-#define CGW_FRAME_MODS 3 /* ID DLC DATA */
-
-#define MAX_MODFUNCTIONS (CGW_MOD_FUNCS * CGW_FRAME_MODS)
-
-struct cgw_frame_mod {
- struct can_frame cf;
- __u8 modtype;
-} __attribute__((packed));
-
-#define CGW_MODATTR_LEN sizeof(struct cgw_frame_mod)
-
-struct cgw_csum_xor {
- __s8 from_idx;
- __s8 to_idx;
- __s8 result_idx;
- __u8 init_xor_val;
-} __attribute__((packed));
-
-struct cgw_csum_crc8 {
- __s8 from_idx;
- __s8 to_idx;
- __s8 result_idx;
- __u8 init_crc_val;
- __u8 final_xor_val;
- __u8 crctab[256];
- __u8 profile;
- __u8 profile_data[20];
-} __attribute__((packed));
-
-/* length of checksum operation parameters. idx = index in CAN frame data[] */
-#define CGW_CS_XOR_LEN sizeof(struct cgw_csum_xor)
-#define CGW_CS_CRC8_LEN sizeof(struct cgw_csum_crc8)
-
-/* CRC8 profiles (compute CRC for additional data elements - see below) */
-enum {
- CGW_CRC8PRF_UNSPEC,
- CGW_CRC8PRF_1U8, /* compute one additional u8 value */
- CGW_CRC8PRF_16U8, /* u8 value table indexed by data[1] & 0xF */
- CGW_CRC8PRF_SFFID_XOR, /* (can_id & 0xFF) ^ (can_id >> 8 & 0xFF) */
- __CGW_CRC8PRF_MAX
-};
-
-#define CGW_CRC8PRF_MAX (__CGW_CRC8PRF_MAX - 1)
-
-/*
- * CAN rtnetlink attribute contents in detail
- *
- * CGW_XXX_IF (length 4 bytes):
- * Sets an interface index for source/destination network interfaces.
- * For the CAN->CAN gwtype the indices of _two_ CAN interfaces are mandatory.
- *
- * CGW_FILTER (length 8 bytes):
- * Sets a CAN receive filter for the gateway job specified by the
- * struct can_filter described in include/linux/can.h
- *
- * CGW_MOD_XXX (length 17 bytes):
- * Specifies a modification that's done to a received CAN frame before it is
- * send out to the destination interface.
- *
- * <struct can_frame> data used as operator
- * <u8> affected CAN frame elements
- *
- * CGW_CS_XOR (length 4 bytes):
- * Set a simple XOR checksum starting with an initial value into
- * data[result-idx] using data[start-idx] .. data[end-idx]
- *
- * The XOR checksum is calculated like this:
- *
- * xor = init_xor_val
- *
- * for (i = from_idx .. to_idx)
- * xor ^= can_frame.data[i]
- *
- * can_frame.data[ result_idx ] = xor
- *
- * CGW_CS_CRC8 (length 282 bytes):
- * Set a CRC8 value into data[result-idx] using a given 256 byte CRC8 table,
- * a given initial value and a defined input data[start-idx] .. data[end-idx].
- * Finally the result value is XOR'ed with the final_xor_val.
- *
- * The CRC8 checksum is calculated like this:
- *
- * crc = init_crc_val
- *
- * for (i = from_idx .. to_idx)
- * crc = crctab[ crc ^ can_frame.data[i] ]
- *
- * can_frame.data[ result_idx ] = crc ^ final_xor_val
- *
- * The calculated CRC may contain additional source data elements that can be
- * defined in the handling of 'checksum profiles' e.g. shown in AUTOSAR specs
- * like http://www.autosar.org/download/R4.0/AUTOSAR_SWS_E2ELibrary.pdf
- * E.g. the profile_data[] may contain additional u8 values (called DATA_IDs)
- * that are used depending on counter values inside the CAN frame data[].
- * So far only three profiles have been implemented for illustration.
- *
- * Remark: In general the attribute data is a linear buffer.
- * Beware of sending unpacked or aligned structs!
- */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/can/netlink.h b/ANDROID_3.4.5/include/linux/can/netlink.h
deleted file mode 100644
index 14966ddb..00000000
--- a/ANDROID_3.4.5/include/linux/can/netlink.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * linux/can/netlink.h
- *
- * Definitions for the CAN netlink interface
- *
- * Copyright (c) 2009 Wolfgang Grandegger <wg@grandegger.com>
- *
- */
-
-#ifndef CAN_NETLINK_H
-#define CAN_NETLINK_H
-
-#include <linux/types.h>
-
-/*
- * CAN bit-timing parameters
- *
- * For further information, please read chapter "8 BIT TIMING
- * REQUIREMENTS" of the "Bosch CAN Specification version 2.0"
- * at http://www.semiconductors.bosch.de/pdf/can2spec.pdf.
- */
-struct can_bittiming {
- __u32 bitrate; /* Bit-rate in bits/second */
- __u32 sample_point; /* Sample point in one-tenth of a percent */
- __u32 tq; /* Time quanta (TQ) in nanoseconds */
- __u32 prop_seg; /* Propagation segment in TQs */
- __u32 phase_seg1; /* Phase buffer segment 1 in TQs */
- __u32 phase_seg2; /* Phase buffer segment 2 in TQs */
- __u32 sjw; /* Synchronisation jump width in TQs */
- __u32 brp; /* Bit-rate prescaler */
-};
-
-/*
- * CAN harware-dependent bit-timing constant
- *
- * Used for calculating and checking bit-timing parameters
- */
-struct can_bittiming_const {
- char name[16]; /* Name of the CAN controller hardware */
- __u32 tseg1_min; /* Time segement 1 = prop_seg + phase_seg1 */
- __u32 tseg1_max;
- __u32 tseg2_min; /* Time segement 2 = phase_seg2 */
- __u32 tseg2_max;
- __u32 sjw_max; /* Synchronisation jump width */
- __u32 brp_min; /* Bit-rate prescaler */
- __u32 brp_max;
- __u32 brp_inc;
-};
-
-/*
- * CAN clock parameters
- */
-struct can_clock {
- __u32 freq; /* CAN system clock frequency in Hz */
-};
-
-/*
- * CAN operational and error states
- */
-enum can_state {
- CAN_STATE_ERROR_ACTIVE = 0, /* RX/TX error count < 96 */
- CAN_STATE_ERROR_WARNING, /* RX/TX error count < 128 */
- CAN_STATE_ERROR_PASSIVE, /* RX/TX error count < 256 */
- CAN_STATE_BUS_OFF, /* RX/TX error count >= 256 */
- CAN_STATE_STOPPED, /* Device is stopped */
- CAN_STATE_SLEEPING, /* Device is sleeping */
- CAN_STATE_MAX
-};
-
-/*
- * CAN bus error counters
- */
-struct can_berr_counter {
- __u16 txerr;
- __u16 rxerr;
-};
-
-/*
- * CAN controller mode
- */
-struct can_ctrlmode {
- __u32 mask;
- __u32 flags;
-};
-
-#define CAN_CTRLMODE_LOOPBACK 0x01 /* Loopback mode */
-#define CAN_CTRLMODE_LISTENONLY 0x02 /* Listen-only mode */
-#define CAN_CTRLMODE_3_SAMPLES 0x04 /* Triple sampling mode */
-#define CAN_CTRLMODE_ONE_SHOT 0x08 /* One-Shot mode */
-#define CAN_CTRLMODE_BERR_REPORTING 0x10 /* Bus-error reporting */
-
-/*
- * CAN device statistics
- */
-struct can_device_stats {
- __u32 bus_error; /* Bus errors */
- __u32 error_warning; /* Changes to error warning state */
- __u32 error_passive; /* Changes to error passive state */
- __u32 bus_off; /* Changes to bus off state */
- __u32 arbitration_lost; /* Arbitration lost errors */
- __u32 restarts; /* CAN controller re-starts */
-};
-
-/*
- * CAN netlink interface
- */
-enum {
- IFLA_CAN_UNSPEC,
- IFLA_CAN_BITTIMING,
- IFLA_CAN_BITTIMING_CONST,
- IFLA_CAN_CLOCK,
- IFLA_CAN_STATE,
- IFLA_CAN_CTRLMODE,
- IFLA_CAN_RESTART_MS,
- IFLA_CAN_RESTART,
- IFLA_CAN_BERR_COUNTER,
- __IFLA_CAN_MAX
-};
-
-#define IFLA_CAN_MAX (__IFLA_CAN_MAX - 1)
-
-#endif /* CAN_NETLINK_H */
diff --git a/ANDROID_3.4.5/include/linux/can/platform/cc770.h b/ANDROID_3.4.5/include/linux/can/platform/cc770.h
deleted file mode 100644
index 7702641f..00000000
--- a/ANDROID_3.4.5/include/linux/can/platform/cc770.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef _CAN_PLATFORM_CC770_H_
-#define _CAN_PLATFORM_CC770_H_
-
-/* CPU Interface Register (0x02) */
-#define CPUIF_CEN 0x01 /* Clock Out Enable */
-#define CPUIF_MUX 0x04 /* Multiplex */
-#define CPUIF_SLP 0x08 /* Sleep */
-#define CPUIF_PWD 0x10 /* Power Down Mode */
-#define CPUIF_DMC 0x20 /* Divide Memory Clock */
-#define CPUIF_DSC 0x40 /* Divide System Clock */
-#define CPUIF_RST 0x80 /* Hardware Reset Status */
-
-/* Clock Out Register (0x1f) */
-#define CLKOUT_CD_MASK 0x0f /* Clock Divider mask */
-#define CLKOUT_SL_MASK 0x30 /* Slew Rate mask */
-#define CLKOUT_SL_SHIFT 4
-
-/* Bus Configuration Register (0x2f) */
-#define BUSCFG_DR0 0x01 /* Disconnect RX0 Input / Select RX input */
-#define BUSCFG_DR1 0x02 /* Disconnect RX1 Input / Silent mode */
-#define BUSCFG_DT1 0x08 /* Disconnect TX1 Output */
-#define BUSCFG_POL 0x20 /* Polarity dominant or recessive */
-#define BUSCFG_CBY 0x40 /* Input Comparator Bypass */
-
-struct cc770_platform_data {
- u32 osc_freq; /* CAN bus oscillator frequency in Hz */
-
- u8 cir; /* CPU Interface Register */
- u8 cor; /* Clock Out Register */
- u8 bcr; /* Bus Configuration Register */
-};
-
-#endif /* !_CAN_PLATFORM_CC770_H_ */
diff --git a/ANDROID_3.4.5/include/linux/can/platform/flexcan.h b/ANDROID_3.4.5/include/linux/can/platform/flexcan.h
deleted file mode 100644
index 72b713ab..00000000
--- a/ANDROID_3.4.5/include/linux/can/platform/flexcan.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Copyright (C) 2010 Marc Kleine-Budde <kernel@pengutronix.de>
- *
- * This file is released under the GPLv2
- *
- */
-
-#ifndef __CAN_PLATFORM_FLEXCAN_H
-#define __CAN_PLATFORM_FLEXCAN_H
-
-/**
- * struct flexcan_platform_data - flex CAN controller platform data
- * @transceiver_enable: - called to power on/off the transceiver
- *
- */
-struct flexcan_platform_data {
- void (*transceiver_switch)(int enable);
-};
-
-#endif /* __CAN_PLATFORM_FLEXCAN_H */
diff --git a/ANDROID_3.4.5/include/linux/can/platform/mcp251x.h b/ANDROID_3.4.5/include/linux/can/platform/mcp251x.h
deleted file mode 100644
index 089fe432..00000000
--- a/ANDROID_3.4.5/include/linux/can/platform/mcp251x.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef __CAN_PLATFORM_MCP251X_H__
-#define __CAN_PLATFORM_MCP251X_H__
-
-/*
- *
- * CAN bus driver for Microchip 251x CAN Controller with SPI Interface
- *
- */
-
-#include <linux/spi/spi.h>
-
-/**
- * struct mcp251x_platform_data - MCP251X SPI CAN controller platform data
- * @oscillator_frequency: - oscillator frequency in Hz
- * @irq_flags: - IRQF configuration flags
- * @board_specific_setup: - called before probing the chip (power,reset)
- * @transceiver_enable: - called to power on/off the transceiver
- * @power_enable: - called to power on/off the mcp *and* the
- * transceiver
- *
- * Please note that you should define power_enable or transceiver_enable or
- * none of them. Defining both of them is no use.
- *
- */
-
-struct mcp251x_platform_data {
- unsigned long oscillator_frequency;
- unsigned long irq_flags;
- int (*board_specific_setup)(struct spi_device *spi);
- int (*transceiver_enable)(int enable);
- int (*power_enable) (int enable);
-};
-
-#endif /* __CAN_PLATFORM_MCP251X_H__ */
diff --git a/ANDROID_3.4.5/include/linux/can/platform/sja1000.h b/ANDROID_3.4.5/include/linux/can/platform/sja1000.h
deleted file mode 100644
index 96f8fcc7..00000000
--- a/ANDROID_3.4.5/include/linux/can/platform/sja1000.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#ifndef _CAN_PLATFORM_SJA1000_H_
-#define _CAN_PLATFORM_SJA1000_H_
-
-/* clock divider register */
-#define CDR_CLKOUT_MASK 0x07
-#define CDR_CLK_OFF 0x08 /* Clock off (CLKOUT pin) */
-#define CDR_RXINPEN 0x20 /* TX1 output is RX irq output */
-#define CDR_CBP 0x40 /* CAN input comparator bypass */
-#define CDR_PELICAN 0x80 /* PeliCAN mode */
-
-/* output control register */
-#define OCR_MODE_BIPHASE 0x00
-#define OCR_MODE_TEST 0x01
-#define OCR_MODE_NORMAL 0x02
-#define OCR_MODE_CLOCK 0x03
-#define OCR_MODE_MASK 0x07
-#define OCR_TX0_INVERT 0x04
-#define OCR_TX0_PULLDOWN 0x08
-#define OCR_TX0_PULLUP 0x10
-#define OCR_TX0_PUSHPULL 0x18
-#define OCR_TX1_INVERT 0x20
-#define OCR_TX1_PULLDOWN 0x40
-#define OCR_TX1_PULLUP 0x80
-#define OCR_TX1_PUSHPULL 0xc0
-#define OCR_TX_MASK 0xfc
-#define OCR_TX_SHIFT 2
-
-struct sja1000_platform_data {
- u32 osc_freq; /* CAN bus oscillator frequency in Hz */
-
- u8 ocr; /* output control register */
- u8 cdr; /* clock divider register */
-};
-
-#endif /* !_CAN_PLATFORM_SJA1000_H_ */
diff --git a/ANDROID_3.4.5/include/linux/can/platform/ti_hecc.h b/ANDROID_3.4.5/include/linux/can/platform/ti_hecc.h
deleted file mode 100644
index af17cb3f..00000000
--- a/ANDROID_3.4.5/include/linux/can/platform/ti_hecc.h
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef __CAN_PLATFORM_TI_HECC_H__
-#define __CAN_PLATFORM_TI_HECC_H__
-
-/*
- * TI HECC (High End CAN Controller) driver platform header
- *
- * Copyright (C) 2009 Texas Instruments Incorporated - http://www.ti.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 version 2.
- *
- * This program is distributed as is WITHOUT ANY WARRANTY of any
- * kind, whether express or implied; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-/**
- * struct hecc_platform_data - HECC Platform Data
- *
- * @scc_hecc_offset: mostly 0 - should really never change
- * @scc_ram_offset: SCC RAM offset
- * @hecc_ram_offset: HECC RAM offset
- * @mbx_offset: Mailbox RAM offset
- * @int_line: Interrupt line to use - 0 or 1
- * @version: version for future use
- * @transceiver_switch: platform specific callback fn for transceiver control
- *
- * Platform data structure to get all platform specific settings.
- * this structure also accounts the fact that the IP may have different
- * RAM and mailbox offsets for different SOC's
- */
-struct ti_hecc_platform_data {
- u32 scc_hecc_offset;
- u32 scc_ram_offset;
- u32 hecc_ram_offset;
- u32 mbx_offset;
- u32 int_line;
- u32 version;
- void (*transceiver_switch) (int);
-};
-#endif
diff --git a/ANDROID_3.4.5/include/linux/can/raw.h b/ANDROID_3.4.5/include/linux/can/raw.h
deleted file mode 100644
index 781f3a37..00000000
--- a/ANDROID_3.4.5/include/linux/can/raw.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * linux/can/raw.h
- *
- * Definitions for raw CAN sockets
- *
- * Authors: Oliver Hartkopp <oliver.hartkopp@volkswagen.de>
- * Urs Thuermann <urs.thuermann@volkswagen.de>
- * Copyright (c) 2002-2007 Volkswagen Group Electronic Research
- * All rights reserved.
- *
- */
-
-#ifndef CAN_RAW_H
-#define CAN_RAW_H
-
-#include <linux/can.h>
-
-#define SOL_CAN_RAW (SOL_CAN_BASE + CAN_RAW)
-
-/* for socket options affecting the socket (not the global system) */
-
-enum {
- CAN_RAW_FILTER = 1, /* set 0 .. n can_filter(s) */
- CAN_RAW_ERR_FILTER, /* set filter for error frames */
- CAN_RAW_LOOPBACK, /* local loopback (default:on) */
- CAN_RAW_RECV_OWN_MSGS /* receive my own msgs (default:off) */
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/capability.h b/ANDROID_3.4.5/include/linux/capability.h
deleted file mode 100644
index c398cff3..00000000
--- a/ANDROID_3.4.5/include/linux/capability.h
+++ /dev/null
@@ -1,560 +0,0 @@
-/*
- * This is <linux/capability.h>
- *
- * Andrew G. Morgan <morgan@kernel.org>
- * Alexander Kjeldaas <astor@guardian.no>
- * with help from Aleph1, Roland Buresund and Andrew Main.
- *
- * See here for the libcap library ("POSIX draft" compliance):
- *
- * ftp://www.kernel.org/pub/linux/libs/security/linux-privs/kernel-2.6/
- */
-
-#ifndef _LINUX_CAPABILITY_H
-#define _LINUX_CAPABILITY_H
-
-#include <linux/types.h>
-
-struct task_struct;
-
-/* User-level do most of the mapping between kernel and user
- capabilities based on the version tag given by the kernel. The
- kernel might be somewhat backwards compatible, but don't bet on
- it. */
-
-/* Note, cap_t, is defined by POSIX (draft) to be an "opaque" pointer to
- a set of three capability sets. The transposition of 3*the
- following structure to such a composite is better handled in a user
- library since the draft standard requires the use of malloc/free
- etc.. */
-
-#define _LINUX_CAPABILITY_VERSION_1 0x19980330
-#define _LINUX_CAPABILITY_U32S_1 1
-
-#define _LINUX_CAPABILITY_VERSION_2 0x20071026 /* deprecated - use v3 */
-#define _LINUX_CAPABILITY_U32S_2 2
-
-#define _LINUX_CAPABILITY_VERSION_3 0x20080522
-#define _LINUX_CAPABILITY_U32S_3 2
-
-typedef struct __user_cap_header_struct {
- __u32 version;
- int pid;
-} __user *cap_user_header_t;
-
-typedef struct __user_cap_data_struct {
- __u32 effective;
- __u32 permitted;
- __u32 inheritable;
-} __user *cap_user_data_t;
-
-
-#define VFS_CAP_REVISION_MASK 0xFF000000
-#define VFS_CAP_REVISION_SHIFT 24
-#define VFS_CAP_FLAGS_MASK ~VFS_CAP_REVISION_MASK
-#define VFS_CAP_FLAGS_EFFECTIVE 0x000001
-
-#define VFS_CAP_REVISION_1 0x01000000
-#define VFS_CAP_U32_1 1
-#define XATTR_CAPS_SZ_1 (sizeof(__le32)*(1 + 2*VFS_CAP_U32_1))
-
-#define VFS_CAP_REVISION_2 0x02000000
-#define VFS_CAP_U32_2 2
-#define XATTR_CAPS_SZ_2 (sizeof(__le32)*(1 + 2*VFS_CAP_U32_2))
-
-#define XATTR_CAPS_SZ XATTR_CAPS_SZ_2
-#define VFS_CAP_U32 VFS_CAP_U32_2
-#define VFS_CAP_REVISION VFS_CAP_REVISION_2
-
-struct vfs_cap_data {
- __le32 magic_etc; /* Little endian */
- struct {
- __le32 permitted; /* Little endian */
- __le32 inheritable; /* Little endian */
- } data[VFS_CAP_U32];
-};
-
-#ifndef __KERNEL__
-
-/*
- * Backwardly compatible definition for source code - trapped in a
- * 32-bit world. If you find you need this, please consider using
- * libcap to untrap yourself...
- */
-#define _LINUX_CAPABILITY_VERSION _LINUX_CAPABILITY_VERSION_1
-#define _LINUX_CAPABILITY_U32S _LINUX_CAPABILITY_U32S_1
-
-#else
-
-#define _KERNEL_CAPABILITY_VERSION _LINUX_CAPABILITY_VERSION_3
-#define _KERNEL_CAPABILITY_U32S _LINUX_CAPABILITY_U32S_3
-
-extern int file_caps_enabled;
-
-typedef struct kernel_cap_struct {
- __u32 cap[_KERNEL_CAPABILITY_U32S];
-} kernel_cap_t;
-
-/* exact same as vfs_cap_data but in cpu endian and always filled completely */
-struct cpu_vfs_cap_data {
- __u32 magic_etc;
- kernel_cap_t permitted;
- kernel_cap_t inheritable;
-};
-
-#define _USER_CAP_HEADER_SIZE (sizeof(struct __user_cap_header_struct))
-#define _KERNEL_CAP_T_SIZE (sizeof(kernel_cap_t))
-
-#endif
-
-
-/**
- ** POSIX-draft defined capabilities.
- **/
-
-/* In a system with the [_POSIX_CHOWN_RESTRICTED] option defined, this
- overrides the restriction of changing file ownership and group
- ownership. */
-
-#define CAP_CHOWN 0
-
-/* Override all DAC access, including ACL execute access if
- [_POSIX_ACL] is defined. Excluding DAC access covered by
- CAP_LINUX_IMMUTABLE. */
-
-#define CAP_DAC_OVERRIDE 1
-
-/* Overrides all DAC restrictions regarding read and search on files
- and directories, including ACL restrictions if [_POSIX_ACL] is
- defined. Excluding DAC access covered by CAP_LINUX_IMMUTABLE. */
-
-#define CAP_DAC_READ_SEARCH 2
-
-/* Overrides all restrictions about allowed operations on files, where
- file owner ID must be equal to the user ID, except where CAP_FSETID
- is applicable. It doesn't override MAC and DAC restrictions. */
-
-#define CAP_FOWNER 3
-
-/* Overrides the following restrictions that the effective user ID
- shall match the file owner ID when setting the S_ISUID and S_ISGID
- bits on that file; that the effective group ID (or one of the
- supplementary group IDs) shall match the file owner ID when setting
- the S_ISGID bit on that file; that the S_ISUID and S_ISGID bits are
- cleared on successful return from chown(2) (not implemented). */
-
-#define CAP_FSETID 4
-
-/* Overrides the restriction that the real or effective user ID of a
- process sending a signal must match the real or effective user ID
- of the process receiving the signal. */
-
-#define CAP_KILL 5
-
-/* Allows setgid(2) manipulation */
-/* Allows setgroups(2) */
-/* Allows forged gids on socket credentials passing. */
-
-#define CAP_SETGID 6
-
-/* Allows set*uid(2) manipulation (including fsuid). */
-/* Allows forged pids on socket credentials passing. */
-
-#define CAP_SETUID 7
-
-
-/**
- ** Linux-specific capabilities
- **/
-
-/* Without VFS support for capabilities:
- * Transfer any capability in your permitted set to any pid,
- * remove any capability in your permitted set from any pid
- * With VFS support for capabilities (neither of above, but)
- * Add any capability from current's capability bounding set
- * to the current process' inheritable set
- * Allow taking bits out of capability bounding set
- * Allow modification of the securebits for a process
- */
-
-#define CAP_SETPCAP 8
-
-/* Allow modification of S_IMMUTABLE and S_APPEND file attributes */
-
-#define CAP_LINUX_IMMUTABLE 9
-
-/* Allows binding to TCP/UDP sockets below 1024 */
-/* Allows binding to ATM VCIs below 32 */
-
-#define CAP_NET_BIND_SERVICE 10
-
-/* Allow broadcasting, listen to multicast */
-
-#define CAP_NET_BROADCAST 11
-
-/* Allow interface configuration */
-/* Allow administration of IP firewall, masquerading and accounting */
-/* Allow setting debug option on sockets */
-/* Allow modification of routing tables */
-/* Allow setting arbitrary process / process group ownership on
- sockets */
-/* Allow binding to any address for transparent proxying (also via NET_RAW) */
-/* Allow setting TOS (type of service) */
-/* Allow setting promiscuous mode */
-/* Allow clearing driver statistics */
-/* Allow multicasting */
-/* Allow read/write of device-specific registers */
-/* Allow activation of ATM control sockets */
-
-#define CAP_NET_ADMIN 12
-
-/* Allow use of RAW sockets */
-/* Allow use of PACKET sockets */
-/* Allow binding to any address for transparent proxying (also via NET_ADMIN) */
-
-#define CAP_NET_RAW 13
-
-/* Allow locking of shared memory segments */
-/* Allow mlock and mlockall (which doesn't really have anything to do
- with IPC) */
-
-#define CAP_IPC_LOCK 14
-
-/* Override IPC ownership checks */
-
-#define CAP_IPC_OWNER 15
-
-/* Insert and remove kernel modules - modify kernel without limit */
-#define CAP_SYS_MODULE 16
-
-/* Allow ioperm/iopl access */
-/* Allow sending USB messages to any device via /proc/bus/usb */
-
-#define CAP_SYS_RAWIO 17
-
-/* Allow use of chroot() */
-
-#define CAP_SYS_CHROOT 18
-
-/* Allow ptrace() of any process */
-
-#define CAP_SYS_PTRACE 19
-
-/* Allow configuration of process accounting */
-
-#define CAP_SYS_PACCT 20
-
-/* Allow configuration of the secure attention key */
-/* Allow administration of the random device */
-/* Allow examination and configuration of disk quotas */
-/* Allow setting the domainname */
-/* Allow setting the hostname */
-/* Allow calling bdflush() */
-/* Allow mount() and umount(), setting up new smb connection */
-/* Allow some autofs root ioctls */
-/* Allow nfsservctl */
-/* Allow VM86_REQUEST_IRQ */
-/* Allow to read/write pci config on alpha */
-/* Allow irix_prctl on mips (setstacksize) */
-/* Allow flushing all cache on m68k (sys_cacheflush) */
-/* Allow removing semaphores */
-/* Used instead of CAP_CHOWN to "chown" IPC message queues, semaphores
- and shared memory */
-/* Allow locking/unlocking of shared memory segment */
-/* Allow turning swap on/off */
-/* Allow forged pids on socket credentials passing */
-/* Allow setting readahead and flushing buffers on block devices */
-/* Allow setting geometry in floppy driver */
-/* Allow turning DMA on/off in xd driver */
-/* Allow administration of md devices (mostly the above, but some
- extra ioctls) */
-/* Allow tuning the ide driver */
-/* Allow access to the nvram device */
-/* Allow administration of apm_bios, serial and bttv (TV) device */
-/* Allow manufacturer commands in isdn CAPI support driver */
-/* Allow reading non-standardized portions of pci configuration space */
-/* Allow DDI debug ioctl on sbpcd driver */
-/* Allow setting up serial ports */
-/* Allow sending raw qic-117 commands */
-/* Allow enabling/disabling tagged queuing on SCSI controllers and sending
- arbitrary SCSI commands */
-/* Allow setting encryption key on loopback filesystem */
-/* Allow setting zone reclaim policy */
-
-#define CAP_SYS_ADMIN 21
-
-/* Allow use of reboot() */
-
-#define CAP_SYS_BOOT 22
-
-/* Allow raising priority and setting priority on other (different
- UID) processes */
-/* Allow use of FIFO and round-robin (realtime) scheduling on own
- processes and setting the scheduling algorithm used by another
- process. */
-/* Allow setting cpu affinity on other processes */
-
-#define CAP_SYS_NICE 23
-
-/* Override resource limits. Set resource limits. */
-/* Override quota limits. */
-/* Override reserved space on ext2 filesystem */
-/* Modify data journaling mode on ext3 filesystem (uses journaling
- resources) */
-/* NOTE: ext2 honors fsuid when checking for resource overrides, so
- you can override using fsuid too */
-/* Override size restrictions on IPC message queues */
-/* Allow more than 64hz interrupts from the real-time clock */
-/* Override max number of consoles on console allocation */
-/* Override max number of keymaps */
-
-#define CAP_SYS_RESOURCE 24
-
-/* Allow manipulation of system clock */
-/* Allow irix_stime on mips */
-/* Allow setting the real-time clock */
-
-#define CAP_SYS_TIME 25
-
-/* Allow configuration of tty devices */
-/* Allow vhangup() of tty */
-
-#define CAP_SYS_TTY_CONFIG 26
-
-/* Allow the privileged aspects of mknod() */
-
-#define CAP_MKNOD 27
-
-/* Allow taking of leases on files */
-
-#define CAP_LEASE 28
-
-#define CAP_AUDIT_WRITE 29
-
-#define CAP_AUDIT_CONTROL 30
-
-#define CAP_SETFCAP 31
-
-/* Override MAC access.
- The base kernel enforces no MAC policy.
- An LSM may enforce a MAC policy, and if it does and it chooses
- to implement capability based overrides of that policy, this is
- the capability it should use to do so. */
-
-#define CAP_MAC_OVERRIDE 32
-
-/* Allow MAC configuration or state changes.
- The base kernel requires no MAC configuration.
- An LSM may enforce a MAC policy, and if it does and it chooses
- to implement capability based checks on modifications to that
- policy or the data required to maintain it, this is the
- capability it should use to do so. */
-
-#define CAP_MAC_ADMIN 33
-
-/* Allow configuring the kernel's syslog (printk behaviour) */
-
-#define CAP_SYSLOG 34
-
-/* Allow triggering something that will wake the system */
-
-#define CAP_WAKE_ALARM 35
-
-/* Allow preventing system suspends while epoll events are pending */
-
-#define CAP_EPOLLWAKEUP 36
-
-#define CAP_LAST_CAP CAP_EPOLLWAKEUP
-
-#define cap_valid(x) ((x) >= 0 && (x) <= CAP_LAST_CAP)
-
-/*
- * Bit location of each capability (used by user-space library and kernel)
- */
-
-#define CAP_TO_INDEX(x) ((x) >> 5) /* 1 << 5 == bits in __u32 */
-#define CAP_TO_MASK(x) (1 << ((x) & 31)) /* mask for indexed __u32 */
-
-#ifdef __KERNEL__
-
-struct dentry;
-struct user_namespace;
-
-struct user_namespace *current_user_ns(void);
-
-extern const kernel_cap_t __cap_empty_set;
-extern const kernel_cap_t __cap_init_eff_set;
-
-/*
- * Internal kernel functions only
- */
-
-#define CAP_FOR_EACH_U32(__capi) \
- for (__capi = 0; __capi < _KERNEL_CAPABILITY_U32S; ++__capi)
-
-/*
- * CAP_FS_MASK and CAP_NFSD_MASKS:
- *
- * The fs mask is all the privileges that fsuid==0 historically meant.
- * At one time in the past, that included CAP_MKNOD and CAP_LINUX_IMMUTABLE.
- *
- * It has never meant setting security.* and trusted.* xattrs.
- *
- * We could also define fsmask as follows:
- * 1. CAP_FS_MASK is the privilege to bypass all fs-related DAC permissions
- * 2. The security.* and trusted.* xattrs are fs-related MAC permissions
- */
-
-# define CAP_FS_MASK_B0 (CAP_TO_MASK(CAP_CHOWN) \
- | CAP_TO_MASK(CAP_MKNOD) \
- | CAP_TO_MASK(CAP_DAC_OVERRIDE) \
- | CAP_TO_MASK(CAP_DAC_READ_SEARCH) \
- | CAP_TO_MASK(CAP_FOWNER) \
- | CAP_TO_MASK(CAP_FSETID))
-
-# define CAP_FS_MASK_B1 (CAP_TO_MASK(CAP_MAC_OVERRIDE))
-
-#if _KERNEL_CAPABILITY_U32S != 2
-# error Fix up hand-coded capability macro initializers
-#else /* HAND-CODED capability initializers */
-
-# define CAP_EMPTY_SET ((kernel_cap_t){{ 0, 0 }})
-# define CAP_FULL_SET ((kernel_cap_t){{ ~0, ~0 }})
-# define CAP_FS_SET ((kernel_cap_t){{ CAP_FS_MASK_B0 \
- | CAP_TO_MASK(CAP_LINUX_IMMUTABLE), \
- CAP_FS_MASK_B1 } })
-# define CAP_NFSD_SET ((kernel_cap_t){{ CAP_FS_MASK_B0 \
- | CAP_TO_MASK(CAP_SYS_RESOURCE), \
- CAP_FS_MASK_B1 } })
-
-#endif /* _KERNEL_CAPABILITY_U32S != 2 */
-
-# define cap_clear(c) do { (c) = __cap_empty_set; } while (0)
-
-#define cap_raise(c, flag) ((c).cap[CAP_TO_INDEX(flag)] |= CAP_TO_MASK(flag))
-#define cap_lower(c, flag) ((c).cap[CAP_TO_INDEX(flag)] &= ~CAP_TO_MASK(flag))
-#define cap_raised(c, flag) ((c).cap[CAP_TO_INDEX(flag)] & CAP_TO_MASK(flag))
-
-#define CAP_BOP_ALL(c, a, b, OP) \
-do { \
- unsigned __capi; \
- CAP_FOR_EACH_U32(__capi) { \
- c.cap[__capi] = a.cap[__capi] OP b.cap[__capi]; \
- } \
-} while (0)
-
-#define CAP_UOP_ALL(c, a, OP) \
-do { \
- unsigned __capi; \
- CAP_FOR_EACH_U32(__capi) { \
- c.cap[__capi] = OP a.cap[__capi]; \
- } \
-} while (0)
-
-static inline kernel_cap_t cap_combine(const kernel_cap_t a,
- const kernel_cap_t b)
-{
- kernel_cap_t dest;
- CAP_BOP_ALL(dest, a, b, |);
- return dest;
-}
-
-static inline kernel_cap_t cap_intersect(const kernel_cap_t a,
- const kernel_cap_t b)
-{
- kernel_cap_t dest;
- CAP_BOP_ALL(dest, a, b, &);
- return dest;
-}
-
-static inline kernel_cap_t cap_drop(const kernel_cap_t a,
- const kernel_cap_t drop)
-{
- kernel_cap_t dest;
- CAP_BOP_ALL(dest, a, drop, &~);
- return dest;
-}
-
-static inline kernel_cap_t cap_invert(const kernel_cap_t c)
-{
- kernel_cap_t dest;
- CAP_UOP_ALL(dest, c, ~);
- return dest;
-}
-
-static inline int cap_isclear(const kernel_cap_t a)
-{
- unsigned __capi;
- CAP_FOR_EACH_U32(__capi) {
- if (a.cap[__capi] != 0)
- return 0;
- }
- return 1;
-}
-
-/*
- * Check if "a" is a subset of "set".
- * return 1 if ALL of the capabilities in "a" are also in "set"
- * cap_issubset(0101, 1111) will return 1
- * return 0 if ANY of the capabilities in "a" are not in "set"
- * cap_issubset(1111, 0101) will return 0
- */
-static inline int cap_issubset(const kernel_cap_t a, const kernel_cap_t set)
-{
- kernel_cap_t dest;
- dest = cap_drop(a, set);
- return cap_isclear(dest);
-}
-
-/* Used to decide between falling back on the old suser() or fsuser(). */
-
-static inline int cap_is_fs_cap(int cap)
-{
- const kernel_cap_t __cap_fs_set = CAP_FS_SET;
- return !!(CAP_TO_MASK(cap) & __cap_fs_set.cap[CAP_TO_INDEX(cap)]);
-}
-
-static inline kernel_cap_t cap_drop_fs_set(const kernel_cap_t a)
-{
- const kernel_cap_t __cap_fs_set = CAP_FS_SET;
- return cap_drop(a, __cap_fs_set);
-}
-
-static inline kernel_cap_t cap_raise_fs_set(const kernel_cap_t a,
- const kernel_cap_t permitted)
-{
- const kernel_cap_t __cap_fs_set = CAP_FS_SET;
- return cap_combine(a,
- cap_intersect(permitted, __cap_fs_set));
-}
-
-static inline kernel_cap_t cap_drop_nfsd_set(const kernel_cap_t a)
-{
- const kernel_cap_t __cap_fs_set = CAP_NFSD_SET;
- return cap_drop(a, __cap_fs_set);
-}
-
-static inline kernel_cap_t cap_raise_nfsd_set(const kernel_cap_t a,
- const kernel_cap_t permitted)
-{
- const kernel_cap_t __cap_nfsd_set = CAP_NFSD_SET;
- return cap_combine(a,
- cap_intersect(permitted, __cap_nfsd_set));
-}
-
-extern bool has_capability(struct task_struct *t, int cap);
-extern bool has_ns_capability(struct task_struct *t,
- struct user_namespace *ns, int cap);
-extern bool has_capability_noaudit(struct task_struct *t, int cap);
-extern bool has_ns_capability_noaudit(struct task_struct *t,
- struct user_namespace *ns, int cap);
-extern bool capable(int cap);
-extern bool ns_capable(struct user_namespace *ns, int cap);
-extern bool nsown_capable(int cap);
-
-/* audit system wants to get cap info from files as well */
-extern int get_vfs_caps_from_disk(const struct dentry *dentry, struct cpu_vfs_cap_data *cpu_caps);
-
-#endif /* __KERNEL__ */
-
-#endif /* !_LINUX_CAPABILITY_H */
diff --git a/ANDROID_3.4.5/include/linux/capi.h b/ANDROID_3.4.5/include/linux/capi.h
deleted file mode 100644
index 65100d6c..00000000
--- a/ANDROID_3.4.5/include/linux/capi.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/* $Id: capi.h,v 1.4.6.1 2001/09/23 22:25:05 kai Exp $
- *
- * CAPI 2.0 Interface for Linux
- *
- * Copyright 1997 by Carsten Paeth (calle@calle.in-berlin.de)
- *
- * This software may be used and distributed according to the terms
- * of the GNU General Public License, incorporated herein by reference.
- *
- */
-
-#ifndef __LINUX_CAPI_H__
-#define __LINUX_CAPI_H__
-
-#include <linux/types.h>
-#include <linux/ioctl.h>
-#ifndef __KERNEL__
-#include <linux/kernelcapi.h>
-#endif
-
-/*
- * CAPI_REGISTER
- */
-
-typedef struct capi_register_params { /* CAPI_REGISTER */
- __u32 level3cnt; /* No. of simulatneous user data connections */
- __u32 datablkcnt; /* No. of buffered data messages */
- __u32 datablklen; /* Size of buffered data messages */
-} capi_register_params;
-
-#define CAPI_REGISTER _IOW('C',0x01,struct capi_register_params)
-
-/*
- * CAPI_GET_MANUFACTURER
- */
-
-#define CAPI_MANUFACTURER_LEN 64
-
-#define CAPI_GET_MANUFACTURER _IOWR('C',0x06,int) /* broken: wanted size 64 (CAPI_MANUFACTURER_LEN) */
-
-/*
- * CAPI_GET_VERSION
- */
-
-typedef struct capi_version {
- __u32 majorversion;
- __u32 minorversion;
- __u32 majormanuversion;
- __u32 minormanuversion;
-} capi_version;
-
-#define CAPI_GET_VERSION _IOWR('C',0x07,struct capi_version)
-
-/*
- * CAPI_GET_SERIAL
- */
-
-#define CAPI_SERIAL_LEN 8
-#define CAPI_GET_SERIAL _IOWR('C',0x08,int) /* broken: wanted size 8 (CAPI_SERIAL_LEN) */
-
-/*
- * CAPI_GET_PROFILE
- */
-
-typedef struct capi_profile {
- __u16 ncontroller; /* number of installed controller */
- __u16 nbchannel; /* number of B-Channels */
- __u32 goptions; /* global options */
- __u32 support1; /* B1 protocols support */
- __u32 support2; /* B2 protocols support */
- __u32 support3; /* B3 protocols support */
- __u32 reserved[6]; /* reserved */
- __u32 manu[5]; /* manufacturer specific information */
-} capi_profile;
-
-#define CAPI_GET_PROFILE _IOWR('C',0x09,struct capi_profile)
-
-typedef struct capi_manufacturer_cmd {
- unsigned long cmd;
- void __user *data;
-} capi_manufacturer_cmd;
-
-/*
- * CAPI_MANUFACTURER_CMD
- */
-
-#define CAPI_MANUFACTURER_CMD _IOWR('C',0x20, struct capi_manufacturer_cmd)
-
-/*
- * CAPI_GET_ERRCODE
- * capi errcode is set, * if read, write, or ioctl returns EIO,
- * ioctl returns errcode directly, and in arg, if != 0
- */
-
-#define CAPI_GET_ERRCODE _IOR('C',0x21, __u16)
-
-/*
- * CAPI_INSTALLED
- */
-#define CAPI_INSTALLED _IOR('C',0x22, __u16)
-
-
-/*
- * member contr is input for
- * CAPI_GET_MANUFACTURER, CAPI_VERSION, CAPI_GET_SERIAL
- * and CAPI_GET_PROFILE
- */
-typedef union capi_ioctl_struct {
- __u32 contr;
- capi_register_params rparams;
- __u8 manufacturer[CAPI_MANUFACTURER_LEN];
- capi_version version;
- __u8 serial[CAPI_SERIAL_LEN];
- capi_profile profile;
- capi_manufacturer_cmd cmd;
- __u16 errcode;
-} capi_ioctl_struct;
-
-/*
- * Middleware extension
- */
-
-#define CAPIFLAG_HIGHJACKING 0x0001
-
-#define CAPI_GET_FLAGS _IOR('C',0x23, unsigned)
-#define CAPI_SET_FLAGS _IOR('C',0x24, unsigned)
-#define CAPI_CLR_FLAGS _IOR('C',0x25, unsigned)
-
-#define CAPI_NCCI_OPENCOUNT _IOR('C',0x26, unsigned)
-
-#define CAPI_NCCI_GETUNIT _IOR('C',0x27, unsigned)
-
-#endif /* __LINUX_CAPI_H__ */
diff --git a/ANDROID_3.4.5/include/linux/cb710.h b/ANDROID_3.4.5/include/linux/cb710.h
deleted file mode 100644
index 8cc10411..00000000
--- a/ANDROID_3.4.5/include/linux/cb710.h
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- * cb710/cb710.h
- *
- * Copyright by Michał Mirosław, 2008-2009
- *
- * 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.
- */
-#ifndef LINUX_CB710_DRIVER_H
-#define LINUX_CB710_DRIVER_H
-
-#include <linux/io.h>
-#include <linux/interrupt.h>
-#include <linux/spinlock.h>
-#include <linux/pci.h>
-#include <linux/platform_device.h>
-#include <linux/mmc/host.h>
-
-struct cb710_slot;
-
-typedef int (*cb710_irq_handler_t)(struct cb710_slot *);
-
-/* per-virtual-slot structure */
-struct cb710_slot {
- struct platform_device pdev;
- void __iomem *iobase;
- cb710_irq_handler_t irq_handler;
-};
-
-/* per-device structure */
-struct cb710_chip {
- struct pci_dev *pdev;
- void __iomem *iobase;
- unsigned platform_id;
-#ifdef CONFIG_CB710_DEBUG_ASSUMPTIONS
- atomic_t slot_refs_count;
-#endif
- unsigned slot_mask;
- unsigned slots;
- spinlock_t irq_lock;
- struct cb710_slot slot[0];
-};
-
-/* NOTE: cb710_chip.slots is modified only during device init/exit and
- * they are all serialized wrt themselves */
-
-/* cb710_chip.slot_mask values */
-#define CB710_SLOT_MMC 1
-#define CB710_SLOT_MS 2
-#define CB710_SLOT_SM 4
-
-/* slot port accessors - so the logic is more clear in the code */
-#define CB710_PORT_ACCESSORS(t) \
-static inline void cb710_write_port_##t(struct cb710_slot *slot, \
- unsigned port, u##t value) \
-{ \
- iowrite##t(value, slot->iobase + port); \
-} \
- \
-static inline u##t cb710_read_port_##t(struct cb710_slot *slot, \
- unsigned port) \
-{ \
- return ioread##t(slot->iobase + port); \
-} \
- \
-static inline void cb710_modify_port_##t(struct cb710_slot *slot, \
- unsigned port, u##t set, u##t clear) \
-{ \
- iowrite##t( \
- (ioread##t(slot->iobase + port) & ~clear)|set, \
- slot->iobase + port); \
-}
-
-CB710_PORT_ACCESSORS(8)
-CB710_PORT_ACCESSORS(16)
-CB710_PORT_ACCESSORS(32)
-
-void cb710_pci_update_config_reg(struct pci_dev *pdev,
- int reg, uint32_t and, uint32_t xor);
-void cb710_set_irq_handler(struct cb710_slot *slot,
- cb710_irq_handler_t handler);
-
-/* some device struct walking */
-
-static inline struct cb710_slot *cb710_pdev_to_slot(
- struct platform_device *pdev)
-{
- return container_of(pdev, struct cb710_slot, pdev);
-}
-
-static inline struct cb710_chip *cb710_slot_to_chip(struct cb710_slot *slot)
-{
- return dev_get_drvdata(slot->pdev.dev.parent);
-}
-
-static inline struct device *cb710_slot_dev(struct cb710_slot *slot)
-{
- return &slot->pdev.dev;
-}
-
-static inline struct device *cb710_chip_dev(struct cb710_chip *chip)
-{
- return &chip->pdev->dev;
-}
-
-/* debugging aids */
-
-#ifdef CONFIG_CB710_DEBUG
-void cb710_dump_regs(struct cb710_chip *chip, unsigned dump);
-#else
-#define cb710_dump_regs(c, d) do {} while (0)
-#endif
-
-#define CB710_DUMP_REGS_MMC 0x0F
-#define CB710_DUMP_REGS_MS 0x30
-#define CB710_DUMP_REGS_SM 0xC0
-#define CB710_DUMP_REGS_ALL 0xFF
-#define CB710_DUMP_REGS_MASK 0xFF
-
-#define CB710_DUMP_ACCESS_8 0x100
-#define CB710_DUMP_ACCESS_16 0x200
-#define CB710_DUMP_ACCESS_32 0x400
-#define CB710_DUMP_ACCESS_ALL 0x700
-#define CB710_DUMP_ACCESS_MASK 0x700
-
-#endif /* LINUX_CB710_DRIVER_H */
-/*
- * cb710/sgbuf2.h
- *
- * Copyright by Michał Mirosław, 2008-2009
- *
- * 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.
- */
-#ifndef LINUX_CB710_SG_H
-#define LINUX_CB710_SG_H
-
-#include <linux/highmem.h>
-#include <linux/scatterlist.h>
-
-/*
- * 32-bit PIO mapping sg iterator
- *
- * Hides scatterlist access issues - fragment boundaries, alignment, page
- * mapping - for drivers using 32-bit-word-at-a-time-PIO (ie. PCI devices
- * without DMA support).
- *
- * Best-case reading (transfer from device):
- * sg_miter_start(, SG_MITER_TO_SG);
- * cb710_sg_dwiter_write_from_io();
- * sg_miter_stop();
- *
- * Best-case writing (transfer to device):
- * sg_miter_start(, SG_MITER_FROM_SG);
- * cb710_sg_dwiter_read_to_io();
- * sg_miter_stop();
- */
-
-uint32_t cb710_sg_dwiter_read_next_block(struct sg_mapping_iter *miter);
-void cb710_sg_dwiter_write_next_block(struct sg_mapping_iter *miter, uint32_t data);
-
-/**
- * cb710_sg_dwiter_write_from_io - transfer data to mapped buffer from 32-bit IO port
- * @miter: sg mapping iter
- * @port: PIO port - IO or MMIO address
- * @count: number of 32-bit words to transfer
- *
- * Description:
- * Reads @count 32-bit words from register @port and stores it in
- * buffer iterated by @miter. Data that would overflow the buffer
- * is silently ignored. Iterator is advanced by 4*@count bytes
- * or to the buffer's end whichever is closer.
- *
- * Context:
- * IRQ disabled if the SG_MITER_ATOMIC is set. Don't care otherwise.
- */
-static inline void cb710_sg_dwiter_write_from_io(struct sg_mapping_iter *miter,
- void __iomem *port, size_t count)
-{
- while (count-- > 0)
- cb710_sg_dwiter_write_next_block(miter, ioread32(port));
-}
-
-/**
- * cb710_sg_dwiter_read_to_io - transfer data to 32-bit IO port from mapped buffer
- * @miter: sg mapping iter
- * @port: PIO port - IO or MMIO address
- * @count: number of 32-bit words to transfer
- *
- * Description:
- * Writes @count 32-bit words to register @port from buffer iterated
- * through @miter. If buffer ends before @count words are written
- * missing data is replaced by zeroes. @miter is advanced by 4*@count
- * bytes or to the buffer's end whichever is closer.
- *
- * Context:
- * IRQ disabled if the SG_MITER_ATOMIC is set. Don't care otherwise.
- */
-static inline void cb710_sg_dwiter_read_to_io(struct sg_mapping_iter *miter,
- void __iomem *port, size_t count)
-{
- while (count-- > 0)
- iowrite32(cb710_sg_dwiter_read_next_block(miter), port);
-}
-
-#endif /* LINUX_CB710_SG_H */
diff --git a/ANDROID_3.4.5/include/linux/cciss_defs.h b/ANDROID_3.4.5/include/linux/cciss_defs.h
deleted file mode 100644
index 316b670d..00000000
--- a/ANDROID_3.4.5/include/linux/cciss_defs.h
+++ /dev/null
@@ -1,130 +0,0 @@
-#ifndef CCISS_DEFS_H
-#define CCISS_DEFS_H
-
-#include <linux/types.h>
-
-/* general boundary definitions */
-#define SENSEINFOBYTES 32 /* note that this value may vary
- between host implementations */
-
-/* Command Status value */
-#define CMD_SUCCESS 0x0000
-#define CMD_TARGET_STATUS 0x0001
-#define CMD_DATA_UNDERRUN 0x0002
-#define CMD_DATA_OVERRUN 0x0003
-#define CMD_INVALID 0x0004
-#define CMD_PROTOCOL_ERR 0x0005
-#define CMD_HARDWARE_ERR 0x0006
-#define CMD_CONNECTION_LOST 0x0007
-#define CMD_ABORTED 0x0008
-#define CMD_ABORT_FAILED 0x0009
-#define CMD_UNSOLICITED_ABORT 0x000A
-#define CMD_TIMEOUT 0x000B
-#define CMD_UNABORTABLE 0x000C
-
-/* transfer direction */
-#define XFER_NONE 0x00
-#define XFER_WRITE 0x01
-#define XFER_READ 0x02
-#define XFER_RSVD 0x03
-
-/* task attribute */
-#define ATTR_UNTAGGED 0x00
-#define ATTR_SIMPLE 0x04
-#define ATTR_HEADOFQUEUE 0x05
-#define ATTR_ORDERED 0x06
-#define ATTR_ACA 0x07
-
-/* cdb type */
-#define TYPE_CMD 0x00
-#define TYPE_MSG 0x01
-
-/* Type defs used in the following structs */
-#define BYTE __u8
-#define WORD __u16
-#define HWORD __u16
-#define DWORD __u32
-
-#define CISS_MAX_LUN 1024
-
-#define LEVEL2LUN 1 /* index into Target(x) structure, due to byte swapping */
-#define LEVEL3LUN 0
-
-#pragma pack(1)
-
-/* Command List Structure */
-typedef union _SCSI3Addr_struct {
- struct {
- BYTE Dev;
- BYTE Bus:6;
- BYTE Mode:2; /* b00 */
- } PeripDev;
- struct {
- BYTE DevLSB;
- BYTE DevMSB:6;
- BYTE Mode:2; /* b01 */
- } LogDev;
- struct {
- BYTE Dev:5;
- BYTE Bus:3;
- BYTE Targ:6;
- BYTE Mode:2; /* b10 */
- } LogUnit;
-} SCSI3Addr_struct;
-
-typedef struct _PhysDevAddr_struct {
- DWORD TargetId:24;
- DWORD Bus:6;
- DWORD Mode:2;
- SCSI3Addr_struct Target[2]; /* 2 level target device addr */
-} PhysDevAddr_struct;
-
-typedef struct _LogDevAddr_struct {
- DWORD VolId:30;
- DWORD Mode:2;
- BYTE reserved[4];
-} LogDevAddr_struct;
-
-typedef union _LUNAddr_struct {
- BYTE LunAddrBytes[8];
- SCSI3Addr_struct SCSI3Lun[4];
- PhysDevAddr_struct PhysDev;
- LogDevAddr_struct LogDev;
-} LUNAddr_struct;
-
-typedef struct _RequestBlock_struct {
- BYTE CDBLen;
- struct {
- BYTE Type:3;
- BYTE Attribute:3;
- BYTE Direction:2;
- } Type;
- HWORD Timeout;
- BYTE CDB[16];
-} RequestBlock_struct;
-
-typedef union _MoreErrInfo_struct{
- struct {
- BYTE Reserved[3];
- BYTE Type;
- DWORD ErrorInfo;
- } Common_Info;
- struct{
- BYTE Reserved[2];
- BYTE offense_size; /* size of offending entry */
- BYTE offense_num; /* byte # of offense 0-base */
- DWORD offense_value;
- } Invalid_Cmd;
-} MoreErrInfo_struct;
-typedef struct _ErrorInfo_struct {
- BYTE ScsiStatus;
- BYTE SenseLen;
- HWORD CommandStatus;
- DWORD ResidualCnt;
- MoreErrInfo_struct MoreErrInfo;
- BYTE SenseInfo[SENSEINFOBYTES];
-} ErrorInfo_struct;
-
-#pragma pack()
-
-#endif /* CCISS_DEFS_H */
diff --git a/ANDROID_3.4.5/include/linux/cciss_ioctl.h b/ANDROID_3.4.5/include/linux/cciss_ioctl.h
deleted file mode 100644
index 986493f5..00000000
--- a/ANDROID_3.4.5/include/linux/cciss_ioctl.h
+++ /dev/null
@@ -1,115 +0,0 @@
-#ifndef CCISS_IOCTLH
-#define CCISS_IOCTLH
-
-#include <linux/types.h>
-#include <linux/ioctl.h>
-#include <linux/cciss_defs.h>
-
-#define CCISS_IOC_MAGIC 'B'
-
-
-typedef struct _cciss_pci_info_struct
-{
- unsigned char bus;
- unsigned char dev_fn;
- unsigned short domain;
- __u32 board_id;
-} cciss_pci_info_struct;
-
-typedef struct _cciss_coalint_struct
-{
- __u32 delay;
- __u32 count;
-} cciss_coalint_struct;
-
-typedef char NodeName_type[16];
-
-typedef __u32 Heartbeat_type;
-
-#define CISS_PARSCSIU2 0x0001
-#define CISS_PARCSCIU3 0x0002
-#define CISS_FIBRE1G 0x0100
-#define CISS_FIBRE2G 0x0200
-typedef __u32 BusTypes_type;
-
-typedef char FirmwareVer_type[4];
-typedef __u32 DriverVer_type;
-
-#define MAX_KMALLOC_SIZE 128000
-
-typedef struct _IOCTL_Command_struct {
- LUNAddr_struct LUN_info;
- RequestBlock_struct Request;
- ErrorInfo_struct error_info;
- WORD buf_size; /* size in bytes of the buf */
- BYTE __user *buf;
-} IOCTL_Command_struct;
-
-typedef struct _BIG_IOCTL_Command_struct {
- LUNAddr_struct LUN_info;
- RequestBlock_struct Request;
- ErrorInfo_struct error_info;
- DWORD malloc_size; /* < MAX_KMALLOC_SIZE in cciss.c */
- DWORD buf_size; /* size in bytes of the buf */
- /* < malloc_size * MAXSGENTRIES */
- BYTE __user *buf;
-} BIG_IOCTL_Command_struct;
-
-typedef struct _LogvolInfo_struct{
- __u32 LunID;
- int num_opens; /* number of opens on the logical volume */
- int num_parts; /* number of partitions configured on logvol */
-} LogvolInfo_struct;
-
-#define CCISS_GETPCIINFO _IOR(CCISS_IOC_MAGIC, 1, cciss_pci_info_struct)
-
-#define CCISS_GETINTINFO _IOR(CCISS_IOC_MAGIC, 2, cciss_coalint_struct)
-#define CCISS_SETINTINFO _IOW(CCISS_IOC_MAGIC, 3, cciss_coalint_struct)
-
-#define CCISS_GETNODENAME _IOR(CCISS_IOC_MAGIC, 4, NodeName_type)
-#define CCISS_SETNODENAME _IOW(CCISS_IOC_MAGIC, 5, NodeName_type)
-
-#define CCISS_GETHEARTBEAT _IOR(CCISS_IOC_MAGIC, 6, Heartbeat_type)
-#define CCISS_GETBUSTYPES _IOR(CCISS_IOC_MAGIC, 7, BusTypes_type)
-#define CCISS_GETFIRMVER _IOR(CCISS_IOC_MAGIC, 8, FirmwareVer_type)
-#define CCISS_GETDRIVVER _IOR(CCISS_IOC_MAGIC, 9, DriverVer_type)
-#define CCISS_REVALIDVOLS _IO(CCISS_IOC_MAGIC, 10)
-#define CCISS_PASSTHRU _IOWR(CCISS_IOC_MAGIC, 11, IOCTL_Command_struct)
-#define CCISS_DEREGDISK _IO(CCISS_IOC_MAGIC, 12)
-
-/* no longer used... use REGNEWD instead */
-#define CCISS_REGNEWDISK _IOW(CCISS_IOC_MAGIC, 13, int)
-
-#define CCISS_REGNEWD _IO(CCISS_IOC_MAGIC, 14)
-#define CCISS_RESCANDISK _IO(CCISS_IOC_MAGIC, 16)
-#define CCISS_GETLUNINFO _IOR(CCISS_IOC_MAGIC, 17, LogvolInfo_struct)
-#define CCISS_BIG_PASSTHRU _IOWR(CCISS_IOC_MAGIC, 18, BIG_IOCTL_Command_struct)
-
-#ifdef __KERNEL__
-#ifdef CONFIG_COMPAT
-
-/* 32 bit compatible ioctl structs */
-typedef struct _IOCTL32_Command_struct {
- LUNAddr_struct LUN_info;
- RequestBlock_struct Request;
- ErrorInfo_struct error_info;
- WORD buf_size; /* size in bytes of the buf */
- __u32 buf; /* 32 bit pointer to data buffer */
-} IOCTL32_Command_struct;
-
-typedef struct _BIG_IOCTL32_Command_struct {
- LUNAddr_struct LUN_info;
- RequestBlock_struct Request;
- ErrorInfo_struct error_info;
- DWORD malloc_size; /* < MAX_KMALLOC_SIZE in cciss.c */
- DWORD buf_size; /* size in bytes of the buf */
- /* < malloc_size * MAXSGENTRIES */
- __u32 buf; /* 32 bit pointer to data buffer */
-} BIG_IOCTL32_Command_struct;
-
-#define CCISS_PASSTHRU32 _IOWR(CCISS_IOC_MAGIC, 11, IOCTL32_Command_struct)
-#define CCISS_BIG_PASSTHRU32 _IOWR(CCISS_IOC_MAGIC, 18, BIG_IOCTL32_Command_struct)
-
-#endif /* CONFIG_COMPAT */
-#endif /* __KERNEL__ */
-#endif
diff --git a/ANDROID_3.4.5/include/linux/cd1400.h b/ANDROID_3.4.5/include/linux/cd1400.h
deleted file mode 100644
index 1dc3ab05..00000000
--- a/ANDROID_3.4.5/include/linux/cd1400.h
+++ /dev/null
@@ -1,292 +0,0 @@
-/*****************************************************************************/
-
-/*
- * cd1400.h -- cd1400 UART hardware info.
- *
- * Copyright (C) 1996-1998 Stallion Technologies
- * Copyright (C) 1994-1996 Greg Ungerer.
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-/*****************************************************************************/
-#ifndef _CD1400_H
-#define _CD1400_H
-/*****************************************************************************/
-
-/*
- * Define the number of async ports per cd1400 uart chip.
- */
-#define CD1400_PORTS 4
-
-/*
- * Define the cd1400 uarts internal FIFO sizes.
- */
-#define CD1400_TXFIFOSIZE 12
-#define CD1400_RXFIFOSIZE 12
-
-/*
- * Local RX FIFO thresh hold level. Also define the RTS thresh hold
- * based on the RX thresh hold.
- */
-#define FIFO_RXTHRESHOLD 6
-#define FIFO_RTSTHRESHOLD 7
-
-/*****************************************************************************/
-
-/*
- * Define the cd1400 register addresses. These are all the valid
- * registers with the cd1400. Some are global, some virtual, some
- * per port.
- */
-#define GFRCR 0x40
-#define CAR 0x68
-#define GCR 0x4b
-#define SVRR 0x67
-#define RICR 0x44
-#define TICR 0x45
-#define MICR 0x46
-#define RIR 0x6b
-#define TIR 0x6a
-#define MIR 0x69
-#define PPR 0x7e
-
-#define RIVR 0x43
-#define TIVR 0x42
-#define MIVR 0x41
-#define TDR 0x63
-#define RDSR 0x62
-#define MISR 0x4c
-#define EOSRR 0x60
-
-#define LIVR 0x18
-#define CCR 0x05
-#define SRER 0x06
-#define COR1 0x08
-#define COR2 0x09
-#define COR3 0x0a
-#define COR4 0x1e
-#define COR5 0x1f
-#define CCSR 0x0b
-#define RDCR 0x0e
-#define SCHR1 0x1a
-#define SCHR2 0x1b
-#define SCHR3 0x1c
-#define SCHR4 0x1d
-#define SCRL 0x22
-#define SCRH 0x23
-#define LNC 0x24
-#define MCOR1 0x15
-#define MCOR2 0x16
-#define RTPR 0x21
-#define MSVR1 0x6c
-#define MSVR2 0x6d
-#define PSVR 0x6f
-#define RBPR 0x78
-#define RCOR 0x7c
-#define TBPR 0x72
-#define TCOR 0x76
-
-/*****************************************************************************/
-
-/*
- * Define the set of baud rate clock divisors.
- */
-#define CD1400_CLK0 8
-#define CD1400_CLK1 32
-#define CD1400_CLK2 128
-#define CD1400_CLK3 512
-#define CD1400_CLK4 2048
-
-#define CD1400_NUMCLKS 5
-
-/*****************************************************************************/
-
-/*
- * Define the clock pre-scalar value to be a 5 ms clock. This should be
- * OK for now. It would probably be better to make it 10 ms, but we
- * can't fit that divisor into 8 bits!
- */
-#define PPR_SCALAR 244
-
-/*****************************************************************************/
-
-/*
- * Define values used to set character size options.
- */
-#define COR1_CHL5 0x00
-#define COR1_CHL6 0x01
-#define COR1_CHL7 0x02
-#define COR1_CHL8 0x03
-
-/*
- * Define values used to set the number of stop bits.
- */
-#define COR1_STOP1 0x00
-#define COR1_STOP15 0x04
-#define COR1_STOP2 0x08
-
-/*
- * Define values used to set the parity scheme in use.
- */
-#define COR1_PARNONE 0x00
-#define COR1_PARFORCE 0x20
-#define COR1_PARENB 0x40
-#define COR1_PARIGNORE 0x10
-
-#define COR1_PARODD 0x80
-#define COR1_PAREVEN 0x00
-
-#define COR2_IXM 0x80
-#define COR2_TXIBE 0x40
-#define COR2_ETC 0x20
-#define COR2_LLM 0x10
-#define COR2_RLM 0x08
-#define COR2_RTSAO 0x04
-#define COR2_CTSAE 0x02
-
-#define COR3_SCDRNG 0x80
-#define COR3_SCD34 0x40
-#define COR3_FCT 0x20
-#define COR3_SCD12 0x10
-
-/*
- * Define values used by COR4.
- */
-#define COR4_BRKINT 0x08
-#define COR4_IGNBRK 0x18
-
-/*****************************************************************************/
-
-/*
- * Define the modem control register values.
- * Note that the actual hardware is a little different to the conventional
- * pin names on the cd1400.
- */
-#define MSVR1_DTR 0x01
-#define MSVR1_DSR 0x10
-#define MSVR1_RI 0x20
-#define MSVR1_CTS 0x40
-#define MSVR1_DCD 0x80
-
-#define MSVR2_RTS 0x02
-#define MSVR2_DSR 0x10
-#define MSVR2_RI 0x20
-#define MSVR2_CTS 0x40
-#define MSVR2_DCD 0x80
-
-#define MCOR1_DCD 0x80
-#define MCOR1_CTS 0x40
-#define MCOR1_RI 0x20
-#define MCOR1_DSR 0x10
-
-#define MCOR2_DCD 0x80
-#define MCOR2_CTS 0x40
-#define MCOR2_RI 0x20
-#define MCOR2_DSR 0x10
-
-/*****************************************************************************/
-
-/*
- * Define the bits used with the service (interrupt) enable register.
- */
-#define SRER_NNDT 0x01
-#define SRER_TXEMPTY 0x02
-#define SRER_TXDATA 0x04
-#define SRER_RXDATA 0x10
-#define SRER_MODEM 0x80
-
-/*****************************************************************************/
-
-/*
- * Define operational commands for the command register.
- */
-#define CCR_RESET 0x80
-#define CCR_CORCHANGE 0x4e
-#define CCR_SENDCH 0x20
-#define CCR_CHANCTRL 0x10
-
-#define CCR_TXENABLE (CCR_CHANCTRL | 0x08)
-#define CCR_TXDISABLE (CCR_CHANCTRL | 0x04)
-#define CCR_RXENABLE (CCR_CHANCTRL | 0x02)
-#define CCR_RXDISABLE (CCR_CHANCTRL | 0x01)
-
-#define CCR_SENDSCHR1 (CCR_SENDCH | 0x01)
-#define CCR_SENDSCHR2 (CCR_SENDCH | 0x02)
-#define CCR_SENDSCHR3 (CCR_SENDCH | 0x03)
-#define CCR_SENDSCHR4 (CCR_SENDCH | 0x04)
-
-#define CCR_RESETCHAN (CCR_RESET | 0x00)
-#define CCR_RESETFULL (CCR_RESET | 0x01)
-#define CCR_TXFLUSHFIFO (CCR_RESET | 0x02)
-
-#define CCR_MAXWAIT 10000
-
-/*****************************************************************************/
-
-/*
- * Define the valid acknowledgement types (for hw ack cycle).
- */
-#define ACK_TYPMASK 0x07
-#define ACK_TYPTX 0x02
-#define ACK_TYPMDM 0x01
-#define ACK_TYPRXGOOD 0x03
-#define ACK_TYPRXBAD 0x07
-
-#define SVRR_RX 0x01
-#define SVRR_TX 0x02
-#define SVRR_MDM 0x04
-
-#define ST_OVERRUN 0x01
-#define ST_FRAMING 0x02
-#define ST_PARITY 0x04
-#define ST_BREAK 0x08
-#define ST_SCHAR1 0x10
-#define ST_SCHAR2 0x20
-#define ST_SCHAR3 0x30
-#define ST_SCHAR4 0x40
-#define ST_RANGE 0x70
-#define ST_SCHARMASK 0x70
-#define ST_TIMEOUT 0x80
-
-#define MISR_DCD 0x80
-#define MISR_CTS 0x40
-#define MISR_RI 0x20
-#define MISR_DSR 0x10
-
-/*****************************************************************************/
-
-/*
- * Defines for the CCSR status register.
- */
-#define CCSR_RXENABLED 0x80
-#define CCSR_RXFLOWON 0x40
-#define CCSR_RXFLOWOFF 0x20
-#define CCSR_TXENABLED 0x08
-#define CCSR_TXFLOWON 0x04
-#define CCSR_TXFLOWOFF 0x02
-
-/*****************************************************************************/
-
-/*
- * Define the embedded commands.
- */
-#define ETC_CMD 0x00
-#define ETC_STARTBREAK 0x81
-#define ETC_DELAY 0x82
-#define ETC_STOPBREAK 0x83
-
-/*****************************************************************************/
-#endif
diff --git a/ANDROID_3.4.5/include/linux/cdev.h b/ANDROID_3.4.5/include/linux/cdev.h
deleted file mode 100644
index fb459197..00000000
--- a/ANDROID_3.4.5/include/linux/cdev.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#ifndef _LINUX_CDEV_H
-#define _LINUX_CDEV_H
-
-#include <linux/kobject.h>
-#include <linux/kdev_t.h>
-#include <linux/list.h>
-
-struct file_operations;
-struct inode;
-struct module;
-
-struct cdev {
- struct kobject kobj;
- struct module *owner;
- const struct file_operations *ops;
- struct list_head list;
- dev_t dev;
- unsigned int count;
-};
-
-void cdev_init(struct cdev *, const struct file_operations *);
-
-struct cdev *cdev_alloc(void);
-
-void cdev_put(struct cdev *p);
-
-int cdev_add(struct cdev *, dev_t, unsigned);
-
-void cdev_del(struct cdev *);
-
-void cd_forget(struct inode *);
-
-extern struct backing_dev_info directly_mappable_cdev_bdi;
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/cdk.h b/ANDROID_3.4.5/include/linux/cdk.h
deleted file mode 100644
index 80093a8d..00000000
--- a/ANDROID_3.4.5/include/linux/cdk.h
+++ /dev/null
@@ -1,486 +0,0 @@
-/*****************************************************************************/
-
-/*
- * cdk.h -- CDK interface definitions.
- *
- * Copyright (C) 1996-1998 Stallion Technologies
- * Copyright (C) 1994-1996 Greg Ungerer.
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-/*****************************************************************************/
-#ifndef _CDK_H
-#define _CDK_H
-/*****************************************************************************/
-
-#pragma pack(2)
-
-/*
- * The following set of definitions is used to communicate with the
- * shared memory interface of the Stallion intelligent multiport serial
- * boards. The definitions in this file are taken directly from the
- * document titled "Generic Stackable Interface, Downloader and
- * Communications Development Kit".
- */
-
-/*
- * Define the set of important shared memory addresses. These are
- * required to initialize the board and get things started. All of these
- * addresses are relative to the start of the shared memory.
- */
-#define CDK_SIGADDR 0x200
-#define CDK_FEATADDR 0x280
-#define CDK_CDKADDR 0x300
-#define CDK_RDYADDR 0x262
-
-#define CDK_ALIVEMARKER 13
-
-/*
- * On hardware power up the ROMs located on the EasyConnection 8/64 will
- * fill out the following signature information into shared memory. This
- * way the host system can quickly determine that the board is present
- * and is operational.
- */
-typedef struct cdkecpsig {
- unsigned long magic;
- unsigned short romver;
- unsigned short cputype;
- unsigned char panelid[8];
-} cdkecpsig_t;
-
-#define ECP_MAGIC 0x21504345
-
-/*
- * On hardware power up the ROMs located on the ONboard, Stallion and
- * Brumbys will fill out the following signature information into shared
- * memory. This way the host system can quickly determine that the board
- * is present and is operational.
- */
-typedef struct cdkonbsig {
- unsigned short magic0;
- unsigned short magic1;
- unsigned short magic2;
- unsigned short magic3;
- unsigned short romver;
- unsigned short memoff;
- unsigned short memseg;
- unsigned short amask0;
- unsigned short pic;
- unsigned short status;
- unsigned short btype;
- unsigned short clkticks;
- unsigned short clkspeed;
- unsigned short amask1;
- unsigned short amask2;
-} cdkonbsig_t;
-
-#define ONB_MAGIC0 0xf2a7
-#define ONB_MAGIC1 0xa149
-#define ONB_MAGIC2 0x6352
-#define ONB_MAGIC3 0xf121
-
-/*
- * Define the feature area structure. The feature area is the set of
- * startup parameters used by the slave image when it starts executing.
- * They allow for the specification of buffer sizes, debug trace, etc.
- */
-typedef struct cdkfeature {
- unsigned long debug;
- unsigned long banner;
- unsigned long etype;
- unsigned long nrdevs;
- unsigned long brdspec;
- unsigned long txrqsize;
- unsigned long rxrqsize;
- unsigned long flags;
-} cdkfeature_t;
-
-#define ETYP_DDK 0
-#define ETYP_CDK 1
-
-/*
- * Define the CDK header structure. This is the info that the slave
- * environment sets up after it has been downloaded and started. It
- * essentially provides a memory map for the shared memory interface.
- */
-typedef struct cdkhdr {
- unsigned short command;
- unsigned short status;
- unsigned short port;
- unsigned short mode;
- unsigned long cmd_buf[14];
- unsigned short alive_cnt;
- unsigned short intrpt_mode;
- unsigned char intrpt_id[8];
- unsigned char ver_release;
- unsigned char ver_modification;
- unsigned char ver_fix;
- unsigned char deadman_restart;
- unsigned short deadman;
- unsigned short nrdevs;
- unsigned long memp;
- unsigned long hostp;
- unsigned long slavep;
- unsigned char hostreq;
- unsigned char slavereq;
- unsigned char cmd_reserved[30];
-} cdkhdr_t;
-
-#define MODE_DDK 0
-#define MODE_CDK 1
-
-#define IMD_INTR 0x0
-#define IMD_PPINTR 0x1
-#define IMD_POLL 0xff
-
-/*
- * Define the memory mapping structure. This structure is pointed to by
- * the memp field in the stlcdkhdr struct. As many as these structures
- * as required are laid out in shared memory to define how the rest of
- * shared memory is divided up. There will be one for each port.
- */
-typedef struct cdkmem {
- unsigned short dtype;
- unsigned long offset;
-} cdkmem_t;
-
-#define TYP_UNDEFINED 0x0
-#define TYP_ASYNCTRL 0x1
-#define TYP_ASYNC 0x20
-#define TYP_PARALLEL 0x40
-#define TYP_SYNCX21 0x60
-
-/*****************************************************************************/
-
-/*
- * Following is a set of defines and structures used to actually deal
- * with the serial ports on the board. Firstly is the set of commands
- * that can be applied to ports.
- */
-#define ASYCMD (((unsigned long) 'a') << 8)
-
-#define A_NULL (ASYCMD | 0)
-#define A_FLUSH (ASYCMD | 1)
-#define A_BREAK (ASYCMD | 2)
-#define A_GETPORT (ASYCMD | 3)
-#define A_SETPORT (ASYCMD | 4)
-#define A_SETPORTF (ASYCMD | 5)
-#define A_SETPORTFTX (ASYCMD | 6)
-#define A_SETPORTFRX (ASYCMD | 7)
-#define A_GETSIGNALS (ASYCMD | 8)
-#define A_SETSIGNALS (ASYCMD | 9)
-#define A_SETSIGNALSF (ASYCMD | 10)
-#define A_SETSIGNALSFTX (ASYCMD | 11)
-#define A_SETSIGNALSFRX (ASYCMD | 12)
-#define A_GETNOTIFY (ASYCMD | 13)
-#define A_SETNOTIFY (ASYCMD | 14)
-#define A_NOTIFY (ASYCMD | 15)
-#define A_PORTCTRL (ASYCMD | 16)
-#define A_GETSTATS (ASYCMD | 17)
-#define A_RQSTATE (ASYCMD | 18)
-#define A_FLOWSTATE (ASYCMD | 19)
-#define A_CLEARSTATS (ASYCMD | 20)
-
-/*
- * Define those arguments used for simple commands.
- */
-#define FLUSHRX 0x1
-#define FLUSHTX 0x2
-
-#define BREAKON -1
-#define BREAKOFF -2
-
-/*
- * Define the port setting structure, and all those defines that go along
- * with it. Basically this structure defines the characteristics of this
- * port: baud rate, chars, parity, input/output char cooking etc.
- */
-typedef struct asyport {
- unsigned long baudout;
- unsigned long baudin;
- unsigned long iflag;
- unsigned long oflag;
- unsigned long lflag;
- unsigned long pflag;
- unsigned long flow;
- unsigned long spare1;
- unsigned short vtime;
- unsigned short vmin;
- unsigned short txlo;
- unsigned short txhi;
- unsigned short rxlo;
- unsigned short rxhi;
- unsigned short rxhog;
- unsigned short spare2;
- unsigned char csize;
- unsigned char stopbs;
- unsigned char parity;
- unsigned char stopin;
- unsigned char startin;
- unsigned char stopout;
- unsigned char startout;
- unsigned char parmark;
- unsigned char brkmark;
- unsigned char cc[11];
-} asyport_t;
-
-#define PT_STOP1 0x0
-#define PT_STOP15 0x1
-#define PT_STOP2 0x2
-
-#define PT_NOPARITY 0x0
-#define PT_ODDPARITY 0x1
-#define PT_EVENPARITY 0x2
-#define PT_MARKPARITY 0x3
-#define PT_SPACEPARITY 0x4
-
-#define F_NONE 0x0
-#define F_IXON 0x1
-#define F_IXOFF 0x2
-#define F_IXANY 0x4
-#define F_IOXANY 0x8
-#define F_RTSFLOW 0x10
-#define F_CTSFLOW 0x20
-#define F_DTRFLOW 0x40
-#define F_DCDFLOW 0x80
-#define F_DSROFLOW 0x100
-#define F_DSRIFLOW 0x200
-
-#define FI_NORX 0x1
-#define FI_RAW 0x2
-#define FI_ISTRIP 0x4
-#define FI_UCLC 0x8
-#define FI_INLCR 0x10
-#define FI_ICRNL 0x20
-#define FI_IGNCR 0x40
-#define FI_IGNBREAK 0x80
-#define FI_DSCRDBREAK 0x100
-#define FI_1MARKBREAK 0x200
-#define FI_2MARKBREAK 0x400
-#define FI_XCHNGBREAK 0x800
-#define FI_IGNRXERRS 0x1000
-#define FI_DSCDRXERRS 0x2000
-#define FI_1MARKRXERRS 0x4000
-#define FI_2MARKRXERRS 0x8000
-#define FI_XCHNGRXERRS 0x10000
-#define FI_DSCRDNULL 0x20000
-
-#define FO_OLCUC 0x1
-#define FO_ONLCR 0x2
-#define FO_OOCRNL 0x4
-#define FO_ONOCR 0x8
-#define FO_ONLRET 0x10
-#define FO_ONL 0x20
-#define FO_OBS 0x40
-#define FO_OVT 0x80
-#define FO_OFF 0x100
-#define FO_OTAB1 0x200
-#define FO_OTAB2 0x400
-#define FO_OTAB3 0x800
-#define FO_OCR1 0x1000
-#define FO_OCR2 0x2000
-#define FO_OCR3 0x4000
-#define FO_OFILL 0x8000
-#define FO_ODELL 0x10000
-
-#define P_RTSLOCK 0x1
-#define P_CTSLOCK 0x2
-#define P_MAPRTS 0x4
-#define P_MAPCTS 0x8
-#define P_LOOPBACK 0x10
-#define P_DTRFOLLOW 0x20
-#define P_FAKEDCD 0x40
-
-#define P_RXIMIN 0x10000
-#define P_RXITIME 0x20000
-#define P_RXTHOLD 0x40000
-
-/*
- * Define a structure to communicate serial port signal and data state
- * information.
- */
-typedef struct asysigs {
- unsigned long data;
- unsigned long signal;
- unsigned long sigvalue;
-} asysigs_t;
-
-#define DT_TXBUSY 0x1
-#define DT_TXEMPTY 0x2
-#define DT_TXLOW 0x4
-#define DT_TXHIGH 0x8
-#define DT_TXFULL 0x10
-#define DT_TXHOG 0x20
-#define DT_TXFLOWED 0x40
-#define DT_TXBREAK 0x80
-
-#define DT_RXBUSY 0x100
-#define DT_RXEMPTY 0x200
-#define DT_RXLOW 0x400
-#define DT_RXHIGH 0x800
-#define DT_RXFULL 0x1000
-#define DT_RXHOG 0x2000
-#define DT_RXFLOWED 0x4000
-#define DT_RXBREAK 0x8000
-
-#define SG_DTR 0x1
-#define SG_DCD 0x2
-#define SG_RTS 0x4
-#define SG_CTS 0x8
-#define SG_DSR 0x10
-#define SG_RI 0x20
-
-/*
- * Define the notification setting structure. This is used to tell the
- * port what events we want to be informed about. Fields here use the
- * same defines as for the asysigs structure above.
- */
-typedef struct asynotify {
- unsigned long ctrl;
- unsigned long data;
- unsigned long signal;
- unsigned long sigvalue;
-} asynotify_t;
-
-/*
- * Define the port control structure. It is used to do fine grain
- * control operations on the port.
- */
-typedef struct {
- unsigned long rxctrl;
- unsigned long txctrl;
- char rximdch;
- char tximdch;
- char spare1;
- char spare2;
-} asyctrl_t;
-
-#define CT_ENABLE 0x1
-#define CT_DISABLE 0x2
-#define CT_STOP 0x4
-#define CT_START 0x8
-#define CT_STARTFLOW 0x10
-#define CT_STOPFLOW 0x20
-#define CT_SENDCHR 0x40
-
-/*
- * Define the stats structure kept for each port. This is a useful set
- * of data collected for each port on the slave. The A_GETSTATS command
- * is used to retrieve this data from the slave.
- */
-typedef struct asystats {
- unsigned long opens;
- unsigned long txchars;
- unsigned long rxchars;
- unsigned long txringq;
- unsigned long rxringq;
- unsigned long txmsgs;
- unsigned long rxmsgs;
- unsigned long txflushes;
- unsigned long rxflushes;
- unsigned long overruns;
- unsigned long framing;
- unsigned long parity;
- unsigned long ringover;
- unsigned long lost;
- unsigned long rxstart;
- unsigned long rxstop;
- unsigned long txstart;
- unsigned long txstop;
- unsigned long dcdcnt;
- unsigned long dtrcnt;
- unsigned long ctscnt;
- unsigned long rtscnt;
- unsigned long dsrcnt;
- unsigned long ricnt;
- unsigned long txbreaks;
- unsigned long rxbreaks;
- unsigned long signals;
- unsigned long state;
- unsigned long hwid;
-} asystats_t;
-
-/*****************************************************************************/
-
-/*
- * All command and control communication with a device on the slave is
- * via a control block in shared memory. Each device has its own control
- * block, defined by the following structure. The control block allows
- * the host to open, close and control the device on the slave.
- */
-typedef struct cdkctrl {
- unsigned char open;
- unsigned char close;
- unsigned long openarg;
- unsigned long closearg;
- unsigned long cmd;
- unsigned long status;
- unsigned long args[32];
-} cdkctrl_t;
-
-/*
- * Each device on the slave passes data to and from the host via a ring
- * queue in shared memory. Define a ring queue structure to hold the
- * vital information about each ring queue. Two ring queues will be
- * allocated for each port, one for receive data and one for transmit
- * data.
- */
-typedef struct cdkasyrq {
- unsigned long offset;
- unsigned short size;
- unsigned short head;
- unsigned short tail;
-} cdkasyrq_t;
-
-/*
- * Each asynchronous port is defined in shared memory by the following
- * structure. It contains a control block to command a device, and also
- * the necessary data channel information as well.
- */
-typedef struct cdkasy {
- cdkctrl_t ctrl;
- unsigned short notify;
- asynotify_t changed;
- unsigned short receive;
- cdkasyrq_t rxq;
- unsigned short transmit;
- cdkasyrq_t txq;
-} cdkasy_t;
-
-#pragma pack()
-
-/*****************************************************************************/
-
-/*
- * Define the set of ioctls used by the driver to do special things
- * to the board. These include interrupting it, and initializing
- * the driver after board startup and shutdown.
- */
-#include <linux/ioctl.h>
-
-#define STL_BINTR _IO('s',20)
-#define STL_BSTART _IO('s',21)
-#define STL_BSTOP _IO('s',22)
-#define STL_BRESET _IO('s',23)
-
-/*
- * Define a set of ioctl extensions, used to get at special stuff.
- */
-#define STL_GETPFLAG _IO('s',80)
-#define STL_SETPFLAG _IO('s',81)
-
-/*****************************************************************************/
-#endif
diff --git a/ANDROID_3.4.5/include/linux/cdrom.h b/ANDROID_3.4.5/include/linux/cdrom.h
deleted file mode 100644
index dfd7f187..00000000
--- a/ANDROID_3.4.5/include/linux/cdrom.h
+++ /dev/null
@@ -1,1214 +0,0 @@
-/*
- * -- <linux/cdrom.h>
- * General header file for linux CD-ROM drivers
- * Copyright (C) 1992 David Giller, rafetmad@oxy.edu
- * 1994, 1995 Eberhard Mönkeberg, emoenke@gwdg.de
- * 1996 David van Leeuwen, david@tm.tno.nl
- * 1997, 1998 Erik Andersen, andersee@debian.org
- * 1998-2002 Jens Axboe, axboe@suse.de
- */
-
-#ifndef _LINUX_CDROM_H
-#define _LINUX_CDROM_H
-
-#include <linux/types.h>
-#include <asm/byteorder.h>
-
-/*******************************************************
- * As of Linux 2.1.x, all Linux CD-ROM application programs will use this
- * (and only this) include file. It is my hope to provide Linux with
- * a uniform interface between software accessing CD-ROMs and the various
- * device drivers that actually talk to the drives. There may still be
- * 23 different kinds of strange CD-ROM drives, but at least there will
- * now be one, and only one, Linux CD-ROM interface.
- *
- * Additionally, as of Linux 2.1.x, all Linux application programs
- * should use the O_NONBLOCK option when opening a CD-ROM device
- * for subsequent ioctl commands. This allows for neat system errors
- * like "No medium found" or "Wrong medium type" upon attempting to
- * mount or play an empty slot, mount an audio disc, or play a data disc.
- * Generally, changing an application program to support O_NONBLOCK
- * is as easy as the following:
- * - drive = open("/dev/cdrom", O_RDONLY);
- * + drive = open("/dev/cdrom", O_RDONLY | O_NONBLOCK);
- * It is worth the small change.
- *
- * Patches for many common CD programs (provided by David A. van Leeuwen)
- * can be found at: ftp://ftp.gwdg.de/pub/linux/cdrom/drivers/cm206/
- *
- *******************************************************/
-
-/* When a driver supports a certain function, but the cdrom drive we are
- * using doesn't, we will return the error EDRIVE_CANT_DO_THIS. We will
- * borrow the "Operation not supported" error from the network folks to
- * accomplish this. Maybe someday we will get a more targeted error code,
- * but this will do for now... */
-#define EDRIVE_CANT_DO_THIS EOPNOTSUPP
-
-/*******************************************************
- * The CD-ROM IOCTL commands -- these should be supported by
- * all the various cdrom drivers. For the CD-ROM ioctls, we
- * will commandeer byte 0x53, or 'S'.
- *******************************************************/
-#define CDROMPAUSE 0x5301 /* Pause Audio Operation */
-#define CDROMRESUME 0x5302 /* Resume paused Audio Operation */
-#define CDROMPLAYMSF 0x5303 /* Play Audio MSF (struct cdrom_msf) */
-#define CDROMPLAYTRKIND 0x5304 /* Play Audio Track/index
- (struct cdrom_ti) */
-#define CDROMREADTOCHDR 0x5305 /* Read TOC header
- (struct cdrom_tochdr) */
-#define CDROMREADTOCENTRY 0x5306 /* Read TOC entry
- (struct cdrom_tocentry) */
-#define CDROMSTOP 0x5307 /* Stop the cdrom drive */
-#define CDROMSTART 0x5308 /* Start the cdrom drive */
-#define CDROMEJECT 0x5309 /* Ejects the cdrom media */
-#define CDROMVOLCTRL 0x530a /* Control output volume
- (struct cdrom_volctrl) */
-#define CDROMSUBCHNL 0x530b /* Read subchannel data
- (struct cdrom_subchnl) */
-#define CDROMREADMODE2 0x530c /* Read CDROM mode 2 data (2336 Bytes)
- (struct cdrom_read) */
-#define CDROMREADMODE1 0x530d /* Read CDROM mode 1 data (2048 Bytes)
- (struct cdrom_read) */
-#define CDROMREADAUDIO 0x530e /* (struct cdrom_read_audio) */
-#define CDROMEJECT_SW 0x530f /* enable(1)/disable(0) auto-ejecting */
-#define CDROMMULTISESSION 0x5310 /* Obtain the start-of-last-session
- address of multi session disks
- (struct cdrom_multisession) */
-#define CDROM_GET_MCN 0x5311 /* Obtain the "Universal Product Code"
- if available (struct cdrom_mcn) */
-#define CDROM_GET_UPC CDROM_GET_MCN /* This one is deprecated,
- but here anyway for compatibility */
-#define CDROMRESET 0x5312 /* hard-reset the drive */
-#define CDROMVOLREAD 0x5313 /* Get the drive's volume setting
- (struct cdrom_volctrl) */
-#define CDROMREADRAW 0x5314 /* read data in raw mode (2352 Bytes)
- (struct cdrom_read) */
-/*
- * These ioctls are used only used in aztcd.c and optcd.c
- */
-#define CDROMREADCOOKED 0x5315 /* read data in cooked mode */
-#define CDROMSEEK 0x5316 /* seek msf address */
-
-/*
- * This ioctl is only used by the scsi-cd driver.
- It is for playing audio in logical block addressing mode.
- */
-#define CDROMPLAYBLK 0x5317 /* (struct cdrom_blk) */
-
-/*
- * These ioctls are only used in optcd.c
- */
-#define CDROMREADALL 0x5318 /* read all 2646 bytes */
-
-/*
- * These ioctls are (now) only in ide-cd.c for controlling
- * drive spindown time. They should be implemented in the
- * Uniform driver, via generic packet commands, GPCMD_MODE_SELECT_10,
- * GPCMD_MODE_SENSE_10 and the GPMODE_POWER_PAGE...
- * -Erik
- */
-#define CDROMGETSPINDOWN 0x531d
-#define CDROMSETSPINDOWN 0x531e
-
-/*
- * These ioctls are implemented through the uniform CD-ROM driver
- * They _will_ be adopted by all CD-ROM drivers, when all the CD-ROM
- * drivers are eventually ported to the uniform CD-ROM driver interface.
- */
-#define CDROMCLOSETRAY 0x5319 /* pendant of CDROMEJECT */
-#define CDROM_SET_OPTIONS 0x5320 /* Set behavior options */
-#define CDROM_CLEAR_OPTIONS 0x5321 /* Clear behavior options */
-#define CDROM_SELECT_SPEED 0x5322 /* Set the CD-ROM speed */
-#define CDROM_SELECT_DISC 0x5323 /* Select disc (for juke-boxes) */
-#define CDROM_MEDIA_CHANGED 0x5325 /* Check is media changed */
-#define CDROM_DRIVE_STATUS 0x5326 /* Get tray position, etc. */
-#define CDROM_DISC_STATUS 0x5327 /* Get disc type, etc. */
-#define CDROM_CHANGER_NSLOTS 0x5328 /* Get number of slots */
-#define CDROM_LOCKDOOR 0x5329 /* lock or unlock door */
-#define CDROM_DEBUG 0x5330 /* Turn debug messages on/off */
-#define CDROM_GET_CAPABILITY 0x5331 /* get capabilities */
-
-/* Note that scsi/scsi_ioctl.h also uses 0x5382 - 0x5386.
- * Future CDROM ioctls should be kept below 0x537F
- */
-
-/* This ioctl is only used by sbpcd at the moment */
-#define CDROMAUDIOBUFSIZ 0x5382 /* set the audio buffer size */
- /* conflict with SCSI_IOCTL_GET_IDLUN */
-
-/* DVD-ROM Specific ioctls */
-#define DVD_READ_STRUCT 0x5390 /* Read structure */
-#define DVD_WRITE_STRUCT 0x5391 /* Write structure */
-#define DVD_AUTH 0x5392 /* Authentication */
-
-#define CDROM_SEND_PACKET 0x5393 /* send a packet to the drive */
-#define CDROM_NEXT_WRITABLE 0x5394 /* get next writable block */
-#define CDROM_LAST_WRITTEN 0x5395 /* get last block written on disc */
-
-/*******************************************************
- * CDROM IOCTL structures
- *******************************************************/
-
-/* Address in MSF format */
-struct cdrom_msf0
-{
- __u8 minute;
- __u8 second;
- __u8 frame;
-};
-
-/* Address in either MSF or logical format */
-union cdrom_addr
-{
- struct cdrom_msf0 msf;
- int lba;
-};
-
-/* This struct is used by the CDROMPLAYMSF ioctl */
-struct cdrom_msf
-{
- __u8 cdmsf_min0; /* start minute */
- __u8 cdmsf_sec0; /* start second */
- __u8 cdmsf_frame0; /* start frame */
- __u8 cdmsf_min1; /* end minute */
- __u8 cdmsf_sec1; /* end second */
- __u8 cdmsf_frame1; /* end frame */
-};
-
-/* This struct is used by the CDROMPLAYTRKIND ioctl */
-struct cdrom_ti
-{
- __u8 cdti_trk0; /* start track */
- __u8 cdti_ind0; /* start index */
- __u8 cdti_trk1; /* end track */
- __u8 cdti_ind1; /* end index */
-};
-
-/* This struct is used by the CDROMREADTOCHDR ioctl */
-struct cdrom_tochdr
-{
- __u8 cdth_trk0; /* start track */
- __u8 cdth_trk1; /* end track */
-};
-
-/* This struct is used by the CDROMVOLCTRL and CDROMVOLREAD ioctls */
-struct cdrom_volctrl
-{
- __u8 channel0;
- __u8 channel1;
- __u8 channel2;
- __u8 channel3;
-};
-
-/* This struct is used by the CDROMSUBCHNL ioctl */
-struct cdrom_subchnl
-{
- __u8 cdsc_format;
- __u8 cdsc_audiostatus;
- __u8 cdsc_adr: 4;
- __u8 cdsc_ctrl: 4;
- __u8 cdsc_trk;
- __u8 cdsc_ind;
- union cdrom_addr cdsc_absaddr;
- union cdrom_addr cdsc_reladdr;
-};
-
-
-/* This struct is used by the CDROMREADTOCENTRY ioctl */
-struct cdrom_tocentry
-{
- __u8 cdte_track;
- __u8 cdte_adr :4;
- __u8 cdte_ctrl :4;
- __u8 cdte_format;
- union cdrom_addr cdte_addr;
- __u8 cdte_datamode;
-};
-
-/* This struct is used by the CDROMREADMODE1, and CDROMREADMODE2 ioctls */
-struct cdrom_read
-{
- int cdread_lba;
- char *cdread_bufaddr;
- int cdread_buflen;
-};
-
-/* This struct is used by the CDROMREADAUDIO ioctl */
-struct cdrom_read_audio
-{
- union cdrom_addr addr; /* frame address */
- __u8 addr_format; /* CDROM_LBA or CDROM_MSF */
- int nframes; /* number of 2352-byte-frames to read at once */
- __u8 __user *buf; /* frame buffer (size: nframes*2352 bytes) */
-};
-
-/* This struct is used with the CDROMMULTISESSION ioctl */
-struct cdrom_multisession
-{
- union cdrom_addr addr; /* frame address: start-of-last-session
- (not the new "frame 16"!). Only valid
- if the "xa_flag" is true. */
- __u8 xa_flag; /* 1: "is XA disk" */
- __u8 addr_format; /* CDROM_LBA or CDROM_MSF */
-};
-
-/* This struct is used with the CDROM_GET_MCN ioctl.
- * Very few audio discs actually have Universal Product Code information,
- * which should just be the Medium Catalog Number on the box. Also note
- * that the way the codeis written on CD is _not_ uniform across all discs!
- */
-struct cdrom_mcn
-{
- __u8 medium_catalog_number[14]; /* 13 ASCII digits, null-terminated */
-};
-
-/* This is used by the CDROMPLAYBLK ioctl */
-struct cdrom_blk
-{
- unsigned from;
- unsigned short len;
-};
-
-#define CDROM_PACKET_SIZE 12
-
-#define CGC_DATA_UNKNOWN 0
-#define CGC_DATA_WRITE 1
-#define CGC_DATA_READ 2
-#define CGC_DATA_NONE 3
-
-/* for CDROM_PACKET_COMMAND ioctl */
-struct cdrom_generic_command
-{
- unsigned char cmd[CDROM_PACKET_SIZE];
- unsigned char __user *buffer;
- unsigned int buflen;
- int stat;
- struct request_sense __user *sense;
- unsigned char data_direction;
- int quiet;
- int timeout;
- void __user *reserved[1]; /* unused, actually */
-};
-
-/*
- * A CD-ROM physical sector size is 2048, 2052, 2056, 2324, 2332, 2336,
- * 2340, or 2352 bytes long.
-
-* Sector types of the standard CD-ROM data formats:
- *
- * format sector type user data size (bytes)
- * -----------------------------------------------------------------------------
- * 1 (Red Book) CD-DA 2352 (CD_FRAMESIZE_RAW)
- * 2 (Yellow Book) Mode1 Form1 2048 (CD_FRAMESIZE)
- * 3 (Yellow Book) Mode1 Form2 2336 (CD_FRAMESIZE_RAW0)
- * 4 (Green Book) Mode2 Form1 2048 (CD_FRAMESIZE)
- * 5 (Green Book) Mode2 Form2 2328 (2324+4 spare bytes)
- *
- *
- * The layout of the standard CD-ROM data formats:
- * -----------------------------------------------------------------------------
- * - audio (red): | audio_sample_bytes |
- * | 2352 |
- *
- * - data (yellow, mode1): | sync - head - data - EDC - zero - ECC |
- * | 12 - 4 - 2048 - 4 - 8 - 276 |
- *
- * - data (yellow, mode2): | sync - head - data |
- * | 12 - 4 - 2336 |
- *
- * - XA data (green, mode2 form1): | sync - head - sub - data - EDC - ECC |
- * | 12 - 4 - 8 - 2048 - 4 - 276 |
- *
- * - XA data (green, mode2 form2): | sync - head - sub - data - Spare |
- * | 12 - 4 - 8 - 2324 - 4 |
- *
- */
-
-/* Some generally useful CD-ROM information -- mostly based on the above */
-#define CD_MINS 74 /* max. minutes per CD, not really a limit */
-#define CD_SECS 60 /* seconds per minute */
-#define CD_FRAMES 75 /* frames per second */
-#define CD_SYNC_SIZE 12 /* 12 sync bytes per raw data frame */
-#define CD_MSF_OFFSET 150 /* MSF numbering offset of first frame */
-#define CD_CHUNK_SIZE 24 /* lowest-level "data bytes piece" */
-#define CD_NUM_OF_CHUNKS 98 /* chunks per frame */
-#define CD_FRAMESIZE_SUB 96 /* subchannel data "frame" size */
-#define CD_HEAD_SIZE 4 /* header (address) bytes per raw data frame */
-#define CD_SUBHEAD_SIZE 8 /* subheader bytes per raw XA data frame */
-#define CD_EDC_SIZE 4 /* bytes EDC per most raw data frame types */
-#define CD_ZERO_SIZE 8 /* bytes zero per yellow book mode 1 frame */
-#define CD_ECC_SIZE 276 /* bytes ECC per most raw data frame types */
-#define CD_FRAMESIZE 2048 /* bytes per frame, "cooked" mode */
-#define CD_FRAMESIZE_RAW 2352 /* bytes per frame, "raw" mode */
-#define CD_FRAMESIZE_RAWER 2646 /* The maximum possible returned bytes */
-/* most drives don't deliver everything: */
-#define CD_FRAMESIZE_RAW1 (CD_FRAMESIZE_RAW-CD_SYNC_SIZE) /*2340*/
-#define CD_FRAMESIZE_RAW0 (CD_FRAMESIZE_RAW-CD_SYNC_SIZE-CD_HEAD_SIZE) /*2336*/
-
-#define CD_XA_HEAD (CD_HEAD_SIZE+CD_SUBHEAD_SIZE) /* "before data" part of raw XA frame */
-#define CD_XA_TAIL (CD_EDC_SIZE+CD_ECC_SIZE) /* "after data" part of raw XA frame */
-#define CD_XA_SYNC_HEAD (CD_SYNC_SIZE+CD_XA_HEAD) /* sync bytes + header of XA frame */
-
-/* CD-ROM address types (cdrom_tocentry.cdte_format) */
-#define CDROM_LBA 0x01 /* "logical block": first frame is #0 */
-#define CDROM_MSF 0x02 /* "minute-second-frame": binary, not bcd here! */
-
-/* bit to tell whether track is data or audio (cdrom_tocentry.cdte_ctrl) */
-#define CDROM_DATA_TRACK 0x04
-
-/* The leadout track is always 0xAA, regardless of # of tracks on disc */
-#define CDROM_LEADOUT 0xAA
-
-/* audio states (from SCSI-2, but seen with other drives, too) */
-#define CDROM_AUDIO_INVALID 0x00 /* audio status not supported */
-#define CDROM_AUDIO_PLAY 0x11 /* audio play operation in progress */
-#define CDROM_AUDIO_PAUSED 0x12 /* audio play operation paused */
-#define CDROM_AUDIO_COMPLETED 0x13 /* audio play successfully completed */
-#define CDROM_AUDIO_ERROR 0x14 /* audio play stopped due to error */
-#define CDROM_AUDIO_NO_STATUS 0x15 /* no current audio status to return */
-
-/* capability flags used with the uniform CD-ROM driver */
-#define CDC_CLOSE_TRAY 0x1 /* caddy systems _can't_ close */
-#define CDC_OPEN_TRAY 0x2 /* but _can_ eject. */
-#define CDC_LOCK 0x4 /* disable manual eject */
-#define CDC_SELECT_SPEED 0x8 /* programmable speed */
-#define CDC_SELECT_DISC 0x10 /* select disc from juke-box */
-#define CDC_MULTI_SESSION 0x20 /* read sessions>1 */
-#define CDC_MCN 0x40 /* Medium Catalog Number */
-#define CDC_MEDIA_CHANGED 0x80 /* media changed */
-#define CDC_PLAY_AUDIO 0x100 /* audio functions */
-#define CDC_RESET 0x200 /* hard reset device */
-#define CDC_DRIVE_STATUS 0x800 /* driver implements drive status */
-#define CDC_GENERIC_PACKET 0x1000 /* driver implements generic packets */
-#define CDC_CD_R 0x2000 /* drive is a CD-R */
-#define CDC_CD_RW 0x4000 /* drive is a CD-RW */
-#define CDC_DVD 0x8000 /* drive is a DVD */
-#define CDC_DVD_R 0x10000 /* drive can write DVD-R */
-#define CDC_DVD_RAM 0x20000 /* drive can write DVD-RAM */
-#define CDC_MO_DRIVE 0x40000 /* drive is an MO device */
-#define CDC_MRW 0x80000 /* drive can read MRW */
-#define CDC_MRW_W 0x100000 /* drive can write MRW */
-#define CDC_RAM 0x200000 /* ok to open for WRITE */
-
-/* drive status possibilities returned by CDROM_DRIVE_STATUS ioctl */
-#define CDS_NO_INFO 0 /* if not implemented */
-#define CDS_NO_DISC 1
-#define CDS_TRAY_OPEN 2
-#define CDS_DRIVE_NOT_READY 3
-#define CDS_DISC_OK 4
-
-/* return values for the CDROM_DISC_STATUS ioctl */
-/* can also return CDS_NO_[INFO|DISC], from above */
-#define CDS_AUDIO 100
-#define CDS_DATA_1 101
-#define CDS_DATA_2 102
-#define CDS_XA_2_1 103
-#define CDS_XA_2_2 104
-#define CDS_MIXED 105
-
-/* User-configurable behavior options for the uniform CD-ROM driver */
-#define CDO_AUTO_CLOSE 0x1 /* close tray on first open() */
-#define CDO_AUTO_EJECT 0x2 /* open tray on last release() */
-#define CDO_USE_FFLAGS 0x4 /* use O_NONBLOCK information on open */
-#define CDO_LOCK 0x8 /* lock tray on open files */
-#define CDO_CHECK_TYPE 0x10 /* check type on open for data */
-
-/* Special codes used when specifying changer slots. */
-#define CDSL_NONE (INT_MAX-1)
-#define CDSL_CURRENT INT_MAX
-
-/* For partition based multisession access. IDE can handle 64 partitions
- * per drive - SCSI CD-ROM's use minors to differentiate between the
- * various drives, so we can't do multisessions the same way there.
- * Use the -o session=x option to mount on them.
- */
-#define CD_PART_MAX 64
-#define CD_PART_MASK (CD_PART_MAX - 1)
-
-/*********************************************************************
- * Generic Packet commands, MMC commands, and such
- *********************************************************************/
-
- /* The generic packet command opcodes for CD/DVD Logical Units,
- * From Table 57 of the SFF8090 Ver. 3 (Mt. Fuji) draft standard. */
-#define GPCMD_BLANK 0xa1
-#define GPCMD_CLOSE_TRACK 0x5b
-#define GPCMD_FLUSH_CACHE 0x35
-#define GPCMD_FORMAT_UNIT 0x04
-#define GPCMD_GET_CONFIGURATION 0x46
-#define GPCMD_GET_EVENT_STATUS_NOTIFICATION 0x4a
-#define GPCMD_GET_PERFORMANCE 0xac
-#define GPCMD_INQUIRY 0x12
-#define GPCMD_LOAD_UNLOAD 0xa6
-#define GPCMD_MECHANISM_STATUS 0xbd
-#define GPCMD_MODE_SELECT_10 0x55
-#define GPCMD_MODE_SENSE_10 0x5a
-#define GPCMD_PAUSE_RESUME 0x4b
-#define GPCMD_PLAY_AUDIO_10 0x45
-#define GPCMD_PLAY_AUDIO_MSF 0x47
-#define GPCMD_PLAY_AUDIO_TI 0x48
-#define GPCMD_PLAY_CD 0xbc
-#define GPCMD_PREVENT_ALLOW_MEDIUM_REMOVAL 0x1e
-#define GPCMD_READ_10 0x28
-#define GPCMD_READ_12 0xa8
-#define GPCMD_READ_BUFFER 0x3c
-#define GPCMD_READ_BUFFER_CAPACITY 0x5c
-#define GPCMD_READ_CDVD_CAPACITY 0x25
-#define GPCMD_READ_CD 0xbe
-#define GPCMD_READ_CD_MSF 0xb9
-#define GPCMD_READ_DISC_INFO 0x51
-#define GPCMD_READ_DVD_STRUCTURE 0xad
-#define GPCMD_READ_FORMAT_CAPACITIES 0x23
-#define GPCMD_READ_HEADER 0x44
-#define GPCMD_READ_TRACK_RZONE_INFO 0x52
-#define GPCMD_READ_SUBCHANNEL 0x42
-#define GPCMD_READ_TOC_PMA_ATIP 0x43
-#define GPCMD_REPAIR_RZONE_TRACK 0x58
-#define GPCMD_REPORT_KEY 0xa4
-#define GPCMD_REQUEST_SENSE 0x03
-#define GPCMD_RESERVE_RZONE_TRACK 0x53
-#define GPCMD_SEND_CUE_SHEET 0x5d
-#define GPCMD_SCAN 0xba
-#define GPCMD_SEEK 0x2b
-#define GPCMD_SEND_DVD_STRUCTURE 0xbf
-#define GPCMD_SEND_EVENT 0xa2
-#define GPCMD_SEND_KEY 0xa3
-#define GPCMD_SEND_OPC 0x54
-#define GPCMD_SET_READ_AHEAD 0xa7
-#define GPCMD_SET_STREAMING 0xb6
-#define GPCMD_START_STOP_UNIT 0x1b
-#define GPCMD_STOP_PLAY_SCAN 0x4e
-#define GPCMD_TEST_UNIT_READY 0x00
-#define GPCMD_VERIFY_10 0x2f
-#define GPCMD_WRITE_10 0x2a
-#define GPCMD_WRITE_12 0xaa
-#define GPCMD_WRITE_AND_VERIFY_10 0x2e
-#define GPCMD_WRITE_BUFFER 0x3b
-/* This is listed as optional in ATAPI 2.6, but is (curiously)
- * missing from Mt. Fuji, Table 57. It _is_ mentioned in Mt. Fuji
- * Table 377 as an MMC command for SCSi devices though... Most ATAPI
- * drives support it. */
-#define GPCMD_SET_SPEED 0xbb
-/* This seems to be a SCSI specific CD-ROM opcode
- * to play data at track/index */
-#define GPCMD_PLAYAUDIO_TI 0x48
-/*
- * From MS Media Status Notification Support Specification. For
- * older drives only.
- */
-#define GPCMD_GET_MEDIA_STATUS 0xda
-
-/* Mode page codes for mode sense/set */
-#define GPMODE_VENDOR_PAGE 0x00
-#define GPMODE_R_W_ERROR_PAGE 0x01
-#define GPMODE_WRITE_PARMS_PAGE 0x05
-#define GPMODE_WCACHING_PAGE 0x08
-#define GPMODE_AUDIO_CTL_PAGE 0x0e
-#define GPMODE_POWER_PAGE 0x1a
-#define GPMODE_FAULT_FAIL_PAGE 0x1c
-#define GPMODE_TO_PROTECT_PAGE 0x1d
-#define GPMODE_CAPABILITIES_PAGE 0x2a
-#define GPMODE_ALL_PAGES 0x3f
-/* Not in Mt. Fuji, but in ATAPI 2.6 -- deprecated now in favor
- * of MODE_SENSE_POWER_PAGE */
-#define GPMODE_CDROM_PAGE 0x0d
-
-
-
-/* DVD struct types */
-#define DVD_STRUCT_PHYSICAL 0x00
-#define DVD_STRUCT_COPYRIGHT 0x01
-#define DVD_STRUCT_DISCKEY 0x02
-#define DVD_STRUCT_BCA 0x03
-#define DVD_STRUCT_MANUFACT 0x04
-
-struct dvd_layer {
- __u8 book_version : 4;
- __u8 book_type : 4;
- __u8 min_rate : 4;
- __u8 disc_size : 4;
- __u8 layer_type : 4;
- __u8 track_path : 1;
- __u8 nlayers : 2;
- __u8 track_density : 4;
- __u8 linear_density : 4;
- __u8 bca : 1;
- __u32 start_sector;
- __u32 end_sector;
- __u32 end_sector_l0;
-};
-
-#define DVD_LAYERS 4
-
-struct dvd_physical {
- __u8 type;
- __u8 layer_num;
- struct dvd_layer layer[DVD_LAYERS];
-};
-
-struct dvd_copyright {
- __u8 type;
-
- __u8 layer_num;
- __u8 cpst;
- __u8 rmi;
-};
-
-struct dvd_disckey {
- __u8 type;
-
- unsigned agid : 2;
- __u8 value[2048];
-};
-
-struct dvd_bca {
- __u8 type;
-
- int len;
- __u8 value[188];
-};
-
-struct dvd_manufact {
- __u8 type;
-
- __u8 layer_num;
- int len;
- __u8 value[2048];
-};
-
-typedef union {
- __u8 type;
-
- struct dvd_physical physical;
- struct dvd_copyright copyright;
- struct dvd_disckey disckey;
- struct dvd_bca bca;
- struct dvd_manufact manufact;
-} dvd_struct;
-
-/*
- * DVD authentication ioctl
- */
-
-/* Authentication states */
-#define DVD_LU_SEND_AGID 0
-#define DVD_HOST_SEND_CHALLENGE 1
-#define DVD_LU_SEND_KEY1 2
-#define DVD_LU_SEND_CHALLENGE 3
-#define DVD_HOST_SEND_KEY2 4
-
-/* Termination states */
-#define DVD_AUTH_ESTABLISHED 5
-#define DVD_AUTH_FAILURE 6
-
-/* Other functions */
-#define DVD_LU_SEND_TITLE_KEY 7
-#define DVD_LU_SEND_ASF 8
-#define DVD_INVALIDATE_AGID 9
-#define DVD_LU_SEND_RPC_STATE 10
-#define DVD_HOST_SEND_RPC_STATE 11
-
-/* State data */
-typedef __u8 dvd_key[5]; /* 40-bit value, MSB is first elem. */
-typedef __u8 dvd_challenge[10]; /* 80-bit value, MSB is first elem. */
-
-struct dvd_lu_send_agid {
- __u8 type;
- unsigned agid : 2;
-};
-
-struct dvd_host_send_challenge {
- __u8 type;
- unsigned agid : 2;
-
- dvd_challenge chal;
-};
-
-struct dvd_send_key {
- __u8 type;
- unsigned agid : 2;
-
- dvd_key key;
-};
-
-struct dvd_lu_send_challenge {
- __u8 type;
- unsigned agid : 2;
-
- dvd_challenge chal;
-};
-
-#define DVD_CPM_NO_COPYRIGHT 0
-#define DVD_CPM_COPYRIGHTED 1
-
-#define DVD_CP_SEC_NONE 0
-#define DVD_CP_SEC_EXIST 1
-
-#define DVD_CGMS_UNRESTRICTED 0
-#define DVD_CGMS_SINGLE 2
-#define DVD_CGMS_RESTRICTED 3
-
-struct dvd_lu_send_title_key {
- __u8 type;
- unsigned agid : 2;
-
- dvd_key title_key;
- int lba;
- unsigned cpm : 1;
- unsigned cp_sec : 1;
- unsigned cgms : 2;
-};
-
-struct dvd_lu_send_asf {
- __u8 type;
- unsigned agid : 2;
-
- unsigned asf : 1;
-};
-
-struct dvd_host_send_rpcstate {
- __u8 type;
- __u8 pdrc;
-};
-
-struct dvd_lu_send_rpcstate {
- __u8 type : 2;
- __u8 vra : 3;
- __u8 ucca : 3;
- __u8 region_mask;
- __u8 rpc_scheme;
-};
-
-typedef union {
- __u8 type;
-
- struct dvd_lu_send_agid lsa;
- struct dvd_host_send_challenge hsc;
- struct dvd_send_key lsk;
- struct dvd_lu_send_challenge lsc;
- struct dvd_send_key hsk;
- struct dvd_lu_send_title_key lstk;
- struct dvd_lu_send_asf lsasf;
- struct dvd_host_send_rpcstate hrpcs;
- struct dvd_lu_send_rpcstate lrpcs;
-} dvd_authinfo;
-
-struct request_sense {
-#if defined(__BIG_ENDIAN_BITFIELD)
- __u8 valid : 1;
- __u8 error_code : 7;
-#elif defined(__LITTLE_ENDIAN_BITFIELD)
- __u8 error_code : 7;
- __u8 valid : 1;
-#endif
- __u8 segment_number;
-#if defined(__BIG_ENDIAN_BITFIELD)
- __u8 reserved1 : 2;
- __u8 ili : 1;
- __u8 reserved2 : 1;
- __u8 sense_key : 4;
-#elif defined(__LITTLE_ENDIAN_BITFIELD)
- __u8 sense_key : 4;
- __u8 reserved2 : 1;
- __u8 ili : 1;
- __u8 reserved1 : 2;
-#endif
- __u8 information[4];
- __u8 add_sense_len;
- __u8 command_info[4];
- __u8 asc;
- __u8 ascq;
- __u8 fruc;
- __u8 sks[3];
- __u8 asb[46];
-};
-
-/*
- * feature profile
- */
-#define CDF_RWRT 0x0020 /* "Random Writable" */
-#define CDF_HWDM 0x0024 /* "Hardware Defect Management" */
-#define CDF_MRW 0x0028
-
-/*
- * media status bits
- */
-#define CDM_MRW_NOTMRW 0
-#define CDM_MRW_BGFORMAT_INACTIVE 1
-#define CDM_MRW_BGFORMAT_ACTIVE 2
-#define CDM_MRW_BGFORMAT_COMPLETE 3
-
-/*
- * mrw address spaces
- */
-#define MRW_LBA_DMA 0
-#define MRW_LBA_GAA 1
-
-/*
- * mrw mode pages (first is deprecated) -- probed at init time and
- * cdi->mrw_mode_page is set
- */
-#define MRW_MODE_PC_PRE1 0x2c
-#define MRW_MODE_PC 0x03
-
-struct mrw_feature_desc {
- __be16 feature_code;
-#if defined(__BIG_ENDIAN_BITFIELD)
- __u8 reserved1 : 2;
- __u8 feature_version : 4;
- __u8 persistent : 1;
- __u8 curr : 1;
-#elif defined(__LITTLE_ENDIAN_BITFIELD)
- __u8 curr : 1;
- __u8 persistent : 1;
- __u8 feature_version : 4;
- __u8 reserved1 : 2;
-#endif
- __u8 add_len;
-#if defined(__BIG_ENDIAN_BITFIELD)
- __u8 reserved2 : 7;
- __u8 write : 1;
-#elif defined(__LITTLE_ENDIAN_BITFIELD)
- __u8 write : 1;
- __u8 reserved2 : 7;
-#endif
- __u8 reserved3;
- __u8 reserved4;
- __u8 reserved5;
-};
-
-/* cf. mmc4r02g.pdf 5.3.10 Random Writable Feature (0020h) pg 197 of 635 */
-struct rwrt_feature_desc {
- __be16 feature_code;
-#if defined(__BIG_ENDIAN_BITFIELD)
- __u8 reserved1 : 2;
- __u8 feature_version : 4;
- __u8 persistent : 1;
- __u8 curr : 1;
-#elif defined(__LITTLE_ENDIAN_BITFIELD)
- __u8 curr : 1;
- __u8 persistent : 1;
- __u8 feature_version : 4;
- __u8 reserved1 : 2;
-#endif
- __u8 add_len;
- __u32 last_lba;
- __u32 block_size;
- __u16 blocking;
-#if defined(__BIG_ENDIAN_BITFIELD)
- __u8 reserved2 : 7;
- __u8 page_present : 1;
-#elif defined(__LITTLE_ENDIAN_BITFIELD)
- __u8 page_present : 1;
- __u8 reserved2 : 7;
-#endif
- __u8 reserved3;
-};
-
-typedef struct {
- __be16 disc_information_length;
-#if defined(__BIG_ENDIAN_BITFIELD)
- __u8 reserved1 : 3;
- __u8 erasable : 1;
- __u8 border_status : 2;
- __u8 disc_status : 2;
-#elif defined(__LITTLE_ENDIAN_BITFIELD)
- __u8 disc_status : 2;
- __u8 border_status : 2;
- __u8 erasable : 1;
- __u8 reserved1 : 3;
-#else
-#error "Please fix <asm/byteorder.h>"
-#endif
- __u8 n_first_track;
- __u8 n_sessions_lsb;
- __u8 first_track_lsb;
- __u8 last_track_lsb;
-#if defined(__BIG_ENDIAN_BITFIELD)
- __u8 did_v : 1;
- __u8 dbc_v : 1;
- __u8 uru : 1;
- __u8 reserved2 : 2;
- __u8 dbit : 1;
- __u8 mrw_status : 2;
-#elif defined(__LITTLE_ENDIAN_BITFIELD)
- __u8 mrw_status : 2;
- __u8 dbit : 1;
- __u8 reserved2 : 2;
- __u8 uru : 1;
- __u8 dbc_v : 1;
- __u8 did_v : 1;
-#endif
- __u8 disc_type;
- __u8 n_sessions_msb;
- __u8 first_track_msb;
- __u8 last_track_msb;
- __u32 disc_id;
- __u32 lead_in;
- __u32 lead_out;
- __u8 disc_bar_code[8];
- __u8 reserved3;
- __u8 n_opc;
-} disc_information;
-
-typedef struct {
- __be16 track_information_length;
- __u8 track_lsb;
- __u8 session_lsb;
- __u8 reserved1;
-#if defined(__BIG_ENDIAN_BITFIELD)
- __u8 reserved2 : 2;
- __u8 damage : 1;
- __u8 copy : 1;
- __u8 track_mode : 4;
- __u8 rt : 1;
- __u8 blank : 1;
- __u8 packet : 1;
- __u8 fp : 1;
- __u8 data_mode : 4;
- __u8 reserved3 : 6;
- __u8 lra_v : 1;
- __u8 nwa_v : 1;
-#elif defined(__LITTLE_ENDIAN_BITFIELD)
- __u8 track_mode : 4;
- __u8 copy : 1;
- __u8 damage : 1;
- __u8 reserved2 : 2;
- __u8 data_mode : 4;
- __u8 fp : 1;
- __u8 packet : 1;
- __u8 blank : 1;
- __u8 rt : 1;
- __u8 nwa_v : 1;
- __u8 lra_v : 1;
- __u8 reserved3 : 6;
-#endif
- __be32 track_start;
- __be32 next_writable;
- __be32 free_blocks;
- __be32 fixed_packet_size;
- __be32 track_size;
- __be32 last_rec_address;
-} track_information;
-
-struct feature_header {
- __u32 data_len;
- __u8 reserved1;
- __u8 reserved2;
- __u16 curr_profile;
-};
-
-struct mode_page_header {
- __be16 mode_data_length;
- __u8 medium_type;
- __u8 reserved1;
- __u8 reserved2;
- __u8 reserved3;
- __be16 desc_length;
-};
-
-#ifdef __KERNEL__
-#include <linux/fs.h> /* not really needed, later.. */
-#include <linux/list.h>
-
-struct packet_command
-{
- unsigned char cmd[CDROM_PACKET_SIZE];
- unsigned char *buffer;
- unsigned int buflen;
- int stat;
- struct request_sense *sense;
- unsigned char data_direction;
- int quiet;
- int timeout;
- void *reserved[1];
-};
-
-/*
- * _OLD will use PIO transfer on atapi devices, _BPC_* will use DMA
- */
-#define CDDA_OLD 0 /* old style */
-#define CDDA_BPC_SINGLE 1 /* single frame block pc */
-#define CDDA_BPC_FULL 2 /* multi frame block pc */
-
-/* Uniform cdrom data structures for cdrom.c */
-struct cdrom_device_info {
- struct cdrom_device_ops *ops; /* link to device_ops */
- struct list_head list; /* linked list of all device_info */
- struct gendisk *disk; /* matching block layer disk */
- void *handle; /* driver-dependent data */
-/* specifications */
- int mask; /* mask of capability: disables them */
- int speed; /* maximum speed for reading data */
- int capacity; /* number of discs in jukebox */
-/* device-related storage */
- unsigned int options : 30; /* options flags */
- unsigned mc_flags : 2; /* media change buffer flags */
- unsigned int vfs_events; /* cached events for vfs path */
- unsigned int ioctl_events; /* cached events for ioctl path */
- int use_count; /* number of times device opened */
- char name[20]; /* name of the device type */
-/* per-device flags */
- __u8 sanyo_slot : 2; /* Sanyo 3 CD changer support */
- __u8 keeplocked : 1; /* CDROM_LOCKDOOR status */
- __u8 reserved : 5; /* not used yet */
- int cdda_method; /* see flags */
- __u8 last_sense;
- __u8 media_written; /* dirty flag, DVD+RW bookkeeping */
- unsigned short mmc3_profile; /* current MMC3 profile */
- int for_data;
- int (*exit)(struct cdrom_device_info *);
- int mrw_mode_page;
-};
-
-struct cdrom_device_ops {
-/* routines */
- int (*open) (struct cdrom_device_info *, int);
- void (*release) (struct cdrom_device_info *);
- int (*drive_status) (struct cdrom_device_info *, int);
- unsigned int (*check_events) (struct cdrom_device_info *cdi,
- unsigned int clearing, int slot);
- int (*media_changed) (struct cdrom_device_info *, int);
- int (*tray_move) (struct cdrom_device_info *, int);
- int (*lock_door) (struct cdrom_device_info *, int);
- int (*select_speed) (struct cdrom_device_info *, int);
- int (*select_disc) (struct cdrom_device_info *, int);
- int (*get_last_session) (struct cdrom_device_info *,
- struct cdrom_multisession *);
- int (*get_mcn) (struct cdrom_device_info *,
- struct cdrom_mcn *);
- /* hard reset device */
- int (*reset) (struct cdrom_device_info *);
- /* play stuff */
- int (*audio_ioctl) (struct cdrom_device_info *,unsigned int, void *);
-
-/* driver specifications */
- const int capability; /* capability flags */
- int n_minors; /* number of active minor devices */
- /* handle uniform packets for scsi type devices (scsi,atapi) */
- int (*generic_packet) (struct cdrom_device_info *,
- struct packet_command *);
-};
-
-/* the general block_device operations structure: */
-extern int cdrom_open(struct cdrom_device_info *cdi, struct block_device *bdev,
- fmode_t mode);
-extern void cdrom_release(struct cdrom_device_info *cdi, fmode_t mode);
-extern int cdrom_ioctl(struct cdrom_device_info *cdi, struct block_device *bdev,
- fmode_t mode, unsigned int cmd, unsigned long arg);
-extern unsigned int cdrom_check_events(struct cdrom_device_info *cdi,
- unsigned int clearing);
-extern int cdrom_media_changed(struct cdrom_device_info *);
-
-extern int register_cdrom(struct cdrom_device_info *cdi);
-extern void unregister_cdrom(struct cdrom_device_info *cdi);
-
-typedef struct {
- int data;
- int audio;
- int cdi;
- int xa;
- long error;
-} tracktype;
-
-extern int cdrom_get_last_written(struct cdrom_device_info *cdi, long *last_written);
-extern int cdrom_number_of_slots(struct cdrom_device_info *cdi);
-extern int cdrom_mode_select(struct cdrom_device_info *cdi,
- struct packet_command *cgc);
-extern int cdrom_mode_sense(struct cdrom_device_info *cdi,
- struct packet_command *cgc,
- int page_code, int page_control);
-extern void init_cdrom_command(struct packet_command *cgc,
- void *buffer, int len, int type);
-
-/* The SCSI spec says there could be 256 slots. */
-#define CDROM_MAX_SLOTS 256
-
-struct cdrom_mechstat_header {
-#if defined(__BIG_ENDIAN_BITFIELD)
- __u8 fault : 1;
- __u8 changer_state : 2;
- __u8 curslot : 5;
- __u8 mech_state : 3;
- __u8 door_open : 1;
- __u8 reserved1 : 4;
-#elif defined(__LITTLE_ENDIAN_BITFIELD)
- __u8 curslot : 5;
- __u8 changer_state : 2;
- __u8 fault : 1;
- __u8 reserved1 : 4;
- __u8 door_open : 1;
- __u8 mech_state : 3;
-#endif
- __u8 curlba[3];
- __u8 nslots;
- __u16 slot_tablelen;
-};
-
-struct cdrom_slot {
-#if defined(__BIG_ENDIAN_BITFIELD)
- __u8 disc_present : 1;
- __u8 reserved1 : 6;
- __u8 change : 1;
-#elif defined(__LITTLE_ENDIAN_BITFIELD)
- __u8 change : 1;
- __u8 reserved1 : 6;
- __u8 disc_present : 1;
-#endif
- __u8 reserved2[3];
-};
-
-struct cdrom_changer_info {
- struct cdrom_mechstat_header hdr;
- struct cdrom_slot slots[CDROM_MAX_SLOTS];
-};
-
-typedef enum {
- mechtype_caddy = 0,
- mechtype_tray = 1,
- mechtype_popup = 2,
- mechtype_individual_changer = 4,
- mechtype_cartridge_changer = 5
-} mechtype_t;
-
-typedef struct {
-#if defined(__BIG_ENDIAN_BITFIELD)
- __u8 ps : 1;
- __u8 reserved1 : 1;
- __u8 page_code : 6;
- __u8 page_length;
- __u8 reserved2 : 1;
- __u8 bufe : 1;
- __u8 ls_v : 1;
- __u8 test_write : 1;
- __u8 write_type : 4;
- __u8 multi_session : 2; /* or border, DVD */
- __u8 fp : 1;
- __u8 copy : 1;
- __u8 track_mode : 4;
- __u8 reserved3 : 4;
- __u8 data_block_type : 4;
-#elif defined(__LITTLE_ENDIAN_BITFIELD)
- __u8 page_code : 6;
- __u8 reserved1 : 1;
- __u8 ps : 1;
- __u8 page_length;
- __u8 write_type : 4;
- __u8 test_write : 1;
- __u8 ls_v : 1;
- __u8 bufe : 1;
- __u8 reserved2 : 1;
- __u8 track_mode : 4;
- __u8 copy : 1;
- __u8 fp : 1;
- __u8 multi_session : 2; /* or border, DVD */
- __u8 data_block_type : 4;
- __u8 reserved3 : 4;
-#endif
- __u8 link_size;
- __u8 reserved4;
-#if defined(__BIG_ENDIAN_BITFIELD)
- __u8 reserved5 : 2;
- __u8 app_code : 6;
-#elif defined(__LITTLE_ENDIAN_BITFIELD)
- __u8 app_code : 6;
- __u8 reserved5 : 2;
-#endif
- __u8 session_format;
- __u8 reserved6;
- __be32 packet_size;
- __u16 audio_pause;
- __u8 mcn[16];
- __u8 isrc[16];
- __u8 subhdr0;
- __u8 subhdr1;
- __u8 subhdr2;
- __u8 subhdr3;
-} __attribute__((packed)) write_param_page;
-
-struct modesel_head
-{
- __u8 reserved1;
- __u8 medium;
- __u8 reserved2;
- __u8 block_desc_length;
- __u8 density;
- __u8 number_of_blocks_hi;
- __u8 number_of_blocks_med;
- __u8 number_of_blocks_lo;
- __u8 reserved3;
- __u8 block_length_hi;
- __u8 block_length_med;
- __u8 block_length_lo;
-};
-
-typedef struct {
- __u16 report_key_length;
- __u8 reserved1;
- __u8 reserved2;
-#if defined(__BIG_ENDIAN_BITFIELD)
- __u8 type_code : 2;
- __u8 vra : 3;
- __u8 ucca : 3;
-#elif defined(__LITTLE_ENDIAN_BITFIELD)
- __u8 ucca : 3;
- __u8 vra : 3;
- __u8 type_code : 2;
-#endif
- __u8 region_mask;
- __u8 rpc_scheme;
- __u8 reserved3;
-} rpc_state_t;
-
-struct event_header {
- __be16 data_len;
-#if defined(__BIG_ENDIAN_BITFIELD)
- __u8 nea : 1;
- __u8 reserved1 : 4;
- __u8 notification_class : 3;
-#elif defined(__LITTLE_ENDIAN_BITFIELD)
- __u8 notification_class : 3;
- __u8 reserved1 : 4;
- __u8 nea : 1;
-#endif
- __u8 supp_event_class;
-};
-
-struct media_event_desc {
-#if defined(__BIG_ENDIAN_BITFIELD)
- __u8 reserved1 : 4;
- __u8 media_event_code : 4;
- __u8 reserved2 : 6;
- __u8 media_present : 1;
- __u8 door_open : 1;
-#elif defined(__LITTLE_ENDIAN_BITFIELD)
- __u8 media_event_code : 4;
- __u8 reserved1 : 4;
- __u8 door_open : 1;
- __u8 media_present : 1;
- __u8 reserved2 : 6;
-#endif
- __u8 start_slot;
- __u8 end_slot;
-};
-
-extern int cdrom_get_media_event(struct cdrom_device_info *cdi, struct media_event_desc *med);
-
-static inline void lba_to_msf(int lba, u8 *m, u8 *s, u8 *f)
-{
- lba += CD_MSF_OFFSET;
- lba &= 0xffffff; /* negative lbas use only 24 bits */
- *m = lba / (CD_SECS * CD_FRAMES);
- lba %= (CD_SECS * CD_FRAMES);
- *s = lba / CD_FRAMES;
- *f = lba % CD_FRAMES;
-}
-
-static inline int msf_to_lba(u8 m, u8 s, u8 f)
-{
- return (((m * CD_SECS) + s) * CD_FRAMES + f) - CD_MSF_OFFSET;
-}
-#endif /* End of kernel only stuff */
-
-#endif /* _LINUX_CDROM_H */
diff --git a/ANDROID_3.4.5/include/linux/ceph/auth.h b/ANDROID_3.4.5/include/linux/ceph/auth.h
deleted file mode 100644
index aa13392a..00000000
--- a/ANDROID_3.4.5/include/linux/ceph/auth.h
+++ /dev/null
@@ -1,92 +0,0 @@
-#ifndef _FS_CEPH_AUTH_H
-#define _FS_CEPH_AUTH_H
-
-#include <linux/ceph/types.h>
-#include <linux/ceph/buffer.h>
-
-/*
- * Abstract interface for communicating with the authenticate module.
- * There is some handshake that takes place between us and the monitor
- * to acquire the necessary keys. These are used to generate an
- * 'authorizer' that we use when connecting to a service (mds, osd).
- */
-
-struct ceph_auth_client;
-struct ceph_authorizer;
-
-struct ceph_auth_client_ops {
- const char *name;
-
- /*
- * true if we are authenticated and can connect to
- * services.
- */
- int (*is_authenticated)(struct ceph_auth_client *ac);
-
- /*
- * true if we should (re)authenticate, e.g., when our tickets
- * are getting old and crusty.
- */
- int (*should_authenticate)(struct ceph_auth_client *ac);
-
- /*
- * build requests and process replies during monitor
- * handshake. if handle_reply returns -EAGAIN, we build
- * another request.
- */
- int (*build_request)(struct ceph_auth_client *ac, void *buf, void *end);
- int (*handle_reply)(struct ceph_auth_client *ac, int result,
- void *buf, void *end);
-
- /*
- * Create authorizer for connecting to a service, and verify
- * the response to authenticate the service.
- */
- int (*create_authorizer)(struct ceph_auth_client *ac, int peer_type,
- struct ceph_authorizer **a,
- void **buf, size_t *len,
- void **reply_buf, size_t *reply_len);
- int (*verify_authorizer_reply)(struct ceph_auth_client *ac,
- struct ceph_authorizer *a, size_t len);
- void (*destroy_authorizer)(struct ceph_auth_client *ac,
- struct ceph_authorizer *a);
- void (*invalidate_authorizer)(struct ceph_auth_client *ac,
- int peer_type);
-
- /* reset when we (re)connect to a monitor */
- void (*reset)(struct ceph_auth_client *ac);
-
- void (*destroy)(struct ceph_auth_client *ac);
-};
-
-struct ceph_auth_client {
- u32 protocol; /* CEPH_AUTH_* */
- void *private; /* for use by protocol implementation */
- const struct ceph_auth_client_ops *ops; /* null iff protocol==0 */
-
- bool negotiating; /* true if negotiating protocol */
- const char *name; /* entity name */
- u64 global_id; /* our unique id in system */
- const struct ceph_crypto_key *key; /* our secret key */
- unsigned want_keys; /* which services we want */
-};
-
-extern struct ceph_auth_client *ceph_auth_init(const char *name,
- const struct ceph_crypto_key *key);
-extern void ceph_auth_destroy(struct ceph_auth_client *ac);
-
-extern void ceph_auth_reset(struct ceph_auth_client *ac);
-
-extern int ceph_auth_build_hello(struct ceph_auth_client *ac,
- void *buf, size_t len);
-extern int ceph_handle_auth_reply(struct ceph_auth_client *ac,
- void *buf, size_t len,
- void *reply_buf, size_t reply_len);
-extern int ceph_entity_name_encode(const char *name, void **p, void *end);
-
-extern int ceph_build_auth(struct ceph_auth_client *ac,
- void *msg_buf, size_t msg_len);
-
-extern int ceph_auth_is_authenticated(struct ceph_auth_client *ac);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ceph/buffer.h b/ANDROID_3.4.5/include/linux/ceph/buffer.h
deleted file mode 100644
index 58d19014..00000000
--- a/ANDROID_3.4.5/include/linux/ceph/buffer.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef __FS_CEPH_BUFFER_H
-#define __FS_CEPH_BUFFER_H
-
-#include <linux/kref.h>
-#include <linux/mm.h>
-#include <linux/vmalloc.h>
-#include <linux/types.h>
-#include <linux/uio.h>
-
-/*
- * a simple reference counted buffer.
- *
- * use kmalloc for small sizes (<= one page), vmalloc for larger
- * sizes.
- */
-struct ceph_buffer {
- struct kref kref;
- struct kvec vec;
- size_t alloc_len;
- bool is_vmalloc;
-};
-
-extern struct ceph_buffer *ceph_buffer_new(size_t len, gfp_t gfp);
-extern void ceph_buffer_release(struct kref *kref);
-
-static inline struct ceph_buffer *ceph_buffer_get(struct ceph_buffer *b)
-{
- kref_get(&b->kref);
- return b;
-}
-
-static inline void ceph_buffer_put(struct ceph_buffer *b)
-{
- kref_put(&b->kref, ceph_buffer_release);
-}
-
-extern int ceph_decode_buffer(struct ceph_buffer **b, void **p, void *end);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ceph/ceph_debug.h b/ANDROID_3.4.5/include/linux/ceph/ceph_debug.h
deleted file mode 100644
index aa2e1918..00000000
--- a/ANDROID_3.4.5/include/linux/ceph/ceph_debug.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef _FS_CEPH_DEBUG_H
-#define _FS_CEPH_DEBUG_H
-
-#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-
-#ifdef CONFIG_CEPH_LIB_PRETTYDEBUG
-
-/*
- * wrap pr_debug to include a filename:lineno prefix on each line.
- * this incurs some overhead (kernel size and execution time) due to
- * the extra function call at each call site.
- */
-
-# if defined(DEBUG) || defined(CONFIG_DYNAMIC_DEBUG)
-extern const char *ceph_file_part(const char *s, int len);
-# define dout(fmt, ...) \
- pr_debug("%.*s %12.12s:%-4d : " fmt, \
- 8 - (int)sizeof(KBUILD_MODNAME), " ", \
- ceph_file_part(__FILE__, sizeof(__FILE__)), \
- __LINE__, ##__VA_ARGS__)
-# else
-/* faux printk call just to see any compiler warnings. */
-# define dout(fmt, ...) do { \
- if (0) \
- printk(KERN_DEBUG fmt, ##__VA_ARGS__); \
- } while (0)
-# endif
-
-#else
-
-/*
- * or, just wrap pr_debug
- */
-# define dout(fmt, ...) pr_debug(" " fmt, ##__VA_ARGS__)
-
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ceph/ceph_frag.h b/ANDROID_3.4.5/include/linux/ceph/ceph_frag.h
deleted file mode 100644
index 5babb8e9..00000000
--- a/ANDROID_3.4.5/include/linux/ceph/ceph_frag.h
+++ /dev/null
@@ -1,109 +0,0 @@
-#ifndef FS_CEPH_FRAG_H
-#define FS_CEPH_FRAG_H
-
-/*
- * "Frags" are a way to describe a subset of a 32-bit number space,
- * using a mask and a value to match against that mask. Any given frag
- * (subset of the number space) can be partitioned into 2^n sub-frags.
- *
- * Frags are encoded into a 32-bit word:
- * 8 upper bits = "bits"
- * 24 lower bits = "value"
- * (We could go to 5+27 bits, but who cares.)
- *
- * We use the _most_ significant bits of the 24 bit value. This makes
- * values logically sort.
- *
- * Unfortunately, because the "bits" field is still in the high bits, we
- * can't sort encoded frags numerically. However, it does allow you
- * to feed encoded frags as values into frag_contains_value.
- */
-static inline __u32 ceph_frag_make(__u32 b, __u32 v)
-{
- return (b << 24) |
- (v & (0xffffffu << (24-b)) & 0xffffffu);
-}
-static inline __u32 ceph_frag_bits(__u32 f)
-{
- return f >> 24;
-}
-static inline __u32 ceph_frag_value(__u32 f)
-{
- return f & 0xffffffu;
-}
-static inline __u32 ceph_frag_mask(__u32 f)
-{
- return (0xffffffu << (24-ceph_frag_bits(f))) & 0xffffffu;
-}
-static inline __u32 ceph_frag_mask_shift(__u32 f)
-{
- return 24 - ceph_frag_bits(f);
-}
-
-static inline int ceph_frag_contains_value(__u32 f, __u32 v)
-{
- return (v & ceph_frag_mask(f)) == ceph_frag_value(f);
-}
-static inline int ceph_frag_contains_frag(__u32 f, __u32 sub)
-{
- /* is sub as specific as us, and contained by us? */
- return ceph_frag_bits(sub) >= ceph_frag_bits(f) &&
- (ceph_frag_value(sub) & ceph_frag_mask(f)) == ceph_frag_value(f);
-}
-
-static inline __u32 ceph_frag_parent(__u32 f)
-{
- return ceph_frag_make(ceph_frag_bits(f) - 1,
- ceph_frag_value(f) & (ceph_frag_mask(f) << 1));
-}
-static inline int ceph_frag_is_left_child(__u32 f)
-{
- return ceph_frag_bits(f) > 0 &&
- (ceph_frag_value(f) & (0x1000000 >> ceph_frag_bits(f))) == 0;
-}
-static inline int ceph_frag_is_right_child(__u32 f)
-{
- return ceph_frag_bits(f) > 0 &&
- (ceph_frag_value(f) & (0x1000000 >> ceph_frag_bits(f))) == 1;
-}
-static inline __u32 ceph_frag_sibling(__u32 f)
-{
- return ceph_frag_make(ceph_frag_bits(f),
- ceph_frag_value(f) ^ (0x1000000 >> ceph_frag_bits(f)));
-}
-static inline __u32 ceph_frag_left_child(__u32 f)
-{
- return ceph_frag_make(ceph_frag_bits(f)+1, ceph_frag_value(f));
-}
-static inline __u32 ceph_frag_right_child(__u32 f)
-{
- return ceph_frag_make(ceph_frag_bits(f)+1,
- ceph_frag_value(f) | (0x1000000 >> (1+ceph_frag_bits(f))));
-}
-static inline __u32 ceph_frag_make_child(__u32 f, int by, int i)
-{
- int newbits = ceph_frag_bits(f) + by;
- return ceph_frag_make(newbits,
- ceph_frag_value(f) | (i << (24 - newbits)));
-}
-static inline int ceph_frag_is_leftmost(__u32 f)
-{
- return ceph_frag_value(f) == 0;
-}
-static inline int ceph_frag_is_rightmost(__u32 f)
-{
- return ceph_frag_value(f) == ceph_frag_mask(f);
-}
-static inline __u32 ceph_frag_next(__u32 f)
-{
- return ceph_frag_make(ceph_frag_bits(f),
- ceph_frag_value(f) + (0x1000000 >> ceph_frag_bits(f)));
-}
-
-/*
- * comparator to sort frags logically, as when traversing the
- * number space in ascending order...
- */
-int ceph_frag_compare(__u32 a, __u32 b);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ceph/ceph_fs.h b/ANDROID_3.4.5/include/linux/ceph/ceph_fs.h
deleted file mode 100644
index b8c60694..00000000
--- a/ANDROID_3.4.5/include/linux/ceph/ceph_fs.h
+++ /dev/null
@@ -1,751 +0,0 @@
-/*
- * ceph_fs.h - Ceph constants and data types to share between kernel and
- * user space.
- *
- * Most types in this file are defined as little-endian, and are
- * primarily intended to describe data structures that pass over the
- * wire or that are stored on disk.
- *
- * LGPL2
- */
-
-#ifndef CEPH_FS_H
-#define CEPH_FS_H
-
-#include "msgr.h"
-#include "rados.h"
-
-/*
- * subprotocol versions. when specific messages types or high-level
- * protocols change, bump the affected components. we keep rev
- * internal cluster protocols separately from the public,
- * client-facing protocol.
- */
-#define CEPH_OSD_PROTOCOL 8 /* cluster internal */
-#define CEPH_MDS_PROTOCOL 12 /* cluster internal */
-#define CEPH_MON_PROTOCOL 5 /* cluster internal */
-#define CEPH_OSDC_PROTOCOL 24 /* server/client */
-#define CEPH_MDSC_PROTOCOL 32 /* server/client */
-#define CEPH_MONC_PROTOCOL 15 /* server/client */
-
-
-#define CEPH_INO_ROOT 1
-#define CEPH_INO_CEPH 2 /* hidden .ceph dir */
-
-/* arbitrary limit on max # of monitors (cluster of 3 is typical) */
-#define CEPH_MAX_MON 31
-
-
-/*
- * feature bits
- */
-#define CEPH_FEATURE_UID (1<<0)
-#define CEPH_FEATURE_NOSRCADDR (1<<1)
-#define CEPH_FEATURE_MONCLOCKCHECK (1<<2)
-#define CEPH_FEATURE_FLOCK (1<<3)
-#define CEPH_FEATURE_SUBSCRIBE2 (1<<4)
-#define CEPH_FEATURE_MONNAMES (1<<5)
-#define CEPH_FEATURE_RECONNECT_SEQ (1<<6)
-#define CEPH_FEATURE_DIRLAYOUTHASH (1<<7)
-
-
-/*
- * ceph_file_layout - describe data layout for a file/inode
- */
-struct ceph_file_layout {
- /* file -> object mapping */
- __le32 fl_stripe_unit; /* stripe unit, in bytes. must be multiple
- of page size. */
- __le32 fl_stripe_count; /* over this many objects */
- __le32 fl_object_size; /* until objects are this big, then move to
- new objects */
- __le32 fl_cas_hash; /* UNUSED. 0 = none; 1 = sha256 */
-
- /* pg -> disk layout */
- __le32 fl_object_stripe_unit; /* UNUSED. for per-object parity, if any */
-
- /* object -> pg layout */
- __le32 fl_pg_preferred; /* preferred primary for pg (-1 for none) */
- __le32 fl_pg_pool; /* namespace, crush ruleset, rep level */
-} __attribute__ ((packed));
-
-#define CEPH_MIN_STRIPE_UNIT 65536
-
-int ceph_file_layout_is_valid(const struct ceph_file_layout *layout);
-
-struct ceph_dir_layout {
- __u8 dl_dir_hash; /* see ceph_hash.h for ids */
- __u8 dl_unused1;
- __u16 dl_unused2;
- __u32 dl_unused3;
-} __attribute__ ((packed));
-
-/* crypto algorithms */
-#define CEPH_CRYPTO_NONE 0x0
-#define CEPH_CRYPTO_AES 0x1
-
-#define CEPH_AES_IV "cephsageyudagreg"
-
-/* security/authentication protocols */
-#define CEPH_AUTH_UNKNOWN 0x0
-#define CEPH_AUTH_NONE 0x1
-#define CEPH_AUTH_CEPHX 0x2
-
-#define CEPH_AUTH_UID_DEFAULT ((__u64) -1)
-
-
-/*********************************************
- * message layer
- */
-
-/*
- * message types
- */
-
-/* misc */
-#define CEPH_MSG_SHUTDOWN 1
-#define CEPH_MSG_PING 2
-
-/* client <-> monitor */
-#define CEPH_MSG_MON_MAP 4
-#define CEPH_MSG_MON_GET_MAP 5
-#define CEPH_MSG_STATFS 13
-#define CEPH_MSG_STATFS_REPLY 14
-#define CEPH_MSG_MON_SUBSCRIBE 15
-#define CEPH_MSG_MON_SUBSCRIBE_ACK 16
-#define CEPH_MSG_AUTH 17
-#define CEPH_MSG_AUTH_REPLY 18
-
-/* client <-> mds */
-#define CEPH_MSG_MDS_MAP 21
-
-#define CEPH_MSG_CLIENT_SESSION 22
-#define CEPH_MSG_CLIENT_RECONNECT 23
-
-#define CEPH_MSG_CLIENT_REQUEST 24
-#define CEPH_MSG_CLIENT_REQUEST_FORWARD 25
-#define CEPH_MSG_CLIENT_REPLY 26
-#define CEPH_MSG_CLIENT_CAPS 0x310
-#define CEPH_MSG_CLIENT_LEASE 0x311
-#define CEPH_MSG_CLIENT_SNAP 0x312
-#define CEPH_MSG_CLIENT_CAPRELEASE 0x313
-
-/* pool ops */
-#define CEPH_MSG_POOLOP_REPLY 48
-#define CEPH_MSG_POOLOP 49
-
-
-/* osd */
-#define CEPH_MSG_OSD_MAP 41
-#define CEPH_MSG_OSD_OP 42
-#define CEPH_MSG_OSD_OPREPLY 43
-#define CEPH_MSG_WATCH_NOTIFY 44
-
-
-/* watch-notify operations */
-enum {
- WATCH_NOTIFY = 1, /* notifying watcher */
- WATCH_NOTIFY_COMPLETE = 2, /* notifier notified when done */
-};
-
-
-/* pool operations */
-enum {
- POOL_OP_CREATE = 0x01,
- POOL_OP_DELETE = 0x02,
- POOL_OP_AUID_CHANGE = 0x03,
- POOL_OP_CREATE_SNAP = 0x11,
- POOL_OP_DELETE_SNAP = 0x12,
- POOL_OP_CREATE_UNMANAGED_SNAP = 0x21,
- POOL_OP_DELETE_UNMANAGED_SNAP = 0x22,
-};
-
-struct ceph_mon_request_header {
- __le64 have_version;
- __le16 session_mon;
- __le64 session_mon_tid;
-} __attribute__ ((packed));
-
-struct ceph_mon_statfs {
- struct ceph_mon_request_header monhdr;
- struct ceph_fsid fsid;
-} __attribute__ ((packed));
-
-struct ceph_statfs {
- __le64 kb, kb_used, kb_avail;
- __le64 num_objects;
-} __attribute__ ((packed));
-
-struct ceph_mon_statfs_reply {
- struct ceph_fsid fsid;
- __le64 version;
- struct ceph_statfs st;
-} __attribute__ ((packed));
-
-const char *ceph_pool_op_name(int op);
-
-struct ceph_mon_poolop {
- struct ceph_mon_request_header monhdr;
- struct ceph_fsid fsid;
- __le32 pool;
- __le32 op;
- __le64 auid;
- __le64 snapid;
- __le32 name_len;
-} __attribute__ ((packed));
-
-struct ceph_mon_poolop_reply {
- struct ceph_mon_request_header monhdr;
- struct ceph_fsid fsid;
- __le32 reply_code;
- __le32 epoch;
- char has_data;
- char data[0];
-} __attribute__ ((packed));
-
-struct ceph_mon_unmanaged_snap {
- __le64 snapid;
-} __attribute__ ((packed));
-
-struct ceph_osd_getmap {
- struct ceph_mon_request_header monhdr;
- struct ceph_fsid fsid;
- __le32 start;
-} __attribute__ ((packed));
-
-struct ceph_mds_getmap {
- struct ceph_mon_request_header monhdr;
- struct ceph_fsid fsid;
-} __attribute__ ((packed));
-
-struct ceph_client_mount {
- struct ceph_mon_request_header monhdr;
-} __attribute__ ((packed));
-
-#define CEPH_SUBSCRIBE_ONETIME 1 /* i want only 1 update after have */
-
-struct ceph_mon_subscribe_item {
- __le64 have_version; __le64 have;
- __u8 onetime;
-} __attribute__ ((packed));
-
-struct ceph_mon_subscribe_ack {
- __le32 duration; /* seconds */
- struct ceph_fsid fsid;
-} __attribute__ ((packed));
-
-/*
- * mds states
- * > 0 -> in
- * <= 0 -> out
- */
-#define CEPH_MDS_STATE_DNE 0 /* down, does not exist. */
-#define CEPH_MDS_STATE_STOPPED -1 /* down, once existed, but no subtrees.
- empty log. */
-#define CEPH_MDS_STATE_BOOT -4 /* up, boot announcement. */
-#define CEPH_MDS_STATE_STANDBY -5 /* up, idle. waiting for assignment. */
-#define CEPH_MDS_STATE_CREATING -6 /* up, creating MDS instance. */
-#define CEPH_MDS_STATE_STARTING -7 /* up, starting previously stopped mds */
-#define CEPH_MDS_STATE_STANDBY_REPLAY -8 /* up, tailing active node's journal */
-
-#define CEPH_MDS_STATE_REPLAY 8 /* up, replaying journal. */
-#define CEPH_MDS_STATE_RESOLVE 9 /* up, disambiguating distributed
- operations (import, rename, etc.) */
-#define CEPH_MDS_STATE_RECONNECT 10 /* up, reconnect to clients */
-#define CEPH_MDS_STATE_REJOIN 11 /* up, rejoining distributed cache */
-#define CEPH_MDS_STATE_CLIENTREPLAY 12 /* up, replaying client operations */
-#define CEPH_MDS_STATE_ACTIVE 13 /* up, active */
-#define CEPH_MDS_STATE_STOPPING 14 /* up, but exporting metadata */
-
-extern const char *ceph_mds_state_name(int s);
-
-
-/*
- * metadata lock types.
- * - these are bitmasks.. we can compose them
- * - they also define the lock ordering by the MDS
- * - a few of these are internal to the mds
- */
-#define CEPH_LOCK_DVERSION 1
-#define CEPH_LOCK_DN 2
-#define CEPH_LOCK_ISNAP 16
-#define CEPH_LOCK_IVERSION 32 /* mds internal */
-#define CEPH_LOCK_IFILE 64
-#define CEPH_LOCK_IAUTH 128
-#define CEPH_LOCK_ILINK 256
-#define CEPH_LOCK_IDFT 512 /* dir frag tree */
-#define CEPH_LOCK_INEST 1024 /* mds internal */
-#define CEPH_LOCK_IXATTR 2048
-#define CEPH_LOCK_IFLOCK 4096 /* advisory file locks */
-#define CEPH_LOCK_INO 8192 /* immutable inode bits; not a lock */
-
-/* client_session ops */
-enum {
- CEPH_SESSION_REQUEST_OPEN,
- CEPH_SESSION_OPEN,
- CEPH_SESSION_REQUEST_CLOSE,
- CEPH_SESSION_CLOSE,
- CEPH_SESSION_REQUEST_RENEWCAPS,
- CEPH_SESSION_RENEWCAPS,
- CEPH_SESSION_STALE,
- CEPH_SESSION_RECALL_STATE,
-};
-
-extern const char *ceph_session_op_name(int op);
-
-struct ceph_mds_session_head {
- __le32 op;
- __le64 seq;
- struct ceph_timespec stamp;
- __le32 max_caps, max_leases;
-} __attribute__ ((packed));
-
-/* client_request */
-/*
- * metadata ops.
- * & 0x001000 -> write op
- * & 0x010000 -> follow symlink (e.g. stat(), not lstat()).
- & & 0x100000 -> use weird ino/path trace
- */
-#define CEPH_MDS_OP_WRITE 0x001000
-enum {
- CEPH_MDS_OP_LOOKUP = 0x00100,
- CEPH_MDS_OP_GETATTR = 0x00101,
- CEPH_MDS_OP_LOOKUPHASH = 0x00102,
- CEPH_MDS_OP_LOOKUPPARENT = 0x00103,
- CEPH_MDS_OP_LOOKUPINO = 0x00104,
-
- CEPH_MDS_OP_SETXATTR = 0x01105,
- CEPH_MDS_OP_RMXATTR = 0x01106,
- CEPH_MDS_OP_SETLAYOUT = 0x01107,
- CEPH_MDS_OP_SETATTR = 0x01108,
- CEPH_MDS_OP_SETFILELOCK= 0x01109,
- CEPH_MDS_OP_GETFILELOCK= 0x00110,
- CEPH_MDS_OP_SETDIRLAYOUT=0x0110a,
-
- CEPH_MDS_OP_MKNOD = 0x01201,
- CEPH_MDS_OP_LINK = 0x01202,
- CEPH_MDS_OP_UNLINK = 0x01203,
- CEPH_MDS_OP_RENAME = 0x01204,
- CEPH_MDS_OP_MKDIR = 0x01220,
- CEPH_MDS_OP_RMDIR = 0x01221,
- CEPH_MDS_OP_SYMLINK = 0x01222,
-
- CEPH_MDS_OP_CREATE = 0x01301,
- CEPH_MDS_OP_OPEN = 0x00302,
- CEPH_MDS_OP_READDIR = 0x00305,
-
- CEPH_MDS_OP_LOOKUPSNAP = 0x00400,
- CEPH_MDS_OP_MKSNAP = 0x01400,
- CEPH_MDS_OP_RMSNAP = 0x01401,
- CEPH_MDS_OP_LSSNAP = 0x00402,
-};
-
-extern const char *ceph_mds_op_name(int op);
-
-
-#define CEPH_SETATTR_MODE 1
-#define CEPH_SETATTR_UID 2
-#define CEPH_SETATTR_GID 4
-#define CEPH_SETATTR_MTIME 8
-#define CEPH_SETATTR_ATIME 16
-#define CEPH_SETATTR_SIZE 32
-#define CEPH_SETATTR_CTIME 64
-
-union ceph_mds_request_args {
- struct {
- __le32 mask; /* CEPH_CAP_* */
- } __attribute__ ((packed)) getattr;
- struct {
- __le32 mode;
- __le32 uid;
- __le32 gid;
- struct ceph_timespec mtime;
- struct ceph_timespec atime;
- __le64 size, old_size; /* old_size needed by truncate */
- __le32 mask; /* CEPH_SETATTR_* */
- } __attribute__ ((packed)) setattr;
- struct {
- __le32 frag; /* which dir fragment */
- __le32 max_entries; /* how many dentries to grab */
- __le32 max_bytes;
- } __attribute__ ((packed)) readdir;
- struct {
- __le32 mode;
- __le32 rdev;
- } __attribute__ ((packed)) mknod;
- struct {
- __le32 mode;
- } __attribute__ ((packed)) mkdir;
- struct {
- __le32 flags;
- __le32 mode;
- __le32 stripe_unit; /* layout for newly created file */
- __le32 stripe_count; /* ... */
- __le32 object_size;
- __le32 file_replication;
- __le32 preferred;
- } __attribute__ ((packed)) open;
- struct {
- __le32 flags;
- } __attribute__ ((packed)) setxattr;
- struct {
- struct ceph_file_layout layout;
- } __attribute__ ((packed)) setlayout;
- struct {
- __u8 rule; /* currently fcntl or flock */
- __u8 type; /* shared, exclusive, remove*/
- __le64 pid; /* process id requesting the lock */
- __le64 pid_namespace;
- __le64 start; /* initial location to lock */
- __le64 length; /* num bytes to lock from start */
- __u8 wait; /* will caller wait for lock to become available? */
- } __attribute__ ((packed)) filelock_change;
-} __attribute__ ((packed));
-
-#define CEPH_MDS_FLAG_REPLAY 1 /* this is a replayed op */
-#define CEPH_MDS_FLAG_WANT_DENTRY 2 /* want dentry in reply */
-
-struct ceph_mds_request_head {
- __le64 oldest_client_tid;
- __le32 mdsmap_epoch; /* on client */
- __le32 flags; /* CEPH_MDS_FLAG_* */
- __u8 num_retry, num_fwd; /* count retry, fwd attempts */
- __le16 num_releases; /* # include cap/lease release records */
- __le32 op; /* mds op code */
- __le32 caller_uid, caller_gid;
- __le64 ino; /* use this ino for openc, mkdir, mknod,
- etc. (if replaying) */
- union ceph_mds_request_args args;
-} __attribute__ ((packed));
-
-/* cap/lease release record */
-struct ceph_mds_request_release {
- __le64 ino, cap_id; /* ino and unique cap id */
- __le32 caps, wanted; /* new issued, wanted */
- __le32 seq, issue_seq, mseq;
- __le32 dname_seq; /* if releasing a dentry lease, a */
- __le32 dname_len; /* string follows. */
-} __attribute__ ((packed));
-
-/* client reply */
-struct ceph_mds_reply_head {
- __le32 op;
- __le32 result;
- __le32 mdsmap_epoch;
- __u8 safe; /* true if committed to disk */
- __u8 is_dentry, is_target; /* true if dentry, target inode records
- are included with reply */
-} __attribute__ ((packed));
-
-/* one for each node split */
-struct ceph_frag_tree_split {
- __le32 frag; /* this frag splits... */
- __le32 by; /* ...by this many bits */
-} __attribute__ ((packed));
-
-struct ceph_frag_tree_head {
- __le32 nsplits; /* num ceph_frag_tree_split records */
- struct ceph_frag_tree_split splits[];
-} __attribute__ ((packed));
-
-/* capability issue, for bundling with mds reply */
-struct ceph_mds_reply_cap {
- __le32 caps, wanted; /* caps issued, wanted */
- __le64 cap_id;
- __le32 seq, mseq;
- __le64 realm; /* snap realm */
- __u8 flags; /* CEPH_CAP_FLAG_* */
-} __attribute__ ((packed));
-
-#define CEPH_CAP_FLAG_AUTH 1 /* cap is issued by auth mds */
-
-/* inode record, for bundling with mds reply */
-struct ceph_mds_reply_inode {
- __le64 ino;
- __le64 snapid;
- __le32 rdev;
- __le64 version; /* inode version */
- __le64 xattr_version; /* version for xattr blob */
- struct ceph_mds_reply_cap cap; /* caps issued for this inode */
- struct ceph_file_layout layout;
- struct ceph_timespec ctime, mtime, atime;
- __le32 time_warp_seq;
- __le64 size, max_size, truncate_size;
- __le32 truncate_seq;
- __le32 mode, uid, gid;
- __le32 nlink;
- __le64 files, subdirs, rbytes, rfiles, rsubdirs; /* dir stats */
- struct ceph_timespec rctime;
- struct ceph_frag_tree_head fragtree; /* (must be at end of struct) */
-} __attribute__ ((packed));
-/* followed by frag array, symlink string, dir layout, xattr blob */
-
-/* reply_lease follows dname, and reply_inode */
-struct ceph_mds_reply_lease {
- __le16 mask; /* lease type(s) */
- __le32 duration_ms; /* lease duration */
- __le32 seq;
-} __attribute__ ((packed));
-
-struct ceph_mds_reply_dirfrag {
- __le32 frag; /* fragment */
- __le32 auth; /* auth mds, if this is a delegation point */
- __le32 ndist; /* number of mds' this is replicated on */
- __le32 dist[];
-} __attribute__ ((packed));
-
-#define CEPH_LOCK_FCNTL 1
-#define CEPH_LOCK_FLOCK 2
-
-#define CEPH_LOCK_SHARED 1
-#define CEPH_LOCK_EXCL 2
-#define CEPH_LOCK_UNLOCK 4
-
-struct ceph_filelock {
- __le64 start;/* file offset to start lock at */
- __le64 length; /* num bytes to lock; 0 for all following start */
- __le64 client; /* which client holds the lock */
- __le64 pid; /* process id holding the lock on the client */
- __le64 pid_namespace;
- __u8 type; /* shared lock, exclusive lock, or unlock */
-} __attribute__ ((packed));
-
-
-/* file access modes */
-#define CEPH_FILE_MODE_PIN 0
-#define CEPH_FILE_MODE_RD 1
-#define CEPH_FILE_MODE_WR 2
-#define CEPH_FILE_MODE_RDWR 3 /* RD | WR */
-#define CEPH_FILE_MODE_LAZY 4 /* lazy io */
-#define CEPH_FILE_MODE_NUM 8 /* bc these are bit fields.. mostly */
-
-int ceph_flags_to_mode(int flags);
-
-
-/* capability bits */
-#define CEPH_CAP_PIN 1 /* no specific capabilities beyond the pin */
-
-/* generic cap bits */
-#define CEPH_CAP_GSHARED 1 /* client can reads */
-#define CEPH_CAP_GEXCL 2 /* client can read and update */
-#define CEPH_CAP_GCACHE 4 /* (file) client can cache reads */
-#define CEPH_CAP_GRD 8 /* (file) client can read */
-#define CEPH_CAP_GWR 16 /* (file) client can write */
-#define CEPH_CAP_GBUFFER 32 /* (file) client can buffer writes */
-#define CEPH_CAP_GWREXTEND 64 /* (file) client can extend EOF */
-#define CEPH_CAP_GLAZYIO 128 /* (file) client can perform lazy io */
-
-/* per-lock shift */
-#define CEPH_CAP_SAUTH 2
-#define CEPH_CAP_SLINK 4
-#define CEPH_CAP_SXATTR 6
-#define CEPH_CAP_SFILE 8
-#define CEPH_CAP_SFLOCK 20
-
-#define CEPH_CAP_BITS 22
-
-/* composed values */
-#define CEPH_CAP_AUTH_SHARED (CEPH_CAP_GSHARED << CEPH_CAP_SAUTH)
-#define CEPH_CAP_AUTH_EXCL (CEPH_CAP_GEXCL << CEPH_CAP_SAUTH)
-#define CEPH_CAP_LINK_SHARED (CEPH_CAP_GSHARED << CEPH_CAP_SLINK)
-#define CEPH_CAP_LINK_EXCL (CEPH_CAP_GEXCL << CEPH_CAP_SLINK)
-#define CEPH_CAP_XATTR_SHARED (CEPH_CAP_GSHARED << CEPH_CAP_SXATTR)
-#define CEPH_CAP_XATTR_EXCL (CEPH_CAP_GEXCL << CEPH_CAP_SXATTR)
-#define CEPH_CAP_FILE(x) (x << CEPH_CAP_SFILE)
-#define CEPH_CAP_FILE_SHARED (CEPH_CAP_GSHARED << CEPH_CAP_SFILE)
-#define CEPH_CAP_FILE_EXCL (CEPH_CAP_GEXCL << CEPH_CAP_SFILE)
-#define CEPH_CAP_FILE_CACHE (CEPH_CAP_GCACHE << CEPH_CAP_SFILE)
-#define CEPH_CAP_FILE_RD (CEPH_CAP_GRD << CEPH_CAP_SFILE)
-#define CEPH_CAP_FILE_WR (CEPH_CAP_GWR << CEPH_CAP_SFILE)
-#define CEPH_CAP_FILE_BUFFER (CEPH_CAP_GBUFFER << CEPH_CAP_SFILE)
-#define CEPH_CAP_FILE_WREXTEND (CEPH_CAP_GWREXTEND << CEPH_CAP_SFILE)
-#define CEPH_CAP_FILE_LAZYIO (CEPH_CAP_GLAZYIO << CEPH_CAP_SFILE)
-#define CEPH_CAP_FLOCK_SHARED (CEPH_CAP_GSHARED << CEPH_CAP_SFLOCK)
-#define CEPH_CAP_FLOCK_EXCL (CEPH_CAP_GEXCL << CEPH_CAP_SFLOCK)
-
-
-/* cap masks (for getattr) */
-#define CEPH_STAT_CAP_INODE CEPH_CAP_PIN
-#define CEPH_STAT_CAP_TYPE CEPH_CAP_PIN /* mode >> 12 */
-#define CEPH_STAT_CAP_SYMLINK CEPH_CAP_PIN
-#define CEPH_STAT_CAP_UID CEPH_CAP_AUTH_SHARED
-#define CEPH_STAT_CAP_GID CEPH_CAP_AUTH_SHARED
-#define CEPH_STAT_CAP_MODE CEPH_CAP_AUTH_SHARED
-#define CEPH_STAT_CAP_NLINK CEPH_CAP_LINK_SHARED
-#define CEPH_STAT_CAP_LAYOUT CEPH_CAP_FILE_SHARED
-#define CEPH_STAT_CAP_MTIME CEPH_CAP_FILE_SHARED
-#define CEPH_STAT_CAP_SIZE CEPH_CAP_FILE_SHARED
-#define CEPH_STAT_CAP_ATIME CEPH_CAP_FILE_SHARED /* fixme */
-#define CEPH_STAT_CAP_XATTR CEPH_CAP_XATTR_SHARED
-#define CEPH_STAT_CAP_INODE_ALL (CEPH_CAP_PIN | \
- CEPH_CAP_AUTH_SHARED | \
- CEPH_CAP_LINK_SHARED | \
- CEPH_CAP_FILE_SHARED | \
- CEPH_CAP_XATTR_SHARED)
-
-#define CEPH_CAP_ANY_SHARED (CEPH_CAP_AUTH_SHARED | \
- CEPH_CAP_LINK_SHARED | \
- CEPH_CAP_XATTR_SHARED | \
- CEPH_CAP_FILE_SHARED)
-#define CEPH_CAP_ANY_RD (CEPH_CAP_ANY_SHARED | CEPH_CAP_FILE_RD | \
- CEPH_CAP_FILE_CACHE)
-
-#define CEPH_CAP_ANY_EXCL (CEPH_CAP_AUTH_EXCL | \
- CEPH_CAP_LINK_EXCL | \
- CEPH_CAP_XATTR_EXCL | \
- CEPH_CAP_FILE_EXCL)
-#define CEPH_CAP_ANY_FILE_WR (CEPH_CAP_FILE_WR | CEPH_CAP_FILE_BUFFER | \
- CEPH_CAP_FILE_EXCL)
-#define CEPH_CAP_ANY_WR (CEPH_CAP_ANY_EXCL | CEPH_CAP_ANY_FILE_WR)
-#define CEPH_CAP_ANY (CEPH_CAP_ANY_RD | CEPH_CAP_ANY_EXCL | \
- CEPH_CAP_ANY_FILE_WR | CEPH_CAP_FILE_LAZYIO | \
- CEPH_CAP_PIN)
-
-#define CEPH_CAP_LOCKS (CEPH_LOCK_IFILE | CEPH_LOCK_IAUTH | CEPH_LOCK_ILINK | \
- CEPH_LOCK_IXATTR)
-
-int ceph_caps_for_mode(int mode);
-
-enum {
- CEPH_CAP_OP_GRANT, /* mds->client grant */
- CEPH_CAP_OP_REVOKE, /* mds->client revoke */
- CEPH_CAP_OP_TRUNC, /* mds->client trunc notify */
- CEPH_CAP_OP_EXPORT, /* mds has exported the cap */
- CEPH_CAP_OP_IMPORT, /* mds has imported the cap */
- CEPH_CAP_OP_UPDATE, /* client->mds update */
- CEPH_CAP_OP_DROP, /* client->mds drop cap bits */
- CEPH_CAP_OP_FLUSH, /* client->mds cap writeback */
- CEPH_CAP_OP_FLUSH_ACK, /* mds->client flushed */
- CEPH_CAP_OP_FLUSHSNAP, /* client->mds flush snapped metadata */
- CEPH_CAP_OP_FLUSHSNAP_ACK, /* mds->client flushed snapped metadata */
- CEPH_CAP_OP_RELEASE, /* client->mds release (clean) cap */
- CEPH_CAP_OP_RENEW, /* client->mds renewal request */
-};
-
-extern const char *ceph_cap_op_name(int op);
-
-/*
- * caps message, used for capability callbacks, acks, requests, etc.
- */
-struct ceph_mds_caps {
- __le32 op; /* CEPH_CAP_OP_* */
- __le64 ino, realm;
- __le64 cap_id;
- __le32 seq, issue_seq;
- __le32 caps, wanted, dirty; /* latest issued/wanted/dirty */
- __le32 migrate_seq;
- __le64 snap_follows;
- __le32 snap_trace_len;
-
- /* authlock */
- __le32 uid, gid, mode;
-
- /* linklock */
- __le32 nlink;
-
- /* xattrlock */
- __le32 xattr_len;
- __le64 xattr_version;
-
- /* filelock */
- __le64 size, max_size, truncate_size;
- __le32 truncate_seq;
- struct ceph_timespec mtime, atime, ctime;
- struct ceph_file_layout layout;
- __le32 time_warp_seq;
-} __attribute__ ((packed));
-
-/* cap release msg head */
-struct ceph_mds_cap_release {
- __le32 num; /* number of cap_items that follow */
-} __attribute__ ((packed));
-
-struct ceph_mds_cap_item {
- __le64 ino;
- __le64 cap_id;
- __le32 migrate_seq, seq;
-} __attribute__ ((packed));
-
-#define CEPH_MDS_LEASE_REVOKE 1 /* mds -> client */
-#define CEPH_MDS_LEASE_RELEASE 2 /* client -> mds */
-#define CEPH_MDS_LEASE_RENEW 3 /* client <-> mds */
-#define CEPH_MDS_LEASE_REVOKE_ACK 4 /* client -> mds */
-
-extern const char *ceph_lease_op_name(int o);
-
-/* lease msg header */
-struct ceph_mds_lease {
- __u8 action; /* CEPH_MDS_LEASE_* */
- __le16 mask; /* which lease */
- __le64 ino;
- __le64 first, last; /* snap range */
- __le32 seq;
- __le32 duration_ms; /* duration of renewal */
-} __attribute__ ((packed));
-/* followed by a __le32+string for dname */
-
-/* client reconnect */
-struct ceph_mds_cap_reconnect {
- __le64 cap_id;
- __le32 wanted;
- __le32 issued;
- __le64 snaprealm;
- __le64 pathbase; /* base ino for our path to this ino */
- __le32 flock_len; /* size of flock state blob, if any */
-} __attribute__ ((packed));
-/* followed by flock blob */
-
-struct ceph_mds_cap_reconnect_v1 {
- __le64 cap_id;
- __le32 wanted;
- __le32 issued;
- __le64 size;
- struct ceph_timespec mtime, atime;
- __le64 snaprealm;
- __le64 pathbase; /* base ino for our path to this ino */
-} __attribute__ ((packed));
-
-struct ceph_mds_snaprealm_reconnect {
- __le64 ino; /* snap realm base */
- __le64 seq; /* snap seq for this snap realm */
- __le64 parent; /* parent realm */
-} __attribute__ ((packed));
-
-/*
- * snaps
- */
-enum {
- CEPH_SNAP_OP_UPDATE, /* CREATE or DESTROY */
- CEPH_SNAP_OP_CREATE,
- CEPH_SNAP_OP_DESTROY,
- CEPH_SNAP_OP_SPLIT,
-};
-
-extern const char *ceph_snap_op_name(int o);
-
-/* snap msg header */
-struct ceph_mds_snap_head {
- __le32 op; /* CEPH_SNAP_OP_* */
- __le64 split; /* ino to split off, if any */
- __le32 num_split_inos; /* # inos belonging to new child realm */
- __le32 num_split_realms; /* # child realms udner new child realm */
- __le32 trace_len; /* size of snap trace blob */
-} __attribute__ ((packed));
-/* followed by split ino list, then split realms, then the trace blob */
-
-/*
- * encode info about a snaprealm, as viewed by a client
- */
-struct ceph_mds_snap_realm {
- __le64 ino; /* ino */
- __le64 created; /* snap: when created */
- __le64 parent; /* ino: parent realm */
- __le64 parent_since; /* snap: same parent since */
- __le64 seq; /* snap: version */
- __le32 num_snaps;
- __le32 num_prior_parent_snaps;
-} __attribute__ ((packed));
-/* followed by my snap list, then prior parent snap list */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ceph/ceph_hash.h b/ANDROID_3.4.5/include/linux/ceph/ceph_hash.h
deleted file mode 100644
index d099c3f9..00000000
--- a/ANDROID_3.4.5/include/linux/ceph/ceph_hash.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef FS_CEPH_HASH_H
-#define FS_CEPH_HASH_H
-
-#define CEPH_STR_HASH_LINUX 0x1 /* linux dcache hash */
-#define CEPH_STR_HASH_RJENKINS 0x2 /* robert jenkins' */
-
-extern unsigned ceph_str_hash_linux(const char *s, unsigned len);
-extern unsigned ceph_str_hash_rjenkins(const char *s, unsigned len);
-
-extern unsigned ceph_str_hash(int type, const char *s, unsigned len);
-extern const char *ceph_str_hash_name(int type);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ceph/debugfs.h b/ANDROID_3.4.5/include/linux/ceph/debugfs.h
deleted file mode 100644
index 2a79702e..00000000
--- a/ANDROID_3.4.5/include/linux/ceph/debugfs.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef _FS_CEPH_DEBUGFS_H
-#define _FS_CEPH_DEBUGFS_H
-
-#include "ceph_debug.h"
-#include "types.h"
-
-#define CEPH_DEFINE_SHOW_FUNC(name) \
-static int name##_open(struct inode *inode, struct file *file) \
-{ \
- struct seq_file *sf; \
- int ret; \
- \
- ret = single_open(file, name, NULL); \
- sf = file->private_data; \
- sf->private = inode->i_private; \
- return ret; \
-} \
- \
-static const struct file_operations name##_fops = { \
- .open = name##_open, \
- .read = seq_read, \
- .llseek = seq_lseek, \
- .release = single_release, \
-};
-
-/* debugfs.c */
-extern int ceph_debugfs_init(void);
-extern void ceph_debugfs_cleanup(void);
-extern int ceph_debugfs_client_init(struct ceph_client *client);
-extern void ceph_debugfs_client_cleanup(struct ceph_client *client);
-
-#endif
-
diff --git a/ANDROID_3.4.5/include/linux/ceph/decode.h b/ANDROID_3.4.5/include/linux/ceph/decode.h
deleted file mode 100644
index 220ae21e..00000000
--- a/ANDROID_3.4.5/include/linux/ceph/decode.h
+++ /dev/null
@@ -1,202 +0,0 @@
-#ifndef __CEPH_DECODE_H
-#define __CEPH_DECODE_H
-
-#include <linux/bug.h>
-#include <linux/time.h>
-#include <asm/unaligned.h>
-
-#include "types.h"
-
-/*
- * in all cases,
- * void **p pointer to position pointer
- * void *end pointer to end of buffer (last byte + 1)
- */
-
-static inline u64 ceph_decode_64(void **p)
-{
- u64 v = get_unaligned_le64(*p);
- *p += sizeof(u64);
- return v;
-}
-static inline u32 ceph_decode_32(void **p)
-{
- u32 v = get_unaligned_le32(*p);
- *p += sizeof(u32);
- return v;
-}
-static inline u16 ceph_decode_16(void **p)
-{
- u16 v = get_unaligned_le16(*p);
- *p += sizeof(u16);
- return v;
-}
-static inline u8 ceph_decode_8(void **p)
-{
- u8 v = *(u8 *)*p;
- (*p)++;
- return v;
-}
-static inline void ceph_decode_copy(void **p, void *pv, size_t n)
-{
- memcpy(pv, *p, n);
- *p += n;
-}
-
-/*
- * bounds check input.
- */
-#define ceph_decode_need(p, end, n, bad) \
- do { \
- if (unlikely(*(p) + (n) > (end))) \
- goto bad; \
- } while (0)
-
-#define ceph_decode_64_safe(p, end, v, bad) \
- do { \
- ceph_decode_need(p, end, sizeof(u64), bad); \
- v = ceph_decode_64(p); \
- } while (0)
-#define ceph_decode_32_safe(p, end, v, bad) \
- do { \
- ceph_decode_need(p, end, sizeof(u32), bad); \
- v = ceph_decode_32(p); \
- } while (0)
-#define ceph_decode_16_safe(p, end, v, bad) \
- do { \
- ceph_decode_need(p, end, sizeof(u16), bad); \
- v = ceph_decode_16(p); \
- } while (0)
-#define ceph_decode_8_safe(p, end, v, bad) \
- do { \
- ceph_decode_need(p, end, sizeof(u8), bad); \
- v = ceph_decode_8(p); \
- } while (0)
-
-#define ceph_decode_copy_safe(p, end, pv, n, bad) \
- do { \
- ceph_decode_need(p, end, n, bad); \
- ceph_decode_copy(p, pv, n); \
- } while (0)
-
-/*
- * struct ceph_timespec <-> struct timespec
- */
-static inline void ceph_decode_timespec(struct timespec *ts,
- const struct ceph_timespec *tv)
-{
- ts->tv_sec = le32_to_cpu(tv->tv_sec);
- ts->tv_nsec = le32_to_cpu(tv->tv_nsec);
-}
-static inline void ceph_encode_timespec(struct ceph_timespec *tv,
- const struct timespec *ts)
-{
- tv->tv_sec = cpu_to_le32(ts->tv_sec);
- tv->tv_nsec = cpu_to_le32(ts->tv_nsec);
-}
-
-/*
- * sockaddr_storage <-> ceph_sockaddr
- */
-static inline void ceph_encode_addr(struct ceph_entity_addr *a)
-{
- __be16 ss_family = htons(a->in_addr.ss_family);
- a->in_addr.ss_family = *(__u16 *)&ss_family;
-}
-static inline void ceph_decode_addr(struct ceph_entity_addr *a)
-{
- __be16 ss_family = *(__be16 *)&a->in_addr.ss_family;
- a->in_addr.ss_family = ntohs(ss_family);
- WARN_ON(a->in_addr.ss_family == 512);
-}
-
-/*
- * encoders
- */
-static inline void ceph_encode_64(void **p, u64 v)
-{
- put_unaligned_le64(v, (__le64 *)*p);
- *p += sizeof(u64);
-}
-static inline void ceph_encode_32(void **p, u32 v)
-{
- put_unaligned_le32(v, (__le32 *)*p);
- *p += sizeof(u32);
-}
-static inline void ceph_encode_16(void **p, u16 v)
-{
- put_unaligned_le16(v, (__le16 *)*p);
- *p += sizeof(u16);
-}
-static inline void ceph_encode_8(void **p, u8 v)
-{
- *(u8 *)*p = v;
- (*p)++;
-}
-static inline void ceph_encode_copy(void **p, const void *s, int len)
-{
- memcpy(*p, s, len);
- *p += len;
-}
-
-/*
- * filepath, string encoders
- */
-static inline void ceph_encode_filepath(void **p, void *end,
- u64 ino, const char *path)
-{
- u32 len = path ? strlen(path) : 0;
- BUG_ON(*p + sizeof(ino) + sizeof(len) + len > end);
- ceph_encode_8(p, 1);
- ceph_encode_64(p, ino);
- ceph_encode_32(p, len);
- if (len)
- memcpy(*p, path, len);
- *p += len;
-}
-
-static inline void ceph_encode_string(void **p, void *end,
- const char *s, u32 len)
-{
- BUG_ON(*p + sizeof(len) + len > end);
- ceph_encode_32(p, len);
- if (len)
- memcpy(*p, s, len);
- *p += len;
-}
-
-#define ceph_encode_need(p, end, n, bad) \
- do { \
- if (unlikely(*(p) + (n) > (end))) \
- goto bad; \
- } while (0)
-
-#define ceph_encode_64_safe(p, end, v, bad) \
- do { \
- ceph_encode_need(p, end, sizeof(u64), bad); \
- ceph_encode_64(p, v); \
- } while (0)
-#define ceph_encode_32_safe(p, end, v, bad) \
- do { \
- ceph_encode_need(p, end, sizeof(u32), bad); \
- ceph_encode_32(p, v); \
- } while (0)
-#define ceph_encode_16_safe(p, end, v, bad) \
- do { \
- ceph_encode_need(p, end, sizeof(u16), bad); \
- ceph_encode_16(p, v); \
- } while (0)
-
-#define ceph_encode_copy_safe(p, end, pv, n, bad) \
- do { \
- ceph_encode_need(p, end, n, bad); \
- ceph_encode_copy(p, pv, n); \
- } while (0)
-#define ceph_encode_string_safe(p, end, s, n, bad) \
- do { \
- ceph_encode_need(p, end, n, bad); \
- ceph_encode_string(p, end, s, n); \
- } while (0)
-
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ceph/libceph.h b/ANDROID_3.4.5/include/linux/ceph/libceph.h
deleted file mode 100644
index e71d6839..00000000
--- a/ANDROID_3.4.5/include/linux/ceph/libceph.h
+++ /dev/null
@@ -1,252 +0,0 @@
-#ifndef _FS_CEPH_LIBCEPH_H
-#define _FS_CEPH_LIBCEPH_H
-
-#include "ceph_debug.h"
-
-#include <asm/unaligned.h>
-#include <linux/backing-dev.h>
-#include <linux/completion.h>
-#include <linux/exportfs.h>
-#include <linux/bug.h>
-#include <linux/fs.h>
-#include <linux/mempool.h>
-#include <linux/pagemap.h>
-#include <linux/wait.h>
-#include <linux/writeback.h>
-#include <linux/slab.h>
-
-#include "types.h"
-#include "messenger.h"
-#include "msgpool.h"
-#include "mon_client.h"
-#include "osd_client.h"
-#include "ceph_fs.h"
-
-/*
- * Supported features
- */
-#define CEPH_FEATURE_SUPPORTED_DEFAULT CEPH_FEATURE_NOSRCADDR
-#define CEPH_FEATURE_REQUIRED_DEFAULT CEPH_FEATURE_NOSRCADDR
-
-/*
- * mount options
- */
-#define CEPH_OPT_FSID (1<<0)
-#define CEPH_OPT_NOSHARE (1<<1) /* don't share client with other sbs */
-#define CEPH_OPT_MYIP (1<<2) /* specified my ip */
-#define CEPH_OPT_NOCRC (1<<3) /* no data crc on writes */
-
-#define CEPH_OPT_DEFAULT (0)
-
-#define ceph_set_opt(client, opt) \
- (client)->options->flags |= CEPH_OPT_##opt;
-#define ceph_test_opt(client, opt) \
- (!!((client)->options->flags & CEPH_OPT_##opt))
-
-struct ceph_options {
- int flags;
- struct ceph_fsid fsid;
- struct ceph_entity_addr my_addr;
- int mount_timeout;
- int osd_idle_ttl;
- int osd_timeout;
- int osd_keepalive_timeout;
-
- /*
- * any type that can't be simply compared or doesn't need need
- * to be compared should go beyond this point,
- * ceph_compare_options() should be updated accordingly
- */
-
- struct ceph_entity_addr *mon_addr; /* should be the first
- pointer type of args */
- int num_mon;
- char *name;
- struct ceph_crypto_key *key;
-};
-
-/*
- * defaults
- */
-#define CEPH_MOUNT_TIMEOUT_DEFAULT 60
-#define CEPH_OSD_TIMEOUT_DEFAULT 60 /* seconds */
-#define CEPH_OSD_KEEPALIVE_DEFAULT 5
-#define CEPH_OSD_IDLE_TTL_DEFAULT 60
-
-#define CEPH_MSG_MAX_FRONT_LEN (16*1024*1024)
-#define CEPH_MSG_MAX_DATA_LEN (16*1024*1024)
-
-#define CEPH_AUTH_NAME_DEFAULT "guest"
-
-/*
- * Delay telling the MDS we no longer want caps, in case we reopen
- * the file. Delay a minimum amount of time, even if we send a cap
- * message for some other reason. Otherwise, take the oppotunity to
- * update the mds to avoid sending another message later.
- */
-#define CEPH_CAPS_WANTED_DELAY_MIN_DEFAULT 5 /* cap release delay */
-#define CEPH_CAPS_WANTED_DELAY_MAX_DEFAULT 60 /* cap release delay */
-
-#define CEPH_CAP_RELEASE_SAFETY_DEFAULT (CEPH_CAPS_PER_RELEASE * 4)
-
-/* mount state */
-enum {
- CEPH_MOUNT_MOUNTING,
- CEPH_MOUNT_MOUNTED,
- CEPH_MOUNT_UNMOUNTING,
- CEPH_MOUNT_UNMOUNTED,
- CEPH_MOUNT_SHUTDOWN,
-};
-
-/*
- * subtract jiffies
- */
-static inline unsigned long time_sub(unsigned long a, unsigned long b)
-{
- BUG_ON(time_after(b, a));
- return (long)a - (long)b;
-}
-
-struct ceph_mds_client;
-
-/*
- * per client state
- *
- * possibly shared by multiple mount points, if they are
- * mounting the same ceph filesystem/cluster.
- */
-struct ceph_client {
- struct ceph_fsid fsid;
- bool have_fsid;
-
- void *private;
-
- struct ceph_options *options;
-
- struct mutex mount_mutex; /* serialize mount attempts */
- wait_queue_head_t auth_wq;
- int auth_err;
-
- int (*extra_mon_dispatch)(struct ceph_client *, struct ceph_msg *);
-
- u32 supported_features;
- u32 required_features;
-
- struct ceph_messenger *msgr; /* messenger instance */
- struct ceph_mon_client monc;
- struct ceph_osd_client osdc;
-
-#ifdef CONFIG_DEBUG_FS
- struct dentry *debugfs_dir;
- struct dentry *debugfs_monmap;
- struct dentry *debugfs_osdmap;
-#endif
-};
-
-
-
-/*
- * snapshots
- */
-
-/*
- * A "snap context" is the set of existing snapshots when we
- * write data. It is used by the OSD to guide its COW behavior.
- *
- * The ceph_snap_context is refcounted, and attached to each dirty
- * page, indicating which context the dirty data belonged when it was
- * dirtied.
- */
-struct ceph_snap_context {
- atomic_t nref;
- u64 seq;
- int num_snaps;
- u64 snaps[];
-};
-
-static inline struct ceph_snap_context *
-ceph_get_snap_context(struct ceph_snap_context *sc)
-{
- /*
- printk("get_snap_context %p %d -> %d\n", sc, atomic_read(&sc->nref),
- atomic_read(&sc->nref)+1);
- */
- if (sc)
- atomic_inc(&sc->nref);
- return sc;
-}
-
-static inline void ceph_put_snap_context(struct ceph_snap_context *sc)
-{
- if (!sc)
- return;
- /*
- printk("put_snap_context %p %d -> %d\n", sc, atomic_read(&sc->nref),
- atomic_read(&sc->nref)-1);
- */
- if (atomic_dec_and_test(&sc->nref)) {
- /*printk(" deleting snap_context %p\n", sc);*/
- kfree(sc);
- }
-}
-
-/*
- * calculate the number of pages a given length and offset map onto,
- * if we align the data.
- */
-static inline int calc_pages_for(u64 off, u64 len)
-{
- return ((off+len+PAGE_CACHE_SIZE-1) >> PAGE_CACHE_SHIFT) -
- (off >> PAGE_CACHE_SHIFT);
-}
-
-/* ceph_common.c */
-extern const char *ceph_msg_type_name(int type);
-extern int ceph_check_fsid(struct ceph_client *client, struct ceph_fsid *fsid);
-extern struct kmem_cache *ceph_inode_cachep;
-extern struct kmem_cache *ceph_cap_cachep;
-extern struct kmem_cache *ceph_dentry_cachep;
-extern struct kmem_cache *ceph_file_cachep;
-
-extern struct ceph_options *ceph_parse_options(char *options,
- const char *dev_name, const char *dev_name_end,
- int (*parse_extra_token)(char *c, void *private),
- void *private);
-extern void ceph_destroy_options(struct ceph_options *opt);
-extern int ceph_compare_options(struct ceph_options *new_opt,
- struct ceph_client *client);
-extern struct ceph_client *ceph_create_client(struct ceph_options *opt,
- void *private,
- unsigned supported_features,
- unsigned required_features);
-extern u64 ceph_client_id(struct ceph_client *client);
-extern void ceph_destroy_client(struct ceph_client *client);
-extern int __ceph_open_session(struct ceph_client *client,
- unsigned long started);
-extern int ceph_open_session(struct ceph_client *client);
-
-/* pagevec.c */
-extern void ceph_release_page_vector(struct page **pages, int num_pages);
-
-extern struct page **ceph_get_direct_page_vector(const char __user *data,
- int num_pages,
- bool write_page);
-extern void ceph_put_page_vector(struct page **pages, int num_pages,
- bool dirty);
-extern void ceph_release_page_vector(struct page **pages, int num_pages);
-extern struct page **ceph_alloc_page_vector(int num_pages, gfp_t flags);
-extern int ceph_copy_user_to_page_vector(struct page **pages,
- const char __user *data,
- loff_t off, size_t len);
-extern int ceph_copy_to_page_vector(struct page **pages,
- const char *data,
- loff_t off, size_t len);
-extern int ceph_copy_from_page_vector(struct page **pages,
- char *data,
- loff_t off, size_t len);
-extern int ceph_copy_page_vector_to_user(struct page **pages, char __user *data,
- loff_t off, size_t len);
-extern void ceph_zero_page_vector_range(int off, int len, struct page **pages);
-
-
-#endif /* _FS_CEPH_SUPER_H */
diff --git a/ANDROID_3.4.5/include/linux/ceph/mdsmap.h b/ANDROID_3.4.5/include/linux/ceph/mdsmap.h
deleted file mode 100644
index 9935fac8..00000000
--- a/ANDROID_3.4.5/include/linux/ceph/mdsmap.h
+++ /dev/null
@@ -1,63 +0,0 @@
-#ifndef _FS_CEPH_MDSMAP_H
-#define _FS_CEPH_MDSMAP_H
-
-#include <linux/bug.h>
-#include "types.h"
-
-/*
- * mds map - describe servers in the mds cluster.
- *
- * we limit fields to those the client actually xcares about
- */
-struct ceph_mds_info {
- u64 global_id;
- struct ceph_entity_addr addr;
- s32 state;
- int num_export_targets;
- bool laggy;
- u32 *export_targets;
-};
-
-struct ceph_mdsmap {
- u32 m_epoch, m_client_epoch, m_last_failure;
- u32 m_root;
- u32 m_session_timeout; /* seconds */
- u32 m_session_autoclose; /* seconds */
- u64 m_max_file_size;
- u32 m_max_mds; /* size of m_addr, m_state arrays */
- struct ceph_mds_info *m_info;
-
- /* which object pools file data can be stored in */
- int m_num_data_pg_pools;
- u32 *m_data_pg_pools;
- u32 m_cas_pg_pool;
-};
-
-static inline struct ceph_entity_addr *
-ceph_mdsmap_get_addr(struct ceph_mdsmap *m, int w)
-{
- if (w >= m->m_max_mds)
- return NULL;
- return &m->m_info[w].addr;
-}
-
-static inline int ceph_mdsmap_get_state(struct ceph_mdsmap *m, int w)
-{
- BUG_ON(w < 0);
- if (w >= m->m_max_mds)
- return CEPH_MDS_STATE_DNE;
- return m->m_info[w].state;
-}
-
-static inline bool ceph_mdsmap_is_laggy(struct ceph_mdsmap *m, int w)
-{
- if (w >= 0 && w < m->m_max_mds)
- return m->m_info[w].laggy;
- return false;
-}
-
-extern int ceph_mdsmap_get_random_mds(struct ceph_mdsmap *m);
-extern struct ceph_mdsmap *ceph_mdsmap_decode(void **p, void *end);
-extern void ceph_mdsmap_destroy(struct ceph_mdsmap *m);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ceph/messenger.h b/ANDROID_3.4.5/include/linux/ceph/messenger.h
deleted file mode 100644
index 3bff047f..00000000
--- a/ANDROID_3.4.5/include/linux/ceph/messenger.h
+++ /dev/null
@@ -1,255 +0,0 @@
-#ifndef __FS_CEPH_MESSENGER_H
-#define __FS_CEPH_MESSENGER_H
-
-#include <linux/kref.h>
-#include <linux/mutex.h>
-#include <linux/net.h>
-#include <linux/radix-tree.h>
-#include <linux/uio.h>
-#include <linux/workqueue.h>
-
-#include "types.h"
-#include "buffer.h"
-
-struct ceph_msg;
-struct ceph_connection;
-
-/*
- * Ceph defines these callbacks for handling connection events.
- */
-struct ceph_connection_operations {
- struct ceph_connection *(*get)(struct ceph_connection *);
- void (*put)(struct ceph_connection *);
-
- /* handle an incoming message. */
- void (*dispatch) (struct ceph_connection *con, struct ceph_msg *m);
-
- /* authorize an outgoing connection */
- int (*get_authorizer) (struct ceph_connection *con,
- void **buf, int *len, int *proto,
- void **reply_buf, int *reply_len, int force_new);
- int (*verify_authorizer_reply) (struct ceph_connection *con, int len);
- int (*invalidate_authorizer)(struct ceph_connection *con);
-
- /* protocol version mismatch */
- void (*bad_proto) (struct ceph_connection *con);
-
- /* there was some error on the socket (disconnect, whatever) */
- void (*fault) (struct ceph_connection *con);
-
- /* a remote host as terminated a message exchange session, and messages
- * we sent (or they tried to send us) may be lost. */
- void (*peer_reset) (struct ceph_connection *con);
-
- struct ceph_msg * (*alloc_msg) (struct ceph_connection *con,
- struct ceph_msg_header *hdr,
- int *skip);
-};
-
-/* use format string %s%d */
-#define ENTITY_NAME(n) ceph_entity_type_name((n).type), le64_to_cpu((n).num)
-
-struct ceph_messenger {
- struct ceph_entity_inst inst; /* my name+address */
- struct ceph_entity_addr my_enc_addr;
-
- bool nocrc;
-
- /*
- * the global_seq counts connections i (attempt to) initiate
- * in order to disambiguate certain connect race conditions.
- */
- u32 global_seq;
- spinlock_t global_seq_lock;
-
- u32 supported_features;
- u32 required_features;
-};
-
-/*
- * a single message. it contains a header (src, dest, message type, etc.),
- * footer (crc values, mainly), a "front" message body, and possibly a
- * data payload (stored in some number of pages).
- */
-struct ceph_msg {
- struct ceph_msg_header hdr; /* header */
- struct ceph_msg_footer footer; /* footer */
- struct kvec front; /* unaligned blobs of message */
- struct ceph_buffer *middle;
- struct page **pages; /* data payload. NOT OWNER. */
- unsigned nr_pages; /* size of page array */
- unsigned page_alignment; /* io offset in first page */
- struct ceph_pagelist *pagelist; /* instead of pages */
- struct list_head list_head;
- struct kref kref;
- struct bio *bio; /* instead of pages/pagelist */
- struct bio *bio_iter; /* bio iterator */
- int bio_seg; /* current bio segment */
- struct ceph_pagelist *trail; /* the trailing part of the data */
- bool front_is_vmalloc;
- bool more_to_follow;
- bool needs_out_seq;
- int front_max;
- unsigned long ack_stamp; /* tx: when we were acked */
-
- struct ceph_msgpool *pool;
-};
-
-struct ceph_msg_pos {
- int page, page_pos; /* which page; offset in page */
- int data_pos; /* offset in data payload */
- bool did_page_crc; /* true if we've calculated crc for current page */
-};
-
-/* ceph connection fault delay defaults, for exponential backoff */
-#define BASE_DELAY_INTERVAL (HZ/2)
-#define MAX_DELAY_INTERVAL (5 * 60 * HZ)
-
-/*
- * ceph_connection state bit flags
- */
-#define LOSSYTX 0 /* we can close channel or drop messages on errors */
-#define CONNECTING 1
-#define NEGOTIATING 2
-#define KEEPALIVE_PENDING 3
-#define WRITE_PENDING 4 /* we have data ready to send */
-#define STANDBY 8 /* no outgoing messages, socket closed. we keep
- * the ceph_connection around to maintain shared
- * state with the peer. */
-#define CLOSED 10 /* we've closed the connection */
-#define SOCK_CLOSED 11 /* socket state changed to closed */
-#define OPENING 13 /* open connection w/ (possibly new) peer */
-#define DEAD 14 /* dead, about to kfree */
-#define BACKOFF 15
-
-/*
- * A single connection with another host.
- *
- * We maintain a queue of outgoing messages, and some session state to
- * ensure that we can preserve the lossless, ordered delivery of
- * messages in the case of a TCP disconnect.
- */
-struct ceph_connection {
- void *private;
- atomic_t nref;
-
- const struct ceph_connection_operations *ops;
-
- struct ceph_messenger *msgr;
- struct socket *sock;
- unsigned long state; /* connection state (see flags above) */
- const char *error_msg; /* error message, if any */
-
- struct ceph_entity_addr peer_addr; /* peer address */
- struct ceph_entity_name peer_name; /* peer name */
- struct ceph_entity_addr peer_addr_for_me;
- unsigned peer_features;
- u32 connect_seq; /* identify the most recent connection
- attempt for this connection, client */
- u32 peer_global_seq; /* peer's global seq for this connection */
-
- int auth_retry; /* true if we need a newer authorizer */
- void *auth_reply_buf; /* where to put the authorizer reply */
- int auth_reply_buf_len;
-
- struct mutex mutex;
-
- /* out queue */
- struct list_head out_queue;
- struct list_head out_sent; /* sending or sent but unacked */
- u64 out_seq; /* last message queued for send */
-
- u64 in_seq, in_seq_acked; /* last message received, acked */
-
- /* connection negotiation temps */
- char in_banner[CEPH_BANNER_MAX_LEN];
- union {
- struct { /* outgoing connection */
- struct ceph_msg_connect out_connect;
- struct ceph_msg_connect_reply in_reply;
- };
- struct { /* incoming */
- struct ceph_msg_connect in_connect;
- struct ceph_msg_connect_reply out_reply;
- };
- };
- struct ceph_entity_addr actual_peer_addr;
-
- /* message out temps */
- struct ceph_msg *out_msg; /* sending message (== tail of
- out_sent) */
- bool out_msg_done;
- struct ceph_msg_pos out_msg_pos;
-
- struct kvec out_kvec[8], /* sending header/footer data */
- *out_kvec_cur;
- int out_kvec_left; /* kvec's left in out_kvec */
- int out_skip; /* skip this many bytes */
- int out_kvec_bytes; /* total bytes left */
- bool out_kvec_is_msg; /* kvec refers to out_msg */
- int out_more; /* there is more data after the kvecs */
- __le64 out_temp_ack; /* for writing an ack */
-
- /* message in temps */
- struct ceph_msg_header in_hdr;
- struct ceph_msg *in_msg;
- struct ceph_msg_pos in_msg_pos;
- u32 in_front_crc, in_middle_crc, in_data_crc; /* calculated crc */
-
- char in_tag; /* protocol control byte */
- int in_base_pos; /* bytes read */
- __le64 in_temp_ack; /* for reading an ack */
-
- struct delayed_work work; /* send|recv work */
- unsigned long delay; /* current delay interval */
-};
-
-
-extern const char *ceph_pr_addr(const struct sockaddr_storage *ss);
-extern int ceph_parse_ips(const char *c, const char *end,
- struct ceph_entity_addr *addr,
- int max_count, int *count);
-
-
-extern int ceph_msgr_init(void);
-extern void ceph_msgr_exit(void);
-extern void ceph_msgr_flush(void);
-
-extern struct ceph_messenger *ceph_messenger_create(
- struct ceph_entity_addr *myaddr,
- u32 features, u32 required);
-extern void ceph_messenger_destroy(struct ceph_messenger *);
-
-extern void ceph_con_init(struct ceph_messenger *msgr,
- struct ceph_connection *con);
-extern void ceph_con_open(struct ceph_connection *con,
- struct ceph_entity_addr *addr);
-extern bool ceph_con_opened(struct ceph_connection *con);
-extern void ceph_con_close(struct ceph_connection *con);
-extern void ceph_con_send(struct ceph_connection *con, struct ceph_msg *msg);
-extern void ceph_con_revoke(struct ceph_connection *con, struct ceph_msg *msg);
-extern void ceph_con_revoke_message(struct ceph_connection *con,
- struct ceph_msg *msg);
-extern void ceph_con_keepalive(struct ceph_connection *con);
-extern struct ceph_connection *ceph_con_get(struct ceph_connection *con);
-extern void ceph_con_put(struct ceph_connection *con);
-
-extern struct ceph_msg *ceph_msg_new(int type, int front_len, gfp_t flags,
- bool can_fail);
-extern void ceph_msg_kfree(struct ceph_msg *m);
-
-
-static inline struct ceph_msg *ceph_msg_get(struct ceph_msg *msg)
-{
- kref_get(&msg->kref);
- return msg;
-}
-extern void ceph_msg_last_put(struct kref *kref);
-static inline void ceph_msg_put(struct ceph_msg *msg)
-{
- kref_put(&msg->kref, ceph_msg_last_put);
-}
-
-extern void ceph_msg_dump(struct ceph_msg *msg);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ceph/mon_client.h b/ANDROID_3.4.5/include/linux/ceph/mon_client.h
deleted file mode 100644
index 545f8591..00000000
--- a/ANDROID_3.4.5/include/linux/ceph/mon_client.h
+++ /dev/null
@@ -1,122 +0,0 @@
-#ifndef _FS_CEPH_MON_CLIENT_H
-#define _FS_CEPH_MON_CLIENT_H
-
-#include <linux/completion.h>
-#include <linux/kref.h>
-#include <linux/rbtree.h>
-
-#include "messenger.h"
-
-struct ceph_client;
-struct ceph_mount_args;
-struct ceph_auth_client;
-
-/*
- * The monitor map enumerates the set of all monitors.
- */
-struct ceph_monmap {
- struct ceph_fsid fsid;
- u32 epoch;
- u32 num_mon;
- struct ceph_entity_inst mon_inst[0];
-};
-
-struct ceph_mon_client;
-struct ceph_mon_generic_request;
-
-
-/*
- * Generic mechanism for resending monitor requests.
- */
-typedef void (*ceph_monc_request_func_t)(struct ceph_mon_client *monc,
- int newmon);
-
-/* a pending monitor request */
-struct ceph_mon_request {
- struct ceph_mon_client *monc;
- struct delayed_work delayed_work;
- unsigned long delay;
- ceph_monc_request_func_t do_request;
-};
-
-/*
- * ceph_mon_generic_request is being used for the statfs and poolop requests
- * which are bening done a bit differently because we need to get data back
- * to the caller
- */
-struct ceph_mon_generic_request {
- struct kref kref;
- u64 tid;
- struct rb_node node;
- int result;
- void *buf;
- int buf_len;
- struct completion completion;
- struct ceph_msg *request; /* original request */
- struct ceph_msg *reply; /* and reply */
-};
-
-struct ceph_mon_client {
- struct ceph_client *client;
- struct ceph_monmap *monmap;
-
- struct mutex mutex;
- struct delayed_work delayed_work;
-
- struct ceph_auth_client *auth;
- struct ceph_msg *m_auth, *m_auth_reply, *m_subscribe, *m_subscribe_ack;
- int pending_auth;
-
- bool hunting;
- int cur_mon; /* last monitor i contacted */
- unsigned long sub_sent, sub_renew_after;
- struct ceph_connection *con;
- bool have_fsid;
-
- /* pending generic requests */
- struct rb_root generic_request_tree;
- int num_generic_requests;
- u64 last_tid;
-
- /* mds/osd map */
- int want_mdsmap;
- int want_next_osdmap; /* 1 = want, 2 = want+asked */
- u32 have_osdmap, have_mdsmap;
-
-#ifdef CONFIG_DEBUG_FS
- struct dentry *debugfs_file;
-#endif
-};
-
-extern struct ceph_monmap *ceph_monmap_decode(void *p, void *end);
-extern int ceph_monmap_contains(struct ceph_monmap *m,
- struct ceph_entity_addr *addr);
-
-extern int ceph_monc_init(struct ceph_mon_client *monc, struct ceph_client *cl);
-extern void ceph_monc_stop(struct ceph_mon_client *monc);
-
-/*
- * The model here is to indicate that we need a new map of at least
- * epoch @want, and also call in when we receive a map. We will
- * periodically rerequest the map from the monitor cluster until we
- * get what we want.
- */
-extern int ceph_monc_got_mdsmap(struct ceph_mon_client *monc, u32 have);
-extern int ceph_monc_got_osdmap(struct ceph_mon_client *monc, u32 have);
-
-extern void ceph_monc_request_next_osdmap(struct ceph_mon_client *monc);
-
-extern int ceph_monc_do_statfs(struct ceph_mon_client *monc,
- struct ceph_statfs *buf);
-
-extern int ceph_monc_open_session(struct ceph_mon_client *monc);
-
-extern int ceph_monc_validate_auth(struct ceph_mon_client *monc);
-
-extern int ceph_monc_create_snapid(struct ceph_mon_client *monc,
- u32 pool, u64 *snapid);
-
-extern int ceph_monc_delete_snapid(struct ceph_mon_client *monc,
- u32 pool, u64 snapid);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ceph/msgpool.h b/ANDROID_3.4.5/include/linux/ceph/msgpool.h
deleted file mode 100644
index a362605f..00000000
--- a/ANDROID_3.4.5/include/linux/ceph/msgpool.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef _FS_CEPH_MSGPOOL
-#define _FS_CEPH_MSGPOOL
-
-#include <linux/mempool.h>
-#include "messenger.h"
-
-/*
- * we use memory pools for preallocating messages we may receive, to
- * avoid unexpected OOM conditions.
- */
-struct ceph_msgpool {
- const char *name;
- mempool_t *pool;
- int front_len; /* preallocated payload size */
-};
-
-extern int ceph_msgpool_init(struct ceph_msgpool *pool,
- int front_len, int size, bool blocking,
- const char *name);
-extern void ceph_msgpool_destroy(struct ceph_msgpool *pool);
-extern struct ceph_msg *ceph_msgpool_get(struct ceph_msgpool *,
- int front_len);
-extern void ceph_msgpool_put(struct ceph_msgpool *, struct ceph_msg *);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ceph/msgr.h b/ANDROID_3.4.5/include/linux/ceph/msgr.h
deleted file mode 100644
index 680d3d64..00000000
--- a/ANDROID_3.4.5/include/linux/ceph/msgr.h
+++ /dev/null
@@ -1,175 +0,0 @@
-#ifndef CEPH_MSGR_H
-#define CEPH_MSGR_H
-
-/*
- * Data types for message passing layer used by Ceph.
- */
-
-#define CEPH_MON_PORT 6789 /* default monitor port */
-
-/*
- * client-side processes will try to bind to ports in this
- * range, simply for the benefit of tools like nmap or wireshark
- * that would like to identify the protocol.
- */
-#define CEPH_PORT_FIRST 6789
-#define CEPH_PORT_START 6800 /* non-monitors start here */
-#define CEPH_PORT_LAST 6900
-
-/*
- * tcp connection banner. include a protocol version. and adjust
- * whenever the wire protocol changes. try to keep this string length
- * constant.
- */
-#define CEPH_BANNER "ceph v027"
-#define CEPH_BANNER_MAX_LEN 30
-
-
-/*
- * Rollover-safe type and comparator for 32-bit sequence numbers.
- * Comparator returns -1, 0, or 1.
- */
-typedef __u32 ceph_seq_t;
-
-static inline __s32 ceph_seq_cmp(__u32 a, __u32 b)
-{
- return (__s32)a - (__s32)b;
-}
-
-
-/*
- * entity_name -- logical name for a process participating in the
- * network, e.g. 'mds0' or 'osd3'.
- */
-struct ceph_entity_name {
- __u8 type; /* CEPH_ENTITY_TYPE_* */
- __le64 num;
-} __attribute__ ((packed));
-
-#define CEPH_ENTITY_TYPE_MON 0x01
-#define CEPH_ENTITY_TYPE_MDS 0x02
-#define CEPH_ENTITY_TYPE_OSD 0x04
-#define CEPH_ENTITY_TYPE_CLIENT 0x08
-#define CEPH_ENTITY_TYPE_AUTH 0x20
-
-#define CEPH_ENTITY_TYPE_ANY 0xFF
-
-extern const char *ceph_entity_type_name(int type);
-
-/*
- * entity_addr -- network address
- */
-struct ceph_entity_addr {
- __le32 type;
- __le32 nonce; /* unique id for process (e.g. pid) */
- struct sockaddr_storage in_addr;
-} __attribute__ ((packed));
-
-struct ceph_entity_inst {
- struct ceph_entity_name name;
- struct ceph_entity_addr addr;
-} __attribute__ ((packed));
-
-
-/* used by message exchange protocol */
-#define CEPH_MSGR_TAG_READY 1 /* server->client: ready for messages */
-#define CEPH_MSGR_TAG_RESETSESSION 2 /* server->client: reset, try again */
-#define CEPH_MSGR_TAG_WAIT 3 /* server->client: wait for racing
- incoming connection */
-#define CEPH_MSGR_TAG_RETRY_SESSION 4 /* server->client + cseq: try again
- with higher cseq */
-#define CEPH_MSGR_TAG_RETRY_GLOBAL 5 /* server->client + gseq: try again
- with higher gseq */
-#define CEPH_MSGR_TAG_CLOSE 6 /* closing pipe */
-#define CEPH_MSGR_TAG_MSG 7 /* message */
-#define CEPH_MSGR_TAG_ACK 8 /* message ack */
-#define CEPH_MSGR_TAG_KEEPALIVE 9 /* just a keepalive byte! */
-#define CEPH_MSGR_TAG_BADPROTOVER 10 /* bad protocol version */
-#define CEPH_MSGR_TAG_BADAUTHORIZER 11 /* bad authorizer */
-#define CEPH_MSGR_TAG_FEATURES 12 /* insufficient features */
-
-
-/*
- * connection negotiation
- */
-struct ceph_msg_connect {
- __le64 features; /* supported feature bits */
- __le32 host_type; /* CEPH_ENTITY_TYPE_* */
- __le32 global_seq; /* count connections initiated by this host */
- __le32 connect_seq; /* count connections initiated in this session */
- __le32 protocol_version;
- __le32 authorizer_protocol;
- __le32 authorizer_len;
- __u8 flags; /* CEPH_MSG_CONNECT_* */
-} __attribute__ ((packed));
-
-struct ceph_msg_connect_reply {
- __u8 tag;
- __le64 features; /* feature bits for this session */
- __le32 global_seq;
- __le32 connect_seq;
- __le32 protocol_version;
- __le32 authorizer_len;
- __u8 flags;
-} __attribute__ ((packed));
-
-#define CEPH_MSG_CONNECT_LOSSY 1 /* messages i send may be safely dropped */
-
-
-/*
- * message header
- */
-struct ceph_msg_header_old {
- __le64 seq; /* message seq# for this session */
- __le64 tid; /* transaction id */
- __le16 type; /* message type */
- __le16 priority; /* priority. higher value == higher priority */
- __le16 version; /* version of message encoding */
-
- __le32 front_len; /* bytes in main payload */
- __le32 middle_len;/* bytes in middle payload */
- __le32 data_len; /* bytes of data payload */
- __le16 data_off; /* sender: include full offset;
- receiver: mask against ~PAGE_MASK */
-
- struct ceph_entity_inst src, orig_src;
- __le32 reserved;
- __le32 crc; /* header crc32c */
-} __attribute__ ((packed));
-
-struct ceph_msg_header {
- __le64 seq; /* message seq# for this session */
- __le64 tid; /* transaction id */
- __le16 type; /* message type */
- __le16 priority; /* priority. higher value == higher priority */
- __le16 version; /* version of message encoding */
-
- __le32 front_len; /* bytes in main payload */
- __le32 middle_len;/* bytes in middle payload */
- __le32 data_len; /* bytes of data payload */
- __le16 data_off; /* sender: include full offset;
- receiver: mask against ~PAGE_MASK */
-
- struct ceph_entity_name src;
- __le32 reserved;
- __le32 crc; /* header crc32c */
-} __attribute__ ((packed));
-
-#define CEPH_MSG_PRIO_LOW 64
-#define CEPH_MSG_PRIO_DEFAULT 127
-#define CEPH_MSG_PRIO_HIGH 196
-#define CEPH_MSG_PRIO_HIGHEST 255
-
-/*
- * follows data payload
- */
-struct ceph_msg_footer {
- __le32 front_crc, middle_crc, data_crc;
- __u8 flags;
-} __attribute__ ((packed));
-
-#define CEPH_MSG_FOOTER_COMPLETE (1<<0) /* msg wasn't aborted */
-#define CEPH_MSG_FOOTER_NOCRC (1<<1) /* no data crc */
-
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ceph/osd_client.h b/ANDROID_3.4.5/include/linux/ceph/osd_client.h
deleted file mode 100644
index 7c05ac20..00000000
--- a/ANDROID_3.4.5/include/linux/ceph/osd_client.h
+++ /dev/null
@@ -1,296 +0,0 @@
-#ifndef _FS_CEPH_OSD_CLIENT_H
-#define _FS_CEPH_OSD_CLIENT_H
-
-#include <linux/completion.h>
-#include <linux/kref.h>
-#include <linux/mempool.h>
-#include <linux/rbtree.h>
-
-#include "types.h"
-#include "osdmap.h"
-#include "messenger.h"
-
-/*
- * Maximum object name size
- * (must be at least as big as RBD_MAX_MD_NAME_LEN -- currently 100)
- */
-#define MAX_OBJ_NAME_SIZE 100
-
-struct ceph_msg;
-struct ceph_snap_context;
-struct ceph_osd_request;
-struct ceph_osd_client;
-struct ceph_authorizer;
-struct ceph_pagelist;
-
-/*
- * completion callback for async writepages
- */
-typedef void (*ceph_osdc_callback_t)(struct ceph_osd_request *,
- struct ceph_msg *);
-
-/* a given osd we're communicating with */
-struct ceph_osd {
- atomic_t o_ref;
- struct ceph_osd_client *o_osdc;
- int o_osd;
- int o_incarnation;
- struct rb_node o_node;
- struct ceph_connection o_con;
- struct list_head o_requests;
- struct list_head o_linger_requests;
- struct list_head o_osd_lru;
- struct ceph_authorizer *o_authorizer;
- void *o_authorizer_buf, *o_authorizer_reply_buf;
- size_t o_authorizer_buf_len, o_authorizer_reply_buf_len;
- unsigned long lru_ttl;
- int o_marked_for_keepalive;
- struct list_head o_keepalive_item;
-};
-
-/* an in-flight request */
-struct ceph_osd_request {
- u64 r_tid; /* unique for this client */
- struct rb_node r_node;
- struct list_head r_req_lru_item;
- struct list_head r_osd_item;
- struct list_head r_linger_item;
- struct list_head r_linger_osd;
- struct ceph_osd *r_osd;
- struct ceph_pg r_pgid;
- int r_pg_osds[CEPH_PG_MAX_SIZE];
- int r_num_pg_osds;
-
- struct ceph_connection *r_con_filling_msg;
-
- struct ceph_msg *r_request, *r_reply;
- int r_result;
- int r_flags; /* any additional flags for the osd */
- u32 r_sent; /* >0 if r_request is sending/sent */
- int r_got_reply;
- int r_linger;
-
- struct ceph_osd_client *r_osdc;
- struct kref r_kref;
- bool r_mempool;
- struct completion r_completion, r_safe_completion;
- ceph_osdc_callback_t r_callback, r_safe_callback;
- struct ceph_eversion r_reassert_version;
- struct list_head r_unsafe_item;
-
- struct inode *r_inode; /* for use by callbacks */
- void *r_priv; /* ditto */
-
- char r_oid[MAX_OBJ_NAME_SIZE]; /* object name */
- int r_oid_len;
- unsigned long r_stamp; /* send OR check time */
-
- struct ceph_file_layout r_file_layout;
- struct ceph_snap_context *r_snapc; /* snap context for writes */
- unsigned r_num_pages; /* size of page array (follows) */
- unsigned r_page_alignment; /* io offset in first page */
- struct page **r_pages; /* pages for data payload */
- int r_pages_from_pool;
- int r_own_pages; /* if true, i own page list */
-#ifdef CONFIG_BLOCK
- struct bio *r_bio; /* instead of pages */
-#endif
-
- struct ceph_pagelist *r_trail; /* trailing part of the data */
-};
-
-struct ceph_osd_event {
- u64 cookie;
- int one_shot;
- struct ceph_osd_client *osdc;
- void (*cb)(u64, u64, u8, void *);
- void *data;
- struct rb_node node;
- struct list_head osd_node;
- struct kref kref;
- struct completion completion;
-};
-
-struct ceph_osd_event_work {
- struct work_struct work;
- struct ceph_osd_event *event;
- u64 ver;
- u64 notify_id;
- u8 opcode;
-};
-
-struct ceph_osd_client {
- struct ceph_client *client;
-
- struct ceph_osdmap *osdmap; /* current map */
- struct rw_semaphore map_sem;
- struct completion map_waiters;
- u64 last_requested_map;
-
- struct mutex request_mutex;
- struct rb_root osds; /* osds */
- struct list_head osd_lru; /* idle osds */
- u64 timeout_tid; /* tid of timeout triggering rq */
- u64 last_tid; /* tid of last request */
- struct rb_root requests; /* pending requests */
- struct list_head req_lru; /* in-flight lru */
- struct list_head req_unsent; /* unsent/need-resend queue */
- struct list_head req_notarget; /* map to no osd */
- struct list_head req_linger; /* lingering requests */
- int num_requests;
- struct delayed_work timeout_work;
- struct delayed_work osds_timeout_work;
-#ifdef CONFIG_DEBUG_FS
- struct dentry *debugfs_file;
-#endif
-
- mempool_t *req_mempool;
-
- struct ceph_msgpool msgpool_op;
- struct ceph_msgpool msgpool_op_reply;
-
- spinlock_t event_lock;
- struct rb_root event_tree;
- u64 event_count;
-
- struct workqueue_struct *notify_wq;
-};
-
-struct ceph_osd_req_op {
- u16 op; /* CEPH_OSD_OP_* */
- u32 flags; /* CEPH_OSD_FLAG_* */
- union {
- struct {
- u64 offset, length;
- u64 truncate_size;
- u32 truncate_seq;
- } extent;
- struct {
- const char *name;
- u32 name_len;
- const char *val;
- u32 value_len;
- __u8 cmp_op; /* CEPH_OSD_CMPXATTR_OP_* */
- __u8 cmp_mode; /* CEPH_OSD_CMPXATTR_MODE_* */
- } xattr;
- struct {
- const char *class_name;
- __u8 class_len;
- const char *method_name;
- __u8 method_len;
- __u8 argc;
- const char *indata;
- u32 indata_len;
- } cls;
- struct {
- u64 cookie, count;
- } pgls;
- struct {
- u64 snapid;
- } snap;
- struct {
- u64 cookie;
- u64 ver;
- __u8 flag;
- u32 prot_ver;
- u32 timeout;
- } watch;
- };
- u32 payload_len;
-};
-
-extern int ceph_osdc_init(struct ceph_osd_client *osdc,
- struct ceph_client *client);
-extern void ceph_osdc_stop(struct ceph_osd_client *osdc);
-
-extern void ceph_osdc_handle_reply(struct ceph_osd_client *osdc,
- struct ceph_msg *msg);
-extern void ceph_osdc_handle_map(struct ceph_osd_client *osdc,
- struct ceph_msg *msg);
-
-extern void ceph_calc_raw_layout(struct ceph_osd_client *osdc,
- struct ceph_file_layout *layout,
- u64 snapid,
- u64 off, u64 *plen, u64 *bno,
- struct ceph_osd_request *req,
- struct ceph_osd_req_op *op);
-
-extern struct ceph_osd_request *ceph_osdc_alloc_request(struct ceph_osd_client *osdc,
- int flags,
- struct ceph_snap_context *snapc,
- struct ceph_osd_req_op *ops,
- bool use_mempool,
- gfp_t gfp_flags,
- struct page **pages,
- struct bio *bio);
-
-extern void ceph_osdc_build_request(struct ceph_osd_request *req,
- u64 off, u64 *plen,
- struct ceph_osd_req_op *src_ops,
- struct ceph_snap_context *snapc,
- struct timespec *mtime,
- const char *oid,
- int oid_len);
-
-extern struct ceph_osd_request *ceph_osdc_new_request(struct ceph_osd_client *,
- struct ceph_file_layout *layout,
- struct ceph_vino vino,
- u64 offset, u64 *len, int op, int flags,
- struct ceph_snap_context *snapc,
- int do_sync, u32 truncate_seq,
- u64 truncate_size,
- struct timespec *mtime,
- bool use_mempool, int num_reply,
- int page_align);
-
-extern void ceph_osdc_set_request_linger(struct ceph_osd_client *osdc,
- struct ceph_osd_request *req);
-extern void ceph_osdc_unregister_linger_request(struct ceph_osd_client *osdc,
- struct ceph_osd_request *req);
-
-static inline void ceph_osdc_get_request(struct ceph_osd_request *req)
-{
- kref_get(&req->r_kref);
-}
-extern void ceph_osdc_release_request(struct kref *kref);
-static inline void ceph_osdc_put_request(struct ceph_osd_request *req)
-{
- kref_put(&req->r_kref, ceph_osdc_release_request);
-}
-
-extern int ceph_osdc_start_request(struct ceph_osd_client *osdc,
- struct ceph_osd_request *req,
- bool nofail);
-extern int ceph_osdc_wait_request(struct ceph_osd_client *osdc,
- struct ceph_osd_request *req);
-extern void ceph_osdc_sync(struct ceph_osd_client *osdc);
-
-extern int ceph_osdc_readpages(struct ceph_osd_client *osdc,
- struct ceph_vino vino,
- struct ceph_file_layout *layout,
- u64 off, u64 *plen,
- u32 truncate_seq, u64 truncate_size,
- struct page **pages, int nr_pages,
- int page_align);
-
-extern int ceph_osdc_writepages(struct ceph_osd_client *osdc,
- struct ceph_vino vino,
- struct ceph_file_layout *layout,
- struct ceph_snap_context *sc,
- u64 off, u64 len,
- u32 truncate_seq, u64 truncate_size,
- struct timespec *mtime,
- struct page **pages, int nr_pages,
- int flags, int do_sync, bool nofail);
-
-/* watch/notify events */
-extern int ceph_osdc_create_event(struct ceph_osd_client *osdc,
- void (*event_cb)(u64, u64, u8, void *),
- int one_shot, void *data,
- struct ceph_osd_event **pevent);
-extern void ceph_osdc_cancel_event(struct ceph_osd_event *event);
-extern int ceph_osdc_wait_event(struct ceph_osd_event *event,
- unsigned long timeout);
-extern void ceph_osdc_put_event(struct ceph_osd_event *event);
-#endif
-
diff --git a/ANDROID_3.4.5/include/linux/ceph/osdmap.h b/ANDROID_3.4.5/include/linux/ceph/osdmap.h
deleted file mode 100644
index ba4c205c..00000000
--- a/ANDROID_3.4.5/include/linux/ceph/osdmap.h
+++ /dev/null
@@ -1,130 +0,0 @@
-#ifndef _FS_CEPH_OSDMAP_H
-#define _FS_CEPH_OSDMAP_H
-
-#include <linux/rbtree.h>
-#include "types.h"
-#include "ceph_fs.h"
-#include <linux/crush/crush.h>
-
-/*
- * The osd map describes the current membership of the osd cluster and
- * specifies the mapping of objects to placement groups and placement
- * groups to (sets of) osds. That is, it completely specifies the
- * (desired) distribution of all data objects in the system at some
- * point in time.
- *
- * Each map version is identified by an epoch, which increases monotonically.
- *
- * The map can be updated either via an incremental map (diff) describing
- * the change between two successive epochs, or as a fully encoded map.
- */
-struct ceph_pg_pool_info {
- struct rb_node node;
- int id;
- struct ceph_pg_pool v;
- int pg_num_mask, pgp_num_mask, lpg_num_mask, lpgp_num_mask;
- char *name;
-};
-
-struct ceph_pg_mapping {
- struct rb_node node;
- struct ceph_pg pgid;
- int len;
- int osds[];
-};
-
-struct ceph_osdmap {
- struct ceph_fsid fsid;
- u32 epoch;
- u32 mkfs_epoch;
- struct ceph_timespec created, modified;
-
- u32 flags; /* CEPH_OSDMAP_* */
-
- u32 max_osd; /* size of osd_state, _offload, _addr arrays */
- u8 *osd_state; /* CEPH_OSD_* */
- u32 *osd_weight; /* 0 = failed, 0x10000 = 100% normal */
- struct ceph_entity_addr *osd_addr;
-
- struct rb_root pg_temp;
- struct rb_root pg_pools;
- u32 pool_max;
-
- /* the CRUSH map specifies the mapping of placement groups to
- * the list of osds that store+replicate them. */
- struct crush_map *crush;
-};
-
-/*
- * file layout helpers
- */
-#define ceph_file_layout_su(l) ((__s32)le32_to_cpu((l).fl_stripe_unit))
-#define ceph_file_layout_stripe_count(l) \
- ((__s32)le32_to_cpu((l).fl_stripe_count))
-#define ceph_file_layout_object_size(l) ((__s32)le32_to_cpu((l).fl_object_size))
-#define ceph_file_layout_cas_hash(l) ((__s32)le32_to_cpu((l).fl_cas_hash))
-#define ceph_file_layout_object_su(l) \
- ((__s32)le32_to_cpu((l).fl_object_stripe_unit))
-#define ceph_file_layout_pg_preferred(l) \
- ((__s32)le32_to_cpu((l).fl_pg_preferred))
-#define ceph_file_layout_pg_pool(l) \
- ((__s32)le32_to_cpu((l).fl_pg_pool))
-
-static inline unsigned ceph_file_layout_stripe_width(struct ceph_file_layout *l)
-{
- return le32_to_cpu(l->fl_stripe_unit) *
- le32_to_cpu(l->fl_stripe_count);
-}
-
-/* "period" == bytes before i start on a new set of objects */
-static inline unsigned ceph_file_layout_period(struct ceph_file_layout *l)
-{
- return le32_to_cpu(l->fl_object_size) *
- le32_to_cpu(l->fl_stripe_count);
-}
-
-
-static inline int ceph_osd_is_up(struct ceph_osdmap *map, int osd)
-{
- return (osd < map->max_osd) && (map->osd_state[osd] & CEPH_OSD_UP);
-}
-
-static inline bool ceph_osdmap_flag(struct ceph_osdmap *map, int flag)
-{
- return map && (map->flags & flag);
-}
-
-extern char *ceph_osdmap_state_str(char *str, int len, int state);
-
-static inline struct ceph_entity_addr *ceph_osd_addr(struct ceph_osdmap *map,
- int osd)
-{
- if (osd >= map->max_osd)
- return NULL;
- return &map->osd_addr[osd];
-}
-
-extern struct ceph_osdmap *osdmap_decode(void **p, void *end);
-extern struct ceph_osdmap *osdmap_apply_incremental(void **p, void *end,
- struct ceph_osdmap *map,
- struct ceph_messenger *msgr);
-extern void ceph_osdmap_destroy(struct ceph_osdmap *map);
-
-/* calculate mapping of a file extent to an object */
-extern void ceph_calc_file_object_mapping(struct ceph_file_layout *layout,
- u64 off, u64 *plen,
- u64 *bno, u64 *oxoff, u64 *oxlen);
-
-/* calculate mapping of object to a placement group */
-extern int ceph_calc_object_layout(struct ceph_object_layout *ol,
- const char *oid,
- struct ceph_file_layout *fl,
- struct ceph_osdmap *osdmap);
-extern int ceph_calc_pg_acting(struct ceph_osdmap *osdmap, struct ceph_pg pgid,
- int *acting);
-extern int ceph_calc_pg_primary(struct ceph_osdmap *osdmap,
- struct ceph_pg pgid);
-
-extern int ceph_pg_poolid_by_name(struct ceph_osdmap *map, const char *name);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ceph/pagelist.h b/ANDROID_3.4.5/include/linux/ceph/pagelist.h
deleted file mode 100644
index 9660d6b0..00000000
--- a/ANDROID_3.4.5/include/linux/ceph/pagelist.h
+++ /dev/null
@@ -1,75 +0,0 @@
-#ifndef __FS_CEPH_PAGELIST_H
-#define __FS_CEPH_PAGELIST_H
-
-#include <linux/list.h>
-
-struct ceph_pagelist {
- struct list_head head;
- void *mapped_tail;
- size_t length;
- size_t room;
- struct list_head free_list;
- size_t num_pages_free;
-};
-
-struct ceph_pagelist_cursor {
- struct ceph_pagelist *pl; /* pagelist, for error checking */
- struct list_head *page_lru; /* page in list */
- size_t room; /* room remaining to reset to */
-};
-
-static inline void ceph_pagelist_init(struct ceph_pagelist *pl)
-{
- INIT_LIST_HEAD(&pl->head);
- pl->mapped_tail = NULL;
- pl->length = 0;
- pl->room = 0;
- INIT_LIST_HEAD(&pl->free_list);
- pl->num_pages_free = 0;
-}
-
-extern int ceph_pagelist_release(struct ceph_pagelist *pl);
-
-extern int ceph_pagelist_append(struct ceph_pagelist *pl, const void *d, size_t l);
-
-extern int ceph_pagelist_reserve(struct ceph_pagelist *pl, size_t space);
-
-extern int ceph_pagelist_free_reserve(struct ceph_pagelist *pl);
-
-extern void ceph_pagelist_set_cursor(struct ceph_pagelist *pl,
- struct ceph_pagelist_cursor *c);
-
-extern int ceph_pagelist_truncate(struct ceph_pagelist *pl,
- struct ceph_pagelist_cursor *c);
-
-static inline int ceph_pagelist_encode_64(struct ceph_pagelist *pl, u64 v)
-{
- __le64 ev = cpu_to_le64(v);
- return ceph_pagelist_append(pl, &ev, sizeof(ev));
-}
-static inline int ceph_pagelist_encode_32(struct ceph_pagelist *pl, u32 v)
-{
- __le32 ev = cpu_to_le32(v);
- return ceph_pagelist_append(pl, &ev, sizeof(ev));
-}
-static inline int ceph_pagelist_encode_16(struct ceph_pagelist *pl, u16 v)
-{
- __le16 ev = cpu_to_le16(v);
- return ceph_pagelist_append(pl, &ev, sizeof(ev));
-}
-static inline int ceph_pagelist_encode_8(struct ceph_pagelist *pl, u8 v)
-{
- return ceph_pagelist_append(pl, &v, 1);
-}
-static inline int ceph_pagelist_encode_string(struct ceph_pagelist *pl,
- char *s, size_t len)
-{
- int ret = ceph_pagelist_encode_32(pl, len);
- if (ret)
- return ret;
- if (len)
- return ceph_pagelist_append(pl, s, len);
- return 0;
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ceph/rados.h b/ANDROID_3.4.5/include/linux/ceph/rados.h
deleted file mode 100644
index 0a990998..00000000
--- a/ANDROID_3.4.5/include/linux/ceph/rados.h
+++ /dev/null
@@ -1,426 +0,0 @@
-#ifndef CEPH_RADOS_H
-#define CEPH_RADOS_H
-
-/*
- * Data types for the Ceph distributed object storage layer RADOS
- * (Reliable Autonomic Distributed Object Store).
- */
-
-#include "msgr.h"
-
-/*
- * osdmap encoding versions
- */
-#define CEPH_OSDMAP_INC_VERSION 5
-#define CEPH_OSDMAP_INC_VERSION_EXT 6
-#define CEPH_OSDMAP_VERSION 5
-#define CEPH_OSDMAP_VERSION_EXT 6
-
-/*
- * fs id
- */
-struct ceph_fsid {
- unsigned char fsid[16];
-};
-
-static inline int ceph_fsid_compare(const struct ceph_fsid *a,
- const struct ceph_fsid *b)
-{
- return memcmp(a, b, sizeof(*a));
-}
-
-/*
- * ino, object, etc.
- */
-typedef __le64 ceph_snapid_t;
-#define CEPH_SNAPDIR ((__u64)(-1)) /* reserved for hidden .snap dir */
-#define CEPH_NOSNAP ((__u64)(-2)) /* "head", "live" revision */
-#define CEPH_MAXSNAP ((__u64)(-3)) /* largest valid snapid */
-
-struct ceph_timespec {
- __le32 tv_sec;
- __le32 tv_nsec;
-} __attribute__ ((packed));
-
-
-/*
- * object layout - how objects are mapped into PGs
- */
-#define CEPH_OBJECT_LAYOUT_HASH 1
-#define CEPH_OBJECT_LAYOUT_LINEAR 2
-#define CEPH_OBJECT_LAYOUT_HASHINO 3
-
-/*
- * pg layout -- how PGs are mapped onto (sets of) OSDs
- */
-#define CEPH_PG_LAYOUT_CRUSH 0
-#define CEPH_PG_LAYOUT_HASH 1
-#define CEPH_PG_LAYOUT_LINEAR 2
-#define CEPH_PG_LAYOUT_HYBRID 3
-
-#define CEPH_PG_MAX_SIZE 16 /* max # osds in a single pg */
-
-/*
- * placement group.
- * we encode this into one __le64.
- */
-struct ceph_pg {
- __le16 preferred; /* preferred primary osd */
- __le16 ps; /* placement seed */
- __le32 pool; /* object pool */
-} __attribute__ ((packed));
-
-/*
- * pg_pool is a set of pgs storing a pool of objects
- *
- * pg_num -- base number of pseudorandomly placed pgs
- *
- * pgp_num -- effective number when calculating pg placement. this
- * is used for pg_num increases. new pgs result in data being "split"
- * into new pgs. for this to proceed smoothly, new pgs are intiially
- * colocated with their parents; that is, pgp_num doesn't increase
- * until the new pgs have successfully split. only _then_ are the new
- * pgs placed independently.
- *
- * lpg_num -- localized pg count (per device). replicas are randomly
- * selected.
- *
- * lpgp_num -- as above.
- */
-#define CEPH_PG_TYPE_REP 1
-#define CEPH_PG_TYPE_RAID4 2
-#define CEPH_PG_POOL_VERSION 2
-struct ceph_pg_pool {
- __u8 type; /* CEPH_PG_TYPE_* */
- __u8 size; /* number of osds in each pg */
- __u8 crush_ruleset; /* crush placement rule */
- __u8 object_hash; /* hash mapping object name to ps */
- __le32 pg_num, pgp_num; /* number of pg's */
- __le32 lpg_num, lpgp_num; /* number of localized pg's */
- __le32 last_change; /* most recent epoch changed */
- __le64 snap_seq; /* seq for per-pool snapshot */
- __le32 snap_epoch; /* epoch of last snap */
- __le32 num_snaps;
- __le32 num_removed_snap_intervals; /* if non-empty, NO per-pool snaps */
- __le64 auid; /* who owns the pg */
-} __attribute__ ((packed));
-
-/*
- * stable_mod func is used to control number of placement groups.
- * similar to straight-up modulo, but produces a stable mapping as b
- * increases over time. b is the number of bins, and bmask is the
- * containing power of 2 minus 1.
- *
- * b <= bmask and bmask=(2**n)-1
- * e.g., b=12 -> bmask=15, b=123 -> bmask=127
- */
-static inline int ceph_stable_mod(int x, int b, int bmask)
-{
- if ((x & bmask) < b)
- return x & bmask;
- else
- return x & (bmask >> 1);
-}
-
-/*
- * object layout - how a given object should be stored.
- */
-struct ceph_object_layout {
- struct ceph_pg ol_pgid; /* raw pg, with _full_ ps precision. */
- __le32 ol_stripe_unit; /* for per-object parity, if any */
-} __attribute__ ((packed));
-
-/*
- * compound epoch+version, used by storage layer to serialize mutations
- */
-struct ceph_eversion {
- __le32 epoch;
- __le64 version;
-} __attribute__ ((packed));
-
-/*
- * osd map bits
- */
-
-/* status bits */
-#define CEPH_OSD_EXISTS 1
-#define CEPH_OSD_UP 2
-
-/* osd weights. fixed point value: 0x10000 == 1.0 ("in"), 0 == "out" */
-#define CEPH_OSD_IN 0x10000
-#define CEPH_OSD_OUT 0
-
-
-/*
- * osd map flag bits
- */
-#define CEPH_OSDMAP_NEARFULL (1<<0) /* sync writes (near ENOSPC) */
-#define CEPH_OSDMAP_FULL (1<<1) /* no data writes (ENOSPC) */
-#define CEPH_OSDMAP_PAUSERD (1<<2) /* pause all reads */
-#define CEPH_OSDMAP_PAUSEWR (1<<3) /* pause all writes */
-#define CEPH_OSDMAP_PAUSEREC (1<<4) /* pause recovery */
-
-/*
- * osd ops
- */
-#define CEPH_OSD_OP_MODE 0xf000
-#define CEPH_OSD_OP_MODE_RD 0x1000
-#define CEPH_OSD_OP_MODE_WR 0x2000
-#define CEPH_OSD_OP_MODE_RMW 0x3000
-#define CEPH_OSD_OP_MODE_SUB 0x4000
-
-#define CEPH_OSD_OP_TYPE 0x0f00
-#define CEPH_OSD_OP_TYPE_LOCK 0x0100
-#define CEPH_OSD_OP_TYPE_DATA 0x0200
-#define CEPH_OSD_OP_TYPE_ATTR 0x0300
-#define CEPH_OSD_OP_TYPE_EXEC 0x0400
-#define CEPH_OSD_OP_TYPE_PG 0x0500
-
-enum {
- /** data **/
- /* read */
- CEPH_OSD_OP_READ = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_DATA | 1,
- CEPH_OSD_OP_STAT = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_DATA | 2,
- CEPH_OSD_OP_MAPEXT = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_DATA | 3,
-
- /* fancy read */
- CEPH_OSD_OP_MASKTRUNC = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_DATA | 4,
- CEPH_OSD_OP_SPARSE_READ = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_DATA | 5,
-
- CEPH_OSD_OP_NOTIFY = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_DATA | 6,
- CEPH_OSD_OP_NOTIFY_ACK = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_DATA | 7,
-
- /* versioning */
- CEPH_OSD_OP_ASSERT_VER = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_DATA | 8,
-
- /* write */
- CEPH_OSD_OP_WRITE = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 1,
- CEPH_OSD_OP_WRITEFULL = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 2,
- CEPH_OSD_OP_TRUNCATE = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 3,
- CEPH_OSD_OP_ZERO = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 4,
- CEPH_OSD_OP_DELETE = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 5,
-
- /* fancy write */
- CEPH_OSD_OP_APPEND = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 6,
- CEPH_OSD_OP_STARTSYNC = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 7,
- CEPH_OSD_OP_SETTRUNC = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 8,
- CEPH_OSD_OP_TRIMTRUNC = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 9,
-
- CEPH_OSD_OP_TMAPUP = CEPH_OSD_OP_MODE_RMW | CEPH_OSD_OP_TYPE_DATA | 10,
- CEPH_OSD_OP_TMAPPUT = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 11,
- CEPH_OSD_OP_TMAPGET = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_DATA | 12,
-
- CEPH_OSD_OP_CREATE = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 13,
- CEPH_OSD_OP_ROLLBACK= CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 14,
-
- CEPH_OSD_OP_WATCH = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_DATA | 15,
-
- /** attrs **/
- /* read */
- CEPH_OSD_OP_GETXATTR = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_ATTR | 1,
- CEPH_OSD_OP_GETXATTRS = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_ATTR | 2,
- CEPH_OSD_OP_CMPXATTR = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_ATTR | 3,
-
- /* write */
- CEPH_OSD_OP_SETXATTR = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_ATTR | 1,
- CEPH_OSD_OP_SETXATTRS = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_ATTR | 2,
- CEPH_OSD_OP_RESETXATTRS = CEPH_OSD_OP_MODE_WR|CEPH_OSD_OP_TYPE_ATTR | 3,
- CEPH_OSD_OP_RMXATTR = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_ATTR | 4,
-
- /** subop **/
- CEPH_OSD_OP_PULL = CEPH_OSD_OP_MODE_SUB | 1,
- CEPH_OSD_OP_PUSH = CEPH_OSD_OP_MODE_SUB | 2,
- CEPH_OSD_OP_BALANCEREADS = CEPH_OSD_OP_MODE_SUB | 3,
- CEPH_OSD_OP_UNBALANCEREADS = CEPH_OSD_OP_MODE_SUB | 4,
- CEPH_OSD_OP_SCRUB = CEPH_OSD_OP_MODE_SUB | 5,
- CEPH_OSD_OP_SCRUB_RESERVE = CEPH_OSD_OP_MODE_SUB | 6,
- CEPH_OSD_OP_SCRUB_UNRESERVE = CEPH_OSD_OP_MODE_SUB | 7,
- CEPH_OSD_OP_SCRUB_STOP = CEPH_OSD_OP_MODE_SUB | 8,
-
- /** lock **/
- CEPH_OSD_OP_WRLOCK = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_LOCK | 1,
- CEPH_OSD_OP_WRUNLOCK = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_LOCK | 2,
- CEPH_OSD_OP_RDLOCK = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_LOCK | 3,
- CEPH_OSD_OP_RDUNLOCK = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_LOCK | 4,
- CEPH_OSD_OP_UPLOCK = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_LOCK | 5,
- CEPH_OSD_OP_DNLOCK = CEPH_OSD_OP_MODE_WR | CEPH_OSD_OP_TYPE_LOCK | 6,
-
- /** exec **/
- CEPH_OSD_OP_CALL = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_EXEC | 1,
-
- /** pg **/
- CEPH_OSD_OP_PGLS = CEPH_OSD_OP_MODE_RD | CEPH_OSD_OP_TYPE_PG | 1,
-};
-
-static inline int ceph_osd_op_type_lock(int op)
-{
- return (op & CEPH_OSD_OP_TYPE) == CEPH_OSD_OP_TYPE_LOCK;
-}
-static inline int ceph_osd_op_type_data(int op)
-{
- return (op & CEPH_OSD_OP_TYPE) == CEPH_OSD_OP_TYPE_DATA;
-}
-static inline int ceph_osd_op_type_attr(int op)
-{
- return (op & CEPH_OSD_OP_TYPE) == CEPH_OSD_OP_TYPE_ATTR;
-}
-static inline int ceph_osd_op_type_exec(int op)
-{
- return (op & CEPH_OSD_OP_TYPE) == CEPH_OSD_OP_TYPE_EXEC;
-}
-static inline int ceph_osd_op_type_pg(int op)
-{
- return (op & CEPH_OSD_OP_TYPE) == CEPH_OSD_OP_TYPE_PG;
-}
-
-static inline int ceph_osd_op_mode_subop(int op)
-{
- return (op & CEPH_OSD_OP_MODE) == CEPH_OSD_OP_MODE_SUB;
-}
-static inline int ceph_osd_op_mode_read(int op)
-{
- return (op & CEPH_OSD_OP_MODE) == CEPH_OSD_OP_MODE_RD;
-}
-static inline int ceph_osd_op_mode_modify(int op)
-{
- return (op & CEPH_OSD_OP_MODE) == CEPH_OSD_OP_MODE_WR;
-}
-
-/*
- * note that the following tmap stuff is also defined in the ceph librados.h
- * any modification here needs to be updated there
- */
-#define CEPH_OSD_TMAP_HDR 'h'
-#define CEPH_OSD_TMAP_SET 's'
-#define CEPH_OSD_TMAP_RM 'r'
-
-extern const char *ceph_osd_op_name(int op);
-
-
-/*
- * osd op flags
- *
- * An op may be READ, WRITE, or READ|WRITE.
- */
-enum {
- CEPH_OSD_FLAG_ACK = 1, /* want (or is) "ack" ack */
- CEPH_OSD_FLAG_ONNVRAM = 2, /* want (or is) "onnvram" ack */
- CEPH_OSD_FLAG_ONDISK = 4, /* want (or is) "ondisk" ack */
- CEPH_OSD_FLAG_RETRY = 8, /* resend attempt */
- CEPH_OSD_FLAG_READ = 16, /* op may read */
- CEPH_OSD_FLAG_WRITE = 32, /* op may write */
- CEPH_OSD_FLAG_ORDERSNAP = 64, /* EOLDSNAP if snapc is out of order */
- CEPH_OSD_FLAG_PEERSTAT = 128, /* msg includes osd_peer_stat */
- CEPH_OSD_FLAG_BALANCE_READS = 256,
- CEPH_OSD_FLAG_PARALLELEXEC = 512, /* execute op in parallel */
- CEPH_OSD_FLAG_PGOP = 1024, /* pg op, no object */
- CEPH_OSD_FLAG_EXEC = 2048, /* op may exec */
- CEPH_OSD_FLAG_EXEC_PUBLIC = 4096, /* op may exec (public) */
-};
-
-enum {
- CEPH_OSD_OP_FLAG_EXCL = 1, /* EXCL object create */
-};
-
-#define EOLDSNAPC ERESTART /* ORDERSNAP flag set; writer has old snapc*/
-#define EBLACKLISTED ESHUTDOWN /* blacklisted */
-
-/* xattr comparison */
-enum {
- CEPH_OSD_CMPXATTR_OP_NOP = 0,
- CEPH_OSD_CMPXATTR_OP_EQ = 1,
- CEPH_OSD_CMPXATTR_OP_NE = 2,
- CEPH_OSD_CMPXATTR_OP_GT = 3,
- CEPH_OSD_CMPXATTR_OP_GTE = 4,
- CEPH_OSD_CMPXATTR_OP_LT = 5,
- CEPH_OSD_CMPXATTR_OP_LTE = 6
-};
-
-enum {
- CEPH_OSD_CMPXATTR_MODE_STRING = 1,
- CEPH_OSD_CMPXATTR_MODE_U64 = 2
-};
-
-#define RADOS_NOTIFY_VER 1
-
-/*
- * an individual object operation. each may be accompanied by some data
- * payload
- */
-struct ceph_osd_op {
- __le16 op; /* CEPH_OSD_OP_* */
- __le32 flags; /* CEPH_OSD_FLAG_* */
- union {
- struct {
- __le64 offset, length;
- __le64 truncate_size;
- __le32 truncate_seq;
- } __attribute__ ((packed)) extent;
- struct {
- __le32 name_len;
- __le32 value_len;
- __u8 cmp_op; /* CEPH_OSD_CMPXATTR_OP_* */
- __u8 cmp_mode; /* CEPH_OSD_CMPXATTR_MODE_* */
- } __attribute__ ((packed)) xattr;
- struct {
- __u8 class_len;
- __u8 method_len;
- __u8 argc;
- __le32 indata_len;
- } __attribute__ ((packed)) cls;
- struct {
- __le64 cookie, count;
- } __attribute__ ((packed)) pgls;
- struct {
- __le64 snapid;
- } __attribute__ ((packed)) snap;
- struct {
- __le64 cookie;
- __le64 ver;
- __u8 flag; /* 0 = unwatch, 1 = watch */
- } __attribute__ ((packed)) watch;
-};
- __le32 payload_len;
-} __attribute__ ((packed));
-
-/*
- * osd request message header. each request may include multiple
- * ceph_osd_op object operations.
- */
-struct ceph_osd_request_head {
- __le32 client_inc; /* client incarnation */
- struct ceph_object_layout layout; /* pgid */
- __le32 osdmap_epoch; /* client's osdmap epoch */
-
- __le32 flags;
-
- struct ceph_timespec mtime; /* for mutations only */
- struct ceph_eversion reassert_version; /* if we are replaying op */
-
- __le32 object_len; /* length of object name */
-
- __le64 snapid; /* snapid to read */
- __le64 snap_seq; /* writer's snap context */
- __le32 num_snaps;
-
- __le16 num_ops;
- struct ceph_osd_op ops[]; /* followed by ops[], obj, ticket, snaps */
-} __attribute__ ((packed));
-
-struct ceph_osd_reply_head {
- __le32 client_inc; /* client incarnation */
- __le32 flags;
- struct ceph_object_layout layout;
- __le32 osdmap_epoch;
- struct ceph_eversion reassert_version; /* for replaying uncommitted */
-
- __le32 result; /* result code */
-
- __le32 object_len; /* length of object name */
- __le32 num_ops;
- struct ceph_osd_op ops[0]; /* ops[], object */
-} __attribute__ ((packed));
-
-
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ceph/types.h b/ANDROID_3.4.5/include/linux/ceph/types.h
deleted file mode 100644
index 28b35a00..00000000
--- a/ANDROID_3.4.5/include/linux/ceph/types.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef _FS_CEPH_TYPES_H
-#define _FS_CEPH_TYPES_H
-
-/* needed before including ceph_fs.h */
-#include <linux/in.h>
-#include <linux/types.h>
-#include <linux/fcntl.h>
-#include <linux/string.h>
-
-#include "ceph_fs.h"
-#include "ceph_frag.h"
-#include "ceph_hash.h"
-
-/*
- * Identify inodes by both their ino AND snapshot id (a u64).
- */
-struct ceph_vino {
- u64 ino;
- u64 snap;
-};
-
-
-/* context for the caps reservation mechanism */
-struct ceph_cap_reservation {
- int count;
-};
-
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/cfag12864b.h b/ANDROID_3.4.5/include/linux/cfag12864b.h
deleted file mode 100644
index b454dfce..00000000
--- a/ANDROID_3.4.5/include/linux/cfag12864b.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Filename: cfag12864b.h
- * Version: 0.1.0
- * Description: cfag12864b LCD driver header
- * License: GPLv2
- *
- * Author: Copyright (C) Miguel Ojeda Sandonis
- * Date: 2006-10-12
- *
- * 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.
- *
- * 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
- *
- */
-
-#ifndef _CFAG12864B_H_
-#define _CFAG12864B_H_
-
-#define CFAG12864B_WIDTH (128)
-#define CFAG12864B_HEIGHT (64)
-#define CFAG12864B_CONTROLLERS (2)
-#define CFAG12864B_PAGES (8)
-#define CFAG12864B_ADDRESSES (64)
-#define CFAG12864B_SIZE ((CFAG12864B_CONTROLLERS) * \
- (CFAG12864B_PAGES) * \
- (CFAG12864B_ADDRESSES))
-
-/*
- * The driver will blit this buffer to the LCD
- *
- * Its size is CFAG12864B_SIZE.
- */
-extern unsigned char * cfag12864b_buffer;
-
-/*
- * Get the refresh rate of the LCD
- *
- * Returns the refresh rate (hertz).
- */
-extern unsigned int cfag12864b_getrate(void);
-
-/*
- * Enable refreshing
- *
- * Returns 0 if successful (anyone was using it),
- * or != 0 if failed (someone is using it).
- */
-extern unsigned char cfag12864b_enable(void);
-
-/*
- * Disable refreshing
- *
- * You should call this only when you finish using the LCD.
- */
-extern void cfag12864b_disable(void);
-
-/*
- * Is enabled refreshing? (is anyone using the module?)
- *
- * Returns 0 if refreshing is not enabled (anyone is using it),
- * or != 0 if refreshing is enabled (someone is using it).
- *
- * Useful for buffer read-only modules.
- */
-extern unsigned char cfag12864b_isenabled(void);
-
-/*
- * Is the module inited?
- */
-extern unsigned char cfag12864b_isinited(void);
-
-#endif /* _CFAG12864B_H_ */
-
diff --git a/ANDROID_3.4.5/include/linux/cgroup.h b/ANDROID_3.4.5/include/linux/cgroup.h
deleted file mode 100644
index b2a37357..00000000
--- a/ANDROID_3.4.5/include/linux/cgroup.h
+++ /dev/null
@@ -1,627 +0,0 @@
-#ifndef _LINUX_CGROUP_H
-#define _LINUX_CGROUP_H
-/*
- * cgroup interface
- *
- * Copyright (C) 2003 BULL SA
- * Copyright (C) 2004-2006 Silicon Graphics, Inc.
- *
- */
-
-#include <linux/sched.h>
-#include <linux/cpumask.h>
-#include <linux/nodemask.h>
-#include <linux/rcupdate.h>
-#include <linux/cgroupstats.h>
-#include <linux/prio_heap.h>
-#include <linux/rwsem.h>
-#include <linux/idr.h>
-
-#ifdef CONFIG_CGROUPS
-
-struct cgroupfs_root;
-struct cgroup_subsys;
-struct inode;
-struct cgroup;
-struct css_id;
-
-extern int cgroup_init_early(void);
-extern int cgroup_init(void);
-extern void cgroup_lock(void);
-extern int cgroup_lock_is_held(void);
-extern bool cgroup_lock_live_group(struct cgroup *cgrp);
-extern void cgroup_unlock(void);
-extern void cgroup_fork(struct task_struct *p);
-extern void cgroup_fork_callbacks(struct task_struct *p);
-extern void cgroup_post_fork(struct task_struct *p);
-extern void cgroup_exit(struct task_struct *p, int run_callbacks);
-extern int cgroupstats_build(struct cgroupstats *stats,
- struct dentry *dentry);
-extern int cgroup_load_subsys(struct cgroup_subsys *ss);
-extern void cgroup_unload_subsys(struct cgroup_subsys *ss);
-
-extern const struct file_operations proc_cgroup_operations;
-
-/* Define the enumeration of all builtin cgroup subsystems */
-#define SUBSYS(_x) _x ## _subsys_id,
-enum cgroup_subsys_id {
-#include <linux/cgroup_subsys.h>
- CGROUP_BUILTIN_SUBSYS_COUNT
-};
-#undef SUBSYS
-/*
- * This define indicates the maximum number of subsystems that can be loaded
- * at once. We limit to this many since cgroupfs_root has subsys_bits to keep
- * track of all of them.
- */
-#define CGROUP_SUBSYS_COUNT (BITS_PER_BYTE*sizeof(unsigned long))
-
-/* Per-subsystem/per-cgroup state maintained by the system. */
-struct cgroup_subsys_state {
- /*
- * The cgroup that this subsystem is attached to. Useful
- * for subsystems that want to know about the cgroup
- * hierarchy structure
- */
- struct cgroup *cgroup;
-
- /*
- * State maintained by the cgroup system to allow subsystems
- * to be "busy". Should be accessed via css_get(),
- * css_tryget() and and css_put().
- */
-
- atomic_t refcnt;
-
- unsigned long flags;
- /* ID for this css, if possible */
- struct css_id __rcu *id;
-};
-
-/* bits in struct cgroup_subsys_state flags field */
-enum {
- CSS_ROOT, /* This CSS is the root of the subsystem */
- CSS_REMOVED, /* This CSS is dead */
-};
-
-/*
- * Call css_get() to hold a reference on the css; it can be used
- * for a reference obtained via:
- * - an existing ref-counted reference to the css
- * - task->cgroups for a locked task
- */
-
-extern void __css_get(struct cgroup_subsys_state *css, int count);
-static inline void css_get(struct cgroup_subsys_state *css)
-{
- /* We don't need to reference count the root state */
- if (!test_bit(CSS_ROOT, &css->flags))
- __css_get(css, 1);
-}
-
-static inline bool css_is_removed(struct cgroup_subsys_state *css)
-{
- return test_bit(CSS_REMOVED, &css->flags);
-}
-
-/*
- * Call css_tryget() to take a reference on a css if your existing
- * (known-valid) reference isn't already ref-counted. Returns false if
- * the css has been destroyed.
- */
-
-static inline bool css_tryget(struct cgroup_subsys_state *css)
-{
- if (test_bit(CSS_ROOT, &css->flags))
- return true;
- while (!atomic_inc_not_zero(&css->refcnt)) {
- if (test_bit(CSS_REMOVED, &css->flags))
- return false;
- cpu_relax();
- }
- return true;
-}
-
-/*
- * css_put() should be called to release a reference taken by
- * css_get() or css_tryget()
- */
-
-extern void __css_put(struct cgroup_subsys_state *css, int count);
-static inline void css_put(struct cgroup_subsys_state *css)
-{
- if (!test_bit(CSS_ROOT, &css->flags))
- __css_put(css, 1);
-}
-
-/* bits in struct cgroup flags field */
-enum {
- /* Control Group is dead */
- CGRP_REMOVED,
- /* Control Group has ever had a child cgroup or a task */
- CGRP_RELEASABLE,
- /* Control Group requires release notifications to userspace */
- CGRP_NOTIFY_ON_RELEASE,
- /*
- * A thread in rmdir() is wating for this cgroup.
- */
- CGRP_WAIT_ON_RMDIR,
- /*
- * Clone cgroup values when creating a new child cgroup
- */
- CGRP_CLONE_CHILDREN,
-};
-
-struct cgroup {
- unsigned long flags; /* "unsigned long" so bitops work */
-
- /*
- * count users of this cgroup. >0 means busy, but doesn't
- * necessarily indicate the number of tasks in the cgroup
- */
- atomic_t count;
-
- /*
- * We link our 'sibling' struct into our parent's 'children'.
- * Our children link their 'sibling' into our 'children'.
- */
- struct list_head sibling; /* my parent's children */
- struct list_head children; /* my children */
-
- struct cgroup *parent; /* my parent */
- struct dentry __rcu *dentry; /* cgroup fs entry, RCU protected */
-
- /* Private pointers for each registered subsystem */
- struct cgroup_subsys_state *subsys[CGROUP_SUBSYS_COUNT];
-
- struct cgroupfs_root *root;
- struct cgroup *top_cgroup;
-
- /*
- * List of cg_cgroup_links pointing at css_sets with
- * tasks in this cgroup. Protected by css_set_lock
- */
- struct list_head css_sets;
-
- /*
- * Linked list running through all cgroups that can
- * potentially be reaped by the release agent. Protected by
- * release_list_lock
- */
- struct list_head release_list;
-
- /*
- * list of pidlists, up to two for each namespace (one for procs, one
- * for tasks); created on demand.
- */
- struct list_head pidlists;
- struct mutex pidlist_mutex;
-
- /* For RCU-protected deletion */
- struct rcu_head rcu_head;
-
- /* List of events which userspace want to receive */
- struct list_head event_list;
- spinlock_t event_list_lock;
-};
-
-/*
- * A css_set is a structure holding pointers to a set of
- * cgroup_subsys_state objects. This saves space in the task struct
- * object and speeds up fork()/exit(), since a single inc/dec and a
- * list_add()/del() can bump the reference count on the entire cgroup
- * set for a task.
- */
-
-struct css_set {
-
- /* Reference count */
- atomic_t refcount;
-
- /*
- * List running through all cgroup groups in the same hash
- * slot. Protected by css_set_lock
- */
- struct hlist_node hlist;
-
- /*
- * List running through all tasks using this cgroup
- * group. Protected by css_set_lock
- */
- struct list_head tasks;
-
- /*
- * List of cg_cgroup_link objects on link chains from
- * cgroups referenced from this css_set. Protected by
- * css_set_lock
- */
- struct list_head cg_links;
-
- /*
- * Set of subsystem states, one for each subsystem. This array
- * is immutable after creation apart from the init_css_set
- * during subsystem registration (at boot time) and modular subsystem
- * loading/unloading.
- */
- struct cgroup_subsys_state *subsys[CGROUP_SUBSYS_COUNT];
-
- /* For RCU-protected deletion */
- struct rcu_head rcu_head;
- struct work_struct work;
-};
-
-/*
- * cgroup_map_cb is an abstract callback API for reporting map-valued
- * control files
- */
-
-struct cgroup_map_cb {
- int (*fill)(struct cgroup_map_cb *cb, const char *key, u64 value);
- void *state;
-};
-
-/*
- * struct cftype: handler definitions for cgroup control files
- *
- * When reading/writing to a file:
- * - the cgroup to use is file->f_dentry->d_parent->d_fsdata
- * - the 'cftype' of the file is file->f_dentry->d_fsdata
- */
-
-#define MAX_CFTYPE_NAME 64
-struct cftype {
- /*
- * By convention, the name should begin with the name of the
- * subsystem, followed by a period
- */
- char name[MAX_CFTYPE_NAME];
- int private;
- /*
- * If not 0, file mode is set to this value, otherwise it will
- * be figured out automatically
- */
- umode_t mode;
-
- /*
- * If non-zero, defines the maximum length of string that can
- * be passed to write_string; defaults to 64
- */
- size_t max_write_len;
-
- int (*open)(struct inode *inode, struct file *file);
- ssize_t (*read)(struct cgroup *cgrp, struct cftype *cft,
- struct file *file,
- char __user *buf, size_t nbytes, loff_t *ppos);
- /*
- * read_u64() is a shortcut for the common case of returning a
- * single integer. Use it in place of read()
- */
- u64 (*read_u64)(struct cgroup *cgrp, struct cftype *cft);
- /*
- * read_s64() is a signed version of read_u64()
- */
- s64 (*read_s64)(struct cgroup *cgrp, struct cftype *cft);
- /*
- * read_map() is used for defining a map of key/value
- * pairs. It should call cb->fill(cb, key, value) for each
- * entry. The key/value pairs (and their ordering) should not
- * change between reboots.
- */
- int (*read_map)(struct cgroup *cont, struct cftype *cft,
- struct cgroup_map_cb *cb);
- /*
- * read_seq_string() is used for outputting a simple sequence
- * using seqfile.
- */
- int (*read_seq_string)(struct cgroup *cont, struct cftype *cft,
- struct seq_file *m);
-
- ssize_t (*write)(struct cgroup *cgrp, struct cftype *cft,
- struct file *file,
- const char __user *buf, size_t nbytes, loff_t *ppos);
-
- /*
- * write_u64() is a shortcut for the common case of accepting
- * a single integer (as parsed by simple_strtoull) from
- * userspace. Use in place of write(); return 0 or error.
- */
- int (*write_u64)(struct cgroup *cgrp, struct cftype *cft, u64 val);
- /*
- * write_s64() is a signed version of write_u64()
- */
- int (*write_s64)(struct cgroup *cgrp, struct cftype *cft, s64 val);
-
- /*
- * write_string() is passed a nul-terminated kernelspace
- * buffer of maximum length determined by max_write_len.
- * Returns 0 or -ve error code.
- */
- int (*write_string)(struct cgroup *cgrp, struct cftype *cft,
- const char *buffer);
- /*
- * trigger() callback can be used to get some kick from the
- * userspace, when the actual string written is not important
- * at all. The private field can be used to determine the
- * kick type for multiplexing.
- */
- int (*trigger)(struct cgroup *cgrp, unsigned int event);
-
- int (*release)(struct inode *inode, struct file *file);
-
- /*
- * register_event() callback will be used to add new userspace
- * waiter for changes related to the cftype. Implement it if
- * you want to provide this functionality. Use eventfd_signal()
- * on eventfd to send notification to userspace.
- */
- int (*register_event)(struct cgroup *cgrp, struct cftype *cft,
- struct eventfd_ctx *eventfd, const char *args);
- /*
- * unregister_event() callback will be called when userspace
- * closes the eventfd or on cgroup removing.
- * This callback must be implemented, if you want provide
- * notification functionality.
- */
- void (*unregister_event)(struct cgroup *cgrp, struct cftype *cft,
- struct eventfd_ctx *eventfd);
-};
-
-struct cgroup_scanner {
- struct cgroup *cg;
- int (*test_task)(struct task_struct *p, struct cgroup_scanner *scan);
- void (*process_task)(struct task_struct *p,
- struct cgroup_scanner *scan);
- struct ptr_heap *heap;
- void *data;
-};
-
-/*
- * Add a new file to the given cgroup directory. Should only be
- * called by subsystems from within a populate() method
- */
-int cgroup_add_file(struct cgroup *cgrp, struct cgroup_subsys *subsys,
- const struct cftype *cft);
-
-/*
- * Add a set of new files to the given cgroup directory. Should
- * only be called by subsystems from within a populate() method
- */
-int cgroup_add_files(struct cgroup *cgrp,
- struct cgroup_subsys *subsys,
- const struct cftype cft[],
- int count);
-
-int cgroup_is_removed(const struct cgroup *cgrp);
-
-int cgroup_path(const struct cgroup *cgrp, char *buf, int buflen);
-
-int cgroup_task_count(const struct cgroup *cgrp);
-
-/* Return true if cgrp is a descendant of the task's cgroup */
-int cgroup_is_descendant(const struct cgroup *cgrp, struct task_struct *task);
-
-/*
- * When the subsys has to access css and may add permanent refcnt to css,
- * it should take care of racy conditions with rmdir(). Following set of
- * functions, is for stop/restart rmdir if necessary.
- * Because these will call css_get/put, "css" should be alive css.
- *
- * cgroup_exclude_rmdir();
- * ...do some jobs which may access arbitrary empty cgroup
- * cgroup_release_and_wakeup_rmdir();
- *
- * When someone removes a cgroup while cgroup_exclude_rmdir() holds it,
- * it sleeps and cgroup_release_and_wakeup_rmdir() will wake him up.
- */
-
-void cgroup_exclude_rmdir(struct cgroup_subsys_state *css);
-void cgroup_release_and_wakeup_rmdir(struct cgroup_subsys_state *css);
-
-/*
- * Control Group taskset, used to pass around set of tasks to cgroup_subsys
- * methods.
- */
-struct cgroup_taskset;
-struct task_struct *cgroup_taskset_first(struct cgroup_taskset *tset);
-struct task_struct *cgroup_taskset_next(struct cgroup_taskset *tset);
-struct cgroup *cgroup_taskset_cur_cgroup(struct cgroup_taskset *tset);
-int cgroup_taskset_size(struct cgroup_taskset *tset);
-
-/**
- * cgroup_taskset_for_each - iterate cgroup_taskset
- * @task: the loop cursor
- * @skip_cgrp: skip if task's cgroup matches this, %NULL to iterate through all
- * @tset: taskset to iterate
- */
-#define cgroup_taskset_for_each(task, skip_cgrp, tset) \
- for ((task) = cgroup_taskset_first((tset)); (task); \
- (task) = cgroup_taskset_next((tset))) \
- if (!(skip_cgrp) || \
- cgroup_taskset_cur_cgroup((tset)) != (skip_cgrp))
-
-/*
- * Control Group subsystem type.
- * See Documentation/cgroups/cgroups.txt for details
- */
-
-struct cgroup_subsys {
- struct cgroup_subsys_state *(*create)(struct cgroup *cgrp);
- int (*pre_destroy)(struct cgroup *cgrp);
- void (*destroy)(struct cgroup *cgrp);
- int (*allow_attach)(struct cgroup *cgrp, struct cgroup_taskset *tset);
- int (*can_attach)(struct cgroup *cgrp, struct cgroup_taskset *tset);
- void (*cancel_attach)(struct cgroup *cgrp, struct cgroup_taskset *tset);
- void (*attach)(struct cgroup *cgrp, struct cgroup_taskset *tset);
- void (*fork)(struct task_struct *task);
- void (*exit)(struct cgroup *cgrp, struct cgroup *old_cgrp,
- struct task_struct *task);
- int (*populate)(struct cgroup_subsys *ss, struct cgroup *cgrp);
- void (*post_clone)(struct cgroup *cgrp);
- void (*bind)(struct cgroup *root);
-
- int subsys_id;
- int active;
- int disabled;
- int early_init;
- /*
- * True if this subsys uses ID. ID is not available before cgroup_init()
- * (not available in early_init time.)
- */
- bool use_id;
-#define MAX_CGROUP_TYPE_NAMELEN 32
- const char *name;
-
- /*
- * Protects sibling/children links of cgroups in this
- * hierarchy, plus protects which hierarchy (or none) the
- * subsystem is a part of (i.e. root/sibling). To avoid
- * potential deadlocks, the following operations should not be
- * undertaken while holding any hierarchy_mutex:
- *
- * - allocating memory
- * - initiating hotplug events
- */
- struct mutex hierarchy_mutex;
- struct lock_class_key subsys_key;
-
- /*
- * Link to parent, and list entry in parent's children.
- * Protected by this->hierarchy_mutex and cgroup_lock()
- */
- struct cgroupfs_root *root;
- struct list_head sibling;
- /* used when use_id == true */
- struct idr idr;
- spinlock_t id_lock;
-
- /* should be defined only by modular subsystems */
- struct module *module;
-};
-
-#define SUBSYS(_x) extern struct cgroup_subsys _x ## _subsys;
-#include <linux/cgroup_subsys.h>
-#undef SUBSYS
-
-static inline struct cgroup_subsys_state *cgroup_subsys_state(
- struct cgroup *cgrp, int subsys_id)
-{
- return cgrp->subsys[subsys_id];
-}
-
-/*
- * function to get the cgroup_subsys_state which allows for extra
- * rcu_dereference_check() conditions, such as locks used during the
- * cgroup_subsys::attach() methods.
- */
-#define task_subsys_state_check(task, subsys_id, __c) \
- rcu_dereference_check(task->cgroups->subsys[subsys_id], \
- lockdep_is_held(&task->alloc_lock) || \
- cgroup_lock_is_held() || (__c))
-
-static inline struct cgroup_subsys_state *
-task_subsys_state(struct task_struct *task, int subsys_id)
-{
- return task_subsys_state_check(task, subsys_id, false);
-}
-
-static inline struct cgroup* task_cgroup(struct task_struct *task,
- int subsys_id)
-{
- return task_subsys_state(task, subsys_id)->cgroup;
-}
-
-/* A cgroup_iter should be treated as an opaque object */
-struct cgroup_iter {
- struct list_head *cg_link;
- struct list_head *task;
-};
-
-/*
- * To iterate across the tasks in a cgroup:
- *
- * 1) call cgroup_iter_start to initialize an iterator
- *
- * 2) call cgroup_iter_next() to retrieve member tasks until it
- * returns NULL or until you want to end the iteration
- *
- * 3) call cgroup_iter_end() to destroy the iterator.
- *
- * Or, call cgroup_scan_tasks() to iterate through every task in a
- * cgroup - cgroup_scan_tasks() holds the css_set_lock when calling
- * the test_task() callback, but not while calling the process_task()
- * callback.
- */
-void cgroup_iter_start(struct cgroup *cgrp, struct cgroup_iter *it);
-struct task_struct *cgroup_iter_next(struct cgroup *cgrp,
- struct cgroup_iter *it);
-void cgroup_iter_end(struct cgroup *cgrp, struct cgroup_iter *it);
-int cgroup_scan_tasks(struct cgroup_scanner *scan);
-int cgroup_attach_task(struct cgroup *, struct task_struct *);
-int cgroup_attach_task_all(struct task_struct *from, struct task_struct *);
-
-/*
- * CSS ID is ID for cgroup_subsys_state structs under subsys. This only works
- * if cgroup_subsys.use_id == true. It can be used for looking up and scanning.
- * CSS ID is assigned at cgroup allocation (create) automatically
- * and removed when subsys calls free_css_id() function. This is because
- * the lifetime of cgroup_subsys_state is subsys's matter.
- *
- * Looking up and scanning function should be called under rcu_read_lock().
- * Taking cgroup_mutex()/hierarchy_mutex() is not necessary for following calls.
- * But the css returned by this routine can be "not populated yet" or "being
- * destroyed". The caller should check css and cgroup's status.
- */
-
-/*
- * Typically Called at ->destroy(), or somewhere the subsys frees
- * cgroup_subsys_state.
- */
-void free_css_id(struct cgroup_subsys *ss, struct cgroup_subsys_state *css);
-
-/* Find a cgroup_subsys_state which has given ID */
-
-struct cgroup_subsys_state *css_lookup(struct cgroup_subsys *ss, int id);
-
-/*
- * Get a cgroup whose id is greater than or equal to id under tree of root.
- * Returning a cgroup_subsys_state or NULL.
- */
-struct cgroup_subsys_state *css_get_next(struct cgroup_subsys *ss, int id,
- struct cgroup_subsys_state *root, int *foundid);
-
-/* Returns true if root is ancestor of cg */
-bool css_is_ancestor(struct cgroup_subsys_state *cg,
- const struct cgroup_subsys_state *root);
-
-/* Get id and depth of css */
-unsigned short css_id(struct cgroup_subsys_state *css);
-unsigned short css_depth(struct cgroup_subsys_state *css);
-struct cgroup_subsys_state *cgroup_css_from_dir(struct file *f, int id);
-
-#else /* !CONFIG_CGROUPS */
-
-static inline int cgroup_init_early(void) { return 0; }
-static inline int cgroup_init(void) { return 0; }
-static inline void cgroup_fork(struct task_struct *p) {}
-static inline void cgroup_fork_callbacks(struct task_struct *p) {}
-static inline void cgroup_post_fork(struct task_struct *p) {}
-static inline void cgroup_exit(struct task_struct *p, int callbacks) {}
-
-static inline void cgroup_lock(void) {}
-static inline void cgroup_unlock(void) {}
-static inline int cgroupstats_build(struct cgroupstats *stats,
- struct dentry *dentry)
-{
- return -EINVAL;
-}
-
-/* No cgroups - nothing to do */
-static inline int cgroup_attach_task_all(struct task_struct *from,
- struct task_struct *t)
-{
- return 0;
-}
-
-#endif /* !CONFIG_CGROUPS */
-
-#endif /* _LINUX_CGROUP_H */
diff --git a/ANDROID_3.4.5/include/linux/cgroup_subsys.h b/ANDROID_3.4.5/include/linux/cgroup_subsys.h
deleted file mode 100644
index 0bd390ce..00000000
--- a/ANDROID_3.4.5/include/linux/cgroup_subsys.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/* Add subsystem definitions of the form SUBSYS(<name>) in this
- * file. Surround each one by a line of comment markers so that
- * patches don't collide
- */
-
-/* */
-
-/* */
-
-#ifdef CONFIG_CPUSETS
-SUBSYS(cpuset)
-#endif
-
-/* */
-
-#ifdef CONFIG_CGROUP_DEBUG
-SUBSYS(debug)
-#endif
-
-/* */
-
-#ifdef CONFIG_CGROUP_SCHED
-SUBSYS(cpu_cgroup)
-#endif
-
-/* */
-
-#ifdef CONFIG_CGROUP_CPUACCT
-SUBSYS(cpuacct)
-#endif
-
-/* */
-
-#ifdef CONFIG_CGROUP_MEM_RES_CTLR
-SUBSYS(mem_cgroup)
-#endif
-
-/* */
-
-#ifdef CONFIG_CGROUP_DEVICE
-SUBSYS(devices)
-#endif
-
-/* */
-
-#ifdef CONFIG_CGROUP_FREEZER
-SUBSYS(freezer)
-#endif
-
-/* */
-
-#ifdef CONFIG_NET_CLS_CGROUP
-SUBSYS(net_cls)
-#endif
-
-/* */
-
-#ifdef CONFIG_BLK_CGROUP
-SUBSYS(blkio)
-#endif
-
-/* */
-
-#ifdef CONFIG_CGROUP_PERF
-SUBSYS(perf)
-#endif
-
-/* */
-
-#ifdef CONFIG_NETPRIO_CGROUP
-SUBSYS(net_prio)
-#endif
-
-/* */
diff --git a/ANDROID_3.4.5/include/linux/cgroupstats.h b/ANDROID_3.4.5/include/linux/cgroupstats.h
deleted file mode 100644
index 3753c331..00000000
--- a/ANDROID_3.4.5/include/linux/cgroupstats.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* cgroupstats.h - exporting per-cgroup statistics
- *
- * Copyright IBM Corporation, 2007
- * Author Balbir Singh <balbir@linux.vnet.ibm.com>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2.1 of the GNU Lesser General Public License
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it would be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#ifndef _LINUX_CGROUPSTATS_H
-#define _LINUX_CGROUPSTATS_H
-
-#include <linux/types.h>
-#include <linux/taskstats.h>
-
-/*
- * Data shared between user space and kernel space on a per cgroup
- * basis. This data is shared using taskstats.
- *
- * Most of these states are derived by looking at the task->state value
- * For the nr_io_wait state, a flag in the delay accounting structure
- * indicates that the task is waiting on IO
- *
- * Each member is aligned to a 8 byte boundary.
- */
-struct cgroupstats {
- __u64 nr_sleeping; /* Number of tasks sleeping */
- __u64 nr_running; /* Number of tasks running */
- __u64 nr_stopped; /* Number of tasks in stopped state */
- __u64 nr_uninterruptible; /* Number of tasks in uninterruptible */
- /* state */
- __u64 nr_io_wait; /* Number of tasks waiting on IO */
-};
-
-/*
- * Commands sent from userspace
- * Not versioned. New commands should only be inserted at the enum's end
- * prior to __CGROUPSTATS_CMD_MAX
- */
-
-enum {
- CGROUPSTATS_CMD_UNSPEC = __TASKSTATS_CMD_MAX, /* Reserved */
- CGROUPSTATS_CMD_GET, /* user->kernel request/get-response */
- CGROUPSTATS_CMD_NEW, /* kernel->user event */
- __CGROUPSTATS_CMD_MAX,
-};
-
-#define CGROUPSTATS_CMD_MAX (__CGROUPSTATS_CMD_MAX - 1)
-
-enum {
- CGROUPSTATS_TYPE_UNSPEC = 0, /* Reserved */
- CGROUPSTATS_TYPE_CGROUP_STATS, /* contains name + stats */
- __CGROUPSTATS_TYPE_MAX,
-};
-
-#define CGROUPSTATS_TYPE_MAX (__CGROUPSTATS_TYPE_MAX - 1)
-
-enum {
- CGROUPSTATS_CMD_ATTR_UNSPEC = 0,
- CGROUPSTATS_CMD_ATTR_FD,
- __CGROUPSTATS_CMD_ATTR_MAX,
-};
-
-#define CGROUPSTATS_CMD_ATTR_MAX (__CGROUPSTATS_CMD_ATTR_MAX - 1)
-
-#endif /* _LINUX_CGROUPSTATS_H */
diff --git a/ANDROID_3.4.5/include/linux/chio.h b/ANDROID_3.4.5/include/linux/chio.h
deleted file mode 100644
index d9bac7f9..00000000
--- a/ANDROID_3.4.5/include/linux/chio.h
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * ioctl interface for the scsi media changer driver
- */
-
-/* changer element types */
-#define CHET_MT 0 /* media transport element (robot) */
-#define CHET_ST 1 /* storage element (media slots) */
-#define CHET_IE 2 /* import/export element */
-#define CHET_DT 3 /* data transfer element (tape/cdrom/whatever) */
-#define CHET_V1 4 /* vendor specific #1 */
-#define CHET_V2 5 /* vendor specific #2 */
-#define CHET_V3 6 /* vendor specific #3 */
-#define CHET_V4 7 /* vendor specific #4 */
-
-
-/*
- * CHIOGPARAMS
- * query changer properties
- *
- * CHIOVGPARAMS
- * query vendor-specific element types
- *
- * accessing elements works by specifing type and unit of the element.
- * for example, storage elements are addressed with type = CHET_ST and
- * unit = 0 .. cp_nslots-1
- *
- */
-struct changer_params {
- int cp_curpicker; /* current transport element */
- int cp_npickers; /* number of transport elements (CHET_MT) */
- int cp_nslots; /* number of storage elements (CHET_ST) */
- int cp_nportals; /* number of import/export elements (CHET_IE) */
- int cp_ndrives; /* number of data transfer elements (CHET_DT) */
-};
-struct changer_vendor_params {
- int cvp_n1; /* number of vendor specific elems (CHET_V1) */
- char cvp_label1[16];
- int cvp_n2; /* number of vendor specific elems (CHET_V2) */
- char cvp_label2[16];
- int cvp_n3; /* number of vendor specific elems (CHET_V3) */
- char cvp_label3[16];
- int cvp_n4; /* number of vendor specific elems (CHET_V4) */
- char cvp_label4[16];
- int reserved[8];
-};
-
-
-/*
- * CHIOMOVE
- * move a medium from one element to another
- */
-struct changer_move {
- int cm_fromtype; /* type/unit of source element */
- int cm_fromunit;
- int cm_totype; /* type/unit of destination element */
- int cm_tounit;
- int cm_flags;
-};
-#define CM_INVERT 1 /* flag: rotate media (for double-sided like MOD) */
-
-
-/*
- * CHIOEXCHANGE
- * move one medium from element #1 to element #2,
- * and another one from element #2 to element #3.
- * element #1 and #3 are allowed to be identical.
- */
-struct changer_exchange {
- int ce_srctype; /* type/unit of element #1 */
- int ce_srcunit;
- int ce_fdsttype; /* type/unit of element #2 */
- int ce_fdstunit;
- int ce_sdsttype; /* type/unit of element #3 */
- int ce_sdstunit;
- int ce_flags;
-};
-#define CE_INVERT1 1
-#define CE_INVERT2 2
-
-
-/*
- * CHIOPOSITION
- * move the transport element (robot arm) to a specific element.
- */
-struct changer_position {
- int cp_type;
- int cp_unit;
- int cp_flags;
-};
-#define CP_INVERT 1
-
-
-/*
- * CHIOGSTATUS
- * get element status for all elements of a specific type
- */
-struct changer_element_status {
- int ces_type;
- unsigned char __user *ces_data;
-};
-#define CESTATUS_FULL 0x01 /* full */
-#define CESTATUS_IMPEXP 0x02 /* media was imported (inserted by sysop) */
-#define CESTATUS_EXCEPT 0x04 /* error condition */
-#define CESTATUS_ACCESS 0x08 /* access allowed */
-#define CESTATUS_EXENAB 0x10 /* element can export media */
-#define CESTATUS_INENAB 0x20 /* element can import media */
-
-
-/*
- * CHIOGELEM
- * get more detailed status information for a single element
- */
-struct changer_get_element {
- int cge_type; /* type/unit */
- int cge_unit;
- int cge_status; /* status */
- int cge_errno; /* errno */
- int cge_srctype; /* source element of the last move/exchange */
- int cge_srcunit;
- int cge_id; /* scsi id (for data transfer elements) */
- int cge_lun; /* scsi lun (for data transfer elements) */
- char cge_pvoltag[36]; /* primary volume tag */
- char cge_avoltag[36]; /* alternate volume tag */
- int cge_flags;
-};
-/* flags */
-#define CGE_ERRNO 0x01 /* errno available */
-#define CGE_INVERT 0x02 /* media inverted */
-#define CGE_SRC 0x04 /* media src available */
-#define CGE_IDLUN 0x08 /* ID+LUN available */
-#define CGE_PVOLTAG 0x10 /* primary volume tag available */
-#define CGE_AVOLTAG 0x20 /* alternate volume tag available */
-
-
-/*
- * CHIOSVOLTAG
- * set volume tag
- */
-struct changer_set_voltag {
- int csv_type; /* type/unit */
- int csv_unit;
- char csv_voltag[36]; /* volume tag */
- int csv_flags;
-};
-#define CSV_PVOLTAG 0x01 /* primary volume tag */
-#define CSV_AVOLTAG 0x02 /* alternate volume tag */
-#define CSV_CLEARTAG 0x04 /* clear volume tag */
-
-/* ioctls */
-#define CHIOMOVE _IOW('c', 1,struct changer_move)
-#define CHIOEXCHANGE _IOW('c', 2,struct changer_exchange)
-#define CHIOPOSITION _IOW('c', 3,struct changer_position)
-#define CHIOGPICKER _IOR('c', 4,int) /* not impl. */
-#define CHIOSPICKER _IOW('c', 5,int) /* not impl. */
-#define CHIOGPARAMS _IOR('c', 6,struct changer_params)
-#define CHIOGSTATUS _IOW('c', 8,struct changer_element_status)
-#define CHIOGELEM _IOW('c',16,struct changer_get_element)
-#define CHIOINITELEM _IO('c',17)
-#define CHIOSVOLTAG _IOW('c',18,struct changer_set_voltag)
-#define CHIOGVPARAMS _IOR('c',19,struct changer_vendor_params)
-
-/* ---------------------------------------------------------------------- */
-
-/*
- * Local variables:
- * c-basic-offset: 8
- * End:
- */
diff --git a/ANDROID_3.4.5/include/linux/circ_buf.h b/ANDROID_3.4.5/include/linux/circ_buf.h
deleted file mode 100644
index 90f2471d..00000000
--- a/ANDROID_3.4.5/include/linux/circ_buf.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * See Documentation/circular-buffers.txt for more information.
- */
-
-#ifndef _LINUX_CIRC_BUF_H
-#define _LINUX_CIRC_BUF_H 1
-
-struct circ_buf {
- char *buf;
- int head;
- int tail;
-};
-
-/* Return count in buffer. */
-#define CIRC_CNT(head,tail,size) (((head) - (tail)) & ((size)-1))
-
-/* Return space available, 0..size-1. We always leave one free char
- as a completely full buffer has head == tail, which is the same as
- empty. */
-#define CIRC_SPACE(head,tail,size) CIRC_CNT((tail),((head)+1),(size))
-
-/* Return count up to the end of the buffer. Carefully avoid
- accessing head and tail more than once, so they can change
- underneath us without returning inconsistent results. */
-#define CIRC_CNT_TO_END(head,tail,size) \
- ({int end = (size) - (tail); \
- int n = ((head) + end) & ((size)-1); \
- n < end ? n : end;})
-
-/* Return space available up to the end of the buffer. */
-#define CIRC_SPACE_TO_END(head,tail,size) \
- ({int end = (size) - 1 - (head); \
- int n = (end + (tail)) & ((size)-1); \
- n <= end ? n : end+1;})
-
-#endif /* _LINUX_CIRC_BUF_H */
diff --git a/ANDROID_3.4.5/include/linux/cleancache.h b/ANDROID_3.4.5/include/linux/cleancache.h
deleted file mode 100644
index 42e55dee..00000000
--- a/ANDROID_3.4.5/include/linux/cleancache.h
+++ /dev/null
@@ -1,122 +0,0 @@
-#ifndef _LINUX_CLEANCACHE_H
-#define _LINUX_CLEANCACHE_H
-
-#include <linux/fs.h>
-#include <linux/exportfs.h>
-#include <linux/mm.h>
-
-#define CLEANCACHE_KEY_MAX 6
-
-/*
- * cleancache requires every file with a page in cleancache to have a
- * unique key unless/until the file is removed/truncated. For some
- * filesystems, the inode number is unique, but for "modern" filesystems
- * an exportable filehandle is required (see exportfs.h)
- */
-struct cleancache_filekey {
- union {
- ino_t ino;
- __u32 fh[CLEANCACHE_KEY_MAX];
- u32 key[CLEANCACHE_KEY_MAX];
- } u;
-};
-
-struct cleancache_ops {
- int (*init_fs)(size_t);
- int (*init_shared_fs)(char *uuid, size_t);
- int (*get_page)(int, struct cleancache_filekey,
- pgoff_t, struct page *);
- void (*put_page)(int, struct cleancache_filekey,
- pgoff_t, struct page *);
- void (*invalidate_page)(int, struct cleancache_filekey, pgoff_t);
- void (*invalidate_inode)(int, struct cleancache_filekey);
- void (*invalidate_fs)(int);
-};
-
-extern struct cleancache_ops
- cleancache_register_ops(struct cleancache_ops *ops);
-extern void __cleancache_init_fs(struct super_block *);
-extern void __cleancache_init_shared_fs(char *, struct super_block *);
-extern int __cleancache_get_page(struct page *);
-extern void __cleancache_put_page(struct page *);
-extern void __cleancache_invalidate_page(struct address_space *, struct page *);
-extern void __cleancache_invalidate_inode(struct address_space *);
-extern void __cleancache_invalidate_fs(struct super_block *);
-extern int cleancache_enabled;
-
-#ifdef CONFIG_CLEANCACHE
-static inline bool cleancache_fs_enabled(struct page *page)
-{
- return page->mapping->host->i_sb->cleancache_poolid >= 0;
-}
-static inline bool cleancache_fs_enabled_mapping(struct address_space *mapping)
-{
- return mapping->host->i_sb->cleancache_poolid >= 0;
-}
-#else
-#define cleancache_enabled (0)
-#define cleancache_fs_enabled(_page) (0)
-#define cleancache_fs_enabled_mapping(_page) (0)
-#endif
-
-/*
- * The shim layer provided by these inline functions allows the compiler
- * to reduce all cleancache hooks to nothingness if CONFIG_CLEANCACHE
- * is disabled, to a single global variable check if CONFIG_CLEANCACHE
- * is enabled but no cleancache "backend" has dynamically enabled it,
- * and, for the most frequent cleancache ops, to a single global variable
- * check plus a superblock element comparison if CONFIG_CLEANCACHE is enabled
- * and a cleancache backend has dynamically enabled cleancache, but the
- * filesystem referenced by that cleancache op has not enabled cleancache.
- * As a result, CONFIG_CLEANCACHE can be enabled by default with essentially
- * no measurable performance impact.
- */
-
-static inline void cleancache_init_fs(struct super_block *sb)
-{
- if (cleancache_enabled)
- __cleancache_init_fs(sb);
-}
-
-static inline void cleancache_init_shared_fs(char *uuid, struct super_block *sb)
-{
- if (cleancache_enabled)
- __cleancache_init_shared_fs(uuid, sb);
-}
-
-static inline int cleancache_get_page(struct page *page)
-{
- int ret = -1;
-
- if (cleancache_enabled && cleancache_fs_enabled(page))
- ret = __cleancache_get_page(page);
- return ret;
-}
-
-static inline void cleancache_put_page(struct page *page)
-{
- if (cleancache_enabled && cleancache_fs_enabled(page))
- __cleancache_put_page(page);
-}
-
-static inline void cleancache_invalidate_page(struct address_space *mapping,
- struct page *page)
-{
- /* careful... page->mapping is NULL sometimes when this is called */
- if (cleancache_enabled && cleancache_fs_enabled_mapping(mapping))
- __cleancache_invalidate_page(mapping, page);
-}
-
-static inline void cleancache_invalidate_inode(struct address_space *mapping)
-{
- if (cleancache_enabled && cleancache_fs_enabled_mapping(mapping))
- __cleancache_invalidate_inode(mapping);
-}
-
-static inline void cleancache_invalidate_fs(struct super_block *sb)
-{
- if (cleancache_enabled)
- __cleancache_invalidate_fs(sb);
-}
-
-#endif /* _LINUX_CLEANCACHE_H */
diff --git a/ANDROID_3.4.5/include/linux/clk-private.h b/ANDROID_3.4.5/include/linux/clk-private.h
deleted file mode 100644
index 5e4312b6..00000000
--- a/ANDROID_3.4.5/include/linux/clk-private.h
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * linux/include/linux/clk-private.h
- *
- * Copyright (c) 2010-2011 Jeremy Kerr <jeremy.kerr@canonical.com>
- * Copyright (C) 2011-2012 Linaro Ltd <mturquette@linaro.org>
- *
- * 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.
- */
-#ifndef __LINUX_CLK_PRIVATE_H
-#define __LINUX_CLK_PRIVATE_H
-
-#include <linux/clk-provider.h>
-#include <linux/list.h>
-
-/*
- * WARNING: Do not include clk-private.h from any file that implements struct
- * clk_ops. Doing so is a layering violation!
- *
- * This header exists only to allow for statically initialized clock data. Any
- * static clock data must be defined in a separate file from the logic that
- * implements the clock operations for that same data.
- */
-
-#ifdef CONFIG_COMMON_CLK
-
-struct clk {
- const char *name;
- const struct clk_ops *ops;
- struct clk_hw *hw;
- struct clk *parent;
- char **parent_names;
- struct clk **parents;
- u8 num_parents;
- unsigned long rate;
- unsigned long new_rate;
- unsigned long flags;
- unsigned int enable_count;
- unsigned int prepare_count;
- struct hlist_head children;
- struct hlist_node child_node;
- unsigned int notifier_count;
-#ifdef CONFIG_COMMON_CLK_DEBUG
- struct dentry *dentry;
-#endif
-};
-
-/*
- * DOC: Basic clock implementations common to many platforms
- *
- * Each basic clock hardware type is comprised of a structure describing the
- * clock hardware, implementations of the relevant callbacks in struct clk_ops,
- * unique flags for that hardware type, a registration function and an
- * alternative macro for static initialization
- */
-
-extern struct clk_ops clk_fixed_rate_ops;
-
-#define DEFINE_CLK_FIXED_RATE(_name, _flags, _rate, \
- _fixed_rate_flags) \
- static struct clk _name; \
- static char *_name##_parent_names[] = {}; \
- static struct clk_fixed_rate _name##_hw = { \
- .hw = { \
- .clk = &_name, \
- }, \
- .fixed_rate = _rate, \
- .flags = _fixed_rate_flags, \
- }; \
- static struct clk _name = { \
- .name = #_name, \
- .ops = &clk_fixed_rate_ops, \
- .hw = &_name##_hw.hw, \
- .parent_names = _name##_parent_names, \
- .num_parents = \
- ARRAY_SIZE(_name##_parent_names), \
- .flags = _flags, \
- };
-
-extern struct clk_ops clk_gate_ops;
-
-#define DEFINE_CLK_GATE(_name, _parent_name, _parent_ptr, \
- _flags, _reg, _bit_idx, \
- _gate_flags, _lock) \
- static struct clk _name; \
- static char *_name##_parent_names[] = { \
- _parent_name, \
- }; \
- static struct clk *_name##_parents[] = { \
- _parent_ptr, \
- }; \
- static struct clk_gate _name##_hw = { \
- .hw = { \
- .clk = &_name, \
- }, \
- .reg = _reg, \
- .bit_idx = _bit_idx, \
- .flags = _gate_flags, \
- .lock = _lock, \
- }; \
- static struct clk _name = { \
- .name = #_name, \
- .ops = &clk_gate_ops, \
- .hw = &_name##_hw.hw, \
- .parent_names = _name##_parent_names, \
- .num_parents = \
- ARRAY_SIZE(_name##_parent_names), \
- .parents = _name##_parents, \
- .flags = _flags, \
- };
-
-extern struct clk_ops clk_divider_ops;
-
-#define DEFINE_CLK_DIVIDER(_name, _parent_name, _parent_ptr, \
- _flags, _reg, _shift, _width, \
- _divider_flags, _lock) \
- static struct clk _name; \
- static char *_name##_parent_names[] = { \
- _parent_name, \
- }; \
- static struct clk *_name##_parents[] = { \
- _parent_ptr, \
- }; \
- static struct clk_divider _name##_hw = { \
- .hw = { \
- .clk = &_name, \
- }, \
- .reg = _reg, \
- .shift = _shift, \
- .width = _width, \
- .flags = _divider_flags, \
- .lock = _lock, \
- }; \
- static struct clk _name = { \
- .name = #_name, \
- .ops = &clk_divider_ops, \
- .hw = &_name##_hw.hw, \
- .parent_names = _name##_parent_names, \
- .num_parents = \
- ARRAY_SIZE(_name##_parent_names), \
- .parents = _name##_parents, \
- .flags = _flags, \
- };
-
-extern struct clk_ops clk_mux_ops;
-
-#define DEFINE_CLK_MUX(_name, _parent_names, _parents, _flags, \
- _reg, _shift, _width, \
- _mux_flags, _lock) \
- static struct clk _name; \
- static struct clk_mux _name##_hw = { \
- .hw = { \
- .clk = &_name, \
- }, \
- .reg = _reg, \
- .shift = _shift, \
- .width = _width, \
- .flags = _mux_flags, \
- .lock = _lock, \
- }; \
- static struct clk _name = { \
- .name = #_name, \
- .ops = &clk_mux_ops, \
- .hw = &_name##_hw.hw, \
- .parent_names = _parent_names, \
- .num_parents = \
- ARRAY_SIZE(_parent_names), \
- .parents = _parents, \
- .flags = _flags, \
- };
-
-/**
- * __clk_init - initialize the data structures in a struct clk
- * @dev: device initializing this clk, placeholder for now
- * @clk: clk being initialized
- *
- * Initializes the lists in struct clk, queries the hardware for the
- * parent and rate and sets them both.
- *
- * Any struct clk passed into __clk_init must have the following members
- * populated:
- * .name
- * .ops
- * .hw
- * .parent_names
- * .num_parents
- * .flags
- *
- * It is not necessary to call clk_register if __clk_init is used directly with
- * statically initialized clock data.
- */
-void __clk_init(struct device *dev, struct clk *clk);
-
-#endif /* CONFIG_COMMON_CLK */
-#endif /* CLK_PRIVATE_H */
diff --git a/ANDROID_3.4.5/include/linux/clk-provider.h b/ANDROID_3.4.5/include/linux/clk-provider.h
deleted file mode 100644
index 5508897a..00000000
--- a/ANDROID_3.4.5/include/linux/clk-provider.h
+++ /dev/null
@@ -1,300 +0,0 @@
-/*
- * linux/include/linux/clk-provider.h
- *
- * Copyright (c) 2010-2011 Jeremy Kerr <jeremy.kerr@canonical.com>
- * Copyright (C) 2011-2012 Linaro Ltd <mturquette@linaro.org>
- *
- * 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.
- */
-#ifndef __LINUX_CLK_PROVIDER_H
-#define __LINUX_CLK_PROVIDER_H
-
-#include <linux/clk.h>
-
-#ifdef CONFIG_COMMON_CLK
-
-/**
- * struct clk_hw - handle for traversing from a struct clk to its corresponding
- * hardware-specific structure. struct clk_hw should be declared within struct
- * clk_foo and then referenced by the struct clk instance that uses struct
- * clk_foo's clk_ops
- *
- * clk: pointer to the struct clk instance that points back to this struct
- * clk_hw instance
- */
-struct clk_hw {
- struct clk *clk;
-};
-
-/*
- * flags used across common struct clk. these flags should only affect the
- * top-level framework. custom flags for dealing with hardware specifics
- * belong in struct clk_foo
- */
-#define CLK_SET_RATE_GATE BIT(0) /* must be gated across rate change */
-#define CLK_SET_PARENT_GATE BIT(1) /* must be gated across re-parent */
-#define CLK_SET_RATE_PARENT BIT(2) /* propagate rate change up one level */
-#define CLK_IGNORE_UNUSED BIT(3) /* do not gate even if unused */
-#define CLK_IS_ROOT BIT(4) /* root clk, has no parent */
-
-/**
- * struct clk_ops - Callback operations for hardware clocks; these are to
- * be provided by the clock implementation, and will be called by drivers
- * through the clk_* api.
- *
- * @prepare: Prepare the clock for enabling. This must not return until
- * the clock is fully prepared, and it's safe to call clk_enable.
- * This callback is intended to allow clock implementations to
- * do any initialisation that may sleep. Called with
- * prepare_lock held.
- *
- * @unprepare: Release the clock from its prepared state. This will typically
- * undo any work done in the @prepare callback. Called with
- * prepare_lock held.
- *
- * @enable: Enable the clock atomically. This must not return until the
- * clock is generating a valid clock signal, usable by consumer
- * devices. Called with enable_lock held. This function must not
- * sleep.
- *
- * @disable: Disable the clock atomically. Called with enable_lock held.
- * This function must not sleep.
- *
- * @recalc_rate Recalculate the rate of this clock, by quering hardware. The
- * parent rate is an input parameter. It is up to the caller to
- * insure that the prepare_mutex is held across this call.
- * Returns the calculated rate. Optional, but recommended - if
- * this op is not set then clock rate will be initialized to 0.
- *
- * @round_rate: Given a target rate as input, returns the closest rate actually
- * supported by the clock.
- *
- * @get_parent: Queries the hardware to determine the parent of a clock. The
- * return value is a u8 which specifies the index corresponding to
- * the parent clock. This index can be applied to either the
- * .parent_names or .parents arrays. In short, this function
- * translates the parent value read from hardware into an array
- * index. Currently only called when the clock is initialized by
- * __clk_init. This callback is mandatory for clocks with
- * multiple parents. It is optional (and unnecessary) for clocks
- * with 0 or 1 parents.
- *
- * @set_parent: Change the input source of this clock; for clocks with multiple
- * possible parents specify a new parent by passing in the index
- * as a u8 corresponding to the parent in either the .parent_names
- * or .parents arrays. This function in affect translates an
- * array index into the value programmed into the hardware.
- * Returns 0 on success, -EERROR otherwise.
- *
- * @set_rate: Change the rate of this clock. If this callback returns
- * CLK_SET_RATE_PARENT, the rate change will be propagated to the
- * parent clock (which may propagate again if the parent clock
- * also sets this flag). The requested rate of the parent is
- * passed back from the callback in the second 'unsigned long *'
- * argument. Note that it is up to the hardware clock's set_rate
- * implementation to insure that clocks do not run out of spec
- * when propgating the call to set_rate up to the parent. One way
- * to do this is to gate the clock (via clk_disable and/or
- * clk_unprepare) before calling clk_set_rate, then ungating it
- * afterward. If your clock also has the CLK_GATE_SET_RATE flag
- * set then this will insure safety. Returns 0 on success,
- * -EERROR otherwise.
- *
- * The clk_enable/clk_disable and clk_prepare/clk_unprepare pairs allow
- * implementations to split any work between atomic (enable) and sleepable
- * (prepare) contexts. If enabling a clock requires code that might sleep,
- * this must be done in clk_prepare. Clock enable code that will never be
- * called in a sleepable context may be implement in clk_enable.
- *
- * Typically, drivers will call clk_prepare when a clock may be needed later
- * (eg. when a device is opened), and clk_enable when the clock is actually
- * required (eg. from an interrupt). Note that clk_prepare MUST have been
- * called before clk_enable.
- */
-struct clk_ops {
- int (*prepare)(struct clk_hw *hw);
- void (*unprepare)(struct clk_hw *hw);
- int (*enable)(struct clk_hw *hw);
- void (*disable)(struct clk_hw *hw);
- int (*is_enabled)(struct clk_hw *hw);
- unsigned long (*recalc_rate)(struct clk_hw *hw,
- unsigned long parent_rate);
- long (*round_rate)(struct clk_hw *hw, unsigned long,
- unsigned long *);
- int (*set_parent)(struct clk_hw *hw, u8 index);
- u8 (*get_parent)(struct clk_hw *hw);
- int (*set_rate)(struct clk_hw *hw, unsigned long);
- void (*init)(struct clk_hw *hw);
-};
-
-/*
- * DOC: Basic clock implementations common to many platforms
- *
- * Each basic clock hardware type is comprised of a structure describing the
- * clock hardware, implementations of the relevant callbacks in struct clk_ops,
- * unique flags for that hardware type, a registration function and an
- * alternative macro for static initialization
- */
-
-/**
- * struct clk_fixed_rate - fixed-rate clock
- * @hw: handle between common and hardware-specific interfaces
- * @fixed_rate: constant frequency of clock
- */
-struct clk_fixed_rate {
- struct clk_hw hw;
- unsigned long fixed_rate;
- u8 flags;
-};
-
-struct clk *clk_register_fixed_rate(struct device *dev, const char *name,
- const char *parent_name, unsigned long flags,
- unsigned long fixed_rate);
-
-/**
- * struct clk_gate - gating clock
- *
- * @hw: handle between common and hardware-specific interfaces
- * @reg: register controlling gate
- * @bit_idx: single bit controlling gate
- * @flags: hardware-specific flags
- * @lock: register lock
- *
- * Clock which can gate its output. Implements .enable & .disable
- *
- * Flags:
- * CLK_GATE_SET_DISABLE - by default this clock sets the bit at bit_idx to
- * enable the clock. Setting this flag does the opposite: setting the bit
- * disable the clock and clearing it enables the clock
- */
-struct clk_gate {
- struct clk_hw hw;
- void __iomem *reg;
- u8 bit_idx;
- u8 flags;
- spinlock_t *lock;
- char *parent[1];
-};
-
-#define CLK_GATE_SET_TO_DISABLE BIT(0)
-
-struct clk *clk_register_gate(struct device *dev, const char *name,
- const char *parent_name, unsigned long flags,
- void __iomem *reg, u8 bit_idx,
- u8 clk_gate_flags, spinlock_t *lock);
-
-/**
- * struct clk_divider - adjustable divider clock
- *
- * @hw: handle between common and hardware-specific interfaces
- * @reg: register containing the divider
- * @shift: shift to the divider bit field
- * @width: width of the divider bit field
- * @lock: register lock
- *
- * Clock with an adjustable divider affecting its output frequency. Implements
- * .recalc_rate, .set_rate and .round_rate
- *
- * Flags:
- * CLK_DIVIDER_ONE_BASED - by default the divisor is the value read from the
- * register plus one. If CLK_DIVIDER_ONE_BASED is set then the divider is
- * the raw value read from the register, with the value of zero considered
- * invalid
- * CLK_DIVIDER_POWER_OF_TWO - clock divisor is 2 raised to the value read from
- * the hardware register
- */
-struct clk_divider {
- struct clk_hw hw;
- void __iomem *reg;
- u8 shift;
- u8 width;
- u8 flags;
- spinlock_t *lock;
- char *parent[1];
-};
-
-#define CLK_DIVIDER_ONE_BASED BIT(0)
-#define CLK_DIVIDER_POWER_OF_TWO BIT(1)
-
-struct clk *clk_register_divider(struct device *dev, const char *name,
- const char *parent_name, unsigned long flags,
- void __iomem *reg, u8 shift, u8 width,
- u8 clk_divider_flags, spinlock_t *lock);
-
-/**
- * struct clk_mux - multiplexer clock
- *
- * @hw: handle between common and hardware-specific interfaces
- * @reg: register controlling multiplexer
- * @shift: shift to multiplexer bit field
- * @width: width of mutliplexer bit field
- * @num_clks: number of parent clocks
- * @lock: register lock
- *
- * Clock with multiple selectable parents. Implements .get_parent, .set_parent
- * and .recalc_rate
- *
- * Flags:
- * CLK_MUX_INDEX_ONE - register index starts at 1, not 0
- * CLK_MUX_INDEX_BITWISE - register index is a single bit (power of two)
- */
-struct clk_mux {
- struct clk_hw hw;
- void __iomem *reg;
- u8 shift;
- u8 width;
- u8 flags;
- spinlock_t *lock;
-};
-
-#define CLK_MUX_INDEX_ONE BIT(0)
-#define CLK_MUX_INDEX_BIT BIT(1)
-
-struct clk *clk_register_mux(struct device *dev, const char *name,
- char **parent_names, u8 num_parents, unsigned long flags,
- void __iomem *reg, u8 shift, u8 width,
- u8 clk_mux_flags, spinlock_t *lock);
-
-/**
- * clk_register - allocate a new clock, register it and return an opaque cookie
- * @dev: device that is registering this clock
- * @name: clock name
- * @ops: operations this clock supports
- * @hw: link to hardware-specific clock data
- * @parent_names: array of string names for all possible parents
- * @num_parents: number of possible parents
- * @flags: framework-level hints and quirks
- *
- * clk_register is the primary interface for populating the clock tree with new
- * clock nodes. It returns a pointer to the newly allocated struct clk which
- * cannot be dereferenced by driver code but may be used in conjuction with the
- * rest of the clock API.
- */
-struct clk *clk_register(struct device *dev, const char *name,
- const struct clk_ops *ops, struct clk_hw *hw,
- char **parent_names, u8 num_parents, unsigned long flags);
-
-/* helper functions */
-const char *__clk_get_name(struct clk *clk);
-struct clk_hw *__clk_get_hw(struct clk *clk);
-u8 __clk_get_num_parents(struct clk *clk);
-struct clk *__clk_get_parent(struct clk *clk);
-inline int __clk_get_enable_count(struct clk *clk);
-inline int __clk_get_prepare_count(struct clk *clk);
-unsigned long __clk_get_rate(struct clk *clk);
-unsigned long __clk_get_flags(struct clk *clk);
-int __clk_is_enabled(struct clk *clk);
-struct clk *__clk_lookup(const char *name);
-
-/*
- * FIXME clock api without lock protection
- */
-int __clk_prepare(struct clk *clk);
-void __clk_unprepare(struct clk *clk);
-void __clk_reparent(struct clk *clk, struct clk *new_parent);
-unsigned long __clk_round_rate(struct clk *clk, unsigned long rate);
-
-#endif /* CONFIG_COMMON_CLK */
-#endif /* CLK_PROVIDER_H */
diff --git a/ANDROID_3.4.5/include/linux/clk.h b/ANDROID_3.4.5/include/linux/clk.h
deleted file mode 100644
index b0252726..00000000
--- a/ANDROID_3.4.5/include/linux/clk.h
+++ /dev/null
@@ -1,281 +0,0 @@
-/*
- * linux/include/linux/clk.h
- *
- * Copyright (C) 2004 ARM Limited.
- * Written by Deep Blue Solutions Limited.
- * Copyright (C) 2011-2012 Linaro Ltd <mturquette@linaro.org>
- *
- * 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.
- */
-#ifndef __LINUX_CLK_H
-#define __LINUX_CLK_H
-
-#include <linux/kernel.h>
-#include <linux/notifier.h>
-
-struct device;
-
-struct clk;
-
-#ifdef CONFIG_COMMON_CLK
-
-/**
- * DOC: clk notifier callback types
- *
- * PRE_RATE_CHANGE - called immediately before the clk rate is changed,
- * to indicate that the rate change will proceed. Drivers must
- * immediately terminate any operations that will be affected by the
- * rate change. Callbacks may either return NOTIFY_DONE or
- * NOTIFY_STOP.
- *
- * ABORT_RATE_CHANGE: called if the rate change failed for some reason
- * after PRE_RATE_CHANGE. In this case, all registered notifiers on
- * the clk will be called with ABORT_RATE_CHANGE. Callbacks must
- * always return NOTIFY_DONE.
- *
- * POST_RATE_CHANGE - called after the clk rate change has successfully
- * completed. Callbacks must always return NOTIFY_DONE.
- *
- */
-#define PRE_RATE_CHANGE BIT(0)
-#define POST_RATE_CHANGE BIT(1)
-#define ABORT_RATE_CHANGE BIT(2)
-
-/**
- * struct clk_notifier - associate a clk with a notifier
- * @clk: struct clk * to associate the notifier with
- * @notifier_head: a blocking_notifier_head for this clk
- * @node: linked list pointers
- *
- * A list of struct clk_notifier is maintained by the notifier code.
- * An entry is created whenever code registers the first notifier on a
- * particular @clk. Future notifiers on that @clk are added to the
- * @notifier_head.
- */
-struct clk_notifier {
- struct clk *clk;
- struct srcu_notifier_head notifier_head;
- struct list_head node;
-};
-
-/**
- * struct clk_notifier_data - rate data to pass to the notifier callback
- * @clk: struct clk * being changed
- * @old_rate: previous rate of this clk
- * @new_rate: new rate of this clk
- *
- * For a pre-notifier, old_rate is the clk's rate before this rate
- * change, and new_rate is what the rate will be in the future. For a
- * post-notifier, old_rate and new_rate are both set to the clk's
- * current rate (this was done to optimize the implementation).
- */
-struct clk_notifier_data {
- struct clk *clk;
- unsigned long old_rate;
- unsigned long new_rate;
-};
-
-int clk_notifier_register(struct clk *clk, struct notifier_block *nb);
-
-int clk_notifier_unregister(struct clk *clk, struct notifier_block *nb);
-
-#endif /* !CONFIG_COMMON_CLK */
-
-/**
- * clk_get - lookup and obtain a reference to a clock producer.
- * @dev: device for clock "consumer"
- * @id: clock comsumer ID
- *
- * Returns a struct clk corresponding to the clock producer, or
- * valid IS_ERR() condition containing errno. The implementation
- * uses @dev and @id to determine the clock consumer, and thereby
- * the clock producer. (IOW, @id may be identical strings, but
- * clk_get may return different clock producers depending on @dev.)
- *
- * Drivers must assume that the clock source is not enabled.
- *
- * clk_get should not be called from within interrupt context.
- */
-struct clk *clk_get(struct device *dev, const char *id);
-
-/**
- * clk_prepare - prepare a clock source
- * @clk: clock source
- *
- * This prepares the clock source for use.
- *
- * Must not be called from within atomic context.
- */
-#ifdef CONFIG_HAVE_CLK_PREPARE
-int clk_prepare(struct clk *clk);
-#else
-static inline int clk_prepare(struct clk *clk)
-{
- might_sleep();
- return 0;
-}
-#endif
-
-/**
- * clk_enable - inform the system when the clock source should be running.
- * @clk: clock source
- *
- * If the clock can not be enabled/disabled, this should return success.
- *
- * May be called from atomic contexts.
- *
- * Returns success (0) or negative errno.
- */
-int clk_enable(struct clk *clk);
-
-/**
- * clk_disable - inform the system when the clock source is no longer required.
- * @clk: clock source
- *
- * Inform the system that a clock source is no longer required by
- * a driver and may be shut down.
- *
- * May be called from atomic contexts.
- *
- * Implementation detail: if the clock source is shared between
- * multiple drivers, clk_enable() calls must be balanced by the
- * same number of clk_disable() calls for the clock source to be
- * disabled.
- */
-void clk_disable(struct clk *clk);
-
-
-/**
- * clk_unprepare - undo preparation of a clock source
- * @clk: clock source
- *
- * This undoes a previously prepared clock. The caller must balance
- * the number of prepare and unprepare calls.
- *
- * Must not be called from within atomic context.
- */
-#ifdef CONFIG_HAVE_CLK_PREPARE
-void clk_unprepare(struct clk *clk);
-#else
-static inline void clk_unprepare(struct clk *clk)
-{
- might_sleep();
-}
-#endif
-
-/* clk_prepare_enable helps cases using clk_enable in non-atomic context. */
-static inline int clk_prepare_enable(struct clk *clk)
-{
- int ret;
-
- ret = clk_prepare(clk);
- if (ret)
- return ret;
- ret = clk_enable(clk);
- if (ret)
- clk_unprepare(clk);
-
- return ret;
-}
-
-/* clk_disable_unprepare helps cases using clk_disable in non-atomic context. */
-static inline void clk_disable_unprepare(struct clk *clk)
-{
- clk_disable(clk);
- clk_unprepare(clk);
-}
-
-/**
- * clk_get_rate - obtain the current clock rate (in Hz) for a clock source.
- * This is only valid once the clock source has been enabled.
- * @clk: clock source
- */
-unsigned long clk_get_rate(struct clk *clk);
-
-/**
- * clk_put - "free" the clock source
- * @clk: clock source
- *
- * Note: drivers must ensure that all clk_enable calls made on this
- * clock source are balanced by clk_disable calls prior to calling
- * this function.
- *
- * clk_put should not be called from within interrupt context.
- */
-void clk_put(struct clk *clk);
-
-
-/*
- * The remaining APIs are optional for machine class support.
- */
-
-
-/**
- * clk_round_rate - adjust a rate to the exact rate a clock can provide
- * @clk: clock source
- * @rate: desired clock rate in Hz
- *
- * Returns rounded clock rate in Hz, or negative errno.
- */
-long clk_round_rate(struct clk *clk, unsigned long rate);
-
-/**
- * clk_set_rate - set the clock rate for a clock source
- * @clk: clock source
- * @rate: desired clock rate in Hz
- *
- * Returns success (0) or negative errno.
- */
-int clk_set_rate(struct clk *clk, unsigned long rate);
-
-/**
- * clk_set_parent - set the parent clock source for this clock
- * @clk: clock source
- * @parent: parent clock source
- *
- * Returns success (0) or negative errno.
- */
-int clk_set_parent(struct clk *clk, struct clk *parent);
-
-/**
- * clk_get_parent - get the parent clock source for this clock
- * @clk: clock source
- *
- * Returns struct clk corresponding to parent clock source, or
- * valid IS_ERR() condition containing errno.
- */
-struct clk *clk_get_parent(struct clk *clk);
-
-/**
- * clk_get_sys - get a clock based upon the device name
- * @dev_id: device name
- * @con_id: connection ID
- *
- * Returns a struct clk corresponding to the clock producer, or
- * valid IS_ERR() condition containing errno. The implementation
- * uses @dev_id and @con_id to determine the clock consumer, and
- * thereby the clock producer. In contrast to clk_get() this function
- * takes the device name instead of the device itself for identification.
- *
- * Drivers must assume that the clock source is not enabled.
- *
- * clk_get_sys should not be called from within interrupt context.
- */
-struct clk *clk_get_sys(const char *dev_id, const char *con_id);
-
-/**
- * clk_add_alias - add a new clock alias
- * @alias: name for clock alias
- * @alias_dev_name: device name
- * @id: platform specific clock name
- * @dev: device
- *
- * Allows using generic clock names for drivers by adding a new alias.
- * Assumes clkdev, see clkdev.h for more info.
- */
-int clk_add_alias(const char *alias, const char *alias_dev_name, char *id,
- struct device *dev);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/clkdev.h b/ANDROID_3.4.5/include/linux/clkdev.h
deleted file mode 100644
index d9a4fd02..00000000
--- a/ANDROID_3.4.5/include/linux/clkdev.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * include/linux/clkdev.h
- *
- * Copyright (C) 2008 Russell King.
- *
- * 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.
- *
- * Helper for the clk API to assist looking up a struct clk.
- */
-#ifndef __CLKDEV_H
-#define __CLKDEV_H
-
-#include <asm/clkdev.h>
-
-struct clk;
-struct device;
-
-struct clk_lookup {
- struct list_head node;
- const char *dev_id;
- const char *con_id;
- struct clk *clk;
-};
-
-#define CLKDEV_INIT(d, n, c) \
- { \
- .dev_id = d, \
- .con_id = n, \
- .clk = c, \
- }
-
-struct clk_lookup *clkdev_alloc(struct clk *clk, const char *con_id,
- const char *dev_fmt, ...);
-
-void clkdev_add(struct clk_lookup *cl);
-void clkdev_drop(struct clk_lookup *cl);
-
-void clkdev_add_table(struct clk_lookup *, size_t);
-int clk_add_alias(const char *, const char *, char *, struct device *);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/clksrc-dbx500-prcmu.h b/ANDROID_3.4.5/include/linux/clksrc-dbx500-prcmu.h
deleted file mode 100644
index 4fb8119c..00000000
--- a/ANDROID_3.4.5/include/linux/clksrc-dbx500-prcmu.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson SA 2011
- *
- * License Terms: GNU General Public License v2
- * Author: Mattias Wallin <mattias.wallin@stericsson.com>
- *
- */
-#ifndef __CLKSRC_DBX500_PRCMU_H
-#define __CLKSRC_DBX500_PRCMU_H
-
-#include <linux/init.h>
-#include <linux/io.h>
-
-#ifdef CONFIG_CLKSRC_DBX500_PRCMU
-void __init clksrc_dbx500_prcmu_init(void __iomem *base);
-#else
-static inline void __init clksrc_dbx500_prcmu_init(void __iomem *base) {}
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/clockchips.h b/ANDROID_3.4.5/include/linux/clockchips.h
deleted file mode 100644
index 81e803e9..00000000
--- a/ANDROID_3.4.5/include/linux/clockchips.h
+++ /dev/null
@@ -1,170 +0,0 @@
-/* linux/include/linux/clockchips.h
- *
- * This file contains the structure definitions for clockchips.
- *
- * If you are not a clockchip, or the time of day code, you should
- * not be including this file!
- */
-#ifndef _LINUX_CLOCKCHIPS_H
-#define _LINUX_CLOCKCHIPS_H
-
-#ifdef CONFIG_GENERIC_CLOCKEVENTS_BUILD
-
-#include <linux/clocksource.h>
-#include <linux/cpumask.h>
-#include <linux/ktime.h>
-#include <linux/notifier.h>
-
-struct clock_event_device;
-
-/* Clock event mode commands */
-enum clock_event_mode {
- CLOCK_EVT_MODE_UNUSED = 0,
- CLOCK_EVT_MODE_SHUTDOWN,
- CLOCK_EVT_MODE_PERIODIC,
- CLOCK_EVT_MODE_ONESHOT,
- CLOCK_EVT_MODE_RESUME,
-};
-
-/* Clock event notification values */
-enum clock_event_nofitiers {
- CLOCK_EVT_NOTIFY_ADD,
- CLOCK_EVT_NOTIFY_BROADCAST_ON,
- CLOCK_EVT_NOTIFY_BROADCAST_OFF,
- CLOCK_EVT_NOTIFY_BROADCAST_FORCE,
- CLOCK_EVT_NOTIFY_BROADCAST_ENTER,
- CLOCK_EVT_NOTIFY_BROADCAST_EXIT,
- CLOCK_EVT_NOTIFY_SUSPEND,
- CLOCK_EVT_NOTIFY_RESUME,
- CLOCK_EVT_NOTIFY_CPU_DYING,
- CLOCK_EVT_NOTIFY_CPU_DEAD,
-};
-
-/*
- * Clock event features
- */
-#define CLOCK_EVT_FEAT_PERIODIC 0x000001
-#define CLOCK_EVT_FEAT_ONESHOT 0x000002
-#define CLOCK_EVT_FEAT_KTIME 0x000004
-/*
- * x86(64) specific misfeatures:
- *
- * - Clockevent source stops in C3 State and needs broadcast support.
- * - Local APIC timer is used as a dummy device.
- */
-#define CLOCK_EVT_FEAT_C3STOP 0x000008
-#define CLOCK_EVT_FEAT_DUMMY 0x000010
-
-/**
- * struct clock_event_device - clock event device descriptor
- * @event_handler: Assigned by the framework to be called by the low
- * level handler of the event source
- * @set_next_event: set next event function using a clocksource delta
- * @set_next_ktime: set next event function using a direct ktime value
- * @next_event: local storage for the next event in oneshot mode
- * @max_delta_ns: maximum delta value in ns
- * @min_delta_ns: minimum delta value in ns
- * @mult: nanosecond to cycles multiplier
- * @shift: nanoseconds to cycles divisor (power of two)
- * @mode: operating mode assigned by the management code
- * @features: features
- * @retries: number of forced programming retries
- * @set_mode: set mode function
- * @broadcast: function to broadcast events
- * @min_delta_ticks: minimum delta value in ticks stored for reconfiguration
- * @max_delta_ticks: maximum delta value in ticks stored for reconfiguration
- * @name: ptr to clock event name
- * @rating: variable to rate clock event devices
- * @irq: IRQ number (only for non CPU local devices)
- * @cpumask: cpumask to indicate for which CPUs this device works
- * @list: list head for the management code
- */
-struct clock_event_device {
- void (*event_handler)(struct clock_event_device *);
- int (*set_next_event)(unsigned long evt,
- struct clock_event_device *);
- int (*set_next_ktime)(ktime_t expires,
- struct clock_event_device *);
- ktime_t next_event;
- u64 max_delta_ns;
- u64 min_delta_ns;
- u32 mult;
- u32 shift;
- enum clock_event_mode mode;
- unsigned int features;
- unsigned long retries;
-
- void (*broadcast)(const struct cpumask *mask);
- void (*set_mode)(enum clock_event_mode mode,
- struct clock_event_device *);
- unsigned long min_delta_ticks;
- unsigned long max_delta_ticks;
-
- const char *name;
- int rating;
- int irq;
- const struct cpumask *cpumask;
- struct list_head list;
-} ____cacheline_aligned;
-
-/*
- * Calculate a multiplication factor for scaled math, which is used to convert
- * nanoseconds based values to clock ticks:
- *
- * clock_ticks = (nanoseconds * factor) >> shift.
- *
- * div_sc is the rearranged equation to calculate a factor from a given clock
- * ticks / nanoseconds ratio:
- *
- * factor = (clock_ticks << shift) / nanoseconds
- */
-static inline unsigned long div_sc(unsigned long ticks, unsigned long nsec,
- int shift)
-{
- uint64_t tmp = ((uint64_t)ticks) << shift;
-
- do_div(tmp, nsec);
- return (unsigned long) tmp;
-}
-
-/* Clock event layer functions */
-extern u64 clockevent_delta2ns(unsigned long latch,
- struct clock_event_device *evt);
-extern void clockevents_register_device(struct clock_event_device *dev);
-
-extern void clockevents_config_and_register(struct clock_event_device *dev,
- u32 freq, unsigned long min_delta,
- unsigned long max_delta);
-
-extern int clockevents_update_freq(struct clock_event_device *ce, u32 freq);
-
-extern void clockevents_exchange_device(struct clock_event_device *old,
- struct clock_event_device *new);
-extern void clockevents_set_mode(struct clock_event_device *dev,
- enum clock_event_mode mode);
-extern int clockevents_register_notifier(struct notifier_block *nb);
-extern int clockevents_program_event(struct clock_event_device *dev,
- ktime_t expires, bool force);
-
-extern void clockevents_handle_noop(struct clock_event_device *dev);
-
-static inline void
-clockevents_calc_mult_shift(struct clock_event_device *ce, u32 freq, u32 minsec)
-{
- return clocks_calc_mult_shift(&ce->mult, &ce->shift, NSEC_PER_SEC,
- freq, minsec);
-}
-
-#ifdef CONFIG_GENERIC_CLOCKEVENTS
-extern void clockevents_notify(unsigned long reason, void *arg);
-#else
-# define clockevents_notify(reason, arg) do { } while (0)
-#endif
-
-#else /* CONFIG_GENERIC_CLOCKEVENTS_BUILD */
-
-#define clockevents_notify(reason, arg) do { } while (0)
-
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/clocksource.h b/ANDROID_3.4.5/include/linux/clocksource.h
deleted file mode 100644
index fbe89e17..00000000
--- a/ANDROID_3.4.5/include/linux/clocksource.h
+++ /dev/null
@@ -1,351 +0,0 @@
-/* linux/include/linux/clocksource.h
- *
- * This file contains the structure definitions for clocksources.
- *
- * If you are not a clocksource, or timekeeping code, you should
- * not be including this file!
- */
-#ifndef _LINUX_CLOCKSOURCE_H
-#define _LINUX_CLOCKSOURCE_H
-
-#include <linux/types.h>
-#include <linux/timex.h>
-#include <linux/time.h>
-#include <linux/list.h>
-#include <linux/cache.h>
-#include <linux/timer.h>
-#include <linux/init.h>
-#include <asm/div64.h>
-#include <asm/io.h>
-
-/* clocksource cycle base type */
-typedef u64 cycle_t;
-struct clocksource;
-
-#ifdef CONFIG_ARCH_CLOCKSOURCE_DATA
-#include <asm/clocksource.h>
-#endif
-
-/**
- * struct cyclecounter - hardware abstraction for a free running counter
- * Provides completely state-free accessors to the underlying hardware.
- * Depending on which hardware it reads, the cycle counter may wrap
- * around quickly. Locking rules (if necessary) have to be defined
- * by the implementor and user of specific instances of this API.
- *
- * @read: returns the current cycle value
- * @mask: bitmask for two's complement
- * subtraction of non 64 bit counters,
- * see CLOCKSOURCE_MASK() helper macro
- * @mult: cycle to nanosecond multiplier
- * @shift: cycle to nanosecond divisor (power of two)
- */
-struct cyclecounter {
- cycle_t (*read)(const struct cyclecounter *cc);
- cycle_t mask;
- u32 mult;
- u32 shift;
-};
-
-/**
- * struct timecounter - layer above a %struct cyclecounter which counts nanoseconds
- * Contains the state needed by timecounter_read() to detect
- * cycle counter wrap around. Initialize with
- * timecounter_init(). Also used to convert cycle counts into the
- * corresponding nanosecond counts with timecounter_cyc2time(). Users
- * of this code are responsible for initializing the underlying
- * cycle counter hardware, locking issues and reading the time
- * more often than the cycle counter wraps around. The nanosecond
- * counter will only wrap around after ~585 years.
- *
- * @cc: the cycle counter used by this instance
- * @cycle_last: most recent cycle counter value seen by
- * timecounter_read()
- * @nsec: continuously increasing count
- */
-struct timecounter {
- const struct cyclecounter *cc;
- cycle_t cycle_last;
- u64 nsec;
-};
-
-/**
- * cyclecounter_cyc2ns - converts cycle counter cycles to nanoseconds
- * @cc: Pointer to cycle counter.
- * @cycles: Cycles
- *
- * XXX - This could use some mult_lxl_ll() asm optimization. Same code
- * as in cyc2ns, but with unsigned result.
- */
-static inline u64 cyclecounter_cyc2ns(const struct cyclecounter *cc,
- cycle_t cycles)
-{
- u64 ret = (u64)cycles;
- ret = (ret * cc->mult) >> cc->shift;
- return ret;
-}
-
-/**
- * timecounter_init - initialize a time counter
- * @tc: Pointer to time counter which is to be initialized/reset
- * @cc: A cycle counter, ready to be used.
- * @start_tstamp: Arbitrary initial time stamp.
- *
- * After this call the current cycle register (roughly) corresponds to
- * the initial time stamp. Every call to timecounter_read() increments
- * the time stamp counter by the number of elapsed nanoseconds.
- */
-extern void timecounter_init(struct timecounter *tc,
- const struct cyclecounter *cc,
- u64 start_tstamp);
-
-/**
- * timecounter_read - return nanoseconds elapsed since timecounter_init()
- * plus the initial time stamp
- * @tc: Pointer to time counter.
- *
- * In other words, keeps track of time since the same epoch as
- * the function which generated the initial time stamp.
- */
-extern u64 timecounter_read(struct timecounter *tc);
-
-/**
- * timecounter_cyc2time - convert a cycle counter to same
- * time base as values returned by
- * timecounter_read()
- * @tc: Pointer to time counter.
- * @cycle_tstamp: a value returned by tc->cc->read()
- *
- * Cycle counts that are converted correctly as long as they
- * fall into the interval [-1/2 max cycle count, +1/2 max cycle count],
- * with "max cycle count" == cs->mask+1.
- *
- * This allows conversion of cycle counter values which were generated
- * in the past.
- */
-extern u64 timecounter_cyc2time(struct timecounter *tc,
- cycle_t cycle_tstamp);
-
-/**
- * struct clocksource - hardware abstraction for a free running counter
- * Provides mostly state-free accessors to the underlying hardware.
- * This is the structure used for system time.
- *
- * @name: ptr to clocksource name
- * @list: list head for registration
- * @rating: rating value for selection (higher is better)
- * To avoid rating inflation the following
- * list should give you a guide as to how
- * to assign your clocksource a rating
- * 1-99: Unfit for real use
- * Only available for bootup and testing purposes.
- * 100-199: Base level usability.
- * Functional for real use, but not desired.
- * 200-299: Good.
- * A correct and usable clocksource.
- * 300-399: Desired.
- * A reasonably fast and accurate clocksource.
- * 400-499: Perfect
- * The ideal clocksource. A must-use where
- * available.
- * @read: returns a cycle value, passes clocksource as argument
- * @enable: optional function to enable the clocksource
- * @disable: optional function to disable the clocksource
- * @mask: bitmask for two's complement
- * subtraction of non 64 bit counters
- * @mult: cycle to nanosecond multiplier
- * @shift: cycle to nanosecond divisor (power of two)
- * @max_idle_ns: max idle time permitted by the clocksource (nsecs)
- * @maxadj: maximum adjustment value to mult (~11%)
- * @flags: flags describing special properties
- * @archdata: arch-specific data
- * @suspend: suspend function for the clocksource, if necessary
- * @resume: resume function for the clocksource, if necessary
- * @cycle_last: most recent cycle counter value seen by ::read()
- */
-struct clocksource {
- /*
- * Hotpath data, fits in a single cache line when the
- * clocksource itself is cacheline aligned.
- */
- cycle_t (*read)(struct clocksource *cs);
- cycle_t cycle_last;
- cycle_t mask;
- u32 mult;
- u32 shift;
- u64 max_idle_ns;
- u32 maxadj;
-#ifdef CONFIG_ARCH_CLOCKSOURCE_DATA
- struct arch_clocksource_data archdata;
-#endif
-
- const char *name;
- struct list_head list;
- int rating;
- int (*enable)(struct clocksource *cs);
- void (*disable)(struct clocksource *cs);
- unsigned long flags;
- void (*suspend)(struct clocksource *cs);
- void (*resume)(struct clocksource *cs);
-
- /* private: */
-#ifdef CONFIG_CLOCKSOURCE_WATCHDOG
- /* Watchdog related data, used by the framework */
- struct list_head wd_list;
- cycle_t cs_last;
- cycle_t wd_last;
-#endif
-} ____cacheline_aligned;
-
-/*
- * Clock source flags bits::
- */
-#define CLOCK_SOURCE_IS_CONTINUOUS 0x01
-#define CLOCK_SOURCE_MUST_VERIFY 0x02
-
-#define CLOCK_SOURCE_WATCHDOG 0x10
-#define CLOCK_SOURCE_VALID_FOR_HRES 0x20
-#define CLOCK_SOURCE_UNSTABLE 0x40
-
-/* simplify initialization of mask field */
-#define CLOCKSOURCE_MASK(bits) (cycle_t)((bits) < 64 ? ((1ULL<<(bits))-1) : -1)
-
-/**
- * clocksource_khz2mult - calculates mult from khz and shift
- * @khz: Clocksource frequency in KHz
- * @shift_constant: Clocksource shift factor
- *
- * Helper functions that converts a khz counter frequency to a timsource
- * multiplier, given the clocksource shift value
- */
-static inline u32 clocksource_khz2mult(u32 khz, u32 shift_constant)
-{
- /* khz = cyc/(Million ns)
- * mult/2^shift = ns/cyc
- * mult = ns/cyc * 2^shift
- * mult = 1Million/khz * 2^shift
- * mult = 1000000 * 2^shift / khz
- * mult = (1000000<<shift) / khz
- */
- u64 tmp = ((u64)1000000) << shift_constant;
-
- tmp += khz/2; /* round for do_div */
- do_div(tmp, khz);
-
- return (u32)tmp;
-}
-
-/**
- * clocksource_hz2mult - calculates mult from hz and shift
- * @hz: Clocksource frequency in Hz
- * @shift_constant: Clocksource shift factor
- *
- * Helper functions that converts a hz counter
- * frequency to a timsource multiplier, given the
- * clocksource shift value
- */
-static inline u32 clocksource_hz2mult(u32 hz, u32 shift_constant)
-{
- /* hz = cyc/(Billion ns)
- * mult/2^shift = ns/cyc
- * mult = ns/cyc * 2^shift
- * mult = 1Billion/hz * 2^shift
- * mult = 1000000000 * 2^shift / hz
- * mult = (1000000000<<shift) / hz
- */
- u64 tmp = ((u64)1000000000) << shift_constant;
-
- tmp += hz/2; /* round for do_div */
- do_div(tmp, hz);
-
- return (u32)tmp;
-}
-
-/**
- * clocksource_cyc2ns - converts clocksource cycles to nanoseconds
- * @cycles: cycles
- * @mult: cycle to nanosecond multiplier
- * @shift: cycle to nanosecond divisor (power of two)
- *
- * Converts cycles to nanoseconds, using the given mult and shift.
- *
- * XXX - This could use some mult_lxl_ll() asm optimization
- */
-static inline s64 clocksource_cyc2ns(cycle_t cycles, u32 mult, u32 shift)
-{
- return ((u64) cycles * mult) >> shift;
-}
-
-
-extern int clocksource_register(struct clocksource*);
-extern void clocksource_unregister(struct clocksource*);
-extern void clocksource_touch_watchdog(void);
-extern struct clocksource* clocksource_get_next(void);
-extern void clocksource_change_rating(struct clocksource *cs, int rating);
-extern void clocksource_suspend(void);
-extern void clocksource_resume(void);
-extern struct clocksource * __init __weak clocksource_default_clock(void);
-extern void clocksource_mark_unstable(struct clocksource *cs);
-
-extern void
-clocks_calc_mult_shift(u32 *mult, u32 *shift, u32 from, u32 to, u32 minsec);
-
-/*
- * Don't call __clocksource_register_scale directly, use
- * clocksource_register_hz/khz
- */
-extern int
-__clocksource_register_scale(struct clocksource *cs, u32 scale, u32 freq);
-extern void
-__clocksource_updatefreq_scale(struct clocksource *cs, u32 scale, u32 freq);
-
-static inline int clocksource_register_hz(struct clocksource *cs, u32 hz)
-{
- return __clocksource_register_scale(cs, 1, hz);
-}
-
-static inline int clocksource_register_khz(struct clocksource *cs, u32 khz)
-{
- return __clocksource_register_scale(cs, 1000, khz);
-}
-
-static inline void __clocksource_updatefreq_hz(struct clocksource *cs, u32 hz)
-{
- __clocksource_updatefreq_scale(cs, 1, hz);
-}
-
-static inline void __clocksource_updatefreq_khz(struct clocksource *cs, u32 khz)
-{
- __clocksource_updatefreq_scale(cs, 1000, khz);
-}
-
-#ifdef CONFIG_GENERIC_TIME_VSYSCALL
-extern void
-update_vsyscall(struct timespec *ts, struct timespec *wtm,
- struct clocksource *c, u32 mult);
-extern void update_vsyscall_tz(void);
-#else
-static inline void
-update_vsyscall(struct timespec *ts, struct timespec *wtm,
- struct clocksource *c, u32 mult)
-{
-}
-
-static inline void update_vsyscall_tz(void)
-{
-}
-#endif
-
-extern void timekeeping_notify(struct clocksource *clock);
-
-extern cycle_t clocksource_mmio_readl_up(struct clocksource *);
-extern cycle_t clocksource_mmio_readl_down(struct clocksource *);
-extern cycle_t clocksource_mmio_readw_up(struct clocksource *);
-extern cycle_t clocksource_mmio_readw_down(struct clocksource *);
-
-extern int clocksource_mmio_init(void __iomem *, const char *,
- unsigned long, int, unsigned, cycle_t (*)(struct clocksource *));
-
-extern int clocksource_i8253_init(void);
-
-#endif /* _LINUX_CLOCKSOURCE_H */
diff --git a/ANDROID_3.4.5/include/linux/cm4000_cs.h b/ANDROID_3.4.5/include/linux/cm4000_cs.h
deleted file mode 100644
index 3c4aac40..00000000
--- a/ANDROID_3.4.5/include/linux/cm4000_cs.h
+++ /dev/null
@@ -1,68 +0,0 @@
-#ifndef _CM4000_H_
-#define _CM4000_H_
-
-#include <linux/types.h>
-
-#define MAX_ATR 33
-
-#define CM4000_MAX_DEV 4
-
-/* those two structures are passed via ioctl() from/to userspace. They are
- * used by existing userspace programs, so I kepth the awkward "bIFSD" naming
- * not to break compilation of userspace apps. -HW */
-
-typedef struct atreq {
- __s32 atr_len;
- unsigned char atr[64];
- __s32 power_act;
- unsigned char bIFSD;
- unsigned char bIFSC;
-} atreq_t;
-
-
-/* what is particularly stupid in the original driver is the arch-dependent
- * member sizes. This leads to CONFIG_COMPAT breakage, since 32bit userspace
- * will lay out the structure members differently than the 64bit kernel.
- *
- * I've changed "ptsreq.protocol" from "unsigned long" to "__u32".
- * On 32bit this will make no difference. With 64bit kernels, it will make
- * 32bit apps work, too.
- */
-
-typedef struct ptsreq {
- __u32 protocol; /*T=0: 2^0, T=1: 2^1*/
- unsigned char flags;
- unsigned char pts1;
- unsigned char pts2;
- unsigned char pts3;
-} ptsreq_t;
-
-#define CM_IOC_MAGIC 'c'
-#define CM_IOC_MAXNR 255
-
-#define CM_IOCGSTATUS _IOR (CM_IOC_MAGIC, 0, unsigned char *)
-#define CM_IOCGATR _IOWR(CM_IOC_MAGIC, 1, atreq_t *)
-#define CM_IOCSPTS _IOW (CM_IOC_MAGIC, 2, ptsreq_t *)
-#define CM_IOCSRDR _IO (CM_IOC_MAGIC, 3)
-#define CM_IOCARDOFF _IO (CM_IOC_MAGIC, 4)
-
-#define CM_IOSDBGLVL _IOW(CM_IOC_MAGIC, 250, int*)
-
-/* card and device states */
-#define CM_CARD_INSERTED 0x01
-#define CM_CARD_POWERED 0x02
-#define CM_ATR_PRESENT 0x04
-#define CM_ATR_VALID 0x08
-#define CM_STATE_VALID 0x0f
-/* extra info only from CM4000 */
-#define CM_NO_READER 0x10
-#define CM_BAD_CARD 0x20
-
-
-#ifdef __KERNEL__
-
-#define DEVICE_NAME "cmm"
-#define MODULE_NAME "cm4000_cs"
-
-#endif /* __KERNEL__ */
-#endif /* _CM4000_H_ */
diff --git a/ANDROID_3.4.5/include/linux/cn_proc.h b/ANDROID_3.4.5/include/linux/cn_proc.h
deleted file mode 100644
index d03612b1..00000000
--- a/ANDROID_3.4.5/include/linux/cn_proc.h
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * cn_proc.h - process events connector
- *
- * Copyright (C) Matt Helsley, IBM Corp. 2005
- * Based on cn_fork.h by Nguyen Anh Quynh and Guillaume Thouvenin
- * Copyright (C) 2005 Nguyen Anh Quynh <aquynh@gmail.com>
- * Copyright (C) 2005 Guillaume Thouvenin <guillaume.thouvenin@bull.net>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2.1 of the GNU Lesser General Public License
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it would be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#ifndef CN_PROC_H
-#define CN_PROC_H
-
-#include <linux/types.h>
-
-/*
- * Userspace sends this enum to register with the kernel that it is listening
- * for events on the connector.
- */
-enum proc_cn_mcast_op {
- PROC_CN_MCAST_LISTEN = 1,
- PROC_CN_MCAST_IGNORE = 2
-};
-
-/*
- * From the user's point of view, the process
- * ID is the thread group ID and thread ID is the internal
- * kernel "pid". So, fields are assigned as follow:
- *
- * In user space - In kernel space
- *
- * parent process ID = parent->tgid
- * parent thread ID = parent->pid
- * child process ID = child->tgid
- * child thread ID = child->pid
- */
-
-struct proc_event {
- enum what {
- /* Use successive bits so the enums can be used to record
- * sets of events as well
- */
- PROC_EVENT_NONE = 0x00000000,
- PROC_EVENT_FORK = 0x00000001,
- PROC_EVENT_EXEC = 0x00000002,
- PROC_EVENT_UID = 0x00000004,
- PROC_EVENT_GID = 0x00000040,
- PROC_EVENT_SID = 0x00000080,
- PROC_EVENT_PTRACE = 0x00000100,
- PROC_EVENT_COMM = 0x00000200,
- /* "next" should be 0x00000400 */
- /* "last" is the last process event: exit */
- PROC_EVENT_EXIT = 0x80000000
- } what;
- __u32 cpu;
- __u64 __attribute__((aligned(8))) timestamp_ns;
- /* Number of nano seconds since system boot */
- union { /* must be last field of proc_event struct */
- struct {
- __u32 err;
- } ack;
-
- struct fork_proc_event {
- __kernel_pid_t parent_pid;
- __kernel_pid_t parent_tgid;
- __kernel_pid_t child_pid;
- __kernel_pid_t child_tgid;
- } fork;
-
- struct exec_proc_event {
- __kernel_pid_t process_pid;
- __kernel_pid_t process_tgid;
- } exec;
-
- struct id_proc_event {
- __kernel_pid_t process_pid;
- __kernel_pid_t process_tgid;
- union {
- __u32 ruid; /* task uid */
- __u32 rgid; /* task gid */
- } r;
- union {
- __u32 euid;
- __u32 egid;
- } e;
- } id;
-
- struct sid_proc_event {
- __kernel_pid_t process_pid;
- __kernel_pid_t process_tgid;
- } sid;
-
- struct ptrace_proc_event {
- __kernel_pid_t process_pid;
- __kernel_pid_t process_tgid;
- __kernel_pid_t tracer_pid;
- __kernel_pid_t tracer_tgid;
- } ptrace;
-
- struct comm_proc_event {
- __kernel_pid_t process_pid;
- __kernel_pid_t process_tgid;
- char comm[16];
- } comm;
-
- struct exit_proc_event {
- __kernel_pid_t process_pid;
- __kernel_pid_t process_tgid;
- __u32 exit_code, exit_signal;
- } exit;
- } event_data;
-};
-
-#ifdef __KERNEL__
-#ifdef CONFIG_PROC_EVENTS
-void proc_fork_connector(struct task_struct *task);
-void proc_exec_connector(struct task_struct *task);
-void proc_id_connector(struct task_struct *task, int which_id);
-void proc_sid_connector(struct task_struct *task);
-void proc_ptrace_connector(struct task_struct *task, int which_id);
-void proc_comm_connector(struct task_struct *task);
-void proc_exit_connector(struct task_struct *task);
-#else
-static inline void proc_fork_connector(struct task_struct *task)
-{}
-
-static inline void proc_exec_connector(struct task_struct *task)
-{}
-
-static inline void proc_id_connector(struct task_struct *task,
- int which_id)
-{}
-
-static inline void proc_sid_connector(struct task_struct *task)
-{}
-
-static inline void proc_comm_connector(struct task_struct *task)
-{}
-
-static inline void proc_ptrace_connector(struct task_struct *task,
- int ptrace_id)
-{}
-
-static inline void proc_exit_connector(struct task_struct *task)
-{}
-#endif /* CONFIG_PROC_EVENTS */
-#endif /* __KERNEL__ */
-#endif /* CN_PROC_H */
diff --git a/ANDROID_3.4.5/include/linux/cnt32_to_63.h b/ANDROID_3.4.5/include/linux/cnt32_to_63.h
deleted file mode 100644
index aa629bce..00000000
--- a/ANDROID_3.4.5/include/linux/cnt32_to_63.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Extend a 32-bit counter to 63 bits
- *
- * Author: Nicolas Pitre
- * Created: December 3, 2006
- * Copyright: MontaVista Software, Inc.
- *
- * 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.
- */
-
-#ifndef __LINUX_CNT32_TO_63_H__
-#define __LINUX_CNT32_TO_63_H__
-
-#include <linux/compiler.h>
-#include <linux/types.h>
-#include <asm/byteorder.h>
-
-/* this is used only to give gcc a clue about good code generation */
-union cnt32_to_63 {
- struct {
-#if defined(__LITTLE_ENDIAN)
- u32 lo, hi;
-#elif defined(__BIG_ENDIAN)
- u32 hi, lo;
-#endif
- };
- u64 val;
-};
-
-
-/**
- * cnt32_to_63 - Expand a 32-bit counter to a 63-bit counter
- * @cnt_lo: The low part of the counter
- *
- * Many hardware clock counters are only 32 bits wide and therefore have
- * a relatively short period making wrap-arounds rather frequent. This
- * is a problem when implementing sched_clock() for example, where a 64-bit
- * non-wrapping monotonic value is expected to be returned.
- *
- * To overcome that limitation, let's extend a 32-bit counter to 63 bits
- * in a completely lock free fashion. Bits 0 to 31 of the clock are provided
- * by the hardware while bits 32 to 62 are stored in memory. The top bit in
- * memory is used to synchronize with the hardware clock half-period. When
- * the top bit of both counters (hardware and in memory) differ then the
- * memory is updated with a new value, incrementing it when the hardware
- * counter wraps around.
- *
- * Because a word store in memory is atomic then the incremented value will
- * always be in synch with the top bit indicating to any potential concurrent
- * reader if the value in memory is up to date or not with regards to the
- * needed increment. And any race in updating the value in memory is harmless
- * as the same value would simply be stored more than once.
- *
- * The restrictions for the algorithm to work properly are:
- *
- * 1) this code must be called at least once per each half period of the
- * 32-bit counter;
- *
- * 2) this code must not be preempted for a duration longer than the
- * 32-bit counter half period minus the longest period between two
- * calls to this code;
- *
- * Those requirements ensure proper update to the state bit in memory.
- * This is usually not a problem in practice, but if it is then a kernel
- * timer should be scheduled to manage for this code to be executed often
- * enough.
- *
- * And finally:
- *
- * 3) the cnt_lo argument must be seen as a globally incrementing value,
- * meaning that it should be a direct reference to the counter data which
- * can be evaluated according to a specific ordering within the macro,
- * and not the result of a previous evaluation stored in a variable.
- *
- * For example, this is wrong:
- *
- * u32 partial = get_hw_count();
- * u64 full = cnt32_to_63(partial);
- * return full;
- *
- * This is fine:
- *
- * u64 full = cnt32_to_63(get_hw_count());
- * return full;
- *
- * Note that the top bit (bit 63) in the returned value should be considered
- * as garbage. It is not cleared here because callers are likely to use a
- * multiplier on the returned value which can get rid of the top bit
- * implicitly by making the multiplier even, therefore saving on a runtime
- * clear-bit instruction. Otherwise caller must remember to clear the top
- * bit explicitly.
- */
-#define cnt32_to_63(cnt_lo) \
-({ \
- static u32 __m_cnt_hi; \
- union cnt32_to_63 __x; \
- __x.hi = __m_cnt_hi; \
- smp_rmb(); \
- __x.lo = (cnt_lo); \
- if (unlikely((s32)(__x.hi ^ __x.lo) < 0)) \
- __m_cnt_hi = __x.hi = (__x.hi ^ 0x80000000) + (__x.hi >> 31); \
- __x.val; \
-})
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/coda.h b/ANDROID_3.4.5/include/linux/coda.h
deleted file mode 100644
index 96c87693..00000000
--- a/ANDROID_3.4.5/include/linux/coda.h
+++ /dev/null
@@ -1,744 +0,0 @@
-/*
- You may distribute this file under either of the two licenses that
- follow at your discretion.
-*/
-
-/* BLURB lgpl
-
- Coda File System
- Release 5
-
- Copyright (c) 1987-1999 Carnegie Mellon University
- Additional copyrights listed below
-
-This code is distributed "AS IS" without warranty of any kind under
-the terms of the GNU Library General Public Licence Version 2, as
-shown in the file LICENSE, or under the license shown below. The
-technical and financial contributors to Coda are listed in the file
-CREDITS.
-
- Additional copyrights
-*/
-
-/*
-
- Coda: an Experimental Distributed File System
- Release 4.0
-
- Copyright (c) 1987-1999 Carnegie Mellon University
- All Rights Reserved
-
-Permission to use, copy, modify and distribute this software and its
-documentation is hereby granted, provided that both the copyright
-notice and this permission notice appear in all copies of the
-software, derivative works or modified versions, and any portions
-thereof, and that both notices appear in supporting documentation, and
-that credit is given to Carnegie Mellon University in all documents
-and publicity pertaining to direct or indirect use of this code or its
-derivatives.
-
-CODA IS AN EXPERIMENTAL SOFTWARE SYSTEM AND IS KNOWN TO HAVE BUGS,
-SOME OF WHICH MAY HAVE SERIOUS CONSEQUENCES. CARNEGIE MELLON ALLOWS
-FREE USE OF THIS SOFTWARE IN ITS "AS IS" CONDITION. CARNEGIE MELLON
-DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER
-RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE OR OF
-ANY DERIVATIVE WORK.
-
-Carnegie Mellon encourages users of this software to return any
-improvements or extensions that they make, and to grant Carnegie
-Mellon the rights to redistribute these changes without encumbrance.
-*/
-
-/*
- *
- * Based on cfs.h from Mach, but revamped for increased simplicity.
- * Linux modifications by
- * Peter Braam, Aug 1996
- */
-
-#ifndef _CODA_HEADER_
-#define _CODA_HEADER_
-
-
-/* Catch new _KERNEL defn for NetBSD and DJGPP/__CYGWIN32__ */
-#if defined(__NetBSD__) || \
- ((defined(DJGPP) || defined(__CYGWIN32__)) && !defined(KERNEL))
-#include <sys/types.h>
-#endif
-
-#ifndef CODA_MAXSYMLINKS
-#define CODA_MAXSYMLINKS 10
-#endif
-
-#if defined(DJGPP) || defined(__CYGWIN32__)
-#ifdef KERNEL
-typedef unsigned long u_long;
-typedef unsigned int u_int;
-typedef unsigned short u_short;
-typedef u_long ino_t;
-typedef u_long dev_t;
-typedef void * caddr_t;
-#ifdef DOS
-typedef unsigned __int64 u_quad_t;
-#else
-typedef unsigned long long u_quad_t;
-#endif
-
-#define inline
-
-struct timespec {
- long ts_sec;
- long ts_nsec;
-};
-#else /* DJGPP but not KERNEL */
-#include <sys/time.h>
-typedef unsigned long long u_quad_t;
-#endif /* !KERNEL */
-#endif /* !DJGPP */
-
-
-#if defined(__linux__)
-#include <linux/time.h>
-#define cdev_t u_quad_t
-#ifndef __KERNEL__
-#if !defined(_UQUAD_T_) && (!defined(__GLIBC__) || __GLIBC__ < 2)
-#define _UQUAD_T_ 1
-typedef unsigned long long u_quad_t;
-#endif
-#else /*__KERNEL__ */
-typedef unsigned long long u_quad_t;
-#endif /* __KERNEL__ */
-#else
-#define cdev_t dev_t
-#endif
-
-#ifdef __CYGWIN32__
-struct timespec {
- time_t tv_sec; /* seconds */
- long tv_nsec; /* nanoseconds */
-};
-#endif
-
-#ifndef __BIT_TYPES_DEFINED__
-#define __BIT_TYPES_DEFINED__
-typedef signed char int8_t;
-typedef unsigned char u_int8_t;
-typedef short int16_t;
-typedef unsigned short u_int16_t;
-typedef int int32_t;
-typedef unsigned int u_int32_t;
-#endif
-
-
-/*
- * Cfs constants
- */
-#define CODA_MAXNAMLEN 255
-#define CODA_MAXPATHLEN 1024
-#define CODA_MAXSYMLINK 10
-
-/* these are Coda's version of O_RDONLY etc combinations
- * to deal with VFS open modes
- */
-#define C_O_READ 0x001
-#define C_O_WRITE 0x002
-#define C_O_TRUNC 0x010
-#define C_O_EXCL 0x100
-#define C_O_CREAT 0x200
-
-/* these are to find mode bits in Venus */
-#define C_M_READ 00400
-#define C_M_WRITE 00200
-
-/* for access Venus will use */
-#define C_A_C_OK 8 /* Test for writing upon create. */
-#define C_A_R_OK 4 /* Test for read permission. */
-#define C_A_W_OK 2 /* Test for write permission. */
-#define C_A_X_OK 1 /* Test for execute permission. */
-#define C_A_F_OK 0 /* Test for existence. */
-
-
-
-#ifndef _VENUS_DIRENT_T_
-#define _VENUS_DIRENT_T_ 1
-struct venus_dirent {
- u_int32_t d_fileno; /* file number of entry */
- u_int16_t d_reclen; /* length of this record */
- u_int8_t d_type; /* file type, see below */
- u_int8_t d_namlen; /* length of string in d_name */
- char d_name[CODA_MAXNAMLEN + 1];/* name must be no longer than this */
-};
-#undef DIRSIZ
-#define DIRSIZ(dp) ((sizeof (struct venus_dirent) - (CODA_MAXNAMLEN+1)) + \
- (((dp)->d_namlen+1 + 3) &~ 3))
-
-/*
- * File types
- */
-#define CDT_UNKNOWN 0
-#define CDT_FIFO 1
-#define CDT_CHR 2
-#define CDT_DIR 4
-#define CDT_BLK 6
-#define CDT_REG 8
-#define CDT_LNK 10
-#define CDT_SOCK 12
-#define CDT_WHT 14
-
-/*
- * Convert between stat structure types and directory types.
- */
-#define IFTOCDT(mode) (((mode) & 0170000) >> 12)
-#define CDTTOIF(dirtype) ((dirtype) << 12)
-
-#endif
-
-#ifndef _VUID_T_
-#define _VUID_T_
-typedef u_int32_t vuid_t;
-typedef u_int32_t vgid_t;
-#endif /*_VUID_T_ */
-
-struct CodaFid {
- u_int32_t opaque[4];
-};
-
-#define coda_f2i(fid)\
- (fid ? (fid->opaque[3] ^ (fid->opaque[2]<<10) ^ (fid->opaque[1]<<20) ^ fid->opaque[0]) : 0)
-
-#ifndef _VENUS_VATTR_T_
-#define _VENUS_VATTR_T_
-/*
- * Vnode types. VNON means no type.
- */
-enum coda_vtype { C_VNON, C_VREG, C_VDIR, C_VBLK, C_VCHR, C_VLNK, C_VSOCK, C_VFIFO, C_VBAD };
-
-struct coda_vattr {
- long va_type; /* vnode type (for create) */
- u_short va_mode; /* files access mode and type */
- short va_nlink; /* number of references to file */
- vuid_t va_uid; /* owner user id */
- vgid_t va_gid; /* owner group id */
- long va_fileid; /* file id */
- u_quad_t va_size; /* file size in bytes */
- long va_blocksize; /* blocksize preferred for i/o */
- struct timespec va_atime; /* time of last access */
- struct timespec va_mtime; /* time of last modification */
- struct timespec va_ctime; /* time file changed */
- u_long va_gen; /* generation number of file */
- u_long va_flags; /* flags defined for file */
- cdev_t va_rdev; /* device special file represents */
- u_quad_t va_bytes; /* bytes of disk space held by file */
- u_quad_t va_filerev; /* file modification number */
-};
-
-#endif
-
-/* structure used by CODA_STATFS for getting cache information from venus */
-struct coda_statfs {
- int32_t f_blocks;
- int32_t f_bfree;
- int32_t f_bavail;
- int32_t f_files;
- int32_t f_ffree;
-};
-
-/*
- * Kernel <--> Venus communications.
- */
-
-#define CODA_ROOT 2
-#define CODA_OPEN_BY_FD 3
-#define CODA_OPEN 4
-#define CODA_CLOSE 5
-#define CODA_IOCTL 6
-#define CODA_GETATTR 7
-#define CODA_SETATTR 8
-#define CODA_ACCESS 9
-#define CODA_LOOKUP 10
-#define CODA_CREATE 11
-#define CODA_REMOVE 12
-#define CODA_LINK 13
-#define CODA_RENAME 14
-#define CODA_MKDIR 15
-#define CODA_RMDIR 16
-#define CODA_SYMLINK 18
-#define CODA_READLINK 19
-#define CODA_FSYNC 20
-#define CODA_VGET 22
-#define CODA_SIGNAL 23
-#define CODA_REPLACE 24 /* DOWNCALL */
-#define CODA_FLUSH 25 /* DOWNCALL */
-#define CODA_PURGEUSER 26 /* DOWNCALL */
-#define CODA_ZAPFILE 27 /* DOWNCALL */
-#define CODA_ZAPDIR 28 /* DOWNCALL */
-#define CODA_PURGEFID 30 /* DOWNCALL */
-#define CODA_OPEN_BY_PATH 31
-#define CODA_RESOLVE 32
-#define CODA_REINTEGRATE 33
-#define CODA_STATFS 34
-#define CODA_STORE 35
-#define CODA_RELEASE 36
-#define CODA_NCALLS 37
-
-#define DOWNCALL(opcode) (opcode >= CODA_REPLACE && opcode <= CODA_PURGEFID)
-
-#define VC_MAXDATASIZE 8192
-#define VC_MAXMSGSIZE sizeof(union inputArgs)+sizeof(union outputArgs) +\
- VC_MAXDATASIZE
-
-#define CIOC_KERNEL_VERSION _IOWR('c', 10, size_t)
-
-#define CODA_KERNEL_VERSION 3 /* 128-bit file identifiers */
-
-/*
- * Venus <-> Coda RPC arguments
- */
-struct coda_in_hdr {
- u_int32_t opcode;
- u_int32_t unique; /* Keep multiple outstanding msgs distinct */
- pid_t pid;
- pid_t pgid;
- vuid_t uid;
-};
-
-/* Really important that opcode and unique are 1st two fields! */
-struct coda_out_hdr {
- u_int32_t opcode;
- u_int32_t unique;
- u_int32_t result;
-};
-
-/* coda_root: NO_IN */
-struct coda_root_out {
- struct coda_out_hdr oh;
- struct CodaFid VFid;
-};
-
-struct coda_root_in {
- struct coda_in_hdr in;
-};
-
-/* coda_open: */
-struct coda_open_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
- int flags;
-};
-
-struct coda_open_out {
- struct coda_out_hdr oh;
- cdev_t dev;
- ino_t inode;
-};
-
-
-/* coda_store: */
-struct coda_store_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
- int flags;
-};
-
-struct coda_store_out {
- struct coda_out_hdr out;
-};
-
-/* coda_release: */
-struct coda_release_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
- int flags;
-};
-
-struct coda_release_out {
- struct coda_out_hdr out;
-};
-
-/* coda_close: */
-struct coda_close_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
- int flags;
-};
-
-struct coda_close_out {
- struct coda_out_hdr out;
-};
-
-/* coda_ioctl: */
-struct coda_ioctl_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
- int cmd;
- int len;
- int rwflag;
- char *data; /* Place holder for data. */
-};
-
-struct coda_ioctl_out {
- struct coda_out_hdr oh;
- int len;
- caddr_t data; /* Place holder for data. */
-};
-
-
-/* coda_getattr: */
-struct coda_getattr_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
-};
-
-struct coda_getattr_out {
- struct coda_out_hdr oh;
- struct coda_vattr attr;
-};
-
-
-/* coda_setattr: NO_OUT */
-struct coda_setattr_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
- struct coda_vattr attr;
-};
-
-struct coda_setattr_out {
- struct coda_out_hdr out;
-};
-
-/* coda_access: NO_OUT */
-struct coda_access_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
- int flags;
-};
-
-struct coda_access_out {
- struct coda_out_hdr out;
-};
-
-
-/* lookup flags */
-#define CLU_CASE_SENSITIVE 0x01
-#define CLU_CASE_INSENSITIVE 0x02
-
-/* coda_lookup: */
-struct coda_lookup_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
- int name; /* Place holder for data. */
- int flags;
-};
-
-struct coda_lookup_out {
- struct coda_out_hdr oh;
- struct CodaFid VFid;
- int vtype;
-};
-
-
-/* coda_create: */
-struct coda_create_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
- struct coda_vattr attr;
- int excl;
- int mode;
- int name; /* Place holder for data. */
-};
-
-struct coda_create_out {
- struct coda_out_hdr oh;
- struct CodaFid VFid;
- struct coda_vattr attr;
-};
-
-
-/* coda_remove: NO_OUT */
-struct coda_remove_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
- int name; /* Place holder for data. */
-};
-
-struct coda_remove_out {
- struct coda_out_hdr out;
-};
-
-/* coda_link: NO_OUT */
-struct coda_link_in {
- struct coda_in_hdr ih;
- struct CodaFid sourceFid; /* cnode to link *to* */
- struct CodaFid destFid; /* Directory in which to place link */
- int tname; /* Place holder for data. */
-};
-
-struct coda_link_out {
- struct coda_out_hdr out;
-};
-
-
-/* coda_rename: NO_OUT */
-struct coda_rename_in {
- struct coda_in_hdr ih;
- struct CodaFid sourceFid;
- int srcname;
- struct CodaFid destFid;
- int destname;
-};
-
-struct coda_rename_out {
- struct coda_out_hdr out;
-};
-
-/* coda_mkdir: */
-struct coda_mkdir_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
- struct coda_vattr attr;
- int name; /* Place holder for data. */
-};
-
-struct coda_mkdir_out {
- struct coda_out_hdr oh;
- struct CodaFid VFid;
- struct coda_vattr attr;
-};
-
-
-/* coda_rmdir: NO_OUT */
-struct coda_rmdir_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
- int name; /* Place holder for data. */
-};
-
-struct coda_rmdir_out {
- struct coda_out_hdr out;
-};
-
-/* coda_symlink: NO_OUT */
-struct coda_symlink_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid; /* Directory to put symlink in */
- int srcname;
- struct coda_vattr attr;
- int tname;
-};
-
-struct coda_symlink_out {
- struct coda_out_hdr out;
-};
-
-/* coda_readlink: */
-struct coda_readlink_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
-};
-
-struct coda_readlink_out {
- struct coda_out_hdr oh;
- int count;
- caddr_t data; /* Place holder for data. */
-};
-
-
-/* coda_fsync: NO_OUT */
-struct coda_fsync_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
-};
-
-struct coda_fsync_out {
- struct coda_out_hdr out;
-};
-
-/* coda_vget: */
-struct coda_vget_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
-};
-
-struct coda_vget_out {
- struct coda_out_hdr oh;
- struct CodaFid VFid;
- int vtype;
-};
-
-
-/* CODA_SIGNAL is out-of-band, doesn't need data. */
-/* CODA_INVALIDATE is a venus->kernel call */
-/* CODA_FLUSH is a venus->kernel call */
-
-/* coda_purgeuser: */
-/* CODA_PURGEUSER is a venus->kernel call */
-struct coda_purgeuser_out {
- struct coda_out_hdr oh;
- vuid_t uid;
-};
-
-/* coda_zapfile: */
-/* CODA_ZAPFILE is a venus->kernel call */
-struct coda_zapfile_out {
- struct coda_out_hdr oh;
- struct CodaFid CodaFid;
-};
-
-/* coda_zapdir: */
-/* CODA_ZAPDIR is a venus->kernel call */
-struct coda_zapdir_out {
- struct coda_out_hdr oh;
- struct CodaFid CodaFid;
-};
-
-/* coda_purgefid: */
-/* CODA_PURGEFID is a venus->kernel call */
-struct coda_purgefid_out {
- struct coda_out_hdr oh;
- struct CodaFid CodaFid;
-};
-
-/* coda_replace: */
-/* CODA_REPLACE is a venus->kernel call */
-struct coda_replace_out { /* coda_replace is a venus->kernel call */
- struct coda_out_hdr oh;
- struct CodaFid NewFid;
- struct CodaFid OldFid;
-};
-
-/* coda_open_by_fd: */
-struct coda_open_by_fd_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
- int flags;
-};
-
-struct coda_open_by_fd_out {
- struct coda_out_hdr oh;
- int fd;
-
-#ifdef __KERNEL__
- struct file *fh; /* not passed from userspace but used in-kernel only */
-#endif
-};
-
-/* coda_open_by_path: */
-struct coda_open_by_path_in {
- struct coda_in_hdr ih;
- struct CodaFid VFid;
- int flags;
-};
-
-struct coda_open_by_path_out {
- struct coda_out_hdr oh;
- int path;
-};
-
-/* coda_statfs: NO_IN */
-struct coda_statfs_in {
- struct coda_in_hdr in;
-};
-
-struct coda_statfs_out {
- struct coda_out_hdr oh;
- struct coda_statfs stat;
-};
-
-/*
- * Occasionally, we don't cache the fid returned by CODA_LOOKUP.
- * For instance, if the fid is inconsistent.
- * This case is handled by setting the top bit of the type result parameter.
- */
-#define CODA_NOCACHE 0x80000000
-
-union inputArgs {
- struct coda_in_hdr ih; /* NB: every struct below begins with an ih */
- struct coda_open_in coda_open;
- struct coda_store_in coda_store;
- struct coda_release_in coda_release;
- struct coda_close_in coda_close;
- struct coda_ioctl_in coda_ioctl;
- struct coda_getattr_in coda_getattr;
- struct coda_setattr_in coda_setattr;
- struct coda_access_in coda_access;
- struct coda_lookup_in coda_lookup;
- struct coda_create_in coda_create;
- struct coda_remove_in coda_remove;
- struct coda_link_in coda_link;
- struct coda_rename_in coda_rename;
- struct coda_mkdir_in coda_mkdir;
- struct coda_rmdir_in coda_rmdir;
- struct coda_symlink_in coda_symlink;
- struct coda_readlink_in coda_readlink;
- struct coda_fsync_in coda_fsync;
- struct coda_vget_in coda_vget;
- struct coda_open_by_fd_in coda_open_by_fd;
- struct coda_open_by_path_in coda_open_by_path;
- struct coda_statfs_in coda_statfs;
-};
-
-union outputArgs {
- struct coda_out_hdr oh; /* NB: every struct below begins with an oh */
- struct coda_root_out coda_root;
- struct coda_open_out coda_open;
- struct coda_ioctl_out coda_ioctl;
- struct coda_getattr_out coda_getattr;
- struct coda_lookup_out coda_lookup;
- struct coda_create_out coda_create;
- struct coda_mkdir_out coda_mkdir;
- struct coda_readlink_out coda_readlink;
- struct coda_vget_out coda_vget;
- struct coda_purgeuser_out coda_purgeuser;
- struct coda_zapfile_out coda_zapfile;
- struct coda_zapdir_out coda_zapdir;
- struct coda_purgefid_out coda_purgefid;
- struct coda_replace_out coda_replace;
- struct coda_open_by_fd_out coda_open_by_fd;
- struct coda_open_by_path_out coda_open_by_path;
- struct coda_statfs_out coda_statfs;
-};
-
-union coda_downcalls {
- /* CODA_INVALIDATE is a venus->kernel call */
- /* CODA_FLUSH is a venus->kernel call */
- struct coda_purgeuser_out purgeuser;
- struct coda_zapfile_out zapfile;
- struct coda_zapdir_out zapdir;
- struct coda_purgefid_out purgefid;
- struct coda_replace_out replace;
-};
-
-
-/*
- * Used for identifying usage of "Control" and pioctls
- */
-
-#define PIOCPARM_MASK 0x0000ffff
-struct ViceIoctl {
- void __user *in; /* Data to be transferred in */
- void __user *out; /* Data to be transferred out */
- u_short in_size; /* Size of input buffer <= 2K */
- u_short out_size; /* Maximum size of output buffer, <= 2K */
-};
-
-struct PioctlData {
- const char __user *path;
- int follow;
- struct ViceIoctl vi;
-};
-
-#define CODA_CONTROL ".CONTROL"
-#define CODA_CONTROLLEN 8
-#define CTL_INO -1
-
-/* Data passed to mount */
-
-#define CODA_MOUNT_VERSION 1
-
-struct coda_mount_data {
- int version;
- int fd; /* Opened device */
-};
-
-#endif
-
diff --git a/ANDROID_3.4.5/include/linux/coda_psdev.h b/ANDROID_3.4.5/include/linux/coda_psdev.h
deleted file mode 100644
index 72f2d2f0..00000000
--- a/ANDROID_3.4.5/include/linux/coda_psdev.h
+++ /dev/null
@@ -1,96 +0,0 @@
-#ifndef __CODA_PSDEV_H
-#define __CODA_PSDEV_H
-
-#include <linux/magic.h>
-
-#define CODA_PSDEV_MAJOR 67
-#define MAX_CODADEVS 5 /* how many do we allow */
-
-#ifdef __KERNEL__
-#include <linux/backing-dev.h>
-#include <linux/mutex.h>
-
-struct kstatfs;
-
-/* communication pending/processing queues */
-struct venus_comm {
- u_long vc_seq;
- wait_queue_head_t vc_waitq; /* Venus wait queue */
- struct list_head vc_pending;
- struct list_head vc_processing;
- int vc_inuse;
- struct super_block *vc_sb;
- struct backing_dev_info bdi;
- struct mutex vc_mutex;
-};
-
-
-static inline struct venus_comm *coda_vcp(struct super_block *sb)
-{
- return (struct venus_comm *)((sb)->s_fs_info);
-}
-
-/* upcalls */
-int venus_rootfid(struct super_block *sb, struct CodaFid *fidp);
-int venus_getattr(struct super_block *sb, struct CodaFid *fid,
- struct coda_vattr *attr);
-int venus_setattr(struct super_block *, struct CodaFid *, struct coda_vattr *);
-int venus_lookup(struct super_block *sb, struct CodaFid *fid,
- const char *name, int length, int *type,
- struct CodaFid *resfid);
-int venus_close(struct super_block *sb, struct CodaFid *fid, int flags,
- vuid_t uid);
-int venus_open(struct super_block *sb, struct CodaFid *fid, int flags,
- struct file **f);
-int venus_mkdir(struct super_block *sb, struct CodaFid *dirfid,
- const char *name, int length,
- struct CodaFid *newfid, struct coda_vattr *attrs);
-int venus_create(struct super_block *sb, struct CodaFid *dirfid,
- const char *name, int length, int excl, int mode,
- struct CodaFid *newfid, struct coda_vattr *attrs) ;
-int venus_rmdir(struct super_block *sb, struct CodaFid *dirfid,
- const char *name, int length);
-int venus_remove(struct super_block *sb, struct CodaFid *dirfid,
- const char *name, int length);
-int venus_readlink(struct super_block *sb, struct CodaFid *fid,
- char *buffer, int *length);
-int venus_rename(struct super_block *, struct CodaFid *new_fid,
- struct CodaFid *old_fid, size_t old_length,
- size_t new_length, const char *old_name,
- const char *new_name);
-int venus_link(struct super_block *sb, struct CodaFid *fid,
- struct CodaFid *dirfid, const char *name, int len );
-int venus_symlink(struct super_block *sb, struct CodaFid *fid,
- const char *name, int len, const char *symname, int symlen);
-int venus_access(struct super_block *sb, struct CodaFid *fid, int mask);
-int venus_pioctl(struct super_block *sb, struct CodaFid *fid,
- unsigned int cmd, struct PioctlData *data);
-int coda_downcall(struct venus_comm *vcp, int opcode, union outputArgs *out);
-int venus_fsync(struct super_block *sb, struct CodaFid *fid);
-int venus_statfs(struct dentry *dentry, struct kstatfs *sfs);
-
-/*
- * Statistics
- */
-
-extern struct venus_comm coda_comms[];
-#endif /* __KERNEL__ */
-
-/* messages between coda filesystem in kernel and Venus */
-struct upc_req {
- struct list_head uc_chain;
- caddr_t uc_data;
- u_short uc_flags;
- u_short uc_inSize; /* Size is at most 5000 bytes */
- u_short uc_outSize;
- u_short uc_opcode; /* copied from data to save lookup */
- int uc_unique;
- wait_queue_head_t uc_sleep; /* process' wait queue */
-};
-
-#define CODA_REQ_ASYNC 0x1
-#define CODA_REQ_READ 0x2
-#define CODA_REQ_WRITE 0x4
-#define CODA_REQ_ABORT 0x8
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/coff.h b/ANDROID_3.4.5/include/linux/coff.h
deleted file mode 100644
index 6354a7fe..00000000
--- a/ANDROID_3.4.5/include/linux/coff.h
+++ /dev/null
@@ -1,351 +0,0 @@
-/* This file is derived from the GAS 2.1.4 assembler control file.
- The GAS product is under the GNU General Public License, version 2 or later.
- As such, this file is also under that license.
-
- If the file format changes in the COFF object, this file should be
- subsequently updated to reflect the changes.
-
- The actual loader module only uses a few of these structures. The full
- set is documented here because I received the full set. If you wish
- more information about COFF, then O'Reilly has a very excellent book.
-*/
-
-#define E_SYMNMLEN 8 /* Number of characters in a symbol name */
-#define E_FILNMLEN 14 /* Number of characters in a file name */
-#define E_DIMNUM 4 /* Number of array dimensions in auxiliary entry */
-
-/*
- * These defines are byte order independent. There is no alignment of fields
- * permitted in the structures. Therefore they are declared as characters
- * and the values loaded from the character positions. It also makes it
- * nice to have it "endian" independent.
- */
-
-/* Load a short int from the following tables with little-endian formats */
-#define COFF_SHORT_L(ps) ((short)(((unsigned short)((unsigned char)ps[1])<<8)|\
- ((unsigned short)((unsigned char)ps[0]))))
-
-/* Load a long int from the following tables with little-endian formats */
-#define COFF_LONG_L(ps) (((long)(((unsigned long)((unsigned char)ps[3])<<24) |\
- ((unsigned long)((unsigned char)ps[2])<<16) |\
- ((unsigned long)((unsigned char)ps[1])<<8) |\
- ((unsigned long)((unsigned char)ps[0])))))
-
-/* Load a short int from the following tables with big-endian formats */
-#define COFF_SHORT_H(ps) ((short)(((unsigned short)((unsigned char)ps[0])<<8)|\
- ((unsigned short)((unsigned char)ps[1]))))
-
-/* Load a long int from the following tables with big-endian formats */
-#define COFF_LONG_H(ps) (((long)(((unsigned long)((unsigned char)ps[0])<<24) |\
- ((unsigned long)((unsigned char)ps[1])<<16) |\
- ((unsigned long)((unsigned char)ps[2])<<8) |\
- ((unsigned long)((unsigned char)ps[3])))))
-
-/* These may be overridden later by brain dead implementations which generate
- a big-endian header with little-endian data. In that case, generate a
- replacement macro which tests a flag and uses either of the two above
- as appropriate. */
-
-#define COFF_LONG(v) COFF_LONG_L(v)
-#define COFF_SHORT(v) COFF_SHORT_L(v)
-
-/*** coff information for Intel 386/486. */
-
-/********************** FILE HEADER **********************/
-
-struct COFF_filehdr {
- char f_magic[2]; /* magic number */
- char f_nscns[2]; /* number of sections */
- char f_timdat[4]; /* time & date stamp */
- char f_symptr[4]; /* file pointer to symtab */
- char f_nsyms[4]; /* number of symtab entries */
- char f_opthdr[2]; /* sizeof(optional hdr) */
- char f_flags[2]; /* flags */
-};
-
-/*
- * Bits for f_flags:
- *
- * F_RELFLG relocation info stripped from file
- * F_EXEC file is executable (i.e. no unresolved external
- * references)
- * F_LNNO line numbers stripped from file
- * F_LSYMS local symbols stripped from file
- * F_MINMAL this is a minimal object file (".m") output of fextract
- * F_UPDATE this is a fully bound update file, output of ogen
- * F_SWABD this file has had its bytes swabbed (in names)
- * F_AR16WR this file has the byte ordering of an AR16WR
- * (e.g. 11/70) machine
- * F_AR32WR this file has the byte ordering of an AR32WR machine
- * (e.g. vax and iNTEL 386)
- * F_AR32W this file has the byte ordering of an AR32W machine
- * (e.g. 3b,maxi)
- * F_PATCH file contains "patch" list in optional header
- * F_NODF (minimal file only) no decision functions for
- * replaced functions
- */
-
-#define COFF_F_RELFLG 0000001
-#define COFF_F_EXEC 0000002
-#define COFF_F_LNNO 0000004
-#define COFF_F_LSYMS 0000010
-#define COFF_F_MINMAL 0000020
-#define COFF_F_UPDATE 0000040
-#define COFF_F_SWABD 0000100
-#define COFF_F_AR16WR 0000200
-#define COFF_F_AR32WR 0000400
-#define COFF_F_AR32W 0001000
-#define COFF_F_PATCH 0002000
-#define COFF_F_NODF 0002000
-
-#define COFF_I386MAGIC 0x14c /* Linux's system */
-
-#if 0 /* Perhaps, someday, these formats may be used. */
-#define COFF_I386PTXMAGIC 0x154
-#define COFF_I386AIXMAGIC 0x175 /* IBM's AIX system */
-#define COFF_I386BADMAG(x) ((COFF_SHORT((x).f_magic) != COFF_I386MAGIC) \
- && COFF_SHORT((x).f_magic) != COFF_I386PTXMAGIC \
- && COFF_SHORT((x).f_magic) != COFF_I386AIXMAGIC)
-#else
-#define COFF_I386BADMAG(x) (COFF_SHORT((x).f_magic) != COFF_I386MAGIC)
-#endif
-
-#define COFF_FILHDR struct COFF_filehdr
-#define COFF_FILHSZ sizeof(COFF_FILHDR)
-
-/********************** AOUT "OPTIONAL HEADER" **********************/
-
-/* Linux COFF must have this "optional" header. Standard COFF has no entry
- location for the "entry" point. They normally would start with the first
- location of the .text section. This is not a good idea for linux. So,
- the use of this "optional" header is not optional. It is required.
-
- Do not be tempted to assume that the size of the optional header is
- a constant and simply index the next byte by the size of this structure.
- Use the 'f_opthdr' field in the main coff header for the size of the
- structure actually written to the file!!
-*/
-
-typedef struct
-{
- char magic[2]; /* type of file */
- char vstamp[2]; /* version stamp */
- char tsize[4]; /* text size in bytes, padded to FW bdry */
- char dsize[4]; /* initialized data " " */
- char bsize[4]; /* uninitialized data " " */
- char entry[4]; /* entry pt. */
- char text_start[4]; /* base of text used for this file */
- char data_start[4]; /* base of data used for this file */
-}
-COFF_AOUTHDR;
-
-#define COFF_AOUTSZ (sizeof(COFF_AOUTHDR))
-
-#define COFF_STMAGIC 0401
-#define COFF_OMAGIC 0404
-#define COFF_JMAGIC 0407 /* dirty text and data image, can't share */
-#define COFF_DMAGIC 0410 /* dirty text segment, data aligned */
-#define COFF_ZMAGIC 0413 /* The proper magic number for executables */
-#define COFF_SHMAGIC 0443 /* shared library header */
-
-/********************** SECTION HEADER **********************/
-
-struct COFF_scnhdr {
- char s_name[8]; /* section name */
- char s_paddr[4]; /* physical address, aliased s_nlib */
- char s_vaddr[4]; /* virtual address */
- char s_size[4]; /* section size */
- char s_scnptr[4]; /* file ptr to raw data for section */
- char s_relptr[4]; /* file ptr to relocation */
- char s_lnnoptr[4]; /* file ptr to line numbers */
- char s_nreloc[2]; /* number of relocation entries */
- char s_nlnno[2]; /* number of line number entries */
- char s_flags[4]; /* flags */
-};
-
-#define COFF_SCNHDR struct COFF_scnhdr
-#define COFF_SCNHSZ sizeof(COFF_SCNHDR)
-
-/*
- * names of "special" sections
- */
-
-#define COFF_TEXT ".text"
-#define COFF_DATA ".data"
-#define COFF_BSS ".bss"
-#define COFF_COMMENT ".comment"
-#define COFF_LIB ".lib"
-
-#define COFF_SECT_TEXT 0 /* Section for instruction code */
-#define COFF_SECT_DATA 1 /* Section for initialized globals */
-#define COFF_SECT_BSS 2 /* Section for un-initialized globals */
-#define COFF_SECT_REQD 3 /* Minimum number of sections for good file */
-
-#define COFF_STYP_REG 0x00 /* regular segment */
-#define COFF_STYP_DSECT 0x01 /* dummy segment */
-#define COFF_STYP_NOLOAD 0x02 /* no-load segment */
-#define COFF_STYP_GROUP 0x04 /* group segment */
-#define COFF_STYP_PAD 0x08 /* .pad segment */
-#define COFF_STYP_COPY 0x10 /* copy section */
-#define COFF_STYP_TEXT 0x20 /* .text segment */
-#define COFF_STYP_DATA 0x40 /* .data segment */
-#define COFF_STYP_BSS 0x80 /* .bss segment */
-#define COFF_STYP_INFO 0x200 /* .comment section */
-#define COFF_STYP_OVER 0x400 /* overlay section */
-#define COFF_STYP_LIB 0x800 /* library section */
-
-/*
- * Shared libraries have the following section header in the data field for
- * each library.
- */
-
-struct COFF_slib {
- char sl_entsz[4]; /* Size of this entry */
- char sl_pathndx[4]; /* size of the header field */
-};
-
-#define COFF_SLIBHD struct COFF_slib
-#define COFF_SLIBSZ sizeof(COFF_SLIBHD)
-
-/********************** LINE NUMBERS **********************/
-
-/* 1 line number entry for every "breakpointable" source line in a section.
- * Line numbers are grouped on a per function basis; first entry in a function
- * grouping will have l_lnno = 0 and in place of physical address will be the
- * symbol table index of the function name.
- */
-
-struct COFF_lineno {
- union {
- char l_symndx[4]; /* function name symbol index, iff l_lnno == 0*/
- char l_paddr[4]; /* (physical) address of line number */
- } l_addr;
- char l_lnno[2]; /* line number */
-};
-
-#define COFF_LINENO struct COFF_lineno
-#define COFF_LINESZ 6
-
-/********************** SYMBOLS **********************/
-
-#define COFF_E_SYMNMLEN 8 /* # characters in a short symbol name */
-#define COFF_E_FILNMLEN 14 /* # characters in a file name */
-#define COFF_E_DIMNUM 4 /* # array dimensions in auxiliary entry */
-
-/*
- * All symbols and sections have the following definition
- */
-
-struct COFF_syment
-{
- union {
- char e_name[E_SYMNMLEN]; /* Symbol name (first 8 characters) */
- struct {
- char e_zeroes[4]; /* Leading zeros */
- char e_offset[4]; /* Offset if this is a header section */
- } e;
- } e;
-
- char e_value[4]; /* Value (address) of the segment */
- char e_scnum[2]; /* Section number */
- char e_type[2]; /* Type of section */
- char e_sclass[1]; /* Loader class */
- char e_numaux[1]; /* Number of auxiliary entries which follow */
-};
-
-#define COFF_N_BTMASK (0xf) /* Mask for important class bits */
-#define COFF_N_TMASK (0x30) /* Mask for important type bits */
-#define COFF_N_BTSHFT (4) /* # bits to shift class field */
-#define COFF_N_TSHIFT (2) /* # bits to shift type field */
-
-/*
- * Auxiliary entries because the main table is too limiting.
- */
-
-union COFF_auxent {
-
-/*
- * Debugger information
- */
-
- struct {
- char x_tagndx[4]; /* str, un, or enum tag indx */
- union {
- struct {
- char x_lnno[2]; /* declaration line number */
- char x_size[2]; /* str/union/array size */
- } x_lnsz;
- char x_fsize[4]; /* size of function */
- } x_misc;
-
- union {
- struct { /* if ISFCN, tag, or .bb */
- char x_lnnoptr[4]; /* ptr to fcn line # */
- char x_endndx[4]; /* entry ndx past block end */
- } x_fcn;
-
- struct { /* if ISARY, up to 4 dimen. */
- char x_dimen[E_DIMNUM][2];
- } x_ary;
- } x_fcnary;
-
- char x_tvndx[2]; /* tv index */
- } x_sym;
-
-/*
- * Source file names (debugger information)
- */
-
- union {
- char x_fname[E_FILNMLEN];
- struct {
- char x_zeroes[4];
- char x_offset[4];
- } x_n;
- } x_file;
-
-/*
- * Section information
- */
-
- struct {
- char x_scnlen[4]; /* section length */
- char x_nreloc[2]; /* # relocation entries */
- char x_nlinno[2]; /* # line numbers */
- } x_scn;
-
-/*
- * Transfer vector (branch table)
- */
-
- struct {
- char x_tvfill[4]; /* tv fill value */
- char x_tvlen[2]; /* length of .tv */
- char x_tvran[2][2]; /* tv range */
- } x_tv; /* info about .tv section (in auxent of symbol .tv)) */
-};
-
-#define COFF_SYMENT struct COFF_syment
-#define COFF_SYMESZ 18
-#define COFF_AUXENT union COFF_auxent
-#define COFF_AUXESZ 18
-
-#define COFF_ETEXT "etext"
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-struct COFF_reloc {
- char r_vaddr[4]; /* Virtual address of item */
- char r_symndx[4]; /* Symbol index in the symtab */
- char r_type[2]; /* Relocation type */
-};
-
-#define COFF_RELOC struct COFF_reloc
-#define COFF_RELSZ 10
-
-#define COFF_DEF_DATA_SECTION_ALIGNMENT 4
-#define COFF_DEF_BSS_SECTION_ALIGNMENT 4
-#define COFF_DEF_TEXT_SECTION_ALIGNMENT 4
-
-/* For new sections we haven't heard of before */
-#define COFF_DEF_SECTION_ALIGNMENT 4
diff --git a/ANDROID_3.4.5/include/linux/com20020.h b/ANDROID_3.4.5/include/linux/com20020.h
deleted file mode 100644
index 5dcfb944..00000000
--- a/ANDROID_3.4.5/include/linux/com20020.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Linux ARCnet driver - COM20020 chipset support - function declarations
- *
- * Written 1997 by David Woodhouse.
- * Written 1994-1999 by Avery Pennarun.
- * Derived from skeleton.c by Donald Becker.
- *
- * Special thanks to Contemporary Controls, Inc. (www.ccontrols.com)
- * for sponsoring the further development of this driver.
- *
- * **********************
- *
- * The original copyright of skeleton.c was as follows:
- *
- * skeleton.c Written 1993 by Donald Becker.
- * Copyright 1993 United States Government as represented by the
- * Director, National Security Agency. This software may only be used
- * and distributed according to the terms of the GNU General Public License as
- * modified by SRC, incorporated herein by reference.
- *
- * **********************
- *
- * For more details, see drivers/net/arcnet.c
- *
- * **********************
- */
-#ifndef __COM20020_H
-#define __COM20020_H
-
-int com20020_check(struct net_device *dev);
-int com20020_found(struct net_device *dev, int shared);
-extern const struct net_device_ops com20020_netdev_ops;
-
-/* The number of low I/O ports used by the card. */
-#define ARCNET_TOTAL_SIZE 8
-
-/* various register addresses */
-#ifdef CONFIG_SA1100_CT6001
-#define BUS_ALIGN 2 /* 8 bit device on a 16 bit bus - needs padding */
-#else
-#define BUS_ALIGN 1
-#endif
-
-
-#define _INTMASK (ioaddr+BUS_ALIGN*0) /* writable */
-#define _STATUS (ioaddr+BUS_ALIGN*0) /* readable */
-#define _COMMAND (ioaddr+BUS_ALIGN*1) /* standard arcnet commands */
-#define _DIAGSTAT (ioaddr+BUS_ALIGN*1) /* diagnostic status register */
-#define _ADDR_HI (ioaddr+BUS_ALIGN*2) /* control registers for IO-mapped memory */
-#define _ADDR_LO (ioaddr+BUS_ALIGN*3)
-#define _MEMDATA (ioaddr+BUS_ALIGN*4) /* data port for IO-mapped memory */
-#define _SUBADR (ioaddr+BUS_ALIGN*5) /* the extended port _XREG refers to */
-#define _CONFIG (ioaddr+BUS_ALIGN*6) /* configuration register */
-#define _XREG (ioaddr+BUS_ALIGN*7) /* extra registers (indexed by _CONFIG
- or _SUBADR) */
-
-/* in the ADDR_HI register */
-#define RDDATAflag 0x80 /* next access is a read (not a write) */
-
-/* in the DIAGSTAT register */
-#define NEWNXTIDflag 0x02 /* ID to which token is passed has changed */
-
-/* in the CONFIG register */
-#define RESETcfg 0x80 /* put card in reset state */
-#define TXENcfg 0x20 /* enable TX */
-
-/* in SETUP register */
-#define PROMISCset 0x10 /* enable RCV_ALL */
-#define P1MODE 0x80 /* enable P1-MODE for Backplane */
-#define SLOWARB 0x01 /* enable Slow Arbitration for >=5Mbps */
-
-/* COM2002x */
-#define SUB_TENTATIVE 0 /* tentative node ID */
-#define SUB_NODE 1 /* node ID */
-#define SUB_SETUP1 2 /* various options */
-#define SUB_TEST 3 /* test/diag register */
-
-/* COM20022 only */
-#define SUB_SETUP2 4 /* sundry options */
-#define SUB_BUSCTL 5 /* bus control options */
-#define SUB_DMACOUNT 6 /* DMA count options */
-
-#define SET_SUBADR(x) do { \
- if ((x) < 4) \
- { \
- lp->config = (lp->config & ~0x03) | (x); \
- SETCONF; \
- } \
- else \
- { \
- outb(x, _SUBADR); \
- } \
-} while (0)
-
-#undef ARCRESET
-#undef ASTATUS
-#undef ACOMMAND
-#undef AINTMASK
-
-#define ARCRESET { outb(lp->config | 0x80, _CONFIG); \
- udelay(5); \
- outb(lp->config , _CONFIG); \
- }
-#define ARCRESET0 { outb(0x18 | 0x80, _CONFIG); \
- udelay(5); \
- outb(0x18 , _CONFIG); \
- }
-
-#define ASTATUS() inb(_STATUS)
-#define ADIAGSTATUS() inb(_DIAGSTAT)
-#define ACOMMAND(cmd) outb((cmd),_COMMAND)
-#define AINTMASK(msk) outb((msk),_INTMASK)
-
-#define SETCONF outb(lp->config, _CONFIG)
-
-#endif /* __COM20020_H */
diff --git a/ANDROID_3.4.5/include/linux/combo_mt66xx.h b/ANDROID_3.4.5/include/linux/combo_mt66xx.h
deleted file mode 100755
index 7f46cf7f..00000000
--- a/ANDROID_3.4.5/include/linux/combo_mt66xx.h
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-#ifndef __COMBO_MT66XX_H__
-#define __COMBO_MT66xx_H__
-
-struct mtk_wmt_platform_data {
- /* GPIO pin config */
- int pmu;
- int rst;
- int bgf_int;
- int urt_cts;
- int rtc;
- int gps_sync;
- int gps_lna;
-
- /* kernel launcher parameter. */
-
-};
-
-struct mtk_sdio_eint_platform_data {
- /* used for sdio eint. */
- int sdio_eint;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/compaction.h b/ANDROID_3.4.5/include/linux/compaction.h
deleted file mode 100644
index 51a90b7f..00000000
--- a/ANDROID_3.4.5/include/linux/compaction.h
+++ /dev/null
@@ -1,109 +0,0 @@
-#ifndef _LINUX_COMPACTION_H
-#define _LINUX_COMPACTION_H
-
-/* Return values for compact_zone() and try_to_compact_pages() */
-/* compaction didn't start as it was not possible or direct reclaim was more suitable */
-#define COMPACT_SKIPPED 0
-/* compaction should continue to another pageblock */
-#define COMPACT_CONTINUE 1
-/* direct compaction partially compacted a zone and there are suitable pages */
-#define COMPACT_PARTIAL 2
-/* The full zone was compacted */
-#define COMPACT_COMPLETE 3
-
-#ifdef CONFIG_COMPACTION
-extern int sysctl_compact_memory;
-extern int sysctl_compaction_handler(struct ctl_table *table, int write,
- void __user *buffer, size_t *length, loff_t *ppos);
-extern int sysctl_extfrag_threshold;
-extern int sysctl_extfrag_handler(struct ctl_table *table, int write,
- void __user *buffer, size_t *length, loff_t *ppos);
-
-extern int fragmentation_index(struct zone *zone, unsigned int order);
-extern unsigned long try_to_compact_pages(struct zonelist *zonelist,
- int order, gfp_t gfp_mask, nodemask_t *mask,
- bool sync);
-extern int compact_pgdat(pg_data_t *pgdat, int order);
-extern unsigned long compaction_suitable(struct zone *zone, int order);
-
-/* Do not skip compaction more than 64 times */
-#define COMPACT_MAX_DEFER_SHIFT 6
-
-/*
- * Compaction is deferred when compaction fails to result in a page
- * allocation success. 1 << compact_defer_limit compactions are skipped up
- * to a limit of 1 << COMPACT_MAX_DEFER_SHIFT
- */
-static inline void defer_compaction(struct zone *zone, int order)
-{
- zone->compact_considered = 0;
- zone->compact_defer_shift++;
-
- if (order < zone->compact_order_failed)
- zone->compact_order_failed = order;
-
- if (zone->compact_defer_shift > COMPACT_MAX_DEFER_SHIFT)
- zone->compact_defer_shift = COMPACT_MAX_DEFER_SHIFT;
-}
-
-/* Returns true if compaction should be skipped this time */
-static inline bool compaction_deferred(struct zone *zone, int order)
-{
- unsigned long defer_limit = 1UL << zone->compact_defer_shift;
-
- if (order < zone->compact_order_failed)
- return false;
-
- /* Avoid possible overflow */
- if (++zone->compact_considered > defer_limit)
- zone->compact_considered = defer_limit;
-
- return zone->compact_considered < (1UL << zone->compact_defer_shift);
-}
-
-#else
-static inline unsigned long try_to_compact_pages(struct zonelist *zonelist,
- int order, gfp_t gfp_mask, nodemask_t *nodemask,
- bool sync)
-{
- return COMPACT_CONTINUE;
-}
-
-static inline int compact_pgdat(pg_data_t *pgdat, int order)
-{
- return COMPACT_CONTINUE;
-}
-
-static inline unsigned long compaction_suitable(struct zone *zone, int order)
-{
- return COMPACT_SKIPPED;
-}
-
-static inline void defer_compaction(struct zone *zone, int order)
-{
-}
-
-static inline bool compaction_deferred(struct zone *zone, int order)
-{
- return 1;
-}
-
-#endif /* CONFIG_COMPACTION */
-
-#if defined(CONFIG_COMPACTION) && defined(CONFIG_SYSFS) && defined(CONFIG_NUMA)
-extern int compaction_register_node(struct node *node);
-extern void compaction_unregister_node(struct node *node);
-
-#else
-
-static inline int compaction_register_node(struct node *node)
-{
- return 0;
-}
-
-static inline void compaction_unregister_node(struct node *node)
-{
-}
-#endif /* CONFIG_COMPACTION && CONFIG_SYSFS && CONFIG_NUMA */
-
-#endif /* _LINUX_COMPACTION_H */
diff --git a/ANDROID_3.4.5/include/linux/compat.h b/ANDROID_3.4.5/include/linux/compat.h
deleted file mode 100644
index 5d46217f..00000000
--- a/ANDROID_3.4.5/include/linux/compat.h
+++ /dev/null
@@ -1,599 +0,0 @@
-#ifndef _LINUX_COMPAT_H
-#define _LINUX_COMPAT_H
-/*
- * These are the type definitions for the architecture specific
- * syscall compatibility layer.
- */
-
-#ifdef CONFIG_COMPAT
-
-#include <linux/stat.h>
-#include <linux/param.h> /* for HZ */
-#include <linux/sem.h>
-#include <linux/socket.h>
-#include <linux/if.h>
-#include <linux/fs.h>
-#include <linux/aio_abi.h> /* for aio_context_t */
-
-#include <asm/compat.h>
-#include <asm/siginfo.h>
-#include <asm/signal.h>
-
-#ifndef COMPAT_USE_64BIT_TIME
-#define COMPAT_USE_64BIT_TIME 0
-#endif
-
-#define compat_jiffies_to_clock_t(x) \
- (((unsigned long)(x) * COMPAT_USER_HZ) / HZ)
-
-typedef __compat_uid32_t compat_uid_t;
-typedef __compat_gid32_t compat_gid_t;
-
-struct compat_sel_arg_struct;
-struct rusage;
-
-struct compat_itimerspec {
- struct compat_timespec it_interval;
- struct compat_timespec it_value;
-};
-
-struct compat_utimbuf {
- compat_time_t actime;
- compat_time_t modtime;
-};
-
-struct compat_itimerval {
- struct compat_timeval it_interval;
- struct compat_timeval it_value;
-};
-
-struct compat_tms {
- compat_clock_t tms_utime;
- compat_clock_t tms_stime;
- compat_clock_t tms_cutime;
- compat_clock_t tms_cstime;
-};
-
-struct compat_timex {
- compat_uint_t modes;
- compat_long_t offset;
- compat_long_t freq;
- compat_long_t maxerror;
- compat_long_t esterror;
- compat_int_t status;
- compat_long_t constant;
- compat_long_t precision;
- compat_long_t tolerance;
- struct compat_timeval time;
- compat_long_t tick;
- compat_long_t ppsfreq;
- compat_long_t jitter;
- compat_int_t shift;
- compat_long_t stabil;
- compat_long_t jitcnt;
- compat_long_t calcnt;
- compat_long_t errcnt;
- compat_long_t stbcnt;
- compat_int_t tai;
-
- compat_int_t:32; compat_int_t:32; compat_int_t:32; compat_int_t:32;
- compat_int_t:32; compat_int_t:32; compat_int_t:32; compat_int_t:32;
- compat_int_t:32; compat_int_t:32; compat_int_t:32;
-};
-
-#define _COMPAT_NSIG_WORDS (_COMPAT_NSIG / _COMPAT_NSIG_BPW)
-
-typedef struct {
- compat_sigset_word sig[_COMPAT_NSIG_WORDS];
-} compat_sigset_t;
-
-/*
- * These functions operate strictly on struct compat_time*
- */
-extern int get_compat_timespec(struct timespec *,
- const struct compat_timespec __user *);
-extern int put_compat_timespec(const struct timespec *,
- struct compat_timespec __user *);
-extern int get_compat_timeval(struct timeval *,
- const struct compat_timeval __user *);
-extern int put_compat_timeval(const struct timeval *,
- struct compat_timeval __user *);
-/*
- * These functions operate on 32- or 64-bit specs depending on
- * COMPAT_USE_64BIT_TIME, hence the void user pointer arguments and the
- * naming as compat_get/put_ rather than get/put_compat_.
- */
-extern int compat_get_timespec(struct timespec *, const void __user *);
-extern int compat_put_timespec(const struct timespec *, void __user *);
-extern int compat_get_timeval(struct timeval *, const void __user *);
-extern int compat_put_timeval(const struct timeval *, void __user *);
-
-struct compat_iovec {
- compat_uptr_t iov_base;
- compat_size_t iov_len;
-};
-
-struct compat_rlimit {
- compat_ulong_t rlim_cur;
- compat_ulong_t rlim_max;
-};
-
-struct compat_rusage {
- struct compat_timeval ru_utime;
- struct compat_timeval ru_stime;
- compat_long_t ru_maxrss;
- compat_long_t ru_ixrss;
- compat_long_t ru_idrss;
- compat_long_t ru_isrss;
- compat_long_t ru_minflt;
- compat_long_t ru_majflt;
- compat_long_t ru_nswap;
- compat_long_t ru_inblock;
- compat_long_t ru_oublock;
- compat_long_t ru_msgsnd;
- compat_long_t ru_msgrcv;
- compat_long_t ru_nsignals;
- compat_long_t ru_nvcsw;
- compat_long_t ru_nivcsw;
-};
-
-extern int put_compat_rusage(const struct rusage *,
- struct compat_rusage __user *);
-
-struct compat_siginfo;
-
-extern asmlinkage long compat_sys_waitid(int, compat_pid_t,
- struct compat_siginfo __user *, int,
- struct compat_rusage __user *);
-
-struct compat_dirent {
- u32 d_ino;
- compat_off_t d_off;
- u16 d_reclen;
- char d_name[256];
-};
-
-struct compat_ustat {
- compat_daddr_t f_tfree;
- compat_ino_t f_tinode;
- char f_fname[6];
- char f_fpack[6];
-};
-
-typedef union compat_sigval {
- compat_int_t sival_int;
- compat_uptr_t sival_ptr;
-} compat_sigval_t;
-
-#define COMPAT_SIGEV_PAD_SIZE ((SIGEV_MAX_SIZE/sizeof(int)) - 3)
-
-typedef struct compat_sigevent {
- compat_sigval_t sigev_value;
- compat_int_t sigev_signo;
- compat_int_t sigev_notify;
- union {
- compat_int_t _pad[COMPAT_SIGEV_PAD_SIZE];
- compat_int_t _tid;
-
- struct {
- compat_uptr_t _function;
- compat_uptr_t _attribute;
- } _sigev_thread;
- } _sigev_un;
-} compat_sigevent_t;
-
-struct compat_ifmap {
- compat_ulong_t mem_start;
- compat_ulong_t mem_end;
- unsigned short base_addr;
- unsigned char irq;
- unsigned char dma;
- unsigned char port;
-};
-
-struct compat_if_settings {
- unsigned int type; /* Type of physical device or protocol */
- unsigned int size; /* Size of the data allocated by the caller */
- compat_uptr_t ifs_ifsu; /* union of pointers */
-};
-
-struct compat_ifreq {
- union {
- char ifrn_name[IFNAMSIZ]; /* if name, e.g. "en0" */
- } ifr_ifrn;
- union {
- struct sockaddr ifru_addr;
- struct sockaddr ifru_dstaddr;
- struct sockaddr ifru_broadaddr;
- struct sockaddr ifru_netmask;
- struct sockaddr ifru_hwaddr;
- short ifru_flags;
- compat_int_t ifru_ivalue;
- compat_int_t ifru_mtu;
- struct compat_ifmap ifru_map;
- char ifru_slave[IFNAMSIZ]; /* Just fits the size */
- char ifru_newname[IFNAMSIZ];
- compat_caddr_t ifru_data;
- struct compat_if_settings ifru_settings;
- } ifr_ifru;
-};
-
-struct compat_ifconf {
- compat_int_t ifc_len; /* size of buffer */
- compat_caddr_t ifcbuf;
-};
-
-struct compat_robust_list {
- compat_uptr_t next;
-};
-
-struct compat_robust_list_head {
- struct compat_robust_list list;
- compat_long_t futex_offset;
- compat_uptr_t list_op_pending;
-};
-
-struct compat_statfs;
-struct compat_statfs64;
-struct compat_old_linux_dirent;
-struct compat_linux_dirent;
-struct linux_dirent64;
-struct compat_msghdr;
-struct compat_mmsghdr;
-struct compat_sysinfo;
-struct compat_sysctl_args;
-struct compat_kexec_segment;
-struct compat_mq_attr;
-struct compat_msgbuf;
-
-extern void compat_exit_robust_list(struct task_struct *curr);
-
-asmlinkage long
-compat_sys_set_robust_list(struct compat_robust_list_head __user *head,
- compat_size_t len);
-asmlinkage long
-compat_sys_get_robust_list(int pid, compat_uptr_t __user *head_ptr,
- compat_size_t __user *len_ptr);
-
-#ifdef CONFIG_ARCH_WANT_OLD_COMPAT_IPC
-long compat_sys_semctl(int first, int second, int third, void __user *uptr);
-long compat_sys_msgsnd(int first, int second, int third, void __user *uptr);
-long compat_sys_msgrcv(int first, int second, int msgtyp, int third,
- int version, void __user *uptr);
-long compat_sys_shmat(int first, int second, compat_uptr_t third, int version,
- void __user *uptr);
-#else
-long compat_sys_semctl(int semid, int semnum, int cmd, int arg);
-long compat_sys_msgsnd(int msqid, struct compat_msgbuf __user *msgp,
- size_t msgsz, int msgflg);
-long compat_sys_msgrcv(int msqid, struct compat_msgbuf __user *msgp,
- size_t msgsz, long msgtyp, int msgflg);
-long compat_sys_shmat(int shmid, compat_uptr_t shmaddr, int shmflg);
-#endif
-long compat_sys_msgctl(int first, int second, void __user *uptr);
-long compat_sys_shmctl(int first, int second, void __user *uptr);
-long compat_sys_semtimedop(int semid, struct sembuf __user *tsems,
- unsigned nsems, const struct compat_timespec __user *timeout);
-asmlinkage long compat_sys_keyctl(u32 option,
- u32 arg2, u32 arg3, u32 arg4, u32 arg5);
-asmlinkage long compat_sys_ustat(unsigned dev, struct compat_ustat __user *u32);
-
-asmlinkage ssize_t compat_sys_readv(unsigned long fd,
- const struct compat_iovec __user *vec, unsigned long vlen);
-asmlinkage ssize_t compat_sys_writev(unsigned long fd,
- const struct compat_iovec __user *vec, unsigned long vlen);
-asmlinkage ssize_t compat_sys_preadv(unsigned long fd,
- const struct compat_iovec __user *vec,
- unsigned long vlen, u32 pos_low, u32 pos_high);
-asmlinkage ssize_t compat_sys_pwritev(unsigned long fd,
- const struct compat_iovec __user *vec,
- unsigned long vlen, u32 pos_low, u32 pos_high);
-
-int compat_do_execve(char *filename, compat_uptr_t __user *argv,
- compat_uptr_t __user *envp, struct pt_regs *regs);
-
-asmlinkage long compat_sys_select(int n, compat_ulong_t __user *inp,
- compat_ulong_t __user *outp, compat_ulong_t __user *exp,
- struct compat_timeval __user *tvp);
-
-asmlinkage long compat_sys_old_select(struct compat_sel_arg_struct __user *arg);
-
-asmlinkage long compat_sys_wait4(compat_pid_t pid,
- compat_uint_t __user *stat_addr, int options,
- struct compat_rusage __user *ru);
-
-#define BITS_PER_COMPAT_LONG (8*sizeof(compat_long_t))
-
-#define BITS_TO_COMPAT_LONGS(bits) \
- (((bits)+BITS_PER_COMPAT_LONG-1)/BITS_PER_COMPAT_LONG)
-
-long compat_get_bitmap(unsigned long *mask, const compat_ulong_t __user *umask,
- unsigned long bitmap_size);
-long compat_put_bitmap(compat_ulong_t __user *umask, unsigned long *mask,
- unsigned long bitmap_size);
-int copy_siginfo_from_user32(siginfo_t *to, struct compat_siginfo __user *from);
-int copy_siginfo_to_user32(struct compat_siginfo __user *to, siginfo_t *from);
-int get_compat_sigevent(struct sigevent *event,
- const struct compat_sigevent __user *u_event);
-long compat_sys_rt_tgsigqueueinfo(compat_pid_t tgid, compat_pid_t pid, int sig,
- struct compat_siginfo __user *uinfo);
-
-static inline int compat_timeval_compare(struct compat_timeval *lhs,
- struct compat_timeval *rhs)
-{
- if (lhs->tv_sec < rhs->tv_sec)
- return -1;
- if (lhs->tv_sec > rhs->tv_sec)
- return 1;
- return lhs->tv_usec - rhs->tv_usec;
-}
-
-static inline int compat_timespec_compare(struct compat_timespec *lhs,
- struct compat_timespec *rhs)
-{
- if (lhs->tv_sec < rhs->tv_sec)
- return -1;
- if (lhs->tv_sec > rhs->tv_sec)
- return 1;
- return lhs->tv_nsec - rhs->tv_nsec;
-}
-
-extern int get_compat_itimerspec(struct itimerspec *dst,
- const struct compat_itimerspec __user *src);
-extern int put_compat_itimerspec(struct compat_itimerspec __user *dst,
- const struct itimerspec *src);
-
-asmlinkage long compat_sys_gettimeofday(struct compat_timeval __user *tv,
- struct timezone __user *tz);
-asmlinkage long compat_sys_settimeofday(struct compat_timeval __user *tv,
- struct timezone __user *tz);
-
-asmlinkage long compat_sys_adjtimex(struct compat_timex __user *utp);
-
-extern int compat_printk(const char *fmt, ...);
-extern void sigset_from_compat(sigset_t *set, compat_sigset_t *compat);
-
-asmlinkage long compat_sys_migrate_pages(compat_pid_t pid,
- compat_ulong_t maxnode, const compat_ulong_t __user *old_nodes,
- const compat_ulong_t __user *new_nodes);
-
-extern int compat_ptrace_request(struct task_struct *child,
- compat_long_t request,
- compat_ulong_t addr, compat_ulong_t data);
-
-extern long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
- compat_ulong_t addr, compat_ulong_t data);
-asmlinkage long compat_sys_ptrace(compat_long_t request, compat_long_t pid,
- compat_long_t addr, compat_long_t data);
-
-/*
- * epoll (fs/eventpoll.c) compat bits follow ...
- */
-struct epoll_event;
-#define compat_epoll_event epoll_event
-asmlinkage long compat_sys_epoll_pwait(int epfd,
- struct compat_epoll_event __user *events,
- int maxevents, int timeout,
- const compat_sigset_t __user *sigmask,
- compat_size_t sigsetsize);
-
-asmlinkage long compat_sys_utime(const char __user *filename,
- struct compat_utimbuf __user *t);
-asmlinkage long compat_sys_utimensat(unsigned int dfd,
- const char __user *filename,
- struct compat_timespec __user *t,
- int flags);
-
-asmlinkage long compat_sys_time(compat_time_t __user *tloc);
-asmlinkage long compat_sys_stime(compat_time_t __user *tptr);
-asmlinkage long compat_sys_signalfd(int ufd,
- const compat_sigset_t __user *sigmask,
- compat_size_t sigsetsize);
-asmlinkage long compat_sys_timerfd_settime(int ufd, int flags,
- const struct compat_itimerspec __user *utmr,
- struct compat_itimerspec __user *otmr);
-asmlinkage long compat_sys_timerfd_gettime(int ufd,
- struct compat_itimerspec __user *otmr);
-
-asmlinkage long compat_sys_move_pages(pid_t pid, unsigned long nr_page,
- __u32 __user *pages,
- const int __user *nodes,
- int __user *status,
- int flags);
-asmlinkage long compat_sys_futimesat(unsigned int dfd,
- const char __user *filename,
- struct compat_timeval __user *t);
-asmlinkage long compat_sys_utimes(const char __user *filename,
- struct compat_timeval __user *t);
-asmlinkage long compat_sys_newstat(const char __user *filename,
- struct compat_stat __user *statbuf);
-asmlinkage long compat_sys_newlstat(const char __user *filename,
- struct compat_stat __user *statbuf);
-asmlinkage long compat_sys_newfstatat(unsigned int dfd,
- const char __user *filename,
- struct compat_stat __user *statbuf,
- int flag);
-asmlinkage long compat_sys_newfstat(unsigned int fd,
- struct compat_stat __user *statbuf);
-asmlinkage long compat_sys_statfs(const char __user *pathname,
- struct compat_statfs __user *buf);
-asmlinkage long compat_sys_fstatfs(unsigned int fd,
- struct compat_statfs __user *buf);
-asmlinkage long compat_sys_statfs64(const char __user *pathname,
- compat_size_t sz,
- struct compat_statfs64 __user *buf);
-asmlinkage long compat_sys_fstatfs64(unsigned int fd, compat_size_t sz,
- struct compat_statfs64 __user *buf);
-asmlinkage long compat_sys_fcntl64(unsigned int fd, unsigned int cmd,
- unsigned long arg);
-asmlinkage long compat_sys_fcntl(unsigned int fd, unsigned int cmd,
- unsigned long arg);
-asmlinkage long compat_sys_io_setup(unsigned nr_reqs, u32 __user *ctx32p);
-asmlinkage long compat_sys_io_getevents(aio_context_t ctx_id,
- unsigned long min_nr,
- unsigned long nr,
- struct io_event __user *events,
- struct compat_timespec __user *timeout);
-asmlinkage long compat_sys_io_submit(aio_context_t ctx_id, int nr,
- u32 __user *iocb);
-asmlinkage long compat_sys_mount(const char __user *dev_name,
- const char __user *dir_name,
- const char __user *type, unsigned long flags,
- const void __user *data);
-asmlinkage long compat_sys_old_readdir(unsigned int fd,
- struct compat_old_linux_dirent __user *,
- unsigned int count);
-asmlinkage long compat_sys_getdents(unsigned int fd,
- struct compat_linux_dirent __user *dirent,
- unsigned int count);
-asmlinkage long compat_sys_getdents64(unsigned int fd,
- struct linux_dirent64 __user *dirent,
- unsigned int count);
-asmlinkage long compat_sys_vmsplice(int fd, const struct compat_iovec __user *,
- unsigned int nr_segs, unsigned int flags);
-asmlinkage long compat_sys_open(const char __user *filename, int flags,
- umode_t mode);
-asmlinkage long compat_sys_openat(unsigned int dfd, const char __user *filename,
- int flags, umode_t mode);
-asmlinkage long compat_sys_open_by_handle_at(int mountdirfd,
- struct file_handle __user *handle,
- int flags);
-asmlinkage long compat_sys_pselect6(int n, compat_ulong_t __user *inp,
- compat_ulong_t __user *outp,
- compat_ulong_t __user *exp,
- struct compat_timespec __user *tsp,
- void __user *sig);
-asmlinkage long compat_sys_ppoll(struct pollfd __user *ufds,
- unsigned int nfds,
- struct compat_timespec __user *tsp,
- const compat_sigset_t __user *sigmask,
- compat_size_t sigsetsize);
-asmlinkage long compat_sys_signalfd4(int ufd,
- const compat_sigset_t __user *sigmask,
- compat_size_t sigsetsize, int flags);
-asmlinkage long compat_sys_get_mempolicy(int __user *policy,
- compat_ulong_t __user *nmask,
- compat_ulong_t maxnode,
- compat_ulong_t addr,
- compat_ulong_t flags);
-asmlinkage long compat_sys_set_mempolicy(int mode, compat_ulong_t __user *nmask,
- compat_ulong_t maxnode);
-asmlinkage long compat_sys_mbind(compat_ulong_t start, compat_ulong_t len,
- compat_ulong_t mode,
- compat_ulong_t __user *nmask,
- compat_ulong_t maxnode, compat_ulong_t flags);
-
-asmlinkage long compat_sys_setsockopt(int fd, int level, int optname,
- char __user *optval, unsigned int optlen);
-asmlinkage long compat_sys_sendmsg(int fd, struct compat_msghdr __user *msg,
- unsigned flags);
-asmlinkage long compat_sys_sendmmsg(int fd, struct compat_mmsghdr __user *mmsg,
- unsigned vlen, unsigned int flags);
-asmlinkage long compat_sys_recvmsg(int fd, struct compat_msghdr __user *msg,
- unsigned int flags);
-asmlinkage long compat_sys_recv(int fd, void __user *buf, size_t len,
- unsigned flags);
-asmlinkage long compat_sys_recvfrom(int fd, void __user *buf, size_t len,
- unsigned flags, struct sockaddr __user *addr,
- int __user *addrlen);
-asmlinkage long compat_sys_recvmmsg(int fd, struct compat_mmsghdr __user *mmsg,
- unsigned vlen, unsigned int flags,
- struct compat_timespec __user *timeout);
-asmlinkage long compat_sys_nanosleep(struct compat_timespec __user *rqtp,
- struct compat_timespec __user *rmtp);
-asmlinkage long compat_sys_getitimer(int which,
- struct compat_itimerval __user *it);
-asmlinkage long compat_sys_setitimer(int which,
- struct compat_itimerval __user *in,
- struct compat_itimerval __user *out);
-asmlinkage long compat_sys_times(struct compat_tms __user *tbuf);
-asmlinkage long compat_sys_setrlimit(unsigned int resource,
- struct compat_rlimit __user *rlim);
-asmlinkage long compat_sys_getrlimit(unsigned int resource,
- struct compat_rlimit __user *rlim);
-asmlinkage long compat_sys_getrusage(int who, struct compat_rusage __user *ru);
-asmlinkage long compat_sys_sched_setaffinity(compat_pid_t pid,
- unsigned int len,
- compat_ulong_t __user *user_mask_ptr);
-asmlinkage long compat_sys_sched_getaffinity(compat_pid_t pid,
- unsigned int len,
- compat_ulong_t __user *user_mask_ptr);
-asmlinkage long compat_sys_timer_create(clockid_t which_clock,
- struct compat_sigevent __user *timer_event_spec,
- timer_t __user *created_timer_id);
-asmlinkage long compat_sys_timer_settime(timer_t timer_id, int flags,
- struct compat_itimerspec __user *new,
- struct compat_itimerspec __user *old);
-asmlinkage long compat_sys_timer_gettime(timer_t timer_id,
- struct compat_itimerspec __user *setting);
-asmlinkage long compat_sys_clock_settime(clockid_t which_clock,
- struct compat_timespec __user *tp);
-asmlinkage long compat_sys_clock_gettime(clockid_t which_clock,
- struct compat_timespec __user *tp);
-asmlinkage long compat_sys_clock_adjtime(clockid_t which_clock,
- struct compat_timex __user *tp);
-asmlinkage long compat_sys_clock_getres(clockid_t which_clock,
- struct compat_timespec __user *tp);
-asmlinkage long compat_sys_clock_nanosleep(clockid_t which_clock, int flags,
- struct compat_timespec __user *rqtp,
- struct compat_timespec __user *rmtp);
-asmlinkage long compat_sys_rt_sigtimedwait(compat_sigset_t __user *uthese,
- struct compat_siginfo __user *uinfo,
- struct compat_timespec __user *uts, compat_size_t sigsetsize);
-asmlinkage long compat_sys_rt_sigsuspend(compat_sigset_t __user *unewset,
- compat_size_t sigsetsize);
-asmlinkage long compat_sys_sysinfo(struct compat_sysinfo __user *info);
-asmlinkage long compat_sys_ioctl(unsigned int fd, unsigned int cmd,
- unsigned long arg);
-asmlinkage long compat_sys_futex(u32 __user *uaddr, int op, u32 val,
- struct compat_timespec __user *utime, u32 __user *uaddr2,
- u32 val3);
-asmlinkage long compat_sys_getsockopt(int fd, int level, int optname,
- char __user *optval, int __user *optlen);
-asmlinkage long compat_sys_kexec_load(unsigned long entry,
- unsigned long nr_segments,
- struct compat_kexec_segment __user *,
- unsigned long flags);
-asmlinkage long compat_sys_mq_getsetattr(mqd_t mqdes,
- const struct compat_mq_attr __user *u_mqstat,
- struct compat_mq_attr __user *u_omqstat);
-asmlinkage long compat_sys_mq_notify(mqd_t mqdes,
- const struct compat_sigevent __user *u_notification);
-asmlinkage long compat_sys_mq_open(const char __user *u_name,
- int oflag, compat_mode_t mode,
- struct compat_mq_attr __user *u_attr);
-asmlinkage long compat_sys_mq_timedsend(mqd_t mqdes,
- const char __user *u_msg_ptr,
- size_t msg_len, unsigned int msg_prio,
- const struct compat_timespec __user *u_abs_timeout);
-asmlinkage ssize_t compat_sys_mq_timedreceive(mqd_t mqdes,
- char __user *u_msg_ptr,
- size_t msg_len, unsigned int __user *u_msg_prio,
- const struct compat_timespec __user *u_abs_timeout);
-asmlinkage long compat_sys_socketcall(int call, u32 __user *args);
-asmlinkage long compat_sys_sysctl(struct compat_sysctl_args __user *args);
-
-extern ssize_t compat_rw_copy_check_uvector(int type,
- const struct compat_iovec __user *uvector,
- unsigned long nr_segs,
- unsigned long fast_segs, struct iovec *fast_pointer,
- struct iovec **ret_pointer,
- int check_access);
-
-extern void __user *compat_alloc_user_space(unsigned long len);
-
-asmlinkage ssize_t compat_sys_process_vm_readv(compat_pid_t pid,
- const struct compat_iovec __user *lvec,
- unsigned long liovcnt, const struct compat_iovec __user *rvec,
- unsigned long riovcnt, unsigned long flags);
-asmlinkage ssize_t compat_sys_process_vm_writev(compat_pid_t pid,
- const struct compat_iovec __user *lvec,
- unsigned long liovcnt, const struct compat_iovec __user *rvec,
- unsigned long riovcnt, unsigned long flags);
-
-#else
-
-#define is_compat_task() (0)
-
-#endif /* CONFIG_COMPAT */
-#endif /* _LINUX_COMPAT_H */
diff --git a/ANDROID_3.4.5/include/linux/compiler-gcc.h b/ANDROID_3.4.5/include/linux/compiler-gcc.h
deleted file mode 100644
index e5834aa2..00000000
--- a/ANDROID_3.4.5/include/linux/compiler-gcc.h
+++ /dev/null
@@ -1,112 +0,0 @@
-#ifndef __LINUX_COMPILER_H
-#error "Please don't include <linux/compiler-gcc.h> directly, include <linux/compiler.h> instead."
-#endif
-
-/*
- * Common definitions for all gcc versions go here.
- */
-
-
-/* Optimization barrier */
-/* The "volatile" is due to gcc bugs */
-#define barrier() __asm__ __volatile__("": : :"memory")
-
-/*
- * This macro obfuscates arithmetic on a variable address so that gcc
- * shouldn't recognize the original var, and make assumptions about it.
- *
- * This is needed because the C standard makes it undefined to do
- * pointer arithmetic on "objects" outside their boundaries and the
- * gcc optimizers assume this is the case. In particular they
- * assume such arithmetic does not wrap.
- *
- * A miscompilation has been observed because of this on PPC.
- * To work around it we hide the relationship of the pointer and the object
- * using this macro.
- *
- * Versions of the ppc64 compiler before 4.1 had a bug where use of
- * RELOC_HIDE could trash r30. The bug can be worked around by changing
- * the inline assembly constraint from =g to =r, in this particular
- * case either is valid.
- */
-#define RELOC_HIDE(ptr, off) \
- ({ unsigned long __ptr; \
- __asm__ ("" : "=r"(__ptr) : "0"(ptr)); \
- (typeof(ptr)) (__ptr + (off)); })
-
-#ifdef __CHECKER__
-#define __must_be_array(arr) 0
-#else
-/* &a[0] degrades to a pointer: a different type from an array */
-#define __must_be_array(a) BUILD_BUG_ON_ZERO(__same_type((a), &(a)[0]))
-#endif
-
-/*
- * Force always-inline if the user requests it so via the .config,
- * or if gcc is too old:
- */
-#if !defined(CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING) || \
- !defined(CONFIG_OPTIMIZE_INLINING) || (__GNUC__ < 4)
-# define inline inline __attribute__((always_inline))
-# define __inline__ __inline__ __attribute__((always_inline))
-# define __inline __inline __attribute__((always_inline))
-#else
-/* A lot of inline functions can cause havoc with function tracing */
-# define inline inline notrace
-# define __inline__ __inline__ notrace
-# define __inline __inline notrace
-#endif
-
-#define __deprecated __attribute__((deprecated))
-#define __packed __attribute__((packed))
-#define __weak __attribute__((weak))
-
-/*
- * it doesn't make sense on ARM (currently the only user of __naked) to trace
- * naked functions because then mcount is called without stack and frame pointer
- * being set up and there is no chance to restore the lr register to the value
- * before mcount was called.
- *
- * The asm() bodies of naked functions often depend on standard calling conventions,
- * therefore they must be noinline and noclone. GCC 4.[56] currently fail to enforce
- * this, so we must do so ourselves. See GCC PR44290.
- */
-#define __naked __attribute__((naked)) noinline __noclone notrace
-
-#define __noreturn __attribute__((noreturn))
-
-/*
- * From the GCC manual:
- *
- * Many functions have no effects except the return value and their
- * return value depends only on the parameters and/or global
- * variables. Such a function can be subject to common subexpression
- * elimination and loop optimization just as an arithmetic operator
- * would be.
- * [...]
- */
-#define __pure __attribute__((pure))
-#define __aligned(x) __attribute__((aligned(x)))
-#define __printf(a, b) __attribute__((format(printf, a, b)))
-#define __scanf(a, b) __attribute__((format(scanf, a, b)))
-#define noinline __attribute__((noinline))
-#define __attribute_const__ __attribute__((__const__))
-#define __maybe_unused __attribute__((unused))
-#define __always_unused __attribute__((unused))
-
-#define __gcc_header(x) #x
-#define _gcc_header(x) __gcc_header(linux/compiler-gcc##x.h)
-#define gcc_header(x) _gcc_header(x)
-#include gcc_header(__GNUC__)
-
-#if !defined(__noclone)
-#define __noclone /* not needed */
-#endif
-
-/*
- * A trick to suppress uninitialized variable warning without generating any
- * code
- */
-#define uninitialized_var(x) x = x
-
-#define __always_inline inline __attribute__((always_inline))
diff --git a/ANDROID_3.4.5/include/linux/compiler-gcc3.h b/ANDROID_3.4.5/include/linux/compiler-gcc3.h
deleted file mode 100644
index 37d41243..00000000
--- a/ANDROID_3.4.5/include/linux/compiler-gcc3.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef __LINUX_COMPILER_H
-#error "Please don't include <linux/compiler-gcc3.h> directly, include <linux/compiler.h> instead."
-#endif
-
-#if __GNUC_MINOR__ < 2
-# error Sorry, your compiler is too old - please upgrade it.
-#endif
-
-#if __GNUC_MINOR__ >= 3
-# define __used __attribute__((__used__))
-#else
-# define __used __attribute__((__unused__))
-#endif
-
-#if __GNUC_MINOR__ >= 4
-#define __must_check __attribute__((warn_unused_result))
-#endif
-
-#ifdef CONFIG_GCOV_KERNEL
-# if __GNUC_MINOR__ < 4
-# error "GCOV profiling support for gcc versions below 3.4 not included"
-# endif /* __GNUC_MINOR__ */
-#endif /* CONFIG_GCOV_KERNEL */
diff --git a/ANDROID_3.4.5/include/linux/compiler-gcc4.h b/ANDROID_3.4.5/include/linux/compiler-gcc4.h
deleted file mode 100644
index 2f407917..00000000
--- a/ANDROID_3.4.5/include/linux/compiler-gcc4.h
+++ /dev/null
@@ -1,58 +0,0 @@
-#ifndef __LINUX_COMPILER_H
-#error "Please don't include <linux/compiler-gcc4.h> directly, include <linux/compiler.h> instead."
-#endif
-
-/* GCC 4.1.[01] miscompiles __weak */
-#ifdef __KERNEL__
-# if __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ <= 1
-# error Your version of gcc miscompiles the __weak directive
-# endif
-#endif
-
-#define __used __attribute__((__used__))
-#define __must_check __attribute__((warn_unused_result))
-#define __compiler_offsetof(a,b) __builtin_offsetof(a,b)
-
-#if __GNUC_MINOR__ >= 3
-/* Mark functions as cold. gcc will assume any path leading to a call
- to them will be unlikely. This means a lot of manual unlikely()s
- are unnecessary now for any paths leading to the usual suspects
- like BUG(), printk(), panic() etc. [but let's keep them for now for
- older compilers]
-
- Early snapshots of gcc 4.3 don't support this and we can't detect this
- in the preprocessor, but we can live with this because they're unreleased.
- Maketime probing would be overkill here.
-
- gcc also has a __attribute__((__hot__)) to move hot functions into
- a special section, but I don't see any sense in this right now in
- the kernel context */
-#define __cold __attribute__((__cold__))
-
-#define __linktime_error(message) __attribute__((__error__(message)))
-
-#if __GNUC_MINOR__ >= 5
-/*
- * Mark a position in code as unreachable. This can be used to
- * suppress control flow warnings after asm blocks that transfer
- * control elsewhere.
- *
- * Early snapshots of gcc 4.5 don't support this and we can't detect
- * this in the preprocessor, but we can live with this because they're
- * unreleased. Really, we need to have autoconf for the kernel.
- */
-#define unreachable() __builtin_unreachable()
-
-/* Mark a function definition as prohibited from being cloned. */
-#define __noclone __attribute__((__noclone__))
-
-#endif
-#endif
-
-#if __GNUC_MINOR__ > 0
-#define __compiletime_object_size(obj) __builtin_object_size(obj, 0)
-#endif
-#if __GNUC_MINOR__ >= 4 && !defined(__CHECKER__)
-#define __compiletime_warning(message) __attribute__((warning(message)))
-#define __compiletime_error(message) __attribute__((error(message)))
-#endif
diff --git a/ANDROID_3.4.5/include/linux/compiler-intel.h b/ANDROID_3.4.5/include/linux/compiler-intel.h
deleted file mode 100644
index d8e636e5..00000000
--- a/ANDROID_3.4.5/include/linux/compiler-intel.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef __LINUX_COMPILER_H
-#error "Please don't include <linux/compiler-intel.h> directly, include <linux/compiler.h> instead."
-#endif
-
-#ifdef __ECC
-
-/* Some compiler specific definitions are overwritten here
- * for Intel ECC compiler
- */
-
-#include <asm/intrinsics.h>
-
-/* Intel ECC compiler doesn't support gcc specific asm stmts.
- * It uses intrinsics to do the equivalent things.
- */
-#undef barrier
-#undef RELOC_HIDE
-
-#define barrier() __memory_barrier()
-
-#define RELOC_HIDE(ptr, off) \
- ({ unsigned long __ptr; \
- __ptr = (unsigned long) (ptr); \
- (typeof(ptr)) (__ptr + (off)); })
-
-/* Intel ECC compiler doesn't support __builtin_types_compatible_p() */
-#define __must_be_array(a) 0
-
-#endif
-
-#define uninitialized_var(x) x
diff --git a/ANDROID_3.4.5/include/linux/compiler.h b/ANDROID_3.4.5/include/linux/compiler.h
deleted file mode 100644
index 923d093c..00000000
--- a/ANDROID_3.4.5/include/linux/compiler.h
+++ /dev/null
@@ -1,313 +0,0 @@
-#ifndef __LINUX_COMPILER_H
-#define __LINUX_COMPILER_H
-
-#ifndef __ASSEMBLY__
-
-#ifdef __CHECKER__
-# define __user __attribute__((noderef, address_space(1)))
-# define __kernel __attribute__((address_space(0)))
-# define __safe __attribute__((safe))
-# define __force __attribute__((force))
-# define __nocast __attribute__((nocast))
-# define __iomem __attribute__((noderef, address_space(2)))
-# define __acquires(x) __attribute__((context(x,0,1)))
-# define __releases(x) __attribute__((context(x,1,0)))
-# define __acquire(x) __context__(x,1)
-# define __release(x) __context__(x,-1)
-# define __cond_lock(x,c) ((c) ? ({ __acquire(x); 1; }) : 0)
-# define __percpu __attribute__((noderef, address_space(3)))
-#ifdef CONFIG_SPARSE_RCU_POINTER
-# define __rcu __attribute__((noderef, address_space(4)))
-#else
-# define __rcu
-#endif
-extern void __chk_user_ptr(const volatile void __user *);
-extern void __chk_io_ptr(const volatile void __iomem *);
-#else
-# define __user
-# define __kernel
-# define __safe
-# define __force
-# define __nocast
-# define __iomem
-# define __chk_user_ptr(x) (void)0
-# define __chk_io_ptr(x) (void)0
-# define __builtin_warning(x, y...) (1)
-# define __acquires(x)
-# define __releases(x)
-# define __acquire(x) (void)0
-# define __release(x) (void)0
-# define __cond_lock(x,c) (c)
-# define __percpu
-# define __rcu
-#endif
-
-#ifdef __KERNEL__
-
-#ifdef __GNUC__
-#include <linux/compiler-gcc.h>
-#endif
-
-#define notrace __attribute__((no_instrument_function))
-
-/* Intel compiler defines __GNUC__. So we will overwrite implementations
- * coming from above header files here
- */
-#ifdef __INTEL_COMPILER
-# include <linux/compiler-intel.h>
-#endif
-
-/*
- * Generic compiler-dependent macros required for kernel
- * build go below this comment. Actual compiler/compiler version
- * specific implementations come from the above header files
- */
-
-struct ftrace_branch_data {
- const char *func;
- const char *file;
- unsigned line;
- union {
- struct {
- unsigned long correct;
- unsigned long incorrect;
- };
- struct {
- unsigned long miss;
- unsigned long hit;
- };
- unsigned long miss_hit[2];
- };
-};
-
-/*
- * Note: DISABLE_BRANCH_PROFILING can be used by special lowlevel code
- * to disable branch tracing on a per file basis.
- */
-#if defined(CONFIG_TRACE_BRANCH_PROFILING) \
- && !defined(DISABLE_BRANCH_PROFILING) && !defined(__CHECKER__)
-void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
-
-#define likely_notrace(x) __builtin_expect(!!(x), 1)
-#define unlikely_notrace(x) __builtin_expect(!!(x), 0)
-
-#define __branch_check__(x, expect) ({ \
- int ______r; \
- static struct ftrace_branch_data \
- __attribute__((__aligned__(4))) \
- __attribute__((section("_ftrace_annotated_branch"))) \
- ______f = { \
- .func = __func__, \
- .file = __FILE__, \
- .line = __LINE__, \
- }; \
- ______r = likely_notrace(x); \
- ftrace_likely_update(&______f, ______r, expect); \
- ______r; \
- })
-
-/*
- * Using __builtin_constant_p(x) to ignore cases where the return
- * value is always the same. This idea is taken from a similar patch
- * written by Daniel Walker.
- */
-# ifndef likely
-# define likely(x) (__builtin_constant_p(x) ? !!(x) : __branch_check__(x, 1))
-# endif
-# ifndef unlikely
-# define unlikely(x) (__builtin_constant_p(x) ? !!(x) : __branch_check__(x, 0))
-# endif
-
-#ifdef CONFIG_PROFILE_ALL_BRANCHES
-/*
- * "Define 'is'", Bill Clinton
- * "Define 'if'", Steven Rostedt
- */
-#define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) )
-#define __trace_if(cond) \
- if (__builtin_constant_p((cond)) ? !!(cond) : \
- ({ \
- int ______r; \
- static struct ftrace_branch_data \
- __attribute__((__aligned__(4))) \
- __attribute__((section("_ftrace_branch"))) \
- ______f = { \
- .func = __func__, \
- .file = __FILE__, \
- .line = __LINE__, \
- }; \
- ______r = !!(cond); \
- ______f.miss_hit[______r]++; \
- ______r; \
- }))
-#endif /* CONFIG_PROFILE_ALL_BRANCHES */
-
-#else
-# define likely(x) __builtin_expect(!!(x), 1)
-# define unlikely(x) __builtin_expect(!!(x), 0)
-#endif
-
-/* Optimization barrier */
-#ifndef barrier
-# define barrier() __memory_barrier()
-#endif
-
-/* Unreachable code */
-#ifndef unreachable
-# define unreachable() do { } while (1)
-#endif
-
-#ifndef RELOC_HIDE
-# define RELOC_HIDE(ptr, off) \
- ({ unsigned long __ptr; \
- __ptr = (unsigned long) (ptr); \
- (typeof(ptr)) (__ptr + (off)); })
-#endif
-
-#endif /* __KERNEL__ */
-
-#endif /* __ASSEMBLY__ */
-
-#ifdef __KERNEL__
-/*
- * Allow us to mark functions as 'deprecated' and have gcc emit a nice
- * warning for each use, in hopes of speeding the functions removal.
- * Usage is:
- * int __deprecated foo(void)
- */
-#ifndef __deprecated
-# define __deprecated /* unimplemented */
-#endif
-
-#ifdef MODULE
-#define __deprecated_for_modules __deprecated
-#else
-#define __deprecated_for_modules
-#endif
-
-#ifndef __must_check
-#define __must_check
-#endif
-
-#ifndef CONFIG_ENABLE_MUST_CHECK
-#undef __must_check
-#define __must_check
-#endif
-#ifndef CONFIG_ENABLE_WARN_DEPRECATED
-#undef __deprecated
-#undef __deprecated_for_modules
-#define __deprecated
-#define __deprecated_for_modules
-#endif
-
-/*
- * Allow us to avoid 'defined but not used' warnings on functions and data,
- * as well as force them to be emitted to the assembly file.
- *
- * As of gcc 3.4, static functions that are not marked with attribute((used))
- * may be elided from the assembly file. As of gcc 3.4, static data not so
- * marked will not be elided, but this may change in a future gcc version.
- *
- * NOTE: Because distributions shipped with a backported unit-at-a-time
- * compiler in gcc 3.3, we must define __used to be __attribute__((used))
- * for gcc >=3.3 instead of 3.4.
- *
- * In prior versions of gcc, such functions and data would be emitted, but
- * would be warned about except with attribute((unused)).
- *
- * Mark functions that are referenced only in inline assembly as __used so
- * the code is emitted even though it appears to be unreferenced.
- */
-#ifndef __used
-# define __used /* unimplemented */
-#endif
-
-#ifndef __maybe_unused
-# define __maybe_unused /* unimplemented */
-#endif
-
-#ifndef __always_unused
-# define __always_unused /* unimplemented */
-#endif
-
-#ifndef noinline
-#define noinline
-#endif
-
-/*
- * Rather then using noinline to prevent stack consumption, use
- * noinline_for_stack instead. For documentation reasons.
- */
-#define noinline_for_stack noinline
-
-#ifndef __always_inline
-#define __always_inline inline
-#endif
-
-#endif /* __KERNEL__ */
-
-/*
- * From the GCC manual:
- *
- * Many functions do not examine any values except their arguments,
- * and have no effects except the return value. Basically this is
- * just slightly more strict class than the `pure' attribute above,
- * since function is not allowed to read global memory.
- *
- * Note that a function that has pointer arguments and examines the
- * data pointed to must _not_ be declared `const'. Likewise, a
- * function that calls a non-`const' function usually must not be
- * `const'. It does not make sense for a `const' function to return
- * `void'.
- */
-#ifndef __attribute_const__
-# define __attribute_const__ /* unimplemented */
-#endif
-
-/*
- * Tell gcc if a function is cold. The compiler will assume any path
- * directly leading to the call is unlikely.
- */
-
-#ifndef __cold
-#define __cold
-#endif
-
-/* Simple shorthand for a section definition */
-#ifndef __section
-# define __section(S) __attribute__ ((__section__(#S)))
-#endif
-
-/* Are two types/vars the same type (ignoring qualifiers)? */
-#ifndef __same_type
-# define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
-#endif
-
-/* Compile time object size, -1 for unknown */
-#ifndef __compiletime_object_size
-# define __compiletime_object_size(obj) -1
-#endif
-#ifndef __compiletime_warning
-# define __compiletime_warning(message)
-#endif
-#ifndef __compiletime_error
-# define __compiletime_error(message)
-#endif
-#ifndef __linktime_error
-# define __linktime_error(message)
-#endif
-/*
- * Prevent the compiler from merging or refetching accesses. The compiler
- * is also forbidden from reordering successive instances of ACCESS_ONCE(),
- * but only when the compiler is aware of some particular ordering. One way
- * to make the compiler aware of ordering is to put the two invocations of
- * ACCESS_ONCE() in different C statements.
- *
- * This macro does absolutely -nothing- to prevent the CPU from reordering,
- * merging, or refetching absolutely anything at any time. Its main intended
- * use is to mediate communication between process-level code and irq/NMI
- * handlers, all running on the same CPU.
- */
-#define ACCESS_ONCE(x) (*(volatile typeof(x) *)&(x))
-
-#endif /* __LINUX_COMPILER_H */
diff --git a/ANDROID_3.4.5/include/linux/completion.h b/ANDROID_3.4.5/include/linux/completion.h
deleted file mode 100644
index 51494e6b..00000000
--- a/ANDROID_3.4.5/include/linux/completion.h
+++ /dev/null
@@ -1,104 +0,0 @@
-#ifndef __LINUX_COMPLETION_H
-#define __LINUX_COMPLETION_H
-
-/*
- * (C) Copyright 2001 Linus Torvalds
- *
- * Atomic wait-for-completion handler data structures.
- * See kernel/sched.c for details.
- */
-
-#include <linux/wait.h>
-
-/*
- * struct completion - structure used to maintain state for a "completion"
- *
- * This is the opaque structure used to maintain the state for a "completion".
- * Completions currently use a FIFO to queue threads that have to wait for
- * the "completion" event.
- *
- * See also: complete(), wait_for_completion() (and friends _timeout,
- * _interruptible, _interruptible_timeout, and _killable), init_completion(),
- * and macros DECLARE_COMPLETION(), DECLARE_COMPLETION_ONSTACK(), and
- * INIT_COMPLETION().
- */
-struct completion {
- unsigned int done;
- wait_queue_head_t wait;
-};
-
-#define COMPLETION_INITIALIZER(work) \
- { 0, __WAIT_QUEUE_HEAD_INITIALIZER((work).wait) }
-
-#define COMPLETION_INITIALIZER_ONSTACK(work) \
- ({ init_completion(&work); work; })
-
-/**
- * DECLARE_COMPLETION - declare and initialize a completion structure
- * @work: identifier for the completion structure
- *
- * This macro declares and initializes a completion structure. Generally used
- * for static declarations. You should use the _ONSTACK variant for automatic
- * variables.
- */
-#define DECLARE_COMPLETION(work) \
- struct completion work = COMPLETION_INITIALIZER(work)
-
-/*
- * Lockdep needs to run a non-constant initializer for on-stack
- * completions - so we use the _ONSTACK() variant for those that
- * are on the kernel stack:
- */
-/**
- * DECLARE_COMPLETION_ONSTACK - declare and initialize a completion structure
- * @work: identifier for the completion structure
- *
- * This macro declares and initializes a completion structure on the kernel
- * stack.
- */
-#ifdef CONFIG_LOCKDEP
-# define DECLARE_COMPLETION_ONSTACK(work) \
- struct completion work = COMPLETION_INITIALIZER_ONSTACK(work)
-#else
-# define DECLARE_COMPLETION_ONSTACK(work) DECLARE_COMPLETION(work)
-#endif
-
-/**
- * init_completion - Initialize a dynamically allocated completion
- * @x: completion structure that is to be initialized
- *
- * This inline function will initialize a dynamically created completion
- * structure.
- */
-static inline void init_completion(struct completion *x)
-{
- x->done = 0;
- init_waitqueue_head(&x->wait);
-}
-
-extern void wait_for_completion(struct completion *);
-extern int wait_for_completion_interruptible(struct completion *x);
-extern int wait_for_completion_killable(struct completion *x);
-extern unsigned long wait_for_completion_timeout(struct completion *x,
- unsigned long timeout);
-extern long wait_for_completion_interruptible_timeout(
- struct completion *x, unsigned long timeout);
-extern long wait_for_completion_killable_timeout(
- struct completion *x, unsigned long timeout);
-extern bool try_wait_for_completion(struct completion *x);
-extern bool completion_done(struct completion *x);
-
-extern void complete(struct completion *);
-extern void complete_all(struct completion *);
-
-/**
- * INIT_COMPLETION - reinitialize a completion structure
- * @x: completion structure to be reinitialized
- *
- * This macro should be used to reinitialize a completion structure so it can
- * be reused. This is especially important after complete_all() is used.
- */
-#define INIT_COMPLETION(x) ((x).done = 0)
-
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/comstats.h b/ANDROID_3.4.5/include/linux/comstats.h
deleted file mode 100644
index 3f5ea8e8..00000000
--- a/ANDROID_3.4.5/include/linux/comstats.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/*****************************************************************************/
-
-/*
- * comstats.h -- Serial Port Stats.
- *
- * Copyright (C) 1996-1998 Stallion Technologies
- * Copyright (C) 1994-1996 Greg Ungerer.
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-/*****************************************************************************/
-#ifndef _COMSTATS_H
-#define _COMSTATS_H
-/*****************************************************************************/
-
-/*
- * Serial port stats structure. The structure itself is UART
- * independent, but some fields may be UART/driver specific (for
- * example state).
- */
-
-typedef struct {
- unsigned long brd;
- unsigned long panel;
- unsigned long port;
- unsigned long hwid;
- unsigned long type;
- unsigned long txtotal;
- unsigned long rxtotal;
- unsigned long txbuffered;
- unsigned long rxbuffered;
- unsigned long rxoverrun;
- unsigned long rxparity;
- unsigned long rxframing;
- unsigned long rxlost;
- unsigned long txbreaks;
- unsigned long rxbreaks;
- unsigned long txxon;
- unsigned long txxoff;
- unsigned long rxxon;
- unsigned long rxxoff;
- unsigned long txctson;
- unsigned long txctsoff;
- unsigned long rxrtson;
- unsigned long rxrtsoff;
- unsigned long modem;
- unsigned long state;
- unsigned long flags;
- unsigned long ttystate;
- unsigned long cflags;
- unsigned long iflags;
- unsigned long oflags;
- unsigned long lflags;
- unsigned long signals;
-} comstats_t;
-
-
-/*
- * Board stats structure. Returns useful info about the board.
- */
-
-#define COM_MAXPANELS 8
-
-typedef struct {
- unsigned long panel;
- unsigned long type;
- unsigned long hwid;
- unsigned long nrports;
-} companel_t;
-
-typedef struct {
- unsigned long brd;
- unsigned long type;
- unsigned long hwid;
- unsigned long state;
- unsigned long ioaddr;
- unsigned long ioaddr2;
- unsigned long memaddr;
- unsigned long irq;
- unsigned long nrpanels;
- unsigned long nrports;
- companel_t panels[COM_MAXPANELS];
-} combrd_t;
-
-
-/*
- * Define the ioctl operations for stats stuff.
- */
-#include <linux/ioctl.h>
-
-#define COM_GETPORTSTATS _IO('c',30)
-#define COM_CLRPORTSTATS _IO('c',31)
-#define COM_GETBRDSTATS _IO('c',32)
-
-
-/*
- * Define the set of ioctls that give user level access to the
- * private port, panel and board structures. The argument required
- * will be driver dependent!
- */
-#define COM_READPORT _IO('c',40)
-#define COM_READBOARD _IO('c',41)
-#define COM_READPANEL _IO('c',42)
-
-/*****************************************************************************/
-#endif
diff --git a/ANDROID_3.4.5/include/linux/concap.h b/ANDROID_3.4.5/include/linux/concap.h
deleted file mode 100644
index 977acb3d..00000000
--- a/ANDROID_3.4.5/include/linux/concap.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/* $Id: concap.h,v 1.3.2.2 2004/01/12 23:08:35 keil Exp $
- *
- * Copyright 1997 by Henner Eisen <eis@baty.hanse.de>
- *
- * This software may be used and distributed according to the terms
- * of the GNU General Public License, incorporated herein by reference.
- */
-
-#ifndef _LINUX_CONCAP_H
-#define _LINUX_CONCAP_H
-
-#include <linux/skbuff.h>
-#include <linux/netdevice.h>
-
-/* Stuff to support encapsulation protocols genericly. The encapsulation
- protocol is processed at the uppermost layer of the network interface.
-
- Based on a ideas developed in a 'synchronous device' thread in the
- linux-x25 mailing list contributed by Alan Cox, Thomasz Motylewski
- and Jonathan Naylor.
-
- For more documetation on this refer to Documentation/isdn/README.concap
-*/
-
-struct concap_proto_ops;
-struct concap_device_ops;
-
-/* this manages all data needed by the encapsulation protocol
- */
-struct concap_proto{
- struct net_device *net_dev; /* net device using our service */
- struct concap_device_ops *dops; /* callbacks provided by device */
- struct concap_proto_ops *pops; /* callbacks provided by us */
- spinlock_t lock;
- int flags;
- void *proto_data; /* protocol specific private data, to
- be accessed via *pops methods only*/
- /*
- :
- whatever
- :
- */
-};
-
-/* Operations to be supported by the net device. Called by the encapsulation
- * protocol entity. No receive method is offered because the encapsulation
- * protocol directly calls netif_rx().
- */
-struct concap_device_ops{
-
- /* to request data is submitted by device*/
- int (*data_req)(struct concap_proto *, struct sk_buff *);
-
- /* Control methods must be set to NULL by devices which do not
- support connection control.*/
- /* to request a connection is set up */
- int (*connect_req)(struct concap_proto *);
-
- /* to request a connection is released */
- int (*disconn_req)(struct concap_proto *);
-};
-
-/* Operations to be supported by the encapsulation protocol. Called by
- * device driver.
- */
-struct concap_proto_ops{
-
- /* create a new encapsulation protocol instance of same type */
- struct concap_proto * (*proto_new) (void);
-
- /* delete encapsulation protocol instance and free all its resources.
- cprot may no loger be referenced after calling this */
- void (*proto_del)(struct concap_proto *cprot);
-
- /* initialize the protocol's data. To be called at interface startup
- or when the device driver resets the interface. All services of the
- encapsulation protocol may be used after this*/
- int (*restart)(struct concap_proto *cprot,
- struct net_device *ndev,
- struct concap_device_ops *dops);
-
- /* inactivate an encapsulation protocol instance. The encapsulation
- protocol may not call any *dops methods after this. */
- int (*close)(struct concap_proto *cprot);
-
- /* process a frame handed down to us by upper layer */
- int (*encap_and_xmit)(struct concap_proto *cprot, struct sk_buff *skb);
-
- /* to be called for each data entity received from lower layer*/
- int (*data_ind)(struct concap_proto *cprot, struct sk_buff *skb);
-
- /* to be called when a connection was set up/down.
- Protocols that don't process these primitives might fill in
- dummy methods here */
- int (*connect_ind)(struct concap_proto *cprot);
- int (*disconn_ind)(struct concap_proto *cprot);
- /*
- Some network device support functions, like net_header(), rebuild_header(),
- and others, that depend solely on the encapsulation protocol, might
- be provided here, too. The net device would just fill them in its
- corresponding fields when it is opened.
- */
-};
-
-/* dummy restart/close/connect/reset/disconn methods
- */
-extern int concap_nop(struct concap_proto *cprot);
-
-/* dummy submit method
- */
-extern int concap_drop_skb(struct concap_proto *cprot, struct sk_buff *skb);
-#endif
diff --git a/ANDROID_3.4.5/include/linux/configfs.h b/ANDROID_3.4.5/include/linux/configfs.h
deleted file mode 100644
index 34025df6..00000000
--- a/ANDROID_3.4.5/include/linux/configfs.h
+++ /dev/null
@@ -1,260 +0,0 @@
-/* -*- mode: c; c-basic-offset: 8; -*-
- * vim: noexpandtab sw=8 ts=8 sts=0:
- *
- * configfs.h - definitions for the device driver filesystem
- *
- * 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 021110-1307, USA.
- *
- * Based on sysfs:
- * sysfs is Copyright (C) 2001, 2002, 2003 Patrick Mochel
- *
- * Based on kobject.h:
- * Copyright (c) 2002-2003 Patrick Mochel
- * Copyright (c) 2002-2003 Open Source Development Labs
- *
- * configfs Copyright (C) 2005 Oracle. All rights reserved.
- *
- * Please read Documentation/filesystems/configfs/configfs.txt before using
- * the configfs interface, ESPECIALLY the parts about reference counts and
- * item destructors.
- */
-
-#ifndef _CONFIGFS_H_
-#define _CONFIGFS_H_
-
-#include <linux/kernel.h>
-#include <linux/types.h>
-#include <linux/list.h>
-#include <linux/kref.h>
-#include <linux/mutex.h>
-#include <linux/err.h>
-
-#include <linux/atomic.h>
-
-#define CONFIGFS_ITEM_NAME_LEN 20
-
-struct module;
-
-struct configfs_item_operations;
-struct configfs_group_operations;
-struct configfs_attribute;
-struct configfs_subsystem;
-
-struct config_item {
- char *ci_name;
- char ci_namebuf[CONFIGFS_ITEM_NAME_LEN];
- struct kref ci_kref;
- struct list_head ci_entry;
- struct config_item *ci_parent;
- struct config_group *ci_group;
- struct config_item_type *ci_type;
- struct dentry *ci_dentry;
-};
-
-extern int config_item_set_name(struct config_item *, const char *, ...);
-
-static inline char *config_item_name(struct config_item * item)
-{
- return item->ci_name;
-}
-
-extern void config_item_init(struct config_item *);
-extern void config_item_init_type_name(struct config_item *item,
- const char *name,
- struct config_item_type *type);
-
-extern struct config_item * config_item_get(struct config_item *);
-extern void config_item_put(struct config_item *);
-
-struct config_item_type {
- struct module *ct_owner;
- struct configfs_item_operations *ct_item_ops;
- struct configfs_group_operations *ct_group_ops;
- struct configfs_attribute **ct_attrs;
-};
-
-/**
- * group - a group of config_items of a specific type, belonging
- * to a specific subsystem.
- */
-struct config_group {
- struct config_item cg_item;
- struct list_head cg_children;
- struct configfs_subsystem *cg_subsys;
- struct config_group **default_groups;
-};
-
-extern void config_group_init(struct config_group *group);
-extern void config_group_init_type_name(struct config_group *group,
- const char *name,
- struct config_item_type *type);
-
-static inline struct config_group *to_config_group(struct config_item *item)
-{
- return item ? container_of(item,struct config_group,cg_item) : NULL;
-}
-
-static inline struct config_group *config_group_get(struct config_group *group)
-{
- return group ? to_config_group(config_item_get(&group->cg_item)) : NULL;
-}
-
-static inline void config_group_put(struct config_group *group)
-{
- config_item_put(&group->cg_item);
-}
-
-extern struct config_item *config_group_find_item(struct config_group *,
- const char *);
-
-
-struct configfs_attribute {
- const char *ca_name;
- struct module *ca_owner;
- umode_t ca_mode;
-};
-
-/*
- * Users often need to create attribute structures for their configurable
- * attributes, containing a configfs_attribute member and function pointers
- * for the show() and store() operations on that attribute. If they don't
- * need anything else on the extended attribute structure, they can use
- * this macro to define it The argument _item is the name of the
- * config_item structure.
- */
-#define CONFIGFS_ATTR_STRUCT(_item) \
-struct _item##_attribute { \
- struct configfs_attribute attr; \
- ssize_t (*show)(struct _item *, char *); \
- ssize_t (*store)(struct _item *, const char *, size_t); \
-}
-
-/*
- * With the extended attribute structure, users can use this macro
- * (similar to sysfs' __ATTR) to make defining attributes easier.
- * An example:
- * #define MYITEM_ATTR(_name, _mode, _show, _store) \
- * struct myitem_attribute childless_attr_##_name = \
- * __CONFIGFS_ATTR(_name, _mode, _show, _store)
- */
-#define __CONFIGFS_ATTR(_name, _mode, _show, _store) \
-{ \
- .attr = { \
- .ca_name = __stringify(_name), \
- .ca_mode = _mode, \
- .ca_owner = THIS_MODULE, \
- }, \
- .show = _show, \
- .store = _store, \
-}
-/* Here is a readonly version, only requiring a show() operation */
-#define __CONFIGFS_ATTR_RO(_name, _show) \
-{ \
- .attr = { \
- .ca_name = __stringify(_name), \
- .ca_mode = 0444, \
- .ca_owner = THIS_MODULE, \
- }, \
- .show = _show, \
-}
-
-/*
- * With these extended attributes, the simple show_attribute() and
- * store_attribute() operations need to call the show() and store() of the
- * attributes. This is a common pattern, so we provide a macro to define
- * them. The argument _item is the name of the config_item structure.
- * This macro expects the attributes to be named "struct <name>_attribute"
- * and the function to_<name>() to exist;
- */
-#define CONFIGFS_ATTR_OPS(_item) \
-static ssize_t _item##_attr_show(struct config_item *item, \
- struct configfs_attribute *attr, \
- char *page) \
-{ \
- struct _item *_item = to_##_item(item); \
- struct _item##_attribute *_item##_attr = \
- container_of(attr, struct _item##_attribute, attr); \
- ssize_t ret = 0; \
- \
- if (_item##_attr->show) \
- ret = _item##_attr->show(_item, page); \
- return ret; \
-} \
-static ssize_t _item##_attr_store(struct config_item *item, \
- struct configfs_attribute *attr, \
- const char *page, size_t count) \
-{ \
- struct _item *_item = to_##_item(item); \
- struct _item##_attribute *_item##_attr = \
- container_of(attr, struct _item##_attribute, attr); \
- ssize_t ret = -EINVAL; \
- \
- if (_item##_attr->store) \
- ret = _item##_attr->store(_item, page, count); \
- return ret; \
-}
-
-/*
- * If allow_link() exists, the item can symlink(2) out to other
- * items. If the item is a group, it may support mkdir(2).
- * Groups supply one of make_group() and make_item(). If the
- * group supports make_group(), one can create group children. If it
- * supports make_item(), one can create config_item children. make_group()
- * and make_item() return ERR_PTR() on errors. If it has
- * default_groups on group->default_groups, it has automatically created
- * group children. default_groups may coexist alongsize make_group() or
- * make_item(), but if the group wishes to have only default_groups
- * children (disallowing mkdir(2)), it need not provide either function.
- * If the group has commit(), it supports pending and committed (active)
- * items.
- */
-struct configfs_item_operations {
- void (*release)(struct config_item *);
- ssize_t (*show_attribute)(struct config_item *, struct configfs_attribute *,char *);
- ssize_t (*store_attribute)(struct config_item *,struct configfs_attribute *,const char *, size_t);
- int (*allow_link)(struct config_item *src, struct config_item *target);
- int (*drop_link)(struct config_item *src, struct config_item *target);
-};
-
-struct configfs_group_operations {
- struct config_item *(*make_item)(struct config_group *group, const char *name);
- struct config_group *(*make_group)(struct config_group *group, const char *name);
- int (*commit_item)(struct config_item *item);
- void (*disconnect_notify)(struct config_group *group, struct config_item *item);
- void (*drop_item)(struct config_group *group, struct config_item *item);
-};
-
-struct configfs_subsystem {
- struct config_group su_group;
- struct mutex su_mutex;
-};
-
-static inline struct configfs_subsystem *to_configfs_subsystem(struct config_group *group)
-{
- return group ?
- container_of(group, struct configfs_subsystem, su_group) :
- NULL;
-}
-
-int configfs_register_subsystem(struct configfs_subsystem *subsys);
-void configfs_unregister_subsystem(struct configfs_subsystem *subsys);
-
-/* These functions can sleep and can alloc with GFP_KERNEL */
-/* WARNING: These cannot be called underneath configfs callbacks!! */
-int configfs_depend_item(struct configfs_subsystem *subsys, struct config_item *target);
-void configfs_undepend_item(struct configfs_subsystem *subsys, struct config_item *target);
-
-#endif /* _CONFIGFS_H_ */
diff --git a/ANDROID_3.4.5/include/linux/connector.h b/ANDROID_3.4.5/include/linux/connector.h
deleted file mode 100644
index 76384074..00000000
--- a/ANDROID_3.4.5/include/linux/connector.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * connector.h
- *
- * 2004-2005 Copyright (c) Evgeniy Polyakov <zbr@ioremap.net>
- * 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
- */
-
-#ifndef __CONNECTOR_H
-#define __CONNECTOR_H
-
-#include <linux/types.h>
-
-/*
- * Process Events connector unique ids -- used for message routing
- */
-#define CN_IDX_PROC 0x1
-#define CN_VAL_PROC 0x1
-#define CN_IDX_CIFS 0x2
-#define CN_VAL_CIFS 0x1
-#define CN_W1_IDX 0x3 /* w1 communication */
-#define CN_W1_VAL 0x1
-#define CN_IDX_V86D 0x4
-#define CN_VAL_V86D_UVESAFB 0x1
-#define CN_IDX_BB 0x5 /* BlackBoard, from the TSP GPL sampling framework */
-#define CN_DST_IDX 0x6
-#define CN_DST_VAL 0x1
-#define CN_IDX_DM 0x7 /* Device Mapper */
-#define CN_VAL_DM_USERSPACE_LOG 0x1
-#define CN_IDX_DRBD 0x8
-#define CN_VAL_DRBD 0x1
-#define CN_KVP_IDX 0x9 /* HyperV KVP */
-#define CN_KVP_VAL 0x1 /* queries from the kernel */
-
-#define CN_NETLINK_USERS 10 /* Highest index + 1 */
-
-/*
- * Maximum connector's message size.
- */
-#define CONNECTOR_MAX_MSG_SIZE 16384
-
-/*
- * idx and val are unique identifiers which
- * are used for message routing and
- * must be registered in connector.h for in-kernel usage.
- */
-
-struct cb_id {
- __u32 idx;
- __u32 val;
-};
-
-struct cn_msg {
- struct cb_id id;
-
- __u32 seq;
- __u32 ack;
-
- __u16 len; /* Length of the following data */
- __u16 flags;
- __u8 data[0];
-};
-
-#ifdef __KERNEL__
-
-#include <linux/atomic.h>
-
-#include <linux/list.h>
-#include <linux/workqueue.h>
-
-#include <net/sock.h>
-
-#define CN_CBQ_NAMELEN 32
-
-struct cn_queue_dev {
- atomic_t refcnt;
- unsigned char name[CN_CBQ_NAMELEN];
-
- struct list_head queue_list;
- spinlock_t queue_lock;
-
- struct sock *nls;
-};
-
-struct cn_callback_id {
- unsigned char name[CN_CBQ_NAMELEN];
- struct cb_id id;
-};
-
-struct cn_callback_entry {
- struct list_head callback_entry;
- atomic_t refcnt;
- struct cn_queue_dev *pdev;
-
- struct cn_callback_id id;
- void (*callback) (struct cn_msg *, struct netlink_skb_parms *);
-
- u32 seq, group;
-};
-
-struct cn_dev {
- struct cb_id id;
-
- u32 seq, groups;
- struct sock *nls;
- void (*input) (struct sk_buff *skb);
-
- struct cn_queue_dev *cbdev;
-};
-
-int cn_add_callback(struct cb_id *id, const char *name,
- void (*callback)(struct cn_msg *, struct netlink_skb_parms *));
-void cn_del_callback(struct cb_id *);
-int cn_netlink_send(struct cn_msg *, u32, gfp_t);
-
-int cn_queue_add_callback(struct cn_queue_dev *dev, const char *name,
- struct cb_id *id,
- void (*callback)(struct cn_msg *, struct netlink_skb_parms *));
-void cn_queue_del_callback(struct cn_queue_dev *dev, struct cb_id *id);
-void cn_queue_release_callback(struct cn_callback_entry *);
-
-struct cn_queue_dev *cn_queue_alloc_dev(const char *name, struct sock *);
-void cn_queue_free_dev(struct cn_queue_dev *dev);
-
-int cn_cb_equal(struct cb_id *, struct cb_id *);
-
-#endif /* __KERNEL__ */
-#endif /* __CONNECTOR_H */
diff --git a/ANDROID_3.4.5/include/linux/console.h b/ANDROID_3.4.5/include/linux/console.h
deleted file mode 100644
index 7201ce42..00000000
--- a/ANDROID_3.4.5/include/linux/console.h
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * linux/include/linux/console.h
- *
- * Copyright (C) 1993 Hamish Macdonald
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file COPYING in the main directory of this archive
- * for more details.
- *
- * Changed:
- * 10-Mar-94: Arno Griffioen: Conversion for vt100 emulator port from PC LINUX
- */
-
-#ifndef _LINUX_CONSOLE_H_
-#define _LINUX_CONSOLE_H_ 1
-
-#include <linux/types.h>
-
-struct vc_data;
-struct console_font_op;
-struct console_font;
-struct module;
-struct tty_struct;
-
-/*
- * this is what the terminal answers to a ESC-Z or csi0c query.
- */
-#define VT100ID "\033[?1;2c"
-#define VT102ID "\033[?6c"
-
-struct consw {
- struct module *owner;
- const char *(*con_startup)(void);
- void (*con_init)(struct vc_data *, int);
- void (*con_deinit)(struct vc_data *);
- void (*con_clear)(struct vc_data *, int, int, int, int);
- void (*con_putc)(struct vc_data *, int, int, int);
- void (*con_putcs)(struct vc_data *, const unsigned short *, int, int, int);
- void (*con_cursor)(struct vc_data *, int);
- int (*con_scroll)(struct vc_data *, int, int, int, int);
- void (*con_bmove)(struct vc_data *, int, int, int, int, int, int);
- int (*con_switch)(struct vc_data *);
- int (*con_blank)(struct vc_data *, int, int);
- int (*con_font_set)(struct vc_data *, struct console_font *, unsigned);
- int (*con_font_get)(struct vc_data *, struct console_font *);
- int (*con_font_default)(struct vc_data *, struct console_font *, char *);
- int (*con_font_copy)(struct vc_data *, int);
- int (*con_resize)(struct vc_data *, unsigned int, unsigned int,
- unsigned int);
- int (*con_set_palette)(struct vc_data *, unsigned char *);
- int (*con_scrolldelta)(struct vc_data *, int);
- int (*con_set_origin)(struct vc_data *);
- void (*con_save_screen)(struct vc_data *);
- u8 (*con_build_attr)(struct vc_data *, u8, u8, u8, u8, u8, u8);
- void (*con_invert_region)(struct vc_data *, u16 *, int);
- u16 *(*con_screen_pos)(struct vc_data *, int);
- unsigned long (*con_getxy)(struct vc_data *, unsigned long, int *, int *);
- /*
- * Prepare the console for the debugger. This includes, but is not
- * limited to, unblanking the console, loading an appropriate
- * palette, and allowing debugger generated output.
- */
- int (*con_debug_enter)(struct vc_data *);
- /*
- * Restore the console to its pre-debug state as closely as possible.
- */
- int (*con_debug_leave)(struct vc_data *);
-};
-
-extern const struct consw *conswitchp;
-
-extern const struct consw dummy_con; /* dummy console buffer */
-extern const struct consw vga_con; /* VGA text console */
-extern const struct consw newport_con; /* SGI Newport console */
-extern const struct consw prom_con; /* SPARC PROM console */
-
-int con_is_bound(const struct consw *csw);
-int register_con_driver(const struct consw *csw, int first, int last);
-int unregister_con_driver(const struct consw *csw);
-int take_over_console(const struct consw *sw, int first, int last, int deflt);
-void give_up_console(const struct consw *sw);
-#ifdef CONFIG_HW_CONSOLE
-int con_debug_enter(struct vc_data *vc);
-int con_debug_leave(void);
-#else
-#define con_debug_enter(vc) (0)
-#define con_debug_leave() (0)
-#endif
-
-/* scroll */
-#define SM_UP (1)
-#define SM_DOWN (2)
-
-/* cursor */
-#define CM_DRAW (1)
-#define CM_ERASE (2)
-#define CM_MOVE (3)
-
-/*
- * The interface for a console, or any other device that wants to capture
- * console messages (printer driver?)
- *
- * If a console driver is marked CON_BOOT then it will be auto-unregistered
- * when the first real console is registered. This is for early-printk drivers.
- */
-
-#define CON_PRINTBUFFER (1)
-#define CON_CONSDEV (2) /* Last on the command line */
-#define CON_ENABLED (4)
-#define CON_BOOT (8)
-#define CON_ANYTIME (16) /* Safe to call when cpu is offline */
-#define CON_BRL (32) /* Used for a braille device */
-
-struct console {
- char name[16];
- void (*write)(struct console *, const char *, unsigned);
- int (*read)(struct console *, char *, unsigned);
- struct tty_driver *(*device)(struct console *, int *);
- void (*unblank)(void);
- int (*setup)(struct console *, char *);
- int (*early_setup)(void);
- short flags;
- short index;
- int cflag;
- void *data;
- struct console *next;
-};
-
-/*
- * for_each_console() allows you to iterate on each console
- */
-#define for_each_console(con) \
- for (con = console_drivers; con != NULL; con = con->next)
-
-extern int console_set_on_cmdline;
-
-extern int add_preferred_console(char *name, int idx, char *options);
-extern int update_console_cmdline(char *name, int idx, char *name_new, int idx_new, char *options);
-extern void register_console(struct console *);
-extern int unregister_console(struct console *);
-extern struct console *console_drivers;
-extern void console_lock(void);
-extern int console_trylock(void);
-extern void console_unlock(void);
-extern void console_conditional_schedule(void);
-extern void console_unblank(void);
-extern struct tty_driver *console_device(int *);
-extern void console_stop(struct console *);
-extern void console_start(struct console *);
-extern int is_console_locked(void);
-extern int braille_register_console(struct console *, int index,
- char *console_options, char *braille_options);
-extern int braille_unregister_console(struct console *);
-extern void console_sysfs_notify(void);
-extern bool console_suspend_enabled;
-
-/* Suspend and resume console messages over PM events */
-extern void suspend_console(void);
-extern void resume_console(void);
-
-int mda_console_init(void);
-void prom_con_init(void);
-
-void vcs_make_sysfs(int index);
-void vcs_remove_sysfs(int index);
-
-/* Some debug stub to catch some of the obvious races in the VT code */
-#if 1
-#define WARN_CONSOLE_UNLOCKED() WARN_ON(!is_console_locked() && !oops_in_progress)
-#else
-#define WARN_CONSOLE_UNLOCKED()
-#endif
-
-/* VESA Blanking Levels */
-#define VESA_NO_BLANKING 0
-#define VESA_VSYNC_SUSPEND 1
-#define VESA_HSYNC_SUSPEND 2
-#define VESA_POWERDOWN 3
-
-#ifdef CONFIG_VGA_CONSOLE
-extern bool vgacon_text_force(void);
-#endif
-
-#endif /* _LINUX_CONSOLE_H */
diff --git a/ANDROID_3.4.5/include/linux/console_struct.h b/ANDROID_3.4.5/include/linux/console_struct.h
deleted file mode 100644
index 7f0c3290..00000000
--- a/ANDROID_3.4.5/include/linux/console_struct.h
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * console_struct.h
- *
- * Data structure describing single virtual console except for data
- * used by vt.c.
- *
- * Fields marked with [#] must be set by the low-level driver.
- * Fields marked with [!] can be changed by the low-level driver
- * to achieve effects such as fast scrolling by changing the origin.
- */
-
-#ifndef _LINUX_CONSOLE_STRUCT_H
-#define _LINUX_CONSOLE_STRUCT_H
-
-#include <linux/wait.h>
-#include <linux/vt.h>
-#include <linux/workqueue.h>
-
-struct vt_struct;
-
-#define NPAR 16
-
-struct vc_data {
- struct tty_port port; /* Upper level data */
-
- unsigned short vc_num; /* Console number */
- unsigned int vc_cols; /* [#] Console size */
- unsigned int vc_rows;
- unsigned int vc_size_row; /* Bytes per row */
- unsigned int vc_scan_lines; /* # of scan lines */
- unsigned long vc_origin; /* [!] Start of real screen */
- unsigned long vc_scr_end; /* [!] End of real screen */
- unsigned long vc_visible_origin; /* [!] Top of visible window */
- unsigned int vc_top, vc_bottom; /* Scrolling region */
- const struct consw *vc_sw;
- unsigned short *vc_screenbuf; /* In-memory character/attribute buffer */
- unsigned int vc_screenbuf_size;
- unsigned char vc_mode; /* KD_TEXT, ... */
- /* attributes for all characters on screen */
- unsigned char vc_attr; /* Current attributes */
- unsigned char vc_def_color; /* Default colors */
- unsigned char vc_color; /* Foreground & background */
- unsigned char vc_s_color; /* Saved foreground & background */
- unsigned char vc_ulcolor; /* Color for underline mode */
- unsigned char vc_itcolor;
- unsigned char vc_halfcolor; /* Color for half intensity mode */
- /* cursor */
- unsigned int vc_cursor_type;
- unsigned short vc_complement_mask; /* [#] Xor mask for mouse pointer */
- unsigned short vc_s_complement_mask; /* Saved mouse pointer mask */
- unsigned int vc_x, vc_y; /* Cursor position */
- unsigned int vc_saved_x, vc_saved_y;
- unsigned long vc_pos; /* Cursor address */
- /* fonts */
- unsigned short vc_hi_font_mask; /* [#] Attribute set for upper 256 chars of font or 0 if not supported */
- struct console_font vc_font; /* Current VC font set */
- unsigned short vc_video_erase_char; /* Background erase character */
- /* VT terminal data */
- unsigned int vc_state; /* Escape sequence parser state */
- unsigned int vc_npar,vc_par[NPAR]; /* Parameters of current escape sequence */
- /* data for manual vt switching */
- struct vt_mode vt_mode;
- struct pid *vt_pid;
- int vt_newvt;
- wait_queue_head_t paste_wait;
- /* mode flags */
- unsigned int vc_charset : 1; /* Character set G0 / G1 */
- unsigned int vc_s_charset : 1; /* Saved character set */
- unsigned int vc_disp_ctrl : 1; /* Display chars < 32? */
- unsigned int vc_toggle_meta : 1; /* Toggle high bit? */
- unsigned int vc_decscnm : 1; /* Screen Mode */
- unsigned int vc_decom : 1; /* Origin Mode */
- unsigned int vc_decawm : 1; /* Autowrap Mode */
- unsigned int vc_deccm : 1; /* Cursor Visible */
- unsigned int vc_decim : 1; /* Insert Mode */
- unsigned int vc_deccolm : 1; /* 80/132 Column Mode */
- /* attribute flags */
- unsigned int vc_intensity : 2; /* 0=half-bright, 1=normal, 2=bold */
- unsigned int vc_italic:1;
- unsigned int vc_underline : 1;
- unsigned int vc_blink : 1;
- unsigned int vc_reverse : 1;
- unsigned int vc_s_intensity : 2; /* saved rendition */
- unsigned int vc_s_italic:1;
- unsigned int vc_s_underline : 1;
- unsigned int vc_s_blink : 1;
- unsigned int vc_s_reverse : 1;
- /* misc */
- unsigned int vc_ques : 1;
- unsigned int vc_need_wrap : 1;
- unsigned int vc_can_do_color : 1;
- unsigned int vc_report_mouse : 2;
- unsigned char vc_utf : 1; /* Unicode UTF-8 encoding */
- unsigned char vc_utf_count;
- int vc_utf_char;
- unsigned int vc_tab_stop[8]; /* Tab stops. 256 columns. */
- unsigned char vc_palette[16*3]; /* Colour palette for VGA+ */
- unsigned short * vc_translate;
- unsigned char vc_G0_charset;
- unsigned char vc_G1_charset;
- unsigned char vc_saved_G0;
- unsigned char vc_saved_G1;
- unsigned int vc_resize_user; /* resize request from user */
- unsigned int vc_bell_pitch; /* Console bell pitch */
- unsigned int vc_bell_duration; /* Console bell duration */
- struct vc_data **vc_display_fg; /* [!] Ptr to var holding fg console for this display */
- unsigned long vc_uni_pagedir;
- unsigned long *vc_uni_pagedir_loc; /* [!] Location of uni_pagedir variable for this console */
- bool vc_panic_force_write; /* when oops/panic this VC can accept forced output/blanking */
- /* additional information is in vt_kern.h */
-};
-
-struct vc {
- struct vc_data *d;
- struct work_struct SAK_work;
-
- /* might add scrmem, vt_struct, kbd at some time,
- to have everything in one place - the disadvantage
- would be that vc_cons etc can no longer be static */
-};
-
-extern struct vc vc_cons [MAX_NR_CONSOLES];
-extern void vc_SAK(struct work_struct *work);
-
-#define CUR_DEF 0
-#define CUR_NONE 1
-#define CUR_UNDERLINE 2
-#define CUR_LOWER_THIRD 3
-#define CUR_LOWER_HALF 4
-#define CUR_TWO_THIRDS 5
-#define CUR_BLOCK 6
-#define CUR_HWMASK 0x0f
-#define CUR_SWMASK 0xfff0
-
-#define CUR_DEFAULT CUR_UNDERLINE
-
-#define CON_IS_VISIBLE(conp) (*conp->vc_display_fg == conp)
-
-#endif /* _LINUX_CONSOLE_STRUCT_H */
diff --git a/ANDROID_3.4.5/include/linux/consolemap.h b/ANDROID_3.4.5/include/linux/consolemap.h
deleted file mode 100644
index c4811da1..00000000
--- a/ANDROID_3.4.5/include/linux/consolemap.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * consolemap.h
- *
- * Interface between console.c, selection.c and consolemap.c
- */
-#ifndef __LINUX_CONSOLEMAP_H__
-#define __LINUX_CONSOLEMAP_H__
-
-#define LAT1_MAP 0
-#define GRAF_MAP 1
-#define IBMPC_MAP 2
-#define USER_MAP 3
-
-#include <linux/types.h>
-
-#ifdef CONFIG_CONSOLE_TRANSLATIONS
-struct vc_data;
-
-extern u16 inverse_translate(struct vc_data *conp, int glyph, int use_unicode);
-extern unsigned short *set_translate(int m, struct vc_data *vc);
-extern int conv_uni_to_pc(struct vc_data *conp, long ucs);
-extern u32 conv_8bit_to_uni(unsigned char c);
-extern int conv_uni_to_8bit(u32 uni);
-void console_map_init(void);
-#else
-#define inverse_translate(conp, glyph, uni) ((uint16_t)glyph)
-#define set_translate(m, vc) ((unsigned short *)NULL)
-#define conv_uni_to_pc(conp, ucs) ((int) (ucs > 0xff ? -1: ucs))
-#define conv_8bit_to_uni(c) ((uint32_t)(c))
-#define conv_uni_to_8bit(c) ((int) ((c) & 0xff))
-#define console_map_init(c) do { ; } while (0)
-#endif /* CONFIG_CONSOLE_TRANSLATIONS */
-
-#endif /* __LINUX_CONSOLEMAP_H__ */
diff --git a/ANDROID_3.4.5/include/linux/const.h b/ANDROID_3.4.5/include/linux/const.h
deleted file mode 100644
index c22c707c..00000000
--- a/ANDROID_3.4.5/include/linux/const.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* const.h: Macros for dealing with constants. */
-
-#ifndef _LINUX_CONST_H
-#define _LINUX_CONST_H
-
-/* Some constant macros are used in both assembler and
- * C code. Therefore we cannot annotate them always with
- * 'UL' and other type specifiers unilaterally. We
- * use the following macros to deal with this.
- *
- * Similarly, _AT() will cast an expression with a type in C, but
- * leave it unchanged in asm.
- */
-
-#ifdef __ASSEMBLY__
-#define _AC(X,Y) X
-#define _AT(T,X) X
-#else
-#define __AC(X,Y) (X##Y)
-#define _AC(X,Y) __AC(X,Y)
-#define _AT(T,X) ((T)(X))
-#endif
-
-#endif /* !(_LINUX_CONST_H) */
diff --git a/ANDROID_3.4.5/include/linux/cordic.h b/ANDROID_3.4.5/include/linux/cordic.h
deleted file mode 100644
index cf68ca4a..00000000
--- a/ANDROID_3.4.5/include/linux/cordic.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2011 Broadcom Corporation
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
- * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
- * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-#ifndef __CORDIC_H_
-#define __CORDIC_H_
-
-#include <linux/types.h>
-
-/**
- * struct cordic_iq - i/q coordinate.
- *
- * @i: real part of coordinate (in phase).
- * @q: imaginary part of coordinate (quadrature).
- */
-struct cordic_iq {
- s32 i;
- s32 q;
-};
-
-/**
- * cordic_calc_iq() - calculates the i/q coordinate for given angle.
- *
- * @theta: angle in degrees for which i/q coordinate is to be calculated.
- * @coord: function output parameter holding the i/q coordinate.
- *
- * The function calculates the i/q coordinate for a given angle using the
- * CORDIC algorithm. The coordinate consists of a real (i) and an
- * imaginary (q) part. The real part is essentially the cosine of the
- * angle and the imaginary part is the sine of the angle. The returned
- * values are scaled by 2^16 for precision. The range for theta is
- * for -180 degrees to +180 degrees. Passed values outside this range are
- * converted before doing the actual calculation.
- */
-struct cordic_iq cordic_calc_iq(s32 theta);
-
-#endif /* __CORDIC_H_ */
diff --git a/ANDROID_3.4.5/include/linux/coredump.h b/ANDROID_3.4.5/include/linux/coredump.h
deleted file mode 100644
index ba4b85a6..00000000
--- a/ANDROID_3.4.5/include/linux/coredump.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef _LINUX_COREDUMP_H
-#define _LINUX_COREDUMP_H
-
-#include <linux/types.h>
-#include <linux/mm.h>
-#include <linux/fs.h>
-
-/*
- * These are the only things you should do on a core-file: use only these
- * functions to write out all the necessary info.
- */
-extern int dump_write(struct file *file, const void *addr, int nr);
-extern int dump_seek(struct file *file, loff_t off);
-
-#endif /* _LINUX_COREDUMP_H */
diff --git a/ANDROID_3.4.5/include/linux/cper.h b/ANDROID_3.4.5/include/linux/cper.h
deleted file mode 100644
index c2304949..00000000
--- a/ANDROID_3.4.5/include/linux/cper.h
+++ /dev/null
@@ -1,394 +0,0 @@
-/*
- * UEFI Common Platform Error Record
- *
- * Copyright (C) 2010, Intel Corp.
- * Author: Huang Ying <ying.huang@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.
- *
- * 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
- */
-
-#ifndef LINUX_CPER_H
-#define LINUX_CPER_H
-
-#include <linux/uuid.h>
-
-/* CPER record signature and the size */
-#define CPER_SIG_RECORD "CPER"
-#define CPER_SIG_SIZE 4
-/* Used in signature_end field in struct cper_record_header */
-#define CPER_SIG_END 0xffffffff
-
-/*
- * CPER record header revision, used in revision field in struct
- * cper_record_header
- */
-#define CPER_RECORD_REV 0x0100
-
-/*
- * Severity difinition for error_severity in struct cper_record_header
- * and section_severity in struct cper_section_descriptor
- */
-enum {
- CPER_SEV_RECOVERABLE,
- CPER_SEV_FATAL,
- CPER_SEV_CORRECTED,
- CPER_SEV_INFORMATIONAL,
-};
-
-/*
- * Validation bits difinition for validation_bits in struct
- * cper_record_header. If set, corresponding fields in struct
- * cper_record_header contain valid information.
- *
- * corresponds platform_id
- */
-#define CPER_VALID_PLATFORM_ID 0x0001
-/* corresponds timestamp */
-#define CPER_VALID_TIMESTAMP 0x0002
-/* corresponds partition_id */
-#define CPER_VALID_PARTITION_ID 0x0004
-
-/*
- * Notification type used to generate error record, used in
- * notification_type in struct cper_record_header
- *
- * Corrected Machine Check
- */
-#define CPER_NOTIFY_CMC \
- UUID_LE(0x2DCE8BB1, 0xBDD7, 0x450e, 0xB9, 0xAD, 0x9C, 0xF4, \
- 0xEB, 0xD4, 0xF8, 0x90)
-/* Corrected Platform Error */
-#define CPER_NOTIFY_CPE \
- UUID_LE(0x4E292F96, 0xD843, 0x4a55, 0xA8, 0xC2, 0xD4, 0x81, \
- 0xF2, 0x7E, 0xBE, 0xEE)
-/* Machine Check Exception */
-#define CPER_NOTIFY_MCE \
- UUID_LE(0xE8F56FFE, 0x919C, 0x4cc5, 0xBA, 0x88, 0x65, 0xAB, \
- 0xE1, 0x49, 0x13, 0xBB)
-/* PCI Express Error */
-#define CPER_NOTIFY_PCIE \
- UUID_LE(0xCF93C01F, 0x1A16, 0x4dfc, 0xB8, 0xBC, 0x9C, 0x4D, \
- 0xAF, 0x67, 0xC1, 0x04)
-/* INIT Record (for IPF) */
-#define CPER_NOTIFY_INIT \
- UUID_LE(0xCC5263E8, 0x9308, 0x454a, 0x89, 0xD0, 0x34, 0x0B, \
- 0xD3, 0x9B, 0xC9, 0x8E)
-/* Non-Maskable Interrupt */
-#define CPER_NOTIFY_NMI \
- UUID_LE(0x5BAD89FF, 0xB7E6, 0x42c9, 0x81, 0x4A, 0xCF, 0x24, \
- 0x85, 0xD6, 0xE9, 0x8A)
-/* BOOT Error Record */
-#define CPER_NOTIFY_BOOT \
- UUID_LE(0x3D61A466, 0xAB40, 0x409a, 0xA6, 0x98, 0xF3, 0x62, \
- 0xD4, 0x64, 0xB3, 0x8F)
-/* DMA Remapping Error */
-#define CPER_NOTIFY_DMAR \
- UUID_LE(0x667DD791, 0xC6B3, 0x4c27, 0x8A, 0x6B, 0x0F, 0x8E, \
- 0x72, 0x2D, 0xEB, 0x41)
-
-/*
- * Flags bits definitions for flags in struct cper_record_header
- * If set, the error has been recovered
- */
-#define CPER_HW_ERROR_FLAGS_RECOVERED 0x1
-/* If set, the error is for previous boot */
-#define CPER_HW_ERROR_FLAGS_PREVERR 0x2
-/* If set, the error is injected for testing */
-#define CPER_HW_ERROR_FLAGS_SIMULATED 0x4
-
-/*
- * CPER section header revision, used in revision field in struct
- * cper_section_descriptor
- */
-#define CPER_SEC_REV 0x0100
-
-/*
- * Validation bits difinition for validation_bits in struct
- * cper_section_descriptor. If set, corresponding fields in struct
- * cper_section_descriptor contain valid information.
- *
- * corresponds fru_id
- */
-#define CPER_SEC_VALID_FRU_ID 0x1
-/* corresponds fru_text */
-#define CPER_SEC_VALID_FRU_TEXT 0x2
-
-/*
- * Flags bits definitions for flags in struct cper_section_descriptor
- *
- * If set, the section is associated with the error condition
- * directly, and should be focused on
- */
-#define CPER_SEC_PRIMARY 0x0001
-/*
- * If set, the error was not contained within the processor or memory
- * hierarchy and the error may have propagated to persistent storage
- * or network
- */
-#define CPER_SEC_CONTAINMENT_WARNING 0x0002
-/* If set, the component must be re-initialized or re-enabled prior to use */
-#define CPER_SEC_RESET 0x0004
-/* If set, Linux may choose to discontinue use of the resource */
-#define CPER_SEC_ERROR_THRESHOLD_EXCEEDED 0x0008
-/*
- * If set, resource could not be queried for error information due to
- * conflicts with other system software or resources. Some fields of
- * the section will be invalid
- */
-#define CPER_SEC_RESOURCE_NOT_ACCESSIBLE 0x0010
-/*
- * If set, action has been taken to ensure error containment (such as
- * poisoning data), but the error has not been fully corrected and the
- * data has not been consumed. Linux may choose to take further
- * corrective action before the data is consumed
- */
-#define CPER_SEC_LATENT_ERROR 0x0020
-
-/*
- * Section type definitions, used in section_type field in struct
- * cper_section_descriptor
- *
- * Processor Generic
- */
-#define CPER_SEC_PROC_GENERIC \
- UUID_LE(0x9876CCAD, 0x47B4, 0x4bdb, 0xB6, 0x5E, 0x16, 0xF1, \
- 0x93, 0xC4, 0xF3, 0xDB)
-/* Processor Specific: X86/X86_64 */
-#define CPER_SEC_PROC_IA \
- UUID_LE(0xDC3EA0B0, 0xA144, 0x4797, 0xB9, 0x5B, 0x53, 0xFA, \
- 0x24, 0x2B, 0x6E, 0x1D)
-/* Processor Specific: IA64 */
-#define CPER_SEC_PROC_IPF \
- UUID_LE(0xE429FAF1, 0x3CB7, 0x11D4, 0x0B, 0xCA, 0x07, 0x00, \
- 0x80, 0xC7, 0x3C, 0x88, 0x81)
-/* Platform Memory */
-#define CPER_SEC_PLATFORM_MEM \
- UUID_LE(0xA5BC1114, 0x6F64, 0x4EDE, 0xB8, 0x63, 0x3E, 0x83, \
- 0xED, 0x7C, 0x83, 0xB1)
-#define CPER_SEC_PCIE \
- UUID_LE(0xD995E954, 0xBBC1, 0x430F, 0xAD, 0x91, 0xB4, 0x4D, \
- 0xCB, 0x3C, 0x6F, 0x35)
-/* Firmware Error Record Reference */
-#define CPER_SEC_FW_ERR_REC_REF \
- UUID_LE(0x81212A96, 0x09ED, 0x4996, 0x94, 0x71, 0x8D, 0x72, \
- 0x9C, 0x8E, 0x69, 0xED)
-/* PCI/PCI-X Bus */
-#define CPER_SEC_PCI_X_BUS \
- UUID_LE(0xC5753963, 0x3B84, 0x4095, 0xBF, 0x78, 0xED, 0xDA, \
- 0xD3, 0xF9, 0xC9, 0xDD)
-/* PCI Component/Device */
-#define CPER_SEC_PCI_DEV \
- UUID_LE(0xEB5E4685, 0xCA66, 0x4769, 0xB6, 0xA2, 0x26, 0x06, \
- 0x8B, 0x00, 0x13, 0x26)
-#define CPER_SEC_DMAR_GENERIC \
- UUID_LE(0x5B51FEF7, 0xC79D, 0x4434, 0x8F, 0x1B, 0xAA, 0x62, \
- 0xDE, 0x3E, 0x2C, 0x64)
-/* Intel VT for Directed I/O specific DMAr */
-#define CPER_SEC_DMAR_VT \
- UUID_LE(0x71761D37, 0x32B2, 0x45cd, 0xA7, 0xD0, 0xB0, 0xFE, \
- 0xDD, 0x93, 0xE8, 0xCF)
-/* IOMMU specific DMAr */
-#define CPER_SEC_DMAR_IOMMU \
- UUID_LE(0x036F84E1, 0x7F37, 0x428c, 0xA7, 0x9E, 0x57, 0x5F, \
- 0xDF, 0xAA, 0x84, 0xEC)
-
-#define CPER_PROC_VALID_TYPE 0x0001
-#define CPER_PROC_VALID_ISA 0x0002
-#define CPER_PROC_VALID_ERROR_TYPE 0x0004
-#define CPER_PROC_VALID_OPERATION 0x0008
-#define CPER_PROC_VALID_FLAGS 0x0010
-#define CPER_PROC_VALID_LEVEL 0x0020
-#define CPER_PROC_VALID_VERSION 0x0040
-#define CPER_PROC_VALID_BRAND_INFO 0x0080
-#define CPER_PROC_VALID_ID 0x0100
-#define CPER_PROC_VALID_TARGET_ADDRESS 0x0200
-#define CPER_PROC_VALID_REQUESTOR_ID 0x0400
-#define CPER_PROC_VALID_RESPONDER_ID 0x0800
-#define CPER_PROC_VALID_IP 0x1000
-
-#define CPER_MEM_VALID_ERROR_STATUS 0x0001
-#define CPER_MEM_VALID_PHYSICAL_ADDRESS 0x0002
-#define CPER_MEM_VALID_PHYSICAL_ADDRESS_MASK 0x0004
-#define CPER_MEM_VALID_NODE 0x0008
-#define CPER_MEM_VALID_CARD 0x0010
-#define CPER_MEM_VALID_MODULE 0x0020
-#define CPER_MEM_VALID_BANK 0x0040
-#define CPER_MEM_VALID_DEVICE 0x0080
-#define CPER_MEM_VALID_ROW 0x0100
-#define CPER_MEM_VALID_COLUMN 0x0200
-#define CPER_MEM_VALID_BIT_POSITION 0x0400
-#define CPER_MEM_VALID_REQUESTOR_ID 0x0800
-#define CPER_MEM_VALID_RESPONDER_ID 0x1000
-#define CPER_MEM_VALID_TARGET_ID 0x2000
-#define CPER_MEM_VALID_ERROR_TYPE 0x4000
-
-#define CPER_PCIE_VALID_PORT_TYPE 0x0001
-#define CPER_PCIE_VALID_VERSION 0x0002
-#define CPER_PCIE_VALID_COMMAND_STATUS 0x0004
-#define CPER_PCIE_VALID_DEVICE_ID 0x0008
-#define CPER_PCIE_VALID_SERIAL_NUMBER 0x0010
-#define CPER_PCIE_VALID_BRIDGE_CONTROL_STATUS 0x0020
-#define CPER_PCIE_VALID_CAPABILITY 0x0040
-#define CPER_PCIE_VALID_AER_INFO 0x0080
-
-#define CPER_PCIE_SLOT_SHIFT 3
-
-/*
- * All tables and structs must be byte-packed to match CPER
- * specification, since the tables are provided by the system BIOS
- */
-#pragma pack(1)
-
-struct cper_record_header {
- char signature[CPER_SIG_SIZE]; /* must be CPER_SIG_RECORD */
- __u16 revision; /* must be CPER_RECORD_REV */
- __u32 signature_end; /* must be CPER_SIG_END */
- __u16 section_count;
- __u32 error_severity;
- __u32 validation_bits;
- __u32 record_length;
- __u64 timestamp;
- uuid_le platform_id;
- uuid_le partition_id;
- uuid_le creator_id;
- uuid_le notification_type;
- __u64 record_id;
- __u32 flags;
- __u64 persistence_information;
- __u8 reserved[12]; /* must be zero */
-};
-
-struct cper_section_descriptor {
- __u32 section_offset; /* Offset in bytes of the
- * section body from the base
- * of the record header */
- __u32 section_length;
- __u16 revision; /* must be CPER_RECORD_REV */
- __u8 validation_bits;
- __u8 reserved; /* must be zero */
- __u32 flags;
- uuid_le section_type;
- uuid_le fru_id;
- __u32 section_severity;
- __u8 fru_text[20];
-};
-
-/* Generic Processor Error Section */
-struct cper_sec_proc_generic {
- __u64 validation_bits;
- __u8 proc_type;
- __u8 proc_isa;
- __u8 proc_error_type;
- __u8 operation;
- __u8 flags;
- __u8 level;
- __u16 reserved;
- __u64 cpu_version;
- char cpu_brand[128];
- __u64 proc_id;
- __u64 target_addr;
- __u64 requestor_id;
- __u64 responder_id;
- __u64 ip;
-};
-
-/* IA32/X64 Processor Error Section */
-struct cper_sec_proc_ia {
- __u64 validation_bits;
- __u8 lapic_id;
- __u8 cpuid[48];
-};
-
-/* IA32/X64 Processor Error Information Structure */
-struct cper_ia_err_info {
- uuid_le err_type;
- __u64 validation_bits;
- __u64 check_info;
- __u64 target_id;
- __u64 requestor_id;
- __u64 responder_id;
- __u64 ip;
-};
-
-/* IA32/X64 Processor Context Information Structure */
-struct cper_ia_proc_ctx {
- __u16 reg_ctx_type;
- __u16 reg_arr_size;
- __u32 msr_addr;
- __u64 mm_reg_addr;
-};
-
-/* Memory Error Section */
-struct cper_sec_mem_err {
- __u64 validation_bits;
- __u64 error_status;
- __u64 physical_addr;
- __u64 physical_addr_mask;
- __u16 node;
- __u16 card;
- __u16 module;
- __u16 bank;
- __u16 device;
- __u16 row;
- __u16 column;
- __u16 bit_pos;
- __u64 requestor_id;
- __u64 responder_id;
- __u64 target_id;
- __u8 error_type;
-};
-
-struct cper_sec_pcie {
- __u64 validation_bits;
- __u32 port_type;
- struct {
- __u8 minor;
- __u8 major;
- __u8 reserved[2];
- } version;
- __u16 command;
- __u16 status;
- __u32 reserved;
- struct {
- __u16 vendor_id;
- __u16 device_id;
- __u8 class_code[3];
- __u8 function;
- __u8 device;
- __u16 segment;
- __u8 bus;
- __u8 secondary_bus;
- __u16 slot;
- __u8 reserved;
- } device_id;
- struct {
- __u32 lower;
- __u32 upper;
- } serial_number;
- struct {
- __u16 secondary_status;
- __u16 control;
- } bridge;
- __u8 capability[60];
- __u8 aer_info[96];
-};
-
-/* Reset to default packing */
-#pragma pack()
-
-u64 cper_next_record_id(void);
-void cper_print_bits(const char *prefix, unsigned int bits,
- const char *strs[], unsigned int strs_size);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/cpu.h b/ANDROID_3.4.5/include/linux/cpu.h
deleted file mode 100644
index 11dd01b8..00000000
--- a/ANDROID_3.4.5/include/linux/cpu.h
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- * include/linux/cpu.h - generic cpu definition
- *
- * This is mainly for topological representation. We define the
- * basic 'struct cpu' here, which can be embedded in per-arch
- * definitions of processors.
- *
- * Basic handling of the devices is done in drivers/base/cpu.c
- * and system devices are handled in drivers/base/sys.c.
- *
- * CPUs are exported via sysfs in the class/cpu/devices/
- * directory.
- */
-#ifndef _LINUX_CPU_H_
-#define _LINUX_CPU_H_
-
-#include <linux/node.h>
-#include <linux/compiler.h>
-#include <linux/cpumask.h>
-
-struct device;
-
-struct cpu {
- int node_id; /* The node which contains the CPU */
- int hotpluggable; /* creates sysfs control file if hotpluggable */
- struct device dev;
-};
-
-extern int register_cpu(struct cpu *cpu, int num);
-extern struct device *get_cpu_device(unsigned cpu);
-extern bool cpu_is_hotpluggable(unsigned cpu);
-
-extern int cpu_add_dev_attr(struct device_attribute *attr);
-extern void cpu_remove_dev_attr(struct device_attribute *attr);
-
-extern int cpu_add_dev_attr_group(struct attribute_group *attrs);
-extern void cpu_remove_dev_attr_group(struct attribute_group *attrs);
-
-extern int sched_create_sysfs_power_savings_entries(struct device *dev);
-
-#ifdef CONFIG_HOTPLUG_CPU
-extern void unregister_cpu(struct cpu *cpu);
-extern ssize_t arch_cpu_probe(const char *, size_t);
-extern ssize_t arch_cpu_release(const char *, size_t);
-#endif
-struct notifier_block;
-
-#ifdef CONFIG_ARCH_HAS_CPU_AUTOPROBE
-extern int arch_cpu_uevent(struct device *dev, struct kobj_uevent_env *env);
-extern ssize_t arch_print_cpu_modalias(struct device *dev,
- struct device_attribute *attr,
- char *bufptr);
-#endif
-
-/*
- * CPU notifier priorities.
- */
-enum {
- /*
- * SCHED_ACTIVE marks a cpu which is coming up active during
- * CPU_ONLINE and CPU_DOWN_FAILED and must be the first
- * notifier. CPUSET_ACTIVE adjusts cpuset according to
- * cpu_active mask right after SCHED_ACTIVE. During
- * CPU_DOWN_PREPARE, SCHED_INACTIVE and CPUSET_INACTIVE are
- * ordered in the similar way.
- *
- * This ordering guarantees consistent cpu_active mask and
- * migration behavior to all cpu notifiers.
- */
- CPU_PRI_SCHED_ACTIVE = INT_MAX,
- CPU_PRI_CPUSET_ACTIVE = INT_MAX - 1,
- CPU_PRI_SCHED_INACTIVE = INT_MIN + 1,
- CPU_PRI_CPUSET_INACTIVE = INT_MIN,
-
- /* migration should happen before other stuff but after perf */
- CPU_PRI_PERF = 20,
- CPU_PRI_MIGRATION = 10,
- /* prepare workqueues for other notifiers */
- CPU_PRI_WORKQUEUE = 5,
-};
-
-#define CPU_ONLINE 0x0002 /* CPU (unsigned)v is up */
-#define CPU_UP_PREPARE 0x0003 /* CPU (unsigned)v coming up */
-#define CPU_UP_CANCELED 0x0004 /* CPU (unsigned)v NOT coming up */
-#define CPU_DOWN_PREPARE 0x0005 /* CPU (unsigned)v going down */
-#define CPU_DOWN_FAILED 0x0006 /* CPU (unsigned)v NOT going down */
-#define CPU_DEAD 0x0007 /* CPU (unsigned)v dead */
-#define CPU_DYING 0x0008 /* CPU (unsigned)v not running any task,
- * not handling interrupts, soon dead.
- * Called on the dying cpu, interrupts
- * are already disabled. Must not
- * sleep, must not fail */
-#define CPU_POST_DEAD 0x0009 /* CPU (unsigned)v dead, cpu_hotplug
- * lock is dropped */
-#define CPU_STARTING 0x000A /* CPU (unsigned)v soon running.
- * Called on the new cpu, just before
- * enabling interrupts. Must not sleep,
- * must not fail */
-
-/* Used for CPU hotplug events occurring while tasks are frozen due to a suspend
- * operation in progress
- */
-#define CPU_TASKS_FROZEN 0x0010
-
-#define CPU_ONLINE_FROZEN (CPU_ONLINE | CPU_TASKS_FROZEN)
-#define CPU_UP_PREPARE_FROZEN (CPU_UP_PREPARE | CPU_TASKS_FROZEN)
-#define CPU_UP_CANCELED_FROZEN (CPU_UP_CANCELED | CPU_TASKS_FROZEN)
-#define CPU_DOWN_PREPARE_FROZEN (CPU_DOWN_PREPARE | CPU_TASKS_FROZEN)
-#define CPU_DOWN_FAILED_FROZEN (CPU_DOWN_FAILED | CPU_TASKS_FROZEN)
-#define CPU_DEAD_FROZEN (CPU_DEAD | CPU_TASKS_FROZEN)
-#define CPU_DYING_FROZEN (CPU_DYING | CPU_TASKS_FROZEN)
-#define CPU_STARTING_FROZEN (CPU_STARTING | CPU_TASKS_FROZEN)
-
-
-#ifdef CONFIG_SMP
-/* Need to know about CPUs going up/down? */
-#if defined(CONFIG_HOTPLUG_CPU) || !defined(MODULE)
-#define cpu_notifier(fn, pri) { \
- static struct notifier_block fn##_nb __cpuinitdata = \
- { .notifier_call = fn, .priority = pri }; \
- register_cpu_notifier(&fn##_nb); \
-}
-#else /* #if defined(CONFIG_HOTPLUG_CPU) || !defined(MODULE) */
-#define cpu_notifier(fn, pri) do { (void)(fn); } while (0)
-#endif /* #else #if defined(CONFIG_HOTPLUG_CPU) || !defined(MODULE) */
-#ifdef CONFIG_HOTPLUG_CPU
-extern int register_cpu_notifier(struct notifier_block *nb);
-extern void unregister_cpu_notifier(struct notifier_block *nb);
-#else
-
-#ifndef MODULE
-extern int register_cpu_notifier(struct notifier_block *nb);
-#else
-static inline int register_cpu_notifier(struct notifier_block *nb)
-{
- return 0;
-}
-#endif
-
-static inline void unregister_cpu_notifier(struct notifier_block *nb)
-{
-}
-#endif
-
-int cpu_up(unsigned int cpu);
-void notify_cpu_starting(unsigned int cpu);
-extern void cpu_maps_update_begin(void);
-extern void cpu_maps_update_done(void);
-
-#else /* CONFIG_SMP */
-
-#define cpu_notifier(fn, pri) do { (void)(fn); } while (0)
-
-static inline int register_cpu_notifier(struct notifier_block *nb)
-{
- return 0;
-}
-
-static inline void unregister_cpu_notifier(struct notifier_block *nb)
-{
-}
-
-static inline void cpu_maps_update_begin(void)
-{
-}
-
-static inline void cpu_maps_update_done(void)
-{
-}
-
-#endif /* CONFIG_SMP */
-extern struct bus_type cpu_subsys;
-
-#ifdef CONFIG_HOTPLUG_CPU
-/* Stop CPUs going up and down. */
-
-extern void get_online_cpus(void);
-extern void put_online_cpus(void);
-#define hotcpu_notifier(fn, pri) cpu_notifier(fn, pri)
-#define register_hotcpu_notifier(nb) register_cpu_notifier(nb)
-#define unregister_hotcpu_notifier(nb) unregister_cpu_notifier(nb)
-int cpu_down(unsigned int cpu);
-
-#ifdef CONFIG_ARCH_CPU_PROBE_RELEASE
-extern void cpu_hotplug_driver_lock(void);
-extern void cpu_hotplug_driver_unlock(void);
-#else
-static inline void cpu_hotplug_driver_lock(void)
-{
-}
-
-static inline void cpu_hotplug_driver_unlock(void)
-{
-}
-#endif
-
-#else /* CONFIG_HOTPLUG_CPU */
-
-#define get_online_cpus() do { } while (0)
-#define put_online_cpus() do { } while (0)
-#define hotcpu_notifier(fn, pri) do { (void)(fn); } while (0)
-/* These aren't inline functions due to a GCC bug. */
-#define register_hotcpu_notifier(nb) ({ (void)(nb); 0; })
-#define unregister_hotcpu_notifier(nb) ({ (void)(nb); })
-#endif /* CONFIG_HOTPLUG_CPU */
-
-#ifdef CONFIG_PM_SLEEP_SMP
-extern int disable_nonboot_cpus(void);
-extern void enable_nonboot_cpus(void);
-#else /* !CONFIG_PM_SLEEP_SMP */
-static inline int disable_nonboot_cpus(void) { return 0; }
-static inline void enable_nonboot_cpus(void) {}
-#endif /* !CONFIG_PM_SLEEP_SMP */
-
-#define IDLE_START 1
-#define IDLE_END 2
-
-void idle_notifier_register(struct notifier_block *n);
-void idle_notifier_unregister(struct notifier_block *n);
-void idle_notifier_call_chain(unsigned long val);
-
-#endif /* _LINUX_CPU_H_ */
diff --git a/ANDROID_3.4.5/include/linux/cpu_pm.h b/ANDROID_3.4.5/include/linux/cpu_pm.h
deleted file mode 100644
index 455b233d..00000000
--- a/ANDROID_3.4.5/include/linux/cpu_pm.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (C) 2011 Google, Inc.
- *
- * Author:
- * Colin Cross <ccross@android.com>
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#ifndef _LINUX_CPU_PM_H
-#define _LINUX_CPU_PM_H
-
-#include <linux/kernel.h>
-#include <linux/notifier.h>
-
-/*
- * When a CPU goes to a low power state that turns off power to the CPU's
- * power domain, the contents of some blocks (floating point coprocessors,
- * interrupt controllers, caches, timers) in the same power domain can
- * be lost. The cpm_pm notifiers provide a method for platform idle, suspend,
- * and hotplug implementations to notify the drivers for these blocks that
- * they may be reset.
- *
- * All cpu_pm notifications must be called with interrupts disabled.
- *
- * The notifications are split into two classes: CPU notifications and CPU
- * cluster notifications.
- *
- * CPU notifications apply to a single CPU and must be called on the affected
- * CPU. They are used to save per-cpu context for affected blocks.
- *
- * CPU cluster notifications apply to all CPUs in a single power domain. They
- * are used to save any global context for affected blocks, and must be called
- * after all the CPUs in the power domain have been notified of the low power
- * state.
- */
-
-/*
- * Event codes passed as unsigned long val to notifier calls
- */
-enum cpu_pm_event {
- /* A single cpu is entering a low power state */
- CPU_PM_ENTER,
-
- /* A single cpu failed to enter a low power state */
- CPU_PM_ENTER_FAILED,
-
- /* A single cpu is exiting a low power state */
- CPU_PM_EXIT,
-
- /* A cpu power domain is entering a low power state */
- CPU_CLUSTER_PM_ENTER,
-
- /* A cpu power domain failed to enter a low power state */
- CPU_CLUSTER_PM_ENTER_FAILED,
-
- /* A cpu power domain is exiting a low power state */
- CPU_CLUSTER_PM_EXIT,
-};
-
-#ifdef CONFIG_CPU_PM
-int cpu_pm_register_notifier(struct notifier_block *nb);
-int cpu_pm_unregister_notifier(struct notifier_block *nb);
-int cpu_pm_enter(void);
-int cpu_pm_exit(void);
-int cpu_cluster_pm_enter(void);
-int cpu_cluster_pm_exit(void);
-
-#else
-
-static inline int cpu_pm_register_notifier(struct notifier_block *nb)
-{
- return 0;
-}
-
-static inline int cpu_pm_unregister_notifier(struct notifier_block *nb)
-{
- return 0;
-}
-
-static inline int cpu_pm_enter(void)
-{
- return 0;
-}
-
-static inline int cpu_pm_exit(void)
-{
- return 0;
-}
-
-static inline int cpu_cluster_pm_enter(void)
-{
- return 0;
-}
-
-static inline int cpu_cluster_pm_exit(void)
-{
- return 0;
-}
-#endif
-#endif
diff --git a/ANDROID_3.4.5/include/linux/cpu_rmap.h b/ANDROID_3.4.5/include/linux/cpu_rmap.h
deleted file mode 100644
index 473771a5..00000000
--- a/ANDROID_3.4.5/include/linux/cpu_rmap.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * cpu_rmap.c: CPU affinity reverse-map support
- * Copyright 2011 Solarflare Communications Inc.
- *
- * 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, incorporated herein by reference.
- */
-
-#include <linux/cpumask.h>
-#include <linux/gfp.h>
-#include <linux/slab.h>
-
-/**
- * struct cpu_rmap - CPU affinity reverse-map
- * @size: Number of objects to be reverse-mapped
- * @used: Number of objects added
- * @obj: Pointer to array of object pointers
- * @near: For each CPU, the index and distance to the nearest object,
- * based on affinity masks
- */
-struct cpu_rmap {
- u16 size, used;
- void **obj;
- struct {
- u16 index;
- u16 dist;
- } near[0];
-};
-#define CPU_RMAP_DIST_INF 0xffff
-
-extern struct cpu_rmap *alloc_cpu_rmap(unsigned int size, gfp_t flags);
-
-/**
- * free_cpu_rmap - free CPU affinity reverse-map
- * @rmap: Reverse-map allocated with alloc_cpu_rmap(), or %NULL
- */
-static inline void free_cpu_rmap(struct cpu_rmap *rmap)
-{
- kfree(rmap);
-}
-
-extern int cpu_rmap_add(struct cpu_rmap *rmap, void *obj);
-extern int cpu_rmap_update(struct cpu_rmap *rmap, u16 index,
- const struct cpumask *affinity);
-
-static inline u16 cpu_rmap_lookup_index(struct cpu_rmap *rmap, unsigned int cpu)
-{
- return rmap->near[cpu].index;
-}
-
-static inline void *cpu_rmap_lookup_obj(struct cpu_rmap *rmap, unsigned int cpu)
-{
- return rmap->obj[rmap->near[cpu].index];
-}
-
-#ifdef CONFIG_GENERIC_HARDIRQS
-
-/**
- * alloc_irq_cpu_rmap - allocate CPU affinity reverse-map for IRQs
- * @size: Number of objects to be mapped
- *
- * Must be called in process context.
- */
-static inline struct cpu_rmap *alloc_irq_cpu_rmap(unsigned int size)
-{
- return alloc_cpu_rmap(size, GFP_KERNEL);
-}
-extern void free_irq_cpu_rmap(struct cpu_rmap *rmap);
-
-extern int irq_cpu_rmap_add(struct cpu_rmap *rmap, int irq);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/cpufreq.h b/ANDROID_3.4.5/include/linux/cpufreq.h
deleted file mode 100644
index d1c3bb0e..00000000
--- a/ANDROID_3.4.5/include/linux/cpufreq.h
+++ /dev/null
@@ -1,412 +0,0 @@
-/*
- * linux/include/linux/cpufreq.h
- *
- * Copyright (C) 2001 Russell King
- * (C) 2002 - 2003 Dominik Brodowski <linux@brodo.de>
- *
- * 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.
- */
-#ifndef _LINUX_CPUFREQ_H
-#define _LINUX_CPUFREQ_H
-
-#include <linux/mutex.h>
-#include <linux/notifier.h>
-#include <linux/threads.h>
-#include <linux/kobject.h>
-#include <linux/sysfs.h>
-#include <linux/completion.h>
-#include <linux/workqueue.h>
-#include <linux/cpumask.h>
-#include <asm/div64.h>
-
-#define CPUFREQ_NAME_LEN 16
-
-
-/*********************************************************************
- * CPUFREQ NOTIFIER INTERFACE *
- *********************************************************************/
-
-#define CPUFREQ_TRANSITION_NOTIFIER (0)
-#define CPUFREQ_POLICY_NOTIFIER (1)
-
-#ifdef CONFIG_CPU_FREQ
-int cpufreq_register_notifier(struct notifier_block *nb, unsigned int list);
-int cpufreq_unregister_notifier(struct notifier_block *nb, unsigned int list);
-extern void disable_cpufreq(void);
-#else /* CONFIG_CPU_FREQ */
-static inline int cpufreq_register_notifier(struct notifier_block *nb,
- unsigned int list)
-{
- return 0;
-}
-static inline int cpufreq_unregister_notifier(struct notifier_block *nb,
- unsigned int list)
-{
- return 0;
-}
-static inline void disable_cpufreq(void) { }
-#endif /* CONFIG_CPU_FREQ */
-
-/* if (cpufreq_driver->target) exists, the ->governor decides what frequency
- * within the limits is used. If (cpufreq_driver->setpolicy> exists, these
- * two generic policies are available:
- */
-
-#define CPUFREQ_POLICY_POWERSAVE (1)
-#define CPUFREQ_POLICY_PERFORMANCE (2)
-
-/* Frequency values here are CPU kHz so that hardware which doesn't run
- * with some frequencies can complain without having to guess what per
- * cent / per mille means.
- * Maximum transition latency is in nanoseconds - if it's unknown,
- * CPUFREQ_ETERNAL shall be used.
- */
-
-struct cpufreq_governor;
-
-/* /sys/devices/system/cpu/cpufreq: entry point for global variables */
-extern struct kobject *cpufreq_global_kobject;
-
-#define CPUFREQ_ETERNAL (-1)
-struct cpufreq_cpuinfo {
- unsigned int max_freq;
- unsigned int min_freq;
-
- /* in 10^(-9) s = nanoseconds */
- unsigned int transition_latency;
-};
-
-struct cpufreq_real_policy {
- unsigned int min; /* in kHz */
- unsigned int max; /* in kHz */
- unsigned int policy; /* see above */
- struct cpufreq_governor *governor; /* see below */
-};
-
-struct cpufreq_policy {
- cpumask_var_t cpus; /* CPUs requiring sw coordination */
- cpumask_var_t related_cpus; /* CPUs with any coordination */
- unsigned int shared_type; /* ANY or ALL affected CPUs
- should set cpufreq */
- unsigned int cpu; /* cpu nr of registered CPU */
- struct cpufreq_cpuinfo cpuinfo;/* see above */
-
- unsigned int min; /* in kHz */
- unsigned int max; /* in kHz */
- unsigned int cur; /* in kHz, only needed if cpufreq
- * governors are used */
- unsigned int policy; /* see above */
- struct cpufreq_governor *governor; /* see below */
-
- struct work_struct update; /* if update_policy() needs to be
- * called, but you're in IRQ context */
-
- struct cpufreq_real_policy user_policy;
-
- struct kobject kobj;
- struct completion kobj_unregister;
-};
-
-#define CPUFREQ_ADJUST (0)
-#define CPUFREQ_INCOMPATIBLE (1)
-#define CPUFREQ_NOTIFY (2)
-#define CPUFREQ_START (3)
-
-#define CPUFREQ_SHARED_TYPE_NONE (0) /* None */
-#define CPUFREQ_SHARED_TYPE_HW (1) /* HW does needed coordination */
-#define CPUFREQ_SHARED_TYPE_ALL (2) /* All dependent CPUs should set freq */
-#define CPUFREQ_SHARED_TYPE_ANY (3) /* Freq can be set from any dependent CPU*/
-
-/******************** cpufreq transition notifiers *******************/
-
-#define CPUFREQ_PRECHANGE (0)
-#define CPUFREQ_POSTCHANGE (1)
-#define CPUFREQ_RESUMECHANGE (8)
-#define CPUFREQ_SUSPENDCHANGE (9)
-
-struct cpufreq_freqs {
- unsigned int cpu; /* cpu nr */
- unsigned int old;
- unsigned int new;
- u8 flags; /* flags of cpufreq_driver, see below. */
-};
-
-
-/**
- * cpufreq_scale - "old * mult / div" calculation for large values (32-bit-arch safe)
- * @old: old value
- * @div: divisor
- * @mult: multiplier
- *
- *
- * new = old * mult / div
- */
-static inline unsigned long cpufreq_scale(unsigned long old, u_int div, u_int mult)
-{
-#if BITS_PER_LONG == 32
-
- u64 result = ((u64) old) * ((u64) mult);
- do_div(result, div);
- return (unsigned long) result;
-
-#elif BITS_PER_LONG == 64
-
- unsigned long result = old * ((u64) mult);
- result /= div;
- return result;
-
-#endif
-};
-
-/*********************************************************************
- * CPUFREQ GOVERNORS *
- *********************************************************************/
-
-#define CPUFREQ_GOV_START 1
-#define CPUFREQ_GOV_STOP 2
-#define CPUFREQ_GOV_LIMITS 3
-
-struct cpufreq_governor {
- char name[CPUFREQ_NAME_LEN];
- int (*governor) (struct cpufreq_policy *policy,
- unsigned int event);
- ssize_t (*show_setspeed) (struct cpufreq_policy *policy,
- char *buf);
- int (*store_setspeed) (struct cpufreq_policy *policy,
- unsigned int freq);
- unsigned int max_transition_latency; /* HW must be able to switch to
- next freq faster than this value in nano secs or we
- will fallback to performance governor */
- struct list_head governor_list;
- struct module *owner;
-};
-
-/*
- * Pass a target to the cpufreq driver.
- */
-extern int cpufreq_driver_target(struct cpufreq_policy *policy,
- unsigned int target_freq,
- unsigned int relation);
-extern int __cpufreq_driver_target(struct cpufreq_policy *policy,
- unsigned int target_freq,
- unsigned int relation);
-
-
-extern int __cpufreq_driver_getavg(struct cpufreq_policy *policy,
- unsigned int cpu);
-
-int cpufreq_register_governor(struct cpufreq_governor *governor);
-void cpufreq_unregister_governor(struct cpufreq_governor *governor);
-
-
-/*********************************************************************
- * CPUFREQ DRIVER INTERFACE *
- *********************************************************************/
-
-#define CPUFREQ_RELATION_L 0 /* lowest frequency at or above target */
-#define CPUFREQ_RELATION_H 1 /* highest frequency below or at target */
-
-struct freq_attr;
-
-struct cpufreq_driver {
- struct module *owner;
- char name[CPUFREQ_NAME_LEN];
- u8 flags;
-
- /* needed by all drivers */
- int (*init) (struct cpufreq_policy *policy);
- int (*verify) (struct cpufreq_policy *policy);
-
- /* define one out of two */
- int (*setpolicy) (struct cpufreq_policy *policy);
- int (*target) (struct cpufreq_policy *policy,
- unsigned int target_freq,
- unsigned int relation);
-
- /* should be defined, if possible */
- unsigned int (*get) (unsigned int cpu);
-
- /* optional */
- unsigned int (*getavg) (struct cpufreq_policy *policy,
- unsigned int cpu);
- int (*bios_limit) (int cpu, unsigned int *limit);
-
- int (*exit) (struct cpufreq_policy *policy);
- int (*suspend) (struct cpufreq_policy *policy);
- int (*resume) (struct cpufreq_policy *policy);
- struct freq_attr **attr;
-};
-
-/* flags */
-
-#define CPUFREQ_STICKY 0x01 /* the driver isn't removed even if
- * all ->init() calls failed */
-#define CPUFREQ_CONST_LOOPS 0x02 /* loops_per_jiffy or other kernel
- * "constants" aren't affected by
- * frequency transitions */
-#define CPUFREQ_PM_NO_WARN 0x04 /* don't warn on suspend/resume speed
- * mismatches */
-
-int cpufreq_register_driver(struct cpufreq_driver *driver_data);
-int cpufreq_unregister_driver(struct cpufreq_driver *driver_data);
-
-
-void cpufreq_notify_transition(struct cpufreq_freqs *freqs, unsigned int state);
-
-
-static inline void cpufreq_verify_within_limits(struct cpufreq_policy *policy, unsigned int min, unsigned int max)
-{
- if (policy->min < min)
- policy->min = min;
- if (policy->max < min)
- policy->max = min;
- if (policy->min > max)
- policy->min = max;
- if (policy->max > max)
- policy->max = max;
- if (policy->min > policy->max)
- policy->min = policy->max;
- return;
-}
-
-struct freq_attr {
- struct attribute attr;
- ssize_t (*show)(struct cpufreq_policy *, char *);
- ssize_t (*store)(struct cpufreq_policy *, const char *, size_t count);
-};
-
-#define cpufreq_freq_attr_ro(_name) \
-static struct freq_attr _name = \
-__ATTR(_name, 0444, show_##_name, NULL)
-
-#define cpufreq_freq_attr_ro_perm(_name, _perm) \
-static struct freq_attr _name = \
-__ATTR(_name, _perm, show_##_name, NULL)
-
-#define cpufreq_freq_attr_rw(_name) \
-static struct freq_attr _name = \
-__ATTR(_name, 0644, show_##_name, store_##_name)
-
-struct global_attr {
- struct attribute attr;
- ssize_t (*show)(struct kobject *kobj,
- struct attribute *attr, char *buf);
- ssize_t (*store)(struct kobject *a, struct attribute *b,
- const char *c, size_t count);
-};
-
-#define define_one_global_ro(_name) \
-static struct global_attr _name = \
-__ATTR(_name, 0444, show_##_name, NULL)
-
-#define define_one_global_rw(_name) \
-static struct global_attr _name = \
-__ATTR(_name, 0644, show_##_name, store_##_name)
-
-
-/*********************************************************************
- * CPUFREQ 2.6. INTERFACE *
- *********************************************************************/
-int cpufreq_get_policy(struct cpufreq_policy *policy, unsigned int cpu);
-int cpufreq_update_policy(unsigned int cpu);
-
-#ifdef CONFIG_CPU_FREQ
-/* query the current CPU frequency (in kHz). If zero, cpufreq couldn't detect it */
-unsigned int cpufreq_get(unsigned int cpu);
-#else
-static inline unsigned int cpufreq_get(unsigned int cpu)
-{
- return 0;
-}
-#endif
-
-/* query the last known CPU freq (in kHz). If zero, cpufreq couldn't detect it */
-#ifdef CONFIG_CPU_FREQ
-unsigned int cpufreq_quick_get(unsigned int cpu);
-unsigned int cpufreq_quick_get_max(unsigned int cpu);
-#else
-static inline unsigned int cpufreq_quick_get(unsigned int cpu)
-{
- return 0;
-}
-static inline unsigned int cpufreq_quick_get_max(unsigned int cpu)
-{
- return 0;
-}
-#endif
-
-
-/*********************************************************************
- * CPUFREQ DEFAULT GOVERNOR *
- *********************************************************************/
-
-
-/*
- Performance governor is fallback governor if any other gov failed to
- auto load due latency restrictions
-*/
-#ifdef CONFIG_CPU_FREQ_GOV_PERFORMANCE
-extern struct cpufreq_governor cpufreq_gov_performance;
-#endif
-#ifdef CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE
-#define CPUFREQ_DEFAULT_GOVERNOR (&cpufreq_gov_performance)
-#elif defined(CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE)
-extern struct cpufreq_governor cpufreq_gov_powersave;
-#define CPUFREQ_DEFAULT_GOVERNOR (&cpufreq_gov_powersave)
-#elif defined(CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE)
-extern struct cpufreq_governor cpufreq_gov_userspace;
-#define CPUFREQ_DEFAULT_GOVERNOR (&cpufreq_gov_userspace)
-#elif defined(CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND)
-extern struct cpufreq_governor cpufreq_gov_ondemand;
-#define CPUFREQ_DEFAULT_GOVERNOR (&cpufreq_gov_ondemand)
-#elif defined(CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE)
-extern struct cpufreq_governor cpufreq_gov_conservative;
-#define CPUFREQ_DEFAULT_GOVERNOR (&cpufreq_gov_conservative)
-#elif defined(CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE)
-extern struct cpufreq_governor cpufreq_gov_interactive;
-#define CPUFREQ_DEFAULT_GOVERNOR (&cpufreq_gov_interactive)
-#endif
-
-
-/*********************************************************************
- * FREQUENCY TABLE HELPERS *
- *********************************************************************/
-
-#define CPUFREQ_ENTRY_INVALID ~0
-#define CPUFREQ_TABLE_END ~1
-
-struct cpufreq_frequency_table {
- unsigned int index; /* any */
- unsigned int frequency; /* kHz - doesn't need to be in ascending
- * order */
-};
-
-int cpufreq_frequency_table_cpuinfo(struct cpufreq_policy *policy,
- struct cpufreq_frequency_table *table);
-
-int cpufreq_frequency_table_verify(struct cpufreq_policy *policy,
- struct cpufreq_frequency_table *table);
-
-int cpufreq_frequency_table_target(struct cpufreq_policy *policy,
- struct cpufreq_frequency_table *table,
- unsigned int target_freq,
- unsigned int relation,
- unsigned int *index);
-
-/* the following 3 funtions are for cpufreq core use only */
-struct cpufreq_frequency_table *cpufreq_frequency_get_table(unsigned int cpu);
-struct cpufreq_policy *cpufreq_cpu_get(unsigned int cpu);
-void cpufreq_cpu_put(struct cpufreq_policy *data);
-
-/* the following are really really optional */
-extern struct freq_attr cpufreq_freq_attr_scaling_available_freqs;
-
-void cpufreq_frequency_table_get_attr(struct cpufreq_frequency_table *table,
- unsigned int cpu);
-
-void cpufreq_frequency_table_put_attr(unsigned int cpu);
-
-
-#endif /* _LINUX_CPUFREQ_H */
diff --git a/ANDROID_3.4.5/include/linux/cpuidle.h b/ANDROID_3.4.5/include/linux/cpuidle.h
deleted file mode 100644
index 5ab71833..00000000
--- a/ANDROID_3.4.5/include/linux/cpuidle.h
+++ /dev/null
@@ -1,237 +0,0 @@
-/*
- * cpuidle.h - a generic framework for CPU idle power management
- *
- * (C) 2007 Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
- * Shaohua Li <shaohua.li@intel.com>
- * Adam Belay <abelay@novell.com>
- *
- * This code is licenced under the GPL.
- */
-
-#ifndef _LINUX_CPUIDLE_H
-#define _LINUX_CPUIDLE_H
-
-#include <linux/percpu.h>
-#include <linux/list.h>
-#include <linux/kobject.h>
-#include <linux/completion.h>
-#include <linux/hrtimer.h>
-
-#define CPUIDLE_STATE_MAX 8
-#define CPUIDLE_NAME_LEN 16
-#define CPUIDLE_DESC_LEN 32
-
-struct module;
-
-struct cpuidle_device;
-struct cpuidle_driver;
-
-
-/****************************
- * CPUIDLE DEVICE INTERFACE *
- ****************************/
-
-struct cpuidle_state_usage {
- void *driver_data;
-
- unsigned long long usage;
- unsigned long long time; /* in US */
-};
-
-struct cpuidle_state {
- char name[CPUIDLE_NAME_LEN];
- char desc[CPUIDLE_DESC_LEN];
-
- unsigned int flags;
- unsigned int exit_latency; /* in US */
- int power_usage; /* in mW */
- unsigned int target_residency; /* in US */
- unsigned int disable;
-
- int (*enter) (struct cpuidle_device *dev,
- struct cpuidle_driver *drv,
- int index);
-
- int (*enter_dead) (struct cpuidle_device *dev, int index);
-};
-
-/* Idle State Flags */
-#define CPUIDLE_FLAG_TIME_VALID (0x01) /* is residency time measurable? */
-#define CPUIDLE_FLAG_COUPLED (0x02) /* state applies to multiple cpus */
-
-#define CPUIDLE_DRIVER_FLAGS_MASK (0xFFFF0000)
-
-/**
- * cpuidle_get_statedata - retrieves private driver state data
- * @st_usage: the state usage statistics
- */
-static inline void *cpuidle_get_statedata(struct cpuidle_state_usage *st_usage)
-{
- return st_usage->driver_data;
-}
-
-/**
- * cpuidle_set_statedata - stores private driver state data
- * @st_usage: the state usage statistics
- * @data: the private data
- */
-static inline void
-cpuidle_set_statedata(struct cpuidle_state_usage *st_usage, void *data)
-{
- st_usage->driver_data = data;
-}
-
-struct cpuidle_state_kobj {
- struct cpuidle_state *state;
- struct cpuidle_state_usage *state_usage;
- struct completion kobj_unregister;
- struct kobject kobj;
-};
-
-struct cpuidle_device {
- unsigned int registered:1;
- unsigned int enabled:1;
- unsigned int cpu;
-
- int last_residency;
- int state_count;
- struct cpuidle_state_usage states_usage[CPUIDLE_STATE_MAX];
- struct cpuidle_state_kobj *kobjs[CPUIDLE_STATE_MAX];
-
- struct list_head device_list;
- struct kobject kobj;
- struct completion kobj_unregister;
-
-#ifdef CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED
- int safe_state_index;
- cpumask_t coupled_cpus;
- struct cpuidle_coupled *coupled;
-#endif
-};
-
-DECLARE_PER_CPU(struct cpuidle_device *, cpuidle_devices);
-
-/**
- * cpuidle_get_last_residency - retrieves the last state's residency time
- * @dev: the target CPU
- *
- * NOTE: this value is invalid if CPUIDLE_FLAG_TIME_VALID isn't set
- */
-static inline int cpuidle_get_last_residency(struct cpuidle_device *dev)
-{
- return dev->last_residency;
-}
-
-
-/****************************
- * CPUIDLE DRIVER INTERFACE *
- ****************************/
-
-struct cpuidle_driver {
- const char *name;
- struct module *owner;
-
- unsigned int power_specified:1;
- /* set to 1 to use the core cpuidle time keeping (for all states). */
- unsigned int en_core_tk_irqen:1;
- struct cpuidle_state states[CPUIDLE_STATE_MAX];
- int state_count;
- int safe_state_index;
-};
-
-#ifdef CONFIG_CPU_IDLE
-extern void disable_cpuidle(void);
-extern int cpuidle_idle_call(void);
-extern int cpuidle_register_driver(struct cpuidle_driver *drv);
-struct cpuidle_driver *cpuidle_get_driver(void);
-extern void cpuidle_unregister_driver(struct cpuidle_driver *drv);
-extern int cpuidle_register_device(struct cpuidle_device *dev);
-extern void cpuidle_unregister_device(struct cpuidle_device *dev);
-
-extern void cpuidle_pause_and_lock(void);
-extern void cpuidle_resume_and_unlock(void);
-extern int cpuidle_enable_device(struct cpuidle_device *dev);
-extern void cpuidle_disable_device(struct cpuidle_device *dev);
-extern int cpuidle_wrap_enter(struct cpuidle_device *dev,
- struct cpuidle_driver *drv, int index,
- int (*enter)(struct cpuidle_device *dev,
- struct cpuidle_driver *drv, int index));
-extern int cpuidle_play_dead(void);
-
-#else
-static inline void disable_cpuidle(void) { }
-static inline int cpuidle_idle_call(void) { return -ENODEV; }
-static inline int cpuidle_register_driver(struct cpuidle_driver *drv)
-{return -ENODEV; }
-static inline struct cpuidle_driver *cpuidle_get_driver(void) {return NULL; }
-static inline void cpuidle_unregister_driver(struct cpuidle_driver *drv) { }
-static inline int cpuidle_register_device(struct cpuidle_device *dev)
-{return -ENODEV; }
-static inline void cpuidle_unregister_device(struct cpuidle_device *dev) { }
-
-static inline void cpuidle_pause_and_lock(void) { }
-static inline void cpuidle_resume_and_unlock(void) { }
-static inline int cpuidle_enable_device(struct cpuidle_device *dev)
-{return -ENODEV; }
-static inline void cpuidle_disable_device(struct cpuidle_device *dev) { }
-static inline int cpuidle_wrap_enter(struct cpuidle_device *dev,
- struct cpuidle_driver *drv, int index,
- int (*enter)(struct cpuidle_device *dev,
- struct cpuidle_driver *drv, int index))
-{ return -ENODEV; }
-static inline int cpuidle_play_dead(void) {return -ENODEV; }
-
-#endif
-
-#ifdef CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED
-void cpuidle_coupled_parallel_barrier(struct cpuidle_device *dev, atomic_t *a);
-#endif
-
-/******************************
- * CPUIDLE GOVERNOR INTERFACE *
- ******************************/
-
-struct cpuidle_governor {
- char name[CPUIDLE_NAME_LEN];
- struct list_head governor_list;
- unsigned int rating;
-
- int (*enable) (struct cpuidle_driver *drv,
- struct cpuidle_device *dev);
- void (*disable) (struct cpuidle_driver *drv,
- struct cpuidle_device *dev);
-
- int (*select) (struct cpuidle_driver *drv,
- struct cpuidle_device *dev);
- void (*reflect) (struct cpuidle_device *dev, int index);
-
- struct module *owner;
-};
-
-#ifdef CONFIG_CPU_IDLE
-
-extern int cpuidle_register_governor(struct cpuidle_governor *gov);
-extern void cpuidle_unregister_governor(struct cpuidle_governor *gov);
-
-#ifdef CONFIG_INTEL_IDLE
-extern int intel_idle_cpu_init(int cpu);
-#else
-static inline int intel_idle_cpu_init(int cpu) { return -1; }
-#endif
-
-#else
-static inline int intel_idle_cpu_init(int cpu) { return -1; }
-
-static inline int cpuidle_register_governor(struct cpuidle_governor *gov)
-{return 0;}
-static inline void cpuidle_unregister_governor(struct cpuidle_governor *gov) { }
-
-#endif
-
-#ifdef CONFIG_ARCH_HAS_CPU_RELAX
-#define CPUIDLE_DRIVER_STATE_START 1
-#else
-#define CPUIDLE_DRIVER_STATE_START 0
-#endif
-
-#endif /* _LINUX_CPUIDLE_H */
diff --git a/ANDROID_3.4.5/include/linux/cpumask.h b/ANDROID_3.4.5/include/linux/cpumask.h
deleted file mode 100644
index a2c819d3..00000000
--- a/ANDROID_3.4.5/include/linux/cpumask.h
+++ /dev/null
@@ -1,937 +0,0 @@
-#ifndef __LINUX_CPUMASK_H
-#define __LINUX_CPUMASK_H
-
-/*
- * Cpumasks provide a bitmap suitable for representing the
- * set of CPU's in a system, one bit position per CPU number. In general,
- * only nr_cpu_ids (<= NR_CPUS) bits are valid.
- */
-#include <linux/kernel.h>
-#include <linux/threads.h>
-#include <linux/bitmap.h>
-#include <linux/bug.h>
-
-typedef struct cpumask { DECLARE_BITMAP(bits, NR_CPUS); } cpumask_t;
-
-/**
- * cpumask_bits - get the bits in a cpumask
- * @maskp: the struct cpumask *
- *
- * You should only assume nr_cpu_ids bits of this mask are valid. This is
- * a macro so it's const-correct.
- */
-#define cpumask_bits(maskp) ((maskp)->bits)
-
-#if NR_CPUS == 1
-#define nr_cpu_ids 1
-#else
-extern int nr_cpu_ids;
-#endif
-
-#ifdef CONFIG_CPUMASK_OFFSTACK
-/* Assuming NR_CPUS is huge, a runtime limit is more efficient. Also,
- * not all bits may be allocated. */
-#define nr_cpumask_bits nr_cpu_ids
-#else
-#define nr_cpumask_bits NR_CPUS
-#endif
-
-/*
- * The following particular system cpumasks and operations manage
- * possible, present, active and online cpus.
- *
- * cpu_possible_mask- has bit 'cpu' set iff cpu is populatable
- * cpu_present_mask - has bit 'cpu' set iff cpu is populated
- * cpu_online_mask - has bit 'cpu' set iff cpu available to scheduler
- * cpu_active_mask - has bit 'cpu' set iff cpu available to migration
- *
- * If !CONFIG_HOTPLUG_CPU, present == possible, and active == online.
- *
- * The cpu_possible_mask is fixed at boot time, as the set of CPU id's
- * that it is possible might ever be plugged in at anytime during the
- * life of that system boot. The cpu_present_mask is dynamic(*),
- * representing which CPUs are currently plugged in. And
- * cpu_online_mask is the dynamic subset of cpu_present_mask,
- * indicating those CPUs available for scheduling.
- *
- * If HOTPLUG is enabled, then cpu_possible_mask is forced to have
- * all NR_CPUS bits set, otherwise it is just the set of CPUs that
- * ACPI reports present at boot.
- *
- * If HOTPLUG is enabled, then cpu_present_mask varies dynamically,
- * depending on what ACPI reports as currently plugged in, otherwise
- * cpu_present_mask is just a copy of cpu_possible_mask.
- *
- * (*) Well, cpu_present_mask is dynamic in the hotplug case. If not
- * hotplug, it's a copy of cpu_possible_mask, hence fixed at boot.
- *
- * Subtleties:
- * 1) UP arch's (NR_CPUS == 1, CONFIG_SMP not defined) hardcode
- * assumption that their single CPU is online. The UP
- * cpu_{online,possible,present}_masks are placebos. Changing them
- * will have no useful affect on the following num_*_cpus()
- * and cpu_*() macros in the UP case. This ugliness is a UP
- * optimization - don't waste any instructions or memory references
- * asking if you're online or how many CPUs there are if there is
- * only one CPU.
- */
-
-extern const struct cpumask *const cpu_possible_mask;
-extern const struct cpumask *const cpu_online_mask;
-extern const struct cpumask *const cpu_present_mask;
-extern const struct cpumask *const cpu_active_mask;
-
-#if NR_CPUS > 1
-#define num_online_cpus() cpumask_weight(cpu_online_mask)
-#define num_possible_cpus() cpumask_weight(cpu_possible_mask)
-#define num_present_cpus() cpumask_weight(cpu_present_mask)
-#define num_active_cpus() cpumask_weight(cpu_active_mask)
-#define cpu_online(cpu) cpumask_test_cpu((cpu), cpu_online_mask)
-#define cpu_possible(cpu) cpumask_test_cpu((cpu), cpu_possible_mask)
-#define cpu_present(cpu) cpumask_test_cpu((cpu), cpu_present_mask)
-#define cpu_active(cpu) cpumask_test_cpu((cpu), cpu_active_mask)
-#else
-#define num_online_cpus() 1U
-#define num_possible_cpus() 1U
-#define num_present_cpus() 1U
-#define num_active_cpus() 1U
-#define cpu_online(cpu) ((cpu) == 0)
-#define cpu_possible(cpu) ((cpu) == 0)
-#define cpu_present(cpu) ((cpu) == 0)
-#define cpu_active(cpu) ((cpu) == 0)
-#endif
-
-/* verify cpu argument to cpumask_* operators */
-static inline unsigned int cpumask_check(unsigned int cpu)
-{
-#ifdef CONFIG_DEBUG_PER_CPU_MAPS
- WARN_ON_ONCE(cpu >= nr_cpumask_bits);
-#endif /* CONFIG_DEBUG_PER_CPU_MAPS */
- return cpu;
-}
-
-#if NR_CPUS == 1
-/* Uniprocessor. Assume all masks are "1". */
-static inline unsigned int cpumask_first(const struct cpumask *srcp)
-{
- return 0;
-}
-
-/* Valid inputs for n are -1 and 0. */
-static inline unsigned int cpumask_next(int n, const struct cpumask *srcp)
-{
- return n+1;
-}
-
-static inline unsigned int cpumask_next_zero(int n, const struct cpumask *srcp)
-{
- return n+1;
-}
-
-static inline unsigned int cpumask_next_and(int n,
- const struct cpumask *srcp,
- const struct cpumask *andp)
-{
- return n+1;
-}
-
-/* cpu must be a valid cpu, ie 0, so there's no other choice. */
-static inline unsigned int cpumask_any_but(const struct cpumask *mask,
- unsigned int cpu)
-{
- return 1;
-}
-
-#define for_each_cpu(cpu, mask) \
- for ((cpu) = 0; (cpu) < 1; (cpu)++, (void)mask)
-#define for_each_cpu_not(cpu, mask) \
- for ((cpu) = 0; (cpu) < 1; (cpu)++, (void)mask)
-#define for_each_cpu_and(cpu, mask, and) \
- for ((cpu) = 0; (cpu) < 1; (cpu)++, (void)mask, (void)and)
-#else
-/**
- * cpumask_first - get the first cpu in a cpumask
- * @srcp: the cpumask pointer
- *
- * Returns >= nr_cpu_ids if no cpus set.
- */
-static inline unsigned int cpumask_first(const struct cpumask *srcp)
-{
- return find_first_bit(cpumask_bits(srcp), nr_cpumask_bits);
-}
-
-/**
- * cpumask_next - get the next cpu in a cpumask
- * @n: the cpu prior to the place to search (ie. return will be > @n)
- * @srcp: the cpumask pointer
- *
- * Returns >= nr_cpu_ids if no further cpus set.
- */
-static inline unsigned int cpumask_next(int n, const struct cpumask *srcp)
-{
- /* -1 is a legal arg here. */
- if (n != -1)
- cpumask_check(n);
- return find_next_bit(cpumask_bits(srcp), nr_cpumask_bits, n+1);
-}
-
-/**
- * cpumask_next_zero - get the next unset cpu in a cpumask
- * @n: the cpu prior to the place to search (ie. return will be > @n)
- * @srcp: the cpumask pointer
- *
- * Returns >= nr_cpu_ids if no further cpus unset.
- */
-static inline unsigned int cpumask_next_zero(int n, const struct cpumask *srcp)
-{
- /* -1 is a legal arg here. */
- if (n != -1)
- cpumask_check(n);
- return find_next_zero_bit(cpumask_bits(srcp), nr_cpumask_bits, n+1);
-}
-
-int cpumask_next_and(int n, const struct cpumask *, const struct cpumask *);
-int cpumask_any_but(const struct cpumask *mask, unsigned int cpu);
-
-/**
- * for_each_cpu - iterate over every cpu in a mask
- * @cpu: the (optionally unsigned) integer iterator
- * @mask: the cpumask pointer
- *
- * After the loop, cpu is >= nr_cpu_ids.
- */
-#define for_each_cpu(cpu, mask) \
- for ((cpu) = -1; \
- (cpu) = cpumask_next((cpu), (mask)), \
- (cpu) < nr_cpu_ids;)
-
-/**
- * for_each_cpu_not - iterate over every cpu in a complemented mask
- * @cpu: the (optionally unsigned) integer iterator
- * @mask: the cpumask pointer
- *
- * After the loop, cpu is >= nr_cpu_ids.
- */
-#define for_each_cpu_not(cpu, mask) \
- for ((cpu) = -1; \
- (cpu) = cpumask_next_zero((cpu), (mask)), \
- (cpu) < nr_cpu_ids;)
-
-/**
- * for_each_cpu_and - iterate over every cpu in both masks
- * @cpu: the (optionally unsigned) integer iterator
- * @mask: the first cpumask pointer
- * @and: the second cpumask pointer
- *
- * This saves a temporary CPU mask in many places. It is equivalent to:
- * struct cpumask tmp;
- * cpumask_and(&tmp, &mask, &and);
- * for_each_cpu(cpu, &tmp)
- * ...
- *
- * After the loop, cpu is >= nr_cpu_ids.
- */
-#define for_each_cpu_and(cpu, mask, and) \
- for ((cpu) = -1; \
- (cpu) = cpumask_next_and((cpu), (mask), (and)), \
- (cpu) < nr_cpu_ids;)
-#endif /* SMP */
-
-#define CPU_BITS_NONE \
-{ \
- [0 ... BITS_TO_LONGS(NR_CPUS)-1] = 0UL \
-}
-
-#define CPU_BITS_CPU0 \
-{ \
- [0] = 1UL \
-}
-
-/**
- * cpumask_set_cpu - set a cpu in a cpumask
- * @cpu: cpu number (< nr_cpu_ids)
- * @dstp: the cpumask pointer
- */
-static inline void cpumask_set_cpu(unsigned int cpu, struct cpumask *dstp)
-{
- set_bit(cpumask_check(cpu), cpumask_bits(dstp));
-}
-
-/**
- * cpumask_clear_cpu - clear a cpu in a cpumask
- * @cpu: cpu number (< nr_cpu_ids)
- * @dstp: the cpumask pointer
- */
-static inline void cpumask_clear_cpu(int cpu, struct cpumask *dstp)
-{
- clear_bit(cpumask_check(cpu), cpumask_bits(dstp));
-}
-
-/**
- * cpumask_test_cpu - test for a cpu in a cpumask
- * @cpu: cpu number (< nr_cpu_ids)
- * @cpumask: the cpumask pointer
- *
- * No static inline type checking - see Subtlety (1) above.
- */
-#define cpumask_test_cpu(cpu, cpumask) \
- test_bit(cpumask_check(cpu), cpumask_bits((cpumask)))
-
-/**
- * cpumask_test_and_set_cpu - atomically test and set a cpu in a cpumask
- * @cpu: cpu number (< nr_cpu_ids)
- * @cpumask: the cpumask pointer
- *
- * test_and_set_bit wrapper for cpumasks.
- */
-static inline int cpumask_test_and_set_cpu(int cpu, struct cpumask *cpumask)
-{
- return test_and_set_bit(cpumask_check(cpu), cpumask_bits(cpumask));
-}
-
-/**
- * cpumask_test_and_clear_cpu - atomically test and clear a cpu in a cpumask
- * @cpu: cpu number (< nr_cpu_ids)
- * @cpumask: the cpumask pointer
- *
- * test_and_clear_bit wrapper for cpumasks.
- */
-static inline int cpumask_test_and_clear_cpu(int cpu, struct cpumask *cpumask)
-{
- return test_and_clear_bit(cpumask_check(cpu), cpumask_bits(cpumask));
-}
-
-/**
- * cpumask_setall - set all cpus (< nr_cpu_ids) in a cpumask
- * @dstp: the cpumask pointer
- */
-static inline void cpumask_setall(struct cpumask *dstp)
-{
- bitmap_fill(cpumask_bits(dstp), nr_cpumask_bits);
-}
-
-/**
- * cpumask_clear - clear all cpus (< nr_cpu_ids) in a cpumask
- * @dstp: the cpumask pointer
- */
-static inline void cpumask_clear(struct cpumask *dstp)
-{
- bitmap_zero(cpumask_bits(dstp), nr_cpumask_bits);
-}
-
-/**
- * cpumask_and - *dstp = *src1p & *src2p
- * @dstp: the cpumask result
- * @src1p: the first input
- * @src2p: the second input
- */
-static inline int cpumask_and(struct cpumask *dstp,
- const struct cpumask *src1p,
- const struct cpumask *src2p)
-{
- return bitmap_and(cpumask_bits(dstp), cpumask_bits(src1p),
- cpumask_bits(src2p), nr_cpumask_bits);
-}
-
-/**
- * cpumask_or - *dstp = *src1p | *src2p
- * @dstp: the cpumask result
- * @src1p: the first input
- * @src2p: the second input
- */
-static inline void cpumask_or(struct cpumask *dstp, const struct cpumask *src1p,
- const struct cpumask *src2p)
-{
- bitmap_or(cpumask_bits(dstp), cpumask_bits(src1p),
- cpumask_bits(src2p), nr_cpumask_bits);
-}
-
-/**
- * cpumask_xor - *dstp = *src1p ^ *src2p
- * @dstp: the cpumask result
- * @src1p: the first input
- * @src2p: the second input
- */
-static inline void cpumask_xor(struct cpumask *dstp,
- const struct cpumask *src1p,
- const struct cpumask *src2p)
-{
- bitmap_xor(cpumask_bits(dstp), cpumask_bits(src1p),
- cpumask_bits(src2p), nr_cpumask_bits);
-}
-
-/**
- * cpumask_andnot - *dstp = *src1p & ~*src2p
- * @dstp: the cpumask result
- * @src1p: the first input
- * @src2p: the second input
- */
-static inline int cpumask_andnot(struct cpumask *dstp,
- const struct cpumask *src1p,
- const struct cpumask *src2p)
-{
- return bitmap_andnot(cpumask_bits(dstp), cpumask_bits(src1p),
- cpumask_bits(src2p), nr_cpumask_bits);
-}
-
-/**
- * cpumask_complement - *dstp = ~*srcp
- * @dstp: the cpumask result
- * @srcp: the input to invert
- */
-static inline void cpumask_complement(struct cpumask *dstp,
- const struct cpumask *srcp)
-{
- bitmap_complement(cpumask_bits(dstp), cpumask_bits(srcp),
- nr_cpumask_bits);
-}
-
-/**
- * cpumask_equal - *src1p == *src2p
- * @src1p: the first input
- * @src2p: the second input
- */
-static inline bool cpumask_equal(const struct cpumask *src1p,
- const struct cpumask *src2p)
-{
- return bitmap_equal(cpumask_bits(src1p), cpumask_bits(src2p),
- nr_cpumask_bits);
-}
-
-/**
- * cpumask_intersects - (*src1p & *src2p) != 0
- * @src1p: the first input
- * @src2p: the second input
- */
-static inline bool cpumask_intersects(const struct cpumask *src1p,
- const struct cpumask *src2p)
-{
- return bitmap_intersects(cpumask_bits(src1p), cpumask_bits(src2p),
- nr_cpumask_bits);
-}
-
-/**
- * cpumask_subset - (*src1p & ~*src2p) == 0
- * @src1p: the first input
- * @src2p: the second input
- */
-static inline int cpumask_subset(const struct cpumask *src1p,
- const struct cpumask *src2p)
-{
- return bitmap_subset(cpumask_bits(src1p), cpumask_bits(src2p),
- nr_cpumask_bits);
-}
-
-/**
- * cpumask_empty - *srcp == 0
- * @srcp: the cpumask to that all cpus < nr_cpu_ids are clear.
- */
-static inline bool cpumask_empty(const struct cpumask *srcp)
-{
- return bitmap_empty(cpumask_bits(srcp), nr_cpumask_bits);
-}
-
-/**
- * cpumask_full - *srcp == 0xFFFFFFFF...
- * @srcp: the cpumask to that all cpus < nr_cpu_ids are set.
- */
-static inline bool cpumask_full(const struct cpumask *srcp)
-{
- return bitmap_full(cpumask_bits(srcp), nr_cpumask_bits);
-}
-
-/**
- * cpumask_weight - Count of bits in *srcp
- * @srcp: the cpumask to count bits (< nr_cpu_ids) in.
- */
-static inline unsigned int cpumask_weight(const struct cpumask *srcp)
-{
- return bitmap_weight(cpumask_bits(srcp), nr_cpumask_bits);
-}
-
-/**
- * cpumask_shift_right - *dstp = *srcp >> n
- * @dstp: the cpumask result
- * @srcp: the input to shift
- * @n: the number of bits to shift by
- */
-static inline void cpumask_shift_right(struct cpumask *dstp,
- const struct cpumask *srcp, int n)
-{
- bitmap_shift_right(cpumask_bits(dstp), cpumask_bits(srcp), n,
- nr_cpumask_bits);
-}
-
-/**
- * cpumask_shift_left - *dstp = *srcp << n
- * @dstp: the cpumask result
- * @srcp: the input to shift
- * @n: the number of bits to shift by
- */
-static inline void cpumask_shift_left(struct cpumask *dstp,
- const struct cpumask *srcp, int n)
-{
- bitmap_shift_left(cpumask_bits(dstp), cpumask_bits(srcp), n,
- nr_cpumask_bits);
-}
-
-/**
- * cpumask_copy - *dstp = *srcp
- * @dstp: the result
- * @srcp: the input cpumask
- */
-static inline void cpumask_copy(struct cpumask *dstp,
- const struct cpumask *srcp)
-{
- bitmap_copy(cpumask_bits(dstp), cpumask_bits(srcp), nr_cpumask_bits);
-}
-
-/**
- * cpumask_any - pick a "random" cpu from *srcp
- * @srcp: the input cpumask
- *
- * Returns >= nr_cpu_ids if no cpus set.
- */
-#define cpumask_any(srcp) cpumask_first(srcp)
-
-/**
- * cpumask_first_and - return the first cpu from *srcp1 & *srcp2
- * @src1p: the first input
- * @src2p: the second input
- *
- * Returns >= nr_cpu_ids if no cpus set in both. See also cpumask_next_and().
- */
-#define cpumask_first_and(src1p, src2p) cpumask_next_and(-1, (src1p), (src2p))
-
-/**
- * cpumask_any_and - pick a "random" cpu from *mask1 & *mask2
- * @mask1: the first input cpumask
- * @mask2: the second input cpumask
- *
- * Returns >= nr_cpu_ids if no cpus set.
- */
-#define cpumask_any_and(mask1, mask2) cpumask_first_and((mask1), (mask2))
-
-/**
- * cpumask_of - the cpumask containing just a given cpu
- * @cpu: the cpu (<= nr_cpu_ids)
- */
-#define cpumask_of(cpu) (get_cpu_mask(cpu))
-
-/**
- * cpumask_scnprintf - print a cpumask into a string as comma-separated hex
- * @buf: the buffer to sprintf into
- * @len: the length of the buffer
- * @srcp: the cpumask to print
- *
- * If len is zero, returns zero. Otherwise returns the length of the
- * (nul-terminated) @buf string.
- */
-static inline int cpumask_scnprintf(char *buf, int len,
- const struct cpumask *srcp)
-{
- return bitmap_scnprintf(buf, len, cpumask_bits(srcp), nr_cpumask_bits);
-}
-
-/**
- * cpumask_parse_user - extract a cpumask from a user string
- * @buf: the buffer to extract from
- * @len: the length of the buffer
- * @dstp: the cpumask to set.
- *
- * Returns -errno, or 0 for success.
- */
-static inline int cpumask_parse_user(const char __user *buf, int len,
- struct cpumask *dstp)
-{
- return bitmap_parse_user(buf, len, cpumask_bits(dstp), nr_cpumask_bits);
-}
-
-/**
- * cpumask_parselist_user - extract a cpumask from a user string
- * @buf: the buffer to extract from
- * @len: the length of the buffer
- * @dstp: the cpumask to set.
- *
- * Returns -errno, or 0 for success.
- */
-static inline int cpumask_parselist_user(const char __user *buf, int len,
- struct cpumask *dstp)
-{
- return bitmap_parselist_user(buf, len, cpumask_bits(dstp),
- nr_cpumask_bits);
-}
-
-/**
- * cpulist_scnprintf - print a cpumask into a string as comma-separated list
- * @buf: the buffer to sprintf into
- * @len: the length of the buffer
- * @srcp: the cpumask to print
- *
- * If len is zero, returns zero. Otherwise returns the length of the
- * (nul-terminated) @buf string.
- */
-static inline int cpulist_scnprintf(char *buf, int len,
- const struct cpumask *srcp)
-{
- return bitmap_scnlistprintf(buf, len, cpumask_bits(srcp),
- nr_cpumask_bits);
-}
-
-/**
- * cpulist_parse_user - extract a cpumask from a user string of ranges
- * @buf: the buffer to extract from
- * @len: the length of the buffer
- * @dstp: the cpumask to set.
- *
- * Returns -errno, or 0 for success.
- */
-static inline int cpulist_parse(const char *buf, struct cpumask *dstp)
-{
- return bitmap_parselist(buf, cpumask_bits(dstp), nr_cpumask_bits);
-}
-
-/**
- * cpumask_size - size to allocate for a 'struct cpumask' in bytes
- *
- * This will eventually be a runtime variable, depending on nr_cpu_ids.
- */
-static inline size_t cpumask_size(void)
-{
- /* FIXME: Once all cpumask assignments are eliminated, this
- * can be nr_cpumask_bits */
- return BITS_TO_LONGS(NR_CPUS) * sizeof(long);
-}
-
-/*
- * cpumask_var_t: struct cpumask for stack usage.
- *
- * Oh, the wicked games we play! In order to make kernel coding a
- * little more difficult, we typedef cpumask_var_t to an array or a
- * pointer: doing &mask on an array is a noop, so it still works.
- *
- * ie.
- * cpumask_var_t tmpmask;
- * if (!alloc_cpumask_var(&tmpmask, GFP_KERNEL))
- * return -ENOMEM;
- *
- * ... use 'tmpmask' like a normal struct cpumask * ...
- *
- * free_cpumask_var(tmpmask);
- *
- *
- * However, one notable exception is there. alloc_cpumask_var() allocates
- * only nr_cpumask_bits bits (in the other hand, real cpumask_t always has
- * NR_CPUS bits). Therefore you don't have to dereference cpumask_var_t.
- *
- * cpumask_var_t tmpmask;
- * if (!alloc_cpumask_var(&tmpmask, GFP_KERNEL))
- * return -ENOMEM;
- *
- * var = *tmpmask;
- *
- * This code makes NR_CPUS length memcopy and brings to a memory corruption.
- * cpumask_copy() provide safe copy functionality.
- */
-#ifdef CONFIG_CPUMASK_OFFSTACK
-typedef struct cpumask *cpumask_var_t;
-
-bool alloc_cpumask_var_node(cpumask_var_t *mask, gfp_t flags, int node);
-bool alloc_cpumask_var(cpumask_var_t *mask, gfp_t flags);
-bool zalloc_cpumask_var_node(cpumask_var_t *mask, gfp_t flags, int node);
-bool zalloc_cpumask_var(cpumask_var_t *mask, gfp_t flags);
-void alloc_bootmem_cpumask_var(cpumask_var_t *mask);
-void free_cpumask_var(cpumask_var_t mask);
-void free_bootmem_cpumask_var(cpumask_var_t mask);
-
-#else
-typedef struct cpumask cpumask_var_t[1];
-
-static inline bool alloc_cpumask_var(cpumask_var_t *mask, gfp_t flags)
-{
- return true;
-}
-
-static inline bool alloc_cpumask_var_node(cpumask_var_t *mask, gfp_t flags,
- int node)
-{
- return true;
-}
-
-static inline bool zalloc_cpumask_var(cpumask_var_t *mask, gfp_t flags)
-{
- cpumask_clear(*mask);
- return true;
-}
-
-static inline bool zalloc_cpumask_var_node(cpumask_var_t *mask, gfp_t flags,
- int node)
-{
- cpumask_clear(*mask);
- return true;
-}
-
-static inline void alloc_bootmem_cpumask_var(cpumask_var_t *mask)
-{
-}
-
-static inline void free_cpumask_var(cpumask_var_t mask)
-{
-}
-
-static inline void free_bootmem_cpumask_var(cpumask_var_t mask)
-{
-}
-#endif /* CONFIG_CPUMASK_OFFSTACK */
-
-/* It's common to want to use cpu_all_mask in struct member initializers,
- * so it has to refer to an address rather than a pointer. */
-extern const DECLARE_BITMAP(cpu_all_bits, NR_CPUS);
-#define cpu_all_mask to_cpumask(cpu_all_bits)
-
-/* First bits of cpu_bit_bitmap are in fact unset. */
-#define cpu_none_mask to_cpumask(cpu_bit_bitmap[0])
-
-#define for_each_possible_cpu(cpu) for_each_cpu((cpu), cpu_possible_mask)
-#define for_each_online_cpu(cpu) for_each_cpu((cpu), cpu_online_mask)
-#define for_each_present_cpu(cpu) for_each_cpu((cpu), cpu_present_mask)
-
-/* Wrappers for arch boot code to manipulate normally-constant masks */
-void set_cpu_possible(unsigned int cpu, bool possible);
-void set_cpu_present(unsigned int cpu, bool present);
-void set_cpu_online(unsigned int cpu, bool online);
-void set_cpu_active(unsigned int cpu, bool active);
-void init_cpu_present(const struct cpumask *src);
-void init_cpu_possible(const struct cpumask *src);
-void init_cpu_online(const struct cpumask *src);
-
-/**
- * to_cpumask - convert an NR_CPUS bitmap to a struct cpumask *
- * @bitmap: the bitmap
- *
- * There are a few places where cpumask_var_t isn't appropriate and
- * static cpumasks must be used (eg. very early boot), yet we don't
- * expose the definition of 'struct cpumask'.
- *
- * This does the conversion, and can be used as a constant initializer.
- */
-#define to_cpumask(bitmap) \
- ((struct cpumask *)(1 ? (bitmap) \
- : (void *)sizeof(__check_is_bitmap(bitmap))))
-
-static inline int __check_is_bitmap(const unsigned long *bitmap)
-{
- return 1;
-}
-
-/*
- * Special-case data structure for "single bit set only" constant CPU masks.
- *
- * We pre-generate all the 64 (or 32) possible bit positions, with enough
- * padding to the left and the right, and return the constant pointer
- * appropriately offset.
- */
-extern const unsigned long
- cpu_bit_bitmap[BITS_PER_LONG+1][BITS_TO_LONGS(NR_CPUS)];
-
-static inline const struct cpumask *get_cpu_mask(unsigned int cpu)
-{
- const unsigned long *p = cpu_bit_bitmap[1 + cpu % BITS_PER_LONG];
- p -= cpu / BITS_PER_LONG;
- return to_cpumask(p);
-}
-
-#define cpu_is_offline(cpu) unlikely(!cpu_online(cpu))
-
-#if NR_CPUS <= BITS_PER_LONG
-#define CPU_BITS_ALL \
-{ \
- [BITS_TO_LONGS(NR_CPUS)-1] = CPU_MASK_LAST_WORD \
-}
-
-#else /* NR_CPUS > BITS_PER_LONG */
-
-#define CPU_BITS_ALL \
-{ \
- [0 ... BITS_TO_LONGS(NR_CPUS)-2] = ~0UL, \
- [BITS_TO_LONGS(NR_CPUS)-1] = CPU_MASK_LAST_WORD \
-}
-#endif /* NR_CPUS > BITS_PER_LONG */
-
-/*
- *
- * From here down, all obsolete. Use cpumask_ variants!
- *
- */
-#ifndef CONFIG_DISABLE_OBSOLETE_CPUMASK_FUNCTIONS
-#define cpumask_of_cpu(cpu) (*get_cpu_mask(cpu))
-
-#define CPU_MASK_LAST_WORD BITMAP_LAST_WORD_MASK(NR_CPUS)
-
-#if NR_CPUS <= BITS_PER_LONG
-
-#define CPU_MASK_ALL \
-(cpumask_t) { { \
- [BITS_TO_LONGS(NR_CPUS)-1] = CPU_MASK_LAST_WORD \
-} }
-
-#else
-
-#define CPU_MASK_ALL \
-(cpumask_t) { { \
- [0 ... BITS_TO_LONGS(NR_CPUS)-2] = ~0UL, \
- [BITS_TO_LONGS(NR_CPUS)-1] = CPU_MASK_LAST_WORD \
-} }
-
-#endif
-
-#define CPU_MASK_NONE \
-(cpumask_t) { { \
- [0 ... BITS_TO_LONGS(NR_CPUS)-1] = 0UL \
-} }
-
-#define CPU_MASK_CPU0 \
-(cpumask_t) { { \
- [0] = 1UL \
-} }
-
-#if NR_CPUS == 1
-#define first_cpu(src) ({ (void)(src); 0; })
-#define next_cpu(n, src) ({ (void)(src); 1; })
-#define any_online_cpu(mask) 0
-#define for_each_cpu_mask(cpu, mask) \
- for ((cpu) = 0; (cpu) < 1; (cpu)++, (void)mask)
-#else /* NR_CPUS > 1 */
-int __first_cpu(const cpumask_t *srcp);
-int __next_cpu(int n, const cpumask_t *srcp);
-
-#define first_cpu(src) __first_cpu(&(src))
-#define next_cpu(n, src) __next_cpu((n), &(src))
-#define any_online_cpu(mask) cpumask_any_and(&mask, cpu_online_mask)
-#define for_each_cpu_mask(cpu, mask) \
- for ((cpu) = -1; \
- (cpu) = next_cpu((cpu), (mask)), \
- (cpu) < NR_CPUS; )
-#endif /* SMP */
-
-#if NR_CPUS <= 64
-
-#define for_each_cpu_mask_nr(cpu, mask) for_each_cpu_mask(cpu, mask)
-
-#else /* NR_CPUS > 64 */
-
-int __next_cpu_nr(int n, const cpumask_t *srcp);
-#define for_each_cpu_mask_nr(cpu, mask) \
- for ((cpu) = -1; \
- (cpu) = __next_cpu_nr((cpu), &(mask)), \
- (cpu) < nr_cpu_ids; )
-
-#endif /* NR_CPUS > 64 */
-
-#define cpus_addr(src) ((src).bits)
-
-#define cpu_set(cpu, dst) __cpu_set((cpu), &(dst))
-static inline void __cpu_set(int cpu, volatile cpumask_t *dstp)
-{
- set_bit(cpu, dstp->bits);
-}
-
-#define cpu_clear(cpu, dst) __cpu_clear((cpu), &(dst))
-static inline void __cpu_clear(int cpu, volatile cpumask_t *dstp)
-{
- clear_bit(cpu, dstp->bits);
-}
-
-#define cpus_setall(dst) __cpus_setall(&(dst), NR_CPUS)
-static inline void __cpus_setall(cpumask_t *dstp, int nbits)
-{
- bitmap_fill(dstp->bits, nbits);
-}
-
-#define cpus_clear(dst) __cpus_clear(&(dst), NR_CPUS)
-static inline void __cpus_clear(cpumask_t *dstp, int nbits)
-{
- bitmap_zero(dstp->bits, nbits);
-}
-
-/* No static inline type checking - see Subtlety (1) above. */
-#define cpu_isset(cpu, cpumask) test_bit((cpu), (cpumask).bits)
-
-#define cpu_test_and_set(cpu, cpumask) __cpu_test_and_set((cpu), &(cpumask))
-static inline int __cpu_test_and_set(int cpu, cpumask_t *addr)
-{
- return test_and_set_bit(cpu, addr->bits);
-}
-
-#define cpus_and(dst, src1, src2) __cpus_and(&(dst), &(src1), &(src2), NR_CPUS)
-static inline int __cpus_and(cpumask_t *dstp, const cpumask_t *src1p,
- const cpumask_t *src2p, int nbits)
-{
- return bitmap_and(dstp->bits, src1p->bits, src2p->bits, nbits);
-}
-
-#define cpus_or(dst, src1, src2) __cpus_or(&(dst), &(src1), &(src2), NR_CPUS)
-static inline void __cpus_or(cpumask_t *dstp, const cpumask_t *src1p,
- const cpumask_t *src2p, int nbits)
-{
- bitmap_or(dstp->bits, src1p->bits, src2p->bits, nbits);
-}
-
-#define cpus_xor(dst, src1, src2) __cpus_xor(&(dst), &(src1), &(src2), NR_CPUS)
-static inline void __cpus_xor(cpumask_t *dstp, const cpumask_t *src1p,
- const cpumask_t *src2p, int nbits)
-{
- bitmap_xor(dstp->bits, src1p->bits, src2p->bits, nbits);
-}
-
-#define cpus_andnot(dst, src1, src2) \
- __cpus_andnot(&(dst), &(src1), &(src2), NR_CPUS)
-static inline int __cpus_andnot(cpumask_t *dstp, const cpumask_t *src1p,
- const cpumask_t *src2p, int nbits)
-{
- return bitmap_andnot(dstp->bits, src1p->bits, src2p->bits, nbits);
-}
-
-#define cpus_equal(src1, src2) __cpus_equal(&(src1), &(src2), NR_CPUS)
-static inline int __cpus_equal(const cpumask_t *src1p,
- const cpumask_t *src2p, int nbits)
-{
- return bitmap_equal(src1p->bits, src2p->bits, nbits);
-}
-
-#define cpus_intersects(src1, src2) __cpus_intersects(&(src1), &(src2), NR_CPUS)
-static inline int __cpus_intersects(const cpumask_t *src1p,
- const cpumask_t *src2p, int nbits)
-{
- return bitmap_intersects(src1p->bits, src2p->bits, nbits);
-}
-
-#define cpus_subset(src1, src2) __cpus_subset(&(src1), &(src2), NR_CPUS)
-static inline int __cpus_subset(const cpumask_t *src1p,
- const cpumask_t *src2p, int nbits)
-{
- return bitmap_subset(src1p->bits, src2p->bits, nbits);
-}
-
-#define cpus_empty(src) __cpus_empty(&(src), NR_CPUS)
-static inline int __cpus_empty(const cpumask_t *srcp, int nbits)
-{
- return bitmap_empty(srcp->bits, nbits);
-}
-
-#define cpus_weight(cpumask) __cpus_weight(&(cpumask), NR_CPUS)
-static inline int __cpus_weight(const cpumask_t *srcp, int nbits)
-{
- return bitmap_weight(srcp->bits, nbits);
-}
-
-#define cpus_shift_left(dst, src, n) \
- __cpus_shift_left(&(dst), &(src), (n), NR_CPUS)
-static inline void __cpus_shift_left(cpumask_t *dstp,
- const cpumask_t *srcp, int n, int nbits)
-{
- bitmap_shift_left(dstp->bits, srcp->bits, n, nbits);
-}
-#endif /* !CONFIG_DISABLE_OBSOLETE_CPUMASK_FUNCTIONS */
-
-#endif /* __LINUX_CPUMASK_H */
diff --git a/ANDROID_3.4.5/include/linux/cpuset.h b/ANDROID_3.4.5/include/linux/cpuset.h
deleted file mode 100644
index 668f66ba..00000000
--- a/ANDROID_3.4.5/include/linux/cpuset.h
+++ /dev/null
@@ -1,238 +0,0 @@
-#ifndef _LINUX_CPUSET_H
-#define _LINUX_CPUSET_H
-/*
- * cpuset interface
- *
- * Copyright (C) 2003 BULL SA
- * Copyright (C) 2004-2006 Silicon Graphics, Inc.
- *
- */
-
-#include <linux/sched.h>
-#include <linux/cpumask.h>
-#include <linux/nodemask.h>
-#include <linux/cgroup.h>
-#include <linux/mm.h>
-
-#ifdef CONFIG_CPUSETS
-
-extern int number_of_cpusets; /* How many cpusets are defined in system? */
-
-extern int cpuset_init(void);
-extern void cpuset_init_smp(void);
-extern void cpuset_update_active_cpus(void);
-extern void cpuset_cpus_allowed(struct task_struct *p, struct cpumask *mask);
-extern void cpuset_cpus_allowed_fallback(struct task_struct *p);
-extern nodemask_t cpuset_mems_allowed(struct task_struct *p);
-#define cpuset_current_mems_allowed (current->mems_allowed)
-void cpuset_init_current_mems_allowed(void);
-int cpuset_nodemask_valid_mems_allowed(nodemask_t *nodemask);
-
-extern int __cpuset_node_allowed_softwall(int node, gfp_t gfp_mask);
-extern int __cpuset_node_allowed_hardwall(int node, gfp_t gfp_mask);
-
-static inline int cpuset_node_allowed_softwall(int node, gfp_t gfp_mask)
-{
- return number_of_cpusets <= 1 ||
- __cpuset_node_allowed_softwall(node, gfp_mask);
-}
-
-static inline int cpuset_node_allowed_hardwall(int node, gfp_t gfp_mask)
-{
- return number_of_cpusets <= 1 ||
- __cpuset_node_allowed_hardwall(node, gfp_mask);
-}
-
-static inline int cpuset_zone_allowed_softwall(struct zone *z, gfp_t gfp_mask)
-{
- return cpuset_node_allowed_softwall(zone_to_nid(z), gfp_mask);
-}
-
-static inline int cpuset_zone_allowed_hardwall(struct zone *z, gfp_t gfp_mask)
-{
- return cpuset_node_allowed_hardwall(zone_to_nid(z), gfp_mask);
-}
-
-extern int cpuset_mems_allowed_intersects(const struct task_struct *tsk1,
- const struct task_struct *tsk2);
-
-#define cpuset_memory_pressure_bump() \
- do { \
- if (cpuset_memory_pressure_enabled) \
- __cpuset_memory_pressure_bump(); \
- } while (0)
-extern int cpuset_memory_pressure_enabled;
-extern void __cpuset_memory_pressure_bump(void);
-
-extern const struct file_operations proc_cpuset_operations;
-struct seq_file;
-extern void cpuset_task_status_allowed(struct seq_file *m,
- struct task_struct *task);
-
-extern int cpuset_mem_spread_node(void);
-extern int cpuset_slab_spread_node(void);
-
-static inline int cpuset_do_page_mem_spread(void)
-{
- return current->flags & PF_SPREAD_PAGE;
-}
-
-static inline int cpuset_do_slab_mem_spread(void)
-{
- return current->flags & PF_SPREAD_SLAB;
-}
-
-extern int current_cpuset_is_being_rebound(void);
-
-extern void rebuild_sched_domains(void);
-
-extern void cpuset_print_task_mems_allowed(struct task_struct *p);
-
-/*
- * get_mems_allowed is required when making decisions involving mems_allowed
- * such as during page allocation. mems_allowed can be updated in parallel
- * and depending on the new value an operation can fail potentially causing
- * process failure. A retry loop with get_mems_allowed and put_mems_allowed
- * prevents these artificial failures.
- */
-static inline unsigned int get_mems_allowed(void)
-{
- return read_seqcount_begin(&current->mems_allowed_seq);
-}
-
-/*
- * If this returns false, the operation that took place after get_mems_allowed
- * may have failed. It is up to the caller to retry the operation if
- * appropriate.
- */
-static inline bool put_mems_allowed(unsigned int seq)
-{
- return !read_seqcount_retry(&current->mems_allowed_seq, seq);
-}
-
-static inline void set_mems_allowed(nodemask_t nodemask)
-{
- task_lock(current);
- write_seqcount_begin(&current->mems_allowed_seq);
- current->mems_allowed = nodemask;
- write_seqcount_end(&current->mems_allowed_seq);
- task_unlock(current);
-}
-
-#else /* !CONFIG_CPUSETS */
-
-static inline int cpuset_init(void) { return 0; }
-static inline void cpuset_init_smp(void) {}
-
-static inline void cpuset_update_active_cpus(void)
-{
- partition_sched_domains(1, NULL, NULL);
-}
-
-static inline void cpuset_cpus_allowed(struct task_struct *p,
- struct cpumask *mask)
-{
- cpumask_copy(mask, cpu_possible_mask);
-}
-
-static inline void cpuset_cpus_allowed_fallback(struct task_struct *p)
-{
-}
-
-static inline nodemask_t cpuset_mems_allowed(struct task_struct *p)
-{
- return node_possible_map;
-}
-
-#define cpuset_current_mems_allowed (node_states[N_HIGH_MEMORY])
-static inline void cpuset_init_current_mems_allowed(void) {}
-
-static inline int cpuset_nodemask_valid_mems_allowed(nodemask_t *nodemask)
-{
- return 1;
-}
-
-static inline int cpuset_node_allowed_softwall(int node, gfp_t gfp_mask)
-{
- return 1;
-}
-
-static inline int cpuset_node_allowed_hardwall(int node, gfp_t gfp_mask)
-{
- return 1;
-}
-
-static inline int cpuset_zone_allowed_softwall(struct zone *z, gfp_t gfp_mask)
-{
- return 1;
-}
-
-static inline int cpuset_zone_allowed_hardwall(struct zone *z, gfp_t gfp_mask)
-{
- return 1;
-}
-
-static inline int cpuset_mems_allowed_intersects(const struct task_struct *tsk1,
- const struct task_struct *tsk2)
-{
- return 1;
-}
-
-static inline void cpuset_memory_pressure_bump(void) {}
-
-static inline void cpuset_task_status_allowed(struct seq_file *m,
- struct task_struct *task)
-{
-}
-
-static inline int cpuset_mem_spread_node(void)
-{
- return 0;
-}
-
-static inline int cpuset_slab_spread_node(void)
-{
- return 0;
-}
-
-static inline int cpuset_do_page_mem_spread(void)
-{
- return 0;
-}
-
-static inline int cpuset_do_slab_mem_spread(void)
-{
- return 0;
-}
-
-static inline int current_cpuset_is_being_rebound(void)
-{
- return 0;
-}
-
-static inline void rebuild_sched_domains(void)
-{
- partition_sched_domains(1, NULL, NULL);
-}
-
-static inline void cpuset_print_task_mems_allowed(struct task_struct *p)
-{
-}
-
-static inline void set_mems_allowed(nodemask_t nodemask)
-{
-}
-
-static inline unsigned int get_mems_allowed(void)
-{
- return 0;
-}
-
-static inline bool put_mems_allowed(unsigned int seq)
-{
- return true;
-}
-
-#endif /* !CONFIG_CPUSETS */
-
-#endif /* _LINUX_CPUSET_H */
diff --git a/ANDROID_3.4.5/include/linux/cramfs_fs.h b/ANDROID_3.4.5/include/linux/cramfs_fs.h
deleted file mode 100644
index 0e7bf272..00000000
--- a/ANDROID_3.4.5/include/linux/cramfs_fs.h
+++ /dev/null
@@ -1,94 +0,0 @@
-#ifndef __CRAMFS_H
-#define __CRAMFS_H
-
-#include <linux/types.h>
-#include <linux/magic.h>
-
-#define CRAMFS_SIGNATURE "Compressed ROMFS"
-
-/*
- * Width of various bitfields in struct cramfs_inode.
- * Primarily used to generate warnings in mkcramfs.
- */
-#define CRAMFS_MODE_WIDTH 16
-#define CRAMFS_UID_WIDTH 16
-#define CRAMFS_SIZE_WIDTH 24
-#define CRAMFS_GID_WIDTH 8
-#define CRAMFS_NAMELEN_WIDTH 6
-#define CRAMFS_OFFSET_WIDTH 26
-
-/*
- * Since inode.namelen is a unsigned 6-bit number, the maximum cramfs
- * path length is 63 << 2 = 252.
- */
-#define CRAMFS_MAXPATHLEN (((1 << CRAMFS_NAMELEN_WIDTH) - 1) << 2)
-
-/*
- * Reasonably terse representation of the inode data.
- */
-struct cramfs_inode {
- __u32 mode:CRAMFS_MODE_WIDTH, uid:CRAMFS_UID_WIDTH;
- /* SIZE for device files is i_rdev */
- __u32 size:CRAMFS_SIZE_WIDTH, gid:CRAMFS_GID_WIDTH;
- /* NAMELEN is the length of the file name, divided by 4 and
- rounded up. (cramfs doesn't support hard links.) */
- /* OFFSET: For symlinks and non-empty regular files, this
- contains the offset (divided by 4) of the file data in
- compressed form (starting with an array of block pointers;
- see README). For non-empty directories it is the offset
- (divided by 4) of the inode of the first file in that
- directory. For anything else, offset is zero. */
- __u32 namelen:CRAMFS_NAMELEN_WIDTH, offset:CRAMFS_OFFSET_WIDTH;
-};
-
-struct cramfs_info {
- __u32 crc;
- __u32 edition;
- __u32 blocks;
- __u32 files;
-};
-
-/*
- * Superblock information at the beginning of the FS.
- */
-struct cramfs_super {
- __u32 magic; /* 0x28cd3d45 - random number */
- __u32 size; /* length in bytes */
- __u32 flags; /* feature flags */
- __u32 future; /* reserved for future use */
- __u8 signature[16]; /* "Compressed ROMFS" */
- struct cramfs_info fsid; /* unique filesystem info */
- __u8 name[16]; /* user-defined name */
- struct cramfs_inode root; /* root inode data */
-};
-
-/*
- * Feature flags
- *
- * 0x00000000 - 0x000000ff: features that work for all past kernels
- * 0x00000100 - 0xffffffff: features that don't work for past kernels
- */
-#define CRAMFS_FLAG_FSID_VERSION_2 0x00000001 /* fsid version #2 */
-#define CRAMFS_FLAG_SORTED_DIRS 0x00000002 /* sorted dirs */
-#define CRAMFS_FLAG_HOLES 0x00000100 /* support for holes */
-#define CRAMFS_FLAG_WRONG_SIGNATURE 0x00000200 /* reserved */
-#define CRAMFS_FLAG_SHIFTED_ROOT_OFFSET 0x00000400 /* shifted root fs */
-
-/*
- * Valid values in super.flags. Currently we refuse to mount
- * if (flags & ~CRAMFS_SUPPORTED_FLAGS). Maybe that should be
- * changed to test super.future instead.
- */
-#define CRAMFS_SUPPORTED_FLAGS ( 0x000000ff \
- | CRAMFS_FLAG_HOLES \
- | CRAMFS_FLAG_WRONG_SIGNATURE \
- | CRAMFS_FLAG_SHIFTED_ROOT_OFFSET )
-
-#ifdef __KERNEL__
-/* Uncompression interfaces to the underlying zlib */
-int cramfs_uncompress_block(void *dst, int dstlen, void *src, int srclen);
-int cramfs_uncompress_init(void);
-void cramfs_uncompress_exit(void);
-#endif /* __KERNEL__ */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/cramfs_fs_sb.h b/ANDROID_3.4.5/include/linux/cramfs_fs_sb.h
deleted file mode 100644
index 83906935..00000000
--- a/ANDROID_3.4.5/include/linux/cramfs_fs_sb.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef _CRAMFS_FS_SB
-#define _CRAMFS_FS_SB
-
-/*
- * cramfs super-block data in memory
- */
-struct cramfs_sb_info {
- unsigned long magic;
- unsigned long size;
- unsigned long blocks;
- unsigned long files;
- unsigned long flags;
-};
-
-static inline struct cramfs_sb_info *CRAMFS_SB(struct super_block *sb)
-{
- return sb->s_fs_info;
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/crash_dump.h b/ANDROID_3.4.5/include/linux/crash_dump.h
deleted file mode 100644
index 37e4f8da..00000000
--- a/ANDROID_3.4.5/include/linux/crash_dump.h
+++ /dev/null
@@ -1,80 +0,0 @@
-#ifndef LINUX_CRASH_DUMP_H
-#define LINUX_CRASH_DUMP_H
-
-#ifdef CONFIG_CRASH_DUMP
-#include <linux/kexec.h>
-#include <linux/proc_fs.h>
-#include <linux/elf.h>
-
-#define ELFCORE_ADDR_MAX (-1ULL)
-#define ELFCORE_ADDR_ERR (-2ULL)
-
-extern unsigned long long elfcorehdr_addr;
-extern unsigned long long elfcorehdr_size;
-
-extern ssize_t copy_oldmem_page(unsigned long, char *, size_t,
- unsigned long, int);
-
-/* Architecture code defines this if there are other possible ELF
- * machine types, e.g. on bi-arch capable hardware. */
-#ifndef vmcore_elf_check_arch_cross
-#define vmcore_elf_check_arch_cross(x) 0
-#endif
-
-/*
- * Architecture code can redefine this if there are any special checks
- * needed for 64-bit ELF vmcores. In case of 32-bit only architecture,
- * this can be set to zero.
- */
-#ifndef vmcore_elf64_check_arch
-#define vmcore_elf64_check_arch(x) (elf_check_arch(x) || vmcore_elf_check_arch_cross(x))
-#endif
-
-/*
- * is_kdump_kernel() checks whether this kernel is booting after a panic of
- * previous kernel or not. This is determined by checking if previous kernel
- * has passed the elf core header address on command line.
- *
- * This is not just a test if CONFIG_CRASH_DUMP is enabled or not. It will
- * return 1 if CONFIG_CRASH_DUMP=y and if kernel is booting after a panic of
- * previous kernel.
- */
-
-static inline int is_kdump_kernel(void)
-{
- return (elfcorehdr_addr != ELFCORE_ADDR_MAX) ? 1 : 0;
-}
-
-/* is_vmcore_usable() checks if the kernel is booting after a panic and
- * the vmcore region is usable.
- *
- * This makes use of the fact that due to alignment -2ULL is not
- * a valid pointer, much in the vain of IS_ERR(), except
- * dealing directly with an unsigned long long rather than a pointer.
- */
-
-static inline int is_vmcore_usable(void)
-{
- return is_kdump_kernel() && elfcorehdr_addr != ELFCORE_ADDR_ERR ? 1 : 0;
-}
-
-/* vmcore_unusable() marks the vmcore as unusable,
- * without disturbing the logic of is_kdump_kernel()
- */
-
-static inline void vmcore_unusable(void)
-{
- if (is_kdump_kernel())
- elfcorehdr_addr = ELFCORE_ADDR_ERR;
-}
-
-#define HAVE_OLDMEM_PFN_IS_RAM 1
-extern int register_oldmem_pfn_is_ram(int (*fn)(unsigned long pfn));
-extern void unregister_oldmem_pfn_is_ram(void);
-
-#else /* !CONFIG_CRASH_DUMP */
-static inline int is_kdump_kernel(void) { return 0; }
-#endif /* CONFIG_CRASH_DUMP */
-
-extern unsigned long saved_max_pfn;
-#endif /* LINUX_CRASHDUMP_H */
diff --git a/ANDROID_3.4.5/include/linux/crc-ccitt.h b/ANDROID_3.4.5/include/linux/crc-ccitt.h
deleted file mode 100644
index f52696a1..00000000
--- a/ANDROID_3.4.5/include/linux/crc-ccitt.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef _LINUX_CRC_CCITT_H
-#define _LINUX_CRC_CCITT_H
-
-#include <linux/types.h>
-
-extern u16 const crc_ccitt_table[256];
-
-extern u16 crc_ccitt(u16 crc, const u8 *buffer, size_t len);
-
-static inline u16 crc_ccitt_byte(u16 crc, const u8 c)
-{
- return (crc >> 8) ^ crc_ccitt_table[(crc ^ c) & 0xff];
-}
-
-#endif /* _LINUX_CRC_CCITT_H */
diff --git a/ANDROID_3.4.5/include/linux/crc-itu-t.h b/ANDROID_3.4.5/include/linux/crc-itu-t.h
deleted file mode 100644
index 84920f3c..00000000
--- a/ANDROID_3.4.5/include/linux/crc-itu-t.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * crc-itu-t.h - CRC ITU-T V.41 routine
- *
- * Implements the standard CRC ITU-T V.41:
- * Width 16
- * Poly 0x0x1021 (x^16 + x^12 + x^15 + 1)
- * Init 0
- *
- * This source code is licensed under the GNU General Public License,
- * Version 2. See the file COPYING for more details.
- */
-
-#ifndef CRC_ITU_T_H
-#define CRC_ITU_T_H
-
-#include <linux/types.h>
-
-extern u16 const crc_itu_t_table[256];
-
-extern u16 crc_itu_t(u16 crc, const u8 *buffer, size_t len);
-
-static inline u16 crc_itu_t_byte(u16 crc, const u8 data)
-{
- return (crc << 8) ^ crc_itu_t_table[((crc >> 8) ^ data) & 0xff];
-}
-
-#endif /* CRC_ITU_T_H */
-
diff --git a/ANDROID_3.4.5/include/linux/crc-t10dif.h b/ANDROID_3.4.5/include/linux/crc-t10dif.h
deleted file mode 100644
index a9c96d86..00000000
--- a/ANDROID_3.4.5/include/linux/crc-t10dif.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef _LINUX_CRC_T10DIF_H
-#define _LINUX_CRC_T10DIF_H
-
-#include <linux/types.h>
-
-__u16 crc_t10dif(unsigned char const *, size_t);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/crc16.h b/ANDROID_3.4.5/include/linux/crc16.h
deleted file mode 100644
index 9443c084..00000000
--- a/ANDROID_3.4.5/include/linux/crc16.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * crc16.h - CRC-16 routine
- *
- * Implements the standard CRC-16:
- * Width 16
- * Poly 0x8005 (x^16 + x^15 + x^2 + 1)
- * Init 0
- *
- * Copyright (c) 2005 Ben Gardner <bgardner@wabtec.com>
- *
- * This source code is licensed under the GNU General Public License,
- * Version 2. See the file COPYING for more details.
- */
-
-#ifndef __CRC16_H
-#define __CRC16_H
-
-#include <linux/types.h>
-
-extern u16 const crc16_table[256];
-
-extern u16 crc16(u16 crc, const u8 *buffer, size_t len);
-
-static inline u16 crc16_byte(u16 crc, const u8 data)
-{
- return (crc >> 8) ^ crc16_table[(crc ^ data) & 0xff];
-}
-
-#endif /* __CRC16_H */
-
diff --git a/ANDROID_3.4.5/include/linux/crc32.h b/ANDROID_3.4.5/include/linux/crc32.h
deleted file mode 100644
index 68267b64..00000000
--- a/ANDROID_3.4.5/include/linux/crc32.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * crc32.h
- * See linux/lib/crc32.c for license and changes
- */
-#ifndef _LINUX_CRC32_H
-#define _LINUX_CRC32_H
-
-#include <linux/types.h>
-#include <linux/bitrev.h>
-
-extern u32 crc32_le(u32 crc, unsigned char const *p, size_t len);
-extern u32 crc32_be(u32 crc, unsigned char const *p, size_t len);
-
-extern u32 __crc32c_le(u32 crc, unsigned char const *p, size_t len);
-
-#define crc32(seed, data, length) crc32_le(seed, (unsigned char const *)(data), length)
-
-/*
- * Helpers for hash table generation of ethernet nics:
- *
- * Ethernet sends the least significant bit of a byte first, thus crc32_le
- * is used. The output of crc32_le is bit reversed [most significant bit
- * is in bit nr 0], thus it must be reversed before use. Except for
- * nics that bit swap the result internally...
- */
-#define ether_crc(length, data) bitrev32(crc32_le(~0, data, length))
-#define ether_crc_le(length, data) crc32_le(~0, data, length)
-
-#endif /* _LINUX_CRC32_H */
diff --git a/ANDROID_3.4.5/include/linux/crc32c.h b/ANDROID_3.4.5/include/linux/crc32c.h
deleted file mode 100644
index bd8b44d9..00000000
--- a/ANDROID_3.4.5/include/linux/crc32c.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef _LINUX_CRC32C_H
-#define _LINUX_CRC32C_H
-
-#include <linux/types.h>
-
-extern u32 crc32c(u32 crc, const void *address, unsigned int length);
-
-/* This macro exists for backwards-compatibility. */
-#define crc32c_le crc32c
-
-#endif /* _LINUX_CRC32C_H */
diff --git a/ANDROID_3.4.5/include/linux/crc7.h b/ANDROID_3.4.5/include/linux/crc7.h
deleted file mode 100644
index 1786e772..00000000
--- a/ANDROID_3.4.5/include/linux/crc7.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef _LINUX_CRC7_H
-#define _LINUX_CRC7_H
-#include <linux/types.h>
-
-extern const u8 crc7_syndrome_table[256];
-
-static inline u8 crc7_byte(u8 crc, u8 data)
-{
- return crc7_syndrome_table[(crc << 1) ^ data];
-}
-
-extern u8 crc7(u8 crc, const u8 *buffer, size_t len);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/crc8.h b/ANDROID_3.4.5/include/linux/crc8.h
deleted file mode 100644
index 13c8dabb..00000000
--- a/ANDROID_3.4.5/include/linux/crc8.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (c) 2011 Broadcom Corporation
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
- * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
- * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-#ifndef __CRC8_H_
-#define __CRC8_H_
-
-#include <linux/types.h>
-
-/* see usage of this value in crc8() description */
-#define CRC8_INIT_VALUE 0xFF
-
-/*
- * Return value of crc8() indicating valid message+crc. This is true
- * if a CRC is inverted before transmission. The CRC computed over the
- * whole received bitstream is _table[x], where x is the bit pattern
- * of the modification (almost always 0xff).
- */
-#define CRC8_GOOD_VALUE(_table) (_table[0xFF])
-
-/* required table size for crc8 algorithm */
-#define CRC8_TABLE_SIZE 256
-
-/* helper macro assuring right table size is used */
-#define DECLARE_CRC8_TABLE(_table) \
- static u8 _table[CRC8_TABLE_SIZE]
-
-/**
- * crc8_populate_lsb - fill crc table for given polynomial in regular bit order.
- *
- * @table: table to be filled.
- * @polynomial: polynomial for which table is to be filled.
- *
- * This function fills the provided table according the polynomial provided for
- * regular bit order (lsb first). Polynomials in CRC algorithms are typically
- * represented as shown below.
- *
- * poly = x^8 + x^7 + x^6 + x^4 + x^2 + 1
- *
- * For lsb first direction x^7 maps to the lsb. So the polynomial is as below.
- *
- * - lsb first: poly = 10101011(1) = 0xAB
- */
-void crc8_populate_lsb(u8 table[CRC8_TABLE_SIZE], u8 polynomial);
-
-/**
- * crc8_populate_msb - fill crc table for given polynomial in reverse bit order.
- *
- * @table: table to be filled.
- * @polynomial: polynomial for which table is to be filled.
- *
- * This function fills the provided table according the polynomial provided for
- * reverse bit order (msb first). Polynomials in CRC algorithms are typically
- * represented as shown below.
- *
- * poly = x^8 + x^7 + x^6 + x^4 + x^2 + 1
- *
- * For msb first direction x^7 maps to the msb. So the polynomial is as below.
- *
- * - msb first: poly = (1)11010101 = 0xD5
- */
-void crc8_populate_msb(u8 table[CRC8_TABLE_SIZE], u8 polynomial);
-
-/**
- * crc8() - calculate a crc8 over the given input data.
- *
- * @table: crc table used for calculation.
- * @pdata: pointer to data buffer.
- * @nbytes: number of bytes in data buffer.
- * @crc: previous returned crc8 value.
- *
- * The CRC8 is calculated using the polynomial given in crc8_populate_msb()
- * or crc8_populate_lsb().
- *
- * The caller provides the initial value (either %CRC8_INIT_VALUE
- * or the previous returned value) to allow for processing of
- * discontiguous blocks of data. When generating the CRC the
- * caller is responsible for complementing the final return value
- * and inserting it into the byte stream. When validating a byte
- * stream (including CRC8), a final return value of %CRC8_GOOD_VALUE
- * indicates the byte stream data can be considered valid.
- *
- * Reference:
- * "A Painless Guide to CRC Error Detection Algorithms", ver 3, Aug 1993
- * Williams, Ross N., ross<at>ross.net
- * (see URL http://www.ross.net/crc/download/crc_v3.txt).
- */
-u8 crc8(const u8 table[CRC8_TABLE_SIZE], u8 *pdata, size_t nbytes, u8 crc);
-
-#endif /* __CRC8_H_ */
diff --git a/ANDROID_3.4.5/include/linux/cred.h b/ANDROID_3.4.5/include/linux/cred.h
deleted file mode 100644
index adadf71a..00000000
--- a/ANDROID_3.4.5/include/linux/cred.h
+++ /dev/null
@@ -1,394 +0,0 @@
-/* Credentials management - see Documentation/security/credentials.txt
- *
- * Copyright (C) 2008 Red Hat, Inc. All Rights Reserved.
- * Written by David Howells (dhowells@redhat.com)
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public Licence
- * as published by the Free Software Foundation; either version
- * 2 of the Licence, or (at your option) any later version.
- */
-
-#ifndef _LINUX_CRED_H
-#define _LINUX_CRED_H
-
-#include <linux/capability.h>
-#include <linux/init.h>
-#include <linux/key.h>
-#include <linux/selinux.h>
-#include <linux/atomic.h>
-
-struct user_struct;
-struct cred;
-struct inode;
-
-/*
- * COW Supplementary groups list
- */
-#define NGROUPS_SMALL 32
-#define NGROUPS_PER_BLOCK ((unsigned int)(PAGE_SIZE / sizeof(gid_t)))
-
-struct group_info {
- atomic_t usage;
- int ngroups;
- int nblocks;
- gid_t small_block[NGROUPS_SMALL];
- gid_t *blocks[0];
-};
-
-/**
- * get_group_info - Get a reference to a group info structure
- * @group_info: The group info to reference
- *
- * This gets a reference to a set of supplementary groups.
- *
- * If the caller is accessing a task's credentials, they must hold the RCU read
- * lock when reading.
- */
-static inline struct group_info *get_group_info(struct group_info *gi)
-{
- atomic_inc(&gi->usage);
- return gi;
-}
-
-/**
- * put_group_info - Release a reference to a group info structure
- * @group_info: The group info to release
- */
-#define put_group_info(group_info) \
-do { \
- if (atomic_dec_and_test(&(group_info)->usage)) \
- groups_free(group_info); \
-} while (0)
-
-extern struct group_info *groups_alloc(int);
-extern struct group_info init_groups;
-extern void groups_free(struct group_info *);
-extern int set_current_groups(struct group_info *);
-extern int set_groups(struct cred *, struct group_info *);
-extern int groups_search(const struct group_info *, gid_t);
-
-/* access the groups "array" with this macro */
-#define GROUP_AT(gi, i) \
- ((gi)->blocks[(i) / NGROUPS_PER_BLOCK][(i) % NGROUPS_PER_BLOCK])
-
-extern int in_group_p(gid_t);
-extern int in_egroup_p(gid_t);
-
-/*
- * The common credentials for a thread group
- * - shared by CLONE_THREAD
- */
-#ifdef CONFIG_KEYS
-struct thread_group_cred {
- atomic_t usage;
- pid_t tgid; /* thread group process ID */
- spinlock_t lock;
- struct key __rcu *session_keyring; /* keyring inherited over fork */
- struct key *process_keyring; /* keyring private to this process */
- struct rcu_head rcu; /* RCU deletion hook */
-};
-#endif
-
-/*
- * The security context of a task
- *
- * The parts of the context break down into two categories:
- *
- * (1) The objective context of a task. These parts are used when some other
- * task is attempting to affect this one.
- *
- * (2) The subjective context. These details are used when the task is acting
- * upon another object, be that a file, a task, a key or whatever.
- *
- * Note that some members of this structure belong to both categories - the
- * LSM security pointer for instance.
- *
- * A task has two security pointers. task->real_cred points to the objective
- * context that defines that task's actual details. The objective part of this
- * context is used whenever that task is acted upon.
- *
- * task->cred points to the subjective context that defines the details of how
- * that task is going to act upon another object. This may be overridden
- * temporarily to point to another security context, but normally points to the
- * same context as task->real_cred.
- */
-struct cred {
- atomic_t usage;
-#ifdef CONFIG_DEBUG_CREDENTIALS
- atomic_t subscribers; /* number of processes subscribed */
- void *put_addr;
- unsigned magic;
-#define CRED_MAGIC 0x43736564
-#define CRED_MAGIC_DEAD 0x44656144
-#endif
- uid_t uid; /* real UID of the task */
- gid_t gid; /* real GID of the task */
- uid_t suid; /* saved UID of the task */
- gid_t sgid; /* saved GID of the task */
- uid_t euid; /* effective UID of the task */
- gid_t egid; /* effective GID of the task */
- uid_t fsuid; /* UID for VFS ops */
- gid_t fsgid; /* GID for VFS ops */
- unsigned securebits; /* SUID-less security management */
- kernel_cap_t cap_inheritable; /* caps our children can inherit */
- kernel_cap_t cap_permitted; /* caps we're permitted */
- kernel_cap_t cap_effective; /* caps we can actually use */
- kernel_cap_t cap_bset; /* capability bounding set */
-#ifdef CONFIG_KEYS
- unsigned char jit_keyring; /* default keyring to attach requested
- * keys to */
- struct key *thread_keyring; /* keyring private to this thread */
- struct key *request_key_auth; /* assumed request_key authority */
- struct thread_group_cred *tgcred; /* thread-group shared credentials */
-#endif
-#ifdef CONFIG_SECURITY
- void *security; /* subjective LSM security */
-#endif
- struct user_struct *user; /* real user ID subscription */
- struct user_namespace *user_ns; /* cached user->user_ns */
- struct group_info *group_info; /* supplementary groups for euid/fsgid */
- struct rcu_head rcu; /* RCU deletion hook */
-};
-
-extern void __put_cred(struct cred *);
-extern void exit_creds(struct task_struct *);
-extern int copy_creds(struct task_struct *, unsigned long);
-extern const struct cred *get_task_cred(struct task_struct *);
-extern struct cred *cred_alloc_blank(void);
-extern struct cred *prepare_creds(void);
-extern struct cred *prepare_exec_creds(void);
-extern int commit_creds(struct cred *);
-extern void abort_creds(struct cred *);
-extern const struct cred *override_creds(const struct cred *);
-extern void revert_creds(const struct cred *);
-extern struct cred *prepare_kernel_cred(struct task_struct *);
-extern int change_create_files_as(struct cred *, struct inode *);
-extern int set_security_override(struct cred *, u32);
-extern int set_security_override_from_ctx(struct cred *, const char *);
-extern int set_create_files_as(struct cred *, struct inode *);
-extern void __init cred_init(void);
-
-/*
- * check for validity of credentials
- */
-#ifdef CONFIG_DEBUG_CREDENTIALS
-extern void __invalid_creds(const struct cred *, const char *, unsigned);
-extern void __validate_process_creds(struct task_struct *,
- const char *, unsigned);
-
-extern bool creds_are_invalid(const struct cred *cred);
-
-static inline void __validate_creds(const struct cred *cred,
- const char *file, unsigned line)
-{
- if (unlikely(creds_are_invalid(cred)))
- __invalid_creds(cred, file, line);
-}
-
-#define validate_creds(cred) \
-do { \
- __validate_creds((cred), __FILE__, __LINE__); \
-} while(0)
-
-#define validate_process_creds() \
-do { \
- __validate_process_creds(current, __FILE__, __LINE__); \
-} while(0)
-
-extern void validate_creds_for_do_exit(struct task_struct *);
-#else
-static inline void validate_creds(const struct cred *cred)
-{
-}
-static inline void validate_creds_for_do_exit(struct task_struct *tsk)
-{
-}
-static inline void validate_process_creds(void)
-{
-}
-#endif
-
-/**
- * get_new_cred - Get a reference on a new set of credentials
- * @cred: The new credentials to reference
- *
- * Get a reference on the specified set of new credentials. The caller must
- * release the reference.
- */
-static inline struct cred *get_new_cred(struct cred *cred)
-{
- atomic_inc(&cred->usage);
- return cred;
-}
-
-/**
- * get_cred - Get a reference on a set of credentials
- * @cred: The credentials to reference
- *
- * Get a reference on the specified set of credentials. The caller must
- * release the reference.
- *
- * This is used to deal with a committed set of credentials. Although the
- * pointer is const, this will temporarily discard the const and increment the
- * usage count. The purpose of this is to attempt to catch at compile time the
- * accidental alteration of a set of credentials that should be considered
- * immutable.
- */
-static inline const struct cred *get_cred(const struct cred *cred)
-{
- struct cred *nonconst_cred = (struct cred *) cred;
- validate_creds(cred);
- return get_new_cred(nonconst_cred);
-}
-
-/**
- * put_cred - Release a reference to a set of credentials
- * @cred: The credentials to release
- *
- * Release a reference to a set of credentials, deleting them when the last ref
- * is released.
- *
- * This takes a const pointer to a set of credentials because the credentials
- * on task_struct are attached by const pointers to prevent accidental
- * alteration of otherwise immutable credential sets.
- */
-static inline void put_cred(const struct cred *_cred)
-{
- struct cred *cred = (struct cred *) _cred;
-
- validate_creds(cred);
- if (atomic_dec_and_test(&(cred)->usage))
- __put_cred(cred);
-}
-
-/**
- * current_cred - Access the current task's subjective credentials
- *
- * Access the subjective credentials of the current task. RCU-safe,
- * since nobody else can modify it.
- */
-#define current_cred() \
- rcu_dereference_protected(current->cred, 1)
-
-/**
- * __task_cred - Access a task's objective credentials
- * @task: The task to query
- *
- * Access the objective credentials of a task. The caller must hold the RCU
- * readlock or the task must be dead and unable to change its own credentials.
- *
- * The result of this function should not be passed directly to get_cred();
- * rather get_task_cred() should be used instead.
- */
-#define __task_cred(task) \
- ({ \
- const struct task_struct *__t = (task); \
- rcu_dereference_check(__t->real_cred, \
- task_is_dead(__t)); \
- })
-
-/**
- * get_current_cred - Get the current task's subjective credentials
- *
- * Get the subjective credentials of the current task, pinning them so that
- * they can't go away. Accessing the current task's credentials directly is
- * not permitted.
- */
-#define get_current_cred() \
- (get_cred(current_cred()))
-
-/**
- * get_current_user - Get the current task's user_struct
- *
- * Get the user record of the current task, pinning it so that it can't go
- * away.
- */
-#define get_current_user() \
-({ \
- struct user_struct *__u; \
- const struct cred *__cred; \
- __cred = current_cred(); \
- __u = get_uid(__cred->user); \
- __u; \
-})
-
-/**
- * get_current_groups - Get the current task's supplementary group list
- *
- * Get the supplementary group list of the current task, pinning it so that it
- * can't go away.
- */
-#define get_current_groups() \
-({ \
- struct group_info *__groups; \
- const struct cred *__cred; \
- __cred = current_cred(); \
- __groups = get_group_info(__cred->group_info); \
- __groups; \
-})
-
-#define task_cred_xxx(task, xxx) \
-({ \
- __typeof__(((struct cred *)NULL)->xxx) ___val; \
- rcu_read_lock(); \
- ___val = __task_cred((task))->xxx; \
- rcu_read_unlock(); \
- ___val; \
-})
-
-#define task_uid(task) (task_cred_xxx((task), uid))
-#define task_euid(task) (task_cred_xxx((task), euid))
-
-#define current_cred_xxx(xxx) \
-({ \
- current_cred()->xxx; \
-})
-
-#define current_uid() (current_cred_xxx(uid))
-#define current_gid() (current_cred_xxx(gid))
-#define current_euid() (current_cred_xxx(euid))
-#define current_egid() (current_cred_xxx(egid))
-#define current_suid() (current_cred_xxx(suid))
-#define current_sgid() (current_cred_xxx(sgid))
-#define current_fsuid() (current_cred_xxx(fsuid))
-#define current_fsgid() (current_cred_xxx(fsgid))
-#define current_cap() (current_cred_xxx(cap_effective))
-#define current_user() (current_cred_xxx(user))
-#define current_security() (current_cred_xxx(security))
-
-#ifdef CONFIG_USER_NS
-#define current_user_ns() (current_cred_xxx(user_ns))
-#define task_user_ns(task) (task_cred_xxx((task), user_ns))
-#else
-extern struct user_namespace init_user_ns;
-#define current_user_ns() (&init_user_ns)
-#define task_user_ns(task) (&init_user_ns)
-#endif
-
-
-#define current_uid_gid(_uid, _gid) \
-do { \
- const struct cred *__cred; \
- __cred = current_cred(); \
- *(_uid) = __cred->uid; \
- *(_gid) = __cred->gid; \
-} while(0)
-
-#define current_euid_egid(_euid, _egid) \
-do { \
- const struct cred *__cred; \
- __cred = current_cred(); \
- *(_euid) = __cred->euid; \
- *(_egid) = __cred->egid; \
-} while(0)
-
-#define current_fsuid_fsgid(_fsuid, _fsgid) \
-do { \
- const struct cred *__cred; \
- __cred = current_cred(); \
- *(_fsuid) = __cred->fsuid; \
- *(_fsgid) = __cred->fsgid; \
-} while(0)
-
-#endif /* _LINUX_CRED_H */
diff --git a/ANDROID_3.4.5/include/linux/crush/crush.h b/ANDROID_3.4.5/include/linux/crush/crush.h
deleted file mode 100644
index 97e435b1..00000000
--- a/ANDROID_3.4.5/include/linux/crush/crush.h
+++ /dev/null
@@ -1,180 +0,0 @@
-#ifndef CEPH_CRUSH_CRUSH_H
-#define CEPH_CRUSH_CRUSH_H
-
-#include <linux/types.h>
-
-/*
- * CRUSH is a pseudo-random data distribution algorithm that
- * efficiently distributes input values (typically, data objects)
- * across a heterogeneous, structured storage cluster.
- *
- * The algorithm was originally described in detail in this paper
- * (although the algorithm has evolved somewhat since then):
- *
- * http://www.ssrc.ucsc.edu/Papers/weil-sc06.pdf
- *
- * LGPL2
- */
-
-
-#define CRUSH_MAGIC 0x00010000ul /* for detecting algorithm revisions */
-
-
-#define CRUSH_MAX_DEPTH 10 /* max crush hierarchy depth */
-#define CRUSH_MAX_SET 10 /* max size of a mapping result */
-
-
-/*
- * CRUSH uses user-defined "rules" to describe how inputs should be
- * mapped to devices. A rule consists of sequence of steps to perform
- * to generate the set of output devices.
- */
-struct crush_rule_step {
- __u32 op;
- __s32 arg1;
- __s32 arg2;
-};
-
-/* step op codes */
-enum {
- CRUSH_RULE_NOOP = 0,
- CRUSH_RULE_TAKE = 1, /* arg1 = value to start with */
- CRUSH_RULE_CHOOSE_FIRSTN = 2, /* arg1 = num items to pick */
- /* arg2 = type */
- CRUSH_RULE_CHOOSE_INDEP = 3, /* same */
- CRUSH_RULE_EMIT = 4, /* no args */
- CRUSH_RULE_CHOOSE_LEAF_FIRSTN = 6,
- CRUSH_RULE_CHOOSE_LEAF_INDEP = 7,
-};
-
-/*
- * for specifying choose num (arg1) relative to the max parameter
- * passed to do_rule
- */
-#define CRUSH_CHOOSE_N 0
-#define CRUSH_CHOOSE_N_MINUS(x) (-(x))
-
-/*
- * The rule mask is used to describe what the rule is intended for.
- * Given a ruleset and size of output set, we search through the
- * rule list for a matching rule_mask.
- */
-struct crush_rule_mask {
- __u8 ruleset;
- __u8 type;
- __u8 min_size;
- __u8 max_size;
-};
-
-struct crush_rule {
- __u32 len;
- struct crush_rule_mask mask;
- struct crush_rule_step steps[0];
-};
-
-#define crush_rule_size(len) (sizeof(struct crush_rule) + \
- (len)*sizeof(struct crush_rule_step))
-
-
-
-/*
- * A bucket is a named container of other items (either devices or
- * other buckets). Items within a bucket are chosen using one of a
- * few different algorithms. The table summarizes how the speed of
- * each option measures up against mapping stability when items are
- * added or removed.
- *
- * Bucket Alg Speed Additions Removals
- * ------------------------------------------------
- * uniform O(1) poor poor
- * list O(n) optimal poor
- * tree O(log n) good good
- * straw O(n) optimal optimal
- */
-enum {
- CRUSH_BUCKET_UNIFORM = 1,
- CRUSH_BUCKET_LIST = 2,
- CRUSH_BUCKET_TREE = 3,
- CRUSH_BUCKET_STRAW = 4
-};
-extern const char *crush_bucket_alg_name(int alg);
-
-struct crush_bucket {
- __s32 id; /* this'll be negative */
- __u16 type; /* non-zero; type=0 is reserved for devices */
- __u8 alg; /* one of CRUSH_BUCKET_* */
- __u8 hash; /* which hash function to use, CRUSH_HASH_* */
- __u32 weight; /* 16-bit fixed point */
- __u32 size; /* num items */
- __s32 *items;
-
- /*
- * cached random permutation: used for uniform bucket and for
- * the linear search fallback for the other bucket types.
- */
- __u32 perm_x; /* @x for which *perm is defined */
- __u32 perm_n; /* num elements of *perm that are permuted/defined */
- __u32 *perm;
-};
-
-struct crush_bucket_uniform {
- struct crush_bucket h;
- __u32 item_weight; /* 16-bit fixed point; all items equally weighted */
-};
-
-struct crush_bucket_list {
- struct crush_bucket h;
- __u32 *item_weights; /* 16-bit fixed point */
- __u32 *sum_weights; /* 16-bit fixed point. element i is sum
- of weights 0..i, inclusive */
-};
-
-struct crush_bucket_tree {
- struct crush_bucket h; /* note: h.size is _tree_ size, not number of
- actual items */
- __u8 num_nodes;
- __u32 *node_weights;
-};
-
-struct crush_bucket_straw {
- struct crush_bucket h;
- __u32 *item_weights; /* 16-bit fixed point */
- __u32 *straws; /* 16-bit fixed point */
-};
-
-
-
-/*
- * CRUSH map includes all buckets, rules, etc.
- */
-struct crush_map {
- struct crush_bucket **buckets;
- struct crush_rule **rules;
-
- /*
- * Parent pointers to identify the parent bucket a device or
- * bucket in the hierarchy. If an item appears more than
- * once, this is the _last_ time it appeared (where buckets
- * are processed in bucket id order, from -1 on down to
- * -max_buckets.
- */
- __u32 *bucket_parents;
- __u32 *device_parents;
-
- __s32 max_buckets;
- __u32 max_rules;
- __s32 max_devices;
-};
-
-
-/* crush.c */
-extern int crush_get_bucket_item_weight(struct crush_bucket *b, int pos);
-extern void crush_calc_parents(struct crush_map *map);
-extern void crush_destroy_bucket_uniform(struct crush_bucket_uniform *b);
-extern void crush_destroy_bucket_list(struct crush_bucket_list *b);
-extern void crush_destroy_bucket_tree(struct crush_bucket_tree *b);
-extern void crush_destroy_bucket_straw(struct crush_bucket_straw *b);
-extern void crush_destroy_bucket(struct crush_bucket *b);
-extern void crush_destroy(struct crush_map *map);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/crush/hash.h b/ANDROID_3.4.5/include/linux/crush/hash.h
deleted file mode 100644
index 91e88423..00000000
--- a/ANDROID_3.4.5/include/linux/crush/hash.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef CEPH_CRUSH_HASH_H
-#define CEPH_CRUSH_HASH_H
-
-#define CRUSH_HASH_RJENKINS1 0
-
-#define CRUSH_HASH_DEFAULT CRUSH_HASH_RJENKINS1
-
-extern const char *crush_hash_name(int type);
-
-extern __u32 crush_hash32(int type, __u32 a);
-extern __u32 crush_hash32_2(int type, __u32 a, __u32 b);
-extern __u32 crush_hash32_3(int type, __u32 a, __u32 b, __u32 c);
-extern __u32 crush_hash32_4(int type, __u32 a, __u32 b, __u32 c, __u32 d);
-extern __u32 crush_hash32_5(int type, __u32 a, __u32 b, __u32 c, __u32 d,
- __u32 e);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/crush/mapper.h b/ANDROID_3.4.5/include/linux/crush/mapper.h
deleted file mode 100644
index c46b99c1..00000000
--- a/ANDROID_3.4.5/include/linux/crush/mapper.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef CEPH_CRUSH_MAPPER_H
-#define CEPH_CRUSH_MAPPER_H
-
-/*
- * CRUSH functions for find rules and then mapping an input to an
- * output set.
- *
- * LGPL2
- */
-
-#include "crush.h"
-
-extern int crush_find_rule(struct crush_map *map, int pool, int type, int size);
-extern int crush_do_rule(struct crush_map *map,
- int ruleno,
- int x, int *result, int result_max,
- int forcefeed, /* -1 for none */
- __u32 *weights);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/crypto.h b/ANDROID_3.4.5/include/linux/crypto.h
deleted file mode 100644
index b92eadf9..00000000
--- a/ANDROID_3.4.5/include/linux/crypto.h
+++ /dev/null
@@ -1,1287 +0,0 @@
-/*
- * Scatterlist Cryptographic API.
- *
- * Copyright (c) 2002 James Morris <jmorris@intercode.com.au>
- * Copyright (c) 2002 David S. Miller (davem@redhat.com)
- * Copyright (c) 2005 Herbert Xu <herbert@gondor.apana.org.au>
- *
- * Portions derived from Cryptoapi, by Alexander Kjeldaas <astor@fast.no>
- * and Nettle, by Niels Möller.
- *
- * 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/atomic.h>
-#include <linux/kernel.h>
-#include <linux/list.h>
-#include <linux/bug.h>
-#include <linux/slab.h>
-#include <linux/string.h>
-#include <linux/uaccess.h>
-
-/*
- * Algorithm masks and types.
- */
-#define CRYPTO_ALG_TYPE_MASK 0x0000000f
-#define CRYPTO_ALG_TYPE_CIPHER 0x00000001
-#define CRYPTO_ALG_TYPE_COMPRESS 0x00000002
-#define CRYPTO_ALG_TYPE_AEAD 0x00000003
-#define CRYPTO_ALG_TYPE_BLKCIPHER 0x00000004
-#define CRYPTO_ALG_TYPE_ABLKCIPHER 0x00000005
-#define CRYPTO_ALG_TYPE_GIVCIPHER 0x00000006
-#define CRYPTO_ALG_TYPE_DIGEST 0x00000008
-#define CRYPTO_ALG_TYPE_HASH 0x00000008
-#define CRYPTO_ALG_TYPE_SHASH 0x00000009
-#define CRYPTO_ALG_TYPE_AHASH 0x0000000a
-#define CRYPTO_ALG_TYPE_RNG 0x0000000c
-#define CRYPTO_ALG_TYPE_PCOMPRESS 0x0000000f
-
-#define CRYPTO_ALG_TYPE_HASH_MASK 0x0000000e
-#define CRYPTO_ALG_TYPE_AHASH_MASK 0x0000000c
-#define CRYPTO_ALG_TYPE_BLKCIPHER_MASK 0x0000000c
-
-#define CRYPTO_ALG_LARVAL 0x00000010
-#define CRYPTO_ALG_DEAD 0x00000020
-#define CRYPTO_ALG_DYING 0x00000040
-#define CRYPTO_ALG_ASYNC 0x00000080
-
-/*
- * Set this bit if and only if the algorithm requires another algorithm of
- * the same type to handle corner cases.
- */
-#define CRYPTO_ALG_NEED_FALLBACK 0x00000100
-
-/*
- * This bit is set for symmetric key ciphers that have already been wrapped
- * with a generic IV generator to prevent them from being wrapped again.
- */
-#define CRYPTO_ALG_GENIV 0x00000200
-
-/*
- * Set if the algorithm has passed automated run-time testing. Note that
- * if there is no run-time testing for a given algorithm it is considered
- * to have passed.
- */
-
-#define CRYPTO_ALG_TESTED 0x00000400
-
-/*
- * Set if the algorithm is an instance that is build from templates.
- */
-#define CRYPTO_ALG_INSTANCE 0x00000800
-
-/* Set this bit if the algorithm provided is hardware accelerated but
- * not available to userspace via instruction set or so.
- */
-#define CRYPTO_ALG_KERN_DRIVER_ONLY 0x00001000
-
-/*
- * Transform masks and values (for crt_flags).
- */
-#define CRYPTO_TFM_REQ_MASK 0x000fff00
-#define CRYPTO_TFM_RES_MASK 0xfff00000
-
-#define CRYPTO_TFM_REQ_WEAK_KEY 0x00000100
-#define CRYPTO_TFM_REQ_MAY_SLEEP 0x00000200
-#define CRYPTO_TFM_REQ_MAY_BACKLOG 0x00000400
-#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_MAX_ALG_NAME 64
-
-/*
- * The macro CRYPTO_MINALIGN_ATTR (along with the void * type in the actual
- * declaration) is used to ensure that the crypto_tfm context structure is
- * aligned correctly for the given architecture so that there are no alignment
- * faults for C data types. In particular, this is required on platforms such
- * as arm where pointers are 32-bit aligned but there are data types such as
- * u64 which require 64-bit alignment.
- */
-#define CRYPTO_MINALIGN ARCH_KMALLOC_MINALIGN
-
-#define CRYPTO_MINALIGN_ATTR __attribute__ ((__aligned__(CRYPTO_MINALIGN)))
-
-struct scatterlist;
-struct crypto_ablkcipher;
-struct crypto_async_request;
-struct crypto_aead;
-struct crypto_blkcipher;
-struct crypto_hash;
-struct crypto_rng;
-struct crypto_tfm;
-struct crypto_type;
-struct aead_givcrypt_request;
-struct skcipher_givcrypt_request;
-
-typedef void (*crypto_completion_t)(struct crypto_async_request *req, int err);
-
-struct crypto_async_request {
- struct list_head list;
- crypto_completion_t complete;
- void *data;
- struct crypto_tfm *tfm;
-
- u32 flags;
-};
-
-struct ablkcipher_request {
- struct crypto_async_request base;
-
- unsigned int nbytes;
-
- void *info;
-
- struct scatterlist *src;
- struct scatterlist *dst;
-
- void *__ctx[] CRYPTO_MINALIGN_ATTR;
-};
-
-/**
- * struct aead_request - AEAD request
- * @base: Common attributes for async crypto requests
- * @assoclen: Length in bytes of associated data for authentication
- * @cryptlen: Length of data to be encrypted or decrypted
- * @iv: Initialisation vector
- * @assoc: Associated data
- * @src: Source data
- * @dst: Destination data
- * @__ctx: Start of private context data
- */
-struct aead_request {
- struct crypto_async_request base;
-
- unsigned int assoclen;
- unsigned int cryptlen;
-
- u8 *iv;
-
- struct scatterlist *assoc;
- struct scatterlist *src;
- struct scatterlist *dst;
-
- void *__ctx[] CRYPTO_MINALIGN_ATTR;
-};
-
-struct blkcipher_desc {
- struct crypto_blkcipher *tfm;
- void *info;
- u32 flags;
-};
-
-struct cipher_desc {
- struct crypto_tfm *tfm;
- void (*crfn)(struct crypto_tfm *tfm, u8 *dst, const u8 *src);
- unsigned int (*prfn)(const struct cipher_desc *desc, u8 *dst,
- const u8 *src, unsigned int nbytes);
- void *info;
-};
-
-struct hash_desc {
- struct crypto_hash *tfm;
- u32 flags;
-};
-
-/*
- * Algorithms: modular crypto algorithm implementations, managed
- * via crypto_register_alg() and crypto_unregister_alg().
- */
-struct ablkcipher_alg {
- int (*setkey)(struct crypto_ablkcipher *tfm, const u8 *key,
- unsigned int keylen);
- int (*encrypt)(struct ablkcipher_request *req);
- int (*decrypt)(struct ablkcipher_request *req);
- int (*givencrypt)(struct skcipher_givcrypt_request *req);
- int (*givdecrypt)(struct skcipher_givcrypt_request *req);
-
- const char *geniv;
-
- unsigned int min_keysize;
- unsigned int max_keysize;
- unsigned int ivsize;
-};
-
-struct aead_alg {
- int (*setkey)(struct crypto_aead *tfm, const u8 *key,
- unsigned int keylen);
- int (*setauthsize)(struct crypto_aead *tfm, unsigned int authsize);
- int (*encrypt)(struct aead_request *req);
- int (*decrypt)(struct aead_request *req);
- int (*givencrypt)(struct aead_givcrypt_request *req);
- int (*givdecrypt)(struct aead_givcrypt_request *req);
-
- const char *geniv;
-
- unsigned int ivsize;
- unsigned int maxauthsize;
-};
-
-struct blkcipher_alg {
- int (*setkey)(struct crypto_tfm *tfm, const u8 *key,
- unsigned int keylen);
- int (*encrypt)(struct blkcipher_desc *desc,
- struct scatterlist *dst, struct scatterlist *src,
- unsigned int nbytes);
- int (*decrypt)(struct blkcipher_desc *desc,
- struct scatterlist *dst, struct scatterlist *src,
- unsigned int nbytes);
-
- const char *geniv;
-
- unsigned int min_keysize;
- unsigned int max_keysize;
- unsigned int ivsize;
-};
-
-struct cipher_alg {
- unsigned int cia_min_keysize;
- unsigned int cia_max_keysize;
- int (*cia_setkey)(struct crypto_tfm *tfm, const u8 *key,
- unsigned int keylen);
- void (*cia_encrypt)(struct crypto_tfm *tfm, u8 *dst, const u8 *src);
- void (*cia_decrypt)(struct crypto_tfm *tfm, u8 *dst, const u8 *src);
-};
-
-struct compress_alg {
- int (*coa_compress)(struct crypto_tfm *tfm, const u8 *src,
- unsigned int slen, u8 *dst, unsigned int *dlen);
- int (*coa_decompress)(struct crypto_tfm *tfm, const u8 *src,
- unsigned int slen, u8 *dst, unsigned int *dlen);
-};
-
-struct rng_alg {
- int (*rng_make_random)(struct crypto_rng *tfm, u8 *rdata,
- unsigned int dlen);
- int (*rng_reset)(struct crypto_rng *tfm, u8 *seed, unsigned int slen);
-
- unsigned int seedsize;
-};
-
-
-#define cra_ablkcipher cra_u.ablkcipher
-#define cra_aead cra_u.aead
-#define cra_blkcipher cra_u.blkcipher
-#define cra_cipher cra_u.cipher
-#define cra_compress cra_u.compress
-#define cra_rng cra_u.rng
-
-struct crypto_alg {
- struct list_head cra_list;
- struct list_head cra_users;
-
- u32 cra_flags;
- unsigned int cra_blocksize;
- unsigned int cra_ctxsize;
- unsigned int cra_alignmask;
-
- int cra_priority;
- atomic_t cra_refcnt;
-
- char cra_name[CRYPTO_MAX_ALG_NAME];
- char cra_driver_name[CRYPTO_MAX_ALG_NAME];
-
- const struct crypto_type *cra_type;
-
- union {
- struct ablkcipher_alg ablkcipher;
- struct aead_alg aead;
- struct blkcipher_alg blkcipher;
- struct cipher_alg cipher;
- struct compress_alg compress;
- struct rng_alg rng;
- } cra_u;
-
- int (*cra_init)(struct crypto_tfm *tfm);
- void (*cra_exit)(struct crypto_tfm *tfm);
- void (*cra_destroy)(struct crypto_alg *alg);
-
- struct module *cra_module;
-};
-
-/*
- * Algorithm registration interface.
- */
-int crypto_register_alg(struct crypto_alg *alg);
-int crypto_unregister_alg(struct crypto_alg *alg);
-int crypto_register_algs(struct crypto_alg *algs, int count);
-int crypto_unregister_algs(struct crypto_alg *algs, int count);
-
-/*
- * Algorithm query interface.
- */
-int crypto_has_alg(const char *name, u32 type, u32 mask);
-
-/*
- * Transforms: user-instantiated objects which encapsulate algorithms
- * and core processing logic. Managed via crypto_alloc_*() and
- * crypto_free_*(), as well as the various helpers below.
- */
-
-struct ablkcipher_tfm {
- int (*setkey)(struct crypto_ablkcipher *tfm, const u8 *key,
- unsigned int keylen);
- int (*encrypt)(struct ablkcipher_request *req);
- int (*decrypt)(struct ablkcipher_request *req);
- int (*givencrypt)(struct skcipher_givcrypt_request *req);
- int (*givdecrypt)(struct skcipher_givcrypt_request *req);
-
- struct crypto_ablkcipher *base;
-
- unsigned int ivsize;
- unsigned int reqsize;
-};
-
-struct aead_tfm {
- int (*setkey)(struct crypto_aead *tfm, const u8 *key,
- unsigned int keylen);
- int (*encrypt)(struct aead_request *req);
- int (*decrypt)(struct aead_request *req);
- int (*givencrypt)(struct aead_givcrypt_request *req);
- int (*givdecrypt)(struct aead_givcrypt_request *req);
-
- struct crypto_aead *base;
-
- unsigned int ivsize;
- unsigned int authsize;
- unsigned int reqsize;
-};
-
-struct blkcipher_tfm {
- void *iv;
- int (*setkey)(struct crypto_tfm *tfm, const u8 *key,
- unsigned int keylen);
- int (*encrypt)(struct blkcipher_desc *desc, struct scatterlist *dst,
- struct scatterlist *src, unsigned int nbytes);
- int (*decrypt)(struct blkcipher_desc *desc, struct scatterlist *dst,
- struct scatterlist *src, unsigned int nbytes);
-};
-
-struct cipher_tfm {
- int (*cit_setkey)(struct crypto_tfm *tfm,
- const u8 *key, unsigned int keylen);
- void (*cit_encrypt_one)(struct crypto_tfm *tfm, u8 *dst, const u8 *src);
- void (*cit_decrypt_one)(struct crypto_tfm *tfm, u8 *dst, const u8 *src);
-};
-
-struct hash_tfm {
- int (*init)(struct hash_desc *desc);
- int (*update)(struct hash_desc *desc,
- struct scatterlist *sg, unsigned int nsg);
- int (*final)(struct hash_desc *desc, u8 *out);
- int (*digest)(struct hash_desc *desc, struct scatterlist *sg,
- unsigned int nsg, u8 *out);
- int (*setkey)(struct crypto_hash *tfm, const u8 *key,
- unsigned int keylen);
- unsigned int digestsize;
-};
-
-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);
-};
-
-struct rng_tfm {
- int (*rng_gen_random)(struct crypto_rng *tfm, u8 *rdata,
- unsigned int dlen);
- int (*rng_reset)(struct crypto_rng *tfm, u8 *seed, unsigned int slen);
-};
-
-#define crt_ablkcipher crt_u.ablkcipher
-#define crt_aead crt_u.aead
-#define crt_blkcipher crt_u.blkcipher
-#define crt_cipher crt_u.cipher
-#define crt_hash crt_u.hash
-#define crt_compress crt_u.compress
-#define crt_rng crt_u.rng
-
-struct crypto_tfm {
-
- u32 crt_flags;
-
- union {
- struct ablkcipher_tfm ablkcipher;
- struct aead_tfm aead;
- struct blkcipher_tfm blkcipher;
- struct cipher_tfm cipher;
- struct hash_tfm hash;
- struct compress_tfm compress;
- struct rng_tfm rng;
- } crt_u;
-
- void (*exit)(struct crypto_tfm *tfm);
-
- struct crypto_alg *__crt_alg;
-
- void *__crt_ctx[] CRYPTO_MINALIGN_ATTR;
-};
-
-struct crypto_ablkcipher {
- struct crypto_tfm base;
-};
-
-struct crypto_aead {
- struct crypto_tfm base;
-};
-
-struct crypto_blkcipher {
- struct crypto_tfm base;
-};
-
-struct crypto_cipher {
- struct crypto_tfm base;
-};
-
-struct crypto_comp {
- struct crypto_tfm base;
-};
-
-struct crypto_hash {
- struct crypto_tfm base;
-};
-
-struct crypto_rng {
- struct crypto_tfm base;
-};
-
-enum {
- CRYPTOA_UNSPEC,
- CRYPTOA_ALG,
- CRYPTOA_TYPE,
- CRYPTOA_U32,
- __CRYPTOA_MAX,
-};
-
-#define CRYPTOA_MAX (__CRYPTOA_MAX - 1)
-
-/* Maximum number of (rtattr) parameters for each template. */
-#define CRYPTO_MAX_ATTRS 32
-
-struct crypto_attr_alg {
- char name[CRYPTO_MAX_ALG_NAME];
-};
-
-struct crypto_attr_type {
- u32 type;
- u32 mask;
-};
-
-struct crypto_attr_u32 {
- u32 num;
-};
-
-/*
- * Transform user interface.
- */
-
-struct crypto_tfm *crypto_alloc_base(const char *alg_name, u32 type, u32 mask);
-void crypto_destroy_tfm(void *mem, struct crypto_tfm *tfm);
-
-static inline void crypto_free_tfm(struct crypto_tfm *tfm)
-{
- return crypto_destroy_tfm(tfm, tfm);
-}
-
-int alg_test(const char *driver, const char *alg, u32 type, u32 mask);
-
-/*
- * 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_driver_name(struct crypto_tfm *tfm)
-{
- return tfm->__crt_alg->cra_driver_name;
-}
-
-static inline int crypto_tfm_alg_priority(struct crypto_tfm *tfm)
-{
- return tfm->__crt_alg->cra_priority;
-}
-
-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_blocksize(struct crypto_tfm *tfm)
-{
- return tfm->__crt_alg->cra_blocksize;
-}
-
-static inline unsigned int crypto_tfm_alg_alignmask(struct crypto_tfm *tfm)
-{
- return tfm->__crt_alg->cra_alignmask;
-}
-
-static inline u32 crypto_tfm_get_flags(struct crypto_tfm *tfm)
-{
- return tfm->crt_flags;
-}
-
-static inline void crypto_tfm_set_flags(struct crypto_tfm *tfm, u32 flags)
-{
- tfm->crt_flags |= flags;
-}
-
-static inline void crypto_tfm_clear_flags(struct crypto_tfm *tfm, u32 flags)
-{
- tfm->crt_flags &= ~flags;
-}
-
-static inline void *crypto_tfm_ctx(struct crypto_tfm *tfm)
-{
- return tfm->__crt_ctx;
-}
-
-static inline unsigned int crypto_tfm_ctx_alignment(void)
-{
- struct crypto_tfm *tfm;
- return __alignof__(tfm->__crt_ctx);
-}
-
-/*
- * API wrappers.
- */
-static inline struct crypto_ablkcipher *__crypto_ablkcipher_cast(
- struct crypto_tfm *tfm)
-{
- return (struct crypto_ablkcipher *)tfm;
-}
-
-static inline u32 crypto_skcipher_type(u32 type)
-{
- type &= ~(CRYPTO_ALG_TYPE_MASK | CRYPTO_ALG_GENIV);
- type |= CRYPTO_ALG_TYPE_BLKCIPHER;
- return type;
-}
-
-static inline u32 crypto_skcipher_mask(u32 mask)
-{
- mask &= ~(CRYPTO_ALG_TYPE_MASK | CRYPTO_ALG_GENIV);
- mask |= CRYPTO_ALG_TYPE_BLKCIPHER_MASK;
- return mask;
-}
-
-struct crypto_ablkcipher *crypto_alloc_ablkcipher(const char *alg_name,
- u32 type, u32 mask);
-
-static inline struct crypto_tfm *crypto_ablkcipher_tfm(
- struct crypto_ablkcipher *tfm)
-{
- return &tfm->base;
-}
-
-static inline void crypto_free_ablkcipher(struct crypto_ablkcipher *tfm)
-{
- crypto_free_tfm(crypto_ablkcipher_tfm(tfm));
-}
-
-static inline int crypto_has_ablkcipher(const char *alg_name, u32 type,
- u32 mask)
-{
- return crypto_has_alg(alg_name, crypto_skcipher_type(type),
- crypto_skcipher_mask(mask));
-}
-
-static inline struct ablkcipher_tfm *crypto_ablkcipher_crt(
- struct crypto_ablkcipher *tfm)
-{
- return &crypto_ablkcipher_tfm(tfm)->crt_ablkcipher;
-}
-
-static inline unsigned int crypto_ablkcipher_ivsize(
- struct crypto_ablkcipher *tfm)
-{
- return crypto_ablkcipher_crt(tfm)->ivsize;
-}
-
-static inline unsigned int crypto_ablkcipher_blocksize(
- struct crypto_ablkcipher *tfm)
-{
- return crypto_tfm_alg_blocksize(crypto_ablkcipher_tfm(tfm));
-}
-
-static inline unsigned int crypto_ablkcipher_alignmask(
- struct crypto_ablkcipher *tfm)
-{
- return crypto_tfm_alg_alignmask(crypto_ablkcipher_tfm(tfm));
-}
-
-static inline u32 crypto_ablkcipher_get_flags(struct crypto_ablkcipher *tfm)
-{
- return crypto_tfm_get_flags(crypto_ablkcipher_tfm(tfm));
-}
-
-static inline void crypto_ablkcipher_set_flags(struct crypto_ablkcipher *tfm,
- u32 flags)
-{
- crypto_tfm_set_flags(crypto_ablkcipher_tfm(tfm), flags);
-}
-
-static inline void crypto_ablkcipher_clear_flags(struct crypto_ablkcipher *tfm,
- u32 flags)
-{
- crypto_tfm_clear_flags(crypto_ablkcipher_tfm(tfm), flags);
-}
-
-static inline int crypto_ablkcipher_setkey(struct crypto_ablkcipher *tfm,
- const u8 *key, unsigned int keylen)
-{
- struct ablkcipher_tfm *crt = crypto_ablkcipher_crt(tfm);
-
- return crt->setkey(crt->base, key, keylen);
-}
-
-static inline struct crypto_ablkcipher *crypto_ablkcipher_reqtfm(
- struct ablkcipher_request *req)
-{
- return __crypto_ablkcipher_cast(req->base.tfm);
-}
-
-static inline int crypto_ablkcipher_encrypt(struct ablkcipher_request *req)
-{
- struct ablkcipher_tfm *crt =
- crypto_ablkcipher_crt(crypto_ablkcipher_reqtfm(req));
- return crt->encrypt(req);
-}
-
-static inline int crypto_ablkcipher_decrypt(struct ablkcipher_request *req)
-{
- struct ablkcipher_tfm *crt =
- crypto_ablkcipher_crt(crypto_ablkcipher_reqtfm(req));
- return crt->decrypt(req);
-}
-
-static inline unsigned int crypto_ablkcipher_reqsize(
- struct crypto_ablkcipher *tfm)
-{
- return crypto_ablkcipher_crt(tfm)->reqsize;
-}
-
-static inline void ablkcipher_request_set_tfm(
- struct ablkcipher_request *req, struct crypto_ablkcipher *tfm)
-{
- req->base.tfm = crypto_ablkcipher_tfm(crypto_ablkcipher_crt(tfm)->base);
-}
-
-static inline struct ablkcipher_request *ablkcipher_request_cast(
- struct crypto_async_request *req)
-{
- return container_of(req, struct ablkcipher_request, base);
-}
-
-static inline struct ablkcipher_request *ablkcipher_request_alloc(
- struct crypto_ablkcipher *tfm, gfp_t gfp)
-{
- struct ablkcipher_request *req;
-
- req = kmalloc(sizeof(struct ablkcipher_request) +
- crypto_ablkcipher_reqsize(tfm), gfp);
-
- if (likely(req))
- ablkcipher_request_set_tfm(req, tfm);
-
- return req;
-}
-
-static inline void ablkcipher_request_free(struct ablkcipher_request *req)
-{
- kzfree(req);
-}
-
-static inline void ablkcipher_request_set_callback(
- struct ablkcipher_request *req,
- u32 flags, crypto_completion_t complete, void *data)
-{
- req->base.complete = complete;
- req->base.data = data;
- req->base.flags = flags;
-}
-
-static inline void ablkcipher_request_set_crypt(
- struct ablkcipher_request *req,
- struct scatterlist *src, struct scatterlist *dst,
- unsigned int nbytes, void *iv)
-{
- req->src = src;
- req->dst = dst;
- req->nbytes = nbytes;
- req->info = iv;
-}
-
-static inline struct crypto_aead *__crypto_aead_cast(struct crypto_tfm *tfm)
-{
- return (struct crypto_aead *)tfm;
-}
-
-struct crypto_aead *crypto_alloc_aead(const char *alg_name, u32 type, u32 mask);
-
-static inline struct crypto_tfm *crypto_aead_tfm(struct crypto_aead *tfm)
-{
- return &tfm->base;
-}
-
-static inline void crypto_free_aead(struct crypto_aead *tfm)
-{
- crypto_free_tfm(crypto_aead_tfm(tfm));
-}
-
-static inline struct aead_tfm *crypto_aead_crt(struct crypto_aead *tfm)
-{
- return &crypto_aead_tfm(tfm)->crt_aead;
-}
-
-static inline unsigned int crypto_aead_ivsize(struct crypto_aead *tfm)
-{
- return crypto_aead_crt(tfm)->ivsize;
-}
-
-static inline unsigned int crypto_aead_authsize(struct crypto_aead *tfm)
-{
- return crypto_aead_crt(tfm)->authsize;
-}
-
-static inline unsigned int crypto_aead_blocksize(struct crypto_aead *tfm)
-{
- return crypto_tfm_alg_blocksize(crypto_aead_tfm(tfm));
-}
-
-static inline unsigned int crypto_aead_alignmask(struct crypto_aead *tfm)
-{
- return crypto_tfm_alg_alignmask(crypto_aead_tfm(tfm));
-}
-
-static inline u32 crypto_aead_get_flags(struct crypto_aead *tfm)
-{
- return crypto_tfm_get_flags(crypto_aead_tfm(tfm));
-}
-
-static inline void crypto_aead_set_flags(struct crypto_aead *tfm, u32 flags)
-{
- crypto_tfm_set_flags(crypto_aead_tfm(tfm), flags);
-}
-
-static inline void crypto_aead_clear_flags(struct crypto_aead *tfm, u32 flags)
-{
- crypto_tfm_clear_flags(crypto_aead_tfm(tfm), flags);
-}
-
-static inline int crypto_aead_setkey(struct crypto_aead *tfm, const u8 *key,
- unsigned int keylen)
-{
- struct aead_tfm *crt = crypto_aead_crt(tfm);
-
- return crt->setkey(crt->base, key, keylen);
-}
-
-int crypto_aead_setauthsize(struct crypto_aead *tfm, unsigned int authsize);
-
-static inline struct crypto_aead *crypto_aead_reqtfm(struct aead_request *req)
-{
- return __crypto_aead_cast(req->base.tfm);
-}
-
-static inline int crypto_aead_encrypt(struct aead_request *req)
-{
- return crypto_aead_crt(crypto_aead_reqtfm(req))->encrypt(req);
-}
-
-static inline int crypto_aead_decrypt(struct aead_request *req)
-{
- return crypto_aead_crt(crypto_aead_reqtfm(req))->decrypt(req);
-}
-
-static inline unsigned int crypto_aead_reqsize(struct crypto_aead *tfm)
-{
- return crypto_aead_crt(tfm)->reqsize;
-}
-
-static inline void aead_request_set_tfm(struct aead_request *req,
- struct crypto_aead *tfm)
-{
- req->base.tfm = crypto_aead_tfm(crypto_aead_crt(tfm)->base);
-}
-
-static inline struct aead_request *aead_request_alloc(struct crypto_aead *tfm,
- gfp_t gfp)
-{
- struct aead_request *req;
-
- req = kmalloc(sizeof(*req) + crypto_aead_reqsize(tfm), gfp);
-
- if (likely(req))
- aead_request_set_tfm(req, tfm);
-
- return req;
-}
-
-static inline void aead_request_free(struct aead_request *req)
-{
- kzfree(req);
-}
-
-static inline void aead_request_set_callback(struct aead_request *req,
- u32 flags,
- crypto_completion_t complete,
- void *data)
-{
- req->base.complete = complete;
- req->base.data = data;
- req->base.flags = flags;
-}
-
-static inline void aead_request_set_crypt(struct aead_request *req,
- struct scatterlist *src,
- struct scatterlist *dst,
- unsigned int cryptlen, u8 *iv)
-{
- req->src = src;
- req->dst = dst;
- req->cryptlen = cryptlen;
- req->iv = iv;
-}
-
-static inline void aead_request_set_assoc(struct aead_request *req,
- struct scatterlist *assoc,
- unsigned int assoclen)
-{
- req->assoc = assoc;
- req->assoclen = assoclen;
-}
-
-static inline struct crypto_blkcipher *__crypto_blkcipher_cast(
- struct crypto_tfm *tfm)
-{
- return (struct crypto_blkcipher *)tfm;
-}
-
-static inline struct crypto_blkcipher *crypto_blkcipher_cast(
- struct crypto_tfm *tfm)
-{
- BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_BLKCIPHER);
- return __crypto_blkcipher_cast(tfm);
-}
-
-static inline struct crypto_blkcipher *crypto_alloc_blkcipher(
- const char *alg_name, u32 type, u32 mask)
-{
- type &= ~CRYPTO_ALG_TYPE_MASK;
- type |= CRYPTO_ALG_TYPE_BLKCIPHER;
- mask |= CRYPTO_ALG_TYPE_MASK;
-
- return __crypto_blkcipher_cast(crypto_alloc_base(alg_name, type, mask));
-}
-
-static inline struct crypto_tfm *crypto_blkcipher_tfm(
- struct crypto_blkcipher *tfm)
-{
- return &tfm->base;
-}
-
-static inline void crypto_free_blkcipher(struct crypto_blkcipher *tfm)
-{
- crypto_free_tfm(crypto_blkcipher_tfm(tfm));
-}
-
-static inline int crypto_has_blkcipher(const char *alg_name, u32 type, u32 mask)
-{
- type &= ~CRYPTO_ALG_TYPE_MASK;
- type |= CRYPTO_ALG_TYPE_BLKCIPHER;
- mask |= CRYPTO_ALG_TYPE_MASK;
-
- return crypto_has_alg(alg_name, type, mask);
-}
-
-static inline const char *crypto_blkcipher_name(struct crypto_blkcipher *tfm)
-{
- return crypto_tfm_alg_name(crypto_blkcipher_tfm(tfm));
-}
-
-static inline struct blkcipher_tfm *crypto_blkcipher_crt(
- struct crypto_blkcipher *tfm)
-{
- return &crypto_blkcipher_tfm(tfm)->crt_blkcipher;
-}
-
-static inline struct blkcipher_alg *crypto_blkcipher_alg(
- struct crypto_blkcipher *tfm)
-{
- return &crypto_blkcipher_tfm(tfm)->__crt_alg->cra_blkcipher;
-}
-
-static inline unsigned int crypto_blkcipher_ivsize(struct crypto_blkcipher *tfm)
-{
- return crypto_blkcipher_alg(tfm)->ivsize;
-}
-
-static inline unsigned int crypto_blkcipher_blocksize(
- struct crypto_blkcipher *tfm)
-{
- return crypto_tfm_alg_blocksize(crypto_blkcipher_tfm(tfm));
-}
-
-static inline unsigned int crypto_blkcipher_alignmask(
- struct crypto_blkcipher *tfm)
-{
- return crypto_tfm_alg_alignmask(crypto_blkcipher_tfm(tfm));
-}
-
-static inline u32 crypto_blkcipher_get_flags(struct crypto_blkcipher *tfm)
-{
- return crypto_tfm_get_flags(crypto_blkcipher_tfm(tfm));
-}
-
-static inline void crypto_blkcipher_set_flags(struct crypto_blkcipher *tfm,
- u32 flags)
-{
- crypto_tfm_set_flags(crypto_blkcipher_tfm(tfm), flags);
-}
-
-static inline void crypto_blkcipher_clear_flags(struct crypto_blkcipher *tfm,
- u32 flags)
-{
- crypto_tfm_clear_flags(crypto_blkcipher_tfm(tfm), flags);
-}
-
-static inline int crypto_blkcipher_setkey(struct crypto_blkcipher *tfm,
- const u8 *key, unsigned int keylen)
-{
- return crypto_blkcipher_crt(tfm)->setkey(crypto_blkcipher_tfm(tfm),
- key, keylen);
-}
-
-static inline int crypto_blkcipher_encrypt(struct blkcipher_desc *desc,
- struct scatterlist *dst,
- struct scatterlist *src,
- unsigned int nbytes)
-{
- desc->info = crypto_blkcipher_crt(desc->tfm)->iv;
- return crypto_blkcipher_crt(desc->tfm)->encrypt(desc, dst, src, nbytes);
-}
-
-static inline int crypto_blkcipher_encrypt_iv(struct blkcipher_desc *desc,
- struct scatterlist *dst,
- struct scatterlist *src,
- unsigned int nbytes)
-{
- return crypto_blkcipher_crt(desc->tfm)->encrypt(desc, dst, src, nbytes);
-}
-
-static inline int crypto_blkcipher_decrypt(struct blkcipher_desc *desc,
- struct scatterlist *dst,
- struct scatterlist *src,
- unsigned int nbytes)
-{
- desc->info = crypto_blkcipher_crt(desc->tfm)->iv;
- return crypto_blkcipher_crt(desc->tfm)->decrypt(desc, dst, src, nbytes);
-}
-
-static inline int crypto_blkcipher_decrypt_iv(struct blkcipher_desc *desc,
- struct scatterlist *dst,
- struct scatterlist *src,
- unsigned int nbytes)
-{
- return crypto_blkcipher_crt(desc->tfm)->decrypt(desc, dst, src, nbytes);
-}
-
-static inline void crypto_blkcipher_set_iv(struct crypto_blkcipher *tfm,
- const u8 *src, unsigned int len)
-{
- memcpy(crypto_blkcipher_crt(tfm)->iv, src, len);
-}
-
-static inline void crypto_blkcipher_get_iv(struct crypto_blkcipher *tfm,
- u8 *dst, unsigned int len)
-{
- memcpy(dst, crypto_blkcipher_crt(tfm)->iv, len);
-}
-
-static inline struct crypto_cipher *__crypto_cipher_cast(struct crypto_tfm *tfm)
-{
- return (struct crypto_cipher *)tfm;
-}
-
-static inline struct crypto_cipher *crypto_cipher_cast(struct crypto_tfm *tfm)
-{
- BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER);
- return __crypto_cipher_cast(tfm);
-}
-
-static inline struct crypto_cipher *crypto_alloc_cipher(const char *alg_name,
- u32 type, u32 mask)
-{
- type &= ~CRYPTO_ALG_TYPE_MASK;
- type |= CRYPTO_ALG_TYPE_CIPHER;
- mask |= CRYPTO_ALG_TYPE_MASK;
-
- return __crypto_cipher_cast(crypto_alloc_base(alg_name, type, mask));
-}
-
-static inline struct crypto_tfm *crypto_cipher_tfm(struct crypto_cipher *tfm)
-{
- return &tfm->base;
-}
-
-static inline void crypto_free_cipher(struct crypto_cipher *tfm)
-{
- crypto_free_tfm(crypto_cipher_tfm(tfm));
-}
-
-static inline int crypto_has_cipher(const char *alg_name, u32 type, u32 mask)
-{
- type &= ~CRYPTO_ALG_TYPE_MASK;
- type |= CRYPTO_ALG_TYPE_CIPHER;
- mask |= CRYPTO_ALG_TYPE_MASK;
-
- return crypto_has_alg(alg_name, type, mask);
-}
-
-static inline struct cipher_tfm *crypto_cipher_crt(struct crypto_cipher *tfm)
-{
- return &crypto_cipher_tfm(tfm)->crt_cipher;
-}
-
-static inline unsigned int crypto_cipher_blocksize(struct crypto_cipher *tfm)
-{
- return crypto_tfm_alg_blocksize(crypto_cipher_tfm(tfm));
-}
-
-static inline unsigned int crypto_cipher_alignmask(struct crypto_cipher *tfm)
-{
- return crypto_tfm_alg_alignmask(crypto_cipher_tfm(tfm));
-}
-
-static inline u32 crypto_cipher_get_flags(struct crypto_cipher *tfm)
-{
- return crypto_tfm_get_flags(crypto_cipher_tfm(tfm));
-}
-
-static inline void crypto_cipher_set_flags(struct crypto_cipher *tfm,
- u32 flags)
-{
- crypto_tfm_set_flags(crypto_cipher_tfm(tfm), flags);
-}
-
-static inline void crypto_cipher_clear_flags(struct crypto_cipher *tfm,
- u32 flags)
-{
- crypto_tfm_clear_flags(crypto_cipher_tfm(tfm), flags);
-}
-
-static inline int crypto_cipher_setkey(struct crypto_cipher *tfm,
- const u8 *key, unsigned int keylen)
-{
- return crypto_cipher_crt(tfm)->cit_setkey(crypto_cipher_tfm(tfm),
- key, keylen);
-}
-
-static inline void crypto_cipher_encrypt_one(struct crypto_cipher *tfm,
- u8 *dst, const u8 *src)
-{
- crypto_cipher_crt(tfm)->cit_encrypt_one(crypto_cipher_tfm(tfm),
- dst, src);
-}
-
-static inline void crypto_cipher_decrypt_one(struct crypto_cipher *tfm,
- u8 *dst, const u8 *src)
-{
- crypto_cipher_crt(tfm)->cit_decrypt_one(crypto_cipher_tfm(tfm),
- dst, src);
-}
-
-static inline struct crypto_hash *__crypto_hash_cast(struct crypto_tfm *tfm)
-{
- return (struct crypto_hash *)tfm;
-}
-
-static inline struct crypto_hash *crypto_hash_cast(struct crypto_tfm *tfm)
-{
- BUG_ON((crypto_tfm_alg_type(tfm) ^ CRYPTO_ALG_TYPE_HASH) &
- CRYPTO_ALG_TYPE_HASH_MASK);
- return __crypto_hash_cast(tfm);
-}
-
-static inline struct crypto_hash *crypto_alloc_hash(const char *alg_name,
- u32 type, u32 mask)
-{
- type &= ~CRYPTO_ALG_TYPE_MASK;
- mask &= ~CRYPTO_ALG_TYPE_MASK;
- type |= CRYPTO_ALG_TYPE_HASH;
- mask |= CRYPTO_ALG_TYPE_HASH_MASK;
-
- return __crypto_hash_cast(crypto_alloc_base(alg_name, type, mask));
-}
-
-static inline struct crypto_tfm *crypto_hash_tfm(struct crypto_hash *tfm)
-{
- return &tfm->base;
-}
-
-static inline void crypto_free_hash(struct crypto_hash *tfm)
-{
- crypto_free_tfm(crypto_hash_tfm(tfm));
-}
-
-static inline int crypto_has_hash(const char *alg_name, u32 type, u32 mask)
-{
- type &= ~CRYPTO_ALG_TYPE_MASK;
- mask &= ~CRYPTO_ALG_TYPE_MASK;
- type |= CRYPTO_ALG_TYPE_HASH;
- mask |= CRYPTO_ALG_TYPE_HASH_MASK;
-
- return crypto_has_alg(alg_name, type, mask);
-}
-
-static inline struct hash_tfm *crypto_hash_crt(struct crypto_hash *tfm)
-{
- return &crypto_hash_tfm(tfm)->crt_hash;
-}
-
-static inline unsigned int crypto_hash_blocksize(struct crypto_hash *tfm)
-{
- return crypto_tfm_alg_blocksize(crypto_hash_tfm(tfm));
-}
-
-static inline unsigned int crypto_hash_alignmask(struct crypto_hash *tfm)
-{
- return crypto_tfm_alg_alignmask(crypto_hash_tfm(tfm));
-}
-
-static inline unsigned int crypto_hash_digestsize(struct crypto_hash *tfm)
-{
- return crypto_hash_crt(tfm)->digestsize;
-}
-
-static inline u32 crypto_hash_get_flags(struct crypto_hash *tfm)
-{
- return crypto_tfm_get_flags(crypto_hash_tfm(tfm));
-}
-
-static inline void crypto_hash_set_flags(struct crypto_hash *tfm, u32 flags)
-{
- crypto_tfm_set_flags(crypto_hash_tfm(tfm), flags);
-}
-
-static inline void crypto_hash_clear_flags(struct crypto_hash *tfm, u32 flags)
-{
- crypto_tfm_clear_flags(crypto_hash_tfm(tfm), flags);
-}
-
-static inline int crypto_hash_init(struct hash_desc *desc)
-{
- return crypto_hash_crt(desc->tfm)->init(desc);
-}
-
-static inline int crypto_hash_update(struct hash_desc *desc,
- struct scatterlist *sg,
- unsigned int nbytes)
-{
- return crypto_hash_crt(desc->tfm)->update(desc, sg, nbytes);
-}
-
-static inline int crypto_hash_final(struct hash_desc *desc, u8 *out)
-{
- return crypto_hash_crt(desc->tfm)->final(desc, out);
-}
-
-static inline int crypto_hash_digest(struct hash_desc *desc,
- struct scatterlist *sg,
- unsigned int nbytes, u8 *out)
-{
- return crypto_hash_crt(desc->tfm)->digest(desc, sg, nbytes, out);
-}
-
-static inline int crypto_hash_setkey(struct crypto_hash *hash,
- const u8 *key, unsigned int keylen)
-{
- return crypto_hash_crt(hash)->setkey(hash, key, keylen);
-}
-
-static inline struct crypto_comp *__crypto_comp_cast(struct crypto_tfm *tfm)
-{
- return (struct crypto_comp *)tfm;
-}
-
-static inline struct crypto_comp *crypto_comp_cast(struct crypto_tfm *tfm)
-{
- BUG_ON((crypto_tfm_alg_type(tfm) ^ CRYPTO_ALG_TYPE_COMPRESS) &
- CRYPTO_ALG_TYPE_MASK);
- return __crypto_comp_cast(tfm);
-}
-
-static inline struct crypto_comp *crypto_alloc_comp(const char *alg_name,
- u32 type, u32 mask)
-{
- type &= ~CRYPTO_ALG_TYPE_MASK;
- type |= CRYPTO_ALG_TYPE_COMPRESS;
- mask |= CRYPTO_ALG_TYPE_MASK;
-
- return __crypto_comp_cast(crypto_alloc_base(alg_name, type, mask));
-}
-
-static inline struct crypto_tfm *crypto_comp_tfm(struct crypto_comp *tfm)
-{
- return &tfm->base;
-}
-
-static inline void crypto_free_comp(struct crypto_comp *tfm)
-{
- crypto_free_tfm(crypto_comp_tfm(tfm));
-}
-
-static inline int crypto_has_comp(const char *alg_name, u32 type, u32 mask)
-{
- type &= ~CRYPTO_ALG_TYPE_MASK;
- type |= CRYPTO_ALG_TYPE_COMPRESS;
- mask |= CRYPTO_ALG_TYPE_MASK;
-
- return crypto_has_alg(alg_name, type, mask);
-}
-
-static inline const char *crypto_comp_name(struct crypto_comp *tfm)
-{
- return crypto_tfm_alg_name(crypto_comp_tfm(tfm));
-}
-
-static inline struct compress_tfm *crypto_comp_crt(struct crypto_comp *tfm)
-{
- return &crypto_comp_tfm(tfm)->crt_compress;
-}
-
-static inline int crypto_comp_compress(struct crypto_comp *tfm,
- const u8 *src, unsigned int slen,
- u8 *dst, unsigned int *dlen)
-{
- return crypto_comp_crt(tfm)->cot_compress(crypto_comp_tfm(tfm),
- src, slen, dst, dlen);
-}
-
-static inline int crypto_comp_decompress(struct crypto_comp *tfm,
- const u8 *src, unsigned int slen,
- u8 *dst, unsigned int *dlen)
-{
- return crypto_comp_crt(tfm)->cot_decompress(crypto_comp_tfm(tfm),
- src, slen, dst, dlen);
-}
-
-#endif /* _LINUX_CRYPTO_H */
-
diff --git a/ANDROID_3.4.5/include/linux/cryptohash.h b/ANDROID_3.4.5/include/linux/cryptohash.h
deleted file mode 100644
index 2cd9f1cf..00000000
--- a/ANDROID_3.4.5/include/linux/cryptohash.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef __CRYPTOHASH_H
-#define __CRYPTOHASH_H
-
-#define SHA_DIGEST_WORDS 5
-#define SHA_MESSAGE_BYTES (512 /*bits*/ / 8)
-#define SHA_WORKSPACE_WORDS 16
-
-void sha_init(__u32 *buf);
-void sha_transform(__u32 *digest, const char *data, __u32 *W);
-
-#define MD5_DIGEST_WORDS 4
-#define MD5_MESSAGE_BYTES 64
-
-void md5_transform(__u32 *hash, __u32 const *in);
-
-__u32 half_md4_transform(__u32 buf[4], __u32 const in[8]);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/cryptouser.h b/ANDROID_3.4.5/include/linux/cryptouser.h
deleted file mode 100644
index 4abf2ea6..00000000
--- a/ANDROID_3.4.5/include/linux/cryptouser.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Crypto user configuration API.
- *
- * Copyright (C) 2011 secunet Security Networks AG
- * Copyright (C) 2011 Steffen Klassert <steffen.klassert@secunet.com>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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.
- */
-
-/* Netlink configuration messages. */
-enum {
- CRYPTO_MSG_BASE = 0x10,
- CRYPTO_MSG_NEWALG = 0x10,
- CRYPTO_MSG_DELALG,
- CRYPTO_MSG_UPDATEALG,
- CRYPTO_MSG_GETALG,
- __CRYPTO_MSG_MAX
-};
-#define CRYPTO_MSG_MAX (__CRYPTO_MSG_MAX - 1)
-#define CRYPTO_NR_MSGTYPES (CRYPTO_MSG_MAX + 1 - CRYPTO_MSG_BASE)
-
-#define CRYPTO_MAX_NAME CRYPTO_MAX_ALG_NAME
-
-/* Netlink message attributes. */
-enum crypto_attr_type_t {
- CRYPTOCFGA_UNSPEC,
- CRYPTOCFGA_PRIORITY_VAL, /* __u32 */
- CRYPTOCFGA_REPORT_LARVAL, /* struct crypto_report_larval */
- CRYPTOCFGA_REPORT_HASH, /* struct crypto_report_hash */
- CRYPTOCFGA_REPORT_BLKCIPHER, /* struct crypto_report_blkcipher */
- CRYPTOCFGA_REPORT_AEAD, /* struct crypto_report_aead */
- CRYPTOCFGA_REPORT_COMPRESS, /* struct crypto_report_comp */
- CRYPTOCFGA_REPORT_RNG, /* struct crypto_report_rng */
- CRYPTOCFGA_REPORT_CIPHER, /* struct crypto_report_cipher */
- __CRYPTOCFGA_MAX
-
-#define CRYPTOCFGA_MAX (__CRYPTOCFGA_MAX - 1)
-};
-
-struct crypto_user_alg {
- char cru_name[CRYPTO_MAX_ALG_NAME];
- char cru_driver_name[CRYPTO_MAX_ALG_NAME];
- char cru_module_name[CRYPTO_MAX_ALG_NAME];
- __u32 cru_type;
- __u32 cru_mask;
- __u32 cru_refcnt;
- __u32 cru_flags;
-};
-
-struct crypto_report_larval {
- char type[CRYPTO_MAX_NAME];
-};
-
-struct crypto_report_hash {
- char type[CRYPTO_MAX_NAME];
- unsigned int blocksize;
- unsigned int digestsize;
-};
-
-struct crypto_report_cipher {
- char type[CRYPTO_MAX_ALG_NAME];
- unsigned int blocksize;
- unsigned int min_keysize;
- unsigned int max_keysize;
-};
-
-struct crypto_report_blkcipher {
- char type[CRYPTO_MAX_NAME];
- char geniv[CRYPTO_MAX_NAME];
- unsigned int blocksize;
- unsigned int min_keysize;
- unsigned int max_keysize;
- unsigned int ivsize;
-};
-
-struct crypto_report_aead {
- char type[CRYPTO_MAX_NAME];
- char geniv[CRYPTO_MAX_NAME];
- unsigned int blocksize;
- unsigned int maxauthsize;
- unsigned int ivsize;
-};
-
-struct crypto_report_comp {
- char type[CRYPTO_MAX_NAME];
-};
-
-struct crypto_report_rng {
- char type[CRYPTO_MAX_NAME];
- unsigned int seedsize;
-};
-
-#define CRYPTO_REPORT_MAXSIZE (sizeof(struct crypto_user_alg) + \
- sizeof(struct crypto_report_blkcipher))
diff --git a/ANDROID_3.4.5/include/linux/cs5535.h b/ANDROID_3.4.5/include/linux/cs5535.h
deleted file mode 100644
index c077aec3..00000000
--- a/ANDROID_3.4.5/include/linux/cs5535.h
+++ /dev/null
@@ -1,238 +0,0 @@
-/*
- * AMD CS5535/CS5536 definitions
- * Copyright (C) 2006 Advanced Micro Devices, Inc.
- * Copyright (C) 2009 Andres Salomon <dilinger@collabora.co.uk>
- *
- * 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.
- */
-
-#ifndef _CS5535_H
-#define _CS5535_H
-
-#include <asm/msr.h>
-
-/* MSRs */
-#define MSR_GLIU_P2D_RO0 0x10000029
-
-#define MSR_LX_GLD_MSR_CONFIG 0x48002001
-#define MSR_LX_MSR_PADSEL 0x48002011 /* NOT 0x48000011; the data
- * sheet has the wrong value */
-#define MSR_GLCP_SYS_RSTPLL 0x4C000014
-#define MSR_GLCP_DOTPLL 0x4C000015
-
-#define MSR_LBAR_SMB 0x5140000B
-#define MSR_LBAR_GPIO 0x5140000C
-#define MSR_LBAR_MFGPT 0x5140000D
-#define MSR_LBAR_ACPI 0x5140000E
-#define MSR_LBAR_PMS 0x5140000F
-
-#define MSR_DIVIL_SOFT_RESET 0x51400017
-
-#define MSR_PIC_YSEL_LOW 0x51400020
-#define MSR_PIC_YSEL_HIGH 0x51400021
-#define MSR_PIC_ZSEL_LOW 0x51400022
-#define MSR_PIC_ZSEL_HIGH 0x51400023
-#define MSR_PIC_IRQM_LPC 0x51400025
-
-#define MSR_MFGPT_IRQ 0x51400028
-#define MSR_MFGPT_NR 0x51400029
-#define MSR_MFGPT_SETUP 0x5140002B
-
-#define MSR_RTC_DOMA_OFFSET 0x51400055
-#define MSR_RTC_MONA_OFFSET 0x51400056
-#define MSR_RTC_CEN_OFFSET 0x51400057
-
-#define MSR_LX_SPARE_MSR 0x80000011 /* DC-specific */
-
-#define MSR_GX_GLD_MSR_CONFIG 0xC0002001
-#define MSR_GX_MSR_PADSEL 0xC0002011
-
-static inline int cs5535_pic_unreqz_select_high(unsigned int group,
- unsigned int irq)
-{
- uint32_t lo, hi;
-
- rdmsr(MSR_PIC_ZSEL_HIGH, lo, hi);
- lo &= ~(0xF << (group * 4));
- lo |= (irq & 0xF) << (group * 4);
- wrmsr(MSR_PIC_ZSEL_HIGH, lo, hi);
- return 0;
-}
-
-/* PIC registers */
-#define CS5536_PIC_INT_SEL1 0x4d0
-#define CS5536_PIC_INT_SEL2 0x4d1
-
-/* resource sizes */
-#define LBAR_GPIO_SIZE 0xFF
-#define LBAR_MFGPT_SIZE 0x40
-#define LBAR_ACPI_SIZE 0x40
-#define LBAR_PMS_SIZE 0x80
-
-/*
- * PMC registers (PMS block)
- * It is only safe to access these registers as dword accesses.
- * See CS5536 Specification Update erratas 17 & 18
- */
-#define CS5536_PM_SCLK 0x10
-#define CS5536_PM_IN_SLPCTL 0x20
-#define CS5536_PM_WKXD 0x34
-#define CS5536_PM_WKD 0x30
-#define CS5536_PM_SSC 0x54
-
-/*
- * PM registers (ACPI block)
- * It is only safe to access these registers as dword accesses.
- * See CS5536 Specification Update erratas 17 & 18
- */
-#define CS5536_PM1_STS 0x00
-#define CS5536_PM1_EN 0x02
-#define CS5536_PM1_CNT 0x08
-#define CS5536_PM_GPE0_STS 0x18
-#define CS5536_PM_GPE0_EN 0x1c
-
-/* CS5536_PM1_STS bits */
-#define CS5536_WAK_FLAG (1 << 15)
-#define CS5536_PWRBTN_FLAG (1 << 8)
-
-/* CS5536_PM1_EN bits */
-#define CS5536_PM_PWRBTN (1 << 8)
-#define CS5536_PM_RTC (1 << 10)
-
-/* CS5536_PM_GPE0_STS bits */
-#define CS5536_GPIOM7_PME_FLAG (1 << 31)
-#define CS5536_GPIOM6_PME_FLAG (1 << 30)
-
-/* CS5536_PM_GPE0_EN bits */
-#define CS5536_GPIOM7_PME_EN (1 << 31)
-#define CS5536_GPIOM6_PME_EN (1 << 30)
-
-/* VSA2 magic values */
-#define VSA_VRC_INDEX 0xAC1C
-#define VSA_VRC_DATA 0xAC1E
-#define VSA_VR_UNLOCK 0xFC53 /* unlock virtual register */
-#define VSA_VR_SIGNATURE 0x0003
-#define VSA_VR_MEM_SIZE 0x0200
-#define AMD_VSA_SIG 0x4132 /* signature is ascii 'VSA2' */
-#define GSW_VSA_SIG 0x534d /* General Software signature */
-
-#include <linux/io.h>
-
-static inline int cs5535_has_vsa2(void)
-{
- static int has_vsa2 = -1;
-
- if (has_vsa2 == -1) {
- uint16_t val;
-
- /*
- * The VSA has virtual registers that we can query for a
- * signature.
- */
- outw(VSA_VR_UNLOCK, VSA_VRC_INDEX);
- outw(VSA_VR_SIGNATURE, VSA_VRC_INDEX);
-
- val = inw(VSA_VRC_DATA);
- has_vsa2 = (val == AMD_VSA_SIG || val == GSW_VSA_SIG);
- }
-
- return has_vsa2;
-}
-
-/* GPIOs */
-#define GPIO_OUTPUT_VAL 0x00
-#define GPIO_OUTPUT_ENABLE 0x04
-#define GPIO_OUTPUT_OPEN_DRAIN 0x08
-#define GPIO_OUTPUT_INVERT 0x0C
-#define GPIO_OUTPUT_AUX1 0x10
-#define GPIO_OUTPUT_AUX2 0x14
-#define GPIO_PULL_UP 0x18
-#define GPIO_PULL_DOWN 0x1C
-#define GPIO_INPUT_ENABLE 0x20
-#define GPIO_INPUT_INVERT 0x24
-#define GPIO_INPUT_FILTER 0x28
-#define GPIO_INPUT_EVENT_COUNT 0x2C
-#define GPIO_READ_BACK 0x30
-#define GPIO_INPUT_AUX1 0x34
-#define GPIO_EVENTS_ENABLE 0x38
-#define GPIO_LOCK_ENABLE 0x3C
-#define GPIO_POSITIVE_EDGE_EN 0x40
-#define GPIO_NEGATIVE_EDGE_EN 0x44
-#define GPIO_POSITIVE_EDGE_STS 0x48
-#define GPIO_NEGATIVE_EDGE_STS 0x4C
-
-#define GPIO_FLTR7_AMOUNT 0xD8
-
-#define GPIO_MAP_X 0xE0
-#define GPIO_MAP_Y 0xE4
-#define GPIO_MAP_Z 0xE8
-#define GPIO_MAP_W 0xEC
-
-#define GPIO_FE7_SEL 0xF7
-
-void cs5535_gpio_set(unsigned offset, unsigned int reg);
-void cs5535_gpio_clear(unsigned offset, unsigned int reg);
-int cs5535_gpio_isset(unsigned offset, unsigned int reg);
-int cs5535_gpio_set_irq(unsigned group, unsigned irq);
-void cs5535_gpio_setup_event(unsigned offset, int pair, int pme);
-
-/* MFGPTs */
-
-#define MFGPT_MAX_TIMERS 8
-#define MFGPT_TIMER_ANY (-1)
-
-#define MFGPT_DOMAIN_WORKING 1
-#define MFGPT_DOMAIN_STANDBY 2
-#define MFGPT_DOMAIN_ANY (MFGPT_DOMAIN_WORKING | MFGPT_DOMAIN_STANDBY)
-
-#define MFGPT_CMP1 0
-#define MFGPT_CMP2 1
-
-#define MFGPT_EVENT_IRQ 0
-#define MFGPT_EVENT_NMI 1
-#define MFGPT_EVENT_RESET 3
-
-#define MFGPT_REG_CMP1 0
-#define MFGPT_REG_CMP2 2
-#define MFGPT_REG_COUNTER 4
-#define MFGPT_REG_SETUP 6
-
-#define MFGPT_SETUP_CNTEN (1 << 15)
-#define MFGPT_SETUP_CMP2 (1 << 14)
-#define MFGPT_SETUP_CMP1 (1 << 13)
-#define MFGPT_SETUP_SETUP (1 << 12)
-#define MFGPT_SETUP_STOPEN (1 << 11)
-#define MFGPT_SETUP_EXTEN (1 << 10)
-#define MFGPT_SETUP_REVEN (1 << 5)
-#define MFGPT_SETUP_CLKSEL (1 << 4)
-
-struct cs5535_mfgpt_timer;
-
-extern uint16_t cs5535_mfgpt_read(struct cs5535_mfgpt_timer *timer,
- uint16_t reg);
-extern void cs5535_mfgpt_write(struct cs5535_mfgpt_timer *timer, uint16_t reg,
- uint16_t value);
-
-extern int cs5535_mfgpt_toggle_event(struct cs5535_mfgpt_timer *timer, int cmp,
- int event, int enable);
-extern int cs5535_mfgpt_set_irq(struct cs5535_mfgpt_timer *timer, int cmp,
- int *irq, int enable);
-extern struct cs5535_mfgpt_timer *cs5535_mfgpt_alloc_timer(int timer,
- int domain);
-extern void cs5535_mfgpt_free_timer(struct cs5535_mfgpt_timer *timer);
-
-static inline int cs5535_mfgpt_setup_irq(struct cs5535_mfgpt_timer *timer,
- int cmp, int *irq)
-{
- return cs5535_mfgpt_set_irq(timer, cmp, irq, 1);
-}
-
-static inline int cs5535_mfgpt_release_irq(struct cs5535_mfgpt_timer *timer,
- int cmp, int *irq)
-{
- return cs5535_mfgpt_set_irq(timer, cmp, irq, 0);
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ctype.h b/ANDROID_3.4.5/include/linux/ctype.h
deleted file mode 100644
index 8acfe312..00000000
--- a/ANDROID_3.4.5/include/linux/ctype.h
+++ /dev/null
@@ -1,64 +0,0 @@
-#ifndef _LINUX_CTYPE_H
-#define _LINUX_CTYPE_H
-
-/*
- * NOTE! This ctype does not handle EOF like the standard C
- * library is required to.
- */
-
-#define _U 0x01 /* upper */
-#define _L 0x02 /* lower */
-#define _D 0x04 /* digit */
-#define _C 0x08 /* cntrl */
-#define _P 0x10 /* punct */
-#define _S 0x20 /* white space (space/lf/tab) */
-#define _X 0x40 /* hex digit */
-#define _SP 0x80 /* hard space (0x20) */
-
-extern const unsigned char _ctype[];
-
-#define __ismask(x) (_ctype[(int)(unsigned char)(x)])
-
-#define isalnum(c) ((__ismask(c)&(_U|_L|_D)) != 0)
-#define isalpha(c) ((__ismask(c)&(_U|_L)) != 0)
-#define iscntrl(c) ((__ismask(c)&(_C)) != 0)
-#define isdigit(c) ((__ismask(c)&(_D)) != 0)
-#define isgraph(c) ((__ismask(c)&(_P|_U|_L|_D)) != 0)
-#define islower(c) ((__ismask(c)&(_L)) != 0)
-#define isprint(c) ((__ismask(c)&(_P|_U|_L|_D|_SP)) != 0)
-#define ispunct(c) ((__ismask(c)&(_P)) != 0)
-/* Note: isspace() must return false for %NUL-terminator */
-#define isspace(c) ((__ismask(c)&(_S)) != 0)
-#define isupper(c) ((__ismask(c)&(_U)) != 0)
-#define isxdigit(c) ((__ismask(c)&(_D|_X)) != 0)
-
-#define isascii(c) (((unsigned char)(c))<=0x7f)
-#define toascii(c) (((unsigned char)(c))&0x7f)
-
-static inline unsigned char __tolower(unsigned char c)
-{
- if (isupper(c))
- c -= 'A'-'a';
- return c;
-}
-
-static inline unsigned char __toupper(unsigned char c)
-{
- if (islower(c))
- c -= 'a'-'A';
- return c;
-}
-
-#define tolower(c) __tolower(c)
-#define toupper(c) __toupper(c)
-
-/*
- * Fast implementation of tolower() for internal usage. Do not use in your
- * code.
- */
-static inline char _tolower(const char c)
-{
- return c | 0x20;
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/cuda.h b/ANDROID_3.4.5/include/linux/cuda.h
deleted file mode 100644
index 9f9865ff..00000000
--- a/ANDROID_3.4.5/include/linux/cuda.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Definitions for talking to the CUDA. The CUDA is a microcontroller
- * which controls the ADB, system power, RTC, and various other things.
- *
- * Copyright (C) 1996 Paul Mackerras.
- */
-
-#ifndef _LINUX_CUDA_H
-#define _LINUX_CUDA_H
-
-/* CUDA commands (2nd byte) */
-#define CUDA_WARM_START 0
-#define CUDA_AUTOPOLL 1
-#define CUDA_GET_6805_ADDR 2
-#define CUDA_GET_TIME 3
-#define CUDA_GET_PRAM 7
-#define CUDA_SET_6805_ADDR 8
-#define CUDA_SET_TIME 9
-#define CUDA_POWERDOWN 0xa
-#define CUDA_POWERUP_TIME 0xb
-#define CUDA_SET_PRAM 0xc
-#define CUDA_MS_RESET 0xd
-#define CUDA_SEND_DFAC 0xe
-#define CUDA_RESET_SYSTEM 0x11
-#define CUDA_SET_IPL 0x12
-#define CUDA_SET_AUTO_RATE 0x14
-#define CUDA_GET_AUTO_RATE 0x16
-#define CUDA_SET_DEVICE_LIST 0x19
-#define CUDA_GET_DEVICE_LIST 0x1a
-#define CUDA_GET_SET_IIC 0x22
-
-#ifdef __KERNEL__
-
-extern int find_via_cuda(void);
-extern int cuda_request(struct adb_request *req,
- void (*done)(struct adb_request *), int nbytes, ...);
-extern void cuda_poll(void);
-
-#endif /* __KERNEL */
-
-#endif /* _LINUX_CUDA_H */
diff --git a/ANDROID_3.4.5/include/linux/cyclades.h b/ANDROID_3.4.5/include/linux/cyclades.h
deleted file mode 100644
index a5049eaf..00000000
--- a/ANDROID_3.4.5/include/linux/cyclades.h
+++ /dev/null
@@ -1,784 +0,0 @@
-/* $Revision: 3.0 $$Date: 1998/11/02 14:20:59 $
- * linux/include/linux/cyclades.h
- *
- * This file was initially written by
- * Randolph Bentson <bentson@grieg.seaslug.org> and is maintained by
- * Ivan Passos <ivan@cyclades.com>.
- *
- * This file contains the general definitions for the cyclades.c driver
- *$Log: cyclades.h,v $
- *Revision 3.1 2002/01/29 11:36:16 henrique
- *added throttle field on struct cyclades_port to indicate whether the
- *port is throttled or not
- *
- *Revision 3.1 2000/04/19 18:52:52 ivan
- *converted address fields to unsigned long and added fields for physical
- *addresses on cyclades_card structure;
- *
- *Revision 3.0 1998/11/02 14:20:59 ivan
- *added nports field on cyclades_card structure;
- *
- *Revision 2.5 1998/08/03 16:57:01 ivan
- *added cyclades_idle_stats structure;
- *
- *Revision 2.4 1998/06/01 12:09:53 ivan
- *removed closing_wait2 from cyclades_port structure;
- *
- *Revision 2.3 1998/03/16 18:01:12 ivan
- *changes in the cyclades_port structure to get it closer to the
- *standard serial port structure;
- *added constants for new ioctls;
- *
- *Revision 2.2 1998/02/17 16:50:00 ivan
- *changes in the cyclades_port structure (addition of shutdown_wait and
- *chip_rev variables);
- *added constants for new ioctls and for CD1400 rev. numbers.
- *
- *Revision 2.1 1997/10/24 16:03:00 ivan
- *added rflow (which allows enabling the CD1400 special flow control
- *feature) and rtsdtr_inv (which allows DTR/RTS pin inversion) to
- *cyclades_port structure;
- *added Alpha support
- *
- *Revision 2.0 1997/06/30 10:30:00 ivan
- *added some new doorbell command constants related to IOCTLW and
- *UART error signaling
- *
- *Revision 1.8 1997/06/03 15:30:00 ivan
- *added constant ZFIRM_HLT
- *added constant CyPCI_Ze_win ( = 2 * Cy_PCI_Zwin)
- *
- *Revision 1.7 1997/03/26 10:30:00 daniel
- *new entries at the end of cyclades_port struct to reallocate
- *variables illegally allocated within card memory.
- *
- *Revision 1.6 1996/09/09 18:35:30 bentson
- *fold in changes for Cyclom-Z -- including structures for
- *communicating with board as well modest changes to original
- *structures to support new features.
- *
- *Revision 1.5 1995/11/13 21:13:31 bentson
- *changes suggested by Michael Chastain <mec@duracef.shout.net>
- *to support use of this file in non-kernel applications
- *
- *
- */
-
-#ifndef _LINUX_CYCLADES_H
-#define _LINUX_CYCLADES_H
-
-#include <linux/types.h>
-
-struct cyclades_monitor {
- unsigned long int_count;
- unsigned long char_count;
- unsigned long char_max;
- unsigned long char_last;
-};
-
-/*
- * These stats all reflect activity since the device was last initialized.
- * (i.e., since the port was opened with no other processes already having it
- * open)
- */
-struct cyclades_idle_stats {
- __kernel_time_t in_use; /* Time device has been in use (secs) */
- __kernel_time_t recv_idle; /* Time since last char received (secs) */
- __kernel_time_t xmit_idle; /* Time since last char transmitted (secs) */
- unsigned long recv_bytes; /* Bytes received */
- unsigned long xmit_bytes; /* Bytes transmitted */
- unsigned long overruns; /* Input overruns */
- unsigned long frame_errs; /* Input framing errors */
- unsigned long parity_errs; /* Input parity errors */
-};
-
-#define CYCLADES_MAGIC 0x4359
-
-#define CYGETMON 0x435901
-#define CYGETTHRESH 0x435902
-#define CYSETTHRESH 0x435903
-#define CYGETDEFTHRESH 0x435904
-#define CYSETDEFTHRESH 0x435905
-#define CYGETTIMEOUT 0x435906
-#define CYSETTIMEOUT 0x435907
-#define CYGETDEFTIMEOUT 0x435908
-#define CYSETDEFTIMEOUT 0x435909
-#define CYSETRFLOW 0x43590a
-#define CYGETRFLOW 0x43590b
-#define CYSETRTSDTR_INV 0x43590c
-#define CYGETRTSDTR_INV 0x43590d
-#define CYZSETPOLLCYCLE 0x43590e
-#define CYZGETPOLLCYCLE 0x43590f
-#define CYGETCD1400VER 0x435910
-#define CYSETWAIT 0x435912
-#define CYGETWAIT 0x435913
-
-/*************** CYCLOM-Z ADDITIONS ***************/
-
-#define CZIOC ('M' << 8)
-#define CZ_NBOARDS (CZIOC|0xfa)
-#define CZ_BOOT_START (CZIOC|0xfb)
-#define CZ_BOOT_DATA (CZIOC|0xfc)
-#define CZ_BOOT_END (CZIOC|0xfd)
-#define CZ_TEST (CZIOC|0xfe)
-
-#define CZ_DEF_POLL (HZ/25)
-
-#define MAX_BOARD 4 /* Max number of boards */
-#define MAX_DEV 256 /* Max number of ports total */
-#define CYZ_MAX_SPEED 921600
-
-#define CYZ_FIFO_SIZE 16
-
-#define CYZ_BOOT_NWORDS 0x100
-struct CYZ_BOOT_CTRL {
- unsigned short nboard;
- int status[MAX_BOARD];
- int nchannel[MAX_BOARD];
- int fw_rev[MAX_BOARD];
- unsigned long offset;
- unsigned long data[CYZ_BOOT_NWORDS];
-};
-
-
-#ifndef DP_WINDOW_SIZE
-/*
- * Memory Window Sizes
- */
-
-#define DP_WINDOW_SIZE (0x00080000) /* window size 512 Kb */
-#define ZE_DP_WINDOW_SIZE (0x00100000) /* window size 1 Mb (Ze and
- 8Zo V.2 */
-#define CTRL_WINDOW_SIZE (0x00000080) /* runtime regs 128 bytes */
-
-/*
- * CUSTOM_REG - Cyclom-Z/PCI Custom Registers Set. The driver
- * normally will access only interested on the fpga_id, fpga_version,
- * start_cpu and stop_cpu.
- */
-
-struct CUSTOM_REG {
- __u32 fpga_id; /* FPGA Identification Register */
- __u32 fpga_version; /* FPGA Version Number Register */
- __u32 cpu_start; /* CPU start Register (write) */
- __u32 cpu_stop; /* CPU stop Register (write) */
- __u32 misc_reg; /* Miscellaneous Register */
- __u32 idt_mode; /* IDT mode Register */
- __u32 uart_irq_status; /* UART IRQ status Register */
- __u32 clear_timer0_irq; /* Clear timer interrupt Register */
- __u32 clear_timer1_irq; /* Clear timer interrupt Register */
- __u32 clear_timer2_irq; /* Clear timer interrupt Register */
- __u32 test_register; /* Test Register */
- __u32 test_count; /* Test Count Register */
- __u32 timer_select; /* Timer select register */
- __u32 pr_uart_irq_status; /* Prioritized UART IRQ stat Reg */
- __u32 ram_wait_state; /* RAM wait-state Register */
- __u32 uart_wait_state; /* UART wait-state Register */
- __u32 timer_wait_state; /* timer wait-state Register */
- __u32 ack_wait_state; /* ACK wait State Register */
-};
-
-/*
- * RUNTIME_9060 - PLX PCI9060ES local configuration and shared runtime
- * registers. This structure can be used to access the 9060 registers
- * (memory mapped).
- */
-
-struct RUNTIME_9060 {
- __u32 loc_addr_range; /* 00h - Local Address Range */
- __u32 loc_addr_base; /* 04h - Local Address Base */
- __u32 loc_arbitr; /* 08h - Local Arbitration */
- __u32 endian_descr; /* 0Ch - Big/Little Endian Descriptor */
- __u32 loc_rom_range; /* 10h - Local ROM Range */
- __u32 loc_rom_base; /* 14h - Local ROM Base */
- __u32 loc_bus_descr; /* 18h - Local Bus descriptor */
- __u32 loc_range_mst; /* 1Ch - Local Range for Master to PCI */
- __u32 loc_base_mst; /* 20h - Local Base for Master PCI */
- __u32 loc_range_io; /* 24h - Local Range for Master IO */
- __u32 pci_base_mst; /* 28h - PCI Base for Master PCI */
- __u32 pci_conf_io; /* 2Ch - PCI configuration for Master IO */
- __u32 filler1; /* 30h */
- __u32 filler2; /* 34h */
- __u32 filler3; /* 38h */
- __u32 filler4; /* 3Ch */
- __u32 mail_box_0; /* 40h - Mail Box 0 */
- __u32 mail_box_1; /* 44h - Mail Box 1 */
- __u32 mail_box_2; /* 48h - Mail Box 2 */
- __u32 mail_box_3; /* 4Ch - Mail Box 3 */
- __u32 filler5; /* 50h */
- __u32 filler6; /* 54h */
- __u32 filler7; /* 58h */
- __u32 filler8; /* 5Ch */
- __u32 pci_doorbell; /* 60h - PCI to Local Doorbell */
- __u32 loc_doorbell; /* 64h - Local to PCI Doorbell */
- __u32 intr_ctrl_stat; /* 68h - Interrupt Control/Status */
- __u32 init_ctrl; /* 6Ch - EEPROM control, Init Control, etc */
-};
-
-/* Values for the Local Base Address re-map register */
-
-#define WIN_RAM 0x00000001L /* set the sliding window to RAM */
-#define WIN_CREG 0x14000001L /* set the window to custom Registers */
-
-/* Values timer select registers */
-
-#define TIMER_BY_1M 0x00 /* clock divided by 1M */
-#define TIMER_BY_256K 0x01 /* clock divided by 256k */
-#define TIMER_BY_128K 0x02 /* clock divided by 128k */
-#define TIMER_BY_32K 0x03 /* clock divided by 32k */
-
-/****************** ****************** *******************/
-#endif
-
-#ifndef ZFIRM_ID
-/* #include "zfwint.h" */
-/****************** ****************** *******************/
-/*
- * This file contains the definitions for interfacing with the
- * Cyclom-Z ZFIRM Firmware.
- */
-
-/* General Constant definitions */
-
-#define MAX_CHAN 64 /* max number of channels per board */
-
-/* firmware id structure (set after boot) */
-
-#define ID_ADDRESS 0x00000180L /* signature/pointer address */
-#define ZFIRM_ID 0x5557465AL /* ZFIRM/U signature */
-#define ZFIRM_HLT 0x59505B5CL /* ZFIRM needs external power supply */
-#define ZFIRM_RST 0x56040674L /* RST signal (due to FW reset) */
-
-#define ZF_TINACT_DEF 1000 /* default inactivity timeout
- (1000 ms) */
-#define ZF_TINACT ZF_TINACT_DEF
-
-struct FIRM_ID {
- __u32 signature; /* ZFIRM/U signature */
- __u32 zfwctrl_addr; /* pointer to ZFW_CTRL structure */
-};
-
-/* Op. System id */
-
-#define C_OS_LINUX 0x00000030 /* generic Linux system */
-
-/* channel op_mode */
-
-#define C_CH_DISABLE 0x00000000 /* channel is disabled */
-#define C_CH_TXENABLE 0x00000001 /* channel Tx enabled */
-#define C_CH_RXENABLE 0x00000002 /* channel Rx enabled */
-#define C_CH_ENABLE 0x00000003 /* channel Tx/Rx enabled */
-#define C_CH_LOOPBACK 0x00000004 /* Loopback mode */
-
-/* comm_parity - parity */
-
-#define C_PR_NONE 0x00000000 /* None */
-#define C_PR_ODD 0x00000001 /* Odd */
-#define C_PR_EVEN 0x00000002 /* Even */
-#define C_PR_MARK 0x00000004 /* Mark */
-#define C_PR_SPACE 0x00000008 /* Space */
-#define C_PR_PARITY 0x000000ff
-
-#define C_PR_DISCARD 0x00000100 /* discard char with frame/par error */
-#define C_PR_IGNORE 0x00000200 /* ignore frame/par error */
-
-/* comm_data_l - data length and stop bits */
-
-#define C_DL_CS5 0x00000001
-#define C_DL_CS6 0x00000002
-#define C_DL_CS7 0x00000004
-#define C_DL_CS8 0x00000008
-#define C_DL_CS 0x0000000f
-#define C_DL_1STOP 0x00000010
-#define C_DL_15STOP 0x00000020
-#define C_DL_2STOP 0x00000040
-#define C_DL_STOP 0x000000f0
-
-/* interrupt enabling/status */
-
-#define C_IN_DISABLE 0x00000000 /* zero, disable interrupts */
-#define C_IN_TXBEMPTY 0x00000001 /* tx buffer empty */
-#define C_IN_TXLOWWM 0x00000002 /* tx buffer below LWM */
-#define C_IN_RXHIWM 0x00000010 /* rx buffer above HWM */
-#define C_IN_RXNNDT 0x00000020 /* rx no new data timeout */
-#define C_IN_MDCD 0x00000100 /* modem DCD change */
-#define C_IN_MDSR 0x00000200 /* modem DSR change */
-#define C_IN_MRI 0x00000400 /* modem RI change */
-#define C_IN_MCTS 0x00000800 /* modem CTS change */
-#define C_IN_RXBRK 0x00001000 /* Break received */
-#define C_IN_PR_ERROR 0x00002000 /* parity error */
-#define C_IN_FR_ERROR 0x00004000 /* frame error */
-#define C_IN_OVR_ERROR 0x00008000 /* overrun error */
-#define C_IN_RXOFL 0x00010000 /* RX buffer overflow */
-#define C_IN_IOCTLW 0x00020000 /* I/O control w/ wait */
-#define C_IN_MRTS 0x00040000 /* modem RTS drop */
-#define C_IN_ICHAR 0x00080000
-
-/* flow control */
-
-#define C_FL_OXX 0x00000001 /* output Xon/Xoff flow control */
-#define C_FL_IXX 0x00000002 /* output Xon/Xoff flow control */
-#define C_FL_OIXANY 0x00000004 /* output Xon/Xoff (any xon) */
-#define C_FL_SWFLOW 0x0000000f
-
-/* flow status */
-
-#define C_FS_TXIDLE 0x00000000 /* no Tx data in the buffer or UART */
-#define C_FS_SENDING 0x00000001 /* UART is sending data */
-#define C_FS_SWFLOW 0x00000002 /* Tx is stopped by received Xoff */
-
-/* rs_control/rs_status RS-232 signals */
-
-#define C_RS_PARAM 0x80000000 /* Indicates presence of parameter in
- IOCTLM command */
-#define C_RS_RTS 0x00000001 /* RTS */
-#define C_RS_DTR 0x00000004 /* DTR */
-#define C_RS_DCD 0x00000100 /* CD */
-#define C_RS_DSR 0x00000200 /* DSR */
-#define C_RS_RI 0x00000400 /* RI */
-#define C_RS_CTS 0x00000800 /* CTS */
-
-/* commands Host <-> Board */
-
-#define C_CM_RESET 0x01 /* reset/flush buffers */
-#define C_CM_IOCTL 0x02 /* re-read CH_CTRL */
-#define C_CM_IOCTLW 0x03 /* re-read CH_CTRL, intr when done */
-#define C_CM_IOCTLM 0x04 /* RS-232 outputs change */
-#define C_CM_SENDXOFF 0x10 /* send Xoff */
-#define C_CM_SENDXON 0x11 /* send Xon */
-#define C_CM_CLFLOW 0x12 /* Clear flow control (resume) */
-#define C_CM_SENDBRK 0x41 /* send break */
-#define C_CM_INTBACK 0x42 /* Interrupt back */
-#define C_CM_SET_BREAK 0x43 /* Tx break on */
-#define C_CM_CLR_BREAK 0x44 /* Tx break off */
-#define C_CM_CMD_DONE 0x45 /* Previous command done */
-#define C_CM_INTBACK2 0x46 /* Alternate Interrupt back */
-#define C_CM_TINACT 0x51 /* set inactivity detection */
-#define C_CM_IRQ_ENBL 0x52 /* enable generation of interrupts */
-#define C_CM_IRQ_DSBL 0x53 /* disable generation of interrupts */
-#define C_CM_ACK_ENBL 0x54 /* enable acknowledged interrupt mode */
-#define C_CM_ACK_DSBL 0x55 /* disable acknowledged intr mode */
-#define C_CM_FLUSH_RX 0x56 /* flushes Rx buffer */
-#define C_CM_FLUSH_TX 0x57 /* flushes Tx buffer */
-#define C_CM_Q_ENABLE 0x58 /* enables queue access from the
- driver */
-#define C_CM_Q_DISABLE 0x59 /* disables queue access from the
- driver */
-
-#define C_CM_TXBEMPTY 0x60 /* Tx buffer is empty */
-#define C_CM_TXLOWWM 0x61 /* Tx buffer low water mark */
-#define C_CM_RXHIWM 0x62 /* Rx buffer high water mark */
-#define C_CM_RXNNDT 0x63 /* rx no new data timeout */
-#define C_CM_TXFEMPTY 0x64
-#define C_CM_ICHAR 0x65
-#define C_CM_MDCD 0x70 /* modem DCD change */
-#define C_CM_MDSR 0x71 /* modem DSR change */
-#define C_CM_MRI 0x72 /* modem RI change */
-#define C_CM_MCTS 0x73 /* modem CTS change */
-#define C_CM_MRTS 0x74 /* modem RTS drop */
-#define C_CM_RXBRK 0x84 /* Break received */
-#define C_CM_PR_ERROR 0x85 /* Parity error */
-#define C_CM_FR_ERROR 0x86 /* Frame error */
-#define C_CM_OVR_ERROR 0x87 /* Overrun error */
-#define C_CM_RXOFL 0x88 /* RX buffer overflow */
-#define C_CM_CMDERROR 0x90 /* command error */
-#define C_CM_FATAL 0x91 /* fatal error */
-#define C_CM_HW_RESET 0x92 /* reset board */
-
-/*
- * CH_CTRL - This per port structure contains all parameters
- * that control an specific port. It can be seen as the
- * configuration registers of a "super-serial-controller".
- */
-
-struct CH_CTRL {
- __u32 op_mode; /* operation mode */
- __u32 intr_enable; /* interrupt masking */
- __u32 sw_flow; /* SW flow control */
- __u32 flow_status; /* output flow status */
- __u32 comm_baud; /* baud rate - numerically specified */
- __u32 comm_parity; /* parity */
- __u32 comm_data_l; /* data length/stop */
- __u32 comm_flags; /* other flags */
- __u32 hw_flow; /* HW flow control */
- __u32 rs_control; /* RS-232 outputs */
- __u32 rs_status; /* RS-232 inputs */
- __u32 flow_xon; /* xon char */
- __u32 flow_xoff; /* xoff char */
- __u32 hw_overflow; /* hw overflow counter */
- __u32 sw_overflow; /* sw overflow counter */
- __u32 comm_error; /* frame/parity error counter */
- __u32 ichar;
- __u32 filler[7];
-};
-
-
-/*
- * BUF_CTRL - This per channel structure contains
- * all Tx and Rx buffer control for a given channel.
- */
-
-struct BUF_CTRL {
- __u32 flag_dma; /* buffers are in Host memory */
- __u32 tx_bufaddr; /* address of the tx buffer */
- __u32 tx_bufsize; /* tx buffer size */
- __u32 tx_threshold; /* tx low water mark */
- __u32 tx_get; /* tail index tx buf */
- __u32 tx_put; /* head index tx buf */
- __u32 rx_bufaddr; /* address of the rx buffer */
- __u32 rx_bufsize; /* rx buffer size */
- __u32 rx_threshold; /* rx high water mark */
- __u32 rx_get; /* tail index rx buf */
- __u32 rx_put; /* head index rx buf */
- __u32 filler[5]; /* filler to align structures */
-};
-
-/*
- * BOARD_CTRL - This per board structure contains all global
- * control fields related to the board.
- */
-
-struct BOARD_CTRL {
-
- /* static info provided by the on-board CPU */
- __u32 n_channel; /* number of channels */
- __u32 fw_version; /* firmware version */
-
- /* static info provided by the driver */
- __u32 op_system; /* op_system id */
- __u32 dr_version; /* driver version */
-
- /* board control area */
- __u32 inactivity; /* inactivity control */
-
- /* host to FW commands */
- __u32 hcmd_channel; /* channel number */
- __u32 hcmd_param; /* pointer to parameters */
-
- /* FW to Host commands */
- __u32 fwcmd_channel; /* channel number */
- __u32 fwcmd_param; /* pointer to parameters */
- __u32 zf_int_queue_addr; /* offset for INT_QUEUE structure */
-
- /* filler so the structures are aligned */
- __u32 filler[6];
-};
-
-/* Host Interrupt Queue */
-
-#define QUEUE_SIZE (10*MAX_CHAN)
-
-struct INT_QUEUE {
- unsigned char intr_code[QUEUE_SIZE];
- unsigned long channel[QUEUE_SIZE];
- unsigned long param[QUEUE_SIZE];
- unsigned long put;
- unsigned long get;
-};
-
-/*
- * ZFW_CTRL - This is the data structure that includes all other
- * data structures used by the Firmware.
- */
-
-struct ZFW_CTRL {
- struct BOARD_CTRL board_ctrl;
- struct CH_CTRL ch_ctrl[MAX_CHAN];
- struct BUF_CTRL buf_ctrl[MAX_CHAN];
-};
-
-/****************** ****************** *******************/
-#endif
-
-#ifdef __KERNEL__
-
-/* Per card data structure */
-struct cyclades_card {
- void __iomem *base_addr;
- union {
- void __iomem *p9050;
- struct RUNTIME_9060 __iomem *p9060;
- } ctl_addr;
- struct BOARD_CTRL __iomem *board_ctrl; /* cyz specific */
- int irq;
- unsigned int num_chips; /* 0 if card absent, -1 if Z/PCI, else Y */
- unsigned int first_line; /* minor number of first channel on card */
- unsigned int nports; /* Number of ports in the card */
- int bus_index; /* address shift - 0 for ISA, 1 for PCI */
- int intr_enabled; /* FW Interrupt flag - 0 disabled, 1 enabled */
- u32 hw_ver;
- spinlock_t card_lock;
- struct cyclades_port *ports;
-};
-
-/***************************************
- * Memory access functions/macros *
- * (required to support Alpha systems) *
- ***************************************/
-
-#define cy_writeb(port,val) do { writeb((val), (port)); mb(); } while (0)
-#define cy_writew(port,val) do { writew((val), (port)); mb(); } while (0)
-#define cy_writel(port,val) do { writel((val), (port)); mb(); } while (0)
-
-/*
- * Statistics counters
- */
-struct cyclades_icount {
- __u32 cts, dsr, rng, dcd, tx, rx;
- __u32 frame, parity, overrun, brk;
- __u32 buf_overrun;
-};
-
-/*
- * This is our internal structure for each serial port's state.
- *
- * Many fields are paralleled by the structure used by the serial_struct
- * structure.
- *
- * For definitions of the flags field, see tty.h
- */
-
-struct cyclades_port {
- int magic;
- struct tty_port port;
- struct cyclades_card *card;
- union {
- struct {
- void __iomem *base_addr;
- } cyy;
- struct {
- struct CH_CTRL __iomem *ch_ctrl;
- struct BUF_CTRL __iomem *buf_ctrl;
- } cyz;
- } u;
- int line;
- int flags; /* defined in tty.h */
- int type; /* UART type */
- int read_status_mask;
- int ignore_status_mask;
- int timeout;
- int xmit_fifo_size;
- int cor1,cor2,cor3,cor4,cor5;
- int tbpr,tco,rbpr,rco;
- int baud;
- int rflow;
- int rtsdtr_inv;
- int chip_rev;
- int custom_divisor;
- u8 x_char; /* to be pushed out ASAP */
- int breakon;
- int breakoff;
- int xmit_head;
- int xmit_tail;
- int xmit_cnt;
- int default_threshold;
- int default_timeout;
- unsigned long rflush_count;
- struct cyclades_monitor mon;
- struct cyclades_idle_stats idle_stats;
- struct cyclades_icount icount;
- struct completion shutdown_wait;
- int throttle;
-};
-
-#define CLOSING_WAIT_DELAY 30*HZ
-#define CY_CLOSING_WAIT_NONE ASYNC_CLOSING_WAIT_NONE
-#define CY_CLOSING_WAIT_INF ASYNC_CLOSING_WAIT_INF
-
-
-#define CyMAX_CHIPS_PER_CARD 8
-#define CyMAX_CHAR_FIFO 12
-#define CyPORTS_PER_CHIP 4
-#define CD1400_MAX_SPEED 115200
-
-#define CyISA_Ywin 0x2000
-
-#define CyPCI_Ywin 0x4000
-#define CyPCI_Yctl 0x80
-#define CyPCI_Zctl CTRL_WINDOW_SIZE
-#define CyPCI_Zwin 0x80000
-#define CyPCI_Ze_win (2 * CyPCI_Zwin)
-
-#define PCI_DEVICE_ID_MASK 0x06
-
-/**** CD1400 registers ****/
-
-#define CD1400_REV_G 0x46
-#define CD1400_REV_J 0x48
-
-#define CyRegSize 0x0400
-#define Cy_HwReset 0x1400
-#define Cy_ClrIntr 0x1800
-#define Cy_EpldRev 0x1e00
-
-/* Global Registers */
-
-#define CyGFRCR (0x40*2)
-#define CyRevE (44)
-#define CyCAR (0x68*2)
-#define CyCHAN_0 (0x00)
-#define CyCHAN_1 (0x01)
-#define CyCHAN_2 (0x02)
-#define CyCHAN_3 (0x03)
-#define CyGCR (0x4B*2)
-#define CyCH0_SERIAL (0x00)
-#define CyCH0_PARALLEL (0x80)
-#define CySVRR (0x67*2)
-#define CySRModem (0x04)
-#define CySRTransmit (0x02)
-#define CySRReceive (0x01)
-#define CyRICR (0x44*2)
-#define CyTICR (0x45*2)
-#define CyMICR (0x46*2)
-#define CyICR0 (0x00)
-#define CyICR1 (0x01)
-#define CyICR2 (0x02)
-#define CyICR3 (0x03)
-#define CyRIR (0x6B*2)
-#define CyTIR (0x6A*2)
-#define CyMIR (0x69*2)
-#define CyIRDirEq (0x80)
-#define CyIRBusy (0x40)
-#define CyIRUnfair (0x20)
-#define CyIRContext (0x1C)
-#define CyIRChannel (0x03)
-#define CyPPR (0x7E*2)
-#define CyCLOCK_20_1MS (0x27)
-#define CyCLOCK_25_1MS (0x31)
-#define CyCLOCK_25_5MS (0xf4)
-#define CyCLOCK_60_1MS (0x75)
-#define CyCLOCK_60_2MS (0xea)
-
-/* Virtual Registers */
-
-#define CyRIVR (0x43*2)
-#define CyTIVR (0x42*2)
-#define CyMIVR (0x41*2)
-#define CyIVRMask (0x07)
-#define CyIVRRxEx (0x07)
-#define CyIVRRxOK (0x03)
-#define CyIVRTxOK (0x02)
-#define CyIVRMdmOK (0x01)
-#define CyTDR (0x63*2)
-#define CyRDSR (0x62*2)
-#define CyTIMEOUT (0x80)
-#define CySPECHAR (0x70)
-#define CyBREAK (0x08)
-#define CyPARITY (0x04)
-#define CyFRAME (0x02)
-#define CyOVERRUN (0x01)
-#define CyMISR (0x4C*2)
-/* see CyMCOR_ and CyMSVR_ for bits*/
-#define CyEOSRR (0x60*2)
-
-/* Channel Registers */
-
-#define CyLIVR (0x18*2)
-#define CyMscsr (0x01)
-#define CyTdsr (0x02)
-#define CyRgdsr (0x03)
-#define CyRedsr (0x07)
-#define CyCCR (0x05*2)
-/* Format 1 */
-#define CyCHAN_RESET (0x80)
-#define CyCHIP_RESET (0x81)
-#define CyFlushTransFIFO (0x82)
-/* Format 2 */
-#define CyCOR_CHANGE (0x40)
-#define CyCOR1ch (0x02)
-#define CyCOR2ch (0x04)
-#define CyCOR3ch (0x08)
-/* Format 3 */
-#define CySEND_SPEC_1 (0x21)
-#define CySEND_SPEC_2 (0x22)
-#define CySEND_SPEC_3 (0x23)
-#define CySEND_SPEC_4 (0x24)
-/* Format 4 */
-#define CyCHAN_CTL (0x10)
-#define CyDIS_RCVR (0x01)
-#define CyENB_RCVR (0x02)
-#define CyDIS_XMTR (0x04)
-#define CyENB_XMTR (0x08)
-#define CySRER (0x06*2)
-#define CyMdmCh (0x80)
-#define CyRxData (0x10)
-#define CyTxRdy (0x04)
-#define CyTxMpty (0x02)
-#define CyNNDT (0x01)
-#define CyCOR1 (0x08*2)
-#define CyPARITY_NONE (0x00)
-#define CyPARITY_0 (0x20)
-#define CyPARITY_1 (0xA0)
-#define CyPARITY_E (0x40)
-#define CyPARITY_O (0xC0)
-#define Cy_1_STOP (0x00)
-#define Cy_1_5_STOP (0x04)
-#define Cy_2_STOP (0x08)
-#define Cy_5_BITS (0x00)
-#define Cy_6_BITS (0x01)
-#define Cy_7_BITS (0x02)
-#define Cy_8_BITS (0x03)
-#define CyCOR2 (0x09*2)
-#define CyIXM (0x80)
-#define CyTxIBE (0x40)
-#define CyETC (0x20)
-#define CyAUTO_TXFL (0x60)
-#define CyLLM (0x10)
-#define CyRLM (0x08)
-#define CyRtsAO (0x04)
-#define CyCtsAE (0x02)
-#define CyDsrAE (0x01)
-#define CyCOR3 (0x0A*2)
-#define CySPL_CH_DRANGE (0x80) /* special character detect range */
-#define CySPL_CH_DET1 (0x40) /* enable special character detection
- on SCHR4-SCHR3 */
-#define CyFL_CTRL_TRNSP (0x20) /* Flow Control Transparency */
-#define CySPL_CH_DET2 (0x10) /* Enable special character detection
- on SCHR2-SCHR1 */
-#define CyREC_FIFO (0x0F) /* Receive FIFO threshold */
-#define CyCOR4 (0x1E*2)
-#define CyCOR5 (0x1F*2)
-#define CyCCSR (0x0B*2)
-#define CyRxEN (0x80)
-#define CyRxFloff (0x40)
-#define CyRxFlon (0x20)
-#define CyTxEN (0x08)
-#define CyTxFloff (0x04)
-#define CyTxFlon (0x02)
-#define CyRDCR (0x0E*2)
-#define CySCHR1 (0x1A*2)
-#define CySCHR2 (0x1B*2)
-#define CySCHR3 (0x1C*2)
-#define CySCHR4 (0x1D*2)
-#define CySCRL (0x22*2)
-#define CySCRH (0x23*2)
-#define CyLNC (0x24*2)
-#define CyMCOR1 (0x15*2)
-#define CyMCOR2 (0x16*2)
-#define CyRTPR (0x21*2)
-#define CyMSVR1 (0x6C*2)
-#define CyMSVR2 (0x6D*2)
-#define CyANY_DELTA (0xF0)
-#define CyDSR (0x80)
-#define CyCTS (0x40)
-#define CyRI (0x20)
-#define CyDCD (0x10)
-#define CyDTR (0x02)
-#define CyRTS (0x01)
-#define CyPVSR (0x6F*2)
-#define CyRBPR (0x78*2)
-#define CyRCOR (0x7C*2)
-#define CyTBPR (0x72*2)
-#define CyTCOR (0x76*2)
-
-/* Custom Registers */
-
-#define CyPLX_VER (0x3400)
-#define PLX_9050 0x0b
-#define PLX_9060 0x0c
-#define PLX_9080 0x0d
-
-/***************************************************************************/
-
-#endif /* __KERNEL__ */
-#endif /* _LINUX_CYCLADES_H */
diff --git a/ANDROID_3.4.5/include/linux/cyclomx.h b/ANDROID_3.4.5/include/linux/cyclomx.h
deleted file mode 100644
index b88f7f42..00000000
--- a/ANDROID_3.4.5/include/linux/cyclomx.h
+++ /dev/null
@@ -1,77 +0,0 @@
-#ifndef _CYCLOMX_H
-#define _CYCLOMX_H
-/*
-* cyclomx.h Cyclom 2X WAN Link Driver.
-* User-level API definitions.
-*
-* Author: Arnaldo Carvalho de Melo <acme@conectiva.com.br>
-*
-* Copyright: (c) 1998-2003 Arnaldo Carvalho de Melo
-*
-* Based on wanpipe.h by Gene Kozin <genek@compuserve.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.
-* ============================================================================
-* 2000/07/13 acme remove crap #if KERNEL_VERSION > blah
-* 2000/01/21 acme rename cyclomx_open to cyclomx_mod_inc_use_count
-* and cyclomx_close to cyclomx_mod_dec_use_count
-* 1999/05/19 acme wait_queue_head_t wait_stats(support for 2.3.*)
-* 1999/01/03 acme judicious use of data types
-* 1998/12/27 acme cleanup: PACKED not needed
-* 1998/08/08 acme Version 0.0.1
-*/
-
-#include <linux/wanrouter.h>
-#include <linux/spinlock.h>
-
-#ifdef __KERNEL__
-/* Kernel Interface */
-
-#include <linux/cycx_drv.h> /* Cyclom 2X support module API definitions */
-#include <linux/cycx_cfm.h> /* Cyclom 2X firmware module definitions */
-#ifdef CONFIG_CYCLOMX_X25
-#include <linux/cycx_x25.h>
-#endif
-
-/* Adapter Data Space.
- * This structure is needed because we handle multiple cards, otherwise
- * static data would do it.
- */
-struct cycx_device {
- char devname[WAN_DRVNAME_SZ + 1];/* card name */
- struct cycx_hw hw; /* hardware configuration */
- struct wan_device wandev; /* WAN device data space */
- u32 state_tick; /* link state timestamp */
- spinlock_t lock;
- char in_isr; /* interrupt-in-service flag */
- char buff_int_mode_unbusy; /* flag for carrying out dev_tint */
- wait_queue_head_t wait_stats; /* to wait for the STATS indication */
- void __iomem *mbox; /* -> mailbox */
- void (*isr)(struct cycx_device* card); /* interrupt service routine */
- int (*exec)(struct cycx_device* card, void* u_cmd, void* u_data);
- union {
-#ifdef CONFIG_CYCLOMX_X25
- struct { /* X.25 specific data */
- u32 lo_pvc;
- u32 hi_pvc;
- u32 lo_svc;
- u32 hi_svc;
- struct cycx_x25_stats stats;
- spinlock_t lock;
- u32 connection_keys;
- } x;
-#endif
- } u;
-};
-
-/* Public Functions */
-void cycx_set_state(struct cycx_device *card, int state);
-
-#ifdef CONFIG_CYCLOMX_X25
-int cycx_x25_wan_init(struct cycx_device *card, wandev_conf_t *conf);
-#endif
-#endif /* __KERNEL__ */
-#endif /* _CYCLOMX_H */
diff --git a/ANDROID_3.4.5/include/linux/cycx_cfm.h b/ANDROID_3.4.5/include/linux/cycx_cfm.h
deleted file mode 100644
index 032d26ed..00000000
--- a/ANDROID_3.4.5/include/linux/cycx_cfm.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
-* cycx_cfm.h Cyclom 2X WAN Link Driver.
-* Definitions for the Cyclom 2X Firmware Module (CFM).
-*
-* Author: Arnaldo Carvalho de Melo <acme@conectiva.com.br>
-*
-* Copyright: (c) 1998-2003 Arnaldo Carvalho de Melo
-*
-* Based on sdlasfm.h by Gene Kozin <74604.152@compuserve.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.
-* ============================================================================
-* 1998/08/08 acme Initial version.
-*/
-#ifndef _CYCX_CFM_H
-#define _CYCX_CFM_H
-
-/* Defines */
-
-#define CFM_VERSION 2
-#define CFM_SIGNATURE "CFM - Cyclades CYCX Firmware Module"
-
-/* min/max */
-#define CFM_IMAGE_SIZE 0x20000 /* max size of CYCX code image file */
-#define CFM_DESCR_LEN 256 /* max length of description string */
-#define CFM_MAX_CYCX 1 /* max number of compatible adapters */
-#define CFM_LOAD_BUFSZ 0x400 /* buffer size for reset code (buffer_load) */
-
-/* Firmware Commands */
-#define GEN_POWER_ON 0x1280
-
-#define GEN_SET_SEG 0x1401 /* boot segment setting. */
-#define GEN_BOOT_DAT 0x1402 /* boot data. */
-#define GEN_START 0x1403 /* board start. */
-#define GEN_DEFPAR 0x1404 /* buffer length for boot. */
-
-/* Adapter Types */
-#define CYCX_2X 2
-/* for now only the 2X is supported, no plans to support 8X or 16X */
-#define CYCX_8X 8
-#define CYCX_16X 16
-
-#define CFID_X25_2X 5200
-
-/**
- * struct cycx_fw_info - firmware module information.
- * @codeid - firmware ID
- * @version - firmware version number
- * @adapter - compatible adapter types
- * @memsize - minimum memory size
- * @reserved - reserved
- * @startoffs - entry point offset
- * @winoffs - dual-port memory window offset
- * @codeoffs - code load offset
- * @codesize - code size
- * @dataoffs - configuration data load offset
- * @datasize - configuration data size
- */
-struct cycx_fw_info {
- unsigned short codeid;
- unsigned short version;
- unsigned short adapter[CFM_MAX_CYCX];
- unsigned long memsize;
- unsigned short reserved[2];
- unsigned short startoffs;
- unsigned short winoffs;
- unsigned short codeoffs;
- unsigned long codesize;
- unsigned short dataoffs;
- unsigned long datasize;
-};
-
-/**
- * struct cycx_firmware - CYCX firmware file structure
- * @signature - CFM file signature
- * @version - file format version
- * @checksum - info + image
- * @reserved - reserved
- * @descr - description string
- * @info - firmware module info
- * @image - code image (variable size)
- */
-struct cycx_firmware {
- char signature[80];
- unsigned short version;
- unsigned short checksum;
- unsigned short reserved[6];
- char descr[CFM_DESCR_LEN];
- struct cycx_fw_info info;
- unsigned char image[0];
-};
-
-struct cycx_fw_header {
- unsigned long reset_size;
- unsigned long data_size;
- unsigned long code_size;
-};
-#endif /* _CYCX_CFM_H */
diff --git a/ANDROID_3.4.5/include/linux/cycx_drv.h b/ANDROID_3.4.5/include/linux/cycx_drv.h
deleted file mode 100644
index 12fe6b0b..00000000
--- a/ANDROID_3.4.5/include/linux/cycx_drv.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
-* cycx_drv.h CYCX Support Module. Kernel API Definitions.
-*
-* Author: Arnaldo Carvalho de Melo <acme@conectiva.com.br>
-*
-* Copyright: (c) 1998-2003 Arnaldo Carvalho de Melo
-*
-* Based on sdladrv.h by Gene Kozin <genek@compuserve.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.
-* ============================================================================
-* 1999/10/23 acme cycxhw_t cleanup
-* 1999/01/03 acme more judicious use of data types...
-* uclong, ucchar, etc deleted, the u8, u16, u32
-* types are the portable way to go.
-* 1999/01/03 acme judicious use of data types... u16, u32, etc
-* 1998/12/26 acme FIXED_BUFFERS, CONF_OFFSET,
-* removal of cy_read{bwl}
-* 1998/08/08 acme Initial version.
-*/
-#ifndef _CYCX_DRV_H
-#define _CYCX_DRV_H
-
-#define CYCX_WINDOWSIZE 0x4000 /* default dual-port memory window size */
-#define GEN_CYCX_INTR 0x02
-#define RST_ENABLE 0x04
-#define START_CPU 0x06
-#define RST_DISABLE 0x08
-#define FIXED_BUFFERS 0x08
-#define TEST_PATTERN 0xaa55
-#define CMD_OFFSET 0x20
-#define CONF_OFFSET 0x0380
-#define RESET_OFFSET 0x3c00 /* For reset file load */
-#define DATA_OFFSET 0x0100 /* For code and data files load */
-#define START_OFFSET 0x3ff0 /* 80186 starts here */
-
-/**
- * struct cycx_hw - Adapter hardware configuration
- * @fwid - firmware ID
- * @irq - interrupt request level
- * @dpmbase - dual-port memory base
- * @dpmsize - dual-port memory size
- * @reserved - reserved for future use
- */
-struct cycx_hw {
- u32 fwid;
- int irq;
- void __iomem *dpmbase;
- u32 dpmsize;
- u32 reserved[5];
-};
-
-/* Function Prototypes */
-extern int cycx_setup(struct cycx_hw *hw, void *sfm, u32 len, unsigned long base);
-extern int cycx_down(struct cycx_hw *hw);
-extern int cycx_peek(struct cycx_hw *hw, u32 addr, void *buf, u32 len);
-extern int cycx_poke(struct cycx_hw *hw, u32 addr, void *buf, u32 len);
-extern int cycx_exec(void __iomem *addr);
-
-extern void cycx_intr(struct cycx_hw *hw);
-#endif /* _CYCX_DRV_H */
diff --git a/ANDROID_3.4.5/include/linux/cycx_x25.h b/ANDROID_3.4.5/include/linux/cycx_x25.h
deleted file mode 100644
index 362bf19d..00000000
--- a/ANDROID_3.4.5/include/linux/cycx_x25.h
+++ /dev/null
@@ -1,125 +0,0 @@
-#ifndef _CYCX_X25_H
-#define _CYCX_X25_H
-/*
-* cycx_x25.h Cyclom X.25 firmware API definitions.
-*
-* Author: Arnaldo Carvalho de Melo <acme@conectiva.com.br>
-*
-* Copyright: (c) 1998-2003 Arnaldo Carvalho de Melo
-*
-* Based on sdla_x25.h by Gene Kozin <74604.152@compuserve.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.
-* ============================================================================
-* 2000/04/02 acme dprintk and cycx_debug
-* 1999/01/03 acme judicious use of data types
-* 1999/01/02 acme #define X25_ACK_N3 0x4411
-* 1998/12/28 acme cleanup: lot'o'things removed
-* commands listed,
-* TX25Cmd & TX25Config structs
-* typedef'ed
-*/
-#ifndef PACKED
-#define PACKED __attribute__((packed))
-#endif
-
-/* X.25 shared memory layout. */
-#define X25_MBOX_OFFS 0x300 /* general mailbox block */
-#define X25_RXMBOX_OFFS 0x340 /* receive mailbox */
-
-/* Debug */
-#define dprintk(level, format, a...) if (cycx_debug >= level) printk(format, ##a)
-
-extern unsigned int cycx_debug;
-
-/* Data Structures */
-/* X.25 Command Block. */
-struct cycx_x25_cmd {
- u16 command;
- u16 link; /* values: 0 or 1 */
- u16 len; /* values: 0 thru 0x205 (517) */
- u32 buf;
-} PACKED;
-
-/* Defines for the 'command' field. */
-#define X25_CONNECT_REQUEST 0x4401
-#define X25_CONNECT_RESPONSE 0x4402
-#define X25_DISCONNECT_REQUEST 0x4403
-#define X25_DISCONNECT_RESPONSE 0x4404
-#define X25_DATA_REQUEST 0x4405
-#define X25_ACK_TO_VC 0x4406
-#define X25_INTERRUPT_RESPONSE 0x4407
-#define X25_CONFIG 0x4408
-#define X25_CONNECT_INDICATION 0x4409
-#define X25_CONNECT_CONFIRM 0x440A
-#define X25_DISCONNECT_INDICATION 0x440B
-#define X25_DISCONNECT_CONFIRM 0x440C
-#define X25_DATA_INDICATION 0x440E
-#define X25_INTERRUPT_INDICATION 0x440F
-#define X25_ACK_FROM_VC 0x4410
-#define X25_ACK_N3 0x4411
-#define X25_CONNECT_COLLISION 0x4413
-#define X25_N3WIN 0x4414
-#define X25_LINE_ON 0x4415
-#define X25_LINE_OFF 0x4416
-#define X25_RESET_REQUEST 0x4417
-#define X25_LOG 0x4500
-#define X25_STATISTIC 0x4600
-#define X25_TRACE 0x4700
-#define X25_N2TRACEXC 0x4702
-#define X25_N3TRACEXC 0x4703
-
-/**
- * struct cycx_x25_config - cyclom2x x25 firmware configuration
- * @link - link number
- * @speed - line speed
- * @clock - internal/external
- * @n2 - # of level 2 retransm.(values: 1 thru FF)
- * @n2win - level 2 window (values: 1 thru 7)
- * @n3win - level 3 window (values: 1 thru 7)
- * @nvc - # of logical channels (values: 1 thru 64)
- * @pktlen - level 3 packet length - log base 2 of size
- * @locaddr - my address
- * @remaddr - remote address
- * @t1 - time, in seconds
- * @t2 - time, in seconds
- * @t21 - time, in seconds
- * @npvc - # of permanent virt. circuits (1 thru nvc)
- * @t23 - time, in seconds
- * @flags - see dosx25.doc, in portuguese, for details
- */
-struct cycx_x25_config {
- u8 link;
- u8 speed;
- u8 clock;
- u8 n2;
- u8 n2win;
- u8 n3win;
- u8 nvc;
- u8 pktlen;
- u8 locaddr;
- u8 remaddr;
- u16 t1;
- u16 t2;
- u8 t21;
- u8 npvc;
- u8 t23;
- u8 flags;
-} PACKED;
-
-struct cycx_x25_stats {
- u16 rx_crc_errors;
- u16 rx_over_errors;
- u16 n2_tx_frames;
- u16 n2_rx_frames;
- u16 tx_timeouts;
- u16 rx_timeouts;
- u16 n3_tx_packets;
- u16 n3_rx_packets;
- u16 tx_aborts;
- u16 rx_aborts;
-} PACKED;
-#endif /* _CYCX_X25_H */
diff --git a/ANDROID_3.4.5/include/linux/davinci_emac.h b/ANDROID_3.4.5/include/linux/davinci_emac.h
deleted file mode 100644
index 54288850..00000000
--- a/ANDROID_3.4.5/include/linux/davinci_emac.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * TI DaVinci EMAC platform support
- *
- * Author: Kevin Hilman, Deep Root Systems, LLC
- *
- * 2007 (c) Deep Root Systems, LLC. This file is licensed under
- * the terms of the GNU General Public License version 2. This program
- * is licensed "as is" without any warranty of any kind, whether express
- * or implied.
- */
-#ifndef _LINUX_DAVINCI_EMAC_H
-#define _LINUX_DAVINCI_EMAC_H
-
-#include <linux/if_ether.h>
-#include <linux/memory.h>
-
-struct mdio_platform_data {
- unsigned long bus_freq;
-};
-
-struct emac_platform_data {
- char mac_addr[ETH_ALEN];
- u32 ctrl_reg_offset;
- u32 ctrl_mod_reg_offset;
- u32 ctrl_ram_offset;
- u32 hw_ram_addr;
- u32 ctrl_ram_size;
-
- /*
- * phy_id can be one of the following:
- * - NULL : use the first phy on the bus,
- * - "" : force to 100/full, no mdio control
- * - "<bus>:<addr>" : use the specified bus and phy
- */
- const char *phy_id;
-
- u8 rmii_en;
- u8 version;
- bool no_bd_ram;
- void (*interrupt_enable) (void);
- void (*interrupt_disable) (void);
-};
-
-enum {
- EMAC_VERSION_1, /* DM644x */
- EMAC_VERSION_2, /* DM646x */
-};
-
-void davinci_get_mac_addr(struct memory_accessor *mem_acc, void *context);
-#endif
diff --git a/ANDROID_3.4.5/include/linux/dca.h b/ANDROID_3.4.5/include/linux/dca.h
deleted file mode 100644
index d27a7a05..00000000
--- a/ANDROID_3.4.5/include/linux/dca.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright(c) 2007 - 2009 Intel Corporation. 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 COPYING.
- */
-#ifndef DCA_H
-#define DCA_H
-
-#include <linux/pci.h>
-
-/* DCA Provider API */
-
-/* DCA Notifier Interface */
-void dca_register_notify(struct notifier_block *nb);
-void dca_unregister_notify(struct notifier_block *nb);
-
-#define DCA_PROVIDER_ADD 0x0001
-#define DCA_PROVIDER_REMOVE 0x0002
-
-struct dca_provider {
- struct list_head node;
- struct dca_ops *ops;
- struct device *cd;
- int id;
-};
-
-struct dca_domain {
- struct list_head node;
- struct list_head dca_providers;
- struct pci_bus *pci_rc;
-};
-
-struct dca_ops {
- int (*add_requester) (struct dca_provider *, struct device *);
- int (*remove_requester) (struct dca_provider *, struct device *);
- u8 (*get_tag) (struct dca_provider *, struct device *,
- int cpu);
- int (*dev_managed) (struct dca_provider *, struct device *);
-};
-
-struct dca_provider *alloc_dca_provider(struct dca_ops *ops, int priv_size);
-void free_dca_provider(struct dca_provider *dca);
-int register_dca_provider(struct dca_provider *dca, struct device *dev);
-void unregister_dca_provider(struct dca_provider *dca, struct device *dev);
-
-static inline void *dca_priv(struct dca_provider *dca)
-{
- return (void *)dca + sizeof(struct dca_provider);
-}
-
-/* Requester API */
-#define DCA_GET_TAG_TWO_ARGS
-int dca_add_requester(struct device *dev);
-int dca_remove_requester(struct device *dev);
-u8 dca_get_tag(int cpu);
-u8 dca3_get_tag(struct device *dev, int cpu);
-
-/* internal stuff */
-int __init dca_sysfs_init(void);
-void __exit dca_sysfs_exit(void);
-int dca_sysfs_add_provider(struct dca_provider *dca, struct device *dev);
-void dca_sysfs_remove_provider(struct dca_provider *dca);
-int dca_sysfs_add_req(struct dca_provider *dca, struct device *dev, int slot);
-void dca_sysfs_remove_req(struct dca_provider *dca, int slot);
-
-#endif /* DCA_H */
diff --git a/ANDROID_3.4.5/include/linux/dcache.h b/ANDROID_3.4.5/include/linux/dcache.h
deleted file mode 100644
index 7e11f141..00000000
--- a/ANDROID_3.4.5/include/linux/dcache.h
+++ /dev/null
@@ -1,403 +0,0 @@
-#ifndef __LINUX_DCACHE_H
-#define __LINUX_DCACHE_H
-
-#include <linux/atomic.h>
-#include <linux/list.h>
-#include <linux/rculist.h>
-#include <linux/rculist_bl.h>
-#include <linux/spinlock.h>
-#include <linux/seqlock.h>
-#include <linux/cache.h>
-#include <linux/rcupdate.h>
-
-struct nameidata;
-struct path;
-struct vfsmount;
-
-/*
- * linux/include/linux/dcache.h
- *
- * Dirent cache data structures
- *
- * (C) Copyright 1997 Thomas Schoebel-Theuer,
- * with heavy changes by Linus Torvalds
- */
-
-#define IS_ROOT(x) ((x) == (x)->d_parent)
-
-/*
- * "quick string" -- eases parameter passing, but more importantly
- * saves "metadata" about the string (ie length and the hash).
- *
- * hash comes first so it snuggles against d_parent in the
- * dentry.
- */
-struct qstr {
- unsigned int hash;
- unsigned int len;
- const unsigned char *name;
-};
-
-struct dentry_stat_t {
- int nr_dentry;
- int nr_unused;
- int age_limit; /* age in seconds */
- int want_pages; /* pages requested by system */
- int dummy[2];
-};
-extern struct dentry_stat_t dentry_stat;
-
-/* Name hashing routines. Initial hash value */
-/* Hash courtesy of the R5 hash in reiserfs modulo sign bits */
-#define init_name_hash() 0
-
-/* partial hash update function. Assume roughly 4 bits per character */
-static inline unsigned long
-partial_name_hash(unsigned long c, unsigned long prevhash)
-{
- return (prevhash + (c << 4) + (c >> 4)) * 11;
-}
-
-/*
- * Finally: cut down the number of bits to a int value (and try to avoid
- * losing bits)
- */
-static inline unsigned long end_name_hash(unsigned long hash)
-{
- return (unsigned int) hash;
-}
-
-/* Compute the hash for a name string. */
-extern unsigned int full_name_hash(const unsigned char *, unsigned int);
-
-/*
- * Try to keep struct dentry aligned on 64 byte cachelines (this will
- * give reasonable cacheline footprint with larger lines without the
- * large memory footprint increase).
- */
-#ifdef CONFIG_64BIT
-# define DNAME_INLINE_LEN 32 /* 192 bytes */
-#else
-# ifdef CONFIG_SMP
-# define DNAME_INLINE_LEN 36 /* 128 bytes */
-# else
-# define DNAME_INLINE_LEN 40 /* 128 bytes */
-# endif
-#endif
-
-struct dentry {
- /* RCU lookup touched fields */
- unsigned int d_flags; /* protected by d_lock */
- seqcount_t d_seq; /* per dentry seqlock */
- struct hlist_bl_node d_hash; /* lookup hash list */
- struct dentry *d_parent; /* parent directory */
- struct qstr d_name;
- struct inode *d_inode; /* Where the name belongs to - NULL is
- * negative */
- unsigned char d_iname[DNAME_INLINE_LEN]; /* small names */
-
- /* Ref lookup also touches following */
- unsigned int d_count; /* protected by d_lock */
- spinlock_t d_lock; /* per dentry lock */
- const struct dentry_operations *d_op;
- struct super_block *d_sb; /* The root of the dentry tree */
- unsigned long d_time; /* used by d_revalidate */
- void *d_fsdata; /* fs-specific data */
-
- struct list_head d_lru; /* LRU list */
- /*
- * d_child and d_rcu can share memory
- */
- union {
- struct list_head d_child; /* child of parent list */
- struct rcu_head d_rcu;
- } d_u;
- struct list_head d_subdirs; /* our children */
- struct list_head d_alias; /* inode alias list */
-};
-
-/*
- * dentry->d_lock spinlock nesting subclasses:
- *
- * 0: normal
- * 1: nested
- */
-enum dentry_d_lock_class
-{
- DENTRY_D_LOCK_NORMAL, /* implicitly used by plain spin_lock() APIs. */
- DENTRY_D_LOCK_NESTED
-};
-
-struct dentry_operations {
- int (*d_revalidate)(struct dentry *, struct nameidata *);
- int (*d_hash)(const struct dentry *, const struct inode *,
- struct qstr *);
- int (*d_compare)(const struct dentry *, const struct inode *,
- const struct dentry *, const struct inode *,
- unsigned int, const char *, const struct qstr *);
- int (*d_delete)(const struct dentry *);
- void (*d_release)(struct dentry *);
- void (*d_prune)(struct dentry *);
- void (*d_iput)(struct dentry *, struct inode *);
- char *(*d_dname)(struct dentry *, char *, int);
- struct vfsmount *(*d_automount)(struct path *);
- int (*d_manage)(struct dentry *, bool);
-} ____cacheline_aligned;
-
-/*
- * Locking rules for dentry_operations callbacks are to be found in
- * Documentation/filesystems/Locking. Keep it updated!
- *
- * FUrther descriptions are found in Documentation/filesystems/vfs.txt.
- * Keep it updated too!
- */
-
-/* d_flags entries */
-#define DCACHE_OP_HASH 0x0001
-#define DCACHE_OP_COMPARE 0x0002
-#define DCACHE_OP_REVALIDATE 0x0004
-#define DCACHE_OP_DELETE 0x0008
-#define DCACHE_OP_PRUNE 0x0010
-
-#define DCACHE_DISCONNECTED 0x0020
- /* This dentry is possibly not currently connected to the dcache tree, in
- * which case its parent will either be itself, or will have this flag as
- * well. nfsd will not use a dentry with this bit set, but will first
- * endeavour to clear the bit either by discovering that it is connected,
- * or by performing lookup operations. Any filesystem which supports
- * nfsd_operations MUST have a lookup function which, if it finds a
- * directory inode with a DCACHE_DISCONNECTED dentry, will d_move that
- * dentry into place and return that dentry rather than the passed one,
- * typically using d_splice_alias. */
-
-#define DCACHE_REFERENCED 0x0040 /* Recently used, don't discard. */
-#define DCACHE_RCUACCESS 0x0080 /* Entry has ever been RCU-visible */
-
-#define DCACHE_CANT_MOUNT 0x0100
-#define DCACHE_GENOCIDE 0x0200
-#define DCACHE_SHRINK_LIST 0x0400
-
-#define DCACHE_NFSFS_RENAMED 0x1000
- /* this dentry has been "silly renamed" and has to be deleted on the last
- * dput() */
-#define DCACHE_COOKIE 0x2000 /* For use by dcookie subsystem */
-#define DCACHE_FSNOTIFY_PARENT_WATCHED 0x4000
- /* Parent inode is watched by some fsnotify listener */
-
-#define DCACHE_MOUNTED 0x10000 /* is a mountpoint */
-#define DCACHE_NEED_AUTOMOUNT 0x20000 /* handle automount on this dir */
-#define DCACHE_MANAGE_TRANSIT 0x40000 /* manage transit from this dirent */
-#define DCACHE_NEED_LOOKUP 0x80000 /* dentry requires i_op->lookup */
-#define DCACHE_MANAGED_DENTRY \
- (DCACHE_MOUNTED|DCACHE_NEED_AUTOMOUNT|DCACHE_MANAGE_TRANSIT)
-
-extern seqlock_t rename_lock;
-
-static inline int dname_external(struct dentry *dentry)
-{
- return dentry->d_name.name != dentry->d_iname;
-}
-
-/*
- * These are the low-level FS interfaces to the dcache..
- */
-extern void d_instantiate(struct dentry *, struct inode *);
-extern struct dentry * d_instantiate_unique(struct dentry *, struct inode *);
-extern struct dentry * d_materialise_unique(struct dentry *, struct inode *);
-extern void __d_drop(struct dentry *dentry);
-extern void d_drop(struct dentry *dentry);
-extern void d_delete(struct dentry *);
-extern void d_set_d_op(struct dentry *dentry, const struct dentry_operations *op);
-
-/* allocate/de-allocate */
-extern struct dentry * d_alloc(struct dentry *, const struct qstr *);
-extern struct dentry * d_alloc_pseudo(struct super_block *, const struct qstr *);
-extern struct dentry * d_splice_alias(struct inode *, struct dentry *);
-extern struct dentry * d_add_ci(struct dentry *, struct inode *, struct qstr *);
-extern struct dentry *d_find_any_alias(struct inode *inode);
-extern struct dentry * d_obtain_alias(struct inode *);
-extern void shrink_dcache_sb(struct super_block *);
-extern void shrink_dcache_parent(struct dentry *);
-extern void shrink_dcache_for_umount(struct super_block *);
-extern int d_invalidate(struct dentry *);
-
-/* only used at mount-time */
-extern struct dentry * d_make_root(struct inode *);
-
-/* <clickety>-<click> the ramfs-type tree */
-extern void d_genocide(struct dentry *);
-
-extern struct dentry *d_find_alias(struct inode *);
-extern void d_prune_aliases(struct inode *);
-
-/* test whether we have any submounts in a subdir tree */
-extern int have_submounts(struct dentry *);
-
-/*
- * This adds the entry to the hash queues.
- */
-extern void d_rehash(struct dentry *);
-
-/**
- * d_add - add dentry to hash queues
- * @entry: dentry to add
- * @inode: The inode to attach to this dentry
- *
- * This adds the entry to the hash queues and initializes @inode.
- * The entry was actually filled in earlier during d_alloc().
- */
-
-static inline void d_add(struct dentry *entry, struct inode *inode)
-{
- d_instantiate(entry, inode);
- d_rehash(entry);
-}
-
-/**
- * d_add_unique - add dentry to hash queues without aliasing
- * @entry: dentry to add
- * @inode: The inode to attach to this dentry
- *
- * This adds the entry to the hash queues and initializes @inode.
- * The entry was actually filled in earlier during d_alloc().
- */
-static inline struct dentry *d_add_unique(struct dentry *entry, struct inode *inode)
-{
- struct dentry *res;
-
- res = d_instantiate_unique(entry, inode);
- d_rehash(res != NULL ? res : entry);
- return res;
-}
-
-extern void dentry_update_name_case(struct dentry *, struct qstr *);
-
-/* used for rename() and baskets */
-extern void d_move(struct dentry *, struct dentry *);
-extern struct dentry *d_ancestor(struct dentry *, struct dentry *);
-
-/* appendix may either be NULL or be used for transname suffixes */
-extern struct dentry *d_lookup(struct dentry *, struct qstr *);
-extern struct dentry *d_hash_and_lookup(struct dentry *, struct qstr *);
-extern struct dentry *__d_lookup(struct dentry *, struct qstr *);
-extern struct dentry *__d_lookup_rcu(const struct dentry *parent,
- const struct qstr *name,
- unsigned *seq, struct inode **inode);
-
-/**
- * __d_rcu_to_refcount - take a refcount on dentry if sequence check is ok
- * @dentry: dentry to take a ref on
- * @seq: seqcount to verify against
- * Returns: 0 on failure, else 1.
- *
- * __d_rcu_to_refcount operates on a dentry,seq pair that was returned
- * by __d_lookup_rcu, to get a reference on an rcu-walk dentry.
- */
-static inline int __d_rcu_to_refcount(struct dentry *dentry, unsigned seq)
-{
- int ret = 0;
-
- assert_spin_locked(&dentry->d_lock);
- if (!read_seqcount_retry(&dentry->d_seq, seq)) {
- ret = 1;
- dentry->d_count++;
- }
-
- return ret;
-}
-
-/* validate "insecure" dentry pointer */
-extern int d_validate(struct dentry *, struct dentry *);
-
-/*
- * helper function for dentry_operations.d_dname() members
- */
-extern char *dynamic_dname(struct dentry *, char *, int, const char *, ...);
-
-extern char *__d_path(const struct path *, const struct path *, char *, int);
-extern char *d_absolute_path(const struct path *, char *, int);
-extern char *d_path(const struct path *, char *, int);
-extern char *d_path_with_unreachable(const struct path *, char *, int);
-extern char *dentry_path_raw(struct dentry *, char *, int);
-extern char *dentry_path(struct dentry *, char *, int);
-
-/* Allocation counts.. */
-
-/**
- * dget, dget_dlock - get a reference to a dentry
- * @dentry: dentry to get a reference to
- *
- * Given a dentry or %NULL pointer increment the reference count
- * if appropriate and return the dentry. A dentry will not be
- * destroyed when it has references.
- */
-static inline struct dentry *dget_dlock(struct dentry *dentry)
-{
- if (dentry)
- dentry->d_count++;
- return dentry;
-}
-
-static inline struct dentry *dget(struct dentry *dentry)
-{
- if (dentry) {
- spin_lock(&dentry->d_lock);
- dget_dlock(dentry);
- spin_unlock(&dentry->d_lock);
- }
- return dentry;
-}
-
-extern struct dentry *dget_parent(struct dentry *dentry);
-
-/**
- * d_unhashed - is dentry hashed
- * @dentry: entry to check
- *
- * Returns true if the dentry passed is not currently hashed.
- */
-
-static inline int d_unhashed(struct dentry *dentry)
-{
- return hlist_bl_unhashed(&dentry->d_hash);
-}
-
-static inline int d_unlinked(struct dentry *dentry)
-{
- return d_unhashed(dentry) && !IS_ROOT(dentry);
-}
-
-static inline int cant_mount(struct dentry *dentry)
-{
- return (dentry->d_flags & DCACHE_CANT_MOUNT);
-}
-
-static inline void dont_mount(struct dentry *dentry)
-{
- spin_lock(&dentry->d_lock);
- dentry->d_flags |= DCACHE_CANT_MOUNT;
- spin_unlock(&dentry->d_lock);
-}
-
-extern void dput(struct dentry *);
-
-static inline bool d_managed(struct dentry *dentry)
-{
- return dentry->d_flags & DCACHE_MANAGED_DENTRY;
-}
-
-static inline bool d_mountpoint(struct dentry *dentry)
-{
- return dentry->d_flags & DCACHE_MOUNTED;
-}
-
-static inline bool d_need_lookup(struct dentry *dentry)
-{
- return dentry->d_flags & DCACHE_NEED_LOOKUP;
-}
-
-extern void d_clear_need_lookup(struct dentry *dentry);
-
-extern int sysctl_vfs_cache_pressure;
-
-#endif /* __LINUX_DCACHE_H */
diff --git a/ANDROID_3.4.5/include/linux/dcbnl.h b/ANDROID_3.4.5/include/linux/dcbnl.h
deleted file mode 100644
index 65a2562f..00000000
--- a/ANDROID_3.4.5/include/linux/dcbnl.h
+++ /dev/null
@@ -1,672 +0,0 @@
-/*
- * Copyright (c) 2008-2011, Intel Corporation.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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.
- *
- * Author: Lucy Liu <lucy.liu@intel.com>
- */
-
-#ifndef __LINUX_DCBNL_H__
-#define __LINUX_DCBNL_H__
-
-#include <linux/types.h>
-
-/* IEEE 802.1Qaz std supported values */
-#define IEEE_8021QAZ_MAX_TCS 8
-
-#define IEEE_8021QAZ_TSA_STRICT 0
-#define IEEE_8021QAZ_TSA_CB_SHAPER 1
-#define IEEE_8021QAZ_TSA_ETS 2
-#define IEEE_8021QAZ_TSA_VENDOR 255
-
-/* This structure contains the IEEE 802.1Qaz ETS managed object
- *
- * @willing: willing bit in ETS configuration TLV
- * @ets_cap: indicates supported capacity of ets feature
- * @cbs: credit based shaper ets algorithm supported
- * @tc_tx_bw: tc tx bandwidth indexed by traffic class
- * @tc_rx_bw: tc rx bandwidth indexed by traffic class
- * @tc_tsa: TSA Assignment table, indexed by traffic class
- * @prio_tc: priority assignment table mapping 8021Qp to traffic class
- * @tc_reco_bw: recommended tc bandwidth indexed by traffic class for TLV
- * @tc_reco_tsa: recommended tc bandwidth indexed by traffic class for TLV
- * @reco_prio_tc: recommended tc tx bandwidth indexed by traffic class for TLV
- *
- * Recommended values are used to set fields in the ETS recommendation TLV
- * with hardware offloaded LLDP.
- *
- * ----
- * TSA Assignment 8 bit identifiers
- * 0 strict priority
- * 1 credit-based shaper
- * 2 enhanced transmission selection
- * 3-254 reserved
- * 255 vendor specific
- */
-struct ieee_ets {
- __u8 willing;
- __u8 ets_cap;
- __u8 cbs;
- __u8 tc_tx_bw[IEEE_8021QAZ_MAX_TCS];
- __u8 tc_rx_bw[IEEE_8021QAZ_MAX_TCS];
- __u8 tc_tsa[IEEE_8021QAZ_MAX_TCS];
- __u8 prio_tc[IEEE_8021QAZ_MAX_TCS];
- __u8 tc_reco_bw[IEEE_8021QAZ_MAX_TCS];
- __u8 tc_reco_tsa[IEEE_8021QAZ_MAX_TCS];
- __u8 reco_prio_tc[IEEE_8021QAZ_MAX_TCS];
-};
-
-/* This structure contains the IEEE 802.1Qaz PFC managed object
- *
- * @pfc_cap: Indicates the number of traffic classes on the local device
- * that may simultaneously have PFC enabled.
- * @pfc_en: bitmap indicating pfc enabled traffic classes
- * @mbc: enable macsec bypass capability
- * @delay: the allowance made for a round-trip propagation delay of the
- * link in bits.
- * @requests: count of the sent pfc frames
- * @indications: count of the received pfc frames
- */
-struct ieee_pfc {
- __u8 pfc_cap;
- __u8 pfc_en;
- __u8 mbc;
- __u16 delay;
- __u64 requests[IEEE_8021QAZ_MAX_TCS];
- __u64 indications[IEEE_8021QAZ_MAX_TCS];
-};
-
-/* CEE DCBX std supported values */
-#define CEE_DCBX_MAX_PGS 8
-#define CEE_DCBX_MAX_PRIO 8
-
-/**
- * struct cee_pg - CEE Priority-Group managed object
- *
- * @willing: willing bit in the PG tlv
- * @error: error bit in the PG tlv
- * @pg_en: enable bit of the PG feature
- * @tcs_supported: number of traffic classes supported
- * @pg_bw: bandwidth percentage for each priority group
- * @prio_pg: priority to PG mapping indexed by priority
- */
-struct cee_pg {
- __u8 willing;
- __u8 error;
- __u8 pg_en;
- __u8 tcs_supported;
- __u8 pg_bw[CEE_DCBX_MAX_PGS];
- __u8 prio_pg[CEE_DCBX_MAX_PGS];
-};
-
-/**
- * struct cee_pfc - CEE PFC managed object
- *
- * @willing: willing bit in the PFC tlv
- * @error: error bit in the PFC tlv
- * @pfc_en: bitmap indicating pfc enabled traffic classes
- * @tcs_supported: number of traffic classes supported
- */
-struct cee_pfc {
- __u8 willing;
- __u8 error;
- __u8 pfc_en;
- __u8 tcs_supported;
-};
-
-/* IEEE 802.1Qaz std supported values */
-#define IEEE_8021QAZ_APP_SEL_ETHERTYPE 1
-#define IEEE_8021QAZ_APP_SEL_STREAM 2
-#define IEEE_8021QAZ_APP_SEL_DGRAM 3
-#define IEEE_8021QAZ_APP_SEL_ANY 4
-
-/* This structure contains the IEEE 802.1Qaz APP managed object. This
- * object is also used for the CEE std as well. There is no difference
- * between the objects.
- *
- * @selector: protocol identifier type
- * @protocol: protocol of type indicated
- * @priority: 3-bit unsigned integer indicating priority
- *
- * ----
- * Selector field values
- * 0 Reserved
- * 1 Ethertype
- * 2 Well known port number over TCP or SCTP
- * 3 Well known port number over UDP or DCCP
- * 4 Well known port number over TCP, SCTP, UDP, or DCCP
- * 5-7 Reserved
- */
-struct dcb_app {
- __u8 selector;
- __u8 priority;
- __u16 protocol;
-};
-
-/**
- * struct dcb_peer_app_info - APP feature information sent by the peer
- *
- * @willing: willing bit in the peer APP tlv
- * @error: error bit in the peer APP tlv
- *
- * In addition to this information the full peer APP tlv also contains
- * a table of 'app_count' APP objects defined above.
- */
-struct dcb_peer_app_info {
- __u8 willing;
- __u8 error;
-};
-
-struct dcbmsg {
- __u8 dcb_family;
- __u8 cmd;
- __u16 dcb_pad;
-};
-
-/**
- * enum dcbnl_commands - supported DCB commands
- *
- * @DCB_CMD_UNDEFINED: unspecified command to catch errors
- * @DCB_CMD_GSTATE: request the state of DCB in the device
- * @DCB_CMD_SSTATE: set the state of DCB in the device
- * @DCB_CMD_PGTX_GCFG: request the priority group configuration for Tx
- * @DCB_CMD_PGTX_SCFG: set the priority group configuration for Tx
- * @DCB_CMD_PGRX_GCFG: request the priority group configuration for Rx
- * @DCB_CMD_PGRX_SCFG: set the priority group configuration for Rx
- * @DCB_CMD_PFC_GCFG: request the priority flow control configuration
- * @DCB_CMD_PFC_SCFG: set the priority flow control configuration
- * @DCB_CMD_SET_ALL: apply all changes to the underlying device
- * @DCB_CMD_GPERM_HWADDR: get the permanent MAC address of the underlying
- * device. Only useful when using bonding.
- * @DCB_CMD_GCAP: request the DCB capabilities of the device
- * @DCB_CMD_GNUMTCS: get the number of traffic classes currently supported
- * @DCB_CMD_SNUMTCS: set the number of traffic classes
- * @DCB_CMD_GBCN: set backward congestion notification configuration
- * @DCB_CMD_SBCN: get backward congestion notification configration.
- * @DCB_CMD_GAPP: get application protocol configuration
- * @DCB_CMD_SAPP: set application protocol configuration
- * @DCB_CMD_IEEE_SET: set IEEE 802.1Qaz configuration
- * @DCB_CMD_IEEE_GET: get IEEE 802.1Qaz configuration
- * @DCB_CMD_GDCBX: get DCBX engine configuration
- * @DCB_CMD_SDCBX: set DCBX engine configuration
- * @DCB_CMD_GFEATCFG: get DCBX features flags
- * @DCB_CMD_SFEATCFG: set DCBX features negotiation flags
- * @DCB_CMD_CEE_GET: get CEE aggregated configuration
- * @DCB_CMD_IEEE_DEL: delete IEEE 802.1Qaz configuration
- */
-enum dcbnl_commands {
- DCB_CMD_UNDEFINED,
-
- DCB_CMD_GSTATE,
- DCB_CMD_SSTATE,
-
- DCB_CMD_PGTX_GCFG,
- DCB_CMD_PGTX_SCFG,
- DCB_CMD_PGRX_GCFG,
- DCB_CMD_PGRX_SCFG,
-
- DCB_CMD_PFC_GCFG,
- DCB_CMD_PFC_SCFG,
-
- DCB_CMD_SET_ALL,
-
- DCB_CMD_GPERM_HWADDR,
-
- DCB_CMD_GCAP,
-
- DCB_CMD_GNUMTCS,
- DCB_CMD_SNUMTCS,
-
- DCB_CMD_PFC_GSTATE,
- DCB_CMD_PFC_SSTATE,
-
- DCB_CMD_BCN_GCFG,
- DCB_CMD_BCN_SCFG,
-
- DCB_CMD_GAPP,
- DCB_CMD_SAPP,
-
- DCB_CMD_IEEE_SET,
- DCB_CMD_IEEE_GET,
-
- DCB_CMD_GDCBX,
- DCB_CMD_SDCBX,
-
- DCB_CMD_GFEATCFG,
- DCB_CMD_SFEATCFG,
-
- DCB_CMD_CEE_GET,
- DCB_CMD_IEEE_DEL,
-
- __DCB_CMD_ENUM_MAX,
- DCB_CMD_MAX = __DCB_CMD_ENUM_MAX - 1,
-};
-
-/**
- * enum dcbnl_attrs - DCB top-level netlink attributes
- *
- * @DCB_ATTR_UNDEFINED: unspecified attribute to catch errors
- * @DCB_ATTR_IFNAME: interface name of the underlying device (NLA_STRING)
- * @DCB_ATTR_STATE: enable state of DCB in the device (NLA_U8)
- * @DCB_ATTR_PFC_STATE: enable state of PFC in the device (NLA_U8)
- * @DCB_ATTR_PFC_CFG: priority flow control configuration (NLA_NESTED)
- * @DCB_ATTR_NUM_TC: number of traffic classes supported in the device (NLA_U8)
- * @DCB_ATTR_PG_CFG: priority group configuration (NLA_NESTED)
- * @DCB_ATTR_SET_ALL: bool to commit changes to hardware or not (NLA_U8)
- * @DCB_ATTR_PERM_HWADDR: MAC address of the physical device (NLA_NESTED)
- * @DCB_ATTR_CAP: DCB capabilities of the device (NLA_NESTED)
- * @DCB_ATTR_NUMTCS: number of traffic classes supported (NLA_NESTED)
- * @DCB_ATTR_BCN: backward congestion notification configuration (NLA_NESTED)
- * @DCB_ATTR_IEEE: IEEE 802.1Qaz supported attributes (NLA_NESTED)
- * @DCB_ATTR_DCBX: DCBX engine configuration in the device (NLA_U8)
- * @DCB_ATTR_FEATCFG: DCBX features flags (NLA_NESTED)
- * @DCB_ATTR_CEE: CEE std supported attributes (NLA_NESTED)
- */
-enum dcbnl_attrs {
- DCB_ATTR_UNDEFINED,
-
- DCB_ATTR_IFNAME,
- DCB_ATTR_STATE,
- DCB_ATTR_PFC_STATE,
- DCB_ATTR_PFC_CFG,
- DCB_ATTR_NUM_TC,
- DCB_ATTR_PG_CFG,
- DCB_ATTR_SET_ALL,
- DCB_ATTR_PERM_HWADDR,
- DCB_ATTR_CAP,
- DCB_ATTR_NUMTCS,
- DCB_ATTR_BCN,
- DCB_ATTR_APP,
-
- /* IEEE std attributes */
- DCB_ATTR_IEEE,
-
- DCB_ATTR_DCBX,
- DCB_ATTR_FEATCFG,
-
- /* CEE nested attributes */
- DCB_ATTR_CEE,
-
- __DCB_ATTR_ENUM_MAX,
- DCB_ATTR_MAX = __DCB_ATTR_ENUM_MAX - 1,
-};
-
-/**
- * enum ieee_attrs - IEEE 802.1Qaz get/set attributes
- *
- * @DCB_ATTR_IEEE_UNSPEC: unspecified
- * @DCB_ATTR_IEEE_ETS: negotiated ETS configuration
- * @DCB_ATTR_IEEE_PFC: negotiated PFC configuration
- * @DCB_ATTR_IEEE_APP_TABLE: negotiated APP configuration
- * @DCB_ATTR_IEEE_PEER_ETS: peer ETS configuration - get only
- * @DCB_ATTR_IEEE_PEER_PFC: peer PFC configuration - get only
- * @DCB_ATTR_IEEE_PEER_APP: peer APP tlv - get only
- */
-enum ieee_attrs {
- DCB_ATTR_IEEE_UNSPEC,
- DCB_ATTR_IEEE_ETS,
- DCB_ATTR_IEEE_PFC,
- DCB_ATTR_IEEE_APP_TABLE,
- DCB_ATTR_IEEE_PEER_ETS,
- DCB_ATTR_IEEE_PEER_PFC,
- DCB_ATTR_IEEE_PEER_APP,
- __DCB_ATTR_IEEE_MAX
-};
-#define DCB_ATTR_IEEE_MAX (__DCB_ATTR_IEEE_MAX - 1)
-
-enum ieee_attrs_app {
- DCB_ATTR_IEEE_APP_UNSPEC,
- DCB_ATTR_IEEE_APP,
- __DCB_ATTR_IEEE_APP_MAX
-};
-#define DCB_ATTR_IEEE_APP_MAX (__DCB_ATTR_IEEE_APP_MAX - 1)
-
-/**
- * enum cee_attrs - CEE DCBX get attributes.
- *
- * @DCB_ATTR_CEE_UNSPEC: unspecified
- * @DCB_ATTR_CEE_PEER_PG: peer PG configuration - get only
- * @DCB_ATTR_CEE_PEER_PFC: peer PFC configuration - get only
- * @DCB_ATTR_CEE_PEER_APP_TABLE: peer APP tlv - get only
- * @DCB_ATTR_CEE_TX_PG: TX PG configuration (DCB_CMD_PGTX_GCFG)
- * @DCB_ATTR_CEE_RX_PG: RX PG configuration (DCB_CMD_PGRX_GCFG)
- * @DCB_ATTR_CEE_PFC: PFC configuration (DCB_CMD_PFC_GCFG)
- * @DCB_ATTR_CEE_APP_TABLE: APP configuration (multi DCB_CMD_GAPP)
- * @DCB_ATTR_CEE_FEAT: DCBX features flags (DCB_CMD_GFEATCFG)
- *
- * An aggregated collection of the cee std negotiated parameters.
- */
-enum cee_attrs {
- DCB_ATTR_CEE_UNSPEC,
- DCB_ATTR_CEE_PEER_PG,
- DCB_ATTR_CEE_PEER_PFC,
- DCB_ATTR_CEE_PEER_APP_TABLE,
- DCB_ATTR_CEE_TX_PG,
- DCB_ATTR_CEE_RX_PG,
- DCB_ATTR_CEE_PFC,
- DCB_ATTR_CEE_APP_TABLE,
- DCB_ATTR_CEE_FEAT,
- __DCB_ATTR_CEE_MAX
-};
-#define DCB_ATTR_CEE_MAX (__DCB_ATTR_CEE_MAX - 1)
-
-enum peer_app_attr {
- DCB_ATTR_CEE_PEER_APP_UNSPEC,
- DCB_ATTR_CEE_PEER_APP_INFO,
- DCB_ATTR_CEE_PEER_APP,
- __DCB_ATTR_CEE_PEER_APP_MAX
-};
-#define DCB_ATTR_CEE_PEER_APP_MAX (__DCB_ATTR_CEE_PEER_APP_MAX - 1)
-
-enum cee_attrs_app {
- DCB_ATTR_CEE_APP_UNSPEC,
- DCB_ATTR_CEE_APP,
- __DCB_ATTR_CEE_APP_MAX
-};
-#define DCB_ATTR_CEE_APP_MAX (__DCB_ATTR_CEE_APP_MAX - 1)
-
-/**
- * enum dcbnl_pfc_attrs - DCB Priority Flow Control user priority nested attrs
- *
- * @DCB_PFC_UP_ATTR_UNDEFINED: unspecified attribute to catch errors
- * @DCB_PFC_UP_ATTR_0: Priority Flow Control value for User Priority 0 (NLA_U8)
- * @DCB_PFC_UP_ATTR_1: Priority Flow Control value for User Priority 1 (NLA_U8)
- * @DCB_PFC_UP_ATTR_2: Priority Flow Control value for User Priority 2 (NLA_U8)
- * @DCB_PFC_UP_ATTR_3: Priority Flow Control value for User Priority 3 (NLA_U8)
- * @DCB_PFC_UP_ATTR_4: Priority Flow Control value for User Priority 4 (NLA_U8)
- * @DCB_PFC_UP_ATTR_5: Priority Flow Control value for User Priority 5 (NLA_U8)
- * @DCB_PFC_UP_ATTR_6: Priority Flow Control value for User Priority 6 (NLA_U8)
- * @DCB_PFC_UP_ATTR_7: Priority Flow Control value for User Priority 7 (NLA_U8)
- * @DCB_PFC_UP_ATTR_MAX: highest attribute number currently defined
- * @DCB_PFC_UP_ATTR_ALL: apply to all priority flow control attrs (NLA_FLAG)
- *
- */
-enum dcbnl_pfc_up_attrs {
- DCB_PFC_UP_ATTR_UNDEFINED,
-
- DCB_PFC_UP_ATTR_0,
- DCB_PFC_UP_ATTR_1,
- DCB_PFC_UP_ATTR_2,
- DCB_PFC_UP_ATTR_3,
- DCB_PFC_UP_ATTR_4,
- DCB_PFC_UP_ATTR_5,
- DCB_PFC_UP_ATTR_6,
- DCB_PFC_UP_ATTR_7,
- DCB_PFC_UP_ATTR_ALL,
-
- __DCB_PFC_UP_ATTR_ENUM_MAX,
- DCB_PFC_UP_ATTR_MAX = __DCB_PFC_UP_ATTR_ENUM_MAX - 1,
-};
-
-/**
- * enum dcbnl_pg_attrs - DCB Priority Group attributes
- *
- * @DCB_PG_ATTR_UNDEFINED: unspecified attribute to catch errors
- * @DCB_PG_ATTR_TC_0: Priority Group Traffic Class 0 configuration (NLA_NESTED)
- * @DCB_PG_ATTR_TC_1: Priority Group Traffic Class 1 configuration (NLA_NESTED)
- * @DCB_PG_ATTR_TC_2: Priority Group Traffic Class 2 configuration (NLA_NESTED)
- * @DCB_PG_ATTR_TC_3: Priority Group Traffic Class 3 configuration (NLA_NESTED)
- * @DCB_PG_ATTR_TC_4: Priority Group Traffic Class 4 configuration (NLA_NESTED)
- * @DCB_PG_ATTR_TC_5: Priority Group Traffic Class 5 configuration (NLA_NESTED)
- * @DCB_PG_ATTR_TC_6: Priority Group Traffic Class 6 configuration (NLA_NESTED)
- * @DCB_PG_ATTR_TC_7: Priority Group Traffic Class 7 configuration (NLA_NESTED)
- * @DCB_PG_ATTR_TC_MAX: highest attribute number currently defined
- * @DCB_PG_ATTR_TC_ALL: apply to all traffic classes (NLA_NESTED)
- * @DCB_PG_ATTR_BW_ID_0: Percent of link bandwidth for Priority Group 0 (NLA_U8)
- * @DCB_PG_ATTR_BW_ID_1: Percent of link bandwidth for Priority Group 1 (NLA_U8)
- * @DCB_PG_ATTR_BW_ID_2: Percent of link bandwidth for Priority Group 2 (NLA_U8)
- * @DCB_PG_ATTR_BW_ID_3: Percent of link bandwidth for Priority Group 3 (NLA_U8)
- * @DCB_PG_ATTR_BW_ID_4: Percent of link bandwidth for Priority Group 4 (NLA_U8)
- * @DCB_PG_ATTR_BW_ID_5: Percent of link bandwidth for Priority Group 5 (NLA_U8)
- * @DCB_PG_ATTR_BW_ID_6: Percent of link bandwidth for Priority Group 6 (NLA_U8)
- * @DCB_PG_ATTR_BW_ID_7: Percent of link bandwidth for Priority Group 7 (NLA_U8)
- * @DCB_PG_ATTR_BW_ID_MAX: highest attribute number currently defined
- * @DCB_PG_ATTR_BW_ID_ALL: apply to all priority groups (NLA_FLAG)
- *
- */
-enum dcbnl_pg_attrs {
- DCB_PG_ATTR_UNDEFINED,
-
- DCB_PG_ATTR_TC_0,
- DCB_PG_ATTR_TC_1,
- DCB_PG_ATTR_TC_2,
- DCB_PG_ATTR_TC_3,
- DCB_PG_ATTR_TC_4,
- DCB_PG_ATTR_TC_5,
- DCB_PG_ATTR_TC_6,
- DCB_PG_ATTR_TC_7,
- DCB_PG_ATTR_TC_MAX,
- DCB_PG_ATTR_TC_ALL,
-
- DCB_PG_ATTR_BW_ID_0,
- DCB_PG_ATTR_BW_ID_1,
- DCB_PG_ATTR_BW_ID_2,
- DCB_PG_ATTR_BW_ID_3,
- DCB_PG_ATTR_BW_ID_4,
- DCB_PG_ATTR_BW_ID_5,
- DCB_PG_ATTR_BW_ID_6,
- DCB_PG_ATTR_BW_ID_7,
- DCB_PG_ATTR_BW_ID_MAX,
- DCB_PG_ATTR_BW_ID_ALL,
-
- __DCB_PG_ATTR_ENUM_MAX,
- DCB_PG_ATTR_MAX = __DCB_PG_ATTR_ENUM_MAX - 1,
-};
-
-/**
- * enum dcbnl_tc_attrs - DCB Traffic Class attributes
- *
- * @DCB_TC_ATTR_PARAM_UNDEFINED: unspecified attribute to catch errors
- * @DCB_TC_ATTR_PARAM_PGID: (NLA_U8) Priority group the traffic class belongs to
- * Valid values are: 0-7
- * @DCB_TC_ATTR_PARAM_UP_MAPPING: (NLA_U8) Traffic class to user priority map
- * Some devices may not support changing the
- * user priority map of a TC.
- * @DCB_TC_ATTR_PARAM_STRICT_PRIO: (NLA_U8) Strict priority setting
- * 0 - none
- * 1 - group strict
- * 2 - link strict
- * @DCB_TC_ATTR_PARAM_BW_PCT: optional - (NLA_U8) If supported by the device and
- * not configured to use link strict priority,
- * this is the percentage of bandwidth of the
- * priority group this traffic class belongs to
- * @DCB_TC_ATTR_PARAM_ALL: (NLA_FLAG) all traffic class parameters
- *
- */
-enum dcbnl_tc_attrs {
- DCB_TC_ATTR_PARAM_UNDEFINED,
-
- DCB_TC_ATTR_PARAM_PGID,
- DCB_TC_ATTR_PARAM_UP_MAPPING,
- DCB_TC_ATTR_PARAM_STRICT_PRIO,
- DCB_TC_ATTR_PARAM_BW_PCT,
- DCB_TC_ATTR_PARAM_ALL,
-
- __DCB_TC_ATTR_PARAM_ENUM_MAX,
- DCB_TC_ATTR_PARAM_MAX = __DCB_TC_ATTR_PARAM_ENUM_MAX - 1,
-};
-
-/**
- * enum dcbnl_cap_attrs - DCB Capability attributes
- *
- * @DCB_CAP_ATTR_UNDEFINED: unspecified attribute to catch errors
- * @DCB_CAP_ATTR_ALL: (NLA_FLAG) all capability parameters
- * @DCB_CAP_ATTR_PG: (NLA_U8) device supports Priority Groups
- * @DCB_CAP_ATTR_PFC: (NLA_U8) device supports Priority Flow Control
- * @DCB_CAP_ATTR_UP2TC: (NLA_U8) device supports user priority to
- * traffic class mapping
- * @DCB_CAP_ATTR_PG_TCS: (NLA_U8) bitmap where each bit represents a
- * number of traffic classes the device
- * can be configured to use for Priority Groups
- * @DCB_CAP_ATTR_PFC_TCS: (NLA_U8) bitmap where each bit represents a
- * number of traffic classes the device can be
- * configured to use for Priority Flow Control
- * @DCB_CAP_ATTR_GSP: (NLA_U8) device supports group strict priority
- * @DCB_CAP_ATTR_BCN: (NLA_U8) device supports Backwards Congestion
- * Notification
- * @DCB_CAP_ATTR_DCBX: (NLA_U8) device supports DCBX engine
- *
- */
-enum dcbnl_cap_attrs {
- DCB_CAP_ATTR_UNDEFINED,
- DCB_CAP_ATTR_ALL,
- DCB_CAP_ATTR_PG,
- DCB_CAP_ATTR_PFC,
- DCB_CAP_ATTR_UP2TC,
- DCB_CAP_ATTR_PG_TCS,
- DCB_CAP_ATTR_PFC_TCS,
- DCB_CAP_ATTR_GSP,
- DCB_CAP_ATTR_BCN,
- DCB_CAP_ATTR_DCBX,
-
- __DCB_CAP_ATTR_ENUM_MAX,
- DCB_CAP_ATTR_MAX = __DCB_CAP_ATTR_ENUM_MAX - 1,
-};
-
-/**
- * DCBX capability flags
- *
- * @DCB_CAP_DCBX_HOST: DCBX negotiation is performed by the host LLDP agent.
- * 'set' routines are used to configure the device with
- * the negotiated parameters
- *
- * @DCB_CAP_DCBX_LLD_MANAGED: DCBX negotiation is not performed in the host but
- * by another entity
- * 'get' routines are used to retrieve the
- * negotiated parameters
- * 'set' routines can be used to set the initial
- * negotiation configuration
- *
- * @DCB_CAP_DCBX_VER_CEE: for a non-host DCBX engine, indicates the engine
- * supports the CEE protocol flavor
- *
- * @DCB_CAP_DCBX_VER_IEEE: for a non-host DCBX engine, indicates the engine
- * supports the IEEE protocol flavor
- *
- * @DCB_CAP_DCBX_STATIC: for a non-host DCBX engine, indicates the engine
- * supports static configuration (i.e no actual
- * negotiation is performed negotiated parameters equal
- * the initial configuration)
- *
- */
-#define DCB_CAP_DCBX_HOST 0x01
-#define DCB_CAP_DCBX_LLD_MANAGED 0x02
-#define DCB_CAP_DCBX_VER_CEE 0x04
-#define DCB_CAP_DCBX_VER_IEEE 0x08
-#define DCB_CAP_DCBX_STATIC 0x10
-
-/**
- * enum dcbnl_numtcs_attrs - number of traffic classes
- *
- * @DCB_NUMTCS_ATTR_UNDEFINED: unspecified attribute to catch errors
- * @DCB_NUMTCS_ATTR_ALL: (NLA_FLAG) all traffic class attributes
- * @DCB_NUMTCS_ATTR_PG: (NLA_U8) number of traffic classes used for
- * priority groups
- * @DCB_NUMTCS_ATTR_PFC: (NLA_U8) number of traffic classes which can
- * support priority flow control
- */
-enum dcbnl_numtcs_attrs {
- DCB_NUMTCS_ATTR_UNDEFINED,
- DCB_NUMTCS_ATTR_ALL,
- DCB_NUMTCS_ATTR_PG,
- DCB_NUMTCS_ATTR_PFC,
-
- __DCB_NUMTCS_ATTR_ENUM_MAX,
- DCB_NUMTCS_ATTR_MAX = __DCB_NUMTCS_ATTR_ENUM_MAX - 1,
-};
-
-enum dcbnl_bcn_attrs{
- DCB_BCN_ATTR_UNDEFINED = 0,
-
- DCB_BCN_ATTR_RP_0,
- DCB_BCN_ATTR_RP_1,
- DCB_BCN_ATTR_RP_2,
- DCB_BCN_ATTR_RP_3,
- DCB_BCN_ATTR_RP_4,
- DCB_BCN_ATTR_RP_5,
- DCB_BCN_ATTR_RP_6,
- DCB_BCN_ATTR_RP_7,
- DCB_BCN_ATTR_RP_ALL,
-
- DCB_BCN_ATTR_BCNA_0,
- DCB_BCN_ATTR_BCNA_1,
- DCB_BCN_ATTR_ALPHA,
- DCB_BCN_ATTR_BETA,
- DCB_BCN_ATTR_GD,
- DCB_BCN_ATTR_GI,
- DCB_BCN_ATTR_TMAX,
- DCB_BCN_ATTR_TD,
- DCB_BCN_ATTR_RMIN,
- DCB_BCN_ATTR_W,
- DCB_BCN_ATTR_RD,
- DCB_BCN_ATTR_RU,
- DCB_BCN_ATTR_WRTT,
- DCB_BCN_ATTR_RI,
- DCB_BCN_ATTR_C,
- DCB_BCN_ATTR_ALL,
-
- __DCB_BCN_ATTR_ENUM_MAX,
- DCB_BCN_ATTR_MAX = __DCB_BCN_ATTR_ENUM_MAX - 1,
-};
-
-/**
- * enum dcb_general_attr_values - general DCB attribute values
- *
- * @DCB_ATTR_UNDEFINED: value used to indicate an attribute is not supported
- *
- */
-enum dcb_general_attr_values {
- DCB_ATTR_VALUE_UNDEFINED = 0xff
-};
-
-#define DCB_APP_IDTYPE_ETHTYPE 0x00
-#define DCB_APP_IDTYPE_PORTNUM 0x01
-enum dcbnl_app_attrs {
- DCB_APP_ATTR_UNDEFINED,
-
- DCB_APP_ATTR_IDTYPE,
- DCB_APP_ATTR_ID,
- DCB_APP_ATTR_PRIORITY,
-
- __DCB_APP_ATTR_ENUM_MAX,
- DCB_APP_ATTR_MAX = __DCB_APP_ATTR_ENUM_MAX - 1,
-};
-
-/**
- * enum dcbnl_featcfg_attrs - features conifiguration flags
- *
- * @DCB_FEATCFG_ATTR_UNDEFINED: unspecified attribute to catch errors
- * @DCB_FEATCFG_ATTR_ALL: (NLA_FLAG) all features configuration attributes
- * @DCB_FEATCFG_ATTR_PG: (NLA_U8) configuration flags for priority groups
- * @DCB_FEATCFG_ATTR_PFC: (NLA_U8) configuration flags for priority
- * flow control
- * @DCB_FEATCFG_ATTR_APP: (NLA_U8) configuration flags for application TLV
- *
- */
-#define DCB_FEATCFG_ERROR 0x01 /* error in feature resolution */
-#define DCB_FEATCFG_ENABLE 0x02 /* enable feature */
-#define DCB_FEATCFG_WILLING 0x04 /* feature is willing */
-#define DCB_FEATCFG_ADVERTISE 0x08 /* advertise feature */
-enum dcbnl_featcfg_attrs {
- DCB_FEATCFG_ATTR_UNDEFINED,
- DCB_FEATCFG_ATTR_ALL,
- DCB_FEATCFG_ATTR_PG,
- DCB_FEATCFG_ATTR_PFC,
- DCB_FEATCFG_ATTR_APP,
-
- __DCB_FEATCFG_ATTR_ENUM_MAX,
- DCB_FEATCFG_ATTR_MAX = __DCB_FEATCFG_ATTR_ENUM_MAX - 1,
-};
-
-#endif /* __LINUX_DCBNL_H__ */
diff --git a/ANDROID_3.4.5/include/linux/dccp.h b/ANDROID_3.4.5/include/linux/dccp.h
deleted file mode 100644
index eaf95a02..00000000
--- a/ANDROID_3.4.5/include/linux/dccp.h
+++ /dev/null
@@ -1,554 +0,0 @@
-#ifndef _LINUX_DCCP_H
-#define _LINUX_DCCP_H
-
-#include <linux/types.h>
-#include <asm/byteorder.h>
-
-/**
- * struct dccp_hdr - generic part of DCCP packet header
- *
- * @dccph_sport - Relevant port on the endpoint that sent this packet
- * @dccph_dport - Relevant port on the other endpoint
- * @dccph_doff - Data Offset from the start of the DCCP header, in 32-bit words
- * @dccph_ccval - Used by the HC-Sender CCID
- * @dccph_cscov - Parts of the packet that are covered by the Checksum field
- * @dccph_checksum - Internet checksum, depends on dccph_cscov
- * @dccph_x - 0 = 24 bit sequence number, 1 = 48
- * @dccph_type - packet type, see DCCP_PKT_ prefixed macros
- * @dccph_seq - sequence number high or low order 24 bits, depends on dccph_x
- */
-struct dccp_hdr {
- __be16 dccph_sport,
- dccph_dport;
- __u8 dccph_doff;
-#if defined(__LITTLE_ENDIAN_BITFIELD)
- __u8 dccph_cscov:4,
- dccph_ccval:4;
-#elif defined(__BIG_ENDIAN_BITFIELD)
- __u8 dccph_ccval:4,
- dccph_cscov:4;
-#else
-#error "Adjust your <asm/byteorder.h> defines"
-#endif
- __sum16 dccph_checksum;
-#if defined(__LITTLE_ENDIAN_BITFIELD)
- __u8 dccph_x:1,
- dccph_type:4,
- dccph_reserved:3;
-#elif defined(__BIG_ENDIAN_BITFIELD)
- __u8 dccph_reserved:3,
- dccph_type:4,
- dccph_x:1;
-#else
-#error "Adjust your <asm/byteorder.h> defines"
-#endif
- __u8 dccph_seq2;
- __be16 dccph_seq;
-};
-
-/**
- * struct dccp_hdr_ext - the low bits of a 48 bit seq packet
- *
- * @dccph_seq_low - low 24 bits of a 48 bit seq packet
- */
-struct dccp_hdr_ext {
- __be32 dccph_seq_low;
-};
-
-/**
- * struct dccp_hdr_request - Connection initiation request header
- *
- * @dccph_req_service - Service to which the client app wants to connect
- */
-struct dccp_hdr_request {
- __be32 dccph_req_service;
-};
-/**
- * struct dccp_hdr_ack_bits - acknowledgment bits common to most packets
- *
- * @dccph_resp_ack_nr_high - 48 bit ack number high order bits, contains GSR
- * @dccph_resp_ack_nr_low - 48 bit ack number low order bits, contains GSR
- */
-struct dccp_hdr_ack_bits {
- __be16 dccph_reserved1;
- __be16 dccph_ack_nr_high;
- __be32 dccph_ack_nr_low;
-};
-/**
- * struct dccp_hdr_response - Connection initiation response header
- *
- * @dccph_resp_ack - 48 bit Acknowledgment Number Subheader (5.3)
- * @dccph_resp_service - Echoes the Service Code on a received DCCP-Request
- */
-struct dccp_hdr_response {
- struct dccp_hdr_ack_bits dccph_resp_ack;
- __be32 dccph_resp_service;
-};
-
-/**
- * struct dccp_hdr_reset - Unconditionally shut down a connection
- *
- * @dccph_reset_ack - 48 bit Acknowledgment Number Subheader (5.6)
- * @dccph_reset_code - one of %dccp_reset_codes
- * @dccph_reset_data - the Data 1 ... Data 3 fields from 5.6
- */
-struct dccp_hdr_reset {
- struct dccp_hdr_ack_bits dccph_reset_ack;
- __u8 dccph_reset_code,
- dccph_reset_data[3];
-};
-
-enum dccp_pkt_type {
- DCCP_PKT_REQUEST = 0,
- DCCP_PKT_RESPONSE,
- DCCP_PKT_DATA,
- DCCP_PKT_ACK,
- DCCP_PKT_DATAACK,
- DCCP_PKT_CLOSEREQ,
- DCCP_PKT_CLOSE,
- DCCP_PKT_RESET,
- DCCP_PKT_SYNC,
- DCCP_PKT_SYNCACK,
- DCCP_PKT_INVALID,
-};
-
-#define DCCP_NR_PKT_TYPES DCCP_PKT_INVALID
-
-static inline unsigned int dccp_packet_hdr_len(const __u8 type)
-{
- if (type == DCCP_PKT_DATA)
- return 0;
- if (type == DCCP_PKT_DATAACK ||
- type == DCCP_PKT_ACK ||
- type == DCCP_PKT_SYNC ||
- type == DCCP_PKT_SYNCACK ||
- type == DCCP_PKT_CLOSE ||
- type == DCCP_PKT_CLOSEREQ)
- return sizeof(struct dccp_hdr_ack_bits);
- if (type == DCCP_PKT_REQUEST)
- return sizeof(struct dccp_hdr_request);
- if (type == DCCP_PKT_RESPONSE)
- return sizeof(struct dccp_hdr_response);
- return sizeof(struct dccp_hdr_reset);
-}
-enum dccp_reset_codes {
- DCCP_RESET_CODE_UNSPECIFIED = 0,
- DCCP_RESET_CODE_CLOSED,
- DCCP_RESET_CODE_ABORTED,
- DCCP_RESET_CODE_NO_CONNECTION,
- DCCP_RESET_CODE_PACKET_ERROR,
- DCCP_RESET_CODE_OPTION_ERROR,
- DCCP_RESET_CODE_MANDATORY_ERROR,
- DCCP_RESET_CODE_CONNECTION_REFUSED,
- DCCP_RESET_CODE_BAD_SERVICE_CODE,
- DCCP_RESET_CODE_TOO_BUSY,
- DCCP_RESET_CODE_BAD_INIT_COOKIE,
- DCCP_RESET_CODE_AGGRESSION_PENALTY,
-
- DCCP_MAX_RESET_CODES /* Leave at the end! */
-};
-
-/* DCCP options */
-enum {
- DCCPO_PADDING = 0,
- DCCPO_MANDATORY = 1,
- DCCPO_MIN_RESERVED = 3,
- DCCPO_MAX_RESERVED = 31,
- DCCPO_CHANGE_L = 32,
- DCCPO_CONFIRM_L = 33,
- DCCPO_CHANGE_R = 34,
- DCCPO_CONFIRM_R = 35,
- DCCPO_NDP_COUNT = 37,
- DCCPO_ACK_VECTOR_0 = 38,
- DCCPO_ACK_VECTOR_1 = 39,
- DCCPO_TIMESTAMP = 41,
- DCCPO_TIMESTAMP_ECHO = 42,
- DCCPO_ELAPSED_TIME = 43,
- DCCPO_MAX = 45,
- DCCPO_MIN_RX_CCID_SPECIFIC = 128, /* from sender to receiver */
- DCCPO_MAX_RX_CCID_SPECIFIC = 191,
- DCCPO_MIN_TX_CCID_SPECIFIC = 192, /* from receiver to sender */
- DCCPO_MAX_TX_CCID_SPECIFIC = 255,
-};
-/* maximum size of a single TLV-encoded DCCP option (sans type/len bytes) */
-#define DCCP_SINGLE_OPT_MAXLEN 253
-
-/* DCCP CCIDS */
-enum {
- DCCPC_CCID2 = 2,
- DCCPC_CCID3 = 3,
-};
-
-/* DCCP features (RFC 4340 section 6.4) */
-enum dccp_feature_numbers {
- DCCPF_RESERVED = 0,
- DCCPF_CCID = 1,
- DCCPF_SHORT_SEQNOS = 2,
- DCCPF_SEQUENCE_WINDOW = 3,
- DCCPF_ECN_INCAPABLE = 4,
- DCCPF_ACK_RATIO = 5,
- DCCPF_SEND_ACK_VECTOR = 6,
- DCCPF_SEND_NDP_COUNT = 7,
- DCCPF_MIN_CSUM_COVER = 8,
- DCCPF_DATA_CHECKSUM = 9,
- /* 10-127 reserved */
- DCCPF_MIN_CCID_SPECIFIC = 128,
- DCCPF_SEND_LEV_RATE = 192, /* RFC 4342, sec. 8.4 */
- DCCPF_MAX_CCID_SPECIFIC = 255,
-};
-
-/* DCCP socket control message types for cmsg */
-enum dccp_cmsg_type {
- DCCP_SCM_PRIORITY = 1,
- DCCP_SCM_QPOLICY_MAX = 0xFFFF,
- /* ^-- Up to here reserved exclusively for qpolicy parameters */
- DCCP_SCM_MAX
-};
-
-/* DCCP priorities for outgoing/queued packets */
-enum dccp_packet_dequeueing_policy {
- DCCPQ_POLICY_SIMPLE,
- DCCPQ_POLICY_PRIO,
- DCCPQ_POLICY_MAX
-};
-
-/* DCCP socket options */
-#define DCCP_SOCKOPT_PACKET_SIZE 1 /* XXX deprecated, without effect */
-#define DCCP_SOCKOPT_SERVICE 2
-#define DCCP_SOCKOPT_CHANGE_L 3
-#define DCCP_SOCKOPT_CHANGE_R 4
-#define DCCP_SOCKOPT_GET_CUR_MPS 5
-#define DCCP_SOCKOPT_SERVER_TIMEWAIT 6
-#define DCCP_SOCKOPT_SEND_CSCOV 10
-#define DCCP_SOCKOPT_RECV_CSCOV 11
-#define DCCP_SOCKOPT_AVAILABLE_CCIDS 12
-#define DCCP_SOCKOPT_CCID 13
-#define DCCP_SOCKOPT_TX_CCID 14
-#define DCCP_SOCKOPT_RX_CCID 15
-#define DCCP_SOCKOPT_QPOLICY_ID 16
-#define DCCP_SOCKOPT_QPOLICY_TXQLEN 17
-#define DCCP_SOCKOPT_CCID_RX_INFO 128
-#define DCCP_SOCKOPT_CCID_TX_INFO 192
-
-/* maximum number of services provided on the same listening port */
-#define DCCP_SERVICE_LIST_MAX_LEN 32
-
-#ifdef __KERNEL__
-
-#include <linux/in.h>
-#include <linux/interrupt.h>
-#include <linux/ktime.h>
-#include <linux/list.h>
-#include <linux/uio.h>
-#include <linux/workqueue.h>
-
-#include <net/inet_connection_sock.h>
-#include <net/inet_sock.h>
-#include <net/inet_timewait_sock.h>
-#include <net/tcp_states.h>
-
-enum dccp_state {
- DCCP_OPEN = TCP_ESTABLISHED,
- DCCP_REQUESTING = TCP_SYN_SENT,
- DCCP_LISTEN = TCP_LISTEN,
- DCCP_RESPOND = TCP_SYN_RECV,
- /*
- * States involved in closing a DCCP connection:
- * 1) ACTIVE_CLOSEREQ is entered by a server sending a CloseReq.
- *
- * 2) CLOSING can have three different meanings (RFC 4340, 8.3):
- * a. Client has performed active-close, has sent a Close to the server
- * from state OPEN or PARTOPEN, and is waiting for the final Reset
- * (in this case, SOCK_DONE == 1).
- * b. Client is asked to perform passive-close, by receiving a CloseReq
- * in (PART)OPEN state. It sends a Close and waits for final Reset
- * (in this case, SOCK_DONE == 0).
- * c. Server performs an active-close as in (a), keeps TIMEWAIT state.
- *
- * 3) The following intermediate states are employed to give passively
- * closing nodes a chance to process their unread data:
- * - PASSIVE_CLOSE (from OPEN => CLOSED) and
- * - PASSIVE_CLOSEREQ (from (PART)OPEN to CLOSING; case (b) above).
- */
- DCCP_ACTIVE_CLOSEREQ = TCP_FIN_WAIT1,
- DCCP_PASSIVE_CLOSE = TCP_CLOSE_WAIT, /* any node receiving a Close */
- DCCP_CLOSING = TCP_CLOSING,
- DCCP_TIME_WAIT = TCP_TIME_WAIT,
- DCCP_CLOSED = TCP_CLOSE,
- DCCP_PARTOPEN = TCP_MAX_STATES,
- DCCP_PASSIVE_CLOSEREQ, /* clients receiving CloseReq */
- DCCP_MAX_STATES
-};
-
-enum {
- DCCPF_OPEN = TCPF_ESTABLISHED,
- DCCPF_REQUESTING = TCPF_SYN_SENT,
- DCCPF_LISTEN = TCPF_LISTEN,
- DCCPF_RESPOND = TCPF_SYN_RECV,
- DCCPF_ACTIVE_CLOSEREQ = TCPF_FIN_WAIT1,
- DCCPF_CLOSING = TCPF_CLOSING,
- DCCPF_TIME_WAIT = TCPF_TIME_WAIT,
- DCCPF_CLOSED = TCPF_CLOSE,
- DCCPF_PARTOPEN = (1 << DCCP_PARTOPEN),
-};
-
-static inline struct dccp_hdr *dccp_hdr(const struct sk_buff *skb)
-{
- return (struct dccp_hdr *)skb_transport_header(skb);
-}
-
-static inline struct dccp_hdr *dccp_zeroed_hdr(struct sk_buff *skb, int headlen)
-{
- skb_push(skb, headlen);
- skb_reset_transport_header(skb);
- return memset(skb_transport_header(skb), 0, headlen);
-}
-
-static inline struct dccp_hdr_ext *dccp_hdrx(const struct dccp_hdr *dh)
-{
- return (struct dccp_hdr_ext *)((unsigned char *)dh + sizeof(*dh));
-}
-
-static inline unsigned int __dccp_basic_hdr_len(const struct dccp_hdr *dh)
-{
- return sizeof(*dh) + (dh->dccph_x ? sizeof(struct dccp_hdr_ext) : 0);
-}
-
-static inline unsigned int dccp_basic_hdr_len(const struct sk_buff *skb)
-{
- const struct dccp_hdr *dh = dccp_hdr(skb);
- return __dccp_basic_hdr_len(dh);
-}
-
-static inline __u64 dccp_hdr_seq(const struct dccp_hdr *dh)
-{
- __u64 seq_nr = ntohs(dh->dccph_seq);
-
- if (dh->dccph_x != 0)
- seq_nr = (seq_nr << 32) + ntohl(dccp_hdrx(dh)->dccph_seq_low);
- else
- seq_nr += (u32)dh->dccph_seq2 << 16;
-
- return seq_nr;
-}
-
-static inline struct dccp_hdr_request *dccp_hdr_request(struct sk_buff *skb)
-{
- return (struct dccp_hdr_request *)(skb_transport_header(skb) +
- dccp_basic_hdr_len(skb));
-}
-
-static inline struct dccp_hdr_ack_bits *dccp_hdr_ack_bits(const struct sk_buff *skb)
-{
- return (struct dccp_hdr_ack_bits *)(skb_transport_header(skb) +
- dccp_basic_hdr_len(skb));
-}
-
-static inline u64 dccp_hdr_ack_seq(const struct sk_buff *skb)
-{
- const struct dccp_hdr_ack_bits *dhack = dccp_hdr_ack_bits(skb);
- return ((u64)ntohs(dhack->dccph_ack_nr_high) << 32) + ntohl(dhack->dccph_ack_nr_low);
-}
-
-static inline struct dccp_hdr_response *dccp_hdr_response(struct sk_buff *skb)
-{
- return (struct dccp_hdr_response *)(skb_transport_header(skb) +
- dccp_basic_hdr_len(skb));
-}
-
-static inline struct dccp_hdr_reset *dccp_hdr_reset(struct sk_buff *skb)
-{
- return (struct dccp_hdr_reset *)(skb_transport_header(skb) +
- dccp_basic_hdr_len(skb));
-}
-
-static inline unsigned int __dccp_hdr_len(const struct dccp_hdr *dh)
-{
- return __dccp_basic_hdr_len(dh) +
- dccp_packet_hdr_len(dh->dccph_type);
-}
-
-static inline unsigned int dccp_hdr_len(const struct sk_buff *skb)
-{
- return __dccp_hdr_len(dccp_hdr(skb));
-}
-
-/**
- * struct dccp_request_sock - represent DCCP-specific connection request
- * @dreq_inet_rsk: structure inherited from
- * @dreq_iss: initial sequence number, sent on the first Response (RFC 4340, 7.1)
- * @dreq_gss: greatest sequence number sent (for retransmitted Responses)
- * @dreq_isr: initial sequence number received in the first Request
- * @dreq_gsr: greatest sequence number received (for retransmitted Request(s))
- * @dreq_service: service code present on the Request (there is just one)
- * @dreq_featneg: feature negotiation options for this connection
- * The following two fields are analogous to the ones in dccp_sock:
- * @dreq_timestamp_echo: last received timestamp to echo (13.1)
- * @dreq_timestamp_echo: the time of receiving the last @dreq_timestamp_echo
- */
-struct dccp_request_sock {
- struct inet_request_sock dreq_inet_rsk;
- __u64 dreq_iss;
- __u64 dreq_gss;
- __u64 dreq_isr;
- __u64 dreq_gsr;
- __be32 dreq_service;
- struct list_head dreq_featneg;
- __u32 dreq_timestamp_echo;
- __u32 dreq_timestamp_time;
-};
-
-static inline struct dccp_request_sock *dccp_rsk(const struct request_sock *req)
-{
- return (struct dccp_request_sock *)req;
-}
-
-extern struct inet_timewait_death_row dccp_death_row;
-
-extern int dccp_parse_options(struct sock *sk, struct dccp_request_sock *dreq,
- struct sk_buff *skb);
-
-struct dccp_options_received {
- u64 dccpor_ndp:48;
- u32 dccpor_timestamp;
- u32 dccpor_timestamp_echo;
- u32 dccpor_elapsed_time;
-};
-
-struct ccid;
-
-enum dccp_role {
- DCCP_ROLE_UNDEFINED,
- DCCP_ROLE_LISTEN,
- DCCP_ROLE_CLIENT,
- DCCP_ROLE_SERVER,
-};
-
-struct dccp_service_list {
- __u32 dccpsl_nr;
- __be32 dccpsl_list[0];
-};
-
-#define DCCP_SERVICE_INVALID_VALUE htonl((__u32)-1)
-#define DCCP_SERVICE_CODE_IS_ABSENT 0
-
-static inline int dccp_list_has_service(const struct dccp_service_list *sl,
- const __be32 service)
-{
- if (likely(sl != NULL)) {
- u32 i = sl->dccpsl_nr;
- while (i--)
- if (sl->dccpsl_list[i] == service)
- return 1;
- }
- return 0;
-}
-
-struct dccp_ackvec;
-
-/**
- * struct dccp_sock - DCCP socket state
- *
- * @dccps_swl - sequence number window low
- * @dccps_swh - sequence number window high
- * @dccps_awl - acknowledgement number window low
- * @dccps_awh - acknowledgement number window high
- * @dccps_iss - initial sequence number sent
- * @dccps_isr - initial sequence number received
- * @dccps_osr - first OPEN sequence number received
- * @dccps_gss - greatest sequence number sent
- * @dccps_gsr - greatest valid sequence number received
- * @dccps_gar - greatest valid ack number received on a non-Sync; initialized to %dccps_iss
- * @dccps_service - first (passive sock) or unique (active sock) service code
- * @dccps_service_list - second .. last service code on passive socket
- * @dccps_timestamp_echo - latest timestamp received on a TIMESTAMP option
- * @dccps_timestamp_time - time of receiving latest @dccps_timestamp_echo
- * @dccps_l_ack_ratio - feature-local Ack Ratio
- * @dccps_r_ack_ratio - feature-remote Ack Ratio
- * @dccps_l_seq_win - local Sequence Window (influences ack number validity)
- * @dccps_r_seq_win - remote Sequence Window (influences seq number validity)
- * @dccps_pcslen - sender partial checksum coverage (via sockopt)
- * @dccps_pcrlen - receiver partial checksum coverage (via sockopt)
- * @dccps_send_ndp_count - local Send NDP Count feature (7.7.2)
- * @dccps_ndp_count - number of Non Data Packets since last data packet
- * @dccps_mss_cache - current value of MSS (path MTU minus header sizes)
- * @dccps_rate_last - timestamp for rate-limiting DCCP-Sync (RFC 4340, 7.5.4)
- * @dccps_featneg - tracks feature-negotiation state (mostly during handshake)
- * @dccps_hc_rx_ackvec - rx half connection ack vector
- * @dccps_hc_rx_ccid - CCID used for the receiver (or receiving half-connection)
- * @dccps_hc_tx_ccid - CCID used for the sender (or sending half-connection)
- * @dccps_options_received - parsed set of retrieved options
- * @dccps_qpolicy - TX dequeueing policy, one of %dccp_packet_dequeueing_policy
- * @dccps_tx_qlen - maximum length of the TX queue
- * @dccps_role - role of this sock, one of %dccp_role
- * @dccps_hc_rx_insert_options - receiver wants to add options when acking
- * @dccps_hc_tx_insert_options - sender wants to add options when sending
- * @dccps_server_timewait - server holds timewait state on close (RFC 4340, 8.3)
- * @dccps_sync_scheduled - flag which signals "send out-of-band message soon"
- * @dccps_xmitlet - tasklet scheduled by the TX CCID to dequeue data packets
- * @dccps_xmit_timer - used by the TX CCID to delay sending (rate-based pacing)
- * @dccps_syn_rtt - RTT sample from Request/Response exchange (in usecs)
- */
-struct dccp_sock {
- /* inet_connection_sock has to be the first member of dccp_sock */
- struct inet_connection_sock dccps_inet_connection;
-#define dccps_syn_rtt dccps_inet_connection.icsk_ack.lrcvtime
- __u64 dccps_swl;
- __u64 dccps_swh;
- __u64 dccps_awl;
- __u64 dccps_awh;
- __u64 dccps_iss;
- __u64 dccps_isr;
- __u64 dccps_osr;
- __u64 dccps_gss;
- __u64 dccps_gsr;
- __u64 dccps_gar;
- __be32 dccps_service;
- __u32 dccps_mss_cache;
- struct dccp_service_list *dccps_service_list;
- __u32 dccps_timestamp_echo;
- __u32 dccps_timestamp_time;
- __u16 dccps_l_ack_ratio;
- __u16 dccps_r_ack_ratio;
- __u64 dccps_l_seq_win:48;
- __u64 dccps_r_seq_win:48;
- __u8 dccps_pcslen:4;
- __u8 dccps_pcrlen:4;
- __u8 dccps_send_ndp_count:1;
- __u64 dccps_ndp_count:48;
- unsigned long dccps_rate_last;
- struct list_head dccps_featneg;
- struct dccp_ackvec *dccps_hc_rx_ackvec;
- struct ccid *dccps_hc_rx_ccid;
- struct ccid *dccps_hc_tx_ccid;
- struct dccp_options_received dccps_options_received;
- __u8 dccps_qpolicy;
- __u32 dccps_tx_qlen;
- enum dccp_role dccps_role:2;
- __u8 dccps_hc_rx_insert_options:1;
- __u8 dccps_hc_tx_insert_options:1;
- __u8 dccps_server_timewait:1;
- __u8 dccps_sync_scheduled:1;
- struct tasklet_struct dccps_xmitlet;
- struct timer_list dccps_xmit_timer;
-};
-
-static inline struct dccp_sock *dccp_sk(const struct sock *sk)
-{
- return (struct dccp_sock *)sk;
-}
-
-static inline const char *dccp_role(const struct sock *sk)
-{
- switch (dccp_sk(sk)->dccps_role) {
- case DCCP_ROLE_UNDEFINED: return "undefined";
- case DCCP_ROLE_LISTEN: return "listen";
- case DCCP_ROLE_SERVER: return "server";
- case DCCP_ROLE_CLIENT: return "client";
- }
- return NULL;
-}
-
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_DCCP_H */
diff --git a/ANDROID_3.4.5/include/linux/dcookies.h b/ANDROID_3.4.5/include/linux/dcookies.h
deleted file mode 100644
index 5ac3bdd5..00000000
--- a/ANDROID_3.4.5/include/linux/dcookies.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * dcookies.h
- *
- * Persistent cookie-path mappings
- *
- * Copyright 2002 John Levon <levon@movementarian.org>
- */
-
-#ifndef DCOOKIES_H
-#define DCOOKIES_H
-
-
-#ifdef CONFIG_PROFILING
-
-#include <linux/dcache.h>
-#include <linux/types.h>
-
-struct dcookie_user;
-struct path;
-
-/**
- * dcookie_register - register a user of dcookies
- *
- * Register as a dcookie user. Returns %NULL on failure.
- */
-struct dcookie_user * dcookie_register(void);
-
-/**
- * dcookie_unregister - unregister a user of dcookies
- *
- * Unregister as a dcookie user. This may invalidate
- * any dcookie values returned from get_dcookie().
- */
-void dcookie_unregister(struct dcookie_user * user);
-
-/**
- * get_dcookie - acquire a dcookie
- *
- * Convert the given dentry/vfsmount pair into
- * a cookie value.
- *
- * Returns -EINVAL if no living task has registered as a
- * dcookie user.
- *
- * Returns 0 on success, with *cookie filled in
- */
-int get_dcookie(struct path *path, unsigned long *cookie);
-
-#else
-
-static inline struct dcookie_user * dcookie_register(void)
-{
- return NULL;
-}
-
-static inline void dcookie_unregister(struct dcookie_user * user)
-{
- return;
-}
-
-static inline int get_dcookie(struct path *path, unsigned long *cookie)
-{
- return -ENOSYS;
-}
-
-#endif /* CONFIG_PROFILING */
-
-#endif /* DCOOKIES_H */
diff --git a/ANDROID_3.4.5/include/linux/debug_locks.h b/ANDROID_3.4.5/include/linux/debug_locks.h
deleted file mode 100644
index 3bd46f76..00000000
--- a/ANDROID_3.4.5/include/linux/debug_locks.h
+++ /dev/null
@@ -1,75 +0,0 @@
-#ifndef __LINUX_DEBUG_LOCKING_H
-#define __LINUX_DEBUG_LOCKING_H
-
-#include <linux/kernel.h>
-#include <linux/atomic.h>
-#include <linux/bug.h>
-
-struct task_struct;
-
-extern int debug_locks;
-extern int debug_locks_silent;
-
-
-static inline int __debug_locks_off(void)
-{
- return xchg(&debug_locks, 0);
-}
-
-/*
- * Generic 'turn off all lock debugging' function:
- */
-extern int debug_locks_off(void);
-
-#define DEBUG_LOCKS_WARN_ON(c) \
-({ \
- int __ret = 0; \
- \
- if (!oops_in_progress && unlikely(c)) { \
- if (debug_locks_off() && !debug_locks_silent) \
- WARN_ON(1); \
- __ret = 1; \
- } \
- __ret; \
-})
-
-#ifdef CONFIG_SMP
-# define SMP_DEBUG_LOCKS_WARN_ON(c) DEBUG_LOCKS_WARN_ON(c)
-#else
-# define SMP_DEBUG_LOCKS_WARN_ON(c) do { } while (0)
-#endif
-
-#ifdef CONFIG_DEBUG_LOCKING_API_SELFTESTS
- extern void locking_selftest(void);
-#else
-# define locking_selftest() do { } while (0)
-#endif
-
-struct task_struct;
-
-#ifdef CONFIG_LOCKDEP
-extern void debug_show_all_locks(void);
-extern void debug_show_held_locks(struct task_struct *task);
-extern void debug_check_no_locks_freed(const void *from, unsigned long len);
-extern void debug_check_no_locks_held(struct task_struct *task);
-#else
-static inline void debug_show_all_locks(void)
-{
-}
-
-static inline void debug_show_held_locks(struct task_struct *task)
-{
-}
-
-static inline void
-debug_check_no_locks_freed(const void *from, unsigned long len)
-{
-}
-
-static inline void
-debug_check_no_locks_held(struct task_struct *task)
-{
-}
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/debugfs.h b/ANDROID_3.4.5/include/linux/debugfs.h
deleted file mode 100644
index ae36b72c..00000000
--- a/ANDROID_3.4.5/include/linux/debugfs.h
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
- * debugfs.h - a tiny little debug file system
- *
- * Copyright (C) 2004 Greg Kroah-Hartman <greg@kroah.com>
- * Copyright (C) 2004 IBM Inc.
- *
- * 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.
- *
- * debugfs is for people to use instead of /proc or /sys.
- * See Documentation/DocBook/filesystems for more details.
- */
-
-#ifndef _DEBUGFS_H_
-#define _DEBUGFS_H_
-
-#include <linux/fs.h>
-#include <linux/seq_file.h>
-
-#include <linux/types.h>
-
-struct file_operations;
-
-struct debugfs_blob_wrapper {
- void *data;
- unsigned long size;
-};
-
-struct debugfs_reg32 {
- char *name;
- unsigned long offset;
-};
-
-struct debugfs_regset32 {
- struct debugfs_reg32 *regs;
- int nregs;
- void __iomem *base;
-};
-
-extern struct dentry *arch_debugfs_dir;
-
-#if defined(CONFIG_DEBUG_FS)
-
-/* declared over in file.c */
-extern const struct file_operations debugfs_file_operations;
-extern const struct inode_operations debugfs_link_operations;
-
-struct dentry *debugfs_create_file(const char *name, umode_t mode,
- struct dentry *parent, void *data,
- const struct file_operations *fops);
-
-struct dentry *debugfs_create_dir(const char *name, struct dentry *parent);
-
-struct dentry *debugfs_create_symlink(const char *name, struct dentry *parent,
- const char *dest);
-
-void debugfs_remove(struct dentry *dentry);
-void debugfs_remove_recursive(struct dentry *dentry);
-
-struct dentry *debugfs_rename(struct dentry *old_dir, struct dentry *old_dentry,
- struct dentry *new_dir, const char *new_name);
-
-struct dentry *debugfs_create_u8(const char *name, umode_t mode,
- struct dentry *parent, u8 *value);
-struct dentry *debugfs_create_u16(const char *name, umode_t mode,
- struct dentry *parent, u16 *value);
-struct dentry *debugfs_create_u32(const char *name, umode_t mode,
- struct dentry *parent, u32 *value);
-struct dentry *debugfs_create_u64(const char *name, umode_t mode,
- struct dentry *parent, u64 *value);
-struct dentry *debugfs_create_x8(const char *name, umode_t mode,
- struct dentry *parent, u8 *value);
-struct dentry *debugfs_create_x16(const char *name, umode_t mode,
- struct dentry *parent, u16 *value);
-struct dentry *debugfs_create_x32(const char *name, umode_t mode,
- struct dentry *parent, u32 *value);
-struct dentry *debugfs_create_x64(const char *name, umode_t mode,
- struct dentry *parent, u64 *value);
-struct dentry *debugfs_create_size_t(const char *name, umode_t mode,
- struct dentry *parent, size_t *value);
-struct dentry *debugfs_create_bool(const char *name, umode_t mode,
- struct dentry *parent, u32 *value);
-
-struct dentry *debugfs_create_blob(const char *name, umode_t mode,
- struct dentry *parent,
- struct debugfs_blob_wrapper *blob);
-
-struct dentry *debugfs_create_regset32(const char *name, umode_t mode,
- struct dentry *parent,
- struct debugfs_regset32 *regset);
-
-int debugfs_print_regs32(struct seq_file *s, const struct debugfs_reg32 *regs,
- int nregs, void __iomem *base, char *prefix);
-
-bool debugfs_initialized(void);
-
-#else
-
-#include <linux/err.h>
-
-/*
- * We do not return NULL from these functions if CONFIG_DEBUG_FS is not enabled
- * so users have a chance to detect if there was a real error or not. We don't
- * want to duplicate the design decision mistakes of procfs and devfs again.
- */
-
-static inline struct dentry *debugfs_create_file(const char *name, umode_t mode,
- struct dentry *parent, void *data,
- const struct file_operations *fops)
-{
- return ERR_PTR(-ENODEV);
-}
-
-static inline struct dentry *debugfs_create_dir(const char *name,
- struct dentry *parent)
-{
- return ERR_PTR(-ENODEV);
-}
-
-static inline struct dentry *debugfs_create_symlink(const char *name,
- struct dentry *parent,
- const char *dest)
-{
- return ERR_PTR(-ENODEV);
-}
-
-static inline void debugfs_remove(struct dentry *dentry)
-{ }
-
-static inline void debugfs_remove_recursive(struct dentry *dentry)
-{ }
-
-static inline struct dentry *debugfs_rename(struct dentry *old_dir, struct dentry *old_dentry,
- struct dentry *new_dir, char *new_name)
-{
- return ERR_PTR(-ENODEV);
-}
-
-static inline struct dentry *debugfs_create_u8(const char *name, umode_t mode,
- struct dentry *parent,
- u8 *value)
-{
- return ERR_PTR(-ENODEV);
-}
-
-static inline struct dentry *debugfs_create_u16(const char *name, umode_t mode,
- struct dentry *parent,
- u16 *value)
-{
- return ERR_PTR(-ENODEV);
-}
-
-static inline struct dentry *debugfs_create_u32(const char *name, umode_t mode,
- struct dentry *parent,
- u32 *value)
-{
- return ERR_PTR(-ENODEV);
-}
-
-static inline struct dentry *debugfs_create_u64(const char *name, umode_t mode,
- struct dentry *parent,
- u64 *value)
-{
- return ERR_PTR(-ENODEV);
-}
-
-static inline struct dentry *debugfs_create_x8(const char *name, umode_t mode,
- struct dentry *parent,
- u8 *value)
-{
- return ERR_PTR(-ENODEV);
-}
-
-static inline struct dentry *debugfs_create_x16(const char *name, umode_t mode,
- struct dentry *parent,
- u16 *value)
-{
- return ERR_PTR(-ENODEV);
-}
-
-static inline struct dentry *debugfs_create_x32(const char *name, umode_t mode,
- struct dentry *parent,
- u32 *value)
-{
- return ERR_PTR(-ENODEV);
-}
-
-static inline struct dentry *debugfs_create_size_t(const char *name, umode_t mode,
- struct dentry *parent,
- size_t *value)
-{
- return ERR_PTR(-ENODEV);
-}
-
-static inline struct dentry *debugfs_create_bool(const char *name, umode_t mode,
- struct dentry *parent,
- u32 *value)
-{
- return ERR_PTR(-ENODEV);
-}
-
-static inline struct dentry *debugfs_create_blob(const char *name, umode_t mode,
- struct dentry *parent,
- struct debugfs_blob_wrapper *blob)
-{
- return ERR_PTR(-ENODEV);
-}
-
-static inline struct dentry *debugfs_create_regset32(const char *name,
- umode_t mode, struct dentry *parent,
- struct debugfs_regset32 *regset)
-{
- return ERR_PTR(-ENODEV);
-}
-
-static inline bool debugfs_initialized(void)
-{
- return false;
-}
-
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/debugobjects.h b/ANDROID_3.4.5/include/linux/debugobjects.h
deleted file mode 100644
index 0e5f5785..00000000
--- a/ANDROID_3.4.5/include/linux/debugobjects.h
+++ /dev/null
@@ -1,110 +0,0 @@
-#ifndef _LINUX_DEBUGOBJECTS_H
-#define _LINUX_DEBUGOBJECTS_H
-
-#include <linux/list.h>
-#include <linux/spinlock.h>
-
-enum debug_obj_state {
- ODEBUG_STATE_NONE,
- ODEBUG_STATE_INIT,
- ODEBUG_STATE_INACTIVE,
- ODEBUG_STATE_ACTIVE,
- ODEBUG_STATE_DESTROYED,
- ODEBUG_STATE_NOTAVAILABLE,
- ODEBUG_STATE_MAX,
-};
-
-struct debug_obj_descr;
-
-/**
- * struct debug_obj - representaion of an tracked object
- * @node: hlist node to link the object into the tracker list
- * @state: tracked object state
- * @astate: current active state
- * @object: pointer to the real object
- * @descr: pointer to an object type specific debug description structure
- */
-struct debug_obj {
- struct hlist_node node;
- enum debug_obj_state state;
- unsigned int astate;
- void *object;
- struct debug_obj_descr *descr;
-};
-
-/**
- * struct debug_obj_descr - object type specific debug description structure
- *
- * @name: name of the object typee
- * @debug_hint: function returning address, which have associated
- * kernel symbol, to allow identify the object
- * @fixup_init: fixup function, which is called when the init check
- * fails
- * @fixup_activate: fixup function, which is called when the activate check
- * fails
- * @fixup_destroy: fixup function, which is called when the destroy check
- * fails
- * @fixup_free: fixup function, which is called when the free check
- * fails
- * @fixup_assert_init: fixup function, which is called when the assert_init
- * check fails
- */
-struct debug_obj_descr {
- const char *name;
- void *(*debug_hint) (void *addr);
- int (*fixup_init) (void *addr, enum debug_obj_state state);
- int (*fixup_activate) (void *addr, enum debug_obj_state state);
- int (*fixup_destroy) (void *addr, enum debug_obj_state state);
- int (*fixup_free) (void *addr, enum debug_obj_state state);
- int (*fixup_assert_init)(void *addr, enum debug_obj_state state);
-};
-
-#ifdef CONFIG_DEBUG_OBJECTS
-extern void debug_object_init (void *addr, struct debug_obj_descr *descr);
-extern void
-debug_object_init_on_stack(void *addr, struct debug_obj_descr *descr);
-extern void debug_object_activate (void *addr, struct debug_obj_descr *descr);
-extern void debug_object_deactivate(void *addr, struct debug_obj_descr *descr);
-extern void debug_object_destroy (void *addr, struct debug_obj_descr *descr);
-extern void debug_object_free (void *addr, struct debug_obj_descr *descr);
-extern void debug_object_assert_init(void *addr, struct debug_obj_descr *descr);
-
-/*
- * Active state:
- * - Set at 0 upon initialization.
- * - Must return to 0 before deactivation.
- */
-extern void
-debug_object_active_state(void *addr, struct debug_obj_descr *descr,
- unsigned int expect, unsigned int next);
-
-extern void debug_objects_early_init(void);
-extern void debug_objects_mem_init(void);
-#else
-static inline void
-debug_object_init (void *addr, struct debug_obj_descr *descr) { }
-static inline void
-debug_object_init_on_stack(void *addr, struct debug_obj_descr *descr) { }
-static inline void
-debug_object_activate (void *addr, struct debug_obj_descr *descr) { }
-static inline void
-debug_object_deactivate(void *addr, struct debug_obj_descr *descr) { }
-static inline void
-debug_object_destroy (void *addr, struct debug_obj_descr *descr) { }
-static inline void
-debug_object_free (void *addr, struct debug_obj_descr *descr) { }
-static inline void
-debug_object_assert_init(void *addr, struct debug_obj_descr *descr) { }
-
-static inline void debug_objects_early_init(void) { }
-static inline void debug_objects_mem_init(void) { }
-#endif
-
-#ifdef CONFIG_DEBUG_OBJECTS_FREE
-extern void debug_check_no_obj_freed(const void *address, unsigned long size);
-#else
-static inline void
-debug_check_no_obj_freed(const void *address, unsigned long size) { }
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/decompress/bunzip2.h b/ANDROID_3.4.5/include/linux/decompress/bunzip2.h
deleted file mode 100644
index 11527213..00000000
--- a/ANDROID_3.4.5/include/linux/decompress/bunzip2.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef DECOMPRESS_BUNZIP2_H
-#define DECOMPRESS_BUNZIP2_H
-
-int bunzip2(unsigned char *inbuf, int len,
- int(*fill)(void*, unsigned int),
- int(*flush)(void*, unsigned int),
- unsigned char *output,
- int *pos,
- void(*error)(char *x));
-#endif
diff --git a/ANDROID_3.4.5/include/linux/decompress/generic.h b/ANDROID_3.4.5/include/linux/decompress/generic.h
deleted file mode 100644
index 0c7111a5..00000000
--- a/ANDROID_3.4.5/include/linux/decompress/generic.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef DECOMPRESS_GENERIC_H
-#define DECOMPRESS_GENERIC_H
-
-typedef int (*decompress_fn) (unsigned char *inbuf, int len,
- int(*fill)(void*, unsigned int),
- int(*flush)(void*, unsigned int),
- unsigned char *outbuf,
- int *posp,
- void(*error)(char *x));
-
-/* inbuf - input buffer
- *len - len of pre-read data in inbuf
- *fill - function to fill inbuf when empty
- *flush - function to write out outbuf
- *outbuf - output buffer
- *posp - if non-null, input position (number of bytes read) will be
- * returned here
- *
- *If len != 0, inbuf should contain all the necessary input data, and fill
- *should be NULL
- *If len = 0, inbuf can be NULL, in which case the decompressor will allocate
- *the input buffer. If inbuf != NULL it must be at least XXX_IOBUF_SIZE bytes.
- *fill will be called (repeatedly...) to read data, at most XXX_IOBUF_SIZE
- *bytes should be read per call. Replace XXX with the appropriate decompressor
- *name, i.e. LZMA_IOBUF_SIZE.
- *
- *If flush = NULL, outbuf must be large enough to buffer all the expected
- *output. If flush != NULL, the output buffer will be allocated by the
- *decompressor (outbuf = NULL), and the flush function will be called to
- *flush the output buffer at the appropriate time (decompressor and stream
- *dependent).
- */
-
-
-/* Utility routine to detect the decompression method */
-decompress_fn decompress_method(const unsigned char *inbuf, int len,
- const char **name);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/decompress/inflate.h b/ANDROID_3.4.5/include/linux/decompress/inflate.h
deleted file mode 100644
index 8c0aef1b..00000000
--- a/ANDROID_3.4.5/include/linux/decompress/inflate.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef INFLATE_H
-#define INFLATE_H
-
-int gunzip(unsigned char *inbuf, int len,
- int(*fill)(void*, unsigned int),
- int(*flush)(void*, unsigned int),
- unsigned char *output,
- int *pos,
- void(*error_fn)(char *x));
-#endif
diff --git a/ANDROID_3.4.5/include/linux/decompress/mm.h b/ANDROID_3.4.5/include/linux/decompress/mm.h
deleted file mode 100644
index 7925bf0e..00000000
--- a/ANDROID_3.4.5/include/linux/decompress/mm.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * linux/compr_mm.h
- *
- * Memory management for pre-boot and ramdisk uncompressors
- *
- * Authors: Alain Knaff <alain@knaff.lu>
- *
- */
-
-#ifndef DECOMPR_MM_H
-#define DECOMPR_MM_H
-
-#ifdef STATIC
-
-/* Code active when included from pre-boot environment: */
-
-/*
- * Some architectures want to ensure there is no local data in their
- * pre-boot environment, so that data can arbitrarily relocated (via
- * GOT references). This is achieved by defining STATIC_RW_DATA to
- * be null.
- */
-#ifndef STATIC_RW_DATA
-#define STATIC_RW_DATA static
-#endif
-
-/* A trivial malloc implementation, adapted from
- * malloc by Hannu Savolainen 1993 and Matthias Urlichs 1994
- */
-STATIC_RW_DATA unsigned long malloc_ptr;
-STATIC_RW_DATA int malloc_count;
-
-static void *malloc(int size)
-{
- void *p;
-
- if (size < 0)
- return NULL;
- if (!malloc_ptr)
- malloc_ptr = free_mem_ptr;
-
- malloc_ptr = (malloc_ptr + 3) & ~3; /* Align */
-
- p = (void *)malloc_ptr;
- malloc_ptr += size;
-
- if (free_mem_end_ptr && malloc_ptr >= free_mem_end_ptr)
- return NULL;
-
- malloc_count++;
- return p;
-}
-
-static void free(void *where)
-{
- malloc_count--;
- if (!malloc_count)
- malloc_ptr = free_mem_ptr;
-}
-
-#define large_malloc(a) malloc(a)
-#define large_free(a) free(a)
-
-#define INIT
-
-#else /* STATIC */
-
-/* Code active when compiled standalone for use when loading ramdisk: */
-
-#include <linux/kernel.h>
-#include <linux/fs.h>
-#include <linux/string.h>
-#include <linux/slab.h>
-#include <linux/vmalloc.h>
-
-/* Use defines rather than static inline in order to avoid spurious
- * warnings when not needed (indeed large_malloc / large_free are not
- * needed by inflate */
-
-#define malloc(a) kmalloc(a, GFP_KERNEL)
-#define free(a) kfree(a)
-
-#define large_malloc(a) vmalloc(a)
-#define large_free(a) vfree(a)
-
-#define INIT __init
-#define STATIC
-
-#include <linux/init.h>
-
-#endif /* STATIC */
-
-#endif /* DECOMPR_MM_H */
diff --git a/ANDROID_3.4.5/include/linux/decompress/unlz4.h b/ANDROID_3.4.5/include/linux/decompress/unlz4.h
deleted file mode 100755
index d5b68bf3..00000000
--- a/ANDROID_3.4.5/include/linux/decompress/unlz4.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef DECOMPRESS_UNLZ4_H
-#define DECOMPRESS_UNLZ4_H
-
-int unlz4(unsigned char *inbuf, int len,
- int(*fill)(void*, unsigned int),
- int(*flush)(void*, unsigned int),
- unsigned char *output,
- int *pos,
- void(*error)(char *x));
-#endif
diff --git a/ANDROID_3.4.5/include/linux/decompress/unlzma.h b/ANDROID_3.4.5/include/linux/decompress/unlzma.h
deleted file mode 100644
index 7796538f..00000000
--- a/ANDROID_3.4.5/include/linux/decompress/unlzma.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef DECOMPRESS_UNLZMA_H
-#define DECOMPRESS_UNLZMA_H
-
-int unlzma(unsigned char *, int,
- int(*fill)(void*, unsigned int),
- int(*flush)(void*, unsigned int),
- unsigned char *output,
- int *posp,
- void(*error)(char *x)
- );
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/decompress/unlzo.h b/ANDROID_3.4.5/include/linux/decompress/unlzo.h
deleted file mode 100644
index 98722975..00000000
--- a/ANDROID_3.4.5/include/linux/decompress/unlzo.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef DECOMPRESS_UNLZO_H
-#define DECOMPRESS_UNLZO_H
-
-int unlzo(unsigned char *inbuf, int len,
- int(*fill)(void*, unsigned int),
- int(*flush)(void*, unsigned int),
- unsigned char *output,
- int *pos,
- void(*error)(char *x));
-#endif
diff --git a/ANDROID_3.4.5/include/linux/decompress/unxz.h b/ANDROID_3.4.5/include/linux/decompress/unxz.h
deleted file mode 100644
index 41728fc6..00000000
--- a/ANDROID_3.4.5/include/linux/decompress/unxz.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * Wrapper for decompressing XZ-compressed kernel, initramfs, and initrd
- *
- * Author: Lasse Collin <lasse.collin@tukaani.org>
- *
- * This file has been put into the public domain.
- * You can do whatever you want with this file.
- */
-
-#ifndef DECOMPRESS_UNXZ_H
-#define DECOMPRESS_UNXZ_H
-
-int unxz(unsigned char *in, int in_size,
- int (*fill)(void *dest, unsigned int size),
- int (*flush)(void *src, unsigned int size),
- unsigned char *out, int *in_used,
- void (*error)(char *x));
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/delay.h b/ANDROID_3.4.5/include/linux/delay.h
deleted file mode 100644
index a6ecb34c..00000000
--- a/ANDROID_3.4.5/include/linux/delay.h
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef _LINUX_DELAY_H
-#define _LINUX_DELAY_H
-
-/*
- * Copyright (C) 1993 Linus Torvalds
- *
- * Delay routines, using a pre-computed "loops_per_jiffy" value.
- */
-
-#include <linux/kernel.h>
-
-extern unsigned long loops_per_jiffy;
-
-#include <asm/delay.h>
-
-/*
- * Using udelay() for intervals greater than a few milliseconds can
- * risk overflow for high loops_per_jiffy (high bogomips) machines. The
- * mdelay() provides a wrapper to prevent this. For delays greater
- * than MAX_UDELAY_MS milliseconds, the wrapper is used. Architecture
- * specific values can be defined in asm-???/delay.h as an override.
- * The 2nd mdelay() definition ensures GCC will optimize away the
- * while loop for the common cases where n <= MAX_UDELAY_MS -- Paul G.
- */
-
-#ifndef MAX_UDELAY_MS
-#define MAX_UDELAY_MS 5
-#endif
-
-#ifndef mdelay
-#define mdelay(n) (\
- (__builtin_constant_p(n) && (n)<=MAX_UDELAY_MS) ? udelay((n)*1000) : \
- ({unsigned long __ms=(n); while (__ms--) udelay(1000);}))
-#endif
-
-#ifndef ndelay
-static inline void ndelay(unsigned long x)
-{
- udelay(DIV_ROUND_UP(x, 1000));
-}
-#define ndelay(x) ndelay(x)
-#endif
-
-extern unsigned long lpj_fine;
-void calibrate_delay(void);
-void msleep(unsigned int msecs);
-unsigned long msleep_interruptible(unsigned int msecs);
-void usleep_range(unsigned long min, unsigned long max);
-
-static inline void ssleep(unsigned int seconds)
-{
- msleep(seconds * 1000);
-}
-
-#endif /* defined(_LINUX_DELAY_H) */
diff --git a/ANDROID_3.4.5/include/linux/delayacct.h b/ANDROID_3.4.5/include/linux/delayacct.h
deleted file mode 100644
index 6cee17c2..00000000
--- a/ANDROID_3.4.5/include/linux/delayacct.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/* delayacct.h - per-task delay accounting
- *
- * Copyright (C) Shailabh Nagar, IBM Corp. 2006
- *
- * 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 _LINUX_DELAYACCT_H
-#define _LINUX_DELAYACCT_H
-
-#include <linux/sched.h>
-#include <linux/slab.h>
-
-/*
- * Per-task flags relevant to delay accounting
- * maintained privately to avoid exhausting similar flags in sched.h:PF_*
- * Used to set current->delays->flags
- */
-#define DELAYACCT_PF_SWAPIN 0x00000001 /* I am doing a swapin */
-#define DELAYACCT_PF_BLKIO 0x00000002 /* I am waiting on IO */
-
-#ifdef CONFIG_TASK_DELAY_ACCT
-
-extern int delayacct_on; /* Delay accounting turned on/off */
-extern struct kmem_cache *delayacct_cache;
-extern void delayacct_init(void);
-extern void __delayacct_tsk_init(struct task_struct *);
-extern void __delayacct_tsk_exit(struct task_struct *);
-extern void __delayacct_blkio_start(void);
-extern void __delayacct_blkio_end(void);
-extern int __delayacct_add_tsk(struct taskstats *, struct task_struct *);
-extern __u64 __delayacct_blkio_ticks(struct task_struct *);
-extern void __delayacct_freepages_start(void);
-extern void __delayacct_freepages_end(void);
-
-static inline int delayacct_is_task_waiting_on_io(struct task_struct *p)
-{
- if (p->delays)
- return (p->delays->flags & DELAYACCT_PF_BLKIO);
- else
- return 0;
-}
-
-static inline void delayacct_set_flag(int flag)
-{
- if (current->delays)
- current->delays->flags |= flag;
-}
-
-static inline void delayacct_clear_flag(int flag)
-{
- if (current->delays)
- current->delays->flags &= ~flag;
-}
-
-static inline void delayacct_tsk_init(struct task_struct *tsk)
-{
- /* reinitialize in case parent's non-null pointer was dup'ed*/
- tsk->delays = NULL;
- if (delayacct_on)
- __delayacct_tsk_init(tsk);
-}
-
-/* Free tsk->delays. Called from bad fork and __put_task_struct
- * where there's no risk of tsk->delays being accessed elsewhere
- */
-static inline void delayacct_tsk_free(struct task_struct *tsk)
-{
- if (tsk->delays)
- kmem_cache_free(delayacct_cache, tsk->delays);
- tsk->delays = NULL;
-}
-
-static inline void delayacct_blkio_start(void)
-{
- delayacct_set_flag(DELAYACCT_PF_BLKIO);
- if (current->delays)
- __delayacct_blkio_start();
-}
-
-static inline void delayacct_blkio_end(void)
-{
- if (current->delays)
- __delayacct_blkio_end();
- delayacct_clear_flag(DELAYACCT_PF_BLKIO);
-}
-
-static inline int delayacct_add_tsk(struct taskstats *d,
- struct task_struct *tsk)
-{
- if (!delayacct_on || !tsk->delays)
- return 0;
- return __delayacct_add_tsk(d, tsk);
-}
-
-static inline __u64 delayacct_blkio_ticks(struct task_struct *tsk)
-{
- if (tsk->delays)
- return __delayacct_blkio_ticks(tsk);
- return 0;
-}
-
-static inline void delayacct_freepages_start(void)
-{
- if (current->delays)
- __delayacct_freepages_start();
-}
-
-static inline void delayacct_freepages_end(void)
-{
- if (current->delays)
- __delayacct_freepages_end();
-}
-
-#else
-static inline void delayacct_set_flag(int flag)
-{}
-static inline void delayacct_clear_flag(int flag)
-{}
-static inline void delayacct_init(void)
-{}
-static inline void delayacct_tsk_init(struct task_struct *tsk)
-{}
-static inline void delayacct_tsk_free(struct task_struct *tsk)
-{}
-static inline void delayacct_blkio_start(void)
-{}
-static inline void delayacct_blkio_end(void)
-{}
-static inline int delayacct_add_tsk(struct taskstats *d,
- struct task_struct *tsk)
-{ return 0; }
-static inline __u64 delayacct_blkio_ticks(struct task_struct *tsk)
-{ return 0; }
-static inline int delayacct_is_task_waiting_on_io(struct task_struct *p)
-{ return 0; }
-static inline void delayacct_freepages_start(void)
-{}
-static inline void delayacct_freepages_end(void)
-{}
-
-#endif /* CONFIG_TASK_DELAY_ACCT */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/devfreq.h b/ANDROID_3.4.5/include/linux/devfreq.h
deleted file mode 100644
index 281c72a3..00000000
--- a/ANDROID_3.4.5/include/linux/devfreq.h
+++ /dev/null
@@ -1,253 +0,0 @@
-/*
- * devfreq: Generic Dynamic Voltage and Frequency Scaling (DVFS) Framework
- * for Non-CPU Devices.
- *
- * Copyright (C) 2011 Samsung Electronics
- * MyungJoo Ham <myungjoo.ham@samsung.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.
- */
-
-#ifndef __LINUX_DEVFREQ_H__
-#define __LINUX_DEVFREQ_H__
-
-#include <linux/device.h>
-#include <linux/notifier.h>
-#include <linux/opp.h>
-
-#define DEVFREQ_NAME_LEN 16
-
-struct devfreq;
-
-/**
- * struct devfreq_dev_status - Data given from devfreq user device to
- * governors. Represents the performance
- * statistics.
- * @total_time The total time represented by this instance of
- * devfreq_dev_status
- * @busy_time The time that the device was working among the
- * total_time.
- * @current_frequency The operating frequency.
- * @private_data An entry not specified by the devfreq framework.
- * A device and a specific governor may have their
- * own protocol with private_data. However, because
- * this is governor-specific, a governor using this
- * will be only compatible with devices aware of it.
- */
-struct devfreq_dev_status {
- /* both since the last measure */
- unsigned long total_time;
- unsigned long busy_time;
- unsigned long current_frequency;
- void *private_data;
-};
-
-/*
- * The resulting frequency should be at most this. (this bound is the
- * least upper bound; thus, the resulting freq should be lower or same)
- * If the flag is not set, the resulting frequency should be at most the
- * bound (greatest lower bound)
- */
-#define DEVFREQ_FLAG_LEAST_UPPER_BOUND 0x1
-
-/**
- * struct devfreq_dev_profile - Devfreq's user device profile
- * @initial_freq The operating frequency when devfreq_add_device() is
- * called.
- * @polling_ms The polling interval in ms. 0 disables polling.
- * @target The device should set its operating frequency at
- * freq or lowest-upper-than-freq value. If freq is
- * higher than any operable frequency, set maximum.
- * Before returning, target function should set
- * freq at the current frequency.
- * The "flags" parameter's possible values are
- * explained above with "DEVFREQ_FLAG_*" macros.
- * @get_dev_status The device should provide the current performance
- * status to devfreq, which is used by governors.
- * @exit An optional callback that is called when devfreq
- * is removing the devfreq object due to error or
- * from devfreq_remove_device() call. If the user
- * has registered devfreq->nb at a notifier-head,
- * this is the time to unregister it.
- */
-struct devfreq_dev_profile {
- unsigned long initial_freq;
- unsigned int polling_ms;
-
- int (*target)(struct device *dev, unsigned long *freq, u32 flags);
- int (*get_dev_status)(struct device *dev,
- struct devfreq_dev_status *stat);
- void (*exit)(struct device *dev);
-};
-
-/**
- * struct devfreq_governor - Devfreq policy governor
- * @name Governor's name
- * @get_target_freq Returns desired operating frequency for the device.
- * Basically, get_target_freq will run
- * devfreq_dev_profile.get_dev_status() to get the
- * status of the device (load = busy_time / total_time).
- * If no_central_polling is set, this callback is called
- * only with update_devfreq() notified by OPP.
- * @init Called when the devfreq is being attached to a device
- * @exit Called when the devfreq is being removed from a
- * device. Governor should stop any internal routines
- * before return because related data may be
- * freed after exit().
- * @no_central_polling Do not use devfreq's central polling mechanism.
- * When this is set, devfreq will not call
- * get_target_freq with devfreq_monitor(). However,
- * devfreq will call get_target_freq with
- * devfreq_update() notified by OPP framework.
- *
- * Note that the callbacks are called with devfreq->lock locked by devfreq.
- */
-struct devfreq_governor {
- const char name[DEVFREQ_NAME_LEN];
- int (*get_target_freq)(struct devfreq *this, unsigned long *freq);
- int (*init)(struct devfreq *this);
- void (*exit)(struct devfreq *this);
- const bool no_central_polling;
-};
-
-/**
- * struct devfreq - Device devfreq structure
- * @node list node - contains the devices with devfreq that have been
- * registered.
- * @lock a mutex to protect accessing devfreq.
- * @dev device registered by devfreq class. dev.parent is the device
- * using devfreq.
- * @profile device-specific devfreq profile
- * @governor method how to choose frequency based on the usage.
- * @nb notifier block used to notify devfreq object that it should
- * reevaluate operable frequencies. Devfreq users may use
- * devfreq.nb to the corresponding register notifier call chain.
- * @polling_jiffies interval in jiffies.
- * @previous_freq previously configured frequency value.
- * @next_polling the number of remaining jiffies to poll with
- * "devfreq_monitor" executions to reevaluate
- * frequency/voltage of the device. Set by
- * profile's polling_ms interval.
- * @data Private data of the governor. The devfreq framework does not
- * touch this.
- * @being_removed a flag to mark that this object is being removed in
- * order to prevent trying to remove the object multiple times.
- * @min_freq Limit minimum frequency requested by user (0: none)
- * @max_freq Limit maximum frequency requested by user (0: none)
- *
- * This structure stores the devfreq information for a give device.
- *
- * Note that when a governor accesses entries in struct devfreq in its
- * functions except for the context of callbacks defined in struct
- * devfreq_governor, the governor should protect its access with the
- * struct mutex lock in struct devfreq. A governor may use this mutex
- * to protect its own private data in void *data as well.
- */
-struct devfreq {
- struct list_head node;
-
- struct mutex lock;
- struct device dev;
- struct devfreq_dev_profile *profile;
- const struct devfreq_governor *governor;
- struct notifier_block nb;
-
- unsigned long polling_jiffies;
- unsigned long previous_freq;
- unsigned int next_polling;
-
- void *data; /* private data for governors */
-
- bool being_removed;
-
- unsigned long min_freq;
- unsigned long max_freq;
-};
-
-#if defined(CONFIG_PM_DEVFREQ)
-extern struct devfreq *devfreq_add_device(struct device *dev,
- struct devfreq_dev_profile *profile,
- const struct devfreq_governor *governor,
- void *data);
-extern int devfreq_remove_device(struct devfreq *devfreq);
-
-/* Helper functions for devfreq user device driver with OPP. */
-extern struct opp *devfreq_recommended_opp(struct device *dev,
- unsigned long *freq, u32 flags);
-extern int devfreq_register_opp_notifier(struct device *dev,
- struct devfreq *devfreq);
-extern int devfreq_unregister_opp_notifier(struct device *dev,
- struct devfreq *devfreq);
-
-#ifdef CONFIG_DEVFREQ_GOV_POWERSAVE
-extern const struct devfreq_governor devfreq_powersave;
-#endif
-#ifdef CONFIG_DEVFREQ_GOV_PERFORMANCE
-extern const struct devfreq_governor devfreq_performance;
-#endif
-#ifdef CONFIG_DEVFREQ_GOV_USERSPACE
-extern const struct devfreq_governor devfreq_userspace;
-#endif
-#ifdef CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND
-extern const struct devfreq_governor devfreq_simple_ondemand;
-/**
- * struct devfreq_simple_ondemand_data - void *data fed to struct devfreq
- * and devfreq_add_device
- * @ upthreshold If the load is over this value, the frequency jumps.
- * Specify 0 to use the default. Valid value = 0 to 100.
- * @ downdifferential If the load is under upthreshold - downdifferential,
- * the governor may consider slowing the frequency down.
- * Specify 0 to use the default. Valid value = 0 to 100.
- * downdifferential < upthreshold must hold.
- *
- * If the fed devfreq_simple_ondemand_data pointer is NULL to the governor,
- * the governor uses the default values.
- */
-struct devfreq_simple_ondemand_data {
- unsigned int upthreshold;
- unsigned int downdifferential;
-};
-#endif
-
-#else /* !CONFIG_PM_DEVFREQ */
-static struct devfreq *devfreq_add_device(struct device *dev,
- struct devfreq_dev_profile *profile,
- struct devfreq_governor *governor,
- void *data)
-{
- return NULL;
-}
-
-static int devfreq_remove_device(struct devfreq *devfreq)
-{
- return 0;
-}
-
-static struct opp *devfreq_recommended_opp(struct device *dev,
- unsigned long *freq, u32 flags)
-{
- return -EINVAL;
-}
-
-static int devfreq_register_opp_notifier(struct device *dev,
- struct devfreq *devfreq)
-{
- return -EINVAL;
-}
-
-static int devfreq_unregister_opp_notifier(struct device *dev,
- struct devfreq *devfreq)
-{
- return -EINVAL;
-}
-
-#define devfreq_powersave NULL
-#define devfreq_performance NULL
-#define devfreq_userspace NULL
-#define devfreq_simple_ondemand NULL
-
-#endif /* CONFIG_PM_DEVFREQ */
-
-#endif /* __LINUX_DEVFREQ_H__ */
diff --git a/ANDROID_3.4.5/include/linux/device-mapper.h b/ANDROID_3.4.5/include/linux/device-mapper.h
deleted file mode 100644
index 98f34b88..00000000
--- a/ANDROID_3.4.5/include/linux/device-mapper.h
+++ /dev/null
@@ -1,514 +0,0 @@
-/*
- * Copyright (C) 2001 Sistina Software (UK) Limited.
- * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved.
- *
- * This file is released under the LGPL.
- */
-
-#ifndef _LINUX_DEVICE_MAPPER_H
-#define _LINUX_DEVICE_MAPPER_H
-
-#include <linux/bio.h>
-#include <linux/blkdev.h>
-#include <linux/ratelimit.h>
-
-struct dm_dev;
-struct dm_target;
-struct dm_table;
-struct mapped_device;
-struct bio_vec;
-
-typedef enum { STATUSTYPE_INFO, STATUSTYPE_TABLE } status_type_t;
-
-union map_info {
- void *ptr;
- unsigned long long ll;
- unsigned target_request_nr;
-};
-
-/*
- * In the constructor the target parameter will already have the
- * table, type, begin and len fields filled in.
- */
-typedef int (*dm_ctr_fn) (struct dm_target *target,
- unsigned int argc, char **argv);
-
-/*
- * The destructor doesn't need to free the dm_target, just
- * anything hidden ti->private.
- */
-typedef void (*dm_dtr_fn) (struct dm_target *ti);
-
-/*
- * The map function must return:
- * < 0: error
- * = 0: The target will handle the io by resubmitting it later
- * = 1: simple remap complete
- * = 2: The target wants to push back the io
- */
-typedef int (*dm_map_fn) (struct dm_target *ti, struct bio *bio,
- union map_info *map_context);
-typedef int (*dm_map_request_fn) (struct dm_target *ti, struct request *clone,
- union map_info *map_context);
-
-/*
- * Returns:
- * < 0 : error (currently ignored)
- * 0 : ended successfully
- * 1 : for some reason the io has still not completed (eg,
- * multipath target might want to requeue a failed io).
- * 2 : The target wants to push back the io
- */
-typedef int (*dm_endio_fn) (struct dm_target *ti,
- struct bio *bio, int error,
- union map_info *map_context);
-typedef int (*dm_request_endio_fn) (struct dm_target *ti,
- struct request *clone, int error,
- union map_info *map_context);
-
-typedef void (*dm_flush_fn) (struct dm_target *ti);
-typedef void (*dm_presuspend_fn) (struct dm_target *ti);
-typedef void (*dm_postsuspend_fn) (struct dm_target *ti);
-typedef int (*dm_preresume_fn) (struct dm_target *ti);
-typedef void (*dm_resume_fn) (struct dm_target *ti);
-
-typedef int (*dm_status_fn) (struct dm_target *ti, status_type_t status_type,
- char *result, unsigned int maxlen);
-
-typedef int (*dm_message_fn) (struct dm_target *ti, unsigned argc, char **argv);
-
-typedef int (*dm_ioctl_fn) (struct dm_target *ti, unsigned int cmd,
- unsigned long arg);
-
-typedef int (*dm_merge_fn) (struct dm_target *ti, struct bvec_merge_data *bvm,
- struct bio_vec *biovec, int max_size);
-
-typedef int (*iterate_devices_callout_fn) (struct dm_target *ti,
- struct dm_dev *dev,
- sector_t start, sector_t len,
- void *data);
-
-typedef int (*dm_iterate_devices_fn) (struct dm_target *ti,
- iterate_devices_callout_fn fn,
- void *data);
-
-typedef void (*dm_io_hints_fn) (struct dm_target *ti,
- struct queue_limits *limits);
-
-/*
- * Returns:
- * 0: The target can handle the next I/O immediately.
- * 1: The target can't handle the next I/O immediately.
- */
-typedef int (*dm_busy_fn) (struct dm_target *ti);
-
-void dm_error(const char *message);
-
-/*
- * Combine device limits.
- */
-int dm_set_device_limits(struct dm_target *ti, struct dm_dev *dev,
- sector_t start, sector_t len, void *data);
-
-struct dm_dev {
- struct block_device *bdev;
- fmode_t mode;
- char name[16];
-};
-
-/*
- * Constructors should call these functions to ensure destination devices
- * are opened/closed correctly.
- */
-int dm_get_device(struct dm_target *ti, const char *path, fmode_t mode,
- struct dm_dev **result);
-void dm_put_device(struct dm_target *ti, struct dm_dev *d);
-
-/*
- * Information about a target type
- */
-
-struct target_type {
- uint64_t features;
- const char *name;
- struct module *module;
- unsigned version[3];
- dm_ctr_fn ctr;
- dm_dtr_fn dtr;
- dm_map_fn map;
- dm_map_request_fn map_rq;
- dm_endio_fn end_io;
- dm_request_endio_fn rq_end_io;
- dm_flush_fn flush;
- dm_presuspend_fn presuspend;
- dm_postsuspend_fn postsuspend;
- dm_preresume_fn preresume;
- dm_resume_fn resume;
- dm_status_fn status;
- dm_message_fn message;
- dm_ioctl_fn ioctl;
- dm_merge_fn merge;
- dm_busy_fn busy;
- dm_iterate_devices_fn iterate_devices;
- dm_io_hints_fn io_hints;
-
- /* For internal device-mapper use. */
- struct list_head list;
-};
-
-/*
- * Target features
- */
-
-/*
- * Any table that contains an instance of this target must have only one.
- */
-#define DM_TARGET_SINGLETON 0x00000001
-#define dm_target_needs_singleton(type) ((type)->features & DM_TARGET_SINGLETON)
-
-/*
- * Indicates that a target does not support read-only devices.
- */
-#define DM_TARGET_ALWAYS_WRITEABLE 0x00000002
-#define dm_target_always_writeable(type) \
- ((type)->features & DM_TARGET_ALWAYS_WRITEABLE)
-
-/*
- * Any device that contains a table with an instance of this target may never
- * have tables containing any different target type.
- */
-#define DM_TARGET_IMMUTABLE 0x00000004
-#define dm_target_is_immutable(type) ((type)->features & DM_TARGET_IMMUTABLE)
-
-struct dm_target {
- struct dm_table *table;
- struct target_type *type;
-
- /* target limits */
- sector_t begin;
- sector_t len;
-
- /* Always a power of 2 */
- sector_t split_io;
-
- /*
- * A number of zero-length barrier requests that will be submitted
- * to the target for the purpose of flushing cache.
- *
- * The request number will be placed in union map_info->target_request_nr.
- * It is a responsibility of the target driver to remap these requests
- * to the real underlying devices.
- */
- unsigned num_flush_requests;
-
- /*
- * The number of discard requests that will be submitted to the
- * target. map_info->request_nr is used just like num_flush_requests.
- */
- unsigned num_discard_requests;
-
- /* target specific data */
- void *private;
-
- /* Used to provide an error string from the ctr */
- char *error;
-
- /*
- * Set if this target needs to receive discards regardless of
- * whether or not its underlying devices have support.
- */
- unsigned discards_supported:1;
-
- /*
- * Set if this target does not return zeroes on discarded blocks.
- */
- unsigned discard_zeroes_data_unsupported:1;
-};
-
-/* Each target can link one of these into the table */
-struct dm_target_callbacks {
- struct list_head list;
- int (*congested_fn) (struct dm_target_callbacks *, int);
-};
-
-int dm_register_target(struct target_type *t);
-void dm_unregister_target(struct target_type *t);
-
-/*
- * Target argument parsing.
- */
-struct dm_arg_set {
- unsigned argc;
- char **argv;
-};
-
-/*
- * The minimum and maximum value of a numeric argument, together with
- * the error message to use if the number is found to be outside that range.
- */
-struct dm_arg {
- unsigned min;
- unsigned max;
- char *error;
-};
-
-/*
- * Validate the next argument, either returning it as *value or, if invalid,
- * returning -EINVAL and setting *error.
- */
-int dm_read_arg(struct dm_arg *arg, struct dm_arg_set *arg_set,
- unsigned *value, char **error);
-
-/*
- * Process the next argument as the start of a group containing between
- * arg->min and arg->max further arguments. Either return the size as
- * *num_args or, if invalid, return -EINVAL and set *error.
- */
-int dm_read_arg_group(struct dm_arg *arg, struct dm_arg_set *arg_set,
- unsigned *num_args, char **error);
-
-/*
- * Return the current argument and shift to the next.
- */
-const char *dm_shift_arg(struct dm_arg_set *as);
-
-/*
- * Move through num_args arguments.
- */
-void dm_consume_args(struct dm_arg_set *as, unsigned num_args);
-
-/*-----------------------------------------------------------------
- * Functions for creating and manipulating mapped devices.
- * Drop the reference with dm_put when you finish with the object.
- *---------------------------------------------------------------*/
-
-/*
- * DM_ANY_MINOR chooses the next available minor number.
- */
-#define DM_ANY_MINOR (-1)
-int dm_create(int minor, struct mapped_device **md);
-
-/*
- * Reference counting for md.
- */
-struct mapped_device *dm_get_md(dev_t dev);
-void dm_get(struct mapped_device *md);
-void dm_put(struct mapped_device *md);
-
-/*
- * An arbitrary pointer may be stored alongside a mapped device.
- */
-void dm_set_mdptr(struct mapped_device *md, void *ptr);
-void *dm_get_mdptr(struct mapped_device *md);
-
-/*
- * A device can still be used while suspended, but I/O is deferred.
- */
-int dm_suspend(struct mapped_device *md, unsigned suspend_flags);
-int dm_resume(struct mapped_device *md);
-
-/*
- * Event functions.
- */
-uint32_t dm_get_event_nr(struct mapped_device *md);
-int dm_wait_event(struct mapped_device *md, int event_nr);
-uint32_t dm_next_uevent_seq(struct mapped_device *md);
-void dm_uevent_add(struct mapped_device *md, struct list_head *elist);
-
-/*
- * Info functions.
- */
-const char *dm_device_name(struct mapped_device *md);
-int dm_copy_name_and_uuid(struct mapped_device *md, char *name, char *uuid);
-struct gendisk *dm_disk(struct mapped_device *md);
-int dm_suspended(struct dm_target *ti);
-int dm_noflush_suspending(struct dm_target *ti);
-union map_info *dm_get_mapinfo(struct bio *bio);
-union map_info *dm_get_rq_mapinfo(struct request *rq);
-
-/*
- * Geometry functions.
- */
-int dm_get_geometry(struct mapped_device *md, struct hd_geometry *geo);
-int dm_set_geometry(struct mapped_device *md, struct hd_geometry *geo);
-
-
-/*-----------------------------------------------------------------
- * Functions for manipulating device-mapper tables.
- *---------------------------------------------------------------*/
-
-/*
- * First create an empty table.
- */
-int dm_table_create(struct dm_table **result, fmode_t mode,
- unsigned num_targets, struct mapped_device *md);
-
-/*
- * Then call this once for each target.
- */
-int dm_table_add_target(struct dm_table *t, const char *type,
- sector_t start, sector_t len, char *params);
-
-/*
- * Target_ctr should call this if it needs to add any callbacks.
- */
-void dm_table_add_target_callbacks(struct dm_table *t, struct dm_target_callbacks *cb);
-
-/*
- * Finally call this to make the table ready for use.
- */
-int dm_table_complete(struct dm_table *t);
-
-/*
- * Table reference counting.
- */
-struct dm_table *dm_get_live_table(struct mapped_device *md);
-void dm_table_get(struct dm_table *t);
-void dm_table_put(struct dm_table *t);
-
-/*
- * Queries
- */
-sector_t dm_table_get_size(struct dm_table *t);
-unsigned int dm_table_get_num_targets(struct dm_table *t);
-fmode_t dm_table_get_mode(struct dm_table *t);
-struct mapped_device *dm_table_get_md(struct dm_table *t);
-
-/*
- * Trigger an event.
- */
-void dm_table_event(struct dm_table *t);
-
-/*
- * The device must be suspended before calling this method.
- * Returns the previous table, which the caller must destroy.
- */
-struct dm_table *dm_swap_table(struct mapped_device *md,
- struct dm_table *t);
-
-/*
- * A wrapper around vmalloc.
- */
-void *dm_vcalloc(unsigned long nmemb, unsigned long elem_size);
-
-/*-----------------------------------------------------------------
- * Macros.
- *---------------------------------------------------------------*/
-#define DM_NAME "device-mapper"
-
-#ifdef CONFIG_PRINTK
-extern struct ratelimit_state dm_ratelimit_state;
-
-#define dm_ratelimit() __ratelimit(&dm_ratelimit_state)
-#else
-#define dm_ratelimit() 0
-#endif
-
-#define DMCRIT(f, arg...) \
- printk(KERN_CRIT DM_NAME ": " DM_MSG_PREFIX ": " f "\n", ## arg)
-
-#define DMERR(f, arg...) \
- printk(KERN_ERR DM_NAME ": " DM_MSG_PREFIX ": " f "\n", ## arg)
-#define DMERR_LIMIT(f, arg...) \
- do { \
- if (dm_ratelimit()) \
- printk(KERN_ERR DM_NAME ": " DM_MSG_PREFIX ": " \
- f "\n", ## arg); \
- } while (0)
-
-#define DMWARN(f, arg...) \
- printk(KERN_WARNING DM_NAME ": " DM_MSG_PREFIX ": " f "\n", ## arg)
-#define DMWARN_LIMIT(f, arg...) \
- do { \
- if (dm_ratelimit()) \
- printk(KERN_WARNING DM_NAME ": " DM_MSG_PREFIX ": " \
- f "\n", ## arg); \
- } while (0)
-
-#define DMINFO(f, arg...) \
- printk(KERN_INFO DM_NAME ": " DM_MSG_PREFIX ": " f "\n", ## arg)
-#define DMINFO_LIMIT(f, arg...) \
- do { \
- if (dm_ratelimit()) \
- printk(KERN_INFO DM_NAME ": " DM_MSG_PREFIX ": " f \
- "\n", ## arg); \
- } while (0)
-
-#ifdef CONFIG_DM_DEBUG
-# define DMDEBUG(f, arg...) \
- printk(KERN_DEBUG DM_NAME ": " DM_MSG_PREFIX " DEBUG: " f "\n", ## arg)
-# define DMDEBUG_LIMIT(f, arg...) \
- do { \
- if (dm_ratelimit()) \
- printk(KERN_DEBUG DM_NAME ": " DM_MSG_PREFIX ": " f \
- "\n", ## arg); \
- } while (0)
-#else
-# define DMDEBUG(f, arg...) do {} while (0)
-# define DMDEBUG_LIMIT(f, arg...) do {} while (0)
-#endif
-
-#define DMEMIT(x...) sz += ((sz >= maxlen) ? \
- 0 : scnprintf(result + sz, maxlen - sz, x))
-
-#define SECTOR_SHIFT 9
-
-/*
- * Definitions of return values from target end_io function.
- */
-#define DM_ENDIO_INCOMPLETE 1
-#define DM_ENDIO_REQUEUE 2
-
-/*
- * Definitions of return values from target map function.
- */
-#define DM_MAPIO_SUBMITTED 0
-#define DM_MAPIO_REMAPPED 1
-#define DM_MAPIO_REQUEUE DM_ENDIO_REQUEUE
-
-/*
- * Ceiling(n / sz)
- */
-#define dm_div_up(n, sz) (((n) + (sz) - 1) / (sz))
-
-#define dm_sector_div_up(n, sz) ( \
-{ \
- sector_t _r = ((n) + (sz) - 1); \
- sector_div(_r, (sz)); \
- _r; \
-} \
-)
-
-/*
- * ceiling(n / size) * size
- */
-#define dm_round_up(n, sz) (dm_div_up((n), (sz)) * (sz))
-
-#define dm_array_too_big(fixed, obj, num) \
- ((num) > (UINT_MAX - (fixed)) / (obj))
-
-/*
- * Sector offset taken relative to the start of the target instead of
- * relative to the start of the device.
- */
-#define dm_target_offset(ti, sector) ((sector) - (ti)->begin)
-
-static inline sector_t to_sector(unsigned long n)
-{
- return (n >> SECTOR_SHIFT);
-}
-
-static inline unsigned long to_bytes(sector_t n)
-{
- return (n << SECTOR_SHIFT);
-}
-
-/*-----------------------------------------------------------------
- * Helper for block layer and dm core operations
- *---------------------------------------------------------------*/
-void dm_dispatch_request(struct request *rq);
-void dm_requeue_unmapped_request(struct request *rq);
-void dm_kill_unmapped_request(struct request *rq, int error);
-int dm_underlying_device_busy(struct request_queue *q);
-
-#endif /* _LINUX_DEVICE_MAPPER_H */
diff --git a/ANDROID_3.4.5/include/linux/device.h b/ANDROID_3.4.5/include/linux/device.h
deleted file mode 100644
index 5ad17ccc..00000000
--- a/ANDROID_3.4.5/include/linux/device.h
+++ /dev/null
@@ -1,1021 +0,0 @@
-/*
- * device.h - generic, centralized driver model
- *
- * Copyright (c) 2001-2003 Patrick Mochel <mochel@osdl.org>
- * Copyright (c) 2004-2009 Greg Kroah-Hartman <gregkh@suse.de>
- * Copyright (c) 2008-2009 Novell Inc.
- *
- * This file is released under the GPLv2
- *
- * See Documentation/driver-model/ for more information.
- */
-
-#ifndef _DEVICE_H_
-#define _DEVICE_H_
-
-#include <linux/ioport.h>
-#include <linux/kobject.h>
-#include <linux/klist.h>
-#include <linux/list.h>
-#include <linux/lockdep.h>
-#include <linux/compiler.h>
-#include <linux/types.h>
-#include <linux/mutex.h>
-#include <linux/pm.h>
-#include <linux/atomic.h>
-#include <asm/device.h>
-
-struct device;
-struct device_private;
-struct device_driver;
-struct driver_private;
-struct module;
-struct class;
-struct subsys_private;
-struct bus_type;
-struct device_node;
-struct iommu_ops;
-
-struct bus_attribute {
- struct attribute attr;
- ssize_t (*show)(struct bus_type *bus, char *buf);
- ssize_t (*store)(struct bus_type *bus, const char *buf, size_t count);
-};
-
-#define BUS_ATTR(_name, _mode, _show, _store) \
-struct bus_attribute bus_attr_##_name = __ATTR(_name, _mode, _show, _store)
-
-extern int __must_check bus_create_file(struct bus_type *,
- struct bus_attribute *);
-extern void bus_remove_file(struct bus_type *, struct bus_attribute *);
-
-/**
- * struct bus_type - The bus type of the device
- *
- * @name: The name of the bus.
- * @dev_name: Used for subsystems to enumerate devices like ("foo%u", dev->id).
- * @dev_root: Default device to use as the parent.
- * @bus_attrs: Default attributes of the bus.
- * @dev_attrs: Default attributes of the devices on the bus.
- * @drv_attrs: Default attributes of the device drivers on the bus.
- * @match: Called, perhaps multiple times, whenever a new device or driver
- * is added for this bus. It should return a nonzero value if the
- * given device can be handled by the given driver.
- * @uevent: Called when a device is added, removed, or a few other things
- * that generate uevents to add the environment variables.
- * @probe: Called when a new device or driver add to this bus, and callback
- * the specific driver's probe to initial the matched device.
- * @remove: Called when a device removed from this bus.
- * @shutdown: Called at shut-down time to quiesce the device.
- * @suspend: Called when a device on this bus wants to go to sleep mode.
- * @resume: Called to bring a device on this bus out of sleep mode.
- * @pm: Power management operations of this bus, callback the specific
- * device driver's pm-ops.
- * @iommu_ops: IOMMU specific operations for this bus, used to attach IOMMU
- * driver implementations to a bus and allow the driver to do
- * bus-specific setup
- * @p: The private data of the driver core, only the driver core can
- * touch this.
- *
- * A bus is a channel between the processor and one or more devices. For the
- * purposes of the device model, all devices are connected via a bus, even if
- * it is an internal, virtual, "platform" bus. Buses can plug into each other.
- * A USB controller is usually a PCI device, for example. The device model
- * represents the actual connections between buses and the devices they control.
- * A bus is represented by the bus_type structure. It contains the name, the
- * default attributes, the bus' methods, PM operations, and the driver core's
- * private data.
- */
-struct bus_type {
- const char *name;
- const char *dev_name;
- struct device *dev_root;
- struct bus_attribute *bus_attrs;
- struct device_attribute *dev_attrs;
- struct driver_attribute *drv_attrs;
-
- int (*match)(struct device *dev, struct device_driver *drv);
- int (*uevent)(struct device *dev, struct kobj_uevent_env *env);
- int (*probe)(struct device *dev);
- int (*remove)(struct device *dev);
- void (*shutdown)(struct device *dev);
-
- int (*suspend)(struct device *dev, pm_message_t state);
- int (*resume)(struct device *dev);
-
- const struct dev_pm_ops *pm;
-
- struct iommu_ops *iommu_ops;
-
- struct subsys_private *p;
-};
-
-/* This is a #define to keep the compiler from merging different
- * instances of the __key variable */
-#define bus_register(subsys) \
-({ \
- static struct lock_class_key __key; \
- __bus_register(subsys, &__key); \
-})
-extern int __must_check __bus_register(struct bus_type *bus,
- struct lock_class_key *key);
-extern void bus_unregister(struct bus_type *bus);
-
-extern int __must_check bus_rescan_devices(struct bus_type *bus);
-
-/* iterator helpers for buses */
-struct subsys_dev_iter {
- struct klist_iter ki;
- const struct device_type *type;
-};
-void subsys_dev_iter_init(struct subsys_dev_iter *iter,
- struct bus_type *subsys,
- struct device *start,
- const struct device_type *type);
-struct device *subsys_dev_iter_next(struct subsys_dev_iter *iter);
-void subsys_dev_iter_exit(struct subsys_dev_iter *iter);
-
-int bus_for_each_dev(struct bus_type *bus, struct device *start, void *data,
- int (*fn)(struct device *dev, void *data));
-struct device *bus_find_device(struct bus_type *bus, struct device *start,
- void *data,
- int (*match)(struct device *dev, void *data));
-struct device *bus_find_device_by_name(struct bus_type *bus,
- struct device *start,
- const char *name);
-struct device *subsys_find_device_by_id(struct bus_type *bus, unsigned int id,
- struct device *hint);
-int bus_for_each_drv(struct bus_type *bus, struct device_driver *start,
- void *data, int (*fn)(struct device_driver *, void *));
-void bus_sort_breadthfirst(struct bus_type *bus,
- int (*compare)(const struct device *a,
- const struct device *b));
-/*
- * Bus notifiers: Get notified of addition/removal of devices
- * and binding/unbinding of drivers to devices.
- * In the long run, it should be a replacement for the platform
- * notify hooks.
- */
-struct notifier_block;
-
-extern int bus_register_notifier(struct bus_type *bus,
- struct notifier_block *nb);
-extern int bus_unregister_notifier(struct bus_type *bus,
- struct notifier_block *nb);
-
-/* All 4 notifers below get called with the target struct device *
- * as an argument. Note that those functions are likely to be called
- * with the device lock held in the core, so be careful.
- */
-#define BUS_NOTIFY_ADD_DEVICE 0x00000001 /* device added */
-#define BUS_NOTIFY_DEL_DEVICE 0x00000002 /* device removed */
-#define BUS_NOTIFY_BIND_DRIVER 0x00000003 /* driver about to be
- bound */
-#define BUS_NOTIFY_BOUND_DRIVER 0x00000004 /* driver bound to device */
-#define BUS_NOTIFY_UNBIND_DRIVER 0x00000005 /* driver about to be
- unbound */
-#define BUS_NOTIFY_UNBOUND_DRIVER 0x00000006 /* driver is unbound
- from the device */
-
-extern struct kset *bus_get_kset(struct bus_type *bus);
-extern struct klist *bus_get_device_klist(struct bus_type *bus);
-
-/**
- * struct device_driver - The basic device driver structure
- * @name: Name of the device driver.
- * @bus: The bus which the device of this driver belongs to.
- * @owner: The module owner.
- * @mod_name: Used for built-in modules.
- * @suppress_bind_attrs: Disables bind/unbind via sysfs.
- * @of_match_table: The open firmware table.
- * @probe: Called to query the existence of a specific device,
- * whether this driver can work with it, and bind the driver
- * to a specific device.
- * @remove: Called when the device is removed from the system to
- * unbind a device from this driver.
- * @shutdown: Called at shut-down time to quiesce the device.
- * @suspend: Called to put the device to sleep mode. Usually to a
- * low power state.
- * @resume: Called to bring a device from sleep mode.
- * @groups: Default attributes that get created by the driver core
- * automatically.
- * @pm: Power management operations of the device which matched
- * this driver.
- * @p: Driver core's private data, no one other than the driver
- * core can touch this.
- *
- * The device driver-model tracks all of the drivers known to the system.
- * The main reason for this tracking is to enable the driver core to match
- * up drivers with new devices. Once drivers are known objects within the
- * system, however, a number of other things become possible. Device drivers
- * can export information and configuration variables that are independent
- * of any specific device.
- */
-struct device_driver {
- const char *name;
- struct bus_type *bus;
-
- struct module *owner;
- const char *mod_name; /* used for built-in modules */
-
- bool suppress_bind_attrs; /* disables bind/unbind via sysfs */
-
- const struct of_device_id *of_match_table;
-
- int (*probe) (struct device *dev);
- int (*remove) (struct device *dev);
- void (*shutdown) (struct device *dev);
- int (*suspend) (struct device *dev, pm_message_t state);
- int (*resume) (struct device *dev);
- const struct attribute_group **groups;
-
- const struct dev_pm_ops *pm;
-
- struct driver_private *p;
-};
-
-
-extern int __must_check driver_register(struct device_driver *drv);
-extern void driver_unregister(struct device_driver *drv);
-
-extern struct device_driver *driver_find(const char *name,
- struct bus_type *bus);
-extern int driver_probe_done(void);
-extern void wait_for_device_probe(void);
-
-
-/* sysfs interface for exporting driver attributes */
-
-struct driver_attribute {
- struct attribute attr;
- ssize_t (*show)(struct device_driver *driver, char *buf);
- ssize_t (*store)(struct device_driver *driver, const char *buf,
- size_t count);
-};
-
-#define DRIVER_ATTR(_name, _mode, _show, _store) \
-struct driver_attribute driver_attr_##_name = \
- __ATTR(_name, _mode, _show, _store)
-
-extern int __must_check driver_create_file(struct device_driver *driver,
- const struct driver_attribute *attr);
-extern void driver_remove_file(struct device_driver *driver,
- const struct driver_attribute *attr);
-
-extern int __must_check driver_for_each_device(struct device_driver *drv,
- struct device *start,
- void *data,
- int (*fn)(struct device *dev,
- void *));
-struct device *driver_find_device(struct device_driver *drv,
- struct device *start, void *data,
- int (*match)(struct device *dev, void *data));
-
-/**
- * struct subsys_interface - interfaces to device functions
- * @name: name of the device function
- * @subsys: subsytem of the devices to attach to
- * @node: the list of functions registered at the subsystem
- * @add_dev: device hookup to device function handler
- * @remove_dev: device hookup to device function handler
- *
- * Simple interfaces attached to a subsystem. Multiple interfaces can
- * attach to a subsystem and its devices. Unlike drivers, they do not
- * exclusively claim or control devices. Interfaces usually represent
- * a specific functionality of a subsystem/class of devices.
- */
-struct subsys_interface {
- const char *name;
- struct bus_type *subsys;
- struct list_head node;
- int (*add_dev)(struct device *dev, struct subsys_interface *sif);
- int (*remove_dev)(struct device *dev, struct subsys_interface *sif);
-};
-
-int subsys_interface_register(struct subsys_interface *sif);
-void subsys_interface_unregister(struct subsys_interface *sif);
-
-int subsys_system_register(struct bus_type *subsys,
- const struct attribute_group **groups);
-
-/**
- * struct class - device classes
- * @name: Name of the class.
- * @owner: The module owner.
- * @class_attrs: Default attributes of this class.
- * @dev_attrs: Default attributes of the devices belong to the class.
- * @dev_bin_attrs: Default binary attributes of the devices belong to the class.
- * @dev_kobj: The kobject that represents this class and links it into the hierarchy.
- * @dev_uevent: Called when a device is added, removed from this class, or a
- * few other things that generate uevents to add the environment
- * variables.
- * @devnode: Callback to provide the devtmpfs.
- * @class_release: Called to release this class.
- * @dev_release: Called to release the device.
- * @suspend: Used to put the device to sleep mode, usually to a low power
- * state.
- * @resume: Used to bring the device from the sleep mode.
- * @ns_type: Callbacks so sysfs can detemine namespaces.
- * @namespace: Namespace of the device belongs to this class.
- * @pm: The default device power management operations of this class.
- * @p: The private data of the driver core, no one other than the
- * driver core can touch this.
- *
- * A class is a higher-level view of a device that abstracts out low-level
- * implementation details. Drivers may see a SCSI disk or an ATA disk, but,
- * at the class level, they are all simply disks. Classes allow user space
- * to work with devices based on what they do, rather than how they are
- * connected or how they work.
- */
-struct class {
- const char *name;
- struct module *owner;
-
- struct class_attribute *class_attrs;
- struct device_attribute *dev_attrs;
- struct bin_attribute *dev_bin_attrs;
- struct kobject *dev_kobj;
-
- int (*dev_uevent)(struct device *dev, struct kobj_uevent_env *env);
- char *(*devnode)(struct device *dev, umode_t *mode);
-
- void (*class_release)(struct class *class);
- void (*dev_release)(struct device *dev);
-
- int (*suspend)(struct device *dev, pm_message_t state);
- int (*resume)(struct device *dev);
-
- const struct kobj_ns_type_operations *ns_type;
- const void *(*namespace)(struct device *dev);
-
- const struct dev_pm_ops *pm;
-
- struct subsys_private *p;
-};
-
-struct class_dev_iter {
- struct klist_iter ki;
- const struct device_type *type;
-};
-
-extern struct kobject *sysfs_dev_block_kobj;
-extern struct kobject *sysfs_dev_char_kobj;
-extern int __must_check __class_register(struct class *class,
- struct lock_class_key *key);
-extern void class_unregister(struct class *class);
-
-/* This is a #define to keep the compiler from merging different
- * instances of the __key variable */
-#define class_register(class) \
-({ \
- static struct lock_class_key __key; \
- __class_register(class, &__key); \
-})
-
-struct class_compat;
-struct class_compat *class_compat_register(const char *name);
-void class_compat_unregister(struct class_compat *cls);
-int class_compat_create_link(struct class_compat *cls, struct device *dev,
- struct device *device_link);
-void class_compat_remove_link(struct class_compat *cls, struct device *dev,
- struct device *device_link);
-
-extern void class_dev_iter_init(struct class_dev_iter *iter,
- struct class *class,
- struct device *start,
- const struct device_type *type);
-extern struct device *class_dev_iter_next(struct class_dev_iter *iter);
-extern void class_dev_iter_exit(struct class_dev_iter *iter);
-
-extern int class_for_each_device(struct class *class, struct device *start,
- void *data,
- int (*fn)(struct device *dev, void *data));
-extern struct device *class_find_device(struct class *class,
- struct device *start, void *data,
- int (*match)(struct device *, void *));
-
-struct class_attribute {
- struct attribute attr;
- ssize_t (*show)(struct class *class, struct class_attribute *attr,
- char *buf);
- ssize_t (*store)(struct class *class, struct class_attribute *attr,
- const char *buf, size_t count);
- const void *(*namespace)(struct class *class,
- const struct class_attribute *attr);
-};
-
-#define CLASS_ATTR(_name, _mode, _show, _store) \
-struct class_attribute class_attr_##_name = __ATTR(_name, _mode, _show, _store)
-
-extern int __must_check class_create_file(struct class *class,
- const struct class_attribute *attr);
-extern void class_remove_file(struct class *class,
- const struct class_attribute *attr);
-
-/* Simple class attribute that is just a static string */
-
-struct class_attribute_string {
- struct class_attribute attr;
- char *str;
-};
-
-/* Currently read-only only */
-#define _CLASS_ATTR_STRING(_name, _mode, _str) \
- { __ATTR(_name, _mode, show_class_attr_string, NULL), _str }
-#define CLASS_ATTR_STRING(_name, _mode, _str) \
- struct class_attribute_string class_attr_##_name = \
- _CLASS_ATTR_STRING(_name, _mode, _str)
-
-extern ssize_t show_class_attr_string(struct class *class, struct class_attribute *attr,
- char *buf);
-
-struct class_interface {
- struct list_head node;
- struct class *class;
-
- int (*add_dev) (struct device *, struct class_interface *);
- void (*remove_dev) (struct device *, struct class_interface *);
-};
-
-extern int __must_check class_interface_register(struct class_interface *);
-extern void class_interface_unregister(struct class_interface *);
-
-extern struct class * __must_check __class_create(struct module *owner,
- const char *name,
- struct lock_class_key *key);
-extern void class_destroy(struct class *cls);
-
-/* This is a #define to keep the compiler from merging different
- * instances of the __key variable */
-#define class_create(owner, name) \
-({ \
- static struct lock_class_key __key; \
- __class_create(owner, name, &__key); \
-})
-
-/*
- * The type of device, "struct device" is embedded in. A class
- * or bus can contain devices of different types
- * like "partitions" and "disks", "mouse" and "event".
- * This identifies the device type and carries type-specific
- * information, equivalent to the kobj_type of a kobject.
- * If "name" is specified, the uevent will contain it in
- * the DEVTYPE variable.
- */
-struct device_type {
- const char *name;
- const struct attribute_group **groups;
- int (*uevent)(struct device *dev, struct kobj_uevent_env *env);
- char *(*devnode)(struct device *dev, umode_t *mode);
- void (*release)(struct device *dev);
-
- const struct dev_pm_ops *pm;
-};
-
-/* interface for exporting device attributes */
-struct device_attribute {
- struct attribute attr;
- ssize_t (*show)(struct device *dev, struct device_attribute *attr,
- char *buf);
- ssize_t (*store)(struct device *dev, struct device_attribute *attr,
- const char *buf, size_t count);
-};
-
-struct dev_ext_attribute {
- struct device_attribute attr;
- void *var;
-};
-
-ssize_t device_show_ulong(struct device *dev, struct device_attribute *attr,
- char *buf);
-ssize_t device_store_ulong(struct device *dev, struct device_attribute *attr,
- const char *buf, size_t count);
-ssize_t device_show_int(struct device *dev, struct device_attribute *attr,
- char *buf);
-ssize_t device_store_int(struct device *dev, struct device_attribute *attr,
- const char *buf, size_t count);
-
-#define DEVICE_ATTR(_name, _mode, _show, _store) \
- struct device_attribute dev_attr_##_name = __ATTR(_name, _mode, _show, _store)
-#define DEVICE_ULONG_ATTR(_name, _mode, _var) \
- struct dev_ext_attribute dev_attr_##_name = \
- { __ATTR(_name, _mode, device_show_ulong, device_store_ulong), &(_var) }
-#define DEVICE_INT_ATTR(_name, _mode, _var) \
- struct dev_ext_attribute dev_attr_##_name = \
- { __ATTR(_name, _mode, device_show_ulong, device_store_ulong), &(_var) }
-
-extern int device_create_file(struct device *device,
- const struct device_attribute *entry);
-extern void device_remove_file(struct device *dev,
- const struct device_attribute *attr);
-extern int __must_check device_create_bin_file(struct device *dev,
- const struct bin_attribute *attr);
-extern void device_remove_bin_file(struct device *dev,
- const struct bin_attribute *attr);
-extern int device_schedule_callback_owner(struct device *dev,
- void (*func)(struct device *dev), struct module *owner);
-
-/* This is a macro to avoid include problems with THIS_MODULE */
-#define device_schedule_callback(dev, func) \
- device_schedule_callback_owner(dev, func, THIS_MODULE)
-
-/* device resource management */
-typedef void (*dr_release_t)(struct device *dev, void *res);
-typedef int (*dr_match_t)(struct device *dev, void *res, void *match_data);
-
-#ifdef CONFIG_DEBUG_DEVRES
-extern void *__devres_alloc(dr_release_t release, size_t size, gfp_t gfp,
- const char *name);
-#define devres_alloc(release, size, gfp) \
- __devres_alloc(release, size, gfp, #release)
-#else
-extern void *devres_alloc(dr_release_t release, size_t size, gfp_t gfp);
-#endif
-extern void devres_free(void *res);
-extern void devres_add(struct device *dev, void *res);
-extern void *devres_find(struct device *dev, dr_release_t release,
- dr_match_t match, void *match_data);
-extern void *devres_get(struct device *dev, void *new_res,
- dr_match_t match, void *match_data);
-extern void *devres_remove(struct device *dev, dr_release_t release,
- dr_match_t match, void *match_data);
-extern int devres_destroy(struct device *dev, dr_release_t release,
- dr_match_t match, void *match_data);
-
-/* devres group */
-extern void * __must_check devres_open_group(struct device *dev, void *id,
- gfp_t gfp);
-extern void devres_close_group(struct device *dev, void *id);
-extern void devres_remove_group(struct device *dev, void *id);
-extern int devres_release_group(struct device *dev, void *id);
-
-/* managed kzalloc/kfree for device drivers, no kmalloc, always use kzalloc */
-extern void *devm_kzalloc(struct device *dev, size_t size, gfp_t gfp);
-extern void devm_kfree(struct device *dev, void *p);
-
-void __iomem *devm_request_and_ioremap(struct device *dev,
- struct resource *res);
-
-struct device_dma_parameters {
- /*
- * a low level driver may set these to teach IOMMU code about
- * sg limitations.
- */
- unsigned int max_segment_size;
- unsigned long segment_boundary_mask;
-};
-
-/**
- * struct device - The basic device structure
- * @parent: The device's "parent" device, the device to which it is attached.
- * In most cases, a parent device is some sort of bus or host
- * controller. If parent is NULL, the device, is a top-level device,
- * which is not usually what you want.
- * @p: Holds the private data of the driver core portions of the device.
- * See the comment of the struct device_private for detail.
- * @kobj: A top-level, abstract class from which other classes are derived.
- * @init_name: Initial name of the device.
- * @type: The type of device.
- * This identifies the device type and carries type-specific
- * information.
- * @mutex: Mutex to synchronize calls to its driver.
- * @bus: Type of bus device is on.
- * @driver: Which driver has allocated this
- * @platform_data: Platform data specific to the device.
- * Example: For devices on custom boards, as typical of embedded
- * and SOC based hardware, Linux often uses platform_data to point
- * to board-specific structures describing devices and how they
- * are wired. That can include what ports are available, chip
- * variants, which GPIO pins act in what additional roles, and so
- * on. This shrinks the "Board Support Packages" (BSPs) and
- * minimizes board-specific #ifdefs in drivers.
- * @power: For device power management.
- * See Documentation/power/devices.txt for details.
- * @pm_domain: Provide callbacks that are executed during system suspend,
- * hibernation, system resume and during runtime PM transitions
- * along with subsystem-level and driver-level callbacks.
- * @numa_node: NUMA node this device is close to.
- * @dma_mask: Dma mask (if dma'ble device).
- * @coherent_dma_mask: Like dma_mask, but for alloc_coherent mapping as not all
- * hardware supports 64-bit addresses for consistent allocations
- * such descriptors.
- * @dma_parms: A low level driver may set these to teach IOMMU code about
- * segment limitations.
- * @dma_pools: Dma pools (if dma'ble device).
- * @dma_mem: Internal for coherent mem override.
- * @archdata: For arch-specific additions.
- * @of_node: Associated device tree node.
- * @devt: For creating the sysfs "dev".
- * @id: device instance
- * @devres_lock: Spinlock to protect the resource of the device.
- * @devres_head: The resources list of the device.
- * @knode_class: The node used to add the device to the class list.
- * @class: The class of the device.
- * @groups: Optional attribute groups.
- * @release: Callback to free the device after all references have
- * gone away. This should be set by the allocator of the
- * device (i.e. the bus driver that discovered the device).
- *
- * At the lowest level, every device in a Linux system is represented by an
- * instance of struct device. The device structure contains the information
- * that the device model core needs to model the system. Most subsystems,
- * however, track additional information about the devices they host. As a
- * result, it is rare for devices to be represented by bare device structures;
- * instead, that structure, like kobject structures, is usually embedded within
- * a higher-level representation of the device.
- */
-struct device {
- struct device *parent;
-
- struct device_private *p;
-
- struct kobject kobj;
- const char *init_name; /* initial name of the device */
- const struct device_type *type;
-
- struct mutex mutex; /* mutex to synchronize calls to
- * its driver.
- */
-
- struct bus_type *bus; /* type of bus device is on */
- struct device_driver *driver; /* which driver has allocated this
- device */
- void *platform_data; /* Platform specific data, device
- core doesn't touch it */
- struct dev_pm_info power;
- struct dev_pm_domain *pm_domain;
-
-#ifdef CONFIG_NUMA
- int numa_node; /* NUMA node this device is close to */
-#endif
- u64 *dma_mask; /* dma mask (if dma'able device) */
- u64 coherent_dma_mask;/* Like dma_mask, but for
- alloc_coherent mappings as
- not all hardware supports
- 64 bit addresses for consistent
- allocations such descriptors. */
-
- struct device_dma_parameters *dma_parms;
-
- struct list_head dma_pools; /* dma pools (if dma'ble) */
-
- struct dma_coherent_mem *dma_mem; /* internal for coherent mem
- override */
- /* arch specific additions */
- struct dev_archdata archdata;
-
- struct device_node *of_node; /* associated device tree node */
-
- dev_t devt; /* dev_t, creates the sysfs "dev" */
- u32 id; /* device instance */
-
- spinlock_t devres_lock;
- struct list_head devres_head;
-
- struct klist_node knode_class;
- struct class *class;
- const struct attribute_group **groups; /* optional groups */
-
- void (*release)(struct device *dev);
-};
-
-/* Get the wakeup routines, which depend on struct device */
-#include <linux/pm_wakeup.h>
-
-static inline const char *dev_name(const struct device *dev)
-{
- /* Use the init name until the kobject becomes available */
- if (dev->init_name)
- return dev->init_name;
-
- return kobject_name(&dev->kobj);
-}
-
-extern __printf(2, 3)
-int dev_set_name(struct device *dev, const char *name, ...);
-
-#ifdef CONFIG_NUMA
-static inline int dev_to_node(struct device *dev)
-{
- return dev->numa_node;
-}
-static inline void set_dev_node(struct device *dev, int node)
-{
- dev->numa_node = node;
-}
-#else
-static inline int dev_to_node(struct device *dev)
-{
- return -1;
-}
-static inline void set_dev_node(struct device *dev, int node)
-{
-}
-#endif
-
-static inline struct pm_subsys_data *dev_to_psd(struct device *dev)
-{
- return dev ? dev->power.subsys_data : NULL;
-}
-
-static inline unsigned int dev_get_uevent_suppress(const struct device *dev)
-{
- return dev->kobj.uevent_suppress;
-}
-
-static inline void dev_set_uevent_suppress(struct device *dev, int val)
-{
- dev->kobj.uevent_suppress = val;
-}
-
-static inline int device_is_registered(struct device *dev)
-{
- return dev->kobj.state_in_sysfs;
-}
-
-static inline void device_enable_async_suspend(struct device *dev)
-{
- if (!dev->power.is_prepared)
- dev->power.async_suspend = true;
-}
-
-static inline void device_disable_async_suspend(struct device *dev)
-{
- if (!dev->power.is_prepared)
- dev->power.async_suspend = false;
-}
-
-static inline bool device_async_suspend_enabled(struct device *dev)
-{
- return !!dev->power.async_suspend;
-}
-
-static inline void pm_suspend_ignore_children(struct device *dev, bool enable)
-{
- dev->power.ignore_children = enable;
-}
-
-static inline void device_lock(struct device *dev)
-{
- mutex_lock(&dev->mutex);
-}
-
-static inline int device_trylock(struct device *dev)
-{
- return mutex_trylock(&dev->mutex);
-}
-
-static inline void device_unlock(struct device *dev)
-{
- mutex_unlock(&dev->mutex);
-}
-
-void driver_init(void);
-
-/*
- * High level routines for use by the bus drivers
- */
-extern int __must_check device_register(struct device *dev);
-extern void device_unregister(struct device *dev);
-extern void device_initialize(struct device *dev);
-extern int __must_check device_add(struct device *dev);
-extern void device_del(struct device *dev);
-extern int device_for_each_child(struct device *dev, void *data,
- int (*fn)(struct device *dev, void *data));
-extern struct device *device_find_child(struct device *dev, void *data,
- int (*match)(struct device *dev, void *data));
-extern int device_rename(struct device *dev, const char *new_name);
-extern int device_move(struct device *dev, struct device *new_parent,
- enum dpm_order dpm_order);
-extern const char *device_get_devnode(struct device *dev,
- umode_t *mode, const char **tmp);
-extern void *dev_get_drvdata(const struct device *dev);
-extern int dev_set_drvdata(struct device *dev, void *data);
-
-/*
- * Root device objects for grouping under /sys/devices
- */
-extern struct device *__root_device_register(const char *name,
- struct module *owner);
-
-/*
- * This is a macro to avoid include problems with THIS_MODULE,
- * just as per what is done for device_schedule_callback() above.
- */
-#define root_device_register(name) \
- __root_device_register(name, THIS_MODULE)
-
-extern void root_device_unregister(struct device *root);
-
-static inline void *dev_get_platdata(const struct device *dev)
-{
- return dev->platform_data;
-}
-
-/*
- * Manual binding of a device to driver. See drivers/base/bus.c
- * for information on use.
- */
-extern int __must_check device_bind_driver(struct device *dev);
-extern void device_release_driver(struct device *dev);
-extern int __must_check device_attach(struct device *dev);
-extern int __must_check driver_attach(struct device_driver *drv);
-extern int __must_check device_reprobe(struct device *dev);
-
-/*
- * Easy functions for dynamically creating devices on the fly
- */
-extern struct device *device_create_vargs(struct class *cls,
- struct device *parent,
- dev_t devt,
- void *drvdata,
- const char *fmt,
- va_list vargs);
-extern __printf(5, 6)
-struct device *device_create(struct class *cls, struct device *parent,
- dev_t devt, void *drvdata,
- const char *fmt, ...);
-extern void device_destroy(struct class *cls, dev_t devt);
-
-/*
- * Platform "fixup" functions - allow the platform to have their say
- * about devices and actions that the general device layer doesn't
- * know about.
- */
-/* Notify platform of device discovery */
-extern int (*platform_notify)(struct device *dev);
-
-extern int (*platform_notify_remove)(struct device *dev);
-
-
-/*
- * get_device - atomically increment the reference count for the device.
- *
- */
-extern struct device *get_device(struct device *dev);
-extern void put_device(struct device *dev);
-
-extern void wait_for_device_probe(void);
-
-#ifdef CONFIG_DEVTMPFS
-extern int devtmpfs_create_node(struct device *dev);
-extern int devtmpfs_delete_node(struct device *dev);
-extern int devtmpfs_mount(const char *mntdir);
-#else
-static inline int devtmpfs_create_node(struct device *dev) { return 0; }
-static inline int devtmpfs_delete_node(struct device *dev) { return 0; }
-static inline int devtmpfs_mount(const char *mountpoint) { return 0; }
-#endif
-
-/* drivers/base/power/shutdown.c */
-extern void device_shutdown(void);
-
-/* debugging and troubleshooting/diagnostic helpers. */
-extern const char *dev_driver_string(const struct device *dev);
-
-
-#ifdef CONFIG_PRINTK
-
-extern int __dev_printk(const char *level, const struct device *dev,
- struct va_format *vaf);
-extern __printf(3, 4)
-int dev_printk(const char *level, const struct device *dev,
- const char *fmt, ...)
- ;
-extern __printf(2, 3)
-int dev_emerg(const struct device *dev, const char *fmt, ...);
-extern __printf(2, 3)
-int dev_alert(const struct device *dev, const char *fmt, ...);
-extern __printf(2, 3)
-int dev_crit(const struct device *dev, const char *fmt, ...);
-extern __printf(2, 3)
-int dev_err(const struct device *dev, const char *fmt, ...);
-extern __printf(2, 3)
-int dev_warn(const struct device *dev, const char *fmt, ...);
-extern __printf(2, 3)
-int dev_notice(const struct device *dev, const char *fmt, ...);
-extern __printf(2, 3)
-int _dev_info(const struct device *dev, const char *fmt, ...);
-
-#else
-
-static inline int __dev_printk(const char *level, const struct device *dev,
- struct va_format *vaf)
-{ return 0; }
-static inline __printf(3, 4)
-int dev_printk(const char *level, const struct device *dev,
- const char *fmt, ...)
-{ return 0; }
-
-static inline __printf(2, 3)
-int dev_emerg(const struct device *dev, const char *fmt, ...)
-{ return 0; }
-static inline __printf(2, 3)
-int dev_crit(const struct device *dev, const char *fmt, ...)
-{ return 0; }
-static inline __printf(2, 3)
-int dev_alert(const struct device *dev, const char *fmt, ...)
-{ return 0; }
-static inline __printf(2, 3)
-int dev_err(const struct device *dev, const char *fmt, ...)
-{ return 0; }
-static inline __printf(2, 3)
-int dev_warn(const struct device *dev, const char *fmt, ...)
-{ return 0; }
-static inline __printf(2, 3)
-int dev_notice(const struct device *dev, const char *fmt, ...)
-{ return 0; }
-static inline __printf(2, 3)
-int _dev_info(const struct device *dev, const char *fmt, ...)
-{ return 0; }
-
-#endif
-
-/*
- * Stupid hackaround for existing uses of non-printk uses dev_info
- *
- * Note that the definition of dev_info below is actually _dev_info
- * and a macro is used to avoid redefining dev_info
- */
-
-#define dev_info(dev, fmt, arg...) _dev_info(dev, fmt, ##arg)
-
-#if defined(CONFIG_DYNAMIC_DEBUG)
-#define dev_dbg(dev, format, ...) \
-do { \
- dynamic_dev_dbg(dev, format, ##__VA_ARGS__); \
-} while (0)
-#elif defined(DEBUG)
-#define dev_dbg(dev, format, arg...) \
- dev_printk(KERN_DEBUG, dev, format, ##arg)
-#else
-#define dev_dbg(dev, format, arg...) \
-({ \
- if (0) \
- dev_printk(KERN_DEBUG, dev, format, ##arg); \
- 0; \
-})
-#endif
-
-#ifdef VERBOSE_DEBUG
-#define dev_vdbg dev_dbg
-#else
-#define dev_vdbg(dev, format, arg...) \
-({ \
- if (0) \
- dev_printk(KERN_DEBUG, dev, format, ##arg); \
- 0; \
-})
-#endif
-
-/*
- * dev_WARN*() acts like dev_printk(), but with the key difference
- * of using a WARN/WARN_ON to get the message out, including the
- * file/line information and a backtrace.
- */
-#define dev_WARN(dev, format, arg...) \
- WARN(1, "Device: %s\n" format, dev_driver_string(dev), ## arg);
-
-#define dev_WARN_ONCE(dev, condition, format, arg...) \
- WARN_ONCE(condition, "Device %s\n" format, \
- dev_driver_string(dev), ## arg)
-
-/* Create alias, so I can be autoloaded. */
-#define MODULE_ALIAS_CHARDEV(major,minor) \
- MODULE_ALIAS("char-major-" __stringify(major) "-" __stringify(minor))
-#define MODULE_ALIAS_CHARDEV_MAJOR(major) \
- MODULE_ALIAS("char-major-" __stringify(major) "-*")
-
-#ifdef CONFIG_SYSFS_DEPRECATED
-extern long sysfs_deprecated;
-#else
-#define sysfs_deprecated 0
-#endif
-
-/**
- * module_driver() - Helper macro for drivers that don't do anything
- * special in module init/exit. This eliminates a lot of boilerplate.
- * Each module may only use this macro once, and calling it replaces
- * module_init() and module_exit().
- *
- * @__driver: driver name
- * @__register: register function for this driver type
- * @__unregister: unregister function for this driver type
- * @...: Additional arguments to be passed to __register and __unregister.
- *
- * Use this macro to construct bus specific macros for registering
- * drivers, and do not use it on its own.
- */
-#define module_driver(__driver, __register, __unregister, ...) \
-static int __init __driver##_init(void) \
-{ \
- return __register(&(__driver) , ##__VA_ARGS__); \
-} \
-module_init(__driver##_init); \
-static void __exit __driver##_exit(void) \
-{ \
- __unregister(&(__driver) , ##__VA_ARGS__); \
-} \
-module_exit(__driver##_exit);
-
-#endif /* _DEVICE_H_ */
diff --git a/ANDROID_3.4.5/include/linux/device_cgroup.h b/ANDROID_3.4.5/include/linux/device_cgroup.h
deleted file mode 100644
index 8b64221b..00000000
--- a/ANDROID_3.4.5/include/linux/device_cgroup.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#include <linux/fs.h>
-
-#ifdef CONFIG_CGROUP_DEVICE
-extern int __devcgroup_inode_permission(struct inode *inode, int mask);
-extern int devcgroup_inode_mknod(int mode, dev_t dev);
-static inline int devcgroup_inode_permission(struct inode *inode, int mask)
-{
- if (likely(!inode->i_rdev))
- return 0;
- if (!S_ISBLK(inode->i_mode) && !S_ISCHR(inode->i_mode))
- return 0;
- return __devcgroup_inode_permission(inode, mask);
-}
-#else
-static inline int devcgroup_inode_permission(struct inode *inode, int mask)
-{ return 0; }
-static inline int devcgroup_inode_mknod(int mode, dev_t dev)
-{ return 0; }
-#endif
diff --git a/ANDROID_3.4.5/include/linux/devpts_fs.h b/ANDROID_3.4.5/include/linux/devpts_fs.h
deleted file mode 100644
index 5ce0e5fd..00000000
--- a/ANDROID_3.4.5/include/linux/devpts_fs.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* -*- linux-c -*- --------------------------------------------------------- *
- *
- * linux/include/linux/devpts_fs.h
- *
- * Copyright 1998-2004 H. Peter Anvin -- All Rights Reserved
- *
- * This file is part of the Linux kernel and is made available under
- * the terms of the GNU General Public License, version 2, or at your
- * option, any later version, incorporated herein by reference.
- *
- * ------------------------------------------------------------------------- */
-
-#ifndef _LINUX_DEVPTS_FS_H
-#define _LINUX_DEVPTS_FS_H
-
-#include <linux/errno.h>
-
-#ifdef CONFIG_UNIX98_PTYS
-
-int devpts_new_index(struct inode *ptmx_inode);
-void devpts_kill_index(struct inode *ptmx_inode, int idx);
-/* mknod in devpts */
-int devpts_pty_new(struct inode *ptmx_inode, struct tty_struct *tty);
-/* get tty structure */
-struct tty_struct *devpts_get_tty(struct inode *pts_inode, int number);
-/* unlink */
-void devpts_pty_kill(struct tty_struct *tty);
-
-#else
-
-/* Dummy stubs in the no-pty case */
-static inline int devpts_new_index(struct inode *ptmx_inode) { return -EINVAL; }
-static inline void devpts_kill_index(struct inode *ptmx_inode, int idx) { }
-static inline int devpts_pty_new(struct inode *ptmx_inode,
- struct tty_struct *tty)
-{
- return -EINVAL;
-}
-static inline struct tty_struct *devpts_get_tty(struct inode *pts_inode,
- int number)
-{
- return NULL;
-}
-static inline void devpts_pty_kill(struct tty_struct *tty) { }
-
-#endif
-
-
-#endif /* _LINUX_DEVPTS_FS_H */
diff --git a/ANDROID_3.4.5/include/linux/digsig.h b/ANDROID_3.4.5/include/linux/digsig.h
deleted file mode 100644
index 6f85a070..00000000
--- a/ANDROID_3.4.5/include/linux/digsig.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (C) 2011 Nokia Corporation
- * Copyright (C) 2011 Intel Corporation
- *
- * Author:
- * Dmitry Kasatkin <dmitry.kasatkin@nokia.com>
- * <dmitry.kasatkin@intel.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, version 2 of the License.
- *
- */
-
-#ifndef _DIGSIG_H
-#define _DIGSIG_H
-
-#include <linux/key.h>
-
-enum pubkey_algo {
- PUBKEY_ALGO_RSA,
- PUBKEY_ALGO_MAX,
-};
-
-enum digest_algo {
- DIGEST_ALGO_SHA1,
- DIGEST_ALGO_SHA256,
- DIGEST_ALGO_MAX
-};
-
-struct pubkey_hdr {
- uint8_t version; /* key format version */
- uint32_t timestamp; /* key made, always 0 for now */
- uint8_t algo;
- uint8_t nmpi;
- char mpi[0];
-} __packed;
-
-struct signature_hdr {
- uint8_t version; /* signature format version */
- uint32_t timestamp; /* signature made */
- uint8_t algo;
- uint8_t hash;
- uint8_t keyid[8];
- uint8_t nmpi;
- char mpi[0];
-} __packed;
-
-#if defined(CONFIG_SIGNATURE) || defined(CONFIG_SIGNATURE_MODULE)
-
-int digsig_verify(struct key *keyring, const char *sig, int siglen,
- const char *digest, int digestlen);
-
-#else
-
-static inline int digsig_verify(struct key *keyring, const char *sig,
- int siglen, const char *digest, int digestlen)
-{
- return -EOPNOTSUPP;
-}
-
-#endif /* CONFIG_SIGNATURE */
-
-#endif /* _DIGSIG_H */
diff --git a/ANDROID_3.4.5/include/linux/dio.h b/ANDROID_3.4.5/include/linux/dio.h
deleted file mode 100644
index 2cc0fd00..00000000
--- a/ANDROID_3.4.5/include/linux/dio.h
+++ /dev/null
@@ -1,280 +0,0 @@
-/* header file for DIO boards for the HP300 architecture.
- * Maybe this should handle DIO-II later?
- * The general structure of this is vaguely based on how
- * the Amiga port handles Zorro boards.
- * Copyright (C) Peter Maydell 05/1998 <pmaydell@chiark.greenend.org.uk>
- * Converted to driver model Jochen Friedrich <jochen@scram.de>
- *
- * The board IDs are from the NetBSD kernel, which for once provided
- * helpful comments...
- *
- * This goes with drivers/dio/dio.c
- */
-
-#ifndef _LINUX_DIO_H
-#define _LINUX_DIO_H
-
-/* The DIO boards in a system are distinguished by 'select codes' which
- * range from 0-63 (DIO) and 132-255 (DIO-II).
- * The DIO board with select code sc is located at physical address
- * 0x600000 + sc * 0x10000
- * So DIO cards cover [0x600000-0x800000); the areas [0x200000-0x400000) and
- * [0x800000-0x1000000) are for additional space required by things
- * like framebuffers. [0x400000-0x600000) is for miscellaneous internal I/O.
- * On Linux, this is currently all mapped into the virtual address space
- * at 0xf0000000 on bootup.
- * DIO-II boards are at 0x1000000 + (sc - 132) * 0x400000
- * which is address range [0x1000000-0x20000000) -- too big to map completely,
- * so currently we just don't handle DIO-II boards. It wouldn't be hard to
- * do with ioremap() though.
- */
-
-#include <linux/device.h>
-
-#ifdef __KERNEL__
-
-#include <asm/hp300hw.h>
-
-typedef __u16 dio_id;
-
- /*
- * DIO devices
- */
-
-struct dio_dev {
- struct dio_bus *bus;
- dio_id id;
- int scode;
- struct dio_driver *driver; /* which driver has allocated this device */
- struct device dev; /* Generic device interface */
- u8 ipl;
- char name[64];
- struct resource resource;
-};
-
-#define to_dio_dev(n) container_of(n, struct dio_dev, dev)
-
- /*
- * DIO bus
- */
-
-struct dio_bus {
- struct list_head devices; /* list of devices on this bus */
- unsigned int num_resources; /* number of resources */
- struct resource resources[2]; /* address space routed to this bus */
- struct device dev;
- char name[10];
-};
-
-extern struct dio_bus dio_bus; /* Single DIO bus */
-extern struct bus_type dio_bus_type;
-
- /*
- * DIO device IDs
- */
-
-struct dio_device_id {
- dio_id id; /* Device ID or DIO_WILDCARD */
- unsigned long driver_data; /* Data private to the driver */
-};
-
- /*
- * DIO device drivers
- */
-
-struct dio_driver {
- struct list_head node;
- char *name;
- const struct dio_device_id *id_table; /* NULL if wants all devices */
- int (*probe)(struct dio_dev *z, const struct dio_device_id *id);
-/* New device inserted */
- void (*remove)(struct dio_dev *z); /* Device removed (NULL if not a hot-plug capable driver) */
- struct device_driver driver;
-};
-
-#define to_dio_driver(drv) container_of(drv, struct dio_driver, driver)
-
-/* DIO/DIO-II boards all have the following 8bit registers.
- * These are offsets from the base of the device.
- */
-#define DIO_IDOFF 0x01 /* primary device ID */
-#define DIO_IPLOFF 0x03 /* interrupt priority level */
-#define DIO_SECIDOFF 0x15 /* secondary device ID */
-#define DIOII_SIZEOFF 0x101 /* device size, DIO-II only */
-#define DIO_VIRADDRBASE 0xf0000000UL /* vir addr where IOspace is mapped */
-
-#define DIO_BASE 0x600000 /* start of DIO space */
-#define DIO_END 0x1000000 /* end of DIO space */
-#define DIO_DEVSIZE 0x10000 /* size of a DIO device */
-
-#define DIOII_BASE 0x01000000 /* start of DIO-II space */
-#define DIOII_END 0x20000000 /* end of DIO-II space */
-#define DIOII_DEVSIZE 0x00400000 /* size of a DIO-II device */
-
-/* Highest valid select code. If we add DIO-II support this should become
- * 256 for everything except HP320, which only has DIO.
- */
-#define DIO_SCMAX (hp300_model == HP_320 ? 32 : 256)
-#define DIOII_SCBASE 132 /* lowest DIO-II select code */
-#define DIO_SCINHOLE(scode) (((scode) >= 32) && ((scode) < DIOII_SCBASE))
-#define DIO_ISDIOII(scode) ((scode) >= 132 && (scode) < 256)
-
-/* macros to read device IDs, given base address */
-#define DIO_ID(baseaddr) in_8((baseaddr) + DIO_IDOFF)
-#define DIO_SECID(baseaddr) in_8((baseaddr) + DIO_SECIDOFF)
-
-/* extract the interrupt level */
-#define DIO_IPL(baseaddr) (((in_8((baseaddr) + DIO_IPLOFF) >> 4) & 0x03) + 3)
-
-/* find the size of a DIO-II board's address space.
- * DIO boards are all fixed length.
- */
-#define DIOII_SIZE(baseaddr) ((in_8((baseaddr) + DIOII_SIZEOFF) + 1) * 0x100000)
-
-/* general purpose macro for both DIO and DIO-II */
-#define DIO_SIZE(scode, base) (DIO_ISDIOII((scode)) ? DIOII_SIZE((base)) : DIO_DEVSIZE)
-
-/* The hardware has primary and secondary IDs; we encode these in a single
- * int as PRIMARY ID & (SECONDARY ID << 8).
- * In practice this is only important for framebuffers,
- * and everybody else just sets ID fields equal to the DIO_ID_FOO value.
- */
-#define DIO_ENCODE_ID(pr,sec) ((((int)sec & 0xff) << 8) | ((int)pr & 0xff))
-/* macro to determine whether a given primary ID requires a secondary ID byte */
-#define DIO_NEEDSSECID(id) ((id) == DIO_ID_FBUFFER)
-#define DIO_WILDCARD 0xff
-
-/* Now a whole slew of macros giving device IDs and descriptive strings: */
-#define DIO_ID_DCA0 0x02 /* 98644A serial */
-#define DIO_DESC_DCA0 "98644A DCA0 serial"
-#define DIO_ID_DCA0REM 0x82 /* 98644A serial */
-#define DIO_DESC_DCA0REM "98644A DCA0REM serial"
-#define DIO_ID_DCA1 0x42 /* 98644A serial */
-#define DIO_DESC_DCA1 "98644A DCA1 serial"
-#define DIO_ID_DCA1REM 0xc2 /* 98644A serial */
-#define DIO_DESC_DCA1REM "98644A DCA1REM serial"
-#define DIO_ID_DCM 0x05 /* 98642A serial MUX */
-#define DIO_DESC_DCM "98642A DCM serial MUX"
-#define DIO_ID_DCMREM 0x85 /* 98642A serial MUX */
-#define DIO_DESC_DCMREM "98642A DCMREM serial MUX"
-#define DIO_ID_LAN 0x15 /* 98643A LAN */
-#define DIO_DESC_LAN "98643A LANCE ethernet"
-#define DIO_ID_FHPIB 0x08 /* 98625A/98625B fast HP-IB */
-#define DIO_DESC_FHPIB "98625A/98625B fast HPIB"
-#define DIO_ID_NHPIB 0x01 /* 98624A HP-IB (normal ie slow) */
-#define DIO_DESC_NHPIB "98624A HPIB"
-#define DIO_ID_SCSI0 0x07 /* 98265A SCSI */
-#define DIO_DESC_SCSI0 "98265A SCSI0"
-#define DIO_ID_SCSI1 0x27 /* ditto */
-#define DIO_DESC_SCSI1 "98265A SCSI1"
-#define DIO_ID_SCSI2 0x47 /* ditto */
-#define DIO_DESC_SCSI2 "98265A SCSI2"
-#define DIO_ID_SCSI3 0x67 /* ditto */
-#define DIO_DESC_SCSI3 "98265A SCSI3"
-#define DIO_ID_FBUFFER 0x39 /* framebuffer: flavour is distinguished by secondary ID */
-#define DIO_DESC_FBUFFER "bitmapped display"
-/* the NetBSD kernel source is a bit unsure as to what these next IDs actually do :-> */
-#define DIO_ID_MISC0 0x03 /* 98622A */
-#define DIO_DESC_MISC0 "98622A"
-#define DIO_ID_MISC1 0x04 /* 98623A */
-#define DIO_DESC_MISC1 "98623A"
-#define DIO_ID_PARALLEL 0x06 /* internal parallel */
-#define DIO_DESC_PARALLEL "internal parallel"
-#define DIO_ID_MISC2 0x09 /* 98287A keyboard */
-#define DIO_DESC_MISC2 "98287A keyboard"
-#define DIO_ID_MISC3 0x0a /* HP98635A FP accelerator */
-#define DIO_DESC_MISC3 "HP98635A FP accelerator"
-#define DIO_ID_MISC4 0x0b /* timer */
-#define DIO_DESC_MISC4 "timer"
-#define DIO_ID_MISC5 0x12 /* 98640A */
-#define DIO_DESC_MISC5 "98640A"
-#define DIO_ID_MISC6 0x16 /* 98659A */
-#define DIO_DESC_MISC6 "98659A"
-#define DIO_ID_MISC7 0x19 /* 237 display */
-#define DIO_DESC_MISC7 "237 display"
-#define DIO_ID_MISC8 0x1a /* quad-wide card */
-#define DIO_DESC_MISC8 "quad-wide card"
-#define DIO_ID_MISC9 0x1b /* 98253A */
-#define DIO_DESC_MISC9 "98253A"
-#define DIO_ID_MISC10 0x1c /* 98627A */
-#define DIO_DESC_MISC10 "98253A"
-#define DIO_ID_MISC11 0x1d /* 98633A */
-#define DIO_DESC_MISC11 "98633A"
-#define DIO_ID_MISC12 0x1e /* 98259A */
-#define DIO_DESC_MISC12 "98259A"
-#define DIO_ID_MISC13 0x1f /* 8741 */
-#define DIO_DESC_MISC13 "8741"
-#define DIO_ID_VME 0x31 /* 98577A VME adapter */
-#define DIO_DESC_VME "98577A VME adapter"
-#define DIO_ID_DCL 0x34 /* 98628A serial */
-#define DIO_DESC_DCL "98628A DCL serial"
-#define DIO_ID_DCLREM 0xb4 /* 98628A serial */
-#define DIO_DESC_DCLREM "98628A DCLREM serial"
-/* These are the secondary IDs for the framebuffers */
-#define DIO_ID2_GATORBOX 0x01 /* 98700/98710 "gatorbox" */
-#define DIO_DESC2_GATORBOX "98700/98710 \"gatorbox\" display"
-#define DIO_ID2_TOPCAT 0x02 /* 98544/98545/98547 "topcat" */
-#define DIO_DESC2_TOPCAT "98544/98545/98547 \"topcat\" display"
-#define DIO_ID2_RENAISSANCE 0x04 /* 98720/98721 "renaissance" */
-#define DIO_DESC2_RENAISSANCE "98720/98721 \"renaissance\" display"
-#define DIO_ID2_LRCATSEYE 0x05 /* lowres "catseye" */
-#define DIO_DESC2_LRCATSEYE "low-res catseye display"
-#define DIO_ID2_HRCCATSEYE 0x06 /* highres colour "catseye" */
-#define DIO_DESC2_HRCCATSEYE "high-res color catseye display"
-#define DIO_ID2_HRMCATSEYE 0x07 /* highres mono "catseye" */
-#define DIO_DESC2_HRMCATSEYE "high-res mono catseye display"
-#define DIO_ID2_DAVINCI 0x08 /* 98730/98731 "davinci" */
-#define DIO_DESC2_DAVINCI "98730/98731 \"davinci\" display"
-#define DIO_ID2_XXXCATSEYE 0x09 /* "catseye" */
-#define DIO_DESC2_XXXCATSEYE "catseye display"
-#define DIO_ID2_HYPERION 0x0e /* A1096A "hyperion" */
-#define DIO_DESC2_HYPERION "A1096A \"hyperion\" display"
-#define DIO_ID2_XGENESIS 0x0b /* "x-genesis"; no NetBSD support */
-#define DIO_DESC2_XGENESIS "\"x-genesis\" display"
-#define DIO_ID2_TIGER 0x0c /* "tiger"; no NetBSD support */
-#define DIO_DESC2_TIGER "\"tiger\" display"
-#define DIO_ID2_YGENESIS 0x0d /* "y-genesis"; no NetBSD support */
-#define DIO_DESC2_YGENESIS "\"y-genesis\" display"
-/* if you add new IDs then you should tell dio.c about them so it can
- * identify them...
- */
-
-extern int dio_find(int deviceid);
-extern unsigned long dio_scodetophysaddr(int scode);
-extern int dio_create_sysfs_dev_files(struct dio_dev *);
-
-/* New-style probing */
-extern int dio_register_driver(struct dio_driver *);
-extern void dio_unregister_driver(struct dio_driver *);
-extern const struct dio_device_id *dio_match_device(const struct dio_device_id *ids, const struct dio_dev *z);
-static inline struct dio_driver *dio_dev_driver(const struct dio_dev *d)
-{
- return d->driver;
-}
-
-#define dio_resource_start(d) ((d)->resource.start)
-#define dio_resource_end(d) ((d)->resource.end)
-#define dio_resource_len(d) (resource_size(&(d)->resource))
-#define dio_resource_flags(d) ((d)->resource.flags)
-
-#define dio_request_device(d, name) \
- request_mem_region(dio_resource_start(d), dio_resource_len(d), name)
-#define dio_release_device(d) \
- release_mem_region(dio_resource_start(d), dio_resource_len(d))
-
-/* Similar to the helpers above, these manipulate per-dio_dev
- * driver-specific data. They are really just a wrapper around
- * the generic device structure functions of these calls.
- */
-static inline void *dio_get_drvdata (struct dio_dev *d)
-{
- return dev_get_drvdata(&d->dev);
-}
-
-static inline void dio_set_drvdata (struct dio_dev *d, void *data)
-{
- dev_set_drvdata(&d->dev, data);
-}
-
-#endif /* __KERNEL__ */
-#endif /* ndef _LINUX_DIO_H */
diff --git a/ANDROID_3.4.5/include/linux/dirent.h b/ANDROID_3.4.5/include/linux/dirent.h
deleted file mode 100644
index f072fb8d..00000000
--- a/ANDROID_3.4.5/include/linux/dirent.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef _LINUX_DIRENT_H
-#define _LINUX_DIRENT_H
-
-struct linux_dirent64 {
- u64 d_ino;
- s64 d_off;
- unsigned short d_reclen;
- unsigned char d_type;
- char d_name[0];
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/dlm.h b/ANDROID_3.4.5/include/linux/dlm.h
deleted file mode 100644
index 6c7f6e95..00000000
--- a/ANDROID_3.4.5/include/linux/dlm.h
+++ /dev/null
@@ -1,233 +0,0 @@
-/******************************************************************************
-*******************************************************************************
-**
-** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
-** Copyright (C) 2004-2011 Red Hat, Inc. All rights reserved.
-**
-** This copyrighted material is made available to anyone wishing to use,
-** modify, copy, or redistribute it subject to the terms and conditions
-** of the GNU General Public License v.2.
-**
-*******************************************************************************
-******************************************************************************/
-
-#ifndef __DLM_DOT_H__
-#define __DLM_DOT_H__
-
-/*
- * Interface to Distributed Lock Manager (DLM)
- * routines and structures to use DLM lockspaces
- */
-
-/* Lock levels and flags are here */
-#include <linux/dlmconstants.h>
-#include <linux/types.h>
-
-typedef void dlm_lockspace_t;
-
-/*
- * Lock status block
- *
- * Use this structure to specify the contents of the lock value block. For a
- * conversion request, this structure is used to specify the lock ID of the
- * lock. DLM writes the status of the lock request and the lock ID assigned
- * to the request in the lock status block.
- *
- * sb_lkid: the returned lock ID. It is set on new (non-conversion) requests.
- * It is available when dlm_lock returns.
- *
- * sb_lvbptr: saves or returns the contents of the lock's LVB according to rules
- * shown for the DLM_LKF_VALBLK flag.
- *
- * sb_flags: DLM_SBF_DEMOTED is returned if in the process of promoting a lock,
- * it was first demoted to NL to avoid conversion deadlock.
- * DLM_SBF_VALNOTVALID is returned if the resource's LVB is marked invalid.
- *
- * sb_status: the returned status of the lock request set prior to AST
- * execution. Possible return values:
- *
- * 0 if lock request was successful
- * -EAGAIN if request would block and is flagged DLM_LKF_NOQUEUE
- * -DLM_EUNLOCK if unlock request was successful
- * -DLM_ECANCEL if a cancel completed successfully
- * -EDEADLK if a deadlock was detected
- * -ETIMEDOUT if the lock request was canceled due to a timeout
- */
-
-#define DLM_SBF_DEMOTED 0x01
-#define DLM_SBF_VALNOTVALID 0x02
-#define DLM_SBF_ALTMODE 0x04
-
-struct dlm_lksb {
- int sb_status;
- __u32 sb_lkid;
- char sb_flags;
- char * sb_lvbptr;
-};
-
-/* dlm_new_lockspace() flags */
-
-#define DLM_LSFL_NODIR 0x00000001
-#define DLM_LSFL_TIMEWARN 0x00000002
-#define DLM_LSFL_FS 0x00000004
-#define DLM_LSFL_NEWEXCL 0x00000008
-
-#ifdef __KERNEL__
-
-struct dlm_slot {
- int nodeid; /* 1 to MAX_INT */
- int slot; /* 1 to MAX_INT */
-};
-
-/*
- * recover_prep: called before the dlm begins lock recovery.
- * Notfies lockspace user that locks from failed members will be granted.
- * recover_slot: called after recover_prep and before recover_done.
- * Identifies a failed lockspace member.
- * recover_done: called after the dlm completes lock recovery.
- * Identifies lockspace members and lockspace generation number.
- */
-
-struct dlm_lockspace_ops {
- void (*recover_prep) (void *ops_arg);
- void (*recover_slot) (void *ops_arg, struct dlm_slot *slot);
- void (*recover_done) (void *ops_arg, struct dlm_slot *slots,
- int num_slots, int our_slot, uint32_t generation);
-};
-
-/*
- * dlm_new_lockspace
- *
- * Create/join a lockspace.
- *
- * name: lockspace name, null terminated, up to DLM_LOCKSPACE_LEN (not
- * including terminating null).
- *
- * cluster: cluster name, null terminated, up to DLM_LOCKSPACE_LEN (not
- * including terminating null). Optional. When cluster is null, it
- * is not used. When set, dlm_new_lockspace() returns -EBADR if cluster
- * is not equal to the dlm cluster name.
- *
- * flags:
- * DLM_LSFL_NODIR
- * The dlm should not use a resource directory, but statically assign
- * resource mastery to nodes based on the name hash that is otherwise
- * used to select the directory node. Must be the same on all nodes.
- * DLM_LSFL_TIMEWARN
- * The dlm should emit netlink messages if locks have been waiting
- * for a configurable amount of time. (Unused.)
- * DLM_LSFL_FS
- * The lockspace user is in the kernel (i.e. filesystem). Enables
- * direct bast/cast callbacks.
- * DLM_LSFL_NEWEXCL
- * dlm_new_lockspace() should return -EEXIST if the lockspace exists.
- *
- * lvblen: length of lvb in bytes. Must be multiple of 8.
- * dlm_new_lockspace() returns an error if this does not match
- * what other nodes are using.
- *
- * ops: callbacks that indicate lockspace recovery points so the
- * caller can coordinate its recovery and know lockspace members.
- * This is only used by the initial dlm_new_lockspace() call.
- * Optional.
- *
- * ops_arg: arg for ops callbacks.
- *
- * ops_result: tells caller if the ops callbacks (if provided) will
- * be used or not. 0: will be used, -EXXX will not be used.
- * -EOPNOTSUPP: the dlm does not have recovery_callbacks enabled.
- *
- * lockspace: handle for dlm functions
- */
-
-int dlm_new_lockspace(const char *name, const char *cluster,
- uint32_t flags, int lvblen,
- const struct dlm_lockspace_ops *ops, void *ops_arg,
- int *ops_result, dlm_lockspace_t **lockspace);
-
-/*
- * dlm_release_lockspace
- *
- * Stop a lockspace.
- */
-
-int dlm_release_lockspace(dlm_lockspace_t *lockspace, int force);
-
-/*
- * dlm_lock
- *
- * Make an asyncronous request to acquire or convert a lock on a named
- * resource.
- *
- * lockspace: context for the request
- * mode: the requested mode of the lock (DLM_LOCK_)
- * lksb: lock status block for input and async return values
- * flags: input flags (DLM_LKF_)
- * name: name of the resource to lock, can be binary
- * namelen: the length in bytes of the resource name (MAX_RESNAME_LEN)
- * parent: the lock ID of a parent lock or 0 if none
- * lockast: function DLM executes when it completes processing the request
- * astarg: argument passed to lockast and bast functions
- * bast: function DLM executes when this lock later blocks another request
- *
- * Returns:
- * 0 if request is successfully queued for processing
- * -EINVAL if any input parameters are invalid
- * -EAGAIN if request would block and is flagged DLM_LKF_NOQUEUE
- * -ENOMEM if there is no memory to process request
- * -ENOTCONN if there is a communication error
- *
- * If the call to dlm_lock returns an error then the operation has failed and
- * the AST routine will not be called. If dlm_lock returns 0 it is still
- * possible that the lock operation will fail. The AST routine will be called
- * when the locking is complete and the status is returned in the lksb.
- *
- * If the AST routines or parameter are passed to a conversion operation then
- * they will overwrite those values that were passed to a previous dlm_lock
- * call.
- *
- * AST routines should not block (at least not for long), but may make
- * any locking calls they please.
- */
-
-int dlm_lock(dlm_lockspace_t *lockspace,
- int mode,
- struct dlm_lksb *lksb,
- uint32_t flags,
- void *name,
- unsigned int namelen,
- uint32_t parent_lkid,
- void (*lockast) (void *astarg),
- void *astarg,
- void (*bast) (void *astarg, int mode));
-
-/*
- * dlm_unlock
- *
- * Asynchronously release a lock on a resource. The AST routine is called
- * when the resource is successfully unlocked.
- *
- * lockspace: context for the request
- * lkid: the lock ID as returned in the lksb
- * flags: input flags (DLM_LKF_)
- * lksb: if NULL the lksb parameter passed to last lock request is used
- * astarg: the arg used with the completion ast for the unlock
- *
- * Returns:
- * 0 if request is successfully queued for processing
- * -EINVAL if any input parameters are invalid
- * -ENOTEMPTY if the lock still has sublocks
- * -EBUSY if the lock is waiting for a remote lock operation
- * -ENOTCONN if there is a communication error
- */
-
-int dlm_unlock(dlm_lockspace_t *lockspace,
- uint32_t lkid,
- uint32_t flags,
- struct dlm_lksb *lksb,
- void *astarg);
-
-#endif /* __KERNEL__ */
-
-#endif /* __DLM_DOT_H__ */
-
diff --git a/ANDROID_3.4.5/include/linux/dlm_device.h b/ANDROID_3.4.5/include/linux/dlm_device.h
deleted file mode 100644
index 3060783c..00000000
--- a/ANDROID_3.4.5/include/linux/dlm_device.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/******************************************************************************
-*******************************************************************************
-**
-** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
-** Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved.
-**
-** This copyrighted material is made available to anyone wishing to use,
-** modify, copy, or redistribute it subject to the terms and conditions
-** of the GNU General Public License v.2.
-**
-*******************************************************************************
-******************************************************************************/
-
-#ifndef _LINUX_DLM_DEVICE_H
-#define _LINUX_DLM_DEVICE_H
-
-/* This is the device interface for dlm, most users will use a library
- * interface.
- */
-
-#include <linux/dlm.h>
-#include <linux/types.h>
-
-#define DLM_USER_LVB_LEN 32
-
-/* Version of the device interface */
-#define DLM_DEVICE_VERSION_MAJOR 6
-#define DLM_DEVICE_VERSION_MINOR 0
-#define DLM_DEVICE_VERSION_PATCH 1
-
-/* struct passed to the lock write */
-struct dlm_lock_params {
- __u8 mode;
- __u8 namelen;
- __u16 unused;
- __u32 flags;
- __u32 lkid;
- __u32 parent;
- __u64 xid;
- __u64 timeout;
- void __user *castparam;
- void __user *castaddr;
- void __user *bastparam;
- void __user *bastaddr;
- struct dlm_lksb __user *lksb;
- char lvb[DLM_USER_LVB_LEN];
- char name[0];
-};
-
-struct dlm_lspace_params {
- __u32 flags;
- __u32 minor;
- char name[0];
-};
-
-struct dlm_purge_params {
- __u32 nodeid;
- __u32 pid;
-};
-
-struct dlm_write_request {
- __u32 version[3];
- __u8 cmd;
- __u8 is64bit;
- __u8 unused[2];
-
- union {
- struct dlm_lock_params lock;
- struct dlm_lspace_params lspace;
- struct dlm_purge_params purge;
- } i;
-};
-
-struct dlm_device_version {
- __u32 version[3];
-};
-
-/* struct read from the "device" fd,
- consists mainly of userspace pointers for the library to use */
-
-struct dlm_lock_result {
- __u32 version[3];
- __u32 length;
- void __user * user_astaddr;
- void __user * user_astparam;
- struct dlm_lksb __user * user_lksb;
- struct dlm_lksb lksb;
- __u8 bast_mode;
- __u8 unused[3];
- /* Offsets may be zero if no data is present */
- __u32 lvb_offset;
-};
-
-/* Commands passed to the device */
-#define DLM_USER_LOCK 1
-#define DLM_USER_UNLOCK 2
-#define DLM_USER_QUERY 3
-#define DLM_USER_CREATE_LOCKSPACE 4
-#define DLM_USER_REMOVE_LOCKSPACE 5
-#define DLM_USER_PURGE 6
-#define DLM_USER_DEADLOCK 7
-
-/* Lockspace flags */
-#define DLM_USER_LSFLG_AUTOFREE 1
-#define DLM_USER_LSFLG_FORCEFREE 2
-
-#endif
-
diff --git a/ANDROID_3.4.5/include/linux/dlm_netlink.h b/ANDROID_3.4.5/include/linux/dlm_netlink.h
deleted file mode 100644
index 647c8ef2..00000000
--- a/ANDROID_3.4.5/include/linux/dlm_netlink.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2007 Red Hat, Inc. All rights reserved.
- *
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU General Public License v.2.
- */
-
-#ifndef _DLM_NETLINK_H
-#define _DLM_NETLINK_H
-
-#include <linux/types.h>
-
-enum {
- DLM_STATUS_WAITING = 1,
- DLM_STATUS_GRANTED = 2,
- DLM_STATUS_CONVERT = 3,
-};
-
-#define DLM_LOCK_DATA_VERSION 1
-
-struct dlm_lock_data {
- __u16 version;
- __u32 lockspace_id;
- int nodeid;
- int ownpid;
- __u32 id;
- __u32 remid;
- __u64 xid;
- __s8 status;
- __s8 grmode;
- __s8 rqmode;
- unsigned long timestamp;
- int resource_namelen;
- char resource_name[DLM_RESNAME_MAXLEN];
-};
-
-enum {
- DLM_CMD_UNSPEC = 0,
- DLM_CMD_HELLO, /* user->kernel */
- DLM_CMD_TIMEOUT, /* kernel->user */
- __DLM_CMD_MAX,
-};
-
-#define DLM_CMD_MAX (__DLM_CMD_MAX - 1)
-
-enum {
- DLM_TYPE_UNSPEC = 0,
- DLM_TYPE_LOCK,
- __DLM_TYPE_MAX,
-};
-
-#define DLM_TYPE_MAX (__DLM_TYPE_MAX - 1)
-
-#define DLM_GENL_VERSION 0x1
-#define DLM_GENL_NAME "DLM"
-
-#endif /* _DLM_NETLINK_H */
diff --git a/ANDROID_3.4.5/include/linux/dlm_plock.h b/ANDROID_3.4.5/include/linux/dlm_plock.h
deleted file mode 100644
index 3b1cc1be..00000000
--- a/ANDROID_3.4.5/include/linux/dlm_plock.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2005-2008 Red Hat, Inc. All rights reserved.
- *
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU General Public License v.2.
- */
-
-#ifndef __DLM_PLOCK_DOT_H__
-#define __DLM_PLOCK_DOT_H__
-
-#include <linux/types.h>
-
-#define DLM_PLOCK_MISC_NAME "dlm_plock"
-
-#define DLM_PLOCK_VERSION_MAJOR 1
-#define DLM_PLOCK_VERSION_MINOR 2
-#define DLM_PLOCK_VERSION_PATCH 0
-
-enum {
- DLM_PLOCK_OP_LOCK = 1,
- DLM_PLOCK_OP_UNLOCK,
- DLM_PLOCK_OP_GET,
-};
-
-#define DLM_PLOCK_FL_CLOSE 1
-
-struct dlm_plock_info {
- __u32 version[3];
- __u8 optype;
- __u8 ex;
- __u8 wait;
- __u8 flags;
- __u32 pid;
- __s32 nodeid;
- __s32 rv;
- __u32 fsid;
- __u64 number;
- __u64 start;
- __u64 end;
- __u64 owner;
-};
-
-#ifdef __KERNEL__
-int dlm_posix_lock(dlm_lockspace_t *lockspace, u64 number, struct file *file,
- int cmd, struct file_lock *fl);
-int dlm_posix_unlock(dlm_lockspace_t *lockspace, u64 number, struct file *file,
- struct file_lock *fl);
-int dlm_posix_get(dlm_lockspace_t *lockspace, u64 number, struct file *file,
- struct file_lock *fl);
-#endif /* __KERNEL__ */
-
-#endif
-
diff --git a/ANDROID_3.4.5/include/linux/dlmconstants.h b/ANDROID_3.4.5/include/linux/dlmconstants.h
deleted file mode 100644
index 47bf08dc..00000000
--- a/ANDROID_3.4.5/include/linux/dlmconstants.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/******************************************************************************
-*******************************************************************************
-**
-** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
-** Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved.
-**
-** This copyrighted material is made available to anyone wishing to use,
-** modify, copy, or redistribute it subject to the terms and conditions
-** of the GNU General Public License v.2.
-**
-*******************************************************************************
-******************************************************************************/
-
-#ifndef __DLMCONSTANTS_DOT_H__
-#define __DLMCONSTANTS_DOT_H__
-
-/*
- * Constants used by DLM interface.
- */
-
-#define DLM_LOCKSPACE_LEN 64
-#define DLM_RESNAME_MAXLEN 64
-
-
-/*
- * Lock Modes
- */
-
-#define DLM_LOCK_IV (-1) /* invalid */
-#define DLM_LOCK_NL 0 /* null */
-#define DLM_LOCK_CR 1 /* concurrent read */
-#define DLM_LOCK_CW 2 /* concurrent write */
-#define DLM_LOCK_PR 3 /* protected read */
-#define DLM_LOCK_PW 4 /* protected write */
-#define DLM_LOCK_EX 5 /* exclusive */
-
-
-/*
- * Flags to dlm_lock
- *
- * DLM_LKF_NOQUEUE
- *
- * Do not queue the lock request on the wait queue if it cannot be granted
- * immediately. If the lock cannot be granted because of this flag, DLM will
- * either return -EAGAIN from the dlm_lock call or will return 0 from
- * dlm_lock and -EAGAIN in the lock status block when the AST is executed.
- *
- * DLM_LKF_CANCEL
- *
- * Used to cancel a pending lock request or conversion. A converting lock is
- * returned to its previously granted mode.
- *
- * DLM_LKF_CONVERT
- *
- * Indicates a lock conversion request. For conversions the name and namelen
- * are ignored and the lock ID in the LKSB is used to identify the lock.
- *
- * DLM_LKF_VALBLK
- *
- * Requests DLM to return the current contents of the lock value block in the
- * lock status block. When this flag is set in a lock conversion from PW or EX
- * modes, DLM assigns the value specified in the lock status block to the lock
- * value block of the lock resource. The LVB is a DLM_LVB_LEN size array
- * containing application-specific information.
- *
- * DLM_LKF_QUECVT
- *
- * Force a conversion request to be queued, even if it is compatible with
- * the granted modes of other locks on the same resource.
- *
- * DLM_LKF_IVVALBLK
- *
- * Invalidate the lock value block.
- *
- * DLM_LKF_CONVDEADLK
- *
- * Allows the dlm to resolve conversion deadlocks internally by demoting the
- * granted mode of a converting lock to NL. The DLM_SBF_DEMOTED flag is
- * returned for a conversion that's been effected by this.
- *
- * DLM_LKF_PERSISTENT
- *
- * Only relevant to locks originating in userspace. A persistent lock will not
- * be removed if the process holding the lock exits.
- *
- * DLM_LKF_NODLCKWT
- *
- * Do not cancel the lock if it gets into conversion deadlock.
- * Exclude this lock from being monitored due to DLM_LSFL_TIMEWARN.
- *
- * DLM_LKF_NODLCKBLK
- *
- * net yet implemented
- *
- * DLM_LKF_EXPEDITE
- *
- * Used only with new requests for NL mode locks. Tells the lock manager
- * to grant the lock, ignoring other locks in convert and wait queues.
- *
- * DLM_LKF_NOQUEUEBAST
- *
- * Send blocking AST's before returning -EAGAIN to the caller. It is only
- * used along with the NOQUEUE flag. Blocking AST's are not sent for failed
- * NOQUEUE requests otherwise.
- *
- * DLM_LKF_HEADQUE
- *
- * Add a lock to the head of the convert or wait queue rather than the tail.
- *
- * DLM_LKF_NOORDER
- *
- * Disregard the standard grant order rules and grant a lock as soon as it
- * is compatible with other granted locks.
- *
- * DLM_LKF_ORPHAN
- *
- * not yet implemented
- *
- * DLM_LKF_ALTPR
- *
- * If the requested mode cannot be granted immediately, try to grant the lock
- * in PR mode instead. If this alternate mode is granted instead of the
- * requested mode, DLM_SBF_ALTMODE is returned in the lksb.
- *
- * DLM_LKF_ALTCW
- *
- * The same as ALTPR, but the alternate mode is CW.
- *
- * DLM_LKF_FORCEUNLOCK
- *
- * Unlock the lock even if it is converting or waiting or has sublocks.
- * Only really for use by the userland device.c code.
- *
- */
-
-#define DLM_LKF_NOQUEUE 0x00000001
-#define DLM_LKF_CANCEL 0x00000002
-#define DLM_LKF_CONVERT 0x00000004
-#define DLM_LKF_VALBLK 0x00000008
-#define DLM_LKF_QUECVT 0x00000010
-#define DLM_LKF_IVVALBLK 0x00000020
-#define DLM_LKF_CONVDEADLK 0x00000040
-#define DLM_LKF_PERSISTENT 0x00000080
-#define DLM_LKF_NODLCKWT 0x00000100
-#define DLM_LKF_NODLCKBLK 0x00000200
-#define DLM_LKF_EXPEDITE 0x00000400
-#define DLM_LKF_NOQUEUEBAST 0x00000800
-#define DLM_LKF_HEADQUE 0x00001000
-#define DLM_LKF_NOORDER 0x00002000
-#define DLM_LKF_ORPHAN 0x00004000
-#define DLM_LKF_ALTPR 0x00008000
-#define DLM_LKF_ALTCW 0x00010000
-#define DLM_LKF_FORCEUNLOCK 0x00020000
-#define DLM_LKF_TIMEOUT 0x00040000
-
-/*
- * Some return codes that are not in errno.h
- */
-
-#define DLM_ECANCEL 0x10001
-#define DLM_EUNLOCK 0x10002
-
-#endif /* __DLMCONSTANTS_DOT_H__ */
diff --git a/ANDROID_3.4.5/include/linux/dm-dirty-log.h b/ANDROID_3.4.5/include/linux/dm-dirty-log.h
deleted file mode 100644
index 7084503c..00000000
--- a/ANDROID_3.4.5/include/linux/dm-dirty-log.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Copyright (C) 2003 Sistina Software
- * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved.
- *
- * Device-Mapper dirty region log.
- *
- * This file is released under the LGPL.
- */
-
-#ifndef _LINUX_DM_DIRTY_LOG
-#define _LINUX_DM_DIRTY_LOG
-
-#ifdef __KERNEL__
-
-#include <linux/types.h>
-#include <linux/device-mapper.h>
-
-typedef sector_t region_t;
-
-struct dm_dirty_log_type;
-
-struct dm_dirty_log {
- struct dm_dirty_log_type *type;
- int (*flush_callback_fn)(struct dm_target *ti);
- void *context;
-};
-
-struct dm_dirty_log_type {
- const char *name;
- struct module *module;
-
- /* For internal device-mapper use */
- struct list_head list;
-
- int (*ctr)(struct dm_dirty_log *log, struct dm_target *ti,
- unsigned argc, char **argv);
- void (*dtr)(struct dm_dirty_log *log);
-
- /*
- * There are times when we don't want the log to touch
- * the disk.
- */
- int (*presuspend)(struct dm_dirty_log *log);
- int (*postsuspend)(struct dm_dirty_log *log);
- int (*resume)(struct dm_dirty_log *log);
-
- /*
- * Retrieves the smallest size of region that the log can
- * deal with.
- */
- uint32_t (*get_region_size)(struct dm_dirty_log *log);
-
- /*
- * A predicate to say whether a region is clean or not.
- * May block.
- */
- int (*is_clean)(struct dm_dirty_log *log, region_t region);
-
- /*
- * Returns: 0, 1, -EWOULDBLOCK, < 0
- *
- * A predicate function to check the area given by
- * [sector, sector + len) is in sync.
- *
- * If -EWOULDBLOCK is returned the state of the region is
- * unknown, typically this will result in a read being
- * passed to a daemon to deal with, since a daemon is
- * allowed to block.
- */
- int (*in_sync)(struct dm_dirty_log *log, region_t region,
- int can_block);
-
- /*
- * Flush the current log state (eg, to disk). This
- * function may block.
- */
- int (*flush)(struct dm_dirty_log *log);
-
- /*
- * Mark an area as clean or dirty. These functions may
- * block, though for performance reasons blocking should
- * be extremely rare (eg, allocating another chunk of
- * memory for some reason).
- */
- void (*mark_region)(struct dm_dirty_log *log, region_t region);
- void (*clear_region)(struct dm_dirty_log *log, region_t region);
-
- /*
- * Returns: <0 (error), 0 (no region), 1 (region)
- *
- * The mirrord will need perform recovery on regions of
- * the mirror that are in the NOSYNC state. This
- * function asks the log to tell the caller about the
- * next region that this machine should recover.
- *
- * Do not confuse this function with 'in_sync()', one
- * tells you if an area is synchronised, the other
- * assigns recovery work.
- */
- int (*get_resync_work)(struct dm_dirty_log *log, region_t *region);
-
- /*
- * This notifies the log that the resync status of a region
- * has changed. It also clears the region from the recovering
- * list (if present).
- */
- void (*set_region_sync)(struct dm_dirty_log *log,
- region_t region, int in_sync);
-
- /*
- * Returns the number of regions that are in sync.
- */
- region_t (*get_sync_count)(struct dm_dirty_log *log);
-
- /*
- * Support function for mirror status requests.
- */
- int (*status)(struct dm_dirty_log *log, status_type_t status_type,
- char *result, unsigned maxlen);
-
- /*
- * is_remote_recovering is necessary for cluster mirroring. It provides
- * a way to detect recovery on another node, so we aren't writing
- * concurrently. This function is likely to block (when a cluster log
- * is used).
- *
- * Returns: 0, 1
- */
- int (*is_remote_recovering)(struct dm_dirty_log *log, region_t region);
-};
-
-int dm_dirty_log_type_register(struct dm_dirty_log_type *type);
-int dm_dirty_log_type_unregister(struct dm_dirty_log_type *type);
-
-/*
- * Make sure you use these two functions, rather than calling
- * type->constructor/destructor() directly.
- */
-struct dm_dirty_log *dm_dirty_log_create(const char *type_name,
- struct dm_target *ti,
- int (*flush_callback_fn)(struct dm_target *ti),
- unsigned argc, char **argv);
-void dm_dirty_log_destroy(struct dm_dirty_log *log);
-
-#endif /* __KERNEL__ */
-#endif /* _LINUX_DM_DIRTY_LOG_H */
diff --git a/ANDROID_3.4.5/include/linux/dm-io.h b/ANDROID_3.4.5/include/linux/dm-io.h
deleted file mode 100644
index f4b0aa31..00000000
--- a/ANDROID_3.4.5/include/linux/dm-io.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (C) 2003 Sistina Software
- * Copyright (C) 2004 - 2008 Red Hat, Inc. All rights reserved.
- *
- * Device-Mapper low-level I/O.
- *
- * This file is released under the GPL.
- */
-
-#ifndef _LINUX_DM_IO_H
-#define _LINUX_DM_IO_H
-
-#ifdef __KERNEL__
-
-#include <linux/types.h>
-
-struct dm_io_region {
- struct block_device *bdev;
- sector_t sector;
- sector_t count; /* If this is zero the region is ignored. */
-};
-
-struct page_list {
- struct page_list *next;
- struct page *page;
-};
-
-typedef void (*io_notify_fn)(unsigned long error, void *context);
-
-enum dm_io_mem_type {
- DM_IO_PAGE_LIST,/* Page list */
- DM_IO_BVEC, /* Bio vector */
- DM_IO_VMA, /* Virtual memory area */
- DM_IO_KMEM, /* Kernel memory */
-};
-
-struct dm_io_memory {
- enum dm_io_mem_type type;
-
- unsigned offset;
-
- union {
- struct page_list *pl;
- struct bio_vec *bvec;
- void *vma;
- void *addr;
- } ptr;
-};
-
-struct dm_io_notify {
- io_notify_fn fn; /* Callback for asynchronous requests */
- void *context; /* Passed to callback */
-};
-
-/*
- * IO request structure
- */
-struct dm_io_client;
-struct dm_io_request {
- int bi_rw; /* READ|WRITE - not READA */
- struct dm_io_memory mem; /* Memory to use for io */
- struct dm_io_notify notify; /* Synchronous if notify.fn is NULL */
- struct dm_io_client *client; /* Client memory handler */
-};
-
-/*
- * For async io calls, users can alternatively use the dm_io() function below
- * and dm_io_client_create() to create private mempools for the client.
- *
- * Create/destroy may block.
- */
-struct dm_io_client *dm_io_client_create(void);
-void dm_io_client_destroy(struct dm_io_client *client);
-
-/*
- * IO interface using private per-client pools.
- * Each bit in the optional 'sync_error_bits' bitset indicates whether an
- * error occurred doing io to the corresponding region.
- */
-int dm_io(struct dm_io_request *io_req, unsigned num_regions,
- struct dm_io_region *region, unsigned long *sync_error_bits);
-
-#endif /* __KERNEL__ */
-#endif /* _LINUX_DM_IO_H */
diff --git a/ANDROID_3.4.5/include/linux/dm-ioctl.h b/ANDROID_3.4.5/include/linux/dm-ioctl.h
deleted file mode 100644
index 75fd5573..00000000
--- a/ANDROID_3.4.5/include/linux/dm-ioctl.h
+++ /dev/null
@@ -1,337 +0,0 @@
-/*
- * Copyright (C) 2001 - 2003 Sistina Software (UK) Limited.
- * Copyright (C) 2004 - 2009 Red Hat, Inc. All rights reserved.
- *
- * This file is released under the LGPL.
- */
-
-#ifndef _LINUX_DM_IOCTL_V4_H
-#define _LINUX_DM_IOCTL_V4_H
-
-#include <linux/types.h>
-
-#define DM_DIR "mapper" /* Slashes not supported */
-#define DM_CONTROL_NODE "control"
-#define DM_MAX_TYPE_NAME 16
-#define DM_NAME_LEN 128
-#define DM_UUID_LEN 129
-
-/*
- * A traditional ioctl interface for the device mapper.
- *
- * Each device can have two tables associated with it, an
- * 'active' table which is the one currently used by io passing
- * through the device, and an 'inactive' one which is a table
- * that is being prepared as a replacement for the 'active' one.
- *
- * DM_VERSION:
- * Just get the version information for the ioctl interface.
- *
- * DM_REMOVE_ALL:
- * Remove all dm devices, destroy all tables. Only really used
- * for debug.
- *
- * DM_LIST_DEVICES:
- * Get a list of all the dm device names.
- *
- * DM_DEV_CREATE:
- * Create a new device, neither the 'active' or 'inactive' table
- * slots will be filled. The device will be in suspended state
- * after creation, however any io to the device will get errored
- * since it will be out-of-bounds.
- *
- * DM_DEV_REMOVE:
- * Remove a device, destroy any tables.
- *
- * DM_DEV_RENAME:
- * Rename a device or set its uuid if none was previously supplied.
- *
- * DM_SUSPEND:
- * This performs both suspend and resume, depending which flag is
- * passed in.
- * Suspend: This command will not return until all pending io to
- * the device has completed. Further io will be deferred until
- * the device is resumed.
- * Resume: It is no longer an error to issue this command on an
- * unsuspended device. If a table is present in the 'inactive'
- * slot, it will be moved to the active slot, then the old table
- * from the active slot will be _destroyed_. Finally the device
- * is resumed.
- *
- * DM_DEV_STATUS:
- * Retrieves the status for the table in the 'active' slot.
- *
- * DM_DEV_WAIT:
- * Wait for a significant event to occur to the device. This
- * could either be caused by an event triggered by one of the
- * targets of the table in the 'active' slot, or a table change.
- *
- * DM_TABLE_LOAD:
- * Load a table into the 'inactive' slot for the device. The
- * device does _not_ need to be suspended prior to this command.
- *
- * DM_TABLE_CLEAR:
- * Destroy any table in the 'inactive' slot (ie. abort).
- *
- * DM_TABLE_DEPS:
- * Return a set of device dependencies for the 'active' table.
- *
- * DM_TABLE_STATUS:
- * Return the targets status for the 'active' table.
- *
- * DM_TARGET_MSG:
- * Pass a message string to the target at a specific offset of a device.
- *
- * DM_DEV_SET_GEOMETRY:
- * Set the geometry of a device by passing in a string in this format:
- *
- * "cylinders heads sectors_per_track start_sector"
- *
- * Beware that CHS geometry is nearly obsolete and only provided
- * for compatibility with dm devices that can be booted by a PC
- * BIOS. See struct hd_geometry for range limits. Also note that
- * the geometry is erased if the device size changes.
- */
-
-/*
- * All ioctl arguments consist of a single chunk of memory, with
- * this structure at the start. If a uuid is specified any
- * lookup (eg. for a DM_INFO) will be done on that, *not* the
- * name.
- */
-struct dm_ioctl {
- /*
- * The version number is made up of three parts:
- * major - no backward or forward compatibility,
- * minor - only backwards compatible,
- * patch - both backwards and forwards compatible.
- *
- * All clients of the ioctl interface should fill in the
- * version number of the interface that they were
- * compiled with.
- *
- * All recognised ioctl commands (ie. those that don't
- * return -ENOTTY) fill out this field, even if the
- * command failed.
- */
- __u32 version[3]; /* in/out */
- __u32 data_size; /* total size of data passed in
- * including this struct */
-
- __u32 data_start; /* offset to start of data
- * relative to start of this struct */
-
- __u32 target_count; /* in/out */
- __s32 open_count; /* out */
- __u32 flags; /* in/out */
-
- /*
- * event_nr holds either the event number (input and output) or the
- * udev cookie value (input only).
- * The DM_DEV_WAIT ioctl takes an event number as input.
- * The DM_SUSPEND, DM_DEV_REMOVE and DM_DEV_RENAME ioctls
- * use the field as a cookie to return in the DM_COOKIE
- * variable with the uevents they issue.
- * For output, the ioctls return the event number, not the cookie.
- */
- __u32 event_nr; /* in/out */
- __u32 padding;
-
- __u64 dev; /* in/out */
-
- char name[DM_NAME_LEN]; /* device name */
- char uuid[DM_UUID_LEN]; /* unique identifier for
- * the block device */
- char data[7]; /* padding or data */
-};
-
-/*
- * Used to specify tables. These structures appear after the
- * dm_ioctl.
- */
-struct dm_target_spec {
- __u64 sector_start;
- __u64 length;
- __s32 status; /* used when reading from kernel only */
-
- /*
- * Location of the next dm_target_spec.
- * - When specifying targets on a DM_TABLE_LOAD command, this value is
- * the number of bytes from the start of the "current" dm_target_spec
- * to the start of the "next" dm_target_spec.
- * - When retrieving targets on a DM_TABLE_STATUS command, this value
- * is the number of bytes from the start of the first dm_target_spec
- * (that follows the dm_ioctl struct) to the start of the "next"
- * dm_target_spec.
- */
- __u32 next;
-
- char target_type[DM_MAX_TYPE_NAME];
-
- /*
- * Parameter string starts immediately after this object.
- * Be careful to add padding after string to ensure correct
- * alignment of subsequent dm_target_spec.
- */
-};
-
-/*
- * Used to retrieve the target dependencies.
- */
-struct dm_target_deps {
- __u32 count; /* Array size */
- __u32 padding; /* unused */
- __u64 dev[0]; /* out */
-};
-
-/*
- * Used to get a list of all dm devices.
- */
-struct dm_name_list {
- __u64 dev;
- __u32 next; /* offset to the next record from
- the _start_ of this */
- char name[0];
-};
-
-/*
- * Used to retrieve the target versions
- */
-struct dm_target_versions {
- __u32 next;
- __u32 version[3];
-
- char name[0];
-};
-
-/*
- * Used to pass message to a target
- */
-struct dm_target_msg {
- __u64 sector; /* Device sector */
-
- char message[0];
-};
-
-/*
- * If you change this make sure you make the corresponding change
- * to dm-ioctl.c:lookup_ioctl()
- */
-enum {
- /* Top level cmds */
- DM_VERSION_CMD = 0,
- DM_REMOVE_ALL_CMD,
- DM_LIST_DEVICES_CMD,
-
- /* device level cmds */
- DM_DEV_CREATE_CMD,
- DM_DEV_REMOVE_CMD,
- DM_DEV_RENAME_CMD,
- DM_DEV_SUSPEND_CMD,
- DM_DEV_STATUS_CMD,
- DM_DEV_WAIT_CMD,
-
- /* Table level cmds */
- DM_TABLE_LOAD_CMD,
- DM_TABLE_CLEAR_CMD,
- DM_TABLE_DEPS_CMD,
- DM_TABLE_STATUS_CMD,
-
- /* Added later */
- DM_LIST_VERSIONS_CMD,
- DM_TARGET_MSG_CMD,
- DM_DEV_SET_GEOMETRY_CMD
-};
-
-#define DM_IOCTL 0xfd
-
-#define DM_VERSION _IOWR(DM_IOCTL, DM_VERSION_CMD, struct dm_ioctl)
-#define DM_REMOVE_ALL _IOWR(DM_IOCTL, DM_REMOVE_ALL_CMD, struct dm_ioctl)
-#define DM_LIST_DEVICES _IOWR(DM_IOCTL, DM_LIST_DEVICES_CMD, struct dm_ioctl)
-
-#define DM_DEV_CREATE _IOWR(DM_IOCTL, DM_DEV_CREATE_CMD, struct dm_ioctl)
-#define DM_DEV_REMOVE _IOWR(DM_IOCTL, DM_DEV_REMOVE_CMD, struct dm_ioctl)
-#define DM_DEV_RENAME _IOWR(DM_IOCTL, DM_DEV_RENAME_CMD, struct dm_ioctl)
-#define DM_DEV_SUSPEND _IOWR(DM_IOCTL, DM_DEV_SUSPEND_CMD, struct dm_ioctl)
-#define DM_DEV_STATUS _IOWR(DM_IOCTL, DM_DEV_STATUS_CMD, struct dm_ioctl)
-#define DM_DEV_WAIT _IOWR(DM_IOCTL, DM_DEV_WAIT_CMD, struct dm_ioctl)
-
-#define DM_TABLE_LOAD _IOWR(DM_IOCTL, DM_TABLE_LOAD_CMD, struct dm_ioctl)
-#define DM_TABLE_CLEAR _IOWR(DM_IOCTL, DM_TABLE_CLEAR_CMD, struct dm_ioctl)
-#define DM_TABLE_DEPS _IOWR(DM_IOCTL, DM_TABLE_DEPS_CMD, struct dm_ioctl)
-#define DM_TABLE_STATUS _IOWR(DM_IOCTL, DM_TABLE_STATUS_CMD, struct dm_ioctl)
-
-#define DM_LIST_VERSIONS _IOWR(DM_IOCTL, DM_LIST_VERSIONS_CMD, struct dm_ioctl)
-
-#define DM_TARGET_MSG _IOWR(DM_IOCTL, DM_TARGET_MSG_CMD, struct dm_ioctl)
-#define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl)
-
-#define DM_VERSION_MAJOR 4
-#define DM_VERSION_MINOR 22
-#define DM_VERSION_PATCHLEVEL 0
-#define DM_VERSION_EXTRA "-ioctl (2011-10-19)"
-
-/* Status bits */
-#define DM_READONLY_FLAG (1 << 0) /* In/Out */
-#define DM_SUSPEND_FLAG (1 << 1) /* In/Out */
-#define DM_PERSISTENT_DEV_FLAG (1 << 3) /* In */
-
-/*
- * Flag passed into ioctl STATUS command to get table information
- * rather than current status.
- */
-#define DM_STATUS_TABLE_FLAG (1 << 4) /* In */
-
-/*
- * Flags that indicate whether a table is present in either of
- * the two table slots that a device has.
- */
-#define DM_ACTIVE_PRESENT_FLAG (1 << 5) /* Out */
-#define DM_INACTIVE_PRESENT_FLAG (1 << 6) /* Out */
-
-/*
- * Indicates that the buffer passed in wasn't big enough for the
- * results.
- */
-#define DM_BUFFER_FULL_FLAG (1 << 8) /* Out */
-
-/*
- * This flag is now ignored.
- */
-#define DM_SKIP_BDGET_FLAG (1 << 9) /* In */
-
-/*
- * Set this to avoid attempting to freeze any filesystem when suspending.
- */
-#define DM_SKIP_LOCKFS_FLAG (1 << 10) /* In */
-
-/*
- * Set this to suspend without flushing queued ios.
- */
-#define DM_NOFLUSH_FLAG (1 << 11) /* In */
-
-/*
- * If set, any table information returned will relate to the inactive
- * table instead of the live one. Always check DM_INACTIVE_PRESENT_FLAG
- * is set before using the data returned.
- */
-#define DM_QUERY_INACTIVE_TABLE_FLAG (1 << 12) /* In */
-
-/*
- * If set, a uevent was generated for which the caller may need to wait.
- */
-#define DM_UEVENT_GENERATED_FLAG (1 << 13) /* Out */
-
-/*
- * If set, rename changes the uuid not the name. Only permitted
- * if no uuid was previously supplied: an existing uuid cannot be changed.
- */
-#define DM_UUID_FLAG (1 << 14) /* In */
-
-/*
- * If set, all buffers are wiped after use. Use when sending
- * or requesting sensitive data such as an encryption key.
- */
-#define DM_SECURE_DATA_FLAG (1 << 15) /* In */
-
-#endif /* _LINUX_DM_IOCTL_H */
diff --git a/ANDROID_3.4.5/include/linux/dm-kcopyd.h b/ANDROID_3.4.5/include/linux/dm-kcopyd.h
deleted file mode 100644
index 47d9d376..00000000
--- a/ANDROID_3.4.5/include/linux/dm-kcopyd.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (C) 2001 - 2003 Sistina Software
- * Copyright (C) 2004 - 2008 Red Hat, Inc. All rights reserved.
- *
- * kcopyd provides a simple interface for copying an area of one
- * block-device to one or more other block-devices, either synchronous
- * or with an asynchronous completion notification.
- *
- * This file is released under the GPL.
- */
-
-#ifndef _LINUX_DM_KCOPYD_H
-#define _LINUX_DM_KCOPYD_H
-
-#ifdef __KERNEL__
-
-#include <linux/dm-io.h>
-
-/* FIXME: make this configurable */
-#define DM_KCOPYD_MAX_REGIONS 8
-
-#define DM_KCOPYD_IGNORE_ERROR 1
-
-/*
- * To use kcopyd you must first create a dm_kcopyd_client object.
- */
-struct dm_kcopyd_client;
-struct dm_kcopyd_client *dm_kcopyd_client_create(void);
-void dm_kcopyd_client_destroy(struct dm_kcopyd_client *kc);
-
-/*
- * Submit a copy job to kcopyd. This is built on top of the
- * previous three fns.
- *
- * read_err is a boolean,
- * write_err is a bitset, with 1 bit for each destination region
- */
-typedef void (*dm_kcopyd_notify_fn)(int read_err, unsigned long write_err,
- void *context);
-
-int dm_kcopyd_copy(struct dm_kcopyd_client *kc, struct dm_io_region *from,
- unsigned num_dests, struct dm_io_region *dests,
- unsigned flags, dm_kcopyd_notify_fn fn, void *context);
-
-/*
- * Prepare a callback and submit it via the kcopyd thread.
- *
- * dm_kcopyd_prepare_callback allocates a callback structure and returns it.
- * It must not be called from interrupt context.
- * The returned value should be passed into dm_kcopyd_do_callback.
- *
- * dm_kcopyd_do_callback submits the callback.
- * It may be called from interrupt context.
- * The callback is issued from the kcopyd thread.
- */
-void *dm_kcopyd_prepare_callback(struct dm_kcopyd_client *kc,
- dm_kcopyd_notify_fn fn, void *context);
-void dm_kcopyd_do_callback(void *job, int read_err, unsigned long write_err);
-
-int dm_kcopyd_zero(struct dm_kcopyd_client *kc,
- unsigned num_dests, struct dm_io_region *dests,
- unsigned flags, dm_kcopyd_notify_fn fn, void *context);
-
-#endif /* __KERNEL__ */
-#endif /* _LINUX_DM_KCOPYD_H */
diff --git a/ANDROID_3.4.5/include/linux/dm-log-userspace.h b/ANDROID_3.4.5/include/linux/dm-log-userspace.h
deleted file mode 100644
index 0678c2ad..00000000
--- a/ANDROID_3.4.5/include/linux/dm-log-userspace.h
+++ /dev/null
@@ -1,416 +0,0 @@
-/*
- * Copyright (C) 2006-2009 Red Hat, Inc.
- *
- * This file is released under the LGPL.
- */
-
-#ifndef __DM_LOG_USERSPACE_H__
-#define __DM_LOG_USERSPACE_H__
-
-#include <linux/dm-ioctl.h> /* For DM_UUID_LEN */
-
-/*
- * The device-mapper userspace log module consists of a kernel component and
- * a user-space component. The kernel component implements the API defined
- * in dm-dirty-log.h. Its purpose is simply to pass the parameters and
- * return values of those API functions between kernel and user-space.
- *
- * Below are defined the 'request_types' - DM_ULOG_CTR, DM_ULOG_DTR, etc.
- * These request types represent the different functions in the device-mapper
- * dirty log API. Each of these is described in more detail below.
- *
- * The user-space program must listen for requests from the kernel (representing
- * the various API functions) and process them.
- *
- * User-space begins by setting up the communication link (error checking
- * removed for clarity):
- * fd = socket(PF_NETLINK, SOCK_DGRAM, NETLINK_CONNECTOR);
- * addr.nl_family = AF_NETLINK;
- * addr.nl_groups = CN_IDX_DM;
- * addr.nl_pid = 0;
- * r = bind(fd, (struct sockaddr *) &addr, sizeof(addr));
- * opt = addr.nl_groups;
- * setsockopt(fd, SOL_NETLINK, NETLINK_ADD_MEMBERSHIP, &opt, sizeof(opt));
- *
- * User-space will then wait to receive requests form the kernel, which it
- * will process as described below. The requests are received in the form,
- * ((struct dm_ulog_request) + (additional data)). Depending on the request
- * type, there may or may not be 'additional data'. In the descriptions below,
- * you will see 'Payload-to-userspace' and 'Payload-to-kernel'. The
- * 'Payload-to-userspace' is what the kernel sends in 'additional data' as
- * necessary parameters to complete the request. The 'Payload-to-kernel' is
- * the 'additional data' returned to the kernel that contains the necessary
- * results of the request. The 'data_size' field in the dm_ulog_request
- * structure denotes the availability and amount of payload data.
- */
-
-/*
- * DM_ULOG_CTR corresponds to (found in dm-dirty-log.h):
- * int (*ctr)(struct dm_dirty_log *log, struct dm_target *ti,
- * unsigned argc, char **argv);
- *
- * Payload-to-userspace:
- * A single string containing all the argv arguments separated by ' 's
- * Payload-to-kernel:
- * A NUL-terminated string that is the name of the device that is used
- * as the backing store for the log data. 'dm_get_device' will be called
- * on this device. ('dm_put_device' will be called on this device
- * automatically after calling DM_ULOG_DTR.) If there is no device needed
- * for log data, 'data_size' in the dm_ulog_request struct should be 0.
- *
- * The UUID contained in the dm_ulog_request structure is the reference that
- * will be used by all request types to a specific log. The constructor must
- * record this association with the instance created.
- *
- * When the request has been processed, user-space must return the
- * dm_ulog_request to the kernel - setting the 'error' field, filling the
- * data field with the log device if necessary, and setting 'data_size'
- * appropriately.
- */
-#define DM_ULOG_CTR 1
-
-/*
- * DM_ULOG_DTR corresponds to (found in dm-dirty-log.h):
- * void (*dtr)(struct dm_dirty_log *log);
- *
- * Payload-to-userspace:
- * A single string containing all the argv arguments separated by ' 's
- * Payload-to-kernel:
- * None. ('data_size' in the dm_ulog_request struct should be 0.)
- *
- * The UUID contained in the dm_ulog_request structure is all that is
- * necessary to identify the log instance being destroyed. There is no
- * payload data.
- *
- * When the request has been processed, user-space must return the
- * dm_ulog_request to the kernel - setting the 'error' field and clearing
- * 'data_size' appropriately.
- */
-#define DM_ULOG_DTR 2
-
-/*
- * DM_ULOG_PRESUSPEND corresponds to (found in dm-dirty-log.h):
- * int (*presuspend)(struct dm_dirty_log *log);
- *
- * Payload-to-userspace:
- * None.
- * Payload-to-kernel:
- * None.
- *
- * The UUID contained in the dm_ulog_request structure is all that is
- * necessary to identify the log instance being presuspended. There is no
- * payload data.
- *
- * When the request has been processed, user-space must return the
- * dm_ulog_request to the kernel - setting the 'error' field and
- * 'data_size' appropriately.
- */
-#define DM_ULOG_PRESUSPEND 3
-
-/*
- * DM_ULOG_POSTSUSPEND corresponds to (found in dm-dirty-log.h):
- * int (*postsuspend)(struct dm_dirty_log *log);
- *
- * Payload-to-userspace:
- * None.
- * Payload-to-kernel:
- * None.
- *
- * The UUID contained in the dm_ulog_request structure is all that is
- * necessary to identify the log instance being postsuspended. There is no
- * payload data.
- *
- * When the request has been processed, user-space must return the
- * dm_ulog_request to the kernel - setting the 'error' field and
- * 'data_size' appropriately.
- */
-#define DM_ULOG_POSTSUSPEND 4
-
-/*
- * DM_ULOG_RESUME corresponds to (found in dm-dirty-log.h):
- * int (*resume)(struct dm_dirty_log *log);
- *
- * Payload-to-userspace:
- * None.
- * Payload-to-kernel:
- * None.
- *
- * The UUID contained in the dm_ulog_request structure is all that is
- * necessary to identify the log instance being resumed. There is no
- * payload data.
- *
- * When the request has been processed, user-space must return the
- * dm_ulog_request to the kernel - setting the 'error' field and
- * 'data_size' appropriately.
- */
-#define DM_ULOG_RESUME 5
-
-/*
- * DM_ULOG_GET_REGION_SIZE corresponds to (found in dm-dirty-log.h):
- * uint32_t (*get_region_size)(struct dm_dirty_log *log);
- *
- * Payload-to-userspace:
- * None.
- * Payload-to-kernel:
- * uint64_t - contains the region size
- *
- * The region size is something that was determined at constructor time.
- * It is returned in the payload area and 'data_size' is set to
- * reflect this.
- *
- * When the request has been processed, user-space must return the
- * dm_ulog_request to the kernel - setting the 'error' field appropriately.
- */
-#define DM_ULOG_GET_REGION_SIZE 6
-
-/*
- * DM_ULOG_IS_CLEAN corresponds to (found in dm-dirty-log.h):
- * int (*is_clean)(struct dm_dirty_log *log, region_t region);
- *
- * Payload-to-userspace:
- * uint64_t - the region to get clean status on
- * Payload-to-kernel:
- * int64_t - 1 if clean, 0 otherwise
- *
- * Payload is sizeof(uint64_t) and contains the region for which the clean
- * status is being made.
- *
- * When the request has been processed, user-space must return the
- * dm_ulog_request to the kernel - filling the payload with 0 (not clean) or
- * 1 (clean), setting 'data_size' and 'error' appropriately.
- */
-#define DM_ULOG_IS_CLEAN 7
-
-/*
- * DM_ULOG_IN_SYNC corresponds to (found in dm-dirty-log.h):
- * int (*in_sync)(struct dm_dirty_log *log, region_t region,
- * int can_block);
- *
- * Payload-to-userspace:
- * uint64_t - the region to get sync status on
- * Payload-to-kernel:
- * int64_t - 1 if in-sync, 0 otherwise
- *
- * Exactly the same as 'is_clean' above, except this time asking "has the
- * region been recovered?" vs. "is the region not being modified?"
- */
-#define DM_ULOG_IN_SYNC 8
-
-/*
- * DM_ULOG_FLUSH corresponds to (found in dm-dirty-log.h):
- * int (*flush)(struct dm_dirty_log *log);
- *
- * Payload-to-userspace:
- * None.
- * Payload-to-kernel:
- * None.
- *
- * No incoming or outgoing payload. Simply flush log state to disk.
- *
- * When the request has been processed, user-space must return the
- * dm_ulog_request to the kernel - setting the 'error' field and clearing
- * 'data_size' appropriately.
- */
-#define DM_ULOG_FLUSH 9
-
-/*
- * DM_ULOG_MARK_REGION corresponds to (found in dm-dirty-log.h):
- * void (*mark_region)(struct dm_dirty_log *log, region_t region);
- *
- * Payload-to-userspace:
- * uint64_t [] - region(s) to mark
- * Payload-to-kernel:
- * None.
- *
- * Incoming payload contains the one or more regions to mark dirty.
- * The number of regions contained in the payload can be determined from
- * 'data_size/sizeof(uint64_t)'.
- *
- * When the request has been processed, user-space must return the
- * dm_ulog_request to the kernel - setting the 'error' field and clearing
- * 'data_size' appropriately.
- */
-#define DM_ULOG_MARK_REGION 10
-
-/*
- * DM_ULOG_CLEAR_REGION corresponds to (found in dm-dirty-log.h):
- * void (*clear_region)(struct dm_dirty_log *log, region_t region);
- *
- * Payload-to-userspace:
- * uint64_t [] - region(s) to clear
- * Payload-to-kernel:
- * None.
- *
- * Incoming payload contains the one or more regions to mark clean.
- * The number of regions contained in the payload can be determined from
- * 'data_size/sizeof(uint64_t)'.
- *
- * When the request has been processed, user-space must return the
- * dm_ulog_request to the kernel - setting the 'error' field and clearing
- * 'data_size' appropriately.
- */
-#define DM_ULOG_CLEAR_REGION 11
-
-/*
- * DM_ULOG_GET_RESYNC_WORK corresponds to (found in dm-dirty-log.h):
- * int (*get_resync_work)(struct dm_dirty_log *log, region_t *region);
- *
- * Payload-to-userspace:
- * None.
- * Payload-to-kernel:
- * {
- * int64_t i; -- 1 if recovery necessary, 0 otherwise
- * uint64_t r; -- The region to recover if i=1
- * }
- * 'data_size' should be set appropriately.
- *
- * When the request has been processed, user-space must return the
- * dm_ulog_request to the kernel - setting the 'error' field appropriately.
- */
-#define DM_ULOG_GET_RESYNC_WORK 12
-
-/*
- * DM_ULOG_SET_REGION_SYNC corresponds to (found in dm-dirty-log.h):
- * void (*set_region_sync)(struct dm_dirty_log *log,
- * region_t region, int in_sync);
- *
- * Payload-to-userspace:
- * {
- * uint64_t - region to set sync state on
- * int64_t - 0 if not-in-sync, 1 if in-sync
- * }
- * Payload-to-kernel:
- * None.
- *
- * When the request has been processed, user-space must return the
- * dm_ulog_request to the kernel - setting the 'error' field and clearing
- * 'data_size' appropriately.
- */
-#define DM_ULOG_SET_REGION_SYNC 13
-
-/*
- * DM_ULOG_GET_SYNC_COUNT corresponds to (found in dm-dirty-log.h):
- * region_t (*get_sync_count)(struct dm_dirty_log *log);
- *
- * Payload-to-userspace:
- * None.
- * Payload-to-kernel:
- * uint64_t - the number of in-sync regions
- *
- * No incoming payload. Kernel-bound payload contains the number of
- * regions that are in-sync (in a size_t).
- *
- * When the request has been processed, user-space must return the
- * dm_ulog_request to the kernel - setting the 'error' field and
- * 'data_size' appropriately.
- */
-#define DM_ULOG_GET_SYNC_COUNT 14
-
-/*
- * DM_ULOG_STATUS_INFO corresponds to (found in dm-dirty-log.h):
- * int (*status)(struct dm_dirty_log *log, STATUSTYPE_INFO,
- * char *result, unsigned maxlen);
- *
- * Payload-to-userspace:
- * None.
- * Payload-to-kernel:
- * Character string containing STATUSTYPE_INFO
- *
- * When the request has been processed, user-space must return the
- * dm_ulog_request to the kernel - setting the 'error' field and
- * 'data_size' appropriately.
- */
-#define DM_ULOG_STATUS_INFO 15
-
-/*
- * DM_ULOG_STATUS_TABLE corresponds to (found in dm-dirty-log.h):
- * int (*status)(struct dm_dirty_log *log, STATUSTYPE_TABLE,
- * char *result, unsigned maxlen);
- *
- * Payload-to-userspace:
- * None.
- * Payload-to-kernel:
- * Character string containing STATUSTYPE_TABLE
- *
- * When the request has been processed, user-space must return the
- * dm_ulog_request to the kernel - setting the 'error' field and
- * 'data_size' appropriately.
- */
-#define DM_ULOG_STATUS_TABLE 16
-
-/*
- * DM_ULOG_IS_REMOTE_RECOVERING corresponds to (found in dm-dirty-log.h):
- * int (*is_remote_recovering)(struct dm_dirty_log *log, region_t region);
- *
- * Payload-to-userspace:
- * uint64_t - region to determine recovery status on
- * Payload-to-kernel:
- * {
- * int64_t is_recovering; -- 0 if no, 1 if yes
- * uint64_t in_sync_hint; -- lowest region still needing resync
- * }
- *
- * When the request has been processed, user-space must return the
- * dm_ulog_request to the kernel - setting the 'error' field and
- * 'data_size' appropriately.
- */
-#define DM_ULOG_IS_REMOTE_RECOVERING 17
-
-/*
- * (DM_ULOG_REQUEST_MASK & request_type) to get the request type
- *
- * Payload-to-userspace:
- * A single string containing all the argv arguments separated by ' 's
- * Payload-to-kernel:
- * None. ('data_size' in the dm_ulog_request struct should be 0.)
- *
- * We are reserving 8 bits of the 32-bit 'request_type' field for the
- * various request types above. The remaining 24-bits are currently
- * set to zero and are reserved for future use and compatibility concerns.
- *
- * User-space should always use DM_ULOG_REQUEST_TYPE to acquire the
- * request type from the 'request_type' field to maintain forward compatibility.
- */
-#define DM_ULOG_REQUEST_MASK 0xFF
-#define DM_ULOG_REQUEST_TYPE(request_type) \
- (DM_ULOG_REQUEST_MASK & (request_type))
-
-/*
- * DM_ULOG_REQUEST_VERSION is incremented when there is a
- * change to the way information is passed between kernel
- * and userspace. This could be a structure change of
- * dm_ulog_request or a change in the way requests are
- * issued/handled. Changes are outlined here:
- * version 1: Initial implementation
- * version 2: DM_ULOG_CTR allowed to return a string containing a
- * device name that is to be registered with DM via
- * 'dm_get_device'.
- */
-#define DM_ULOG_REQUEST_VERSION 2
-
-struct dm_ulog_request {
- /*
- * The local unique identifier (luid) and the universally unique
- * identifier (uuid) are used to tie a request to a specific
- * mirror log. A single machine log could probably make due with
- * just the 'luid', but a cluster-aware log must use the 'uuid' and
- * the 'luid'. The uuid is what is required for node to node
- * communication concerning a particular log, but the 'luid' helps
- * differentiate between logs that are being swapped and have the
- * same 'uuid'. (Think "live" and "inactive" device-mapper tables.)
- */
- uint64_t luid;
- char uuid[DM_UUID_LEN];
- char padding[3]; /* Padding because DM_UUID_LEN = 129 */
-
- uint32_t version; /* See DM_ULOG_REQUEST_VERSION */
- int32_t error; /* Used to report back processing errors */
-
- uint32_t seq; /* Sequence number for request */
- uint32_t request_type; /* DM_ULOG_* defined above */
- uint32_t data_size; /* How much data (not including this struct) */
-
- char data[0];
-};
-
-#endif /* __DM_LOG_USERSPACE_H__ */
diff --git a/ANDROID_3.4.5/include/linux/dm-region-hash.h b/ANDROID_3.4.5/include/linux/dm-region-hash.h
deleted file mode 100644
index 9e2a7a40..00000000
--- a/ANDROID_3.4.5/include/linux/dm-region-hash.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * 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);
-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_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_mark_nosync(struct dm_region_hash *rh, struct bio *bio);
-
-/*
- * 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/ANDROID_3.4.5/include/linux/dm9000.h b/ANDROID_3.4.5/include/linux/dm9000.h
deleted file mode 100644
index 96e87693..00000000
--- a/ANDROID_3.4.5/include/linux/dm9000.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* include/linux/dm9000.h
- *
- * Copyright (c) 2004 Simtec Electronics
- * Ben Dooks <ben@simtec.co.uk>
- *
- * Header file for dm9000 platform data
- *
- * 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.
- *
-*/
-
-#ifndef __DM9000_PLATFORM_DATA
-#define __DM9000_PLATFORM_DATA __FILE__
-
-/* IO control flags */
-
-#define DM9000_PLATF_8BITONLY (0x0001)
-#define DM9000_PLATF_16BITONLY (0x0002)
-#define DM9000_PLATF_32BITONLY (0x0004)
-#define DM9000_PLATF_EXT_PHY (0x0008)
-#define DM9000_PLATF_NO_EEPROM (0x0010)
-#define DM9000_PLATF_SIMPLE_PHY (0x0020) /* Use NSR to find LinkStatus */
-
-/* platform data for platform device structure's platform_data field */
-
-struct dm9000_plat_data {
- unsigned int flags;
- unsigned char dev_addr[6];
-
- /* allow replacement IO routines */
-
- void (*inblk)(void __iomem *reg, void *data, int len);
- void (*outblk)(void __iomem *reg, void *data, int len);
- void (*dumpblk)(void __iomem *reg, int len);
-};
-
-#endif /* __DM9000_PLATFORM_DATA */
-
diff --git a/ANDROID_3.4.5/include/linux/dma-attrs.h b/ANDROID_3.4.5/include/linux/dma-attrs.h
deleted file mode 100644
index 547ab568..00000000
--- a/ANDROID_3.4.5/include/linux/dma-attrs.h
+++ /dev/null
@@ -1,77 +0,0 @@
-#ifndef _DMA_ATTR_H
-#define _DMA_ATTR_H
-
-#include <linux/bitmap.h>
-#include <linux/bitops.h>
-#include <linux/bug.h>
-
-/**
- * an enum dma_attr represents an attribute associated with a DMA
- * mapping. The semantics of each attribute should be defined in
- * Documentation/DMA-attributes.txt.
- */
-enum dma_attr {
- DMA_ATTR_WRITE_BARRIER,
- DMA_ATTR_WEAK_ORDERING,
- DMA_ATTR_WRITE_COMBINE,
- DMA_ATTR_NON_CONSISTENT,
- DMA_ATTR_MAX,
-};
-
-#define __DMA_ATTRS_LONGS BITS_TO_LONGS(DMA_ATTR_MAX)
-
-/**
- * struct dma_attrs - an opaque container for DMA attributes
- * @flags - bitmask representing a collection of enum dma_attr
- */
-struct dma_attrs {
- unsigned long flags[__DMA_ATTRS_LONGS];
-};
-
-#define DEFINE_DMA_ATTRS(x) \
- struct dma_attrs x = { \
- .flags = { [0 ... __DMA_ATTRS_LONGS-1] = 0 }, \
- }
-
-static inline void init_dma_attrs(struct dma_attrs *attrs)
-{
- bitmap_zero(attrs->flags, __DMA_ATTRS_LONGS);
-}
-
-#ifdef CONFIG_HAVE_DMA_ATTRS
-/**
- * dma_set_attr - set a specific attribute
- * @attr: attribute to set
- * @attrs: struct dma_attrs (may be NULL)
- */
-static inline void dma_set_attr(enum dma_attr attr, struct dma_attrs *attrs)
-{
- if (attrs == NULL)
- return;
- BUG_ON(attr >= DMA_ATTR_MAX);
- __set_bit(attr, attrs->flags);
-}
-
-/**
- * dma_get_attr - check for a specific attribute
- * @attr: attribute to set
- * @attrs: struct dma_attrs (may be NULL)
- */
-static inline int dma_get_attr(enum dma_attr attr, struct dma_attrs *attrs)
-{
- if (attrs == NULL)
- return 0;
- BUG_ON(attr >= DMA_ATTR_MAX);
- return test_bit(attr, attrs->flags);
-}
-#else /* !CONFIG_HAVE_DMA_ATTRS */
-static inline void dma_set_attr(enum dma_attr attr, struct dma_attrs *attrs)
-{
-}
-
-static inline int dma_get_attr(enum dma_attr attr, struct dma_attrs *attrs)
-{
- return 0;
-}
-#endif /* CONFIG_HAVE_DMA_ATTRS */
-#endif /* _DMA_ATTR_H */
diff --git a/ANDROID_3.4.5/include/linux/dma-buf.h b/ANDROID_3.4.5/include/linux/dma-buf.h
deleted file mode 100644
index 1f78d159..00000000
--- a/ANDROID_3.4.5/include/linux/dma-buf.h
+++ /dev/null
@@ -1,269 +0,0 @@
-/*
- * Header file for dma buffer sharing framework.
- *
- * Copyright(C) 2011 Linaro Limited. All rights reserved.
- * Author: Sumit Semwal <sumit.semwal@ti.com>
- *
- * Many thanks to linaro-mm-sig list, and specially
- * Arnd Bergmann <arnd@arndb.de>, Rob Clark <rob@ti.com> and
- * Daniel Vetter <daniel@ffwll.ch> for their support in creation and
- * refining of this idea.
- *
- * 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.
- *
- * 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, see <http://www.gnu.org/licenses/>.
- */
-#ifndef __DMA_BUF_H__
-#define __DMA_BUF_H__
-
-#include <linux/file.h>
-#include <linux/err.h>
-#include <linux/scatterlist.h>
-#include <linux/list.h>
-#include <linux/dma-mapping.h>
-#include <linux/fs.h>
-
-struct device;
-struct dma_buf;
-struct dma_buf_attachment;
-
-/**
- * struct dma_buf_ops - operations possible on struct dma_buf
- * @attach: [optional] allows different devices to 'attach' themselves to the
- * given buffer. It might return -EBUSY to signal that backing storage
- * is already allocated and incompatible with the requirements
- * of requesting device.
- * @detach: [optional] detach a given device from this buffer.
- * @map_dma_buf: returns list of scatter pages allocated, increases usecount
- * of the buffer. Requires atleast one attach to be called
- * before. Returned sg list should already be mapped into
- * _device_ address space. This call may sleep. May also return
- * -EINTR. Should return -EINVAL if attach hasn't been called yet.
- * @unmap_dma_buf: decreases usecount of buffer, might deallocate scatter
- * pages.
- * @release: release this buffer; to be called after the last dma_buf_put.
- * @begin_cpu_access: [optional] called before cpu access to invalidate cpu
- * caches and allocate backing storage (if not yet done)
- * respectively pin the objet into memory.
- * @end_cpu_access: [optional] called after cpu access to flush cashes.
- * @kmap_atomic: maps a page from the buffer into kernel address
- * space, users may not block until the subsequent unmap call.
- * This callback must not sleep.
- * @kunmap_atomic: [optional] unmaps a atomically mapped page from the buffer.
- * This Callback must not sleep.
- * @kmap: maps a page from the buffer into kernel address space.
- * @kunmap: [optional] unmaps a page from the buffer.
- * @mmap: used to expose the backing storage to userspace. Note that the
- * mapping needs to be coherent - if the exporter doesn't directly
- * support this, it needs to fake coherency by shooting down any ptes
- * when transitioning away from the cpu domain.
- */
-struct dma_buf_ops {
- int (*attach)(struct dma_buf *, struct device *,
- struct dma_buf_attachment *);
-
- void (*detach)(struct dma_buf *, struct dma_buf_attachment *);
-
- /* For {map,unmap}_dma_buf below, any specific buffer attributes
- * required should get added to device_dma_parameters accessible
- * via dev->dma_params.
- */
- struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *,
- enum dma_data_direction);
- void (*unmap_dma_buf)(struct dma_buf_attachment *,
- struct sg_table *,
- enum dma_data_direction);
- /* TODO: Add try_map_dma_buf version, to return immed with -EBUSY
- * if the call would block.
- */
-
- /* after final dma_buf_put() */
- void (*release)(struct dma_buf *);
-
- int (*begin_cpu_access)(struct dma_buf *, size_t, size_t,
- enum dma_data_direction);
- void (*end_cpu_access)(struct dma_buf *, size_t, size_t,
- enum dma_data_direction);
- void *(*kmap_atomic)(struct dma_buf *, unsigned long);
- void (*kunmap_atomic)(struct dma_buf *, unsigned long, void *);
- void *(*kmap)(struct dma_buf *, unsigned long);
- void (*kunmap)(struct dma_buf *, unsigned long, void *);
-
- int (*mmap)(struct dma_buf *, struct vm_area_struct *vma);
-};
-
-/**
- * struct dma_buf - shared buffer object
- * @size: size of the buffer
- * @file: file pointer used for sharing buffers across, and for refcounting.
- * @attachments: list of dma_buf_attachment that denotes all devices attached.
- * @ops: dma_buf_ops associated with this buffer object.
- * @priv: exporter specific private data for this buffer object.
- */
-struct dma_buf {
- size_t size;
- struct file *file;
- struct list_head attachments;
- const struct dma_buf_ops *ops;
- /* mutex to serialize list manipulation and attach/detach */
- struct mutex lock;
- void *priv;
-};
-
-/**
- * struct dma_buf_attachment - holds device-buffer attachment data
- * @dmabuf: buffer for this attachment.
- * @dev: device attached to the buffer.
- * @node: list of dma_buf_attachment.
- * @priv: exporter specific attachment data.
- *
- * This structure holds the attachment information between the dma_buf buffer
- * and its user device(s). The list contains one attachment struct per device
- * attached to the buffer.
- */
-struct dma_buf_attachment {
- struct dma_buf *dmabuf;
- struct device *dev;
- struct list_head node;
- void *priv;
-};
-
-/**
- * get_dma_buf - convenience wrapper for get_file.
- * @dmabuf: [in] pointer to dma_buf
- *
- * Increments the reference count on the dma-buf, needed in case of drivers
- * that either need to create additional references to the dmabuf on the
- * kernel side. For example, an exporter that needs to keep a dmabuf ptr
- * so that subsequent exports don't create a new dmabuf.
- */
-static inline void get_dma_buf(struct dma_buf *dmabuf)
-{
- get_file(dmabuf->file);
-}
-
-#ifdef CONFIG_DMA_SHARED_BUFFER
-struct dma_buf_attachment *dma_buf_attach(struct dma_buf *dmabuf,
- struct device *dev);
-void dma_buf_detach(struct dma_buf *dmabuf,
- struct dma_buf_attachment *dmabuf_attach);
-struct dma_buf *dma_buf_export(void *priv, const struct dma_buf_ops *ops,
- size_t size, int flags);
-int dma_buf_fd(struct dma_buf *dmabuf, int flags);
-struct dma_buf *dma_buf_get(int fd);
-void dma_buf_put(struct dma_buf *dmabuf);
-
-struct sg_table *dma_buf_map_attachment(struct dma_buf_attachment *,
- enum dma_data_direction);
-void dma_buf_unmap_attachment(struct dma_buf_attachment *, struct sg_table *,
- enum dma_data_direction);
-int dma_buf_begin_cpu_access(struct dma_buf *dma_buf, size_t start, size_t len,
- enum dma_data_direction dir);
-void dma_buf_end_cpu_access(struct dma_buf *dma_buf, size_t start, size_t len,
- enum dma_data_direction dir);
-void *dma_buf_kmap_atomic(struct dma_buf *, unsigned long);
-void dma_buf_kunmap_atomic(struct dma_buf *, unsigned long, void *);
-void *dma_buf_kmap(struct dma_buf *, unsigned long);
-void dma_buf_kunmap(struct dma_buf *, unsigned long, void *);
-
-int dma_buf_mmap(struct dma_buf *, struct vm_area_struct *,
- unsigned long);
-#else
-
-static inline struct dma_buf_attachment *dma_buf_attach(struct dma_buf *dmabuf,
- struct device *dev)
-{
- return ERR_PTR(-ENODEV);
-}
-
-static inline void dma_buf_detach(struct dma_buf *dmabuf,
- struct dma_buf_attachment *dmabuf_attach)
-{
- return;
-}
-
-static inline struct dma_buf *dma_buf_export(void *priv,
- const struct dma_buf_ops *ops,
- size_t size, int flags)
-{
- return ERR_PTR(-ENODEV);
-}
-
-static inline int dma_buf_fd(struct dma_buf *dmabuf, int flags)
-{
- return -ENODEV;
-}
-
-static inline struct dma_buf *dma_buf_get(int fd)
-{
- return ERR_PTR(-ENODEV);
-}
-
-static inline void dma_buf_put(struct dma_buf *dmabuf)
-{
- return;
-}
-
-static inline struct sg_table *dma_buf_map_attachment(
- struct dma_buf_attachment *attach, enum dma_data_direction write)
-{
- return ERR_PTR(-ENODEV);
-}
-
-static inline void dma_buf_unmap_attachment(struct dma_buf_attachment *attach,
- struct sg_table *sg, enum dma_data_direction dir)
-{
- return;
-}
-
-static inline int dma_buf_begin_cpu_access(struct dma_buf *dmabuf,
- size_t start, size_t len,
- enum dma_data_direction dir)
-{
- return -ENODEV;
-}
-
-static inline void dma_buf_end_cpu_access(struct dma_buf *dmabuf,
- size_t start, size_t len,
- enum dma_data_direction dir)
-{
-}
-
-static inline void *dma_buf_kmap_atomic(struct dma_buf *dmabuf,
- unsigned long pnum)
-{
- return NULL;
-}
-
-static inline void dma_buf_kunmap_atomic(struct dma_buf *dmabuf,
- unsigned long pnum, void *vaddr)
-{
-}
-
-static inline void *dma_buf_kmap(struct dma_buf *dmabuf, unsigned long pnum)
-{
- return NULL;
-}
-
-static inline void dma_buf_kunmap(struct dma_buf *dmabuf,
- unsigned long pnum, void *vaddr)
-{
-}
-
-static inline int dma_buf_mmap(struct dma_buf *dmabuf,
- struct vm_area_struct *vma,
- unsigned long pgoff)
-{
- return -ENODEV;
-}
-#endif /* CONFIG_DMA_SHARED_BUFFER */
-
-#endif /* __DMA_BUF_H__ */
diff --git a/ANDROID_3.4.5/include/linux/dma-debug.h b/ANDROID_3.4.5/include/linux/dma-debug.h
deleted file mode 100644
index 171ad8ae..00000000
--- a/ANDROID_3.4.5/include/linux/dma-debug.h
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * Copyright (C) 2008 Advanced Micro Devices, Inc.
- *
- * Author: Joerg Roedel <joerg.roedel@amd.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.
- *
- * 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
- */
-
-#ifndef __DMA_DEBUG_H
-#define __DMA_DEBUG_H
-
-#include <linux/types.h>
-
-struct device;
-struct scatterlist;
-struct bus_type;
-
-#ifdef CONFIG_DMA_API_DEBUG
-
-extern void dma_debug_add_bus(struct bus_type *bus);
-
-extern void dma_debug_init(u32 num_entries);
-
-extern int dma_debug_resize_entries(u32 num_entries);
-
-extern void debug_dma_map_page(struct device *dev, struct page *page,
- size_t offset, size_t size,
- int direction, dma_addr_t dma_addr,
- bool map_single);
-
-extern void debug_dma_unmap_page(struct device *dev, dma_addr_t addr,
- size_t size, int direction, bool map_single);
-
-extern void debug_dma_map_sg(struct device *dev, struct scatterlist *sg,
- int nents, int mapped_ents, int direction);
-
-extern void debug_dma_unmap_sg(struct device *dev, struct scatterlist *sglist,
- int nelems, int dir);
-
-extern void debug_dma_alloc_coherent(struct device *dev, size_t size,
- dma_addr_t dma_addr, void *virt);
-
-extern void debug_dma_free_coherent(struct device *dev, size_t size,
- void *virt, dma_addr_t addr);
-
-extern void debug_dma_sync_single_for_cpu(struct device *dev,
- dma_addr_t dma_handle, size_t size,
- int direction);
-
-extern void debug_dma_sync_single_for_device(struct device *dev,
- dma_addr_t dma_handle,
- size_t size, int direction);
-
-extern void debug_dma_sync_single_range_for_cpu(struct device *dev,
- dma_addr_t dma_handle,
- unsigned long offset,
- size_t size,
- int direction);
-
-extern void debug_dma_sync_single_range_for_device(struct device *dev,
- dma_addr_t dma_handle,
- unsigned long offset,
- size_t size, int direction);
-
-extern void debug_dma_sync_sg_for_cpu(struct device *dev,
- struct scatterlist *sg,
- int nelems, int direction);
-
-extern void debug_dma_sync_sg_for_device(struct device *dev,
- struct scatterlist *sg,
- int nelems, int direction);
-
-extern void debug_dma_dump_mappings(struct device *dev);
-
-#else /* CONFIG_DMA_API_DEBUG */
-
-static inline void dma_debug_add_bus(struct bus_type *bus)
-{
-}
-
-static inline void dma_debug_init(u32 num_entries)
-{
-}
-
-static inline int dma_debug_resize_entries(u32 num_entries)
-{
- return 0;
-}
-
-static inline void debug_dma_map_page(struct device *dev, struct page *page,
- size_t offset, size_t size,
- int direction, dma_addr_t dma_addr,
- bool map_single)
-{
-}
-
-static inline void debug_dma_unmap_page(struct device *dev, dma_addr_t addr,
- size_t size, int direction,
- bool map_single)
-{
-}
-
-static inline void debug_dma_map_sg(struct device *dev, struct scatterlist *sg,
- int nents, int mapped_ents, int direction)
-{
-}
-
-static inline void debug_dma_unmap_sg(struct device *dev,
- struct scatterlist *sglist,
- int nelems, int dir)
-{
-}
-
-static inline void debug_dma_alloc_coherent(struct device *dev, size_t size,
- dma_addr_t dma_addr, void *virt)
-{
-}
-
-static inline void debug_dma_free_coherent(struct device *dev, size_t size,
- void *virt, dma_addr_t addr)
-{
-}
-
-static inline void debug_dma_sync_single_for_cpu(struct device *dev,
- dma_addr_t dma_handle,
- size_t size, int direction)
-{
-}
-
-static inline void debug_dma_sync_single_for_device(struct device *dev,
- dma_addr_t dma_handle,
- size_t size, int direction)
-{
-}
-
-static inline void debug_dma_sync_single_range_for_cpu(struct device *dev,
- dma_addr_t dma_handle,
- unsigned long offset,
- size_t size,
- int direction)
-{
-}
-
-static inline void debug_dma_sync_single_range_for_device(struct device *dev,
- dma_addr_t dma_handle,
- unsigned long offset,
- size_t size,
- int direction)
-{
-}
-
-static inline void debug_dma_sync_sg_for_cpu(struct device *dev,
- struct scatterlist *sg,
- int nelems, int direction)
-{
-}
-
-static inline void debug_dma_sync_sg_for_device(struct device *dev,
- struct scatterlist *sg,
- int nelems, int direction)
-{
-}
-
-static inline void debug_dma_dump_mappings(struct device *dev)
-{
-}
-
-#endif /* CONFIG_DMA_API_DEBUG */
-
-#endif /* __DMA_DEBUG_H */
diff --git a/ANDROID_3.4.5/include/linux/dma-direction.h b/ANDROID_3.4.5/include/linux/dma-direction.h
deleted file mode 100644
index 95b6a82f..00000000
--- a/ANDROID_3.4.5/include/linux/dma-direction.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef _LINUX_DMA_DIRECTION_H
-#define _LINUX_DMA_DIRECTION_H
-/*
- * These definitions mirror those in pci.h, so they can be used
- * interchangeably with their PCI_ counterparts.
- */
-enum dma_data_direction {
- DMA_BIDIRECTIONAL = 0,
- DMA_TO_DEVICE = 1,
- DMA_FROM_DEVICE = 2,
- DMA_NONE = 3,
-};
-#endif
diff --git a/ANDROID_3.4.5/include/linux/dma-mapping.h b/ANDROID_3.4.5/include/linux/dma-mapping.h
deleted file mode 100644
index dfc099e5..00000000
--- a/ANDROID_3.4.5/include/linux/dma-mapping.h
+++ /dev/null
@@ -1,237 +0,0 @@
-#ifndef _LINUX_DMA_MAPPING_H
-#define _LINUX_DMA_MAPPING_H
-
-#include <linux/string.h>
-#include <linux/device.h>
-#include <linux/err.h>
-#include <linux/dma-attrs.h>
-#include <linux/dma-direction.h>
-#include <linux/scatterlist.h>
-
-struct dma_map_ops {
- void* (*alloc)(struct device *dev, size_t size,
- dma_addr_t *dma_handle, gfp_t gfp,
- struct dma_attrs *attrs);
- void (*free)(struct device *dev, size_t size,
- void *vaddr, dma_addr_t dma_handle,
- struct dma_attrs *attrs);
- int (*mmap)(struct device *, struct vm_area_struct *,
- void *, dma_addr_t, size_t, struct dma_attrs *attrs);
-
- dma_addr_t (*map_page)(struct device *dev, struct page *page,
- unsigned long offset, size_t size,
- enum dma_data_direction dir,
- struct dma_attrs *attrs);
- void (*unmap_page)(struct device *dev, dma_addr_t dma_handle,
- size_t size, enum dma_data_direction dir,
- struct dma_attrs *attrs);
- int (*map_sg)(struct device *dev, struct scatterlist *sg,
- int nents, enum dma_data_direction dir,
- struct dma_attrs *attrs);
- void (*unmap_sg)(struct device *dev,
- struct scatterlist *sg, int nents,
- enum dma_data_direction dir,
- struct dma_attrs *attrs);
- void (*sync_single_for_cpu)(struct device *dev,
- dma_addr_t dma_handle, size_t size,
- enum dma_data_direction dir);
- void (*sync_single_for_device)(struct device *dev,
- dma_addr_t dma_handle, size_t size,
- enum dma_data_direction dir);
- void (*sync_sg_for_cpu)(struct device *dev,
- struct scatterlist *sg, int nents,
- enum dma_data_direction dir);
- void (*sync_sg_for_device)(struct device *dev,
- struct scatterlist *sg, int nents,
- enum dma_data_direction dir);
- int (*mapping_error)(struct device *dev, dma_addr_t dma_addr);
- int (*dma_supported)(struct device *dev, u64 mask);
- int (*set_dma_mask)(struct device *dev, u64 mask);
-#ifdef ARCH_HAS_DMA_GET_REQUIRED_MASK
- u64 (*get_required_mask)(struct device *dev);
-#endif
- int is_phys;
-};
-
-#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
-
-#define DMA_MASK_NONE 0x0ULL
-
-static inline int valid_dma_direction(int dma_direction)
-{
- return ((dma_direction == DMA_BIDIRECTIONAL) ||
- (dma_direction == DMA_TO_DEVICE) ||
- (dma_direction == DMA_FROM_DEVICE));
-}
-
-static inline int is_device_dma_capable(struct device *dev)
-{
- return dev->dma_mask != NULL && *dev->dma_mask != DMA_MASK_NONE;
-}
-
-#ifdef CONFIG_HAS_DMA
-#include <asm/dma-mapping.h>
-#else
-#include <asm-generic/dma-mapping-broken.h>
-#endif
-
-static inline u64 dma_get_mask(struct device *dev)
-{
- if (dev && dev->dma_mask && *dev->dma_mask)
- return *dev->dma_mask;
- return DMA_BIT_MASK(32);
-}
-
-#ifdef CONFIG_ARCH_HAS_DMA_SET_COHERENT_MASK
-int dma_set_coherent_mask(struct device *dev, u64 mask);
-#else
-static inline int dma_set_coherent_mask(struct device *dev, u64 mask)
-{
- if (!dma_supported(dev, mask))
- return -EIO;
- dev->coherent_dma_mask = mask;
- return 0;
-}
-#endif
-
-extern u64 dma_get_required_mask(struct device *dev);
-
-static inline unsigned int dma_get_max_seg_size(struct device *dev)
-{
- return dev->dma_parms ? dev->dma_parms->max_segment_size : 65536;
-}
-
-static inline unsigned int dma_set_max_seg_size(struct device *dev,
- unsigned int size)
-{
- if (dev->dma_parms) {
- dev->dma_parms->max_segment_size = size;
- return 0;
- } else
- return -EIO;
-}
-
-static inline unsigned long dma_get_seg_boundary(struct device *dev)
-{
- return dev->dma_parms ?
- dev->dma_parms->segment_boundary_mask : 0xffffffff;
-}
-
-static inline int dma_set_seg_boundary(struct device *dev, unsigned long mask)
-{
- if (dev->dma_parms) {
- dev->dma_parms->segment_boundary_mask = mask;
- return 0;
- } else
- return -EIO;
-}
-
-static inline void *dma_zalloc_coherent(struct device *dev, size_t size,
- dma_addr_t *dma_handle, gfp_t flag)
-{
- void *ret = dma_alloc_coherent(dev, size, dma_handle, flag);
- if (ret)
- memset(ret, 0, size);
- return ret;
-}
-
-#ifdef CONFIG_HAS_DMA
-static inline int dma_get_cache_alignment(void)
-{
-#ifdef ARCH_DMA_MINALIGN
- return ARCH_DMA_MINALIGN;
-#endif
- return 1;
-}
-#endif
-
-/* flags for the coherent memory api */
-#define DMA_MEMORY_MAP 0x01
-#define DMA_MEMORY_IO 0x02
-#define DMA_MEMORY_INCLUDES_CHILDREN 0x04
-#define DMA_MEMORY_EXCLUSIVE 0x08
-
-#ifndef ARCH_HAS_DMA_DECLARE_COHERENT_MEMORY
-static inline int
-dma_declare_coherent_memory(struct device *dev, dma_addr_t bus_addr,
- dma_addr_t device_addr, size_t size, int flags)
-{
- return 0;
-}
-
-static inline void
-dma_release_declared_memory(struct device *dev)
-{
-}
-
-static inline void *
-dma_mark_declared_memory_occupied(struct device *dev,
- dma_addr_t device_addr, size_t size)
-{
- return ERR_PTR(-EBUSY);
-}
-#endif
-
-/*
- * Managed DMA API
- */
-extern void *dmam_alloc_coherent(struct device *dev, size_t size,
- dma_addr_t *dma_handle, gfp_t gfp);
-extern void dmam_free_coherent(struct device *dev, size_t size, void *vaddr,
- dma_addr_t dma_handle);
-extern void *dmam_alloc_noncoherent(struct device *dev, size_t size,
- dma_addr_t *dma_handle, gfp_t gfp);
-extern void dmam_free_noncoherent(struct device *dev, size_t size, void *vaddr,
- dma_addr_t dma_handle);
-#ifdef ARCH_HAS_DMA_DECLARE_COHERENT_MEMORY
-extern int dmam_declare_coherent_memory(struct device *dev, dma_addr_t bus_addr,
- dma_addr_t device_addr, size_t size,
- int flags);
-extern void dmam_release_declared_memory(struct device *dev);
-#else /* ARCH_HAS_DMA_DECLARE_COHERENT_MEMORY */
-static inline int dmam_declare_coherent_memory(struct device *dev,
- dma_addr_t bus_addr, dma_addr_t device_addr,
- size_t size, gfp_t gfp)
-{
- return 0;
-}
-
-static inline void dmam_release_declared_memory(struct device *dev)
-{
-}
-#endif /* ARCH_HAS_DMA_DECLARE_COHERENT_MEMORY */
-
-#ifndef CONFIG_HAVE_DMA_ATTRS
-struct dma_attrs;
-
-#define dma_map_single_attrs(dev, cpu_addr, size, dir, attrs) \
- dma_map_single(dev, cpu_addr, size, dir)
-
-#define dma_unmap_single_attrs(dev, dma_addr, size, dir, attrs) \
- dma_unmap_single(dev, dma_addr, size, dir)
-
-#define dma_map_sg_attrs(dev, sgl, nents, dir, attrs) \
- dma_map_sg(dev, sgl, nents, dir)
-
-#define dma_unmap_sg_attrs(dev, sgl, nents, dir, attrs) \
- dma_unmap_sg(dev, sgl, nents, dir)
-
-#endif /* CONFIG_HAVE_DMA_ATTRS */
-
-#ifdef CONFIG_NEED_DMA_MAP_STATE
-#define DEFINE_DMA_UNMAP_ADDR(ADDR_NAME) dma_addr_t ADDR_NAME
-#define DEFINE_DMA_UNMAP_LEN(LEN_NAME) __u32 LEN_NAME
-#define dma_unmap_addr(PTR, ADDR_NAME) ((PTR)->ADDR_NAME)
-#define dma_unmap_addr_set(PTR, ADDR_NAME, VAL) (((PTR)->ADDR_NAME) = (VAL))
-#define dma_unmap_len(PTR, LEN_NAME) ((PTR)->LEN_NAME)
-#define dma_unmap_len_set(PTR, LEN_NAME, VAL) (((PTR)->LEN_NAME) = (VAL))
-#else
-#define DEFINE_DMA_UNMAP_ADDR(ADDR_NAME)
-#define DEFINE_DMA_UNMAP_LEN(LEN_NAME)
-#define dma_unmap_addr(PTR, ADDR_NAME) (0)
-#define dma_unmap_addr_set(PTR, ADDR_NAME, VAL) do { } while (0)
-#define dma_unmap_len(PTR, LEN_NAME) (0)
-#define dma_unmap_len_set(PTR, LEN_NAME, VAL) do { } while (0)
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/dma_remapping.h b/ANDROID_3.4.5/include/linux/dma_remapping.h
deleted file mode 100644
index 57c9a8ae..00000000
--- a/ANDROID_3.4.5/include/linux/dma_remapping.h
+++ /dev/null
@@ -1,52 +0,0 @@
-#ifndef _DMA_REMAPPING_H
-#define _DMA_REMAPPING_H
-
-/*
- * VT-d hardware uses 4KiB page size regardless of host page size.
- */
-#define VTD_PAGE_SHIFT (12)
-#define VTD_PAGE_SIZE (1UL << VTD_PAGE_SHIFT)
-#define VTD_PAGE_MASK (((u64)-1) << VTD_PAGE_SHIFT)
-#define VTD_PAGE_ALIGN(addr) (((addr) + VTD_PAGE_SIZE - 1) & VTD_PAGE_MASK)
-
-#define VTD_STRIDE_SHIFT (9)
-#define VTD_STRIDE_MASK (((u64)-1) << VTD_STRIDE_SHIFT)
-
-#define DMA_PTE_READ (1)
-#define DMA_PTE_WRITE (2)
-#define DMA_PTE_LARGE_PAGE (1 << 7)
-#define DMA_PTE_SNP (1 << 11)
-
-#define CONTEXT_TT_MULTI_LEVEL 0
-#define CONTEXT_TT_DEV_IOTLB 1
-#define CONTEXT_TT_PASS_THROUGH 2
-
-struct intel_iommu;
-struct dmar_domain;
-struct root_entry;
-
-
-#ifdef CONFIG_INTEL_IOMMU
-extern void free_dmar_iommu(struct intel_iommu *iommu);
-extern int iommu_calculate_agaw(struct intel_iommu *iommu);
-extern int iommu_calculate_max_sagaw(struct intel_iommu *iommu);
-extern int dmar_disabled;
-extern int intel_iommu_enabled;
-#else
-static inline int iommu_calculate_agaw(struct intel_iommu *iommu)
-{
- return 0;
-}
-static inline int iommu_calculate_max_sagaw(struct intel_iommu *iommu)
-{
- return 0;
-}
-static inline void free_dmar_iommu(struct intel_iommu *iommu)
-{
-}
-#define dmar_disabled (1)
-#define intel_iommu_enabled (0)
-#endif
-
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/dmaengine.h b/ANDROID_3.4.5/include/linux/dmaengine.h
deleted file mode 100644
index f9a2e5e6..00000000
--- a/ANDROID_3.4.5/include/linux/dmaengine.h
+++ /dev/null
@@ -1,1002 +0,0 @@
-/*
- * Copyright(c) 2004 - 2006 Intel Corporation. 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 COPYING.
- */
-#ifndef LINUX_DMAENGINE_H
-#define LINUX_DMAENGINE_H
-
-#include <linux/device.h>
-#include <linux/uio.h>
-#include <linux/bug.h>
-#include <linux/scatterlist.h>
-#include <linux/bitmap.h>
-#include <linux/types.h>
-#include <asm/page.h>
-
-/**
- * typedef dma_cookie_t - an opaque DMA cookie
- *
- * if dma_cookie_t is >0 it's a DMA request cookie, <0 it's an error code
- */
-typedef s32 dma_cookie_t;
-#define DMA_MIN_COOKIE 1
-#define DMA_MAX_COOKIE INT_MAX
-
-#define dma_submit_error(cookie) ((cookie) < 0 ? 1 : 0)
-
-/**
- * enum dma_status - DMA transaction status
- * @DMA_SUCCESS: transaction completed successfully
- * @DMA_IN_PROGRESS: transaction not yet processed
- * @DMA_PAUSED: transaction is paused
- * @DMA_ERROR: transaction failed
- */
-enum dma_status {
- DMA_SUCCESS,
- DMA_IN_PROGRESS,
- DMA_PAUSED,
- DMA_ERROR,
-};
-
-/**
- * enum dma_transaction_type - DMA transaction types/indexes
- *
- * Note: The DMA_ASYNC_TX capability is not to be set by drivers. It is
- * automatically set as dma devices are registered.
- */
-enum dma_transaction_type {
- DMA_MEMCPY,
- DMA_XOR,
- DMA_PQ,
- DMA_XOR_VAL,
- DMA_PQ_VAL,
- DMA_MEMSET,
- DMA_INTERRUPT,
- DMA_SG,
- DMA_PRIVATE,
- DMA_ASYNC_TX,
- DMA_SLAVE,
- DMA_CYCLIC,
- DMA_INTERLEAVE,
-/* last transaction type for creation of the capabilities mask */
- DMA_TX_TYPE_END,
-};
-
-/**
- * enum dma_transfer_direction - dma transfer mode and direction indicator
- * @DMA_MEM_TO_MEM: Async/Memcpy mode
- * @DMA_MEM_TO_DEV: Slave mode & From Memory to Device
- * @DMA_DEV_TO_MEM: Slave mode & From Device to Memory
- * @DMA_DEV_TO_DEV: Slave mode & From Device to Device
- */
-enum dma_transfer_direction {
- DMA_MEM_TO_MEM,
- DMA_MEM_TO_DEV,
- DMA_DEV_TO_MEM,
- DMA_DEV_TO_DEV,
- DMA_TRANS_NONE,
-};
-
-/**
- * Interleaved Transfer Request
- * ----------------------------
- * A chunk is collection of contiguous bytes to be transfered.
- * The gap(in bytes) between two chunks is called inter-chunk-gap(ICG).
- * ICGs may or maynot change between chunks.
- * A FRAME is the smallest series of contiguous {chunk,icg} pairs,
- * that when repeated an integral number of times, specifies the transfer.
- * A transfer template is specification of a Frame, the number of times
- * it is to be repeated and other per-transfer attributes.
- *
- * Practically, a client driver would have ready a template for each
- * type of transfer it is going to need during its lifetime and
- * set only 'src_start' and 'dst_start' before submitting the requests.
- *
- *
- * | Frame-1 | Frame-2 | ~ | Frame-'numf' |
- * |====....==.===...=...|====....==.===...=...| ~ |====....==.===...=...|
- *
- * == Chunk size
- * ... ICG
- */
-
-/**
- * struct data_chunk - Element of scatter-gather list that makes a frame.
- * @size: Number of bytes to read from source.
- * size_dst := fn(op, size_src), so doesn't mean much for destination.
- * @icg: Number of bytes to jump after last src/dst address of this
- * chunk and before first src/dst address for next chunk.
- * Ignored for dst(assumed 0), if dst_inc is true and dst_sgl is false.
- * Ignored for src(assumed 0), if src_inc is true and src_sgl is false.
- */
-struct data_chunk {
- size_t size;
- size_t icg;
-};
-
-/**
- * struct dma_interleaved_template - Template to convey DMAC the transfer pattern
- * and attributes.
- * @src_start: Bus address of source for the first chunk.
- * @dst_start: Bus address of destination for the first chunk.
- * @dir: Specifies the type of Source and Destination.
- * @src_inc: If the source address increments after reading from it.
- * @dst_inc: If the destination address increments after writing to it.
- * @src_sgl: If the 'icg' of sgl[] applies to Source (scattered read).
- * Otherwise, source is read contiguously (icg ignored).
- * Ignored if src_inc is false.
- * @dst_sgl: If the 'icg' of sgl[] applies to Destination (scattered write).
- * Otherwise, destination is filled contiguously (icg ignored).
- * Ignored if dst_inc is false.
- * @numf: Number of frames in this template.
- * @frame_size: Number of chunks in a frame i.e, size of sgl[].
- * @sgl: Array of {chunk,icg} pairs that make up a frame.
- */
-struct dma_interleaved_template {
- dma_addr_t src_start;
- dma_addr_t dst_start;
- enum dma_transfer_direction dir;
- bool src_inc;
- bool dst_inc;
- bool src_sgl;
- bool dst_sgl;
- size_t numf;
- size_t frame_size;
- struct data_chunk sgl[0];
-};
-
-/**
- * enum dma_ctrl_flags - DMA flags to augment operation preparation,
- * control completion, and communicate status.
- * @DMA_PREP_INTERRUPT - trigger an interrupt (callback) upon completion of
- * this transaction
- * @DMA_CTRL_ACK - if clear, the descriptor cannot be reused until the client
- * acknowledges receipt, i.e. has has a chance to establish any dependency
- * chains
- * @DMA_COMPL_SKIP_SRC_UNMAP - set to disable dma-unmapping the source buffer(s)
- * @DMA_COMPL_SKIP_DEST_UNMAP - set to disable dma-unmapping the destination(s)
- * @DMA_COMPL_SRC_UNMAP_SINGLE - set to do the source dma-unmapping as single
- * (if not set, do the source dma-unmapping as page)
- * @DMA_COMPL_DEST_UNMAP_SINGLE - set to do the destination dma-unmapping as single
- * (if not set, do the destination dma-unmapping as page)
- * @DMA_PREP_PQ_DISABLE_P - prevent generation of P while generating Q
- * @DMA_PREP_PQ_DISABLE_Q - prevent generation of Q while generating P
- * @DMA_PREP_CONTINUE - indicate to a driver that it is reusing buffers as
- * sources that were the result of a previous operation, in the case of a PQ
- * operation it continues the calculation with new sources
- * @DMA_PREP_FENCE - tell the driver that subsequent operations depend
- * on the result of this operation
- */
-enum dma_ctrl_flags {
- DMA_PREP_INTERRUPT = (1 << 0),
- DMA_CTRL_ACK = (1 << 1),
- DMA_COMPL_SKIP_SRC_UNMAP = (1 << 2),
- DMA_COMPL_SKIP_DEST_UNMAP = (1 << 3),
- DMA_COMPL_SRC_UNMAP_SINGLE = (1 << 4),
- DMA_COMPL_DEST_UNMAP_SINGLE = (1 << 5),
- DMA_PREP_PQ_DISABLE_P = (1 << 6),
- DMA_PREP_PQ_DISABLE_Q = (1 << 7),
- DMA_PREP_CONTINUE = (1 << 8),
- DMA_PREP_FENCE = (1 << 9),
-};
-
-/**
- * enum dma_ctrl_cmd - DMA operations that can optionally be exercised
- * on a running channel.
- * @DMA_TERMINATE_ALL: terminate all ongoing transfers
- * @DMA_PAUSE: pause ongoing transfers
- * @DMA_RESUME: resume paused transfer
- * @DMA_SLAVE_CONFIG: this command is only implemented by DMA controllers
- * that need to runtime reconfigure the slave channels (as opposed to passing
- * configuration data in statically from the platform). An additional
- * argument of struct dma_slave_config must be passed in with this
- * command.
- * @FSLDMA_EXTERNAL_START: this command will put the Freescale DMA controller
- * into external start mode.
- */
-enum dma_ctrl_cmd {
- DMA_TERMINATE_ALL,
- DMA_PAUSE,
- DMA_RESUME,
- DMA_SLAVE_CONFIG,
- FSLDMA_EXTERNAL_START,
-};
-
-/**
- * enum sum_check_bits - bit position of pq_check_flags
- */
-enum sum_check_bits {
- SUM_CHECK_P = 0,
- SUM_CHECK_Q = 1,
-};
-
-/**
- * enum pq_check_flags - result of async_{xor,pq}_zero_sum operations
- * @SUM_CHECK_P_RESULT - 1 if xor zero sum error, 0 otherwise
- * @SUM_CHECK_Q_RESULT - 1 if reed-solomon zero sum error, 0 otherwise
- */
-enum sum_check_flags {
- SUM_CHECK_P_RESULT = (1 << SUM_CHECK_P),
- SUM_CHECK_Q_RESULT = (1 << SUM_CHECK_Q),
-};
-
-
-/**
- * dma_cap_mask_t - capabilities bitmap modeled after cpumask_t.
- * See linux/cpumask.h
- */
-typedef struct { DECLARE_BITMAP(bits, DMA_TX_TYPE_END); } dma_cap_mask_t;
-
-/**
- * struct dma_chan_percpu - the per-CPU part of struct dma_chan
- * @memcpy_count: transaction counter
- * @bytes_transferred: byte counter
- */
-
-struct dma_chan_percpu {
- /* stats */
- unsigned long memcpy_count;
- unsigned long bytes_transferred;
-};
-
-/**
- * struct dma_chan - devices supply DMA channels, clients use them
- * @device: ptr to the dma device who supplies this channel, always !%NULL
- * @cookie: last cookie value returned to client
- * @completed_cookie: last completed cookie for this channel
- * @chan_id: channel ID for sysfs
- * @dev: class device for sysfs
- * @device_node: used to add this to the device chan list
- * @local: per-cpu pointer to a struct dma_chan_percpu
- * @client-count: how many clients are using this channel
- * @table_count: number of appearances in the mem-to-mem allocation table
- * @private: private data for certain client-channel associations
- */
-struct dma_chan {
- struct dma_device *device;
- dma_cookie_t cookie;
- dma_cookie_t completed_cookie;
-
- /* sysfs */
- int chan_id;
- struct dma_chan_dev *dev;
-
- struct list_head device_node;
- struct dma_chan_percpu __percpu *local;
- int client_count;
- int table_count;
- void *private;
-};
-
-/**
- * struct dma_chan_dev - relate sysfs device node to backing channel device
- * @chan - driver channel device
- * @device - sysfs device
- * @dev_id - parent dma_device dev_id
- * @idr_ref - reference count to gate release of dma_device dev_id
- */
-struct dma_chan_dev {
- struct dma_chan *chan;
- struct device device;
- int dev_id;
- atomic_t *idr_ref;
-};
-
-/**
- * enum dma_slave_buswidth - defines bus with of the DMA slave
- * device, source or target buses
- */
-enum dma_slave_buswidth {
- DMA_SLAVE_BUSWIDTH_UNDEFINED = 0,
- DMA_SLAVE_BUSWIDTH_1_BYTE = 1,
- DMA_SLAVE_BUSWIDTH_2_BYTES = 2,
- DMA_SLAVE_BUSWIDTH_4_BYTES = 4,
- DMA_SLAVE_BUSWIDTH_8_BYTES = 8,
-};
-
-/**
- * struct dma_slave_config - dma slave channel runtime config
- * @direction: whether the data shall go in or out on this slave
- * channel, right now. DMA_TO_DEVICE and DMA_FROM_DEVICE are
- * legal values, DMA_BIDIRECTIONAL is not acceptable since we
- * need to differentiate source and target addresses.
- * @src_addr: this is the physical address where DMA slave data
- * should be read (RX), if the source is memory this argument is
- * ignored.
- * @dst_addr: this is the physical address where DMA slave data
- * should be written (TX), if the source is memory this argument
- * is ignored.
- * @src_addr_width: this is the width in bytes of the source (RX)
- * register where DMA data shall be read. If the source
- * is memory this may be ignored depending on architecture.
- * Legal values: 1, 2, 4, 8.
- * @dst_addr_width: same as src_addr_width but for destination
- * target (TX) mutatis mutandis.
- * @src_maxburst: the maximum number of words (note: words, as in
- * units of the src_addr_width member, not bytes) that can be sent
- * in one burst to the device. Typically something like half the
- * FIFO depth on I/O peripherals so you don't overflow it. This
- * may or may not be applicable on memory sources.
- * @dst_maxburst: same as src_maxburst but for destination target
- * mutatis mutandis.
- * @device_fc: Flow Controller Settings. Only valid for slave channels. Fill
- * with 'true' if peripheral should be flow controller. Direction will be
- * selected at Runtime.
- *
- * This struct is passed in as configuration data to a DMA engine
- * in order to set up a certain channel for DMA transport at runtime.
- * The DMA device/engine has to provide support for an additional
- * command in the channel config interface, DMA_SLAVE_CONFIG
- * and this struct will then be passed in as an argument to the
- * DMA engine device_control() function.
- *
- * The rationale for adding configuration information to this struct
- * is as follows: if it is likely that most DMA slave controllers in
- * the world will support the configuration option, then make it
- * generic. If not: if it is fixed so that it be sent in static from
- * the platform data, then prefer to do that. Else, if it is neither
- * fixed at runtime, nor generic enough (such as bus mastership on
- * some CPU family and whatnot) then create a custom slave config
- * struct and pass that, then make this config a member of that
- * struct, if applicable.
- */
-struct dma_slave_config {
- enum dma_transfer_direction direction;
- dma_addr_t src_addr;
- dma_addr_t dst_addr;
- enum dma_slave_buswidth src_addr_width;
- enum dma_slave_buswidth dst_addr_width;
- u32 src_maxburst;
- u32 dst_maxburst;
- bool device_fc;
-};
-
-static inline const char *dma_chan_name(struct dma_chan *chan)
-{
- return dev_name(&chan->dev->device);
-}
-
-void dma_chan_cleanup(struct kref *kref);
-
-/**
- * typedef dma_filter_fn - callback filter for dma_request_channel
- * @chan: channel to be reviewed
- * @filter_param: opaque parameter passed through dma_request_channel
- *
- * When this optional parameter is specified in a call to dma_request_channel a
- * suitable channel is passed to this routine for further dispositioning before
- * being returned. Where 'suitable' indicates a non-busy channel that
- * satisfies the given capability mask. It returns 'true' to indicate that the
- * channel is suitable.
- */
-typedef bool (*dma_filter_fn)(struct dma_chan *chan, void *filter_param);
-
-typedef void (*dma_async_tx_callback)(void *dma_async_param);
-/**
- * struct dma_async_tx_descriptor - async transaction descriptor
- * ---dma generic offload fields---
- * @cookie: tracking cookie for this transaction, set to -EBUSY if
- * this tx is sitting on a dependency list
- * @flags: flags to augment operation preparation, control completion, and
- * communicate status
- * @phys: physical address of the descriptor
- * @chan: target channel for this operation
- * @tx_submit: set the prepared descriptor(s) to be executed by the engine
- * @callback: routine to call after this operation is complete
- * @callback_param: general parameter to pass to the callback routine
- * ---async_tx api specific fields---
- * @next: at completion submit this descriptor
- * @parent: pointer to the next level up in the dependency chain
- * @lock: protect the parent and next pointers
- */
-struct dma_async_tx_descriptor {
- dma_cookie_t cookie;
- enum dma_ctrl_flags flags; /* not a 'long' to pack with cookie */
- dma_addr_t phys;
- struct dma_chan *chan;
- dma_cookie_t (*tx_submit)(struct dma_async_tx_descriptor *tx);
- dma_async_tx_callback callback;
- void *callback_param;
-#ifdef CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH
- struct dma_async_tx_descriptor *next;
- struct dma_async_tx_descriptor *parent;
- spinlock_t lock;
-#endif
-};
-
-#ifndef CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH
-static inline void txd_lock(struct dma_async_tx_descriptor *txd)
-{
-}
-static inline void txd_unlock(struct dma_async_tx_descriptor *txd)
-{
-}
-static inline void txd_chain(struct dma_async_tx_descriptor *txd, struct dma_async_tx_descriptor *next)
-{
- BUG();
-}
-static inline void txd_clear_parent(struct dma_async_tx_descriptor *txd)
-{
-}
-static inline void txd_clear_next(struct dma_async_tx_descriptor *txd)
-{
-}
-static inline struct dma_async_tx_descriptor *txd_next(struct dma_async_tx_descriptor *txd)
-{
- return NULL;
-}
-static inline struct dma_async_tx_descriptor *txd_parent(struct dma_async_tx_descriptor *txd)
-{
- return NULL;
-}
-
-#else
-static inline void txd_lock(struct dma_async_tx_descriptor *txd)
-{
- spin_lock_bh(&txd->lock);
-}
-static inline void txd_unlock(struct dma_async_tx_descriptor *txd)
-{
- spin_unlock_bh(&txd->lock);
-}
-static inline void txd_chain(struct dma_async_tx_descriptor *txd, struct dma_async_tx_descriptor *next)
-{
- txd->next = next;
- next->parent = txd;
-}
-static inline void txd_clear_parent(struct dma_async_tx_descriptor *txd)
-{
- txd->parent = NULL;
-}
-static inline void txd_clear_next(struct dma_async_tx_descriptor *txd)
-{
- txd->next = NULL;
-}
-static inline struct dma_async_tx_descriptor *txd_parent(struct dma_async_tx_descriptor *txd)
-{
- return txd->parent;
-}
-static inline struct dma_async_tx_descriptor *txd_next(struct dma_async_tx_descriptor *txd)
-{
- return txd->next;
-}
-#endif
-
-/**
- * struct dma_tx_state - filled in to report the status of
- * a transfer.
- * @last: last completed DMA cookie
- * @used: last issued DMA cookie (i.e. the one in progress)
- * @residue: the remaining number of bytes left to transmit
- * on the selected transfer for states DMA_IN_PROGRESS and
- * DMA_PAUSED if this is implemented in the driver, else 0
- */
-struct dma_tx_state {
- dma_cookie_t last;
- dma_cookie_t used;
- u32 residue;
-};
-
-/**
- * struct dma_device - info on the entity supplying DMA services
- * @chancnt: how many DMA channels are supported
- * @privatecnt: how many DMA channels are requested by dma_request_channel
- * @channels: the list of struct dma_chan
- * @global_node: list_head for global dma_device_list
- * @cap_mask: one or more dma_capability flags
- * @max_xor: maximum number of xor sources, 0 if no capability
- * @max_pq: maximum number of PQ sources and PQ-continue capability
- * @copy_align: alignment shift for memcpy operations
- * @xor_align: alignment shift for xor operations
- * @pq_align: alignment shift for pq operations
- * @fill_align: alignment shift for memset operations
- * @dev_id: unique device ID
- * @dev: struct device reference for dma mapping api
- * @device_alloc_chan_resources: allocate resources and return the
- * number of allocated descriptors
- * @device_free_chan_resources: release DMA channel's resources
- * @device_prep_dma_memcpy: prepares a memcpy operation
- * @device_prep_dma_xor: prepares a xor operation
- * @device_prep_dma_xor_val: prepares a xor validation operation
- * @device_prep_dma_pq: prepares a pq operation
- * @device_prep_dma_pq_val: prepares a pqzero_sum operation
- * @device_prep_dma_memset: prepares a memset operation
- * @device_prep_dma_interrupt: prepares an end of chain interrupt operation
- * @device_prep_slave_sg: prepares a slave dma operation
- * @device_prep_dma_cyclic: prepare a cyclic dma operation suitable for audio.
- * The function takes a buffer of size buf_len. The callback function will
- * be called after period_len bytes have been transferred.
- * @device_prep_interleaved_dma: Transfer expression in a generic way.
- * @device_control: manipulate all pending operations on a channel, returns
- * zero or error code
- * @device_tx_status: poll for transaction completion, the optional
- * txstate parameter can be supplied with a pointer to get a
- * struct with auxiliary transfer status information, otherwise the call
- * will just return a simple status code
- * @device_issue_pending: push pending transactions to hardware
- */
-struct dma_device {
-
- unsigned int chancnt;
- unsigned int privatecnt;
- struct list_head channels;
- struct list_head global_node;
- dma_cap_mask_t cap_mask;
- unsigned short max_xor;
- unsigned short max_pq;
- u8 copy_align;
- u8 xor_align;
- u8 pq_align;
- u8 fill_align;
- #define DMA_HAS_PQ_CONTINUE (1 << 15)
-
- int dev_id;
- struct device *dev;
-
- int (*device_alloc_chan_resources)(struct dma_chan *chan);
- void (*device_free_chan_resources)(struct dma_chan *chan);
-
- struct dma_async_tx_descriptor *(*device_prep_dma_memcpy)(
- struct dma_chan *chan, dma_addr_t dest, dma_addr_t src,
- size_t len, unsigned long flags);
- struct dma_async_tx_descriptor *(*device_prep_dma_xor)(
- struct dma_chan *chan, dma_addr_t dest, dma_addr_t *src,
- unsigned int src_cnt, size_t len, unsigned long flags);
- struct dma_async_tx_descriptor *(*device_prep_dma_xor_val)(
- struct dma_chan *chan, dma_addr_t *src, unsigned int src_cnt,
- size_t len, enum sum_check_flags *result, unsigned long flags);
- struct dma_async_tx_descriptor *(*device_prep_dma_pq)(
- struct dma_chan *chan, dma_addr_t *dst, dma_addr_t *src,
- unsigned int src_cnt, const unsigned char *scf,
- size_t len, unsigned long flags);
- struct dma_async_tx_descriptor *(*device_prep_dma_pq_val)(
- struct dma_chan *chan, dma_addr_t *pq, dma_addr_t *src,
- unsigned int src_cnt, const unsigned char *scf, size_t len,
- enum sum_check_flags *pqres, unsigned long flags);
- struct dma_async_tx_descriptor *(*device_prep_dma_memset)(
- struct dma_chan *chan, dma_addr_t dest, int value, size_t len,
- unsigned long flags);
- struct dma_async_tx_descriptor *(*device_prep_dma_interrupt)(
- struct dma_chan *chan, unsigned long flags);
- struct dma_async_tx_descriptor *(*device_prep_dma_sg)(
- struct dma_chan *chan,
- struct scatterlist *dst_sg, unsigned int dst_nents,
- struct scatterlist *src_sg, unsigned int src_nents,
- unsigned long flags);
-
- struct dma_async_tx_descriptor *(*device_prep_slave_sg)(
- struct dma_chan *chan, struct scatterlist *sgl,
- unsigned int sg_len, enum dma_transfer_direction direction,
- unsigned long flags, void *context);
- struct dma_async_tx_descriptor *(*device_prep_dma_cyclic)(
- struct dma_chan *chan, dma_addr_t buf_addr, size_t buf_len,
- size_t period_len, enum dma_transfer_direction direction,
- void *context);
- struct dma_async_tx_descriptor *(*device_prep_interleaved_dma)(
- struct dma_chan *chan, struct dma_interleaved_template *xt,
- unsigned long flags);
- int (*device_control)(struct dma_chan *chan, enum dma_ctrl_cmd cmd,
- unsigned long arg);
-
- enum dma_status (*device_tx_status)(struct dma_chan *chan,
- dma_cookie_t cookie,
- struct dma_tx_state *txstate);
- void (*device_issue_pending)(struct dma_chan *chan);
-};
-
-static inline int dmaengine_device_control(struct dma_chan *chan,
- enum dma_ctrl_cmd cmd,
- unsigned long arg)
-{
- return chan->device->device_control(chan, cmd, arg);
-}
-
-static inline int dmaengine_slave_config(struct dma_chan *chan,
- struct dma_slave_config *config)
-{
- return dmaengine_device_control(chan, DMA_SLAVE_CONFIG,
- (unsigned long)config);
-}
-
-static inline struct dma_async_tx_descriptor *dmaengine_prep_slave_single(
- struct dma_chan *chan, void *buf, size_t len,
- enum dma_transfer_direction dir, unsigned long flags)
-{
- struct scatterlist sg;
- sg_init_one(&sg, buf, len);
-
- return chan->device->device_prep_slave_sg(chan, &sg, 1,
- dir, flags, NULL);
-}
-
-static inline struct dma_async_tx_descriptor *dmaengine_prep_slave_sg(
- struct dma_chan *chan, struct scatterlist *sgl, unsigned int sg_len,
- enum dma_transfer_direction dir, unsigned long flags)
-{
- return chan->device->device_prep_slave_sg(chan, sgl, sg_len,
- dir, flags, NULL);
-}
-
-static inline struct dma_async_tx_descriptor *dmaengine_prep_dma_cyclic(
- struct dma_chan *chan, dma_addr_t buf_addr, size_t buf_len,
- size_t period_len, enum dma_transfer_direction dir)
-{
- return chan->device->device_prep_dma_cyclic(chan, buf_addr, buf_len,
- period_len, dir, NULL);
-}
-
-static inline int dmaengine_terminate_all(struct dma_chan *chan)
-{
- return dmaengine_device_control(chan, DMA_TERMINATE_ALL, 0);
-}
-
-static inline int dmaengine_pause(struct dma_chan *chan)
-{
- return dmaengine_device_control(chan, DMA_PAUSE, 0);
-}
-
-static inline int dmaengine_resume(struct dma_chan *chan)
-{
- return dmaengine_device_control(chan, DMA_RESUME, 0);
-}
-
-static inline dma_cookie_t dmaengine_submit(struct dma_async_tx_descriptor *desc)
-{
- return desc->tx_submit(desc);
-}
-
-static inline bool dmaengine_check_align(u8 align, size_t off1, size_t off2, size_t len)
-{
- size_t mask;
-
- if (!align)
- return true;
- mask = (1 << align) - 1;
- if (mask & (off1 | off2 | len))
- return false;
- return true;
-}
-
-static inline bool is_dma_copy_aligned(struct dma_device *dev, size_t off1,
- size_t off2, size_t len)
-{
- return dmaengine_check_align(dev->copy_align, off1, off2, len);
-}
-
-static inline bool is_dma_xor_aligned(struct dma_device *dev, size_t off1,
- size_t off2, size_t len)
-{
- return dmaengine_check_align(dev->xor_align, off1, off2, len);
-}
-
-static inline bool is_dma_pq_aligned(struct dma_device *dev, size_t off1,
- size_t off2, size_t len)
-{
- return dmaengine_check_align(dev->pq_align, off1, off2, len);
-}
-
-static inline bool is_dma_fill_aligned(struct dma_device *dev, size_t off1,
- size_t off2, size_t len)
-{
- return dmaengine_check_align(dev->fill_align, off1, off2, len);
-}
-
-static inline void
-dma_set_maxpq(struct dma_device *dma, int maxpq, int has_pq_continue)
-{
- dma->max_pq = maxpq;
- if (has_pq_continue)
- dma->max_pq |= DMA_HAS_PQ_CONTINUE;
-}
-
-static inline bool dmaf_continue(enum dma_ctrl_flags flags)
-{
- return (flags & DMA_PREP_CONTINUE) == DMA_PREP_CONTINUE;
-}
-
-static inline bool dmaf_p_disabled_continue(enum dma_ctrl_flags flags)
-{
- enum dma_ctrl_flags mask = DMA_PREP_CONTINUE | DMA_PREP_PQ_DISABLE_P;
-
- return (flags & mask) == mask;
-}
-
-static inline bool dma_dev_has_pq_continue(struct dma_device *dma)
-{
- return (dma->max_pq & DMA_HAS_PQ_CONTINUE) == DMA_HAS_PQ_CONTINUE;
-}
-
-static inline unsigned short dma_dev_to_maxpq(struct dma_device *dma)
-{
- return dma->max_pq & ~DMA_HAS_PQ_CONTINUE;
-}
-
-/* dma_maxpq - reduce maxpq in the face of continued operations
- * @dma - dma device with PQ capability
- * @flags - to check if DMA_PREP_CONTINUE and DMA_PREP_PQ_DISABLE_P are set
- *
- * When an engine does not support native continuation we need 3 extra
- * source slots to reuse P and Q with the following coefficients:
- * 1/ {00} * P : remove P from Q', but use it as a source for P'
- * 2/ {01} * Q : use Q to continue Q' calculation
- * 3/ {00} * Q : subtract Q from P' to cancel (2)
- *
- * In the case where P is disabled we only need 1 extra source:
- * 1/ {01} * Q : use Q to continue Q' calculation
- */
-static inline int dma_maxpq(struct dma_device *dma, enum dma_ctrl_flags flags)
-{
- if (dma_dev_has_pq_continue(dma) || !dmaf_continue(flags))
- return dma_dev_to_maxpq(dma);
- else if (dmaf_p_disabled_continue(flags))
- return dma_dev_to_maxpq(dma) - 1;
- else if (dmaf_continue(flags))
- return dma_dev_to_maxpq(dma) - 3;
- BUG();
-}
-
-/* --- public DMA engine API --- */
-
-#ifdef CONFIG_DMA_ENGINE
-void dmaengine_get(void);
-void dmaengine_put(void);
-#else
-static inline void dmaengine_get(void)
-{
-}
-static inline void dmaengine_put(void)
-{
-}
-#endif
-
-#ifdef CONFIG_NET_DMA
-#define net_dmaengine_get() dmaengine_get()
-#define net_dmaengine_put() dmaengine_put()
-#else
-static inline void net_dmaengine_get(void)
-{
-}
-static inline void net_dmaengine_put(void)
-{
-}
-#endif
-
-#ifdef CONFIG_ASYNC_TX_DMA
-#define async_dmaengine_get() dmaengine_get()
-#define async_dmaengine_put() dmaengine_put()
-#ifndef CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH
-#define async_dma_find_channel(type) dma_find_channel(DMA_ASYNC_TX)
-#else
-#define async_dma_find_channel(type) dma_find_channel(type)
-#endif /* CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH */
-#else
-static inline void async_dmaengine_get(void)
-{
-}
-static inline void async_dmaengine_put(void)
-{
-}
-static inline struct dma_chan *
-async_dma_find_channel(enum dma_transaction_type type)
-{
- return NULL;
-}
-#endif /* CONFIG_ASYNC_TX_DMA */
-
-dma_cookie_t dma_async_memcpy_buf_to_buf(struct dma_chan *chan,
- void *dest, void *src, size_t len);
-dma_cookie_t dma_async_memcpy_buf_to_pg(struct dma_chan *chan,
- struct page *page, unsigned int offset, void *kdata, size_t len);
-dma_cookie_t dma_async_memcpy_pg_to_pg(struct dma_chan *chan,
- struct page *dest_pg, unsigned int dest_off, struct page *src_pg,
- unsigned int src_off, size_t len);
-void dma_async_tx_descriptor_init(struct dma_async_tx_descriptor *tx,
- struct dma_chan *chan);
-
-static inline void async_tx_ack(struct dma_async_tx_descriptor *tx)
-{
- tx->flags |= DMA_CTRL_ACK;
-}
-
-static inline void async_tx_clear_ack(struct dma_async_tx_descriptor *tx)
-{
- tx->flags &= ~DMA_CTRL_ACK;
-}
-
-static inline bool async_tx_test_ack(struct dma_async_tx_descriptor *tx)
-{
- return (tx->flags & DMA_CTRL_ACK) == DMA_CTRL_ACK;
-}
-
-#define first_dma_cap(mask) __first_dma_cap(&(mask))
-static inline int __first_dma_cap(const dma_cap_mask_t *srcp)
-{
- return min_t(int, DMA_TX_TYPE_END,
- find_first_bit(srcp->bits, DMA_TX_TYPE_END));
-}
-
-#define next_dma_cap(n, mask) __next_dma_cap((n), &(mask))
-static inline int __next_dma_cap(int n, const dma_cap_mask_t *srcp)
-{
- return min_t(int, DMA_TX_TYPE_END,
- find_next_bit(srcp->bits, DMA_TX_TYPE_END, n+1));
-}
-
-#define dma_cap_set(tx, mask) __dma_cap_set((tx), &(mask))
-static inline void
-__dma_cap_set(enum dma_transaction_type tx_type, dma_cap_mask_t *dstp)
-{
- set_bit(tx_type, dstp->bits);
-}
-
-#define dma_cap_clear(tx, mask) __dma_cap_clear((tx), &(mask))
-static inline void
-__dma_cap_clear(enum dma_transaction_type tx_type, dma_cap_mask_t *dstp)
-{
- clear_bit(tx_type, dstp->bits);
-}
-
-#define dma_cap_zero(mask) __dma_cap_zero(&(mask))
-static inline void __dma_cap_zero(dma_cap_mask_t *dstp)
-{
- bitmap_zero(dstp->bits, DMA_TX_TYPE_END);
-}
-
-#define dma_has_cap(tx, mask) __dma_has_cap((tx), &(mask))
-static inline int
-__dma_has_cap(enum dma_transaction_type tx_type, dma_cap_mask_t *srcp)
-{
- return test_bit(tx_type, srcp->bits);
-}
-
-#define for_each_dma_cap_mask(cap, mask) \
- for ((cap) = first_dma_cap(mask); \
- (cap) < DMA_TX_TYPE_END; \
- (cap) = next_dma_cap((cap), (mask)))
-
-/**
- * dma_async_issue_pending - flush pending transactions to HW
- * @chan: target DMA channel
- *
- * This allows drivers to push copies to HW in batches,
- * reducing MMIO writes where possible.
- */
-static inline void dma_async_issue_pending(struct dma_chan *chan)
-{
- chan->device->device_issue_pending(chan);
-}
-
-#define dma_async_memcpy_issue_pending(chan) dma_async_issue_pending(chan)
-
-/**
- * dma_async_is_tx_complete - poll for transaction completion
- * @chan: DMA channel
- * @cookie: transaction identifier to check status of
- * @last: returns last completed cookie, can be NULL
- * @used: returns last issued cookie, can be NULL
- *
- * If @last and @used are passed in, upon return they reflect the driver
- * internal state and can be used with dma_async_is_complete() to check
- * the status of multiple cookies without re-checking hardware state.
- */
-static inline enum dma_status dma_async_is_tx_complete(struct dma_chan *chan,
- dma_cookie_t cookie, dma_cookie_t *last, dma_cookie_t *used)
-{
- struct dma_tx_state state;
- enum dma_status status;
-
- status = chan->device->device_tx_status(chan, cookie, &state);
- if (last)
- *last = state.last;
- if (used)
- *used = state.used;
- return status;
-}
-
-#define dma_async_memcpy_complete(chan, cookie, last, used)\
- dma_async_is_tx_complete(chan, cookie, last, used)
-
-/**
- * dma_async_is_complete - test a cookie against chan state
- * @cookie: transaction identifier to test status of
- * @last_complete: last know completed transaction
- * @last_used: last cookie value handed out
- *
- * dma_async_is_complete() is used in dma_async_memcpy_complete()
- * the test logic is separated for lightweight testing of multiple cookies
- */
-static inline enum dma_status dma_async_is_complete(dma_cookie_t cookie,
- dma_cookie_t last_complete, dma_cookie_t last_used)
-{
- if (last_complete <= last_used) {
- if ((cookie <= last_complete) || (cookie > last_used))
- return DMA_SUCCESS;
- } else {
- if ((cookie <= last_complete) && (cookie > last_used))
- return DMA_SUCCESS;
- }
- return DMA_IN_PROGRESS;
-}
-
-static inline void
-dma_set_tx_state(struct dma_tx_state *st, dma_cookie_t last, dma_cookie_t used, u32 residue)
-{
- if (st) {
- st->last = last;
- st->used = used;
- st->residue = residue;
- }
-}
-
-enum dma_status dma_sync_wait(struct dma_chan *chan, dma_cookie_t cookie);
-#ifdef CONFIG_DMA_ENGINE
-enum dma_status dma_wait_for_async_tx(struct dma_async_tx_descriptor *tx);
-void dma_issue_pending_all(void);
-struct dma_chan *__dma_request_channel(dma_cap_mask_t *mask, dma_filter_fn fn, void *fn_param);
-void dma_release_channel(struct dma_chan *chan);
-#else
-static inline enum dma_status dma_wait_for_async_tx(struct dma_async_tx_descriptor *tx)
-{
- return DMA_SUCCESS;
-}
-static inline void dma_issue_pending_all(void)
-{
-}
-static inline struct dma_chan *__dma_request_channel(dma_cap_mask_t *mask,
- dma_filter_fn fn, void *fn_param)
-{
- return NULL;
-}
-static inline void dma_release_channel(struct dma_chan *chan)
-{
-}
-#endif
-
-/* --- DMA device --- */
-
-int dma_async_device_register(struct dma_device *device);
-void dma_async_device_unregister(struct dma_device *device);
-void dma_run_dependencies(struct dma_async_tx_descriptor *tx);
-struct dma_chan *dma_find_channel(enum dma_transaction_type tx_type);
-struct dma_chan *net_dma_find_channel(void);
-#define dma_request_channel(mask, x, y) __dma_request_channel(&(mask), x, y)
-
-/* --- Helper iov-locking functions --- */
-
-struct dma_page_list {
- char __user *base_address;
- int nr_pages;
- struct page **pages;
-};
-
-struct dma_pinned_list {
- int nr_iovecs;
- struct dma_page_list page_list[0];
-};
-
-struct dma_pinned_list *dma_pin_iovec_pages(struct iovec *iov, size_t len);
-void dma_unpin_iovec_pages(struct dma_pinned_list* pinned_list);
-
-dma_cookie_t dma_memcpy_to_iovec(struct dma_chan *chan, struct iovec *iov,
- struct dma_pinned_list *pinned_list, unsigned char *kdata, size_t len);
-dma_cookie_t dma_memcpy_pg_to_iovec(struct dma_chan *chan, struct iovec *iov,
- struct dma_pinned_list *pinned_list, struct page *page,
- unsigned int offset, size_t len);
-
-#endif /* DMAENGINE_H */
diff --git a/ANDROID_3.4.5/include/linux/dmapool.h b/ANDROID_3.4.5/include/linux/dmapool.h
deleted file mode 100644
index 022e34fc..00000000
--- a/ANDROID_3.4.5/include/linux/dmapool.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * include/linux/dmapool.h
- *
- * Allocation pools for DMAable (coherent) memory.
- *
- * This file is licensed under the terms of the GNU General Public
- * License version 2. This program is licensed "as is" without any
- * warranty of any kind, whether express or implied.
- */
-
-#ifndef LINUX_DMAPOOL_H
-#define LINUX_DMAPOOL_H
-
-#include <asm/io.h>
-#include <asm/scatterlist.h>
-
-struct dma_pool *dma_pool_create(const char *name, struct device *dev,
- size_t size, size_t align, size_t allocation);
-
-void dma_pool_destroy(struct dma_pool *pool);
-
-void *dma_pool_alloc(struct dma_pool *pool, gfp_t mem_flags,
- dma_addr_t *handle);
-
-void dma_pool_free(struct dma_pool *pool, void *vaddr, dma_addr_t addr);
-
-/*
- * Managed DMA pool
- */
-struct dma_pool *dmam_pool_create(const char *name, struct device *dev,
- size_t size, size_t align, size_t allocation);
-void dmam_pool_destroy(struct dma_pool *pool);
-
-#endif
-
diff --git a/ANDROID_3.4.5/include/linux/dmar.h b/ANDROID_3.4.5/include/linux/dmar.h
deleted file mode 100644
index 731a6097..00000000
--- a/ANDROID_3.4.5/include/linux/dmar.h
+++ /dev/null
@@ -1,264 +0,0 @@
-/*
- * Copyright (c) 2006, Intel Corporation.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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.
- *
- * Copyright (C) Ashok Raj <ashok.raj@intel.com>
- * Copyright (C) Shaohua Li <shaohua.li@intel.com>
- */
-
-#ifndef __DMAR_H__
-#define __DMAR_H__
-
-#include <linux/acpi.h>
-#include <linux/types.h>
-#include <linux/msi.h>
-#include <linux/irqreturn.h>
-
-struct acpi_dmar_header;
-
-/* DMAR Flags */
-#define DMAR_INTR_REMAP 0x1
-#define DMAR_X2APIC_OPT_OUT 0x2
-
-struct intel_iommu;
-#ifdef CONFIG_DMAR_TABLE
-extern struct acpi_table_header *dmar_tbl;
-struct dmar_drhd_unit {
- struct list_head list; /* list of drhd units */
- struct acpi_dmar_header *hdr; /* ACPI header */
- u64 reg_base_addr; /* register base address*/
- struct pci_dev **devices; /* target device array */
- int devices_cnt; /* target device count */
- u16 segment; /* PCI domain */
- u8 ignored:1; /* ignore drhd */
- u8 include_all:1;
- struct intel_iommu *iommu;
-};
-
-extern struct list_head dmar_drhd_units;
-
-#define for_each_drhd_unit(drhd) \
- list_for_each_entry(drhd, &dmar_drhd_units, list)
-
-#define for_each_active_iommu(i, drhd) \
- list_for_each_entry(drhd, &dmar_drhd_units, list) \
- if (i=drhd->iommu, drhd->ignored) {} else
-
-#define for_each_iommu(i, drhd) \
- list_for_each_entry(drhd, &dmar_drhd_units, list) \
- if (i=drhd->iommu, 0) {} else
-
-extern int dmar_table_init(void);
-extern int dmar_dev_scope_init(void);
-
-/* Intel IOMMU detection */
-extern int detect_intel_iommu(void);
-extern int enable_drhd_fault_handling(void);
-
-extern int parse_ioapics_under_ir(void);
-extern int alloc_iommu(struct dmar_drhd_unit *);
-#else
-static inline int detect_intel_iommu(void)
-{
- return -ENODEV;
-}
-
-static inline int dmar_table_init(void)
-{
- return -ENODEV;
-}
-static inline int enable_drhd_fault_handling(void)
-{
- return -1;
-}
-#endif /* !CONFIG_DMAR_TABLE */
-
-struct irte {
- union {
- struct {
- __u64 present : 1,
- fpd : 1,
- dst_mode : 1,
- redir_hint : 1,
- trigger_mode : 1,
- dlvry_mode : 3,
- avail : 4,
- __reserved_1 : 4,
- vector : 8,
- __reserved_2 : 8,
- dest_id : 32;
- };
- __u64 low;
- };
-
- union {
- struct {
- __u64 sid : 16,
- sq : 2,
- svt : 2,
- __reserved_3 : 44;
- };
- __u64 high;
- };
-};
-
-#ifdef CONFIG_IRQ_REMAP
-extern int intr_remapping_enabled;
-extern int intr_remapping_supported(void);
-extern int enable_intr_remapping(void);
-extern void disable_intr_remapping(void);
-extern int reenable_intr_remapping(int);
-
-extern int get_irte(int irq, struct irte *entry);
-extern int modify_irte(int irq, struct irte *irte_modified);
-extern int alloc_irte(struct intel_iommu *iommu, int irq, u16 count);
-extern int set_irte_irq(int irq, struct intel_iommu *iommu, u16 index,
- u16 sub_handle);
-extern int map_irq_to_irte_handle(int irq, u16 *sub_handle);
-extern int free_irte(int irq);
-
-extern struct intel_iommu *map_dev_to_ir(struct pci_dev *dev);
-extern struct intel_iommu *map_ioapic_to_ir(int apic);
-extern struct intel_iommu *map_hpet_to_ir(u8 id);
-extern int set_ioapic_sid(struct irte *irte, int apic);
-extern int set_hpet_sid(struct irte *irte, u8 id);
-extern int set_msi_sid(struct irte *irte, struct pci_dev *dev);
-#else
-static inline int alloc_irte(struct intel_iommu *iommu, int irq, u16 count)
-{
- return -1;
-}
-static inline int modify_irte(int irq, struct irte *irte_modified)
-{
- return -1;
-}
-static inline int free_irte(int irq)
-{
- return -1;
-}
-static inline int map_irq_to_irte_handle(int irq, u16 *sub_handle)
-{
- return -1;
-}
-static inline int set_irte_irq(int irq, struct intel_iommu *iommu, u16 index,
- u16 sub_handle)
-{
- return -1;
-}
-static inline struct intel_iommu *map_dev_to_ir(struct pci_dev *dev)
-{
- return NULL;
-}
-static inline struct intel_iommu *map_ioapic_to_ir(int apic)
-{
- return NULL;
-}
-static inline struct intel_iommu *map_hpet_to_ir(unsigned int hpet_id)
-{
- return NULL;
-}
-static inline int set_ioapic_sid(struct irte *irte, int apic)
-{
- return 0;
-}
-static inline int set_hpet_sid(struct irte *irte, u8 id)
-{
- return -1;
-}
-static inline int set_msi_sid(struct irte *irte, struct pci_dev *dev)
-{
- return 0;
-}
-
-#define intr_remapping_enabled (0)
-
-static inline int enable_intr_remapping(void)
-{
- return -1;
-}
-
-static inline void disable_intr_remapping(void)
-{
-}
-
-static inline int reenable_intr_remapping(int eim)
-{
- return 0;
-}
-#endif
-
-enum {
- IRQ_REMAP_XAPIC_MODE,
- IRQ_REMAP_X2APIC_MODE,
-};
-
-/* Can't use the common MSI interrupt functions
- * since DMAR is not a pci device
- */
-struct irq_data;
-extern void dmar_msi_unmask(struct irq_data *data);
-extern void dmar_msi_mask(struct irq_data *data);
-extern void dmar_msi_read(int irq, struct msi_msg *msg);
-extern void dmar_msi_write(int irq, struct msi_msg *msg);
-extern int dmar_set_interrupt(struct intel_iommu *iommu);
-extern irqreturn_t dmar_fault(int irq, void *dev_id);
-extern int arch_setup_dmar_msi(unsigned int irq);
-
-#ifdef CONFIG_INTEL_IOMMU
-extern int iommu_detected, no_iommu;
-extern struct list_head dmar_rmrr_units;
-struct dmar_rmrr_unit {
- struct list_head list; /* list of rmrr units */
- struct acpi_dmar_header *hdr; /* ACPI header */
- u64 base_address; /* reserved base address*/
- u64 end_address; /* reserved end address */
- struct pci_dev **devices; /* target devices */
- int devices_cnt; /* target device count */
-};
-
-#define for_each_rmrr_units(rmrr) \
- list_for_each_entry(rmrr, &dmar_rmrr_units, list)
-
-struct dmar_atsr_unit {
- struct list_head list; /* list of ATSR units */
- struct acpi_dmar_header *hdr; /* ACPI header */
- struct pci_dev **devices; /* target devices */
- int devices_cnt; /* target device count */
- u8 include_all:1; /* include all ports */
-};
-
-int dmar_parse_rmrr_atsr_dev(void);
-extern int dmar_parse_one_rmrr(struct acpi_dmar_header *header);
-extern int dmar_parse_one_atsr(struct acpi_dmar_header *header);
-extern int dmar_parse_dev_scope(void *start, void *end, int *cnt,
- struct pci_dev ***devices, u16 segment);
-extern int intel_iommu_init(void);
-#else /* !CONFIG_INTEL_IOMMU: */
-static inline int intel_iommu_init(void) { return -ENODEV; }
-static inline int dmar_parse_one_rmrr(struct acpi_dmar_header *header)
-{
- return 0;
-}
-static inline int dmar_parse_one_atsr(struct acpi_dmar_header *header)
-{
- return 0;
-}
-static inline int dmar_parse_rmrr_atsr_dev(void)
-{
- return 0;
-}
-#endif /* CONFIG_INTEL_IOMMU */
-
-#endif /* __DMAR_H__ */
diff --git a/ANDROID_3.4.5/include/linux/dmi.h b/ANDROID_3.4.5/include/linux/dmi.h
deleted file mode 100644
index f156cca2..00000000
--- a/ANDROID_3.4.5/include/linux/dmi.h
+++ /dev/null
@@ -1,139 +0,0 @@
-#ifndef __DMI_H__
-#define __DMI_H__
-
-#include <linux/list.h>
-#include <linux/mod_devicetable.h>
-
-/* enum dmi_field is in mod_devicetable.h */
-
-enum dmi_device_type {
- DMI_DEV_TYPE_ANY = 0,
- DMI_DEV_TYPE_OTHER,
- DMI_DEV_TYPE_UNKNOWN,
- DMI_DEV_TYPE_VIDEO,
- DMI_DEV_TYPE_SCSI,
- DMI_DEV_TYPE_ETHERNET,
- DMI_DEV_TYPE_TOKENRING,
- DMI_DEV_TYPE_SOUND,
- DMI_DEV_TYPE_PATA,
- DMI_DEV_TYPE_SATA,
- DMI_DEV_TYPE_SAS,
- DMI_DEV_TYPE_IPMI = -1,
- DMI_DEV_TYPE_OEM_STRING = -2,
- DMI_DEV_TYPE_DEV_ONBOARD = -3,
-};
-
-enum dmi_entry_type {
- DMI_ENTRY_BIOS = 0,
- DMI_ENTRY_SYSTEM,
- DMI_ENTRY_BASEBOARD,
- DMI_ENTRY_CHASSIS,
- DMI_ENTRY_PROCESSOR,
- DMI_ENTRY_MEM_CONTROLLER,
- DMI_ENTRY_MEM_MODULE,
- DMI_ENTRY_CACHE,
- DMI_ENTRY_PORT_CONNECTOR,
- DMI_ENTRY_SYSTEM_SLOT,
- DMI_ENTRY_ONBOARD_DEVICE,
- DMI_ENTRY_OEMSTRINGS,
- DMI_ENTRY_SYSCONF,
- DMI_ENTRY_BIOS_LANG,
- DMI_ENTRY_GROUP_ASSOC,
- DMI_ENTRY_SYSTEM_EVENT_LOG,
- DMI_ENTRY_PHYS_MEM_ARRAY,
- DMI_ENTRY_MEM_DEVICE,
- DMI_ENTRY_32_MEM_ERROR,
- DMI_ENTRY_MEM_ARRAY_MAPPED_ADDR,
- DMI_ENTRY_MEM_DEV_MAPPED_ADDR,
- DMI_ENTRY_BUILTIN_POINTING_DEV,
- DMI_ENTRY_PORTABLE_BATTERY,
- DMI_ENTRY_SYSTEM_RESET,
- DMI_ENTRY_HW_SECURITY,
- DMI_ENTRY_SYSTEM_POWER_CONTROLS,
- DMI_ENTRY_VOLTAGE_PROBE,
- DMI_ENTRY_COOLING_DEV,
- DMI_ENTRY_TEMP_PROBE,
- DMI_ENTRY_ELECTRICAL_CURRENT_PROBE,
- DMI_ENTRY_OOB_REMOTE_ACCESS,
- DMI_ENTRY_BIS_ENTRY,
- DMI_ENTRY_SYSTEM_BOOT,
- DMI_ENTRY_MGMT_DEV,
- DMI_ENTRY_MGMT_DEV_COMPONENT,
- DMI_ENTRY_MGMT_DEV_THRES,
- DMI_ENTRY_MEM_CHANNEL,
- DMI_ENTRY_IPMI_DEV,
- DMI_ENTRY_SYS_POWER_SUPPLY,
- DMI_ENTRY_ADDITIONAL,
- DMI_ENTRY_ONBOARD_DEV_EXT,
- DMI_ENTRY_MGMT_CONTROLLER_HOST,
- DMI_ENTRY_INACTIVE = 126,
- DMI_ENTRY_END_OF_TABLE = 127,
-};
-
-struct dmi_header {
- u8 type;
- u8 length;
- u16 handle;
-};
-
-struct dmi_device {
- struct list_head list;
- int type;
- const char *name;
- void *device_data; /* Type specific data */
-};
-
-#ifdef CONFIG_DMI
-
-struct dmi_dev_onboard {
- struct dmi_device dev;
- int instance;
- int segment;
- int bus;
- int devfn;
-};
-
-extern int dmi_check_system(const struct dmi_system_id *list);
-const struct dmi_system_id *dmi_first_match(const struct dmi_system_id *list);
-extern const char * dmi_get_system_info(int field);
-extern const struct dmi_device * dmi_find_device(int type, const char *name,
- const struct dmi_device *from);
-extern void dmi_scan_machine(void);
-extern bool dmi_get_date(int field, int *yearp, int *monthp, int *dayp);
-extern int dmi_name_in_vendors(const char *str);
-extern int dmi_name_in_serial(const char *str);
-extern int dmi_available;
-extern int dmi_walk(void (*decode)(const struct dmi_header *, void *),
- void *private_data);
-extern bool dmi_match(enum dmi_field f, const char *str);
-
-#else
-
-static inline int dmi_check_system(const struct dmi_system_id *list) { return 0; }
-static inline const char * dmi_get_system_info(int field) { return NULL; }
-static inline const struct dmi_device * dmi_find_device(int type, const char *name,
- const struct dmi_device *from) { return NULL; }
-static inline void dmi_scan_machine(void) { return; }
-static inline bool dmi_get_date(int field, int *yearp, int *monthp, int *dayp)
-{
- if (yearp)
- *yearp = 0;
- if (monthp)
- *monthp = 0;
- if (dayp)
- *dayp = 0;
- return false;
-}
-static inline int dmi_name_in_vendors(const char *s) { return 0; }
-static inline int dmi_name_in_serial(const char *s) { return 0; }
-#define dmi_available 0
-static inline int dmi_walk(void (*decode)(const struct dmi_header *, void *),
- void *private_data) { return -1; }
-static inline bool dmi_match(enum dmi_field f, const char *str)
- { return false; }
-static inline const struct dmi_system_id *
- dmi_first_match(const struct dmi_system_id *list) { return NULL; }
-
-#endif
-
-#endif /* __DMI_H__ */
diff --git a/ANDROID_3.4.5/include/linux/dn.h b/ANDROID_3.4.5/include/linux/dn.h
deleted file mode 100644
index 9c504454..00000000
--- a/ANDROID_3.4.5/include/linux/dn.h
+++ /dev/null
@@ -1,146 +0,0 @@
-#ifndef _LINUX_DN_H
-#define _LINUX_DN_H
-
-#include <linux/types.h>
-
-/*
-
- DECnet Data Structures and Constants
-
-*/
-
-/*
- * DNPROTO_NSP can't be the same as SOL_SOCKET,
- * so increment each by one (compared to ULTRIX)
- */
-#define DNPROTO_NSP 2 /* NSP protocol number */
-#define DNPROTO_ROU 3 /* Routing protocol number */
-#define DNPROTO_NML 4 /* Net mgt protocol number */
-#define DNPROTO_EVL 5 /* Evl protocol number (usr) */
-#define DNPROTO_EVR 6 /* Evl protocol number (evl) */
-#define DNPROTO_NSPT 7 /* NSP trace protocol number */
-
-
-#define DN_ADDL 2
-#define DN_MAXADDL 2 /* ULTRIX headers have 20 here, but pathworks has 2 */
-#define DN_MAXOPTL 16
-#define DN_MAXOBJL 16
-#define DN_MAXACCL 40
-#define DN_MAXALIASL 128
-#define DN_MAXNODEL 256
-#define DNBUFSIZE 65023
-
-/*
- * SET/GET Socket options - must match the DSO_ numbers below
- */
-#define SO_CONDATA 1
-#define SO_CONACCESS 2
-#define SO_PROXYUSR 3
-#define SO_LINKINFO 7
-
-#define DSO_CONDATA 1 /* Set/Get connect data */
-#define DSO_DISDATA 10 /* Set/Get disconnect data */
-#define DSO_CONACCESS 2 /* Set/Get connect access data */
-#define DSO_ACCEPTMODE 4 /* Set/Get accept mode */
-#define DSO_CONACCEPT 5 /* Accept deferred connection */
-#define DSO_CONREJECT 6 /* Reject deferred connection */
-#define DSO_LINKINFO 7 /* Set/Get link information */
-#define DSO_STREAM 8 /* Set socket type to stream */
-#define DSO_SEQPACKET 9 /* Set socket type to sequenced packet */
-#define DSO_MAXWINDOW 11 /* Maximum window size allowed */
-#define DSO_NODELAY 12 /* Turn off nagle */
-#define DSO_CORK 13 /* Wait for more data! */
-#define DSO_SERVICES 14 /* NSP Services field */
-#define DSO_INFO 15 /* NSP Info field */
-#define DSO_MAX 15 /* Maximum option number */
-
-
-/* LINK States */
-#define LL_INACTIVE 0
-#define LL_CONNECTING 1
-#define LL_RUNNING 2
-#define LL_DISCONNECTING 3
-
-#define ACC_IMMED 0
-#define ACC_DEFER 1
-
-#define SDF_WILD 1 /* Wild card object */
-#define SDF_PROXY 2 /* Addr eligible for proxy */
-#define SDF_UICPROXY 4 /* Use uic-based proxy */
-
-/* Structures */
-
-
-struct dn_naddr {
- __le16 a_len;
- __u8 a_addr[DN_MAXADDL]; /* Two bytes little endian */
-};
-
-struct sockaddr_dn {
- __u16 sdn_family;
- __u8 sdn_flags;
- __u8 sdn_objnum;
- __le16 sdn_objnamel;
- __u8 sdn_objname[DN_MAXOBJL];
- struct dn_naddr sdn_add;
-};
-#define sdn_nodeaddrl sdn_add.a_len /* Node address length */
-#define sdn_nodeaddr sdn_add.a_addr /* Node address */
-
-
-
-/*
- * DECnet set/get DSO_CONDATA, DSO_DISDATA (optional data) structure
- */
-struct optdata_dn {
- __le16 opt_status; /* Extended status return */
-#define opt_sts opt_status
- __le16 opt_optl; /* Length of user data */
- __u8 opt_data[16]; /* User data */
-};
-
-struct accessdata_dn {
- __u8 acc_accl;
- __u8 acc_acc[DN_MAXACCL];
- __u8 acc_passl;
- __u8 acc_pass[DN_MAXACCL];
- __u8 acc_userl;
- __u8 acc_user[DN_MAXACCL];
-};
-
-/*
- * DECnet logical link information structure
- */
-struct linkinfo_dn {
- __u16 idn_segsize; /* Segment size for link */
- __u8 idn_linkstate; /* Logical link state */
-};
-
-/*
- * Ethernet address format (for DECnet)
- */
-union etheraddress {
- __u8 dne_addr[6]; /* Full ethernet address */
- struct {
- __u8 dne_hiord[4]; /* DECnet HIORD prefix */
- __u8 dne_nodeaddr[2]; /* DECnet node address */
- } dne_remote;
-};
-
-
-/*
- * DECnet physical socket address format
- */
-struct dn_addr {
- __le16 dna_family; /* AF_DECnet */
- union etheraddress dna_netaddr; /* DECnet ethernet address */
-};
-
-#define DECNET_IOCTL_BASE 0x89 /* PROTOPRIVATE range */
-
-#define SIOCSNETADDR _IOW(DECNET_IOCTL_BASE, 0xe0, struct dn_naddr)
-#define SIOCGNETADDR _IOR(DECNET_IOCTL_BASE, 0xe1, struct dn_naddr)
-#define OSIOCSNETADDR _IOW(DECNET_IOCTL_BASE, 0xe0, int)
-#define OSIOCGNETADDR _IOR(DECNET_IOCTL_BASE, 0xe1, int)
-
-#endif /* _LINUX_DN_H */
diff --git a/ANDROID_3.4.5/include/linux/dnotify.h b/ANDROID_3.4.5/include/linux/dnotify.h
deleted file mode 100644
index 3290555a..00000000
--- a/ANDROID_3.4.5/include/linux/dnotify.h
+++ /dev/null
@@ -1,50 +0,0 @@
-#ifndef _LINUX_DNOTIFY_H
-#define _LINUX_DNOTIFY_H
-/*
- * Directory notification for Linux
- *
- * Copyright (C) 2000,2002 Stephen Rothwell
- */
-
-#include <linux/fs.h>
-
-struct dnotify_struct {
- struct dnotify_struct * dn_next;
- __u32 dn_mask;
- int dn_fd;
- struct file * dn_filp;
- fl_owner_t dn_owner;
-};
-
-#ifdef __KERNEL__
-
-
-#ifdef CONFIG_DNOTIFY
-
-#define DNOTIFY_ALL_EVENTS (FS_DELETE | FS_DELETE_CHILD |\
- FS_MODIFY | FS_MODIFY_CHILD |\
- FS_ACCESS | FS_ACCESS_CHILD |\
- FS_ATTRIB | FS_ATTRIB_CHILD |\
- FS_CREATE | FS_DN_RENAME |\
- FS_MOVED_FROM | FS_MOVED_TO)
-
-extern int dir_notify_enable;
-extern void dnotify_flush(struct file *, fl_owner_t);
-extern int fcntl_dirnotify(int, struct file *, unsigned long);
-
-#else
-
-static inline void dnotify_flush(struct file *filp, fl_owner_t id)
-{
-}
-
-static inline int fcntl_dirnotify(int fd, struct file *filp, unsigned long arg)
-{
- return -EINVAL;
-}
-
-#endif /* CONFIG_DNOTIFY */
-
-#endif /* __KERNEL __ */
-
-#endif /* _LINUX_DNOTIFY_H */
diff --git a/ANDROID_3.4.5/include/linux/dns_resolver.h b/ANDROID_3.4.5/include/linux/dns_resolver.h
deleted file mode 100644
index cc92268a..00000000
--- a/ANDROID_3.4.5/include/linux/dns_resolver.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * DNS Resolver upcall management for CIFS DFS and AFS
- * Handles host name to IP address resolution and DNS query for AFSDB RR.
- *
- * Copyright (c) International Business Machines Corp., 2008
- * Author(s): Steve French (sfrench@us.ibm.com)
- * Wang Lei (wang840925@gmail.com)
- *
- * 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
- */
-
-#ifndef _LINUX_DNS_RESOLVER_H
-#define _LINUX_DNS_RESOLVER_H
-
-#ifdef __KERNEL__
-
-extern int dns_query(const char *type, const char *name, size_t namelen,
- const char *options, char **_result, time_t *_expiry);
-
-#endif /* KERNEL */
-
-#endif /* _LINUX_DNS_RESOLVER_H */
diff --git a/ANDROID_3.4.5/include/linux/dqblk_qtree.h b/ANDROID_3.4.5/include/linux/dqblk_qtree.h
deleted file mode 100644
index 82a16527..00000000
--- a/ANDROID_3.4.5/include/linux/dqblk_qtree.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Definitions of structures and functions for quota formats using trie
- */
-
-#ifndef _LINUX_DQBLK_QTREE_H
-#define _LINUX_DQBLK_QTREE_H
-
-#include <linux/types.h>
-
-/* Numbers of blocks needed for updates - we count with the smallest
- * possible block size (1024) */
-#define QTREE_INIT_ALLOC 4
-#define QTREE_INIT_REWRITE 2
-#define QTREE_DEL_ALLOC 0
-#define QTREE_DEL_REWRITE 6
-
-struct dquot;
-
-/* Operations */
-struct qtree_fmt_operations {
- void (*mem2disk_dqblk)(void *disk, struct dquot *dquot); /* Convert given entry from in memory format to disk one */
- void (*disk2mem_dqblk)(struct dquot *dquot, void *disk); /* Convert given entry from disk format to in memory one */
- int (*is_id)(void *disk, struct dquot *dquot); /* Is this structure for given id? */
-};
-
-/* Inmemory copy of version specific information */
-struct qtree_mem_dqinfo {
- struct super_block *dqi_sb; /* Sb quota is on */
- int dqi_type; /* Quota type */
- unsigned int dqi_blocks; /* # of blocks in quota file */
- unsigned int dqi_free_blk; /* First block in list of free blocks */
- unsigned int dqi_free_entry; /* First block with free entry */
- unsigned int dqi_blocksize_bits; /* Block size of quota file */
- unsigned int dqi_entry_size; /* Size of quota entry in quota file */
- unsigned int dqi_usable_bs; /* Space usable in block for quota data */
- unsigned int dqi_qtree_depth; /* Precomputed depth of quota tree */
- struct qtree_fmt_operations *dqi_ops; /* Operations for entry manipulation */
-};
-
-int qtree_write_dquot(struct qtree_mem_dqinfo *info, struct dquot *dquot);
-int qtree_read_dquot(struct qtree_mem_dqinfo *info, struct dquot *dquot);
-int qtree_delete_dquot(struct qtree_mem_dqinfo *info, struct dquot *dquot);
-int qtree_release_dquot(struct qtree_mem_dqinfo *info, struct dquot *dquot);
-int qtree_entry_unused(struct qtree_mem_dqinfo *info, char *disk);
-static inline int qtree_depth(struct qtree_mem_dqinfo *info)
-{
- unsigned int epb = info->dqi_usable_bs >> 2;
- unsigned long long entries = epb;
- int i;
-
- for (i = 1; entries < (1ULL << 32); i++)
- entries *= epb;
- return i;
-}
-
-#endif /* _LINUX_DQBLK_QTREE_H */
diff --git a/ANDROID_3.4.5/include/linux/dqblk_v1.h b/ANDROID_3.4.5/include/linux/dqblk_v1.h
deleted file mode 100644
index 3713a723..00000000
--- a/ANDROID_3.4.5/include/linux/dqblk_v1.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * File with in-memory structures of old quota format
- */
-
-#ifndef _LINUX_DQBLK_V1_H
-#define _LINUX_DQBLK_V1_H
-
-/* Root squash turned on */
-#define V1_DQF_RSQUASH 1
-
-/* Numbers of blocks needed for updates */
-#define V1_INIT_ALLOC 1
-#define V1_INIT_REWRITE 1
-#define V1_DEL_ALLOC 0
-#define V1_DEL_REWRITE 2
-
-#endif /* _LINUX_DQBLK_V1_H */
diff --git a/ANDROID_3.4.5/include/linux/dqblk_v2.h b/ANDROID_3.4.5/include/linux/dqblk_v2.h
deleted file mode 100644
index 18000a54..00000000
--- a/ANDROID_3.4.5/include/linux/dqblk_v2.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * Definitions for vfsv0 quota format
- */
-
-#ifndef _LINUX_DQBLK_V2_H
-#define _LINUX_DQBLK_V2_H
-
-#include <linux/dqblk_qtree.h>
-
-/* Numbers of blocks needed for updates */
-#define V2_INIT_ALLOC QTREE_INIT_ALLOC
-#define V2_INIT_REWRITE QTREE_INIT_REWRITE
-#define V2_DEL_ALLOC QTREE_DEL_ALLOC
-#define V2_DEL_REWRITE QTREE_DEL_REWRITE
-
-#endif /* _LINUX_DQBLK_V2_H */
diff --git a/ANDROID_3.4.5/include/linux/dqblk_xfs.h b/ANDROID_3.4.5/include/linux/dqblk_xfs.h
deleted file mode 100644
index 86552807..00000000
--- a/ANDROID_3.4.5/include/linux/dqblk_xfs.h
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * Copyright (c) 1995-2001,2004 Silicon Graphics, Inc. All Rights Reserved.
- *
- * This program 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.
- *
- * 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 Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesset 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 _LINUX_DQBLK_XFS_H
-#define _LINUX_DQBLK_XFS_H
-
-#include <linux/types.h>
-
-/*
- * Disk quota - quotactl(2) commands for the XFS Quota Manager (XQM).
- */
-
-#define XQM_CMD(x) (('X'<<8)+(x)) /* note: forms first QCMD argument */
-#define XQM_COMMAND(x) (((x) & (0xff<<8)) == ('X'<<8)) /* test if for XFS */
-
-#define XQM_USRQUOTA 0 /* system call user quota type */
-#define XQM_GRPQUOTA 1 /* system call group quota type */
-#define XQM_PRJQUOTA 2 /* system call project quota type */
-#define XQM_MAXQUOTAS 3
-
-#define Q_XQUOTAON XQM_CMD(1) /* enable accounting/enforcement */
-#define Q_XQUOTAOFF XQM_CMD(2) /* disable accounting/enforcement */
-#define Q_XGETQUOTA XQM_CMD(3) /* get disk limits and usage */
-#define Q_XSETQLIM XQM_CMD(4) /* set disk limits */
-#define Q_XGETQSTAT XQM_CMD(5) /* get quota subsystem status */
-#define Q_XQUOTARM XQM_CMD(6) /* free disk space used by dquots */
-#define Q_XQUOTASYNC XQM_CMD(7) /* delalloc flush, updates dquots */
-
-/*
- * fs_disk_quota structure:
- *
- * This contains the current quota information regarding a user/proj/group.
- * It is 64-bit aligned, and all the blk units are in BBs (Basic Blocks) of
- * 512 bytes.
- */
-#define FS_DQUOT_VERSION 1 /* fs_disk_quota.d_version */
-typedef struct fs_disk_quota {
- __s8 d_version; /* version of this structure */
- __s8 d_flags; /* FS_{USER,PROJ,GROUP}_QUOTA */
- __u16 d_fieldmask; /* field specifier */
- __u32 d_id; /* user, project, or group ID */
- __u64 d_blk_hardlimit;/* absolute limit on disk blks */
- __u64 d_blk_softlimit;/* preferred limit on disk blks */
- __u64 d_ino_hardlimit;/* maximum # allocated inodes */
- __u64 d_ino_softlimit;/* preferred inode limit */
- __u64 d_bcount; /* # disk blocks owned by the user */
- __u64 d_icount; /* # inodes owned by the user */
- __s32 d_itimer; /* zero if within inode limits */
- /* if not, we refuse service */
- __s32 d_btimer; /* similar to above; for disk blocks */
- __u16 d_iwarns; /* # warnings issued wrt num inodes */
- __u16 d_bwarns; /* # warnings issued wrt disk blocks */
- __s32 d_padding2; /* padding2 - for future use */
- __u64 d_rtb_hardlimit;/* absolute limit on realtime blks */
- __u64 d_rtb_softlimit;/* preferred limit on RT disk blks */
- __u64 d_rtbcount; /* # realtime blocks owned */
- __s32 d_rtbtimer; /* similar to above; for RT disk blks */
- __u16 d_rtbwarns; /* # warnings issued wrt RT disk blks */
- __s16 d_padding3; /* padding3 - for future use */
- char d_padding4[8]; /* yet more padding */
-} fs_disk_quota_t;
-
-/*
- * These fields are sent to Q_XSETQLIM to specify fields that need to change.
- */
-#define FS_DQ_ISOFT (1<<0)
-#define FS_DQ_IHARD (1<<1)
-#define FS_DQ_BSOFT (1<<2)
-#define FS_DQ_BHARD (1<<3)
-#define FS_DQ_RTBSOFT (1<<4)
-#define FS_DQ_RTBHARD (1<<5)
-#define FS_DQ_LIMIT_MASK (FS_DQ_ISOFT | FS_DQ_IHARD | FS_DQ_BSOFT | \
- FS_DQ_BHARD | FS_DQ_RTBSOFT | FS_DQ_RTBHARD)
-/*
- * These timers can only be set in super user's dquot. For others, timers are
- * automatically started and stopped. Superusers timer values set the limits
- * for the rest. In case these values are zero, the DQ_{F,B}TIMELIMIT values
- * defined below are used.
- * These values also apply only to the d_fieldmask field for Q_XSETQLIM.
- */
-#define FS_DQ_BTIMER (1<<6)
-#define FS_DQ_ITIMER (1<<7)
-#define FS_DQ_RTBTIMER (1<<8)
-#define FS_DQ_TIMER_MASK (FS_DQ_BTIMER | FS_DQ_ITIMER | FS_DQ_RTBTIMER)
-
-/*
- * Warning counts are set in both super user's dquot and others. For others,
- * warnings are set/cleared by the administrators (or automatically by going
- * below the soft limit). Superusers warning values set the warning limits
- * for the rest. In case these values are zero, the DQ_{F,B}WARNLIMIT values
- * defined below are used.
- * These values also apply only to the d_fieldmask field for Q_XSETQLIM.
- */
-#define FS_DQ_BWARNS (1<<9)
-#define FS_DQ_IWARNS (1<<10)
-#define FS_DQ_RTBWARNS (1<<11)
-#define FS_DQ_WARNS_MASK (FS_DQ_BWARNS | FS_DQ_IWARNS | FS_DQ_RTBWARNS)
-
-/*
- * Accounting values. These can only be set for filesystem with
- * non-transactional quotas that require quotacheck(8) in userspace.
- */
-#define FS_DQ_BCOUNT (1<<12)
-#define FS_DQ_ICOUNT (1<<13)
-#define FS_DQ_RTBCOUNT (1<<14)
-#define FS_DQ_ACCT_MASK (FS_DQ_BCOUNT | FS_DQ_ICOUNT | FS_DQ_RTBCOUNT)
-
-/*
- * Various flags related to quotactl(2).
- */
-#define FS_QUOTA_UDQ_ACCT (1<<0) /* user quota accounting */
-#define FS_QUOTA_UDQ_ENFD (1<<1) /* user quota limits enforcement */
-#define FS_QUOTA_GDQ_ACCT (1<<2) /* group quota accounting */
-#define FS_QUOTA_GDQ_ENFD (1<<3) /* group quota limits enforcement */
-#define FS_QUOTA_PDQ_ACCT (1<<4) /* project quota accounting */
-#define FS_QUOTA_PDQ_ENFD (1<<5) /* project quota limits enforcement */
-
-#define FS_USER_QUOTA (1<<0) /* user quota type */
-#define FS_PROJ_QUOTA (1<<1) /* project quota type */
-#define FS_GROUP_QUOTA (1<<2) /* group quota type */
-
-/*
- * fs_quota_stat is the struct returned in Q_XGETQSTAT for a given file system.
- * Provides a centralized way to get meta information about the quota subsystem.
- * eg. space taken up for user and group quotas, number of dquots currently
- * incore.
- */
-#define FS_QSTAT_VERSION 1 /* fs_quota_stat.qs_version */
-
-/*
- * Some basic information about 'quota files'.
- */
-typedef struct fs_qfilestat {
- __u64 qfs_ino; /* inode number */
- __u64 qfs_nblks; /* number of BBs 512-byte-blks */
- __u32 qfs_nextents; /* number of extents */
-} fs_qfilestat_t;
-
-typedef struct fs_quota_stat {
- __s8 qs_version; /* version number for future changes */
- __u16 qs_flags; /* FS_QUOTA_{U,P,G}DQ_{ACCT,ENFD} */
- __s8 qs_pad; /* unused */
- fs_qfilestat_t qs_uquota; /* user quota storage information */
- fs_qfilestat_t qs_gquota; /* group quota storage information */
- __u32 qs_incoredqs; /* number of dquots incore */
- __s32 qs_btimelimit; /* limit for blks timer */
- __s32 qs_itimelimit; /* limit for inodes timer */
- __s32 qs_rtbtimelimit;/* limit for rt blks timer */
- __u16 qs_bwarnlimit; /* limit for num warnings */
- __u16 qs_iwarnlimit; /* limit for num warnings */
-} fs_quota_stat_t;
-
-#endif /* _LINUX_DQBLK_XFS_H */
diff --git a/ANDROID_3.4.5/include/linux/drbd.h b/ANDROID_3.4.5/include/linux/drbd.h
deleted file mode 100644
index 9e5f5607..00000000
--- a/ANDROID_3.4.5/include/linux/drbd.h
+++ /dev/null
@@ -1,369 +0,0 @@
-/*
- drbd.h
- Kernel module for 2.6.x Kernels
-
- This file is part of DRBD by Philipp Reisner and Lars Ellenberg.
-
- Copyright (C) 2001-2008, LINBIT Information Technologies GmbH.
- Copyright (C) 2001-2008, Philipp Reisner <philipp.reisner@linbit.com>.
- Copyright (C) 2001-2008, Lars Ellenberg <lars.ellenberg@linbit.com>.
-
- drbd 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.
-
- drbd 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 drbd; see the file COPYING. If not, write to
- the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-
-*/
-#ifndef DRBD_H
-#define DRBD_H
-#include <linux/connector.h>
-#include <asm/types.h>
-
-#ifdef __KERNEL__
-#include <linux/types.h>
-#include <asm/byteorder.h>
-#else
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <limits.h>
-
-/* Although the Linux source code makes a difference between
- generic endianness and the bitfields' endianness, there is no
- architecture as of Linux-2.6.24-rc4 where the bitfields' endianness
- does not match the generic endianness. */
-
-#if __BYTE_ORDER == __LITTLE_ENDIAN
-#define __LITTLE_ENDIAN_BITFIELD
-#elif __BYTE_ORDER == __BIG_ENDIAN
-#define __BIG_ENDIAN_BITFIELD
-#else
-# error "sorry, weird endianness on this box"
-#endif
-
-#endif
-
-
-extern const char *drbd_buildtag(void);
-#define REL_VERSION "8.3.11"
-#define API_VERSION 88
-#define PRO_VERSION_MIN 86
-#define PRO_VERSION_MAX 96
-
-
-enum drbd_io_error_p {
- EP_PASS_ON, /* FIXME should the better be named "Ignore"? */
- EP_CALL_HELPER,
- EP_DETACH
-};
-
-enum drbd_fencing_p {
- FP_DONT_CARE,
- FP_RESOURCE,
- FP_STONITH
-};
-
-enum drbd_disconnect_p {
- DP_RECONNECT,
- DP_DROP_NET_CONF,
- DP_FREEZE_IO
-};
-
-enum drbd_after_sb_p {
- ASB_DISCONNECT,
- ASB_DISCARD_YOUNGER_PRI,
- ASB_DISCARD_OLDER_PRI,
- ASB_DISCARD_ZERO_CHG,
- ASB_DISCARD_LEAST_CHG,
- ASB_DISCARD_LOCAL,
- ASB_DISCARD_REMOTE,
- ASB_CONSENSUS,
- ASB_DISCARD_SECONDARY,
- ASB_CALL_HELPER,
- ASB_VIOLENTLY
-};
-
-enum drbd_on_no_data {
- OND_IO_ERROR,
- OND_SUSPEND_IO
-};
-
-enum drbd_on_congestion {
- OC_BLOCK,
- OC_PULL_AHEAD,
- OC_DISCONNECT,
-};
-
-/* KEEP the order, do not delete or insert. Only append. */
-enum drbd_ret_code {
- ERR_CODE_BASE = 100,
- NO_ERROR = 101,
- ERR_LOCAL_ADDR = 102,
- ERR_PEER_ADDR = 103,
- ERR_OPEN_DISK = 104,
- ERR_OPEN_MD_DISK = 105,
- ERR_DISK_NOT_BDEV = 107,
- ERR_MD_NOT_BDEV = 108,
- ERR_DISK_TO_SMALL = 111,
- ERR_MD_DISK_TO_SMALL = 112,
- ERR_BDCLAIM_DISK = 114,
- ERR_BDCLAIM_MD_DISK = 115,
- ERR_MD_IDX_INVALID = 116,
- ERR_IO_MD_DISK = 118,
- ERR_MD_INVALID = 119,
- ERR_AUTH_ALG = 120,
- ERR_AUTH_ALG_ND = 121,
- ERR_NOMEM = 122,
- ERR_DISCARD = 123,
- ERR_DISK_CONFIGURED = 124,
- ERR_NET_CONFIGURED = 125,
- ERR_MANDATORY_TAG = 126,
- ERR_MINOR_INVALID = 127,
- ERR_INTR = 129, /* EINTR */
- ERR_RESIZE_RESYNC = 130,
- ERR_NO_PRIMARY = 131,
- ERR_SYNC_AFTER = 132,
- ERR_SYNC_AFTER_CYCLE = 133,
- ERR_PAUSE_IS_SET = 134,
- ERR_PAUSE_IS_CLEAR = 135,
- ERR_PACKET_NR = 137,
- ERR_NO_DISK = 138,
- ERR_NOT_PROTO_C = 139,
- ERR_NOMEM_BITMAP = 140,
- ERR_INTEGRITY_ALG = 141, /* DRBD 8.2 only */
- ERR_INTEGRITY_ALG_ND = 142, /* DRBD 8.2 only */
- ERR_CPU_MASK_PARSE = 143, /* DRBD 8.2 only */
- ERR_CSUMS_ALG = 144, /* DRBD 8.2 only */
- ERR_CSUMS_ALG_ND = 145, /* DRBD 8.2 only */
- ERR_VERIFY_ALG = 146, /* DRBD 8.2 only */
- ERR_VERIFY_ALG_ND = 147, /* DRBD 8.2 only */
- ERR_CSUMS_RESYNC_RUNNING= 148, /* DRBD 8.2 only */
- ERR_VERIFY_RUNNING = 149, /* DRBD 8.2 only */
- ERR_DATA_NOT_CURRENT = 150,
- ERR_CONNECTED = 151, /* DRBD 8.3 only */
- ERR_PERM = 152,
- ERR_NEED_APV_93 = 153,
- ERR_STONITH_AND_PROT_A = 154,
- ERR_CONG_NOT_PROTO_A = 155,
- ERR_PIC_AFTER_DEP = 156,
- ERR_PIC_PEER_DEP = 157,
-
- /* insert new ones above this line */
- AFTER_LAST_ERR_CODE
-};
-
-#define DRBD_PROT_A 1
-#define DRBD_PROT_B 2
-#define DRBD_PROT_C 3
-
-enum drbd_role {
- R_UNKNOWN = 0,
- R_PRIMARY = 1, /* role */
- R_SECONDARY = 2, /* role */
- R_MASK = 3,
-};
-
-/* The order of these constants is important.
- * The lower ones (<C_WF_REPORT_PARAMS) indicate
- * that there is no socket!
- * >=C_WF_REPORT_PARAMS ==> There is a socket
- */
-enum drbd_conns {
- C_STANDALONE,
- C_DISCONNECTING, /* Temporal state on the way to StandAlone. */
- C_UNCONNECTED, /* >= C_UNCONNECTED -> inc_net() succeeds */
-
- /* These temporal states are all used on the way
- * from >= C_CONNECTED to Unconnected.
- * The 'disconnect reason' states
- * I do not allow to change between them. */
- C_TIMEOUT,
- C_BROKEN_PIPE,
- C_NETWORK_FAILURE,
- C_PROTOCOL_ERROR,
- C_TEAR_DOWN,
-
- C_WF_CONNECTION,
- C_WF_REPORT_PARAMS, /* we have a socket */
- C_CONNECTED, /* we have introduced each other */
- C_STARTING_SYNC_S, /* starting full sync by admin request. */
- C_STARTING_SYNC_T, /* starting full sync by admin request. */
- C_WF_BITMAP_S,
- C_WF_BITMAP_T,
- C_WF_SYNC_UUID,
-
- /* All SyncStates are tested with this comparison
- * xx >= C_SYNC_SOURCE && xx <= C_PAUSED_SYNC_T */
- C_SYNC_SOURCE,
- C_SYNC_TARGET,
- C_VERIFY_S,
- C_VERIFY_T,
- C_PAUSED_SYNC_S,
- C_PAUSED_SYNC_T,
-
- C_AHEAD,
- C_BEHIND,
-
- C_MASK = 31
-};
-
-enum drbd_disk_state {
- D_DISKLESS,
- D_ATTACHING, /* In the process of reading the meta-data */
- D_FAILED, /* Becomes D_DISKLESS as soon as we told it the peer */
- /* when >= D_FAILED it is legal to access mdev->bc */
- D_NEGOTIATING, /* Late attaching state, we need to talk to the peer */
- D_INCONSISTENT,
- D_OUTDATED,
- D_UNKNOWN, /* Only used for the peer, never for myself */
- D_CONSISTENT, /* Might be D_OUTDATED, might be D_UP_TO_DATE ... */
- D_UP_TO_DATE, /* Only this disk state allows applications' IO ! */
- D_MASK = 15
-};
-
-union drbd_state {
-/* According to gcc's docs is the ...
- * The order of allocation of bit-fields within a unit (C90 6.5.2.1, C99 6.7.2.1).
- * Determined by ABI.
- * pointed out by Maxim Uvarov q<muvarov@ru.mvista.com>
- * even though we transmit as "cpu_to_be32(state)",
- * the offsets of the bitfields still need to be swapped
- * on different endianness.
- */
- struct {
-#if defined(__LITTLE_ENDIAN_BITFIELD)
- unsigned role:2 ; /* 3/4 primary/secondary/unknown */
- unsigned peer:2 ; /* 3/4 primary/secondary/unknown */
- unsigned conn:5 ; /* 17/32 cstates */
- unsigned disk:4 ; /* 8/16 from D_DISKLESS to D_UP_TO_DATE */
- unsigned pdsk:4 ; /* 8/16 from D_DISKLESS to D_UP_TO_DATE */
- unsigned susp:1 ; /* 2/2 IO suspended no/yes (by user) */
- unsigned aftr_isp:1 ; /* isp .. imposed sync pause */
- unsigned peer_isp:1 ;
- unsigned user_isp:1 ;
- unsigned susp_nod:1 ; /* IO suspended because no data */
- unsigned susp_fen:1 ; /* IO suspended because fence peer handler runs*/
- unsigned _pad:9; /* 0 unused */
-#elif defined(__BIG_ENDIAN_BITFIELD)
- unsigned _pad:9;
- unsigned susp_fen:1 ;
- unsigned susp_nod:1 ;
- unsigned user_isp:1 ;
- unsigned peer_isp:1 ;
- unsigned aftr_isp:1 ; /* isp .. imposed sync pause */
- unsigned susp:1 ; /* 2/2 IO suspended no/yes */
- unsigned pdsk:4 ; /* 8/16 from D_DISKLESS to D_UP_TO_DATE */
- unsigned disk:4 ; /* 8/16 from D_DISKLESS to D_UP_TO_DATE */
- unsigned conn:5 ; /* 17/32 cstates */
- unsigned peer:2 ; /* 3/4 primary/secondary/unknown */
- unsigned role:2 ; /* 3/4 primary/secondary/unknown */
-#else
-# error "this endianness is not supported"
-#endif
- };
- unsigned int i;
-};
-
-enum drbd_state_rv {
- SS_CW_NO_NEED = 4,
- SS_CW_SUCCESS = 3,
- SS_NOTHING_TO_DO = 2,
- SS_SUCCESS = 1,
- SS_UNKNOWN_ERROR = 0, /* Used to sleep longer in _drbd_request_state */
- SS_TWO_PRIMARIES = -1,
- SS_NO_UP_TO_DATE_DISK = -2,
- SS_NO_LOCAL_DISK = -4,
- SS_NO_REMOTE_DISK = -5,
- SS_CONNECTED_OUTDATES = -6,
- SS_PRIMARY_NOP = -7,
- SS_RESYNC_RUNNING = -8,
- SS_ALREADY_STANDALONE = -9,
- SS_CW_FAILED_BY_PEER = -10,
- SS_IS_DISKLESS = -11,
- SS_DEVICE_IN_USE = -12,
- SS_NO_NET_CONFIG = -13,
- SS_NO_VERIFY_ALG = -14, /* drbd-8.2 only */
- SS_NEED_CONNECTION = -15, /* drbd-8.2 only */
- SS_LOWER_THAN_OUTDATED = -16,
- SS_NOT_SUPPORTED = -17, /* drbd-8.2 only */
- SS_IN_TRANSIENT_STATE = -18, /* Retry after the next state change */
- SS_CONCURRENT_ST_CHG = -19, /* Concurrent cluster side state change! */
- SS_AFTER_LAST_ERROR = -20, /* Keep this at bottom */
-};
-
-/* from drbd_strings.c */
-extern const char *drbd_conn_str(enum drbd_conns);
-extern const char *drbd_role_str(enum drbd_role);
-extern const char *drbd_disk_str(enum drbd_disk_state);
-extern const char *drbd_set_st_err_str(enum drbd_state_rv);
-
-#define SHARED_SECRET_MAX 64
-
-#define MDF_CONSISTENT (1 << 0)
-#define MDF_PRIMARY_IND (1 << 1)
-#define MDF_CONNECTED_IND (1 << 2)
-#define MDF_FULL_SYNC (1 << 3)
-#define MDF_WAS_UP_TO_DATE (1 << 4)
-#define MDF_PEER_OUT_DATED (1 << 5)
-#define MDF_CRASHED_PRIMARY (1 << 6)
-
-enum drbd_uuid_index {
- UI_CURRENT,
- UI_BITMAP,
- UI_HISTORY_START,
- UI_HISTORY_END,
- UI_SIZE, /* nl-packet: number of dirty bits */
- UI_FLAGS, /* nl-packet: flags */
- UI_EXTENDED_SIZE /* Everything. */
-};
-
-enum drbd_timeout_flag {
- UT_DEFAULT = 0,
- UT_DEGRADED = 1,
- UT_PEER_OUTDATED = 2,
-};
-
-#define UUID_JUST_CREATED ((__u64)4)
-
-#define DRBD_MAGIC 0x83740267
-#define BE_DRBD_MAGIC __constant_cpu_to_be32(DRBD_MAGIC)
-#define DRBD_MAGIC_BIG 0x835a
-#define BE_DRBD_MAGIC_BIG __constant_cpu_to_be16(DRBD_MAGIC_BIG)
-
-/* these are of type "int" */
-#define DRBD_MD_INDEX_INTERNAL -1
-#define DRBD_MD_INDEX_FLEX_EXT -2
-#define DRBD_MD_INDEX_FLEX_INT -3
-
-/* Start of the new netlink/connector stuff */
-
-#define DRBD_NL_CREATE_DEVICE 0x01
-#define DRBD_NL_SET_DEFAULTS 0x02
-
-
-/* For searching a vacant cn_idx value */
-#define CN_IDX_STEP 6977
-
-struct drbd_nl_cfg_req {
- int packet_type;
- unsigned int drbd_minor;
- int flags;
- unsigned short tag_list[];
-};
-
-struct drbd_nl_cfg_reply {
- int packet_type;
- unsigned int minor;
- int ret_code; /* enum ret_code or set_st_err_t */
- unsigned short tag_list[]; /* only used with get_* calls */
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/drbd_limits.h b/ANDROID_3.4.5/include/linux/drbd_limits.h
deleted file mode 100644
index 447c3675..00000000
--- a/ANDROID_3.4.5/include/linux/drbd_limits.h
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- drbd_limits.h
- This file is part of DRBD by Philipp Reisner and Lars Ellenberg.
-*/
-
-/*
- * Our current limitations.
- * Some of them are hard limits,
- * some of them are arbitrary range limits, that make it easier to provide
- * feedback about nonsense settings for certain configurable values.
- */
-
-#ifndef DRBD_LIMITS_H
-#define DRBD_LIMITS_H 1
-
-#define DEBUG_RANGE_CHECK 0
-
-#define DRBD_MINOR_COUNT_MIN 1
-#define DRBD_MINOR_COUNT_MAX 256
-#define DRBD_MINOR_COUNT_DEF 32
-
-#define DRBD_DIALOG_REFRESH_MIN 0
-#define DRBD_DIALOG_REFRESH_MAX 600
-
-/* valid port number */
-#define DRBD_PORT_MIN 1
-#define DRBD_PORT_MAX 0xffff
-
-/* startup { */
- /* if you want more than 3.4 days, disable */
-#define DRBD_WFC_TIMEOUT_MIN 0
-#define DRBD_WFC_TIMEOUT_MAX 300000
-#define DRBD_WFC_TIMEOUT_DEF 0
-
-#define DRBD_DEGR_WFC_TIMEOUT_MIN 0
-#define DRBD_DEGR_WFC_TIMEOUT_MAX 300000
-#define DRBD_DEGR_WFC_TIMEOUT_DEF 0
-
-#define DRBD_OUTDATED_WFC_TIMEOUT_MIN 0
-#define DRBD_OUTDATED_WFC_TIMEOUT_MAX 300000
-#define DRBD_OUTDATED_WFC_TIMEOUT_DEF 0
-/* }*/
-
-/* net { */
- /* timeout, unit centi seconds
- * more than one minute timeout is not useful */
-#define DRBD_TIMEOUT_MIN 1
-#define DRBD_TIMEOUT_MAX 600
-#define DRBD_TIMEOUT_DEF 60 /* 6 seconds */
-
- /* active connection retries when C_WF_CONNECTION */
-#define DRBD_CONNECT_INT_MIN 1
-#define DRBD_CONNECT_INT_MAX 120
-#define DRBD_CONNECT_INT_DEF 10 /* seconds */
-
- /* keep-alive probes when idle */
-#define DRBD_PING_INT_MIN 1
-#define DRBD_PING_INT_MAX 120
-#define DRBD_PING_INT_DEF 10
-
- /* timeout for the ping packets.*/
-#define DRBD_PING_TIMEO_MIN 1
-#define DRBD_PING_TIMEO_MAX 100
-#define DRBD_PING_TIMEO_DEF 5
-
- /* max number of write requests between write barriers */
-#define DRBD_MAX_EPOCH_SIZE_MIN 1
-#define DRBD_MAX_EPOCH_SIZE_MAX 20000
-#define DRBD_MAX_EPOCH_SIZE_DEF 2048
-
- /* I don't think that a tcp send buffer of more than 10M is useful */
-#define DRBD_SNDBUF_SIZE_MIN 0
-#define DRBD_SNDBUF_SIZE_MAX (10<<20)
-#define DRBD_SNDBUF_SIZE_DEF 0
-
-#define DRBD_RCVBUF_SIZE_MIN 0
-#define DRBD_RCVBUF_SIZE_MAX (10<<20)
-#define DRBD_RCVBUF_SIZE_DEF 0
-
- /* @4k PageSize -> 128kB - 512MB */
-#define DRBD_MAX_BUFFERS_MIN 32
-#define DRBD_MAX_BUFFERS_MAX 131072
-#define DRBD_MAX_BUFFERS_DEF 2048
-
- /* @4k PageSize -> 4kB - 512MB */
-#define DRBD_UNPLUG_WATERMARK_MIN 1
-#define DRBD_UNPLUG_WATERMARK_MAX 131072
-#define DRBD_UNPLUG_WATERMARK_DEF (DRBD_MAX_BUFFERS_DEF/16)
-
- /* 0 is disabled.
- * 200 should be more than enough even for very short timeouts */
-#define DRBD_KO_COUNT_MIN 0
-#define DRBD_KO_COUNT_MAX 200
-#define DRBD_KO_COUNT_DEF 0
-/* } */
-
-/* syncer { */
- /* FIXME allow rate to be zero? */
-#define DRBD_RATE_MIN 1
-/* channel bonding 10 GbE, or other hardware */
-#define DRBD_RATE_MAX (4 << 20)
-#define DRBD_RATE_DEF 250 /* kb/second */
-
- /* less than 7 would hit performance unnecessarily.
- * 3833 is the largest prime that still does fit
- * into 64 sectors of activity log */
-#define DRBD_AL_EXTENTS_MIN 7
-#define DRBD_AL_EXTENTS_MAX 3833
-#define DRBD_AL_EXTENTS_DEF 127
-
-#define DRBD_AFTER_MIN -1
-#define DRBD_AFTER_MAX 255
-#define DRBD_AFTER_DEF -1
-
-/* } */
-
-/* drbdsetup XY resize -d Z
- * you are free to reduce the device size to nothing, if you want to.
- * the upper limit with 64bit kernel, enough ram and flexible meta data
- * is 1 PiB, currently. */
-/* DRBD_MAX_SECTORS */
-#define DRBD_DISK_SIZE_SECT_MIN 0
-#define DRBD_DISK_SIZE_SECT_MAX (1 * (2LLU << 40))
-#define DRBD_DISK_SIZE_SECT_DEF 0 /* = disabled = no user size... */
-
-#define DRBD_ON_IO_ERROR_DEF EP_PASS_ON
-#define DRBD_FENCING_DEF FP_DONT_CARE
-#define DRBD_AFTER_SB_0P_DEF ASB_DISCONNECT
-#define DRBD_AFTER_SB_1P_DEF ASB_DISCONNECT
-#define DRBD_AFTER_SB_2P_DEF ASB_DISCONNECT
-#define DRBD_RR_CONFLICT_DEF ASB_DISCONNECT
-#define DRBD_ON_NO_DATA_DEF OND_IO_ERROR
-#define DRBD_ON_CONGESTION_DEF OC_BLOCK
-
-#define DRBD_MAX_BIO_BVECS_MIN 0
-#define DRBD_MAX_BIO_BVECS_MAX 128
-#define DRBD_MAX_BIO_BVECS_DEF 0
-
-#define DRBD_C_PLAN_AHEAD_MIN 0
-#define DRBD_C_PLAN_AHEAD_MAX 300
-#define DRBD_C_PLAN_AHEAD_DEF 0 /* RS rate controller disabled by default */
-
-#define DRBD_C_DELAY_TARGET_MIN 1
-#define DRBD_C_DELAY_TARGET_MAX 100
-#define DRBD_C_DELAY_TARGET_DEF 10
-
-#define DRBD_C_FILL_TARGET_MIN 0
-#define DRBD_C_FILL_TARGET_MAX (1<<20) /* 500MByte in sec */
-#define DRBD_C_FILL_TARGET_DEF 0 /* By default disabled -> controlled by delay_target */
-
-#define DRBD_C_MAX_RATE_MIN 250 /* kByte/sec */
-#define DRBD_C_MAX_RATE_MAX (4 << 20)
-#define DRBD_C_MAX_RATE_DEF 102400
-
-#define DRBD_C_MIN_RATE_MIN 0 /* kByte/sec */
-#define DRBD_C_MIN_RATE_MAX (4 << 20)
-#define DRBD_C_MIN_RATE_DEF 4096
-
-#define DRBD_CONG_FILL_MIN 0
-#define DRBD_CONG_FILL_MAX (10<<21) /* 10GByte in sectors */
-#define DRBD_CONG_FILL_DEF 0
-
-#define DRBD_CONG_EXTENTS_MIN DRBD_AL_EXTENTS_MIN
-#define DRBD_CONG_EXTENTS_MAX DRBD_AL_EXTENTS_MAX
-#define DRBD_CONG_EXTENTS_DEF DRBD_AL_EXTENTS_DEF
-
-#undef RANGE
-#endif
diff --git a/ANDROID_3.4.5/include/linux/drbd_nl.h b/ANDROID_3.4.5/include/linux/drbd_nl.h
deleted file mode 100644
index ab6159e4..00000000
--- a/ANDROID_3.4.5/include/linux/drbd_nl.h
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- PAKET( name,
- TYPE ( pn, pr, member )
- ...
- )
-
- You may never reissue one of the pn arguments
-*/
-
-#if !defined(NL_PACKET) || !defined(NL_STRING) || !defined(NL_INTEGER) || !defined(NL_BIT) || !defined(NL_INT64)
-#error "The macros NL_PACKET, NL_STRING, NL_INTEGER, NL_INT64 and NL_BIT needs to be defined"
-#endif
-
-NL_PACKET(primary, 1,
- NL_BIT( 1, T_MAY_IGNORE, primary_force)
-)
-
-NL_PACKET(secondary, 2, )
-
-NL_PACKET(disk_conf, 3,
- NL_INT64( 2, T_MAY_IGNORE, disk_size)
- NL_STRING( 3, T_MANDATORY, backing_dev, 128)
- NL_STRING( 4, T_MANDATORY, meta_dev, 128)
- NL_INTEGER( 5, T_MANDATORY, meta_dev_idx)
- NL_INTEGER( 6, T_MAY_IGNORE, on_io_error)
- NL_INTEGER( 7, T_MAY_IGNORE, fencing)
- NL_BIT( 37, T_MAY_IGNORE, use_bmbv)
- NL_BIT( 53, T_MAY_IGNORE, no_disk_flush)
- NL_BIT( 54, T_MAY_IGNORE, no_md_flush)
- /* 55 max_bio_size was available in 8.2.6rc2 */
- NL_INTEGER( 56, T_MAY_IGNORE, max_bio_bvecs)
- NL_BIT( 57, T_MAY_IGNORE, no_disk_barrier)
- NL_BIT( 58, T_MAY_IGNORE, no_disk_drain)
-)
-
-NL_PACKET(detach, 4, )
-
-NL_PACKET(net_conf, 5,
- NL_STRING( 8, T_MANDATORY, my_addr, 128)
- NL_STRING( 9, T_MANDATORY, peer_addr, 128)
- NL_STRING( 10, T_MAY_IGNORE, shared_secret, SHARED_SECRET_MAX)
- NL_STRING( 11, T_MAY_IGNORE, cram_hmac_alg, SHARED_SECRET_MAX)
- NL_STRING( 44, T_MAY_IGNORE, integrity_alg, SHARED_SECRET_MAX)
- NL_INTEGER( 14, T_MAY_IGNORE, timeout)
- NL_INTEGER( 15, T_MANDATORY, wire_protocol)
- NL_INTEGER( 16, T_MAY_IGNORE, try_connect_int)
- NL_INTEGER( 17, T_MAY_IGNORE, ping_int)
- NL_INTEGER( 18, T_MAY_IGNORE, max_epoch_size)
- NL_INTEGER( 19, T_MAY_IGNORE, max_buffers)
- NL_INTEGER( 20, T_MAY_IGNORE, unplug_watermark)
- NL_INTEGER( 21, T_MAY_IGNORE, sndbuf_size)
- NL_INTEGER( 22, T_MAY_IGNORE, ko_count)
- NL_INTEGER( 24, T_MAY_IGNORE, after_sb_0p)
- NL_INTEGER( 25, T_MAY_IGNORE, after_sb_1p)
- NL_INTEGER( 26, T_MAY_IGNORE, after_sb_2p)
- NL_INTEGER( 39, T_MAY_IGNORE, rr_conflict)
- NL_INTEGER( 40, T_MAY_IGNORE, ping_timeo)
- NL_INTEGER( 67, T_MAY_IGNORE, rcvbuf_size)
- NL_INTEGER( 81, T_MAY_IGNORE, on_congestion)
- NL_INTEGER( 82, T_MAY_IGNORE, cong_fill)
- NL_INTEGER( 83, T_MAY_IGNORE, cong_extents)
- /* 59 addr_family was available in GIT, never released */
- NL_BIT( 60, T_MANDATORY, mind_af)
- NL_BIT( 27, T_MAY_IGNORE, want_lose)
- NL_BIT( 28, T_MAY_IGNORE, two_primaries)
- NL_BIT( 41, T_MAY_IGNORE, always_asbp)
- NL_BIT( 61, T_MAY_IGNORE, no_cork)
- NL_BIT( 62, T_MANDATORY, auto_sndbuf_size)
- NL_BIT( 70, T_MANDATORY, dry_run)
-)
-
-NL_PACKET(disconnect, 6,
- NL_BIT( 84, T_MAY_IGNORE, force)
-)
-
-NL_PACKET(resize, 7,
- NL_INT64( 29, T_MAY_IGNORE, resize_size)
- NL_BIT( 68, T_MAY_IGNORE, resize_force)
- NL_BIT( 69, T_MANDATORY, no_resync)
-)
-
-NL_PACKET(syncer_conf, 8,
- NL_INTEGER( 30, T_MAY_IGNORE, rate)
- NL_INTEGER( 31, T_MAY_IGNORE, after)
- NL_INTEGER( 32, T_MAY_IGNORE, al_extents)
-/* NL_INTEGER( 71, T_MAY_IGNORE, dp_volume)
- * NL_INTEGER( 72, T_MAY_IGNORE, dp_interval)
- * NL_INTEGER( 73, T_MAY_IGNORE, throttle_th)
- * NL_INTEGER( 74, T_MAY_IGNORE, hold_off_th)
- * feature will be reimplemented differently with 8.3.9 */
- NL_STRING( 52, T_MAY_IGNORE, verify_alg, SHARED_SECRET_MAX)
- NL_STRING( 51, T_MAY_IGNORE, cpu_mask, 32)
- NL_STRING( 64, T_MAY_IGNORE, csums_alg, SHARED_SECRET_MAX)
- NL_BIT( 65, T_MAY_IGNORE, use_rle)
- NL_INTEGER( 75, T_MAY_IGNORE, on_no_data)
- NL_INTEGER( 76, T_MAY_IGNORE, c_plan_ahead)
- NL_INTEGER( 77, T_MAY_IGNORE, c_delay_target)
- NL_INTEGER( 78, T_MAY_IGNORE, c_fill_target)
- NL_INTEGER( 79, T_MAY_IGNORE, c_max_rate)
- NL_INTEGER( 80, T_MAY_IGNORE, c_min_rate)
-)
-
-NL_PACKET(invalidate, 9, )
-NL_PACKET(invalidate_peer, 10, )
-NL_PACKET(pause_sync, 11, )
-NL_PACKET(resume_sync, 12, )
-NL_PACKET(suspend_io, 13, )
-NL_PACKET(resume_io, 14, )
-NL_PACKET(outdate, 15, )
-NL_PACKET(get_config, 16, )
-NL_PACKET(get_state, 17,
- NL_INTEGER( 33, T_MAY_IGNORE, state_i)
-)
-
-NL_PACKET(get_uuids, 18,
- NL_STRING( 34, T_MAY_IGNORE, uuids, (UI_SIZE*sizeof(__u64)))
- NL_INTEGER( 35, T_MAY_IGNORE, uuids_flags)
-)
-
-NL_PACKET(get_timeout_flag, 19,
- NL_BIT( 36, T_MAY_IGNORE, use_degraded)
-)
-
-NL_PACKET(call_helper, 20,
- NL_STRING( 38, T_MAY_IGNORE, helper, 32)
-)
-
-/* Tag nr 42 already allocated in drbd-8.1 development. */
-
-NL_PACKET(sync_progress, 23,
- NL_INTEGER( 43, T_MAY_IGNORE, sync_progress)
-)
-
-NL_PACKET(dump_ee, 24,
- NL_STRING( 45, T_MAY_IGNORE, dump_ee_reason, 32)
- NL_STRING( 46, T_MAY_IGNORE, seen_digest, SHARED_SECRET_MAX)
- NL_STRING( 47, T_MAY_IGNORE, calc_digest, SHARED_SECRET_MAX)
- NL_INT64( 48, T_MAY_IGNORE, ee_sector)
- NL_INT64( 49, T_MAY_IGNORE, ee_block_id)
- NL_STRING( 50, T_MAY_IGNORE, ee_data, 32 << 10)
-)
-
-NL_PACKET(start_ov, 25,
- NL_INT64( 66, T_MAY_IGNORE, start_sector)
-)
-
-NL_PACKET(new_c_uuid, 26,
- NL_BIT( 63, T_MANDATORY, clear_bm)
-)
-
-#ifdef NL_RESPONSE
-NL_RESPONSE(return_code_only, 27)
-#endif
-
-#undef NL_PACKET
-#undef NL_INTEGER
-#undef NL_INT64
-#undef NL_BIT
-#undef NL_STRING
-#undef NL_RESPONSE
diff --git a/ANDROID_3.4.5/include/linux/drbd_tag_magic.h b/ANDROID_3.4.5/include/linux/drbd_tag_magic.h
deleted file mode 100644
index 81f52f2c..00000000
--- a/ANDROID_3.4.5/include/linux/drbd_tag_magic.h
+++ /dev/null
@@ -1,84 +0,0 @@
-#ifndef DRBD_TAG_MAGIC_H
-#define DRBD_TAG_MAGIC_H
-
-#define TT_END 0
-#define TT_REMOVED 0xE000
-
-/* declare packet_type enums */
-enum packet_types {
-#define NL_PACKET(name, number, fields) P_ ## name = number,
-#define NL_RESPONSE(name, number) P_ ## name = number,
-#define NL_INTEGER(pn, pr, member)
-#define NL_INT64(pn, pr, member)
-#define NL_BIT(pn, pr, member)
-#define NL_STRING(pn, pr, member, len)
-#include "drbd_nl.h"
- P_nl_after_last_packet,
-};
-
-/* These struct are used to deduce the size of the tag lists: */
-#define NL_PACKET(name, number, fields) \
- struct name ## _tag_len_struct { fields };
-#define NL_INTEGER(pn, pr, member) \
- int member; int tag_and_len ## member;
-#define NL_INT64(pn, pr, member) \
- __u64 member; int tag_and_len ## member;
-#define NL_BIT(pn, pr, member) \
- unsigned char member:1; int tag_and_len ## member;
-#define NL_STRING(pn, pr, member, len) \
- unsigned char member[len]; int member ## _len; \
- int tag_and_len ## member;
-#include <linux/drbd_nl.h>
-
-/* declare tag-list-sizes */
-static const int tag_list_sizes[] = {
-#define NL_PACKET(name, number, fields) 2 fields ,
-#define NL_INTEGER(pn, pr, member) + 4 + 4
-#define NL_INT64(pn, pr, member) + 4 + 8
-#define NL_BIT(pn, pr, member) + 4 + 1
-#define NL_STRING(pn, pr, member, len) + 4 + (len)
-#include "drbd_nl.h"
-};
-
-/* The two highest bits are used for the tag type */
-#define TT_MASK 0xC000
-#define TT_INTEGER 0x0000
-#define TT_INT64 0x4000
-#define TT_BIT 0x8000
-#define TT_STRING 0xC000
-/* The next bit indicates if processing of the tag is mandatory */
-#define T_MANDATORY 0x2000
-#define T_MAY_IGNORE 0x0000
-#define TN_MASK 0x1fff
-/* The remaining 13 bits are used to enumerate the tags */
-
-#define tag_type(T) ((T) & TT_MASK)
-#define tag_number(T) ((T) & TN_MASK)
-
-/* declare tag enums */
-#define NL_PACKET(name, number, fields) fields
-enum drbd_tags {
-#define NL_INTEGER(pn, pr, member) T_ ## member = pn | TT_INTEGER | pr ,
-#define NL_INT64(pn, pr, member) T_ ## member = pn | TT_INT64 | pr ,
-#define NL_BIT(pn, pr, member) T_ ## member = pn | TT_BIT | pr ,
-#define NL_STRING(pn, pr, member, len) T_ ## member = pn | TT_STRING | pr ,
-#include "drbd_nl.h"
-};
-
-struct tag {
- const char *name;
- int type_n_flags;
- int max_len;
-};
-
-/* declare tag names */
-#define NL_PACKET(name, number, fields) fields
-static const struct tag tag_descriptions[] = {
-#define NL_INTEGER(pn, pr, member) [ pn ] = { #member, TT_INTEGER | pr, sizeof(int) },
-#define NL_INT64(pn, pr, member) [ pn ] = { #member, TT_INT64 | pr, sizeof(__u64) },
-#define NL_BIT(pn, pr, member) [ pn ] = { #member, TT_BIT | pr, sizeof(int) },
-#define NL_STRING(pn, pr, member, len) [ pn ] = { #member, TT_STRING | pr, (len) },
-#include "drbd_nl.h"
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ds1286.h b/ANDROID_3.4.5/include/linux/ds1286.h
deleted file mode 100644
index 45ea0aa0..00000000
--- a/ANDROID_3.4.5/include/linux/ds1286.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 1998, 1999, 2003 Ralf Baechle
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- */
-#ifndef __LINUX_DS1286_H
-#define __LINUX_DS1286_H
-
-/**********************************************************************
- * register summary
- **********************************************************************/
-#define RTC_HUNDREDTH_SECOND 0
-#define RTC_SECONDS 1
-#define RTC_MINUTES 2
-#define RTC_MINUTES_ALARM 3
-#define RTC_HOURS 4
-#define RTC_HOURS_ALARM 5
-#define RTC_DAY 6
-#define RTC_DAY_ALARM 7
-#define RTC_DATE 8
-#define RTC_MONTH 9
-#define RTC_YEAR 10
-#define RTC_CMD 11
-#define RTC_WHSEC 12
-#define RTC_WSEC 13
-#define RTC_UNUSED 14
-
-/* RTC_*_alarm is always true if 2 MSBs are set */
-# define RTC_ALARM_DONT_CARE 0xC0
-
-
-/*
- * Bits in the month register
- */
-#define RTC_EOSC 0x80
-#define RTC_ESQW 0x40
-
-/*
- * Bits in the Command register
- */
-#define RTC_TDF 0x01
-#define RTC_WAF 0x02
-#define RTC_TDM 0x04
-#define RTC_WAM 0x08
-#define RTC_PU_LVL 0x10
-#define RTC_IBH_LO 0x20
-#define RTC_IPSW 0x40
-#define RTC_TE 0x80
-
-#endif /* __LINUX_DS1286_H */
diff --git a/ANDROID_3.4.5/include/linux/ds17287rtc.h b/ANDROID_3.4.5/include/linux/ds17287rtc.h
deleted file mode 100644
index d85d3f49..00000000
--- a/ANDROID_3.4.5/include/linux/ds17287rtc.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * ds17287rtc.h - register definitions for the ds1728[57] RTC / CMOS RAM
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * (C) 2003 Guido Guenther <agx@sigxcpu.org>
- */
-#ifndef __LINUX_DS17287RTC_H
-#define __LINUX_DS17287RTC_H
-
-#include <linux/rtc.h> /* get the user-level API */
-#include <linux/mc146818rtc.h>
-
-/* Register A */
-#define DS_REGA_DV2 0x40 /* countdown chain */
-#define DS_REGA_DV1 0x20 /* oscillator enable */
-#define DS_REGA_DV0 0x10 /* bank select */
-
-/* bank 1 registers */
-#define DS_B1_MODEL 0x40 /* model number byte */
-#define DS_B1_SN1 0x41 /* serial number byte 1 */
-#define DS_B1_SN2 0x42 /* serial number byte 2 */
-#define DS_B1_SN3 0x43 /* serial number byte 3 */
-#define DS_B1_SN4 0x44 /* serial number byte 4 */
-#define DS_B1_SN5 0x45 /* serial number byte 5 */
-#define DS_B1_SN6 0x46 /* serial number byte 6 */
-#define DS_B1_CRC 0x47 /* CRC byte */
-#define DS_B1_CENTURY 0x48 /* Century byte */
-#define DS_B1_DALARM 0x49 /* date alarm */
-#define DS_B1_XCTRL4A 0x4a /* extendec control register 4a */
-#define DS_B1_XCTRL4B 0x4b /* extendec control register 4b */
-#define DS_B1_RTCADDR2 0x4e /* rtc address 2 */
-#define DS_B1_RTCADDR3 0x4f /* rtc address 3 */
-#define DS_B1_RAMLSB 0x50 /* extended ram LSB */
-#define DS_B1_RAMMSB 0x51 /* extended ram MSB */
-#define DS_B1_RAMDPORT 0x53 /* extended ram data port */
-
-/* register details */
-/* extended control register 4a */
-#define DS_XCTRL4A_VRT2 0x80 /* valid ram and time */
-#define DS_XCTRL4A_INCR 0x40 /* increment progress status */
-#define DS_XCTRL4A_BME 0x20 /* burst mode enable */
-#define DS_XCTRL4A_PAB 0x08 /* power active bar ctrl */
-#define DS_XCTRL4A_RF 0x04 /* ram clear flag */
-#define DS_XCTRL4A_WF 0x02 /* wake up alarm flag */
-#define DS_XCTRL4A_KF 0x01 /* kickstart flag */
-
-/* interrupt causes */
-#define DS_XCTRL4A_IFS (DS_XCTRL4A_RF|DS_XCTRL4A_WF|DS_XCTRL4A_KF)
-
-/* extended control register 4b */
-#define DS_XCTRL4B_ABE 0x80 /* auxiliary battery enable */
-#define DS_XCTRL4B_E32K 0x40 /* enable 32.768 kHz Output */
-#define DS_XCTRL4B_CS 0x20 /* crystal select */
-#define DS_XCTRL4B_RCE 0x10 /* ram clear enable */
-#define DS_XCTRL4B_PRS 0x08 /* PAB resec select */
-#define DS_XCTRL4B_RIE 0x04 /* ram clear interrupt enable */
-#define DS_XCTRL4B_WFE 0x02 /* wake up alarm interrupt enable */
-#define DS_XCTRL4B_KFE 0x01 /* kickstart interrupt enable */
-
-/* interrupt enable bits */
-#define DS_XCTRL4B_IFES (DS_XCTRL4B_RIE|DS_XCTRL4B_WFE|DS_XCTRL4B_KFE)
-
-#endif /* __LINUX_DS17287RTC_H */
diff --git a/ANDROID_3.4.5/include/linux/ds2782_battery.h b/ANDROID_3.4.5/include/linux/ds2782_battery.h
deleted file mode 100644
index b4e281f6..00000000
--- a/ANDROID_3.4.5/include/linux/ds2782_battery.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef __LINUX_DS2782_BATTERY_H
-#define __LINUX_DS2782_BATTERY_H
-
-struct ds278x_platform_data {
- int rsns;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/dtlk.h b/ANDROID_3.4.5/include/linux/dtlk.h
deleted file mode 100644
index 22a7b9a5..00000000
--- a/ANDROID_3.4.5/include/linux/dtlk.h
+++ /dev/null
@@ -1,85 +0,0 @@
-#define DTLK_MINOR 0
-#define DTLK_IO_EXTENT 0x02
-
- /* ioctl's use magic number of 0xa3 */
-#define DTLK_INTERROGATE 0xa390 /* get settings from the DoubleTalk */
-#define DTLK_STATUS 0xa391 /* get status from the DoubleTalk */
-
-
-#define DTLK_CLEAR 0x18 /* stops speech */
-
-#define DTLK_MAX_RETRIES (loops_per_jiffy/(10000/HZ))
-
- /* TTS Port Status Flags */
-#define TTS_READABLE 0x80 /* mask for bit which is nonzero if a
- byte can be read from the TTS port */
-#define TTS_SPEAKING 0x40 /* mask for SYNC bit, which is nonzero
- while DoubleTalk is producing
- output with TTS, PCM or CVSD
- synthesizers or tone generators
- (that is, all but LPC) */
-#define TTS_SPEAKING2 0x20 /* mask for SYNC2 bit,
- which falls to zero up to 0.4 sec
- before speech stops */
-#define TTS_WRITABLE 0x10 /* mask for RDY bit, which when set to
- 1, indicates the TTS port is ready
- to accept a byte of data. The RDY
- bit goes zero 2-3 usec after
- writing, and goes 1 again 180-190
- usec later. */
-#define TTS_ALMOST_FULL 0x08 /* mask for AF bit: When set to 1,
- indicates that less than 300 free
- bytes are available in the TTS
- input buffer. AF is always 0 in the
- PCM, TGN and CVSD modes. */
-#define TTS_ALMOST_EMPTY 0x04 /* mask for AE bit: When set to 1,
- indicates that less than 300 bytes
- of data remain in DoubleTalk's
- input (TTS or PCM) buffer. AE is
- always 1 in the TGN and CVSD
- modes. */
-
- /* LPC speak commands */
-#define LPC_5220_NORMAL 0x60 /* 5220 format decoding table, normal rate */
-#define LPC_5220_FAST 0x64 /* 5220 format decoding table, fast rate */
-#define LPC_D6_NORMAL 0x20 /* D6 format decoding table, normal rate */
-#define LPC_D6_FAST 0x24 /* D6 format decoding table, fast rate */
-
- /* LPC Port Status Flags (valid only after one of the LPC
- speak commands) */
-#define LPC_SPEAKING 0x80 /* mask for TS bit: When set to 1,
- indicates the LPC synthesizer is
- producing speech.*/
-#define LPC_BUFFER_LOW 0x40 /* mask for BL bit: When set to 1,
- indicates that the hardware LPC
- data buffer has less than 30 bytes
- remaining. (Total internal buffer
- size = 4096 bytes.) */
-#define LPC_BUFFER_EMPTY 0x20 /* mask for BE bit: When set to 1,
- indicates that the LPC data buffer
- ran out of data (error condition if
- TS is also 1). */
-
- /* data returned by Interrogate command */
-struct dtlk_settings
-{
- unsigned short serial_number; /* 0-7Fh:0-7Fh */
- unsigned char rom_version[24]; /* null terminated string */
- unsigned char mode; /* 0=Character; 1=Phoneme; 2=Text */
- unsigned char punc_level; /* nB; 0-7 */
- unsigned char formant_freq; /* nF; 0-9 */
- unsigned char pitch; /* nP; 0-99 */
- unsigned char speed; /* nS; 0-9 */
- unsigned char volume; /* nV; 0-9 */
- unsigned char tone; /* nX; 0-2 */
- unsigned char expression; /* nE; 0-9 */
- unsigned char ext_dict_loaded; /* 1=exception dictionary loaded */
- unsigned char ext_dict_status; /* 1=exception dictionary enabled */
- unsigned char free_ram; /* # pages (truncated) remaining for
- text buffer */
- unsigned char articulation; /* nA; 0-9 */
- unsigned char reverb; /* nR; 0-9 */
- unsigned char eob; /* 7Fh value indicating end of
- parameter block */
- unsigned char has_indexing; /* nonzero if indexing is implemented */
-};
diff --git a/ANDROID_3.4.5/include/linux/dvb/Kbuild b/ANDROID_3.4.5/include/linux/dvb/Kbuild
deleted file mode 100644
index f4dba863..00000000
--- a/ANDROID_3.4.5/include/linux/dvb/Kbuild
+++ /dev/null
@@ -1,8 +0,0 @@
-header-y += audio.h
-header-y += ca.h
-header-y += dmx.h
-header-y += frontend.h
-header-y += net.h
-header-y += osd.h
-header-y += version.h
-header-y += video.h
diff --git a/ANDROID_3.4.5/include/linux/dvb/audio.h b/ANDROID_3.4.5/include/linux/dvb/audio.h
deleted file mode 100644
index d47bccd6..00000000
--- a/ANDROID_3.4.5/include/linux/dvb/audio.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * audio.h
- *
- * Copyright (C) 2000 Ralph Metzler <ralph@convergence.de>
- * & Marcus Metzler <marcus@convergence.de>
- * for convergence integrated media GmbH
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Lesser Public License
- * as published by the Free Software Foundation; either version 2.1
- * 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 Lesser 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.
- *
- */
-
-#ifndef _DVBAUDIO_H_
-#define _DVBAUDIO_H_
-
-#include <linux/types.h>
-
-typedef enum {
- AUDIO_SOURCE_DEMUX, /* Select the demux as the main source */
- AUDIO_SOURCE_MEMORY /* Select internal memory as the main source */
-} audio_stream_source_t;
-
-
-typedef enum {
- AUDIO_STOPPED, /* Device is stopped */
- AUDIO_PLAYING, /* Device is currently playing */
- AUDIO_PAUSED /* Device is paused */
-} audio_play_state_t;
-
-
-typedef enum {
- AUDIO_STEREO,
- AUDIO_MONO_LEFT,
- AUDIO_MONO_RIGHT,
- AUDIO_MONO,
- AUDIO_STEREO_SWAPPED
-} audio_channel_select_t;
-
-
-typedef struct audio_mixer {
- unsigned int volume_left;
- unsigned int volume_right;
- // what else do we need? bass, pass-through, ...
-} audio_mixer_t;
-
-
-typedef struct audio_status {
- int AV_sync_state; /* sync audio and video? */
- int mute_state; /* audio is muted */
- audio_play_state_t play_state; /* current playback state */
- audio_stream_source_t stream_source; /* current stream source */
- audio_channel_select_t channel_select; /* currently selected channel */
- int bypass_mode; /* pass on audio data to */
- audio_mixer_t mixer_state; /* current mixer state */
-} audio_status_t; /* separate decoder hardware */
-
-
-typedef
-struct audio_karaoke { /* if Vocal1 or Vocal2 are non-zero, they get mixed */
- int vocal1; /* into left and right t at 70% each */
- int vocal2; /* if both, Vocal1 and Vocal2 are non-zero, Vocal1 gets*/
- int melody; /* mixed into the left channel and */
- /* Vocal2 into the right channel at 100% each. */
- /* if Melody is non-zero, the melody channel gets mixed*/
-} audio_karaoke_t; /* into left and right */
-
-
-typedef __u16 audio_attributes_t;
-/* bits: descr. */
-/* 15-13 audio coding mode (0=ac3, 2=mpeg1, 3=mpeg2ext, 4=LPCM, 6=DTS, */
-/* 12 multichannel extension */
-/* 11-10 audio type (0=not spec, 1=language included) */
-/* 9- 8 audio application mode (0=not spec, 1=karaoke, 2=surround) */
-/* 7- 6 Quantization / DRC (mpeg audio: 1=DRC exists)(lpcm: 0=16bit, */
-/* 5- 4 Sample frequency fs (0=48kHz, 1=96kHz) */
-/* 2- 0 number of audio channels (n+1 channels) */
-
-
-/* for GET_CAPABILITIES and SET_FORMAT, the latter should only set one bit */
-#define AUDIO_CAP_DTS 1
-#define AUDIO_CAP_LPCM 2
-#define AUDIO_CAP_MP1 4
-#define AUDIO_CAP_MP2 8
-#define AUDIO_CAP_MP3 16
-#define AUDIO_CAP_AAC 32
-#define AUDIO_CAP_OGG 64
-#define AUDIO_CAP_SDDS 128
-#define AUDIO_CAP_AC3 256
-
-#define AUDIO_STOP _IO('o', 1)
-#define AUDIO_PLAY _IO('o', 2)
-#define AUDIO_PAUSE _IO('o', 3)
-#define AUDIO_CONTINUE _IO('o', 4)
-#define AUDIO_SELECT_SOURCE _IO('o', 5)
-#define AUDIO_SET_MUTE _IO('o', 6)
-#define AUDIO_SET_AV_SYNC _IO('o', 7)
-#define AUDIO_SET_BYPASS_MODE _IO('o', 8)
-#define AUDIO_CHANNEL_SELECT _IO('o', 9)
-#define AUDIO_GET_STATUS _IOR('o', 10, audio_status_t)
-
-#define AUDIO_GET_CAPABILITIES _IOR('o', 11, unsigned int)
-#define AUDIO_CLEAR_BUFFER _IO('o', 12)
-#define AUDIO_SET_ID _IO('o', 13)
-#define AUDIO_SET_MIXER _IOW('o', 14, audio_mixer_t)
-#define AUDIO_SET_STREAMTYPE _IO('o', 15)
-#define AUDIO_SET_EXT_ID _IO('o', 16)
-#define AUDIO_SET_ATTRIBUTES _IOW('o', 17, audio_attributes_t)
-#define AUDIO_SET_KARAOKE _IOW('o', 18, audio_karaoke_t)
-
-/**
- * AUDIO_GET_PTS
- *
- * Read the 33 bit presentation time stamp as defined
- * in ITU T-REC-H.222.0 / ISO/IEC 13818-1.
- *
- * The PTS should belong to the currently played
- * frame if possible, but may also be a value close to it
- * like the PTS of the last decoded frame or the last PTS
- * extracted by the PES parser.
- */
-#define AUDIO_GET_PTS _IOR('o', 19, __u64)
-#define AUDIO_BILINGUAL_CHANNEL_SELECT _IO('o', 20)
-
-#endif /* _DVBAUDIO_H_ */
diff --git a/ANDROID_3.4.5/include/linux/dvb/ca.h b/ANDROID_3.4.5/include/linux/dvb/ca.h
deleted file mode 100644
index c18537f3..00000000
--- a/ANDROID_3.4.5/include/linux/dvb/ca.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * ca.h
- *
- * Copyright (C) 2000 Ralph Metzler <ralph@convergence.de>
- * & Marcus Metzler <marcus@convergence.de>
- * for convergence integrated media GmbH
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Lesser Public License
- * as published by the Free Software Foundation; either version 2.1
- * 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 Lesser 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.
- *
- */
-
-#ifndef _DVBCA_H_
-#define _DVBCA_H_
-
-/* slot interface types and info */
-
-typedef struct ca_slot_info {
- int num; /* slot number */
-
- int type; /* CA interface this slot supports */
-#define CA_CI 1 /* CI high level interface */
-#define CA_CI_LINK 2 /* CI link layer level interface */
-#define CA_CI_PHYS 4 /* CI physical layer level interface */
-#define CA_DESCR 8 /* built-in descrambler */
-#define CA_SC 128 /* simple smart card interface */
-
- unsigned int flags;
-#define CA_CI_MODULE_PRESENT 1 /* module (or card) inserted */
-#define CA_CI_MODULE_READY 2
-} ca_slot_info_t;
-
-
-/* descrambler types and info */
-
-typedef struct ca_descr_info {
- unsigned int num; /* number of available descramblers (keys) */
- unsigned int type; /* type of supported scrambling system */
-#define CA_ECD 1
-#define CA_NDS 2
-#define CA_DSS 4
-} ca_descr_info_t;
-
-typedef struct ca_caps {
- unsigned int slot_num; /* total number of CA card and module slots */
- unsigned int slot_type; /* OR of all supported types */
- unsigned int descr_num; /* total number of descrambler slots (keys) */
- unsigned int descr_type; /* OR of all supported types */
-} ca_caps_t;
-
-/* a message to/from a CI-CAM */
-typedef struct ca_msg {
- unsigned int index;
- unsigned int type;
- unsigned int length;
- unsigned char msg[256];
-} ca_msg_t;
-
-typedef struct ca_descr {
- unsigned int index;
- unsigned int parity; /* 0 == even, 1 == odd */
- unsigned char cw[8];
-} ca_descr_t;
-
-typedef struct ca_pid {
- unsigned int pid;
- int index; /* -1 == disable*/
-} ca_pid_t;
-
-#define CA_RESET _IO('o', 128)
-#define CA_GET_CAP _IOR('o', 129, ca_caps_t)
-#define CA_GET_SLOT_INFO _IOR('o', 130, ca_slot_info_t)
-#define CA_GET_DESCR_INFO _IOR('o', 131, ca_descr_info_t)
-#define CA_GET_MSG _IOR('o', 132, ca_msg_t)
-#define CA_SEND_MSG _IOW('o', 133, ca_msg_t)
-#define CA_SET_DESCR _IOW('o', 134, ca_descr_t)
-#define CA_SET_PID _IOW('o', 135, ca_pid_t)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/dvb/dmx.h b/ANDROID_3.4.5/include/linux/dvb/dmx.h
deleted file mode 100644
index f078f3ac..00000000
--- a/ANDROID_3.4.5/include/linux/dvb/dmx.h
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * dmx.h
- *
- * Copyright (C) 2000 Marcus Metzler <marcus@convergence.de>
- * & Ralph Metzler <ralph@convergence.de>
- * for convergence integrated media GmbH
- *
- * This program 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 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 Lesser 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.
- *
- */
-
-#ifndef _DVBDMX_H_
-#define _DVBDMX_H_
-
-#include <linux/types.h>
-#ifdef __KERNEL__
-#include <linux/time.h>
-#else
-#include <time.h>
-#endif
-
-
-#define DMX_FILTER_SIZE 16
-
-typedef enum
-{
- DMX_OUT_DECODER, /* Streaming directly to decoder. */
- DMX_OUT_TAP, /* Output going to a memory buffer */
- /* (to be retrieved via the read command).*/
- DMX_OUT_TS_TAP, /* Output multiplexed into a new TS */
- /* (to be retrieved by reading from the */
- /* logical DVR device). */
- DMX_OUT_TSDEMUX_TAP /* Like TS_TAP but retrieved from the DMX device */
-} dmx_output_t;
-
-
-typedef enum
-{
- DMX_IN_FRONTEND, /* Input from a front-end device. */
- DMX_IN_DVR /* Input from the logical DVR device. */
-} dmx_input_t;
-
-
-typedef enum
-{
- DMX_PES_AUDIO0,
- DMX_PES_VIDEO0,
- DMX_PES_TELETEXT0,
- DMX_PES_SUBTITLE0,
- DMX_PES_PCR0,
-
- DMX_PES_AUDIO1,
- DMX_PES_VIDEO1,
- DMX_PES_TELETEXT1,
- DMX_PES_SUBTITLE1,
- DMX_PES_PCR1,
-
- DMX_PES_AUDIO2,
- DMX_PES_VIDEO2,
- DMX_PES_TELETEXT2,
- DMX_PES_SUBTITLE2,
- DMX_PES_PCR2,
-
- DMX_PES_AUDIO3,
- DMX_PES_VIDEO3,
- DMX_PES_TELETEXT3,
- DMX_PES_SUBTITLE3,
- DMX_PES_PCR3,
-
- DMX_PES_OTHER
-} dmx_pes_type_t;
-
-#define DMX_PES_AUDIO DMX_PES_AUDIO0
-#define DMX_PES_VIDEO DMX_PES_VIDEO0
-#define DMX_PES_TELETEXT DMX_PES_TELETEXT0
-#define DMX_PES_SUBTITLE DMX_PES_SUBTITLE0
-#define DMX_PES_PCR DMX_PES_PCR0
-
-
-typedef struct dmx_filter
-{
- __u8 filter[DMX_FILTER_SIZE];
- __u8 mask[DMX_FILTER_SIZE];
- __u8 mode[DMX_FILTER_SIZE];
-} dmx_filter_t;
-
-
-struct dmx_sct_filter_params
-{
- __u16 pid;
- dmx_filter_t filter;
- __u32 timeout;
- __u32 flags;
-#define DMX_CHECK_CRC 1
-#define DMX_ONESHOT 2
-#define DMX_IMMEDIATE_START 4
-#define DMX_KERNEL_CLIENT 0x8000
-};
-
-
-struct dmx_pes_filter_params
-{
- __u16 pid;
- dmx_input_t input;
- dmx_output_t output;
- dmx_pes_type_t pes_type;
- __u32 flags;
-};
-
-typedef struct dmx_caps {
- __u32 caps;
- int num_decoders;
-} dmx_caps_t;
-
-typedef enum {
- DMX_SOURCE_FRONT0 = 0,
- DMX_SOURCE_FRONT1,
- DMX_SOURCE_FRONT2,
- DMX_SOURCE_FRONT3,
- DMX_SOURCE_DVR0 = 16,
- DMX_SOURCE_DVR1,
- DMX_SOURCE_DVR2,
- DMX_SOURCE_DVR3
-} dmx_source_t;
-
-struct dmx_stc {
- unsigned int num; /* input : which STC? 0..N */
- unsigned int base; /* output: divisor for stc to get 90 kHz clock */
- __u64 stc; /* output: stc in 'base'*90 kHz units */
-};
-
-
-#define DMX_START _IO('o', 41)
-#define DMX_STOP _IO('o', 42)
-#define DMX_SET_FILTER _IOW('o', 43, struct dmx_sct_filter_params)
-#define DMX_SET_PES_FILTER _IOW('o', 44, struct dmx_pes_filter_params)
-#define DMX_SET_BUFFER_SIZE _IO('o', 45)
-#define DMX_GET_PES_PIDS _IOR('o', 47, __u16[5])
-#define DMX_GET_CAPS _IOR('o', 48, dmx_caps_t)
-#define DMX_SET_SOURCE _IOW('o', 49, dmx_source_t)
-#define DMX_GET_STC _IOWR('o', 50, struct dmx_stc)
-#define DMX_ADD_PID _IOW('o', 51, __u16)
-#define DMX_REMOVE_PID _IOW('o', 52, __u16)
-
-#endif /*_DVBDMX_H_*/
diff --git a/ANDROID_3.4.5/include/linux/dvb/frontend.h b/ANDROID_3.4.5/include/linux/dvb/frontend.h
deleted file mode 100644
index cb4428ab..00000000
--- a/ANDROID_3.4.5/include/linux/dvb/frontend.h
+++ /dev/null
@@ -1,436 +0,0 @@
-/*
- * frontend.h
- *
- * Copyright (C) 2000 Marcus Metzler <marcus@convergence.de>
- * Ralph Metzler <ralph@convergence.de>
- * Holger Waechtler <holger@convergence.de>
- * Andre Draszik <ad@convergence.de>
- * for convergence integrated media GmbH
- *
- * This program 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 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 Lesser 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.
- *
- */
-
-#ifndef _DVBFRONTEND_H_
-#define _DVBFRONTEND_H_
-
-#include <linux/types.h>
-
-typedef enum fe_type {
- FE_QPSK,
- FE_QAM,
- FE_OFDM,
- FE_ATSC
-} fe_type_t;
-
-
-typedef enum fe_caps {
- FE_IS_STUPID = 0,
- FE_CAN_INVERSION_AUTO = 0x1,
- FE_CAN_FEC_1_2 = 0x2,
- FE_CAN_FEC_2_3 = 0x4,
- FE_CAN_FEC_3_4 = 0x8,
- FE_CAN_FEC_4_5 = 0x10,
- FE_CAN_FEC_5_6 = 0x20,
- FE_CAN_FEC_6_7 = 0x40,
- FE_CAN_FEC_7_8 = 0x80,
- FE_CAN_FEC_8_9 = 0x100,
- FE_CAN_FEC_AUTO = 0x200,
- FE_CAN_QPSK = 0x400,
- FE_CAN_QAM_16 = 0x800,
- FE_CAN_QAM_32 = 0x1000,
- FE_CAN_QAM_64 = 0x2000,
- FE_CAN_QAM_128 = 0x4000,
- FE_CAN_QAM_256 = 0x8000,
- FE_CAN_QAM_AUTO = 0x10000,
- FE_CAN_TRANSMISSION_MODE_AUTO = 0x20000,
- FE_CAN_BANDWIDTH_AUTO = 0x40000,
- FE_CAN_GUARD_INTERVAL_AUTO = 0x80000,
- FE_CAN_HIERARCHY_AUTO = 0x100000,
- FE_CAN_8VSB = 0x200000,
- FE_CAN_16VSB = 0x400000,
- FE_HAS_EXTENDED_CAPS = 0x800000, /* We need more bitspace for newer APIs, indicate this. */
- FE_CAN_TURBO_FEC = 0x8000000, /* frontend supports "turbo fec modulation" */
- FE_CAN_2G_MODULATION = 0x10000000, /* frontend supports "2nd generation modulation" (DVB-S2) */
- FE_NEEDS_BENDING = 0x20000000, /* not supported anymore, don't use (frontend requires frequency bending) */
- FE_CAN_RECOVER = 0x40000000, /* frontend can recover from a cable unplug automatically */
- FE_CAN_MUTE_TS = 0x80000000 /* frontend can stop spurious TS data output */
-} fe_caps_t;
-
-
-struct dvb_frontend_info {
- char name[128];
- fe_type_t type; /* DEPRECATED. Use DTV_ENUM_DELSYS instead */
- __u32 frequency_min;
- __u32 frequency_max;
- __u32 frequency_stepsize;
- __u32 frequency_tolerance;
- __u32 symbol_rate_min;
- __u32 symbol_rate_max;
- __u32 symbol_rate_tolerance; /* ppm */
- __u32 notifier_delay; /* DEPRECATED */
- fe_caps_t caps;
-};
-
-
-/**
- * Check out the DiSEqC bus spec available on http://www.eutelsat.org/ for
- * the meaning of this struct...
- */
-struct dvb_diseqc_master_cmd {
- __u8 msg [6]; /* { framing, address, command, data [3] } */
- __u8 msg_len; /* valid values are 3...6 */
-};
-
-
-struct dvb_diseqc_slave_reply {
- __u8 msg [4]; /* { framing, data [3] } */
- __u8 msg_len; /* valid values are 0...4, 0 means no msg */
- int timeout; /* return from ioctl after timeout ms with */
-}; /* errorcode when no message was received */
-
-
-typedef enum fe_sec_voltage {
- SEC_VOLTAGE_13,
- SEC_VOLTAGE_18,
- SEC_VOLTAGE_OFF
-} fe_sec_voltage_t;
-
-
-typedef enum fe_sec_tone_mode {
- SEC_TONE_ON,
- SEC_TONE_OFF
-} fe_sec_tone_mode_t;
-
-
-typedef enum fe_sec_mini_cmd {
- SEC_MINI_A,
- SEC_MINI_B
-} fe_sec_mini_cmd_t;
-
-
-typedef enum fe_status {
- FE_HAS_SIGNAL = 0x01, /* found something above the noise level */
- FE_HAS_CARRIER = 0x02, /* found a DVB signal */
- FE_HAS_VITERBI = 0x04, /* FEC is stable */
- FE_HAS_SYNC = 0x08, /* found sync bytes */
- FE_HAS_LOCK = 0x10, /* everything's working... */
- FE_TIMEDOUT = 0x20, /* no lock within the last ~2 seconds */
- FE_REINIT = 0x40 /* frontend was reinitialized, */
-} fe_status_t; /* application is recommended to reset */
- /* DiSEqC, tone and parameters */
-
-typedef enum fe_spectral_inversion {
- INVERSION_OFF,
- INVERSION_ON,
- INVERSION_AUTO
-} fe_spectral_inversion_t;
-
-
-typedef enum fe_code_rate {
- FEC_NONE = 0,
- FEC_1_2,
- FEC_2_3,
- FEC_3_4,
- FEC_4_5,
- FEC_5_6,
- FEC_6_7,
- FEC_7_8,
- FEC_8_9,
- FEC_AUTO,
- FEC_3_5,
- FEC_9_10,
-} fe_code_rate_t;
-
-
-typedef enum fe_modulation {
- QPSK,
- QAM_16,
- QAM_32,
- QAM_64,
- QAM_128,
- QAM_256,
- QAM_AUTO,
- VSB_8,
- VSB_16,
- PSK_8,
- APSK_16,
- APSK_32,
- DQPSK,
-} fe_modulation_t;
-
-typedef enum fe_transmit_mode {
- TRANSMISSION_MODE_2K,
- TRANSMISSION_MODE_8K,
- TRANSMISSION_MODE_AUTO,
- TRANSMISSION_MODE_4K,
- TRANSMISSION_MODE_1K,
- TRANSMISSION_MODE_16K,
- TRANSMISSION_MODE_32K,
-} fe_transmit_mode_t;
-
-#if defined(__DVB_CORE__) || !defined (__KERNEL__)
-typedef enum fe_bandwidth {
- BANDWIDTH_8_MHZ,
- BANDWIDTH_7_MHZ,
- BANDWIDTH_6_MHZ,
- BANDWIDTH_AUTO,
- BANDWIDTH_5_MHZ,
- BANDWIDTH_10_MHZ,
- BANDWIDTH_1_712_MHZ,
-} fe_bandwidth_t;
-#endif
-
-typedef enum fe_guard_interval {
- GUARD_INTERVAL_1_32,
- GUARD_INTERVAL_1_16,
- GUARD_INTERVAL_1_8,
- GUARD_INTERVAL_1_4,
- GUARD_INTERVAL_AUTO,
- GUARD_INTERVAL_1_128,
- GUARD_INTERVAL_19_128,
- GUARD_INTERVAL_19_256,
-} fe_guard_interval_t;
-
-
-typedef enum fe_hierarchy {
- HIERARCHY_NONE,
- HIERARCHY_1,
- HIERARCHY_2,
- HIERARCHY_4,
- HIERARCHY_AUTO
-} fe_hierarchy_t;
-
-
-#if defined(__DVB_CORE__) || !defined (__KERNEL__)
-struct dvb_qpsk_parameters {
- __u32 symbol_rate; /* symbol rate in Symbols per second */
- fe_code_rate_t fec_inner; /* forward error correction (see above) */
-};
-
-struct dvb_qam_parameters {
- __u32 symbol_rate; /* symbol rate in Symbols per second */
- fe_code_rate_t fec_inner; /* forward error correction (see above) */
- fe_modulation_t modulation; /* modulation type (see above) */
-};
-
-struct dvb_vsb_parameters {
- fe_modulation_t modulation; /* modulation type (see above) */
-};
-
-struct dvb_ofdm_parameters {
- fe_bandwidth_t bandwidth;
- fe_code_rate_t code_rate_HP; /* high priority stream code rate */
- fe_code_rate_t code_rate_LP; /* low priority stream code rate */
- fe_modulation_t constellation; /* modulation type (see above) */
- fe_transmit_mode_t transmission_mode;
- fe_guard_interval_t guard_interval;
- fe_hierarchy_t hierarchy_information;
-};
-
-
-struct dvb_frontend_parameters {
- __u32 frequency; /* (absolute) frequency in Hz for QAM/OFDM/ATSC */
- /* intermediate frequency in kHz for QPSK */
- fe_spectral_inversion_t inversion;
- union {
- struct dvb_qpsk_parameters qpsk;
- struct dvb_qam_parameters qam;
- struct dvb_ofdm_parameters ofdm;
- struct dvb_vsb_parameters vsb;
- } u;
-};
-
-struct dvb_frontend_event {
- fe_status_t status;
- struct dvb_frontend_parameters parameters;
-};
-#endif
-
-/* S2API Commands */
-#define DTV_UNDEFINED 0
-#define DTV_TUNE 1
-#define DTV_CLEAR 2
-#define DTV_FREQUENCY 3
-#define DTV_MODULATION 4
-#define DTV_BANDWIDTH_HZ 5
-#define DTV_INVERSION 6
-#define DTV_DISEQC_MASTER 7
-#define DTV_SYMBOL_RATE 8
-#define DTV_INNER_FEC 9
-#define DTV_VOLTAGE 10
-#define DTV_TONE 11
-#define DTV_PILOT 12
-#define DTV_ROLLOFF 13
-#define DTV_DISEQC_SLAVE_REPLY 14
-
-/* Basic enumeration set for querying unlimited capabilities */
-#define DTV_FE_CAPABILITY_COUNT 15
-#define DTV_FE_CAPABILITY 16
-#define DTV_DELIVERY_SYSTEM 17
-
-/* ISDB-T and ISDB-Tsb */
-#define DTV_ISDBT_PARTIAL_RECEPTION 18
-#define DTV_ISDBT_SOUND_BROADCASTING 19
-
-#define DTV_ISDBT_SB_SUBCHANNEL_ID 20
-#define DTV_ISDBT_SB_SEGMENT_IDX 21
-#define DTV_ISDBT_SB_SEGMENT_COUNT 22
-
-#define DTV_ISDBT_LAYERA_FEC 23
-#define DTV_ISDBT_LAYERA_MODULATION 24
-#define DTV_ISDBT_LAYERA_SEGMENT_COUNT 25
-#define DTV_ISDBT_LAYERA_TIME_INTERLEAVING 26
-
-#define DTV_ISDBT_LAYERB_FEC 27
-#define DTV_ISDBT_LAYERB_MODULATION 28
-#define DTV_ISDBT_LAYERB_SEGMENT_COUNT 29
-#define DTV_ISDBT_LAYERB_TIME_INTERLEAVING 30
-
-#define DTV_ISDBT_LAYERC_FEC 31
-#define DTV_ISDBT_LAYERC_MODULATION 32
-#define DTV_ISDBT_LAYERC_SEGMENT_COUNT 33
-#define DTV_ISDBT_LAYERC_TIME_INTERLEAVING 34
-
-#define DTV_API_VERSION 35
-
-#define DTV_CODE_RATE_HP 36
-#define DTV_CODE_RATE_LP 37
-#define DTV_GUARD_INTERVAL 38
-#define DTV_TRANSMISSION_MODE 39
-#define DTV_HIERARCHY 40
-
-#define DTV_ISDBT_LAYER_ENABLED 41
-
-#define DTV_ISDBS_TS_ID 42
-
-#define DTV_DVBT2_PLP_ID 43
-
-#define DTV_ENUM_DELSYS 44
-
-#define DTV_MAX_COMMAND DTV_ENUM_DELSYS
-
-typedef enum fe_pilot {
- PILOT_ON,
- PILOT_OFF,
- PILOT_AUTO,
-} fe_pilot_t;
-
-typedef enum fe_rolloff {
- ROLLOFF_35, /* Implied value in DVB-S, default for DVB-S2 */
- ROLLOFF_20,
- ROLLOFF_25,
- ROLLOFF_AUTO,
-} fe_rolloff_t;
-
-typedef enum fe_delivery_system {
- SYS_UNDEFINED,
- SYS_DVBC_ANNEX_A,
- SYS_DVBC_ANNEX_B,
- SYS_DVBT,
- SYS_DSS,
- SYS_DVBS,
- SYS_DVBS2,
- SYS_DVBH,
- SYS_ISDBT,
- SYS_ISDBS,
- SYS_ISDBC,
- SYS_ATSC,
- SYS_ATSCMH,
- SYS_DMBTH,
- SYS_CMMB,
- SYS_DAB,
- SYS_DVBT2,
- SYS_TURBO,
- SYS_DVBC_ANNEX_C,
-} fe_delivery_system_t;
-
-
-#define SYS_DVBC_ANNEX_AC SYS_DVBC_ANNEX_A
-
-
-struct dtv_cmds_h {
- char *name; /* A display name for debugging purposes */
-
- __u32 cmd; /* A unique ID */
-
- /* Flags */
- __u32 set:1; /* Either a set or get property */
- __u32 buffer:1; /* Does this property use the buffer? */
- __u32 reserved:30; /* Align */
-};
-
-struct dtv_property {
- __u32 cmd;
- __u32 reserved[3];
- union {
- __u32 data;
- struct {
- __u8 data[32];
- __u32 len;
- __u32 reserved1[3];
- void *reserved2;
- } buffer;
- } u;
- int result;
-} __attribute__ ((packed));
-
-/* num of properties cannot exceed DTV_IOCTL_MAX_MSGS per ioctl */
-#define DTV_IOCTL_MAX_MSGS 64
-
-struct dtv_properties {
- __u32 num;
- struct dtv_property *props;
-};
-
-#define FE_SET_PROPERTY _IOW('o', 82, struct dtv_properties)
-#define FE_GET_PROPERTY _IOR('o', 83, struct dtv_properties)
-
-
-/**
- * When set, this flag will disable any zigzagging or other "normal" tuning
- * behaviour. Additionally, there will be no automatic monitoring of the lock
- * status, and hence no frontend events will be generated. If a frontend device
- * is closed, this flag will be automatically turned off when the device is
- * reopened read-write.
- */
-#define FE_TUNE_MODE_ONESHOT 0x01
-
-
-#define FE_GET_INFO _IOR('o', 61, struct dvb_frontend_info)
-
-#define FE_DISEQC_RESET_OVERLOAD _IO('o', 62)
-#define FE_DISEQC_SEND_MASTER_CMD _IOW('o', 63, struct dvb_diseqc_master_cmd)
-#define FE_DISEQC_RECV_SLAVE_REPLY _IOR('o', 64, struct dvb_diseqc_slave_reply)
-#define FE_DISEQC_SEND_BURST _IO('o', 65) /* fe_sec_mini_cmd_t */
-
-#define FE_SET_TONE _IO('o', 66) /* fe_sec_tone_mode_t */
-#define FE_SET_VOLTAGE _IO('o', 67) /* fe_sec_voltage_t */
-#define FE_ENABLE_HIGH_LNB_VOLTAGE _IO('o', 68) /* int */
-
-#define FE_READ_STATUS _IOR('o', 69, fe_status_t)
-#define FE_READ_BER _IOR('o', 70, __u32)
-#define FE_READ_SIGNAL_STRENGTH _IOR('o', 71, __u16)
-#define FE_READ_SNR _IOR('o', 72, __u16)
-#define FE_READ_UNCORRECTED_BLOCKS _IOR('o', 73, __u32)
-
-#define FE_SET_FRONTEND _IOW('o', 76, struct dvb_frontend_parameters)
-#define FE_GET_FRONTEND _IOR('o', 77, struct dvb_frontend_parameters)
-#define FE_SET_FRONTEND_TUNE_MODE _IO('o', 81) /* unsigned int */
-#define FE_GET_EVENT _IOR('o', 78, struct dvb_frontend_event)
-
-#define FE_DISHNETWORK_SEND_LEGACY_CMD _IO('o', 80) /* unsigned int */
-
-#endif /*_DVBFRONTEND_H_*/
diff --git a/ANDROID_3.4.5/include/linux/dvb/net.h b/ANDROID_3.4.5/include/linux/dvb/net.h
deleted file mode 100644
index f451e7eb..00000000
--- a/ANDROID_3.4.5/include/linux/dvb/net.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * net.h
- *
- * Copyright (C) 2000 Marcus Metzler <marcus@convergence.de>
- * & Ralph Metzler <ralph@convergence.de>
- * for convergence integrated media GmbH
- *
- * This program 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 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 Lesser 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.
- *
- */
-
-#ifndef _DVBNET_H_
-#define _DVBNET_H_
-
-#include <linux/types.h>
-
-struct dvb_net_if {
- __u16 pid;
- __u16 if_num;
- __u8 feedtype;
-#define DVB_NET_FEEDTYPE_MPE 0 /* multi protocol encapsulation */
-#define DVB_NET_FEEDTYPE_ULE 1 /* ultra lightweight encapsulation */
-};
-
-
-#define NET_ADD_IF _IOWR('o', 52, struct dvb_net_if)
-#define NET_REMOVE_IF _IO('o', 53)
-#define NET_GET_IF _IOWR('o', 54, struct dvb_net_if)
-
-
-/* binary compatibility cruft: */
-struct __dvb_net_if_old {
- __u16 pid;
- __u16 if_num;
-};
-#define __NET_ADD_IF_OLD _IOWR('o', 52, struct __dvb_net_if_old)
-#define __NET_GET_IF_OLD _IOWR('o', 54, struct __dvb_net_if_old)
-
-
-#endif /*_DVBNET_H_*/
diff --git a/ANDROID_3.4.5/include/linux/dvb/osd.h b/ANDROID_3.4.5/include/linux/dvb/osd.h
deleted file mode 100644
index 880e6843..00000000
--- a/ANDROID_3.4.5/include/linux/dvb/osd.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * osd.h
- *
- * Copyright (C) 2001 Ralph Metzler <ralph@convergence.de>
- * & Marcus Metzler <marcus@convergence.de>
- * for convergence integrated media GmbH
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Lesser Public License
- * as published by the Free Software Foundation; either version 2.1
- * 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 Lesser 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.
- *
- */
-
-#ifndef _DVBOSD_H_
-#define _DVBOSD_H_
-
-#include <linux/compiler.h>
-
-typedef enum {
- // All functions return -2 on "not open"
- OSD_Close=1, // ()
- // Disables OSD and releases the buffers
- // returns 0 on success
- OSD_Open, // (x0,y0,x1,y1,BitPerPixel[2/4/8](color&0x0F),mix[0..15](color&0xF0))
- // Opens OSD with this size and bit depth
- // returns 0 on success, -1 on DRAM allocation error, -2 on "already open"
- OSD_Show, // ()
- // enables OSD mode
- // returns 0 on success
- OSD_Hide, // ()
- // disables OSD mode
- // returns 0 on success
- OSD_Clear, // ()
- // Sets all pixel to color 0
- // returns 0 on success
- OSD_Fill, // (color)
- // Sets all pixel to color <col>
- // returns 0 on success
- OSD_SetColor, // (color,R{x0},G{y0},B{x1},opacity{y1})
- // set palette entry <num> to <r,g,b>, <mix> and <trans> apply
- // R,G,B: 0..255
- // R=Red, G=Green, B=Blue
- // opacity=0: pixel opacity 0% (only video pixel shows)
- // opacity=1..254: pixel opacity as specified in header
- // opacity=255: pixel opacity 100% (only OSD pixel shows)
- // returns 0 on success, -1 on error
- OSD_SetPalette, // (firstcolor{color},lastcolor{x0},data)
- // Set a number of entries in the palette
- // sets the entries "firstcolor" through "lastcolor" from the array "data"
- // data has 4 byte for each color:
- // R,G,B, and a opacity value: 0->transparent, 1..254->mix, 255->pixel
- OSD_SetTrans, // (transparency{color})
- // Sets transparency of mixed pixel (0..15)
- // returns 0 on success
- OSD_SetPixel, // (x0,y0,color)
- // sets pixel <x>,<y> to color number <col>
- // returns 0 on success, -1 on error
- OSD_GetPixel, // (x0,y0)
- // returns color number of pixel <x>,<y>, or -1
- OSD_SetRow, // (x0,y0,x1,data)
- // fills pixels x0,y through x1,y with the content of data[]
- // returns 0 on success, -1 on clipping all pixel (no pixel drawn)
- OSD_SetBlock, // (x0,y0,x1,y1,increment{color},data)
- // fills pixels x0,y0 through x1,y1 with the content of data[]
- // inc contains the width of one line in the data block,
- // inc<=0 uses blockwidth as linewidth
- // returns 0 on success, -1 on clipping all pixel
- OSD_FillRow, // (x0,y0,x1,color)
- // fills pixels x0,y through x1,y with the color <col>
- // returns 0 on success, -1 on clipping all pixel
- OSD_FillBlock, // (x0,y0,x1,y1,color)
- // fills pixels x0,y0 through x1,y1 with the color <col>
- // returns 0 on success, -1 on clipping all pixel
- OSD_Line, // (x0,y0,x1,y1,color)
- // draw a line from x0,y0 to x1,y1 with the color <col>
- // returns 0 on success
- OSD_Query, // (x0,y0,x1,y1,xasp{color}}), yasp=11
- // fills parameters with the picture dimensions and the pixel aspect ratio
- // returns 0 on success
- OSD_Test, // ()
- // draws a test picture. for debugging purposes only
- // returns 0 on success
-// TODO: remove "test" in final version
- OSD_Text, // (x0,y0,size,color,text)
- OSD_SetWindow, // (x0) set window with number 0<x0<8 as current
- OSD_MoveWindow, // move current window to (x0, y0)
- OSD_OpenRaw, // Open other types of OSD windows
-} OSD_Command;
-
-typedef struct osd_cmd_s {
- OSD_Command cmd;
- int x0;
- int y0;
- int x1;
- int y1;
- int color;
- void __user *data;
-} osd_cmd_t;
-
-/* OSD_OpenRaw: set 'color' to desired window type */
-typedef enum {
- OSD_BITMAP1, /* 1 bit bitmap */
- OSD_BITMAP2, /* 2 bit bitmap */
- OSD_BITMAP4, /* 4 bit bitmap */
- OSD_BITMAP8, /* 8 bit bitmap */
- OSD_BITMAP1HR, /* 1 Bit bitmap half resolution */
- OSD_BITMAP2HR, /* 2 bit bitmap half resolution */
- OSD_BITMAP4HR, /* 4 bit bitmap half resolution */
- OSD_BITMAP8HR, /* 8 bit bitmap half resolution */
- OSD_YCRCB422, /* 4:2:2 YCRCB Graphic Display */
- OSD_YCRCB444, /* 4:4:4 YCRCB Graphic Display */
- OSD_YCRCB444HR, /* 4:4:4 YCRCB graphic half resolution */
- OSD_VIDEOTSIZE, /* True Size Normal MPEG Video Display */
- OSD_VIDEOHSIZE, /* MPEG Video Display Half Resolution */
- OSD_VIDEOQSIZE, /* MPEG Video Display Quarter Resolution */
- OSD_VIDEODSIZE, /* MPEG Video Display Double Resolution */
- OSD_VIDEOTHSIZE, /* True Size MPEG Video Display Half Resolution */
- OSD_VIDEOTQSIZE, /* True Size MPEG Video Display Quarter Resolution*/
- OSD_VIDEOTDSIZE, /* True Size MPEG Video Display Double Resolution */
- OSD_VIDEONSIZE, /* Full Size MPEG Video Display */
- OSD_CURSOR /* Cursor */
-} osd_raw_window_t;
-
-typedef struct osd_cap_s {
- int cmd;
-#define OSD_CAP_MEMSIZE 1 /* memory size */
- long val;
-} osd_cap_t;
-
-
-#define OSD_SEND_CMD _IOW('o', 160, osd_cmd_t)
-#define OSD_GET_CAPABILITY _IOR('o', 161, osd_cap_t)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/dvb/version.h b/ANDROID_3.4.5/include/linux/dvb/version.h
deleted file mode 100644
index 0559e2bd..00000000
--- a/ANDROID_3.4.5/include/linux/dvb/version.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * version.h
- *
- * Copyright (C) 2000 Holger Waechtler <holger@convergence.de>
- * for convergence integrated media GmbH
- *
- * This program 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 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 Lesser 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.
- *
- */
-
-#ifndef _DVBVERSION_H_
-#define _DVBVERSION_H_
-
-#define DVB_API_VERSION 5
-#define DVB_API_VERSION_MINOR 5
-
-#endif /*_DVBVERSION_H_*/
diff --git a/ANDROID_3.4.5/include/linux/dvb/video.h b/ANDROID_3.4.5/include/linux/dvb/video.h
deleted file mode 100644
index 1d750c0f..00000000
--- a/ANDROID_3.4.5/include/linux/dvb/video.h
+++ /dev/null
@@ -1,276 +0,0 @@
-/*
- * video.h
- *
- * Copyright (C) 2000 Marcus Metzler <marcus@convergence.de>
- * & Ralph Metzler <ralph@convergence.de>
- * for convergence integrated media GmbH
- *
- * This program 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 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 Lesser 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.
- *
- */
-
-#ifndef _DVBVIDEO_H_
-#define _DVBVIDEO_H_
-
-#include <linux/types.h>
-#ifdef __KERNEL__
-#include <linux/compiler.h>
-#else
-#include <stdint.h>
-#include <time.h>
-#endif
-
-typedef enum {
- VIDEO_FORMAT_4_3, /* Select 4:3 format */
- VIDEO_FORMAT_16_9, /* Select 16:9 format. */
- VIDEO_FORMAT_221_1 /* 2.21:1 */
-} video_format_t;
-
-
-typedef enum {
- VIDEO_SYSTEM_PAL,
- VIDEO_SYSTEM_NTSC,
- VIDEO_SYSTEM_PALN,
- VIDEO_SYSTEM_PALNc,
- VIDEO_SYSTEM_PALM,
- VIDEO_SYSTEM_NTSC60,
- VIDEO_SYSTEM_PAL60,
- VIDEO_SYSTEM_PALM60
-} video_system_t;
-
-
-typedef enum {
- VIDEO_PAN_SCAN, /* use pan and scan format */
- VIDEO_LETTER_BOX, /* use letterbox format */
- VIDEO_CENTER_CUT_OUT /* use center cut out format */
-} video_displayformat_t;
-
-typedef struct {
- int w;
- int h;
- video_format_t aspect_ratio;
-} video_size_t;
-
-typedef enum {
- VIDEO_SOURCE_DEMUX, /* Select the demux as the main source */
- VIDEO_SOURCE_MEMORY /* If this source is selected, the stream
- comes from the user through the write
- system call */
-} video_stream_source_t;
-
-
-typedef enum {
- VIDEO_STOPPED, /* Video is stopped */
- VIDEO_PLAYING, /* Video is currently playing */
- VIDEO_FREEZED /* Video is freezed */
-} video_play_state_t;
-
-
-/* Decoder commands */
-#define VIDEO_CMD_PLAY (0)
-#define VIDEO_CMD_STOP (1)
-#define VIDEO_CMD_FREEZE (2)
-#define VIDEO_CMD_CONTINUE (3)
-
-/* Flags for VIDEO_CMD_FREEZE */
-#define VIDEO_CMD_FREEZE_TO_BLACK (1 << 0)
-
-/* Flags for VIDEO_CMD_STOP */
-#define VIDEO_CMD_STOP_TO_BLACK (1 << 0)
-#define VIDEO_CMD_STOP_IMMEDIATELY (1 << 1)
-
-/* Play input formats: */
-/* The decoder has no special format requirements */
-#define VIDEO_PLAY_FMT_NONE (0)
-/* The decoder requires full GOPs */
-#define VIDEO_PLAY_FMT_GOP (1)
-
-/* The structure must be zeroed before use by the application
- This ensures it can be extended safely in the future. */
-struct video_command {
- __u32 cmd;
- __u32 flags;
- union {
- struct {
- __u64 pts;
- } stop;
-
- struct {
- /* 0 or 1000 specifies normal speed,
- 1 specifies forward single stepping,
- -1 specifies backward single stepping,
- >1: playback at speed/1000 of the normal speed,
- <-1: reverse playback at (-speed/1000) of the normal speed. */
- __s32 speed;
- __u32 format;
- } play;
-
- struct {
- __u32 data[16];
- } raw;
- };
-};
-
-/* FIELD_UNKNOWN can be used if the hardware does not know whether
- the Vsync is for an odd, even or progressive (i.e. non-interlaced)
- field. */
-#define VIDEO_VSYNC_FIELD_UNKNOWN (0)
-#define VIDEO_VSYNC_FIELD_ODD (1)
-#define VIDEO_VSYNC_FIELD_EVEN (2)
-#define VIDEO_VSYNC_FIELD_PROGRESSIVE (3)
-
-struct video_event {
- __s32 type;
-#define VIDEO_EVENT_SIZE_CHANGED 1
-#define VIDEO_EVENT_FRAME_RATE_CHANGED 2
-#define VIDEO_EVENT_DECODER_STOPPED 3
-#define VIDEO_EVENT_VSYNC 4
- __kernel_time_t timestamp;
- union {
- video_size_t size;
- unsigned int frame_rate; /* in frames per 1000sec */
- unsigned char vsync_field; /* unknown/odd/even/progressive */
- } u;
-};
-
-
-struct video_status {
- int video_blank; /* blank video on freeze? */
- video_play_state_t play_state; /* current state of playback */
- video_stream_source_t stream_source; /* current source (demux/memory) */
- video_format_t video_format; /* current aspect ratio of stream*/
- video_displayformat_t display_format;/* selected cropping mode */
-};
-
-
-struct video_still_picture {
- char __user *iFrame; /* pointer to a single iframe in memory */
- __s32 size;
-};
-
-
-typedef
-struct video_highlight {
- int active; /* 1=show highlight, 0=hide highlight */
- __u8 contrast1; /* 7- 4 Pattern pixel contrast */
- /* 3- 0 Background pixel contrast */
- __u8 contrast2; /* 7- 4 Emphasis pixel-2 contrast */
- /* 3- 0 Emphasis pixel-1 contrast */
- __u8 color1; /* 7- 4 Pattern pixel color */
- /* 3- 0 Background pixel color */
- __u8 color2; /* 7- 4 Emphasis pixel-2 color */
- /* 3- 0 Emphasis pixel-1 color */
- __u32 ypos; /* 23-22 auto action mode */
- /* 21-12 start y */
- /* 9- 0 end y */
- __u32 xpos; /* 23-22 button color number */
- /* 21-12 start x */
- /* 9- 0 end x */
-} video_highlight_t;
-
-
-typedef struct video_spu {
- int active;
- int stream_id;
-} video_spu_t;
-
-
-typedef struct video_spu_palette { /* SPU Palette information */
- int length;
- __u8 __user *palette;
-} video_spu_palette_t;
-
-
-typedef struct video_navi_pack {
- int length; /* 0 ... 1024 */
- __u8 data[1024];
-} video_navi_pack_t;
-
-
-typedef __u16 video_attributes_t;
-/* bits: descr. */
-/* 15-14 Video compression mode (0=MPEG-1, 1=MPEG-2) */
-/* 13-12 TV system (0=525/60, 1=625/50) */
-/* 11-10 Aspect ratio (0=4:3, 3=16:9) */
-/* 9- 8 permitted display mode on 4:3 monitor (0=both, 1=only pan-sca */
-/* 7 line 21-1 data present in GOP (1=yes, 0=no) */
-/* 6 line 21-2 data present in GOP (1=yes, 0=no) */
-/* 5- 3 source resolution (0=720x480/576, 1=704x480/576, 2=352x480/57 */
-/* 2 source letterboxed (1=yes, 0=no) */
-/* 0 film/camera mode (0=camera, 1=film (625/50 only)) */
-
-
-/* bit definitions for capabilities: */
-/* can the hardware decode MPEG1 and/or MPEG2? */
-#define VIDEO_CAP_MPEG1 1
-#define VIDEO_CAP_MPEG2 2
-/* can you send a system and/or program stream to video device?
- (you still have to open the video and the audio device but only
- send the stream to the video device) */
-#define VIDEO_CAP_SYS 4
-#define VIDEO_CAP_PROG 8
-/* can the driver also handle SPU, NAVI and CSS encoded data?
- (CSS API is not present yet) */
-#define VIDEO_CAP_SPU 16
-#define VIDEO_CAP_NAVI 32
-#define VIDEO_CAP_CSS 64
-
-
-#define VIDEO_STOP _IO('o', 21)
-#define VIDEO_PLAY _IO('o', 22)
-#define VIDEO_FREEZE _IO('o', 23)
-#define VIDEO_CONTINUE _IO('o', 24)
-#define VIDEO_SELECT_SOURCE _IO('o', 25)
-#define VIDEO_SET_BLANK _IO('o', 26)
-#define VIDEO_GET_STATUS _IOR('o', 27, struct video_status)
-#define VIDEO_GET_EVENT _IOR('o', 28, struct video_event)
-#define VIDEO_SET_DISPLAY_FORMAT _IO('o', 29)
-#define VIDEO_STILLPICTURE _IOW('o', 30, struct video_still_picture)
-#define VIDEO_FAST_FORWARD _IO('o', 31)
-#define VIDEO_SLOWMOTION _IO('o', 32)
-#define VIDEO_GET_CAPABILITIES _IOR('o', 33, unsigned int)
-#define VIDEO_CLEAR_BUFFER _IO('o', 34)
-#define VIDEO_SET_ID _IO('o', 35)
-#define VIDEO_SET_STREAMTYPE _IO('o', 36)
-#define VIDEO_SET_FORMAT _IO('o', 37)
-#define VIDEO_SET_SYSTEM _IO('o', 38)
-#define VIDEO_SET_HIGHLIGHT _IOW('o', 39, video_highlight_t)
-#define VIDEO_SET_SPU _IOW('o', 50, video_spu_t)
-#define VIDEO_SET_SPU_PALETTE _IOW('o', 51, video_spu_palette_t)
-#define VIDEO_GET_NAVI _IOR('o', 52, video_navi_pack_t)
-#define VIDEO_SET_ATTRIBUTES _IO('o', 53)
-#define VIDEO_GET_SIZE _IOR('o', 55, video_size_t)
-#define VIDEO_GET_FRAME_RATE _IOR('o', 56, unsigned int)
-
-/**
- * VIDEO_GET_PTS
- *
- * Read the 33 bit presentation time stamp as defined
- * in ITU T-REC-H.222.0 / ISO/IEC 13818-1.
- *
- * The PTS should belong to the currently played
- * frame if possible, but may also be a value close to it
- * like the PTS of the last decoded frame or the last PTS
- * extracted by the PES parser.
- */
-#define VIDEO_GET_PTS _IOR('o', 57, __u64)
-
-/* Read the number of displayed frames since the decoder was started */
-#define VIDEO_GET_FRAME_COUNT _IOR('o', 58, __u64)
-
-#define VIDEO_COMMAND _IOWR('o', 59, struct video_command)
-#define VIDEO_TRY_COMMAND _IOWR('o', 60, struct video_command)
-
-#endif /*_DVBVIDEO_H_*/
diff --git a/ANDROID_3.4.5/include/linux/dw_apb_timer.h b/ANDROID_3.4.5/include/linux/dw_apb_timer.h
deleted file mode 100644
index 07261d52..00000000
--- a/ANDROID_3.4.5/include/linux/dw_apb_timer.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * (C) Copyright 2009 Intel Corporation
- * Author: Jacob Pan (jacob.jun.pan@intel.com)
- *
- * Shared with ARM platforms, Jamie Iles, Picochip 2011
- *
- * 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.
- *
- * Support for the Synopsys DesignWare APB Timers.
- */
-#ifndef __DW_APB_TIMER_H__
-#define __DW_APB_TIMER_H__
-
-#include <linux/clockchips.h>
-#include <linux/clocksource.h>
-#include <linux/interrupt.h>
-
-#define APBTMRS_REG_SIZE 0x14
-
-struct dw_apb_timer {
- void __iomem *base;
- unsigned long freq;
- int irq;
-};
-
-struct dw_apb_clock_event_device {
- struct clock_event_device ced;
- struct dw_apb_timer timer;
- struct irqaction irqaction;
- void (*eoi)(struct dw_apb_timer *);
-};
-
-struct dw_apb_clocksource {
- struct dw_apb_timer timer;
- struct clocksource cs;
-};
-
-void dw_apb_clockevent_register(struct dw_apb_clock_event_device *dw_ced);
-void dw_apb_clockevent_pause(struct dw_apb_clock_event_device *dw_ced);
-void dw_apb_clockevent_resume(struct dw_apb_clock_event_device *dw_ced);
-void dw_apb_clockevent_stop(struct dw_apb_clock_event_device *dw_ced);
-
-struct dw_apb_clock_event_device *
-dw_apb_clockevent_init(int cpu, const char *name, unsigned rating,
- void __iomem *base, int irq, unsigned long freq);
-struct dw_apb_clocksource *
-dw_apb_clocksource_init(unsigned rating, const char *name, void __iomem *base,
- unsigned long freq);
-void dw_apb_clocksource_register(struct dw_apb_clocksource *dw_cs);
-void dw_apb_clocksource_start(struct dw_apb_clocksource *dw_cs);
-cycle_t dw_apb_clocksource_read(struct dw_apb_clocksource *dw_cs);
-void dw_apb_clocksource_unregister(struct dw_apb_clocksource *dw_cs);
-
-#endif /* __DW_APB_TIMER_H__ */
diff --git a/ANDROID_3.4.5/include/linux/dw_dmac.h b/ANDROID_3.4.5/include/linux/dw_dmac.h
deleted file mode 100644
index 2412e02d..00000000
--- a/ANDROID_3.4.5/include/linux/dw_dmac.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Driver for the Synopsys DesignWare DMA Controller (aka DMACA on
- * AVR32 systems.)
- *
- * Copyright (C) 2007 Atmel Corporation
- * Copyright (C) 2010-2011 ST Microelectronics
- *
- * 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.
- */
-#ifndef DW_DMAC_H
-#define DW_DMAC_H
-
-#include <linux/dmaengine.h>
-
-/**
- * struct dw_dma_platform_data - Controller configuration parameters
- * @nr_channels: Number of channels supported by hardware (max 8)
- * @is_private: The device channels should be marked as private and not for
- * by the general purpose DMA channel allocator.
- */
-struct dw_dma_platform_data {
- unsigned int nr_channels;
- bool is_private;
-#define CHAN_ALLOCATION_ASCENDING 0 /* zero to seven */
-#define CHAN_ALLOCATION_DESCENDING 1 /* seven to zero */
- unsigned char chan_allocation_order;
-#define CHAN_PRIORITY_ASCENDING 0 /* chan0 highest */
-#define CHAN_PRIORITY_DESCENDING 1 /* chan7 highest */
- unsigned char chan_priority;
-};
-
-/* bursts size */
-enum dw_dma_msize {
- DW_DMA_MSIZE_1,
- DW_DMA_MSIZE_4,
- DW_DMA_MSIZE_8,
- DW_DMA_MSIZE_16,
- DW_DMA_MSIZE_32,
- DW_DMA_MSIZE_64,
- DW_DMA_MSIZE_128,
- DW_DMA_MSIZE_256,
-};
-
-/**
- * struct dw_dma_slave - Controller-specific information about a slave
- *
- * @dma_dev: required DMA master device
- * @cfg_hi: Platform-specific initializer for the CFG_HI register
- * @cfg_lo: Platform-specific initializer for the CFG_LO register
- * @src_master: src master for transfers on allocated channel.
- * @dst_master: dest master for transfers on allocated channel.
- */
-struct dw_dma_slave {
- struct device *dma_dev;
- u32 cfg_hi;
- u32 cfg_lo;
- u8 src_master;
- u8 dst_master;
-};
-
-/* Platform-configurable bits in CFG_HI */
-#define DWC_CFGH_FCMODE (1 << 0)
-#define DWC_CFGH_FIFO_MODE (1 << 1)
-#define DWC_CFGH_PROTCTL(x) ((x) << 2)
-#define DWC_CFGH_SRC_PER(x) ((x) << 7)
-#define DWC_CFGH_DST_PER(x) ((x) << 11)
-
-/* Platform-configurable bits in CFG_LO */
-#define DWC_CFGL_LOCK_CH_XFER (0 << 12) /* scope of LOCK_CH */
-#define DWC_CFGL_LOCK_CH_BLOCK (1 << 12)
-#define DWC_CFGL_LOCK_CH_XACT (2 << 12)
-#define DWC_CFGL_LOCK_BUS_XFER (0 << 14) /* scope of LOCK_BUS */
-#define DWC_CFGL_LOCK_BUS_BLOCK (1 << 14)
-#define DWC_CFGL_LOCK_BUS_XACT (2 << 14)
-#define DWC_CFGL_LOCK_CH (1 << 15) /* channel lockout */
-#define DWC_CFGL_LOCK_BUS (1 << 16) /* busmaster lockout */
-#define DWC_CFGL_HS_DST_POL (1 << 18) /* dst handshake active low */
-#define DWC_CFGL_HS_SRC_POL (1 << 19) /* src handshake active low */
-
-/* DMA API extensions */
-struct dw_cyclic_desc {
- struct dw_desc **desc;
- unsigned long periods;
- void (*period_callback)(void *param);
- void *period_callback_param;
-};
-
-struct dw_cyclic_desc *dw_dma_cyclic_prep(struct dma_chan *chan,
- dma_addr_t buf_addr, size_t buf_len, size_t period_len,
- enum dma_transfer_direction direction);
-void dw_dma_cyclic_free(struct dma_chan *chan);
-int dw_dma_cyclic_start(struct dma_chan *chan);
-void dw_dma_cyclic_stop(struct dma_chan *chan);
-
-dma_addr_t dw_dma_get_src_addr(struct dma_chan *chan);
-
-dma_addr_t dw_dma_get_dst_addr(struct dma_chan *chan);
-
-#endif /* DW_DMAC_H */
diff --git a/ANDROID_3.4.5/include/linux/dynamic_debug.h b/ANDROID_3.4.5/include/linux/dynamic_debug.h
deleted file mode 100644
index 7e3c53a9..00000000
--- a/ANDROID_3.4.5/include/linux/dynamic_debug.h
+++ /dev/null
@@ -1,108 +0,0 @@
-#ifndef _DYNAMIC_DEBUG_H
-#define _DYNAMIC_DEBUG_H
-
-/*
- * An instance of this structure is created in a special
- * ELF section at every dynamic debug callsite. At runtime,
- * the special section is treated as an array of these.
- */
-struct _ddebug {
- /*
- * These fields are used to drive the user interface
- * for selecting and displaying debug callsites.
- */
- const char *modname;
- const char *function;
- const char *filename;
- const char *format;
- unsigned int lineno:18;
- /*
- * The flags field controls the behaviour at the callsite.
- * The bits here are changed dynamically when the user
- * writes commands to <debugfs>/dynamic_debug/control
- */
-#define _DPRINTK_FLAGS_NONE 0
-#define _DPRINTK_FLAGS_PRINT (1<<0) /* printk() a message using the format */
-#define _DPRINTK_FLAGS_INCL_MODNAME (1<<1)
-#define _DPRINTK_FLAGS_INCL_FUNCNAME (1<<2)
-#define _DPRINTK_FLAGS_INCL_LINENO (1<<3)
-#define _DPRINTK_FLAGS_INCL_TID (1<<4)
-#if defined DEBUG
-#define _DPRINTK_FLAGS_DEFAULT _DPRINTK_FLAGS_PRINT
-#else
-#define _DPRINTK_FLAGS_DEFAULT 0
-#endif
- unsigned int flags:8;
-} __attribute__((aligned(8)));
-
-
-int ddebug_add_module(struct _ddebug *tab, unsigned int n,
- const char *modname);
-
-#if defined(CONFIG_DYNAMIC_DEBUG)
-extern int ddebug_remove_module(const char *mod_name);
-extern __printf(2, 3)
-int __dynamic_pr_debug(struct _ddebug *descriptor, const char *fmt, ...);
-
-struct device;
-
-extern __printf(3, 4)
-int __dynamic_dev_dbg(struct _ddebug *descriptor, const struct device *dev,
- const char *fmt, ...);
-
-struct net_device;
-
-extern __printf(3, 4)
-int __dynamic_netdev_dbg(struct _ddebug *descriptor,
- const struct net_device *dev,
- const char *fmt, ...);
-
-#define DEFINE_DYNAMIC_DEBUG_METADATA(name, fmt) \
- static struct _ddebug __used __aligned(8) \
- __attribute__((section("__verbose"))) name = { \
- .modname = KBUILD_MODNAME, \
- .function = __func__, \
- .filename = __FILE__, \
- .format = (fmt), \
- .lineno = __LINE__, \
- .flags = _DPRINTK_FLAGS_DEFAULT, \
- }
-
-#define dynamic_pr_debug(fmt, ...) \
-do { \
- DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt); \
- if (unlikely(descriptor.flags & _DPRINTK_FLAGS_PRINT)) \
- __dynamic_pr_debug(&descriptor, pr_fmt(fmt), \
- ##__VA_ARGS__); \
-} while (0)
-
-#define dynamic_dev_dbg(dev, fmt, ...) \
-do { \
- DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt); \
- if (unlikely(descriptor.flags & _DPRINTK_FLAGS_PRINT)) \
- __dynamic_dev_dbg(&descriptor, dev, fmt, \
- ##__VA_ARGS__); \
-} while (0)
-
-#define dynamic_netdev_dbg(dev, fmt, ...) \
-do { \
- DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt); \
- if (unlikely(descriptor.flags & _DPRINTK_FLAGS_PRINT)) \
- __dynamic_netdev_dbg(&descriptor, dev, fmt, \
- ##__VA_ARGS__); \
-} while (0)
-
-#else
-
-static inline int ddebug_remove_module(const char *mod)
-{
- return 0;
-}
-
-#define dynamic_pr_debug(fmt, ...) \
- do { if (0) printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__); } while (0)
-#define dynamic_dev_dbg(dev, fmt, ...) \
- do { if (0) dev_printk(KERN_DEBUG, dev, fmt, ##__VA_ARGS__); } while (0)
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/dynamic_queue_limits.h b/ANDROID_3.4.5/include/linux/dynamic_queue_limits.h
deleted file mode 100644
index 5621547d..00000000
--- a/ANDROID_3.4.5/include/linux/dynamic_queue_limits.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Dynamic queue limits (dql) - Definitions
- *
- * Copyright (c) 2011, Tom Herbert <therbert@google.com>
- *
- * This header file contains the definitions for dynamic queue limits (dql).
- * dql would be used in conjunction with a producer/consumer type queue
- * (possibly a HW queue). Such a queue would have these general properties:
- *
- * 1) Objects are queued up to some limit specified as number of objects.
- * 2) Periodically a completion process executes which retires consumed
- * objects.
- * 3) Starvation occurs when limit has been reached, all queued data has
- * actually been consumed, but completion processing has not yet run
- * so queuing new data is blocked.
- * 4) Minimizing the amount of queued data is desirable.
- *
- * The goal of dql is to calculate the limit as the minimum number of objects
- * needed to prevent starvation.
- *
- * The primary functions of dql are:
- * dql_queued - called when objects are enqueued to record number of objects
- * dql_avail - returns how many objects are available to be queued based
- * on the object limit and how many objects are already enqueued
- * dql_completed - called at completion time to indicate how many objects
- * were retired from the queue
- *
- * The dql implementation does not implement any locking for the dql data
- * structures, the higher layer should provide this. dql_queued should
- * be serialized to prevent concurrent execution of the function; this
- * is also true for dql_completed. However, dql_queued and dlq_completed can
- * be executed concurrently (i.e. they can be protected by different locks).
- */
-
-#ifndef _LINUX_DQL_H
-#define _LINUX_DQL_H
-
-#ifdef __KERNEL__
-
-struct dql {
- /* Fields accessed in enqueue path (dql_queued) */
- unsigned int num_queued; /* Total ever queued */
- unsigned int adj_limit; /* limit + num_completed */
- unsigned int last_obj_cnt; /* Count at last queuing */
-
- /* Fields accessed only by completion path (dql_completed) */
-
- unsigned int limit ____cacheline_aligned_in_smp; /* Current limit */
- unsigned int num_completed; /* Total ever completed */
-
- unsigned int prev_ovlimit; /* Previous over limit */
- unsigned int prev_num_queued; /* Previous queue total */
- unsigned int prev_last_obj_cnt; /* Previous queuing cnt */
-
- unsigned int lowest_slack; /* Lowest slack found */
- unsigned long slack_start_time; /* Time slacks seen */
-
- /* Configuration */
- unsigned int max_limit; /* Max limit */
- unsigned int min_limit; /* Minimum limit */
- unsigned int slack_hold_time; /* Time to measure slack */
-};
-
-/* Set some static maximums */
-#define DQL_MAX_OBJECT (UINT_MAX / 16)
-#define DQL_MAX_LIMIT ((UINT_MAX / 2) - DQL_MAX_OBJECT)
-
-/*
- * Record number of objects queued. Assumes that caller has already checked
- * availability in the queue with dql_avail.
- */
-static inline void dql_queued(struct dql *dql, unsigned int count)
-{
- BUG_ON(count > DQL_MAX_OBJECT);
-
- dql->num_queued += count;
- dql->last_obj_cnt = count;
-}
-
-/* Returns how many objects can be queued, < 0 indicates over limit. */
-static inline int dql_avail(const struct dql *dql)
-{
- return dql->adj_limit - dql->num_queued;
-}
-
-/* Record number of completed objects and recalculate the limit. */
-void dql_completed(struct dql *dql, unsigned int count);
-
-/* Reset dql state */
-void dql_reset(struct dql *dql);
-
-/* Initialize dql state */
-int dql_init(struct dql *dql, unsigned hold_time);
-
-#endif /* _KERNEL_ */
-
-#endif /* _LINUX_DQL_H */
diff --git a/ANDROID_3.4.5/include/linux/ecryptfs.h b/ANDROID_3.4.5/include/linux/ecryptfs.h
deleted file mode 100644
index 2224a8c0..00000000
--- a/ANDROID_3.4.5/include/linux/ecryptfs.h
+++ /dev/null
@@ -1,113 +0,0 @@
-#ifndef _LINUX_ECRYPTFS_H
-#define _LINUX_ECRYPTFS_H
-
-/* Version verification for shared data structures w/ userspace */
-#define ECRYPTFS_VERSION_MAJOR 0x00
-#define ECRYPTFS_VERSION_MINOR 0x04
-#define ECRYPTFS_SUPPORTED_FILE_VERSION 0x03
-/* These flags indicate which features are supported by the kernel
- * module; userspace tools such as the mount helper read
- * ECRYPTFS_VERSIONING_MASK from a sysfs handle in order to determine
- * how to behave. */
-#define ECRYPTFS_VERSIONING_PASSPHRASE 0x00000001
-#define ECRYPTFS_VERSIONING_PUBKEY 0x00000002
-#define ECRYPTFS_VERSIONING_PLAINTEXT_PASSTHROUGH 0x00000004
-#define ECRYPTFS_VERSIONING_POLICY 0x00000008
-#define ECRYPTFS_VERSIONING_XATTR 0x00000010
-#define ECRYPTFS_VERSIONING_MULTKEY 0x00000020
-#define ECRYPTFS_VERSIONING_DEVMISC 0x00000040
-#define ECRYPTFS_VERSIONING_HMAC 0x00000080
-#define ECRYPTFS_VERSIONING_FILENAME_ENCRYPTION 0x00000100
-#define ECRYPTFS_VERSIONING_GCM 0x00000200
-#define ECRYPTFS_VERSIONING_MASK (ECRYPTFS_VERSIONING_PASSPHRASE \
- | ECRYPTFS_VERSIONING_PLAINTEXT_PASSTHROUGH \
- | ECRYPTFS_VERSIONING_PUBKEY \
- | ECRYPTFS_VERSIONING_XATTR \
- | ECRYPTFS_VERSIONING_MULTKEY \
- | ECRYPTFS_VERSIONING_DEVMISC \
- | ECRYPTFS_VERSIONING_FILENAME_ENCRYPTION)
-#define ECRYPTFS_MAX_PASSWORD_LENGTH 64
-#define ECRYPTFS_MAX_PASSPHRASE_BYTES ECRYPTFS_MAX_PASSWORD_LENGTH
-#define ECRYPTFS_SALT_SIZE 8
-#define ECRYPTFS_SALT_SIZE_HEX (ECRYPTFS_SALT_SIZE*2)
-/* The original signature size is only for what is stored on disk; all
- * in-memory representations are expanded hex, so it better adapted to
- * be passed around or referenced on the command line */
-#define ECRYPTFS_SIG_SIZE 8
-#define ECRYPTFS_SIG_SIZE_HEX (ECRYPTFS_SIG_SIZE*2)
-#define ECRYPTFS_PASSWORD_SIG_SIZE ECRYPTFS_SIG_SIZE_HEX
-#define ECRYPTFS_MAX_KEY_BYTES 64
-#define ECRYPTFS_MAX_ENCRYPTED_KEY_BYTES 512
-#define ECRYPTFS_FILE_VERSION 0x03
-#define ECRYPTFS_MAX_PKI_NAME_BYTES 16
-
-#define RFC2440_CIPHER_DES3_EDE 0x02
-#define RFC2440_CIPHER_CAST_5 0x03
-#define RFC2440_CIPHER_BLOWFISH 0x04
-#define RFC2440_CIPHER_AES_128 0x07
-#define RFC2440_CIPHER_AES_192 0x08
-#define RFC2440_CIPHER_AES_256 0x09
-#define RFC2440_CIPHER_TWOFISH 0x0a
-#define RFC2440_CIPHER_CAST_6 0x0b
-
-#define RFC2440_CIPHER_RSA 0x01
-
-/**
- * For convenience, we may need to pass around the encrypted session
- * key between kernel and userspace because the authentication token
- * may not be extractable. For example, the TPM may not release the
- * private key, instead requiring the encrypted data and returning the
- * decrypted data.
- */
-struct ecryptfs_session_key {
-#define ECRYPTFS_USERSPACE_SHOULD_TRY_TO_DECRYPT 0x00000001
-#define ECRYPTFS_USERSPACE_SHOULD_TRY_TO_ENCRYPT 0x00000002
-#define ECRYPTFS_CONTAINS_DECRYPTED_KEY 0x00000004
-#define ECRYPTFS_CONTAINS_ENCRYPTED_KEY 0x00000008
- u32 flags;
- u32 encrypted_key_size;
- u32 decrypted_key_size;
- u8 encrypted_key[ECRYPTFS_MAX_ENCRYPTED_KEY_BYTES];
- u8 decrypted_key[ECRYPTFS_MAX_KEY_BYTES];
-};
-
-struct ecryptfs_password {
- u32 password_bytes;
- s32 hash_algo;
- u32 hash_iterations;
- u32 session_key_encryption_key_bytes;
-#define ECRYPTFS_PERSISTENT_PASSWORD 0x01
-#define ECRYPTFS_SESSION_KEY_ENCRYPTION_KEY_SET 0x02
- u32 flags;
- /* Iterated-hash concatenation of salt and passphrase */
- u8 session_key_encryption_key[ECRYPTFS_MAX_KEY_BYTES];
- u8 signature[ECRYPTFS_PASSWORD_SIG_SIZE + 1];
- /* Always in expanded hex */
- u8 salt[ECRYPTFS_SALT_SIZE];
-};
-
-enum ecryptfs_token_types {ECRYPTFS_PASSWORD, ECRYPTFS_PRIVATE_KEY};
-
-struct ecryptfs_private_key {
- u32 key_size;
- u32 data_len;
- u8 signature[ECRYPTFS_PASSWORD_SIG_SIZE + 1];
- char pki_type[ECRYPTFS_MAX_PKI_NAME_BYTES + 1];
- u8 data[];
-};
-
-/* May be a password or a private key */
-struct ecryptfs_auth_tok {
- u16 version; /* 8-bit major and 8-bit minor */
- u16 token_type;
-#define ECRYPTFS_ENCRYPT_ONLY 0x00000001
- u32 flags;
- struct ecryptfs_session_key session_key;
- u8 reserved[32];
- union {
- struct ecryptfs_password password;
- struct ecryptfs_private_key private_key;
- } token;
-} __attribute__ ((packed));
-
-#endif /* _LINUX_ECRYPTFS_H */
diff --git a/ANDROID_3.4.5/include/linux/edac.h b/ANDROID_3.4.5/include/linux/edac.h
deleted file mode 100644
index c621d762..00000000
--- a/ANDROID_3.4.5/include/linux/edac.h
+++ /dev/null
@@ -1,476 +0,0 @@
-/*
- * Generic EDAC defs
- *
- * Author: Dave Jiang <djiang@mvista.com>
- *
- * 2006-2008 (c) MontaVista Software, Inc. This file is licensed under
- * the terms of the GNU General Public License version 2. This program
- * is licensed "as is" without any warranty of any kind, whether express
- * or implied.
- *
- */
-#ifndef _LINUX_EDAC_H_
-#define _LINUX_EDAC_H_
-
-#include <linux/atomic.h>
-#include <linux/kobject.h>
-#include <linux/completion.h>
-#include <linux/workqueue.h>
-
-struct device;
-
-#define EDAC_OPSTATE_INVAL -1
-#define EDAC_OPSTATE_POLL 0
-#define EDAC_OPSTATE_NMI 1
-#define EDAC_OPSTATE_INT 2
-
-extern int edac_op_state;
-extern int edac_err_assert;
-extern atomic_t edac_handlers;
-extern struct bus_type edac_subsys;
-
-extern int edac_handler_set(void);
-extern void edac_atomic_assert_error(void);
-extern struct bus_type *edac_get_sysfs_subsys(void);
-extern void edac_put_sysfs_subsys(void);
-
-static inline void opstate_init(void)
-{
- switch (edac_op_state) {
- case EDAC_OPSTATE_POLL:
- case EDAC_OPSTATE_NMI:
- break;
- default:
- edac_op_state = EDAC_OPSTATE_POLL;
- }
- return;
-}
-
-#define EDAC_MC_LABEL_LEN 31
-#define MC_PROC_NAME_MAX_LEN 7
-
-/* memory devices */
-enum dev_type {
- DEV_UNKNOWN = 0,
- DEV_X1,
- DEV_X2,
- DEV_X4,
- DEV_X8,
- DEV_X16,
- DEV_X32, /* Do these parts exist? */
- DEV_X64 /* Do these parts exist? */
-};
-
-#define DEV_FLAG_UNKNOWN BIT(DEV_UNKNOWN)
-#define DEV_FLAG_X1 BIT(DEV_X1)
-#define DEV_FLAG_X2 BIT(DEV_X2)
-#define DEV_FLAG_X4 BIT(DEV_X4)
-#define DEV_FLAG_X8 BIT(DEV_X8)
-#define DEV_FLAG_X16 BIT(DEV_X16)
-#define DEV_FLAG_X32 BIT(DEV_X32)
-#define DEV_FLAG_X64 BIT(DEV_X64)
-
-/**
- * enum mem_type - memory types. For a more detailed reference, please see
- * http://en.wikipedia.org/wiki/DRAM
- *
- * @MEM_EMPTY Empty csrow
- * @MEM_RESERVED: Reserved csrow type
- * @MEM_UNKNOWN: Unknown csrow type
- * @MEM_FPM: FPM - Fast Page Mode, used on systems up to 1995.
- * @MEM_EDO: EDO - Extended data out, used on systems up to 1998.
- * @MEM_BEDO: BEDO - Burst Extended data out, an EDO variant.
- * @MEM_SDR: SDR - Single data rate SDRAM
- * http://en.wikipedia.org/wiki/Synchronous_dynamic_random-access_memory
- * They use 3 pins for chip select: Pins 0 and 2 are
- * for rank 0; pins 1 and 3 are for rank 1, if the memory
- * is dual-rank.
- * @MEM_RDR: Registered SDR SDRAM
- * @MEM_DDR: Double data rate SDRAM
- * http://en.wikipedia.org/wiki/DDR_SDRAM
- * @MEM_RDDR: Registered Double data rate SDRAM
- * This is a variant of the DDR memories.
- * A registered memory has a buffer inside it, hiding
- * part of the memory details to the memory controller.
- * @MEM_RMBS: Rambus DRAM, used on a few Pentium III/IV controllers.
- * @MEM_DDR2: DDR2 RAM, as described at JEDEC JESD79-2F.
- * Those memories are labed as "PC2-" instead of "PC" to
- * differenciate from DDR.
- * @MEM_FB_DDR2: Fully-Buffered DDR2, as described at JEDEC Std No. 205
- * and JESD206.
- * Those memories are accessed per DIMM slot, and not by
- * a chip select signal.
- * @MEM_RDDR2: Registered DDR2 RAM
- * This is a variant of the DDR2 memories.
- * @MEM_XDR: Rambus XDR
- * It is an evolution of the original RAMBUS memories,
- * created to compete with DDR2. Weren't used on any
- * x86 arch, but cell_edac PPC memory controller uses it.
- * @MEM_DDR3: DDR3 RAM
- * @MEM_RDDR3: Registered DDR3 RAM
- * This is a variant of the DDR3 memories.
- */
-enum mem_type {
- MEM_EMPTY = 0,
- MEM_RESERVED,
- MEM_UNKNOWN,
- MEM_FPM,
- MEM_EDO,
- MEM_BEDO,
- MEM_SDR,
- MEM_RDR,
- MEM_DDR,
- MEM_RDDR,
- MEM_RMBS,
- MEM_DDR2,
- MEM_FB_DDR2,
- MEM_RDDR2,
- MEM_XDR,
- MEM_DDR3,
- MEM_RDDR3,
-};
-
-#define MEM_FLAG_EMPTY BIT(MEM_EMPTY)
-#define MEM_FLAG_RESERVED BIT(MEM_RESERVED)
-#define MEM_FLAG_UNKNOWN BIT(MEM_UNKNOWN)
-#define MEM_FLAG_FPM BIT(MEM_FPM)
-#define MEM_FLAG_EDO BIT(MEM_EDO)
-#define MEM_FLAG_BEDO BIT(MEM_BEDO)
-#define MEM_FLAG_SDR BIT(MEM_SDR)
-#define MEM_FLAG_RDR BIT(MEM_RDR)
-#define MEM_FLAG_DDR BIT(MEM_DDR)
-#define MEM_FLAG_RDDR BIT(MEM_RDDR)
-#define MEM_FLAG_RMBS BIT(MEM_RMBS)
-#define MEM_FLAG_DDR2 BIT(MEM_DDR2)
-#define MEM_FLAG_FB_DDR2 BIT(MEM_FB_DDR2)
-#define MEM_FLAG_RDDR2 BIT(MEM_RDDR2)
-#define MEM_FLAG_XDR BIT(MEM_XDR)
-#define MEM_FLAG_DDR3 BIT(MEM_DDR3)
-#define MEM_FLAG_RDDR3 BIT(MEM_RDDR3)
-
-/* chipset Error Detection and Correction capabilities and mode */
-enum edac_type {
- EDAC_UNKNOWN = 0, /* Unknown if ECC is available */
- EDAC_NONE, /* Doesn't support ECC */
- EDAC_RESERVED, /* Reserved ECC type */
- EDAC_PARITY, /* Detects parity errors */
- EDAC_EC, /* Error Checking - no correction */
- EDAC_SECDED, /* Single bit error correction, Double detection */
- EDAC_S2ECD2ED, /* Chipkill x2 devices - do these exist? */
- EDAC_S4ECD4ED, /* Chipkill x4 devices */
- EDAC_S8ECD8ED, /* Chipkill x8 devices */
- EDAC_S16ECD16ED, /* Chipkill x16 devices */
-};
-
-#define EDAC_FLAG_UNKNOWN BIT(EDAC_UNKNOWN)
-#define EDAC_FLAG_NONE BIT(EDAC_NONE)
-#define EDAC_FLAG_PARITY BIT(EDAC_PARITY)
-#define EDAC_FLAG_EC BIT(EDAC_EC)
-#define EDAC_FLAG_SECDED BIT(EDAC_SECDED)
-#define EDAC_FLAG_S2ECD2ED BIT(EDAC_S2ECD2ED)
-#define EDAC_FLAG_S4ECD4ED BIT(EDAC_S4ECD4ED)
-#define EDAC_FLAG_S8ECD8ED BIT(EDAC_S8ECD8ED)
-#define EDAC_FLAG_S16ECD16ED BIT(EDAC_S16ECD16ED)
-
-/* scrubbing capabilities */
-enum scrub_type {
- SCRUB_UNKNOWN = 0, /* Unknown if scrubber is available */
- SCRUB_NONE, /* No scrubber */
- SCRUB_SW_PROG, /* SW progressive (sequential) scrubbing */
- SCRUB_SW_SRC, /* Software scrub only errors */
- SCRUB_SW_PROG_SRC, /* Progressive software scrub from an error */
- SCRUB_SW_TUNABLE, /* Software scrub frequency is tunable */
- SCRUB_HW_PROG, /* HW progressive (sequential) scrubbing */
- SCRUB_HW_SRC, /* Hardware scrub only errors */
- SCRUB_HW_PROG_SRC, /* Progressive hardware scrub from an error */
- SCRUB_HW_TUNABLE /* Hardware scrub frequency is tunable */
-};
-
-#define SCRUB_FLAG_SW_PROG BIT(SCRUB_SW_PROG)
-#define SCRUB_FLAG_SW_SRC BIT(SCRUB_SW_SRC)
-#define SCRUB_FLAG_SW_PROG_SRC BIT(SCRUB_SW_PROG_SRC)
-#define SCRUB_FLAG_SW_TUN BIT(SCRUB_SW_SCRUB_TUNABLE)
-#define SCRUB_FLAG_HW_PROG BIT(SCRUB_HW_PROG)
-#define SCRUB_FLAG_HW_SRC BIT(SCRUB_HW_SRC)
-#define SCRUB_FLAG_HW_PROG_SRC BIT(SCRUB_HW_PROG_SRC)
-#define SCRUB_FLAG_HW_TUN BIT(SCRUB_HW_TUNABLE)
-
-/* FIXME - should have notify capabilities: NMI, LOG, PROC, etc */
-
-/* EDAC internal operation states */
-#define OP_ALLOC 0x100
-#define OP_RUNNING_POLL 0x201
-#define OP_RUNNING_INTERRUPT 0x202
-#define OP_RUNNING_POLL_INTR 0x203
-#define OP_OFFLINE 0x300
-
-/*
- * Concepts used at the EDAC subsystem
- *
- * There are several things to be aware of that aren't at all obvious:
- *
- * SOCKETS, SOCKET SETS, BANKS, ROWS, CHIP-SELECT ROWS, CHANNELS, etc..
- *
- * These are some of the many terms that are thrown about that don't always
- * mean what people think they mean (Inconceivable!). In the interest of
- * creating a common ground for discussion, terms and their definitions
- * will be established.
- *
- * Memory devices: The individual DRAM chips on a memory stick. These
- * devices commonly output 4 and 8 bits each (x4, x8).
- * Grouping several of these in parallel provides the
- * number of bits that the memory controller expects:
- * typically 72 bits, in order to provide 64 bits +
- * 8 bits of ECC data.
- *
- * Memory Stick: A printed circuit board that aggregates multiple
- * memory devices in parallel. In general, this is the
- * Field Replaceable Unit (FRU) which gets replaced, in
- * the case of excessive errors. Most often it is also
- * called DIMM (Dual Inline Memory Module).
- *
- * Memory Socket: A physical connector on the motherboard that accepts
- * a single memory stick. Also called as "slot" on several
- * datasheets.
- *
- * Channel: A memory controller channel, responsible to communicate
- * with a group of DIMMs. Each channel has its own
- * independent control (command) and data bus, and can
- * be used independently or grouped with other channels.
- *
- * Branch: It is typically the highest hierarchy on a
- * Fully-Buffered DIMM memory controller.
- * Typically, it contains two channels.
- * Two channels at the same branch can be used in single
- * mode or in lockstep mode.
- * When lockstep is enabled, the cacheline is doubled,
- * but it generally brings some performance penalty.
- * Also, it is generally not possible to point to just one
- * memory stick when an error occurs, as the error
- * correction code is calculated using two DIMMs instead
- * of one. Due to that, it is capable of correcting more
- * errors than on single mode.
- *
- * Single-channel: The data accessed by the memory controller is contained
- * into one dimm only. E. g. if the data is 64 bits-wide,
- * the data flows to the CPU using one 64 bits parallel
- * access.
- * Typically used with SDR, DDR, DDR2 and DDR3 memories.
- * FB-DIMM and RAMBUS use a different concept for channel,
- * so this concept doesn't apply there.
- *
- * Double-channel: The data size accessed by the memory controller is
- * interlaced into two dimms, accessed at the same time.
- * E. g. if the DIMM is 64 bits-wide (72 bits with ECC),
- * the data flows to the CPU using a 128 bits parallel
- * access.
- *
- * Chip-select row: This is the name of the DRAM signal used to select the
- * DRAM ranks to be accessed. Common chip-select rows for
- * single channel are 64 bits, for dual channel 128 bits.
- * It may not be visible by the memory controller, as some
- * DIMM types have a memory buffer that can hide direct
- * access to it from the Memory Controller.
- *
- * Single-Ranked stick: A Single-ranked stick has 1 chip-select row of memory.
- * Motherboards commonly drive two chip-select pins to
- * a memory stick. A single-ranked stick, will occupy
- * only one of those rows. The other will be unused.
- *
- * Double-Ranked stick: A double-ranked stick has two chip-select rows which
- * access different sets of memory devices. The two
- * rows cannot be accessed concurrently.
- *
- * Double-sided stick: DEPRECATED TERM, see Double-Ranked stick.
- * A double-sided stick has two chip-select rows which
- * access different sets of memory devices. The two
- * rows cannot be accessed concurrently. "Double-sided"
- * is irrespective of the memory devices being mounted
- * on both sides of the memory stick.
- *
- * Socket set: All of the memory sticks that are required for
- * a single memory access or all of the memory sticks
- * spanned by a chip-select row. A single socket set
- * has two chip-select rows and if double-sided sticks
- * are used these will occupy those chip-select rows.
- *
- * Bank: This term is avoided because it is unclear when
- * needing to distinguish between chip-select rows and
- * socket sets.
- *
- * Controller pages:
- *
- * Physical pages:
- *
- * Virtual pages:
- *
- *
- * STRUCTURE ORGANIZATION AND CHOICES
- *
- *
- *
- * PS - I enjoyed writing all that about as much as you enjoyed reading it.
- */
-
-/**
- * struct rank_info - contains the information for one DIMM rank
- *
- * @chan_idx: channel number where the rank is (typically, 0 or 1)
- * @ce_count: number of correctable errors for this rank
- * @label: DIMM label. Different ranks for the same DIMM should be
- * filled, on userspace, with the same label.
- * FIXME: The core currently won't enforce it.
- * @csrow: A pointer to the chip select row structure (the parent
- * structure). The location of the rank is given by
- * the (csrow->csrow_idx, chan_idx) vector.
- */
-struct rank_info {
- int chan_idx;
- u32 ce_count;
- char label[EDAC_MC_LABEL_LEN + 1];
- struct csrow_info *csrow; /* the parent */
-};
-
-struct csrow_info {
- unsigned long first_page; /* first page number in dimm */
- unsigned long last_page; /* last page number in dimm */
- unsigned long page_mask; /* used for interleaving -
- * 0UL for non intlv
- */
- u32 nr_pages; /* number of pages in csrow */
- u32 grain; /* granularity of reported error in bytes */
- int csrow_idx; /* the chip-select row */
- enum dev_type dtype; /* memory device type */
- u32 ue_count; /* Uncorrectable Errors for this csrow */
- u32 ce_count; /* Correctable Errors for this csrow */
- enum mem_type mtype; /* memory csrow type */
- enum edac_type edac_mode; /* EDAC mode for this csrow */
- struct mem_ctl_info *mci; /* the parent */
-
- struct kobject kobj; /* sysfs kobject for this csrow */
-
- /* channel information for this csrow */
- u32 nr_channels;
- struct rank_info *channels;
-};
-
-struct mcidev_sysfs_group {
- const char *name; /* group name */
- const struct mcidev_sysfs_attribute *mcidev_attr; /* group attributes */
-};
-
-struct mcidev_sysfs_group_kobj {
- struct list_head list; /* list for all instances within a mc */
-
- struct kobject kobj; /* kobj for the group */
-
- const struct mcidev_sysfs_group *grp; /* group description table */
- struct mem_ctl_info *mci; /* the parent */
-};
-
-/* mcidev_sysfs_attribute structure
- * used for driver sysfs attributes and in mem_ctl_info
- * sysfs top level entries
- */
-struct mcidev_sysfs_attribute {
- /* It should use either attr or grp */
- struct attribute attr;
- const struct mcidev_sysfs_group *grp; /* Points to a group of attributes */
-
- /* Ops for show/store values at the attribute - not used on group */
- ssize_t (*show)(struct mem_ctl_info *,char *);
- ssize_t (*store)(struct mem_ctl_info *, const char *,size_t);
-};
-
-/* MEMORY controller information structure
- */
-struct mem_ctl_info {
- struct list_head link; /* for global list of mem_ctl_info structs */
-
- struct module *owner; /* Module owner of this control struct */
-
- unsigned long mtype_cap; /* memory types supported by mc */
- unsigned long edac_ctl_cap; /* Mem controller EDAC capabilities */
- unsigned long edac_cap; /* configuration capabilities - this is
- * closely related to edac_ctl_cap. The
- * difference is that the controller may be
- * capable of s4ecd4ed which would be listed
- * in edac_ctl_cap, but if channels aren't
- * capable of s4ecd4ed then the edac_cap would
- * not have that capability.
- */
- unsigned long scrub_cap; /* chipset scrub capabilities */
- enum scrub_type scrub_mode; /* current scrub mode */
-
- /* Translates sdram memory scrub rate given in bytes/sec to the
- internal representation and configures whatever else needs
- to be configured.
- */
- int (*set_sdram_scrub_rate) (struct mem_ctl_info * mci, u32 bw);
-
- /* Get the current sdram memory scrub rate from the internal
- representation and converts it to the closest matching
- bandwidth in bytes/sec.
- */
- int (*get_sdram_scrub_rate) (struct mem_ctl_info * mci);
-
-
- /* pointer to edac checking routine */
- void (*edac_check) (struct mem_ctl_info * mci);
-
- /*
- * Remaps memory pages: controller pages to physical pages.
- * For most MC's, this will be NULL.
- */
- /* FIXME - why not send the phys page to begin with? */
- unsigned long (*ctl_page_to_phys) (struct mem_ctl_info * mci,
- unsigned long page);
- int mc_idx;
- int nr_csrows;
- struct csrow_info *csrows;
- /*
- * FIXME - what about controllers on other busses? - IDs must be
- * unique. dev pointer should be sufficiently unique, but
- * BUS:SLOT.FUNC numbers may not be unique.
- */
- struct device *dev;
- const char *mod_name;
- const char *mod_ver;
- const char *ctl_name;
- const char *dev_name;
- char proc_name[MC_PROC_NAME_MAX_LEN + 1];
- void *pvt_info;
- u32 ue_noinfo_count; /* Uncorrectable Errors w/o info */
- u32 ce_noinfo_count; /* Correctable Errors w/o info */
- u32 ue_count; /* Total Uncorrectable Errors for this MC */
- u32 ce_count; /* Total Correctable Errors for this MC */
- unsigned long start_time; /* mci load start time (in jiffies) */
-
- struct completion complete;
-
- /* edac sysfs device control */
- struct kobject edac_mci_kobj;
-
- /* list for all grp instances within a mc */
- struct list_head grp_kobj_list;
-
- /* Additional top controller level attributes, but specified
- * by the low level driver.
- *
- * Set by the low level driver to provide attributes at the
- * controller level, same level as 'ue_count' and 'ce_count' above.
- * An array of structures, NULL terminated
- *
- * If attributes are desired, then set to array of attributes
- * If no attributes are desired, leave NULL
- */
- const struct mcidev_sysfs_attribute *mc_driver_sysfs_attributes;
-
- /* work struct for this MC */
- struct delayed_work work;
-
- /* the internal state of this controller instance */
- int op_state;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/edd.h b/ANDROID_3.4.5/include/linux/edd.h
deleted file mode 100644
index 4cbd0fe9..00000000
--- a/ANDROID_3.4.5/include/linux/edd.h
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * linux/include/linux/edd.h
- * Copyright (C) 2002, 2003, 2004 Dell Inc.
- * by Matt Domsch <Matt_Domsch@dell.com>
- *
- * structures and definitions for the int 13h, ax={41,48}h
- * BIOS Enhanced Disk Drive Services
- * This is based on the T13 group document D1572 Revision 0 (August 14 2002)
- * available at http://www.t13.org/docs2002/d1572r0.pdf. It is
- * very similar to D1484 Revision 3 http://www.t13.org/docs2002/d1484r3.pdf
- *
- * In a nutshell, arch/{i386,x86_64}/boot/setup.S populates a scratch
- * table in the boot_params that contains a list of BIOS-enumerated
- * boot devices.
- * In arch/{i386,x86_64}/kernel/setup.c, this information is
- * transferred into the edd structure, and in drivers/firmware/edd.c, that
- * information is used to identify BIOS boot disk. The code in setup.S
- * is very sensitive to the size of these structures.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License v2.0 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.
- *
- */
-#ifndef _LINUX_EDD_H
-#define _LINUX_EDD_H
-
-#include <linux/types.h>
-
-#define EDDNR 0x1e9 /* addr of number of edd_info structs at EDDBUF
- in boot_params - treat this as 1 byte */
-#define EDDBUF 0xd00 /* addr of edd_info structs in boot_params */
-#define EDDMAXNR 6 /* number of edd_info structs starting at EDDBUF */
-#define EDDEXTSIZE 8 /* change these if you muck with the structures */
-#define EDDPARMSIZE 74
-#define CHECKEXTENSIONSPRESENT 0x41
-#define GETDEVICEPARAMETERS 0x48
-#define LEGACYGETDEVICEPARAMETERS 0x08
-#define EDDMAGIC1 0x55AA
-#define EDDMAGIC2 0xAA55
-
-
-#define READ_SECTORS 0x02 /* int13 AH=0x02 is READ_SECTORS command */
-#define EDD_MBR_SIG_OFFSET 0x1B8 /* offset of signature in the MBR */
-#define EDD_MBR_SIG_BUF 0x290 /* addr in boot params */
-#define EDD_MBR_SIG_MAX 16 /* max number of signatures to store */
-#define EDD_MBR_SIG_NR_BUF 0x1ea /* addr of number of MBR signtaures at EDD_MBR_SIG_BUF
- in boot_params - treat this as 1 byte */
-
-#ifndef __ASSEMBLY__
-
-#define EDD_EXT_FIXED_DISK_ACCESS (1 << 0)
-#define EDD_EXT_DEVICE_LOCKING_AND_EJECTING (1 << 1)
-#define EDD_EXT_ENHANCED_DISK_DRIVE_SUPPORT (1 << 2)
-#define EDD_EXT_64BIT_EXTENSIONS (1 << 3)
-
-#define EDD_INFO_DMA_BOUNDARY_ERROR_TRANSPARENT (1 << 0)
-#define EDD_INFO_GEOMETRY_VALID (1 << 1)
-#define EDD_INFO_REMOVABLE (1 << 2)
-#define EDD_INFO_WRITE_VERIFY (1 << 3)
-#define EDD_INFO_MEDIA_CHANGE_NOTIFICATION (1 << 4)
-#define EDD_INFO_LOCKABLE (1 << 5)
-#define EDD_INFO_NO_MEDIA_PRESENT (1 << 6)
-#define EDD_INFO_USE_INT13_FN50 (1 << 7)
-
-struct edd_device_params {
- __u16 length;
- __u16 info_flags;
- __u32 num_default_cylinders;
- __u32 num_default_heads;
- __u32 sectors_per_track;
- __u64 number_of_sectors;
- __u16 bytes_per_sector;
- __u32 dpte_ptr; /* 0xFFFFFFFF for our purposes */
- __u16 key; /* = 0xBEDD */
- __u8 device_path_info_length; /* = 44 */
- __u8 reserved2;
- __u16 reserved3;
- __u8 host_bus_type[4];
- __u8 interface_type[8];
- union {
- struct {
- __u16 base_address;
- __u16 reserved1;
- __u32 reserved2;
- } __attribute__ ((packed)) isa;
- struct {
- __u8 bus;
- __u8 slot;
- __u8 function;
- __u8 channel;
- __u32 reserved;
- } __attribute__ ((packed)) pci;
- /* pcix is same as pci */
- struct {
- __u64 reserved;
- } __attribute__ ((packed)) ibnd;
- struct {
- __u64 reserved;
- } __attribute__ ((packed)) xprs;
- struct {
- __u64 reserved;
- } __attribute__ ((packed)) htpt;
- struct {
- __u64 reserved;
- } __attribute__ ((packed)) unknown;
- } interface_path;
- union {
- struct {
- __u8 device;
- __u8 reserved1;
- __u16 reserved2;
- __u32 reserved3;
- __u64 reserved4;
- } __attribute__ ((packed)) ata;
- struct {
- __u8 device;
- __u8 lun;
- __u8 reserved1;
- __u8 reserved2;
- __u32 reserved3;
- __u64 reserved4;
- } __attribute__ ((packed)) atapi;
- struct {
- __u16 id;
- __u64 lun;
- __u16 reserved1;
- __u32 reserved2;
- } __attribute__ ((packed)) scsi;
- struct {
- __u64 serial_number;
- __u64 reserved;
- } __attribute__ ((packed)) usb;
- struct {
- __u64 eui;
- __u64 reserved;
- } __attribute__ ((packed)) i1394;
- struct {
- __u64 wwid;
- __u64 lun;
- } __attribute__ ((packed)) fibre;
- struct {
- __u64 identity_tag;
- __u64 reserved;
- } __attribute__ ((packed)) i2o;
- struct {
- __u32 array_number;
- __u32 reserved1;
- __u64 reserved2;
- } __attribute__ ((packed)) raid;
- struct {
- __u8 device;
- __u8 reserved1;
- __u16 reserved2;
- __u32 reserved3;
- __u64 reserved4;
- } __attribute__ ((packed)) sata;
- struct {
- __u64 reserved1;
- __u64 reserved2;
- } __attribute__ ((packed)) unknown;
- } device_path;
- __u8 reserved4;
- __u8 checksum;
-} __attribute__ ((packed));
-
-struct edd_info {
- __u8 device;
- __u8 version;
- __u16 interface_support;
- __u16 legacy_max_cylinder;
- __u8 legacy_max_head;
- __u8 legacy_sectors_per_track;
- struct edd_device_params params;
-} __attribute__ ((packed));
-
-struct edd {
- unsigned int mbr_signature[EDD_MBR_SIG_MAX];
- struct edd_info edd_info[EDDMAXNR];
- unsigned char mbr_signature_nr;
- unsigned char edd_info_nr;
-};
-
-#ifdef __KERNEL__
-extern struct edd edd;
-#endif /* __KERNEL__ */
-#endif /*!__ASSEMBLY__ */
-
-#endif /* _LINUX_EDD_H */
diff --git a/ANDROID_3.4.5/include/linux/eeprom_93cx6.h b/ANDROID_3.4.5/include/linux/eeprom_93cx6.h
deleted file mode 100644
index e50f98b0..00000000
--- a/ANDROID_3.4.5/include/linux/eeprom_93cx6.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- Copyright (C) 2004 - 2006 rt2x00 SourceForge Project
- <http://rt2x00.serialmonkey.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.
- */
-
-/*
- Module: eeprom_93cx6
- Abstract: EEPROM reader datastructures for 93cx6 chipsets.
- Supported chipsets: 93c46, 93c56 and 93c66.
- */
-
-/*
- * EEPROM operation defines.
- */
-#define PCI_EEPROM_WIDTH_93C46 6
-#define PCI_EEPROM_WIDTH_93C56 8
-#define PCI_EEPROM_WIDTH_93C66 8
-#define PCI_EEPROM_WIDTH_93C86 8
-#define PCI_EEPROM_WIDTH_OPCODE 3
-#define PCI_EEPROM_WRITE_OPCODE 0x05
-#define PCI_EEPROM_ERASE_OPCODE 0x07
-#define PCI_EEPROM_READ_OPCODE 0x06
-#define PCI_EEPROM_EWDS_OPCODE 0x10
-#define PCI_EEPROM_EWEN_OPCODE 0x13
-
-/**
- * struct eeprom_93cx6 - control structure for setting the commands
- * for reading the eeprom data.
- * @data: private pointer for the driver.
- * @register_read(struct eeprom_93cx6 *eeprom): handler to
- * read the eeprom register, this function should set all reg_* fields.
- * @register_write(struct eeprom_93cx6 *eeprom): handler to
- * write to the eeprom register by using all reg_* fields.
- * @width: eeprom width, should be one of the PCI_EEPROM_WIDTH_* defines
- * @drive_data: Set if we're driving the data line.
- * @reg_data_in: register field to indicate data input
- * @reg_data_out: register field to indicate data output
- * @reg_data_clock: register field to set the data clock
- * @reg_chip_select: register field to set the chip select
- *
- * This structure is used for the communication between the driver
- * and the eeprom_93cx6 handlers for reading the eeprom.
- */
-struct eeprom_93cx6 {
- void *data;
-
- void (*register_read)(struct eeprom_93cx6 *eeprom);
- void (*register_write)(struct eeprom_93cx6 *eeprom);
-
- int width;
-
- char drive_data;
- char reg_data_in;
- char reg_data_out;
- char reg_data_clock;
- char reg_chip_select;
-};
-
-extern void eeprom_93cx6_read(struct eeprom_93cx6 *eeprom,
- const u8 word, u16 *data);
-extern void eeprom_93cx6_multiread(struct eeprom_93cx6 *eeprom,
- const u8 word, __le16 *data, const u16 words);
-
-extern void eeprom_93cx6_wren(struct eeprom_93cx6 *eeprom, bool enable);
-
-extern void eeprom_93cx6_write(struct eeprom_93cx6 *eeprom,
- u8 addr, u16 data);
diff --git a/ANDROID_3.4.5/include/linux/eeprom_93xx46.h b/ANDROID_3.4.5/include/linux/eeprom_93xx46.h
deleted file mode 100644
index 06791811..00000000
--- a/ANDROID_3.4.5/include/linux/eeprom_93xx46.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Module: eeprom_93xx46
- * platform description for 93xx46 EEPROMs.
- */
-
-struct eeprom_93xx46_platform_data {
- unsigned char flags;
-#define EE_ADDR8 0x01 /* 8 bit addr. cfg */
-#define EE_ADDR16 0x02 /* 16 bit addr. cfg */
-#define EE_READONLY 0x08 /* forbid writing */
-
- /*
- * optional hooks to control additional logic
- * before and after spi transfer.
- */
- void (*prepare)(void *);
- void (*finish)(void *);
-};
diff --git a/ANDROID_3.4.5/include/linux/efi.h b/ANDROID_3.4.5/include/linux/efi.h
deleted file mode 100644
index ec45ccd8..00000000
--- a/ANDROID_3.4.5/include/linux/efi.h
+++ /dev/null
@@ -1,665 +0,0 @@
-#ifndef _LINUX_EFI_H
-#define _LINUX_EFI_H
-
-/*
- * Extensible Firmware Interface
- * Based on 'Extensible Firmware Interface Specification' version 0.9, April 30, 1999
- *
- * Copyright (C) 1999 VA Linux Systems
- * Copyright (C) 1999 Walt Drummond <drummond@valinux.com>
- * Copyright (C) 1999, 2002-2003 Hewlett-Packard Co.
- * David Mosberger-Tang <davidm@hpl.hp.com>
- * Stephane Eranian <eranian@hpl.hp.com>
- */
-#include <linux/init.h>
-#include <linux/string.h>
-#include <linux/time.h>
-#include <linux/types.h>
-#include <linux/proc_fs.h>
-#include <linux/rtc.h>
-#include <linux/ioport.h>
-#include <linux/pfn.h>
-#include <linux/pstore.h>
-
-#include <asm/page.h>
-
-#define EFI_SUCCESS 0
-#define EFI_LOAD_ERROR ( 1 | (1UL << (BITS_PER_LONG-1)))
-#define EFI_INVALID_PARAMETER ( 2 | (1UL << (BITS_PER_LONG-1)))
-#define EFI_UNSUPPORTED ( 3 | (1UL << (BITS_PER_LONG-1)))
-#define EFI_BAD_BUFFER_SIZE ( 4 | (1UL << (BITS_PER_LONG-1)))
-#define EFI_BUFFER_TOO_SMALL ( 5 | (1UL << (BITS_PER_LONG-1)))
-#define EFI_NOT_FOUND (14 | (1UL << (BITS_PER_LONG-1)))
-
-typedef unsigned long efi_status_t;
-typedef u8 efi_bool_t;
-typedef u16 efi_char16_t; /* UNICODE character */
-
-
-typedef struct {
- u8 b[16];
-} efi_guid_t;
-
-#define EFI_GUID(a,b,c,d0,d1,d2,d3,d4,d5,d6,d7) \
-((efi_guid_t) \
-{{ (a) & 0xff, ((a) >> 8) & 0xff, ((a) >> 16) & 0xff, ((a) >> 24) & 0xff, \
- (b) & 0xff, ((b) >> 8) & 0xff, \
- (c) & 0xff, ((c) >> 8) & 0xff, \
- (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }})
-
-/*
- * Generic EFI table header
- */
-typedef struct {
- u64 signature;
- u32 revision;
- u32 headersize;
- u32 crc32;
- u32 reserved;
-} efi_table_hdr_t;
-
-/*
- * Memory map descriptor:
- */
-
-/* Memory types: */
-#define EFI_RESERVED_TYPE 0
-#define EFI_LOADER_CODE 1
-#define EFI_LOADER_DATA 2
-#define EFI_BOOT_SERVICES_CODE 3
-#define EFI_BOOT_SERVICES_DATA 4
-#define EFI_RUNTIME_SERVICES_CODE 5
-#define EFI_RUNTIME_SERVICES_DATA 6
-#define EFI_CONVENTIONAL_MEMORY 7
-#define EFI_UNUSABLE_MEMORY 8
-#define EFI_ACPI_RECLAIM_MEMORY 9
-#define EFI_ACPI_MEMORY_NVS 10
-#define EFI_MEMORY_MAPPED_IO 11
-#define EFI_MEMORY_MAPPED_IO_PORT_SPACE 12
-#define EFI_PAL_CODE 13
-#define EFI_MAX_MEMORY_TYPE 14
-
-/* Attribute values: */
-#define EFI_MEMORY_UC ((u64)0x0000000000000001ULL) /* uncached */
-#define EFI_MEMORY_WC ((u64)0x0000000000000002ULL) /* write-coalescing */
-#define EFI_MEMORY_WT ((u64)0x0000000000000004ULL) /* write-through */
-#define EFI_MEMORY_WB ((u64)0x0000000000000008ULL) /* write-back */
-#define EFI_MEMORY_WP ((u64)0x0000000000001000ULL) /* write-protect */
-#define EFI_MEMORY_RP ((u64)0x0000000000002000ULL) /* read-protect */
-#define EFI_MEMORY_XP ((u64)0x0000000000004000ULL) /* execute-protect */
-#define EFI_MEMORY_RUNTIME ((u64)0x8000000000000000ULL) /* range requires runtime mapping */
-#define EFI_MEMORY_DESCRIPTOR_VERSION 1
-
-#define EFI_PAGE_SHIFT 12
-
-typedef struct {
- u32 type;
- u32 pad;
- u64 phys_addr;
- u64 virt_addr;
- u64 num_pages;
- u64 attribute;
-} efi_memory_desc_t;
-
-typedef struct {
- efi_guid_t guid;
- u32 headersize;
- u32 flags;
- u32 imagesize;
-} efi_capsule_header_t;
-
-/*
- * Allocation types for calls to boottime->allocate_pages.
- */
-#define EFI_ALLOCATE_ANY_PAGES 0
-#define EFI_ALLOCATE_MAX_ADDRESS 1
-#define EFI_ALLOCATE_ADDRESS 2
-#define EFI_MAX_ALLOCATE_TYPE 3
-
-typedef int (*efi_freemem_callback_t) (u64 start, u64 end, void *arg);
-
-/*
- * Types and defines for Time Services
- */
-#define EFI_TIME_ADJUST_DAYLIGHT 0x1
-#define EFI_TIME_IN_DAYLIGHT 0x2
-#define EFI_UNSPECIFIED_TIMEZONE 0x07ff
-
-typedef struct {
- u16 year;
- u8 month;
- u8 day;
- u8 hour;
- u8 minute;
- u8 second;
- u8 pad1;
- u32 nanosecond;
- s16 timezone;
- u8 daylight;
- u8 pad2;
-} efi_time_t;
-
-typedef struct {
- u32 resolution;
- u32 accuracy;
- u8 sets_to_zero;
-} efi_time_cap_t;
-
-/*
- * EFI Boot Services table
- */
-typedef struct {
- efi_table_hdr_t hdr;
- void *raise_tpl;
- void *restore_tpl;
- void *allocate_pages;
- void *free_pages;
- void *get_memory_map;
- void *allocate_pool;
- void *free_pool;
- void *create_event;
- void *set_timer;
- void *wait_for_event;
- void *signal_event;
- void *close_event;
- void *check_event;
- void *install_protocol_interface;
- void *reinstall_protocol_interface;
- void *uninstall_protocol_interface;
- void *handle_protocol;
- void *__reserved;
- void *register_protocol_notify;
- void *locate_handle;
- void *locate_device_path;
- void *install_configuration_table;
- void *load_image;
- void *start_image;
- void *exit;
- void *unload_image;
- void *exit_boot_services;
- void *get_next_monotonic_count;
- void *stall;
- void *set_watchdog_timer;
- void *connect_controller;
- void *disconnect_controller;
- void *open_protocol;
- void *close_protocol;
- void *open_protocol_information;
- void *protocols_per_handle;
- void *locate_handle_buffer;
- void *locate_protocol;
- void *install_multiple_protocol_interfaces;
- void *uninstall_multiple_protocol_interfaces;
- void *calculate_crc32;
- void *copy_mem;
- void *set_mem;
- void *create_event_ex;
-} efi_boot_services_t;
-
-/*
- * Types and defines for EFI ResetSystem
- */
-#define EFI_RESET_COLD 0
-#define EFI_RESET_WARM 1
-#define EFI_RESET_SHUTDOWN 2
-
-/*
- * EFI Runtime Services table
- */
-#define EFI_RUNTIME_SERVICES_SIGNATURE ((u64)0x5652453544e5552ULL)
-#define EFI_RUNTIME_SERVICES_REVISION 0x00010000
-
-typedef struct {
- efi_table_hdr_t hdr;
- unsigned long get_time;
- unsigned long set_time;
- unsigned long get_wakeup_time;
- unsigned long set_wakeup_time;
- unsigned long set_virtual_address_map;
- unsigned long convert_pointer;
- unsigned long get_variable;
- unsigned long get_next_variable;
- unsigned long set_variable;
- unsigned long get_next_high_mono_count;
- unsigned long reset_system;
- unsigned long update_capsule;
- unsigned long query_capsule_caps;
- unsigned long query_variable_info;
-} efi_runtime_services_t;
-
-typedef efi_status_t efi_get_time_t (efi_time_t *tm, efi_time_cap_t *tc);
-typedef efi_status_t efi_set_time_t (efi_time_t *tm);
-typedef efi_status_t efi_get_wakeup_time_t (efi_bool_t *enabled, efi_bool_t *pending,
- efi_time_t *tm);
-typedef efi_status_t efi_set_wakeup_time_t (efi_bool_t enabled, efi_time_t *tm);
-typedef efi_status_t efi_get_variable_t (efi_char16_t *name, efi_guid_t *vendor, u32 *attr,
- unsigned long *data_size, void *data);
-typedef efi_status_t efi_get_next_variable_t (unsigned long *name_size, efi_char16_t *name,
- efi_guid_t *vendor);
-typedef efi_status_t efi_set_variable_t (efi_char16_t *name, efi_guid_t *vendor,
- u32 attr, unsigned long data_size,
- void *data);
-typedef efi_status_t efi_get_next_high_mono_count_t (u32 *count);
-typedef void efi_reset_system_t (int reset_type, efi_status_t status,
- unsigned long data_size, efi_char16_t *data);
-typedef efi_status_t efi_set_virtual_address_map_t (unsigned long memory_map_size,
- unsigned long descriptor_size,
- u32 descriptor_version,
- efi_memory_desc_t *virtual_map);
-typedef efi_status_t efi_query_variable_info_t(u32 attr,
- u64 *storage_space,
- u64 *remaining_space,
- u64 *max_variable_size);
-typedef efi_status_t efi_update_capsule_t(efi_capsule_header_t **capsules,
- unsigned long count,
- unsigned long sg_list);
-typedef efi_status_t efi_query_capsule_caps_t(efi_capsule_header_t **capsules,
- unsigned long count,
- u64 *max_size,
- int *reset_type);
-
-/*
- * EFI Configuration Table and GUID definitions
- */
-#define NULL_GUID \
- EFI_GUID( 0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 )
-
-#define MPS_TABLE_GUID \
- EFI_GUID( 0xeb9d2d2f, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d )
-
-#define ACPI_TABLE_GUID \
- EFI_GUID( 0xeb9d2d30, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d )
-
-#define ACPI_20_TABLE_GUID \
- EFI_GUID( 0x8868e871, 0xe4f1, 0x11d3, 0xbc, 0x22, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 )
-
-#define SMBIOS_TABLE_GUID \
- EFI_GUID( 0xeb9d2d31, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d )
-
-#define SAL_SYSTEM_TABLE_GUID \
- EFI_GUID( 0xeb9d2d32, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d )
-
-#define HCDP_TABLE_GUID \
- EFI_GUID( 0xf951938d, 0x620b, 0x42ef, 0x82, 0x79, 0xa8, 0x4b, 0x79, 0x61, 0x78, 0x98 )
-
-#define UGA_IO_PROTOCOL_GUID \
- EFI_GUID( 0x61a4d49e, 0x6f68, 0x4f1b, 0xb9, 0x22, 0xa8, 0x6e, 0xed, 0xb, 0x7, 0xa2 )
-
-#define EFI_GLOBAL_VARIABLE_GUID \
- EFI_GUID( 0x8be4df61, 0x93ca, 0x11d2, 0xaa, 0x0d, 0x00, 0xe0, 0x98, 0x03, 0x2b, 0x8c )
-
-#define UV_SYSTEM_TABLE_GUID \
- EFI_GUID( 0x3b13a7d4, 0x633e, 0x11dd, 0x93, 0xec, 0xda, 0x25, 0x56, 0xd8, 0x95, 0x93 )
-
-#define LINUX_EFI_CRASH_GUID \
- EFI_GUID( 0xcfc8fc79, 0xbe2e, 0x4ddc, 0x97, 0xf0, 0x9f, 0x98, 0xbf, 0xe2, 0x98, 0xa0 )
-
-#define LOADED_IMAGE_PROTOCOL_GUID \
- EFI_GUID( 0x5b1b31a1, 0x9562, 0x11d2, 0x8e, 0x3f, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b )
-
-#define EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID \
- EFI_GUID( 0x9042a9de, 0x23dc, 0x4a38, 0x96, 0xfb, 0x7a, 0xde, 0xd0, 0x80, 0x51, 0x6a )
-
-#define EFI_UGA_PROTOCOL_GUID \
- EFI_GUID( 0x982c298b, 0xf4fa, 0x41cb, 0xb8, 0x38, 0x77, 0xaa, 0x68, 0x8f, 0xb8, 0x39 )
-
-#define EFI_PCI_IO_PROTOCOL_GUID \
- EFI_GUID( 0x4cf5b200, 0x68b8, 0x4ca5, 0x9e, 0xec, 0xb2, 0x3e, 0x3f, 0x50, 0x2, 0x9a )
-
-#define EFI_FILE_INFO_ID \
- EFI_GUID( 0x9576e92, 0x6d3f, 0x11d2, 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b )
-
-#define EFI_FILE_SYSTEM_GUID \
- EFI_GUID( 0x964e5b22, 0x6459, 0x11d2, 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b )
-
-typedef struct {
- efi_guid_t guid;
- u64 table;
-} efi_config_table_64_t;
-
-typedef struct {
- efi_guid_t guid;
- u32 table;
-} efi_config_table_32_t;
-
-typedef struct {
- efi_guid_t guid;
- unsigned long table;
-} efi_config_table_t;
-
-#define EFI_SYSTEM_TABLE_SIGNATURE ((u64)0x5453595320494249ULL)
-
-#define EFI_2_30_SYSTEM_TABLE_REVISION ((2 << 16) | (30))
-#define EFI_2_20_SYSTEM_TABLE_REVISION ((2 << 16) | (20))
-#define EFI_2_10_SYSTEM_TABLE_REVISION ((2 << 16) | (10))
-#define EFI_2_00_SYSTEM_TABLE_REVISION ((2 << 16) | (00))
-#define EFI_1_10_SYSTEM_TABLE_REVISION ((1 << 16) | (10))
-#define EFI_1_02_SYSTEM_TABLE_REVISION ((1 << 16) | (02))
-
-typedef struct {
- efi_table_hdr_t hdr;
- u64 fw_vendor; /* physical addr of CHAR16 vendor string */
- u32 fw_revision;
- u32 __pad1;
- u64 con_in_handle;
- u64 con_in;
- u64 con_out_handle;
- u64 con_out;
- u64 stderr_handle;
- u64 stderr;
- u64 runtime;
- u64 boottime;
- u32 nr_tables;
- u32 __pad2;
- u64 tables;
-} efi_system_table_64_t;
-
-typedef struct {
- efi_table_hdr_t hdr;
- u32 fw_vendor; /* physical addr of CHAR16 vendor string */
- u32 fw_revision;
- u32 con_in_handle;
- u32 con_in;
- u32 con_out_handle;
- u32 con_out;
- u32 stderr_handle;
- u32 stderr;
- u32 runtime;
- u32 boottime;
- u32 nr_tables;
- u32 tables;
-} efi_system_table_32_t;
-
-typedef struct {
- efi_table_hdr_t hdr;
- unsigned long fw_vendor; /* physical addr of CHAR16 vendor string */
- u32 fw_revision;
- unsigned long con_in_handle;
- unsigned long con_in;
- unsigned long con_out_handle;
- unsigned long con_out;
- unsigned long stderr_handle;
- unsigned long stderr;
- efi_runtime_services_t *runtime;
- efi_boot_services_t *boottime;
- unsigned long nr_tables;
- unsigned long tables;
-} efi_system_table_t;
-
-struct efi_memory_map {
- void *phys_map;
- void *map;
- void *map_end;
- int nr_map;
- unsigned long desc_version;
- unsigned long desc_size;
-};
-
-typedef struct {
- u32 revision;
- void *parent_handle;
- efi_system_table_t *system_table;
- void *device_handle;
- void *file_path;
- void *reserved;
- u32 load_options_size;
- void *load_options;
- void *image_base;
- __aligned_u64 image_size;
- unsigned int image_code_type;
- unsigned int image_data_type;
- unsigned long unload;
-} efi_loaded_image_t;
-
-typedef struct {
- u64 revision;
- void *open_volume;
-} efi_file_io_interface_t;
-
-typedef struct {
- u64 size;
- u64 file_size;
- u64 phys_size;
- efi_time_t create_time;
- efi_time_t last_access_time;
- efi_time_t modification_time;
- __aligned_u64 attribute;
- efi_char16_t filename[1];
-} efi_file_info_t;
-
-typedef struct {
- u64 revision;
- void *open;
- void *close;
- void *delete;
- void *read;
- void *write;
- void *get_position;
- void *set_position;
- void *get_info;
- void *set_info;
- void *flush;
-} efi_file_handle_t;
-
-#define EFI_FILE_MODE_READ 0x0000000000000001
-#define EFI_FILE_MODE_WRITE 0x0000000000000002
-#define EFI_FILE_MODE_CREATE 0x8000000000000000
-
-#define EFI_INVALID_TABLE_ADDR (~0UL)
-
-/*
- * All runtime access to EFI goes through this structure:
- */
-extern struct efi {
- efi_system_table_t *systab; /* EFI system table */
- unsigned int runtime_version; /* Runtime services version */
- unsigned long mps; /* MPS table */
- unsigned long acpi; /* ACPI table (IA64 ext 0.71) */
- unsigned long acpi20; /* ACPI table (ACPI 2.0) */
- unsigned long smbios; /* SM BIOS table */
- unsigned long sal_systab; /* SAL system table */
- unsigned long boot_info; /* boot info table */
- unsigned long hcdp; /* HCDP table */
- unsigned long uga; /* UGA table */
- unsigned long uv_systab; /* UV system table */
- efi_get_time_t *get_time;
- efi_set_time_t *set_time;
- efi_get_wakeup_time_t *get_wakeup_time;
- efi_set_wakeup_time_t *set_wakeup_time;
- efi_get_variable_t *get_variable;
- efi_get_next_variable_t *get_next_variable;
- efi_set_variable_t *set_variable;
- efi_query_variable_info_t *query_variable_info;
- efi_update_capsule_t *update_capsule;
- efi_query_capsule_caps_t *query_capsule_caps;
- efi_get_next_high_mono_count_t *get_next_high_mono_count;
- efi_reset_system_t *reset_system;
- efi_set_virtual_address_map_t *set_virtual_address_map;
-} efi;
-
-static inline int
-efi_guidcmp (efi_guid_t left, efi_guid_t right)
-{
- return memcmp(&left, &right, sizeof (efi_guid_t));
-}
-
-static inline char *
-efi_guid_unparse(efi_guid_t *guid, char *out)
-{
- sprintf(out, "%pUl", guid->b);
- return out;
-}
-
-extern void efi_init (void);
-extern void *efi_get_pal_addr (void);
-extern void efi_map_pal_code (void);
-extern void efi_memmap_walk (efi_freemem_callback_t callback, void *arg);
-extern void efi_gettimeofday (struct timespec *ts);
-extern void efi_enter_virtual_mode (void); /* switch EFI to virtual mode, if possible */
-extern u64 efi_get_iobase (void);
-extern u32 efi_mem_type (unsigned long phys_addr);
-extern u64 efi_mem_attributes (unsigned long phys_addr);
-extern u64 efi_mem_attribute (unsigned long phys_addr, unsigned long size);
-extern int __init efi_uart_console_only (void);
-extern void efi_initialize_iomem_resources(struct resource *code_resource,
- struct resource *data_resource, struct resource *bss_resource);
-extern unsigned long efi_get_time(void);
-extern int efi_set_rtc_mmss(unsigned long nowtime);
-extern void efi_reserve_boot_services(void);
-extern struct efi_memory_map memmap;
-
-/**
- * efi_range_is_wc - check the WC bit on an address range
- * @start: starting kvirt address
- * @len: length of range
- *
- * Consult the EFI memory map and make sure it's ok to set this range WC.
- * Returns true or false.
- */
-static inline int efi_range_is_wc(unsigned long start, unsigned long len)
-{
- unsigned long i;
-
- for (i = 0; i < len; i += (1UL << EFI_PAGE_SHIFT)) {
- unsigned long paddr = __pa(start + i);
- if (!(efi_mem_attributes(paddr) & EFI_MEMORY_WC))
- return 0;
- }
- /* The range checked out */
- return 1;
-}
-
-#ifdef CONFIG_EFI_PCDP
-extern int __init efi_setup_pcdp_console(char *);
-#endif
-
-/*
- * We play games with efi_enabled so that the compiler will, if possible, remove
- * EFI-related code altogether.
- */
-#ifdef CONFIG_EFI
-# ifdef CONFIG_X86
- extern int efi_enabled;
- extern bool efi_64bit;
-# else
-# define efi_enabled 1
-# endif
-#else
-# define efi_enabled 0
-#endif
-
-/*
- * Variable Attributes
- */
-#define EFI_VARIABLE_NON_VOLATILE 0x0000000000000001
-#define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x0000000000000002
-#define EFI_VARIABLE_RUNTIME_ACCESS 0x0000000000000004
-#define EFI_VARIABLE_HARDWARE_ERROR_RECORD 0x0000000000000008
-#define EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS 0x0000000000000010
-#define EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS 0x0000000000000020
-#define EFI_VARIABLE_APPEND_WRITE 0x0000000000000040
-
-#define EFI_VARIABLE_MASK (EFI_VARIABLE_NON_VOLATILE | \
- EFI_VARIABLE_BOOTSERVICE_ACCESS | \
- EFI_VARIABLE_RUNTIME_ACCESS | \
- EFI_VARIABLE_HARDWARE_ERROR_RECORD | \
- EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS | \
- EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS | \
- EFI_VARIABLE_APPEND_WRITE)
-/*
- * The type of search to perform when calling boottime->locate_handle
- */
-#define EFI_LOCATE_ALL_HANDLES 0
-#define EFI_LOCATE_BY_REGISTER_NOTIFY 1
-#define EFI_LOCATE_BY_PROTOCOL 2
-
-/*
- * EFI Device Path information
- */
-#define EFI_DEV_HW 0x01
-#define EFI_DEV_PCI 1
-#define EFI_DEV_PCCARD 2
-#define EFI_DEV_MEM_MAPPED 3
-#define EFI_DEV_VENDOR 4
-#define EFI_DEV_CONTROLLER 5
-#define EFI_DEV_ACPI 0x02
-#define EFI_DEV_BASIC_ACPI 1
-#define EFI_DEV_EXPANDED_ACPI 2
-#define EFI_DEV_MSG 0x03
-#define EFI_DEV_MSG_ATAPI 1
-#define EFI_DEV_MSG_SCSI 2
-#define EFI_DEV_MSG_FC 3
-#define EFI_DEV_MSG_1394 4
-#define EFI_DEV_MSG_USB 5
-#define EFI_DEV_MSG_USB_CLASS 15
-#define EFI_DEV_MSG_I20 6
-#define EFI_DEV_MSG_MAC 11
-#define EFI_DEV_MSG_IPV4 12
-#define EFI_DEV_MSG_IPV6 13
-#define EFI_DEV_MSG_INFINIBAND 9
-#define EFI_DEV_MSG_UART 14
-#define EFI_DEV_MSG_VENDOR 10
-#define EFI_DEV_MEDIA 0x04
-#define EFI_DEV_MEDIA_HARD_DRIVE 1
-#define EFI_DEV_MEDIA_CDROM 2
-#define EFI_DEV_MEDIA_VENDOR 3
-#define EFI_DEV_MEDIA_FILE 4
-#define EFI_DEV_MEDIA_PROTOCOL 5
-#define EFI_DEV_BIOS_BOOT 0x05
-#define EFI_DEV_END_PATH 0x7F
-#define EFI_DEV_END_PATH2 0xFF
-#define EFI_DEV_END_INSTANCE 0x01
-#define EFI_DEV_END_ENTIRE 0xFF
-
-struct efi_generic_dev_path {
- u8 type;
- u8 sub_type;
- u16 length;
-} __attribute ((packed));
-
-static inline void memrange_efi_to_native(u64 *addr, u64 *npages)
-{
- *npages = PFN_UP(*addr + (*npages<<EFI_PAGE_SHIFT)) - PFN_DOWN(*addr);
- *addr &= PAGE_MASK;
-}
-
-#if defined(CONFIG_EFI_VARS) || defined(CONFIG_EFI_VARS_MODULE)
-/*
- * EFI Variable support.
- *
- * Different firmware drivers can expose their EFI-like variables using
- * the following.
- */
-
-struct efivar_operations {
- efi_get_variable_t *get_variable;
- efi_get_next_variable_t *get_next_variable;
- efi_set_variable_t *set_variable;
-};
-
-struct efivars {
- /*
- * ->lock protects two things:
- * 1) ->list - adds, removals, reads, writes
- * 2) ops.[gs]et_variable() calls.
- * It must not be held when creating sysfs entries or calling kmalloc.
- * ops.get_next_variable() is only called from register_efivars(),
- * which is protected by the BKL, so that path is safe.
- */
- spinlock_t lock;
- struct list_head list;
- struct kset *kset;
- struct bin_attribute *new_var, *del_var;
- const struct efivar_operations *ops;
- struct efivar_entry *walk_entry;
- struct pstore_info efi_pstore_info;
-};
-
-int register_efivars(struct efivars *efivars,
- const struct efivar_operations *ops,
- struct kobject *parent_kobj);
-void unregister_efivars(struct efivars *efivars);
-
-#endif /* CONFIG_EFI_VARS */
-
-#endif /* _LINUX_EFI_H */
diff --git a/ANDROID_3.4.5/include/linux/efs_fs_sb.h b/ANDROID_3.4.5/include/linux/efs_fs_sb.h
deleted file mode 100644
index a01be90c..00000000
--- a/ANDROID_3.4.5/include/linux/efs_fs_sb.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * efs_fs_sb.h
- *
- * Copyright (c) 1999 Al Smith
- *
- * Portions derived from IRIX header files (c) 1988 Silicon Graphics
- */
-
-#ifndef __EFS_FS_SB_H__
-#define __EFS_FS_SB_H__
-
-#include <linux/types.h>
-#include <linux/magic.h>
-
-/* EFS superblock magic numbers */
-#define EFS_MAGIC 0x072959
-#define EFS_NEWMAGIC 0x07295a
-
-#define IS_EFS_MAGIC(x) ((x == EFS_MAGIC) || (x == EFS_NEWMAGIC))
-
-#define EFS_SUPER 1
-#define EFS_ROOTINODE 2
-
-/* efs superblock on disk */
-struct efs_super {
- __be32 fs_size; /* size of filesystem, in sectors */
- __be32 fs_firstcg; /* bb offset to first cg */
- __be32 fs_cgfsize; /* size of cylinder group in bb's */
- __be16 fs_cgisize; /* bb's of inodes per cylinder group */
- __be16 fs_sectors; /* sectors per track */
- __be16 fs_heads; /* heads per cylinder */
- __be16 fs_ncg; /* # of cylinder groups in filesystem */
- __be16 fs_dirty; /* fs needs to be fsck'd */
- __be32 fs_time; /* last super-block update */
- __be32 fs_magic; /* magic number */
- char fs_fname[6]; /* file system name */
- char fs_fpack[6]; /* file system pack name */
- __be32 fs_bmsize; /* size of bitmap in bytes */
- __be32 fs_tfree; /* total free data blocks */
- __be32 fs_tinode; /* total free inodes */
- __be32 fs_bmblock; /* bitmap location. */
- __be32 fs_replsb; /* Location of replicated superblock. */
- __be32 fs_lastialloc; /* last allocated inode */
- char fs_spare[20]; /* space for expansion - MUST BE ZERO */
- __be32 fs_checksum; /* checksum of volume portion of fs */
-};
-
-/* efs superblock information in memory */
-struct efs_sb_info {
- __u32 fs_magic; /* superblock magic number */
- __u32 fs_start; /* first block of filesystem */
- __u32 first_block; /* first data block in filesystem */
- __u32 total_blocks; /* total number of blocks in filesystem */
- __u32 group_size; /* # of blocks a group consists of */
- __u32 data_free; /* # of free data blocks */
- __u32 inode_free; /* # of free inodes */
- __u16 inode_blocks; /* # of blocks used for inodes in every grp */
- __u16 total_groups; /* # of groups */
-};
-
-#endif /* __EFS_FS_SB_H__ */
-
diff --git a/ANDROID_3.4.5/include/linux/efs_vh.h b/ANDROID_3.4.5/include/linux/efs_vh.h
deleted file mode 100644
index 8a11150c..00000000
--- a/ANDROID_3.4.5/include/linux/efs_vh.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * efs_vh.h
- *
- * Copyright (c) 1999 Al Smith
- *
- * Portions derived from IRIX header files (c) 1985 MIPS Computer Systems, Inc.
- */
-
-#ifndef __EFS_VH_H__
-#define __EFS_VH_H__
-
-#define VHMAGIC 0xbe5a941 /* volume header magic number */
-#define NPARTAB 16 /* 16 unix partitions */
-#define NVDIR 15 /* max of 15 directory entries */
-#define BFNAMESIZE 16 /* max 16 chars in boot file name */
-#define VDNAMESIZE 8
-
-struct volume_directory {
- char vd_name[VDNAMESIZE]; /* name */
- __be32 vd_lbn; /* logical block number */
- __be32 vd_nbytes; /* file length in bytes */
-};
-
-struct partition_table { /* one per logical partition */
- __be32 pt_nblks; /* # of logical blks in partition */
- __be32 pt_firstlbn; /* first lbn of partition */
- __be32 pt_type; /* use of partition */
-};
-
-struct volume_header {
- __be32 vh_magic; /* identifies volume header */
- __be16 vh_rootpt; /* root partition number */
- __be16 vh_swappt; /* swap partition number */
- char vh_bootfile[BFNAMESIZE]; /* name of file to boot */
- char pad[48]; /* device param space */
- struct volume_directory vh_vd[NVDIR]; /* other vol hdr contents */
- struct partition_table vh_pt[NPARTAB]; /* device partition layout */
- __be32 vh_csum; /* volume header checksum */
- __be32 vh_fill; /* fill out to 512 bytes */
-};
-
-/* partition type sysv is used for EFS format CD-ROM partitions */
-#define SGI_SYSV 0x05
-#define SGI_EFS 0x07
-#define IS_EFS(x) (((x) == SGI_EFS) || ((x) == SGI_SYSV))
-
-struct pt_types {
- int pt_type;
- char *pt_name;
-};
-
-#endif /* __EFS_VH_H__ */
-
diff --git a/ANDROID_3.4.5/include/linux/eisa.h b/ANDROID_3.4.5/include/linux/eisa.h
deleted file mode 100644
index 6925249a..00000000
--- a/ANDROID_3.4.5/include/linux/eisa.h
+++ /dev/null
@@ -1,111 +0,0 @@
-#ifndef _LINUX_EISA_H
-#define _LINUX_EISA_H
-
-#include <linux/ioport.h>
-#include <linux/device.h>
-#include <linux/mod_devicetable.h>
-
-#define EISA_MAX_SLOTS 8
-
-#define EISA_MAX_RESOURCES 4
-
-/* A few EISA constants/offsets... */
-
-#define EISA_DMA1_STATUS 8
-#define EISA_INT1_CTRL 0x20
-#define EISA_INT1_MASK 0x21
-#define EISA_INT2_CTRL 0xA0
-#define EISA_INT2_MASK 0xA1
-#define EISA_DMA2_STATUS 0xD0
-#define EISA_DMA2_WRITE_SINGLE 0xD4
-#define EISA_EXT_NMI_RESET_CTRL 0x461
-#define EISA_INT1_EDGE_LEVEL 0x4D0
-#define EISA_INT2_EDGE_LEVEL 0x4D1
-#define EISA_VENDOR_ID_OFFSET 0xC80
-#define EISA_CONFIG_OFFSET 0xC84
-
-#define EISA_CONFIG_ENABLED 1
-#define EISA_CONFIG_FORCED 2
-
-/* There is not much we can say about an EISA device, apart from
- * signature, slot number, and base address. dma_mask is set by
- * default to parent device mask..*/
-
-struct eisa_device {
- struct eisa_device_id id;
- int slot;
- int state;
- unsigned long base_addr;
- struct resource res[EISA_MAX_RESOURCES];
- u64 dma_mask;
- struct device dev; /* generic device */
-#ifdef CONFIG_EISA_NAMES
- char pretty_name[50];
-#endif
-};
-
-#define to_eisa_device(n) container_of(n, struct eisa_device, dev)
-
-static inline int eisa_get_region_index (void *addr)
-{
- unsigned long x = (unsigned long) addr;
-
- x &= 0xc00;
- return (x >> 12);
-}
-
-struct eisa_driver {
- const struct eisa_device_id *id_table;
- struct device_driver driver;
-};
-
-#define to_eisa_driver(drv) container_of(drv,struct eisa_driver, driver)
-
-/* These external functions are only available when EISA support is enabled. */
-#ifdef CONFIG_EISA
-
-extern struct bus_type eisa_bus_type;
-int eisa_driver_register (struct eisa_driver *edrv);
-void eisa_driver_unregister (struct eisa_driver *edrv);
-
-#else /* !CONFIG_EISA */
-
-static inline int eisa_driver_register (struct eisa_driver *edrv) { return 0; }
-static inline void eisa_driver_unregister (struct eisa_driver *edrv) { }
-
-#endif /* !CONFIG_EISA */
-
-/* Mimics pci.h... */
-static inline void *eisa_get_drvdata (struct eisa_device *edev)
-{
- return dev_get_drvdata(&edev->dev);
-}
-
-static inline void eisa_set_drvdata (struct eisa_device *edev, void *data)
-{
- dev_set_drvdata(&edev->dev, data);
-}
-
-/* The EISA root device. There's rumours about machines with multiple
- * busses (PA-RISC ?), so we try to handle that. */
-
-struct eisa_root_device {
- struct device *dev; /* Pointer to bridge device */
- struct resource *res;
- unsigned long bus_base_addr;
- int slots; /* Max slot number */
- int force_probe; /* Probe even when no slot 0 */
- u64 dma_mask; /* from bridge device */
- int bus_nr; /* Set by eisa_root_register */
- struct resource eisa_root_res; /* ditto */
-};
-
-int eisa_root_register (struct eisa_root_device *root);
-
-#ifdef CONFIG_EISA
-extern int EISA_bus;
-#else
-# define EISA_bus 0
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/elevator.h b/ANDROID_3.4.5/include/linux/elevator.h
deleted file mode 100644
index 7d4e0356..00000000
--- a/ANDROID_3.4.5/include/linux/elevator.h
+++ /dev/null
@@ -1,208 +0,0 @@
-#ifndef _LINUX_ELEVATOR_H
-#define _LINUX_ELEVATOR_H
-
-#include <linux/percpu.h>
-
-#ifdef CONFIG_BLOCK
-
-struct io_cq;
-
-typedef int (elevator_merge_fn) (struct request_queue *, struct request **,
- struct bio *);
-
-typedef void (elevator_merge_req_fn) (struct request_queue *, struct request *, struct request *);
-
-typedef void (elevator_merged_fn) (struct request_queue *, struct request *, int);
-
-typedef int (elevator_allow_merge_fn) (struct request_queue *, struct request *, struct bio *);
-
-typedef void (elevator_bio_merged_fn) (struct request_queue *,
- struct request *, struct bio *);
-
-typedef int (elevator_dispatch_fn) (struct request_queue *, int);
-
-typedef void (elevator_add_req_fn) (struct request_queue *, struct request *);
-typedef struct request *(elevator_request_list_fn) (struct request_queue *, struct request *);
-typedef void (elevator_completed_req_fn) (struct request_queue *, struct request *);
-typedef int (elevator_may_queue_fn) (struct request_queue *, int);
-
-typedef void (elevator_init_icq_fn) (struct io_cq *);
-typedef void (elevator_exit_icq_fn) (struct io_cq *);
-typedef int (elevator_set_req_fn) (struct request_queue *, struct request *, gfp_t);
-typedef void (elevator_put_req_fn) (struct request *);
-typedef void (elevator_activate_req_fn) (struct request_queue *, struct request *);
-typedef void (elevator_deactivate_req_fn) (struct request_queue *, struct request *);
-
-typedef void *(elevator_init_fn) (struct request_queue *);
-typedef void (elevator_exit_fn) (struct elevator_queue *);
-
-struct elevator_ops
-{
- elevator_merge_fn *elevator_merge_fn;
- elevator_merged_fn *elevator_merged_fn;
- elevator_merge_req_fn *elevator_merge_req_fn;
- elevator_allow_merge_fn *elevator_allow_merge_fn;
- elevator_bio_merged_fn *elevator_bio_merged_fn;
-
- elevator_dispatch_fn *elevator_dispatch_fn;
- elevator_add_req_fn *elevator_add_req_fn;
- elevator_activate_req_fn *elevator_activate_req_fn;
- elevator_deactivate_req_fn *elevator_deactivate_req_fn;
-
- elevator_completed_req_fn *elevator_completed_req_fn;
-
- elevator_request_list_fn *elevator_former_req_fn;
- elevator_request_list_fn *elevator_latter_req_fn;
-
- elevator_init_icq_fn *elevator_init_icq_fn; /* see iocontext.h */
- elevator_exit_icq_fn *elevator_exit_icq_fn; /* ditto */
-
- elevator_set_req_fn *elevator_set_req_fn;
- elevator_put_req_fn *elevator_put_req_fn;
-
- elevator_may_queue_fn *elevator_may_queue_fn;
-
- elevator_init_fn *elevator_init_fn;
- elevator_exit_fn *elevator_exit_fn;
-};
-
-#define ELV_NAME_MAX (16)
-
-struct elv_fs_entry {
- struct attribute attr;
- ssize_t (*show)(struct elevator_queue *, char *);
- ssize_t (*store)(struct elevator_queue *, const char *, size_t);
-};
-
-/*
- * identifies an elevator type, such as AS or deadline
- */
-struct elevator_type
-{
- /* managed by elevator core */
- struct kmem_cache *icq_cache;
-
- /* fields provided by elevator implementation */
- struct elevator_ops ops;
- size_t icq_size; /* see iocontext.h */
- size_t icq_align; /* ditto */
- struct elv_fs_entry *elevator_attrs;
- char elevator_name[ELV_NAME_MAX];
- struct module *elevator_owner;
-
- /* managed by elevator core */
- char icq_cache_name[ELV_NAME_MAX + 5]; /* elvname + "_io_cq" */
- struct list_head list;
-};
-
-/*
- * each queue has an elevator_queue associated with it
- */
-struct elevator_queue
-{
- struct elevator_type *type;
- void *elevator_data;
- struct kobject kobj;
- struct mutex sysfs_lock;
- struct hlist_head *hash;
- unsigned int registered:1;
-};
-
-/*
- * block elevator interface
- */
-extern void elv_dispatch_sort(struct request_queue *, struct request *);
-extern void elv_dispatch_add_tail(struct request_queue *, struct request *);
-extern void elv_add_request(struct request_queue *, struct request *, int);
-extern void __elv_add_request(struct request_queue *, struct request *, int);
-extern int elv_merge(struct request_queue *, struct request **, struct bio *);
-extern void elv_merge_requests(struct request_queue *, struct request *,
- struct request *);
-extern void elv_merged_request(struct request_queue *, struct request *, int);
-extern void elv_bio_merged(struct request_queue *q, struct request *,
- struct bio *);
-extern void elv_requeue_request(struct request_queue *, struct request *);
-extern struct request *elv_former_request(struct request_queue *, struct request *);
-extern struct request *elv_latter_request(struct request_queue *, struct request *);
-extern int elv_register_queue(struct request_queue *q);
-extern void elv_unregister_queue(struct request_queue *q);
-extern int elv_may_queue(struct request_queue *, int);
-extern void elv_abort_queue(struct request_queue *);
-extern void elv_completed_request(struct request_queue *, struct request *);
-extern int elv_set_request(struct request_queue *, struct request *, gfp_t);
-extern void elv_put_request(struct request_queue *, struct request *);
-extern void elv_drain_elevator(struct request_queue *);
-
-/*
- * io scheduler registration
- */
-extern int elv_register(struct elevator_type *);
-extern void elv_unregister(struct elevator_type *);
-
-/*
- * io scheduler sysfs switching
- */
-extern ssize_t elv_iosched_show(struct request_queue *, char *);
-extern ssize_t elv_iosched_store(struct request_queue *, const char *, size_t);
-
-extern int elevator_init(struct request_queue *, char *);
-extern void elevator_exit(struct elevator_queue *);
-extern int elevator_change(struct request_queue *, const char *);
-extern bool elv_rq_merge_ok(struct request *, struct bio *);
-
-/*
- * Helper functions.
- */
-extern struct request *elv_rb_former_request(struct request_queue *, struct request *);
-extern struct request *elv_rb_latter_request(struct request_queue *, struct request *);
-
-/*
- * rb support functions.
- */
-extern void elv_rb_add(struct rb_root *, struct request *);
-extern void elv_rb_del(struct rb_root *, struct request *);
-extern struct request *elv_rb_find(struct rb_root *, sector_t);
-
-/*
- * Return values from elevator merger
- */
-#define ELEVATOR_NO_MERGE 0
-#define ELEVATOR_FRONT_MERGE 1
-#define ELEVATOR_BACK_MERGE 2
-
-/*
- * Insertion selection
- */
-#define ELEVATOR_INSERT_FRONT 1
-#define ELEVATOR_INSERT_BACK 2
-#define ELEVATOR_INSERT_SORT 3
-#define ELEVATOR_INSERT_REQUEUE 4
-#define ELEVATOR_INSERT_FLUSH 5
-#define ELEVATOR_INSERT_SORT_MERGE 6
-
-/*
- * return values from elevator_may_queue_fn
- */
-enum {
- ELV_MQUEUE_MAY,
- ELV_MQUEUE_NO,
- ELV_MQUEUE_MUST,
-};
-
-#define rq_end_sector(rq) (blk_rq_pos(rq) + blk_rq_sectors(rq))
-#define rb_entry_rq(node) rb_entry((node), struct request, rb_node)
-
-/*
- * Hack to reuse the csd.list list_head as the fifo time holder while
- * the request is in the io scheduler. Saves an unsigned long in rq.
- */
-#define rq_fifo_time(rq) ((unsigned long) (rq)->csd.list.next)
-#define rq_set_fifo_time(rq,exp) ((rq)->csd.list.next = (void *) (exp))
-#define rq_entry_fifo(ptr) list_entry((ptr), struct request, queuelist)
-#define rq_fifo_clear(rq) do { \
- list_del_init(&(rq)->queuelist); \
- INIT_LIST_HEAD(&(rq)->csd.list); \
- } while (0)
-
-#endif /* CONFIG_BLOCK */
-#endif
diff --git a/ANDROID_3.4.5/include/linux/elf-em.h b/ANDROID_3.4.5/include/linux/elf-em.h
deleted file mode 100644
index 8e2b7bac..00000000
--- a/ANDROID_3.4.5/include/linux/elf-em.h
+++ /dev/null
@@ -1,56 +0,0 @@
-#ifndef _LINUX_ELF_EM_H
-#define _LINUX_ELF_EM_H
-
-/* These constants define the various ELF target machines */
-#define EM_NONE 0
-#define EM_M32 1
-#define EM_SPARC 2
-#define EM_386 3
-#define EM_68K 4
-#define EM_88K 5
-#define EM_486 6 /* Perhaps disused */
-#define EM_860 7
-#define EM_MIPS 8 /* MIPS R3000 (officially, big-endian only) */
- /* Next two are historical and binaries and
- modules of these types will be rejected by
- Linux. */
-#define EM_MIPS_RS3_LE 10 /* MIPS R3000 little-endian */
-#define EM_MIPS_RS4_BE 10 /* MIPS R4000 big-endian */
-
-#define EM_PARISC 15 /* HPPA */
-#define EM_SPARC32PLUS 18 /* Sun's "v8plus" */
-#define EM_PPC 20 /* PowerPC */
-#define EM_PPC64 21 /* PowerPC64 */
-#define EM_SPU 23 /* Cell BE SPU */
-#define EM_SH 42 /* SuperH */
-#define EM_SPARCV9 43 /* SPARC v9 64-bit */
-#define EM_IA_64 50 /* HP/Intel IA-64 */
-#define EM_X86_64 62 /* AMD x86-64 */
-#define EM_S390 22 /* IBM S/390 */
-#define EM_CRIS 76 /* Axis Communications 32-bit embedded processor */
-#define EM_V850 87 /* NEC v850 */
-#define EM_M32R 88 /* Renesas M32R */
-#define EM_H8_300 46 /* Renesas H8/300,300H,H8S */
-#define EM_MN10300 89 /* Panasonic/MEI MN10300, AM33 */
-#define EM_BLACKFIN 106 /* ADI Blackfin Processor */
-#define EM_TI_C6000 140 /* TI C6X DSPs */
-#define EM_FRV 0x5441 /* Fujitsu FR-V */
-#define EM_AVR32 0x18ad /* Atmel AVR32 */
-
-/*
- * This is an interim value that we will use until the committee comes
- * up with a final number.
- */
-#define EM_ALPHA 0x9026
-
-/* Bogus old v850 magic number, used by old tools. */
-#define EM_CYGNUS_V850 0x9080
-/* Bogus old m32r magic number, used by old tools. */
-#define EM_CYGNUS_M32R 0x9041
-/* This is the old interim value for S/390 architecture */
-#define EM_S390_OLD 0xA390
-/* Also Panasonic/MEI MN10300, AM33 */
-#define EM_CYGNUS_MN10300 0xbeef
-
-
-#endif /* _LINUX_ELF_EM_H */
diff --git a/ANDROID_3.4.5/include/linux/elf-fdpic.h b/ANDROID_3.4.5/include/linux/elf-fdpic.h
deleted file mode 100644
index 7cd2e80c..00000000
--- a/ANDROID_3.4.5/include/linux/elf-fdpic.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/* elf-fdpic.h: FDPIC ELF load map
- *
- * Copyright (C) 2003 Red Hat, Inc. All Rights Reserved.
- * Written by David Howells (dhowells@redhat.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 _LINUX_ELF_FDPIC_H
-#define _LINUX_ELF_FDPIC_H
-
-#include <linux/elf.h>
-
-#define PT_GNU_STACK (PT_LOOS + 0x474e551)
-
-/* segment mappings for ELF FDPIC libraries/executables/interpreters */
-struct elf32_fdpic_loadseg {
- Elf32_Addr addr; /* core address to which mapped */
- Elf32_Addr p_vaddr; /* VMA recorded in file */
- Elf32_Word p_memsz; /* allocation size recorded in file */
-};
-
-struct elf32_fdpic_loadmap {
- Elf32_Half version; /* version of these structures, just in case... */
- Elf32_Half nsegs; /* number of segments */
- struct elf32_fdpic_loadseg segs[];
-};
-
-#define ELF32_FDPIC_LOADMAP_VERSION 0x0000
-
-/*
- * binfmt binary parameters structure
- */
-struct elf_fdpic_params {
- struct elfhdr hdr; /* ref copy of ELF header */
- struct elf_phdr *phdrs; /* ref copy of PT_PHDR table */
- struct elf32_fdpic_loadmap *loadmap; /* loadmap to be passed to userspace */
- unsigned long elfhdr_addr; /* mapped ELF header user address */
- unsigned long ph_addr; /* mapped PT_PHDR user address */
- unsigned long map_addr; /* mapped loadmap user address */
- unsigned long entry_addr; /* mapped entry user address */
- unsigned long stack_size; /* stack size requested (PT_GNU_STACK) */
- unsigned long dynamic_addr; /* mapped PT_DYNAMIC user address */
- unsigned long load_addr; /* user address at which to map binary */
- unsigned long flags;
-#define ELF_FDPIC_FLAG_ARRANGEMENT 0x0000000f /* PT_LOAD arrangement flags */
-#define ELF_FDPIC_FLAG_INDEPENDENT 0x00000000 /* PT_LOADs can be put anywhere */
-#define ELF_FDPIC_FLAG_HONOURVADDR 0x00000001 /* PT_LOAD.vaddr must be honoured */
-#define ELF_FDPIC_FLAG_CONSTDISP 0x00000002 /* PT_LOADs require constant
- * displacement */
-#define ELF_FDPIC_FLAG_CONTIGUOUS 0x00000003 /* PT_LOADs should be contiguous */
-#define ELF_FDPIC_FLAG_EXEC_STACK 0x00000010 /* T if stack to be executable */
-#define ELF_FDPIC_FLAG_NOEXEC_STACK 0x00000020 /* T if stack not to be executable */
-#define ELF_FDPIC_FLAG_EXECUTABLE 0x00000040 /* T if this object is the executable */
-#define ELF_FDPIC_FLAG_PRESENT 0x80000000 /* T if this object is present */
-};
-
-#ifdef __KERNEL__
-#ifdef CONFIG_MMU
-extern void elf_fdpic_arch_lay_out_mm(struct elf_fdpic_params *exec_params,
- struct elf_fdpic_params *interp_params,
- unsigned long *start_stack,
- unsigned long *start_brk);
-#endif
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_ELF_FDPIC_H */
diff --git a/ANDROID_3.4.5/include/linux/elf.h b/ANDROID_3.4.5/include/linux/elf.h
deleted file mode 100644
index 999b4f52..00000000
--- a/ANDROID_3.4.5/include/linux/elf.h
+++ /dev/null
@@ -1,449 +0,0 @@
-#ifndef _LINUX_ELF_H
-#define _LINUX_ELF_H
-
-#include <linux/types.h>
-#include <linux/elf-em.h>
-#ifdef __KERNEL__
-#include <asm/elf.h>
-#endif
-
-/* 32-bit ELF base types. */
-typedef __u32 Elf32_Addr;
-typedef __u16 Elf32_Half;
-typedef __u32 Elf32_Off;
-typedef __s32 Elf32_Sword;
-typedef __u32 Elf32_Word;
-
-/* 64-bit ELF base types. */
-typedef __u64 Elf64_Addr;
-typedef __u16 Elf64_Half;
-typedef __s16 Elf64_SHalf;
-typedef __u64 Elf64_Off;
-typedef __s32 Elf64_Sword;
-typedef __u32 Elf64_Word;
-typedef __u64 Elf64_Xword;
-typedef __s64 Elf64_Sxword;
-
-/* These constants are for the segment types stored in the image headers */
-#define PT_NULL 0
-#define PT_LOAD 1
-#define PT_DYNAMIC 2
-#define PT_INTERP 3
-#define PT_NOTE 4
-#define PT_SHLIB 5
-#define PT_PHDR 6
-#define PT_TLS 7 /* Thread local storage segment */
-#define PT_LOOS 0x60000000 /* OS-specific */
-#define PT_HIOS 0x6fffffff /* OS-specific */
-#define PT_LOPROC 0x70000000
-#define PT_HIPROC 0x7fffffff
-#define PT_GNU_EH_FRAME 0x6474e550
-
-#define PT_GNU_STACK (PT_LOOS + 0x474e551)
-
-/*
- * Extended Numbering
- *
- * If the real number of program header table entries is larger than
- * or equal to PN_XNUM(0xffff), it is set to sh_info field of the
- * section header at index 0, and PN_XNUM is set to e_phnum
- * field. Otherwise, the section header at index 0 is zero
- * initialized, if it exists.
- *
- * Specifications are available in:
- *
- * - Sun microsystems: Linker and Libraries.
- * Part No: 817-1984-17, September 2008.
- * URL: http://docs.sun.com/app/docs/doc/817-1984
- *
- * - System V ABI AMD64 Architecture Processor Supplement
- * Draft Version 0.99.,
- * May 11, 2009.
- * URL: http://www.x86-64.org/
- */
-#define PN_XNUM 0xffff
-
-/* These constants define the different elf file types */
-#define ET_NONE 0
-#define ET_REL 1
-#define ET_EXEC 2
-#define ET_DYN 3
-#define ET_CORE 4
-#define ET_LOPROC 0xff00
-#define ET_HIPROC 0xffff
-
-/* This is the info that is needed to parse the dynamic section of the file */
-#define DT_NULL 0
-#define DT_NEEDED 1
-#define DT_PLTRELSZ 2
-#define DT_PLTGOT 3
-#define DT_HASH 4
-#define DT_STRTAB 5
-#define DT_SYMTAB 6
-#define DT_RELA 7
-#define DT_RELASZ 8
-#define DT_RELAENT 9
-#define DT_STRSZ 10
-#define DT_SYMENT 11
-#define DT_INIT 12
-#define DT_FINI 13
-#define DT_SONAME 14
-#define DT_RPATH 15
-#define DT_SYMBOLIC 16
-#define DT_REL 17
-#define DT_RELSZ 18
-#define DT_RELENT 19
-#define DT_PLTREL 20
-#define DT_DEBUG 21
-#define DT_TEXTREL 22
-#define DT_JMPREL 23
-#define DT_ENCODING 32
-#define OLD_DT_LOOS 0x60000000
-#define DT_LOOS 0x6000000d
-#define DT_HIOS 0x6ffff000
-#define DT_VALRNGLO 0x6ffffd00
-#define DT_VALRNGHI 0x6ffffdff
-#define DT_ADDRRNGLO 0x6ffffe00
-#define DT_ADDRRNGHI 0x6ffffeff
-#define DT_VERSYM 0x6ffffff0
-#define DT_RELACOUNT 0x6ffffff9
-#define DT_RELCOUNT 0x6ffffffa
-#define DT_FLAGS_1 0x6ffffffb
-#define DT_VERDEF 0x6ffffffc
-#define DT_VERDEFNUM 0x6ffffffd
-#define DT_VERNEED 0x6ffffffe
-#define DT_VERNEEDNUM 0x6fffffff
-#define OLD_DT_HIOS 0x6fffffff
-#define DT_LOPROC 0x70000000
-#define DT_HIPROC 0x7fffffff
-
-/* This info is needed when parsing the symbol table */
-#define STB_LOCAL 0
-#define STB_GLOBAL 1
-#define STB_WEAK 2
-
-#define STT_NOTYPE 0
-#define STT_OBJECT 1
-#define STT_FUNC 2
-#define STT_SECTION 3
-#define STT_FILE 4
-#define STT_COMMON 5
-#define STT_TLS 6
-
-#define ELF_ST_BIND(x) ((x) >> 4)
-#define ELF_ST_TYPE(x) (((unsigned int) x) & 0xf)
-#define ELF32_ST_BIND(x) ELF_ST_BIND(x)
-#define ELF32_ST_TYPE(x) ELF_ST_TYPE(x)
-#define ELF64_ST_BIND(x) ELF_ST_BIND(x)
-#define ELF64_ST_TYPE(x) ELF_ST_TYPE(x)
-
-typedef struct dynamic{
- Elf32_Sword d_tag;
- union{
- Elf32_Sword d_val;
- Elf32_Addr d_ptr;
- } d_un;
-} Elf32_Dyn;
-
-typedef struct {
- Elf64_Sxword d_tag; /* entry tag value */
- union {
- Elf64_Xword d_val;
- Elf64_Addr d_ptr;
- } d_un;
-} Elf64_Dyn;
-
-/* The following are used with relocations */
-#define ELF32_R_SYM(x) ((x) >> 8)
-#define ELF32_R_TYPE(x) ((x) & 0xff)
-
-#define ELF64_R_SYM(i) ((i) >> 32)
-#define ELF64_R_TYPE(i) ((i) & 0xffffffff)
-
-typedef struct elf32_rel {
- Elf32_Addr r_offset;
- Elf32_Word r_info;
-} Elf32_Rel;
-
-typedef struct elf64_rel {
- Elf64_Addr r_offset; /* Location at which to apply the action */
- Elf64_Xword r_info; /* index and type of relocation */
-} Elf64_Rel;
-
-typedef struct elf32_rela{
- Elf32_Addr r_offset;
- Elf32_Word r_info;
- Elf32_Sword r_addend;
-} Elf32_Rela;
-
-typedef struct elf64_rela {
- Elf64_Addr r_offset; /* Location at which to apply the action */
- Elf64_Xword r_info; /* index and type of relocation */
- Elf64_Sxword r_addend; /* Constant addend used to compute value */
-} Elf64_Rela;
-
-typedef struct elf32_sym{
- Elf32_Word st_name;
- Elf32_Addr st_value;
- Elf32_Word st_size;
- unsigned char st_info;
- unsigned char st_other;
- Elf32_Half st_shndx;
-} Elf32_Sym;
-
-typedef struct elf64_sym {
- Elf64_Word st_name; /* Symbol name, index in string tbl */
- unsigned char st_info; /* Type and binding attributes */
- unsigned char st_other; /* No defined meaning, 0 */
- Elf64_Half st_shndx; /* Associated section index */
- Elf64_Addr st_value; /* Value of the symbol */
- Elf64_Xword st_size; /* Associated symbol size */
-} Elf64_Sym;
-
-
-#define EI_NIDENT 16
-
-typedef struct elf32_hdr{
- unsigned char e_ident[EI_NIDENT];
- Elf32_Half e_type;
- Elf32_Half e_machine;
- Elf32_Word e_version;
- Elf32_Addr e_entry; /* Entry point */
- Elf32_Off e_phoff;
- Elf32_Off e_shoff;
- Elf32_Word e_flags;
- Elf32_Half e_ehsize;
- Elf32_Half e_phentsize;
- Elf32_Half e_phnum;
- Elf32_Half e_shentsize;
- Elf32_Half e_shnum;
- Elf32_Half e_shstrndx;
-} Elf32_Ehdr;
-
-typedef struct elf64_hdr {
- unsigned char e_ident[EI_NIDENT]; /* ELF "magic number" */
- Elf64_Half e_type;
- Elf64_Half e_machine;
- Elf64_Word e_version;
- Elf64_Addr e_entry; /* Entry point virtual address */
- Elf64_Off e_phoff; /* Program header table file offset */
- Elf64_Off e_shoff; /* Section header table file offset */
- Elf64_Word e_flags;
- Elf64_Half e_ehsize;
- Elf64_Half e_phentsize;
- Elf64_Half e_phnum;
- Elf64_Half e_shentsize;
- Elf64_Half e_shnum;
- Elf64_Half e_shstrndx;
-} Elf64_Ehdr;
-
-/* These constants define the permissions on sections in the program
- header, p_flags. */
-#define PF_R 0x4
-#define PF_W 0x2
-#define PF_X 0x1
-
-typedef struct elf32_phdr{
- Elf32_Word p_type;
- Elf32_Off p_offset;
- Elf32_Addr p_vaddr;
- Elf32_Addr p_paddr;
- Elf32_Word p_filesz;
- Elf32_Word p_memsz;
- Elf32_Word p_flags;
- Elf32_Word p_align;
-} Elf32_Phdr;
-
-typedef struct elf64_phdr {
- Elf64_Word p_type;
- Elf64_Word p_flags;
- Elf64_Off p_offset; /* Segment file offset */
- Elf64_Addr p_vaddr; /* Segment virtual address */
- Elf64_Addr p_paddr; /* Segment physical address */
- Elf64_Xword p_filesz; /* Segment size in file */
- Elf64_Xword p_memsz; /* Segment size in memory */
- Elf64_Xword p_align; /* Segment alignment, file & memory */
-} Elf64_Phdr;
-
-/* sh_type */
-#define SHT_NULL 0
-#define SHT_PROGBITS 1
-#define SHT_SYMTAB 2
-#define SHT_STRTAB 3
-#define SHT_RELA 4
-#define SHT_HASH 5
-#define SHT_DYNAMIC 6
-#define SHT_NOTE 7
-#define SHT_NOBITS 8
-#define SHT_REL 9
-#define SHT_SHLIB 10
-#define SHT_DYNSYM 11
-#define SHT_NUM 12
-#define SHT_LOPROC 0x70000000
-#define SHT_HIPROC 0x7fffffff
-#define SHT_LOUSER 0x80000000
-#define SHT_HIUSER 0xffffffff
-
-/* sh_flags */
-#define SHF_WRITE 0x1
-#define SHF_ALLOC 0x2
-#define SHF_EXECINSTR 0x4
-#define SHF_MASKPROC 0xf0000000
-
-/* special section indexes */
-#define SHN_UNDEF 0
-#define SHN_LORESERVE 0xff00
-#define SHN_LOPROC 0xff00
-#define SHN_HIPROC 0xff1f
-#define SHN_ABS 0xfff1
-#define SHN_COMMON 0xfff2
-#define SHN_HIRESERVE 0xffff
-
-typedef struct elf32_shdr {
- Elf32_Word sh_name;
- Elf32_Word sh_type;
- Elf32_Word sh_flags;
- Elf32_Addr sh_addr;
- Elf32_Off sh_offset;
- Elf32_Word sh_size;
- Elf32_Word sh_link;
- Elf32_Word sh_info;
- Elf32_Word sh_addralign;
- Elf32_Word sh_entsize;
-} Elf32_Shdr;
-
-typedef struct elf64_shdr {
- Elf64_Word sh_name; /* Section name, index in string tbl */
- Elf64_Word sh_type; /* Type of section */
- Elf64_Xword sh_flags; /* Miscellaneous section attributes */
- Elf64_Addr sh_addr; /* Section virtual addr at execution */
- Elf64_Off sh_offset; /* Section file offset */
- Elf64_Xword sh_size; /* Size of section in bytes */
- Elf64_Word sh_link; /* Index of another section */
- Elf64_Word sh_info; /* Additional section information */
- Elf64_Xword sh_addralign; /* Section alignment */
- Elf64_Xword sh_entsize; /* Entry size if section holds table */
-} Elf64_Shdr;
-
-#define EI_MAG0 0 /* e_ident[] indexes */
-#define EI_MAG1 1
-#define EI_MAG2 2
-#define EI_MAG3 3
-#define EI_CLASS 4
-#define EI_DATA 5
-#define EI_VERSION 6
-#define EI_OSABI 7
-#define EI_PAD 8
-
-#define ELFMAG0 0x7f /* EI_MAG */
-#define ELFMAG1 'E'
-#define ELFMAG2 'L'
-#define ELFMAG3 'F'
-#define ELFMAG "\177ELF"
-#define SELFMAG 4
-
-#define ELFCLASSNONE 0 /* EI_CLASS */
-#define ELFCLASS32 1
-#define ELFCLASS64 2
-#define ELFCLASSNUM 3
-
-#define ELFDATANONE 0 /* e_ident[EI_DATA] */
-#define ELFDATA2LSB 1
-#define ELFDATA2MSB 2
-
-#define EV_NONE 0 /* e_version, EI_VERSION */
-#define EV_CURRENT 1
-#define EV_NUM 2
-
-#define ELFOSABI_NONE 0
-#define ELFOSABI_LINUX 3
-
-#ifndef ELF_OSABI
-#define ELF_OSABI ELFOSABI_NONE
-#endif
-
-/*
- * Notes used in ET_CORE. Architectures export some of the arch register sets
- * using the corresponding note types via the PTRACE_GETREGSET and
- * PTRACE_SETREGSET requests.
- */
-#define NT_PRSTATUS 1
-#define NT_PRFPREG 2
-#define NT_PRPSINFO 3
-#define NT_TASKSTRUCT 4
-#define NT_AUXV 6
-#define NT_PRXFPREG 0x46e62b7f /* copied from gdb5.1/include/elf/common.h */
-#define NT_PPC_VMX 0x100 /* PowerPC Altivec/VMX registers */
-#define NT_PPC_SPE 0x101 /* PowerPC SPE/EVR registers */
-#define NT_PPC_VSX 0x102 /* PowerPC VSX registers */
-#define NT_386_TLS 0x200 /* i386 TLS slots (struct user_desc) */
-#define NT_386_IOPERM 0x201 /* x86 io permission bitmap (1=deny) */
-#define NT_X86_XSTATE 0x202 /* x86 extended state using xsave */
-#define NT_S390_HIGH_GPRS 0x300 /* s390 upper register halves */
-#define NT_S390_TIMER 0x301 /* s390 timer register */
-#define NT_S390_TODCMP 0x302 /* s390 TOD clock comparator register */
-#define NT_S390_TODPREG 0x303 /* s390 TOD programmable register */
-#define NT_S390_CTRS 0x304 /* s390 control registers */
-#define NT_S390_PREFIX 0x305 /* s390 prefix register */
-#define NT_S390_LAST_BREAK 0x306 /* s390 breaking event address */
-#define NT_S390_SYSTEM_CALL 0x307 /* s390 system call restart data */
-#define NT_ARM_VFP 0x400 /* ARM VFP/NEON registers */
-
-
-/* Note header in a PT_NOTE section */
-typedef struct elf32_note {
- Elf32_Word n_namesz; /* Name size */
- Elf32_Word n_descsz; /* Content size */
- Elf32_Word n_type; /* Content type */
-} Elf32_Nhdr;
-
-/* Note header in a PT_NOTE section */
-typedef struct elf64_note {
- Elf64_Word n_namesz; /* Name size */
- Elf64_Word n_descsz; /* Content size */
- Elf64_Word n_type; /* Content type */
-} Elf64_Nhdr;
-
-#ifdef __KERNEL__
-#ifndef elf_read_implies_exec
- /* Executables for which elf_read_implies_exec() returns TRUE will
- have the READ_IMPLIES_EXEC personality flag set automatically.
- Override in asm/elf.h as needed. */
-# define elf_read_implies_exec(ex, have_pt_gnu_stack) 0
-#endif
-
-#if ELF_CLASS == ELFCLASS32
-
-extern Elf32_Dyn _DYNAMIC [];
-#define elfhdr elf32_hdr
-#define elf_phdr elf32_phdr
-#define elf_shdr elf32_shdr
-#define elf_note elf32_note
-#define elf_addr_t Elf32_Off
-#define Elf_Half Elf32_Half
-
-#else
-
-extern Elf64_Dyn _DYNAMIC [];
-#define elfhdr elf64_hdr
-#define elf_phdr elf64_phdr
-#define elf_shdr elf64_shdr
-#define elf_note elf64_note
-#define elf_addr_t Elf64_Off
-#define Elf_Half Elf64_Half
-
-#endif
-
-/* Optional callbacks to write extra ELF notes. */
-struct file;
-
-#ifndef ARCH_HAVE_EXTRA_ELF_NOTES
-static inline int elf_coredump_extra_notes_size(void) { return 0; }
-static inline int elf_coredump_extra_notes_write(struct file *file,
- loff_t *foffset) { return 0; }
-#else
-extern int elf_coredump_extra_notes_size(void);
-extern int elf_coredump_extra_notes_write(struct file *file, loff_t *foffset);
-#endif
-#endif /* __KERNEL__ */
-#endif /* _LINUX_ELF_H */
diff --git a/ANDROID_3.4.5/include/linux/elfcore-compat.h b/ANDROID_3.4.5/include/linux/elfcore-compat.h
deleted file mode 100644
index 0a90e1c3..00000000
--- a/ANDROID_3.4.5/include/linux/elfcore-compat.h
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef _LINUX_ELFCORE_COMPAT_H
-#define _LINUX_ELFCORE_COMPAT_H
-
-#include <linux/elf.h>
-#include <linux/elfcore.h>
-#include <linux/compat.h>
-
-/*
- * Make sure these layouts match the linux/elfcore.h native definitions.
- */
-
-struct compat_elf_siginfo
-{
- compat_int_t si_signo;
- compat_int_t si_code;
- compat_int_t si_errno;
-};
-
-struct compat_elf_prstatus
-{
- struct compat_elf_siginfo pr_info;
- short pr_cursig;
- compat_ulong_t pr_sigpend;
- compat_ulong_t pr_sighold;
- compat_pid_t pr_pid;
- compat_pid_t pr_ppid;
- compat_pid_t pr_pgrp;
- compat_pid_t pr_sid;
- struct compat_timeval pr_utime;
- struct compat_timeval pr_stime;
- struct compat_timeval pr_cutime;
- struct compat_timeval pr_cstime;
- compat_elf_gregset_t pr_reg;
-#ifdef CONFIG_BINFMT_ELF_FDPIC
- compat_ulong_t pr_exec_fdpic_loadmap;
- compat_ulong_t pr_interp_fdpic_loadmap;
-#endif
- compat_int_t pr_fpvalid;
-};
-
-struct compat_elf_prpsinfo
-{
- char pr_state;
- char pr_sname;
- char pr_zomb;
- char pr_nice;
- compat_ulong_t pr_flag;
- __compat_uid_t pr_uid;
- __compat_gid_t pr_gid;
- compat_pid_t pr_pid, pr_ppid, pr_pgrp, pr_sid;
- char pr_fname[16];
- char pr_psargs[ELF_PRARGSZ];
-};
-
-#endif /* _LINUX_ELFCORE_COMPAT_H */
diff --git a/ANDROID_3.4.5/include/linux/elfcore.h b/ANDROID_3.4.5/include/linux/elfcore.h
deleted file mode 100644
index 0698c79f..00000000
--- a/ANDROID_3.4.5/include/linux/elfcore.h
+++ /dev/null
@@ -1,172 +0,0 @@
-#ifndef _LINUX_ELFCORE_H
-#define _LINUX_ELFCORE_H
-
-#include <linux/types.h>
-#include <linux/signal.h>
-#include <linux/time.h>
-#ifdef __KERNEL__
-#include <linux/user.h>
-#include <linux/bug.h>
-#endif
-#include <linux/ptrace.h>
-#include <linux/elf.h>
-#include <linux/fs.h>
-
-struct elf_siginfo
-{
- int si_signo; /* signal number */
- int si_code; /* extra code */
- int si_errno; /* errno */
-};
-
-#ifdef __KERNEL__
-#include <asm/elf.h>
-#endif
-
-#ifndef __KERNEL__
-typedef elf_greg_t greg_t;
-typedef elf_gregset_t gregset_t;
-typedef elf_fpregset_t fpregset_t;
-typedef elf_fpxregset_t fpxregset_t;
-#define NGREG ELF_NGREG
-#endif
-
-/*
- * Definitions to generate Intel SVR4-like core files.
- * These mostly have the same names as the SVR4 types with "elf_"
- * tacked on the front to prevent clashes with linux definitions,
- * and the typedef forms have been avoided. This is mostly like
- * the SVR4 structure, but more Linuxy, with things that Linux does
- * not support and which gdb doesn't really use excluded.
- * Fields present but not used are marked with "XXX".
- */
-struct elf_prstatus
-{
-#if 0
- long pr_flags; /* XXX Process flags */
- short pr_why; /* XXX Reason for process halt */
- short pr_what; /* XXX More detailed reason */
-#endif
- struct elf_siginfo pr_info; /* Info associated with signal */
- short pr_cursig; /* Current signal */
- unsigned long pr_sigpend; /* Set of pending signals */
- unsigned long pr_sighold; /* Set of held signals */
-#if 0
- struct sigaltstack pr_altstack; /* Alternate stack info */
- struct sigaction pr_action; /* Signal action for current sig */
-#endif
- pid_t pr_pid;
- pid_t pr_ppid;
- pid_t pr_pgrp;
- pid_t pr_sid;
- struct timeval pr_utime; /* User time */
- struct timeval pr_stime; /* System time */
- struct timeval pr_cutime; /* Cumulative user time */
- struct timeval pr_cstime; /* Cumulative system time */
-#if 0
- long pr_instr; /* Current instruction */
-#endif
- elf_gregset_t pr_reg; /* GP registers */
-#ifdef CONFIG_BINFMT_ELF_FDPIC
- /* When using FDPIC, the loadmap addresses need to be communicated
- * to GDB in order for GDB to do the necessary relocations. The
- * fields (below) used to communicate this information are placed
- * immediately after ``pr_reg'', so that the loadmap addresses may
- * be viewed as part of the register set if so desired.
- */
- unsigned long pr_exec_fdpic_loadmap;
- unsigned long pr_interp_fdpic_loadmap;
-#endif
- int pr_fpvalid; /* True if math co-processor being used. */
-};
-
-#define ELF_PRARGSZ (80) /* Number of chars for args */
-
-struct elf_prpsinfo
-{
- char pr_state; /* numeric process state */
- char pr_sname; /* char for pr_state */
- char pr_zomb; /* zombie */
- char pr_nice; /* nice val */
- unsigned long pr_flag; /* flags */
- __kernel_uid_t pr_uid;
- __kernel_gid_t pr_gid;
- pid_t pr_pid, pr_ppid, pr_pgrp, pr_sid;
- /* Lots missing */
- char pr_fname[16]; /* filename of executable */
- char pr_psargs[ELF_PRARGSZ]; /* initial part of arg list */
-};
-
-#ifndef __KERNEL__
-typedef struct elf_prstatus prstatus_t;
-typedef struct elf_prpsinfo prpsinfo_t;
-#define PRARGSZ ELF_PRARGSZ
-#endif
-
-#ifdef __KERNEL__
-static inline void elf_core_copy_regs(elf_gregset_t *elfregs, struct pt_regs *regs)
-{
-#ifdef ELF_CORE_COPY_REGS
- ELF_CORE_COPY_REGS((*elfregs), regs)
-#else
- BUG_ON(sizeof(*elfregs) != sizeof(*regs));
- *(struct pt_regs *)elfregs = *regs;
-#endif
-}
-
-static inline void elf_core_copy_kernel_regs(elf_gregset_t *elfregs, struct pt_regs *regs)
-{
-#ifdef ELF_CORE_COPY_KERNEL_REGS
- ELF_CORE_COPY_KERNEL_REGS((*elfregs), regs);
-#else
- elf_core_copy_regs(elfregs, regs);
-#endif
-}
-
-static inline int elf_core_copy_task_regs(struct task_struct *t, elf_gregset_t* elfregs)
-{
-#if defined (ELF_CORE_COPY_TASK_REGS)
- return ELF_CORE_COPY_TASK_REGS(t, elfregs);
-#elif defined (task_pt_regs)
- elf_core_copy_regs(elfregs, task_pt_regs(t));
-#endif
- return 0;
-}
-
-extern int dump_fpu (struct pt_regs *, elf_fpregset_t *);
-
-static inline int elf_core_copy_task_fpregs(struct task_struct *t, struct pt_regs *regs, elf_fpregset_t *fpu)
-{
-#ifdef ELF_CORE_COPY_FPREGS
- return ELF_CORE_COPY_FPREGS(t, fpu);
-#else
- return dump_fpu(regs, fpu);
-#endif
-}
-
-#ifdef ELF_CORE_COPY_XFPREGS
-static inline int elf_core_copy_task_xfpregs(struct task_struct *t, elf_fpxregset_t *xfpu)
-{
- return ELF_CORE_COPY_XFPREGS(t, xfpu);
-}
-#endif
-
-/*
- * These functions parameterize elf_core_dump in fs/binfmt_elf.c to write out
- * extra segments containing the gate DSO contents. Dumping its
- * contents makes post-mortem fully interpretable later without matching up
- * the same kernel and hardware config to see what PC values meant.
- * Dumping its extra ELF program headers includes all the other information
- * a debugger needs to easily find how the gate DSO was being used.
- */
-extern Elf_Half elf_core_extra_phdrs(void);
-extern int
-elf_core_write_extra_phdrs(struct file *file, loff_t offset, size_t *size,
- unsigned long limit);
-extern int
-elf_core_write_extra_data(struct file *file, size_t *size, unsigned long limit);
-extern size_t elf_core_extra_data_size(void);
-
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_ELFCORE_H */
diff --git a/ANDROID_3.4.5/include/linux/elfnote.h b/ANDROID_3.4.5/include/linux/elfnote.h
deleted file mode 100644
index 278e3ef0..00000000
--- a/ANDROID_3.4.5/include/linux/elfnote.h
+++ /dev/null
@@ -1,98 +0,0 @@
-#ifndef _LINUX_ELFNOTE_H
-#define _LINUX_ELFNOTE_H
-/*
- * Helper macros to generate ELF Note structures, which are put into a
- * PT_NOTE segment of the final vmlinux image. These are useful for
- * including name-value pairs of metadata into the kernel binary (or
- * modules?) for use by external programs.
- *
- * Each note has three parts: a name, a type and a desc. The name is
- * intended to distinguish the note's originator, so it would be a
- * company, project, subsystem, etc; it must be in a suitable form for
- * use in a section name. The type is an integer which is used to tag
- * the data, and is considered to be within the "name" namespace (so
- * "FooCo"'s type 42 is distinct from "BarProj"'s type 42). The
- * "desc" field is the actual data. There are no constraints on the
- * desc field's contents, though typically they're fairly small.
- *
- * All notes from a given NAME are put into a section named
- * .note.NAME. When the kernel image is finally linked, all the notes
- * are packed into a single .notes section, which is mapped into the
- * PT_NOTE segment. Because notes for a given name are grouped into
- * the same section, they'll all be adjacent the output file.
- *
- * This file defines macros for both C and assembler use. Their
- * syntax is slightly different, but they're semantically similar.
- *
- * See the ELF specification for more detail about ELF notes.
- */
-
-#ifdef __ASSEMBLER__
-/*
- * Generate a structure with the same shape as Elf{32,64}_Nhdr (which
- * turn out to be the same size and shape), followed by the name and
- * desc data with appropriate padding. The 'desctype' argument is the
- * assembler pseudo op defining the type of the data e.g. .asciz while
- * 'descdata' is the data itself e.g. "hello, world".
- *
- * e.g. ELFNOTE(XYZCo, 42, .asciz, "forty-two")
- * ELFNOTE(XYZCo, 12, .long, 0xdeadbeef)
- */
-#define ELFNOTE_START(name, type, flags) \
-.pushsection .note.name, flags,@note ; \
- .balign 4 ; \
- .long 2f - 1f /* namesz */ ; \
- .long 4484f - 3f /* descsz */ ; \
- .long type ; \
-1:.asciz #name ; \
-2:.balign 4 ; \
-3:
-
-#define ELFNOTE_END \
-4484:.balign 4 ; \
-.popsection ;
-
-#define ELFNOTE(name, type, desc) \
- ELFNOTE_START(name, type, "") \
- desc ; \
- ELFNOTE_END
-
-#else /* !__ASSEMBLER__ */
-#include <linux/elf.h>
-/*
- * Use an anonymous structure which matches the shape of
- * Elf{32,64}_Nhdr, but includes the name and desc data. The size and
- * type of name and desc depend on the macro arguments. "name" must
- * be a literal string, and "desc" must be passed by value. You may
- * only define one note per line, since __LINE__ is used to generate
- * unique symbols.
- */
-#define _ELFNOTE_PASTE(a,b) a##b
-#define _ELFNOTE(size, name, unique, type, desc) \
- static const struct { \
- struct elf##size##_note _nhdr; \
- unsigned char _name[sizeof(name)] \
- __attribute__((aligned(sizeof(Elf##size##_Word)))); \
- typeof(desc) _desc \
- __attribute__((aligned(sizeof(Elf##size##_Word)))); \
- } _ELFNOTE_PASTE(_note_, unique) \
- __used \
- __attribute__((section(".note." name), \
- aligned(sizeof(Elf##size##_Word)), \
- unused)) = { \
- { \
- sizeof(name), \
- sizeof(desc), \
- type, \
- }, \
- name, \
- desc \
- }
-#define ELFNOTE(size, name, type, desc) \
- _ELFNOTE(size, name, __LINE__, type, desc)
-
-#define ELFNOTE32(name, type, desc) ELFNOTE(32, name, type, desc)
-#define ELFNOTE64(name, type, desc) ELFNOTE(64, name, type, desc)
-#endif /* __ASSEMBLER__ */
-
-#endif /* _LINUX_ELFNOTE_H */
diff --git a/ANDROID_3.4.5/include/linux/enclosure.h b/ANDROID_3.4.5/include/linux/enclosure.h
deleted file mode 100644
index 9a33c5f7..00000000
--- a/ANDROID_3.4.5/include/linux/enclosure.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Enclosure Services
- *
- * Copyright (C) 2008 James Bottomley <James.Bottomley@HansenPartnership.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.
-**
-** 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.
-**
-**-----------------------------------------------------------------------------
-*/
-#ifndef _LINUX_ENCLOSURE_H_
-#define _LINUX_ENCLOSURE_H_
-
-#include <linux/device.h>
-#include <linux/list.h>
-
-/* A few generic types ... taken from ses-2 */
-enum enclosure_component_type {
- ENCLOSURE_COMPONENT_DEVICE = 0x01,
- ENCLOSURE_COMPONENT_ARRAY_DEVICE = 0x17,
-};
-
-/* ses-2 common element status */
-enum enclosure_status {
- ENCLOSURE_STATUS_UNSUPPORTED = 0,
- ENCLOSURE_STATUS_OK,
- ENCLOSURE_STATUS_CRITICAL,
- ENCLOSURE_STATUS_NON_CRITICAL,
- ENCLOSURE_STATUS_UNRECOVERABLE,
- ENCLOSURE_STATUS_NOT_INSTALLED,
- ENCLOSURE_STATUS_UNKNOWN,
- ENCLOSURE_STATUS_UNAVAILABLE,
- /* last element for counting purposes */
- ENCLOSURE_STATUS_MAX
-};
-
-/* SFF-8485 activity light settings */
-enum enclosure_component_setting {
- ENCLOSURE_SETTING_DISABLED = 0,
- ENCLOSURE_SETTING_ENABLED = 1,
- ENCLOSURE_SETTING_BLINK_A_ON_OFF = 2,
- ENCLOSURE_SETTING_BLINK_A_OFF_ON = 3,
- ENCLOSURE_SETTING_BLINK_B_ON_OFF = 6,
- ENCLOSURE_SETTING_BLINK_B_OFF_ON = 7,
-};
-
-struct enclosure_device;
-struct enclosure_component;
-struct enclosure_component_callbacks {
- void (*get_status)(struct enclosure_device *,
- struct enclosure_component *);
- int (*set_status)(struct enclosure_device *,
- struct enclosure_component *,
- enum enclosure_status);
- void (*get_fault)(struct enclosure_device *,
- struct enclosure_component *);
- int (*set_fault)(struct enclosure_device *,
- struct enclosure_component *,
- enum enclosure_component_setting);
- void (*get_active)(struct enclosure_device *,
- struct enclosure_component *);
- int (*set_active)(struct enclosure_device *,
- struct enclosure_component *,
- enum enclosure_component_setting);
- void (*get_locate)(struct enclosure_device *,
- struct enclosure_component *);
- int (*set_locate)(struct enclosure_device *,
- struct enclosure_component *,
- enum enclosure_component_setting);
-};
-
-
-struct enclosure_component {
- void *scratch;
- struct device cdev;
- struct device *dev;
- enum enclosure_component_type type;
- int number;
- int fault;
- int active;
- int locate;
- enum enclosure_status status;
-};
-
-struct enclosure_device {
- void *scratch;
- struct list_head node;
- struct device edev;
- struct enclosure_component_callbacks *cb;
- int components;
- struct enclosure_component component[0];
-};
-
-static inline struct enclosure_device *
-to_enclosure_device(struct device *dev)
-{
- return container_of(dev, struct enclosure_device, edev);
-}
-
-static inline struct enclosure_component *
-to_enclosure_component(struct device *dev)
-{
- return container_of(dev, struct enclosure_component, cdev);
-}
-
-struct enclosure_device *
-enclosure_register(struct device *, const char *, int,
- struct enclosure_component_callbacks *);
-void enclosure_unregister(struct enclosure_device *);
-struct enclosure_component *
-enclosure_component_register(struct enclosure_device *, unsigned int,
- enum enclosure_component_type, const char *);
-int enclosure_add_device(struct enclosure_device *enclosure, int component,
- struct device *dev);
-int enclosure_remove_device(struct enclosure_device *, struct device *);
-struct enclosure_device *enclosure_find(struct device *dev,
- struct enclosure_device *start);
-int enclosure_for_each_device(int (*fn)(struct enclosure_device *, void *),
- void *data);
-
-#endif /* _LINUX_ENCLOSURE_H_ */
diff --git a/ANDROID_3.4.5/include/linux/err.h b/ANDROID_3.4.5/include/linux/err.h
deleted file mode 100644
index f2edce25..00000000
--- a/ANDROID_3.4.5/include/linux/err.h
+++ /dev/null
@@ -1,65 +0,0 @@
-#ifndef _LINUX_ERR_H
-#define _LINUX_ERR_H
-
-#include <linux/compiler.h>
-
-#include <asm/errno.h>
-
-/*
- * Kernel pointers have redundant information, so we can use a
- * scheme where we can return either an error code or a dentry
- * pointer with the same return value.
- *
- * This should be a per-architecture thing, to allow different
- * error and pointer decisions.
- */
-#define MAX_ERRNO 4095
-
-#ifndef __ASSEMBLY__
-
-#define IS_ERR_VALUE(x) unlikely((x) >= (unsigned long)-MAX_ERRNO)
-
-static inline void * __must_check ERR_PTR(long error)
-{
- return (void *) error;
-}
-
-static inline long __must_check PTR_ERR(const void *ptr)
-{
- return (long) ptr;
-}
-
-static inline long __must_check IS_ERR(const void *ptr)
-{
- return IS_ERR_VALUE((unsigned long)ptr);
-}
-
-static inline long __must_check IS_ERR_OR_NULL(const void *ptr)
-{
- return !ptr || IS_ERR_VALUE((unsigned long)ptr);
-}
-
-/**
- * ERR_CAST - Explicitly cast an error-valued pointer to another pointer type
- * @ptr: The pointer to cast.
- *
- * Explicitly cast an error-valued pointer to another pointer type in such a
- * way as to make it clear that's what's going on.
- */
-static inline void * __must_check ERR_CAST(const void *ptr)
-{
- /* cast away the const */
- return (void *) ptr;
-}
-
-static inline int __must_check PTR_RET(const void *ptr)
-{
- if (IS_ERR(ptr))
- return PTR_ERR(ptr);
- else
- return 0;
-}
-
-#endif
-
-#endif /* _LINUX_ERR_H */
diff --git a/ANDROID_3.4.5/include/linux/errno.h b/ANDROID_3.4.5/include/linux/errno.h
deleted file mode 100644
index 2d09bfa5..00000000
--- a/ANDROID_3.4.5/include/linux/errno.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#ifndef _LINUX_ERRNO_H
-#define _LINUX_ERRNO_H
-
-#include <asm/errno.h>
-
-#ifdef __KERNEL__
-
-/*
- * These should never be seen by user programs. To return one of ERESTART*
- * codes, signal_pending() MUST be set. Note that ptrace can observe these
- * at syscall exit tracing, but they will never be left for the debugged user
- * process to see.
- */
-#define ERESTARTSYS 512
-#define ERESTARTNOINTR 513
-#define ERESTARTNOHAND 514 /* restart if no handler.. */
-#define ENOIOCTLCMD 515 /* No ioctl command */
-#define ERESTART_RESTARTBLOCK 516 /* restart by calling sys_restart_syscall */
-#define EPROBE_DEFER 517 /* Driver requests probe retry */
-
-/* Defined for the NFSv3 protocol */
-#define EBADHANDLE 521 /* Illegal NFS file handle */
-#define ENOTSYNC 522 /* Update synchronization mismatch */
-#define EBADCOOKIE 523 /* Cookie is stale */
-#define ENOTSUPP 524 /* Operation is not supported */
-#define ETOOSMALL 525 /* Buffer or request is too small */
-#define ESERVERFAULT 526 /* An untranslatable error occurred */
-#define EBADTYPE 527 /* Type not supported by server */
-#define EJUKEBOX 528 /* Request initiated, but will not complete before timeout */
-#define EIOCBQUEUED 529 /* iocb queued, will get completion event */
-#define EIOCBRETRY 530 /* iocb queued, will trigger a retry */
-
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/errqueue.h b/ANDROID_3.4.5/include/linux/errqueue.h
deleted file mode 100644
index fd0628be..00000000
--- a/ANDROID_3.4.5/include/linux/errqueue.h
+++ /dev/null
@@ -1,48 +0,0 @@
-#ifndef _LINUX_ERRQUEUE_H
-#define _LINUX_ERRQUEUE_H 1
-
-#include <linux/types.h>
-
-struct sock_extended_err {
- __u32 ee_errno;
- __u8 ee_origin;
- __u8 ee_type;
- __u8 ee_code;
- __u8 ee_pad;
- __u32 ee_info;
- __u32 ee_data;
-};
-
-#define SO_EE_ORIGIN_NONE 0
-#define SO_EE_ORIGIN_LOCAL 1
-#define SO_EE_ORIGIN_ICMP 2
-#define SO_EE_ORIGIN_ICMP6 3
-#define SO_EE_ORIGIN_TXSTATUS 4
-#define SO_EE_ORIGIN_TIMESTAMPING SO_EE_ORIGIN_TXSTATUS
-
-#define SO_EE_OFFENDER(ee) ((struct sockaddr*)((ee)+1))
-
-#ifdef __KERNEL__
-
-#include <net/ip.h>
-#if IS_ENABLED(CONFIG_IPV6)
-#include <linux/ipv6.h>
-#endif
-
-#define SKB_EXT_ERR(skb) ((struct sock_exterr_skb *) ((skb)->cb))
-
-struct sock_exterr_skb {
- union {
- struct inet_skb_parm h4;
-#if IS_ENABLED(CONFIG_IPV6)
- struct inet6_skb_parm h6;
-#endif
- } header;
- struct sock_extended_err ee;
- u16 addr_offset;
- __be16 port;
-};
-
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/etherdevice.h b/ANDROID_3.4.5/include/linux/etherdevice.h
deleted file mode 100644
index fe5136d8..00000000
--- a/ANDROID_3.4.5/include/linux/etherdevice.h
+++ /dev/null
@@ -1,280 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. NET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Definitions for the Ethernet handlers.
- *
- * Version: @(#)eth.h 1.0.4 05/13/93
- *
- * Authors: Ross Biro
- * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
- *
- * Relocated to include/linux where it belongs by Alan Cox
- * <gw4pts@gw4pts.ampr.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.
- *
- * WARNING: This move may well be temporary. This file will get merged with others RSN.
- *
- */
-#ifndef _LINUX_ETHERDEVICE_H
-#define _LINUX_ETHERDEVICE_H
-
-#include <linux/if_ether.h>
-#include <linux/netdevice.h>
-#include <linux/random.h>
-#include <asm/unaligned.h>
-
-#ifdef __KERNEL__
-extern __be16 eth_type_trans(struct sk_buff *skb, struct net_device *dev);
-extern const struct header_ops eth_header_ops;
-
-extern int eth_header(struct sk_buff *skb, struct net_device *dev,
- unsigned short type,
- const void *daddr, const void *saddr, unsigned len);
-extern int eth_rebuild_header(struct sk_buff *skb);
-extern int eth_header_parse(const struct sk_buff *skb, unsigned char *haddr);
-extern int eth_header_cache(const struct neighbour *neigh, struct hh_cache *hh, __be16 type);
-extern void eth_header_cache_update(struct hh_cache *hh,
- const struct net_device *dev,
- const unsigned char *haddr);
-extern int eth_mac_addr(struct net_device *dev, void *p);
-extern int eth_change_mtu(struct net_device *dev, int new_mtu);
-extern int eth_validate_addr(struct net_device *dev);
-
-
-
-extern struct net_device *alloc_etherdev_mqs(int sizeof_priv, unsigned int txqs,
- unsigned int rxqs);
-#define alloc_etherdev(sizeof_priv) alloc_etherdev_mq(sizeof_priv, 1)
-#define alloc_etherdev_mq(sizeof_priv, count) alloc_etherdev_mqs(sizeof_priv, count, count)
-
-/**
- * is_zero_ether_addr - Determine if give Ethernet address is all zeros.
- * @addr: Pointer to a six-byte array containing the Ethernet address
- *
- * Return true if the address is all zeroes.
- */
-static inline int is_zero_ether_addr(const u8 *addr)
-{
- return !(addr[0] | addr[1] | addr[2] | addr[3] | addr[4] | addr[5]);
-}
-
-/**
- * is_multicast_ether_addr - Determine if the Ethernet address is a multicast.
- * @addr: Pointer to a six-byte array containing the Ethernet address
- *
- * Return true if the address is a multicast address.
- * By definition the broadcast address is also a multicast address.
- */
-static inline int is_multicast_ether_addr(const u8 *addr)
-{
- return 0x01 & addr[0];
-}
-
-/**
- * is_local_ether_addr - Determine if the Ethernet address is locally-assigned one (IEEE 802).
- * @addr: Pointer to a six-byte array containing the Ethernet address
- *
- * Return true if the address is a local address.
- */
-static inline int is_local_ether_addr(const u8 *addr)
-{
- return 0x02 & addr[0];
-}
-
-/**
- * is_broadcast_ether_addr - Determine if the Ethernet address is broadcast
- * @addr: Pointer to a six-byte array containing the Ethernet address
- *
- * Return true if the address is the broadcast address.
- */
-static inline int is_broadcast_ether_addr(const u8 *addr)
-{
- return (addr[0] & addr[1] & addr[2] & addr[3] & addr[4] & addr[5]) == 0xff;
-}
-
-/**
- * is_unicast_ether_addr - Determine if the Ethernet address is unicast
- * @addr: Pointer to a six-byte array containing the Ethernet address
- *
- * Return true if the address is a unicast address.
- */
-static inline int is_unicast_ether_addr(const u8 *addr)
-{
- return !is_multicast_ether_addr(addr);
-}
-
-/**
- * is_valid_ether_addr - Determine if the given Ethernet address is valid
- * @addr: Pointer to a six-byte array containing the Ethernet address
- *
- * Check that the Ethernet address (MAC) is not 00:00:00:00:00:00, is not
- * a multicast address, and is not FF:FF:FF:FF:FF:FF.
- *
- * Return true if the address is valid.
- */
-static inline int is_valid_ether_addr(const u8 *addr)
-{
- /* FF:FF:FF:FF:FF:FF is a multicast address so we don't need to
- * explicitly check for it here. */
- return !is_multicast_ether_addr(addr) && !is_zero_ether_addr(addr);
-}
-
-/**
- * random_ether_addr - Generate software assigned random Ethernet address
- * @addr: Pointer to a six-byte array containing the Ethernet address
- *
- * Generate a random Ethernet address (MAC) that is not multicast
- * and has the local assigned bit set.
- */
-static inline void random_ether_addr(u8 *addr)
-{
- get_random_bytes (addr, ETH_ALEN);
- addr [0] &= 0xfe; /* clear multicast bit */
- addr [0] |= 0x02; /* set local assignment bit (IEEE802) */
-}
-
-/**
- * eth_hw_addr_random - Generate software assigned random Ethernet and
- * set device flag
- * @dev: pointer to net_device structure
- *
- * Generate a random Ethernet address (MAC) to be used by a net device
- * and set addr_assign_type so the state can be read by sysfs and be
- * used by userspace.
- */
-static inline void eth_hw_addr_random(struct net_device *dev)
-{
- dev->addr_assign_type |= NET_ADDR_RANDOM;
- random_ether_addr(dev->dev_addr);
-}
-
-/**
- * compare_ether_addr - Compare two Ethernet addresses
- * @addr1: Pointer to a six-byte array containing the Ethernet address
- * @addr2: Pointer other six-byte array containing the Ethernet address
- *
- * Compare two ethernet addresses, returns 0 if equal, non-zero otherwise.
- * Unlike memcmp(), it doesn't return a value suitable for sorting.
- */
-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;
-}
-
-static inline unsigned long zap_last_2bytes(unsigned long value)
-{
-#ifdef __BIG_ENDIAN
- return value >> 16;
-#else
- return value << 16;
-#endif
-}
-
-/**
- * compare_ether_addr_64bits - Compare two Ethernet addresses
- * @addr1: Pointer to an array of 8 bytes
- * @addr2: Pointer to an other array of 8 bytes
- *
- * Compare two ethernet addresses, returns 0 if equal, non-zero otherwise.
- * Unlike memcmp(), it doesn't return a value suitable for sorting.
- * The function doesn't need any conditional branches and possibly uses
- * word memory accesses on CPU allowing cheap unaligned memory reads.
- * arrays = { byte1, byte2, byte3, byte4, byte6, byte7, pad1, pad2}
- *
- * Please note that alignment of addr1 & addr2 is only guaranted to be 16 bits.
- */
-
-static inline unsigned compare_ether_addr_64bits(const u8 addr1[6+2],
- const u8 addr2[6+2])
-{
-#ifdef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
- unsigned long fold = ((*(unsigned long *)addr1) ^
- (*(unsigned long *)addr2));
-
- if (sizeof(fold) == 8)
- return zap_last_2bytes(fold) != 0;
-
- fold |= zap_last_2bytes((*(unsigned long *)(addr1 + 4)) ^
- (*(unsigned long *)(addr2 + 4)));
- return fold != 0;
-#else
- return compare_ether_addr(addr1, addr2);
-#endif
-}
-
-/**
- * is_etherdev_addr - Tell if given Ethernet address belongs to the device.
- * @dev: Pointer to a device structure
- * @addr: Pointer to a six-byte array containing the Ethernet address
- *
- * Compare passed address with all addresses of the device. Return true if the
- * address if one of the device addresses.
- *
- * Note that this function calls compare_ether_addr_64bits() so take care of
- * the right padding.
- */
-static inline bool is_etherdev_addr(const struct net_device *dev,
- const u8 addr[6 + 2])
-{
- struct netdev_hw_addr *ha;
- int res = 1;
-
- rcu_read_lock();
- for_each_dev_addr(dev, ha) {
- res = compare_ether_addr_64bits(addr, ha->addr);
- if (!res)
- break;
- }
- rcu_read_unlock();
- return !res;
-}
-#endif /* __KERNEL__ */
-
-/**
- * compare_ether_header - Compare two Ethernet headers
- * @a: Pointer to Ethernet header
- * @b: Pointer to Ethernet header
- *
- * Compare two ethernet headers, returns 0 if equal.
- * This assumes that the network header (i.e., IP header) is 4-byte
- * aligned OR the platform can handle unaligned access. This is the
- * case for all packets coming into netif_receive_skb or similar
- * entry points.
- */
-
-static inline unsigned long compare_ether_header(const void *a, const void *b)
-{
-#if defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS) && BITS_PER_LONG == 64
- unsigned long fold;
-
- /*
- * We want to compare 14 bytes:
- * [a0 ... a13] ^ [b0 ... b13]
- * Use two long XOR, ORed together, with an overlap of two bytes.
- * [a0 a1 a2 a3 a4 a5 a6 a7 ] ^ [b0 b1 b2 b3 b4 b5 b6 b7 ] |
- * [a6 a7 a8 a9 a10 a11 a12 a13] ^ [b6 b7 b8 b9 b10 b11 b12 b13]
- * This means the [a6 a7] ^ [b6 b7] part is done two times.
- */
- fold = *(unsigned long *)a ^ *(unsigned long *)b;
- fold |= *(unsigned long *)(a + 6) ^ *(unsigned long *)(b + 6);
- return fold;
-#else
- u32 *a32 = (u32 *)((u8 *)a + 2);
- u32 *b32 = (u32 *)((u8 *)b + 2);
-
- return (*(u16 *)a ^ *(u16 *)b) | (a32[0] ^ b32[0]) |
- (a32[1] ^ b32[1]) | (a32[2] ^ b32[2]);
-#endif
-}
-
-#endif /* _LINUX_ETHERDEVICE_H */
diff --git a/ANDROID_3.4.5/include/linux/ethtool.h b/ANDROID_3.4.5/include/linux/ethtool.h
deleted file mode 100644
index f5647b59..00000000
--- a/ANDROID_3.4.5/include/linux/ethtool.h
+++ /dev/null
@@ -1,1210 +0,0 @@
-/*
- * ethtool.h: Defines for Linux ethtool.
- *
- * Copyright (C) 1998 David S. Miller (davem@redhat.com)
- * Copyright 2001 Jeff Garzik <jgarzik@pobox.com>
- * Portions Copyright 2001 Sun Microsystems (thockin@sun.com)
- * Portions Copyright 2002 Intel (eli.kupermann@intel.com,
- * christopher.leech@intel.com,
- * scott.feldman@intel.com)
- * Portions Copyright (C) Sun Microsystems 2008
- */
-
-#ifndef _LINUX_ETHTOOL_H
-#define _LINUX_ETHTOOL_H
-
-#ifdef __KERNEL__
-#include <linux/compat.h>
-#endif
-#include <linux/types.h>
-#include <linux/if_ether.h>
-
-/* This should work for both 32 and 64 bit userland. */
-struct ethtool_cmd {
- __u32 cmd;
- __u32 supported; /* Features this interface supports */
- __u32 advertising; /* Features this interface advertises */
- __u16 speed; /* The forced speed (lower bits) in
- * Mbps. Please use
- * ethtool_cmd_speed()/_set() to
- * access it */
- __u8 duplex; /* Duplex, half or full */
- __u8 port; /* Which connector port */
- __u8 phy_address; /* MDIO PHY address (PRTAD for clause 45).
- * May be read-only or read-write
- * depending on the driver.
- */
- __u8 transceiver; /* Which transceiver to use */
- __u8 autoneg; /* Enable or disable autonegotiation */
- __u8 mdio_support; /* MDIO protocols supported. Read-only.
- * Not set by all drivers.
- */
- __u32 maxtxpkt; /* Tx pkts before generating tx int */
- __u32 maxrxpkt; /* Rx pkts before generating rx int */
- __u16 speed_hi; /* The forced speed (upper
- * bits) in Mbps. Please use
- * ethtool_cmd_speed()/_set() to
- * access it */
- __u8 eth_tp_mdix;
- __u8 reserved2;
- __u32 lp_advertising; /* Features the link partner advertises */
- __u32 reserved[2];
-};
-
-static inline void ethtool_cmd_speed_set(struct ethtool_cmd *ep,
- __u32 speed)
-{
-
- ep->speed = (__u16)speed;
- ep->speed_hi = (__u16)(speed >> 16);
-}
-
-static inline __u32 ethtool_cmd_speed(const struct ethtool_cmd *ep)
-{
- return (ep->speed_hi << 16) | ep->speed;
-}
-
-/* Device supports clause 22 register access to PHY or peripherals
- * using the interface defined in <linux/mii.h>. This should not be
- * set if there are known to be no such peripherals present or if
- * the driver only emulates clause 22 registers for compatibility.
- */
-#define ETH_MDIO_SUPPORTS_C22 1
-
-/* Device supports clause 45 register access to PHY or peripherals
- * using the interface defined in <linux/mii.h> and <linux/mdio.h>.
- * This should not be set if there are known to be no such peripherals
- * present.
- */
-#define ETH_MDIO_SUPPORTS_C45 2
-
-#define ETHTOOL_FWVERS_LEN 32
-#define ETHTOOL_BUSINFO_LEN 32
-/* these strings are set to whatever the driver author decides... */
-struct ethtool_drvinfo {
- __u32 cmd;
- char driver[32]; /* driver short name, "tulip", "eepro100" */
- char version[32]; /* driver version string */
- char fw_version[ETHTOOL_FWVERS_LEN]; /* firmware version string */
- char bus_info[ETHTOOL_BUSINFO_LEN]; /* Bus info for this IF. */
- /* For PCI devices, use pci_name(pci_dev). */
- char reserved1[32];
- char reserved2[12];
- /*
- * Some struct members below are filled in
- * using ops->get_sset_count(). Obtaining
- * this info from ethtool_drvinfo is now
- * deprecated; Use ETHTOOL_GSSET_INFO
- * instead.
- */
- __u32 n_priv_flags; /* number of flags valid in ETHTOOL_GPFLAGS */
- __u32 n_stats; /* number of u64's from ETHTOOL_GSTATS */
- __u32 testinfo_len;
- __u32 eedump_len; /* Size of data from ETHTOOL_GEEPROM (bytes) */
- __u32 regdump_len; /* Size of data from ETHTOOL_GREGS (bytes) */
-};
-
-#define SOPASS_MAX 6
-/* wake-on-lan settings */
-struct ethtool_wolinfo {
- __u32 cmd;
- __u32 supported;
- __u32 wolopts;
- __u8 sopass[SOPASS_MAX]; /* SecureOn(tm) password */
-};
-
-/* for passing single values */
-struct ethtool_value {
- __u32 cmd;
- __u32 data;
-};
-
-/* for passing big chunks of data */
-struct ethtool_regs {
- __u32 cmd;
- __u32 version; /* driver-specific, indicates different chips/revs */
- __u32 len; /* bytes */
- __u8 data[0];
-};
-
-/* for passing EEPROM chunks */
-struct ethtool_eeprom {
- __u32 cmd;
- __u32 magic;
- __u32 offset; /* in bytes */
- __u32 len; /* in bytes */
- __u8 data[0];
-};
-
-/**
- * struct ethtool_coalesce - coalescing parameters for IRQs and stats updates
- * @cmd: ETHTOOL_{G,S}COALESCE
- * @rx_coalesce_usecs: How many usecs to delay an RX interrupt after
- * a packet arrives.
- * @rx_max_coalesced_frames: Maximum number of packets to receive
- * before an RX interrupt.
- * @rx_coalesce_usecs_irq: Same as @rx_coalesce_usecs, except that
- * this value applies while an IRQ is being serviced by the host.
- * @rx_max_coalesced_frames_irq: Same as @rx_max_coalesced_frames,
- * except that this value applies while an IRQ is being serviced
- * by the host.
- * @tx_coalesce_usecs: How many usecs to delay a TX interrupt after
- * a packet is sent.
- * @tx_max_coalesced_frames: Maximum number of packets to be sent
- * before a TX interrupt.
- * @tx_coalesce_usecs_irq: Same as @tx_coalesce_usecs, except that
- * this value applies while an IRQ is being serviced by the host.
- * @tx_max_coalesced_frames_irq: Same as @tx_max_coalesced_frames,
- * except that this value applies while an IRQ is being serviced
- * by the host.
- * @stats_block_coalesce_usecs: How many usecs to delay in-memory
- * statistics block updates. Some drivers do not have an
- * in-memory statistic block, and in such cases this value is
- * ignored. This value must not be zero.
- * @use_adaptive_rx_coalesce: Enable adaptive RX coalescing.
- * @use_adaptive_tx_coalesce: Enable adaptive TX coalescing.
- * @pkt_rate_low: Threshold for low packet rate (packets per second).
- * @rx_coalesce_usecs_low: How many usecs to delay an RX interrupt after
- * a packet arrives, when the packet rate is below @pkt_rate_low.
- * @rx_max_coalesced_frames_low: Maximum number of packets to be received
- * before an RX interrupt, when the packet rate is below @pkt_rate_low.
- * @tx_coalesce_usecs_low: How many usecs to delay a TX interrupt after
- * a packet is sent, when the packet rate is below @pkt_rate_low.
- * @tx_max_coalesced_frames_low: Maximum nuumber of packets to be sent before
- * a TX interrupt, when the packet rate is below @pkt_rate_low.
- * @pkt_rate_high: Threshold for high packet rate (packets per second).
- * @rx_coalesce_usecs_high: How many usecs to delay an RX interrupt after
- * a packet arrives, when the packet rate is above @pkt_rate_high.
- * @rx_max_coalesced_frames_high: Maximum number of packets to be received
- * before an RX interrupt, when the packet rate is above @pkt_rate_high.
- * @tx_coalesce_usecs_high: How many usecs to delay a TX interrupt after
- * a packet is sent, when the packet rate is above @pkt_rate_high.
- * @tx_max_coalesced_frames_high: Maximum number of packets to be sent before
- * a TX interrupt, when the packet rate is above @pkt_rate_high.
- * @rate_sample_interval: How often to do adaptive coalescing packet rate
- * sampling, measured in seconds. Must not be zero.
- *
- * Each pair of (usecs, max_frames) fields specifies this exit
- * condition for interrupt coalescing:
- * (usecs > 0 && time_since_first_completion >= usecs) ||
- * (max_frames > 0 && completed_frames >= max_frames)
- * It is illegal to set both usecs and max_frames to zero as this
- * would cause interrupts to never be generated. To disable
- * coalescing, set usecs = 0 and max_frames = 1.
- *
- * Some implementations ignore the value of max_frames and use the
- * condition:
- * time_since_first_completion >= usecs
- * This is deprecated. Drivers for hardware that does not support
- * counting completions should validate that max_frames == !rx_usecs.
- *
- * Adaptive RX/TX coalescing is an algorithm implemented by some
- * drivers to improve latency under low packet rates and improve
- * throughput under high packet rates. Some drivers only implement
- * one of RX or TX adaptive coalescing. Anything not implemented by
- * the driver causes these values to be silently ignored.
- *
- * When the packet rate is below @pkt_rate_high but above
- * @pkt_rate_low (both measured in packets per second) the
- * normal {rx,tx}_* coalescing parameters are used.
- */
-struct ethtool_coalesce {
- __u32 cmd;
- __u32 rx_coalesce_usecs;
- __u32 rx_max_coalesced_frames;
- __u32 rx_coalesce_usecs_irq;
- __u32 rx_max_coalesced_frames_irq;
- __u32 tx_coalesce_usecs;
- __u32 tx_max_coalesced_frames;
- __u32 tx_coalesce_usecs_irq;
- __u32 tx_max_coalesced_frames_irq;
- __u32 stats_block_coalesce_usecs;
- __u32 use_adaptive_rx_coalesce;
- __u32 use_adaptive_tx_coalesce;
- __u32 pkt_rate_low;
- __u32 rx_coalesce_usecs_low;
- __u32 rx_max_coalesced_frames_low;
- __u32 tx_coalesce_usecs_low;
- __u32 tx_max_coalesced_frames_low;
- __u32 pkt_rate_high;
- __u32 rx_coalesce_usecs_high;
- __u32 rx_max_coalesced_frames_high;
- __u32 tx_coalesce_usecs_high;
- __u32 tx_max_coalesced_frames_high;
- __u32 rate_sample_interval;
-};
-
-/* for configuring RX/TX ring parameters */
-struct ethtool_ringparam {
- __u32 cmd; /* ETHTOOL_{G,S}RINGPARAM */
-
- /* Read only attributes. These indicate the maximum number
- * of pending RX/TX ring entries the driver will allow the
- * user to set.
- */
- __u32 rx_max_pending;
- __u32 rx_mini_max_pending;
- __u32 rx_jumbo_max_pending;
- __u32 tx_max_pending;
-
- /* Values changeable by the user. The valid values are
- * in the range 1 to the "*_max_pending" counterpart above.
- */
- __u32 rx_pending;
- __u32 rx_mini_pending;
- __u32 rx_jumbo_pending;
- __u32 tx_pending;
-};
-
-/**
- * struct ethtool_channels - configuring number of network channel
- * @cmd: ETHTOOL_{G,S}CHANNELS
- * @max_rx: Read only. Maximum number of receive channel the driver support.
- * @max_tx: Read only. Maximum number of transmit channel the driver support.
- * @max_other: Read only. Maximum number of other channel the driver support.
- * @max_combined: Read only. Maximum number of combined channel the driver
- * support. Set of queues RX, TX or other.
- * @rx_count: Valid values are in the range 1 to the max_rx.
- * @tx_count: Valid values are in the range 1 to the max_tx.
- * @other_count: Valid values are in the range 1 to the max_other.
- * @combined_count: Valid values are in the range 1 to the max_combined.
- *
- * This can be used to configure RX, TX and other channels.
- */
-
-struct ethtool_channels {
- __u32 cmd;
- __u32 max_rx;
- __u32 max_tx;
- __u32 max_other;
- __u32 max_combined;
- __u32 rx_count;
- __u32 tx_count;
- __u32 other_count;
- __u32 combined_count;
-};
-
-/* for configuring link flow control parameters */
-struct ethtool_pauseparam {
- __u32 cmd; /* ETHTOOL_{G,S}PAUSEPARAM */
-
- /* If the link is being auto-negotiated (via ethtool_cmd.autoneg
- * being true) the user may set 'autoneg' here non-zero to have the
- * pause parameters be auto-negotiated too. In such a case, the
- * {rx,tx}_pause values below determine what capabilities are
- * advertised.
- *
- * If 'autoneg' is zero or the link is not being auto-negotiated,
- * then {rx,tx}_pause force the driver to use/not-use pause
- * flow control.
- */
- __u32 autoneg;
- __u32 rx_pause;
- __u32 tx_pause;
-};
-
-#define ETH_GSTRING_LEN 32
-enum ethtool_stringset {
- ETH_SS_TEST = 0,
- ETH_SS_STATS,
- ETH_SS_PRIV_FLAGS,
- ETH_SS_NTUPLE_FILTERS, /* Do not use, GRXNTUPLE is now deprecated */
- ETH_SS_FEATURES,
-};
-
-/* for passing string sets for data tagging */
-struct ethtool_gstrings {
- __u32 cmd; /* ETHTOOL_GSTRINGS */
- __u32 string_set; /* string set id e.c. ETH_SS_TEST, etc*/
- __u32 len; /* number of strings in the string set */
- __u8 data[0];
-};
-
-struct ethtool_sset_info {
- __u32 cmd; /* ETHTOOL_GSSET_INFO */
- __u32 reserved;
- __u64 sset_mask; /* input: each bit selects an sset to query */
- /* output: each bit a returned sset */
- __u32 data[0]; /* ETH_SS_xxx count, in order, based on bits
- in sset_mask. One bit implies one
- __u32, two bits implies two
- __u32's, etc. */
-};
-
-/**
- * enum ethtool_test_flags - flags definition of ethtool_test
- * @ETH_TEST_FL_OFFLINE: if set perform online and offline tests, otherwise
- * only online tests.
- * @ETH_TEST_FL_FAILED: Driver set this flag if test fails.
- * @ETH_TEST_FL_EXTERNAL_LB: Application request to perform external loopback
- * test.
- * @ETH_TEST_FL_EXTERNAL_LB_DONE: Driver performed the external loopback test
- */
-
-enum ethtool_test_flags {
- ETH_TEST_FL_OFFLINE = (1 << 0),
- ETH_TEST_FL_FAILED = (1 << 1),
- ETH_TEST_FL_EXTERNAL_LB = (1 << 2),
- ETH_TEST_FL_EXTERNAL_LB_DONE = (1 << 3),
-};
-
-/* for requesting NIC test and getting results*/
-struct ethtool_test {
- __u32 cmd; /* ETHTOOL_TEST */
- __u32 flags; /* ETH_TEST_FL_xxx */
- __u32 reserved;
- __u32 len; /* result length, in number of u64 elements */
- __u64 data[0];
-};
-
-/* for dumping NIC-specific statistics */
-struct ethtool_stats {
- __u32 cmd; /* ETHTOOL_GSTATS */
- __u32 n_stats; /* number of u64's being returned */
- __u64 data[0];
-};
-
-struct ethtool_perm_addr {
- __u32 cmd; /* ETHTOOL_GPERMADDR */
- __u32 size;
- __u8 data[0];
-};
-
-/* boolean flags controlling per-interface behavior characteristics.
- * When reading, the flag indicates whether or not a certain behavior
- * is enabled/present. When writing, the flag indicates whether
- * or not the driver should turn on (set) or off (clear) a behavior.
- *
- * Some behaviors may read-only (unconditionally absent or present).
- * If such is the case, return EINVAL in the set-flags operation if the
- * flag differs from the read-only value.
- */
-enum ethtool_flags {
- ETH_FLAG_TXVLAN = (1 << 7), /* TX VLAN offload enabled */
- ETH_FLAG_RXVLAN = (1 << 8), /* RX VLAN offload enabled */
- ETH_FLAG_LRO = (1 << 15), /* LRO is enabled */
- ETH_FLAG_NTUPLE = (1 << 27), /* N-tuple filters enabled */
- ETH_FLAG_RXHASH = (1 << 28),
-};
-
-/* The following structures are for supporting RX network flow
- * classification and RX n-tuple configuration. Note, all multibyte
- * fields, e.g., ip4src, ip4dst, psrc, pdst, spi, etc. are expected to
- * be in network byte order.
- */
-
-/**
- * struct ethtool_tcpip4_spec - flow specification for TCP/IPv4 etc.
- * @ip4src: Source host
- * @ip4dst: Destination host
- * @psrc: Source port
- * @pdst: Destination port
- * @tos: Type-of-service
- *
- * This can be used to specify a TCP/IPv4, UDP/IPv4 or SCTP/IPv4 flow.
- */
-struct ethtool_tcpip4_spec {
- __be32 ip4src;
- __be32 ip4dst;
- __be16 psrc;
- __be16 pdst;
- __u8 tos;
-};
-
-/**
- * struct ethtool_ah_espip4_spec - flow specification for IPsec/IPv4
- * @ip4src: Source host
- * @ip4dst: Destination host
- * @spi: Security parameters index
- * @tos: Type-of-service
- *
- * This can be used to specify an IPsec transport or tunnel over IPv4.
- */
-struct ethtool_ah_espip4_spec {
- __be32 ip4src;
- __be32 ip4dst;
- __be32 spi;
- __u8 tos;
-};
-
-#define ETH_RX_NFC_IP4 1
-
-/**
- * struct ethtool_usrip4_spec - general flow specification for IPv4
- * @ip4src: Source host
- * @ip4dst: Destination host
- * @l4_4_bytes: First 4 bytes of transport (layer 4) header
- * @tos: Type-of-service
- * @ip_ver: Value must be %ETH_RX_NFC_IP4; mask must be 0
- * @proto: Transport protocol number; mask must be 0
- */
-struct ethtool_usrip4_spec {
- __be32 ip4src;
- __be32 ip4dst;
- __be32 l4_4_bytes;
- __u8 tos;
- __u8 ip_ver;
- __u8 proto;
-};
-
-union ethtool_flow_union {
- struct ethtool_tcpip4_spec tcp_ip4_spec;
- struct ethtool_tcpip4_spec udp_ip4_spec;
- struct ethtool_tcpip4_spec sctp_ip4_spec;
- struct ethtool_ah_espip4_spec ah_ip4_spec;
- struct ethtool_ah_espip4_spec esp_ip4_spec;
- struct ethtool_usrip4_spec usr_ip4_spec;
- struct ethhdr ether_spec;
- __u8 hdata[60];
-};
-
-struct ethtool_flow_ext {
- __be16 vlan_etype;
- __be16 vlan_tci;
- __be32 data[2];
-};
-
-/**
- * struct ethtool_rx_flow_spec - classification rule for RX flows
- * @flow_type: Type of match to perform, e.g. %TCP_V4_FLOW
- * @h_u: Flow fields to match (dependent on @flow_type)
- * @h_ext: Additional fields to match
- * @m_u: Masks for flow field bits to be matched
- * @m_ext: Masks for additional field bits to be matched
- * Note, all additional fields must be ignored unless @flow_type
- * includes the %FLOW_EXT flag.
- * @ring_cookie: RX ring/queue index to deliver to, or %RX_CLS_FLOW_DISC
- * if packets should be discarded
- * @location: Location of rule in the table. Locations must be
- * numbered such that a flow matching multiple rules will be
- * classified according to the first (lowest numbered) rule.
- */
-struct ethtool_rx_flow_spec {
- __u32 flow_type;
- union ethtool_flow_union h_u;
- struct ethtool_flow_ext h_ext;
- union ethtool_flow_union m_u;
- struct ethtool_flow_ext m_ext;
- __u64 ring_cookie;
- __u32 location;
-};
-
-/**
- * struct ethtool_rxnfc - command to get or set RX flow classification rules
- * @cmd: Specific command number - %ETHTOOL_GRXFH, %ETHTOOL_SRXFH,
- * %ETHTOOL_GRXRINGS, %ETHTOOL_GRXCLSRLCNT, %ETHTOOL_GRXCLSRULE,
- * %ETHTOOL_GRXCLSRLALL, %ETHTOOL_SRXCLSRLDEL or %ETHTOOL_SRXCLSRLINS
- * @flow_type: Type of flow to be affected, e.g. %TCP_V4_FLOW
- * @data: Command-dependent value
- * @fs: Flow classification rule
- * @rule_cnt: Number of rules to be affected
- * @rule_locs: Array of used rule locations
- *
- * For %ETHTOOL_GRXFH and %ETHTOOL_SRXFH, @data is a bitmask indicating
- * the fields included in the flow hash, e.g. %RXH_IP_SRC. The following
- * structure fields must not be used.
- *
- * For %ETHTOOL_GRXRINGS, @data is set to the number of RX rings/queues
- * on return.
- *
- * For %ETHTOOL_GRXCLSRLCNT, @rule_cnt is set to the number of defined
- * rules on return. If @data is non-zero on return then it is the
- * size of the rule table, plus the flag %RX_CLS_LOC_SPECIAL if the
- * driver supports any special location values. If that flag is not
- * set in @data then special location values should not be used.
- *
- * For %ETHTOOL_GRXCLSRULE, @fs.@location specifies the location of an
- * existing rule on entry and @fs contains the rule on return.
- *
- * For %ETHTOOL_GRXCLSRLALL, @rule_cnt specifies the array size of the
- * user buffer for @rule_locs on entry. On return, @data is the size
- * of the rule table, @rule_cnt is the number of defined rules, and
- * @rule_locs contains the locations of the defined rules. Drivers
- * must use the second parameter to get_rxnfc() instead of @rule_locs.
- *
- * For %ETHTOOL_SRXCLSRLINS, @fs specifies the rule to add or update.
- * @fs.@location either specifies the location to use or is a special
- * location value with %RX_CLS_LOC_SPECIAL flag set. On return,
- * @fs.@location is the actual rule location.
- *
- * For %ETHTOOL_SRXCLSRLDEL, @fs.@location specifies the location of an
- * existing rule on entry.
- *
- * A driver supporting the special location values for
- * %ETHTOOL_SRXCLSRLINS may add the rule at any suitable unused
- * location, and may remove a rule at a later location (lower
- * priority) that matches exactly the same set of flows. The special
- * values are: %RX_CLS_LOC_ANY, selecting any location;
- * %RX_CLS_LOC_FIRST, selecting the first suitable location (maximum
- * priority); and %RX_CLS_LOC_LAST, selecting the last suitable
- * location (minimum priority). Additional special values may be
- * defined in future and drivers must return -%EINVAL for any
- * unrecognised value.
- */
-struct ethtool_rxnfc {
- __u32 cmd;
- __u32 flow_type;
- __u64 data;
- struct ethtool_rx_flow_spec fs;
- __u32 rule_cnt;
- __u32 rule_locs[0];
-};
-
-#ifdef __KERNEL__
-#ifdef CONFIG_COMPAT
-
-struct compat_ethtool_rx_flow_spec {
- u32 flow_type;
- union ethtool_flow_union h_u;
- struct ethtool_flow_ext h_ext;
- union ethtool_flow_union m_u;
- struct ethtool_flow_ext m_ext;
- compat_u64 ring_cookie;
- u32 location;
-};
-
-struct compat_ethtool_rxnfc {
- u32 cmd;
- u32 flow_type;
- compat_u64 data;
- struct compat_ethtool_rx_flow_spec fs;
- u32 rule_cnt;
- u32 rule_locs[0];
-};
-
-#endif /* CONFIG_COMPAT */
-#endif /* __KERNEL__ */
-
-/**
- * struct ethtool_rxfh_indir - command to get or set RX flow hash indirection
- * @cmd: Specific command number - %ETHTOOL_GRXFHINDIR or %ETHTOOL_SRXFHINDIR
- * @size: On entry, the array size of the user buffer, which may be zero.
- * On return from %ETHTOOL_GRXFHINDIR, the array size of the hardware
- * indirection table.
- * @ring_index: RX ring/queue index for each hash value
- *
- * For %ETHTOOL_GRXFHINDIR, a @size of zero means that only the size
- * should be returned. For %ETHTOOL_SRXFHINDIR, a @size of zero means
- * the table should be reset to default values. This last feature
- * is not supported by the original implementations.
- */
-struct ethtool_rxfh_indir {
- __u32 cmd;
- __u32 size;
- __u32 ring_index[0];
-};
-
-/**
- * struct ethtool_rx_ntuple_flow_spec - specification for RX flow filter
- * @flow_type: Type of match to perform, e.g. %TCP_V4_FLOW
- * @h_u: Flow field values to match (dependent on @flow_type)
- * @m_u: Masks for flow field value bits to be ignored
- * @vlan_tag: VLAN tag to match
- * @vlan_tag_mask: Mask for VLAN tag bits to be ignored
- * @data: Driver-dependent data to match
- * @data_mask: Mask for driver-dependent data bits to be ignored
- * @action: RX ring/queue index to deliver to (non-negative) or other action
- * (negative, e.g. %ETHTOOL_RXNTUPLE_ACTION_DROP)
- *
- * For flow types %TCP_V4_FLOW, %UDP_V4_FLOW and %SCTP_V4_FLOW, where
- * a field value and mask are both zero this is treated as if all mask
- * bits are set i.e. the field is ignored.
- */
-struct ethtool_rx_ntuple_flow_spec {
- __u32 flow_type;
- union {
- struct ethtool_tcpip4_spec tcp_ip4_spec;
- struct ethtool_tcpip4_spec udp_ip4_spec;
- struct ethtool_tcpip4_spec sctp_ip4_spec;
- struct ethtool_ah_espip4_spec ah_ip4_spec;
- struct ethtool_ah_espip4_spec esp_ip4_spec;
- struct ethtool_usrip4_spec usr_ip4_spec;
- struct ethhdr ether_spec;
- __u8 hdata[72];
- } h_u, m_u;
-
- __u16 vlan_tag;
- __u16 vlan_tag_mask;
- __u64 data;
- __u64 data_mask;
-
- __s32 action;
-#define ETHTOOL_RXNTUPLE_ACTION_DROP (-1) /* drop packet */
-#define ETHTOOL_RXNTUPLE_ACTION_CLEAR (-2) /* clear filter */
-};
-
-/**
- * struct ethtool_rx_ntuple - command to set or clear RX flow filter
- * @cmd: Command number - %ETHTOOL_SRXNTUPLE
- * @fs: Flow filter specification
- */
-struct ethtool_rx_ntuple {
- __u32 cmd;
- struct ethtool_rx_ntuple_flow_spec fs;
-};
-
-#define ETHTOOL_FLASH_MAX_FILENAME 128
-enum ethtool_flash_op_type {
- ETHTOOL_FLASH_ALL_REGIONS = 0,
-};
-
-/* for passing firmware flashing related parameters */
-struct ethtool_flash {
- __u32 cmd;
- __u32 region;
- char data[ETHTOOL_FLASH_MAX_FILENAME];
-};
-
-/**
- * struct ethtool_dump - used for retrieving, setting device dump
- * @cmd: Command number - %ETHTOOL_GET_DUMP_FLAG, %ETHTOOL_GET_DUMP_DATA, or
- * %ETHTOOL_SET_DUMP
- * @version: FW version of the dump, filled in by driver
- * @flag: driver dependent flag for dump setting, filled in by driver during
- * get and filled in by ethtool for set operation
- * @len: length of dump data, used as the length of the user buffer on entry to
- * %ETHTOOL_GET_DUMP_DATA and this is returned as dump length by driver
- * for %ETHTOOL_GET_DUMP_FLAG command
- * @data: data collected for get dump data operation
- */
-struct ethtool_dump {
- __u32 cmd;
- __u32 version;
- __u32 flag;
- __u32 len;
- __u8 data[0];
-};
-
-/* for returning and changing feature sets */
-
-/**
- * struct ethtool_get_features_block - block with state of 32 features
- * @available: mask of changeable features
- * @requested: mask of features requested to be enabled if possible
- * @active: mask of currently enabled features
- * @never_changed: mask of features not changeable for any device
- */
-struct ethtool_get_features_block {
- __u32 available;
- __u32 requested;
- __u32 active;
- __u32 never_changed;
-};
-
-/**
- * struct ethtool_gfeatures - command to get state of device's features
- * @cmd: command number = %ETHTOOL_GFEATURES
- * @size: in: number of elements in the features[] array;
- * out: number of elements in features[] needed to hold all features
- * @features: state of features
- */
-struct ethtool_gfeatures {
- __u32 cmd;
- __u32 size;
- struct ethtool_get_features_block features[0];
-};
-
-/**
- * struct ethtool_set_features_block - block with request for 32 features
- * @valid: mask of features to be changed
- * @requested: values of features to be changed
- */
-struct ethtool_set_features_block {
- __u32 valid;
- __u32 requested;
-};
-
-/**
- * struct ethtool_sfeatures - command to request change in device's features
- * @cmd: command number = %ETHTOOL_SFEATURES
- * @size: array size of the features[] array
- * @features: feature change masks
- */
-struct ethtool_sfeatures {
- __u32 cmd;
- __u32 size;
- struct ethtool_set_features_block features[0];
-};
-
-/*
- * %ETHTOOL_SFEATURES changes features present in features[].valid to the
- * values of corresponding bits in features[].requested. Bits in .requested
- * not set in .valid or not changeable are ignored.
- *
- * Returns %EINVAL when .valid contains undefined or never-changeable bits
- * or size is not equal to required number of features words (32-bit blocks).
- * Returns >= 0 if request was completed; bits set in the value mean:
- * %ETHTOOL_F_UNSUPPORTED - there were bits set in .valid that are not
- * changeable (not present in %ETHTOOL_GFEATURES' features[].available)
- * those bits were ignored.
- * %ETHTOOL_F_WISH - some or all changes requested were recorded but the
- * resulting state of bits masked by .valid is not equal to .requested.
- * Probably there are other device-specific constraints on some features
- * in the set. When %ETHTOOL_F_UNSUPPORTED is set, .valid is considered
- * here as though ignored bits were cleared.
- * %ETHTOOL_F_COMPAT - some or all changes requested were made by calling
- * compatibility functions. Requested offload state cannot be properly
- * managed by kernel.
- *
- * Meaning of bits in the masks are obtained by %ETHTOOL_GSSET_INFO (number of
- * bits in the arrays - always multiple of 32) and %ETHTOOL_GSTRINGS commands
- * for ETH_SS_FEATURES string set. First entry in the table corresponds to least
- * significant bit in features[0] fields. Empty strings mark undefined features.
- */
-enum ethtool_sfeatures_retval_bits {
- ETHTOOL_F_UNSUPPORTED__BIT,
- ETHTOOL_F_WISH__BIT,
- ETHTOOL_F_COMPAT__BIT,
-};
-
-#define ETHTOOL_F_UNSUPPORTED (1 << ETHTOOL_F_UNSUPPORTED__BIT)
-#define ETHTOOL_F_WISH (1 << ETHTOOL_F_WISH__BIT)
-#define ETHTOOL_F_COMPAT (1 << ETHTOOL_F_COMPAT__BIT)
-
-#ifdef __KERNEL__
-
-#include <linux/rculist.h>
-
-extern int __ethtool_get_settings(struct net_device *dev,
- struct ethtool_cmd *cmd);
-
-/**
- * enum ethtool_phys_id_state - indicator state for physical identification
- * @ETHTOOL_ID_INACTIVE: Physical ID indicator should be deactivated
- * @ETHTOOL_ID_ACTIVE: Physical ID indicator should be activated
- * @ETHTOOL_ID_ON: LED should be turned on (used iff %ETHTOOL_ID_ACTIVE
- * is not supported)
- * @ETHTOOL_ID_OFF: LED should be turned off (used iff %ETHTOOL_ID_ACTIVE
- * is not supported)
- */
-enum ethtool_phys_id_state {
- ETHTOOL_ID_INACTIVE,
- ETHTOOL_ID_ACTIVE,
- ETHTOOL_ID_ON,
- ETHTOOL_ID_OFF
-};
-
-struct net_device;
-
-/* Some generic methods drivers may use in their ethtool_ops */
-u32 ethtool_op_get_link(struct net_device *dev);
-
-/**
- * ethtool_rxfh_indir_default - get default value for RX flow hash indirection
- * @index: Index in RX flow hash indirection table
- * @n_rx_rings: Number of RX rings to use
- *
- * This function provides the default policy for RX flow hash indirection.
- */
-static inline u32 ethtool_rxfh_indir_default(u32 index, u32 n_rx_rings)
-{
- return index % n_rx_rings;
-}
-
-/**
- * struct ethtool_ops - optional netdev operations
- * @get_settings: Get various device settings including Ethernet link
- * settings. The @cmd parameter is expected to have been cleared
- * before get_settings is called. Returns a negative error code or
- * zero.
- * @set_settings: Set various device settings including Ethernet link
- * settings. Returns a negative error code or zero.
- * @get_drvinfo: Report driver/device information. Should only set the
- * @driver, @version, @fw_version and @bus_info fields. If not
- * implemented, the @driver and @bus_info fields will be filled in
- * according to the netdev's parent device.
- * @get_regs_len: Get buffer length required for @get_regs
- * @get_regs: Get device registers
- * @get_wol: Report whether Wake-on-Lan is enabled
- * @set_wol: Turn Wake-on-Lan on or off. Returns a negative error code
- * or zero.
- * @get_msglevel: Report driver message level. This should be the value
- * of the @msg_enable field used by netif logging functions.
- * @set_msglevel: Set driver message level
- * @nway_reset: Restart autonegotiation. Returns a negative error code
- * or zero.
- * @get_link: Report whether physical link is up. Will only be called if
- * the netdev is up. Should usually be set to ethtool_op_get_link(),
- * which uses netif_carrier_ok().
- * @get_eeprom: Read data from the device EEPROM.
- * Should fill in the magic field. Don't need to check len for zero
- * or wraparound. Fill in the data argument with the eeprom values
- * from offset to offset + len. Update len to the amount read.
- * Returns an error or zero.
- * @set_eeprom: Write data to the device EEPROM.
- * Should validate the magic field. Don't need to check len for zero
- * or wraparound. Update len to the amount written. Returns an error
- * or zero.
- * @get_coalesce: Get interrupt coalescing parameters. Returns a negative
- * error code or zero.
- * @set_coalesce: Set interrupt coalescing parameters. Returns a negative
- * error code or zero.
- * @get_ringparam: Report ring sizes
- * @set_ringparam: Set ring sizes. Returns a negative error code or zero.
- * @get_pauseparam: Report pause parameters
- * @set_pauseparam: Set pause parameters. Returns a negative error code
- * or zero.
- * @self_test: Run specified self-tests
- * @get_strings: Return a set of strings that describe the requested objects
- * @set_phys_id: Identify the physical devices, e.g. by flashing an LED
- * attached to it. The implementation may update the indicator
- * asynchronously or synchronously, but in either case it must return
- * quickly. It is initially called with the argument %ETHTOOL_ID_ACTIVE,
- * and must either activate asynchronous updates and return zero, return
- * a negative error or return a positive frequency for synchronous
- * indication (e.g. 1 for one on/off cycle per second). If it returns
- * a frequency then it will be called again at intervals with the
- * argument %ETHTOOL_ID_ON or %ETHTOOL_ID_OFF and should set the state of
- * the indicator accordingly. Finally, it is called with the argument
- * %ETHTOOL_ID_INACTIVE and must deactivate the indicator. Returns a
- * negative error code or zero.
- * @get_ethtool_stats: Return extended statistics about the device.
- * This is only useful if the device maintains statistics not
- * included in &struct rtnl_link_stats64.
- * @begin: Function to be called before any other operation. Returns a
- * negative error code or zero.
- * @complete: Function to be called after any other operation except
- * @begin. Will be called even if the other operation failed.
- * @get_priv_flags: Report driver-specific feature flags.
- * @set_priv_flags: Set driver-specific feature flags. Returns a negative
- * error code or zero.
- * @get_sset_count: Get number of strings that @get_strings will write.
- * @get_rxnfc: Get RX flow classification rules. Returns a negative
- * error code or zero.
- * @set_rxnfc: Set RX flow classification rules. Returns a negative
- * error code or zero.
- * @flash_device: Write a firmware image to device's flash memory.
- * Returns a negative error code or zero.
- * @reset: Reset (part of) the device, as specified by a bitmask of
- * flags from &enum ethtool_reset_flags. Returns a negative
- * error code or zero.
- * @get_rxfh_indir_size: Get the size of the RX flow hash indirection table.
- * Returns zero if not supported for this specific device.
- * @get_rxfh_indir: Get the contents of the RX flow hash indirection table.
- * Will not be called if @get_rxfh_indir_size returns zero.
- * Returns a negative error code or zero.
- * @set_rxfh_indir: Set the contents of the RX flow hash indirection table.
- * Will not be called if @get_rxfh_indir_size returns zero.
- * Returns a negative error code or zero.
- * @get_channels: Get number of channels.
- * @set_channels: Set number of channels. Returns a negative error code or
- * zero.
- * @get_dump_flag: Get dump flag indicating current dump length, version,
- * and flag of the device.
- * @get_dump_data: Get dump data.
- * @set_dump: Set dump specific flags to the device.
- *
- * All operations are optional (i.e. the function pointer may be set
- * to %NULL) and callers must take this into account. Callers must
- * hold the RTNL lock.
- *
- * See the structures used by these operations for further documentation.
- *
- * See &struct net_device and &struct net_device_ops for documentation
- * of the generic netdev features interface.
- */
-struct ethtool_ops {
- int (*get_settings)(struct net_device *, struct ethtool_cmd *);
- int (*set_settings)(struct net_device *, struct ethtool_cmd *);
- void (*get_drvinfo)(struct net_device *, struct ethtool_drvinfo *);
- int (*get_regs_len)(struct net_device *);
- void (*get_regs)(struct net_device *, struct ethtool_regs *, void *);
- void (*get_wol)(struct net_device *, struct ethtool_wolinfo *);
- int (*set_wol)(struct net_device *, struct ethtool_wolinfo *);
- u32 (*get_msglevel)(struct net_device *);
- void (*set_msglevel)(struct net_device *, u32);
- int (*nway_reset)(struct net_device *);
- u32 (*get_link)(struct net_device *);
- int (*get_eeprom_len)(struct net_device *);
- int (*get_eeprom)(struct net_device *,
- struct ethtool_eeprom *, u8 *);
- int (*set_eeprom)(struct net_device *,
- struct ethtool_eeprom *, u8 *);
- int (*get_coalesce)(struct net_device *, struct ethtool_coalesce *);
- int (*set_coalesce)(struct net_device *, struct ethtool_coalesce *);
- void (*get_ringparam)(struct net_device *,
- struct ethtool_ringparam *);
- int (*set_ringparam)(struct net_device *,
- struct ethtool_ringparam *);
- void (*get_pauseparam)(struct net_device *,
- struct ethtool_pauseparam*);
- int (*set_pauseparam)(struct net_device *,
- struct ethtool_pauseparam*);
- void (*self_test)(struct net_device *, struct ethtool_test *, u64 *);
- void (*get_strings)(struct net_device *, u32 stringset, u8 *);
- int (*set_phys_id)(struct net_device *, enum ethtool_phys_id_state);
- void (*get_ethtool_stats)(struct net_device *,
- struct ethtool_stats *, u64 *);
- int (*begin)(struct net_device *);
- void (*complete)(struct net_device *);
- u32 (*get_priv_flags)(struct net_device *);
- int (*set_priv_flags)(struct net_device *, u32);
- int (*get_sset_count)(struct net_device *, int);
- int (*get_rxnfc)(struct net_device *,
- struct ethtool_rxnfc *, u32 *rule_locs);
- int (*set_rxnfc)(struct net_device *, struct ethtool_rxnfc *);
- int (*flash_device)(struct net_device *, struct ethtool_flash *);
- int (*reset)(struct net_device *, u32 *);
- u32 (*get_rxfh_indir_size)(struct net_device *);
- int (*get_rxfh_indir)(struct net_device *, u32 *);
- int (*set_rxfh_indir)(struct net_device *, const u32 *);
- void (*get_channels)(struct net_device *, struct ethtool_channels *);
- int (*set_channels)(struct net_device *, struct ethtool_channels *);
- int (*get_dump_flag)(struct net_device *, struct ethtool_dump *);
- int (*get_dump_data)(struct net_device *,
- struct ethtool_dump *, void *);
- int (*set_dump)(struct net_device *, struct ethtool_dump *);
-
-};
-#endif /* __KERNEL__ */
-
-/* CMDs currently supported */
-#define ETHTOOL_GSET 0x00000001 /* Get settings. */
-#define ETHTOOL_SSET 0x00000002 /* Set settings. */
-#define ETHTOOL_GDRVINFO 0x00000003 /* Get driver info. */
-#define ETHTOOL_GREGS 0x00000004 /* Get NIC registers. */
-#define ETHTOOL_GWOL 0x00000005 /* Get wake-on-lan options. */
-#define ETHTOOL_SWOL 0x00000006 /* Set wake-on-lan options. */
-#define ETHTOOL_GMSGLVL 0x00000007 /* Get driver message level */
-#define ETHTOOL_SMSGLVL 0x00000008 /* Set driver msg level. */
-#define ETHTOOL_NWAY_RST 0x00000009 /* Restart autonegotiation. */
-/* Get link status for host, i.e. whether the interface *and* the
- * physical port (if there is one) are up (ethtool_value). */
-#define ETHTOOL_GLINK 0x0000000a
-#define ETHTOOL_GEEPROM 0x0000000b /* Get EEPROM data */
-#define ETHTOOL_SEEPROM 0x0000000c /* Set EEPROM data. */
-#define ETHTOOL_GCOALESCE 0x0000000e /* Get coalesce config */
-#define ETHTOOL_SCOALESCE 0x0000000f /* Set coalesce config. */
-#define ETHTOOL_GRINGPARAM 0x00000010 /* Get ring parameters */
-#define ETHTOOL_SRINGPARAM 0x00000011 /* Set ring parameters. */
-#define ETHTOOL_GPAUSEPARAM 0x00000012 /* Get pause parameters */
-#define ETHTOOL_SPAUSEPARAM 0x00000013 /* Set pause parameters. */
-#define ETHTOOL_GRXCSUM 0x00000014 /* Get RX hw csum enable (ethtool_value) */
-#define ETHTOOL_SRXCSUM 0x00000015 /* Set RX hw csum enable (ethtool_value) */
-#define ETHTOOL_GTXCSUM 0x00000016 /* Get TX hw csum enable (ethtool_value) */
-#define ETHTOOL_STXCSUM 0x00000017 /* Set TX hw csum enable (ethtool_value) */
-#define ETHTOOL_GSG 0x00000018 /* Get scatter-gather enable
- * (ethtool_value) */
-#define ETHTOOL_SSG 0x00000019 /* Set scatter-gather enable
- * (ethtool_value). */
-#define ETHTOOL_TEST 0x0000001a /* execute NIC self-test. */
-#define ETHTOOL_GSTRINGS 0x0000001b /* get specified string set */
-#define ETHTOOL_PHYS_ID 0x0000001c /* identify the NIC */
-#define ETHTOOL_GSTATS 0x0000001d /* get NIC-specific statistics */
-#define ETHTOOL_GTSO 0x0000001e /* Get TSO enable (ethtool_value) */
-#define ETHTOOL_STSO 0x0000001f /* Set TSO enable (ethtool_value) */
-#define ETHTOOL_GPERMADDR 0x00000020 /* Get permanent hardware address */
-#define ETHTOOL_GUFO 0x00000021 /* Get UFO enable (ethtool_value) */
-#define ETHTOOL_SUFO 0x00000022 /* Set UFO enable (ethtool_value) */
-#define ETHTOOL_GGSO 0x00000023 /* Get GSO enable (ethtool_value) */
-#define ETHTOOL_SGSO 0x00000024 /* Set GSO enable (ethtool_value) */
-#define ETHTOOL_GFLAGS 0x00000025 /* Get flags bitmap(ethtool_value) */
-#define ETHTOOL_SFLAGS 0x00000026 /* Set flags bitmap(ethtool_value) */
-#define ETHTOOL_GPFLAGS 0x00000027 /* Get driver-private flags bitmap */
-#define ETHTOOL_SPFLAGS 0x00000028 /* Set driver-private flags bitmap */
-
-#define ETHTOOL_GRXFH 0x00000029 /* Get RX flow hash configuration */
-#define ETHTOOL_SRXFH 0x0000002a /* Set RX flow hash configuration */
-#define ETHTOOL_GGRO 0x0000002b /* Get GRO enable (ethtool_value) */
-#define ETHTOOL_SGRO 0x0000002c /* Set GRO enable (ethtool_value) */
-#define ETHTOOL_GRXRINGS 0x0000002d /* Get RX rings available for LB */
-#define ETHTOOL_GRXCLSRLCNT 0x0000002e /* Get RX class rule count */
-#define ETHTOOL_GRXCLSRULE 0x0000002f /* Get RX classification rule */
-#define ETHTOOL_GRXCLSRLALL 0x00000030 /* Get all RX classification rule */
-#define ETHTOOL_SRXCLSRLDEL 0x00000031 /* Delete RX classification rule */
-#define ETHTOOL_SRXCLSRLINS 0x00000032 /* Insert RX classification rule */
-#define ETHTOOL_FLASHDEV 0x00000033 /* Flash firmware to device */
-#define ETHTOOL_RESET 0x00000034 /* Reset hardware */
-#define ETHTOOL_SRXNTUPLE 0x00000035 /* Add an n-tuple filter to device */
-#define ETHTOOL_GRXNTUPLE 0x00000036 /* deprecated */
-#define ETHTOOL_GSSET_INFO 0x00000037 /* Get string set info */
-#define ETHTOOL_GRXFHINDIR 0x00000038 /* Get RX flow hash indir'n table */
-#define ETHTOOL_SRXFHINDIR 0x00000039 /* Set RX flow hash indir'n table */
-
-#define ETHTOOL_GFEATURES 0x0000003a /* Get device offload settings */
-#define ETHTOOL_SFEATURES 0x0000003b /* Change device offload settings */
-#define ETHTOOL_GCHANNELS 0x0000003c /* Get no of channels */
-#define ETHTOOL_SCHANNELS 0x0000003d /* Set no of channels */
-#define ETHTOOL_SET_DUMP 0x0000003e /* Set dump settings */
-#define ETHTOOL_GET_DUMP_FLAG 0x0000003f /* Get dump settings */
-#define ETHTOOL_GET_DUMP_DATA 0x00000040 /* Get dump data */
-
-/* compatibility with older code */
-#define SPARC_ETH_GSET ETHTOOL_GSET
-#define SPARC_ETH_SSET ETHTOOL_SSET
-
-/* Indicates what features are supported by the interface. */
-#define SUPPORTED_10baseT_Half (1 << 0)
-#define SUPPORTED_10baseT_Full (1 << 1)
-#define SUPPORTED_100baseT_Half (1 << 2)
-#define SUPPORTED_100baseT_Full (1 << 3)
-#define SUPPORTED_1000baseT_Half (1 << 4)
-#define SUPPORTED_1000baseT_Full (1 << 5)
-#define SUPPORTED_Autoneg (1 << 6)
-#define SUPPORTED_TP (1 << 7)
-#define SUPPORTED_AUI (1 << 8)
-#define SUPPORTED_MII (1 << 9)
-#define SUPPORTED_FIBRE (1 << 10)
-#define SUPPORTED_BNC (1 << 11)
-#define SUPPORTED_10000baseT_Full (1 << 12)
-#define SUPPORTED_Pause (1 << 13)
-#define SUPPORTED_Asym_Pause (1 << 14)
-#define SUPPORTED_2500baseX_Full (1 << 15)
-#define SUPPORTED_Backplane (1 << 16)
-#define SUPPORTED_1000baseKX_Full (1 << 17)
-#define SUPPORTED_10000baseKX4_Full (1 << 18)
-#define SUPPORTED_10000baseKR_Full (1 << 19)
-#define SUPPORTED_10000baseR_FEC (1 << 20)
-#define SUPPORTED_20000baseMLD2_Full (1 << 21)
-#define SUPPORTED_20000baseKR2_Full (1 << 22)
-
-/* Indicates what features are advertised by the interface. */
-#define ADVERTISED_10baseT_Half (1 << 0)
-#define ADVERTISED_10baseT_Full (1 << 1)
-#define ADVERTISED_100baseT_Half (1 << 2)
-#define ADVERTISED_100baseT_Full (1 << 3)
-#define ADVERTISED_1000baseT_Half (1 << 4)
-#define ADVERTISED_1000baseT_Full (1 << 5)
-#define ADVERTISED_Autoneg (1 << 6)
-#define ADVERTISED_TP (1 << 7)
-#define ADVERTISED_AUI (1 << 8)
-#define ADVERTISED_MII (1 << 9)
-#define ADVERTISED_FIBRE (1 << 10)
-#define ADVERTISED_BNC (1 << 11)
-#define ADVERTISED_10000baseT_Full (1 << 12)
-#define ADVERTISED_Pause (1 << 13)
-#define ADVERTISED_Asym_Pause (1 << 14)
-#define ADVERTISED_2500baseX_Full (1 << 15)
-#define ADVERTISED_Backplane (1 << 16)
-#define ADVERTISED_1000baseKX_Full (1 << 17)
-#define ADVERTISED_10000baseKX4_Full (1 << 18)
-#define ADVERTISED_10000baseKR_Full (1 << 19)
-#define ADVERTISED_10000baseR_FEC (1 << 20)
-#define ADVERTISED_20000baseMLD2_Full (1 << 21)
-#define ADVERTISED_20000baseKR2_Full (1 << 22)
-
-/* The following are all involved in forcing a particular link
- * mode for the device for setting things. When getting the
- * devices settings, these indicate the current mode and whether
- * it was forced up into this mode or autonegotiated.
- */
-
-/* The forced speed, 10Mb, 100Mb, gigabit, 2.5Gb, 10GbE. */
-#define SPEED_10 10
-#define SPEED_100 100
-#define SPEED_1000 1000
-#define SPEED_2500 2500
-#define SPEED_10000 10000
-#define SPEED_UNKNOWN -1
-
-/* Duplex, half or full. */
-#define DUPLEX_HALF 0x00
-#define DUPLEX_FULL 0x01
-#define DUPLEX_UNKNOWN 0xff
-
-/* Which connector port. */
-#define PORT_TP 0x00
-#define PORT_AUI 0x01
-#define PORT_MII 0x02
-#define PORT_FIBRE 0x03
-#define PORT_BNC 0x04
-#define PORT_DA 0x05
-#define PORT_NONE 0xef
-#define PORT_OTHER 0xff
-
-/* Which transceiver to use. */
-#define XCVR_INTERNAL 0x00
-#define XCVR_EXTERNAL 0x01
-#define XCVR_DUMMY1 0x02
-#define XCVR_DUMMY2 0x03
-#define XCVR_DUMMY3 0x04
-
-/* Enable or disable autonegotiation. If this is set to enable,
- * the forced link modes above are completely ignored.
- */
-#define AUTONEG_DISABLE 0x00
-#define AUTONEG_ENABLE 0x01
-
-/* Mode MDI or MDI-X */
-#define ETH_TP_MDI_INVALID 0x00
-#define ETH_TP_MDI 0x01
-#define ETH_TP_MDI_X 0x02
-
-/* Wake-On-Lan options. */
-#define WAKE_PHY (1 << 0)
-#define WAKE_UCAST (1 << 1)
-#define WAKE_MCAST (1 << 2)
-#define WAKE_BCAST (1 << 3)
-#define WAKE_ARP (1 << 4)
-#define WAKE_MAGIC (1 << 5)
-#define WAKE_MAGICSECURE (1 << 6) /* only meaningful if WAKE_MAGIC */
-
-/* L2-L4 network traffic flow types */
-#define TCP_V4_FLOW 0x01 /* hash or spec (tcp_ip4_spec) */
-#define UDP_V4_FLOW 0x02 /* hash or spec (udp_ip4_spec) */
-#define SCTP_V4_FLOW 0x03 /* hash or spec (sctp_ip4_spec) */
-#define AH_ESP_V4_FLOW 0x04 /* hash only */
-#define TCP_V6_FLOW 0x05 /* hash only */
-#define UDP_V6_FLOW 0x06 /* hash only */
-#define SCTP_V6_FLOW 0x07 /* hash only */
-#define AH_ESP_V6_FLOW 0x08 /* hash only */
-#define AH_V4_FLOW 0x09 /* hash or spec (ah_ip4_spec) */
-#define ESP_V4_FLOW 0x0a /* hash or spec (esp_ip4_spec) */
-#define AH_V6_FLOW 0x0b /* hash only */
-#define ESP_V6_FLOW 0x0c /* hash only */
-#define IP_USER_FLOW 0x0d /* spec only (usr_ip4_spec) */
-#define IPV4_FLOW 0x10 /* hash only */
-#define IPV6_FLOW 0x11 /* hash only */
-#define ETHER_FLOW 0x12 /* spec only (ether_spec) */
-/* Flag to enable additional fields in struct ethtool_rx_flow_spec */
-#define FLOW_EXT 0x80000000
-
-/* L3-L4 network traffic flow hash options */
-#define RXH_L2DA (1 << 1)
-#define RXH_VLAN (1 << 2)
-#define RXH_L3_PROTO (1 << 3)
-#define RXH_IP_SRC (1 << 4)
-#define RXH_IP_DST (1 << 5)
-#define RXH_L4_B_0_1 (1 << 6) /* src port in case of TCP/UDP/SCTP */
-#define RXH_L4_B_2_3 (1 << 7) /* dst port in case of TCP/UDP/SCTP */
-#define RXH_DISCARD (1 << 31)
-
-#define RX_CLS_FLOW_DISC 0xffffffffffffffffULL
-
-/* Special RX classification rule insert location values */
-#define RX_CLS_LOC_SPECIAL 0x80000000 /* flag */
-#define RX_CLS_LOC_ANY 0xffffffff
-#define RX_CLS_LOC_FIRST 0xfffffffe
-#define RX_CLS_LOC_LAST 0xfffffffd
-
-/* Reset flags */
-/* The reset() operation must clear the flags for the components which
- * were actually reset. On successful return, the flags indicate the
- * components which were not reset, either because they do not exist
- * in the hardware or because they cannot be reset independently. The
- * driver must never reset any components that were not requested.
- */
-enum ethtool_reset_flags {
- /* These flags represent components dedicated to the interface
- * the command is addressed to. Shift any flag left by
- * ETH_RESET_SHARED_SHIFT to reset a shared component of the
- * same type.
- */
- ETH_RESET_MGMT = 1 << 0, /* Management processor */
- ETH_RESET_IRQ = 1 << 1, /* Interrupt requester */
- ETH_RESET_DMA = 1 << 2, /* DMA engine */
- ETH_RESET_FILTER = 1 << 3, /* Filtering/flow direction */
- ETH_RESET_OFFLOAD = 1 << 4, /* Protocol offload */
- ETH_RESET_MAC = 1 << 5, /* Media access controller */
- ETH_RESET_PHY = 1 << 6, /* Transceiver/PHY */
- ETH_RESET_RAM = 1 << 7, /* RAM shared between
- * multiple components */
-
- ETH_RESET_DEDICATED = 0x0000ffff, /* All components dedicated to
- * this interface */
- ETH_RESET_ALL = 0xffffffff, /* All components used by this
- * interface, even if shared */
-};
-#define ETH_RESET_SHARED_SHIFT 16
-
-#endif /* _LINUX_ETHTOOL_H */
diff --git a/ANDROID_3.4.5/include/linux/eventfd.h b/ANDROID_3.4.5/include/linux/eventfd.h
deleted file mode 100644
index 91bb4f27..00000000
--- a/ANDROID_3.4.5/include/linux/eventfd.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * include/linux/eventfd.h
- *
- * Copyright (C) 2007 Davide Libenzi <davidel@xmailserver.org>
- *
- */
-
-#ifndef _LINUX_EVENTFD_H
-#define _LINUX_EVENTFD_H
-
-#include <linux/fcntl.h>
-#include <linux/file.h>
-#include <linux/wait.h>
-
-/*
- * CAREFUL: Check include/asm-generic/fcntl.h when defining
- * new flags, since they might collide with O_* ones. We want
- * to re-use O_* flags that couldn't possibly have a meaning
- * from eventfd, in order to leave a free define-space for
- * shared O_* flags.
- */
-#define EFD_SEMAPHORE (1 << 0)
-#define EFD_CLOEXEC O_CLOEXEC
-#define EFD_NONBLOCK O_NONBLOCK
-
-#define EFD_SHARED_FCNTL_FLAGS (O_CLOEXEC | O_NONBLOCK)
-#define EFD_FLAGS_SET (EFD_SHARED_FCNTL_FLAGS | EFD_SEMAPHORE)
-
-#ifdef CONFIG_EVENTFD
-
-struct file *eventfd_file_create(unsigned int count, int flags);
-struct eventfd_ctx *eventfd_ctx_get(struct eventfd_ctx *ctx);
-void eventfd_ctx_put(struct eventfd_ctx *ctx);
-struct file *eventfd_fget(int fd);
-struct eventfd_ctx *eventfd_ctx_fdget(int fd);
-struct eventfd_ctx *eventfd_ctx_fileget(struct file *file);
-int eventfd_signal(struct eventfd_ctx *ctx, int n);
-ssize_t eventfd_ctx_read(struct eventfd_ctx *ctx, int no_wait, __u64 *cnt);
-int eventfd_ctx_remove_wait_queue(struct eventfd_ctx *ctx, wait_queue_t *wait,
- __u64 *cnt);
-
-#else /* CONFIG_EVENTFD */
-
-/*
- * Ugly ugly ugly error layer to support modules that uses eventfd but
- * pretend to work in !CONFIG_EVENTFD configurations. Namely, AIO.
- */
-static inline struct file *eventfd_file_create(unsigned int count, int flags)
-{
- return ERR_PTR(-ENOSYS);
-}
-
-static inline struct eventfd_ctx *eventfd_ctx_fdget(int fd)
-{
- return ERR_PTR(-ENOSYS);
-}
-
-static inline int eventfd_signal(struct eventfd_ctx *ctx, int n)
-{
- return -ENOSYS;
-}
-
-static inline void eventfd_ctx_put(struct eventfd_ctx *ctx)
-{
-
-}
-
-static inline ssize_t eventfd_ctx_read(struct eventfd_ctx *ctx, int no_wait,
- __u64 *cnt)
-{
- return -ENOSYS;
-}
-
-static inline int eventfd_ctx_remove_wait_queue(struct eventfd_ctx *ctx,
- wait_queue_t *wait, __u64 *cnt)
-{
- return -ENOSYS;
-}
-
-#endif
-
-#endif /* _LINUX_EVENTFD_H */
-
diff --git a/ANDROID_3.4.5/include/linux/eventpoll.h b/ANDROID_3.4.5/include/linux/eventpoll.h
deleted file mode 100644
index 6f8be328..00000000
--- a/ANDROID_3.4.5/include/linux/eventpoll.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * include/linux/eventpoll.h ( Efficient event polling implementation )
- * Copyright (C) 2001,...,2006 Davide Libenzi
- *
- * 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.
- *
- * Davide Libenzi <davidel@xmailserver.org>
- *
- */
-
-#ifndef _LINUX_EVENTPOLL_H
-#define _LINUX_EVENTPOLL_H
-
-/* For O_CLOEXEC */
-#include <linux/fcntl.h>
-#include <linux/types.h>
-
-/* Flags for epoll_create1. */
-#define EPOLL_CLOEXEC O_CLOEXEC
-
-/* Valid opcodes to issue to sys_epoll_ctl() */
-#define EPOLL_CTL_ADD 1
-#define EPOLL_CTL_DEL 2
-#define EPOLL_CTL_MOD 3
-
-/*
- * Request the handling of system wakeup events so as to prevent system suspends
- * from happening while those events are being processed.
- *
- * Assuming neither EPOLLET nor EPOLLONESHOT is set, system suspends will not be
- * re-allowed until epoll_wait is called again after consuming the wakeup
- * event(s).
- *
- * Requires CAP_EPOLLWAKEUP
- */
-#define EPOLLWAKEUP (1 << 29)
-
-/* Set the One Shot behaviour for the target file descriptor */
-#define EPOLLONESHOT (1 << 30)
-
-/* Set the Edge Triggered behaviour for the target file descriptor */
-#define EPOLLET (1 << 31)
-
-/*
- * On x86-64 make the 64bit structure have the same alignment as the
- * 32bit structure. This makes 32bit emulation easier.
- *
- * UML/x86_64 needs the same packing as x86_64
- */
-#ifdef __x86_64__
-#define EPOLL_PACKED __attribute__((packed))
-#else
-#define EPOLL_PACKED
-#endif
-
-struct epoll_event {
- __u32 events;
- __u64 data;
-} EPOLL_PACKED;
-
-#ifdef __KERNEL__
-
-/* Forward declarations to avoid compiler errors */
-struct file;
-
-
-#ifdef CONFIG_EPOLL
-
-/* Used to initialize the epoll bits inside the "struct file" */
-static inline void eventpoll_init_file(struct file *file)
-{
- INIT_LIST_HEAD(&file->f_ep_links);
- INIT_LIST_HEAD(&file->f_tfile_llink);
-}
-
-
-/* Used to release the epoll bits inside the "struct file" */
-void eventpoll_release_file(struct file *file);
-
-/*
- * This is called from inside fs/file_table.c:__fput() to unlink files
- * from the eventpoll interface. We need to have this facility to cleanup
- * correctly files that are closed without being removed from the eventpoll
- * interface.
- */
-static inline void eventpoll_release(struct file *file)
-{
-
- /*
- * Fast check to avoid the get/release of the semaphore. Since
- * we're doing this outside the semaphore lock, it might return
- * false negatives, but we don't care. It'll help in 99.99% of cases
- * to avoid the semaphore lock. False positives simply cannot happen
- * because the file in on the way to be removed and nobody ( but
- * eventpoll ) has still a reference to this file.
- */
- if (likely(list_empty(&file->f_ep_links)))
- return;
-
- /*
- * The file is being closed while it is still linked to an epoll
- * descriptor. We need to handle this by correctly unlinking it
- * from its containers.
- */
- eventpoll_release_file(file);
-}
-
-#else
-
-static inline void eventpoll_init_file(struct file *file) {}
-static inline void eventpoll_release(struct file *file) {}
-
-#endif
-
-#endif /* #ifdef __KERNEL__ */
-
-#endif /* #ifndef _LINUX_EVENTPOLL_H */
-
diff --git a/ANDROID_3.4.5/include/linux/evm.h b/ANDROID_3.4.5/include/linux/evm.h
deleted file mode 100644
index 9fc13a76..00000000
--- a/ANDROID_3.4.5/include/linux/evm.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * evm.h
- *
- * Copyright (c) 2009 IBM Corporation
- * Author: Mimi Zohar <zohar@us.ibm.com>
- */
-
-#ifndef _LINUX_EVM_H
-#define _LINUX_EVM_H
-
-#include <linux/integrity.h>
-#include <linux/xattr.h>
-
-struct integrity_iint_cache;
-
-#ifdef CONFIG_EVM
-extern enum integrity_status evm_verifyxattr(struct dentry *dentry,
- const char *xattr_name,
- void *xattr_value,
- size_t xattr_value_len,
- struct integrity_iint_cache *iint);
-extern int evm_inode_setattr(struct dentry *dentry, struct iattr *attr);
-extern void evm_inode_post_setattr(struct dentry *dentry, int ia_valid);
-extern int evm_inode_setxattr(struct dentry *dentry, const char *name,
- const void *value, size_t size);
-extern void evm_inode_post_setxattr(struct dentry *dentry,
- const char *xattr_name,
- const void *xattr_value,
- size_t xattr_value_len);
-extern int evm_inode_removexattr(struct dentry *dentry, const char *xattr_name);
-extern void evm_inode_post_removexattr(struct dentry *dentry,
- const char *xattr_name);
-extern int evm_inode_init_security(struct inode *inode,
- const struct xattr *xattr_array,
- struct xattr *evm);
-#ifdef CONFIG_FS_POSIX_ACL
-extern int posix_xattr_acl(const char *xattrname);
-#else
-static inline int posix_xattr_acl(const char *xattrname)
-{
- return 0;
-}
-#endif
-#else
-#ifdef CONFIG_INTEGRITY
-static inline enum integrity_status evm_verifyxattr(struct dentry *dentry,
- const char *xattr_name,
- void *xattr_value,
- size_t xattr_value_len,
- struct integrity_iint_cache *iint)
-{
- return INTEGRITY_UNKNOWN;
-}
-#endif
-
-static inline int evm_inode_setattr(struct dentry *dentry, struct iattr *attr)
-{
- return 0;
-}
-
-static inline void evm_inode_post_setattr(struct dentry *dentry, int ia_valid)
-{
- return;
-}
-
-static inline int evm_inode_setxattr(struct dentry *dentry, const char *name,
- const void *value, size_t size)
-{
- return 0;
-}
-
-static inline void evm_inode_post_setxattr(struct dentry *dentry,
- const char *xattr_name,
- const void *xattr_value,
- size_t xattr_value_len)
-{
- return;
-}
-
-static inline int evm_inode_removexattr(struct dentry *dentry,
- const char *xattr_name)
-{
- return 0;
-}
-
-static inline void evm_inode_post_removexattr(struct dentry *dentry,
- const char *xattr_name)
-{
- return;
-}
-
-static inline int evm_inode_init_security(struct inode *inode,
- const struct xattr *xattr_array,
- struct xattr *evm)
-{
- return 0;
-}
-
-#endif /* CONFIG_EVM_H */
-#endif /* LINUX_EVM_H */
diff --git a/ANDROID_3.4.5/include/linux/export.h b/ANDROID_3.4.5/include/linux/export.h
deleted file mode 100644
index 696c0f48..00000000
--- a/ANDROID_3.4.5/include/linux/export.h
+++ /dev/null
@@ -1,89 +0,0 @@
-#ifndef _LINUX_EXPORT_H
-#define _LINUX_EXPORT_H
-/*
- * Export symbols from the kernel to modules. Forked from module.h
- * to reduce the amount of pointless cruft we feed to gcc when only
- * exporting a simple symbol or two.
- *
- * If you feel the need to add #include <linux/foo.h> to this file
- * then you are doing something wrong and should go away silently.
- */
-
-/* Some toolchains use a `_' prefix for all user symbols. */
-#ifdef CONFIG_SYMBOL_PREFIX
-#define MODULE_SYMBOL_PREFIX CONFIG_SYMBOL_PREFIX
-#else
-#define MODULE_SYMBOL_PREFIX ""
-#endif
-
-struct kernel_symbol
-{
- unsigned long value;
- const char *name;
-};
-
-#ifdef MODULE
-extern struct module __this_module;
-#define THIS_MODULE (&__this_module)
-#else
-#define THIS_MODULE ((struct module *)0)
-#endif
-
-#ifdef CONFIG_MODULES
-
-#ifndef __GENKSYMS__
-#ifdef CONFIG_MODVERSIONS
-/* Mark the CRC weak since genksyms apparently decides not to
- * generate a checksums for some symbols */
-#define __CRC_SYMBOL(sym, sec) \
- extern void *__crc_##sym __attribute__((weak)); \
- static const unsigned long __kcrctab_##sym \
- __used \
- __attribute__((section("___kcrctab" sec "+" #sym), unused)) \
- = (unsigned long) &__crc_##sym;
-#else
-#define __CRC_SYMBOL(sym, sec)
-#endif
-
-/* For every exported symbol, place a struct in the __ksymtab section */
-#define __EXPORT_SYMBOL(sym, sec) \
- extern typeof(sym) sym; \
- __CRC_SYMBOL(sym, sec) \
- static const char __kstrtab_##sym[] \
- __attribute__((section("__ksymtab_strings"), aligned(1))) \
- = MODULE_SYMBOL_PREFIX #sym; \
- static const struct kernel_symbol __ksymtab_##sym \
- __used \
- __attribute__((section("___ksymtab" sec "+" #sym), unused)) \
- = { (unsigned long)&sym, __kstrtab_##sym }
-
-#define EXPORT_SYMBOL(sym) \
- __EXPORT_SYMBOL(sym, "")
-
-#define EXPORT_SYMBOL_GPL(sym) \
- __EXPORT_SYMBOL(sym, "_gpl")
-
-#define EXPORT_SYMBOL_GPL_FUTURE(sym) \
- __EXPORT_SYMBOL(sym, "_gpl_future")
-
-#ifdef CONFIG_UNUSED_SYMBOLS
-#define EXPORT_UNUSED_SYMBOL(sym) __EXPORT_SYMBOL(sym, "_unused")
-#define EXPORT_UNUSED_SYMBOL_GPL(sym) __EXPORT_SYMBOL(sym, "_unused_gpl")
-#else
-#define EXPORT_UNUSED_SYMBOL(sym)
-#define EXPORT_UNUSED_SYMBOL_GPL(sym)
-#endif
-
-#endif /* __GENKSYMS__ */
-
-#else /* !CONFIG_MODULES... */
-
-#define EXPORT_SYMBOL(sym)
-#define EXPORT_SYMBOL_GPL(sym)
-#define EXPORT_SYMBOL_GPL_FUTURE(sym)
-#define EXPORT_UNUSED_SYMBOL(sym)
-#define EXPORT_UNUSED_SYMBOL_GPL(sym)
-
-#endif /* CONFIG_MODULES */
-
-#endif /* _LINUX_EXPORT_H */
diff --git a/ANDROID_3.4.5/include/linux/exportfs.h b/ANDROID_3.4.5/include/linux/exportfs.h
deleted file mode 100644
index 3a4cef53..00000000
--- a/ANDROID_3.4.5/include/linux/exportfs.h
+++ /dev/null
@@ -1,196 +0,0 @@
-#ifndef LINUX_EXPORTFS_H
-#define LINUX_EXPORTFS_H 1
-
-#include <linux/types.h>
-
-struct dentry;
-struct inode;
-struct super_block;
-struct vfsmount;
-
-/* limit the handle size to NFSv4 handle size now */
-#define MAX_HANDLE_SZ 128
-
-/*
- * The fileid_type identifies how the file within the filesystem is encoded.
- * In theory this is freely set and parsed by the filesystem, but we try to
- * stick to conventions so we can share some generic code and don't confuse
- * sniffers like ethereal/wireshark.
- *
- * The filesystem must not use the value '0' or '0xff'.
- */
-enum fid_type {
- /*
- * The root, or export point, of the filesystem.
- * (Never actually passed down to the filesystem.
- */
- FILEID_ROOT = 0,
-
- /*
- * 32bit inode number, 32 bit generation number.
- */
- FILEID_INO32_GEN = 1,
-
- /*
- * 32bit inode number, 32 bit generation number,
- * 32 bit parent directory inode number.
- */
- FILEID_INO32_GEN_PARENT = 2,
-
- /*
- * 64 bit object ID, 64 bit root object ID,
- * 32 bit generation number.
- */
- FILEID_BTRFS_WITHOUT_PARENT = 0x4d,
-
- /*
- * 64 bit object ID, 64 bit root object ID,
- * 32 bit generation number,
- * 64 bit parent object ID, 32 bit parent generation.
- */
- FILEID_BTRFS_WITH_PARENT = 0x4e,
-
- /*
- * 64 bit object ID, 64 bit root object ID,
- * 32 bit generation number,
- * 64 bit parent object ID, 32 bit parent generation,
- * 64 bit parent root object ID.
- */
- FILEID_BTRFS_WITH_PARENT_ROOT = 0x4f,
-
- /*
- * 32 bit block number, 16 bit partition reference,
- * 16 bit unused, 32 bit generation number.
- */
- FILEID_UDF_WITHOUT_PARENT = 0x51,
-
- /*
- * 32 bit block number, 16 bit partition reference,
- * 16 bit unused, 32 bit generation number,
- * 32 bit parent block number, 32 bit parent generation number
- */
- FILEID_UDF_WITH_PARENT = 0x52,
-
- /*
- * 64 bit checkpoint number, 64 bit inode number,
- * 32 bit generation number.
- */
- FILEID_NILFS_WITHOUT_PARENT = 0x61,
-
- /*
- * 64 bit checkpoint number, 64 bit inode number,
- * 32 bit generation number, 32 bit parent generation.
- * 64 bit parent inode number.
- */
- FILEID_NILFS_WITH_PARENT = 0x62,
-};
-
-struct fid {
- union {
- struct {
- u32 ino;
- u32 gen;
- u32 parent_ino;
- u32 parent_gen;
- } i32;
- struct {
- u32 block;
- u16 partref;
- u16 parent_partref;
- u32 generation;
- u32 parent_block;
- u32 parent_generation;
- } udf;
- __u32 raw[0];
- };
-};
-
-/**
- * struct export_operations - for nfsd to communicate with file systems
- * @encode_fh: encode a file handle fragment from a dentry
- * @fh_to_dentry: find the implied object and get a dentry for it
- * @fh_to_parent: find the implied object's parent and get a dentry for it
- * @get_name: find the name for a given inode in a given directory
- * @get_parent: find the parent of a given directory
- * @commit_metadata: commit metadata changes to stable storage
- *
- * See Documentation/filesystems/nfs/Exporting for details on how to use
- * this interface correctly.
- *
- * encode_fh:
- * @encode_fh should store in the file handle fragment @fh (using at most
- * @max_len bytes) information that can be used by @decode_fh to recover the
- * file referred to by the &struct dentry @de. If the @connectable flag is
- * set, the encode_fh() should store sufficient information so that a good
- * attempt can be made to find not only the file but also it's place in the
- * filesystem. This typically means storing a reference to de->d_parent in
- * the filehandle fragment. encode_fh() should return the fileid_type on
- * success and on error returns 255 (if the space needed to encode fh is
- * greater than @max_len*4 bytes). On error @max_len contains the minimum
- * size(in 4 byte unit) needed to encode the file handle.
- *
- * fh_to_dentry:
- * @fh_to_dentry is given a &struct super_block (@sb) and a file handle
- * fragment (@fh, @fh_len). It should return a &struct dentry which refers
- * to the same file that the file handle fragment refers to. If it cannot,
- * it should return a %NULL pointer if the file was found but no acceptable
- * &dentries were available, or an %ERR_PTR error code indicating why it
- * couldn't be found (e.g. %ENOENT or %ENOMEM). Any suitable dentry can be
- * returned including, if necessary, a new dentry created with d_alloc_root.
- * The caller can then find any other extant dentries by following the
- * d_alias links.
- *
- * fh_to_parent:
- * Same as @fh_to_dentry, except that it returns a pointer to the parent
- * dentry if it was encoded into the filehandle fragment by @encode_fh.
- *
- * get_name:
- * @get_name should find a name for the given @child in the given @parent
- * directory. The name should be stored in the @name (with the
- * understanding that it is already pointing to a a %NAME_MAX+1 sized
- * buffer. get_name() should return %0 on success, a negative error code
- * or error. @get_name will be called without @parent->i_mutex held.
- *
- * get_parent:
- * @get_parent should find the parent directory for the given @child which
- * is also a directory. In the event that it cannot be found, or storage
- * space cannot be allocated, a %ERR_PTR should be returned.
- *
- * commit_metadata:
- * @commit_metadata should commit metadata changes to stable storage.
- *
- * Locking rules:
- * get_parent is called with child->d_inode->i_mutex down
- * get_name is not (which is possibly inconsistent)
- */
-
-struct export_operations {
- int (*encode_fh)(struct dentry *de, __u32 *fh, int *max_len,
- int connectable);
- struct dentry * (*fh_to_dentry)(struct super_block *sb, struct fid *fid,
- int fh_len, int fh_type);
- struct dentry * (*fh_to_parent)(struct super_block *sb, struct fid *fid,
- int fh_len, int fh_type);
- int (*get_name)(struct dentry *parent, char *name,
- struct dentry *child);
- struct dentry * (*get_parent)(struct dentry *child);
- int (*commit_metadata)(struct inode *inode);
-};
-
-extern int exportfs_encode_fh(struct dentry *dentry, struct fid *fid,
- int *max_len, int connectable);
-extern struct dentry *exportfs_decode_fh(struct vfsmount *mnt, struct fid *fid,
- int fh_len, int fileid_type, int (*acceptable)(void *, struct dentry *),
- void *context);
-
-/*
- * Generic helpers for filesystems.
- */
-extern struct dentry *generic_fh_to_dentry(struct super_block *sb,
- struct fid *fid, int fh_len, int fh_type,
- struct inode *(*get_inode) (struct super_block *sb, u64 ino, u32 gen));
-extern struct dentry *generic_fh_to_parent(struct super_block *sb,
- struct fid *fid, int fh_len, int fh_type,
- struct inode *(*get_inode) (struct super_block *sb, u64 ino, u32 gen));
-
-#endif /* LINUX_EXPORTFS_H */
diff --git a/ANDROID_3.4.5/include/linux/ext2_fs.h b/ANDROID_3.4.5/include/linux/ext2_fs.h
deleted file mode 100644
index 2723e715..00000000
--- a/ANDROID_3.4.5/include/linux/ext2_fs.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * linux/include/linux/ext2_fs.h
- *
- * Copyright (C) 1992, 1993, 1994, 1995
- * Remy Card (card@masi.ibp.fr)
- * Laboratoire MASI - Institut Blaise Pascal
- * Universite Pierre et Marie Curie (Paris VI)
- *
- * from
- *
- * linux/include/linux/minix_fs.h
- *
- * Copyright (C) 1991, 1992 Linus Torvalds
- */
-
-#ifndef _LINUX_EXT2_FS_H
-#define _LINUX_EXT2_FS_H
-
-#include <linux/types.h>
-#include <linux/magic.h>
-
-#define EXT2_NAME_LEN 255
-
-/*
- * Maximal count of links to a file
- */
-#define EXT2_LINK_MAX 32000
-
-#define EXT2_SB_MAGIC_OFFSET 0x38
-#define EXT2_SB_BLOCKS_OFFSET 0x04
-#define EXT2_SB_BSIZE_OFFSET 0x18
-
-static inline u64 ext2_image_size(void *ext2_sb)
-{
- __u8 *p = ext2_sb;
- if (*(__le16 *)(p + EXT2_SB_MAGIC_OFFSET) != cpu_to_le16(EXT2_SUPER_MAGIC))
- return 0;
- return (u64)le32_to_cpup((__le32 *)(p + EXT2_SB_BLOCKS_OFFSET)) <<
- le32_to_cpup((__le32 *)(p + EXT2_SB_BSIZE_OFFSET));
-}
-
-#endif /* _LINUX_EXT2_FS_H */
diff --git a/ANDROID_3.4.5/include/linux/f75375s.h b/ANDROID_3.4.5/include/linux/f75375s.h
deleted file mode 100644
index e99e2250..00000000
--- a/ANDROID_3.4.5/include/linux/f75375s.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * f75375s.h - platform data structure for f75375s sensor
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 2007, Riku Voipio <riku.voipio@iki.fi>
- */
-
-#ifndef __LINUX_F75375S_H
-#define __LINUX_F75375S_H
-
-/* We want to set fans spinning on systems where there is no
- * BIOS to do that for us */
-struct f75375s_platform_data {
- u8 pwm[2];
- u8 pwm_enable[2];
-};
-
-#endif /* __LINUX_F75375S_H */
diff --git a/ANDROID_3.4.5/include/linux/fadvise.h b/ANDROID_3.4.5/include/linux/fadvise.h
deleted file mode 100644
index e8e74713..00000000
--- a/ANDROID_3.4.5/include/linux/fadvise.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef FADVISE_H_INCLUDED
-#define FADVISE_H_INCLUDED
-
-#define POSIX_FADV_NORMAL 0 /* No further special treatment. */
-#define POSIX_FADV_RANDOM 1 /* Expect random page references. */
-#define POSIX_FADV_SEQUENTIAL 2 /* Expect sequential page references. */
-#define POSIX_FADV_WILLNEED 3 /* Will need these pages. */
-
-/*
- * The advise values for POSIX_FADV_DONTNEED and POSIX_ADV_NOREUSE
- * for s390-64 differ from the values for the rest of the world.
- */
-#if defined(__s390x__)
-#define POSIX_FADV_DONTNEED 6 /* Don't need these pages. */
-#define POSIX_FADV_NOREUSE 7 /* Data will be accessed once. */
-#else
-#define POSIX_FADV_DONTNEED 4 /* Don't need these pages. */
-#define POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */
-#endif
-
-#endif /* FADVISE_H_INCLUDED */
diff --git a/ANDROID_3.4.5/include/linux/falloc.h b/ANDROID_3.4.5/include/linux/falloc.h
deleted file mode 100644
index 73e0b628..00000000
--- a/ANDROID_3.4.5/include/linux/falloc.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef _FALLOC_H_
-#define _FALLOC_H_
-
-#define FALLOC_FL_KEEP_SIZE 0x01 /* default is extend size */
-#define FALLOC_FL_PUNCH_HOLE 0x02 /* de-allocates range */
-
-#ifdef __KERNEL__
-
-/*
- * Space reservation ioctls and argument structure
- * are designed to be compatible with the legacy XFS ioctls.
- */
-struct space_resv {
- __s16 l_type;
- __s16 l_whence;
- __s64 l_start;
- __s64 l_len; /* len == 0 means until end of file */
- __s32 l_sysid;
- __u32 l_pid;
- __s32 l_pad[4]; /* reserved area */
-};
-
-#define FS_IOC_RESVSP _IOW('X', 40, struct space_resv)
-#define FS_IOC_RESVSP64 _IOW('X', 42, struct space_resv)
-
-#endif /* __KERNEL__ */
-
-#endif /* _FALLOC_H_ */
diff --git a/ANDROID_3.4.5/include/linux/fanotify.h b/ANDROID_3.4.5/include/linux/fanotify.h
deleted file mode 100644
index 6c6133f7..00000000
--- a/ANDROID_3.4.5/include/linux/fanotify.h
+++ /dev/null
@@ -1,120 +0,0 @@
-#ifndef _LINUX_FANOTIFY_H
-#define _LINUX_FANOTIFY_H
-
-#include <linux/types.h>
-
-/* the following events that user-space can register for */
-#define FAN_ACCESS 0x00000001 /* File was accessed */
-#define FAN_MODIFY 0x00000002 /* File was modified */
-#define FAN_CLOSE_WRITE 0x00000008 /* Writtable file closed */
-#define FAN_CLOSE_NOWRITE 0x00000010 /* Unwrittable file closed */
-#define FAN_OPEN 0x00000020 /* File was opened */
-
-#define FAN_Q_OVERFLOW 0x00004000 /* Event queued overflowed */
-
-#define FAN_OPEN_PERM 0x00010000 /* File open in perm check */
-#define FAN_ACCESS_PERM 0x00020000 /* File accessed in perm check */
-
-#define FAN_ONDIR 0x40000000 /* event occurred against dir */
-
-#define FAN_EVENT_ON_CHILD 0x08000000 /* interested in child events */
-
-/* helper events */
-#define FAN_CLOSE (FAN_CLOSE_WRITE | FAN_CLOSE_NOWRITE) /* close */
-
-/* flags used for fanotify_init() */
-#define FAN_CLOEXEC 0x00000001
-#define FAN_NONBLOCK 0x00000002
-
-/* These are NOT bitwise flags. Both bits are used togther. */
-#define FAN_CLASS_NOTIF 0x00000000
-#define FAN_CLASS_CONTENT 0x00000004
-#define FAN_CLASS_PRE_CONTENT 0x00000008
-#define FAN_ALL_CLASS_BITS (FAN_CLASS_NOTIF | FAN_CLASS_CONTENT | \
- FAN_CLASS_PRE_CONTENT)
-
-#define FAN_UNLIMITED_QUEUE 0x00000010
-#define FAN_UNLIMITED_MARKS 0x00000020
-
-#define FAN_ALL_INIT_FLAGS (FAN_CLOEXEC | FAN_NONBLOCK | \
- FAN_ALL_CLASS_BITS | FAN_UNLIMITED_QUEUE |\
- FAN_UNLIMITED_MARKS)
-
-/* flags used for fanotify_modify_mark() */
-#define FAN_MARK_ADD 0x00000001
-#define FAN_MARK_REMOVE 0x00000002
-#define FAN_MARK_DONT_FOLLOW 0x00000004
-#define FAN_MARK_ONLYDIR 0x00000008
-#define FAN_MARK_MOUNT 0x00000010
-#define FAN_MARK_IGNORED_MASK 0x00000020
-#define FAN_MARK_IGNORED_SURV_MODIFY 0x00000040
-#define FAN_MARK_FLUSH 0x00000080
-#ifdef __KERNEL__
-/* not valid from userspace, only kernel internal */
-#define FAN_MARK_ONDIR 0x00000100
-#endif
-
-#define FAN_ALL_MARK_FLAGS (FAN_MARK_ADD |\
- FAN_MARK_REMOVE |\
- FAN_MARK_DONT_FOLLOW |\
- FAN_MARK_ONLYDIR |\
- FAN_MARK_MOUNT |\
- FAN_MARK_IGNORED_MASK |\
- FAN_MARK_IGNORED_SURV_MODIFY |\
- FAN_MARK_FLUSH)
-
-/*
- * All of the events - we build the list by hand so that we can add flags in
- * the future and not break backward compatibility. Apps will get only the
- * events that they originally wanted. Be sure to add new events here!
- */
-#define FAN_ALL_EVENTS (FAN_ACCESS |\
- FAN_MODIFY |\
- FAN_CLOSE |\
- FAN_OPEN)
-
-/*
- * All events which require a permission response from userspace
- */
-#define FAN_ALL_PERM_EVENTS (FAN_OPEN_PERM |\
- FAN_ACCESS_PERM)
-
-#define FAN_ALL_OUTGOING_EVENTS (FAN_ALL_EVENTS |\
- FAN_ALL_PERM_EVENTS |\
- FAN_Q_OVERFLOW)
-
-#define FANOTIFY_METADATA_VERSION 3
-
-struct fanotify_event_metadata {
- __u32 event_len;
- __u8 vers;
- __u8 reserved;
- __u16 metadata_len;
- __aligned_u64 mask;
- __s32 fd;
- __s32 pid;
-};
-
-struct fanotify_response {
- __s32 fd;
- __u32 response;
-};
-
-/* Legit userspace responses to a _PERM event */
-#define FAN_ALLOW 0x01
-#define FAN_DENY 0x02
-/* No fd set in event */
-#define FAN_NOFD -1
-
-/* Helper functions to deal with fanotify_event_metadata buffers */
-#define FAN_EVENT_METADATA_LEN (sizeof(struct fanotify_event_metadata))
-
-#define FAN_EVENT_NEXT(meta, len) ((len) -= (meta)->event_len, \
- (struct fanotify_event_metadata*)(((char *)(meta)) + \
- (meta)->event_len))
-
-#define FAN_EVENT_OK(meta, len) ((long)(len) >= (long)FAN_EVENT_METADATA_LEN && \
- (long)(meta)->event_len >= (long)FAN_EVENT_METADATA_LEN && \
- (long)(meta)->event_len <= (long)(len))
-
-#endif /* _LINUX_FANOTIFY_H */
diff --git a/ANDROID_3.4.5/include/linux/fault-inject.h b/ANDROID_3.4.5/include/linux/fault-inject.h
deleted file mode 100644
index c6f996f2..00000000
--- a/ANDROID_3.4.5/include/linux/fault-inject.h
+++ /dev/null
@@ -1,69 +0,0 @@
-#ifndef _LINUX_FAULT_INJECT_H
-#define _LINUX_FAULT_INJECT_H
-
-#ifdef CONFIG_FAULT_INJECTION
-
-#include <linux/types.h>
-#include <linux/debugfs.h>
-#include <linux/atomic.h>
-
-/*
- * For explanation of the elements of this struct, see
- * Documentation/fault-injection/fault-injection.txt
- */
-struct fault_attr {
- unsigned long probability;
- unsigned long interval;
- atomic_t times;
- atomic_t space;
- unsigned long verbose;
- u32 task_filter;
- unsigned long stacktrace_depth;
- unsigned long require_start;
- unsigned long require_end;
- unsigned long reject_start;
- unsigned long reject_end;
-
- unsigned long count;
-};
-
-#define FAULT_ATTR_INITIALIZER { \
- .interval = 1, \
- .times = ATOMIC_INIT(1), \
- .require_end = ULONG_MAX, \
- .stacktrace_depth = 32, \
- .verbose = 2, \
- }
-
-#define DECLARE_FAULT_ATTR(name) struct fault_attr name = FAULT_ATTR_INITIALIZER
-int setup_fault_attr(struct fault_attr *attr, char *str);
-bool should_fail(struct fault_attr *attr, ssize_t size);
-
-#ifdef CONFIG_FAULT_INJECTION_DEBUG_FS
-
-struct dentry *fault_create_debugfs_attr(const char *name,
- struct dentry *parent, struct fault_attr *attr);
-
-#else /* CONFIG_FAULT_INJECTION_DEBUG_FS */
-
-static inline struct dentry *fault_create_debugfs_attr(const char *name,
- struct dentry *parent, struct fault_attr *attr)
-{
- return ERR_PTR(-ENODEV);
-}
-
-#endif /* CONFIG_FAULT_INJECTION_DEBUG_FS */
-
-#endif /* CONFIG_FAULT_INJECTION */
-
-#ifdef CONFIG_FAILSLAB
-extern bool should_failslab(size_t size, gfp_t gfpflags, unsigned long flags);
-#else
-static inline bool should_failslab(size_t size, gfp_t gfpflags,
- unsigned long flags)
-{
- return false;
-}
-#endif /* CONFIG_FAILSLAB */
-
-#endif /* _LINUX_FAULT_INJECT_H */
diff --git a/ANDROID_3.4.5/include/linux/fb.h b/ANDROID_3.4.5/include/linux/fb.h
deleted file mode 100644
index d31cb682..00000000
--- a/ANDROID_3.4.5/include/linux/fb.h
+++ /dev/null
@@ -1,1181 +0,0 @@
-#ifndef _LINUX_FB_H
-#define _LINUX_FB_H
-
-#include <linux/types.h>
-#include <linux/i2c.h>
-#ifdef __KERNEL__
-#include <linux/kgdb.h>
-#endif /* __KERNEL__ */
-
-/* Definitions of frame buffers */
-
-#define FB_MAX 32 /* sufficient for now */
-
-/* ioctls
- 0x46 is 'F' */
-#define FBIOGET_VSCREENINFO 0x4600
-#define FBIOPUT_VSCREENINFO 0x4601
-#define FBIOGET_FSCREENINFO 0x4602
-#define FBIOGETCMAP 0x4604
-#define FBIOPUTCMAP 0x4605
-#define FBIOPAN_DISPLAY 0x4606
-#ifdef __KERNEL__
-#define FBIO_CURSOR _IOWR('F', 0x08, struct fb_cursor_user)
-#else
-#define FBIO_CURSOR _IOWR('F', 0x08, struct fb_cursor)
-#endif
-/* 0x4607-0x460B are defined below */
-/* #define FBIOGET_MONITORSPEC 0x460C */
-/* #define FBIOPUT_MONITORSPEC 0x460D */
-/* #define FBIOSWITCH_MONIBIT 0x460E */
-#define FBIOGET_CON2FBMAP 0x460F
-#define FBIOPUT_CON2FBMAP 0x4610
-#define FBIOBLANK 0x4611 /* arg: 0 or vesa level + 1 */
-#define FBIOGET_VBLANK _IOR('F', 0x12, struct fb_vblank)
-#define FBIO_ALLOC 0x4613
-#define FBIO_FREE 0x4614
-#define FBIOGET_GLYPH 0x4615
-#define FBIOGET_HWCINFO 0x4616
-#define FBIOPUT_MODEINFO 0x4617
-#define FBIOGET_DISPINFO 0x4618
-#define FBIO_WAITFORVSYNC _IOW('F', 0x20, __u32)
-
-#define FB_TYPE_PACKED_PIXELS 0 /* Packed Pixels */
-#define FB_TYPE_PLANES 1 /* Non interleaved planes */
-#define FB_TYPE_INTERLEAVED_PLANES 2 /* Interleaved planes */
-#define FB_TYPE_TEXT 3 /* Text/attributes */
-#define FB_TYPE_VGA_PLANES 4 /* EGA/VGA planes */
-#define FB_TYPE_FOURCC 5 /* Type identified by a V4L2 FOURCC */
-
-#define FB_AUX_TEXT_MDA 0 /* Monochrome text */
-#define FB_AUX_TEXT_CGA 1 /* CGA/EGA/VGA Color text */
-#define FB_AUX_TEXT_S3_MMIO 2 /* S3 MMIO fasttext */
-#define FB_AUX_TEXT_MGA_STEP16 3 /* MGA Millenium I: text, attr, 14 reserved bytes */
-#define FB_AUX_TEXT_MGA_STEP8 4 /* other MGAs: text, attr, 6 reserved bytes */
-#define FB_AUX_TEXT_SVGA_GROUP 8 /* 8-15: SVGA tileblit compatible modes */
-#define FB_AUX_TEXT_SVGA_MASK 7 /* lower three bits says step */
-#define FB_AUX_TEXT_SVGA_STEP2 8 /* SVGA text mode: text, attr */
-#define FB_AUX_TEXT_SVGA_STEP4 9 /* SVGA text mode: text, attr, 2 reserved bytes */
-#define FB_AUX_TEXT_SVGA_STEP8 10 /* SVGA text mode: text, attr, 6 reserved bytes */
-#define FB_AUX_TEXT_SVGA_STEP16 11 /* SVGA text mode: text, attr, 14 reserved bytes */
-#define FB_AUX_TEXT_SVGA_LAST 15 /* reserved up to 15 */
-
-#define FB_AUX_VGA_PLANES_VGA4 0 /* 16 color planes (EGA/VGA) */
-#define FB_AUX_VGA_PLANES_CFB4 1 /* CFB4 in planes (VGA) */
-#define FB_AUX_VGA_PLANES_CFB8 2 /* CFB8 in planes (VGA) */
-
-#define FB_VISUAL_MONO01 0 /* Monochr. 1=Black 0=White */
-#define FB_VISUAL_MONO10 1 /* Monochr. 1=White 0=Black */
-#define FB_VISUAL_TRUECOLOR 2 /* True color */
-#define FB_VISUAL_PSEUDOCOLOR 3 /* Pseudo color (like atari) */
-#define FB_VISUAL_DIRECTCOLOR 4 /* Direct color */
-#define FB_VISUAL_STATIC_PSEUDOCOLOR 5 /* Pseudo color readonly */
-#define FB_VISUAL_FOURCC 6 /* Visual identified by a V4L2 FOURCC */
-
-#define FB_ACCEL_NONE 0 /* no hardware accelerator */
-#define FB_ACCEL_ATARIBLITT 1 /* Atari Blitter */
-#define FB_ACCEL_AMIGABLITT 2 /* Amiga Blitter */
-#define FB_ACCEL_S3_TRIO64 3 /* Cybervision64 (S3 Trio64) */
-#define FB_ACCEL_NCR_77C32BLT 4 /* RetinaZ3 (NCR 77C32BLT) */
-#define FB_ACCEL_S3_VIRGE 5 /* Cybervision64/3D (S3 ViRGE) */
-#define FB_ACCEL_ATI_MACH64GX 6 /* ATI Mach 64GX family */
-#define FB_ACCEL_DEC_TGA 7 /* DEC 21030 TGA */
-#define FB_ACCEL_ATI_MACH64CT 8 /* ATI Mach 64CT family */
-#define FB_ACCEL_ATI_MACH64VT 9 /* ATI Mach 64CT family VT class */
-#define FB_ACCEL_ATI_MACH64GT 10 /* ATI Mach 64CT family GT class */
-#define FB_ACCEL_SUN_CREATOR 11 /* Sun Creator/Creator3D */
-#define FB_ACCEL_SUN_CGSIX 12 /* Sun cg6 */
-#define FB_ACCEL_SUN_LEO 13 /* Sun leo/zx */
-#define FB_ACCEL_IMS_TWINTURBO 14 /* IMS Twin Turbo */
-#define FB_ACCEL_3DLABS_PERMEDIA2 15 /* 3Dlabs Permedia 2 */
-#define FB_ACCEL_MATROX_MGA2064W 16 /* Matrox MGA2064W (Millenium) */
-#define FB_ACCEL_MATROX_MGA1064SG 17 /* Matrox MGA1064SG (Mystique) */
-#define FB_ACCEL_MATROX_MGA2164W 18 /* Matrox MGA2164W (Millenium II) */
-#define FB_ACCEL_MATROX_MGA2164W_AGP 19 /* Matrox MGA2164W (Millenium II) */
-#define FB_ACCEL_MATROX_MGAG100 20 /* Matrox G100 (Productiva G100) */
-#define FB_ACCEL_MATROX_MGAG200 21 /* Matrox G200 (Myst, Mill, ...) */
-#define FB_ACCEL_SUN_CG14 22 /* Sun cgfourteen */
-#define FB_ACCEL_SUN_BWTWO 23 /* Sun bwtwo */
-#define FB_ACCEL_SUN_CGTHREE 24 /* Sun cgthree */
-#define FB_ACCEL_SUN_TCX 25 /* Sun tcx */
-#define FB_ACCEL_MATROX_MGAG400 26 /* Matrox G400 */
-#define FB_ACCEL_NV3 27 /* nVidia RIVA 128 */
-#define FB_ACCEL_NV4 28 /* nVidia RIVA TNT */
-#define FB_ACCEL_NV5 29 /* nVidia RIVA TNT2 */
-#define FB_ACCEL_CT_6555x 30 /* C&T 6555x */
-#define FB_ACCEL_3DFX_BANSHEE 31 /* 3Dfx Banshee */
-#define FB_ACCEL_ATI_RAGE128 32 /* ATI Rage128 family */
-#define FB_ACCEL_IGS_CYBER2000 33 /* CyberPro 2000 */
-#define FB_ACCEL_IGS_CYBER2010 34 /* CyberPro 2010 */
-#define FB_ACCEL_IGS_CYBER5000 35 /* CyberPro 5000 */
-#define FB_ACCEL_SIS_GLAMOUR 36 /* SiS 300/630/540 */
-#define FB_ACCEL_3DLABS_PERMEDIA3 37 /* 3Dlabs Permedia 3 */
-#define FB_ACCEL_ATI_RADEON 38 /* ATI Radeon family */
-#define FB_ACCEL_I810 39 /* Intel 810/815 */
-#define FB_ACCEL_SIS_GLAMOUR_2 40 /* SiS 315, 650, 740 */
-#define FB_ACCEL_SIS_XABRE 41 /* SiS 330 ("Xabre") */
-#define FB_ACCEL_I830 42 /* Intel 830M/845G/85x/865G */
-#define FB_ACCEL_NV_10 43 /* nVidia Arch 10 */
-#define FB_ACCEL_NV_20 44 /* nVidia Arch 20 */
-#define FB_ACCEL_NV_30 45 /* nVidia Arch 30 */
-#define FB_ACCEL_NV_40 46 /* nVidia Arch 40 */
-#define FB_ACCEL_XGI_VOLARI_V 47 /* XGI Volari V3XT, V5, V8 */
-#define FB_ACCEL_XGI_VOLARI_Z 48 /* XGI Volari Z7 */
-#define FB_ACCEL_OMAP1610 49 /* TI OMAP16xx */
-#define FB_ACCEL_TRIDENT_TGUI 50 /* Trident TGUI */
-#define FB_ACCEL_TRIDENT_3DIMAGE 51 /* Trident 3DImage */
-#define FB_ACCEL_TRIDENT_BLADE3D 52 /* Trident Blade3D */
-#define FB_ACCEL_TRIDENT_BLADEXP 53 /* Trident BladeXP */
-#define FB_ACCEL_CIRRUS_ALPINE 53 /* Cirrus Logic 543x/544x/5480 */
-#define FB_ACCEL_NEOMAGIC_NM2070 90 /* NeoMagic NM2070 */
-#define FB_ACCEL_NEOMAGIC_NM2090 91 /* NeoMagic NM2090 */
-#define FB_ACCEL_NEOMAGIC_NM2093 92 /* NeoMagic NM2093 */
-#define FB_ACCEL_NEOMAGIC_NM2097 93 /* NeoMagic NM2097 */
-#define FB_ACCEL_NEOMAGIC_NM2160 94 /* NeoMagic NM2160 */
-#define FB_ACCEL_NEOMAGIC_NM2200 95 /* NeoMagic NM2200 */
-#define FB_ACCEL_NEOMAGIC_NM2230 96 /* NeoMagic NM2230 */
-#define FB_ACCEL_NEOMAGIC_NM2360 97 /* NeoMagic NM2360 */
-#define FB_ACCEL_NEOMAGIC_NM2380 98 /* NeoMagic NM2380 */
-#define FB_ACCEL_PXA3XX 99 /* PXA3xx */
-
-#define FB_ACCEL_SAVAGE4 0x80 /* S3 Savage4 */
-#define FB_ACCEL_SAVAGE3D 0x81 /* S3 Savage3D */
-#define FB_ACCEL_SAVAGE3D_MV 0x82 /* S3 Savage3D-MV */
-#define FB_ACCEL_SAVAGE2000 0x83 /* S3 Savage2000 */
-#define FB_ACCEL_SAVAGE_MX_MV 0x84 /* S3 Savage/MX-MV */
-#define FB_ACCEL_SAVAGE_MX 0x85 /* S3 Savage/MX */
-#define FB_ACCEL_SAVAGE_IX_MV 0x86 /* S3 Savage/IX-MV */
-#define FB_ACCEL_SAVAGE_IX 0x87 /* S3 Savage/IX */
-#define FB_ACCEL_PROSAVAGE_PM 0x88 /* S3 ProSavage PM133 */
-#define FB_ACCEL_PROSAVAGE_KM 0x89 /* S3 ProSavage KM133 */
-#define FB_ACCEL_S3TWISTER_P 0x8a /* S3 Twister */
-#define FB_ACCEL_S3TWISTER_K 0x8b /* S3 TwisterK */
-#define FB_ACCEL_SUPERSAVAGE 0x8c /* S3 Supersavage */
-#define FB_ACCEL_PROSAVAGE_DDR 0x8d /* S3 ProSavage DDR */
-#define FB_ACCEL_PROSAVAGE_DDRK 0x8e /* S3 ProSavage DDR-K */
-
-#define FB_ACCEL_PUV3_UNIGFX 0xa0 /* PKUnity-v3 Unigfx */
-
-#define FB_CAP_FOURCC 1 /* Device supports FOURCC-based formats */
-
-struct fb_fix_screeninfo {
- char id[16]; /* identification string eg "TT Builtin" */
- unsigned long smem_start; /* Start of frame buffer mem */
- /* (physical address) */
- __u32 smem_len; /* Length of frame buffer mem */
- __u32 type; /* see FB_TYPE_* */
- __u32 type_aux; /* Interleave for interleaved Planes */
- __u32 visual; /* see FB_VISUAL_* */
- __u16 xpanstep; /* zero if no hardware panning */
- __u16 ypanstep; /* zero if no hardware panning */
- __u16 ywrapstep; /* zero if no hardware ywrap */
- __u32 line_length; /* length of a line in bytes */
- unsigned long mmio_start; /* Start of Memory Mapped I/O */
- /* (physical address) */
- __u32 mmio_len; /* Length of Memory Mapped I/O */
- __u32 accel; /* Indicate to driver which */
- /* specific chip/card we have */
- __u16 capabilities; /* see FB_CAP_* */
- __u16 reserved[2]; /* Reserved for future compatibility */
-};
-
-/* Interpretation of offset for color fields: All offsets are from the right,
- * inside a "pixel" value, which is exactly 'bits_per_pixel' wide (means: you
- * can use the offset as right argument to <<). A pixel afterwards is a bit
- * stream and is written to video memory as that unmodified.
- *
- * For pseudocolor: offset and length should be the same for all color
- * components. Offset specifies the position of the least significant bit
- * of the pallette index in a pixel value. Length indicates the number
- * of available palette entries (i.e. # of entries = 1 << length).
- */
-struct fb_bitfield {
- __u32 offset; /* beginning of bitfield */
- __u32 length; /* length of bitfield */
- __u32 msb_right; /* != 0 : Most significant bit is */
- /* right */
-};
-
-#define FB_NONSTD_HAM 1 /* Hold-And-Modify (HAM) */
-#define FB_NONSTD_REV_PIX_IN_B 2 /* order of pixels in each byte is reversed */
-
-#define FB_ACTIVATE_NOW 0 /* set values immediately (or vbl)*/
-#define FB_ACTIVATE_NXTOPEN 1 /* activate on next open */
-#define FB_ACTIVATE_TEST 2 /* don't set, round up impossible */
-#define FB_ACTIVATE_MASK 15
- /* values */
-#define FB_ACTIVATE_VBL 16 /* activate values on next vbl */
-#define FB_CHANGE_CMAP_VBL 32 /* change colormap on vbl */
-#define FB_ACTIVATE_ALL 64 /* change all VCs on this fb */
-#define FB_ACTIVATE_FORCE 128 /* force apply even when no change*/
-#define FB_ACTIVATE_INV_MODE 256 /* invalidate videomode */
-
-#define FB_ACCELF_TEXT 1 /* (OBSOLETE) see fb_info.flags and vc_mode */
-
-#define FB_SYNC_HOR_HIGH_ACT 1 /* horizontal sync high active */
-#define FB_SYNC_VERT_HIGH_ACT 2 /* vertical sync high active */
-#define FB_SYNC_EXT 4 /* external sync */
-#define FB_SYNC_COMP_HIGH_ACT 8 /* composite sync high active */
-#define FB_SYNC_BROADCAST 16 /* broadcast video timings */
- /* vtotal = 144d/288n/576i => PAL */
- /* vtotal = 121d/242n/484i => NTSC */
-#define FB_SYNC_ON_GREEN 32 /* sync on green */
-
-#define FB_VMODE_NONINTERLACED 0 /* non interlaced */
-#define FB_VMODE_INTERLACED 1 /* interlaced */
-#define FB_VMODE_DOUBLE 2 /* double scan */
-#define FB_VMODE_ODD_FLD_FIRST 4 /* interlaced: top line first */
-#define FB_VMODE_MASK 255
-
-#define FB_VMODE_YWRAP 256 /* ywrap instead of panning */
-#define FB_VMODE_SMOOTH_XPAN 512 /* smooth xpan possible (internally used) */
-#define FB_VMODE_CONUPDATE 512 /* don't update x/yoffset */
-
-/*
- * Display rotation support
- */
-#define FB_ROTATE_UR 0
-#define FB_ROTATE_CW 1
-#define FB_ROTATE_UD 2
-#define FB_ROTATE_CCW 3
-
-#define PICOS2KHZ(a) (1000000000UL/(a))
-#define KHZ2PICOS(a) (1000000000UL/(a))
-
-struct fb_var_screeninfo {
- __u32 xres; /* visible resolution */
- __u32 yres;
- __u32 xres_virtual; /* virtual resolution */
- __u32 yres_virtual;
- __u32 xoffset; /* offset from virtual to visible */
- __u32 yoffset; /* resolution */
-
- __u32 bits_per_pixel; /* guess what */
- __u32 grayscale; /* 0 = color, 1 = grayscale, */
- /* >1 = FOURCC */
- struct fb_bitfield red; /* bitfield in fb mem if true color, */
- struct fb_bitfield green; /* else only length is significant */
- struct fb_bitfield blue;
- struct fb_bitfield transp; /* transparency */
-
- __u32 nonstd; /* != 0 Non standard pixel format */
-
- __u32 activate; /* see FB_ACTIVATE_* */
-
- __u32 height; /* height of picture in mm */
- __u32 width; /* width of picture in mm */
-
- __u32 accel_flags; /* (OBSOLETE) see fb_info.flags */
-
- /* Timing: All values in pixclocks, except pixclock (of course) */
- __u32 pixclock; /* pixel clock in ps (pico seconds) */
- __u32 left_margin; /* time from sync to picture */
- __u32 right_margin; /* time from picture to sync */
- __u32 upper_margin; /* time from sync to picture */
- __u32 lower_margin;
- __u32 hsync_len; /* length of horizontal sync */
- __u32 vsync_len; /* length of vertical sync */
- __u32 sync; /* see FB_SYNC_* */
- __u32 vmode; /* see FB_VMODE_* */
- __u32 rotate; /* angle we rotate counter clockwise */
- __u32 colorspace; /* colorspace for FOURCC-based modes */
- __u32 reserved[4]; /* Reserved for future compatibility */
-};
-
-struct fb_cmap {
- __u32 start; /* First entry */
- __u32 len; /* Number of entries */
- __u16 *red; /* Red values */
- __u16 *green;
- __u16 *blue;
- __u16 *transp; /* transparency, can be NULL */
-};
-
-struct fb_con2fbmap {
- __u32 console;
- __u32 framebuffer;
-};
-
-/* VESA Blanking Levels */
-#define VESA_NO_BLANKING 0
-#define VESA_VSYNC_SUSPEND 1
-#define VESA_HSYNC_SUSPEND 2
-#define VESA_POWERDOWN 3
-
-
-enum {
- /* screen: unblanked, hsync: on, vsync: on */
- FB_BLANK_UNBLANK = VESA_NO_BLANKING,
-
- /* screen: blanked, hsync: on, vsync: on */
- FB_BLANK_NORMAL = VESA_NO_BLANKING + 1,
-
- /* screen: blanked, hsync: on, vsync: off */
- FB_BLANK_VSYNC_SUSPEND = VESA_VSYNC_SUSPEND + 1,
-
- /* screen: blanked, hsync: off, vsync: on */
- FB_BLANK_HSYNC_SUSPEND = VESA_HSYNC_SUSPEND + 1,
-
- /* screen: blanked, hsync: off, vsync: off */
- FB_BLANK_POWERDOWN = VESA_POWERDOWN + 1
-};
-
-#define FB_VBLANK_VBLANKING 0x001 /* currently in a vertical blank */
-#define FB_VBLANK_HBLANKING 0x002 /* currently in a horizontal blank */
-#define FB_VBLANK_HAVE_VBLANK 0x004 /* vertical blanks can be detected */
-#define FB_VBLANK_HAVE_HBLANK 0x008 /* horizontal blanks can be detected */
-#define FB_VBLANK_HAVE_COUNT 0x010 /* global retrace counter is available */
-#define FB_VBLANK_HAVE_VCOUNT 0x020 /* the vcount field is valid */
-#define FB_VBLANK_HAVE_HCOUNT 0x040 /* the hcount field is valid */
-#define FB_VBLANK_VSYNCING 0x080 /* currently in a vsync */
-#define FB_VBLANK_HAVE_VSYNC 0x100 /* verical syncs can be detected */
-
-struct fb_vblank {
- __u32 flags; /* FB_VBLANK flags */
- __u32 count; /* counter of retraces since boot */
- __u32 vcount; /* current scanline position */
- __u32 hcount; /* current scandot position */
- __u32 reserved[4]; /* reserved for future compatibility */
-};
-
-/* Internal HW accel */
-#define ROP_COPY 0
-#define ROP_XOR 1
-
-struct fb_copyarea {
- __u32 dx;
- __u32 dy;
- __u32 width;
- __u32 height;
- __u32 sx;
- __u32 sy;
-};
-
-struct fb_fillrect {
- __u32 dx; /* screen-relative */
- __u32 dy;
- __u32 width;
- __u32 height;
- __u32 color;
- __u32 rop;
-};
-
-struct fb_image {
- __u32 dx; /* Where to place image */
- __u32 dy;
- __u32 width; /* Size of image */
- __u32 height;
- __u32 fg_color; /* Only used when a mono bitmap */
- __u32 bg_color;
- __u8 depth; /* Depth of the image */
- const char *data; /* Pointer to image data */
- struct fb_cmap cmap; /* color map info */
-};
-
-/*
- * hardware cursor control
- */
-
-#define FB_CUR_SETIMAGE 0x01
-#define FB_CUR_SETPOS 0x02
-#define FB_CUR_SETHOT 0x04
-#define FB_CUR_SETCMAP 0x08
-#define FB_CUR_SETSHAPE 0x10
-#define FB_CUR_SETSIZE 0x20
-#define FB_CUR_SETALL 0xFF
-
-struct fbcurpos {
- __u16 x, y;
-};
-
-struct fb_cursor {
- __u16 set; /* what to set */
- __u16 enable; /* cursor on/off */
- __u16 rop; /* bitop operation */
- const char *mask; /* cursor mask bits */
- struct fbcurpos hot; /* cursor hot spot */
- struct fb_image image; /* Cursor image */
-};
-
-#ifdef CONFIG_FB_BACKLIGHT
-/* Settings for the generic backlight code */
-#define FB_BACKLIGHT_LEVELS 128
-#define FB_BACKLIGHT_MAX 0xFF
-#endif
-
-#ifdef __KERNEL__
-
-#include <linux/fs.h>
-#include <linux/init.h>
-#include <linux/workqueue.h>
-#include <linux/notifier.h>
-#include <linux/list.h>
-#include <linux/backlight.h>
-#include <linux/slab.h>
-#include <asm/io.h>
-
-struct vm_area_struct;
-struct fb_info;
-struct device;
-struct file;
-
-/* Definitions below are used in the parsed monitor specs */
-#define FB_DPMS_ACTIVE_OFF 1
-#define FB_DPMS_SUSPEND 2
-#define FB_DPMS_STANDBY 4
-
-#define FB_DISP_DDI 1
-#define FB_DISP_ANA_700_300 2
-#define FB_DISP_ANA_714_286 4
-#define FB_DISP_ANA_1000_400 8
-#define FB_DISP_ANA_700_000 16
-
-#define FB_DISP_MONO 32
-#define FB_DISP_RGB 64
-#define FB_DISP_MULTI 128
-#define FB_DISP_UNKNOWN 256
-
-#define FB_SIGNAL_NONE 0
-#define FB_SIGNAL_BLANK_BLANK 1
-#define FB_SIGNAL_SEPARATE 2
-#define FB_SIGNAL_COMPOSITE 4
-#define FB_SIGNAL_SYNC_ON_GREEN 8
-#define FB_SIGNAL_SERRATION_ON 16
-
-#define FB_MISC_PRIM_COLOR 1
-#define FB_MISC_1ST_DETAIL 2 /* First Detailed Timing is preferred */
-struct fb_chroma {
- __u32 redx; /* in fraction of 1024 */
- __u32 greenx;
- __u32 bluex;
- __u32 whitex;
- __u32 redy;
- __u32 greeny;
- __u32 bluey;
- __u32 whitey;
-};
-
-struct fb_monspecs {
- struct fb_chroma chroma;
- struct fb_videomode *modedb; /* mode database */
- __u8 manufacturer[4]; /* Manufacturer */
- __u8 monitor[14]; /* Monitor String */
- __u8 serial_no[14]; /* Serial Number */
- __u8 ascii[14]; /* ? */
- __u32 modedb_len; /* mode database length */
- __u32 model; /* Monitor Model */
- __u32 serial; /* Serial Number - Integer */
- __u32 year; /* Year manufactured */
- __u32 week; /* Week Manufactured */
- __u32 hfmin; /* hfreq lower limit (Hz) */
- __u32 hfmax; /* hfreq upper limit (Hz) */
- __u32 dclkmin; /* pixelclock lower limit (Hz) */
- __u32 dclkmax; /* pixelclock upper limit (Hz) */
- __u16 input; /* display type - see FB_DISP_* */
- __u16 dpms; /* DPMS support - see FB_DPMS_ */
- __u16 signal; /* Signal Type - see FB_SIGNAL_* */
- __u16 vfmin; /* vfreq lower limit (Hz) */
- __u16 vfmax; /* vfreq upper limit (Hz) */
- __u16 gamma; /* Gamma - in fractions of 100 */
- __u16 gtf : 1; /* supports GTF */
- __u16 misc; /* Misc flags - see FB_MISC_* */
- __u8 version; /* EDID version... */
- __u8 revision; /* ...and revision */
- __u8 max_x; /* Maximum horizontal size (cm) */
- __u8 max_y; /* Maximum vertical size (cm) */
-};
-
-struct fb_cmap_user {
- __u32 start; /* First entry */
- __u32 len; /* Number of entries */
- __u16 __user *red; /* Red values */
- __u16 __user *green;
- __u16 __user *blue;
- __u16 __user *transp; /* transparency, can be NULL */
-};
-
-struct fb_image_user {
- __u32 dx; /* Where to place image */
- __u32 dy;
- __u32 width; /* Size of image */
- __u32 height;
- __u32 fg_color; /* Only used when a mono bitmap */
- __u32 bg_color;
- __u8 depth; /* Depth of the image */
- const char __user *data; /* Pointer to image data */
- struct fb_cmap_user cmap; /* color map info */
-};
-
-struct fb_cursor_user {
- __u16 set; /* what to set */
- __u16 enable; /* cursor on/off */
- __u16 rop; /* bitop operation */
- const char __user *mask; /* cursor mask bits */
- struct fbcurpos hot; /* cursor hot spot */
- struct fb_image_user image; /* Cursor image */
-};
-
-/*
- * Register/unregister for framebuffer events
- */
-
-/* The resolution of the passed in fb_info about to change */
-#define FB_EVENT_MODE_CHANGE 0x01
-/* The display on this fb_info is beeing suspended, no access to the
- * framebuffer is allowed any more after that call returns
- */
-#define FB_EVENT_SUSPEND 0x02
-/* The display on this fb_info was resumed, you can restore the display
- * if you own it
- */
-#define FB_EVENT_RESUME 0x03
-/* An entry from the modelist was removed */
-#define FB_EVENT_MODE_DELETE 0x04
-/* A driver registered itself */
-#define FB_EVENT_FB_REGISTERED 0x05
-/* A driver unregistered itself */
-#define FB_EVENT_FB_UNREGISTERED 0x06
-/* CONSOLE-SPECIFIC: get console to framebuffer mapping */
-#define FB_EVENT_GET_CONSOLE_MAP 0x07
-/* CONSOLE-SPECIFIC: set console to framebuffer mapping */
-#define FB_EVENT_SET_CONSOLE_MAP 0x08
-/* A hardware display blank change occurred */
-#define FB_EVENT_BLANK 0x09
-/* Private modelist is to be replaced */
-#define FB_EVENT_NEW_MODELIST 0x0A
-/* The resolution of the passed in fb_info about to change and
- all vc's should be changed */
-#define FB_EVENT_MODE_CHANGE_ALL 0x0B
-/* A software display blank change occurred */
-#define FB_EVENT_CONBLANK 0x0C
-/* Get drawing requirements */
-#define FB_EVENT_GET_REQ 0x0D
-/* Unbind from the console if possible */
-#define FB_EVENT_FB_UNBIND 0x0E
-/* CONSOLE-SPECIFIC: remap all consoles to new fb - for vga switcheroo */
-#define FB_EVENT_REMAP_ALL_CONSOLE 0x0F
-
-struct fb_event {
- struct fb_info *info;
- void *data;
-};
-
-struct fb_blit_caps {
- u32 x;
- u32 y;
- u32 len;
- u32 flags;
-};
-
-extern int fb_register_client(struct notifier_block *nb);
-extern int fb_unregister_client(struct notifier_block *nb);
-extern int fb_notifier_call_chain(unsigned long val, void *v);
-/*
- * Pixmap structure definition
- *
- * The purpose of this structure is to translate data
- * from the hardware independent format of fbdev to what
- * format the hardware needs.
- */
-
-#define FB_PIXMAP_DEFAULT 1 /* used internally by fbcon */
-#define FB_PIXMAP_SYSTEM 2 /* memory is in system RAM */
-#define FB_PIXMAP_IO 4 /* memory is iomapped */
-#define FB_PIXMAP_SYNC 256 /* set if GPU can DMA */
-
-struct fb_pixmap {
- u8 *addr; /* pointer to memory */
- u32 size; /* size of buffer in bytes */
- u32 offset; /* current offset to buffer */
- u32 buf_align; /* byte alignment of each bitmap */
- u32 scan_align; /* alignment per scanline */
- u32 access_align; /* alignment per read/write (bits) */
- u32 flags; /* see FB_PIXMAP_* */
- u32 blit_x; /* supported bit block dimensions (1-32)*/
- u32 blit_y; /* Format: blit_x = 1 << (width - 1) */
- /* blit_y = 1 << (height - 1) */
- /* if 0, will be set to 0xffffffff (all)*/
- /* access methods */
- void (*writeio)(struct fb_info *info, void __iomem *dst, void *src, unsigned int size);
- void (*readio) (struct fb_info *info, void *dst, void __iomem *src, unsigned int size);
-};
-
-#ifdef CONFIG_FB_DEFERRED_IO
-struct fb_deferred_io {
- /* delay between mkwrite and deferred handler */
- unsigned long delay;
- struct mutex lock; /* mutex that protects the page list */
- struct list_head pagelist; /* list of touched pages */
- /* callback */
- void (*deferred_io)(struct fb_info *info, struct list_head *pagelist);
-};
-#endif
-
-/*
- * Frame buffer operations
- *
- * LOCKING NOTE: those functions must _ALL_ be called with the console
- * semaphore held, this is the only suitable locking mechanism we have
- * in 2.6. Some may be called at interrupt time at this point though.
- *
- * The exception to this is the debug related hooks. Putting the fb
- * into a debug state (e.g. flipping to the kernel console) and restoring
- * it must be done in a lock-free manner, so low level drivers should
- * keep track of the initial console (if applicable) and may need to
- * perform direct, unlocked hardware writes in these hooks.
- */
-
-struct fb_ops {
- /* open/release and usage marking */
- struct module *owner;
- int (*fb_open)(struct fb_info *info, int user);
- int (*fb_release)(struct fb_info *info, int user);
-
- /* For framebuffers with strange non linear layouts or that do not
- * work with normal memory mapped access
- */
- ssize_t (*fb_read)(struct fb_info *info, char __user *buf,
- size_t count, loff_t *ppos);
- ssize_t (*fb_write)(struct fb_info *info, const char __user *buf,
- size_t count, loff_t *ppos);
-
- /* checks var and eventually tweaks it to something supported,
- * DO NOT MODIFY PAR */
- int (*fb_check_var)(struct fb_var_screeninfo *var, struct fb_info *info);
-
- /* set the video mode according to info->var */
- int (*fb_set_par)(struct fb_info *info);
-
- /* set color register */
- int (*fb_setcolreg)(unsigned regno, unsigned red, unsigned green,
- unsigned blue, unsigned transp, struct fb_info *info);
-
- /* set color registers in batch */
- int (*fb_setcmap)(struct fb_cmap *cmap, struct fb_info *info);
-
- /* blank display */
- int (*fb_blank)(int blank, struct fb_info *info);
-
- /* pan display */
- int (*fb_pan_display)(struct fb_var_screeninfo *var, struct fb_info *info);
-
- /* Draws a rectangle */
- void (*fb_fillrect) (struct fb_info *info, const struct fb_fillrect *rect);
- /* Copy data from area to another */
- void (*fb_copyarea) (struct fb_info *info, const struct fb_copyarea *region);
- /* Draws a image to the display */
- void (*fb_imageblit) (struct fb_info *info, const struct fb_image *image);
-
- /* Draws cursor */
- int (*fb_cursor) (struct fb_info *info, struct fb_cursor *cursor);
-
- /* Rotates the display */
- void (*fb_rotate)(struct fb_info *info, int angle);
-
- /* wait for blit idle, optional */
- int (*fb_sync)(struct fb_info *info);
-
- /* perform fb specific ioctl (optional) */
- int (*fb_ioctl)(struct fb_info *info, unsigned int cmd,
- unsigned long arg);
-
- /* Handle 32bit compat ioctl (optional) */
- int (*fb_compat_ioctl)(struct fb_info *info, unsigned cmd,
- unsigned long arg);
-
- /* perform fb specific mmap */
- int (*fb_mmap)(struct fb_info *info, struct vm_area_struct *vma);
-
- /* get capability given var */
- void (*fb_get_caps)(struct fb_info *info, struct fb_blit_caps *caps,
- struct fb_var_screeninfo *var);
-
- /* teardown any resources to do with this framebuffer */
- void (*fb_destroy)(struct fb_info *info);
-
- /* called at KDB enter and leave time to prepare the console */
- int (*fb_debug_enter)(struct fb_info *info);
- int (*fb_debug_leave)(struct fb_info *info);
-};
-
-#ifdef CONFIG_FB_TILEBLITTING
-#define FB_TILE_CURSOR_NONE 0
-#define FB_TILE_CURSOR_UNDERLINE 1
-#define FB_TILE_CURSOR_LOWER_THIRD 2
-#define FB_TILE_CURSOR_LOWER_HALF 3
-#define FB_TILE_CURSOR_TWO_THIRDS 4
-#define FB_TILE_CURSOR_BLOCK 5
-
-struct fb_tilemap {
- __u32 width; /* width of each tile in pixels */
- __u32 height; /* height of each tile in scanlines */
- __u32 depth; /* color depth of each tile */
- __u32 length; /* number of tiles in the map */
- const __u8 *data; /* actual tile map: a bitmap array, packed
- to the nearest byte */
-};
-
-struct fb_tilerect {
- __u32 sx; /* origin in the x-axis */
- __u32 sy; /* origin in the y-axis */
- __u32 width; /* number of tiles in the x-axis */
- __u32 height; /* number of tiles in the y-axis */
- __u32 index; /* what tile to use: index to tile map */
- __u32 fg; /* foreground color */
- __u32 bg; /* background color */
- __u32 rop; /* raster operation */
-};
-
-struct fb_tilearea {
- __u32 sx; /* source origin in the x-axis */
- __u32 sy; /* source origin in the y-axis */
- __u32 dx; /* destination origin in the x-axis */
- __u32 dy; /* destination origin in the y-axis */
- __u32 width; /* number of tiles in the x-axis */
- __u32 height; /* number of tiles in the y-axis */
-};
-
-struct fb_tileblit {
- __u32 sx; /* origin in the x-axis */
- __u32 sy; /* origin in the y-axis */
- __u32 width; /* number of tiles in the x-axis */
- __u32 height; /* number of tiles in the y-axis */
- __u32 fg; /* foreground color */
- __u32 bg; /* background color */
- __u32 length; /* number of tiles to draw */
- __u32 *indices; /* array of indices to tile map */
-};
-
-struct fb_tilecursor {
- __u32 sx; /* cursor position in the x-axis */
- __u32 sy; /* cursor position in the y-axis */
- __u32 mode; /* 0 = erase, 1 = draw */
- __u32 shape; /* see FB_TILE_CURSOR_* */
- __u32 fg; /* foreground color */
- __u32 bg; /* background color */
-};
-
-struct fb_tile_ops {
- /* set tile characteristics */
- void (*fb_settile)(struct fb_info *info, struct fb_tilemap *map);
-
- /* all dimensions from hereon are in terms of tiles */
-
- /* move a rectangular region of tiles from one area to another*/
- void (*fb_tilecopy)(struct fb_info *info, struct fb_tilearea *area);
- /* fill a rectangular region with a tile */
- void (*fb_tilefill)(struct fb_info *info, struct fb_tilerect *rect);
- /* copy an array of tiles */
- void (*fb_tileblit)(struct fb_info *info, struct fb_tileblit *blit);
- /* cursor */
- void (*fb_tilecursor)(struct fb_info *info,
- struct fb_tilecursor *cursor);
- /* get maximum length of the tile map */
- int (*fb_get_tilemax)(struct fb_info *info);
-};
-#endif /* CONFIG_FB_TILEBLITTING */
-
-/* FBINFO_* = fb_info.flags bit flags */
-#define FBINFO_MODULE 0x0001 /* Low-level driver is a module */
-#define FBINFO_HWACCEL_DISABLED 0x0002
- /* When FBINFO_HWACCEL_DISABLED is set:
- * Hardware acceleration is turned off. Software implementations
- * of required functions (copyarea(), fillrect(), and imageblit())
- * takes over; acceleration engine should be in a quiescent state */
-
-/* hints */
-#define FBINFO_VIRTFB 0x0004 /* FB is System RAM, not device. */
-#define FBINFO_PARTIAL_PAN_OK 0x0040 /* otw use pan only for double-buffering */
-#define FBINFO_READS_FAST 0x0080 /* soft-copy faster than rendering */
-
-/* hardware supported ops */
-/* semantics: when a bit is set, it indicates that the operation is
- * accelerated by hardware.
- * required functions will still work even if the bit is not set.
- * optional functions may not even exist if the flag bit is not set.
- */
-#define FBINFO_HWACCEL_NONE 0x0000
-#define FBINFO_HWACCEL_COPYAREA 0x0100 /* required */
-#define FBINFO_HWACCEL_FILLRECT 0x0200 /* required */
-#define FBINFO_HWACCEL_IMAGEBLIT 0x0400 /* required */
-#define FBINFO_HWACCEL_ROTATE 0x0800 /* optional */
-#define FBINFO_HWACCEL_XPAN 0x1000 /* optional */
-#define FBINFO_HWACCEL_YPAN 0x2000 /* optional */
-#define FBINFO_HWACCEL_YWRAP 0x4000 /* optional */
-
-#define FBINFO_MISC_USEREVENT 0x10000 /* event request
- from userspace */
-#define FBINFO_MISC_TILEBLITTING 0x20000 /* use tile blitting */
-
-/* A driver may set this flag to indicate that it does want a set_par to be
- * called every time when fbcon_switch is executed. The advantage is that with
- * this flag set you can really be sure that set_par is always called before
- * any of the functions dependent on the correct hardware state or altering
- * that state, even if you are using some broken X releases. The disadvantage
- * is that it introduces unwanted delays to every console switch if set_par
- * is slow. It is a good idea to try this flag in the drivers initialization
- * code whenever there is a bug report related to switching between X and the
- * framebuffer console.
- */
-#define FBINFO_MISC_ALWAYS_SETPAR 0x40000
-
-/* where the fb is a firmware driver, and can be replaced with a proper one */
-#define FBINFO_MISC_FIRMWARE 0x80000
-/*
- * Host and GPU endianness differ.
- */
-#define FBINFO_FOREIGN_ENDIAN 0x100000
-/*
- * Big endian math. This is the same flags as above, but with different
- * meaning, it is set by the fb subsystem depending FOREIGN_ENDIAN flag
- * and host endianness. Drivers should not use this flag.
- */
-#define FBINFO_BE_MATH 0x100000
-
-/* report to the VT layer that this fb driver can accept forced console
- output like oopses */
-#define FBINFO_CAN_FORCE_OUTPUT 0x200000
-
-struct fb_info {
- atomic_t count;
- int node;
- int flags;
- struct mutex lock; /* Lock for open/release/ioctl funcs */
- struct mutex mm_lock; /* Lock for fb_mmap and smem_* fields */
- struct fb_var_screeninfo var; /* Current var */
- struct fb_fix_screeninfo fix; /* Current fix */
- struct fb_monspecs monspecs; /* Current Monitor specs */
- struct work_struct queue; /* Framebuffer event queue */
- struct fb_pixmap pixmap; /* Image hardware mapper */
- struct fb_pixmap sprite; /* Cursor hardware mapper */
- struct fb_cmap cmap; /* Current cmap */
- struct list_head modelist; /* mode list */
- struct fb_videomode *mode; /* current mode */
-
-#ifdef CONFIG_FB_BACKLIGHT
- /* assigned backlight device */
- /* set before framebuffer registration,
- remove after unregister */
- struct backlight_device *bl_dev;
-
- /* Backlight level curve */
- struct mutex bl_curve_mutex;
- u8 bl_curve[FB_BACKLIGHT_LEVELS];
-#endif
-#ifdef CONFIG_FB_DEFERRED_IO
- struct delayed_work deferred_work;
- struct fb_deferred_io *fbdefio;
-#endif
-
- struct fb_ops *fbops;
- struct device *device; /* This is the parent */
- struct device *dev; /* This is this fb device */
- int class_flag; /* private sysfs flags */
-#ifdef CONFIG_FB_TILEBLITTING
- struct fb_tile_ops *tileops; /* Tile Blitting */
-#endif
- char __iomem *screen_base; /* Virtual address */
- unsigned long screen_size; /* Amount of ioremapped VRAM or 0 */
- void *pseudo_palette; /* Fake palette of 16 colors */
-#define FBINFO_STATE_RUNNING 0
-#define FBINFO_STATE_SUSPENDED 1
- u32 state; /* Hardware state i.e suspend */
- void *fbcon_par; /* fbcon use-only private area */
- /* From here on everything is device dependent */
- void *par;
- /* we need the PCI or similar aperture base/size not
- smem_start/size as smem_start may just be an object
- allocated inside the aperture so may not actually overlap */
- struct apertures_struct {
- unsigned int count;
- struct aperture {
- resource_size_t base;
- resource_size_t size;
- } ranges[0];
- } *apertures;
-};
-
-static inline struct apertures_struct *alloc_apertures(unsigned int max_num) {
- struct apertures_struct *a = kzalloc(sizeof(struct apertures_struct)
- + max_num * sizeof(struct aperture), GFP_KERNEL);
- if (!a)
- return NULL;
- a->count = max_num;
- return a;
-}
-
-#ifdef MODULE
-#define FBINFO_DEFAULT FBINFO_MODULE
-#else
-#define FBINFO_DEFAULT 0
-#endif
-
-// This will go away
-#define FBINFO_FLAG_MODULE FBINFO_MODULE
-#define FBINFO_FLAG_DEFAULT FBINFO_DEFAULT
-
-/* This will go away
- * fbset currently hacks in FB_ACCELF_TEXT into var.accel_flags
- * when it wants to turn the acceleration engine on. This is
- * really a separate operation, and should be modified via sysfs.
- * But for now, we leave it broken with the following define
- */
-#define STUPID_ACCELF_TEXT_SHIT
-
-// This will go away
-#if defined(__sparc__)
-
-/* We map all of our framebuffers such that big-endian accesses
- * are what we want, so the following is sufficient.
- */
-
-// This will go away
-#define fb_readb sbus_readb
-#define fb_readw sbus_readw
-#define fb_readl sbus_readl
-#define fb_readq sbus_readq
-#define fb_writeb sbus_writeb
-#define fb_writew sbus_writew
-#define fb_writel sbus_writel
-#define fb_writeq sbus_writeq
-#define fb_memset sbus_memset_io
-#define fb_memcpy_fromfb sbus_memcpy_fromio
-#define fb_memcpy_tofb sbus_memcpy_toio
-
-#elif defined(__i386__) || defined(__alpha__) || defined(__x86_64__) || defined(__hppa__) || defined(__sh__) || defined(__powerpc__) || defined(__avr32__) || defined(__bfin__)
-
-#define fb_readb __raw_readb
-#define fb_readw __raw_readw
-#define fb_readl __raw_readl
-#define fb_readq __raw_readq
-#define fb_writeb __raw_writeb
-#define fb_writew __raw_writew
-#define fb_writel __raw_writel
-#define fb_writeq __raw_writeq
-#define fb_memset memset_io
-#define fb_memcpy_fromfb memcpy_fromio
-#define fb_memcpy_tofb memcpy_toio
-
-#else
-
-#define fb_readb(addr) (*(volatile u8 *) (addr))
-#define fb_readw(addr) (*(volatile u16 *) (addr))
-#define fb_readl(addr) (*(volatile u32 *) (addr))
-#define fb_readq(addr) (*(volatile u64 *) (addr))
-#define fb_writeb(b,addr) (*(volatile u8 *) (addr) = (b))
-#define fb_writew(b,addr) (*(volatile u16 *) (addr) = (b))
-#define fb_writel(b,addr) (*(volatile u32 *) (addr) = (b))
-#define fb_writeq(b,addr) (*(volatile u64 *) (addr) = (b))
-#define fb_memset memset
-#define fb_memcpy_fromfb memcpy
-#define fb_memcpy_tofb memcpy
-
-#endif
-
-#define FB_LEFT_POS(p, bpp) (fb_be_math(p) ? (32 - (bpp)) : 0)
-#define FB_SHIFT_HIGH(p, val, bits) (fb_be_math(p) ? (val) >> (bits) : \
- (val) << (bits))
-#define FB_SHIFT_LOW(p, val, bits) (fb_be_math(p) ? (val) << (bits) : \
- (val) >> (bits))
-
- /*
- * `Generic' versions of the frame buffer device operations
- */
-
-extern int fb_set_var(struct fb_info *info, struct fb_var_screeninfo *var);
-extern int fb_pan_display(struct fb_info *info, struct fb_var_screeninfo *var);
-extern int fb_blank(struct fb_info *info, int blank);
-extern void cfb_fillrect(struct fb_info *info, const struct fb_fillrect *rect);
-extern void cfb_copyarea(struct fb_info *info, const struct fb_copyarea *area);
-extern void cfb_imageblit(struct fb_info *info, const struct fb_image *image);
-/*
- * Drawing operations where framebuffer is in system RAM
- */
-extern void sys_fillrect(struct fb_info *info, const struct fb_fillrect *rect);
-extern void sys_copyarea(struct fb_info *info, const struct fb_copyarea *area);
-extern void sys_imageblit(struct fb_info *info, const struct fb_image *image);
-extern ssize_t fb_sys_read(struct fb_info *info, char __user *buf,
- size_t count, loff_t *ppos);
-extern ssize_t fb_sys_write(struct fb_info *info, const char __user *buf,
- size_t count, loff_t *ppos);
-
-/* drivers/video/fbmem.c */
-extern int register_framebuffer(struct fb_info *fb_info);
-extern int unregister_framebuffer(struct fb_info *fb_info);
-extern int unlink_framebuffer(struct fb_info *fb_info);
-extern void remove_conflicting_framebuffers(struct apertures_struct *a,
- const char *name, bool primary);
-extern int fb_prepare_logo(struct fb_info *fb_info, int rotate);
-extern int fb_show_logo(struct fb_info *fb_info, int rotate);
-extern char* fb_get_buffer_offset(struct fb_info *info, struct fb_pixmap *buf, u32 size);
-extern void fb_pad_unaligned_buffer(u8 *dst, u32 d_pitch, u8 *src, u32 idx,
- u32 height, u32 shift_high, u32 shift_low, u32 mod);
-extern void fb_pad_aligned_buffer(u8 *dst, u32 d_pitch, u8 *src, u32 s_pitch, u32 height);
-extern void fb_set_suspend(struct fb_info *info, int state);
-extern int fb_get_color_depth(struct fb_var_screeninfo *var,
- struct fb_fix_screeninfo *fix);
-extern int fb_get_options(char *name, char **option);
-extern int fb_new_modelist(struct fb_info *info);
-
-extern struct fb_info *registered_fb[FB_MAX];
-extern int num_registered_fb;
-extern struct class *fb_class;
-
-extern int lock_fb_info(struct fb_info *info);
-
-static inline void unlock_fb_info(struct fb_info *info)
-{
- mutex_unlock(&info->lock);
-}
-
-static inline void __fb_pad_aligned_buffer(u8 *dst, u32 d_pitch,
- u8 *src, u32 s_pitch, u32 height)
-{
- int i, j;
-
- d_pitch -= s_pitch;
-
- for (i = height; i--; ) {
- /* s_pitch is a few bytes at the most, memcpy is suboptimal */
- for (j = 0; j < s_pitch; j++)
- *dst++ = *src++;
- dst += d_pitch;
- }
-}
-
-/* drivers/video/fb_defio.c */
-extern void fb_deferred_io_init(struct fb_info *info);
-extern void fb_deferred_io_open(struct fb_info *info,
- struct inode *inode,
- struct file *file);
-extern void fb_deferred_io_cleanup(struct fb_info *info);
-extern int fb_deferred_io_fsync(struct file *file, loff_t start,
- loff_t end, int datasync);
-
-static inline bool fb_be_math(struct fb_info *info)
-{
-#ifdef CONFIG_FB_FOREIGN_ENDIAN
-#if defined(CONFIG_FB_BOTH_ENDIAN)
- return info->flags & FBINFO_BE_MATH;
-#elif defined(CONFIG_FB_BIG_ENDIAN)
- return true;
-#elif defined(CONFIG_FB_LITTLE_ENDIAN)
- return false;
-#endif /* CONFIG_FB_BOTH_ENDIAN */
-#else
-#ifdef __BIG_ENDIAN
- return true;
-#else
- return false;
-#endif /* __BIG_ENDIAN */
-#endif /* CONFIG_FB_FOREIGN_ENDIAN */
-}
-
-/* drivers/video/fbsysfs.c */
-extern struct fb_info *framebuffer_alloc(size_t size, struct device *dev);
-extern void framebuffer_release(struct fb_info *info);
-extern int fb_init_device(struct fb_info *fb_info);
-extern void fb_cleanup_device(struct fb_info *head);
-extern void fb_bl_default_curve(struct fb_info *fb_info, u8 off, u8 min, u8 max);
-
-/* drivers/video/fbmon.c */
-#define FB_MAXTIMINGS 0
-#define FB_VSYNCTIMINGS 1
-#define FB_HSYNCTIMINGS 2
-#define FB_DCLKTIMINGS 3
-#define FB_IGNOREMON 0x100
-
-#define FB_MODE_IS_UNKNOWN 0
-#define FB_MODE_IS_DETAILED 1
-#define FB_MODE_IS_STANDARD 2
-#define FB_MODE_IS_VESA 4
-#define FB_MODE_IS_CALCULATED 8
-#define FB_MODE_IS_FIRST 16
-#define FB_MODE_IS_FROM_VAR 32
-
-extern int fbmon_dpms(const struct fb_info *fb_info);
-extern int fb_get_mode(int flags, u32 val, struct fb_var_screeninfo *var,
- struct fb_info *info);
-extern int fb_validate_mode(const struct fb_var_screeninfo *var,
- struct fb_info *info);
-extern int fb_parse_edid(unsigned char *edid, struct fb_var_screeninfo *var);
-extern const unsigned char *fb_firmware_edid(struct device *device);
-extern void fb_edid_to_monspecs(unsigned char *edid,
- struct fb_monspecs *specs);
-extern void fb_edid_add_monspecs(unsigned char *edid,
- struct fb_monspecs *specs);
-extern void fb_destroy_modedb(struct fb_videomode *modedb);
-extern int fb_find_mode_cvt(struct fb_videomode *mode, int margins, int rb);
-extern unsigned char *fb_ddc_read(struct i2c_adapter *adapter);
-
-/* drivers/video/modedb.c */
-#define VESA_MODEDB_SIZE 34
-extern void fb_var_to_videomode(struct fb_videomode *mode,
- const struct fb_var_screeninfo *var);
-extern void fb_videomode_to_var(struct fb_var_screeninfo *var,
- const struct fb_videomode *mode);
-extern int fb_mode_is_equal(const struct fb_videomode *mode1,
- const struct fb_videomode *mode2);
-extern int fb_add_videomode(const struct fb_videomode *mode,
- struct list_head *head);
-extern void fb_delete_videomode(const struct fb_videomode *mode,
- struct list_head *head);
-extern const struct fb_videomode *fb_match_mode(const struct fb_var_screeninfo *var,
- struct list_head *head);
-extern const struct fb_videomode *fb_find_best_mode(const struct fb_var_screeninfo *var,
- struct list_head *head);
-extern const struct fb_videomode *fb_find_nearest_mode(const struct fb_videomode *mode,
- struct list_head *head);
-extern void fb_destroy_modelist(struct list_head *head);
-extern void fb_videomode_to_modelist(const struct fb_videomode *modedb, int num,
- struct list_head *head);
-extern const struct fb_videomode *fb_find_best_display(const struct fb_monspecs *specs,
- struct list_head *head);
-
-/* drivers/video/fbcmap.c */
-extern int fb_alloc_cmap(struct fb_cmap *cmap, int len, int transp);
-extern int fb_alloc_cmap_gfp(struct fb_cmap *cmap, int len, int transp, gfp_t flags);
-extern void fb_dealloc_cmap(struct fb_cmap *cmap);
-extern int fb_copy_cmap(const struct fb_cmap *from, struct fb_cmap *to);
-extern int fb_cmap_to_user(const struct fb_cmap *from, struct fb_cmap_user *to);
-extern int fb_set_cmap(struct fb_cmap *cmap, struct fb_info *fb_info);
-extern int fb_set_user_cmap(struct fb_cmap_user *cmap, struct fb_info *fb_info);
-extern const struct fb_cmap *fb_default_cmap(int len);
-extern void fb_invert_cmaps(void);
-
-struct fb_videomode {
- const char *name; /* optional */
- u32 refresh; /* optional */
- u32 xres;
- u32 yres;
- u32 pixclock;
- u32 left_margin;
- u32 right_margin;
- u32 upper_margin;
- u32 lower_margin;
- u32 hsync_len;
- u32 vsync_len;
- u32 sync;
- u32 vmode;
- u32 flag;
-};
-
-extern const char *fb_mode_option;
-extern const struct fb_videomode vesa_modes[];
-extern const struct fb_videomode cea_modes[64];
-
-struct fb_modelist {
- struct list_head list;
- struct fb_videomode mode;
-};
-
-extern int fb_find_mode(struct fb_var_screeninfo *var,
- struct fb_info *info, const char *mode_option,
- const struct fb_videomode *db,
- unsigned int dbsize,
- const struct fb_videomode *default_mode,
- unsigned int default_bpp);
-
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_FB_H */
diff --git a/ANDROID_3.4.5/include/linux/fcdevice.h b/ANDROID_3.4.5/include/linux/fcdevice.h
deleted file mode 100644
index e460ef83..00000000
--- a/ANDROID_3.4.5/include/linux/fcdevice.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. NET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Definitions for the Fibre Channel handlers.
- *
- * Version: @(#)fcdevice.h 1.0.0 09/26/98
- *
- * Authors: Vineet Abraham <vma@iol.unh.edu>
- *
- * Relocated to include/linux where it belongs by Alan Cox
- * <gw4pts@gw4pts.ampr.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.
- *
- * WARNING: This move may well be temporary. This file will get merged with others RSN.
- *
- */
-#ifndef _LINUX_FCDEVICE_H
-#define _LINUX_FCDEVICE_H
-
-
-#include <linux/if_fc.h>
-
-#ifdef __KERNEL__
-extern struct net_device *alloc_fcdev(int sizeof_priv);
-#endif
-
-#endif /* _LINUX_FCDEVICE_H */
diff --git a/ANDROID_3.4.5/include/linux/fcntl.h b/ANDROID_3.4.5/include/linux/fcntl.h
deleted file mode 100644
index f550f894..00000000
--- a/ANDROID_3.4.5/include/linux/fcntl.h
+++ /dev/null
@@ -1,79 +0,0 @@
-#ifndef _LINUX_FCNTL_H
-#define _LINUX_FCNTL_H
-
-#include <asm/fcntl.h>
-
-#define F_SETLEASE (F_LINUX_SPECIFIC_BASE + 0)
-#define F_GETLEASE (F_LINUX_SPECIFIC_BASE + 1)
-
-/*
- * Cancel a blocking posix lock; internal use only until we expose an
- * asynchronous lock api to userspace:
- */
-#define F_CANCELLK (F_LINUX_SPECIFIC_BASE + 5)
-
-/* Create a file descriptor with FD_CLOEXEC set. */
-#define F_DUPFD_CLOEXEC (F_LINUX_SPECIFIC_BASE + 6)
-
-/*
- * Request nofications on a directory.
- * See below for events that may be notified.
- */
-#define F_NOTIFY (F_LINUX_SPECIFIC_BASE+2)
-
-/*
- * Set and get of pipe page size array
- */
-#define F_SETPIPE_SZ (F_LINUX_SPECIFIC_BASE + 7)
-#define F_GETPIPE_SZ (F_LINUX_SPECIFIC_BASE + 8)
-
-/*
- * Types of directory notifications that may be requested.
- */
-#define DN_ACCESS 0x00000001 /* File accessed */
-#define DN_MODIFY 0x00000002 /* File modified */
-#define DN_CREATE 0x00000004 /* File created */
-#define DN_DELETE 0x00000008 /* File removed */
-#define DN_RENAME 0x00000010 /* File renamed */
-#define DN_ATTRIB 0x00000020 /* File changed attibutes */
-#define DN_MULTISHOT 0x80000000 /* Don't remove notifier */
-
-#define AT_FDCWD -100 /* Special value used to indicate
- openat should use the current
- working directory. */
-#define AT_SYMLINK_NOFOLLOW 0x100 /* Do not follow symbolic links. */
-#define AT_REMOVEDIR 0x200 /* Remove directory instead of
- unlinking file. */
-#define AT_SYMLINK_FOLLOW 0x400 /* Follow symbolic links. */
-#define AT_NO_AUTOMOUNT 0x800 /* Suppress terminal automount traversal */
-#define AT_EMPTY_PATH 0x1000 /* Allow empty relative pathname */
-
-#ifdef __KERNEL__
-
-#ifndef force_o_largefile
-#define force_o_largefile() (BITS_PER_LONG != 32)
-#endif
-
-#if BITS_PER_LONG == 32
-#define IS_GETLK32(cmd) ((cmd) == F_GETLK)
-#define IS_SETLK32(cmd) ((cmd) == F_SETLK)
-#define IS_SETLKW32(cmd) ((cmd) == F_SETLKW)
-#define IS_GETLK64(cmd) ((cmd) == F_GETLK64)
-#define IS_SETLK64(cmd) ((cmd) == F_SETLK64)
-#define IS_SETLKW64(cmd) ((cmd) == F_SETLKW64)
-#else
-#define IS_GETLK32(cmd) (0)
-#define IS_SETLK32(cmd) (0)
-#define IS_SETLKW32(cmd) (0)
-#define IS_GETLK64(cmd) ((cmd) == F_GETLK)
-#define IS_SETLK64(cmd) ((cmd) == F_SETLK)
-#define IS_SETLKW64(cmd) ((cmd) == F_SETLKW)
-#endif /* BITS_PER_LONG == 32 */
-
-#define IS_GETLK(cmd) (IS_GETLK32(cmd) || IS_GETLK64(cmd))
-#define IS_SETLK(cmd) (IS_SETLK32(cmd) || IS_SETLK64(cmd))
-#define IS_SETLKW(cmd) (IS_SETLKW32(cmd) || IS_SETLKW64(cmd))
-
-#endif /* __KERNEL__ */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/fd.h b/ANDROID_3.4.5/include/linux/fd.h
deleted file mode 100644
index 72202b1b..00000000
--- a/ANDROID_3.4.5/include/linux/fd.h
+++ /dev/null
@@ -1,402 +0,0 @@
-#ifndef _LINUX_FD_H
-#define _LINUX_FD_H
-
-#include <linux/ioctl.h>
-#include <linux/compiler.h>
-
-/* New file layout: Now the ioctl definitions immediately follow the
- * definitions of the structures that they use */
-
-/*
- * Geometry
- */
-struct floppy_struct {
- unsigned int size, /* nr of sectors total */
- sect, /* sectors per track */
- head, /* nr of heads */
- track, /* nr of tracks */
- stretch; /* bit 0 !=0 means double track steps */
- /* bit 1 != 0 means swap sides */
- /* bits 2..9 give the first sector */
- /* number (the LSB is flipped) */
-#define FD_STRETCH 1
-#define FD_SWAPSIDES 2
-#define FD_ZEROBASED 4
-#define FD_SECTBASEMASK 0x3FC
-#define FD_MKSECTBASE(s) (((s) ^ 1) << 2)
-#define FD_SECTBASE(floppy) ((((floppy)->stretch & FD_SECTBASEMASK) >> 2) ^ 1)
-
- unsigned char gap, /* gap1 size */
-
- rate, /* data rate. |= 0x40 for perpendicular */
-#define FD_2M 0x4
-#define FD_SIZECODEMASK 0x38
-#define FD_SIZECODE(floppy) (((((floppy)->rate&FD_SIZECODEMASK)>> 3)+ 2) %8)
-#define FD_SECTSIZE(floppy) ( (floppy)->rate & FD_2M ? \
- 512 : 128 << FD_SIZECODE(floppy) )
-#define FD_PERP 0x40
-
- spec1, /* stepping rate, head unload time */
- fmt_gap; /* gap2 size */
- const char * name; /* used only for predefined formats */
-};
-
-
-/* commands needing write access have 0x40 set */
-/* commands needing super user access have 0x80 set */
-
-#define FDCLRPRM _IO(2, 0x41)
-/* clear user-defined parameters */
-
-#define FDSETPRM _IOW(2, 0x42, struct floppy_struct)
-#define FDSETMEDIAPRM FDSETPRM
-/* set user-defined parameters for current media */
-
-#define FDDEFPRM _IOW(2, 0x43, struct floppy_struct)
-#define FDGETPRM _IOR(2, 0x04, struct floppy_struct)
-#define FDDEFMEDIAPRM FDDEFPRM
-#define FDGETMEDIAPRM FDGETPRM
-/* set/get disk parameters */
-
-
-#define FDMSGON _IO(2,0x45)
-#define FDMSGOFF _IO(2,0x46)
-/* issue/don't issue kernel messages on media type change */
-
-
-/*
- * Formatting (obsolete)
- */
-#define FD_FILL_BYTE 0xF6 /* format fill byte. */
-
-struct format_descr {
- unsigned int device,head,track;
-};
-
-#define FDFMTBEG _IO(2,0x47)
-/* begin formatting a disk */
-#define FDFMTTRK _IOW(2,0x48, struct format_descr)
-/* format the specified track */
-#define FDFMTEND _IO(2,0x49)
-/* end formatting a disk */
-
-
-/*
- * Error thresholds
- */
-struct floppy_max_errors {
- unsigned int
- abort, /* number of errors to be reached before aborting */
- read_track, /* maximal number of errors permitted to read an
- * entire track at once */
- reset, /* maximal number of errors before a reset is tried */
- recal, /* maximal number of errors before a recalibrate is
- * tried */
-
- /*
- * Threshold for reporting FDC errors to the console.
- * Setting this to zero may flood your screen when using
- * ultra cheap floppies ;-)
- */
- reporting;
-
-};
-
-#define FDSETEMSGTRESH _IO(2,0x4a)
-/* set fdc error reporting threshold */
-
-#define FDFLUSH _IO(2,0x4b)
-/* flush buffers for media; either for verifying media, or for
- * handling a media change without closing the file descriptor */
-
-#define FDSETMAXERRS _IOW(2, 0x4c, struct floppy_max_errors)
-#define FDGETMAXERRS _IOR(2, 0x0e, struct floppy_max_errors)
-/* set/get abortion and read_track threshold. See also floppy_drive_params
- * structure */
-
-
-typedef char floppy_drive_name[16];
-#define FDGETDRVTYP _IOR(2, 0x0f, floppy_drive_name)
-/* get drive type: 5 1/4 or 3 1/2 */
-
-
-/*
- * Drive parameters (user modifiable)
- */
-struct floppy_drive_params {
- signed char cmos; /* CMOS type */
-
- /* Spec2 is (HLD<<1 | ND), where HLD is head load time (1=2ms, 2=4 ms
- * etc) and ND is set means no DMA. Hardcoded to 6 (HLD=6ms, use DMA).
- */
- unsigned long max_dtr; /* Step rate, usec */
- unsigned long hlt; /* Head load/settle time, msec */
- unsigned long hut; /* Head unload time (remnant of
- * 8" drives) */
- unsigned long srt; /* Step rate, usec */
-
- unsigned long spinup; /* time needed for spinup (expressed
- * in jiffies) */
- unsigned long spindown; /* timeout needed for spindown */
- unsigned char spindown_offset; /* decides in which position the disk
- * will stop */
- unsigned char select_delay; /* delay to wait after select */
- unsigned char rps; /* rotations per second */
- unsigned char tracks; /* maximum number of tracks */
- unsigned long timeout; /* timeout for interrupt requests */
-
- unsigned char interleave_sect; /* if there are more sectors, use
- * interleave */
-
- struct floppy_max_errors max_errors;
-
- char flags; /* various flags, including ftd_msg */
-/*
- * Announce successful media type detection and media information loss after
- * disk changes.
- * Also used to enable/disable printing of overrun warnings.
- */
-
-#define FTD_MSG 0x10
-#define FD_BROKEN_DCL 0x20
-#define FD_DEBUG 0x02
-#define FD_SILENT_DCL_CLEAR 0x4
-#define FD_INVERTED_DCL 0x80 /* must be 0x80, because of hardware
- considerations */
-
- char read_track; /* use readtrack during probing? */
-
-/*
- * Auto-detection. Each drive type has eight formats which are
- * used in succession to try to read the disk. If the FDC cannot lock onto
- * the disk, the next format is tried. This uses the variable 'probing'.
- */
- short autodetect[8]; /* autodetected formats */
-
- int checkfreq; /* how often should the drive be checked for disk
- * changes */
- int native_format; /* native format of this drive */
-};
-
-enum {
- FD_NEED_TWADDLE_BIT, /* more magic */
- FD_VERIFY_BIT, /* inquire for write protection */
- FD_DISK_NEWCHANGE_BIT, /* change detected, and no action undertaken yet
- * to clear media change status */
- FD_UNUSED_BIT,
- FD_DISK_CHANGED_BIT, /* disk has been changed since last i/o */
- FD_DISK_WRITABLE_BIT /* disk is writable */
-};
-
-#define FDSETDRVPRM _IOW(2, 0x90, struct floppy_drive_params)
-#define FDGETDRVPRM _IOR(2, 0x11, struct floppy_drive_params)
-/* set/get drive parameters */
-
-
-/*
- * Current drive state (not directly modifiable by user, readonly)
- */
-struct floppy_drive_struct {
- unsigned long flags;
-/* values for these flags */
-#define FD_NEED_TWADDLE (1 << FD_NEED_TWADDLE_BIT)
-#define FD_VERIFY (1 << FD_VERIFY_BIT)
-#define FD_DISK_NEWCHANGE (1 << FD_DISK_NEWCHANGE_BIT)
-#define FD_DISK_CHANGED (1 << FD_DISK_CHANGED_BIT)
-#define FD_DISK_WRITABLE (1 << FD_DISK_WRITABLE_BIT)
-
- unsigned long spinup_date;
- unsigned long select_date;
- unsigned long first_read_date;
- short probed_format;
- short track; /* current track */
- short maxblock; /* id of highest block read */
- short maxtrack; /* id of highest half track read */
- int generation; /* how many diskchanges? */
-
-/*
- * (User-provided) media information is _not_ discarded after a media change
- * if the corresponding keep_data flag is non-zero. Positive values are
- * decremented after each probe.
- */
- int keep_data;
-
- /* Prevent "aliased" accesses. */
- int fd_ref;
- int fd_device;
- unsigned long last_checked; /* when was the drive last checked for a disk
- * change? */
-
- char *dmabuf;
- int bufblocks;
-};
-
-#define FDGETDRVSTAT _IOR(2, 0x12, struct floppy_drive_struct)
-#define FDPOLLDRVSTAT _IOR(2, 0x13, struct floppy_drive_struct)
-/* get drive state: GET returns the cached state, POLL polls for new state */
-
-
-/*
- * reset FDC
- */
-enum reset_mode {
- FD_RESET_IF_NEEDED, /* reset only if the reset flags is set */
- FD_RESET_IF_RAWCMD, /* obsolete */
- FD_RESET_ALWAYS /* reset always */
-};
-#define FDRESET _IO(2, 0x54)
-
-
-/*
- * FDC state
- */
-struct floppy_fdc_state {
- int spec1; /* spec1 value last used */
- int spec2; /* spec2 value last used */
- int dtr;
- unsigned char version; /* FDC version code */
- unsigned char dor;
- unsigned long address; /* io address */
- unsigned int rawcmd:2;
- unsigned int reset:1;
- unsigned int need_configure:1;
- unsigned int perp_mode:2;
- unsigned int has_fifo:1;
- unsigned int driver_version; /* version code for floppy driver */
-#define FD_DRIVER_VERSION 0x100
-/* user programs using the floppy API should use floppy_fdc_state to
- * get the version number of the floppy driver that they are running
- * on. If this version number is bigger than the one compiled into the
- * user program (the FD_DRIVER_VERSION define), it should be prepared
- * to bigger structures
- */
-
- unsigned char track[4];
- /* Position of the heads of the 4 units attached to this FDC,
- * as stored on the FDC. In the future, the position as stored
- * on the FDC might not agree with the actual physical
- * position of these drive heads. By allowing such
- * disagreement, it will be possible to reset the FDC without
- * incurring the expensive cost of repositioning all heads.
- * Right now, these positions are hard wired to 0. */
-
-};
-
-#define FDGETFDCSTAT _IOR(2, 0x15, struct floppy_fdc_state)
-
-
-/*
- * Asynchronous Write error tracking
- */
-struct floppy_write_errors {
- /* Write error logging.
- *
- * These fields can be cleared with the FDWERRORCLR ioctl.
- * Only writes that were attempted but failed due to a physical media
- * error are logged. write(2) calls that fail and return an error code
- * to the user process are not counted.
- */
-
- unsigned int write_errors; /* number of physical write errors
- * encountered */
-
- /* position of first and last write errors */
- unsigned long first_error_sector;
- int first_error_generation;
- unsigned long last_error_sector;
- int last_error_generation;
-
- unsigned int badness; /* highest retry count for a read or write
- * operation */
-};
-
-#define FDWERRORCLR _IO(2, 0x56)
-/* clear write error and badness information */
-#define FDWERRORGET _IOR(2, 0x17, struct floppy_write_errors)
-/* get write error and badness information */
-
-
-/*
- * Raw commands
- */
-/* new interface flag: now we can do them in batches */
-#define FDHAVEBATCHEDRAWCMD
-
-struct floppy_raw_cmd {
- unsigned int flags;
-#define FD_RAW_READ 1
-#define FD_RAW_WRITE 2
-#define FD_RAW_NO_MOTOR 4
-#define FD_RAW_DISK_CHANGE 4 /* out: disk change flag was set */
-#define FD_RAW_INTR 8 /* wait for an interrupt */
-#define FD_RAW_SPIN 0x10 /* spin up the disk for this command */
-#define FD_RAW_NO_MOTOR_AFTER 0x20 /* switch the motor off after command
- * completion */
-#define FD_RAW_NEED_DISK 0x40 /* this command needs a disk to be present */
-#define FD_RAW_NEED_SEEK 0x80 /* this command uses an implied seek (soft) */
-
-/* more "in" flags */
-#define FD_RAW_MORE 0x100 /* more records follow */
-#define FD_RAW_STOP_IF_FAILURE 0x200 /* stop if we encounter a failure */
-#define FD_RAW_STOP_IF_SUCCESS 0x400 /* stop if command successful */
-#define FD_RAW_SOFTFAILURE 0x800 /* consider the return value for failure
- * detection too */
-
-/* more "out" flags */
-#define FD_RAW_FAILURE 0x10000 /* command sent to fdc, fdc returned error */
-#define FD_RAW_HARDFAILURE 0x20000 /* fdc had to be reset, or timed out */
-
- void __user *data;
- char *kernel_data; /* location of data buffer in the kernel */
- struct floppy_raw_cmd *next; /* used for chaining of raw cmd's
- * within the kernel */
- long length; /* in: length of dma transfer. out: remaining bytes */
- long phys_length; /* physical length, if different from dma length */
- int buffer_length; /* length of allocated buffer */
-
- unsigned char rate;
- unsigned char cmd_count;
- unsigned char cmd[16];
- unsigned char reply_count;
- unsigned char reply[16];
- int track;
- int resultcode;
-
- int reserved1;
- int reserved2;
-};
-
-#define FDRAWCMD _IO(2, 0x58)
-/* send a raw command to the fdc. Structure size not included, because of
- * batches */
-
-#define FDTWADDLE _IO(2, 0x59)
-/* flicker motor-on bit before reading a sector. Experimental */
-
-
-#define FDEJECT _IO(2, 0x5a)
-/* eject the disk */
-
-
-#ifdef __KERNEL__
-#ifdef CONFIG_COMPAT
-#include <linux/compat.h>
-
-struct compat_floppy_struct {
- compat_uint_t size;
- compat_uint_t sect;
- compat_uint_t head;
- compat_uint_t track;
- compat_uint_t stretch;
- unsigned char gap;
- unsigned char rate;
- unsigned char spec1;
- unsigned char fmt_gap;
- const compat_caddr_t name;
-};
-
-#define FDGETPRM32 _IOR(2, 0x04, struct compat_floppy_struct)
-#endif
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/fddidevice.h b/ANDROID_3.4.5/include/linux/fddidevice.h
deleted file mode 100644
index 155bafd9..00000000
--- a/ANDROID_3.4.5/include/linux/fddidevice.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Definitions for the FDDI handlers.
- *
- * Version: @(#)fddidevice.h 1.0.0 08/12/96
- *
- * Author: Lawrence V. Stefani, <stefani@lkg.dec.com>
- *
- * fddidevice.h is based on previous trdevice.h work by
- * Ross Biro
- * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
- * Alan Cox, <gw4pts@gw4pts.ampr.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.
- */
-#ifndef _LINUX_FDDIDEVICE_H
-#define _LINUX_FDDIDEVICE_H
-
-#include <linux/if_fddi.h>
-
-#ifdef __KERNEL__
-extern __be16 fddi_type_trans(struct sk_buff *skb,
- struct net_device *dev);
-extern int fddi_change_mtu(struct net_device *dev, int new_mtu);
-extern struct net_device *alloc_fddidev(int sizeof_priv);
-#endif
-
-#endif /* _LINUX_FDDIDEVICE_H */
diff --git a/ANDROID_3.4.5/include/linux/fdreg.h b/ANDROID_3.4.5/include/linux/fdreg.h
deleted file mode 100644
index 61ce6416..00000000
--- a/ANDROID_3.4.5/include/linux/fdreg.h
+++ /dev/null
@@ -1,137 +0,0 @@
-#ifndef _LINUX_FDREG_H
-#define _LINUX_FDREG_H
-/*
- * This file contains some defines for the floppy disk controller.
- * Various sources. Mostly "IBM Microcomputers: A Programmers
- * Handbook", Sanches and Canton.
- */
-
-#ifdef FDPATCHES
-#define FD_IOPORT fdc_state[fdc].address
-#else
-/* It would be a lot saner just to force fdc_state[fdc].address to always
- be set ! FIXME */
-#define FD_IOPORT 0x3f0
-#endif
-
-/* Fd controller regs. S&C, about page 340 */
-#define FD_STATUS (4 + FD_IOPORT )
-#define FD_DATA (5 + FD_IOPORT )
-
-/* Digital Output Register */
-#define FD_DOR (2 + FD_IOPORT )
-
-/* Digital Input Register (read) */
-#define FD_DIR (7 + FD_IOPORT )
-
-/* Diskette Control Register (write)*/
-#define FD_DCR (7 + FD_IOPORT )
-
-/* Bits of main status register */
-#define STATUS_BUSYMASK 0x0F /* drive busy mask */
-#define STATUS_BUSY 0x10 /* FDC busy */
-#define STATUS_DMA 0x20 /* 0- DMA mode */
-#define STATUS_DIR 0x40 /* 0- cpu->fdc */
-#define STATUS_READY 0x80 /* Data reg ready */
-
-/* Bits of FD_ST0 */
-#define ST0_DS 0x03 /* drive select mask */
-#define ST0_HA 0x04 /* Head (Address) */
-#define ST0_NR 0x08 /* Not Ready */
-#define ST0_ECE 0x10 /* Equipment check error */
-#define ST0_SE 0x20 /* Seek end */
-#define ST0_INTR 0xC0 /* Interrupt code mask */
-
-/* Bits of FD_ST1 */
-#define ST1_MAM 0x01 /* Missing Address Mark */
-#define ST1_WP 0x02 /* Write Protect */
-#define ST1_ND 0x04 /* No Data - unreadable */
-#define ST1_OR 0x10 /* OverRun */
-#define ST1_CRC 0x20 /* CRC error in data or addr */
-#define ST1_EOC 0x80 /* End Of Cylinder */
-
-/* Bits of FD_ST2 */
-#define ST2_MAM 0x01 /* Missing Address Mark (again) */
-#define ST2_BC 0x02 /* Bad Cylinder */
-#define ST2_SNS 0x04 /* Scan Not Satisfied */
-#define ST2_SEH 0x08 /* Scan Equal Hit */
-#define ST2_WC 0x10 /* Wrong Cylinder */
-#define ST2_CRC 0x20 /* CRC error in data field */
-#define ST2_CM 0x40 /* Control Mark = deleted */
-
-/* Bits of FD_ST3 */
-#define ST3_HA 0x04 /* Head (Address) */
-#define ST3_DS 0x08 /* drive is double-sided */
-#define ST3_TZ 0x10 /* Track Zero signal (1=track 0) */
-#define ST3_RY 0x20 /* drive is ready */
-#define ST3_WP 0x40 /* Write Protect */
-#define ST3_FT 0x80 /* Drive Fault */
-
-/* Values for FD_COMMAND */
-#define FD_RECALIBRATE 0x07 /* move to track 0 */
-#define FD_SEEK 0x0F /* seek track */
-#define FD_READ 0xE6 /* read with MT, MFM, SKip deleted */
-#define FD_WRITE 0xC5 /* write with MT, MFM */
-#define FD_SENSEI 0x08 /* Sense Interrupt Status */
-#define FD_SPECIFY 0x03 /* specify HUT etc */
-#define FD_FORMAT 0x4D /* format one track */
-#define FD_VERSION 0x10 /* get version code */
-#define FD_CONFIGURE 0x13 /* configure FIFO operation */
-#define FD_PERPENDICULAR 0x12 /* perpendicular r/w mode */
-#define FD_GETSTATUS 0x04 /* read ST3 */
-#define FD_DUMPREGS 0x0E /* dump the contents of the fdc regs */
-#define FD_READID 0xEA /* prints the header of a sector */
-#define FD_UNLOCK 0x14 /* Fifo config unlock */
-#define FD_LOCK 0x94 /* Fifo config lock */
-#define FD_RSEEK_OUT 0x8f /* seek out (i.e. to lower tracks) */
-#define FD_RSEEK_IN 0xcf /* seek in (i.e. to higher tracks) */
-
-/* the following commands are new in the 82078. They are not used in the
- * floppy driver, except the first three. These commands may be useful for apps
- * which use the FDRAWCMD interface. For doc, get the 82078 spec sheets at
- * http://www.intel.com/design/archives/periphrl/docs/29046803.htm */
-
-#define FD_PARTID 0x18 /* part id ("extended" version cmd) */
-#define FD_SAVE 0x2e /* save fdc regs for later restore */
-#define FD_DRIVESPEC 0x8e /* drive specification: Access to the
- * 2 Mbps data transfer rate for tape
- * drives */
-
-#define FD_RESTORE 0x4e /* later restore */
-#define FD_POWERDOWN 0x27 /* configure FDC's powersave features */
-#define FD_FORMAT_N_WRITE 0xef /* format and write in one go. */
-#define FD_OPTION 0x33 /* ISO format (which is a clean way to
- * pack more sectors on a track) */
-
-/* DMA commands */
-#define DMA_READ 0x46
-#define DMA_WRITE 0x4A
-
-/* FDC version return types */
-#define FDC_NONE 0x00
-#define FDC_UNKNOWN 0x10 /* DO NOT USE THIS TYPE EXCEPT IF IDENTIFICATION
- FAILS EARLY */
-#define FDC_8272A 0x20 /* Intel 8272a, NEC 765 */
-#define FDC_765ED 0x30 /* Non-Intel 1MB-compatible FDC, can't detect */
-#define FDC_82072 0x40 /* Intel 82072; 8272a + FIFO + DUMPREGS */
-#define FDC_82072A 0x45 /* 82072A (on Sparcs) */
-#define FDC_82077_ORIG 0x51 /* Original version of 82077AA, sans LOCK */
-#define FDC_82077 0x52 /* 82077AA-1 */
-#define FDC_82078_UNKN 0x5f /* Unknown 82078 variant */
-#define FDC_82078 0x60 /* 44pin 82078 or 64pin 82078SL */
-#define FDC_82078_1 0x61 /* 82078-1 (2Mbps fdc) */
-#define FDC_S82078B 0x62 /* S82078B (first seen on Adaptec AVA-2825 VLB
- * SCSI/EIDE/Floppy controller) */
-#define FDC_87306 0x63 /* National Semiconductor PC 87306 */
-
-/*
- * Beware: the fdc type list is roughly sorted by increasing features.
- * Presence of features is tested by comparing the FDC version id with the
- * "oldest" version that has the needed feature.
- * If during FDC detection, an obscure test fails late in the sequence, don't
- * assign FDC_UNKNOWN. Else the FDC will be treated as a dumb 8272a, or worse.
- * This is especially true if the tests are unneeded.
- */
-
-#define FD_RESET_DELAY 20
-#endif
diff --git a/ANDROID_3.4.5/include/linux/fdtable.h b/ANDROID_3.4.5/include/linux/fdtable.h
deleted file mode 100644
index 158a41ee..00000000
--- a/ANDROID_3.4.5/include/linux/fdtable.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * descriptor table internals; you almost certainly want file.h instead.
- */
-
-#ifndef __LINUX_FDTABLE_H
-#define __LINUX_FDTABLE_H
-
-#include <linux/posix_types.h>
-#include <linux/compiler.h>
-#include <linux/spinlock.h>
-#include <linux/rcupdate.h>
-#include <linux/types.h>
-#include <linux/init.h>
-#include <linux/fs.h>
-
-#include <linux/atomic.h>
-
-/*
- * The default fd array needs to be at least BITS_PER_LONG,
- * as this is the granularity returned by copy_fdset().
- */
-#define NR_OPEN_DEFAULT BITS_PER_LONG
-
-struct fdtable {
- unsigned int max_fds;
- struct file __rcu **fd; /* current fd array */
- unsigned long *close_on_exec;
- unsigned long *open_fds;
- struct rcu_head rcu;
- struct fdtable *next;
-};
-
-static inline void __set_close_on_exec(int fd, struct fdtable *fdt)
-{
- __set_bit(fd, fdt->close_on_exec);
-}
-
-static inline void __clear_close_on_exec(int fd, struct fdtable *fdt)
-{
- __clear_bit(fd, fdt->close_on_exec);
-}
-
-static inline bool close_on_exec(int fd, const struct fdtable *fdt)
-{
- return test_bit(fd, fdt->close_on_exec);
-}
-
-static inline void __set_open_fd(int fd, struct fdtable *fdt)
-{
- __set_bit(fd, fdt->open_fds);
-}
-
-static inline void __clear_open_fd(int fd, struct fdtable *fdt)
-{
- __clear_bit(fd, fdt->open_fds);
-}
-
-static inline bool fd_is_open(int fd, const struct fdtable *fdt)
-{
- return test_bit(fd, fdt->open_fds);
-}
-
-/*
- * Open file table structure
- */
-struct files_struct {
- /*
- * read mostly part
- */
- atomic_t count;
- struct fdtable __rcu *fdt;
- struct fdtable fdtab;
- /*
- * written part on a separate cache line in SMP
- */
- spinlock_t file_lock ____cacheline_aligned_in_smp;
- int next_fd;
- unsigned long close_on_exec_init[1];
- unsigned long open_fds_init[1];
- struct file __rcu * fd_array[NR_OPEN_DEFAULT];
-};
-
-#define rcu_dereference_check_fdtable(files, fdtfd) \
- (rcu_dereference_check((fdtfd), \
- lockdep_is_held(&(files)->file_lock) || \
- atomic_read(&(files)->count) == 1 || \
- rcu_my_thread_group_empty()))
-
-#define files_fdtable(files) \
- (rcu_dereference_check_fdtable((files), (files)->fdt))
-
-struct file_operations;
-struct vfsmount;
-struct dentry;
-
-extern int expand_files(struct files_struct *, int nr);
-extern void free_fdtable_rcu(struct rcu_head *rcu);
-extern void __init files_defer_init(void);
-
-static inline void free_fdtable(struct fdtable *fdt)
-{
- call_rcu(&fdt->rcu, free_fdtable_rcu);
-}
-
-static inline struct file * fcheck_files(struct files_struct *files, unsigned int fd)
-{
- struct file * file = NULL;
- struct fdtable *fdt = files_fdtable(files);
-
- if (fd < fdt->max_fds)
- file = rcu_dereference_check_fdtable(files, fdt->fd[fd]);
- return file;
-}
-
-/*
- * Check whether the specified fd has an open file.
- */
-#define fcheck(fd) fcheck_files(current->files, fd)
-
-struct task_struct;
-
-struct files_struct *get_files_struct(struct task_struct *);
-void put_files_struct(struct files_struct *fs);
-void reset_files_struct(struct files_struct *);
-int unshare_files(struct files_struct **);
-struct files_struct *dup_fd(struct files_struct *, int *);
-
-extern struct kmem_cache *files_cachep;
-
-#endif /* __LINUX_FDTABLE_H */
diff --git a/ANDROID_3.4.5/include/linux/fec.h b/ANDROID_3.4.5/include/linux/fec.h
deleted file mode 100644
index bcff455d..00000000
--- a/ANDROID_3.4.5/include/linux/fec.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* include/linux/fec.h
- *
- * Copyright (c) 2009 Orex Computed Radiography
- * Baruch Siach <baruch@tkos.co.il>
- *
- * Copyright (C) 2010 Freescale Semiconductor, Inc.
- *
- * Header file for the FEC platform data
- *
- * 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.
- */
-#ifndef __LINUX_FEC_H__
-#define __LINUX_FEC_H__
-
-#include <linux/phy.h>
-
-struct fec_platform_data {
- phy_interface_t phy;
- unsigned char mac[ETH_ALEN];
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/fib_rules.h b/ANDROID_3.4.5/include/linux/fib_rules.h
deleted file mode 100644
index 51da65b6..00000000
--- a/ANDROID_3.4.5/include/linux/fib_rules.h
+++ /dev/null
@@ -1,72 +0,0 @@
-#ifndef __LINUX_FIB_RULES_H
-#define __LINUX_FIB_RULES_H
-
-#include <linux/types.h>
-#include <linux/rtnetlink.h>
-
-/* rule is permanent, and cannot be deleted */
-#define FIB_RULE_PERMANENT 0x00000001
-#define FIB_RULE_INVERT 0x00000002
-#define FIB_RULE_UNRESOLVED 0x00000004
-#define FIB_RULE_IIF_DETACHED 0x00000008
-#define FIB_RULE_DEV_DETACHED FIB_RULE_IIF_DETACHED
-#define FIB_RULE_OIF_DETACHED 0x00000010
-
-/* try to find source address in routing lookups */
-#define FIB_RULE_FIND_SADDR 0x00010000
-
-struct fib_rule_hdr {
- __u8 family;
- __u8 dst_len;
- __u8 src_len;
- __u8 tos;
-
- __u8 table;
- __u8 res1; /* reserved */
- __u8 res2; /* reserved */
- __u8 action;
-
- __u32 flags;
-};
-
-enum {
- FRA_UNSPEC,
- FRA_DST, /* destination address */
- FRA_SRC, /* source address */
- FRA_IIFNAME, /* interface name */
-#define FRA_IFNAME FRA_IIFNAME
- FRA_GOTO, /* target to jump to (FR_ACT_GOTO) */
- FRA_UNUSED2,
- FRA_PRIORITY, /* priority/preference */
- FRA_UNUSED3,
- FRA_UNUSED4,
- FRA_UNUSED5,
- FRA_FWMARK, /* mark */
- FRA_FLOW, /* flow/class id */
- FRA_UNUSED6,
- FRA_UNUSED7,
- FRA_UNUSED8,
- FRA_TABLE, /* Extended table id */
- FRA_FWMASK, /* mask for netfilter mark */
- FRA_OIFNAME,
- __FRA_MAX
-};
-
-#define FRA_MAX (__FRA_MAX - 1)
-
-enum {
- FR_ACT_UNSPEC,
- FR_ACT_TO_TBL, /* Pass to fixed table */
- FR_ACT_GOTO, /* Jump to another rule */
- FR_ACT_NOP, /* No operation */
- FR_ACT_RES3,
- FR_ACT_RES4,
- FR_ACT_BLACKHOLE, /* Drop without notification */
- FR_ACT_UNREACHABLE, /* Drop with ENETUNREACH */
- FR_ACT_PROHIBIT, /* Drop with EACCES */
- __FR_ACT_MAX,
-};
-
-#define FR_ACT_MAX (__FR_ACT_MAX - 1)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/fiemap.h b/ANDROID_3.4.5/include/linux/fiemap.h
deleted file mode 100644
index d830747f..00000000
--- a/ANDROID_3.4.5/include/linux/fiemap.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * FS_IOC_FIEMAP ioctl infrastructure.
- *
- * Some portions copyright (C) 2007 Cluster File Systems, Inc
- *
- * Authors: Mark Fasheh <mfasheh@suse.com>
- * Kalpak Shah <kalpak.shah@sun.com>
- * Andreas Dilger <adilger@sun.com>
- */
-
-#ifndef _LINUX_FIEMAP_H
-#define _LINUX_FIEMAP_H
-
-#include <linux/types.h>
-
-struct fiemap_extent {
- __u64 fe_logical; /* logical offset in bytes for the start of
- * the extent from the beginning of the file */
- __u64 fe_physical; /* physical offset in bytes for the start
- * of the extent from the beginning of the disk */
- __u64 fe_length; /* length in bytes for this extent */
- __u64 fe_reserved64[2];
- __u32 fe_flags; /* FIEMAP_EXTENT_* flags for this extent */
- __u32 fe_reserved[3];
-};
-
-struct fiemap {
- __u64 fm_start; /* logical offset (inclusive) at
- * which to start mapping (in) */
- __u64 fm_length; /* logical length of mapping which
- * userspace wants (in) */
- __u32 fm_flags; /* FIEMAP_FLAG_* flags for request (in/out) */
- __u32 fm_mapped_extents;/* number of extents that were mapped (out) */
- __u32 fm_extent_count; /* size of fm_extents array (in) */
- __u32 fm_reserved;
- struct fiemap_extent fm_extents[0]; /* array of mapped extents (out) */
-};
-
-#define FIEMAP_MAX_OFFSET (~0ULL)
-
-#define FIEMAP_FLAG_SYNC 0x00000001 /* sync file data before map */
-#define FIEMAP_FLAG_XATTR 0x00000002 /* map extended attribute tree */
-
-#define FIEMAP_FLAGS_COMPAT (FIEMAP_FLAG_SYNC | FIEMAP_FLAG_XATTR)
-
-#define FIEMAP_EXTENT_LAST 0x00000001 /* Last extent in file. */
-#define FIEMAP_EXTENT_UNKNOWN 0x00000002 /* Data location unknown. */
-#define FIEMAP_EXTENT_DELALLOC 0x00000004 /* Location still pending.
- * Sets EXTENT_UNKNOWN. */
-#define FIEMAP_EXTENT_ENCODED 0x00000008 /* Data can not be read
- * while fs is unmounted */
-#define FIEMAP_EXTENT_DATA_ENCRYPTED 0x00000080 /* Data is encrypted by fs.
- * Sets EXTENT_NO_BYPASS. */
-#define FIEMAP_EXTENT_NOT_ALIGNED 0x00000100 /* Extent offsets may not be
- * block aligned. */
-#define FIEMAP_EXTENT_DATA_INLINE 0x00000200 /* Data mixed with metadata.
- * Sets EXTENT_NOT_ALIGNED.*/
-#define FIEMAP_EXTENT_DATA_TAIL 0x00000400 /* Multiple files in block.
- * Sets EXTENT_NOT_ALIGNED.*/
-#define FIEMAP_EXTENT_UNWRITTEN 0x00000800 /* Space allocated, but
- * no data (i.e. zero). */
-#define FIEMAP_EXTENT_MERGED 0x00001000 /* File does not natively
- * support extents. Result
- * merged for efficiency. */
-#define FIEMAP_EXTENT_SHARED 0x00002000 /* Space shared with other
- * files. */
-
-#endif /* _LINUX_FIEMAP_H */
diff --git a/ANDROID_3.4.5/include/linux/file.h b/ANDROID_3.4.5/include/linux/file.h
deleted file mode 100644
index 58bf158c..00000000
--- a/ANDROID_3.4.5/include/linux/file.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Wrapper functions for accessing the file_struct fd array.
- */
-
-#ifndef __LINUX_FILE_H
-#define __LINUX_FILE_H
-
-#include <linux/compiler.h>
-#include <linux/types.h>
-#include <linux/posix_types.h>
-
-struct file;
-
-extern void fput(struct file *);
-
-struct file_operations;
-struct vfsmount;
-struct dentry;
-struct path;
-extern struct file *alloc_file(struct path *, fmode_t mode,
- const struct file_operations *fop);
-
-static inline void fput_light(struct file *file, int fput_needed)
-{
- if (fput_needed)
- fput(file);
-}
-
-extern struct file *fget(unsigned int fd);
-extern struct file *fget_light(unsigned int fd, int *fput_needed);
-extern struct file *fget_raw(unsigned int fd);
-extern struct file *fget_raw_light(unsigned int fd, int *fput_needed);
-extern void set_close_on_exec(unsigned int fd, int flag);
-extern void put_filp(struct file *);
-extern int alloc_fd(unsigned start, unsigned flags);
-extern int get_unused_fd(void);
-#define get_unused_fd_flags(flags) alloc_fd(0, (flags))
-extern void put_unused_fd(unsigned int fd);
-
-extern void fd_install(unsigned int fd, struct file *file);
-
-#endif /* __LINUX_FILE_H */
diff --git a/ANDROID_3.4.5/include/linux/filter.h b/ANDROID_3.4.5/include/linux/filter.h
deleted file mode 100644
index 8eeb205f..00000000
--- a/ANDROID_3.4.5/include/linux/filter.h
+++ /dev/null
@@ -1,235 +0,0 @@
-/*
- * Linux Socket Filter Data Structures
- */
-
-#ifndef __LINUX_FILTER_H__
-#define __LINUX_FILTER_H__
-
-#include <linux/compiler.h>
-#include <linux/types.h>
-
-#ifdef __KERNEL__
-#include <linux/atomic.h>
-#endif
-
-/*
- * Current version of the filter code architecture.
- */
-#define BPF_MAJOR_VERSION 1
-#define BPF_MINOR_VERSION 1
-
-/*
- * Try and keep these values and structures similar to BSD, especially
- * the BPF code definitions which need to match so you can share filters
- */
-
-struct sock_filter { /* Filter block */
- __u16 code; /* Actual filter code */
- __u8 jt; /* Jump true */
- __u8 jf; /* Jump false */
- __u32 k; /* Generic multiuse field */
-};
-
-struct sock_fprog { /* Required for SO_ATTACH_FILTER. */
- unsigned short len; /* Number of filter blocks */
- struct sock_filter __user *filter;
-};
-
-/*
- * Instruction classes
- */
-
-#define BPF_CLASS(code) ((code) & 0x07)
-#define BPF_LD 0x00
-#define BPF_LDX 0x01
-#define BPF_ST 0x02
-#define BPF_STX 0x03
-#define BPF_ALU 0x04
-#define BPF_JMP 0x05
-#define BPF_RET 0x06
-#define BPF_MISC 0x07
-
-/* ld/ldx fields */
-#define BPF_SIZE(code) ((code) & 0x18)
-#define BPF_W 0x00
-#define BPF_H 0x08
-#define BPF_B 0x10
-#define BPF_MODE(code) ((code) & 0xe0)
-#define BPF_IMM 0x00
-#define BPF_ABS 0x20
-#define BPF_IND 0x40
-#define BPF_MEM 0x60
-#define BPF_LEN 0x80
-#define BPF_MSH 0xa0
-
-/* alu/jmp fields */
-#define BPF_OP(code) ((code) & 0xf0)
-#define BPF_ADD 0x00
-#define BPF_SUB 0x10
-#define BPF_MUL 0x20
-#define BPF_DIV 0x30
-#define BPF_OR 0x40
-#define BPF_AND 0x50
-#define BPF_LSH 0x60
-#define BPF_RSH 0x70
-#define BPF_NEG 0x80
-#define BPF_JA 0x00
-#define BPF_JEQ 0x10
-#define BPF_JGT 0x20
-#define BPF_JGE 0x30
-#define BPF_JSET 0x40
-#define BPF_SRC(code) ((code) & 0x08)
-#define BPF_K 0x00
-#define BPF_X 0x08
-
-/* ret - BPF_K and BPF_X also apply */
-#define BPF_RVAL(code) ((code) & 0x18)
-#define BPF_A 0x10
-
-/* misc */
-#define BPF_MISCOP(code) ((code) & 0xf8)
-#define BPF_TAX 0x00
-#define BPF_TXA 0x80
-
-#ifndef BPF_MAXINSNS
-#define BPF_MAXINSNS 4096
-#endif
-
-/*
- * Macros for filter block array initializers.
- */
-#ifndef BPF_STMT
-#define BPF_STMT(code, k) { (unsigned short)(code), 0, 0, k }
-#endif
-#ifndef BPF_JUMP
-#define BPF_JUMP(code, k, jt, jf) { (unsigned short)(code), jt, jf, k }
-#endif
-
-/*
- * Number of scratch memory words for: BPF_ST and BPF_STX
- */
-#define BPF_MEMWORDS 16
-
-/* RATIONALE. Negative offsets are invalid in BPF.
- We use them to reference ancillary data.
- Unlike introduction new instructions, it does not break
- existing compilers/optimizers.
- */
-#define SKF_AD_OFF (-0x1000)
-#define SKF_AD_PROTOCOL 0
-#define SKF_AD_PKTTYPE 4
-#define SKF_AD_IFINDEX 8
-#define SKF_AD_NLATTR 12
-#define SKF_AD_NLATTR_NEST 16
-#define SKF_AD_MARK 20
-#define SKF_AD_QUEUE 24
-#define SKF_AD_HATYPE 28
-#define SKF_AD_RXHASH 32
-#define SKF_AD_CPU 36
-#define SKF_AD_MAX 40
-#define SKF_NET_OFF (-0x100000)
-#define SKF_LL_OFF (-0x200000)
-
-#ifdef __KERNEL__
-
-struct sk_buff;
-struct sock;
-
-struct sk_filter
-{
- atomic_t refcnt;
- unsigned int len; /* Number of filter blocks */
- unsigned int (*bpf_func)(const struct sk_buff *skb,
- const struct sock_filter *filter);
- struct rcu_head rcu;
- struct sock_filter insns[0];
-};
-
-static inline unsigned int sk_filter_len(const struct sk_filter *fp)
-{
- return fp->len * sizeof(struct sock_filter) + sizeof(*fp);
-}
-
-extern int sk_filter(struct sock *sk, struct sk_buff *skb);
-extern unsigned int sk_run_filter(const struct sk_buff *skb,
- const struct sock_filter *filter);
-extern int sk_attach_filter(struct sock_fprog *fprog, struct sock *sk);
-extern int sk_detach_filter(struct sock *sk);
-extern int sk_chk_filter(struct sock_filter *filter, unsigned int flen);
-
-#ifdef CONFIG_BPF_JIT
-extern void bpf_jit_compile(struct sk_filter *fp);
-extern void bpf_jit_free(struct sk_filter *fp);
-#define SK_RUN_FILTER(FILTER, SKB) (*FILTER->bpf_func)(SKB, FILTER->insns)
-#else
-static inline void bpf_jit_compile(struct sk_filter *fp)
-{
-}
-static inline void bpf_jit_free(struct sk_filter *fp)
-{
-}
-#define SK_RUN_FILTER(FILTER, SKB) sk_run_filter(SKB, FILTER->insns)
-#endif
-
-enum {
- BPF_S_RET_K = 1,
- BPF_S_RET_A,
- BPF_S_ALU_ADD_K,
- BPF_S_ALU_ADD_X,
- BPF_S_ALU_SUB_K,
- BPF_S_ALU_SUB_X,
- BPF_S_ALU_MUL_K,
- BPF_S_ALU_MUL_X,
- BPF_S_ALU_DIV_X,
- BPF_S_ALU_AND_K,
- BPF_S_ALU_AND_X,
- BPF_S_ALU_OR_K,
- BPF_S_ALU_OR_X,
- BPF_S_ALU_LSH_K,
- BPF_S_ALU_LSH_X,
- BPF_S_ALU_RSH_K,
- BPF_S_ALU_RSH_X,
- BPF_S_ALU_NEG,
- BPF_S_LD_W_ABS,
- BPF_S_LD_H_ABS,
- BPF_S_LD_B_ABS,
- BPF_S_LD_W_LEN,
- BPF_S_LD_W_IND,
- BPF_S_LD_H_IND,
- BPF_S_LD_B_IND,
- BPF_S_LD_IMM,
- BPF_S_LDX_W_LEN,
- BPF_S_LDX_B_MSH,
- BPF_S_LDX_IMM,
- BPF_S_MISC_TAX,
- BPF_S_MISC_TXA,
- BPF_S_ALU_DIV_K,
- BPF_S_LD_MEM,
- BPF_S_LDX_MEM,
- BPF_S_ST,
- BPF_S_STX,
- BPF_S_JMP_JA,
- BPF_S_JMP_JEQ_K,
- BPF_S_JMP_JEQ_X,
- BPF_S_JMP_JGE_K,
- BPF_S_JMP_JGE_X,
- BPF_S_JMP_JGT_K,
- BPF_S_JMP_JGT_X,
- BPF_S_JMP_JSET_K,
- BPF_S_JMP_JSET_X,
- /* Ancillary data */
- BPF_S_ANC_PROTOCOL,
- BPF_S_ANC_PKTTYPE,
- BPF_S_ANC_IFINDEX,
- BPF_S_ANC_NLATTR,
- BPF_S_ANC_NLATTR_NEST,
- BPF_S_ANC_MARK,
- BPF_S_ANC_QUEUE,
- BPF_S_ANC_HATYPE,
- BPF_S_ANC_RXHASH,
- BPF_S_ANC_CPU,
-};
-
-#endif /* __KERNEL__ */
-
-#endif /* __LINUX_FILTER_H__ */
diff --git a/ANDROID_3.4.5/include/linux/fips.h b/ANDROID_3.4.5/include/linux/fips.h
deleted file mode 100644
index f8fb07b0..00000000
--- a/ANDROID_3.4.5/include/linux/fips.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef _FIPS_H
-#define _FIPS_H
-
-#ifdef CONFIG_CRYPTO_FIPS
-extern int fips_enabled;
-#else
-#define fips_enabled 0
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/firewire-cdev.h b/ANDROID_3.4.5/include/linux/firewire-cdev.h
deleted file mode 100644
index d5003695..00000000
--- a/ANDROID_3.4.5/include/linux/firewire-cdev.h
+++ /dev/null
@@ -1,1039 +0,0 @@
-/*
- * Char device interface.
- *
- * Copyright (C) 2005-2007 Kristian Hoegsberg <krh@bitplanet.net>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef _LINUX_FIREWIRE_CDEV_H
-#define _LINUX_FIREWIRE_CDEV_H
-
-#include <linux/ioctl.h>
-#include <linux/types.h>
-#include <linux/firewire-constants.h>
-
-/* available since kernel version 2.6.22 */
-#define FW_CDEV_EVENT_BUS_RESET 0x00
-#define FW_CDEV_EVENT_RESPONSE 0x01
-#define FW_CDEV_EVENT_REQUEST 0x02
-#define FW_CDEV_EVENT_ISO_INTERRUPT 0x03
-
-/* available since kernel version 2.6.30 */
-#define FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED 0x04
-#define FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED 0x05
-
-/* available since kernel version 2.6.36 */
-#define FW_CDEV_EVENT_REQUEST2 0x06
-#define FW_CDEV_EVENT_PHY_PACKET_SENT 0x07
-#define FW_CDEV_EVENT_PHY_PACKET_RECEIVED 0x08
-#define FW_CDEV_EVENT_ISO_INTERRUPT_MULTICHANNEL 0x09
-
-/**
- * struct fw_cdev_event_common - Common part of all fw_cdev_event_ types
- * @closure: For arbitrary use by userspace
- * @type: Discriminates the fw_cdev_event_ types
- *
- * This struct may be used to access generic members of all fw_cdev_event_
- * types regardless of the specific type.
- *
- * Data passed in the @closure field for a request will be returned in the
- * corresponding event. It is big enough to hold a pointer on all platforms.
- * The ioctl used to set @closure depends on the @type of event.
- */
-struct fw_cdev_event_common {
- __u64 closure;
- __u32 type;
-};
-
-/**
- * struct fw_cdev_event_bus_reset - Sent when a bus reset occurred
- * @closure: See &fw_cdev_event_common; set by %FW_CDEV_IOC_GET_INFO ioctl
- * @type: See &fw_cdev_event_common; always %FW_CDEV_EVENT_BUS_RESET
- * @node_id: New node ID of this node
- * @local_node_id: Node ID of the local node, i.e. of the controller
- * @bm_node_id: Node ID of the bus manager
- * @irm_node_id: Node ID of the iso resource manager
- * @root_node_id: Node ID of the root node
- * @generation: New bus generation
- *
- * This event is sent when the bus the device belongs to goes through a bus
- * reset. It provides information about the new bus configuration, such as
- * new node ID for this device, new root ID, and others.
- *
- * If @bm_node_id is 0xffff right after bus reset it can be reread by an
- * %FW_CDEV_IOC_GET_INFO ioctl after bus manager selection was finished.
- * Kernels with ABI version < 4 do not set @bm_node_id.
- */
-struct fw_cdev_event_bus_reset {
- __u64 closure;
- __u32 type;
- __u32 node_id;
- __u32 local_node_id;
- __u32 bm_node_id;
- __u32 irm_node_id;
- __u32 root_node_id;
- __u32 generation;
-};
-
-/**
- * struct fw_cdev_event_response - Sent when a response packet was received
- * @closure: See &fw_cdev_event_common; set by %FW_CDEV_IOC_SEND_REQUEST
- * or %FW_CDEV_IOC_SEND_BROADCAST_REQUEST
- * or %FW_CDEV_IOC_SEND_STREAM_PACKET ioctl
- * @type: See &fw_cdev_event_common; always %FW_CDEV_EVENT_RESPONSE
- * @rcode: Response code returned by the remote node
- * @length: Data length, i.e. the response's payload size in bytes
- * @data: Payload data, if any
- *
- * This event is sent when the stack receives a response to an outgoing request
- * sent by %FW_CDEV_IOC_SEND_REQUEST ioctl. The payload data for responses
- * carrying data (read and lock responses) follows immediately and can be
- * accessed through the @data field.
- *
- * The event is also generated after conclusions of transactions that do not
- * involve response packets. This includes unified write transactions,
- * broadcast write transactions, and transmission of asynchronous stream
- * packets. @rcode indicates success or failure of such transmissions.
- */
-struct fw_cdev_event_response {
- __u64 closure;
- __u32 type;
- __u32 rcode;
- __u32 length;
- __u32 data[0];
-};
-
-/**
- * struct fw_cdev_event_request - Old version of &fw_cdev_event_request2
- * @type: See &fw_cdev_event_common; always %FW_CDEV_EVENT_REQUEST
- *
- * This event is sent instead of &fw_cdev_event_request2 if the kernel or
- * the client implements ABI version <= 3. &fw_cdev_event_request lacks
- * essential information; use &fw_cdev_event_request2 instead.
- */
-struct fw_cdev_event_request {
- __u64 closure;
- __u32 type;
- __u32 tcode;
- __u64 offset;
- __u32 handle;
- __u32 length;
- __u32 data[0];
-};
-
-/**
- * struct fw_cdev_event_request2 - Sent on incoming request to an address region
- * @closure: See &fw_cdev_event_common; set by %FW_CDEV_IOC_ALLOCATE ioctl
- * @type: See &fw_cdev_event_common; always %FW_CDEV_EVENT_REQUEST2
- * @tcode: Transaction code of the incoming request
- * @offset: The offset into the 48-bit per-node address space
- * @source_node_id: Sender node ID
- * @destination_node_id: Destination node ID
- * @card: The index of the card from which the request came
- * @generation: Bus generation in which the request is valid
- * @handle: Reference to the kernel-side pending request
- * @length: Data length, i.e. the request's payload size in bytes
- * @data: Incoming data, if any
- *
- * This event is sent when the stack receives an incoming request to an address
- * region registered using the %FW_CDEV_IOC_ALLOCATE ioctl. The request is
- * guaranteed to be completely contained in the specified region. Userspace is
- * responsible for sending the response by %FW_CDEV_IOC_SEND_RESPONSE ioctl,
- * using the same @handle.
- *
- * The payload data for requests carrying data (write and lock requests)
- * follows immediately and can be accessed through the @data field.
- *
- * Unlike &fw_cdev_event_request, @tcode of lock requests is one of the
- * firewire-core specific %TCODE_LOCK_MASK_SWAP...%TCODE_LOCK_VENDOR_DEPENDENT,
- * i.e. encodes the extended transaction code.
- *
- * @card may differ from &fw_cdev_get_info.card because requests are received
- * from all cards of the Linux host. @source_node_id, @destination_node_id, and
- * @generation pertain to that card. Destination node ID and bus generation may
- * therefore differ from the corresponding fields of the last
- * &fw_cdev_event_bus_reset.
- *
- * @destination_node_id may also differ from the current node ID because of a
- * non-local bus ID part or in case of a broadcast write request. Note, a
- * client must call an %FW_CDEV_IOC_SEND_RESPONSE ioctl even in case of a
- * broadcast write request; the kernel will then release the kernel-side pending
- * request but will not actually send a response packet.
- *
- * In case of a write request to FCP_REQUEST or FCP_RESPONSE, the kernel already
- * sent a write response immediately after the request was received; in this
- * case the client must still call an %FW_CDEV_IOC_SEND_RESPONSE ioctl to
- * release the kernel-side pending request, though another response won't be
- * sent.
- *
- * If the client subsequently needs to initiate requests to the sender node of
- * an &fw_cdev_event_request2, it needs to use a device file with matching
- * card index, node ID, and generation for outbound requests.
- */
-struct fw_cdev_event_request2 {
- __u64 closure;
- __u32 type;
- __u32 tcode;
- __u64 offset;
- __u32 source_node_id;
- __u32 destination_node_id;
- __u32 card;
- __u32 generation;
- __u32 handle;
- __u32 length;
- __u32 data[0];
-};
-
-/**
- * struct fw_cdev_event_iso_interrupt - Sent when an iso packet was completed
- * @closure: See &fw_cdev_event_common;
- * set by %FW_CDEV_CREATE_ISO_CONTEXT ioctl
- * @type: See &fw_cdev_event_common; always %FW_CDEV_EVENT_ISO_INTERRUPT
- * @cycle: Cycle counter of the last completed packet
- * @header_length: Total length of following headers, in bytes
- * @header: Stripped headers, if any
- *
- * This event is sent when the controller has completed an &fw_cdev_iso_packet
- * with the %FW_CDEV_ISO_INTERRUPT bit set, when explicitly requested with
- * %FW_CDEV_IOC_FLUSH_ISO, or when there have been so many completed packets
- * without the interrupt bit set that the kernel's internal buffer for @header
- * is about to overflow. (In the last case, kernels with ABI version < 5 drop
- * header data up to the next interrupt packet.)
- *
- * Isochronous transmit events (context type %FW_CDEV_ISO_CONTEXT_TRANSMIT):
- *
- * In version 3 and some implementations of version 2 of the ABI, &header_length
- * is a multiple of 4 and &header contains timestamps of all packets up until
- * the interrupt packet. The format of the timestamps is as described below for
- * isochronous reception. In version 1 of the ABI, &header_length was 0.
- *
- * Isochronous receive events (context type %FW_CDEV_ISO_CONTEXT_RECEIVE):
- *
- * The headers stripped of all packets up until and including the interrupt
- * packet are returned in the @header field. The amount of header data per
- * packet is as specified at iso context creation by
- * &fw_cdev_create_iso_context.header_size.
- *
- * Hence, _interrupt.header_length / _context.header_size is the number of
- * packets received in this interrupt event. The client can now iterate
- * through the mmap()'ed DMA buffer according to this number of packets and
- * to the buffer sizes as the client specified in &fw_cdev_queue_iso.
- *
- * Since version 2 of this ABI, the portion for each packet in _interrupt.header
- * consists of the 1394 isochronous packet header, followed by a timestamp
- * quadlet if &fw_cdev_create_iso_context.header_size > 4, followed by quadlets
- * from the packet payload if &fw_cdev_create_iso_context.header_size > 8.
- *
- * Format of 1394 iso packet header: 16 bits data_length, 2 bits tag, 6 bits
- * channel, 4 bits tcode, 4 bits sy, in big endian byte order.
- * data_length is the actual received size of the packet without the four
- * 1394 iso packet header bytes.
- *
- * Format of timestamp: 16 bits invalid, 3 bits cycleSeconds, 13 bits
- * cycleCount, in big endian byte order.
- *
- * In version 1 of the ABI, no timestamp quadlet was inserted; instead, payload
- * data followed directly after the 1394 is header if header_size > 4.
- * Behaviour of ver. 1 of this ABI is no longer available since ABI ver. 2.
- */
-struct fw_cdev_event_iso_interrupt {
- __u64 closure;
- __u32 type;
- __u32 cycle;
- __u32 header_length;
- __u32 header[0];
-};
-
-/**
- * struct fw_cdev_event_iso_interrupt_mc - An iso buffer chunk was completed
- * @closure: See &fw_cdev_event_common;
- * set by %FW_CDEV_CREATE_ISO_CONTEXT ioctl
- * @type: %FW_CDEV_EVENT_ISO_INTERRUPT_MULTICHANNEL
- * @completed: Offset into the receive buffer; data before this offset is valid
- *
- * This event is sent in multichannel contexts (context type
- * %FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL) for &fw_cdev_iso_packet buffer
- * chunks that have been completely filled and that have the
- * %FW_CDEV_ISO_INTERRUPT bit set, or when explicitly requested with
- * %FW_CDEV_IOC_FLUSH_ISO.
- *
- * The buffer is continuously filled with the following data, per packet:
- * - the 1394 iso packet header as described at &fw_cdev_event_iso_interrupt,
- * but in little endian byte order,
- * - packet payload (as many bytes as specified in the data_length field of
- * the 1394 iso packet header) in big endian byte order,
- * - 0...3 padding bytes as needed to align the following trailer quadlet,
- * - trailer quadlet, containing the reception timestamp as described at
- * &fw_cdev_event_iso_interrupt, but in little endian byte order.
- *
- * Hence the per-packet size is data_length (rounded up to a multiple of 4) + 8.
- * When processing the data, stop before a packet that would cross the
- * @completed offset.
- *
- * A packet near the end of a buffer chunk will typically spill over into the
- * next queued buffer chunk. It is the responsibility of the client to check
- * for this condition, assemble a broken-up packet from its parts, and not to
- * re-queue any buffer chunks in which as yet unread packet parts reside.
- */
-struct fw_cdev_event_iso_interrupt_mc {
- __u64 closure;
- __u32 type;
- __u32 completed;
-};
-
-/**
- * struct fw_cdev_event_iso_resource - Iso resources were allocated or freed
- * @closure: See &fw_cdev_event_common;
- * set by %FW_CDEV_IOC_(DE)ALLOCATE_ISO_RESOURCE(_ONCE) ioctl
- * @type: %FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED or
- * %FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED
- * @handle: Reference by which an allocated resource can be deallocated
- * @channel: Isochronous channel which was (de)allocated, if any
- * @bandwidth: Bandwidth allocation units which were (de)allocated, if any
- *
- * An %FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED event is sent after an isochronous
- * resource was allocated at the IRM. The client has to check @channel and
- * @bandwidth for whether the allocation actually succeeded.
- *
- * An %FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED event is sent after an isochronous
- * resource was deallocated at the IRM. It is also sent when automatic
- * reallocation after a bus reset failed.
- *
- * @channel is <0 if no channel was (de)allocated or if reallocation failed.
- * @bandwidth is 0 if no bandwidth was (de)allocated or if reallocation failed.
- */
-struct fw_cdev_event_iso_resource {
- __u64 closure;
- __u32 type;
- __u32 handle;
- __s32 channel;
- __s32 bandwidth;
-};
-
-/**
- * struct fw_cdev_event_phy_packet - A PHY packet was transmitted or received
- * @closure: See &fw_cdev_event_common; set by %FW_CDEV_IOC_SEND_PHY_PACKET
- * or %FW_CDEV_IOC_RECEIVE_PHY_PACKETS ioctl
- * @type: %FW_CDEV_EVENT_PHY_PACKET_SENT or %..._RECEIVED
- * @rcode: %RCODE_..., indicates success or failure of transmission
- * @length: Data length in bytes
- * @data: Incoming data
- *
- * If @type is %FW_CDEV_EVENT_PHY_PACKET_SENT, @length is 0 and @data empty,
- * except in case of a ping packet: Then, @length is 4, and @data[0] is the
- * ping time in 49.152MHz clocks if @rcode is %RCODE_COMPLETE.
- *
- * If @type is %FW_CDEV_EVENT_PHY_PACKET_RECEIVED, @length is 8 and @data
- * consists of the two PHY packet quadlets, in host byte order.
- */
-struct fw_cdev_event_phy_packet {
- __u64 closure;
- __u32 type;
- __u32 rcode;
- __u32 length;
- __u32 data[0];
-};
-
-/**
- * union fw_cdev_event - Convenience union of fw_cdev_event_ types
- * @common: Valid for all types
- * @bus_reset: Valid if @common.type == %FW_CDEV_EVENT_BUS_RESET
- * @response: Valid if @common.type == %FW_CDEV_EVENT_RESPONSE
- * @request: Valid if @common.type == %FW_CDEV_EVENT_REQUEST
- * @request2: Valid if @common.type == %FW_CDEV_EVENT_REQUEST2
- * @iso_interrupt: Valid if @common.type == %FW_CDEV_EVENT_ISO_INTERRUPT
- * @iso_interrupt_mc: Valid if @common.type ==
- * %FW_CDEV_EVENT_ISO_INTERRUPT_MULTICHANNEL
- * @iso_resource: Valid if @common.type ==
- * %FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED or
- * %FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED
- * @phy_packet: Valid if @common.type ==
- * %FW_CDEV_EVENT_PHY_PACKET_SENT or
- * %FW_CDEV_EVENT_PHY_PACKET_RECEIVED
- *
- * Convenience union for userspace use. Events could be read(2) into an
- * appropriately aligned char buffer and then cast to this union for further
- * processing. Note that for a request, response or iso_interrupt event,
- * the data[] or header[] may make the size of the full event larger than
- * sizeof(union fw_cdev_event). Also note that if you attempt to read(2)
- * an event into a buffer that is not large enough for it, the data that does
- * not fit will be discarded so that the next read(2) will return a new event.
- */
-union fw_cdev_event {
- struct fw_cdev_event_common common;
- struct fw_cdev_event_bus_reset bus_reset;
- struct fw_cdev_event_response response;
- struct fw_cdev_event_request request;
- struct fw_cdev_event_request2 request2; /* added in 2.6.36 */
- struct fw_cdev_event_iso_interrupt iso_interrupt;
- struct fw_cdev_event_iso_interrupt_mc iso_interrupt_mc; /* added in 2.6.36 */
- struct fw_cdev_event_iso_resource iso_resource; /* added in 2.6.30 */
- struct fw_cdev_event_phy_packet phy_packet; /* added in 2.6.36 */
-};
-
-/* available since kernel version 2.6.22 */
-#define FW_CDEV_IOC_GET_INFO _IOWR('#', 0x00, struct fw_cdev_get_info)
-#define FW_CDEV_IOC_SEND_REQUEST _IOW('#', 0x01, struct fw_cdev_send_request)
-#define FW_CDEV_IOC_ALLOCATE _IOWR('#', 0x02, struct fw_cdev_allocate)
-#define FW_CDEV_IOC_DEALLOCATE _IOW('#', 0x03, struct fw_cdev_deallocate)
-#define FW_CDEV_IOC_SEND_RESPONSE _IOW('#', 0x04, struct fw_cdev_send_response)
-#define FW_CDEV_IOC_INITIATE_BUS_RESET _IOW('#', 0x05, struct fw_cdev_initiate_bus_reset)
-#define FW_CDEV_IOC_ADD_DESCRIPTOR _IOWR('#', 0x06, struct fw_cdev_add_descriptor)
-#define FW_CDEV_IOC_REMOVE_DESCRIPTOR _IOW('#', 0x07, struct fw_cdev_remove_descriptor)
-#define FW_CDEV_IOC_CREATE_ISO_CONTEXT _IOWR('#', 0x08, struct fw_cdev_create_iso_context)
-#define FW_CDEV_IOC_QUEUE_ISO _IOWR('#', 0x09, struct fw_cdev_queue_iso)
-#define FW_CDEV_IOC_START_ISO _IOW('#', 0x0a, struct fw_cdev_start_iso)
-#define FW_CDEV_IOC_STOP_ISO _IOW('#', 0x0b, struct fw_cdev_stop_iso)
-
-/* available since kernel version 2.6.24 */
-#define FW_CDEV_IOC_GET_CYCLE_TIMER _IOR('#', 0x0c, struct fw_cdev_get_cycle_timer)
-
-/* available since kernel version 2.6.30 */
-#define FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE _IOWR('#', 0x0d, struct fw_cdev_allocate_iso_resource)
-#define FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE _IOW('#', 0x0e, struct fw_cdev_deallocate)
-#define FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE _IOW('#', 0x0f, struct fw_cdev_allocate_iso_resource)
-#define FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE _IOW('#', 0x10, struct fw_cdev_allocate_iso_resource)
-#define FW_CDEV_IOC_GET_SPEED _IO('#', 0x11) /* returns speed code */
-#define FW_CDEV_IOC_SEND_BROADCAST_REQUEST _IOW('#', 0x12, struct fw_cdev_send_request)
-#define FW_CDEV_IOC_SEND_STREAM_PACKET _IOW('#', 0x13, struct fw_cdev_send_stream_packet)
-
-/* available since kernel version 2.6.34 */
-#define FW_CDEV_IOC_GET_CYCLE_TIMER2 _IOWR('#', 0x14, struct fw_cdev_get_cycle_timer2)
-
-/* available since kernel version 2.6.36 */
-#define FW_CDEV_IOC_SEND_PHY_PACKET _IOWR('#', 0x15, struct fw_cdev_send_phy_packet)
-#define FW_CDEV_IOC_RECEIVE_PHY_PACKETS _IOW('#', 0x16, struct fw_cdev_receive_phy_packets)
-#define FW_CDEV_IOC_SET_ISO_CHANNELS _IOW('#', 0x17, struct fw_cdev_set_iso_channels)
-
-/* available since kernel version 3.4 */
-#define FW_CDEV_IOC_FLUSH_ISO _IOW('#', 0x18, struct fw_cdev_flush_iso)
-
-/*
- * ABI version history
- * 1 (2.6.22) - initial version
- * (2.6.24) - added %FW_CDEV_IOC_GET_CYCLE_TIMER
- * 2 (2.6.30) - changed &fw_cdev_event_iso_interrupt.header if
- * &fw_cdev_create_iso_context.header_size is 8 or more
- * - added %FW_CDEV_IOC_*_ISO_RESOURCE*,
- * %FW_CDEV_IOC_GET_SPEED, %FW_CDEV_IOC_SEND_BROADCAST_REQUEST,
- * %FW_CDEV_IOC_SEND_STREAM_PACKET
- * (2.6.32) - added time stamp to xmit &fw_cdev_event_iso_interrupt
- * (2.6.33) - IR has always packet-per-buffer semantics now, not one of
- * dual-buffer or packet-per-buffer depending on hardware
- * - shared use and auto-response for FCP registers
- * 3 (2.6.34) - made &fw_cdev_get_cycle_timer reliable
- * - added %FW_CDEV_IOC_GET_CYCLE_TIMER2
- * 4 (2.6.36) - added %FW_CDEV_EVENT_REQUEST2, %FW_CDEV_EVENT_PHY_PACKET_*,
- * and &fw_cdev_allocate.region_end
- * - implemented &fw_cdev_event_bus_reset.bm_node_id
- * - added %FW_CDEV_IOC_SEND_PHY_PACKET, _RECEIVE_PHY_PACKETS
- * - added %FW_CDEV_EVENT_ISO_INTERRUPT_MULTICHANNEL,
- * %FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL, and
- * %FW_CDEV_IOC_SET_ISO_CHANNELS
- * 5 (3.4) - send %FW_CDEV_EVENT_ISO_INTERRUPT events when needed to
- * avoid dropping data
- * - added %FW_CDEV_IOC_FLUSH_ISO
- */
-
-/**
- * struct fw_cdev_get_info - General purpose information ioctl
- * @version: The version field is just a running serial number. Both an
- * input parameter (ABI version implemented by the client) and
- * output parameter (ABI version implemented by the kernel).
- * A client shall fill in the ABI @version for which the client
- * was implemented. This is necessary for forward compatibility.
- * @rom_length: If @rom is non-zero, up to @rom_length bytes of Configuration
- * ROM will be copied into that user space address. In either
- * case, @rom_length is updated with the actual length of the
- * Configuration ROM.
- * @rom: If non-zero, address of a buffer to be filled by a copy of the
- * device's Configuration ROM
- * @bus_reset: If non-zero, address of a buffer to be filled by a
- * &struct fw_cdev_event_bus_reset with the current state
- * of the bus. This does not cause a bus reset to happen.
- * @bus_reset_closure: Value of &closure in this and subsequent bus reset events
- * @card: The index of the card this device belongs to
- *
- * The %FW_CDEV_IOC_GET_INFO ioctl is usually the very first one which a client
- * performs right after it opened a /dev/fw* file.
- *
- * As a side effect, reception of %FW_CDEV_EVENT_BUS_RESET events to be read(2)
- * is started by this ioctl.
- */
-struct fw_cdev_get_info {
- __u32 version;
- __u32 rom_length;
- __u64 rom;
- __u64 bus_reset;
- __u64 bus_reset_closure;
- __u32 card;
-};
-
-/**
- * struct fw_cdev_send_request - Send an asynchronous request packet
- * @tcode: Transaction code of the request
- * @length: Length of outgoing payload, in bytes
- * @offset: 48-bit offset at destination node
- * @closure: Passed back to userspace in the response event
- * @data: Userspace pointer to payload
- * @generation: The bus generation where packet is valid
- *
- * Send a request to the device. This ioctl implements all outgoing requests.
- * Both quadlet and block request specify the payload as a pointer to the data
- * in the @data field. Once the transaction completes, the kernel writes an
- * &fw_cdev_event_response event back. The @closure field is passed back to
- * user space in the response event.
- */
-struct fw_cdev_send_request {
- __u32 tcode;
- __u32 length;
- __u64 offset;
- __u64 closure;
- __u64 data;
- __u32 generation;
-};
-
-/**
- * struct fw_cdev_send_response - Send an asynchronous response packet
- * @rcode: Response code as determined by the userspace handler
- * @length: Length of outgoing payload, in bytes
- * @data: Userspace pointer to payload
- * @handle: The handle from the &fw_cdev_event_request
- *
- * Send a response to an incoming request. By setting up an address range using
- * the %FW_CDEV_IOC_ALLOCATE ioctl, userspace can listen for incoming requests. An
- * incoming request will generate an %FW_CDEV_EVENT_REQUEST, and userspace must
- * send a reply using this ioctl. The event has a handle to the kernel-side
- * pending transaction, which should be used with this ioctl.
- */
-struct fw_cdev_send_response {
- __u32 rcode;
- __u32 length;
- __u64 data;
- __u32 handle;
-};
-
-/**
- * struct fw_cdev_allocate - Allocate a CSR in an address range
- * @offset: Start offset of the address range
- * @closure: To be passed back to userspace in request events
- * @length: Length of the CSR, in bytes
- * @handle: Handle to the allocation, written by the kernel
- * @region_end: First address above the address range (added in ABI v4, 2.6.36)
- *
- * Allocate an address range in the 48-bit address space on the local node
- * (the controller). This allows userspace to listen for requests with an
- * offset within that address range. Every time when the kernel receives a
- * request within the range, an &fw_cdev_event_request2 event will be emitted.
- * (If the kernel or the client implements ABI version <= 3, an
- * &fw_cdev_event_request will be generated instead.)
- *
- * The @closure field is passed back to userspace in these request events.
- * The @handle field is an out parameter, returning a handle to the allocated
- * range to be used for later deallocation of the range.
- *
- * The address range is allocated on all local nodes. The address allocation
- * is exclusive except for the FCP command and response registers. If an
- * exclusive address region is already in use, the ioctl fails with errno set
- * to %EBUSY.
- *
- * If kernel and client implement ABI version >= 4, the kernel looks up a free
- * spot of size @length inside [@offset..@region_end) and, if found, writes
- * the start address of the new CSR back in @offset. I.e. @offset is an
- * in and out parameter. If this automatic placement of a CSR in a bigger
- * address range is not desired, the client simply needs to set @region_end
- * = @offset + @length.
- *
- * If the kernel or the client implements ABI version <= 3, @region_end is
- * ignored and effectively assumed to be @offset + @length.
- *
- * @region_end is only present in a kernel header >= 2.6.36. If necessary,
- * this can for example be tested by #ifdef FW_CDEV_EVENT_REQUEST2.
- */
-struct fw_cdev_allocate {
- __u64 offset;
- __u64 closure;
- __u32 length;
- __u32 handle;
- __u64 region_end; /* available since kernel version 2.6.36 */
-};
-
-/**
- * struct fw_cdev_deallocate - Free a CSR address range or isochronous resource
- * @handle: Handle to the address range or iso resource, as returned by the
- * kernel when the range or resource was allocated
- */
-struct fw_cdev_deallocate {
- __u32 handle;
-};
-
-#define FW_CDEV_LONG_RESET 0
-#define FW_CDEV_SHORT_RESET 1
-
-/**
- * struct fw_cdev_initiate_bus_reset - Initiate a bus reset
- * @type: %FW_CDEV_SHORT_RESET or %FW_CDEV_LONG_RESET
- *
- * Initiate a bus reset for the bus this device is on. The bus reset can be
- * either the original (long) bus reset or the arbitrated (short) bus reset
- * introduced in 1394a-2000.
- *
- * The ioctl returns immediately. A subsequent &fw_cdev_event_bus_reset
- * indicates when the reset actually happened. Since ABI v4, this may be
- * considerably later than the ioctl because the kernel ensures a grace period
- * between subsequent bus resets as per IEEE 1394 bus management specification.
- */
-struct fw_cdev_initiate_bus_reset {
- __u32 type;
-};
-
-/**
- * struct fw_cdev_add_descriptor - Add contents to the local node's config ROM
- * @immediate: If non-zero, immediate key to insert before pointer
- * @key: Upper 8 bits of root directory pointer
- * @data: Userspace pointer to contents of descriptor block
- * @length: Length of descriptor block data, in quadlets
- * @handle: Handle to the descriptor, written by the kernel
- *
- * Add a descriptor block and optionally a preceding immediate key to the local
- * node's Configuration ROM.
- *
- * The @key field specifies the upper 8 bits of the descriptor root directory
- * pointer and the @data and @length fields specify the contents. The @key
- * should be of the form 0xXX000000. The offset part of the root directory entry
- * will be filled in by the kernel.
- *
- * If not 0, the @immediate field specifies an immediate key which will be
- * inserted before the root directory pointer.
- *
- * @immediate, @key, and @data array elements are CPU-endian quadlets.
- *
- * If successful, the kernel adds the descriptor and writes back a @handle to
- * the kernel-side object to be used for later removal of the descriptor block
- * and immediate key. The kernel will also generate a bus reset to signal the
- * change of the Configuration ROM to other nodes.
- *
- * This ioctl affects the Configuration ROMs of all local nodes.
- * The ioctl only succeeds on device files which represent a local node.
- */
-struct fw_cdev_add_descriptor {
- __u32 immediate;
- __u32 key;
- __u64 data;
- __u32 length;
- __u32 handle;
-};
-
-/**
- * struct fw_cdev_remove_descriptor - Remove contents from the Configuration ROM
- * @handle: Handle to the descriptor, as returned by the kernel when the
- * descriptor was added
- *
- * Remove a descriptor block and accompanying immediate key from the local
- * nodes' Configuration ROMs. The kernel will also generate a bus reset to
- * signal the change of the Configuration ROM to other nodes.
- */
-struct fw_cdev_remove_descriptor {
- __u32 handle;
-};
-
-#define FW_CDEV_ISO_CONTEXT_TRANSMIT 0
-#define FW_CDEV_ISO_CONTEXT_RECEIVE 1
-#define FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL 2 /* added in 2.6.36 */
-
-/**
- * struct fw_cdev_create_iso_context - Create a context for isochronous I/O
- * @type: %FW_CDEV_ISO_CONTEXT_TRANSMIT or %FW_CDEV_ISO_CONTEXT_RECEIVE or
- * %FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL
- * @header_size: Header size to strip in single-channel reception
- * @channel: Channel to bind to in single-channel reception or transmission
- * @speed: Transmission speed
- * @closure: To be returned in &fw_cdev_event_iso_interrupt or
- * &fw_cdev_event_iso_interrupt_multichannel
- * @handle: Handle to context, written back by kernel
- *
- * Prior to sending or receiving isochronous I/O, a context must be created.
- * The context records information about the transmit or receive configuration
- * and typically maps to an underlying hardware resource. A context is set up
- * for either sending or receiving. It is bound to a specific isochronous
- * @channel.
- *
- * In case of multichannel reception, @header_size and @channel are ignored
- * and the channels are selected by %FW_CDEV_IOC_SET_ISO_CHANNELS.
- *
- * For %FW_CDEV_ISO_CONTEXT_RECEIVE contexts, @header_size must be at least 4
- * and must be a multiple of 4. It is ignored in other context types.
- *
- * @speed is ignored in receive context types.
- *
- * If a context was successfully created, the kernel writes back a handle to the
- * context, which must be passed in for subsequent operations on that context.
- *
- * Limitations:
- * No more than one iso context can be created per fd.
- * The total number of contexts that all userspace and kernelspace drivers can
- * create on a card at a time is a hardware limit, typically 4 or 8 contexts per
- * direction, and of them at most one multichannel receive context.
- */
-struct fw_cdev_create_iso_context {
- __u32 type;
- __u32 header_size;
- __u32 channel;
- __u32 speed;
- __u64 closure;
- __u32 handle;
-};
-
-/**
- * struct fw_cdev_set_iso_channels - Select channels in multichannel reception
- * @channels: Bitmask of channels to listen to
- * @handle: Handle of the mutichannel receive context
- *
- * @channels is the bitwise or of 1ULL << n for each channel n to listen to.
- *
- * The ioctl fails with errno %EBUSY if there is already another receive context
- * on a channel in @channels. In that case, the bitmask of all unoccupied
- * channels is returned in @channels.
- */
-struct fw_cdev_set_iso_channels {
- __u64 channels;
- __u32 handle;
-};
-
-#define FW_CDEV_ISO_PAYLOAD_LENGTH(v) (v)
-#define FW_CDEV_ISO_INTERRUPT (1 << 16)
-#define FW_CDEV_ISO_SKIP (1 << 17)
-#define FW_CDEV_ISO_SYNC (1 << 17)
-#define FW_CDEV_ISO_TAG(v) ((v) << 18)
-#define FW_CDEV_ISO_SY(v) ((v) << 20)
-#define FW_CDEV_ISO_HEADER_LENGTH(v) ((v) << 24)
-
-/**
- * struct fw_cdev_iso_packet - Isochronous packet
- * @control: Contains the header length (8 uppermost bits),
- * the sy field (4 bits), the tag field (2 bits), a sync flag
- * or a skip flag (1 bit), an interrupt flag (1 bit), and the
- * payload length (16 lowermost bits)
- * @header: Header and payload in case of a transmit context.
- *
- * &struct fw_cdev_iso_packet is used to describe isochronous packet queues.
- * Use the FW_CDEV_ISO_ macros to fill in @control.
- * The @header array is empty in case of receive contexts.
- *
- * Context type %FW_CDEV_ISO_CONTEXT_TRANSMIT:
- *
- * @control.HEADER_LENGTH must be a multiple of 4. It specifies the numbers of
- * bytes in @header that will be prepended to the packet's payload. These bytes
- * are copied into the kernel and will not be accessed after the ioctl has
- * returned.
- *
- * The @control.SY and TAG fields are copied to the iso packet header. These
- * fields are specified by IEEE 1394a and IEC 61883-1.
- *
- * The @control.SKIP flag specifies that no packet is to be sent in a frame.
- * When using this, all other fields except @control.INTERRUPT must be zero.
- *
- * When a packet with the @control.INTERRUPT flag set has been completed, an
- * &fw_cdev_event_iso_interrupt event will be sent.
- *
- * Context type %FW_CDEV_ISO_CONTEXT_RECEIVE:
- *
- * @control.HEADER_LENGTH must be a multiple of the context's header_size.
- * If the HEADER_LENGTH is larger than the context's header_size, multiple
- * packets are queued for this entry.
- *
- * The @control.SY and TAG fields are ignored.
- *
- * If the @control.SYNC flag is set, the context drops all packets until a
- * packet with a sy field is received which matches &fw_cdev_start_iso.sync.
- *
- * @control.PAYLOAD_LENGTH defines how many payload bytes can be received for
- * one packet (in addition to payload quadlets that have been defined as headers
- * and are stripped and returned in the &fw_cdev_event_iso_interrupt structure).
- * If more bytes are received, the additional bytes are dropped. If less bytes
- * are received, the remaining bytes in this part of the payload buffer will not
- * be written to, not even by the next packet. I.e., packets received in
- * consecutive frames will not necessarily be consecutive in memory. If an
- * entry has queued multiple packets, the PAYLOAD_LENGTH is divided equally
- * among them.
- *
- * When a packet with the @control.INTERRUPT flag set has been completed, an
- * &fw_cdev_event_iso_interrupt event will be sent. An entry that has queued
- * multiple receive packets is completed when its last packet is completed.
- *
- * Context type %FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL:
- *
- * Here, &fw_cdev_iso_packet would be more aptly named _iso_buffer_chunk since
- * it specifies a chunk of the mmap()'ed buffer, while the number and alignment
- * of packets to be placed into the buffer chunk is not known beforehand.
- *
- * @control.PAYLOAD_LENGTH is the size of the buffer chunk and specifies room
- * for header, payload, padding, and trailer bytes of one or more packets.
- * It must be a multiple of 4.
- *
- * @control.HEADER_LENGTH, TAG and SY are ignored. SYNC is treated as described
- * for single-channel reception.
- *
- * When a buffer chunk with the @control.INTERRUPT flag set has been filled
- * entirely, an &fw_cdev_event_iso_interrupt_mc event will be sent.
- */
-struct fw_cdev_iso_packet {
- __u32 control;
- __u32 header[0];
-};
-
-/**
- * struct fw_cdev_queue_iso - Queue isochronous packets for I/O
- * @packets: Userspace pointer to an array of &fw_cdev_iso_packet
- * @data: Pointer into mmap()'ed payload buffer
- * @size: Size of the @packets array, in bytes
- * @handle: Isochronous context handle
- *
- * Queue a number of isochronous packets for reception or transmission.
- * This ioctl takes a pointer to an array of &fw_cdev_iso_packet structs,
- * which describe how to transmit from or receive into a contiguous region
- * of a mmap()'ed payload buffer. As part of transmit packet descriptors,
- * a series of headers can be supplied, which will be prepended to the
- * payload during DMA.
- *
- * The kernel may or may not queue all packets, but will write back updated
- * values of the @packets, @data and @size fields, so the ioctl can be
- * resubmitted easily.
- *
- * In case of a multichannel receive context, @data must be quadlet-aligned
- * relative to the buffer start.
- */
-struct fw_cdev_queue_iso {
- __u64 packets;
- __u64 data;
- __u32 size;
- __u32 handle;
-};
-
-#define FW_CDEV_ISO_CONTEXT_MATCH_TAG0 1
-#define FW_CDEV_ISO_CONTEXT_MATCH_TAG1 2
-#define FW_CDEV_ISO_CONTEXT_MATCH_TAG2 4
-#define FW_CDEV_ISO_CONTEXT_MATCH_TAG3 8
-#define FW_CDEV_ISO_CONTEXT_MATCH_ALL_TAGS 15
-
-/**
- * struct fw_cdev_start_iso - Start an isochronous transmission or reception
- * @cycle: Cycle in which to start I/O. If @cycle is greater than or
- * equal to 0, the I/O will start on that cycle.
- * @sync: Determines the value to wait for for receive packets that have
- * the %FW_CDEV_ISO_SYNC bit set
- * @tags: Tag filter bit mask. Only valid for isochronous reception.
- * Determines the tag values for which packets will be accepted.
- * Use FW_CDEV_ISO_CONTEXT_MATCH_ macros to set @tags.
- * @handle: Isochronous context handle within which to transmit or receive
- */
-struct fw_cdev_start_iso {
- __s32 cycle;
- __u32 sync;
- __u32 tags;
- __u32 handle;
-};
-
-/**
- * struct fw_cdev_stop_iso - Stop an isochronous transmission or reception
- * @handle: Handle of isochronous context to stop
- */
-struct fw_cdev_stop_iso {
- __u32 handle;
-};
-
-/**
- * struct fw_cdev_flush_iso - flush completed iso packets
- * @handle: handle of isochronous context to flush
- *
- * For %FW_CDEV_ISO_CONTEXT_TRANSMIT or %FW_CDEV_ISO_CONTEXT_RECEIVE contexts,
- * report any completed packets.
- *
- * For %FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL contexts, report the current
- * offset in the receive buffer, if it has changed; this is typically in the
- * middle of some buffer chunk.
- *
- * Any %FW_CDEV_EVENT_ISO_INTERRUPT or %FW_CDEV_EVENT_ISO_INTERRUPT_MULTICHANNEL
- * events generated by this ioctl are sent synchronously, i.e., are available
- * for reading from the file descriptor when this ioctl returns.
- */
-struct fw_cdev_flush_iso {
- __u32 handle;
-};
-
-/**
- * struct fw_cdev_get_cycle_timer - read cycle timer register
- * @local_time: system time, in microseconds since the Epoch
- * @cycle_timer: Cycle Time register contents
- *
- * Same as %FW_CDEV_IOC_GET_CYCLE_TIMER2, but fixed to use %CLOCK_REALTIME
- * and only with microseconds resolution.
- *
- * In version 1 and 2 of the ABI, this ioctl returned unreliable (non-
- * monotonic) @cycle_timer values on certain controllers.
- */
-struct fw_cdev_get_cycle_timer {
- __u64 local_time;
- __u32 cycle_timer;
-};
-
-/**
- * struct fw_cdev_get_cycle_timer2 - read cycle timer register
- * @tv_sec: system time, seconds
- * @tv_nsec: system time, sub-seconds part in nanoseconds
- * @clk_id: input parameter, clock from which to get the system time
- * @cycle_timer: Cycle Time register contents
- *
- * The %FW_CDEV_IOC_GET_CYCLE_TIMER2 ioctl reads the isochronous cycle timer
- * and also the system clock. This allows to correlate reception time of
- * isochronous packets with system time.
- *
- * @clk_id lets you choose a clock like with POSIX' clock_gettime function.
- * Supported @clk_id values are POSIX' %CLOCK_REALTIME and %CLOCK_MONOTONIC
- * and Linux' %CLOCK_MONOTONIC_RAW.
- *
- * @cycle_timer consists of 7 bits cycleSeconds, 13 bits cycleCount, and
- * 12 bits cycleOffset, in host byte order. Cf. the Cycle Time register
- * per IEEE 1394 or Isochronous Cycle Timer register per OHCI-1394.
- */
-struct fw_cdev_get_cycle_timer2 {
- __s64 tv_sec;
- __s32 tv_nsec;
- __s32 clk_id;
- __u32 cycle_timer;
-};
-
-/**
- * struct fw_cdev_allocate_iso_resource - (De)allocate a channel or bandwidth
- * @closure: Passed back to userspace in corresponding iso resource events
- * @channels: Isochronous channels of which one is to be (de)allocated
- * @bandwidth: Isochronous bandwidth units to be (de)allocated
- * @handle: Handle to the allocation, written by the kernel (only valid in
- * case of %FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE ioctls)
- *
- * The %FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE ioctl initiates allocation of an
- * isochronous channel and/or of isochronous bandwidth at the isochronous
- * resource manager (IRM). Only one of the channels specified in @channels is
- * allocated. An %FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED is sent after
- * communication with the IRM, indicating success or failure in the event data.
- * The kernel will automatically reallocate the resources after bus resets.
- * Should a reallocation fail, an %FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED event
- * will be sent. The kernel will also automatically deallocate the resources
- * when the file descriptor is closed.
- *
- * The %FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE ioctl can be used to initiate
- * deallocation of resources which were allocated as described above.
- * An %FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED event concludes this operation.
- *
- * The %FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE ioctl is a variant of allocation
- * without automatic re- or deallocation.
- * An %FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED event concludes this operation,
- * indicating success or failure in its data.
- *
- * The %FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE ioctl works like
- * %FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE except that resources are freed
- * instead of allocated.
- * An %FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED event concludes this operation.
- *
- * To summarize, %FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE allocates iso resources
- * for the lifetime of the fd or @handle.
- * In contrast, %FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE allocates iso resources
- * for the duration of a bus generation.
- *
- * @channels is a host-endian bitfield with the least significant bit
- * representing channel 0 and the most significant bit representing channel 63:
- * 1ULL << c for each channel c that is a candidate for (de)allocation.
- *
- * @bandwidth is expressed in bandwidth allocation units, i.e. the time to send
- * one quadlet of data (payload or header data) at speed S1600.
- */
-struct fw_cdev_allocate_iso_resource {
- __u64 closure;
- __u64 channels;
- __u32 bandwidth;
- __u32 handle;
-};
-
-/**
- * struct fw_cdev_send_stream_packet - send an asynchronous stream packet
- * @length: Length of outgoing payload, in bytes
- * @tag: Data format tag
- * @channel: Isochronous channel to transmit to
- * @sy: Synchronization code
- * @closure: Passed back to userspace in the response event
- * @data: Userspace pointer to payload
- * @generation: The bus generation where packet is valid
- * @speed: Speed to transmit at
- *
- * The %FW_CDEV_IOC_SEND_STREAM_PACKET ioctl sends an asynchronous stream packet
- * to every device which is listening to the specified channel. The kernel
- * writes an &fw_cdev_event_response event which indicates success or failure of
- * the transmission.
- */
-struct fw_cdev_send_stream_packet {
- __u32 length;
- __u32 tag;
- __u32 channel;
- __u32 sy;
- __u64 closure;
- __u64 data;
- __u32 generation;
- __u32 speed;
-};
-
-/**
- * struct fw_cdev_send_phy_packet - send a PHY packet
- * @closure: Passed back to userspace in the PHY-packet-sent event
- * @data: First and second quadlet of the PHY packet
- * @generation: The bus generation where packet is valid
- *
- * The %FW_CDEV_IOC_SEND_PHY_PACKET ioctl sends a PHY packet to all nodes
- * on the same card as this device. After transmission, an
- * %FW_CDEV_EVENT_PHY_PACKET_SENT event is generated.
- *
- * The payload @data[] shall be specified in host byte order. Usually,
- * @data[1] needs to be the bitwise inverse of @data[0]. VersaPHY packets
- * are an exception to this rule.
- *
- * The ioctl is only permitted on device files which represent a local node.
- */
-struct fw_cdev_send_phy_packet {
- __u64 closure;
- __u32 data[2];
- __u32 generation;
-};
-
-/**
- * struct fw_cdev_receive_phy_packets - start reception of PHY packets
- * @closure: Passed back to userspace in phy packet events
- *
- * This ioctl activates issuing of %FW_CDEV_EVENT_PHY_PACKET_RECEIVED due to
- * incoming PHY packets from any node on the same bus as the device.
- *
- * The ioctl is only permitted on device files which represent a local node.
- */
-struct fw_cdev_receive_phy_packets {
- __u64 closure;
-};
-
-#define FW_CDEV_VERSION 3 /* Meaningless legacy macro; don't use it. */
-
-#endif /* _LINUX_FIREWIRE_CDEV_H */
diff --git a/ANDROID_3.4.5/include/linux/firewire-constants.h b/ANDROID_3.4.5/include/linux/firewire-constants.h
deleted file mode 100644
index 9b4bb5fb..00000000
--- a/ANDROID_3.4.5/include/linux/firewire-constants.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * IEEE 1394 constants.
- *
- * Copyright (C) 2005-2007 Kristian Hoegsberg <krh@bitplanet.net>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef _LINUX_FIREWIRE_CONSTANTS_H
-#define _LINUX_FIREWIRE_CONSTANTS_H
-
-#define TCODE_WRITE_QUADLET_REQUEST 0x0
-#define TCODE_WRITE_BLOCK_REQUEST 0x1
-#define TCODE_WRITE_RESPONSE 0x2
-#define TCODE_READ_QUADLET_REQUEST 0x4
-#define TCODE_READ_BLOCK_REQUEST 0x5
-#define TCODE_READ_QUADLET_RESPONSE 0x6
-#define TCODE_READ_BLOCK_RESPONSE 0x7
-#define TCODE_CYCLE_START 0x8
-#define TCODE_LOCK_REQUEST 0x9
-#define TCODE_STREAM_DATA 0xa
-#define TCODE_LOCK_RESPONSE 0xb
-
-#define EXTCODE_MASK_SWAP 0x1
-#define EXTCODE_COMPARE_SWAP 0x2
-#define EXTCODE_FETCH_ADD 0x3
-#define EXTCODE_LITTLE_ADD 0x4
-#define EXTCODE_BOUNDED_ADD 0x5
-#define EXTCODE_WRAP_ADD 0x6
-#define EXTCODE_VENDOR_DEPENDENT 0x7
-
-/* Linux firewire-core (Juju) specific tcodes */
-#define TCODE_LOCK_MASK_SWAP (0x10 | EXTCODE_MASK_SWAP)
-#define TCODE_LOCK_COMPARE_SWAP (0x10 | EXTCODE_COMPARE_SWAP)
-#define TCODE_LOCK_FETCH_ADD (0x10 | EXTCODE_FETCH_ADD)
-#define TCODE_LOCK_LITTLE_ADD (0x10 | EXTCODE_LITTLE_ADD)
-#define TCODE_LOCK_BOUNDED_ADD (0x10 | EXTCODE_BOUNDED_ADD)
-#define TCODE_LOCK_WRAP_ADD (0x10 | EXTCODE_WRAP_ADD)
-#define TCODE_LOCK_VENDOR_DEPENDENT (0x10 | EXTCODE_VENDOR_DEPENDENT)
-
-#define RCODE_COMPLETE 0x0
-#define RCODE_CONFLICT_ERROR 0x4
-#define RCODE_DATA_ERROR 0x5
-#define RCODE_TYPE_ERROR 0x6
-#define RCODE_ADDRESS_ERROR 0x7
-
-/* Linux firewire-core (Juju) specific rcodes */
-#define RCODE_SEND_ERROR 0x10
-#define RCODE_CANCELLED 0x11
-#define RCODE_BUSY 0x12
-#define RCODE_GENERATION 0x13
-#define RCODE_NO_ACK 0x14
-
-#define SCODE_100 0x0
-#define SCODE_200 0x1
-#define SCODE_400 0x2
-#define SCODE_800 0x3
-#define SCODE_1600 0x4
-#define SCODE_3200 0x5
-#define SCODE_BETA 0x3
-
-#define ACK_COMPLETE 0x1
-#define ACK_PENDING 0x2
-#define ACK_BUSY_X 0x4
-#define ACK_BUSY_A 0x5
-#define ACK_BUSY_B 0x6
-#define ACK_DATA_ERROR 0xd
-#define ACK_TYPE_ERROR 0xe
-
-#define RETRY_1 0x00
-#define RETRY_X 0x01
-#define RETRY_A 0x02
-#define RETRY_B 0x03
-
-#endif /* _LINUX_FIREWIRE_CONSTANTS_H */
diff --git a/ANDROID_3.4.5/include/linux/firewire.h b/ANDROID_3.4.5/include/linux/firewire.h
deleted file mode 100644
index cdc9b719..00000000
--- a/ANDROID_3.4.5/include/linux/firewire.h
+++ /dev/null
@@ -1,440 +0,0 @@
-#ifndef _LINUX_FIREWIRE_H
-#define _LINUX_FIREWIRE_H
-
-#include <linux/completion.h>
-#include <linux/device.h>
-#include <linux/dma-mapping.h>
-#include <linux/kernel.h>
-#include <linux/kref.h>
-#include <linux/list.h>
-#include <linux/mutex.h>
-#include <linux/spinlock.h>
-#include <linux/sysfs.h>
-#include <linux/timer.h>
-#include <linux/types.h>
-#include <linux/workqueue.h>
-
-#include <linux/atomic.h>
-#include <asm/byteorder.h>
-
-#define CSR_REGISTER_BASE 0xfffff0000000ULL
-
-/* register offsets are relative to CSR_REGISTER_BASE */
-#define CSR_STATE_CLEAR 0x0
-#define CSR_STATE_SET 0x4
-#define CSR_NODE_IDS 0x8
-#define CSR_RESET_START 0xc
-#define CSR_SPLIT_TIMEOUT_HI 0x18
-#define CSR_SPLIT_TIMEOUT_LO 0x1c
-#define CSR_CYCLE_TIME 0x200
-#define CSR_BUS_TIME 0x204
-#define CSR_BUSY_TIMEOUT 0x210
-#define CSR_PRIORITY_BUDGET 0x218
-#define CSR_BUS_MANAGER_ID 0x21c
-#define CSR_BANDWIDTH_AVAILABLE 0x220
-#define CSR_CHANNELS_AVAILABLE 0x224
-#define CSR_CHANNELS_AVAILABLE_HI 0x224
-#define CSR_CHANNELS_AVAILABLE_LO 0x228
-#define CSR_MAINT_UTILITY 0x230
-#define CSR_BROADCAST_CHANNEL 0x234
-#define CSR_CONFIG_ROM 0x400
-#define CSR_CONFIG_ROM_END 0x800
-#define CSR_OMPR 0x900
-#define CSR_OPCR(i) (0x904 + (i) * 4)
-#define CSR_IMPR 0x980
-#define CSR_IPCR(i) (0x984 + (i) * 4)
-#define CSR_FCP_COMMAND 0xB00
-#define CSR_FCP_RESPONSE 0xD00
-#define CSR_FCP_END 0xF00
-#define CSR_TOPOLOGY_MAP 0x1000
-#define CSR_TOPOLOGY_MAP_END 0x1400
-#define CSR_SPEED_MAP 0x2000
-#define CSR_SPEED_MAP_END 0x3000
-
-#define CSR_OFFSET 0x40
-#define CSR_LEAF 0x80
-#define CSR_DIRECTORY 0xc0
-
-#define CSR_DESCRIPTOR 0x01
-#define CSR_VENDOR 0x03
-#define CSR_HARDWARE_VERSION 0x04
-#define CSR_UNIT 0x11
-#define CSR_SPECIFIER_ID 0x12
-#define CSR_VERSION 0x13
-#define CSR_DEPENDENT_INFO 0x14
-#define CSR_MODEL 0x17
-#define CSR_DIRECTORY_ID 0x20
-
-struct fw_csr_iterator {
- const u32 *p;
- const u32 *end;
-};
-
-void fw_csr_iterator_init(struct fw_csr_iterator *ci, const u32 *p);
-int fw_csr_iterator_next(struct fw_csr_iterator *ci, int *key, int *value);
-int fw_csr_string(const u32 *directory, int key, char *buf, size_t size);
-
-extern struct bus_type fw_bus_type;
-
-struct fw_card_driver;
-struct fw_node;
-
-struct fw_card {
- const struct fw_card_driver *driver;
- struct device *device;
- struct kref kref;
- struct completion done;
-
- int node_id;
- int generation;
- int current_tlabel;
- u64 tlabel_mask;
- struct list_head transaction_list;
- u64 reset_jiffies;
-
- u32 split_timeout_hi;
- u32 split_timeout_lo;
- unsigned int split_timeout_cycles;
- unsigned int split_timeout_jiffies;
-
- unsigned long long guid;
- unsigned max_receive;
- int link_speed;
- int config_rom_generation;
-
- spinlock_t lock; /* Take this lock when handling the lists in
- * this struct. */
- struct fw_node *local_node;
- struct fw_node *root_node;
- struct fw_node *irm_node;
- u8 color; /* must be u8 to match the definition in struct fw_node */
- int gap_count;
- bool beta_repeaters_present;
-
- int index;
- struct list_head link;
-
- struct list_head phy_receiver_list;
-
- struct delayed_work br_work; /* bus reset job */
- bool br_short;
-
- struct delayed_work bm_work; /* bus manager job */
- int bm_retries;
- int bm_generation;
- int bm_node_id;
- bool bm_abdicate;
-
- bool priority_budget_implemented; /* controller feature */
- bool broadcast_channel_auto_allocated; /* controller feature */
-
- bool broadcast_channel_allocated;
- u32 broadcast_channel;
- __be32 topology_map[(CSR_TOPOLOGY_MAP_END - CSR_TOPOLOGY_MAP) / 4];
-
- __be32 maint_utility_register;
-};
-
-struct fw_attribute_group {
- struct attribute_group *groups[2];
- struct attribute_group group;
- struct attribute *attrs[12];
-};
-
-enum fw_device_state {
- FW_DEVICE_INITIALIZING,
- FW_DEVICE_RUNNING,
- FW_DEVICE_GONE,
- FW_DEVICE_SHUTDOWN,
-};
-
-/*
- * Note, fw_device.generation always has to be read before fw_device.node_id.
- * Use SMP memory barriers to ensure this. Otherwise requests will be sent
- * to an outdated node_id if the generation was updated in the meantime due
- * to a bus reset.
- *
- * Likewise, fw-core will take care to update .node_id before .generation so
- * that whenever fw_device.generation is current WRT the actual bus generation,
- * fw_device.node_id is guaranteed to be current too.
- *
- * The same applies to fw_device.card->node_id vs. fw_device.generation.
- *
- * fw_device.config_rom and fw_device.config_rom_length may be accessed during
- * the lifetime of any fw_unit belonging to the fw_device, before device_del()
- * was called on the last fw_unit. Alternatively, they may be accessed while
- * holding fw_device_rwsem.
- */
-struct fw_device {
- atomic_t state;
- struct fw_node *node;
- int node_id;
- int generation;
- unsigned max_speed;
- struct fw_card *card;
- struct device device;
-
- struct mutex client_list_mutex;
- struct list_head client_list;
-
- const u32 *config_rom;
- size_t config_rom_length;
- int config_rom_retries;
- unsigned is_local:1;
- unsigned max_rec:4;
- unsigned cmc:1;
- unsigned irmc:1;
- unsigned bc_implemented:2;
-
- struct delayed_work work;
- struct fw_attribute_group attribute_group;
-};
-
-static inline struct fw_device *fw_device(struct device *dev)
-{
- return container_of(dev, struct fw_device, device);
-}
-
-static inline int fw_device_is_shutdown(struct fw_device *device)
-{
- return atomic_read(&device->state) == FW_DEVICE_SHUTDOWN;
-}
-
-int fw_device_enable_phys_dma(struct fw_device *device);
-
-/*
- * fw_unit.directory must not be accessed after device_del(&fw_unit.device).
- */
-struct fw_unit {
- struct device device;
- const u32 *directory;
- struct fw_attribute_group attribute_group;
-};
-
-static inline struct fw_unit *fw_unit(struct device *dev)
-{
- return container_of(dev, struct fw_unit, device);
-}
-
-static inline struct fw_unit *fw_unit_get(struct fw_unit *unit)
-{
- get_device(&unit->device);
-
- return unit;
-}
-
-static inline void fw_unit_put(struct fw_unit *unit)
-{
- put_device(&unit->device);
-}
-
-static inline struct fw_device *fw_parent_device(struct fw_unit *unit)
-{
- return fw_device(unit->device.parent);
-}
-
-struct ieee1394_device_id;
-
-struct fw_driver {
- struct device_driver driver;
- /* Called when the parent device sits through a bus reset. */
- void (*update)(struct fw_unit *unit);
- const struct ieee1394_device_id *id_table;
-};
-
-struct fw_packet;
-struct fw_request;
-
-typedef void (*fw_packet_callback_t)(struct fw_packet *packet,
- struct fw_card *card, int status);
-typedef void (*fw_transaction_callback_t)(struct fw_card *card, int rcode,
- void *data, size_t length,
- void *callback_data);
-/*
- * Important note: Except for the FCP registers, the callback must guarantee
- * that either fw_send_response() or kfree() is called on the @request.
- */
-typedef void (*fw_address_callback_t)(struct fw_card *card,
- struct fw_request *request,
- int tcode, int destination, int source,
- int generation,
- unsigned long long offset,
- void *data, size_t length,
- void *callback_data);
-
-struct fw_packet {
- int speed;
- int generation;
- u32 header[4];
- size_t header_length;
- void *payload;
- size_t payload_length;
- dma_addr_t payload_bus;
- bool payload_mapped;
- u32 timestamp;
-
- /*
- * This callback is called when the packet transmission has completed.
- * For successful transmission, the status code is the ack received
- * from the destination. Otherwise it is one of the juju-specific
- * rcodes: RCODE_SEND_ERROR, _CANCELLED, _BUSY, _GENERATION, _NO_ACK.
- * The callback can be called from tasklet context and thus
- * must never block.
- */
- fw_packet_callback_t callback;
- int ack;
- struct list_head link;
- void *driver_data;
-};
-
-struct fw_transaction {
- int node_id; /* The generation is implied; it is always the current. */
- int tlabel;
- struct list_head link;
- struct fw_card *card;
- bool is_split_transaction;
- struct timer_list split_timeout_timer;
-
- struct fw_packet packet;
-
- /*
- * The data passed to the callback is valid only during the
- * callback.
- */
- fw_transaction_callback_t callback;
- void *callback_data;
-};
-
-struct fw_address_handler {
- u64 offset;
- size_t length;
- fw_address_callback_t address_callback;
- void *callback_data;
- struct list_head link;
-};
-
-struct fw_address_region {
- u64 start;
- u64 end;
-};
-
-extern const struct fw_address_region fw_high_memory_region;
-
-int fw_core_add_address_handler(struct fw_address_handler *handler,
- const struct fw_address_region *region);
-void fw_core_remove_address_handler(struct fw_address_handler *handler);
-void fw_send_response(struct fw_card *card,
- struct fw_request *request, int rcode);
-void fw_send_request(struct fw_card *card, struct fw_transaction *t,
- int tcode, int destination_id, int generation, int speed,
- unsigned long long offset, void *payload, size_t length,
- fw_transaction_callback_t callback, void *callback_data);
-int fw_cancel_transaction(struct fw_card *card,
- struct fw_transaction *transaction);
-int fw_run_transaction(struct fw_card *card, int tcode, int destination_id,
- int generation, int speed, unsigned long long offset,
- void *payload, size_t length);
-
-static inline int fw_stream_packet_destination_id(int tag, int channel, int sy)
-{
- return tag << 14 | channel << 8 | sy;
-}
-
-struct fw_descriptor {
- struct list_head link;
- size_t length;
- u32 immediate;
- u32 key;
- const u32 *data;
-};
-
-int fw_core_add_descriptor(struct fw_descriptor *desc);
-void fw_core_remove_descriptor(struct fw_descriptor *desc);
-
-/*
- * The iso packet format allows for an immediate header/payload part
- * stored in 'header' immediately after the packet info plus an
- * indirect payload part that is pointer to by the 'payload' field.
- * Applications can use one or the other or both to implement simple
- * low-bandwidth streaming (e.g. audio) or more advanced
- * scatter-gather streaming (e.g. assembling video frame automatically).
- */
-struct fw_iso_packet {
- u16 payload_length; /* Length of indirect payload */
- u32 interrupt:1; /* Generate interrupt on this packet */
- u32 skip:1; /* tx: Set to not send packet at all */
- /* rx: Sync bit, wait for matching sy */
- u32 tag:2; /* tx: Tag in packet header */
- u32 sy:4; /* tx: Sy in packet header */
- u32 header_length:8; /* Length of immediate header */
- u32 header[0]; /* tx: Top of 1394 isoch. data_block */
-};
-
-#define FW_ISO_CONTEXT_TRANSMIT 0
-#define FW_ISO_CONTEXT_RECEIVE 1
-#define FW_ISO_CONTEXT_RECEIVE_MULTICHANNEL 2
-
-#define FW_ISO_CONTEXT_MATCH_TAG0 1
-#define FW_ISO_CONTEXT_MATCH_TAG1 2
-#define FW_ISO_CONTEXT_MATCH_TAG2 4
-#define FW_ISO_CONTEXT_MATCH_TAG3 8
-#define FW_ISO_CONTEXT_MATCH_ALL_TAGS 15
-
-/*
- * An iso buffer is just a set of pages mapped for DMA in the
- * specified direction. Since the pages are to be used for DMA, they
- * are not mapped into the kernel virtual address space. We store the
- * DMA address in the page private. The helper function
- * fw_iso_buffer_map() will map the pages into a given vma.
- */
-struct fw_iso_buffer {
- enum dma_data_direction direction;
- struct page **pages;
- int page_count;
-};
-
-int fw_iso_buffer_init(struct fw_iso_buffer *buffer, struct fw_card *card,
- int page_count, enum dma_data_direction direction);
-void fw_iso_buffer_destroy(struct fw_iso_buffer *buffer, struct fw_card *card);
-size_t fw_iso_buffer_lookup(struct fw_iso_buffer *buffer, dma_addr_t completed);
-
-struct fw_iso_context;
-typedef void (*fw_iso_callback_t)(struct fw_iso_context *context,
- u32 cycle, size_t header_length,
- void *header, void *data);
-typedef void (*fw_iso_mc_callback_t)(struct fw_iso_context *context,
- dma_addr_t completed, void *data);
-struct fw_iso_context {
- struct fw_card *card;
- int type;
- int channel;
- int speed;
- size_t header_size;
- union {
- fw_iso_callback_t sc;
- fw_iso_mc_callback_t mc;
- } callback;
- void *callback_data;
-};
-
-struct fw_iso_context *fw_iso_context_create(struct fw_card *card,
- int type, int channel, int speed, size_t header_size,
- fw_iso_callback_t callback, void *callback_data);
-int fw_iso_context_set_channels(struct fw_iso_context *ctx, u64 *channels);
-int fw_iso_context_queue(struct fw_iso_context *ctx,
- struct fw_iso_packet *packet,
- struct fw_iso_buffer *buffer,
- unsigned long payload);
-void fw_iso_context_queue_flush(struct fw_iso_context *ctx);
-int fw_iso_context_flush_completions(struct fw_iso_context *ctx);
-int fw_iso_context_start(struct fw_iso_context *ctx,
- int cycle, int sync, int tags);
-int fw_iso_context_stop(struct fw_iso_context *ctx);
-void fw_iso_context_destroy(struct fw_iso_context *ctx);
-void fw_iso_resource_manage(struct fw_card *card, int generation,
- u64 channels_mask, int *channel, int *bandwidth,
- bool allocate);
-
-extern struct workqueue_struct *fw_workqueue;
-
-#endif /* _LINUX_FIREWIRE_H */
diff --git a/ANDROID_3.4.5/include/linux/firmware-map.h b/ANDROID_3.4.5/include/linux/firmware-map.h
deleted file mode 100644
index 43fe52fc..00000000
--- a/ANDROID_3.4.5/include/linux/firmware-map.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * include/linux/firmware-map.h:
- * Copyright (C) 2008 SUSE LINUX Products GmbH
- * by Bernhard Walle <bernhard.walle@gmx.de>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License v2.0 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.
- *
- */
-#ifndef _LINUX_FIRMWARE_MAP_H
-#define _LINUX_FIRMWARE_MAP_H
-
-#include <linux/list.h>
-
-/*
- * provide a dummy interface if CONFIG_FIRMWARE_MEMMAP is disabled
- */
-#ifdef CONFIG_FIRMWARE_MEMMAP
-
-int firmware_map_add_early(u64 start, u64 end, const char *type);
-int firmware_map_add_hotplug(u64 start, u64 end, const char *type);
-
-#else /* CONFIG_FIRMWARE_MEMMAP */
-
-static inline int firmware_map_add_early(u64 start, u64 end, const char *type)
-{
- return 0;
-}
-
-static inline int firmware_map_add_hotplug(u64 start, u64 end, const char *type)
-{
- return 0;
-}
-
-#endif /* CONFIG_FIRMWARE_MEMMAP */
-
-#endif /* _LINUX_FIRMWARE_MAP_H */
diff --git a/ANDROID_3.4.5/include/linux/firmware.h b/ANDROID_3.4.5/include/linux/firmware.h
deleted file mode 100644
index 1e7c0118..00000000
--- a/ANDROID_3.4.5/include/linux/firmware.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef _LINUX_FIRMWARE_H
-#define _LINUX_FIRMWARE_H
-
-#include <linux/types.h>
-#include <linux/compiler.h>
-#include <linux/gfp.h>
-
-#define FW_ACTION_NOHOTPLUG 0
-#define FW_ACTION_HOTPLUG 1
-
-struct firmware {
- size_t size;
- const u8 *data;
- struct page **pages;
-};
-
-struct module;
-struct device;
-
-struct builtin_fw {
- char *name;
- void *data;
- unsigned long size;
-};
-
-/* We have to play tricks here much like stringify() to get the
- __COUNTER__ macro to be expanded as we want it */
-#define __fw_concat1(x, y) x##y
-#define __fw_concat(x, y) __fw_concat1(x, y)
-
-#define DECLARE_BUILTIN_FIRMWARE(name, blob) \
- DECLARE_BUILTIN_FIRMWARE_SIZE(name, &(blob), sizeof(blob))
-
-#define DECLARE_BUILTIN_FIRMWARE_SIZE(name, blob, size) \
- static const struct builtin_fw __fw_concat(__builtin_fw,__COUNTER__) \
- __used __section(.builtin_fw) = { name, blob, size }
-
-#if defined(CONFIG_FW_LOADER) || (defined(CONFIG_FW_LOADER_MODULE) && defined(MODULE))
-int request_firmware(const struct firmware **fw, const char *name,
- struct device *device);
-int request_firmware_nowait(
- struct module *module, bool uevent,
- const char *name, struct device *device, gfp_t gfp, void *context,
- void (*cont)(const struct firmware *fw, void *context));
-
-void release_firmware(const struct firmware *fw);
-#else
-static inline int request_firmware(const struct firmware **fw,
- const char *name,
- struct device *device)
-{
- return -EINVAL;
-}
-static inline int request_firmware_nowait(
- struct module *module, bool uevent,
- const char *name, struct device *device, gfp_t gfp, void *context,
- void (*cont)(const struct firmware *fw, void *context))
-{
- return -EINVAL;
-}
-
-static inline void release_firmware(const struct firmware *fw)
-{
-}
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/flat.h b/ANDROID_3.4.5/include/linux/flat.h
deleted file mode 100644
index ec56852e..00000000
--- a/ANDROID_3.4.5/include/linux/flat.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright (C) 2002-2003 David McCullough <davidm@snapgear.com>
- * Copyright (C) 1998 Kenneth Albanowski <kjahds@kjahds.com>
- * The Silver Hammer Group, Ltd.
- *
- * This file provides the definitions and structures needed to
- * support uClinux flat-format executables.
- */
-
-#ifndef _LINUX_FLAT_H
-#define _LINUX_FLAT_H
-
-#ifdef __KERNEL__
-#include <asm/flat.h>
-#endif
-
-#define FLAT_VERSION 0x00000004L
-
-#ifdef CONFIG_BINFMT_SHARED_FLAT
-#define MAX_SHARED_LIBS (4)
-#else
-#define MAX_SHARED_LIBS (1)
-#endif
-
-/*
- * To make everything easier to port and manage cross platform
- * development, all fields are in network byte order.
- */
-
-struct flat_hdr {
- char magic[4];
- unsigned long rev; /* version (as above) */
- unsigned long entry; /* Offset of first executable instruction
- with text segment from beginning of file */
- unsigned long data_start; /* Offset of data segment from beginning of
- file */
- unsigned long data_end; /* Offset of end of data segment
- from beginning of file */
- unsigned long bss_end; /* Offset of end of bss segment from beginning
- of file */
-
- /* (It is assumed that data_end through bss_end forms the bss segment.) */
-
- unsigned long stack_size; /* Size of stack, in bytes */
- unsigned long reloc_start; /* Offset of relocation records from
- beginning of file */
- unsigned long reloc_count; /* Number of relocation records */
- unsigned long flags;
- unsigned long build_date; /* When the program/library was built */
- unsigned long filler[5]; /* Reservered, set to zero */
-};
-
-#define FLAT_FLAG_RAM 0x0001 /* load program entirely into RAM */
-#define FLAT_FLAG_GOTPIC 0x0002 /* program is PIC with GOT */
-#define FLAT_FLAG_GZIP 0x0004 /* all but the header is compressed */
-#define FLAT_FLAG_GZDATA 0x0008 /* only data/relocs are compressed (for XIP) */
-#define FLAT_FLAG_KTRACE 0x0010 /* output useful kernel trace for debugging */
-
-
-#ifdef __KERNEL__ /* so systems without linux headers can compile the apps */
-/*
- * While it would be nice to keep this header clean, users of older
- * tools still need this support in the kernel. So this section is
- * purely for compatibility with old tool chains.
- *
- * DO NOT make changes or enhancements to the old format please, just work
- * with the format above, except to fix bugs with old format support.
- */
-
-#include <asm/byteorder.h>
-
-#define OLD_FLAT_VERSION 0x00000002L
-#define OLD_FLAT_RELOC_TYPE_TEXT 0
-#define OLD_FLAT_RELOC_TYPE_DATA 1
-#define OLD_FLAT_RELOC_TYPE_BSS 2
-
-typedef union {
- unsigned long value;
- struct {
-# if defined(mc68000) && !defined(CONFIG_COLDFIRE)
- signed long offset : 30;
- unsigned long type : 2;
-# define OLD_FLAT_FLAG_RAM 0x1 /* load program entirely into RAM */
-# elif defined(__BIG_ENDIAN_BITFIELD)
- unsigned long type : 2;
- signed long offset : 30;
-# define OLD_FLAT_FLAG_RAM 0x1 /* load program entirely into RAM */
-# elif defined(__LITTLE_ENDIAN_BITFIELD)
- signed long offset : 30;
- unsigned long type : 2;
-# define OLD_FLAT_FLAG_RAM 0x1 /* load program entirely into RAM */
-# else
-# error "Unknown bitfield order for flat files."
-# endif
- } reloc;
-} flat_v2_reloc_t;
-
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_FLAT_H */
diff --git a/ANDROID_3.4.5/include/linux/flex_array.h b/ANDROID_3.4.5/include/linux/flex_array.h
deleted file mode 100644
index 6843cf19..00000000
--- a/ANDROID_3.4.5/include/linux/flex_array.h
+++ /dev/null
@@ -1,80 +0,0 @@
-#ifndef _FLEX_ARRAY_H
-#define _FLEX_ARRAY_H
-
-#include <linux/types.h>
-#include <asm/page.h>
-
-#define FLEX_ARRAY_PART_SIZE PAGE_SIZE
-#define FLEX_ARRAY_BASE_SIZE PAGE_SIZE
-
-struct flex_array_part;
-
-/*
- * This is meant to replace cases where an array-like
- * structure has gotten too big to fit into kmalloc()
- * and the developer is getting tempted to use
- * vmalloc().
- */
-
-struct flex_array {
- union {
- struct {
- int element_size;
- int total_nr_elements;
- int elems_per_part;
- u32 reciprocal_elems;
- struct flex_array_part *parts[];
- };
- /*
- * This little trick makes sure that
- * sizeof(flex_array) == PAGE_SIZE
- */
- char padding[FLEX_ARRAY_BASE_SIZE];
- };
-};
-
-/* Number of bytes left in base struct flex_array, excluding metadata */
-#define FLEX_ARRAY_BASE_BYTES_LEFT \
- (FLEX_ARRAY_BASE_SIZE - offsetof(struct flex_array, parts))
-
-/* Number of pointers in base to struct flex_array_part pages */
-#define FLEX_ARRAY_NR_BASE_PTRS \
- (FLEX_ARRAY_BASE_BYTES_LEFT / sizeof(struct flex_array_part *))
-
-/* Number of elements of size that fit in struct flex_array_part */
-#define FLEX_ARRAY_ELEMENTS_PER_PART(size) \
- (FLEX_ARRAY_PART_SIZE / size)
-
-/*
- * Defines a statically allocated flex array and ensures its parameters are
- * valid.
- */
-#define DEFINE_FLEX_ARRAY(__arrayname, __element_size, __total) \
- struct flex_array __arrayname = { { { \
- .element_size = (__element_size), \
- .total_nr_elements = (__total), \
- } } }; \
- static inline void __arrayname##_invalid_parameter(void) \
- { \
- BUILD_BUG_ON((__total) > FLEX_ARRAY_NR_BASE_PTRS * \
- FLEX_ARRAY_ELEMENTS_PER_PART(__element_size)); \
- }
-
-struct flex_array *flex_array_alloc(int element_size, unsigned int total,
- gfp_t flags);
-int flex_array_prealloc(struct flex_array *fa, unsigned int start,
- unsigned int nr_elements, gfp_t flags);
-void flex_array_free(struct flex_array *fa);
-void flex_array_free_parts(struct flex_array *fa);
-int flex_array_put(struct flex_array *fa, unsigned int element_nr, void *src,
- gfp_t flags);
-int flex_array_clear(struct flex_array *fa, unsigned int element_nr);
-void *flex_array_get(struct flex_array *fa, unsigned int element_nr);
-int flex_array_shrink(struct flex_array *fa);
-
-#define flex_array_put_ptr(fa, nr, src, gfp) \
- flex_array_put(fa, nr, (void *)&(src), gfp)
-
-void *flex_array_get_ptr(struct flex_array *fa, unsigned int element_nr);
-
-#endif /* _FLEX_ARRAY_H */
diff --git a/ANDROID_3.4.5/include/linux/font.h b/ANDROID_3.4.5/include/linux/font.h
deleted file mode 100644
index 40a24ab4..00000000
--- a/ANDROID_3.4.5/include/linux/font.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * font.h -- `Soft' font definitions
- *
- * Created 1995 by Geert Uytterhoeven
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file COPYING in the main directory of this archive
- * for more details.
- */
-
-#ifndef _VIDEO_FONT_H
-#define _VIDEO_FONT_H
-
-#include <linux/types.h>
-
-struct font_desc {
- int idx;
- const char *name;
- int width, height;
- const void *data;
- int pref;
-};
-
-#define VGA8x8_IDX 0
-#define VGA8x16_IDX 1
-#define PEARL8x8_IDX 2
-#define VGA6x11_IDX 3
-#define FONT7x14_IDX 4
-#define FONT10x18_IDX 5
-#define SUN8x16_IDX 6
-#define SUN12x22_IDX 7
-#define ACORN8x8_IDX 8
-#define MINI4x6_IDX 9
-
-extern const struct font_desc font_vga_8x8,
- font_vga_8x16,
- font_pearl_8x8,
- font_vga_6x11,
- font_7x14,
- font_10x18,
- font_sun_8x16,
- font_sun_12x22,
- font_acorn_8x8,
- font_mini_4x6;
-
-/* Find a font with a specific name */
-
-extern const struct font_desc *find_font(const char *name);
-
-/* Get the default font for a specific screen size */
-
-extern const struct font_desc *get_default_font(int xres, int yres,
- u32 font_w, u32 font_h);
-
-/* Max. length for the name of a predefined font */
-#define MAX_FONT_NAME 32
-
-#endif /* _VIDEO_FONT_H */
diff --git a/ANDROID_3.4.5/include/linux/freezer.h b/ANDROID_3.4.5/include/linux/freezer.h
deleted file mode 100644
index a628084e..00000000
--- a/ANDROID_3.4.5/include/linux/freezer.h
+++ /dev/null
@@ -1,214 +0,0 @@
-/* Freezer declarations */
-
-#ifndef FREEZER_H_INCLUDED
-#define FREEZER_H_INCLUDED
-
-#include <linux/sched.h>
-#include <linux/wait.h>
-#include <linux/atomic.h>
-
-#ifdef CONFIG_FREEZER
-extern atomic_t system_freezing_cnt; /* nr of freezing conds in effect */
-extern bool pm_freezing; /* PM freezing in effect */
-extern bool pm_nosig_freezing; /* PM nosig freezing in effect */
-
-/*
- * Check if a process has been frozen
- */
-static inline bool frozen(struct task_struct *p)
-{
- return p->flags & PF_FROZEN;
-}
-
-extern bool freezing_slow_path(struct task_struct *p);
-
-/*
- * Check if there is a request to freeze a process
- */
-static inline bool freezing(struct task_struct *p)
-{
- if (likely(!atomic_read(&system_freezing_cnt)))
- return false;
- return freezing_slow_path(p);
-}
-
-/* Takes and releases task alloc lock using task_lock() */
-extern void __thaw_task(struct task_struct *t);
-
-extern bool __refrigerator(bool check_kthr_stop);
-extern int freeze_processes(void);
-extern int freeze_kernel_threads(void);
-extern void thaw_processes(void);
-extern void thaw_kernel_threads(void);
-
-/*
- * HACK: prevent sleeping while atomic warnings due to ARM signal handling
- * disabling irqs
- */
-static inline bool try_to_freeze_nowarn(void)
-{
- if (likely(!freezing(current)))
- return false;
- return __refrigerator(false);
-}
-
-static inline bool try_to_freeze(void)
-{
- might_sleep();
- if (likely(!freezing(current)))
- return false;
- return __refrigerator(false);
-}
-
-extern bool freeze_task(struct task_struct *p);
-extern bool set_freezable(void);
-
-#ifdef CONFIG_CGROUP_FREEZER
-extern bool cgroup_freezing(struct task_struct *task);
-#else /* !CONFIG_CGROUP_FREEZER */
-static inline bool cgroup_freezing(struct task_struct *task)
-{
- return false;
-}
-#endif /* !CONFIG_CGROUP_FREEZER */
-
-/*
- * The PF_FREEZER_SKIP flag should be set by a vfork parent right before it
- * calls wait_for_completion(&vfork) and reset right after it returns from this
- * function. Next, the parent should call try_to_freeze() to freeze itself
- * appropriately in case the child has exited before the freezing of tasks is
- * complete. However, we don't want kernel threads to be frozen in unexpected
- * places, so we allow them to block freeze_processes() instead or to set
- * PF_NOFREEZE if needed. Fortunately, in the ____call_usermodehelper() case the
- * parent won't really block freeze_processes(), since ____call_usermodehelper()
- * (the child) does a little before exec/exit and it can't be frozen before
- * waking up the parent.
- */
-
-
-/* Tell the freezer not to count the current task as freezable. */
-static inline void freezer_do_not_count(void)
-{
- current->flags |= PF_FREEZER_SKIP;
-}
-
-/*
- * Tell the freezer to count the current task as freezable again and try to
- * freeze it.
- */
-static inline void freezer_count(void)
-{
- current->flags &= ~PF_FREEZER_SKIP;
- try_to_freeze();
-}
-
-/*
- * Check if the task should be counted as freezable by the freezer
- */
-static inline int freezer_should_skip(struct task_struct *p)
-{
- return !!(p->flags & PF_FREEZER_SKIP);
-}
-
-/*
- * These macros are intended to be used whenever you want allow a task that's
- * sleeping in TASK_UNINTERRUPTIBLE or TASK_KILLABLE state to be frozen. Note
- * that neither return any clear indication of whether a freeze event happened
- * while in this function.
- */
-
-/* Like schedule(), but should not block the freezer. */
-#define freezable_schedule() \
-({ \
- freezer_do_not_count(); \
- schedule(); \
- freezer_count(); \
-})
-
-/* Like schedule_timeout_killable(), but should not block the freezer. */
-#define freezable_schedule_timeout_killable(timeout) \
-({ \
- long __retval; \
- freezer_do_not_count(); \
- __retval = schedule_timeout_killable(timeout); \
- freezer_count(); \
- __retval; \
-})
-
-/*
- * Freezer-friendly wrappers around wait_event_interruptible(),
- * wait_event_killable() and wait_event_interruptible_timeout(), originally
- * defined in <linux/wait.h>
- */
-
-#define wait_event_freezekillable(wq, condition) \
-({ \
- int __retval; \
- freezer_do_not_count(); \
- __retval = wait_event_killable(wq, (condition)); \
- freezer_count(); \
- __retval; \
-})
-
-#define wait_event_freezable(wq, condition) \
-({ \
- int __retval; \
- for (;;) { \
- __retval = wait_event_interruptible(wq, \
- (condition) || freezing(current)); \
- if (__retval || (condition)) \
- break; \
- try_to_freeze(); \
- } \
- __retval; \
-})
-
-#define wait_event_freezable_timeout(wq, condition, timeout) \
-({ \
- long __retval = timeout; \
- for (;;) { \
- __retval = wait_event_interruptible_timeout(wq, \
- (condition) || freezing(current), \
- __retval); \
- if (__retval <= 0 || (condition)) \
- break; \
- try_to_freeze(); \
- } \
- __retval; \
-})
-
-#else /* !CONFIG_FREEZER */
-static inline bool frozen(struct task_struct *p) { return false; }
-static inline bool freezing(struct task_struct *p) { return false; }
-static inline void __thaw_task(struct task_struct *t) {}
-
-static inline bool __refrigerator(bool check_kthr_stop) { return false; }
-static inline int freeze_processes(void) { return -ENOSYS; }
-static inline int freeze_kernel_threads(void) { return -ENOSYS; }
-static inline void thaw_processes(void) {}
-static inline void thaw_kernel_threads(void) {}
-
-static inline bool try_to_freeze(void) { return false; }
-
-static inline void freezer_do_not_count(void) {}
-static inline void freezer_count(void) {}
-static inline int freezer_should_skip(struct task_struct *p) { return 0; }
-static inline void set_freezable(void) {}
-
-#define freezable_schedule() schedule()
-
-#define freezable_schedule_timeout_killable(timeout) \
- schedule_timeout_killable(timeout)
-
-#define wait_event_freezable(wq, condition) \
- wait_event_interruptible(wq, condition)
-
-#define wait_event_freezable_timeout(wq, condition, timeout) \
- wait_event_interruptible_timeout(wq, condition, timeout)
-
-#define wait_event_freezekillable(wq, condition) \
- wait_event_killable(wq, condition)
-
-#endif /* !CONFIG_FREEZER */
-
-#endif /* FREEZER_H_INCLUDED */
diff --git a/ANDROID_3.4.5/include/linux/fs.h b/ANDROID_3.4.5/include/linux/fs.h
deleted file mode 100644
index 25c40b9f..00000000
--- a/ANDROID_3.4.5/include/linux/fs.h
+++ /dev/null
@@ -1,2676 +0,0 @@
-#ifndef _LINUX_FS_H
-#define _LINUX_FS_H
-
-/*
- * This file has definitions for some important file table
- * structures etc.
- */
-
-#include <linux/limits.h>
-#include <linux/ioctl.h>
-#include <linux/blk_types.h>
-#include <linux/types.h>
-
-/*
- * It's silly to have NR_OPEN bigger than NR_FILE, but you can change
- * the file limit at runtime and only root can increase the per-process
- * nr_file rlimit, so it's safe to set up a ridiculously high absolute
- * upper limit on files-per-process.
- *
- * Some programs (notably those using select()) may have to be
- * recompiled to take full advantage of the new limits..
- */
-
-/* Fixed constants first: */
-#undef NR_OPEN
-#define INR_OPEN_CUR 1024 /* Initial setting for nfile rlimits */
-#define INR_OPEN_MAX 4096 /* Hard limit for nfile rlimits */
-
-#define BLOCK_SIZE_BITS 10
-#define BLOCK_SIZE (1<<BLOCK_SIZE_BITS)
-
-#define SEEK_SET 0 /* seek relative to beginning of file */
-#define SEEK_CUR 1 /* seek relative to current file position */
-#define SEEK_END 2 /* seek relative to end of file */
-#define SEEK_DATA 3 /* seek to the next data */
-#define SEEK_HOLE 4 /* seek to the next hole */
-#define SEEK_MAX SEEK_HOLE
-
-struct fstrim_range {
- __u64 start;
- __u64 len;
- __u64 minlen;
-};
-
-/* And dynamically-tunable limits and defaults: */
-struct files_stat_struct {
- unsigned long nr_files; /* read only */
- unsigned long nr_free_files; /* read only */
- unsigned long max_files; /* tunable */
-};
-
-struct inodes_stat_t {
- int nr_inodes;
- int nr_unused;
- int dummy[5]; /* padding for sysctl ABI compatibility */
-};
-
-
-#define NR_FILE 8192 /* this can well be larger on a larger system */
-
-#define MAY_EXEC 0x00000001
-#define MAY_WRITE 0x00000002
-#define MAY_READ 0x00000004
-#define MAY_APPEND 0x00000008
-#define MAY_ACCESS 0x00000010
-#define MAY_OPEN 0x00000020
-#define MAY_CHDIR 0x00000040
-/* called from RCU mode, don't block */
-#define MAY_NOT_BLOCK 0x00000080
-
-/*
- * flags in file.f_mode. Note that FMODE_READ and FMODE_WRITE must correspond
- * to O_WRONLY and O_RDWR via the strange trick in __dentry_open()
- */
-
-/* file is open for reading */
-#define FMODE_READ ((__force fmode_t)0x1)
-/* file is open for writing */
-#define FMODE_WRITE ((__force fmode_t)0x2)
-/* file is seekable */
-#define FMODE_LSEEK ((__force fmode_t)0x4)
-/* file can be accessed using pread */
-#define FMODE_PREAD ((__force fmode_t)0x8)
-/* file can be accessed using pwrite */
-#define FMODE_PWRITE ((__force fmode_t)0x10)
-/* File is opened for execution with sys_execve / sys_uselib */
-#define FMODE_EXEC ((__force fmode_t)0x20)
-/* File is opened with O_NDELAY (only set for block devices) */
-#define FMODE_NDELAY ((__force fmode_t)0x40)
-/* File is opened with O_EXCL (only set for block devices) */
-#define FMODE_EXCL ((__force fmode_t)0x80)
-/* File is opened using open(.., 3, ..) and is writeable only for ioctls
- (specialy hack for floppy.c) */
-#define FMODE_WRITE_IOCTL ((__force fmode_t)0x100)
-/* 32bit hashes as llseek() offset (for directories) */
-#define FMODE_32BITHASH ((__force fmode_t)0x200)
-/* 64bit hashes as llseek() offset (for directories) */
-#define FMODE_64BITHASH ((__force fmode_t)0x400)
-
-/*
- * Don't update ctime and mtime.
- *
- * Currently a special hack for the XFS open_by_handle ioctl, but we'll
- * hopefully graduate it to a proper O_CMTIME flag supported by open(2) soon.
- */
-#define FMODE_NOCMTIME ((__force fmode_t)0x800)
-
-/* Expect random access pattern */
-#define FMODE_RANDOM ((__force fmode_t)0x1000)
-
-/* File is huge (eg. /dev/kmem): treat loff_t as unsigned */
-#define FMODE_UNSIGNED_OFFSET ((__force fmode_t)0x2000)
-
-/* File is opened with O_PATH; almost nothing can be done with it */
-#define FMODE_PATH ((__force fmode_t)0x4000)
-
-/* File was opened by fanotify and shouldn't generate fanotify events */
-#define FMODE_NONOTIFY ((__force fmode_t)0x1000000)
-
-/*
- * The below are the various read and write types that we support. Some of
- * them include behavioral modifiers that send information down to the
- * block layer and IO scheduler. Terminology:
- *
- * The block layer uses device plugging to defer IO a little bit, in
- * the hope that we will see more IO very shortly. This increases
- * coalescing of adjacent IO and thus reduces the number of IOs we
- * have to send to the device. It also allows for better queuing,
- * if the IO isn't mergeable. If the caller is going to be waiting
- * for the IO, then he must ensure that the device is unplugged so
- * that the IO is dispatched to the driver.
- *
- * All IO is handled async in Linux. This is fine for background
- * writes, but for reads or writes that someone waits for completion
- * on, we want to notify the block layer and IO scheduler so that they
- * know about it. That allows them to make better scheduling
- * decisions. So when the below references 'sync' and 'async', it
- * is referencing this priority hint.
- *
- * With that in mind, the available types are:
- *
- * READ A normal read operation. Device will be plugged.
- * READ_SYNC A synchronous read. Device is not plugged, caller can
- * immediately wait on this read without caring about
- * unplugging.
- * READA Used for read-ahead operations. Lower priority, and the
- * block layer could (in theory) choose to ignore this
- * request if it runs into resource problems.
- * WRITE A normal async write. Device will be plugged.
- * WRITE_SYNC Synchronous write. Identical to WRITE, but passes down
- * the hint that someone will be waiting on this IO
- * shortly. The write equivalent of READ_SYNC.
- * WRITE_ODIRECT Special case write for O_DIRECT only.
- * WRITE_FLUSH Like WRITE_SYNC but with preceding cache flush.
- * WRITE_FUA Like WRITE_SYNC but data is guaranteed to be on
- * non-volatile media on completion.
- * WRITE_FLUSH_FUA Combination of WRITE_FLUSH and FUA. The IO is preceded
- * by a cache flush and data is guaranteed to be on
- * non-volatile media on completion.
- *
- */
-#define RW_MASK REQ_WRITE
-#define RWA_MASK REQ_RAHEAD
-
-#define READ 0
-#define WRITE RW_MASK
-#define READA RWA_MASK
-
-#define READ_SYNC (READ | REQ_SYNC)
-#define WRITE_SYNC (WRITE | REQ_SYNC | REQ_NOIDLE)
-#define WRITE_ODIRECT (WRITE | REQ_SYNC)
-#define WRITE_FLUSH (WRITE | REQ_SYNC | REQ_NOIDLE | REQ_FLUSH)
-#define WRITE_FUA (WRITE | REQ_SYNC | REQ_NOIDLE | REQ_FUA)
-#define WRITE_FLUSH_FUA (WRITE | REQ_SYNC | REQ_NOIDLE | REQ_FLUSH | REQ_FUA)
-
-#define SEL_IN 1
-#define SEL_OUT 2
-#define SEL_EX 4
-
-/* public flags for file_system_type */
-#define FS_REQUIRES_DEV 1
-#define FS_BINARY_MOUNTDATA 2
-#define FS_HAS_SUBTYPE 4
-#define FS_REVAL_DOT 16384 /* Check the paths ".", ".." for staleness */
-#define FS_RENAME_DOES_D_MOVE 32768 /* FS will handle d_move()
- * during rename() internally.
- */
-
-/*
- * These are the fs-independent mount-flags: up to 32 flags are supported
- */
-#define MS_RDONLY 1 /* Mount read-only */
-#define MS_NOSUID 2 /* Ignore suid and sgid bits */
-#define MS_NODEV 4 /* Disallow access to device special files */
-#define MS_NOEXEC 8 /* Disallow program execution */
-#define MS_SYNCHRONOUS 16 /* Writes are synced at once */
-#define MS_REMOUNT 32 /* Alter flags of a mounted FS */
-#define MS_MANDLOCK 64 /* Allow mandatory locks on an FS */
-#define MS_DIRSYNC 128 /* Directory modifications are synchronous */
-#define MS_NOATIME 1024 /* Do not update access times. */
-#define MS_NODIRATIME 2048 /* Do not update directory access times */
-#define MS_BIND 4096
-#define MS_MOVE 8192
-#define MS_REC 16384
-#define MS_VERBOSE 32768 /* War is peace. Verbosity is silence.
- MS_VERBOSE is deprecated. */
-#define MS_SILENT 32768
-#define MS_POSIXACL (1<<16) /* VFS does not apply the umask */
-#define MS_UNBINDABLE (1<<17) /* change to unbindable */
-#define MS_PRIVATE (1<<18) /* change to private */
-#define MS_SLAVE (1<<19) /* change to slave */
-#define MS_SHARED (1<<20) /* change to shared */
-#define MS_RELATIME (1<<21) /* Update atime relative to mtime/ctime. */
-#define MS_KERNMOUNT (1<<22) /* this is a kern_mount call */
-#define MS_I_VERSION (1<<23) /* Update inode I_version field */
-#define MS_STRICTATIME (1<<24) /* Always perform atime updates */
-#define MS_NOSEC (1<<28)
-#define MS_BORN (1<<29)
-#define MS_ACTIVE (1<<30)
-#define MS_NOUSER (1<<31)
-
-/*
- * Superblock flags that can be altered by MS_REMOUNT
- */
-#define MS_RMT_MASK (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_I_VERSION)
-
-/*
- * Old magic mount flag and mask
- */
-#define MS_MGC_VAL 0xC0ED0000
-#define MS_MGC_MSK 0xffff0000
-
-/* Inode flags - they have nothing to superblock flags now */
-
-#define S_SYNC 1 /* Writes are synced at once */
-#define S_NOATIME 2 /* Do not update access times */
-#define S_APPEND 4 /* Append-only file */
-#define S_IMMUTABLE 8 /* Immutable file */
-#define S_DEAD 16 /* removed, but still open directory */
-#define S_NOQUOTA 32 /* Inode is not counted to quota */
-#define S_DIRSYNC 64 /* Directory modifications are synchronous */
-#define S_NOCMTIME 128 /* Do not update file c/mtime */
-#define S_SWAPFILE 256 /* Do not truncate: swapon got its bmaps */
-#define S_PRIVATE 512 /* Inode is fs-internal */
-#define S_IMA 1024 /* Inode has an associated IMA struct */
-#define S_AUTOMOUNT 2048 /* Automount/referral quasi-directory */
-#define S_NOSEC 4096 /* no suid or xattr security attributes */
-
-/*
- * Note that nosuid etc flags are inode-specific: setting some file-system
- * flags just means all the inodes inherit those flags by default. It might be
- * possible to override it selectively if you really wanted to with some
- * ioctl() that is not currently implemented.
- *
- * Exception: MS_RDONLY is always applied to the entire file system.
- *
- * Unfortunately, it is possible to change a filesystems flags with it mounted
- * with files in use. This means that all of the inodes will not have their
- * i_flags updated. Hence, i_flags no longer inherit the superblock mount
- * flags, so these have to be checked separately. -- rmk@arm.uk.linux.org
- */
-#define __IS_FLG(inode,flg) ((inode)->i_sb->s_flags & (flg))
-
-#define IS_RDONLY(inode) ((inode)->i_sb->s_flags & MS_RDONLY)
-#define IS_SYNC(inode) (__IS_FLG(inode, MS_SYNCHRONOUS) || \
- ((inode)->i_flags & S_SYNC))
-#define IS_DIRSYNC(inode) (__IS_FLG(inode, MS_SYNCHRONOUS|MS_DIRSYNC) || \
- ((inode)->i_flags & (S_SYNC|S_DIRSYNC)))
-#define IS_MANDLOCK(inode) __IS_FLG(inode, MS_MANDLOCK)
-#define IS_NOATIME(inode) __IS_FLG(inode, MS_RDONLY|MS_NOATIME)
-#define IS_I_VERSION(inode) __IS_FLG(inode, MS_I_VERSION)
-
-#define IS_NOQUOTA(inode) ((inode)->i_flags & S_NOQUOTA)
-#define IS_APPEND(inode) ((inode)->i_flags & S_APPEND)
-#define IS_IMMUTABLE(inode) ((inode)->i_flags & S_IMMUTABLE)
-#define IS_POSIXACL(inode) __IS_FLG(inode, MS_POSIXACL)
-
-#define IS_DEADDIR(inode) ((inode)->i_flags & S_DEAD)
-#define IS_NOCMTIME(inode) ((inode)->i_flags & S_NOCMTIME)
-#define IS_SWAPFILE(inode) ((inode)->i_flags & S_SWAPFILE)
-#define IS_PRIVATE(inode) ((inode)->i_flags & S_PRIVATE)
-#define IS_IMA(inode) ((inode)->i_flags & S_IMA)
-#define IS_AUTOMOUNT(inode) ((inode)->i_flags & S_AUTOMOUNT)
-#define IS_NOSEC(inode) ((inode)->i_flags & S_NOSEC)
-
-/* the read-only stuff doesn't really belong here, but any other place is
- probably as bad and I don't want to create yet another include file. */
-
-#define BLKROSET _IO(0x12,93) /* set device read-only (0 = read-write) */
-#define BLKROGET _IO(0x12,94) /* get read-only status (0 = read_write) */
-#define BLKRRPART _IO(0x12,95) /* re-read partition table */
-#define BLKGETSIZE _IO(0x12,96) /* return device size /512 (long *arg) */
-#define BLKFLSBUF _IO(0x12,97) /* flush buffer cache */
-#define BLKRASET _IO(0x12,98) /* set read ahead for block device */
-#define BLKRAGET _IO(0x12,99) /* get current read ahead setting */
-#define BLKFRASET _IO(0x12,100)/* set filesystem (mm/filemap.c) read-ahead */
-#define BLKFRAGET _IO(0x12,101)/* get filesystem (mm/filemap.c) read-ahead */
-#define BLKSECTSET _IO(0x12,102)/* set max sectors per request (ll_rw_blk.c) */
-#define BLKSECTGET _IO(0x12,103)/* get max sectors per request (ll_rw_blk.c) */
-#define BLKSSZGET _IO(0x12,104)/* get block device sector size */
-#if 0
-#define BLKPG _IO(0x12,105)/* See blkpg.h */
-
-/* Some people are morons. Do not use sizeof! */
-
-#define BLKELVGET _IOR(0x12,106,size_t)/* elevator get */
-#define BLKELVSET _IOW(0x12,107,size_t)/* elevator set */
-/* This was here just to show that the number is taken -
- probably all these _IO(0x12,*) ioctls should be moved to blkpg.h. */
-#endif
-/* A jump here: 108-111 have been used for various private purposes. */
-#define BLKBSZGET _IOR(0x12,112,size_t)
-#define BLKBSZSET _IOW(0x12,113,size_t)
-#define BLKGETSIZE64 _IOR(0x12,114,size_t) /* return device size in bytes (u64 *arg) */
-#define BLKTRACESETUP _IOWR(0x12,115,struct blk_user_trace_setup)
-#define BLKTRACESTART _IO(0x12,116)
-#define BLKTRACESTOP _IO(0x12,117)
-#define BLKTRACETEARDOWN _IO(0x12,118)
-#define BLKDISCARD _IO(0x12,119)
-#define BLKIOMIN _IO(0x12,120)
-#define BLKIOOPT _IO(0x12,121)
-#define BLKALIGNOFF _IO(0x12,122)
-#define BLKPBSZGET _IO(0x12,123)
-#define BLKDISCARDZEROES _IO(0x12,124)
-#define BLKSECDISCARD _IO(0x12,125)
-#define BLKROTATIONAL _IO(0x12,126)
-
-#define BMAP_IOCTL 1 /* obsolete - kept for compatibility */
-#define FIBMAP _IO(0x00,1) /* bmap access */
-#define FIGETBSZ _IO(0x00,2) /* get the block size used for bmap */
-#define FIFREEZE _IOWR('X', 119, int) /* Freeze */
-#define FITHAW _IOWR('X', 120, int) /* Thaw */
-#define FITRIM _IOWR('X', 121, struct fstrim_range) /* Trim */
-
-#define FS_IOC_GETFLAGS _IOR('f', 1, long)
-#define FS_IOC_SETFLAGS _IOW('f', 2, long)
-#define FS_IOC_GETVERSION _IOR('v', 1, long)
-#define FS_IOC_SETVERSION _IOW('v', 2, long)
-#define FS_IOC_FIEMAP _IOWR('f', 11, struct fiemap)
-#define FS_IOC32_GETFLAGS _IOR('f', 1, int)
-#define FS_IOC32_SETFLAGS _IOW('f', 2, int)
-#define FS_IOC32_GETVERSION _IOR('v', 1, int)
-#define FS_IOC32_SETVERSION _IOW('v', 2, int)
-
-/*
- * Inode flags (FS_IOC_GETFLAGS / FS_IOC_SETFLAGS)
- */
-#define FS_SECRM_FL 0x00000001 /* Secure deletion */
-#define FS_UNRM_FL 0x00000002 /* Undelete */
-#define FS_COMPR_FL 0x00000004 /* Compress file */
-#define FS_SYNC_FL 0x00000008 /* Synchronous updates */
-#define FS_IMMUTABLE_FL 0x00000010 /* Immutable file */
-#define FS_APPEND_FL 0x00000020 /* writes to file may only append */
-#define FS_NODUMP_FL 0x00000040 /* do not dump file */
-#define FS_NOATIME_FL 0x00000080 /* do not update atime */
-/* Reserved for compression usage... */
-#define FS_DIRTY_FL 0x00000100
-#define FS_COMPRBLK_FL 0x00000200 /* One or more compressed clusters */
-#define FS_NOCOMP_FL 0x00000400 /* Don't compress */
-#define FS_ECOMPR_FL 0x00000800 /* Compression error */
-/* End compression flags --- maybe not all used */
-#define FS_BTREE_FL 0x00001000 /* btree format dir */
-#define FS_INDEX_FL 0x00001000 /* hash-indexed directory */
-#define FS_IMAGIC_FL 0x00002000 /* AFS directory */
-#define FS_JOURNAL_DATA_FL 0x00004000 /* Reserved for ext3 */
-#define FS_NOTAIL_FL 0x00008000 /* file tail should not be merged */
-#define FS_DIRSYNC_FL 0x00010000 /* dirsync behaviour (directories only) */
-#define FS_TOPDIR_FL 0x00020000 /* Top of directory hierarchies*/
-#define FS_EXTENT_FL 0x00080000 /* Extents */
-#define FS_DIRECTIO_FL 0x00100000 /* Use direct i/o */
-#define FS_NOCOW_FL 0x00800000 /* Do not cow file */
-#define FS_RESERVED_FL 0x80000000 /* reserved for ext2 lib */
-
-#define FS_FL_USER_VISIBLE 0x0003DFFF /* User visible flags */
-#define FS_FL_USER_MODIFIABLE 0x000380FF /* User modifiable flags */
-
-
-#define SYNC_FILE_RANGE_WAIT_BEFORE 1
-#define SYNC_FILE_RANGE_WRITE 2
-#define SYNC_FILE_RANGE_WAIT_AFTER 4
-
-#ifdef __KERNEL__
-
-#include <linux/linkage.h>
-#include <linux/wait.h>
-#include <linux/kdev_t.h>
-#include <linux/dcache.h>
-#include <linux/path.h>
-#include <linux/stat.h>
-#include <linux/cache.h>
-#include <linux/list.h>
-#include <linux/radix-tree.h>
-#include <linux/prio_tree.h>
-#include <linux/init.h>
-#include <linux/pid.h>
-#include <linux/bug.h>
-#include <linux/mutex.h>
-#include <linux/capability.h>
-#include <linux/semaphore.h>
-#include <linux/fiemap.h>
-#include <linux/rculist_bl.h>
-#include <linux/atomic.h>
-#include <linux/shrinker.h>
-#include <linux/migrate_mode.h>
-
-#include <asm/byteorder.h>
-
-struct export_operations;
-struct hd_geometry;
-struct iovec;
-struct nameidata;
-struct kiocb;
-struct kobject;
-struct pipe_inode_info;
-struct poll_table_struct;
-struct kstatfs;
-struct vm_area_struct;
-struct vfsmount;
-struct cred;
-
-extern void __init inode_init(void);
-extern void __init inode_init_early(void);
-extern void __init files_init(unsigned long);
-
-extern struct files_stat_struct files_stat;
-extern unsigned long get_max_files(void);
-extern int sysctl_nr_open;
-extern struct inodes_stat_t inodes_stat;
-extern int leases_enable, lease_break_time;
-
-struct buffer_head;
-typedef int (get_block_t)(struct inode *inode, sector_t iblock,
- struct buffer_head *bh_result, int create);
-typedef void (dio_iodone_t)(struct kiocb *iocb, loff_t offset,
- ssize_t bytes, void *private, int ret,
- bool is_async);
-
-/*
- * Attribute flags. These should be or-ed together to figure out what
- * has been changed!
- */
-#define ATTR_MODE (1 << 0)
-#define ATTR_UID (1 << 1)
-#define ATTR_GID (1 << 2)
-#define ATTR_SIZE (1 << 3)
-#define ATTR_ATIME (1 << 4)
-#define ATTR_MTIME (1 << 5)
-#define ATTR_CTIME (1 << 6)
-#define ATTR_ATIME_SET (1 << 7)
-#define ATTR_MTIME_SET (1 << 8)
-#define ATTR_FORCE (1 << 9) /* Not a change, but a change it */
-#define ATTR_ATTR_FLAG (1 << 10)
-#define ATTR_KILL_SUID (1 << 11)
-#define ATTR_KILL_SGID (1 << 12)
-#define ATTR_FILE (1 << 13)
-#define ATTR_KILL_PRIV (1 << 14)
-#define ATTR_OPEN (1 << 15) /* Truncating from open(O_TRUNC) */
-#define ATTR_TIMES_SET (1 << 16)
-
-/*
- * This is the Inode Attributes structure, used for notify_change(). It
- * uses the above definitions as flags, to know which values have changed.
- * Also, in this manner, a Filesystem can look at only the values it cares
- * about. Basically, these are the attributes that the VFS layer can
- * request to change from the FS layer.
- *
- * Derek Atkins <warlord@MIT.EDU> 94-10-20
- */
-struct iattr {
- unsigned int ia_valid;
- umode_t ia_mode;
- uid_t ia_uid;
- gid_t ia_gid;
- loff_t ia_size;
- struct timespec ia_atime;
- struct timespec ia_mtime;
- struct timespec ia_ctime;
-
- /*
- * Not an attribute, but an auxiliary info for filesystems wanting to
- * implement an ftruncate() like method. NOTE: filesystem should
- * check for (ia_valid & ATTR_FILE), and not for (ia_file != NULL).
- */
- struct file *ia_file;
-};
-
-/*
- * Includes for diskquotas.
- */
-#include <linux/quota.h>
-
-/**
- * enum positive_aop_returns - aop return codes with specific semantics
- *
- * @AOP_WRITEPAGE_ACTIVATE: Informs the caller that page writeback has
- * completed, that the page is still locked, and
- * should be considered active. The VM uses this hint
- * to return the page to the active list -- it won't
- * be a candidate for writeback again in the near
- * future. Other callers must be careful to unlock
- * the page if they get this return. Returned by
- * writepage();
- *
- * @AOP_TRUNCATED_PAGE: The AOP method that was handed a locked page has
- * unlocked it and the page might have been truncated.
- * The caller should back up to acquiring a new page and
- * trying again. The aop will be taking reasonable
- * precautions not to livelock. If the caller held a page
- * reference, it should drop it before retrying. Returned
- * by readpage().
- *
- * address_space_operation functions return these large constants to indicate
- * special semantics to the caller. These are much larger than the bytes in a
- * page to allow for functions that return the number of bytes operated on in a
- * given page.
- */
-
-enum positive_aop_returns {
- AOP_WRITEPAGE_ACTIVATE = 0x80000,
- AOP_TRUNCATED_PAGE = 0x80001,
-};
-
-#define AOP_FLAG_UNINTERRUPTIBLE 0x0001 /* will not do a short write */
-#define AOP_FLAG_CONT_EXPAND 0x0002 /* called from cont_expand */
-#define AOP_FLAG_NOFS 0x0004 /* used by filesystem to direct
- * helper code (eg buffer layer)
- * to clear GFP_FS from alloc */
-
-/*
- * oh the beauties of C type declarations.
- */
-struct page;
-struct address_space;
-struct writeback_control;
-
-struct iov_iter {
- const struct iovec *iov;
- unsigned long nr_segs;
- size_t iov_offset;
- size_t count;
-};
-
-size_t iov_iter_copy_from_user_atomic(struct page *page,
- struct iov_iter *i, unsigned long offset, size_t bytes);
-size_t iov_iter_copy_from_user(struct page *page,
- struct iov_iter *i, unsigned long offset, size_t bytes);
-void iov_iter_advance(struct iov_iter *i, size_t bytes);
-int iov_iter_fault_in_readable(struct iov_iter *i, size_t bytes);
-size_t iov_iter_single_seg_count(struct iov_iter *i);
-
-static inline void iov_iter_init(struct iov_iter *i,
- const struct iovec *iov, unsigned long nr_segs,
- size_t count, size_t written)
-{
- i->iov = iov;
- i->nr_segs = nr_segs;
- i->iov_offset = 0;
- i->count = count + written;
-
- iov_iter_advance(i, written);
-}
-
-static inline size_t iov_iter_count(struct iov_iter *i)
-{
- return i->count;
-}
-
-/*
- * "descriptor" for what we're up to with a read.
- * This allows us to use the same read code yet
- * have multiple different users of the data that
- * we read from a file.
- *
- * The simplest case just copies the data to user
- * mode.
- */
-typedef struct {
- size_t written;
- size_t count;
- union {
- char __user *buf;
- void *data;
- } arg;
- int error;
-} read_descriptor_t;
-
-typedef int (*read_actor_t)(read_descriptor_t *, struct page *,
- unsigned long, unsigned long);
-
-struct address_space_operations {
- int (*writepage)(struct page *page, struct writeback_control *wbc);
- int (*readpage)(struct file *, struct page *);
-
- /* Write back some dirty pages from this mapping. */
- int (*writepages)(struct address_space *, struct writeback_control *);
-
- /* Set a page dirty. Return true if this dirtied it */
- int (*set_page_dirty)(struct page *page);
-
- int (*readpages)(struct file *filp, struct address_space *mapping,
- struct list_head *pages, unsigned nr_pages);
-
- int (*write_begin)(struct file *, struct address_space *mapping,
- loff_t pos, unsigned len, unsigned flags,
- struct page **pagep, void **fsdata);
- int (*write_end)(struct file *, struct address_space *mapping,
- loff_t pos, unsigned len, unsigned copied,
- struct page *page, void *fsdata);
-
- /* Unfortunately this kludge is needed for FIBMAP. Don't use it */
- sector_t (*bmap)(struct address_space *, sector_t);
- void (*invalidatepage) (struct page *, unsigned long);
- int (*releasepage) (struct page *, gfp_t);
- void (*freepage)(struct page *);
- ssize_t (*direct_IO)(int, struct kiocb *, const struct iovec *iov,
- loff_t offset, unsigned long nr_segs);
- int (*get_xip_mem)(struct address_space *, pgoff_t, int,
- void **, unsigned long *);
- /*
- * migrate the contents of a page to the specified target. If sync
- * is false, it must not block.
- */
- int (*migratepage) (struct address_space *,
- struct page *, struct page *, enum migrate_mode);
- int (*launder_page) (struct page *);
- int (*is_partially_uptodate) (struct page *, read_descriptor_t *,
- unsigned long);
- int (*error_remove_page)(struct address_space *, struct page *);
-};
-
-extern const struct address_space_operations empty_aops;
-
-/*
- * pagecache_write_begin/pagecache_write_end must be used by general code
- * to write into the pagecache.
- */
-int pagecache_write_begin(struct file *, struct address_space *mapping,
- loff_t pos, unsigned len, unsigned flags,
- struct page **pagep, void **fsdata);
-
-int pagecache_write_end(struct file *, struct address_space *mapping,
- loff_t pos, unsigned len, unsigned copied,
- struct page *page, void *fsdata);
-
-struct backing_dev_info;
-struct address_space {
- struct inode *host; /* owner: inode, block_device */
- struct radix_tree_root page_tree; /* radix tree of all pages */
- spinlock_t tree_lock; /* and lock protecting it */
- unsigned int i_mmap_writable;/* count VM_SHARED mappings */
- struct prio_tree_root i_mmap; /* tree of private and shared mappings */
- struct list_head i_mmap_nonlinear;/*list VM_NONLINEAR mappings */
- struct mutex i_mmap_mutex; /* protect tree, count, list */
- /* Protected by tree_lock together with the radix tree */
- unsigned long nrpages; /* number of total pages */
- pgoff_t writeback_index;/* writeback starts here */
- const struct address_space_operations *a_ops; /* methods */
- unsigned long flags; /* error bits/gfp mask */
- struct backing_dev_info *backing_dev_info; /* device readahead, etc */
- spinlock_t private_lock; /* for use by the address_space */
- struct list_head private_list; /* ditto */
- struct address_space *assoc_mapping; /* ditto */
-} __attribute__((aligned(sizeof(long))));
- /*
- * On most architectures that alignment is already the case; but
- * must be enforced here for CRIS, to let the least significant bit
- * of struct page's "mapping" pointer be used for PAGE_MAPPING_ANON.
- */
-struct request_queue;
-
-struct block_device {
- dev_t bd_dev; /* not a kdev_t - it's a search key */
- int bd_openers;
- struct inode * bd_inode; /* will die */
- struct super_block * bd_super;
- struct mutex bd_mutex; /* open/close mutex */
- struct list_head bd_inodes;
- void * bd_claiming;
- void * bd_holder;
- int bd_holders;
- bool bd_write_holder;
-#ifdef CONFIG_SYSFS
- struct list_head bd_holder_disks;
-#endif
- struct block_device * bd_contains;
- unsigned bd_block_size;
- struct hd_struct * bd_part;
- /* number of times partitions within this device have been opened. */
- unsigned bd_part_count;
- int bd_invalidated;
- struct gendisk * bd_disk;
- struct request_queue * bd_queue;
- struct list_head bd_list;
- /*
- * Private data. You must have bd_claim'ed the block_device
- * to use this. NOTE: bd_claim allows an owner to claim
- * the same device multiple times, the owner must take special
- * care to not mess up bd_private for that case.
- */
- unsigned long bd_private;
-
- /* The counter of freeze processes */
- int bd_fsfreeze_count;
- /* Mutex for freeze */
- struct mutex bd_fsfreeze_mutex;
-};
-
-/*
- * Radix-tree tags, for tagging dirty and writeback pages within the pagecache
- * radix trees
- */
-#define PAGECACHE_TAG_DIRTY 0
-#define PAGECACHE_TAG_WRITEBACK 1
-#define PAGECACHE_TAG_TOWRITE 2
-
-int mapping_tagged(struct address_space *mapping, int tag);
-
-/*
- * Might pages of this file be mapped into userspace?
- */
-static inline int mapping_mapped(struct address_space *mapping)
-{
- return !prio_tree_empty(&mapping->i_mmap) ||
- !list_empty(&mapping->i_mmap_nonlinear);
-}
-
-/*
- * Might pages of this file have been modified in userspace?
- * Note that i_mmap_writable counts all VM_SHARED vmas: do_mmap_pgoff
- * marks vma as VM_SHARED if it is shared, and the file was opened for
- * writing i.e. vma may be mprotected writable even if now readonly.
- */
-static inline int mapping_writably_mapped(struct address_space *mapping)
-{
- return mapping->i_mmap_writable != 0;
-}
-
-/*
- * Use sequence counter to get consistent i_size on 32-bit processors.
- */
-#if BITS_PER_LONG==32 && defined(CONFIG_SMP)
-#include <linux/seqlock.h>
-#define __NEED_I_SIZE_ORDERED
-#define i_size_ordered_init(inode) seqcount_init(&inode->i_size_seqcount)
-#else
-#define i_size_ordered_init(inode) do { } while (0)
-#endif
-
-struct posix_acl;
-#define ACL_NOT_CACHED ((void *)(-1))
-
-#define IOP_FASTPERM 0x0001
-#define IOP_LOOKUP 0x0002
-#define IOP_NOFOLLOW 0x0004
-
-/*
- * Keep mostly read-only and often accessed (especially for
- * the RCU path lookup and 'stat' data) fields at the beginning
- * of the 'struct inode'
- */
-struct inode {
- umode_t i_mode;
- unsigned short i_opflags;
- uid_t i_uid;
- gid_t i_gid;
- unsigned int i_flags;
-
-#ifdef CONFIG_FS_POSIX_ACL
- struct posix_acl *i_acl;
- struct posix_acl *i_default_acl;
-#endif
-
- const struct inode_operations *i_op;
- struct super_block *i_sb;
- struct address_space *i_mapping;
-
-#ifdef CONFIG_SECURITY
- void *i_security;
-#endif
-
- /* Stat data, not accessed from path walking */
- unsigned long i_ino;
- /*
- * Filesystems may only read i_nlink directly. They shall use the
- * following functions for modification:
- *
- * (set|clear|inc|drop)_nlink
- * inode_(inc|dec)_link_count
- */
- union {
- const unsigned int i_nlink;
- unsigned int __i_nlink;
- };
- dev_t i_rdev;
- struct timespec i_atime;
- struct timespec i_mtime;
- struct timespec i_ctime;
- spinlock_t i_lock; /* i_blocks, i_bytes, maybe i_size */
- unsigned short i_bytes;
- blkcnt_t i_blocks;
- loff_t i_size;
-
-#ifdef __NEED_I_SIZE_ORDERED
- seqcount_t i_size_seqcount;
-#endif
-
- /* Misc */
- unsigned long i_state;
- struct mutex i_mutex;
-
- unsigned long dirtied_when; /* jiffies of first dirtying */
-
- struct hlist_node i_hash;
- struct list_head i_wb_list; /* backing dev IO list */
- struct list_head i_lru; /* inode LRU list */
- struct list_head i_sb_list;
- union {
- struct list_head i_dentry;
- struct rcu_head i_rcu;
- };
- atomic_t i_count;
- unsigned int i_blkbits;
- u64 i_version;
- atomic_t i_dio_count;
- atomic_t i_writecount;
- const struct file_operations *i_fop; /* former ->i_op->default_file_ops */
- struct file_lock *i_flock;
- struct address_space i_data;
-#ifdef CONFIG_QUOTA
- struct dquot *i_dquot[MAXQUOTAS];
-#endif
- struct list_head i_devices;
- union {
- struct pipe_inode_info *i_pipe;
- struct block_device *i_bdev;
- struct cdev *i_cdev;
- };
-
- __u32 i_generation;
-
-#ifdef CONFIG_FSNOTIFY
- __u32 i_fsnotify_mask; /* all events this inode cares about */
- struct hlist_head i_fsnotify_marks;
-#endif
-
-#ifdef CONFIG_IMA
- atomic_t i_readcount; /* struct files open RO */
-#endif
- void *i_private; /* fs or device private pointer */
-};
-
-static inline int inode_unhashed(struct inode *inode)
-{
- return hlist_unhashed(&inode->i_hash);
-}
-
-/*
- * inode->i_mutex nesting subclasses for the lock validator:
- *
- * 0: the object of the current VFS operation
- * 1: parent
- * 2: child/target
- * 3: quota file
- *
- * The locking order between these classes is
- * parent -> child -> normal -> xattr -> quota
- */
-enum inode_i_mutex_lock_class
-{
- I_MUTEX_NORMAL,
- I_MUTEX_PARENT,
- I_MUTEX_CHILD,
- I_MUTEX_XATTR,
- I_MUTEX_QUOTA
-};
-
-/*
- * NOTE: in a 32bit arch with a preemptable kernel and
- * an UP compile the i_size_read/write must be atomic
- * with respect to the local cpu (unlike with preempt disabled),
- * but they don't need to be atomic with respect to other cpus like in
- * true SMP (so they need either to either locally disable irq around
- * the read or for example on x86 they can be still implemented as a
- * cmpxchg8b without the need of the lock prefix). For SMP compiles
- * and 64bit archs it makes no difference if preempt is enabled or not.
- */
-static inline loff_t i_size_read(const struct inode *inode)
-{
-#if BITS_PER_LONG==32 && defined(CONFIG_SMP)
- loff_t i_size;
- unsigned int seq;
-
- do {
- seq = read_seqcount_begin(&inode->i_size_seqcount);
- i_size = inode->i_size;
- } while (read_seqcount_retry(&inode->i_size_seqcount, seq));
- return i_size;
-#elif BITS_PER_LONG==32 && defined(CONFIG_PREEMPT)
- loff_t i_size;
-
- preempt_disable();
- i_size = inode->i_size;
- preempt_enable();
- return i_size;
-#else
- return inode->i_size;
-#endif
-}
-
-/*
- * NOTE: unlike i_size_read(), i_size_write() does need locking around it
- * (normally i_mutex), otherwise on 32bit/SMP an update of i_size_seqcount
- * can be lost, resulting in subsequent i_size_read() calls spinning forever.
- */
-static inline void i_size_write(struct inode *inode, loff_t i_size)
-{
-#if BITS_PER_LONG==32 && defined(CONFIG_SMP)
- write_seqcount_begin(&inode->i_size_seqcount);
- inode->i_size = i_size;
- write_seqcount_end(&inode->i_size_seqcount);
-#elif BITS_PER_LONG==32 && defined(CONFIG_PREEMPT)
- preempt_disable();
- inode->i_size = i_size;
- preempt_enable();
-#else
- inode->i_size = i_size;
-#endif
-}
-
-static inline unsigned iminor(const struct inode *inode)
-{
- return MINOR(inode->i_rdev);
-}
-
-static inline unsigned imajor(const struct inode *inode)
-{
- return MAJOR(inode->i_rdev);
-}
-
-extern struct block_device *I_BDEV(struct inode *inode);
-
-struct fown_struct {
- rwlock_t lock; /* protects pid, uid, euid fields */
- struct pid *pid; /* pid or -pgrp where SIGIO should be sent */
- enum pid_type pid_type; /* Kind of process group SIGIO should be sent to */
- uid_t uid, euid; /* uid/euid of process setting the owner */
- int signum; /* posix.1b rt signal to be delivered on IO */
-};
-
-/*
- * Track a single file's readahead state
- */
-struct file_ra_state {
- pgoff_t start; /* where readahead started */
- unsigned int size; /* # of readahead pages */
- unsigned int async_size; /* do asynchronous readahead when
- there are only # of pages ahead */
-
- unsigned int ra_pages; /* Maximum readahead window */
- unsigned int mmap_miss; /* Cache miss stat for mmap accesses */
- loff_t prev_pos; /* Cache last read() position */
-};
-
-/*
- * Check if @index falls in the readahead windows.
- */
-static inline int ra_has_index(struct file_ra_state *ra, pgoff_t index)
-{
- return (index >= ra->start &&
- index < ra->start + ra->size);
-}
-
-#define FILE_MNT_WRITE_TAKEN 1
-#define FILE_MNT_WRITE_RELEASED 2
-
-struct file {
- /*
- * fu_list becomes invalid after file_free is called and queued via
- * fu_rcuhead for RCU freeing
- */
- union {
- struct list_head fu_list;
- struct rcu_head fu_rcuhead;
- } f_u;
- struct path f_path;
-#define f_dentry f_path.dentry
-#define f_vfsmnt f_path.mnt
- const struct file_operations *f_op;
-
- /*
- * Protects f_ep_links, f_flags, f_pos vs i_size in lseek SEEK_CUR.
- * Must not be taken from IRQ context.
- */
- spinlock_t f_lock;
-#ifdef CONFIG_SMP
- int f_sb_list_cpu;
-#endif
- atomic_long_t f_count;
- unsigned int f_flags;
- fmode_t f_mode;
- loff_t f_pos;
- struct fown_struct f_owner;
- const struct cred *f_cred;
- struct file_ra_state f_ra;
-
- u64 f_version;
-#ifdef CONFIG_SECURITY
- void *f_security;
-#endif
- /* needed for tty driver, and maybe others */
- void *private_data;
-
-#ifdef CONFIG_EPOLL
- /* Used by fs/eventpoll.c to link all the hooks to this file */
- struct list_head f_ep_links;
- struct list_head f_tfile_llink;
-#endif /* #ifdef CONFIG_EPOLL */
- struct address_space *f_mapping;
-#ifdef CONFIG_DEBUG_WRITECOUNT
- unsigned long f_mnt_write_state;
-#endif
-};
-
-struct file_handle {
- __u32 handle_bytes;
- int handle_type;
- /* file identifier */
- unsigned char f_handle[0];
-};
-
-#define get_file(x) atomic_long_inc(&(x)->f_count)
-#define fput_atomic(x) atomic_long_add_unless(&(x)->f_count, -1, 1)
-#define file_count(x) atomic_long_read(&(x)->f_count)
-
-#ifdef CONFIG_DEBUG_WRITECOUNT
-static inline void file_take_write(struct file *f)
-{
- WARN_ON(f->f_mnt_write_state != 0);
- f->f_mnt_write_state = FILE_MNT_WRITE_TAKEN;
-}
-static inline void file_release_write(struct file *f)
-{
- f->f_mnt_write_state |= FILE_MNT_WRITE_RELEASED;
-}
-static inline void file_reset_write(struct file *f)
-{
- f->f_mnt_write_state = 0;
-}
-static inline void file_check_state(struct file *f)
-{
- /*
- * At this point, either both or neither of these bits
- * should be set.
- */
- WARN_ON(f->f_mnt_write_state == FILE_MNT_WRITE_TAKEN);
- WARN_ON(f->f_mnt_write_state == FILE_MNT_WRITE_RELEASED);
-}
-static inline int file_check_writeable(struct file *f)
-{
- if (f->f_mnt_write_state == FILE_MNT_WRITE_TAKEN)
- return 0;
- printk(KERN_WARNING "writeable file with no "
- "mnt_want_write()\n");
- WARN_ON(1);
- return -EINVAL;
-}
-#else /* !CONFIG_DEBUG_WRITECOUNT */
-static inline void file_take_write(struct file *filp) {}
-static inline void file_release_write(struct file *filp) {}
-static inline void file_reset_write(struct file *filp) {}
-static inline void file_check_state(struct file *filp) {}
-static inline int file_check_writeable(struct file *filp)
-{
- return 0;
-}
-#endif /* CONFIG_DEBUG_WRITECOUNT */
-
-#define MAX_NON_LFS ((1UL<<31) - 1)
-
-/* Page cache limit. The filesystems should put that into their s_maxbytes
- limits, otherwise bad things can happen in VM. */
-#if BITS_PER_LONG==32
-#define MAX_LFS_FILESIZE (((u64)PAGE_CACHE_SIZE << (BITS_PER_LONG-1))-1)
-#elif BITS_PER_LONG==64
-#define MAX_LFS_FILESIZE 0x7fffffffffffffffUL
-#endif
-
-#define FL_POSIX 1
-#define FL_FLOCK 2
-#define FL_ACCESS 8 /* not trying to lock, just looking */
-#define FL_EXISTS 16 /* when unlocking, test for existence */
-#define FL_LEASE 32 /* lease held on this file */
-#define FL_CLOSE 64 /* unlock on close */
-#define FL_SLEEP 128 /* A blocking lock */
-#define FL_DOWNGRADE_PENDING 256 /* Lease is being downgraded */
-#define FL_UNLOCK_PENDING 512 /* Lease is being broken */
-
-/*
- * Special return value from posix_lock_file() and vfs_lock_file() for
- * asynchronous locking.
- */
-#define FILE_LOCK_DEFERRED 1
-
-/*
- * The POSIX file lock owner is determined by
- * the "struct files_struct" in the thread group
- * (or NULL for no owner - BSD locks).
- *
- * Lockd stuffs a "host" pointer into this.
- */
-typedef struct files_struct *fl_owner_t;
-
-struct file_lock_operations {
- void (*fl_copy_lock)(struct file_lock *, struct file_lock *);
- void (*fl_release_private)(struct file_lock *);
-};
-
-struct lock_manager_operations {
- int (*lm_compare_owner)(struct file_lock *, struct file_lock *);
- void (*lm_notify)(struct file_lock *); /* unblock callback */
- int (*lm_grant)(struct file_lock *, struct file_lock *, int);
- void (*lm_release_private)(struct file_lock *);
- void (*lm_break)(struct file_lock *);
- int (*lm_change)(struct file_lock **, int);
-};
-
-struct lock_manager {
- struct list_head list;
-};
-
-void locks_start_grace(struct lock_manager *);
-void locks_end_grace(struct lock_manager *);
-int locks_in_grace(void);
-
-/* that will die - we need it for nfs_lock_info */
-#include <linux/nfs_fs_i.h>
-
-struct file_lock {
- struct file_lock *fl_next; /* singly linked list for this inode */
- struct list_head fl_link; /* doubly linked list of all locks */
- struct list_head fl_block; /* circular list of blocked processes */
- fl_owner_t fl_owner;
- unsigned int fl_flags;
- unsigned char fl_type;
- unsigned int fl_pid;
- struct pid *fl_nspid;
- wait_queue_head_t fl_wait;
- struct file *fl_file;
- loff_t fl_start;
- loff_t fl_end;
-
- struct fasync_struct * fl_fasync; /* for lease break notifications */
- /* for lease breaks: */
- unsigned long fl_break_time;
- unsigned long fl_downgrade_time;
-
- const struct file_lock_operations *fl_ops; /* Callbacks for filesystems */
- const struct lock_manager_operations *fl_lmops; /* Callbacks for lockmanagers */
- union {
- struct nfs_lock_info nfs_fl;
- struct nfs4_lock_info nfs4_fl;
- struct {
- struct list_head link; /* link in AFS vnode's pending_locks list */
- int state; /* state of grant or error if -ve */
- } afs;
- } fl_u;
-};
-
-/* The following constant reflects the upper bound of the file/locking space */
-#ifndef OFFSET_MAX
-#define INT_LIMIT(x) (~((x)1 << (sizeof(x)*8 - 1)))
-#define OFFSET_MAX INT_LIMIT(loff_t)
-#define OFFT_OFFSET_MAX INT_LIMIT(off_t)
-#endif
-
-#include <linux/fcntl.h>
-
-extern void send_sigio(struct fown_struct *fown, int fd, int band);
-
-#ifdef CONFIG_FILE_LOCKING
-extern int fcntl_getlk(struct file *, struct flock __user *);
-extern int fcntl_setlk(unsigned int, struct file *, unsigned int,
- struct flock __user *);
-
-#if BITS_PER_LONG == 32
-extern int fcntl_getlk64(struct file *, struct flock64 __user *);
-extern int fcntl_setlk64(unsigned int, struct file *, unsigned int,
- struct flock64 __user *);
-#endif
-
-extern int fcntl_setlease(unsigned int fd, struct file *filp, long arg);
-extern int fcntl_getlease(struct file *filp);
-
-/* fs/locks.c */
-void locks_free_lock(struct file_lock *fl);
-extern void locks_init_lock(struct file_lock *);
-extern struct file_lock * locks_alloc_lock(void);
-extern void locks_copy_lock(struct file_lock *, struct file_lock *);
-extern void __locks_copy_lock(struct file_lock *, const struct file_lock *);
-extern void locks_remove_posix(struct file *, fl_owner_t);
-extern void locks_remove_flock(struct file *);
-extern void locks_release_private(struct file_lock *);
-extern void posix_test_lock(struct file *, struct file_lock *);
-extern int posix_lock_file(struct file *, struct file_lock *, struct file_lock *);
-extern int posix_lock_file_wait(struct file *, struct file_lock *);
-extern int posix_unblock_lock(struct file *, struct file_lock *);
-extern int vfs_test_lock(struct file *, struct file_lock *);
-extern int vfs_lock_file(struct file *, unsigned int, struct file_lock *, struct file_lock *);
-extern int vfs_cancel_lock(struct file *filp, struct file_lock *fl);
-extern int flock_lock_file_wait(struct file *filp, struct file_lock *fl);
-extern int __break_lease(struct inode *inode, unsigned int flags);
-extern void lease_get_mtime(struct inode *, struct timespec *time);
-extern int generic_setlease(struct file *, long, struct file_lock **);
-extern int vfs_setlease(struct file *, long, struct file_lock **);
-extern int lease_modify(struct file_lock **, int);
-extern int lock_may_read(struct inode *, loff_t start, unsigned long count);
-extern int lock_may_write(struct inode *, loff_t start, unsigned long count);
-extern void locks_delete_block(struct file_lock *waiter);
-extern void lock_flocks(void);
-extern void unlock_flocks(void);
-#else /* !CONFIG_FILE_LOCKING */
-static inline int fcntl_getlk(struct file *file, struct flock __user *user)
-{
- return -EINVAL;
-}
-
-static inline int fcntl_setlk(unsigned int fd, struct file *file,
- unsigned int cmd, struct flock __user *user)
-{
- return -EACCES;
-}
-
-#if BITS_PER_LONG == 32
-static inline int fcntl_getlk64(struct file *file, struct flock64 __user *user)
-{
- return -EINVAL;
-}
-
-static inline int fcntl_setlk64(unsigned int fd, struct file *file,
- unsigned int cmd, struct flock64 __user *user)
-{
- return -EACCES;
-}
-#endif
-static inline int fcntl_setlease(unsigned int fd, struct file *filp, long arg)
-{
- return 0;
-}
-
-static inline int fcntl_getlease(struct file *filp)
-{
- return 0;
-}
-
-static inline void locks_init_lock(struct file_lock *fl)
-{
- return;
-}
-
-static inline void __locks_copy_lock(struct file_lock *new, struct file_lock *fl)
-{
- return;
-}
-
-static inline void locks_copy_lock(struct file_lock *new, struct file_lock *fl)
-{
- return;
-}
-
-static inline void locks_remove_posix(struct file *filp, fl_owner_t owner)
-{
- return;
-}
-
-static inline void locks_remove_flock(struct file *filp)
-{
- return;
-}
-
-static inline void posix_test_lock(struct file *filp, struct file_lock *fl)
-{
- return;
-}
-
-static inline int posix_lock_file(struct file *filp, struct file_lock *fl,
- struct file_lock *conflock)
-{
- return -ENOLCK;
-}
-
-static inline int posix_lock_file_wait(struct file *filp, struct file_lock *fl)
-{
- return -ENOLCK;
-}
-
-static inline int posix_unblock_lock(struct file *filp,
- struct file_lock *waiter)
-{
- return -ENOENT;
-}
-
-static inline int vfs_test_lock(struct file *filp, struct file_lock *fl)
-{
- return 0;
-}
-
-static inline int vfs_lock_file(struct file *filp, unsigned int cmd,
- struct file_lock *fl, struct file_lock *conf)
-{
- return -ENOLCK;
-}
-
-static inline int vfs_cancel_lock(struct file *filp, struct file_lock *fl)
-{
- return 0;
-}
-
-static inline int flock_lock_file_wait(struct file *filp,
- struct file_lock *request)
-{
- return -ENOLCK;
-}
-
-static inline int __break_lease(struct inode *inode, unsigned int mode)
-{
- return 0;
-}
-
-static inline void lease_get_mtime(struct inode *inode, struct timespec *time)
-{
- return;
-}
-
-static inline int generic_setlease(struct file *filp, long arg,
- struct file_lock **flp)
-{
- return -EINVAL;
-}
-
-static inline int vfs_setlease(struct file *filp, long arg,
- struct file_lock **lease)
-{
- return -EINVAL;
-}
-
-static inline int lease_modify(struct file_lock **before, int arg)
-{
- return -EINVAL;
-}
-
-static inline int lock_may_read(struct inode *inode, loff_t start,
- unsigned long len)
-{
- return 1;
-}
-
-static inline int lock_may_write(struct inode *inode, loff_t start,
- unsigned long len)
-{
- return 1;
-}
-
-static inline void locks_delete_block(struct file_lock *waiter)
-{
-}
-
-static inline void lock_flocks(void)
-{
-}
-
-static inline void unlock_flocks(void)
-{
-}
-
-#endif /* !CONFIG_FILE_LOCKING */
-
-
-struct fasync_struct {
- spinlock_t fa_lock;
- int magic;
- int fa_fd;
- struct fasync_struct *fa_next; /* singly linked list */
- struct file *fa_file;
- struct rcu_head fa_rcu;
-};
-
-#define FASYNC_MAGIC 0x4601
-
-/* SMP safe fasync helpers: */
-extern int fasync_helper(int, struct file *, int, struct fasync_struct **);
-extern struct fasync_struct *fasync_insert_entry(int, struct file *, struct fasync_struct **, struct fasync_struct *);
-extern int fasync_remove_entry(struct file *, struct fasync_struct **);
-extern struct fasync_struct *fasync_alloc(void);
-extern void fasync_free(struct fasync_struct *);
-
-/* can be called from interrupts */
-extern void kill_fasync(struct fasync_struct **, int, int);
-
-extern int __f_setown(struct file *filp, struct pid *, enum pid_type, int force);
-extern int f_setown(struct file *filp, unsigned long arg, int force);
-extern void f_delown(struct file *filp);
-extern pid_t f_getown(struct file *filp);
-extern int send_sigurg(struct fown_struct *fown);
-
-/*
- * Umount options
- */
-
-#define MNT_FORCE 0x00000001 /* Attempt to forcibily umount */
-#define MNT_DETACH 0x00000002 /* Just detach from the tree */
-#define MNT_EXPIRE 0x00000004 /* Mark for expiry */
-#define UMOUNT_NOFOLLOW 0x00000008 /* Don't follow symlink on umount */
-#define UMOUNT_UNUSED 0x80000000 /* Flag guaranteed to be unused */
-
-extern struct list_head super_blocks;
-extern spinlock_t sb_lock;
-
-struct super_block {
- struct list_head s_list; /* Keep this first */
- dev_t s_dev; /* search index; _not_ kdev_t */
- unsigned char s_dirt;
- unsigned char s_blocksize_bits;
- unsigned long s_blocksize;
- loff_t s_maxbytes; /* Max file size */
- struct file_system_type *s_type;
- const struct super_operations *s_op;
- const struct dquot_operations *dq_op;
- const struct quotactl_ops *s_qcop;
- const struct export_operations *s_export_op;
- unsigned long s_flags;
- unsigned long s_magic;
- struct dentry *s_root;
- struct rw_semaphore s_umount;
- struct mutex s_lock;
- int s_count;
- atomic_t s_active;
-#ifdef CONFIG_SECURITY
- void *s_security;
-#endif
- const struct xattr_handler **s_xattr;
-
- struct list_head s_inodes; /* all inodes */
- struct hlist_bl_head s_anon; /* anonymous dentries for (nfs) exporting */
-#ifdef CONFIG_SMP
- struct list_head __percpu *s_files;
-#else
- struct list_head s_files;
-#endif
- struct list_head s_mounts; /* list of mounts; _not_ for fs use */
- /* s_dentry_lru, s_nr_dentry_unused protected by dcache.c lru locks */
- struct list_head s_dentry_lru; /* unused dentry lru */
- int s_nr_dentry_unused; /* # of dentry on lru */
-
- /* s_inode_lru_lock protects s_inode_lru and s_nr_inodes_unused */
- spinlock_t s_inode_lru_lock ____cacheline_aligned_in_smp;
- struct list_head s_inode_lru; /* unused inode lru */
- int s_nr_inodes_unused; /* # of inodes on lru */
-
- struct block_device *s_bdev;
- struct backing_dev_info *s_bdi;
- struct mtd_info *s_mtd;
- struct hlist_node s_instances;
- struct quota_info s_dquot; /* Diskquota specific options */
-
- int s_frozen;
- wait_queue_head_t s_wait_unfrozen;
-
- char s_id[32]; /* Informational name */
- u8 s_uuid[16]; /* UUID */
-
- void *s_fs_info; /* Filesystem private info */
- unsigned int s_max_links;
- fmode_t s_mode;
-
- /* Granularity of c/m/atime in ns.
- Cannot be worse than a second */
- u32 s_time_gran;
-
- /*
- * The next field is for VFS *only*. No filesystems have any business
- * even looking at it. You had been warned.
- */
- struct mutex s_vfs_rename_mutex; /* Kludge */
-
- /*
- * Filesystem subtype. If non-empty the filesystem type field
- * in /proc/mounts will be "type.subtype"
- */
- char *s_subtype;
-
- /*
- * Saved mount options for lazy filesystems using
- * generic_show_options()
- */
- char __rcu *s_options;
- const struct dentry_operations *s_d_op; /* default d_op for dentries */
-
- /*
- * Saved pool identifier for cleancache (-1 means none)
- */
- int cleancache_poolid;
-
- struct shrinker s_shrink; /* per-sb shrinker handle */
-
- /* Number of inodes with nlink == 0 but still referenced */
- atomic_long_t s_remove_count;
-
- /* Being remounted read-only */
- int s_readonly_remount;
-};
-
-/* superblock cache pruning functions */
-extern void prune_icache_sb(struct super_block *sb, int nr_to_scan);
-extern void prune_dcache_sb(struct super_block *sb, int nr_to_scan);
-
-extern struct timespec current_fs_time(struct super_block *sb);
-
-/*
- * Snapshotting support.
- */
-enum {
- SB_UNFROZEN = 0,
- SB_FREEZE_WRITE = 1,
- SB_FREEZE_TRANS = 2,
-};
-
-#define vfs_check_frozen(sb, level) \
- wait_event((sb)->s_wait_unfrozen, ((sb)->s_frozen < (level)))
-
-/*
- * until VFS tracks user namespaces for inodes, just make all files
- * belong to init_user_ns
- */
-extern struct user_namespace init_user_ns;
-#define inode_userns(inode) (&init_user_ns)
-extern bool inode_owner_or_capable(const struct inode *inode);
-
-/* not quite ready to be deprecated, but... */
-extern void lock_super(struct super_block *);
-extern void unlock_super(struct super_block *);
-
-/*
- * VFS helper functions..
- */
-extern int vfs_create(struct inode *, struct dentry *, umode_t, struct nameidata *);
-extern int vfs_mkdir(struct inode *, struct dentry *, umode_t);
-extern int vfs_mknod(struct inode *, struct dentry *, umode_t, dev_t);
-extern int vfs_symlink(struct inode *, struct dentry *, const char *);
-extern int vfs_link(struct dentry *, struct inode *, struct dentry *);
-extern int vfs_rmdir(struct inode *, struct dentry *);
-extern int vfs_unlink(struct inode *, struct dentry *);
-extern int vfs_rename(struct inode *, struct dentry *, struct inode *, struct dentry *);
-
-/*
- * VFS dentry helper functions.
- */
-extern void dentry_unhash(struct dentry *dentry);
-
-/*
- * VFS file helper functions.
- */
-extern void inode_init_owner(struct inode *inode, const struct inode *dir,
- umode_t mode);
-/*
- * VFS FS_IOC_FIEMAP helper definitions.
- */
-struct fiemap_extent_info {
- unsigned int fi_flags; /* Flags as passed from user */
- unsigned int fi_extents_mapped; /* Number of mapped extents */
- unsigned int fi_extents_max; /* Size of fiemap_extent array */
- struct fiemap_extent __user *fi_extents_start; /* Start of
- fiemap_extent array */
-};
-int fiemap_fill_next_extent(struct fiemap_extent_info *info, u64 logical,
- u64 phys, u64 len, u32 flags);
-int fiemap_check_flags(struct fiemap_extent_info *fieinfo, u32 fs_flags);
-
-/*
- * File types
- *
- * NOTE! These match bits 12..15 of stat.st_mode
- * (ie "(i_mode >> 12) & 15").
- */
-#define DT_UNKNOWN 0
-#define DT_FIFO 1
-#define DT_CHR 2
-#define DT_DIR 4
-#define DT_BLK 6
-#define DT_REG 8
-#define DT_LNK 10
-#define DT_SOCK 12
-#define DT_WHT 14
-
-/*
- * This is the "filldir" function type, used by readdir() to let
- * the kernel specify what kind of dirent layout it wants to have.
- * This allows the kernel to read directories into kernel space or
- * to have different dirent layouts depending on the binary type.
- */
-typedef int (*filldir_t)(void *, const char *, int, loff_t, u64, unsigned);
-struct block_device_operations;
-
-/* These macros are for out of kernel modules to test that
- * the kernel supports the unlocked_ioctl and compat_ioctl
- * fields in struct file_operations. */
-#define HAVE_COMPAT_IOCTL 1
-#define HAVE_UNLOCKED_IOCTL 1
-
-struct file_operations {
- struct module *owner;
- loff_t (*llseek) (struct file *, loff_t, int);
- ssize_t (*read) (struct file *, char __user *, size_t, loff_t *);
- ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *);
- ssize_t (*aio_read) (struct kiocb *, const struct iovec *, unsigned long, loff_t);
- ssize_t (*aio_write) (struct kiocb *, const struct iovec *, unsigned long, loff_t);
- int (*readdir) (struct file *, void *, filldir_t);
- unsigned int (*poll) (struct file *, struct poll_table_struct *);
- long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long);
- long (*compat_ioctl) (struct file *, unsigned int, unsigned long);
- int (*mmap) (struct file *, struct vm_area_struct *);
- int (*open) (struct inode *, struct file *);
- int (*flush) (struct file *, fl_owner_t id);
- int (*release) (struct inode *, struct file *);
- int (*fsync) (struct file *, loff_t, loff_t, int datasync);
- int (*aio_fsync) (struct kiocb *, int datasync);
- int (*fasync) (int, struct file *, int);
- int (*lock) (struct file *, int, struct file_lock *);
- ssize_t (*sendpage) (struct file *, struct page *, int, size_t, loff_t *, int);
- unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);
- int (*check_flags)(int);
- int (*flock) (struct file *, int, struct file_lock *);
- ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int);
- ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int);
- int (*setlease)(struct file *, long, struct file_lock **);
- long (*fallocate)(struct file *file, int mode, loff_t offset,
- loff_t len);
-};
-
-struct inode_operations {
- struct dentry * (*lookup) (struct inode *,struct dentry *, struct nameidata *);
- void * (*follow_link) (struct dentry *, struct nameidata *);
- int (*permission) (struct inode *, int);
- struct posix_acl * (*get_acl)(struct inode *, int);
-
- int (*readlink) (struct dentry *, char __user *,int);
- void (*put_link) (struct dentry *, struct nameidata *, void *);
-
- int (*create) (struct inode *,struct dentry *,umode_t,struct nameidata *);
- int (*link) (struct dentry *,struct inode *,struct dentry *);
- int (*unlink) (struct inode *,struct dentry *);
- int (*symlink) (struct inode *,struct dentry *,const char *);
- int (*mkdir) (struct inode *,struct dentry *,umode_t);
- int (*rmdir) (struct inode *,struct dentry *);
- int (*mknod) (struct inode *,struct dentry *,umode_t,dev_t);
- int (*rename) (struct inode *, struct dentry *,
- struct inode *, struct dentry *);
- void (*truncate) (struct inode *);
- int (*setattr) (struct dentry *, struct iattr *);
- int (*getattr) (struct vfsmount *mnt, struct dentry *, struct kstat *);
- int (*setxattr) (struct dentry *, const char *,const void *,size_t,int);
- ssize_t (*getxattr) (struct dentry *, const char *, void *, size_t);
- ssize_t (*listxattr) (struct dentry *, char *, size_t);
- int (*removexattr) (struct dentry *, const char *);
- void (*truncate_range)(struct inode *, loff_t, loff_t);
- int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64 start,
- u64 len);
-} ____cacheline_aligned;
-
-struct seq_file;
-
-ssize_t rw_copy_check_uvector(int type, const struct iovec __user * uvector,
- unsigned long nr_segs, unsigned long fast_segs,
- struct iovec *fast_pointer,
- struct iovec **ret_pointer,
- int check_access);
-
-extern ssize_t vfs_read(struct file *, char __user *, size_t, loff_t *);
-extern ssize_t vfs_write(struct file *, const char __user *, size_t, loff_t *);
-extern ssize_t vfs_readv(struct file *, const struct iovec __user *,
- unsigned long, loff_t *);
-extern ssize_t vfs_writev(struct file *, const struct iovec __user *,
- unsigned long, loff_t *);
-
-struct super_operations {
- struct inode *(*alloc_inode)(struct super_block *sb);
- void (*destroy_inode)(struct inode *);
-
- void (*dirty_inode) (struct inode *, int flags);
- int (*write_inode) (struct inode *, struct writeback_control *wbc);
- int (*drop_inode) (struct inode *);
- void (*evict_inode) (struct inode *);
- void (*put_super) (struct super_block *);
- void (*write_super) (struct super_block *);
- int (*sync_fs)(struct super_block *sb, int wait);
- int (*freeze_fs) (struct super_block *);
- int (*unfreeze_fs) (struct super_block *);
- int (*statfs) (struct dentry *, struct kstatfs *);
- int (*remount_fs) (struct super_block *, int *, char *);
- void (*umount_begin) (struct super_block *);
-
- int (*show_options)(struct seq_file *, struct dentry *);
- int (*show_devname)(struct seq_file *, struct dentry *);
- int (*show_path)(struct seq_file *, struct dentry *);
- int (*show_stats)(struct seq_file *, struct dentry *);
-#ifdef CONFIG_QUOTA
- ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t);
- ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t);
-#endif
- int (*bdev_try_to_free_page)(struct super_block*, struct page*, gfp_t);
- int (*nr_cached_objects)(struct super_block *);
- void (*free_cached_objects)(struct super_block *, int);
-};
-
-/*
- * Inode state bits. Protected by inode->i_lock
- *
- * Three bits determine the dirty state of the inode, I_DIRTY_SYNC,
- * I_DIRTY_DATASYNC and I_DIRTY_PAGES.
- *
- * Four bits define the lifetime of an inode. Initially, inodes are I_NEW,
- * until that flag is cleared. I_WILL_FREE, I_FREEING and I_CLEAR are set at
- * various stages of removing an inode.
- *
- * Two bits are used for locking and completion notification, I_NEW and I_SYNC.
- *
- * I_DIRTY_SYNC Inode is dirty, but doesn't have to be written on
- * fdatasync(). i_atime is the usual cause.
- * I_DIRTY_DATASYNC Data-related inode changes pending. We keep track of
- * these changes separately from I_DIRTY_SYNC so that we
- * don't have to write inode on fdatasync() when only
- * mtime has changed in it.
- * I_DIRTY_PAGES Inode has dirty pages. Inode itself may be clean.
- * I_NEW Serves as both a mutex and completion notification.
- * New inodes set I_NEW. If two processes both create
- * the same inode, one of them will release its inode and
- * wait for I_NEW to be released before returning.
- * Inodes in I_WILL_FREE, I_FREEING or I_CLEAR state can
- * also cause waiting on I_NEW, without I_NEW actually
- * being set. find_inode() uses this to prevent returning
- * nearly-dead inodes.
- * I_WILL_FREE Must be set when calling write_inode_now() if i_count
- * is zero. I_FREEING must be set when I_WILL_FREE is
- * cleared.
- * I_FREEING Set when inode is about to be freed but still has dirty
- * pages or buffers attached or the inode itself is still
- * dirty.
- * I_CLEAR Added by end_writeback(). In this state the inode is clean
- * and can be destroyed. Inode keeps I_FREEING.
- *
- * Inodes that are I_WILL_FREE, I_FREEING or I_CLEAR are
- * prohibited for many purposes. iget() must wait for
- * the inode to be completely released, then create it
- * anew. Other functions will just ignore such inodes,
- * if appropriate. I_NEW is used for waiting.
- *
- * I_SYNC Synchonized write of dirty inode data. The bits is
- * set during data writeback, and cleared with a wakeup
- * on the bit address once it is done.
- *
- * I_REFERENCED Marks the inode as recently references on the LRU list.
- *
- * I_DIO_WAKEUP Never set. Only used as a key for wait_on_bit().
- *
- * Q: What is the difference between I_WILL_FREE and I_FREEING?
- */
-#define I_DIRTY_SYNC (1 << 0)
-#define I_DIRTY_DATASYNC (1 << 1)
-#define I_DIRTY_PAGES (1 << 2)
-#define __I_NEW 3
-#define I_NEW (1 << __I_NEW)
-#define I_WILL_FREE (1 << 4)
-#define I_FREEING (1 << 5)
-#define I_CLEAR (1 << 6)
-#define __I_SYNC 7
-#define I_SYNC (1 << __I_SYNC)
-#define I_REFERENCED (1 << 8)
-#define __I_DIO_WAKEUP 9
-#define I_DIO_WAKEUP (1 << I_DIO_WAKEUP)
-
-#define I_DIRTY (I_DIRTY_SYNC | I_DIRTY_DATASYNC | I_DIRTY_PAGES)
-
-extern void __mark_inode_dirty(struct inode *, int);
-static inline void mark_inode_dirty(struct inode *inode)
-{
- __mark_inode_dirty(inode, I_DIRTY);
-}
-
-static inline void mark_inode_dirty_sync(struct inode *inode)
-{
- __mark_inode_dirty(inode, I_DIRTY_SYNC);
-}
-
-extern void inc_nlink(struct inode *inode);
-extern void drop_nlink(struct inode *inode);
-extern void clear_nlink(struct inode *inode);
-extern void set_nlink(struct inode *inode, unsigned int nlink);
-
-static inline void inode_inc_link_count(struct inode *inode)
-{
- inc_nlink(inode);
- mark_inode_dirty(inode);
-}
-
-static inline void inode_dec_link_count(struct inode *inode)
-{
- drop_nlink(inode);
- mark_inode_dirty(inode);
-}
-
-/**
- * inode_inc_iversion - increments i_version
- * @inode: inode that need to be updated
- *
- * Every time the inode is modified, the i_version field will be incremented.
- * The filesystem has to be mounted with i_version flag
- */
-
-static inline void inode_inc_iversion(struct inode *inode)
-{
- spin_lock(&inode->i_lock);
- inode->i_version++;
- spin_unlock(&inode->i_lock);
-}
-
-extern void touch_atime(struct path *);
-static inline void file_accessed(struct file *file)
-{
- if (!(file->f_flags & O_NOATIME))
- touch_atime(&file->f_path);
-}
-
-int sync_inode(struct inode *inode, struct writeback_control *wbc);
-int sync_inode_metadata(struct inode *inode, int wait);
-
-struct file_system_type {
- const char *name;
- int fs_flags;
- struct dentry *(*mount) (struct file_system_type *, int,
- const char *, void *);
- void (*kill_sb) (struct super_block *);
- struct module *owner;
- struct file_system_type * next;
- struct hlist_head fs_supers;
-
- struct lock_class_key s_lock_key;
- struct lock_class_key s_umount_key;
- struct lock_class_key s_vfs_rename_key;
-
- struct lock_class_key i_lock_key;
- struct lock_class_key i_mutex_key;
- struct lock_class_key i_mutex_dir_key;
-};
-
-extern struct dentry *mount_ns(struct file_system_type *fs_type, int flags,
- void *data, int (*fill_super)(struct super_block *, void *, int));
-extern struct dentry *mount_bdev(struct file_system_type *fs_type,
- int flags, const char *dev_name, void *data,
- int (*fill_super)(struct super_block *, void *, int));
-extern struct dentry *mount_single(struct file_system_type *fs_type,
- int flags, void *data,
- int (*fill_super)(struct super_block *, void *, int));
-extern struct dentry *mount_nodev(struct file_system_type *fs_type,
- int flags, void *data,
- int (*fill_super)(struct super_block *, void *, int));
-extern struct dentry *mount_subtree(struct vfsmount *mnt, const char *path);
-void generic_shutdown_super(struct super_block *sb);
-void kill_block_super(struct super_block *sb);
-void kill_anon_super(struct super_block *sb);
-void kill_litter_super(struct super_block *sb);
-void deactivate_super(struct super_block *sb);
-void deactivate_locked_super(struct super_block *sb);
-int set_anon_super(struct super_block *s, void *data);
-int get_anon_bdev(dev_t *);
-void free_anon_bdev(dev_t);
-struct super_block *sget(struct file_system_type *type,
- int (*test)(struct super_block *,void *),
- int (*set)(struct super_block *,void *),
- void *data);
-extern struct dentry *mount_pseudo(struct file_system_type *, char *,
- const struct super_operations *ops,
- const struct dentry_operations *dops,
- unsigned long);
-
-/* Alas, no aliases. Too much hassle with bringing module.h everywhere */
-#define fops_get(fops) \
- (((fops) && try_module_get((fops)->owner) ? (fops) : NULL))
-#define fops_put(fops) \
- do { if (fops) module_put((fops)->owner); } while(0)
-
-extern int register_filesystem(struct file_system_type *);
-extern int unregister_filesystem(struct file_system_type *);
-extern struct vfsmount *kern_mount_data(struct file_system_type *, void *data);
-#define kern_mount(type) kern_mount_data(type, NULL)
-extern void kern_unmount(struct vfsmount *mnt);
-extern int may_umount_tree(struct vfsmount *);
-extern int may_umount(struct vfsmount *);
-extern long do_mount(char *, char *, char *, unsigned long, void *);
-extern struct vfsmount *collect_mounts(struct path *);
-extern void drop_collected_mounts(struct vfsmount *);
-extern int iterate_mounts(int (*)(struct vfsmount *, void *), void *,
- struct vfsmount *);
-extern int vfs_statfs(struct path *, struct kstatfs *);
-extern int user_statfs(const char __user *, struct kstatfs *);
-extern int fd_statfs(int, struct kstatfs *);
-extern int vfs_ustat(dev_t, struct kstatfs *);
-extern int freeze_super(struct super_block *super);
-extern int thaw_super(struct super_block *super);
-extern bool our_mnt(struct vfsmount *mnt);
-
-extern int current_umask(void);
-
-/* /sys/fs */
-extern struct kobject *fs_kobj;
-
-#define MAX_RW_COUNT (INT_MAX & PAGE_CACHE_MASK)
-extern int rw_verify_area(int, struct file *, loff_t *, size_t);
-
-#define FLOCK_VERIFY_READ 1
-#define FLOCK_VERIFY_WRITE 2
-
-#ifdef CONFIG_FILE_LOCKING
-extern int locks_mandatory_locked(struct inode *);
-extern int locks_mandatory_area(int, struct inode *, struct file *, loff_t, size_t);
-
-/*
- * Candidates for mandatory locking have the setgid bit set
- * but no group execute bit - an otherwise meaningless combination.
- */
-
-static inline int __mandatory_lock(struct inode *ino)
-{
- return (ino->i_mode & (S_ISGID | S_IXGRP)) == S_ISGID;
-}
-
-/*
- * ... and these candidates should be on MS_MANDLOCK mounted fs,
- * otherwise these will be advisory locks
- */
-
-static inline int mandatory_lock(struct inode *ino)
-{
- return IS_MANDLOCK(ino) && __mandatory_lock(ino);
-}
-
-static inline int locks_verify_locked(struct inode *inode)
-{
- if (mandatory_lock(inode))
- return locks_mandatory_locked(inode);
- return 0;
-}
-
-static inline int locks_verify_truncate(struct inode *inode,
- struct file *filp,
- loff_t size)
-{
- if (inode->i_flock && mandatory_lock(inode))
- return locks_mandatory_area(
- FLOCK_VERIFY_WRITE, inode, filp,
- size < inode->i_size ? size : inode->i_size,
- (size < inode->i_size ? inode->i_size - size
- : size - inode->i_size)
- );
- return 0;
-}
-
-static inline int break_lease(struct inode *inode, unsigned int mode)
-{
- if (inode->i_flock)
- return __break_lease(inode, mode);
- return 0;
-}
-#else /* !CONFIG_FILE_LOCKING */
-static inline int locks_mandatory_locked(struct inode *inode)
-{
- return 0;
-}
-
-static inline int locks_mandatory_area(int rw, struct inode *inode,
- struct file *filp, loff_t offset,
- size_t count)
-{
- return 0;
-}
-
-static inline int __mandatory_lock(struct inode *inode)
-{
- return 0;
-}
-
-static inline int mandatory_lock(struct inode *inode)
-{
- return 0;
-}
-
-static inline int locks_verify_locked(struct inode *inode)
-{
- return 0;
-}
-
-static inline int locks_verify_truncate(struct inode *inode, struct file *filp,
- size_t size)
-{
- return 0;
-}
-
-static inline int break_lease(struct inode *inode, unsigned int mode)
-{
- return 0;
-}
-
-#endif /* CONFIG_FILE_LOCKING */
-
-/* fs/open.c */
-
-extern int do_truncate(struct dentry *, loff_t start, unsigned int time_attrs,
- struct file *filp);
-extern int do_fallocate(struct file *file, int mode, loff_t offset,
- loff_t len);
-extern long do_sys_open(int dfd, const char __user *filename, int flags,
- umode_t mode);
-extern struct file *filp_open(const char *, int, umode_t);
-extern struct file *file_open_root(struct dentry *, struct vfsmount *,
- const char *, int);
-extern struct file * dentry_open(struct dentry *, struct vfsmount *, int,
- const struct cred *);
-extern int filp_close(struct file *, fl_owner_t id);
-extern char * getname(const char __user *);
-
-/* fs/ioctl.c */
-
-extern int ioctl_preallocate(struct file *filp, void __user *argp);
-
-/* fs/dcache.c */
-extern void __init vfs_caches_init_early(void);
-extern void __init vfs_caches_init(unsigned long);
-
-extern struct kmem_cache *names_cachep;
-
-#define __getname_gfp(gfp) kmem_cache_alloc(names_cachep, (gfp))
-#define __getname() __getname_gfp(GFP_KERNEL)
-#define __putname(name) kmem_cache_free(names_cachep, (void *)(name))
-#ifndef CONFIG_AUDITSYSCALL
-#define putname(name) __putname(name)
-#else
-extern void putname(const char *name);
-#endif
-
-#ifdef CONFIG_BLOCK
-extern int register_blkdev(unsigned int, const char *);
-extern void unregister_blkdev(unsigned int, const char *);
-extern struct block_device *bdget(dev_t);
-extern struct block_device *bdgrab(struct block_device *bdev);
-extern void bd_set_size(struct block_device *, loff_t size);
-extern sector_t blkdev_max_block(struct block_device *bdev);
-extern void bd_forget(struct inode *inode);
-extern void bdput(struct block_device *);
-extern void invalidate_bdev(struct block_device *);
-extern int sync_blockdev(struct block_device *bdev);
-extern void kill_bdev(struct block_device *);
-extern struct super_block *freeze_bdev(struct block_device *);
-extern void emergency_thaw_all(void);
-extern int thaw_bdev(struct block_device *bdev, struct super_block *sb);
-extern int fsync_bdev(struct block_device *);
-#else
-static inline void bd_forget(struct inode *inode) {}
-static inline int sync_blockdev(struct block_device *bdev) { return 0; }
-static inline void kill_bdev(struct block_device *bdev) {}
-static inline void invalidate_bdev(struct block_device *bdev) {}
-
-static inline struct super_block *freeze_bdev(struct block_device *sb)
-{
- return NULL;
-}
-
-static inline int thaw_bdev(struct block_device *bdev, struct super_block *sb)
-{
- return 0;
-}
-#endif
-extern int sync_filesystem(struct super_block *);
-extern const struct file_operations def_blk_fops;
-extern const struct file_operations def_chr_fops;
-extern const struct file_operations bad_sock_fops;
-extern const struct file_operations def_fifo_fops;
-#ifdef CONFIG_BLOCK
-extern int ioctl_by_bdev(struct block_device *, unsigned, unsigned long);
-extern int blkdev_ioctl(struct block_device *, fmode_t, unsigned, unsigned long);
-extern long compat_blkdev_ioctl(struct file *, unsigned, unsigned long);
-extern int blkdev_get(struct block_device *bdev, fmode_t mode, void *holder);
-extern struct block_device *blkdev_get_by_path(const char *path, fmode_t mode,
- void *holder);
-extern struct block_device *blkdev_get_by_dev(dev_t dev, fmode_t mode,
- void *holder);
-extern int blkdev_put(struct block_device *bdev, fmode_t mode);
-#ifdef CONFIG_SYSFS
-extern int bd_link_disk_holder(struct block_device *bdev, struct gendisk *disk);
-extern void bd_unlink_disk_holder(struct block_device *bdev,
- struct gendisk *disk);
-#else
-static inline int bd_link_disk_holder(struct block_device *bdev,
- struct gendisk *disk)
-{
- return 0;
-}
-static inline void bd_unlink_disk_holder(struct block_device *bdev,
- struct gendisk *disk)
-{
-}
-#endif
-#endif
-
-/* fs/char_dev.c */
-#define CHRDEV_MAJOR_HASH_SIZE 255
-extern int alloc_chrdev_region(dev_t *, unsigned, unsigned, const char *);
-extern int register_chrdev_region(dev_t, unsigned, const char *);
-extern int __register_chrdev(unsigned int major, unsigned int baseminor,
- unsigned int count, const char *name,
- const struct file_operations *fops);
-extern void __unregister_chrdev(unsigned int major, unsigned int baseminor,
- unsigned int count, const char *name);
-extern void unregister_chrdev_region(dev_t, unsigned);
-extern void chrdev_show(struct seq_file *,off_t);
-
-static inline int register_chrdev(unsigned int major, const char *name,
- const struct file_operations *fops)
-{
- return __register_chrdev(major, 0, 256, name, fops);
-}
-
-static inline void unregister_chrdev(unsigned int major, const char *name)
-{
- __unregister_chrdev(major, 0, 256, name);
-}
-
-/* fs/block_dev.c */
-#define BDEVNAME_SIZE 32 /* Largest string for a blockdev identifier */
-#define BDEVT_SIZE 10 /* Largest string for MAJ:MIN for blkdev */
-
-#ifdef CONFIG_BLOCK
-#define BLKDEV_MAJOR_HASH_SIZE 255
-extern const char *__bdevname(dev_t, char *buffer);
-extern const char *bdevname(struct block_device *bdev, char *buffer);
-extern struct block_device *lookup_bdev(const char *);
-extern void blkdev_show(struct seq_file *,off_t);
-
-#else
-#define BLKDEV_MAJOR_HASH_SIZE 0
-#endif
-
-extern void init_special_inode(struct inode *, umode_t, dev_t);
-
-/* Invalid inode operations -- fs/bad_inode.c */
-extern void make_bad_inode(struct inode *);
-extern int is_bad_inode(struct inode *);
-
-extern const struct file_operations read_pipefifo_fops;
-extern const struct file_operations write_pipefifo_fops;
-extern const struct file_operations rdwr_pipefifo_fops;
-
-#ifdef CONFIG_BLOCK
-/*
- * return READ, READA, or WRITE
- */
-#define bio_rw(bio) ((bio)->bi_rw & (RW_MASK | RWA_MASK))
-
-/*
- * return data direction, READ or WRITE
- */
-#define bio_data_dir(bio) ((bio)->bi_rw & 1)
-
-extern void check_disk_size_change(struct gendisk *disk,
- struct block_device *bdev);
-extern int revalidate_disk(struct gendisk *);
-extern int check_disk_change(struct block_device *);
-extern int __invalidate_device(struct block_device *, bool);
-extern int invalidate_partition(struct gendisk *, int);
-#endif
-unsigned long invalidate_mapping_pages(struct address_space *mapping,
- pgoff_t start, pgoff_t end);
-
-static inline void invalidate_remote_inode(struct inode *inode)
-{
- if (S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode) ||
- S_ISLNK(inode->i_mode))
- invalidate_mapping_pages(inode->i_mapping, 0, -1);
-}
-extern int invalidate_inode_pages2(struct address_space *mapping);
-extern int invalidate_inode_pages2_range(struct address_space *mapping,
- pgoff_t start, pgoff_t end);
-extern int write_inode_now(struct inode *, int);
-extern int filemap_fdatawrite(struct address_space *);
-extern int filemap_flush(struct address_space *);
-extern int filemap_fdatawait(struct address_space *);
-extern int filemap_fdatawait_range(struct address_space *, loff_t lstart,
- loff_t lend);
-extern int filemap_write_and_wait(struct address_space *mapping);
-extern int filemap_write_and_wait_range(struct address_space *mapping,
- loff_t lstart, loff_t lend);
-extern int __filemap_fdatawrite_range(struct address_space *mapping,
- loff_t start, loff_t end, int sync_mode);
-extern int filemap_fdatawrite_range(struct address_space *mapping,
- loff_t start, loff_t end);
-
-extern int vfs_fsync_range(struct file *file, loff_t start, loff_t end,
- int datasync);
-extern int vfs_fsync(struct file *file, int datasync);
-extern int generic_write_sync(struct file *file, loff_t pos, loff_t count);
-extern void sync_supers(void);
-extern void emergency_sync(void);
-extern void emergency_remount(void);
-#ifdef CONFIG_BLOCK
-extern sector_t bmap(struct inode *, sector_t);
-#endif
-extern int notify_change(struct dentry *, struct iattr *);
-extern int inode_permission(struct inode *, int);
-extern int generic_permission(struct inode *, int);
-
-static inline bool execute_ok(struct inode *inode)
-{
- return (inode->i_mode & S_IXUGO) || S_ISDIR(inode->i_mode);
-}
-
-/*
- * get_write_access() gets write permission for a file.
- * put_write_access() releases this write permission.
- * This is used for regular files.
- * We cannot support write (and maybe mmap read-write shared) accesses and
- * MAP_DENYWRITE mmappings simultaneously. The i_writecount field of an inode
- * can have the following values:
- * 0: no writers, no VM_DENYWRITE mappings
- * < 0: (-i_writecount) vm_area_structs with VM_DENYWRITE set exist
- * > 0: (i_writecount) users are writing to the file.
- *
- * Normally we operate on that counter with atomic_{inc,dec} and it's safe
- * except for the cases where we don't hold i_writecount yet. Then we need to
- * use {get,deny}_write_access() - these functions check the sign and refuse
- * to do the change if sign is wrong.
- */
-static inline int get_write_access(struct inode *inode)
-{
- return atomic_inc_unless_negative(&inode->i_writecount) ? 0 : -ETXTBSY;
-}
-static inline int deny_write_access(struct file *file)
-{
- struct inode *inode = file->f_path.dentry->d_inode;
- return atomic_dec_unless_positive(&inode->i_writecount) ? 0 : -ETXTBSY;
-}
-static inline void put_write_access(struct inode * inode)
-{
- atomic_dec(&inode->i_writecount);
-}
-static inline void allow_write_access(struct file *file)
-{
- if (file)
- atomic_inc(&file->f_path.dentry->d_inode->i_writecount);
-}
-#ifdef CONFIG_IMA
-static inline void i_readcount_dec(struct inode *inode)
-{
- BUG_ON(!atomic_read(&inode->i_readcount));
- atomic_dec(&inode->i_readcount);
-}
-static inline void i_readcount_inc(struct inode *inode)
-{
- atomic_inc(&inode->i_readcount);
-}
-#else
-static inline void i_readcount_dec(struct inode *inode)
-{
- return;
-}
-static inline void i_readcount_inc(struct inode *inode)
-{
- return;
-}
-#endif
-extern int do_pipe_flags(int *, int);
-extern struct file *create_read_pipe(struct file *f, int flags);
-extern struct file *create_write_pipe(int flags);
-extern void free_write_pipe(struct file *);
-
-extern int kernel_read(struct file *, loff_t, char *, unsigned long);
-extern struct file * open_exec(const char *);
-
-/* fs/dcache.c -- generic fs support functions */
-extern int is_subdir(struct dentry *, struct dentry *);
-extern int path_is_under(struct path *, struct path *);
-extern ino_t find_inode_number(struct dentry *, struct qstr *);
-
-#include <linux/err.h>
-
-/* needed for stackable file system support */
-extern loff_t default_llseek(struct file *file, loff_t offset, int origin);
-
-extern loff_t vfs_llseek(struct file *file, loff_t offset, int origin);
-
-extern int inode_init_always(struct super_block *, struct inode *);
-extern void inode_init_once(struct inode *);
-extern void address_space_init_once(struct address_space *mapping);
-extern void ihold(struct inode * inode);
-extern void iput(struct inode *);
-extern struct inode * igrab(struct inode *);
-extern ino_t iunique(struct super_block *, ino_t);
-extern int inode_needs_sync(struct inode *inode);
-extern int generic_delete_inode(struct inode *inode);
-static inline int generic_drop_inode(struct inode *inode)
-{
- return !inode->i_nlink || inode_unhashed(inode);
-}
-
-extern struct inode *ilookup5_nowait(struct super_block *sb,
- unsigned long hashval, int (*test)(struct inode *, void *),
- void *data);
-extern struct inode *ilookup5(struct super_block *sb, unsigned long hashval,
- int (*test)(struct inode *, void *), void *data);
-extern struct inode *ilookup(struct super_block *sb, unsigned long ino);
-
-extern struct inode * iget5_locked(struct super_block *, unsigned long, int (*test)(struct inode *, void *), int (*set)(struct inode *, void *), void *);
-extern struct inode * iget_locked(struct super_block *, unsigned long);
-extern int insert_inode_locked4(struct inode *, unsigned long, int (*test)(struct inode *, void *), void *);
-extern int insert_inode_locked(struct inode *);
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
-extern void lockdep_annotate_inode_mutex_key(struct inode *inode);
-#else
-static inline void lockdep_annotate_inode_mutex_key(struct inode *inode) { };
-#endif
-extern void unlock_new_inode(struct inode *);
-extern unsigned int get_next_ino(void);
-
-extern void __iget(struct inode * inode);
-extern void iget_failed(struct inode *);
-extern void end_writeback(struct inode *);
-extern void __destroy_inode(struct inode *);
-extern struct inode *new_inode_pseudo(struct super_block *sb);
-extern struct inode *new_inode(struct super_block *sb);
-extern void free_inode_nonrcu(struct inode *inode);
-extern int should_remove_suid(struct dentry *);
-extern int file_remove_suid(struct file *);
-
-extern void __insert_inode_hash(struct inode *, unsigned long hashval);
-static inline void insert_inode_hash(struct inode *inode)
-{
- __insert_inode_hash(inode, inode->i_ino);
-}
-
-extern void __remove_inode_hash(struct inode *);
-static inline void remove_inode_hash(struct inode *inode)
-{
- if (!inode_unhashed(inode))
- __remove_inode_hash(inode);
-}
-
-extern void inode_sb_list_add(struct inode *inode);
-
-#ifdef CONFIG_BLOCK
-extern void submit_bio(int, struct bio *);
-extern int bdev_read_only(struct block_device *);
-#endif
-extern int set_blocksize(struct block_device *, int);
-extern int sb_set_blocksize(struct super_block *, int);
-extern int sb_min_blocksize(struct super_block *, int);
-
-extern int generic_file_mmap(struct file *, struct vm_area_struct *);
-extern int generic_file_readonly_mmap(struct file *, struct vm_area_struct *);
-extern int file_read_actor(read_descriptor_t * desc, struct page *page, unsigned long offset, unsigned long size);
-int generic_write_checks(struct file *file, loff_t *pos, size_t *count, int isblk);
-extern ssize_t generic_file_aio_read(struct kiocb *, const struct iovec *, unsigned long, loff_t);
-extern ssize_t __generic_file_aio_write(struct kiocb *, const struct iovec *, unsigned long,
- loff_t *);
-extern ssize_t generic_file_aio_write(struct kiocb *, const struct iovec *, unsigned long, loff_t);
-extern ssize_t generic_file_direct_write(struct kiocb *, const struct iovec *,
- unsigned long *, loff_t, loff_t *, size_t, size_t);
-extern ssize_t generic_file_buffered_write(struct kiocb *, const struct iovec *,
- unsigned long, loff_t, loff_t *, size_t, ssize_t);
-extern ssize_t do_sync_read(struct file *filp, char __user *buf, size_t len, loff_t *ppos);
-extern ssize_t do_sync_write(struct file *filp, const char __user *buf, size_t len, loff_t *ppos);
-extern int generic_segment_checks(const struct iovec *iov,
- unsigned long *nr_segs, size_t *count, int access_flags);
-
-/* fs/block_dev.c */
-extern ssize_t blkdev_aio_write(struct kiocb *iocb, const struct iovec *iov,
- unsigned long nr_segs, loff_t pos);
-extern int blkdev_fsync(struct file *filp, loff_t start, loff_t end,
- int datasync);
-extern void block_sync_page(struct page *page);
-
-/* fs/splice.c */
-extern ssize_t generic_file_splice_read(struct file *, loff_t *,
- struct pipe_inode_info *, size_t, unsigned int);
-extern ssize_t default_file_splice_read(struct file *, loff_t *,
- struct pipe_inode_info *, size_t, unsigned int);
-extern ssize_t generic_file_splice_write(struct pipe_inode_info *,
- struct file *, loff_t *, size_t, unsigned int);
-extern ssize_t generic_splice_sendpage(struct pipe_inode_info *pipe,
- struct file *out, loff_t *, size_t len, unsigned int flags);
-extern long do_splice_direct(struct file *in, loff_t *ppos, struct file *out,
- size_t len, unsigned int flags);
-
-extern void
-file_ra_state_init(struct file_ra_state *ra, struct address_space *mapping);
-extern loff_t noop_llseek(struct file *file, loff_t offset, int origin);
-extern loff_t no_llseek(struct file *file, loff_t offset, int origin);
-extern loff_t generic_file_llseek(struct file *file, loff_t offset, int origin);
-extern loff_t generic_file_llseek_size(struct file *file, loff_t offset,
- int origin, loff_t maxsize);
-extern int generic_file_open(struct inode * inode, struct file * filp);
-extern int nonseekable_open(struct inode * inode, struct file * filp);
-
-#ifdef CONFIG_FS_XIP
-extern ssize_t xip_file_read(struct file *filp, char __user *buf, size_t len,
- loff_t *ppos);
-extern int xip_file_mmap(struct file * file, struct vm_area_struct * vma);
-extern ssize_t xip_file_write(struct file *filp, const char __user *buf,
- size_t len, loff_t *ppos);
-extern int xip_truncate_page(struct address_space *mapping, loff_t from);
-#else
-static inline int xip_truncate_page(struct address_space *mapping, loff_t from)
-{
- return 0;
-}
-#endif
-
-#ifdef CONFIG_BLOCK
-typedef void (dio_submit_t)(int rw, struct bio *bio, struct inode *inode,
- loff_t file_offset);
-
-enum {
- /* need locking between buffered and direct access */
- DIO_LOCKING = 0x01,
-
- /* filesystem does not support filling holes */
- DIO_SKIP_HOLES = 0x02,
-};
-
-void dio_end_io(struct bio *bio, int error);
-void inode_dio_wait(struct inode *inode);
-void inode_dio_done(struct inode *inode);
-
-ssize_t __blockdev_direct_IO(int rw, struct kiocb *iocb, struct inode *inode,
- struct block_device *bdev, const struct iovec *iov, loff_t offset,
- unsigned long nr_segs, get_block_t get_block, dio_iodone_t end_io,
- dio_submit_t submit_io, int flags);
-
-static inline ssize_t blockdev_direct_IO(int rw, struct kiocb *iocb,
- struct inode *inode, const struct iovec *iov, loff_t offset,
- unsigned long nr_segs, get_block_t get_block)
-{
- return __blockdev_direct_IO(rw, iocb, inode, inode->i_sb->s_bdev, iov,
- offset, nr_segs, get_block, NULL, NULL,
- DIO_LOCKING | DIO_SKIP_HOLES);
-}
-#else
-static inline void inode_dio_wait(struct inode *inode)
-{
-}
-#endif
-
-extern const struct file_operations generic_ro_fops;
-
-#define special_file(m) (S_ISCHR(m)||S_ISBLK(m)||S_ISFIFO(m)||S_ISSOCK(m))
-
-extern int vfs_readlink(struct dentry *, char __user *, int, const char *);
-extern int vfs_follow_link(struct nameidata *, const char *);
-extern int page_readlink(struct dentry *, char __user *, int);
-extern void *page_follow_link_light(struct dentry *, struct nameidata *);
-extern void page_put_link(struct dentry *, struct nameidata *, void *);
-extern int __page_symlink(struct inode *inode, const char *symname, int len,
- int nofs);
-extern int page_symlink(struct inode *inode, const char *symname, int len);
-extern const struct inode_operations page_symlink_inode_operations;
-extern int generic_readlink(struct dentry *, char __user *, int);
-extern void generic_fillattr(struct inode *, struct kstat *);
-extern int vfs_getattr(struct vfsmount *, struct dentry *, struct kstat *);
-void __inode_add_bytes(struct inode *inode, loff_t bytes);
-void inode_add_bytes(struct inode *inode, loff_t bytes);
-void inode_sub_bytes(struct inode *inode, loff_t bytes);
-loff_t inode_get_bytes(struct inode *inode);
-void inode_set_bytes(struct inode *inode, loff_t bytes);
-
-extern int vfs_readdir(struct file *, filldir_t, void *);
-
-extern int vfs_stat(const char __user *, struct kstat *);
-extern int vfs_lstat(const char __user *, struct kstat *);
-extern int vfs_fstat(unsigned int, struct kstat *);
-extern int vfs_fstatat(int , const char __user *, struct kstat *, int);
-
-extern int do_vfs_ioctl(struct file *filp, unsigned int fd, unsigned int cmd,
- unsigned long arg);
-extern int __generic_block_fiemap(struct inode *inode,
- struct fiemap_extent_info *fieinfo,
- loff_t start, loff_t len,
- get_block_t *get_block);
-extern int generic_block_fiemap(struct inode *inode,
- struct fiemap_extent_info *fieinfo, u64 start,
- u64 len, get_block_t *get_block);
-
-extern void get_filesystem(struct file_system_type *fs);
-extern void put_filesystem(struct file_system_type *fs);
-extern struct file_system_type *get_fs_type(const char *name);
-extern struct super_block *get_super(struct block_device *);
-extern struct super_block *get_super_thawed(struct block_device *);
-extern struct super_block *get_active_super(struct block_device *bdev);
-extern void drop_super(struct super_block *sb);
-extern void iterate_supers(void (*)(struct super_block *, void *), void *);
-extern void iterate_supers_type(struct file_system_type *,
- void (*)(struct super_block *, void *), void *);
-
-extern int dcache_dir_open(struct inode *, struct file *);
-extern int dcache_dir_close(struct inode *, struct file *);
-extern loff_t dcache_dir_lseek(struct file *, loff_t, int);
-extern int dcache_readdir(struct file *, void *, filldir_t);
-extern int simple_setattr(struct dentry *, struct iattr *);
-extern int simple_getattr(struct vfsmount *, struct dentry *, struct kstat *);
-extern int simple_statfs(struct dentry *, struct kstatfs *);
-extern int simple_open(struct inode *inode, struct file *file);
-extern int simple_link(struct dentry *, struct inode *, struct dentry *);
-extern int simple_unlink(struct inode *, struct dentry *);
-extern int simple_rmdir(struct inode *, struct dentry *);
-extern int simple_rename(struct inode *, struct dentry *, struct inode *, struct dentry *);
-extern int noop_fsync(struct file *, loff_t, loff_t, int);
-extern int simple_empty(struct dentry *);
-extern int simple_readpage(struct file *file, struct page *page);
-extern int simple_write_begin(struct file *file, struct address_space *mapping,
- loff_t pos, unsigned len, unsigned flags,
- struct page **pagep, void **fsdata);
-extern int simple_write_end(struct file *file, struct address_space *mapping,
- loff_t pos, unsigned len, unsigned copied,
- struct page *page, void *fsdata);
-
-extern struct dentry *simple_lookup(struct inode *, struct dentry *, struct nameidata *);
-extern ssize_t generic_read_dir(struct file *, char __user *, size_t, loff_t *);
-extern const struct file_operations simple_dir_operations;
-extern const struct inode_operations simple_dir_inode_operations;
-struct tree_descr { char *name; const struct file_operations *ops; int mode; };
-struct dentry *d_alloc_name(struct dentry *, const char *);
-extern int simple_fill_super(struct super_block *, unsigned long, struct tree_descr *);
-extern int simple_pin_fs(struct file_system_type *, struct vfsmount **mount, int *count);
-extern void simple_release_fs(struct vfsmount **mount, int *count);
-
-extern ssize_t simple_read_from_buffer(void __user *to, size_t count,
- loff_t *ppos, const void *from, size_t available);
-extern ssize_t simple_write_to_buffer(void *to, size_t available, loff_t *ppos,
- const void __user *from, size_t count);
-
-extern int generic_file_fsync(struct file *, loff_t, loff_t, int);
-
-extern int generic_check_addressable(unsigned, u64);
-
-#ifdef CONFIG_MIGRATION
-extern int buffer_migrate_page(struct address_space *,
- struct page *, struct page *,
- enum migrate_mode);
-#else
-#define buffer_migrate_page NULL
-#endif
-
-extern int inode_change_ok(const struct inode *, struct iattr *);
-extern int inode_newsize_ok(const struct inode *, loff_t offset);
-extern void setattr_copy(struct inode *inode, const struct iattr *attr);
-
-extern void file_update_time(struct file *file);
-
-extern int generic_show_options(struct seq_file *m, struct dentry *root);
-extern void save_mount_options(struct super_block *sb, char *options);
-extern void replace_mount_options(struct super_block *sb, char *options);
-
-static inline ino_t parent_ino(struct dentry *dentry)
-{
- ino_t res;
-
- /*
- * Don't strictly need d_lock here? If the parent ino could change
- * then surely we'd have a deeper race in the caller?
- */
- spin_lock(&dentry->d_lock);
- res = dentry->d_parent->d_inode->i_ino;
- spin_unlock(&dentry->d_lock);
- return res;
-}
-
-/* Transaction based IO helpers */
-
-/*
- * An argresp is stored in an allocated page and holds the
- * size of the argument or response, along with its content
- */
-struct simple_transaction_argresp {
- ssize_t size;
- char data[0];
-};
-
-#define SIMPLE_TRANSACTION_LIMIT (PAGE_SIZE - sizeof(struct simple_transaction_argresp))
-
-char *simple_transaction_get(struct file *file, const char __user *buf,
- size_t size);
-ssize_t simple_transaction_read(struct file *file, char __user *buf,
- size_t size, loff_t *pos);
-int simple_transaction_release(struct inode *inode, struct file *file);
-
-void simple_transaction_set(struct file *file, size_t n);
-
-/*
- * simple attribute files
- *
- * These attributes behave similar to those in sysfs:
- *
- * Writing to an attribute immediately sets a value, an open file can be
- * written to multiple times.
- *
- * Reading from an attribute creates a buffer from the value that might get
- * read with multiple read calls. When the attribute has been read
- * completely, no further read calls are possible until the file is opened
- * again.
- *
- * All attributes contain a text representation of a numeric value
- * that are accessed with the get() and set() functions.
- */
-#define DEFINE_SIMPLE_ATTRIBUTE(__fops, __get, __set, __fmt) \
-static int __fops ## _open(struct inode *inode, struct file *file) \
-{ \
- __simple_attr_check_format(__fmt, 0ull); \
- return simple_attr_open(inode, file, __get, __set, __fmt); \
-} \
-static const struct file_operations __fops = { \
- .owner = THIS_MODULE, \
- .open = __fops ## _open, \
- .release = simple_attr_release, \
- .read = simple_attr_read, \
- .write = simple_attr_write, \
- .llseek = generic_file_llseek, \
-};
-
-static inline __printf(1, 2)
-void __simple_attr_check_format(const char *fmt, ...)
-{
- /* don't do anything, just let the compiler check the arguments; */
-}
-
-int simple_attr_open(struct inode *inode, struct file *file,
- int (*get)(void *, u64 *), int (*set)(void *, u64),
- const char *fmt);
-int simple_attr_release(struct inode *inode, struct file *file);
-ssize_t simple_attr_read(struct file *file, char __user *buf,
- size_t len, loff_t *ppos);
-ssize_t simple_attr_write(struct file *file, const char __user *buf,
- size_t len, loff_t *ppos);
-
-struct ctl_table;
-int proc_nr_files(struct ctl_table *table, int write,
- void __user *buffer, size_t *lenp, loff_t *ppos);
-int proc_nr_dentry(struct ctl_table *table, int write,
- void __user *buffer, size_t *lenp, loff_t *ppos);
-int proc_nr_inodes(struct ctl_table *table, int write,
- void __user *buffer, size_t *lenp, loff_t *ppos);
-int __init get_filesystem_list(char *buf);
-
-#define __FMODE_EXEC ((__force int) FMODE_EXEC)
-#define __FMODE_NONOTIFY ((__force int) FMODE_NONOTIFY)
-
-#define ACC_MODE(x) ("\004\002\006\006"[(x)&O_ACCMODE])
-#define OPEN_FMODE(flag) ((__force fmode_t)(((flag + 1) & O_ACCMODE) | \
- (flag & __FMODE_NONOTIFY)))
-
-static inline int is_sxid(umode_t mode)
-{
- return (mode & S_ISUID) || ((mode & S_ISGID) && (mode & S_IXGRP));
-}
-
-static inline void inode_has_no_xattr(struct inode *inode)
-{
- if (!is_sxid(inode->i_mode) && (inode->i_sb->s_flags & MS_NOSEC))
- inode->i_flags |= S_NOSEC;
-}
-
-#endif /* __KERNEL__ */
-#endif /* _LINUX_FS_H */
diff --git a/ANDROID_3.4.5/include/linux/fs_enet_pd.h b/ANDROID_3.4.5/include/linux/fs_enet_pd.h
deleted file mode 100644
index 51b79346..00000000
--- a/ANDROID_3.4.5/include/linux/fs_enet_pd.h
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Platform information definitions for the
- * universal Freescale Ethernet driver.
- *
- * Copyright (c) 2003 Intracom S.A.
- * by Pantelis Antoniou <panto@intracom.gr>
- *
- * 2005 (c) MontaVista Software, Inc.
- * Vitaly Bordug <vbordug@ru.mvista.com>
- *
- * This file is licensed under the terms of the GNU General Public License
- * version 2. This program is licensed "as is" without any warranty of any
- * kind, whether express or implied.
- */
-
-#ifndef FS_ENET_PD_H
-#define FS_ENET_PD_H
-
-#include <linux/string.h>
-#include <linux/of_mdio.h>
-#include <asm/types.h>
-
-#define FS_ENET_NAME "fs_enet"
-
-enum fs_id {
- fsid_fec1,
- fsid_fec2,
- fsid_fcc1,
- fsid_fcc2,
- fsid_fcc3,
- fsid_scc1,
- fsid_scc2,
- fsid_scc3,
- fsid_scc4,
-};
-
-#define FS_MAX_INDEX 9
-
-static inline int fs_get_fec_index(enum fs_id id)
-{
- if (id >= fsid_fec1 && id <= fsid_fec2)
- return id - fsid_fec1;
- return -1;
-}
-
-static inline int fs_get_fcc_index(enum fs_id id)
-{
- if (id >= fsid_fcc1 && id <= fsid_fcc3)
- return id - fsid_fcc1;
- return -1;
-}
-
-static inline int fs_get_scc_index(enum fs_id id)
-{
- if (id >= fsid_scc1 && id <= fsid_scc4)
- return id - fsid_scc1;
- return -1;
-}
-
-static inline int fs_fec_index2id(int index)
-{
- int id = fsid_fec1 + index - 1;
- if (id >= fsid_fec1 && id <= fsid_fec2)
- return id;
- return FS_MAX_INDEX;
- }
-
-static inline int fs_fcc_index2id(int index)
-{
- int id = fsid_fcc1 + index - 1;
- if (id >= fsid_fcc1 && id <= fsid_fcc3)
- return id;
- return FS_MAX_INDEX;
-}
-
-static inline int fs_scc_index2id(int index)
-{
- int id = fsid_scc1 + index - 1;
- if (id >= fsid_scc1 && id <= fsid_scc4)
- return id;
- return FS_MAX_INDEX;
-}
-
-enum fs_mii_method {
- fsmii_fixed,
- fsmii_fec,
- fsmii_bitbang,
-};
-
-enum fs_ioport {
- fsiop_porta,
- fsiop_portb,
- fsiop_portc,
- fsiop_portd,
- fsiop_porte,
-};
-
-struct fs_mii_bit {
- u32 offset;
- u8 bit;
- u8 polarity;
-};
-struct fs_mii_bb_platform_info {
- struct fs_mii_bit mdio_dir;
- struct fs_mii_bit mdio_dat;
- struct fs_mii_bit mdc_dat;
- int delay; /* delay in us */
- int irq[32]; /* irqs per phy's */
-};
-
-struct fs_platform_info {
-
- void(*init_ioports)(struct fs_platform_info *);
- /* device specific information */
- int fs_no; /* controller index */
- char fs_type[4]; /* controller type */
-
- u32 cp_page; /* CPM page */
- u32 cp_block; /* CPM sblock */
- u32 cp_command; /* CPM page/sblock/mcn */
-
- u32 clk_trx; /* some stuff for pins & mux configuration*/
- u32 clk_rx;
- u32 clk_tx;
- u32 clk_route;
- u32 clk_mask;
-
- u32 mem_offset;
- u32 dpram_offset;
- u32 fcc_regs_c;
-
- u32 device_flags;
-
- struct device_node *phy_node;
- const struct fs_mii_bus_info *bus_info;
-
- int rx_ring, tx_ring; /* number of buffers on rx */
- __u8 macaddr[6]; /* mac address */
- int rx_copybreak; /* limit we copy small frames */
- int use_napi; /* use NAPI */
- int napi_weight; /* NAPI weight */
-
- int use_rmii; /* use RMII mode */
- int has_phy; /* if the network is phy container as well...*/
-};
-struct fs_mii_fec_platform_info {
- u32 irq[32];
- u32 mii_speed;
-};
-
-static inline int fs_get_id(struct fs_platform_info *fpi)
-{
- if(strstr(fpi->fs_type, "SCC"))
- return fs_scc_index2id(fpi->fs_no);
- if(strstr(fpi->fs_type, "FCC"))
- return fs_fcc_index2id(fpi->fs_no);
- if(strstr(fpi->fs_type, "FEC"))
- return fs_fec_index2id(fpi->fs_no);
- return fpi->fs_no;
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/fs_stack.h b/ANDROID_3.4.5/include/linux/fs_stack.h
deleted file mode 100644
index da317c71..00000000
--- a/ANDROID_3.4.5/include/linux/fs_stack.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef _LINUX_FS_STACK_H
-#define _LINUX_FS_STACK_H
-
-/* This file defines generic functions used primarily by stackable
- * filesystems; none of these functions require i_mutex to be held.
- */
-
-#include <linux/fs.h>
-
-/* externs for fs/stack.c */
-extern void fsstack_copy_attr_all(struct inode *dest, const struct inode *src);
-extern void fsstack_copy_inode_size(struct inode *dst, struct inode *src);
-
-/* inlines */
-static inline void fsstack_copy_attr_atime(struct inode *dest,
- const struct inode *src)
-{
- dest->i_atime = src->i_atime;
-}
-
-static inline void fsstack_copy_attr_times(struct inode *dest,
- const struct inode *src)
-{
- dest->i_atime = src->i_atime;
- dest->i_mtime = src->i_mtime;
- dest->i_ctime = src->i_ctime;
-}
-
-#endif /* _LINUX_FS_STACK_H */
diff --git a/ANDROID_3.4.5/include/linux/fs_struct.h b/ANDROID_3.4.5/include/linux/fs_struct.h
deleted file mode 100644
index 003dc0fd..00000000
--- a/ANDROID_3.4.5/include/linux/fs_struct.h
+++ /dev/null
@@ -1,54 +0,0 @@
-#ifndef _LINUX_FS_STRUCT_H
-#define _LINUX_FS_STRUCT_H
-
-#include <linux/path.h>
-#include <linux/spinlock.h>
-#include <linux/seqlock.h>
-
-struct fs_struct {
- int users;
- spinlock_t lock;
- seqcount_t seq;
- int umask;
- int in_exec;
- struct path root, pwd;
-};
-
-extern struct kmem_cache *fs_cachep;
-
-extern void exit_fs(struct task_struct *);
-extern void set_fs_root(struct fs_struct *, struct path *);
-extern void set_fs_pwd(struct fs_struct *, struct path *);
-extern struct fs_struct *copy_fs_struct(struct fs_struct *);
-extern void free_fs_struct(struct fs_struct *);
-extern void daemonize_fs_struct(void);
-extern int unshare_fs_struct(void);
-
-static inline void get_fs_root(struct fs_struct *fs, struct path *root)
-{
- spin_lock(&fs->lock);
- *root = fs->root;
- path_get(root);
- spin_unlock(&fs->lock);
-}
-
-static inline void get_fs_pwd(struct fs_struct *fs, struct path *pwd)
-{
- spin_lock(&fs->lock);
- *pwd = fs->pwd;
- path_get(pwd);
- spin_unlock(&fs->lock);
-}
-
-static inline void get_fs_root_and_pwd(struct fs_struct *fs, struct path *root,
- struct path *pwd)
-{
- spin_lock(&fs->lock);
- *root = fs->root;
- path_get(root);
- *pwd = fs->pwd;
- path_get(pwd);
- spin_unlock(&fs->lock);
-}
-
-#endif /* _LINUX_FS_STRUCT_H */
diff --git a/ANDROID_3.4.5/include/linux/fs_uart_pd.h b/ANDROID_3.4.5/include/linux/fs_uart_pd.h
deleted file mode 100644
index 36b61ff3..00000000
--- a/ANDROID_3.4.5/include/linux/fs_uart_pd.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Platform information definitions for the CPM Uart driver.
- *
- * 2006 (c) MontaVista Software, Inc.
- * Vitaly Bordug <vbordug@ru.mvista.com>
- *
- * This file is licensed under the terms of the GNU General Public License
- * version 2. This program is licensed "as is" without any warranty of any
- * kind, whether express or implied.
- */
-
-#ifndef FS_UART_PD_H
-#define FS_UART_PD_H
-
-#include <asm/types.h>
-
-enum fs_uart_id {
- fsid_smc1_uart,
- fsid_smc2_uart,
- fsid_scc1_uart,
- fsid_scc2_uart,
- fsid_scc3_uart,
- fsid_scc4_uart,
- fs_uart_nr,
-};
-
-static inline int fs_uart_id_scc2fsid(int id)
-{
- return fsid_scc1_uart + id - 1;
-}
-
-static inline int fs_uart_id_fsid2scc(int id)
-{
- return id - fsid_scc1_uart + 1;
-}
-
-static inline int fs_uart_id_smc2fsid(int id)
-{
- return fsid_smc1_uart + id - 1;
-}
-
-static inline int fs_uart_id_fsid2smc(int id)
-{
- return id - fsid_smc1_uart + 1;
-}
-
-struct fs_uart_platform_info {
- void(*init_ioports)(struct fs_uart_platform_info *);
- /* device specific information */
- int fs_no; /* controller index */
- char fs_type[4]; /* controller type */
- u32 uart_clk;
- u8 tx_num_fifo;
- u8 tx_buf_size;
- u8 rx_num_fifo;
- u8 rx_buf_size;
- u8 brg;
- u8 clk_rx;
- u8 clk_tx;
-};
-
-static inline int fs_uart_get_id(struct fs_uart_platform_info *fpi)
-{
- if(strstr(fpi->fs_type, "SMC"))
- return fs_uart_id_smc2fsid(fpi->fs_no);
- if(strstr(fpi->fs_type, "SCC"))
- return fs_uart_id_scc2fsid(fpi->fs_no);
- return fpi->fs_no;
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/fscache-cache.h b/ANDROID_3.4.5/include/linux/fscache-cache.h
deleted file mode 100644
index ce31408b..00000000
--- a/ANDROID_3.4.5/include/linux/fscache-cache.h
+++ /dev/null
@@ -1,516 +0,0 @@
-/* General filesystem caching backing cache interface
- *
- * Copyright (C) 2004-2007 Red Hat, Inc. All Rights Reserved.
- * Written by David Howells (dhowells@redhat.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.
- *
- * NOTE!!! See:
- *
- * Documentation/filesystems/caching/backend-api.txt
- *
- * for a description of the cache backend interface declared here.
- */
-
-#ifndef _LINUX_FSCACHE_CACHE_H
-#define _LINUX_FSCACHE_CACHE_H
-
-#include <linux/fscache.h>
-#include <linux/sched.h>
-#include <linux/workqueue.h>
-
-#define NR_MAXCACHES BITS_PER_LONG
-
-struct fscache_cache;
-struct fscache_cache_ops;
-struct fscache_object;
-struct fscache_operation;
-
-/*
- * cache tag definition
- */
-struct fscache_cache_tag {
- struct list_head link;
- struct fscache_cache *cache; /* cache referred to by this tag */
- unsigned long flags;
-#define FSCACHE_TAG_RESERVED 0 /* T if tag is reserved for a cache */
- atomic_t usage;
- char name[0]; /* tag name */
-};
-
-/*
- * cache definition
- */
-struct fscache_cache {
- const struct fscache_cache_ops *ops;
- struct fscache_cache_tag *tag; /* tag representing this cache */
- struct kobject *kobj; /* system representation of this cache */
- struct list_head link; /* link in list of caches */
- size_t max_index_size; /* maximum size of index data */
- char identifier[36]; /* cache label */
-
- /* node management */
- struct work_struct op_gc; /* operation garbage collector */
- struct list_head object_list; /* list of data/index objects */
- struct list_head op_gc_list; /* list of ops to be deleted */
- spinlock_t object_list_lock;
- spinlock_t op_gc_list_lock;
- atomic_t object_count; /* no. of live objects in this cache */
- struct fscache_object *fsdef; /* object for the fsdef index */
- unsigned long flags;
-#define FSCACHE_IOERROR 0 /* cache stopped on I/O error */
-#define FSCACHE_CACHE_WITHDRAWN 1 /* cache has been withdrawn */
-};
-
-extern wait_queue_head_t fscache_cache_cleared_wq;
-
-/*
- * operation to be applied to a cache object
- * - retrieval initiation operations are done in the context of the process
- * that issued them, and not in an async thread pool
- */
-typedef void (*fscache_operation_release_t)(struct fscache_operation *op);
-typedef void (*fscache_operation_processor_t)(struct fscache_operation *op);
-
-struct fscache_operation {
- struct work_struct work; /* record for async ops */
- struct list_head pend_link; /* link in object->pending_ops */
- struct fscache_object *object; /* object to be operated upon */
-
- unsigned long flags;
-#define FSCACHE_OP_TYPE 0x000f /* operation type */
-#define FSCACHE_OP_ASYNC 0x0001 /* - async op, processor may sleep for disk */
-#define FSCACHE_OP_MYTHREAD 0x0002 /* - processing is done be issuing thread, not pool */
-#define FSCACHE_OP_WAITING 4 /* cleared when op is woken */
-#define FSCACHE_OP_EXCLUSIVE 5 /* exclusive op, other ops must wait */
-#define FSCACHE_OP_DEAD 6 /* op is now dead */
-#define FSCACHE_OP_DEC_READ_CNT 7 /* decrement object->n_reads on destruction */
-#define FSCACHE_OP_KEEP_FLAGS 0xc0 /* flags to keep when repurposing an op */
-
- atomic_t usage;
- unsigned debug_id; /* debugging ID */
-
- /* operation processor callback
- * - can be NULL if FSCACHE_OP_WAITING is going to be used to perform
- * the op in a non-pool thread */
- fscache_operation_processor_t processor;
-
- /* operation releaser */
- fscache_operation_release_t release;
-};
-
-extern atomic_t fscache_op_debug_id;
-extern void fscache_op_work_func(struct work_struct *work);
-
-extern void fscache_enqueue_operation(struct fscache_operation *);
-extern void fscache_put_operation(struct fscache_operation *);
-
-/**
- * fscache_operation_init - Do basic initialisation of an operation
- * @op: The operation to initialise
- * @release: The release function to assign
- *
- * Do basic initialisation of an operation. The caller must still set flags,
- * object and processor if needed.
- */
-static inline void fscache_operation_init(struct fscache_operation *op,
- fscache_operation_processor_t processor,
- fscache_operation_release_t release)
-{
- INIT_WORK(&op->work, fscache_op_work_func);
- atomic_set(&op->usage, 1);
- op->debug_id = atomic_inc_return(&fscache_op_debug_id);
- op->processor = processor;
- op->release = release;
- INIT_LIST_HEAD(&op->pend_link);
-}
-
-/*
- * data read operation
- */
-struct fscache_retrieval {
- struct fscache_operation op;
- struct address_space *mapping; /* netfs pages */
- fscache_rw_complete_t end_io_func; /* function to call on I/O completion */
- void *context; /* netfs read context (pinned) */
- struct list_head to_do; /* list of things to be done by the backend */
- unsigned long start_time; /* time at which retrieval started */
-};
-
-typedef int (*fscache_page_retrieval_func_t)(struct fscache_retrieval *op,
- struct page *page,
- gfp_t gfp);
-
-typedef int (*fscache_pages_retrieval_func_t)(struct fscache_retrieval *op,
- struct list_head *pages,
- unsigned *nr_pages,
- gfp_t gfp);
-
-/**
- * fscache_get_retrieval - Get an extra reference on a retrieval operation
- * @op: The retrieval operation to get a reference on
- *
- * Get an extra reference on a retrieval operation.
- */
-static inline
-struct fscache_retrieval *fscache_get_retrieval(struct fscache_retrieval *op)
-{
- atomic_inc(&op->op.usage);
- return op;
-}
-
-/**
- * fscache_enqueue_retrieval - Enqueue a retrieval operation for processing
- * @op: The retrieval operation affected
- *
- * Enqueue a retrieval operation for processing by the FS-Cache thread pool.
- */
-static inline void fscache_enqueue_retrieval(struct fscache_retrieval *op)
-{
- fscache_enqueue_operation(&op->op);
-}
-
-/**
- * fscache_put_retrieval - Drop a reference to a retrieval operation
- * @op: The retrieval operation affected
- *
- * Drop a reference to a retrieval operation.
- */
-static inline void fscache_put_retrieval(struct fscache_retrieval *op)
-{
- fscache_put_operation(&op->op);
-}
-
-/*
- * cached page storage work item
- * - used to do three things:
- * - batch writes to the cache
- * - do cache writes asynchronously
- * - defer writes until cache object lookup completion
- */
-struct fscache_storage {
- struct fscache_operation op;
- pgoff_t store_limit; /* don't write more than this */
-};
-
-/*
- * cache operations
- */
-struct fscache_cache_ops {
- /* name of cache provider */
- const char *name;
-
- /* allocate an object record for a cookie */
- struct fscache_object *(*alloc_object)(struct fscache_cache *cache,
- struct fscache_cookie *cookie);
-
- /* look up the object for a cookie
- * - return -ETIMEDOUT to be requeued
- */
- int (*lookup_object)(struct fscache_object *object);
-
- /* finished looking up */
- void (*lookup_complete)(struct fscache_object *object);
-
- /* increment the usage count on this object (may fail if unmounting) */
- struct fscache_object *(*grab_object)(struct fscache_object *object);
-
- /* pin an object in the cache */
- int (*pin_object)(struct fscache_object *object);
-
- /* unpin an object in the cache */
- void (*unpin_object)(struct fscache_object *object);
-
- /* store the updated auxiliary data on an object */
- void (*update_object)(struct fscache_object *object);
-
- /* discard the resources pinned by an object and effect retirement if
- * necessary */
- void (*drop_object)(struct fscache_object *object);
-
- /* dispose of a reference to an object */
- void (*put_object)(struct fscache_object *object);
-
- /* sync a cache */
- void (*sync_cache)(struct fscache_cache *cache);
-
- /* notification that the attributes of a non-index object (such as
- * i_size) have changed */
- int (*attr_changed)(struct fscache_object *object);
-
- /* reserve space for an object's data and associated metadata */
- int (*reserve_space)(struct fscache_object *object, loff_t i_size);
-
- /* request a backing block for a page be read or allocated in the
- * cache */
- fscache_page_retrieval_func_t read_or_alloc_page;
-
- /* request backing blocks for a list of pages be read or allocated in
- * the cache */
- fscache_pages_retrieval_func_t read_or_alloc_pages;
-
- /* request a backing block for a page be allocated in the cache so that
- * it can be written directly */
- fscache_page_retrieval_func_t allocate_page;
-
- /* request backing blocks for pages be allocated in the cache so that
- * they can be written directly */
- fscache_pages_retrieval_func_t allocate_pages;
-
- /* write a page to its backing block in the cache */
- int (*write_page)(struct fscache_storage *op, struct page *page);
-
- /* detach backing block from a page (optional)
- * - must release the cookie lock before returning
- * - may sleep
- */
- void (*uncache_page)(struct fscache_object *object,
- struct page *page);
-
- /* dissociate a cache from all the pages it was backing */
- void (*dissociate_pages)(struct fscache_cache *cache);
-};
-
-/*
- * data file or index object cookie
- * - a file will only appear in one cache
- * - a request to cache a file may or may not be honoured, subject to
- * constraints such as disk space
- * - indices are created on disk just-in-time
- */
-struct fscache_cookie {
- atomic_t usage; /* number of users of this cookie */
- atomic_t n_children; /* number of children of this cookie */
- spinlock_t lock;
- spinlock_t stores_lock; /* lock on page store tree */
- struct hlist_head backing_objects; /* object(s) backing this file/index */
- const struct fscache_cookie_def *def; /* definition */
- struct fscache_cookie *parent; /* parent of this entry */
- void *netfs_data; /* back pointer to netfs */
- struct radix_tree_root stores; /* pages to be stored on this cookie */
-#define FSCACHE_COOKIE_PENDING_TAG 0 /* pages tag: pending write to cache */
-#define FSCACHE_COOKIE_STORING_TAG 1 /* pages tag: writing to cache */
-
- unsigned long flags;
-#define FSCACHE_COOKIE_LOOKING_UP 0 /* T if non-index cookie being looked up still */
-#define FSCACHE_COOKIE_CREATING 1 /* T if non-index object being created still */
-#define FSCACHE_COOKIE_NO_DATA_YET 2 /* T if new object with no cached data yet */
-#define FSCACHE_COOKIE_PENDING_FILL 3 /* T if pending initial fill on object */
-#define FSCACHE_COOKIE_FILLING 4 /* T if filling object incrementally */
-#define FSCACHE_COOKIE_UNAVAILABLE 5 /* T if cookie is unavailable (error, etc) */
-};
-
-extern struct fscache_cookie fscache_fsdef_index;
-
-/*
- * on-disk cache file or index handle
- */
-struct fscache_object {
- enum fscache_object_state {
- FSCACHE_OBJECT_INIT, /* object in initial unbound state */
- FSCACHE_OBJECT_LOOKING_UP, /* looking up object */
- FSCACHE_OBJECT_CREATING, /* creating object */
-
- /* active states */
- FSCACHE_OBJECT_AVAILABLE, /* cleaning up object after creation */
- FSCACHE_OBJECT_ACTIVE, /* object is usable */
- FSCACHE_OBJECT_UPDATING, /* object is updating */
-
- /* terminal states */
- FSCACHE_OBJECT_DYING, /* object waiting for accessors to finish */
- FSCACHE_OBJECT_LC_DYING, /* object cleaning up after lookup/create */
- FSCACHE_OBJECT_ABORT_INIT, /* abort the init state */
- FSCACHE_OBJECT_RELEASING, /* releasing object */
- FSCACHE_OBJECT_RECYCLING, /* retiring object */
- FSCACHE_OBJECT_WITHDRAWING, /* withdrawing object */
- FSCACHE_OBJECT_DEAD, /* object is now dead */
- FSCACHE_OBJECT__NSTATES
- } state;
-
- int debug_id; /* debugging ID */
- int n_children; /* number of child objects */
- int n_ops; /* number of ops outstanding on object */
- int n_obj_ops; /* number of object ops outstanding on object */
- int n_in_progress; /* number of ops in progress */
- int n_exclusive; /* number of exclusive ops queued */
- atomic_t n_reads; /* number of read ops in progress */
- spinlock_t lock; /* state and operations lock */
-
- unsigned long lookup_jif; /* time at which lookup started */
- unsigned long event_mask; /* events this object is interested in */
- unsigned long events; /* events to be processed by this object
- * (order is important - using fls) */
-#define FSCACHE_OBJECT_EV_REQUEUE 0 /* T if object should be requeued */
-#define FSCACHE_OBJECT_EV_UPDATE 1 /* T if object should be updated */
-#define FSCACHE_OBJECT_EV_CLEARED 2 /* T if accessors all gone */
-#define FSCACHE_OBJECT_EV_ERROR 3 /* T if fatal error occurred during processing */
-#define FSCACHE_OBJECT_EV_RELEASE 4 /* T if netfs requested object release */
-#define FSCACHE_OBJECT_EV_RETIRE 5 /* T if netfs requested object retirement */
-#define FSCACHE_OBJECT_EV_WITHDRAW 6 /* T if cache requested object withdrawal */
-#define FSCACHE_OBJECT_EVENTS_MASK 0x7f /* mask of all events*/
-
- unsigned long flags;
-#define FSCACHE_OBJECT_LOCK 0 /* T if object is busy being processed */
-#define FSCACHE_OBJECT_PENDING_WRITE 1 /* T if object has pending write */
-#define FSCACHE_OBJECT_WAITING 2 /* T if object is waiting on its parent */
-
- struct list_head cache_link; /* link in cache->object_list */
- struct hlist_node cookie_link; /* link in cookie->backing_objects */
- struct fscache_cache *cache; /* cache that supplied this object */
- struct fscache_cookie *cookie; /* netfs's file/index object */
- struct fscache_object *parent; /* parent object */
- struct work_struct work; /* attention scheduling record */
- struct list_head dependents; /* FIFO of dependent objects */
- struct list_head dep_link; /* link in parent's dependents list */
- struct list_head pending_ops; /* unstarted operations on this object */
-#ifdef CONFIG_FSCACHE_OBJECT_LIST
- struct rb_node objlist_link; /* link in global object list */
-#endif
- pgoff_t store_limit; /* current storage limit */
- loff_t store_limit_l; /* current storage limit */
-};
-
-extern const char *fscache_object_states[];
-
-#define fscache_object_is_active(obj) \
- (!test_bit(FSCACHE_IOERROR, &(obj)->cache->flags) && \
- (obj)->state >= FSCACHE_OBJECT_AVAILABLE && \
- (obj)->state < FSCACHE_OBJECT_DYING)
-
-#define fscache_object_is_dead(obj) \
- (test_bit(FSCACHE_IOERROR, &(obj)->cache->flags) && \
- (obj)->state >= FSCACHE_OBJECT_DYING)
-
-extern void fscache_object_work_func(struct work_struct *work);
-
-/**
- * fscache_object_init - Initialise a cache object description
- * @object: Object description
- *
- * Initialise a cache object description to its basic values.
- *
- * See Documentation/filesystems/caching/backend-api.txt for a complete
- * description.
- */
-static inline
-void fscache_object_init(struct fscache_object *object,
- struct fscache_cookie *cookie,
- struct fscache_cache *cache)
-{
- atomic_inc(&cache->object_count);
-
- object->state = FSCACHE_OBJECT_INIT;
- spin_lock_init(&object->lock);
- INIT_LIST_HEAD(&object->cache_link);
- INIT_HLIST_NODE(&object->cookie_link);
- INIT_WORK(&object->work, fscache_object_work_func);
- INIT_LIST_HEAD(&object->dependents);
- INIT_LIST_HEAD(&object->dep_link);
- INIT_LIST_HEAD(&object->pending_ops);
- object->n_children = 0;
- object->n_ops = object->n_in_progress = object->n_exclusive = 0;
- object->events = object->event_mask = 0;
- object->flags = 0;
- object->store_limit = 0;
- object->store_limit_l = 0;
- object->cache = cache;
- object->cookie = cookie;
- object->parent = NULL;
-}
-
-extern void fscache_object_lookup_negative(struct fscache_object *object);
-extern void fscache_obtained_object(struct fscache_object *object);
-
-#ifdef CONFIG_FSCACHE_OBJECT_LIST
-extern void fscache_object_destroy(struct fscache_object *object);
-#else
-#define fscache_object_destroy(object) do {} while(0)
-#endif
-
-/**
- * fscache_object_destroyed - Note destruction of an object in a cache
- * @cache: The cache from which the object came
- *
- * Note the destruction and deallocation of an object record in a cache.
- */
-static inline void fscache_object_destroyed(struct fscache_cache *cache)
-{
- if (atomic_dec_and_test(&cache->object_count))
- wake_up_all(&fscache_cache_cleared_wq);
-}
-
-/**
- * fscache_object_lookup_error - Note an object encountered an error
- * @object: The object on which the error was encountered
- *
- * Note that an object encountered a fatal error (usually an I/O error) and
- * that it should be withdrawn as soon as possible.
- */
-static inline void fscache_object_lookup_error(struct fscache_object *object)
-{
- set_bit(FSCACHE_OBJECT_EV_ERROR, &object->events);
-}
-
-/**
- * fscache_set_store_limit - Set the maximum size to be stored in an object
- * @object: The object to set the maximum on
- * @i_size: The limit to set in bytes
- *
- * Set the maximum size an object is permitted to reach, implying the highest
- * byte that may be written. Intended to be called by the attr_changed() op.
- *
- * See Documentation/filesystems/caching/backend-api.txt for a complete
- * description.
- */
-static inline
-void fscache_set_store_limit(struct fscache_object *object, loff_t i_size)
-{
- object->store_limit_l = i_size;
- object->store_limit = i_size >> PAGE_SHIFT;
- if (i_size & ~PAGE_MASK)
- object->store_limit++;
-}
-
-/**
- * fscache_end_io - End a retrieval operation on a page
- * @op: The FS-Cache operation covering the retrieval
- * @page: The page that was to be fetched
- * @error: The error code (0 if successful)
- *
- * Note the end of an operation to retrieve a page, as covered by a particular
- * operation record.
- */
-static inline void fscache_end_io(struct fscache_retrieval *op,
- struct page *page, int error)
-{
- op->end_io_func(page, op->context, error);
-}
-
-/*
- * out-of-line cache backend functions
- */
-extern __printf(3, 4)
-void fscache_init_cache(struct fscache_cache *cache,
- const struct fscache_cache_ops *ops,
- const char *idfmt, ...);
-
-extern int fscache_add_cache(struct fscache_cache *cache,
- struct fscache_object *fsdef,
- const char *tagname);
-extern void fscache_withdraw_cache(struct fscache_cache *cache);
-
-extern void fscache_io_error(struct fscache_cache *cache);
-
-extern void fscache_mark_pages_cached(struct fscache_retrieval *op,
- struct pagevec *pagevec);
-
-extern bool fscache_object_sleep_till_congested(signed long *timeoutp);
-
-extern enum fscache_checkaux fscache_check_aux(struct fscache_object *object,
- const void *data,
- uint16_t datalen);
-
-#endif /* _LINUX_FSCACHE_CACHE_H */
diff --git a/ANDROID_3.4.5/include/linux/fscache.h b/ANDROID_3.4.5/include/linux/fscache.h
deleted file mode 100644
index 9ec20dec..00000000
--- a/ANDROID_3.4.5/include/linux/fscache.h
+++ /dev/null
@@ -1,667 +0,0 @@
-/* General filesystem caching interface
- *
- * Copyright (C) 2004-2007 Red Hat, Inc. All Rights Reserved.
- * Written by David Howells (dhowells@redhat.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.
- *
- * NOTE!!! See:
- *
- * Documentation/filesystems/caching/netfs-api.txt
- *
- * for a description of the network filesystem interface declared here.
- */
-
-#ifndef _LINUX_FSCACHE_H
-#define _LINUX_FSCACHE_H
-
-#include <linux/fs.h>
-#include <linux/list.h>
-#include <linux/pagemap.h>
-#include <linux/pagevec.h>
-
-#if defined(CONFIG_FSCACHE) || defined(CONFIG_FSCACHE_MODULE)
-#define fscache_available() (1)
-#define fscache_cookie_valid(cookie) (cookie)
-#else
-#define fscache_available() (0)
-#define fscache_cookie_valid(cookie) (0)
-#endif
-
-
-/*
- * overload PG_private_2 to give us PG_fscache - this is used to indicate that
- * a page is currently backed by a local disk cache
- */
-#define PageFsCache(page) PagePrivate2((page))
-#define SetPageFsCache(page) SetPagePrivate2((page))
-#define ClearPageFsCache(page) ClearPagePrivate2((page))
-#define TestSetPageFsCache(page) TestSetPagePrivate2((page))
-#define TestClearPageFsCache(page) TestClearPagePrivate2((page))
-
-/* pattern used to fill dead space in an index entry */
-#define FSCACHE_INDEX_DEADFILL_PATTERN 0x79
-
-struct pagevec;
-struct fscache_cache_tag;
-struct fscache_cookie;
-struct fscache_netfs;
-
-typedef void (*fscache_rw_complete_t)(struct page *page,
- void *context,
- int error);
-
-/* result of index entry consultation */
-enum fscache_checkaux {
- FSCACHE_CHECKAUX_OKAY, /* entry okay as is */
- FSCACHE_CHECKAUX_NEEDS_UPDATE, /* entry requires update */
- FSCACHE_CHECKAUX_OBSOLETE, /* entry requires deletion */
-};
-
-/*
- * fscache cookie definition
- */
-struct fscache_cookie_def {
- /* name of cookie type */
- char name[16];
-
- /* cookie type */
- uint8_t type;
-#define FSCACHE_COOKIE_TYPE_INDEX 0
-#define FSCACHE_COOKIE_TYPE_DATAFILE 1
-
- /* select the cache into which to insert an entry in this index
- * - optional
- * - should return a cache identifier or NULL to cause the cache to be
- * inherited from the parent if possible or the first cache picked
- * for a non-index file if not
- */
- struct fscache_cache_tag *(*select_cache)(
- const void *parent_netfs_data,
- const void *cookie_netfs_data);
-
- /* get an index key
- * - should store the key data in the buffer
- * - should return the amount of data stored
- * - not permitted to return an error
- * - the netfs data from the cookie being used as the source is
- * presented
- */
- uint16_t (*get_key)(const void *cookie_netfs_data,
- void *buffer,
- uint16_t bufmax);
-
- /* get certain file attributes from the netfs data
- * - this function can be absent for an index
- * - not permitted to return an error
- * - the netfs data from the cookie being used as the source is
- * presented
- */
- void (*get_attr)(const void *cookie_netfs_data, uint64_t *size);
-
- /* get the auxiliary data from netfs data
- * - this function can be absent if the index carries no state data
- * - should store the auxiliary data in the buffer
- * - should return the amount of amount stored
- * - not permitted to return an error
- * - the netfs data from the cookie being used as the source is
- * presented
- */
- uint16_t (*get_aux)(const void *cookie_netfs_data,
- void *buffer,
- uint16_t bufmax);
-
- /* consult the netfs about the state of an object
- * - this function can be absent if the index carries no state data
- * - the netfs data from the cookie being used as the target is
- * presented, as is the auxiliary data
- */
- enum fscache_checkaux (*check_aux)(void *cookie_netfs_data,
- const void *data,
- uint16_t datalen);
-
- /* get an extra reference on a read context
- * - this function can be absent if the completion function doesn't
- * require a context
- */
- void (*get_context)(void *cookie_netfs_data, void *context);
-
- /* release an extra reference on a read context
- * - this function can be absent if the completion function doesn't
- * require a context
- */
- void (*put_context)(void *cookie_netfs_data, void *context);
-
- /* indicate pages that now have cache metadata retained
- * - this function should mark the specified pages as now being cached
- * - the pages will have been marked with PG_fscache before this is
- * called, so this is optional
- */
- void (*mark_pages_cached)(void *cookie_netfs_data,
- struct address_space *mapping,
- struct pagevec *cached_pvec);
-
- /* indicate the cookie is no longer cached
- * - this function is called when the backing store currently caching
- * a cookie is removed
- * - the netfs should use this to clean up any markers indicating
- * cached pages
- * - this is mandatory for any object that may have data
- */
- void (*now_uncached)(void *cookie_netfs_data);
-};
-
-/*
- * fscache cached network filesystem type
- * - name, version and ops must be filled in before registration
- * - all other fields will be set during registration
- */
-struct fscache_netfs {
- uint32_t version; /* indexing version */
- const char *name; /* filesystem name */
- struct fscache_cookie *primary_index;
- struct list_head link; /* internal link */
-};
-
-/*
- * slow-path functions for when there is actually caching available, and the
- * netfs does actually have a valid token
- * - these are not to be called directly
- * - these are undefined symbols when FS-Cache is not configured and the
- * optimiser takes care of not using them
- */
-extern int __fscache_register_netfs(struct fscache_netfs *);
-extern void __fscache_unregister_netfs(struct fscache_netfs *);
-extern struct fscache_cache_tag *__fscache_lookup_cache_tag(const char *);
-extern void __fscache_release_cache_tag(struct fscache_cache_tag *);
-
-extern struct fscache_cookie *__fscache_acquire_cookie(
- struct fscache_cookie *,
- const struct fscache_cookie_def *,
- void *);
-extern void __fscache_relinquish_cookie(struct fscache_cookie *, int);
-extern void __fscache_update_cookie(struct fscache_cookie *);
-extern int __fscache_attr_changed(struct fscache_cookie *);
-extern int __fscache_read_or_alloc_page(struct fscache_cookie *,
- struct page *,
- fscache_rw_complete_t,
- void *,
- gfp_t);
-extern int __fscache_read_or_alloc_pages(struct fscache_cookie *,
- struct address_space *,
- struct list_head *,
- unsigned *,
- fscache_rw_complete_t,
- void *,
- gfp_t);
-extern int __fscache_alloc_page(struct fscache_cookie *, struct page *, gfp_t);
-extern int __fscache_write_page(struct fscache_cookie *, struct page *, gfp_t);
-extern void __fscache_uncache_page(struct fscache_cookie *, struct page *);
-extern bool __fscache_check_page_write(struct fscache_cookie *, struct page *);
-extern void __fscache_wait_on_page_write(struct fscache_cookie *, struct page *);
-extern bool __fscache_maybe_release_page(struct fscache_cookie *, struct page *,
- gfp_t);
-extern void __fscache_uncache_all_inode_pages(struct fscache_cookie *,
- struct inode *);
-
-/**
- * fscache_register_netfs - Register a filesystem as desiring caching services
- * @netfs: The description of the filesystem
- *
- * Register a filesystem as desiring caching services if they're available.
- *
- * See Documentation/filesystems/caching/netfs-api.txt for a complete
- * description.
- */
-static inline
-int fscache_register_netfs(struct fscache_netfs *netfs)
-{
- if (fscache_available())
- return __fscache_register_netfs(netfs);
- else
- return 0;
-}
-
-/**
- * fscache_unregister_netfs - Indicate that a filesystem no longer desires
- * caching services
- * @netfs: The description of the filesystem
- *
- * Indicate that a filesystem no longer desires caching services for the
- * moment.
- *
- * See Documentation/filesystems/caching/netfs-api.txt for a complete
- * description.
- */
-static inline
-void fscache_unregister_netfs(struct fscache_netfs *netfs)
-{
- if (fscache_available())
- __fscache_unregister_netfs(netfs);
-}
-
-/**
- * fscache_lookup_cache_tag - Look up a cache tag
- * @name: The name of the tag to search for
- *
- * Acquire a specific cache referral tag that can be used to select a specific
- * cache in which to cache an index.
- *
- * See Documentation/filesystems/caching/netfs-api.txt for a complete
- * description.
- */
-static inline
-struct fscache_cache_tag *fscache_lookup_cache_tag(const char *name)
-{
- if (fscache_available())
- return __fscache_lookup_cache_tag(name);
- else
- return NULL;
-}
-
-/**
- * fscache_release_cache_tag - Release a cache tag
- * @tag: The tag to release
- *
- * Release a reference to a cache referral tag previously looked up.
- *
- * See Documentation/filesystems/caching/netfs-api.txt for a complete
- * description.
- */
-static inline
-void fscache_release_cache_tag(struct fscache_cache_tag *tag)
-{
- if (fscache_available())
- __fscache_release_cache_tag(tag);
-}
-
-/**
- * fscache_acquire_cookie - Acquire a cookie to represent a cache object
- * @parent: The cookie that's to be the parent of this one
- * @def: A description of the cache object, including callback operations
- * @netfs_data: An arbitrary piece of data to be kept in the cookie to
- * represent the cache object to the netfs
- *
- * This function is used to inform FS-Cache about part of an index hierarchy
- * that can be used to locate files. This is done by requesting a cookie for
- * each index in the path to the file.
- *
- * See Documentation/filesystems/caching/netfs-api.txt for a complete
- * description.
- */
-static inline
-struct fscache_cookie *fscache_acquire_cookie(
- struct fscache_cookie *parent,
- const struct fscache_cookie_def *def,
- void *netfs_data)
-{
- if (fscache_cookie_valid(parent))
- return __fscache_acquire_cookie(parent, def, netfs_data);
- else
- return NULL;
-}
-
-/**
- * fscache_relinquish_cookie - Return the cookie to the cache, maybe discarding
- * it
- * @cookie: The cookie being returned
- * @retire: True if the cache object the cookie represents is to be discarded
- *
- * This function returns a cookie to the cache, forcibly discarding the
- * associated cache object if retire is set to true.
- *
- * See Documentation/filesystems/caching/netfs-api.txt for a complete
- * description.
- */
-static inline
-void fscache_relinquish_cookie(struct fscache_cookie *cookie, int retire)
-{
- if (fscache_cookie_valid(cookie))
- __fscache_relinquish_cookie(cookie, retire);
-}
-
-/**
- * fscache_update_cookie - Request that a cache object be updated
- * @cookie: The cookie representing the cache object
- *
- * Request an update of the index data for the cache object associated with the
- * cookie.
- *
- * See Documentation/filesystems/caching/netfs-api.txt for a complete
- * description.
- */
-static inline
-void fscache_update_cookie(struct fscache_cookie *cookie)
-{
- if (fscache_cookie_valid(cookie))
- __fscache_update_cookie(cookie);
-}
-
-/**
- * fscache_pin_cookie - Pin a data-storage cache object in its cache
- * @cookie: The cookie representing the cache object
- *
- * Permit data-storage cache objects to be pinned in the cache.
- *
- * See Documentation/filesystems/caching/netfs-api.txt for a complete
- * description.
- */
-static inline
-int fscache_pin_cookie(struct fscache_cookie *cookie)
-{
- return -ENOBUFS;
-}
-
-/**
- * fscache_pin_cookie - Unpin a data-storage cache object in its cache
- * @cookie: The cookie representing the cache object
- *
- * Permit data-storage cache objects to be unpinned from the cache.
- *
- * See Documentation/filesystems/caching/netfs-api.txt for a complete
- * description.
- */
-static inline
-void fscache_unpin_cookie(struct fscache_cookie *cookie)
-{
-}
-
-/**
- * fscache_attr_changed - Notify cache that an object's attributes changed
- * @cookie: The cookie representing the cache object
- *
- * Send a notification to the cache indicating that an object's attributes have
- * changed. This includes the data size. These attributes will be obtained
- * through the get_attr() cookie definition op.
- *
- * See Documentation/filesystems/caching/netfs-api.txt for a complete
- * description.
- */
-static inline
-int fscache_attr_changed(struct fscache_cookie *cookie)
-{
- if (fscache_cookie_valid(cookie))
- return __fscache_attr_changed(cookie);
- else
- return -ENOBUFS;
-}
-
-/**
- * fscache_reserve_space - Reserve data space for a cached object
- * @cookie: The cookie representing the cache object
- * @i_size: The amount of space to be reserved
- *
- * Reserve an amount of space in the cache for the cache object attached to a
- * cookie so that a write to that object within the space can always be
- * honoured.
- *
- * See Documentation/filesystems/caching/netfs-api.txt for a complete
- * description.
- */
-static inline
-int fscache_reserve_space(struct fscache_cookie *cookie, loff_t size)
-{
- return -ENOBUFS;
-}
-
-/**
- * fscache_read_or_alloc_page - Read a page from the cache or allocate a block
- * in which to store it
- * @cookie: The cookie representing the cache object
- * @page: The netfs page to fill if possible
- * @end_io_func: The callback to invoke when and if the page is filled
- * @context: An arbitrary piece of data to pass on to end_io_func()
- * @gfp: The conditions under which memory allocation should be made
- *
- * Read a page from the cache, or if that's not possible make a potential
- * one-block reservation in the cache into which the page may be stored once
- * fetched from the server.
- *
- * If the page is not backed by the cache object, or if it there's some reason
- * it can't be, -ENOBUFS will be returned and nothing more will be done for
- * that page.
- *
- * Else, if that page is backed by the cache, a read will be initiated directly
- * to the netfs's page and 0 will be returned by this function. The
- * end_io_func() callback will be invoked when the operation terminates on a
- * completion or failure. Note that the callback may be invoked before the
- * return.
- *
- * Else, if the page is unbacked, -ENODATA is returned and a block may have
- * been allocated in the cache.
- *
- * See Documentation/filesystems/caching/netfs-api.txt for a complete
- * description.
- */
-static inline
-int fscache_read_or_alloc_page(struct fscache_cookie *cookie,
- struct page *page,
- fscache_rw_complete_t end_io_func,
- void *context,
- gfp_t gfp)
-{
- if (fscache_cookie_valid(cookie))
- return __fscache_read_or_alloc_page(cookie, page, end_io_func,
- context, gfp);
- else
- return -ENOBUFS;
-}
-
-/**
- * fscache_read_or_alloc_pages - Read pages from the cache and/or allocate
- * blocks in which to store them
- * @cookie: The cookie representing the cache object
- * @mapping: The netfs inode mapping to which the pages will be attached
- * @pages: A list of potential netfs pages to be filled
- * @nr_pages: Number of pages to be read and/or allocated
- * @end_io_func: The callback to invoke when and if each page is filled
- * @context: An arbitrary piece of data to pass on to end_io_func()
- * @gfp: The conditions under which memory allocation should be made
- *
- * Read a set of pages from the cache, or if that's not possible, attempt to
- * make a potential one-block reservation for each page in the cache into which
- * that page may be stored once fetched from the server.
- *
- * If some pages are not backed by the cache object, or if it there's some
- * reason they can't be, -ENOBUFS will be returned and nothing more will be
- * done for that pages.
- *
- * Else, if some of the pages are backed by the cache, a read will be initiated
- * directly to the netfs's page and 0 will be returned by this function. The
- * end_io_func() callback will be invoked when the operation terminates on a
- * completion or failure. Note that the callback may be invoked before the
- * return.
- *
- * Else, if a page is unbacked, -ENODATA is returned and a block may have
- * been allocated in the cache.
- *
- * Because the function may want to return all of -ENOBUFS, -ENODATA and 0 in
- * regard to different pages, the return values are prioritised in that order.
- * Any pages submitted for reading are removed from the pages list.
- *
- * See Documentation/filesystems/caching/netfs-api.txt for a complete
- * description.
- */
-static inline
-int fscache_read_or_alloc_pages(struct fscache_cookie *cookie,
- struct address_space *mapping,
- struct list_head *pages,
- unsigned *nr_pages,
- fscache_rw_complete_t end_io_func,
- void *context,
- gfp_t gfp)
-{
- if (fscache_cookie_valid(cookie))
- return __fscache_read_or_alloc_pages(cookie, mapping, pages,
- nr_pages, end_io_func,
- context, gfp);
- else
- return -ENOBUFS;
-}
-
-/**
- * fscache_alloc_page - Allocate a block in which to store a page
- * @cookie: The cookie representing the cache object
- * @page: The netfs page to allocate a page for
- * @gfp: The conditions under which memory allocation should be made
- *
- * Request Allocation a block in the cache in which to store a netfs page
- * without retrieving any contents from the cache.
- *
- * If the page is not backed by a file then -ENOBUFS will be returned and
- * nothing more will be done, and no reservation will be made.
- *
- * Else, a block will be allocated if one wasn't already, and 0 will be
- * returned
- *
- * See Documentation/filesystems/caching/netfs-api.txt for a complete
- * description.
- */
-static inline
-int fscache_alloc_page(struct fscache_cookie *cookie,
- struct page *page,
- gfp_t gfp)
-{
- if (fscache_cookie_valid(cookie))
- return __fscache_alloc_page(cookie, page, gfp);
- else
- return -ENOBUFS;
-}
-
-/**
- * fscache_write_page - Request storage of a page in the cache
- * @cookie: The cookie representing the cache object
- * @page: The netfs page to store
- * @gfp: The conditions under which memory allocation should be made
- *
- * Request the contents of the netfs page be written into the cache. This
- * request may be ignored if no cache block is currently allocated, in which
- * case it will return -ENOBUFS.
- *
- * If a cache block was already allocated, a write will be initiated and 0 will
- * be returned. The PG_fscache_write page bit is set immediately and will then
- * be cleared at the completion of the write to indicate the success or failure
- * of the operation. Note that the completion may happen before the return.
- *
- * See Documentation/filesystems/caching/netfs-api.txt for a complete
- * description.
- */
-static inline
-int fscache_write_page(struct fscache_cookie *cookie,
- struct page *page,
- gfp_t gfp)
-{
- if (fscache_cookie_valid(cookie))
- return __fscache_write_page(cookie, page, gfp);
- else
- return -ENOBUFS;
-}
-
-/**
- * fscache_uncache_page - Indicate that caching is no longer required on a page
- * @cookie: The cookie representing the cache object
- * @page: The netfs page that was being cached.
- *
- * Tell the cache that we no longer want a page to be cached and that it should
- * remove any knowledge of the netfs page it may have.
- *
- * Note that this cannot cancel any outstanding I/O operations between this
- * page and the cache.
- *
- * See Documentation/filesystems/caching/netfs-api.txt for a complete
- * description.
- */
-static inline
-void fscache_uncache_page(struct fscache_cookie *cookie,
- struct page *page)
-{
- if (fscache_cookie_valid(cookie))
- __fscache_uncache_page(cookie, page);
-}
-
-/**
- * fscache_check_page_write - Ask if a page is being writing to the cache
- * @cookie: The cookie representing the cache object
- * @page: The netfs page that is being cached.
- *
- * Ask the cache if a page is being written to the cache.
- *
- * See Documentation/filesystems/caching/netfs-api.txt for a complete
- * description.
- */
-static inline
-bool fscache_check_page_write(struct fscache_cookie *cookie,
- struct page *page)
-{
- if (fscache_cookie_valid(cookie))
- return __fscache_check_page_write(cookie, page);
- return false;
-}
-
-/**
- * fscache_wait_on_page_write - Wait for a page to complete writing to the cache
- * @cookie: The cookie representing the cache object
- * @page: The netfs page that is being cached.
- *
- * Ask the cache to wake us up when a page is no longer being written to the
- * cache.
- *
- * See Documentation/filesystems/caching/netfs-api.txt for a complete
- * description.
- */
-static inline
-void fscache_wait_on_page_write(struct fscache_cookie *cookie,
- struct page *page)
-{
- if (fscache_cookie_valid(cookie))
- __fscache_wait_on_page_write(cookie, page);
-}
-
-/**
- * fscache_maybe_release_page - Consider releasing a page, cancelling a store
- * @cookie: The cookie representing the cache object
- * @page: The netfs page that is being cached.
- * @gfp: The gfp flags passed to releasepage()
- *
- * Consider releasing a page for the vmscan algorithm, on behalf of the netfs's
- * releasepage() call. A storage request on the page may cancelled if it is
- * not currently being processed.
- *
- * The function returns true if the page no longer has a storage request on it,
- * and false if a storage request is left in place. If true is returned, the
- * page will have been passed to fscache_uncache_page(). If false is returned
- * the page cannot be freed yet.
- */
-static inline
-bool fscache_maybe_release_page(struct fscache_cookie *cookie,
- struct page *page,
- gfp_t gfp)
-{
- if (fscache_cookie_valid(cookie) && PageFsCache(page))
- return __fscache_maybe_release_page(cookie, page, gfp);
- return false;
-}
-
-/**
- * fscache_uncache_all_inode_pages - Uncache all an inode's pages
- * @cookie: The cookie representing the inode's cache object.
- * @inode: The inode to uncache pages from.
- *
- * Uncache all the pages in an inode that are marked PG_fscache, assuming them
- * to be associated with the given cookie.
- *
- * This function may sleep. It will wait for pages that are being written out
- * and will wait whilst the PG_fscache mark is removed by the cache.
- */
-static inline
-void fscache_uncache_all_inode_pages(struct fscache_cookie *cookie,
- struct inode *inode)
-{
- if (fscache_cookie_valid(cookie))
- __fscache_uncache_all_inode_pages(cookie, inode);
-}
-
-#endif /* _LINUX_FSCACHE_H */
diff --git a/ANDROID_3.4.5/include/linux/fsl-diu-fb.h b/ANDROID_3.4.5/include/linux/fsl-diu-fb.h
deleted file mode 100644
index 11c16a1f..00000000
--- a/ANDROID_3.4.5/include/linux/fsl-diu-fb.h
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Copyright 2008 Freescale Semiconductor, Inc. All Rights Reserved.
- *
- * Freescale DIU Frame Buffer device driver
- *
- * Authors: Hongjun Chen <hong-jun.chen@freescale.com>
- * Paul Widmer <paul.widmer@freescale.com>
- * Srikanth Srinivasan <srikanth.srinivasan@freescale.com>
- * York Sun <yorksun@freescale.com>
- *
- * Based on imxfb.c Copyright (C) 2004 S.Hauer, Pengutronix
- *
- * 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 __FSL_DIU_FB_H__
-#define __FSL_DIU_FB_H__
-
-#include <linux/types.h>
-
-struct mfb_chroma_key {
- int enable;
- __u8 red_max;
- __u8 green_max;
- __u8 blue_max;
- __u8 red_min;
- __u8 green_min;
- __u8 blue_min;
-};
-
-struct aoi_display_offset {
- __s32 x_aoi_d;
- __s32 y_aoi_d;
-};
-
-#define MFB_SET_CHROMA_KEY _IOW('M', 1, struct mfb_chroma_key)
-#define MFB_SET_BRIGHTNESS _IOW('M', 3, __u8)
-#define MFB_SET_ALPHA _IOW('M', 0, __u8)
-#define MFB_GET_ALPHA _IOR('M', 0, __u8)
-#define MFB_SET_AOID _IOW('M', 4, struct aoi_display_offset)
-#define MFB_GET_AOID _IOR('M', 4, struct aoi_display_offset)
-#define MFB_SET_PIXFMT _IOW('M', 8, __u32)
-#define MFB_GET_PIXFMT _IOR('M', 8, __u32)
-
-/*
- * The original definitions of MFB_SET_PIXFMT and MFB_GET_PIXFMT used the
- * wrong value for 'size' field of the ioctl. The current macros above use the
- * right size, but we still need to provide backwards compatibility, at least
- * for a while.
-*/
-#define MFB_SET_PIXFMT_OLD 0x80014d08
-#define MFB_GET_PIXFMT_OLD 0x40014d08
-
-#ifdef __KERNEL__
-
-/*
- * These are the fields of area descriptor(in DDR memory) for every plane
- */
-struct diu_ad {
- /* Word 0(32-bit) in DDR memory */
-/* __u16 comp; */
-/* __u16 pixel_s:2; */
-/* __u16 pallete:1; */
-/* __u16 red_c:2; */
-/* __u16 green_c:2; */
-/* __u16 blue_c:2; */
-/* __u16 alpha_c:3; */
-/* __u16 byte_f:1; */
-/* __u16 res0:3; */
-
- __be32 pix_fmt; /* hard coding pixel format */
-
- /* Word 1(32-bit) in DDR memory */
- __le32 addr;
-
- /* Word 2(32-bit) in DDR memory */
-/* __u32 delta_xs:11; */
-/* __u32 res1:1; */
-/* __u32 delta_ys:11; */
-/* __u32 res2:1; */
-/* __u32 g_alpha:8; */
- __le32 src_size_g_alpha;
-
- /* Word 3(32-bit) in DDR memory */
-/* __u32 delta_xi:11; */
-/* __u32 res3:5; */
-/* __u32 delta_yi:11; */
-/* __u32 res4:3; */
-/* __u32 flip:2; */
- __le32 aoi_size;
-
- /* Word 4(32-bit) in DDR memory */
- /*__u32 offset_xi:11;
- __u32 res5:5;
- __u32 offset_yi:11;
- __u32 res6:5;
- */
- __le32 offset_xyi;
-
- /* Word 5(32-bit) in DDR memory */
- /*__u32 offset_xd:11;
- __u32 res7:5;
- __u32 offset_yd:11;
- __u32 res8:5; */
- __le32 offset_xyd;
-
-
- /* Word 6(32-bit) in DDR memory */
- __u8 ckmax_r;
- __u8 ckmax_g;
- __u8 ckmax_b;
- __u8 res9;
-
- /* Word 7(32-bit) in DDR memory */
- __u8 ckmin_r;
- __u8 ckmin_g;
- __u8 ckmin_b;
- __u8 res10;
-/* __u32 res10:8; */
-
- /* Word 8(32-bit) in DDR memory */
- __le32 next_ad;
-
- /* Word 9(32-bit) in DDR memory, just for 64-bit aligned */
- __u32 paddr;
-} __attribute__ ((packed));
-
-/* DIU register map */
-struct diu {
- __be32 desc[3];
- __be32 gamma;
- __be32 pallete;
- __be32 cursor;
- __be32 curs_pos;
- __be32 diu_mode;
- __be32 bgnd;
- __be32 bgnd_wb;
- __be32 disp_size;
- __be32 wb_size;
- __be32 wb_mem_addr;
- __be32 hsyn_para;
- __be32 vsyn_para;
- __be32 syn_pol;
- __be32 thresholds;
- __be32 int_status;
- __be32 int_mask;
- __be32 colorbar[8];
- __be32 filling;
- __be32 plut;
-} __attribute__ ((packed));
-
-/*
- * Modes of operation of DIU. The DIU supports five different modes, but
- * the driver only supports modes 0 and 1.
- */
-#define MFB_MODE0 0 /* DIU off */
-#define MFB_MODE1 1 /* All three planes output to display */
-
-#endif /* __KERNEL__ */
-#endif /* __FSL_DIU_FB_H__ */
diff --git a/ANDROID_3.4.5/include/linux/fsl/mxs-dma.h b/ANDROID_3.4.5/include/linux/fsl/mxs-dma.h
deleted file mode 100644
index 203d7c4a..00000000
--- a/ANDROID_3.4.5/include/linux/fsl/mxs-dma.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright 2011 Freescale Semiconductor, Inc. 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 version 2 as
- * published by the Free Software Foundation.
- */
-
-#ifndef __MACH_MXS_DMA_H__
-#define __MACH_MXS_DMA_H__
-
-#include <linux/dmaengine.h>
-
-struct mxs_dma_data {
- int chan_irq;
-};
-
-static inline int mxs_dma_is_apbh(struct dma_chan *chan)
-{
- return !strcmp(dev_name(chan->device->dev), "mxs-dma-apbh");
-}
-
-static inline int mxs_dma_is_apbx(struct dma_chan *chan)
-{
- return !strcmp(dev_name(chan->device->dev), "mxs-dma-apbx");
-}
-
-#endif /* __MACH_MXS_DMA_H__ */
diff --git a/ANDROID_3.4.5/include/linux/fsl_devices.h b/ANDROID_3.4.5/include/linux/fsl_devices.h
deleted file mode 100644
index fffdf00f..00000000
--- a/ANDROID_3.4.5/include/linux/fsl_devices.h
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * include/linux/fsl_devices.h
- *
- * Definitions for any platform device related flags or structures for
- * Freescale processor devices
- *
- * Maintainer: Kumar Gala <galak@kernel.crashing.org>
- *
- * Copyright 2004 Freescale Semiconductor, Inc
- *
- * 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 _FSL_DEVICE_H_
-#define _FSL_DEVICE_H_
-
-#include <linux/types.h>
-
-/*
- * Some conventions on how we handle peripherals on Freescale chips
- *
- * unique device: a platform_device entry in fsl_plat_devs[] plus
- * associated device information in its platform_data structure.
- *
- * A chip is described by a set of unique devices.
- *
- * Each sub-arch has its own master list of unique devices and
- * enumerates them by enum fsl_devices in a sub-arch specific header
- *
- * The platform data structure is broken into two parts. The
- * first is device specific information that help identify any
- * unique features of a peripheral. The second is any
- * information that may be defined by the board or how the device
- * is connected externally of the chip.
- *
- * naming conventions:
- * - platform data structures: <driver>_platform_data
- * - platform data device flags: FSL_<driver>_DEV_<FLAG>
- * - platform data board flags: FSL_<driver>_BRD_<FLAG>
- *
- */
-
-enum fsl_usb2_operating_modes {
- FSL_USB2_MPH_HOST,
- FSL_USB2_DR_HOST,
- FSL_USB2_DR_DEVICE,
- FSL_USB2_DR_OTG,
-};
-
-enum fsl_usb2_phy_modes {
- FSL_USB2_PHY_NONE,
- FSL_USB2_PHY_ULPI,
- FSL_USB2_PHY_UTMI,
- FSL_USB2_PHY_UTMI_WIDE,
- FSL_USB2_PHY_SERIAL,
-};
-
-struct clk;
-struct platform_device;
-
-struct fsl_usb2_platform_data {
- /* board specific information */
- enum fsl_usb2_operating_modes operating_mode;
- enum fsl_usb2_phy_modes phy_mode;
- unsigned int port_enables;
- unsigned int workaround;
-
- int (*init)(struct platform_device *);
- void (*exit)(struct platform_device *);
- void __iomem *regs; /* ioremap'd register base */
- struct clk *clk;
- unsigned power_budget; /* hcd->power_budget */
- unsigned big_endian_mmio:1;
- unsigned big_endian_desc:1;
- unsigned es:1; /* need USBMODE:ES */
- unsigned le_setup_buf:1;
- unsigned have_sysif_regs:1;
- unsigned invert_drvvbus:1;
- unsigned invert_pwr_fault:1;
-
- unsigned suspended:1;
- unsigned already_suspended:1;
-
- /* register save area for suspend/resume */
- u32 pm_command;
- u32 pm_status;
- u32 pm_intr_enable;
- u32 pm_frame_index;
- u32 pm_segment;
- u32 pm_frame_list;
- u32 pm_async_next;
- u32 pm_configured_flag;
- u32 pm_portsc;
- u32 pm_usbgenctrl;
-};
-
-/* Flags in fsl_usb2_mph_platform_data */
-#define FSL_USB2_PORT0_ENABLED 0x00000001
-#define FSL_USB2_PORT1_ENABLED 0x00000002
-
-#define FLS_USB2_WORKAROUND_ENGCM09152 (1 << 0)
-
-struct spi_device;
-
-struct fsl_spi_platform_data {
- u32 initial_spmode; /* initial SPMODE value */
- s16 bus_num;
- unsigned int flags;
-#define SPI_QE_CPU_MODE (1 << 0) /* QE CPU ("PIO") mode */
-#define SPI_CPM_MODE (1 << 1) /* CPM/QE ("DMA") mode */
-#define SPI_CPM1 (1 << 2) /* SPI unit is in CPM1 block */
-#define SPI_CPM2 (1 << 3) /* SPI unit is in CPM2 block */
-#define SPI_QE (1 << 4) /* SPI unit is in QE block */
- /* board specific information */
- u16 max_chipselect;
- void (*cs_control)(struct spi_device *spi, bool on);
- u32 sysclk;
-};
-
-struct mpc8xx_pcmcia_ops {
- void(*hw_ctrl)(int slot, int enable);
- int(*voltage_set)(int slot, int vcc, int vpp);
-};
-
-/* Returns non-zero if the current suspend operation would
- * lead to a deep sleep (i.e. power removed from the core,
- * instead of just the clock).
- */
-#if defined(CONFIG_PPC_83xx) && defined(CONFIG_SUSPEND)
-int fsl_deep_sleep(void);
-#else
-static inline int fsl_deep_sleep(void) { return 0; }
-#endif
-
-#endif /* _FSL_DEVICE_H_ */
diff --git a/ANDROID_3.4.5/include/linux/fsl_hypervisor.h b/ANDROID_3.4.5/include/linux/fsl_hypervisor.h
deleted file mode 100644
index 1cebaeee..00000000
--- a/ANDROID_3.4.5/include/linux/fsl_hypervisor.h
+++ /dev/null
@@ -1,241 +0,0 @@
-/*
- * Freescale hypervisor ioctl and kernel interface
- *
- * Copyright (C) 2008-2011 Freescale Semiconductor, Inc.
- * Author: Timur Tabi <timur@freescale.com>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Freescale Semiconductor nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- *
- * ALTERNATIVELY, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") as published by the Free Software
- * Foundation, either version 2 of that License or (at your option) any
- * later version.
- *
- * This software is provided by Freescale Semiconductor "as is" and any
- * express or implied warranties, including, but not limited to, the implied
- * warranties of merchantability and fitness for a particular purpose are
- * disclaimed. In no event shall Freescale Semiconductor be liable for any
- * direct, indirect, incidental, special, exemplary, or consequential damages
- * (including, but not limited to, procurement of substitute goods or services;
- * loss of use, data, or profits; or business interruption) however caused and
- * on any theory of liability, whether in contract, strict liability, or tort
- * (including negligence or otherwise) arising in any way out of the use of this
- * software, even if advised of the possibility of such damage.
- *
- * This file is used by the Freescale hypervisor management driver. It can
- * also be included by applications that need to communicate with the driver
- * via the ioctl interface.
- */
-
-#ifndef FSL_HYPERVISOR_H
-#define FSL_HYPERVISOR_H
-
-#include <linux/types.h>
-
-/**
- * struct fsl_hv_ioctl_restart - restart a partition
- * @ret: return error code from the hypervisor
- * @partition: the ID of the partition to restart, or -1 for the
- * calling partition
- *
- * Used by FSL_HV_IOCTL_PARTITION_RESTART
- */
-struct fsl_hv_ioctl_restart {
- __u32 ret;
- __u32 partition;
-};
-
-/**
- * struct fsl_hv_ioctl_status - get a partition's status
- * @ret: return error code from the hypervisor
- * @partition: the ID of the partition to query, or -1 for the
- * calling partition
- * @status: The returned status of the partition
- *
- * Used by FSL_HV_IOCTL_PARTITION_GET_STATUS
- *
- * Values of 'status':
- * 0 = Stopped
- * 1 = Running
- * 2 = Starting
- * 3 = Stopping
- */
-struct fsl_hv_ioctl_status {
- __u32 ret;
- __u32 partition;
- __u32 status;
-};
-
-/**
- * struct fsl_hv_ioctl_start - start a partition
- * @ret: return error code from the hypervisor
- * @partition: the ID of the partition to control
- * @entry_point: The offset within the guest IMA to start execution
- * @load: If non-zero, reload the partition's images before starting
- *
- * Used by FSL_HV_IOCTL_PARTITION_START
- */
-struct fsl_hv_ioctl_start {
- __u32 ret;
- __u32 partition;
- __u32 entry_point;
- __u32 load;
-};
-
-/**
- * struct fsl_hv_ioctl_stop - stop a partition
- * @ret: return error code from the hypervisor
- * @partition: the ID of the partition to stop, or -1 for the calling
- * partition
- *
- * Used by FSL_HV_IOCTL_PARTITION_STOP
- */
-struct fsl_hv_ioctl_stop {
- __u32 ret;
- __u32 partition;
-};
-
-/**
- * struct fsl_hv_ioctl_memcpy - copy memory between partitions
- * @ret: return error code from the hypervisor
- * @source: the partition ID of the source partition, or -1 for this
- * partition
- * @target: the partition ID of the target partition, or -1 for this
- * partition
- * @reserved: reserved, must be set to 0
- * @local_addr: user-space virtual address of a buffer in the local
- * partition
- * @remote_addr: guest physical address of a buffer in the
- * remote partition
- * @count: the number of bytes to copy. Both the local and remote
- * buffers must be at least 'count' bytes long
- *
- * Used by FSL_HV_IOCTL_MEMCPY
- *
- * The 'local' partition is the partition that calls this ioctl. The
- * 'remote' partition is a different partition. The data is copied from
- * the 'source' paritition' to the 'target' partition.
- *
- * The buffer in the remote partition must be guest physically
- * contiguous.
- *
- * This ioctl does not support copying memory between two remote
- * partitions or within the same partition, so either 'source' or
- * 'target' (but not both) must be -1. In other words, either
- *
- * source == local and target == remote
- * or
- * source == remote and target == local
- */
-struct fsl_hv_ioctl_memcpy {
- __u32 ret;
- __u32 source;
- __u32 target;
- __u32 reserved; /* padding to ensure local_vaddr is aligned */
- __u64 local_vaddr;
- __u64 remote_paddr;
- __u64 count;
-};
-
-/**
- * struct fsl_hv_ioctl_doorbell - ring a doorbell
- * @ret: return error code from the hypervisor
- * @doorbell: the handle of the doorbell to ring doorbell
- *
- * Used by FSL_HV_IOCTL_DOORBELL
- */
-struct fsl_hv_ioctl_doorbell {
- __u32 ret;
- __u32 doorbell;
-};
-
-/**
- * struct fsl_hv_ioctl_prop - get/set a device tree property
- * @ret: return error code from the hypervisor
- * @handle: handle of partition whose tree to access
- * @path: virtual address of path name of node to access
- * @propname: virtual address of name of property to access
- * @propval: virtual address of property data buffer
- * @proplen: Size of property data buffer
- * @reserved: reserved, must be set to 0
- *
- * Used by FSL_HV_IOCTL_DOORBELL
- */
-struct fsl_hv_ioctl_prop {
- __u32 ret;
- __u32 handle;
- __u64 path;
- __u64 propname;
- __u64 propval;
- __u32 proplen;
- __u32 reserved; /* padding to ensure structure is aligned */
-};
-
-/* The ioctl type, documented in ioctl-number.txt */
-#define FSL_HV_IOCTL_TYPE 0xAF
-
-/* Restart another partition */
-#define FSL_HV_IOCTL_PARTITION_RESTART \
- _IOWR(FSL_HV_IOCTL_TYPE, 1, struct fsl_hv_ioctl_restart)
-
-/* Get a partition's status */
-#define FSL_HV_IOCTL_PARTITION_GET_STATUS \
- _IOWR(FSL_HV_IOCTL_TYPE, 2, struct fsl_hv_ioctl_status)
-
-/* Boot another partition */
-#define FSL_HV_IOCTL_PARTITION_START \
- _IOWR(FSL_HV_IOCTL_TYPE, 3, struct fsl_hv_ioctl_start)
-
-/* Stop this or another partition */
-#define FSL_HV_IOCTL_PARTITION_STOP \
- _IOWR(FSL_HV_IOCTL_TYPE, 4, struct fsl_hv_ioctl_stop)
-
-/* Copy data from one partition to another */
-#define FSL_HV_IOCTL_MEMCPY \
- _IOWR(FSL_HV_IOCTL_TYPE, 5, struct fsl_hv_ioctl_memcpy)
-
-/* Ring a doorbell */
-#define FSL_HV_IOCTL_DOORBELL \
- _IOWR(FSL_HV_IOCTL_TYPE, 6, struct fsl_hv_ioctl_doorbell)
-
-/* Get a property from another guest's device tree */
-#define FSL_HV_IOCTL_GETPROP \
- _IOWR(FSL_HV_IOCTL_TYPE, 7, struct fsl_hv_ioctl_prop)
-
-/* Set a property in another guest's device tree */
-#define FSL_HV_IOCTL_SETPROP \
- _IOWR(FSL_HV_IOCTL_TYPE, 8, struct fsl_hv_ioctl_prop)
-
-#ifdef __KERNEL__
-
-/**
- * fsl_hv_event_register() - register a callback for failover events
- * @nb: pointer to caller-supplied notifier_block structure
- *
- * This function is called by device drivers to register their callback
- * functions for fail-over events.
- *
- * The caller should allocate a notifier_block object and initialize the
- * 'priority' and 'notifier_call' fields.
- */
-int fsl_hv_failover_register(struct notifier_block *nb);
-
-/**
- * fsl_hv_event_unregister() - unregister a callback for failover events
- * @nb: the same 'nb' used in previous fsl_hv_failover_register call
- */
-int fsl_hv_failover_unregister(struct notifier_block *nb);
-
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/fsnotify.h b/ANDROID_3.4.5/include/linux/fsnotify.h
deleted file mode 100644
index a6dfe694..00000000
--- a/ANDROID_3.4.5/include/linux/fsnotify.h
+++ /dev/null
@@ -1,342 +0,0 @@
-#ifndef _LINUX_FS_NOTIFY_H
-#define _LINUX_FS_NOTIFY_H
-
-/*
- * include/linux/fsnotify.h - generic hooks for filesystem notification, to
- * reduce in-source duplication from both dnotify and inotify.
- *
- * We don't compile any of this away in some complicated menagerie of ifdefs.
- * Instead, we rely on the code inside to optimize away as needed.
- *
- * (C) Copyright 2005 Robert Love
- */
-
-#include <linux/fsnotify_backend.h>
-#include <linux/audit.h>
-#include <linux/slab.h>
-#include <linux/bug.h>
-
-/*
- * fsnotify_d_instantiate - instantiate a dentry for inode
- */
-static inline void fsnotify_d_instantiate(struct dentry *dentry,
- struct inode *inode)
-{
- __fsnotify_d_instantiate(dentry, inode);
-}
-
-/* Notify this dentry's parent about a child's events. */
-static inline int fsnotify_parent(struct path *path, struct dentry *dentry, __u32 mask)
-{
- if (!dentry)
- dentry = path->dentry;
-
- return __fsnotify_parent(path, dentry, mask);
-}
-
-/* simple call site for access decisions */
-static inline int fsnotify_perm(struct file *file, int mask)
-{
- struct path *path = &file->f_path;
- struct inode *inode = path->dentry->d_inode;
- __u32 fsnotify_mask = 0;
- int ret;
-
- if (file->f_mode & FMODE_NONOTIFY)
- return 0;
- if (!(mask & (MAY_READ | MAY_OPEN)))
- return 0;
- if (mask & MAY_OPEN)
- fsnotify_mask = FS_OPEN_PERM;
- else if (mask & MAY_READ)
- fsnotify_mask = FS_ACCESS_PERM;
- else
- BUG();
-
- ret = fsnotify_parent(path, NULL, fsnotify_mask);
- if (ret)
- return ret;
-
- return fsnotify(inode, fsnotify_mask, path, FSNOTIFY_EVENT_PATH, NULL, 0);
-}
-
-/*
- * fsnotify_d_move - dentry has been moved
- */
-static inline void fsnotify_d_move(struct dentry *dentry)
-{
- /*
- * On move we need to update dentry->d_flags to indicate if the new parent
- * cares about events from this dentry.
- */
- __fsnotify_update_dcache_flags(dentry);
-}
-
-/*
- * fsnotify_link_count - inode's link count changed
- */
-static inline void fsnotify_link_count(struct inode *inode)
-{
- fsnotify(inode, FS_ATTRIB, inode, FSNOTIFY_EVENT_INODE, NULL, 0);
-}
-
-/*
- * fsnotify_move - file old_name at old_dir was moved to new_name at new_dir
- */
-static inline void fsnotify_move(struct inode *old_dir, struct inode *new_dir,
- const unsigned char *old_name,
- int isdir, struct inode *target, struct dentry *moved)
-{
- struct inode *source = moved->d_inode;
- u32 fs_cookie = fsnotify_get_cookie();
- __u32 old_dir_mask = (FS_EVENT_ON_CHILD | FS_MOVED_FROM);
- __u32 new_dir_mask = (FS_EVENT_ON_CHILD | FS_MOVED_TO);
- const unsigned char *new_name = moved->d_name.name;
-
- if (old_dir == new_dir)
- old_dir_mask |= FS_DN_RENAME;
-
- if (isdir) {
- old_dir_mask |= FS_ISDIR;
- new_dir_mask |= FS_ISDIR;
- }
-
- fsnotify(old_dir, old_dir_mask, old_dir, FSNOTIFY_EVENT_INODE, old_name, fs_cookie);
- fsnotify(new_dir, new_dir_mask, new_dir, FSNOTIFY_EVENT_INODE, new_name, fs_cookie);
-
- if (target)
- fsnotify_link_count(target);
-
- if (source)
- fsnotify(source, FS_MOVE_SELF, moved->d_inode, FSNOTIFY_EVENT_INODE, NULL, 0);
- audit_inode_child(moved, new_dir);
-}
-
-/*
- * fsnotify_inode_delete - and inode is being evicted from cache, clean up is needed
- */
-static inline void fsnotify_inode_delete(struct inode *inode)
-{
- __fsnotify_inode_delete(inode);
-}
-
-/*
- * fsnotify_vfsmount_delete - a vfsmount is being destroyed, clean up is needed
- */
-static inline void fsnotify_vfsmount_delete(struct vfsmount *mnt)
-{
- __fsnotify_vfsmount_delete(mnt);
-}
-
-/*
- * fsnotify_nameremove - a filename was removed from a directory
- */
-static inline void fsnotify_nameremove(struct dentry *dentry, int isdir)
-{
- __u32 mask = FS_DELETE;
-
- if (isdir)
- mask |= FS_ISDIR;
-
- fsnotify_parent(NULL, dentry, mask);
-}
-
-/*
- * fsnotify_inoderemove - an inode is going away
- */
-static inline void fsnotify_inoderemove(struct inode *inode)
-{
- fsnotify(inode, FS_DELETE_SELF, inode, FSNOTIFY_EVENT_INODE, NULL, 0);
- __fsnotify_inode_delete(inode);
-}
-
-/*
- * fsnotify_create - 'name' was linked in
- */
-static inline void fsnotify_create(struct inode *inode, struct dentry *dentry)
-{
- audit_inode_child(dentry, inode);
-
- fsnotify(inode, FS_CREATE, dentry->d_inode, FSNOTIFY_EVENT_INODE, dentry->d_name.name, 0);
-}
-
-/*
- * fsnotify_link - new hardlink in 'inode' directory
- * Note: We have to pass also the linked inode ptr as some filesystems leave
- * new_dentry->d_inode NULL and instantiate inode pointer later
- */
-static inline void fsnotify_link(struct inode *dir, struct inode *inode, struct dentry *new_dentry)
-{
- fsnotify_link_count(inode);
- audit_inode_child(new_dentry, dir);
-
- fsnotify(dir, FS_CREATE, inode, FSNOTIFY_EVENT_INODE, new_dentry->d_name.name, 0);
-}
-
-/*
- * fsnotify_mkdir - directory 'name' was created
- */
-static inline void fsnotify_mkdir(struct inode *inode, struct dentry *dentry)
-{
- __u32 mask = (FS_CREATE | FS_ISDIR);
- struct inode *d_inode = dentry->d_inode;
-
- audit_inode_child(dentry, inode);
-
- fsnotify(inode, mask, d_inode, FSNOTIFY_EVENT_INODE, dentry->d_name.name, 0);
-}
-
-/*
- * fsnotify_access - file was read
- */
-static inline void fsnotify_access(struct file *file)
-{
- struct path *path = &file->f_path;
- struct inode *inode = path->dentry->d_inode;
- __u32 mask = FS_ACCESS;
-
- if (S_ISDIR(inode->i_mode))
- mask |= FS_ISDIR;
-
- if (!(file->f_mode & FMODE_NONOTIFY)) {
- fsnotify_parent(path, NULL, mask);
- fsnotify(inode, mask, path, FSNOTIFY_EVENT_PATH, NULL, 0);
- }
-}
-
-/*
- * fsnotify_modify - file was modified
- */
-static inline void fsnotify_modify(struct file *file)
-{
- struct path *path = &file->f_path;
- struct inode *inode = path->dentry->d_inode;
- __u32 mask = FS_MODIFY;
-
- if (S_ISDIR(inode->i_mode))
- mask |= FS_ISDIR;
-
- if (!(file->f_mode & FMODE_NONOTIFY)) {
- fsnotify_parent(path, NULL, mask);
- fsnotify(inode, mask, path, FSNOTIFY_EVENT_PATH, NULL, 0);
- }
-}
-
-/*
- * fsnotify_open - file was opened
- */
-static inline void fsnotify_open(struct file *file)
-{
- struct path *path = &file->f_path;
- struct inode *inode = path->dentry->d_inode;
- __u32 mask = FS_OPEN;
-
- if (S_ISDIR(inode->i_mode))
- mask |= FS_ISDIR;
-
- fsnotify_parent(path, NULL, mask);
- fsnotify(inode, mask, path, FSNOTIFY_EVENT_PATH, NULL, 0);
-}
-
-/*
- * fsnotify_close - file was closed
- */
-static inline void fsnotify_close(struct file *file)
-{
- struct path *path = &file->f_path;
- struct inode *inode = file->f_path.dentry->d_inode;
- fmode_t mode = file->f_mode;
- __u32 mask = (mode & FMODE_WRITE) ? FS_CLOSE_WRITE : FS_CLOSE_NOWRITE;
-
- if (S_ISDIR(inode->i_mode))
- mask |= FS_ISDIR;
-
- if (!(file->f_mode & FMODE_NONOTIFY)) {
- fsnotify_parent(path, NULL, mask);
- fsnotify(inode, mask, path, FSNOTIFY_EVENT_PATH, NULL, 0);
- }
-}
-
-/*
- * fsnotify_xattr - extended attributes were changed
- */
-static inline void fsnotify_xattr(struct dentry *dentry)
-{
- struct inode *inode = dentry->d_inode;
- __u32 mask = FS_ATTRIB;
-
- if (S_ISDIR(inode->i_mode))
- mask |= FS_ISDIR;
-
- fsnotify_parent(NULL, dentry, mask);
- fsnotify(inode, mask, inode, FSNOTIFY_EVENT_INODE, NULL, 0);
-}
-
-/*
- * fsnotify_change - notify_change event. file was modified and/or metadata
- * was changed.
- */
-static inline void fsnotify_change(struct dentry *dentry, unsigned int ia_valid)
-{
- struct inode *inode = dentry->d_inode;
- __u32 mask = 0;
-
- if (ia_valid & ATTR_UID)
- mask |= FS_ATTRIB;
- if (ia_valid & ATTR_GID)
- mask |= FS_ATTRIB;
- if (ia_valid & ATTR_SIZE)
- mask |= FS_MODIFY;
-
- /* both times implies a utime(s) call */
- if ((ia_valid & (ATTR_ATIME | ATTR_MTIME)) == (ATTR_ATIME | ATTR_MTIME))
- mask |= FS_ATTRIB;
- else if (ia_valid & ATTR_ATIME)
- mask |= FS_ACCESS;
- else if (ia_valid & ATTR_MTIME)
- mask |= FS_MODIFY;
-
- if (ia_valid & ATTR_MODE)
- mask |= FS_ATTRIB;
-
- if (mask) {
- if (S_ISDIR(inode->i_mode))
- mask |= FS_ISDIR;
-
- fsnotify_parent(NULL, dentry, mask);
- fsnotify(inode, mask, inode, FSNOTIFY_EVENT_INODE, NULL, 0);
- }
-}
-
-#if defined(CONFIG_FSNOTIFY) /* notify helpers */
-
-/*
- * fsnotify_oldname_init - save off the old filename before we change it
- */
-static inline const unsigned char *fsnotify_oldname_init(const unsigned char *name)
-{
- return kstrdup(name, GFP_KERNEL);
-}
-
-/*
- * fsnotify_oldname_free - free the name we got from fsnotify_oldname_init
- */
-static inline void fsnotify_oldname_free(const unsigned char *old_name)
-{
- kfree(old_name);
-}
-
-#else /* CONFIG_FSNOTIFY */
-
-static inline const char *fsnotify_oldname_init(const unsigned char *name)
-{
- return NULL;
-}
-
-static inline void fsnotify_oldname_free(const unsigned char *old_name)
-{
-}
-
-#endif /* CONFIG_FSNOTIFY */
-
-#endif /* _LINUX_FS_NOTIFY_H */
diff --git a/ANDROID_3.4.5/include/linux/fsnotify_backend.h b/ANDROID_3.4.5/include/linux/fsnotify_backend.h
deleted file mode 100644
index 91d0e0a3..00000000
--- a/ANDROID_3.4.5/include/linux/fsnotify_backend.h
+++ /dev/null
@@ -1,470 +0,0 @@
-/*
- * Filesystem access notification for Linux
- *
- * Copyright (C) 2008 Red Hat, Inc., Eric Paris <eparis@redhat.com>
- */
-
-#ifndef __LINUX_FSNOTIFY_BACKEND_H
-#define __LINUX_FSNOTIFY_BACKEND_H
-
-#ifdef __KERNEL__
-
-#include <linux/idr.h> /* inotify uses this */
-#include <linux/fs.h> /* struct inode */
-#include <linux/list.h>
-#include <linux/path.h> /* struct path */
-#include <linux/spinlock.h>
-#include <linux/types.h>
-
-#include <linux/atomic.h>
-
-/*
- * IN_* from inotfy.h lines up EXACTLY with FS_*, this is so we can easily
- * convert between them. dnotify only needs conversion at watch creation
- * so no perf loss there. fanotify isn't defined yet, so it can use the
- * wholes if it needs more events.
- */
-#define FS_ACCESS 0x00000001 /* File was accessed */
-#define FS_MODIFY 0x00000002 /* File was modified */
-#define FS_ATTRIB 0x00000004 /* Metadata changed */
-#define FS_CLOSE_WRITE 0x00000008 /* Writtable file was closed */
-#define FS_CLOSE_NOWRITE 0x00000010 /* Unwrittable file closed */
-#define FS_OPEN 0x00000020 /* File was opened */
-#define FS_MOVED_FROM 0x00000040 /* File was moved from X */
-#define FS_MOVED_TO 0x00000080 /* File was moved to Y */
-#define FS_CREATE 0x00000100 /* Subfile was created */
-#define FS_DELETE 0x00000200 /* Subfile was deleted */
-#define FS_DELETE_SELF 0x00000400 /* Self was deleted */
-#define FS_MOVE_SELF 0x00000800 /* Self was moved */
-
-#define FS_UNMOUNT 0x00002000 /* inode on umount fs */
-#define FS_Q_OVERFLOW 0x00004000 /* Event queued overflowed */
-#define FS_IN_IGNORED 0x00008000 /* last inotify event here */
-
-#define FS_OPEN_PERM 0x00010000 /* open event in an permission hook */
-#define FS_ACCESS_PERM 0x00020000 /* access event in a permissions hook */
-
-#define FS_EXCL_UNLINK 0x04000000 /* do not send events if object is unlinked */
-#define FS_ISDIR 0x40000000 /* event occurred against dir */
-#define FS_IN_ONESHOT 0x80000000 /* only send event once */
-
-#define FS_DN_RENAME 0x10000000 /* file renamed */
-#define FS_DN_MULTISHOT 0x20000000 /* dnotify multishot */
-
-/* This inode cares about things that happen to its children. Always set for
- * dnotify and inotify. */
-#define FS_EVENT_ON_CHILD 0x08000000
-
-/* This is a list of all events that may get sent to a parernt based on fs event
- * happening to inodes inside that directory */
-#define FS_EVENTS_POSS_ON_CHILD (FS_ACCESS | FS_MODIFY | FS_ATTRIB |\
- FS_CLOSE_WRITE | FS_CLOSE_NOWRITE | FS_OPEN |\
- FS_MOVED_FROM | FS_MOVED_TO | FS_CREATE |\
- FS_DELETE)
-
-#define FS_MOVE (FS_MOVED_FROM | FS_MOVED_TO)
-
-#define ALL_FSNOTIFY_PERM_EVENTS (FS_OPEN_PERM | FS_ACCESS_PERM)
-
-#define ALL_FSNOTIFY_EVENTS (FS_ACCESS | FS_MODIFY | FS_ATTRIB | \
- FS_CLOSE_WRITE | FS_CLOSE_NOWRITE | FS_OPEN | \
- FS_MOVED_FROM | FS_MOVED_TO | FS_CREATE | \
- FS_DELETE | FS_DELETE_SELF | FS_MOVE_SELF | \
- FS_UNMOUNT | FS_Q_OVERFLOW | FS_IN_IGNORED | \
- FS_OPEN_PERM | FS_ACCESS_PERM | FS_EXCL_UNLINK | \
- FS_ISDIR | FS_IN_ONESHOT | FS_DN_RENAME | \
- FS_DN_MULTISHOT | FS_EVENT_ON_CHILD)
-
-struct fsnotify_group;
-struct fsnotify_event;
-struct fsnotify_mark;
-struct fsnotify_event_private_data;
-
-/*
- * Each group much define these ops. The fsnotify infrastructure will call
- * these operations for each relevant group.
- *
- * should_send_event - given a group, inode, and mask this function determines
- * if the group is interested in this event.
- * handle_event - main call for a group to handle an fs event
- * free_group_priv - called when a group refcnt hits 0 to clean up the private union
- * freeing-mark - this means that a mark has been flagged to die when everything
- * finishes using it. The function is supplied with what must be a
- * valid group and inode to use to clean up.
- */
-struct fsnotify_ops {
- bool (*should_send_event)(struct fsnotify_group *group, struct inode *inode,
- struct fsnotify_mark *inode_mark,
- struct fsnotify_mark *vfsmount_mark,
- __u32 mask, void *data, int data_type);
- int (*handle_event)(struct fsnotify_group *group,
- struct fsnotify_mark *inode_mark,
- struct fsnotify_mark *vfsmount_mark,
- struct fsnotify_event *event);
- void (*free_group_priv)(struct fsnotify_group *group);
- void (*freeing_mark)(struct fsnotify_mark *mark, struct fsnotify_group *group);
- void (*free_event_priv)(struct fsnotify_event_private_data *priv);
-};
-
-/*
- * A group is a "thing" that wants to receive notification about filesystem
- * events. The mask holds the subset of event types this group cares about.
- * refcnt on a group is up to the implementor and at any moment if it goes 0
- * everything will be cleaned up.
- */
-struct fsnotify_group {
- /*
- * How the refcnt is used is up to each group. When the refcnt hits 0
- * fsnotify will clean up all of the resources associated with this group.
- * As an example, the dnotify group will always have a refcnt=1 and that
- * will never change. Inotify, on the other hand, has a group per
- * inotify_init() and the refcnt will hit 0 only when that fd has been
- * closed.
- */
- atomic_t refcnt; /* things with interest in this group */
-
- const struct fsnotify_ops *ops; /* how this group handles things */
-
- /* needed to send notification to userspace */
- struct mutex notification_mutex; /* protect the notification_list */
- struct list_head notification_list; /* list of event_holder this group needs to send to userspace */
- wait_queue_head_t notification_waitq; /* read() on the notification file blocks on this waitq */
- unsigned int q_len; /* events on the queue */
- unsigned int max_events; /* maximum events allowed on the list */
- /*
- * Valid fsnotify group priorities. Events are send in order from highest
- * priority to lowest priority. We default to the lowest priority.
- */
- #define FS_PRIO_0 0 /* normal notifiers, no permissions */
- #define FS_PRIO_1 1 /* fanotify content based access control */
- #define FS_PRIO_2 2 /* fanotify pre-content access */
- unsigned int priority;
-
- /* stores all fastpath marks assoc with this group so they can be cleaned on unregister */
- spinlock_t mark_lock; /* protect marks_list */
- atomic_t num_marks; /* 1 for each mark and 1 for not being
- * past the point of no return when freeing
- * a group */
- struct list_head marks_list; /* all inode marks for this group */
-
- /* groups can define private fields here or use the void *private */
- union {
- void *private;
-#ifdef CONFIG_INOTIFY_USER
- struct inotify_group_private_data {
- spinlock_t idr_lock;
- struct idr idr;
- u32 last_wd;
- struct fasync_struct *fa; /* async notification */
- struct user_struct *user;
- } inotify_data;
-#endif
-#ifdef CONFIG_FANOTIFY
- struct fanotify_group_private_data {
-#ifdef CONFIG_FANOTIFY_ACCESS_PERMISSIONS
- /* allows a group to block waiting for a userspace response */
- struct mutex access_mutex;
- struct list_head access_list;
- wait_queue_head_t access_waitq;
- atomic_t bypass_perm;
-#endif /* CONFIG_FANOTIFY_ACCESS_PERMISSIONS */
- int f_flags;
- unsigned int max_marks;
- struct user_struct *user;
- } fanotify_data;
-#endif /* CONFIG_FANOTIFY */
- };
-};
-
-/*
- * A single event can be queued in multiple group->notification_lists.
- *
- * each group->notification_list will point to an event_holder which in turns points
- * to the actual event that needs to be sent to userspace.
- *
- * Seemed cheaper to create a refcnt'd event and a small holder for every group
- * than create a different event for every group
- *
- */
-struct fsnotify_event_holder {
- struct fsnotify_event *event;
- struct list_head event_list;
-};
-
-/*
- * Inotify needs to tack data onto an event. This struct lets us later find the
- * correct private data of the correct group.
- */
-struct fsnotify_event_private_data {
- struct fsnotify_group *group;
- struct list_head event_list;
-};
-
-/*
- * all of the information about the original object we want to now send to
- * a group. If you want to carry more info from the accessing task to the
- * listener this structure is where you need to be adding fields.
- */
-struct fsnotify_event {
- /*
- * If we create an event we are also likely going to need a holder
- * to link to a group. So embed one holder in the event. Means only
- * one allocation for the common case where we only have one group
- */
- struct fsnotify_event_holder holder;
- spinlock_t lock; /* protection for the associated event_holder and private_list */
- /* to_tell may ONLY be dereferenced during handle_event(). */
- struct inode *to_tell; /* either the inode the event happened to or its parent */
- /*
- * depending on the event type we should have either a path or inode
- * We hold a reference on path, but NOT on inode. Since we have the ref on
- * the path, it may be dereferenced at any point during this object's
- * lifetime. That reference is dropped when this object's refcnt hits
- * 0. If this event contains an inode instead of a path, the inode may
- * ONLY be used during handle_event().
- */
- union {
- struct path path;
- struct inode *inode;
- };
-/* when calling fsnotify tell it if the data is a path or inode */
-#define FSNOTIFY_EVENT_NONE 0
-#define FSNOTIFY_EVENT_PATH 1
-#define FSNOTIFY_EVENT_INODE 2
- int data_type; /* which of the above union we have */
- atomic_t refcnt; /* how many groups still are using/need to send this event */
- __u32 mask; /* the type of access, bitwise OR for FS_* event types */
-
- u32 sync_cookie; /* used to corrolate events, namely inotify mv events */
- const unsigned char *file_name;
- size_t name_len;
- struct pid *tgid;
-
-#ifdef CONFIG_FANOTIFY_ACCESS_PERMISSIONS
- __u32 response; /* userspace answer to question */
-#endif /* CONFIG_FANOTIFY_ACCESS_PERMISSIONS */
-
- struct list_head private_data_list; /* groups can store private data here */
-};
-
-/*
- * Inode specific fields in an fsnotify_mark
- */
-struct fsnotify_inode_mark {
- struct inode *inode; /* inode this mark is associated with */
- struct hlist_node i_list; /* list of marks by inode->i_fsnotify_marks */
- struct list_head free_i_list; /* tmp list used when freeing this mark */
-};
-
-/*
- * Mount point specific fields in an fsnotify_mark
- */
-struct fsnotify_vfsmount_mark {
- struct vfsmount *mnt; /* vfsmount this mark is associated with */
- struct hlist_node m_list; /* list of marks by inode->i_fsnotify_marks */
- struct list_head free_m_list; /* tmp list used when freeing this mark */
-};
-
-/*
- * a mark is simply an object attached to an in core inode which allows an
- * fsnotify listener to indicate they are either no longer interested in events
- * of a type matching mask or only interested in those events.
- *
- * these are flushed when an inode is evicted from core and may be flushed
- * when the inode is modified (as seen by fsnotify_access). Some fsnotify users
- * (such as dnotify) will flush these when the open fd is closed and not at
- * inode eviction or modification.
- */
-struct fsnotify_mark {
- __u32 mask; /* mask this mark is for */
- /* we hold ref for each i_list and g_list. also one ref for each 'thing'
- * in kernel that found and may be using this mark. */
- atomic_t refcnt; /* active things looking at this mark */
- struct fsnotify_group *group; /* group this mark is for */
- struct list_head g_list; /* list of marks by group->i_fsnotify_marks */
- spinlock_t lock; /* protect group and inode */
- union {
- struct fsnotify_inode_mark i;
- struct fsnotify_vfsmount_mark m;
- };
- struct list_head free_g_list; /* tmp list used when freeing this mark */
- __u32 ignored_mask; /* events types to ignore */
-#define FSNOTIFY_MARK_FLAG_INODE 0x01
-#define FSNOTIFY_MARK_FLAG_VFSMOUNT 0x02
-#define FSNOTIFY_MARK_FLAG_OBJECT_PINNED 0x04
-#define FSNOTIFY_MARK_FLAG_IGNORED_SURV_MODIFY 0x08
-#define FSNOTIFY_MARK_FLAG_ALIVE 0x10
- unsigned int flags; /* vfsmount or inode mark? */
- struct list_head destroy_list;
- void (*free_mark)(struct fsnotify_mark *mark); /* called on final put+free */
-};
-
-#ifdef CONFIG_FSNOTIFY
-
-/* called from the vfs helpers */
-
-/* main fsnotify call to send events */
-extern int fsnotify(struct inode *to_tell, __u32 mask, void *data, int data_is,
- const unsigned char *name, u32 cookie);
-extern int __fsnotify_parent(struct path *path, struct dentry *dentry, __u32 mask);
-extern void __fsnotify_inode_delete(struct inode *inode);
-extern void __fsnotify_vfsmount_delete(struct vfsmount *mnt);
-extern u32 fsnotify_get_cookie(void);
-
-static inline int fsnotify_inode_watches_children(struct inode *inode)
-{
- /* FS_EVENT_ON_CHILD is set if the inode may care */
- if (!(inode->i_fsnotify_mask & FS_EVENT_ON_CHILD))
- return 0;
- /* this inode might care about child events, does it care about the
- * specific set of events that can happen on a child? */
- return inode->i_fsnotify_mask & FS_EVENTS_POSS_ON_CHILD;
-}
-
-/*
- * Update the dentry with a flag indicating the interest of its parent to receive
- * filesystem events when those events happens to this dentry->d_inode.
- */
-static inline void __fsnotify_update_dcache_flags(struct dentry *dentry)
-{
- struct dentry *parent;
-
- assert_spin_locked(&dentry->d_lock);
-
- /*
- * Serialisation of setting PARENT_WATCHED on the dentries is provided
- * by d_lock. If inotify_inode_watched changes after we have taken
- * d_lock, the following __fsnotify_update_child_dentry_flags call will
- * find our entry, so it will spin until we complete here, and update
- * us with the new state.
- */
- parent = dentry->d_parent;
- if (parent->d_inode && fsnotify_inode_watches_children(parent->d_inode))
- dentry->d_flags |= DCACHE_FSNOTIFY_PARENT_WATCHED;
- else
- dentry->d_flags &= ~DCACHE_FSNOTIFY_PARENT_WATCHED;
-}
-
-/*
- * fsnotify_d_instantiate - instantiate a dentry for inode
- */
-static inline void __fsnotify_d_instantiate(struct dentry *dentry, struct inode *inode)
-{
- if (!inode)
- return;
-
- spin_lock(&dentry->d_lock);
- __fsnotify_update_dcache_flags(dentry);
- spin_unlock(&dentry->d_lock);
-}
-
-/* called from fsnotify listeners, such as fanotify or dnotify */
-
-/* get a reference to an existing or create a new group */
-extern struct fsnotify_group *fsnotify_alloc_group(const struct fsnotify_ops *ops);
-/* drop reference on a group from fsnotify_alloc_group */
-extern void fsnotify_put_group(struct fsnotify_group *group);
-
-/* take a reference to an event */
-extern void fsnotify_get_event(struct fsnotify_event *event);
-extern void fsnotify_put_event(struct fsnotify_event *event);
-/* find private data previously attached to an event and unlink it */
-extern struct fsnotify_event_private_data *fsnotify_remove_priv_from_event(struct fsnotify_group *group,
- struct fsnotify_event *event);
-
-/* attach the event to the group notification queue */
-extern struct fsnotify_event *fsnotify_add_notify_event(struct fsnotify_group *group,
- struct fsnotify_event *event,
- struct fsnotify_event_private_data *priv,
- struct fsnotify_event *(*merge)(struct list_head *,
- struct fsnotify_event *));
-/* true if the group notification queue is empty */
-extern bool fsnotify_notify_queue_is_empty(struct fsnotify_group *group);
-/* return, but do not dequeue the first event on the notification queue */
-extern struct fsnotify_event *fsnotify_peek_notify_event(struct fsnotify_group *group);
-/* return AND dequeue the first event on the notification queue */
-extern struct fsnotify_event *fsnotify_remove_notify_event(struct fsnotify_group *group);
-
-/* functions used to manipulate the marks attached to inodes */
-
-/* run all marks associated with a vfsmount and update mnt->mnt_fsnotify_mask */
-extern void fsnotify_recalc_vfsmount_mask(struct vfsmount *mnt);
-/* run all marks associated with an inode and update inode->i_fsnotify_mask */
-extern void fsnotify_recalc_inode_mask(struct inode *inode);
-extern void fsnotify_init_mark(struct fsnotify_mark *mark, void (*free_mark)(struct fsnotify_mark *mark));
-/* find (and take a reference) to a mark associated with group and inode */
-extern struct fsnotify_mark *fsnotify_find_inode_mark(struct fsnotify_group *group, struct inode *inode);
-/* find (and take a reference) to a mark associated with group and vfsmount */
-extern struct fsnotify_mark *fsnotify_find_vfsmount_mark(struct fsnotify_group *group, struct vfsmount *mnt);
-/* copy the values from old into new */
-extern void fsnotify_duplicate_mark(struct fsnotify_mark *new, struct fsnotify_mark *old);
-/* set the ignored_mask of a mark */
-extern void fsnotify_set_mark_ignored_mask_locked(struct fsnotify_mark *mark, __u32 mask);
-/* set the mask of a mark (might pin the object into memory */
-extern void fsnotify_set_mark_mask_locked(struct fsnotify_mark *mark, __u32 mask);
-/* attach the mark to both the group and the inode */
-extern int fsnotify_add_mark(struct fsnotify_mark *mark, struct fsnotify_group *group,
- struct inode *inode, struct vfsmount *mnt, int allow_dups);
-/* given a mark, flag it to be freed when all references are dropped */
-extern void fsnotify_destroy_mark(struct fsnotify_mark *mark);
-/* run all the marks in a group, and clear all of the vfsmount marks */
-extern void fsnotify_clear_vfsmount_marks_by_group(struct fsnotify_group *group);
-/* run all the marks in a group, and clear all of the inode marks */
-extern void fsnotify_clear_inode_marks_by_group(struct fsnotify_group *group);
-/* run all the marks in a group, and clear all of the marks where mark->flags & flags is true*/
-extern void fsnotify_clear_marks_by_group_flags(struct fsnotify_group *group, unsigned int flags);
-/* run all the marks in a group, and flag them to be freed */
-extern void fsnotify_clear_marks_by_group(struct fsnotify_group *group);
-extern void fsnotify_get_mark(struct fsnotify_mark *mark);
-extern void fsnotify_put_mark(struct fsnotify_mark *mark);
-extern void fsnotify_unmount_inodes(struct list_head *list);
-
-/* put here because inotify does some weird stuff when destroying watches */
-extern struct fsnotify_event *fsnotify_create_event(struct inode *to_tell, __u32 mask,
- void *data, int data_is,
- const unsigned char *name,
- u32 cookie, gfp_t gfp);
-
-/* fanotify likes to change events after they are on lists... */
-extern struct fsnotify_event *fsnotify_clone_event(struct fsnotify_event *old_event);
-extern int fsnotify_replace_event(struct fsnotify_event_holder *old_holder,
- struct fsnotify_event *new_event);
-
-#else
-
-static inline int fsnotify(struct inode *to_tell, __u32 mask, void *data, int data_is,
- const unsigned char *name, u32 cookie)
-{
- return 0;
-}
-
-static inline int __fsnotify_parent(struct path *path, struct dentry *dentry, __u32 mask)
-{
- return 0;
-}
-
-static inline void __fsnotify_inode_delete(struct inode *inode)
-{}
-
-static inline void __fsnotify_vfsmount_delete(struct vfsmount *mnt)
-{}
-
-static inline void __fsnotify_update_dcache_flags(struct dentry *dentry)
-{}
-
-static inline void __fsnotify_d_instantiate(struct dentry *dentry, struct inode *inode)
-{}
-
-static inline u32 fsnotify_get_cookie(void)
-{
- return 0;
-}
-
-static inline void fsnotify_unmount_inodes(struct list_head *list)
-{}
-
-#endif /* CONFIG_FSNOTIFY */
-
-#endif /* __KERNEL __ */
-
-#endif /* __LINUX_FSNOTIFY_BACKEND_H */
diff --git a/ANDROID_3.4.5/include/linux/ftrace.h b/ANDROID_3.4.5/include/linux/ftrace.h
deleted file mode 100644
index 72a6cabb..00000000
--- a/ANDROID_3.4.5/include/linux/ftrace.h
+++ /dev/null
@@ -1,687 +0,0 @@
-/*
- * Ftrace header. For implementation details beyond the random comments
- * scattered below, see: Documentation/trace/ftrace-design.txt
- */
-
-#ifndef _LINUX_FTRACE_H
-#define _LINUX_FTRACE_H
-
-#include <linux/trace_clock.h>
-#include <linux/kallsyms.h>
-#include <linux/linkage.h>
-#include <linux/bitops.h>
-#include <linux/ktime.h>
-#include <linux/sched.h>
-#include <linux/types.h>
-#include <linux/init.h>
-#include <linux/fs.h>
-
-#include <asm/ftrace.h>
-
-struct module;
-struct ftrace_hash;
-
-#ifdef CONFIG_FUNCTION_TRACER
-
-extern int ftrace_enabled;
-extern int
-ftrace_enable_sysctl(struct ctl_table *table, int write,
- void __user *buffer, size_t *lenp,
- loff_t *ppos);
-
-typedef void (*ftrace_func_t)(unsigned long ip, unsigned long parent_ip);
-
-/*
- * FTRACE_OPS_FL_* bits denote the state of ftrace_ops struct and are
- * set in the flags member.
- *
- * ENABLED - set/unset when ftrace_ops is registered/unregistered
- * GLOBAL - set manualy by ftrace_ops user to denote the ftrace_ops
- * is part of the global tracers sharing the same filter
- * via set_ftrace_* debugfs files.
- * DYNAMIC - set when ftrace_ops is registered to denote dynamically
- * allocated ftrace_ops which need special care
- * CONTROL - set manualy by ftrace_ops user to denote the ftrace_ops
- * could be controled by following calls:
- * ftrace_function_local_enable
- * ftrace_function_local_disable
- */
-enum {
- FTRACE_OPS_FL_ENABLED = 1 << 0,
- FTRACE_OPS_FL_GLOBAL = 1 << 1,
- FTRACE_OPS_FL_DYNAMIC = 1 << 2,
- FTRACE_OPS_FL_CONTROL = 1 << 3,
-};
-
-struct ftrace_ops {
- ftrace_func_t func;
- struct ftrace_ops *next;
- unsigned long flags;
- int __percpu *disabled;
-#ifdef CONFIG_DYNAMIC_FTRACE
- struct ftrace_hash *notrace_hash;
- struct ftrace_hash *filter_hash;
-#endif
-};
-
-extern int function_trace_stop;
-
-/*
- * Type of the current tracing.
- */
-enum ftrace_tracing_type_t {
- FTRACE_TYPE_ENTER = 0, /* Hook the call of the function */
- FTRACE_TYPE_RETURN, /* Hook the return of the function */
-};
-
-/* Current tracing type, default is FTRACE_TYPE_ENTER */
-extern enum ftrace_tracing_type_t ftrace_tracing_type;
-
-/**
- * ftrace_stop - stop function tracer.
- *
- * A quick way to stop the function tracer. Note this an on off switch,
- * it is not something that is recursive like preempt_disable.
- * This does not disable the calling of mcount, it only stops the
- * calling of functions from mcount.
- */
-static inline void ftrace_stop(void)
-{
- function_trace_stop = 1;
-}
-
-/**
- * ftrace_start - start the function tracer.
- *
- * This function is the inverse of ftrace_stop. This does not enable
- * the function tracing if the function tracer is disabled. This only
- * sets the function tracer flag to continue calling the functions
- * from mcount.
- */
-static inline void ftrace_start(void)
-{
- function_trace_stop = 0;
-}
-
-/*
- * The ftrace_ops must be a static and should also
- * be read_mostly. These functions do modify read_mostly variables
- * so use them sparely. Never free an ftrace_op or modify the
- * next pointer after it has been registered. Even after unregistering
- * it, the next pointer may still be used internally.
- */
-int register_ftrace_function(struct ftrace_ops *ops);
-int unregister_ftrace_function(struct ftrace_ops *ops);
-void clear_ftrace_function(void);
-
-/**
- * ftrace_function_local_enable - enable controlled ftrace_ops on current cpu
- *
- * This function enables tracing on current cpu by decreasing
- * the per cpu control variable.
- * It must be called with preemption disabled and only on ftrace_ops
- * registered with FTRACE_OPS_FL_CONTROL. If called without preemption
- * disabled, this_cpu_ptr will complain when CONFIG_DEBUG_PREEMPT is enabled.
- */
-static inline void ftrace_function_local_enable(struct ftrace_ops *ops)
-{
- if (WARN_ON_ONCE(!(ops->flags & FTRACE_OPS_FL_CONTROL)))
- return;
-
- (*this_cpu_ptr(ops->disabled))--;
-}
-
-/**
- * ftrace_function_local_disable - enable controlled ftrace_ops on current cpu
- *
- * This function enables tracing on current cpu by decreasing
- * the per cpu control variable.
- * It must be called with preemption disabled and only on ftrace_ops
- * registered with FTRACE_OPS_FL_CONTROL. If called without preemption
- * disabled, this_cpu_ptr will complain when CONFIG_DEBUG_PREEMPT is enabled.
- */
-static inline void ftrace_function_local_disable(struct ftrace_ops *ops)
-{
- if (WARN_ON_ONCE(!(ops->flags & FTRACE_OPS_FL_CONTROL)))
- return;
-
- (*this_cpu_ptr(ops->disabled))++;
-}
-
-/**
- * ftrace_function_local_disabled - returns ftrace_ops disabled value
- * on current cpu
- *
- * This function returns value of ftrace_ops::disabled on current cpu.
- * It must be called with preemption disabled and only on ftrace_ops
- * registered with FTRACE_OPS_FL_CONTROL. If called without preemption
- * disabled, this_cpu_ptr will complain when CONFIG_DEBUG_PREEMPT is enabled.
- */
-static inline int ftrace_function_local_disabled(struct ftrace_ops *ops)
-{
- WARN_ON_ONCE(!(ops->flags & FTRACE_OPS_FL_CONTROL));
- return *this_cpu_ptr(ops->disabled);
-}
-
-extern void ftrace_stub(unsigned long a0, unsigned long a1);
-
-#else /* !CONFIG_FUNCTION_TRACER */
-/*
- * (un)register_ftrace_function must be a macro since the ops parameter
- * must not be evaluated.
- */
-#define register_ftrace_function(ops) ({ 0; })
-#define unregister_ftrace_function(ops) ({ 0; })
-static inline void clear_ftrace_function(void) { }
-static inline void ftrace_kill(void) { }
-static inline void ftrace_stop(void) { }
-static inline void ftrace_start(void) { }
-#endif /* CONFIG_FUNCTION_TRACER */
-
-#ifdef CONFIG_STACK_TRACER
-extern int stack_tracer_enabled;
-int
-stack_trace_sysctl(struct ctl_table *table, int write,
- void __user *buffer, size_t *lenp,
- loff_t *ppos);
-#endif
-
-struct ftrace_func_command {
- struct list_head list;
- char *name;
- int (*func)(struct ftrace_hash *hash,
- char *func, char *cmd,
- char *params, int enable);
-};
-
-#ifdef CONFIG_DYNAMIC_FTRACE
-
-int ftrace_arch_code_modify_prepare(void);
-int ftrace_arch_code_modify_post_process(void);
-
-void ftrace_bug(int err, unsigned long ip);
-
-struct seq_file;
-
-struct ftrace_probe_ops {
- void (*func)(unsigned long ip,
- unsigned long parent_ip,
- void **data);
- int (*callback)(unsigned long ip, void **data);
- void (*free)(void **data);
- int (*print)(struct seq_file *m,
- unsigned long ip,
- struct ftrace_probe_ops *ops,
- void *data);
-};
-
-extern int
-register_ftrace_function_probe(char *glob, struct ftrace_probe_ops *ops,
- void *data);
-extern void
-unregister_ftrace_function_probe(char *glob, struct ftrace_probe_ops *ops,
- void *data);
-extern void
-unregister_ftrace_function_probe_func(char *glob, struct ftrace_probe_ops *ops);
-extern void unregister_ftrace_function_probe_all(char *glob);
-
-extern int ftrace_text_reserved(void *start, void *end);
-
-enum {
- FTRACE_FL_ENABLED = (1 << 30),
-};
-
-#define FTRACE_FL_MASK (0x3UL << 30)
-#define FTRACE_REF_MAX ((1 << 30) - 1)
-
-struct dyn_ftrace {
- union {
- unsigned long ip; /* address of mcount call-site */
- struct dyn_ftrace *freelist;
- };
- unsigned long flags;
- struct dyn_arch_ftrace arch;
-};
-
-int ftrace_force_update(void);
-int ftrace_set_filter(struct ftrace_ops *ops, unsigned char *buf,
- int len, int reset);
-int ftrace_set_notrace(struct ftrace_ops *ops, unsigned char *buf,
- int len, int reset);
-void ftrace_set_global_filter(unsigned char *buf, int len, int reset);
-void ftrace_set_global_notrace(unsigned char *buf, int len, int reset);
-void ftrace_free_filter(struct ftrace_ops *ops);
-
-int register_ftrace_command(struct ftrace_func_command *cmd);
-int unregister_ftrace_command(struct ftrace_func_command *cmd);
-
-enum {
- FTRACE_UPDATE_CALLS = (1 << 0),
- FTRACE_DISABLE_CALLS = (1 << 1),
- FTRACE_UPDATE_TRACE_FUNC = (1 << 2),
- FTRACE_START_FUNC_RET = (1 << 3),
- FTRACE_STOP_FUNC_RET = (1 << 4),
-};
-
-enum {
- FTRACE_UPDATE_IGNORE,
- FTRACE_UPDATE_MAKE_CALL,
- FTRACE_UPDATE_MAKE_NOP,
-};
-
-enum {
- FTRACE_ITER_FILTER = (1 << 0),
- FTRACE_ITER_NOTRACE = (1 << 1),
- FTRACE_ITER_PRINTALL = (1 << 2),
- FTRACE_ITER_DO_HASH = (1 << 3),
- FTRACE_ITER_HASH = (1 << 4),
- FTRACE_ITER_ENABLED = (1 << 5),
-};
-
-void arch_ftrace_update_code(int command);
-
-struct ftrace_rec_iter;
-
-struct ftrace_rec_iter *ftrace_rec_iter_start(void);
-struct ftrace_rec_iter *ftrace_rec_iter_next(struct ftrace_rec_iter *iter);
-struct dyn_ftrace *ftrace_rec_iter_record(struct ftrace_rec_iter *iter);
-
-int ftrace_update_record(struct dyn_ftrace *rec, int enable);
-int ftrace_test_record(struct dyn_ftrace *rec, int enable);
-void ftrace_run_stop_machine(int command);
-int ftrace_location(unsigned long ip);
-
-extern ftrace_func_t ftrace_trace_function;
-
-int ftrace_regex_open(struct ftrace_ops *ops, int flag,
- struct inode *inode, struct file *file);
-ssize_t ftrace_filter_write(struct file *file, const char __user *ubuf,
- size_t cnt, loff_t *ppos);
-ssize_t ftrace_notrace_write(struct file *file, const char __user *ubuf,
- size_t cnt, loff_t *ppos);
-loff_t ftrace_regex_lseek(struct file *file, loff_t offset, int origin);
-int ftrace_regex_release(struct inode *inode, struct file *file);
-
-void __init
-ftrace_set_early_filter(struct ftrace_ops *ops, char *buf, int enable);
-
-/* defined in arch */
-extern int ftrace_ip_converted(unsigned long ip);
-extern int ftrace_dyn_arch_init(void *data);
-extern int ftrace_update_ftrace_func(ftrace_func_t func);
-extern void ftrace_caller(void);
-extern void ftrace_call(void);
-extern void mcount_call(void);
-
-#ifndef FTRACE_ADDR
-#define FTRACE_ADDR ((unsigned long)ftrace_caller)
-#endif
-#ifdef CONFIG_FUNCTION_GRAPH_TRACER
-extern void ftrace_graph_caller(void);
-extern int ftrace_enable_ftrace_graph_caller(void);
-extern int ftrace_disable_ftrace_graph_caller(void);
-#else
-static inline int ftrace_enable_ftrace_graph_caller(void) { return 0; }
-static inline int ftrace_disable_ftrace_graph_caller(void) { return 0; }
-#endif
-
-/**
- * ftrace_make_nop - convert code into nop
- * @mod: module structure if called by module load initialization
- * @rec: the mcount call site record
- * @addr: the address that the call site should be calling
- *
- * This is a very sensitive operation and great care needs
- * to be taken by the arch. The operation should carefully
- * read the location, check to see if what is read is indeed
- * what we expect it to be, and then on success of the compare,
- * it should write to the location.
- *
- * The code segment at @rec->ip should be a caller to @addr
- *
- * Return must be:
- * 0 on success
- * -EFAULT on error reading the location
- * -EINVAL on a failed compare of the contents
- * -EPERM on error writing to the location
- * Any other value will be considered a failure.
- */
-extern int ftrace_make_nop(struct module *mod,
- struct dyn_ftrace *rec, unsigned long addr);
-
-/**
- * ftrace_make_call - convert a nop call site into a call to addr
- * @rec: the mcount call site record
- * @addr: the address that the call site should call
- *
- * This is a very sensitive operation and great care needs
- * to be taken by the arch. The operation should carefully
- * read the location, check to see if what is read is indeed
- * what we expect it to be, and then on success of the compare,
- * it should write to the location.
- *
- * The code segment at @rec->ip should be a nop
- *
- * Return must be:
- * 0 on success
- * -EFAULT on error reading the location
- * -EINVAL on a failed compare of the contents
- * -EPERM on error writing to the location
- * Any other value will be considered a failure.
- */
-extern int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr);
-
-/* May be defined in arch */
-extern int ftrace_arch_read_dyn_info(char *buf, int size);
-
-extern int skip_trace(unsigned long ip);
-
-extern void ftrace_disable_daemon(void);
-extern void ftrace_enable_daemon(void);
-#else
-static inline int skip_trace(unsigned long ip) { return 0; }
-static inline int ftrace_force_update(void) { return 0; }
-static inline void ftrace_disable_daemon(void) { }
-static inline void ftrace_enable_daemon(void) { }
-static inline void ftrace_release_mod(struct module *mod) {}
-static inline int register_ftrace_command(struct ftrace_func_command *cmd)
-{
- return -EINVAL;
-}
-static inline int unregister_ftrace_command(char *cmd_name)
-{
- return -EINVAL;
-}
-static inline int ftrace_text_reserved(void *start, void *end)
-{
- return 0;
-}
-
-/*
- * Again users of functions that have ftrace_ops may not
- * have them defined when ftrace is not enabled, but these
- * functions may still be called. Use a macro instead of inline.
- */
-#define ftrace_regex_open(ops, flag, inod, file) ({ -ENODEV; })
-#define ftrace_set_early_filter(ops, buf, enable) do { } while (0)
-#define ftrace_set_filter(ops, buf, len, reset) ({ -ENODEV; })
-#define ftrace_set_notrace(ops, buf, len, reset) ({ -ENODEV; })
-#define ftrace_free_filter(ops) do { } while (0)
-
-static inline ssize_t ftrace_filter_write(struct file *file, const char __user *ubuf,
- size_t cnt, loff_t *ppos) { return -ENODEV; }
-static inline ssize_t ftrace_notrace_write(struct file *file, const char __user *ubuf,
- size_t cnt, loff_t *ppos) { return -ENODEV; }
-static inline loff_t ftrace_regex_lseek(struct file *file, loff_t offset, int origin)
-{
- return -ENODEV;
-}
-static inline int
-ftrace_regex_release(struct inode *inode, struct file *file) { return -ENODEV; }
-#endif /* CONFIG_DYNAMIC_FTRACE */
-
-/* totally disable ftrace - can not re-enable after this */
-void ftrace_kill(void);
-
-static inline void tracer_disable(void)
-{
-#ifdef CONFIG_FUNCTION_TRACER
- ftrace_enabled = 0;
-#endif
-}
-
-/*
- * Ftrace disable/restore without lock. Some synchronization mechanism
- * must be used to prevent ftrace_enabled to be changed between
- * disable/restore.
- */
-static inline int __ftrace_enabled_save(void)
-{
-#ifdef CONFIG_FUNCTION_TRACER
- int saved_ftrace_enabled = ftrace_enabled;
- ftrace_enabled = 0;
- return saved_ftrace_enabled;
-#else
- return 0;
-#endif
-}
-
-static inline void __ftrace_enabled_restore(int enabled)
-{
-#ifdef CONFIG_FUNCTION_TRACER
- ftrace_enabled = enabled;
-#endif
-}
-
-#ifndef HAVE_ARCH_CALLER_ADDR
-# ifdef CONFIG_FRAME_POINTER
-# define CALLER_ADDR0 ((unsigned long)__builtin_return_address(0))
-# define CALLER_ADDR1 ((unsigned long)__builtin_return_address(1))
-# define CALLER_ADDR2 ((unsigned long)__builtin_return_address(2))
-# define CALLER_ADDR3 ((unsigned long)__builtin_return_address(3))
-# define CALLER_ADDR4 ((unsigned long)__builtin_return_address(4))
-# define CALLER_ADDR5 ((unsigned long)__builtin_return_address(5))
-# define CALLER_ADDR6 ((unsigned long)__builtin_return_address(6))
-# else
-# define CALLER_ADDR0 ((unsigned long)__builtin_return_address(0))
-# define CALLER_ADDR1 0UL
-# define CALLER_ADDR2 0UL
-# define CALLER_ADDR3 0UL
-# define CALLER_ADDR4 0UL
-# define CALLER_ADDR5 0UL
-# define CALLER_ADDR6 0UL
-# endif
-#endif /* ifndef HAVE_ARCH_CALLER_ADDR */
-
-#ifdef CONFIG_IRQSOFF_TRACER
- extern void time_hardirqs_on(unsigned long a0, unsigned long a1);
- extern void time_hardirqs_off(unsigned long a0, unsigned long a1);
-#else
- static inline void time_hardirqs_on(unsigned long a0, unsigned long a1) { }
- static inline void time_hardirqs_off(unsigned long a0, unsigned long a1) { }
-#endif
-
-#ifdef CONFIG_PREEMPT_TRACER
- extern void trace_preempt_on(unsigned long a0, unsigned long a1);
- extern void trace_preempt_off(unsigned long a0, unsigned long a1);
-#else
- static inline void trace_preempt_on(unsigned long a0, unsigned long a1) { }
- static inline void trace_preempt_off(unsigned long a0, unsigned long a1) { }
-#endif
-
-#ifdef CONFIG_FTRACE_MCOUNT_RECORD
-extern void ftrace_init(void);
-#else
-static inline void ftrace_init(void) { }
-#endif
-
-/*
- * Structure that defines an entry function trace.
- */
-struct ftrace_graph_ent {
- unsigned long func; /* Current function */
- int depth;
-};
-
-/*
- * Structure that defines a return function trace.
- */
-struct ftrace_graph_ret {
- unsigned long func; /* Current function */
- unsigned long long calltime;
- unsigned long long rettime;
- /* Number of functions that overran the depth limit for current task */
- unsigned long overrun;
- int depth;
-};
-
-/* Type of the callback handlers for tracing function graph*/
-typedef void (*trace_func_graph_ret_t)(struct ftrace_graph_ret *); /* return */
-typedef int (*trace_func_graph_ent_t)(struct ftrace_graph_ent *); /* entry */
-
-#ifdef CONFIG_FUNCTION_GRAPH_TRACER
-
-/* for init task */
-#define INIT_FTRACE_GRAPH .ret_stack = NULL,
-
-/*
- * Stack of return addresses for functions
- * of a thread.
- * Used in struct thread_info
- */
-struct ftrace_ret_stack {
- unsigned long ret;
- unsigned long func;
- unsigned long long calltime;
- unsigned long long subtime;
- unsigned long fp;
-};
-
-/*
- * Primary handler of a function return.
- * It relays on ftrace_return_to_handler.
- * Defined in entry_32/64.S
- */
-extern void return_to_handler(void);
-
-extern int
-ftrace_push_return_trace(unsigned long ret, unsigned long func, int *depth,
- unsigned long frame_pointer);
-
-/*
- * Sometimes we don't want to trace a function with the function
- * graph tracer but we want them to keep traced by the usual function
- * tracer if the function graph tracer is not configured.
- */
-#define __notrace_funcgraph notrace
-
-/*
- * We want to which function is an entrypoint of a hardirq.
- * That will help us to put a signal on output.
- */
-#define __irq_entry __attribute__((__section__(".irqentry.text")))
-
-/* Limits of hardirq entrypoints */
-extern char __irqentry_text_start[];
-extern char __irqentry_text_end[];
-
-#define FTRACE_RETFUNC_DEPTH 50
-#define FTRACE_RETSTACK_ALLOC_SIZE 32
-extern int register_ftrace_graph(trace_func_graph_ret_t retfunc,
- trace_func_graph_ent_t entryfunc);
-
-extern void ftrace_graph_stop(void);
-
-/* The current handlers in use */
-extern trace_func_graph_ret_t ftrace_graph_return;
-extern trace_func_graph_ent_t ftrace_graph_entry;
-
-extern void unregister_ftrace_graph(void);
-
-extern void ftrace_graph_init_task(struct task_struct *t);
-extern void ftrace_graph_exit_task(struct task_struct *t);
-extern void ftrace_graph_init_idle_task(struct task_struct *t, int cpu);
-
-static inline int task_curr_ret_stack(struct task_struct *t)
-{
- return t->curr_ret_stack;
-}
-
-static inline void pause_graph_tracing(void)
-{
- atomic_inc(&current->tracing_graph_pause);
-}
-
-static inline void unpause_graph_tracing(void)
-{
- atomic_dec(&current->tracing_graph_pause);
-}
-#else /* !CONFIG_FUNCTION_GRAPH_TRACER */
-
-#define __notrace_funcgraph
-#define __irq_entry
-#define INIT_FTRACE_GRAPH
-
-static inline void ftrace_graph_init_task(struct task_struct *t) { }
-static inline void ftrace_graph_exit_task(struct task_struct *t) { }
-static inline void ftrace_graph_init_idle_task(struct task_struct *t, int cpu) { }
-
-static inline int register_ftrace_graph(trace_func_graph_ret_t retfunc,
- trace_func_graph_ent_t entryfunc)
-{
- return -1;
-}
-static inline void unregister_ftrace_graph(void) { }
-
-static inline int task_curr_ret_stack(struct task_struct *tsk)
-{
- return -1;
-}
-
-static inline void pause_graph_tracing(void) { }
-static inline void unpause_graph_tracing(void) { }
-#endif /* CONFIG_FUNCTION_GRAPH_TRACER */
-
-#ifdef CONFIG_TRACING
-
-/* flags for current->trace */
-enum {
- TSK_TRACE_FL_TRACE_BIT = 0,
- TSK_TRACE_FL_GRAPH_BIT = 1,
-};
-enum {
- TSK_TRACE_FL_TRACE = 1 << TSK_TRACE_FL_TRACE_BIT,
- TSK_TRACE_FL_GRAPH = 1 << TSK_TRACE_FL_GRAPH_BIT,
-};
-
-static inline void set_tsk_trace_trace(struct task_struct *tsk)
-{
- set_bit(TSK_TRACE_FL_TRACE_BIT, &tsk->trace);
-}
-
-static inline void clear_tsk_trace_trace(struct task_struct *tsk)
-{
- clear_bit(TSK_TRACE_FL_TRACE_BIT, &tsk->trace);
-}
-
-static inline int test_tsk_trace_trace(struct task_struct *tsk)
-{
- return tsk->trace & TSK_TRACE_FL_TRACE;
-}
-
-static inline void set_tsk_trace_graph(struct task_struct *tsk)
-{
- set_bit(TSK_TRACE_FL_GRAPH_BIT, &tsk->trace);
-}
-
-static inline void clear_tsk_trace_graph(struct task_struct *tsk)
-{
- clear_bit(TSK_TRACE_FL_GRAPH_BIT, &tsk->trace);
-}
-
-static inline int test_tsk_trace_graph(struct task_struct *tsk)
-{
- return tsk->trace & TSK_TRACE_FL_GRAPH;
-}
-
-enum ftrace_dump_mode;
-
-extern enum ftrace_dump_mode ftrace_dump_on_oops;
-
-#ifdef CONFIG_PREEMPT
-#define INIT_TRACE_RECURSION .trace_recursion = 0,
-#endif
-
-#endif /* CONFIG_TRACING */
-
-#ifndef INIT_TRACE_RECURSION
-#define INIT_TRACE_RECURSION
-#endif
-
-#ifdef CONFIG_FTRACE_SYSCALLS
-
-unsigned long arch_syscall_addr(int nr);
-
-#endif /* CONFIG_FTRACE_SYSCALLS */
-
-#endif /* _LINUX_FTRACE_H */
diff --git a/ANDROID_3.4.5/include/linux/ftrace_event.h b/ANDROID_3.4.5/include/linux/ftrace_event.h
deleted file mode 100644
index 176a939d..00000000
--- a/ANDROID_3.4.5/include/linux/ftrace_event.h
+++ /dev/null
@@ -1,312 +0,0 @@
-#ifndef _LINUX_FTRACE_EVENT_H
-#define _LINUX_FTRACE_EVENT_H
-
-#include <linux/ring_buffer.h>
-#include <linux/trace_seq.h>
-#include <linux/percpu.h>
-#include <linux/hardirq.h>
-#include <linux/perf_event.h>
-
-struct trace_array;
-struct tracer;
-struct dentry;
-
-struct trace_print_flags {
- unsigned long mask;
- const char *name;
-};
-
-struct trace_print_flags_u64 {
- unsigned long long mask;
- const char *name;
-};
-
-const char *ftrace_print_flags_seq(struct trace_seq *p, const char *delim,
- unsigned long flags,
- const struct trace_print_flags *flag_array);
-
-const char *ftrace_print_symbols_seq(struct trace_seq *p, unsigned long val,
- const struct trace_print_flags *symbol_array);
-
-#if BITS_PER_LONG == 32
-const char *ftrace_print_symbols_seq_u64(struct trace_seq *p,
- unsigned long long val,
- const struct trace_print_flags_u64
- *symbol_array);
-#endif
-
-const char *ftrace_print_hex_seq(struct trace_seq *p,
- const unsigned char *buf, int len);
-
-/*
- * The trace entry - the most basic unit of tracing. This is what
- * is printed in the end as a single line in the trace output, such as:
- *
- * bash-15816 [01] 235.197585: idle_cpu <- irq_enter
- */
-struct trace_entry {
- unsigned short type;
- unsigned char flags;
- unsigned char preempt_count;
- int pid;
- int padding;
-};
-
-#define FTRACE_MAX_EVENT \
- ((1 << (sizeof(((struct trace_entry *)0)->type) * 8)) - 1)
-
-/*
- * Trace iterator - used by printout routines who present trace
- * results to users and which routines might sleep, etc:
- */
-struct trace_iterator {
- struct trace_array *tr;
- struct tracer *trace;
- void *private;
- int cpu_file;
- struct mutex mutex;
- struct ring_buffer_iter *buffer_iter[NR_CPUS];
- unsigned long iter_flags;
-
- /* trace_seq for __print_flags() and __print_symbolic() etc. */
- struct trace_seq tmp_seq;
-
- /* The below is zeroed out in pipe_read */
- struct trace_seq seq;
- struct trace_entry *ent;
- unsigned long lost_events;
- int leftover;
- int ent_size;
- int cpu;
- u64 ts;
-
- loff_t pos;
- long idx;
-
- cpumask_var_t started;
-};
-
-
-struct trace_event;
-
-typedef enum print_line_t (*trace_print_func)(struct trace_iterator *iter,
- int flags, struct trace_event *event);
-
-struct trace_event_functions {
- trace_print_func trace;
- trace_print_func raw;
- trace_print_func hex;
- trace_print_func binary;
-};
-
-struct trace_event {
- struct hlist_node node;
- struct list_head list;
- int type;
- struct trace_event_functions *funcs;
-};
-
-extern int register_ftrace_event(struct trace_event *event);
-extern int unregister_ftrace_event(struct trace_event *event);
-
-/* Return values for print_line callback */
-enum print_line_t {
- TRACE_TYPE_PARTIAL_LINE = 0, /* Retry after flushing the seq */
- TRACE_TYPE_HANDLED = 1,
- TRACE_TYPE_UNHANDLED = 2, /* Relay to other output functions */
- TRACE_TYPE_NO_CONSUME = 3 /* Handled but ask to not consume */
-};
-
-void tracing_generic_entry_update(struct trace_entry *entry,
- unsigned long flags,
- int pc);
-struct ring_buffer_event *
-trace_current_buffer_lock_reserve(struct ring_buffer **current_buffer,
- int type, unsigned long len,
- unsigned long flags, int pc);
-void trace_current_buffer_unlock_commit(struct ring_buffer *buffer,
- struct ring_buffer_event *event,
- unsigned long flags, int pc);
-void trace_nowake_buffer_unlock_commit(struct ring_buffer *buffer,
- struct ring_buffer_event *event,
- unsigned long flags, int pc);
-void trace_nowake_buffer_unlock_commit_regs(struct ring_buffer *buffer,
- struct ring_buffer_event *event,
- unsigned long flags, int pc,
- struct pt_regs *regs);
-void trace_current_buffer_discard_commit(struct ring_buffer *buffer,
- struct ring_buffer_event *event);
-
-void tracing_record_cmdline(struct task_struct *tsk);
-
-struct event_filter;
-
-enum trace_reg {
- TRACE_REG_REGISTER,
- TRACE_REG_UNREGISTER,
-#ifdef CONFIG_PERF_EVENTS
- TRACE_REG_PERF_REGISTER,
- TRACE_REG_PERF_UNREGISTER,
- TRACE_REG_PERF_OPEN,
- TRACE_REG_PERF_CLOSE,
- TRACE_REG_PERF_ADD,
- TRACE_REG_PERF_DEL,
-#endif
-};
-
-struct ftrace_event_call;
-
-struct ftrace_event_class {
- char *system;
- void *probe;
-#ifdef CONFIG_PERF_EVENTS
- void *perf_probe;
-#endif
- int (*reg)(struct ftrace_event_call *event,
- enum trace_reg type, void *data);
- int (*define_fields)(struct ftrace_event_call *);
- struct list_head *(*get_fields)(struct ftrace_event_call *);
- struct list_head fields;
- int (*raw_init)(struct ftrace_event_call *);
-};
-
-extern int ftrace_event_reg(struct ftrace_event_call *event,
- enum trace_reg type, void *data);
-
-enum {
- TRACE_EVENT_FL_ENABLED_BIT,
- TRACE_EVENT_FL_FILTERED_BIT,
- TRACE_EVENT_FL_RECORDED_CMD_BIT,
- TRACE_EVENT_FL_CAP_ANY_BIT,
- TRACE_EVENT_FL_NO_SET_FILTER_BIT,
- TRACE_EVENT_FL_IGNORE_ENABLE_BIT,
-};
-
-enum {
- TRACE_EVENT_FL_ENABLED = (1 << TRACE_EVENT_FL_ENABLED_BIT),
- TRACE_EVENT_FL_FILTERED = (1 << TRACE_EVENT_FL_FILTERED_BIT),
- TRACE_EVENT_FL_RECORDED_CMD = (1 << TRACE_EVENT_FL_RECORDED_CMD_BIT),
- TRACE_EVENT_FL_CAP_ANY = (1 << TRACE_EVENT_FL_CAP_ANY_BIT),
- TRACE_EVENT_FL_NO_SET_FILTER = (1 << TRACE_EVENT_FL_NO_SET_FILTER_BIT),
- TRACE_EVENT_FL_IGNORE_ENABLE = (1 << TRACE_EVENT_FL_IGNORE_ENABLE_BIT),
-};
-
-struct ftrace_event_call {
- struct list_head list;
- struct ftrace_event_class *class;
- char *name;
- struct dentry *dir;
- struct trace_event event;
- const char *print_fmt;
- struct event_filter *filter;
- void *mod;
- void *data;
-
- /*
- * 32 bit flags:
- * bit 1: enabled
- * bit 2: filter_active
- * bit 3: enabled cmd record
- *
- * Changes to flags must hold the event_mutex.
- *
- * Note: Reads of flags do not hold the event_mutex since
- * they occur in critical sections. But the way flags
- * is currently used, these changes do no affect the code
- * except that when a change is made, it may have a slight
- * delay in propagating the changes to other CPUs due to
- * caching and such.
- */
- unsigned int flags;
-
-#ifdef CONFIG_PERF_EVENTS
- int perf_refcount;
- struct hlist_head __percpu *perf_events;
-#endif
-};
-
-#define __TRACE_EVENT_FLAGS(name, value) \
- static int __init trace_init_flags_##name(void) \
- { \
- event_##name.flags = value; \
- return 0; \
- } \
- early_initcall(trace_init_flags_##name);
-
-#define PERF_MAX_TRACE_SIZE 2048
-
-#define MAX_FILTER_STR_VAL 256 /* Should handle KSYM_SYMBOL_LEN */
-
-extern void destroy_preds(struct ftrace_event_call *call);
-extern int filter_match_preds(struct event_filter *filter, void *rec);
-extern int filter_current_check_discard(struct ring_buffer *buffer,
- struct ftrace_event_call *call,
- void *rec,
- struct ring_buffer_event *event);
-
-enum {
- FILTER_OTHER = 0,
- FILTER_STATIC_STRING,
- FILTER_DYN_STRING,
- FILTER_PTR_STRING,
- FILTER_TRACE_FN,
-};
-
-#define EVENT_STORAGE_SIZE 128
-extern struct mutex event_storage_mutex;
-extern char event_storage[EVENT_STORAGE_SIZE];
-
-extern int trace_event_raw_init(struct ftrace_event_call *call);
-extern int trace_define_field(struct ftrace_event_call *call, const char *type,
- const char *name, int offset, int size,
- int is_signed, int filter_type);
-extern int trace_add_event_call(struct ftrace_event_call *call);
-extern void trace_remove_event_call(struct ftrace_event_call *call);
-
-#define is_signed_type(type) (((type)(-1)) < 0)
-
-int trace_set_clr_event(const char *system, const char *event, int set);
-
-/*
- * The double __builtin_constant_p is because gcc will give us an error
- * if we try to allocate the static variable to fmt if it is not a
- * constant. Even with the outer if statement optimizing out.
- */
-#define event_trace_printk(ip, fmt, args...) \
-do { \
- __trace_printk_check_format(fmt, ##args); \
- tracing_record_cmdline(current); \
- if (__builtin_constant_p(fmt)) { \
- static const char *trace_printk_fmt \
- __attribute__((section("__trace_printk_fmt"))) = \
- __builtin_constant_p(fmt) ? fmt : NULL; \
- \
- __trace_bprintk(ip, trace_printk_fmt, ##args); \
- } else \
- __trace_printk(ip, fmt, ##args); \
-} while (0)
-
-#ifdef CONFIG_PERF_EVENTS
-struct perf_event;
-
-DECLARE_PER_CPU(struct pt_regs, perf_trace_regs);
-
-extern int perf_trace_init(struct perf_event *event);
-extern void perf_trace_destroy(struct perf_event *event);
-extern int perf_trace_add(struct perf_event *event, int flags);
-extern void perf_trace_del(struct perf_event *event, int flags);
-extern int ftrace_profile_set_filter(struct perf_event *event, int event_id,
- char *filter_str);
-extern void ftrace_profile_free_filter(struct perf_event *event);
-extern void *perf_trace_buf_prepare(int size, unsigned short type,
- struct pt_regs *regs, int *rctxp);
-
-static inline void
-perf_trace_buf_submit(void *raw_data, int size, int rctx, u64 addr,
- u64 count, struct pt_regs *regs, void *head)
-{
- perf_tp_event(addr, count, raw_data, size, regs, head, rctx);
-}
-#endif
-
-#endif /* _LINUX_FTRACE_EVENT_H */
diff --git a/ANDROID_3.4.5/include/linux/ftrace_irq.h b/ANDROID_3.4.5/include/linux/ftrace_irq.h
deleted file mode 100644
index dca7bf8c..00000000
--- a/ANDROID_3.4.5/include/linux/ftrace_irq.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef _LINUX_FTRACE_IRQ_H
-#define _LINUX_FTRACE_IRQ_H
-
-
-#ifdef CONFIG_FTRACE_NMI_ENTER
-extern void ftrace_nmi_enter(void);
-extern void ftrace_nmi_exit(void);
-#else
-static inline void ftrace_nmi_enter(void) { }
-static inline void ftrace_nmi_exit(void) { }
-#endif
-
-#endif /* _LINUX_FTRACE_IRQ_H */
diff --git a/ANDROID_3.4.5/include/linux/fuse.h b/ANDROID_3.4.5/include/linux/fuse.h
deleted file mode 100644
index 8f2ab8fe..00000000
--- a/ANDROID_3.4.5/include/linux/fuse.h
+++ /dev/null
@@ -1,648 +0,0 @@
-/*
- FUSE: Filesystem in Userspace
- Copyright (C) 2001-2008 Miklos Szeredi <miklos@szeredi.hu>
-
- This program can be distributed under the terms of the GNU GPL.
- See the file COPYING.
-*/
-
-/*
- * This file defines the kernel interface of FUSE
- *
- * Protocol changelog:
- *
- * 7.9:
- * - new fuse_getattr_in input argument of GETATTR
- * - add lk_flags in fuse_lk_in
- * - add lock_owner field to fuse_setattr_in, fuse_read_in and fuse_write_in
- * - add blksize field to fuse_attr
- * - add file flags field to fuse_read_in and fuse_write_in
- *
- * 7.10
- * - add nonseekable open flag
- *
- * 7.11
- * - add IOCTL message
- * - add unsolicited notification support
- * - add POLL message and NOTIFY_POLL notification
- *
- * 7.12
- * - add umask flag to input argument of open, mknod and mkdir
- * - add notification messages for invalidation of inodes and
- * directory entries
- *
- * 7.13
- * - make max number of background requests and congestion threshold
- * tunables
- *
- * 7.14
- * - add splice support to fuse device
- *
- * 7.15
- * - add store notify
- * - add retrieve notify
- *
- * 7.16
- * - add BATCH_FORGET request
- * - FUSE_IOCTL_UNRESTRICTED shall now return with array of 'struct
- * fuse_ioctl_iovec' instead of ambiguous 'struct iovec'
- * - add FUSE_IOCTL_32BIT flag
- *
- * 7.17
- * - add FUSE_FLOCK_LOCKS and FUSE_RELEASE_FLOCK_UNLOCK
- *
- * 7.18
- * - add FUSE_IOCTL_DIR flag
- * - add FUSE_NOTIFY_DELETE
- */
-
-#ifndef _LINUX_FUSE_H
-#define _LINUX_FUSE_H
-
-#include <linux/types.h>
-
-/*
- * Version negotiation:
- *
- * Both the kernel and userspace send the version they support in the
- * INIT request and reply respectively.
- *
- * If the major versions match then both shall use the smallest
- * of the two minor versions for communication.
- *
- * If the kernel supports a larger major version, then userspace shall
- * reply with the major version it supports, ignore the rest of the
- * INIT message and expect a new INIT message from the kernel with a
- * matching major version.
- *
- * If the library supports a larger major version, then it shall fall
- * back to the major protocol version sent by the kernel for
- * communication and reply with that major version (and an arbitrary
- * supported minor version).
- */
-
-/** Version number of this interface */
-#define FUSE_KERNEL_VERSION 7
-
-/** Minor version number of this interface */
-#define FUSE_KERNEL_MINOR_VERSION 18
-
-/** The node ID of the root inode */
-#define FUSE_ROOT_ID 1
-
-/* Make sure all structures are padded to 64bit boundary, so 32bit
- userspace works under 64bit kernels */
-
-struct fuse_attr {
- __u64 ino;
- __u64 size;
- __u64 blocks;
- __u64 atime;
- __u64 mtime;
- __u64 ctime;
- __u32 atimensec;
- __u32 mtimensec;
- __u32 ctimensec;
- __u32 mode;
- __u32 nlink;
- __u32 uid;
- __u32 gid;
- __u32 rdev;
- __u32 blksize;
- __u32 padding;
-};
-
-struct fuse_kstatfs {
- __u64 blocks;
- __u64 bfree;
- __u64 bavail;
- __u64 files;
- __u64 ffree;
- __u32 bsize;
- __u32 namelen;
- __u32 frsize;
- __u32 padding;
- __u32 spare[6];
-};
-
-struct fuse_file_lock {
- __u64 start;
- __u64 end;
- __u32 type;
- __u32 pid; /* tgid */
-};
-
-/**
- * Bitmasks for fuse_setattr_in.valid
- */
-#define FATTR_MODE (1 << 0)
-#define FATTR_UID (1 << 1)
-#define FATTR_GID (1 << 2)
-#define FATTR_SIZE (1 << 3)
-#define FATTR_ATIME (1 << 4)
-#define FATTR_MTIME (1 << 5)
-#define FATTR_FH (1 << 6)
-#define FATTR_ATIME_NOW (1 << 7)
-#define FATTR_MTIME_NOW (1 << 8)
-#define FATTR_LOCKOWNER (1 << 9)
-
-/**
- * Flags returned by the OPEN request
- *
- * FOPEN_DIRECT_IO: bypass page cache for this open file
- * FOPEN_KEEP_CACHE: don't invalidate the data cache on open
- * FOPEN_NONSEEKABLE: the file is not seekable
- */
-#define FOPEN_DIRECT_IO (1 << 0)
-#define FOPEN_KEEP_CACHE (1 << 1)
-#define FOPEN_NONSEEKABLE (1 << 2)
-
-/**
- * INIT request/reply flags
- *
- * FUSE_POSIX_LOCKS: remote locking for POSIX file locks
- * FUSE_EXPORT_SUPPORT: filesystem handles lookups of "." and ".."
- * FUSE_DONT_MASK: don't apply umask to file mode on create operations
- * FUSE_FLOCK_LOCKS: remote locking for BSD style file locks
- */
-#define FUSE_ASYNC_READ (1 << 0)
-#define FUSE_POSIX_LOCKS (1 << 1)
-#define FUSE_FILE_OPS (1 << 2)
-#define FUSE_ATOMIC_O_TRUNC (1 << 3)
-#define FUSE_EXPORT_SUPPORT (1 << 4)
-#define FUSE_BIG_WRITES (1 << 5)
-#define FUSE_DONT_MASK (1 << 6)
-#define FUSE_FLOCK_LOCKS (1 << 10)
-
-/**
- * CUSE INIT request/reply flags
- *
- * CUSE_UNRESTRICTED_IOCTL: use unrestricted ioctl
- */
-#define CUSE_UNRESTRICTED_IOCTL (1 << 0)
-
-/**
- * Release flags
- */
-#define FUSE_RELEASE_FLUSH (1 << 0)
-#define FUSE_RELEASE_FLOCK_UNLOCK (1 << 1)
-
-/**
- * Getattr flags
- */
-#define FUSE_GETATTR_FH (1 << 0)
-
-/**
- * Lock flags
- */
-#define FUSE_LK_FLOCK (1 << 0)
-
-/**
- * WRITE flags
- *
- * FUSE_WRITE_CACHE: delayed write from page cache, file handle is guessed
- * FUSE_WRITE_LOCKOWNER: lock_owner field is valid
- */
-#define FUSE_WRITE_CACHE (1 << 0)
-#define FUSE_WRITE_LOCKOWNER (1 << 1)
-
-/**
- * Read flags
- */
-#define FUSE_READ_LOCKOWNER (1 << 1)
-
-/**
- * Ioctl flags
- *
- * FUSE_IOCTL_COMPAT: 32bit compat ioctl on 64bit machine
- * FUSE_IOCTL_UNRESTRICTED: not restricted to well-formed ioctls, retry allowed
- * FUSE_IOCTL_RETRY: retry with new iovecs
- * FUSE_IOCTL_32BIT: 32bit ioctl
- * FUSE_IOCTL_DIR: is a directory
- *
- * FUSE_IOCTL_MAX_IOV: maximum of in_iovecs + out_iovecs
- */
-#define FUSE_IOCTL_COMPAT (1 << 0)
-#define FUSE_IOCTL_UNRESTRICTED (1 << 1)
-#define FUSE_IOCTL_RETRY (1 << 2)
-#define FUSE_IOCTL_32BIT (1 << 3)
-#define FUSE_IOCTL_DIR (1 << 4)
-
-#define FUSE_IOCTL_MAX_IOV 256
-
-/**
- * Poll flags
- *
- * FUSE_POLL_SCHEDULE_NOTIFY: request poll notify
- */
-#define FUSE_POLL_SCHEDULE_NOTIFY (1 << 0)
-
-enum fuse_opcode {
- FUSE_LOOKUP = 1,
- FUSE_FORGET = 2, /* no reply */
- FUSE_GETATTR = 3,
- FUSE_SETATTR = 4,
- FUSE_READLINK = 5,
- FUSE_SYMLINK = 6,
- FUSE_MKNOD = 8,
- FUSE_MKDIR = 9,
- FUSE_UNLINK = 10,
- FUSE_RMDIR = 11,
- FUSE_RENAME = 12,
- FUSE_LINK = 13,
- FUSE_OPEN = 14,
- FUSE_READ = 15,
- FUSE_WRITE = 16,
- FUSE_STATFS = 17,
- FUSE_RELEASE = 18,
- FUSE_FSYNC = 20,
- FUSE_SETXATTR = 21,
- FUSE_GETXATTR = 22,
- FUSE_LISTXATTR = 23,
- FUSE_REMOVEXATTR = 24,
- FUSE_FLUSH = 25,
- FUSE_INIT = 26,
- FUSE_OPENDIR = 27,
- FUSE_READDIR = 28,
- FUSE_RELEASEDIR = 29,
- FUSE_FSYNCDIR = 30,
- FUSE_GETLK = 31,
- FUSE_SETLK = 32,
- FUSE_SETLKW = 33,
- FUSE_ACCESS = 34,
- FUSE_CREATE = 35,
- FUSE_INTERRUPT = 36,
- FUSE_BMAP = 37,
- FUSE_DESTROY = 38,
- FUSE_IOCTL = 39,
- FUSE_POLL = 40,
- FUSE_NOTIFY_REPLY = 41,
- FUSE_BATCH_FORGET = 42,
-
- /* CUSE specific operations */
- CUSE_INIT = 4096,
-};
-
-enum fuse_notify_code {
- FUSE_NOTIFY_POLL = 1,
- FUSE_NOTIFY_INVAL_INODE = 2,
- FUSE_NOTIFY_INVAL_ENTRY = 3,
- FUSE_NOTIFY_STORE = 4,
- FUSE_NOTIFY_RETRIEVE = 5,
- FUSE_NOTIFY_DELETE = 6,
- FUSE_NOTIFY_CODE_MAX,
-};
-
-/* The read buffer is required to be at least 8k, but may be much larger */
-#define FUSE_MIN_READ_BUFFER 8192
-
-#define FUSE_COMPAT_ENTRY_OUT_SIZE 120
-
-struct fuse_entry_out {
- __u64 nodeid; /* Inode ID */
- __u64 generation; /* Inode generation: nodeid:gen must
- be unique for the fs's lifetime */
- __u64 entry_valid; /* Cache timeout for the name */
- __u64 attr_valid; /* Cache timeout for the attributes */
- __u32 entry_valid_nsec;
- __u32 attr_valid_nsec;
- struct fuse_attr attr;
-};
-
-struct fuse_forget_in {
- __u64 nlookup;
-};
-
-struct fuse_forget_one {
- __u64 nodeid;
- __u64 nlookup;
-};
-
-struct fuse_batch_forget_in {
- __u32 count;
- __u32 dummy;
-};
-
-struct fuse_getattr_in {
- __u32 getattr_flags;
- __u32 dummy;
- __u64 fh;
-};
-
-#define FUSE_COMPAT_ATTR_OUT_SIZE 96
-
-struct fuse_attr_out {
- __u64 attr_valid; /* Cache timeout for the attributes */
- __u32 attr_valid_nsec;
- __u32 dummy;
- struct fuse_attr attr;
-};
-
-#define FUSE_COMPAT_MKNOD_IN_SIZE 8
-
-struct fuse_mknod_in {
- __u32 mode;
- __u32 rdev;
- __u32 umask;
- __u32 padding;
-};
-
-struct fuse_mkdir_in {
- __u32 mode;
- __u32 umask;
-};
-
-struct fuse_rename_in {
- __u64 newdir;
-};
-
-struct fuse_link_in {
- __u64 oldnodeid;
-};
-
-struct fuse_setattr_in {
- __u32 valid;
- __u32 padding;
- __u64 fh;
- __u64 size;
- __u64 lock_owner;
- __u64 atime;
- __u64 mtime;
- __u64 unused2;
- __u32 atimensec;
- __u32 mtimensec;
- __u32 unused3;
- __u32 mode;
- __u32 unused4;
- __u32 uid;
- __u32 gid;
- __u32 unused5;
-};
-
-struct fuse_open_in {
- __u32 flags;
- __u32 unused;
-};
-
-struct fuse_create_in {
- __u32 flags;
- __u32 mode;
- __u32 umask;
- __u32 padding;
-};
-
-struct fuse_open_out {
- __u64 fh;
- __u32 open_flags;
- __u32 padding;
-};
-
-struct fuse_release_in {
- __u64 fh;
- __u32 flags;
- __u32 release_flags;
- __u64 lock_owner;
-};
-
-struct fuse_flush_in {
- __u64 fh;
- __u32 unused;
- __u32 padding;
- __u64 lock_owner;
-};
-
-struct fuse_read_in {
- __u64 fh;
- __u64 offset;
- __u32 size;
- __u32 read_flags;
- __u64 lock_owner;
- __u32 flags;
- __u32 padding;
-};
-
-#define FUSE_COMPAT_WRITE_IN_SIZE 24
-
-struct fuse_write_in {
- __u64 fh;
- __u64 offset;
- __u32 size;
- __u32 write_flags;
- __u64 lock_owner;
- __u32 flags;
- __u32 padding;
-};
-
-struct fuse_write_out {
- __u32 size;
- __u32 padding;
-};
-
-#define FUSE_COMPAT_STATFS_SIZE 48
-
-struct fuse_statfs_out {
- struct fuse_kstatfs st;
-};
-
-struct fuse_fsync_in {
- __u64 fh;
- __u32 fsync_flags;
- __u32 padding;
-};
-
-struct fuse_setxattr_in {
- __u32 size;
- __u32 flags;
-};
-
-struct fuse_getxattr_in {
- __u32 size;
- __u32 padding;
-};
-
-struct fuse_getxattr_out {
- __u32 size;
- __u32 padding;
-};
-
-struct fuse_lk_in {
- __u64 fh;
- __u64 owner;
- struct fuse_file_lock lk;
- __u32 lk_flags;
- __u32 padding;
-};
-
-struct fuse_lk_out {
- struct fuse_file_lock lk;
-};
-
-struct fuse_access_in {
- __u32 mask;
- __u32 padding;
-};
-
-struct fuse_init_in {
- __u32 major;
- __u32 minor;
- __u32 max_readahead;
- __u32 flags;
-};
-
-struct fuse_init_out {
- __u32 major;
- __u32 minor;
- __u32 max_readahead;
- __u32 flags;
- __u16 max_background;
- __u16 congestion_threshold;
- __u32 max_write;
-};
-
-#define CUSE_INIT_INFO_MAX 4096
-
-struct cuse_init_in {
- __u32 major;
- __u32 minor;
- __u32 unused;
- __u32 flags;
-};
-
-struct cuse_init_out {
- __u32 major;
- __u32 minor;
- __u32 unused;
- __u32 flags;
- __u32 max_read;
- __u32 max_write;
- __u32 dev_major; /* chardev major */
- __u32 dev_minor; /* chardev minor */
- __u32 spare[10];
-};
-
-struct fuse_interrupt_in {
- __u64 unique;
-};
-
-struct fuse_bmap_in {
- __u64 block;
- __u32 blocksize;
- __u32 padding;
-};
-
-struct fuse_bmap_out {
- __u64 block;
-};
-
-struct fuse_ioctl_in {
- __u64 fh;
- __u32 flags;
- __u32 cmd;
- __u64 arg;
- __u32 in_size;
- __u32 out_size;
-};
-
-struct fuse_ioctl_iovec {
- __u64 base;
- __u64 len;
-};
-
-struct fuse_ioctl_out {
- __s32 result;
- __u32 flags;
- __u32 in_iovs;
- __u32 out_iovs;
-};
-
-struct fuse_poll_in {
- __u64 fh;
- __u64 kh;
- __u32 flags;
- __u32 padding;
-};
-
-struct fuse_poll_out {
- __u32 revents;
- __u32 padding;
-};
-
-struct fuse_notify_poll_wakeup_out {
- __u64 kh;
-};
-
-struct fuse_in_header {
- __u32 len;
- __u32 opcode;
- __u64 unique;
- __u64 nodeid;
- __u32 uid;
- __u32 gid;
- __u32 pid;
- __u32 padding;
-};
-
-struct fuse_out_header {
- __u32 len;
- __s32 error;
- __u64 unique;
-};
-
-struct fuse_dirent {
- __u64 ino;
- __u64 off;
- __u32 namelen;
- __u32 type;
- char name[];
-};
-
-#define FUSE_NAME_OFFSET offsetof(struct fuse_dirent, name)
-#define FUSE_DIRENT_ALIGN(x) (((x) + sizeof(__u64) - 1) & ~(sizeof(__u64) - 1))
-#define FUSE_DIRENT_SIZE(d) \
- FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET + (d)->namelen)
-
-struct fuse_notify_inval_inode_out {
- __u64 ino;
- __s64 off;
- __s64 len;
-};
-
-struct fuse_notify_inval_entry_out {
- __u64 parent;
- __u32 namelen;
- __u32 padding;
-};
-
-struct fuse_notify_delete_out {
- __u64 parent;
- __u64 child;
- __u32 namelen;
- __u32 padding;
-};
-
-struct fuse_notify_store_out {
- __u64 nodeid;
- __u64 offset;
- __u32 size;
- __u32 padding;
-};
-
-struct fuse_notify_retrieve_out {
- __u64 notify_unique;
- __u64 nodeid;
- __u64 offset;
- __u32 size;
- __u32 padding;
-};
-
-/* Matches the size of fuse_write_in */
-struct fuse_notify_retrieve_in {
- __u64 dummy1;
- __u64 offset;
- __u32 size;
- __u32 dummy2;
- __u64 dummy3;
- __u64 dummy4;
-};
-
-#endif /* _LINUX_FUSE_H */
diff --git a/ANDROID_3.4.5/include/linux/futex.h b/ANDROID_3.4.5/include/linux/futex.h
deleted file mode 100644
index 1e5a26d7..00000000
--- a/ANDROID_3.4.5/include/linux/futex.h
+++ /dev/null
@@ -1,215 +0,0 @@
-#ifndef _LINUX_FUTEX_H
-#define _LINUX_FUTEX_H
-
-#include <linux/compiler.h>
-#include <linux/types.h>
-
-/* Second argument to futex syscall */
-
-
-#define FUTEX_WAIT 0
-#define FUTEX_WAKE 1
-#define FUTEX_FD 2
-#define FUTEX_REQUEUE 3
-#define FUTEX_CMP_REQUEUE 4
-#define FUTEX_WAKE_OP 5
-#define FUTEX_LOCK_PI 6
-#define FUTEX_UNLOCK_PI 7
-#define FUTEX_TRYLOCK_PI 8
-#define FUTEX_WAIT_BITSET 9
-#define FUTEX_WAKE_BITSET 10
-#define FUTEX_WAIT_REQUEUE_PI 11
-#define FUTEX_CMP_REQUEUE_PI 12
-
-#define FUTEX_PRIVATE_FLAG 128
-#define FUTEX_CLOCK_REALTIME 256
-#define FUTEX_CMD_MASK ~(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME)
-
-#define FUTEX_WAIT_PRIVATE (FUTEX_WAIT | FUTEX_PRIVATE_FLAG)
-#define FUTEX_WAKE_PRIVATE (FUTEX_WAKE | FUTEX_PRIVATE_FLAG)
-#define FUTEX_REQUEUE_PRIVATE (FUTEX_REQUEUE | FUTEX_PRIVATE_FLAG)
-#define FUTEX_CMP_REQUEUE_PRIVATE (FUTEX_CMP_REQUEUE | FUTEX_PRIVATE_FLAG)
-#define FUTEX_WAKE_OP_PRIVATE (FUTEX_WAKE_OP | FUTEX_PRIVATE_FLAG)
-#define FUTEX_LOCK_PI_PRIVATE (FUTEX_LOCK_PI | FUTEX_PRIVATE_FLAG)
-#define FUTEX_UNLOCK_PI_PRIVATE (FUTEX_UNLOCK_PI | FUTEX_PRIVATE_FLAG)
-#define FUTEX_TRYLOCK_PI_PRIVATE (FUTEX_TRYLOCK_PI | FUTEX_PRIVATE_FLAG)
-#define FUTEX_WAIT_BITSET_PRIVATE (FUTEX_WAIT_BITSET | FUTEX_PRIVATE_FLAG)
-#define FUTEX_WAKE_BITSET_PRIVATE (FUTEX_WAKE_BITSET | FUTEX_PRIVATE_FLAG)
-#define FUTEX_WAIT_REQUEUE_PI_PRIVATE (FUTEX_WAIT_REQUEUE_PI | \
- FUTEX_PRIVATE_FLAG)
-#define FUTEX_CMP_REQUEUE_PI_PRIVATE (FUTEX_CMP_REQUEUE_PI | \
- FUTEX_PRIVATE_FLAG)
-
-/*
- * Support for robust futexes: the kernel cleans up held futexes at
- * thread exit time.
- */
-
-/*
- * Per-lock list entry - embedded in user-space locks, somewhere close
- * to the futex field. (Note: user-space uses a double-linked list to
- * achieve O(1) list add and remove, but the kernel only needs to know
- * about the forward link)
- *
- * NOTE: this structure is part of the syscall ABI, and must not be
- * changed.
- */
-struct robust_list {
- struct robust_list __user *next;
-};
-
-/*
- * Per-thread list head:
- *
- * NOTE: this structure is part of the syscall ABI, and must only be
- * changed if the change is first communicated with the glibc folks.
- * (When an incompatible change is done, we'll increase the structure
- * size, which glibc will detect)
- */
-struct robust_list_head {
- /*
- * The head of the list. Points back to itself if empty:
- */
- struct robust_list list;
-
- /*
- * This relative offset is set by user-space, it gives the kernel
- * the relative position of the futex field to examine. This way
- * we keep userspace flexible, to freely shape its data-structure,
- * without hardcoding any particular offset into the kernel:
- */
- long futex_offset;
-
- /*
- * The death of the thread may race with userspace setting
- * up a lock's links. So to handle this race, userspace first
- * sets this field to the address of the to-be-taken lock,
- * then does the lock acquire, and then adds itself to the
- * list, and then clears this field. Hence the kernel will
- * always have full knowledge of all locks that the thread
- * _might_ have taken. We check the owner TID in any case,
- * so only truly owned locks will be handled.
- */
- struct robust_list __user *list_op_pending;
-};
-
-/*
- * Are there any waiters for this robust futex:
- */
-#define FUTEX_WAITERS 0x80000000
-
-/*
- * The kernel signals via this bit that a thread holding a futex
- * has exited without unlocking the futex. The kernel also does
- * a FUTEX_WAKE on such futexes, after setting the bit, to wake
- * up any possible waiters:
- */
-#define FUTEX_OWNER_DIED 0x40000000
-
-/*
- * The rest of the robust-futex field is for the TID:
- */
-#define FUTEX_TID_MASK 0x3fffffff
-
-/*
- * This limit protects against a deliberately circular list.
- * (Not worth introducing an rlimit for it)
- */
-#define ROBUST_LIST_LIMIT 2048
-
-/*
- * bitset with all bits set for the FUTEX_xxx_BITSET OPs to request a
- * match of any bit.
- */
-#define FUTEX_BITSET_MATCH_ANY 0xffffffff
-
-#ifdef __KERNEL__
-struct inode;
-struct mm_struct;
-struct task_struct;
-union ktime;
-
-long do_futex(u32 __user *uaddr, int op, u32 val, union ktime *timeout,
- u32 __user *uaddr2, u32 val2, u32 val3);
-
-extern int
-handle_futex_death(u32 __user *uaddr, struct task_struct *curr, int pi);
-
-/*
- * Futexes are matched on equal values of this key.
- * The key type depends on whether it's a shared or private mapping.
- * Don't rearrange members without looking at hash_futex().
- *
- * offset is aligned to a multiple of sizeof(u32) (== 4) by definition.
- * We use the two low order bits of offset to tell what is the kind of key :
- * 00 : Private process futex (PTHREAD_PROCESS_PRIVATE)
- * (no reference on an inode or mm)
- * 01 : Shared futex (PTHREAD_PROCESS_SHARED)
- * mapped on a file (reference on the underlying inode)
- * 10 : Shared futex (PTHREAD_PROCESS_SHARED)
- * (but private mapping on an mm, and reference taken on it)
-*/
-
-#define FUT_OFF_INODE 1 /* We set bit 0 if key has a reference on inode */
-#define FUT_OFF_MMSHARED 2 /* We set bit 1 if key has a reference on mm */
-
-union futex_key {
- struct {
- unsigned long pgoff;
- struct inode *inode;
- int offset;
- } shared;
- struct {
- unsigned long address;
- struct mm_struct *mm;
- int offset;
- } private;
- struct {
- unsigned long word;
- void *ptr;
- int offset;
- } both;
-};
-
-#define FUTEX_KEY_INIT (union futex_key) { .both = { .ptr = NULL } }
-
-#ifdef CONFIG_FUTEX
-extern void exit_robust_list(struct task_struct *curr);
-extern void exit_pi_state_list(struct task_struct *curr);
-extern int futex_cmpxchg_enabled;
-#else
-static inline void exit_robust_list(struct task_struct *curr)
-{
-}
-static inline void exit_pi_state_list(struct task_struct *curr)
-{
-}
-#endif
-#endif /* __KERNEL__ */
-
-#define FUTEX_OP_SET 0 /* *(int *)UADDR2 = OPARG; */
-#define FUTEX_OP_ADD 1 /* *(int *)UADDR2 += OPARG; */
-#define FUTEX_OP_OR 2 /* *(int *)UADDR2 |= OPARG; */
-#define FUTEX_OP_ANDN 3 /* *(int *)UADDR2 &= ~OPARG; */
-#define FUTEX_OP_XOR 4 /* *(int *)UADDR2 ^= OPARG; */
-
-#define FUTEX_OP_OPARG_SHIFT 8 /* Use (1 << OPARG) instead of OPARG. */
-
-#define FUTEX_OP_CMP_EQ 0 /* if (oldval == CMPARG) wake */
-#define FUTEX_OP_CMP_NE 1 /* if (oldval != CMPARG) wake */
-#define FUTEX_OP_CMP_LT 2 /* if (oldval < CMPARG) wake */
-#define FUTEX_OP_CMP_LE 3 /* if (oldval <= CMPARG) wake */
-#define FUTEX_OP_CMP_GT 4 /* if (oldval > CMPARG) wake */
-#define FUTEX_OP_CMP_GE 5 /* if (oldval >= CMPARG) wake */
-
-/* FUTEX_WAKE_OP will perform atomically
- int oldval = *(int *)UADDR2;
- *(int *)UADDR2 = oldval OP OPARG;
- if (oldval CMP CMPARG)
- wake UADDR2; */
-
-#define FUTEX_OP(op, oparg, cmp, cmparg) \
- (((op & 0xf) << 28) | ((cmp & 0xf) << 24) \
- | ((oparg & 0xfff) << 12) | (cmparg & 0xfff))
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/gameport.h b/ANDROID_3.4.5/include/linux/gameport.h
deleted file mode 100644
index b456b08d..00000000
--- a/ANDROID_3.4.5/include/linux/gameport.h
+++ /dev/null
@@ -1,226 +0,0 @@
-#ifndef _GAMEPORT_H
-#define _GAMEPORT_H
-
-/*
- * Copyright (c) 1999-2002 Vojtech Pavlik
- *
- * 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.
- */
-
-#ifdef __KERNEL__
-#include <asm/io.h>
-#include <linux/types.h>
-#include <linux/list.h>
-#include <linux/mutex.h>
-#include <linux/device.h>
-#include <linux/timer.h>
-#include <linux/slab.h>
-
-struct gameport {
-
- void *port_data; /* Private pointer for gameport drivers */
- char name[32];
- char phys[32];
-
- int io;
- int speed;
- int fuzz;
-
- void (*trigger)(struct gameport *);
- unsigned char (*read)(struct gameport *);
- int (*cooked_read)(struct gameport *, int *, int *);
- int (*calibrate)(struct gameport *, int *, int *);
- int (*open)(struct gameport *, int);
- void (*close)(struct gameport *);
-
- struct timer_list poll_timer;
- unsigned int poll_interval; /* in msecs */
- spinlock_t timer_lock;
- unsigned int poll_cnt;
- void (*poll_handler)(struct gameport *);
-
- struct gameport *parent, *child;
-
- struct gameport_driver *drv;
- struct mutex drv_mutex; /* protects serio->drv so attributes can pin driver */
-
- struct device dev;
-
- struct list_head node;
-};
-#define to_gameport_port(d) container_of(d, struct gameport, dev)
-
-struct gameport_driver {
- const char *description;
-
- int (*connect)(struct gameport *, struct gameport_driver *drv);
- int (*reconnect)(struct gameport *);
- void (*disconnect)(struct gameport *);
-
- struct device_driver driver;
-
- bool ignore;
-};
-#define to_gameport_driver(d) container_of(d, struct gameport_driver, driver)
-
-int gameport_open(struct gameport *gameport, struct gameport_driver *drv, int mode);
-void gameport_close(struct gameport *gameport);
-
-#if defined(CONFIG_GAMEPORT) || (defined(MODULE) && defined(CONFIG_GAMEPORT_MODULE))
-
-void __gameport_register_port(struct gameport *gameport, struct module *owner);
-/* use a define to avoid include chaining to get THIS_MODULE */
-#define gameport_register_port(gameport) \
- __gameport_register_port(gameport, THIS_MODULE)
-
-void gameport_unregister_port(struct gameport *gameport);
-
-__printf(2, 3)
-void gameport_set_phys(struct gameport *gameport, const char *fmt, ...);
-
-#else
-
-static inline void gameport_register_port(struct gameport *gameport)
-{
- return;
-}
-
-static inline void gameport_unregister_port(struct gameport *gameport)
-{
- return;
-}
-
-static inline __printf(2, 3)
-void gameport_set_phys(struct gameport *gameport, const char *fmt, ...)
-{
- return;
-}
-
-#endif
-
-static inline struct gameport *gameport_allocate_port(void)
-{
- struct gameport *gameport = kzalloc(sizeof(struct gameport), GFP_KERNEL);
-
- return gameport;
-}
-
-static inline void gameport_free_port(struct gameport *gameport)
-{
- kfree(gameport);
-}
-
-static inline void gameport_set_name(struct gameport *gameport, const char *name)
-{
- strlcpy(gameport->name, name, sizeof(gameport->name));
-}
-
-/*
- * Use the following functions to manipulate gameport's per-port
- * driver-specific data.
- */
-static inline void *gameport_get_drvdata(struct gameport *gameport)
-{
- return dev_get_drvdata(&gameport->dev);
-}
-
-static inline void gameport_set_drvdata(struct gameport *gameport, void *data)
-{
- dev_set_drvdata(&gameport->dev, data);
-}
-
-/*
- * Use the following functions to pin gameport's driver in process context
- */
-static inline int gameport_pin_driver(struct gameport *gameport)
-{
- return mutex_lock_interruptible(&gameport->drv_mutex);
-}
-
-static inline void gameport_unpin_driver(struct gameport *gameport)
-{
- mutex_unlock(&gameport->drv_mutex);
-}
-
-int __must_check __gameport_register_driver(struct gameport_driver *drv,
- struct module *owner, const char *mod_name);
-
-/* use a define to avoid include chaining to get THIS_MODULE & friends */
-#define gameport_register_driver(drv) \
- __gameport_register_driver(drv, THIS_MODULE, KBUILD_MODNAME)
-
-void gameport_unregister_driver(struct gameport_driver *drv);
-
-#endif /* __KERNEL__ */
-
-#define GAMEPORT_MODE_DISABLED 0
-#define GAMEPORT_MODE_RAW 1
-#define GAMEPORT_MODE_COOKED 2
-
-#define GAMEPORT_ID_VENDOR_ANALOG 0x0001
-#define GAMEPORT_ID_VENDOR_MADCATZ 0x0002
-#define GAMEPORT_ID_VENDOR_LOGITECH 0x0003
-#define GAMEPORT_ID_VENDOR_CREATIVE 0x0004
-#define GAMEPORT_ID_VENDOR_GENIUS 0x0005
-#define GAMEPORT_ID_VENDOR_INTERACT 0x0006
-#define GAMEPORT_ID_VENDOR_MICROSOFT 0x0007
-#define GAMEPORT_ID_VENDOR_THRUSTMASTER 0x0008
-#define GAMEPORT_ID_VENDOR_GRAVIS 0x0009
-#define GAMEPORT_ID_VENDOR_GUILLEMOT 0x000a
-
-#ifdef __KERNEL__
-
-static inline void gameport_trigger(struct gameport *gameport)
-{
- if (gameport->trigger)
- gameport->trigger(gameport);
- else
- outb(0xff, gameport->io);
-}
-
-static inline unsigned char gameport_read(struct gameport *gameport)
-{
- if (gameport->read)
- return gameport->read(gameport);
- else
- return inb(gameport->io);
-}
-
-static inline int gameport_cooked_read(struct gameport *gameport, int *axes, int *buttons)
-{
- if (gameport->cooked_read)
- return gameport->cooked_read(gameport, axes, buttons);
- else
- return -1;
-}
-
-static inline int gameport_calibrate(struct gameport *gameport, int *axes, int *max)
-{
- if (gameport->calibrate)
- return gameport->calibrate(gameport, axes, max);
- else
- return -1;
-}
-
-static inline int gameport_time(struct gameport *gameport, int time)
-{
- return (time * gameport->speed) / 1000;
-}
-
-static inline void gameport_set_poll_handler(struct gameport *gameport, void (*handler)(struct gameport *))
-{
- gameport->poll_handler = handler;
-}
-
-static inline void gameport_set_poll_interval(struct gameport *gameport, unsigned int msecs)
-{
- gameport->poll_interval = msecs;
-}
-
-void gameport_start_polling(struct gameport *gameport);
-void gameport_stop_polling(struct gameport *gameport);
-
-#endif /* __KERNEL__ */
-#endif
diff --git a/ANDROID_3.4.5/include/linux/gcd.h b/ANDROID_3.4.5/include/linux/gcd.h
deleted file mode 100644
index 69f5e8a0..00000000
--- a/ANDROID_3.4.5/include/linux/gcd.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef _GCD_H
-#define _GCD_H
-
-#include <linux/compiler.h>
-
-unsigned long gcd(unsigned long a, unsigned long b) __attribute_const__;
-
-#endif /* _GCD_H */
diff --git a/ANDROID_3.4.5/include/linux/gen_stats.h b/ANDROID_3.4.5/include/linux/gen_stats.h
deleted file mode 100644
index 552c8a0a..00000000
--- a/ANDROID_3.4.5/include/linux/gen_stats.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef __LINUX_GEN_STATS_H
-#define __LINUX_GEN_STATS_H
-
-#include <linux/types.h>
-
-enum {
- TCA_STATS_UNSPEC,
- TCA_STATS_BASIC,
- TCA_STATS_RATE_EST,
- TCA_STATS_QUEUE,
- TCA_STATS_APP,
- __TCA_STATS_MAX,
-};
-#define TCA_STATS_MAX (__TCA_STATS_MAX - 1)
-
-/**
- * struct gnet_stats_basic - byte/packet throughput statistics
- * @bytes: number of seen bytes
- * @packets: number of seen packets
- */
-struct gnet_stats_basic {
- __u64 bytes;
- __u32 packets;
-};
-struct gnet_stats_basic_packed {
- __u64 bytes;
- __u32 packets;
-} __attribute__ ((packed));
-
-/**
- * struct gnet_stats_rate_est - rate estimator
- * @bps: current byte rate
- * @pps: current packet rate
- */
-struct gnet_stats_rate_est {
- __u32 bps;
- __u32 pps;
-};
-
-/**
- * struct gnet_stats_queue - queuing statistics
- * @qlen: queue length
- * @backlog: backlog size of queue
- * @drops: number of dropped packets
- * @requeues: number of requeues
- * @overlimits: number of enqueues over the limit
- */
-struct gnet_stats_queue {
- __u32 qlen;
- __u32 backlog;
- __u32 drops;
- __u32 requeues;
- __u32 overlimits;
-};
-
-/**
- * struct gnet_estimator - rate estimator configuration
- * @interval: sampling period
- * @ewma_log: the log of measurement window weight
- */
-struct gnet_estimator {
- signed char interval;
- unsigned char ewma_log;
-};
-
-
-#endif /* __LINUX_GEN_STATS_H */
diff --git a/ANDROID_3.4.5/include/linux/genalloc.h b/ANDROID_3.4.5/include/linux/genalloc.h
deleted file mode 100644
index 5e98eeb2..00000000
--- a/ANDROID_3.4.5/include/linux/genalloc.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Basic general purpose allocator for managing special purpose
- * memory, for example, memory that is not managed by the regular
- * kmalloc/kfree interface. Uses for this includes on-device special
- * memory, uncached memory etc.
- *
- * It is safe to use the allocator in NMI handlers and other special
- * unblockable contexts that could otherwise deadlock on locks. This
- * is implemented by using atomic operations and retries on any
- * conflicts. The disadvantage is that there may be livelocks in
- * extreme cases. For better scalability, one allocator can be used
- * for each CPU.
- *
- * The lockless operation only works if there is enough memory
- * available. If new memory is added to the pool a lock has to be
- * still taken. So any user relying on locklessness has to ensure
- * that sufficient memory is preallocated.
- *
- * The basic atomic operation of this allocator is cmpxchg on long.
- * On architectures that don't have NMI-safe cmpxchg implementation,
- * the allocator can NOT be used in NMI handler. So code uses the
- * allocator in NMI handler should depend on
- * CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG.
- *
- * This source code is licensed under the GNU General Public License,
- * Version 2. See the file COPYING for more details.
- */
-
-
-#ifndef __GENALLOC_H__
-#define __GENALLOC_H__
-/*
- * General purpose special memory pool descriptor.
- */
-struct gen_pool {
- spinlock_t lock;
- struct list_head chunks; /* list of chunks in this pool */
- int min_alloc_order; /* minimum allocation order */
-};
-
-/*
- * General purpose special memory pool chunk descriptor.
- */
-struct gen_pool_chunk {
- struct list_head next_chunk; /* next chunk in pool */
- atomic_t avail;
- phys_addr_t phys_addr; /* physical starting address of memory chunk */
- unsigned long start_addr; /* starting address of memory chunk */
- unsigned long end_addr; /* ending address of memory chunk */
- unsigned long bits[0]; /* bitmap for allocating memory chunk */
-};
-
-extern struct gen_pool *gen_pool_create(int, int);
-extern phys_addr_t gen_pool_virt_to_phys(struct gen_pool *pool, unsigned long);
-extern int gen_pool_add_virt(struct gen_pool *, unsigned long, phys_addr_t,
- size_t, int);
-/**
- * gen_pool_add - add a new chunk of special memory to the pool
- * @pool: pool to add new memory chunk to
- * @addr: starting address of memory chunk to add to pool
- * @size: size in bytes of the memory chunk to add to pool
- * @nid: node id of the node the chunk structure and bitmap should be
- * allocated on, or -1
- *
- * Add a new chunk of special memory to the specified pool.
- *
- * Returns 0 on success or a -ve errno on failure.
- */
-static inline int gen_pool_add(struct gen_pool *pool, unsigned long addr,
- size_t size, int nid)
-{
- return gen_pool_add_virt(pool, addr, -1, size, nid);
-}
-extern void gen_pool_destroy(struct gen_pool *);
-extern unsigned long gen_pool_alloc(struct gen_pool *, size_t);
-extern void gen_pool_free(struct gen_pool *, unsigned long, size_t);
-extern void gen_pool_for_each_chunk(struct gen_pool *,
- void (*)(struct gen_pool *, struct gen_pool_chunk *, void *), void *);
-extern size_t gen_pool_avail(struct gen_pool *);
-extern size_t gen_pool_size(struct gen_pool *);
-#endif /* __GENALLOC_H__ */
diff --git a/ANDROID_3.4.5/include/linux/generic_acl.h b/ANDROID_3.4.5/include/linux/generic_acl.h
deleted file mode 100644
index b6d65754..00000000
--- a/ANDROID_3.4.5/include/linux/generic_acl.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef LINUX_GENERIC_ACL_H
-#define LINUX_GENERIC_ACL_H
-
-#include <linux/xattr.h>
-
-struct inode;
-
-extern const struct xattr_handler generic_acl_access_handler;
-extern const struct xattr_handler generic_acl_default_handler;
-
-int generic_acl_init(struct inode *, struct inode *);
-int generic_acl_chmod(struct inode *);
-
-#endif /* LINUX_GENERIC_ACL_H */
diff --git a/ANDROID_3.4.5/include/linux/generic_serial.h b/ANDROID_3.4.5/include/linux/generic_serial.h
deleted file mode 100644
index fadff285..00000000
--- a/ANDROID_3.4.5/include/linux/generic_serial.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * generic_serial.h
- *
- * Copyright (C) 1998 R.E.Wolff@BitWizard.nl
- *
- * written for the SX serial driver.
- * Contains the code that should be shared over all the serial drivers.
- *
- * Version 0.1 -- December, 1998.
- */
-
-#ifndef GENERIC_SERIAL_H
-#define GENERIC_SERIAL_H
-
-#ifdef __KERNEL__
-#include <linux/mutex.h>
-#include <linux/tty.h>
-
-struct real_driver {
- void (*disable_tx_interrupts) (void *);
- void (*enable_tx_interrupts) (void *);
- void (*disable_rx_interrupts) (void *);
- void (*enable_rx_interrupts) (void *);
- void (*shutdown_port) (void*);
- int (*set_real_termios) (void*);
- int (*chars_in_buffer) (void*);
- void (*close) (void*);
- void (*hungup) (void*);
- void (*getserial) (void*, struct serial_struct *sp);
-};
-
-
-
-struct gs_port {
- int magic;
- struct tty_port port;
- unsigned char *xmit_buf;
- int xmit_head;
- int xmit_tail;
- int xmit_cnt;
- struct mutex port_write_mutex;
- unsigned long event;
- unsigned short closing_wait;
- int close_delay;
- struct real_driver *rd;
- int wakeup_chars;
- int baud_base;
- int baud;
- int custom_divisor;
- spinlock_t driver_lock;
-};
-
-#endif /* __KERNEL__ */
-
-/* Flags */
-/* Warning: serial.h defines some ASYNC_ flags, they say they are "only"
- used in serial.c, but they are also used in all other serial drivers.
- Make sure they don't clash with these here... */
-#define GS_TX_INTEN 0x00800000
-#define GS_RX_INTEN 0x00400000
-#define GS_ACTIVE 0x00200000
-
-
-
-#define GS_TYPE_NORMAL 1
-
-#define GS_DEBUG_FLUSH 0x00000001
-#define GS_DEBUG_BTR 0x00000002
-#define GS_DEBUG_TERMIOS 0x00000004
-#define GS_DEBUG_STUFF 0x00000008
-#define GS_DEBUG_CLOSE 0x00000010
-#define GS_DEBUG_FLOW 0x00000020
-#define GS_DEBUG_WRITE 0x00000040
-
-#ifdef __KERNEL__
-int gs_put_char(struct tty_struct *tty, unsigned char ch);
-int gs_write(struct tty_struct *tty,
- const unsigned char *buf, int count);
-int gs_write_room(struct tty_struct *tty);
-int gs_chars_in_buffer(struct tty_struct *tty);
-void gs_flush_buffer(struct tty_struct *tty);
-void gs_flush_chars(struct tty_struct *tty);
-void gs_stop(struct tty_struct *tty);
-void gs_start(struct tty_struct *tty);
-void gs_hangup(struct tty_struct *tty);
-int gs_block_til_ready(void *port, struct file *filp);
-void gs_close(struct tty_struct *tty, struct file *filp);
-void gs_set_termios (struct tty_struct * tty,
- struct ktermios * old_termios);
-int gs_init_port(struct gs_port *port);
-int gs_setserial(struct gs_port *port, struct serial_struct __user *sp);
-int gs_getserial(struct gs_port *port, struct serial_struct __user *sp);
-void gs_got_break(struct gs_port *port);
-#endif /* __KERNEL__ */
-#endif
diff --git a/ANDROID_3.4.5/include/linux/genetlink.h b/ANDROID_3.4.5/include/linux/genetlink.h
deleted file mode 100644
index 73c28dea..00000000
--- a/ANDROID_3.4.5/include/linux/genetlink.h
+++ /dev/null
@@ -1,115 +0,0 @@
-#ifndef __LINUX_GENERIC_NETLINK_H
-#define __LINUX_GENERIC_NETLINK_H
-
-#include <linux/types.h>
-#include <linux/netlink.h>
-
-#define GENL_NAMSIZ 16 /* length of family name */
-
-#define GENL_MIN_ID NLMSG_MIN_TYPE
-#define GENL_MAX_ID 1023
-
-struct genlmsghdr {
- __u8 cmd;
- __u8 version;
- __u16 reserved;
-};
-
-#define GENL_HDRLEN NLMSG_ALIGN(sizeof(struct genlmsghdr))
-
-#define GENL_ADMIN_PERM 0x01
-#define GENL_CMD_CAP_DO 0x02
-#define GENL_CMD_CAP_DUMP 0x04
-#define GENL_CMD_CAP_HASPOL 0x08
-
-/*
- * List of reserved static generic netlink identifiers:
- */
-#define GENL_ID_GENERATE 0
-#define GENL_ID_CTRL NLMSG_MIN_TYPE
-
-/**************************************************************************
- * Controller
- **************************************************************************/
-
-enum {
- CTRL_CMD_UNSPEC,
- CTRL_CMD_NEWFAMILY,
- CTRL_CMD_DELFAMILY,
- CTRL_CMD_GETFAMILY,
- CTRL_CMD_NEWOPS,
- CTRL_CMD_DELOPS,
- CTRL_CMD_GETOPS,
- CTRL_CMD_NEWMCAST_GRP,
- CTRL_CMD_DELMCAST_GRP,
- CTRL_CMD_GETMCAST_GRP, /* unused */
- __CTRL_CMD_MAX,
-};
-
-#define CTRL_CMD_MAX (__CTRL_CMD_MAX - 1)
-
-enum {
- CTRL_ATTR_UNSPEC,
- CTRL_ATTR_FAMILY_ID,
- CTRL_ATTR_FAMILY_NAME,
- CTRL_ATTR_VERSION,
- CTRL_ATTR_HDRSIZE,
- CTRL_ATTR_MAXATTR,
- CTRL_ATTR_OPS,
- CTRL_ATTR_MCAST_GROUPS,
- __CTRL_ATTR_MAX,
-};
-
-#define CTRL_ATTR_MAX (__CTRL_ATTR_MAX - 1)
-
-enum {
- CTRL_ATTR_OP_UNSPEC,
- CTRL_ATTR_OP_ID,
- CTRL_ATTR_OP_FLAGS,
- __CTRL_ATTR_OP_MAX,
-};
-
-#define CTRL_ATTR_OP_MAX (__CTRL_ATTR_OP_MAX - 1)
-
-enum {
- CTRL_ATTR_MCAST_GRP_UNSPEC,
- CTRL_ATTR_MCAST_GRP_NAME,
- CTRL_ATTR_MCAST_GRP_ID,
- __CTRL_ATTR_MCAST_GRP_MAX,
-};
-
-#define CTRL_ATTR_MCAST_GRP_MAX (__CTRL_ATTR_MCAST_GRP_MAX - 1)
-
-#ifdef __KERNEL__
-
-/* All generic netlink requests are serialized by a global lock. */
-extern void genl_lock(void);
-extern void genl_unlock(void);
-#ifdef CONFIG_PROVE_LOCKING
-extern int lockdep_genl_is_held(void);
-#endif
-
-/**
- * rcu_dereference_genl - rcu_dereference with debug checking
- * @p: The pointer to read, prior to dereferencing
- *
- * Do an rcu_dereference(p), but check caller either holds rcu_read_lock()
- * or genl mutex. Note : Please prefer genl_dereference() or rcu_dereference()
- */
-#define rcu_dereference_genl(p) \
- rcu_dereference_check(p, lockdep_genl_is_held())
-
-/**
- * genl_dereference - fetch RCU pointer when updates are prevented by genl mutex
- * @p: The pointer to read, prior to dereferencing
- *
- * Return the value of the specified RCU-protected pointer, but omit
- * both the smp_read_barrier_depends() and the ACCESS_ONCE(), because
- * caller holds genl mutex.
- */
-#define genl_dereference(p) \
- rcu_dereference_protected(p, lockdep_genl_is_held())
-
-#endif /* __KERNEL__ */
-
-#endif /* __LINUX_GENERIC_NETLINK_H */
diff --git a/ANDROID_3.4.5/include/linux/genhd.h b/ANDROID_3.4.5/include/linux/genhd.h
deleted file mode 100644
index 017a7fb5..00000000
--- a/ANDROID_3.4.5/include/linux/genhd.h
+++ /dev/null
@@ -1,663 +0,0 @@
-#ifndef _LINUX_GENHD_H
-#define _LINUX_GENHD_H
-
-/*
- * genhd.h Copyright (C) 1992 Drew Eckhardt
- * Generic hard disk header file by
- * Drew Eckhardt
- *
- * <drew@colorado.edu>
- */
-
-#include <linux/types.h>
-#include <linux/kdev_t.h>
-#include <linux/rcupdate.h>
-#include <linux/slab.h>
-
-#ifdef CONFIG_BLOCK
-
-#define kobj_to_dev(k) container_of((k), struct device, kobj)
-#define dev_to_disk(device) container_of((device), struct gendisk, part0.__dev)
-#define dev_to_part(device) container_of((device), struct hd_struct, __dev)
-#define disk_to_dev(disk) (&(disk)->part0.__dev)
-#define part_to_dev(part) (&((part)->__dev))
-
-extern struct device_type part_type;
-extern struct kobject *block_depr;
-extern struct class block_class;
-
-enum {
-/* These three have identical behaviour; use the second one if DOS FDISK gets
- confused about extended/logical partitions starting past cylinder 1023. */
- DOS_EXTENDED_PARTITION = 5,
- LINUX_EXTENDED_PARTITION = 0x85,
- WIN98_EXTENDED_PARTITION = 0x0f,
-
- SUN_WHOLE_DISK = DOS_EXTENDED_PARTITION,
-
- LINUX_SWAP_PARTITION = 0x82,
- LINUX_DATA_PARTITION = 0x83,
- LINUX_LVM_PARTITION = 0x8e,
- LINUX_RAID_PARTITION = 0xfd, /* autodetect RAID partition */
-
- SOLARIS_X86_PARTITION = LINUX_SWAP_PARTITION,
- NEW_SOLARIS_X86_PARTITION = 0xbf,
-
- DM6_AUX1PARTITION = 0x51, /* no DDO: use xlated geom */
- DM6_AUX3PARTITION = 0x53, /* no DDO: use xlated geom */
- DM6_PARTITION = 0x54, /* has DDO: use xlated geom & offset */
- EZD_PARTITION = 0x55, /* EZ-DRIVE */
-
- FREEBSD_PARTITION = 0xa5, /* FreeBSD Partition ID */
- OPENBSD_PARTITION = 0xa6, /* OpenBSD Partition ID */
- NETBSD_PARTITION = 0xa9, /* NetBSD Partition ID */
- BSDI_PARTITION = 0xb7, /* BSDI Partition ID */
- MINIX_PARTITION = 0x81, /* Minix Partition ID */
- UNIXWARE_PARTITION = 0x63, /* Same as GNU_HURD and SCO Unix */
-};
-
-#define DISK_MAX_PARTS 256
-#define DISK_NAME_LEN 32
-
-#include <linux/major.h>
-#include <linux/device.h>
-#include <linux/smp.h>
-#include <linux/string.h>
-#include <linux/fs.h>
-#include <linux/workqueue.h>
-
-struct partition {
- unsigned char boot_ind; /* 0x80 - active */
- unsigned char head; /* starting head */
- unsigned char sector; /* starting sector */
- unsigned char cyl; /* starting cylinder */
- unsigned char sys_ind; /* What partition type */
- unsigned char end_head; /* end head */
- unsigned char end_sector; /* end sector */
- unsigned char end_cyl; /* end cylinder */
- __le32 start_sect; /* starting sector counting from 0 */
- __le32 nr_sects; /* nr of sectors in partition */
-} __attribute__((packed));
-
-struct disk_stats {
- unsigned long sectors[2]; /* READs and WRITEs */
- unsigned long ios[2];
- unsigned long merges[2];
- unsigned long ticks[2];
- unsigned long io_ticks;
- unsigned long time_in_queue;
-};
-
-#define PARTITION_META_INFO_VOLNAMELTH 64
-#define PARTITION_META_INFO_UUIDLTH 16
-
-struct partition_meta_info {
- u8 uuid[PARTITION_META_INFO_UUIDLTH]; /* always big endian */
- u8 volname[PARTITION_META_INFO_VOLNAMELTH];
-};
-
-struct hd_struct {
- sector_t start_sect;
- sector_t nr_sects;
- sector_t alignment_offset;
- unsigned int discard_alignment;
- struct device __dev;
- struct kobject *holder_dir;
- int policy, partno;
- struct partition_meta_info *info;
-#ifdef CONFIG_FAIL_MAKE_REQUEST
- int make_it_fail;
-#endif
- unsigned long stamp;
- atomic_t in_flight[2];
-#ifdef CONFIG_SMP
- struct disk_stats __percpu *dkstats;
-#else
- struct disk_stats dkstats;
-#endif
- atomic_t ref;
- struct rcu_head rcu_head;
-};
-
-#define GENHD_FL_REMOVABLE 1
-/* 2 is unused */
-#define GENHD_FL_MEDIA_CHANGE_NOTIFY 4
-#define GENHD_FL_CD 8
-#define GENHD_FL_UP 16
-#define GENHD_FL_SUPPRESS_PARTITION_INFO 32
-#define GENHD_FL_EXT_DEVT 64 /* allow extended devt */
-#define GENHD_FL_NATIVE_CAPACITY 128
-#define GENHD_FL_BLOCK_EVENTS_ON_EXCL_WRITE 256
-#define GENHD_FL_NO_PART_SCAN 512
-
-enum {
- DISK_EVENT_MEDIA_CHANGE = 1 << 0, /* media changed */
- DISK_EVENT_EJECT_REQUEST = 1 << 1, /* eject requested */
-};
-
-#define BLK_SCSI_MAX_CMDS (256)
-#define BLK_SCSI_CMD_PER_LONG (BLK_SCSI_MAX_CMDS / (sizeof(long) * 8))
-
-struct blk_scsi_cmd_filter {
- unsigned long read_ok[BLK_SCSI_CMD_PER_LONG];
- unsigned long write_ok[BLK_SCSI_CMD_PER_LONG];
- struct kobject kobj;
-};
-
-struct disk_part_tbl {
- struct rcu_head rcu_head;
- int len;
- struct hd_struct __rcu *last_lookup;
- struct hd_struct __rcu *part[];
-};
-
-struct disk_events;
-
-struct gendisk {
- /* major, first_minor and minors are input parameters only,
- * don't use directly. Use disk_devt() and disk_max_parts().
- */
- int major; /* major number of driver */
- int first_minor;
- int minors; /* maximum number of minors, =1 for
- * disks that can't be partitioned. */
-
- char disk_name[DISK_NAME_LEN]; /* name of major driver */
- char *(*devnode)(struct gendisk *gd, umode_t *mode);
-
- unsigned int events; /* supported events */
- unsigned int async_events; /* async events, subset of all */
-
- /* Array of pointers to partitions indexed by partno.
- * Protected with matching bdev lock but stat and other
- * non-critical accesses use RCU. Always access through
- * helpers.
- */
- struct disk_part_tbl __rcu *part_tbl;
- struct hd_struct part0;
-
- const struct block_device_operations *fops;
- struct request_queue *queue;
- void *private_data;
-
- int flags;
- struct device *driverfs_dev; // FIXME: remove
- struct kobject *slave_dir;
-
- struct timer_rand_state *random;
- atomic_t sync_io; /* RAID */
- struct disk_events *ev;
-#ifdef CONFIG_BLK_DEV_INTEGRITY
- struct blk_integrity *integrity;
-#endif
- int node_id;
-};
-
-static inline struct gendisk *part_to_disk(struct hd_struct *part)
-{
- if (likely(part)) {
- if (part->partno)
- return dev_to_disk(part_to_dev(part)->parent);
- else
- return dev_to_disk(part_to_dev(part));
- }
- return NULL;
-}
-
-static inline void part_pack_uuid(const u8 *uuid_str, u8 *to)
-{
- int i;
- for (i = 0; i < 16; ++i) {
- *to++ = (hex_to_bin(*uuid_str) << 4) |
- (hex_to_bin(*(uuid_str + 1)));
- uuid_str += 2;
- switch (i) {
- case 3:
- case 5:
- case 7:
- case 9:
- uuid_str++;
- continue;
- }
- }
-}
-
-static inline int disk_max_parts(struct gendisk *disk)
-{
- if (disk->flags & GENHD_FL_EXT_DEVT)
- return DISK_MAX_PARTS;
- return disk->minors;
-}
-
-static inline bool disk_part_scan_enabled(struct gendisk *disk)
-{
- return disk_max_parts(disk) > 1 &&
- !(disk->flags & GENHD_FL_NO_PART_SCAN);
-}
-
-static inline dev_t disk_devt(struct gendisk *disk)
-{
- return disk_to_dev(disk)->devt;
-}
-
-static inline dev_t part_devt(struct hd_struct *part)
-{
- return part_to_dev(part)->devt;
-}
-
-extern struct hd_struct *disk_get_part(struct gendisk *disk, int partno);
-
-static inline void disk_put_part(struct hd_struct *part)
-{
- if (likely(part))
- put_device(part_to_dev(part));
-}
-
-/*
- * Smarter partition iterator without context limits.
- */
-#define DISK_PITER_REVERSE (1 << 0) /* iterate in the reverse direction */
-#define DISK_PITER_INCL_EMPTY (1 << 1) /* include 0-sized parts */
-#define DISK_PITER_INCL_PART0 (1 << 2) /* include partition 0 */
-#define DISK_PITER_INCL_EMPTY_PART0 (1 << 3) /* include empty partition 0 */
-
-struct disk_part_iter {
- struct gendisk *disk;
- struct hd_struct *part;
- int idx;
- unsigned int flags;
-};
-
-extern void disk_part_iter_init(struct disk_part_iter *piter,
- struct gendisk *disk, unsigned int flags);
-extern struct hd_struct *disk_part_iter_next(struct disk_part_iter *piter);
-extern void disk_part_iter_exit(struct disk_part_iter *piter);
-
-extern struct hd_struct *disk_map_sector_rcu(struct gendisk *disk,
- sector_t sector);
-
-/*
- * Macros to operate on percpu disk statistics:
- *
- * {disk|part|all}_stat_{add|sub|inc|dec}() modify the stat counters
- * and should be called between disk_stat_lock() and
- * disk_stat_unlock().
- *
- * part_stat_read() can be called at any time.
- *
- * part_stat_{add|set_all}() and {init|free}_part_stats are for
- * internal use only.
- */
-#ifdef CONFIG_SMP
-#define part_stat_lock() ({ rcu_read_lock(); get_cpu(); })
-#define part_stat_unlock() do { put_cpu(); rcu_read_unlock(); } while (0)
-
-#define __part_stat_add(cpu, part, field, addnd) \
- (per_cpu_ptr((part)->dkstats, (cpu))->field += (addnd))
-
-#define part_stat_read(part, field) \
-({ \
- typeof((part)->dkstats->field) res = 0; \
- unsigned int _cpu; \
- for_each_possible_cpu(_cpu) \
- res += per_cpu_ptr((part)->dkstats, _cpu)->field; \
- res; \
-})
-
-static inline void part_stat_set_all(struct hd_struct *part, int value)
-{
- int i;
-
- for_each_possible_cpu(i)
- memset(per_cpu_ptr(part->dkstats, i), value,
- sizeof(struct disk_stats));
-}
-
-static inline int init_part_stats(struct hd_struct *part)
-{
- part->dkstats = alloc_percpu(struct disk_stats);
- if (!part->dkstats)
- return 0;
- return 1;
-}
-
-static inline void free_part_stats(struct hd_struct *part)
-{
- free_percpu(part->dkstats);
-}
-
-#else /* !CONFIG_SMP */
-#define part_stat_lock() ({ rcu_read_lock(); 0; })
-#define part_stat_unlock() rcu_read_unlock()
-
-#define __part_stat_add(cpu, part, field, addnd) \
- ((part)->dkstats.field += addnd)
-
-#define part_stat_read(part, field) ((part)->dkstats.field)
-
-static inline void part_stat_set_all(struct hd_struct *part, int value)
-{
- memset(&part->dkstats, value, sizeof(struct disk_stats));
-}
-
-static inline int init_part_stats(struct hd_struct *part)
-{
- return 1;
-}
-
-static inline void free_part_stats(struct hd_struct *part)
-{
-}
-
-#endif /* CONFIG_SMP */
-
-#define part_stat_add(cpu, part, field, addnd) do { \
- __part_stat_add((cpu), (part), field, addnd); \
- if ((part)->partno) \
- __part_stat_add((cpu), &part_to_disk((part))->part0, \
- field, addnd); \
-} while (0)
-
-#define part_stat_dec(cpu, gendiskp, field) \
- part_stat_add(cpu, gendiskp, field, -1)
-#define part_stat_inc(cpu, gendiskp, field) \
- part_stat_add(cpu, gendiskp, field, 1)
-#define part_stat_sub(cpu, gendiskp, field, subnd) \
- part_stat_add(cpu, gendiskp, field, -subnd)
-
-static inline void part_inc_in_flight(struct hd_struct *part, int rw)
-{
- atomic_inc(&part->in_flight[rw]);
- if (part->partno)
- atomic_inc(&part_to_disk(part)->part0.in_flight[rw]);
-}
-
-static inline void part_dec_in_flight(struct hd_struct *part, int rw)
-{
- atomic_dec(&part->in_flight[rw]);
- if (part->partno)
- atomic_dec(&part_to_disk(part)->part0.in_flight[rw]);
-}
-
-static inline int part_in_flight(struct hd_struct *part)
-{
- return atomic_read(&part->in_flight[0]) + atomic_read(&part->in_flight[1]);
-}
-
-static inline struct partition_meta_info *alloc_part_info(struct gendisk *disk)
-{
- if (disk)
- return kzalloc_node(sizeof(struct partition_meta_info),
- GFP_KERNEL, disk->node_id);
- return kzalloc(sizeof(struct partition_meta_info), GFP_KERNEL);
-}
-
-static inline void free_part_info(struct hd_struct *part)
-{
- kfree(part->info);
-}
-
-/* block/blk-core.c */
-extern void part_round_stats(int cpu, struct hd_struct *part);
-
-/* block/genhd.c */
-extern void add_disk(struct gendisk *disk);
-extern void del_gendisk(struct gendisk *gp);
-extern struct gendisk *get_gendisk(dev_t dev, int *partno);
-extern struct block_device *bdget_disk(struct gendisk *disk, int partno);
-
-extern void set_device_ro(struct block_device *bdev, int flag);
-extern void set_disk_ro(struct gendisk *disk, int flag);
-
-static inline int get_disk_ro(struct gendisk *disk)
-{
- return disk->part0.policy;
-}
-
-extern void disk_block_events(struct gendisk *disk);
-extern void disk_unblock_events(struct gendisk *disk);
-extern void disk_flush_events(struct gendisk *disk, unsigned int mask);
-extern unsigned int disk_clear_events(struct gendisk *disk, unsigned int mask);
-
-/* drivers/char/random.c */
-extern void add_disk_randomness(struct gendisk *disk);
-extern void rand_initialize_disk(struct gendisk *disk);
-
-static inline sector_t get_start_sect(struct block_device *bdev)
-{
- return bdev->bd_part->start_sect;
-}
-static inline sector_t get_capacity(struct gendisk *disk)
-{
- return disk->part0.nr_sects;
-}
-static inline void set_capacity(struct gendisk *disk, sector_t size)
-{
- disk->part0.nr_sects = size;
-}
-
-#ifdef CONFIG_SOLARIS_X86_PARTITION
-
-#define SOLARIS_X86_NUMSLICE 16
-#define SOLARIS_X86_VTOC_SANE (0x600DDEEEUL)
-
-struct solaris_x86_slice {
- __le16 s_tag; /* ID tag of partition */
- __le16 s_flag; /* permission flags */
- __le32 s_start; /* start sector no of partition */
- __le32 s_size; /* # of blocks in partition */
-};
-
-struct solaris_x86_vtoc {
- unsigned int v_bootinfo[3]; /* info needed by mboot (unsupported) */
- __le32 v_sanity; /* to verify vtoc sanity */
- __le32 v_version; /* layout version */
- char v_volume[8]; /* volume name */
- __le16 v_sectorsz; /* sector size in bytes */
- __le16 v_nparts; /* number of partitions */
- unsigned int v_reserved[10]; /* free space */
- struct solaris_x86_slice
- v_slice[SOLARIS_X86_NUMSLICE]; /* slice headers */
- unsigned int timestamp[SOLARIS_X86_NUMSLICE]; /* timestamp (unsupported) */
- char v_asciilabel[128]; /* for compatibility */
-};
-
-#endif /* CONFIG_SOLARIS_X86_PARTITION */
-
-#ifdef CONFIG_BSD_DISKLABEL
-/*
- * BSD disklabel support by Yossi Gottlieb <yogo@math.tau.ac.il>
- * updated by Marc Espie <Marc.Espie@openbsd.org>
- */
-
-/* check against BSD src/sys/sys/disklabel.h for consistency */
-
-#define BSD_DISKMAGIC (0x82564557UL) /* The disk magic number */
-#define BSD_MAXPARTITIONS 16
-#define OPENBSD_MAXPARTITIONS 16
-#define BSD_FS_UNUSED 0 /* disklabel unused partition entry ID */
-struct bsd_disklabel {
- __le32 d_magic; /* the magic number */
- __s16 d_type; /* drive type */
- __s16 d_subtype; /* controller/d_type specific */
- char d_typename[16]; /* type name, e.g. "eagle" */
- char d_packname[16]; /* pack identifier */
- __u32 d_secsize; /* # of bytes per sector */
- __u32 d_nsectors; /* # of data sectors per track */
- __u32 d_ntracks; /* # of tracks per cylinder */
- __u32 d_ncylinders; /* # of data cylinders per unit */
- __u32 d_secpercyl; /* # of data sectors per cylinder */
- __u32 d_secperunit; /* # of data sectors per unit */
- __u16 d_sparespertrack; /* # of spare sectors per track */
- __u16 d_sparespercyl; /* # of spare sectors per cylinder */
- __u32 d_acylinders; /* # of alt. cylinders per unit */
- __u16 d_rpm; /* rotational speed */
- __u16 d_interleave; /* hardware sector interleave */
- __u16 d_trackskew; /* sector 0 skew, per track */
- __u16 d_cylskew; /* sector 0 skew, per cylinder */
- __u32 d_headswitch; /* head switch time, usec */
- __u32 d_trkseek; /* track-to-track seek, usec */
- __u32 d_flags; /* generic flags */
-#define NDDATA 5
- __u32 d_drivedata[NDDATA]; /* drive-type specific information */
-#define NSPARE 5
- __u32 d_spare[NSPARE]; /* reserved for future use */
- __le32 d_magic2; /* the magic number (again) */
- __le16 d_checksum; /* xor of data incl. partitions */
-
- /* filesystem and partition information: */
- __le16 d_npartitions; /* number of partitions in following */
- __le32 d_bbsize; /* size of boot area at sn0, bytes */
- __le32 d_sbsize; /* max size of fs superblock, bytes */
- struct bsd_partition { /* the partition table */
- __le32 p_size; /* number of sectors in partition */
- __le32 p_offset; /* starting sector */
- __le32 p_fsize; /* filesystem basic fragment size */
- __u8 p_fstype; /* filesystem type, see below */
- __u8 p_frag; /* filesystem fragments per block */
- __le16 p_cpg; /* filesystem cylinders per group */
- } d_partitions[BSD_MAXPARTITIONS]; /* actually may be more */
-};
-
-#endif /* CONFIG_BSD_DISKLABEL */
-
-#ifdef CONFIG_UNIXWARE_DISKLABEL
-/*
- * Unixware slices support by Andrzej Krzysztofowicz <ankry@mif.pg.gda.pl>
- * and Krzysztof G. Baranowski <kgb@knm.org.pl>
- */
-
-#define UNIXWARE_DISKMAGIC (0xCA5E600DUL) /* The disk magic number */
-#define UNIXWARE_DISKMAGIC2 (0x600DDEEEUL) /* The slice table magic nr */
-#define UNIXWARE_NUMSLICE 16
-#define UNIXWARE_FS_UNUSED 0 /* Unused slice entry ID */
-
-struct unixware_slice {
- __le16 s_label; /* label */
- __le16 s_flags; /* permission flags */
- __le32 start_sect; /* starting sector */
- __le32 nr_sects; /* number of sectors in slice */
-};
-
-struct unixware_disklabel {
- __le32 d_type; /* drive type */
- __le32 d_magic; /* the magic number */
- __le32 d_version; /* version number */
- char d_serial[12]; /* serial number of the device */
- __le32 d_ncylinders; /* # of data cylinders per device */
- __le32 d_ntracks; /* # of tracks per cylinder */
- __le32 d_nsectors; /* # of data sectors per track */
- __le32 d_secsize; /* # of bytes per sector */
- __le32 d_part_start; /* # of first sector of this partition */
- __le32 d_unknown1[12]; /* ? */
- __le32 d_alt_tbl; /* byte offset of alternate table */
- __le32 d_alt_len; /* byte length of alternate table */
- __le32 d_phys_cyl; /* # of physical cylinders per device */
- __le32 d_phys_trk; /* # of physical tracks per cylinder */
- __le32 d_phys_sec; /* # of physical sectors per track */
- __le32 d_phys_bytes; /* # of physical bytes per sector */
- __le32 d_unknown2; /* ? */
- __le32 d_unknown3; /* ? */
- __le32 d_pad[8]; /* pad */
-
- struct unixware_vtoc {
- __le32 v_magic; /* the magic number */
- __le32 v_version; /* version number */
- char v_name[8]; /* volume name */
- __le16 v_nslices; /* # of slices */
- __le16 v_unknown1; /* ? */
- __le32 v_reserved[10]; /* reserved */
- struct unixware_slice
- v_slice[UNIXWARE_NUMSLICE]; /* slice headers */
- } vtoc;
-
-}; /* 408 */
-
-#endif /* CONFIG_UNIXWARE_DISKLABEL */
-
-#ifdef CONFIG_MINIX_SUBPARTITION
-# define MINIX_NR_SUBPARTITIONS 4
-#endif /* CONFIG_MINIX_SUBPARTITION */
-
-#define ADDPART_FLAG_NONE 0
-#define ADDPART_FLAG_RAID 1
-#define ADDPART_FLAG_WHOLEDISK 2
-
-extern int blk_alloc_devt(struct hd_struct *part, dev_t *devt);
-extern void blk_free_devt(dev_t devt);
-extern dev_t blk_lookup_devt(const char *name, int partno);
-extern char *disk_name (struct gendisk *hd, int partno, char *buf);
-
-extern int disk_expand_part_tbl(struct gendisk *disk, int target);
-extern int rescan_partitions(struct gendisk *disk, struct block_device *bdev);
-extern int invalidate_partitions(struct gendisk *disk, struct block_device *bdev);
-extern struct hd_struct * __must_check add_partition(struct gendisk *disk,
- int partno, sector_t start,
- sector_t len, int flags,
- struct partition_meta_info
- *info);
-extern void __delete_partition(struct hd_struct *);
-extern void delete_partition(struct gendisk *, int);
-extern void printk_all_partitions(void);
-
-extern struct gendisk *alloc_disk_node(int minors, int node_id);
-extern struct gendisk *alloc_disk(int minors);
-extern struct kobject *get_disk(struct gendisk *disk);
-extern void put_disk(struct gendisk *disk);
-extern void blk_register_region(dev_t devt, unsigned long range,
- struct module *module,
- struct kobject *(*probe)(dev_t, int *, void *),
- int (*lock)(dev_t, void *),
- void *data);
-extern void blk_unregister_region(dev_t devt, unsigned long range);
-
-extern ssize_t part_size_show(struct device *dev,
- struct device_attribute *attr, char *buf);
-extern ssize_t part_stat_show(struct device *dev,
- struct device_attribute *attr, char *buf);
-extern ssize_t part_inflight_show(struct device *dev,
- struct device_attribute *attr, char *buf);
-#ifdef CONFIG_FAIL_MAKE_REQUEST
-extern ssize_t part_fail_show(struct device *dev,
- struct device_attribute *attr, char *buf);
-extern ssize_t part_fail_store(struct device *dev,
- struct device_attribute *attr,
- const char *buf, size_t count);
-#endif /* CONFIG_FAIL_MAKE_REQUEST */
-
-static inline void hd_ref_init(struct hd_struct *part)
-{
- atomic_set(&part->ref, 1);
- smp_mb();
-}
-
-static inline void hd_struct_get(struct hd_struct *part)
-{
- atomic_inc(&part->ref);
- smp_mb__after_atomic_inc();
-}
-
-static inline int hd_struct_try_get(struct hd_struct *part)
-{
- return atomic_inc_not_zero(&part->ref);
-}
-
-static inline void hd_struct_put(struct hd_struct *part)
-{
- if (atomic_dec_and_test(&part->ref))
- __delete_partition(part);
-}
-
-#else /* CONFIG_BLOCK */
-
-static inline void printk_all_partitions(void) { }
-
-static inline dev_t blk_lookup_devt(const char *name, int partno)
-{
- dev_t devt = MKDEV(0, 0);
- return devt;
-}
-
-#endif /* CONFIG_BLOCK */
-
-#endif /* _LINUX_GENHD_H */
diff --git a/ANDROID_3.4.5/include/linux/getcpu.h b/ANDROID_3.4.5/include/linux/getcpu.h
deleted file mode 100644
index c7372d7a..00000000
--- a/ANDROID_3.4.5/include/linux/getcpu.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef _LINUX_GETCPU_H
-#define _LINUX_GETCPU_H 1
-
-/* Cache for getcpu() to speed it up. Results might be a short time
- out of date, but will be faster.
-
- User programs should not refer to the contents of this structure.
- I repeat they should not refer to it. If they do they will break
- in future kernels.
-
- It is only a private cache for vgetcpu(). It will change in future kernels.
- The user program must store this information per thread (__thread)
- If you want 100% accurate information pass NULL instead. */
-struct getcpu_cache {
- unsigned long blob[128 / sizeof(long)];
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/gfp.h b/ANDROID_3.4.5/include/linux/gfp.h
deleted file mode 100644
index 581e74b7..00000000
--- a/ANDROID_3.4.5/include/linux/gfp.h
+++ /dev/null
@@ -1,394 +0,0 @@
-#ifndef __LINUX_GFP_H
-#define __LINUX_GFP_H
-
-#include <linux/mmzone.h>
-#include <linux/stddef.h>
-#include <linux/linkage.h>
-#include <linux/topology.h>
-#include <linux/mmdebug.h>
-
-struct vm_area_struct;
-
-/* Plain integer GFP bitmasks. Do not use this directly. */
-#define ___GFP_DMA 0x01u
-#define ___GFP_HIGHMEM 0x02u
-#define ___GFP_DMA32 0x04u
-#define ___GFP_MOVABLE 0x08u
-#define ___GFP_WAIT 0x10u
-#define ___GFP_HIGH 0x20u
-#define ___GFP_IO 0x40u
-#define ___GFP_FS 0x80u
-#define ___GFP_COLD 0x100u
-#define ___GFP_NOWARN 0x200u
-#define ___GFP_REPEAT 0x400u
-#define ___GFP_NOFAIL 0x800u
-#define ___GFP_NORETRY 0x1000u
-#define ___GFP_COMP 0x4000u
-#define ___GFP_ZERO 0x8000u
-#define ___GFP_NOMEMALLOC 0x10000u
-#define ___GFP_HARDWALL 0x20000u
-#define ___GFP_THISNODE 0x40000u
-#define ___GFP_RECLAIMABLE 0x80000u
-#ifdef CONFIG_KMEMCHECK
-#define ___GFP_NOTRACK 0x200000u
-#else
-#define ___GFP_NOTRACK 0
-#endif
-#define ___GFP_NO_KSWAPD 0x400000u
-#define ___GFP_OTHER_NODE 0x800000u
-#define ___GFP_WRITE 0x1000000u
-
-/*
- * GFP bitmasks..
- *
- * Zone modifiers (see linux/mmzone.h - low three bits)
- *
- * Do not put any conditional on these. If necessary modify the definitions
- * without the underscores and use them consistently. The definitions here may
- * be used in bit comparisons.
- */
-#define __GFP_DMA ((__force gfp_t)___GFP_DMA)
-#define __GFP_HIGHMEM ((__force gfp_t)___GFP_HIGHMEM)
-#define __GFP_DMA32 ((__force gfp_t)___GFP_DMA32)
-#define __GFP_MOVABLE ((__force gfp_t)___GFP_MOVABLE) /* Page is movable */
-#define GFP_ZONEMASK (__GFP_DMA|__GFP_HIGHMEM|__GFP_DMA32|__GFP_MOVABLE)
-/*
- * Action modifiers - doesn't change the zoning
- *
- * __GFP_REPEAT: Try hard to allocate the memory, but the allocation attempt
- * _might_ fail. This depends upon the particular VM implementation.
- *
- * __GFP_NOFAIL: The VM implementation _must_ retry infinitely: the caller
- * cannot handle allocation failures. This modifier is deprecated and no new
- * users should be added.
- *
- * __GFP_NORETRY: The VM implementation must not retry indefinitely.
- *
- * __GFP_MOVABLE: Flag that this page will be movable by the page migration
- * mechanism or reclaimed
- */
-#define __GFP_WAIT ((__force gfp_t)___GFP_WAIT) /* Can wait and reschedule? */
-#define __GFP_HIGH ((__force gfp_t)___GFP_HIGH) /* Should access emergency pools? */
-#define __GFP_IO ((__force gfp_t)___GFP_IO) /* Can start physical IO? */
-#define __GFP_FS ((__force gfp_t)___GFP_FS) /* Can call down to low-level FS? */
-#define __GFP_COLD ((__force gfp_t)___GFP_COLD) /* Cache-cold page required */
-#define __GFP_NOWARN ((__force gfp_t)___GFP_NOWARN) /* Suppress page allocation failure warning */
-#define __GFP_REPEAT ((__force gfp_t)___GFP_REPEAT) /* See above */
-#define __GFP_NOFAIL ((__force gfp_t)___GFP_NOFAIL) /* See above */
-#define __GFP_NORETRY ((__force gfp_t)___GFP_NORETRY) /* See above */
-#define __GFP_COMP ((__force gfp_t)___GFP_COMP) /* Add compound page metadata */
-#define __GFP_ZERO ((__force gfp_t)___GFP_ZERO) /* Return zeroed page on success */
-#define __GFP_NOMEMALLOC ((__force gfp_t)___GFP_NOMEMALLOC) /* Don't use emergency reserves */
-#define __GFP_HARDWALL ((__force gfp_t)___GFP_HARDWALL) /* Enforce hardwall cpuset memory allocs */
-#define __GFP_THISNODE ((__force gfp_t)___GFP_THISNODE)/* No fallback, no policies */
-#define __GFP_RECLAIMABLE ((__force gfp_t)___GFP_RECLAIMABLE) /* Page is reclaimable */
-#define __GFP_NOTRACK ((__force gfp_t)___GFP_NOTRACK) /* Don't track with kmemcheck */
-
-#define __GFP_NO_KSWAPD ((__force gfp_t)___GFP_NO_KSWAPD)
-#define __GFP_OTHER_NODE ((__force gfp_t)___GFP_OTHER_NODE) /* On behalf of other node */
-#define __GFP_WRITE ((__force gfp_t)___GFP_WRITE) /* Allocator intends to dirty page */
-
-/*
- * This may seem redundant, but it's a way of annotating false positives vs.
- * allocations that simply cannot be supported (e.g. page tables).
- */
-#define __GFP_NOTRACK_FALSE_POSITIVE (__GFP_NOTRACK)
-
-#define __GFP_BITS_SHIFT 25 /* Room for N __GFP_FOO bits */
-#define __GFP_BITS_MASK ((__force gfp_t)((1 << __GFP_BITS_SHIFT) - 1))
-
-/* This equals 0, but use constants in case they ever change */
-#define GFP_NOWAIT (GFP_ATOMIC & ~__GFP_HIGH)
-/* GFP_ATOMIC means both !wait (__GFP_WAIT not set) and use emergency pool */
-#define GFP_ATOMIC (__GFP_HIGH)
-#define GFP_NOIO (__GFP_WAIT)
-#define GFP_NOFS (__GFP_WAIT | __GFP_IO)
-#define GFP_KERNEL (__GFP_WAIT | __GFP_IO | __GFP_FS)
-#define GFP_TEMPORARY (__GFP_WAIT | __GFP_IO | __GFP_FS | \
- __GFP_RECLAIMABLE)
-#define GFP_USER (__GFP_WAIT | __GFP_IO | __GFP_FS | __GFP_HARDWALL)
-#define GFP_HIGHUSER (__GFP_WAIT | __GFP_IO | __GFP_FS | __GFP_HARDWALL | \
- __GFP_HIGHMEM)
-#define GFP_HIGHUSER_MOVABLE (__GFP_WAIT | __GFP_IO | __GFP_FS | \
- __GFP_HARDWALL | __GFP_HIGHMEM | \
- __GFP_MOVABLE)
-#define GFP_IOFS (__GFP_IO | __GFP_FS)
-#define GFP_TRANSHUGE (GFP_HIGHUSER_MOVABLE | __GFP_COMP | \
- __GFP_NOMEMALLOC | __GFP_NORETRY | __GFP_NOWARN | \
- __GFP_NO_KSWAPD)
-
-#ifdef CONFIG_NUMA
-#define GFP_THISNODE (__GFP_THISNODE | __GFP_NOWARN | __GFP_NORETRY)
-#else
-#define GFP_THISNODE ((__force gfp_t)0)
-#endif
-
-/* This mask makes up all the page movable related flags */
-#define GFP_MOVABLE_MASK (__GFP_RECLAIMABLE|__GFP_MOVABLE)
-
-/* Control page allocator reclaim behavior */
-#define GFP_RECLAIM_MASK (__GFP_WAIT|__GFP_HIGH|__GFP_IO|__GFP_FS|\
- __GFP_NOWARN|__GFP_REPEAT|__GFP_NOFAIL|\
- __GFP_NORETRY|__GFP_NOMEMALLOC)
-
-/* Control slab gfp mask during early boot */
-#define GFP_BOOT_MASK (__GFP_BITS_MASK & ~(__GFP_WAIT|__GFP_IO|__GFP_FS))
-
-/* Control allocation constraints */
-#define GFP_CONSTRAINT_MASK (__GFP_HARDWALL|__GFP_THISNODE)
-
-/* Do not use these with a slab allocator */
-#define GFP_SLAB_BUG_MASK (__GFP_DMA32|__GFP_HIGHMEM|~__GFP_BITS_MASK)
-
-/* Flag - indicates that the buffer will be suitable for DMA. Ignored on some
- platforms, used as appropriate on others */
-
-#define GFP_DMA __GFP_DMA
-
-/* 4GB DMA on some platforms */
-#define GFP_DMA32 __GFP_DMA32
-
-/* Convert GFP flags to their corresponding migrate type */
-static inline int allocflags_to_migratetype(gfp_t gfp_flags)
-{
- WARN_ON((gfp_flags & GFP_MOVABLE_MASK) == GFP_MOVABLE_MASK);
-
- if (unlikely(page_group_by_mobility_disabled))
- return MIGRATE_UNMOVABLE;
-
- /* Group based on mobility */
- return (((gfp_flags & __GFP_MOVABLE) != 0) << 1) |
- ((gfp_flags & __GFP_RECLAIMABLE) != 0);
-}
-
-#ifdef CONFIG_HIGHMEM
-#define OPT_ZONE_HIGHMEM ZONE_HIGHMEM
-#else
-#define OPT_ZONE_HIGHMEM ZONE_NORMAL
-#endif
-
-#ifdef CONFIG_ZONE_DMA
-#define OPT_ZONE_DMA ZONE_DMA
-#else
-#define OPT_ZONE_DMA ZONE_NORMAL
-#endif
-
-#ifdef CONFIG_ZONE_DMA32
-#define OPT_ZONE_DMA32 ZONE_DMA32
-#else
-#define OPT_ZONE_DMA32 ZONE_NORMAL
-#endif
-
-/*
- * GFP_ZONE_TABLE is a word size bitstring that is used for looking up the
- * zone to use given the lowest 4 bits of gfp_t. Entries are ZONE_SHIFT long
- * and there are 16 of them to cover all possible combinations of
- * __GFP_DMA, __GFP_DMA32, __GFP_MOVABLE and __GFP_HIGHMEM.
- *
- * The zone fallback order is MOVABLE=>HIGHMEM=>NORMAL=>DMA32=>DMA.
- * But GFP_MOVABLE is not only a zone specifier but also an allocation
- * policy. Therefore __GFP_MOVABLE plus another zone selector is valid.
- * Only 1 bit of the lowest 3 bits (DMA,DMA32,HIGHMEM) can be set to "1".
- *
- * bit result
- * =================
- * 0x0 => NORMAL
- * 0x1 => DMA or NORMAL
- * 0x2 => HIGHMEM or NORMAL
- * 0x3 => BAD (DMA+HIGHMEM)
- * 0x4 => DMA32 or DMA or NORMAL
- * 0x5 => BAD (DMA+DMA32)
- * 0x6 => BAD (HIGHMEM+DMA32)
- * 0x7 => BAD (HIGHMEM+DMA32+DMA)
- * 0x8 => NORMAL (MOVABLE+0)
- * 0x9 => DMA or NORMAL (MOVABLE+DMA)
- * 0xa => MOVABLE (Movable is valid only if HIGHMEM is set too)
- * 0xb => BAD (MOVABLE+HIGHMEM+DMA)
- * 0xc => DMA32 (MOVABLE+HIGHMEM+DMA32)
- * 0xd => BAD (MOVABLE+DMA32+DMA)
- * 0xe => BAD (MOVABLE+DMA32+HIGHMEM)
- * 0xf => BAD (MOVABLE+DMA32+HIGHMEM+DMA)
- *
- * ZONES_SHIFT must be <= 2 on 32 bit platforms.
- */
-
-#if 16 * ZONES_SHIFT > BITS_PER_LONG
-#error ZONES_SHIFT too large to create GFP_ZONE_TABLE integer
-#endif
-
-#define GFP_ZONE_TABLE ( \
- (ZONE_NORMAL << 0 * ZONES_SHIFT) \
- | (OPT_ZONE_DMA << ___GFP_DMA * ZONES_SHIFT) \
- | (OPT_ZONE_HIGHMEM << ___GFP_HIGHMEM * ZONES_SHIFT) \
- | (OPT_ZONE_DMA32 << ___GFP_DMA32 * ZONES_SHIFT) \
- | (ZONE_NORMAL << ___GFP_MOVABLE * ZONES_SHIFT) \
- | (OPT_ZONE_DMA << (___GFP_MOVABLE | ___GFP_DMA) * ZONES_SHIFT) \
- | (ZONE_MOVABLE << (___GFP_MOVABLE | ___GFP_HIGHMEM) * ZONES_SHIFT) \
- | (OPT_ZONE_DMA32 << (___GFP_MOVABLE | ___GFP_DMA32) * ZONES_SHIFT) \
-)
-
-/*
- * GFP_ZONE_BAD is a bitmap for all combinations of __GFP_DMA, __GFP_DMA32
- * __GFP_HIGHMEM and __GFP_MOVABLE that are not permitted. One flag per
- * entry starting with bit 0. Bit is set if the combination is not
- * allowed.
- */
-#define GFP_ZONE_BAD ( \
- 1 << (___GFP_DMA | ___GFP_HIGHMEM) \
- | 1 << (___GFP_DMA | ___GFP_DMA32) \
- | 1 << (___GFP_DMA32 | ___GFP_HIGHMEM) \
- | 1 << (___GFP_DMA | ___GFP_DMA32 | ___GFP_HIGHMEM) \
- | 1 << (___GFP_MOVABLE | ___GFP_HIGHMEM | ___GFP_DMA) \
- | 1 << (___GFP_MOVABLE | ___GFP_DMA32 | ___GFP_DMA) \
- | 1 << (___GFP_MOVABLE | ___GFP_DMA32 | ___GFP_HIGHMEM) \
- | 1 << (___GFP_MOVABLE | ___GFP_DMA32 | ___GFP_DMA | ___GFP_HIGHMEM) \
-)
-
-static inline enum zone_type gfp_zone(gfp_t flags)
-{
- enum zone_type z;
- int bit = (__force int) (flags & GFP_ZONEMASK);
-
- z = (GFP_ZONE_TABLE >> (bit * ZONES_SHIFT)) &
- ((1 << ZONES_SHIFT) - 1);
- VM_BUG_ON((GFP_ZONE_BAD >> bit) & 1);
- return z;
-}
-
-/*
- * There is only one page-allocator function, and two main namespaces to
- * it. The alloc_page*() variants return 'struct page *' and as such
- * can allocate highmem pages, the *get*page*() variants return
- * virtual kernel addresses to the allocated page(s).
- */
-
-static inline int gfp_zonelist(gfp_t flags)
-{
- if (NUMA_BUILD && unlikely(flags & __GFP_THISNODE))
- return 1;
-
- return 0;
-}
-
-/*
- * We get the zone list from the current node and the gfp_mask.
- * This zone list contains a maximum of MAXNODES*MAX_NR_ZONES zones.
- * There are two zonelists per node, one for all zones with memory and
- * one containing just zones from the node the zonelist belongs to.
- *
- * For the normal case of non-DISCONTIGMEM systems the NODE_DATA() gets
- * optimized to &contig_page_data at compile-time.
- */
-static inline struct zonelist *node_zonelist(int nid, gfp_t flags)
-{
- return NODE_DATA(nid)->node_zonelists + gfp_zonelist(flags);
-}
-
-#ifndef HAVE_ARCH_FREE_PAGE
-static inline void arch_free_page(struct page *page, int order) { }
-#endif
-#ifndef HAVE_ARCH_ALLOC_PAGE
-static inline void arch_alloc_page(struct page *page, int order) { }
-#endif
-
-struct page *
-__alloc_pages_nodemask(gfp_t gfp_mask, unsigned int order,
- struct zonelist *zonelist, nodemask_t *nodemask);
-
-static inline struct page *
-__alloc_pages(gfp_t gfp_mask, unsigned int order,
- struct zonelist *zonelist)
-{
- return __alloc_pages_nodemask(gfp_mask, order, zonelist, NULL);
-}
-
-static inline struct page *alloc_pages_node(int nid, gfp_t gfp_mask,
- unsigned int order)
-{
- /* Unknown node is current node */
- if (nid < 0)
- nid = numa_node_id();
-
- return __alloc_pages(gfp_mask, order, node_zonelist(nid, gfp_mask));
-}
-
-static inline struct page *alloc_pages_exact_node(int nid, gfp_t gfp_mask,
- unsigned int order)
-{
- VM_BUG_ON(nid < 0 || nid >= MAX_NUMNODES || !node_online(nid));
-
- return __alloc_pages(gfp_mask, order, node_zonelist(nid, gfp_mask));
-}
-
-#ifdef CONFIG_NUMA
-extern struct page *alloc_pages_current(gfp_t gfp_mask, unsigned order);
-
-static inline struct page *
-alloc_pages(gfp_t gfp_mask, unsigned int order)
-{
- return alloc_pages_current(gfp_mask, order);
-}
-extern struct page *alloc_pages_vma(gfp_t gfp_mask, int order,
- struct vm_area_struct *vma, unsigned long addr,
- int node);
-#else
-#define alloc_pages(gfp_mask, order) \
- alloc_pages_node(numa_node_id(), gfp_mask, order)
-#define alloc_pages_vma(gfp_mask, order, vma, addr, node) \
- alloc_pages(gfp_mask, order)
-#endif
-#define alloc_page(gfp_mask) alloc_pages(gfp_mask, 0)
-#define alloc_page_vma(gfp_mask, vma, addr) \
- alloc_pages_vma(gfp_mask, 0, vma, addr, numa_node_id())
-#define alloc_page_vma_node(gfp_mask, vma, addr, node) \
- alloc_pages_vma(gfp_mask, 0, vma, addr, node)
-
-extern unsigned long __get_free_pages(gfp_t gfp_mask, unsigned int order);
-extern unsigned long get_zeroed_page(gfp_t gfp_mask);
-
-void *alloc_pages_exact(size_t size, gfp_t gfp_mask);
-void free_pages_exact(void *virt, size_t size);
-/* This is different from alloc_pages_exact_node !!! */
-void *alloc_pages_exact_nid(int nid, size_t size, gfp_t gfp_mask);
-
-#define __get_free_page(gfp_mask) \
- __get_free_pages((gfp_mask), 0)
-
-#define __get_dma_pages(gfp_mask, order) \
- __get_free_pages((gfp_mask) | GFP_DMA, (order))
-
-extern void __free_pages(struct page *page, unsigned int order);
-extern void free_pages(unsigned long addr, unsigned int order);
-extern void free_hot_cold_page(struct page *page, int cold);
-extern void free_hot_cold_page_list(struct list_head *list, int cold);
-
-#define __free_page(page) __free_pages((page), 0)
-#define free_page(addr) free_pages((addr), 0)
-
-void page_alloc_init(void);
-void drain_zone_pages(struct zone *zone, struct per_cpu_pages *pcp);
-void drain_all_pages(void);
-void drain_local_pages(void *dummy);
-
-/*
- * gfp_allowed_mask is set to GFP_BOOT_MASK during early boot to restrict what
- * GFP flags are used before interrupts are enabled. Once interrupts are
- * enabled, it is set to __GFP_BITS_MASK while the system is running. During
- * hibernation, it is used by PM to avoid I/O during memory allocation while
- * devices are suspended.
- */
-extern gfp_t gfp_allowed_mask;
-
-extern void pm_restrict_gfp_mask(void);
-extern void pm_restore_gfp_mask(void);
-
-#ifdef CONFIG_PM_SLEEP
-extern bool pm_suspended_storage(void);
-#else
-static inline bool pm_suspended_storage(void)
-{
- return false;
-}
-#endif /* CONFIG_PM_SLEEP */
-
-#endif /* __LINUX_GFP_H */
diff --git a/ANDROID_3.4.5/include/linux/gfs2_ondisk.h b/ANDROID_3.4.5/include/linux/gfs2_ondisk.h
deleted file mode 100644
index fa98bdb0..00000000
--- a/ANDROID_3.4.5/include/linux/gfs2_ondisk.h
+++ /dev/null
@@ -1,452 +0,0 @@
-/*
- * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
- * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
- *
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU General Public License v.2.
- */
-
-#ifndef __GFS2_ONDISK_DOT_H__
-#define __GFS2_ONDISK_DOT_H__
-
-#include <linux/types.h>
-
-#define GFS2_MAGIC 0x01161970
-#define GFS2_BASIC_BLOCK 512
-#define GFS2_BASIC_BLOCK_SHIFT 9
-
-/* Lock numbers of the LM_TYPE_NONDISK type */
-
-#define GFS2_MOUNT_LOCK 0
-#define GFS2_LIVE_LOCK 1
-#define GFS2_TRANS_LOCK 2
-#define GFS2_RENAME_LOCK 3
-#define GFS2_CONTROL_LOCK 4
-#define GFS2_MOUNTED_LOCK 5
-
-/* Format numbers for various metadata types */
-
-#define GFS2_FORMAT_NONE 0
-#define GFS2_FORMAT_SB 100
-#define GFS2_FORMAT_RG 200
-#define GFS2_FORMAT_RB 300
-#define GFS2_FORMAT_DI 400
-#define GFS2_FORMAT_IN 500
-#define GFS2_FORMAT_LF 600
-#define GFS2_FORMAT_JD 700
-#define GFS2_FORMAT_LH 800
-#define GFS2_FORMAT_LD 900
-#define GFS2_FORMAT_LB 1000
-#define GFS2_FORMAT_EA 1600
-#define GFS2_FORMAT_ED 1700
-#define GFS2_FORMAT_QC 1400
-/* These are format numbers for entities contained in files */
-#define GFS2_FORMAT_RI 1100
-#define GFS2_FORMAT_DE 1200
-#define GFS2_FORMAT_QU 1500
-/* These are part of the superblock */
-#define GFS2_FORMAT_FS 1801
-#define GFS2_FORMAT_MULTI 1900
-
-/*
- * An on-disk inode number
- */
-
-struct gfs2_inum {
- __be64 no_formal_ino;
- __be64 no_addr;
-};
-
-/*
- * Generic metadata head structure
- * Every inplace buffer logged in the journal must start with this.
- */
-
-#define GFS2_METATYPE_NONE 0
-#define GFS2_METATYPE_SB 1
-#define GFS2_METATYPE_RG 2
-#define GFS2_METATYPE_RB 3
-#define GFS2_METATYPE_DI 4
-#define GFS2_METATYPE_IN 5
-#define GFS2_METATYPE_LF 6
-#define GFS2_METATYPE_JD 7
-#define GFS2_METATYPE_LH 8
-#define GFS2_METATYPE_LD 9
-#define GFS2_METATYPE_LB 12
-#define GFS2_METATYPE_EA 10
-#define GFS2_METATYPE_ED 11
-#define GFS2_METATYPE_QC 14
-
-struct gfs2_meta_header {
- __be32 mh_magic;
- __be32 mh_type;
- __be64 __pad0; /* Was generation number in gfs1 */
- __be32 mh_format;
- /* This union is to keep userspace happy */
- union {
- __be32 mh_jid; /* Was incarnation number in gfs1 */
- __be32 __pad1;
- };
-};
-
-/*
- * super-block structure
- *
- * It's probably good if SIZEOF_SB <= GFS2_BASIC_BLOCK (512 bytes)
- *
- * Order is important, need to be able to read old superblocks to do on-disk
- * version upgrades.
- */
-
-/* Address of superblock in GFS2 basic blocks */
-#define GFS2_SB_ADDR 128
-
-/* The lock number for the superblock (must be zero) */
-#define GFS2_SB_LOCK 0
-
-/* Requirement: GFS2_LOCKNAME_LEN % 8 == 0
- Includes: the fencing zero at the end */
-#define GFS2_LOCKNAME_LEN 64
-
-struct gfs2_sb {
- struct gfs2_meta_header sb_header;
-
- __be32 sb_fs_format;
- __be32 sb_multihost_format;
- __u32 __pad0; /* Was superblock flags in gfs1 */
-
- __be32 sb_bsize;
- __be32 sb_bsize_shift;
- __u32 __pad1; /* Was journal segment size in gfs1 */
-
- struct gfs2_inum sb_master_dir; /* Was jindex dinode in gfs1 */
- struct gfs2_inum __pad2; /* Was rindex dinode in gfs1 */
- struct gfs2_inum sb_root_dir;
-
- char sb_lockproto[GFS2_LOCKNAME_LEN];
- char sb_locktable[GFS2_LOCKNAME_LEN];
-
- struct gfs2_inum __pad3; /* Was quota inode in gfs1 */
- struct gfs2_inum __pad4; /* Was licence inode in gfs1 */
-#define GFS2_HAS_UUID 1
- __u8 sb_uuid[16]; /* The UUID, maybe 0 for backwards compat */
-};
-
-/*
- * resource index structure
- */
-
-struct gfs2_rindex {
- __be64 ri_addr; /* grp block disk address */
- __be32 ri_length; /* length of rgrp header in fs blocks */
- __u32 __pad;
-
- __be64 ri_data0; /* first data location */
- __be32 ri_data; /* num of data blocks in rgrp */
-
- __be32 ri_bitbytes; /* number of bytes in data bitmaps */
-
- __u8 ri_reserved[64];
-};
-
-/*
- * resource group header structure
- */
-
-/* Number of blocks per byte in rgrp */
-#define GFS2_NBBY 4
-#define GFS2_BIT_SIZE 2
-#define GFS2_BIT_MASK 0x00000003
-
-#define GFS2_BLKST_FREE 0
-#define GFS2_BLKST_USED 1
-#define GFS2_BLKST_UNLINKED 2
-#define GFS2_BLKST_DINODE 3
-
-#define GFS2_RGF_JOURNAL 0x00000001
-#define GFS2_RGF_METAONLY 0x00000002
-#define GFS2_RGF_DATAONLY 0x00000004
-#define GFS2_RGF_NOALLOC 0x00000008
-#define GFS2_RGF_TRIMMED 0x00000010
-
-struct gfs2_rgrp {
- struct gfs2_meta_header rg_header;
-
- __be32 rg_flags;
- __be32 rg_free;
- __be32 rg_dinodes;
- __be32 __pad;
- __be64 rg_igeneration;
-
- __u8 rg_reserved[80]; /* Several fields from gfs1 now reserved */
-};
-
-/*
- * quota structure
- */
-
-struct gfs2_quota {
- __be64 qu_limit;
- __be64 qu_warn;
- __be64 qu_value;
- __u8 qu_reserved[64];
-};
-
-/*
- * dinode structure
- */
-
-#define GFS2_MAX_META_HEIGHT 10
-#define GFS2_DIR_MAX_DEPTH 17
-
-#define DT2IF(dt) (((dt) << 12) & S_IFMT)
-#define IF2DT(sif) (((sif) & S_IFMT) >> 12)
-
-enum {
- gfs2fl_Jdata = 0,
- gfs2fl_ExHash = 1,
- gfs2fl_Unused = 2,
- gfs2fl_EaIndirect = 3,
- gfs2fl_Directio = 4,
- gfs2fl_Immutable = 5,
- gfs2fl_AppendOnly = 6,
- gfs2fl_NoAtime = 7,
- gfs2fl_Sync = 8,
- gfs2fl_System = 9,
- gfs2fl_TruncInProg = 29,
- gfs2fl_InheritDirectio = 30,
- gfs2fl_InheritJdata = 31,
-};
-
-/* Dinode flags */
-#define GFS2_DIF_JDATA 0x00000001
-#define GFS2_DIF_EXHASH 0x00000002
-#define GFS2_DIF_UNUSED 0x00000004 /* only in gfs1 */
-#define GFS2_DIF_EA_INDIRECT 0x00000008
-#define GFS2_DIF_DIRECTIO 0x00000010
-#define GFS2_DIF_IMMUTABLE 0x00000020
-#define GFS2_DIF_APPENDONLY 0x00000040
-#define GFS2_DIF_NOATIME 0x00000080
-#define GFS2_DIF_SYNC 0x00000100
-#define GFS2_DIF_SYSTEM 0x00000200 /* New in gfs2 */
-#define GFS2_DIF_TRUNC_IN_PROG 0x20000000 /* New in gfs2 */
-#define GFS2_DIF_INHERIT_DIRECTIO 0x40000000
-#define GFS2_DIF_INHERIT_JDATA 0x80000000
-
-struct gfs2_dinode {
- struct gfs2_meta_header di_header;
-
- struct gfs2_inum di_num;
-
- __be32 di_mode; /* mode of file */
- __be32 di_uid; /* owner's user id */
- __be32 di_gid; /* owner's group id */
- __be32 di_nlink; /* number of links to this file */
- __be64 di_size; /* number of bytes in file */
- __be64 di_blocks; /* number of blocks in file */
- __be64 di_atime; /* time last accessed */
- __be64 di_mtime; /* time last modified */
- __be64 di_ctime; /* time last changed */
- __be32 di_major; /* device major number */
- __be32 di_minor; /* device minor number */
-
- /* This section varies from gfs1. Padding added to align with
- * remainder of dinode
- */
- __be64 di_goal_meta; /* rgrp to alloc from next */
- __be64 di_goal_data; /* data block goal */
- __be64 di_generation; /* generation number for NFS */
-
- __be32 di_flags; /* GFS2_DIF_... */
- __be32 di_payload_format; /* GFS2_FORMAT_... */
- __u16 __pad1; /* Was ditype in gfs1 */
- __be16 di_height; /* height of metadata */
- __u32 __pad2; /* Unused incarnation number from gfs1 */
-
- /* These only apply to directories */
- __u16 __pad3; /* Padding */
- __be16 di_depth; /* Number of bits in the table */
- __be32 di_entries; /* The number of entries in the directory */
-
- struct gfs2_inum __pad4; /* Unused even in current gfs1 */
-
- __be64 di_eattr; /* extended attribute block number */
- __be32 di_atime_nsec; /* nsec portion of atime */
- __be32 di_mtime_nsec; /* nsec portion of mtime */
- __be32 di_ctime_nsec; /* nsec portion of ctime */
-
- __u8 di_reserved[44];
-};
-
-/*
- * directory structure - many of these per directory file
- */
-
-#define GFS2_FNAMESIZE 255
-#define GFS2_DIRENT_SIZE(name_len) ((sizeof(struct gfs2_dirent) + (name_len) + 7) & ~7)
-
-struct gfs2_dirent {
- struct gfs2_inum de_inum;
- __be32 de_hash;
- __be16 de_rec_len;
- __be16 de_name_len;
- __be16 de_type;
- __u8 __pad[14];
-};
-
-/*
- * Header of leaf directory nodes
- */
-
-struct gfs2_leaf {
- struct gfs2_meta_header lf_header;
-
- __be16 lf_depth; /* Depth of leaf */
- __be16 lf_entries; /* Number of dirents in leaf */
- __be32 lf_dirent_format; /* Format of the dirents */
- __be64 lf_next; /* Next leaf, if overflow */
-
- __u8 lf_reserved[64];
-};
-
-/*
- * Extended attribute header format
- *
- * This works in a similar way to dirents. There is a fixed size header
- * followed by a variable length section made up of the name and the
- * associated data. In the case of a "stuffed" entry, the value is
- * inline directly after the name, the ea_num_ptrs entry will be
- * zero in that case. For non-"stuffed" entries, there will be
- * a set of pointers (aligned to 8 byte boundary) to the block(s)
- * containing the value.
- *
- * The blocks containing the values and the blocks containing the
- * extended attribute headers themselves all start with the common
- * metadata header. Each inode, if it has extended attributes, will
- * have either a single block containing the extended attribute headers
- * or a single indirect block pointing to blocks containing the
- * extended attribure headers.
- *
- * The maximim size of the data part of an extended attribute is 64k
- * so the number of blocks required depends upon block size. Since the
- * block size also determines the number of pointers in an indirect
- * block, its a fairly complicated calculation to work out the maximum
- * number of blocks that an inode may have relating to extended attributes.
- *
- */
-
-#define GFS2_EA_MAX_NAME_LEN 255
-#define GFS2_EA_MAX_DATA_LEN 65536
-
-#define GFS2_EATYPE_UNUSED 0
-#define GFS2_EATYPE_USR 1
-#define GFS2_EATYPE_SYS 2
-#define GFS2_EATYPE_SECURITY 3
-
-#define GFS2_EATYPE_LAST 3
-#define GFS2_EATYPE_VALID(x) ((x) <= GFS2_EATYPE_LAST)
-
-#define GFS2_EAFLAG_LAST 0x01 /* last ea in block */
-
-struct gfs2_ea_header {
- __be32 ea_rec_len;
- __be32 ea_data_len;
- __u8 ea_name_len; /* no NULL pointer after the string */
- __u8 ea_type; /* GFS2_EATYPE_... */
- __u8 ea_flags; /* GFS2_EAFLAG_... */
- __u8 ea_num_ptrs;
- __u32 __pad;
-};
-
-/*
- * Log header structure
- */
-
-#define GFS2_LOG_HEAD_UNMOUNT 0x00000001 /* log is clean */
-
-struct gfs2_log_header {
- struct gfs2_meta_header lh_header;
-
- __be64 lh_sequence; /* Sequence number of this transaction */
- __be32 lh_flags; /* GFS2_LOG_HEAD_... */
- __be32 lh_tail; /* Block number of log tail */
- __be32 lh_blkno;
- __be32 lh_hash;
-};
-
-/*
- * Log type descriptor
- */
-
-#define GFS2_LOG_DESC_METADATA 300
-/* ld_data1 is the number of metadata blocks in the descriptor.
- ld_data2 is unused. */
-
-#define GFS2_LOG_DESC_REVOKE 301
-/* ld_data1 is the number of revoke blocks in the descriptor.
- ld_data2 is unused. */
-
-#define GFS2_LOG_DESC_JDATA 302
-/* ld_data1 is the number of data blocks in the descriptor.
- ld_data2 is unused. */
-
-struct gfs2_log_descriptor {
- struct gfs2_meta_header ld_header;
-
- __be32 ld_type; /* GFS2_LOG_DESC_... */
- __be32 ld_length; /* Number of buffers in this chunk */
- __be32 ld_data1; /* descriptor-specific field */
- __be32 ld_data2; /* descriptor-specific field */
-
- __u8 ld_reserved[32];
-};
-
-/*
- * Inum Range
- * Describe a range of formal inode numbers allocated to
- * one machine to assign to inodes.
- */
-
-#define GFS2_INUM_QUANTUM 1048576
-
-struct gfs2_inum_range {
- __be64 ir_start;
- __be64 ir_length;
-};
-
-/*
- * Statfs change
- * Describes an change to the pool of free and allocated
- * blocks.
- */
-
-struct gfs2_statfs_change {
- __be64 sc_total;
- __be64 sc_free;
- __be64 sc_dinodes;
-};
-
-/*
- * Quota change
- * Describes an allocation change for a particular
- * user or group.
- */
-
-#define GFS2_QCF_USER 0x00000001
-
-struct gfs2_quota_change {
- __be64 qc_change;
- __be32 qc_flags; /* GFS2_QCF_... */
- __be32 qc_id;
-};
-
-struct gfs2_quota_lvb {
- __be32 qb_magic;
- __u32 __pad;
- __be64 qb_limit; /* Hard limit of # blocks to alloc */
- __be64 qb_warn; /* Warn user when alloc is above this # */
- __be64 qb_value; /* Current # blocks allocated */
-};
-
-#endif /* __GFS2_ONDISK_DOT_H__ */
diff --git a/ANDROID_3.4.5/include/linux/gigaset_dev.h b/ANDROID_3.4.5/include/linux/gigaset_dev.h
deleted file mode 100644
index 258ba829..00000000
--- a/ANDROID_3.4.5/include/linux/gigaset_dev.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * interface to user space for the gigaset driver
- *
- * Copyright (c) 2004 by Hansjoerg Lipp <hjlipp@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.
- * =====================================================================
- */
-
-#ifndef GIGASET_INTERFACE_H
-#define GIGASET_INTERFACE_H
-
-#include <linux/ioctl.h>
-
-/* The magic IOCTL value for this interface. */
-#define GIGASET_IOCTL 0x47
-
-/* enable/disable device control via character device (lock out ISDN subsys) */
-#define GIGASET_REDIR _IOWR(GIGASET_IOCTL, 0, int)
-
-/* enable adapter configuration mode (M10x only) */
-#define GIGASET_CONFIG _IOWR(GIGASET_IOCTL, 1, int)
-
-/* set break characters (M105 only) */
-#define GIGASET_BRKCHARS _IOW(GIGASET_IOCTL, 2, unsigned char[6])
-
-/* get version information selected by arg[0] */
-#define GIGASET_VERSION _IOWR(GIGASET_IOCTL, 3, unsigned[4])
-/* values for GIGASET_VERSION arg[0] */
-#define GIGVER_DRIVER 0 /* get driver version */
-#define GIGVER_COMPAT 1 /* get interface compatibility version */
-#define GIGVER_FWBASE 2 /* get base station firmware version */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/gpio-fan.h b/ANDROID_3.4.5/include/linux/gpio-fan.h
deleted file mode 100644
index 09665916..00000000
--- a/ANDROID_3.4.5/include/linux/gpio-fan.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * include/linux/gpio-fan.h
- *
- * Platform data structure for GPIO fan driver
- *
- * This file is licensed under the terms of the GNU General Public
- * License version 2. This program is licensed "as is" without any
- * warranty of any kind, whether express or implied.
- */
-
-#ifndef __LINUX_GPIO_FAN_H
-#define __LINUX_GPIO_FAN_H
-
-struct gpio_fan_alarm {
- unsigned gpio;
- unsigned active_low;
-};
-
-struct gpio_fan_speed {
- int rpm;
- int ctrl_val;
-};
-
-struct gpio_fan_platform_data {
- int num_ctrl;
- unsigned *ctrl; /* fan control GPIOs. */
- struct gpio_fan_alarm *alarm; /* fan alarm GPIO. */
- /*
- * Speed conversion array: rpm from/to GPIO bit field.
- * This array _must_ be sorted in ascending rpm order.
- */
- int num_speed;
- struct gpio_fan_speed *speed;
-};
-
-#endif /* __LINUX_GPIO_FAN_H */
diff --git a/ANDROID_3.4.5/include/linux/gpio-i2cmux.h b/ANDROID_3.4.5/include/linux/gpio-i2cmux.h
deleted file mode 100644
index 4a333bb0..00000000
--- a/ANDROID_3.4.5/include/linux/gpio-i2cmux.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * gpio-i2cmux interface to platform code
- *
- * Peter Korsgaard <peter.korsgaard@barco.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.
- */
-
-#ifndef _LINUX_GPIO_I2CMUX_H
-#define _LINUX_GPIO_I2CMUX_H
-
-/* MUX has no specific idle mode */
-#define GPIO_I2CMUX_NO_IDLE ((unsigned)-1)
-
-/**
- * struct gpio_i2cmux_platform_data - Platform-dependent data for gpio-i2cmux
- * @parent: Parent I2C bus adapter number
- * @base_nr: Base I2C bus number to number adapters from or zero for dynamic
- * @values: Array of bitmasks of GPIO settings (low/high) for each
- * position
- * @n_values: Number of multiplexer positions (busses to instantiate)
- * @gpios: Array of GPIO numbers used to control MUX
- * @n_gpios: Number of GPIOs used to control MUX
- * @idle: Bitmask to write to MUX when idle or GPIO_I2CMUX_NO_IDLE if not used
- */
-struct gpio_i2cmux_platform_data {
- int parent;
- int base_nr;
- const unsigned *values;
- int n_values;
- const unsigned *gpios;
- int n_gpios;
- unsigned idle;
-};
-
-#endif /* _LINUX_GPIO_I2CMUX_H */
diff --git a/ANDROID_3.4.5/include/linux/gpio-pxa.h b/ANDROID_3.4.5/include/linux/gpio-pxa.h
deleted file mode 100644
index d755b28b..00000000
--- a/ANDROID_3.4.5/include/linux/gpio-pxa.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef __GPIO_PXA_H
-#define __GPIO_PXA_H
-
-#define GPIO_bit(x) (1 << ((x) & 0x1f))
-
-#define gpio_to_bank(gpio) ((gpio) >> 5)
-
-/* NOTE: some PXAs have fewer on-chip GPIOs (like PXA255, with 85).
- * Those cases currently cause holes in the GPIO number space, the
- * actual number of the last GPIO is recorded by 'pxa_last_gpio'.
- */
-extern int pxa_last_gpio;
-
-extern int pxa_irq_to_gpio(int irq);
-
-struct pxa_gpio_platform_data {
- int (*gpio_set_wake)(unsigned int gpio, unsigned int on);
-};
-
-#endif /* __GPIO_PXA_H */
diff --git a/ANDROID_3.4.5/include/linux/gpio.h b/ANDROID_3.4.5/include/linux/gpio.h
deleted file mode 100644
index 6155ecf1..00000000
--- a/ANDROID_3.4.5/include/linux/gpio.h
+++ /dev/null
@@ -1,177 +0,0 @@
-#ifndef __LINUX_GPIO_H
-#define __LINUX_GPIO_H
-
-/* see Documentation/gpio.txt */
-
-/* make these flag values available regardless of GPIO kconfig options */
-#define GPIOF_DIR_OUT (0 << 0)
-#define GPIOF_DIR_IN (1 << 0)
-
-#define GPIOF_INIT_LOW (0 << 1)
-#define GPIOF_INIT_HIGH (1 << 1)
-
-#define GPIOF_IN (GPIOF_DIR_IN)
-#define GPIOF_OUT_INIT_LOW (GPIOF_DIR_OUT | GPIOF_INIT_LOW)
-#define GPIOF_OUT_INIT_HIGH (GPIOF_DIR_OUT | GPIOF_INIT_HIGH)
-
-/* Gpio pin is open drain */
-#define GPIOF_OPEN_DRAIN (1 << 2)
-
-/* Gpio pin is open source */
-#define GPIOF_OPEN_SOURCE (1 << 3)
-
-/**
- * struct gpio - a structure describing a GPIO with configuration
- * @gpio: the GPIO number
- * @flags: GPIO configuration as specified by GPIOF_*
- * @label: a literal description string of this GPIO
- */
-struct gpio {
- unsigned gpio;
- unsigned long flags;
- const char *label;
-};
-
-#ifdef CONFIG_GENERIC_GPIO
-#include <asm/gpio.h>
-
-#else
-
-#include <linux/kernel.h>
-#include <linux/types.h>
-#include <linux/errno.h>
-#include <linux/bug.h>
-
-struct device;
-struct gpio_chip;
-
-static inline bool gpio_is_valid(int number)
-{
- return false;
-}
-
-static inline int gpio_request(unsigned gpio, const char *label)
-{
- return -ENOSYS;
-}
-
-static inline int gpio_request_one(unsigned gpio,
- unsigned long flags, const char *label)
-{
- return -ENOSYS;
-}
-
-static inline int gpio_request_array(const struct gpio *array, size_t num)
-{
- return -ENOSYS;
-}
-
-static inline void gpio_free(unsigned gpio)
-{
- might_sleep();
-
- /* GPIO can never have been requested */
- WARN_ON(1);
-}
-
-static inline void gpio_free_array(const struct gpio *array, size_t num)
-{
- might_sleep();
-
- /* GPIO can never have been requested */
- WARN_ON(1);
-}
-
-static inline int gpio_direction_input(unsigned gpio)
-{
- return -ENOSYS;
-}
-
-static inline int gpio_direction_output(unsigned gpio, int value)
-{
- return -ENOSYS;
-}
-
-static inline int gpio_set_debounce(unsigned gpio, unsigned debounce)
-{
- return -ENOSYS;
-}
-
-static inline int gpio_get_value(unsigned gpio)
-{
- /* GPIO can never have been requested or set as {in,out}put */
- WARN_ON(1);
- return 0;
-}
-
-static inline void gpio_set_value(unsigned gpio, int value)
-{
- /* GPIO can never have been requested or set as output */
- WARN_ON(1);
-}
-
-static inline int gpio_cansleep(unsigned gpio)
-{
- /* GPIO can never have been requested or set as {in,out}put */
- WARN_ON(1);
- return 0;
-}
-
-static inline int gpio_get_value_cansleep(unsigned gpio)
-{
- /* GPIO can never have been requested or set as {in,out}put */
- WARN_ON(1);
- return 0;
-}
-
-static inline void gpio_set_value_cansleep(unsigned gpio, int value)
-{
- /* GPIO can never have been requested or set as output */
- WARN_ON(1);
-}
-
-static inline int gpio_export(unsigned gpio, bool direction_may_change)
-{
- /* GPIO can never have been requested or set as {in,out}put */
- WARN_ON(1);
- return -EINVAL;
-}
-
-static inline int gpio_export_link(struct device *dev, const char *name,
- unsigned gpio)
-{
- /* GPIO can never have been exported */
- WARN_ON(1);
- return -EINVAL;
-}
-
-static inline int gpio_sysfs_set_active_low(unsigned gpio, int value)
-{
- /* GPIO can never have been requested */
- WARN_ON(1);
- return -EINVAL;
-}
-
-static inline void gpio_unexport(unsigned gpio)
-{
- /* GPIO can never have been exported */
- WARN_ON(1);
-}
-
-static inline int gpio_to_irq(unsigned gpio)
-{
- /* GPIO can never have been requested or set as input */
- WARN_ON(1);
- return -EINVAL;
-}
-
-static inline int irq_to_gpio(unsigned irq)
-{
- /* irq can never have been returned from gpio_to_irq() */
- WARN_ON(1);
- return -EINVAL;
-}
-
-#endif
-
-#endif /* __LINUX_GPIO_H */
diff --git a/ANDROID_3.4.5/include/linux/gpio_event.h b/ANDROID_3.4.5/include/linux/gpio_event.h
deleted file mode 100644
index 2613fc5e..00000000
--- a/ANDROID_3.4.5/include/linux/gpio_event.h
+++ /dev/null
@@ -1,170 +0,0 @@
-/* include/linux/gpio_event.h
- *
- * Copyright (C) 2007 Google, Inc.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#ifndef _LINUX_GPIO_EVENT_H
-#define _LINUX_GPIO_EVENT_H
-
-#include <linux/input.h>
-
-struct gpio_event_input_devs {
- int count;
- struct input_dev *dev[];
-};
-enum {
- GPIO_EVENT_FUNC_UNINIT = 0x0,
- GPIO_EVENT_FUNC_INIT = 0x1,
- GPIO_EVENT_FUNC_SUSPEND = 0x2,
- GPIO_EVENT_FUNC_RESUME = 0x3,
-};
-struct gpio_event_info {
- int (*func)(struct gpio_event_input_devs *input_devs,
- struct gpio_event_info *info,
- void **data, int func);
- int (*event)(struct gpio_event_input_devs *input_devs,
- struct gpio_event_info *info,
- void **data, unsigned int dev, unsigned int type,
- unsigned int code, int value); /* out events */
- bool no_suspend;
-};
-
-struct gpio_event_platform_data {
- const char *name;
- struct gpio_event_info **info;
- size_t info_count;
- int (*power)(const struct gpio_event_platform_data *pdata, bool on);
- const char *names[]; /* If name is NULL, names contain a NULL */
- /* terminated list of input devices to create */
-};
-
-#define GPIO_EVENT_DEV_NAME "gpio-event"
-
-/* Key matrix */
-
-enum gpio_event_matrix_flags {
- /* unset: drive active output low, set: drive active output high */
- GPIOKPF_ACTIVE_HIGH = 1U << 0,
- GPIOKPF_DEBOUNCE = 1U << 1,
- GPIOKPF_REMOVE_SOME_PHANTOM_KEYS = 1U << 2,
- GPIOKPF_REMOVE_PHANTOM_KEYS = GPIOKPF_REMOVE_SOME_PHANTOM_KEYS |
- GPIOKPF_DEBOUNCE,
- GPIOKPF_DRIVE_INACTIVE = 1U << 3,
- GPIOKPF_LEVEL_TRIGGERED_IRQ = 1U << 4,
- GPIOKPF_PRINT_UNMAPPED_KEYS = 1U << 16,
- GPIOKPF_PRINT_MAPPED_KEYS = 1U << 17,
- GPIOKPF_PRINT_PHANTOM_KEYS = 1U << 18,
-};
-
-#define MATRIX_CODE_BITS (10)
-#define MATRIX_KEY_MASK ((1U << MATRIX_CODE_BITS) - 1)
-#define MATRIX_KEY(dev, code) \
- (((dev) << MATRIX_CODE_BITS) | (code & MATRIX_KEY_MASK))
-
-extern int gpio_event_matrix_func(struct gpio_event_input_devs *input_devs,
- struct gpio_event_info *info, void **data, int func);
-struct gpio_event_matrix_info {
- /* initialize to gpio_event_matrix_func */
- struct gpio_event_info info;
- /* size must be ninputs * noutputs */
- const unsigned short *keymap;
- unsigned int *input_gpios;
- unsigned int *output_gpios;
- unsigned int ninputs;
- unsigned int noutputs;
- /* time to wait before reading inputs after driving each output */
- ktime_t settle_time;
- /* time to wait before scanning the keypad a second time */
- ktime_t debounce_delay;
- ktime_t poll_time;
- unsigned flags;
-};
-
-/* Directly connected inputs and outputs */
-
-enum gpio_event_direct_flags {
- GPIOEDF_ACTIVE_HIGH = 1U << 0,
-/* GPIOEDF_USE_DOWN_IRQ = 1U << 1, */
-/* GPIOEDF_USE_IRQ = (1U << 2) | GPIOIDF_USE_DOWN_IRQ, */
- GPIOEDF_PRINT_KEYS = 1U << 8,
- GPIOEDF_PRINT_KEY_DEBOUNCE = 1U << 9,
- GPIOEDF_PRINT_KEY_UNSTABLE = 1U << 10,
-};
-
-struct gpio_event_direct_entry {
- uint32_t gpio:16;
- uint32_t code:10;
- uint32_t dev:6;
-};
-
-/* inputs */
-extern int gpio_event_input_func(struct gpio_event_input_devs *input_devs,
- struct gpio_event_info *info, void **data, int func);
-struct gpio_event_input_info {
- /* initialize to gpio_event_input_func */
- struct gpio_event_info info;
- ktime_t debounce_time;
- ktime_t poll_time;
- uint16_t flags;
- uint16_t type;
- const struct gpio_event_direct_entry *keymap;
- size_t keymap_size;
-};
-
-/* outputs */
-extern int gpio_event_output_func(struct gpio_event_input_devs *input_devs,
- struct gpio_event_info *info, void **data, int func);
-extern int gpio_event_output_event(struct gpio_event_input_devs *input_devs,
- struct gpio_event_info *info, void **data,
- unsigned int dev, unsigned int type,
- unsigned int code, int value);
-struct gpio_event_output_info {
- /* initialize to gpio_event_output_func and gpio_event_output_event */
- struct gpio_event_info info;
- uint16_t flags;
- uint16_t type;
- const struct gpio_event_direct_entry *keymap;
- size_t keymap_size;
-};
-
-
-/* axes */
-
-enum gpio_event_axis_flags {
- GPIOEAF_PRINT_UNKNOWN_DIRECTION = 1U << 16,
- GPIOEAF_PRINT_RAW = 1U << 17,
- GPIOEAF_PRINT_EVENT = 1U << 18,
-};
-
-extern int gpio_event_axis_func(struct gpio_event_input_devs *input_devs,
- struct gpio_event_info *info, void **data, int func);
-struct gpio_event_axis_info {
- /* initialize to gpio_event_axis_func */
- struct gpio_event_info info;
- uint8_t count; /* number of gpios for this axis */
- uint8_t dev; /* device index when using multiple input devices */
- uint8_t type; /* EV_REL or EV_ABS */
- uint16_t code;
- uint16_t decoded_size;
- uint16_t (*map)(struct gpio_event_axis_info *info, uint16_t in);
- uint32_t *gpio;
- uint32_t flags;
-};
-#define gpio_axis_2bit_gray_map gpio_axis_4bit_gray_map
-#define gpio_axis_3bit_gray_map gpio_axis_4bit_gray_map
-uint16_t gpio_axis_4bit_gray_map(
- struct gpio_event_axis_info *info, uint16_t in);
-uint16_t gpio_axis_5bit_singletrack_map(
- struct gpio_event_axis_info *info, uint16_t in);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/gpio_keys.h b/ANDROID_3.4.5/include/linux/gpio_keys.h
deleted file mode 100644
index a7e977ff..00000000
--- a/ANDROID_3.4.5/include/linux/gpio_keys.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef _GPIO_KEYS_H
-#define _GPIO_KEYS_H
-
-struct device;
-
-struct gpio_keys_button {
- /* Configuration parameters */
- unsigned int code; /* input event code (KEY_*, SW_*) */
- int gpio; /* -1 if this key does not support gpio */
- int active_low;
- const char *desc;
- unsigned int type; /* input event type (EV_KEY, EV_SW, EV_ABS) */
- int wakeup; /* configure the button as a wake-up source */
- int debounce_interval; /* debounce ticks interval in msecs */
- bool can_disable;
- int value; /* axis value for EV_ABS */
- unsigned int irq; /* Irq number in case of interrupt keys */
-};
-
-struct gpio_keys_platform_data {
- struct gpio_keys_button *buttons;
- int nbuttons;
- unsigned int poll_interval; /* polling interval in msecs -
- for polling driver only */
- unsigned int rep:1; /* enable input subsystem auto repeat */
- int (*enable)(struct device *dev);
- void (*disable)(struct device *dev);
- const char *name; /* input device name */
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/gpio_mouse.h b/ANDROID_3.4.5/include/linux/gpio_mouse.h
deleted file mode 100644
index 44ed7aa1..00000000
--- a/ANDROID_3.4.5/include/linux/gpio_mouse.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Driver for simulating a mouse on GPIO lines.
- *
- * Copyright (C) 2007 Atmel 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.
- */
-
-#ifndef _GPIO_MOUSE_H
-#define _GPIO_MOUSE_H
-
-#define GPIO_MOUSE_POLARITY_ACT_HIGH 0x00
-#define GPIO_MOUSE_POLARITY_ACT_LOW 0x01
-
-#define GPIO_MOUSE_PIN_UP 0
-#define GPIO_MOUSE_PIN_DOWN 1
-#define GPIO_MOUSE_PIN_LEFT 2
-#define GPIO_MOUSE_PIN_RIGHT 3
-#define GPIO_MOUSE_PIN_BLEFT 4
-#define GPIO_MOUSE_PIN_BMIDDLE 5
-#define GPIO_MOUSE_PIN_BRIGHT 6
-#define GPIO_MOUSE_PIN_MAX 7
-
-/**
- * struct gpio_mouse_platform_data
- * @scan_ms: integer in ms specifying the scan periode.
- * @polarity: Pin polarity, active high or low.
- * @up: GPIO line for up value.
- * @down: GPIO line for down value.
- * @left: GPIO line for left value.
- * @right: GPIO line for right value.
- * @bleft: GPIO line for left button.
- * @bmiddle: GPIO line for middle button.
- * @bright: GPIO line for right button.
- *
- * This struct must be added to the platform_device in the board code.
- * It is used by the gpio_mouse driver to setup GPIO lines and to
- * calculate mouse movement.
- */
-struct gpio_mouse_platform_data {
- int scan_ms;
- int polarity;
-
- union {
- struct {
- int up;
- int down;
- int left;
- int right;
-
- int bleft;
- int bmiddle;
- int bright;
- };
- int pins[GPIO_MOUSE_PIN_MAX];
- };
-};
-
-#endif /* _GPIO_MOUSE_H */
diff --git a/ANDROID_3.4.5/include/linux/gsmmux.h b/ANDROID_3.4.5/include/linux/gsmmux.h
deleted file mode 100644
index c25e9477..00000000
--- a/ANDROID_3.4.5/include/linux/gsmmux.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef _LINUX_GSMMUX_H
-#define _LINUX_GSMMUX_H
-
-struct gsm_config
-{
- unsigned int adaption;
- unsigned int encapsulation;
- unsigned int initiator;
- unsigned int t1;
- unsigned int t2;
- unsigned int t3;
- unsigned int n2;
- unsigned int mru;
- unsigned int mtu;
- unsigned int k;
- unsigned int i;
- unsigned int unused[8]; /* Padding for expansion without
- breaking stuff */
-};
-
-#define GSMIOC_GETCONF _IOR('G', 0, struct gsm_config)
-#define GSMIOC_SETCONF _IOW('G', 1, struct gsm_config)
-
-struct gsm_netconfig {
- unsigned int adaption; /* Adaption to use in network mode */
- unsigned short protocol;/* Protocol to use - only ETH_P_IP supported */
- unsigned short unused2;
- char if_name[IFNAMSIZ]; /* interface name format string */
- __u8 unused[28]; /* For future use */
-};
-
-#define GSMIOC_ENABLE_NET _IOW('G', 2, struct gsm_netconfig)
-#define GSMIOC_DISABLE_NET _IO('G', 3)
-
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/hardirq.h b/ANDROID_3.4.5/include/linux/hardirq.h
deleted file mode 100644
index bb7f3097..00000000
--- a/ANDROID_3.4.5/include/linux/hardirq.h
+++ /dev/null
@@ -1,210 +0,0 @@
-#ifndef LINUX_HARDIRQ_H
-#define LINUX_HARDIRQ_H
-
-#include <linux/preempt.h>
-#include <linux/lockdep.h>
-#include <linux/ftrace_irq.h>
-#include <asm/hardirq.h>
-
-/*
- * We put the hardirq and softirq counter into the preemption
- * counter. The bitmask has the following meaning:
- *
- * - bits 0-7 are the preemption count (max preemption depth: 256)
- * - bits 8-15 are the softirq count (max # of softirqs: 256)
- *
- * The hardirq count can in theory reach the same as NR_IRQS.
- * In reality, the number of nested IRQS is limited to the stack
- * size as well. For archs with over 1000 IRQS it is not practical
- * to expect that they will all nest. We give a max of 10 bits for
- * hardirq nesting. An arch may choose to give less than 10 bits.
- * m68k expects it to be 8.
- *
- * - bits 16-25 are the hardirq count (max # of nested hardirqs: 1024)
- * - bit 26 is the NMI_MASK
- * - bit 28 is the PREEMPT_ACTIVE flag
- *
- * PREEMPT_MASK: 0x000000ff
- * SOFTIRQ_MASK: 0x0000ff00
- * HARDIRQ_MASK: 0x03ff0000
- * NMI_MASK: 0x04000000
- */
-#define PREEMPT_BITS 8
-#define SOFTIRQ_BITS 8
-#define NMI_BITS 1
-
-#define MAX_HARDIRQ_BITS 10
-
-#ifndef HARDIRQ_BITS
-# define HARDIRQ_BITS MAX_HARDIRQ_BITS
-#endif
-
-#if HARDIRQ_BITS > MAX_HARDIRQ_BITS
-#error HARDIRQ_BITS too high!
-#endif
-
-#define PREEMPT_SHIFT 0
-#define SOFTIRQ_SHIFT (PREEMPT_SHIFT + PREEMPT_BITS)
-#define HARDIRQ_SHIFT (SOFTIRQ_SHIFT + SOFTIRQ_BITS)
-#define NMI_SHIFT (HARDIRQ_SHIFT + HARDIRQ_BITS)
-
-#define __IRQ_MASK(x) ((1UL << (x))-1)
-
-#define PREEMPT_MASK (__IRQ_MASK(PREEMPT_BITS) << PREEMPT_SHIFT)
-#define SOFTIRQ_MASK (__IRQ_MASK(SOFTIRQ_BITS) << SOFTIRQ_SHIFT)
-#define HARDIRQ_MASK (__IRQ_MASK(HARDIRQ_BITS) << HARDIRQ_SHIFT)
-#define NMI_MASK (__IRQ_MASK(NMI_BITS) << NMI_SHIFT)
-
-#define PREEMPT_OFFSET (1UL << PREEMPT_SHIFT)
-#define SOFTIRQ_OFFSET (1UL << SOFTIRQ_SHIFT)
-#define HARDIRQ_OFFSET (1UL << HARDIRQ_SHIFT)
-#define NMI_OFFSET (1UL << NMI_SHIFT)
-
-#define SOFTIRQ_DISABLE_OFFSET (2 * SOFTIRQ_OFFSET)
-
-#ifndef PREEMPT_ACTIVE
-#define PREEMPT_ACTIVE_BITS 1
-#define PREEMPT_ACTIVE_SHIFT (NMI_SHIFT + NMI_BITS)
-#define PREEMPT_ACTIVE (__IRQ_MASK(PREEMPT_ACTIVE_BITS) << PREEMPT_ACTIVE_SHIFT)
-#endif
-
-#if PREEMPT_ACTIVE < (1 << (NMI_SHIFT + NMI_BITS))
-#error PREEMPT_ACTIVE is too low!
-#endif
-
-#define hardirq_count() (preempt_count() & HARDIRQ_MASK)
-#define softirq_count() (preempt_count() & SOFTIRQ_MASK)
-#define irq_count() (preempt_count() & (HARDIRQ_MASK | SOFTIRQ_MASK \
- | NMI_MASK))
-
-/*
- * Are we doing bottom half or hardware interrupt processing?
- * Are we in a softirq context? Interrupt context?
- * in_softirq - Are we currently processing softirq or have bh disabled?
- * in_serving_softirq - Are we currently processing softirq?
- */
-#define in_irq() (hardirq_count())
-#define in_softirq() (softirq_count())
-#define in_interrupt() (irq_count())
-#define in_serving_softirq() (softirq_count() & SOFTIRQ_OFFSET)
-
-/*
- * Are we in NMI context?
- */
-#define in_nmi() (preempt_count() & NMI_MASK)
-
-#if defined(CONFIG_PREEMPT_COUNT)
-# define PREEMPT_CHECK_OFFSET 1
-#else
-# define PREEMPT_CHECK_OFFSET 0
-#endif
-
-/*
- * Are we running in atomic context? WARNING: this macro cannot
- * always detect atomic context; in particular, it cannot know about
- * held spinlocks in non-preemptible kernels. Thus it should not be
- * used in the general case to determine whether sleeping is possible.
- * Do not use in_atomic() in driver code.
- */
-#define in_atomic() ((preempt_count() & ~PREEMPT_ACTIVE) != 0)
-
-/*
- * Check whether we were atomic before we did preempt_disable():
- * (used by the scheduler, *after* releasing the kernel lock)
- */
-#define in_atomic_preempt_off() \
- ((preempt_count() & ~PREEMPT_ACTIVE) != PREEMPT_CHECK_OFFSET)
-
-#ifdef CONFIG_PREEMPT_COUNT
-# define preemptible() (preempt_count() == 0 && !irqs_disabled())
-# define IRQ_EXIT_OFFSET (HARDIRQ_OFFSET-1)
-#else
-# define preemptible() 0
-# define IRQ_EXIT_OFFSET HARDIRQ_OFFSET
-#endif
-
-#if defined(CONFIG_SMP) || defined(CONFIG_GENERIC_HARDIRQS)
-extern void synchronize_irq(unsigned int irq);
-#else
-# define synchronize_irq(irq) barrier()
-#endif
-
-struct task_struct;
-
-#if !defined(CONFIG_VIRT_CPU_ACCOUNTING) && !defined(CONFIG_IRQ_TIME_ACCOUNTING)
-static inline void account_system_vtime(struct task_struct *tsk)
-{
-}
-#else
-extern void account_system_vtime(struct task_struct *tsk);
-#endif
-
-#if defined(CONFIG_TINY_RCU) || defined(CONFIG_TINY_PREEMPT_RCU)
-
-static inline void rcu_nmi_enter(void)
-{
-}
-
-static inline void rcu_nmi_exit(void)
-{
-}
-
-#else
-extern void rcu_nmi_enter(void);
-extern void rcu_nmi_exit(void);
-#endif
-
-/*
- * It is safe to do non-atomic ops on ->hardirq_context,
- * because NMI handlers may not preempt and the ops are
- * always balanced, so the interrupted value of ->hardirq_context
- * will always be restored.
- */
-#define __irq_enter() \
- do { \
- account_system_vtime(current); \
- add_preempt_count(HARDIRQ_OFFSET); \
- trace_hardirq_enter(); \
- } while (0)
-
-/*
- * Enter irq context (on NO_HZ, update jiffies):
- */
-extern void irq_enter(void);
-
-/*
- * Exit irq context without processing softirqs:
- */
-#define __irq_exit() \
- do { \
- trace_hardirq_exit(); \
- account_system_vtime(current); \
- sub_preempt_count(HARDIRQ_OFFSET); \
- } while (0)
-
-/*
- * Exit irq context and process softirqs if needed:
- */
-extern void irq_exit(void);
-
-#define nmi_enter() \
- do { \
- ftrace_nmi_enter(); \
- BUG_ON(in_nmi()); \
- add_preempt_count(NMI_OFFSET + HARDIRQ_OFFSET); \
- lockdep_off(); \
- rcu_nmi_enter(); \
- trace_hardirq_enter(); \
- } while (0)
-
-#define nmi_exit() \
- do { \
- trace_hardirq_exit(); \
- rcu_nmi_exit(); \
- lockdep_on(); \
- BUG_ON(!in_nmi()); \
- sub_preempt_count(NMI_OFFSET + HARDIRQ_OFFSET); \
- ftrace_nmi_exit(); \
- } while (0)
-
-#endif /* LINUX_HARDIRQ_H */
diff --git a/ANDROID_3.4.5/include/linux/hash.h b/ANDROID_3.4.5/include/linux/hash.h
deleted file mode 100644
index b80506bd..00000000
--- a/ANDROID_3.4.5/include/linux/hash.h
+++ /dev/null
@@ -1,70 +0,0 @@
-#ifndef _LINUX_HASH_H
-#define _LINUX_HASH_H
-/* Fast hashing routine for ints, longs and pointers.
- (C) 2002 William Lee Irwin III, IBM */
-
-/*
- * Knuth recommends primes in approximately golden ratio to the maximum
- * integer representable by a machine word for multiplicative hashing.
- * Chuck Lever verified the effectiveness of this technique:
- * http://www.citi.umich.edu/techreports/reports/citi-tr-00-1.pdf
- *
- * These primes are chosen to be bit-sparse, that is operations on
- * them can use shifts and additions instead of multiplications for
- * machines where multiplications are slow.
- */
-
-#include <asm/types.h>
-
-/* 2^31 + 2^29 - 2^25 + 2^22 - 2^19 - 2^16 + 1 */
-#define GOLDEN_RATIO_PRIME_32 0x9e370001UL
-/* 2^63 + 2^61 - 2^57 + 2^54 - 2^51 - 2^18 + 1 */
-#define GOLDEN_RATIO_PRIME_64 0x9e37fffffffc0001UL
-
-#if BITS_PER_LONG == 32
-#define GOLDEN_RATIO_PRIME GOLDEN_RATIO_PRIME_32
-#define hash_long(val, bits) hash_32(val, bits)
-#elif BITS_PER_LONG == 64
-#define hash_long(val, bits) hash_64(val, bits)
-#define GOLDEN_RATIO_PRIME GOLDEN_RATIO_PRIME_64
-#else
-#error Wordsize not 32 or 64
-#endif
-
-static inline u64 hash_64(u64 val, unsigned int bits)
-{
- u64 hash = val;
-
- /* Sigh, gcc can't optimise this alone like it does for 32 bits. */
- u64 n = hash;
- n <<= 18;
- hash -= n;
- n <<= 33;
- hash -= n;
- n <<= 3;
- hash += n;
- n <<= 3;
- hash -= n;
- n <<= 4;
- hash += n;
- n <<= 2;
- hash += n;
-
- /* High bits are more random, so use them. */
- return hash >> (64 - bits);
-}
-
-static inline u32 hash_32(u32 val, unsigned int bits)
-{
- /* On some cpus multiply is faster, on others gcc will do shifts */
- u32 hash = val * GOLDEN_RATIO_PRIME_32;
-
- /* High bits are more random, so use them. */
- return hash >> (32 - bits);
-}
-
-static inline unsigned long hash_ptr(const void *ptr, unsigned int bits)
-{
- return hash_long((unsigned long)ptr, bits);
-}
-#endif /* _LINUX_HASH_H */
diff --git a/ANDROID_3.4.5/include/linux/hdlc.h b/ANDROID_3.4.5/include/linux/hdlc.h
deleted file mode 100644
index ee275c8b..00000000
--- a/ANDROID_3.4.5/include/linux/hdlc.h
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Generic HDLC support routines for Linux
- *
- * Copyright (C) 1999-2005 Krzysztof Halasa <khc@pm.waw.pl>
- *
- * 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.
- */
-
-#ifndef __HDLC_H
-#define __HDLC_H
-
-
-#define HDLC_MAX_MTU 1500 /* Ethernet 1500 bytes */
-#if 0
-#define HDLC_MAX_MRU (HDLC_MAX_MTU + 10 + 14 + 4) /* for ETH+VLAN over FR */
-#else
-#define HDLC_MAX_MRU 1600 /* as required for FR network */
-#endif
-
-
-#ifdef __KERNEL__
-
-#include <linux/skbuff.h>
-#include <linux/netdevice.h>
-#include <linux/hdlc/ioctl.h>
-
-/* This structure is a private property of HDLC protocols.
- Hardware drivers have no interest here */
-
-struct hdlc_proto {
- int (*open)(struct net_device *dev);
- void (*close)(struct net_device *dev);
- void (*start)(struct net_device *dev); /* if open & DCD */
- void (*stop)(struct net_device *dev); /* if open & !DCD */
- void (*detach)(struct net_device *dev);
- int (*ioctl)(struct net_device *dev, struct ifreq *ifr);
- __be16 (*type_trans)(struct sk_buff *skb, struct net_device *dev);
- int (*netif_rx)(struct sk_buff *skb);
- netdev_tx_t (*xmit)(struct sk_buff *skb, struct net_device *dev);
- struct module *module;
- struct hdlc_proto *next; /* next protocol in the list */
-};
-
-
-/* Pointed to by netdev_priv(dev) */
-typedef struct hdlc_device {
- /* used by HDLC layer to take control over HDLC device from hw driver*/
- int (*attach)(struct net_device *dev,
- unsigned short encoding, unsigned short parity);
-
- /* hardware driver must handle this instead of dev->hard_start_xmit */
- netdev_tx_t (*xmit)(struct sk_buff *skb, struct net_device *dev);
-
- /* Things below are for HDLC layer internal use only */
- const struct hdlc_proto *proto;
- int carrier;
- int open;
- spinlock_t state_lock;
- void *state;
- void *priv;
-} hdlc_device;
-
-
-
-/* Exported from hdlc module */
-
-/* Called by hardware driver when a user requests HDLC service */
-int hdlc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd);
-
-/* Must be used by hardware driver on module startup/exit */
-#define register_hdlc_device(dev) register_netdev(dev)
-void unregister_hdlc_device(struct net_device *dev);
-
-
-void register_hdlc_protocol(struct hdlc_proto *proto);
-void unregister_hdlc_protocol(struct hdlc_proto *proto);
-
-struct net_device *alloc_hdlcdev(void *priv);
-
-static inline struct hdlc_device* dev_to_hdlc(struct net_device *dev)
-{
- return netdev_priv(dev);
-}
-
-static __inline__ void debug_frame(const struct sk_buff *skb)
-{
- int i;
-
- for (i=0; i < skb->len; i++) {
- if (i == 100) {
- printk("...\n");
- return;
- }
- printk(" %02X", skb->data[i]);
- }
- printk("\n");
-}
-
-
-/* Must be called by hardware driver when HDLC device is being opened */
-int hdlc_open(struct net_device *dev);
-/* Must be called by hardware driver when HDLC device is being closed */
-void hdlc_close(struct net_device *dev);
-/* May be used by hardware driver */
-int hdlc_change_mtu(struct net_device *dev, int new_mtu);
-/* Must be pointed to by hw driver's dev->netdev_ops->ndo_start_xmit */
-netdev_tx_t hdlc_start_xmit(struct sk_buff *skb, struct net_device *dev);
-
-int attach_hdlc_protocol(struct net_device *dev, struct hdlc_proto *proto,
- size_t size);
-/* May be used by hardware driver to gain control over HDLC device */
-void detach_hdlc_protocol(struct net_device *dev);
-
-static __inline__ __be16 hdlc_type_trans(struct sk_buff *skb,
- struct net_device *dev)
-{
- hdlc_device *hdlc = dev_to_hdlc(dev);
-
- skb->dev = dev;
- skb_reset_mac_header(skb);
-
- if (hdlc->proto->type_trans)
- return hdlc->proto->type_trans(skb, dev);
- else
- return htons(ETH_P_HDLC);
-}
-
-#endif /* __KERNEL */
-#endif /* __HDLC_H */
diff --git a/ANDROID_3.4.5/include/linux/hdlc/Kbuild b/ANDROID_3.4.5/include/linux/hdlc/Kbuild
deleted file mode 100644
index 1fb26448..00000000
--- a/ANDROID_3.4.5/include/linux/hdlc/Kbuild
+++ /dev/null
@@ -1 +0,0 @@
-header-y += ioctl.h
diff --git a/ANDROID_3.4.5/include/linux/hdlc/ioctl.h b/ANDROID_3.4.5/include/linux/hdlc/ioctl.h
deleted file mode 100644
index 58397236..00000000
--- a/ANDROID_3.4.5/include/linux/hdlc/ioctl.h
+++ /dev/null
@@ -1,81 +0,0 @@
-#ifndef __HDLC_IOCTL_H__
-#define __HDLC_IOCTL_H__
-
-
-#define GENERIC_HDLC_VERSION 4 /* For synchronization with sethdlc utility */
-
-#define CLOCK_DEFAULT 0 /* Default setting */
-#define CLOCK_EXT 1 /* External TX and RX clock - DTE */
-#define CLOCK_INT 2 /* Internal TX and RX clock - DCE */
-#define CLOCK_TXINT 3 /* Internal TX and external RX clock */
-#define CLOCK_TXFROMRX 4 /* TX clock derived from external RX clock */
-
-
-#define ENCODING_DEFAULT 0 /* Default setting */
-#define ENCODING_NRZ 1
-#define ENCODING_NRZI 2
-#define ENCODING_FM_MARK 3
-#define ENCODING_FM_SPACE 4
-#define ENCODING_MANCHESTER 5
-
-
-#define PARITY_DEFAULT 0 /* Default setting */
-#define PARITY_NONE 1 /* No parity */
-#define PARITY_CRC16_PR0 2 /* CRC16, initial value 0x0000 */
-#define PARITY_CRC16_PR1 3 /* CRC16, initial value 0xFFFF */
-#define PARITY_CRC16_PR0_CCITT 4 /* CRC16, initial 0x0000, ITU-T version */
-#define PARITY_CRC16_PR1_CCITT 5 /* CRC16, initial 0xFFFF, ITU-T version */
-#define PARITY_CRC32_PR0_CCITT 6 /* CRC32, initial value 0x00000000 */
-#define PARITY_CRC32_PR1_CCITT 7 /* CRC32, initial value 0xFFFFFFFF */
-
-#define LMI_DEFAULT 0 /* Default setting */
-#define LMI_NONE 1 /* No LMI, all PVCs are static */
-#define LMI_ANSI 2 /* ANSI Annex D */
-#define LMI_CCITT 3 /* ITU-T Annex A */
-#define LMI_CISCO 4 /* The "original" LMI, aka Gang of Four */
-
-typedef struct {
- unsigned int clock_rate; /* bits per second */
- unsigned int clock_type; /* internal, external, TX-internal etc. */
- unsigned short loopback;
-} sync_serial_settings; /* V.35, V.24, X.21 */
-
-typedef struct {
- unsigned int clock_rate; /* bits per second */
- unsigned int clock_type; /* internal, external, TX-internal etc. */
- unsigned short loopback;
- unsigned int slot_map;
-} te1_settings; /* T1, E1 */
-
-typedef struct {
- unsigned short encoding;
- unsigned short parity;
-} raw_hdlc_proto;
-
-typedef struct {
- unsigned int t391;
- unsigned int t392;
- unsigned int n391;
- unsigned int n392;
- unsigned int n393;
- unsigned short lmi;
- unsigned short dce; /* 1 for DCE (network side) operation */
-} fr_proto;
-
-typedef struct {
- unsigned int dlci;
-} fr_proto_pvc; /* for creating/deleting FR PVCs */
-
-typedef struct {
- unsigned int dlci;
- char master[IFNAMSIZ]; /* Name of master FRAD device */
-}fr_proto_pvc_info; /* for returning PVC information only */
-
-typedef struct {
- unsigned int interval;
- unsigned int timeout;
-} cisco_proto;
-
-/* PPP doesn't need any info now - supply length = 0 to ioctl */
-
-#endif /* __HDLC_IOCTL_H__ */
diff --git a/ANDROID_3.4.5/include/linux/hdlcdrv.h b/ANDROID_3.4.5/include/linux/hdlcdrv.h
deleted file mode 100644
index c010b4a7..00000000
--- a/ANDROID_3.4.5/include/linux/hdlcdrv.h
+++ /dev/null
@@ -1,377 +0,0 @@
-/*
- * hdlcdrv.h -- HDLC packet radio network driver.
- * The Linux soundcard driver for 1200 baud and 9600 baud packet radio
- * (C) 1996-1998 by Thomas Sailer, HB9JNX/AE4WA
- */
-
-#ifndef _HDLCDRV_H
-#define _HDLCDRV_H
-
-/* -------------------------------------------------------------------- */
-/*
- * structs for the IOCTL commands
- */
-
-struct hdlcdrv_params {
- int iobase;
- int irq;
- int dma;
- int dma2;
- int seriobase;
- int pariobase;
- int midiiobase;
-};
-
-struct hdlcdrv_channel_params {
- int tx_delay; /* the transmitter keyup delay in 10ms units */
- int tx_tail; /* the transmitter keyoff delay in 10ms units */
- int slottime; /* the slottime in 10ms; usually 10 = 100ms */
- int ppersist; /* the p-persistence 0..255 */
- int fulldup; /* some driver do not support full duplex, setting */
- /* this just makes them send even if DCD is on */
-};
-
-struct hdlcdrv_old_channel_state {
- int ptt;
- int dcd;
- int ptt_keyed;
-};
-
-struct hdlcdrv_channel_state {
- int ptt;
- int dcd;
- int ptt_keyed;
- unsigned long tx_packets;
- unsigned long tx_errors;
- unsigned long rx_packets;
- unsigned long rx_errors;
-};
-
-struct hdlcdrv_ioctl {
- int cmd;
- union {
- struct hdlcdrv_params mp;
- struct hdlcdrv_channel_params cp;
- struct hdlcdrv_channel_state cs;
- struct hdlcdrv_old_channel_state ocs;
- unsigned int calibrate;
- unsigned char bits;
- char modename[128];
- char drivername[32];
- } data;
-};
-
-/* -------------------------------------------------------------------- */
-
-/*
- * ioctl values
- */
-#define HDLCDRVCTL_GETMODEMPAR 0
-#define HDLCDRVCTL_SETMODEMPAR 1
-#define HDLCDRVCTL_MODEMPARMASK 2 /* not handled by hdlcdrv */
-#define HDLCDRVCTL_GETCHANNELPAR 10
-#define HDLCDRVCTL_SETCHANNELPAR 11
-#define HDLCDRVCTL_OLDGETSTAT 20
-#define HDLCDRVCTL_CALIBRATE 21
-#define HDLCDRVCTL_GETSTAT 22
-
-/*
- * these are mainly for debugging purposes
- */
-#define HDLCDRVCTL_GETSAMPLES 30
-#define HDLCDRVCTL_GETBITS 31
-
-/*
- * not handled by hdlcdrv, but by its depending drivers
- */
-#define HDLCDRVCTL_GETMODE 40
-#define HDLCDRVCTL_SETMODE 41
-#define HDLCDRVCTL_MODELIST 42
-#define HDLCDRVCTL_DRIVERNAME 43
-
-/*
- * mask of needed modem parameters, returned by HDLCDRVCTL_MODEMPARMASK
- */
-#define HDLCDRV_PARMASK_IOBASE (1<<0)
-#define HDLCDRV_PARMASK_IRQ (1<<1)
-#define HDLCDRV_PARMASK_DMA (1<<2)
-#define HDLCDRV_PARMASK_DMA2 (1<<3)
-#define HDLCDRV_PARMASK_SERIOBASE (1<<4)
-#define HDLCDRV_PARMASK_PARIOBASE (1<<5)
-#define HDLCDRV_PARMASK_MIDIIOBASE (1<<6)
-
-/* -------------------------------------------------------------------- */
-
-#ifdef __KERNEL__
-
-#include <linux/netdevice.h>
-#include <linux/if.h>
-#include <linux/spinlock.h>
-
-#define HDLCDRV_MAGIC 0x5ac6e778
-#define HDLCDRV_HDLCBUFFER 32 /* should be a power of 2 for speed reasons */
-#define HDLCDRV_BITBUFFER 256 /* should be a power of 2 for speed reasons */
-#undef HDLCDRV_LOOPBACK /* define for HDLC debugging purposes */
-#define HDLCDRV_DEBUG
-
-/* maximum packet length, excluding CRC */
-#define HDLCDRV_MAXFLEN 400
-
-
-struct hdlcdrv_hdlcbuffer {
- spinlock_t lock;
- unsigned rd, wr;
- unsigned short buf[HDLCDRV_HDLCBUFFER];
-};
-
-#ifdef HDLCDRV_DEBUG
-struct hdlcdrv_bitbuffer {
- unsigned int rd;
- unsigned int wr;
- unsigned int shreg;
- unsigned char buffer[HDLCDRV_BITBUFFER];
-};
-
-static inline void hdlcdrv_add_bitbuffer(struct hdlcdrv_bitbuffer *buf,
- unsigned int bit)
-{
- unsigned char new;
-
- new = buf->shreg & 1;
- buf->shreg >>= 1;
- buf->shreg |= (!!bit) << 7;
- if (new) {
- buf->buffer[buf->wr] = buf->shreg;
- buf->wr = (buf->wr+1) % sizeof(buf->buffer);
- buf->shreg = 0x80;
- }
-}
-
-static inline void hdlcdrv_add_bitbuffer_word(struct hdlcdrv_bitbuffer *buf,
- unsigned int bits)
-{
- buf->buffer[buf->wr] = bits & 0xff;
- buf->wr = (buf->wr+1) % sizeof(buf->buffer);
- buf->buffer[buf->wr] = (bits >> 8) & 0xff;
- buf->wr = (buf->wr+1) % sizeof(buf->buffer);
-
-}
-#endif /* HDLCDRV_DEBUG */
-
-/* -------------------------------------------------------------------- */
-/*
- * Information that need to be kept for each driver.
- */
-
-struct hdlcdrv_ops {
- /*
- * first some informations needed by the hdlcdrv routines
- */
- const char *drvname;
- const char *drvinfo;
- /*
- * the routines called by the hdlcdrv routines
- */
- int (*open)(struct net_device *);
- int (*close)(struct net_device *);
- int (*ioctl)(struct net_device *, struct ifreq *,
- struct hdlcdrv_ioctl *, int);
-};
-
-struct hdlcdrv_state {
- int magic;
- int opened;
-
- const struct hdlcdrv_ops *ops;
-
- struct {
- int bitrate;
- } par;
-
- struct hdlcdrv_pttoutput {
- int dma2;
- int seriobase;
- int pariobase;
- int midiiobase;
- unsigned int flags;
- } ptt_out;
-
- struct hdlcdrv_channel_params ch_params;
-
- struct hdlcdrv_hdlcrx {
- struct hdlcdrv_hdlcbuffer hbuf;
- unsigned long in_hdlc_rx;
- /* 0 = sync hunt, != 0 receiving */
- int rx_state;
- unsigned int bitstream;
- unsigned int bitbuf;
- int numbits;
- unsigned char dcd;
-
- int len;
- unsigned char *bp;
- unsigned char buffer[HDLCDRV_MAXFLEN+2];
- } hdlcrx;
-
- struct hdlcdrv_hdlctx {
- struct hdlcdrv_hdlcbuffer hbuf;
- unsigned long in_hdlc_tx;
- /*
- * 0 = send flags
- * 1 = send txtail (flags)
- * 2 = send packet
- */
- int tx_state;
- int numflags;
- unsigned int bitstream;
- unsigned char ptt;
- int calibrate;
- int slotcnt;
-
- unsigned int bitbuf;
- int numbits;
-
- int len;
- unsigned char *bp;
- unsigned char buffer[HDLCDRV_MAXFLEN+2];
- } hdlctx;
-
-#ifdef HDLCDRV_DEBUG
- struct hdlcdrv_bitbuffer bitbuf_channel;
- struct hdlcdrv_bitbuffer bitbuf_hdlc;
-#endif /* HDLCDRV_DEBUG */
-
- int ptt_keyed;
-
- /* queued skb for transmission */
- struct sk_buff *skb;
-};
-
-
-/* -------------------------------------------------------------------- */
-
-static inline int hdlcdrv_hbuf_full(struct hdlcdrv_hdlcbuffer *hb)
-{
- unsigned long flags;
- int ret;
-
- spin_lock_irqsave(&hb->lock, flags);
- ret = !((HDLCDRV_HDLCBUFFER - 1 + hb->rd - hb->wr) % HDLCDRV_HDLCBUFFER);
- spin_unlock_irqrestore(&hb->lock, flags);
- return ret;
-}
-
-/* -------------------------------------------------------------------- */
-
-static inline int hdlcdrv_hbuf_empty(struct hdlcdrv_hdlcbuffer *hb)
-{
- unsigned long flags;
- int ret;
-
- spin_lock_irqsave(&hb->lock, flags);
- ret = (hb->rd == hb->wr);
- spin_unlock_irqrestore(&hb->lock, flags);
- return ret;
-}
-
-/* -------------------------------------------------------------------- */
-
-static inline unsigned short hdlcdrv_hbuf_get(struct hdlcdrv_hdlcbuffer *hb)
-{
- unsigned long flags;
- unsigned short val;
- unsigned newr;
-
- spin_lock_irqsave(&hb->lock, flags);
- if (hb->rd == hb->wr)
- val = 0;
- else {
- newr = (hb->rd+1) % HDLCDRV_HDLCBUFFER;
- val = hb->buf[hb->rd];
- hb->rd = newr;
- }
- spin_unlock_irqrestore(&hb->lock, flags);
- return val;
-}
-
-/* -------------------------------------------------------------------- */
-
-static inline void hdlcdrv_hbuf_put(struct hdlcdrv_hdlcbuffer *hb,
- unsigned short val)
-{
- unsigned newp;
- unsigned long flags;
-
- spin_lock_irqsave(&hb->lock, flags);
- newp = (hb->wr+1) % HDLCDRV_HDLCBUFFER;
- if (newp != hb->rd) {
- hb->buf[hb->wr] = val & 0xffff;
- hb->wr = newp;
- }
- spin_unlock_irqrestore(&hb->lock, flags);
-}
-
-/* -------------------------------------------------------------------- */
-
-static inline void hdlcdrv_putbits(struct hdlcdrv_state *s, unsigned int bits)
-{
- hdlcdrv_hbuf_put(&s->hdlcrx.hbuf, bits);
-}
-
-static inline unsigned int hdlcdrv_getbits(struct hdlcdrv_state *s)
-{
- unsigned int ret;
-
- if (hdlcdrv_hbuf_empty(&s->hdlctx.hbuf)) {
- if (s->hdlctx.calibrate > 0)
- s->hdlctx.calibrate--;
- else
- s->hdlctx.ptt = 0;
- ret = 0;
- } else
- ret = hdlcdrv_hbuf_get(&s->hdlctx.hbuf);
-#ifdef HDLCDRV_LOOPBACK
- hdlcdrv_hbuf_put(&s->hdlcrx.hbuf, ret);
-#endif /* HDLCDRV_LOOPBACK */
- return ret;
-}
-
-static inline void hdlcdrv_channelbit(struct hdlcdrv_state *s, unsigned int bit)
-{
-#ifdef HDLCDRV_DEBUG
- hdlcdrv_add_bitbuffer(&s->bitbuf_channel, bit);
-#endif /* HDLCDRV_DEBUG */
-}
-
-static inline void hdlcdrv_setdcd(struct hdlcdrv_state *s, int dcd)
-{
- s->hdlcrx.dcd = !!dcd;
-}
-
-static inline int hdlcdrv_ptt(struct hdlcdrv_state *s)
-{
- return s->hdlctx.ptt || (s->hdlctx.calibrate > 0);
-}
-
-/* -------------------------------------------------------------------- */
-
-void hdlcdrv_receiver(struct net_device *, struct hdlcdrv_state *);
-void hdlcdrv_transmitter(struct net_device *, struct hdlcdrv_state *);
-void hdlcdrv_arbitrate(struct net_device *, struct hdlcdrv_state *);
-struct net_device *hdlcdrv_register(const struct hdlcdrv_ops *ops,
- unsigned int privsize, const char *ifname,
- unsigned int baseaddr, unsigned int irq,
- unsigned int dma);
-void hdlcdrv_unregister(struct net_device *dev);
-
-/* -------------------------------------------------------------------- */
-
-
-
-#endif /* __KERNEL__ */
-
-/* -------------------------------------------------------------------- */
-
-#endif /* _HDLCDRV_H */
-
-/* -------------------------------------------------------------------- */
diff --git a/ANDROID_3.4.5/include/linux/hdreg.h b/ANDROID_3.4.5/include/linux/hdreg.h
deleted file mode 100644
index 29ee2873..00000000
--- a/ANDROID_3.4.5/include/linux/hdreg.h
+++ /dev/null
@@ -1,658 +0,0 @@
-#ifndef _LINUX_HDREG_H
-#define _LINUX_HDREG_H
-
-#include <linux/types.h>
-
-/*
- * Command Header sizes for IOCTL commands
- */
-
-#define HDIO_DRIVE_CMD_HDR_SIZE (4 * sizeof(__u8))
-#define HDIO_DRIVE_HOB_HDR_SIZE (8 * sizeof(__u8))
-#define HDIO_DRIVE_TASK_HDR_SIZE (8 * sizeof(__u8))
-
-#define IDE_DRIVE_TASK_NO_DATA 0
-#ifndef __KERNEL__
-#define IDE_DRIVE_TASK_INVALID -1
-#define IDE_DRIVE_TASK_SET_XFER 1
-#define IDE_DRIVE_TASK_IN 2
-#define IDE_DRIVE_TASK_OUT 3
-#endif
-#define IDE_DRIVE_TASK_RAW_WRITE 4
-
-/*
- * Define standard taskfile in/out register
- */
-#define IDE_TASKFILE_STD_IN_FLAGS 0xFE
-#define IDE_HOB_STD_IN_FLAGS 0x3C
-#ifndef __KERNEL__
-#define IDE_TASKFILE_STD_OUT_FLAGS 0xFE
-#define IDE_HOB_STD_OUT_FLAGS 0x3C
-
-typedef unsigned char task_ioreg_t;
-typedef unsigned long sata_ioreg_t;
-#endif
-
-typedef union ide_reg_valid_s {
- unsigned all : 16;
- struct {
- unsigned data : 1;
- unsigned error_feature : 1;
- unsigned sector : 1;
- unsigned nsector : 1;
- unsigned lcyl : 1;
- unsigned hcyl : 1;
- unsigned select : 1;
- unsigned status_command : 1;
-
- unsigned data_hob : 1;
- unsigned error_feature_hob : 1;
- unsigned sector_hob : 1;
- unsigned nsector_hob : 1;
- unsigned lcyl_hob : 1;
- unsigned hcyl_hob : 1;
- unsigned select_hob : 1;
- unsigned control_hob : 1;
- } b;
-} ide_reg_valid_t;
-
-typedef struct ide_task_request_s {
- __u8 io_ports[8];
- __u8 hob_ports[8]; /* bytes 6 and 7 are unused */
- ide_reg_valid_t out_flags;
- ide_reg_valid_t in_flags;
- int data_phase;
- int req_cmd;
- unsigned long out_size;
- unsigned long in_size;
-} ide_task_request_t;
-
-typedef struct ide_ioctl_request_s {
- ide_task_request_t *task_request;
- unsigned char *out_buffer;
- unsigned char *in_buffer;
-} ide_ioctl_request_t;
-
-struct hd_drive_cmd_hdr {
- __u8 command;
- __u8 sector_number;
- __u8 feature;
- __u8 sector_count;
-};
-
-#ifndef __KERNEL__
-typedef struct hd_drive_task_hdr {
- __u8 data;
- __u8 feature;
- __u8 sector_count;
- __u8 sector_number;
- __u8 low_cylinder;
- __u8 high_cylinder;
- __u8 device_head;
- __u8 command;
-} task_struct_t;
-
-typedef struct hd_drive_hob_hdr {
- __u8 data;
- __u8 feature;
- __u8 sector_count;
- __u8 sector_number;
- __u8 low_cylinder;
- __u8 high_cylinder;
- __u8 device_head;
- __u8 control;
-} hob_struct_t;
-#endif
-
-#define TASKFILE_NO_DATA 0x0000
-
-#define TASKFILE_IN 0x0001
-#define TASKFILE_MULTI_IN 0x0002
-
-#define TASKFILE_OUT 0x0004
-#define TASKFILE_MULTI_OUT 0x0008
-#define TASKFILE_IN_OUT 0x0010
-
-#define TASKFILE_IN_DMA 0x0020
-#define TASKFILE_OUT_DMA 0x0040
-#define TASKFILE_IN_DMAQ 0x0080
-#define TASKFILE_OUT_DMAQ 0x0100
-
-#ifndef __KERNEL__
-#define TASKFILE_P_IN 0x0200
-#define TASKFILE_P_OUT 0x0400
-#define TASKFILE_P_IN_DMA 0x0800
-#define TASKFILE_P_OUT_DMA 0x1000
-#define TASKFILE_P_IN_DMAQ 0x2000
-#define TASKFILE_P_OUT_DMAQ 0x4000
-#define TASKFILE_48 0x8000
-#define TASKFILE_INVALID 0x7fff
-#endif
-
-#ifndef __KERNEL__
-/* ATA/ATAPI Commands pre T13 Spec */
-#define WIN_NOP 0x00
-/*
- * 0x01->0x02 Reserved
- */
-#define CFA_REQ_EXT_ERROR_CODE 0x03 /* CFA Request Extended Error Code */
-/*
- * 0x04->0x07 Reserved
- */
-#define WIN_SRST 0x08 /* ATAPI soft reset command */
-#define WIN_DEVICE_RESET 0x08
-/*
- * 0x09->0x0F Reserved
- */
-#define WIN_RECAL 0x10
-#define WIN_RESTORE WIN_RECAL
-/*
- * 0x10->0x1F Reserved
- */
-#define WIN_READ 0x20 /* 28-Bit */
-#define WIN_READ_ONCE 0x21 /* 28-Bit without retries */
-#define WIN_READ_LONG 0x22 /* 28-Bit */
-#define WIN_READ_LONG_ONCE 0x23 /* 28-Bit without retries */
-#define WIN_READ_EXT 0x24 /* 48-Bit */
-#define WIN_READDMA_EXT 0x25 /* 48-Bit */
-#define WIN_READDMA_QUEUED_EXT 0x26 /* 48-Bit */
-#define WIN_READ_NATIVE_MAX_EXT 0x27 /* 48-Bit */
-/*
- * 0x28
- */
-#define WIN_MULTREAD_EXT 0x29 /* 48-Bit */
-/*
- * 0x2A->0x2F Reserved
- */
-#define WIN_WRITE 0x30 /* 28-Bit */
-#define WIN_WRITE_ONCE 0x31 /* 28-Bit without retries */
-#define WIN_WRITE_LONG 0x32 /* 28-Bit */
-#define WIN_WRITE_LONG_ONCE 0x33 /* 28-Bit without retries */
-#define WIN_WRITE_EXT 0x34 /* 48-Bit */
-#define WIN_WRITEDMA_EXT 0x35 /* 48-Bit */
-#define WIN_WRITEDMA_QUEUED_EXT 0x36 /* 48-Bit */
-#define WIN_SET_MAX_EXT 0x37 /* 48-Bit */
-#define CFA_WRITE_SECT_WO_ERASE 0x38 /* CFA Write Sectors without erase */
-#define WIN_MULTWRITE_EXT 0x39 /* 48-Bit */
-/*
- * 0x3A->0x3B Reserved
- */
-#define WIN_WRITE_VERIFY 0x3C /* 28-Bit */
-/*
- * 0x3D->0x3F Reserved
- */
-#define WIN_VERIFY 0x40 /* 28-Bit - Read Verify Sectors */
-#define WIN_VERIFY_ONCE 0x41 /* 28-Bit - without retries */
-#define WIN_VERIFY_EXT 0x42 /* 48-Bit */
-/*
- * 0x43->0x4F Reserved
- */
-#define WIN_FORMAT 0x50
-/*
- * 0x51->0x5F Reserved
- */
-#define WIN_INIT 0x60
-/*
- * 0x61->0x5F Reserved
- */
-#define WIN_SEEK 0x70 /* 0x70-0x7F Reserved */
-
-#define CFA_TRANSLATE_SECTOR 0x87 /* CFA Translate Sector */
-#define WIN_DIAGNOSE 0x90
-#define WIN_SPECIFY 0x91 /* set drive geometry translation */
-#define WIN_DOWNLOAD_MICROCODE 0x92
-#define WIN_STANDBYNOW2 0x94
-#define WIN_STANDBY2 0x96
-#define WIN_SETIDLE2 0x97
-#define WIN_CHECKPOWERMODE2 0x98
-#define WIN_SLEEPNOW2 0x99
-/*
- * 0x9A VENDOR
- */
-#define WIN_PACKETCMD 0xA0 /* Send a packet command. */
-#define WIN_PIDENTIFY 0xA1 /* identify ATAPI device */
-#define WIN_QUEUED_SERVICE 0xA2
-#define WIN_SMART 0xB0 /* self-monitoring and reporting */
-#define CFA_ERASE_SECTORS 0xC0
-#define WIN_MULTREAD 0xC4 /* read sectors using multiple mode*/
-#define WIN_MULTWRITE 0xC5 /* write sectors using multiple mode */
-#define WIN_SETMULT 0xC6 /* enable/disable multiple mode */
-#define WIN_READDMA_QUEUED 0xC7 /* read sectors using Queued DMA transfers */
-#define WIN_READDMA 0xC8 /* read sectors using DMA transfers */
-#define WIN_READDMA_ONCE 0xC9 /* 28-Bit - without retries */
-#define WIN_WRITEDMA 0xCA /* write sectors using DMA transfers */
-#define WIN_WRITEDMA_ONCE 0xCB /* 28-Bit - without retries */
-#define WIN_WRITEDMA_QUEUED 0xCC /* write sectors using Queued DMA transfers */
-#define CFA_WRITE_MULTI_WO_ERASE 0xCD /* CFA Write multiple without erase */
-#define WIN_GETMEDIASTATUS 0xDA
-#define WIN_ACKMEDIACHANGE 0xDB /* ATA-1, ATA-2 vendor */
-#define WIN_POSTBOOT 0xDC
-#define WIN_PREBOOT 0xDD
-#define WIN_DOORLOCK 0xDE /* lock door on removable drives */
-#define WIN_DOORUNLOCK 0xDF /* unlock door on removable drives */
-#define WIN_STANDBYNOW1 0xE0
-#define WIN_IDLEIMMEDIATE 0xE1 /* force drive to become "ready" */
-#define WIN_STANDBY 0xE2 /* Set device in Standby Mode */
-#define WIN_SETIDLE1 0xE3
-#define WIN_READ_BUFFER 0xE4 /* force read only 1 sector */
-#define WIN_CHECKPOWERMODE1 0xE5
-#define WIN_SLEEPNOW1 0xE6
-#define WIN_FLUSH_CACHE 0xE7
-#define WIN_WRITE_BUFFER 0xE8 /* force write only 1 sector */
-#define WIN_WRITE_SAME 0xE9 /* read ata-2 to use */
- /* SET_FEATURES 0x22 or 0xDD */
-#define WIN_FLUSH_CACHE_EXT 0xEA /* 48-Bit */
-#define WIN_IDENTIFY 0xEC /* ask drive to identify itself */
-#define WIN_MEDIAEJECT 0xED
-#define WIN_IDENTIFY_DMA 0xEE /* same as WIN_IDENTIFY, but DMA */
-#define WIN_SETFEATURES 0xEF /* set special drive features */
-#define EXABYTE_ENABLE_NEST 0xF0
-#define WIN_SECURITY_SET_PASS 0xF1
-#define WIN_SECURITY_UNLOCK 0xF2
-#define WIN_SECURITY_ERASE_PREPARE 0xF3
-#define WIN_SECURITY_ERASE_UNIT 0xF4
-#define WIN_SECURITY_FREEZE_LOCK 0xF5
-#define WIN_SECURITY_DISABLE 0xF6
-#define WIN_READ_NATIVE_MAX 0xF8 /* return the native maximum address */
-#define WIN_SET_MAX 0xF9
-#define DISABLE_SEAGATE 0xFB
-
-/* WIN_SMART sub-commands */
-
-#define SMART_READ_VALUES 0xD0
-#define SMART_READ_THRESHOLDS 0xD1
-#define SMART_AUTOSAVE 0xD2
-#define SMART_SAVE 0xD3
-#define SMART_IMMEDIATE_OFFLINE 0xD4
-#define SMART_READ_LOG_SECTOR 0xD5
-#define SMART_WRITE_LOG_SECTOR 0xD6
-#define SMART_WRITE_THRESHOLDS 0xD7
-#define SMART_ENABLE 0xD8
-#define SMART_DISABLE 0xD9
-#define SMART_STATUS 0xDA
-#define SMART_AUTO_OFFLINE 0xDB
-
-/* Password used in TF4 & TF5 executing SMART commands */
-
-#define SMART_LCYL_PASS 0x4F
-#define SMART_HCYL_PASS 0xC2
-
-/* WIN_SETFEATURES sub-commands */
-#define SETFEATURES_EN_8BIT 0x01 /* Enable 8-Bit Transfers */
-#define SETFEATURES_EN_WCACHE 0x02 /* Enable write cache */
-#define SETFEATURES_DIS_DEFECT 0x04 /* Disable Defect Management */
-#define SETFEATURES_EN_APM 0x05 /* Enable advanced power management */
-#define SETFEATURES_EN_SAME_R 0x22 /* for a region ATA-1 */
-#define SETFEATURES_DIS_MSN 0x31 /* Disable Media Status Notification */
-#define SETFEATURES_DIS_RETRY 0x33 /* Disable Retry */
-#define SETFEATURES_EN_AAM 0x42 /* Enable Automatic Acoustic Management */
-#define SETFEATURES_RW_LONG 0x44 /* Set Length of VS bytes */
-#define SETFEATURES_SET_CACHE 0x54 /* Set Cache segments to SC Reg. Val */
-#define SETFEATURES_DIS_RLA 0x55 /* Disable read look-ahead feature */
-#define SETFEATURES_EN_RI 0x5D /* Enable release interrupt */
-#define SETFEATURES_EN_SI 0x5E /* Enable SERVICE interrupt */
-#define SETFEATURES_DIS_RPOD 0x66 /* Disable reverting to power on defaults */
-#define SETFEATURES_DIS_ECC 0x77 /* Disable ECC byte count */
-#define SETFEATURES_DIS_8BIT 0x81 /* Disable 8-Bit Transfers */
-#define SETFEATURES_DIS_WCACHE 0x82 /* Disable write cache */
-#define SETFEATURES_EN_DEFECT 0x84 /* Enable Defect Management */
-#define SETFEATURES_DIS_APM 0x85 /* Disable advanced power management */
-#define SETFEATURES_EN_ECC 0x88 /* Enable ECC byte count */
-#define SETFEATURES_EN_MSN 0x95 /* Enable Media Status Notification */
-#define SETFEATURES_EN_RETRY 0x99 /* Enable Retry */
-#define SETFEATURES_EN_RLA 0xAA /* Enable read look-ahead feature */
-#define SETFEATURES_PREFETCH 0xAB /* Sets drive prefetch value */
-#define SETFEATURES_EN_REST 0xAC /* ATA-1 */
-#define SETFEATURES_4B_RW_LONG 0xBB /* Set Length of 4 bytes */
-#define SETFEATURES_DIS_AAM 0xC2 /* Disable Automatic Acoustic Management */
-#define SETFEATURES_EN_RPOD 0xCC /* Enable reverting to power on defaults */
-#define SETFEATURES_DIS_RI 0xDD /* Disable release interrupt ATAPI */
-#define SETFEATURES_EN_SAME_M 0xDD /* for a entire device ATA-1 */
-#define SETFEATURES_DIS_SI 0xDE /* Disable SERVICE interrupt ATAPI */
-
-/* WIN_SECURITY sub-commands */
-
-#define SECURITY_SET_PASSWORD 0xBA
-#define SECURITY_UNLOCK 0xBB
-#define SECURITY_ERASE_PREPARE 0xBC
-#define SECURITY_ERASE_UNIT 0xBD
-#define SECURITY_FREEZE_LOCK 0xBE
-#define SECURITY_DISABLE_PASSWORD 0xBF
-#endif /* __KERNEL__ */
-
-struct hd_geometry {
- unsigned char heads;
- unsigned char sectors;
- unsigned short cylinders;
- unsigned long start;
-};
-
-/* hd/ide ctl's that pass (arg) ptrs to user space are numbered 0x030n/0x031n */
-#define HDIO_GETGEO 0x0301 /* get device geometry */
-#define HDIO_GET_UNMASKINTR 0x0302 /* get current unmask setting */
-#define HDIO_GET_MULTCOUNT 0x0304 /* get current IDE blockmode setting */
-#define HDIO_GET_QDMA 0x0305 /* get use-qdma flag */
-
-#define HDIO_SET_XFER 0x0306 /* set transfer rate via proc */
-
-#define HDIO_OBSOLETE_IDENTITY 0x0307 /* OBSOLETE, DO NOT USE: returns 142 bytes */
-#define HDIO_GET_KEEPSETTINGS 0x0308 /* get keep-settings-on-reset flag */
-#define HDIO_GET_32BIT 0x0309 /* get current io_32bit setting */
-#define HDIO_GET_NOWERR 0x030a /* get ignore-write-error flag */
-#define HDIO_GET_DMA 0x030b /* get use-dma flag */
-#define HDIO_GET_NICE 0x030c /* get nice flags */
-#define HDIO_GET_IDENTITY 0x030d /* get IDE identification info */
-#define HDIO_GET_WCACHE 0x030e /* get write cache mode on|off */
-#define HDIO_GET_ACOUSTIC 0x030f /* get acoustic value */
-#define HDIO_GET_ADDRESS 0x0310 /* */
-
-#define HDIO_GET_BUSSTATE 0x031a /* get the bus state of the hwif */
-#define HDIO_TRISTATE_HWIF 0x031b /* execute a channel tristate */
-#define HDIO_DRIVE_RESET 0x031c /* execute a device reset */
-#define HDIO_DRIVE_TASKFILE 0x031d /* execute raw taskfile */
-#define HDIO_DRIVE_TASK 0x031e /* execute task and special drive command */
-#define HDIO_DRIVE_CMD 0x031f /* execute a special drive command */
-#define HDIO_DRIVE_CMD_AEB HDIO_DRIVE_TASK
-
-/* hd/ide ctl's that pass (arg) non-ptr values are numbered 0x032n/0x033n */
-#define HDIO_SET_MULTCOUNT 0x0321 /* change IDE blockmode */
-#define HDIO_SET_UNMASKINTR 0x0322 /* permit other irqs during I/O */
-#define HDIO_SET_KEEPSETTINGS 0x0323 /* keep ioctl settings on reset */
-#define HDIO_SET_32BIT 0x0324 /* change io_32bit flags */
-#define HDIO_SET_NOWERR 0x0325 /* change ignore-write-error flag */
-#define HDIO_SET_DMA 0x0326 /* change use-dma flag */
-#define HDIO_SET_PIO_MODE 0x0327 /* reconfig interface to new speed */
-#ifndef __KERNEL__
-#define HDIO_SCAN_HWIF 0x0328 /* register and (re)scan interface */
-#define HDIO_UNREGISTER_HWIF 0x032a /* unregister interface */
-#endif
-#define HDIO_SET_NICE 0x0329 /* set nice flags */
-#define HDIO_SET_WCACHE 0x032b /* change write cache enable-disable */
-#define HDIO_SET_ACOUSTIC 0x032c /* change acoustic behavior */
-#define HDIO_SET_BUSSTATE 0x032d /* set the bus state of the hwif */
-#define HDIO_SET_QDMA 0x032e /* change use-qdma flag */
-#define HDIO_SET_ADDRESS 0x032f /* change lba addressing modes */
-
-/* bus states */
-enum {
- BUSSTATE_OFF = 0,
- BUSSTATE_ON,
- BUSSTATE_TRISTATE
-};
-
-/* hd/ide ctl's that pass (arg) ptrs to user space are numbered 0x033n/0x033n */
-/* 0x330 is reserved - used to be HDIO_GETGEO_BIG */
-/* 0x331 is reserved - used to be HDIO_GETGEO_BIG_RAW */
-/* 0x338 is reserved - used to be HDIO_SET_IDE_SCSI */
-/* 0x339 is reserved - used to be HDIO_SET_SCSI_IDE */
-
-#define __NEW_HD_DRIVE_ID
-
-#ifndef __KERNEL__
-/*
- * Structure returned by HDIO_GET_IDENTITY, as per ANSI NCITS ATA6 rev.1b spec.
- *
- * If you change something here, please remember to update fix_driveid() in
- * ide/probe.c.
- */
-struct hd_driveid {
- unsigned short config; /* lots of obsolete bit flags */
- unsigned short cyls; /* Obsolete, "physical" cyls */
- unsigned short reserved2; /* reserved (word 2) */
- unsigned short heads; /* Obsolete, "physical" heads */
- unsigned short track_bytes; /* unformatted bytes per track */
- unsigned short sector_bytes; /* unformatted bytes per sector */
- unsigned short sectors; /* Obsolete, "physical" sectors per track */
- unsigned short vendor0; /* vendor unique */
- unsigned short vendor1; /* vendor unique */
- unsigned short vendor2; /* Retired vendor unique */
- unsigned char serial_no[20]; /* 0 = not_specified */
- unsigned short buf_type; /* Retired */
- unsigned short buf_size; /* Retired, 512 byte increments
- * 0 = not_specified
- */
- unsigned short ecc_bytes; /* for r/w long cmds; 0 = not_specified */
- unsigned char fw_rev[8]; /* 0 = not_specified */
- unsigned char model[40]; /* 0 = not_specified */
- unsigned char max_multsect; /* 0=not_implemented */
- unsigned char vendor3; /* vendor unique */
- unsigned short dword_io; /* 0=not_implemented; 1=implemented */
- unsigned char vendor4; /* vendor unique */
- unsigned char capability; /* (upper byte of word 49)
- * 3: IORDYsup
- * 2: IORDYsw
- * 1: LBA
- * 0: DMA
- */
- unsigned short reserved50; /* reserved (word 50) */
- unsigned char vendor5; /* Obsolete, vendor unique */
- unsigned char tPIO; /* Obsolete, 0=slow, 1=medium, 2=fast */
- unsigned char vendor6; /* Obsolete, vendor unique */
- unsigned char tDMA; /* Obsolete, 0=slow, 1=medium, 2=fast */
- unsigned short field_valid; /* (word 53)
- * 2: ultra_ok word 88
- * 1: eide_ok words 64-70
- * 0: cur_ok words 54-58
- */
- unsigned short cur_cyls; /* Obsolete, logical cylinders */
- unsigned short cur_heads; /* Obsolete, l heads */
- unsigned short cur_sectors; /* Obsolete, l sectors per track */
- unsigned short cur_capacity0; /* Obsolete, l total sectors on drive */
- unsigned short cur_capacity1; /* Obsolete, (2 words, misaligned int) */
- unsigned char multsect; /* current multiple sector count */
- unsigned char multsect_valid; /* when (bit0==1) multsect is ok */
- unsigned int lba_capacity; /* Obsolete, total number of sectors */
- unsigned short dma_1word; /* Obsolete, single-word dma info */
- unsigned short dma_mword; /* multiple-word dma info */
- unsigned short eide_pio_modes; /* bits 0:mode3 1:mode4 */
- unsigned short eide_dma_min; /* min mword dma cycle time (ns) */
- unsigned short eide_dma_time; /* recommended mword dma cycle time (ns) */
- unsigned short eide_pio; /* min cycle time (ns), no IORDY */
- unsigned short eide_pio_iordy; /* min cycle time (ns), with IORDY */
- unsigned short words69_70[2]; /* reserved words 69-70
- * future command overlap and queuing
- */
- unsigned short words71_74[4]; /* reserved words 71-74
- * for IDENTIFY PACKET DEVICE command
- */
- unsigned short queue_depth; /* (word 75)
- * 15:5 reserved
- * 4:0 Maximum queue depth -1
- */
- unsigned short words76_79[4]; /* reserved words 76-79 */
- unsigned short major_rev_num; /* (word 80) */
- unsigned short minor_rev_num; /* (word 81) */
- unsigned short command_set_1; /* (word 82) supported
- * 15: Obsolete
- * 14: NOP command
- * 13: READ_BUFFER
- * 12: WRITE_BUFFER
- * 11: Obsolete
- * 10: Host Protected Area
- * 9: DEVICE Reset
- * 8: SERVICE Interrupt
- * 7: Release Interrupt
- * 6: look-ahead
- * 5: write cache
- * 4: PACKET Command
- * 3: Power Management Feature Set
- * 2: Removable Feature Set
- * 1: Security Feature Set
- * 0: SMART Feature Set
- */
- unsigned short command_set_2; /* (word 83)
- * 15: Shall be ZERO
- * 14: Shall be ONE
- * 13: FLUSH CACHE EXT
- * 12: FLUSH CACHE
- * 11: Device Configuration Overlay
- * 10: 48-bit Address Feature Set
- * 9: Automatic Acoustic Management
- * 8: SET MAX security
- * 7: reserved 1407DT PARTIES
- * 6: SetF sub-command Power-Up
- * 5: Power-Up in Standby Feature Set
- * 4: Removable Media Notification
- * 3: APM Feature Set
- * 2: CFA Feature Set
- * 1: READ/WRITE DMA QUEUED
- * 0: Download MicroCode
- */
- unsigned short cfsse; /* (word 84)
- * cmd set-feature supported extensions
- * 15: Shall be ZERO
- * 14: Shall be ONE
- * 13:6 reserved
- * 5: General Purpose Logging
- * 4: Streaming Feature Set
- * 3: Media Card Pass Through
- * 2: Media Serial Number Valid
- * 1: SMART selt-test supported
- * 0: SMART error logging
- */
- unsigned short cfs_enable_1; /* (word 85)
- * command set-feature enabled
- * 15: Obsolete
- * 14: NOP command
- * 13: READ_BUFFER
- * 12: WRITE_BUFFER
- * 11: Obsolete
- * 10: Host Protected Area
- * 9: DEVICE Reset
- * 8: SERVICE Interrupt
- * 7: Release Interrupt
- * 6: look-ahead
- * 5: write cache
- * 4: PACKET Command
- * 3: Power Management Feature Set
- * 2: Removable Feature Set
- * 1: Security Feature Set
- * 0: SMART Feature Set
- */
- unsigned short cfs_enable_2; /* (word 86)
- * command set-feature enabled
- * 15: Shall be ZERO
- * 14: Shall be ONE
- * 13: FLUSH CACHE EXT
- * 12: FLUSH CACHE
- * 11: Device Configuration Overlay
- * 10: 48-bit Address Feature Set
- * 9: Automatic Acoustic Management
- * 8: SET MAX security
- * 7: reserved 1407DT PARTIES
- * 6: SetF sub-command Power-Up
- * 5: Power-Up in Standby Feature Set
- * 4: Removable Media Notification
- * 3: APM Feature Set
- * 2: CFA Feature Set
- * 1: READ/WRITE DMA QUEUED
- * 0: Download MicroCode
- */
- unsigned short csf_default; /* (word 87)
- * command set-feature default
- * 15: Shall be ZERO
- * 14: Shall be ONE
- * 13:6 reserved
- * 5: General Purpose Logging enabled
- * 4: Valid CONFIGURE STREAM executed
- * 3: Media Card Pass Through enabled
- * 2: Media Serial Number Valid
- * 1: SMART selt-test supported
- * 0: SMART error logging
- */
- unsigned short dma_ultra; /* (word 88) */
- unsigned short trseuc; /* time required for security erase */
- unsigned short trsEuc; /* time required for enhanced erase */
- unsigned short CurAPMvalues; /* current APM values */
- unsigned short mprc; /* master password revision code */
- unsigned short hw_config; /* hardware config (word 93)
- * 15: Shall be ZERO
- * 14: Shall be ONE
- * 13:
- * 12:
- * 11:
- * 10:
- * 9:
- * 8:
- * 7:
- * 6:
- * 5:
- * 4:
- * 3:
- * 2:
- * 1:
- * 0: Shall be ONE
- */
- unsigned short acoustic; /* (word 94)
- * 15:8 Vendor's recommended value
- * 7:0 current value
- */
- unsigned short msrqs; /* min stream request size */
- unsigned short sxfert; /* stream transfer time */
- unsigned short sal; /* stream access latency */
- unsigned int spg; /* stream performance granularity */
- unsigned long long lba_capacity_2;/* 48-bit total number of sectors */
- unsigned short words104_125[22];/* reserved words 104-125 */
- unsigned short last_lun; /* (word 126) */
- unsigned short word127; /* (word 127) Feature Set
- * Removable Media Notification
- * 15:2 reserved
- * 1:0 00 = not supported
- * 01 = supported
- * 10 = reserved
- * 11 = reserved
- */
- unsigned short dlf; /* (word 128)
- * device lock function
- * 15:9 reserved
- * 8 security level 1:max 0:high
- * 7:6 reserved
- * 5 enhanced erase
- * 4 expire
- * 3 frozen
- * 2 locked
- * 1 en/disabled
- * 0 capability
- */
- unsigned short csfo; /* (word 129)
- * current set features options
- * 15:4 reserved
- * 3: auto reassign
- * 2: reverting
- * 1: read-look-ahead
- * 0: write cache
- */
- unsigned short words130_155[26];/* reserved vendor words 130-155 */
- unsigned short word156; /* reserved vendor word 156 */
- unsigned short words157_159[3];/* reserved vendor words 157-159 */
- unsigned short cfa_power; /* (word 160) CFA Power Mode
- * 15 word 160 supported
- * 14 reserved
- * 13
- * 12
- * 11:0
- */
- unsigned short words161_175[15];/* Reserved for CFA */
- unsigned short words176_205[30];/* Current Media Serial Number */
- unsigned short words206_254[49];/* reserved words 206-254 */
- unsigned short integrity_word; /* (word 255)
- * 15:8 Checksum
- * 7:0 Signature
- */
-};
-#endif /* __KERNEL__ */
-
-/*
- * IDE "nice" flags. These are used on a per drive basis to determine
- * when to be nice and give more bandwidth to the other devices which
- * share the same IDE bus.
- */
-#define IDE_NICE_DSC_OVERLAP (0) /* per the DSC overlap protocol */
-#define IDE_NICE_ATAPI_OVERLAP (1) /* not supported yet */
-#define IDE_NICE_1 (3) /* when probably won't affect us much */
-#ifndef __KERNEL__
-#define IDE_NICE_0 (2) /* when sure that it won't affect us */
-#define IDE_NICE_2 (4) /* when we know it's on our expense */
-#endif
-
-#endif /* _LINUX_HDREG_H */
diff --git a/ANDROID_3.4.5/include/linux/hid-debug.h b/ANDROID_3.4.5/include/linux/hid-debug.h
deleted file mode 100644
index 53744fa1..00000000
--- a/ANDROID_3.4.5/include/linux/hid-debug.h
+++ /dev/null
@@ -1,65 +0,0 @@
-#ifndef __HID_DEBUG_H
-#define __HID_DEBUG_H
-
-/*
- * Copyright (c) 2007-2009 Jiri Kosina
- */
-
-/*
- * 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
- *
- */
-
-#define HID_DEBUG_BUFSIZE 512
-
-#ifdef CONFIG_DEBUG_FS
-
-void hid_dump_input(struct hid_device *, struct hid_usage *, __s32);
-void hid_dump_device(struct hid_device *, struct seq_file *);
-void hid_dump_field(struct hid_field *, int, struct seq_file *);
-char *hid_resolv_usage(unsigned, struct seq_file *);
-void hid_debug_register(struct hid_device *, const char *);
-void hid_debug_unregister(struct hid_device *);
-void hid_debug_init(void);
-void hid_debug_exit(void);
-void hid_debug_event(struct hid_device *, char *);
-
-
-struct hid_debug_list {
- char *hid_debug_buf;
- int head;
- int tail;
- struct fasync_struct *fasync;
- struct hid_device *hdev;
- struct list_head node;
- struct mutex read_mutex;
-};
-
-#else
-
-#define hid_dump_input(a,b,c) do { } while (0)
-#define hid_dump_device(a,b) do { } while (0)
-#define hid_dump_field(a,b,c) do { } while (0)
-#define hid_resolv_usage(a,b) do { } while (0)
-#define hid_debug_register(a, b) do { } while (0)
-#define hid_debug_unregister(a) do { } while (0)
-#define hid_debug_init() do { } while (0)
-#define hid_debug_exit() do { } while (0)
-#define hid_debug_event(a,b) do { } while (0)
-
-#endif
-
-#endif
-
diff --git a/ANDROID_3.4.5/include/linux/hid-roccat.h b/ANDROID_3.4.5/include/linux/hid-roccat.h
deleted file mode 100644
index 24e1ca01..00000000
--- a/ANDROID_3.4.5/include/linux/hid-roccat.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef __HID_ROCCAT_H
-#define __HID_ROCCAT_H
-
-/*
- * Copyright (c) 2010 Stefan Achatz <erazor_de@users.sourceforge.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.
- */
-
-#include <linux/hid.h>
-#include <linux/types.h>
-
-#define ROCCATIOCGREPSIZE _IOR('H', 0xf1, int)
-
-#ifdef __KERNEL__
-
-int roccat_connect(struct class *klass, struct hid_device *hid,
- int report_size);
-void roccat_disconnect(int minor);
-int roccat_report_event(int minor, u8 const *data);
-
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/hid.h b/ANDROID_3.4.5/include/linux/hid.h
deleted file mode 100644
index 773b4acf..00000000
--- a/ANDROID_3.4.5/include/linux/hid.h
+++ /dev/null
@@ -1,949 +0,0 @@
-#ifndef __HID_H
-#define __HID_H
-
-/*
- * Copyright (c) 1999 Andreas Gal
- * Copyright (c) 2000-2001 Vojtech Pavlik
- * Copyright (c) 2006-2007 Jiri Kosina
- */
-
-/*
- * 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
- *
- * Should you need to contact me, the author, you can do so either by
- * e-mail - mail your message to <vojtech@ucw.cz>, or by paper mail:
- * Vojtech Pavlik, Simunkova 1594, Prague 8, 182 00 Czech Republic
- */
-
-/*
- * USB HID (Human Interface Device) interface class code
- */
-
-#define USB_INTERFACE_CLASS_HID 3
-
-/*
- * USB HID interface subclass and protocol codes
- */
-
-#define USB_INTERFACE_SUBCLASS_BOOT 1
-#define USB_INTERFACE_PROTOCOL_KEYBOARD 1
-#define USB_INTERFACE_PROTOCOL_MOUSE 2
-
-/*
- * HID class requests
- */
-
-#define HID_REQ_GET_REPORT 0x01
-#define HID_REQ_GET_IDLE 0x02
-#define HID_REQ_GET_PROTOCOL 0x03
-#define HID_REQ_SET_REPORT 0x09
-#define HID_REQ_SET_IDLE 0x0A
-#define HID_REQ_SET_PROTOCOL 0x0B
-
-/*
- * HID class descriptor types
- */
-
-#define HID_DT_HID (USB_TYPE_CLASS | 0x01)
-#define HID_DT_REPORT (USB_TYPE_CLASS | 0x02)
-#define HID_DT_PHYSICAL (USB_TYPE_CLASS | 0x03)
-
-#define HID_MAX_DESCRIPTOR_SIZE 4096
-
-#ifdef __KERNEL__
-
-#include <linux/types.h>
-#include <linux/slab.h>
-#include <linux/list.h>
-#include <linux/mod_devicetable.h> /* hid_device_id */
-#include <linux/timer.h>
-#include <linux/workqueue.h>
-#include <linux/input.h>
-#include <linux/semaphore.h>
-#include <linux/power_supply.h>
-
-/*
- * We parse each description item into this structure. Short items data
- * values are expanded to 32-bit signed int, long items contain a pointer
- * into the data area.
- */
-
-struct hid_item {
- unsigned format;
- __u8 size;
- __u8 type;
- __u8 tag;
- union {
- __u8 u8;
- __s8 s8;
- __u16 u16;
- __s16 s16;
- __u32 u32;
- __s32 s32;
- __u8 *longdata;
- } data;
-};
-
-/*
- * HID report item format
- */
-
-#define HID_ITEM_FORMAT_SHORT 0
-#define HID_ITEM_FORMAT_LONG 1
-
-/*
- * Special tag indicating long items
- */
-
-#define HID_ITEM_TAG_LONG 15
-
-/*
- * HID report descriptor item type (prefix bit 2,3)
- */
-
-#define HID_ITEM_TYPE_MAIN 0
-#define HID_ITEM_TYPE_GLOBAL 1
-#define HID_ITEM_TYPE_LOCAL 2
-#define HID_ITEM_TYPE_RESERVED 3
-
-/*
- * HID report descriptor main item tags
- */
-
-#define HID_MAIN_ITEM_TAG_INPUT 8
-#define HID_MAIN_ITEM_TAG_OUTPUT 9
-#define HID_MAIN_ITEM_TAG_FEATURE 11
-#define HID_MAIN_ITEM_TAG_BEGIN_COLLECTION 10
-#define HID_MAIN_ITEM_TAG_END_COLLECTION 12
-
-/*
- * HID report descriptor main item contents
- */
-
-#define HID_MAIN_ITEM_CONSTANT 0x001
-#define HID_MAIN_ITEM_VARIABLE 0x002
-#define HID_MAIN_ITEM_RELATIVE 0x004
-#define HID_MAIN_ITEM_WRAP 0x008
-#define HID_MAIN_ITEM_NONLINEAR 0x010
-#define HID_MAIN_ITEM_NO_PREFERRED 0x020
-#define HID_MAIN_ITEM_NULL_STATE 0x040
-#define HID_MAIN_ITEM_VOLATILE 0x080
-#define HID_MAIN_ITEM_BUFFERED_BYTE 0x100
-
-/*
- * HID report descriptor collection item types
- */
-
-#define HID_COLLECTION_PHYSICAL 0
-#define HID_COLLECTION_APPLICATION 1
-#define HID_COLLECTION_LOGICAL 2
-
-/*
- * HID report descriptor global item tags
- */
-
-#define HID_GLOBAL_ITEM_TAG_USAGE_PAGE 0
-#define HID_GLOBAL_ITEM_TAG_LOGICAL_MINIMUM 1
-#define HID_GLOBAL_ITEM_TAG_LOGICAL_MAXIMUM 2
-#define HID_GLOBAL_ITEM_TAG_PHYSICAL_MINIMUM 3
-#define HID_GLOBAL_ITEM_TAG_PHYSICAL_MAXIMUM 4
-#define HID_GLOBAL_ITEM_TAG_UNIT_EXPONENT 5
-#define HID_GLOBAL_ITEM_TAG_UNIT 6
-#define HID_GLOBAL_ITEM_TAG_REPORT_SIZE 7
-#define HID_GLOBAL_ITEM_TAG_REPORT_ID 8
-#define HID_GLOBAL_ITEM_TAG_REPORT_COUNT 9
-#define HID_GLOBAL_ITEM_TAG_PUSH 10
-#define HID_GLOBAL_ITEM_TAG_POP 11
-
-/*
- * HID report descriptor local item tags
- */
-
-#define HID_LOCAL_ITEM_TAG_USAGE 0
-#define HID_LOCAL_ITEM_TAG_USAGE_MINIMUM 1
-#define HID_LOCAL_ITEM_TAG_USAGE_MAXIMUM 2
-#define HID_LOCAL_ITEM_TAG_DESIGNATOR_INDEX 3
-#define HID_LOCAL_ITEM_TAG_DESIGNATOR_MINIMUM 4
-#define HID_LOCAL_ITEM_TAG_DESIGNATOR_MAXIMUM 5
-#define HID_LOCAL_ITEM_TAG_STRING_INDEX 7
-#define HID_LOCAL_ITEM_TAG_STRING_MINIMUM 8
-#define HID_LOCAL_ITEM_TAG_STRING_MAXIMUM 9
-#define HID_LOCAL_ITEM_TAG_DELIMITER 10
-
-/*
- * HID usage tables
- */
-
-#define HID_USAGE_PAGE 0xffff0000
-
-#define HID_UP_UNDEFINED 0x00000000
-#define HID_UP_GENDESK 0x00010000
-#define HID_UP_SIMULATION 0x00020000
-#define HID_UP_GENDEVCTRLS 0x00060000
-#define HID_UP_KEYBOARD 0x00070000
-#define HID_UP_LED 0x00080000
-#define HID_UP_BUTTON 0x00090000
-#define HID_UP_ORDINAL 0x000a0000
-#define HID_UP_CONSUMER 0x000c0000
-#define HID_UP_DIGITIZER 0x000d0000
-#define HID_UP_PID 0x000f0000
-#define HID_UP_HPVENDOR 0xff7f0000
-#define HID_UP_MSVENDOR 0xff000000
-#define HID_UP_CUSTOM 0x00ff0000
-#define HID_UP_LOGIVENDOR 0xffbc0000
-
-#define HID_USAGE 0x0000ffff
-
-#define HID_GD_POINTER 0x00010001
-#define HID_GD_MOUSE 0x00010002
-#define HID_GD_JOYSTICK 0x00010004
-#define HID_GD_GAMEPAD 0x00010005
-#define HID_GD_KEYBOARD 0x00010006
-#define HID_GD_KEYPAD 0x00010007
-#define HID_GD_MULTIAXIS 0x00010008
-#define HID_GD_X 0x00010030
-#define HID_GD_Y 0x00010031
-#define HID_GD_Z 0x00010032
-#define HID_GD_RX 0x00010033
-#define HID_GD_RY 0x00010034
-#define HID_GD_RZ 0x00010035
-#define HID_GD_SLIDER 0x00010036
-#define HID_GD_DIAL 0x00010037
-#define HID_GD_WHEEL 0x00010038
-#define HID_GD_HATSWITCH 0x00010039
-#define HID_GD_BUFFER 0x0001003a
-#define HID_GD_BYTECOUNT 0x0001003b
-#define HID_GD_MOTION 0x0001003c
-#define HID_GD_START 0x0001003d
-#define HID_GD_SELECT 0x0001003e
-#define HID_GD_VX 0x00010040
-#define HID_GD_VY 0x00010041
-#define HID_GD_VZ 0x00010042
-#define HID_GD_VBRX 0x00010043
-#define HID_GD_VBRY 0x00010044
-#define HID_GD_VBRZ 0x00010045
-#define HID_GD_VNO 0x00010046
-#define HID_GD_FEATURE 0x00010047
-#define HID_GD_UP 0x00010090
-#define HID_GD_DOWN 0x00010091
-#define HID_GD_RIGHT 0x00010092
-#define HID_GD_LEFT 0x00010093
-
-#define HID_DC_BATTERYSTRENGTH 0x00060020
-
-#define HID_DG_DIGITIZER 0x000d0001
-#define HID_DG_PEN 0x000d0002
-#define HID_DG_LIGHTPEN 0x000d0003
-#define HID_DG_TOUCHSCREEN 0x000d0004
-#define HID_DG_TOUCHPAD 0x000d0005
-#define HID_DG_STYLUS 0x000d0020
-#define HID_DG_PUCK 0x000d0021
-#define HID_DG_FINGER 0x000d0022
-#define HID_DG_TIPPRESSURE 0x000d0030
-#define HID_DG_BARRELPRESSURE 0x000d0031
-#define HID_DG_INRANGE 0x000d0032
-#define HID_DG_TOUCH 0x000d0033
-#define HID_DG_UNTOUCH 0x000d0034
-#define HID_DG_TAP 0x000d0035
-#define HID_DG_TABLETFUNCTIONKEY 0x000d0039
-#define HID_DG_PROGRAMCHANGEKEY 0x000d003a
-#define HID_DG_INVERT 0x000d003c
-#define HID_DG_TIPSWITCH 0x000d0042
-#define HID_DG_TIPSWITCH2 0x000d0043
-#define HID_DG_BARRELSWITCH 0x000d0044
-#define HID_DG_ERASER 0x000d0045
-#define HID_DG_TABLETPICK 0x000d0046
-/*
- * as of May 20, 2009 the usages below are not yet in the official USB spec
- * but are being pushed by Microsft as described in their paper "Digitizer
- * Drivers for Windows Touch and Pen-Based Computers"
- */
-#define HID_DG_CONFIDENCE 0x000d0047
-#define HID_DG_WIDTH 0x000d0048
-#define HID_DG_HEIGHT 0x000d0049
-#define HID_DG_CONTACTID 0x000d0051
-#define HID_DG_INPUTMODE 0x000d0052
-#define HID_DG_DEVICEINDEX 0x000d0053
-#define HID_DG_CONTACTCOUNT 0x000d0054
-#define HID_DG_CONTACTMAX 0x000d0055
-
-/*
- * HID report types --- Ouch! HID spec says 1 2 3!
- */
-
-#define HID_INPUT_REPORT 0
-#define HID_OUTPUT_REPORT 1
-#define HID_FEATURE_REPORT 2
-
-/*
- * HID connect requests
- */
-
-#define HID_CONNECT_HIDINPUT 0x01
-#define HID_CONNECT_HIDINPUT_FORCE 0x02
-#define HID_CONNECT_HIDRAW 0x04
-#define HID_CONNECT_HIDDEV 0x08
-#define HID_CONNECT_HIDDEV_FORCE 0x10
-#define HID_CONNECT_FF 0x20
-#define HID_CONNECT_DEFAULT (HID_CONNECT_HIDINPUT|HID_CONNECT_HIDRAW| \
- HID_CONNECT_HIDDEV|HID_CONNECT_FF)
-
-/*
- * HID device quirks.
- */
-
-/*
- * Increase this if you need to configure more HID quirks at module load time
- */
-#define MAX_USBHID_BOOT_QUIRKS 4
-
-#define HID_QUIRK_INVERT 0x00000001
-#define HID_QUIRK_NOTOUCH 0x00000002
-#define HID_QUIRK_IGNORE 0x00000004
-#define HID_QUIRK_NOGET 0x00000008
-#define HID_QUIRK_HIDDEV_FORCE 0x00000010
-#define HID_QUIRK_BADPAD 0x00000020
-#define HID_QUIRK_MULTI_INPUT 0x00000040
-#define HID_QUIRK_HIDINPUT_FORCE 0x00000080
-#define HID_QUIRK_MULTITOUCH 0x00000100
-#define HID_QUIRK_SKIP_OUTPUT_REPORTS 0x00010000
-#define HID_QUIRK_FULLSPEED_INTERVAL 0x10000000
-#define HID_QUIRK_NO_INIT_REPORTS 0x20000000
-#define HID_QUIRK_NO_IGNORE 0x40000000
-#define HID_QUIRK_NO_INPUT_SYNC 0x80000000
-
-/*
- * This is the global environment of the parser. This information is
- * persistent for main-items. The global environment can be saved and
- * restored with PUSH/POP statements.
- */
-
-struct hid_global {
- unsigned usage_page;
- __s32 logical_minimum;
- __s32 logical_maximum;
- __s32 physical_minimum;
- __s32 physical_maximum;
- __s32 unit_exponent;
- unsigned unit;
- unsigned report_id;
- unsigned report_size;
- unsigned report_count;
-};
-
-/*
- * This is the local environment. It is persistent up the next main-item.
- */
-
-#define HID_MAX_USAGES 12288
-#define HID_DEFAULT_NUM_COLLECTIONS 16
-
-struct hid_local {
- unsigned usage[HID_MAX_USAGES]; /* usage array */
- unsigned collection_index[HID_MAX_USAGES]; /* collection index array */
- unsigned usage_index;
- unsigned usage_minimum;
- unsigned delimiter_depth;
- unsigned delimiter_branch;
-};
-
-/*
- * This is the collection stack. We climb up the stack to determine
- * application and function of each field.
- */
-
-struct hid_collection {
- unsigned type;
- unsigned usage;
- unsigned level;
-};
-
-struct hid_usage {
- unsigned hid; /* hid usage code */
- unsigned collection_index; /* index into collection array */
- /* hidinput data */
- __u16 code; /* input driver code */
- __u8 type; /* input driver type */
- __s8 hat_min; /* hat switch fun */
- __s8 hat_max; /* ditto */
- __s8 hat_dir; /* ditto */
-};
-
-struct hid_input;
-
-struct hid_field {
- unsigned physical; /* physical usage for this field */
- unsigned logical; /* logical usage for this field */
- unsigned application; /* application usage for this field */
- struct hid_usage *usage; /* usage table for this function */
- unsigned maxusage; /* maximum usage index */
- unsigned flags; /* main-item flags (i.e. volatile,array,constant) */
- unsigned report_offset; /* bit offset in the report */
- unsigned report_size; /* size of this field in the report */
- unsigned report_count; /* number of this field in the report */
- unsigned report_type; /* (input,output,feature) */
- __s32 *value; /* last known value(s) */
- __s32 logical_minimum;
- __s32 logical_maximum;
- __s32 physical_minimum;
- __s32 physical_maximum;
- __s32 unit_exponent;
- unsigned unit;
- struct hid_report *report; /* associated report */
- unsigned index; /* index into report->field[] */
- /* hidinput data */
- struct hid_input *hidinput; /* associated input structure */
- __u16 dpad; /* dpad input code */
-};
-
-#define HID_MAX_FIELDS 128
-
-struct hid_report {
- struct list_head list;
- unsigned id; /* id of this report */
- unsigned type; /* report type */
- struct hid_field *field[HID_MAX_FIELDS]; /* fields of the report */
- unsigned maxfield; /* maximum valid field index */
- unsigned size; /* size of the report (bits) */
- struct hid_device *device; /* associated device */
-};
-
-struct hid_report_enum {
- unsigned numbered;
- struct list_head report_list;
- struct hid_report *report_id_hash[256];
-};
-
-#define HID_REPORT_TYPES 3
-
-#define HID_MIN_BUFFER_SIZE 64 /* make sure there is at least a packet size of space */
-#define HID_MAX_BUFFER_SIZE 4096 /* 4kb */
-#define HID_CONTROL_FIFO_SIZE 256 /* to init devices with >100 reports */
-#define HID_OUTPUT_FIFO_SIZE 64
-
-struct hid_control_fifo {
- unsigned char dir;
- struct hid_report *report;
- char *raw_report;
-};
-
-struct hid_output_fifo {
- struct hid_report *report;
- char *raw_report;
-};
-
-#define HID_CLAIMED_INPUT 1
-#define HID_CLAIMED_HIDDEV 2
-#define HID_CLAIMED_HIDRAW 4
-
-#define HID_STAT_ADDED 1
-#define HID_STAT_PARSED 2
-
-struct hid_input {
- struct list_head list;
- struct hid_report *report;
- struct input_dev *input;
-};
-
-enum hid_type {
- HID_TYPE_OTHER = 0,
- HID_TYPE_USBMOUSE,
- HID_TYPE_USBNONE
-};
-
-struct hid_driver;
-struct hid_ll_driver;
-
-struct hid_device { /* device report descriptor */
- __u8 *rdesc;
- unsigned rsize;
- struct hid_collection *collection; /* List of HID collections */
- unsigned collection_size; /* Number of allocated hid_collections */
- unsigned maxcollection; /* Number of parsed collections */
- unsigned maxapplication; /* Number of applications */
- __u16 bus; /* BUS ID */
- __u32 vendor; /* Vendor ID */
- __u32 product; /* Product ID */
- __u32 version; /* HID version */
- enum hid_type type; /* device type (mouse, kbd, ...) */
- unsigned country; /* HID country */
- struct hid_report_enum report_enum[HID_REPORT_TYPES];
-
- struct semaphore driver_lock; /* protects the current driver */
- struct device dev; /* device */
- struct hid_driver *driver;
- struct hid_ll_driver *ll_driver;
-
-#ifdef CONFIG_HID_BATTERY_STRENGTH
- /*
- * Power supply information for HID devices which report
- * battery strength. power_supply is registered iff
- * battery.name is non-NULL.
- */
- struct power_supply battery;
- __s32 battery_min;
- __s32 battery_max;
- __s32 battery_report_type;
- __s32 battery_report_id;
-#endif
-
- unsigned int status; /* see STAT flags above */
- unsigned claimed; /* Claimed by hidinput, hiddev? */
- unsigned quirks; /* Various quirks the device can pull on us */
-
- struct list_head inputs; /* The list of inputs */
- void *hiddev; /* The hiddev structure */
- void *hidraw;
- int minor; /* Hiddev minor number */
-
- int open; /* is the device open by anyone? */
- char name[128]; /* Device name */
- char phys[64]; /* Device physical location */
- char uniq[64]; /* Device unique identifier (serial #) */
-
- void *driver_data;
-
- /* temporary hid_ff handling (until moved to the drivers) */
- int (*ff_init)(struct hid_device *);
-
- /* hiddev event handler */
- int (*hiddev_connect)(struct hid_device *, unsigned int);
- void (*hiddev_disconnect)(struct hid_device *);
- void (*hiddev_hid_event) (struct hid_device *, struct hid_field *field,
- struct hid_usage *, __s32);
- void (*hiddev_report_event) (struct hid_device *, struct hid_report *);
-
- /* handler for raw input (Get_Report) data, used by hidraw */
- int (*hid_get_raw_report) (struct hid_device *, unsigned char, __u8 *, size_t, unsigned char);
-
- /* handler for raw output data, used by hidraw */
- int (*hid_output_raw_report) (struct hid_device *, __u8 *, size_t, unsigned char);
-
- /* debugging support via debugfs */
- unsigned short debug;
- struct dentry *debug_dir;
- struct dentry *debug_rdesc;
- struct dentry *debug_events;
- struct list_head debug_list;
- wait_queue_head_t debug_wait;
-};
-
-static inline void *hid_get_drvdata(struct hid_device *hdev)
-{
- return dev_get_drvdata(&hdev->dev);
-}
-
-static inline void hid_set_drvdata(struct hid_device *hdev, void *data)
-{
- dev_set_drvdata(&hdev->dev, data);
-}
-
-#define HID_GLOBAL_STACK_SIZE 4
-#define HID_COLLECTION_STACK_SIZE 4
-
-struct hid_parser {
- struct hid_global global;
- struct hid_global global_stack[HID_GLOBAL_STACK_SIZE];
- unsigned global_stack_ptr;
- struct hid_local local;
- unsigned collection_stack[HID_COLLECTION_STACK_SIZE];
- unsigned collection_stack_ptr;
- struct hid_device *device;
-};
-
-struct hid_class_descriptor {
- __u8 bDescriptorType;
- __le16 wDescriptorLength;
-} __attribute__ ((packed));
-
-struct hid_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
- __le16 bcdHID;
- __u8 bCountryCode;
- __u8 bNumDescriptors;
-
- struct hid_class_descriptor desc[1];
-} __attribute__ ((packed));
-
-#define HID_DEVICE(b, ven, prod) \
- .bus = (b), \
- .vendor = (ven), .product = (prod)
-
-#define HID_USB_DEVICE(ven, prod) HID_DEVICE(BUS_USB, ven, prod)
-#define HID_BLUETOOTH_DEVICE(ven, prod) HID_DEVICE(BUS_BLUETOOTH, ven, prod)
-
-#define HID_REPORT_ID(rep) \
- .report_type = (rep)
-#define HID_USAGE_ID(uhid, utype, ucode) \
- .usage_hid = (uhid), .usage_type = (utype), .usage_code = (ucode)
-/* we don't want to catch types and codes equal to 0 */
-#define HID_TERMINATOR (HID_ANY_ID - 1)
-
-struct hid_report_id {
- __u32 report_type;
-};
-struct hid_usage_id {
- __u32 usage_hid;
- __u32 usage_type;
- __u32 usage_code;
-};
-
-/**
- * struct hid_driver
- * @name: driver name (e.g. "Footech_bar-wheel")
- * @id_table: which devices is this driver for (must be non-NULL for probe
- * to be called)
- * @dyn_list: list of dynamically added device ids
- * @dyn_lock: lock protecting @dyn_list
- * @probe: new device inserted
- * @remove: device removed (NULL if not a hot-plug capable driver)
- * @report_table: on which reports to call raw_event (NULL means all)
- * @raw_event: if report in report_table, this hook is called (NULL means nop)
- * @usage_table: on which events to call event (NULL means all)
- * @event: if usage in usage_table, this hook is called (NULL means nop)
- * @report_fixup: called before report descriptor parsing (NULL means nop)
- * @input_mapping: invoked on input registering before mapping an usage
- * @input_mapped: invoked on input registering after mapping an usage
- * @feature_mapping: invoked on feature registering
- * @input_register: called just before input device is registered after reports
- * are parsed.
- * @suspend: invoked on suspend (NULL means nop)
- * @resume: invoked on resume if device was not reset (NULL means nop)
- * @reset_resume: invoked on resume if device was reset (NULL means nop)
- *
- * raw_event and event should return 0 on no action performed, 1 when no
- * further processing should be done and negative on error
- *
- * input_mapping shall return a negative value to completely ignore this usage
- * (e.g. doubled or invalid usage), zero to continue with parsing of this
- * usage by generic code (no special handling needed) or positive to skip
- * generic parsing (needed special handling which was done in the hook already)
- * input_mapped shall return negative to inform the layer that this usage
- * should not be considered for further processing or zero to notify that
- * no processing was performed and should be done in a generic manner
- * Both these functions may be NULL which means the same behavior as returning
- * zero from them.
- */
-struct hid_driver {
- char *name;
- const struct hid_device_id *id_table;
-
- struct list_head dyn_list;
- spinlock_t dyn_lock;
-
- int (*probe)(struct hid_device *dev, const struct hid_device_id *id);
- void (*remove)(struct hid_device *dev);
-
- const struct hid_report_id *report_table;
- int (*raw_event)(struct hid_device *hdev, struct hid_report *report,
- u8 *data, int size);
- const struct hid_usage_id *usage_table;
- int (*event)(struct hid_device *hdev, struct hid_field *field,
- struct hid_usage *usage, __s32 value);
-
- __u8 *(*report_fixup)(struct hid_device *hdev, __u8 *buf,
- unsigned int *size);
-
- int (*input_mapping)(struct hid_device *hdev,
- struct hid_input *hidinput, struct hid_field *field,
- struct hid_usage *usage, unsigned long **bit, int *max);
- int (*input_mapped)(struct hid_device *hdev,
- struct hid_input *hidinput, struct hid_field *field,
- struct hid_usage *usage, unsigned long **bit, int *max);
- void (*feature_mapping)(struct hid_device *hdev,
- struct hid_field *field,
- struct hid_usage *usage);
- int (*input_register)(struct hid_device *hdev, struct hid_input
- *hidinput);
-#ifdef CONFIG_PM
- int (*suspend)(struct hid_device *hdev, pm_message_t message);
- int (*resume)(struct hid_device *hdev);
- int (*reset_resume)(struct hid_device *hdev);
-#endif
-/* private: */
- struct device_driver driver;
-};
-
-/**
- * hid_ll_driver - low level driver callbacks
- * @start: called on probe to start the device
- * @stop: called on remove
- * @open: called by input layer on open
- * @close: called by input layer on close
- * @hidinput_input_event: event input event (e.g. ff or leds)
- * @parse: this method is called only once to parse the device data,
- * shouldn't allocate anything to not leak memory
- */
-struct hid_ll_driver {
- int (*start)(struct hid_device *hdev);
- void (*stop)(struct hid_device *hdev);
-
- int (*open)(struct hid_device *hdev);
- void (*close)(struct hid_device *hdev);
-
- int (*power)(struct hid_device *hdev, int level);
-
- int (*hidinput_input_event) (struct input_dev *idev, unsigned int type,
- unsigned int code, int value);
-
- int (*parse)(struct hid_device *hdev);
-};
-
-#define PM_HINT_FULLON 1<<5
-#define PM_HINT_NORMAL 1<<1
-
-/* Applications from HID Usage Tables 4/8/99 Version 1.1 */
-/* We ignore a few input applications that are not widely used */
-#define IS_INPUT_APPLICATION(a) (((a >= 0x00010000) && (a <= 0x00010008)) || (a == 0x00010080) || (a == 0x000c0001) || ((a >= 0x000d0002) && (a <= 0x000d0006)))
-
-/* HID core API */
-
-extern int hid_debug;
-
-extern int hid_add_device(struct hid_device *);
-extern void hid_destroy_device(struct hid_device *);
-
-extern int __must_check __hid_register_driver(struct hid_driver *,
- struct module *, const char *mod_name);
-
-/* use a define to avoid include chaining to get THIS_MODULE & friends */
-#define hid_register_driver(driver) \
- __hid_register_driver(driver, THIS_MODULE, KBUILD_MODNAME)
-
-extern void hid_unregister_driver(struct hid_driver *);
-
-extern void hidinput_hid_event(struct hid_device *, struct hid_field *, struct hid_usage *, __s32);
-extern void hidinput_report_event(struct hid_device *hid, struct hid_report *report);
-extern int hidinput_connect(struct hid_device *hid, unsigned int force);
-extern void hidinput_disconnect(struct hid_device *);
-
-int hid_set_field(struct hid_field *, unsigned, __s32);
-int hid_input_report(struct hid_device *, int type, u8 *, int, int);
-int hidinput_find_field(struct hid_device *hid, unsigned int type, unsigned int code, struct hid_field **field);
-struct hid_field *hidinput_get_led_field(struct hid_device *hid);
-unsigned int hidinput_count_leds(struct hid_device *hid);
-void hid_output_report(struct hid_report *report, __u8 *data);
-struct hid_device *hid_allocate_device(void);
-struct hid_report *hid_register_report(struct hid_device *device, unsigned type, unsigned id);
-int hid_parse_report(struct hid_device *hid, __u8 *start, unsigned size);
-int hid_check_keys_pressed(struct hid_device *hid);
-int hid_connect(struct hid_device *hid, unsigned int connect_mask);
-void hid_disconnect(struct hid_device *hid);
-const struct hid_device_id *hid_match_id(struct hid_device *hdev,
- const struct hid_device_id *id);
-
-/**
- * hid_map_usage - map usage input bits
- *
- * @hidinput: hidinput which we are interested in
- * @usage: usage to fill in
- * @bit: pointer to input->{}bit (out parameter)
- * @max: maximal valid usage->code to consider later (out parameter)
- * @type: input event type (EV_KEY, EV_REL, ...)
- * @c: code which corresponds to this usage and type
- */
-static inline void hid_map_usage(struct hid_input *hidinput,
- struct hid_usage *usage, unsigned long **bit, int *max,
- __u8 type, __u16 c)
-{
- struct input_dev *input = hidinput->input;
-
- usage->type = type;
- usage->code = c;
-
- switch (type) {
- case EV_ABS:
- *bit = input->absbit;
- *max = ABS_MAX;
- break;
- case EV_REL:
- *bit = input->relbit;
- *max = REL_MAX;
- break;
- case EV_KEY:
- *bit = input->keybit;
- *max = KEY_MAX;
- break;
- case EV_LED:
- *bit = input->ledbit;
- *max = LED_MAX;
- break;
- }
-}
-
-/**
- * hid_map_usage_clear - map usage input bits and clear the input bit
- *
- * The same as hid_map_usage, except the @c bit is also cleared in supported
- * bits (@bit).
- */
-static inline void hid_map_usage_clear(struct hid_input *hidinput,
- struct hid_usage *usage, unsigned long **bit, int *max,
- __u8 type, __u16 c)
-{
- hid_map_usage(hidinput, usage, bit, max, type, c);
- clear_bit(c, *bit);
-}
-
-/**
- * hid_parse - parse HW reports
- *
- * @hdev: hid device
- *
- * Call this from probe after you set up the device (if needed). Your
- * report_fixup will be called (if non-NULL) after reading raw report from
- * device before passing it to hid layer for real parsing.
- */
-static inline int __must_check hid_parse(struct hid_device *hdev)
-{
- int ret;
-
- if (hdev->status & HID_STAT_PARSED)
- return 0;
-
- ret = hdev->ll_driver->parse(hdev);
- if (!ret)
- hdev->status |= HID_STAT_PARSED;
-
- return ret;
-}
-
-/**
- * hid_hw_start - start underlaying HW
- *
- * @hdev: hid device
- * @connect_mask: which outputs to connect, see HID_CONNECT_*
- *
- * Call this in probe function *after* hid_parse. This will setup HW buffers
- * and start the device (if not deffered to device open). hid_hw_stop must be
- * called if this was successful.
- */
-static inline int __must_check hid_hw_start(struct hid_device *hdev,
- unsigned int connect_mask)
-{
- int ret = hdev->ll_driver->start(hdev);
- if (ret || !connect_mask)
- return ret;
- ret = hid_connect(hdev, connect_mask);
- if (ret)
- hdev->ll_driver->stop(hdev);
- return ret;
-}
-
-/**
- * hid_hw_stop - stop underlaying HW
- *
- * @hdev: hid device
- *
- * This is usually called from remove function or from probe when something
- * failed and hid_hw_start was called already.
- */
-static inline void hid_hw_stop(struct hid_device *hdev)
-{
- hid_disconnect(hdev);
- hdev->ll_driver->stop(hdev);
-}
-
-/**
- * hid_hw_open - signal underlaying HW to start delivering events
- *
- * @hdev: hid device
- *
- * Tell underlying HW to start delivering events from the device.
- * This function should be called sometime after successful call
- * to hid_hiw_start().
- */
-static inline int __must_check hid_hw_open(struct hid_device *hdev)
-{
- return hdev->ll_driver->open(hdev);
-}
-
-/**
- * hid_hw_close - signal underlaying HW to stop delivering events
- *
- * @hdev: hid device
- *
- * This function indicates that we are not interested in the events
- * from this device anymore. Delivery of events may or may not stop,
- * depending on the number of users still outstanding.
- */
-static inline void hid_hw_close(struct hid_device *hdev)
-{
- hdev->ll_driver->close(hdev);
-}
-
-/**
- * hid_hw_power - requests underlying HW to go into given power mode
- *
- * @hdev: hid device
- * @level: requested power level (one of %PM_HINT_* defines)
- *
- * This function requests underlying hardware to enter requested power
- * mode.
- */
-
-static inline int hid_hw_power(struct hid_device *hdev, int level)
-{
- return hdev->ll_driver->power ? hdev->ll_driver->power(hdev, level) : 0;
-}
-
-void hid_report_raw_event(struct hid_device *hid, int type, u8 *data, int size,
- int interrupt);
-
-extern int hid_generic_init(void);
-extern void hid_generic_exit(void);
-
-/* HID quirks API */
-u32 usbhid_lookup_quirk(const u16 idVendor, const u16 idProduct);
-int usbhid_quirks_init(char **quirks_param);
-void usbhid_quirks_exit(void);
-void usbhid_set_leds(struct hid_device *hid);
-
-#ifdef CONFIG_HID_PID
-int hid_pidff_init(struct hid_device *hid);
-#else
-#define hid_pidff_init NULL
-#endif
-
-#define dbg_hid(format, arg...) \
-do { \
- if (hid_debug) \
- printk(KERN_DEBUG "%s: " format, __FILE__, ##arg); \
-} while (0)
-
-#define hid_printk(level, hid, fmt, arg...) \
- dev_printk(level, &(hid)->dev, fmt, ##arg)
-#define hid_emerg(hid, fmt, arg...) \
- dev_emerg(&(hid)->dev, fmt, ##arg)
-#define hid_crit(hid, fmt, arg...) \
- dev_crit(&(hid)->dev, fmt, ##arg)
-#define hid_alert(hid, fmt, arg...) \
- dev_alert(&(hid)->dev, fmt, ##arg)
-#define hid_err(hid, fmt, arg...) \
- dev_err(&(hid)->dev, fmt, ##arg)
-#define hid_notice(hid, fmt, arg...) \
- dev_notice(&(hid)->dev, fmt, ##arg)
-#define hid_warn(hid, fmt, arg...) \
- dev_warn(&(hid)->dev, fmt, ##arg)
-#define hid_info(hid, fmt, arg...) \
- dev_info(&(hid)->dev, fmt, ##arg)
-#define hid_dbg(hid, fmt, arg...) \
- dev_dbg(&(hid)->dev, fmt, ##arg)
-
-#endif /* __KERNEL__ */
-
-#endif
-
diff --git a/ANDROID_3.4.5/include/linux/hiddev.h b/ANDROID_3.4.5/include/linux/hiddev.h
deleted file mode 100644
index a3f481a3..00000000
--- a/ANDROID_3.4.5/include/linux/hiddev.h
+++ /dev/null
@@ -1,240 +0,0 @@
-#ifndef _HIDDEV_H
-#define _HIDDEV_H
-
-/*
- * Copyright (c) 1999-2000 Vojtech Pavlik
- *
- * Sponsored by SuSE
- */
-
-/*
- * 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
- *
- * Should you need to contact me, the author, you can do so either by
- * e-mail - mail your message to <vojtech@suse.cz>, or by paper mail:
- * Vojtech Pavlik, Ucitelska 1576, Prague 8, 182 00 Czech Republic
- */
-
-#include <linux/types.h>
-
-/*
- * The event structure itself
- */
-
-struct hiddev_event {
- unsigned hid;
- signed int value;
-};
-
-struct hiddev_devinfo {
- __u32 bustype;
- __u32 busnum;
- __u32 devnum;
- __u32 ifnum;
- __s16 vendor;
- __s16 product;
- __s16 version;
- __u32 num_applications;
-};
-
-struct hiddev_collection_info {
- __u32 index;
- __u32 type;
- __u32 usage;
- __u32 level;
-};
-
-#define HID_STRING_SIZE 256
-struct hiddev_string_descriptor {
- __s32 index;
- char value[HID_STRING_SIZE];
-};
-
-struct hiddev_report_info {
- __u32 report_type;
- __u32 report_id;
- __u32 num_fields;
-};
-
-/* To do a GUSAGE/SUSAGE, fill in at least usage_code, report_type and
- * report_id. Set report_id to REPORT_ID_UNKNOWN if the rest of the fields
- * are unknown. Otherwise use a usage_ref struct filled in from a previous
- * successful GUSAGE call to save time. To actually send a value to the
- * device, perform a SUSAGE first, followed by a SREPORT. An INITREPORT or a
- * GREPORT isn't necessary for a GUSAGE to return valid data.
- */
-#define HID_REPORT_ID_UNKNOWN 0xffffffff
-#define HID_REPORT_ID_FIRST 0x00000100
-#define HID_REPORT_ID_NEXT 0x00000200
-#define HID_REPORT_ID_MASK 0x000000ff
-#define HID_REPORT_ID_MAX 0x000000ff
-
-#define HID_REPORT_TYPE_INPUT 1
-#define HID_REPORT_TYPE_OUTPUT 2
-#define HID_REPORT_TYPE_FEATURE 3
-#define HID_REPORT_TYPE_MIN 1
-#define HID_REPORT_TYPE_MAX 3
-
-struct hiddev_field_info {
- __u32 report_type;
- __u32 report_id;
- __u32 field_index;
- __u32 maxusage;
- __u32 flags;
- __u32 physical; /* physical usage for this field */
- __u32 logical; /* logical usage for this field */
- __u32 application; /* application usage for this field */
- __s32 logical_minimum;
- __s32 logical_maximum;
- __s32 physical_minimum;
- __s32 physical_maximum;
- __u32 unit_exponent;
- __u32 unit;
-};
-
-/* Fill in report_type, report_id and field_index to get the information on a
- * field.
- */
-#define HID_FIELD_CONSTANT 0x001
-#define HID_FIELD_VARIABLE 0x002
-#define HID_FIELD_RELATIVE 0x004
-#define HID_FIELD_WRAP 0x008
-#define HID_FIELD_NONLINEAR 0x010
-#define HID_FIELD_NO_PREFERRED 0x020
-#define HID_FIELD_NULL_STATE 0x040
-#define HID_FIELD_VOLATILE 0x080
-#define HID_FIELD_BUFFERED_BYTE 0x100
-
-struct hiddev_usage_ref {
- __u32 report_type;
- __u32 report_id;
- __u32 field_index;
- __u32 usage_index;
- __u32 usage_code;
- __s32 value;
-};
-
-/* hiddev_usage_ref_multi is used for sending multiple bytes to a control.
- * It really manifests itself as setting the value of consecutive usages */
-#define HID_MAX_MULTI_USAGES 1024
-struct hiddev_usage_ref_multi {
- struct hiddev_usage_ref uref;
- __u32 num_values;
- __s32 values[HID_MAX_MULTI_USAGES];
-};
-
-/* FIELD_INDEX_NONE is returned in read() data from the kernel when flags
- * is set to (HIDDEV_FLAG_UREF | HIDDEV_FLAG_REPORT) and a new report has
- * been sent by the device
- */
-#define HID_FIELD_INDEX_NONE 0xffffffff
-
-/*
- * Protocol version.
- */
-
-#define HID_VERSION 0x010004
-
-/*
- * IOCTLs (0x00 - 0x7f)
- */
-
-#define HIDIOCGVERSION _IOR('H', 0x01, int)
-#define HIDIOCAPPLICATION _IO('H', 0x02)
-#define HIDIOCGDEVINFO _IOR('H', 0x03, struct hiddev_devinfo)
-#define HIDIOCGSTRING _IOR('H', 0x04, struct hiddev_string_descriptor)
-#define HIDIOCINITREPORT _IO('H', 0x05)
-#define HIDIOCGNAME(len) _IOC(_IOC_READ, 'H', 0x06, len)
-#define HIDIOCGREPORT _IOW('H', 0x07, struct hiddev_report_info)
-#define HIDIOCSREPORT _IOW('H', 0x08, struct hiddev_report_info)
-#define HIDIOCGREPORTINFO _IOWR('H', 0x09, struct hiddev_report_info)
-#define HIDIOCGFIELDINFO _IOWR('H', 0x0A, struct hiddev_field_info)
-#define HIDIOCGUSAGE _IOWR('H', 0x0B, struct hiddev_usage_ref)
-#define HIDIOCSUSAGE _IOW('H', 0x0C, struct hiddev_usage_ref)
-#define HIDIOCGUCODE _IOWR('H', 0x0D, struct hiddev_usage_ref)
-#define HIDIOCGFLAG _IOR('H', 0x0E, int)
-#define HIDIOCSFLAG _IOW('H', 0x0F, int)
-#define HIDIOCGCOLLECTIONINDEX _IOW('H', 0x10, struct hiddev_usage_ref)
-#define HIDIOCGCOLLECTIONINFO _IOWR('H', 0x11, struct hiddev_collection_info)
-#define HIDIOCGPHYS(len) _IOC(_IOC_READ, 'H', 0x12, len)
-
-/* For writing/reading to multiple/consecutive usages */
-#define HIDIOCGUSAGES _IOWR('H', 0x13, struct hiddev_usage_ref_multi)
-#define HIDIOCSUSAGES _IOW('H', 0x14, struct hiddev_usage_ref_multi)
-
-/*
- * Flags to be used in HIDIOCSFLAG
- */
-#define HIDDEV_FLAG_UREF 0x1
-#define HIDDEV_FLAG_REPORT 0x2
-#define HIDDEV_FLAGS 0x3
-
-/* To traverse the input report descriptor info for a HID device, perform the
- * following:
- *
- * rinfo.report_type = HID_REPORT_TYPE_INPUT;
- * rinfo.report_id = HID_REPORT_ID_FIRST;
- * ret = ioctl(fd, HIDIOCGREPORTINFO, &rinfo);
- *
- * while (ret >= 0) {
- * for (i = 0; i < rinfo.num_fields; i++) {
- * finfo.report_type = rinfo.report_type;
- * finfo.report_id = rinfo.report_id;
- * finfo.field_index = i;
- * ioctl(fd, HIDIOCGFIELDINFO, &finfo);
- * for (j = 0; j < finfo.maxusage; j++) {
- * uref.report_type = rinfo.report_type;
- * uref.report_id = rinfo.report_id;
- * uref.field_index = i;
- * uref.usage_index = j;
- * ioctl(fd, HIDIOCGUCODE, &uref);
- * ioctl(fd, HIDIOCGUSAGE, &uref);
- * }
- * }
- * rinfo.report_id |= HID_REPORT_ID_NEXT;
- * ret = ioctl(fd, HIDIOCGREPORTINFO, &rinfo);
- * }
- */
-
-
-#ifdef __KERNEL__
-
-/*
- * In-kernel definitions.
- */
-
-struct hid_device;
-struct hid_usage;
-struct hid_field;
-struct hid_report;
-
-#ifdef CONFIG_USB_HIDDEV
-int hiddev_connect(struct hid_device *hid, unsigned int force);
-void hiddev_disconnect(struct hid_device *);
-void hiddev_hid_event(struct hid_device *hid, struct hid_field *field,
- struct hid_usage *usage, __s32 value);
-void hiddev_report_event(struct hid_device *hid, struct hid_report *report);
-#else
-static inline int hiddev_connect(struct hid_device *hid,
- unsigned int force)
-{ return -1; }
-static inline void hiddev_disconnect(struct hid_device *hid) { }
-static inline void hiddev_hid_event(struct hid_device *hid, struct hid_field *field,
- struct hid_usage *usage, __s32 value) { }
-static inline void hiddev_report_event(struct hid_device *hid, struct hid_report *report) { }
-#endif
-
-#endif
-#endif
diff --git a/ANDROID_3.4.5/include/linux/hidraw.h b/ANDROID_3.4.5/include/linux/hidraw.h
deleted file mode 100644
index 4b88e697..00000000
--- a/ANDROID_3.4.5/include/linux/hidraw.h
+++ /dev/null
@@ -1,92 +0,0 @@
-#ifndef _HIDRAW_H
-#define _HIDRAW_H
-
-/*
- * Copyright (c) 2007 Jiri Kosina
- */
-
-/*
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * 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.
- */
-
-#include <linux/hid.h>
-#include <linux/types.h>
-
-struct hidraw_report_descriptor {
- __u32 size;
- __u8 value[HID_MAX_DESCRIPTOR_SIZE];
-};
-
-struct hidraw_devinfo {
- __u32 bustype;
- __s16 vendor;
- __s16 product;
-};
-
-/* ioctl interface */
-#define HIDIOCGRDESCSIZE _IOR('H', 0x01, int)
-#define HIDIOCGRDESC _IOR('H', 0x02, struct hidraw_report_descriptor)
-#define HIDIOCGRAWINFO _IOR('H', 0x03, struct hidraw_devinfo)
-#define HIDIOCGRAWNAME(len) _IOC(_IOC_READ, 'H', 0x04, len)
-#define HIDIOCGRAWPHYS(len) _IOC(_IOC_READ, 'H', 0x05, len)
-/* The first byte of SFEATURE and GFEATURE is the report number */
-#define HIDIOCSFEATURE(len) _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x06, len)
-#define HIDIOCGFEATURE(len) _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x07, len)
-
-#define HIDRAW_FIRST_MINOR 0
-#define HIDRAW_MAX_DEVICES 64
-/* number of reports to buffer */
-#define HIDRAW_BUFFER_SIZE 64
-
-
-/* kernel-only API declarations */
-#ifdef __KERNEL__
-
-struct hidraw {
- unsigned int minor;
- int exist;
- int open;
- wait_queue_head_t wait;
- struct hid_device *hid;
- struct device *dev;
- struct list_head list;
-};
-
-struct hidraw_report {
- __u8 *value;
- int len;
-};
-
-struct hidraw_list {
- struct hidraw_report buffer[HIDRAW_BUFFER_SIZE];
- int head;
- int tail;
- struct fasync_struct *fasync;
- struct hidraw *hidraw;
- struct list_head node;
- struct mutex read_mutex;
-};
-
-#ifdef CONFIG_HIDRAW
-int hidraw_init(void);
-void hidraw_exit(void);
-void hidraw_report_event(struct hid_device *, u8 *, int);
-int hidraw_connect(struct hid_device *);
-void hidraw_disconnect(struct hid_device *);
-#else
-static inline int hidraw_init(void) { return 0; }
-static inline void hidraw_exit(void) { }
-static inline void hidraw_report_event(struct hid_device *hid, u8 *data, int len) { }
-static inline int hidraw_connect(struct hid_device *hid) { return -1; }
-static inline void hidraw_disconnect(struct hid_device *hid) { }
-#endif
-
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/highmem.h b/ANDROID_3.4.5/include/linux/highmem.h
deleted file mode 100644
index d3999b4e..00000000
--- a/ANDROID_3.4.5/include/linux/highmem.h
+++ /dev/null
@@ -1,287 +0,0 @@
-#ifndef _LINUX_HIGHMEM_H
-#define _LINUX_HIGHMEM_H
-
-#include <linux/fs.h>
-#include <linux/kernel.h>
-#include <linux/bug.h>
-#include <linux/mm.h>
-#include <linux/uaccess.h>
-#include <linux/hardirq.h>
-
-#include <asm/cacheflush.h>
-
-#ifndef ARCH_HAS_FLUSH_ANON_PAGE
-static inline void flush_anon_page(struct vm_area_struct *vma, struct page *page, unsigned long vmaddr)
-{
-}
-#endif
-
-#ifndef ARCH_HAS_FLUSH_KERNEL_DCACHE_PAGE
-static inline void flush_kernel_dcache_page(struct page *page)
-{
-}
-static inline void flush_kernel_vmap_range(void *vaddr, int size)
-{
-}
-static inline void invalidate_kernel_vmap_range(void *vaddr, int size)
-{
-}
-#endif
-
-#include <asm/kmap_types.h>
-
-#ifdef CONFIG_HIGHMEM
-#include <asm/highmem.h>
-
-/* declarations for linux/mm/highmem.c */
-unsigned int nr_free_highpages(void);
-extern unsigned long totalhigh_pages;
-
-void kmap_flush_unused(void);
-
-#else /* CONFIG_HIGHMEM */
-
-static inline unsigned int nr_free_highpages(void) { return 0; }
-
-#define totalhigh_pages 0UL
-
-#ifndef ARCH_HAS_KMAP
-static inline void *kmap(struct page *page)
-{
- might_sleep();
- return page_address(page);
-}
-
-static inline void kunmap(struct page *page)
-{
-}
-
-static inline void *kmap_atomic(struct page *page)
-{
- pagefault_disable();
- return page_address(page);
-}
-#define kmap_atomic_prot(page, prot) kmap_atomic(page)
-
-static inline void __kunmap_atomic(void *addr)
-{
- pagefault_enable();
-}
-
-#define kmap_atomic_pfn(pfn) kmap_atomic(pfn_to_page(pfn))
-#define kmap_atomic_to_page(ptr) virt_to_page(ptr)
-
-#define kmap_flush_unused() do {} while(0)
-#endif
-
-#endif /* CONFIG_HIGHMEM */
-
-#if defined(CONFIG_HIGHMEM) || defined(CONFIG_X86_32)
-
-DECLARE_PER_CPU(int, __kmap_atomic_idx);
-
-static inline int kmap_atomic_idx_push(void)
-{
- int idx = __this_cpu_inc_return(__kmap_atomic_idx) - 1;
-
-#ifdef CONFIG_DEBUG_HIGHMEM
- WARN_ON_ONCE(in_irq() && !irqs_disabled());
- BUG_ON(idx > KM_TYPE_NR);
-#endif
- return idx;
-}
-
-static inline int kmap_atomic_idx(void)
-{
- return __this_cpu_read(__kmap_atomic_idx) - 1;
-}
-
-static inline void kmap_atomic_idx_pop(void)
-{
-#ifdef CONFIG_DEBUG_HIGHMEM
- int idx = __this_cpu_dec_return(__kmap_atomic_idx);
-
- BUG_ON(idx < 0);
-#else
- __this_cpu_dec(__kmap_atomic_idx);
-#endif
-}
-
-#endif
-
-/*
- * NOTE:
- * kmap_atomic() and kunmap_atomic() with two arguments are deprecated.
- * We only keep them for backward compatibility, any usage of them
- * are now warned.
- */
-
-#define PASTE(a, b) a ## b
-#define PASTE2(a, b) PASTE(a, b)
-
-#define NARG_(_2, _1, n, ...) n
-#define NARG(...) NARG_(__VA_ARGS__, 2, 1, :)
-
-static inline void __deprecated *kmap_atomic_deprecated(struct page *page,
- enum km_type km)
-{
- return kmap_atomic(page);
-}
-
-#define kmap_atomic1(...) kmap_atomic(__VA_ARGS__)
-#define kmap_atomic2(...) kmap_atomic_deprecated(__VA_ARGS__)
-#define kmap_atomic(...) PASTE2(kmap_atomic, NARG(__VA_ARGS__)(__VA_ARGS__))
-
-static inline void __deprecated __kunmap_atomic_deprecated(void *addr,
- enum km_type km)
-{
- __kunmap_atomic(addr);
-}
-
-/*
- * Prevent people trying to call kunmap_atomic() as if it were kunmap()
- * kunmap_atomic() should get the return value of kmap_atomic, not the page.
- */
-#define kunmap_atomic_deprecated(addr, km) \
-do { \
- BUILD_BUG_ON(__same_type((addr), struct page *)); \
- __kunmap_atomic_deprecated(addr, km); \
-} while (0)
-
-#define kunmap_atomic_withcheck(addr) \
-do { \
- BUILD_BUG_ON(__same_type((addr), struct page *)); \
- __kunmap_atomic(addr); \
-} while (0)
-
-#define kunmap_atomic1(...) kunmap_atomic_withcheck(__VA_ARGS__)
-#define kunmap_atomic2(...) kunmap_atomic_deprecated(__VA_ARGS__)
-#define kunmap_atomic(...) PASTE2(kunmap_atomic, NARG(__VA_ARGS__)(__VA_ARGS__))
-/**** End of C pre-processor tricks for deprecated macros ****/
-
-/* when CONFIG_HIGHMEM is not set these will be plain clear/copy_page */
-#ifndef clear_user_highpage
-static inline void clear_user_highpage(struct page *page, unsigned long vaddr)
-{
- void *addr = kmap_atomic(page);
- clear_user_page(addr, vaddr, page);
- kunmap_atomic(addr);
-}
-#endif
-
-#ifndef __HAVE_ARCH_ALLOC_ZEROED_USER_HIGHPAGE
-/**
- * __alloc_zeroed_user_highpage - Allocate a zeroed HIGHMEM page for a VMA with caller-specified movable GFP flags
- * @movableflags: The GFP flags related to the pages future ability to move like __GFP_MOVABLE
- * @vma: The VMA the page is to be allocated for
- * @vaddr: The virtual address the page will be inserted into
- *
- * This function will allocate a page for a VMA but the caller is expected
- * to specify via movableflags whether the page will be movable in the
- * future or not
- *
- * An architecture may override this function by defining
- * __HAVE_ARCH_ALLOC_ZEROED_USER_HIGHPAGE and providing their own
- * implementation.
- */
-static inline struct page *
-__alloc_zeroed_user_highpage(gfp_t movableflags,
- struct vm_area_struct *vma,
- unsigned long vaddr)
-{
- struct page *page = alloc_page_vma(GFP_HIGHUSER | movableflags,
- vma, vaddr);
-
- if (page)
- clear_user_highpage(page, vaddr);
-
- return page;
-}
-#endif
-
-/**
- * alloc_zeroed_user_highpage_movable - Allocate a zeroed HIGHMEM page for a VMA that the caller knows can move
- * @vma: The VMA the page is to be allocated for
- * @vaddr: The virtual address the page will be inserted into
- *
- * This function will allocate a page for a VMA that the caller knows will
- * be able to migrate in the future using move_pages() or reclaimed
- */
-static inline struct page *
-alloc_zeroed_user_highpage_movable(struct vm_area_struct *vma,
- unsigned long vaddr)
-{
- return __alloc_zeroed_user_highpage(__GFP_MOVABLE, vma, vaddr);
-}
-
-static inline void clear_highpage(struct page *page)
-{
- void *kaddr = kmap_atomic(page);
- clear_page(kaddr);
- kunmap_atomic(kaddr);
-}
-
-static inline void zero_user_segments(struct page *page,
- unsigned start1, unsigned end1,
- unsigned start2, unsigned end2)
-{
- void *kaddr = kmap_atomic(page);
-
- BUG_ON(end1 > PAGE_SIZE || end2 > PAGE_SIZE);
-
- if (end1 > start1)
- memset(kaddr + start1, 0, end1 - start1);
-
- if (end2 > start2)
- memset(kaddr + start2, 0, end2 - start2);
-
- kunmap_atomic(kaddr);
- flush_dcache_page(page);
-}
-
-static inline void zero_user_segment(struct page *page,
- unsigned start, unsigned end)
-{
- zero_user_segments(page, start, end, 0, 0);
-}
-
-static inline void zero_user(struct page *page,
- unsigned start, unsigned size)
-{
- zero_user_segments(page, start, start + size, 0, 0);
-}
-
-static inline void __deprecated memclear_highpage_flush(struct page *page,
- unsigned int offset, unsigned int size)
-{
- zero_user(page, offset, size);
-}
-
-#ifndef __HAVE_ARCH_COPY_USER_HIGHPAGE
-
-static inline void copy_user_highpage(struct page *to, struct page *from,
- unsigned long vaddr, struct vm_area_struct *vma)
-{
- char *vfrom, *vto;
-
- vfrom = kmap_atomic(from);
- vto = kmap_atomic(to);
- copy_user_page(vto, vfrom, vaddr, to);
- kunmap_atomic(vto);
- kunmap_atomic(vfrom);
-}
-
-#endif
-
-static inline void copy_highpage(struct page *to, struct page *from)
-{
- char *vfrom, *vto;
-
- vfrom = kmap_atomic(from);
- vto = kmap_atomic(to);
- copy_page(vto, vfrom);
- kunmap_atomic(vto);
- kunmap_atomic(vfrom);
-}
-
-#endif /* _LINUX_HIGHMEM_H */
diff --git a/ANDROID_3.4.5/include/linux/highuid.h b/ANDROID_3.4.5/include/linux/highuid.h
deleted file mode 100644
index 434e5624..00000000
--- a/ANDROID_3.4.5/include/linux/highuid.h
+++ /dev/null
@@ -1,97 +0,0 @@
-#ifndef _LINUX_HIGHUID_H
-#define _LINUX_HIGHUID_H
-
-#include <linux/types.h>
-
-/*
- * general notes:
- *
- * CONFIG_UID16 is defined if the given architecture needs to
- * support backwards compatibility for old system calls.
- *
- * kernel code should use uid_t and gid_t at all times when dealing with
- * kernel-private data.
- *
- * old_uid_t and old_gid_t should only be different if CONFIG_UID16 is
- * defined, else the platform should provide dummy typedefs for them
- * such that they are equivalent to __kernel_{u,g}id_t.
- *
- * uid16_t and gid16_t are used on all architectures. (when dealing
- * with structures hard coded to 16 bits, such as in filesystems)
- */
-
-
-/*
- * This is the "overflow" UID and GID. They are used to signify uid/gid
- * overflow to old programs when they request uid/gid information but are
- * using the old 16 bit interfaces.
- * When you run a libc5 program, it will think that all highuid files or
- * processes are owned by this uid/gid.
- * The idea is that it's better to do so than possibly return 0 in lieu of
- * 65536, etc.
- */
-
-extern int overflowuid;
-extern int overflowgid;
-
-extern void __bad_uid(void);
-extern void __bad_gid(void);
-
-#define DEFAULT_OVERFLOWUID 65534
-#define DEFAULT_OVERFLOWGID 65534
-
-#ifdef CONFIG_UID16
-
-/* prevent uid mod 65536 effect by returning a default value for high UIDs */
-#define high2lowuid(uid) ((uid) & ~0xFFFF ? (old_uid_t)overflowuid : (old_uid_t)(uid))
-#define high2lowgid(gid) ((gid) & ~0xFFFF ? (old_gid_t)overflowgid : (old_gid_t)(gid))
-/*
- * -1 is different in 16 bits than it is in 32 bits
- * these macros are used by chown(), setreuid(), ...,
- */
-#define low2highuid(uid) ((uid) == (old_uid_t)-1 ? (uid_t)-1 : (uid_t)(uid))
-#define low2highgid(gid) ((gid) == (old_gid_t)-1 ? (gid_t)-1 : (gid_t)(gid))
-
-#define __convert_uid(size, uid) \
- (size >= sizeof(uid) ? (uid) : high2lowuid(uid))
-#define __convert_gid(size, gid) \
- (size >= sizeof(gid) ? (gid) : high2lowgid(gid))
-
-
-#else
-
-#define __convert_uid(size, uid) (uid)
-#define __convert_gid(size, gid) (gid)
-
-#endif /* !CONFIG_UID16 */
-
-/* uid/gid input should be always 32bit uid_t */
-#define SET_UID(var, uid) do { (var) = __convert_uid(sizeof(var), (uid)); } while (0)
-#define SET_GID(var, gid) do { (var) = __convert_gid(sizeof(var), (gid)); } while (0)
-
-/*
- * Everything below this line is needed on all architectures, to deal with
- * filesystems that only store 16 bits of the UID/GID, etc.
- */
-
-/*
- * This is the UID and GID that will get written to disk if a filesystem
- * only supports 16-bit UIDs and the kernel has a high UID/GID to write
- */
-extern int fs_overflowuid;
-extern int fs_overflowgid;
-
-#define DEFAULT_FS_OVERFLOWUID 65534
-#define DEFAULT_FS_OVERFLOWGID 65534
-
-/*
- * Since these macros are used in architectures that only need limited
- * 16-bit UID back compatibility, we won't use old_uid_t and old_gid_t
- */
-#define fs_high2lowuid(uid) ((uid) & ~0xFFFF ? (uid16_t)fs_overflowuid : (uid16_t)(uid))
-#define fs_high2lowgid(gid) ((gid) & ~0xFFFF ? (gid16_t)fs_overflowgid : (gid16_t)(gid))
-
-#define low_16_bits(x) ((x) & 0xFFFF)
-#define high_16_bits(x) (((x) & 0xFFFF0000) >> 16)
-
-#endif /* _LINUX_HIGHUID_H */
diff --git a/ANDROID_3.4.5/include/linux/hil.h b/ANDROID_3.4.5/include/linux/hil.h
deleted file mode 100644
index 523785a9..00000000
--- a/ANDROID_3.4.5/include/linux/hil.h
+++ /dev/null
@@ -1,483 +0,0 @@
-#ifndef _HIL_H_
-#define _HIL_H_
-
-/*
- * Hewlett Packard Human Interface Loop (HP-HIL) Protocol -- header.
- *
- * Copyright (c) 2001 Brian S. Julin
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions, and the following disclaimer,
- * without modification.
- * 2. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL").
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- *
- * References:
- * HP-HIL Technical Reference Manual. Hewlett Packard Product No. 45918A
- *
- * A note of thanks to HP for providing and shipping reference materials
- * free of charge to help in the development of HIL support for Linux.
- *
- */
-
-#include <asm/types.h>
-
-/* Physical constants relevant to raw loop/device timing.
- */
-
-#define HIL_CLOCK 8MHZ
-#define HIL_EK1_CLOCK 30HZ
-#define HIL_EK2_CLOCK 60HZ
-
-#define HIL_TIMEOUT_DEV 5 /* ms */
-#define HIL_TIMEOUT_DEVS 10 /* ms */
-#define HIL_TIMEOUT_NORESP 10 /* ms */
-#define HIL_TIMEOUT_DEVS_DATA 16 /* ms */
-#define HIL_TIMEOUT_SELFTEST 200 /* ms */
-
-
-/* Actual wire line coding. These will only be useful if someone is
- * implementing a software MLC to run HIL devices on a non-parisc machine.
- */
-
-#define HIL_WIRE_PACKET_LEN 15
-enum hil_wire_bitpos {
- HIL_WIRE_START = 0,
- HIL_WIRE_ADDR2,
- HIL_WIRE_ADDR1,
- HIL_WIRE_ADDR0,
- HIL_WIRE_COMMAND,
- HIL_WIRE_DATA7,
- HIL_WIRE_DATA6,
- HIL_WIRE_DATA5,
- HIL_WIRE_DATA4,
- HIL_WIRE_DATA3,
- HIL_WIRE_DATA2,
- HIL_WIRE_DATA1,
- HIL_WIRE_DATA0,
- HIL_WIRE_PARITY,
- HIL_WIRE_STOP
-};
-
-/* HP documentation uses these bit positions to refer to commands;
- * we will call these "packets".
- */
-enum hil_pkt_bitpos {
- HIL_PKT_CMD = 0x00000800,
- HIL_PKT_ADDR2 = 0x00000400,
- HIL_PKT_ADDR1 = 0x00000200,
- HIL_PKT_ADDR0 = 0x00000100,
- HIL_PKT_ADDR_MASK = 0x00000700,
- HIL_PKT_ADDR_SHIFT = 8,
- HIL_PKT_DATA7 = 0x00000080,
- HIL_PKT_DATA6 = 0x00000040,
- HIL_PKT_DATA5 = 0x00000020,
- HIL_PKT_DATA4 = 0x00000010,
- HIL_PKT_DATA3 = 0x00000008,
- HIL_PKT_DATA2 = 0x00000004,
- HIL_PKT_DATA1 = 0x00000002,
- HIL_PKT_DATA0 = 0x00000001,
- HIL_PKT_DATA_MASK = 0x000000FF,
- HIL_PKT_DATA_SHIFT = 0
-};
-
-/* The HIL MLC also has several error/status/control bits. We extend the
- * "packet" to include these when direct access to the MLC is available,
- * or emulate them in cases where they are not available.
- *
- * This way the device driver knows that the underlying MLC driver
- * has had to deal with loop errors.
- */
-enum hil_error_bitpos {
- HIL_ERR_OB = 0x00000800, /* MLC is busy sending an auto-poll,
- or we have filled up the output
- buffer and must wait. */
- HIL_ERR_INT = 0x00010000, /* A normal interrupt has occurred. */
- HIL_ERR_NMI = 0x00020000, /* An NMI has occurred. */
- HIL_ERR_LERR = 0x00040000, /* A poll didn't come back. */
- HIL_ERR_PERR = 0x01000000, /* There was a Parity Error. */
- HIL_ERR_FERR = 0x02000000, /* There was a Framing Error. */
- HIL_ERR_FOF = 0x04000000 /* Input FIFO Overflowed. */
-};
-
-enum hil_control_bitpos {
- HIL_CTRL_TEST = 0x00010000,
- HIL_CTRL_IPF = 0x00040000,
- HIL_CTRL_APE = 0x02000000
-};
-
-/* Bits 30,31 are unused, we use them to control write behavior. */
-#define HIL_DO_ALTER_CTRL 0x40000000 /* Write MSW of packet to control
- before writing LSW to loop */
-#define HIL_CTRL_ONLY 0xc0000000 /* *Only* alter the control registers */
-
-/* This gives us a 32-bit "packet"
- */
-typedef u32 hil_packet;
-
-
-/* HIL Loop commands
- */
-enum hil_command {
- HIL_CMD_IFC = 0x00, /* Interface Clear */
- HIL_CMD_EPT = 0x01, /* Enter Pass-Thru Mode */
- HIL_CMD_ELB = 0x02, /* Enter Loop-Back Mode */
- HIL_CMD_IDD = 0x03, /* Identify and Describe */
- HIL_CMD_DSR = 0x04, /* Device Soft Reset */
- HIL_CMD_PST = 0x05, /* Perform Self Test */
- HIL_CMD_RRG = 0x06, /* Read Register */
- HIL_CMD_WRG = 0x07, /* Write Register */
- HIL_CMD_ACF = 0x08, /* Auto Configure */
- HIL_CMDID_ACF = 0x07, /* Auto Configure bits with incremented ID */
- HIL_CMD_POL = 0x10, /* Poll */
- HIL_CMDCT_POL = 0x0f, /* Poll command bits with item count */
- HIL_CMD_RPL = 0x20, /* RePoll */
- HIL_CMDCT_RPL = 0x0f, /* RePoll command bits with item count */
- HIL_CMD_RNM = 0x30, /* Report Name */
- HIL_CMD_RST = 0x31, /* Report Status */
- HIL_CMD_EXD = 0x32, /* Extended Describe */
- HIL_CMD_RSC = 0x33, /* Report Security Code */
-
- /* 0x34 to 0x3c reserved for future use */
-
- HIL_CMD_DKA = 0x3d, /* Disable Keyswitch Autorepeat */
- HIL_CMD_EK1 = 0x3e, /* Enable Keyswitch Autorepeat 1 */
- HIL_CMD_EK2 = 0x3f, /* Enable Keyswitch Autorepeat 2 */
- HIL_CMD_PR1 = 0x40, /* Prompt1 */
- HIL_CMD_PR2 = 0x41, /* Prompt2 */
- HIL_CMD_PR3 = 0x42, /* Prompt3 */
- HIL_CMD_PR4 = 0x43, /* Prompt4 */
- HIL_CMD_PR5 = 0x44, /* Prompt5 */
- HIL_CMD_PR6 = 0x45, /* Prompt6 */
- HIL_CMD_PR7 = 0x46, /* Prompt7 */
- HIL_CMD_PRM = 0x47, /* Prompt (General Purpose) */
- HIL_CMD_AK1 = 0x48, /* Acknowledge1 */
- HIL_CMD_AK2 = 0x49, /* Acknowledge2 */
- HIL_CMD_AK3 = 0x4a, /* Acknowledge3 */
- HIL_CMD_AK4 = 0x4b, /* Acknowledge4 */
- HIL_CMD_AK5 = 0x4c, /* Acknowledge5 */
- HIL_CMD_AK6 = 0x4d, /* Acknowledge6 */
- HIL_CMD_AK7 = 0x4e, /* Acknowledge7 */
- HIL_CMD_ACK = 0x4f, /* Acknowledge (General Purpose) */
-
- /* 0x50 to 0x78 reserved for future use */
- /* 0x80 to 0xEF device-specific commands */
- /* 0xf0 to 0xf9 reserved for future use */
-
- HIL_CMD_RIO = 0xfa, /* Register I/O Error */
- HIL_CMD_SHR = 0xfb, /* System Hard Reset */
- HIL_CMD_TER = 0xfc, /* Transmission Error */
- HIL_CMD_CAE = 0xfd, /* Configuration Address Error */
- HIL_CMD_DHR = 0xfe, /* Device Hard Reset */
-
- /* 0xff is prohibited from use. */
-};
-
-
-/*
- * Response "records" to HIL commands
- */
-
-/* Device ID byte
- */
-#define HIL_IDD_DID_TYPE_MASK 0xe0 /* Primary type bits */
-#define HIL_IDD_DID_TYPE_KB_INTEGRAL 0xa0 /* Integral keyboard */
-#define HIL_IDD_DID_TYPE_KB_ITF 0xc0 /* ITD keyboard */
-#define HIL_IDD_DID_TYPE_KB_RSVD 0xe0 /* Reserved keyboard type */
-#define HIL_IDD_DID_TYPE_KB_LANG_MASK 0x1f /* Keyboard locale bits */
-#define HIL_IDD_DID_KBLANG_USE_ESD 0x00 /* Use ESD Locale instead */
-#define HIL_IDD_DID_TYPE_ABS 0x80 /* Absolute Positioners */
-#define HIL_IDD_DID_ABS_RSVD1_MASK 0xf8 /* Reserved */
-#define HIL_IDD_DID_ABS_RSVD1 0x98
-#define HIL_IDD_DID_ABS_TABLET_MASK 0xf8 /* Tablets and digitizers */
-#define HIL_IDD_DID_ABS_TABLET 0x90
-#define HIL_IDD_DID_ABS_TSCREEN_MASK 0xfc /* Touch screens */
-#define HIL_IDD_DID_ABS_TSCREEN 0x8c
-#define HIL_IDD_DID_ABS_RSVD2_MASK 0xfc /* Reserved */
-#define HIL_IDD_DID_ABS_RSVD2 0x88
-#define HIL_IDD_DID_ABS_RSVD3_MASK 0xfc /* Reserved */
-#define HIL_IDD_DID_ABS_RSVD3 0x80
-#define HIL_IDD_DID_TYPE_REL 0x60 /* Relative Positioners */
-#define HIL_IDD_DID_REL_RSVD1_MASK 0xf0 /* Reserved */
-#define HIL_IDD_DID_REL_RSVD1 0x70
-#define HIL_IDD_DID_REL_RSVD2_MASK 0xfc /* Reserved */
-#define HIL_IDD_DID_REL_RSVD2 0x6c
-#define HIL_IDD_DID_REL_MOUSE_MASK 0xfc /* Mouse */
-#define HIL_IDD_DID_REL_MOUSE 0x68
-#define HIL_IDD_DID_REL_QUAD_MASK 0xf8 /* Other Quadrature Devices */
-#define HIL_IDD_DID_REL_QUAD 0x60
-#define HIL_IDD_DID_TYPE_CHAR 0x40 /* Character Entry */
-#define HIL_IDD_DID_CHAR_BARCODE_MASK 0xfc /* Barcode Reader */
-#define HIL_IDD_DID_CHAR_BARCODE 0x5c
-#define HIL_IDD_DID_CHAR_RSVD1_MASK 0xfc /* Reserved */
-#define HIL_IDD_DID_CHAR_RSVD1 0x58
-#define HIL_IDD_DID_CHAR_RSVD2_MASK 0xf8 /* Reserved */
-#define HIL_IDD_DID_CHAR_RSVD2 0x50
-#define HIL_IDD_DID_CHAR_RSVD3_MASK 0xf0 /* Reserved */
-#define HIL_IDD_DID_CHAR_RSVD3 0x40
-#define HIL_IDD_DID_TYPE_OTHER 0x20 /* Miscellaneous */
-#define HIL_IDD_DID_OTHER_RSVD1_MASK 0xf0 /* Reserved */
-#define HIL_IDD_DID_OTHER_RSVD1 0x30
-#define HIL_IDD_DID_OTHER_BARCODE_MASK 0xfc /* Tone Generator */
-#define HIL_IDD_DID_OTHER_BARCODE 0x2c
-#define HIL_IDD_DID_OTHER_RSVD2_MASK 0xfc /* Reserved */
-#define HIL_IDD_DID_OTHER_RSVD2 0x28
-#define HIL_IDD_DID_OTHER_RSVD3_MASK 0xf8 /* Reserved */
-#define HIL_IDD_DID_OTHER_RSVD3 0x20
-#define HIL_IDD_DID_TYPE_KEYPAD 0x00 /* Vectra Keyboard */
-
-/* IDD record header
- */
-#define HIL_IDD_HEADER_AXSET_MASK 0x03 /* Number of axis in a set */
-#define HIL_IDD_HEADER_RSC 0x04 /* Supports RSC command */
-#define HIL_IDD_HEADER_EXD 0x08 /* Supports EXD command */
-#define HIL_IDD_HEADER_IOD 0x10 /* IOD byte to follow */
-#define HIL_IDD_HEADER_16BIT 0x20 /* 16 (vs. 8) bit resolution */
-#define HIL_IDD_HEADER_ABS 0x40 /* Reports Absolute Position */
-#define HIL_IDD_HEADER_2X_AXIS 0x80 /* Two sets of 1-3 axis */
-
-/* I/O Descriptor
- */
-#define HIL_IDD_IOD_NBUTTON_MASK 0x07 /* Number of buttons */
-#define HIL_IDD_IOD_PROXIMITY 0x08 /* Proximity in/out events */
-#define HIL_IDD_IOD_PROMPT_MASK 0x70 /* Number of prompts/acks */
-#define HIL_IDD_IOD_PROMPT_SHIFT 4
-#define HIL_IDD_IOD_PROMPT 0x80 /* Generic prompt/ack */
-
-#define HIL_IDD_NUM_AXES_PER_SET(header_packet) \
-((header_packet) & HIL_IDD_HEADER_AXSET_MASK)
-
-#define HIL_IDD_NUM_AXSETS(header_packet) \
-(2 - !((header_packet) & HIL_IDD_HEADER_2X_AXIS))
-
-#define HIL_IDD_LEN(header_packet) \
-((4 - !(header_packet & HIL_IDD_HEADER_IOD) - \
- 2 * !(HIL_IDD_NUM_AXES_PER_SET(header_packet))) + \
- 2 * HIL_IDD_NUM_AXES_PER_SET(header_packet) * \
- !!((header_packet) & HIL_IDD_HEADER_ABS))
-
-/* The following HIL_IDD_* macros assume you have an array of
- * packets and/or unpacked 8-bit data in the order that they
- * were received.
- */
-
-#define HIL_IDD_AXIS_COUNTS_PER_M(header_ptr) \
-(!(HIL_IDD_NUM_AXSETS(*(header_ptr))) ? -1 : \
-(((*(header_ptr + 1) & HIL_PKT_DATA_MASK) + \
- ((*(header_ptr + 2) & HIL_PKT_DATA_MASK)) << 8) \
-* ((*(header_ptr) & HIL_IDD_HEADER_16BIT) ? 100 : 1)))
-
-#define HIL_IDD_AXIS_MAX(header_ptr, __axnum) \
-((!(*(header_ptr) & HIL_IDD_HEADER_ABS) || \
- (HIL_IDD_NUM_AXES_PER_SET(*(header_ptr)) <= __axnum)) ? 0 : \
- ((HIL_PKT_DATA_MASK & *((header_ptr) + 3 + 2 * __axnum)) + \
- ((HIL_PKT_DATA_MASK & *((header_ptr) + 4 + 2 * __axnum)) << 8)))
-
-#define HIL_IDD_IOD(header_ptr) \
-(*(header_ptr + HIL_IDD_LEN((*header_ptr)) - 1))
-
-#define HIL_IDD_HAS_GEN_PROMPT(header_ptr) \
-((*header_ptr & HIL_IDD_HEADER_IOD) && \
- (HIL_IDD_IOD(header_ptr) & HIL_IDD_IOD_PROMPT))
-
-#define HIL_IDD_HAS_GEN_PROXIMITY(header_ptr) \
-((*header_ptr & HIL_IDD_HEADER_IOD) && \
- (HIL_IDD_IOD(header_ptr) & HIL_IDD_IOD_PROXIMITY))
-
-#define HIL_IDD_NUM_BUTTONS(header_ptr) \
-((*header_ptr & HIL_IDD_HEADER_IOD) ? \
- (HIL_IDD_IOD(header_ptr) & HIL_IDD_IOD_NBUTTON_MASK) : 0)
-
-#define HIL_IDD_NUM_PROMPTS(header_ptr) \
-((*header_ptr & HIL_IDD_HEADER_IOD) ? \
- ((HIL_IDD_IOD(header_ptr) & HIL_IDD_IOD_NPROMPT_MASK) \
- >> HIL_IDD_IOD_PROMPT_SHIFT) : 0)
-
-/* The response to HIL EXD commands -- the "extended describe record" */
-#define HIL_EXD_HEADER_WRG 0x03 /* Supports type2 WRG */
-#define HIL_EXD_HEADER_WRG_TYPE1 0x01 /* Supports type1 WRG */
-#define HIL_EXD_HEADER_WRG_TYPE2 0x02 /* Supports type2 WRG */
-#define HIL_EXD_HEADER_RRG 0x04 /* Supports RRG command */
-#define HIL_EXD_HEADER_RNM 0x10 /* Supports RNM command */
-#define HIL_EXD_HEADER_RST 0x20 /* Supports RST command */
-#define HIL_EXD_HEADER_LOCALE 0x40 /* Contains locale code */
-
-#define HIL_EXD_NUM_RRG(header_ptr) \
-((*header_ptr & HIL_EXD_HEADER_RRG) ? \
- (*(header_ptr + 1) & HIL_PKT_DATA_MASK) : 0)
-
-#define HIL_EXD_NUM_WWG(header_ptr) \
-((*header_ptr & HIL_EXD_HEADER_WRG) ? \
- (*(header_ptr + 2 - !(*header_ptr & HIL_EXD_HEADER_RRG)) & \
- HIL_PKT_DATA_MASK) : 0)
-
-#define HIL_EXD_LEN(header_ptr) \
-(!!(*header_ptr & HIL_EXD_HEADER_RRG) + \
- !!(*header_ptr & HIL_EXD_HEADER_WRG) + \
- !!(*header_ptr & HIL_EXD_HEADER_LOCALE) + \
- 2 * !!(*header_ptr & HIL_EXD_HEADER_WRG_TYPE2) + 1)
-
-#define HIL_EXD_LOCALE(header_ptr) \
-(!(*header_ptr & HIL_EXD_HEADER_LOCALE) ? -1 : \
- (*(header_ptr + HIL_EXD_LEN(header_ptr) - 1) & HIL_PKT_DATA_MASK))
-
-#define HIL_EXD_WRG_TYPE2_LEN(header_ptr) \
-(!(*header_ptr & HIL_EXD_HEADER_WRG_TYPE2) ? -1 : \
- (*(header_ptr + HIL_EXD_LEN(header_ptr) - 2 - \
- !!(*header_ptr & HIL_EXD_HEADER_LOCALE)) & HIL_PKT_DATA_MASK) + \
- ((*(header_ptr + HIL_EXD_LEN(header_ptr) - 1 - \
- !!(*header_ptr & HIL_EXD_HEADER_LOCALE)) & HIL_PKT_DATA_MASK) << 8))
-
-/* Device locale codes. */
-
-/* Last defined locale code. Everything above this is "Reserved",
- and note that this same table applies to the Device ID Byte where
- keyboards may have a nationality code which is only 5 bits. */
-#define HIL_LOCALE_MAX 0x1f
-
-/* Map to hopefully useful strings. I was trying to make these look
- like locale.aliases strings do; maybe that isn't the right table to
- emulate. In either case, I didn't have much to work on. */
-#define HIL_LOCALE_MAP \
-"", /* 0x00 Reserved */ \
-"", /* 0x01 Reserved */ \
-"", /* 0x02 Reserved */ \
-"swiss.french", /* 0x03 Swiss/French */ \
-"portuguese", /* 0x04 Portuguese */ \
-"arabic", /* 0x05 Arabic */ \
-"hebrew", /* 0x06 Hebrew */ \
-"english.canadian", /* 0x07 Canadian English */ \
-"turkish", /* 0x08 Turkish */ \
-"greek", /* 0x09 Greek */ \
-"thai", /* 0x0a Thai (Thailand) */ \
-"italian", /* 0x0b Italian */ \
-"korean", /* 0x0c Hangul (Korea) */ \
-"dutch", /* 0x0d Dutch */ \
-"swedish", /* 0x0e Swedish */ \
-"german", /* 0x0f German */ \
-"chinese", /* 0x10 Chinese-PRC */ \
-"chinese", /* 0x11 Chinese-ROC */ \
-"swiss.french", /* 0x12 Swiss/French II */ \
-"spanish", /* 0x13 Spanish */ \
-"swiss.german", /* 0x14 Swiss/German II */ \
-"flemish", /* 0x15 Belgian (Flemish) */ \
-"finnish", /* 0x16 Finnish */ \
-"english.uk", /* 0x17 United Kingdom */ \
-"french.canadian", /* 0x18 French/Canadian */ \
-"swiss.german", /* 0x19 Swiss/German */ \
-"norwegian", /* 0x1a Norwegian */ \
-"french", /* 0x1b French */ \
-"danish", /* 0x1c Danish */ \
-"japanese", /* 0x1d Katakana */ \
-"spanish", /* 0x1e Latin American/Spanish*/\
-"english.us" /* 0x1f United States */ \
-
-
-/* HIL keycodes */
-#define HIL_KEYCODES_SET1_TBLSIZE 128
-#define HIL_KEYCODES_SET1 \
- KEY_5, KEY_RESERVED, KEY_RIGHTALT, KEY_LEFTALT, \
- KEY_RIGHTSHIFT, KEY_LEFTSHIFT, KEY_LEFTCTRL, KEY_SYSRQ, \
- KEY_KP4, KEY_KP8, KEY_KP5, KEY_KP9, \
- KEY_KP6, KEY_KP7, KEY_KPCOMMA, KEY_KPENTER, \
- KEY_KP1, KEY_KPSLASH, KEY_KP2, KEY_KPPLUS, \
- KEY_KP3, KEY_KPASTERISK, KEY_KP0, KEY_KPMINUS, \
- KEY_B, KEY_V, KEY_C, KEY_X, \
- KEY_Z, KEY_RESERVED, KEY_RESERVED, KEY_ESC, \
- KEY_6, KEY_F10, KEY_3, KEY_F11, \
- KEY_KPDOT, KEY_F9, KEY_TAB /*KP*/, KEY_F12, \
- KEY_H, KEY_G, KEY_F, KEY_D, \
- KEY_S, KEY_A, KEY_RESERVED, KEY_CAPSLOCK, \
- KEY_U, KEY_Y, KEY_T, KEY_R, \
- KEY_E, KEY_W, KEY_Q, KEY_TAB, \
- KEY_7, KEY_6, KEY_5, KEY_4, \
- KEY_3, KEY_2, KEY_1, KEY_GRAVE, \
- KEY_F13, KEY_F14, KEY_F15, KEY_F16, \
- KEY_F17, KEY_F18, KEY_F19, KEY_F20, \
- KEY_MENU, KEY_F4, KEY_F3, KEY_F2, \
- KEY_F1, KEY_VOLUMEUP, KEY_STOP, KEY_SENDFILE, \
- KEY_SYSRQ, KEY_F5, KEY_F6, KEY_F7, \
- KEY_F8, KEY_VOLUMEDOWN, KEY_DEL_EOL, KEY_DEL_EOS, \
- KEY_8, KEY_9, KEY_0, KEY_MINUS, \
- KEY_EQUAL, KEY_BACKSPACE, KEY_INS_LINE, KEY_DEL_LINE, \
- KEY_I, KEY_O, KEY_P, KEY_LEFTBRACE, \
- KEY_RIGHTBRACE, KEY_BACKSLASH, KEY_INSERT, KEY_DELETE, \
- KEY_J, KEY_K, KEY_L, KEY_SEMICOLON, \
- KEY_APOSTROPHE, KEY_ENTER, KEY_HOME, KEY_PAGEUP, \
- KEY_M, KEY_COMMA, KEY_DOT, KEY_SLASH, \
- KEY_BACKSLASH, KEY_SELECT, KEY_102ND, KEY_PAGEDOWN, \
- KEY_N, KEY_SPACE, KEY_NEXT, KEY_RESERVED, \
- KEY_LEFT, KEY_DOWN, KEY_UP, KEY_RIGHT
-
-
-#define HIL_KEYCODES_SET3_TBLSIZE 128
-#define HIL_KEYCODES_SET3 \
- KEY_RESERVED, KEY_ESC, KEY_1, KEY_2, \
- KEY_3, KEY_4, KEY_5, KEY_6, \
- KEY_7, KEY_8, KEY_9, KEY_0, \
- KEY_MINUS, KEY_EQUAL, KEY_BACKSPACE, KEY_TAB, \
- KEY_Q, KEY_W, KEY_E, KEY_R, \
- KEY_T, KEY_Y, KEY_U, KEY_I, \
- KEY_O, KEY_P, KEY_LEFTBRACE, KEY_RIGHTBRACE, \
- KEY_ENTER, KEY_LEFTCTRL, KEY_A, KEY_S, \
- KEY_D, KEY_F, KEY_G, KEY_H, \
- KEY_J, KEY_K, KEY_L, KEY_SEMICOLON, \
- KEY_APOSTROPHE,KEY_GRAVE, KEY_LEFTSHIFT, KEY_BACKSLASH, \
- KEY_Z, KEY_X, KEY_C, KEY_V, \
- KEY_B, KEY_N, KEY_M, KEY_COMMA, \
- KEY_DOT, KEY_SLASH, KEY_RIGHTSHIFT, KEY_KPASTERISK, \
- KEY_LEFTALT, KEY_SPACE, KEY_CAPSLOCK, KEY_F1, \
- KEY_F2, KEY_F3, KEY_F4, KEY_F5, \
- KEY_F6, KEY_F7, KEY_F8, KEY_F9, \
- KEY_F10, KEY_NUMLOCK, KEY_SCROLLLOCK, KEY_KP7, \
- KEY_KP8, KEY_KP9, KEY_KPMINUS, KEY_KP4, \
- KEY_KP5, KEY_KP6, KEY_KPPLUS, KEY_KP1, \
- KEY_KP2, KEY_KP3, KEY_KP0, KEY_KPDOT, \
- KEY_SYSRQ, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, \
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, \
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, \
- KEY_UP, KEY_LEFT, KEY_DOWN, KEY_RIGHT, \
- KEY_HOME, KEY_PAGEUP, KEY_END, KEY_PAGEDOWN, \
- KEY_INSERT, KEY_DELETE, KEY_102ND, KEY_RESERVED, \
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, \
- KEY_F1, KEY_F2, KEY_F3, KEY_F4, \
- KEY_F5, KEY_F6, KEY_F7, KEY_F8, \
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, \
- KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED
-
-
-/* Response to POL command, the "poll record header" */
-
-#define HIL_POL_NUM_AXES_MASK 0x03 /* Number of axis reported */
-#define HIL_POL_CTS 0x04 /* Device ready to receive data */
-#define HIL_POL_STATUS_PENDING 0x08 /* Device has status to report */
-#define HIL_POL_CHARTYPE_MASK 0x70 /* Type of character data to follow */
-#define HIL_POL_CHARTYPE_NONE 0x00 /* No character data to follow */
-#define HIL_POL_CHARTYPE_RSVD1 0x10 /* Reserved Set 1 */
-#define HIL_POL_CHARTYPE_ASCII 0x20 /* U.S. ASCII */
-#define HIL_POL_CHARTYPE_BINARY 0x30 /* Binary data */
-#define HIL_POL_CHARTYPE_SET1 0x40 /* Keycode Set 1 */
-#define HIL_POL_CHARTYPE_RSVD2 0x50 /* Reserved Set 2 */
-#define HIL_POL_CHARTYPE_SET2 0x60 /* Keycode Set 2 */
-#define HIL_POL_CHARTYPE_SET3 0x70 /* Keycode Set 3 */
-#define HIL_POL_AXIS_ALT 0x80 /* Data is from axis set 2 */
-
-
-#endif /* _HIL_H_ */
diff --git a/ANDROID_3.4.5/include/linux/hil_mlc.h b/ANDROID_3.4.5/include/linux/hil_mlc.h
deleted file mode 100644
index 394a8405..00000000
--- a/ANDROID_3.4.5/include/linux/hil_mlc.h
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * HP Human Interface Loop Master Link Controller driver.
- *
- * Copyright (c) 2001 Brian S. Julin
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions, and the following disclaimer,
- * without modification.
- * 2. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL").
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- *
- * References:
- * HP-HIL Technical Reference Manual. Hewlett Packard Product No. 45918A
- *
- */
-
-#include <linux/hil.h>
-#include <linux/time.h>
-#include <linux/interrupt.h>
-#include <linux/semaphore.h>
-#include <linux/serio.h>
-#include <linux/list.h>
-
-typedef struct hil_mlc hil_mlc;
-
-/* The HIL has a complicated state engine.
- * We define the structure of nodes in the state engine here.
- */
-enum hilse_act {
- /* HILSE_OUT prepares to receive input if the next node
- * is an IN or EXPECT, and then sends the given packet.
- */
- HILSE_OUT = 0,
-
- /* HILSE_CTS checks if the loop is busy. */
- HILSE_CTS,
-
- /* HILSE_OUT_LAST sends the given command packet to
- * the last configured/running device on the loop.
- */
- HILSE_OUT_LAST,
-
- /* HILSE_OUT_DISC sends the given command packet to
- * the next device past the last configured/running one.
- */
- HILSE_OUT_DISC,
-
- /* HILSE_FUNC runs a callback function with given arguments.
- * a positive return value causes the "ugly" branch to be taken.
- */
- HILSE_FUNC,
-
- /* HILSE_IN simply expects any non-errored packet to arrive
- * within arg usecs.
- */
- HILSE_IN = 0x100,
-
- /* HILSE_EXPECT expects a particular packet to arrive
- * within arg usecs, any other packet is considered an error.
- */
- HILSE_EXPECT,
-
- /* HILSE_EXPECT_LAST as above but dev field should be last
- * discovered/operational device.
- */
- HILSE_EXPECT_LAST,
-
- /* HILSE_EXPECT_LAST as above but dev field should be first
- * undiscovered/inoperational device.
- */
- HILSE_EXPECT_DISC
-};
-
-typedef int (hilse_func) (hil_mlc *mlc, int arg);
-struct hilse_node {
- enum hilse_act act; /* How to process this node */
- union {
- hilse_func *func; /* Function to call if HILSE_FUNC */
- hil_packet packet; /* Packet to send or to compare */
- } object;
- int arg; /* Timeout in usec or parm for func */
- int good; /* Node to jump to on success */
- int bad; /* Node to jump to on error */
- int ugly; /* Node to jump to on timeout */
-};
-
-/* Methods for back-end drivers, e.g. hp_sdc_mlc */
-typedef int (hil_mlc_cts) (hil_mlc *mlc);
-typedef void (hil_mlc_out) (hil_mlc *mlc);
-typedef int (hil_mlc_in) (hil_mlc *mlc, suseconds_t timeout);
-
-struct hil_mlc_devinfo {
- uint8_t idd[16]; /* Device ID Byte and Describe Record */
- uint8_t rsc[16]; /* Security Code Header and Record */
- uint8_t exd[16]; /* Extended Describe Record */
- uint8_t rnm[16]; /* Device name as returned by RNM command */
-};
-
-struct hil_mlc_serio_map {
- hil_mlc *mlc;
- int di_revmap;
- int didx;
-};
-
-/* How many (possibly old/detached) devices the we try to keep track of */
-#define HIL_MLC_DEVMEM 16
-
-struct hil_mlc {
- struct list_head list; /* hil_mlc is organized as linked list */
-
- rwlock_t lock;
-
- void *priv; /* Data specific to a particular type of MLC */
-
- int seidx; /* Current node in state engine */
- int istarted, ostarted;
-
- hil_mlc_cts *cts;
- struct semaphore csem; /* Raised when loop idle */
-
- hil_mlc_out *out;
- struct semaphore osem; /* Raised when outpacket dispatched */
- hil_packet opacket;
-
- hil_mlc_in *in;
- struct semaphore isem; /* Raised when a packet arrives */
- hil_packet ipacket[16];
- hil_packet imatch;
- int icount;
- struct timeval instart;
- suseconds_t intimeout;
-
- int ddi; /* Last operational device id */
- int lcv; /* LCV to throttle loops */
- struct timeval lcv_tv; /* Time loop was started */
-
- int di_map[7]; /* Maps below items to live devs */
- struct hil_mlc_devinfo di[HIL_MLC_DEVMEM];
- struct serio *serio[HIL_MLC_DEVMEM];
- struct hil_mlc_serio_map serio_map[HIL_MLC_DEVMEM];
- hil_packet serio_opacket[HIL_MLC_DEVMEM];
- int serio_oidx[HIL_MLC_DEVMEM];
- struct hil_mlc_devinfo di_scratch; /* Temporary area */
-
- int opercnt;
-
- struct tasklet_struct *tasklet;
-};
-
-int hil_mlc_register(hil_mlc *mlc);
-int hil_mlc_unregister(hil_mlc *mlc);
diff --git a/ANDROID_3.4.5/include/linux/hippidevice.h b/ANDROID_3.4.5/include/linux/hippidevice.h
deleted file mode 100644
index f148e490..00000000
--- a/ANDROID_3.4.5/include/linux/hippidevice.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Definitions for the HIPPI handlers.
- *
- * Version: @(#)hippidevice.h 1.0.0 05/26/97
- *
- * Author: Jes Sorensen, <Jes.Sorensen@cern.ch>
- *
- * hippidevice.h is based on previous fddidevice.h work by
- * Ross Biro
- * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
- * Alan Cox, <gw4pts@gw4pts.ampr.org>
- * Lawrence V. Stefani, <stefani@lkg.dec.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 _LINUX_HIPPIDEVICE_H
-#define _LINUX_HIPPIDEVICE_H
-
-#include <linux/if_hippi.h>
-
-#ifdef __KERNEL__
-
-struct hippi_cb {
- __u32 ifield;
-};
-
-extern __be16 hippi_type_trans(struct sk_buff *skb, struct net_device *dev);
-extern int hippi_change_mtu(struct net_device *dev, int new_mtu);
-extern int hippi_mac_addr(struct net_device *dev, void *p);
-extern int hippi_neigh_setup_dev(struct net_device *dev, struct neigh_parms *p);
-extern struct net_device *alloc_hippi_dev(int sizeof_priv);
-#endif
-
-#endif /* _LINUX_HIPPIDEVICE_H */
diff --git a/ANDROID_3.4.5/include/linux/hp_sdc.h b/ANDROID_3.4.5/include/linux/hp_sdc.h
deleted file mode 100644
index d392975d..00000000
--- a/ANDROID_3.4.5/include/linux/hp_sdc.h
+++ /dev/null
@@ -1,301 +0,0 @@
-/*
- * HP i8042 System Device Controller -- header
- *
- * Copyright (c) 2001 Brian S. Julin
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions, and the following disclaimer,
- * without modification.
- * 2. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL").
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- *
- * References:
- *
- * HP-HIL Technical Reference Manual. Hewlett Packard Product No. 45918A
- *
- * System Device Controller Microprocessor Firmware Theory of Operation
- * for Part Number 1820-4784 Revision B. Dwg No. A-1820-4784-2
- *
- */
-
-#ifndef _LINUX_HP_SDC_H
-#define _LINUX_HP_SDC_H
-
-#include <linux/interrupt.h>
-#include <linux/types.h>
-#include <linux/time.h>
-#include <linux/timer.h>
-#if defined(__hppa__)
-#include <asm/hardware.h>
-#endif
-
-
-/* No 4X status reads take longer than this (in usec).
- */
-#define HP_SDC_MAX_REG_DELAY 20000
-
-typedef void (hp_sdc_irqhook) (int irq, void *dev_id,
- uint8_t status, uint8_t data);
-
-int hp_sdc_request_timer_irq(hp_sdc_irqhook *callback);
-int hp_sdc_request_hil_irq(hp_sdc_irqhook *callback);
-int hp_sdc_request_cooked_irq(hp_sdc_irqhook *callback);
-int hp_sdc_release_timer_irq(hp_sdc_irqhook *callback);
-int hp_sdc_release_hil_irq(hp_sdc_irqhook *callback);
-int hp_sdc_release_cooked_irq(hp_sdc_irqhook *callback);
-
-typedef struct {
- int actidx; /* Start of act. Acts are atomic WRT I/O to SDC */
- int idx; /* Index within the act */
- int endidx; /* transaction is over and done if idx == endidx */
- uint8_t *seq; /* commands/data for the transaction */
- union {
- hp_sdc_irqhook *irqhook; /* Callback, isr or tasklet context */
- struct semaphore *semaphore; /* Semaphore to sleep on. */
- } act;
-} hp_sdc_transaction;
-int __hp_sdc_enqueue_transaction(hp_sdc_transaction *this);
-int hp_sdc_enqueue_transaction(hp_sdc_transaction *this);
-int hp_sdc_dequeue_transaction(hp_sdc_transaction *this);
-
-/* The HP_SDC_ACT* values are peculiar to this driver.
- * Nuance: never HP_SDC_ACT_DATAIN | HP_SDC_ACT_DEALLOC, use another
- * act to perform the dealloc.
- */
-#define HP_SDC_ACT_PRECMD 0x01 /* Send a command first */
-#define HP_SDC_ACT_DATAREG 0x02 /* Set data registers */
-#define HP_SDC_ACT_DATAOUT 0x04 /* Send data bytes */
-#define HP_SDC_ACT_POSTCMD 0x08 /* Send command after */
-#define HP_SDC_ACT_DATAIN 0x10 /* Collect data after */
-#define HP_SDC_ACT_DURING 0x1f
-#define HP_SDC_ACT_SEMAPHORE 0x20 /* Raise semaphore after */
-#define HP_SDC_ACT_CALLBACK 0x40 /* Pass data to IRQ handler */
-#define HP_SDC_ACT_DEALLOC 0x80 /* Destroy transaction after */
-#define HP_SDC_ACT_AFTER 0xe0
-#define HP_SDC_ACT_DEAD 0x60 /* Act timed out. */
-
-/* Rest of the flags are straightforward representation of the SDC interface */
-#define HP_SDC_STATUS_IBF 0x02 /* Input buffer full */
-
-#define HP_SDC_STATUS_IRQMASK 0xf0 /* Bits containing "level 1" irq */
-#define HP_SDC_STATUS_PERIODIC 0x10 /* Periodic 10ms timer */
-#define HP_SDC_STATUS_USERTIMER 0x20 /* "Special purpose" timer */
-#define HP_SDC_STATUS_TIMER 0x30 /* Both PERIODIC and USERTIMER */
-#define HP_SDC_STATUS_REG 0x40 /* Data from an i8042 register */
-#define HP_SDC_STATUS_HILCMD 0x50 /* Command from HIL MLC */
-#define HP_SDC_STATUS_HILDATA 0x60 /* Data from HIL MLC */
-#define HP_SDC_STATUS_PUP 0x70 /* Successful power-up self test */
-#define HP_SDC_STATUS_KCOOKED 0x80 /* Key from cooked kbd */
-#define HP_SDC_STATUS_KRPG 0xc0 /* Key from Repeat Gen */
-#define HP_SDC_STATUS_KMOD_SUP 0x10 /* Shift key is up */
-#define HP_SDC_STATUS_KMOD_CUP 0x20 /* Control key is up */
-
-#define HP_SDC_NMISTATUS_FHS 0x40 /* NMI is a fast handshake irq */
-
-/* Internal i8042 registers (there are more, but they are not too useful). */
-
-#define HP_SDC_USE 0x02 /* Resource usage (including OB bit) */
-#define HP_SDC_IM 0x04 /* Interrupt mask */
-#define HP_SDC_CFG 0x11 /* Configuration register */
-#define HP_SDC_KBLANGUAGE 0x12 /* Keyboard language */
-
-#define HP_SDC_D0 0x70 /* General purpose data buffer 0 */
-#define HP_SDC_D1 0x71 /* General purpose data buffer 1 */
-#define HP_SDC_D2 0x72 /* General purpose data buffer 2 */
-#define HP_SDC_D3 0x73 /* General purpose data buffer 3 */
-#define HP_SDC_VT1 0x74 /* Timer for voice 1 */
-#define HP_SDC_VT2 0x75 /* Timer for voice 2 */
-#define HP_SDC_VT3 0x76 /* Timer for voice 3 */
-#define HP_SDC_VT4 0x77 /* Timer for voice 4 */
-#define HP_SDC_KBN 0x78 /* Which HIL devs are Nimitz */
-#define HP_SDC_KBC 0x79 /* Which HIL devs are cooked kbds */
-#define HP_SDC_LPS 0x7a /* i8042's view of HIL status */
-#define HP_SDC_LPC 0x7b /* i8042's view of HIL "control" */
-#define HP_SDC_RSV 0x7c /* Reserved "for testing" */
-#define HP_SDC_LPR 0x7d /* i8042 count of HIL reconfigs */
-#define HP_SDC_XTD 0x7e /* "Extended Configuration" register */
-#define HP_SDC_STR 0x7f /* i8042 self-test result */
-
-/* Bitfields for above registers */
-#define HP_SDC_USE_LOOP 0x04 /* Command is currently on the loop. */
-
-#define HP_SDC_IM_MASK 0x1f /* these bits not part of cmd/status */
-#define HP_SDC_IM_FH 0x10 /* Mask the fast handshake irq */
-#define HP_SDC_IM_PT 0x08 /* Mask the periodic timer irq */
-#define HP_SDC_IM_TIMERS 0x04 /* Mask the MT/DT/CT irq */
-#define HP_SDC_IM_RESET 0x02 /* Mask the reset key irq */
-#define HP_SDC_IM_HIL 0x01 /* Mask the HIL MLC irq */
-
-#define HP_SDC_CFG_ROLLOVER 0x08 /* WTF is "N-key rollover"? */
-#define HP_SDC_CFG_KBD 0x10 /* There is a keyboard */
-#define HP_SDC_CFG_NEW 0x20 /* Supports/uses HIL MLC */
-#define HP_SDC_CFG_KBD_OLD 0x03 /* keyboard code for non-HIL */
-#define HP_SDC_CFG_KBD_NEW 0x07 /* keyboard code from HIL autoconfig */
-#define HP_SDC_CFG_REV 0x40 /* Code revision bit */
-#define HP_SDC_CFG_IDPROM 0x80 /* IDPROM present in kbd (not HIL) */
-
-#define HP_SDC_LPS_NDEV 0x07 /* # devices autoconfigured on HIL */
-#define HP_SDC_LPS_ACSUCC 0x08 /* loop autoconfigured successfully */
-#define HP_SDC_LPS_ACFAIL 0x80 /* last loop autoconfigure failed */
-
-#define HP_SDC_LPC_APE_IPF 0x01 /* HIL MLC APE/IPF (autopoll) set */
-#define HP_SDC_LPC_ARCONERR 0x02 /* i8042 autoreconfigs loop on err */
-#define HP_SDC_LPC_ARCQUIET 0x03 /* i8042 doesn't report autoreconfigs*/
-#define HP_SDC_LPC_COOK 0x10 /* i8042 cooks devices in _KBN */
-#define HP_SDC_LPC_RC 0x80 /* causes autoreconfig */
-
-#define HP_SDC_XTD_REV 0x07 /* contains revision code */
-#define HP_SDC_XTD_REV_STRINGS(val, str) \
-switch (val) { \
- case 0x1: str = "1820-3712"; break; \
- case 0x2: str = "1820-4379"; break; \
- case 0x3: str = "1820-4784"; break; \
- default: str = "unknown"; \
-};
-#define HP_SDC_XTD_BEEPER 0x08 /* TI SN76494 beeper available */
-#define HP_SDC_XTD_BBRTC 0x20 /* OKI MSM-58321 BBRTC present */
-
-#define HP_SDC_CMD_LOAD_RT 0x31 /* Load real time (from 8042) */
-#define HP_SDC_CMD_LOAD_FHS 0x36 /* Load the fast handshake timer */
-#define HP_SDC_CMD_LOAD_MT 0x38 /* Load the match timer */
-#define HP_SDC_CMD_LOAD_DT 0x3B /* Load the delay timer */
-#define HP_SDC_CMD_LOAD_CT 0x3E /* Load the cycle timer */
-
-#define HP_SDC_CMD_SET_IM 0x40 /* 010xxxxx == set irq mask */
-
-/* The documents provided do not explicitly state that all registers betweem
- * 0x01 and 0x1f inclusive can be read by sending their register index as a
- * command, but this is implied and appears to be the case.
- */
-#define HP_SDC_CMD_READ_RAM 0x00 /* Load from i8042 RAM (autoinc) */
-#define HP_SDC_CMD_READ_USE 0x02 /* Undocumented! Load from usage reg */
-#define HP_SDC_CMD_READ_IM 0x04 /* Load current interrupt mask */
-#define HP_SDC_CMD_READ_KCC 0x11 /* Load primary kbd config code */
-#define HP_SDC_CMD_READ_KLC 0x12 /* Load primary kbd language code */
-#define HP_SDC_CMD_READ_T1 0x13 /* Load timer output buffer byte 1 */
-#define HP_SDC_CMD_READ_T2 0x14 /* Load timer output buffer byte 1 */
-#define HP_SDC_CMD_READ_T3 0x15 /* Load timer output buffer byte 1 */
-#define HP_SDC_CMD_READ_T4 0x16 /* Load timer output buffer byte 1 */
-#define HP_SDC_CMD_READ_T5 0x17 /* Load timer output buffer byte 1 */
-#define HP_SDC_CMD_READ_D0 0xf0 /* Load from i8042 RAM location 0x70 */
-#define HP_SDC_CMD_READ_D1 0xf1 /* Load from i8042 RAM location 0x71 */
-#define HP_SDC_CMD_READ_D2 0xf2 /* Load from i8042 RAM location 0x72 */
-#define HP_SDC_CMD_READ_D3 0xf3 /* Load from i8042 RAM location 0x73 */
-#define HP_SDC_CMD_READ_VT1 0xf4 /* Load from i8042 RAM location 0x74 */
-#define HP_SDC_CMD_READ_VT2 0xf5 /* Load from i8042 RAM location 0x75 */
-#define HP_SDC_CMD_READ_VT3 0xf6 /* Load from i8042 RAM location 0x76 */
-#define HP_SDC_CMD_READ_VT4 0xf7 /* Load from i8042 RAM location 0x77 */
-#define HP_SDC_CMD_READ_KBN 0xf8 /* Load from i8042 RAM location 0x78 */
-#define HP_SDC_CMD_READ_KBC 0xf9 /* Load from i8042 RAM location 0x79 */
-#define HP_SDC_CMD_READ_LPS 0xfa /* Load from i8042 RAM location 0x7a */
-#define HP_SDC_CMD_READ_LPC 0xfb /* Load from i8042 RAM location 0x7b */
-#define HP_SDC_CMD_READ_RSV 0xfc /* Load from i8042 RAM location 0x7c */
-#define HP_SDC_CMD_READ_LPR 0xfd /* Load from i8042 RAM location 0x7d */
-#define HP_SDC_CMD_READ_XTD 0xfe /* Load from i8042 RAM location 0x7e */
-#define HP_SDC_CMD_READ_STR 0xff /* Load from i8042 RAM location 0x7f */
-
-#define HP_SDC_CMD_SET_ARD 0xA0 /* Set emulated autorepeat delay */
-#define HP_SDC_CMD_SET_ARR 0xA2 /* Set emulated autorepeat rate */
-#define HP_SDC_CMD_SET_BELL 0xA3 /* Set voice 3 params for "beep" cmd */
-#define HP_SDC_CMD_SET_RPGR 0xA6 /* Set "RPG" irq rate (doesn't work) */
-#define HP_SDC_CMD_SET_RTMS 0xAD /* Set the RTC time (milliseconds) */
-#define HP_SDC_CMD_SET_RTD 0xAF /* Set the RTC time (days) */
-#define HP_SDC_CMD_SET_FHS 0xB2 /* Set fast handshake timer */
-#define HP_SDC_CMD_SET_MT 0xB4 /* Set match timer */
-#define HP_SDC_CMD_SET_DT 0xB7 /* Set delay timer */
-#define HP_SDC_CMD_SET_CT 0xBA /* Set cycle timer */
-#define HP_SDC_CMD_SET_RAMP 0xC1 /* Reset READ_RAM autoinc counter */
-#define HP_SDC_CMD_SET_D0 0xe0 /* Load to i8042 RAM location 0x70 */
-#define HP_SDC_CMD_SET_D1 0xe1 /* Load to i8042 RAM location 0x71 */
-#define HP_SDC_CMD_SET_D2 0xe2 /* Load to i8042 RAM location 0x72 */
-#define HP_SDC_CMD_SET_D3 0xe3 /* Load to i8042 RAM location 0x73 */
-#define HP_SDC_CMD_SET_VT1 0xe4 /* Load to i8042 RAM location 0x74 */
-#define HP_SDC_CMD_SET_VT2 0xe5 /* Load to i8042 RAM location 0x75 */
-#define HP_SDC_CMD_SET_VT3 0xe6 /* Load to i8042 RAM location 0x76 */
-#define HP_SDC_CMD_SET_VT4 0xe7 /* Load to i8042 RAM location 0x77 */
-#define HP_SDC_CMD_SET_KBN 0xe8 /* Load to i8042 RAM location 0x78 */
-#define HP_SDC_CMD_SET_KBC 0xe9 /* Load to i8042 RAM location 0x79 */
-#define HP_SDC_CMD_SET_LPS 0xea /* Load to i8042 RAM location 0x7a */
-#define HP_SDC_CMD_SET_LPC 0xeb /* Load to i8042 RAM location 0x7b */
-#define HP_SDC_CMD_SET_RSV 0xec /* Load to i8042 RAM location 0x7c */
-#define HP_SDC_CMD_SET_LPR 0xed /* Load to i8042 RAM location 0x7d */
-#define HP_SDC_CMD_SET_XTD 0xee /* Load to i8042 RAM location 0x7e */
-#define HP_SDC_CMD_SET_STR 0xef /* Load to i8042 RAM location 0x7f */
-
-#define HP_SDC_CMD_DO_RTCW 0xc2 /* i8042 RAM 0x70 --> RTC */
-#define HP_SDC_CMD_DO_RTCR 0xc3 /* RTC[0x70 0:3] --> irq/status/data */
-#define HP_SDC_CMD_DO_BEEP 0xc4 /* i8042 RAM 0x70-74 --> beeper,VT3 */
-#define HP_SDC_CMD_DO_HIL 0xc5 /* i8042 RAM 0x70-73 -->
- HIL MLC R0,R1 i8042 HIL watchdog */
-
-/* Values used to (de)mangle input/output to/from the HIL MLC */
-#define HP_SDC_DATA 0x40 /* Data from an 8042 register */
-#define HP_SDC_HIL_CMD 0x50 /* Data from HIL MLC R1/8042 */
-#define HP_SDC_HIL_R1MASK 0x0f /* Contents of HIL MLC R1 0:3 */
-#define HP_SDC_HIL_AUTO 0x10 /* Set if POL results from i8042 */
-#define HP_SDC_HIL_ISERR 0x80 /* Has meaning as in next 4 values */
-#define HP_SDC_HIL_RC_DONE 0x80 /* i8042 auto-configured loop */
-#define HP_SDC_HIL_ERR 0x81 /* HIL MLC R2 had a bit set */
-#define HP_SDC_HIL_TO 0x82 /* i8042 HIL watchdog expired */
-#define HP_SDC_HIL_RC 0x84 /* i8042 is auto-configuring loop */
-#define HP_SDC_HIL_DAT 0x60 /* Data from HIL MLC R0 */
-
-
-typedef struct {
- rwlock_t ibf_lock;
- rwlock_t lock; /* user/tasklet lock */
- rwlock_t rtq_lock; /* isr/tasklet lock */
- rwlock_t hook_lock; /* isr/user lock for handler add/del */
-
- unsigned int irq, nmi; /* Our IRQ lines */
- unsigned long base_io, status_io, data_io; /* Our IO ports */
-
- uint8_t im; /* Interrupt mask */
- int set_im; /* Interrupt mask needs to be set. */
-
- int ibf; /* Last known status of IBF flag */
- uint8_t wi; /* current i8042 write index */
- uint8_t r7[4]; /* current i8042[0x70 - 0x74] values */
- uint8_t r11, r7e; /* Values from version/revision regs */
-
- hp_sdc_irqhook *timer, *reg, *hil, *pup, *cooked;
-
-#define HP_SDC_QUEUE_LEN 16
- hp_sdc_transaction *tq[HP_SDC_QUEUE_LEN]; /* All pending read/writes */
-
- int rcurr, rqty; /* Current read transact in process */
- struct timeval rtv; /* Time when current read started */
- int wcurr; /* Current write transact in process */
-
- int dev_err; /* carries status from registration */
-#if defined(__hppa__)
- struct parisc_device *dev;
-#elif defined(__mc68000__)
- void *dev;
-#else
-#error No support for device registration on this arch yet.
-#endif
-
- struct timer_list kicker; /* Keeps below task alive */
- struct tasklet_struct task;
-
-} hp_i8042_sdc;
-
-#endif /* _LINUX_HP_SDC_H */
diff --git a/ANDROID_3.4.5/include/linux/hpet.h b/ANDROID_3.4.5/include/linux/hpet.h
deleted file mode 100644
index 219ca4f6..00000000
--- a/ANDROID_3.4.5/include/linux/hpet.h
+++ /dev/null
@@ -1,131 +0,0 @@
-#ifndef __HPET__
-#define __HPET__ 1
-
-#include <linux/compiler.h>
-
-#ifdef __KERNEL__
-
-/*
- * Offsets into HPET Registers
- */
-
-struct hpet {
- u64 hpet_cap; /* capabilities */
- u64 res0; /* reserved */
- u64 hpet_config; /* configuration */
- u64 res1; /* reserved */
- u64 hpet_isr; /* interrupt status reg */
- u64 res2[25]; /* reserved */
- union { /* main counter */
- u64 _hpet_mc64;
- u32 _hpet_mc32;
- unsigned long _hpet_mc;
- } _u0;
- u64 res3; /* reserved */
- struct hpet_timer {
- u64 hpet_config; /* configuration/cap */
- union { /* timer compare register */
- u64 _hpet_hc64;
- u32 _hpet_hc32;
- unsigned long _hpet_compare;
- } _u1;
- u64 hpet_fsb[2]; /* FSB route */
- } hpet_timers[1];
-};
-
-#define hpet_mc _u0._hpet_mc
-#define hpet_compare _u1._hpet_compare
-
-#define HPET_MAX_TIMERS (32)
-#define HPET_MAX_IRQ (32)
-
-/*
- * HPET general capabilities register
- */
-
-#define HPET_COUNTER_CLK_PERIOD_MASK (0xffffffff00000000ULL)
-#define HPET_COUNTER_CLK_PERIOD_SHIFT (32UL)
-#define HPET_VENDOR_ID_MASK (0x00000000ffff0000ULL)
-#define HPET_VENDOR_ID_SHIFT (16ULL)
-#define HPET_LEG_RT_CAP_MASK (0x8000)
-#define HPET_COUNTER_SIZE_MASK (0x2000)
-#define HPET_NUM_TIM_CAP_MASK (0x1f00)
-#define HPET_NUM_TIM_CAP_SHIFT (8ULL)
-
-/*
- * HPET general configuration register
- */
-
-#define HPET_LEG_RT_CNF_MASK (2UL)
-#define HPET_ENABLE_CNF_MASK (1UL)
-
-
-/*
- * Timer configuration register
- */
-
-#define Tn_INT_ROUTE_CAP_MASK (0xffffffff00000000ULL)
-#define Tn_INT_ROUTE_CAP_SHIFT (32UL)
-#define Tn_FSB_INT_DELCAP_MASK (0x8000UL)
-#define Tn_FSB_INT_DELCAP_SHIFT (15)
-#define Tn_FSB_EN_CNF_MASK (0x4000UL)
-#define Tn_FSB_EN_CNF_SHIFT (14)
-#define Tn_INT_ROUTE_CNF_MASK (0x3e00UL)
-#define Tn_INT_ROUTE_CNF_SHIFT (9)
-#define Tn_32MODE_CNF_MASK (0x0100UL)
-#define Tn_VAL_SET_CNF_MASK (0x0040UL)
-#define Tn_SIZE_CAP_MASK (0x0020UL)
-#define Tn_PER_INT_CAP_MASK (0x0010UL)
-#define Tn_TYPE_CNF_MASK (0x0008UL)
-#define Tn_INT_ENB_CNF_MASK (0x0004UL)
-#define Tn_INT_TYPE_CNF_MASK (0x0002UL)
-
-/*
- * Timer FSB Interrupt Route Register
- */
-
-#define Tn_FSB_INT_ADDR_MASK (0xffffffff00000000ULL)
-#define Tn_FSB_INT_ADDR_SHIFT (32UL)
-#define Tn_FSB_INT_VAL_MASK (0x00000000ffffffffULL)
-
-/*
- * exported interfaces
- */
-
-struct hpet_data {
- unsigned long hd_phys_address;
- void __iomem *hd_address;
- unsigned short hd_nirqs;
- unsigned int hd_state; /* timer allocated */
- unsigned int hd_irq[HPET_MAX_TIMERS];
-};
-
-static inline void hpet_reserve_timer(struct hpet_data *hd, int timer)
-{
- hd->hd_state |= (1 << timer);
- return;
-}
-
-int hpet_alloc(struct hpet_data *);
-
-#endif /* __KERNEL__ */
-
-struct hpet_info {
- unsigned long hi_ireqfreq; /* Hz */
- unsigned long hi_flags; /* information */
- unsigned short hi_hpet;
- unsigned short hi_timer;
-};
-
-#define HPET_INFO_PERIODIC 0x0010 /* periodic-capable comparator */
-
-#define HPET_IE_ON _IO('h', 0x01) /* interrupt on */
-#define HPET_IE_OFF _IO('h', 0x02) /* interrupt off */
-#define HPET_INFO _IOR('h', 0x03, struct hpet_info)
-#define HPET_EPI _IO('h', 0x04) /* enable periodic */
-#define HPET_DPI _IO('h', 0x05) /* disable periodic */
-#define HPET_IRQFREQ _IOW('h', 0x6, unsigned long) /* IRQFREQ usec */
-
-#define MAX_HPET_TBS 8 /* maximum hpet timer blocks */
-
-#endif /* !__HPET__ */
diff --git a/ANDROID_3.4.5/include/linux/hrtimer.h b/ANDROID_3.4.5/include/linux/hrtimer.h
deleted file mode 100644
index fd0dc30c..00000000
--- a/ANDROID_3.4.5/include/linux/hrtimer.h
+++ /dev/null
@@ -1,453 +0,0 @@
-/*
- * include/linux/hrtimer.h
- *
- * hrtimers - High-resolution kernel timers
- *
- * Copyright(C) 2005, Thomas Gleixner <tglx@linutronix.de>
- * Copyright(C) 2005, Red Hat, Inc., Ingo Molnar
- *
- * data type definitions, declarations, prototypes
- *
- * Started by: Thomas Gleixner and Ingo Molnar
- *
- * For licencing details see kernel-base/COPYING
- */
-#ifndef _LINUX_HRTIMER_H
-#define _LINUX_HRTIMER_H
-
-#include <linux/rbtree.h>
-#include <linux/ktime.h>
-#include <linux/init.h>
-#include <linux/list.h>
-#include <linux/wait.h>
-#include <linux/percpu.h>
-#include <linux/timer.h>
-#include <linux/timerqueue.h>
-
-struct hrtimer_clock_base;
-struct hrtimer_cpu_base;
-
-/*
- * Mode arguments of xxx_hrtimer functions:
- */
-enum hrtimer_mode {
- HRTIMER_MODE_ABS = 0x0, /* Time value is absolute */
- HRTIMER_MODE_REL = 0x1, /* Time value is relative to now */
- HRTIMER_MODE_PINNED = 0x02, /* Timer is bound to CPU */
- HRTIMER_MODE_ABS_PINNED = 0x02,
- HRTIMER_MODE_REL_PINNED = 0x03,
-};
-
-/*
- * Return values for the callback function
- */
-enum hrtimer_restart {
- HRTIMER_NORESTART, /* Timer is not restarted */
- HRTIMER_RESTART, /* Timer must be restarted */
-};
-
-/*
- * Values to track state of the timer
- *
- * Possible states:
- *
- * 0x00 inactive
- * 0x01 enqueued into rbtree
- * 0x02 callback function running
- * 0x04 timer is migrated to another cpu
- *
- * Special cases:
- * 0x03 callback function running and enqueued
- * (was requeued on another CPU)
- * 0x05 timer was migrated on CPU hotunplug
- *
- * The "callback function running and enqueued" status is only possible on
- * SMP. It happens for example when a posix timer expired and the callback
- * queued a signal. Between dropping the lock which protects the posix timer
- * and reacquiring the base lock of the hrtimer, another CPU can deliver the
- * signal and rearm the timer. We have to preserve the callback running state,
- * as otherwise the timer could be removed before the softirq code finishes the
- * the handling of the timer.
- *
- * The HRTIMER_STATE_ENQUEUED bit is always or'ed to the current state
- * to preserve the HRTIMER_STATE_CALLBACK in the above scenario. This
- * also affects HRTIMER_STATE_MIGRATE where the preservation is not
- * necessary. HRTIMER_STATE_MIGRATE is cleared after the timer is
- * enqueued on the new cpu.
- *
- * All state transitions are protected by cpu_base->lock.
- */
-#define HRTIMER_STATE_INACTIVE 0x00
-#define HRTIMER_STATE_ENQUEUED 0x01
-#define HRTIMER_STATE_CALLBACK 0x02
-#define HRTIMER_STATE_MIGRATE 0x04
-
-/**
- * struct hrtimer - the basic hrtimer structure
- * @node: timerqueue node, which also manages node.expires,
- * the absolute expiry time in the hrtimers internal
- * representation. The time is related to the clock on
- * which the timer is based. Is setup by adding
- * slack to the _softexpires value. For non range timers
- * identical to _softexpires.
- * @_softexpires: the absolute earliest expiry time of the hrtimer.
- * The time which was given as expiry time when the timer
- * was armed.
- * @function: timer expiry callback function
- * @base: pointer to the timer base (per cpu and per clock)
- * @state: state information (See bit values above)
- * @start_site: timer statistics field to store the site where the timer
- * was started
- * @start_comm: timer statistics field to store the name of the process which
- * started the timer
- * @start_pid: timer statistics field to store the pid of the task which
- * started the timer
- *
- * The hrtimer structure must be initialized by hrtimer_init()
- */
-struct hrtimer {
- struct timerqueue_node node;
- ktime_t _softexpires;
- enum hrtimer_restart (*function)(struct hrtimer *);
- struct hrtimer_clock_base *base;
- unsigned long state;
-#ifdef CONFIG_TIMER_STATS
- int start_pid;
- void *start_site;
- char start_comm[16];
-#endif
-};
-
-/**
- * struct hrtimer_sleeper - simple sleeper structure
- * @timer: embedded timer structure
- * @task: task to wake up
- *
- * task is set to NULL, when the timer expires.
- */
-struct hrtimer_sleeper {
- struct hrtimer timer;
- struct task_struct *task;
-};
-
-/**
- * struct hrtimer_clock_base - the timer base for a specific clock
- * @cpu_base: per cpu clock base
- * @index: clock type index for per_cpu support when moving a
- * timer to a base on another cpu.
- * @clockid: clock id for per_cpu support
- * @active: red black tree root node for the active timers
- * @resolution: the resolution of the clock, in nanoseconds
- * @get_time: function to retrieve the current time of the clock
- * @softirq_time: the time when running the hrtimer queue in the softirq
- * @offset: offset of this clock to the monotonic base
- */
-struct hrtimer_clock_base {
- struct hrtimer_cpu_base *cpu_base;
- int index;
- clockid_t clockid;
- struct timerqueue_head active;
- ktime_t resolution;
- ktime_t (*get_time)(void);
- ktime_t softirq_time;
- ktime_t offset;
-};
-
-enum hrtimer_base_type {
- HRTIMER_BASE_MONOTONIC,
- HRTIMER_BASE_REALTIME,
- HRTIMER_BASE_BOOTTIME,
- HRTIMER_MAX_CLOCK_BASES,
-};
-
-/*
- * struct hrtimer_cpu_base - the per cpu clock bases
- * @lock: lock protecting the base and associated clock bases
- * and timers
- * @active_bases: Bitfield to mark bases with active timers
- * @expires_next: absolute time of the next event which was scheduled
- * via clock_set_next_event()
- * @hres_active: State of high resolution mode
- * @hang_detected: The last hrtimer interrupt detected a hang
- * @nr_events: Total number of hrtimer interrupt events
- * @nr_retries: Total number of hrtimer interrupt retries
- * @nr_hangs: Total number of hrtimer interrupt hangs
- * @max_hang_time: Maximum time spent in hrtimer_interrupt
- * @clock_base: array of clock bases for this cpu
- */
-struct hrtimer_cpu_base {
- raw_spinlock_t lock;
- unsigned long active_bases;
-#ifdef CONFIG_HIGH_RES_TIMERS
- ktime_t expires_next;
- int hres_active;
- int hang_detected;
- unsigned long nr_events;
- unsigned long nr_retries;
- unsigned long nr_hangs;
- ktime_t max_hang_time;
-#endif
- struct hrtimer_clock_base clock_base[HRTIMER_MAX_CLOCK_BASES];
-};
-
-static inline void hrtimer_set_expires(struct hrtimer *timer, ktime_t time)
-{
- timer->node.expires = time;
- timer->_softexpires = time;
-}
-
-static inline void hrtimer_set_expires_range(struct hrtimer *timer, ktime_t time, ktime_t delta)
-{
- timer->_softexpires = time;
- timer->node.expires = ktime_add_safe(time, delta);
-}
-
-static inline void hrtimer_set_expires_range_ns(struct hrtimer *timer, ktime_t time, unsigned long delta)
-{
- timer->_softexpires = time;
- timer->node.expires = ktime_add_safe(time, ns_to_ktime(delta));
-}
-
-static inline void hrtimer_set_expires_tv64(struct hrtimer *timer, s64 tv64)
-{
- timer->node.expires.tv64 = tv64;
- timer->_softexpires.tv64 = tv64;
-}
-
-static inline void hrtimer_add_expires(struct hrtimer *timer, ktime_t time)
-{
- timer->node.expires = ktime_add_safe(timer->node.expires, time);
- timer->_softexpires = ktime_add_safe(timer->_softexpires, time);
-}
-
-static inline void hrtimer_add_expires_ns(struct hrtimer *timer, u64 ns)
-{
- timer->node.expires = ktime_add_ns(timer->node.expires, ns);
- timer->_softexpires = ktime_add_ns(timer->_softexpires, ns);
-}
-
-static inline ktime_t hrtimer_get_expires(const struct hrtimer *timer)
-{
- return timer->node.expires;
-}
-
-static inline ktime_t hrtimer_get_softexpires(const struct hrtimer *timer)
-{
- return timer->_softexpires;
-}
-
-static inline s64 hrtimer_get_expires_tv64(const struct hrtimer *timer)
-{
- return timer->node.expires.tv64;
-}
-static inline s64 hrtimer_get_softexpires_tv64(const struct hrtimer *timer)
-{
- return timer->_softexpires.tv64;
-}
-
-static inline s64 hrtimer_get_expires_ns(const struct hrtimer *timer)
-{
- return ktime_to_ns(timer->node.expires);
-}
-
-static inline ktime_t hrtimer_expires_remaining(const struct hrtimer *timer)
-{
- return ktime_sub(timer->node.expires, timer->base->get_time());
-}
-
-#ifdef CONFIG_HIGH_RES_TIMERS
-struct clock_event_device;
-
-extern void hrtimer_interrupt(struct clock_event_device *dev);
-
-/*
- * In high resolution mode the time reference must be read accurate
- */
-static inline ktime_t hrtimer_cb_get_time(struct hrtimer *timer)
-{
- return timer->base->get_time();
-}
-
-static inline int hrtimer_is_hres_active(struct hrtimer *timer)
-{
- return timer->base->cpu_base->hres_active;
-}
-
-extern void hrtimer_peek_ahead_timers(void);
-
-/*
- * The resolution of the clocks. The resolution value is returned in
- * the clock_getres() system call to give application programmers an
- * idea of the (in)accuracy of timers. Timer values are rounded up to
- * this resolution values.
- */
-# define HIGH_RES_NSEC 1
-# define KTIME_HIGH_RES (ktime_t) { .tv64 = HIGH_RES_NSEC }
-# define MONOTONIC_RES_NSEC HIGH_RES_NSEC
-# define KTIME_MONOTONIC_RES KTIME_HIGH_RES
-
-#else
-
-# define MONOTONIC_RES_NSEC LOW_RES_NSEC
-# define KTIME_MONOTONIC_RES KTIME_LOW_RES
-
-static inline void hrtimer_peek_ahead_timers(void) { }
-
-/*
- * In non high resolution mode the time reference is taken from
- * the base softirq time variable.
- */
-static inline ktime_t hrtimer_cb_get_time(struct hrtimer *timer)
-{
- return timer->base->softirq_time;
-}
-
-static inline int hrtimer_is_hres_active(struct hrtimer *timer)
-{
- return 0;
-}
-#endif
-
-extern void clock_was_set(void);
-#ifdef CONFIG_TIMERFD
-extern void timerfd_clock_was_set(void);
-#else
-static inline void timerfd_clock_was_set(void) { }
-#endif
-extern void hrtimers_resume(void);
-
-extern ktime_t ktime_get(void);
-extern ktime_t ktime_get_real(void);
-extern ktime_t ktime_get_boottime(void);
-extern ktime_t ktime_get_monotonic_offset(void);
-
-DECLARE_PER_CPU(struct tick_device, tick_cpu_device);
-
-
-/* Exported timer functions: */
-
-/* Initialize timers: */
-extern void hrtimer_init(struct hrtimer *timer, clockid_t which_clock,
- enum hrtimer_mode mode);
-
-#ifdef CONFIG_DEBUG_OBJECTS_TIMERS
-extern void hrtimer_init_on_stack(struct hrtimer *timer, clockid_t which_clock,
- enum hrtimer_mode mode);
-
-extern void destroy_hrtimer_on_stack(struct hrtimer *timer);
-#else
-static inline void hrtimer_init_on_stack(struct hrtimer *timer,
- clockid_t which_clock,
- enum hrtimer_mode mode)
-{
- hrtimer_init(timer, which_clock, mode);
-}
-static inline void destroy_hrtimer_on_stack(struct hrtimer *timer) { }
-#endif
-
-/* Basic timer operations: */
-extern int hrtimer_start(struct hrtimer *timer, ktime_t tim,
- const enum hrtimer_mode mode);
-extern int hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim,
- unsigned long range_ns, const enum hrtimer_mode mode);
-extern int
-__hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim,
- unsigned long delta_ns,
- const enum hrtimer_mode mode, int wakeup);
-
-extern int hrtimer_cancel(struct hrtimer *timer);
-extern int hrtimer_try_to_cancel(struct hrtimer *timer);
-
-static inline int hrtimer_start_expires(struct hrtimer *timer,
- enum hrtimer_mode mode)
-{
- unsigned long delta;
- ktime_t soft, hard;
- soft = hrtimer_get_softexpires(timer);
- hard = hrtimer_get_expires(timer);
- delta = ktime_to_ns(ktime_sub(hard, soft));
- return hrtimer_start_range_ns(timer, soft, delta, mode);
-}
-
-static inline int hrtimer_restart(struct hrtimer *timer)
-{
- return hrtimer_start_expires(timer, HRTIMER_MODE_ABS);
-}
-
-/* Query timers: */
-extern ktime_t hrtimer_get_remaining(const struct hrtimer *timer);
-extern int hrtimer_get_res(const clockid_t which_clock, struct timespec *tp);
-
-extern ktime_t hrtimer_get_next_event(void);
-
-/*
- * A timer is active, when it is enqueued into the rbtree or the
- * callback function is running or it's in the state of being migrated
- * to another cpu.
- */
-static inline int hrtimer_active(const struct hrtimer *timer)
-{
- return timer->state != HRTIMER_STATE_INACTIVE;
-}
-
-/*
- * Helper function to check, whether the timer is on one of the queues
- */
-static inline int hrtimer_is_queued(struct hrtimer *timer)
-{
- return timer->state & HRTIMER_STATE_ENQUEUED;
-}
-
-/*
- * Helper function to check, whether the timer is running the callback
- * function
- */
-static inline int hrtimer_callback_running(struct hrtimer *timer)
-{
- return timer->state & HRTIMER_STATE_CALLBACK;
-}
-
-/* Forward a hrtimer so it expires after now: */
-extern u64
-hrtimer_forward(struct hrtimer *timer, ktime_t now, ktime_t interval);
-
-/* Forward a hrtimer so it expires after the hrtimer's current now */
-static inline u64 hrtimer_forward_now(struct hrtimer *timer,
- ktime_t interval)
-{
- return hrtimer_forward(timer, timer->base->get_time(), interval);
-}
-
-/* Precise sleep: */
-extern long hrtimer_nanosleep(struct timespec *rqtp,
- struct timespec __user *rmtp,
- const enum hrtimer_mode mode,
- const clockid_t clockid);
-extern long hrtimer_nanosleep_restart(struct restart_block *restart_block);
-
-extern void hrtimer_init_sleeper(struct hrtimer_sleeper *sl,
- struct task_struct *tsk);
-
-extern int schedule_hrtimeout_range(ktime_t *expires, unsigned long delta,
- const enum hrtimer_mode mode);
-extern int schedule_hrtimeout_range_clock(ktime_t *expires,
- unsigned long delta, const enum hrtimer_mode mode, int clock);
-extern int schedule_hrtimeout(ktime_t *expires, const enum hrtimer_mode mode);
-
-/* Soft interrupt function to run the hrtimer queues: */
-extern void hrtimer_run_queues(void);
-extern void hrtimer_run_pending(void);
-
-/* Bootup initialization: */
-extern void __init hrtimers_init(void);
-
-#if BITS_PER_LONG < 64
-extern u64 ktime_divns(const ktime_t kt, s64 div);
-#else /* BITS_PER_LONG < 64 */
-# define ktime_divns(kt, div) (u64)((kt).tv64 / (div))
-#endif
-
-/* Show pending timers: */
-extern void sysrq_timer_list_show(void);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/hsi/Kbuild b/ANDROID_3.4.5/include/linux/hsi/Kbuild
deleted file mode 100644
index 271a770b..00000000
--- a/ANDROID_3.4.5/include/linux/hsi/Kbuild
+++ /dev/null
@@ -1 +0,0 @@
-header-y += hsi_char.h
diff --git a/ANDROID_3.4.5/include/linux/hsi/hsi.h b/ANDROID_3.4.5/include/linux/hsi/hsi.h
deleted file mode 100644
index 56fae865..00000000
--- a/ANDROID_3.4.5/include/linux/hsi/hsi.h
+++ /dev/null
@@ -1,413 +0,0 @@
-/*
- * HSI core header file.
- *
- * Copyright (C) 2010 Nokia Corporation. All rights reserved.
- *
- * Contact: Carlos Chinea <carlos.chinea@nokia.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.
- *
- * 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 __LINUX_HSI_H__
-#define __LINUX_HSI_H__
-
-#include <linux/device.h>
-#include <linux/mutex.h>
-#include <linux/scatterlist.h>
-#include <linux/list.h>
-#include <linux/module.h>
-#include <linux/notifier.h>
-
-/* HSI message ttype */
-#define HSI_MSG_READ 0
-#define HSI_MSG_WRITE 1
-
-/* HSI configuration values */
-enum {
- HSI_MODE_STREAM = 1,
- HSI_MODE_FRAME,
-};
-
-enum {
- HSI_FLOW_SYNC, /* Synchronized flow */
- HSI_FLOW_PIPE, /* Pipelined flow */
-};
-
-enum {
- HSI_ARB_RR, /* Round-robin arbitration */
- HSI_ARB_PRIO, /* Channel priority arbitration */
-};
-
-#define HSI_MAX_CHANNELS 16
-
-/* HSI message status codes */
-enum {
- HSI_STATUS_COMPLETED, /* Message transfer is completed */
- HSI_STATUS_PENDING, /* Message pending to be read/write (POLL) */
- HSI_STATUS_PROCEEDING, /* Message transfer is ongoing */
- HSI_STATUS_QUEUED, /* Message waiting to be served */
- HSI_STATUS_ERROR, /* Error when message transfer was ongoing */
-};
-
-/* HSI port event codes */
-enum {
- HSI_EVENT_START_RX,
- HSI_EVENT_STOP_RX,
-};
-
-/**
- * struct hsi_config - Configuration for RX/TX HSI modules
- * @mode: Bit transmission mode (STREAM or FRAME)
- * @channels: Number of channels to use [1..16]
- * @speed: Max bit transmission speed (Kbit/s)
- * @flow: RX flow type (SYNCHRONIZED or PIPELINE)
- * @arb_mode: Arbitration mode for TX frame (Round robin, priority)
- */
-struct hsi_config {
- unsigned int mode;
- unsigned int channels;
- unsigned int speed;
- union {
- unsigned int flow; /* RX only */
- unsigned int arb_mode; /* TX only */
- };
-};
-
-/**
- * struct hsi_board_info - HSI client board info
- * @name: Name for the HSI device
- * @hsi_id: HSI controller id where the client sits
- * @port: Port number in the controller where the client sits
- * @tx_cfg: HSI TX configuration
- * @rx_cfg: HSI RX configuration
- * @platform_data: Platform related data
- * @archdata: Architecture-dependent device data
- */
-struct hsi_board_info {
- const char *name;
- unsigned int hsi_id;
- unsigned int port;
- struct hsi_config tx_cfg;
- struct hsi_config rx_cfg;
- void *platform_data;
- struct dev_archdata *archdata;
-};
-
-#ifdef CONFIG_HSI_BOARDINFO
-extern int hsi_register_board_info(struct hsi_board_info const *info,
- unsigned int len);
-#else
-static inline int hsi_register_board_info(struct hsi_board_info const *info,
- unsigned int len)
-{
- return 0;
-}
-#endif /* CONFIG_HSI_BOARDINFO */
-
-/**
- * struct hsi_client - HSI client attached to an HSI port
- * @device: Driver model representation of the device
- * @tx_cfg: HSI TX configuration
- * @rx_cfg: HSI RX configuration
- * @e_handler: Callback for handling port events (RX Wake High/Low)
- * @pclaimed: Keeps tracks if the clients claimed its associated HSI port
- * @nb: Notifier block for port events
- */
-struct hsi_client {
- struct device device;
- struct hsi_config tx_cfg;
- struct hsi_config rx_cfg;
- /* private: */
- void (*ehandler)(struct hsi_client *, unsigned long);
- unsigned int pclaimed:1;
- struct notifier_block nb;
-};
-
-#define to_hsi_client(dev) container_of(dev, struct hsi_client, device)
-
-static inline void hsi_client_set_drvdata(struct hsi_client *cl, void *data)
-{
- dev_set_drvdata(&cl->device, data);
-}
-
-static inline void *hsi_client_drvdata(struct hsi_client *cl)
-{
- return dev_get_drvdata(&cl->device);
-}
-
-int hsi_register_port_event(struct hsi_client *cl,
- void (*handler)(struct hsi_client *, unsigned long));
-int hsi_unregister_port_event(struct hsi_client *cl);
-
-/**
- * struct hsi_client_driver - Driver associated to an HSI client
- * @driver: Driver model representation of the driver
- */
-struct hsi_client_driver {
- struct device_driver driver;
-};
-
-#define to_hsi_client_driver(drv) container_of(drv, struct hsi_client_driver,\
- driver)
-
-int hsi_register_client_driver(struct hsi_client_driver *drv);
-
-static inline void hsi_unregister_client_driver(struct hsi_client_driver *drv)
-{
- driver_unregister(&drv->driver);
-}
-
-/**
- * struct hsi_msg - HSI message descriptor
- * @link: Free to use by the current descriptor owner
- * @cl: HSI device client that issues the transfer
- * @sgt: Head of the scatterlist array
- * @context: Client context data associated to the transfer
- * @complete: Transfer completion callback
- * @destructor: Destructor to free resources when flushing
- * @status: Status of the transfer when completed
- * @actual_len: Actual length of data transfered on completion
- * @channel: Channel were to TX/RX the message
- * @ttype: Transfer type (TX if set, RX otherwise)
- * @break_frame: if true HSI will send/receive a break frame. Data buffers are
- * ignored in the request.
- */
-struct hsi_msg {
- struct list_head link;
- struct hsi_client *cl;
- struct sg_table sgt;
- void *context;
-
- void (*complete)(struct hsi_msg *msg);
- void (*destructor)(struct hsi_msg *msg);
-
- int status;
- unsigned int actual_len;
- unsigned int channel;
- unsigned int ttype:1;
- unsigned int break_frame:1;
-};
-
-struct hsi_msg *hsi_alloc_msg(unsigned int n_frag, gfp_t flags);
-void hsi_free_msg(struct hsi_msg *msg);
-
-/**
- * struct hsi_port - HSI port device
- * @device: Driver model representation of the device
- * @tx_cfg: Current TX path configuration
- * @rx_cfg: Current RX path configuration
- * @num: Port number
- * @shared: Set when port can be shared by different clients
- * @claimed: Reference count of clients which claimed the port
- * @lock: Serialize port claim
- * @async: Asynchronous transfer callback
- * @setup: Callback to set the HSI client configuration
- * @flush: Callback to clean the HW state and destroy all pending transfers
- * @start_tx: Callback to inform that a client wants to TX data
- * @stop_tx: Callback to inform that a client no longer wishes to TX data
- * @release: Callback to inform that a client no longer uses the port
- * @n_head: Notifier chain for signaling port events to the clients.
- */
-struct hsi_port {
- struct device device;
- struct hsi_config tx_cfg;
- struct hsi_config rx_cfg;
- unsigned int num;
- unsigned int shared:1;
- int claimed;
- struct mutex lock;
- int (*async)(struct hsi_msg *msg);
- int (*setup)(struct hsi_client *cl);
- int (*flush)(struct hsi_client *cl);
- int (*start_tx)(struct hsi_client *cl);
- int (*stop_tx)(struct hsi_client *cl);
- int (*release)(struct hsi_client *cl);
- /* private */
- struct atomic_notifier_head n_head;
-};
-
-#define to_hsi_port(dev) container_of(dev, struct hsi_port, device)
-#define hsi_get_port(cl) to_hsi_port((cl)->device.parent)
-
-int hsi_event(struct hsi_port *port, unsigned long event);
-int hsi_claim_port(struct hsi_client *cl, unsigned int share);
-void hsi_release_port(struct hsi_client *cl);
-
-static inline int hsi_port_claimed(struct hsi_client *cl)
-{
- return cl->pclaimed;
-}
-
-static inline void hsi_port_set_drvdata(struct hsi_port *port, void *data)
-{
- dev_set_drvdata(&port->device, data);
-}
-
-static inline void *hsi_port_drvdata(struct hsi_port *port)
-{
- return dev_get_drvdata(&port->device);
-}
-
-/**
- * struct hsi_controller - HSI controller device
- * @device: Driver model representation of the device
- * @owner: Pointer to the module owning the controller
- * @id: HSI controller ID
- * @num_ports: Number of ports in the HSI controller
- * @port: Array of HSI ports
- */
-struct hsi_controller {
- struct device device;
- struct module *owner;
- unsigned int id;
- unsigned int num_ports;
- struct hsi_port **port;
-};
-
-#define to_hsi_controller(dev) container_of(dev, struct hsi_controller, device)
-
-struct hsi_controller *hsi_alloc_controller(unsigned int n_ports, gfp_t flags);
-void hsi_put_controller(struct hsi_controller *hsi);
-int hsi_register_controller(struct hsi_controller *hsi);
-void hsi_unregister_controller(struct hsi_controller *hsi);
-
-static inline void hsi_controller_set_drvdata(struct hsi_controller *hsi,
- void *data)
-{
- dev_set_drvdata(&hsi->device, data);
-}
-
-static inline void *hsi_controller_drvdata(struct hsi_controller *hsi)
-{
- return dev_get_drvdata(&hsi->device);
-}
-
-static inline struct hsi_port *hsi_find_port_num(struct hsi_controller *hsi,
- unsigned int num)
-{
- return (num < hsi->num_ports) ? hsi->port[num] : NULL;
-}
-
-/*
- * API for HSI clients
- */
-int hsi_async(struct hsi_client *cl, struct hsi_msg *msg);
-
-/**
- * hsi_id - Get HSI controller ID associated to a client
- * @cl: Pointer to a HSI client
- *
- * Return the controller id where the client is attached to
- */
-static inline unsigned int hsi_id(struct hsi_client *cl)
-{
- return to_hsi_controller(cl->device.parent->parent)->id;
-}
-
-/**
- * hsi_port_id - Gets the port number a client is attached to
- * @cl: Pointer to HSI client
- *
- * Return the port number associated to the client
- */
-static inline unsigned int hsi_port_id(struct hsi_client *cl)
-{
- return to_hsi_port(cl->device.parent)->num;
-}
-
-/**
- * hsi_setup - Configure the client's port
- * @cl: Pointer to the HSI client
- *
- * When sharing ports, clients should either relay on a single
- * client setup or have the same setup for all of them.
- *
- * Return -errno on failure, 0 on success
- */
-static inline int hsi_setup(struct hsi_client *cl)
-{
- if (!hsi_port_claimed(cl))
- return -EACCES;
- return hsi_get_port(cl)->setup(cl);
-}
-
-/**
- * hsi_flush - Flush all pending transactions on the client's port
- * @cl: Pointer to the HSI client
- *
- * This function will destroy all pending hsi_msg in the port and reset
- * the HW port so it is ready to receive and transmit from a clean state.
- *
- * Return -errno on failure, 0 on success
- */
-static inline int hsi_flush(struct hsi_client *cl)
-{
- if (!hsi_port_claimed(cl))
- return -EACCES;
- return hsi_get_port(cl)->flush(cl);
-}
-
-/**
- * hsi_async_read - Submit a read transfer
- * @cl: Pointer to the HSI client
- * @msg: HSI message descriptor of the transfer
- *
- * Return -errno on failure, 0 on success
- */
-static inline int hsi_async_read(struct hsi_client *cl, struct hsi_msg *msg)
-{
- msg->ttype = HSI_MSG_READ;
- return hsi_async(cl, msg);
-}
-
-/**
- * hsi_async_write - Submit a write transfer
- * @cl: Pointer to the HSI client
- * @msg: HSI message descriptor of the transfer
- *
- * Return -errno on failure, 0 on success
- */
-static inline int hsi_async_write(struct hsi_client *cl, struct hsi_msg *msg)
-{
- msg->ttype = HSI_MSG_WRITE;
- return hsi_async(cl, msg);
-}
-
-/**
- * hsi_start_tx - Signal the port that the client wants to start a TX
- * @cl: Pointer to the HSI client
- *
- * Return -errno on failure, 0 on success
- */
-static inline int hsi_start_tx(struct hsi_client *cl)
-{
- if (!hsi_port_claimed(cl))
- return -EACCES;
- return hsi_get_port(cl)->start_tx(cl);
-}
-
-/**
- * hsi_stop_tx - Signal the port that the client no longer wants to transmit
- * @cl: Pointer to the HSI client
- *
- * Return -errno on failure, 0 on success
- */
-static inline int hsi_stop_tx(struct hsi_client *cl)
-{
- if (!hsi_port_claimed(cl))
- return -EACCES;
- return hsi_get_port(cl)->stop_tx(cl);
-}
-#endif /* __LINUX_HSI_H__ */
diff --git a/ANDROID_3.4.5/include/linux/hsi/hsi_char.h b/ANDROID_3.4.5/include/linux/hsi/hsi_char.h
deleted file mode 100644
index 76160b4f..00000000
--- a/ANDROID_3.4.5/include/linux/hsi/hsi_char.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Part of the HSI character device driver.
- *
- * Copyright (C) 2010 Nokia Corporation. All rights reserved.
- *
- * Contact: Andras Domokos <andras.domokos at nokia.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.
- *
- * 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 __HSI_CHAR_H
-#define __HSI_CHAR_H
-
-#define HSI_CHAR_MAGIC 'k'
-#define HSC_IOW(num, dtype) _IOW(HSI_CHAR_MAGIC, num, dtype)
-#define HSC_IOR(num, dtype) _IOR(HSI_CHAR_MAGIC, num, dtype)
-#define HSC_IOWR(num, dtype) _IOWR(HSI_CHAR_MAGIC, num, dtype)
-#define HSC_IO(num) _IO(HSI_CHAR_MAGIC, num)
-
-#define HSC_RESET HSC_IO(16)
-#define HSC_SET_PM HSC_IO(17)
-#define HSC_SEND_BREAK HSC_IO(18)
-#define HSC_SET_RX HSC_IOW(19, struct hsc_rx_config)
-#define HSC_GET_RX HSC_IOW(20, struct hsc_rx_config)
-#define HSC_SET_TX HSC_IOW(21, struct hsc_tx_config)
-#define HSC_GET_TX HSC_IOW(22, struct hsc_tx_config)
-
-#define HSC_PM_DISABLE 0
-#define HSC_PM_ENABLE 1
-
-#define HSC_MODE_STREAM 1
-#define HSC_MODE_FRAME 2
-#define HSC_FLOW_SYNC 0
-#define HSC_ARB_RR 0
-#define HSC_ARB_PRIO 1
-
-struct hsc_rx_config {
- uint32_t mode;
- uint32_t flow;
- uint32_t channels;
-};
-
-struct hsc_tx_config {
- uint32_t mode;
- uint32_t channels;
- uint32_t speed;
- uint32_t arb_mode;
-};
-
-#endif /* __HSI_CHAR_H */
diff --git a/ANDROID_3.4.5/include/linux/htcpld.h b/ANDROID_3.4.5/include/linux/htcpld.h
deleted file mode 100644
index ab3f6cb4..00000000
--- a/ANDROID_3.4.5/include/linux/htcpld.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef __LINUX_HTCPLD_H
-#define __LINUX_HTCPLD_H
-
-struct htcpld_chip_platform_data {
- unsigned int addr;
- unsigned int reset;
- unsigned int num_gpios;
- unsigned int gpio_out_base;
- unsigned int gpio_in_base;
- unsigned int irq_base;
- unsigned int num_irqs;
-};
-
-struct htcpld_core_platform_data {
- unsigned int int_reset_gpio_hi;
- unsigned int int_reset_gpio_lo;
- unsigned int i2c_adapter_id;
-
- struct htcpld_chip_platform_data *chip;
- unsigned int num_chip;
-};
-
-#endif /* __LINUX_HTCPLD_H */
-
diff --git a/ANDROID_3.4.5/include/linux/htirq.h b/ANDROID_3.4.5/include/linux/htirq.h
deleted file mode 100644
index 70a1dbbf..00000000
--- a/ANDROID_3.4.5/include/linux/htirq.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef LINUX_HTIRQ_H
-#define LINUX_HTIRQ_H
-
-struct ht_irq_msg {
- u32 address_lo; /* low 32 bits of the ht irq message */
- u32 address_hi; /* high 32 bits of the it irq message */
-};
-
-/* Helper functions.. */
-void fetch_ht_irq_msg(unsigned int irq, struct ht_irq_msg *msg);
-void write_ht_irq_msg(unsigned int irq, struct ht_irq_msg *msg);
-struct irq_data;
-void mask_ht_irq(struct irq_data *data);
-void unmask_ht_irq(struct irq_data *data);
-
-/* The arch hook for getting things started */
-int arch_setup_ht_irq(unsigned int irq, struct pci_dev *dev);
-
-/* For drivers of buggy hardware */
-typedef void (ht_irq_update_t)(struct pci_dev *dev, int irq,
- struct ht_irq_msg *msg);
-int __ht_create_irq(struct pci_dev *dev, int idx, ht_irq_update_t *update);
-
-#endif /* LINUX_HTIRQ_H */
diff --git a/ANDROID_3.4.5/include/linux/huge_mm.h b/ANDROID_3.4.5/include/linux/huge_mm.h
deleted file mode 100644
index c8af7a2e..00000000
--- a/ANDROID_3.4.5/include/linux/huge_mm.h
+++ /dev/null
@@ -1,199 +0,0 @@
-#ifndef _LINUX_HUGE_MM_H
-#define _LINUX_HUGE_MM_H
-
-extern int do_huge_pmd_anonymous_page(struct mm_struct *mm,
- struct vm_area_struct *vma,
- unsigned long address, pmd_t *pmd,
- unsigned int flags);
-extern int copy_huge_pmd(struct mm_struct *dst_mm, struct mm_struct *src_mm,
- pmd_t *dst_pmd, pmd_t *src_pmd, unsigned long addr,
- struct vm_area_struct *vma);
-extern int do_huge_pmd_wp_page(struct mm_struct *mm, struct vm_area_struct *vma,
- unsigned long address, pmd_t *pmd,
- pmd_t orig_pmd);
-extern pgtable_t get_pmd_huge_pte(struct mm_struct *mm);
-extern struct page *follow_trans_huge_pmd(struct mm_struct *mm,
- unsigned long addr,
- pmd_t *pmd,
- unsigned int flags);
-extern int zap_huge_pmd(struct mmu_gather *tlb,
- struct vm_area_struct *vma,
- pmd_t *pmd, unsigned long addr);
-extern int mincore_huge_pmd(struct vm_area_struct *vma, pmd_t *pmd,
- unsigned long addr, unsigned long end,
- unsigned char *vec);
-extern int move_huge_pmd(struct vm_area_struct *vma,
- struct vm_area_struct *new_vma,
- unsigned long old_addr,
- unsigned long new_addr, unsigned long old_end,
- pmd_t *old_pmd, pmd_t *new_pmd);
-extern int change_huge_pmd(struct vm_area_struct *vma, pmd_t *pmd,
- unsigned long addr, pgprot_t newprot);
-
-enum transparent_hugepage_flag {
- TRANSPARENT_HUGEPAGE_FLAG,
- TRANSPARENT_HUGEPAGE_REQ_MADV_FLAG,
- TRANSPARENT_HUGEPAGE_DEFRAG_FLAG,
- TRANSPARENT_HUGEPAGE_DEFRAG_REQ_MADV_FLAG,
- TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG,
-#ifdef CONFIG_DEBUG_VM
- TRANSPARENT_HUGEPAGE_DEBUG_COW_FLAG,
-#endif
-};
-
-enum page_check_address_pmd_flag {
- PAGE_CHECK_ADDRESS_PMD_FLAG,
- PAGE_CHECK_ADDRESS_PMD_NOTSPLITTING_FLAG,
- PAGE_CHECK_ADDRESS_PMD_SPLITTING_FLAG,
-};
-extern pmd_t *page_check_address_pmd(struct page *page,
- struct mm_struct *mm,
- unsigned long address,
- enum page_check_address_pmd_flag flag);
-
-#define HPAGE_PMD_ORDER (HPAGE_PMD_SHIFT-PAGE_SHIFT)
-#define HPAGE_PMD_NR (1<<HPAGE_PMD_ORDER)
-
-#ifdef CONFIG_TRANSPARENT_HUGEPAGE
-#define HPAGE_PMD_SHIFT HPAGE_SHIFT
-#define HPAGE_PMD_MASK HPAGE_MASK
-#define HPAGE_PMD_SIZE HPAGE_SIZE
-
-#define transparent_hugepage_enabled(__vma) \
- ((transparent_hugepage_flags & \
- (1<<TRANSPARENT_HUGEPAGE_FLAG) || \
- (transparent_hugepage_flags & \
- (1<<TRANSPARENT_HUGEPAGE_REQ_MADV_FLAG) && \
- ((__vma)->vm_flags & VM_HUGEPAGE))) && \
- !((__vma)->vm_flags & VM_NOHUGEPAGE) && \
- !is_vma_temporary_stack(__vma))
-#define transparent_hugepage_defrag(__vma) \
- ((transparent_hugepage_flags & \
- (1<<TRANSPARENT_HUGEPAGE_DEFRAG_FLAG)) || \
- (transparent_hugepage_flags & \
- (1<<TRANSPARENT_HUGEPAGE_DEFRAG_REQ_MADV_FLAG) && \
- (__vma)->vm_flags & VM_HUGEPAGE))
-#ifdef CONFIG_DEBUG_VM
-#define transparent_hugepage_debug_cow() \
- (transparent_hugepage_flags & \
- (1<<TRANSPARENT_HUGEPAGE_DEBUG_COW_FLAG))
-#else /* CONFIG_DEBUG_VM */
-#define transparent_hugepage_debug_cow() 0
-#endif /* CONFIG_DEBUG_VM */
-
-extern unsigned long transparent_hugepage_flags;
-extern int copy_pte_range(struct mm_struct *dst_mm, struct mm_struct *src_mm,
- pmd_t *dst_pmd, pmd_t *src_pmd,
- struct vm_area_struct *vma,
- unsigned long addr, unsigned long end);
-extern int handle_pte_fault(struct mm_struct *mm,
- struct vm_area_struct *vma, unsigned long address,
- pte_t *pte, pmd_t *pmd, unsigned int flags);
-extern int split_huge_page(struct page *page);
-extern void __split_huge_page_pmd(struct mm_struct *mm, pmd_t *pmd);
-#define split_huge_page_pmd(__mm, __pmd) \
- do { \
- pmd_t *____pmd = (__pmd); \
- if (unlikely(pmd_trans_huge(*____pmd))) \
- __split_huge_page_pmd(__mm, ____pmd); \
- } while (0)
-#define wait_split_huge_page(__anon_vma, __pmd) \
- do { \
- pmd_t *____pmd = (__pmd); \
- anon_vma_lock(__anon_vma); \
- anon_vma_unlock(__anon_vma); \
- BUG_ON(pmd_trans_splitting(*____pmd) || \
- pmd_trans_huge(*____pmd)); \
- } while (0)
-#if HPAGE_PMD_ORDER > MAX_ORDER
-#error "hugepages can't be allocated by the buddy allocator"
-#endif
-extern int hugepage_madvise(struct vm_area_struct *vma,
- unsigned long *vm_flags, int advice);
-extern void __vma_adjust_trans_huge(struct vm_area_struct *vma,
- unsigned long start,
- unsigned long end,
- long adjust_next);
-extern int __pmd_trans_huge_lock(pmd_t *pmd,
- struct vm_area_struct *vma);
-/* mmap_sem must be held on entry */
-static inline int pmd_trans_huge_lock(pmd_t *pmd,
- struct vm_area_struct *vma)
-{
- VM_BUG_ON(!rwsem_is_locked(&vma->vm_mm->mmap_sem));
- if (pmd_trans_huge(*pmd))
- return __pmd_trans_huge_lock(pmd, vma);
- else
- return 0;
-}
-static inline void vma_adjust_trans_huge(struct vm_area_struct *vma,
- unsigned long start,
- unsigned long end,
- long adjust_next)
-{
- if (!vma->anon_vma || vma->vm_ops)
- return;
- __vma_adjust_trans_huge(vma, start, end, adjust_next);
-}
-static inline int hpage_nr_pages(struct page *page)
-{
- if (unlikely(PageTransHuge(page)))
- return HPAGE_PMD_NR;
- return 1;
-}
-static inline struct page *compound_trans_head(struct page *page)
-{
- if (PageTail(page)) {
- struct page *head;
- head = page->first_page;
- smp_rmb();
- /*
- * head may be a dangling pointer.
- * __split_huge_page_refcount clears PageTail before
- * overwriting first_page, so if PageTail is still
- * there it means the head pointer isn't dangling.
- */
- if (PageTail(page))
- return head;
- }
- return page;
-}
-#else /* CONFIG_TRANSPARENT_HUGEPAGE */
-#define HPAGE_PMD_SHIFT ({ BUILD_BUG(); 0; })
-#define HPAGE_PMD_MASK ({ BUILD_BUG(); 0; })
-#define HPAGE_PMD_SIZE ({ BUILD_BUG(); 0; })
-
-#define hpage_nr_pages(x) 1
-
-#define transparent_hugepage_enabled(__vma) 0
-
-#define transparent_hugepage_flags 0UL
-static inline int split_huge_page(struct page *page)
-{
- return 0;
-}
-#define split_huge_page_pmd(__mm, __pmd) \
- do { } while (0)
-#define wait_split_huge_page(__anon_vma, __pmd) \
- do { } while (0)
-#define compound_trans_head(page) compound_head(page)
-static inline int hugepage_madvise(struct vm_area_struct *vma,
- unsigned long *vm_flags, int advice)
-{
- BUG();
- return 0;
-}
-static inline void vma_adjust_trans_huge(struct vm_area_struct *vma,
- unsigned long start,
- unsigned long end,
- long adjust_next)
-{
-}
-static inline int pmd_trans_huge_lock(pmd_t *pmd,
- struct vm_area_struct *vma)
-{
- return 0;
-}
-#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
-
-#endif /* _LINUX_HUGE_MM_H */
diff --git a/ANDROID_3.4.5/include/linux/hugetlb.h b/ANDROID_3.4.5/include/linux/hugetlb.h
deleted file mode 100644
index 000837e1..00000000
--- a/ANDROID_3.4.5/include/linux/hugetlb.h
+++ /dev/null
@@ -1,317 +0,0 @@
-#ifndef _LINUX_HUGETLB_H
-#define _LINUX_HUGETLB_H
-
-#include <linux/mm_types.h>
-#include <linux/fs.h>
-#include <linux/hugetlb_inline.h>
-
-struct ctl_table;
-struct user_struct;
-
-#ifdef CONFIG_HUGETLB_PAGE
-
-#include <linux/mempolicy.h>
-#include <linux/shm.h>
-#include <asm/tlbflush.h>
-
-struct hugepage_subpool {
- spinlock_t lock;
- long count;
- long max_hpages, used_hpages;
-};
-
-struct hugepage_subpool *hugepage_new_subpool(long nr_blocks);
-void hugepage_put_subpool(struct hugepage_subpool *spool);
-
-int PageHuge(struct page *page);
-
-void reset_vma_resv_huge_pages(struct vm_area_struct *vma);
-int hugetlb_sysctl_handler(struct ctl_table *, int, void __user *, size_t *, loff_t *);
-int hugetlb_overcommit_handler(struct ctl_table *, int, void __user *, size_t *, loff_t *);
-int hugetlb_treat_movable_handler(struct ctl_table *, int, void __user *, size_t *, loff_t *);
-
-#ifdef CONFIG_NUMA
-int hugetlb_mempolicy_sysctl_handler(struct ctl_table *, int,
- void __user *, size_t *, loff_t *);
-#endif
-
-int copy_hugetlb_page_range(struct mm_struct *, struct mm_struct *, struct vm_area_struct *);
-int follow_hugetlb_page(struct mm_struct *, struct vm_area_struct *,
- struct page **, struct vm_area_struct **,
- unsigned long *, int *, int, unsigned int flags);
-void unmap_hugepage_range(struct vm_area_struct *,
- unsigned long, unsigned long, struct page *);
-void __unmap_hugepage_range(struct vm_area_struct *,
- unsigned long, unsigned long, struct page *);
-int hugetlb_prefault(struct address_space *, struct vm_area_struct *);
-void hugetlb_report_meminfo(struct seq_file *);
-int hugetlb_report_node_meminfo(int, char *);
-unsigned long hugetlb_total_pages(void);
-int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma,
- unsigned long address, unsigned int flags);
-int hugetlb_reserve_pages(struct inode *inode, long from, long to,
- struct vm_area_struct *vma,
- vm_flags_t vm_flags);
-void hugetlb_unreserve_pages(struct inode *inode, long offset, long freed);
-int dequeue_hwpoisoned_huge_page(struct page *page);
-void copy_huge_page(struct page *dst, struct page *src);
-
-extern unsigned long hugepages_treat_as_movable;
-extern const unsigned long hugetlb_zero, hugetlb_infinity;
-extern int sysctl_hugetlb_shm_group;
-extern struct list_head huge_boot_pages;
-
-/* arch callbacks */
-
-pte_t *huge_pte_alloc(struct mm_struct *mm,
- unsigned long addr, unsigned long sz);
-pte_t *huge_pte_offset(struct mm_struct *mm, unsigned long addr);
-int huge_pmd_unshare(struct mm_struct *mm, unsigned long *addr, pte_t *ptep);
-struct page *follow_huge_addr(struct mm_struct *mm, unsigned long address,
- int write);
-struct page *follow_huge_pmd(struct mm_struct *mm, unsigned long address,
- pmd_t *pmd, int write);
-struct page *follow_huge_pud(struct mm_struct *mm, unsigned long address,
- pud_t *pud, int write);
-int pmd_huge(pmd_t pmd);
-int pud_huge(pud_t pmd);
-void hugetlb_change_protection(struct vm_area_struct *vma,
- unsigned long address, unsigned long end, pgprot_t newprot);
-
-#else /* !CONFIG_HUGETLB_PAGE */
-
-static inline int PageHuge(struct page *page)
-{
- return 0;
-}
-
-static inline void reset_vma_resv_huge_pages(struct vm_area_struct *vma)
-{
-}
-
-static inline unsigned long hugetlb_total_pages(void)
-{
- return 0;
-}
-
-#define follow_hugetlb_page(m,v,p,vs,a,b,i,w) ({ BUG(); 0; })
-#define follow_huge_addr(mm, addr, write) ERR_PTR(-EINVAL)
-#define copy_hugetlb_page_range(src, dst, vma) ({ BUG(); 0; })
-#define hugetlb_prefault(mapping, vma) ({ BUG(); 0; })
-#define unmap_hugepage_range(vma, start, end, page) BUG()
-static inline void hugetlb_report_meminfo(struct seq_file *m)
-{
-}
-#define hugetlb_report_node_meminfo(n, buf) 0
-#define follow_huge_pmd(mm, addr, pmd, write) NULL
-#define follow_huge_pud(mm, addr, pud, write) NULL
-#define prepare_hugepage_range(file, addr, len) (-EINVAL)
-#define pmd_huge(x) 0
-#define pud_huge(x) 0
-#define is_hugepage_only_range(mm, addr, len) 0
-#define hugetlb_free_pgd_range(tlb, addr, end, floor, ceiling) ({BUG(); 0; })
-#define hugetlb_fault(mm, vma, addr, flags) ({ BUG(); 0; })
-#define huge_pte_offset(mm, address) 0
-#define dequeue_hwpoisoned_huge_page(page) 0
-static inline void copy_huge_page(struct page *dst, struct page *src)
-{
-}
-
-#define hugetlb_change_protection(vma, address, end, newprot)
-
-#endif /* !CONFIG_HUGETLB_PAGE */
-
-#define HUGETLB_ANON_FILE "anon_hugepage"
-
-enum {
- /*
- * The file will be used as an shm file so shmfs accounting rules
- * apply
- */
- HUGETLB_SHMFS_INODE = 1,
- /*
- * The file is being created on the internal vfs mount and shmfs
- * accounting rules do not apply
- */
- HUGETLB_ANONHUGE_INODE = 2,
-};
-
-#ifdef CONFIG_HUGETLBFS
-struct hugetlbfs_sb_info {
- long max_inodes; /* inodes allowed */
- long free_inodes; /* inodes free */
- spinlock_t stat_lock;
- struct hstate *hstate;
- struct hugepage_subpool *spool;
-};
-
-static inline struct hugetlbfs_sb_info *HUGETLBFS_SB(struct super_block *sb)
-{
- return sb->s_fs_info;
-}
-
-extern const struct file_operations hugetlbfs_file_operations;
-extern const struct vm_operations_struct hugetlb_vm_ops;
-struct file *hugetlb_file_setup(const char *name, unsigned long addr,
- size_t size, vm_flags_t acct,
- struct user_struct **user, int creat_flags);
-
-static inline int is_file_hugepages(struct file *file)
-{
- if (file->f_op == &hugetlbfs_file_operations)
- return 1;
- if (is_file_shm_hugepages(file))
- return 1;
-
- return 0;
-}
-
-#else /* !CONFIG_HUGETLBFS */
-
-#define is_file_hugepages(file) 0
-static inline struct file *
-hugetlb_file_setup(const char *name, unsigned long addr, size_t size,
- vm_flags_t acctflag, struct user_struct **user, int creat_flags)
-{
- return ERR_PTR(-ENOSYS);
-}
-
-#endif /* !CONFIG_HUGETLBFS */
-
-#ifdef HAVE_ARCH_HUGETLB_UNMAPPED_AREA
-unsigned long hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
- unsigned long len, unsigned long pgoff,
- unsigned long flags);
-#endif /* HAVE_ARCH_HUGETLB_UNMAPPED_AREA */
-
-#ifdef CONFIG_HUGETLB_PAGE
-
-#define HSTATE_NAME_LEN 32
-/* Defines one hugetlb page size */
-struct hstate {
- int next_nid_to_alloc;
- int next_nid_to_free;
- unsigned int order;
- unsigned long mask;
- unsigned long max_huge_pages;
- unsigned long nr_huge_pages;
- unsigned long free_huge_pages;
- unsigned long resv_huge_pages;
- unsigned long surplus_huge_pages;
- unsigned long nr_overcommit_huge_pages;
- struct list_head hugepage_freelists[MAX_NUMNODES];
- unsigned int nr_huge_pages_node[MAX_NUMNODES];
- unsigned int free_huge_pages_node[MAX_NUMNODES];
- unsigned int surplus_huge_pages_node[MAX_NUMNODES];
- char name[HSTATE_NAME_LEN];
-};
-
-struct huge_bootmem_page {
- struct list_head list;
- struct hstate *hstate;
-#ifdef CONFIG_HIGHMEM
- phys_addr_t phys;
-#endif
-};
-
-struct page *alloc_huge_page_node(struct hstate *h, int nid);
-
-/* arch callback */
-int __init alloc_bootmem_huge_page(struct hstate *h);
-
-void __init hugetlb_add_hstate(unsigned order);
-struct hstate *size_to_hstate(unsigned long size);
-
-#ifndef HUGE_MAX_HSTATE
-#define HUGE_MAX_HSTATE 1
-#endif
-
-extern struct hstate hstates[HUGE_MAX_HSTATE];
-extern unsigned int default_hstate_idx;
-
-#define default_hstate (hstates[default_hstate_idx])
-
-static inline struct hstate *hstate_inode(struct inode *i)
-{
- struct hugetlbfs_sb_info *hsb;
- hsb = HUGETLBFS_SB(i->i_sb);
- return hsb->hstate;
-}
-
-static inline struct hstate *hstate_file(struct file *f)
-{
- return hstate_inode(f->f_dentry->d_inode);
-}
-
-static inline struct hstate *hstate_vma(struct vm_area_struct *vma)
-{
- return hstate_file(vma->vm_file);
-}
-
-static inline unsigned long huge_page_size(struct hstate *h)
-{
- return (unsigned long)PAGE_SIZE << h->order;
-}
-
-extern unsigned long vma_kernel_pagesize(struct vm_area_struct *vma);
-
-extern unsigned long vma_mmu_pagesize(struct vm_area_struct *vma);
-
-static inline unsigned long huge_page_mask(struct hstate *h)
-{
- return h->mask;
-}
-
-static inline unsigned int huge_page_order(struct hstate *h)
-{
- return h->order;
-}
-
-static inline unsigned huge_page_shift(struct hstate *h)
-{
- return h->order + PAGE_SHIFT;
-}
-
-static inline unsigned int pages_per_huge_page(struct hstate *h)
-{
- return 1 << h->order;
-}
-
-static inline unsigned int blocks_per_huge_page(struct hstate *h)
-{
- return huge_page_size(h) / 512;
-}
-
-#include <asm/hugetlb.h>
-
-static inline struct hstate *page_hstate(struct page *page)
-{
- return size_to_hstate(PAGE_SIZE << compound_order(page));
-}
-
-static inline unsigned hstate_index_to_shift(unsigned index)
-{
- return hstates[index].order + PAGE_SHIFT;
-}
-
-#else
-struct hstate {};
-#define alloc_huge_page_node(h, nid) NULL
-#define alloc_bootmem_huge_page(h) NULL
-#define hstate_file(f) NULL
-#define hstate_vma(v) NULL
-#define hstate_inode(i) NULL
-#define huge_page_size(h) PAGE_SIZE
-#define huge_page_mask(h) PAGE_MASK
-#define vma_kernel_pagesize(v) PAGE_SIZE
-#define vma_mmu_pagesize(v) PAGE_SIZE
-#define huge_page_order(h) 0
-#define huge_page_shift(h) PAGE_SHIFT
-static inline unsigned int pages_per_huge_page(struct hstate *h)
-{
- return 1;
-}
-#define hstate_index_to_shift(index) 0
-#endif
-
-#endif /* _LINUX_HUGETLB_H */
diff --git a/ANDROID_3.4.5/include/linux/hugetlb_inline.h b/ANDROID_3.4.5/include/linux/hugetlb_inline.h
deleted file mode 100644
index 2bb681fb..00000000
--- a/ANDROID_3.4.5/include/linux/hugetlb_inline.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef _LINUX_HUGETLB_INLINE_H
-#define _LINUX_HUGETLB_INLINE_H
-
-#ifdef CONFIG_HUGETLB_PAGE
-
-#include <linux/mm.h>
-
-static inline int is_vm_hugetlb_page(struct vm_area_struct *vma)
-{
- return !!(vma->vm_flags & VM_HUGETLB);
-}
-
-#else
-
-static inline int is_vm_hugetlb_page(struct vm_area_struct *vma)
-{
- return 0;
-}
-
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/hw_breakpoint.h b/ANDROID_3.4.5/include/linux/hw_breakpoint.h
deleted file mode 100644
index 6ae9c631..00000000
--- a/ANDROID_3.4.5/include/linux/hw_breakpoint.h
+++ /dev/null
@@ -1,156 +0,0 @@
-#ifndef _LINUX_HW_BREAKPOINT_H
-#define _LINUX_HW_BREAKPOINT_H
-
-enum {
- HW_BREAKPOINT_LEN_1 = 1,
- HW_BREAKPOINT_LEN_2 = 2,
- HW_BREAKPOINT_LEN_4 = 4,
- HW_BREAKPOINT_LEN_8 = 8,
-};
-
-enum {
- HW_BREAKPOINT_EMPTY = 0,
- HW_BREAKPOINT_R = 1,
- HW_BREAKPOINT_W = 2,
- HW_BREAKPOINT_RW = HW_BREAKPOINT_R | HW_BREAKPOINT_W,
- HW_BREAKPOINT_X = 4,
- HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X,
-};
-
-enum bp_type_idx {
- TYPE_INST = 0,
-#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS
- TYPE_DATA = 0,
-#else
- TYPE_DATA = 1,
-#endif
- TYPE_MAX
-};
-
-#ifdef __KERNEL__
-
-#include <linux/perf_event.h>
-
-#ifdef CONFIG_HAVE_HW_BREAKPOINT
-
-extern int __init init_hw_breakpoint(void);
-
-static inline void hw_breakpoint_init(struct perf_event_attr *attr)
-{
- memset(attr, 0, sizeof(*attr));
-
- attr->type = PERF_TYPE_BREAKPOINT;
- attr->size = sizeof(*attr);
- /*
- * As it's for in-kernel or ptrace use, we want it to be pinned
- * and to call its callback every hits.
- */
- attr->pinned = 1;
- attr->sample_period = 1;
-}
-
-static inline void ptrace_breakpoint_init(struct perf_event_attr *attr)
-{
- hw_breakpoint_init(attr);
- attr->exclude_kernel = 1;
-}
-
-static inline unsigned long hw_breakpoint_addr(struct perf_event *bp)
-{
- return bp->attr.bp_addr;
-}
-
-static inline int hw_breakpoint_type(struct perf_event *bp)
-{
- return bp->attr.bp_type;
-}
-
-static inline unsigned long hw_breakpoint_len(struct perf_event *bp)
-{
- return bp->attr.bp_len;
-}
-
-extern struct perf_event *
-register_user_hw_breakpoint(struct perf_event_attr *attr,
- perf_overflow_handler_t triggered,
- void *context,
- struct task_struct *tsk);
-
-/* FIXME: only change from the attr, and don't unregister */
-extern int
-modify_user_hw_breakpoint(struct perf_event *bp, struct perf_event_attr *attr);
-
-/*
- * Kernel breakpoints are not associated with any particular thread.
- */
-extern struct perf_event *
-register_wide_hw_breakpoint_cpu(struct perf_event_attr *attr,
- perf_overflow_handler_t triggered,
- void *context,
- int cpu);
-
-extern struct perf_event * __percpu *
-register_wide_hw_breakpoint(struct perf_event_attr *attr,
- perf_overflow_handler_t triggered,
- void *context);
-
-extern int register_perf_hw_breakpoint(struct perf_event *bp);
-extern int __register_perf_hw_breakpoint(struct perf_event *bp);
-extern void unregister_hw_breakpoint(struct perf_event *bp);
-extern void unregister_wide_hw_breakpoint(struct perf_event * __percpu *cpu_events);
-
-extern int dbg_reserve_bp_slot(struct perf_event *bp);
-extern int dbg_release_bp_slot(struct perf_event *bp);
-extern int reserve_bp_slot(struct perf_event *bp);
-extern void release_bp_slot(struct perf_event *bp);
-
-extern void flush_ptrace_hw_breakpoint(struct task_struct *tsk);
-
-static inline struct arch_hw_breakpoint *counter_arch_bp(struct perf_event *bp)
-{
- return &bp->hw.info;
-}
-
-#else /* !CONFIG_HAVE_HW_BREAKPOINT */
-
-static inline int __init init_hw_breakpoint(void) { return 0; }
-
-static inline struct perf_event *
-register_user_hw_breakpoint(struct perf_event_attr *attr,
- perf_overflow_handler_t triggered,
- void *context,
- struct task_struct *tsk) { return NULL; }
-static inline int
-modify_user_hw_breakpoint(struct perf_event *bp,
- struct perf_event_attr *attr) { return -ENOSYS; }
-static inline struct perf_event *
-register_wide_hw_breakpoint_cpu(struct perf_event_attr *attr,
- perf_overflow_handler_t triggered,
- void *context,
- int cpu) { return NULL; }
-static inline struct perf_event * __percpu *
-register_wide_hw_breakpoint(struct perf_event_attr *attr,
- perf_overflow_handler_t triggered,
- void *context) { return NULL; }
-static inline int
-register_perf_hw_breakpoint(struct perf_event *bp) { return -ENOSYS; }
-static inline int
-__register_perf_hw_breakpoint(struct perf_event *bp) { return -ENOSYS; }
-static inline void unregister_hw_breakpoint(struct perf_event *bp) { }
-static inline void
-unregister_wide_hw_breakpoint(struct perf_event * __percpu *cpu_events) { }
-static inline int
-reserve_bp_slot(struct perf_event *bp) {return -ENOSYS; }
-static inline void release_bp_slot(struct perf_event *bp) { }
-
-static inline void flush_ptrace_hw_breakpoint(struct task_struct *tsk) { }
-
-static inline struct arch_hw_breakpoint *counter_arch_bp(struct perf_event *bp)
-{
- return NULL;
-}
-
-#endif /* CONFIG_HAVE_HW_BREAKPOINT */
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_HW_BREAKPOINT_H */
diff --git a/ANDROID_3.4.5/include/linux/hw_random.h b/ANDROID_3.4.5/include/linux/hw_random.h
deleted file mode 100644
index b4b0eef5..00000000
--- a/ANDROID_3.4.5/include/linux/hw_random.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- Hardware Random Number Generator
-
- Please read Documentation/hw_random.txt for details on use.
-
- ----------------------------------------------------------
- This software may be used and distributed according to the terms
- of the GNU General Public License, incorporated herein by reference.
-
- */
-
-#ifndef LINUX_HWRANDOM_H_
-#define LINUX_HWRANDOM_H_
-
-#include <linux/types.h>
-#include <linux/list.h>
-
-/**
- * struct hwrng - Hardware Random Number Generator driver
- * @name: Unique RNG name.
- * @init: Initialization callback (can be NULL).
- * @cleanup: Cleanup callback (can be NULL).
- * @data_present: Callback to determine if data is available
- * on the RNG. If NULL, it is assumed that
- * there is always data available. *OBSOLETE*
- * @data_read: Read data from the RNG device.
- * Returns the number of lower random bytes in "data".
- * Must not be NULL. *OBSOLETE*
- * @read: New API. drivers can fill up to max bytes of data
- * into the buffer. The buffer is aligned for any type.
- * @priv: Private data, for use by the RNG driver.
- */
-struct hwrng {
- const char *name;
- int (*init)(struct hwrng *rng);
- void (*cleanup)(struct hwrng *rng);
- int (*data_present)(struct hwrng *rng, int wait);
- int (*data_read)(struct hwrng *rng, u32 *data);
- int (*read)(struct hwrng *rng, void *data, size_t max, bool wait);
- unsigned long priv;
-
- /* internal. */
- struct list_head list;
-};
-
-/** Register a new Hardware Random Number Generator driver. */
-extern int hwrng_register(struct hwrng *rng);
-/** Unregister a Hardware Random Number Generator driver. */
-extern void hwrng_unregister(struct hwrng *rng);
-
-#endif /* LINUX_HWRANDOM_H_ */
diff --git a/ANDROID_3.4.5/include/linux/hwmon-sysfs.h b/ANDROID_3.4.5/include/linux/hwmon-sysfs.h
deleted file mode 100644
index 1c7b89ae..00000000
--- a/ANDROID_3.4.5/include/linux/hwmon-sysfs.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * hwmon-sysfs.h - hardware monitoring chip driver sysfs defines
- *
- * Copyright (C) 2005 Yani Ioannou <yani.ioannou@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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-#ifndef _LINUX_HWMON_SYSFS_H
-#define _LINUX_HWMON_SYSFS_H
-
-#include <linux/device.h>
-
-struct sensor_device_attribute{
- struct device_attribute dev_attr;
- int index;
-};
-#define to_sensor_dev_attr(_dev_attr) \
- container_of(_dev_attr, struct sensor_device_attribute, dev_attr)
-
-#define SENSOR_ATTR(_name, _mode, _show, _store, _index) \
- { .dev_attr = __ATTR(_name, _mode, _show, _store), \
- .index = _index }
-
-#define SENSOR_DEVICE_ATTR(_name, _mode, _show, _store, _index) \
-struct sensor_device_attribute sensor_dev_attr_##_name \
- = SENSOR_ATTR(_name, _mode, _show, _store, _index)
-
-struct sensor_device_attribute_2 {
- struct device_attribute dev_attr;
- u8 index;
- u8 nr;
-};
-#define to_sensor_dev_attr_2(_dev_attr) \
- container_of(_dev_attr, struct sensor_device_attribute_2, dev_attr)
-
-#define SENSOR_ATTR_2(_name, _mode, _show, _store, _nr, _index) \
- { .dev_attr = __ATTR(_name, _mode, _show, _store), \
- .index = _index, \
- .nr = _nr }
-
-#define SENSOR_DEVICE_ATTR_2(_name,_mode,_show,_store,_nr,_index) \
-struct sensor_device_attribute_2 sensor_dev_attr_##_name \
- = SENSOR_ATTR_2(_name, _mode, _show, _store, _nr, _index)
-
-#endif /* _LINUX_HWMON_SYSFS_H */
diff --git a/ANDROID_3.4.5/include/linux/hwmon-vid.h b/ANDROID_3.4.5/include/linux/hwmon-vid.h
deleted file mode 100644
index f346e4d5..00000000
--- a/ANDROID_3.4.5/include/linux/hwmon-vid.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- hwmon-vid.h - VID/VRM/VRD voltage conversions
-
- Originally part of lm_sensors
- Copyright (c) 2002 Mark D. Studebaker <mdsxyz123@yahoo.com>
- With assistance from Trent Piepho <xyzzy@speakeasy.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., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
-
-#ifndef _LINUX_HWMON_VID_H
-#define _LINUX_HWMON_VID_H
-
-int vid_from_reg(int val, u8 vrm);
-u8 vid_which_vrm(void);
-
-/* vrm is the VRM/VRD document version multiplied by 10.
- val is in mV to avoid floating point in the kernel.
- Returned value is the 4-, 5- or 6-bit VID code.
- Note that only VRM 9.x is supported for now. */
-static inline int vid_to_reg(int val, u8 vrm)
-{
- switch (vrm) {
- case 91: /* VRM 9.1 */
- case 90: /* VRM 9.0 */
- return ((val >= 1100) && (val <= 1850) ?
- ((18499 - val * 10) / 25 + 5) / 10 : -1);
- default:
- return -1;
- }
-}
-
-#endif /* _LINUX_HWMON_VID_H */
diff --git a/ANDROID_3.4.5/include/linux/hwmon.h b/ANDROID_3.4.5/include/linux/hwmon.h
deleted file mode 100644
index 82b29ae6..00000000
--- a/ANDROID_3.4.5/include/linux/hwmon.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- hwmon.h - part of lm_sensors, Linux kernel modules for hardware monitoring
-
- This file declares helper functions for the sysfs class "hwmon",
- for use by sensors drivers.
-
- Copyright (C) 2005 Mark M. Hoffman <mhoffman@lightlink.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; version 2 of the License.
-*/
-
-#ifndef _HWMON_H_
-#define _HWMON_H_
-
-struct device;
-
-struct device *hwmon_device_register(struct device *dev);
-
-void hwmon_device_unregister(struct device *dev);
-
-/* Scale user input to sensible values */
-static inline int SENSORS_LIMIT(long value, long low, long high)
-{
- if (value < low)
- return low;
- else if (value > high)
- return high;
- else
- return value;
-}
-
-#endif
-
diff --git a/ANDROID_3.4.5/include/linux/hwspinlock.h b/ANDROID_3.4.5/include/linux/hwspinlock.h
deleted file mode 100644
index 3343298e..00000000
--- a/ANDROID_3.4.5/include/linux/hwspinlock.h
+++ /dev/null
@@ -1,313 +0,0 @@
-/*
- * Hardware spinlock public header
- *
- * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com
- *
- * Contact: Ohad Ben-Cohen <ohad@wizery.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.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
-
-#ifndef __LINUX_HWSPINLOCK_H
-#define __LINUX_HWSPINLOCK_H
-
-#include <linux/err.h>
-#include <linux/sched.h>
-
-/* hwspinlock mode argument */
-#define HWLOCK_IRQSTATE 0x01 /* Disable interrupts, save state */
-#define HWLOCK_IRQ 0x02 /* Disable interrupts, don't save state */
-
-struct device;
-struct hwspinlock;
-struct hwspinlock_device;
-struct hwspinlock_ops;
-
-/**
- * struct hwspinlock_pdata - platform data for hwspinlock drivers
- * @base_id: base id for this hwspinlock device
- *
- * hwspinlock devices provide system-wide hardware locks that are used
- * by remote processors that have no other way to achieve synchronization.
- *
- * To achieve that, each physical lock must have a system-wide id number
- * that is agreed upon, otherwise remote processors can't possibly assume
- * they're using the same hardware lock.
- *
- * Usually boards have a single hwspinlock device, which provides several
- * hwspinlocks, and in this case, they can be trivially numbered 0 to
- * (num-of-locks - 1).
- *
- * In case boards have several hwspinlocks devices, a different base id
- * should be used for each hwspinlock device (they can't all use 0 as
- * a starting id!).
- *
- * This platform data structure should be used to provide the base id
- * for each device (which is trivially 0 when only a single hwspinlock
- * device exists). It can be shared between different platforms, hence
- * its location.
- */
-struct hwspinlock_pdata {
- int base_id;
-};
-
-#if defined(CONFIG_HWSPINLOCK) || defined(CONFIG_HWSPINLOCK_MODULE)
-
-int hwspin_lock_register(struct hwspinlock_device *bank, struct device *dev,
- const struct hwspinlock_ops *ops, int base_id, int num_locks);
-int hwspin_lock_unregister(struct hwspinlock_device *bank);
-struct hwspinlock *hwspin_lock_request(void);
-struct hwspinlock *hwspin_lock_request_specific(unsigned int id);
-int hwspin_lock_free(struct hwspinlock *hwlock);
-int hwspin_lock_get_id(struct hwspinlock *hwlock);
-int __hwspin_lock_timeout(struct hwspinlock *, unsigned int, int,
- unsigned long *);
-int __hwspin_trylock(struct hwspinlock *, int, unsigned long *);
-void __hwspin_unlock(struct hwspinlock *, int, unsigned long *);
-
-#else /* !CONFIG_HWSPINLOCK */
-
-/*
- * We don't want these functions to fail if CONFIG_HWSPINLOCK is not
- * enabled. We prefer to silently succeed in this case, and let the
- * code path get compiled away. This way, if CONFIG_HWSPINLOCK is not
- * required on a given setup, users will still work.
- *
- * The only exception is hwspin_lock_register/hwspin_lock_unregister, with which
- * we _do_ want users to fail (no point in registering hwspinlock instances if
- * the framework is not available).
- *
- * Note: ERR_PTR(-ENODEV) will still be considered a success for NULL-checking
- * users. Others, which care, can still check this with IS_ERR.
- */
-static inline struct hwspinlock *hwspin_lock_request(void)
-{
- return ERR_PTR(-ENODEV);
-}
-
-static inline struct hwspinlock *hwspin_lock_request_specific(unsigned int id)
-{
- return ERR_PTR(-ENODEV);
-}
-
-static inline int hwspin_lock_free(struct hwspinlock *hwlock)
-{
- return 0;
-}
-
-static inline
-int __hwspin_lock_timeout(struct hwspinlock *hwlock, unsigned int to,
- int mode, unsigned long *flags)
-{
- return 0;
-}
-
-static inline
-int __hwspin_trylock(struct hwspinlock *hwlock, int mode, unsigned long *flags)
-{
- return 0;
-}
-
-static inline
-void __hwspin_unlock(struct hwspinlock *hwlock, int mode, unsigned long *flags)
-{
-}
-
-static inline int hwspin_lock_get_id(struct hwspinlock *hwlock)
-{
- return 0;
-}
-
-#endif /* !CONFIG_HWSPINLOCK */
-
-/**
- * hwspin_trylock_irqsave() - try to lock an hwspinlock, disable interrupts
- * @hwlock: an hwspinlock which we want to trylock
- * @flags: a pointer to where the caller's interrupt state will be saved at
- *
- * This function attempts to lock the underlying hwspinlock, and will
- * immediately fail if the hwspinlock is already locked.
- *
- * Upon a successful return from this function, preemption and local
- * interrupts are disabled (previous interrupts state is saved at @flags),
- * so the caller must not sleep, and is advised to release the hwspinlock
- * as soon as possible.
- *
- * Returns 0 if we successfully locked the hwspinlock, -EBUSY if
- * the hwspinlock was already taken, and -EINVAL if @hwlock is invalid.
- */
-static inline
-int hwspin_trylock_irqsave(struct hwspinlock *hwlock, unsigned long *flags)
-{
- return __hwspin_trylock(hwlock, HWLOCK_IRQSTATE, flags);
-}
-
-/**
- * hwspin_trylock_irq() - try to lock an hwspinlock, disable interrupts
- * @hwlock: an hwspinlock which we want to trylock
- *
- * This function attempts to lock the underlying hwspinlock, and will
- * immediately fail if the hwspinlock is already locked.
- *
- * Upon a successful return from this function, preemption and local
- * interrupts are disabled, so the caller must not sleep, and is advised
- * to release the hwspinlock as soon as possible.
- *
- * Returns 0 if we successfully locked the hwspinlock, -EBUSY if
- * the hwspinlock was already taken, and -EINVAL if @hwlock is invalid.
- */
-static inline int hwspin_trylock_irq(struct hwspinlock *hwlock)
-{
- return __hwspin_trylock(hwlock, HWLOCK_IRQ, NULL);
-}
-
-/**
- * hwspin_trylock() - attempt to lock a specific hwspinlock
- * @hwlock: an hwspinlock which we want to trylock
- *
- * This function attempts to lock an hwspinlock, and will immediately fail
- * if the hwspinlock is already taken.
- *
- * Upon a successful return from this function, preemption is disabled,
- * so the caller must not sleep, and is advised to release the hwspinlock
- * as soon as possible. This is required in order to minimize remote cores
- * polling on the hardware interconnect.
- *
- * Returns 0 if we successfully locked the hwspinlock, -EBUSY if
- * the hwspinlock was already taken, and -EINVAL if @hwlock is invalid.
- */
-static inline int hwspin_trylock(struct hwspinlock *hwlock)
-{
- return __hwspin_trylock(hwlock, 0, NULL);
-}
-
-/**
- * hwspin_lock_timeout_irqsave() - lock hwspinlock, with timeout, disable irqs
- * @hwlock: the hwspinlock to be locked
- * @to: timeout value in msecs
- * @flags: a pointer to where the caller's interrupt state will be saved at
- *
- * This function locks the underlying @hwlock. If the @hwlock
- * is already taken, the function will busy loop waiting for it to
- * be released, but give up when @timeout msecs have elapsed.
- *
- * Upon a successful return from this function, preemption and local interrupts
- * are disabled (plus previous interrupt state is saved), so the caller must
- * not sleep, and is advised to release the hwspinlock as soon as possible.
- *
- * Returns 0 when the @hwlock was successfully taken, and an appropriate
- * error code otherwise (most notably an -ETIMEDOUT if the @hwlock is still
- * busy after @timeout msecs). The function will never sleep.
- */
-static inline int hwspin_lock_timeout_irqsave(struct hwspinlock *hwlock,
- unsigned int to, unsigned long *flags)
-{
- return __hwspin_lock_timeout(hwlock, to, HWLOCK_IRQSTATE, flags);
-}
-
-/**
- * hwspin_lock_timeout_irq() - lock hwspinlock, with timeout, disable irqs
- * @hwlock: the hwspinlock to be locked
- * @to: timeout value in msecs
- *
- * This function locks the underlying @hwlock. If the @hwlock
- * is already taken, the function will busy loop waiting for it to
- * be released, but give up when @timeout msecs have elapsed.
- *
- * Upon a successful return from this function, preemption and local interrupts
- * are disabled so the caller must not sleep, and is advised to release the
- * hwspinlock as soon as possible.
- *
- * Returns 0 when the @hwlock was successfully taken, and an appropriate
- * error code otherwise (most notably an -ETIMEDOUT if the @hwlock is still
- * busy after @timeout msecs). The function will never sleep.
- */
-static inline
-int hwspin_lock_timeout_irq(struct hwspinlock *hwlock, unsigned int to)
-{
- return __hwspin_lock_timeout(hwlock, to, HWLOCK_IRQ, NULL);
-}
-
-/**
- * hwspin_lock_timeout() - lock an hwspinlock with timeout limit
- * @hwlock: the hwspinlock to be locked
- * @to: timeout value in msecs
- *
- * This function locks the underlying @hwlock. If the @hwlock
- * is already taken, the function will busy loop waiting for it to
- * be released, but give up when @timeout msecs have elapsed.
- *
- * Upon a successful return from this function, preemption is disabled
- * so the caller must not sleep, and is advised to release the hwspinlock
- * as soon as possible.
- * This is required in order to minimize remote cores polling on the
- * hardware interconnect.
- *
- * Returns 0 when the @hwlock was successfully taken, and an appropriate
- * error code otherwise (most notably an -ETIMEDOUT if the @hwlock is still
- * busy after @timeout msecs). The function will never sleep.
- */
-static inline
-int hwspin_lock_timeout(struct hwspinlock *hwlock, unsigned int to)
-{
- return __hwspin_lock_timeout(hwlock, to, 0, NULL);
-}
-
-/**
- * hwspin_unlock_irqrestore() - unlock hwspinlock, restore irq state
- * @hwlock: a previously-acquired hwspinlock which we want to unlock
- * @flags: previous caller's interrupt state to restore
- *
- * This function will unlock a specific hwspinlock, enable preemption and
- * restore the previous state of the local interrupts. It should be used
- * to undo, e.g., hwspin_trylock_irqsave().
- *
- * @hwlock must be already locked before calling this function: it is a bug
- * to call unlock on a @hwlock that is already unlocked.
- */
-static inline void hwspin_unlock_irqrestore(struct hwspinlock *hwlock,
- unsigned long *flags)
-{
- __hwspin_unlock(hwlock, HWLOCK_IRQSTATE, flags);
-}
-
-/**
- * hwspin_unlock_irq() - unlock hwspinlock, enable interrupts
- * @hwlock: a previously-acquired hwspinlock which we want to unlock
- *
- * This function will unlock a specific hwspinlock, enable preemption and
- * enable local interrupts. Should be used to undo hwspin_lock_irq().
- *
- * @hwlock must be already locked (e.g. by hwspin_trylock_irq()) before
- * calling this function: it is a bug to call unlock on a @hwlock that is
- * already unlocked.
- */
-static inline void hwspin_unlock_irq(struct hwspinlock *hwlock)
-{
- __hwspin_unlock(hwlock, HWLOCK_IRQ, NULL);
-}
-
-/**
- * hwspin_unlock() - unlock hwspinlock
- * @hwlock: a previously-acquired hwspinlock which we want to unlock
- *
- * This function will unlock a specific hwspinlock and enable preemption
- * back.
- *
- * @hwlock must be already locked (e.g. by hwspin_trylock()) before calling
- * this function: it is a bug to call unlock on a @hwlock that is already
- * unlocked.
- */
-static inline void hwspin_unlock(struct hwspinlock *hwlock)
-{
- __hwspin_unlock(hwlock, 0, NULL);
-}
-
-#endif /* __LINUX_HWSPINLOCK_H */
diff --git a/ANDROID_3.4.5/include/linux/hyperv.h b/ANDROID_3.4.5/include/linux/hyperv.h
deleted file mode 100644
index 5852545e..00000000
--- a/ANDROID_3.4.5/include/linux/hyperv.h
+++ /dev/null
@@ -1,1046 +0,0 @@
-/*
- *
- * Copyright (c) 2011, Microsoft Corporation.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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.
- *
- * Authors:
- * Haiyang Zhang <haiyangz@microsoft.com>
- * Hank Janssen <hjanssen@microsoft.com>
- * K. Y. Srinivasan <kys@microsoft.com>
- *
- */
-
-#ifndef _HYPERV_H
-#define _HYPERV_H
-
-#include <linux/types.h>
-
-/*
- * An implementation of HyperV key value pair (KVP) functionality for Linux.
- *
- *
- * Copyright (C) 2010, Novell, Inc.
- * Author : K. Y. Srinivasan <ksrinivasan@novell.com>
- *
- */
-
-/*
- * Maximum value size - used for both key names and value data, and includes
- * any applicable NULL terminators.
- *
- * Note: This limit is somewhat arbitrary, but falls easily within what is
- * supported for all native guests (back to Win 2000) and what is reasonable
- * for the IC KVP exchange functionality. Note that Windows Me/98/95 are
- * limited to 255 character key names.
- *
- * MSDN recommends not storing data values larger than 2048 bytes in the
- * registry.
- *
- * Note: This value is used in defining the KVP exchange message - this value
- * cannot be modified without affecting the message size and compatibility.
- */
-
-/*
- * bytes, including any null terminators
- */
-#define HV_KVP_EXCHANGE_MAX_VALUE_SIZE (2048)
-
-
-/*
- * Maximum key size - the registry limit for the length of an entry name
- * is 256 characters, including the null terminator
- */
-
-#define HV_KVP_EXCHANGE_MAX_KEY_SIZE (512)
-
-/*
- * In Linux, we implement the KVP functionality in two components:
- * 1) The kernel component which is packaged as part of the hv_utils driver
- * is responsible for communicating with the host and responsible for
- * implementing the host/guest protocol. 2) A user level daemon that is
- * responsible for data gathering.
- *
- * Host/Guest Protocol: The host iterates over an index and expects the guest
- * to assign a key name to the index and also return the value corresponding to
- * the key. The host will have atmost one KVP transaction outstanding at any
- * given point in time. The host side iteration stops when the guest returns
- * an error. Microsoft has specified the following mapping of key names to
- * host specified index:
- *
- * Index Key Name
- * 0 FullyQualifiedDomainName
- * 1 IntegrationServicesVersion
- * 2 NetworkAddressIPv4
- * 3 NetworkAddressIPv6
- * 4 OSBuildNumber
- * 5 OSName
- * 6 OSMajorVersion
- * 7 OSMinorVersion
- * 8 OSVersion
- * 9 ProcessorArchitecture
- *
- * The Windows host expects the Key Name and Key Value to be encoded in utf16.
- *
- * Guest Kernel/KVP Daemon Protocol: As noted earlier, we implement all of the
- * data gathering functionality in a user mode daemon. The user level daemon
- * is also responsible for binding the key name to the index as well. The
- * kernel and user-level daemon communicate using a connector channel.
- *
- * The user mode component first registers with the
- * the kernel component. Subsequently, the kernel component requests, data
- * for the specified keys. In response to this message the user mode component
- * fills in the value corresponding to the specified key. We overload the
- * sequence field in the cn_msg header to define our KVP message types.
- *
- *
- * The kernel component simply acts as a conduit for communication between the
- * Windows host and the user-level daemon. The kernel component passes up the
- * index received from the Host to the user-level daemon. If the index is
- * valid (supported), the corresponding key as well as its
- * value (both are strings) is returned. If the index is invalid
- * (not supported), a NULL key string is returned.
- */
-
-
-/*
- * Registry value types.
- */
-
-#define REG_SZ 1
-#define REG_U32 4
-#define REG_U64 8
-
-enum hv_kvp_exchg_op {
- KVP_OP_GET = 0,
- KVP_OP_SET,
- KVP_OP_DELETE,
- KVP_OP_ENUMERATE,
- KVP_OP_REGISTER,
- KVP_OP_COUNT /* Number of operations, must be last. */
-};
-
-enum hv_kvp_exchg_pool {
- KVP_POOL_EXTERNAL = 0,
- KVP_POOL_GUEST,
- KVP_POOL_AUTO,
- KVP_POOL_AUTO_EXTERNAL,
- KVP_POOL_AUTO_INTERNAL,
- KVP_POOL_COUNT /* Number of pools, must be last. */
-};
-
-struct hv_kvp_hdr {
- __u8 operation;
- __u8 pool;
- __u16 pad;
-} __attribute__((packed));
-
-struct hv_kvp_exchg_msg_value {
- __u32 value_type;
- __u32 key_size;
- __u32 value_size;
- __u8 key[HV_KVP_EXCHANGE_MAX_KEY_SIZE];
- union {
- __u8 value[HV_KVP_EXCHANGE_MAX_VALUE_SIZE];
- __u32 value_u32;
- __u64 value_u64;
- };
-} __attribute__((packed));
-
-struct hv_kvp_msg_enumerate {
- __u32 index;
- struct hv_kvp_exchg_msg_value data;
-} __attribute__((packed));
-
-struct hv_kvp_msg_get {
- struct hv_kvp_exchg_msg_value data;
-};
-
-struct hv_kvp_msg_set {
- struct hv_kvp_exchg_msg_value data;
-};
-
-struct hv_kvp_msg_delete {
- __u32 key_size;
- __u8 key[HV_KVP_EXCHANGE_MAX_KEY_SIZE];
-};
-
-struct hv_kvp_register {
- __u8 version[HV_KVP_EXCHANGE_MAX_KEY_SIZE];
-};
-
-struct hv_kvp_msg {
- struct hv_kvp_hdr kvp_hdr;
- union {
- struct hv_kvp_msg_get kvp_get;
- struct hv_kvp_msg_set kvp_set;
- struct hv_kvp_msg_delete kvp_delete;
- struct hv_kvp_msg_enumerate kvp_enum_data;
- struct hv_kvp_register kvp_register;
- } body;
-} __attribute__((packed));
-
-#ifdef __KERNEL__
-#include <linux/scatterlist.h>
-#include <linux/list.h>
-#include <linux/uuid.h>
-#include <linux/timer.h>
-#include <linux/workqueue.h>
-#include <linux/completion.h>
-#include <linux/device.h>
-#include <linux/mod_devicetable.h>
-
-
-#define MAX_PAGE_BUFFER_COUNT 19
-#define MAX_MULTIPAGE_BUFFER_COUNT 32 /* 128K */
-
-#pragma pack(push, 1)
-
-/* Single-page buffer */
-struct hv_page_buffer {
- u32 len;
- u32 offset;
- u64 pfn;
-};
-
-/* Multiple-page buffer */
-struct hv_multipage_buffer {
- /* Length and Offset determines the # of pfns in the array */
- u32 len;
- u32 offset;
- u64 pfn_array[MAX_MULTIPAGE_BUFFER_COUNT];
-};
-
-/* 0x18 includes the proprietary packet header */
-#define MAX_PAGE_BUFFER_PACKET (0x18 + \
- (sizeof(struct hv_page_buffer) * \
- MAX_PAGE_BUFFER_COUNT))
-#define MAX_MULTIPAGE_BUFFER_PACKET (0x18 + \
- sizeof(struct hv_multipage_buffer))
-
-
-#pragma pack(pop)
-
-struct hv_ring_buffer {
- /* Offset in bytes from the start of ring data below */
- u32 write_index;
-
- /* Offset in bytes from the start of ring data below */
- u32 read_index;
-
- u32 interrupt_mask;
-
- /* Pad it to PAGE_SIZE so that data starts on page boundary */
- u8 reserved[4084];
-
- /* NOTE:
- * The interrupt_mask field is used only for channels but since our
- * vmbus connection also uses this data structure and its data starts
- * here, we commented out this field.
- */
-
- /*
- * Ring data starts here + RingDataStartOffset
- * !!! DO NOT place any fields below this !!!
- */
- u8 buffer[0];
-} __packed;
-
-struct hv_ring_buffer_info {
- struct hv_ring_buffer *ring_buffer;
- u32 ring_size; /* Include the shared header */
- spinlock_t ring_lock;
-
- u32 ring_datasize; /* < ring_size */
- u32 ring_data_startoffset;
-};
-
-struct hv_ring_buffer_debug_info {
- u32 current_interrupt_mask;
- u32 current_read_index;
- u32 current_write_index;
- u32 bytes_avail_toread;
- u32 bytes_avail_towrite;
-};
-
-/*
- * We use the same version numbering for all Hyper-V modules.
- *
- * Definition of versioning is as follows;
- *
- * Major Number Changes for these scenarios;
- * 1. When a new version of Windows Hyper-V
- * is released.
- * 2. A Major change has occurred in the
- * Linux IC's.
- * (For example the merge for the first time
- * into the kernel) Every time the Major Number
- * changes, the Revision number is reset to 0.
- * Minor Number Changes when new functionality is added
- * to the Linux IC's that is not a bug fix.
- *
- * 3.1 - Added completed hv_utils driver. Shutdown/Heartbeat/Timesync
- */
-#define HV_DRV_VERSION "3.1"
-
-
-/*
- * A revision number of vmbus that is used for ensuring both ends on a
- * partition are using compatible versions.
- */
-#define VMBUS_REVISION_NUMBER 13
-
-/* Make maximum size of pipe payload of 16K */
-#define MAX_PIPE_DATA_PAYLOAD (sizeof(u8) * 16384)
-
-/* Define PipeMode values. */
-#define VMBUS_PIPE_TYPE_BYTE 0x00000000
-#define VMBUS_PIPE_TYPE_MESSAGE 0x00000004
-
-/* The size of the user defined data buffer for non-pipe offers. */
-#define MAX_USER_DEFINED_BYTES 120
-
-/* The size of the user defined data buffer for pipe offers. */
-#define MAX_PIPE_USER_DEFINED_BYTES 116
-
-/*
- * At the center of the Channel Management library is the Channel Offer. This
- * struct contains the fundamental information about an offer.
- */
-struct vmbus_channel_offer {
- uuid_le if_type;
- uuid_le if_instance;
- u64 int_latency; /* in 100ns units */
- u32 if_revision;
- u32 server_ctx_size; /* in bytes */
- u16 chn_flags;
- u16 mmio_megabytes; /* in bytes * 1024 * 1024 */
-
- union {
- /* Non-pipes: The user has MAX_USER_DEFINED_BYTES bytes. */
- struct {
- unsigned char user_def[MAX_USER_DEFINED_BYTES];
- } std;
-
- /*
- * Pipes:
- * The following sructure is an integrated pipe protocol, which
- * is implemented on top of standard user-defined data. Pipe
- * clients have MAX_PIPE_USER_DEFINED_BYTES left for their own
- * use.
- */
- struct {
- u32 pipe_mode;
- unsigned char user_def[MAX_PIPE_USER_DEFINED_BYTES];
- } pipe;
- } u;
- u32 padding;
-} __packed;
-
-/* Server Flags */
-#define VMBUS_CHANNEL_ENUMERATE_DEVICE_INTERFACE 1
-#define VMBUS_CHANNEL_SERVER_SUPPORTS_TRANSFER_PAGES 2
-#define VMBUS_CHANNEL_SERVER_SUPPORTS_GPADLS 4
-#define VMBUS_CHANNEL_NAMED_PIPE_MODE 0x10
-#define VMBUS_CHANNEL_LOOPBACK_OFFER 0x100
-#define VMBUS_CHANNEL_PARENT_OFFER 0x200
-#define VMBUS_CHANNEL_REQUEST_MONITORED_NOTIFICATION 0x400
-
-struct vmpacket_descriptor {
- u16 type;
- u16 offset8;
- u16 len8;
- u16 flags;
- u64 trans_id;
-} __packed;
-
-struct vmpacket_header {
- u32 prev_pkt_start_offset;
- struct vmpacket_descriptor descriptor;
-} __packed;
-
-struct vmtransfer_page_range {
- u32 byte_count;
- u32 byte_offset;
-} __packed;
-
-struct vmtransfer_page_packet_header {
- struct vmpacket_descriptor d;
- u16 xfer_pageset_id;
- bool sender_owns_set;
- u8 reserved;
- u32 range_cnt;
- struct vmtransfer_page_range ranges[1];
-} __packed;
-
-struct vmgpadl_packet_header {
- struct vmpacket_descriptor d;
- u32 gpadl;
- u32 reserved;
-} __packed;
-
-struct vmadd_remove_transfer_page_set {
- struct vmpacket_descriptor d;
- u32 gpadl;
- u16 xfer_pageset_id;
- u16 reserved;
-} __packed;
-
-/*
- * This structure defines a range in guest physical space that can be made to
- * look virtually contiguous.
- */
-struct gpa_range {
- u32 byte_count;
- u32 byte_offset;
- u64 pfn_array[0];
-};
-
-/*
- * This is the format for an Establish Gpadl packet, which contains a handle by
- * which this GPADL will be known and a set of GPA ranges associated with it.
- * This can be converted to a MDL by the guest OS. If there are multiple GPA
- * ranges, then the resulting MDL will be "chained," representing multiple VA
- * ranges.
- */
-struct vmestablish_gpadl {
- struct vmpacket_descriptor d;
- u32 gpadl;
- u32 range_cnt;
- struct gpa_range range[1];
-} __packed;
-
-/*
- * This is the format for a Teardown Gpadl packet, which indicates that the
- * GPADL handle in the Establish Gpadl packet will never be referenced again.
- */
-struct vmteardown_gpadl {
- struct vmpacket_descriptor d;
- u32 gpadl;
- u32 reserved; /* for alignment to a 8-byte boundary */
-} __packed;
-
-/*
- * This is the format for a GPA-Direct packet, which contains a set of GPA
- * ranges, in addition to commands and/or data.
- */
-struct vmdata_gpa_direct {
- struct vmpacket_descriptor d;
- u32 reserved;
- u32 range_cnt;
- struct gpa_range range[1];
-} __packed;
-
-/* This is the format for a Additional Data Packet. */
-struct vmadditional_data {
- struct vmpacket_descriptor d;
- u64 total_bytes;
- u32 offset;
- u32 byte_cnt;
- unsigned char data[1];
-} __packed;
-
-union vmpacket_largest_possible_header {
- struct vmpacket_descriptor simple_hdr;
- struct vmtransfer_page_packet_header xfer_page_hdr;
- struct vmgpadl_packet_header gpadl_hdr;
- struct vmadd_remove_transfer_page_set add_rm_xfer_page_hdr;
- struct vmestablish_gpadl establish_gpadl_hdr;
- struct vmteardown_gpadl teardown_gpadl_hdr;
- struct vmdata_gpa_direct data_gpa_direct_hdr;
-};
-
-#define VMPACKET_DATA_START_ADDRESS(__packet) \
- (void *)(((unsigned char *)__packet) + \
- ((struct vmpacket_descriptor)__packet)->offset8 * 8)
-
-#define VMPACKET_DATA_LENGTH(__packet) \
- ((((struct vmpacket_descriptor)__packet)->len8 - \
- ((struct vmpacket_descriptor)__packet)->offset8) * 8)
-
-#define VMPACKET_TRANSFER_MODE(__packet) \
- (((struct IMPACT)__packet)->type)
-
-enum vmbus_packet_type {
- VM_PKT_INVALID = 0x0,
- VM_PKT_SYNCH = 0x1,
- VM_PKT_ADD_XFER_PAGESET = 0x2,
- VM_PKT_RM_XFER_PAGESET = 0x3,
- VM_PKT_ESTABLISH_GPADL = 0x4,
- VM_PKT_TEARDOWN_GPADL = 0x5,
- VM_PKT_DATA_INBAND = 0x6,
- VM_PKT_DATA_USING_XFER_PAGES = 0x7,
- VM_PKT_DATA_USING_GPADL = 0x8,
- VM_PKT_DATA_USING_GPA_DIRECT = 0x9,
- VM_PKT_CANCEL_REQUEST = 0xa,
- VM_PKT_COMP = 0xb,
- VM_PKT_DATA_USING_ADDITIONAL_PKT = 0xc,
- VM_PKT_ADDITIONAL_DATA = 0xd
-};
-
-#define VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED 1
-
-
-/* Version 1 messages */
-enum vmbus_channel_message_type {
- CHANNELMSG_INVALID = 0,
- CHANNELMSG_OFFERCHANNEL = 1,
- CHANNELMSG_RESCIND_CHANNELOFFER = 2,
- CHANNELMSG_REQUESTOFFERS = 3,
- CHANNELMSG_ALLOFFERS_DELIVERED = 4,
- CHANNELMSG_OPENCHANNEL = 5,
- CHANNELMSG_OPENCHANNEL_RESULT = 6,
- CHANNELMSG_CLOSECHANNEL = 7,
- CHANNELMSG_GPADL_HEADER = 8,
- CHANNELMSG_GPADL_BODY = 9,
- CHANNELMSG_GPADL_CREATED = 10,
- CHANNELMSG_GPADL_TEARDOWN = 11,
- CHANNELMSG_GPADL_TORNDOWN = 12,
- CHANNELMSG_RELID_RELEASED = 13,
- CHANNELMSG_INITIATE_CONTACT = 14,
- CHANNELMSG_VERSION_RESPONSE = 15,
- CHANNELMSG_UNLOAD = 16,
-#ifdef VMBUS_FEATURE_PARENT_OR_PEER_MEMORY_MAPPED_INTO_A_CHILD
- CHANNELMSG_VIEWRANGE_ADD = 17,
- CHANNELMSG_VIEWRANGE_REMOVE = 18,
-#endif
- CHANNELMSG_COUNT
-};
-
-struct vmbus_channel_message_header {
- enum vmbus_channel_message_type msgtype;
- u32 padding;
-} __packed;
-
-/* Query VMBus Version parameters */
-struct vmbus_channel_query_vmbus_version {
- struct vmbus_channel_message_header header;
- u32 version;
-} __packed;
-
-/* VMBus Version Supported parameters */
-struct vmbus_channel_version_supported {
- struct vmbus_channel_message_header header;
- bool version_supported;
-} __packed;
-
-/* Offer Channel parameters */
-struct vmbus_channel_offer_channel {
- struct vmbus_channel_message_header header;
- struct vmbus_channel_offer offer;
- u32 child_relid;
- u8 monitorid;
- bool monitor_allocated;
-} __packed;
-
-/* Rescind Offer parameters */
-struct vmbus_channel_rescind_offer {
- struct vmbus_channel_message_header header;
- u32 child_relid;
-} __packed;
-
-/*
- * Request Offer -- no parameters, SynIC message contains the partition ID
- * Set Snoop -- no parameters, SynIC message contains the partition ID
- * Clear Snoop -- no parameters, SynIC message contains the partition ID
- * All Offers Delivered -- no parameters, SynIC message contains the partition
- * ID
- * Flush Client -- no parameters, SynIC message contains the partition ID
- */
-
-/* Open Channel parameters */
-struct vmbus_channel_open_channel {
- struct vmbus_channel_message_header header;
-
- /* Identifies the specific VMBus channel that is being opened. */
- u32 child_relid;
-
- /* ID making a particular open request at a channel offer unique. */
- u32 openid;
-
- /* GPADL for the channel's ring buffer. */
- u32 ringbuffer_gpadlhandle;
-
- /* GPADL for the channel's server context save area. */
- u32 server_contextarea_gpadlhandle;
-
- /*
- * The upstream ring buffer begins at offset zero in the memory
- * described by RingBufferGpadlHandle. The downstream ring buffer
- * follows it at this offset (in pages).
- */
- u32 downstream_ringbuffer_pageoffset;
-
- /* User-specific data to be passed along to the server endpoint. */
- unsigned char userdata[MAX_USER_DEFINED_BYTES];
-} __packed;
-
-/* Open Channel Result parameters */
-struct vmbus_channel_open_result {
- struct vmbus_channel_message_header header;
- u32 child_relid;
- u32 openid;
- u32 status;
-} __packed;
-
-/* Close channel parameters; */
-struct vmbus_channel_close_channel {
- struct vmbus_channel_message_header header;
- u32 child_relid;
-} __packed;
-
-/* Channel Message GPADL */
-#define GPADL_TYPE_RING_BUFFER 1
-#define GPADL_TYPE_SERVER_SAVE_AREA 2
-#define GPADL_TYPE_TRANSACTION 8
-
-/*
- * The number of PFNs in a GPADL message is defined by the number of
- * pages that would be spanned by ByteCount and ByteOffset. If the
- * implied number of PFNs won't fit in this packet, there will be a
- * follow-up packet that contains more.
- */
-struct vmbus_channel_gpadl_header {
- struct vmbus_channel_message_header header;
- u32 child_relid;
- u32 gpadl;
- u16 range_buflen;
- u16 rangecount;
- struct gpa_range range[0];
-} __packed;
-
-/* This is the followup packet that contains more PFNs. */
-struct vmbus_channel_gpadl_body {
- struct vmbus_channel_message_header header;
- u32 msgnumber;
- u32 gpadl;
- u64 pfn[0];
-} __packed;
-
-struct vmbus_channel_gpadl_created {
- struct vmbus_channel_message_header header;
- u32 child_relid;
- u32 gpadl;
- u32 creation_status;
-} __packed;
-
-struct vmbus_channel_gpadl_teardown {
- struct vmbus_channel_message_header header;
- u32 child_relid;
- u32 gpadl;
-} __packed;
-
-struct vmbus_channel_gpadl_torndown {
- struct vmbus_channel_message_header header;
- u32 gpadl;
-} __packed;
-
-#ifdef VMBUS_FEATURE_PARENT_OR_PEER_MEMORY_MAPPED_INTO_A_CHILD
-struct vmbus_channel_view_range_add {
- struct vmbus_channel_message_header header;
- PHYSICAL_ADDRESS viewrange_base;
- u64 viewrange_length;
- u32 child_relid;
-} __packed;
-
-struct vmbus_channel_view_range_remove {
- struct vmbus_channel_message_header header;
- PHYSICAL_ADDRESS viewrange_base;
- u32 child_relid;
-} __packed;
-#endif
-
-struct vmbus_channel_relid_released {
- struct vmbus_channel_message_header header;
- u32 child_relid;
-} __packed;
-
-struct vmbus_channel_initiate_contact {
- struct vmbus_channel_message_header header;
- u32 vmbus_version_requested;
- u32 padding2;
- u64 interrupt_page;
- u64 monitor_page1;
- u64 monitor_page2;
-} __packed;
-
-struct vmbus_channel_version_response {
- struct vmbus_channel_message_header header;
- bool version_supported;
-} __packed;
-
-enum vmbus_channel_state {
- CHANNEL_OFFER_STATE,
- CHANNEL_OPENING_STATE,
- CHANNEL_OPEN_STATE,
-};
-
-struct vmbus_channel_debug_info {
- u32 relid;
- enum vmbus_channel_state state;
- uuid_le interfacetype;
- uuid_le interface_instance;
- u32 monitorid;
- u32 servermonitor_pending;
- u32 servermonitor_latency;
- u32 servermonitor_connectionid;
- u32 clientmonitor_pending;
- u32 clientmonitor_latency;
- u32 clientmonitor_connectionid;
-
- struct hv_ring_buffer_debug_info inbound;
- struct hv_ring_buffer_debug_info outbound;
-};
-
-/*
- * Represents each channel msg on the vmbus connection This is a
- * variable-size data structure depending on the msg type itself
- */
-struct vmbus_channel_msginfo {
- /* Bookkeeping stuff */
- struct list_head msglistentry;
-
- /* So far, this is only used to handle gpadl body message */
- struct list_head submsglist;
-
- /* Synchronize the request/response if needed */
- struct completion waitevent;
- union {
- struct vmbus_channel_version_supported version_supported;
- struct vmbus_channel_open_result open_result;
- struct vmbus_channel_gpadl_torndown gpadl_torndown;
- struct vmbus_channel_gpadl_created gpadl_created;
- struct vmbus_channel_version_response version_response;
- } response;
-
- u32 msgsize;
- /*
- * The channel message that goes out on the "wire".
- * It will contain at minimum the VMBUS_CHANNEL_MESSAGE_HEADER header
- */
- unsigned char msg[0];
-};
-
-struct vmbus_close_msg {
- struct vmbus_channel_msginfo info;
- struct vmbus_channel_close_channel msg;
-};
-
-struct vmbus_channel {
- struct list_head listentry;
-
- struct hv_device *device_obj;
-
- struct work_struct work;
-
- enum vmbus_channel_state state;
-
- struct vmbus_channel_offer_channel offermsg;
- /*
- * These are based on the OfferMsg.MonitorId.
- * Save it here for easy access.
- */
- u8 monitor_grp;
- u8 monitor_bit;
-
- u32 ringbuffer_gpadlhandle;
-
- /* Allocated memory for ring buffer */
- void *ringbuffer_pages;
- u32 ringbuffer_pagecount;
- struct hv_ring_buffer_info outbound; /* send to parent */
- struct hv_ring_buffer_info inbound; /* receive from parent */
- spinlock_t inbound_lock;
- struct workqueue_struct *controlwq;
-
- struct vmbus_close_msg close_msg;
-
- /* Channel callback are invoked in this workqueue context */
- /* HANDLE dataWorkQueue; */
-
- void (*onchannel_callback)(void *context);
- void *channel_callback_context;
-};
-
-void vmbus_onmessage(void *context);
-
-int vmbus_request_offers(void);
-
-/* The format must be the same as struct vmdata_gpa_direct */
-struct vmbus_channel_packet_page_buffer {
- u16 type;
- u16 dataoffset8;
- u16 length8;
- u16 flags;
- u64 transactionid;
- u32 reserved;
- u32 rangecount;
- struct hv_page_buffer range[MAX_PAGE_BUFFER_COUNT];
-} __packed;
-
-/* The format must be the same as struct vmdata_gpa_direct */
-struct vmbus_channel_packet_multipage_buffer {
- u16 type;
- u16 dataoffset8;
- u16 length8;
- u16 flags;
- u64 transactionid;
- u32 reserved;
- u32 rangecount; /* Always 1 in this case */
- struct hv_multipage_buffer range;
-} __packed;
-
-
-extern int vmbus_open(struct vmbus_channel *channel,
- u32 send_ringbuffersize,
- u32 recv_ringbuffersize,
- void *userdata,
- u32 userdatalen,
- void(*onchannel_callback)(void *context),
- void *context);
-
-extern void vmbus_close(struct vmbus_channel *channel);
-
-extern int vmbus_sendpacket(struct vmbus_channel *channel,
- const void *buffer,
- u32 bufferLen,
- u64 requestid,
- enum vmbus_packet_type type,
- u32 flags);
-
-extern int vmbus_sendpacket_pagebuffer(struct vmbus_channel *channel,
- struct hv_page_buffer pagebuffers[],
- u32 pagecount,
- void *buffer,
- u32 bufferlen,
- u64 requestid);
-
-extern int vmbus_sendpacket_multipagebuffer(struct vmbus_channel *channel,
- struct hv_multipage_buffer *mpb,
- void *buffer,
- u32 bufferlen,
- u64 requestid);
-
-extern int vmbus_establish_gpadl(struct vmbus_channel *channel,
- void *kbuffer,
- u32 size,
- u32 *gpadl_handle);
-
-extern int vmbus_teardown_gpadl(struct vmbus_channel *channel,
- u32 gpadl_handle);
-
-extern int vmbus_recvpacket(struct vmbus_channel *channel,
- void *buffer,
- u32 bufferlen,
- u32 *buffer_actual_len,
- u64 *requestid);
-
-extern int vmbus_recvpacket_raw(struct vmbus_channel *channel,
- void *buffer,
- u32 bufferlen,
- u32 *buffer_actual_len,
- u64 *requestid);
-
-
-extern void vmbus_get_debug_info(struct vmbus_channel *channel,
- struct vmbus_channel_debug_info *debug);
-
-extern void vmbus_ontimer(unsigned long data);
-
-struct hv_dev_port_info {
- u32 int_mask;
- u32 read_idx;
- u32 write_idx;
- u32 bytes_avail_toread;
- u32 bytes_avail_towrite;
-};
-
-/* Base driver object */
-struct hv_driver {
- const char *name;
-
- /* the device type supported by this driver */
- uuid_le dev_type;
- const struct hv_vmbus_device_id *id_table;
-
- struct device_driver driver;
-
- int (*probe)(struct hv_device *, const struct hv_vmbus_device_id *);
- int (*remove)(struct hv_device *);
- void (*shutdown)(struct hv_device *);
-
-};
-
-/* Base device object */
-struct hv_device {
- /* the device type id of this device */
- uuid_le dev_type;
-
- /* the device instance id of this device */
- uuid_le dev_instance;
-
- struct device device;
-
- struct vmbus_channel *channel;
-};
-
-
-static inline struct hv_device *device_to_hv_device(struct device *d)
-{
- return container_of(d, struct hv_device, device);
-}
-
-static inline struct hv_driver *drv_to_hv_drv(struct device_driver *d)
-{
- return container_of(d, struct hv_driver, driver);
-}
-
-static inline void hv_set_drvdata(struct hv_device *dev, void *data)
-{
- dev_set_drvdata(&dev->device, data);
-}
-
-static inline void *hv_get_drvdata(struct hv_device *dev)
-{
- return dev_get_drvdata(&dev->device);
-}
-
-/* Vmbus interface */
-#define vmbus_driver_register(driver) \
- __vmbus_driver_register(driver, THIS_MODULE, KBUILD_MODNAME)
-int __must_check __vmbus_driver_register(struct hv_driver *hv_driver,
- struct module *owner,
- const char *mod_name);
-void vmbus_driver_unregister(struct hv_driver *hv_driver);
-
-/**
- * VMBUS_DEVICE - macro used to describe a specific hyperv vmbus device
- *
- * This macro is used to create a struct hv_vmbus_device_id that matches a
- * specific device.
- */
-#define VMBUS_DEVICE(g0, g1, g2, g3, g4, g5, g6, g7, \
- g8, g9, ga, gb, gc, gd, ge, gf) \
- .guid = { g0, g1, g2, g3, g4, g5, g6, g7, \
- g8, g9, ga, gb, gc, gd, ge, gf },
-
-/*
- * Common header for Hyper-V ICs
- */
-
-#define ICMSGTYPE_NEGOTIATE 0
-#define ICMSGTYPE_HEARTBEAT 1
-#define ICMSGTYPE_KVPEXCHANGE 2
-#define ICMSGTYPE_SHUTDOWN 3
-#define ICMSGTYPE_TIMESYNC 4
-#define ICMSGTYPE_VSS 5
-
-#define ICMSGHDRFLAG_TRANSACTION 1
-#define ICMSGHDRFLAG_REQUEST 2
-#define ICMSGHDRFLAG_RESPONSE 4
-
-#define HV_S_OK 0x00000000
-#define HV_E_FAIL 0x80004005
-#define HV_S_CONT 0x80070103
-#define HV_ERROR_NOT_SUPPORTED 0x80070032
-#define HV_ERROR_MACHINE_LOCKED 0x800704F7
-
-/*
- * While we want to handle util services as regular devices,
- * there is only one instance of each of these services; so
- * we statically allocate the service specific state.
- */
-
-struct hv_util_service {
- u8 *recv_buffer;
- void (*util_cb)(void *);
- int (*util_init)(struct hv_util_service *);
- void (*util_deinit)(void);
-};
-
-struct vmbuspipe_hdr {
- u32 flags;
- u32 msgsize;
-} __packed;
-
-struct ic_version {
- u16 major;
- u16 minor;
-} __packed;
-
-struct icmsg_hdr {
- struct ic_version icverframe;
- u16 icmsgtype;
- struct ic_version icvermsg;
- u16 icmsgsize;
- u32 status;
- u8 ictransaction_id;
- u8 icflags;
- u8 reserved[2];
-} __packed;
-
-struct icmsg_negotiate {
- u16 icframe_vercnt;
- u16 icmsg_vercnt;
- u32 reserved;
- struct ic_version icversion_data[1]; /* any size array */
-} __packed;
-
-struct shutdown_msg_data {
- u32 reason_code;
- u32 timeout_seconds;
- u32 flags;
- u8 display_message[2048];
-} __packed;
-
-struct heartbeat_msg_data {
- u64 seq_num;
- u32 reserved[8];
-} __packed;
-
-/* Time Sync IC defs */
-#define ICTIMESYNCFLAG_PROBE 0
-#define ICTIMESYNCFLAG_SYNC 1
-#define ICTIMESYNCFLAG_SAMPLE 2
-
-#ifdef __x86_64__
-#define WLTIMEDELTA 116444736000000000L /* in 100ns unit */
-#else
-#define WLTIMEDELTA 116444736000000000LL
-#endif
-
-struct ictimesync_data {
- u64 parenttime;
- u64 childtime;
- u64 roundtriptime;
- u8 flags;
-} __packed;
-
-struct hyperv_service_callback {
- u8 msg_type;
- char *log_msg;
- uuid_le data;
- struct vmbus_channel *channel;
- void (*callback) (void *context);
-};
-
-extern void vmbus_prep_negotiate_resp(struct icmsg_hdr *,
- struct icmsg_negotiate *, u8 *);
-
-int hv_kvp_init(struct hv_util_service *);
-void hv_kvp_deinit(void);
-void hv_kvp_onchannelcallback(void *);
-
-#endif /* __KERNEL__ */
-#endif /* _HYPERV_H */
diff --git a/ANDROID_3.4.5/include/linux/hysdn_if.h b/ANDROID_3.4.5/include/linux/hysdn_if.h
deleted file mode 100644
index 00236ae3..00000000
--- a/ANDROID_3.4.5/include/linux/hysdn_if.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* $Id: hysdn_if.h,v 1.1.8.3 2001/09/23 22:25:05 kai Exp $
- *
- * Linux driver for HYSDN cards
- * ioctl definitions shared by hynetmgr and driver.
- *
- * Author Werner Cornelius (werner@titro.de) for Hypercope GmbH
- * Copyright 1999 by Werner Cornelius (werner@titro.de)
- *
- * This software may be used and distributed according to the terms
- * of the GNU General Public License, incorporated herein by reference.
- *
- */
-
-/****************/
-/* error values */
-/****************/
-#define ERR_NONE 0 /* no error occurred */
-#define ERR_ALREADY_BOOT 1000 /* we are already booting */
-#define EPOF_BAD_MAGIC 1001 /* bad magic in POF header */
-#define ERR_BOARD_DPRAM 1002 /* board DPRAM failed */
-#define EPOF_INTERNAL 1003 /* internal POF handler error */
-#define EPOF_BAD_IMG_SIZE 1004 /* POF boot image size invalid */
-#define ERR_BOOTIMG_FAIL 1005 /* 1. stage boot image did not start */
-#define ERR_BOOTSEQ_FAIL 1006 /* 2. stage boot seq handshake timeout */
-#define ERR_POF_TIMEOUT 1007 /* timeout waiting for card pof ready */
-#define ERR_NOT_BOOTED 1008 /* operation only allowed when booted */
-#define ERR_CONF_LONG 1009 /* conf line is too long */
-#define ERR_INV_CHAN 1010 /* invalid channel number */
-#define ERR_ASYNC_TIME 1011 /* timeout sending async data */
-
-
-
-
diff --git a/ANDROID_3.4.5/include/linux/i2c-algo-bit.h b/ANDROID_3.4.5/include/linux/i2c-algo-bit.h
deleted file mode 100644
index 63904ba6..00000000
--- a/ANDROID_3.4.5/include/linux/i2c-algo-bit.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* ------------------------------------------------------------------------- */
-/* i2c-algo-bit.h i2c driver algorithms for bit-shift adapters */
-/* ------------------------------------------------------------------------- */
-/* Copyright (C) 1995-99 Simon G. Vogl
-
- 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., 51 Franklin Street, Fifth Floor, Boston,
- MA 02110-1301 USA. */
-/* ------------------------------------------------------------------------- */
-
-/* With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi> and even
- Frodo Looijaard <frodol@dds.nl> */
-
-#ifndef _LINUX_I2C_ALGO_BIT_H
-#define _LINUX_I2C_ALGO_BIT_H
-
-/* --- Defines for bit-adapters --------------------------------------- */
-/*
- * This struct contains the hw-dependent functions of bit-style adapters to
- * manipulate the line states, and to init any hw-specific features. This is
- * only used if you have more than one hw-type of adapter running.
- */
-struct i2c_algo_bit_data {
- void *data; /* private data for lowlevel routines */
- void (*setsda) (void *data, int state);
- void (*setscl) (void *data, int state);
- int (*getsda) (void *data);
- int (*getscl) (void *data);
- int (*pre_xfer) (struct i2c_adapter *);
- void (*post_xfer) (struct i2c_adapter *);
-
- /* local settings */
- int udelay; /* half clock cycle time in us,
- minimum 2 us for fast-mode I2C,
- minimum 5 us for standard-mode I2C and SMBus,
- maximum 50 us for SMBus */
- int timeout; /* in jiffies */
-};
-
-int i2c_bit_add_bus(struct i2c_adapter *);
-int i2c_bit_add_numbered_bus(struct i2c_adapter *);
-extern const struct i2c_algorithm i2c_bit_algo;
-
-#endif /* _LINUX_I2C_ALGO_BIT_H */
diff --git a/ANDROID_3.4.5/include/linux/i2c-algo-pca.h b/ANDROID_3.4.5/include/linux/i2c-algo-pca.h
deleted file mode 100644
index 1364d62e..00000000
--- a/ANDROID_3.4.5/include/linux/i2c-algo-pca.h
+++ /dev/null
@@ -1,70 +0,0 @@
-#ifndef _LINUX_I2C_ALGO_PCA_H
-#define _LINUX_I2C_ALGO_PCA_H
-
-/* Chips known to the pca algo */
-#define I2C_PCA_CHIP_9564 0x00
-#define I2C_PCA_CHIP_9665 0x01
-
-/* Internal period for PCA9665 oscilator */
-#define I2C_PCA_OSC_PER 3 /* e10-8s */
-
-/* Clock speeds for the bus for PCA9564*/
-#define I2C_PCA_CON_330kHz 0x00
-#define I2C_PCA_CON_288kHz 0x01
-#define I2C_PCA_CON_217kHz 0x02
-#define I2C_PCA_CON_146kHz 0x03
-#define I2C_PCA_CON_88kHz 0x04
-#define I2C_PCA_CON_59kHz 0x05
-#define I2C_PCA_CON_44kHz 0x06
-#define I2C_PCA_CON_36kHz 0x07
-
-/* PCA9564 registers */
-#define I2C_PCA_STA 0x00 /* STATUS Read Only */
-#define I2C_PCA_TO 0x00 /* TIMEOUT Write Only */
-#define I2C_PCA_DAT 0x01 /* DATA Read/Write */
-#define I2C_PCA_ADR 0x02 /* OWN ADR Read/Write */
-#define I2C_PCA_CON 0x03 /* CONTROL Read/Write */
-
-/* PCA9665 registers */
-#define I2C_PCA_INDPTR 0x00 /* INDIRECT Pointer Write Only */
-#define I2C_PCA_IND 0x02 /* INDIRECT Read/Write */
-
-/* PCA9665 indirect registers */
-#define I2C_PCA_ICOUNT 0x00 /* Byte Count for buffered mode */
-#define I2C_PCA_IADR 0x01 /* OWN ADR */
-#define I2C_PCA_ISCLL 0x02 /* SCL LOW period */
-#define I2C_PCA_ISCLH 0x03 /* SCL HIGH period */
-#define I2C_PCA_ITO 0x04 /* TIMEOUT */
-#define I2C_PCA_IPRESET 0x05 /* Parallel bus reset */
-#define I2C_PCA_IMODE 0x06 /* I2C Bus mode */
-
-/* PCA9665 I2C bus mode */
-#define I2C_PCA_MODE_STD 0x00 /* Standard mode */
-#define I2C_PCA_MODE_FAST 0x01 /* Fast mode */
-#define I2C_PCA_MODE_FASTP 0x02 /* Fast Plus mode */
-#define I2C_PCA_MODE_TURBO 0x03 /* Turbo mode */
-
-
-#define I2C_PCA_CON_AA 0x80 /* Assert Acknowledge */
-#define I2C_PCA_CON_ENSIO 0x40 /* Enable */
-#define I2C_PCA_CON_STA 0x20 /* Start */
-#define I2C_PCA_CON_STO 0x10 /* Stop */
-#define I2C_PCA_CON_SI 0x08 /* Serial Interrupt */
-#define I2C_PCA_CON_CR 0x07 /* Clock Rate (MASK) */
-
-struct i2c_algo_pca_data {
- void *data; /* private low level data */
- void (*write_byte) (void *data, int reg, int val);
- int (*read_byte) (void *data, int reg);
- int (*wait_for_completion) (void *data);
- void (*reset_chip) (void *data);
- /* For PCA9564, use one of the predefined frequencies:
- * 330000, 288000, 217000, 146000, 88000, 59000, 44000, 36000
- * For PCA9665, use the frequency you want here. */
- unsigned int i2c_clock;
-};
-
-int i2c_pca_add_bus(struct i2c_adapter *);
-int i2c_pca_add_numbered_bus(struct i2c_adapter *);
-
-#endif /* _LINUX_I2C_ALGO_PCA_H */
diff --git a/ANDROID_3.4.5/include/linux/i2c-algo-pcf.h b/ANDROID_3.4.5/include/linux/i2c-algo-pcf.h
deleted file mode 100644
index 538e8f41..00000000
--- a/ANDROID_3.4.5/include/linux/i2c-algo-pcf.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* ------------------------------------------------------------------------- */
-/* adap-pcf.h i2c driver algorithms for PCF8584 adapters */
-/* ------------------------------------------------------------------------- */
-/* Copyright (C) 1995-97 Simon G. Vogl
- 1998-99 Hans Berglund
-
- 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., 51 Franklin Street, Fifth Floor, Boston,
- MA 02110-1301 USA. */
-/* ------------------------------------------------------------------------- */
-
-/* With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi> and even
- Frodo Looijaard <frodol@dds.nl> */
-
-#ifndef _LINUX_I2C_ALGO_PCF_H
-#define _LINUX_I2C_ALGO_PCF_H
-
-struct i2c_algo_pcf_data {
- void *data; /* private data for lolevel routines */
- void (*setpcf) (void *data, int ctl, int val);
- int (*getpcf) (void *data, int ctl);
- int (*getown) (void *data);
- int (*getclock) (void *data);
- void (*waitforpin) (void *data);
-
- void (*xfer_begin) (void *data);
- void (*xfer_end) (void *data);
-
- /* Multi-master lost arbitration back-off delay (msecs)
- * This should be set by the bus adapter or knowledgable client
- * if bus is multi-mastered, else zero
- */
- unsigned long lab_mdelay;
-};
-
-int i2c_pcf_add_bus(struct i2c_adapter *);
-
-#endif /* _LINUX_I2C_ALGO_PCF_H */
diff --git a/ANDROID_3.4.5/include/linux/i2c-dev.h b/ANDROID_3.4.5/include/linux/i2c-dev.h
deleted file mode 100644
index 8a7406b2..00000000
--- a/ANDROID_3.4.5/include/linux/i2c-dev.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- i2c-dev.h - i2c-bus driver, char device interface
-
- Copyright (C) 1995-97 Simon G. Vogl
- Copyright (C) 1998-99 Frodo Looijaard <frodol@dds.nl>
-
- 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., 51 Franklin Street, Fifth Floor, Boston,
- MA 02110-1301 USA.
-*/
-
-#ifndef _LINUX_I2C_DEV_H
-#define _LINUX_I2C_DEV_H
-
-#include <linux/types.h>
-#include <linux/compiler.h>
-
-/* /dev/i2c-X ioctl commands. The ioctl's parameter is always an
- * unsigned long, except for:
- * - I2C_FUNCS, takes pointer to an unsigned long
- * - I2C_RDWR, takes pointer to struct i2c_rdwr_ioctl_data
- * - I2C_SMBUS, takes pointer to struct i2c_smbus_ioctl_data
- */
-#define I2C_RETRIES 0x0701 /* number of times a device address should
- be polled when not acknowledging */
-#define I2C_TIMEOUT 0x0702 /* set timeout in units of 10 ms */
-
-/* NOTE: Slave address is 7 or 10 bits, but 10-bit addresses
- * are NOT supported! (due to code brokenness)
- */
-#define I2C_SLAVE 0x0703 /* Use this slave address */
-#define I2C_SLAVE_FORCE 0x0706 /* Use this slave address, even if it
- is already in use by a driver! */
-#define I2C_TENBIT 0x0704 /* 0 for 7 bit addrs, != 0 for 10 bit */
-
-#define I2C_FUNCS 0x0705 /* Get the adapter functionality mask */
-
-#define I2C_RDWR 0x0707 /* Combined R/W transfer (one STOP only) */
-
-#define I2C_PEC 0x0708 /* != 0 to use PEC with SMBus */
-#define I2C_SMBUS 0x0720 /* SMBus transfer */
-
-
-/* This is the structure as used in the I2C_SMBUS ioctl call */
-struct i2c_smbus_ioctl_data {
- __u8 read_write;
- __u8 command;
- __u32 size;
- union i2c_smbus_data __user *data;
-};
-
-/* This is the structure as used in the I2C_RDWR ioctl call */
-struct i2c_rdwr_ioctl_data {
- struct i2c_msg __user *msgs; /* pointers to i2c_msgs */
- __u32 nmsgs; /* number of i2c_msgs */
-};
-
-#define I2C_RDRW_IOCTL_MAX_MSGS 42
-
-#ifdef __KERNEL__
-#define I2C_MAJOR 89 /* Device major number */
-#endif
-
-#endif /* _LINUX_I2C_DEV_H */
diff --git a/ANDROID_3.4.5/include/linux/i2c-gpio.h b/ANDROID_3.4.5/include/linux/i2c-gpio.h
deleted file mode 100644
index c1bcb1f1..00000000
--- a/ANDROID_3.4.5/include/linux/i2c-gpio.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * i2c-gpio interface to platform code
- *
- * Copyright (C) 2007 Atmel 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.
- */
-#ifndef _LINUX_I2C_GPIO_H
-#define _LINUX_I2C_GPIO_H
-
-/**
- * struct i2c_gpio_platform_data - Platform-dependent data for i2c-gpio
- * @sda_pin: GPIO pin ID to use for SDA
- * @scl_pin: GPIO pin ID to use for SCL
- * @udelay: signal toggle delay. SCL frequency is (500 / udelay) kHz
- * @timeout: clock stretching timeout in jiffies. If the slave keeps
- * SCL low for longer than this, the transfer will time out.
- * @sda_is_open_drain: SDA is configured as open drain, i.e. the pin
- * isn't actively driven high when setting the output value high.
- * gpio_get_value() must return the actual pin state even if the
- * pin is configured as an output.
- * @scl_is_open_drain: SCL is set up as open drain. Same requirements
- * as for sda_is_open_drain apply.
- * @scl_is_output_only: SCL output drivers cannot be turned off.
- */
-struct i2c_gpio_platform_data {
- unsigned int sda_pin;
- unsigned int scl_pin;
- int udelay;
- int timeout;
- unsigned int sda_is_open_drain:1;
- unsigned int scl_is_open_drain:1;
- unsigned int scl_is_output_only:1;
-};
-
-#endif /* _LINUX_I2C_GPIO_H */
diff --git a/ANDROID_3.4.5/include/linux/i2c-mux.h b/ANDROID_3.4.5/include/linux/i2c-mux.h
deleted file mode 100644
index 747f0cde..00000000
--- a/ANDROID_3.4.5/include/linux/i2c-mux.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- *
- * i2c-mux.h - functions for the i2c-bus mux support
- *
- * Copyright (c) 2008-2009 Rodolfo Giometti <giometti@linux.it>
- * Copyright (c) 2008-2009 Eurotech S.p.A. <info@eurotech.it>
- * Michael Lawnick <michael.lawnick.ext@nsn.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., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301 USA.
- */
-
-#ifndef _LINUX_I2C_MUX_H
-#define _LINUX_I2C_MUX_H
-
-#ifdef __KERNEL__
-
-/*
- * Called to create a i2c bus on a multiplexed bus segment.
- * The mux_dev and chan_id parameters are passed to the select
- * and deselect callback functions to perform hardware-specific
- * mux control.
- */
-struct i2c_adapter *i2c_add_mux_adapter(struct i2c_adapter *parent,
- void *mux_dev, u32 force_nr, u32 chan_id,
- int (*select) (struct i2c_adapter *,
- void *mux_dev, u32 chan_id),
- int (*deselect) (struct i2c_adapter *,
- void *mux_dev, u32 chan_id));
-
-int i2c_del_mux_adapter(struct i2c_adapter *adap);
-
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_I2C_MUX_H */
diff --git a/ANDROID_3.4.5/include/linux/i2c-ocores.h b/ANDROID_3.4.5/include/linux/i2c-ocores.h
deleted file mode 100644
index 4d5e57ff..00000000
--- a/ANDROID_3.4.5/include/linux/i2c-ocores.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * i2c-ocores.h - definitions for the i2c-ocores interface
- *
- * Peter Korsgaard <jacmet@sunsite.dk>
- *
- * This file is licensed under the terms of the GNU General Public License
- * version 2. This program is licensed "as is" without any warranty of any
- * kind, whether express or implied.
- */
-
-#ifndef _LINUX_I2C_OCORES_H
-#define _LINUX_I2C_OCORES_H
-
-struct ocores_i2c_platform_data {
- u32 regstep; /* distance between registers */
- u32 clock_khz; /* input clock in kHz */
- u8 num_devices; /* number of devices in the devices list */
- struct i2c_board_info const *devices; /* devices connected to the bus */
-};
-
-#endif /* _LINUX_I2C_OCORES_H */
diff --git a/ANDROID_3.4.5/include/linux/i2c-omap.h b/ANDROID_3.4.5/include/linux/i2c-omap.h
deleted file mode 100644
index 92a0dc75..00000000
--- a/ANDROID_3.4.5/include/linux/i2c-omap.h
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef __I2C_OMAP_H__
-#define __I2C_OMAP_H__
-
-#include <linux/platform_device.h>
-
-/*
- * Version 2 of the I2C peripheral unit has a different register
- * layout and extra registers. The ID register in the V2 peripheral
- * unit on the OMAP4430 reports the same ID as the V1 peripheral
- * unit on the OMAP3530, so we must inform the driver which IP
- * version we know it is running on from platform / cpu-specific
- * code using these constants in the hwmod class definition.
- */
-
-#define OMAP_I2C_IP_VERSION_1 1
-#define OMAP_I2C_IP_VERSION_2 2
-
-/* struct omap_i2c_bus_platform_data .flags meanings */
-
-#define OMAP_I2C_FLAG_NO_FIFO BIT(0)
-#define OMAP_I2C_FLAG_SIMPLE_CLOCK BIT(1)
-#define OMAP_I2C_FLAG_16BIT_DATA_REG BIT(2)
-#define OMAP_I2C_FLAG_RESET_REGS_POSTIDLE BIT(3)
-#define OMAP_I2C_FLAG_APPLY_ERRATA_I207 BIT(4)
-#define OMAP_I2C_FLAG_ALWAYS_ARMXOR_CLK BIT(5)
-#define OMAP_I2C_FLAG_FORCE_19200_INT_CLK BIT(6)
-/* how the CPU address bus must be translated for I2C unit access */
-#define OMAP_I2C_FLAG_BUS_SHIFT_NONE 0
-#define OMAP_I2C_FLAG_BUS_SHIFT_1 BIT(7)
-#define OMAP_I2C_FLAG_BUS_SHIFT_2 BIT(8)
-#define OMAP_I2C_FLAG_BUS_SHIFT__SHIFT 7
-
-struct omap_i2c_bus_platform_data {
- u32 clkrate;
- u32 rev;
- u32 flags;
- void (*set_mpu_wkup_lat)(struct device *dev, long set);
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/i2c-pca-platform.h b/ANDROID_3.4.5/include/linux/i2c-pca-platform.h
deleted file mode 100644
index aba33759..00000000
--- a/ANDROID_3.4.5/include/linux/i2c-pca-platform.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef I2C_PCA9564_PLATFORM_H
-#define I2C_PCA9564_PLATFORM_H
-
-struct i2c_pca9564_pf_platform_data {
- int gpio; /* pin to reset chip. driver will work when
- * not supplied (negative value), but it
- * cannot exit some error conditions then */
- int i2c_clock_speed; /* values are defined in linux/i2c-algo-pca.h */
- int timeout; /* timeout in jiffies */
-};
-
-#endif /* I2C_PCA9564_PLATFORM_H */
diff --git a/ANDROID_3.4.5/include/linux/i2c-pnx.h b/ANDROID_3.4.5/include/linux/i2c-pnx.h
deleted file mode 100644
index a87124d4..00000000
--- a/ANDROID_3.4.5/include/linux/i2c-pnx.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Header file for I2C support on PNX010x/4008.
- *
- * Author: Dennis Kovalev <dkovalev@ru.mvista.com>
- *
- * 2004-2006 (c) MontaVista Software, Inc. This file is licensed under
- * the terms of the GNU General Public License version 2. This program
- * is licensed "as is" without any warranty of any kind, whether express
- * or implied.
- */
-
-#ifndef __I2C_PNX_H__
-#define __I2C_PNX_H__
-
-struct platform_device;
-struct clk;
-
-struct i2c_pnx_mif {
- int ret; /* Return value */
- int mode; /* Interface mode */
- struct completion complete; /* I/O completion */
- struct timer_list timer; /* Timeout */
- u8 * buf; /* Data buffer */
- int len; /* Length of data buffer */
-};
-
-struct i2c_pnx_algo_data {
- void __iomem *ioaddr;
- struct i2c_pnx_mif mif;
- int last;
- struct clk *clk;
- struct i2c_pnx_data *i2c_pnx;
- struct i2c_adapter adapter;
-};
-
-struct i2c_pnx_data {
- const char *name;
- u32 base;
- int irq;
-};
-
-#endif /* __I2C_PNX_H__ */
diff --git a/ANDROID_3.4.5/include/linux/i2c-pxa.h b/ANDROID_3.4.5/include/linux/i2c-pxa.h
deleted file mode 100644
index 41dcdfe7..00000000
--- a/ANDROID_3.4.5/include/linux/i2c-pxa.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef _LINUX_I2C_ALGO_PXA_H
-#define _LINUX_I2C_ALGO_PXA_H
-
-typedef enum i2c_slave_event_e {
- I2C_SLAVE_EVENT_START_READ,
- I2C_SLAVE_EVENT_START_WRITE,
- I2C_SLAVE_EVENT_STOP
-} i2c_slave_event_t;
-
-struct i2c_slave_client {
- void *data;
- void (*event)(void *ptr, i2c_slave_event_t event);
- int (*read) (void *ptr);
- void (*write)(void *ptr, unsigned int val);
-};
-
-#endif /* _LINUX_I2C_ALGO_PXA_H */
diff --git a/ANDROID_3.4.5/include/linux/i2c-smbus.h b/ANDROID_3.4.5/include/linux/i2c-smbus.h
deleted file mode 100644
index 017fb40f..00000000
--- a/ANDROID_3.4.5/include/linux/i2c-smbus.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * i2c-smbus.h - SMBus extensions to the I2C protocol
- *
- * Copyright (C) 2010 Jean Delvare <khali@linux-fr.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., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301 USA.
- */
-
-#ifndef _LINUX_I2C_SMBUS_H
-#define _LINUX_I2C_SMBUS_H
-
-#include <linux/i2c.h>
-
-
-/**
- * i2c_smbus_alert_setup - platform data for the smbus_alert i2c client
- * @alert_edge_triggered: whether the alert interrupt is edge (1) or level (0)
- * triggered
- * @irq: IRQ number, if the smbus_alert driver should take care of interrupt
- * handling
- *
- * If irq is not specified, the smbus_alert driver doesn't take care of
- * interrupt handling. In that case it is up to the I2C bus driver to either
- * handle the interrupts or to poll for alerts.
- *
- * If irq is specified then it it crucial that alert_edge_triggered is
- * properly set.
- */
-struct i2c_smbus_alert_setup {
- unsigned int alert_edge_triggered:1;
- int irq;
-};
-
-struct i2c_client *i2c_setup_smbus_alert(struct i2c_adapter *adapter,
- struct i2c_smbus_alert_setup *setup);
-int i2c_handle_smbus_alert(struct i2c_client *ara);
-
-#endif /* _LINUX_I2C_SMBUS_H */
diff --git a/ANDROID_3.4.5/include/linux/i2c-tegra.h b/ANDROID_3.4.5/include/linux/i2c-tegra.h
deleted file mode 100644
index 9c85da49..00000000
--- a/ANDROID_3.4.5/include/linux/i2c-tegra.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * drivers/i2c/busses/i2c-tegra.c
- *
- * Copyright (C) 2010 Google, Inc.
- * Author: Colin Cross <ccross@android.com>
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#ifndef _LINUX_I2C_TEGRA_H
-#define _LINUX_I2C_TEGRA_H
-
-struct tegra_i2c_platform_data {
- unsigned long bus_clk_rate;
-};
-
-#endif /* _LINUX_I2C_TEGRA_H */
diff --git a/ANDROID_3.4.5/include/linux/i2c-xiic.h b/ANDROID_3.4.5/include/linux/i2c-xiic.h
deleted file mode 100644
index 4f9f2256..00000000
--- a/ANDROID_3.4.5/include/linux/i2c-xiic.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * i2c-xiic.h
- * Copyright (c) 2009 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.
- *
- * 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.
- */
-
-/* Supports:
- * Xilinx IIC
- */
-
-#ifndef _LINUX_I2C_XIIC_H
-#define _LINUX_I2C_XIIC_H
-
-/**
- * struct xiic_i2c_platform_data - Platform data of the Xilinx I2C driver
- * @num_devices: Number of devices that shall be added when the driver
- * is probed.
- * @devices: The actuall devices to add.
- *
- * This purpose of this platform data struct is to be able to provide a number
- * of devices that should be added to the I2C bus. The reason is that sometimes
- * the I2C board info is not enough, a new PCI board can for instance be
- * plugged into a standard PC, and the bus number might be unknown at
- * early init time.
- */
-struct xiic_i2c_platform_data {
- u8 num_devices;
- struct i2c_board_info const *devices;
-};
-
-#endif /* _LINUX_I2C_XIIC_H */
diff --git a/ANDROID_3.4.5/include/linux/i2c.h b/ANDROID_3.4.5/include/linux/i2c.h
deleted file mode 100644
index 195d8b3d..00000000
--- a/ANDROID_3.4.5/include/linux/i2c.h
+++ /dev/null
@@ -1,619 +0,0 @@
-/* ------------------------------------------------------------------------- */
-/* */
-/* i2c.h - definitions for the i2c-bus interface */
-/* */
-/* ------------------------------------------------------------------------- */
-/* Copyright (C) 1995-2000 Simon G. Vogl
-
- 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., 51 Franklin Street, Fifth Floor, Boston,
- MA 02110-1301 USA. */
-/* ------------------------------------------------------------------------- */
-
-/* With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi> and
- Frodo Looijaard <frodol@dds.nl> */
-
-#ifndef _LINUX_I2C_H
-#define _LINUX_I2C_H
-
-#include <linux/types.h>
-#ifdef __KERNEL__
-#include <linux/mod_devicetable.h>
-#include <linux/device.h> /* for struct device */
-#include <linux/sched.h> /* for completion */
-#include <linux/mutex.h>
-#include <linux/of.h> /* for struct device_node */
-#include <linux/swab.h> /* for swab16 */
-
-extern struct bus_type i2c_bus_type;
-extern struct device_type i2c_adapter_type;
-
-/* --- General options ------------------------------------------------ */
-
-struct i2c_msg;
-struct i2c_algorithm;
-struct i2c_adapter;
-struct i2c_client;
-struct i2c_driver;
-union i2c_smbus_data;
-struct i2c_board_info;
-
-struct module;
-
-#if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
-/*
- * The master routines are the ones normally used to transmit data to devices
- * on a bus (or read from them). Apart from two basic transfer functions to
- * transmit one message at a time, a more complex version can be used to
- * transmit an arbitrary number of messages without interruption.
- * @count must be be less than 64k since msg.len is u16.
- */
-extern int i2c_master_send(const struct i2c_client *client, const char *buf,
- int count);
-extern int i2c_master_recv(const struct i2c_client *client, char *buf,
- int count);
-
-/* Transfer num messages.
- */
-extern int i2c_transfer(struct i2c_adapter *adap, struct i2c_msg *msgs,
- int num);
-
-/* This is the very generalized SMBus access routine. You probably do not
- want to use this, though; one of the functions below may be much easier,
- and probably just as fast.
- Note that we use i2c_adapter here, because you do not need a specific
- smbus adapter to call this function. */
-extern s32 i2c_smbus_xfer(struct i2c_adapter *adapter, u16 addr,
- unsigned short flags, char read_write, u8 command,
- int size, union i2c_smbus_data *data);
-
-/* Now follow the 'nice' access routines. These also document the calling
- conventions of i2c_smbus_xfer. */
-
-extern s32 i2c_smbus_read_byte(const struct i2c_client *client);
-extern s32 i2c_smbus_write_byte(const struct i2c_client *client, u8 value);
-extern s32 i2c_smbus_read_byte_data(const struct i2c_client *client,
- u8 command);
-extern s32 i2c_smbus_write_byte_data(const struct i2c_client *client,
- u8 command, u8 value);
-extern s32 i2c_smbus_read_word_data(const struct i2c_client *client,
- u8 command);
-extern s32 i2c_smbus_write_word_data(const struct i2c_client *client,
- u8 command, u16 value);
-
-static inline s32
-i2c_smbus_read_word_swapped(const struct i2c_client *client, u8 command)
-{
- s32 value = i2c_smbus_read_word_data(client, command);
-
- return (value < 0) ? value : swab16(value);
-}
-
-static inline s32
-i2c_smbus_write_word_swapped(const struct i2c_client *client,
- u8 command, u16 value)
-{
- return i2c_smbus_write_word_data(client, command, swab16(value));
-}
-
-/* Returns the number of read bytes */
-extern s32 i2c_smbus_read_block_data(const struct i2c_client *client,
- u8 command, u8 *values);
-extern s32 i2c_smbus_write_block_data(const struct i2c_client *client,
- u8 command, u8 length, const u8 *values);
-/* Returns the number of read bytes */
-extern s32 i2c_smbus_read_i2c_block_data(const struct i2c_client *client,
- u8 command, u8 length, u8 *values);
-extern s32 i2c_smbus_write_i2c_block_data(const struct i2c_client *client,
- u8 command, u8 length,
- const u8 *values);
-#endif /* I2C */
-
-/**
- * struct i2c_driver - represent an I2C device driver
- * @class: What kind of i2c device we instantiate (for detect)
- * @attach_adapter: Callback for bus addition (deprecated)
- * @detach_adapter: Callback for bus removal (deprecated)
- * @probe: Callback for device binding
- * @remove: Callback for device unbinding
- * @shutdown: Callback for device shutdown
- * @suspend: Callback for device suspend
- * @resume: Callback for device resume
- * @alert: Alert callback, for example for the SMBus alert protocol
- * @command: Callback for bus-wide signaling (optional)
- * @driver: Device driver model driver
- * @id_table: List of I2C devices supported by this driver
- * @detect: Callback for device detection
- * @address_list: The I2C addresses to probe (for detect)
- * @clients: List of detected clients we created (for i2c-core use only)
- *
- * The driver.owner field should be set to the module owner of this driver.
- * The driver.name field should be set to the name of this driver.
- *
- * For automatic device detection, both @detect and @address_data must
- * be defined. @class should also be set, otherwise only devices forced
- * with module parameters will be created. The detect function must
- * fill at least the name field of the i2c_board_info structure it is
- * handed upon successful detection, and possibly also the flags field.
- *
- * If @detect is missing, the driver will still work fine for enumerated
- * devices. Detected devices simply won't be supported. This is expected
- * for the many I2C/SMBus devices which can't be detected reliably, and
- * the ones which can always be enumerated in practice.
- *
- * The i2c_client structure which is handed to the @detect callback is
- * not a real i2c_client. It is initialized just enough so that you can
- * call i2c_smbus_read_byte_data and friends on it. Don't do anything
- * else with it. In particular, calling dev_dbg and friends on it is
- * not allowed.
- */
-struct i2c_driver {
- unsigned int class;
-
- /* Notifies the driver that a new bus has appeared or is about to be
- * removed. You should avoid using this, it will be removed in a
- * near future.
- */
- int (*attach_adapter)(struct i2c_adapter *) __deprecated;
- int (*detach_adapter)(struct i2c_adapter *) __deprecated;
-
- /* Standard driver model interfaces */
- int (*probe)(struct i2c_client *, const struct i2c_device_id *);
- int (*remove)(struct i2c_client *);
-
- /* driver model interfaces that don't relate to enumeration */
- void (*shutdown)(struct i2c_client *);
- int (*suspend)(struct i2c_client *, pm_message_t mesg);
- int (*resume)(struct i2c_client *);
-
- /* Alert callback, for example for the SMBus alert protocol.
- * The format and meaning of the data value depends on the protocol.
- * For the SMBus alert protocol, there is a single bit of data passed
- * as the alert response's low bit ("event flag").
- */
- void (*alert)(struct i2c_client *, unsigned int data);
-
- /* a ioctl like command that can be used to perform specific functions
- * with the device.
- */
- int (*command)(struct i2c_client *client, unsigned int cmd, void *arg);
-
- struct device_driver driver;
- const struct i2c_device_id *id_table;
-
- /* Device detection callback for automatic device creation */
- int (*detect)(struct i2c_client *, struct i2c_board_info *);
- const unsigned short *address_list;
- struct list_head clients;
-};
-#define to_i2c_driver(d) container_of(d, struct i2c_driver, driver)
-
-/**
- * struct i2c_client - represent an I2C slave device
- * @flags: I2C_CLIENT_TEN indicates the device uses a ten bit chip address;
- * I2C_CLIENT_PEC indicates it uses SMBus Packet Error Checking
- * @addr: Address used on the I2C bus connected to the parent adapter.
- * @name: Indicates the type of the device, usually a chip name that's
- * generic enough to hide second-sourcing and compatible revisions.
- * @adapter: manages the bus segment hosting this I2C device
- * @driver: device's driver, hence pointer to access routines
- * @dev: Driver model device node for the slave.
- * @irq: indicates the IRQ generated by this device (if any)
- * @detected: member of an i2c_driver.clients list or i2c-core's
- * userspace_devices list
- *
- * An i2c_client identifies a single device (i.e. chip) connected to an
- * i2c bus. The behaviour exposed to Linux is defined by the driver
- * managing the device.
- */
-struct i2c_client {
- unsigned short flags; /* div., see below */
- unsigned short addr; /* chip address - NOTE: 7bit */
- /* addresses are stored in the */
- /* _LOWER_ 7 bits */
- char name[I2C_NAME_SIZE];
- struct i2c_adapter *adapter; /* the adapter we sit on */
- struct i2c_driver *driver; /* and our access routines */
- struct device dev; /* the device structure */
- int irq; /* irq issued by device */
- struct list_head detected;
-};
-#define to_i2c_client(d) container_of(d, struct i2c_client, dev)
-
-extern struct i2c_client *i2c_verify_client(struct device *dev);
-
-static inline struct i2c_client *kobj_to_i2c_client(struct kobject *kobj)
-{
- struct device * const dev = container_of(kobj, struct device, kobj);
- return to_i2c_client(dev);
-}
-
-static inline void *i2c_get_clientdata(const struct i2c_client *dev)
-{
- return dev_get_drvdata(&dev->dev);
-}
-
-static inline void i2c_set_clientdata(struct i2c_client *dev, void *data)
-{
- dev_set_drvdata(&dev->dev, data);
-}
-
-/**
- * struct i2c_board_info - template for device creation
- * @type: chip type, to initialize i2c_client.name
- * @flags: to initialize i2c_client.flags
- * @addr: stored in i2c_client.addr
- * @platform_data: stored in i2c_client.dev.platform_data
- * @archdata: copied into i2c_client.dev.archdata
- * @of_node: pointer to OpenFirmware device node
- * @irq: stored in i2c_client.irq
- *
- * I2C doesn't actually support hardware probing, although controllers and
- * devices may be able to use I2C_SMBUS_QUICK to tell whether or not there's
- * a device at a given address. Drivers commonly need more information than
- * that, such as chip type, configuration, associated IRQ, and so on.
- *
- * i2c_board_info is used to build tables of information listing I2C devices
- * that are present. This information is used to grow the driver model tree.
- * For mainboards this is done statically using i2c_register_board_info();
- * bus numbers identify adapters that aren't yet available. For add-on boards,
- * i2c_new_device() does this dynamically with the adapter already known.
- */
-struct i2c_board_info {
- char type[I2C_NAME_SIZE];
- unsigned short flags;
- unsigned short addr;
- void *platform_data;
- struct dev_archdata *archdata;
- struct device_node *of_node;
- int irq;
-};
-
-/**
- * I2C_BOARD_INFO - macro used to list an i2c device and its address
- * @dev_type: identifies the device type
- * @dev_addr: the device's address on the bus.
- *
- * This macro initializes essential fields of a struct i2c_board_info,
- * declaring what has been provided on a particular board. Optional
- * fields (such as associated irq, or device-specific platform_data)
- * are provided using conventional syntax.
- */
-#define I2C_BOARD_INFO(dev_type, dev_addr) \
- .type = dev_type, .addr = (dev_addr)
-
-
-#if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
-/* Add-on boards should register/unregister their devices; e.g. a board
- * with integrated I2C, a config eeprom, sensors, and a codec that's
- * used in conjunction with the primary hardware.
- */
-extern struct i2c_client *
-i2c_new_device(struct i2c_adapter *adap, struct i2c_board_info const *info);
-
-/* If you don't know the exact address of an I2C device, use this variant
- * instead, which can probe for device presence in a list of possible
- * addresses. The "probe" callback function is optional. If it is provided,
- * it must return 1 on successful probe, 0 otherwise. If it is not provided,
- * a default probing method is used.
- */
-extern struct i2c_client *
-i2c_new_probed_device(struct i2c_adapter *adap,
- struct i2c_board_info *info,
- unsigned short const *addr_list,
- int (*probe)(struct i2c_adapter *, unsigned short addr));
-
-/* Common custom probe functions */
-extern int i2c_probe_func_quick_read(struct i2c_adapter *, unsigned short addr);
-
-/* For devices that use several addresses, use i2c_new_dummy() to make
- * client handles for the extra addresses.
- */
-extern struct i2c_client *
-i2c_new_dummy(struct i2c_adapter *adap, u16 address);
-
-extern void i2c_unregister_device(struct i2c_client *);
-#endif /* I2C */
-
-/* Mainboard arch_initcall() code should register all its I2C devices.
- * This is done at arch_initcall time, before declaring any i2c adapters.
- * Modules for add-on boards must use other calls.
- */
-#ifdef CONFIG_I2C_BOARDINFO
-extern int
-i2c_register_board_info(int busnum, struct i2c_board_info const *info,
- unsigned n);
-#else
-static inline int
-i2c_register_board_info(int busnum, struct i2c_board_info const *info,
- unsigned n)
-{
- return 0;
-}
-#endif /* I2C_BOARDINFO */
-
-/*
- * The following structs are for those who like to implement new bus drivers:
- * i2c_algorithm is the interface to a class of hardware solutions which can
- * be addressed using the same bus algorithms - i.e. bit-banging or the PCF8584
- * to name two of the most common.
- */
-struct i2c_algorithm {
- /* If an adapter algorithm can't do I2C-level access, set master_xfer
- to NULL. If an adapter algorithm can do SMBus access, set
- smbus_xfer. If set to NULL, the SMBus protocol is simulated
- using common I2C messages */
- /* master_xfer should return the number of messages successfully
- processed, or a negative value on error */
- int (*master_xfer)(struct i2c_adapter *adap, struct i2c_msg *msgs,
- int num);
- int (*smbus_xfer) (struct i2c_adapter *adap, u16 addr,
- unsigned short flags, char read_write,
- u8 command, int size, union i2c_smbus_data *data);
-
- /* To determine what the adapter supports */
- u32 (*functionality) (struct i2c_adapter *);
-};
-
-/*
- * i2c_adapter is the structure used to identify a physical i2c bus along
- * with the access algorithms necessary to access it.
- */
-struct i2c_adapter {
- struct module *owner;
- unsigned int class; /* classes to allow probing for */
- const struct i2c_algorithm *algo; /* the algorithm to access the bus */
- void *algo_data;
-
- /* data fields that are valid for all devices */
- struct rt_mutex bus_lock;
-
- int timeout; /* in jiffies */
- int retries;
- struct device dev; /* the adapter device */
-
- int nr;
- char name[48];
- struct completion dev_released;
-
- struct mutex userspace_clients_lock;
- struct list_head userspace_clients;
-};
-#define to_i2c_adapter(d) container_of(d, struct i2c_adapter, dev)
-
-static inline void *i2c_get_adapdata(const struct i2c_adapter *dev)
-{
- return dev_get_drvdata(&dev->dev);
-}
-
-static inline void i2c_set_adapdata(struct i2c_adapter *dev, void *data)
-{
- dev_set_drvdata(&dev->dev, data);
-}
-
-static inline struct i2c_adapter *
-i2c_parent_is_i2c_adapter(const struct i2c_adapter *adapter)
-{
- struct device *parent = adapter->dev.parent;
-
- if (parent != NULL && parent->type == &i2c_adapter_type)
- return to_i2c_adapter(parent);
- else
- return NULL;
-}
-
-int i2c_for_each_dev(void *data, int (*fn)(struct device *, void *));
-
-/* Adapter locking functions, exported for shared pin cases */
-void i2c_lock_adapter(struct i2c_adapter *);
-void i2c_unlock_adapter(struct i2c_adapter *);
-
-/*flags for the client struct: */
-#define I2C_CLIENT_PEC 0x04 /* Use Packet Error Checking */
-#define I2C_CLIENT_TEN 0x10 /* we have a ten bit chip address */
- /* Must equal I2C_M_TEN below */
-#define I2C_CLIENT_WAKE 0x80 /* for board_info; true iff can wake */
-
-/* i2c adapter classes (bitmask) */
-#define I2C_CLASS_HWMON (1<<0) /* lm_sensors, ... */
-#define I2C_CLASS_DDC (1<<3) /* DDC bus on graphics adapters */
-#define I2C_CLASS_SPD (1<<7) /* Memory modules */
-
-/* Internal numbers to terminate lists */
-#define I2C_CLIENT_END 0xfffeU
-
-/* Construct an I2C_CLIENT_END-terminated array of i2c addresses */
-#define I2C_ADDRS(addr, addrs...) \
- ((const unsigned short []){ addr, ## addrs, I2C_CLIENT_END })
-
-
-/* ----- functions exported by i2c.o */
-
-/* administration...
- */
-#if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
-extern int i2c_add_adapter(struct i2c_adapter *);
-extern int i2c_del_adapter(struct i2c_adapter *);
-extern int i2c_add_numbered_adapter(struct i2c_adapter *);
-
-extern int i2c_register_driver(struct module *, struct i2c_driver *);
-extern void i2c_del_driver(struct i2c_driver *);
-
-/* use a define to avoid include chaining to get THIS_MODULE */
-#define i2c_add_driver(driver) \
- i2c_register_driver(THIS_MODULE, driver)
-
-extern struct i2c_client *i2c_use_client(struct i2c_client *client);
-extern void i2c_release_client(struct i2c_client *client);
-
-/* call the i2c_client->command() of all attached clients with
- * the given arguments */
-extern void i2c_clients_command(struct i2c_adapter *adap,
- unsigned int cmd, void *arg);
-
-extern struct i2c_adapter *i2c_get_adapter(int nr);
-extern void i2c_put_adapter(struct i2c_adapter *adap);
-
-
-/* Return the functionality mask */
-static inline u32 i2c_get_functionality(struct i2c_adapter *adap)
-{
- return adap->algo->functionality(adap);
-}
-
-/* Return 1 if adapter supports everything we need, 0 if not. */
-static inline int i2c_check_functionality(struct i2c_adapter *adap, u32 func)
-{
- return (func & i2c_get_functionality(adap)) == func;
-}
-
-/* Return the adapter number for a specific adapter */
-static inline int i2c_adapter_id(struct i2c_adapter *adap)
-{
- return adap->nr;
-}
-
-/**
- * module_i2c_driver() - Helper macro for registering a I2C driver
- * @__i2c_driver: i2c_driver struct
- *
- * Helper macro for I2C drivers which do not do anything special in module
- * init/exit. This eliminates a lot of boilerplate. Each module may only
- * use this macro once, and calling it replaces module_init() and module_exit()
- */
-#define module_i2c_driver(__i2c_driver) \
- module_driver(__i2c_driver, i2c_add_driver, \
- i2c_del_driver)
-
-#endif /* I2C */
-#endif /* __KERNEL__ */
-
-/**
- * struct i2c_msg - an I2C transaction segment beginning with START
- * @addr: Slave address, either seven or ten bits. When this is a ten
- * bit address, I2C_M_TEN must be set in @flags and the adapter
- * must support I2C_FUNC_10BIT_ADDR.
- * @flags: I2C_M_RD is handled by all adapters. No other flags may be
- * provided unless the adapter exported the relevant I2C_FUNC_*
- * flags through i2c_check_functionality().
- * @len: Number of data bytes in @buf being read from or written to the
- * I2C slave address. For read transactions where I2C_M_RECV_LEN
- * is set, the caller guarantees that this buffer can hold up to
- * 32 bytes in addition to the initial length byte sent by the
- * slave (plus, if used, the SMBus PEC); and this value will be
- * incremented by the number of block data bytes received.
- * @buf: The buffer into which data is read, or from which it's written.
- *
- * An i2c_msg is the low level representation of one segment of an I2C
- * transaction. It is visible to drivers in the @i2c_transfer() procedure,
- * to userspace from i2c-dev, and to I2C adapter drivers through the
- * @i2c_adapter.@master_xfer() method.
- *
- * Except when I2C "protocol mangling" is used, all I2C adapters implement
- * the standard rules for I2C transactions. Each transaction begins with a
- * START. That is followed by the slave address, and a bit encoding read
- * versus write. Then follow all the data bytes, possibly including a byte
- * with SMBus PEC. The transfer terminates with a NAK, or when all those
- * bytes have been transferred and ACKed. If this is the last message in a
- * group, it is followed by a STOP. Otherwise it is followed by the next
- * @i2c_msg transaction segment, beginning with a (repeated) START.
- *
- * Alternatively, when the adapter supports I2C_FUNC_PROTOCOL_MANGLING then
- * passing certain @flags may have changed those standard protocol behaviors.
- * Those flags are only for use with broken/nonconforming slaves, and with
- * adapters which are known to support the specific mangling options they
- * need (one or more of IGNORE_NAK, NO_RD_ACK, NOSTART, and REV_DIR_ADDR).
- */
-struct i2c_msg {
- __u16 addr; /* slave address */
- __u16 flags;
-#define I2C_M_TEN 0x0010 /* this is a ten bit chip address */
-#define I2C_M_RD 0x0001 /* read data, from slave to master */
-#define I2C_M_NOSTART 0x4000 /* if I2C_FUNC_PROTOCOL_MANGLING */
-#define I2C_M_REV_DIR_ADDR 0x2000 /* if I2C_FUNC_PROTOCOL_MANGLING */
-#define I2C_M_IGNORE_NAK 0x1000 /* if I2C_FUNC_PROTOCOL_MANGLING */
-#define I2C_M_NO_RD_ACK 0x0800 /* if I2C_FUNC_PROTOCOL_MANGLING */
-#define I2C_M_RECV_LEN 0x0400 /* length will be first received byte */
- __u16 len; /* msg length */
- __u8 *buf; /* pointer to msg data */
-};
-
-/* To determine what functionality is present */
-
-#define I2C_FUNC_I2C 0x00000001
-#define I2C_FUNC_10BIT_ADDR 0x00000002
-#define I2C_FUNC_PROTOCOL_MANGLING 0x00000004 /* I2C_M_NOSTART etc. */
-#define I2C_FUNC_SMBUS_PEC 0x00000008
-#define I2C_FUNC_SMBUS_BLOCK_PROC_CALL 0x00008000 /* SMBus 2.0 */
-#define I2C_FUNC_SMBUS_QUICK 0x00010000
-#define I2C_FUNC_SMBUS_READ_BYTE 0x00020000
-#define I2C_FUNC_SMBUS_WRITE_BYTE 0x00040000
-#define I2C_FUNC_SMBUS_READ_BYTE_DATA 0x00080000
-#define I2C_FUNC_SMBUS_WRITE_BYTE_DATA 0x00100000
-#define I2C_FUNC_SMBUS_READ_WORD_DATA 0x00200000
-#define I2C_FUNC_SMBUS_WRITE_WORD_DATA 0x00400000
-#define I2C_FUNC_SMBUS_PROC_CALL 0x00800000
-#define I2C_FUNC_SMBUS_READ_BLOCK_DATA 0x01000000
-#define I2C_FUNC_SMBUS_WRITE_BLOCK_DATA 0x02000000
-#define I2C_FUNC_SMBUS_READ_I2C_BLOCK 0x04000000 /* I2C-like block xfer */
-#define I2C_FUNC_SMBUS_WRITE_I2C_BLOCK 0x08000000 /* w/ 1-byte reg. addr. */
-
-#define I2C_FUNC_SMBUS_BYTE (I2C_FUNC_SMBUS_READ_BYTE | \
- I2C_FUNC_SMBUS_WRITE_BYTE)
-#define I2C_FUNC_SMBUS_BYTE_DATA (I2C_FUNC_SMBUS_READ_BYTE_DATA | \
- I2C_FUNC_SMBUS_WRITE_BYTE_DATA)
-#define I2C_FUNC_SMBUS_WORD_DATA (I2C_FUNC_SMBUS_READ_WORD_DATA | \
- I2C_FUNC_SMBUS_WRITE_WORD_DATA)
-#define I2C_FUNC_SMBUS_BLOCK_DATA (I2C_FUNC_SMBUS_READ_BLOCK_DATA | \
- I2C_FUNC_SMBUS_WRITE_BLOCK_DATA)
-#define I2C_FUNC_SMBUS_I2C_BLOCK (I2C_FUNC_SMBUS_READ_I2C_BLOCK | \
- I2C_FUNC_SMBUS_WRITE_I2C_BLOCK)
-
-#define I2C_FUNC_SMBUS_EMUL (I2C_FUNC_SMBUS_QUICK | \
- I2C_FUNC_SMBUS_BYTE | \
- I2C_FUNC_SMBUS_BYTE_DATA | \
- I2C_FUNC_SMBUS_WORD_DATA | \
- I2C_FUNC_SMBUS_PROC_CALL | \
- I2C_FUNC_SMBUS_WRITE_BLOCK_DATA | \
- I2C_FUNC_SMBUS_I2C_BLOCK | \
- I2C_FUNC_SMBUS_PEC)
-
-/*
- * Data for SMBus Messages
- */
-#define I2C_SMBUS_BLOCK_MAX 32 /* As specified in SMBus standard */
-union i2c_smbus_data {
- __u8 byte;
- __u16 word;
- __u8 block[I2C_SMBUS_BLOCK_MAX + 2]; /* block[0] is used for length */
- /* and one more for user-space compatibility */
-};
-
-/* i2c_smbus_xfer read or write markers */
-#define I2C_SMBUS_READ 1
-#define I2C_SMBUS_WRITE 0
-
-/* SMBus transaction types (size parameter in the above functions)
- Note: these no longer correspond to the (arbitrary) PIIX4 internal codes! */
-#define I2C_SMBUS_QUICK 0
-#define I2C_SMBUS_BYTE 1
-#define I2C_SMBUS_BYTE_DATA 2
-#define I2C_SMBUS_WORD_DATA 3
-#define I2C_SMBUS_PROC_CALL 4
-#define I2C_SMBUS_BLOCK_DATA 5
-#define I2C_SMBUS_I2C_BLOCK_BROKEN 6
-#define I2C_SMBUS_BLOCK_PROC_CALL 7 /* SMBus 2.0 */
-#define I2C_SMBUS_I2C_BLOCK_DATA 8
-
-#endif /* _LINUX_I2C_H */
diff --git a/ANDROID_3.4.5/include/linux/i2c/adp5588.h b/ANDROID_3.4.5/include/linux/i2c/adp5588.h
deleted file mode 100644
index cec17cf6..00000000
--- a/ANDROID_3.4.5/include/linux/i2c/adp5588.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Analog Devices ADP5588 I/O Expander and QWERTY Keypad Controller
- *
- * Copyright 2009-2010 Analog Devices Inc.
- *
- * Licensed under the GPL-2 or later.
- */
-
-#ifndef _ADP5588_H
-#define _ADP5588_H
-
-#define DEV_ID 0x00 /* Device ID */
-#define CFG 0x01 /* Configuration Register1 */
-#define INT_STAT 0x02 /* Interrupt Status Register */
-#define KEY_LCK_EC_STAT 0x03 /* Key Lock and Event Counter Register */
-#define Key_EVENTA 0x04 /* Key Event Register A */
-#define Key_EVENTB 0x05 /* Key Event Register B */
-#define Key_EVENTC 0x06 /* Key Event Register C */
-#define Key_EVENTD 0x07 /* Key Event Register D */
-#define Key_EVENTE 0x08 /* Key Event Register E */
-#define Key_EVENTF 0x09 /* Key Event Register F */
-#define Key_EVENTG 0x0A /* Key Event Register G */
-#define Key_EVENTH 0x0B /* Key Event Register H */
-#define Key_EVENTI 0x0C /* Key Event Register I */
-#define Key_EVENTJ 0x0D /* Key Event Register J */
-#define KP_LCK_TMR 0x0E /* Keypad Lock1 to Lock2 Timer */
-#define UNLOCK1 0x0F /* Unlock Key1 */
-#define UNLOCK2 0x10 /* Unlock Key2 */
-#define GPIO_INT_STAT1 0x11 /* GPIO Interrupt Status */
-#define GPIO_INT_STAT2 0x12 /* GPIO Interrupt Status */
-#define GPIO_INT_STAT3 0x13 /* GPIO Interrupt Status */
-#define GPIO_DAT_STAT1 0x14 /* GPIO Data Status, Read twice to clear */
-#define GPIO_DAT_STAT2 0x15 /* GPIO Data Status, Read twice to clear */
-#define GPIO_DAT_STAT3 0x16 /* GPIO Data Status, Read twice to clear */
-#define GPIO_DAT_OUT1 0x17 /* GPIO DATA OUT */
-#define GPIO_DAT_OUT2 0x18 /* GPIO DATA OUT */
-#define GPIO_DAT_OUT3 0x19 /* GPIO DATA OUT */
-#define GPIO_INT_EN1 0x1A /* GPIO Interrupt Enable */
-#define GPIO_INT_EN2 0x1B /* GPIO Interrupt Enable */
-#define GPIO_INT_EN3 0x1C /* GPIO Interrupt Enable */
-#define KP_GPIO1 0x1D /* Keypad or GPIO Selection */
-#define KP_GPIO2 0x1E /* Keypad or GPIO Selection */
-#define KP_GPIO3 0x1F /* Keypad or GPIO Selection */
-#define GPI_EM1 0x20 /* GPI Event Mode 1 */
-#define GPI_EM2 0x21 /* GPI Event Mode 2 */
-#define GPI_EM3 0x22 /* GPI Event Mode 3 */
-#define GPIO_DIR1 0x23 /* GPIO Data Direction */
-#define GPIO_DIR2 0x24 /* GPIO Data Direction */
-#define GPIO_DIR3 0x25 /* GPIO Data Direction */
-#define GPIO_INT_LVL1 0x26 /* GPIO Edge/Level Detect */
-#define GPIO_INT_LVL2 0x27 /* GPIO Edge/Level Detect */
-#define GPIO_INT_LVL3 0x28 /* GPIO Edge/Level Detect */
-#define Debounce_DIS1 0x29 /* Debounce Disable */
-#define Debounce_DIS2 0x2A /* Debounce Disable */
-#define Debounce_DIS3 0x2B /* Debounce Disable */
-#define GPIO_PULL1 0x2C /* GPIO Pull Disable */
-#define GPIO_PULL2 0x2D /* GPIO Pull Disable */
-#define GPIO_PULL3 0x2E /* GPIO Pull Disable */
-#define CMP_CFG_STAT 0x30 /* Comparator Configuration and Status Register */
-#define CMP_CONFG_SENS1 0x31 /* Sensor1 Comparator Configuration Register */
-#define CMP_CONFG_SENS2 0x32 /* L2 Light Sensor Reference Level, Output Falling for Sensor 1 */
-#define CMP1_LVL2_TRIP 0x33 /* L2 Light Sensor Hysteresis (Active when Output Rising) for Sensor 1 */
-#define CMP1_LVL2_HYS 0x34 /* L3 Light Sensor Reference Level, Output Falling For Sensor 1 */
-#define CMP1_LVL3_TRIP 0x35 /* L3 Light Sensor Hysteresis (Active when Output Rising) For Sensor 1 */
-#define CMP1_LVL3_HYS 0x36 /* Sensor 2 Comparator Configuration Register */
-#define CMP2_LVL2_TRIP 0x37 /* L2 Light Sensor Reference Level, Output Falling for Sensor 2 */
-#define CMP2_LVL2_HYS 0x38 /* L2 Light Sensor Hysteresis (Active when Output Rising) for Sensor 2 */
-#define CMP2_LVL3_TRIP 0x39 /* L3 Light Sensor Reference Level, Output Falling For Sensor 2 */
-#define CMP2_LVL3_HYS 0x3A /* L3 Light Sensor Hysteresis (Active when Output Rising) For Sensor 2 */
-#define CMP1_ADC_DAT_R1 0x3B /* Comparator 1 ADC data Register1 */
-#define CMP1_ADC_DAT_R2 0x3C /* Comparator 1 ADC data Register2 */
-#define CMP2_ADC_DAT_R1 0x3D /* Comparator 2 ADC data Register1 */
-#define CMP2_ADC_DAT_R2 0x3E /* Comparator 2 ADC data Register2 */
-
-#define ADP5588_DEVICE_ID_MASK 0xF
-
- /* Configuration Register1 */
-#define ADP5588_AUTO_INC (1 << 7)
-#define ADP5588_GPIEM_CFG (1 << 6)
-#define ADP5588_OVR_FLOW_M (1 << 5)
-#define ADP5588_INT_CFG (1 << 4)
-#define ADP5588_OVR_FLOW_IEN (1 << 3)
-#define ADP5588_K_LCK_IM (1 << 2)
-#define ADP5588_GPI_IEN (1 << 1)
-#define ADP5588_KE_IEN (1 << 0)
-
-/* Interrupt Status Register */
-#define ADP5588_CMP2_INT (1 << 5)
-#define ADP5588_CMP1_INT (1 << 4)
-#define ADP5588_OVR_FLOW_INT (1 << 3)
-#define ADP5588_K_LCK_INT (1 << 2)
-#define ADP5588_GPI_INT (1 << 1)
-#define ADP5588_KE_INT (1 << 0)
-
-/* Key Lock and Event Counter Register */
-#define ADP5588_K_LCK_EN (1 << 6)
-#define ADP5588_LCK21 0x30
-#define ADP5588_KEC 0xF
-
-#define ADP5588_MAXGPIO 18
-#define ADP5588_BANK(offs) ((offs) >> 3)
-#define ADP5588_BIT(offs) (1u << ((offs) & 0x7))
-
-/* Put one of these structures in i2c_board_info platform_data */
-
-#define ADP5588_KEYMAPSIZE 80
-
-#define GPI_PIN_ROW0 97
-#define GPI_PIN_ROW1 98
-#define GPI_PIN_ROW2 99
-#define GPI_PIN_ROW3 100
-#define GPI_PIN_ROW4 101
-#define GPI_PIN_ROW5 102
-#define GPI_PIN_ROW6 103
-#define GPI_PIN_ROW7 104
-#define GPI_PIN_COL0 105
-#define GPI_PIN_COL1 106
-#define GPI_PIN_COL2 107
-#define GPI_PIN_COL3 108
-#define GPI_PIN_COL4 109
-#define GPI_PIN_COL5 110
-#define GPI_PIN_COL6 111
-#define GPI_PIN_COL7 112
-#define GPI_PIN_COL8 113
-#define GPI_PIN_COL9 114
-
-#define GPI_PIN_ROW_BASE GPI_PIN_ROW0
-#define GPI_PIN_ROW_END GPI_PIN_ROW7
-#define GPI_PIN_COL_BASE GPI_PIN_COL0
-#define GPI_PIN_COL_END GPI_PIN_COL9
-
-#define GPI_PIN_BASE GPI_PIN_ROW_BASE
-#define GPI_PIN_END GPI_PIN_COL_END
-
-#define ADP5588_GPIMAPSIZE_MAX (GPI_PIN_END - GPI_PIN_BASE + 1)
-
-struct adp5588_gpi_map {
- unsigned short pin;
- unsigned short sw_evt;
-};
-
-struct adp5588_kpad_platform_data {
- int rows; /* Number of rows */
- int cols; /* Number of columns */
- const unsigned short *keymap; /* Pointer to keymap */
- unsigned short keymapsize; /* Keymap size */
- unsigned repeat:1; /* Enable key repeat */
- unsigned en_keylock:1; /* Enable Key Lock feature */
- unsigned short unlock_key1; /* Unlock Key 1 */
- unsigned short unlock_key2; /* Unlock Key 2 */
- const struct adp5588_gpi_map *gpimap;
- unsigned short gpimapsize;
- const struct adp5588_gpio_platform_data *gpio_data;
-};
-
-struct i2c_client; /* forward declaration */
-
-struct adp5588_gpio_platform_data {
- int gpio_start; /* GPIO Chip base # */
- unsigned irq_base; /* interrupt base # */
- unsigned pullup_dis_mask; /* Pull-Up Disable Mask */
- int (*setup)(struct i2c_client *client,
- int gpio, unsigned ngpio,
- void *context);
- int (*teardown)(struct i2c_client *client,
- int gpio, unsigned ngpio,
- void *context);
- void *context;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/i2c/adp8860.h b/ANDROID_3.4.5/include/linux/i2c/adp8860.h
deleted file mode 100644
index 0b4d3985..00000000
--- a/ANDROID_3.4.5/include/linux/i2c/adp8860.h
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Definitions and platform data for Analog Devices
- * Backlight drivers ADP8860
- *
- * Copyright 2009-2010 Analog Devices Inc.
- *
- * Licensed under the GPL-2 or later.
- */
-
-#ifndef __LINUX_I2C_ADP8860_H
-#define __LINUX_I2C_ADP8860_H
-
-#include <linux/leds.h>
-#include <linux/types.h>
-
-#define ID_ADP8860 8860
-
-#define ADP8860_MAX_BRIGHTNESS 0x7F
-#define FLAG_OFFT_SHIFT 8
-
-/*
- * LEDs subdevice platform data
- */
-
-#define ADP8860_LED_DIS_BLINK (0 << FLAG_OFFT_SHIFT)
-#define ADP8860_LED_OFFT_600ms (1 << FLAG_OFFT_SHIFT)
-#define ADP8860_LED_OFFT_1200ms (2 << FLAG_OFFT_SHIFT)
-#define ADP8860_LED_OFFT_1800ms (3 << FLAG_OFFT_SHIFT)
-
-#define ADP8860_LED_ONT_200ms 0
-#define ADP8860_LED_ONT_600ms 1
-#define ADP8860_LED_ONT_800ms 2
-#define ADP8860_LED_ONT_1200ms 3
-
-#define ADP8860_LED_D7 (7)
-#define ADP8860_LED_D6 (6)
-#define ADP8860_LED_D5 (5)
-#define ADP8860_LED_D4 (4)
-#define ADP8860_LED_D3 (3)
-#define ADP8860_LED_D2 (2)
-#define ADP8860_LED_D1 (1)
-
-/*
- * Backlight subdevice platform data
- */
-
-#define ADP8860_BL_D7 (1 << 6)
-#define ADP8860_BL_D6 (1 << 5)
-#define ADP8860_BL_D5 (1 << 4)
-#define ADP8860_BL_D4 (1 << 3)
-#define ADP8860_BL_D3 (1 << 2)
-#define ADP8860_BL_D2 (1 << 1)
-#define ADP8860_BL_D1 (1 << 0)
-
-#define ADP8860_FADE_T_DIS 0 /* Fade Timer Disabled */
-#define ADP8860_FADE_T_300ms 1 /* 0.3 Sec */
-#define ADP8860_FADE_T_600ms 2
-#define ADP8860_FADE_T_900ms 3
-#define ADP8860_FADE_T_1200ms 4
-#define ADP8860_FADE_T_1500ms 5
-#define ADP8860_FADE_T_1800ms 6
-#define ADP8860_FADE_T_2100ms 7
-#define ADP8860_FADE_T_2400ms 8
-#define ADP8860_FADE_T_2700ms 9
-#define ADP8860_FADE_T_3000ms 10
-#define ADP8860_FADE_T_3500ms 11
-#define ADP8860_FADE_T_4000ms 12
-#define ADP8860_FADE_T_4500ms 13
-#define ADP8860_FADE_T_5000ms 14
-#define ADP8860_FADE_T_5500ms 15 /* 5.5 Sec */
-
-#define ADP8860_FADE_LAW_LINEAR 0
-#define ADP8860_FADE_LAW_SQUARE 1
-#define ADP8860_FADE_LAW_CUBIC1 2
-#define ADP8860_FADE_LAW_CUBIC2 3
-
-#define ADP8860_BL_AMBL_FILT_80ms 0 /* Light sensor filter time */
-#define ADP8860_BL_AMBL_FILT_160ms 1
-#define ADP8860_BL_AMBL_FILT_320ms 2
-#define ADP8860_BL_AMBL_FILT_640ms 3
-#define ADP8860_BL_AMBL_FILT_1280ms 4
-#define ADP8860_BL_AMBL_FILT_2560ms 5
-#define ADP8860_BL_AMBL_FILT_5120ms 6
-#define ADP8860_BL_AMBL_FILT_10240ms 7 /* 10.24 sec */
-
-/*
- * Blacklight current 0..30mA
- */
-#define ADP8860_BL_CUR_mA(I) ((I * 127) / 30)
-
-/*
- * L2 comparator current 0..1106uA
- */
-#define ADP8860_L2_COMP_CURR_uA(I) ((I * 255) / 1106)
-
-/*
- * L3 comparator current 0..138uA
- */
-#define ADP8860_L3_COMP_CURR_uA(I) ((I * 255) / 138)
-
-struct adp8860_backlight_platform_data {
- u8 bl_led_assign; /* 1 = Backlight 0 = Individual LED */
-
- u8 bl_fade_in; /* Backlight Fade-In Timer */
- u8 bl_fade_out; /* Backlight Fade-Out Timer */
- u8 bl_fade_law; /* fade-on/fade-off transfer characteristic */
-
- u8 en_ambl_sens; /* 1 = enable ambient light sensor */
- u8 abml_filt; /* Light sensor filter time */
-
- u8 l1_daylight_max; /* use BL_CUR_mA(I) 0 <= I <= 30 mA */
- u8 l1_daylight_dim; /* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
- u8 l2_office_max; /* use BL_CUR_mA(I) 0 <= I <= 30 mA */
- u8 l2_office_dim; /* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
- u8 l3_dark_max; /* use BL_CUR_mA(I) 0 <= I <= 30 mA */
- u8 l3_dark_dim; /* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
-
- u8 l2_trip; /* use L2_COMP_CURR_uA(I) 0 <= I <= 1106 uA */
- u8 l2_hyst; /* use L2_COMP_CURR_uA(I) 0 <= I <= 1106 uA */
- u8 l3_trip; /* use L3_COMP_CURR_uA(I) 0 <= I <= 551 uA */
- u8 l3_hyst; /* use L3_COMP_CURR_uA(I) 0 <= I <= 551 uA */
-
- /**
- * Independent Current Sinks / LEDS
- * Sinks not assigned to the Backlight can be exposed to
- * user space using the LEDS CLASS interface
- */
-
- int num_leds;
- struct led_info *leds;
- u8 led_fade_in; /* LED Fade-In Timer */
- u8 led_fade_out; /* LED Fade-Out Timer */
- u8 led_fade_law; /* fade-on/fade-off transfer characteristic */
- u8 led_on_time;
-
- /**
- * Gain down disable. Setting this option does not allow the
- * charge pump to switch to lower gains. NOT AVAILABLE on ADP8860
- * 1 = the charge pump doesn't switch down in gain until all LEDs are 0.
- * The charge pump switches up in gain as needed. This feature is
- * useful if the ADP8863 charge pump is used to drive an external load.
- * This feature must be used when utilizing small fly capacitors
- * (0402 or smaller).
- * 0 = the charge pump automatically switches up and down in gain.
- * This provides optimal efficiency, but is not suitable for driving
- * loads that are not connected through the ADP8863 diode drivers.
- * Additionally, the charge pump fly capacitors should be low ESR
- * and sized 0603 or greater.
- */
-
- u8 gdwn_dis;
-};
-
-#endif /* __LINUX_I2C_ADP8860_H */
diff --git a/ANDROID_3.4.5/include/linux/i2c/adp8870.h b/ANDROID_3.4.5/include/linux/i2c/adp8870.h
deleted file mode 100644
index 624dcecc..00000000
--- a/ANDROID_3.4.5/include/linux/i2c/adp8870.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Definitions and platform data for Analog Devices
- * Backlight drivers ADP8870
- *
- * Copyright 2009-2010 Analog Devices Inc.
- *
- * Licensed under the GPL-2 or later.
- */
-
-#ifndef __LINUX_I2C_ADP8870_H
-#define __LINUX_I2C_ADP8870_H
-
-#define ID_ADP8870 8870
-
-#define ADP8870_MAX_BRIGHTNESS 0x7F
-#define FLAG_OFFT_SHIFT 8
-
-/*
- * LEDs subdevice platform data
- */
-
-#define ADP8870_LED_DIS_BLINK (0 << FLAG_OFFT_SHIFT)
-#define ADP8870_LED_OFFT_600ms (1 << FLAG_OFFT_SHIFT)
-#define ADP8870_LED_OFFT_1200ms (2 << FLAG_OFFT_SHIFT)
-#define ADP8870_LED_OFFT_1800ms (3 << FLAG_OFFT_SHIFT)
-
-#define ADP8870_LED_ONT_200ms 0
-#define ADP8870_LED_ONT_600ms 1
-#define ADP8870_LED_ONT_800ms 2
-#define ADP8870_LED_ONT_1200ms 3
-
-#define ADP8870_LED_D7 (7)
-#define ADP8870_LED_D6 (6)
-#define ADP8870_LED_D5 (5)
-#define ADP8870_LED_D4 (4)
-#define ADP8870_LED_D3 (3)
-#define ADP8870_LED_D2 (2)
-#define ADP8870_LED_D1 (1)
-
-/*
- * Backlight subdevice platform data
- */
-
-#define ADP8870_BL_D7 (1 << 6)
-#define ADP8870_BL_D6 (1 << 5)
-#define ADP8870_BL_D5 (1 << 4)
-#define ADP8870_BL_D4 (1 << 3)
-#define ADP8870_BL_D3 (1 << 2)
-#define ADP8870_BL_D2 (1 << 1)
-#define ADP8870_BL_D1 (1 << 0)
-
-#define ADP8870_FADE_T_DIS 0 /* Fade Timer Disabled */
-#define ADP8870_FADE_T_300ms 1 /* 0.3 Sec */
-#define ADP8870_FADE_T_600ms 2
-#define ADP8870_FADE_T_900ms 3
-#define ADP8870_FADE_T_1200ms 4
-#define ADP8870_FADE_T_1500ms 5
-#define ADP8870_FADE_T_1800ms 6
-#define ADP8870_FADE_T_2100ms 7
-#define ADP8870_FADE_T_2400ms 8
-#define ADP8870_FADE_T_2700ms 9
-#define ADP8870_FADE_T_3000ms 10
-#define ADP8870_FADE_T_3500ms 11
-#define ADP8870_FADE_T_4000ms 12
-#define ADP8870_FADE_T_4500ms 13
-#define ADP8870_FADE_T_5000ms 14
-#define ADP8870_FADE_T_5500ms 15 /* 5.5 Sec */
-
-#define ADP8870_FADE_LAW_LINEAR 0
-#define ADP8870_FADE_LAW_SQUARE 1
-#define ADP8870_FADE_LAW_CUBIC1 2
-#define ADP8870_FADE_LAW_CUBIC2 3
-
-#define ADP8870_BL_AMBL_FILT_80ms 0 /* Light sensor filter time */
-#define ADP8870_BL_AMBL_FILT_160ms 1
-#define ADP8870_BL_AMBL_FILT_320ms 2
-#define ADP8870_BL_AMBL_FILT_640ms 3
-#define ADP8870_BL_AMBL_FILT_1280ms 4
-#define ADP8870_BL_AMBL_FILT_2560ms 5
-#define ADP8870_BL_AMBL_FILT_5120ms 6
-#define ADP8870_BL_AMBL_FILT_10240ms 7 /* 10.24 sec */
-
-/*
- * Blacklight current 0..30mA
- */
-#define ADP8870_BL_CUR_mA(I) ((I * 127) / 30)
-
-/*
- * L2 comparator current 0..1106uA
- */
-#define ADP8870_L2_COMP_CURR_uA(I) ((I * 255) / 1106)
-
-/*
- * L3 comparator current 0..551uA
- */
-#define ADP8870_L3_COMP_CURR_uA(I) ((I * 255) / 551)
-
-/*
- * L4 comparator current 0..275uA
- */
-#define ADP8870_L4_COMP_CURR_uA(I) ((I * 255) / 275)
-
-/*
- * L5 comparator current 0..138uA
- */
-#define ADP8870_L5_COMP_CURR_uA(I) ((I * 255) / 138)
-
-struct adp8870_backlight_platform_data {
- u8 bl_led_assign; /* 1 = Backlight 0 = Individual LED */
- u8 pwm_assign; /* 1 = Enables PWM mode */
-
- u8 bl_fade_in; /* Backlight Fade-In Timer */
- u8 bl_fade_out; /* Backlight Fade-Out Timer */
- u8 bl_fade_law; /* fade-on/fade-off transfer characteristic */
-
- u8 en_ambl_sens; /* 1 = enable ambient light sensor */
- u8 abml_filt; /* Light sensor filter time */
-
- u8 l1_daylight_max; /* use BL_CUR_mA(I) 0 <= I <= 30 mA */
- u8 l1_daylight_dim; /* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
- u8 l2_bright_max; /* use BL_CUR_mA(I) 0 <= I <= 30 mA */
- u8 l2_bright_dim; /* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
- u8 l3_office_max; /* use BL_CUR_mA(I) 0 <= I <= 30 mA */
- u8 l3_office_dim; /* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
- u8 l4_indoor_max; /* use BL_CUR_mA(I) 0 <= I <= 30 mA */
- u8 l4_indor_dim; /* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
- u8 l5_dark_max; /* use BL_CUR_mA(I) 0 <= I <= 30 mA */
- u8 l5_dark_dim; /* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
-
- u8 l2_trip; /* use L2_COMP_CURR_uA(I) 0 <= I <= 1106 uA */
- u8 l2_hyst; /* use L2_COMP_CURR_uA(I) 0 <= I <= 1106 uA */
- u8 l3_trip; /* use L3_COMP_CURR_uA(I) 0 <= I <= 551 uA */
- u8 l3_hyst; /* use L3_COMP_CURR_uA(I) 0 <= I <= 551 uA */
- u8 l4_trip; /* use L4_COMP_CURR_uA(I) 0 <= I <= 275 uA */
- u8 l4_hyst; /* use L4_COMP_CURR_uA(I) 0 <= I <= 275 uA */
- u8 l5_trip; /* use L5_COMP_CURR_uA(I) 0 <= I <= 138 uA */
- u8 l5_hyst; /* use L6_COMP_CURR_uA(I) 0 <= I <= 138 uA */
-
- /**
- * Independent Current Sinks / LEDS
- * Sinks not assigned to the Backlight can be exposed to
- * user space using the LEDS CLASS interface
- */
-
- int num_leds;
- struct led_info *leds;
- u8 led_fade_in; /* LED Fade-In Timer */
- u8 led_fade_out; /* LED Fade-Out Timer */
- u8 led_fade_law; /* fade-on/fade-off transfer characteristic */
- u8 led_on_time;
-};
-
-#endif /* __LINUX_I2C_ADP8870_H */
diff --git a/ANDROID_3.4.5/include/linux/i2c/ads1015.h b/ANDROID_3.4.5/include/linux/i2c/ads1015.h
deleted file mode 100644
index d5aa2a04..00000000
--- a/ANDROID_3.4.5/include/linux/i2c/ads1015.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Platform Data for ADS1015 12-bit 4-input ADC
- * (C) Copyright 2010
- * Dirk Eibach, Guntermann & Drunck GmbH <eibach@gdsys.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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef LINUX_ADS1015_H
-#define LINUX_ADS1015_H
-
-#define ADS1015_CHANNELS 8
-
-struct ads1015_channel_data {
- bool enabled;
- unsigned int pga;
- unsigned int data_rate;
-};
-
-struct ads1015_platform_data {
- struct ads1015_channel_data channel_data[ADS1015_CHANNELS];
-};
-
-#endif /* LINUX_ADS1015_H */
diff --git a/ANDROID_3.4.5/include/linux/i2c/apds990x.h b/ANDROID_3.4.5/include/linux/i2c/apds990x.h
deleted file mode 100644
index d186fcc5..00000000
--- a/ANDROID_3.4.5/include/linux/i2c/apds990x.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * This file is part of the APDS990x sensor driver.
- * Chip is combined proximity and ambient light sensor.
- *
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
- *
- * Contact: Samu Onkalo <samu.p.onkalo@nokia.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.
- *
- * 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 __APDS990X_H__
-#define __APDS990X_H__
-
-
-#define APDS_IRLED_CURR_12mA 0x3
-#define APDS_IRLED_CURR_25mA 0x2
-#define APDS_IRLED_CURR_50mA 0x1
-#define APDS_IRLED_CURR_100mA 0x0
-
-/**
- * struct apds990x_chip_factors - defines effect of the cover window
- * @ga: Total glass attenuation
- * @cf1: clear channel factor 1 for raw to lux conversion
- * @irf1: IR channel factor 1 for raw to lux conversion
- * @cf2: clear channel factor 2 for raw to lux conversion
- * @irf2: IR channel factor 2 for raw to lux conversion
- * @df: device factor for conversion formulas
- *
- * Structure for tuning ALS calculation to match with environment.
- * Values depend on the material above the sensor and the sensor
- * itself. If the GA is zero, driver will use uncovered sensor default values
- * format: decimal value * APDS_PARAM_SCALE except df which is plain integer.
- */
-#define APDS_PARAM_SCALE 4096
-struct apds990x_chip_factors {
- int ga;
- int cf1;
- int irf1;
- int cf2;
- int irf2;
- int df;
-};
-
-/**
- * struct apds990x_platform_data - platform data for apsd990x.c driver
- * @cf: chip factor data
- * @pddrive: IR-led driving current
- * @ppcount: number of IR pulses used for proximity estimation
- * @setup_resources: interrupt line setup call back function
- * @release_resources: interrupt line release call back function
- *
- * Proximity detection result depends heavily on correct ppcount, pdrive
- * and cover window.
- *
- */
-
-struct apds990x_platform_data {
- struct apds990x_chip_factors cf;
- u8 pdrive;
- u8 ppcount;
- int (*setup_resources)(void);
- int (*release_resources)(void);
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/i2c/at24.h b/ANDROID_3.4.5/include/linux/i2c/at24.h
deleted file mode 100644
index 285025a9..00000000
--- a/ANDROID_3.4.5/include/linux/i2c/at24.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * at24.h - platform_data for the at24 (generic eeprom) driver
- * (C) Copyright 2008 by Pengutronix
- * (C) Copyright 2012 by Wolfram Sang
- * same license as the driver
- */
-
-#ifndef _LINUX_AT24_H
-#define _LINUX_AT24_H
-
-#include <linux/types.h>
-#include <linux/memory.h>
-
-/**
- * struct at24_platform_data - data to set up at24 (generic eeprom) driver
- * @byte_len: size of eeprom in byte
- * @page_size: number of byte which can be written in one go
- * @flags: tunable options, check AT24_FLAG_* defines
- * @setup: an optional callback invoked after eeprom is probed; enables kernel
- code to access eeprom via memory_accessor, see example
- * @context: optional parameter passed to setup()
- *
- * If you set up a custom eeprom type, please double-check the parameters.
- * Especially page_size needs extra care, as you risk data loss if your value
- * is bigger than what the chip actually supports!
- *
- * An example in pseudo code for a setup() callback:
- *
- * void get_mac_addr(struct memory_accessor *mem_acc, void *context)
- * {
- * u8 *mac_addr = ethernet_pdata->mac_addr;
- * off_t offset = context;
- *
- * // Read MAC addr from EEPROM
- * if (mem_acc->read(mem_acc, mac_addr, offset, ETH_ALEN) == ETH_ALEN)
- * pr_info("Read MAC addr from EEPROM: %pM\n", mac_addr);
- * }
- *
- * This function pointer and context can now be set up in at24_platform_data.
- */
-
-struct at24_platform_data {
- u32 byte_len; /* size (sum of all addr) */
- u16 page_size; /* for writes */
- u8 flags;
-#define AT24_FLAG_ADDR16 0x80 /* address pointer is 16 bit */
-#define AT24_FLAG_READONLY 0x40 /* sysfs-entry will be read-only */
-#define AT24_FLAG_IRUGO 0x20 /* sysfs-entry will be world-readable */
-#define AT24_FLAG_TAKE8ADDR 0x10 /* take always 8 addresses (24c00) */
-
- void (*setup)(struct memory_accessor *, void *context);
- void *context;
-};
-
-#endif /* _LINUX_AT24_H */
diff --git a/ANDROID_3.4.5/include/linux/i2c/atmel_mxt_ts.h b/ANDROID_3.4.5/include/linux/i2c/atmel_mxt_ts.h
deleted file mode 100644
index f027f7a6..00000000
--- a/ANDROID_3.4.5/include/linux/i2c/atmel_mxt_ts.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Atmel maXTouch Touchscreen driver
- *
- * Copyright (C) 2010 Samsung Electronics Co.Ltd
- * Author: Joonyoung Shim <jy0922.shim@samsung.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 __LINUX_ATMEL_MXT_TS_H
-#define __LINUX_ATMEL_MXT_TS_H
-
-#include <linux/types.h>
-
-/* Orient */
-#define MXT_NORMAL 0x0
-#define MXT_DIAGONAL 0x1
-#define MXT_HORIZONTAL_FLIP 0x2
-#define MXT_ROTATED_90_COUNTER 0x3
-#define MXT_VERTICAL_FLIP 0x4
-#define MXT_ROTATED_90 0x5
-#define MXT_ROTATED_180 0x6
-#define MXT_DIAGONAL_COUNTER 0x7
-
-/* The platform data for the Atmel maXTouch touchscreen driver */
-struct mxt_platform_data {
- const u8 *config;
- size_t config_length;
-
- unsigned int x_line;
- unsigned int y_line;
- unsigned int x_size;
- unsigned int y_size;
- unsigned int blen;
- unsigned int threshold;
- unsigned int voltage;
- unsigned char orient;
- unsigned long irqflags;
-};
-
-#endif /* __LINUX_ATMEL_MXT_TS_H */
diff --git a/ANDROID_3.4.5/include/linux/i2c/bh1770glc.h b/ANDROID_3.4.5/include/linux/i2c/bh1770glc.h
deleted file mode 100644
index 8b5e2df3..00000000
--- a/ANDROID_3.4.5/include/linux/i2c/bh1770glc.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * This file is part of the ROHM BH1770GLC / OSRAM SFH7770 sensor driver.
- * Chip is combined proximity and ambient light sensor.
- *
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
- *
- * Contact: Samu Onkalo <samu.p.onkalo@nokia.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.
- *
- * 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 __BH1770_H__
-#define __BH1770_H__
-
-/**
- * struct bh1770_platform_data - platform data for bh1770glc driver
- * @led_def_curr: IR led driving current.
- * @glass_attenuation: Attenuation factor for covering window.
- * @setup_resources: Call back for interrupt line setup function
- * @release_resources: Call back for interrupte line release function
- *
- * Example of glass attenuation: 16384 * 385 / 100 means attenuation factor
- * of 3.85. i.e. light_above_sensor = light_above_cover_window / 3.85
- */
-
-struct bh1770_platform_data {
-#define BH1770_LED_5mA 0
-#define BH1770_LED_10mA 1
-#define BH1770_LED_20mA 2
-#define BH1770_LED_50mA 3
-#define BH1770_LED_100mA 4
-#define BH1770_LED_150mA 5
-#define BH1770_LED_200mA 6
- __u8 led_def_curr;
-#define BH1770_NEUTRAL_GA 16384 /* 16384 / 16384 = 1 */
- __u32 glass_attenuation;
- int (*setup_resources)(void);
- int (*release_resources)(void);
-};
-#endif
diff --git a/ANDROID_3.4.5/include/linux/i2c/dm355evm_msp.h b/ANDROID_3.4.5/include/linux/i2c/dm355evm_msp.h
deleted file mode 100644
index 37247035..00000000
--- a/ANDROID_3.4.5/include/linux/i2c/dm355evm_msp.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * dm355evm_msp.h - support MSP430 microcontroller on DM355EVM board
- */
-#ifndef __LINUX_I2C_DM355EVM_MSP
-#define __LINUX_I2C_DM355EVM_MSP
-
-/*
- * Written against Spectrum's writeup for the A4 firmware revision,
- * and tweaked to match source and rev D2 schematics by removing CPLD
- * and NOR flash hooks (which were last appropriate in rev B boards).
- *
- * Note that the firmware supports a flavor of write posting ... to be
- * sure a write completes, issue another read or write.
- */
-
-/* utilities to access "registers" emulated by msp430 firmware */
-extern int dm355evm_msp_write(u8 value, u8 reg);
-extern int dm355evm_msp_read(u8 reg);
-
-
-/* command/control registers */
-#define DM355EVM_MSP_COMMAND 0x00
-# define MSP_COMMAND_NULL 0
-# define MSP_COMMAND_RESET_COLD 1
-# define MSP_COMMAND_RESET_WARM 2
-# define MSP_COMMAND_RESET_WARM_I 3
-# define MSP_COMMAND_POWEROFF 4
-# define MSP_COMMAND_IR_REINIT 5
-#define DM355EVM_MSP_STATUS 0x01
-# define MSP_STATUS_BAD_OFFSET BIT(0)
-# define MSP_STATUS_BAD_COMMAND BIT(1)
-# define MSP_STATUS_POWER_ERROR BIT(2)
-# define MSP_STATUS_RXBUF_OVERRUN BIT(3)
-#define DM355EVM_MSP_RESET 0x02 /* 0 bits == in reset */
-# define MSP_RESET_DC5 BIT(0)
-# define MSP_RESET_TVP5154 BIT(2)
-# define MSP_RESET_IMAGER BIT(3)
-# define MSP_RESET_ETHERNET BIT(4)
-# define MSP_RESET_SYS BIT(5)
-# define MSP_RESET_AIC33 BIT(7)
-
-/* GPIO registers ... bit patterns mostly match the source MSP ports */
-#define DM355EVM_MSP_LED 0x03 /* active low (MSP P4) */
-#define DM355EVM_MSP_SWITCH1 0x04 /* (MSP P5, masked) */
-# define MSP_SWITCH1_SW6_1 BIT(0)
-# define MSP_SWITCH1_SW6_2 BIT(1)
-# define MSP_SWITCH1_SW6_3 BIT(2)
-# define MSP_SWITCH1_SW6_4 BIT(3)
-# define MSP_SWITCH1_J1 BIT(4) /* NTSC/PAL */
-# define MSP_SWITCH1_MSP_INT BIT(5) /* active low */
-#define DM355EVM_MSP_SWITCH2 0x05 /* (MSP P6, masked) */
-# define MSP_SWITCH2_SW10 BIT(3)
-# define MSP_SWITCH2_SW11 BIT(4)
-# define MSP_SWITCH2_SW12 BIT(5)
-# define MSP_SWITCH2_SW13 BIT(6)
-# define MSP_SWITCH2_SW14 BIT(7)
-#define DM355EVM_MSP_SDMMC 0x06 /* (MSP P2, masked) */
-# define MSP_SDMMC_0_WP BIT(1)
-# define MSP_SDMMC_0_CD BIT(2) /* active low */
-# define MSP_SDMMC_1_WP BIT(3)
-# define MSP_SDMMC_1_CD BIT(4) /* active low */
-#define DM355EVM_MSP_FIRMREV 0x07 /* not a GPIO (out of order) */
-#define DM355EVM_MSP_VIDEO_IN 0x08 /* (MSP P3, masked) */
-# define MSP_VIDEO_IMAGER BIT(7) /* low == tvp5146 */
-
-/* power supply registers are currently omitted */
-
-/* RTC registers */
-#define DM355EVM_MSP_RTC_0 0x12 /* LSB */
-#define DM355EVM_MSP_RTC_1 0x13
-#define DM355EVM_MSP_RTC_2 0x14
-#define DM355EVM_MSP_RTC_3 0x15 /* MSB */
-
-/* input event queue registers; code == ((HIGH << 8) | LOW) */
-#define DM355EVM_MSP_INPUT_COUNT 0x16 /* decrement by reading LOW */
-#define DM355EVM_MSP_INPUT_HIGH 0x17
-#define DM355EVM_MSP_INPUT_LOW 0x18
-
-#endif /* __LINUX_I2C_DM355EVM_MSP */
diff --git a/ANDROID_3.4.5/include/linux/i2c/ds620.h b/ANDROID_3.4.5/include/linux/i2c/ds620.h
deleted file mode 100644
index 736bb87a..00000000
--- a/ANDROID_3.4.5/include/linux/i2c/ds620.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef _LINUX_DS620_H
-#define _LINUX_DS620_H
-
-#include <linux/types.h>
-#include <linux/i2c.h>
-
-/* platform data for the DS620 temperature sensor and thermostat */
-
-struct ds620_platform_data {
- /*
- * Thermostat output pin PO mode:
- * 0 = always low (default)
- * 1 = PO_LOW
- * 2 = PO_HIGH
- *
- * (see Documentation/hwmon/ds620)
- */
- int pomode;
-};
-
-#endif /* _LINUX_DS620_H */
diff --git a/ANDROID_3.4.5/include/linux/i2c/i2c-sh_mobile.h b/ANDROID_3.4.5/include/linux/i2c/i2c-sh_mobile.h
deleted file mode 100644
index beda7081..00000000
--- a/ANDROID_3.4.5/include/linux/i2c/i2c-sh_mobile.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef __I2C_SH_MOBILE_H__
-#define __I2C_SH_MOBILE_H__
-
-#include <linux/platform_device.h>
-
-struct i2c_sh_mobile_platform_data {
- unsigned long bus_speed;
-};
-
-#endif /* __I2C_SH_MOBILE_H__ */
diff --git a/ANDROID_3.4.5/include/linux/i2c/lm8323.h b/ANDROID_3.4.5/include/linux/i2c/lm8323.h
deleted file mode 100644
index 478d668b..00000000
--- a/ANDROID_3.4.5/include/linux/i2c/lm8323.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * lm8323.h - Configuration for LM8323 keypad 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 (version 2 of the License only).
- *
- * 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
- */
-
-#ifndef __LINUX_LM8323_H
-#define __LINUX_LM8323_H
-
-#include <linux/types.h>
-
-/*
- * Largest keycode that the chip can send, plus one,
- * so keys can be mapped directly at the index of the
- * LM8323 keycode instead of subtracting one.
- */
-#define LM8323_KEYMAP_SIZE (0x7f + 1)
-
-#define LM8323_NUM_PWMS 3
-
-struct lm8323_platform_data {
- int debounce_time; /* Time to watch for key bouncing, in ms. */
- int active_time; /* Idle time until sleep, in ms. */
-
- int size_x;
- int size_y;
- bool repeat;
- const unsigned short *keymap;
-
- const char *pwm_names[LM8323_NUM_PWMS];
-
- const char *name; /* Device name. */
-};
-
-#endif /* __LINUX_LM8323_H */
diff --git a/ANDROID_3.4.5/include/linux/i2c/ltc4245.h b/ANDROID_3.4.5/include/linux/i2c/ltc4245.h
deleted file mode 100644
index 56bda4be..00000000
--- a/ANDROID_3.4.5/include/linux/i2c/ltc4245.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Platform Data for LTC4245 hardware monitor chip
- *
- * Copyright (c) 2010 Ira W. Snyder <iws@ovro.caltech.edu>
- *
- * 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_LTC4245_H
-#define LINUX_LTC4245_H
-
-#include <linux/types.h>
-
-struct ltc4245_platform_data {
- bool use_extra_gpios;
-};
-
-#endif /* LINUX_LTC4245_H */
diff --git a/ANDROID_3.4.5/include/linux/i2c/max6639.h b/ANDROID_3.4.5/include/linux/i2c/max6639.h
deleted file mode 100644
index 6011c420..00000000
--- a/ANDROID_3.4.5/include/linux/i2c/max6639.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef _LINUX_MAX6639_H
-#define _LINUX_MAX6639_H
-
-#include <linux/types.h>
-
-/* platform data for the MAX6639 temperature sensor and fan control */
-
-struct max6639_platform_data {
- bool pwm_polarity; /* Polarity low (0) or high (1, default) */
- int ppr; /* Pulses per rotation 1..4 (default == 2) */
- int rpm_range; /* 2000, 4000 (default), 8000 or 16000 */
-};
-
-#endif /* _LINUX_MAX6639_H */
diff --git a/ANDROID_3.4.5/include/linux/i2c/max732x.h b/ANDROID_3.4.5/include/linux/i2c/max732x.h
deleted file mode 100644
index c04bac8b..00000000
--- a/ANDROID_3.4.5/include/linux/i2c/max732x.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef __LINUX_I2C_MAX732X_H
-#define __LINUX_I2C_MAX732X_H
-
-/* platform data for the MAX732x 8/16-bit I/O expander driver */
-
-struct max732x_platform_data {
- /* number of the first GPIO */
- unsigned gpio_base;
-
- /* interrupt base */
- int irq_base;
-
- void *context; /* param to setup/teardown */
-
- int (*setup)(struct i2c_client *client,
- unsigned gpio, unsigned ngpio,
- void *context);
- int (*teardown)(struct i2c_client *client,
- unsigned gpio, unsigned ngpio,
- void *context);
-};
-#endif /* __LINUX_I2C_MAX732X_H */
diff --git a/ANDROID_3.4.5/include/linux/i2c/mcs.h b/ANDROID_3.4.5/include/linux/i2c/mcs.h
deleted file mode 100644
index 61bb18a4..00000000
--- a/ANDROID_3.4.5/include/linux/i2c/mcs.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2009 - 2010 Samsung Electronics Co.Ltd
- * Author: Joonyoung Shim <jy0922.shim@samsung.com>
- * Author: HeungJun Kim <riverful.kim@samsung.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 __LINUX_MCS_H
-#define __LINUX_MCS_H
-
-#define MCS_KEY_MAP(v, c) ((((v) & 0xff) << 16) | ((c) & 0xffff))
-#define MCS_KEY_VAL(v) (((v) >> 16) & 0xff)
-#define MCS_KEY_CODE(v) ((v) & 0xffff)
-
-struct mcs_platform_data {
- void (*poweron)(bool);
- void (*cfg_pin)(void);
-
- /* touchscreen */
- unsigned int x_size;
- unsigned int y_size;
-
- /* touchkey */
- const u32 *keymap;
- unsigned int keymap_size;
- unsigned int key_maxval;
- bool no_autorepeat;
-};
-
-#endif /* __LINUX_MCS_H */
diff --git a/ANDROID_3.4.5/include/linux/i2c/mpr121_touchkey.h b/ANDROID_3.4.5/include/linux/i2c/mpr121_touchkey.h
deleted file mode 100644
index f0bcc38b..00000000
--- a/ANDROID_3.4.5/include/linux/i2c/mpr121_touchkey.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Header file for Freescale MPR121 Capacitive Touch Sensor */
-
-#ifndef _MPR121_TOUCHKEY_H
-#define _MPR121_TOUCHKEY_H
-
-/**
- * struct mpr121_platform_data - platform data for mpr121 sensor
- * @keymap: pointer to array of KEY_* values representing keymap
- * @keymap_size: size of the keymap
- * @wakeup: configure the button as a wake-up source
- * @vdd_uv: VDD voltage in uV
- */
-struct mpr121_platform_data {
- const unsigned short *keymap;
- unsigned int keymap_size;
- bool wakeup;
- int vdd_uv;
-};
-
-#endif /* _MPR121_TOUCHKEY_H */
diff --git a/ANDROID_3.4.5/include/linux/i2c/pca953x.h b/ANDROID_3.4.5/include/linux/i2c/pca953x.h
deleted file mode 100644
index 139ba526..00000000
--- a/ANDROID_3.4.5/include/linux/i2c/pca953x.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef _LINUX_PCA953X_H
-#define _LINUX_PCA953X_H
-
-#include <linux/types.h>
-#include <linux/i2c.h>
-
-/* platform data for the PCA9539 16-bit I/O expander driver */
-
-struct pca953x_platform_data {
- /* number of the first GPIO */
- unsigned gpio_base;
-
- /* initial polarity inversion setting */
- uint16_t invert;
-
- /* interrupt base */
- int irq_base;
-
- void *context; /* param to setup/teardown */
-
- int (*setup)(struct i2c_client *client,
- unsigned gpio, unsigned ngpio,
- void *context);
- int (*teardown)(struct i2c_client *client,
- unsigned gpio, unsigned ngpio,
- void *context);
- const char *const *names;
-};
-
-#endif /* _LINUX_PCA953X_H */
diff --git a/ANDROID_3.4.5/include/linux/i2c/pca954x.h b/ANDROID_3.4.5/include/linux/i2c/pca954x.h
deleted file mode 100644
index 28f1f8d5..00000000
--- a/ANDROID_3.4.5/include/linux/i2c/pca954x.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- *
- * pca954x.h - I2C multiplexer/switch support
- *
- * Copyright (c) 2008-2009 Rodolfo Giometti <giometti@linux.it>
- * Copyright (c) 2008-2009 Eurotech S.p.A. <info@eurotech.it>
- * Michael Lawnick <michael.lawnick.ext@nsn.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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#ifndef _LINUX_I2C_PCA954X_H
-#define _LINUX_I2C_PCA954X_H
-
-/* Platform data for the PCA954x I2C multiplexers */
-
-/* Per channel initialisation data:
- * @adap_id: bus number for the adapter. 0 = don't care
- * @deselect_on_exit: set this entry to 1, if your H/W needs deselection
- * of this channel after transaction.
- *
- */
-struct pca954x_platform_mode {
- int adap_id;
- unsigned int deselect_on_exit:1;
-};
-
-/* Per mux/switch data, used with i2c_register_board_info */
-struct pca954x_platform_data {
- struct pca954x_platform_mode *modes;
- int num_modes;
-};
-
-#endif /* _LINUX_I2C_PCA954X_H */
diff --git a/ANDROID_3.4.5/include/linux/i2c/pcf857x.h b/ANDROID_3.4.5/include/linux/i2c/pcf857x.h
deleted file mode 100644
index 0767a2a6..00000000
--- a/ANDROID_3.4.5/include/linux/i2c/pcf857x.h
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef __LINUX_PCF857X_H
-#define __LINUX_PCF857X_H
-
-/**
- * struct pcf857x_platform_data - data to set up pcf857x driver
- * @gpio_base: number of the chip's first GPIO
- * @n_latch: optional bit-inverse of initial register value; if
- * you leave this initialized to zero the driver will act
- * like the chip was just reset
- * @setup: optional callback issued once the GPIOs are valid
- * @teardown: optional callback issued before the GPIOs are invalidated
- * @context: optional parameter passed to setup() and teardown()
- *
- * In addition to the I2C_BOARD_INFO() state appropriate to each chip,
- * the i2c_board_info used with the pcf875x driver must provide its
- * platform_data (pointer to one of these structures) with at least
- * the gpio_base value initialized.
- *
- * The @setup callback may be used with the kind of board-specific glue
- * which hands the (now-valid) GPIOs to other drivers, or which puts
- * devices in their initial states using these GPIOs.
- *
- * These GPIO chips are only "quasi-bidirectional"; read the chip specs
- * to understand the behavior. They don't have separate registers to
- * record which pins are used for input or output, record which output
- * values are driven, or provide access to input values. That must be
- * inferred by reading the chip's value and knowing the last value written
- * to it. If you leave n_latch initialized to zero, that last written
- * value is presumed to be all ones (as if the chip were just reset).
- */
-struct pcf857x_platform_data {
- unsigned gpio_base;
- unsigned n_latch;
-
- int (*setup)(struct i2c_client *client,
- int gpio, unsigned ngpio,
- void *context);
- int (*teardown)(struct i2c_client *client,
- int gpio, unsigned ngpio,
- void *context);
- void *context;
-};
-
-#endif /* __LINUX_PCF857X_H */
diff --git a/ANDROID_3.4.5/include/linux/i2c/pmbus.h b/ANDROID_3.4.5/include/linux/i2c/pmbus.h
deleted file mode 100644
index 69280db0..00000000
--- a/ANDROID_3.4.5/include/linux/i2c/pmbus.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Hardware monitoring driver for PMBus devices
- *
- * Copyright (c) 2010, 2011 Ericsson AB.
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef _PMBUS_H_
-#define _PMBUS_H_
-
-/* flags */
-
-/*
- * PMBUS_SKIP_STATUS_CHECK
- *
- * During register detection, skip checking the status register for
- * communication or command errors.
- *
- * Some PMBus chips respond with valid data when trying to read an unsupported
- * register. For such chips, checking the status register is mandatory when
- * trying to determine if a chip register exists or not.
- * Other PMBus chips don't support the STATUS_CML register, or report
- * communication errors for no explicable reason. For such chips, checking
- * the status register must be disabled.
- */
-#define PMBUS_SKIP_STATUS_CHECK (1 << 0)
-
-struct pmbus_platform_data {
- u32 flags; /* Device specific flags */
-};
-
-#endif /* _PMBUS_H_ */
diff --git a/ANDROID_3.4.5/include/linux/i2c/pxa-i2c.h b/ANDROID_3.4.5/include/linux/i2c/pxa-i2c.h
deleted file mode 100644
index 1a9f65e6..00000000
--- a/ANDROID_3.4.5/include/linux/i2c/pxa-i2c.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * i2c_pxa.h
- *
- * Copyright (C) 2002 Intrinsyc Software Inc.
- *
- * 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.
- *
- */
-#ifndef _I2C_PXA_H_
-#define _I2C_PXA_H_
-
-#if 0
-#define DEF_TIMEOUT 3
-#else
-/* need a longer timeout if we're dealing with the fact we may well be
- * looking at a multi-master environment
-*/
-#define DEF_TIMEOUT 32
-#endif
-
-#define BUS_ERROR (-EREMOTEIO)
-#define XFER_NAKED (-ECONNREFUSED)
-#define I2C_RETRY (-2000) /* an error has occurred retry transmit */
-
-/* ICR initialize bit values
-*
-* 15. FM 0 (100 Khz operation)
-* 14. UR 0 (No unit reset)
-* 13. SADIE 0 (Disables the unit from interrupting on slave addresses
-* matching its slave address)
-* 12. ALDIE 0 (Disables the unit from interrupt when it loses arbitration
-* in master mode)
-* 11. SSDIE 0 (Disables interrupts from a slave stop detected, in slave mode)
-* 10. BEIE 1 (Enable interrupts from detected bus errors, no ACK sent)
-* 9. IRFIE 1 (Enable interrupts from full buffer received)
-* 8. ITEIE 1 (Enables the I2C unit to interrupt when transmit buffer empty)
-* 7. GCD 1 (Disables i2c unit response to general call messages as a slave)
-* 6. IUE 0 (Disable unit until we change settings)
-* 5. SCLE 1 (Enables the i2c clock output for master mode (drives SCL)
-* 4. MA 0 (Only send stop with the ICR stop bit)
-* 3. TB 0 (We are not transmitting a byte initially)
-* 2. ACKNAK 0 (Send an ACK after the unit receives a byte)
-* 1. STOP 0 (Do not send a STOP)
-* 0. START 0 (Do not send a START)
-*
-*/
-#define I2C_ICR_INIT (ICR_BEIE | ICR_IRFIE | ICR_ITEIE | ICR_GCD | ICR_SCLE)
-
-/* I2C status register init values
- *
- * 10. BED 1 (Clear bus error detected)
- * 9. SAD 1 (Clear slave address detected)
- * 7. IRF 1 (Clear IDBR Receive Full)
- * 6. ITE 1 (Clear IDBR Transmit Empty)
- * 5. ALD 1 (Clear Arbitration Loss Detected)
- * 4. SSD 1 (Clear Slave Stop Detected)
- */
-#define I2C_ISR_INIT 0x7FF /* status register init */
-
-struct i2c_slave_client;
-
-struct i2c_pxa_platform_data {
- unsigned int slave_addr;
- struct i2c_slave_client *slave;
- unsigned int class;
- unsigned int use_pio :1;
- unsigned int fast_mode :1;
-};
-
-extern void pxa_set_i2c_info(struct i2c_pxa_platform_data *info);
-
-#ifdef CONFIG_PXA27x
-extern void pxa27x_set_i2c_power_info(struct i2c_pxa_platform_data *info);
-#endif
-
-#ifdef CONFIG_PXA3xx
-extern void pxa3xx_set_i2c_power_info(struct i2c_pxa_platform_data *info);
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/i2c/s6000.h b/ANDROID_3.4.5/include/linux/i2c/s6000.h
deleted file mode 100644
index d9b34bfd..00000000
--- a/ANDROID_3.4.5/include/linux/i2c/s6000.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef __LINUX_I2C_S6000_H
-#define __LINUX_I2C_S6000_H
-
-struct s6_i2c_platform_data {
- const char *clock; /* the clock to use */
- int bus_num; /* the bus number to register */
-};
-
-#endif
-
diff --git a/ANDROID_3.4.5/include/linux/i2c/sx150x.h b/ANDROID_3.4.5/include/linux/i2c/sx150x.h
deleted file mode 100644
index 52baa79d..00000000
--- a/ANDROID_3.4.5/include/linux/i2c/sx150x.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Driver for the Semtech SX150x I2C GPIO Expanders
- *
- * Copyright (c) 2010, Code Aurora Forum. 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 version 2 and
- * only version 2 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-1301, USA.
- */
-#ifndef __LINUX_I2C_SX150X_H
-#define __LINUX_I2C_SX150X_H
-
-/**
- * struct sx150x_platform_data - config data for SX150x driver
- * @gpio_base: The index number of the first GPIO assigned to this
- * GPIO expander. The expander will create a block of
- * consecutively numbered gpios beginning at the given base,
- * with the size of the block depending on the model of the
- * expander chip.
- * @oscio_is_gpo: If set to true, the driver will configure OSCIO as a GPO
- * instead of as an oscillator, increasing the size of the
- * GP(I)O pool created by this expander by one. The
- * output-only GPO pin will be added at the end of the block.
- * @io_pullup_ena: A bit-mask which enables or disables the pull-up resistor
- * for each IO line in the expander. Setting the bit at
- * position n will enable the pull-up for the IO at
- * the corresponding offset. For chips with fewer than
- * 16 IO pins, high-end bits are ignored.
- * @io_pulldn_ena: A bit-mask which enables-or disables the pull-down
- * resistor for each IO line in the expander. Setting the
- * bit at position n will enable the pull-down for the IO at
- * the corresponding offset. For chips with fewer than
- * 16 IO pins, high-end bits are ignored.
- * @io_open_drain_ena: A bit-mask which enables-or disables open-drain
- * operation for each IO line in the expander. Setting the
- * bit at position n enables open-drain operation for
- * the IO at the corresponding offset. Clearing the bit
- * enables regular push-pull operation for that IO.
- * For chips with fewer than 16 IO pins, high-end bits
- * are ignored.
- * @io_polarity: A bit-mask which enables polarity inversion for each IO line
- * in the expander. Setting the bit at position n inverts
- * the polarity of that IO line, while clearing it results
- * in normal polarity. For chips with fewer than 16 IO pins,
- * high-end bits are ignored.
- * @irq_summary: The 'summary IRQ' line to which the GPIO expander's INT line
- * is connected, via which it reports interrupt events
- * across all GPIO lines. This must be a real,
- * pre-existing IRQ line.
- * Setting this value < 0 disables the irq_chip functionality
- * of the driver.
- * @irq_base: The first 'virtual IRQ' line at which our block of GPIO-based
- * IRQ lines will appear. Similarly to gpio_base, the expander
- * will create a block of irqs beginning at this number.
- * This value is ignored if irq_summary is < 0.
- * @reset_during_probe: If set to true, the driver will trigger a full
- * reset of the chip at the beginning of the probe
- * in order to place it in a known state.
- */
-struct sx150x_platform_data {
- unsigned gpio_base;
- bool oscio_is_gpo;
- u16 io_pullup_ena;
- u16 io_pulldn_ena;
- u16 io_open_drain_ena;
- u16 io_polarity;
- int irq_summary;
- unsigned irq_base;
- bool reset_during_probe;
-};
-
-#endif /* __LINUX_I2C_SX150X_H */
diff --git a/ANDROID_3.4.5/include/linux/i2c/tc35876x.h b/ANDROID_3.4.5/include/linux/i2c/tc35876x.h
deleted file mode 100644
index cd6a51c7..00000000
--- a/ANDROID_3.4.5/include/linux/i2c/tc35876x.h
+++ /dev/null
@@ -1,11 +0,0 @@
-
-#ifndef _TC35876X_H
-#define _TC35876X_H
-
-struct tc35876x_platform_data {
- int gpio_bridge_reset;
- int gpio_panel_bl_en;
- int gpio_panel_vadd;
-};
-
-#endif /* _TC35876X_H */
diff --git a/ANDROID_3.4.5/include/linux/i2c/tps65010.h b/ANDROID_3.4.5/include/linux/i2c/tps65010.h
deleted file mode 100644
index 08aa9227..00000000
--- a/ANDROID_3.4.5/include/linux/i2c/tps65010.h
+++ /dev/null
@@ -1,205 +0,0 @@
-/* linux/i2c/tps65010.h
- *
- * Functions to access TPS65010 power management device.
- *
- * Copyright (C) 2004 Dirk Behme <dirk.behme@de.bosch.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 SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * 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.
- */
-
-#ifndef __LINUX_I2C_TPS65010_H
-#define __LINUX_I2C_TPS65010_H
-
-/*
- * ----------------------------------------------------------------------------
- * Registers, all 8 bits
- * ----------------------------------------------------------------------------
- */
-
-#define TPS_CHGSTATUS 0x01
-# define TPS_CHG_USB (1 << 7)
-# define TPS_CHG_AC (1 << 6)
-# define TPS_CHG_THERM (1 << 5)
-# define TPS_CHG_TERM (1 << 4)
-# define TPS_CHG_TAPER_TMO (1 << 3)
-# define TPS_CHG_CHG_TMO (1 << 2)
-# define TPS_CHG_PRECHG_TMO (1 << 1)
-# define TPS_CHG_TEMP_ERR (1 << 0)
-#define TPS_REGSTATUS 0x02
-# define TPS_REG_ONOFF (1 << 7)
-# define TPS_REG_COVER (1 << 6)
-# define TPS_REG_UVLO (1 << 5)
-# define TPS_REG_NO_CHG (1 << 4) /* tps65013 */
-# define TPS_REG_PG_LD02 (1 << 3)
-# define TPS_REG_PG_LD01 (1 << 2)
-# define TPS_REG_PG_MAIN (1 << 1)
-# define TPS_REG_PG_CORE (1 << 0)
-#define TPS_MASK1 0x03
-#define TPS_MASK2 0x04
-#define TPS_ACKINT1 0x05
-#define TPS_ACKINT2 0x06
-#define TPS_CHGCONFIG 0x07
-# define TPS_CHARGE_POR (1 << 7) /* 65010/65012 */
-# define TPS65013_AUA (1 << 7) /* 65011/65013 */
-# define TPS_CHARGE_RESET (1 << 6)
-# define TPS_CHARGE_FAST (1 << 5)
-# define TPS_CHARGE_CURRENT (3 << 3)
-# define TPS_VBUS_500MA (1 << 2)
-# define TPS_VBUS_CHARGING (1 << 1)
-# define TPS_CHARGE_ENABLE (1 << 0)
-#define TPS_LED1_ON 0x08
-#define TPS_LED1_PER 0x09
-#define TPS_LED2_ON 0x0a
-#define TPS_LED2_PER 0x0b
-#define TPS_VDCDC1 0x0c
-# define TPS_ENABLE_LP (1 << 3)
-#define TPS_VDCDC2 0x0d
-# define TPS_LP_COREOFF (1 << 7)
-# define TPS_VCORE_1_8V (7<<4)
-# define TPS_VCORE_1_5V (6 << 4)
-# define TPS_VCORE_1_4V (5 << 4)
-# define TPS_VCORE_1_3V (4 << 4)
-# define TPS_VCORE_1_2V (3 << 4)
-# define TPS_VCORE_1_1V (2 << 4)
-# define TPS_VCORE_1_0V (1 << 4)
-# define TPS_VCORE_0_85V (0 << 4)
-# define TPS_VCORE_LP_1_2V (3 << 2)
-# define TPS_VCORE_LP_1_1V (2 << 2)
-# define TPS_VCORE_LP_1_0V (1 << 2)
-# define TPS_VCORE_LP_0_85V (0 << 2)
-# define TPS_VIB (1 << 1)
-# define TPS_VCORE_DISCH (1 << 0)
-#define TPS_VREGS1 0x0e
-# define TPS_LDO2_ENABLE (1 << 7)
-# define TPS_LDO2_OFF (1 << 6)
-# define TPS_VLDO2_3_0V (3 << 4)
-# define TPS_VLDO2_2_75V (2 << 4)
-# define TPS_VLDO2_2_5V (1 << 4)
-# define TPS_VLDO2_1_8V (0 << 4)
-# define TPS_LDO1_ENABLE (1 << 3)
-# define TPS_LDO1_OFF (1 << 2)
-# define TPS_VLDO1_3_0V (3 << 0)
-# define TPS_VLDO1_2_75V (2 << 0)
-# define TPS_VLDO1_2_5V (1 << 0)
-# define TPS_VLDO1_ADJ (0 << 0)
-#define TPS_MASK3 0x0f
-#define TPS_DEFGPIO 0x10
-
-/*
- * ----------------------------------------------------------------------------
- * Macros used by exported functions
- * ----------------------------------------------------------------------------
- */
-
-#define LED1 1
-#define LED2 2
-#define OFF 0
-#define ON 1
-#define BLINK 2
-#define GPIO1 1
-#define GPIO2 2
-#define GPIO3 3
-#define GPIO4 4
-#define LOW 0
-#define HIGH 1
-
-/*
- * ----------------------------------------------------------------------------
- * Exported functions
- * ----------------------------------------------------------------------------
- */
-
-/* Draw from VBUS:
- * 0 mA -- DON'T DRAW (might supply power instead)
- * 100 mA -- usb unit load (slowest charge rate)
- * 500 mA -- usb high power (fast battery charge)
- */
-extern int tps65010_set_vbus_draw(unsigned mA);
-
-/* tps65010_set_gpio_out_value parameter:
- * gpio: GPIO1, GPIO2, GPIO3 or GPIO4
- * value: LOW or HIGH
- */
-extern int tps65010_set_gpio_out_value(unsigned gpio, unsigned value);
-
-/* tps65010_set_led parameter:
- * led: LED1 or LED2
- * mode: ON, OFF or BLINK
- */
-extern int tps65010_set_led(unsigned led, unsigned mode);
-
-/* tps65010_set_vib parameter:
- * value: ON or OFF
- */
-extern int tps65010_set_vib(unsigned value);
-
-/* tps65010_set_low_pwr parameter:
- * mode: ON or OFF
- */
-extern int tps65010_set_low_pwr(unsigned mode);
-
-/* tps65010_config_vregs1 parameter:
- * value to be written to VREGS1 register
- * Note: The complete register is written, set all bits you need
- */
-extern int tps65010_config_vregs1(unsigned value);
-
-/* tps65013_set_low_pwr parameter:
- * mode: ON or OFF
- */
-extern int tps65013_set_low_pwr(unsigned mode);
-
-/* tps65010_set_vdcdc2
- * value to be written to VDCDC2
- */
-extern int tps65010_config_vdcdc2(unsigned value);
-
-struct i2c_client;
-
-/**
- * struct tps65010_board - packages GPIO and LED lines
- * @base: the GPIO number to assign to GPIO-1
- * @outmask: bit (N-1) is set to allow GPIO-N to be used as an
- * (open drain) output
- * @setup: optional callback issued once the GPIOs are valid
- * @teardown: optional callback issued before the GPIOs are invalidated
- * @context: optional parameter passed to setup() and teardown()
- *
- * Board data may be used to package the GPIO (and LED) lines for use
- * in by the generic GPIO and LED frameworks. The first four GPIOs
- * starting at gpio_base are GPIO1..GPIO4. The next two are LED1/nPG
- * and LED2 (with hardware blinking capability, not currently exposed).
- *
- * The @setup callback may be used with the kind of board-specific glue
- * which hands the (now-valid) GPIOs to other drivers, or which puts
- * devices in their initial states using these GPIOs.
- */
-struct tps65010_board {
- int base;
- unsigned outmask;
-
- int (*setup)(struct i2c_client *client, void *context);
- int (*teardown)(struct i2c_client *client, void *context);
- void *context;
-};
-
-#endif /* __LINUX_I2C_TPS65010_H */
-
diff --git a/ANDROID_3.4.5/include/linux/i2c/tsc2007.h b/ANDROID_3.4.5/include/linux/i2c/tsc2007.h
deleted file mode 100644
index 506a9f7a..00000000
--- a/ANDROID_3.4.5/include/linux/i2c/tsc2007.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef __LINUX_I2C_TSC2007_H
-#define __LINUX_I2C_TSC2007_H
-
-/* linux/i2c/tsc2007.h */
-
-struct tsc2007_platform_data {
- u16 model; /* 2007. */
- u16 x_plate_ohms; /* must be non-zero value */
- u16 max_rt; /* max. resistance above which samples are ignored */
- unsigned long poll_delay; /* delay (in ms) after pen-down event
- before polling starts */
- unsigned long poll_period; /* time (in ms) between samples */
- int fuzzx; /* fuzz factor for X, Y and pressure axes */
- int fuzzy;
- int fuzzz;
-
- int (*get_pendown_state)(void);
- void (*clear_penirq)(void); /* If needed, clear 2nd level
- interrupt source */
- int (*init_platform_hw)(void);
- void (*exit_platform_hw)(void);
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/i2c/twl.h b/ANDROID_3.4.5/include/linux/i2c/twl.h
deleted file mode 100644
index 1f90de0c..00000000
--- a/ANDROID_3.4.5/include/linux/i2c/twl.h
+++ /dev/null
@@ -1,846 +0,0 @@
-/*
- * twl4030.h - header for TWL4030 PM and audio CODEC device
- *
- * Copyright (C) 2005-2006 Texas Instruments, Inc.
- *
- * Based on tlv320aic23.c:
- * Copyright (c) by Kai Svahn <kai.svahn@nokia.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
- *
- */
-
-#ifndef __TWL_H_
-#define __TWL_H_
-
-#include <linux/types.h>
-#include <linux/input/matrix_keypad.h>
-
-/*
- * Using the twl4030 core we address registers using a pair
- * { module id, relative register offset }
- * which that core then maps to the relevant
- * { i2c slave, absolute register address }
- *
- * The module IDs are meaningful only to the twl4030 core code,
- * which uses them as array indices to look up the first register
- * address each module uses within a given i2c slave.
- */
-
-/* Slave 0 (i2c address 0x48) */
-#define TWL4030_MODULE_USB 0x00
-
-/* Slave 1 (i2c address 0x49) */
-#define TWL4030_MODULE_AUDIO_VOICE 0x01
-#define TWL4030_MODULE_GPIO 0x02
-#define TWL4030_MODULE_INTBR 0x03
-#define TWL4030_MODULE_PIH 0x04
-#define TWL4030_MODULE_TEST 0x05
-
-/* Slave 2 (i2c address 0x4a) */
-#define TWL4030_MODULE_KEYPAD 0x06
-#define TWL4030_MODULE_MADC 0x07
-#define TWL4030_MODULE_INTERRUPTS 0x08
-#define TWL4030_MODULE_LED 0x09
-#define TWL4030_MODULE_MAIN_CHARGE 0x0A
-#define TWL4030_MODULE_PRECHARGE 0x0B
-#define TWL4030_MODULE_PWM0 0x0C
-#define TWL4030_MODULE_PWM1 0x0D
-#define TWL4030_MODULE_PWMA 0x0E
-#define TWL4030_MODULE_PWMB 0x0F
-
-#define TWL5031_MODULE_ACCESSORY 0x10
-#define TWL5031_MODULE_INTERRUPTS 0x11
-
-/* Slave 3 (i2c address 0x4b) */
-#define TWL4030_MODULE_BACKUP 0x12
-#define TWL4030_MODULE_INT 0x13
-#define TWL4030_MODULE_PM_MASTER 0x14
-#define TWL4030_MODULE_PM_RECEIVER 0x15
-#define TWL4030_MODULE_RTC 0x16
-#define TWL4030_MODULE_SECURED_REG 0x17
-
-#define TWL_MODULE_USB TWL4030_MODULE_USB
-#define TWL_MODULE_AUDIO_VOICE TWL4030_MODULE_AUDIO_VOICE
-#define TWL_MODULE_PIH TWL4030_MODULE_PIH
-#define TWL_MODULE_MADC TWL4030_MODULE_MADC
-#define TWL_MODULE_MAIN_CHARGE TWL4030_MODULE_MAIN_CHARGE
-#define TWL_MODULE_PM_MASTER TWL4030_MODULE_PM_MASTER
-#define TWL_MODULE_PM_RECEIVER TWL4030_MODULE_PM_RECEIVER
-#define TWL_MODULE_RTC TWL4030_MODULE_RTC
-#define TWL_MODULE_PWM TWL4030_MODULE_PWM0
-
-#define TWL6030_MODULE_ID0 0x0D
-#define TWL6030_MODULE_ID1 0x0E
-#define TWL6030_MODULE_ID2 0x0F
-
-#define GPIO_INTR_OFFSET 0
-#define KEYPAD_INTR_OFFSET 1
-#define BCI_INTR_OFFSET 2
-#define MADC_INTR_OFFSET 3
-#define USB_INTR_OFFSET 4
-#define CHARGERFAULT_INTR_OFFSET 5
-#define BCI_PRES_INTR_OFFSET 9
-#define USB_PRES_INTR_OFFSET 10
-#define RTC_INTR_OFFSET 11
-
-/*
- * Offset from TWL6030_IRQ_BASE / pdata->irq_base
- */
-#define PWR_INTR_OFFSET 0
-#define HOTDIE_INTR_OFFSET 12
-#define SMPSLDO_INTR_OFFSET 13
-#define BATDETECT_INTR_OFFSET 14
-#define SIMDETECT_INTR_OFFSET 15
-#define MMCDETECT_INTR_OFFSET 16
-#define GASGAUGE_INTR_OFFSET 17
-#define USBOTG_INTR_OFFSET 4
-#define CHARGER_INTR_OFFSET 2
-#define RSV_INTR_OFFSET 0
-
-/* INT register offsets */
-#define REG_INT_STS_A 0x00
-#define REG_INT_STS_B 0x01
-#define REG_INT_STS_C 0x02
-
-#define REG_INT_MSK_LINE_A 0x03
-#define REG_INT_MSK_LINE_B 0x04
-#define REG_INT_MSK_LINE_C 0x05
-
-#define REG_INT_MSK_STS_A 0x06
-#define REG_INT_MSK_STS_B 0x07
-#define REG_INT_MSK_STS_C 0x08
-
-/* MASK INT REG GROUP A */
-#define TWL6030_PWR_INT_MASK 0x07
-#define TWL6030_RTC_INT_MASK 0x18
-#define TWL6030_HOTDIE_INT_MASK 0x20
-#define TWL6030_SMPSLDOA_INT_MASK 0xC0
-
-/* MASK INT REG GROUP B */
-#define TWL6030_SMPSLDOB_INT_MASK 0x01
-#define TWL6030_BATDETECT_INT_MASK 0x02
-#define TWL6030_SIMDETECT_INT_MASK 0x04
-#define TWL6030_MMCDETECT_INT_MASK 0x08
-#define TWL6030_GPADC_INT_MASK 0x60
-#define TWL6030_GASGAUGE_INT_MASK 0x80
-
-/* MASK INT REG GROUP C */
-#define TWL6030_USBOTG_INT_MASK 0x0F
-#define TWL6030_CHARGER_CTRL_INT_MASK 0x10
-#define TWL6030_CHARGER_FAULT_INT_MASK 0x60
-
-#define TWL6030_MMCCTRL 0xEE
-#define VMMC_AUTO_OFF (0x1 << 3)
-#define SW_FC (0x1 << 2)
-#define STS_MMC 0x1
-
-#define TWL6030_CFG_INPUT_PUPD3 0xF2
-#define MMC_PU (0x1 << 3)
-#define MMC_PD (0x1 << 2)
-
-#define TWL_SIL_TYPE(rev) ((rev) & 0x00FFFFFF)
-#define TWL_SIL_REV(rev) ((rev) >> 24)
-#define TWL_SIL_5030 0x09002F
-#define TWL5030_REV_1_0 0x00
-#define TWL5030_REV_1_1 0x10
-#define TWL5030_REV_1_2 0x30
-
-#define TWL4030_CLASS_ID 0x4030
-#define TWL6030_CLASS_ID 0x6030
-unsigned int twl_rev(void);
-#define GET_TWL_REV (twl_rev())
-#define TWL_CLASS_IS(class, id) \
-static inline int twl_class_is_ ##class(void) \
-{ \
- return ((id) == (GET_TWL_REV)) ? 1 : 0; \
-}
-
-TWL_CLASS_IS(4030, TWL4030_CLASS_ID)
-TWL_CLASS_IS(6030, TWL6030_CLASS_ID)
-
-#define TWL6025_SUBCLASS BIT(4) /* TWL6025 has changed registers */
-
-/*
- * Read and write single 8-bit registers
- */
-int twl_i2c_write_u8(u8 mod_no, u8 val, u8 reg);
-int twl_i2c_read_u8(u8 mod_no, u8 *val, u8 reg);
-
-/*
- * Read and write several 8-bit registers at once.
- *
- * IMPORTANT: For twl_i2c_write(), allocate num_bytes + 1
- * for the value, and populate your data starting at offset 1.
- */
-int twl_i2c_write(u8 mod_no, u8 *value, u8 reg, unsigned num_bytes);
-int twl_i2c_read(u8 mod_no, u8 *value, u8 reg, unsigned num_bytes);
-
-int twl_get_type(void);
-int twl_get_version(void);
-
-int twl6030_interrupt_unmask(u8 bit_mask, u8 offset);
-int twl6030_interrupt_mask(u8 bit_mask, u8 offset);
-
-/* Card detect Configuration for MMC1 Controller on OMAP4 */
-#ifdef CONFIG_TWL4030_CORE
-int twl6030_mmc_card_detect_config(void);
-#else
-static inline int twl6030_mmc_card_detect_config(void)
-{
- pr_debug("twl6030_mmc_card_detect_config not supported\n");
- return 0;
-}
-#endif
-
-/* MMC1 Controller on OMAP4 uses Phoenix irq for Card detect */
-#ifdef CONFIG_TWL4030_CORE
-int twl6030_mmc_card_detect(struct device *dev, int slot);
-#else
-static inline int twl6030_mmc_card_detect(struct device *dev, int slot)
-{
- pr_debug("Call back twl6030_mmc_card_detect not supported\n");
- return -EIO;
-}
-#endif
-/*----------------------------------------------------------------------*/
-
-/*
- * NOTE: at up to 1024 registers, this is a big chip.
- *
- * Avoid putting register declarations in this file, instead of into
- * a driver-private file, unless some of the registers in a block
- * need to be shared with other drivers. One example is blocks that
- * have Secondary IRQ Handler (SIH) registers.
- */
-
-#define TWL4030_SIH_CTRL_EXCLEN_MASK BIT(0)
-#define TWL4030_SIH_CTRL_PENDDIS_MASK BIT(1)
-#define TWL4030_SIH_CTRL_COR_MASK BIT(2)
-
-/*----------------------------------------------------------------------*/
-
-/*
- * GPIO Block Register offsets (use TWL4030_MODULE_GPIO)
- */
-
-#define REG_GPIODATAIN1 0x0
-#define REG_GPIODATAIN2 0x1
-#define REG_GPIODATAIN3 0x2
-#define REG_GPIODATADIR1 0x3
-#define REG_GPIODATADIR2 0x4
-#define REG_GPIODATADIR3 0x5
-#define REG_GPIODATAOUT1 0x6
-#define REG_GPIODATAOUT2 0x7
-#define REG_GPIODATAOUT3 0x8
-#define REG_CLEARGPIODATAOUT1 0x9
-#define REG_CLEARGPIODATAOUT2 0xA
-#define REG_CLEARGPIODATAOUT3 0xB
-#define REG_SETGPIODATAOUT1 0xC
-#define REG_SETGPIODATAOUT2 0xD
-#define REG_SETGPIODATAOUT3 0xE
-#define REG_GPIO_DEBEN1 0xF
-#define REG_GPIO_DEBEN2 0x10
-#define REG_GPIO_DEBEN3 0x11
-#define REG_GPIO_CTRL 0x12
-#define REG_GPIOPUPDCTR1 0x13
-#define REG_GPIOPUPDCTR2 0x14
-#define REG_GPIOPUPDCTR3 0x15
-#define REG_GPIOPUPDCTR4 0x16
-#define REG_GPIOPUPDCTR5 0x17
-#define REG_GPIO_ISR1A 0x19
-#define REG_GPIO_ISR2A 0x1A
-#define REG_GPIO_ISR3A 0x1B
-#define REG_GPIO_IMR1A 0x1C
-#define REG_GPIO_IMR2A 0x1D
-#define REG_GPIO_IMR3A 0x1E
-#define REG_GPIO_ISR1B 0x1F
-#define REG_GPIO_ISR2B 0x20
-#define REG_GPIO_ISR3B 0x21
-#define REG_GPIO_IMR1B 0x22
-#define REG_GPIO_IMR2B 0x23
-#define REG_GPIO_IMR3B 0x24
-#define REG_GPIO_EDR1 0x28
-#define REG_GPIO_EDR2 0x29
-#define REG_GPIO_EDR3 0x2A
-#define REG_GPIO_EDR4 0x2B
-#define REG_GPIO_EDR5 0x2C
-#define REG_GPIO_SIH_CTRL 0x2D
-
-/* Up to 18 signals are available as GPIOs, when their
- * pins are not assigned to another use (such as ULPI/USB).
- */
-#define TWL4030_GPIO_MAX 18
-
-/*----------------------------------------------------------------------*/
-
-/*Interface Bit Register (INTBR) offsets
- *(Use TWL_4030_MODULE_INTBR)
- */
-
-#define REG_IDCODE_7_0 0x00
-#define REG_IDCODE_15_8 0x01
-#define REG_IDCODE_16_23 0x02
-#define REG_IDCODE_31_24 0x03
-#define REG_GPPUPDCTR1 0x0F
-#define REG_UNLOCK_TEST_REG 0x12
-
-/*I2C1 and I2C4(SR) SDA/SCL pull-up control bits */
-
-#define I2C_SCL_CTRL_PU BIT(0)
-#define I2C_SDA_CTRL_PU BIT(2)
-#define SR_I2C_SCL_CTRL_PU BIT(4)
-#define SR_I2C_SDA_CTRL_PU BIT(6)
-
-#define TWL_EEPROM_R_UNLOCK 0x49
-
-/*----------------------------------------------------------------------*/
-
-/*
- * Keypad register offsets (use TWL4030_MODULE_KEYPAD)
- * ... SIH/interrupt only
- */
-
-#define TWL4030_KEYPAD_KEYP_ISR1 0x11
-#define TWL4030_KEYPAD_KEYP_IMR1 0x12
-#define TWL4030_KEYPAD_KEYP_ISR2 0x13
-#define TWL4030_KEYPAD_KEYP_IMR2 0x14
-#define TWL4030_KEYPAD_KEYP_SIR 0x15 /* test register */
-#define TWL4030_KEYPAD_KEYP_EDR 0x16
-#define TWL4030_KEYPAD_KEYP_SIH_CTRL 0x17
-
-/*----------------------------------------------------------------------*/
-
-/*
- * Multichannel ADC register offsets (use TWL4030_MODULE_MADC)
- * ... SIH/interrupt only
- */
-
-#define TWL4030_MADC_ISR1 0x61
-#define TWL4030_MADC_IMR1 0x62
-#define TWL4030_MADC_ISR2 0x63
-#define TWL4030_MADC_IMR2 0x64
-#define TWL4030_MADC_SIR 0x65 /* test register */
-#define TWL4030_MADC_EDR 0x66
-#define TWL4030_MADC_SIH_CTRL 0x67
-
-/*----------------------------------------------------------------------*/
-
-/*
- * Battery charger register offsets (use TWL4030_MODULE_INTERRUPTS)
- */
-
-#define TWL4030_INTERRUPTS_BCIISR1A 0x0
-#define TWL4030_INTERRUPTS_BCIISR2A 0x1
-#define TWL4030_INTERRUPTS_BCIIMR1A 0x2
-#define TWL4030_INTERRUPTS_BCIIMR2A 0x3
-#define TWL4030_INTERRUPTS_BCIISR1B 0x4
-#define TWL4030_INTERRUPTS_BCIISR2B 0x5
-#define TWL4030_INTERRUPTS_BCIIMR1B 0x6
-#define TWL4030_INTERRUPTS_BCIIMR2B 0x7
-#define TWL4030_INTERRUPTS_BCISIR1 0x8 /* test register */
-#define TWL4030_INTERRUPTS_BCISIR2 0x9 /* test register */
-#define TWL4030_INTERRUPTS_BCIEDR1 0xa
-#define TWL4030_INTERRUPTS_BCIEDR2 0xb
-#define TWL4030_INTERRUPTS_BCIEDR3 0xc
-#define TWL4030_INTERRUPTS_BCISIHCTRL 0xd
-
-/*----------------------------------------------------------------------*/
-
-/*
- * Power Interrupt block register offsets (use TWL4030_MODULE_INT)
- */
-
-#define TWL4030_INT_PWR_ISR1 0x0
-#define TWL4030_INT_PWR_IMR1 0x1
-#define TWL4030_INT_PWR_ISR2 0x2
-#define TWL4030_INT_PWR_IMR2 0x3
-#define TWL4030_INT_PWR_SIR 0x4 /* test register */
-#define TWL4030_INT_PWR_EDR1 0x5
-#define TWL4030_INT_PWR_EDR2 0x6
-#define TWL4030_INT_PWR_SIH_CTRL 0x7
-
-/*----------------------------------------------------------------------*/
-
-/*
- * Accessory Interrupts
- */
-#define TWL5031_ACIIMR_LSB 0x05
-#define TWL5031_ACIIMR_MSB 0x06
-#define TWL5031_ACIIDR_LSB 0x07
-#define TWL5031_ACIIDR_MSB 0x08
-#define TWL5031_ACCISR1 0x0F
-#define TWL5031_ACCIMR1 0x10
-#define TWL5031_ACCISR2 0x11
-#define TWL5031_ACCIMR2 0x12
-#define TWL5031_ACCSIR 0x13
-#define TWL5031_ACCEDR1 0x14
-#define TWL5031_ACCSIHCTRL 0x15
-
-/*----------------------------------------------------------------------*/
-
-/*
- * Battery Charger Controller
- */
-
-#define TWL5031_INTERRUPTS_BCIISR1 0x0
-#define TWL5031_INTERRUPTS_BCIIMR1 0x1
-#define TWL5031_INTERRUPTS_BCIISR2 0x2
-#define TWL5031_INTERRUPTS_BCIIMR2 0x3
-#define TWL5031_INTERRUPTS_BCISIR 0x4
-#define TWL5031_INTERRUPTS_BCIEDR1 0x5
-#define TWL5031_INTERRUPTS_BCIEDR2 0x6
-#define TWL5031_INTERRUPTS_BCISIHCTRL 0x7
-
-/*----------------------------------------------------------------------*/
-
-/*
- * PM Master module register offsets (use TWL4030_MODULE_PM_MASTER)
- */
-
-#define TWL4030_PM_MASTER_CFG_P1_TRANSITION 0x00
-#define TWL4030_PM_MASTER_CFG_P2_TRANSITION 0x01
-#define TWL4030_PM_MASTER_CFG_P3_TRANSITION 0x02
-#define TWL4030_PM_MASTER_CFG_P123_TRANSITION 0x03
-#define TWL4030_PM_MASTER_STS_BOOT 0x04
-#define TWL4030_PM_MASTER_CFG_BOOT 0x05
-#define TWL4030_PM_MASTER_SHUNDAN 0x06
-#define TWL4030_PM_MASTER_BOOT_BCI 0x07
-#define TWL4030_PM_MASTER_CFG_PWRANA1 0x08
-#define TWL4030_PM_MASTER_CFG_PWRANA2 0x09
-#define TWL4030_PM_MASTER_BACKUP_MISC_STS 0x0b
-#define TWL4030_PM_MASTER_BACKUP_MISC_CFG 0x0c
-#define TWL4030_PM_MASTER_BACKUP_MISC_TST 0x0d
-#define TWL4030_PM_MASTER_PROTECT_KEY 0x0e
-#define TWL4030_PM_MASTER_STS_HW_CONDITIONS 0x0f
-#define TWL4030_PM_MASTER_P1_SW_EVENTS 0x10
-#define TWL4030_PM_MASTER_P2_SW_EVENTS 0x11
-#define TWL4030_PM_MASTER_P3_SW_EVENTS 0x12
-#define TWL4030_PM_MASTER_STS_P123_STATE 0x13
-#define TWL4030_PM_MASTER_PB_CFG 0x14
-#define TWL4030_PM_MASTER_PB_WORD_MSB 0x15
-#define TWL4030_PM_MASTER_PB_WORD_LSB 0x16
-#define TWL4030_PM_MASTER_SEQ_ADD_W2P 0x1c
-#define TWL4030_PM_MASTER_SEQ_ADD_P2A 0x1d
-#define TWL4030_PM_MASTER_SEQ_ADD_A2W 0x1e
-#define TWL4030_PM_MASTER_SEQ_ADD_A2S 0x1f
-#define TWL4030_PM_MASTER_SEQ_ADD_S2A12 0x20
-#define TWL4030_PM_MASTER_SEQ_ADD_S2A3 0x21
-#define TWL4030_PM_MASTER_SEQ_ADD_WARM 0x22
-#define TWL4030_PM_MASTER_MEMORY_ADDRESS 0x23
-#define TWL4030_PM_MASTER_MEMORY_DATA 0x24
-
-#define TWL4030_PM_MASTER_KEY_CFG1 0xc0
-#define TWL4030_PM_MASTER_KEY_CFG2 0x0c
-
-#define TWL4030_PM_MASTER_KEY_TST1 0xe0
-#define TWL4030_PM_MASTER_KEY_TST2 0x0e
-
-#define TWL4030_PM_MASTER_GLOBAL_TST 0xb6
-
-/*----------------------------------------------------------------------*/
-
-/* Power bus message definitions */
-
-/* The TWL4030/5030 splits its power-management resources (the various
- * regulators, clock and reset lines) into 3 processor groups - P1, P2 and
- * P3. These groups can then be configured to transition between sleep, wait-on
- * and active states by sending messages to the power bus. See Section 5.4.2
- * Power Resources of TWL4030 TRM
- */
-
-/* Processor groups */
-#define DEV_GRP_NULL 0x0
-#define DEV_GRP_P1 0x1 /* P1: all OMAP devices */
-#define DEV_GRP_P2 0x2 /* P2: all Modem devices */
-#define DEV_GRP_P3 0x4 /* P3: all peripheral devices */
-
-/* Resource groups */
-#define RES_GRP_RES 0x0 /* Reserved */
-#define RES_GRP_PP 0x1 /* Power providers */
-#define RES_GRP_RC 0x2 /* Reset and control */
-#define RES_GRP_PP_RC 0x3
-#define RES_GRP_PR 0x4 /* Power references */
-#define RES_GRP_PP_PR 0x5
-#define RES_GRP_RC_PR 0x6
-#define RES_GRP_ALL 0x7 /* All resource groups */
-
-#define RES_TYPE2_R0 0x0
-
-#define RES_TYPE_ALL 0x7
-
-/* Resource states */
-#define RES_STATE_WRST 0xF
-#define RES_STATE_ACTIVE 0xE
-#define RES_STATE_SLEEP 0x8
-#define RES_STATE_OFF 0x0
-
-/* Power resources */
-
-/* Power providers */
-#define RES_VAUX1 1
-#define RES_VAUX2 2
-#define RES_VAUX3 3
-#define RES_VAUX4 4
-#define RES_VMMC1 5
-#define RES_VMMC2 6
-#define RES_VPLL1 7
-#define RES_VPLL2 8
-#define RES_VSIM 9
-#define RES_VDAC 10
-#define RES_VINTANA1 11
-#define RES_VINTANA2 12
-#define RES_VINTDIG 13
-#define RES_VIO 14
-#define RES_VDD1 15
-#define RES_VDD2 16
-#define RES_VUSB_1V5 17
-#define RES_VUSB_1V8 18
-#define RES_VUSB_3V1 19
-#define RES_VUSBCP 20
-#define RES_REGEN 21
-/* Reset and control */
-#define RES_NRES_PWRON 22
-#define RES_CLKEN 23
-#define RES_SYSEN 24
-#define RES_HFCLKOUT 25
-#define RES_32KCLKOUT 26
-#define RES_RESET 27
-/* Power Reference */
-#define RES_MAIN_REF 28
-
-#define TOTAL_RESOURCES 28
-/*
- * Power Bus Message Format ... these can be sent individually by Linux,
- * but are usually part of downloaded scripts that are run when various
- * power events are triggered.
- *
- * Broadcast Message (16 Bits):
- * DEV_GRP[15:13] MT[12] RES_GRP[11:9] RES_TYPE2[8:7] RES_TYPE[6:4]
- * RES_STATE[3:0]
- *
- * Singular Message (16 Bits):
- * DEV_GRP[15:13] MT[12] RES_ID[11:4] RES_STATE[3:0]
- */
-
-#define MSG_BROADCAST(devgrp, grp, type, type2, state) \
- ( (devgrp) << 13 | 1 << 12 | (grp) << 9 | (type2) << 7 \
- | (type) << 4 | (state))
-
-#define MSG_SINGULAR(devgrp, id, state) \
- ((devgrp) << 13 | 0 << 12 | (id) << 4 | (state))
-
-#define MSG_BROADCAST_ALL(devgrp, state) \
- ((devgrp) << 5 | (state))
-
-#define MSG_BROADCAST_REF MSG_BROADCAST_ALL
-#define MSG_BROADCAST_PROV MSG_BROADCAST_ALL
-#define MSG_BROADCAST__CLK_RST MSG_BROADCAST_ALL
-/*----------------------------------------------------------------------*/
-
-struct twl4030_clock_init_data {
- bool ck32k_lowpwr_enable;
-};
-
-struct twl4030_bci_platform_data {
- int *battery_tmp_tbl;
- unsigned int tblsize;
-};
-
-/* TWL4030_GPIO_MAX (18) GPIOs, with interrupts */
-struct twl4030_gpio_platform_data {
- int gpio_base;
- unsigned irq_base, irq_end;
-
- /* package the two LED signals as output-only GPIOs? */
- bool use_leds;
-
- /* gpio-n should control VMMC(n+1) if BIT(n) in mmc_cd is set */
- u8 mmc_cd;
-
- /* if BIT(N) is set, or VMMC(n+1) is linked, debounce GPIO-N */
- u32 debounce;
-
- /* For gpio-N, bit (1 << N) in "pullups" is set if that pullup
- * should be enabled. Else, if that bit is set in "pulldowns",
- * that pulldown is enabled. Don't waste power by letting any
- * digital inputs float...
- */
- u32 pullups;
- u32 pulldowns;
-
- int (*setup)(struct device *dev,
- unsigned gpio, unsigned ngpio);
- int (*teardown)(struct device *dev,
- unsigned gpio, unsigned ngpio);
-};
-
-struct twl4030_madc_platform_data {
- int irq_line;
-};
-
-/* Boards have unique mappings of {row, col} --> keycode.
- * Column and row are 8 bits each, but range only from 0..7.
- * a PERSISTENT_KEY is "always on" and never reported.
- */
-#define PERSISTENT_KEY(r, c) KEY((r), (c), KEY_RESERVED)
-
-struct twl4030_keypad_data {
- const struct matrix_keymap_data *keymap_data;
- unsigned rows;
- unsigned cols;
- bool rep;
-};
-
-enum twl4030_usb_mode {
- T2_USB_MODE_ULPI = 1,
- T2_USB_MODE_CEA2011_3PIN = 2,
-};
-
-struct twl4030_usb_data {
- enum twl4030_usb_mode usb_mode;
- unsigned long features;
-
- int (*phy_init)(struct device *dev);
- int (*phy_exit)(struct device *dev);
- /* Power on/off the PHY */
- int (*phy_power)(struct device *dev, int iD, int on);
- /* enable/disable phy clocks */
- int (*phy_set_clock)(struct device *dev, int on);
- /* suspend/resume of phy */
- int (*phy_suspend)(struct device *dev, int suspend);
-};
-
-struct twl4030_ins {
- u16 pmb_message;
- u8 delay;
-};
-
-struct twl4030_script {
- struct twl4030_ins *script;
- unsigned size;
- u8 flags;
-#define TWL4030_WRST_SCRIPT (1<<0)
-#define TWL4030_WAKEUP12_SCRIPT (1<<1)
-#define TWL4030_WAKEUP3_SCRIPT (1<<2)
-#define TWL4030_SLEEP_SCRIPT (1<<3)
-};
-
-struct twl4030_resconfig {
- u8 resource;
- u8 devgroup; /* Processor group that Power resource belongs to */
- u8 type; /* Power resource addressed, 6 / broadcast message */
- u8 type2; /* Power resource addressed, 3 / broadcast message */
- u8 remap_off; /* off state remapping */
- u8 remap_sleep; /* sleep state remapping */
-};
-
-struct twl4030_power_data {
- struct twl4030_script **scripts;
- unsigned num;
- struct twl4030_resconfig *resource_config;
-#define TWL4030_RESCONFIG_UNDEF ((u8)-1)
- bool use_poweroff; /* Board is wired for TWL poweroff */
-};
-
-extern void twl4030_power_init(struct twl4030_power_data *triton2_scripts);
-extern int twl4030_remove_script(u8 flags);
-extern void twl4030_power_off(void);
-
-struct twl4030_codec_data {
- unsigned int digimic_delay; /* in ms */
- unsigned int ramp_delay_value;
- unsigned int offset_cncl_path;
- unsigned int check_defaults:1;
- unsigned int reset_registers:1;
- unsigned int hs_extmute:1;
- void (*set_hs_extmute)(int mute);
-};
-
-struct twl4030_vibra_data {
- unsigned int coexist;
-};
-
-struct twl4030_audio_data {
- unsigned int audio_mclk;
- struct twl4030_codec_data *codec;
- struct twl4030_vibra_data *vibra;
-
- /* twl6040 */
- int audpwron_gpio; /* audio power-on gpio */
- int naudint_irq; /* audio interrupt */
- unsigned int irq_base;
-};
-
-struct twl4030_platform_data {
- unsigned irq_base, irq_end;
- struct twl4030_clock_init_data *clock;
- struct twl4030_bci_platform_data *bci;
- struct twl4030_gpio_platform_data *gpio;
- struct twl4030_madc_platform_data *madc;
- struct twl4030_keypad_data *keypad;
- struct twl4030_usb_data *usb;
- struct twl4030_power_data *power;
- struct twl4030_audio_data *audio;
-
- /* Common LDO regulators for TWL4030/TWL6030 */
- struct regulator_init_data *vdac;
- struct regulator_init_data *vaux1;
- struct regulator_init_data *vaux2;
- struct regulator_init_data *vaux3;
- struct regulator_init_data *vdd1;
- struct regulator_init_data *vdd2;
- struct regulator_init_data *vdd3;
- /* TWL4030 LDO regulators */
- struct regulator_init_data *vpll1;
- struct regulator_init_data *vpll2;
- struct regulator_init_data *vmmc1;
- struct regulator_init_data *vmmc2;
- struct regulator_init_data *vsim;
- struct regulator_init_data *vaux4;
- struct regulator_init_data *vio;
- struct regulator_init_data *vintana1;
- struct regulator_init_data *vintana2;
- struct regulator_init_data *vintdig;
- /* TWL6030 LDO regulators */
- struct regulator_init_data *vmmc;
- struct regulator_init_data *vpp;
- struct regulator_init_data *vusim;
- struct regulator_init_data *vana;
- struct regulator_init_data *vcxio;
- struct regulator_init_data *vusb;
- struct regulator_init_data *clk32kg;
- struct regulator_init_data *v1v8;
- struct regulator_init_data *v2v1;
- /* TWL6025 LDO regulators */
- struct regulator_init_data *ldo1;
- struct regulator_init_data *ldo2;
- struct regulator_init_data *ldo3;
- struct regulator_init_data *ldo4;
- struct regulator_init_data *ldo5;
- struct regulator_init_data *ldo6;
- struct regulator_init_data *ldo7;
- struct regulator_init_data *ldoln;
- struct regulator_init_data *ldousb;
- /* TWL6025 DCDC regulators */
- struct regulator_init_data *smps3;
- struct regulator_init_data *smps4;
- struct regulator_init_data *vio6025;
-};
-
-struct twl_regulator_driver_data {
- int (*set_voltage)(void *data, int target_uV);
- int (*get_voltage)(void *data);
- void *data;
- unsigned long features;
-};
-
-/*----------------------------------------------------------------------*/
-
-int twl4030_sih_setup(struct device *dev, int module, int irq_base);
-
-/* Offsets to Power Registers */
-#define TWL4030_VDAC_DEV_GRP 0x3B
-#define TWL4030_VDAC_DEDICATED 0x3E
-#define TWL4030_VAUX1_DEV_GRP 0x17
-#define TWL4030_VAUX1_DEDICATED 0x1A
-#define TWL4030_VAUX2_DEV_GRP 0x1B
-#define TWL4030_VAUX2_DEDICATED 0x1E
-#define TWL4030_VAUX3_DEV_GRP 0x1F
-#define TWL4030_VAUX3_DEDICATED 0x22
-
-static inline int twl4030charger_usb_en(int enable) { return 0; }
-
-/*----------------------------------------------------------------------*/
-
-/* Linux-specific regulator identifiers ... for now, we only support
- * the LDOs, and leave the three buck converters alone. VDD1 and VDD2
- * need to tie into hardware based voltage scaling (cpufreq etc), while
- * VIO is generally fixed.
- */
-
-/* TWL4030 SMPS/LDO's */
-/* EXTERNAL dc-to-dc buck converters */
-#define TWL4030_REG_VDD1 0
-#define TWL4030_REG_VDD2 1
-#define TWL4030_REG_VIO 2
-
-/* EXTERNAL LDOs */
-#define TWL4030_REG_VDAC 3
-#define TWL4030_REG_VPLL1 4
-#define TWL4030_REG_VPLL2 5 /* not on all chips */
-#define TWL4030_REG_VMMC1 6
-#define TWL4030_REG_VMMC2 7 /* not on all chips */
-#define TWL4030_REG_VSIM 8 /* not on all chips */
-#define TWL4030_REG_VAUX1 9 /* not on all chips */
-#define TWL4030_REG_VAUX2_4030 10 /* (twl4030-specific) */
-#define TWL4030_REG_VAUX2 11 /* (twl5030 and newer) */
-#define TWL4030_REG_VAUX3 12 /* not on all chips */
-#define TWL4030_REG_VAUX4 13 /* not on all chips */
-
-/* INTERNAL LDOs */
-#define TWL4030_REG_VINTANA1 14
-#define TWL4030_REG_VINTANA2 15
-#define TWL4030_REG_VINTDIG 16
-#define TWL4030_REG_VUSB1V5 17
-#define TWL4030_REG_VUSB1V8 18
-#define TWL4030_REG_VUSB3V1 19
-
-/* TWL6030 SMPS/LDO's */
-/* EXTERNAL dc-to-dc buck convertor controllable via SR */
-#define TWL6030_REG_VDD1 30
-#define TWL6030_REG_VDD2 31
-#define TWL6030_REG_VDD3 32
-
-/* Non SR compliant dc-to-dc buck convertors */
-#define TWL6030_REG_VMEM 33
-#define TWL6030_REG_V2V1 34
-#define TWL6030_REG_V1V29 35
-#define TWL6030_REG_V1V8 36
-
-/* EXTERNAL LDOs */
-#define TWL6030_REG_VAUX1_6030 37
-#define TWL6030_REG_VAUX2_6030 38
-#define TWL6030_REG_VAUX3_6030 39
-#define TWL6030_REG_VMMC 40
-#define TWL6030_REG_VPP 41
-#define TWL6030_REG_VUSIM 42
-#define TWL6030_REG_VANA 43
-#define TWL6030_REG_VCXIO 44
-#define TWL6030_REG_VDAC 45
-#define TWL6030_REG_VUSB 46
-
-/* INTERNAL LDOs */
-#define TWL6030_REG_VRTC 47
-#define TWL6030_REG_CLK32KG 48
-
-/* LDOs on 6025 have different names */
-#define TWL6025_REG_LDO2 49
-#define TWL6025_REG_LDO4 50
-#define TWL6025_REG_LDO3 51
-#define TWL6025_REG_LDO5 52
-#define TWL6025_REG_LDO1 53
-#define TWL6025_REG_LDO7 54
-#define TWL6025_REG_LDO6 55
-#define TWL6025_REG_LDOLN 56
-#define TWL6025_REG_LDOUSB 57
-
-/* 6025 DCDC supplies */
-#define TWL6025_REG_SMPS3 58
-#define TWL6025_REG_SMPS4 59
-#define TWL6025_REG_VIO 60
-
-
-#endif /* End of __TWL4030_H */
diff --git a/ANDROID_3.4.5/include/linux/i2c/twl4030-madc.h b/ANDROID_3.4.5/include/linux/i2c/twl4030-madc.h
deleted file mode 100644
index 530e11ba..00000000
--- a/ANDROID_3.4.5/include/linux/i2c/twl4030-madc.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * twl4030_madc.h - Header for TWL4030 MADC
- *
- * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
- * J Keerthy <j-keerthy@ti.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.
- *
- * 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 _TWL4030_MADC_H
-#define _TWL4030_MADC_H
-
-struct twl4030_madc_conversion_method {
- u8 sel;
- u8 avg;
- u8 rbase;
- u8 ctrl;
-};
-
-#define TWL4030_MADC_MAX_CHANNELS 16
-
-
-/*
- * twl4030_madc_request- madc request packet for channel conversion
- * @channels: 16 bit bitmap for individual channels
- * @do_avgP: sample the input channel for 4 consecutive cycles
- * @method: RT, SW1, SW2
- * @type: Polling or interrupt based method
- */
-
-struct twl4030_madc_request {
- unsigned long channels;
- u16 do_avg;
- u16 method;
- u16 type;
- bool active;
- bool result_pending;
- int rbuf[TWL4030_MADC_MAX_CHANNELS];
- void (*func_cb)(int len, int channels, int *buf);
-};
-
-enum conversion_methods {
- TWL4030_MADC_RT,
- TWL4030_MADC_SW1,
- TWL4030_MADC_SW2,
- TWL4030_MADC_NUM_METHODS
-};
-
-enum sample_type {
- TWL4030_MADC_WAIT,
- TWL4030_MADC_IRQ_ONESHOT,
- TWL4030_MADC_IRQ_REARM
-};
-
-#define TWL4030_MADC_CTRL1 0x00
-#define TWL4030_MADC_CTRL2 0x01
-
-#define TWL4030_MADC_RTSELECT_LSB 0x02
-#define TWL4030_MADC_SW1SELECT_LSB 0x06
-#define TWL4030_MADC_SW2SELECT_LSB 0x0A
-
-#define TWL4030_MADC_RTAVERAGE_LSB 0x04
-#define TWL4030_MADC_SW1AVERAGE_LSB 0x08
-#define TWL4030_MADC_SW2AVERAGE_LSB 0x0C
-
-#define TWL4030_MADC_CTRL_SW1 0x12
-#define TWL4030_MADC_CTRL_SW2 0x13
-
-#define TWL4030_MADC_RTCH0_LSB 0x17
-#define TWL4030_MADC_GPCH0_LSB 0x37
-
-#define TWL4030_MADC_MADCON (1 << 0) /* MADC power on */
-#define TWL4030_MADC_BUSY (1 << 0) /* MADC busy */
-/* MADC conversion completion */
-#define TWL4030_MADC_EOC_SW (1 << 1)
-/* MADC SWx start conversion */
-#define TWL4030_MADC_SW_START (1 << 5)
-#define TWL4030_MADC_ADCIN0 (1 << 0)
-#define TWL4030_MADC_ADCIN1 (1 << 1)
-#define TWL4030_MADC_ADCIN2 (1 << 2)
-#define TWL4030_MADC_ADCIN3 (1 << 3)
-#define TWL4030_MADC_ADCIN4 (1 << 4)
-#define TWL4030_MADC_ADCIN5 (1 << 5)
-#define TWL4030_MADC_ADCIN6 (1 << 6)
-#define TWL4030_MADC_ADCIN7 (1 << 7)
-#define TWL4030_MADC_ADCIN8 (1 << 8)
-#define TWL4030_MADC_ADCIN9 (1 << 9)
-#define TWL4030_MADC_ADCIN10 (1 << 10)
-#define TWL4030_MADC_ADCIN11 (1 << 11)
-#define TWL4030_MADC_ADCIN12 (1 << 12)
-#define TWL4030_MADC_ADCIN13 (1 << 13)
-#define TWL4030_MADC_ADCIN14 (1 << 14)
-#define TWL4030_MADC_ADCIN15 (1 << 15)
-
-/* Fixed channels */
-#define TWL4030_MADC_BTEMP TWL4030_MADC_ADCIN1
-#define TWL4030_MADC_VBUS TWL4030_MADC_ADCIN8
-#define TWL4030_MADC_VBKB TWL4030_MADC_ADCIN9
-#define TWL4030_MADC_ICHG TWL4030_MADC_ADCIN10
-#define TWL4030_MADC_VCHG TWL4030_MADC_ADCIN11
-#define TWL4030_MADC_VBAT TWL4030_MADC_ADCIN12
-
-/* Step size and prescaler ratio */
-#define TEMP_STEP_SIZE 147
-#define TEMP_PSR_R 100
-#define CURR_STEP_SIZE 147
-#define CURR_PSR_R1 44
-#define CURR_PSR_R2 88
-
-#define TWL4030_BCI_BCICTL1 0x23
-#define TWL4030_BCI_CGAIN 0x020
-#define TWL4030_BCI_MESBAT (1 << 1)
-#define TWL4030_BCI_TYPEN (1 << 4)
-#define TWL4030_BCI_ITHEN (1 << 3)
-
-#define REG_BCICTL2 0x024
-#define TWL4030_BCI_ITHSENS 0x007
-
-/* Register and bits for GPBR1 register */
-#define TWL4030_REG_GPBR1 0x0c
-#define TWL4030_GPBR1_MADC_HFCLK_EN (1 << 7)
-
-struct twl4030_madc_user_parms {
- int channel;
- int average;
- int status;
- u16 result;
-};
-
-int twl4030_madc_conversion(struct twl4030_madc_request *conv);
-int twl4030_get_madc_conversion(int channel_no);
-#endif
diff --git a/ANDROID_3.4.5/include/linux/i2o-dev.h b/ANDROID_3.4.5/include/linux/i2o-dev.h
deleted file mode 100644
index a0b23dd4..00000000
--- a/ANDROID_3.4.5/include/linux/i2o-dev.h
+++ /dev/null
@@ -1,421 +0,0 @@
-/*
- * I2O user space accessible structures/APIs
- *
- * (c) Copyright 1999, 2000 Red Hat Software
- *
- * 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 header file defines the I2O APIs that are available to both
- * the kernel and user level applications. Kernel specific structures
- * are defined in i2o_osm. OSMs should include _only_ i2o_osm.h which
- * automatically includes this file.
- *
- */
-
-#ifndef _I2O_DEV_H
-#define _I2O_DEV_H
-
-/* How many controllers are we allowing */
-#define MAX_I2O_CONTROLLERS 32
-
-#include <linux/ioctl.h>
-#include <linux/types.h>
-
-/*
- * I2O Control IOCTLs and structures
- */
-#define I2O_MAGIC_NUMBER 'i'
-#define I2OGETIOPS _IOR(I2O_MAGIC_NUMBER,0,__u8[MAX_I2O_CONTROLLERS])
-#define I2OHRTGET _IOWR(I2O_MAGIC_NUMBER,1,struct i2o_cmd_hrtlct)
-#define I2OLCTGET _IOWR(I2O_MAGIC_NUMBER,2,struct i2o_cmd_hrtlct)
-#define I2OPARMSET _IOWR(I2O_MAGIC_NUMBER,3,struct i2o_cmd_psetget)
-#define I2OPARMGET _IOWR(I2O_MAGIC_NUMBER,4,struct i2o_cmd_psetget)
-#define I2OSWDL _IOWR(I2O_MAGIC_NUMBER,5,struct i2o_sw_xfer)
-#define I2OSWUL _IOWR(I2O_MAGIC_NUMBER,6,struct i2o_sw_xfer)
-#define I2OSWDEL _IOWR(I2O_MAGIC_NUMBER,7,struct i2o_sw_xfer)
-#define I2OVALIDATE _IOR(I2O_MAGIC_NUMBER,8,__u32)
-#define I2OHTML _IOWR(I2O_MAGIC_NUMBER,9,struct i2o_html)
-#define I2OEVTREG _IOW(I2O_MAGIC_NUMBER,10,struct i2o_evt_id)
-#define I2OEVTGET _IOR(I2O_MAGIC_NUMBER,11,struct i2o_evt_info)
-#define I2OPASSTHRU _IOR(I2O_MAGIC_NUMBER,12,struct i2o_cmd_passthru)
-#define I2OPASSTHRU32 _IOR(I2O_MAGIC_NUMBER,12,struct i2o_cmd_passthru32)
-
-struct i2o_cmd_passthru32 {
- unsigned int iop; /* IOP unit number */
- __u32 msg; /* message */
-};
-
-struct i2o_cmd_passthru {
- unsigned int iop; /* IOP unit number */
- void __user *msg; /* message */
-};
-
-struct i2o_cmd_hrtlct {
- unsigned int iop; /* IOP unit number */
- void __user *resbuf; /* Buffer for result */
- unsigned int __user *reslen; /* Buffer length in bytes */
-};
-
-struct i2o_cmd_psetget {
- unsigned int iop; /* IOP unit number */
- unsigned int tid; /* Target device TID */
- void __user *opbuf; /* Operation List buffer */
- unsigned int oplen; /* Operation List buffer length in bytes */
- void __user *resbuf; /* Result List buffer */
- unsigned int __user *reslen; /* Result List buffer length in bytes */
-};
-
-struct i2o_sw_xfer {
- unsigned int iop; /* IOP unit number */
- unsigned char flags; /* Flags field */
- unsigned char sw_type; /* Software type */
- unsigned int sw_id; /* Software ID */
- void __user *buf; /* Pointer to software buffer */
- unsigned int __user *swlen; /* Length of software data */
- unsigned int __user *maxfrag; /* Maximum fragment count */
- unsigned int __user *curfrag; /* Current fragment count */
-};
-
-struct i2o_html {
- unsigned int iop; /* IOP unit number */
- unsigned int tid; /* Target device ID */
- unsigned int page; /* HTML page */
- void __user *resbuf; /* Buffer for reply HTML page */
- unsigned int __user *reslen; /* Length in bytes of reply buffer */
- void __user *qbuf; /* Pointer to HTTP query string */
- unsigned int qlen; /* Length in bytes of query string buffer */
-};
-
-#define I2O_EVT_Q_LEN 32
-
-struct i2o_evt_id {
- unsigned int iop;
- unsigned int tid;
- unsigned int evt_mask;
-};
-
-/* Event data size = frame size - message header + evt indicator */
-#define I2O_EVT_DATA_SIZE 88
-
-struct i2o_evt_info {
- struct i2o_evt_id id;
- unsigned char evt_data[I2O_EVT_DATA_SIZE];
- unsigned int data_size;
-};
-
-struct i2o_evt_get {
- struct i2o_evt_info info;
- int pending;
- int lost;
-};
-
-typedef struct i2o_sg_io_hdr {
- unsigned int flags; /* see I2O_DPT_SG_IO_FLAGS */
-} i2o_sg_io_hdr_t;
-
-/**************************************************************************
- * HRT related constants and structures
- **************************************************************************/
-#define I2O_BUS_LOCAL 0
-#define I2O_BUS_ISA 1
-#define I2O_BUS_EISA 2
-#define I2O_BUS_MCA 3
-#define I2O_BUS_PCI 4
-#define I2O_BUS_PCMCIA 5
-#define I2O_BUS_NUBUS 6
-#define I2O_BUS_CARDBUS 7
-#define I2O_BUS_UNKNOWN 0x80
-
-typedef struct _i2o_pci_bus {
- __u8 PciFunctionNumber;
- __u8 PciDeviceNumber;
- __u8 PciBusNumber;
- __u8 reserved;
- __u16 PciVendorID;
- __u16 PciDeviceID;
-} i2o_pci_bus;
-
-typedef struct _i2o_local_bus {
- __u16 LbBaseIOPort;
- __u16 reserved;
- __u32 LbBaseMemoryAddress;
-} i2o_local_bus;
-
-typedef struct _i2o_isa_bus {
- __u16 IsaBaseIOPort;
- __u8 CSN;
- __u8 reserved;
- __u32 IsaBaseMemoryAddress;
-} i2o_isa_bus;
-
-typedef struct _i2o_eisa_bus_info {
- __u16 EisaBaseIOPort;
- __u8 reserved;
- __u8 EisaSlotNumber;
- __u32 EisaBaseMemoryAddress;
-} i2o_eisa_bus;
-
-typedef struct _i2o_mca_bus {
- __u16 McaBaseIOPort;
- __u8 reserved;
- __u8 McaSlotNumber;
- __u32 McaBaseMemoryAddress;
-} i2o_mca_bus;
-
-typedef struct _i2o_other_bus {
- __u16 BaseIOPort;
- __u16 reserved;
- __u32 BaseMemoryAddress;
-} i2o_other_bus;
-
-typedef struct _i2o_hrt_entry {
- __u32 adapter_id;
- __u32 parent_tid:12;
- __u32 state:4;
- __u32 bus_num:8;
- __u32 bus_type:8;
- union {
- i2o_pci_bus pci_bus;
- i2o_local_bus local_bus;
- i2o_isa_bus isa_bus;
- i2o_eisa_bus eisa_bus;
- i2o_mca_bus mca_bus;
- i2o_other_bus other_bus;
- } bus;
-} i2o_hrt_entry;
-
-typedef struct _i2o_hrt {
- __u16 num_entries;
- __u8 entry_len;
- __u8 hrt_version;
- __u32 change_ind;
- i2o_hrt_entry hrt_entry[1];
-} i2o_hrt;
-
-typedef struct _i2o_lct_entry {
- __u32 entry_size:16;
- __u32 tid:12;
- __u32 reserved:4;
- __u32 change_ind;
- __u32 device_flags;
- __u32 class_id:12;
- __u32 version:4;
- __u32 vendor_id:16;
- __u32 sub_class;
- __u32 user_tid:12;
- __u32 parent_tid:12;
- __u32 bios_info:8;
- __u8 identity_tag[8];
- __u32 event_capabilities;
-} i2o_lct_entry;
-
-typedef struct _i2o_lct {
- __u32 table_size:16;
- __u32 boot_tid:12;
- __u32 lct_ver:4;
- __u32 iop_flags;
- __u32 change_ind;
- i2o_lct_entry lct_entry[1];
-} i2o_lct;
-
-typedef struct _i2o_status_block {
- __u16 org_id;
- __u16 reserved;
- __u16 iop_id:12;
- __u16 reserved1:4;
- __u16 host_unit_id;
- __u16 segment_number:12;
- __u16 i2o_version:4;
- __u8 iop_state;
- __u8 msg_type;
- __u16 inbound_frame_size;
- __u8 init_code;
- __u8 reserved2;
- __u32 max_inbound_frames;
- __u32 cur_inbound_frames;
- __u32 max_outbound_frames;
- char product_id[24];
- __u32 expected_lct_size;
- __u32 iop_capabilities;
- __u32 desired_mem_size;
- __u32 current_mem_size;
- __u32 current_mem_base;
- __u32 desired_io_size;
- __u32 current_io_size;
- __u32 current_io_base;
- __u32 reserved3:24;
- __u32 cmd_status:8;
-} i2o_status_block;
-
-/* Event indicator mask flags */
-#define I2O_EVT_IND_STATE_CHANGE 0x80000000
-#define I2O_EVT_IND_GENERAL_WARNING 0x40000000
-#define I2O_EVT_IND_CONFIGURATION_FLAG 0x20000000
-#define I2O_EVT_IND_LOCK_RELEASE 0x10000000
-#define I2O_EVT_IND_CAPABILITY_CHANGE 0x08000000
-#define I2O_EVT_IND_DEVICE_RESET 0x04000000
-#define I2O_EVT_IND_EVT_MASK_MODIFIED 0x02000000
-#define I2O_EVT_IND_FIELD_MODIFIED 0x01000000
-#define I2O_EVT_IND_VENDOR_EVT 0x00800000
-#define I2O_EVT_IND_DEVICE_STATE 0x00400000
-
-/* Executive event indicitors */
-#define I2O_EVT_IND_EXEC_RESOURCE_LIMITS 0x00000001
-#define I2O_EVT_IND_EXEC_CONNECTION_FAIL 0x00000002
-#define I2O_EVT_IND_EXEC_ADAPTER_FAULT 0x00000004
-#define I2O_EVT_IND_EXEC_POWER_FAIL 0x00000008
-#define I2O_EVT_IND_EXEC_RESET_PENDING 0x00000010
-#define I2O_EVT_IND_EXEC_RESET_IMMINENT 0x00000020
-#define I2O_EVT_IND_EXEC_HW_FAIL 0x00000040
-#define I2O_EVT_IND_EXEC_XCT_CHANGE 0x00000080
-#define I2O_EVT_IND_EXEC_NEW_LCT_ENTRY 0x00000100
-#define I2O_EVT_IND_EXEC_MODIFIED_LCT 0x00000200
-#define I2O_EVT_IND_EXEC_DDM_AVAILABILITY 0x00000400
-
-/* Random Block Storage Event Indicators */
-#define I2O_EVT_IND_BSA_VOLUME_LOAD 0x00000001
-#define I2O_EVT_IND_BSA_VOLUME_UNLOAD 0x00000002
-#define I2O_EVT_IND_BSA_VOLUME_UNLOAD_REQ 0x00000004
-#define I2O_EVT_IND_BSA_CAPACITY_CHANGE 0x00000008
-#define I2O_EVT_IND_BSA_SCSI_SMART 0x00000010
-
-/* Event data for generic events */
-#define I2O_EVT_STATE_CHANGE_NORMAL 0x00
-#define I2O_EVT_STATE_CHANGE_SUSPENDED 0x01
-#define I2O_EVT_STATE_CHANGE_RESTART 0x02
-#define I2O_EVT_STATE_CHANGE_NA_RECOVER 0x03
-#define I2O_EVT_STATE_CHANGE_NA_NO_RECOVER 0x04
-#define I2O_EVT_STATE_CHANGE_QUIESCE_REQUEST 0x05
-#define I2O_EVT_STATE_CHANGE_FAILED 0x10
-#define I2O_EVT_STATE_CHANGE_FAULTED 0x11
-
-#define I2O_EVT_GEN_WARNING_NORMAL 0x00
-#define I2O_EVT_GEN_WARNING_ERROR_THRESHOLD 0x01
-#define I2O_EVT_GEN_WARNING_MEDIA_FAULT 0x02
-
-#define I2O_EVT_CAPABILITY_OTHER 0x01
-#define I2O_EVT_CAPABILITY_CHANGED 0x02
-
-#define I2O_EVT_SENSOR_STATE_CHANGED 0x01
-
-/*
- * I2O classes / subclasses
- */
-
-/* Class ID and Code Assignments
- * (LCT.ClassID.Version field)
- */
-#define I2O_CLASS_VERSION_10 0x00
-#define I2O_CLASS_VERSION_11 0x01
-
-/* Class code names
- * (from v1.5 Table 6-1 Class Code Assignments.)
- */
-
-#define I2O_CLASS_EXECUTIVE 0x000
-#define I2O_CLASS_DDM 0x001
-#define I2O_CLASS_RANDOM_BLOCK_STORAGE 0x010
-#define I2O_CLASS_SEQUENTIAL_STORAGE 0x011
-#define I2O_CLASS_LAN 0x020
-#define I2O_CLASS_WAN 0x030
-#define I2O_CLASS_FIBRE_CHANNEL_PORT 0x040
-#define I2O_CLASS_FIBRE_CHANNEL_PERIPHERAL 0x041
-#define I2O_CLASS_SCSI_PERIPHERAL 0x051
-#define I2O_CLASS_ATE_PORT 0x060
-#define I2O_CLASS_ATE_PERIPHERAL 0x061
-#define I2O_CLASS_FLOPPY_CONTROLLER 0x070
-#define I2O_CLASS_FLOPPY_DEVICE 0x071
-#define I2O_CLASS_BUS_ADAPTER 0x080
-#define I2O_CLASS_PEER_TRANSPORT_AGENT 0x090
-#define I2O_CLASS_PEER_TRANSPORT 0x091
-#define I2O_CLASS_END 0xfff
-
-/*
- * Rest of 0x092 - 0x09f reserved for peer-to-peer classes
- */
-
-#define I2O_CLASS_MATCH_ANYCLASS 0xffffffff
-
-/*
- * Subclasses
- */
-
-#define I2O_SUBCLASS_i960 0x001
-#define I2O_SUBCLASS_HDM 0x020
-#define I2O_SUBCLASS_ISM 0x021
-
-/* Operation functions */
-
-#define I2O_PARAMS_FIELD_GET 0x0001
-#define I2O_PARAMS_LIST_GET 0x0002
-#define I2O_PARAMS_MORE_GET 0x0003
-#define I2O_PARAMS_SIZE_GET 0x0004
-#define I2O_PARAMS_TABLE_GET 0x0005
-#define I2O_PARAMS_FIELD_SET 0x0006
-#define I2O_PARAMS_LIST_SET 0x0007
-#define I2O_PARAMS_ROW_ADD 0x0008
-#define I2O_PARAMS_ROW_DELETE 0x0009
-#define I2O_PARAMS_TABLE_CLEAR 0x000A
-
-/*
- * I2O serial number conventions / formats
- * (circa v1.5)
- */
-
-#define I2O_SNFORMAT_UNKNOWN 0
-#define I2O_SNFORMAT_BINARY 1
-#define I2O_SNFORMAT_ASCII 2
-#define I2O_SNFORMAT_UNICODE 3
-#define I2O_SNFORMAT_LAN48_MAC 4
-#define I2O_SNFORMAT_WAN 5
-
-/*
- * Plus new in v2.0 (Yellowstone pdf doc)
- */
-
-#define I2O_SNFORMAT_LAN64_MAC 6
-#define I2O_SNFORMAT_DDM 7
-#define I2O_SNFORMAT_IEEE_REG64 8
-#define I2O_SNFORMAT_IEEE_REG128 9
-#define I2O_SNFORMAT_UNKNOWN2 0xff
-
-/*
- * I2O Get Status State values
- */
-
-#define ADAPTER_STATE_INITIALIZING 0x01
-#define ADAPTER_STATE_RESET 0x02
-#define ADAPTER_STATE_HOLD 0x04
-#define ADAPTER_STATE_READY 0x05
-#define ADAPTER_STATE_OPERATIONAL 0x08
-#define ADAPTER_STATE_FAILED 0x10
-#define ADAPTER_STATE_FAULTED 0x11
-
-/*
- * Software module types
- */
-#define I2O_SOFTWARE_MODULE_IRTOS 0x11
-#define I2O_SOFTWARE_MODULE_IOP_PRIVATE 0x22
-#define I2O_SOFTWARE_MODULE_IOP_CONFIG 0x23
-
-/*
- * Vendors
- */
-#define I2O_VENDOR_DPT 0x001b
-
-/*
- * DPT / Adaptec specific values for i2o_sg_io_hdr flags.
- */
-#define I2O_DPT_SG_FLAG_INTERPRET 0x00010000
-#define I2O_DPT_SG_FLAG_PHYSICAL 0x00020000
-
-#define I2O_DPT_FLASH_FRAG_SIZE 0x10000
-#define I2O_DPT_FLASH_READ 0x0101
-#define I2O_DPT_FLASH_WRITE 0x0102
-
-#endif /* _I2O_DEV_H */
diff --git a/ANDROID_3.4.5/include/linux/i2o.h b/ANDROID_3.4.5/include/linux/i2o.h
deleted file mode 100644
index d23c3c20..00000000
--- a/ANDROID_3.4.5/include/linux/i2o.h
+++ /dev/null
@@ -1,988 +0,0 @@
-/*
- * I2O kernel space accessible structures/APIs
- *
- * (c) Copyright 1999, 2000 Red Hat Software
- *
- * 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 header file defined the I2O APIs/structures for use by
- * the I2O kernel modules.
- *
- */
-
-#ifndef _I2O_H
-#define _I2O_H
-
-#include <linux/i2o-dev.h>
-
-/* How many different OSM's are we allowing */
-#define I2O_MAX_DRIVERS 8
-
-#include <linux/pci.h>
-#include <linux/bug.h>
-#include <linux/dma-mapping.h>
-#include <linux/string.h>
-#include <linux/slab.h>
-#include <linux/workqueue.h> /* work_struct */
-#include <linux/mempool.h>
-#include <linux/mutex.h>
-#include <linux/scatterlist.h>
-#include <linux/semaphore.h> /* Needed for MUTEX init macros */
-
-#include <asm/io.h>
-
-/* message queue empty */
-#define I2O_QUEUE_EMPTY 0xffffffff
-
-/*
- * Cache strategies
- */
-
-/* The NULL strategy leaves everything up to the controller. This tends to be a
- * pessimal but functional choice.
- */
-#define CACHE_NULL 0
-/* Prefetch data when reading. We continually attempt to load the next 32 sectors
- * into the controller cache.
- */
-#define CACHE_PREFETCH 1
-/* Prefetch data when reading. We sometimes attempt to load the next 32 sectors
- * into the controller cache. When an I/O is less <= 8K we assume its probably
- * not sequential and don't prefetch (default)
- */
-#define CACHE_SMARTFETCH 2
-/* Data is written to the cache and then out on to the disk. The I/O must be
- * physically on the medium before the write is acknowledged (default without
- * NVRAM)
- */
-#define CACHE_WRITETHROUGH 17
-/* Data is written to the cache and then out on to the disk. The controller
- * is permitted to write back the cache any way it wants. (default if battery
- * backed NVRAM is present). It can be useful to set this for swap regardless of
- * battery state.
- */
-#define CACHE_WRITEBACK 18
-/* Optimise for under powered controllers, especially on RAID1 and RAID0. We
- * write large I/O's directly to disk bypassing the cache to avoid the extra
- * memory copy hits. Small writes are writeback cached
- */
-#define CACHE_SMARTBACK 19
-/* Optimise for under powered controllers, especially on RAID1 and RAID0. We
- * write large I/O's directly to disk bypassing the cache to avoid the extra
- * memory copy hits. Small writes are writethrough cached. Suitable for devices
- * lacking battery backup
- */
-#define CACHE_SMARTTHROUGH 20
-
-/*
- * Ioctl structures
- */
-
-#define BLKI2OGRSTRAT _IOR('2', 1, int)
-#define BLKI2OGWSTRAT _IOR('2', 2, int)
-#define BLKI2OSRSTRAT _IOW('2', 3, int)
-#define BLKI2OSWSTRAT _IOW('2', 4, int)
-
-/*
- * I2O Function codes
- */
-
-/*
- * Executive Class
- */
-#define I2O_CMD_ADAPTER_ASSIGN 0xB3
-#define I2O_CMD_ADAPTER_READ 0xB2
-#define I2O_CMD_ADAPTER_RELEASE 0xB5
-#define I2O_CMD_BIOS_INFO_SET 0xA5
-#define I2O_CMD_BOOT_DEVICE_SET 0xA7
-#define I2O_CMD_CONFIG_VALIDATE 0xBB
-#define I2O_CMD_CONN_SETUP 0xCA
-#define I2O_CMD_DDM_DESTROY 0xB1
-#define I2O_CMD_DDM_ENABLE 0xD5
-#define I2O_CMD_DDM_QUIESCE 0xC7
-#define I2O_CMD_DDM_RESET 0xD9
-#define I2O_CMD_DDM_SUSPEND 0xAF
-#define I2O_CMD_DEVICE_ASSIGN 0xB7
-#define I2O_CMD_DEVICE_RELEASE 0xB9
-#define I2O_CMD_HRT_GET 0xA8
-#define I2O_CMD_ADAPTER_CLEAR 0xBE
-#define I2O_CMD_ADAPTER_CONNECT 0xC9
-#define I2O_CMD_ADAPTER_RESET 0xBD
-#define I2O_CMD_LCT_NOTIFY 0xA2
-#define I2O_CMD_OUTBOUND_INIT 0xA1
-#define I2O_CMD_PATH_ENABLE 0xD3
-#define I2O_CMD_PATH_QUIESCE 0xC5
-#define I2O_CMD_PATH_RESET 0xD7
-#define I2O_CMD_STATIC_MF_CREATE 0xDD
-#define I2O_CMD_STATIC_MF_RELEASE 0xDF
-#define I2O_CMD_STATUS_GET 0xA0
-#define I2O_CMD_SW_DOWNLOAD 0xA9
-#define I2O_CMD_SW_UPLOAD 0xAB
-#define I2O_CMD_SW_REMOVE 0xAD
-#define I2O_CMD_SYS_ENABLE 0xD1
-#define I2O_CMD_SYS_MODIFY 0xC1
-#define I2O_CMD_SYS_QUIESCE 0xC3
-#define I2O_CMD_SYS_TAB_SET 0xA3
-
-/*
- * Utility Class
- */
-#define I2O_CMD_UTIL_NOP 0x00
-#define I2O_CMD_UTIL_ABORT 0x01
-#define I2O_CMD_UTIL_CLAIM 0x09
-#define I2O_CMD_UTIL_RELEASE 0x0B
-#define I2O_CMD_UTIL_PARAMS_GET 0x06
-#define I2O_CMD_UTIL_PARAMS_SET 0x05
-#define I2O_CMD_UTIL_EVT_REGISTER 0x13
-#define I2O_CMD_UTIL_EVT_ACK 0x14
-#define I2O_CMD_UTIL_CONFIG_DIALOG 0x10
-#define I2O_CMD_UTIL_DEVICE_RESERVE 0x0D
-#define I2O_CMD_UTIL_DEVICE_RELEASE 0x0F
-#define I2O_CMD_UTIL_LOCK 0x17
-#define I2O_CMD_UTIL_LOCK_RELEASE 0x19
-#define I2O_CMD_UTIL_REPLY_FAULT_NOTIFY 0x15
-
-/*
- * SCSI Host Bus Adapter Class
- */
-#define I2O_CMD_SCSI_EXEC 0x81
-#define I2O_CMD_SCSI_ABORT 0x83
-#define I2O_CMD_SCSI_BUSRESET 0x27
-
-/*
- * Bus Adapter Class
- */
-#define I2O_CMD_BUS_ADAPTER_RESET 0x85
-#define I2O_CMD_BUS_RESET 0x87
-#define I2O_CMD_BUS_SCAN 0x89
-#define I2O_CMD_BUS_QUIESCE 0x8b
-
-/*
- * Random Block Storage Class
- */
-#define I2O_CMD_BLOCK_READ 0x30
-#define I2O_CMD_BLOCK_WRITE 0x31
-#define I2O_CMD_BLOCK_CFLUSH 0x37
-#define I2O_CMD_BLOCK_MLOCK 0x49
-#define I2O_CMD_BLOCK_MUNLOCK 0x4B
-#define I2O_CMD_BLOCK_MMOUNT 0x41
-#define I2O_CMD_BLOCK_MEJECT 0x43
-#define I2O_CMD_BLOCK_POWER 0x70
-
-#define I2O_CMD_PRIVATE 0xFF
-
-/* Command status values */
-
-#define I2O_CMD_IN_PROGRESS 0x01
-#define I2O_CMD_REJECTED 0x02
-#define I2O_CMD_FAILED 0x03
-#define I2O_CMD_COMPLETED 0x04
-
-/* I2O API function return values */
-
-#define I2O_RTN_NO_ERROR 0
-#define I2O_RTN_NOT_INIT 1
-#define I2O_RTN_FREE_Q_EMPTY 2
-#define I2O_RTN_TCB_ERROR 3
-#define I2O_RTN_TRANSACTION_ERROR 4
-#define I2O_RTN_ADAPTER_ALREADY_INIT 5
-#define I2O_RTN_MALLOC_ERROR 6
-#define I2O_RTN_ADPTR_NOT_REGISTERED 7
-#define I2O_RTN_MSG_REPLY_TIMEOUT 8
-#define I2O_RTN_NO_STATUS 9
-#define I2O_RTN_NO_FIRM_VER 10
-#define I2O_RTN_NO_LINK_SPEED 11
-
-/* Reply message status defines for all messages */
-
-#define I2O_REPLY_STATUS_SUCCESS 0x00
-#define I2O_REPLY_STATUS_ABORT_DIRTY 0x01
-#define I2O_REPLY_STATUS_ABORT_NO_DATA_TRANSFER 0x02
-#define I2O_REPLY_STATUS_ABORT_PARTIAL_TRANSFER 0x03
-#define I2O_REPLY_STATUS_ERROR_DIRTY 0x04
-#define I2O_REPLY_STATUS_ERROR_NO_DATA_TRANSFER 0x05
-#define I2O_REPLY_STATUS_ERROR_PARTIAL_TRANSFER 0x06
-#define I2O_REPLY_STATUS_PROCESS_ABORT_DIRTY 0x08
-#define I2O_REPLY_STATUS_PROCESS_ABORT_NO_DATA_TRANSFER 0x09
-#define I2O_REPLY_STATUS_PROCESS_ABORT_PARTIAL_TRANSFER 0x0A
-#define I2O_REPLY_STATUS_TRANSACTION_ERROR 0x0B
-#define I2O_REPLY_STATUS_PROGRESS_REPORT 0x80
-
-/* Status codes and Error Information for Parameter functions */
-
-#define I2O_PARAMS_STATUS_SUCCESS 0x00
-#define I2O_PARAMS_STATUS_BAD_KEY_ABORT 0x01
-#define I2O_PARAMS_STATUS_BAD_KEY_CONTINUE 0x02
-#define I2O_PARAMS_STATUS_BUFFER_FULL 0x03
-#define I2O_PARAMS_STATUS_BUFFER_TOO_SMALL 0x04
-#define I2O_PARAMS_STATUS_FIELD_UNREADABLE 0x05
-#define I2O_PARAMS_STATUS_FIELD_UNWRITEABLE 0x06
-#define I2O_PARAMS_STATUS_INSUFFICIENT_FIELDS 0x07
-#define I2O_PARAMS_STATUS_INVALID_GROUP_ID 0x08
-#define I2O_PARAMS_STATUS_INVALID_OPERATION 0x09
-#define I2O_PARAMS_STATUS_NO_KEY_FIELD 0x0A
-#define I2O_PARAMS_STATUS_NO_SUCH_FIELD 0x0B
-#define I2O_PARAMS_STATUS_NON_DYNAMIC_GROUP 0x0C
-#define I2O_PARAMS_STATUS_OPERATION_ERROR 0x0D
-#define I2O_PARAMS_STATUS_SCALAR_ERROR 0x0E
-#define I2O_PARAMS_STATUS_TABLE_ERROR 0x0F
-#define I2O_PARAMS_STATUS_WRONG_GROUP_TYPE 0x10
-
-/* DetailedStatusCode defines for Executive, DDM, Util and Transaction error
- * messages: Table 3-2 Detailed Status Codes.*/
-
-#define I2O_DSC_SUCCESS 0x0000
-#define I2O_DSC_BAD_KEY 0x0002
-#define I2O_DSC_TCL_ERROR 0x0003
-#define I2O_DSC_REPLY_BUFFER_FULL 0x0004
-#define I2O_DSC_NO_SUCH_PAGE 0x0005
-#define I2O_DSC_INSUFFICIENT_RESOURCE_SOFT 0x0006
-#define I2O_DSC_INSUFFICIENT_RESOURCE_HARD 0x0007
-#define I2O_DSC_CHAIN_BUFFER_TOO_LARGE 0x0009
-#define I2O_DSC_UNSUPPORTED_FUNCTION 0x000A
-#define I2O_DSC_DEVICE_LOCKED 0x000B
-#define I2O_DSC_DEVICE_RESET 0x000C
-#define I2O_DSC_INAPPROPRIATE_FUNCTION 0x000D
-#define I2O_DSC_INVALID_INITIATOR_ADDRESS 0x000E
-#define I2O_DSC_INVALID_MESSAGE_FLAGS 0x000F
-#define I2O_DSC_INVALID_OFFSET 0x0010
-#define I2O_DSC_INVALID_PARAMETER 0x0011
-#define I2O_DSC_INVALID_REQUEST 0x0012
-#define I2O_DSC_INVALID_TARGET_ADDRESS 0x0013
-#define I2O_DSC_MESSAGE_TOO_LARGE 0x0014
-#define I2O_DSC_MESSAGE_TOO_SMALL 0x0015
-#define I2O_DSC_MISSING_PARAMETER 0x0016
-#define I2O_DSC_TIMEOUT 0x0017
-#define I2O_DSC_UNKNOWN_ERROR 0x0018
-#define I2O_DSC_UNKNOWN_FUNCTION 0x0019
-#define I2O_DSC_UNSUPPORTED_VERSION 0x001A
-#define I2O_DSC_DEVICE_BUSY 0x001B
-#define I2O_DSC_DEVICE_NOT_AVAILABLE 0x001C
-
-/* DetailedStatusCode defines for Block Storage Operation: Table 6-7 Detailed
- Status Codes.*/
-
-#define I2O_BSA_DSC_SUCCESS 0x0000
-#define I2O_BSA_DSC_MEDIA_ERROR 0x0001
-#define I2O_BSA_DSC_ACCESS_ERROR 0x0002
-#define I2O_BSA_DSC_DEVICE_FAILURE 0x0003
-#define I2O_BSA_DSC_DEVICE_NOT_READY 0x0004
-#define I2O_BSA_DSC_MEDIA_NOT_PRESENT 0x0005
-#define I2O_BSA_DSC_MEDIA_LOCKED 0x0006
-#define I2O_BSA_DSC_MEDIA_FAILURE 0x0007
-#define I2O_BSA_DSC_PROTOCOL_FAILURE 0x0008
-#define I2O_BSA_DSC_BUS_FAILURE 0x0009
-#define I2O_BSA_DSC_ACCESS_VIOLATION 0x000A
-#define I2O_BSA_DSC_WRITE_PROTECTED 0x000B
-#define I2O_BSA_DSC_DEVICE_RESET 0x000C
-#define I2O_BSA_DSC_VOLUME_CHANGED 0x000D
-#define I2O_BSA_DSC_TIMEOUT 0x000E
-
-/* FailureStatusCodes, Table 3-3 Message Failure Codes */
-
-#define I2O_FSC_TRANSPORT_SERVICE_SUSPENDED 0x81
-#define I2O_FSC_TRANSPORT_SERVICE_TERMINATED 0x82
-#define I2O_FSC_TRANSPORT_CONGESTION 0x83
-#define I2O_FSC_TRANSPORT_FAILURE 0x84
-#define I2O_FSC_TRANSPORT_STATE_ERROR 0x85
-#define I2O_FSC_TRANSPORT_TIME_OUT 0x86
-#define I2O_FSC_TRANSPORT_ROUTING_FAILURE 0x87
-#define I2O_FSC_TRANSPORT_INVALID_VERSION 0x88
-#define I2O_FSC_TRANSPORT_INVALID_OFFSET 0x89
-#define I2O_FSC_TRANSPORT_INVALID_MSG_FLAGS 0x8A
-#define I2O_FSC_TRANSPORT_FRAME_TOO_SMALL 0x8B
-#define I2O_FSC_TRANSPORT_FRAME_TOO_LARGE 0x8C
-#define I2O_FSC_TRANSPORT_INVALID_TARGET_ID 0x8D
-#define I2O_FSC_TRANSPORT_INVALID_INITIATOR_ID 0x8E
-#define I2O_FSC_TRANSPORT_INVALID_INITIATOR_CONTEXT 0x8F
-#define I2O_FSC_TRANSPORT_UNKNOWN_FAILURE 0xFF
-
-/* Device Claim Types */
-#define I2O_CLAIM_PRIMARY 0x01000000
-#define I2O_CLAIM_MANAGEMENT 0x02000000
-#define I2O_CLAIM_AUTHORIZED 0x03000000
-#define I2O_CLAIM_SECONDARY 0x04000000
-
-/* Message header defines for VersionOffset */
-#define I2OVER15 0x0001
-#define I2OVER20 0x0002
-
-/* Default is 1.5 */
-#define I2OVERSION I2OVER15
-
-#define SGL_OFFSET_0 I2OVERSION
-#define SGL_OFFSET_4 (0x0040 | I2OVERSION)
-#define SGL_OFFSET_5 (0x0050 | I2OVERSION)
-#define SGL_OFFSET_6 (0x0060 | I2OVERSION)
-#define SGL_OFFSET_7 (0x0070 | I2OVERSION)
-#define SGL_OFFSET_8 (0x0080 | I2OVERSION)
-#define SGL_OFFSET_9 (0x0090 | I2OVERSION)
-#define SGL_OFFSET_10 (0x00A0 | I2OVERSION)
-#define SGL_OFFSET_11 (0x00B0 | I2OVERSION)
-#define SGL_OFFSET_12 (0x00C0 | I2OVERSION)
-#define SGL_OFFSET(x) (((x)<<4) | I2OVERSION)
-
-/* Transaction Reply Lists (TRL) Control Word structure */
-#define TRL_SINGLE_FIXED_LENGTH 0x00
-#define TRL_SINGLE_VARIABLE_LENGTH 0x40
-#define TRL_MULTIPLE_FIXED_LENGTH 0x80
-
- /* msg header defines for MsgFlags */
-#define MSG_STATIC 0x0100
-#define MSG_64BIT_CNTXT 0x0200
-#define MSG_MULTI_TRANS 0x1000
-#define MSG_FAIL 0x2000
-#define MSG_FINAL 0x4000
-#define MSG_REPLY 0x8000
-
- /* minimum size msg */
-#define THREE_WORD_MSG_SIZE 0x00030000
-#define FOUR_WORD_MSG_SIZE 0x00040000
-#define FIVE_WORD_MSG_SIZE 0x00050000
-#define SIX_WORD_MSG_SIZE 0x00060000
-#define SEVEN_WORD_MSG_SIZE 0x00070000
-#define EIGHT_WORD_MSG_SIZE 0x00080000
-#define NINE_WORD_MSG_SIZE 0x00090000
-#define TEN_WORD_MSG_SIZE 0x000A0000
-#define ELEVEN_WORD_MSG_SIZE 0x000B0000
-#define I2O_MESSAGE_SIZE(x) ((x)<<16)
-
-/* special TID assignments */
-#define ADAPTER_TID 0
-#define HOST_TID 1
-
-/* outbound queue defines */
-#define I2O_MAX_OUTBOUND_MSG_FRAMES 128
-#define I2O_OUTBOUND_MSG_FRAME_SIZE 128 /* in 32-bit words */
-
-/* inbound queue definitions */
-#define I2O_MSG_INPOOL_MIN 32
-#define I2O_INBOUND_MSG_FRAME_SIZE 128 /* in 32-bit words */
-
-#define I2O_POST_WAIT_OK 0
-#define I2O_POST_WAIT_TIMEOUT -ETIMEDOUT
-
-#define I2O_CONTEXT_LIST_MIN_LENGTH 15
-#define I2O_CONTEXT_LIST_USED 0x01
-#define I2O_CONTEXT_LIST_DELETED 0x02
-
-/* timeouts */
-#define I2O_TIMEOUT_INIT_OUTBOUND_QUEUE 15
-#define I2O_TIMEOUT_MESSAGE_GET 5
-#define I2O_TIMEOUT_RESET 30
-#define I2O_TIMEOUT_STATUS_GET 5
-#define I2O_TIMEOUT_LCT_GET 360
-#define I2O_TIMEOUT_SCSI_SCB_ABORT 240
-
-/* retries */
-#define I2O_HRT_GET_TRIES 3
-#define I2O_LCT_GET_TRIES 3
-
-/* defines for max_sectors and max_phys_segments */
-#define I2O_MAX_SECTORS 1024
-#define I2O_MAX_SECTORS_LIMITED 128
-#define I2O_MAX_PHYS_SEGMENTS BLK_MAX_SEGMENTS
-
-/*
- * Message structures
- */
-struct i2o_message {
- union {
- struct {
- u8 version_offset;
- u8 flags;
- u16 size;
- u32 target_tid:12;
- u32 init_tid:12;
- u32 function:8;
- u32 icntxt; /* initiator context */
- u32 tcntxt; /* transaction context */
- } s;
- u32 head[4];
- } u;
- /* List follows */
- u32 body[0];
-};
-
-/* MFA and I2O message used by mempool */
-struct i2o_msg_mfa {
- u32 mfa; /* MFA returned by the controller */
- struct i2o_message msg; /* I2O message */
-};
-
-/*
- * Each I2O device entity has one of these. There is one per device.
- */
-struct i2o_device {
- i2o_lct_entry lct_data; /* Device LCT information */
-
- struct i2o_controller *iop; /* Controlling IOP */
- struct list_head list; /* node in IOP devices list */
-
- struct device device;
-
- struct mutex lock; /* device lock */
-};
-
-/*
- * Event structure provided to the event handling function
- */
-struct i2o_event {
- struct work_struct work;
- struct i2o_device *i2o_dev; /* I2O device pointer from which the
- event reply was initiated */
- u16 size; /* Size of data in 32-bit words */
- u32 tcntxt; /* Transaction context used at
- registration */
- u32 event_indicator; /* Event indicator from reply */
- u32 data[0]; /* Event data from reply */
-};
-
-/*
- * I2O classes which could be handled by the OSM
- */
-struct i2o_class_id {
- u16 class_id:12;
-};
-
-/*
- * I2O driver structure for OSMs
- */
-struct i2o_driver {
- char *name; /* OSM name */
- int context; /* Low 8 bits of the transaction info */
- struct i2o_class_id *classes; /* I2O classes that this OSM handles */
-
- /* Message reply handler */
- int (*reply) (struct i2o_controller *, u32, struct i2o_message *);
-
- /* Event handler */
- work_func_t event;
-
- struct workqueue_struct *event_queue; /* Event queue */
-
- struct device_driver driver;
-
- /* notification of changes */
- void (*notify_controller_add) (struct i2o_controller *);
- void (*notify_controller_remove) (struct i2o_controller *);
- void (*notify_device_add) (struct i2o_device *);
- void (*notify_device_remove) (struct i2o_device *);
-
- struct semaphore lock;
-};
-
-/*
- * Contains DMA mapped address information
- */
-struct i2o_dma {
- void *virt;
- dma_addr_t phys;
- size_t len;
-};
-
-/*
- * Contains slab cache and mempool information
- */
-struct i2o_pool {
- char *name;
- struct kmem_cache *slab;
- mempool_t *mempool;
-};
-
-/*
- * Contains IO mapped address information
- */
-struct i2o_io {
- void __iomem *virt;
- unsigned long phys;
- unsigned long len;
-};
-
-/*
- * Context queue entry, used for 32-bit context on 64-bit systems
- */
-struct i2o_context_list_element {
- struct list_head list;
- u32 context;
- void *ptr;
- unsigned long timestamp;
-};
-
-/*
- * Each I2O controller has one of these objects
- */
-struct i2o_controller {
- char name[16];
- int unit;
- int type;
-
- struct pci_dev *pdev; /* PCI device */
-
- unsigned int promise:1; /* Promise controller */
- unsigned int adaptec:1; /* DPT / Adaptec controller */
- unsigned int raptor:1; /* split bar */
- unsigned int no_quiesce:1; /* dont quiesce before reset */
- unsigned int short_req:1; /* use small block sizes */
- unsigned int limit_sectors:1; /* limit number of sectors / request */
- unsigned int pae_support:1; /* controller has 64-bit SGL support */
-
- struct list_head devices; /* list of I2O devices */
- struct list_head list; /* Controller list */
-
- void __iomem *in_port; /* Inbout port address */
- void __iomem *out_port; /* Outbound port address */
- void __iomem *irq_status; /* Interrupt status register address */
- void __iomem *irq_mask; /* Interrupt mask register address */
-
- struct i2o_dma status; /* IOP status block */
-
- struct i2o_dma hrt; /* HW Resource Table */
- i2o_lct *lct; /* Logical Config Table */
- struct i2o_dma dlct; /* Temp LCT */
- struct mutex lct_lock; /* Lock for LCT updates */
- struct i2o_dma status_block; /* IOP status block */
-
- struct i2o_io base; /* controller messaging unit */
- struct i2o_io in_queue; /* inbound message queue Host->IOP */
- struct i2o_dma out_queue; /* outbound message queue IOP->Host */
-
- struct i2o_pool in_msg; /* mempool for inbound messages */
-
- unsigned int battery:1; /* Has a battery backup */
- unsigned int io_alloc:1; /* An I/O resource was allocated */
- unsigned int mem_alloc:1; /* A memory resource was allocated */
-
- struct resource io_resource; /* I/O resource allocated to the IOP */
- struct resource mem_resource; /* Mem resource allocated to the IOP */
-
- struct device device;
- struct i2o_device *exec; /* Executive */
-#if BITS_PER_LONG == 64
- spinlock_t context_list_lock; /* lock for context_list */
- atomic_t context_list_counter; /* needed for unique contexts */
- struct list_head context_list; /* list of context id's
- and pointers */
-#endif
- spinlock_t lock; /* lock for controller
- configuration */
- void *driver_data[I2O_MAX_DRIVERS]; /* storage for drivers */
-};
-
-/*
- * I2O System table entry
- *
- * The system table contains information about all the IOPs in the
- * system. It is sent to all IOPs so that they can create peer2peer
- * connections between them.
- */
-struct i2o_sys_tbl_entry {
- u16 org_id;
- u16 reserved1;
- u32 iop_id:12;
- u32 reserved2:20;
- u16 seg_num:12;
- u16 i2o_version:4;
- u8 iop_state;
- u8 msg_type;
- u16 frame_size;
- u16 reserved3;
- u32 last_changed;
- u32 iop_capabilities;
- u32 inbound_low;
- u32 inbound_high;
-};
-
-struct i2o_sys_tbl {
- u8 num_entries;
- u8 version;
- u16 reserved1;
- u32 change_ind;
- u32 reserved2;
- u32 reserved3;
- struct i2o_sys_tbl_entry iops[0];
-};
-
-extern struct list_head i2o_controllers;
-
-/* Message functions */
-extern struct i2o_message *i2o_msg_get_wait(struct i2o_controller *, int);
-extern int i2o_msg_post_wait_mem(struct i2o_controller *, struct i2o_message *,
- unsigned long, struct i2o_dma *);
-
-/* IOP functions */
-extern int i2o_status_get(struct i2o_controller *);
-
-extern int i2o_event_register(struct i2o_device *, struct i2o_driver *, int,
- u32);
-extern struct i2o_device *i2o_iop_find_device(struct i2o_controller *, u16);
-extern struct i2o_controller *i2o_find_iop(int);
-
-/* Functions needed for handling 64-bit pointers in 32-bit context */
-#if BITS_PER_LONG == 64
-extern u32 i2o_cntxt_list_add(struct i2o_controller *, void *);
-extern void *i2o_cntxt_list_get(struct i2o_controller *, u32);
-extern u32 i2o_cntxt_list_remove(struct i2o_controller *, void *);
-extern u32 i2o_cntxt_list_get_ptr(struct i2o_controller *, void *);
-
-static inline u32 i2o_ptr_low(void *ptr)
-{
- return (u32) (u64) ptr;
-};
-
-static inline u32 i2o_ptr_high(void *ptr)
-{
- return (u32) ((u64) ptr >> 32);
-};
-
-static inline u32 i2o_dma_low(dma_addr_t dma_addr)
-{
- return (u32) (u64) dma_addr;
-};
-
-static inline u32 i2o_dma_high(dma_addr_t dma_addr)
-{
- return (u32) ((u64) dma_addr >> 32);
-};
-#else
-static inline u32 i2o_cntxt_list_add(struct i2o_controller *c, void *ptr)
-{
- return (u32) ptr;
-};
-
-static inline void *i2o_cntxt_list_get(struct i2o_controller *c, u32 context)
-{
- return (void *)context;
-};
-
-static inline u32 i2o_cntxt_list_remove(struct i2o_controller *c, void *ptr)
-{
- return (u32) ptr;
-};
-
-static inline u32 i2o_cntxt_list_get_ptr(struct i2o_controller *c, void *ptr)
-{
- return (u32) ptr;
-};
-
-static inline u32 i2o_ptr_low(void *ptr)
-{
- return (u32) ptr;
-};
-
-static inline u32 i2o_ptr_high(void *ptr)
-{
- return 0;
-};
-
-static inline u32 i2o_dma_low(dma_addr_t dma_addr)
-{
- return (u32) dma_addr;
-};
-
-static inline u32 i2o_dma_high(dma_addr_t dma_addr)
-{
- return 0;
-};
-#endif
-
-extern u16 i2o_sg_tablesize(struct i2o_controller *c, u16 body_size);
-extern dma_addr_t i2o_dma_map_single(struct i2o_controller *c, void *ptr,
- size_t size,
- enum dma_data_direction direction,
- u32 ** sg_ptr);
-extern int i2o_dma_map_sg(struct i2o_controller *c,
- struct scatterlist *sg, int sg_count,
- enum dma_data_direction direction,
- u32 ** sg_ptr);
-extern int i2o_dma_alloc(struct device *dev, struct i2o_dma *addr, size_t len);
-extern void i2o_dma_free(struct device *dev, struct i2o_dma *addr);
-extern int i2o_dma_realloc(struct device *dev, struct i2o_dma *addr,
- size_t len);
-extern int i2o_pool_alloc(struct i2o_pool *pool, const char *name,
- size_t size, int min_nr);
-extern void i2o_pool_free(struct i2o_pool *pool);
-/* I2O driver (OSM) functions */
-extern int i2o_driver_register(struct i2o_driver *);
-extern void i2o_driver_unregister(struct i2o_driver *);
-
-/**
- * i2o_driver_notify_controller_add - Send notification of added controller
- * @drv: I2O driver
- * @c: I2O controller
- *
- * Send notification of added controller to a single registered driver.
- */
-static inline void i2o_driver_notify_controller_add(struct i2o_driver *drv,
- struct i2o_controller *c)
-{
- if (drv->notify_controller_add)
- drv->notify_controller_add(c);
-};
-
-/**
- * i2o_driver_notify_controller_remove - Send notification of removed controller
- * @drv: I2O driver
- * @c: I2O controller
- *
- * Send notification of removed controller to a single registered driver.
- */
-static inline void i2o_driver_notify_controller_remove(struct i2o_driver *drv,
- struct i2o_controller *c)
-{
- if (drv->notify_controller_remove)
- drv->notify_controller_remove(c);
-};
-
-/**
- * i2o_driver_notify_device_add - Send notification of added device
- * @drv: I2O driver
- * @i2o_dev: the added i2o_device
- *
- * Send notification of added device to a single registered driver.
- */
-static inline void i2o_driver_notify_device_add(struct i2o_driver *drv,
- struct i2o_device *i2o_dev)
-{
- if (drv->notify_device_add)
- drv->notify_device_add(i2o_dev);
-};
-
-/**
- * i2o_driver_notify_device_remove - Send notification of removed device
- * @drv: I2O driver
- * @i2o_dev: the added i2o_device
- *
- * Send notification of removed device to a single registered driver.
- */
-static inline void i2o_driver_notify_device_remove(struct i2o_driver *drv,
- struct i2o_device *i2o_dev)
-{
- if (drv->notify_device_remove)
- drv->notify_device_remove(i2o_dev);
-};
-
-extern void i2o_driver_notify_controller_add_all(struct i2o_controller *);
-extern void i2o_driver_notify_controller_remove_all(struct i2o_controller *);
-extern void i2o_driver_notify_device_add_all(struct i2o_device *);
-extern void i2o_driver_notify_device_remove_all(struct i2o_device *);
-
-/* I2O device functions */
-extern int i2o_device_claim(struct i2o_device *);
-extern int i2o_device_claim_release(struct i2o_device *);
-
-/* Exec OSM functions */
-extern int i2o_exec_lct_get(struct i2o_controller *);
-
-/* device / driver / kobject conversion functions */
-#define to_i2o_driver(drv) container_of(drv,struct i2o_driver, driver)
-#define to_i2o_device(dev) container_of(dev, struct i2o_device, device)
-#define to_i2o_controller(dev) container_of(dev, struct i2o_controller, device)
-
-/**
- * i2o_out_to_virt - Turn an I2O message to a virtual address
- * @c: controller
- * @m: message engine value
- *
- * Turn a receive message from an I2O controller bus address into
- * a Linux virtual address. The shared page frame is a linear block
- * so we simply have to shift the offset. This function does not
- * work for sender side messages as they are ioremap objects
- * provided by the I2O controller.
- */
-static inline struct i2o_message *i2o_msg_out_to_virt(struct i2o_controller *c,
- u32 m)
-{
- BUG_ON(m < c->out_queue.phys
- || m >= c->out_queue.phys + c->out_queue.len);
-
- return c->out_queue.virt + (m - c->out_queue.phys);
-};
-
-/**
- * i2o_msg_in_to_virt - Turn an I2O message to a virtual address
- * @c: controller
- * @m: message engine value
- *
- * Turn a send message from an I2O controller bus address into
- * a Linux virtual address. The shared page frame is a linear block
- * so we simply have to shift the offset. This function does not
- * work for receive side messages as they are kmalloc objects
- * in a different pool.
- */
-static inline struct i2o_message __iomem *i2o_msg_in_to_virt(struct
- i2o_controller *c,
- u32 m)
-{
- return c->in_queue.virt + m;
-};
-
-/**
- * i2o_msg_get - obtain an I2O message from the IOP
- * @c: I2O controller
- *
- * This function tries to get a message frame. If no message frame is
- * available do not wait until one is available (see also i2o_msg_get_wait).
- * The returned pointer to the message frame is not in I/O memory, it is
- * allocated from a mempool. But because a MFA is allocated from the
- * controller too it is guaranteed that i2o_msg_post() will never fail.
- *
- * On a success a pointer to the message frame is returned. If the message
- * queue is empty -EBUSY is returned and if no memory is available -ENOMEM
- * is returned.
- */
-static inline struct i2o_message *i2o_msg_get(struct i2o_controller *c)
-{
- struct i2o_msg_mfa *mmsg = mempool_alloc(c->in_msg.mempool, GFP_ATOMIC);
- if (!mmsg)
- return ERR_PTR(-ENOMEM);
-
- mmsg->mfa = readl(c->in_port);
- if (unlikely(mmsg->mfa >= c->in_queue.len)) {
- u32 mfa = mmsg->mfa;
-
- mempool_free(mmsg, c->in_msg.mempool);
-
- if (mfa == I2O_QUEUE_EMPTY)
- return ERR_PTR(-EBUSY);
- return ERR_PTR(-EFAULT);
- }
-
- return &mmsg->msg;
-};
-
-/**
- * i2o_msg_post - Post I2O message to I2O controller
- * @c: I2O controller to which the message should be send
- * @msg: message returned by i2o_msg_get()
- *
- * Post the message to the I2O controller and return immediately.
- */
-static inline void i2o_msg_post(struct i2o_controller *c,
- struct i2o_message *msg)
-{
- struct i2o_msg_mfa *mmsg;
-
- mmsg = container_of(msg, struct i2o_msg_mfa, msg);
- memcpy_toio(i2o_msg_in_to_virt(c, mmsg->mfa), msg,
- (le32_to_cpu(msg->u.head[0]) >> 16) << 2);
- writel(mmsg->mfa, c->in_port);
- mempool_free(mmsg, c->in_msg.mempool);
-};
-
-/**
- * i2o_msg_post_wait - Post and wait a message and wait until return
- * @c: controller
- * @msg: message to post
- * @timeout: time in seconds to wait
- *
- * This API allows an OSM to post a message and then be told whether or
- * not the system received a successful reply. If the message times out
- * then the value '-ETIMEDOUT' is returned.
- *
- * Returns 0 on success or negative error code on failure.
- */
-static inline int i2o_msg_post_wait(struct i2o_controller *c,
- struct i2o_message *msg,
- unsigned long timeout)
-{
- return i2o_msg_post_wait_mem(c, msg, timeout, NULL);
-};
-
-/**
- * i2o_msg_nop_mfa - Returns a fetched MFA back to the controller
- * @c: I2O controller from which the MFA was fetched
- * @mfa: MFA which should be returned
- *
- * This function must be used for preserved messages, because i2o_msg_nop()
- * also returns the allocated memory back to the msg_pool mempool.
- */
-static inline void i2o_msg_nop_mfa(struct i2o_controller *c, u32 mfa)
-{
- struct i2o_message __iomem *msg;
- u32 nop[3] = {
- THREE_WORD_MSG_SIZE | SGL_OFFSET_0,
- I2O_CMD_UTIL_NOP << 24 | HOST_TID << 12 | ADAPTER_TID,
- 0x00000000
- };
-
- msg = i2o_msg_in_to_virt(c, mfa);
- memcpy_toio(msg, nop, sizeof(nop));
- writel(mfa, c->in_port);
-};
-
-/**
- * i2o_msg_nop - Returns a message which is not used
- * @c: I2O controller from which the message was created
- * @msg: message which should be returned
- *
- * If you fetch a message via i2o_msg_get, and can't use it, you must
- * return the message with this function. Otherwise the MFA is lost as well
- * as the allocated memory from the mempool.
- */
-static inline void i2o_msg_nop(struct i2o_controller *c,
- struct i2o_message *msg)
-{
- struct i2o_msg_mfa *mmsg;
- mmsg = container_of(msg, struct i2o_msg_mfa, msg);
-
- i2o_msg_nop_mfa(c, mmsg->mfa);
- mempool_free(mmsg, c->in_msg.mempool);
-};
-
-/**
- * i2o_flush_reply - Flush reply from I2O controller
- * @c: I2O controller
- * @m: the message identifier
- *
- * The I2O controller must be informed that the reply message is not needed
- * anymore. If you forget to flush the reply, the message frame can't be
- * used by the controller anymore and is therefore lost.
- */
-static inline void i2o_flush_reply(struct i2o_controller *c, u32 m)
-{
- writel(m, c->out_port);
-};
-
-/*
- * Endian handling wrapped into the macro - keeps the core code
- * cleaner.
- */
-
-#define i2o_raw_writel(val, mem) __raw_writel(cpu_to_le32(val), mem)
-
-extern int i2o_parm_field_get(struct i2o_device *, int, int, void *, int);
-extern int i2o_parm_table_get(struct i2o_device *, int, int, int, void *, int,
- void *, int);
-
-/* debugging and troubleshooting/diagnostic helpers. */
-#define osm_printk(level, format, arg...) \
- printk(level "%s: " format, OSM_NAME , ## arg)
-
-#ifdef DEBUG
-#define osm_debug(format, arg...) \
- osm_printk(KERN_DEBUG, format , ## arg)
-#else
-#define osm_debug(format, arg...) \
- do { } while (0)
-#endif
-
-#define osm_err(format, arg...) \
- osm_printk(KERN_ERR, format , ## arg)
-#define osm_info(format, arg...) \
- osm_printk(KERN_INFO, format , ## arg)
-#define osm_warn(format, arg...) \
- osm_printk(KERN_WARNING, format , ## arg)
-
-/* debugging functions */
-extern void i2o_report_status(const char *, const char *, struct i2o_message *);
-extern void i2o_dump_message(struct i2o_message *);
-extern void i2o_dump_hrt(struct i2o_controller *c);
-extern void i2o_debug_state(struct i2o_controller *c);
-
-#endif /* _I2O_H */
diff --git a/ANDROID_3.4.5/include/linux/i7300_idle.h b/ANDROID_3.4.5/include/linux/i7300_idle.h
deleted file mode 100644
index 1587b7de..00000000
--- a/ANDROID_3.4.5/include/linux/i7300_idle.h
+++ /dev/null
@@ -1,83 +0,0 @@
-
-#ifndef I7300_IDLE_H
-#define I7300_IDLE_H
-
-#include <linux/pci.h>
-
-/*
- * I/O AT controls (PCI bus 0 device 8 function 0)
- * DIMM controls (PCI bus 0 device 16 function 1)
- */
-#define IOAT_BUS 0
-#define IOAT_DEVFN PCI_DEVFN(8, 0)
-#define MEMCTL_BUS 0
-#define MEMCTL_DEVFN PCI_DEVFN(16, 1)
-
-struct fbd_ioat {
- unsigned int vendor;
- unsigned int ioat_dev;
- unsigned int enabled;
-};
-
-/*
- * The i5000 chip-set has the same hooks as the i7300
- * but it is not enabled by default and must be manually
- * manually enabled with "forceload=1" because it is
- * only lightly validated.
- */
-
-static const struct fbd_ioat fbd_ioat_list[] = {
- {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IOAT_CNB, 1},
- {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_IOAT, 0},
- {0, 0}
-};
-
-/* table of devices that work with this driver */
-static const struct pci_device_id pci_tbl[] = {
- { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_FBD_CNB) },
- { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_5000_ERR) },
- { } /* Terminating entry */
-};
-
-/* Check for known platforms with I/O-AT */
-static inline int i7300_idle_platform_probe(struct pci_dev **fbd_dev,
- struct pci_dev **ioat_dev,
- int enable_all)
-{
- int i;
- struct pci_dev *memdev, *dmadev;
-
- memdev = pci_get_bus_and_slot(MEMCTL_BUS, MEMCTL_DEVFN);
- if (!memdev)
- return -ENODEV;
-
- for (i = 0; pci_tbl[i].vendor != 0; i++) {
- if (memdev->vendor == pci_tbl[i].vendor &&
- memdev->device == pci_tbl[i].device) {
- break;
- }
- }
- if (pci_tbl[i].vendor == 0)
- return -ENODEV;
-
- dmadev = pci_get_bus_and_slot(IOAT_BUS, IOAT_DEVFN);
- if (!dmadev)
- return -ENODEV;
-
- for (i = 0; fbd_ioat_list[i].vendor != 0; i++) {
- if (dmadev->vendor == fbd_ioat_list[i].vendor &&
- dmadev->device == fbd_ioat_list[i].ioat_dev) {
- if (!(fbd_ioat_list[i].enabled || enable_all))
- continue;
- if (fbd_dev)
- *fbd_dev = memdev;
- if (ioat_dev)
- *ioat_dev = dmadev;
-
- return 0;
- }
- }
- return -ENODEV;
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/i8042.h b/ANDROID_3.4.5/include/linux/i8042.h
deleted file mode 100644
index a986ff58..00000000
--- a/ANDROID_3.4.5/include/linux/i8042.h
+++ /dev/null
@@ -1,81 +0,0 @@
-#ifndef _LINUX_I8042_H
-#define _LINUX_I8042_H
-
-/*
- * 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/types.h>
-
-/*
- * Standard commands.
- */
-
-#define I8042_CMD_CTL_RCTR 0x0120
-#define I8042_CMD_CTL_WCTR 0x1060
-#define I8042_CMD_CTL_TEST 0x01aa
-
-#define I8042_CMD_KBD_DISABLE 0x00ad
-#define I8042_CMD_KBD_ENABLE 0x00ae
-#define I8042_CMD_KBD_TEST 0x01ab
-#define I8042_CMD_KBD_LOOP 0x11d2
-
-#define I8042_CMD_AUX_DISABLE 0x00a7
-#define I8042_CMD_AUX_ENABLE 0x00a8
-#define I8042_CMD_AUX_TEST 0x01a9
-#define I8042_CMD_AUX_SEND 0x10d4
-#define I8042_CMD_AUX_LOOP 0x11d3
-
-#define I8042_CMD_MUX_PFX 0x0090
-#define I8042_CMD_MUX_SEND 0x1090
-
-struct serio;
-
-#if defined(CONFIG_SERIO_I8042) || defined(CONFIG_SERIO_I8042_MODULE)
-
-void i8042_lock_chip(void);
-void i8042_unlock_chip(void);
-int i8042_command(unsigned char *param, int command);
-bool i8042_check_port_owner(const struct serio *);
-int i8042_install_filter(bool (*filter)(unsigned char data, unsigned char str,
- struct serio *serio));
-int i8042_remove_filter(bool (*filter)(unsigned char data, unsigned char str,
- struct serio *serio));
-
-#else
-
-static inline void i8042_lock_chip(void)
-{
-}
-
-static inline void i8042_unlock_chip(void)
-{
-}
-
-static inline int i8042_command(unsigned char *param, int command)
-{
- return -ENODEV;
-}
-
-static inline bool i8042_check_port_owner(const struct serio *serio)
-{
- return false;
-}
-
-static inline int i8042_install_filter(bool (*filter)(unsigned char data, unsigned char str,
- struct serio *serio))
-{
- return -ENODEV;
-}
-
-static inline int i8042_remove_filter(bool (*filter)(unsigned char data, unsigned char str,
- struct serio *serio))
-{
- return -ENODEV;
-}
-
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/i8253.h b/ANDROID_3.4.5/include/linux/i8253.h
deleted file mode 100644
index e6bb36a9..00000000
--- a/ANDROID_3.4.5/include/linux/i8253.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Machine specific IO port address definition for generic.
- * Written by Osamu Tomita <tomita@cinet.co.jp>
- */
-#ifndef __LINUX_I8253_H
-#define __LINUX_I8253_H
-
-#include <linux/param.h>
-#include <linux/spinlock.h>
-#include <linux/timex.h>
-
-/* i8253A PIT registers */
-#define PIT_MODE 0x43
-#define PIT_CH0 0x40
-#define PIT_CH2 0x42
-
-#define PIT_LATCH ((PIT_TICK_RATE + HZ/2) / HZ)
-
-extern raw_spinlock_t i8253_lock;
-extern struct clock_event_device i8253_clockevent;
-extern void clockevent_i8253_init(bool oneshot);
-
-extern void setup_pit_timer(void);
-
-#endif /* __LINUX_I8253_H */
diff --git a/ANDROID_3.4.5/include/linux/i82593.h b/ANDROID_3.4.5/include/linux/i82593.h
deleted file mode 100644
index afac5c7a..00000000
--- a/ANDROID_3.4.5/include/linux/i82593.h
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
- * Definitions for Intel 82593 CSMA/CD Core LAN Controller
- * The definitions are taken from the 1992 users manual with Intel
- * order number 297125-001.
- *
- * /usr/src/pc/RCS/i82593.h,v 1.1 1996/07/17 15:23:12 root Exp
- *
- * Copyright 1994, Anders Klemets <klemets@it.kth.se>
- *
- * HISTORY
- * i82593.h,v
- * Revision 1.4 2005/11/4 09:15:00 baroniunas
- * Modified copyright with permission of author as follows:
- *
- * "If I82539.H is the only file with my copyright statement
- * that is included in the Source Forge project, then you have
- * my approval to change the copyright statement to be a GPL
- * license, in the way you proposed on October 10."
- *
- * Revision 1.1 1996/07/17 15:23:12 root
- * Initial revision
- *
- * Revision 1.3 1995/04/05 15:13:58 adj
- * Initial alpha release
- *
- * Revision 1.2 1994/06/16 23:57:31 klemets
- * Mirrored all the fields in the configuration block.
- *
- * Revision 1.1 1994/06/02 20:25:34 klemets
- * Initial revision
- *
- *
- */
-#ifndef _I82593_H
-#define _I82593_H
-
-/* Intel 82593 CSMA/CD Core LAN Controller */
-
-/* Port 0 Command Register definitions */
-
-/* Execution operations */
-#define OP0_NOP 0 /* CHNL = 0 */
-#define OP0_SWIT_TO_PORT_1 0 /* CHNL = 1 */
-#define OP0_IA_SETUP 1
-#define OP0_CONFIGURE 2
-#define OP0_MC_SETUP 3
-#define OP0_TRANSMIT 4
-#define OP0_TDR 5
-#define OP0_DUMP 6
-#define OP0_DIAGNOSE 7
-#define OP0_TRANSMIT_NO_CRC 9
-#define OP0_RETRANSMIT 12
-#define OP0_ABORT 13
-/* Reception operations */
-#define OP0_RCV_ENABLE 8
-#define OP0_RCV_DISABLE 10
-#define OP0_STOP_RCV 11
-/* Status pointer control operations */
-#define OP0_FIX_PTR 15 /* CHNL = 1 */
-#define OP0_RLS_PTR 15 /* CHNL = 0 */
-#define OP0_RESET 14
-
-#define CR0_CHNL (1 << 4) /* 0=Channel 0, 1=Channel 1 */
-#define CR0_STATUS_0 0x00
-#define CR0_STATUS_1 0x20
-#define CR0_STATUS_2 0x40
-#define CR0_STATUS_3 0x60
-#define CR0_INT_ACK (1 << 7) /* 0=No ack, 1=acknowledge */
-
-/* Port 0 Status Register definitions */
-
-#define SR0_NO_RESULT 0 /* dummy */
-#define SR0_EVENT_MASK 0x0f
-#define SR0_IA_SETUP_DONE 1
-#define SR0_CONFIGURE_DONE 2
-#define SR0_MC_SETUP_DONE 3
-#define SR0_TRANSMIT_DONE 4
-#define SR0_TDR_DONE 5
-#define SR0_DUMP_DONE 6
-#define SR0_DIAGNOSE_PASSED 7
-#define SR0_TRANSMIT_NO_CRC_DONE 9
-#define SR0_RETRANSMIT_DONE 12
-#define SR0_EXECUTION_ABORTED 13
-#define SR0_END_OF_FRAME 8
-#define SR0_RECEPTION_ABORTED 10
-#define SR0_DIAGNOSE_FAILED 15
-#define SR0_STOP_REG_HIT 11
-
-#define SR0_CHNL (1 << 4)
-#define SR0_EXECUTION (1 << 5)
-#define SR0_RECEPTION (1 << 6)
-#define SR0_INTERRUPT (1 << 7)
-#define SR0_BOTH_RX_TX (SR0_EXECUTION | SR0_RECEPTION)
-
-#define SR3_EXEC_STATE_MASK 0x03
-#define SR3_EXEC_IDLE 0
-#define SR3_TX_ABORT_IN_PROGRESS 1
-#define SR3_EXEC_ACTIVE 2
-#define SR3_ABORT_IN_PROGRESS 3
-#define SR3_EXEC_CHNL (1 << 2)
-#define SR3_STP_ON_NO_RSRC (1 << 3)
-#define SR3_RCVING_NO_RSRC (1 << 4)
-#define SR3_RCV_STATE_MASK 0x60
-#define SR3_RCV_IDLE 0x00
-#define SR3_RCV_READY 0x20
-#define SR3_RCV_ACTIVE 0x40
-#define SR3_RCV_STOP_IN_PROG 0x60
-#define SR3_RCV_CHNL (1 << 7)
-
-/* Port 1 Command Register definitions */
-
-#define OP1_NOP 0
-#define OP1_SWIT_TO_PORT_0 1
-#define OP1_INT_DISABLE 2
-#define OP1_INT_ENABLE 3
-#define OP1_SET_TS 5
-#define OP1_RST_TS 7
-#define OP1_POWER_DOWN 8
-#define OP1_RESET_RING_MNGMT 11
-#define OP1_RESET 14
-#define OP1_SEL_RST 15
-
-#define CR1_STATUS_4 0x00
-#define CR1_STATUS_5 0x20
-#define CR1_STATUS_6 0x40
-#define CR1_STOP_REG_UPDATE (1 << 7)
-
-/* Receive frame status bits */
-
-#define RX_RCLD (1 << 0)
-#define RX_IA_MATCH (1 << 1)
-#define RX_NO_AD_MATCH (1 << 2)
-#define RX_NO_SFD (1 << 3)
-#define RX_SRT_FRM (1 << 7)
-#define RX_OVRRUN (1 << 8)
-#define RX_ALG_ERR (1 << 10)
-#define RX_CRC_ERR (1 << 11)
-#define RX_LEN_ERR (1 << 12)
-#define RX_RCV_OK (1 << 13)
-#define RX_TYP_LEN (1 << 15)
-
-/* Transmit status bits */
-
-#define TX_NCOL_MASK 0x0f
-#define TX_FRTL (1 << 4)
-#define TX_MAX_COL (1 << 5)
-#define TX_HRT_BEAT (1 << 6)
-#define TX_DEFER (1 << 7)
-#define TX_UND_RUN (1 << 8)
-#define TX_LOST_CTS (1 << 9)
-#define TX_LOST_CRS (1 << 10)
-#define TX_LTCOL (1 << 11)
-#define TX_OK (1 << 13)
-#define TX_COLL (1 << 15)
-
-struct i82593_conf_block {
- u_char fifo_limit : 4,
- forgnesi : 1,
- fifo_32 : 1,
- d6mod : 1,
- throttle_enb : 1;
- u_char throttle : 6,
- cntrxint : 1,
- contin : 1;
- u_char addr_len : 3,
- acloc : 1,
- preamb_len : 2,
- loopback : 2;
- u_char lin_prio : 3,
- tbofstop : 1,
- exp_prio : 3,
- bof_met : 1;
- u_char : 4,
- ifrm_spc : 4;
- u_char : 5,
- slottim_low : 3;
- u_char slottim_hi : 3,
- : 1,
- max_retr : 4;
- u_char prmisc : 1,
- bc_dis : 1,
- : 1,
- crs_1 : 1,
- nocrc_ins : 1,
- crc_1632 : 1,
- : 1,
- crs_cdt : 1;
- u_char cs_filter : 3,
- crs_src : 1,
- cd_filter : 3,
- : 1;
- u_char : 2,
- min_fr_len : 6;
- u_char lng_typ : 1,
- lng_fld : 1,
- rxcrc_xf : 1,
- artx : 1,
- sarec : 1,
- tx_jabber : 1, /* why is this called max_len in the manual? */
- hash_1 : 1,
- lbpkpol : 1;
- u_char : 6,
- fdx : 1,
- : 1;
- u_char dummy_6 : 6, /* supposed to be ones */
- mult_ia : 1,
- dis_bof : 1;
- u_char dummy_1 : 1, /* supposed to be one */
- tx_ifs_retrig : 2,
- mc_all : 1,
- rcv_mon : 2,
- frag_acpt : 1,
- tstrttrs : 1;
- u_char fretx : 1,
- runt_eop : 1,
- hw_sw_pin : 1,
- big_endn : 1,
- syncrqs : 1,
- sttlen : 1,
- tx_eop : 1,
- rx_eop : 1;
- u_char rbuf_size : 5,
- rcvstop : 1,
- : 2;
-};
-
-#define I82593_MAX_MULTICAST_ADDRESSES 128 /* Hardware hashed filter */
-
-#endif /* _I82593_H */
diff --git a/ANDROID_3.4.5/include/linux/i8k.h b/ANDROID_3.4.5/include/linux/i8k.h
deleted file mode 100644
index 1c45ba50..00000000
--- a/ANDROID_3.4.5/include/linux/i8k.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * i8k.h -- Linux driver for accessing the SMM BIOS on Dell laptops
- *
- * Copyright (C) 2001 Massimo Dal Zotto <dz@debian.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, 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 _LINUX_I8K_H
-#define _LINUX_I8K_H
-
-#define I8K_PROC "/proc/i8k"
-#define I8K_PROC_FMT "1.0"
-
-#define I8K_BIOS_VERSION _IOR ('i', 0x80, int) /* broken: meant 4 bytes */
-#define I8K_MACHINE_ID _IOR ('i', 0x81, int) /* broken: meant 16 bytes */
-#define I8K_POWER_STATUS _IOR ('i', 0x82, size_t)
-#define I8K_FN_STATUS _IOR ('i', 0x83, size_t)
-#define I8K_GET_TEMP _IOR ('i', 0x84, size_t)
-#define I8K_GET_SPEED _IOWR('i', 0x85, size_t)
-#define I8K_GET_FAN _IOWR('i', 0x86, size_t)
-#define I8K_SET_FAN _IOWR('i', 0x87, size_t)
-
-#define I8K_FAN_LEFT 1
-#define I8K_FAN_RIGHT 0
-#define I8K_FAN_OFF 0
-#define I8K_FAN_LOW 1
-#define I8K_FAN_HIGH 2
-#define I8K_FAN_MAX I8K_FAN_HIGH
-
-#define I8K_VOL_UP 1
-#define I8K_VOL_DOWN 2
-#define I8K_VOL_MUTE 4
-
-#define I8K_AC 1
-#define I8K_BATTERY 0
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ibmtr.h b/ANDROID_3.4.5/include/linux/ibmtr.h
deleted file mode 100644
index 06695b74..00000000
--- a/ANDROID_3.4.5/include/linux/ibmtr.h
+++ /dev/null
@@ -1,373 +0,0 @@
-#ifndef __LINUX_IBMTR_H__
-#define __LINUX_IBMTR_H__
-
-/* Definitions for an IBM Token Ring card. */
-/* This file is distributed under the GNU GPL */
-
-/* ported to the Alpha architecture 02/20/96 (just used the HZ macro) */
-
-#define TR_RETRY_INTERVAL (30*HZ) /* 500 on PC = 5 s */
-#define TR_RST_TIME (msecs_to_jiffies(50)) /* 5 on PC = 50 ms */
-#define TR_BUSY_INTERVAL (msecs_to_jiffies(200)) /* 5 on PC = 200 ms */
-#define TR_SPIN_INTERVAL (3*HZ) /* 3 seconds before init timeout */
-
-#define TR_ISA 1
-#define TR_MCA 2
-#define TR_ISAPNP 3
-#define NOTOK 0
-
-#define IBMTR_SHARED_RAM_SIZE 0x10000
-#define IBMTR_IO_EXTENT 4
-#define IBMTR_MAX_ADAPTERS 4
-
-#define CHANNEL_ID 0X1F30
-#define AIP 0X1F00
-#define AIPADAPTYPE 0X1FA0
-#define AIPDATARATE 0X1FA2
-#define AIPEARLYTOKEN 0X1FA4
-#define AIPAVAILSHRAM 0X1FA6
-#define AIPSHRAMPAGE 0X1FA8
-#define AIP4MBDHB 0X1FAA
-#define AIP16MBDHB 0X1FAC
-#define AIPFID 0X1FBA
-
-#define ADAPTRESET 0x1 /* Control Adapter reset (add to base) */
-#define ADAPTRESETREL 0x2 /* Release Adapter from reset ( """) */
-#define ADAPTINTREL 0x3 /* Adapter interrupt release */
-
-#define GLOBAL_INT_ENABLE 0x02f0
-
-/* MMIO bits 0-4 select register */
-#define RRR_EVEN 0x00 /* Shared RAM relocation registers - even and odd */
-/* Used to set the starting address of shared RAM */
-/* Bits 1 through 7 of this register map to bits 13 through 19 of the shared
- RAM address.*/
-/* ie: 0x02 sets RAM address to ...ato! issy su wazzoo !! GODZILLA!!! */
-#define RRR_ODD 0x01
-/* Bits 2 and 3 of this register can be read to determine shared RAM size */
-/* 00 for 8k, 01 for 16k, 10 for 32k, 11 for 64k */
-#define WRBR_EVEN 0x02 /* Write region base registers - even and odd */
-#define WRBR_ODD 0x03
-#define WWOR_EVEN 0x04 /* Write window open registers - even and odd */
-#define WWOR_ODD 0x05
-#define WWCR_EVEN 0x06 /* Write window close registers - even and odd */
-#define WWCR_ODD 0x07
-
-/* Interrupt status registers - PC system - even and odd */
-#define ISRP_EVEN 0x08
-
-#define TCR_INT 0x10 /* Bit 4 - Timer interrupt. The TVR_EVEN timer has
- expired. */
-#define ERR_INT 0x08 /* Bit 3 - Error interrupt. The adapter has had an
- internal error. */
-#define ACCESS_INT 0x04 /* Bit 2 - Access interrupt. You have attempted to
- write to an invalid area of shared RAM
- or an invalid register within the MMIO. */
-/* In addition, the following bits within ISRP_EVEN can be turned on or off */
-/* by you to control the interrupt processing: */
-#define INT_ENABLE 0x40 /* Bit 6 - Interrupt enable. If 0, no interrupts will
- occur. If 1, interrupts will occur normally.
- Normally set to 1. */
-/* Bit 0 - Primary or alternate adapter. Set to zero if this adapter is the
- primary adapter, 1 if this adapter is the alternate adapter. */
-
-
-#define ISRP_ODD 0x09
-
-#define ADAP_CHK_INT 0x40 /* Bit 6 - Adapter check. the adapter has
- encountered a serious problem and has closed
- itself. Whoa. */
-#define SRB_RESP_INT 0x20 /* Bit 5 - SRB response. The adapter has accepted
- an SRB request and set the return code within
- the SRB. */
-#define ASB_FREE_INT 0x10 /* Bit 4 - ASB free. The adapter has read the ASB
- and this area can be safely reused. This interrupt
- is only used if your application has set the ASB
- free request bit in ISRA_ODD or if an error was
- detected in your response. */
-#define ARB_CMD_INT 0x08 /* Bit 3 - ARB command. The adapter has given you a
- command for action. The command is located in the
- ARB area of shared memory. */
-#define SSB_RESP_INT 0x04 /* Bit 2 - SSB response. The adapter has posted a
- response to your SRB (the response is located in
- the SSB area of shared memory). */
-/* Bit 1 - Bridge frame forward complete. */
-
-
-
-#define ISRA_EVEN 0x0A /*Interrupt status registers - adapter - even and odd */
-/* Bit 7 - Internal parity error (on adapter's internal bus) */
-/* Bit 6 - Timer interrupt pending */
-/* Bit 5 - Access interrupt (attempt by adapter to access illegal address) */
-/* Bit 4 - Adapter microcode problem (microcode dead-man timer expired) */
-/* Bit 3 - Adapter processor check status */
-/* Bit 2 - Reserved */
-/* Bit 1 - Adapter hardware interrupt mask (prevents internal interrupts) */
-/* Bit 0 - Adapter software interrupt mask (prevents internal software ints) */
-
-#define ISRA_ODD 0x0B
-#define CMD_IN_SRB 0x20 /* Bit 5 - Indicates that you have placed a new
- command in the SRB and are ready for the adapter to
- process the command. */
-#define RESP_IN_ASB 0x10 /* Bit 4 - Indicates that you have placed a response
- (an ASB) in the shared RAM which is available for
- the adapter's use. */
-/* Bit 3 - Indicates that you are ready to put an SRB in the shared RAM, but
- that a previous command is still pending. The adapter will then
- interrupt you when the previous command is completed */
-/* Bit 2 - Indicates that you are ready to put an ASB in the shared RAM, but
- that a previous ASB is still pending. The adapter will then interrupt
- you when the previous ASB is copied. */
-#define ARB_FREE 0x2
-#define SSB_FREE 0x1
-
-#define TCR_EVEN 0x0C /* Timer control registers - even and odd */
-#define TCR_ODD 0x0D
-#define TVR_EVEN 0x0E /* Timer value registers - even and odd */
-#define TVR_ODD 0x0F
-#define SRPR_EVEN 0x18 /* Shared RAM paging registers - even and odd */
-#define SRPR_ENABLE_PAGING 0xc0
-#define SRPR_ODD 0x19 /* Not used. */
-#define TOKREAD 0x60
-#define TOKOR 0x40
-#define TOKAND 0x20
-#define TOKWRITE 0x00
-
-/* MMIO bits 5-6 select operation */
-/* 00 is used to write to a register */
-/* 01 is used to bitwise AND a byte with a register */
-/* 10 is used to bitwise OR a byte with a register */
-/* 11 is used to read from a register */
-
-/* MMIO bits 7-8 select area of interest.. see below */
-/* 00 selects attachment control area. */
-/* 01 is reserved. */
-/* 10 selects adapter identification area A containing the adapter encoded
- address. */
-/* 11 selects the adapter identification area B containing test patterns. */
-
-#define PCCHANNELID 5049434F3631313039393020
-#define MCCHANNELID 4D4152533633583435313820
-
-#define ACA_OFFSET 0x1e00
-#define ACA_SET 0x40
-#define ACA_RESET 0x20
-#define ACA_RW 0x00
-
-#ifdef ENABLE_PAGING
-#define SET_PAGE(x) (writeb((x), ti->mmio + ACA_OFFSET+ ACA_RW + SRPR_EVEN))
-#else
-#define SET_PAGE(x)
-#endif
-
-/* do_tok_int possible values */
-#define FIRST_INT 1
-#define NOT_FIRST 2
-
-typedef enum { CLOSED, OPEN } open_state;
-//staic const char *printstate[] = { "CLOSED","OPEN"};
-
-struct tok_info {
- unsigned char irq;
- void __iomem *mmio;
- unsigned char hw_address[32];
- unsigned char adapter_type;
- unsigned char data_rate;
- unsigned char token_release;
- unsigned char avail_shared_ram;
- unsigned char shared_ram_paging;
- unsigned char turbo;
- unsigned short dhb_size4mb;
- unsigned short rbuf_len4;
- unsigned short rbuf_cnt4;
- unsigned short maxmtu4;
- unsigned short dhb_size16mb;
- unsigned short rbuf_len16;
- unsigned short rbuf_cnt16;
- unsigned short maxmtu16;
- /* Additions by David Morris */
- unsigned char do_tok_int;
- wait_queue_head_t wait_for_reset;
- unsigned char sram_base;
- /* Additions by Peter De Schrijver */
- unsigned char page_mask; /* mask to select RAM page to Map*/
- unsigned char mapped_ram_size; /* size of RAM page */
- __u32 sram_phys; /* Shared memory base address */
- void __iomem *sram_virt; /* Shared memory base address */
- void __iomem *init_srb; /* Initial System Request Block address */
- void __iomem *srb; /* System Request Block address */
- void __iomem *ssb; /* System Status Block address */
- void __iomem *arb; /* Adapter Request Block address */
- void __iomem *asb; /* Adapter Status Block address */
- __u8 init_srb_page;
- __u8 srb_page;
- __u8 ssb_page;
- __u8 arb_page;
- __u8 asb_page;
- unsigned short exsap_station_id;
- unsigned short global_int_enable;
- struct sk_buff *current_skb;
-
- unsigned char auto_speedsave;
- open_state open_status, sap_status;
- enum {MANUAL, AUTOMATIC} open_mode;
- enum {FAIL, RESTART, REOPEN} open_action;
- enum {NO, YES} open_failure;
- unsigned char readlog_pending;
- unsigned short adapter_int_enable; /* Adapter-specific int enable */
- struct timer_list tr_timer;
- unsigned char ring_speed;
- spinlock_t lock; /* SMP protection */
-};
-
-/* token ring adapter commands */
-#define DIR_INTERRUPT 0x00 /* struct srb_interrupt */
-#define DIR_MOD_OPEN_PARAMS 0x01
-#define DIR_OPEN_ADAPTER 0x03 /* struct dir_open_adapter */
-#define DIR_CLOSE_ADAPTER 0x04
-#define DIR_SET_GRP_ADDR 0x06
-#define DIR_SET_FUNC_ADDR 0x07 /* struct srb_set_funct_addr */
-#define DIR_READ_LOG 0x08 /* struct srb_read_log */
-#define DLC_OPEN_SAP 0x15 /* struct dlc_open_sap */
-#define DLC_CLOSE_SAP 0x16
-#define DATA_LOST 0x20 /* struct asb_rec */
-#define REC_DATA 0x81 /* struct arb_rec_req */
-#define XMIT_DATA_REQ 0x82 /* struct arb_xmit_req */
-#define DLC_STATUS 0x83 /* struct arb_dlc_status */
-#define RING_STAT_CHANGE 0x84 /* struct dlc_open_sap ??? */
-
-/* DIR_OPEN_ADAPTER options */
-#define OPEN_PASS_BCON_MAC 0x0100
-#define NUM_RCV_BUF 2
-#define RCV_BUF_LEN 1024
-#define DHB_LENGTH 2048
-#define NUM_DHB 2
-#define DLC_MAX_SAP 2
-#define DLC_MAX_STA 1
-
-/* DLC_OPEN_SAP options */
-#define MAX_I_FIELD 0x0088
-#define SAP_OPEN_IND_SAP 0x04
-#define SAP_OPEN_PRIORITY 0x20
-#define SAP_OPEN_STATION_CNT 0x1
-#define XMIT_DIR_FRAME 0x0A
-#define XMIT_UI_FRAME 0x0d
-#define XMIT_XID_CMD 0x0e
-#define XMIT_TEST_CMD 0x11
-
-/* srb close return code */
-#define SIGNAL_LOSS 0x8000
-#define HARD_ERROR 0x4000
-#define XMIT_BEACON 0x1000
-#define LOBE_FAULT 0x0800
-#define AUTO_REMOVAL 0x0400
-#define REMOVE_RECV 0x0100
-#define LOG_OVERFLOW 0x0080
-#define RING_RECOVER 0x0020
-
-struct srb_init_response {
- unsigned char command;
- unsigned char init_status;
- unsigned char init_status_2;
- unsigned char reserved[3];
- __u16 bring_up_code;
- __u16 encoded_address;
- __u16 level_address;
- __u16 adapter_address;
- __u16 parms_address;
- __u16 mac_address;
-};
-
-struct dir_open_adapter {
- unsigned char command;
- char reserved[7];
- __u16 open_options;
- unsigned char node_address[6];
- unsigned char group_address[4];
- unsigned char funct_address[4];
- __u16 num_rcv_buf;
- __u16 rcv_buf_len;
- __u16 dhb_length;
- unsigned char num_dhb;
- char reserved2;
- unsigned char dlc_max_sap;
- unsigned char dlc_max_sta;
- unsigned char dlc_max_gsap;
- unsigned char dlc_max_gmem;
- unsigned char dlc_t1_tick_1;
- unsigned char dlc_t2_tick_1;
- unsigned char dlc_ti_tick_1;
- unsigned char dlc_t1_tick_2;
- unsigned char dlc_t2_tick_2;
- unsigned char dlc_ti_tick_2;
- unsigned char product_id[18];
-};
-
-struct dlc_open_sap {
- unsigned char command;
- unsigned char reserved1;
- unsigned char ret_code;
- unsigned char reserved2;
- __u16 station_id;
- unsigned char timer_t1;
- unsigned char timer_t2;
- unsigned char timer_ti;
- unsigned char maxout;
- unsigned char maxin;
- unsigned char maxout_incr;
- unsigned char max_retry_count;
- unsigned char gsap_max_mem;
- __u16 max_i_field;
- unsigned char sap_value;
- unsigned char sap_options;
- unsigned char station_count;
- unsigned char sap_gsap_mem;
- unsigned char gsap[0];
-};
-
-struct srb_xmit {
- unsigned char command;
- unsigned char cmd_corr;
- unsigned char ret_code;
- unsigned char reserved1;
- __u16 station_id;
-};
-
-struct arb_rec_req {
- unsigned char command;
- unsigned char reserved1[3];
- __u16 station_id;
- __u16 rec_buf_addr;
- unsigned char lan_hdr_len;
- unsigned char dlc_hdr_len;
- __u16 frame_len;
- unsigned char msg_type;
-};
-
-struct asb_rec {
- unsigned char command;
- unsigned char reserved1;
- unsigned char ret_code;
- unsigned char reserved2;
- __u16 station_id;
- __u16 rec_buf_addr;
-};
-
-struct rec_buf {
- unsigned char reserved1[2];
- __u16 buf_ptr;
- unsigned char reserved2;
- unsigned char receive_fs;
- __u16 buf_len;
- unsigned char data[0];
-};
-
-struct srb_set_funct_addr {
- unsigned char command;
- unsigned char reserved1;
- unsigned char ret_code;
- unsigned char reserved2[3];
- unsigned char funct_address[4];
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/icmp.h b/ANDROID_3.4.5/include/linux/icmp.h
deleted file mode 100644
index 474f2a51..00000000
--- a/ANDROID_3.4.5/include/linux/icmp.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Definitions for the ICMP protocol.
- *
- * Version: @(#)icmp.h 1.0.3 04/28/93
- *
- * Author: Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.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.
- */
-#ifndef _LINUX_ICMP_H
-#define _LINUX_ICMP_H
-
-#include <linux/types.h>
-
-#define ICMP_ECHOREPLY 0 /* Echo Reply */
-#define ICMP_DEST_UNREACH 3 /* Destination Unreachable */
-#define ICMP_SOURCE_QUENCH 4 /* Source Quench */
-#define ICMP_REDIRECT 5 /* Redirect (change route) */
-#define ICMP_ECHO 8 /* Echo Request */
-#define ICMP_TIME_EXCEEDED 11 /* Time Exceeded */
-#define ICMP_PARAMETERPROB 12 /* Parameter Problem */
-#define ICMP_TIMESTAMP 13 /* Timestamp Request */
-#define ICMP_TIMESTAMPREPLY 14 /* Timestamp Reply */
-#define ICMP_INFO_REQUEST 15 /* Information Request */
-#define ICMP_INFO_REPLY 16 /* Information Reply */
-#define ICMP_ADDRESS 17 /* Address Mask Request */
-#define ICMP_ADDRESSREPLY 18 /* Address Mask Reply */
-#define NR_ICMP_TYPES 18
-
-
-/* Codes for UNREACH. */
-#define ICMP_NET_UNREACH 0 /* Network Unreachable */
-#define ICMP_HOST_UNREACH 1 /* Host Unreachable */
-#define ICMP_PROT_UNREACH 2 /* Protocol Unreachable */
-#define ICMP_PORT_UNREACH 3 /* Port Unreachable */
-#define ICMP_FRAG_NEEDED 4 /* Fragmentation Needed/DF set */
-#define ICMP_SR_FAILED 5 /* Source Route failed */
-#define ICMP_NET_UNKNOWN 6
-#define ICMP_HOST_UNKNOWN 7
-#define ICMP_HOST_ISOLATED 8
-#define ICMP_NET_ANO 9
-#define ICMP_HOST_ANO 10
-#define ICMP_NET_UNR_TOS 11
-#define ICMP_HOST_UNR_TOS 12
-#define ICMP_PKT_FILTERED 13 /* Packet filtered */
-#define ICMP_PREC_VIOLATION 14 /* Precedence violation */
-#define ICMP_PREC_CUTOFF 15 /* Precedence cut off */
-#define NR_ICMP_UNREACH 15 /* instead of hardcoding immediate value */
-
-/* Codes for REDIRECT. */
-#define ICMP_REDIR_NET 0 /* Redirect Net */
-#define ICMP_REDIR_HOST 1 /* Redirect Host */
-#define ICMP_REDIR_NETTOS 2 /* Redirect Net for TOS */
-#define ICMP_REDIR_HOSTTOS 3 /* Redirect Host for TOS */
-
-/* Codes for TIME_EXCEEDED. */
-#define ICMP_EXC_TTL 0 /* TTL count exceeded */
-#define ICMP_EXC_FRAGTIME 1 /* Fragment Reass time exceeded */
-
-
-struct icmphdr {
- __u8 type;
- __u8 code;
- __sum16 checksum;
- union {
- struct {
- __be16 id;
- __be16 sequence;
- } echo;
- __be32 gateway;
- struct {
- __be16 __unused;
- __be16 mtu;
- } frag;
- } un;
-};
-
-#ifdef __KERNEL__
-#include <linux/skbuff.h>
-
-static inline struct icmphdr *icmp_hdr(const struct sk_buff *skb)
-{
- return (struct icmphdr *)skb_transport_header(skb);
-}
-#endif
-
-/*
- * constants for (set|get)sockopt
- */
-
-#define ICMP_FILTER 1
-
-struct icmp_filter {
- __u32 data;
-};
-
-
-#endif /* _LINUX_ICMP_H */
diff --git a/ANDROID_3.4.5/include/linux/icmpv6.h b/ANDROID_3.4.5/include/linux/icmpv6.h
deleted file mode 100644
index ba45e6bc..00000000
--- a/ANDROID_3.4.5/include/linux/icmpv6.h
+++ /dev/null
@@ -1,196 +0,0 @@
-#ifndef _LINUX_ICMPV6_H
-#define _LINUX_ICMPV6_H
-
-#include <linux/types.h>
-#include <asm/byteorder.h>
-
-struct icmp6hdr {
-
- __u8 icmp6_type;
- __u8 icmp6_code;
- __sum16 icmp6_cksum;
-
-
- union {
- __be32 un_data32[1];
- __be16 un_data16[2];
- __u8 un_data8[4];
-
- struct icmpv6_echo {
- __be16 identifier;
- __be16 sequence;
- } u_echo;
-
- struct icmpv6_nd_advt {
-#if defined(__LITTLE_ENDIAN_BITFIELD)
- __u32 reserved:5,
- override:1,
- solicited:1,
- router:1,
- reserved2:24;
-#elif defined(__BIG_ENDIAN_BITFIELD)
- __u32 router:1,
- solicited:1,
- override:1,
- reserved:29;
-#else
-#error "Please fix <asm/byteorder.h>"
-#endif
- } u_nd_advt;
-
- struct icmpv6_nd_ra {
- __u8 hop_limit;
-#if defined(__LITTLE_ENDIAN_BITFIELD)
- __u8 reserved:3,
- router_pref:2,
- home_agent:1,
- other:1,
- managed:1;
-
-#elif defined(__BIG_ENDIAN_BITFIELD)
- __u8 managed:1,
- other:1,
- home_agent:1,
- router_pref:2,
- reserved:3;
-#else
-#error "Please fix <asm/byteorder.h>"
-#endif
- __be16 rt_lifetime;
- } u_nd_ra;
-
- } icmp6_dataun;
-
-#define icmp6_identifier icmp6_dataun.u_echo.identifier
-#define icmp6_sequence icmp6_dataun.u_echo.sequence
-#define icmp6_pointer icmp6_dataun.un_data32[0]
-#define icmp6_mtu icmp6_dataun.un_data32[0]
-#define icmp6_unused icmp6_dataun.un_data32[0]
-#define icmp6_maxdelay icmp6_dataun.un_data16[0]
-#define icmp6_router icmp6_dataun.u_nd_advt.router
-#define icmp6_solicited icmp6_dataun.u_nd_advt.solicited
-#define icmp6_override icmp6_dataun.u_nd_advt.override
-#define icmp6_ndiscreserved icmp6_dataun.u_nd_advt.reserved
-#define icmp6_hop_limit icmp6_dataun.u_nd_ra.hop_limit
-#define icmp6_addrconf_managed icmp6_dataun.u_nd_ra.managed
-#define icmp6_addrconf_other icmp6_dataun.u_nd_ra.other
-#define icmp6_rt_lifetime icmp6_dataun.u_nd_ra.rt_lifetime
-#define icmp6_router_pref icmp6_dataun.u_nd_ra.router_pref
-};
-
-#ifdef __KERNEL__
-#include <linux/skbuff.h>
-
-static inline struct icmp6hdr *icmp6_hdr(const struct sk_buff *skb)
-{
- return (struct icmp6hdr *)skb_transport_header(skb);
-}
-#endif
-
-#define ICMPV6_ROUTER_PREF_LOW 0x3
-#define ICMPV6_ROUTER_PREF_MEDIUM 0x0
-#define ICMPV6_ROUTER_PREF_HIGH 0x1
-#define ICMPV6_ROUTER_PREF_INVALID 0x2
-
-#define ICMPV6_DEST_UNREACH 1
-#define ICMPV6_PKT_TOOBIG 2
-#define ICMPV6_TIME_EXCEED 3
-#define ICMPV6_PARAMPROB 4
-
-#define ICMPV6_INFOMSG_MASK 0x80
-
-#define ICMPV6_ECHO_REQUEST 128
-#define ICMPV6_ECHO_REPLY 129
-#define ICMPV6_MGM_QUERY 130
-#define ICMPV6_MGM_REPORT 131
-#define ICMPV6_MGM_REDUCTION 132
-
-#define ICMPV6_NI_QUERY 139
-#define ICMPV6_NI_REPLY 140
-
-#define ICMPV6_MLD2_REPORT 143
-
-#define ICMPV6_DHAAD_REQUEST 144
-#define ICMPV6_DHAAD_REPLY 145
-#define ICMPV6_MOBILE_PREFIX_SOL 146
-#define ICMPV6_MOBILE_PREFIX_ADV 147
-
-/*
- * Codes for Destination Unreachable
- */
-#define ICMPV6_NOROUTE 0
-#define ICMPV6_ADM_PROHIBITED 1
-#define ICMPV6_NOT_NEIGHBOUR 2
-#define ICMPV6_ADDR_UNREACH 3
-#define ICMPV6_PORT_UNREACH 4
-
-/*
- * Codes for Time Exceeded
- */
-#define ICMPV6_EXC_HOPLIMIT 0
-#define ICMPV6_EXC_FRAGTIME 1
-
-/*
- * Codes for Parameter Problem
- */
-#define ICMPV6_HDR_FIELD 0
-#define ICMPV6_UNK_NEXTHDR 1
-#define ICMPV6_UNK_OPTION 2
-
-/*
- * constants for (set|get)sockopt
- */
-
-#define ICMPV6_FILTER 1
-
-/*
- * ICMPV6 filter
- */
-
-#define ICMPV6_FILTER_BLOCK 1
-#define ICMPV6_FILTER_PASS 2
-#define ICMPV6_FILTER_BLOCKOTHERS 3
-#define ICMPV6_FILTER_PASSONLY 4
-
-struct icmp6_filter {
- __u32 data[8];
-};
-
-/*
- * Definitions for MLDv2
- */
-#define MLD2_MODE_IS_INCLUDE 1
-#define MLD2_MODE_IS_EXCLUDE 2
-#define MLD2_CHANGE_TO_INCLUDE 3
-#define MLD2_CHANGE_TO_EXCLUDE 4
-#define MLD2_ALLOW_NEW_SOURCES 5
-#define MLD2_BLOCK_OLD_SOURCES 6
-
-#define MLD2_ALL_MCR_INIT { { { 0xff,0x02,0,0,0,0,0,0,0,0,0,0,0,0,0,0x16 } } }
-
-#ifdef __KERNEL__
-
-#include <linux/netdevice.h>
-
-extern void icmpv6_send(struct sk_buff *skb,
- u8 type, u8 code,
- __u32 info);
-
-extern int icmpv6_init(void);
-extern int icmpv6_err_convert(u8 type, u8 code,
- int *err);
-extern void icmpv6_cleanup(void);
-extern void icmpv6_param_prob(struct sk_buff *skb,
- u8 code, int pos);
-
-struct flowi6;
-struct in6_addr;
-extern void icmpv6_flow_init(struct sock *sk,
- struct flowi6 *fl6,
- u8 type,
- const struct in6_addr *saddr,
- const struct in6_addr *daddr,
- int oif);
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ide.h b/ANDROID_3.4.5/include/linux/ide.h
deleted file mode 100644
index b1797491..00000000
--- a/ANDROID_3.4.5/include/linux/ide.h
+++ /dev/null
@@ -1,1558 +0,0 @@
-#ifndef _IDE_H
-#define _IDE_H
-/*
- * linux/include/linux/ide.h
- *
- * Copyright (C) 1994-2002 Linus Torvalds & authors
- */
-
-#include <linux/init.h>
-#include <linux/ioport.h>
-#include <linux/ata.h>
-#include <linux/blkdev.h>
-#include <linux/proc_fs.h>
-#include <linux/interrupt.h>
-#include <linux/bitops.h>
-#include <linux/bio.h>
-#include <linux/pci.h>
-#include <linux/completion.h>
-#include <linux/pm.h>
-#include <linux/mutex.h>
-#ifdef CONFIG_BLK_DEV_IDEACPI
-#include <acpi/acpi.h>
-#endif
-#include <asm/byteorder.h>
-#include <asm/io.h>
-
-/* for request_sense */
-#include <linux/cdrom.h>
-
-#if defined(CONFIG_CRIS) || defined(CONFIG_FRV) || defined(CONFIG_MN10300)
-# define SUPPORT_VLB_SYNC 0
-#else
-# define SUPPORT_VLB_SYNC 1
-#endif
-
-/*
- * Probably not wise to fiddle with these
- */
-#define IDE_DEFAULT_MAX_FAILURES 1
-#define ERROR_MAX 8 /* Max read/write errors per sector */
-#define ERROR_RESET 3 /* Reset controller every 4th retry */
-#define ERROR_RECAL 1 /* Recalibrate every 2nd retry */
-
-struct device;
-
-/* Error codes returned in rq->errors to the higher part of the driver. */
-enum {
- IDE_DRV_ERROR_GENERAL = 101,
- IDE_DRV_ERROR_FILEMARK = 102,
- IDE_DRV_ERROR_EOD = 103,
-};
-
-/*
- * Definitions for accessing IDE controller registers
- */
-#define IDE_NR_PORTS (10)
-
-struct ide_io_ports {
- unsigned long data_addr;
-
- union {
- unsigned long error_addr; /* read: error */
- unsigned long feature_addr; /* write: feature */
- };
-
- unsigned long nsect_addr;
- unsigned long lbal_addr;
- unsigned long lbam_addr;
- unsigned long lbah_addr;
-
- unsigned long device_addr;
-
- union {
- unsigned long status_addr; /*  read: status  */
- unsigned long command_addr; /* write: command */
- };
-
- unsigned long ctl_addr;
-
- unsigned long irq_addr;
-};
-
-#define OK_STAT(stat,good,bad) (((stat)&((good)|(bad)))==(good))
-
-#define BAD_R_STAT (ATA_BUSY | ATA_ERR)
-#define BAD_W_STAT (BAD_R_STAT | ATA_DF)
-#define BAD_STAT (BAD_R_STAT | ATA_DRQ)
-#define DRIVE_READY (ATA_DRDY | ATA_DSC)
-
-#define BAD_CRC (ATA_ABORTED | ATA_ICRC)
-
-#define SATA_NR_PORTS (3) /* 16 possible ?? */
-
-#define SATA_STATUS_OFFSET (0)
-#define SATA_ERROR_OFFSET (1)
-#define SATA_CONTROL_OFFSET (2)
-
-/*
- * Our Physical Region Descriptor (PRD) table should be large enough
- * to handle the biggest I/O request we are likely to see. Since requests
- * can have no more than 256 sectors, and since the typical blocksize is
- * two or more sectors, we could get by with a limit of 128 entries here for
- * the usual worst case. Most requests seem to include some contiguous blocks,
- * further reducing the number of table entries required.
- *
- * The driver reverts to PIO mode for individual requests that exceed
- * this limit (possible with 512 byte blocksizes, eg. MSDOS f/s), so handling
- * 100% of all crazy scenarios here is not necessary.
- *
- * As it turns out though, we must allocate a full 4KB page for this,
- * so the two PRD tables (ide0 & ide1) will each get half of that,
- * allowing each to have about 256 entries (8 bytes each) from this.
- */
-#define PRD_BYTES 8
-#define PRD_ENTRIES 256
-
-/*
- * Some more useful definitions
- */
-#define PARTN_BITS 6 /* number of minor dev bits for partitions */
-#define MAX_DRIVES 2 /* per interface; 2 assumed by lots of code */
-#define SECTOR_SIZE 512
-
-/*
- * Timeouts for various operations:
- */
-enum {
- /* spec allows up to 20ms, but CF cards and SSD drives need more */
- WAIT_DRQ = 1 * HZ, /* 1s */
- /* some laptops are very slow */
- WAIT_READY = 5 * HZ, /* 5s */
- /* should be less than 3ms (?), if all ATAPI CD is closed at boot */
- WAIT_PIDENTIFY = 10 * HZ, /* 10s */
- /* worst case when spinning up */
- WAIT_WORSTCASE = 30 * HZ, /* 30s */
- /* maximum wait for an IRQ to happen */
- WAIT_CMD = 10 * HZ, /* 10s */
- /* Some drives require a longer IRQ timeout. */
- WAIT_FLOPPY_CMD = 50 * HZ, /* 50s */
- /*
- * Some drives (for example, Seagate STT3401A Travan) require a very
- * long timeout, because they don't return an interrupt or clear their
- * BSY bit until after the command completes (even retension commands).
- */
- WAIT_TAPE_CMD = 900 * HZ, /* 900s */
- /* minimum sleep time */
- WAIT_MIN_SLEEP = HZ / 50, /* 20ms */
-};
-
-/*
- * Op codes for special requests to be handled by ide_special_rq().
- * Values should be in the range of 0x20 to 0x3f.
- */
-#define REQ_DRIVE_RESET 0x20
-#define REQ_DEVSET_EXEC 0x21
-#define REQ_PARK_HEADS 0x22
-#define REQ_UNPARK_HEADS 0x23
-
-/*
- * hwif_chipset_t is used to keep track of the specific hardware
- * chipset used by each IDE interface, if known.
- */
-enum { ide_unknown, ide_generic, ide_pci,
- ide_cmd640, ide_dtc2278, ide_ali14xx,
- ide_qd65xx, ide_umc8672, ide_ht6560b,
- ide_4drives, ide_pmac, ide_acorn,
- ide_au1xxx, ide_palm3710
-};
-
-typedef u8 hwif_chipset_t;
-
-/*
- * Structure to hold all information about the location of this port
- */
-struct ide_hw {
- union {
- struct ide_io_ports io_ports;
- unsigned long io_ports_array[IDE_NR_PORTS];
- };
-
- int irq; /* our irq number */
- struct device *dev, *parent;
- unsigned long config;
-};
-
-static inline void ide_std_init_ports(struct ide_hw *hw,
- unsigned long io_addr,
- unsigned long ctl_addr)
-{
- unsigned int i;
-
- for (i = 0; i <= 7; i++)
- hw->io_ports_array[i] = io_addr++;
-
- hw->io_ports.ctl_addr = ctl_addr;
-}
-
-#define MAX_HWIFS 10
-
-/*
- * Now for the data we need to maintain per-drive: ide_drive_t
- */
-
-#define ide_scsi 0x21
-#define ide_disk 0x20
-#define ide_optical 0x7
-#define ide_cdrom 0x5
-#define ide_tape 0x1
-#define ide_floppy 0x0
-
-/*
- * Special Driver Flags
- */
-enum {
- IDE_SFLAG_SET_GEOMETRY = (1 << 0),
- IDE_SFLAG_RECALIBRATE = (1 << 1),
- IDE_SFLAG_SET_MULTMODE = (1 << 2),
-};
-
-/*
- * Status returned from various ide_ functions
- */
-typedef enum {
- ide_stopped, /* no drive operation was started */
- ide_started, /* a drive operation was started, handler was set */
-} ide_startstop_t;
-
-enum {
- IDE_VALID_ERROR = (1 << 1),
- IDE_VALID_FEATURE = IDE_VALID_ERROR,
- IDE_VALID_NSECT = (1 << 2),
- IDE_VALID_LBAL = (1 << 3),
- IDE_VALID_LBAM = (1 << 4),
- IDE_VALID_LBAH = (1 << 5),
- IDE_VALID_DEVICE = (1 << 6),
- IDE_VALID_LBA = IDE_VALID_LBAL |
- IDE_VALID_LBAM |
- IDE_VALID_LBAH,
- IDE_VALID_OUT_TF = IDE_VALID_FEATURE |
- IDE_VALID_NSECT |
- IDE_VALID_LBA,
- IDE_VALID_IN_TF = IDE_VALID_NSECT |
- IDE_VALID_LBA,
- IDE_VALID_OUT_HOB = IDE_VALID_OUT_TF,
- IDE_VALID_IN_HOB = IDE_VALID_ERROR |
- IDE_VALID_NSECT |
- IDE_VALID_LBA,
-};
-
-enum {
- IDE_TFLAG_LBA48 = (1 << 0),
- IDE_TFLAG_WRITE = (1 << 1),
- IDE_TFLAG_CUSTOM_HANDLER = (1 << 2),
- IDE_TFLAG_DMA_PIO_FALLBACK = (1 << 3),
- /* force 16-bit I/O operations */
- IDE_TFLAG_IO_16BIT = (1 << 4),
- /* struct ide_cmd was allocated using kmalloc() */
- IDE_TFLAG_DYN = (1 << 5),
- IDE_TFLAG_FS = (1 << 6),
- IDE_TFLAG_MULTI_PIO = (1 << 7),
- IDE_TFLAG_SET_XFER = (1 << 8),
-};
-
-enum {
- IDE_FTFLAG_FLAGGED = (1 << 0),
- IDE_FTFLAG_SET_IN_FLAGS = (1 << 1),
- IDE_FTFLAG_OUT_DATA = (1 << 2),
- IDE_FTFLAG_IN_DATA = (1 << 3),
-};
-
-struct ide_taskfile {
- u8 data; /* 0: data byte (for TASKFILE ioctl) */
- union { /* 1: */
- u8 error; /* read: error */
- u8 feature; /* write: feature */
- };
- u8 nsect; /* 2: number of sectors */
- u8 lbal; /* 3: LBA low */
- u8 lbam; /* 4: LBA mid */
- u8 lbah; /* 5: LBA high */
- u8 device; /* 6: device select */
- union { /* 7: */
- u8 status; /* read: status */
- u8 command; /* write: command */
- };
-};
-
-struct ide_cmd {
- struct ide_taskfile tf;
- struct ide_taskfile hob;
- struct {
- struct {
- u8 tf;
- u8 hob;
- } out, in;
- } valid;
-
- u16 tf_flags;
- u8 ftf_flags; /* for TASKFILE ioctl */
- int protocol;
-
- int sg_nents; /* number of sg entries */
- int orig_sg_nents;
- int sg_dma_direction; /* DMA transfer direction */
-
- unsigned int nbytes;
- unsigned int nleft;
- unsigned int last_xfer_len;
-
- struct scatterlist *cursg;
- unsigned int cursg_ofs;
-
- struct request *rq; /* copy of request */
-};
-
-/* ATAPI packet command flags */
-enum {
- /* set when an error is considered normal - no retry (ide-tape) */
- PC_FLAG_ABORT = (1 << 0),
- PC_FLAG_SUPPRESS_ERROR = (1 << 1),
- PC_FLAG_WAIT_FOR_DSC = (1 << 2),
- PC_FLAG_DMA_OK = (1 << 3),
- PC_FLAG_DMA_IN_PROGRESS = (1 << 4),
- PC_FLAG_DMA_ERROR = (1 << 5),
- PC_FLAG_WRITING = (1 << 6),
-};
-
-#define ATAPI_WAIT_PC (60 * HZ)
-
-struct ide_atapi_pc {
- /* actual packet bytes */
- u8 c[12];
- /* incremented on each retry */
- int retries;
- int error;
-
- /* bytes to transfer */
- int req_xfer;
-
- /* the corresponding request */
- struct request *rq;
-
- unsigned long flags;
-
- /*
- * those are more or less driver-specific and some of them are subject
- * to change/removal later.
- */
- unsigned long timeout;
-};
-
-struct ide_devset;
-struct ide_driver;
-
-#ifdef CONFIG_BLK_DEV_IDEACPI
-struct ide_acpi_drive_link;
-struct ide_acpi_hwif_link;
-#endif
-
-struct ide_drive_s;
-
-struct ide_disk_ops {
- int (*check)(struct ide_drive_s *, const char *);
- int (*get_capacity)(struct ide_drive_s *);
- void (*unlock_native_capacity)(struct ide_drive_s *);
- void (*setup)(struct ide_drive_s *);
- void (*flush)(struct ide_drive_s *);
- int (*init_media)(struct ide_drive_s *, struct gendisk *);
- int (*set_doorlock)(struct ide_drive_s *, struct gendisk *,
- int);
- ide_startstop_t (*do_request)(struct ide_drive_s *, struct request *,
- sector_t);
- int (*ioctl)(struct ide_drive_s *, struct block_device *,
- fmode_t, unsigned int, unsigned long);
-};
-
-/* ATAPI device flags */
-enum {
- IDE_AFLAG_DRQ_INTERRUPT = (1 << 0),
-
- /* ide-cd */
- /* Drive cannot eject the disc. */
- IDE_AFLAG_NO_EJECT = (1 << 1),
- /* Drive is a pre ATAPI 1.2 drive. */
- IDE_AFLAG_PRE_ATAPI12 = (1 << 2),
- /* TOC addresses are in BCD. */
- IDE_AFLAG_TOCADDR_AS_BCD = (1 << 3),
- /* TOC track numbers are in BCD. */
- IDE_AFLAG_TOCTRACKS_AS_BCD = (1 << 4),
- /* Saved TOC information is current. */
- IDE_AFLAG_TOC_VALID = (1 << 6),
- /* We think that the drive door is locked. */
- IDE_AFLAG_DOOR_LOCKED = (1 << 7),
- /* SET_CD_SPEED command is unsupported. */
- IDE_AFLAG_NO_SPEED_SELECT = (1 << 8),
- IDE_AFLAG_VERTOS_300_SSD = (1 << 9),
- IDE_AFLAG_VERTOS_600_ESD = (1 << 10),
- IDE_AFLAG_SANYO_3CD = (1 << 11),
- IDE_AFLAG_FULL_CAPS_PAGE = (1 << 12),
- IDE_AFLAG_PLAY_AUDIO_OK = (1 << 13),
- IDE_AFLAG_LE_SPEED_FIELDS = (1 << 14),
-
- /* ide-floppy */
- /* Avoid commands not supported in Clik drive */
- IDE_AFLAG_CLIK_DRIVE = (1 << 15),
- /* Requires BH algorithm for packets */
- IDE_AFLAG_ZIP_DRIVE = (1 << 16),
- /* Supports format progress report */
- IDE_AFLAG_SRFP = (1 << 17),
-
- /* ide-tape */
- IDE_AFLAG_IGNORE_DSC = (1 << 18),
- /* 0 When the tape position is unknown */
- IDE_AFLAG_ADDRESS_VALID = (1 << 19),
- /* Device already opened */
- IDE_AFLAG_BUSY = (1 << 20),
- /* Attempt to auto-detect the current user block size */
- IDE_AFLAG_DETECT_BS = (1 << 21),
- /* Currently on a filemark */
- IDE_AFLAG_FILEMARK = (1 << 22),
- /* 0 = no tape is loaded, so we don't rewind after ejecting */
- IDE_AFLAG_MEDIUM_PRESENT = (1 << 23),
-
- IDE_AFLAG_NO_AUTOCLOSE = (1 << 24),
-};
-
-/* device flags */
-enum {
- /* restore settings after device reset */
- IDE_DFLAG_KEEP_SETTINGS = (1 << 0),
- /* device is using DMA for read/write */
- IDE_DFLAG_USING_DMA = (1 << 1),
- /* okay to unmask other IRQs */
- IDE_DFLAG_UNMASK = (1 << 2),
- /* don't attempt flushes */
- IDE_DFLAG_NOFLUSH = (1 << 3),
- /* DSC overlap */
- IDE_DFLAG_DSC_OVERLAP = (1 << 4),
- /* give potential excess bandwidth */
- IDE_DFLAG_NICE1 = (1 << 5),
- /* device is physically present */
- IDE_DFLAG_PRESENT = (1 << 6),
- /* disable Host Protected Area */
- IDE_DFLAG_NOHPA = (1 << 7),
- /* id read from device (synthetic if not set) */
- IDE_DFLAG_ID_READ = (1 << 8),
- IDE_DFLAG_NOPROBE = (1 << 9),
- /* need to do check_media_change() */
- IDE_DFLAG_REMOVABLE = (1 << 10),
- /* needed for removable devices */
- IDE_DFLAG_ATTACH = (1 << 11),
- IDE_DFLAG_FORCED_GEOM = (1 << 12),
- /* disallow setting unmask bit */
- IDE_DFLAG_NO_UNMASK = (1 << 13),
- /* disallow enabling 32-bit I/O */
- IDE_DFLAG_NO_IO_32BIT = (1 << 14),
- /* for removable only: door lock/unlock works */
- IDE_DFLAG_DOORLOCKING = (1 << 15),
- /* disallow DMA */
- IDE_DFLAG_NODMA = (1 << 16),
- /* powermanagement told us not to do anything, so sleep nicely */
- IDE_DFLAG_BLOCKED = (1 << 17),
- /* sleeping & sleep field valid */
- IDE_DFLAG_SLEEPING = (1 << 18),
- IDE_DFLAG_POST_RESET = (1 << 19),
- IDE_DFLAG_UDMA33_WARNED = (1 << 20),
- IDE_DFLAG_LBA48 = (1 << 21),
- /* status of write cache */
- IDE_DFLAG_WCACHE = (1 << 22),
- /* used for ignoring ATA_DF */
- IDE_DFLAG_NOWERR = (1 << 23),
- /* retrying in PIO */
- IDE_DFLAG_DMA_PIO_RETRY = (1 << 24),
- IDE_DFLAG_LBA = (1 << 25),
- /* don't unload heads */
- IDE_DFLAG_NO_UNLOAD = (1 << 26),
- /* heads unloaded, please don't reset port */
- IDE_DFLAG_PARKED = (1 << 27),
- IDE_DFLAG_MEDIA_CHANGED = (1 << 28),
- /* write protect */
- IDE_DFLAG_WP = (1 << 29),
- IDE_DFLAG_FORMAT_IN_PROGRESS = (1 << 30),
- IDE_DFLAG_NIEN_QUIRK = (1 << 31),
-};
-
-struct ide_drive_s {
- char name[4]; /* drive name, such as "hda" */
- char driver_req[10]; /* requests specific driver */
-
- struct request_queue *queue; /* request queue */
-
- struct request *rq; /* current request */
- void *driver_data; /* extra driver data */
- u16 *id; /* identification info */
-#ifdef CONFIG_IDE_PROC_FS
- struct proc_dir_entry *proc; /* /proc/ide/ directory entry */
- const struct ide_proc_devset *settings; /* /proc/ide/ drive settings */
-#endif
- struct hwif_s *hwif; /* actually (ide_hwif_t *) */
-
- const struct ide_disk_ops *disk_ops;
-
- unsigned long dev_flags;
-
- unsigned long sleep; /* sleep until this time */
- unsigned long timeout; /* max time to wait for irq */
-
- u8 special_flags; /* special action flags */
-
- u8 select; /* basic drive/head select reg value */
- u8 retry_pio; /* retrying dma capable host in pio */
- u8 waiting_for_dma; /* dma currently in progress */
- u8 dma; /* atapi dma flag */
-
- u8 init_speed; /* transfer rate set at boot */
- u8 current_speed; /* current transfer rate set */
- u8 desired_speed; /* desired transfer rate set */
- u8 pio_mode; /* for ->set_pio_mode _only_ */
- u8 dma_mode; /* for ->set_dma_mode _only_ */
- u8 dn; /* now wide spread use */
- u8 acoustic; /* acoustic management */
- u8 media; /* disk, cdrom, tape, floppy, ... */
- u8 ready_stat; /* min status value for drive ready */
- u8 mult_count; /* current multiple sector setting */
- u8 mult_req; /* requested multiple sector setting */
- u8 io_32bit; /* 0=16-bit, 1=32-bit, 2/3=32bit+sync */
- u8 bad_wstat; /* used for ignoring ATA_DF */
- u8 head; /* "real" number of heads */
- u8 sect; /* "real" sectors per track */
- u8 bios_head; /* BIOS/fdisk/LILO number of heads */
- u8 bios_sect; /* BIOS/fdisk/LILO sectors per track */
-
- /* delay this long before sending packet command */
- u8 pc_delay;
-
- unsigned int bios_cyl; /* BIOS/fdisk/LILO number of cyls */
- unsigned int cyl; /* "real" number of cyls */
- void *drive_data; /* used by set_pio_mode/dev_select() */
- unsigned int failures; /* current failure count */
- unsigned int max_failures; /* maximum allowed failure count */
- u64 probed_capacity;/* initial/native media capacity */
- u64 capacity64; /* total number of sectors */
-
- int lun; /* logical unit */
- int crc_count; /* crc counter to reduce drive speed */
-
- unsigned long debug_mask; /* debugging levels switch */
-
-#ifdef CONFIG_BLK_DEV_IDEACPI
- struct ide_acpi_drive_link *acpidata;
-#endif
- struct list_head list;
- struct device gendev;
- struct completion gendev_rel_comp; /* to deal with device release() */
-
- /* current packet command */
- struct ide_atapi_pc *pc;
-
- /* last failed packet command */
- struct ide_atapi_pc *failed_pc;
-
- /* callback for packet commands */
- int (*pc_callback)(struct ide_drive_s *, int);
-
- ide_startstop_t (*irq_handler)(struct ide_drive_s *);
-
- unsigned long atapi_flags;
-
- struct ide_atapi_pc request_sense_pc;
-
- /* current sense rq and buffer */
- bool sense_rq_armed;
- struct request sense_rq;
- struct request_sense sense_data;
-};
-
-typedef struct ide_drive_s ide_drive_t;
-
-#define to_ide_device(dev) container_of(dev, ide_drive_t, gendev)
-
-#define to_ide_drv(obj, cont_type) \
- container_of(obj, struct cont_type, dev)
-
-#define ide_drv_g(disk, cont_type) \
- container_of((disk)->private_data, struct cont_type, driver)
-
-struct ide_port_info;
-
-struct ide_tp_ops {
- void (*exec_command)(struct hwif_s *, u8);
- u8 (*read_status)(struct hwif_s *);
- u8 (*read_altstatus)(struct hwif_s *);
- void (*write_devctl)(struct hwif_s *, u8);
-
- void (*dev_select)(ide_drive_t *);
- void (*tf_load)(ide_drive_t *, struct ide_taskfile *, u8);
- void (*tf_read)(ide_drive_t *, struct ide_taskfile *, u8);
-
- void (*input_data)(ide_drive_t *, struct ide_cmd *,
- void *, unsigned int);
- void (*output_data)(ide_drive_t *, struct ide_cmd *,
- void *, unsigned int);
-};
-
-extern const struct ide_tp_ops default_tp_ops;
-
-/**
- * struct ide_port_ops - IDE port operations
- *
- * @init_dev: host specific initialization of a device
- * @set_pio_mode: routine to program host for PIO mode
- * @set_dma_mode: routine to program host for DMA mode
- * @reset_poll: chipset polling based on hba specifics
- * @pre_reset: chipset specific changes to default for device-hba resets
- * @resetproc: routine to reset controller after a disk reset
- * @maskproc: special host masking for drive selection
- * @quirkproc: check host's drive quirk list
- * @clear_irq: clear IRQ
- *
- * @mdma_filter: filter MDMA modes
- * @udma_filter: filter UDMA modes
- *
- * @cable_detect: detect cable type
- */
-struct ide_port_ops {
- void (*init_dev)(ide_drive_t *);
- void (*set_pio_mode)(struct hwif_s *, ide_drive_t *);
- void (*set_dma_mode)(struct hwif_s *, ide_drive_t *);
- int (*reset_poll)(ide_drive_t *);
- void (*pre_reset)(ide_drive_t *);
- void (*resetproc)(ide_drive_t *);
- void (*maskproc)(ide_drive_t *, int);
- void (*quirkproc)(ide_drive_t *);
- void (*clear_irq)(ide_drive_t *);
- int (*test_irq)(struct hwif_s *);
-
- u8 (*mdma_filter)(ide_drive_t *);
- u8 (*udma_filter)(ide_drive_t *);
-
- u8 (*cable_detect)(struct hwif_s *);
-};
-
-struct ide_dma_ops {
- void (*dma_host_set)(struct ide_drive_s *, int);
- int (*dma_setup)(struct ide_drive_s *, struct ide_cmd *);
- void (*dma_start)(struct ide_drive_s *);
- int (*dma_end)(struct ide_drive_s *);
- int (*dma_test_irq)(struct ide_drive_s *);
- void (*dma_lost_irq)(struct ide_drive_s *);
- /* below ones are optional */
- int (*dma_check)(struct ide_drive_s *, struct ide_cmd *);
- int (*dma_timer_expiry)(struct ide_drive_s *);
- void (*dma_clear)(struct ide_drive_s *);
- /*
- * The following method is optional and only required to be
- * implemented for the SFF-8038i compatible controllers.
- */
- u8 (*dma_sff_read_status)(struct hwif_s *);
-};
-
-enum {
- IDE_PFLAG_PROBING = (1 << 0),
-};
-
-struct ide_host;
-
-typedef struct hwif_s {
- struct hwif_s *mate; /* other hwif from same PCI chip */
- struct proc_dir_entry *proc; /* /proc/ide/ directory entry */
-
- struct ide_host *host;
-
- char name[6]; /* name of interface, eg. "ide0" */
-
- struct ide_io_ports io_ports;
-
- unsigned long sata_scr[SATA_NR_PORTS];
-
- ide_drive_t *devices[MAX_DRIVES + 1];
-
- unsigned long port_flags;
-
- u8 major; /* our major number */
- u8 index; /* 0 for ide0; 1 for ide1; ... */
- u8 channel; /* for dual-port chips: 0=primary, 1=secondary */
-
- u32 host_flags;
-
- u8 pio_mask;
-
- u8 ultra_mask;
- u8 mwdma_mask;
- u8 swdma_mask;
-
- u8 cbl; /* cable type */
-
- hwif_chipset_t chipset; /* sub-module for tuning.. */
-
- struct device *dev;
-
- void (*rw_disk)(ide_drive_t *, struct request *);
-
- const struct ide_tp_ops *tp_ops;
- const struct ide_port_ops *port_ops;
- const struct ide_dma_ops *dma_ops;
-
- /* dma physical region descriptor table (cpu view) */
- unsigned int *dmatable_cpu;
- /* dma physical region descriptor table (dma view) */
- dma_addr_t dmatable_dma;
-
- /* maximum number of PRD table entries */
- int prd_max_nents;
- /* PRD entry size in bytes */
- int prd_ent_size;
-
- /* Scatter-gather list used to build the above */
- struct scatterlist *sg_table;
- int sg_max_nents; /* Maximum number of entries in it */
-
- struct ide_cmd cmd; /* current command */
-
- int rqsize; /* max sectors per request */
- int irq; /* our irq number */
-
- unsigned long dma_base; /* base addr for dma ports */
-
- unsigned long config_data; /* for use by chipset-specific code */
- unsigned long select_data; /* for use by chipset-specific code */
-
- unsigned long extra_base; /* extra addr for dma ports */
- unsigned extra_ports; /* number of extra dma ports */
-
- unsigned present : 1; /* this interface exists */
- unsigned busy : 1; /* serializes devices on a port */
-
- struct device gendev;
- struct device *portdev;
-
- struct completion gendev_rel_comp; /* To deal with device release() */
-
- void *hwif_data; /* extra hwif data */
-
-#ifdef CONFIG_BLK_DEV_IDEACPI
- struct ide_acpi_hwif_link *acpidata;
-#endif
-
- /* IRQ handler, if active */
- ide_startstop_t (*handler)(ide_drive_t *);
-
- /* BOOL: polling active & poll_timeout field valid */
- unsigned int polling : 1;
-
- /* current drive */
- ide_drive_t *cur_dev;
-
- /* current request */
- struct request *rq;
-
- /* failsafe timer */
- struct timer_list timer;
- /* timeout value during long polls */
- unsigned long poll_timeout;
- /* queried upon timeouts */
- int (*expiry)(ide_drive_t *);
-
- int req_gen;
- int req_gen_timer;
-
- spinlock_t lock;
-} ____cacheline_internodealigned_in_smp ide_hwif_t;
-
-#define MAX_HOST_PORTS 4
-
-struct ide_host {
- ide_hwif_t *ports[MAX_HOST_PORTS + 1];
- unsigned int n_ports;
- struct device *dev[2];
-
- int (*init_chipset)(struct pci_dev *);
-
- void (*get_lock)(irq_handler_t, void *);
- void (*release_lock)(void);
-
- irq_handler_t irq_handler;
-
- unsigned long host_flags;
-
- int irq_flags;
-
- void *host_priv;
- ide_hwif_t *cur_port; /* for hosts requiring serialization */
-
- /* used for hosts requiring serialization */
- volatile unsigned long host_busy;
-};
-
-#define IDE_HOST_BUSY 0
-
-/*
- * internal ide interrupt handler type
- */
-typedef ide_startstop_t (ide_handler_t)(ide_drive_t *);
-typedef int (ide_expiry_t)(ide_drive_t *);
-
-/* used by ide-cd, ide-floppy, etc. */
-typedef void (xfer_func_t)(ide_drive_t *, struct ide_cmd *, void *, unsigned);
-
-extern struct mutex ide_setting_mtx;
-
-/*
- * configurable drive settings
- */
-
-#define DS_SYNC (1 << 0)
-
-struct ide_devset {
- int (*get)(ide_drive_t *);
- int (*set)(ide_drive_t *, int);
- unsigned int flags;
-};
-
-#define __DEVSET(_flags, _get, _set) { \
- .flags = _flags, \
- .get = _get, \
- .set = _set, \
-}
-
-#define ide_devset_get(name, field) \
-static int get_##name(ide_drive_t *drive) \
-{ \
- return drive->field; \
-}
-
-#define ide_devset_set(name, field) \
-static int set_##name(ide_drive_t *drive, int arg) \
-{ \
- drive->field = arg; \
- return 0; \
-}
-
-#define ide_devset_get_flag(name, flag) \
-static int get_##name(ide_drive_t *drive) \
-{ \
- return !!(drive->dev_flags & flag); \
-}
-
-#define ide_devset_set_flag(name, flag) \
-static int set_##name(ide_drive_t *drive, int arg) \
-{ \
- if (arg) \
- drive->dev_flags |= flag; \
- else \
- drive->dev_flags &= ~flag; \
- return 0; \
-}
-
-#define __IDE_DEVSET(_name, _flags, _get, _set) \
-const struct ide_devset ide_devset_##_name = \
- __DEVSET(_flags, _get, _set)
-
-#define IDE_DEVSET(_name, _flags, _get, _set) \
-static __IDE_DEVSET(_name, _flags, _get, _set)
-
-#define ide_devset_rw(_name, _func) \
-IDE_DEVSET(_name, 0, get_##_func, set_##_func)
-
-#define ide_devset_w(_name, _func) \
-IDE_DEVSET(_name, 0, NULL, set_##_func)
-
-#define ide_ext_devset_rw(_name, _func) \
-__IDE_DEVSET(_name, 0, get_##_func, set_##_func)
-
-#define ide_ext_devset_rw_sync(_name, _func) \
-__IDE_DEVSET(_name, DS_SYNC, get_##_func, set_##_func)
-
-#define ide_decl_devset(_name) \
-extern const struct ide_devset ide_devset_##_name
-
-ide_decl_devset(io_32bit);
-ide_decl_devset(keepsettings);
-ide_decl_devset(pio_mode);
-ide_decl_devset(unmaskirq);
-ide_decl_devset(using_dma);
-
-#ifdef CONFIG_IDE_PROC_FS
-/*
- * /proc/ide interface
- */
-
-#define ide_devset_rw_field(_name, _field) \
-ide_devset_get(_name, _field); \
-ide_devset_set(_name, _field); \
-IDE_DEVSET(_name, DS_SYNC, get_##_name, set_##_name)
-
-#define ide_devset_rw_flag(_name, _field) \
-ide_devset_get_flag(_name, _field); \
-ide_devset_set_flag(_name, _field); \
-IDE_DEVSET(_name, DS_SYNC, get_##_name, set_##_name)
-
-struct ide_proc_devset {
- const char *name;
- const struct ide_devset *setting;
- int min, max;
- int (*mulf)(ide_drive_t *);
- int (*divf)(ide_drive_t *);
-};
-
-#define __IDE_PROC_DEVSET(_name, _min, _max, _mulf, _divf) { \
- .name = __stringify(_name), \
- .setting = &ide_devset_##_name, \
- .min = _min, \
- .max = _max, \
- .mulf = _mulf, \
- .divf = _divf, \
-}
-
-#define IDE_PROC_DEVSET(_name, _min, _max) \
-__IDE_PROC_DEVSET(_name, _min, _max, NULL, NULL)
-
-typedef struct {
- const char *name;
- umode_t mode;
- const struct file_operations *proc_fops;
-} ide_proc_entry_t;
-
-void proc_ide_create(void);
-void proc_ide_destroy(void);
-void ide_proc_register_port(ide_hwif_t *);
-void ide_proc_port_register_devices(ide_hwif_t *);
-void ide_proc_unregister_device(ide_drive_t *);
-void ide_proc_unregister_port(ide_hwif_t *);
-void ide_proc_register_driver(ide_drive_t *, struct ide_driver *);
-void ide_proc_unregister_driver(ide_drive_t *, struct ide_driver *);
-
-extern const struct file_operations ide_capacity_proc_fops;
-extern const struct file_operations ide_geometry_proc_fops;
-#else
-static inline void proc_ide_create(void) { ; }
-static inline void proc_ide_destroy(void) { ; }
-static inline void ide_proc_register_port(ide_hwif_t *hwif) { ; }
-static inline void ide_proc_port_register_devices(ide_hwif_t *hwif) { ; }
-static inline void ide_proc_unregister_device(ide_drive_t *drive) { ; }
-static inline void ide_proc_unregister_port(ide_hwif_t *hwif) { ; }
-static inline void ide_proc_register_driver(ide_drive_t *drive,
- struct ide_driver *driver) { ; }
-static inline void ide_proc_unregister_driver(ide_drive_t *drive,
- struct ide_driver *driver) { ; }
-#endif
-
-enum {
- /* enter/exit functions */
- IDE_DBG_FUNC = (1 << 0),
- /* sense key/asc handling */
- IDE_DBG_SENSE = (1 << 1),
- /* packet commands handling */
- IDE_DBG_PC = (1 << 2),
- /* request handling */
- IDE_DBG_RQ = (1 << 3),
- /* driver probing/setup */
- IDE_DBG_PROBE = (1 << 4),
-};
-
-/* DRV_NAME has to be defined in the driver before using the macro below */
-#define __ide_debug_log(lvl, fmt, args...) \
-{ \
- if (unlikely(drive->debug_mask & lvl)) \
- printk(KERN_INFO DRV_NAME ": %s: " fmt "\n", \
- __func__, ## args); \
-}
-
-/*
- * Power Management state machine (rq->pm->pm_step).
- *
- * For each step, the core calls ide_start_power_step() first.
- * This can return:
- * - ide_stopped : In this case, the core calls us back again unless
- * step have been set to ide_power_state_completed.
- * - ide_started : In this case, the channel is left busy until an
- * async event (interrupt) occurs.
- * Typically, ide_start_power_step() will issue a taskfile request with
- * do_rw_taskfile().
- *
- * Upon reception of the interrupt, the core will call ide_complete_power_step()
- * with the error code if any. This routine should update the step value
- * and return. It should not start a new request. The core will call
- * ide_start_power_step() for the new step value, unless step have been
- * set to IDE_PM_COMPLETED.
- */
-enum {
- IDE_PM_START_SUSPEND,
- IDE_PM_FLUSH_CACHE = IDE_PM_START_SUSPEND,
- IDE_PM_STANDBY,
-
- IDE_PM_START_RESUME,
- IDE_PM_RESTORE_PIO = IDE_PM_START_RESUME,
- IDE_PM_IDLE,
- IDE_PM_RESTORE_DMA,
-
- IDE_PM_COMPLETED,
-};
-
-int generic_ide_suspend(struct device *, pm_message_t);
-int generic_ide_resume(struct device *);
-
-void ide_complete_power_step(ide_drive_t *, struct request *);
-ide_startstop_t ide_start_power_step(ide_drive_t *, struct request *);
-void ide_complete_pm_rq(ide_drive_t *, struct request *);
-void ide_check_pm_state(ide_drive_t *, struct request *);
-
-/*
- * Subdrivers support.
- *
- * The gendriver.owner field should be set to the module owner of this driver.
- * The gendriver.name field should be set to the name of this driver
- */
-struct ide_driver {
- const char *version;
- ide_startstop_t (*do_request)(ide_drive_t *, struct request *, sector_t);
- struct device_driver gen_driver;
- int (*probe)(ide_drive_t *);
- void (*remove)(ide_drive_t *);
- void (*resume)(ide_drive_t *);
- void (*shutdown)(ide_drive_t *);
-#ifdef CONFIG_IDE_PROC_FS
- ide_proc_entry_t * (*proc_entries)(ide_drive_t *);
- const struct ide_proc_devset * (*proc_devsets)(ide_drive_t *);
-#endif
-};
-
-#define to_ide_driver(drv) container_of(drv, struct ide_driver, gen_driver)
-
-int ide_device_get(ide_drive_t *);
-void ide_device_put(ide_drive_t *);
-
-struct ide_ioctl_devset {
- unsigned int get_ioctl;
- unsigned int set_ioctl;
- const struct ide_devset *setting;
-};
-
-int ide_setting_ioctl(ide_drive_t *, struct block_device *, unsigned int,
- unsigned long, const struct ide_ioctl_devset *);
-
-int generic_ide_ioctl(ide_drive_t *, struct block_device *, unsigned, unsigned long);
-
-extern int ide_vlb_clk;
-extern int ide_pci_clk;
-
-int ide_end_rq(ide_drive_t *, struct request *, int, unsigned int);
-void ide_kill_rq(ide_drive_t *, struct request *);
-
-void __ide_set_handler(ide_drive_t *, ide_handler_t *, unsigned int);
-void ide_set_handler(ide_drive_t *, ide_handler_t *, unsigned int);
-
-void ide_execute_command(ide_drive_t *, struct ide_cmd *, ide_handler_t *,
- unsigned int);
-
-void ide_pad_transfer(ide_drive_t *, int, int);
-
-ide_startstop_t ide_error(ide_drive_t *, const char *, u8);
-
-void ide_fix_driveid(u16 *);
-
-extern void ide_fixstring(u8 *, const int, const int);
-
-int ide_busy_sleep(ide_drive_t *, unsigned long, int);
-
-int __ide_wait_stat(ide_drive_t *, u8, u8, unsigned long, u8 *);
-int ide_wait_stat(ide_startstop_t *, ide_drive_t *, u8, u8, unsigned long);
-
-ide_startstop_t ide_do_park_unpark(ide_drive_t *, struct request *);
-ide_startstop_t ide_do_devset(ide_drive_t *, struct request *);
-
-extern ide_startstop_t ide_do_reset (ide_drive_t *);
-
-extern int ide_devset_execute(ide_drive_t *drive,
- const struct ide_devset *setting, int arg);
-
-void ide_complete_cmd(ide_drive_t *, struct ide_cmd *, u8, u8);
-int ide_complete_rq(ide_drive_t *, int, unsigned int);
-
-void ide_tf_readback(ide_drive_t *drive, struct ide_cmd *cmd);
-void ide_tf_dump(const char *, struct ide_cmd *);
-
-void ide_exec_command(ide_hwif_t *, u8);
-u8 ide_read_status(ide_hwif_t *);
-u8 ide_read_altstatus(ide_hwif_t *);
-void ide_write_devctl(ide_hwif_t *, u8);
-
-void ide_dev_select(ide_drive_t *);
-void ide_tf_load(ide_drive_t *, struct ide_taskfile *, u8);
-void ide_tf_read(ide_drive_t *, struct ide_taskfile *, u8);
-
-void ide_input_data(ide_drive_t *, struct ide_cmd *, void *, unsigned int);
-void ide_output_data(ide_drive_t *, struct ide_cmd *, void *, unsigned int);
-
-void SELECT_MASK(ide_drive_t *, int);
-
-u8 ide_read_error(ide_drive_t *);
-void ide_read_bcount_and_ireason(ide_drive_t *, u16 *, u8 *);
-
-int ide_check_ireason(ide_drive_t *, struct request *, int, int, int);
-
-int ide_check_atapi_device(ide_drive_t *, const char *);
-
-void ide_init_pc(struct ide_atapi_pc *);
-
-/* Disk head parking */
-extern wait_queue_head_t ide_park_wq;
-ssize_t ide_park_show(struct device *dev, struct device_attribute *attr,
- char *buf);
-ssize_t ide_park_store(struct device *dev, struct device_attribute *attr,
- const char *buf, size_t len);
-
-/*
- * Special requests for ide-tape block device strategy routine.
- *
- * In order to service a character device command, we add special requests to
- * the tail of our block device request queue and wait for their completion.
- */
-enum {
- REQ_IDETAPE_PC1 = (1 << 0), /* packet command (first stage) */
- REQ_IDETAPE_PC2 = (1 << 1), /* packet command (second stage) */
- REQ_IDETAPE_READ = (1 << 2),
- REQ_IDETAPE_WRITE = (1 << 3),
-};
-
-int ide_queue_pc_tail(ide_drive_t *, struct gendisk *, struct ide_atapi_pc *,
- void *, unsigned int);
-
-int ide_do_test_unit_ready(ide_drive_t *, struct gendisk *);
-int ide_do_start_stop(ide_drive_t *, struct gendisk *, int);
-int ide_set_media_lock(ide_drive_t *, struct gendisk *, int);
-void ide_create_request_sense_cmd(ide_drive_t *, struct ide_atapi_pc *);
-void ide_retry_pc(ide_drive_t *drive);
-
-void ide_prep_sense(ide_drive_t *drive, struct request *rq);
-int ide_queue_sense_rq(ide_drive_t *drive, void *special);
-
-int ide_cd_expiry(ide_drive_t *);
-
-int ide_cd_get_xferlen(struct request *);
-
-ide_startstop_t ide_issue_pc(ide_drive_t *, struct ide_cmd *);
-
-ide_startstop_t do_rw_taskfile(ide_drive_t *, struct ide_cmd *);
-
-void ide_pio_bytes(ide_drive_t *, struct ide_cmd *, unsigned int, unsigned int);
-
-void ide_finish_cmd(ide_drive_t *, struct ide_cmd *, u8);
-
-int ide_raw_taskfile(ide_drive_t *, struct ide_cmd *, u8 *, u16);
-int ide_no_data_taskfile(ide_drive_t *, struct ide_cmd *);
-
-int ide_taskfile_ioctl(ide_drive_t *, unsigned long);
-
-int ide_dev_read_id(ide_drive_t *, u8, u16 *, int);
-
-extern int ide_driveid_update(ide_drive_t *);
-extern int ide_config_drive_speed(ide_drive_t *, u8);
-extern u8 eighty_ninty_three (ide_drive_t *);
-extern int taskfile_lib_get_identify(ide_drive_t *drive, u8 *);
-
-extern int ide_wait_not_busy(ide_hwif_t *hwif, unsigned long timeout);
-
-extern void ide_stall_queue(ide_drive_t *drive, unsigned long timeout);
-
-extern void ide_timer_expiry(unsigned long);
-extern irqreturn_t ide_intr(int irq, void *dev_id);
-extern void do_ide_request(struct request_queue *);
-extern void ide_requeue_and_plug(ide_drive_t *drive, struct request *rq);
-
-void ide_init_disk(struct gendisk *, ide_drive_t *);
-
-#ifdef CONFIG_IDEPCI_PCIBUS_ORDER
-extern int __ide_pci_register_driver(struct pci_driver *driver, struct module *owner, const char *mod_name);
-#define ide_pci_register_driver(d) __ide_pci_register_driver(d, THIS_MODULE, KBUILD_MODNAME)
-#else
-#define ide_pci_register_driver(d) pci_register_driver(d)
-#endif
-
-static inline int ide_pci_is_in_compatibility_mode(struct pci_dev *dev)
-{
- if ((dev->class >> 8) == PCI_CLASS_STORAGE_IDE && (dev->class & 5) != 5)
- return 1;
- return 0;
-}
-
-void ide_pci_setup_ports(struct pci_dev *, const struct ide_port_info *,
- struct ide_hw *, struct ide_hw **);
-void ide_setup_pci_noise(struct pci_dev *, const struct ide_port_info *);
-
-#ifdef CONFIG_BLK_DEV_IDEDMA_PCI
-int ide_pci_set_master(struct pci_dev *, const char *);
-unsigned long ide_pci_dma_base(ide_hwif_t *, const struct ide_port_info *);
-int ide_pci_check_simplex(ide_hwif_t *, const struct ide_port_info *);
-int ide_hwif_setup_dma(ide_hwif_t *, const struct ide_port_info *);
-#else
-static inline int ide_hwif_setup_dma(ide_hwif_t *hwif,
- const struct ide_port_info *d)
-{
- return -EINVAL;
-}
-#endif
-
-struct ide_pci_enablebit {
- u8 reg; /* byte pci reg holding the enable-bit */
- u8 mask; /* mask to isolate the enable-bit */
- u8 val; /* value of masked reg when "enabled" */
-};
-
-enum {
- /* Uses ISA control ports not PCI ones. */
- IDE_HFLAG_ISA_PORTS = (1 << 0),
- /* single port device */
- IDE_HFLAG_SINGLE = (1 << 1),
- /* don't use legacy PIO blacklist */
- IDE_HFLAG_PIO_NO_BLACKLIST = (1 << 2),
- /* set for the second port of QD65xx */
- IDE_HFLAG_QD_2ND_PORT = (1 << 3),
- /* use PIO8/9 for prefetch off/on */
- IDE_HFLAG_ABUSE_PREFETCH = (1 << 4),
- /* use PIO6/7 for fast-devsel off/on */
- IDE_HFLAG_ABUSE_FAST_DEVSEL = (1 << 5),
- /* use 100-102 and 200-202 PIO values to set DMA modes */
- IDE_HFLAG_ABUSE_DMA_MODES = (1 << 6),
- /*
- * keep DMA setting when programming PIO mode, may be used only
- * for hosts which have separate PIO and DMA timings (ie. PMAC)
- */
- IDE_HFLAG_SET_PIO_MODE_KEEP_DMA = (1 << 7),
- /* program host for the transfer mode after programming device */
- IDE_HFLAG_POST_SET_MODE = (1 << 8),
- /* don't program host/device for the transfer mode ("smart" hosts) */
- IDE_HFLAG_NO_SET_MODE = (1 << 9),
- /* trust BIOS for programming chipset/device for DMA */
- IDE_HFLAG_TRUST_BIOS_FOR_DMA = (1 << 10),
- /* host is CS5510/CS5520 */
- IDE_HFLAG_CS5520 = (1 << 11),
- /* ATAPI DMA is unsupported */
- IDE_HFLAG_NO_ATAPI_DMA = (1 << 12),
- /* set if host is a "non-bootable" controller */
- IDE_HFLAG_NON_BOOTABLE = (1 << 13),
- /* host doesn't support DMA */
- IDE_HFLAG_NO_DMA = (1 << 14),
- /* check if host is PCI IDE device before allowing DMA */
- IDE_HFLAG_NO_AUTODMA = (1 << 15),
- /* host uses MMIO */
- IDE_HFLAG_MMIO = (1 << 16),
- /* no LBA48 */
- IDE_HFLAG_NO_LBA48 = (1 << 17),
- /* no LBA48 DMA */
- IDE_HFLAG_NO_LBA48_DMA = (1 << 18),
- /* data FIFO is cleared by an error */
- IDE_HFLAG_ERROR_STOPS_FIFO = (1 << 19),
- /* serialize ports */
- IDE_HFLAG_SERIALIZE = (1 << 20),
- /* host is DTC2278 */
- IDE_HFLAG_DTC2278 = (1 << 21),
- /* 4 devices on a single set of I/O ports */
- IDE_HFLAG_4DRIVES = (1 << 22),
- /* host is TRM290 */
- IDE_HFLAG_TRM290 = (1 << 23),
- /* use 32-bit I/O ops */
- IDE_HFLAG_IO_32BIT = (1 << 24),
- /* unmask IRQs */
- IDE_HFLAG_UNMASK_IRQS = (1 << 25),
- IDE_HFLAG_BROKEN_ALTSTATUS = (1 << 26),
- /* serialize ports if DMA is possible (for sl82c105) */
- IDE_HFLAG_SERIALIZE_DMA = (1 << 27),
- /* force host out of "simplex" mode */
- IDE_HFLAG_CLEAR_SIMPLEX = (1 << 28),
- /* DSC overlap is unsupported */
- IDE_HFLAG_NO_DSC = (1 << 29),
- /* never use 32-bit I/O ops */
- IDE_HFLAG_NO_IO_32BIT = (1 << 30),
- /* never unmask IRQs */
- IDE_HFLAG_NO_UNMASK_IRQS = (1 << 31),
-};
-
-#ifdef CONFIG_BLK_DEV_OFFBOARD
-# define IDE_HFLAG_OFF_BOARD 0
-#else
-# define IDE_HFLAG_OFF_BOARD IDE_HFLAG_NON_BOOTABLE
-#endif
-
-struct ide_port_info {
- char *name;
-
- int (*init_chipset)(struct pci_dev *);
-
- void (*get_lock)(irq_handler_t, void *);
- void (*release_lock)(void);
-
- void (*init_iops)(ide_hwif_t *);
- void (*init_hwif)(ide_hwif_t *);
- int (*init_dma)(ide_hwif_t *,
- const struct ide_port_info *);
-
- const struct ide_tp_ops *tp_ops;
- const struct ide_port_ops *port_ops;
- const struct ide_dma_ops *dma_ops;
-
- struct ide_pci_enablebit enablebits[2];
-
- hwif_chipset_t chipset;
-
- u16 max_sectors; /* if < than the default one */
-
- u32 host_flags;
-
- int irq_flags;
-
- u8 pio_mask;
- u8 swdma_mask;
- u8 mwdma_mask;
- u8 udma_mask;
-};
-
-int ide_pci_init_one(struct pci_dev *, const struct ide_port_info *, void *);
-int ide_pci_init_two(struct pci_dev *, struct pci_dev *,
- const struct ide_port_info *, void *);
-void ide_pci_remove(struct pci_dev *);
-
-#ifdef CONFIG_PM
-int ide_pci_suspend(struct pci_dev *, pm_message_t);
-int ide_pci_resume(struct pci_dev *);
-#else
-#define ide_pci_suspend NULL
-#define ide_pci_resume NULL
-#endif
-
-void ide_map_sg(ide_drive_t *, struct ide_cmd *);
-void ide_init_sg_cmd(struct ide_cmd *, unsigned int);
-
-#define BAD_DMA_DRIVE 0
-#define GOOD_DMA_DRIVE 1
-
-struct drive_list_entry {
- const char *id_model;
- const char *id_firmware;
-};
-
-int ide_in_drive_list(u16 *, const struct drive_list_entry *);
-
-#ifdef CONFIG_BLK_DEV_IDEDMA
-int ide_dma_good_drive(ide_drive_t *);
-int __ide_dma_bad_drive(ide_drive_t *);
-
-u8 ide_find_dma_mode(ide_drive_t *, u8);
-
-static inline u8 ide_max_dma_mode(ide_drive_t *drive)
-{
- return ide_find_dma_mode(drive, XFER_UDMA_6);
-}
-
-void ide_dma_off_quietly(ide_drive_t *);
-void ide_dma_off(ide_drive_t *);
-void ide_dma_on(ide_drive_t *);
-int ide_set_dma(ide_drive_t *);
-void ide_check_dma_crc(ide_drive_t *);
-ide_startstop_t ide_dma_intr(ide_drive_t *);
-
-int ide_allocate_dma_engine(ide_hwif_t *);
-void ide_release_dma_engine(ide_hwif_t *);
-
-int ide_dma_prepare(ide_drive_t *, struct ide_cmd *);
-void ide_dma_unmap_sg(ide_drive_t *, struct ide_cmd *);
-
-#ifdef CONFIG_BLK_DEV_IDEDMA_SFF
-int config_drive_for_dma(ide_drive_t *);
-int ide_build_dmatable(ide_drive_t *, struct ide_cmd *);
-void ide_dma_host_set(ide_drive_t *, int);
-int ide_dma_setup(ide_drive_t *, struct ide_cmd *);
-extern void ide_dma_start(ide_drive_t *);
-int ide_dma_end(ide_drive_t *);
-int ide_dma_test_irq(ide_drive_t *);
-int ide_dma_sff_timer_expiry(ide_drive_t *);
-u8 ide_dma_sff_read_status(ide_hwif_t *);
-extern const struct ide_dma_ops sff_dma_ops;
-#else
-static inline int config_drive_for_dma(ide_drive_t *drive) { return 0; }
-#endif /* CONFIG_BLK_DEV_IDEDMA_SFF */
-
-void ide_dma_lost_irq(ide_drive_t *);
-ide_startstop_t ide_dma_timeout_retry(ide_drive_t *, int);
-
-#else
-static inline u8 ide_find_dma_mode(ide_drive_t *drive, u8 speed) { return 0; }
-static inline u8 ide_max_dma_mode(ide_drive_t *drive) { return 0; }
-static inline void ide_dma_off_quietly(ide_drive_t *drive) { ; }
-static inline void ide_dma_off(ide_drive_t *drive) { ; }
-static inline void ide_dma_on(ide_drive_t *drive) { ; }
-static inline void ide_dma_verbose(ide_drive_t *drive) { ; }
-static inline int ide_set_dma(ide_drive_t *drive) { return 1; }
-static inline void ide_check_dma_crc(ide_drive_t *drive) { ; }
-static inline ide_startstop_t ide_dma_intr(ide_drive_t *drive) { return ide_stopped; }
-static inline ide_startstop_t ide_dma_timeout_retry(ide_drive_t *drive, int error) { return ide_stopped; }
-static inline void ide_release_dma_engine(ide_hwif_t *hwif) { ; }
-static inline int ide_dma_prepare(ide_drive_t *drive,
- struct ide_cmd *cmd) { return 1; }
-static inline void ide_dma_unmap_sg(ide_drive_t *drive,
- struct ide_cmd *cmd) { ; }
-#endif /* CONFIG_BLK_DEV_IDEDMA */
-
-#ifdef CONFIG_BLK_DEV_IDEACPI
-int ide_acpi_init(void);
-bool ide_port_acpi(ide_hwif_t *hwif);
-extern int ide_acpi_exec_tfs(ide_drive_t *drive);
-extern void ide_acpi_get_timing(ide_hwif_t *hwif);
-extern void ide_acpi_push_timing(ide_hwif_t *hwif);
-void ide_acpi_init_port(ide_hwif_t *);
-void ide_acpi_port_init_devices(ide_hwif_t *);
-extern void ide_acpi_set_state(ide_hwif_t *hwif, int on);
-#else
-static inline int ide_acpi_init(void) { return 0; }
-static inline bool ide_port_acpi(ide_hwif_t *hwif) { return 0; }
-static inline int ide_acpi_exec_tfs(ide_drive_t *drive) { return 0; }
-static inline void ide_acpi_get_timing(ide_hwif_t *hwif) { ; }
-static inline void ide_acpi_push_timing(ide_hwif_t *hwif) { ; }
-static inline void ide_acpi_init_port(ide_hwif_t *hwif) { ; }
-static inline void ide_acpi_port_init_devices(ide_hwif_t *hwif) { ; }
-static inline void ide_acpi_set_state(ide_hwif_t *hwif, int on) {}
-#endif
-
-void ide_register_region(struct gendisk *);
-void ide_unregister_region(struct gendisk *);
-
-void ide_check_nien_quirk_list(ide_drive_t *);
-void ide_undecoded_slave(ide_drive_t *);
-
-void ide_port_apply_params(ide_hwif_t *);
-int ide_sysfs_register_port(ide_hwif_t *);
-
-struct ide_host *ide_host_alloc(const struct ide_port_info *, struct ide_hw **,
- unsigned int);
-void ide_host_free(struct ide_host *);
-int ide_host_register(struct ide_host *, const struct ide_port_info *,
- struct ide_hw **);
-int ide_host_add(const struct ide_port_info *, struct ide_hw **, unsigned int,
- struct ide_host **);
-void ide_host_remove(struct ide_host *);
-int ide_legacy_device_add(const struct ide_port_info *, unsigned long);
-void ide_port_unregister_devices(ide_hwif_t *);
-void ide_port_scan(ide_hwif_t *);
-
-static inline void *ide_get_hwifdata (ide_hwif_t * hwif)
-{
- return hwif->hwif_data;
-}
-
-static inline void ide_set_hwifdata (ide_hwif_t * hwif, void *data)
-{
- hwif->hwif_data = data;
-}
-
-extern void ide_toggle_bounce(ide_drive_t *drive, int on);
-
-u64 ide_get_lba_addr(struct ide_cmd *, int);
-u8 ide_dump_status(ide_drive_t *, const char *, u8);
-
-struct ide_timing {
- u8 mode;
- u8 setup; /* t1 */
- u16 act8b; /* t2 for 8-bit io */
- u16 rec8b; /* t2i for 8-bit io */
- u16 cyc8b; /* t0 for 8-bit io */
- u16 active; /* t2 or tD */
- u16 recover; /* t2i or tK */
- u16 cycle; /* t0 */
- u16 udma; /* t2CYCTYP/2 */
-};
-
-enum {
- IDE_TIMING_SETUP = (1 << 0),
- IDE_TIMING_ACT8B = (1 << 1),
- IDE_TIMING_REC8B = (1 << 2),
- IDE_TIMING_CYC8B = (1 << 3),
- IDE_TIMING_8BIT = IDE_TIMING_ACT8B | IDE_TIMING_REC8B |
- IDE_TIMING_CYC8B,
- IDE_TIMING_ACTIVE = (1 << 4),
- IDE_TIMING_RECOVER = (1 << 5),
- IDE_TIMING_CYCLE = (1 << 6),
- IDE_TIMING_UDMA = (1 << 7),
- IDE_TIMING_ALL = IDE_TIMING_SETUP | IDE_TIMING_8BIT |
- IDE_TIMING_ACTIVE | IDE_TIMING_RECOVER |
- IDE_TIMING_CYCLE | IDE_TIMING_UDMA,
-};
-
-struct ide_timing *ide_timing_find_mode(u8);
-u16 ide_pio_cycle_time(ide_drive_t *, u8);
-void ide_timing_merge(struct ide_timing *, struct ide_timing *,
- struct ide_timing *, unsigned int);
-int ide_timing_compute(ide_drive_t *, u8, struct ide_timing *, int, int);
-
-#ifdef CONFIG_IDE_XFER_MODE
-int ide_scan_pio_blacklist(char *);
-const char *ide_xfer_verbose(u8);
-int ide_pio_need_iordy(ide_drive_t *, const u8);
-int ide_set_pio_mode(ide_drive_t *, u8);
-int ide_set_dma_mode(ide_drive_t *, u8);
-void ide_set_pio(ide_drive_t *, u8);
-int ide_set_xfer_rate(ide_drive_t *, u8);
-#else
-static inline void ide_set_pio(ide_drive_t *drive, u8 pio) { ; }
-static inline int ide_set_xfer_rate(ide_drive_t *drive, u8 rate) { return -1; }
-#endif
-
-static inline void ide_set_max_pio(ide_drive_t *drive)
-{
- ide_set_pio(drive, 255);
-}
-
-char *ide_media_string(ide_drive_t *);
-
-extern struct device_attribute ide_dev_attrs[];
-extern struct bus_type ide_bus_type;
-extern struct class *ide_port_class;
-
-static inline void ide_dump_identify(u8 *id)
-{
- print_hex_dump(KERN_INFO, "", DUMP_PREFIX_NONE, 16, 2, id, 512, 0);
-}
-
-static inline int hwif_to_node(ide_hwif_t *hwif)
-{
- return hwif->dev ? dev_to_node(hwif->dev) : -1;
-}
-
-static inline ide_drive_t *ide_get_pair_dev(ide_drive_t *drive)
-{
- ide_drive_t *peer = drive->hwif->devices[(drive->dn ^ 1) & 1];
-
- return (peer->dev_flags & IDE_DFLAG_PRESENT) ? peer : NULL;
-}
-
-static inline void *ide_get_drivedata(ide_drive_t *drive)
-{
- return drive->drive_data;
-}
-
-static inline void ide_set_drivedata(ide_drive_t *drive, void *data)
-{
- drive->drive_data = data;
-}
-
-#define ide_port_for_each_dev(i, dev, port) \
- for ((i) = 0; ((dev) = (port)->devices[i]) || (i) < MAX_DRIVES; (i)++)
-
-#define ide_port_for_each_present_dev(i, dev, port) \
- for ((i) = 0; ((dev) = (port)->devices[i]) || (i) < MAX_DRIVES; (i)++) \
- if ((dev)->dev_flags & IDE_DFLAG_PRESENT)
-
-#define ide_host_for_each_port(i, port, host) \
- for ((i) = 0; ((port) = (host)->ports[i]) || (i) < MAX_HOST_PORTS; (i)++)
-
-#endif /* _IDE_H */
diff --git a/ANDROID_3.4.5/include/linux/idr.h b/ANDROID_3.4.5/include/linux/idr.h
deleted file mode 100644
index 255491cf..00000000
--- a/ANDROID_3.4.5/include/linux/idr.h
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * include/linux/idr.h
- *
- * 2002-10-18 written by Jim Houston jim.houston@ccur.com
- * Copyright (C) 2002 by Concurrent Computer Corporation
- * Distributed under the GNU GPL license version 2.
- *
- * Small id to pointer translation service avoiding fixed sized
- * tables.
- */
-
-#ifndef __IDR_H__
-#define __IDR_H__
-
-#include <linux/types.h>
-#include <linux/bitops.h>
-#include <linux/init.h>
-#include <linux/rcupdate.h>
-
-#if BITS_PER_LONG == 32
-# define IDR_BITS 5
-# define IDR_FULL 0xfffffffful
-/* We can only use two of the bits in the top level because there is
- only one possible bit in the top level (5 bits * 7 levels = 35
- bits, but you only use 31 bits in the id). */
-# define TOP_LEVEL_FULL (IDR_FULL >> 30)
-#elif BITS_PER_LONG == 64
-# define IDR_BITS 6
-# define IDR_FULL 0xfffffffffffffffful
-/* We can only use two of the bits in the top level because there is
- only one possible bit in the top level (6 bits * 6 levels = 36
- bits, but you only use 31 bits in the id). */
-# define TOP_LEVEL_FULL (IDR_FULL >> 62)
-#else
-# error "BITS_PER_LONG is not 32 or 64"
-#endif
-
-#define IDR_SIZE (1 << IDR_BITS)
-#define IDR_MASK ((1 << IDR_BITS)-1)
-
-#define MAX_ID_SHIFT (sizeof(int)*8 - 1)
-#define MAX_ID_BIT (1U << MAX_ID_SHIFT)
-#define MAX_ID_MASK (MAX_ID_BIT - 1)
-
-/* Leave the possibility of an incomplete final layer */
-#define MAX_LEVEL (MAX_ID_SHIFT + IDR_BITS - 1) / IDR_BITS
-
-/* Number of id_layer structs to leave in free list */
-#define IDR_FREE_MAX MAX_LEVEL + MAX_LEVEL
-
-struct idr_layer {
- unsigned long bitmap; /* A zero bit means "space here" */
- struct idr_layer __rcu *ary[1<<IDR_BITS];
- int count; /* When zero, we can release it */
- int layer; /* distance from leaf */
- struct rcu_head rcu_head;
-};
-
-struct idr {
- struct idr_layer __rcu *top;
- struct idr_layer *id_free;
- int layers; /* only valid without concurrent changes */
- int id_free_cnt;
- spinlock_t lock;
-};
-
-#define IDR_INIT(name) \
-{ \
- .top = NULL, \
- .id_free = NULL, \
- .layers = 0, \
- .id_free_cnt = 0, \
- .lock = __SPIN_LOCK_UNLOCKED(name.lock), \
-}
-#define DEFINE_IDR(name) struct idr name = IDR_INIT(name)
-
-/* Actions to be taken after a call to _idr_sub_alloc */
-#define IDR_NEED_TO_GROW -2
-#define IDR_NOMORE_SPACE -3
-
-#define _idr_rc_to_errno(rc) ((rc) == -1 ? -EAGAIN : -ENOSPC)
-
-/**
- * DOC: idr sync
- * idr synchronization (stolen from radix-tree.h)
- *
- * idr_find() is able to be called locklessly, using RCU. The caller must
- * ensure calls to this function are made within rcu_read_lock() regions.
- * Other readers (lock-free or otherwise) and modifications may be running
- * concurrently.
- *
- * It is still required that the caller manage the synchronization and
- * lifetimes of the items. So if RCU lock-free lookups are used, typically
- * this would mean that the items have their own locks, or are amenable to
- * lock-free access; and that the items are freed by RCU (or only freed after
- * having been deleted from the idr tree *and* a synchronize_rcu() grace
- * period).
- */
-
-/*
- * This is what we export.
- */
-
-void *idr_find(struct idr *idp, int id);
-int idr_pre_get(struct idr *idp, gfp_t gfp_mask);
-int idr_get_new(struct idr *idp, void *ptr, int *id);
-int idr_get_new_above(struct idr *idp, void *ptr, int starting_id, int *id);
-int idr_for_each(struct idr *idp,
- int (*fn)(int id, void *p, void *data), void *data);
-void *idr_get_next(struct idr *idp, int *nextid);
-void *idr_replace(struct idr *idp, void *ptr, int id);
-void idr_remove(struct idr *idp, int id);
-void idr_remove_all(struct idr *idp);
-void idr_destroy(struct idr *idp);
-void idr_init(struct idr *idp);
-
-
-/*
- * IDA - IDR based id allocator, use when translation from id to
- * pointer isn't necessary.
- *
- * IDA_BITMAP_LONGS is calculated to be one less to accommodate
- * ida_bitmap->nr_busy so that the whole struct fits in 128 bytes.
- */
-#define IDA_CHUNK_SIZE 128 /* 128 bytes per chunk */
-#define IDA_BITMAP_LONGS (IDA_CHUNK_SIZE / sizeof(long) - 1)
-#define IDA_BITMAP_BITS (IDA_BITMAP_LONGS * sizeof(long) * 8)
-
-struct ida_bitmap {
- long nr_busy;
- unsigned long bitmap[IDA_BITMAP_LONGS];
-};
-
-struct ida {
- struct idr idr;
- struct ida_bitmap *free_bitmap;
-};
-
-#define IDA_INIT(name) { .idr = IDR_INIT(name), .free_bitmap = NULL, }
-#define DEFINE_IDA(name) struct ida name = IDA_INIT(name)
-
-int ida_pre_get(struct ida *ida, gfp_t gfp_mask);
-int ida_get_new_above(struct ida *ida, int starting_id, int *p_id);
-int ida_get_new(struct ida *ida, int *p_id);
-void ida_remove(struct ida *ida, int id);
-void ida_destroy(struct ida *ida);
-void ida_init(struct ida *ida);
-
-int ida_simple_get(struct ida *ida, unsigned int start, unsigned int end,
- gfp_t gfp_mask);
-void ida_simple_remove(struct ida *ida, unsigned int id);
-
-void __init idr_init_cache(void);
-
-#endif /* __IDR_H__ */
diff --git a/ANDROID_3.4.5/include/linux/ieee80211.h b/ANDROID_3.4.5/include/linux/ieee80211.h
deleted file mode 100644
index 210e2c32..00000000
--- a/ANDROID_3.4.5/include/linux/ieee80211.h
+++ /dev/null
@@ -1,1878 +0,0 @@
-/*
- * IEEE 802.11 defines
- *
- * 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) 2005, Devicescape Software, Inc.
- * Copyright (c) 2006, Michael Wu <flamingice@sourmilk.net>
- *
- * 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.
- */
-
-#ifndef LINUX_IEEE80211_H
-#define LINUX_IEEE80211_H
-
-#include <linux/types.h>
-#include <asm/byteorder.h>
-
-/*
- * DS bit usage
- *
- * TA = transmitter address
- * RA = receiver address
- * DA = destination address
- * SA = source address
- *
- * ToDS FromDS A1(RA) A2(TA) A3 A4 Use
- * -----------------------------------------------------------------
- * 0 0 DA SA BSSID - IBSS/DLS
- * 0 1 DA BSSID SA - AP -> STA
- * 1 0 BSSID SA DA - AP <- STA
- * 1 1 RA TA DA SA unspecified (WDS)
- */
-
-#define FCS_LEN 4
-
-#define IEEE80211_FCTL_VERS 0x0003
-#define IEEE80211_FCTL_FTYPE 0x000c
-#define IEEE80211_FCTL_STYPE 0x00f0
-#define IEEE80211_FCTL_TODS 0x0100
-#define IEEE80211_FCTL_FROMDS 0x0200
-#define IEEE80211_FCTL_MOREFRAGS 0x0400
-#define IEEE80211_FCTL_RETRY 0x0800
-#define IEEE80211_FCTL_PM 0x1000
-#define IEEE80211_FCTL_MOREDATA 0x2000
-#define IEEE80211_FCTL_PROTECTED 0x4000
-#define IEEE80211_FCTL_ORDER 0x8000
-
-#define IEEE80211_SCTL_FRAG 0x000F
-#define IEEE80211_SCTL_SEQ 0xFFF0
-
-#define IEEE80211_FTYPE_MGMT 0x0000
-#define IEEE80211_FTYPE_CTL 0x0004
-#define IEEE80211_FTYPE_DATA 0x0008
-
-/* management */
-#define IEEE80211_STYPE_ASSOC_REQ 0x0000
-#define IEEE80211_STYPE_ASSOC_RESP 0x0010
-#define IEEE80211_STYPE_REASSOC_REQ 0x0020
-#define IEEE80211_STYPE_REASSOC_RESP 0x0030
-#define IEEE80211_STYPE_PROBE_REQ 0x0040
-#define IEEE80211_STYPE_PROBE_RESP 0x0050
-#define IEEE80211_STYPE_BEACON 0x0080
-#define IEEE80211_STYPE_ATIM 0x0090
-#define IEEE80211_STYPE_DISASSOC 0x00A0
-#define IEEE80211_STYPE_AUTH 0x00B0
-#define IEEE80211_STYPE_DEAUTH 0x00C0
-#define IEEE80211_STYPE_ACTION 0x00D0
-
-/* control */
-#define IEEE80211_STYPE_BACK_REQ 0x0080
-#define IEEE80211_STYPE_BACK 0x0090
-#define IEEE80211_STYPE_PSPOLL 0x00A0
-#define IEEE80211_STYPE_RTS 0x00B0
-#define IEEE80211_STYPE_CTS 0x00C0
-#define IEEE80211_STYPE_ACK 0x00D0
-#define IEEE80211_STYPE_CFEND 0x00E0
-#define IEEE80211_STYPE_CFENDACK 0x00F0
-
-/* data */
-#define IEEE80211_STYPE_DATA 0x0000
-#define IEEE80211_STYPE_DATA_CFACK 0x0010
-#define IEEE80211_STYPE_DATA_CFPOLL 0x0020
-#define IEEE80211_STYPE_DATA_CFACKPOLL 0x0030
-#define IEEE80211_STYPE_NULLFUNC 0x0040
-#define IEEE80211_STYPE_CFACK 0x0050
-#define IEEE80211_STYPE_CFPOLL 0x0060
-#define IEEE80211_STYPE_CFACKPOLL 0x0070
-#define IEEE80211_STYPE_QOS_DATA 0x0080
-#define IEEE80211_STYPE_QOS_DATA_CFACK 0x0090
-#define IEEE80211_STYPE_QOS_DATA_CFPOLL 0x00A0
-#define IEEE80211_STYPE_QOS_DATA_CFACKPOLL 0x00B0
-#define IEEE80211_STYPE_QOS_NULLFUNC 0x00C0
-#define IEEE80211_STYPE_QOS_CFACK 0x00D0
-#define IEEE80211_STYPE_QOS_CFPOLL 0x00E0
-#define IEEE80211_STYPE_QOS_CFACKPOLL 0x00F0
-
-
-/* miscellaneous IEEE 802.11 constants */
-#define IEEE80211_MAX_FRAG_THRESHOLD 2352
-#define IEEE80211_MAX_RTS_THRESHOLD 2353
-#define IEEE80211_MAX_AID 2007
-#define IEEE80211_MAX_TIM_LEN 251
-/* Maximum size for the MA-UNITDATA primitive, 802.11 standard section
- 6.2.1.1.2.
-
- 802.11e clarifies the figure in section 7.1.2. The frame body is
- up to 2304 octets long (maximum MSDU size) plus any crypt overhead. */
-#define IEEE80211_MAX_DATA_LEN 2304
-/* 30 byte 4 addr hdr, 2 byte QoS, 2304 byte MSDU, 12 byte crypt, 4 byte FCS */
-#define IEEE80211_MAX_FRAME_LEN 2352
-
-#define IEEE80211_MAX_SSID_LEN 32
-
-#define IEEE80211_MAX_MESH_ID_LEN 32
-
-#define IEEE80211_QOS_CTL_LEN 2
-/* 1d tag mask */
-#define IEEE80211_QOS_CTL_TAG1D_MASK 0x0007
-/* TID mask */
-#define IEEE80211_QOS_CTL_TID_MASK 0x000f
-/* EOSP */
-#define IEEE80211_QOS_CTL_EOSP 0x0010
-/* ACK policy */
-#define IEEE80211_QOS_CTL_ACK_POLICY_NORMAL 0x0000
-#define IEEE80211_QOS_CTL_ACK_POLICY_NOACK 0x0020
-#define IEEE80211_QOS_CTL_ACK_POLICY_NO_EXPL 0x0040
-#define IEEE80211_QOS_CTL_ACK_POLICY_BLOCKACK 0x0060
-#define IEEE80211_QOS_CTL_ACK_POLICY_MASK 0x0060
-/* A-MSDU 802.11n */
-#define IEEE80211_QOS_CTL_A_MSDU_PRESENT 0x0080
-/* Mesh Control 802.11s */
-#define IEEE80211_QOS_CTL_MESH_CONTROL_PRESENT 0x0100
-
-/* U-APSD queue for WMM IEs sent by AP */
-#define IEEE80211_WMM_IE_AP_QOSINFO_UAPSD (1<<7)
-#define IEEE80211_WMM_IE_AP_QOSINFO_PARAM_SET_CNT_MASK 0x0f
-
-/* U-APSD queues for WMM IEs sent by STA */
-#define IEEE80211_WMM_IE_STA_QOSINFO_AC_VO (1<<0)
-#define IEEE80211_WMM_IE_STA_QOSINFO_AC_VI (1<<1)
-#define IEEE80211_WMM_IE_STA_QOSINFO_AC_BK (1<<2)
-#define IEEE80211_WMM_IE_STA_QOSINFO_AC_BE (1<<3)
-#define IEEE80211_WMM_IE_STA_QOSINFO_AC_MASK 0x0f
-
-/* U-APSD max SP length for WMM IEs sent by STA */
-#define IEEE80211_WMM_IE_STA_QOSINFO_SP_ALL 0x00
-#define IEEE80211_WMM_IE_STA_QOSINFO_SP_2 0x01
-#define IEEE80211_WMM_IE_STA_QOSINFO_SP_4 0x02
-#define IEEE80211_WMM_IE_STA_QOSINFO_SP_6 0x03
-#define IEEE80211_WMM_IE_STA_QOSINFO_SP_MASK 0x03
-#define IEEE80211_WMM_IE_STA_QOSINFO_SP_SHIFT 5
-
-#define IEEE80211_HT_CTL_LEN 4
-
-struct ieee80211_hdr {
- __le16 frame_control;
- __le16 duration_id;
- u8 addr1[6];
- u8 addr2[6];
- u8 addr3[6];
- __le16 seq_ctrl;
- u8 addr4[6];
-} __attribute__ ((packed));
-
-struct ieee80211_hdr_3addr {
- __le16 frame_control;
- __le16 duration_id;
- u8 addr1[6];
- u8 addr2[6];
- u8 addr3[6];
- __le16 seq_ctrl;
-} __attribute__ ((packed));
-
-struct ieee80211_qos_hdr {
- __le16 frame_control;
- __le16 duration_id;
- u8 addr1[6];
- u8 addr2[6];
- u8 addr3[6];
- __le16 seq_ctrl;
- __le16 qos_ctrl;
-} __attribute__ ((packed));
-
-/**
- * ieee80211_has_tods - check if IEEE80211_FCTL_TODS is set
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_has_tods(__le16 fc)
-{
- return (fc & cpu_to_le16(IEEE80211_FCTL_TODS)) != 0;
-}
-
-/**
- * ieee80211_has_fromds - check if IEEE80211_FCTL_FROMDS is set
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_has_fromds(__le16 fc)
-{
- return (fc & cpu_to_le16(IEEE80211_FCTL_FROMDS)) != 0;
-}
-
-/**
- * ieee80211_has_a4 - check if IEEE80211_FCTL_TODS and IEEE80211_FCTL_FROMDS are set
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_has_a4(__le16 fc)
-{
- __le16 tmp = cpu_to_le16(IEEE80211_FCTL_TODS | IEEE80211_FCTL_FROMDS);
- return (fc & tmp) == tmp;
-}
-
-/**
- * ieee80211_has_morefrags - check if IEEE80211_FCTL_MOREFRAGS is set
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_has_morefrags(__le16 fc)
-{
- return (fc & cpu_to_le16(IEEE80211_FCTL_MOREFRAGS)) != 0;
-}
-
-/**
- * ieee80211_has_retry - check if IEEE80211_FCTL_RETRY is set
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_has_retry(__le16 fc)
-{
- return (fc & cpu_to_le16(IEEE80211_FCTL_RETRY)) != 0;
-}
-
-/**
- * ieee80211_has_pm - check if IEEE80211_FCTL_PM is set
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_has_pm(__le16 fc)
-{
- return (fc & cpu_to_le16(IEEE80211_FCTL_PM)) != 0;
-}
-
-/**
- * ieee80211_has_moredata - check if IEEE80211_FCTL_MOREDATA is set
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_has_moredata(__le16 fc)
-{
- return (fc & cpu_to_le16(IEEE80211_FCTL_MOREDATA)) != 0;
-}
-
-/**
- * ieee80211_has_protected - check if IEEE80211_FCTL_PROTECTED is set
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_has_protected(__le16 fc)
-{
- return (fc & cpu_to_le16(IEEE80211_FCTL_PROTECTED)) != 0;
-}
-
-/**
- * ieee80211_has_order - check if IEEE80211_FCTL_ORDER is set
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_has_order(__le16 fc)
-{
- return (fc & cpu_to_le16(IEEE80211_FCTL_ORDER)) != 0;
-}
-
-/**
- * ieee80211_is_mgmt - check if type is IEEE80211_FTYPE_MGMT
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_is_mgmt(__le16 fc)
-{
- return (fc & cpu_to_le16(IEEE80211_FCTL_FTYPE)) ==
- cpu_to_le16(IEEE80211_FTYPE_MGMT);
-}
-
-/**
- * ieee80211_is_ctl - check if type is IEEE80211_FTYPE_CTL
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_is_ctl(__le16 fc)
-{
- return (fc & cpu_to_le16(IEEE80211_FCTL_FTYPE)) ==
- cpu_to_le16(IEEE80211_FTYPE_CTL);
-}
-
-/**
- * ieee80211_is_data - check if type is IEEE80211_FTYPE_DATA
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_is_data(__le16 fc)
-{
- return (fc & cpu_to_le16(IEEE80211_FCTL_FTYPE)) ==
- cpu_to_le16(IEEE80211_FTYPE_DATA);
-}
-
-/**
- * ieee80211_is_data_qos - check if type is IEEE80211_FTYPE_DATA and IEEE80211_STYPE_QOS_DATA is set
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_is_data_qos(__le16 fc)
-{
- /*
- * mask with QOS_DATA rather than IEEE80211_FCTL_STYPE as we just need
- * to check the one bit
- */
- return (fc & cpu_to_le16(IEEE80211_FCTL_FTYPE | IEEE80211_STYPE_QOS_DATA)) ==
- cpu_to_le16(IEEE80211_FTYPE_DATA | IEEE80211_STYPE_QOS_DATA);
-}
-
-/**
- * ieee80211_is_data_present - check if type is IEEE80211_FTYPE_DATA and has data
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_is_data_present(__le16 fc)
-{
- /*
- * mask with 0x40 and test that that bit is clear to only return true
- * for the data-containing substypes.
- */
- return (fc & cpu_to_le16(IEEE80211_FCTL_FTYPE | 0x40)) ==
- cpu_to_le16(IEEE80211_FTYPE_DATA);
-}
-
-/**
- * ieee80211_is_assoc_req - check if IEEE80211_FTYPE_MGMT && IEEE80211_STYPE_ASSOC_REQ
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_is_assoc_req(__le16 fc)
-{
- return (fc & cpu_to_le16(IEEE80211_FCTL_FTYPE | IEEE80211_FCTL_STYPE)) ==
- cpu_to_le16(IEEE80211_FTYPE_MGMT | IEEE80211_STYPE_ASSOC_REQ);
-}
-
-/**
- * ieee80211_is_assoc_resp - check if IEEE80211_FTYPE_MGMT && IEEE80211_STYPE_ASSOC_RESP
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_is_assoc_resp(__le16 fc)
-{
- return (fc & cpu_to_le16(IEEE80211_FCTL_FTYPE | IEEE80211_FCTL_STYPE)) ==
- cpu_to_le16(IEEE80211_FTYPE_MGMT | IEEE80211_STYPE_ASSOC_RESP);
-}
-
-/**
- * ieee80211_is_reassoc_req - check if IEEE80211_FTYPE_MGMT && IEEE80211_STYPE_REASSOC_REQ
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_is_reassoc_req(__le16 fc)
-{
- return (fc & cpu_to_le16(IEEE80211_FCTL_FTYPE | IEEE80211_FCTL_STYPE)) ==
- cpu_to_le16(IEEE80211_FTYPE_MGMT | IEEE80211_STYPE_REASSOC_REQ);
-}
-
-/**
- * ieee80211_is_reassoc_resp - check if IEEE80211_FTYPE_MGMT && IEEE80211_STYPE_REASSOC_RESP
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_is_reassoc_resp(__le16 fc)
-{
- return (fc & cpu_to_le16(IEEE80211_FCTL_FTYPE | IEEE80211_FCTL_STYPE)) ==
- cpu_to_le16(IEEE80211_FTYPE_MGMT | IEEE80211_STYPE_REASSOC_RESP);
-}
-
-/**
- * ieee80211_is_probe_req - check if IEEE80211_FTYPE_MGMT && IEEE80211_STYPE_PROBE_REQ
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_is_probe_req(__le16 fc)
-{
- return (fc & cpu_to_le16(IEEE80211_FCTL_FTYPE | IEEE80211_FCTL_STYPE)) ==
- cpu_to_le16(IEEE80211_FTYPE_MGMT | IEEE80211_STYPE_PROBE_REQ);
-}
-
-/**
- * ieee80211_is_probe_resp - check if IEEE80211_FTYPE_MGMT && IEEE80211_STYPE_PROBE_RESP
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_is_probe_resp(__le16 fc)
-{
- return (fc & cpu_to_le16(IEEE80211_FCTL_FTYPE | IEEE80211_FCTL_STYPE)) ==
- cpu_to_le16(IEEE80211_FTYPE_MGMT | IEEE80211_STYPE_PROBE_RESP);
-}
-
-/**
- * ieee80211_is_beacon - check if IEEE80211_FTYPE_MGMT && IEEE80211_STYPE_BEACON
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_is_beacon(__le16 fc)
-{
- return (fc & cpu_to_le16(IEEE80211_FCTL_FTYPE | IEEE80211_FCTL_STYPE)) ==
- cpu_to_le16(IEEE80211_FTYPE_MGMT | IEEE80211_STYPE_BEACON);
-}
-
-/**
- * ieee80211_is_atim - check if IEEE80211_FTYPE_MGMT && IEEE80211_STYPE_ATIM
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_is_atim(__le16 fc)
-{
- return (fc & cpu_to_le16(IEEE80211_FCTL_FTYPE | IEEE80211_FCTL_STYPE)) ==
- cpu_to_le16(IEEE80211_FTYPE_MGMT | IEEE80211_STYPE_ATIM);
-}
-
-/**
- * ieee80211_is_disassoc - check if IEEE80211_FTYPE_MGMT && IEEE80211_STYPE_DISASSOC
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_is_disassoc(__le16 fc)
-{
- return (fc & cpu_to_le16(IEEE80211_FCTL_FTYPE | IEEE80211_FCTL_STYPE)) ==
- cpu_to_le16(IEEE80211_FTYPE_MGMT | IEEE80211_STYPE_DISASSOC);
-}
-
-/**
- * ieee80211_is_auth - check if IEEE80211_FTYPE_MGMT && IEEE80211_STYPE_AUTH
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_is_auth(__le16 fc)
-{
- return (fc & cpu_to_le16(IEEE80211_FCTL_FTYPE | IEEE80211_FCTL_STYPE)) ==
- cpu_to_le16(IEEE80211_FTYPE_MGMT | IEEE80211_STYPE_AUTH);
-}
-
-/**
- * ieee80211_is_deauth - check if IEEE80211_FTYPE_MGMT && IEEE80211_STYPE_DEAUTH
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_is_deauth(__le16 fc)
-{
- return (fc & cpu_to_le16(IEEE80211_FCTL_FTYPE | IEEE80211_FCTL_STYPE)) ==
- cpu_to_le16(IEEE80211_FTYPE_MGMT | IEEE80211_STYPE_DEAUTH);
-}
-
-/**
- * ieee80211_is_action - check if IEEE80211_FTYPE_MGMT && IEEE80211_STYPE_ACTION
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_is_action(__le16 fc)
-{
- return (fc & cpu_to_le16(IEEE80211_FCTL_FTYPE | IEEE80211_FCTL_STYPE)) ==
- cpu_to_le16(IEEE80211_FTYPE_MGMT | IEEE80211_STYPE_ACTION);
-}
-
-/**
- * ieee80211_is_back_req - check if IEEE80211_FTYPE_CTL && IEEE80211_STYPE_BACK_REQ
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_is_back_req(__le16 fc)
-{
- return (fc & cpu_to_le16(IEEE80211_FCTL_FTYPE | IEEE80211_FCTL_STYPE)) ==
- cpu_to_le16(IEEE80211_FTYPE_CTL | IEEE80211_STYPE_BACK_REQ);
-}
-
-/**
- * ieee80211_is_back - check if IEEE80211_FTYPE_CTL && IEEE80211_STYPE_BACK
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_is_back(__le16 fc)
-{
- return (fc & cpu_to_le16(IEEE80211_FCTL_FTYPE | IEEE80211_FCTL_STYPE)) ==
- cpu_to_le16(IEEE80211_FTYPE_CTL | IEEE80211_STYPE_BACK);
-}
-
-/**
- * ieee80211_is_pspoll - check if IEEE80211_FTYPE_CTL && IEEE80211_STYPE_PSPOLL
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_is_pspoll(__le16 fc)
-{
- return (fc & cpu_to_le16(IEEE80211_FCTL_FTYPE | IEEE80211_FCTL_STYPE)) ==
- cpu_to_le16(IEEE80211_FTYPE_CTL | IEEE80211_STYPE_PSPOLL);
-}
-
-/**
- * ieee80211_is_rts - check if IEEE80211_FTYPE_CTL && IEEE80211_STYPE_RTS
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_is_rts(__le16 fc)
-{
- return (fc & cpu_to_le16(IEEE80211_FCTL_FTYPE | IEEE80211_FCTL_STYPE)) ==
- cpu_to_le16(IEEE80211_FTYPE_CTL | IEEE80211_STYPE_RTS);
-}
-
-/**
- * ieee80211_is_cts - check if IEEE80211_FTYPE_CTL && IEEE80211_STYPE_CTS
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_is_cts(__le16 fc)
-{
- return (fc & cpu_to_le16(IEEE80211_FCTL_FTYPE | IEEE80211_FCTL_STYPE)) ==
- cpu_to_le16(IEEE80211_FTYPE_CTL | IEEE80211_STYPE_CTS);
-}
-
-/**
- * ieee80211_is_ack - check if IEEE80211_FTYPE_CTL && IEEE80211_STYPE_ACK
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_is_ack(__le16 fc)
-{
- return (fc & cpu_to_le16(IEEE80211_FCTL_FTYPE | IEEE80211_FCTL_STYPE)) ==
- cpu_to_le16(IEEE80211_FTYPE_CTL | IEEE80211_STYPE_ACK);
-}
-
-/**
- * ieee80211_is_cfend - check if IEEE80211_FTYPE_CTL && IEEE80211_STYPE_CFEND
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_is_cfend(__le16 fc)
-{
- return (fc & cpu_to_le16(IEEE80211_FCTL_FTYPE | IEEE80211_FCTL_STYPE)) ==
- cpu_to_le16(IEEE80211_FTYPE_CTL | IEEE80211_STYPE_CFEND);
-}
-
-/**
- * ieee80211_is_cfendack - check if IEEE80211_FTYPE_CTL && IEEE80211_STYPE_CFENDACK
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_is_cfendack(__le16 fc)
-{
- return (fc & cpu_to_le16(IEEE80211_FCTL_FTYPE | IEEE80211_FCTL_STYPE)) ==
- cpu_to_le16(IEEE80211_FTYPE_CTL | IEEE80211_STYPE_CFENDACK);
-}
-
-/**
- * ieee80211_is_nullfunc - check if frame is a regular (non-QoS) nullfunc frame
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_is_nullfunc(__le16 fc)
-{
- return (fc & cpu_to_le16(IEEE80211_FCTL_FTYPE | IEEE80211_FCTL_STYPE)) ==
- cpu_to_le16(IEEE80211_FTYPE_DATA | IEEE80211_STYPE_NULLFUNC);
-}
-
-/**
- * ieee80211_is_qos_nullfunc - check if frame is a QoS nullfunc frame
- * @fc: frame control bytes in little-endian byteorder
- */
-static inline int ieee80211_is_qos_nullfunc(__le16 fc)
-{
- return (fc & cpu_to_le16(IEEE80211_FCTL_FTYPE | IEEE80211_FCTL_STYPE)) ==
- cpu_to_le16(IEEE80211_FTYPE_DATA | IEEE80211_STYPE_QOS_NULLFUNC);
-}
-
-/**
- * ieee80211_is_first_frag - check if IEEE80211_SCTL_FRAG is not set
- * @seq_ctrl: frame sequence control bytes in little-endian byteorder
- */
-static inline int ieee80211_is_first_frag(__le16 seq_ctrl)
-{
- return (seq_ctrl & cpu_to_le16(IEEE80211_SCTL_FRAG)) == 0;
-}
-
-struct ieee80211s_hdr {
- u8 flags;
- u8 ttl;
- __le32 seqnum;
- u8 eaddr1[6];
- u8 eaddr2[6];
-} __attribute__ ((packed));
-
-/* Mesh flags */
-#define MESH_FLAGS_AE_A4 0x1
-#define MESH_FLAGS_AE_A5_A6 0x2
-#define MESH_FLAGS_AE 0x3
-#define MESH_FLAGS_PS_DEEP 0x4
-
-/**
- * struct ieee80211_quiet_ie
- *
- * This structure refers to "Quiet information element"
- */
-struct ieee80211_quiet_ie {
- u8 count;
- u8 period;
- __le16 duration;
- __le16 offset;
-} __attribute__ ((packed));
-
-/**
- * struct ieee80211_msrment_ie
- *
- * This structure refers to "Measurement Request/Report information element"
- */
-struct ieee80211_msrment_ie {
- u8 token;
- u8 mode;
- u8 type;
- u8 request[0];
-} __attribute__ ((packed));
-
-/**
- * struct ieee80211_channel_sw_ie
- *
- * This structure refers to "Channel Switch Announcement information element"
- */
-struct ieee80211_channel_sw_ie {
- u8 mode;
- u8 new_ch_num;
- u8 count;
-} __attribute__ ((packed));
-
-/**
- * struct ieee80211_tim
- *
- * This structure refers to "Traffic Indication Map information element"
- */
-struct ieee80211_tim_ie {
- u8 dtim_count;
- u8 dtim_period;
- u8 bitmap_ctrl;
- /* variable size: 1 - 251 bytes */
- u8 virtual_map[1];
-} __attribute__ ((packed));
-
-/**
- * struct ieee80211_meshconf_ie
- *
- * This structure refers to "Mesh Configuration information element"
- */
-struct ieee80211_meshconf_ie {
- u8 meshconf_psel;
- u8 meshconf_pmetric;
- u8 meshconf_congest;
- u8 meshconf_synch;
- u8 meshconf_auth;
- u8 meshconf_form;
- u8 meshconf_cap;
-} __attribute__ ((packed));
-
-/**
- * struct ieee80211_rann_ie
- *
- * This structure refers to "Root Announcement information element"
- */
-struct ieee80211_rann_ie {
- u8 rann_flags;
- u8 rann_hopcount;
- u8 rann_ttl;
- u8 rann_addr[6];
- u32 rann_seq;
- u32 rann_interval;
- u32 rann_metric;
-} __attribute__ ((packed));
-
-enum ieee80211_rann_flags {
- RANN_FLAG_IS_GATE = 1 << 0,
-};
-
-#define WLAN_SA_QUERY_TR_ID_LEN 2
-
-struct ieee80211_mgmt {
- __le16 frame_control;
- __le16 duration;
- u8 da[6];
- u8 sa[6];
- u8 bssid[6];
- __le16 seq_ctrl;
- union {
- struct {
- __le16 auth_alg;
- __le16 auth_transaction;
- __le16 status_code;
- /* possibly followed by Challenge text */
- u8 variable[0];
- } __attribute__ ((packed)) auth;
- struct {
- __le16 reason_code;
- } __attribute__ ((packed)) deauth;
- struct {
- __le16 capab_info;
- __le16 listen_interval;
- /* followed by SSID and Supported rates */
- u8 variable[0];
- } __attribute__ ((packed)) assoc_req;
- struct {
- __le16 capab_info;
- __le16 status_code;
- __le16 aid;
- /* followed by Supported rates */
- u8 variable[0];
- } __attribute__ ((packed)) assoc_resp, reassoc_resp;
- struct {
- __le16 capab_info;
- __le16 listen_interval;
- u8 current_ap[6];
- /* followed by SSID and Supported rates */
- u8 variable[0];
- } __attribute__ ((packed)) reassoc_req;
- struct {
- __le16 reason_code;
- } __attribute__ ((packed)) disassoc;
- struct {
- __le64 timestamp;
- __le16 beacon_int;
- __le16 capab_info;
- /* followed by some of SSID, Supported rates,
- * FH Params, DS Params, CF Params, IBSS Params, TIM */
- u8 variable[0];
- } __attribute__ ((packed)) beacon;
- struct {
- /* only variable items: SSID, Supported rates */
- u8 variable[0];
- } __attribute__ ((packed)) probe_req;
- struct {
- __le64 timestamp;
- __le16 beacon_int;
- __le16 capab_info;
- /* followed by some of SSID, Supported rates,
- * FH Params, DS Params, CF Params, IBSS Params */
- u8 variable[0];
- } __attribute__ ((packed)) probe_resp;
- struct {
- u8 category;
- union {
- struct {
- u8 action_code;
- u8 dialog_token;
- u8 status_code;
- u8 variable[0];
- } __attribute__ ((packed)) wme_action;
- struct{
- u8 action_code;
- u8 element_id;
- u8 length;
- struct ieee80211_channel_sw_ie sw_elem;
- } __attribute__((packed)) chan_switch;
- struct{
- u8 action_code;
- u8 dialog_token;
- u8 element_id;
- u8 length;
- struct ieee80211_msrment_ie msr_elem;
- } __attribute__((packed)) measurement;
- struct{
- u8 action_code;
- u8 dialog_token;
- __le16 capab;
- __le16 timeout;
- __le16 start_seq_num;
- } __attribute__((packed)) addba_req;
- struct{
- u8 action_code;
- u8 dialog_token;
- __le16 status;
- __le16 capab;
- __le16 timeout;
- } __attribute__((packed)) addba_resp;
- struct{
- u8 action_code;
- __le16 params;
- __le16 reason_code;
- } __attribute__((packed)) delba;
- struct {
- u8 action_code;
- u8 variable[0];
- } __attribute__((packed)) self_prot;
- struct{
- u8 action_code;
- u8 variable[0];
- } __attribute__((packed)) mesh_action;
- struct {
- u8 action;
- u8 trans_id[WLAN_SA_QUERY_TR_ID_LEN];
- } __attribute__ ((packed)) sa_query;
- struct {
- u8 action;
- u8 smps_control;
- } __attribute__ ((packed)) ht_smps;
- struct {
- u8 action_code;
- u8 dialog_token;
- __le16 capability;
- u8 variable[0];
- } __packed tdls_discover_resp;
- } u;
- } __attribute__ ((packed)) action;
- } u;
-} __attribute__ ((packed));
-
-/* Supported Rates value encodings in 802.11n-2009 7.3.2.2 */
-#define BSS_MEMBERSHIP_SELECTOR_HT_PHY 127
-
-/* mgmt header + 1 byte category code */
-#define IEEE80211_MIN_ACTION_SIZE offsetof(struct ieee80211_mgmt, u.action.u)
-
-
-/* Management MIC information element (IEEE 802.11w) */
-struct ieee80211_mmie {
- u8 element_id;
- u8 length;
- __le16 key_id;
- u8 sequence_number[6];
- u8 mic[8];
-} __attribute__ ((packed));
-
-struct ieee80211_vendor_ie {
- u8 element_id;
- u8 len;
- u8 oui[3];
- u8 oui_type;
-} __packed;
-
-/* Control frames */
-struct ieee80211_rts {
- __le16 frame_control;
- __le16 duration;
- u8 ra[6];
- u8 ta[6];
-} __attribute__ ((packed));
-
-struct ieee80211_cts {
- __le16 frame_control;
- __le16 duration;
- u8 ra[6];
-} __attribute__ ((packed));
-
-struct ieee80211_pspoll {
- __le16 frame_control;
- __le16 aid;
- u8 bssid[6];
- u8 ta[6];
-} __attribute__ ((packed));
-
-/* TDLS */
-
-/* Link-id information element */
-struct ieee80211_tdls_lnkie {
- u8 ie_type; /* Link Identifier IE */
- u8 ie_len;
- u8 bssid[6];
- u8 init_sta[6];
- u8 resp_sta[6];
-} __packed;
-
-struct ieee80211_tdls_data {
- u8 da[6];
- u8 sa[6];
- __be16 ether_type;
- u8 payload_type;
- u8 category;
- u8 action_code;
- union {
- struct {
- u8 dialog_token;
- __le16 capability;
- u8 variable[0];
- } __packed setup_req;
- struct {
- __le16 status_code;
- u8 dialog_token;
- __le16 capability;
- u8 variable[0];
- } __packed setup_resp;
- struct {
- __le16 status_code;
- u8 dialog_token;
- u8 variable[0];
- } __packed setup_cfm;
- struct {
- __le16 reason_code;
- u8 variable[0];
- } __packed teardown;
- struct {
- u8 dialog_token;
- u8 variable[0];
- } __packed discover_req;
- } u;
-} __packed;
-
-/**
- * struct ieee80211_bar - HT Block Ack Request
- *
- * This structure refers to "HT BlockAckReq" as
- * described in 802.11n draft section 7.2.1.7.1
- */
-struct ieee80211_bar {
- __le16 frame_control;
- __le16 duration;
- __u8 ra[6];
- __u8 ta[6];
- __le16 control;
- __le16 start_seq_num;
-} __attribute__((packed));
-
-/* 802.11 BAR control masks */
-#define IEEE80211_BAR_CTRL_ACK_POLICY_NORMAL 0x0000
-#define IEEE80211_BAR_CTRL_MULTI_TID 0x0002
-#define IEEE80211_BAR_CTRL_CBMTID_COMPRESSED_BA 0x0004
-#define IEEE80211_BAR_CTRL_TID_INFO_MASK 0xf000
-#define IEEE80211_BAR_CTRL_TID_INFO_SHIFT 12
-
-#define IEEE80211_HT_MCS_MASK_LEN 10
-
-/**
- * struct ieee80211_mcs_info - MCS information
- * @rx_mask: RX mask
- * @rx_highest: highest supported RX rate. If set represents
- * the highest supported RX data rate in units of 1 Mbps.
- * If this field is 0 this value should not be used to
- * consider the highest RX data rate supported.
- * @tx_params: TX parameters
- */
-struct ieee80211_mcs_info {
- u8 rx_mask[IEEE80211_HT_MCS_MASK_LEN];
- __le16 rx_highest;
- u8 tx_params;
- u8 reserved[3];
-} __attribute__((packed));
-
-/* 802.11n HT capability MSC set */
-#define IEEE80211_HT_MCS_RX_HIGHEST_MASK 0x3ff
-#define IEEE80211_HT_MCS_TX_DEFINED 0x01
-#define IEEE80211_HT_MCS_TX_RX_DIFF 0x02
-/* value 0 == 1 stream etc */
-#define IEEE80211_HT_MCS_TX_MAX_STREAMS_MASK 0x0C
-#define IEEE80211_HT_MCS_TX_MAX_STREAMS_SHIFT 2
-#define IEEE80211_HT_MCS_TX_MAX_STREAMS 4
-#define IEEE80211_HT_MCS_TX_UNEQUAL_MODULATION 0x10
-
-/*
- * 802.11n D5.0 20.3.5 / 20.6 says:
- * - indices 0 to 7 and 32 are single spatial stream
- * - 8 to 31 are multiple spatial streams using equal modulation
- * [8..15 for two streams, 16..23 for three and 24..31 for four]
- * - remainder are multiple spatial streams using unequal modulation
- */
-#define IEEE80211_HT_MCS_UNEQUAL_MODULATION_START 33
-#define IEEE80211_HT_MCS_UNEQUAL_MODULATION_START_BYTE \
- (IEEE80211_HT_MCS_UNEQUAL_MODULATION_START / 8)
-
-/**
- * struct ieee80211_ht_cap - HT capabilities
- *
- * This structure is the "HT capabilities element" as
- * described in 802.11n D5.0 7.3.2.57
- */
-struct ieee80211_ht_cap {
- __le16 cap_info;
- u8 ampdu_params_info;
-
- /* 16 bytes MCS information */
- struct ieee80211_mcs_info mcs;
-
- __le16 extended_ht_cap_info;
- __le32 tx_BF_cap_info;
- u8 antenna_selection_info;
-} __attribute__ ((packed));
-
-/* 802.11n HT capabilities masks (for cap_info) */
-#define IEEE80211_HT_CAP_LDPC_CODING 0x0001
-#define IEEE80211_HT_CAP_SUP_WIDTH_20_40 0x0002
-#define IEEE80211_HT_CAP_SM_PS 0x000C
-#define IEEE80211_HT_CAP_SM_PS_SHIFT 2
-#define IEEE80211_HT_CAP_GRN_FLD 0x0010
-#define IEEE80211_HT_CAP_SGI_20 0x0020
-#define IEEE80211_HT_CAP_SGI_40 0x0040
-#define IEEE80211_HT_CAP_TX_STBC 0x0080
-#define IEEE80211_HT_CAP_RX_STBC 0x0300
-#define IEEE80211_HT_CAP_RX_STBC_SHIFT 8
-#define IEEE80211_HT_CAP_DELAY_BA 0x0400
-#define IEEE80211_HT_CAP_MAX_AMSDU 0x0800
-#define IEEE80211_HT_CAP_DSSSCCK40 0x1000
-#define IEEE80211_HT_CAP_RESERVED 0x2000
-#define IEEE80211_HT_CAP_40MHZ_INTOLERANT 0x4000
-#define IEEE80211_HT_CAP_LSIG_TXOP_PROT 0x8000
-
-/* 802.11n HT extended capabilities masks (for extended_ht_cap_info) */
-#define IEEE80211_HT_EXT_CAP_PCO 0x0001
-#define IEEE80211_HT_EXT_CAP_PCO_TIME 0x0006
-#define IEEE80211_HT_EXT_CAP_PCO_TIME_SHIFT 1
-#define IEEE80211_HT_EXT_CAP_MCS_FB 0x0300
-#define IEEE80211_HT_EXT_CAP_MCS_FB_SHIFT 8
-#define IEEE80211_HT_EXT_CAP_HTC_SUP 0x0400
-#define IEEE80211_HT_EXT_CAP_RD_RESPONDER 0x0800
-
-/* 802.11n HT capability AMPDU settings (for ampdu_params_info) */
-#define IEEE80211_HT_AMPDU_PARM_FACTOR 0x03
-#define IEEE80211_HT_AMPDU_PARM_DENSITY 0x1C
-#define IEEE80211_HT_AMPDU_PARM_DENSITY_SHIFT 2
-
-/*
- * Maximum length of AMPDU that the STA can receive.
- * Length = 2 ^ (13 + max_ampdu_length_exp) - 1 (octets)
- */
-enum ieee80211_max_ampdu_length_exp {
- IEEE80211_HT_MAX_AMPDU_8K = 0,
- IEEE80211_HT_MAX_AMPDU_16K = 1,
- IEEE80211_HT_MAX_AMPDU_32K = 2,
- IEEE80211_HT_MAX_AMPDU_64K = 3
-};
-
-#define IEEE80211_HT_MAX_AMPDU_FACTOR 13
-
-/* Minimum MPDU start spacing */
-enum ieee80211_min_mpdu_spacing {
- IEEE80211_HT_MPDU_DENSITY_NONE = 0, /* No restriction */
- IEEE80211_HT_MPDU_DENSITY_0_25 = 1, /* 1/4 usec */
- IEEE80211_HT_MPDU_DENSITY_0_5 = 2, /* 1/2 usec */
- IEEE80211_HT_MPDU_DENSITY_1 = 3, /* 1 usec */
- IEEE80211_HT_MPDU_DENSITY_2 = 4, /* 2 usec */
- IEEE80211_HT_MPDU_DENSITY_4 = 5, /* 4 usec */
- IEEE80211_HT_MPDU_DENSITY_8 = 6, /* 8 usec */
- IEEE80211_HT_MPDU_DENSITY_16 = 7 /* 16 usec */
-};
-
-/**
- * struct ieee80211_ht_info - HT information
- *
- * This structure is the "HT information element" as
- * described in 802.11n D5.0 7.3.2.58
- */
-struct ieee80211_ht_info {
- u8 control_chan;
- u8 ht_param;
- __le16 operation_mode;
- __le16 stbc_param;
- u8 basic_set[16];
-} __attribute__ ((packed));
-
-/* for ht_param */
-#define IEEE80211_HT_PARAM_CHA_SEC_OFFSET 0x03
-#define IEEE80211_HT_PARAM_CHA_SEC_NONE 0x00
-#define IEEE80211_HT_PARAM_CHA_SEC_ABOVE 0x01
-#define IEEE80211_HT_PARAM_CHA_SEC_BELOW 0x03
-#define IEEE80211_HT_PARAM_CHAN_WIDTH_ANY 0x04
-#define IEEE80211_HT_PARAM_RIFS_MODE 0x08
-#define IEEE80211_HT_PARAM_SPSMP_SUPPORT 0x10
-#define IEEE80211_HT_PARAM_SERV_INTERVAL_GRAN 0xE0
-
-/* for operation_mode */
-#define IEEE80211_HT_OP_MODE_PROTECTION 0x0003
-#define IEEE80211_HT_OP_MODE_PROTECTION_NONE 0
-#define IEEE80211_HT_OP_MODE_PROTECTION_NONMEMBER 1
-#define IEEE80211_HT_OP_MODE_PROTECTION_20MHZ 2
-#define IEEE80211_HT_OP_MODE_PROTECTION_NONHT_MIXED 3
-#define IEEE80211_HT_OP_MODE_NON_GF_STA_PRSNT 0x0004
-#define IEEE80211_HT_OP_MODE_NON_HT_STA_PRSNT 0x0010
-
-/* for stbc_param */
-#define IEEE80211_HT_STBC_PARAM_DUAL_BEACON 0x0040
-#define IEEE80211_HT_STBC_PARAM_DUAL_CTS_PROT 0x0080
-#define IEEE80211_HT_STBC_PARAM_STBC_BEACON 0x0100
-#define IEEE80211_HT_STBC_PARAM_LSIG_TXOP_FULLPROT 0x0200
-#define IEEE80211_HT_STBC_PARAM_PCO_ACTIVE 0x0400
-#define IEEE80211_HT_STBC_PARAM_PCO_PHASE 0x0800
-
-
-/* block-ack parameters */
-#define IEEE80211_ADDBA_PARAM_POLICY_MASK 0x0002
-#define IEEE80211_ADDBA_PARAM_TID_MASK 0x003C
-#define IEEE80211_ADDBA_PARAM_BUF_SIZE_MASK 0xFFC0
-#define IEEE80211_DELBA_PARAM_TID_MASK 0xF000
-#define IEEE80211_DELBA_PARAM_INITIATOR_MASK 0x0800
-
-/*
- * A-PMDU buffer sizes
- * According to IEEE802.11n spec size varies from 8K to 64K (in powers of 2)
- */
-#define IEEE80211_MIN_AMPDU_BUF 0x8
-#define IEEE80211_MAX_AMPDU_BUF 0x40
-
-
-/* Spatial Multiplexing Power Save Modes (for capability) */
-#define WLAN_HT_CAP_SM_PS_STATIC 0
-#define WLAN_HT_CAP_SM_PS_DYNAMIC 1
-#define WLAN_HT_CAP_SM_PS_INVALID 2
-#define WLAN_HT_CAP_SM_PS_DISABLED 3
-
-/* for SM power control field lower two bits */
-#define WLAN_HT_SMPS_CONTROL_DISABLED 0
-#define WLAN_HT_SMPS_CONTROL_STATIC 1
-#define WLAN_HT_SMPS_CONTROL_DYNAMIC 3
-
-/* Authentication algorithms */
-#define WLAN_AUTH_OPEN 0
-#define WLAN_AUTH_SHARED_KEY 1
-#define WLAN_AUTH_FT 2
-#define WLAN_AUTH_SAE 3
-#define WLAN_AUTH_LEAP 128
-
-#define WLAN_AUTH_CHALLENGE_LEN 128
-
-#define WLAN_CAPABILITY_ESS (1<<0)
-#define WLAN_CAPABILITY_IBSS (1<<1)
-
-/*
- * A mesh STA sets the ESS and IBSS capability bits to zero.
- * however, this holds true for p2p probe responses (in the p2p_find
- * phase) as well.
- */
-#define WLAN_CAPABILITY_IS_STA_BSS(cap) \
- (!((cap) & (WLAN_CAPABILITY_ESS | WLAN_CAPABILITY_IBSS)))
-
-#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)
-
-/* 802.11h */
-#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)
-/* measurement */
-#define IEEE80211_SPCT_MSR_RPRT_MODE_LATE (1<<0)
-#define IEEE80211_SPCT_MSR_RPRT_MODE_INCAPABLE (1<<1)
-#define IEEE80211_SPCT_MSR_RPRT_MODE_REFUSED (1<<2)
-
-#define IEEE80211_SPCT_MSR_RPRT_TYPE_BASIC 0
-#define IEEE80211_SPCT_MSR_RPRT_TYPE_CCA 1
-#define IEEE80211_SPCT_MSR_RPRT_TYPE_RPI 2
-
-
-/* 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)
-
-/* WLAN_ERP_BARKER_PREAMBLE values */
-enum {
- WLAN_ERP_PREAMBLE_SHORT = 0,
- WLAN_ERP_PREAMBLE_LONG = 1,
-};
-
-/* Status codes */
-enum ieee80211_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.11w */
- WLAN_STATUS_ASSOC_REJECTED_TEMPORARILY = 30,
- WLAN_STATUS_ROBUST_MGMT_FRAME_POLICY_VIOLATION = 31,
- /* 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,
- /* 802.11e */
- WLAN_STATUS_UNSPECIFIED_QOS = 32,
- WLAN_STATUS_ASSOC_DENIED_NOBANDWIDTH = 33,
- WLAN_STATUS_ASSOC_DENIED_LOWACK = 34,
- WLAN_STATUS_ASSOC_DENIED_UNSUPP_QOS = 35,
- WLAN_STATUS_REQUEST_DECLINED = 37,
- WLAN_STATUS_INVALID_QOS_PARAM = 38,
- WLAN_STATUS_CHANGE_TSPEC = 39,
- WLAN_STATUS_WAIT_TS_DELAY = 47,
- WLAN_STATUS_NO_DIRECT_LINK = 48,
- WLAN_STATUS_STA_NOT_PRESENT = 49,
- WLAN_STATUS_STA_NOT_QSTA = 50,
- /* 802.11s */
- WLAN_STATUS_ANTI_CLOG_REQUIRED = 76,
- WLAN_STATUS_FCG_NOT_SUPP = 78,
- WLAN_STATUS_STA_NO_TBTT = 78,
-};
-
-
-/* Reason codes */
-enum ieee80211_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,
- /* 802.11e */
- WLAN_REASON_DISASSOC_UNSPECIFIED_QOS = 32,
- WLAN_REASON_DISASSOC_QAP_NO_BANDWIDTH = 33,
- WLAN_REASON_DISASSOC_LOW_ACK = 34,
- WLAN_REASON_DISASSOC_QAP_EXCEED_TXOP = 35,
- WLAN_REASON_QSTA_LEAVE_QBSS = 36,
- WLAN_REASON_QSTA_NOT_USE = 37,
- WLAN_REASON_QSTA_REQUIRE_SETUP = 38,
- WLAN_REASON_QSTA_TIMEOUT = 39,
- WLAN_REASON_QSTA_CIPHER_NOT_SUPP = 45,
- /* 802.11s */
- WLAN_REASON_MESH_PEER_CANCELED = 52,
- WLAN_REASON_MESH_MAX_PEERS = 53,
- WLAN_REASON_MESH_CONFIG = 54,
- WLAN_REASON_MESH_CLOSE = 55,
- WLAN_REASON_MESH_MAX_RETRIES = 56,
- WLAN_REASON_MESH_CONFIRM_TIMEOUT = 57,
- WLAN_REASON_MESH_INVALID_GTK = 58,
- WLAN_REASON_MESH_INCONSISTENT_PARAM = 59,
- WLAN_REASON_MESH_INVALID_SECURITY = 60,
- WLAN_REASON_MESH_PATH_ERROR = 61,
- WLAN_REASON_MESH_PATH_NOFORWARD = 62,
- WLAN_REASON_MESH_PATH_DEST_UNREACHABLE = 63,
- WLAN_REASON_MAC_EXISTS_IN_MBSS = 64,
- WLAN_REASON_MESH_CHAN_REGULATORY = 65,
- WLAN_REASON_MESH_CHAN = 66,
-};
-
-
-/* Information Element IDs */
-enum ieee80211_eid {
- WLAN_EID_SSID = 0,
- WLAN_EID_SUPP_RATES = 1,
- WLAN_EID_FH_PARAMS = 2,
- WLAN_EID_DS_PARAMS = 3,
- WLAN_EID_CF_PARAMS = 4,
- WLAN_EID_TIM = 5,
- WLAN_EID_IBSS_PARAMS = 6,
- WLAN_EID_CHALLENGE = 16,
-
- WLAN_EID_COUNTRY = 7,
- WLAN_EID_HP_PARAMS = 8,
- WLAN_EID_HP_TABLE = 9,
- WLAN_EID_REQUEST = 10,
-
- WLAN_EID_QBSS_LOAD = 11,
- WLAN_EID_EDCA_PARAM_SET = 12,
- WLAN_EID_TSPEC = 13,
- WLAN_EID_TCLAS = 14,
- WLAN_EID_SCHEDULE = 15,
- WLAN_EID_TS_DELAY = 43,
- WLAN_EID_TCLAS_PROCESSING = 44,
- WLAN_EID_QOS_CAPA = 46,
- /* 802.11z */
- WLAN_EID_LINK_ID = 101,
- /* 802.11s */
- WLAN_EID_MESH_CONFIG = 113,
- WLAN_EID_MESH_ID = 114,
- WLAN_EID_LINK_METRIC_REPORT = 115,
- WLAN_EID_CONGESTION_NOTIFICATION = 116,
- WLAN_EID_PEER_MGMT = 117,
- WLAN_EID_CHAN_SWITCH_PARAM = 118,
- WLAN_EID_MESH_AWAKE_WINDOW = 119,
- WLAN_EID_BEACON_TIMING = 120,
- WLAN_EID_MCCAOP_SETUP_REQ = 121,
- WLAN_EID_MCCAOP_SETUP_RESP = 122,
- WLAN_EID_MCCAOP_ADVERT = 123,
- WLAN_EID_MCCAOP_TEARDOWN = 124,
- WLAN_EID_GANN = 125,
- WLAN_EID_RANN = 126,
- WLAN_EID_PREQ = 130,
- WLAN_EID_PREP = 131,
- WLAN_EID_PERR = 132,
- WLAN_EID_PXU = 137,
- WLAN_EID_PXUC = 138,
- WLAN_EID_AUTH_MESH_PEER_EXCH = 139,
- WLAN_EID_MIC = 140,
-
- WLAN_EID_PWR_CONSTRAINT = 32,
- WLAN_EID_PWR_CAPABILITY = 33,
- WLAN_EID_TPC_REQUEST = 34,
- WLAN_EID_TPC_REPORT = 35,
- WLAN_EID_SUPPORTED_CHANNELS = 36,
- WLAN_EID_CHANNEL_SWITCH = 37,
- WLAN_EID_MEASURE_REQUEST = 38,
- WLAN_EID_MEASURE_REPORT = 39,
- WLAN_EID_QUIET = 40,
- WLAN_EID_IBSS_DFS = 41,
-
- WLAN_EID_ERP_INFO = 42,
- WLAN_EID_EXT_SUPP_RATES = 50,
-
- WLAN_EID_HT_CAPABILITY = 45,
- WLAN_EID_HT_INFORMATION = 61,
-
- WLAN_EID_RSN = 48,
- WLAN_EID_MMIE = 76,
- WLAN_EID_WPA = 221,
- WLAN_EID_GENERIC = 221,
- WLAN_EID_VENDOR_SPECIFIC = 221,
- WLAN_EID_QOS_PARAMETER = 222,
-
- WLAN_EID_AP_CHAN_REPORT = 51,
- WLAN_EID_NEIGHBOR_REPORT = 52,
- WLAN_EID_RCPI = 53,
- WLAN_EID_BSS_AVG_ACCESS_DELAY = 63,
- WLAN_EID_ANTENNA_INFO = 64,
- WLAN_EID_RSNI = 65,
- WLAN_EID_MEASUREMENT_PILOT_TX_INFO = 66,
- WLAN_EID_BSS_AVAILABLE_CAPACITY = 67,
- WLAN_EID_BSS_AC_ACCESS_DELAY = 68,
- WLAN_EID_RRM_ENABLED_CAPABILITIES = 70,
- WLAN_EID_MULTIPLE_BSSID = 71,
- WLAN_EID_BSS_COEX_2040 = 72,
- WLAN_EID_OVERLAP_BSS_SCAN_PARAM = 74,
- WLAN_EID_EXT_CAPABILITY = 127,
-
- WLAN_EID_MOBILITY_DOMAIN = 54,
- WLAN_EID_FAST_BSS_TRANSITION = 55,
- WLAN_EID_TIMEOUT_INTERVAL = 56,
- WLAN_EID_RIC_DATA = 57,
- WLAN_EID_RIC_DESCRIPTOR = 75,
-
- WLAN_EID_DSE_REGISTERED_LOCATION = 58,
- WLAN_EID_SUPPORTED_REGULATORY_CLASSES = 59,
- WLAN_EID_EXT_CHANSWITCH_ANN = 60,
-};
-
-/* Action category code */
-enum ieee80211_category {
- WLAN_CATEGORY_SPECTRUM_MGMT = 0,
- WLAN_CATEGORY_QOS = 1,
- WLAN_CATEGORY_DLS = 2,
- WLAN_CATEGORY_BACK = 3,
- WLAN_CATEGORY_PUBLIC = 4,
- WLAN_CATEGORY_HT = 7,
- WLAN_CATEGORY_SA_QUERY = 8,
- WLAN_CATEGORY_PROTECTED_DUAL_OF_ACTION = 9,
- WLAN_CATEGORY_TDLS = 12,
- WLAN_CATEGORY_MESH_ACTION = 13,
- WLAN_CATEGORY_MULTIHOP_ACTION = 14,
- WLAN_CATEGORY_SELF_PROTECTED = 15,
- WLAN_CATEGORY_WMM = 17,
- WLAN_CATEGORY_VENDOR_SPECIFIC_PROTECTED = 126,
- WLAN_CATEGORY_VENDOR_SPECIFIC = 127,
-};
-
-/* SPECTRUM_MGMT action code */
-enum ieee80211_spectrum_mgmt_actioncode {
- WLAN_ACTION_SPCT_MSR_REQ = 0,
- WLAN_ACTION_SPCT_MSR_RPRT = 1,
- WLAN_ACTION_SPCT_TPC_REQ = 2,
- WLAN_ACTION_SPCT_TPC_RPRT = 3,
- WLAN_ACTION_SPCT_CHL_SWITCH = 4,
-};
-
-/* HT action codes */
-enum ieee80211_ht_actioncode {
- WLAN_HT_ACTION_NOTIFY_CHANWIDTH = 0,
- WLAN_HT_ACTION_SMPS = 1,
- WLAN_HT_ACTION_PSMP = 2,
- WLAN_HT_ACTION_PCO_PHASE = 3,
- WLAN_HT_ACTION_CSI = 4,
- WLAN_HT_ACTION_NONCOMPRESSED_BF = 5,
- WLAN_HT_ACTION_COMPRESSED_BF = 6,
- WLAN_HT_ACTION_ASEL_IDX_FEEDBACK = 7,
-};
-
-/* Self Protected Action codes */
-enum ieee80211_self_protected_actioncode {
- WLAN_SP_RESERVED = 0,
- WLAN_SP_MESH_PEERING_OPEN = 1,
- WLAN_SP_MESH_PEERING_CONFIRM = 2,
- WLAN_SP_MESH_PEERING_CLOSE = 3,
- WLAN_SP_MGK_INFORM = 4,
- WLAN_SP_MGK_ACK = 5,
-};
-
-/* Mesh action codes */
-enum ieee80211_mesh_actioncode {
- WLAN_MESH_ACTION_LINK_METRIC_REPORT,
- WLAN_MESH_ACTION_HWMP_PATH_SELECTION,
- WLAN_MESH_ACTION_GATE_ANNOUNCEMENT,
- WLAN_MESH_ACTION_CONGESTION_CONTROL_NOTIFICATION,
- WLAN_MESH_ACTION_MCCA_SETUP_REQUEST,
- WLAN_MESH_ACTION_MCCA_SETUP_REPLY,
- WLAN_MESH_ACTION_MCCA_ADVERTISEMENT_REQUEST,
- WLAN_MESH_ACTION_MCCA_ADVERTISEMENT,
- WLAN_MESH_ACTION_MCCA_TEARDOWN,
- WLAN_MESH_ACTION_TBTT_ADJUSTMENT_REQUEST,
- WLAN_MESH_ACTION_TBTT_ADJUSTMENT_RESPONSE,
-};
-
-/* Security key length */
-enum ieee80211_key_len {
- WLAN_KEY_LEN_WEP40 = 5,
- WLAN_KEY_LEN_WEP104 = 13,
- WLAN_KEY_LEN_CCMP = 16,
- WLAN_KEY_LEN_TKIP = 32,
- WLAN_KEY_LEN_AES_CMAC = 16,
-};
-
-/* Public action codes */
-enum ieee80211_pub_actioncode {
- WLAN_PUB_ACTION_TDLS_DISCOVER_RES = 14,
-};
-
-/* TDLS action codes */
-enum ieee80211_tdls_actioncode {
- WLAN_TDLS_SETUP_REQUEST = 0,
- WLAN_TDLS_SETUP_RESPONSE = 1,
- WLAN_TDLS_SETUP_CONFIRM = 2,
- WLAN_TDLS_TEARDOWN = 3,
- WLAN_TDLS_PEER_TRAFFIC_INDICATION = 4,
- WLAN_TDLS_CHANNEL_SWITCH_REQUEST = 5,
- WLAN_TDLS_CHANNEL_SWITCH_RESPONSE = 6,
- WLAN_TDLS_PEER_PSM_REQUEST = 7,
- WLAN_TDLS_PEER_PSM_RESPONSE = 8,
- WLAN_TDLS_PEER_TRAFFIC_RESPONSE = 9,
- WLAN_TDLS_DISCOVERY_REQUEST = 10,
-};
-
-/*
- * TDLS capabililites to be enabled in the 5th byte of the
- * @WLAN_EID_EXT_CAPABILITY information element
- */
-#define WLAN_EXT_CAPA5_TDLS_ENABLED BIT(5)
-#define WLAN_EXT_CAPA5_TDLS_PROHIBITED BIT(6)
-
-/* TDLS specific payload type in the LLC/SNAP header */
-#define WLAN_TDLS_SNAP_RFTYPE 0x2
-
-/**
- * enum - mesh path selection protocol identifier
- *
- * @IEEE80211_PATH_PROTOCOL_HWMP: the default path selection protocol
- * @IEEE80211_PATH_PROTOCOL_VENDOR: a vendor specific protocol that will
- * be specified in a vendor specific information element
- */
-enum {
- IEEE80211_PATH_PROTOCOL_HWMP = 0,
- IEEE80211_PATH_PROTOCOL_VENDOR = 255,
-};
-
-/**
- * enum - mesh path selection metric identifier
- *
- * @IEEE80211_PATH_METRIC_AIRTIME: the default path selection metric
- * @IEEE80211_PATH_METRIC_VENDOR: a vendor specific metric that will be
- * specified in a vendor specific information element
- */
-enum {
- IEEE80211_PATH_METRIC_AIRTIME = 0,
- IEEE80211_PATH_METRIC_VENDOR = 255,
-};
-
-
-/*
- * IEEE 802.11-2007 7.3.2.9 Country information element
- *
- * Minimum length is 8 octets, ie len must be evenly
- * divisible by 2
- */
-
-/* Although the spec says 8 I'm seeing 6 in practice */
-#define IEEE80211_COUNTRY_IE_MIN_LEN 6
-
-/* The Country String field of the element shall be 3 octets in length */
-#define IEEE80211_COUNTRY_STRING_LEN 3
-
-/*
- * For regulatory extension stuff see IEEE 802.11-2007
- * Annex I (page 1141) and Annex J (page 1147). Also
- * review 7.3.2.9.
- *
- * When dot11RegulatoryClassesRequired is true and the
- * first_channel/reg_extension_id is >= 201 then the IE
- * compromises of the 'ext' struct represented below:
- *
- * - Regulatory extension ID - when generating IE this just needs
- * to be monotonically increasing for each triplet passed in
- * the IE
- * - Regulatory class - index into set of rules
- * - Coverage class - index into air propagation time (Table 7-27),
- * in microseconds, you can compute the air propagation time from
- * the index by multiplying by 3, so index 10 yields a propagation
- * of 10 us. Valid values are 0-31, values 32-255 are not defined
- * yet. A value of 0 inicates air propagation of <= 1 us.
- *
- * See also Table I.2 for Emission limit sets and table
- * I.3 for Behavior limit sets. Table J.1 indicates how to map
- * a reg_class to an emission limit set and behavior limit set.
- */
-#define IEEE80211_COUNTRY_EXTENSION_ID 201
-
-/*
- * Channels numbers in the IE must be monotonically increasing
- * if dot11RegulatoryClassesRequired is not true.
- *
- * If dot11RegulatoryClassesRequired is true consecutive
- * subband triplets following a regulatory triplet shall
- * have monotonically increasing first_channel number fields.
- *
- * Channel numbers shall not overlap.
- *
- * Note that max_power is signed.
- */
-struct ieee80211_country_ie_triplet {
- union {
- struct {
- u8 first_channel;
- u8 num_channels;
- s8 max_power;
- } __attribute__ ((packed)) chans;
- struct {
- u8 reg_extension_id;
- u8 reg_class;
- u8 coverage_class;
- } __attribute__ ((packed)) ext;
- };
-} __attribute__ ((packed));
-
-enum ieee80211_timeout_interval_type {
- WLAN_TIMEOUT_REASSOC_DEADLINE = 1 /* 802.11r */,
- WLAN_TIMEOUT_KEY_LIFETIME = 2 /* 802.11r */,
- WLAN_TIMEOUT_ASSOC_COMEBACK = 3 /* 802.11w */,
-};
-
-/* BACK action code */
-enum ieee80211_back_actioncode {
- WLAN_ACTION_ADDBA_REQ = 0,
- WLAN_ACTION_ADDBA_RESP = 1,
- WLAN_ACTION_DELBA = 2,
-};
-
-/* BACK (block-ack) parties */
-enum ieee80211_back_parties {
- WLAN_BACK_RECIPIENT = 0,
- WLAN_BACK_INITIATOR = 1,
-};
-
-/* SA Query action */
-enum ieee80211_sa_query_action {
- WLAN_ACTION_SA_QUERY_REQUEST = 0,
- WLAN_ACTION_SA_QUERY_RESPONSE = 1,
-};
-
-
-/* cipher suite selectors */
-#define WLAN_CIPHER_SUITE_USE_GROUP 0x000FAC00
-#define WLAN_CIPHER_SUITE_WEP40 0x000FAC01
-#define WLAN_CIPHER_SUITE_TKIP 0x000FAC02
-/* reserved: 0x000FAC03 */
-#define WLAN_CIPHER_SUITE_CCMP 0x000FAC04
-#define WLAN_CIPHER_SUITE_WEP104 0x000FAC05
-#define WLAN_CIPHER_SUITE_AES_CMAC 0x000FAC06
-
-#define WLAN_CIPHER_SUITE_SMS4 0x00147201
-
-/* AKM suite selectors */
-#define WLAN_AKM_SUITE_8021X 0x000FAC01
-#define WLAN_AKM_SUITE_PSK 0x000FAC02
-#define WLAN_AKM_SUITE_SAE 0x000FAC08
-#define WLAN_AKM_SUITE_FT_OVER_SAE 0x000FAC09
-
-#define WLAN_MAX_KEY_LEN 32
-
-#define WLAN_PMKID_LEN 16
-
-#define WLAN_OUI_WFA 0x506f9a
-#define WLAN_OUI_TYPE_WFA_P2P 9
-
-/*
- * WMM/802.11e Tspec Element
- */
-#define IEEE80211_WMM_IE_TSPEC_TID_MASK 0x0F
-#define IEEE80211_WMM_IE_TSPEC_TID_SHIFT 1
-
-enum ieee80211_tspec_status_code {
- IEEE80211_TSPEC_STATUS_ADMISS_ACCEPTED = 0,
- IEEE80211_TSPEC_STATUS_ADDTS_INVAL_PARAMS = 0x1,
-};
-
-struct ieee80211_tspec_ie {
- u8 element_id;
- u8 len;
- u8 oui[3];
- u8 oui_type;
- u8 oui_subtype;
- u8 version;
- __le16 tsinfo;
- u8 tsinfo_resvd;
- __le16 nominal_msdu;
- __le16 max_msdu;
- __le32 min_service_int;
- __le32 max_service_int;
- __le32 inactivity_int;
- __le32 suspension_int;
- __le32 service_start_time;
- __le32 min_data_rate;
- __le32 mean_data_rate;
- __le32 peak_data_rate;
- __le32 max_burst_size;
- __le32 delay_bound;
- __le32 min_phy_rate;
- __le16 sba;
- __le16 medium_time;
-} __packed;
-
-/**
- * ieee80211_get_qos_ctl - get pointer to qos control bytes
- * @hdr: the frame
- *
- * The qos ctrl bytes come after the frame_control, duration, seq_num
- * and 3 or 4 addresses of length ETH_ALEN.
- * 3 addr: 2 + 2 + 2 + 3*6 = 24
- * 4 addr: 2 + 2 + 2 + 4*6 = 30
- */
-static inline u8 *ieee80211_get_qos_ctl(struct ieee80211_hdr *hdr)
-{
- if (ieee80211_has_a4(hdr->frame_control))
- return (u8 *)hdr + 30;
- else
- return (u8 *)hdr + 24;
-}
-
-/**
- * ieee80211_get_SA - get pointer to SA
- * @hdr: the frame
- *
- * Given an 802.11 frame, this function returns the offset
- * to the source address (SA). It does not verify that the
- * header is long enough to contain the address, and the
- * header must be long enough to contain the frame control
- * field.
- */
-static inline u8 *ieee80211_get_SA(struct ieee80211_hdr *hdr)
-{
- if (ieee80211_has_a4(hdr->frame_control))
- return hdr->addr4;
- if (ieee80211_has_fromds(hdr->frame_control))
- return hdr->addr3;
- return hdr->addr2;
-}
-
-/**
- * ieee80211_get_DA - get pointer to DA
- * @hdr: the frame
- *
- * Given an 802.11 frame, this function returns the offset
- * to the destination address (DA). It does not verify that
- * the header is long enough to contain the address, and the
- * header must be long enough to contain the frame control
- * field.
- */
-static inline u8 *ieee80211_get_DA(struct ieee80211_hdr *hdr)
-{
- if (ieee80211_has_tods(hdr->frame_control))
- return hdr->addr3;
- else
- return hdr->addr1;
-}
-
-/**
- * ieee80211_is_robust_mgmt_frame - check if frame is a robust management frame
- * @hdr: the frame (buffer must include at least the first octet of payload)
- */
-static inline bool ieee80211_is_robust_mgmt_frame(struct ieee80211_hdr *hdr)
-{
- if (ieee80211_is_disassoc(hdr->frame_control) ||
- ieee80211_is_deauth(hdr->frame_control))
- return true;
-
- if (ieee80211_is_action(hdr->frame_control)) {
- u8 *category;
-
- /*
- * Action frames, excluding Public Action frames, are Robust
- * Management Frames. However, if we are looking at a Protected
- * frame, skip the check since the data may be encrypted and
- * the frame has already been found to be a Robust Management
- * Frame (by the other end).
- */
- if (ieee80211_has_protected(hdr->frame_control))
- return true;
- category = ((u8 *) hdr) + 24;
- return *category != WLAN_CATEGORY_PUBLIC &&
- *category != WLAN_CATEGORY_HT &&
- *category != WLAN_CATEGORY_SELF_PROTECTED &&
- *category != WLAN_CATEGORY_VENDOR_SPECIFIC;
- }
-
- return false;
-}
-
-/**
- * ieee80211_is_public_action - check if frame is a public action frame
- * @hdr: the frame
- * @len: length of the frame
- */
-static inline bool ieee80211_is_public_action(struct ieee80211_hdr *hdr,
- size_t len)
-{
- struct ieee80211_mgmt *mgmt = (void *)hdr;
-
- if (len < IEEE80211_MIN_ACTION_SIZE)
- return false;
- if (!ieee80211_is_action(hdr->frame_control))
- return false;
- return mgmt->u.action.category == WLAN_CATEGORY_PUBLIC;
-}
-
-/**
- * ieee80211_fhss_chan_to_freq - get channel frequency
- * @channel: the FHSS channel
- *
- * Convert IEEE802.11 FHSS channel to frequency (MHz)
- * Ref IEEE 802.11-2007 section 14.6
- */
-static inline int ieee80211_fhss_chan_to_freq(int channel)
-{
- if ((channel > 1) && (channel < 96))
- return channel + 2400;
- else
- return -1;
-}
-
-/**
- * ieee80211_freq_to_fhss_chan - get channel
- * @freq: the channels frequency
- *
- * Convert frequency (MHz) to IEEE802.11 FHSS channel
- * Ref IEEE 802.11-2007 section 14.6
- */
-static inline int ieee80211_freq_to_fhss_chan(int freq)
-{
- if ((freq > 2401) && (freq < 2496))
- return freq - 2400;
- else
- return -1;
-}
-
-/**
- * ieee80211_dsss_chan_to_freq - get channel center frequency
- * @channel: the DSSS channel
- *
- * Convert IEEE802.11 DSSS channel to the center frequency (MHz).
- * Ref IEEE 802.11-2007 section 15.6
- */
-static inline int ieee80211_dsss_chan_to_freq(int channel)
-{
- if ((channel > 0) && (channel < 14))
- return 2407 + (channel * 5);
- else if (channel == 14)
- return 2484;
- else
- return -1;
-}
-
-/**
- * ieee80211_freq_to_dsss_chan - get channel
- * @freq: the frequency
- *
- * Convert frequency (MHz) to IEEE802.11 DSSS channel
- * Ref IEEE 802.11-2007 section 15.6
- *
- * This routine selects the channel with the closest center frequency.
- */
-static inline int ieee80211_freq_to_dsss_chan(int freq)
-{
- if ((freq >= 2410) && (freq < 2475))
- return (freq - 2405) / 5;
- else if ((freq >= 2482) && (freq < 2487))
- return 14;
- else
- return -1;
-}
-
-/* Convert IEEE802.11 HR DSSS channel to frequency (MHz) and back
- * Ref IEEE 802.11-2007 section 18.4.6.2
- *
- * The channels and frequencies are the same as those defined for DSSS
- */
-#define ieee80211_hr_chan_to_freq(chan) ieee80211_dsss_chan_to_freq(chan)
-#define ieee80211_freq_to_hr_chan(freq) ieee80211_freq_to_dsss_chan(freq)
-
-/* Convert IEEE802.11 ERP channel to frequency (MHz) and back
- * Ref IEEE 802.11-2007 section 19.4.2
- */
-#define ieee80211_erp_chan_to_freq(chan) ieee80211_hr_chan_to_freq(chan)
-#define ieee80211_freq_to_erp_chan(freq) ieee80211_freq_to_hr_chan(freq)
-
-/**
- * ieee80211_ofdm_chan_to_freq - get channel center frequency
- * @s_freq: starting frequency == (dotChannelStartingFactor/2) MHz
- * @channel: the OFDM channel
- *
- * Convert IEEE802.11 OFDM channel to center frequency (MHz)
- * Ref IEEE 802.11-2007 section 17.3.8.3.2
- */
-static inline int ieee80211_ofdm_chan_to_freq(int s_freq, int channel)
-{
- if ((channel > 0) && (channel <= 200) &&
- (s_freq >= 4000))
- return s_freq + (channel * 5);
- else
- return -1;
-}
-
-/**
- * ieee80211_freq_to_ofdm_channel - get channel
- * @s_freq: starting frequency == (dotChannelStartingFactor/2) MHz
- * @freq: the frequency
- *
- * Convert frequency (MHz) to IEEE802.11 OFDM channel
- * Ref IEEE 802.11-2007 section 17.3.8.3.2
- *
- * This routine selects the channel with the closest center frequency.
- */
-static inline int ieee80211_freq_to_ofdm_chan(int s_freq, int freq)
-{
- if ((freq > (s_freq + 2)) && (freq <= (s_freq + 1202)) &&
- (s_freq >= 4000))
- return (freq + 2 - s_freq) / 5;
- else
- return -1;
-}
-
-/**
- * ieee80211_tu_to_usec - convert time units (TU) to microseconds
- * @tu: the TUs
- */
-static inline unsigned long ieee80211_tu_to_usec(unsigned long tu)
-{
- return 1024 * tu;
-}
-
-/**
- * ieee80211_check_tim - check if AID bit is set in TIM
- * @tim: the TIM IE
- * @tim_len: length of the TIM IE
- * @aid: the AID to look for
- */
-static inline bool ieee80211_check_tim(struct ieee80211_tim_ie *tim,
- u8 tim_len, u16 aid)
-{
- u8 mask;
- u8 index, indexn1, indexn2;
-
- if (unlikely(!tim || tim_len < sizeof(*tim)))
- return false;
-
- aid &= 0x3fff;
- index = aid / 8;
- mask = 1 << (aid & 7);
-
- indexn1 = tim->bitmap_ctrl & 0xfe;
- indexn2 = tim_len + indexn1 - 4;
-
- if (index < indexn1 || index > indexn2)
- return false;
-
- index -= indexn1;
-
- return !!(tim->virtual_map[index] & mask);
-}
-
-#endif /* LINUX_IEEE80211_H */
diff --git a/ANDROID_3.4.5/include/linux/if.h b/ANDROID_3.4.5/include/linux/if.h
deleted file mode 100644
index f995c663..00000000
--- a/ANDROID_3.4.5/include/linux/if.h
+++ /dev/null
@@ -1,233 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Global definitions for the INET interface module.
- *
- * Version: @(#)if.h 1.0.2 04/18/93
- *
- * Authors: Original taken from Berkeley UNIX 4.3, (c) UCB 1982-1988
- * Ross Biro
- * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.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.
- */
-#ifndef _LINUX_IF_H
-#define _LINUX_IF_H
-
-#include <linux/types.h> /* for "__kernel_caddr_t" et al */
-#include <linux/socket.h> /* for "struct sockaddr" et al */
-#include <linux/compiler.h> /* for "__user" et al */
-
-#define IFNAMSIZ 16
-#define IFALIASZ 256
-#include <linux/hdlc/ioctl.h>
-
-/* Standard interface flags (netdevice->flags). */
-#define IFF_UP 0x1 /* interface is up */
-#define IFF_BROADCAST 0x2 /* broadcast address valid */
-#define IFF_DEBUG 0x4 /* turn on debugging */
-#define IFF_LOOPBACK 0x8 /* is a loopback net */
-#define IFF_POINTOPOINT 0x10 /* interface is has p-p link */
-#define IFF_NOTRAILERS 0x20 /* avoid use of trailers */
-#define IFF_RUNNING 0x40 /* interface RFC2863 OPER_UP */
-#define IFF_NOARP 0x80 /* no ARP protocol */
-#define IFF_PROMISC 0x100 /* receive all packets */
-#define IFF_ALLMULTI 0x200 /* receive all multicast packets*/
-
-#define IFF_MASTER 0x400 /* master of a load balancer */
-#define IFF_SLAVE 0x800 /* slave of a load balancer */
-
-#define IFF_MULTICAST 0x1000 /* Supports multicast */
-
-#define IFF_PORTSEL 0x2000 /* can set media type */
-#define IFF_AUTOMEDIA 0x4000 /* auto media select active */
-#define IFF_DYNAMIC 0x8000 /* dialup device with changing addresses*/
-
-#define IFF_LOWER_UP 0x10000 /* driver signals L1 up */
-#define IFF_DORMANT 0x20000 /* driver signals dormant */
-
-#define IFF_ECHO 0x40000 /* echo sent packets */
-
-#define IFF_VOLATILE (IFF_LOOPBACK|IFF_POINTOPOINT|IFF_BROADCAST|IFF_ECHO|\
- IFF_MASTER|IFF_SLAVE|IFF_RUNNING|IFF_LOWER_UP|IFF_DORMANT)
-
-/* Private (from user) interface flags (netdevice->priv_flags). */
-#define IFF_802_1Q_VLAN 0x1 /* 802.1Q VLAN device. */
-#define IFF_EBRIDGE 0x2 /* Ethernet bridging device. */
-#define IFF_SLAVE_INACTIVE 0x4 /* bonding slave not the curr. active */
-#define IFF_MASTER_8023AD 0x8 /* bonding master, 802.3ad. */
-#define IFF_MASTER_ALB 0x10 /* bonding master, balance-alb. */
-#define IFF_BONDING 0x20 /* bonding master or slave */
-#define IFF_SLAVE_NEEDARP 0x40 /* need ARPs for validation */
-#define IFF_ISATAP 0x80 /* ISATAP interface (RFC4214) */
-#define IFF_MASTER_ARPMON 0x100 /* bonding master, ARP mon in use */
-#define IFF_WAN_HDLC 0x200 /* WAN HDLC device */
-#define IFF_XMIT_DST_RELEASE 0x400 /* dev_hard_start_xmit() is allowed to
- * release skb->dst
- */
-#define IFF_DONT_BRIDGE 0x800 /* disallow bridging this ether dev */
-#define IFF_DISABLE_NETPOLL 0x1000 /* disable netpoll at run-time */
-#define IFF_MACVLAN_PORT 0x2000 /* device used as macvlan port */
-#define IFF_BRIDGE_PORT 0x4000 /* device used as bridge port */
-#define IFF_OVS_DATAPATH 0x8000 /* device used as Open vSwitch
- * datapath port */
-#define IFF_TX_SKB_SHARING 0x10000 /* The interface supports sharing
- * skbs on transmit */
-#define IFF_UNICAST_FLT 0x20000 /* Supports unicast filtering */
-#define IFF_TEAM_PORT 0x40000 /* device used as team port */
-#define IFF_SUPP_NOFCS 0x80000 /* device supports sending custom FCS */
-
-
-#define IF_GET_IFACE 0x0001 /* for querying only */
-#define IF_GET_PROTO 0x0002
-
-/* For definitions see hdlc.h */
-#define IF_IFACE_V35 0x1000 /* V.35 serial interface */
-#define IF_IFACE_V24 0x1001 /* V.24 serial interface */
-#define IF_IFACE_X21 0x1002 /* X.21 serial interface */
-#define IF_IFACE_T1 0x1003 /* T1 telco serial interface */
-#define IF_IFACE_E1 0x1004 /* E1 telco serial interface */
-#define IF_IFACE_SYNC_SERIAL 0x1005 /* can't be set by software */
-#define IF_IFACE_X21D 0x1006 /* X.21 Dual Clocking (FarSite) */
-
-/* For definitions see hdlc.h */
-#define IF_PROTO_HDLC 0x2000 /* raw HDLC protocol */
-#define IF_PROTO_PPP 0x2001 /* PPP protocol */
-#define IF_PROTO_CISCO 0x2002 /* Cisco HDLC protocol */
-#define IF_PROTO_FR 0x2003 /* Frame Relay protocol */
-#define IF_PROTO_FR_ADD_PVC 0x2004 /* Create FR PVC */
-#define IF_PROTO_FR_DEL_PVC 0x2005 /* Delete FR PVC */
-#define IF_PROTO_X25 0x2006 /* X.25 */
-#define IF_PROTO_HDLC_ETH 0x2007 /* raw HDLC, Ethernet emulation */
-#define IF_PROTO_FR_ADD_ETH_PVC 0x2008 /* Create FR Ethernet-bridged PVC */
-#define IF_PROTO_FR_DEL_ETH_PVC 0x2009 /* Delete FR Ethernet-bridged PVC */
-#define IF_PROTO_FR_PVC 0x200A /* for reading PVC status */
-#define IF_PROTO_FR_ETH_PVC 0x200B
-#define IF_PROTO_RAW 0x200C /* RAW Socket */
-
-/* RFC 2863 operational status */
-enum {
- IF_OPER_UNKNOWN,
- IF_OPER_NOTPRESENT,
- IF_OPER_DOWN,
- IF_OPER_LOWERLAYERDOWN,
- IF_OPER_TESTING,
- IF_OPER_DORMANT,
- IF_OPER_UP,
-};
-
-/* link modes */
-enum {
- IF_LINK_MODE_DEFAULT,
- IF_LINK_MODE_DORMANT, /* limit upward transition to dormant */
-};
-
-/*
- * Device mapping structure. I'd just gone off and designed a
- * beautiful scheme using only loadable modules with arguments
- * for driver options and along come the PCMCIA people 8)
- *
- * Ah well. The get() side of this is good for WDSETUP, and it'll
- * be handy for debugging things. The set side is fine for now and
- * being very small might be worth keeping for clean configuration.
- */
-
-struct ifmap {
- unsigned long mem_start;
- unsigned long mem_end;
- unsigned short base_addr;
- unsigned char irq;
- unsigned char dma;
- unsigned char port;
- /* 3 bytes spare */
-};
-
-struct if_settings {
- unsigned int type; /* Type of physical device or protocol */
- unsigned int size; /* Size of the data allocated by the caller */
- union {
- /* {atm/eth/dsl}_settings anyone ? */
- raw_hdlc_proto __user *raw_hdlc;
- cisco_proto __user *cisco;
- fr_proto __user *fr;
- fr_proto_pvc __user *fr_pvc;
- fr_proto_pvc_info __user *fr_pvc_info;
-
- /* interface settings */
- sync_serial_settings __user *sync;
- te1_settings __user *te1;
- } ifs_ifsu;
-};
-
-/*
- * Interface request structure used for socket
- * ioctl's. All interface ioctl's must have parameter
- * definitions which begin with ifr_name. The
- * remainder may be interface specific.
- */
-
-struct ifreq {
-#define IFHWADDRLEN 6
- union
- {
- char ifrn_name[IFNAMSIZ]; /* if name, e.g. "en0" */
- } ifr_ifrn;
-
- union {
- struct sockaddr ifru_addr;
- struct sockaddr ifru_dstaddr;
- struct sockaddr ifru_broadaddr;
- struct sockaddr ifru_netmask;
- struct sockaddr ifru_hwaddr;
- short ifru_flags;
- int ifru_ivalue;
- int ifru_mtu;
- struct ifmap ifru_map;
- char ifru_slave[IFNAMSIZ]; /* Just fits the size */
- char ifru_newname[IFNAMSIZ];
- void __user * ifru_data;
- struct if_settings ifru_settings;
- } ifr_ifru;
-};
-
-#define ifr_name ifr_ifrn.ifrn_name /* interface name */
-#define ifr_hwaddr ifr_ifru.ifru_hwaddr /* MAC address */
-#define ifr_addr ifr_ifru.ifru_addr /* address */
-#define ifr_dstaddr ifr_ifru.ifru_dstaddr /* other end of p-p lnk */
-#define ifr_broadaddr ifr_ifru.ifru_broadaddr /* broadcast address */
-#define ifr_netmask ifr_ifru.ifru_netmask /* interface net mask */
-#define ifr_flags ifr_ifru.ifru_flags /* flags */
-#define ifr_metric ifr_ifru.ifru_ivalue /* metric */
-#define ifr_mtu ifr_ifru.ifru_mtu /* mtu */
-#define ifr_map ifr_ifru.ifru_map /* device map */
-#define ifr_slave ifr_ifru.ifru_slave /* slave device */
-#define ifr_data ifr_ifru.ifru_data /* for use by interface */
-#define ifr_ifindex ifr_ifru.ifru_ivalue /* interface index */
-#define ifr_bandwidth ifr_ifru.ifru_ivalue /* link bandwidth */
-#define ifr_qlen ifr_ifru.ifru_ivalue /* Queue length */
-#define ifr_newname ifr_ifru.ifru_newname /* New name */
-#define ifr_settings ifr_ifru.ifru_settings /* Device/proto settings*/
-
-/*
- * Structure used in SIOCGIFCONF request.
- * Used to retrieve interface configuration
- * for machine (useful for programs which
- * must know all networks accessible).
- */
-
-struct ifconf {
- int ifc_len; /* size of buffer */
- union {
- char __user *ifcu_buf;
- struct ifreq __user *ifcu_req;
- } ifc_ifcu;
-};
-#define ifc_buf ifc_ifcu.ifcu_buf /* buffer address */
-#define ifc_req ifc_ifcu.ifcu_req /* array of structures */
-
-#endif /* _LINUX_IF_H */
diff --git a/ANDROID_3.4.5/include/linux/if_addr.h b/ANDROID_3.4.5/include/linux/if_addr.h
deleted file mode 100644
index 23357ab8..00000000
--- a/ANDROID_3.4.5/include/linux/if_addr.h
+++ /dev/null
@@ -1,61 +0,0 @@
-#ifndef __LINUX_IF_ADDR_H
-#define __LINUX_IF_ADDR_H
-
-#include <linux/types.h>
-#include <linux/netlink.h>
-
-struct ifaddrmsg {
- __u8 ifa_family;
- __u8 ifa_prefixlen; /* The prefix length */
- __u8 ifa_flags; /* Flags */
- __u8 ifa_scope; /* Address scope */
- __u32 ifa_index; /* Link index */
-};
-
-/*
- * Important comment:
- * IFA_ADDRESS is prefix address, rather than local interface address.
- * It makes no difference for normally configured broadcast interfaces,
- * but for point-to-point IFA_ADDRESS is DESTINATION address,
- * local address is supplied in IFA_LOCAL attribute.
- */
-enum {
- IFA_UNSPEC,
- IFA_ADDRESS,
- IFA_LOCAL,
- IFA_LABEL,
- IFA_BROADCAST,
- IFA_ANYCAST,
- IFA_CACHEINFO,
- IFA_MULTICAST,
- __IFA_MAX,
-};
-
-#define IFA_MAX (__IFA_MAX - 1)
-
-/* ifa_flags */
-#define IFA_F_SECONDARY 0x01
-#define IFA_F_TEMPORARY IFA_F_SECONDARY
-
-#define IFA_F_NODAD 0x02
-#define IFA_F_OPTIMISTIC 0x04
-#define IFA_F_DADFAILED 0x08
-#define IFA_F_HOMEADDRESS 0x10
-#define IFA_F_DEPRECATED 0x20
-#define IFA_F_TENTATIVE 0x40
-#define IFA_F_PERMANENT 0x80
-
-struct ifa_cacheinfo {
- __u32 ifa_prefered;
- __u32 ifa_valid;
- __u32 cstamp; /* created timestamp, hundredths of seconds */
- __u32 tstamp; /* updated timestamp, hundredths of seconds */
-};
-
-/* backwards compatibility for userspace */
-#ifndef __KERNEL__
-#define IFA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifaddrmsg))))
-#define IFA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifaddrmsg))
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/if_addrlabel.h b/ANDROID_3.4.5/include/linux/if_addrlabel.h
deleted file mode 100644
index 54580c29..00000000
--- a/ANDROID_3.4.5/include/linux/if_addrlabel.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * if_addrlabel.h - netlink interface for address labels
- *
- * Copyright (C)2007 USAGI/WIDE Project, All Rights Reserved.
- *
- * Authors:
- * YOSHIFUJI Hideaki @ USAGI/WIDE <yoshfuji@linux-ipv6.org>
- */
-
-#ifndef __LINUX_IF_ADDRLABEL_H
-#define __LINUX_IF_ADDRLABEL_H
-
-#include <linux/types.h>
-
-struct ifaddrlblmsg {
- __u8 ifal_family; /* Address family */
- __u8 __ifal_reserved; /* Reserved */
- __u8 ifal_prefixlen; /* Prefix length */
- __u8 ifal_flags; /* Flags */
- __u32 ifal_index; /* Link index */
- __u32 ifal_seq; /* sequence number */
-};
-
-enum {
- IFAL_ADDRESS = 1,
- IFAL_LABEL = 2,
- __IFAL_MAX
-};
-
-#define IFAL_MAX (__IFAL_MAX - 1)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/if_alg.h b/ANDROID_3.4.5/include/linux/if_alg.h
deleted file mode 100644
index 0f9acce5..00000000
--- a/ANDROID_3.4.5/include/linux/if_alg.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * if_alg: User-space algorithm interface
- *
- * Copyright (c) 2010 Herbert Xu <herbert@gondor.apana.org.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 _LINUX_IF_ALG_H
-#define _LINUX_IF_ALG_H
-
-#include <linux/types.h>
-
-struct sockaddr_alg {
- __u16 salg_family;
- __u8 salg_type[14];
- __u32 salg_feat;
- __u32 salg_mask;
- __u8 salg_name[64];
-};
-
-struct af_alg_iv {
- __u32 ivlen;
- __u8 iv[0];
-};
-
-/* Socket options */
-#define ALG_SET_KEY 1
-#define ALG_SET_IV 2
-#define ALG_SET_OP 3
-
-/* Operations */
-#define ALG_OP_DECRYPT 0
-#define ALG_OP_ENCRYPT 1
-
-#endif /* _LINUX_IF_ALG_H */
diff --git a/ANDROID_3.4.5/include/linux/if_arcnet.h b/ANDROID_3.4.5/include/linux/if_arcnet.h
deleted file mode 100644
index 46e34bd0..00000000
--- a/ANDROID_3.4.5/include/linux/if_arcnet.h
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Global definitions for the ARCnet interface.
- *
- * Authors: David Woodhouse and Avery Pennarun
- *
- * 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_IF_ARCNET_H
-#define _LINUX_IF_ARCNET_H
-
-#include <linux/types.h>
-#include <linux/if_ether.h>
-
-
-/*
- * These are the defined ARCnet Protocol ID's.
- */
-
-/* CAP mode */
-/* No macro but uses 1-8 */
-
-/* RFC1201 Protocol ID's */
-#define ARC_P_IP 212 /* 0xD4 */
-#define ARC_P_IPV6 196 /* 0xC4: RFC2497 */
-#define ARC_P_ARP 213 /* 0xD5 */
-#define ARC_P_RARP 214 /* 0xD6 */
-#define ARC_P_IPX 250 /* 0xFA */
-#define ARC_P_NOVELL_EC 236 /* 0xEC */
-
-/* Old RFC1051 Protocol ID's */
-#define ARC_P_IP_RFC1051 240 /* 0xF0 */
-#define ARC_P_ARP_RFC1051 241 /* 0xF1 */
-
-/* MS LanMan/WfWg "NDIS" encapsulation */
-#define ARC_P_ETHER 232 /* 0xE8 */
-
-/* Unsupported/indirectly supported protocols */
-#define ARC_P_DATAPOINT_BOOT 0 /* very old Datapoint equipment */
-#define ARC_P_DATAPOINT_MOUNT 1
-#define ARC_P_POWERLAN_BEACON 8 /* Probably ATA-Netbios related */
-#define ARC_P_POWERLAN_BEACON2 243 /* 0xF3 */
-#define ARC_P_LANSOFT 251 /* 0xFB - what is this? */
-#define ARC_P_ATALK 0xDD
-
-/* Hardware address length */
-#define ARCNET_ALEN 1
-
-/*
- * The RFC1201-specific components of an arcnet packet header.
- */
-struct arc_rfc1201 {
- __u8 proto; /* protocol ID field - varies */
- __u8 split_flag; /* for use with split packets */
- __be16 sequence; /* sequence number */
- __u8 payload[0]; /* space remaining in packet (504 bytes)*/
-};
-#define RFC1201_HDR_SIZE 4
-
-
-/*
- * The RFC1051-specific components.
- */
-struct arc_rfc1051 {
- __u8 proto; /* ARC_P_RFC1051_ARP/RFC1051_IP */
- __u8 payload[0]; /* 507 bytes */
-};
-#define RFC1051_HDR_SIZE 1
-
-
-/*
- * The ethernet-encap-specific components. We have a real ethernet header
- * and some data.
- */
-struct arc_eth_encap {
- __u8 proto; /* Always ARC_P_ETHER */
- struct ethhdr eth; /* standard ethernet header (yuck!) */
- __u8 payload[0]; /* 493 bytes */
-};
-#define ETH_ENCAP_HDR_SIZE 14
-
-
-struct arc_cap {
- __u8 proto;
- __u8 cookie[sizeof(int)]; /* Actually NOT sent over the network */
- union {
- __u8 ack;
- __u8 raw[0]; /* 507 bytes */
- } mes;
-};
-
-/*
- * The data needed by the actual arcnet hardware.
- *
- * Now, in the real arcnet hardware, the third and fourth bytes are the
- * 'offset' specification instead of the length, and the soft data is at
- * the _end_ of the 512-byte buffer. We hide this complexity inside the
- * driver.
- */
-struct arc_hardware {
- __u8 source, /* source ARCnet - filled in automagically */
- dest, /* destination ARCnet - 0 for broadcast */
- offset[2]; /* offset bytes (some weird semantics) */
-};
-#define ARC_HDR_SIZE 4
-
-/*
- * This is an ARCnet frame header, as seen by the kernel (and userspace,
- * when you do a raw packet capture).
- */
-struct archdr {
- /* hardware requirements */
- struct arc_hardware hard;
-
- /* arcnet encapsulation-specific bits */
- union {
- struct arc_rfc1201 rfc1201;
- struct arc_rfc1051 rfc1051;
- struct arc_eth_encap eth_encap;
- struct arc_cap cap;
- __u8 raw[0]; /* 508 bytes */
- } soft;
-};
-
-#endif /* _LINUX_IF_ARCNET_H */
diff --git a/ANDROID_3.4.5/include/linux/if_arp.h b/ANDROID_3.4.5/include/linux/if_arp.h
deleted file mode 100644
index 6d722f41..00000000
--- a/ANDROID_3.4.5/include/linux/if_arp.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Global definitions for the ARP (RFC 826) protocol.
- *
- * Version: @(#)if_arp.h 1.0.1 04/16/93
- *
- * Authors: Original taken from Berkeley UNIX 4.3, (c) UCB 1986-1988
- * Portions taken from the KA9Q/NOS (v2.00m PA0GRI) source.
- * Ross Biro
- * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
- * Florian La Roche,
- * Jonathan Layes <layes@loran.com>
- * Arnaldo Carvalho de Melo <acme@conectiva.com.br> ARPHRD_HWX25
- *
- * 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_IF_ARP_H
-#define _LINUX_IF_ARP_H
-
-#include <linux/netdevice.h>
-
-/* ARP protocol HARDWARE identifiers. */
-#define ARPHRD_NETROM 0 /* from KA9Q: NET/ROM pseudo */
-#define ARPHRD_ETHER 1 /* Ethernet 10Mbps */
-#define ARPHRD_EETHER 2 /* Experimental Ethernet */
-#define ARPHRD_AX25 3 /* AX.25 Level 2 */
-#define ARPHRD_PRONET 4 /* PROnet token ring */
-#define ARPHRD_CHAOS 5 /* Chaosnet */
-#define ARPHRD_IEEE802 6 /* IEEE 802.2 Ethernet/TR/TB */
-#define ARPHRD_ARCNET 7 /* ARCnet */
-#define ARPHRD_APPLETLK 8 /* APPLEtalk */
-#define ARPHRD_DLCI 15 /* Frame Relay DLCI */
-#define ARPHRD_ATM 19 /* ATM */
-#define ARPHRD_METRICOM 23 /* Metricom STRIP (new IANA id) */
-#define ARPHRD_IEEE1394 24 /* IEEE 1394 IPv4 - RFC 2734 */
-#define ARPHRD_EUI64 27 /* EUI-64 */
-#define ARPHRD_INFINIBAND 32 /* InfiniBand */
-
-/* Dummy types for non ARP hardware */
-#define ARPHRD_SLIP 256
-#define ARPHRD_CSLIP 257
-#define ARPHRD_SLIP6 258
-#define ARPHRD_CSLIP6 259
-#define ARPHRD_RSRVD 260 /* Notional KISS type */
-#define ARPHRD_ADAPT 264
-#define ARPHRD_ROSE 270
-#define ARPHRD_X25 271 /* CCITT X.25 */
-#define ARPHRD_HWX25 272 /* Boards with X.25 in firmware */
-#define ARPHRD_CAN 280 /* Controller Area Network */
-#define ARPHRD_PPP 512
-#define ARPHRD_CISCO 513 /* Cisco HDLC */
-#define ARPHRD_HDLC ARPHRD_CISCO
-#define ARPHRD_LAPB 516 /* LAPB */
-#define ARPHRD_DDCMP 517 /* Digital's DDCMP protocol */
-#define ARPHRD_RAWHDLC 518 /* Raw HDLC */
-
-#define ARPHRD_TUNNEL 768 /* IPIP tunnel */
-#define ARPHRD_TUNNEL6 769 /* IP6IP6 tunnel */
-#define ARPHRD_FRAD 770 /* Frame Relay Access Device */
-#define ARPHRD_SKIP 771 /* SKIP vif */
-#define ARPHRD_LOOPBACK 772 /* Loopback device */
-#define ARPHRD_LOCALTLK 773 /* Localtalk device */
-#define ARPHRD_FDDI 774 /* Fiber Distributed Data Interface */
-#define ARPHRD_BIF 775 /* AP1000 BIF */
-#define ARPHRD_SIT 776 /* sit0 device - IPv6-in-IPv4 */
-#define ARPHRD_IPDDP 777 /* IP over DDP tunneller */
-#define ARPHRD_IPGRE 778 /* GRE over IP */
-#define ARPHRD_PIMREG 779 /* PIMSM register interface */
-#define ARPHRD_HIPPI 780 /* High Performance Parallel Interface */
-#define ARPHRD_ASH 781 /* Nexus 64Mbps Ash */
-#define ARPHRD_ECONET 782 /* Acorn Econet */
-#define ARPHRD_IRDA 783 /* Linux-IrDA */
-/* ARP works differently on different FC media .. so */
-#define ARPHRD_FCPP 784 /* Point to point fibrechannel */
-#define ARPHRD_FCAL 785 /* Fibrechannel arbitrated loop */
-#define ARPHRD_FCPL 786 /* Fibrechannel public loop */
-#define ARPHRD_FCFABRIC 787 /* Fibrechannel fabric */
- /* 787->799 reserved for fibrechannel media types */
-#define ARPHRD_IEEE802_TR 800 /* Magic type ident for TR */
-#define ARPHRD_IEEE80211 801 /* IEEE 802.11 */
-#define ARPHRD_IEEE80211_PRISM 802 /* IEEE 802.11 + Prism2 header */
-#define ARPHRD_IEEE80211_RADIOTAP 803 /* IEEE 802.11 + radiotap header */
-#define ARPHRD_IEEE802154 804
-
-#define ARPHRD_PHONET 820 /* PhoNet media type */
-#define ARPHRD_PHONET_PIPE 821 /* PhoNet pipe header */
-#define ARPHRD_CAIF 822 /* CAIF media type */
-
-#define ARPHRD_VOID 0xFFFF /* Void type, nothing is known */
-#define ARPHRD_NONE 0xFFFE /* zero header length */
-
-/* ARP protocol opcodes. */
-#define ARPOP_REQUEST 1 /* ARP request */
-#define ARPOP_REPLY 2 /* ARP reply */
-#define ARPOP_RREQUEST 3 /* RARP request */
-#define ARPOP_RREPLY 4 /* RARP reply */
-#define ARPOP_InREQUEST 8 /* InARP request */
-#define ARPOP_InREPLY 9 /* InARP reply */
-#define ARPOP_NAK 10 /* (ATM)ARP NAK */
-
-
-/* ARP ioctl request. */
-struct arpreq {
- struct sockaddr arp_pa; /* protocol address */
- struct sockaddr arp_ha; /* hardware address */
- int arp_flags; /* flags */
- struct sockaddr arp_netmask; /* netmask (only for proxy arps) */
- char arp_dev[16];
-};
-
-struct arpreq_old {
- struct sockaddr arp_pa; /* protocol address */
- struct sockaddr arp_ha; /* hardware address */
- int arp_flags; /* flags */
- struct sockaddr arp_netmask; /* netmask (only for proxy arps) */
-};
-
-/* ARP Flag values. */
-#define ATF_COM 0x02 /* completed entry (ha valid) */
-#define ATF_PERM 0x04 /* permanent entry */
-#define ATF_PUBL 0x08 /* publish entry */
-#define ATF_USETRAILERS 0x10 /* has requested trailers */
-#define ATF_NETMASK 0x20 /* want to use a netmask (only
- for proxy entries) */
-#define ATF_DONTPUB 0x40 /* don't answer this addresses */
-
-/*
- * This structure defines an ethernet arp header.
- */
-
-struct arphdr {
- __be16 ar_hrd; /* format of hardware address */
- __be16 ar_pro; /* format of protocol address */
- unsigned char ar_hln; /* length of hardware address */
- unsigned char ar_pln; /* length of protocol address */
- __be16 ar_op; /* ARP opcode (command) */
-
-#if 0
- /*
- * Ethernet looks like this : This bit is variable sized however...
- */
- unsigned char ar_sha[ETH_ALEN]; /* sender hardware address */
- unsigned char ar_sip[4]; /* sender IP address */
- unsigned char ar_tha[ETH_ALEN]; /* target hardware address */
- unsigned char ar_tip[4]; /* target IP address */
-#endif
-
-};
-
-#ifdef __KERNEL__
-#include <linux/skbuff.h>
-
-static inline struct arphdr *arp_hdr(const struct sk_buff *skb)
-{
- return (struct arphdr *)skb_network_header(skb);
-}
-
-static inline int arp_hdr_len(struct net_device *dev)
-{
- /* ARP header, plus 2 device addresses, plus 2 IP addresses. */
- return sizeof(struct arphdr) + (dev->addr_len + sizeof(u32)) * 2;
-}
-#endif
-
-#endif /* _LINUX_IF_ARP_H */
diff --git a/ANDROID_3.4.5/include/linux/if_bonding.h b/ANDROID_3.4.5/include/linux/if_bonding.h
deleted file mode 100644
index a17edda8..00000000
--- a/ANDROID_3.4.5/include/linux/if_bonding.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Bond several ethernet interfaces into a Cisco, running 'Etherchannel'.
- *
- *
- * Portions are (c) Copyright 1995 Simon "Guru Aleph-Null" Janes
- * NCM: Network and Communications Management, Inc.
- *
- * BUT, I'm the one who modified it for ethernet, so:
- * (c) Copyright 1999, Thomas Davis, tadavis@lbl.gov
- *
- * This software may be used and distributed according to the terms
- * of the GNU Public License, incorporated herein by reference.
- *
- * 2003/03/18 - Amir Noam <amir.noam at intel dot com>
- * - Added support for getting slave's speed and duplex via ethtool.
- * Needed for 802.3ad and other future modes.
- *
- * 2003/03/18 - Tsippy Mendelson <tsippy.mendelson at intel dot com> and
- * Shmulik Hen <shmulik.hen at intel dot com>
- * - Enable support of modes that need to use the unique mac address of
- * each slave.
- *
- * 2003/03/18 - Tsippy Mendelson <tsippy.mendelson at intel dot com> and
- * Amir Noam <amir.noam at intel dot com>
- * - Moved driver's private data types to bonding.h
- *
- * 2003/03/18 - Amir Noam <amir.noam at intel dot com>,
- * Tsippy Mendelson <tsippy.mendelson at intel dot com> and
- * Shmulik Hen <shmulik.hen at intel dot com>
- * - Added support for IEEE 802.3ad Dynamic link aggregation mode.
- *
- * 2003/05/01 - Amir Noam <amir.noam at intel dot com>
- * - Added ABI version control to restore compatibility between
- * new/old ifenslave and new/old bonding.
- *
- * 2003/12/01 - Shmulik Hen <shmulik.hen at intel dot com>
- * - Code cleanup and style changes
- *
- * 2005/05/05 - Jason Gabler <jygabler at lbl dot gov>
- * - added definitions for various XOR hashing policies
- */
-
-#ifndef _LINUX_IF_BONDING_H
-#define _LINUX_IF_BONDING_H
-
-#include <linux/if.h>
-#include <linux/types.h>
-#include <linux/if_ether.h>
-
-/* userland - kernel ABI version (2003/05/08) */
-#define BOND_ABI_VERSION 2
-
-/*
- * We can remove these ioctl definitions in 2.5. People should use the
- * SIOC*** versions of them instead
- */
-#define BOND_ENSLAVE_OLD (SIOCDEVPRIVATE)
-#define BOND_RELEASE_OLD (SIOCDEVPRIVATE + 1)
-#define BOND_SETHWADDR_OLD (SIOCDEVPRIVATE + 2)
-#define BOND_SLAVE_INFO_QUERY_OLD (SIOCDEVPRIVATE + 11)
-#define BOND_INFO_QUERY_OLD (SIOCDEVPRIVATE + 12)
-#define BOND_CHANGE_ACTIVE_OLD (SIOCDEVPRIVATE + 13)
-
-#define BOND_CHECK_MII_STATUS (SIOCGMIIPHY)
-
-#define BOND_MODE_ROUNDROBIN 0
-#define BOND_MODE_ACTIVEBACKUP 1
-#define BOND_MODE_XOR 2
-#define BOND_MODE_BROADCAST 3
-#define BOND_MODE_8023AD 4
-#define BOND_MODE_TLB 5
-#define BOND_MODE_ALB 6 /* TLB + RLB (receive load balancing) */
-
-/* each slave's link has 4 states */
-#define BOND_LINK_UP 0 /* link is up and running */
-#define BOND_LINK_FAIL 1 /* link has just gone down */
-#define BOND_LINK_DOWN 2 /* link has been down for too long time */
-#define BOND_LINK_BACK 3 /* link is going back */
-
-/* each slave has several states */
-#define BOND_STATE_ACTIVE 0 /* link is active */
-#define BOND_STATE_BACKUP 1 /* link is backup */
-
-#define BOND_DEFAULT_MAX_BONDS 1 /* Default maximum number of devices to support */
-
-#define BOND_DEFAULT_TX_QUEUES 16 /* Default number of tx queues per device */
-
-#define BOND_DEFAULT_RESEND_IGMP 1 /* Default number of IGMP membership reports */
-
-/* hashing types */
-#define BOND_XMIT_POLICY_LAYER2 0 /* layer 2 (MAC only), default */
-#define BOND_XMIT_POLICY_LAYER34 1 /* layer 3+4 (IP ^ (TCP || UDP)) */
-#define BOND_XMIT_POLICY_LAYER23 2 /* layer 2+3 (IP ^ MAC) */
-
-typedef struct ifbond {
- __s32 bond_mode;
- __s32 num_slaves;
- __s32 miimon;
-} ifbond;
-
-typedef struct ifslave {
- __s32 slave_id; /* Used as an IN param to the BOND_SLAVE_INFO_QUERY ioctl */
- char slave_name[IFNAMSIZ];
- __s8 link;
- __s8 state;
- __u32 link_failure_count;
-} ifslave;
-
-struct ad_info {
- __u16 aggregator_id;
- __u16 ports;
- __u16 actor_key;
- __u16 partner_key;
- __u8 partner_system[ETH_ALEN];
-};
-
-#endif /* _LINUX_IF_BONDING_H */
-
-/*
- * Local variables:
- * version-control: t
- * kept-new-versions: 5
- * c-indent-level: 8
- * c-basic-offset: 8
- * tab-width: 8
- * End:
- */
-
diff --git a/ANDROID_3.4.5/include/linux/if_bridge.h b/ANDROID_3.4.5/include/linux/if_bridge.h
deleted file mode 100644
index dd3f2013..00000000
--- a/ANDROID_3.4.5/include/linux/if_bridge.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Linux ethernet bridge
- *
- * Authors:
- * Lennert Buytenhek <buytenh@gnu.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.
- */
-
-#ifndef _LINUX_IF_BRIDGE_H
-#define _LINUX_IF_BRIDGE_H
-
-#include <linux/types.h>
-
-#define SYSFS_BRIDGE_ATTR "bridge"
-#define SYSFS_BRIDGE_FDB "brforward"
-#define SYSFS_BRIDGE_PORT_SUBDIR "brif"
-#define SYSFS_BRIDGE_PORT_ATTR "brport"
-#define SYSFS_BRIDGE_PORT_LINK "bridge"
-
-#define BRCTL_VERSION 1
-
-#define BRCTL_GET_VERSION 0
-#define BRCTL_GET_BRIDGES 1
-#define BRCTL_ADD_BRIDGE 2
-#define BRCTL_DEL_BRIDGE 3
-#define BRCTL_ADD_IF 4
-#define BRCTL_DEL_IF 5
-#define BRCTL_GET_BRIDGE_INFO 6
-#define BRCTL_GET_PORT_LIST 7
-#define BRCTL_SET_BRIDGE_FORWARD_DELAY 8
-#define BRCTL_SET_BRIDGE_HELLO_TIME 9
-#define BRCTL_SET_BRIDGE_MAX_AGE 10
-#define BRCTL_SET_AGEING_TIME 11
-#define BRCTL_SET_GC_INTERVAL 12
-#define BRCTL_GET_PORT_INFO 13
-#define BRCTL_SET_BRIDGE_STP_STATE 14
-#define BRCTL_SET_BRIDGE_PRIORITY 15
-#define BRCTL_SET_PORT_PRIORITY 16
-#define BRCTL_SET_PATH_COST 17
-#define BRCTL_GET_FDB_ENTRIES 18
-
-#define BR_STATE_DISABLED 0
-#define BR_STATE_LISTENING 1
-#define BR_STATE_LEARNING 2
-#define BR_STATE_FORWARDING 3
-#define BR_STATE_BLOCKING 4
-
-struct __bridge_info {
- __u64 designated_root;
- __u64 bridge_id;
- __u32 root_path_cost;
- __u32 max_age;
- __u32 hello_time;
- __u32 forward_delay;
- __u32 bridge_max_age;
- __u32 bridge_hello_time;
- __u32 bridge_forward_delay;
- __u8 topology_change;
- __u8 topology_change_detected;
- __u8 root_port;
- __u8 stp_enabled;
- __u32 ageing_time;
- __u32 gc_interval;
- __u32 hello_timer_value;
- __u32 tcn_timer_value;
- __u32 topology_change_timer_value;
- __u32 gc_timer_value;
-};
-
-struct __port_info {
- __u64 designated_root;
- __u64 designated_bridge;
- __u16 port_id;
- __u16 designated_port;
- __u32 path_cost;
- __u32 designated_cost;
- __u8 state;
- __u8 top_change_ack;
- __u8 config_pending;
- __u8 unused0;
- __u32 message_age_timer_value;
- __u32 forward_delay_timer_value;
- __u32 hold_timer_value;
-};
-
-struct __fdb_entry {
- __u8 mac_addr[6];
- __u8 port_no;
- __u8 is_local;
- __u32 ageing_timer_value;
- __u8 port_hi;
- __u8 pad0;
- __u16 unused;
-};
-
-#ifdef __KERNEL__
-
-#include <linux/netdevice.h>
-
-extern void brioctl_set(int (*ioctl_hook)(struct net *, unsigned int, void __user *));
-
-typedef int br_should_route_hook_t(struct sk_buff *skb);
-extern br_should_route_hook_t __rcu *br_should_route_hook;
-
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/if_cablemodem.h b/ANDROID_3.4.5/include/linux/if_cablemodem.h
deleted file mode 100644
index 9ca1007e..00000000
--- a/ANDROID_3.4.5/include/linux/if_cablemodem.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef _LINUX_CABLEMODEM_H_
-#define _LINUX_CABLEMODEM_H_
-/*
- * Author: Franco Venturi <fventuri@mediaone.net>
- * Copyright 1998 Franco Venturi
- *
- * 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.
- */
-
-/* some useful defines for sb1000.c e cmconfig.c - fv */
-#define SIOCGCMSTATS SIOCDEVPRIVATE+0 /* get cable modem stats */
-#define SIOCGCMFIRMWARE SIOCDEVPRIVATE+1 /* get cm firmware version */
-#define SIOCGCMFREQUENCY SIOCDEVPRIVATE+2 /* get cable modem frequency */
-#define SIOCSCMFREQUENCY SIOCDEVPRIVATE+3 /* set cable modem frequency */
-#define SIOCGCMPIDS SIOCDEVPRIVATE+4 /* get cable modem PIDs */
-#define SIOCSCMPIDS SIOCDEVPRIVATE+5 /* set cable modem PIDs */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/if_ec.h b/ANDROID_3.4.5/include/linux/if_ec.h
deleted file mode 100644
index d85f9f48..00000000
--- a/ANDROID_3.4.5/include/linux/if_ec.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/* Definitions for Econet sockets. */
-
-#ifndef __LINUX_IF_EC
-#define __LINUX_IF_EC
-
-/* User visible stuff. Glibc provides its own but libc5 folk will use these */
-
-struct ec_addr {
- unsigned char station; /* Station number. */
- unsigned char net; /* Network number. */
-};
-
-struct sockaddr_ec {
- unsigned short sec_family;
- unsigned char port; /* Port number. */
- unsigned char cb; /* Control/flag byte. */
- unsigned char type; /* Type of message. */
- struct ec_addr addr;
- unsigned long cookie;
-};
-
-#define ECTYPE_PACKET_RECEIVED 0 /* Packet received */
-#define ECTYPE_TRANSMIT_STATUS 0x10 /* Transmit completed,
- low nibble holds status */
-
-#define ECTYPE_TRANSMIT_OK 1
-#define ECTYPE_TRANSMIT_NOT_LISTENING 2
-#define ECTYPE_TRANSMIT_NET_ERROR 3
-#define ECTYPE_TRANSMIT_NO_CLOCK 4
-#define ECTYPE_TRANSMIT_LINE_JAMMED 5
-#define ECTYPE_TRANSMIT_NOT_PRESENT 6
-
-#ifdef __KERNEL__
-
-#define EC_HLEN 6
-
-/* This is what an Econet frame looks like on the wire. */
-struct ec_framehdr {
- unsigned char dst_stn;
- unsigned char dst_net;
- unsigned char src_stn;
- unsigned char src_net;
- unsigned char cb;
- unsigned char port;
-};
-
-struct econet_sock {
- /* struct sock has to be the first member of econet_sock */
- struct sock sk;
- unsigned char cb;
- unsigned char port;
- unsigned char station;
- unsigned char net;
- unsigned short num;
-};
-
-static inline struct econet_sock *ec_sk(const struct sock *sk)
-{
- return (struct econet_sock *)sk;
-}
-
-struct ec_device {
- unsigned char station, net; /* Econet protocol address */
-};
-
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/if_eql.h b/ANDROID_3.4.5/include/linux/if_eql.h
deleted file mode 100644
index 18a5d02a..00000000
--- a/ANDROID_3.4.5/include/linux/if_eql.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Equalizer Load-balancer for serial network interfaces.
- *
- * (c) Copyright 1995 Simon "Guru Aleph-Null" Janes
- * NCM: Network and Communications Management, Inc.
- *
- *
- * This software may be used and distributed according to the terms
- * of the GNU General Public License, incorporated herein by reference.
- *
- * The author may be reached as simon@ncm.com, or C/O
- * NCM
- * Attn: Simon Janes
- * 6803 Whittier Ave
- * McLean VA 22101
- * Phone: 1-703-847-0040 ext 103
- */
-
-#ifndef _LINUX_IF_EQL_H
-#define _LINUX_IF_EQL_H
-
-#define EQL_DEFAULT_SLAVE_PRIORITY 28800
-#define EQL_DEFAULT_MAX_SLAVES 4
-#define EQL_DEFAULT_MTU 576
-#define EQL_DEFAULT_RESCHED_IVAL HZ
-
-#define EQL_ENSLAVE (SIOCDEVPRIVATE)
-#define EQL_EMANCIPATE (SIOCDEVPRIVATE + 1)
-
-#define EQL_GETSLAVECFG (SIOCDEVPRIVATE + 2)
-#define EQL_SETSLAVECFG (SIOCDEVPRIVATE + 3)
-
-#define EQL_GETMASTRCFG (SIOCDEVPRIVATE + 4)
-#define EQL_SETMASTRCFG (SIOCDEVPRIVATE + 5)
-
-#ifdef __KERNEL__
-
-#include <linux/timer.h>
-#include <linux/spinlock.h>
-
-typedef struct slave {
- struct list_head list;
- struct net_device *dev;
- long priority;
- long priority_bps;
- long priority_Bps;
- long bytes_queued;
-} slave_t;
-
-typedef struct slave_queue {
- spinlock_t lock;
- struct list_head all_slaves;
- int num_slaves;
- struct net_device *master_dev;
-} slave_queue_t;
-
-typedef struct equalizer {
- slave_queue_t queue;
- int min_slaves;
- int max_slaves;
- struct timer_list timer;
-} equalizer_t;
-
-#endif /* __KERNEL__ */
-
-typedef struct master_config {
- char master_name[16];
- int max_slaves;
- int min_slaves;
-} master_config_t;
-
-typedef struct slave_config {
- char slave_name[16];
- long priority;
-} slave_config_t;
-
-typedef struct slaving_request {
- char slave_name[16];
- long priority;
-} slaving_request_t;
-
-
-#endif /* _LINUX_EQL_H */
diff --git a/ANDROID_3.4.5/include/linux/if_ether.h b/ANDROID_3.4.5/include/linux/if_ether.h
deleted file mode 100644
index 56d907a2..00000000
--- a/ANDROID_3.4.5/include/linux/if_ether.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Global definitions for the Ethernet IEEE 802.3 interface.
- *
- * Version: @(#)if_ether.h 1.0.1a 02/08/94
- *
- * Author: Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
- * Donald Becker, <becker@super.org>
- * Alan Cox, <alan@lxorguk.ukuu.org.uk>
- * Steve Whitehouse, <gw7rrm@eeshack3.swan.ac.uk>
- *
- * 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_IF_ETHER_H
-#define _LINUX_IF_ETHER_H
-
-#include <linux/types.h>
-
-/*
- * IEEE 802.3 Ethernet magic constants. The frame sizes omit the preamble
- * and FCS/CRC (frame check sequence).
- */
-
-#define ETH_ALEN 6 /* Octets in one ethernet addr */
-#define ETH_HLEN 14 /* Total octets in header. */
-#define ETH_ZLEN 60 /* Min. octets in frame sans FCS */
-#define ETH_DATA_LEN 1500 /* Max. octets in payload */
-#define ETH_FRAME_LEN 1514 /* Max. octets in frame sans FCS */
-#define ETH_FCS_LEN 4 /* Octets in the FCS */
-
-/*
- * These are the defined Ethernet Protocol ID's.
- */
-
-#define ETH_P_LOOP 0x0060 /* Ethernet Loopback packet */
-#define ETH_P_PUP 0x0200 /* Xerox PUP packet */
-#define ETH_P_PUPAT 0x0201 /* Xerox PUP Addr Trans packet */
-#define ETH_P_IP 0x0800 /* Internet Protocol packet */
-#define ETH_P_X25 0x0805 /* CCITT X.25 */
-#define ETH_P_ARP 0x0806 /* Address Resolution packet */
-#define ETH_P_BPQ 0x08FF /* G8BPQ AX.25 Ethernet Packet [ NOT AN OFFICIALLY REGISTERED ID ] */
-#define ETH_P_IEEEPUP 0x0a00 /* Xerox IEEE802.3 PUP packet */
-#define ETH_P_IEEEPUPAT 0x0a01 /* Xerox IEEE802.3 PUP Addr Trans packet */
-#define ETH_P_DEC 0x6000 /* DEC Assigned proto */
-#define ETH_P_DNA_DL 0x6001 /* DEC DNA Dump/Load */
-#define ETH_P_DNA_RC 0x6002 /* DEC DNA Remote Console */
-#define ETH_P_DNA_RT 0x6003 /* DEC DNA Routing */
-#define ETH_P_LAT 0x6004 /* DEC LAT */
-#define ETH_P_DIAG 0x6005 /* DEC Diagnostics */
-#define ETH_P_CUST 0x6006 /* DEC Customer use */
-#define ETH_P_SCA 0x6007 /* DEC Systems Comms Arch */
-#define ETH_P_TEB 0x6558 /* Trans Ether Bridging */
-#define ETH_P_RARP 0x8035 /* Reverse Addr Res packet */
-#define ETH_P_ATALK 0x809B /* Appletalk DDP */
-#define ETH_P_AARP 0x80F3 /* Appletalk AARP */
-#define ETH_P_8021Q 0x8100 /* 802.1Q VLAN Extended Header */
-#define ETH_P_IPX 0x8137 /* IPX over DIX */
-#define ETH_P_IPV6 0x86DD /* IPv6 over bluebook */
-#define ETH_P_PAUSE 0x8808 /* IEEE Pause frames. See 802.3 31B */
-#define ETH_P_SLOW 0x8809 /* Slow Protocol. See 802.3ad 43B */
-#define ETH_P_WCCP 0x883E /* Web-cache coordination protocol
- * defined in draft-wilson-wrec-wccp-v2-00.txt */
-#define ETH_P_PPP_DISC 0x8863 /* PPPoE discovery messages */
-#define ETH_P_PPP_SES 0x8864 /* PPPoE session messages */
-#define ETH_P_MPLS_UC 0x8847 /* MPLS Unicast traffic */
-#define ETH_P_MPLS_MC 0x8848 /* MPLS Multicast traffic */
-#define ETH_P_ATMMPOA 0x884c /* MultiProtocol Over ATM */
-#define ETH_P_LINK_CTL 0x886c /* HPNA, wlan link local tunnel */
-#define ETH_P_ATMFATE 0x8884 /* Frame-based ATM Transport
- * over Ethernet
- */
-#define ETH_P_PAE 0x888E /* Port Access Entity (IEEE 802.1X) */
-#define ETH_P_AOE 0x88A2 /* ATA over Ethernet */
-#define ETH_P_8021AD 0x88A8 /* 802.1ad Service VLAN */
-#define ETH_P_802_EX1 0x88B5 /* 802.1 Local Experimental 1. */
-#define ETH_P_TIPC 0x88CA /* TIPC */
-#define ETH_P_8021AH 0x88E7 /* 802.1ah Backbone Service Tag */
-#define ETH_P_1588 0x88F7 /* IEEE 1588 Timesync */
-#define ETH_P_FCOE 0x8906 /* Fibre Channel over Ethernet */
-#define ETH_P_TDLS 0x890D /* TDLS */
-#define ETH_P_FIP 0x8914 /* FCoE Initialization Protocol */
-#define ETH_P_QINQ1 0x9100 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */
-#define ETH_P_QINQ2 0x9200 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */
-#define ETH_P_QINQ3 0x9300 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */
-#define ETH_P_EDSA 0xDADA /* Ethertype DSA [ NOT AN OFFICIALLY REGISTERED ID ] */
-#define ETH_P_AF_IUCV 0xFBFB /* IBM af_iucv [ NOT AN OFFICIALLY REGISTERED ID ] */
-
-/*
- * Non DIX types. Won't clash for 1500 types.
- */
-
-#define ETH_P_802_3 0x0001 /* Dummy type for 802.3 frames */
-#define ETH_P_AX25 0x0002 /* Dummy protocol id for AX.25 */
-#define ETH_P_ALL 0x0003 /* Every packet (be careful!!!) */
-#define ETH_P_802_2 0x0004 /* 802.2 frames */
-#define ETH_P_SNAP 0x0005 /* Internal only */
-#define ETH_P_DDCMP 0x0006 /* DEC DDCMP: Internal only */
-#define ETH_P_WAN_PPP 0x0007 /* Dummy type for WAN PPP frames*/
-#define ETH_P_PPP_MP 0x0008 /* Dummy type for PPP MP frames */
-#define ETH_P_LOCALTALK 0x0009 /* Localtalk pseudo type */
-#define ETH_P_CAN 0x000C /* Controller Area Network */
-#define ETH_P_PPPTALK 0x0010 /* Dummy type for Atalk over PPP*/
-#define ETH_P_TR_802_2 0x0011 /* 802.2 frames */
-#define ETH_P_MOBITEX 0x0015 /* Mobitex (kaz@cafe.net) */
-#define ETH_P_CONTROL 0x0016 /* Card specific control frames */
-#define ETH_P_IRDA 0x0017 /* Linux-IrDA */
-#define ETH_P_ECONET 0x0018 /* Acorn Econet */
-#define ETH_P_HDLC 0x0019 /* HDLC frames */
-#define ETH_P_ARCNET 0x001A /* 1A for ArcNet :-) */
-#define ETH_P_DSA 0x001B /* Distributed Switch Arch. */
-#define ETH_P_TRAILER 0x001C /* Trailer switch tagging */
-#define ETH_P_PHONET 0x00F5 /* Nokia Phonet frames */
-#define ETH_P_IEEE802154 0x00F6 /* IEEE802.15.4 frame */
-#define ETH_P_CAIF 0x00F7 /* ST-Ericsson CAIF protocol */
-
-/*
- * This is an Ethernet frame header.
- */
-
-struct ethhdr {
- unsigned char h_dest[ETH_ALEN]; /* destination eth addr */
- unsigned char h_source[ETH_ALEN]; /* source ether addr */
- __be16 h_proto; /* packet type ID field */
-} __attribute__((packed));
-
-#ifdef __KERNEL__
-#include <linux/skbuff.h>
-
-static inline struct ethhdr *eth_hdr(const struct sk_buff *skb)
-{
- return (struct ethhdr *)skb_mac_header(skb);
-}
-
-int eth_header_parse(const struct sk_buff *skb, unsigned char *haddr);
-
-int mac_pton(const char *s, u8 *mac);
-extern ssize_t sysfs_format_mac(char *buf, const unsigned char *addr, int len);
-
-#endif
-
-#endif /* _LINUX_IF_ETHER_H */
diff --git a/ANDROID_3.4.5/include/linux/if_fc.h b/ANDROID_3.4.5/include/linux/if_fc.h
deleted file mode 100644
index 6ed7f1bf..00000000
--- a/ANDROID_3.4.5/include/linux/if_fc.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Global definitions for Fibre Channel.
- *
- * Version: @(#)if_fc.h 0.0 11/20/98
- *
- * Author: Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
- * Donald Becker, <becker@super.org>
- * Peter De Schrijver, <stud11@cc4.kuleuven.ac.be>
- * Vineet Abraham, <vma@iol.unh.edu>
- *
- * 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_IF_FC_H
-#define _LINUX_IF_FC_H
-
-#include <linux/types.h>
-
-#define FC_ALEN 6 /* Octets in one ethernet addr */
-#define FC_HLEN (sizeof(struct fch_hdr)+sizeof(struct fcllc))
-#define FC_ID_LEN 3 /* Octets in a Fibre Channel Address */
-
-/* LLC and SNAP constants */
-#define EXTENDED_SAP 0xAA
-#define UI_CMD 0x03
-
-/* This is NOT the Fibre Channel frame header. The FC frame header is
- * constructed in the driver as the Tachyon needs certain fields in
- * certains positions. So, it can't be generalized here.*/
-
-struct fch_hdr {
- __u8 daddr[FC_ALEN]; /* destination address */
- __u8 saddr[FC_ALEN]; /* source address */
-};
-
-/* This is a Fibre Channel LLC structure */
-struct fcllc {
- __u8 dsap; /* destination SAP */
- __u8 ssap; /* source SAP */
- __u8 llc; /* LLC control field */
- __u8 protid[3]; /* protocol id */
- __be16 ethertype; /* ether type field */
-};
-
-#endif /* _LINUX_IF_FC_H */
diff --git a/ANDROID_3.4.5/include/linux/if_fddi.h b/ANDROID_3.4.5/include/linux/if_fddi.h
deleted file mode 100644
index e6dc11e7..00000000
--- a/ANDROID_3.4.5/include/linux/if_fddi.h
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Global definitions for the ANSI FDDI interface.
- *
- * Version: @(#)if_fddi.h 1.0.2 Sep 29 2004
- *
- * Author: Lawrence V. Stefani, <stefani@lkg.dec.com>
- *
- * if_fddi.h is based on previous if_ether.h and if_tr.h work by
- * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
- * Donald Becker, <becker@super.org>
- * Alan Cox, <alan@lxorguk.ukuu.org.uk>
- * Steve Whitehouse, <gw7rrm@eeshack3.swan.ac.uk>
- * Peter De Schrijver, <stud11@cc4.kuleuven.ac.be>
- *
- * 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_IF_FDDI_H
-#define _LINUX_IF_FDDI_H
-
-#include <linux/types.h>
-
-/*
- * Define max and min legal sizes. The frame sizes do not include
- * 4 byte FCS/CRC (frame check sequence).
- */
-#define FDDI_K_ALEN 6 /* Octets in one FDDI address */
-#define FDDI_K_8022_HLEN 16 /* Total octets in 802.2 header */
-#define FDDI_K_SNAP_HLEN 21 /* Total octets in 802.2 SNAP header */
-#define FDDI_K_8022_ZLEN 16 /* Min octets in 802.2 frame sans FCS */
-#define FDDI_K_SNAP_ZLEN 21 /* Min octets in 802.2 SNAP frame sans FCS */
-#define FDDI_K_8022_DLEN 4475 /* Max octets in 802.2 payload */
-#define FDDI_K_SNAP_DLEN 4470 /* Max octets in 802.2 SNAP payload */
-#define FDDI_K_LLC_ZLEN 13 /* Min octets in LLC frame sans FCS */
-#define FDDI_K_LLC_LEN 4491 /* Max octets in LLC frame sans FCS */
-
-/* Define FDDI Frame Control (FC) Byte values */
-#define FDDI_FC_K_VOID 0x00
-#define FDDI_FC_K_NON_RESTRICTED_TOKEN 0x80
-#define FDDI_FC_K_RESTRICTED_TOKEN 0xC0
-#define FDDI_FC_K_SMT_MIN 0x41
-#define FDDI_FC_K_SMT_MAX 0x4F
-#define FDDI_FC_K_MAC_MIN 0xC1
-#define FDDI_FC_K_MAC_MAX 0xCF
-#define FDDI_FC_K_ASYNC_LLC_MIN 0x50
-#define FDDI_FC_K_ASYNC_LLC_DEF 0x54
-#define FDDI_FC_K_ASYNC_LLC_MAX 0x5F
-#define FDDI_FC_K_SYNC_LLC_MIN 0xD0
-#define FDDI_FC_K_SYNC_LLC_MAX 0xD7
-#define FDDI_FC_K_IMPLEMENTOR_MIN 0x60
-#define FDDI_FC_K_IMPLEMENTOR_MAX 0x6F
-#define FDDI_FC_K_RESERVED_MIN 0x70
-#define FDDI_FC_K_RESERVED_MAX 0x7F
-
-/* Define LLC and SNAP constants */
-#define FDDI_EXTENDED_SAP 0xAA
-#define FDDI_UI_CMD 0x03
-
-/* Define 802.2 Type 1 header */
-struct fddi_8022_1_hdr {
- __u8 dsap; /* destination service access point */
- __u8 ssap; /* source service access point */
- __u8 ctrl; /* control byte #1 */
-} __attribute__((packed));
-
-/* Define 802.2 Type 2 header */
-struct fddi_8022_2_hdr {
- __u8 dsap; /* destination service access point */
- __u8 ssap; /* source service access point */
- __u8 ctrl_1; /* control byte #1 */
- __u8 ctrl_2; /* control byte #2 */
-} __attribute__((packed));
-
-/* Define 802.2 SNAP header */
-#define FDDI_K_OUI_LEN 3
-struct fddi_snap_hdr {
- __u8 dsap; /* always 0xAA */
- __u8 ssap; /* always 0xAA */
- __u8 ctrl; /* always 0x03 */
- __u8 oui[FDDI_K_OUI_LEN]; /* organizational universal id */
- __be16 ethertype; /* packet type ID field */
-} __attribute__((packed));
-
-/* Define FDDI LLC frame header */
-struct fddihdr {
- __u8 fc; /* frame control */
- __u8 daddr[FDDI_K_ALEN]; /* destination address */
- __u8 saddr[FDDI_K_ALEN]; /* source address */
- union
- {
- struct fddi_8022_1_hdr llc_8022_1;
- struct fddi_8022_2_hdr llc_8022_2;
- struct fddi_snap_hdr llc_snap;
- } hdr;
-} __attribute__((packed));
-
-#ifdef __KERNEL__
-#include <linux/netdevice.h>
-
-/* Define FDDI statistics structure */
-struct fddi_statistics {
-
- /* Generic statistics. */
-
- struct net_device_stats gen;
-
- /* Detailed FDDI statistics. Adopted from RFC 1512 */
-
- __u8 smt_station_id[8];
- __u32 smt_op_version_id;
- __u32 smt_hi_version_id;
- __u32 smt_lo_version_id;
- __u8 smt_user_data[32];
- __u32 smt_mib_version_id;
- __u32 smt_mac_cts;
- __u32 smt_non_master_cts;
- __u32 smt_master_cts;
- __u32 smt_available_paths;
- __u32 smt_config_capabilities;
- __u32 smt_config_policy;
- __u32 smt_connection_policy;
- __u32 smt_t_notify;
- __u32 smt_stat_rpt_policy;
- __u32 smt_trace_max_expiration;
- __u32 smt_bypass_present;
- __u32 smt_ecm_state;
- __u32 smt_cf_state;
- __u32 smt_remote_disconnect_flag;
- __u32 smt_station_status;
- __u32 smt_peer_wrap_flag;
- __u32 smt_time_stamp;
- __u32 smt_transition_time_stamp;
- __u32 mac_frame_status_functions;
- __u32 mac_t_max_capability;
- __u32 mac_tvx_capability;
- __u32 mac_available_paths;
- __u32 mac_current_path;
- __u8 mac_upstream_nbr[FDDI_K_ALEN];
- __u8 mac_downstream_nbr[FDDI_K_ALEN];
- __u8 mac_old_upstream_nbr[FDDI_K_ALEN];
- __u8 mac_old_downstream_nbr[FDDI_K_ALEN];
- __u32 mac_dup_address_test;
- __u32 mac_requested_paths;
- __u32 mac_downstream_port_type;
- __u8 mac_smt_address[FDDI_K_ALEN];
- __u32 mac_t_req;
- __u32 mac_t_neg;
- __u32 mac_t_max;
- __u32 mac_tvx_value;
- __u32 mac_frame_cts;
- __u32 mac_copied_cts;
- __u32 mac_transmit_cts;
- __u32 mac_error_cts;
- __u32 mac_lost_cts;
- __u32 mac_frame_error_threshold;
- __u32 mac_frame_error_ratio;
- __u32 mac_rmt_state;
- __u32 mac_da_flag;
- __u32 mac_una_da_flag;
- __u32 mac_frame_error_flag;
- __u32 mac_ma_unitdata_available;
- __u32 mac_hardware_present;
- __u32 mac_ma_unitdata_enable;
- __u32 path_tvx_lower_bound;
- __u32 path_t_max_lower_bound;
- __u32 path_max_t_req;
- __u32 path_configuration[8];
- __u32 port_my_type[2];
- __u32 port_neighbor_type[2];
- __u32 port_connection_policies[2];
- __u32 port_mac_indicated[2];
- __u32 port_current_path[2];
- __u8 port_requested_paths[3*2];
- __u32 port_mac_placement[2];
- __u32 port_available_paths[2];
- __u32 port_pmd_class[2];
- __u32 port_connection_capabilities[2];
- __u32 port_bs_flag[2];
- __u32 port_lct_fail_cts[2];
- __u32 port_ler_estimate[2];
- __u32 port_lem_reject_cts[2];
- __u32 port_lem_cts[2];
- __u32 port_ler_cutoff[2];
- __u32 port_ler_alarm[2];
- __u32 port_connect_state[2];
- __u32 port_pcm_state[2];
- __u32 port_pc_withhold[2];
- __u32 port_ler_flag[2];
- __u32 port_hardware_present[2];
-};
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_IF_FDDI_H */
diff --git a/ANDROID_3.4.5/include/linux/if_frad.h b/ANDROID_3.4.5/include/linux/if_frad.h
deleted file mode 100644
index 191ee086..00000000
--- a/ANDROID_3.4.5/include/linux/if_frad.h
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- * DLCI/FRAD Definitions for Frame Relay Access Devices. DLCI devices are
- * created for each DLCI associated with a FRAD. The FRAD driver
- * is not truly a network device, but the lower level device
- * handler. This allows other FRAD manufacturers to use the DLCI
- * code, including its RFC1490 encapsulation alongside the current
- * implementation for the Sangoma cards.
- *
- * Version: @(#)if_ifrad.h 0.15 31 Mar 96
- *
- * Author: Mike McLagan <mike.mclagan@linux.org>
- *
- * Changes:
- * 0.15 Mike McLagan changed structure defs (packed)
- * re-arranged flags
- * added DLCI_RET vars
- *
- * 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 _FRAD_H_
-#define _FRAD_H_
-
-#include <linux/if.h>
-
-/* Structures and constants associated with the DLCI device driver */
-
-struct dlci_add
-{
- char devname[IFNAMSIZ];
- short dlci;
-};
-
-#define DLCI_GET_CONF (SIOCDEVPRIVATE + 2)
-#define DLCI_SET_CONF (SIOCDEVPRIVATE + 3)
-
-/*
- * These are related to the Sangoma SDLA and should remain in order.
- * Code within the SDLA module is based on the specifics of this
- * structure. Change at your own peril.
- */
-struct dlci_conf {
- short flags;
- short CIR_fwd;
- short Bc_fwd;
- short Be_fwd;
- short CIR_bwd;
- short Bc_bwd;
- short Be_bwd;
-
-/* these are part of the status read */
- short Tc_fwd;
- short Tc_bwd;
- short Tf_max;
- short Tb_max;
-
-/* add any new fields here above is a mirror of sdla_dlci_conf */
-};
-
-#define DLCI_GET_SLAVE (SIOCDEVPRIVATE + 4)
-
-/* configuration flags for DLCI */
-#define DLCI_IGNORE_CIR_OUT 0x0001
-#define DLCI_ACCOUNT_CIR_IN 0x0002
-#define DLCI_BUFFER_IF 0x0008
-
-#define DLCI_VALID_FLAGS 0x000B
-
-/* defines for the actual Frame Relay hardware */
-#define FRAD_GET_CONF (SIOCDEVPRIVATE)
-#define FRAD_SET_CONF (SIOCDEVPRIVATE + 1)
-
-#define FRAD_LAST_IOCTL FRAD_SET_CONF
-
-/*
- * Based on the setup for the Sangoma SDLA. If changes are
- * necessary to this structure, a routine will need to be
- * added to that module to copy fields.
- */
-struct frad_conf
-{
- short station;
- short flags;
- short kbaud;
- short clocking;
- short mtu;
- short T391;
- short T392;
- short N391;
- short N392;
- short N393;
- short CIR_fwd;
- short Bc_fwd;
- short Be_fwd;
- short CIR_bwd;
- short Bc_bwd;
- short Be_bwd;
-
-/* Add new fields here, above is a mirror of the sdla_conf */
-
-};
-
-#define FRAD_STATION_CPE 0x0000
-#define FRAD_STATION_NODE 0x0001
-
-#define FRAD_TX_IGNORE_CIR 0x0001
-#define FRAD_RX_ACCOUNT_CIR 0x0002
-#define FRAD_DROP_ABORTED 0x0004
-#define FRAD_BUFFERIF 0x0008
-#define FRAD_STATS 0x0010
-#define FRAD_MCI 0x0100
-#define FRAD_AUTODLCI 0x8000
-#define FRAD_VALID_FLAGS 0x811F
-
-#define FRAD_CLOCK_INT 0x0001
-#define FRAD_CLOCK_EXT 0x0000
-
-#ifdef __KERNEL__
-
-#if defined(CONFIG_DLCI) || defined(CONFIG_DLCI_MODULE)
-
-/* these are the fields of an RFC 1490 header */
-struct frhdr
-{
- unsigned char control;
-
- /* for IP packets, this can be the NLPID */
- unsigned char pad;
-
- unsigned char NLPID;
- unsigned char OUI[3];
- __be16 PID;
-
-#define IP_NLPID pad
-} __packed;
-
-/* see RFC 1490 for the definition of the following */
-#define FRAD_I_UI 0x03
-
-#define FRAD_P_PADDING 0x00
-#define FRAD_P_Q933 0x08
-#define FRAD_P_SNAP 0x80
-#define FRAD_P_CLNP 0x81
-#define FRAD_P_IP 0xCC
-
-struct dlci_local
-{
- struct net_device *master;
- struct net_device *slave;
- struct dlci_conf config;
- int configured;
- struct list_head list;
-
- /* callback function */
- void (*receive)(struct sk_buff *skb, struct net_device *);
-};
-
-struct frad_local
-{
- struct net_device_stats stats;
-
- /* devices which this FRAD is slaved to */
- struct net_device *master[CONFIG_DLCI_MAX];
- short dlci[CONFIG_DLCI_MAX];
-
- struct frad_conf config;
- int configured; /* has this device been configured */
- int initialized; /* mem_start, port, irq set ? */
-
- /* callback functions */
- int (*activate)(struct net_device *, struct net_device *);
- int (*deactivate)(struct net_device *, struct net_device *);
- int (*assoc)(struct net_device *, struct net_device *);
- int (*deassoc)(struct net_device *, struct net_device *);
- int (*dlci_conf)(struct net_device *, struct net_device *, int get);
-
- /* fields that are used by the Sangoma SDLA cards */
- struct timer_list timer;
- int type; /* adapter type */
- int state; /* state of the S502/8 control latch */
- int buffer; /* current buffer for S508 firmware */
-};
-
-#endif /* CONFIG_DLCI || CONFIG_DLCI_MODULE */
-
-extern void dlci_ioctl_set(int (*hook)(unsigned int, void __user *));
-
-#endif /* __KERNEL__ */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/if_hippi.h b/ANDROID_3.4.5/include/linux/if_hippi.h
deleted file mode 100644
index cdc049f1..00000000
--- a/ANDROID_3.4.5/include/linux/if_hippi.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Global definitions for the HIPPI interface.
- *
- * Version: @(#)if_hippi.h 1.0.0 05/26/97
- *
- * Author: Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
- * Donald Becker, <becker@super.org>
- * Alan Cox, <alan@lxorguk.ukuu.org.uk>
- * Steve Whitehouse, <gw7rrm@eeshack3.swan.ac.uk>
- * Jes Sorensen, <Jes.Sorensen@cern.ch>
- *
- * 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_IF_HIPPI_H
-#define _LINUX_IF_HIPPI_H
-
-#include <linux/types.h>
-#include <asm/byteorder.h>
-
-/*
- * HIPPI magic constants.
- */
-
-#define HIPPI_ALEN 6 /* Bytes in one HIPPI hw-addr */
-#define HIPPI_HLEN sizeof(struct hippi_hdr)
-#define HIPPI_ZLEN 0 /* Min. bytes in frame without FCS */
-#define HIPPI_DATA_LEN 65280 /* Max. bytes in payload */
-#define HIPPI_FRAME_LEN (HIPPI_DATA_LEN + HIPPI_HLEN)
- /* Max. bytes in frame without FCS */
-
-/*
- * Define LLC and SNAP constants.
- */
-#define HIPPI_EXTENDED_SAP 0xAA
-#define HIPPI_UI_CMD 0x03
-
-
-/*
- * Do we need to list some sort of ID's here?
- */
-
-/*
- * HIPPI statistics collection data.
- */
-
-struct hipnet_statistics {
- int rx_packets; /* total packets received */
- int tx_packets; /* total packets transmitted */
- int rx_errors; /* bad packets received */
- int tx_errors; /* packet transmit problems */
- int rx_dropped; /* no space in linux buffers */
- int tx_dropped; /* no space available in linux */
-
- /* detailed rx_errors: */
- int rx_length_errors;
- int rx_over_errors; /* receiver ring buff overflow */
- int rx_crc_errors; /* recved pkt with crc error */
- int rx_frame_errors; /* recv'd frame alignment error */
- int rx_fifo_errors; /* recv'r fifo overrun */
- int rx_missed_errors; /* receiver missed packet */
-
- /* detailed tx_errors */
- int tx_aborted_errors;
- int tx_carrier_errors;
- int tx_fifo_errors;
- int tx_heartbeat_errors;
- int tx_window_errors;
-};
-
-
-struct hippi_fp_hdr {
-#if 0
- __u8 ulp; /* must contain 4 */
-#if defined (__BIG_ENDIAN_BITFIELD)
- __u8 d1_data_present:1; /* must be 1 */
- __u8 start_d2_burst_boundary:1; /* must be zero */
- __u8 reserved:6; /* must be zero */
-#if 0
- __u16 reserved1:5;
- __u16 d1_area_size:8; /* must be 3 */
- __u16 d2_offset:3; /* must be zero */
-#endif
-#elif defined(__LITTLE_ENDIAN_BITFIELD)
- __u8 reserved:6; /* must be zero */
- __u8 start_d2_burst_boundary:1; /* must be zero */
- __u8 d1_data_present:1; /* must be 1 */
-#if 0
- __u16 d2_offset:3; /* must be zero */
- __u16 d1_area_size:8; /* must be 3 */
- __u16 reserved1:5; /* must be zero */
-#endif
-#else
-#error "Please fix <asm/byteorder.h>"
-#endif
-#else
- __be32 fixed;
-#endif
- __be32 d2_size;
-} __attribute__((packed));
-
-struct hippi_le_hdr {
-#if defined (__BIG_ENDIAN_BITFIELD)
- __u8 fc:3;
- __u8 double_wide:1;
- __u8 message_type:4;
-#elif defined(__LITTLE_ENDIAN_BITFIELD)
- __u8 message_type:4;
- __u8 double_wide:1;
- __u8 fc:3;
-#endif
- __u8 dest_switch_addr[3];
-#if defined (__BIG_ENDIAN_BITFIELD)
- __u8 dest_addr_type:4,
- src_addr_type:4;
-#elif defined(__LITTLE_ENDIAN_BITFIELD)
- __u8 src_addr_type:4,
- dest_addr_type:4;
-#endif
- __u8 src_switch_addr[3];
- __u16 reserved;
- __u8 daddr[HIPPI_ALEN];
- __u16 locally_administered;
- __u8 saddr[HIPPI_ALEN];
-} __attribute__((packed));
-
-#define HIPPI_OUI_LEN 3
-/*
- * Looks like the dsap and ssap fields have been swapped by mistake in
- * RFC 2067 "IP over HIPPI".
- */
-struct hippi_snap_hdr {
- __u8 dsap; /* always 0xAA */
- __u8 ssap; /* always 0xAA */
- __u8 ctrl; /* always 0x03 */
- __u8 oui[HIPPI_OUI_LEN]; /* organizational universal id (zero)*/
- __be16 ethertype; /* packet type ID field */
-} __attribute__((packed));
-
-struct hippi_hdr {
- struct hippi_fp_hdr fp;
- struct hippi_le_hdr le;
- struct hippi_snap_hdr snap;
-} __attribute__((packed));
-
-#endif /* _LINUX_IF_HIPPI_H */
diff --git a/ANDROID_3.4.5/include/linux/if_infiniband.h b/ANDROID_3.4.5/include/linux/if_infiniband.h
deleted file mode 100644
index 7d958475..00000000
--- a/ANDROID_3.4.5/include/linux/if_infiniband.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available at
- * <http://www.fsf.org/copyleft/gpl.html>, or the OpenIB.org BSD
- * license, available in the LICENSE.TXT file accompanying this
- * software. These details are also available at
- * <http://www.openfabrics.org/software_license.htm>.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Copyright (c) 2004 Topspin Communications. All rights reserved.
- *
- * $Id$
- */
-
-#ifndef _LINUX_IF_INFINIBAND_H
-#define _LINUX_IF_INFINIBAND_H
-
-#define INFINIBAND_ALEN 20 /* Octets in IPoIB HW addr */
-
-#endif /* _LINUX_IF_INFINIBAND_H */
diff --git a/ANDROID_3.4.5/include/linux/if_link.h b/ANDROID_3.4.5/include/linux/if_link.h
deleted file mode 100644
index 4b24ff45..00000000
--- a/ANDROID_3.4.5/include/linux/if_link.h
+++ /dev/null
@@ -1,394 +0,0 @@
-#ifndef _LINUX_IF_LINK_H
-#define _LINUX_IF_LINK_H
-
-#include <linux/types.h>
-#include <linux/netlink.h>
-
-/* This struct should be in sync with struct rtnl_link_stats64 */
-struct rtnl_link_stats {
- __u32 rx_packets; /* total packets received */
- __u32 tx_packets; /* total packets transmitted */
- __u32 rx_bytes; /* total bytes received */
- __u32 tx_bytes; /* total bytes transmitted */
- __u32 rx_errors; /* bad packets received */
- __u32 tx_errors; /* packet transmit problems */
- __u32 rx_dropped; /* no space in linux buffers */
- __u32 tx_dropped; /* no space available in linux */
- __u32 multicast; /* multicast packets received */
- __u32 collisions;
-
- /* detailed rx_errors: */
- __u32 rx_length_errors;
- __u32 rx_over_errors; /* receiver ring buff overflow */
- __u32 rx_crc_errors; /* recved pkt with crc error */
- __u32 rx_frame_errors; /* recv'd frame alignment error */
- __u32 rx_fifo_errors; /* recv'r fifo overrun */
- __u32 rx_missed_errors; /* receiver missed packet */
-
- /* detailed tx_errors */
- __u32 tx_aborted_errors;
- __u32 tx_carrier_errors;
- __u32 tx_fifo_errors;
- __u32 tx_heartbeat_errors;
- __u32 tx_window_errors;
-
- /* for cslip etc */
- __u32 rx_compressed;
- __u32 tx_compressed;
-};
-
-/* The main device statistics structure */
-struct rtnl_link_stats64 {
- __u64 rx_packets; /* total packets received */
- __u64 tx_packets; /* total packets transmitted */
- __u64 rx_bytes; /* total bytes received */
- __u64 tx_bytes; /* total bytes transmitted */
- __u64 rx_errors; /* bad packets received */
- __u64 tx_errors; /* packet transmit problems */
- __u64 rx_dropped; /* no space in linux buffers */
- __u64 tx_dropped; /* no space available in linux */
- __u64 multicast; /* multicast packets received */
- __u64 collisions;
-
- /* detailed rx_errors: */
- __u64 rx_length_errors;
- __u64 rx_over_errors; /* receiver ring buff overflow */
- __u64 rx_crc_errors; /* recved pkt with crc error */
- __u64 rx_frame_errors; /* recv'd frame alignment error */
- __u64 rx_fifo_errors; /* recv'r fifo overrun */
- __u64 rx_missed_errors; /* receiver missed packet */
-
- /* detailed tx_errors */
- __u64 tx_aborted_errors;
- __u64 tx_carrier_errors;
- __u64 tx_fifo_errors;
- __u64 tx_heartbeat_errors;
- __u64 tx_window_errors;
-
- /* for cslip etc */
- __u64 rx_compressed;
- __u64 tx_compressed;
-};
-
-/* The struct should be in sync with struct ifmap */
-struct rtnl_link_ifmap {
- __u64 mem_start;
- __u64 mem_end;
- __u64 base_addr;
- __u16 irq;
- __u8 dma;
- __u8 port;
-};
-
-/*
- * IFLA_AF_SPEC
- * Contains nested attributes for address family specific attributes.
- * Each address family may create a attribute with the address family
- * number as type and create its own attribute structure in it.
- *
- * Example:
- * [IFLA_AF_SPEC] = {
- * [AF_INET] = {
- * [IFLA_INET_CONF] = ...,
- * },
- * [AF_INET6] = {
- * [IFLA_INET6_FLAGS] = ...,
- * [IFLA_INET6_CONF] = ...,
- * }
- * }
- */
-
-enum {
- IFLA_UNSPEC,
- IFLA_ADDRESS,
- IFLA_BROADCAST,
- IFLA_IFNAME,
- IFLA_MTU,
- IFLA_LINK,
- IFLA_QDISC,
- IFLA_STATS,
- IFLA_COST,
-#define IFLA_COST IFLA_COST
- IFLA_PRIORITY,
-#define IFLA_PRIORITY IFLA_PRIORITY
- IFLA_MASTER,
-#define IFLA_MASTER IFLA_MASTER
- IFLA_WIRELESS, /* Wireless Extension event - see wireless.h */
-#define IFLA_WIRELESS IFLA_WIRELESS
- IFLA_PROTINFO, /* Protocol specific information for a link */
-#define IFLA_PROTINFO IFLA_PROTINFO
- IFLA_TXQLEN,
-#define IFLA_TXQLEN IFLA_TXQLEN
- IFLA_MAP,
-#define IFLA_MAP IFLA_MAP
- IFLA_WEIGHT,
-#define IFLA_WEIGHT IFLA_WEIGHT
- IFLA_OPERSTATE,
- IFLA_LINKMODE,
- IFLA_LINKINFO,
-#define IFLA_LINKINFO IFLA_LINKINFO
- IFLA_NET_NS_PID,
- IFLA_IFALIAS,
- IFLA_NUM_VF, /* Number of VFs if device is SR-IOV PF */
- IFLA_VFINFO_LIST,
- IFLA_STATS64,
- IFLA_VF_PORTS,
- IFLA_PORT_SELF,
- IFLA_AF_SPEC,
- IFLA_GROUP, /* Group the device belongs to */
- IFLA_NET_NS_FD,
- IFLA_EXT_MASK, /* Extended info mask, VFs, etc */
- __IFLA_MAX
-};
-
-
-#define IFLA_MAX (__IFLA_MAX - 1)
-
-/* backwards compatibility for userspace */
-#ifndef __KERNEL__
-#define IFLA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifinfomsg))))
-#define IFLA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifinfomsg))
-#endif
-
-enum {
- IFLA_INET_UNSPEC,
- IFLA_INET_CONF,
- __IFLA_INET_MAX,
-};
-
-#define IFLA_INET_MAX (__IFLA_INET_MAX - 1)
-
-/* ifi_flags.
-
- IFF_* flags.
-
- The only change is:
- IFF_LOOPBACK, IFF_BROADCAST and IFF_POINTOPOINT are
- more not changeable by user. They describe link media
- characteristics and set by device driver.
-
- Comments:
- - Combination IFF_BROADCAST|IFF_POINTOPOINT is invalid
- - If neither of these three flags are set;
- the interface is NBMA.
-
- - IFF_MULTICAST does not mean anything special:
- multicasts can be used on all not-NBMA links.
- IFF_MULTICAST means that this media uses special encapsulation
- for multicast frames. Apparently, all IFF_POINTOPOINT and
- IFF_BROADCAST devices are able to use multicasts too.
- */
-
-/* IFLA_LINK.
- For usual devices it is equal ifi_index.
- If it is a "virtual interface" (f.e. tunnel), ifi_link
- can point to real physical interface (f.e. for bandwidth calculations),
- or maybe 0, what means, that real media is unknown (usual
- for IPIP tunnels, when route to endpoint is allowed to change)
- */
-
-/* Subtype attributes for IFLA_PROTINFO */
-enum {
- IFLA_INET6_UNSPEC,
- IFLA_INET6_FLAGS, /* link flags */
- IFLA_INET6_CONF, /* sysctl parameters */
- IFLA_INET6_STATS, /* statistics */
- IFLA_INET6_MCAST, /* MC things. What of them? */
- IFLA_INET6_CACHEINFO, /* time values and max reasm size */
- IFLA_INET6_ICMP6STATS, /* statistics (icmpv6) */
- __IFLA_INET6_MAX
-};
-
-#define IFLA_INET6_MAX (__IFLA_INET6_MAX - 1)
-
-struct ifla_cacheinfo {
- __u32 max_reasm_len;
- __u32 tstamp; /* ipv6InterfaceTable updated timestamp */
- __u32 reachable_time;
- __u32 retrans_time;
-};
-
-enum {
- IFLA_INFO_UNSPEC,
- IFLA_INFO_KIND,
- IFLA_INFO_DATA,
- IFLA_INFO_XSTATS,
- __IFLA_INFO_MAX,
-};
-
-#define IFLA_INFO_MAX (__IFLA_INFO_MAX - 1)
-
-/* VLAN section */
-
-enum {
- IFLA_VLAN_UNSPEC,
- IFLA_VLAN_ID,
- IFLA_VLAN_FLAGS,
- IFLA_VLAN_EGRESS_QOS,
- IFLA_VLAN_INGRESS_QOS,
- __IFLA_VLAN_MAX,
-};
-
-#define IFLA_VLAN_MAX (__IFLA_VLAN_MAX - 1)
-
-struct ifla_vlan_flags {
- __u32 flags;
- __u32 mask;
-};
-
-enum {
- IFLA_VLAN_QOS_UNSPEC,
- IFLA_VLAN_QOS_MAPPING,
- __IFLA_VLAN_QOS_MAX
-};
-
-#define IFLA_VLAN_QOS_MAX (__IFLA_VLAN_QOS_MAX - 1)
-
-struct ifla_vlan_qos_mapping {
- __u32 from;
- __u32 to;
-};
-
-/* MACVLAN section */
-enum {
- IFLA_MACVLAN_UNSPEC,
- IFLA_MACVLAN_MODE,
- __IFLA_MACVLAN_MAX,
-};
-
-#define IFLA_MACVLAN_MAX (__IFLA_MACVLAN_MAX - 1)
-
-enum macvlan_mode {
- MACVLAN_MODE_PRIVATE = 1, /* don't talk to other macvlans */
- MACVLAN_MODE_VEPA = 2, /* talk to other ports through ext bridge */
- MACVLAN_MODE_BRIDGE = 4, /* talk to bridge ports directly */
- MACVLAN_MODE_PASSTHRU = 8,/* take over the underlying device */
-};
-
-/* SR-IOV virtual function management section */
-
-enum {
- IFLA_VF_INFO_UNSPEC,
- IFLA_VF_INFO,
- __IFLA_VF_INFO_MAX,
-};
-
-#define IFLA_VF_INFO_MAX (__IFLA_VF_INFO_MAX - 1)
-
-enum {
- IFLA_VF_UNSPEC,
- IFLA_VF_MAC, /* Hardware queue specific attributes */
- IFLA_VF_VLAN,
- IFLA_VF_TX_RATE, /* TX Bandwidth Allocation */
- IFLA_VF_SPOOFCHK, /* Spoof Checking on/off switch */
- __IFLA_VF_MAX,
-};
-
-#define IFLA_VF_MAX (__IFLA_VF_MAX - 1)
-
-struct ifla_vf_mac {
- __u32 vf;
- __u8 mac[32]; /* MAX_ADDR_LEN */
-};
-
-struct ifla_vf_vlan {
- __u32 vf;
- __u32 vlan; /* 0 - 4095, 0 disables VLAN filter */
- __u32 qos;
-};
-
-struct ifla_vf_tx_rate {
- __u32 vf;
- __u32 rate; /* Max TX bandwidth in Mbps, 0 disables throttling */
-};
-
-struct ifla_vf_spoofchk {
- __u32 vf;
- __u32 setting;
-};
-#ifdef __KERNEL__
-
-/* We don't want this structure exposed to user space */
-struct ifla_vf_info {
- __u32 vf;
- __u8 mac[32];
- __u32 vlan;
- __u32 qos;
- __u32 tx_rate;
- __u32 spoofchk;
-};
-#endif
-
-/* VF ports management section
- *
- * Nested layout of set/get msg is:
- *
- * [IFLA_NUM_VF]
- * [IFLA_VF_PORTS]
- * [IFLA_VF_PORT]
- * [IFLA_PORT_*], ...
- * [IFLA_VF_PORT]
- * [IFLA_PORT_*], ...
- * ...
- * [IFLA_PORT_SELF]
- * [IFLA_PORT_*], ...
- */
-
-enum {
- IFLA_VF_PORT_UNSPEC,
- IFLA_VF_PORT, /* nest */
- __IFLA_VF_PORT_MAX,
-};
-
-#define IFLA_VF_PORT_MAX (__IFLA_VF_PORT_MAX - 1)
-
-enum {
- IFLA_PORT_UNSPEC,
- IFLA_PORT_VF, /* __u32 */
- IFLA_PORT_PROFILE, /* string */
- IFLA_PORT_VSI_TYPE, /* 802.1Qbg (pre-)standard VDP */
- IFLA_PORT_INSTANCE_UUID, /* binary UUID */
- IFLA_PORT_HOST_UUID, /* binary UUID */
- IFLA_PORT_REQUEST, /* __u8 */
- IFLA_PORT_RESPONSE, /* __u16, output only */
- __IFLA_PORT_MAX,
-};
-
-#define IFLA_PORT_MAX (__IFLA_PORT_MAX - 1)
-
-#define PORT_PROFILE_MAX 40
-#define PORT_UUID_MAX 16
-#define PORT_SELF_VF -1
-
-enum {
- PORT_REQUEST_PREASSOCIATE = 0,
- PORT_REQUEST_PREASSOCIATE_RR,
- PORT_REQUEST_ASSOCIATE,
- PORT_REQUEST_DISASSOCIATE,
-};
-
-enum {
- PORT_VDP_RESPONSE_SUCCESS = 0,
- PORT_VDP_RESPONSE_INVALID_FORMAT,
- PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES,
- PORT_VDP_RESPONSE_UNUSED_VTID,
- PORT_VDP_RESPONSE_VTID_VIOLATION,
- PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION,
- PORT_VDP_RESPONSE_OUT_OF_SYNC,
- /* 0x08-0xFF reserved for future VDP use */
- PORT_PROFILE_RESPONSE_SUCCESS = 0x100,
- PORT_PROFILE_RESPONSE_INPROGRESS,
- PORT_PROFILE_RESPONSE_INVALID,
- PORT_PROFILE_RESPONSE_BADSTATE,
- PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES,
- PORT_PROFILE_RESPONSE_ERROR,
-};
-
-struct ifla_port_vsi {
- __u8 vsi_mgr_id;
- __u8 vsi_type_id[3];
- __u8 vsi_type_version;
- __u8 pad[3];
-};
-
-#endif /* _LINUX_IF_LINK_H */
diff --git a/ANDROID_3.4.5/include/linux/if_ltalk.h b/ANDROID_3.4.5/include/linux/if_ltalk.h
deleted file mode 100644
index 76525760..00000000
--- a/ANDROID_3.4.5/include/linux/if_ltalk.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef __LINUX_LTALK_H
-#define __LINUX_LTALK_H
-
-#define LTALK_HLEN 1
-#define LTALK_MTU 600
-#define LTALK_ALEN 1
-
-#ifdef __KERNEL__
-extern struct net_device *alloc_ltalkdev(int sizeof_priv);
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/if_macvlan.h b/ANDROID_3.4.5/include/linux/if_macvlan.h
deleted file mode 100644
index d103dca5..00000000
--- a/ANDROID_3.4.5/include/linux/if_macvlan.h
+++ /dev/null
@@ -1,108 +0,0 @@
-#ifndef _LINUX_IF_MACVLAN_H
-#define _LINUX_IF_MACVLAN_H
-
-#include <linux/if_link.h>
-#include <linux/list.h>
-#include <linux/netdevice.h>
-#include <linux/netlink.h>
-#include <net/netlink.h>
-#include <linux/u64_stats_sync.h>
-
-#if defined(CONFIG_MACVTAP) || defined(CONFIG_MACVTAP_MODULE)
-struct socket *macvtap_get_socket(struct file *);
-#else
-#include <linux/err.h>
-#include <linux/errno.h>
-struct file;
-struct socket;
-static inline struct socket *macvtap_get_socket(struct file *f)
-{
- return ERR_PTR(-EINVAL);
-}
-#endif /* CONFIG_MACVTAP */
-
-struct macvlan_port;
-struct macvtap_queue;
-
-/**
- * struct macvlan_pcpu_stats - MACVLAN percpu stats
- * @rx_packets: number of received packets
- * @rx_bytes: number of received bytes
- * @rx_multicast: number of received multicast packets
- * @tx_packets: number of transmitted packets
- * @tx_bytes: number of transmitted bytes
- * @syncp: synchronization point for 64bit counters
- * @rx_errors: number of rx errors
- * @tx_dropped: number of tx dropped packets
- */
-struct macvlan_pcpu_stats {
- u64 rx_packets;
- u64 rx_bytes;
- u64 rx_multicast;
- u64 tx_packets;
- u64 tx_bytes;
- struct u64_stats_sync syncp;
- u32 rx_errors;
- u32 tx_dropped;
-};
-
-/*
- * Maximum times a macvtap device can be opened. This can be used to
- * configure the number of receive queue, e.g. for multiqueue virtio.
- */
-#define MAX_MACVTAP_QUEUES (NR_CPUS < 16 ? NR_CPUS : 16)
-
-struct macvlan_dev {
- struct net_device *dev;
- struct list_head list;
- struct hlist_node hlist;
- struct macvlan_port *port;
- struct net_device *lowerdev;
- struct macvlan_pcpu_stats __percpu *pcpu_stats;
- enum macvlan_mode mode;
- int (*receive)(struct sk_buff *skb);
- int (*forward)(struct net_device *dev, struct sk_buff *skb);
- struct macvtap_queue *taps[MAX_MACVTAP_QUEUES];
- int numvtaps;
- int minor;
-};
-
-static inline void macvlan_count_rx(const struct macvlan_dev *vlan,
- unsigned int len, bool success,
- bool multicast)
-{
- if (likely(success)) {
- struct macvlan_pcpu_stats *pcpu_stats;
-
- pcpu_stats = this_cpu_ptr(vlan->pcpu_stats);
- u64_stats_update_begin(&pcpu_stats->syncp);
- pcpu_stats->rx_packets++;
- pcpu_stats->rx_bytes += len;
- if (multicast)
- pcpu_stats->rx_multicast++;
- u64_stats_update_end(&pcpu_stats->syncp);
- } else {
- this_cpu_inc(vlan->pcpu_stats->rx_errors);
- }
-}
-
-extern void macvlan_common_setup(struct net_device *dev);
-
-extern int macvlan_common_newlink(struct net *src_net, struct net_device *dev,
- struct nlattr *tb[], struct nlattr *data[],
- int (*receive)(struct sk_buff *skb),
- int (*forward)(struct net_device *dev,
- struct sk_buff *skb));
-
-extern void macvlan_count_rx(const struct macvlan_dev *vlan,
- unsigned int len, bool success,
- bool multicast);
-
-extern void macvlan_dellink(struct net_device *dev, struct list_head *head);
-
-extern int macvlan_link_register(struct rtnl_link_ops *ops);
-
-extern netdev_tx_t macvlan_start_xmit(struct sk_buff *skb,
- struct net_device *dev);
-
-#endif /* _LINUX_IF_MACVLAN_H */
diff --git a/ANDROID_3.4.5/include/linux/if_packet.h b/ANDROID_3.4.5/include/linux/if_packet.h
deleted file mode 100644
index f3799295..00000000
--- a/ANDROID_3.4.5/include/linux/if_packet.h
+++ /dev/null
@@ -1,272 +0,0 @@
-#ifndef __LINUX_IF_PACKET_H
-#define __LINUX_IF_PACKET_H
-
-#include <linux/types.h>
-
-struct sockaddr_pkt {
- unsigned short spkt_family;
- unsigned char spkt_device[14];
- __be16 spkt_protocol;
-};
-
-struct sockaddr_ll {
- unsigned short sll_family;
- __be16 sll_protocol;
- int sll_ifindex;
- unsigned short sll_hatype;
- unsigned char sll_pkttype;
- unsigned char sll_halen;
- unsigned char sll_addr[8];
-};
-
-/* Packet types */
-
-#define PACKET_HOST 0 /* To us */
-#define PACKET_BROADCAST 1 /* To all */
-#define PACKET_MULTICAST 2 /* To group */
-#define PACKET_OTHERHOST 3 /* To someone else */
-#define PACKET_OUTGOING 4 /* Outgoing of any type */
-/* These ones are invisible by user level */
-#define PACKET_LOOPBACK 5 /* MC/BRD frame looped back */
-#define PACKET_FASTROUTE 6 /* Fastrouted frame */
-
-/* Packet socket options */
-
-#define PACKET_ADD_MEMBERSHIP 1
-#define PACKET_DROP_MEMBERSHIP 2
-#define PACKET_RECV_OUTPUT 3
-/* Value 4 is still used by obsolete turbo-packet. */
-#define PACKET_RX_RING 5
-#define PACKET_STATISTICS 6
-#define PACKET_COPY_THRESH 7
-#define PACKET_AUXDATA 8
-#define PACKET_ORIGDEV 9
-#define PACKET_VERSION 10
-#define PACKET_HDRLEN 11
-#define PACKET_RESERVE 12
-#define PACKET_TX_RING 13
-#define PACKET_LOSS 14
-#define PACKET_VNET_HDR 15
-#define PACKET_TX_TIMESTAMP 16
-#define PACKET_TIMESTAMP 17
-#define PACKET_FANOUT 18
-
-#define PACKET_FANOUT_HASH 0
-#define PACKET_FANOUT_LB 1
-#define PACKET_FANOUT_CPU 2
-#define PACKET_FANOUT_FLAG_DEFRAG 0x8000
-
-struct tpacket_stats {
- unsigned int tp_packets;
- unsigned int tp_drops;
-};
-
-struct tpacket_stats_v3 {
- unsigned int tp_packets;
- unsigned int tp_drops;
- unsigned int tp_freeze_q_cnt;
-};
-
-union tpacket_stats_u {
- struct tpacket_stats stats1;
- struct tpacket_stats_v3 stats3;
-};
-
-struct tpacket_auxdata {
- __u32 tp_status;
- __u32 tp_len;
- __u32 tp_snaplen;
- __u16 tp_mac;
- __u16 tp_net;
- __u16 tp_vlan_tci;
- __u16 tp_padding;
-};
-
-/* Rx ring - header status */
-#define TP_STATUS_KERNEL 0x0
-#define TP_STATUS_USER 0x1
-#define TP_STATUS_COPY 0x2
-#define TP_STATUS_LOSING 0x4
-#define TP_STATUS_CSUMNOTREADY 0x8
-#define TP_STATUS_VLAN_VALID 0x10 /* auxdata has valid tp_vlan_tci */
-#define TP_STATUS_BLK_TMO 0x20
-
-/* Tx ring - header status */
-#define TP_STATUS_AVAILABLE 0x0
-#define TP_STATUS_SEND_REQUEST 0x1
-#define TP_STATUS_SENDING 0x2
-#define TP_STATUS_WRONG_FORMAT 0x4
-
-/* Rx ring - feature request bits */
-#define TP_FT_REQ_FILL_RXHASH 0x1
-
-struct tpacket_hdr {
- unsigned long tp_status;
- unsigned int tp_len;
- unsigned int tp_snaplen;
- unsigned short tp_mac;
- unsigned short tp_net;
- unsigned int tp_sec;
- unsigned int tp_usec;
-};
-
-#define TPACKET_ALIGNMENT 16
-#define TPACKET_ALIGN(x) (((x)+TPACKET_ALIGNMENT-1)&~(TPACKET_ALIGNMENT-1))
-#define TPACKET_HDRLEN (TPACKET_ALIGN(sizeof(struct tpacket_hdr)) + sizeof(struct sockaddr_ll))
-
-struct tpacket2_hdr {
- __u32 tp_status;
- __u32 tp_len;
- __u32 tp_snaplen;
- __u16 tp_mac;
- __u16 tp_net;
- __u32 tp_sec;
- __u32 tp_nsec;
- __u16 tp_vlan_tci;
- __u16 tp_padding;
-};
-
-struct tpacket_hdr_variant1 {
- __u32 tp_rxhash;
- __u32 tp_vlan_tci;
-};
-
-struct tpacket3_hdr {
- __u32 tp_next_offset;
- __u32 tp_sec;
- __u32 tp_nsec;
- __u32 tp_snaplen;
- __u32 tp_len;
- __u32 tp_status;
- __u16 tp_mac;
- __u16 tp_net;
- /* pkt_hdr variants */
- union {
- struct tpacket_hdr_variant1 hv1;
- };
-};
-
-struct tpacket_bd_ts {
- unsigned int ts_sec;
- union {
- unsigned int ts_usec;
- unsigned int ts_nsec;
- };
-};
-
-struct tpacket_hdr_v1 {
- __u32 block_status;
- __u32 num_pkts;
- __u32 offset_to_first_pkt;
-
- /* Number of valid bytes (including padding)
- * blk_len <= tp_block_size
- */
- __u32 blk_len;
-
- /*
- * Quite a few uses of sequence number:
- * 1. Make sure cache flush etc worked.
- * Well, one can argue - why not use the increasing ts below?
- * But look at 2. below first.
- * 2. When you pass around blocks to other user space decoders,
- * you can see which blk[s] is[are] outstanding etc.
- * 3. Validate kernel code.
- */
- __aligned_u64 seq_num;
-
- /*
- * ts_last_pkt:
- *
- * Case 1. Block has 'N'(N >=1) packets and TMO'd(timed out)
- * ts_last_pkt == 'time-stamp of last packet' and NOT the
- * time when the timer fired and the block was closed.
- * By providing the ts of the last packet we can absolutely
- * guarantee that time-stamp wise, the first packet in the
- * next block will never precede the last packet of the
- * previous block.
- * Case 2. Block has zero packets and TMO'd
- * ts_last_pkt = time when the timer fired and the block
- * was closed.
- * Case 3. Block has 'N' packets and NO TMO.
- * ts_last_pkt = time-stamp of the last pkt in the block.
- *
- * ts_first_pkt:
- * Is always the time-stamp when the block was opened.
- * Case a) ZERO packets
- * No packets to deal with but atleast you know the
- * time-interval of this block.
- * Case b) Non-zero packets
- * Use the ts of the first packet in the block.
- *
- */
- struct tpacket_bd_ts ts_first_pkt, ts_last_pkt;
-};
-
-union tpacket_bd_header_u {
- struct tpacket_hdr_v1 bh1;
-};
-
-struct tpacket_block_desc {
- __u32 version;
- __u32 offset_to_priv;
- union tpacket_bd_header_u hdr;
-};
-
-#define TPACKET2_HDRLEN (TPACKET_ALIGN(sizeof(struct tpacket2_hdr)) + sizeof(struct sockaddr_ll))
-#define TPACKET3_HDRLEN (TPACKET_ALIGN(sizeof(struct tpacket3_hdr)) + sizeof(struct sockaddr_ll))
-
-enum tpacket_versions {
- TPACKET_V1,
- TPACKET_V2,
- TPACKET_V3
-};
-
-/*
- Frame structure:
-
- - Start. Frame must be aligned to TPACKET_ALIGNMENT=16
- - struct tpacket_hdr
- - pad to TPACKET_ALIGNMENT=16
- - struct sockaddr_ll
- - Gap, chosen so that packet data (Start+tp_net) alignes to TPACKET_ALIGNMENT=16
- - Start+tp_mac: [ Optional MAC header ]
- - Start+tp_net: Packet data, aligned to TPACKET_ALIGNMENT=16.
- - Pad to align to TPACKET_ALIGNMENT=16
- */
-
-struct tpacket_req {
- unsigned int tp_block_size; /* Minimal size of contiguous block */
- unsigned int tp_block_nr; /* Number of blocks */
- unsigned int tp_frame_size; /* Size of frame */
- unsigned int tp_frame_nr; /* Total number of frames */
-};
-
-struct tpacket_req3 {
- unsigned int tp_block_size; /* Minimal size of contiguous block */
- unsigned int tp_block_nr; /* Number of blocks */
- unsigned int tp_frame_size; /* Size of frame */
- unsigned int tp_frame_nr; /* Total number of frames */
- unsigned int tp_retire_blk_tov; /* timeout in msecs */
- unsigned int tp_sizeof_priv; /* offset to private data area */
- unsigned int tp_feature_req_word;
-};
-
-union tpacket_req_u {
- struct tpacket_req req;
- struct tpacket_req3 req3;
-};
-
-struct packet_mreq {
- int mr_ifindex;
- unsigned short mr_type;
- unsigned short mr_alen;
- unsigned char mr_address[8];
-};
-
-#define PACKET_MR_MULTICAST 0
-#define PACKET_MR_PROMISC 1
-#define PACKET_MR_ALLMULTI 2
-#define PACKET_MR_UNICAST 3
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/if_phonet.h b/ANDROID_3.4.5/include/linux/if_phonet.h
deleted file mode 100644
index d70034bc..00000000
--- a/ANDROID_3.4.5/include/linux/if_phonet.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * File: if_phonet.h
- *
- * Phonet interface kernel definitions
- *
- * Copyright (C) 2008 Nokia Corporation. All rights reserved.
- */
-#ifndef LINUX_IF_PHONET_H
-#define LINUX_IF_PHONET_H
-
-#define PHONET_MIN_MTU 6 /* pn_length = 0 */
-#define PHONET_MAX_MTU 65541 /* pn_length = 0xffff */
-#define PHONET_DEV_MTU PHONET_MAX_MTU
-
-#ifdef __KERNEL__
-extern struct header_ops phonet_header_ops;
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/if_plip.h b/ANDROID_3.4.5/include/linux/if_plip.h
deleted file mode 100644
index 6298c7e8..00000000
--- a/ANDROID_3.4.5/include/linux/if_plip.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * NET3 PLIP tuning facilities for the new Niibe PLIP.
- *
- * 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_IF_PLIP_H
-#define _LINUX_IF_PLIP_H
-
-#include <linux/sockios.h>
-
-#define SIOCDEVPLIP SIOCDEVPRIVATE
-
-struct plipconf {
- unsigned short pcmd;
- unsigned long nibble;
- unsigned long trigger;
-};
-
-#define PLIP_GET_TIMEOUT 0x1
-#define PLIP_SET_TIMEOUT 0x2
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/if_ppp.h b/ANDROID_3.4.5/include/linux/if_ppp.h
deleted file mode 100644
index 9048fabb..00000000
--- a/ANDROID_3.4.5/include/linux/if_ppp.h
+++ /dev/null
@@ -1 +0,0 @@
-#include <linux/ppp-ioctl.h>
diff --git a/ANDROID_3.4.5/include/linux/if_pppol2tp.h b/ANDROID_3.4.5/include/linux/if_pppol2tp.h
deleted file mode 100644
index 23cefa11..00000000
--- a/ANDROID_3.4.5/include/linux/if_pppol2tp.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/***************************************************************************
- * Linux PPP over L2TP (PPPoL2TP) Socket Implementation (RFC 2661)
- *
- * This file supplies definitions required by the PPP over L2TP driver
- * (l2tp_ppp.c). All version information wrt this file is located in l2tp_ppp.c
- *
- * License:
- * 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_IF_PPPOL2TP_H
-#define __LINUX_IF_PPPOL2TP_H
-
-#include <linux/types.h>
-
-#ifdef __KERNEL__
-#include <linux/in.h>
-#endif
-
-/* Structure used to connect() the socket to a particular tunnel UDP
- * socket.
- */
-struct pppol2tp_addr {
- __kernel_pid_t pid; /* pid that owns the fd.
- * 0 => current */
- int fd; /* FD of UDP socket to use */
-
- struct sockaddr_in addr; /* IP address and port to send to */
-
- __u16 s_tunnel, s_session; /* For matching incoming packets */
- __u16 d_tunnel, d_session; /* For sending outgoing packets */
-};
-
-/* The L2TPv3 protocol changes tunnel and session ids from 16 to 32
- * bits. So we need a different sockaddr structure.
- */
-struct pppol2tpv3_addr {
- __kernel_pid_t pid; /* pid that owns the fd.
- * 0 => current */
- int fd; /* FD of UDP or IP socket to use */
-
- struct sockaddr_in addr; /* IP address and port to send to */
-
- __u32 s_tunnel, s_session; /* For matching incoming packets */
- __u32 d_tunnel, d_session; /* For sending outgoing packets */
-};
-
-/* Socket options:
- * DEBUG - bitmask of debug message categories
- * SENDSEQ - 0 => don't send packets with sequence numbers
- * 1 => send packets with sequence numbers
- * RECVSEQ - 0 => receive packet sequence numbers are optional
- * 1 => drop receive packets without sequence numbers
- * LNSMODE - 0 => act as LAC.
- * 1 => act as LNS.
- * REORDERTO - reorder timeout (in millisecs). If 0, don't try to reorder.
- */
-enum {
- PPPOL2TP_SO_DEBUG = 1,
- PPPOL2TP_SO_RECVSEQ = 2,
- PPPOL2TP_SO_SENDSEQ = 3,
- PPPOL2TP_SO_LNSMODE = 4,
- PPPOL2TP_SO_REORDERTO = 5,
-};
-
-/* Debug message categories for the DEBUG socket option */
-enum {
- PPPOL2TP_MSG_DEBUG = (1 << 0), /* verbose debug (if
- * compiled in) */
- PPPOL2TP_MSG_CONTROL = (1 << 1), /* userspace - kernel
- * interface */
- PPPOL2TP_MSG_SEQ = (1 << 2), /* sequence numbers */
- PPPOL2TP_MSG_DATA = (1 << 3), /* data packets */
-};
-
-
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/if_pppolac.h b/ANDROID_3.4.5/include/linux/if_pppolac.h
deleted file mode 100644
index c06bd6c8..00000000
--- a/ANDROID_3.4.5/include/linux/if_pppolac.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* include/linux/if_pppolac.h
- *
- * Header for PPP on L2TP Access Concentrator / PPPoLAC Socket (RFC 2661)
- *
- * Copyright (C) 2009 Google, Inc.
- * Author: Chia-chi Yeh <chiachi@android.com>
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
-
-#ifndef __LINUX_IF_PPPOLAC_H
-#define __LINUX_IF_PPPOLAC_H
-
-#include <linux/socket.h>
-#include <linux/types.h>
-
-struct sockaddr_pppolac {
- sa_family_t sa_family; /* AF_PPPOX */
- unsigned int sa_protocol; /* PX_PROTO_OLAC */
- int udp_socket;
- struct __attribute__((packed)) {
- __u16 tunnel, session;
- } local, remote;
-} __attribute__((packed));
-
-#endif /* __LINUX_IF_PPPOLAC_H */
diff --git a/ANDROID_3.4.5/include/linux/if_pppopns.h b/ANDROID_3.4.5/include/linux/if_pppopns.h
deleted file mode 100644
index 0cf34b4d..00000000
--- a/ANDROID_3.4.5/include/linux/if_pppopns.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* include/linux/if_pppopns.h
- *
- * Header for PPP on PPTP Network Server / PPPoPNS Socket (RFC 2637)
- *
- * Copyright (C) 2009 Google, Inc.
- * Author: Chia-chi Yeh <chiachi@android.com>
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
-
-#ifndef __LINUX_IF_PPPOPNS_H
-#define __LINUX_IF_PPPOPNS_H
-
-#include <linux/socket.h>
-#include <linux/types.h>
-
-struct sockaddr_pppopns {
- sa_family_t sa_family; /* AF_PPPOX */
- unsigned int sa_protocol; /* PX_PROTO_OPNS */
- int tcp_socket;
- __u16 local;
- __u16 remote;
-} __attribute__((packed));
-
-#endif /* __LINUX_IF_PPPOPNS_H */
diff --git a/ANDROID_3.4.5/include/linux/if_pppox.h b/ANDROID_3.4.5/include/linux/if_pppox.h
deleted file mode 100644
index 1597b8bc..00000000
--- a/ANDROID_3.4.5/include/linux/if_pppox.h
+++ /dev/null
@@ -1,250 +0,0 @@
-/***************************************************************************
- * Linux PPP over X - Generic PPP transport layer sockets
- * Linux PPP over Ethernet (PPPoE) Socket Implementation (RFC 2516)
- *
- * This file supplies definitions required by the PPP over Ethernet driver
- * (pppox.c). All version information wrt this file is located in pppox.c
- *
- * License:
- * 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_IF_PPPOX_H
-#define __LINUX_IF_PPPOX_H
-
-
-#include <linux/types.h>
-#include <asm/byteorder.h>
-
-#include <linux/socket.h>
-#include <linux/if_ether.h>
-#ifdef __KERNEL__
-#include <linux/if.h>
-#include <linux/netdevice.h>
-#include <linux/ppp_channel.h>
-#endif /* __KERNEL__ */
-#include <linux/if_pppol2tp.h>
-#include <linux/if_pppolac.h>
-#include <linux/if_pppopns.h>
-
-/* For user-space programs to pick up these definitions
- * which they wouldn't get otherwise without defining __KERNEL__
- */
-#ifndef AF_PPPOX
-#define AF_PPPOX 24
-#define PF_PPPOX AF_PPPOX
-#endif /* !(AF_PPPOX) */
-
-/************************************************************************
- * PPPoE addressing definition
- */
-typedef __be16 sid_t;
-struct pppoe_addr {
- sid_t sid; /* Session identifier */
- unsigned char remote[ETH_ALEN]; /* Remote address */
- char dev[IFNAMSIZ]; /* Local device to use */
-};
-
-/************************************************************************
- * PPTP addressing definition
- */
-struct pptp_addr {
- __be16 call_id;
- struct in_addr sin_addr;
-};
-
-/************************************************************************
- * Protocols supported by AF_PPPOX
- */
-#define PX_PROTO_OE 0 /* Currently just PPPoE */
-#define PX_PROTO_OL2TP 1 /* Now L2TP also */
-#define PX_PROTO_PPTP 2
-#define PX_PROTO_OLAC 3
-#define PX_PROTO_OPNS 4
-#define PX_MAX_PROTO 5
-
-struct sockaddr_pppox {
- __kernel_sa_family_t sa_family; /* address family, AF_PPPOX */
- unsigned int sa_protocol; /* protocol identifier */
- union {
- struct pppoe_addr pppoe;
- struct pptp_addr pptp;
- } sa_addr;
-} __attribute__((packed));
-
-/* The use of the above union isn't viable because the size of this
- * struct must stay fixed over time -- applications use sizeof(struct
- * sockaddr_pppox) to fill it. We use a protocol specific sockaddr
- * type instead.
- */
-struct sockaddr_pppol2tp {
- __kernel_sa_family_t sa_family; /* address family, AF_PPPOX */
- unsigned int sa_protocol; /* protocol identifier */
- struct pppol2tp_addr pppol2tp;
-} __attribute__((packed));
-
-/* The L2TPv3 protocol changes tunnel and session ids from 16 to 32
- * bits. So we need a different sockaddr structure.
- */
-struct sockaddr_pppol2tpv3 {
- __kernel_sa_family_t sa_family; /* address family, AF_PPPOX */
- unsigned int sa_protocol; /* protocol identifier */
- struct pppol2tpv3_addr pppol2tp;
-} __attribute__((packed));
-
-/*********************************************************************
- *
- * ioctl interface for defining forwarding of connections
- *
- ********************************************************************/
-
-#define PPPOEIOCSFWD _IOW(0xB1 ,0, size_t)
-#define PPPOEIOCDFWD _IO(0xB1 ,1)
-/*#define PPPOEIOCGFWD _IOWR(0xB1,2, size_t)*/
-
-/* Codes to identify message types */
-#define PADI_CODE 0x09
-#define PADO_CODE 0x07
-#define PADR_CODE 0x19
-#define PADS_CODE 0x65
-#define PADT_CODE 0xa7
-struct pppoe_tag {
- __be16 tag_type;
- __be16 tag_len;
- char tag_data[0];
-} __attribute__ ((packed));
-
-/* Tag identifiers */
-#define PTT_EOL __cpu_to_be16(0x0000)
-#define PTT_SRV_NAME __cpu_to_be16(0x0101)
-#define PTT_AC_NAME __cpu_to_be16(0x0102)
-#define PTT_HOST_UNIQ __cpu_to_be16(0x0103)
-#define PTT_AC_COOKIE __cpu_to_be16(0x0104)
-#define PTT_VENDOR __cpu_to_be16(0x0105)
-#define PTT_RELAY_SID __cpu_to_be16(0x0110)
-#define PTT_SRV_ERR __cpu_to_be16(0x0201)
-#define PTT_SYS_ERR __cpu_to_be16(0x0202)
-#define PTT_GEN_ERR __cpu_to_be16(0x0203)
-
-struct pppoe_hdr {
-#if defined(__LITTLE_ENDIAN_BITFIELD)
- __u8 ver : 4;
- __u8 type : 4;
-#elif defined(__BIG_ENDIAN_BITFIELD)
- __u8 type : 4;
- __u8 ver : 4;
-#else
-#error "Please fix <asm/byteorder.h>"
-#endif
- __u8 code;
- __be16 sid;
- __be16 length;
- struct pppoe_tag tag[0];
-} __attribute__((packed));
-
-/* Length of entire PPPoE + PPP header */
-#define PPPOE_SES_HLEN 8
-
-#ifdef __KERNEL__
-#include <linux/skbuff.h>
-
-static inline struct pppoe_hdr *pppoe_hdr(const struct sk_buff *skb)
-{
- return (struct pppoe_hdr *)skb_network_header(skb);
-}
-
-struct pppoe_opt {
- struct net_device *dev; /* device associated with socket*/
- int ifindex; /* ifindex of device associated with socket */
- struct pppoe_addr pa; /* what this socket is bound to*/
- struct sockaddr_pppox relay; /* what socket data will be
- relayed to (PPPoE relaying) */
-};
-
-struct pptp_opt {
- struct pptp_addr src_addr;
- struct pptp_addr dst_addr;
- u32 ack_sent, ack_recv;
- u32 seq_sent, seq_recv;
- int ppp_flags;
-};
-
-struct pppolac_opt {
- __u32 local;
- __u32 remote;
- __u32 recv_sequence;
- __u32 xmit_sequence;
- atomic_t sequencing;
- int (*backlog_rcv)(struct sock *sk_udp, struct sk_buff *skb);
-};
-
-struct pppopns_opt {
- __u16 local;
- __u16 remote;
- __u32 recv_sequence;
- __u32 xmit_sequence;
- void (*data_ready)(struct sock *sk_raw, int length);
- int (*backlog_rcv)(struct sock *sk_raw, struct sk_buff *skb);
-};
-
-#include <net/sock.h>
-
-struct pppox_sock {
- /* struct sock must be the first member of pppox_sock */
- struct sock sk;
- struct ppp_channel chan;
- struct pppox_sock *next; /* for hash table */
- union {
- struct pppoe_opt pppoe;
- struct pptp_opt pptp;
- struct pppolac_opt lac;
- struct pppopns_opt pns;
- } proto;
- __be16 num;
-};
-#define pppoe_dev proto.pppoe.dev
-#define pppoe_ifindex proto.pppoe.ifindex
-#define pppoe_pa proto.pppoe.pa
-#define pppoe_relay proto.pppoe.relay
-
-static inline struct pppox_sock *pppox_sk(struct sock *sk)
-{
- return (struct pppox_sock *)sk;
-}
-
-static inline struct sock *sk_pppox(struct pppox_sock *po)
-{
- return (struct sock *)po;
-}
-
-struct module;
-
-struct pppox_proto {
- int (*create)(struct net *net, struct socket *sock);
- int (*ioctl)(struct socket *sock, unsigned int cmd,
- unsigned long arg);
- struct module *owner;
-};
-
-extern int register_pppox_proto(int proto_num, const struct pppox_proto *pp);
-extern void unregister_pppox_proto(int proto_num);
-extern void pppox_unbind_sock(struct sock *sk);/* delete ppp-channel binding */
-extern int pppox_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg);
-
-/* PPPoX socket states */
-enum {
- PPPOX_NONE = 0, /* initial state */
- PPPOX_CONNECTED = 1, /* connection established ==TCP_ESTABLISHED */
- PPPOX_BOUND = 2, /* bound to ppp device */
- PPPOX_RELAY = 4, /* forwarding is enabled */
- PPPOX_ZOMBIE = 8, /* dead, but still bound to ppp device */
- PPPOX_DEAD = 16 /* dead, useless, please clean me up!*/
-};
-
-#endif /* __KERNEL__ */
-
-#endif /* !(__LINUX_IF_PPPOX_H) */
diff --git a/ANDROID_3.4.5/include/linux/if_slip.h b/ANDROID_3.4.5/include/linux/if_slip.h
deleted file mode 100644
index 1eb4e3a8..00000000
--- a/ANDROID_3.4.5/include/linux/if_slip.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Swansea University Computer Society NET3
- *
- * This file declares the constants of special use with the SLIP/CSLIP/
- * KISS TNC driver.
- */
-
-#ifndef __LINUX_SLIP_H
-#define __LINUX_SLIP_H
-
-#define SL_MODE_SLIP 0
-#define SL_MODE_CSLIP 1
-#define SL_MODE_KISS 4
-
-#define SL_OPT_SIXBIT 2
-#define SL_OPT_ADAPTIVE 8
-
-/*
- * VSV = ioctl for keepalive & outfill in SLIP driver
- */
-
-#define SIOCSKEEPALIVE (SIOCDEVPRIVATE) /* Set keepalive timeout in sec */
-#define SIOCGKEEPALIVE (SIOCDEVPRIVATE+1) /* Get keepalive timeout */
-#define SIOCSOUTFILL (SIOCDEVPRIVATE+2) /* Set outfill timeout */
-#define SIOCGOUTFILL (SIOCDEVPRIVATE+3) /* Get outfill timeout */
-#define SIOCSLEASE (SIOCDEVPRIVATE+4) /* Set "leased" line type */
-#define SIOCGLEASE (SIOCDEVPRIVATE+5) /* Get line type */
-
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/if_strip.h b/ANDROID_3.4.5/include/linux/if_strip.h
deleted file mode 100644
index 6526a623..00000000
--- a/ANDROID_3.4.5/include/linux/if_strip.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * if_strip.h --
- *
- * Definitions for the STRIP interface
- *
- * Copyright 1996 The Board of Trustees of The Leland Stanford
- * Junior University. All Rights Reserved.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies. Stanford University
- * makes no representations about the suitability of this
- * software for any purpose. It is provided "as is" without
- * express or implied warranty.
- */
-
-#ifndef __LINUX_STRIP_H
-#define __LINUX_STRIP_H
-
-#include <linux/types.h>
-
-typedef struct {
- __u8 c[6];
-} MetricomAddress;
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/if_team.h b/ANDROID_3.4.5/include/linux/if_team.h
deleted file mode 100644
index 58404b0c..00000000
--- a/ANDROID_3.4.5/include/linux/if_team.h
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
- * include/linux/if_team.h - Network team device driver header
- * Copyright (c) 2011 Jiri Pirko <jpirko@redhat.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 _LINUX_IF_TEAM_H_
-#define _LINUX_IF_TEAM_H_
-
-#ifdef __KERNEL__
-
-struct team_pcpu_stats {
- u64 rx_packets;
- u64 rx_bytes;
- u64 rx_multicast;
- u64 tx_packets;
- u64 tx_bytes;
- struct u64_stats_sync syncp;
- u32 rx_dropped;
- u32 tx_dropped;
-};
-
-struct team;
-
-struct team_port {
- struct net_device *dev;
- struct hlist_node hlist; /* node in hash list */
- struct list_head list; /* node in ordinary list */
- struct team *team;
- int index;
-
- /*
- * A place for storing original values of the device before it
- * become a port.
- */
- struct {
- unsigned char dev_addr[MAX_ADDR_LEN];
- unsigned int mtu;
- } orig;
-
- bool linkup;
- u32 speed;
- u8 duplex;
-
- /* Custom gennetlink interface related flags */
- bool changed;
- bool removed;
-
- struct rcu_head rcu;
-};
-
-struct team_mode_ops {
- int (*init)(struct team *team);
- void (*exit)(struct team *team);
- rx_handler_result_t (*receive)(struct team *team,
- struct team_port *port,
- struct sk_buff *skb);
- bool (*transmit)(struct team *team, struct sk_buff *skb);
- int (*port_enter)(struct team *team, struct team_port *port);
- void (*port_leave)(struct team *team, struct team_port *port);
- void (*port_change_mac)(struct team *team, struct team_port *port);
-};
-
-enum team_option_type {
- TEAM_OPTION_TYPE_U32,
- TEAM_OPTION_TYPE_STRING,
-};
-
-struct team_option {
- struct list_head list;
- const char *name;
- enum team_option_type type;
- int (*getter)(struct team *team, void *arg);
- int (*setter)(struct team *team, void *arg);
-
- /* Custom gennetlink interface related flags */
- bool changed;
- bool removed;
-};
-
-struct team_mode {
- struct list_head list;
- const char *kind;
- struct module *owner;
- size_t priv_size;
- const struct team_mode_ops *ops;
-};
-
-#define TEAM_PORT_HASHBITS 4
-#define TEAM_PORT_HASHENTRIES (1 << TEAM_PORT_HASHBITS)
-
-#define TEAM_MODE_PRIV_LONGS 4
-#define TEAM_MODE_PRIV_SIZE (sizeof(long) * TEAM_MODE_PRIV_LONGS)
-
-struct team {
- struct net_device *dev; /* associated netdevice */
- struct team_pcpu_stats __percpu *pcpu_stats;
-
- struct mutex lock; /* used for overall locking, e.g. port lists write */
-
- /*
- * port lists with port count
- */
- int port_count;
- struct hlist_head port_hlist[TEAM_PORT_HASHENTRIES];
- struct list_head port_list;
-
- struct list_head option_list;
-
- const struct team_mode *mode;
- struct team_mode_ops ops;
- long mode_priv[TEAM_MODE_PRIV_LONGS];
-};
-
-static inline struct hlist_head *team_port_index_hash(struct team *team,
- int port_index)
-{
- return &team->port_hlist[port_index & (TEAM_PORT_HASHENTRIES - 1)];
-}
-
-static inline struct team_port *team_get_port_by_index(struct team *team,
- int port_index)
-{
- struct hlist_node *p;
- struct team_port *port;
- struct hlist_head *head = team_port_index_hash(team, port_index);
-
- hlist_for_each_entry(port, p, head, hlist)
- if (port->index == port_index)
- return port;
- return NULL;
-}
-static inline struct team_port *team_get_port_by_index_rcu(struct team *team,
- int port_index)
-{
- struct hlist_node *p;
- struct team_port *port;
- struct hlist_head *head = team_port_index_hash(team, port_index);
-
- hlist_for_each_entry_rcu(port, p, head, hlist)
- if (port->index == port_index)
- return port;
- return NULL;
-}
-
-extern int team_port_set_team_mac(struct team_port *port);
-extern int team_options_register(struct team *team,
- const struct team_option *option,
- size_t option_count);
-extern void team_options_unregister(struct team *team,
- const struct team_option *option,
- size_t option_count);
-extern int team_mode_register(struct team_mode *mode);
-extern int team_mode_unregister(struct team_mode *mode);
-
-#endif /* __KERNEL__ */
-
-#define TEAM_STRING_MAX_LEN 32
-
-/**********************************
- * NETLINK_GENERIC netlink family.
- **********************************/
-
-enum {
- TEAM_CMD_NOOP,
- TEAM_CMD_OPTIONS_SET,
- TEAM_CMD_OPTIONS_GET,
- TEAM_CMD_PORT_LIST_GET,
-
- __TEAM_CMD_MAX,
- TEAM_CMD_MAX = (__TEAM_CMD_MAX - 1),
-};
-
-enum {
- TEAM_ATTR_UNSPEC,
- TEAM_ATTR_TEAM_IFINDEX, /* u32 */
- TEAM_ATTR_LIST_OPTION, /* nest */
- TEAM_ATTR_LIST_PORT, /* nest */
-
- __TEAM_ATTR_MAX,
- TEAM_ATTR_MAX = __TEAM_ATTR_MAX - 1,
-};
-
-/* Nested layout of get/set msg:
- *
- * [TEAM_ATTR_LIST_OPTION]
- * [TEAM_ATTR_ITEM_OPTION]
- * [TEAM_ATTR_OPTION_*], ...
- * [TEAM_ATTR_ITEM_OPTION]
- * [TEAM_ATTR_OPTION_*], ...
- * ...
- * [TEAM_ATTR_LIST_PORT]
- * [TEAM_ATTR_ITEM_PORT]
- * [TEAM_ATTR_PORT_*], ...
- * [TEAM_ATTR_ITEM_PORT]
- * [TEAM_ATTR_PORT_*], ...
- * ...
- */
-
-enum {
- TEAM_ATTR_ITEM_OPTION_UNSPEC,
- TEAM_ATTR_ITEM_OPTION, /* nest */
-
- __TEAM_ATTR_ITEM_OPTION_MAX,
- TEAM_ATTR_ITEM_OPTION_MAX = __TEAM_ATTR_ITEM_OPTION_MAX - 1,
-};
-
-enum {
- TEAM_ATTR_OPTION_UNSPEC,
- TEAM_ATTR_OPTION_NAME, /* string */
- TEAM_ATTR_OPTION_CHANGED, /* flag */
- TEAM_ATTR_OPTION_TYPE, /* u8 */
- TEAM_ATTR_OPTION_DATA, /* dynamic */
- TEAM_ATTR_OPTION_REMOVED, /* flag */
-
- __TEAM_ATTR_OPTION_MAX,
- TEAM_ATTR_OPTION_MAX = __TEAM_ATTR_OPTION_MAX - 1,
-};
-
-enum {
- TEAM_ATTR_ITEM_PORT_UNSPEC,
- TEAM_ATTR_ITEM_PORT, /* nest */
-
- __TEAM_ATTR_ITEM_PORT_MAX,
- TEAM_ATTR_ITEM_PORT_MAX = __TEAM_ATTR_ITEM_PORT_MAX - 1,
-};
-
-enum {
- TEAM_ATTR_PORT_UNSPEC,
- TEAM_ATTR_PORT_IFINDEX, /* u32 */
- TEAM_ATTR_PORT_CHANGED, /* flag */
- TEAM_ATTR_PORT_LINKUP, /* flag */
- TEAM_ATTR_PORT_SPEED, /* u32 */
- TEAM_ATTR_PORT_DUPLEX, /* u8 */
- TEAM_ATTR_PORT_REMOVED, /* flag */
-
- __TEAM_ATTR_PORT_MAX,
- TEAM_ATTR_PORT_MAX = __TEAM_ATTR_PORT_MAX - 1,
-};
-
-/*
- * NETLINK_GENERIC related info
- */
-#define TEAM_GENL_NAME "team"
-#define TEAM_GENL_VERSION 0x1
-#define TEAM_GENL_CHANGE_EVENT_MC_GRP_NAME "change_event"
-
-#endif /* _LINUX_IF_TEAM_H_ */
diff --git a/ANDROID_3.4.5/include/linux/if_tr.h b/ANDROID_3.4.5/include/linux/if_tr.h
deleted file mode 100644
index fc23aeb0..00000000
--- a/ANDROID_3.4.5/include/linux/if_tr.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Global definitions for the Token-Ring IEEE 802.5 interface.
- *
- * Version: @(#)if_tr.h 0.0 07/11/94
- *
- * Author: Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
- * Donald Becker, <becker@super.org>
- * Peter De Schrijver, <stud11@cc4.kuleuven.ac.be>
- *
- * 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_IF_TR_H
-#define _LINUX_IF_TR_H
-
-#include <linux/types.h>
-#include <asm/byteorder.h> /* For __be16 */
-
-/* IEEE 802.5 Token-Ring magic constants. The frame sizes omit the preamble
- and FCS/CRC (frame check sequence). */
-#define TR_ALEN 6 /* Octets in one token-ring addr */
-#define TR_HLEN (sizeof(struct trh_hdr)+sizeof(struct trllc))
-#define AC 0x10
-#define LLC_FRAME 0x40
-
-/* LLC and SNAP constants */
-#define EXTENDED_SAP 0xAA
-#define UI_CMD 0x03
-
-/* This is an Token-Ring frame header. */
-struct trh_hdr {
- __u8 ac; /* access control field */
- __u8 fc; /* frame control field */
- __u8 daddr[TR_ALEN]; /* destination address */
- __u8 saddr[TR_ALEN]; /* source address */
- __be16 rcf; /* route control field */
- __be16 rseg[8]; /* routing registers */
-};
-
-#ifdef __KERNEL__
-#include <linux/skbuff.h>
-
-static inline struct trh_hdr *tr_hdr(const struct sk_buff *skb)
-{
- return (struct trh_hdr *)skb_mac_header(skb);
-}
-#endif
-
-/* This is an Token-Ring LLC structure */
-struct trllc {
- __u8 dsap; /* destination SAP */
- __u8 ssap; /* source SAP */
- __u8 llc; /* LLC control field */
- __u8 protid[3]; /* protocol id */
- __be16 ethertype; /* ether type field */
-};
-
-/* Token-Ring statistics collection data. */
-struct tr_statistics {
- unsigned long rx_packets; /* total packets received */
- unsigned long tx_packets; /* total packets transmitted */
- unsigned long rx_bytes; /* total bytes received */
- unsigned long tx_bytes; /* total bytes transmitted */
- unsigned long rx_errors; /* bad packets received */
- unsigned long tx_errors; /* packet transmit problems */
- unsigned long rx_dropped; /* no space in linux buffers */
- unsigned long tx_dropped; /* no space available in linux */
- unsigned long multicast; /* multicast packets received */
- unsigned long transmit_collision;
-
- /* detailed Token-Ring errors. See IBM Token-Ring Network
- Architecture for more info */
-
- unsigned long line_errors;
- unsigned long internal_errors;
- unsigned long burst_errors;
- unsigned long A_C_errors;
- unsigned long abort_delimiters;
- unsigned long lost_frames;
- unsigned long recv_congest_count;
- unsigned long frame_copied_errors;
- unsigned long frequency_errors;
- unsigned long token_errors;
- unsigned long dummy1;
-};
-
-/* source routing stuff */
-#define TR_RII 0x80
-#define TR_RCF_DIR_BIT 0x80
-#define TR_RCF_LEN_MASK 0x1f00
-#define TR_RCF_BROADCAST 0x8000 /* all-routes broadcast */
-#define TR_RCF_LIMITED_BROADCAST 0xC000 /* single-route broadcast */
-#define TR_RCF_FRAME2K 0x20
-#define TR_RCF_BROADCAST_MASK 0xC000
-#define TR_MAXRIFLEN 18
-
-#endif /* _LINUX_IF_TR_H */
diff --git a/ANDROID_3.4.5/include/linux/if_tun.h b/ANDROID_3.4.5/include/linux/if_tun.h
deleted file mode 100644
index 06b18297..00000000
--- a/ANDROID_3.4.5/include/linux/if_tun.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Universal TUN/TAP device driver.
- * Copyright (C) 1999-2000 Maxim Krasnyansky <max_mk@yahoo.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.
- */
-
-#ifndef __IF_TUN_H
-#define __IF_TUN_H
-
-#include <linux/types.h>
-#include <linux/if_ether.h>
-#include <linux/filter.h>
-
-/* Read queue size */
-#define TUN_READQ_SIZE 500
-
-/* TUN device flags */
-#define TUN_TUN_DEV 0x0001
-#define TUN_TAP_DEV 0x0002
-#define TUN_TYPE_MASK 0x000f
-
-#define TUN_FASYNC 0x0010
-#define TUN_NOCHECKSUM 0x0020
-#define TUN_NO_PI 0x0040
-#define TUN_ONE_QUEUE 0x0080
-#define TUN_PERSIST 0x0100
-#define TUN_VNET_HDR 0x0200
-
-/* Ioctl defines */
-#define TUNSETNOCSUM _IOW('T', 200, int)
-#define TUNSETDEBUG _IOW('T', 201, int)
-#define TUNSETIFF _IOW('T', 202, int)
-#define TUNSETPERSIST _IOW('T', 203, int)
-#define TUNSETOWNER _IOW('T', 204, int)
-#define TUNSETLINK _IOW('T', 205, int)
-#define TUNSETGROUP _IOW('T', 206, int)
-#define TUNGETFEATURES _IOR('T', 207, unsigned int)
-#define TUNSETOFFLOAD _IOW('T', 208, unsigned int)
-#define TUNSETTXFILTER _IOW('T', 209, unsigned int)
-#define TUNGETIFF _IOR('T', 210, unsigned int)
-#define TUNGETSNDBUF _IOR('T', 211, int)
-#define TUNSETSNDBUF _IOW('T', 212, int)
-#define TUNATTACHFILTER _IOW('T', 213, struct sock_fprog)
-#define TUNDETACHFILTER _IOW('T', 214, struct sock_fprog)
-#define TUNGETVNETHDRSZ _IOR('T', 215, int)
-#define TUNSETVNETHDRSZ _IOW('T', 216, int)
-
-/* TUNSETIFF ifr flags */
-#define IFF_TUN 0x0001
-#define IFF_TAP 0x0002
-#define IFF_NO_PI 0x1000
-#define IFF_ONE_QUEUE 0x2000
-#define IFF_VNET_HDR 0x4000
-#define IFF_TUN_EXCL 0x8000
-
-/* Features for GSO (TUNSETOFFLOAD). */
-#define TUN_F_CSUM 0x01 /* You can hand me unchecksummed packets. */
-#define TUN_F_TSO4 0x02 /* I can handle TSO for IPv4 packets */
-#define TUN_F_TSO6 0x04 /* I can handle TSO for IPv6 packets */
-#define TUN_F_TSO_ECN 0x08 /* I can handle TSO with ECN bits. */
-#define TUN_F_UFO 0x10 /* I can handle UFO packets */
-
-/* Protocol info prepended to the packets (when IFF_NO_PI is not set) */
-#define TUN_PKT_STRIP 0x0001
-struct tun_pi {
- __u16 flags;
- __be16 proto;
-};
-
-/*
- * Filter spec (used for SETXXFILTER ioctls)
- * This stuff is applicable only to the TAP (Ethernet) devices.
- * If the count is zero the filter is disabled and the driver accepts
- * all packets (promisc mode).
- * If the filter is enabled in order to accept broadcast packets
- * broadcast addr must be explicitly included in the addr list.
- */
-#define TUN_FLT_ALLMULTI 0x0001 /* Accept all multicast packets */
-struct tun_filter {
- __u16 flags; /* TUN_FLT_ flags see above */
- __u16 count; /* Number of addresses */
- __u8 addr[0][ETH_ALEN];
-};
-
-#ifdef __KERNEL__
-#if defined(CONFIG_TUN) || defined(CONFIG_TUN_MODULE)
-struct socket *tun_get_socket(struct file *);
-#else
-#include <linux/err.h>
-#include <linux/errno.h>
-struct file;
-struct socket;
-static inline struct socket *tun_get_socket(struct file *f)
-{
- return ERR_PTR(-EINVAL);
-}
-#endif /* CONFIG_TUN */
-#endif /* __KERNEL__ */
-#endif /* __IF_TUN_H */
diff --git a/ANDROID_3.4.5/include/linux/if_tunnel.h b/ANDROID_3.4.5/include/linux/if_tunnel.h
deleted file mode 100644
index 16b92d00..00000000
--- a/ANDROID_3.4.5/include/linux/if_tunnel.h
+++ /dev/null
@@ -1,83 +0,0 @@
-#ifndef _IF_TUNNEL_H_
-#define _IF_TUNNEL_H_
-
-#include <linux/types.h>
-#include <asm/byteorder.h>
-
-#ifdef __KERNEL__
-#include <linux/ip.h>
-#include <linux/in6.h>
-#endif
-
-#define SIOCGETTUNNEL (SIOCDEVPRIVATE + 0)
-#define SIOCADDTUNNEL (SIOCDEVPRIVATE + 1)
-#define SIOCDELTUNNEL (SIOCDEVPRIVATE + 2)
-#define SIOCCHGTUNNEL (SIOCDEVPRIVATE + 3)
-#define SIOCGETPRL (SIOCDEVPRIVATE + 4)
-#define SIOCADDPRL (SIOCDEVPRIVATE + 5)
-#define SIOCDELPRL (SIOCDEVPRIVATE + 6)
-#define SIOCCHGPRL (SIOCDEVPRIVATE + 7)
-#define SIOCGET6RD (SIOCDEVPRIVATE + 8)
-#define SIOCADD6RD (SIOCDEVPRIVATE + 9)
-#define SIOCDEL6RD (SIOCDEVPRIVATE + 10)
-#define SIOCCHG6RD (SIOCDEVPRIVATE + 11)
-
-#define GRE_CSUM __cpu_to_be16(0x8000)
-#define GRE_ROUTING __cpu_to_be16(0x4000)
-#define GRE_KEY __cpu_to_be16(0x2000)
-#define GRE_SEQ __cpu_to_be16(0x1000)
-#define GRE_STRICT __cpu_to_be16(0x0800)
-#define GRE_REC __cpu_to_be16(0x0700)
-#define GRE_FLAGS __cpu_to_be16(0x00F8)
-#define GRE_VERSION __cpu_to_be16(0x0007)
-
-struct ip_tunnel_parm {
- char name[IFNAMSIZ];
- int link;
- __be16 i_flags;
- __be16 o_flags;
- __be32 i_key;
- __be32 o_key;
- struct iphdr iph;
-};
-
-/* SIT-mode i_flags */
-#define SIT_ISATAP 0x0001
-
-struct ip_tunnel_prl {
- __be32 addr;
- __u16 flags;
- __u16 __reserved;
- __u32 datalen;
- __u32 __reserved2;
- /* data follows */
-};
-
-/* PRL flags */
-#define PRL_DEFAULT 0x0001
-
-struct ip_tunnel_6rd {
- struct in6_addr prefix;
- __be32 relay_prefix;
- __u16 prefixlen;
- __u16 relay_prefixlen;
-};
-
-enum {
- IFLA_GRE_UNSPEC,
- IFLA_GRE_LINK,
- IFLA_GRE_IFLAGS,
- IFLA_GRE_OFLAGS,
- IFLA_GRE_IKEY,
- IFLA_GRE_OKEY,
- IFLA_GRE_LOCAL,
- IFLA_GRE_REMOTE,
- IFLA_GRE_TTL,
- IFLA_GRE_TOS,
- IFLA_GRE_PMTUDISC,
- __IFLA_GRE_MAX,
-};
-
-#define IFLA_GRE_MAX (__IFLA_GRE_MAX - 1)
-
-#endif /* _IF_TUNNEL_H_ */
diff --git a/ANDROID_3.4.5/include/linux/if_vlan.h b/ANDROID_3.4.5/include/linux/if_vlan.h
deleted file mode 100644
index a810987c..00000000
--- a/ANDROID_3.4.5/include/linux/if_vlan.h
+++ /dev/null
@@ -1,407 +0,0 @@
-/*
- * VLAN An implementation of 802.1Q VLAN tagging.
- *
- * Authors: Ben Greear <greearb@candelatech.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 _LINUX_IF_VLAN_H_
-#define _LINUX_IF_VLAN_H_
-
-#ifdef __KERNEL__
-#include <linux/netdevice.h>
-#include <linux/etherdevice.h>
-#include <linux/rtnetlink.h>
-#include <linux/bug.h>
-
-#define VLAN_HLEN 4 /* The additional bytes required by VLAN
- * (in addition to the Ethernet header)
- */
-#define VLAN_ETH_HLEN 18 /* Total octets in header. */
-#define VLAN_ETH_ZLEN 64 /* Min. octets in frame sans FCS */
-
-/*
- * According to 802.3ac, the packet can be 4 bytes longer. --Klika Jan
- */
-#define VLAN_ETH_DATA_LEN 1500 /* Max. octets in payload */
-#define VLAN_ETH_FRAME_LEN 1518 /* Max. octets in frame sans FCS */
-
-/*
- * struct vlan_hdr - vlan header
- * @h_vlan_TCI: priority and VLAN ID
- * @h_vlan_encapsulated_proto: packet type ID or len
- */
-struct vlan_hdr {
- __be16 h_vlan_TCI;
- __be16 h_vlan_encapsulated_proto;
-};
-
-/**
- * struct vlan_ethhdr - vlan ethernet header (ethhdr + vlan_hdr)
- * @h_dest: destination ethernet address
- * @h_source: source ethernet address
- * @h_vlan_proto: ethernet protocol (always 0x8100)
- * @h_vlan_TCI: priority and VLAN ID
- * @h_vlan_encapsulated_proto: packet type ID or len
- */
-struct vlan_ethhdr {
- unsigned char h_dest[ETH_ALEN];
- unsigned char h_source[ETH_ALEN];
- __be16 h_vlan_proto;
- __be16 h_vlan_TCI;
- __be16 h_vlan_encapsulated_proto;
-};
-
-#include <linux/skbuff.h>
-
-static inline struct vlan_ethhdr *vlan_eth_hdr(const struct sk_buff *skb)
-{
- return (struct vlan_ethhdr *)skb_mac_header(skb);
-}
-
-#define VLAN_PRIO_MASK 0xe000 /* Priority Code Point */
-#define VLAN_PRIO_SHIFT 13
-#define VLAN_CFI_MASK 0x1000 /* Canonical Format Indicator */
-#define VLAN_TAG_PRESENT VLAN_CFI_MASK
-#define VLAN_VID_MASK 0x0fff /* VLAN Identifier */
-#define VLAN_N_VID 4096
-
-/* found in socket.c */
-extern void vlan_ioctl_set(int (*hook)(struct net *, void __user *));
-
-struct vlan_info;
-
-static inline int is_vlan_dev(struct net_device *dev)
-{
- return dev->priv_flags & IFF_802_1Q_VLAN;
-}
-
-#define vlan_tx_tag_present(__skb) ((__skb)->vlan_tci & VLAN_TAG_PRESENT)
-#define vlan_tx_tag_get(__skb) ((__skb)->vlan_tci & ~VLAN_TAG_PRESENT)
-
-#if defined(CONFIG_VLAN_8021Q) || defined(CONFIG_VLAN_8021Q_MODULE)
-
-extern struct net_device *__vlan_find_dev_deep(struct net_device *real_dev,
- u16 vlan_id);
-extern struct net_device *vlan_dev_real_dev(const struct net_device *dev);
-extern u16 vlan_dev_vlan_id(const struct net_device *dev);
-
-extern bool vlan_do_receive(struct sk_buff **skb, bool last_handler);
-extern struct sk_buff *vlan_untag(struct sk_buff *skb);
-
-extern int vlan_vid_add(struct net_device *dev, unsigned short vid);
-extern void vlan_vid_del(struct net_device *dev, unsigned short vid);
-
-extern int vlan_vids_add_by_dev(struct net_device *dev,
- const struct net_device *by_dev);
-extern void vlan_vids_del_by_dev(struct net_device *dev,
- const struct net_device *by_dev);
-#else
-static inline struct net_device *
-__vlan_find_dev_deep(struct net_device *real_dev, u16 vlan_id)
-{
- return NULL;
-}
-
-static inline struct net_device *vlan_dev_real_dev(const struct net_device *dev)
-{
- BUG();
- return NULL;
-}
-
-static inline u16 vlan_dev_vlan_id(const struct net_device *dev)
-{
- BUG();
- return 0;
-}
-
-static inline bool vlan_do_receive(struct sk_buff **skb, bool last_handler)
-{
- if (((*skb)->vlan_tci & VLAN_VID_MASK) && last_handler)
- (*skb)->pkt_type = PACKET_OTHERHOST;
- return false;
-}
-
-static inline struct sk_buff *vlan_untag(struct sk_buff *skb)
-{
- return skb;
-}
-
-static inline int vlan_vid_add(struct net_device *dev, unsigned short vid)
-{
- return 0;
-}
-
-static inline void vlan_vid_del(struct net_device *dev, unsigned short vid)
-{
-}
-
-static inline int vlan_vids_add_by_dev(struct net_device *dev,
- const struct net_device *by_dev)
-{
- return 0;
-}
-
-static inline void vlan_vids_del_by_dev(struct net_device *dev,
- const struct net_device *by_dev)
-{
-}
-#endif
-
-/**
- * vlan_insert_tag - regular VLAN tag inserting
- * @skb: skbuff to tag
- * @vlan_tci: VLAN TCI to insert
- *
- * Inserts the VLAN tag into @skb as part of the payload
- * Returns a VLAN tagged skb. If a new skb is created, @skb is freed.
- *
- * Following the skb_unshare() example, in case of error, the calling function
- * doesn't have to worry about freeing the original skb.
- *
- * Does not change skb->protocol so this function can be used during receive.
- */
-static inline struct sk_buff *vlan_insert_tag(struct sk_buff *skb, u16 vlan_tci)
-{
- struct vlan_ethhdr *veth;
-
- if (skb_cow_head(skb, VLAN_HLEN) < 0) {
- kfree_skb(skb);
- return NULL;
- }
- veth = (struct vlan_ethhdr *)skb_push(skb, VLAN_HLEN);
-
- /* Move the mac addresses to the beginning of the new header. */
- memmove(skb->data, skb->data + VLAN_HLEN, 2 * ETH_ALEN);
- skb->mac_header -= VLAN_HLEN;
-
- /* first, the ethernet type */
- veth->h_vlan_proto = htons(ETH_P_8021Q);
-
- /* now, the TCI */
- veth->h_vlan_TCI = htons(vlan_tci);
-
- return skb;
-}
-
-/**
- * __vlan_put_tag - regular VLAN tag inserting
- * @skb: skbuff to tag
- * @vlan_tci: VLAN TCI to insert
- *
- * Inserts the VLAN tag into @skb as part of the payload
- * Returns a VLAN tagged skb. If a new skb is created, @skb is freed.
- *
- * Following the skb_unshare() example, in case of error, the calling function
- * doesn't have to worry about freeing the original skb.
- */
-static inline struct sk_buff *__vlan_put_tag(struct sk_buff *skb, u16 vlan_tci)
-{
- skb = vlan_insert_tag(skb, vlan_tci);
- if (skb)
- skb->protocol = htons(ETH_P_8021Q);
- return skb;
-}
-
-/**
- * __vlan_hwaccel_put_tag - hardware accelerated VLAN inserting
- * @skb: skbuff to tag
- * @vlan_tci: VLAN TCI to insert
- *
- * Puts the VLAN TCI in @skb->vlan_tci and lets the device do the rest
- */
-static inline struct sk_buff *__vlan_hwaccel_put_tag(struct sk_buff *skb,
- u16 vlan_tci)
-{
- skb->vlan_tci = VLAN_TAG_PRESENT | vlan_tci;
- return skb;
-}
-
-#define HAVE_VLAN_PUT_TAG
-
-/**
- * vlan_put_tag - inserts VLAN tag according to device features
- * @skb: skbuff to tag
- * @vlan_tci: VLAN TCI to insert
- *
- * Assumes skb->dev is the target that will xmit this frame.
- * Returns a VLAN tagged skb.
- */
-static inline struct sk_buff *vlan_put_tag(struct sk_buff *skb, u16 vlan_tci)
-{
- if (skb->dev->features & NETIF_F_HW_VLAN_TX) {
- return __vlan_hwaccel_put_tag(skb, vlan_tci);
- } else {
- return __vlan_put_tag(skb, vlan_tci);
- }
-}
-
-/**
- * __vlan_get_tag - get the VLAN ID that is part of the payload
- * @skb: skbuff to query
- * @vlan_tci: buffer to store vlaue
- *
- * Returns error if the skb is not of VLAN type
- */
-static inline int __vlan_get_tag(const struct sk_buff *skb, u16 *vlan_tci)
-{
- struct vlan_ethhdr *veth = (struct vlan_ethhdr *)skb->data;
-
- if (veth->h_vlan_proto != htons(ETH_P_8021Q)) {
- return -EINVAL;
- }
-
- *vlan_tci = ntohs(veth->h_vlan_TCI);
- return 0;
-}
-
-/**
- * __vlan_hwaccel_get_tag - get the VLAN ID that is in @skb->cb[]
- * @skb: skbuff to query
- * @vlan_tci: buffer to store vlaue
- *
- * Returns error if @skb->vlan_tci is not set correctly
- */
-static inline int __vlan_hwaccel_get_tag(const struct sk_buff *skb,
- u16 *vlan_tci)
-{
- if (vlan_tx_tag_present(skb)) {
- *vlan_tci = vlan_tx_tag_get(skb);
- return 0;
- } else {
- *vlan_tci = 0;
- return -EINVAL;
- }
-}
-
-#define HAVE_VLAN_GET_TAG
-
-/**
- * vlan_get_tag - get the VLAN ID from the skb
- * @skb: skbuff to query
- * @vlan_tci: buffer to store vlaue
- *
- * Returns error if the skb is not VLAN tagged
- */
-static inline int vlan_get_tag(const struct sk_buff *skb, u16 *vlan_tci)
-{
- if (skb->dev->features & NETIF_F_HW_VLAN_TX) {
- return __vlan_hwaccel_get_tag(skb, vlan_tci);
- } else {
- return __vlan_get_tag(skb, vlan_tci);
- }
-}
-
-/**
- * vlan_get_protocol - get protocol EtherType.
- * @skb: skbuff to query
- *
- * Returns the EtherType of the packet, regardless of whether it is
- * vlan encapsulated (normal or hardware accelerated) or not.
- */
-static inline __be16 vlan_get_protocol(const struct sk_buff *skb)
-{
- __be16 protocol = 0;
-
- if (vlan_tx_tag_present(skb) ||
- skb->protocol != cpu_to_be16(ETH_P_8021Q))
- protocol = skb->protocol;
- else {
- __be16 proto, *protop;
- protop = skb_header_pointer(skb, offsetof(struct vlan_ethhdr,
- h_vlan_encapsulated_proto),
- sizeof(proto), &proto);
- if (likely(protop))
- protocol = *protop;
- }
-
- return protocol;
-}
-
-static inline void vlan_set_encap_proto(struct sk_buff *skb,
- struct vlan_hdr *vhdr)
-{
- __be16 proto;
- unsigned char *rawp;
-
- /*
- * Was a VLAN packet, grab the encapsulated protocol, which the layer
- * three protocols care about.
- */
-
- proto = vhdr->h_vlan_encapsulated_proto;
- if (ntohs(proto) >= 1536) {
- skb->protocol = proto;
- return;
- }
-
- rawp = skb->data;
- if (*(unsigned short *) rawp == 0xFFFF)
- /*
- * This is a magic hack to spot IPX packets. Older Novell
- * breaks the protocol design and runs IPX over 802.3 without
- * an 802.2 LLC layer. We look for FFFF which isn't a used
- * 802.2 SSAP/DSAP. This won't work for fault tolerant netware
- * but does for the rest.
- */
- skb->protocol = htons(ETH_P_802_3);
- else
- /*
- * Real 802.2 LLC
- */
- skb->protocol = htons(ETH_P_802_2);
-}
-#endif /* __KERNEL__ */
-
-/* VLAN IOCTLs are found in sockios.h */
-
-/* Passed in vlan_ioctl_args structure to determine behaviour. */
-enum vlan_ioctl_cmds {
- ADD_VLAN_CMD,
- DEL_VLAN_CMD,
- SET_VLAN_INGRESS_PRIORITY_CMD,
- SET_VLAN_EGRESS_PRIORITY_CMD,
- GET_VLAN_INGRESS_PRIORITY_CMD,
- GET_VLAN_EGRESS_PRIORITY_CMD,
- SET_VLAN_NAME_TYPE_CMD,
- SET_VLAN_FLAG_CMD,
- GET_VLAN_REALDEV_NAME_CMD, /* If this works, you know it's a VLAN device, btw */
- GET_VLAN_VID_CMD /* Get the VID of this VLAN (specified by name) */
-};
-
-enum vlan_flags {
- VLAN_FLAG_REORDER_HDR = 0x1,
- VLAN_FLAG_GVRP = 0x2,
- VLAN_FLAG_LOOSE_BINDING = 0x4,
-};
-
-enum vlan_name_types {
- VLAN_NAME_TYPE_PLUS_VID, /* Name will look like: vlan0005 */
- VLAN_NAME_TYPE_RAW_PLUS_VID, /* name will look like: eth1.0005 */
- VLAN_NAME_TYPE_PLUS_VID_NO_PAD, /* Name will look like: vlan5 */
- VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD, /* Name will look like: eth0.5 */
- VLAN_NAME_TYPE_HIGHEST
-};
-
-struct vlan_ioctl_args {
- int cmd; /* Should be one of the vlan_ioctl_cmds enum above. */
- char device1[24];
-
- union {
- char device2[24];
- int VID;
- unsigned int skb_priority;
- unsigned int name_type;
- unsigned int bind_type;
- unsigned int flag; /* Matches vlan_dev_priv flags */
- } u;
-
- short vlan_qos;
-};
-
-#endif /* !(_LINUX_IF_VLAN_H_) */
diff --git a/ANDROID_3.4.5/include/linux/if_x25.h b/ANDROID_3.4.5/include/linux/if_x25.h
deleted file mode 100644
index 897765f5..00000000
--- a/ANDROID_3.4.5/include/linux/if_x25.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Linux X.25 packet to device interface
- *
- * 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 _IF_X25_H
-#define _IF_X25_H
-
-#include <linux/types.h>
-
-/* Documentation/networking/x25-iface.txt */
-#define X25_IFACE_DATA 0x00
-#define X25_IFACE_CONNECT 0x01
-#define X25_IFACE_DISCONNECT 0x02
-#define X25_IFACE_PARAMS 0x03
-
-#endif /* _IF_X25_H */
diff --git a/ANDROID_3.4.5/include/linux/igmp.h b/ANDROID_3.4.5/include/linux/igmp.h
deleted file mode 100644
index 82de336b..00000000
--- a/ANDROID_3.4.5/include/linux/igmp.h
+++ /dev/null
@@ -1,244 +0,0 @@
-/*
- * Linux NET3: Internet Group Management Protocol [IGMP]
- *
- * Authors:
- * Alan Cox <alan@lxorguk.ukuu.org.uk>
- *
- * Extended to talk the BSD extended IGMP protocol of mrouted 3.6
- *
- *
- * 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_IGMP_H
-#define _LINUX_IGMP_H
-
-#include <linux/types.h>
-#include <asm/byteorder.h>
-
-/*
- * IGMP protocol structures
- */
-
-/*
- * Header in on cable format
- */
-
-struct igmphdr {
- __u8 type;
- __u8 code; /* For newer IGMP */
- __sum16 csum;
- __be32 group;
-};
-
-/* V3 group record types [grec_type] */
-#define IGMPV3_MODE_IS_INCLUDE 1
-#define IGMPV3_MODE_IS_EXCLUDE 2
-#define IGMPV3_CHANGE_TO_INCLUDE 3
-#define IGMPV3_CHANGE_TO_EXCLUDE 4
-#define IGMPV3_ALLOW_NEW_SOURCES 5
-#define IGMPV3_BLOCK_OLD_SOURCES 6
-
-struct igmpv3_grec {
- __u8 grec_type;
- __u8 grec_auxwords;
- __be16 grec_nsrcs;
- __be32 grec_mca;
- __be32 grec_src[0];
-};
-
-struct igmpv3_report {
- __u8 type;
- __u8 resv1;
- __be16 csum;
- __be16 resv2;
- __be16 ngrec;
- struct igmpv3_grec grec[0];
-};
-
-struct igmpv3_query {
- __u8 type;
- __u8 code;
- __be16 csum;
- __be32 group;
-#if defined(__LITTLE_ENDIAN_BITFIELD)
- __u8 qrv:3,
- suppress:1,
- resv:4;
-#elif defined(__BIG_ENDIAN_BITFIELD)
- __u8 resv:4,
- suppress:1,
- qrv:3;
-#else
-#error "Please fix <asm/byteorder.h>"
-#endif
- __u8 qqic;
- __be16 nsrcs;
- __be32 srcs[0];
-};
-
-#define IGMP_HOST_MEMBERSHIP_QUERY 0x11 /* From RFC1112 */
-#define IGMP_HOST_MEMBERSHIP_REPORT 0x12 /* Ditto */
-#define IGMP_DVMRP 0x13 /* DVMRP routing */
-#define IGMP_PIM 0x14 /* PIM routing */
-#define IGMP_TRACE 0x15
-#define IGMPV2_HOST_MEMBERSHIP_REPORT 0x16 /* V2 version of 0x12 */
-#define IGMP_HOST_LEAVE_MESSAGE 0x17
-#define IGMPV3_HOST_MEMBERSHIP_REPORT 0x22 /* V3 version of 0x12 */
-
-#define IGMP_MTRACE_RESP 0x1e
-#define IGMP_MTRACE 0x1f
-
-
-/*
- * Use the BSD names for these for compatibility
- */
-
-#define IGMP_DELAYING_MEMBER 0x01
-#define IGMP_IDLE_MEMBER 0x02
-#define IGMP_LAZY_MEMBER 0x03
-#define IGMP_SLEEPING_MEMBER 0x04
-#define IGMP_AWAKENING_MEMBER 0x05
-
-#define IGMP_MINLEN 8
-
-#define IGMP_MAX_HOST_REPORT_DELAY 10 /* max delay for response to */
- /* query (in seconds) */
-
-#define IGMP_TIMER_SCALE 10 /* denotes that the igmphdr->timer field */
- /* specifies time in 10th of seconds */
-
-#define IGMP_AGE_THRESHOLD 400 /* If this host don't hear any IGMP V1 */
- /* message in this period of time, */
- /* revert to IGMP v2 router. */
-
-#define IGMP_ALL_HOSTS htonl(0xE0000001L)
-#define IGMP_ALL_ROUTER htonl(0xE0000002L)
-#define IGMPV3_ALL_MCR htonl(0xE0000016L)
-#define IGMP_LOCAL_GROUP htonl(0xE0000000L)
-#define IGMP_LOCAL_GROUP_MASK htonl(0xFFFFFF00L)
-
-/*
- * struct for keeping the multicast list in
- */
-
-#ifdef __KERNEL__
-#include <linux/skbuff.h>
-#include <linux/timer.h>
-#include <linux/in.h>
-
-static inline struct igmphdr *igmp_hdr(const struct sk_buff *skb)
-{
- return (struct igmphdr *)skb_transport_header(skb);
-}
-
-static inline struct igmpv3_report *
- igmpv3_report_hdr(const struct sk_buff *skb)
-{
- return (struct igmpv3_report *)skb_transport_header(skb);
-}
-
-static inline struct igmpv3_query *
- igmpv3_query_hdr(const struct sk_buff *skb)
-{
- return (struct igmpv3_query *)skb_transport_header(skb);
-}
-
-extern int sysctl_igmp_max_memberships;
-extern int sysctl_igmp_max_msf;
-
-struct ip_sf_socklist {
- unsigned int sl_max;
- unsigned int sl_count;
- struct rcu_head rcu;
- __be32 sl_addr[0];
-};
-
-#define IP_SFLSIZE(count) (sizeof(struct ip_sf_socklist) + \
- (count) * sizeof(__be32))
-
-#define IP_SFBLOCK 10 /* allocate this many at once */
-
-/* ip_mc_socklist is real list now. Speed is not argument;
- this list never used in fast path code
- */
-
-struct ip_mc_socklist {
- struct ip_mc_socklist __rcu *next_rcu;
- struct ip_mreqn multi;
- unsigned int sfmode; /* MCAST_{INCLUDE,EXCLUDE} */
- struct ip_sf_socklist __rcu *sflist;
- struct rcu_head rcu;
-};
-
-struct ip_sf_list {
- struct ip_sf_list *sf_next;
- __be32 sf_inaddr;
- unsigned long sf_count[2]; /* include/exclude counts */
- unsigned char sf_gsresp; /* include in g & s response? */
- unsigned char sf_oldin; /* change state */
- unsigned char sf_crcount; /* retrans. left to send */
-};
-
-struct ip_mc_list {
- struct in_device *interface;
- __be32 multiaddr;
- unsigned int sfmode;
- struct ip_sf_list *sources;
- struct ip_sf_list *tomb;
- unsigned long sfcount[2];
- union {
- struct ip_mc_list *next;
- struct ip_mc_list __rcu *next_rcu;
- };
- struct timer_list timer;
- int users;
- atomic_t refcnt;
- spinlock_t lock;
- char tm_running;
- char reporter;
- char unsolicit_count;
- char loaded;
- unsigned char gsquery; /* check source marks? */
- unsigned char crcount;
- struct rcu_head rcu;
-};
-
-/* V3 exponential field decoding */
-#define IGMPV3_MASK(value, nb) ((nb)>=32 ? (value) : ((1<<(nb))-1) & (value))
-#define IGMPV3_EXP(thresh, nbmant, nbexp, value) \
- ((value) < (thresh) ? (value) : \
- ((IGMPV3_MASK(value, nbmant) | (1<<(nbmant))) << \
- (IGMPV3_MASK((value) >> (nbmant), nbexp) + (nbexp))))
-
-#define IGMPV3_QQIC(value) IGMPV3_EXP(0x80, 4, 3, value)
-#define IGMPV3_MRC(value) IGMPV3_EXP(0x80, 4, 3, value)
-
-extern int ip_check_mc_rcu(struct in_device *dev, __be32 mc_addr, __be32 src_addr, u16 proto);
-extern int igmp_rcv(struct sk_buff *);
-extern int ip_mc_join_group(struct sock *sk, struct ip_mreqn *imr);
-extern int ip_mc_leave_group(struct sock *sk, struct ip_mreqn *imr);
-extern void ip_mc_drop_socket(struct sock *sk);
-extern int ip_mc_source(int add, int omode, struct sock *sk,
- struct ip_mreq_source *mreqs, int ifindex);
-extern int ip_mc_msfilter(struct sock *sk, struct ip_msfilter *msf,int ifindex);
-extern int ip_mc_msfget(struct sock *sk, struct ip_msfilter *msf,
- struct ip_msfilter __user *optval, int __user *optlen);
-extern int ip_mc_gsfget(struct sock *sk, struct group_filter *gsf,
- struct group_filter __user *optval, int __user *optlen);
-extern int ip_mc_sf_allow(struct sock *sk, __be32 local, __be32 rmt, int dif);
-extern void ip_mc_init_dev(struct in_device *);
-extern void ip_mc_destroy_dev(struct in_device *);
-extern void ip_mc_up(struct in_device *);
-extern void ip_mc_down(struct in_device *);
-extern void ip_mc_unmap(struct in_device *);
-extern void ip_mc_remap(struct in_device *);
-extern void ip_mc_dec_group(struct in_device *in_dev, __be32 addr);
-extern void ip_mc_inc_group(struct in_device *in_dev, __be32 addr);
-extern void ip_mc_rejoin_groups(struct in_device *in_dev);
-
-#endif
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ihex.h b/ANDROID_3.4.5/include/linux/ihex.h
deleted file mode 100644
index 31d8629e..00000000
--- a/ANDROID_3.4.5/include/linux/ihex.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Compact binary representation of ihex records. Some devices need their
- * firmware loaded in strange orders rather than a single big blob, but
- * actually parsing ihex-as-text within the kernel seems silly. Thus,...
- */
-
-#ifndef __LINUX_IHEX_H__
-#define __LINUX_IHEX_H__
-
-#include <linux/types.h>
-#include <linux/firmware.h>
-#include <linux/device.h>
-
-/* Intel HEX files actually limit the length to 256 bytes, but we have
- drivers which would benefit from using separate records which are
- longer than that, so we extend to 16 bits of length */
-struct ihex_binrec {
- __be32 addr;
- __be16 len;
- uint8_t data[0];
-} __attribute__((packed));
-
-/* Find the next record, taking into account the 4-byte alignment */
-static inline const struct ihex_binrec *
-ihex_next_binrec(const struct ihex_binrec *rec)
-{
- int next = ((be16_to_cpu(rec->len) + 5) & ~3) - 2;
- rec = (void *)&rec->data[next];
-
- return be16_to_cpu(rec->len) ? rec : NULL;
-}
-
-/* Check that ihex_next_binrec() won't take us off the end of the image... */
-static inline int ihex_validate_fw(const struct firmware *fw)
-{
- const struct ihex_binrec *rec;
- size_t ofs = 0;
-
- while (ofs <= fw->size - sizeof(*rec)) {
- rec = (void *)&fw->data[ofs];
-
- /* Zero length marks end of records */
- if (!be16_to_cpu(rec->len))
- return 0;
-
- /* Point to next record... */
- ofs += (sizeof(*rec) + be16_to_cpu(rec->len) + 3) & ~3;
- }
- return -EINVAL;
-}
-
-/* Request firmware and validate it so that we can trust we won't
- * run off the end while reading records... */
-static inline int request_ihex_firmware(const struct firmware **fw,
- const char *fw_name,
- struct device *dev)
-{
- const struct firmware *lfw;
- int ret;
-
- ret = request_firmware(&lfw, fw_name, dev);
- if (ret)
- return ret;
- ret = ihex_validate_fw(lfw);
- if (ret) {
- dev_err(dev, "Firmware \"%s\" not valid IHEX records\n",
- fw_name);
- release_firmware(lfw);
- return ret;
- }
- *fw = lfw;
- return 0;
-}
-#endif /* __LINUX_IHEX_H__ */
diff --git a/ANDROID_3.4.5/include/linux/ima.h b/ANDROID_3.4.5/include/linux/ima.h
deleted file mode 100644
index 6ac8e50c..00000000
--- a/ANDROID_3.4.5/include/linux/ima.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2008 IBM Corporation
- * Author: Mimi Zohar <zohar@us.ibm.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, version 2 of the License.
- */
-
-#ifndef _LINUX_IMA_H
-#define _LINUX_IMA_H
-
-#include <linux/fs.h>
-struct linux_binprm;
-
-#ifdef CONFIG_IMA
-extern int ima_bprm_check(struct linux_binprm *bprm);
-extern int ima_file_check(struct file *file, int mask);
-extern void ima_file_free(struct file *file);
-extern int ima_file_mmap(struct file *file, unsigned long prot);
-
-#else
-static inline int ima_bprm_check(struct linux_binprm *bprm)
-{
- return 0;
-}
-
-static inline int ima_file_check(struct file *file, int mask)
-{
- return 0;
-}
-
-static inline void ima_file_free(struct file *file)
-{
- return;
-}
-
-static inline int ima_file_mmap(struct file *file, unsigned long prot)
-{
- return 0;
-}
-#endif /* CONFIG_IMA_H */
-#endif /* _LINUX_IMA_H */
diff --git a/ANDROID_3.4.5/include/linux/in.h b/ANDROID_3.4.5/include/linux/in.h
deleted file mode 100644
index e0337f11..00000000
--- a/ANDROID_3.4.5/include/linux/in.h
+++ /dev/null
@@ -1,337 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Definitions of the Internet Protocol.
- *
- * Version: @(#)in.h 1.0.1 04/21/93
- *
- * Authors: Original taken from the GNU Project <netinet/in.h> file.
- * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.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.
- */
-#ifndef _LINUX_IN_H
-#define _LINUX_IN_H
-
-#include <linux/types.h>
-#include <linux/socket.h>
-
-/* Standard well-defined IP protocols. */
-enum {
- IPPROTO_IP = 0, /* Dummy protocol for TCP */
- IPPROTO_ICMP = 1, /* Internet Control Message Protocol */
- IPPROTO_IGMP = 2, /* Internet Group Management Protocol */
- IPPROTO_IPIP = 4, /* IPIP tunnels (older KA9Q tunnels use 94) */
- IPPROTO_TCP = 6, /* Transmission Control Protocol */
- IPPROTO_EGP = 8, /* Exterior Gateway Protocol */
- IPPROTO_PUP = 12, /* PUP protocol */
- IPPROTO_UDP = 17, /* User Datagram Protocol */
- IPPROTO_IDP = 22, /* XNS IDP protocol */
- IPPROTO_DCCP = 33, /* Datagram Congestion Control Protocol */
- IPPROTO_RSVP = 46, /* RSVP protocol */
- IPPROTO_GRE = 47, /* Cisco GRE tunnels (rfc 1701,1702) */
-
- IPPROTO_IPV6 = 41, /* IPv6-in-IPv4 tunnelling */
-
- IPPROTO_ESP = 50, /* Encapsulation Security Payload protocol */
- IPPROTO_AH = 51, /* Authentication Header protocol */
- IPPROTO_BEETPH = 94, /* IP option pseudo header for BEET */
- IPPROTO_PIM = 103, /* Protocol Independent Multicast */
-
- IPPROTO_COMP = 108, /* Compression Header protocol */
- IPPROTO_SCTP = 132, /* Stream Control Transport Protocol */
- IPPROTO_UDPLITE = 136, /* UDP-Lite (RFC 3828) */
-
- IPPROTO_RAW = 255, /* Raw IP packets */
- IPPROTO_MAX
-};
-
-
-/* Internet address. */
-struct in_addr {
- __be32 s_addr;
-};
-
-#define IP_TOS 1
-#define IP_TTL 2
-#define IP_HDRINCL 3
-#define IP_OPTIONS 4
-#define IP_ROUTER_ALERT 5
-#define IP_RECVOPTS 6
-#define IP_RETOPTS 7
-#define IP_PKTINFO 8
-#define IP_PKTOPTIONS 9
-#define IP_MTU_DISCOVER 10
-#define IP_RECVERR 11
-#define IP_RECVTTL 12
-#define IP_RECVTOS 13
-#define IP_MTU 14
-#define IP_FREEBIND 15
-#define IP_IPSEC_POLICY 16
-#define IP_XFRM_POLICY 17
-#define IP_PASSSEC 18
-#define IP_TRANSPARENT 19
-
-/* BSD compatibility */
-#define IP_RECVRETOPTS IP_RETOPTS
-
-/* TProxy original addresses */
-#define IP_ORIGDSTADDR 20
-#define IP_RECVORIGDSTADDR IP_ORIGDSTADDR
-
-#define IP_MINTTL 21
-#define IP_NODEFRAG 22
-
-/* IP_MTU_DISCOVER values */
-#define IP_PMTUDISC_DONT 0 /* Never send DF frames */
-#define IP_PMTUDISC_WANT 1 /* Use per route hints */
-#define IP_PMTUDISC_DO 2 /* Always DF */
-#define IP_PMTUDISC_PROBE 3 /* Ignore dst pmtu */
-
-#define IP_MULTICAST_IF 32
-#define IP_MULTICAST_TTL 33
-#define IP_MULTICAST_LOOP 34
-#define IP_ADD_MEMBERSHIP 35
-#define IP_DROP_MEMBERSHIP 36
-#define IP_UNBLOCK_SOURCE 37
-#define IP_BLOCK_SOURCE 38
-#define IP_ADD_SOURCE_MEMBERSHIP 39
-#define IP_DROP_SOURCE_MEMBERSHIP 40
-#define IP_MSFILTER 41
-#define MCAST_JOIN_GROUP 42
-#define MCAST_BLOCK_SOURCE 43
-#define MCAST_UNBLOCK_SOURCE 44
-#define MCAST_LEAVE_GROUP 45
-#define MCAST_JOIN_SOURCE_GROUP 46
-#define MCAST_LEAVE_SOURCE_GROUP 47
-#define MCAST_MSFILTER 48
-#define IP_MULTICAST_ALL 49
-#define IP_UNICAST_IF 50
-
-#define MCAST_EXCLUDE 0
-#define MCAST_INCLUDE 1
-
-/* These need to appear somewhere around here */
-#define IP_DEFAULT_MULTICAST_TTL 1
-#define IP_DEFAULT_MULTICAST_LOOP 1
-
-/* Request struct for multicast socket ops */
-
-struct ip_mreq {
- struct in_addr imr_multiaddr; /* IP multicast address of group */
- struct in_addr imr_interface; /* local IP address of interface */
-};
-
-struct ip_mreqn {
- struct in_addr imr_multiaddr; /* IP multicast address of group */
- struct in_addr imr_address; /* local IP address of interface */
- int imr_ifindex; /* Interface index */
-};
-
-struct ip_mreq_source {
- __be32 imr_multiaddr;
- __be32 imr_interface;
- __be32 imr_sourceaddr;
-};
-
-struct ip_msfilter {
- __be32 imsf_multiaddr;
- __be32 imsf_interface;
- __u32 imsf_fmode;
- __u32 imsf_numsrc;
- __be32 imsf_slist[1];
-};
-
-#define IP_MSFILTER_SIZE(numsrc) \
- (sizeof(struct ip_msfilter) - sizeof(__u32) \
- + (numsrc) * sizeof(__u32))
-
-struct group_req {
- __u32 gr_interface; /* interface index */
- struct __kernel_sockaddr_storage gr_group; /* group address */
-};
-
-struct group_source_req {
- __u32 gsr_interface; /* interface index */
- struct __kernel_sockaddr_storage gsr_group; /* group address */
- struct __kernel_sockaddr_storage gsr_source; /* source address */
-};
-
-struct group_filter {
- __u32 gf_interface; /* interface index */
- struct __kernel_sockaddr_storage gf_group; /* multicast address */
- __u32 gf_fmode; /* filter mode */
- __u32 gf_numsrc; /* number of sources */
- struct __kernel_sockaddr_storage gf_slist[1]; /* interface index */
-};
-
-#define GROUP_FILTER_SIZE(numsrc) \
- (sizeof(struct group_filter) - sizeof(struct __kernel_sockaddr_storage) \
- + (numsrc) * sizeof(struct __kernel_sockaddr_storage))
-
-struct in_pktinfo {
- int ipi_ifindex;
- struct in_addr ipi_spec_dst;
- struct in_addr ipi_addr;
-};
-
-/* Structure describing an Internet (IP) socket address. */
-#define __SOCK_SIZE__ 16 /* sizeof(struct sockaddr) */
-struct sockaddr_in {
- __kernel_sa_family_t sin_family; /* Address family */
- __be16 sin_port; /* Port number */
- struct in_addr sin_addr; /* Internet address */
-
- /* Pad to size of `struct sockaddr'. */
- unsigned char __pad[__SOCK_SIZE__ - sizeof(short int) -
- sizeof(unsigned short int) - sizeof(struct in_addr)];
-};
-#define sin_zero __pad /* for BSD UNIX comp. -FvK */
-
-
-/*
- * Definitions of the bits in an Internet address integer.
- * On subnets, host and network parts are found according
- * to the subnet mask, not these masks.
- */
-#define IN_CLASSA(a) ((((long int) (a)) & 0x80000000) == 0)
-#define IN_CLASSA_NET 0xff000000
-#define IN_CLASSA_NSHIFT 24
-#define IN_CLASSA_HOST (0xffffffff & ~IN_CLASSA_NET)
-#define IN_CLASSA_MAX 128
-
-#define IN_CLASSB(a) ((((long int) (a)) & 0xc0000000) == 0x80000000)
-#define IN_CLASSB_NET 0xffff0000
-#define IN_CLASSB_NSHIFT 16
-#define IN_CLASSB_HOST (0xffffffff & ~IN_CLASSB_NET)
-#define IN_CLASSB_MAX 65536
-
-#define IN_CLASSC(a) ((((long int) (a)) & 0xe0000000) == 0xc0000000)
-#define IN_CLASSC_NET 0xffffff00
-#define IN_CLASSC_NSHIFT 8
-#define IN_CLASSC_HOST (0xffffffff & ~IN_CLASSC_NET)
-
-#define IN_CLASSD(a) ((((long int) (a)) & 0xf0000000) == 0xe0000000)
-#define IN_MULTICAST(a) IN_CLASSD(a)
-#define IN_MULTICAST_NET 0xF0000000
-
-#define IN_EXPERIMENTAL(a) ((((long int) (a)) & 0xf0000000) == 0xf0000000)
-#define IN_BADCLASS(a) IN_EXPERIMENTAL((a))
-
-/* Address to accept any incoming messages. */
-#define INADDR_ANY ((unsigned long int) 0x00000000)
-
-/* Address to send to all hosts. */
-#define INADDR_BROADCAST ((unsigned long int) 0xffffffff)
-
-/* Address indicating an error return. */
-#define INADDR_NONE ((unsigned long int) 0xffffffff)
-
-/* Network number for local host loopback. */
-#define IN_LOOPBACKNET 127
-
-/* Address to loopback in software to local host. */
-#define INADDR_LOOPBACK 0x7f000001 /* 127.0.0.1 */
-#define IN_LOOPBACK(a) ((((long int) (a)) & 0xff000000) == 0x7f000000)
-
-/* Defines for Multicast INADDR */
-#define INADDR_UNSPEC_GROUP 0xe0000000U /* 224.0.0.0 */
-#define INADDR_ALLHOSTS_GROUP 0xe0000001U /* 224.0.0.1 */
-#define INADDR_ALLRTRS_GROUP 0xe0000002U /* 224.0.0.2 */
-#define INADDR_MAX_LOCAL_GROUP 0xe00000ffU /* 224.0.0.255 */
-
-
-/* <asm/byteorder.h> contains the htonl type stuff.. */
-#include <asm/byteorder.h>
-
-#ifdef __KERNEL__
-
-#include <linux/errno.h>
-
-static inline int proto_ports_offset(int proto)
-{
- switch (proto) {
- case IPPROTO_TCP:
- case IPPROTO_UDP:
- case IPPROTO_DCCP:
- case IPPROTO_ESP: /* SPI */
- case IPPROTO_SCTP:
- case IPPROTO_UDPLITE:
- return 0;
- case IPPROTO_AH: /* SPI */
- return 4;
- default:
- return -EINVAL;
- }
-}
-
-static inline bool ipv4_is_loopback(__be32 addr)
-{
- return (addr & htonl(0xff000000)) == htonl(0x7f000000);
-}
-
-static inline bool ipv4_is_multicast(__be32 addr)
-{
- return (addr & htonl(0xf0000000)) == htonl(0xe0000000);
-}
-
-static inline bool ipv4_is_local_multicast(__be32 addr)
-{
- return (addr & htonl(0xffffff00)) == htonl(0xe0000000);
-}
-
-static inline bool ipv4_is_lbcast(__be32 addr)
-{
- /* limited broadcast */
- return addr == htonl(INADDR_BROADCAST);
-}
-
-static inline bool ipv4_is_zeronet(__be32 addr)
-{
- return (addr & htonl(0xff000000)) == htonl(0x00000000);
-}
-
-/* Special-Use IPv4 Addresses (RFC3330) */
-
-static inline bool ipv4_is_private_10(__be32 addr)
-{
- return (addr & htonl(0xff000000)) == htonl(0x0a000000);
-}
-
-static inline bool ipv4_is_private_172(__be32 addr)
-{
- return (addr & htonl(0xfff00000)) == htonl(0xac100000);
-}
-
-static inline bool ipv4_is_private_192(__be32 addr)
-{
- return (addr & htonl(0xffff0000)) == htonl(0xc0a80000);
-}
-
-static inline bool ipv4_is_linklocal_169(__be32 addr)
-{
- return (addr & htonl(0xffff0000)) == htonl(0xa9fe0000);
-}
-
-static inline bool ipv4_is_anycast_6to4(__be32 addr)
-{
- return (addr & htonl(0xffffff00)) == htonl(0xc0586300);
-}
-
-static inline bool ipv4_is_test_192(__be32 addr)
-{
- return (addr & htonl(0xffffff00)) == htonl(0xc0000200);
-}
-
-static inline bool ipv4_is_test_198(__be32 addr)
-{
- return (addr & htonl(0xfffe0000)) == htonl(0xc6120000);
-}
-#endif
-
-#endif /* _LINUX_IN_H */
diff --git a/ANDROID_3.4.5/include/linux/in6.h b/ANDROID_3.4.5/include/linux/in6.h
deleted file mode 100644
index 5c83d9e3..00000000
--- a/ANDROID_3.4.5/include/linux/in6.h
+++ /dev/null
@@ -1,291 +0,0 @@
-/*
- * Types and definitions for AF_INET6
- * Linux INET6 implementation
- *
- * Authors:
- * Pedro Roque <roque@di.fc.ul.pt>
- *
- * Sources:
- * IPv6 Program Interfaces for BSD Systems
- * <draft-ietf-ipngwg-bsd-api-05.txt>
- *
- * Advanced Sockets API for IPv6
- * <draft-stevens-advanced-api-00.txt>
- *
- * 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_IN6_H
-#define _LINUX_IN6_H
-
-#include <linux/types.h>
-
-/*
- * IPv6 address structure
- */
-
-struct in6_addr {
- union {
- __u8 u6_addr8[16];
- __be16 u6_addr16[8];
- __be32 u6_addr32[4];
- } in6_u;
-#define s6_addr in6_u.u6_addr8
-#define s6_addr16 in6_u.u6_addr16
-#define s6_addr32 in6_u.u6_addr32
-};
-
-/* IPv6 Wildcard Address (::) and Loopback Address (::1) defined in RFC2553
- * NOTE: Be aware the IN6ADDR_* constants and in6addr_* externals are defined
- * in network byte order, not in host byte order as are the IPv4 equivalents
- */
-#ifdef __KERNEL__
-extern const struct in6_addr in6addr_any;
-#define IN6ADDR_ANY_INIT { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } } }
-extern const struct in6_addr in6addr_loopback;
-#define IN6ADDR_LOOPBACK_INIT { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 } } }
-extern const struct in6_addr in6addr_linklocal_allnodes;
-#define IN6ADDR_LINKLOCAL_ALLNODES_INIT \
- { { { 0xff,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1 } } }
-extern const struct in6_addr in6addr_linklocal_allrouters;
-#define IN6ADDR_LINKLOCAL_ALLROUTERS_INIT \
- { { { 0xff,2,0,0,0,0,0,0,0,0,0,0,0,0,0,2 } } }
-#endif
-
-struct sockaddr_in6 {
- unsigned short int sin6_family; /* AF_INET6 */
- __be16 sin6_port; /* Transport layer port # */
- __be32 sin6_flowinfo; /* IPv6 flow information */
- struct in6_addr sin6_addr; /* IPv6 address */
- __u32 sin6_scope_id; /* scope id (new in RFC2553) */
-};
-
-struct ipv6_mreq {
- /* IPv6 multicast address of group */
- struct in6_addr ipv6mr_multiaddr;
-
- /* local IPv6 address of interface */
- int ipv6mr_ifindex;
-};
-
-#define ipv6mr_acaddr ipv6mr_multiaddr
-
-struct in6_flowlabel_req {
- struct in6_addr flr_dst;
- __be32 flr_label;
- __u8 flr_action;
- __u8 flr_share;
- __u16 flr_flags;
- __u16 flr_expires;
- __u16 flr_linger;
- __u32 __flr_pad;
- /* Options in format of IPV6_PKTOPTIONS */
-};
-
-#define IPV6_FL_A_GET 0
-#define IPV6_FL_A_PUT 1
-#define IPV6_FL_A_RENEW 2
-
-#define IPV6_FL_F_CREATE 1
-#define IPV6_FL_F_EXCL 2
-
-#define IPV6_FL_S_NONE 0
-#define IPV6_FL_S_EXCL 1
-#define IPV6_FL_S_PROCESS 2
-#define IPV6_FL_S_USER 3
-#define IPV6_FL_S_ANY 255
-
-
-/*
- * Bitmask constant declarations to help applications select out the
- * flow label and priority fields.
- *
- * Note that this are in host byte order while the flowinfo field of
- * sockaddr_in6 is in network byte order.
- */
-
-#define IPV6_FLOWINFO_FLOWLABEL 0x000fffff
-#define IPV6_FLOWINFO_PRIORITY 0x0ff00000
-
-/* These definitions are obsolete */
-#define IPV6_PRIORITY_UNCHARACTERIZED 0x0000
-#define IPV6_PRIORITY_FILLER 0x0100
-#define IPV6_PRIORITY_UNATTENDED 0x0200
-#define IPV6_PRIORITY_RESERVED1 0x0300
-#define IPV6_PRIORITY_BULK 0x0400
-#define IPV6_PRIORITY_RESERVED2 0x0500
-#define IPV6_PRIORITY_INTERACTIVE 0x0600
-#define IPV6_PRIORITY_CONTROL 0x0700
-#define IPV6_PRIORITY_8 0x0800
-#define IPV6_PRIORITY_9 0x0900
-#define IPV6_PRIORITY_10 0x0a00
-#define IPV6_PRIORITY_11 0x0b00
-#define IPV6_PRIORITY_12 0x0c00
-#define IPV6_PRIORITY_13 0x0d00
-#define IPV6_PRIORITY_14 0x0e00
-#define IPV6_PRIORITY_15 0x0f00
-
-/*
- * IPV6 extension headers
- */
-#define IPPROTO_HOPOPTS 0 /* IPv6 hop-by-hop options */
-#define IPPROTO_ROUTING 43 /* IPv6 routing header */
-#define IPPROTO_FRAGMENT 44 /* IPv6 fragmentation header */
-#define IPPROTO_ICMPV6 58 /* ICMPv6 */
-#define IPPROTO_NONE 59 /* IPv6 no next header */
-#define IPPROTO_DSTOPTS 60 /* IPv6 destination options */
-#define IPPROTO_MH 135 /* IPv6 mobility header */
-
-/*
- * IPv6 TLV options.
- */
-#define IPV6_TLV_PAD0 0
-#define IPV6_TLV_PADN 1
-#define IPV6_TLV_ROUTERALERT 5
-#define IPV6_TLV_JUMBO 194
-#define IPV6_TLV_HAO 201 /* home address option */
-
-/*
- * IPV6 socket options
- */
-
-#define IPV6_ADDRFORM 1
-#define IPV6_2292PKTINFO 2
-#define IPV6_2292HOPOPTS 3
-#define IPV6_2292DSTOPTS 4
-#define IPV6_2292RTHDR 5
-#define IPV6_2292PKTOPTIONS 6
-#define IPV6_CHECKSUM 7
-#define IPV6_2292HOPLIMIT 8
-#define IPV6_NEXTHOP 9
-#define IPV6_AUTHHDR 10 /* obsolete */
-#define IPV6_FLOWINFO 11
-
-#define IPV6_UNICAST_HOPS 16
-#define IPV6_MULTICAST_IF 17
-#define IPV6_MULTICAST_HOPS 18
-#define IPV6_MULTICAST_LOOP 19
-#define IPV6_ADD_MEMBERSHIP 20
-#define IPV6_DROP_MEMBERSHIP 21
-#define IPV6_ROUTER_ALERT 22
-#define IPV6_MTU_DISCOVER 23
-#define IPV6_MTU 24
-#define IPV6_RECVERR 25
-#define IPV6_V6ONLY 26
-#define IPV6_JOIN_ANYCAST 27
-#define IPV6_LEAVE_ANYCAST 28
-
-/* IPV6_MTU_DISCOVER values */
-#define IPV6_PMTUDISC_DONT 0
-#define IPV6_PMTUDISC_WANT 1
-#define IPV6_PMTUDISC_DO 2
-#define IPV6_PMTUDISC_PROBE 3
-
-/* Flowlabel */
-#define IPV6_FLOWLABEL_MGR 32
-#define IPV6_FLOWINFO_SEND 33
-
-#define IPV6_IPSEC_POLICY 34
-#define IPV6_XFRM_POLICY 35
-
-/*
- * Multicast:
- * Following socket options are shared between IPv4 and IPv6.
- *
- * MCAST_JOIN_GROUP 42
- * MCAST_BLOCK_SOURCE 43
- * MCAST_UNBLOCK_SOURCE 44
- * MCAST_LEAVE_GROUP 45
- * MCAST_JOIN_SOURCE_GROUP 46
- * MCAST_LEAVE_SOURCE_GROUP 47
- * MCAST_MSFILTER 48
- */
-
-/*
- * Advanced API (RFC3542) (1)
- *
- * Note: IPV6_RECVRTHDRDSTOPTS does not exist. see net/ipv6/datagram.c.
- */
-
-#define IPV6_RECVPKTINFO 49
-#define IPV6_PKTINFO 50
-#define IPV6_RECVHOPLIMIT 51
-#define IPV6_HOPLIMIT 52
-#define IPV6_RECVHOPOPTS 53
-#define IPV6_HOPOPTS 54
-#define IPV6_RTHDRDSTOPTS 55
-#define IPV6_RECVRTHDR 56
-#define IPV6_RTHDR 57
-#define IPV6_RECVDSTOPTS 58
-#define IPV6_DSTOPTS 59
-#define IPV6_RECVPATHMTU 60
-#define IPV6_PATHMTU 61
-#define IPV6_DONTFRAG 62
-#if 0 /* not yet */
-#define IPV6_USE_MIN_MTU 63
-#endif
-
-/*
- * Netfilter (1)
- *
- * Following socket options are used in ip6_tables;
- * see include/linux/netfilter_ipv6/ip6_tables.h.
- *
- * IP6T_SO_SET_REPLACE / IP6T_SO_GET_INFO 64
- * IP6T_SO_SET_ADD_COUNTERS / IP6T_SO_GET_ENTRIES 65
- */
-
-/*
- * Advanced API (RFC3542) (2)
- */
-#define IPV6_RECVTCLASS 66
-#define IPV6_TCLASS 67
-
-/*
- * Netfilter (2)
- *
- * Following socket options are used in ip6_tables;
- * see include/linux/netfilter_ipv6/ip6_tables.h.
- *
- * IP6T_SO_GET_REVISION_MATCH 68
- * IP6T_SO_GET_REVISION_TARGET 69
- */
-
-/* RFC5014: Source address selection */
-#define IPV6_ADDR_PREFERENCES 72
-
-#define IPV6_PREFER_SRC_TMP 0x0001
-#define IPV6_PREFER_SRC_PUBLIC 0x0002
-#define IPV6_PREFER_SRC_PUBTMP_DEFAULT 0x0100
-#define IPV6_PREFER_SRC_COA 0x0004
-#define IPV6_PREFER_SRC_HOME 0x0400
-#define IPV6_PREFER_SRC_CGA 0x0008
-#define IPV6_PREFER_SRC_NONCGA 0x0800
-
-/* RFC5082: Generalized Ttl Security Mechanism */
-#define IPV6_MINHOPCOUNT 73
-
-#define IPV6_ORIGDSTADDR 74
-#define IPV6_RECVORIGDSTADDR IPV6_ORIGDSTADDR
-#define IPV6_TRANSPARENT 75
-#define IPV6_UNICAST_IF 76
-
-/*
- * Multicast Routing:
- * see include/linux/mroute6.h.
- *
- * MRT6_INIT 200
- * MRT6_DONE 201
- * MRT6_ADD_MIF 202
- * MRT6_DEL_MIF 203
- * MRT6_ADD_MFC 204
- * MRT6_DEL_MFC 205
- * MRT6_VERSION 206
- * MRT6_ASSERT 207
- * MRT6_PIM 208
- * (reserved) 209
- */
-#endif
diff --git a/ANDROID_3.4.5/include/linux/in_route.h b/ANDROID_3.4.5/include/linux/in_route.h
deleted file mode 100644
index b261b8c9..00000000
--- a/ANDROID_3.4.5/include/linux/in_route.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef _LINUX_IN_ROUTE_H
-#define _LINUX_IN_ROUTE_H
-
-/* IPv4 routing cache flags */
-
-#define RTCF_DEAD RTNH_F_DEAD
-#define RTCF_ONLINK RTNH_F_ONLINK
-
-/* Obsolete flag. About to be deleted */
-#define RTCF_NOPMTUDISC RTM_F_NOPMTUDISC
-
-#define RTCF_NOTIFY 0x00010000
-#define RTCF_DIRECTDST 0x00020000 /* unused */
-#define RTCF_REDIRECTED 0x00040000
-#define RTCF_TPROXY 0x00080000 /* unused */
-
-#define RTCF_FAST 0x00200000 /* unused */
-#define RTCF_MASQ 0x00400000 /* unused */
-#define RTCF_SNAT 0x00800000 /* unused */
-#define RTCF_DOREDIRECT 0x01000000
-#define RTCF_DIRECTSRC 0x04000000
-#define RTCF_DNAT 0x08000000
-#define RTCF_BROADCAST 0x10000000
-#define RTCF_MULTICAST 0x20000000
-#define RTCF_REJECT 0x40000000 /* unused */
-#define RTCF_LOCAL 0x80000000
-
-#define RTCF_NAT (RTCF_DNAT|RTCF_SNAT)
-
-#define RT_TOS(tos) ((tos)&IPTOS_TOS_MASK)
-
-#endif /* _LINUX_IN_ROUTE_H */
diff --git a/ANDROID_3.4.5/include/linux/inet.h b/ANDROID_3.4.5/include/linux/inet.h
deleted file mode 100644
index 4cca05c9..00000000
--- a/ANDROID_3.4.5/include/linux/inet.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Swansea University Computer Society NET3
- *
- * This work is derived from NET2Debugged, which is in turn derived
- * from NET2D which was written by:
- * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
- *
- * This work was derived from Ross Biro's inspirational work
- * for the LINUX operating system. His version numbers were:
- *
- * $Id: Space.c,v 0.8.4.5 1992/12/12 19:25:04 bir7 Exp $
- * $Id: arp.c,v 0.8.4.6 1993/01/28 22:30:00 bir7 Exp $
- * $Id: arp.h,v 0.8.4.6 1993/01/28 22:30:00 bir7 Exp $
- * $Id: dev.c,v 0.8.4.13 1993/01/23 18:00:11 bir7 Exp $
- * $Id: dev.h,v 0.8.4.7 1993/01/23 18:00:11 bir7 Exp $
- * $Id: eth.c,v 0.8.4.4 1993/01/22 23:21:38 bir7 Exp $
- * $Id: eth.h,v 0.8.4.1 1992/11/10 00:17:18 bir7 Exp $
- * $Id: icmp.c,v 0.8.4.9 1993/01/23 18:00:11 bir7 Exp $
- * $Id: icmp.h,v 0.8.4.2 1992/11/15 14:55:30 bir7 Exp $
- * $Id: ip.c,v 0.8.4.8 1992/12/12 19:25:04 bir7 Exp $
- * $Id: ip.h,v 0.8.4.2 1993/01/23 18:00:11 bir7 Exp $
- * $Id: loopback.c,v 0.8.4.8 1993/01/23 18:00:11 bir7 Exp $
- * $Id: packet.c,v 0.8.4.7 1993/01/26 22:04:00 bir7 Exp $
- * $Id: protocols.c,v 0.8.4.3 1992/11/15 14:55:30 bir7 Exp $
- * $Id: raw.c,v 0.8.4.12 1993/01/26 22:04:00 bir7 Exp $
- * $Id: sock.c,v 0.8.4.6 1993/01/28 22:30:00 bir7 Exp $
- * $Id: sock.h,v 0.8.4.7 1993/01/26 22:04:00 bir7 Exp $
- * $Id: tcp.c,v 0.8.4.16 1993/01/26 22:04:00 bir7 Exp $
- * $Id: tcp.h,v 0.8.4.7 1993/01/22 22:58:08 bir7 Exp $
- * $Id: timer.c,v 0.8.4.8 1993/01/23 18:00:11 bir7 Exp $
- * $Id: timer.h,v 0.8.4.2 1993/01/23 18:00:11 bir7 Exp $
- * $Id: udp.c,v 0.8.4.12 1993/01/26 22:04:00 bir7 Exp $
- * $Id: udp.h,v 0.8.4.1 1992/11/10 00:17:18 bir7 Exp $
- * $Id: we.c,v 0.8.4.10 1993/01/23 18:00:11 bir7 Exp $
- * $Id: wereg.h,v 0.8.4.1 1992/11/10 00:17:18 bir7 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.
- */
-#ifndef _LINUX_INET_H
-#define _LINUX_INET_H
-
-#include <linux/types.h>
-
-/*
- * These mimic similar macros defined in user-space for inet_ntop(3).
- * See /usr/include/netinet/in.h .
- */
-#define INET_ADDRSTRLEN (16)
-#define INET6_ADDRSTRLEN (48)
-
-extern __be32 in_aton(const char *str);
-extern int in4_pton(const char *src, int srclen, u8 *dst, int delim, const char **end);
-extern int in6_pton(const char *src, int srclen, u8 *dst, int delim, const char **end);
-#endif /* _LINUX_INET_H */
diff --git a/ANDROID_3.4.5/include/linux/inet_diag.h b/ANDROID_3.4.5/include/linux/inet_diag.h
deleted file mode 100644
index f1362b54..00000000
--- a/ANDROID_3.4.5/include/linux/inet_diag.h
+++ /dev/null
@@ -1,177 +0,0 @@
-#ifndef _INET_DIAG_H_
-#define _INET_DIAG_H_ 1
-
-#include <linux/types.h>
-
-/* Just some random number */
-#define TCPDIAG_GETSOCK 18
-#define DCCPDIAG_GETSOCK 19
-
-#define INET_DIAG_GETSOCK_MAX 24
-
-/* Socket identity */
-struct inet_diag_sockid {
- __be16 idiag_sport;
- __be16 idiag_dport;
- __be32 idiag_src[4];
- __be32 idiag_dst[4];
- __u32 idiag_if;
- __u32 idiag_cookie[2];
-#define INET_DIAG_NOCOOKIE (~0U)
-};
-
-/* Request structure */
-
-struct inet_diag_req {
- __u8 idiag_family; /* Family of addresses. */
- __u8 idiag_src_len;
- __u8 idiag_dst_len;
- __u8 idiag_ext; /* Query extended information */
-
- struct inet_diag_sockid id;
-
- __u32 idiag_states; /* States to dump */
- __u32 idiag_dbs; /* Tables to dump (NI) */
-};
-
-struct inet_diag_req_v2 {
- __u8 sdiag_family;
- __u8 sdiag_protocol;
- __u8 idiag_ext;
- __u8 pad;
- __u32 idiag_states;
- struct inet_diag_sockid id;
-};
-
-enum {
- INET_DIAG_REQ_NONE,
- INET_DIAG_REQ_BYTECODE,
-};
-
-#define INET_DIAG_REQ_MAX INET_DIAG_REQ_BYTECODE
-
-/* Bytecode is sequence of 4 byte commands followed by variable arguments.
- * All the commands identified by "code" are conditional jumps forward:
- * to offset cc+"yes" or to offset cc+"no". "yes" is supposed to be
- * length of the command and its arguments.
- */
-
-struct inet_diag_bc_op {
- unsigned char code;
- unsigned char yes;
- unsigned short no;
-};
-
-enum {
- INET_DIAG_BC_NOP,
- INET_DIAG_BC_JMP,
- INET_DIAG_BC_S_GE,
- INET_DIAG_BC_S_LE,
- INET_DIAG_BC_D_GE,
- INET_DIAG_BC_D_LE,
- INET_DIAG_BC_AUTO,
- INET_DIAG_BC_S_COND,
- INET_DIAG_BC_D_COND,
-};
-
-struct inet_diag_hostcond {
- __u8 family;
- __u8 prefix_len;
- int port;
- __be32 addr[0];
-};
-
-/* Base info structure. It contains socket identity (addrs/ports/cookie)
- * and, alas, the information shown by netstat. */
-struct inet_diag_msg {
- __u8 idiag_family;
- __u8 idiag_state;
- __u8 idiag_timer;
- __u8 idiag_retrans;
-
- struct inet_diag_sockid id;
-
- __u32 idiag_expires;
- __u32 idiag_rqueue;
- __u32 idiag_wqueue;
- __u32 idiag_uid;
- __u32 idiag_inode;
-};
-
-/* Extensions */
-
-enum {
- INET_DIAG_NONE,
- INET_DIAG_MEMINFO,
- INET_DIAG_INFO,
- INET_DIAG_VEGASINFO,
- INET_DIAG_CONG,
- INET_DIAG_TOS,
- INET_DIAG_TCLASS,
- INET_DIAG_SKMEMINFO,
-};
-
-#define INET_DIAG_MAX INET_DIAG_SKMEMINFO
-
-
-/* INET_DIAG_MEM */
-
-struct inet_diag_meminfo {
- __u32 idiag_rmem;
- __u32 idiag_wmem;
- __u32 idiag_fmem;
- __u32 idiag_tmem;
-};
-
-/* INET_DIAG_VEGASINFO */
-
-struct tcpvegas_info {
- __u32 tcpv_enabled;
- __u32 tcpv_rttcnt;
- __u32 tcpv_rtt;
- __u32 tcpv_minrtt;
-};
-
-#ifdef __KERNEL__
-struct sock;
-struct inet_hashinfo;
-struct nlattr;
-struct nlmsghdr;
-struct sk_buff;
-struct netlink_callback;
-
-struct inet_diag_handler {
- void (*dump)(struct sk_buff *skb,
- struct netlink_callback *cb,
- struct inet_diag_req_v2 *r,
- struct nlattr *bc);
-
- int (*dump_one)(struct sk_buff *in_skb,
- const struct nlmsghdr *nlh,
- struct inet_diag_req_v2 *req);
-
- void (*idiag_get_info)(struct sock *sk,
- struct inet_diag_msg *r,
- void *info);
- __u16 idiag_type;
-};
-
-struct inet_connection_sock;
-int inet_sk_diag_fill(struct sock *sk, struct inet_connection_sock *icsk,
- struct sk_buff *skb, struct inet_diag_req_v2 *req,
- u32 pid, u32 seq, u16 nlmsg_flags,
- const struct nlmsghdr *unlh);
-void inet_diag_dump_icsk(struct inet_hashinfo *h, struct sk_buff *skb,
- struct netlink_callback *cb, struct inet_diag_req_v2 *r,
- struct nlattr *bc);
-int inet_diag_dump_one_icsk(struct inet_hashinfo *hashinfo,
- struct sk_buff *in_skb, const struct nlmsghdr *nlh,
- struct inet_diag_req_v2 *req);
-
-int inet_diag_bc_sk(const struct nlattr *_bc, struct sock *sk);
-
-extern int inet_diag_register(const struct inet_diag_handler *handler);
-extern void inet_diag_unregister(const struct inet_diag_handler *handler);
-#endif /* __KERNEL__ */
-
-#endif /* _INET_DIAG_H_ */
diff --git a/ANDROID_3.4.5/include/linux/inet_lro.h b/ANDROID_3.4.5/include/linux/inet_lro.h
deleted file mode 100644
index 2cf55afb..00000000
--- a/ANDROID_3.4.5/include/linux/inet_lro.h
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * linux/include/linux/inet_lro.h
- *
- * Large Receive Offload (ipv4 / tcp)
- *
- * (C) Copyright IBM Corp. 2007
- *
- * Authors:
- * Jan-Bernd Themann <themann@de.ibm.com>
- * Christoph Raisch <raisch@de.ibm.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, 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.
- */
-
-#ifndef __INET_LRO_H_
-#define __INET_LRO_H_
-
-#include <net/ip.h>
-#include <net/tcp.h>
-
-/*
- * LRO statistics
- */
-
-struct net_lro_stats {
- unsigned long aggregated;
- unsigned long flushed;
- unsigned long no_desc;
-};
-
-/*
- * LRO descriptor for a tcp session
- */
-struct net_lro_desc {
- struct sk_buff *parent;
- struct sk_buff *last_skb;
- struct skb_frag_struct *next_frag;
- struct iphdr *iph;
- struct tcphdr *tcph;
- __wsum data_csum;
- __be32 tcp_rcv_tsecr;
- __be32 tcp_rcv_tsval;
- __be32 tcp_ack;
- u32 tcp_next_seq;
- u32 skb_tot_frags_len;
- u16 ip_tot_len;
- u16 tcp_saw_tstamp; /* timestamps enabled */
- __be16 tcp_window;
- int pkt_aggr_cnt; /* counts aggregated packets */
- int vlan_packet;
- int mss;
- int active;
-};
-
-/*
- * Large Receive Offload (LRO) Manager
- *
- * Fields must be set by driver
- */
-
-struct net_lro_mgr {
- struct net_device *dev;
- struct net_lro_stats stats;
-
- /* LRO features */
- unsigned long features;
-#define LRO_F_NAPI 1 /* Pass packets to stack via NAPI */
-#define LRO_F_EXTRACT_VLAN_ID 2 /* Set flag if VLAN IDs are extracted
- from received packets and eth protocol
- is still ETH_P_8021Q */
-
- /*
- * Set for generated SKBs that are not added to
- * the frag list in fragmented mode
- */
- u32 ip_summed;
- u32 ip_summed_aggr; /* Set in aggregated SKBs: CHECKSUM_UNNECESSARY
- * or CHECKSUM_NONE */
-
- int max_desc; /* Max number of LRO descriptors */
- int max_aggr; /* Max number of LRO packets to be aggregated */
-
- int frag_align_pad; /* Padding required to properly align layer 3
- * headers in generated skb when using frags */
-
- struct net_lro_desc *lro_arr; /* Array of LRO descriptors */
-
- /*
- * Optimized driver functions
- *
- * get_skb_header: returns tcp and ip header for packet in SKB
- */
- int (*get_skb_header)(struct sk_buff *skb, void **ip_hdr,
- void **tcpudp_hdr, u64 *hdr_flags, void *priv);
-
- /* hdr_flags: */
-#define LRO_IPV4 1 /* ip_hdr is IPv4 header */
-#define LRO_TCP 2 /* tcpudp_hdr is TCP header */
-
- /*
- * get_frag_header: returns mac, tcp and ip header for packet in SKB
- *
- * @hdr_flags: Indicate what kind of LRO has to be done
- * (IPv4/IPv6/TCP/UDP)
- */
- int (*get_frag_header)(struct skb_frag_struct *frag, void **mac_hdr,
- void **ip_hdr, void **tcpudp_hdr, u64 *hdr_flags,
- void *priv);
-};
-
-/*
- * Processes a SKB
- *
- * @lro_mgr: LRO manager to use
- * @skb: SKB to aggregate
- * @priv: Private data that may be used by driver functions
- * (for example get_tcp_ip_hdr)
- */
-
-void lro_receive_skb(struct net_lro_mgr *lro_mgr,
- struct sk_buff *skb,
- void *priv);
-
-/*
- * Processes a fragment list
- *
- * This functions aggregate fragments and generate SKBs do pass
- * the packets to the stack.
- *
- * @lro_mgr: LRO manager to use
- * @frags: Fragment to be processed. Must contain entire header in first
- * element.
- * @len: Length of received data
- * @true_size: Actual size of memory the fragment is consuming
- * @priv: Private data that may be used by driver functions
- * (for example get_tcp_ip_hdr)
- */
-
-void lro_receive_frags(struct net_lro_mgr *lro_mgr,
- struct skb_frag_struct *frags,
- int len, int true_size, void *priv, __wsum sum);
-
-/*
- * Forward all aggregated SKBs held by lro_mgr to network stack
- */
-
-void lro_flush_all(struct net_lro_mgr *lro_mgr);
-
-void lro_flush_pkt(struct net_lro_mgr *lro_mgr,
- struct iphdr *iph, struct tcphdr *tcph);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/inetdevice.h b/ANDROID_3.4.5/include/linux/inetdevice.h
deleted file mode 100644
index 597f4a9f..00000000
--- a/ANDROID_3.4.5/include/linux/inetdevice.h
+++ /dev/null
@@ -1,259 +0,0 @@
-#ifndef _LINUX_INETDEVICE_H
-#define _LINUX_INETDEVICE_H
-
-#ifdef __KERNEL__
-
-#include <linux/bitmap.h>
-#include <linux/if.h>
-#include <linux/netdevice.h>
-#include <linux/rcupdate.h>
-#include <linux/timer.h>
-#include <linux/sysctl.h>
-#include <linux/rtnetlink.h>
-
-enum
-{
- IPV4_DEVCONF_FORWARDING=1,
- IPV4_DEVCONF_MC_FORWARDING,
- IPV4_DEVCONF_PROXY_ARP,
- IPV4_DEVCONF_ACCEPT_REDIRECTS,
- IPV4_DEVCONF_SECURE_REDIRECTS,
- IPV4_DEVCONF_SEND_REDIRECTS,
- IPV4_DEVCONF_SHARED_MEDIA,
- IPV4_DEVCONF_RP_FILTER,
- IPV4_DEVCONF_ACCEPT_SOURCE_ROUTE,
- IPV4_DEVCONF_BOOTP_RELAY,
- IPV4_DEVCONF_LOG_MARTIANS,
- IPV4_DEVCONF_TAG,
- IPV4_DEVCONF_ARPFILTER,
- IPV4_DEVCONF_MEDIUM_ID,
- IPV4_DEVCONF_NOXFRM,
- IPV4_DEVCONF_NOPOLICY,
- IPV4_DEVCONF_FORCE_IGMP_VERSION,
- IPV4_DEVCONF_ARP_ANNOUNCE,
- IPV4_DEVCONF_ARP_IGNORE,
- IPV4_DEVCONF_PROMOTE_SECONDARIES,
- IPV4_DEVCONF_ARP_ACCEPT,
- IPV4_DEVCONF_ARP_NOTIFY,
- IPV4_DEVCONF_ACCEPT_LOCAL,
- IPV4_DEVCONF_SRC_VMARK,
- IPV4_DEVCONF_PROXY_ARP_PVLAN,
- __IPV4_DEVCONF_MAX
-};
-
-#define IPV4_DEVCONF_MAX (__IPV4_DEVCONF_MAX - 1)
-
-struct ipv4_devconf {
- void *sysctl;
- int data[IPV4_DEVCONF_MAX];
- DECLARE_BITMAP(state, IPV4_DEVCONF_MAX);
-};
-
-struct in_device {
- struct net_device *dev;
- atomic_t refcnt;
- int dead;
- struct in_ifaddr *ifa_list; /* IP ifaddr chain */
- struct ip_mc_list __rcu *mc_list; /* IP multicast filter chain */
- int mc_count; /* Number of installed mcasts */
- spinlock_t mc_tomb_lock;
- struct ip_mc_list *mc_tomb;
- unsigned long mr_v1_seen;
- unsigned long mr_v2_seen;
- unsigned long mr_maxdelay;
- unsigned char mr_qrv;
- unsigned char mr_gq_running;
- unsigned char mr_ifc_count;
- struct timer_list mr_gq_timer; /* general query timer */
- struct timer_list mr_ifc_timer; /* interface change timer */
-
- struct neigh_parms *arp_parms;
- struct ipv4_devconf cnf;
- struct rcu_head rcu_head;
-};
-
-#define IPV4_DEVCONF(cnf, attr) ((cnf).data[IPV4_DEVCONF_ ## attr - 1])
-#define IPV4_DEVCONF_ALL(net, attr) \
- IPV4_DEVCONF((*(net)->ipv4.devconf_all), attr)
-
-static inline int ipv4_devconf_get(struct in_device *in_dev, int index)
-{
- index--;
- return in_dev->cnf.data[index];
-}
-
-static inline void ipv4_devconf_set(struct in_device *in_dev, int index,
- int val)
-{
- index--;
- set_bit(index, in_dev->cnf.state);
- in_dev->cnf.data[index] = val;
-}
-
-static inline void ipv4_devconf_setall(struct in_device *in_dev)
-{
- bitmap_fill(in_dev->cnf.state, IPV4_DEVCONF_MAX);
-}
-
-#define IN_DEV_CONF_GET(in_dev, attr) \
- ipv4_devconf_get((in_dev), IPV4_DEVCONF_ ## attr)
-#define IN_DEV_CONF_SET(in_dev, attr, val) \
- ipv4_devconf_set((in_dev), IPV4_DEVCONF_ ## attr, (val))
-
-#define IN_DEV_ANDCONF(in_dev, attr) \
- (IPV4_DEVCONF_ALL(dev_net(in_dev->dev), attr) && \
- IN_DEV_CONF_GET((in_dev), attr))
-#define IN_DEV_ORCONF(in_dev, attr) \
- (IPV4_DEVCONF_ALL(dev_net(in_dev->dev), attr) || \
- IN_DEV_CONF_GET((in_dev), attr))
-#define IN_DEV_MAXCONF(in_dev, attr) \
- (max(IPV4_DEVCONF_ALL(dev_net(in_dev->dev), attr), \
- IN_DEV_CONF_GET((in_dev), attr)))
-
-#define IN_DEV_FORWARD(in_dev) IN_DEV_CONF_GET((in_dev), FORWARDING)
-#define IN_DEV_MFORWARD(in_dev) IN_DEV_ANDCONF((in_dev), MC_FORWARDING)
-#define IN_DEV_RPFILTER(in_dev) IN_DEV_MAXCONF((in_dev), RP_FILTER)
-#define IN_DEV_SRC_VMARK(in_dev) IN_DEV_ORCONF((in_dev), SRC_VMARK)
-#define IN_DEV_SOURCE_ROUTE(in_dev) IN_DEV_ANDCONF((in_dev), \
- ACCEPT_SOURCE_ROUTE)
-#define IN_DEV_ACCEPT_LOCAL(in_dev) IN_DEV_ORCONF((in_dev), ACCEPT_LOCAL)
-#define IN_DEV_BOOTP_RELAY(in_dev) IN_DEV_ANDCONF((in_dev), BOOTP_RELAY)
-
-#define IN_DEV_LOG_MARTIANS(in_dev) IN_DEV_ORCONF((in_dev), LOG_MARTIANS)
-#define IN_DEV_PROXY_ARP(in_dev) IN_DEV_ORCONF((in_dev), PROXY_ARP)
-#define IN_DEV_PROXY_ARP_PVLAN(in_dev) IN_DEV_CONF_GET(in_dev, PROXY_ARP_PVLAN)
-#define IN_DEV_SHARED_MEDIA(in_dev) IN_DEV_ORCONF((in_dev), SHARED_MEDIA)
-#define IN_DEV_TX_REDIRECTS(in_dev) IN_DEV_ORCONF((in_dev), SEND_REDIRECTS)
-#define IN_DEV_SEC_REDIRECTS(in_dev) IN_DEV_ORCONF((in_dev), \
- SECURE_REDIRECTS)
-#define IN_DEV_IDTAG(in_dev) IN_DEV_CONF_GET(in_dev, TAG)
-#define IN_DEV_MEDIUM_ID(in_dev) IN_DEV_CONF_GET(in_dev, MEDIUM_ID)
-#define IN_DEV_PROMOTE_SECONDARIES(in_dev) \
- IN_DEV_ORCONF((in_dev), \
- PROMOTE_SECONDARIES)
-
-#define IN_DEV_RX_REDIRECTS(in_dev) \
- ((IN_DEV_FORWARD(in_dev) && \
- IN_DEV_ANDCONF((in_dev), ACCEPT_REDIRECTS)) \
- || (!IN_DEV_FORWARD(in_dev) && \
- IN_DEV_ORCONF((in_dev), ACCEPT_REDIRECTS)))
-
-#define IN_DEV_ARPFILTER(in_dev) IN_DEV_ORCONF((in_dev), ARPFILTER)
-#define IN_DEV_ARP_ACCEPT(in_dev) IN_DEV_ORCONF((in_dev), ARP_ACCEPT)
-#define IN_DEV_ARP_ANNOUNCE(in_dev) IN_DEV_MAXCONF((in_dev), ARP_ANNOUNCE)
-#define IN_DEV_ARP_IGNORE(in_dev) IN_DEV_MAXCONF((in_dev), ARP_IGNORE)
-#define IN_DEV_ARP_NOTIFY(in_dev) IN_DEV_MAXCONF((in_dev), ARP_NOTIFY)
-
-struct in_ifaddr {
- struct hlist_node hash;
- struct in_ifaddr *ifa_next;
- struct in_device *ifa_dev;
- struct rcu_head rcu_head;
- __be32 ifa_local;
- __be32 ifa_address;
- __be32 ifa_mask;
- __be32 ifa_broadcast;
- unsigned char ifa_scope;
- unsigned char ifa_flags;
- unsigned char ifa_prefixlen;
- char ifa_label[IFNAMSIZ];
-};
-
-extern int register_inetaddr_notifier(struct notifier_block *nb);
-extern int unregister_inetaddr_notifier(struct notifier_block *nb);
-
-extern struct net_device *__ip_dev_find(struct net *net, __be32 addr, bool devref);
-static inline struct net_device *ip_dev_find(struct net *net, __be32 addr)
-{
- return __ip_dev_find(net, addr, true);
-}
-
-extern int inet_addr_onlink(struct in_device *in_dev, __be32 a, __be32 b);
-extern int devinet_ioctl(struct net *net, unsigned int cmd, void __user *);
-extern void devinet_init(void);
-extern struct in_device *inetdev_by_index(struct net *, int);
-extern __be32 inet_select_addr(const struct net_device *dev, __be32 dst, int scope);
-extern __be32 inet_confirm_addr(struct in_device *in_dev, __be32 dst, __be32 local, int scope);
-extern struct in_ifaddr *inet_ifa_byprefix(struct in_device *in_dev, __be32 prefix, __be32 mask);
-
-static __inline__ int inet_ifa_match(__be32 addr, struct in_ifaddr *ifa)
-{
- return !((addr^ifa->ifa_address)&ifa->ifa_mask);
-}
-
-/*
- * Check if a mask is acceptable.
- */
-
-static __inline__ int bad_mask(__be32 mask, __be32 addr)
-{
- __u32 hmask;
- if (addr & (mask = ~mask))
- return 1;
- hmask = ntohl(mask);
- if (hmask & (hmask+1))
- return 1;
- return 0;
-}
-
-#define for_primary_ifa(in_dev) { struct in_ifaddr *ifa; \
- for (ifa = (in_dev)->ifa_list; ifa && !(ifa->ifa_flags&IFA_F_SECONDARY); ifa = ifa->ifa_next)
-
-#define for_ifa(in_dev) { struct in_ifaddr *ifa; \
- for (ifa = (in_dev)->ifa_list; ifa; ifa = ifa->ifa_next)
-
-
-#define endfor_ifa(in_dev) }
-
-static inline struct in_device *__in_dev_get_rcu(const struct net_device *dev)
-{
- return rcu_dereference(dev->ip_ptr);
-}
-
-static inline struct in_device *in_dev_get(const struct net_device *dev)
-{
- struct in_device *in_dev;
-
- rcu_read_lock();
- in_dev = __in_dev_get_rcu(dev);
- if (in_dev)
- atomic_inc(&in_dev->refcnt);
- rcu_read_unlock();
- return in_dev;
-}
-
-static inline struct in_device *__in_dev_get_rtnl(const struct net_device *dev)
-{
- return rtnl_dereference(dev->ip_ptr);
-}
-
-extern void in_dev_finish_destroy(struct in_device *idev);
-
-static inline void in_dev_put(struct in_device *idev)
-{
- if (atomic_dec_and_test(&idev->refcnt))
- in_dev_finish_destroy(idev);
-}
-
-#define __in_dev_put(idev) atomic_dec(&(idev)->refcnt)
-#define in_dev_hold(idev) atomic_inc(&(idev)->refcnt)
-
-#endif /* __KERNEL__ */
-
-static __inline__ __be32 inet_make_mask(int logmask)
-{
- if (logmask)
- return htonl(~((1<<(32-logmask))-1));
- return 0;
-}
-
-static __inline__ int inet_mask_len(__be32 mask)
-{
- __u32 hmask = ntohl(mask);
- if (!hmask)
- return 0;
- return 32 - ffz(~hmask);
-}
-
-
-#endif /* _LINUX_INETDEVICE_H */
diff --git a/ANDROID_3.4.5/include/linux/init.h b/ANDROID_3.4.5/include/linux/init.h
deleted file mode 100644
index 6b951095..00000000
--- a/ANDROID_3.4.5/include/linux/init.h
+++ /dev/null
@@ -1,350 +0,0 @@
-#ifndef _LINUX_INIT_H
-#define _LINUX_INIT_H
-
-#include <linux/compiler.h>
-#include <linux/types.h>
-
-/* These macros are used to mark some functions or
- * initialized data (doesn't apply to uninitialized data)
- * as `initialization' functions. The kernel can take this
- * as hint that the function is used only during the initialization
- * phase and free up used memory resources after
- *
- * Usage:
- * For functions:
- *
- * You should add __init immediately before the function name, like:
- *
- * static void __init initme(int x, int y)
- * {
- * extern int z; z = x * y;
- * }
- *
- * If the function has a prototype somewhere, you can also add
- * __init between closing brace of the prototype and semicolon:
- *
- * extern int initialize_foobar_device(int, int, int) __init;
- *
- * For initialized data:
- * You should insert __initdata between the variable name and equal
- * sign followed by value, e.g.:
- *
- * static int init_variable __initdata = 0;
- * static const char linux_logo[] __initconst = { 0x32, 0x36, ... };
- *
- * Don't forget to initialize data not at file scope, i.e. within a function,
- * as gcc otherwise puts the data into the bss section and not into the init
- * section.
- *
- * Also note, that this data cannot be "const".
- */
-
-/* These are for everybody (although not all archs will actually
- discard it in modules) */
-#define __init __section(.init.text) __cold notrace
-#define __initdata __section(.init.data)
-#define __initconst __section(.init.rodata)
-#define __exitdata __section(.exit.data)
-#define __exit_call __used __section(.exitcall.exit)
-
-/*
- * modpost check for section mismatches during the kernel build.
- * A section mismatch happens when there are references from a
- * code or data section to an init section (both code or data).
- * The init sections are (for most archs) discarded by the kernel
- * when early init has completed so all such references are potential bugs.
- * For exit sections the same issue exists.
- *
- * The following markers are used for the cases where the reference to
- * the *init / *exit section (code or data) is valid and will teach
- * modpost not to issue a warning. Intended semantics is that a code or
- * data tagged __ref* can reference code or data from init section without
- * producing a warning (of course, no warning does not mean code is
- * correct, so optimally document why the __ref is needed and why it's OK).
- *
- * The markers follow same syntax rules as __init / __initdata.
- */
-#define __ref __section(.ref.text) noinline
-#define __refdata __section(.ref.data)
-#define __refconst __section(.ref.rodata)
-
-/* compatibility defines */
-#define __init_refok __ref
-#define __initdata_refok __refdata
-#define __exit_refok __ref
-
-
-#ifdef MODULE
-#define __exitused
-#else
-#define __exitused __used
-#endif
-
-#define __exit __section(.exit.text) __exitused __cold notrace
-
-/* Used for HOTPLUG */
-#define __devinit __section(.devinit.text) __cold notrace
-#define __devinitdata __section(.devinit.data)
-#define __devinitconst __section(.devinit.rodata)
-#define __devexit __section(.devexit.text) __exitused __cold notrace
-#define __devexitdata __section(.devexit.data)
-#define __devexitconst __section(.devexit.rodata)
-
-/* Used for HOTPLUG_CPU */
-#define __cpuinit __section(.cpuinit.text) __cold notrace
-#define __cpuinitdata __section(.cpuinit.data)
-#define __cpuinitconst __section(.cpuinit.rodata)
-#define __cpuexit __section(.cpuexit.text) __exitused __cold notrace
-#define __cpuexitdata __section(.cpuexit.data)
-#define __cpuexitconst __section(.cpuexit.rodata)
-
-/* Used for MEMORY_HOTPLUG */
-#define __meminit __section(.meminit.text) __cold notrace
-#define __meminitdata __section(.meminit.data)
-#define __meminitconst __section(.meminit.rodata)
-#define __memexit __section(.memexit.text) __exitused __cold notrace
-#define __memexitdata __section(.memexit.data)
-#define __memexitconst __section(.memexit.rodata)
-
-/* For assembly routines */
-#define __HEAD .section ".head.text","ax"
-#define __INIT .section ".init.text","ax"
-#define __FINIT .previous
-
-#define __INITDATA .section ".init.data","aw",%progbits
-#define __INITRODATA .section ".init.rodata","a",%progbits
-#define __FINITDATA .previous
-
-#define __DEVINIT .section ".devinit.text", "ax"
-#define __DEVINITDATA .section ".devinit.data", "aw"
-#define __DEVINITRODATA .section ".devinit.rodata", "a"
-
-#define __CPUINIT .section ".cpuinit.text", "ax"
-#define __CPUINITDATA .section ".cpuinit.data", "aw"
-#define __CPUINITRODATA .section ".cpuinit.rodata", "a"
-
-#define __MEMINIT .section ".meminit.text", "ax"
-#define __MEMINITDATA .section ".meminit.data", "aw"
-#define __MEMINITRODATA .section ".meminit.rodata", "a"
-
-/* silence warnings when references are OK */
-#define __REF .section ".ref.text", "ax"
-#define __REFDATA .section ".ref.data", "aw"
-#define __REFCONST .section ".ref.rodata", "a"
-
-#ifndef __ASSEMBLY__
-/*
- * Used for initialization calls..
- */
-typedef int (*initcall_t)(void);
-typedef void (*exitcall_t)(void);
-
-extern initcall_t __con_initcall_start[], __con_initcall_end[];
-extern initcall_t __security_initcall_start[], __security_initcall_end[];
-
-/* Used for contructor calls. */
-typedef void (*ctor_fn_t)(void);
-
-/* Defined in init/main.c */
-extern int do_one_initcall(initcall_t fn);
-extern char __initdata boot_command_line[];
-extern char *saved_command_line;
-extern unsigned int reset_devices;
-
-/* used by init/main.c */
-void setup_arch(char **);
-void prepare_namespace(void);
-
-extern void (*late_time_init)(void);
-
-extern bool initcall_debug;
-
-#endif
-
-#ifndef MODULE
-
-#ifndef __ASSEMBLY__
-
-/* initcalls are now grouped by functionality into separate
- * subsections. Ordering inside the subsections is determined
- * by link order.
- * For backwards compatibility, initcall() puts the call in
- * the device init subsection.
- *
- * The `id' arg to __define_initcall() is needed so that multiple initcalls
- * can point at the same handler without causing duplicate-symbol build errors.
- */
-
-#define __define_initcall(level,fn,id) \
- static initcall_t __initcall_##fn##id __used \
- __attribute__((__section__(".initcall" level ".init"))) = fn
-
-/*
- * Early initcalls run before initializing SMP.
- *
- * Only for built-in code, not modules.
- */
-#define early_initcall(fn) __define_initcall("early",fn,early)
-
-/*
- * A "pure" initcall has no dependencies on anything else, and purely
- * initializes variables that couldn't be statically initialized.
- *
- * This only exists for built-in code, not for modules.
- */
-#define pure_initcall(fn) __define_initcall("0",fn,0)
-
-#define core_initcall(fn) __define_initcall("1",fn,1)
-#define core_initcall_sync(fn) __define_initcall("1s",fn,1s)
-#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)
-#define arch_initcall_sync(fn) __define_initcall("3s",fn,3s)
-#define subsys_initcall(fn) __define_initcall("4",fn,4)
-#define subsys_initcall_sync(fn) __define_initcall("4s",fn,4s)
-#define fs_initcall(fn) __define_initcall("5",fn,5)
-#define fs_initcall_sync(fn) __define_initcall("5s",fn,5s)
-#define rootfs_initcall(fn) __define_initcall("rootfs",fn,rootfs)
-#define device_initcall(fn) __define_initcall("6",fn,6)
-#define device_initcall_sync(fn) __define_initcall("6s",fn,6s)
-#define late_initcall(fn) __define_initcall("7",fn,7)
-#define late_initcall_sync(fn) __define_initcall("7s",fn,7s)
-
-#define __initcall(fn) device_initcall(fn)
-
-#define __exitcall(fn) \
- static exitcall_t __exitcall_##fn __exit_call = fn
-
-#define console_initcall(fn) \
- static initcall_t __initcall_##fn \
- __used __section(.con_initcall.init) = fn
-
-#define security_initcall(fn) \
- static initcall_t __initcall_##fn \
- __used __section(.security_initcall.init) = fn
-
-struct obs_kernel_param {
- const char *str;
- int (*setup_func)(char *);
- int early;
-};
-
-/*
- * Only for really core code. See moduleparam.h for the normal way.
- *
- * Force the alignment so the compiler doesn't space elements of the
- * obs_kernel_param "array" too far apart in .init.setup.
- */
-#define __setup_param(str, unique_id, fn, early) \
- static const char __setup_str_##unique_id[] __initconst \
- __aligned(1) = str; \
- static struct obs_kernel_param __setup_##unique_id \
- __used __section(.init.setup) \
- __attribute__((aligned((sizeof(long))))) \
- = { __setup_str_##unique_id, fn, early }
-
-#define __setup(str, fn) \
- __setup_param(str, fn, fn, 0)
-
-/* NOTE: fn is as per module_param, not __setup! Emits warning if fn
- * returns non-zero. */
-#define early_param(str, fn) \
- __setup_param(str, fn, fn, 1)
-
-/* Relies on boot_command_line being set */
-void __init parse_early_param(void);
-void __init parse_early_options(char *cmdline);
-#endif /* __ASSEMBLY__ */
-
-/**
- * module_init() - driver initialization entry point
- * @x: function to be run at kernel boot time or module insertion
- *
- * module_init() will either be called during do_initcalls() (if
- * builtin) or at module insertion time (if a module). There can only
- * be one per module.
- */
-#define module_init(x) __initcall(x);
-
-/**
- * module_exit() - driver exit entry point
- * @x: function to be run when driver is removed
- *
- * module_exit() will wrap the driver clean-up code
- * with cleanup_module() when used with rmmod when
- * the driver is a module. If the driver is statically
- * compiled into the kernel, module_exit() has no effect.
- * There can only be one per module.
- */
-#define module_exit(x) __exitcall(x);
-
-#else /* MODULE */
-
-/* Don't use these in modules, but some people do... */
-#define early_initcall(fn) module_init(fn)
-#define core_initcall(fn) module_init(fn)
-#define postcore_initcall(fn) module_init(fn)
-#define arch_initcall(fn) module_init(fn)
-#define subsys_initcall(fn) module_init(fn)
-#define fs_initcall(fn) module_init(fn)
-#define device_initcall(fn) module_init(fn)
-#define late_initcall(fn) module_init(fn)
-
-#define security_initcall(fn) module_init(fn)
-
-/* Each module must use one module_init(). */
-#define module_init(initfn) \
- static inline initcall_t __inittest(void) \
- { return initfn; } \
- int init_module(void) __attribute__((alias(#initfn)));
-
-/* This is only required if you want to be unloadable. */
-#define module_exit(exitfn) \
- static inline exitcall_t __exittest(void) \
- { return exitfn; } \
- void cleanup_module(void) __attribute__((alias(#exitfn)));
-
-#define __setup_param(str, unique_id, fn) /* nothing */
-#define __setup(str, func) /* nothing */
-#endif
-
-/* Data marked not to be saved by software suspend */
-#define __nosavedata __section(.data..nosave)
-
-/* This means "can be init if no module support, otherwise module load
- may call it." */
-#ifdef CONFIG_MODULES
-#define __init_or_module
-#define __initdata_or_module
-#define __initconst_or_module
-#define __INIT_OR_MODULE .text
-#define __INITDATA_OR_MODULE .data
-#define __INITRODATA_OR_MODULE .section ".rodata","a",%progbits
-#else
-#define __init_or_module __init
-#define __initdata_or_module __initdata
-#define __initconst_or_module __initconst
-#define __INIT_OR_MODULE __INIT
-#define __INITDATA_OR_MODULE __INITDATA
-#define __INITRODATA_OR_MODULE __INITRODATA
-#endif /*CONFIG_MODULES*/
-
-/* Functions marked as __devexit may be discarded at kernel link time, depending
- on config options. Newer versions of binutils detect references from
- retained sections to discarded sections and flag an error. Pointers to
- __devexit functions must use __devexit_p(function_name), the wrapper will
- insert either the function_name or NULL, depending on the config options.
- */
-#if defined(MODULE) || defined(CONFIG_HOTPLUG)
-#define __devexit_p(x) x
-#else
-#define __devexit_p(x) NULL
-#endif
-
-#ifdef MODULE
-#define __exit_p(x) x
-#else
-#define __exit_p(x) NULL
-#endif
-
-#endif /* _LINUX_INIT_H */
diff --git a/ANDROID_3.4.5/include/linux/init_ohci1394_dma.h b/ANDROID_3.4.5/include/linux/init_ohci1394_dma.h
deleted file mode 100644
index 3c03a4bb..00000000
--- a/ANDROID_3.4.5/include/linux/init_ohci1394_dma.h
+++ /dev/null
@@ -1,4 +0,0 @@
-#ifdef CONFIG_PROVIDE_OHCI1394_DMA_INIT
-extern int __initdata init_ohci1394_dma_early;
-extern void __init init_ohci1394_dma_on_all_controllers(void);
-#endif
diff --git a/ANDROID_3.4.5/include/linux/init_task.h b/ANDROID_3.4.5/include/linux/init_task.h
deleted file mode 100644
index e4baff5f..00000000
--- a/ANDROID_3.4.5/include/linux/init_task.h
+++ /dev/null
@@ -1,217 +0,0 @@
-#ifndef _LINUX__INIT_TASK_H
-#define _LINUX__INIT_TASK_H
-
-#include <linux/rcupdate.h>
-#include <linux/irqflags.h>
-#include <linux/utsname.h>
-#include <linux/lockdep.h>
-#include <linux/ftrace.h>
-#include <linux/ipc.h>
-#include <linux/pid_namespace.h>
-#include <linux/user_namespace.h>
-#include <linux/securebits.h>
-#include <net/net_namespace.h>
-
-#ifdef CONFIG_SMP
-# define INIT_PUSHABLE_TASKS(tsk) \
- .pushable_tasks = PLIST_NODE_INIT(tsk.pushable_tasks, MAX_PRIO),
-#else
-# define INIT_PUSHABLE_TASKS(tsk)
-#endif
-
-extern struct files_struct init_files;
-extern struct fs_struct init_fs;
-
-#ifdef CONFIG_CGROUPS
-#define INIT_GROUP_RWSEM(sig) \
- .group_rwsem = __RWSEM_INITIALIZER(sig.group_rwsem),
-#else
-#define INIT_GROUP_RWSEM(sig)
-#endif
-
-#ifdef CONFIG_CPUSETS
-#define INIT_CPUSET_SEQ \
- .mems_allowed_seq = SEQCNT_ZERO,
-#else
-#define INIT_CPUSET_SEQ
-#endif
-
-#define INIT_SIGNALS(sig) { \
- .nr_threads = 1, \
- .wait_chldexit = __WAIT_QUEUE_HEAD_INITIALIZER(sig.wait_chldexit),\
- .shared_pending = { \
- .list = LIST_HEAD_INIT(sig.shared_pending.list), \
- .signal = {{0}}}, \
- .posix_timers = LIST_HEAD_INIT(sig.posix_timers), \
- .cpu_timers = INIT_CPU_TIMERS(sig.cpu_timers), \
- .rlim = INIT_RLIMITS, \
- .cputimer = { \
- .cputime = INIT_CPUTIME, \
- .running = 0, \
- .lock = __RAW_SPIN_LOCK_UNLOCKED(sig.cputimer.lock), \
- }, \
- .cred_guard_mutex = \
- __MUTEX_INITIALIZER(sig.cred_guard_mutex), \
- INIT_GROUP_RWSEM(sig) \
-}
-
-extern struct nsproxy init_nsproxy;
-
-#define INIT_SIGHAND(sighand) { \
- .count = ATOMIC_INIT(1), \
- .action = { { { .sa_handler = SIG_DFL, } }, }, \
- .siglock = __SPIN_LOCK_UNLOCKED(sighand.siglock), \
- .signalfd_wqh = __WAIT_QUEUE_HEAD_INITIALIZER(sighand.signalfd_wqh), \
-}
-
-extern struct group_info init_groups;
-
-#define INIT_STRUCT_PID { \
- .count = ATOMIC_INIT(1), \
- .tasks = { \
- { .first = NULL }, \
- { .first = NULL }, \
- { .first = NULL }, \
- }, \
- .level = 0, \
- .numbers = { { \
- .nr = 0, \
- .ns = &init_pid_ns, \
- .pid_chain = { .next = NULL, .pprev = NULL }, \
- }, } \
-}
-
-#define INIT_PID_LINK(type) \
-{ \
- .node = { \
- .next = NULL, \
- .pprev = NULL, \
- }, \
- .pid = &init_struct_pid, \
-}
-
-#ifdef CONFIG_AUDITSYSCALL
-#define INIT_IDS \
- .loginuid = -1, \
- .sessionid = -1,
-#else
-#define INIT_IDS
-#endif
-
-#ifdef CONFIG_RCU_BOOST
-#define INIT_TASK_RCU_BOOST() \
- .rcu_boost_mutex = NULL,
-#else
-#define INIT_TASK_RCU_BOOST()
-#endif
-#ifdef CONFIG_TREE_PREEMPT_RCU
-#define INIT_TASK_RCU_TREE_PREEMPT() \
- .rcu_blocked_node = NULL,
-#else
-#define INIT_TASK_RCU_TREE_PREEMPT(tsk)
-#endif
-#ifdef CONFIG_PREEMPT_RCU
-#define INIT_TASK_RCU_PREEMPT(tsk) \
- .rcu_read_lock_nesting = 0, \
- .rcu_read_unlock_special = 0, \
- .rcu_node_entry = LIST_HEAD_INIT(tsk.rcu_node_entry), \
- INIT_TASK_RCU_TREE_PREEMPT() \
- INIT_TASK_RCU_BOOST()
-#else
-#define INIT_TASK_RCU_PREEMPT(tsk)
-#endif
-
-extern struct cred init_cred;
-
-#ifdef CONFIG_PERF_EVENTS
-# define INIT_PERF_EVENTS(tsk) \
- .perf_event_mutex = \
- __MUTEX_INITIALIZER(tsk.perf_event_mutex), \
- .perf_event_list = LIST_HEAD_INIT(tsk.perf_event_list),
-#else
-# define INIT_PERF_EVENTS(tsk)
-#endif
-
-#define INIT_TASK_COMM "swapper"
-
-/*
- * INIT_TASK is used to set up the first task table, touch at
- * your own risk!. Base=0, limit=0x1fffff (=2MB)
- */
-#define INIT_TASK(tsk) \
-{ \
- .state = 0, \
- .stack = &init_thread_info, \
- .usage = ATOMIC_INIT(2), \
- .flags = PF_KTHREAD, \
- .prio = MAX_PRIO-20, \
- .static_prio = MAX_PRIO-20, \
- .normal_prio = MAX_PRIO-20, \
- .policy = SCHED_NORMAL, \
- .cpus_allowed = CPU_MASK_ALL, \
- .mm = NULL, \
- .active_mm = &init_mm, \
- .se = { \
- .group_node = LIST_HEAD_INIT(tsk.se.group_node), \
- }, \
- .rt = { \
- .run_list = LIST_HEAD_INIT(tsk.rt.run_list), \
- .time_slice = RR_TIMESLICE, \
- .nr_cpus_allowed = NR_CPUS, \
- }, \
- .tasks = LIST_HEAD_INIT(tsk.tasks), \
- INIT_PUSHABLE_TASKS(tsk) \
- .ptraced = LIST_HEAD_INIT(tsk.ptraced), \
- .ptrace_entry = LIST_HEAD_INIT(tsk.ptrace_entry), \
- .real_parent = &tsk, \
- .parent = &tsk, \
- .children = LIST_HEAD_INIT(tsk.children), \
- .sibling = LIST_HEAD_INIT(tsk.sibling), \
- .group_leader = &tsk, \
- RCU_INIT_POINTER(.real_cred, &init_cred), \
- RCU_INIT_POINTER(.cred, &init_cred), \
- .comm = INIT_TASK_COMM, \
- .thread = INIT_THREAD, \
- .fs = &init_fs, \
- .files = &init_files, \
- .signal = &init_signals, \
- .sighand = &init_sighand, \
- .nsproxy = &init_nsproxy, \
- .pending = { \
- .list = LIST_HEAD_INIT(tsk.pending.list), \
- .signal = {{0}}}, \
- .blocked = {{0}}, \
- .alloc_lock = __SPIN_LOCK_UNLOCKED(tsk.alloc_lock), \
- .journal_info = NULL, \
- .cpu_timers = INIT_CPU_TIMERS(tsk.cpu_timers), \
- .pi_lock = __RAW_SPIN_LOCK_UNLOCKED(tsk.pi_lock), \
- .timer_slack_ns = 50000, /* 50 usec default slack */ \
- .pids = { \
- [PIDTYPE_PID] = INIT_PID_LINK(PIDTYPE_PID), \
- [PIDTYPE_PGID] = INIT_PID_LINK(PIDTYPE_PGID), \
- [PIDTYPE_SID] = INIT_PID_LINK(PIDTYPE_SID), \
- }, \
- .thread_group = LIST_HEAD_INIT(tsk.thread_group), \
- INIT_IDS \
- INIT_PERF_EVENTS(tsk) \
- INIT_TRACE_IRQFLAGS \
- INIT_LOCKDEP \
- INIT_FTRACE_GRAPH \
- INIT_TRACE_RECURSION \
- INIT_TASK_RCU_PREEMPT(tsk) \
- INIT_CPUSET_SEQ \
-}
-
-
-#define INIT_CPU_TIMERS(cpu_timers) \
-{ \
- LIST_HEAD_INIT(cpu_timers[0]), \
- LIST_HEAD_INIT(cpu_timers[1]), \
- LIST_HEAD_INIT(cpu_timers[2]), \
-}
-
-/* Attach to the init_task data structure for proper alignment */
-#define __init_task_data __attribute__((__section__(".data..init_task")))
-
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/initrd.h b/ANDROID_3.4.5/include/linux/initrd.h
deleted file mode 100644
index 55289d26..00000000
--- a/ANDROID_3.4.5/include/linux/initrd.h
+++ /dev/null
@@ -1,20 +0,0 @@
-
-#define INITRD_MINOR 250 /* shouldn't collide with /dev/ram* too soon ... */
-
-/* 1 = load ramdisk, 0 = don't load */
-extern int rd_doload;
-
-/* 1 = prompt for ramdisk, 0 = don't prompt */
-extern int rd_prompt;
-
-/* starting block # of image */
-extern int rd_image_start;
-
-/* 1 if it is not an error if initrd_start < memory_start */
-extern int initrd_below_start_ok;
-
-/* free_initrd_mem always gets called with the next two as arguments.. */
-extern unsigned long initrd_start, initrd_end;
-extern void free_initrd_mem(unsigned long, unsigned long);
-
-extern unsigned int real_root_dev;
diff --git a/ANDROID_3.4.5/include/linux/inotify.h b/ANDROID_3.4.5/include/linux/inotify.h
deleted file mode 100644
index d33041e2..00000000
--- a/ANDROID_3.4.5/include/linux/inotify.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Inode based directory notification for Linux
- *
- * Copyright (C) 2005 John McCutchan
- */
-
-#ifndef _LINUX_INOTIFY_H
-#define _LINUX_INOTIFY_H
-
-/* For O_CLOEXEC and O_NONBLOCK */
-#include <linux/fcntl.h>
-#include <linux/types.h>
-
-/*
- * struct inotify_event - structure read from the inotify device for each event
- *
- * When you are watching a directory, you will receive the filename for events
- * such as IN_CREATE, IN_DELETE, IN_OPEN, IN_CLOSE, ..., relative to the wd.
- */
-struct inotify_event {
- __s32 wd; /* watch descriptor */
- __u32 mask; /* watch mask */
- __u32 cookie; /* cookie to synchronize two events */
- __u32 len; /* length (including nulls) of name */
- char name[0]; /* stub for possible name */
-};
-
-/* the following are legal, implemented events that user-space can watch for */
-#define IN_ACCESS 0x00000001 /* File was accessed */
-#define IN_MODIFY 0x00000002 /* File was modified */
-#define IN_ATTRIB 0x00000004 /* Metadata changed */
-#define IN_CLOSE_WRITE 0x00000008 /* Writtable file was closed */
-#define IN_CLOSE_NOWRITE 0x00000010 /* Unwrittable file closed */
-#define IN_OPEN 0x00000020 /* File was opened */
-#define IN_MOVED_FROM 0x00000040 /* File was moved from X */
-#define IN_MOVED_TO 0x00000080 /* File was moved to Y */
-#define IN_CREATE 0x00000100 /* Subfile was created */
-#define IN_DELETE 0x00000200 /* Subfile was deleted */
-#define IN_DELETE_SELF 0x00000400 /* Self was deleted */
-#define IN_MOVE_SELF 0x00000800 /* Self was moved */
-
-/* the following are legal events. they are sent as needed to any watch */
-#define IN_UNMOUNT 0x00002000 /* Backing fs was unmounted */
-#define IN_Q_OVERFLOW 0x00004000 /* Event queued overflowed */
-#define IN_IGNORED 0x00008000 /* File was ignored */
-
-/* helper events */
-#define IN_CLOSE (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE) /* close */
-#define IN_MOVE (IN_MOVED_FROM | IN_MOVED_TO) /* moves */
-
-/* special flags */
-#define IN_ONLYDIR 0x01000000 /* only watch the path if it is a directory */
-#define IN_DONT_FOLLOW 0x02000000 /* don't follow a sym link */
-#define IN_EXCL_UNLINK 0x04000000 /* exclude events on unlinked objects */
-#define IN_MASK_ADD 0x20000000 /* add to the mask of an already existing watch */
-#define IN_ISDIR 0x40000000 /* event occurred against dir */
-#define IN_ONESHOT 0x80000000 /* only send event once */
-
-/*
- * All of the events - we build the list by hand so that we can add flags in
- * the future and not break backward compatibility. Apps will get only the
- * events that they originally wanted. Be sure to add new events here!
- */
-#define IN_ALL_EVENTS (IN_ACCESS | IN_MODIFY | IN_ATTRIB | IN_CLOSE_WRITE | \
- IN_CLOSE_NOWRITE | IN_OPEN | IN_MOVED_FROM | \
- IN_MOVED_TO | IN_DELETE | IN_CREATE | IN_DELETE_SELF | \
- IN_MOVE_SELF)
-
-/* Flags for sys_inotify_init1. */
-#define IN_CLOEXEC O_CLOEXEC
-#define IN_NONBLOCK O_NONBLOCK
-
-#ifdef __KERNEL__
-#include <linux/sysctl.h>
-extern struct ctl_table inotify_table[]; /* for sysctl */
-
-#define ALL_INOTIFY_BITS (IN_ACCESS | IN_MODIFY | IN_ATTRIB | IN_CLOSE_WRITE | \
- IN_CLOSE_NOWRITE | IN_OPEN | IN_MOVED_FROM | \
- IN_MOVED_TO | IN_CREATE | IN_DELETE | \
- IN_DELETE_SELF | IN_MOVE_SELF | IN_UNMOUNT | \
- IN_Q_OVERFLOW | IN_IGNORED | IN_ONLYDIR | \
- IN_DONT_FOLLOW | IN_EXCL_UNLINK | IN_MASK_ADD | \
- IN_ISDIR | IN_ONESHOT)
-
-#endif
-
-#endif /* _LINUX_INOTIFY_H */
diff --git a/ANDROID_3.4.5/include/linux/input-polldev.h b/ANDROID_3.4.5/include/linux/input-polldev.h
deleted file mode 100644
index ce0b7246..00000000
--- a/ANDROID_3.4.5/include/linux/input-polldev.h
+++ /dev/null
@@ -1,58 +0,0 @@
-#ifndef _INPUT_POLLDEV_H
-#define _INPUT_POLLDEV_H
-
-/*
- * Copyright (c) 2007 Dmitry Torokhov
- *
- * 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/input.h>
-#include <linux/workqueue.h>
-
-/**
- * struct input_polled_dev - simple polled input device
- * @private: private driver data.
- * @open: driver-supplied method that prepares device for polling
- * (enabled the device and maybe flushes device state).
- * @close: driver-supplied method that is called when device is no
- * longer being polled. Used to put device into low power mode.
- * @poll: driver-supplied method that polls the device and posts
- * input events (mandatory).
- * @poll_interval: specifies how often the poll() method should be called.
- * Defaults to 500 msec unless overridden when registering the device.
- * @poll_interval_max: specifies upper bound for the poll interval.
- * Defaults to the initial value of @poll_interval.
- * @poll_interval_min: specifies lower bound for the poll interval.
- * Defaults to 0.
- * @input: input device structure associated with the polled device.
- * Must be properly initialized by the driver (id, name, phys, bits).
- *
- * Polled input device provides a skeleton for supporting simple input
- * devices that do not raise interrupts but have to be periodically
- * scanned or polled to detect changes in their state.
- */
-struct input_polled_dev {
- void *private;
-
- void (*open)(struct input_polled_dev *dev);
- void (*close)(struct input_polled_dev *dev);
- void (*poll)(struct input_polled_dev *dev);
- unsigned int poll_interval; /* msec */
- unsigned int poll_interval_max; /* msec */
- unsigned int poll_interval_min; /* msec */
-
- struct input_dev *input;
-
-/* private: */
- struct delayed_work work;
-};
-
-struct input_polled_dev *input_allocate_polled_device(void);
-void input_free_polled_device(struct input_polled_dev *dev);
-int input_register_polled_device(struct input_polled_dev *dev);
-void input_unregister_polled_device(struct input_polled_dev *dev);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/input.h b/ANDROID_3.4.5/include/linux/input.h
deleted file mode 100644
index 49fb20e3..00000000
--- a/ANDROID_3.4.5/include/linux/input.h
+++ /dev/null
@@ -1,1656 +0,0 @@
-#ifndef _INPUT_H
-#define _INPUT_H
-
-/*
- * Copyright (c) 1999-2002 Vojtech Pavlik
- *
- * 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.
- */
-
-#ifdef __KERNEL__
-#include <linux/time.h>
-#include <linux/list.h>
-#else
-#include <sys/time.h>
-#include <sys/ioctl.h>
-#include <sys/types.h>
-#include <linux/types.h>
-#endif
-
-/*
- * The event structure itself
- */
-
-struct input_event {
- struct timeval time;
- __u16 type;
- __u16 code;
- __s32 value;
-};
-
-/*
- * Protocol version.
- */
-
-#define EV_VERSION 0x010001
-
-/*
- * IOCTLs (0x00 - 0x7f)
- */
-
-struct input_id {
- __u16 bustype;
- __u16 vendor;
- __u16 product;
- __u16 version;
-};
-
-/**
- * struct input_absinfo - used by EVIOCGABS/EVIOCSABS ioctls
- * @value: latest reported value for the axis.
- * @minimum: specifies minimum value for the axis.
- * @maximum: specifies maximum value for the axis.
- * @fuzz: specifies fuzz value that is used to filter noise from
- * the event stream.
- * @flat: values that are within this value will be discarded by
- * joydev interface and reported as 0 instead.
- * @resolution: specifies resolution for the values reported for
- * the axis.
- *
- * Note that input core does not clamp reported values to the
- * [minimum, maximum] limits, such task is left to userspace.
- *
- * Resolution for main axes (ABS_X, ABS_Y, ABS_Z) is reported in
- * units per millimeter (units/mm), resolution for rotational axes
- * (ABS_RX, ABS_RY, ABS_RZ) is reported in units per radian.
- */
-struct input_absinfo {
- __s32 value;
- __s32 minimum;
- __s32 maximum;
- __s32 fuzz;
- __s32 flat;
- __s32 resolution;
-};
-
-/**
- * struct input_keymap_entry - used by EVIOCGKEYCODE/EVIOCSKEYCODE ioctls
- * @scancode: scancode represented in machine-endian form.
- * @len: length of the scancode that resides in @scancode buffer.
- * @index: index in the keymap, may be used instead of scancode
- * @flags: allows to specify how kernel should handle the request. For
- * example, setting INPUT_KEYMAP_BY_INDEX flag indicates that kernel
- * should perform lookup in keymap by @index instead of @scancode
- * @keycode: key code assigned to this scancode
- *
- * The structure is used to retrieve and modify keymap data. Users have
- * option of performing lookup either by @scancode itself or by @index
- * in keymap entry. EVIOCGKEYCODE will also return scancode or index
- * (depending on which element was used to perform lookup).
- */
-struct input_keymap_entry {
-#define INPUT_KEYMAP_BY_INDEX (1 << 0)
- __u8 flags;
- __u8 len;
- __u16 index;
- __u32 keycode;
- __u8 scancode[32];
-};
-
-#define EVIOCGVERSION _IOR('E', 0x01, int) /* get driver version */
-#define EVIOCGID _IOR('E', 0x02, struct input_id) /* get device ID */
-#define EVIOCGREP _IOR('E', 0x03, unsigned int[2]) /* get repeat settings */
-#define EVIOCSREP _IOW('E', 0x03, unsigned int[2]) /* set repeat settings */
-
-#define EVIOCGKEYCODE _IOR('E', 0x04, unsigned int[2]) /* get keycode */
-#define EVIOCGKEYCODE_V2 _IOR('E', 0x04, struct input_keymap_entry)
-#define EVIOCSKEYCODE _IOW('E', 0x04, unsigned int[2]) /* set keycode */
-#define EVIOCSKEYCODE_V2 _IOW('E', 0x04, struct input_keymap_entry)
-
-#define EVIOCGNAME(len) _IOC(_IOC_READ, 'E', 0x06, len) /* get device name */
-#define EVIOCGPHYS(len) _IOC(_IOC_READ, 'E', 0x07, len) /* get physical location */
-#define EVIOCGUNIQ(len) _IOC(_IOC_READ, 'E', 0x08, len) /* get unique identifier */
-#define EVIOCGPROP(len) _IOC(_IOC_READ, 'E', 0x09, len) /* get device properties */
-
-/**
- * EVIOCGMTSLOTS(len) - get MT slot values
- *
- * The ioctl buffer argument should be binary equivalent to
- *
- * struct input_mt_request_layout {
- * __u32 code;
- * __s32 values[num_slots];
- * };
- *
- * where num_slots is the (arbitrary) number of MT slots to extract.
- *
- * The ioctl size argument (len) is the size of the buffer, which
- * should satisfy len = (num_slots + 1) * sizeof(__s32). If len is
- * too small to fit all available slots, the first num_slots are
- * returned.
- *
- * Before the call, code is set to the wanted ABS_MT event type. On
- * return, values[] is filled with the slot values for the specified
- * ABS_MT code.
- *
- * If the request code is not an ABS_MT value, -EINVAL is returned.
- */
-#define EVIOCGMTSLOTS(len) _IOC(_IOC_READ, 'E', 0x0a, len)
-
-#define EVIOCGKEY(len) _IOC(_IOC_READ, 'E', 0x18, len) /* get global key state */
-#define EVIOCGLED(len) _IOC(_IOC_READ, 'E', 0x19, len) /* get all LEDs */
-#define EVIOCGSND(len) _IOC(_IOC_READ, 'E', 0x1a, len) /* get all sounds status */
-#define EVIOCGSW(len) _IOC(_IOC_READ, 'E', 0x1b, len) /* get all switch states */
-
-#define EVIOCGBIT(ev,len) _IOC(_IOC_READ, 'E', 0x20 + (ev), len) /* get event bits */
-#define EVIOCGABS(abs) _IOR('E', 0x40 + (abs), struct input_absinfo) /* get abs value/limits */
-#define EVIOCSABS(abs) _IOW('E', 0xc0 + (abs), struct input_absinfo) /* set abs value/limits */
-
-#define EVIOCSFF _IOC(_IOC_WRITE, 'E', 0x80, sizeof(struct ff_effect)) /* send a force effect to a force feedback device */
-#define EVIOCRMFF _IOW('E', 0x81, int) /* Erase a force effect */
-#define EVIOCGEFFECTS _IOR('E', 0x84, int) /* Report number of effects playable at the same time */
-
-#define EVIOCGRAB _IOW('E', 0x90, int) /* Grab/Release device */
-
-#define EVIOCGSUSPENDBLOCK _IOR('E', 0x91, int) /* get suspend block enable */
-#define EVIOCSSUSPENDBLOCK _IOW('E', 0x91, int) /* set suspend block enable */
-
-#define EVIOCSCLOCKID _IOW('E', 0xa0, int) /* Set clockid to be used for timestamps */
-
-/*
- * Device properties and quirks
- */
-
-#define INPUT_PROP_POINTER 0x00 /* needs a pointer */
-#define INPUT_PROP_DIRECT 0x01 /* direct input devices */
-#define INPUT_PROP_BUTTONPAD 0x02 /* has button(s) under pad */
-#define INPUT_PROP_SEMI_MT 0x03 /* touch rectangle only */
-
-#define INPUT_PROP_MAX 0x1f
-#define INPUT_PROP_CNT (INPUT_PROP_MAX + 1)
-
-/*
- * Event types
- */
-
-#define EV_SYN 0x00
-#define EV_KEY 0x01
-#define EV_REL 0x02
-#define EV_ABS 0x03
-#define EV_MSC 0x04
-#define EV_SW 0x05
-#define EV_LED 0x11
-#define EV_SND 0x12
-#define EV_REP 0x14
-#define EV_FF 0x15
-#define EV_PWR 0x16
-#define EV_FF_STATUS 0x17
-#define EV_MAX 0x1f
-#define EV_CNT (EV_MAX+1)
-
-/*
- * Synchronization events.
- */
-
-#define SYN_REPORT 0
-#define SYN_CONFIG 1
-#define SYN_MT_REPORT 2
-#define SYN_DROPPED 3
-
-/*
- * Keys and buttons
- *
- * Most of the keys/buttons are modeled after USB HUT 1.12
- * (see http://www.usb.org/developers/hidpage).
- * Abbreviations in the comments:
- * AC - Application Control
- * AL - Application Launch Button
- * SC - System Control
- */
-
-#define KEY_RESERVED 0
-#define KEY_ESC 1
-#define KEY_1 2
-#define KEY_2 3
-#define KEY_3 4
-#define KEY_4 5
-#define KEY_5 6
-#define KEY_6 7
-#define KEY_7 8
-#define KEY_8 9
-#define KEY_9 10
-#define KEY_0 11
-#define KEY_MINUS 12
-#define KEY_EQUAL 13
-#define KEY_BACKSPACE 14
-#define KEY_TAB 15
-#define KEY_Q 16
-#define KEY_W 17
-#define KEY_E 18
-#define KEY_R 19
-#define KEY_T 20
-#define KEY_Y 21
-#define KEY_U 22
-#define KEY_I 23
-#define KEY_O 24
-#define KEY_P 25
-#define KEY_LEFTBRACE 26
-#define KEY_RIGHTBRACE 27
-#define KEY_ENTER 28
-#define KEY_LEFTCTRL 29
-#define KEY_A 30
-#define KEY_S 31
-#define KEY_D 32
-#define KEY_F 33
-#define KEY_G 34
-#define KEY_H 35
-#define KEY_J 36
-#define KEY_K 37
-#define KEY_L 38
-#define KEY_SEMICOLON 39
-#define KEY_APOSTROPHE 40
-#define KEY_GRAVE 41
-#define KEY_LEFTSHIFT 42
-#define KEY_BACKSLASH 43
-#define KEY_Z 44
-#define KEY_X 45
-#define KEY_C 46
-#define KEY_V 47
-#define KEY_B 48
-#define KEY_N 49
-#define KEY_M 50
-#define KEY_COMMA 51
-#define KEY_DOT 52
-#define KEY_SLASH 53
-#define KEY_RIGHTSHIFT 54
-#define KEY_KPASTERISK 55
-#define KEY_LEFTALT 56
-#define KEY_SPACE 57
-#define KEY_CAPSLOCK 58
-#define KEY_F1 59
-#define KEY_F2 60
-#define KEY_F3 61
-#define KEY_F4 62
-#define KEY_F5 63
-#define KEY_F6 64
-#define KEY_F7 65
-#define KEY_F8 66
-#define KEY_F9 67
-#define KEY_F10 68
-#define KEY_NUMLOCK 69
-#define KEY_SCROLLLOCK 70
-#define KEY_KP7 71
-#define KEY_KP8 72
-#define KEY_KP9 73
-#define KEY_KPMINUS 74
-#define KEY_KP4 75
-#define KEY_KP5 76
-#define KEY_KP6 77
-#define KEY_KPPLUS 78
-#define KEY_KP1 79
-#define KEY_KP2 80
-#define KEY_KP3 81
-#define KEY_KP0 82
-#define KEY_KPDOT 83
-
-#define KEY_ZENKAKUHANKAKU 85
-#define KEY_102ND 86
-#define KEY_F11 87
-#define KEY_F12 88
-#define KEY_RO 89
-#define KEY_KATAKANA 90
-#define KEY_HIRAGANA 91
-#define KEY_HENKAN 92
-#define KEY_KATAKANAHIRAGANA 93
-#define KEY_MUHENKAN 94
-#define KEY_KPJPCOMMA 95
-#define KEY_KPENTER 96
-#define KEY_RIGHTCTRL 97
-#define KEY_KPSLASH 98
-#define KEY_SYSRQ 99
-#define KEY_RIGHTALT 100
-#define KEY_LINEFEED 101
-#define KEY_HOME 102
-#define KEY_UP 103
-#define KEY_PAGEUP 104
-#define KEY_LEFT 105
-#define KEY_RIGHT 106
-#define KEY_END 107
-#define KEY_DOWN 108
-#define KEY_PAGEDOWN 109
-#define KEY_INSERT 110
-#define KEY_DELETE 111
-#define KEY_MACRO 112
-#define KEY_MUTE 113
-#define KEY_VOLUMEDOWN 114
-#define KEY_VOLUMEUP 115
-#define KEY_POWER 116 /* SC System Power Down */
-#define KEY_KPEQUAL 117
-#define KEY_KPPLUSMINUS 118
-#define KEY_PAUSE 119
-#define KEY_SCALE 120 /* AL Compiz Scale (Expose) */
-
-#define KEY_KPCOMMA 121
-#define KEY_HANGEUL 122
-#define KEY_HANGUEL KEY_HANGEUL
-#define KEY_HANJA 123
-#define KEY_YEN 124
-#define KEY_LEFTMETA 125
-#define KEY_RIGHTMETA 126
-#define KEY_COMPOSE 127
-
-#define KEY_STOP 128 /* AC Stop */
-#define KEY_AGAIN 129
-#define KEY_PROPS 130 /* AC Properties */
-#define KEY_UNDO 131 /* AC Undo */
-#define KEY_FRONT 132
-#define KEY_COPY 133 /* AC Copy */
-#define KEY_OPEN 134 /* AC Open */
-#define KEY_PASTE 135 /* AC Paste */
-#define KEY_FIND 136 /* AC Search */
-#define KEY_CUT 137 /* AC Cut */
-#define KEY_HELP 138 /* AL Integrated Help Center */
-#define KEY_MENU 139 /* Menu (show menu) */
-#define KEY_CALC 140 /* AL Calculator */
-#define KEY_SETUP 141
-#define KEY_SLEEP 142 /* SC System Sleep */
-#define KEY_WAKEUP 143 /* System Wake Up */
-#define KEY_FILE 144 /* AL Local Machine Browser */
-#define KEY_SENDFILE 145
-#define KEY_DELETEFILE 146
-#define KEY_XFER 147
-#define KEY_PROG1 148
-#define KEY_PROG2 149
-#define KEY_WWW 150 /* AL Internet Browser */
-#define KEY_MSDOS 151
-#define KEY_COFFEE 152 /* AL Terminal Lock/Screensaver */
-#define KEY_SCREENLOCK KEY_COFFEE
-#define KEY_DIRECTION 153
-#define KEY_CYCLEWINDOWS 154
-#define KEY_MAIL 155
-#define KEY_BOOKMARKS 156 /* AC Bookmarks */
-#define KEY_COMPUTER 157
-#define KEY_BACK 158 /* AC Back */
-#define KEY_FORWARD 159 /* AC Forward */
-#define KEY_CLOSECD 160
-#define KEY_EJECTCD 161
-#define KEY_EJECTCLOSECD 162
-#define KEY_NEXTSONG 163
-#define KEY_PLAYPAUSE 164
-#define KEY_PREVIOUSSONG 165
-#define KEY_STOPCD 166
-#define KEY_RECORD 167
-#define KEY_REWIND 168
-#define KEY_PHONE 169 /* Media Select Telephone */
-#define KEY_ISO 170
-#define KEY_CONFIG 171 /* AL Consumer Control Configuration */
-#define KEY_HOMEPAGE 172 /* AC Home */
-#define KEY_REFRESH 173 /* AC Refresh */
-#define KEY_EXIT 174 /* AC Exit */
-#define KEY_MOVE 175
-#define KEY_EDIT 176
-#define KEY_SCROLLUP 177
-#define KEY_SCROLLDOWN 178
-#define KEY_KPLEFTPAREN 179
-#define KEY_KPRIGHTPAREN 180
-#define KEY_NEW 181 /* AC New */
-#define KEY_REDO 182 /* AC Redo/Repeat */
-
-#define KEY_F13 183
-#define KEY_F14 184
-#define KEY_F15 185
-#define KEY_F16 186
-#define KEY_F17 187
-#define KEY_F18 188
-#define KEY_F19 189
-#define KEY_F20 190
-#define KEY_F21 191
-#define KEY_F22 192
-#define KEY_F23 193
-#define KEY_F24 194
-
-#define KEY_PLAYCD 200
-#define KEY_PAUSECD 201
-#define KEY_PROG3 202
-#define KEY_PROG4 203
-#define KEY_DASHBOARD 204 /* AL Dashboard */
-#define KEY_SUSPEND 205
-#define KEY_CLOSE 206 /* AC Close */
-#define KEY_PLAY 207
-#define KEY_FASTFORWARD 208
-#define KEY_BASSBOOST 209
-#define KEY_PRINT 210 /* AC Print */
-#define KEY_HP 211
-#define KEY_CAMERA 212
-#define KEY_SOUND 213
-#define KEY_QUESTION 214
-#define KEY_EMAIL 215
-#define KEY_CHAT 216
-#define KEY_SEARCH 217
-#define KEY_CONNECT 218
-#define KEY_FINANCE 219 /* AL Checkbook/Finance */
-#define KEY_SPORT 220
-#define KEY_SHOP 221
-#define KEY_ALTERASE 222
-#define KEY_CANCEL 223 /* AC Cancel */
-#define KEY_BRIGHTNESSDOWN 224
-#define KEY_BRIGHTNESSUP 225
-#define KEY_MEDIA 226
-
-#define KEY_SWITCHVIDEOMODE 227 /* Cycle between available video
- outputs (Monitor/LCD/TV-out/etc) */
-#define KEY_KBDILLUMTOGGLE 228
-#define KEY_KBDILLUMDOWN 229
-#define KEY_KBDILLUMUP 230
-
-#define KEY_SEND 231 /* AC Send */
-#define KEY_REPLY 232 /* AC Reply */
-#define KEY_FORWARDMAIL 233 /* AC Forward Msg */
-#define KEY_SAVE 234 /* AC Save */
-#define KEY_DOCUMENTS 235
-
-#define KEY_BATTERY 236
-
-#define KEY_BLUETOOTH 237
-#define KEY_WLAN 238
-#define KEY_UWB 239
-
-#define KEY_UNKNOWN 240
-
-#define KEY_VIDEO_NEXT 241 /* drive next video source */
-#define KEY_VIDEO_PREV 242 /* drive previous video source */
-#define KEY_BRIGHTNESS_CYCLE 243 /* brightness up, after max is min */
-#define KEY_BRIGHTNESS_ZERO 244 /* brightness off, use ambient */
-#define KEY_DISPLAY_OFF 245 /* display device to off state */
-
-#define KEY_WIMAX 246
-#define KEY_RFKILL 247 /* Key that controls all radios */
-
-#define KEY_MICMUTE 248 /* Mute / unmute the microphone */
-
-/* Code 255 is reserved for special needs of AT keyboard driver */
-
-#define BTN_MISC 0x100
-#define BTN_0 0x100
-#define BTN_1 0x101
-#define BTN_2 0x102
-#define BTN_3 0x103
-#define BTN_4 0x104
-#define BTN_5 0x105
-#define BTN_6 0x106
-#define BTN_7 0x107
-#define BTN_8 0x108
-#define BTN_9 0x109
-
-#define BTN_MOUSE 0x110
-#define BTN_LEFT 0x110
-#define BTN_RIGHT 0x111
-#define BTN_MIDDLE 0x112
-#define BTN_SIDE 0x113
-#define BTN_EXTRA 0x114
-#define BTN_FORWARD 0x115
-#define BTN_BACK 0x116
-#define BTN_TASK 0x117
-
-#define BTN_JOYSTICK 0x120
-#define BTN_TRIGGER 0x120
-#define BTN_THUMB 0x121
-#define BTN_THUMB2 0x122
-#define BTN_TOP 0x123
-#define BTN_TOP2 0x124
-#define BTN_PINKIE 0x125
-#define BTN_BASE 0x126
-#define BTN_BASE2 0x127
-#define BTN_BASE3 0x128
-#define BTN_BASE4 0x129
-#define BTN_BASE5 0x12a
-#define BTN_BASE6 0x12b
-#define BTN_DEAD 0x12f
-
-#define BTN_GAMEPAD 0x130
-#define BTN_A 0x130
-#define BTN_B 0x131
-#define BTN_C 0x132
-#define BTN_X 0x133
-#define BTN_Y 0x134
-#define BTN_Z 0x135
-#define BTN_TL 0x136
-#define BTN_TR 0x137
-#define BTN_TL2 0x138
-#define BTN_TR2 0x139
-#define BTN_SELECT 0x13a
-#define BTN_START 0x13b
-#define BTN_MODE 0x13c
-#define BTN_THUMBL 0x13d
-#define BTN_THUMBR 0x13e
-
-#define BTN_DIGI 0x140
-#define BTN_TOOL_PEN 0x140
-#define BTN_TOOL_RUBBER 0x141
-#define BTN_TOOL_BRUSH 0x142
-#define BTN_TOOL_PENCIL 0x143
-#define BTN_TOOL_AIRBRUSH 0x144
-#define BTN_TOOL_FINGER 0x145
-#define BTN_TOOL_MOUSE 0x146
-#define BTN_TOOL_LENS 0x147
-#define BTN_TOOL_QUINTTAP 0x148 /* Five fingers on trackpad */
-#define BTN_TOUCH 0x14a
-#define BTN_STYLUS 0x14b
-#define BTN_STYLUS2 0x14c
-#define BTN_TOOL_DOUBLETAP 0x14d
-#define BTN_TOOL_TRIPLETAP 0x14e
-#define BTN_TOOL_QUADTAP 0x14f /* Four fingers on trackpad */
-
-#define BTN_WHEEL 0x150
-#define BTN_GEAR_DOWN 0x150
-#define BTN_GEAR_UP 0x151
-
-#define KEY_OK 0x160
-#define KEY_SELECT 0x161
-#define KEY_GOTO 0x162
-#define KEY_CLEAR 0x163
-#define KEY_POWER2 0x164
-#define KEY_OPTION 0x165
-#define KEY_INFO 0x166 /* AL OEM Features/Tips/Tutorial */
-#define KEY_TIME 0x167
-#define KEY_VENDOR 0x168
-#define KEY_ARCHIVE 0x169
-#define KEY_PROGRAM 0x16a /* Media Select Program Guide */
-#define KEY_CHANNEL 0x16b
-#define KEY_FAVORITES 0x16c
-#define KEY_EPG 0x16d
-#define KEY_PVR 0x16e /* Media Select Home */
-#define KEY_MHP 0x16f
-#define KEY_LANGUAGE 0x170
-#define KEY_TITLE 0x171
-#define KEY_SUBTITLE 0x172
-#define KEY_ANGLE 0x173
-#define KEY_ZOOM 0x174
-#define KEY_MODE 0x175
-#define KEY_KEYBOARD 0x176
-#define KEY_SCREEN 0x177
-#define KEY_PC 0x178 /* Media Select Computer */
-#define KEY_TV 0x179 /* Media Select TV */
-#define KEY_TV2 0x17a /* Media Select Cable */
-#define KEY_VCR 0x17b /* Media Select VCR */
-#define KEY_VCR2 0x17c /* VCR Plus */
-#define KEY_SAT 0x17d /* Media Select Satellite */
-#define KEY_SAT2 0x17e
-#define KEY_CD 0x17f /* Media Select CD */
-#define KEY_TAPE 0x180 /* Media Select Tape */
-#define KEY_RADIO 0x181
-#define KEY_TUNER 0x182 /* Media Select Tuner */
-#define KEY_PLAYER 0x183
-#define KEY_TEXT 0x184
-#define KEY_DVD 0x185 /* Media Select DVD */
-#define KEY_AUX 0x186
-#define KEY_MP3 0x187
-#define KEY_AUDIO 0x188 /* AL Audio Browser */
-#define KEY_VIDEO 0x189 /* AL Movie Browser */
-#define KEY_DIRECTORY 0x18a
-#define KEY_LIST 0x18b
-#define KEY_MEMO 0x18c /* Media Select Messages */
-#define KEY_CALENDAR 0x18d
-#define KEY_RED 0x18e
-#define KEY_GREEN 0x18f
-#define KEY_YELLOW 0x190
-#define KEY_BLUE 0x191
-#define KEY_CHANNELUP 0x192 /* Channel Increment */
-#define KEY_CHANNELDOWN 0x193 /* Channel Decrement */
-#define KEY_FIRST 0x194
-#define KEY_LAST 0x195 /* Recall Last */
-#define KEY_AB 0x196
-#define KEY_NEXT 0x197
-#define KEY_RESTART 0x198
-#define KEY_SLOW 0x199
-#define KEY_SHUFFLE 0x19a
-#define KEY_BREAK 0x19b
-#define KEY_PREVIOUS 0x19c
-#define KEY_DIGITS 0x19d
-#define KEY_TEEN 0x19e
-#define KEY_TWEN 0x19f
-#define KEY_VIDEOPHONE 0x1a0 /* Media Select Video Phone */
-#define KEY_GAMES 0x1a1 /* Media Select Games */
-#define KEY_ZOOMIN 0x1a2 /* AC Zoom In */
-#define KEY_ZOOMOUT 0x1a3 /* AC Zoom Out */
-#define KEY_ZOOMRESET 0x1a4 /* AC Zoom */
-#define KEY_WORDPROCESSOR 0x1a5 /* AL Word Processor */
-#define KEY_EDITOR 0x1a6 /* AL Text Editor */
-#define KEY_SPREADSHEET 0x1a7 /* AL Spreadsheet */
-#define KEY_GRAPHICSEDITOR 0x1a8 /* AL Graphics Editor */
-#define KEY_PRESENTATION 0x1a9 /* AL Presentation App */
-#define KEY_DATABASE 0x1aa /* AL Database App */
-#define KEY_NEWS 0x1ab /* AL Newsreader */
-#define KEY_VOICEMAIL 0x1ac /* AL Voicemail */
-#define KEY_ADDRESSBOOK 0x1ad /* AL Contacts/Address Book */
-#define KEY_MESSENGER 0x1ae /* AL Instant Messaging */
-#define KEY_DISPLAYTOGGLE 0x1af /* Turn display (LCD) on and off */
-#define KEY_SPELLCHECK 0x1b0 /* AL Spell Check */
-#define KEY_LOGOFF 0x1b1 /* AL Logoff */
-
-#define KEY_DOLLAR 0x1b2
-#define KEY_EURO 0x1b3
-
-#define KEY_FRAMEBACK 0x1b4 /* Consumer - transport controls */
-#define KEY_FRAMEFORWARD 0x1b5
-#define KEY_CONTEXT_MENU 0x1b6 /* GenDesc - system context menu */
-#define KEY_MEDIA_REPEAT 0x1b7 /* Consumer - transport control */
-#define KEY_10CHANNELSUP 0x1b8 /* 10 channels up (10+) */
-#define KEY_10CHANNELSDOWN 0x1b9 /* 10 channels down (10-) */
-#define KEY_IMAGES 0x1ba /* AL Image Browser */
-
-#define KEY_DEL_EOL 0x1c0
-#define KEY_DEL_EOS 0x1c1
-#define KEY_INS_LINE 0x1c2
-#define KEY_DEL_LINE 0x1c3
-
-#define KEY_FN 0x1d0
-#define KEY_FN_ESC 0x1d1
-#define KEY_FN_F1 0x1d2
-#define KEY_FN_F2 0x1d3
-#define KEY_FN_F3 0x1d4
-#define KEY_FN_F4 0x1d5
-#define KEY_FN_F5 0x1d6
-#define KEY_FN_F6 0x1d7
-#define KEY_FN_F7 0x1d8
-#define KEY_FN_F8 0x1d9
-#define KEY_FN_F9 0x1da
-#define KEY_FN_F10 0x1db
-#define KEY_FN_F11 0x1dc
-#define KEY_FN_F12 0x1dd
-#define KEY_FN_1 0x1de
-#define KEY_FN_2 0x1df
-#define KEY_FN_D 0x1e0
-#define KEY_FN_E 0x1e1
-#define KEY_FN_F 0x1e2
-#define KEY_FN_S 0x1e3
-#define KEY_FN_B 0x1e4
-
-#define KEY_BRL_DOT1 0x1f1
-#define KEY_BRL_DOT2 0x1f2
-#define KEY_BRL_DOT3 0x1f3
-#define KEY_BRL_DOT4 0x1f4
-#define KEY_BRL_DOT5 0x1f5
-#define KEY_BRL_DOT6 0x1f6
-#define KEY_BRL_DOT7 0x1f7
-#define KEY_BRL_DOT8 0x1f8
-#define KEY_BRL_DOT9 0x1f9
-#define KEY_BRL_DOT10 0x1fa
-
-#define KEY_NUMERIC_0 0x200 /* used by phones, remote controls, */
-#define KEY_NUMERIC_1 0x201 /* and other keypads */
-#define KEY_NUMERIC_2 0x202
-#define KEY_NUMERIC_3 0x203
-#define KEY_NUMERIC_4 0x204
-#define KEY_NUMERIC_5 0x205
-#define KEY_NUMERIC_6 0x206
-#define KEY_NUMERIC_7 0x207
-#define KEY_NUMERIC_8 0x208
-#define KEY_NUMERIC_9 0x209
-#define KEY_NUMERIC_STAR 0x20a
-#define KEY_NUMERIC_POUND 0x20b
-
-#define KEY_CAMERA_FOCUS 0x210
-#define KEY_WPS_BUTTON 0x211 /* WiFi Protected Setup key */
-
-#define KEY_TOUCHPAD_TOGGLE 0x212 /* Request switch touchpad on or off */
-#define KEY_TOUCHPAD_ON 0x213
-#define KEY_TOUCHPAD_OFF 0x214
-
-#define KEY_CAMERA_ZOOMIN 0x215
-#define KEY_CAMERA_ZOOMOUT 0x216
-#define KEY_CAMERA_UP 0x217
-#define KEY_CAMERA_DOWN 0x218
-#define KEY_CAMERA_LEFT 0x219
-#define KEY_CAMERA_RIGHT 0x21a
-
-#define BTN_TRIGGER_HAPPY 0x2c0
-#define BTN_TRIGGER_HAPPY1 0x2c0
-#define BTN_TRIGGER_HAPPY2 0x2c1
-#define BTN_TRIGGER_HAPPY3 0x2c2
-#define BTN_TRIGGER_HAPPY4 0x2c3
-#define BTN_TRIGGER_HAPPY5 0x2c4
-#define BTN_TRIGGER_HAPPY6 0x2c5
-#define BTN_TRIGGER_HAPPY7 0x2c6
-#define BTN_TRIGGER_HAPPY8 0x2c7
-#define BTN_TRIGGER_HAPPY9 0x2c8
-#define BTN_TRIGGER_HAPPY10 0x2c9
-#define BTN_TRIGGER_HAPPY11 0x2ca
-#define BTN_TRIGGER_HAPPY12 0x2cb
-#define BTN_TRIGGER_HAPPY13 0x2cc
-#define BTN_TRIGGER_HAPPY14 0x2cd
-#define BTN_TRIGGER_HAPPY15 0x2ce
-#define BTN_TRIGGER_HAPPY16 0x2cf
-#define BTN_TRIGGER_HAPPY17 0x2d0
-#define BTN_TRIGGER_HAPPY18 0x2d1
-#define BTN_TRIGGER_HAPPY19 0x2d2
-#define BTN_TRIGGER_HAPPY20 0x2d3
-#define BTN_TRIGGER_HAPPY21 0x2d4
-#define BTN_TRIGGER_HAPPY22 0x2d5
-#define BTN_TRIGGER_HAPPY23 0x2d6
-#define BTN_TRIGGER_HAPPY24 0x2d7
-#define BTN_TRIGGER_HAPPY25 0x2d8
-#define BTN_TRIGGER_HAPPY26 0x2d9
-#define BTN_TRIGGER_HAPPY27 0x2da
-#define BTN_TRIGGER_HAPPY28 0x2db
-#define BTN_TRIGGER_HAPPY29 0x2dc
-#define BTN_TRIGGER_HAPPY30 0x2dd
-#define BTN_TRIGGER_HAPPY31 0x2de
-#define BTN_TRIGGER_HAPPY32 0x2df
-#define BTN_TRIGGER_HAPPY33 0x2e0
-#define BTN_TRIGGER_HAPPY34 0x2e1
-#define BTN_TRIGGER_HAPPY35 0x2e2
-#define BTN_TRIGGER_HAPPY36 0x2e3
-#define BTN_TRIGGER_HAPPY37 0x2e4
-#define BTN_TRIGGER_HAPPY38 0x2e5
-#define BTN_TRIGGER_HAPPY39 0x2e6
-#define BTN_TRIGGER_HAPPY40 0x2e7
-
-/* We avoid low common keys in module aliases so they don't get huge. */
-#define KEY_MIN_INTERESTING KEY_MUTE
-#define KEY_MAX 0x2ff
-#define KEY_CNT (KEY_MAX+1)
-
-/*
- * Relative axes
- */
-
-#define REL_X 0x00
-#define REL_Y 0x01
-#define REL_Z 0x02
-#define REL_RX 0x03
-#define REL_RY 0x04
-#define REL_RZ 0x05
-#define REL_HWHEEL 0x06
-#define REL_DIAL 0x07
-#define REL_WHEEL 0x08
-#define REL_MISC 0x09
-#define REL_MAX 0x0f
-#define REL_CNT (REL_MAX+1)
-
-/*
- * Absolute axes
- */
-
-#define ABS_X 0x00
-#define ABS_Y 0x01
-#define ABS_Z 0x02
-#define ABS_RX 0x03
-#define ABS_RY 0x04
-#define ABS_RZ 0x05
-#define ABS_THROTTLE 0x06
-#define ABS_RUDDER 0x07
-#define ABS_WHEEL 0x08
-#define ABS_GAS 0x09
-#define ABS_BRAKE 0x0a
-#define ABS_HAT0X 0x10
-#define ABS_HAT0Y 0x11
-#define ABS_HAT1X 0x12
-#define ABS_HAT1Y 0x13
-#define ABS_HAT2X 0x14
-#define ABS_HAT2Y 0x15
-#define ABS_HAT3X 0x16
-#define ABS_HAT3Y 0x17
-#define ABS_PRESSURE 0x18
-#define ABS_DISTANCE 0x19
-#define ABS_TILT_X 0x1a
-#define ABS_TILT_Y 0x1b
-#define ABS_TOOL_WIDTH 0x1c
-
-#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 */
-#define ABS_MT_WIDTH_MINOR 0x33 /* Minor axis (omit if circular) */
-#define ABS_MT_ORIENTATION 0x34 /* Ellipse orientation */
-#define ABS_MT_POSITION_X 0x35 /* Center X ellipse position */
-#define ABS_MT_POSITION_Y 0x36 /* Center Y ellipse position */
-#define ABS_MT_TOOL_TYPE 0x37 /* Type of touching device */
-#define ABS_MT_BLOB_ID 0x38 /* Group a set of packets as a blob */
-#define ABS_MT_TRACKING_ID 0x39 /* Unique ID of initiated contact */
-#define ABS_MT_PRESSURE 0x3a /* Pressure on contact area */
-#define ABS_MT_DISTANCE 0x3b /* Contact hover distance */
-
-#ifdef __KERNEL__
-/* Implementation details, userspace should not care about these */
-#define ABS_MT_FIRST ABS_MT_TOUCH_MAJOR
-#define ABS_MT_LAST ABS_MT_DISTANCE
-#endif
-
-#define ABS_MAX 0x3f
-#define ABS_CNT (ABS_MAX+1)
-
-/*
- * Switch events
- */
-
-#define SW_LID 0x00 /* set = lid shut */
-#define SW_TABLET_MODE 0x01 /* set = tablet mode */
-#define SW_HEADPHONE_INSERT 0x02 /* set = inserted */
-#define SW_RFKILL_ALL 0x03 /* rfkill master switch, type "any"
- set = radio enabled */
-#define SW_RADIO SW_RFKILL_ALL /* deprecated */
-#define SW_MICROPHONE_INSERT 0x04 /* set = inserted */
-#define SW_DOCK 0x05 /* set = plugged into dock */
-#define SW_LINEOUT_INSERT 0x06 /* set = inserted */
-#define SW_JACK_PHYSICAL_INSERT 0x07 /* set = mechanical switch set */
-#define SW_VIDEOOUT_INSERT 0x08 /* set = inserted */
-#define SW_CAMERA_LENS_COVER 0x09 /* set = lens covered */
-#define SW_KEYPAD_SLIDE 0x0a /* set = keypad slide out */
-#define SW_FRONT_PROXIMITY 0x0b /* set = front proximity sensor active */
-#define SW_ROTATE_LOCK 0x0c /* set = rotate locked/disabled */
-#define SW_LINEIN_INSERT 0x0d /* set = inserted */
-#define SW_MAX 0x0f
-#define SW_CNT (SW_MAX+1)
-
-/*
- * Misc events
- */
-
-#define MSC_SERIAL 0x00
-#define MSC_PULSELED 0x01
-#define MSC_GESTURE 0x02
-#define MSC_RAW 0x03
-#define MSC_SCAN 0x04
-#define MSC_MAX 0x07
-#define MSC_CNT (MSC_MAX+1)
-
-/*
- * LEDs
- */
-
-#define LED_NUML 0x00
-#define LED_CAPSL 0x01
-#define LED_SCROLLL 0x02
-#define LED_COMPOSE 0x03
-#define LED_KANA 0x04
-#define LED_SLEEP 0x05
-#define LED_SUSPEND 0x06
-#define LED_MUTE 0x07
-#define LED_MISC 0x08
-#define LED_MAIL 0x09
-#define LED_CHARGING 0x0a
-#define LED_MAX 0x0f
-#define LED_CNT (LED_MAX+1)
-
-/*
- * Autorepeat values
- */
-
-#define REP_DELAY 0x00
-#define REP_PERIOD 0x01
-#define REP_MAX 0x01
-#define REP_CNT (REP_MAX+1)
-
-/*
- * Sounds
- */
-
-#define SND_CLICK 0x00
-#define SND_BELL 0x01
-#define SND_TONE 0x02
-#define SND_MAX 0x07
-#define SND_CNT (SND_MAX+1)
-
-/*
- * IDs.
- */
-
-#define ID_BUS 0
-#define ID_VENDOR 1
-#define ID_PRODUCT 2
-#define ID_VERSION 3
-
-#define BUS_PCI 0x01
-#define BUS_ISAPNP 0x02
-#define BUS_USB 0x03
-#define BUS_HIL 0x04
-#define BUS_BLUETOOTH 0x05
-#define BUS_VIRTUAL 0x06
-
-#define BUS_ISA 0x10
-#define BUS_I8042 0x11
-#define BUS_XTKBD 0x12
-#define BUS_RS232 0x13
-#define BUS_GAMEPORT 0x14
-#define BUS_PARPORT 0x15
-#define BUS_AMIGA 0x16
-#define BUS_ADB 0x17
-#define BUS_I2C 0x18
-#define BUS_HOST 0x19
-#define BUS_GSC 0x1A
-#define BUS_ATARI 0x1B
-#define BUS_SPI 0x1C
-
-/*
- * MT_TOOL types
- */
-#define MT_TOOL_FINGER 0
-#define MT_TOOL_PEN 1
-#define MT_TOOL_MAX 1
-
-/*
- * Values describing the status of a force-feedback effect
- */
-#define FF_STATUS_STOPPED 0x00
-#define FF_STATUS_PLAYING 0x01
-#define FF_STATUS_MAX 0x01
-
-/*
- * Structures used in ioctls to upload effects to a device
- * They are pieces of a bigger structure (called ff_effect)
- */
-
-/*
- * All duration values are expressed in ms. Values above 32767 ms (0x7fff)
- * should not be used and have unspecified results.
- */
-
-/**
- * struct ff_replay - defines scheduling of the force-feedback effect
- * @length: duration of the effect
- * @delay: delay before effect should start playing
- */
-struct ff_replay {
- __u16 length;
- __u16 delay;
-};
-
-/**
- * struct ff_trigger - defines what triggers the force-feedback effect
- * @button: number of the button triggering the effect
- * @interval: controls how soon the effect can be re-triggered
- */
-struct ff_trigger {
- __u16 button;
- __u16 interval;
-};
-
-/**
- * struct ff_envelope - generic force-feedback effect envelope
- * @attack_length: duration of the attack (ms)
- * @attack_level: level at the beginning of the attack
- * @fade_length: duration of fade (ms)
- * @fade_level: level at the end of fade
- *
- * The @attack_level and @fade_level are absolute values; when applying
- * envelope force-feedback core will convert to positive/negative
- * value based on polarity of the default level of the effect.
- * Valid range for the attack and fade levels is 0x0000 - 0x7fff
- */
-struct ff_envelope {
- __u16 attack_length;
- __u16 attack_level;
- __u16 fade_length;
- __u16 fade_level;
-};
-
-/**
- * struct ff_constant_effect - defines parameters of a constant force-feedback effect
- * @level: strength of the effect; may be negative
- * @envelope: envelope data
- */
-struct ff_constant_effect {
- __s16 level;
- struct ff_envelope envelope;
-};
-
-/**
- * struct ff_ramp_effect - defines parameters of a ramp force-feedback effect
- * @start_level: beginning strength of the effect; may be negative
- * @end_level: final strength of the effect; may be negative
- * @envelope: envelope data
- */
-struct ff_ramp_effect {
- __s16 start_level;
- __s16 end_level;
- struct ff_envelope envelope;
-};
-
-/**
- * struct ff_condition_effect - defines a spring or friction force-feedback effect
- * @right_saturation: maximum level when joystick moved all way to the right
- * @left_saturation: same for the left side
- * @right_coeff: controls how fast the force grows when the joystick moves
- * to the right
- * @left_coeff: same for the left side
- * @deadband: size of the dead zone, where no force is produced
- * @center: position of the dead zone
- */
-struct ff_condition_effect {
- __u16 right_saturation;
- __u16 left_saturation;
-
- __s16 right_coeff;
- __s16 left_coeff;
-
- __u16 deadband;
- __s16 center;
-};
-
-/**
- * struct ff_periodic_effect - defines parameters of a periodic force-feedback effect
- * @waveform: kind of the effect (wave)
- * @period: period of the wave (ms)
- * @magnitude: peak value
- * @offset: mean value of the wave (roughly)
- * @phase: 'horizontal' shift
- * @envelope: envelope data
- * @custom_len: number of samples (FF_CUSTOM only)
- * @custom_data: buffer of samples (FF_CUSTOM only)
- *
- * Known waveforms - FF_SQUARE, FF_TRIANGLE, FF_SINE, FF_SAW_UP,
- * FF_SAW_DOWN, FF_CUSTOM. The exact syntax FF_CUSTOM is undefined
- * for the time being as no driver supports it yet.
- *
- * Note: the data pointed by custom_data is copied by the driver.
- * You can therefore dispose of the memory after the upload/update.
- */
-struct ff_periodic_effect {
- __u16 waveform;
- __u16 period;
- __s16 magnitude;
- __s16 offset;
- __u16 phase;
-
- struct ff_envelope envelope;
-
- __u32 custom_len;
- __s16 __user *custom_data;
-};
-
-/**
- * struct ff_rumble_effect - defines parameters of a periodic force-feedback effect
- * @strong_magnitude: magnitude of the heavy motor
- * @weak_magnitude: magnitude of the light one
- *
- * Some rumble pads have two motors of different weight. Strong_magnitude
- * represents the magnitude of the vibration generated by the heavy one.
- */
-struct ff_rumble_effect {
- __u16 strong_magnitude;
- __u16 weak_magnitude;
-};
-
-/**
- * struct ff_effect - defines force feedback effect
- * @type: type of the effect (FF_CONSTANT, FF_PERIODIC, FF_RAMP, FF_SPRING,
- * FF_FRICTION, FF_DAMPER, FF_RUMBLE, FF_INERTIA, or FF_CUSTOM)
- * @id: an unique id assigned to an effect
- * @direction: direction of the effect
- * @trigger: trigger conditions (struct ff_trigger)
- * @replay: scheduling of the effect (struct ff_replay)
- * @u: effect-specific structure (one of ff_constant_effect, ff_ramp_effect,
- * ff_periodic_effect, ff_condition_effect, ff_rumble_effect) further
- * defining effect parameters
- *
- * This structure is sent through ioctl from the application to the driver.
- * To create a new effect application should set its @id to -1; the kernel
- * will return assigned @id which can later be used to update or delete
- * this effect.
- *
- * Direction of the effect is encoded as follows:
- * 0 deg -> 0x0000 (down)
- * 90 deg -> 0x4000 (left)
- * 180 deg -> 0x8000 (up)
- * 270 deg -> 0xC000 (right)
- */
-struct ff_effect {
- __u16 type;
- __s16 id;
- __u16 direction;
- struct ff_trigger trigger;
- struct ff_replay replay;
-
- union {
- struct ff_constant_effect constant;
- struct ff_ramp_effect ramp;
- struct ff_periodic_effect periodic;
- struct ff_condition_effect condition[2]; /* One for each axis */
- struct ff_rumble_effect rumble;
- } u;
-};
-
-/*
- * Force feedback effect types
- */
-
-#define FF_RUMBLE 0x50
-#define FF_PERIODIC 0x51
-#define FF_CONSTANT 0x52
-#define FF_SPRING 0x53
-#define FF_FRICTION 0x54
-#define FF_DAMPER 0x55
-#define FF_INERTIA 0x56
-#define FF_RAMP 0x57
-
-#define FF_EFFECT_MIN FF_RUMBLE
-#define FF_EFFECT_MAX FF_RAMP
-
-/*
- * Force feedback periodic effect types
- */
-
-#define FF_SQUARE 0x58
-#define FF_TRIANGLE 0x59
-#define FF_SINE 0x5a
-#define FF_SAW_UP 0x5b
-#define FF_SAW_DOWN 0x5c
-#define FF_CUSTOM 0x5d
-
-#define FF_WAVEFORM_MIN FF_SQUARE
-#define FF_WAVEFORM_MAX FF_CUSTOM
-
-/*
- * Set ff device properties
- */
-
-#define FF_GAIN 0x60
-#define FF_AUTOCENTER 0x61
-
-#define FF_MAX 0x7f
-#define FF_CNT (FF_MAX+1)
-
-#ifdef __KERNEL__
-
-/*
- * In-kernel definitions.
- */
-
-#include <linux/device.h>
-#include <linux/fs.h>
-#include <linux/timer.h>
-#include <linux/mod_devicetable.h>
-
-/**
- * struct input_dev - represents an input device
- * @name: name of the device
- * @phys: physical path to the device in the system hierarchy
- * @uniq: unique identification code for the device (if device has it)
- * @id: id of the device (struct input_id)
- * @propbit: bitmap of device properties and quirks
- * @evbit: bitmap of types of events supported by the device (EV_KEY,
- * EV_REL, etc.)
- * @keybit: bitmap of keys/buttons this device has
- * @relbit: bitmap of relative axes for the device
- * @absbit: bitmap of absolute axes for the device
- * @mscbit: bitmap of miscellaneous events supported by the device
- * @ledbit: bitmap of leds present on the device
- * @sndbit: bitmap of sound effects supported by the device
- * @ffbit: bitmap of force feedback effects supported by the device
- * @swbit: bitmap of switches present on the device
- * @hint_events_per_packet: average number of events generated by the
- * device in a packet (between EV_SYN/SYN_REPORT events). Used by
- * event handlers to estimate size of the buffer needed to hold
- * events.
- * @keycodemax: size of keycode table
- * @keycodesize: size of elements in keycode table
- * @keycode: map of scancodes to keycodes for this device
- * @getkeycode: optional legacy method to retrieve current keymap.
- * @setkeycode: optional method to alter current keymap, used to implement
- * sparse keymaps. If not supplied default mechanism will be used.
- * The method is being called while holding event_lock and thus must
- * not sleep
- * @ff: force feedback structure associated with the device if device
- * supports force feedback effects
- * @repeat_key: stores key code of the last key pressed; used to implement
- * software autorepeat
- * @timer: timer for software autorepeat
- * @rep: current values for autorepeat parameters (delay, rate)
- * @mt: pointer to array of struct input_mt_slot holding current values
- * of tracked contacts
- * @mtsize: number of MT slots the device uses
- * @slot: MT slot currently being transmitted
- * @trkid: stores MT tracking ID for the current contact
- * @absinfo: array of &struct input_absinfo elements holding information
- * about absolute axes (current value, min, max, flat, fuzz,
- * resolution)
- * @key: reflects current state of device's keys/buttons
- * @led: reflects current state of device's LEDs
- * @snd: reflects current state of sound effects
- * @sw: reflects current state of device's switches
- * @open: this method is called when the very first user calls
- * input_open_device(). The driver must prepare the device
- * to start generating events (start polling thread,
- * request an IRQ, submit URB, etc.)
- * @close: this method is called when the very last user calls
- * input_close_device().
- * @flush: purges the device. Most commonly used to get rid of force
- * feedback effects loaded into the device when disconnecting
- * from it
- * @event: event handler for events sent _to_ the device, like EV_LED
- * or EV_SND. The device is expected to carry out the requested
- * action (turn on a LED, play sound, etc.) The call is protected
- * by @event_lock and must not sleep
- * @grab: input handle that currently has the device grabbed (via
- * EVIOCGRAB ioctl). When a handle grabs a device it becomes sole
- * recipient for all input events coming from the device
- * @event_lock: this spinlock is is taken when input core receives
- * and processes a new event for the device (in input_event()).
- * Code that accesses and/or modifies parameters of a device
- * (such as keymap or absmin, absmax, absfuzz, etc.) after device
- * has been registered with input core must take this lock.
- * @mutex: serializes calls to open(), close() and flush() methods
- * @users: stores number of users (input handlers) that opened this
- * device. It is used by input_open_device() and input_close_device()
- * to make sure that dev->open() is only called when the first
- * user opens device and dev->close() is called when the very
- * last user closes the device
- * @going_away: marks devices that are in a middle of unregistering and
- * causes input_open_device*() fail with -ENODEV.
- * @sync: set to %true when there were no new events since last EV_SYN
- * @dev: driver model's view of this device
- * @h_list: list of input handles associated with the device. When
- * accessing the list dev->mutex must be held
- * @node: used to place the device onto input_dev_list
- */
-struct input_dev {
- const char *name;
- const char *phys;
- const char *uniq;
- struct input_id id;
-
- unsigned long propbit[BITS_TO_LONGS(INPUT_PROP_CNT)];
-
- unsigned long evbit[BITS_TO_LONGS(EV_CNT)];
- unsigned long keybit[BITS_TO_LONGS(KEY_CNT)];
- unsigned long relbit[BITS_TO_LONGS(REL_CNT)];
- unsigned long absbit[BITS_TO_LONGS(ABS_CNT)];
- unsigned long mscbit[BITS_TO_LONGS(MSC_CNT)];
- unsigned long ledbit[BITS_TO_LONGS(LED_CNT)];
- unsigned long sndbit[BITS_TO_LONGS(SND_CNT)];
- 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;
-
- int (*setkeycode)(struct input_dev *dev,
- const struct input_keymap_entry *ke,
- unsigned int *old_keycode);
- int (*getkeycode)(struct input_dev *dev,
- struct input_keymap_entry *ke);
-
- struct ff_device *ff;
-
- unsigned int repeat_key;
- struct timer_list timer;
-
- int rep[REP_CNT];
-
- struct input_mt_slot *mt;
- int mtsize;
- int slot;
- int trkid;
-
- struct input_absinfo *absinfo;
-
- unsigned long key[BITS_TO_LONGS(KEY_CNT)];
- unsigned long led[BITS_TO_LONGS(LED_CNT)];
- unsigned long snd[BITS_TO_LONGS(SND_CNT)];
- unsigned long sw[BITS_TO_LONGS(SW_CNT)];
-
- int (*open)(struct input_dev *dev);
- void (*close)(struct input_dev *dev);
- int (*flush)(struct input_dev *dev, struct file *file);
- int (*event)(struct input_dev *dev, unsigned int type, unsigned int code, int value);
-
- struct input_handle __rcu *grab;
-
- spinlock_t event_lock;
- struct mutex mutex;
-
- unsigned int users;
- bool going_away;
-
- bool sync;
-
- struct device dev;
-
- struct list_head h_list;
- struct list_head node;
-};
-#define to_input_dev(d) container_of(d, struct input_dev, dev)
-
-/*
- * Verify that we are in sync with input_device_id mod_devicetable.h #defines
- */
-
-#if EV_MAX != INPUT_DEVICE_ID_EV_MAX
-#error "EV_MAX and INPUT_DEVICE_ID_EV_MAX do not match"
-#endif
-
-#if KEY_MIN_INTERESTING != INPUT_DEVICE_ID_KEY_MIN_INTERESTING
-#error "KEY_MIN_INTERESTING and INPUT_DEVICE_ID_KEY_MIN_INTERESTING do not match"
-#endif
-
-#if KEY_MAX != INPUT_DEVICE_ID_KEY_MAX
-#error "KEY_MAX and INPUT_DEVICE_ID_KEY_MAX do not match"
-#endif
-
-#if REL_MAX != INPUT_DEVICE_ID_REL_MAX
-#error "REL_MAX and INPUT_DEVICE_ID_REL_MAX do not match"
-#endif
-
-#if ABS_MAX != INPUT_DEVICE_ID_ABS_MAX
-#error "ABS_MAX and INPUT_DEVICE_ID_ABS_MAX do not match"
-#endif
-
-#if MSC_MAX != INPUT_DEVICE_ID_MSC_MAX
-#error "MSC_MAX and INPUT_DEVICE_ID_MSC_MAX do not match"
-#endif
-
-#if LED_MAX != INPUT_DEVICE_ID_LED_MAX
-#error "LED_MAX and INPUT_DEVICE_ID_LED_MAX do not match"
-#endif
-
-#if SND_MAX != INPUT_DEVICE_ID_SND_MAX
-#error "SND_MAX and INPUT_DEVICE_ID_SND_MAX do not match"
-#endif
-
-#if FF_MAX != INPUT_DEVICE_ID_FF_MAX
-#error "FF_MAX and INPUT_DEVICE_ID_FF_MAX do not match"
-#endif
-
-#if SW_MAX != INPUT_DEVICE_ID_SW_MAX
-#error "SW_MAX and INPUT_DEVICE_ID_SW_MAX do not match"
-#endif
-
-#define INPUT_DEVICE_ID_MATCH_DEVICE \
- (INPUT_DEVICE_ID_MATCH_BUS | INPUT_DEVICE_ID_MATCH_VENDOR | INPUT_DEVICE_ID_MATCH_PRODUCT)
-#define INPUT_DEVICE_ID_MATCH_DEVICE_AND_VERSION \
- (INPUT_DEVICE_ID_MATCH_DEVICE | INPUT_DEVICE_ID_MATCH_VERSION)
-
-struct input_handle;
-
-/**
- * struct input_handler - implements one of interfaces for input devices
- * @private: driver-specific data
- * @event: event handler. This method is being called by input core with
- * interrupts disabled and dev->event_lock spinlock held and so
- * it may not sleep
- * @filter: similar to @event; separates normal event handlers from
- * "filters".
- * @match: called after comparing device's id with handler's id_table
- * to perform fine-grained matching between device and handler
- * @connect: called when attaching a handler to an input device
- * @disconnect: disconnects a handler from input device
- * @start: starts handler for given handle. This function is called by
- * input core right after connect() method and also when a process
- * that "grabbed" a device releases it
- * @fops: file operations this driver implements
- * @minor: beginning of range of 32 minors for devices this driver
- * can provide
- * @name: name of the handler, to be shown in /proc/bus/input/handlers
- * @id_table: pointer to a table of input_device_ids this driver can
- * handle
- * @h_list: list of input handles associated with the handler
- * @node: for placing the driver onto input_handler_list
- *
- * Input handlers attach to input devices and create input handles. There
- * are likely several handlers attached to any given input device at the
- * same time. All of them will get their copy of input event generated by
- * the device.
- *
- * The very same structure is used to implement input filters. Input core
- * allows filters to run first and will not pass event to regular handlers
- * if any of the filters indicate that the event should be filtered (by
- * returning %true from their filter() method).
- *
- * Note that input core serializes calls to connect() and disconnect()
- * methods.
- */
-struct input_handler {
-
- void *private;
-
- void (*event)(struct input_handle *handle, unsigned int type, unsigned int code, int value);
- bool (*filter)(struct input_handle *handle, unsigned int type, unsigned int code, int value);
- bool (*match)(struct input_handler *handler, struct input_dev *dev);
- int (*connect)(struct input_handler *handler, struct input_dev *dev, const struct input_device_id *id);
- void (*disconnect)(struct input_handle *handle);
- void (*start)(struct input_handle *handle);
-
- const struct file_operations *fops;
- int minor;
- const char *name;
-
- const struct input_device_id *id_table;
-
- struct list_head h_list;
- struct list_head node;
-};
-
-/**
- * struct input_handle - links input device with an input handler
- * @private: handler-specific data
- * @open: counter showing whether the handle is 'open', i.e. should deliver
- * events from its device
- * @name: name given to the handle by handler that created it
- * @dev: input device the handle is attached to
- * @handler: handler that works with the device through this handle
- * @d_node: used to put the handle on device's list of attached handles
- * @h_node: used to put the handle on handler's list of handles from which
- * it gets events
- */
-struct input_handle {
-
- void *private;
-
- int open;
- const char *name;
-
- struct input_dev *dev;
- struct input_handler *handler;
-
- struct list_head d_node;
- struct list_head h_node;
-};
-
-struct input_dev *input_allocate_device(void);
-void input_free_device(struct input_dev *dev);
-
-static inline struct input_dev *input_get_device(struct input_dev *dev)
-{
- return dev ? to_input_dev(get_device(&dev->dev)) : NULL;
-}
-
-static inline void input_put_device(struct input_dev *dev)
-{
- if (dev)
- put_device(&dev->dev);
-}
-
-static inline void *input_get_drvdata(struct input_dev *dev)
-{
- return dev_get_drvdata(&dev->dev);
-}
-
-static inline void input_set_drvdata(struct input_dev *dev, void *data)
-{
- dev_set_drvdata(&dev->dev, data);
-}
-
-int __must_check input_register_device(struct input_dev *);
-void input_unregister_device(struct input_dev *);
-
-void input_reset_device(struct input_dev *);
-
-int __must_check input_register_handler(struct input_handler *);
-void input_unregister_handler(struct input_handler *);
-
-int input_handler_for_each_handle(struct input_handler *, void *data,
- int (*fn)(struct input_handle *, void *));
-
-int input_register_handle(struct input_handle *);
-void input_unregister_handle(struct input_handle *);
-
-int input_grab_device(struct input_handle *);
-void input_release_device(struct input_handle *);
-
-int input_open_device(struct input_handle *);
-void input_close_device(struct input_handle *);
-
-int input_flush_device(struct input_handle *handle, struct file *file);
-
-void input_event(struct input_dev *dev, unsigned int type, unsigned int code, int value);
-void input_inject_event(struct input_handle *handle, unsigned int type, unsigned int code, int value);
-
-static inline void input_report_key(struct input_dev *dev, unsigned int code, int value)
-{
- input_event(dev, EV_KEY, code, !!value);
-}
-
-static inline void input_report_rel(struct input_dev *dev, unsigned int code, int value)
-{
- input_event(dev, EV_REL, code, value);
-}
-
-static inline void input_report_abs(struct input_dev *dev, unsigned int code, int value)
-{
- input_event(dev, EV_ABS, code, value);
-}
-
-static inline void input_report_ff_status(struct input_dev *dev, unsigned int code, int value)
-{
- input_event(dev, EV_FF_STATUS, code, value);
-}
-
-static inline void input_report_switch(struct input_dev *dev, unsigned int code, int value)
-{
- input_event(dev, EV_SW, code, !!value);
-}
-
-static inline void input_sync(struct input_dev *dev)
-{
- input_event(dev, EV_SYN, SYN_REPORT, 0);
-}
-
-static inline void input_mt_sync(struct input_dev *dev)
-{
- input_event(dev, EV_SYN, SYN_MT_REPORT, 0);
-}
-
-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
- * @n_events: 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 appropriate 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 n_events)
-{
- dev->hint_events_per_packet = n_events;
-}
-
-void input_alloc_absinfo(struct input_dev *dev);
-void input_set_abs_params(struct input_dev *dev, unsigned int axis,
- int min, int max, int fuzz, int flat);
-
-#define INPUT_GENERATE_ABS_ACCESSORS(_suffix, _item) \
-static inline int input_abs_get_##_suffix(struct input_dev *dev, \
- unsigned int axis) \
-{ \
- return dev->absinfo ? dev->absinfo[axis]._item : 0; \
-} \
- \
-static inline void input_abs_set_##_suffix(struct input_dev *dev, \
- unsigned int axis, int val) \
-{ \
- input_alloc_absinfo(dev); \
- if (dev->absinfo) \
- dev->absinfo[axis]._item = val; \
-}
-
-INPUT_GENERATE_ABS_ACCESSORS(val, value)
-INPUT_GENERATE_ABS_ACCESSORS(min, minimum)
-INPUT_GENERATE_ABS_ACCESSORS(max, maximum)
-INPUT_GENERATE_ABS_ACCESSORS(fuzz, fuzz)
-INPUT_GENERATE_ABS_ACCESSORS(flat, flat)
-INPUT_GENERATE_ABS_ACCESSORS(res, resolution)
-
-int input_scancode_to_scalar(const struct input_keymap_entry *ke,
- unsigned int *scancode);
-
-int input_get_keycode(struct input_dev *dev, struct input_keymap_entry *ke);
-int input_set_keycode(struct input_dev *dev,
- const struct input_keymap_entry *ke);
-
-extern struct class input_class;
-
-/**
- * struct ff_device - force-feedback part of an input device
- * @upload: Called to upload an new effect into device
- * @erase: Called to erase an effect from device
- * @playback: Called to request device to start playing specified effect
- * @set_gain: Called to set specified gain
- * @set_autocenter: Called to auto-center device
- * @destroy: called by input core when parent input device is being
- * destroyed
- * @private: driver-specific data, will be freed automatically
- * @ffbit: bitmap of force feedback capabilities truly supported by
- * device (not emulated like ones in input_dev->ffbit)
- * @mutex: mutex for serializing access to the device
- * @max_effects: maximum number of effects supported by device
- * @effects: pointer to an array of effects currently loaded into device
- * @effect_owners: array of effect owners; when file handle owning
- * an effect gets closed the effect is automatically erased
- *
- * Every force-feedback device must implement upload() and playback()
- * methods; erase() is optional. set_gain() and set_autocenter() need
- * only be implemented if driver sets up FF_GAIN and FF_AUTOCENTER
- * bits.
- *
- * Note that playback(), set_gain() and set_autocenter() are called with
- * dev->event_lock spinlock held and interrupts off and thus may not
- * sleep.
- */
-struct ff_device {
- int (*upload)(struct input_dev *dev, struct ff_effect *effect,
- struct ff_effect *old);
- int (*erase)(struct input_dev *dev, int effect_id);
-
- int (*playback)(struct input_dev *dev, int effect_id, int value);
- void (*set_gain)(struct input_dev *dev, u16 gain);
- void (*set_autocenter)(struct input_dev *dev, u16 magnitude);
-
- void (*destroy)(struct ff_device *);
-
- void *private;
-
- unsigned long ffbit[BITS_TO_LONGS(FF_CNT)];
-
- struct mutex mutex;
-
- int max_effects;
- struct ff_effect *effects;
- struct file *effect_owners[];
-};
-
-int input_ff_create(struct input_dev *dev, unsigned int max_effects);
-void input_ff_destroy(struct input_dev *dev);
-
-int input_ff_event(struct input_dev *dev, unsigned int type, unsigned int code, int value);
-
-int input_ff_upload(struct input_dev *dev, struct ff_effect *effect, struct file *file);
-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 *));
-
-#endif
-#endif
diff --git a/ANDROID_3.4.5/include/linux/input/ad714x.h b/ANDROID_3.4.5/include/linux/input/ad714x.h
deleted file mode 100644
index d388d857..00000000
--- a/ANDROID_3.4.5/include/linux/input/ad714x.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * include/linux/input/ad714x.h
- *
- * AD714x is very flexible, it can be used as buttons, scrollwheel,
- * slider, touchpad at the same time. That depends on the boards.
- * The platform_data for the device's "struct device" holds this
- * information.
- *
- * Copyright 2009-2011 Analog Devices Inc.
- *
- * Licensed under the GPL-2 or later.
- */
-
-#ifndef __LINUX_INPUT_AD714X_H__
-#define __LINUX_INPUT_AD714X_H__
-
-#define STAGE_NUM 12
-#define STAGE_CFGREG_NUM 8
-#define SYS_CFGREG_NUM 8
-
-/* board information which need be initialized in arch/mach... */
-struct ad714x_slider_plat {
- int start_stage;
- int end_stage;
- int max_coord;
-};
-
-struct ad714x_wheel_plat {
- int start_stage;
- int end_stage;
- int max_coord;
-};
-
-struct ad714x_touchpad_plat {
- int x_start_stage;
- int x_end_stage;
- int x_max_coord;
-
- int y_start_stage;
- int y_end_stage;
- int y_max_coord;
-};
-
-struct ad714x_button_plat {
- int keycode;
- unsigned short l_mask;
- unsigned short h_mask;
-};
-
-struct ad714x_platform_data {
- int slider_num;
- int wheel_num;
- int touchpad_num;
- int button_num;
- struct ad714x_slider_plat *slider;
- struct ad714x_wheel_plat *wheel;
- struct ad714x_touchpad_plat *touchpad;
- struct ad714x_button_plat *button;
- unsigned short stage_cfg_reg[STAGE_NUM][STAGE_CFGREG_NUM];
- unsigned short sys_cfg_reg[SYS_CFGREG_NUM];
- unsigned long irqflags;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/input/adp5589.h b/ANDROID_3.4.5/include/linux/input/adp5589.h
deleted file mode 100644
index 1a05eee1..00000000
--- a/ANDROID_3.4.5/include/linux/input/adp5589.h
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- * Analog Devices ADP5589/ADP5585 I/O Expander and QWERTY Keypad Controller
- *
- * Copyright 2010-2011 Analog Devices Inc.
- *
- * Licensed under the GPL-2.
- */
-
-#ifndef _ADP5589_H
-#define _ADP5589_H
-
-/*
- * ADP5589 specific GPI and Keymap defines
- */
-
-#define ADP5589_KEYMAPSIZE 88
-
-#define ADP5589_GPI_PIN_ROW0 97
-#define ADP5589_GPI_PIN_ROW1 98
-#define ADP5589_GPI_PIN_ROW2 99
-#define ADP5589_GPI_PIN_ROW3 100
-#define ADP5589_GPI_PIN_ROW4 101
-#define ADP5589_GPI_PIN_ROW5 102
-#define ADP5589_GPI_PIN_ROW6 103
-#define ADP5589_GPI_PIN_ROW7 104
-#define ADP5589_GPI_PIN_COL0 105
-#define ADP5589_GPI_PIN_COL1 106
-#define ADP5589_GPI_PIN_COL2 107
-#define ADP5589_GPI_PIN_COL3 108
-#define ADP5589_GPI_PIN_COL4 109
-#define ADP5589_GPI_PIN_COL5 110
-#define ADP5589_GPI_PIN_COL6 111
-#define ADP5589_GPI_PIN_COL7 112
-#define ADP5589_GPI_PIN_COL8 113
-#define ADP5589_GPI_PIN_COL9 114
-#define ADP5589_GPI_PIN_COL10 115
-#define GPI_LOGIC1 116
-#define GPI_LOGIC2 117
-
-#define ADP5589_GPI_PIN_ROW_BASE ADP5589_GPI_PIN_ROW0
-#define ADP5589_GPI_PIN_ROW_END ADP5589_GPI_PIN_ROW7
-#define ADP5589_GPI_PIN_COL_BASE ADP5589_GPI_PIN_COL0
-#define ADP5589_GPI_PIN_COL_END ADP5589_GPI_PIN_COL10
-
-#define ADP5589_GPI_PIN_BASE ADP5589_GPI_PIN_ROW_BASE
-#define ADP5589_GPI_PIN_END ADP5589_GPI_PIN_COL_END
-
-#define ADP5589_GPIMAPSIZE_MAX (ADP5589_GPI_PIN_END - ADP5589_GPI_PIN_BASE + 1)
-
-/*
- * ADP5585 specific GPI and Keymap defines
- */
-
-#define ADP5585_KEYMAPSIZE 30
-
-#define ADP5585_GPI_PIN_ROW0 37
-#define ADP5585_GPI_PIN_ROW1 38
-#define ADP5585_GPI_PIN_ROW2 39
-#define ADP5585_GPI_PIN_ROW3 40
-#define ADP5585_GPI_PIN_ROW4 41
-#define ADP5585_GPI_PIN_ROW5 42
-#define ADP5585_GPI_PIN_COL0 43
-#define ADP5585_GPI_PIN_COL1 44
-#define ADP5585_GPI_PIN_COL2 45
-#define ADP5585_GPI_PIN_COL3 46
-#define ADP5585_GPI_PIN_COL4 47
-#define GPI_LOGIC 48
-
-#define ADP5585_GPI_PIN_ROW_BASE ADP5585_GPI_PIN_ROW0
-#define ADP5585_GPI_PIN_ROW_END ADP5585_GPI_PIN_ROW5
-#define ADP5585_GPI_PIN_COL_BASE ADP5585_GPI_PIN_COL0
-#define ADP5585_GPI_PIN_COL_END ADP5585_GPI_PIN_COL4
-
-#define ADP5585_GPI_PIN_BASE ADP5585_GPI_PIN_ROW_BASE
-#define ADP5585_GPI_PIN_END ADP5585_GPI_PIN_COL_END
-
-#define ADP5585_GPIMAPSIZE_MAX (ADP5585_GPI_PIN_END - ADP5585_GPI_PIN_BASE + 1)
-
-struct adp5589_gpi_map {
- unsigned short pin;
- unsigned short sw_evt;
-};
-
-/* scan_cycle_time */
-#define ADP5589_SCAN_CYCLE_10ms 0
-#define ADP5589_SCAN_CYCLE_20ms 1
-#define ADP5589_SCAN_CYCLE_30ms 2
-#define ADP5589_SCAN_CYCLE_40ms 3
-
-/* RESET_CFG */
-#define RESET_PULSE_WIDTH_500us 0
-#define RESET_PULSE_WIDTH_1ms 1
-#define RESET_PULSE_WIDTH_2ms 2
-#define RESET_PULSE_WIDTH_10ms 3
-
-#define RESET_TRIG_TIME_0ms (0 << 2)
-#define RESET_TRIG_TIME_1000ms (1 << 2)
-#define RESET_TRIG_TIME_1500ms (2 << 2)
-#define RESET_TRIG_TIME_2000ms (3 << 2)
-#define RESET_TRIG_TIME_2500ms (4 << 2)
-#define RESET_TRIG_TIME_3000ms (5 << 2)
-#define RESET_TRIG_TIME_3500ms (6 << 2)
-#define RESET_TRIG_TIME_4000ms (7 << 2)
-
-#define RESET_PASSTHRU_EN (1 << 5)
-#define RESET1_POL_HIGH (1 << 6)
-#define RESET1_POL_LOW (0 << 6)
-#define RESET2_POL_HIGH (1 << 7)
-#define RESET2_POL_LOW (0 << 7)
-
-/* ADP5589 Mask Bits:
- * C C C C C C C C C C C | R R R R R R R R
- * 1 9 8 7 6 5 4 3 2 1 0 | 7 6 5 4 3 2 1 0
- * 0
- * ---------------- BIT ------------------
- * 1 1 1 1 1 1 1 1 1 0 0 | 0 0 0 0 0 0 0 0
- * 8 7 6 5 4 3 2 1 0 9 8 | 7 6 5 4 3 2 1 0
- */
-
-#define ADP_ROW(x) (1 << (x))
-#define ADP_COL(x) (1 << (x + 8))
-#define ADP5589_ROW_MASK 0xFF
-#define ADP5589_COL_MASK 0xFF
-#define ADP5589_COL_SHIFT 8
-#define ADP5589_MAX_ROW_NUM 7
-#define ADP5589_MAX_COL_NUM 10
-
-/* ADP5585 Mask Bits:
- * C C C C C | R R R R R R
- * 4 3 2 1 0 | 5 4 3 2 1 0
- *
- * ---- BIT -- -----------
- * 1 0 0 0 0 | 0 0 0 0 0 0
- * 0 9 8 7 6 | 5 4 3 2 1 0
- */
-
-#define ADP5585_ROW_MASK 0x3F
-#define ADP5585_COL_MASK 0x1F
-#define ADP5585_ROW_SHIFT 0
-#define ADP5585_COL_SHIFT 6
-#define ADP5585_MAX_ROW_NUM 5
-#define ADP5585_MAX_COL_NUM 4
-
-#define ADP5585_ROW(x) (1 << ((x) & ADP5585_ROW_MASK))
-#define ADP5585_COL(x) (1 << (((x) & ADP5585_COL_MASK) + ADP5585_COL_SHIFT))
-
-/* Put one of these structures in i2c_board_info platform_data */
-
-struct adp5589_kpad_platform_data {
- unsigned keypad_en_mask; /* Keypad (Rows/Columns) enable mask */
- const unsigned short *keymap; /* Pointer to keymap */
- unsigned short keymapsize; /* Keymap size */
- bool repeat; /* Enable key repeat */
- bool en_keylock; /* Enable key lock feature (ADP5589 only)*/
- unsigned char unlock_key1; /* Unlock Key 1 (ADP5589 only) */
- unsigned char unlock_key2; /* Unlock Key 2 (ADP5589 only) */
- unsigned char unlock_timer; /* Time in seconds [0..7] between the two unlock keys 0=disable (ADP5589 only) */
- unsigned char scan_cycle_time; /* Time between consecutive scan cycles */
- unsigned char reset_cfg; /* Reset config */
- unsigned short reset1_key_1; /* Reset Key 1 */
- unsigned short reset1_key_2; /* Reset Key 2 */
- unsigned short reset1_key_3; /* Reset Key 3 */
- unsigned short reset2_key_1; /* Reset Key 1 */
- unsigned short reset2_key_2; /* Reset Key 2 */
- unsigned debounce_dis_mask; /* Disable debounce mask */
- unsigned pull_dis_mask; /* Disable all pull resistors mask */
- unsigned pullup_en_100k; /* Pull-Up 100k Enable Mask */
- unsigned pullup_en_300k; /* Pull-Up 300k Enable Mask */
- unsigned pulldown_en_300k; /* Pull-Down 300k Enable Mask */
- const struct adp5589_gpi_map *gpimap;
- unsigned short gpimapsize;
- const struct adp5589_gpio_platform_data *gpio_data;
-};
-
-struct i2c_client; /* forward declaration */
-
-struct adp5589_gpio_platform_data {
- int gpio_start; /* GPIO Chip base # */
- int (*setup)(struct i2c_client *client,
- int gpio, unsigned ngpio,
- void *context);
- int (*teardown)(struct i2c_client *client,
- int gpio, unsigned ngpio,
- void *context);
- void *context;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/input/adxl34x.h b/ANDROID_3.4.5/include/linux/input/adxl34x.h
deleted file mode 100644
index 57e01a7c..00000000
--- a/ANDROID_3.4.5/include/linux/input/adxl34x.h
+++ /dev/null
@@ -1,356 +0,0 @@
-/*
- * include/linux/input/adxl34x.h
- *
- * Digital Accelerometer characteristics are highly application specific
- * and may vary between boards and models. The platform_data for the
- * device's "struct device" holds this information.
- *
- * Copyright 2009 Analog Devices Inc.
- *
- * Licensed under the GPL-2 or later.
- */
-
-#ifndef __LINUX_INPUT_ADXL34X_H__
-#define __LINUX_INPUT_ADXL34X_H__
-
-struct adxl34x_platform_data {
-
- /*
- * X,Y,Z Axis Offset:
- * offer user offset adjustments in twoscompliment
- * form with a scale factor of 15.6 mg/LSB (i.e. 0x7F = +2 g)
- */
-
- s8 x_axis_offset;
- s8 y_axis_offset;
- s8 z_axis_offset;
-
- /*
- * TAP_X/Y/Z Enable: Setting TAP_X, Y, or Z Enable enables X,
- * Y, or Z participation in Tap detection. A '0' excludes the
- * selected axis from participation in Tap detection.
- * Setting the SUPPRESS bit suppresses Double Tap detection if
- * acceleration greater than tap_threshold is present during the
- * tap_latency period, i.e. after the first tap but before the
- * opening of the second tap window.
- */
-
-#define ADXL_SUPPRESS (1 << 3)
-#define ADXL_TAP_X_EN (1 << 2)
-#define ADXL_TAP_Y_EN (1 << 1)
-#define ADXL_TAP_Z_EN (1 << 0)
-
- u8 tap_axis_control;
-
- /*
- * tap_threshold:
- * holds the threshold value for tap detection/interrupts.
- * The data format is unsigned. The scale factor is 62.5 mg/LSB
- * (i.e. 0xFF = +16 g). A zero value may result in undesirable
- * behavior if Tap/Double Tap is enabled.
- */
-
- u8 tap_threshold;
-
- /*
- * tap_duration:
- * is an unsigned time value representing the maximum
- * time that an event must be above the tap_threshold threshold
- * to qualify as a tap event. The scale factor is 625 us/LSB. A zero
- * value will prevent Tap/Double Tap functions from working.
- */
-
- u8 tap_duration;
-
- /*
- * tap_latency:
- * is an unsigned time value representing the wait time
- * from the detection of a tap event to the opening of the time
- * window tap_window for a possible second tap event. The scale
- * factor is 1.25 ms/LSB. A zero value will disable the Double Tap
- * function.
- */
-
- u8 tap_latency;
-
- /*
- * tap_window:
- * is an unsigned time value representing the amount
- * of time after the expiration of tap_latency during which a second
- * tap can begin. The scale factor is 1.25 ms/LSB. A zero value will
- * disable the Double Tap function.
- */
-
- u8 tap_window;
-
- /*
- * act_axis_control:
- * X/Y/Z Enable: A '1' enables X, Y, or Z participation in activity
- * or inactivity detection. A '0' excludes the selected axis from
- * participation. If all of the axes are excluded, the function is
- * disabled.
- * AC/DC: A '0' = DC coupled operation and a '1' = AC coupled
- * operation. In DC coupled operation, the current acceleration is
- * compared with activity_threshold and inactivity_threshold directly
- * to determine whether activity or inactivity is detected. In AC
- * coupled operation for activity detection, the acceleration value
- * at the start of activity detection is taken as a reference value.
- * New samples of acceleration are then compared to this
- * reference value and if the magnitude of the difference exceeds
- * activity_threshold the device will trigger an activity interrupt. In
- * AC coupled operation for inactivity detection, a reference value
- * is used again for comparison and is updated whenever the
- * device exceeds the inactivity threshold. Once the reference
- * value is selected, the device compares the magnitude of the
- * difference between the reference value and the current
- * acceleration with inactivity_threshold. If the difference is below
- * inactivity_threshold for a total of inactivity_time, the device is
- * considered inactive and the inactivity interrupt is triggered.
- */
-
-#define ADXL_ACT_ACDC (1 << 7)
-#define ADXL_ACT_X_EN (1 << 6)
-#define ADXL_ACT_Y_EN (1 << 5)
-#define ADXL_ACT_Z_EN (1 << 4)
-#define ADXL_INACT_ACDC (1 << 3)
-#define ADXL_INACT_X_EN (1 << 2)
-#define ADXL_INACT_Y_EN (1 << 1)
-#define ADXL_INACT_Z_EN (1 << 0)
-
- u8 act_axis_control;
-
- /*
- * activity_threshold:
- * holds the threshold value for activity detection.
- * The data format is unsigned. The scale factor is
- * 62.5 mg/LSB. A zero value may result in undesirable behavior if
- * Activity interrupt is enabled.
- */
-
- u8 activity_threshold;
-
- /*
- * inactivity_threshold:
- * holds the threshold value for inactivity
- * detection. The data format is unsigned. The scale
- * factor is 62.5 mg/LSB. A zero value may result in undesirable
- * behavior if Inactivity interrupt is enabled.
- */
-
- u8 inactivity_threshold;
-
- /*
- * inactivity_time:
- * is an unsigned time value representing the
- * amount of time that acceleration must be below the value in
- * inactivity_threshold for inactivity to be declared. The scale factor
- * is 1 second/LSB. Unlike the other interrupt functions, which
- * operate on unfiltered data, the inactivity function operates on the
- * filtered output data. At least one output sample must be
- * generated for the inactivity interrupt to be triggered. This will
- * result in the function appearing un-responsive if the
- * inactivity_time register is set with a value less than the time
- * constant of the Output Data Rate. A zero value will result in an
- * interrupt when the output data is below inactivity_threshold.
- */
-
- u8 inactivity_time;
-
- /*
- * free_fall_threshold:
- * holds the threshold value for Free-Fall detection.
- * The data format is unsigned. The root-sum-square(RSS) value
- * of all axes is calculated and compared to the value in
- * free_fall_threshold to determine if a free fall event may be
- * occurring. The scale factor is 62.5 mg/LSB. A zero value may
- * result in undesirable behavior if Free-Fall interrupt is
- * enabled. Values between 300 and 600 mg (0x05 to 0x09) are
- * recommended.
- */
-
- u8 free_fall_threshold;
-
- /*
- * free_fall_time:
- * is an unsigned time value representing the minimum
- * time that the RSS value of all axes must be less than
- * free_fall_threshold to generate a Free-Fall interrupt. The
- * scale factor is 5 ms/LSB. A zero value may result in
- * undesirable behavior if Free-Fall interrupt is enabled.
- * Values between 100 to 350 ms (0x14 to 0x46) are recommended.
- */
-
- u8 free_fall_time;
-
- /*
- * data_rate:
- * Selects device bandwidth and output data rate.
- * RATE = 3200 Hz / (2^(15 - x)). Default value is 0x0A, or 100 Hz
- * Output Data Rate. An Output Data Rate should be selected that
- * is appropriate for the communication protocol and frequency
- * selected. Selecting too high of an Output Data Rate with a low
- * communication speed will result in samples being discarded.
- */
-
- u8 data_rate;
-
- /*
- * data_range:
- * FULL_RES: When this bit is set with the device is
- * in Full-Resolution Mode, where the output resolution increases
- * with RANGE to maintain a 4 mg/LSB scale factor. When this
- * bit is cleared the device is in 10-bit Mode and RANGE determine the
- * maximum g-Range and scale factor.
- */
-
-#define ADXL_FULL_RES (1 << 3)
-#define ADXL_RANGE_PM_2g 0
-#define ADXL_RANGE_PM_4g 1
-#define ADXL_RANGE_PM_8g 2
-#define ADXL_RANGE_PM_16g 3
-
- u8 data_range;
-
- /*
- * low_power_mode:
- * A '0' = Normal operation and a '1' = Reduced
- * power operation with somewhat higher noise.
- */
-
- u8 low_power_mode;
-
- /*
- * power_mode:
- * LINK: A '1' with both the activity and inactivity functions
- * enabled will delay the start of the activity function until
- * inactivity is detected. Once activity is detected, inactivity
- * detection will begin and prevent the detection of activity. This
- * bit serially links the activity and inactivity functions. When '0'
- * the inactivity and activity functions are concurrent. Additional
- * information can be found in the ADXL34x datasheet's Application
- * section under Link Mode.
- * AUTO_SLEEP: A '1' sets the ADXL34x to switch to Sleep Mode
- * when inactivity (acceleration has been below inactivity_threshold
- * for at least inactivity_time) is detected and the LINK bit is set.
- * A '0' disables automatic switching to Sleep Mode. See the
- * Sleep Bit section of the ADXL34x datasheet for more information.
- */
-
-#define ADXL_LINK (1 << 5)
-#define ADXL_AUTO_SLEEP (1 << 4)
-
- u8 power_mode;
-
- /*
- * fifo_mode:
- * BYPASS The FIFO is bypassed
- * FIFO FIFO collects up to 32 values then stops collecting data
- * STREAM FIFO holds the last 32 data values. Once full, the FIFO's
- * oldest data is lost as it is replaced with newer data
- *
- * DEFAULT should be ADXL_FIFO_STREAM
- */
-
-#define ADXL_FIFO_BYPASS 0
-#define ADXL_FIFO_FIFO 1
-#define ADXL_FIFO_STREAM 2
-
- u8 fifo_mode;
-
- /*
- * watermark:
- * The Watermark feature can be used to reduce the interrupt load
- * of the system. The FIFO fills up to the value stored in watermark
- * [1..32] and then generates an interrupt.
- * A '0' disables the watermark feature.
- */
-
- u8 watermark;
-
- /*
- * When acceleration measurements are received from the ADXL34x
- * events are sent to the event subsystem. The following settings
- * select the event type and event code for new x, y and z axis data
- * respectively.
- */
- u32 ev_type; /* EV_ABS or EV_REL */
-
- u32 ev_code_x; /* ABS_X,Y,Z or REL_X,Y,Z */
- u32 ev_code_y; /* ABS_X,Y,Z or REL_X,Y,Z */
- u32 ev_code_z; /* ABS_X,Y,Z or REL_X,Y,Z */
-
- /*
- * A valid BTN or KEY Code; use tap_axis_control to disable
- * event reporting
- */
-
- u32 ev_code_tap[3]; /* EV_KEY {X-Axis, Y-Axis, Z-Axis} */
-
- /*
- * A valid BTN or KEY Code for Free-Fall or Activity enables
- * input event reporting. A '0' disables the Free-Fall or
- * Activity reporting.
- */
-
- u32 ev_code_ff; /* EV_KEY */
- u32 ev_code_act_inactivity; /* EV_KEY */
-
- /*
- * Use ADXL34x INT2 pin instead of INT1 pin for interrupt output
- */
- u8 use_int2;
-
- /*
- * ADXL346 only ORIENTATION SENSING feature
- * The orientation function of the ADXL346 reports both 2-D and
- * 3-D orientation concurrently.
- */
-
-#define ADXL_EN_ORIENTATION_2D 1
-#define ADXL_EN_ORIENTATION_3D 2
-#define ADXL_EN_ORIENTATION_2D_3D 3
-
- u8 orientation_enable;
-
- /*
- * The width of the deadzone region between two or more
- * orientation positions is determined by setting the Deadzone
- * value. The deadzone region size can be specified with a
- * resolution of 3.6deg. The deadzone angle represents the total
- * angle where the orientation is considered invalid.
- */
-
-#define ADXL_DEADZONE_ANGLE_0p0 0 /* !!!0.0 [deg] */
-#define ADXL_DEADZONE_ANGLE_3p6 1 /* 3.6 [deg] */
-#define ADXL_DEADZONE_ANGLE_7p2 2 /* 7.2 [deg] */
-#define ADXL_DEADZONE_ANGLE_10p8 3 /* 10.8 [deg] */
-#define ADXL_DEADZONE_ANGLE_14p4 4 /* 14.4 [deg] */
-#define ADXL_DEADZONE_ANGLE_18p0 5 /* 18.0 [deg] */
-#define ADXL_DEADZONE_ANGLE_21p6 6 /* 21.6 [deg] */
-#define ADXL_DEADZONE_ANGLE_25p2 7 /* 25.2 [deg] */
-
- u8 deadzone_angle;
-
- /*
- * To eliminate most human motion such as walking or shaking,
- * a Divisor value should be selected to effectively limit the
- * orientation bandwidth. Set the depth of the filter used to
- * low-pass filter the measured acceleration for stable
- * orientation sensing
- */
-
-#define ADXL_LP_FILTER_DIVISOR_2 0
-#define ADXL_LP_FILTER_DIVISOR_4 1
-#define ADXL_LP_FILTER_DIVISOR_8 2
-#define ADXL_LP_FILTER_DIVISOR_16 3
-#define ADXL_LP_FILTER_DIVISOR_32 4
-#define ADXL_LP_FILTER_DIVISOR_64 5
-#define ADXL_LP_FILTER_DIVISOR_128 6
-#define ADXL_LP_FILTER_DIVISOR_256 7
-
- u8 divisor_length;
-
- u32 ev_codes_orient_2d[4]; /* EV_KEY {+X, -X, +Y, -Y} */
- u32 ev_codes_orient_3d[6]; /* EV_KEY {+Z, +Y, +X, -X, -Y, -Z} */
-};
-#endif
diff --git a/ANDROID_3.4.5/include/linux/input/as5011.h b/ANDROID_3.4.5/include/linux/input/as5011.h
deleted file mode 100644
index 1affd0dd..00000000
--- a/ANDROID_3.4.5/include/linux/input/as5011.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef _AS5011_H
-#define _AS5011_H
-
-/*
- * Copyright (c) 2010, 2011 Fabien Marteau <fabien.marteau@armadeus.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.
- */
-
-struct as5011_platform_data {
- unsigned int button_gpio;
- unsigned int axis_irq; /* irq number */
- unsigned long axis_irqflags;
- char xp, xn; /* threshold for x axis */
- char yp, yn; /* threshold for y axis */
-};
-
-#endif /* _AS5011_H */
diff --git a/ANDROID_3.4.5/include/linux/input/auo-pixcir-ts.h b/ANDROID_3.4.5/include/linux/input/auo-pixcir-ts.h
deleted file mode 100644
index 75d4be71..00000000
--- a/ANDROID_3.4.5/include/linux/input/auo-pixcir-ts.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Driver for AUO in-cell touchscreens
- *
- * Copyright (c) 2011 Heiko Stuebner <heiko@sntech.de>
- *
- * based on auo_touch.h from Dell Streak kernel
- *
- * Copyright (c) 2008 QUALCOMM Incorporated.
- * Copyright (c) 2008 QUALCOMM USA, INC.
- *
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#ifndef __AUO_PIXCIR_TS_H__
-#define __AUO_PIXCIR_TS_H__
-
-/*
- * Interrupt modes:
- * periodical: interrupt is asserted periodicaly
- * compare coordinates: interrupt is asserted when coordinates change
- * indicate touch: interrupt is asserted during touch
- */
-#define AUO_PIXCIR_INT_PERIODICAL 0x00
-#define AUO_PIXCIR_INT_COMP_COORD 0x01
-#define AUO_PIXCIR_INT_TOUCH_IND 0x02
-
-/*
- * @gpio_int interrupt gpio
- * @int_setting one of AUO_PIXCIR_INT_*
- * @init_hw hardwarespecific init
- * @exit_hw hardwarespecific shutdown
- * @x_max x-resolution
- * @y_max y-resolution
- */
-struct auo_pixcir_ts_platdata {
- int gpio_int;
-
- int int_setting;
-
- void (*init_hw)(struct i2c_client *);
- void (*exit_hw)(struct i2c_client *);
-
- unsigned int x_max;
- unsigned int y_max;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/input/bu21013.h b/ANDROID_3.4.5/include/linux/input/bu21013.h
deleted file mode 100644
index 05e03284..00000000
--- a/ANDROID_3.4.5/include/linux/input/bu21013.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson SA 2010
- * Author: Naveen Kumar G <naveen.gaddipati@stericsson.com> for ST-Ericsson
- * License terms:GNU General Public License (GPL) version 2
- */
-
-#ifndef _BU21013_H
-#define _BU21013_H
-
-/**
- * struct bu21013_platform_device - Handle the platform data
- * @cs_en: pointer to the cs enable function
- * @cs_dis: pointer to the cs disable function
- * @irq_read_val: pointer to read the pen irq value function
- * @touch_x_max: touch x max
- * @touch_y_max: touch y max
- * @cs_pin: chip select pin
- * @irq: irq pin
- * @ext_clk: external clock flag
- * @x_flip: x flip flag
- * @y_flip: y flip flag
- * @wakeup: wakeup flag
- *
- * This is used to handle the platform data
- */
-struct bu21013_platform_device {
- int (*cs_en)(int reset_pin);
- int (*cs_dis)(int reset_pin);
- int (*irq_read_val)(void);
- int touch_x_max;
- int touch_y_max;
- unsigned int cs_pin;
- unsigned int irq;
- bool ext_clk;
- bool x_flip;
- bool y_flip;
- bool wakeup;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/input/cma3000.h b/ANDROID_3.4.5/include/linux/input/cma3000.h
deleted file mode 100644
index cbbaac27..00000000
--- a/ANDROID_3.4.5/include/linux/input/cma3000.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * VTI CMA3000_Dxx Accelerometer driver
- *
- * Copyright (C) 2010 Texas Instruments
- * Author: Hemanth V <hemanthv@ti.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.
- *
- * 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, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef _LINUX_CMA3000_H
-#define _LINUX_CMA3000_H
-
-#define CMAMODE_DEFAULT 0
-#define CMAMODE_MEAS100 1
-#define CMAMODE_MEAS400 2
-#define CMAMODE_MEAS40 3
-#define CMAMODE_MOTDET 4
-#define CMAMODE_FF100 5
-#define CMAMODE_FF400 6
-#define CMAMODE_POFF 7
-
-#define CMARANGE_2G 2000
-#define CMARANGE_8G 8000
-
-/**
- * struct cma3000_i2c_platform_data - CMA3000 Platform data
- * @fuzz_x: Noise on X Axis
- * @fuzz_y: Noise on Y Axis
- * @fuzz_z: Noise on Z Axis
- * @g_range: G range in milli g i.e 2000 or 8000
- * @mode: Operating mode
- * @mdthr: Motion detect threshold value
- * @mdfftmr: Motion detect and free fall time value
- * @ffthr: Free fall threshold value
- */
-
-struct cma3000_platform_data {
- int fuzz_x;
- int fuzz_y;
- int fuzz_z;
- int g_range;
- uint8_t mode;
- uint8_t mdthr;
- uint8_t mdfftmr;
- uint8_t ffthr;
- unsigned long irqflags;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/input/cy8ctmg110_pdata.h b/ANDROID_3.4.5/include/linux/input/cy8ctmg110_pdata.h
deleted file mode 100644
index 09522cb5..00000000
--- a/ANDROID_3.4.5/include/linux/input/cy8ctmg110_pdata.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef _LINUX_CY8CTMG110_PDATA_H
-#define _LINUX_CY8CTMG110_PDATA_H
-
-struct cy8ctmg110_pdata
-{
- int reset_pin; /* Reset pin is wired to this GPIO (optional) */
- int irq_pin; /* IRQ pin is wired to this GPIO */
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/input/cyttsp.h b/ANDROID_3.4.5/include/linux/input/cyttsp.h
deleted file mode 100644
index 5af7c66f..00000000
--- a/ANDROID_3.4.5/include/linux/input/cyttsp.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Header file for:
- * Cypress TrueTouch(TM) Standard Product (TTSP) touchscreen drivers.
- * For use with Cypress Txx3xx parts.
- * Supported parts include:
- * CY8CTST341
- * CY8CTMA340
- *
- * Copyright (C) 2009, 2010, 2011 Cypress Semiconductor, Inc.
- * Copyright (C) 2012 Javier Martinez Canillas <javier@dowhile0.org>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * version 2, and only version 2, 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-1301, USA.
- *
- * Contact Cypress Semiconductor at www.cypress.com (kev@cypress.com)
- *
- */
-#ifndef _CYTTSP_H_
-#define _CYTTSP_H_
-
-#define CY_SPI_NAME "cyttsp-spi"
-#define CY_I2C_NAME "cyttsp-i2c"
-/* Active Power state scanning/processing refresh interval */
-#define CY_ACT_INTRVL_DFLT 0x00 /* ms */
-/* touch timeout for the Active power */
-#define CY_TCH_TMOUT_DFLT 0xFF /* ms */
-/* Low Power state scanning/processing refresh interval */
-#define CY_LP_INTRVL_DFLT 0x0A /* ms */
-/* Active distance in pixels for a gesture to be reported */
-#define CY_ACT_DIST_DFLT 0xF8 /* pixels */
-
-struct cyttsp_platform_data {
- u32 maxx;
- u32 maxy;
- bool use_hndshk;
- u8 act_dist; /* Active distance */
- u8 act_intrvl; /* Active refresh interval; ms */
- u8 tch_tmout; /* Active touch timeout; ms */
- u8 lp_intrvl; /* Low power refresh interval; ms */
- int (*init)(void);
- void (*exit)(void);
- char *name;
- s16 irq_gpio;
- u8 *bl_keys;
-};
-
-#endif /* _CYTTSP_H_ */
diff --git a/ANDROID_3.4.5/include/linux/input/eeti_ts.h b/ANDROID_3.4.5/include/linux/input/eeti_ts.h
deleted file mode 100644
index f875b316..00000000
--- a/ANDROID_3.4.5/include/linux/input/eeti_ts.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef LINUX_INPUT_EETI_TS_H
-#define LINUX_INPUT_EETI_TS_H
-
-struct eeti_ts_platform_data {
- unsigned int irq_active_high;
-};
-
-#endif /* LINUX_INPUT_EETI_TS_H */
-
diff --git a/ANDROID_3.4.5/include/linux/input/gp2ap002a00f.h b/ANDROID_3.4.5/include/linux/input/gp2ap002a00f.h
deleted file mode 100644
index aad2fd44..00000000
--- a/ANDROID_3.4.5/include/linux/input/gp2ap002a00f.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef _GP2AP002A00F_H_
-#define _GP2AP002A00F_H_
-
-#include <linux/i2c.h>
-
-#define GP2A_I2C_NAME "gp2ap002a00f"
-
-/**
- * struct gp2a_platform_data - Sharp gp2ap002a00f proximity platform data
- * @vout_gpio: The gpio connected to the object detected pin (VOUT)
- * @wakeup: Set to true if the proximity can wake the device from suspend
- * @hw_setup: Callback for setting up hardware such as gpios and vregs
- * @hw_shutdown: Callback for properly shutting down hardware
- */
-struct gp2a_platform_data {
- int vout_gpio;
- bool wakeup;
- int (*hw_setup)(struct i2c_client *client);
- int (*hw_shutdown)(struct i2c_client *client);
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/input/gpio_tilt.h b/ANDROID_3.4.5/include/linux/input/gpio_tilt.h
deleted file mode 100644
index c1cc52d3..00000000
--- a/ANDROID_3.4.5/include/linux/input/gpio_tilt.h
+++ /dev/null
@@ -1,73 +0,0 @@
-#ifndef _INPUT_GPIO_TILT_H
-#define _INPUT_GPIO_TILT_H
-
-/**
- * struct gpio_tilt_axis - Axis used by the tilt switch
- * @axis: Constant describing the axis, e.g. ABS_X
- * @min: minimum value for abs_param
- * @max: maximum value for abs_param
- * @fuzz: fuzz value for abs_param
- * @flat: flat value for abs_param
- */
-struct gpio_tilt_axis {
- int axis;
- int min;
- int max;
- int fuzz;
- int flat;
-};
-
-/**
- * struct gpio_tilt_state - state description
- * @gpios: bitfield of gpio target-states for the value
- * @axes: array containing the axes settings for the gpio state
- * The array indizes must correspond to the axes defined
- * in platform_data
- *
- * This structure describes a supported axis settings
- * and the necessary gpio-state which represent it.
- *
- * The n-th bit in the bitfield describes the state of the n-th GPIO
- * from the gpios-array defined in gpio_regulator_config below.
- */
-struct gpio_tilt_state {
- int gpios;
- int *axes;
-};
-
-/**
- * struct gpio_tilt_platform_data
- * @gpios: Array containing the gpios determining the tilt state
- * @nr_gpios: Number of gpios
- * @axes: Array of gpio_tilt_axis descriptions
- * @nr_axes: Number of axes
- * @states: Array of gpio_tilt_state entries describing
- * the gpio state for specific tilts
- * @nr_states: Number of states available
- * @debounce_interval: debounce ticks interval in msecs
- * @poll_interval: polling interval in msecs - for polling driver only
- * @enable: callback to enable the tilt switch
- * @disable: callback to disable the tilt switch
- *
- * This structure contains gpio-tilt-switch configuration
- * information that must be passed by platform code to the
- * gpio-tilt input driver.
- */
-struct gpio_tilt_platform_data {
- struct gpio *gpios;
- int nr_gpios;
-
- struct gpio_tilt_axis *axes;
- int nr_axes;
-
- struct gpio_tilt_state *states;
- int nr_states;
-
- int debounce_interval;
-
- unsigned int poll_interval;
- int (*enable)(struct device *dev);
- void (*disable)(struct device *dev);
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/input/ili210x.h b/ANDROID_3.4.5/include/linux/input/ili210x.h
deleted file mode 100644
index a5471245..00000000
--- a/ANDROID_3.4.5/include/linux/input/ili210x.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef _ILI210X_H
-#define _ILI210X_H
-
-struct ili210x_platform_data {
- unsigned long irq_flags;
- unsigned int poll_period;
- bool (*get_pendown_state)(void);
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/input/kxtj9.h b/ANDROID_3.4.5/include/linux/input/kxtj9.h
deleted file mode 100644
index d415579b..00000000
--- a/ANDROID_3.4.5/include/linux/input/kxtj9.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2011 Kionix, Inc.
- * Written by Chris Hudson <chudson@kionix.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.
- *
- * 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
- */
-
-#ifndef __KXTJ9_H__
-#define __KXTJ9_H__
-
-#define KXTJ9_I2C_ADDR 0x0F
-
-struct kxtj9_platform_data {
- unsigned int min_interval; /* minimum poll interval (in milli-seconds) */
- unsigned int init_interval; /* initial poll interval (in milli-seconds) */
-
- /*
- * By default, x is axis 0, y is axis 1, z is axis 2; these can be
- * changed to account for sensor orientation within the host device.
- */
- u8 axis_map_x;
- u8 axis_map_y;
- u8 axis_map_z;
-
- /*
- * Each axis can be negated to account for sensor orientation within
- * the host device.
- */
- bool negate_x;
- bool negate_y;
- bool negate_z;
-
- /* CTRL_REG1: set resolution, g-range, data ready enable */
- /* Output resolution: 8-bit valid or 12-bit valid */
- #define RES_8BIT 0
- #define RES_12BIT (1 << 6)
- u8 res_12bit;
- /* Output g-range: +/-2g, 4g, or 8g */
- #define KXTJ9_G_2G 0
- #define KXTJ9_G_4G (1 << 3)
- #define KXTJ9_G_8G (1 << 4)
- u8 g_range;
-
- int (*init)(void);
- void (*exit)(void);
- int (*power_on)(void);
- int (*power_off)(void);
-};
-#endif /* __KXTJ9_H__ */
diff --git a/ANDROID_3.4.5/include/linux/input/matrix_keypad.h b/ANDROID_3.4.5/include/linux/input/matrix_keypad.h
deleted file mode 100644
index 6c07ced0..00000000
--- a/ANDROID_3.4.5/include/linux/input/matrix_keypad.h
+++ /dev/null
@@ -1,128 +0,0 @@
-#ifndef _MATRIX_KEYPAD_H
-#define _MATRIX_KEYPAD_H
-
-#include <linux/types.h>
-#include <linux/input.h>
-#include <linux/of.h>
-
-#define MATRIX_MAX_ROWS 32
-#define MATRIX_MAX_COLS 32
-
-#define KEY(row, col, val) ((((row) & (MATRIX_MAX_ROWS - 1)) << 24) |\
- (((col) & (MATRIX_MAX_COLS - 1)) << 16) |\
- ((val) & 0xffff))
-
-#define KEY_ROW(k) (((k) >> 24) & 0xff)
-#define KEY_COL(k) (((k) >> 16) & 0xff)
-#define KEY_VAL(k) ((k) & 0xffff)
-
-#define MATRIX_SCAN_CODE(row, col, row_shift) (((row) << (row_shift)) + (col))
-
-/**
- * struct matrix_keymap_data - keymap for matrix keyboards
- * @keymap: pointer to array of uint32 values encoded with KEY() macro
- * representing keymap
- * @keymap_size: number of entries (initialized) in this keymap
- *
- * This structure is supposed to be used by platform code to supply
- * keymaps to drivers that implement matrix-like keypads/keyboards.
- */
-struct matrix_keymap_data {
- const uint32_t *keymap;
- unsigned int keymap_size;
-};
-
-/**
- * struct matrix_keypad_platform_data - platform-dependent keypad data
- * @keymap_data: pointer to &matrix_keymap_data
- * @row_gpios: pointer to array of gpio numbers representing rows
- * @col_gpios: pointer to array of gpio numbers reporesenting colums
- * @num_row_gpios: actual number of row gpios used by device
- * @num_col_gpios: actual number of col gpios used by device
- * @col_scan_delay_us: delay, measured in microseconds, that is
- * needed before we can keypad after activating column gpio
- * @debounce_ms: debounce interval in milliseconds
- * @clustered_irq: may be specified if interrupts of all row/column GPIOs
- * are bundled to one single irq
- * @clustered_irq_flags: flags that are needed for the clustered irq
- * @active_low: gpio polarity
- * @wakeup: controls whether the device should be set up as wakeup
- * source
- * @no_autorepeat: disable key autorepeat
- *
- * This structure represents platform-specific data that use used by
- * matrix_keypad driver to perform proper initialization.
- */
-struct matrix_keypad_platform_data {
- const struct matrix_keymap_data *keymap_data;
-
- const unsigned int *row_gpios;
- const unsigned int *col_gpios;
-
- unsigned int num_row_gpios;
- unsigned int num_col_gpios;
-
- unsigned int col_scan_delay_us;
-
- /* key debounce interval in milli-second */
- unsigned int debounce_ms;
-
- unsigned int clustered_irq;
- unsigned int clustered_irq_flags;
-
- bool active_low;
- bool wakeup;
- bool no_autorepeat;
-};
-
-/**
- * matrix_keypad_build_keymap - convert platform keymap into matrix keymap
- * @keymap_data: keymap supplied by the platform code
- * @row_shift: number of bits to shift row value by to advance to the next
- * line in the keymap
- * @keymap: expanded version of keymap that is suitable for use by
- * matrix keyboad driver
- * @keybit: pointer to bitmap of keys supported by input device
- *
- * This function converts platform keymap (encoded with KEY() macro) into
- * an array of keycodes that is suitable for using in a standard matrix
- * keyboard driver that uses row and col as indices.
- */
-static inline void
-matrix_keypad_build_keymap(const struct matrix_keymap_data *keymap_data,
- unsigned int row_shift,
- unsigned short *keymap, unsigned long *keybit)
-{
- int i;
-
- for (i = 0; i < keymap_data->keymap_size; i++) {
- unsigned int key = keymap_data->keymap[i];
- unsigned int row = KEY_ROW(key);
- unsigned int col = KEY_COL(key);
- unsigned short code = KEY_VAL(key);
-
- keymap[MATRIX_SCAN_CODE(row, col, row_shift)] = code;
- __set_bit(code, keybit);
- }
- __clear_bit(KEY_RESERVED, keybit);
-}
-
-#ifdef CONFIG_INPUT_OF_MATRIX_KEYMAP
-struct matrix_keymap_data *
-matrix_keyboard_of_fill_keymap(struct device_node *np, const char *propname);
-
-void matrix_keyboard_of_free_keymap(const struct matrix_keymap_data *kd);
-#else
-static inline struct matrix_keymap_data *
-matrix_keyboard_of_fill_keymap(struct device_node *np, const char *propname)
-{
- return NULL;
-}
-
-static inline void
-matrix_keyboard_of_free_keymap(const struct matrix_keymap_data *kd)
-{
-}
-#endif
-
-#endif /* _MATRIX_KEYPAD_H */
diff --git a/ANDROID_3.4.5/include/linux/input/mt.h b/ANDROID_3.4.5/include/linux/input/mt.h
deleted file mode 100644
index f8673758..00000000
--- a/ANDROID_3.4.5/include/linux/input/mt.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef _INPUT_MT_H
-#define _INPUT_MT_H
-
-/*
- * Input Multitouch Library
- *
- * Copyright (c) 2010 Henrik Rydberg
- *
- * 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/input.h>
-
-#define TRKID_MAX 0xffff
-
-/**
- * struct input_mt_slot - represents the state of an input MT slot
- * @abs: holds current values of ABS_MT axes for this slot
- */
-struct input_mt_slot {
- int abs[ABS_MT_LAST - ABS_MT_FIRST + 1];
-};
-
-static inline void input_mt_set_value(struct input_mt_slot *slot,
- unsigned code, int value)
-{
- slot->abs[code - ABS_MT_FIRST] = value;
-}
-
-static inline int input_mt_get_value(const struct input_mt_slot *slot,
- unsigned code)
-{
- return slot->abs[code - ABS_MT_FIRST];
-}
-
-int input_mt_init_slots(struct input_dev *dev, unsigned int num_slots);
-void input_mt_destroy_slots(struct input_dev *dev);
-
-static inline int input_mt_new_trkid(struct input_dev *dev)
-{
- return dev->trkid++ & TRKID_MAX;
-}
-
-static inline void input_mt_slot(struct input_dev *dev, int slot)
-{
- input_event(dev, EV_ABS, ABS_MT_SLOT, slot);
-}
-
-static inline bool input_is_mt_value(int axis)
-{
- return axis >= ABS_MT_FIRST && axis <= ABS_MT_LAST;
-}
-
-static inline bool input_is_mt_axis(int axis)
-{
- return axis == ABS_MT_SLOT || input_is_mt_value(axis);
-}
-
-void input_mt_report_slot_state(struct input_dev *dev,
- unsigned int tool_type, bool active);
-
-void input_mt_report_finger_count(struct input_dev *dev, int count);
-void input_mt_report_pointer_emulation(struct input_dev *dev, bool use_count);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/input/pixcir_ts.h b/ANDROID_3.4.5/include/linux/input/pixcir_ts.h
deleted file mode 100644
index 7163d91c..00000000
--- a/ANDROID_3.4.5/include/linux/input/pixcir_ts.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef _PIXCIR_I2C_TS_H
-#define _PIXCIR_I2C_TS_H
-
-struct pixcir_ts_platform_data {
- int (*attb_read_val)(void);
- int x_max;
- int y_max;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/input/pmic8xxx-keypad.h b/ANDROID_3.4.5/include/linux/input/pmic8xxx-keypad.h
deleted file mode 100644
index 5f1e2f9a..00000000
--- a/ANDROID_3.4.5/include/linux/input/pmic8xxx-keypad.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright (c) 2011, Code Aurora Forum. 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 version 2 and
- * only version 2 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.
- */
-
-#ifndef __PMIC8XXX_KEYPAD_H__
-#define __PMIC8XXX_KEYPAD_H__
-
-#include <linux/input/matrix_keypad.h>
-
-#define PM8XXX_KEYPAD_DEV_NAME "pm8xxx-keypad"
-
-/**
- * struct pm8xxx_keypad_platform_data - platform data for keypad
- * @keymap_data - matrix keymap data
- * @input_name - input device name
- * @input_phys_device - input device name
- * @num_cols - number of columns of keypad
- * @num_rows - number of row of keypad
- * @debounce_ms - debounce period in milliseconds
- * @scan_delay_ms - scan delay in milliseconds
- * @row_hold_ns - row hold period in nanoseconds
- * @wakeup - configure keypad as wakeup
- * @rep - enable or disable key repeat bit
- */
-struct pm8xxx_keypad_platform_data {
- const struct matrix_keymap_data *keymap_data;
-
- const char *input_name;
- const char *input_phys_device;
-
- unsigned int num_cols;
- unsigned int num_rows;
- unsigned int rows_gpio_start;
- unsigned int cols_gpio_start;
-
- unsigned int debounce_ms;
- unsigned int scan_delay_ms;
- unsigned int row_hold_ns;
-
- bool wakeup;
- bool rep;
-};
-
-#endif /*__PMIC8XXX_KEYPAD_H__ */
diff --git a/ANDROID_3.4.5/include/linux/input/pmic8xxx-pwrkey.h b/ANDROID_3.4.5/include/linux/input/pmic8xxx-pwrkey.h
deleted file mode 100644
index 6d2974e5..00000000
--- a/ANDROID_3.4.5/include/linux/input/pmic8xxx-pwrkey.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (c) 2010-2011, Code Aurora Forum. 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 version 2 and
- * only version 2 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.
- */
-
-#ifndef __PMIC8XXX_PWRKEY_H__
-#define __PMIC8XXX_PWRKEY_H__
-
-#define PM8XXX_PWRKEY_DEV_NAME "pm8xxx-pwrkey"
-
-/**
- * struct pm8xxx_pwrkey_platform_data - platform data for pwrkey driver
- * @pull up: power on register control for pull up/down configuration
- * @kpd_trigger_delay_us: time delay for power key state change interrupt
- * trigger.
- * @wakeup: configure power key as wakeup source
- */
-struct pm8xxx_pwrkey_platform_data {
- bool pull_up;
- u32 kpd_trigger_delay_us;
- u32 wakeup;
-};
-
-#endif /* __PMIC8XXX_PWRKEY_H__ */
diff --git a/ANDROID_3.4.5/include/linux/input/samsung-keypad.h b/ANDROID_3.4.5/include/linux/input/samsung-keypad.h
deleted file mode 100644
index f25619bf..00000000
--- a/ANDROID_3.4.5/include/linux/input/samsung-keypad.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Samsung Keypad platform data definitions
- *
- * Copyright (C) 2010 Samsung Electronics Co.Ltd
- * Author: Joonyoung Shim <jy0922.shim@samsung.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 __SAMSUNG_KEYPAD_H
-#define __SAMSUNG_KEYPAD_H
-
-#include <linux/input/matrix_keypad.h>
-
-#define SAMSUNG_MAX_ROWS 8
-#define SAMSUNG_MAX_COLS 8
-
-/**
- * struct samsung_keypad_platdata - Platform device data for Samsung Keypad.
- * @keymap_data: pointer to &matrix_keymap_data.
- * @rows: number of keypad row supported.
- * @cols: number of keypad col supported.
- * @no_autorepeat: disable key autorepeat.
- * @wakeup: controls whether the device should be set up as wakeup source.
- * @cfg_gpio: configure the GPIO.
- *
- * Initialisation data specific to either the machine or the platform
- * for the device driver to use or call-back when configuring gpio.
- */
-struct samsung_keypad_platdata {
- const struct matrix_keymap_data *keymap_data;
- unsigned int rows;
- unsigned int cols;
- bool no_autorepeat;
- bool wakeup;
-
- void (*cfg_gpio)(unsigned int rows, unsigned int cols);
-};
-
-#endif /* __SAMSUNG_KEYPAD_H */
diff --git a/ANDROID_3.4.5/include/linux/input/sh_keysc.h b/ANDROID_3.4.5/include/linux/input/sh_keysc.h
deleted file mode 100644
index 5d253cd9..00000000
--- a/ANDROID_3.4.5/include/linux/input/sh_keysc.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef __SH_KEYSC_H__
-#define __SH_KEYSC_H__
-
-#define SH_KEYSC_MAXKEYS 64
-
-struct sh_keysc_info {
- enum { SH_KEYSC_MODE_1, SH_KEYSC_MODE_2, SH_KEYSC_MODE_3,
- SH_KEYSC_MODE_4, SH_KEYSC_MODE_5, SH_KEYSC_MODE_6 } mode;
- int scan_timing; /* 0 -> 7, see KYCR1, SCN[2:0] */
- int delay;
- int kycr2_delay;
- int keycodes[SH_KEYSC_MAXKEYS]; /* KEYIN * KEYOUT */
-};
-
-#endif /* __SH_KEYSC_H__ */
diff --git a/ANDROID_3.4.5/include/linux/input/sparse-keymap.h b/ANDROID_3.4.5/include/linux/input/sparse-keymap.h
deleted file mode 100644
index 52db6206..00000000
--- a/ANDROID_3.4.5/include/linux/input/sparse-keymap.h
+++ /dev/null
@@ -1,62 +0,0 @@
-#ifndef _SPARSE_KEYMAP_H
-#define _SPARSE_KEYMAP_H
-
-/*
- * Copyright (c) 2009 Dmitry Torokhov
- *
- * 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.
- */
-
-#define KE_END 0 /* Indicates end of keymap */
-#define KE_KEY 1 /* Ordinary key/button */
-#define KE_SW 2 /* Switch (predetermined value) */
-#define KE_VSW 3 /* Switch (value supplied at runtime) */
-#define KE_IGNORE 4 /* Known entry that should be ignored */
-#define KE_LAST KE_IGNORE
-
-/**
- * struct key_entry - keymap entry for use in sparse keymap
- * @type: Type of the key entry (KE_KEY, KE_SW, KE_VSW, KE_END);
- * drivers are allowed to extend the list with their own
- * private definitions.
- * @code: Device-specific data identifying the button/switch
- * @keycode: KEY_* code assigned to a key/button
- * @sw.code: SW_* code assigned to a switch
- * @sw.value: Value that should be sent in an input even when KE_SW
- * switch is toggled. KE_VSW switches ignore this field and
- * expect driver to supply value for the event.
- *
- * This structure defines an entry in a sparse keymap used by some
- * input devices for which traditional table-based approach is not
- * suitable.
- */
-struct key_entry {
- int type; /* See KE_* above */
- u32 code;
- union {
- u16 keycode; /* For KE_KEY */
- struct { /* For KE_SW, KE_VSW */
- u8 code;
- u8 value; /* For KE_SW, ignored by KE_VSW */
- } sw;
- };
-};
-
-struct key_entry *sparse_keymap_entry_from_scancode(struct input_dev *dev,
- unsigned int code);
-struct key_entry *sparse_keymap_entry_from_keycode(struct input_dev *dev,
- unsigned int code);
-int sparse_keymap_setup(struct input_dev *dev,
- const struct key_entry *keymap,
- int (*setup)(struct input_dev *, struct key_entry *));
-void sparse_keymap_free(struct input_dev *dev);
-
-void sparse_keymap_report_entry(struct input_dev *dev, const struct key_entry *ke,
- unsigned int value, bool autorelease);
-
-bool sparse_keymap_report_event(struct input_dev *dev, unsigned int code,
- unsigned int value, bool autorelease);
-
-#endif /* _SPARSE_KEYMAP_H */
diff --git a/ANDROID_3.4.5/include/linux/input/tca8418_keypad.h b/ANDROID_3.4.5/include/linux/input/tca8418_keypad.h
deleted file mode 100644
index e71a85dc..00000000
--- a/ANDROID_3.4.5/include/linux/input/tca8418_keypad.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * TCA8418 keypad platform support
- *
- * Copyright (C) 2011 Fuel7, Inc. All rights reserved.
- *
- * Author: Kyle Manna <kyle.manna@fuel7.com>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public
- * License v2 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 021110-1307, USA.
- *
- * If you can't comply with GPLv2, alternative licensing terms may be
- * arranged. Please contact Fuel7, Inc. (http://fuel7.com/) for proprietary
- * alternative licensing inquiries.
- */
-
-#ifndef _TCA8418_KEYPAD_H
-#define _TCA8418_KEYPAD_H
-
-#include <linux/types.h>
-#include <linux/input/matrix_keypad.h>
-
-#define TCA8418_I2C_ADDR 0x34
-#define TCA8418_NAME "tca8418_keypad"
-
-struct tca8418_keypad_platform_data {
- const struct matrix_keymap_data *keymap_data;
- unsigned rows;
- unsigned cols;
- bool rep;
- bool irq_is_gpio;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/input/ti_tscadc.h b/ANDROID_3.4.5/include/linux/input/ti_tscadc.h
deleted file mode 100644
index b10a527a..00000000
--- a/ANDROID_3.4.5/include/linux/input/ti_tscadc.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef __LINUX_TI_TSCADC_H
-#define __LINUX_TI_TSCADC_H
-
-/**
- * struct tsc_data Touchscreen wire configuration
- * @wires: Wires refer to application modes
- * i.e. 4/5/8 wire touchscreen support
- * on the platform.
- * @x_plate_resistance: X plate resistance.
- */
-
-struct tsc_data {
- int wires;
- int x_plate_resistance;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/input/tps6507x-ts.h b/ANDROID_3.4.5/include/linux/input/tps6507x-ts.h
deleted file mode 100644
index ab144031..00000000
--- a/ANDROID_3.4.5/include/linux/input/tps6507x-ts.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* linux/i2c/tps6507x-ts.h
- *
- * Functions to access TPS65070 touch screen chip.
- *
- * Copyright (c) 2009 RidgeRun (todd.fischer@ridgerun.com)
- *
- *
- * For licencing details see kernel-base/COPYING
- */
-
-#ifndef __LINUX_I2C_TPS6507X_TS_H
-#define __LINUX_I2C_TPS6507X_TS_H
-
-/* Board specific touch screen initial values */
-struct touchscreen_init_data {
- int poll_period; /* ms */
- int vref; /* non-zero to leave vref on */
- __u16 min_pressure; /* min reading to be treated as a touch */
- __u16 vendor;
- __u16 product;
- __u16 version;
-};
-
-#endif /* __LINUX_I2C_TPS6507X_TS_H */
diff --git a/ANDROID_3.4.5/include/linux/integrity.h b/ANDROID_3.4.5/include/linux/integrity.h
deleted file mode 100644
index a0c41256..00000000
--- a/ANDROID_3.4.5/include/linux/integrity.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (C) 2009 IBM Corporation
- * Author: Mimi Zohar <zohar@us.ibm.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, version 2 of the License.
- */
-
-#ifndef _LINUX_INTEGRITY_H
-#define _LINUX_INTEGRITY_H
-
-#include <linux/fs.h>
-
-enum integrity_status {
- INTEGRITY_PASS = 0,
- INTEGRITY_FAIL,
- INTEGRITY_NOLABEL,
- INTEGRITY_NOXATTRS,
- INTEGRITY_UNKNOWN,
-};
-
-/* List of EVM protected security xattrs */
-#ifdef CONFIG_INTEGRITY
-extern int integrity_inode_alloc(struct inode *inode);
-extern void integrity_inode_free(struct inode *inode);
-
-#else
-static inline int integrity_inode_alloc(struct inode *inode)
-{
- return 0;
-}
-
-static inline void integrity_inode_free(struct inode *inode)
-{
- return;
-}
-#endif /* CONFIG_INTEGRITY_H */
-#endif /* _LINUX_INTEGRITY_H */
diff --git a/ANDROID_3.4.5/include/linux/intel-iommu.h b/ANDROID_3.4.5/include/linux/intel-iommu.h
deleted file mode 100644
index e6ca56de..00000000
--- a/ANDROID_3.4.5/include/linux/intel-iommu.h
+++ /dev/null
@@ -1,366 +0,0 @@
-/*
- * Copyright (c) 2006, Intel Corporation.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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.
- *
- * Copyright (C) 2006-2008 Intel Corporation
- * Author: Ashok Raj <ashok.raj@intel.com>
- * Author: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
- */
-
-#ifndef _INTEL_IOMMU_H_
-#define _INTEL_IOMMU_H_
-
-#include <linux/types.h>
-#include <linux/iova.h>
-#include <linux/io.h>
-#include <linux/dma_remapping.h>
-#include <asm/cacheflush.h>
-#include <asm/iommu.h>
-
-/*
- * Intel IOMMU register specification per version 1.0 public spec.
- */
-
-#define DMAR_VER_REG 0x0 /* Arch version supported by this IOMMU */
-#define DMAR_CAP_REG 0x8 /* Hardware supported capabilities */
-#define DMAR_ECAP_REG 0x10 /* Extended capabilities supported */
-#define DMAR_GCMD_REG 0x18 /* Global command register */
-#define DMAR_GSTS_REG 0x1c /* Global status register */
-#define DMAR_RTADDR_REG 0x20 /* Root entry table */
-#define DMAR_CCMD_REG 0x28 /* Context command reg */
-#define DMAR_FSTS_REG 0x34 /* Fault Status register */
-#define DMAR_FECTL_REG 0x38 /* Fault control register */
-#define DMAR_FEDATA_REG 0x3c /* Fault event interrupt data register */
-#define DMAR_FEADDR_REG 0x40 /* Fault event interrupt addr register */
-#define DMAR_FEUADDR_REG 0x44 /* Upper address register */
-#define DMAR_AFLOG_REG 0x58 /* Advanced Fault control */
-#define DMAR_PMEN_REG 0x64 /* Enable Protected Memory Region */
-#define DMAR_PLMBASE_REG 0x68 /* PMRR Low addr */
-#define DMAR_PLMLIMIT_REG 0x6c /* PMRR low limit */
-#define DMAR_PHMBASE_REG 0x70 /* pmrr high base addr */
-#define DMAR_PHMLIMIT_REG 0x78 /* pmrr high limit */
-#define DMAR_IQH_REG 0x80 /* Invalidation queue head register */
-#define DMAR_IQT_REG 0x88 /* Invalidation queue tail register */
-#define DMAR_IQ_SHIFT 4 /* Invalidation queue head/tail shift */
-#define DMAR_IQA_REG 0x90 /* Invalidation queue addr register */
-#define DMAR_ICS_REG 0x98 /* Invalidation complete status register */
-#define DMAR_IRTA_REG 0xb8 /* Interrupt remapping table addr register */
-
-#define OFFSET_STRIDE (9)
-/*
-#define dmar_readl(dmar, reg) readl(dmar + reg)
-#define dmar_readq(dmar, reg) ({ \
- u32 lo, hi; \
- lo = readl(dmar + reg); \
- hi = readl(dmar + reg + 4); \
- (((u64) hi) << 32) + lo; })
-*/
-static inline u64 dmar_readq(void __iomem *addr)
-{
- u32 lo, hi;
- lo = readl(addr);
- hi = readl(addr + 4);
- return (((u64) hi) << 32) + lo;
-}
-
-static inline void dmar_writeq(void __iomem *addr, u64 val)
-{
- writel((u32)val, addr);
- writel((u32)(val >> 32), addr + 4);
-}
-
-#define DMAR_VER_MAJOR(v) (((v) & 0xf0) >> 4)
-#define DMAR_VER_MINOR(v) ((v) & 0x0f)
-
-/*
- * Decoding Capability Register
- */
-#define cap_read_drain(c) (((c) >> 55) & 1)
-#define cap_write_drain(c) (((c) >> 54) & 1)
-#define cap_max_amask_val(c) (((c) >> 48) & 0x3f)
-#define cap_num_fault_regs(c) ((((c) >> 40) & 0xff) + 1)
-#define cap_pgsel_inv(c) (((c) >> 39) & 1)
-
-#define cap_super_page_val(c) (((c) >> 34) & 0xf)
-#define cap_super_offset(c) (((find_first_bit(&cap_super_page_val(c), 4)) \
- * OFFSET_STRIDE) + 21)
-
-#define cap_fault_reg_offset(c) ((((c) >> 24) & 0x3ff) * 16)
-#define cap_max_fault_reg_offset(c) \
- (cap_fault_reg_offset(c) + cap_num_fault_regs(c) * 16)
-
-#define cap_zlr(c) (((c) >> 22) & 1)
-#define cap_isoch(c) (((c) >> 23) & 1)
-#define cap_mgaw(c) ((((c) >> 16) & 0x3f) + 1)
-#define cap_sagaw(c) (((c) >> 8) & 0x1f)
-#define cap_caching_mode(c) (((c) >> 7) & 1)
-#define cap_phmr(c) (((c) >> 6) & 1)
-#define cap_plmr(c) (((c) >> 5) & 1)
-#define cap_rwbf(c) (((c) >> 4) & 1)
-#define cap_afl(c) (((c) >> 3) & 1)
-#define cap_ndoms(c) (((unsigned long)1) << (4 + 2 * ((c) & 0x7)))
-/*
- * Extended Capability Register
- */
-
-#define ecap_niotlb_iunits(e) ((((e) >> 24) & 0xff) + 1)
-#define ecap_iotlb_offset(e) ((((e) >> 8) & 0x3ff) * 16)
-#define ecap_max_iotlb_offset(e) \
- (ecap_iotlb_offset(e) + ecap_niotlb_iunits(e) * 16)
-#define ecap_coherent(e) ((e) & 0x1)
-#define ecap_qis(e) ((e) & 0x2)
-#define ecap_pass_through(e) ((e >> 6) & 0x1)
-#define ecap_eim_support(e) ((e >> 4) & 0x1)
-#define ecap_ir_support(e) ((e >> 3) & 0x1)
-#define ecap_dev_iotlb_support(e) (((e) >> 2) & 0x1)
-#define ecap_max_handle_mask(e) ((e >> 20) & 0xf)
-#define ecap_sc_support(e) ((e >> 7) & 0x1) /* Snooping Control */
-
-/* IOTLB_REG */
-#define DMA_TLB_FLUSH_GRANU_OFFSET 60
-#define DMA_TLB_GLOBAL_FLUSH (((u64)1) << 60)
-#define DMA_TLB_DSI_FLUSH (((u64)2) << 60)
-#define DMA_TLB_PSI_FLUSH (((u64)3) << 60)
-#define DMA_TLB_IIRG(type) ((type >> 60) & 7)
-#define DMA_TLB_IAIG(val) (((val) >> 57) & 7)
-#define DMA_TLB_READ_DRAIN (((u64)1) << 49)
-#define DMA_TLB_WRITE_DRAIN (((u64)1) << 48)
-#define DMA_TLB_DID(id) (((u64)((id) & 0xffff)) << 32)
-#define DMA_TLB_IVT (((u64)1) << 63)
-#define DMA_TLB_IH_NONLEAF (((u64)1) << 6)
-#define DMA_TLB_MAX_SIZE (0x3f)
-
-/* INVALID_DESC */
-#define DMA_CCMD_INVL_GRANU_OFFSET 61
-#define DMA_ID_TLB_GLOBAL_FLUSH (((u64)1) << 3)
-#define DMA_ID_TLB_DSI_FLUSH (((u64)2) << 3)
-#define DMA_ID_TLB_PSI_FLUSH (((u64)3) << 3)
-#define DMA_ID_TLB_READ_DRAIN (((u64)1) << 7)
-#define DMA_ID_TLB_WRITE_DRAIN (((u64)1) << 6)
-#define DMA_ID_TLB_DID(id) (((u64)((id & 0xffff) << 16)))
-#define DMA_ID_TLB_IH_NONLEAF (((u64)1) << 6)
-#define DMA_ID_TLB_ADDR(addr) (addr)
-#define DMA_ID_TLB_ADDR_MASK(mask) (mask)
-
-/* PMEN_REG */
-#define DMA_PMEN_EPM (((u32)1)<<31)
-#define DMA_PMEN_PRS (((u32)1)<<0)
-
-/* GCMD_REG */
-#define DMA_GCMD_TE (((u32)1) << 31)
-#define DMA_GCMD_SRTP (((u32)1) << 30)
-#define DMA_GCMD_SFL (((u32)1) << 29)
-#define DMA_GCMD_EAFL (((u32)1) << 28)
-#define DMA_GCMD_WBF (((u32)1) << 27)
-#define DMA_GCMD_QIE (((u32)1) << 26)
-#define DMA_GCMD_SIRTP (((u32)1) << 24)
-#define DMA_GCMD_IRE (((u32) 1) << 25)
-#define DMA_GCMD_CFI (((u32) 1) << 23)
-
-/* GSTS_REG */
-#define DMA_GSTS_TES (((u32)1) << 31)
-#define DMA_GSTS_RTPS (((u32)1) << 30)
-#define DMA_GSTS_FLS (((u32)1) << 29)
-#define DMA_GSTS_AFLS (((u32)1) << 28)
-#define DMA_GSTS_WBFS (((u32)1) << 27)
-#define DMA_GSTS_QIES (((u32)1) << 26)
-#define DMA_GSTS_IRTPS (((u32)1) << 24)
-#define DMA_GSTS_IRES (((u32)1) << 25)
-#define DMA_GSTS_CFIS (((u32)1) << 23)
-
-/* CCMD_REG */
-#define DMA_CCMD_ICC (((u64)1) << 63)
-#define DMA_CCMD_GLOBAL_INVL (((u64)1) << 61)
-#define DMA_CCMD_DOMAIN_INVL (((u64)2) << 61)
-#define DMA_CCMD_DEVICE_INVL (((u64)3) << 61)
-#define DMA_CCMD_FM(m) (((u64)((m) & 0x3)) << 32)
-#define DMA_CCMD_MASK_NOBIT 0
-#define DMA_CCMD_MASK_1BIT 1
-#define DMA_CCMD_MASK_2BIT 2
-#define DMA_CCMD_MASK_3BIT 3
-#define DMA_CCMD_SID(s) (((u64)((s) & 0xffff)) << 16)
-#define DMA_CCMD_DID(d) ((u64)((d) & 0xffff))
-
-/* FECTL_REG */
-#define DMA_FECTL_IM (((u32)1) << 31)
-
-/* FSTS_REG */
-#define DMA_FSTS_PPF ((u32)2)
-#define DMA_FSTS_PFO ((u32)1)
-#define DMA_FSTS_IQE (1 << 4)
-#define DMA_FSTS_ICE (1 << 5)
-#define DMA_FSTS_ITE (1 << 6)
-#define dma_fsts_fault_record_index(s) (((s) >> 8) & 0xff)
-
-/* FRCD_REG, 32 bits access */
-#define DMA_FRCD_F (((u32)1) << 31)
-#define dma_frcd_type(d) ((d >> 30) & 1)
-#define dma_frcd_fault_reason(c) (c & 0xff)
-#define dma_frcd_source_id(c) (c & 0xffff)
-/* low 64 bit */
-#define dma_frcd_page_addr(d) (d & (((u64)-1) << PAGE_SHIFT))
-
-#define IOMMU_WAIT_OP(iommu, offset, op, cond, sts) \
-do { \
- cycles_t start_time = get_cycles(); \
- while (1) { \
- sts = op(iommu->reg + offset); \
- if (cond) \
- break; \
- if (DMAR_OPERATION_TIMEOUT < (get_cycles() - start_time))\
- panic("DMAR hardware is malfunctioning\n"); \
- cpu_relax(); \
- } \
-} while (0)
-
-#define QI_LENGTH 256 /* queue length */
-
-enum {
- QI_FREE,
- QI_IN_USE,
- QI_DONE,
- QI_ABORT
-};
-
-#define QI_CC_TYPE 0x1
-#define QI_IOTLB_TYPE 0x2
-#define QI_DIOTLB_TYPE 0x3
-#define QI_IEC_TYPE 0x4
-#define QI_IWD_TYPE 0x5
-
-#define QI_IEC_SELECTIVE (((u64)1) << 4)
-#define QI_IEC_IIDEX(idx) (((u64)(idx & 0xffff) << 32))
-#define QI_IEC_IM(m) (((u64)(m & 0x1f) << 27))
-
-#define QI_IWD_STATUS_DATA(d) (((u64)d) << 32)
-#define QI_IWD_STATUS_WRITE (((u64)1) << 5)
-
-#define QI_IOTLB_DID(did) (((u64)did) << 16)
-#define QI_IOTLB_DR(dr) (((u64)dr) << 7)
-#define QI_IOTLB_DW(dw) (((u64)dw) << 6)
-#define QI_IOTLB_GRAN(gran) (((u64)gran) >> (DMA_TLB_FLUSH_GRANU_OFFSET-4))
-#define QI_IOTLB_ADDR(addr) (((u64)addr) & VTD_PAGE_MASK)
-#define QI_IOTLB_IH(ih) (((u64)ih) << 6)
-#define QI_IOTLB_AM(am) (((u8)am))
-
-#define QI_CC_FM(fm) (((u64)fm) << 48)
-#define QI_CC_SID(sid) (((u64)sid) << 32)
-#define QI_CC_DID(did) (((u64)did) << 16)
-#define QI_CC_GRAN(gran) (((u64)gran) >> (DMA_CCMD_INVL_GRANU_OFFSET-4))
-
-#define QI_DEV_IOTLB_SID(sid) ((u64)((sid) & 0xffff) << 32)
-#define QI_DEV_IOTLB_QDEP(qdep) (((qdep) & 0x1f) << 16)
-#define QI_DEV_IOTLB_ADDR(addr) ((u64)(addr) & VTD_PAGE_MASK)
-#define QI_DEV_IOTLB_SIZE 1
-#define QI_DEV_IOTLB_MAX_INVS 32
-
-struct qi_desc {
- u64 low, high;
-};
-
-struct q_inval {
- raw_spinlock_t q_lock;
- struct qi_desc *desc; /* invalidation queue */
- int *desc_status; /* desc status */
- int free_head; /* first free entry */
- int free_tail; /* last free entry */
- int free_cnt;
-};
-
-#ifdef CONFIG_IRQ_REMAP
-/* 1MB - maximum possible interrupt remapping table size */
-#define INTR_REMAP_PAGE_ORDER 8
-#define INTR_REMAP_TABLE_REG_SIZE 0xf
-
-#define INTR_REMAP_TABLE_ENTRIES 65536
-
-struct ir_table {
- struct irte *base;
-};
-#endif
-
-struct iommu_flush {
- void (*flush_context)(struct intel_iommu *iommu, u16 did, u16 sid,
- u8 fm, u64 type);
- void (*flush_iotlb)(struct intel_iommu *iommu, u16 did, u64 addr,
- unsigned int size_order, u64 type);
-};
-
-enum {
- SR_DMAR_FECTL_REG,
- SR_DMAR_FEDATA_REG,
- SR_DMAR_FEADDR_REG,
- SR_DMAR_FEUADDR_REG,
- MAX_SR_DMAR_REGS
-};
-
-struct intel_iommu {
- void __iomem *reg; /* Pointer to hardware regs, virtual addr */
- u64 cap;
- u64 ecap;
- u32 gcmd; /* Holds TE, EAFL. Don't need SRTP, SFL, WBF */
- raw_spinlock_t register_lock; /* protect register handling */
- int seq_id; /* sequence id of the iommu */
- int agaw; /* agaw of this iommu */
- int msagaw; /* max sagaw of this iommu */
- unsigned int irq;
- unsigned char name[13]; /* Device Name */
-
-#ifdef CONFIG_INTEL_IOMMU
- unsigned long *domain_ids; /* bitmap of domains */
- struct dmar_domain **domains; /* ptr to domains */
- spinlock_t lock; /* protect context, domain ids */
- struct root_entry *root_entry; /* virtual address */
-
- struct iommu_flush flush;
-#endif
- struct q_inval *qi; /* Queued invalidation info */
- u32 *iommu_state; /* Store iommu states between suspend and resume.*/
-
-#ifdef CONFIG_IRQ_REMAP
- struct ir_table *ir_table; /* Interrupt remapping info */
-#endif
- int node;
-};
-
-static inline void __iommu_flush_cache(
- struct intel_iommu *iommu, void *addr, int size)
-{
- if (!ecap_coherent(iommu->ecap))
- clflush_cache_range(addr, size);
-}
-
-extern struct dmar_drhd_unit * dmar_find_matched_drhd_unit(struct pci_dev *dev);
-extern int dmar_find_matched_atsr_unit(struct pci_dev *dev);
-
-extern int alloc_iommu(struct dmar_drhd_unit *drhd);
-extern void free_iommu(struct intel_iommu *iommu);
-extern int dmar_enable_qi(struct intel_iommu *iommu);
-extern void dmar_disable_qi(struct intel_iommu *iommu);
-extern int dmar_reenable_qi(struct intel_iommu *iommu);
-extern void qi_global_iec(struct intel_iommu *iommu);
-
-extern void qi_flush_context(struct intel_iommu *iommu, u16 did, u16 sid,
- u8 fm, u64 type);
-extern void qi_flush_iotlb(struct intel_iommu *iommu, u16 did, u64 addr,
- unsigned int size_order, u64 type);
-extern void qi_flush_dev_iotlb(struct intel_iommu *iommu, u16 sid, u16 qdep,
- u64 addr, unsigned mask);
-
-extern int qi_submit_sync(struct qi_desc *desc, struct intel_iommu *iommu);
-
-extern int dmar_ir_support(void);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/intel_mid_dma.h b/ANDROID_3.4.5/include/linux/intel_mid_dma.h
deleted file mode 100644
index 10496bd2..00000000
--- a/ANDROID_3.4.5/include/linux/intel_mid_dma.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * intel_mid_dma.h - Intel MID DMA Drivers
- *
- * Copyright (C) 2008-10 Intel Corp
- * Author: Vinod Koul <vinod.koul@intel.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; version 2 of the License.
- *
- * 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.
- *
- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- *
- *
- */
-#ifndef __INTEL_MID_DMA_H__
-#define __INTEL_MID_DMA_H__
-
-#include <linux/dmaengine.h>
-
-#define DMA_PREP_CIRCULAR_LIST (1 << 10)
-
-/*DMA mode configurations*/
-enum intel_mid_dma_mode {
- LNW_DMA_PER_TO_MEM = 0, /*periphral to memory configuration*/
- LNW_DMA_MEM_TO_PER, /*memory to periphral configuration*/
- LNW_DMA_MEM_TO_MEM, /*mem to mem confg (testing only)*/
-};
-
-/*DMA handshaking*/
-enum intel_mid_dma_hs_mode {
- LNW_DMA_HW_HS = 0, /*HW Handshaking only*/
- LNW_DMA_SW_HS = 1, /*SW Handshaking not recommended*/
-};
-
-/*Burst size configuration*/
-enum intel_mid_dma_msize {
- LNW_DMA_MSIZE_1 = 0x0,
- LNW_DMA_MSIZE_4 = 0x1,
- LNW_DMA_MSIZE_8 = 0x2,
- LNW_DMA_MSIZE_16 = 0x3,
- LNW_DMA_MSIZE_32 = 0x4,
- LNW_DMA_MSIZE_64 = 0x5,
-};
-
-/**
- * struct intel_mid_dma_slave - DMA slave structure
- *
- * @dirn: DMA trf direction
- * @src_width: tx register width
- * @dst_width: rx register width
- * @hs_mode: HW/SW handshaking mode
- * @cfg_mode: DMA data transfer mode (per-per/mem-per/mem-mem)
- * @src_msize: Source DMA burst size
- * @dst_msize: Dst DMA burst size
- * @per_addr: Periphral address
- * @device_instance: DMA peripheral device instance, we can have multiple
- * peripheral device connected to single DMAC
- */
-struct intel_mid_dma_slave {
- enum intel_mid_dma_hs_mode hs_mode; /*handshaking*/
- enum intel_mid_dma_mode cfg_mode; /*mode configuration*/
- unsigned int device_instance; /*0, 1 for periphral instance*/
- struct dma_slave_config dma_slave;
-};
-
-#endif /*__INTEL_MID_DMA_H__*/
diff --git a/ANDROID_3.4.5/include/linux/intel_pmic_gpio.h b/ANDROID_3.4.5/include/linux/intel_pmic_gpio.h
deleted file mode 100644
index 920109a2..00000000
--- a/ANDROID_3.4.5/include/linux/intel_pmic_gpio.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef LINUX_INTEL_PMIC_H
-#define LINUX_INTEL_PMIC_H
-
-struct intel_pmic_gpio_platform_data {
- /* the first IRQ of the chip */
- unsigned irq_base;
- /* number assigned to the first GPIO */
- unsigned gpio_base;
- /* sram address for gpiointr register, the langwell chip will map
- * the PMIC spi GPIO expander's GPIOINTR register in sram.
- */
- unsigned gpiointr;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/interrupt.h b/ANDROID_3.4.5/include/linux/interrupt.h
deleted file mode 100644
index 2aea5d22..00000000
--- a/ANDROID_3.4.5/include/linux/interrupt.h
+++ /dev/null
@@ -1,703 +0,0 @@
-/* interrupt.h */
-#ifndef _LINUX_INTERRUPT_H
-#define _LINUX_INTERRUPT_H
-
-#include <linux/kernel.h>
-#include <linux/linkage.h>
-#include <linux/bitops.h>
-#include <linux/preempt.h>
-#include <linux/cpumask.h>
-#include <linux/irqreturn.h>
-#include <linux/irqnr.h>
-#include <linux/hardirq.h>
-#include <linux/irqflags.h>
-#include <linux/smp.h>
-#include <linux/percpu.h>
-#include <linux/hrtimer.h>
-#include <linux/kref.h>
-#include <linux/workqueue.h>
-
-#include <linux/atomic.h>
-#include <asm/ptrace.h>
-
-/*
- * These correspond to the IORESOURCE_IRQ_* defines in
- * linux/ioport.h to select the interrupt line behaviour. When
- * requesting an interrupt without specifying a IRQF_TRIGGER, the
- * setting should be assumed to be "as already configured", which
- * may be as per machine or firmware initialisation.
- */
-#define IRQF_TRIGGER_NONE 0x00000000
-#define IRQF_TRIGGER_RISING 0x00000001
-#define IRQF_TRIGGER_FALLING 0x00000002
-#define IRQF_TRIGGER_HIGH 0x00000004
-#define IRQF_TRIGGER_LOW 0x00000008
-#define IRQF_TRIGGER_MASK (IRQF_TRIGGER_HIGH | IRQF_TRIGGER_LOW | \
- IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING)
-#define IRQF_TRIGGER_PROBE 0x00000010
-
-/*
- * These flags used only by the kernel as part of the
- * irq handling routines.
- *
- * IRQF_DISABLED - keep irqs disabled when calling the action handler.
- * DEPRECATED. This flag is a NOOP and scheduled to be removed
- * IRQF_SAMPLE_RANDOM - irq is used to feed the random generator
- * IRQF_SHARED - allow sharing the irq among several devices
- * IRQF_PROBE_SHARED - set by callers when they expect sharing mismatches to occur
- * IRQF_TIMER - Flag to mark this interrupt as timer interrupt
- * IRQF_PERCPU - Interrupt is per cpu
- * IRQF_NOBALANCING - Flag to exclude this interrupt from irq balancing
- * IRQF_IRQPOLL - Interrupt is used for polling (only the interrupt that is
- * registered first in an shared interrupt is considered for
- * performance reasons)
- * IRQF_ONESHOT - Interrupt is not reenabled after the hardirq handler finished.
- * Used by threaded interrupts which need to keep the
- * irq line disabled until the threaded handler has been run.
- * IRQF_NO_SUSPEND - Do not disable this IRQ during suspend
- * IRQF_FORCE_RESUME - Force enable it on resume even if IRQF_NO_SUSPEND is set
- * IRQF_NO_THREAD - Interrupt cannot be threaded
- * IRQF_EARLY_RESUME - Resume IRQ early during syscore instead of at device
- * resume time.
- */
-#define IRQF_DISABLED 0x00000020
-#define IRQF_SAMPLE_RANDOM 0x00000040
-#define IRQF_SHARED 0x00000080
-#define IRQF_PROBE_SHARED 0x00000100
-#define __IRQF_TIMER 0x00000200
-#define IRQF_PERCPU 0x00000400
-#define IRQF_NOBALANCING 0x00000800
-#define IRQF_IRQPOLL 0x00001000
-#define IRQF_ONESHOT 0x00002000
-#define IRQF_NO_SUSPEND 0x00004000
-#define IRQF_FORCE_RESUME 0x00008000
-#define IRQF_NO_THREAD 0x00010000
-#define IRQF_EARLY_RESUME 0x00020000
-
-#define IRQF_TIMER (__IRQF_TIMER | IRQF_NO_SUSPEND | IRQF_NO_THREAD)
-
-/*
- * These values can be returned by request_any_context_irq() and
- * describe the context the interrupt will be run in.
- *
- * IRQC_IS_HARDIRQ - interrupt runs in hardirq context
- * IRQC_IS_NESTED - interrupt runs in a nested threaded context
- */
-enum {
- IRQC_IS_HARDIRQ = 0,
- IRQC_IS_NESTED,
-};
-
-typedef irqreturn_t (*irq_handler_t)(int, void *);
-
-/**
- * struct irqaction - per interrupt action descriptor
- * @handler: interrupt handler function
- * @flags: flags (see IRQF_* above)
- * @name: name of the device
- * @dev_id: cookie to identify the device
- * @percpu_dev_id: cookie to identify the device
- * @next: pointer to the next irqaction for shared interrupts
- * @irq: interrupt number
- * @dir: pointer to the proc/irq/NN/name entry
- * @thread_fn: interrupt handler function for threaded interrupts
- * @thread: thread pointer for threaded interrupts
- * @thread_flags: flags related to @thread
- * @thread_mask: bitmask for keeping track of @thread activity
- */
-struct irqaction {
- irq_handler_t handler;
- unsigned long flags;
- void *dev_id;
- void __percpu *percpu_dev_id;
- struct irqaction *next;
- int irq;
- irq_handler_t thread_fn;
- struct task_struct *thread;
- unsigned long thread_flags;
- unsigned long thread_mask;
- const char *name;
- struct proc_dir_entry *dir;
-} ____cacheline_internodealigned_in_smp;
-
-extern irqreturn_t no_action(int cpl, void *dev_id);
-
-#ifdef CONFIG_GENERIC_HARDIRQS
-extern int __must_check
-request_threaded_irq(unsigned int irq, irq_handler_t handler,
- irq_handler_t thread_fn,
- unsigned long flags, const char *name, void *dev);
-
-static inline int __must_check
-request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags,
- const char *name, void *dev)
-{
- return request_threaded_irq(irq, handler, NULL, flags, name, dev);
-}
-
-extern int __must_check
-request_any_context_irq(unsigned int irq, irq_handler_t handler,
- unsigned long flags, const char *name, void *dev_id);
-
-extern int __must_check
-request_percpu_irq(unsigned int irq, irq_handler_t handler,
- const char *devname, void __percpu *percpu_dev_id);
-
-extern void exit_irq_thread(void);
-#else
-
-extern int __must_check
-request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags,
- const char *name, void *dev);
-
-/*
- * Special function to avoid ifdeffery in kernel/irq/devres.c which
- * gets magically built by GENERIC_HARDIRQS=n architectures (sparc,
- * m68k). I really love these $@%#!* obvious Makefile references:
- * ../../../kernel/irq/devres.o
- */
-static inline int __must_check
-request_threaded_irq(unsigned int irq, irq_handler_t handler,
- irq_handler_t thread_fn,
- unsigned long flags, const char *name, void *dev)
-{
- return request_irq(irq, handler, flags, name, dev);
-}
-
-static inline int __must_check
-request_any_context_irq(unsigned int irq, irq_handler_t handler,
- unsigned long flags, const char *name, void *dev_id)
-{
- return request_irq(irq, handler, flags, name, dev_id);
-}
-
-static inline int __must_check
-request_percpu_irq(unsigned int irq, irq_handler_t handler,
- const char *devname, void __percpu *percpu_dev_id)
-{
- return request_irq(irq, handler, 0, devname, percpu_dev_id);
-}
-
-static inline void exit_irq_thread(void) { }
-#endif
-
-extern void free_irq(unsigned int, void *);
-extern void free_percpu_irq(unsigned int, void __percpu *);
-
-struct device;
-
-extern int __must_check
-devm_request_threaded_irq(struct device *dev, unsigned int irq,
- irq_handler_t handler, irq_handler_t thread_fn,
- unsigned long irqflags, const char *devname,
- void *dev_id);
-
-static inline int __must_check
-devm_request_irq(struct device *dev, unsigned int irq, irq_handler_t handler,
- unsigned long irqflags, const char *devname, void *dev_id)
-{
- return devm_request_threaded_irq(dev, irq, handler, NULL, irqflags,
- devname, dev_id);
-}
-
-extern void devm_free_irq(struct device *dev, unsigned int irq, void *dev_id);
-
-/*
- * On lockdep we dont want to enable hardirqs in hardirq
- * context. Use local_irq_enable_in_hardirq() to annotate
- * kernel code that has to do this nevertheless (pretty much
- * the only valid case is for old/broken hardware that is
- * insanely slow).
- *
- * NOTE: in theory this might break fragile code that relies
- * on hardirq delivery - in practice we dont seem to have such
- * places left. So the only effect should be slightly increased
- * irqs-off latencies.
- */
-#ifdef CONFIG_LOCKDEP
-# define local_irq_enable_in_hardirq() do { } while (0)
-#else
-# define local_irq_enable_in_hardirq() local_irq_enable()
-#endif
-
-extern void disable_irq_nosync(unsigned int irq);
-extern void disable_irq(unsigned int irq);
-extern void disable_percpu_irq(unsigned int irq);
-extern void enable_irq(unsigned int irq);
-extern void enable_percpu_irq(unsigned int irq, unsigned int type);
-
-/* The following three functions are for the core kernel use only. */
-#ifdef CONFIG_GENERIC_HARDIRQS
-extern void suspend_device_irqs(void);
-extern void resume_device_irqs(void);
-#ifdef CONFIG_PM_SLEEP
-extern int check_wakeup_irqs(void);
-#else
-static inline int check_wakeup_irqs(void) { return 0; }
-#endif
-#else
-static inline void suspend_device_irqs(void) { };
-static inline void resume_device_irqs(void) { };
-static inline int check_wakeup_irqs(void) { return 0; }
-#endif
-
-#if defined(CONFIG_SMP) && defined(CONFIG_GENERIC_HARDIRQS)
-
-extern cpumask_var_t irq_default_affinity;
-
-extern int irq_set_affinity(unsigned int irq, const struct cpumask *cpumask);
-extern int irq_can_set_affinity(unsigned int irq);
-extern int irq_select_affinity(unsigned int irq);
-
-extern int irq_set_affinity_hint(unsigned int irq, const struct cpumask *m);
-
-/**
- * struct irq_affinity_notify - context for notification of IRQ affinity changes
- * @irq: Interrupt to which notification applies
- * @kref: Reference count, for internal use
- * @work: Work item, for internal use
- * @notify: Function to be called on change. This will be
- * called in process context.
- * @release: Function to be called on release. This will be
- * called in process context. Once registered, the
- * structure must only be freed when this function is
- * called or later.
- */
-struct irq_affinity_notify {
- unsigned int irq;
- struct kref kref;
- struct work_struct work;
- void (*notify)(struct irq_affinity_notify *, const cpumask_t *mask);
- void (*release)(struct kref *ref);
-};
-
-extern int
-irq_set_affinity_notifier(unsigned int irq, struct irq_affinity_notify *notify);
-
-static inline void irq_run_affinity_notifiers(void)
-{
- flush_scheduled_work();
-}
-
-#else /* CONFIG_SMP */
-
-static inline int irq_set_affinity(unsigned int irq, const struct cpumask *m)
-{
- return -EINVAL;
-}
-
-static inline int irq_can_set_affinity(unsigned int irq)
-{
- return 0;
-}
-
-static inline int irq_select_affinity(unsigned int irq) { return 0; }
-
-static inline int irq_set_affinity_hint(unsigned int irq,
- const struct cpumask *m)
-{
- return -EINVAL;
-}
-#endif /* CONFIG_SMP && CONFIG_GENERIC_HARDIRQS */
-
-#ifdef CONFIG_GENERIC_HARDIRQS
-/*
- * Special lockdep variants of irq disabling/enabling.
- * These should be used for locking constructs that
- * know that a particular irq context which is disabled,
- * and which is the only irq-context user of a lock,
- * that it's safe to take the lock in the irq-disabled
- * section without disabling hardirqs.
- *
- * On !CONFIG_LOCKDEP they are equivalent to the normal
- * irq disable/enable methods.
- */
-static inline void disable_irq_nosync_lockdep(unsigned int irq)
-{
- disable_irq_nosync(irq);
-#ifdef CONFIG_LOCKDEP
- local_irq_disable();
-#endif
-}
-
-static inline void disable_irq_nosync_lockdep_irqsave(unsigned int irq, unsigned long *flags)
-{
- disable_irq_nosync(irq);
-#ifdef CONFIG_LOCKDEP
- local_irq_save(*flags);
-#endif
-}
-
-static inline void disable_irq_lockdep(unsigned int irq)
-{
- disable_irq(irq);
-#ifdef CONFIG_LOCKDEP
- local_irq_disable();
-#endif
-}
-
-static inline void enable_irq_lockdep(unsigned int irq)
-{
-#ifdef CONFIG_LOCKDEP
- local_irq_enable();
-#endif
- enable_irq(irq);
-}
-
-static inline void enable_irq_lockdep_irqrestore(unsigned int irq, unsigned long *flags)
-{
-#ifdef CONFIG_LOCKDEP
- local_irq_restore(*flags);
-#endif
- enable_irq(irq);
-}
-
-/* IRQ wakeup (PM) control: */
-extern int irq_set_irq_wake(unsigned int irq, unsigned int on);
-
-static inline int enable_irq_wake(unsigned int irq)
-{
- return irq_set_irq_wake(irq, 1);
-}
-
-static inline int disable_irq_wake(unsigned int irq)
-{
- return irq_set_irq_wake(irq, 0);
-}
-
-#else /* !CONFIG_GENERIC_HARDIRQS */
-/*
- * NOTE: non-genirq architectures, if they want to support the lock
- * validator need to define the methods below in their asm/irq.h
- * files, under an #ifdef CONFIG_LOCKDEP section.
- */
-#ifndef CONFIG_LOCKDEP
-# define disable_irq_nosync_lockdep(irq) disable_irq_nosync(irq)
-# define disable_irq_nosync_lockdep_irqsave(irq, flags) \
- disable_irq_nosync(irq)
-# define disable_irq_lockdep(irq) disable_irq(irq)
-# define enable_irq_lockdep(irq) enable_irq(irq)
-# define enable_irq_lockdep_irqrestore(irq, flags) \
- enable_irq(irq)
-# endif
-
-static inline int enable_irq_wake(unsigned int irq)
-{
- return 0;
-}
-
-static inline int disable_irq_wake(unsigned int irq)
-{
- return 0;
-}
-#endif /* CONFIG_GENERIC_HARDIRQS */
-
-
-#ifdef CONFIG_IRQ_FORCED_THREADING
-extern bool force_irqthreads;
-#else
-#define force_irqthreads (0)
-#endif
-
-#ifndef __ARCH_SET_SOFTIRQ_PENDING
-#define set_softirq_pending(x) (local_softirq_pending() = (x))
-#define or_softirq_pending(x) (local_softirq_pending() |= (x))
-#endif
-
-/* Some architectures might implement lazy enabling/disabling of
- * interrupts. In some cases, such as stop_machine, we might want
- * to ensure that after a local_irq_disable(), interrupts have
- * really been disabled in hardware. Such architectures need to
- * implement the following hook.
- */
-#ifndef hard_irq_disable
-#define hard_irq_disable() do { } while(0)
-#endif
-
-/* PLEASE, avoid to allocate new softirqs, if you need not _really_ high
- frequency threaded job scheduling. For almost all the purposes
- tasklets are more than enough. F.e. all serial device BHs et
- al. should be converted to tasklets, not to softirqs.
- */
-
-enum
-{
- HI_SOFTIRQ=0,
- TIMER_SOFTIRQ,
- NET_TX_SOFTIRQ,
- NET_RX_SOFTIRQ,
- BLOCK_SOFTIRQ,
- BLOCK_IOPOLL_SOFTIRQ,
- TASKLET_SOFTIRQ,
- SCHED_SOFTIRQ,
- HRTIMER_SOFTIRQ,
- RCU_SOFTIRQ, /* Preferable RCU should always be the last softirq */
-
- NR_SOFTIRQS
-};
-
-/* map softirq index to softirq name. update 'softirq_to_name' in
- * kernel/softirq.c when adding a new softirq.
- */
-extern char *softirq_to_name[NR_SOFTIRQS];
-
-/* softirq mask and active fields moved to irq_cpustat_t in
- * asm/hardirq.h to get better cache usage. KAO
- */
-
-struct softirq_action
-{
- void (*action)(struct softirq_action *);
-};
-
-asmlinkage void do_softirq(void);
-asmlinkage void __do_softirq(void);
-extern void open_softirq(int nr, void (*action)(struct softirq_action *));
-extern void softirq_init(void);
-extern void __raise_softirq_irqoff(unsigned int nr);
-
-extern void raise_softirq_irqoff(unsigned int nr);
-extern void raise_softirq(unsigned int nr);
-
-/* This is the worklist that queues up per-cpu softirq work.
- *
- * send_remote_sendirq() adds work to these lists, and
- * the softirq handler itself dequeues from them. The queues
- * are protected by disabling local cpu interrupts and they must
- * only be accessed by the local cpu that they are for.
- */
-DECLARE_PER_CPU(struct list_head [NR_SOFTIRQS], softirq_work_list);
-
-DECLARE_PER_CPU(struct task_struct *, ksoftirqd);
-
-static inline struct task_struct *this_cpu_ksoftirqd(void)
-{
- return this_cpu_read(ksoftirqd);
-}
-
-/* Try to send a softirq to a remote cpu. If this cannot be done, the
- * work will be queued to the local cpu.
- */
-extern void send_remote_softirq(struct call_single_data *cp, int cpu, int softirq);
-
-/* Like send_remote_softirq(), but the caller must disable local cpu interrupts
- * and compute the current cpu, passed in as 'this_cpu'.
- */
-extern void __send_remote_softirq(struct call_single_data *cp, int cpu,
- int this_cpu, int softirq);
-
-/* Tasklets --- multithreaded analogue of BHs.
-
- Main feature differing them of generic softirqs: tasklet
- is running only on one CPU simultaneously.
-
- Main feature differing them of BHs: different tasklets
- may be run simultaneously on different CPUs.
-
- Properties:
- * If tasklet_schedule() is called, then tasklet is guaranteed
- to be executed on some cpu at least once after this.
- * If the tasklet is already scheduled, but its execution is still not
- started, it will be executed only once.
- * If this tasklet is already running on another CPU (or schedule is called
- from tasklet itself), it is rescheduled for later.
- * Tasklet is strictly serialized wrt itself, but not
- wrt another tasklets. If client needs some intertask synchronization,
- he makes it with spinlocks.
- */
-
-struct tasklet_struct
-{
- struct tasklet_struct *next;
- unsigned long state;
- atomic_t count;
- void (*func)(unsigned long);
- unsigned long data;
-};
-
-#define DECLARE_TASKLET(name, func, data) \
-struct tasklet_struct name = { NULL, 0, ATOMIC_INIT(0), func, data }
-
-#define DECLARE_TASKLET_DISABLED(name, func, data) \
-struct tasklet_struct name = { NULL, 0, ATOMIC_INIT(1), func, data }
-
-
-enum
-{
- TASKLET_STATE_SCHED, /* Tasklet is scheduled for execution */
- TASKLET_STATE_RUN /* Tasklet is running (SMP only) */
-};
-
-#ifdef CONFIG_SMP
-static inline int tasklet_trylock(struct tasklet_struct *t)
-{
- return !test_and_set_bit(TASKLET_STATE_RUN, &(t)->state);
-}
-
-static inline void tasklet_unlock(struct tasklet_struct *t)
-{
- smp_mb__before_clear_bit();
- clear_bit(TASKLET_STATE_RUN, &(t)->state);
-}
-
-static inline void tasklet_unlock_wait(struct tasklet_struct *t)
-{
- while (test_bit(TASKLET_STATE_RUN, &(t)->state)) { barrier(); }
-}
-#else
-#define tasklet_trylock(t) 1
-#define tasklet_unlock_wait(t) do { } while (0)
-#define tasklet_unlock(t) do { } while (0)
-#endif
-
-extern void __tasklet_schedule(struct tasklet_struct *t);
-
-static inline void tasklet_schedule(struct tasklet_struct *t)
-{
- if (!test_and_set_bit(TASKLET_STATE_SCHED, &t->state))
- __tasklet_schedule(t);
-}
-
-extern void __tasklet_hi_schedule(struct tasklet_struct *t);
-
-static inline void tasklet_hi_schedule(struct tasklet_struct *t)
-{
- if (!test_and_set_bit(TASKLET_STATE_SCHED, &t->state))
- __tasklet_hi_schedule(t);
-}
-
-extern void __tasklet_hi_schedule_first(struct tasklet_struct *t);
-
-/*
- * This version avoids touching any other tasklets. Needed for kmemcheck
- * in order not to take any page faults while enqueueing this tasklet;
- * consider VERY carefully whether you really need this or
- * tasklet_hi_schedule()...
- */
-static inline void tasklet_hi_schedule_first(struct tasklet_struct *t)
-{
- if (!test_and_set_bit(TASKLET_STATE_SCHED, &t->state))
- __tasklet_hi_schedule_first(t);
-}
-
-
-static inline void tasklet_disable_nosync(struct tasklet_struct *t)
-{
- atomic_inc(&t->count);
- smp_mb__after_atomic_inc();
-}
-
-static inline void tasklet_disable(struct tasklet_struct *t)
-{
- tasklet_disable_nosync(t);
- tasklet_unlock_wait(t);
- smp_mb();
-}
-
-static inline void tasklet_enable(struct tasklet_struct *t)
-{
- smp_mb__before_atomic_dec();
- atomic_dec(&t->count);
-}
-
-static inline void tasklet_hi_enable(struct tasklet_struct *t)
-{
- smp_mb__before_atomic_dec();
- atomic_dec(&t->count);
-}
-
-extern void tasklet_kill(struct tasklet_struct *t);
-extern void tasklet_kill_immediate(struct tasklet_struct *t, unsigned int cpu);
-extern void tasklet_init(struct tasklet_struct *t,
- void (*func)(unsigned long), unsigned long data);
-
-struct tasklet_hrtimer {
- struct hrtimer timer;
- struct tasklet_struct tasklet;
- enum hrtimer_restart (*function)(struct hrtimer *);
-};
-
-extern void
-tasklet_hrtimer_init(struct tasklet_hrtimer *ttimer,
- enum hrtimer_restart (*function)(struct hrtimer *),
- clockid_t which_clock, enum hrtimer_mode mode);
-
-static inline
-int tasklet_hrtimer_start(struct tasklet_hrtimer *ttimer, ktime_t time,
- const enum hrtimer_mode mode)
-{
- return hrtimer_start(&ttimer->timer, time, mode);
-}
-
-static inline
-void tasklet_hrtimer_cancel(struct tasklet_hrtimer *ttimer)
-{
- hrtimer_cancel(&ttimer->timer);
- tasklet_kill(&ttimer->tasklet);
-}
-
-/*
- * Autoprobing for irqs:
- *
- * probe_irq_on() and probe_irq_off() provide robust primitives
- * for accurate IRQ probing during kernel initialization. They are
- * reasonably simple to use, are not "fooled" by spurious interrupts,
- * and, unlike other attempts at IRQ probing, they do not get hung on
- * stuck interrupts (such as unused PS2 mouse interfaces on ASUS boards).
- *
- * For reasonably foolproof probing, use them as follows:
- *
- * 1. clear and/or mask the device's internal interrupt.
- * 2. sti();
- * 3. irqs = probe_irq_on(); // "take over" all unassigned idle IRQs
- * 4. enable the device and cause it to trigger an interrupt.
- * 5. wait for the device to interrupt, using non-intrusive polling or a delay.
- * 6. irq = probe_irq_off(irqs); // get IRQ number, 0=none, negative=multiple
- * 7. service the device to clear its pending interrupt.
- * 8. loop again if paranoia is required.
- *
- * probe_irq_on() returns a mask of allocated irq's.
- *
- * probe_irq_off() takes the mask as a parameter,
- * and returns the irq number which occurred,
- * or zero if none occurred, or a negative irq number
- * if more than one irq occurred.
- */
-
-#if defined(CONFIG_GENERIC_HARDIRQS) && !defined(CONFIG_GENERIC_IRQ_PROBE)
-static inline unsigned long probe_irq_on(void)
-{
- return 0;
-}
-static inline int probe_irq_off(unsigned long val)
-{
- return 0;
-}
-static inline unsigned int probe_irq_mask(unsigned long val)
-{
- return 0;
-}
-#else
-extern unsigned long probe_irq_on(void); /* returns 0 on failure */
-extern int probe_irq_off(unsigned long); /* returns 0 or negative on failure */
-extern unsigned int probe_irq_mask(unsigned long); /* returns mask of ISA interrupts */
-#endif
-
-#ifdef CONFIG_PROC_FS
-/* Initialize /proc/irq/ */
-extern void init_irq_proc(void);
-#else
-static inline void init_irq_proc(void)
-{
-}
-#endif
-
-struct seq_file;
-int show_interrupts(struct seq_file *p, void *v);
-int arch_show_interrupts(struct seq_file *p, int prec);
-
-extern int early_irq_init(void);
-extern int arch_probe_nr_irqs(void);
-extern int arch_early_irq_init(void);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/io-mapping.h b/ANDROID_3.4.5/include/linux/io-mapping.h
deleted file mode 100644
index 657fab4e..00000000
--- a/ANDROID_3.4.5/include/linux/io-mapping.h
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * Copyright © 2008 Keith Packard <keithp@keithp.com>
- *
- * This file 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 St, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef _LINUX_IO_MAPPING_H
-#define _LINUX_IO_MAPPING_H
-
-#include <linux/types.h>
-#include <linux/slab.h>
-#include <linux/bug.h>
-#include <asm/io.h>
-#include <asm/page.h>
-
-/*
- * The io_mapping mechanism provides an abstraction for mapping
- * individual pages from an io device to the CPU in an efficient fashion.
- *
- * See Documentation/io-mapping.txt
- */
-
-#ifdef CONFIG_HAVE_ATOMIC_IOMAP
-
-#include <asm/iomap.h>
-
-struct io_mapping {
- resource_size_t base;
- unsigned long size;
- pgprot_t prot;
-};
-
-/*
- * For small address space machines, mapping large objects
- * into the kernel virtual space isn't practical. Where
- * available, use fixmap support to dynamically map pages
- * of the object at run time.
- */
-
-static inline struct io_mapping *
-io_mapping_create_wc(resource_size_t base, unsigned long size)
-{
- struct io_mapping *iomap;
- pgprot_t prot;
-
- iomap = kmalloc(sizeof(*iomap), GFP_KERNEL);
- if (!iomap)
- goto out_err;
-
- if (iomap_create_wc(base, size, &prot))
- goto out_free;
-
- iomap->base = base;
- iomap->size = size;
- iomap->prot = prot;
- return iomap;
-
-out_free:
- kfree(iomap);
-out_err:
- return NULL;
-}
-
-static inline void
-io_mapping_free(struct io_mapping *mapping)
-{
- iomap_free(mapping->base, mapping->size);
- kfree(mapping);
-}
-
-/* Atomic map/unmap */
-static inline void __iomem *
-io_mapping_map_atomic_wc(struct io_mapping *mapping,
- unsigned long offset)
-{
- resource_size_t phys_addr;
- unsigned long pfn;
-
- BUG_ON(offset >= mapping->size);
- phys_addr = mapping->base + offset;
- pfn = (unsigned long) (phys_addr >> PAGE_SHIFT);
- return iomap_atomic_prot_pfn(pfn, mapping->prot);
-}
-
-static inline void
-io_mapping_unmap_atomic(void __iomem *vaddr)
-{
- iounmap_atomic(vaddr);
-}
-
-static inline void __iomem *
-io_mapping_map_wc(struct io_mapping *mapping, unsigned long offset)
-{
- resource_size_t phys_addr;
-
- BUG_ON(offset >= mapping->size);
- phys_addr = mapping->base + offset;
-
- return ioremap_wc(phys_addr, PAGE_SIZE);
-}
-
-static inline void
-io_mapping_unmap(void __iomem *vaddr)
-{
- iounmap(vaddr);
-}
-
-#else
-
-#include <linux/uaccess.h>
-
-/* this struct isn't actually defined anywhere */
-struct io_mapping;
-
-/* Create the io_mapping object*/
-static inline struct io_mapping *
-io_mapping_create_wc(resource_size_t base, unsigned long size)
-{
- return (struct io_mapping __force *) ioremap_wc(base, size);
-}
-
-static inline void
-io_mapping_free(struct io_mapping *mapping)
-{
- iounmap((void __force __iomem *) mapping);
-}
-
-/* Atomic map/unmap */
-static inline void __iomem *
-io_mapping_map_atomic_wc(struct io_mapping *mapping,
- unsigned long offset)
-{
- pagefault_disable();
- return ((char __force __iomem *) mapping) + offset;
-}
-
-static inline void
-io_mapping_unmap_atomic(void __iomem *vaddr)
-{
- pagefault_enable();
-}
-
-/* Non-atomic map/unmap */
-static inline void __iomem *
-io_mapping_map_wc(struct io_mapping *mapping, unsigned long offset)
-{
- return ((char __force __iomem *) mapping) + offset;
-}
-
-static inline void
-io_mapping_unmap(void __iomem *vaddr)
-{
-}
-
-#endif /* HAVE_ATOMIC_IOMAP */
-
-#endif /* _LINUX_IO_MAPPING_H */
diff --git a/ANDROID_3.4.5/include/linux/io.h b/ANDROID_3.4.5/include/linux/io.h
deleted file mode 100644
index 7fd2d213..00000000
--- a/ANDROID_3.4.5/include/linux/io.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright 2006 PathScale, Inc. All Rights Reserved.
- *
- * This file 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 St, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef _LINUX_IO_H
-#define _LINUX_IO_H
-
-#include <linux/types.h>
-#include <asm/io.h>
-#include <asm/page.h>
-
-struct device;
-
-void __iowrite32_copy(void __iomem *to, const void *from, size_t count);
-void __iowrite64_copy(void __iomem *to, const void *from, size_t count);
-
-#ifdef CONFIG_MMU
-int ioremap_page_range(unsigned long addr, unsigned long end,
- phys_addr_t phys_addr, pgprot_t prot);
-#else
-static inline int ioremap_page_range(unsigned long addr, unsigned long end,
- phys_addr_t phys_addr, pgprot_t prot)
-{
- return 0;
-}
-#endif
-
-/*
- * Managed iomap interface
- */
-#ifdef CONFIG_HAS_IOPORT
-void __iomem * devm_ioport_map(struct device *dev, unsigned long port,
- unsigned int nr);
-void devm_ioport_unmap(struct device *dev, void __iomem *addr);
-#else
-static inline void __iomem *devm_ioport_map(struct device *dev,
- unsigned long port,
- unsigned int nr)
-{
- return NULL;
-}
-
-static inline void devm_ioport_unmap(struct device *dev, void __iomem *addr)
-{
-}
-#endif
-
-void __iomem *devm_ioremap(struct device *dev, resource_size_t offset,
- unsigned long size);
-void __iomem *devm_ioremap_nocache(struct device *dev, resource_size_t offset,
- unsigned long size);
-void devm_iounmap(struct device *dev, void __iomem *addr);
-int check_signature(const volatile void __iomem *io_addr,
- const unsigned char *signature, int length);
-void devm_ioremap_release(struct device *dev, void *res);
-
-#endif /* _LINUX_IO_H */
diff --git a/ANDROID_3.4.5/include/linux/ioc3.h b/ANDROID_3.4.5/include/linux/ioc3.h
deleted file mode 100644
index 38b286e9..00000000
--- a/ANDROID_3.4.5/include/linux/ioc3.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (c) 2005 Stanislaw Skowronek <skylark@linux-mips.org>
- */
-
-#ifndef _LINUX_IOC3_H
-#define _LINUX_IOC3_H
-
-#include <asm/sn/ioc3.h>
-
-#define IOC3_MAX_SUBMODULES 32
-
-#define IOC3_CLASS_NONE 0
-#define IOC3_CLASS_BASE_IP27 1
-#define IOC3_CLASS_BASE_IP30 2
-#define IOC3_CLASS_MENET_123 3
-#define IOC3_CLASS_MENET_4 4
-#define IOC3_CLASS_CADDUO 5
-#define IOC3_CLASS_SERIAL 6
-
-/* One of these per IOC3 */
-struct ioc3_driver_data {
- struct list_head list;
- int id; /* IOC3 sequence number */
- /* PCI mapping */
- unsigned long pma; /* physical address */
- struct ioc3 __iomem *vma; /* pointer to registers */
- struct pci_dev *pdev; /* PCI device */
- /* IRQ stuff */
- int dual_irq; /* set if separate IRQs are used */
- int irq_io, irq_eth; /* IRQ numbers */
- /* GPIO magic */
- spinlock_t gpio_lock;
- unsigned int gpdr_shadow;
- /* NIC identifiers */
- char nic_part[32];
- char nic_serial[16];
- char nic_mac[6];
- /* submodule set */
- int class;
- void *data[IOC3_MAX_SUBMODULES]; /* for submodule use */
- int active[IOC3_MAX_SUBMODULES]; /* set if probe succeeds */
- /* is_ir_lock must be held while
- * modifying sio_ie values, so
- * we can be sure that sio_ie is
- * not changing when we read it
- * along with sio_ir.
- */
- spinlock_t ir_lock; /* SIO_IE[SC] mod lock */
-};
-
-/* One per submodule */
-struct ioc3_submodule {
- char *name; /* descriptive submodule name */
- struct module *owner; /* owning kernel module */
- int ethernet; /* set for ethernet drivers */
- int (*probe) (struct ioc3_submodule *, struct ioc3_driver_data *);
- int (*remove) (struct ioc3_submodule *, struct ioc3_driver_data *);
- int id; /* assigned by IOC3, index for the "data" array */
- /* IRQ stuff */
- unsigned int irq_mask; /* IOC3 IRQ mask, leave clear for Ethernet */
- int reset_mask; /* non-zero if you want the ioc3.c module to reset interrupts */
- int (*intr) (struct ioc3_submodule *, struct ioc3_driver_data *, unsigned int);
- /* private submodule data */
- void *data; /* assigned by submodule */
-};
-
-/**********************************
- * Functions needed by submodules *
- **********************************/
-
-#define IOC3_W_IES 0
-#define IOC3_W_IEC 1
-
-/* registers a submodule for all existing and future IOC3 chips */
-extern int ioc3_register_submodule(struct ioc3_submodule *);
-/* unregisters a submodule */
-extern void ioc3_unregister_submodule(struct ioc3_submodule *);
-/* enables IRQs indicated by irq_mask for a specified IOC3 chip */
-extern void ioc3_enable(struct ioc3_submodule *, struct ioc3_driver_data *, unsigned int);
-/* ackowledges specified IRQs */
-extern void ioc3_ack(struct ioc3_submodule *, struct ioc3_driver_data *, unsigned int);
-/* disables IRQs indicated by irq_mask for a specified IOC3 chip */
-extern void ioc3_disable(struct ioc3_submodule *, struct ioc3_driver_data *, unsigned int);
-/* atomically sets GPCR bits */
-extern void ioc3_gpcr_set(struct ioc3_driver_data *, unsigned int);
-/* general ireg writer */
-extern void ioc3_write_ireg(struct ioc3_driver_data *idd, uint32_t value, int reg);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ioc4.h b/ANDROID_3.4.5/include/linux/ioc4.h
deleted file mode 100644
index 51e2b9fb..00000000
--- a/ANDROID_3.4.5/include/linux/ioc4.h
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (c) 2005 Silicon Graphics, Inc. All Rights Reserved.
- */
-
-#ifndef _LINUX_IOC4_H
-#define _LINUX_IOC4_H
-
-#include <linux/interrupt.h>
-
-/***************
- * Definitions *
- ***************/
-
-/* Miscellaneous values inherent to hardware */
-
-#define IOC4_EXTINT_COUNT_DIVISOR 520 /* PCI clocks per COUNT tick */
-
-/***********************************
- * Structures needed by subdrivers *
- ***********************************/
-
-/* This structure fully describes the IOC4 miscellaneous registers which
- * appear at bar[0]+0x00000 through bar[0]+0x0005c. The corresponding
- * PCI resource is managed by the main IOC4 driver because it contains
- * registers of interest to many different IOC4 subdrivers.
- */
-struct ioc4_misc_regs {
- /* Miscellaneous IOC4 registers */
- union ioc4_pci_err_addr_l {
- uint32_t raw;
- struct {
- uint32_t valid:1; /* Address captured */
- uint32_t master_id:4; /* Unit causing error
- * 0/1: Serial port 0 TX/RX
- * 2/3: Serial port 1 TX/RX
- * 4/5: Serial port 2 TX/RX
- * 6/7: Serial port 3 TX/RX
- * 8: ATA/ATAPI
- * 9-15: Undefined
- */
- uint32_t mul_err:1; /* Multiple errors occurred */
- uint32_t addr:26; /* Bits 31-6 of error addr */
- } fields;
- } pci_err_addr_l;
- uint32_t pci_err_addr_h; /* Bits 63-32 of error addr */
- union ioc4_sio_int {
- uint32_t raw;
- struct {
- uint8_t tx_mt:1; /* TX ring buffer empty */
- uint8_t rx_full:1; /* RX ring buffer full */
- uint8_t rx_high:1; /* RX high-water exceeded */
- uint8_t rx_timer:1; /* RX timer has triggered */
- uint8_t delta_dcd:1; /* DELTA_DCD seen */
- uint8_t delta_cts:1; /* DELTA_CTS seen */
- uint8_t intr_pass:1; /* Interrupt pass-through */
- uint8_t tx_explicit:1; /* TX, MCW, or delay complete */
- } fields[4];
- } sio_ir; /* Serial interrupt state */
- union ioc4_other_int {
- uint32_t raw;
- struct {
- uint32_t ata_int:1; /* ATA port passthru */
- uint32_t ata_memerr:1; /* ATA halted by mem error */
- uint32_t memerr:4; /* Serial halted by mem err */
- uint32_t kbd_int:1; /* kbd/mouse intr asserted */
- uint32_t reserved:16; /* zero */
- uint32_t rt_int:1; /* INT_OUT section latch */
- uint32_t gen_int:8; /* Intr. from generic pins */
- } fields;
- } other_ir; /* Other interrupt state */
- union ioc4_sio_int sio_ies; /* Serial interrupt enable set */
- union ioc4_other_int other_ies; /* Other interrupt enable set */
- union ioc4_sio_int sio_iec; /* Serial interrupt enable clear */
- union ioc4_other_int other_iec; /* Other interrupt enable clear */
- union ioc4_sio_cr {
- uint32_t raw;
- struct {
- uint32_t cmd_pulse:4; /* Bytebus strobe width */
- uint32_t arb_diag:3; /* PCI bus requester */
- uint32_t sio_diag_idle:1; /* Active ser req? */
- uint32_t ata_diag_idle:1; /* Active ATA req? */
- uint32_t ata_diag_active:1; /* ATA req is winner */
- uint32_t reserved:22; /* zero */
- } fields;
- } sio_cr;
- uint32_t unused1;
- union ioc4_int_out {
- uint32_t raw;
- struct {
- uint32_t count:16; /* Period control */
- uint32_t mode:3; /* Output signal shape */
- uint32_t reserved:11; /* zero */
- uint32_t diag:1; /* Timebase control */
- uint32_t int_out:1; /* Current value */
- } fields;
- } int_out; /* External interrupt output control */
- uint32_t unused2;
- union ioc4_gpcr {
- uint32_t raw;
- struct {
- uint32_t dir:8; /* Pin direction */
- uint32_t edge:8; /* Edge/level mode */
- uint32_t reserved1:4; /* zero */
- uint32_t int_out_en:1; /* INT_OUT enable */
- uint32_t reserved2:11; /* zero */
- } fields;
- } gpcr_s; /* Generic PIO control set */
- union ioc4_gpcr gpcr_c; /* Generic PIO control clear */
- union ioc4_gpdr {
- uint32_t raw;
- struct {
- uint32_t gen_pin:8; /* State of pins */
- uint32_t reserved:24;
- } fields;
- } gpdr; /* Generic PIO data */
- uint32_t unused3;
- union ioc4_gppr {
- uint32_t raw;
- struct {
- uint32_t gen_pin:1; /* Single pin state */
- uint32_t reserved:31;
- } fields;
- } gppr[8]; /* Generic PIO pins */
-};
-
-/* Masks for GPCR DIR pins */
-#define IOC4_GPCR_DIR_0 0x01 /* External interrupt output */
-#define IOC4_GPCR_DIR_1 0x02 /* External interrupt input */
-#define IOC4_GPCR_DIR_2 0x04
-#define IOC4_GPCR_DIR_3 0x08 /* Keyboard/mouse presence */
-#define IOC4_GPCR_DIR_4 0x10 /* Ser. port 0 xcvr select (0=232, 1=422) */
-#define IOC4_GPCR_DIR_5 0x20 /* Ser. port 1 xcvr select (0=232, 1=422) */
-#define IOC4_GPCR_DIR_6 0x40 /* Ser. port 2 xcvr select (0=232, 1=422) */
-#define IOC4_GPCR_DIR_7 0x80 /* Ser. port 3 xcvr select (0=232, 1=422) */
-
-/* Masks for GPCR EDGE pins */
-#define IOC4_GPCR_EDGE_0 0x01
-#define IOC4_GPCR_EDGE_1 0x02 /* External interrupt input */
-#define IOC4_GPCR_EDGE_2 0x04
-#define IOC4_GPCR_EDGE_3 0x08
-#define IOC4_GPCR_EDGE_4 0x10
-#define IOC4_GPCR_EDGE_5 0x20
-#define IOC4_GPCR_EDGE_6 0x40
-#define IOC4_GPCR_EDGE_7 0x80
-
-#define IOC4_VARIANT_IO9 0x0900
-#define IOC4_VARIANT_PCI_RT 0x0901
-#define IOC4_VARIANT_IO10 0x1000
-
-/* One of these per IOC4 */
-struct ioc4_driver_data {
- struct list_head idd_list;
- unsigned long idd_bar0;
- struct pci_dev *idd_pdev;
- const struct pci_device_id *idd_pci_id;
- struct ioc4_misc_regs __iomem *idd_misc_regs;
- unsigned long count_period;
- void *idd_serial_data;
- unsigned int idd_variant;
-};
-
-/* One per submodule */
-struct ioc4_submodule {
- struct list_head is_list;
- char *is_name;
- struct module *is_owner;
- int (*is_probe) (struct ioc4_driver_data *);
- int (*is_remove) (struct ioc4_driver_data *);
-};
-
-#define IOC4_NUM_CARDS 8 /* max cards per partition */
-
-/**********************************
- * Functions needed by submodules *
- **********************************/
-
-extern int ioc4_register_submodule(struct ioc4_submodule *);
-extern void ioc4_unregister_submodule(struct ioc4_submodule *);
-
-#endif /* _LINUX_IOC4_H */
diff --git a/ANDROID_3.4.5/include/linux/iocontext.h b/ANDROID_3.4.5/include/linux/iocontext.h
deleted file mode 100644
index 1a301806..00000000
--- a/ANDROID_3.4.5/include/linux/iocontext.h
+++ /dev/null
@@ -1,152 +0,0 @@
-#ifndef IOCONTEXT_H
-#define IOCONTEXT_H
-
-#include <linux/radix-tree.h>
-#include <linux/rcupdate.h>
-#include <linux/workqueue.h>
-
-enum {
- ICQ_IOPRIO_CHANGED = 1 << 0,
- ICQ_CGROUP_CHANGED = 1 << 1,
- ICQ_EXITED = 1 << 2,
-
- ICQ_CHANGED_MASK = ICQ_IOPRIO_CHANGED | ICQ_CGROUP_CHANGED,
-};
-
-/*
- * An io_cq (icq) is association between an io_context (ioc) and a
- * request_queue (q). This is used by elevators which need to track
- * information per ioc - q pair.
- *
- * Elevator can request use of icq by setting elevator_type->icq_size and
- * ->icq_align. Both size and align must be larger than that of struct
- * io_cq and elevator can use the tail area for private information. The
- * recommended way to do this is defining a struct which contains io_cq as
- * the first member followed by private members and using its size and
- * align. For example,
- *
- * struct snail_io_cq {
- * struct io_cq icq;
- * int poke_snail;
- * int feed_snail;
- * };
- *
- * struct elevator_type snail_elv_type {
- * .ops = { ... },
- * .icq_size = sizeof(struct snail_io_cq),
- * .icq_align = __alignof__(struct snail_io_cq),
- * ...
- * };
- *
- * If icq_size is set, block core will manage icq's. All requests will
- * have its ->elv.icq field set before elevator_ops->elevator_set_req_fn()
- * is called and be holding a reference to the associated io_context.
- *
- * Whenever a new icq is created, elevator_ops->elevator_init_icq_fn() is
- * called and, on destruction, ->elevator_exit_icq_fn(). Both functions
- * are called with both the associated io_context and queue locks held.
- *
- * Elevator is allowed to lookup icq using ioc_lookup_icq() while holding
- * queue lock but the returned icq is valid only until the queue lock is
- * released. Elevators can not and should not try to create or destroy
- * icq's.
- *
- * As icq's are linked from both ioc and q, the locking rules are a bit
- * complex.
- *
- * - ioc lock nests inside q lock.
- *
- * - ioc->icq_list and icq->ioc_node are protected by ioc lock.
- * q->icq_list and icq->q_node by q lock.
- *
- * - ioc->icq_tree and ioc->icq_hint are protected by ioc lock, while icq
- * itself is protected by q lock. However, both the indexes and icq
- * itself are also RCU managed and lookup can be performed holding only
- * the q lock.
- *
- * - icq's are not reference counted. They are destroyed when either the
- * ioc or q goes away. Each request with icq set holds an extra
- * reference to ioc to ensure it stays until the request is completed.
- *
- * - Linking and unlinking icq's are performed while holding both ioc and q
- * locks. Due to the lock ordering, q exit is simple but ioc exit
- * requires reverse-order double lock dance.
- */
-struct io_cq {
- struct request_queue *q;
- struct io_context *ioc;
-
- /*
- * q_node and ioc_node link io_cq through icq_list of q and ioc
- * respectively. Both fields are unused once ioc_exit_icq() is
- * called and shared with __rcu_icq_cache and __rcu_head which are
- * used for RCU free of io_cq.
- */
- union {
- struct list_head q_node;
- struct kmem_cache *__rcu_icq_cache;
- };
- union {
- struct hlist_node ioc_node;
- struct rcu_head __rcu_head;
- };
-
- unsigned int flags;
-};
-
-/*
- * I/O subsystem state of the associated processes. It is refcounted
- * and kmalloc'ed. These could be shared between processes.
- */
-struct io_context {
- atomic_long_t refcount;
- atomic_t nr_tasks;
-
- /* all the fields below are protected by this lock */
- spinlock_t lock;
-
- unsigned short ioprio;
-
- /*
- * For request batching
- */
- int nr_batch_requests; /* Number of requests left in the batch */
- unsigned long last_waited; /* Time last woken after wait for request */
-
- struct radix_tree_root icq_tree;
- struct io_cq __rcu *icq_hint;
- struct hlist_head icq_list;
-
- struct work_struct release_work;
-};
-
-static inline struct io_context *ioc_task_link(struct io_context *ioc)
-{
- /*
- * if ref count is zero, don't allow sharing (ioc is going away, it's
- * a race).
- */
- if (ioc && atomic_long_inc_not_zero(&ioc->refcount)) {
- atomic_inc(&ioc->nr_tasks);
- return ioc;
- }
-
- return NULL;
-}
-
-struct task_struct;
-#ifdef CONFIG_BLOCK
-void put_io_context(struct io_context *ioc);
-void exit_io_context(struct task_struct *task);
-struct io_context *get_task_io_context(struct task_struct *task,
- gfp_t gfp_flags, int node);
-void ioc_ioprio_changed(struct io_context *ioc, int ioprio);
-void ioc_cgroup_changed(struct io_context *ioc);
-unsigned int icq_get_changed(struct io_cq *icq);
-#else
-struct io_context;
-static inline void put_io_context(struct io_context *ioc) { }
-static inline void exit_io_context(struct task_struct *task) { }
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ioctl.h b/ANDROID_3.4.5/include/linux/ioctl.h
deleted file mode 100644
index aa91eb39..00000000
--- a/ANDROID_3.4.5/include/linux/ioctl.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef _LINUX_IOCTL_H
-#define _LINUX_IOCTL_H
-
-#include <asm/ioctl.h>
-
-#endif /* _LINUX_IOCTL_H */
-
diff --git a/ANDROID_3.4.5/include/linux/iommu-helper.h b/ANDROID_3.4.5/include/linux/iommu-helper.h
deleted file mode 100644
index 86bdeffe..00000000
--- a/ANDROID_3.4.5/include/linux/iommu-helper.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef _LINUX_IOMMU_HELPER_H
-#define _LINUX_IOMMU_HELPER_H
-
-#include <linux/kernel.h>
-
-static inline unsigned long iommu_device_max_index(unsigned long size,
- unsigned long offset,
- u64 dma_mask)
-{
- if (size + offset > dma_mask)
- return dma_mask - offset + 1;
- else
- return size;
-}
-
-extern int iommu_is_span_boundary(unsigned int index, unsigned int nr,
- unsigned long shift,
- unsigned long boundary_size);
-extern unsigned long iommu_area_alloc(unsigned long *map, unsigned long size,
- unsigned long start, unsigned int nr,
- unsigned long shift,
- unsigned long boundary_size,
- unsigned long align_mask);
-
-static inline unsigned long iommu_num_pages(unsigned long addr,
- unsigned long len,
- unsigned long io_page_size)
-{
- unsigned long size = (addr & (io_page_size - 1)) + len;
-
- return DIV_ROUND_UP(size, io_page_size);
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/iommu.h b/ANDROID_3.4.5/include/linux/iommu.h
deleted file mode 100644
index d9375804..00000000
--- a/ANDROID_3.4.5/include/linux/iommu.h
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * Copyright (C) 2007-2008 Advanced Micro Devices, Inc.
- * Author: Joerg Roedel <joerg.roedel@amd.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.
- *
- * 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
- */
-
-#ifndef __LINUX_IOMMU_H
-#define __LINUX_IOMMU_H
-
-#include <linux/errno.h>
-
-#define IOMMU_READ (1)
-#define IOMMU_WRITE (2)
-#define IOMMU_CACHE (4) /* DMA cache coherency */
-
-struct iommu_ops;
-struct bus_type;
-struct device;
-struct iommu_domain;
-
-/* iommu fault flags */
-#define IOMMU_FAULT_READ 0x0
-#define IOMMU_FAULT_WRITE 0x1
-
-typedef int (*iommu_fault_handler_t)(struct iommu_domain *,
- struct device *, unsigned long, int);
-
-struct iommu_domain {
- struct iommu_ops *ops;
- void *priv;
- iommu_fault_handler_t handler;
-};
-
-#define IOMMU_CAP_CACHE_COHERENCY 0x1
-#define IOMMU_CAP_INTR_REMAP 0x2 /* isolates device intrs */
-
-#ifdef CONFIG_IOMMU_API
-
-/**
- * struct iommu_ops - iommu ops and capabilities
- * @domain_init: init iommu domain
- * @domain_destroy: destroy iommu domain
- * @attach_dev: attach device to an iommu domain
- * @detach_dev: detach device from an iommu domain
- * @map: map a physically contiguous memory region to an iommu domain
- * @unmap: unmap a physically contiguous memory region from an iommu domain
- * @iova_to_phys: translate iova to physical address
- * @domain_has_cap: domain capabilities query
- * @commit: commit iommu domain
- * @pgsize_bitmap: bitmap of supported page sizes
- */
-struct iommu_ops {
- int (*domain_init)(struct iommu_domain *domain);
- void (*domain_destroy)(struct iommu_domain *domain);
- int (*attach_dev)(struct iommu_domain *domain, struct device *dev);
- void (*detach_dev)(struct iommu_domain *domain, struct device *dev);
- int (*map)(struct iommu_domain *domain, unsigned long iova,
- phys_addr_t paddr, size_t size, int prot);
- size_t (*unmap)(struct iommu_domain *domain, unsigned long iova,
- size_t size);
- phys_addr_t (*iova_to_phys)(struct iommu_domain *domain,
- unsigned long iova);
- int (*domain_has_cap)(struct iommu_domain *domain,
- unsigned long cap);
- int (*device_group)(struct device *dev, unsigned int *groupid);
- unsigned long pgsize_bitmap;
-};
-
-extern int bus_set_iommu(struct bus_type *bus, struct iommu_ops *ops);
-extern bool iommu_present(struct bus_type *bus);
-extern struct iommu_domain *iommu_domain_alloc(struct bus_type *bus);
-extern void iommu_domain_free(struct iommu_domain *domain);
-extern int iommu_attach_device(struct iommu_domain *domain,
- struct device *dev);
-extern void iommu_detach_device(struct iommu_domain *domain,
- struct device *dev);
-extern int iommu_map(struct iommu_domain *domain, unsigned long iova,
- phys_addr_t paddr, size_t size, int prot);
-extern size_t iommu_unmap(struct iommu_domain *domain, unsigned long iova,
- size_t size);
-extern phys_addr_t iommu_iova_to_phys(struct iommu_domain *domain,
- unsigned long iova);
-extern int iommu_domain_has_cap(struct iommu_domain *domain,
- unsigned long cap);
-extern void iommu_set_fault_handler(struct iommu_domain *domain,
- iommu_fault_handler_t handler);
-extern int iommu_device_group(struct device *dev, unsigned int *groupid);
-
-/**
- * report_iommu_fault() - report about an IOMMU fault to the IOMMU framework
- * @domain: the iommu domain where the fault has happened
- * @dev: the device where the fault has happened
- * @iova: the faulting address
- * @flags: mmu fault flags (e.g. IOMMU_FAULT_READ/IOMMU_FAULT_WRITE/...)
- *
- * This function should be called by the low-level IOMMU implementations
- * whenever IOMMU faults happen, to allow high-level users, that are
- * interested in such events, to know about them.
- *
- * This event may be useful for several possible use cases:
- * - mere logging of the event
- * - dynamic TLB/PTE loading
- * - if restarting of the faulting device is required
- *
- * Returns 0 on success and an appropriate error code otherwise (if dynamic
- * PTE/TLB loading will one day be supported, implementations will be able
- * to tell whether it succeeded or not according to this return value).
- *
- * Specifically, -ENOSYS is returned if a fault handler isn't installed
- * (though fault handlers can also return -ENOSYS, in case they want to
- * elicit the default behavior of the IOMMU drivers).
- */
-static inline int report_iommu_fault(struct iommu_domain *domain,
- struct device *dev, unsigned long iova, int flags)
-{
- int ret = -ENOSYS;
-
- /*
- * if upper layers showed interest and installed a fault handler,
- * invoke it.
- */
- if (domain->handler)
- ret = domain->handler(domain, dev, iova, flags);
-
- return ret;
-}
-
-#else /* CONFIG_IOMMU_API */
-
-struct iommu_ops {};
-
-static inline bool iommu_present(struct bus_type *bus)
-{
- return false;
-}
-
-static inline struct iommu_domain *iommu_domain_alloc(struct bus_type *bus)
-{
- return NULL;
-}
-
-static inline void iommu_domain_free(struct iommu_domain *domain)
-{
-}
-
-static inline int iommu_attach_device(struct iommu_domain *domain,
- struct device *dev)
-{
- return -ENODEV;
-}
-
-static inline void iommu_detach_device(struct iommu_domain *domain,
- struct device *dev)
-{
-}
-
-static inline int iommu_map(struct iommu_domain *domain, unsigned long iova,
- phys_addr_t paddr, int gfp_order, int prot)
-{
- return -ENODEV;
-}
-
-static inline int iommu_unmap(struct iommu_domain *domain, unsigned long iova,
- int gfp_order)
-{
- return -ENODEV;
-}
-
-static inline phys_addr_t iommu_iova_to_phys(struct iommu_domain *domain,
- unsigned long iova)
-{
- return 0;
-}
-
-static inline int domain_has_cap(struct iommu_domain *domain,
- unsigned long cap)
-{
- return 0;
-}
-
-static inline void iommu_set_fault_handler(struct iommu_domain *domain,
- iommu_fault_handler_t handler)
-{
-}
-
-static inline int iommu_device_group(struct device *dev, unsigned int *groupid)
-{
- return -ENODEV;
-}
-
-#endif /* CONFIG_IOMMU_API */
-
-#endif /* __LINUX_IOMMU_H */
diff --git a/ANDROID_3.4.5/include/linux/ion.h b/ANDROID_3.4.5/include/linux/ion.h
deleted file mode 100644
index a7d399c4..00000000
--- a/ANDROID_3.4.5/include/linux/ion.h
+++ /dev/null
@@ -1,356 +0,0 @@
-/*
- * include/linux/ion.h
- *
- * Copyright (C) 2011 Google, Inc.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#ifndef _LINUX_ION_H
-#define _LINUX_ION_H
-
-#include <linux/types.h>
-
-struct ion_handle;
-/**
- * enum ion_heap_types - list of all possible types of heaps
- * @ION_HEAP_TYPE_SYSTEM: memory allocated via vmalloc
- * @ION_HEAP_TYPE_SYSTEM_CONTIG: memory allocated via kmalloc
- * @ION_HEAP_TYPE_CARVEOUT: memory allocated from a prereserved
- * carveout heap, allocations are physically
- * contiguous
- * @ION_NUM_HEAPS: helper for iterating over heaps, a bit mask
- * is used to identify the heaps, so only 32
- * total heap types are supported
- */
-enum ion_heap_type {
- ION_HEAP_TYPE_SYSTEM,
- ION_HEAP_TYPE_SYSTEM_CONTIG,
- ION_HEAP_TYPE_CARVEOUT,
- ION_HEAP_TYPE_CUSTOM, /* must be last so device specific heaps always
- are at the end of this enum */
- ION_NUM_HEAPS = 16,
-};
-
-#define ION_HEAP_SYSTEM_MASK (1 << ION_HEAP_TYPE_SYSTEM)
-#define ION_HEAP_SYSTEM_CONTIG_MASK (1 << ION_HEAP_TYPE_SYSTEM_CONTIG)
-#define ION_HEAP_CARVEOUT_MASK (1 << ION_HEAP_TYPE_CARVEOUT)
-
-/**
- * heap flags - the lower 16 bits are used by core ion, the upper 16
- * bits are reserved for use by the heaps themselves.
- */
-#define ION_FLAG_CACHED 1 /* mappings of this buffer should be
- cached, ion will do cache
- maintenance when the buffer is
- mapped for dma */
-#define ION_FLAG_CACHED_NEEDS_SYNC 2 /* mappings of this buffer will created
- at mmap time, if this is set
- caches must be managed manually */
-
-#ifdef __KERNEL__
-struct ion_device;
-struct ion_heap;
-struct ion_mapper;
-struct ion_client;
-struct ion_buffer;
-
-/* This should be removed some day when phys_addr_t's are fully
- plumbed in the kernel, and all instances of ion_phys_addr_t should
- be converted to phys_addr_t. For the time being many kernel interfaces
- do not accept phys_addr_t's that would have to */
-#define ion_phys_addr_t unsigned long
-
-/**
- * struct ion_platform_heap - defines a heap in the given platform
- * @type: type of the heap from ion_heap_type enum
- * @id: unique identifier for heap. When allocating (lower numbers
- * will be allocated from first)
- * @name: used for debug purposes
- * @base: base address of heap in physical memory if applicable
- * @size: size of the heap in bytes if applicable
- *
- * Provided by the board file.
- */
-struct ion_platform_heap {
- enum ion_heap_type type;
- unsigned int id;
- const char *name;
- ion_phys_addr_t base;
- size_t size;
-};
-
-/**
- * struct ion_platform_data - array of platform heaps passed from board file
- * @nr: number of structures in the array
- * @heaps: array of platform_heap structions
- *
- * Provided by the board file in the form of platform data to a platform device.
- */
-struct ion_platform_data {
- int nr;
- struct ion_platform_heap heaps[];
-};
-
-/**
- * ion_reserve() - reserve memory for ion heaps if applicable
- * @data: platform data specifying starting physical address and
- * size
- *
- * Calls memblock reserve to set aside memory for heaps that are
- * located at specific memory addresses or of specfic sizes not
- * managed by the kernel
- */
-void ion_reserve(struct ion_platform_data *data);
-
-/**
- * ion_client_create() - allocate a client and returns it
- * @dev: the global ion device
- * @heap_mask: mask of heaps this client can allocate from
- * @name: used for debugging
- */
-struct ion_client *ion_client_create(struct ion_device *dev,
- unsigned int heap_mask, const char *name);
-
-/**
- * ion_client_destroy() - free's a client and all it's handles
- * @client: the client
- *
- * Free the provided client and all it's resources including
- * any handles it is holding.
- */
-void ion_client_destroy(struct ion_client *client);
-
-/**
- * ion_alloc - allocate ion memory
- * @client: the client
- * @len: size of the allocation
- * @align: requested allocation alignment, lots of hardware blocks have
- * alignment requirements of some kind
- * @heap_mask: mask of heaps to allocate from, if multiple bits are set
- * heaps will be tried in order from lowest to highest order bit
- * @flags: heap flags, the low 16 bits are consumed by ion, the high 16
- * bits are passed on to the respective heap and can be heap
- * custom
- *
- * Allocate memory in one of the heaps provided in heap mask and return
- * an opaque handle to it.
- */
-struct ion_handle *ion_alloc(struct ion_client *client, size_t len,
- size_t align, unsigned int heap_mask,
- unsigned int flags);
-
-/**
- * ion_free - free a handle
- * @client: the client
- * @handle: the handle to free
- *
- * Free the provided handle.
- */
-void ion_free(struct ion_client *client, struct ion_handle *handle);
-
-/**
- * ion_phys - returns the physical address and len of a handle
- * @client: the client
- * @handle: the handle
- * @addr: a pointer to put the address in
- * @len: a pointer to put the length in
- *
- * This function queries the heap for a particular handle to get the
- * handle's physical address. It't output is only correct if
- * a heap returns physically contiguous memory -- in other cases
- * this api should not be implemented -- ion_sg_table should be used
- * instead. Returns -EINVAL if the handle is invalid. This has
- * no implications on the reference counting of the handle --
- * the returned value may not be valid if the caller is not
- * holding a reference.
- */
-int ion_phys(struct ion_client *client, struct ion_handle *handle,
- ion_phys_addr_t *addr, size_t *len);
-
-/**
- * ion_map_dma - return an sg_table describing a handle
- * @client: the client
- * @handle: the handle
- *
- * This function returns the sg_table describing
- * a particular ion handle.
- */
-struct sg_table *ion_sg_table(struct ion_client *client,
- struct ion_handle *handle);
-
-/**
- * ion_map_kernel - create mapping for the given handle
- * @client: the client
- * @handle: handle to map
- *
- * Map the given handle into the kernel and return a kernel address that
- * can be used to access this address.
- */
-void *ion_map_kernel(struct ion_client *client, struct ion_handle *handle);
-
-/**
- * ion_unmap_kernel() - destroy a kernel mapping for a handle
- * @client: the client
- * @handle: handle to unmap
- */
-void ion_unmap_kernel(struct ion_client *client, struct ion_handle *handle);
-
-/**
- * ion_share_dma_buf() - given an ion client, create a dma-buf fd
- * @client: the client
- * @handle: the handle
- */
-int ion_share_dma_buf(struct ion_client *client, struct ion_handle *handle);
-
-/**
- * ion_import_dma_buf() - given an dma-buf fd from the ion exporter get handle
- * @client: the client
- * @fd: the dma-buf fd
- *
- * Given an dma-buf fd that was allocated through ion via ion_share_dma_buf,
- * import that fd and return a handle representing it. If a dma-buf from
- * another exporter is passed in this function will return ERR_PTR(-EINVAL)
- */
-struct ion_handle *ion_import_dma_buf(struct ion_client *client, int fd);
-
-#endif /* __KERNEL__ */
-
-/**
- * DOC: Ion Userspace API
- *
- * create a client by opening /dev/ion
- * most operations handled via following ioctls
- *
- */
-
-/**
- * struct ion_allocation_data - metadata passed from userspace for allocations
- * @len: size of the allocation
- * @align: required alignment of the allocation
- * @heap_mask: mask of heaps to allocate from
- * @flags: flags passed to heap
- * @handle: pointer that will be populated with a cookie to use to refer
- * to this allocation
- *
- * Provided by userspace as an argument to the ioctl
- */
-struct ion_allocation_data {
- size_t len;
- size_t align;
- unsigned int heap_mask;
- unsigned int flags;
- struct ion_handle *handle;
-};
-
-/**
- * struct ion_fd_data - metadata passed to/from userspace for a handle/fd pair
- * @handle: a handle
- * @fd: a file descriptor representing that handle
- *
- * For ION_IOC_SHARE or ION_IOC_MAP userspace populates the handle field with
- * the handle returned from ion alloc, and the kernel returns the file
- * descriptor to share or map in the fd field. For ION_IOC_IMPORT, userspace
- * provides the file descriptor and the kernel returns the handle.
- */
-struct ion_fd_data {
- struct ion_handle *handle;
- int fd;
-};
-
-/**
- * struct ion_handle_data - a handle passed to/from the kernel
- * @handle: a handle
- */
-struct ion_handle_data {
- struct ion_handle *handle;
-};
-
-/**
- * struct ion_custom_data - metadata passed to/from userspace for a custom ioctl
- * @cmd: the custom ioctl function to call
- * @arg: additional data to pass to the custom ioctl, typically a user
- * pointer to a predefined structure
- *
- * This works just like the regular cmd and arg fields of an ioctl.
- */
-struct ion_custom_data {
- unsigned int cmd;
- unsigned long arg;
-};
-
-#define ION_IOC_MAGIC 'I'
-
-/**
- * DOC: ION_IOC_ALLOC - allocate memory
- *
- * Takes an ion_allocation_data struct and returns it with the handle field
- * populated with the opaque handle for the allocation.
- */
-#define ION_IOC_ALLOC _IOWR(ION_IOC_MAGIC, 0, \
- struct ion_allocation_data)
-
-/**
- * DOC: ION_IOC_FREE - free memory
- *
- * Takes an ion_handle_data struct and frees the handle.
- */
-#define ION_IOC_FREE _IOWR(ION_IOC_MAGIC, 1, struct ion_handle_data)
-
-/**
- * DOC: ION_IOC_MAP - get a file descriptor to mmap
- *
- * Takes an ion_fd_data struct with the handle field populated with a valid
- * opaque handle. Returns the struct with the fd field set to a file
- * descriptor open in the current address space. This file descriptor
- * can then be used as an argument to mmap.
- */
-#define ION_IOC_MAP _IOWR(ION_IOC_MAGIC, 2, struct ion_fd_data)
-
-/**
- * DOC: ION_IOC_SHARE - creates a file descriptor to use to share an allocation
- *
- * Takes an ion_fd_data struct with the handle field populated with a valid
- * opaque handle. Returns the struct with the fd field set to a file
- * descriptor open in the current address space. This file descriptor
- * can then be passed to another process. The corresponding opaque handle can
- * be retrieved via ION_IOC_IMPORT.
- */
-#define ION_IOC_SHARE _IOWR(ION_IOC_MAGIC, 4, struct ion_fd_data)
-
-/**
- * DOC: ION_IOC_IMPORT - imports a shared file descriptor
- *
- * Takes an ion_fd_data struct with the fd field populated with a valid file
- * descriptor obtained from ION_IOC_SHARE and returns the struct with the handle
- * filed set to the corresponding opaque handle.
- */
-#define ION_IOC_IMPORT _IOWR(ION_IOC_MAGIC, 5, struct ion_fd_data)
-
-/**
- * DOC: ION_IOC_SYNC - syncs a shared file descriptors to memory
- *
- * Deprecated in favor of using the dma_buf api's correctly (syncing
- * will happend automatically when the buffer is mapped to a device).
- * If necessary should be used after touching a cached buffer from the cpu,
- * this will make the buffer in memory coherent.
- */
-#define ION_IOC_SYNC _IOWR(ION_IOC_MAGIC, 7, struct ion_fd_data)
-
-/**
- * DOC: ION_IOC_CUSTOM - call architecture specific ion ioctl
- *
- * Takes the argument of the architecture specific ioctl to call and
- * passes appropriate userdata for that ioctl
- */
-#define ION_IOC_CUSTOM _IOWR(ION_IOC_MAGIC, 6, struct ion_custom_data)
-
-#endif /* _LINUX_ION_H */
diff --git a/ANDROID_3.4.5/include/linux/ioport.h b/ANDROID_3.4.5/include/linux/ioport.h
deleted file mode 100644
index e885ba23..00000000
--- a/ANDROID_3.4.5/include/linux/ioport.h
+++ /dev/null
@@ -1,227 +0,0 @@
-/*
- * ioport.h Definitions of routines for detecting, reserving and
- * allocating system resources.
- *
- * Authors: Linus Torvalds
- */
-
-#ifndef _LINUX_IOPORT_H
-#define _LINUX_IOPORT_H
-
-#ifndef __ASSEMBLY__
-#include <linux/compiler.h>
-#include <linux/types.h>
-/*
- * Resources are tree-like, allowing
- * nesting etc..
- */
-struct resource {
- resource_size_t start;
- resource_size_t end;
- const char *name;
- unsigned long flags;
- struct resource *parent, *sibling, *child;
-};
-
-/*
- * IO resources have these defined flags.
- */
-#define IORESOURCE_BITS 0x000000ff /* Bus-specific bits */
-
-#define IORESOURCE_TYPE_BITS 0x00001f00 /* Resource type */
-#define IORESOURCE_IO 0x00000100
-#define IORESOURCE_MEM 0x00000200
-#define IORESOURCE_IRQ 0x00000400
-#define IORESOURCE_DMA 0x00000800
-#define IORESOURCE_BUS 0x00001000
-
-#define IORESOURCE_PREFETCH 0x00002000 /* No side effects */
-#define IORESOURCE_READONLY 0x00004000
-#define IORESOURCE_CACHEABLE 0x00008000
-#define IORESOURCE_RANGELENGTH 0x00010000
-#define IORESOURCE_SHADOWABLE 0x00020000
-
-#define IORESOURCE_SIZEALIGN 0x00040000 /* size indicates alignment */
-#define IORESOURCE_STARTALIGN 0x00080000 /* start field is alignment */
-
-#define IORESOURCE_MEM_64 0x00100000
-#define IORESOURCE_WINDOW 0x00200000 /* forwarded by bridge */
-#define IORESOURCE_MUXED 0x00400000 /* Resource is software muxed */
-
-#define IORESOURCE_EXCLUSIVE 0x08000000 /* Userland may not map this resource */
-#define IORESOURCE_DISABLED 0x10000000
-#define IORESOURCE_UNSET 0x20000000
-#define IORESOURCE_AUTO 0x40000000
-#define IORESOURCE_BUSY 0x80000000 /* Driver has marked this resource busy */
-
-/* PnP IRQ specific bits (IORESOURCE_BITS) */
-#define IORESOURCE_IRQ_HIGHEDGE (1<<0)
-#define IORESOURCE_IRQ_LOWEDGE (1<<1)
-#define IORESOURCE_IRQ_HIGHLEVEL (1<<2)
-#define IORESOURCE_IRQ_LOWLEVEL (1<<3)
-#define IORESOURCE_IRQ_SHAREABLE (1<<4)
-#define IORESOURCE_IRQ_OPTIONAL (1<<5)
-
-/* PnP DMA specific bits (IORESOURCE_BITS) */
-#define IORESOURCE_DMA_TYPE_MASK (3<<0)
-#define IORESOURCE_DMA_8BIT (0<<0)
-#define IORESOURCE_DMA_8AND16BIT (1<<0)
-#define IORESOURCE_DMA_16BIT (2<<0)
-
-#define IORESOURCE_DMA_MASTER (1<<2)
-#define IORESOURCE_DMA_BYTE (1<<3)
-#define IORESOURCE_DMA_WORD (1<<4)
-
-#define IORESOURCE_DMA_SPEED_MASK (3<<6)
-#define IORESOURCE_DMA_COMPATIBLE (0<<6)
-#define IORESOURCE_DMA_TYPEA (1<<6)
-#define IORESOURCE_DMA_TYPEB (2<<6)
-#define IORESOURCE_DMA_TYPEF (3<<6)
-
-/* PnP memory I/O specific bits (IORESOURCE_BITS) */
-#define IORESOURCE_MEM_WRITEABLE (1<<0) /* dup: IORESOURCE_READONLY */
-#define IORESOURCE_MEM_CACHEABLE (1<<1) /* dup: IORESOURCE_CACHEABLE */
-#define IORESOURCE_MEM_RANGELENGTH (1<<2) /* dup: IORESOURCE_RANGELENGTH */
-#define IORESOURCE_MEM_TYPE_MASK (3<<3)
-#define IORESOURCE_MEM_8BIT (0<<3)
-#define IORESOURCE_MEM_16BIT (1<<3)
-#define IORESOURCE_MEM_8AND16BIT (2<<3)
-#define IORESOURCE_MEM_32BIT (3<<3)
-#define IORESOURCE_MEM_SHADOWABLE (1<<5) /* dup: IORESOURCE_SHADOWABLE */
-#define IORESOURCE_MEM_EXPANSIONROM (1<<6)
-
-/* PnP I/O specific bits (IORESOURCE_BITS) */
-#define IORESOURCE_IO_16BIT_ADDR (1<<0)
-#define IORESOURCE_IO_FIXED (1<<1)
-
-/* PCI ROM control bits (IORESOURCE_BITS) */
-#define IORESOURCE_ROM_ENABLE (1<<0) /* ROM is enabled, same as PCI_ROM_ADDRESS_ENABLE */
-#define IORESOURCE_ROM_SHADOW (1<<1) /* ROM is copy at C000:0 */
-#define IORESOURCE_ROM_COPY (1<<2) /* ROM is alloc'd copy, resource field overlaid */
-#define IORESOURCE_ROM_BIOS_COPY (1<<3) /* ROM is BIOS copy, resource field overlaid */
-
-/* PCI control bits. Shares IORESOURCE_BITS with above PCI ROM. */
-#define IORESOURCE_PCI_FIXED (1<<4) /* Do not move resource */
-
-
-/* helpers to define resources */
-#define DEFINE_RES_NAMED(_start, _size, _name, _flags) \
- { \
- .start = (_start), \
- .end = (_start) + (_size) - 1, \
- .name = (_name), \
- .flags = (_flags), \
- }
-
-#define DEFINE_RES_IO_NAMED(_start, _size, _name) \
- DEFINE_RES_NAMED((_start), (_size), (_name), IORESOURCE_IO)
-#define DEFINE_RES_IO(_start, _size) \
- DEFINE_RES_IO_NAMED((_start), (_size), NULL)
-
-#define DEFINE_RES_MEM_NAMED(_start, _size, _name) \
- DEFINE_RES_NAMED((_start), (_size), (_name), IORESOURCE_MEM)
-#define DEFINE_RES_MEM(_start, _size) \
- DEFINE_RES_MEM_NAMED((_start), (_size), NULL)
-
-#define DEFINE_RES_IRQ_NAMED(_irq, _name) \
- DEFINE_RES_NAMED((_irq), 1, (_name), IORESOURCE_IRQ)
-#define DEFINE_RES_IRQ(_irq) \
- DEFINE_RES_IRQ_NAMED((_irq), NULL)
-
-#define DEFINE_RES_DMA_NAMED(_dma, _name) \
- DEFINE_RES_NAMED((_dma), 1, (_name), IORESOURCE_DMA)
-#define DEFINE_RES_DMA(_dma) \
- DEFINE_RES_DMA_NAMED((_dma), NULL)
-
-/* PC/ISA/whatever - the normal PC address spaces: IO and memory */
-extern struct resource ioport_resource;
-extern struct resource iomem_resource;
-
-extern struct resource *request_resource_conflict(struct resource *root, struct resource *new);
-extern int request_resource(struct resource *root, struct resource *new);
-extern int release_resource(struct resource *new);
-void release_child_resources(struct resource *new);
-extern void reserve_region_with_split(struct resource *root,
- resource_size_t start, resource_size_t end,
- const char *name);
-extern struct resource *insert_resource_conflict(struct resource *parent, struct resource *new);
-extern int insert_resource(struct resource *parent, struct resource *new);
-extern void insert_resource_expand_to_fit(struct resource *root, struct resource *new);
-extern void arch_remove_reservations(struct resource *avail);
-extern int allocate_resource(struct resource *root, struct resource *new,
- resource_size_t size, resource_size_t min,
- resource_size_t max, resource_size_t align,
- resource_size_t (*alignf)(void *,
- const struct resource *,
- resource_size_t,
- resource_size_t),
- void *alignf_data);
-struct resource *lookup_resource(struct resource *root, resource_size_t start);
-int adjust_resource(struct resource *res, resource_size_t start,
- resource_size_t size);
-resource_size_t resource_alignment(struct resource *res);
-static inline resource_size_t resource_size(const struct resource *res)
-{
- return res->end - res->start + 1;
-}
-static inline unsigned long resource_type(const struct resource *res)
-{
- return res->flags & IORESOURCE_TYPE_BITS;
-}
-
-/* Convenience shorthand with allocation */
-#define request_region(start,n,name) __request_region(&ioport_resource, (start), (n), (name), 0)
-#define request_muxed_region(start,n,name) __request_region(&ioport_resource, (start), (n), (name), IORESOURCE_MUXED)
-#define __request_mem_region(start,n,name, excl) __request_region(&iomem_resource, (start), (n), (name), excl)
-#define request_mem_region(start,n,name) __request_region(&iomem_resource, (start), (n), (name), 0)
-#define request_mem_region_exclusive(start,n,name) \
- __request_region(&iomem_resource, (start), (n), (name), IORESOURCE_EXCLUSIVE)
-#define rename_region(region, newname) do { (region)->name = (newname); } while (0)
-
-extern struct resource * __request_region(struct resource *,
- resource_size_t start,
- resource_size_t n,
- const char *name, int flags);
-
-/* Compatibility cruft */
-#define release_region(start,n) __release_region(&ioport_resource, (start), (n))
-#define check_mem_region(start,n) __check_region(&iomem_resource, (start), (n))
-#define release_mem_region(start,n) __release_region(&iomem_resource, (start), (n))
-
-extern int __check_region(struct resource *, resource_size_t, resource_size_t);
-extern void __release_region(struct resource *, resource_size_t,
- resource_size_t);
-
-static inline int __deprecated check_region(resource_size_t s,
- resource_size_t n)
-{
- return __check_region(&ioport_resource, s, n);
-}
-
-/* Wrappers for managed devices */
-struct device;
-#define devm_request_region(dev,start,n,name) \
- __devm_request_region(dev, &ioport_resource, (start), (n), (name))
-#define devm_request_mem_region(dev,start,n,name) \
- __devm_request_region(dev, &iomem_resource, (start), (n), (name))
-
-extern struct resource * __devm_request_region(struct device *dev,
- struct resource *parent, resource_size_t start,
- resource_size_t n, const char *name);
-
-#define devm_release_region(dev, start, n) \
- __devm_release_region(dev, &ioport_resource, (start), (n))
-#define devm_release_mem_region(dev, start, n) \
- __devm_release_region(dev, &iomem_resource, (start), (n))
-
-extern void __devm_release_region(struct device *dev, struct resource *parent,
- resource_size_t start, resource_size_t n);
-extern int iomem_map_sanity_check(resource_size_t addr, unsigned long size);
-extern int iomem_is_exclusive(u64 addr);
-
-extern int
-walk_system_ram_range(unsigned long start_pfn, unsigned long nr_pages,
- void *arg, int (*func)(unsigned long, unsigned long, void *));
-
-#endif /* __ASSEMBLY__ */
-#endif /* _LINUX_IOPORT_H */
diff --git a/ANDROID_3.4.5/include/linux/ioprio.h b/ANDROID_3.4.5/include/linux/ioprio.h
deleted file mode 100644
index 76dad480..00000000
--- a/ANDROID_3.4.5/include/linux/ioprio.h
+++ /dev/null
@@ -1,91 +0,0 @@
-#ifndef IOPRIO_H
-#define IOPRIO_H
-
-#include <linux/sched.h>
-#include <linux/iocontext.h>
-
-/*
- * Gives us 8 prio classes with 13-bits of data for each class
- */
-#define IOPRIO_BITS (16)
-#define IOPRIO_CLASS_SHIFT (13)
-#define IOPRIO_PRIO_MASK ((1UL << IOPRIO_CLASS_SHIFT) - 1)
-
-#define IOPRIO_PRIO_CLASS(mask) ((mask) >> IOPRIO_CLASS_SHIFT)
-#define IOPRIO_PRIO_DATA(mask) ((mask) & IOPRIO_PRIO_MASK)
-#define IOPRIO_PRIO_VALUE(class, data) (((class) << IOPRIO_CLASS_SHIFT) | data)
-
-#define ioprio_valid(mask) (IOPRIO_PRIO_CLASS((mask)) != IOPRIO_CLASS_NONE)
-
-/*
- * These are the io priority groups as implemented by CFQ. RT is the realtime
- * class, it always gets premium service. BE is the best-effort scheduling
- * class, the default for any process. IDLE is the idle scheduling class, it
- * is only served when no one else is using the disk.
- */
-enum {
- IOPRIO_CLASS_NONE,
- IOPRIO_CLASS_RT,
- IOPRIO_CLASS_BE,
- IOPRIO_CLASS_IDLE,
-};
-
-/*
- * 8 best effort priority levels are supported
- */
-#define IOPRIO_BE_NR (8)
-
-enum {
- IOPRIO_WHO_PROCESS = 1,
- IOPRIO_WHO_PGRP,
- IOPRIO_WHO_USER,
-};
-
-/*
- * if process has set io priority explicitly, use that. if not, convert
- * the cpu scheduler nice value to an io priority
- */
-#define IOPRIO_NORM (4)
-static inline int task_ioprio(struct io_context *ioc)
-{
- if (ioprio_valid(ioc->ioprio))
- return IOPRIO_PRIO_DATA(ioc->ioprio);
-
- return IOPRIO_NORM;
-}
-
-static inline int task_ioprio_class(struct io_context *ioc)
-{
- if (ioprio_valid(ioc->ioprio))
- return IOPRIO_PRIO_CLASS(ioc->ioprio);
-
- return IOPRIO_CLASS_BE;
-}
-
-static inline int task_nice_ioprio(struct task_struct *task)
-{
- return (task_nice(task) + 20) / 5;
-}
-
-/*
- * This is for the case where the task hasn't asked for a specific IO class.
- * Check for idle and rt task process, and return appropriate IO class.
- */
-static inline int task_nice_ioclass(struct task_struct *task)
-{
- if (task->policy == SCHED_IDLE)
- return IOPRIO_CLASS_IDLE;
- else if (task->policy == SCHED_FIFO || task->policy == SCHED_RR)
- return IOPRIO_CLASS_RT;
- else
- return IOPRIO_CLASS_BE;
-}
-
-/*
- * For inheritance, return the highest of the two given priorities
- */
-extern int ioprio_best(unsigned short aprio, unsigned short bprio);
-
-extern int set_task_ioprio(struct task_struct *task, int ioprio);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/iova.h b/ANDROID_3.4.5/include/linux/iova.h
deleted file mode 100644
index 76a0759e..00000000
--- a/ANDROID_3.4.5/include/linux/iova.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 2006, Intel Corporation.
- *
- * This file is released under the GPLv2.
- *
- * Copyright (C) 2006-2008 Intel Corporation
- * Author: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
- *
- */
-
-#ifndef _IOVA_H_
-#define _IOVA_H_
-
-#include <linux/types.h>
-#include <linux/kernel.h>
-#include <linux/rbtree.h>
-#include <linux/dma-mapping.h>
-
-/* IO virtual address start page frame number */
-#define IOVA_START_PFN (1)
-
-/* iova structure */
-struct iova {
- struct rb_node node;
- unsigned long pfn_hi; /* IOMMU dish out addr hi */
- unsigned long pfn_lo; /* IOMMU dish out addr lo */
-};
-
-/* holds all the iova translations for a domain */
-struct iova_domain {
- spinlock_t iova_rbtree_lock; /* Lock to protect update of rbtree */
- struct rb_root rbroot; /* iova domain rbtree root */
- struct rb_node *cached32_node; /* Save last alloced node */
- unsigned long dma_32bit_pfn;
-};
-
-struct iova *alloc_iova_mem(void);
-void free_iova_mem(struct iova *iova);
-void free_iova(struct iova_domain *iovad, unsigned long pfn);
-void __free_iova(struct iova_domain *iovad, struct iova *iova);
-struct iova *alloc_iova(struct iova_domain *iovad, unsigned long size,
- unsigned long limit_pfn,
- bool size_aligned);
-struct iova *reserve_iova(struct iova_domain *iovad, unsigned long pfn_lo,
- unsigned long pfn_hi);
-void copy_reserved_iova(struct iova_domain *from, struct iova_domain *to);
-void init_iova_domain(struct iova_domain *iovad, unsigned long pfn_32bit);
-struct iova *find_iova(struct iova_domain *iovad, unsigned long pfn);
-void put_iova_domain(struct iova_domain *iovad);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ip.h b/ANDROID_3.4.5/include/linux/ip.h
deleted file mode 100644
index bd0a2a86..00000000
--- a/ANDROID_3.4.5/include/linux/ip.h
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Definitions for the IP protocol.
- *
- * Version: @(#)ip.h 1.0.2 04/28/93
- *
- * Authors: Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.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.
- */
-#ifndef _LINUX_IP_H
-#define _LINUX_IP_H
-#include <linux/types.h>
-#include <asm/byteorder.h>
-
-#define IPTOS_TOS_MASK 0x1E
-#define IPTOS_TOS(tos) ((tos)&IPTOS_TOS_MASK)
-#define IPTOS_LOWDELAY 0x10
-#define IPTOS_THROUGHPUT 0x08
-#define IPTOS_RELIABILITY 0x04
-#define IPTOS_MINCOST 0x02
-
-#define IPTOS_PREC_MASK 0xE0
-#define IPTOS_PREC(tos) ((tos)&IPTOS_PREC_MASK)
-#define IPTOS_PREC_NETCONTROL 0xe0
-#define IPTOS_PREC_INTERNETCONTROL 0xc0
-#define IPTOS_PREC_CRITIC_ECP 0xa0
-#define IPTOS_PREC_FLASHOVERRIDE 0x80
-#define IPTOS_PREC_FLASH 0x60
-#define IPTOS_PREC_IMMEDIATE 0x40
-#define IPTOS_PREC_PRIORITY 0x20
-#define IPTOS_PREC_ROUTINE 0x00
-
-
-/* IP options */
-#define IPOPT_COPY 0x80
-#define IPOPT_CLASS_MASK 0x60
-#define IPOPT_NUMBER_MASK 0x1f
-
-#define IPOPT_COPIED(o) ((o)&IPOPT_COPY)
-#define IPOPT_CLASS(o) ((o)&IPOPT_CLASS_MASK)
-#define IPOPT_NUMBER(o) ((o)&IPOPT_NUMBER_MASK)
-
-#define IPOPT_CONTROL 0x00
-#define IPOPT_RESERVED1 0x20
-#define IPOPT_MEASUREMENT 0x40
-#define IPOPT_RESERVED2 0x60
-
-#define IPOPT_END (0 |IPOPT_CONTROL)
-#define IPOPT_NOOP (1 |IPOPT_CONTROL)
-#define IPOPT_SEC (2 |IPOPT_CONTROL|IPOPT_COPY)
-#define IPOPT_LSRR (3 |IPOPT_CONTROL|IPOPT_COPY)
-#define IPOPT_TIMESTAMP (4 |IPOPT_MEASUREMENT)
-#define IPOPT_CIPSO (6 |IPOPT_CONTROL|IPOPT_COPY)
-#define IPOPT_RR (7 |IPOPT_CONTROL)
-#define IPOPT_SID (8 |IPOPT_CONTROL|IPOPT_COPY)
-#define IPOPT_SSRR (9 |IPOPT_CONTROL|IPOPT_COPY)
-#define IPOPT_RA (20|IPOPT_CONTROL|IPOPT_COPY)
-
-#define IPVERSION 4
-#define MAXTTL 255
-#define IPDEFTTL 64
-
-#define IPOPT_OPTVAL 0
-#define IPOPT_OLEN 1
-#define IPOPT_OFFSET 2
-#define IPOPT_MINOFF 4
-#define MAX_IPOPTLEN 40
-#define IPOPT_NOP IPOPT_NOOP
-#define IPOPT_EOL IPOPT_END
-#define IPOPT_TS IPOPT_TIMESTAMP
-
-#define IPOPT_TS_TSONLY 0 /* timestamps only */
-#define IPOPT_TS_TSANDADDR 1 /* timestamps and addresses */
-#define IPOPT_TS_PRESPEC 3 /* specified modules only */
-
-#define IPV4_BEET_PHMAXLEN 8
-
-struct iphdr {
-#if defined(__LITTLE_ENDIAN_BITFIELD)
- __u8 ihl:4,
- version:4;
-#elif defined (__BIG_ENDIAN_BITFIELD)
- __u8 version:4,
- ihl:4;
-#else
-#error "Please fix <asm/byteorder.h>"
-#endif
- __u8 tos;
- __be16 tot_len;
- __be16 id;
- __be16 frag_off;
- __u8 ttl;
- __u8 protocol;
- __sum16 check;
- __be32 saddr;
- __be32 daddr;
- /*The options start here. */
-};
-
-#ifdef __KERNEL__
-#include <linux/skbuff.h>
-
-static inline struct iphdr *ip_hdr(const struct sk_buff *skb)
-{
- return (struct iphdr *)skb_network_header(skb);
-}
-
-static inline struct iphdr *ipip_hdr(const struct sk_buff *skb)
-{
- return (struct iphdr *)skb_transport_header(skb);
-}
-#endif
-
-struct ip_auth_hdr {
- __u8 nexthdr;
- __u8 hdrlen; /* This one is measured in 32 bit units! */
- __be16 reserved;
- __be32 spi;
- __be32 seq_no; /* Sequence number */
- __u8 auth_data[0]; /* Variable len but >=4. Mind the 64 bit alignment! */
-};
-
-struct ip_esp_hdr {
- __be32 spi;
- __be32 seq_no; /* Sequence number */
- __u8 enc_data[0]; /* Variable len but >=8. Mind the 64 bit alignment! */
-};
-
-struct ip_comp_hdr {
- __u8 nexthdr;
- __u8 flags;
- __be16 cpi;
-};
-
-struct ip_beet_phdr {
- __u8 nexthdr;
- __u8 hdrlen;
- __u8 padlen;
- __u8 reserved;
-};
-
-#endif /* _LINUX_IP_H */
diff --git a/ANDROID_3.4.5/include/linux/ip6_tunnel.h b/ANDROID_3.4.5/include/linux/ip6_tunnel.h
deleted file mode 100644
index bf22b031..00000000
--- a/ANDROID_3.4.5/include/linux/ip6_tunnel.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef _IP6_TUNNEL_H
-#define _IP6_TUNNEL_H
-
-#include <linux/types.h>
-
-#define IPV6_TLV_TNL_ENCAP_LIMIT 4
-#define IPV6_DEFAULT_TNL_ENCAP_LIMIT 4
-
-/* don't add encapsulation limit if one isn't present in inner packet */
-#define IP6_TNL_F_IGN_ENCAP_LIMIT 0x1
-/* copy the traffic class field from the inner packet */
-#define IP6_TNL_F_USE_ORIG_TCLASS 0x2
-/* copy the flowlabel from the inner packet */
-#define IP6_TNL_F_USE_ORIG_FLOWLABEL 0x4
-/* being used for Mobile IPv6 */
-#define IP6_TNL_F_MIP6_DEV 0x8
-/* copy DSCP from the outer packet */
-#define IP6_TNL_F_RCV_DSCP_COPY 0x10
-/* copy fwmark from inner packet */
-#define IP6_TNL_F_USE_ORIG_FWMARK 0x20
-
-struct ip6_tnl_parm {
- char name[IFNAMSIZ]; /* name of tunnel device */
- int link; /* ifindex of underlying L2 interface */
- __u8 proto; /* tunnel protocol */
- __u8 encap_limit; /* encapsulation limit for tunnel */
- __u8 hop_limit; /* hop limit for tunnel */
- __be32 flowinfo; /* traffic class and flowlabel for tunnel */
- __u32 flags; /* tunnel flags */
- struct in6_addr laddr; /* local tunnel end-point address */
- struct in6_addr raddr; /* remote tunnel end-point address */
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ip_vs.h b/ANDROID_3.4.5/include/linux/ip_vs.h
deleted file mode 100644
index 4deb3834..00000000
--- a/ANDROID_3.4.5/include/linux/ip_vs.h
+++ /dev/null
@@ -1,429 +0,0 @@
-/*
- * IP Virtual Server
- * data structure and functionality definitions
- */
-
-#ifndef _IP_VS_H
-#define _IP_VS_H
-
-#include <linux/types.h> /* For __beXX types in userland */
-
-#define IP_VS_VERSION_CODE 0x010201
-#define NVERSION(version) \
- (version >> 16) & 0xFF, \
- (version >> 8) & 0xFF, \
- version & 0xFF
-
-/*
- * Virtual Service Flags
- */
-#define IP_VS_SVC_F_PERSISTENT 0x0001 /* persistent port */
-#define IP_VS_SVC_F_HASHED 0x0002 /* hashed entry */
-#define IP_VS_SVC_F_ONEPACKET 0x0004 /* one-packet scheduling */
-
-/*
- * Destination Server Flags
- */
-#define IP_VS_DEST_F_AVAILABLE 0x0001 /* server is available */
-#define IP_VS_DEST_F_OVERLOAD 0x0002 /* server is overloaded */
-
-/*
- * IPVS sync daemon states
- */
-#define IP_VS_STATE_NONE 0x0000 /* daemon is stopped */
-#define IP_VS_STATE_MASTER 0x0001 /* started as master */
-#define IP_VS_STATE_BACKUP 0x0002 /* started as backup */
-
-/*
- * IPVS socket options
- */
-#define IP_VS_BASE_CTL (64+1024+64) /* base */
-
-#define IP_VS_SO_SET_NONE IP_VS_BASE_CTL /* just peek */
-#define IP_VS_SO_SET_INSERT (IP_VS_BASE_CTL+1)
-#define IP_VS_SO_SET_ADD (IP_VS_BASE_CTL+2)
-#define IP_VS_SO_SET_EDIT (IP_VS_BASE_CTL+3)
-#define IP_VS_SO_SET_DEL (IP_VS_BASE_CTL+4)
-#define IP_VS_SO_SET_FLUSH (IP_VS_BASE_CTL+5)
-#define IP_VS_SO_SET_LIST (IP_VS_BASE_CTL+6)
-#define IP_VS_SO_SET_ADDDEST (IP_VS_BASE_CTL+7)
-#define IP_VS_SO_SET_DELDEST (IP_VS_BASE_CTL+8)
-#define IP_VS_SO_SET_EDITDEST (IP_VS_BASE_CTL+9)
-#define IP_VS_SO_SET_TIMEOUT (IP_VS_BASE_CTL+10)
-#define IP_VS_SO_SET_STARTDAEMON (IP_VS_BASE_CTL+11)
-#define IP_VS_SO_SET_STOPDAEMON (IP_VS_BASE_CTL+12)
-#define IP_VS_SO_SET_RESTORE (IP_VS_BASE_CTL+13)
-#define IP_VS_SO_SET_SAVE (IP_VS_BASE_CTL+14)
-#define IP_VS_SO_SET_ZERO (IP_VS_BASE_CTL+15)
-#define IP_VS_SO_SET_MAX IP_VS_SO_SET_ZERO
-
-#define IP_VS_SO_GET_VERSION IP_VS_BASE_CTL
-#define IP_VS_SO_GET_INFO (IP_VS_BASE_CTL+1)
-#define IP_VS_SO_GET_SERVICES (IP_VS_BASE_CTL+2)
-#define IP_VS_SO_GET_SERVICE (IP_VS_BASE_CTL+3)
-#define IP_VS_SO_GET_DESTS (IP_VS_BASE_CTL+4)
-#define IP_VS_SO_GET_DEST (IP_VS_BASE_CTL+5) /* not used now */
-#define IP_VS_SO_GET_TIMEOUT (IP_VS_BASE_CTL+6)
-#define IP_VS_SO_GET_DAEMON (IP_VS_BASE_CTL+7)
-#define IP_VS_SO_GET_MAX IP_VS_SO_GET_DAEMON
-
-
-/*
- * IPVS Connection Flags
- * Only flags 0..15 are sent to backup server
- */
-#define IP_VS_CONN_F_FWD_MASK 0x0007 /* mask for the fwd methods */
-#define IP_VS_CONN_F_MASQ 0x0000 /* masquerading/NAT */
-#define IP_VS_CONN_F_LOCALNODE 0x0001 /* local node */
-#define IP_VS_CONN_F_TUNNEL 0x0002 /* tunneling */
-#define IP_VS_CONN_F_DROUTE 0x0003 /* direct routing */
-#define IP_VS_CONN_F_BYPASS 0x0004 /* cache bypass */
-#define IP_VS_CONN_F_SYNC 0x0020 /* entry created by sync */
-#define IP_VS_CONN_F_HASHED 0x0040 /* hashed entry */
-#define IP_VS_CONN_F_NOOUTPUT 0x0080 /* no output packets */
-#define IP_VS_CONN_F_INACTIVE 0x0100 /* not established */
-#define IP_VS_CONN_F_OUT_SEQ 0x0200 /* must do output seq adjust */
-#define IP_VS_CONN_F_IN_SEQ 0x0400 /* must do input seq adjust */
-#define IP_VS_CONN_F_SEQ_MASK 0x0600 /* in/out sequence mask */
-#define IP_VS_CONN_F_NO_CPORT 0x0800 /* no client port set yet */
-#define IP_VS_CONN_F_TEMPLATE 0x1000 /* template, not connection */
-#define IP_VS_CONN_F_ONE_PACKET 0x2000 /* forward only one packet */
-
-#define IP_VS_CONN_F_BACKUP_MASK (IP_VS_CONN_F_FWD_MASK | \
- IP_VS_CONN_F_NOOUTPUT | \
- IP_VS_CONN_F_INACTIVE | \
- IP_VS_CONN_F_SEQ_MASK | \
- IP_VS_CONN_F_NO_CPORT | \
- IP_VS_CONN_F_TEMPLATE \
- )
-
-/* Flags that are not sent to backup server start from bit 16 */
-#define IP_VS_CONN_F_NFCT (1 << 16) /* use netfilter conntrack */
-
-/* Connection flags from destination that can be changed by user space */
-#define IP_VS_CONN_F_DEST_MASK (IP_VS_CONN_F_FWD_MASK | \
- IP_VS_CONN_F_ONE_PACKET | \
- IP_VS_CONN_F_NFCT | \
- 0)
-
-#define IP_VS_SCHEDNAME_MAXLEN 16
-#define IP_VS_PENAME_MAXLEN 16
-#define IP_VS_IFNAME_MAXLEN 16
-
-#define IP_VS_PEDATA_MAXLEN 255
-
-/*
- * The struct ip_vs_service_user and struct ip_vs_dest_user are
- * used to set IPVS rules through setsockopt.
- */
-struct ip_vs_service_user {
- /* virtual service addresses */
- __u16 protocol;
- __be32 addr; /* virtual ip address */
- __be16 port;
- __u32 fwmark; /* firwall mark of service */
-
- /* virtual service options */
- char sched_name[IP_VS_SCHEDNAME_MAXLEN];
- unsigned flags; /* virtual service flags */
- unsigned timeout; /* persistent timeout in sec */
- __be32 netmask; /* persistent netmask */
-};
-
-
-struct ip_vs_dest_user {
- /* destination server address */
- __be32 addr;
- __be16 port;
-
- /* real server options */
- unsigned conn_flags; /* connection flags */
- int weight; /* destination weight */
-
- /* thresholds for active connections */
- __u32 u_threshold; /* upper threshold */
- __u32 l_threshold; /* lower threshold */
-};
-
-
-/*
- * IPVS statistics object (for user space)
- */
-struct ip_vs_stats_user {
- __u32 conns; /* connections scheduled */
- __u32 inpkts; /* incoming packets */
- __u32 outpkts; /* outgoing packets */
- __u64 inbytes; /* incoming bytes */
- __u64 outbytes; /* outgoing bytes */
-
- __u32 cps; /* current connection rate */
- __u32 inpps; /* current in packet rate */
- __u32 outpps; /* current out packet rate */
- __u32 inbps; /* current in byte rate */
- __u32 outbps; /* current out byte rate */
-};
-
-
-/* The argument to IP_VS_SO_GET_INFO */
-struct ip_vs_getinfo {
- /* version number */
- unsigned int version;
-
- /* size of connection hash table */
- unsigned int size;
-
- /* number of virtual services */
- unsigned int num_services;
-};
-
-
-/* The argument to IP_VS_SO_GET_SERVICE */
-struct ip_vs_service_entry {
- /* which service: user fills in these */
- __u16 protocol;
- __be32 addr; /* virtual address */
- __be16 port;
- __u32 fwmark; /* firwall mark of service */
-
- /* service options */
- char sched_name[IP_VS_SCHEDNAME_MAXLEN];
- unsigned flags; /* virtual service flags */
- unsigned timeout; /* persistent timeout */
- __be32 netmask; /* persistent netmask */
-
- /* number of real servers */
- unsigned int num_dests;
-
- /* statistics */
- struct ip_vs_stats_user stats;
-};
-
-
-struct ip_vs_dest_entry {
- __be32 addr; /* destination address */
- __be16 port;
- unsigned conn_flags; /* connection flags */
- int weight; /* destination weight */
-
- __u32 u_threshold; /* upper threshold */
- __u32 l_threshold; /* lower threshold */
-
- __u32 activeconns; /* active connections */
- __u32 inactconns; /* inactive connections */
- __u32 persistconns; /* persistent connections */
-
- /* statistics */
- struct ip_vs_stats_user stats;
-};
-
-
-/* The argument to IP_VS_SO_GET_DESTS */
-struct ip_vs_get_dests {
- /* which service: user fills in these */
- __u16 protocol;
- __be32 addr; /* virtual address */
- __be16 port;
- __u32 fwmark; /* firwall mark of service */
-
- /* number of real servers */
- unsigned int num_dests;
-
- /* the real servers */
- struct ip_vs_dest_entry entrytable[0];
-};
-
-
-/* The argument to IP_VS_SO_GET_SERVICES */
-struct ip_vs_get_services {
- /* number of virtual services */
- unsigned int num_services;
-
- /* service table */
- struct ip_vs_service_entry entrytable[0];
-};
-
-
-/* The argument to IP_VS_SO_GET_TIMEOUT */
-struct ip_vs_timeout_user {
- int tcp_timeout;
- int tcp_fin_timeout;
- int udp_timeout;
-};
-
-
-/* The argument to IP_VS_SO_GET_DAEMON */
-struct ip_vs_daemon_user {
- /* sync daemon state (master/backup) */
- int state;
-
- /* multicast interface name */
- char mcast_ifn[IP_VS_IFNAME_MAXLEN];
-
- /* SyncID we belong to */
- int syncid;
-};
-
-/*
- *
- * IPVS Generic Netlink interface definitions
- *
- */
-
-/* Generic Netlink family info */
-
-#define IPVS_GENL_NAME "IPVS"
-#define IPVS_GENL_VERSION 0x1
-
-struct ip_vs_flags {
- __be32 flags;
- __be32 mask;
-};
-
-/* Generic Netlink command attributes */
-enum {
- IPVS_CMD_UNSPEC = 0,
-
- IPVS_CMD_NEW_SERVICE, /* add service */
- IPVS_CMD_SET_SERVICE, /* modify service */
- IPVS_CMD_DEL_SERVICE, /* delete service */
- IPVS_CMD_GET_SERVICE, /* get service info */
-
- IPVS_CMD_NEW_DEST, /* add destination */
- IPVS_CMD_SET_DEST, /* modify destination */
- IPVS_CMD_DEL_DEST, /* delete destination */
- IPVS_CMD_GET_DEST, /* get destination info */
-
- IPVS_CMD_NEW_DAEMON, /* start sync daemon */
- IPVS_CMD_DEL_DAEMON, /* stop sync daemon */
- IPVS_CMD_GET_DAEMON, /* get sync daemon status */
-
- IPVS_CMD_SET_CONFIG, /* set config settings */
- IPVS_CMD_GET_CONFIG, /* get config settings */
-
- IPVS_CMD_SET_INFO, /* only used in GET_INFO reply */
- IPVS_CMD_GET_INFO, /* get general IPVS info */
-
- IPVS_CMD_ZERO, /* zero all counters and stats */
- IPVS_CMD_FLUSH, /* flush services and dests */
-
- __IPVS_CMD_MAX,
-};
-
-#define IPVS_CMD_MAX (__IPVS_CMD_MAX - 1)
-
-/* Attributes used in the first level of commands */
-enum {
- IPVS_CMD_ATTR_UNSPEC = 0,
- IPVS_CMD_ATTR_SERVICE, /* nested service attribute */
- IPVS_CMD_ATTR_DEST, /* nested destination attribute */
- IPVS_CMD_ATTR_DAEMON, /* nested sync daemon attribute */
- IPVS_CMD_ATTR_TIMEOUT_TCP, /* TCP connection timeout */
- IPVS_CMD_ATTR_TIMEOUT_TCP_FIN, /* TCP FIN wait timeout */
- IPVS_CMD_ATTR_TIMEOUT_UDP, /* UDP timeout */
- __IPVS_CMD_ATTR_MAX,
-};
-
-#define IPVS_CMD_ATTR_MAX (__IPVS_SVC_ATTR_MAX - 1)
-
-/*
- * Attributes used to describe a service
- *
- * Used inside nested attribute IPVS_CMD_ATTR_SERVICE
- */
-enum {
- IPVS_SVC_ATTR_UNSPEC = 0,
- IPVS_SVC_ATTR_AF, /* address family */
- IPVS_SVC_ATTR_PROTOCOL, /* virtual service protocol */
- IPVS_SVC_ATTR_ADDR, /* virtual service address */
- IPVS_SVC_ATTR_PORT, /* virtual service port */
- IPVS_SVC_ATTR_FWMARK, /* firewall mark of service */
-
- IPVS_SVC_ATTR_SCHED_NAME, /* name of scheduler */
- IPVS_SVC_ATTR_FLAGS, /* virtual service flags */
- IPVS_SVC_ATTR_TIMEOUT, /* persistent timeout */
- IPVS_SVC_ATTR_NETMASK, /* persistent netmask */
-
- IPVS_SVC_ATTR_STATS, /* nested attribute for service stats */
-
- IPVS_SVC_ATTR_PE_NAME, /* name of ct retriever */
-
- __IPVS_SVC_ATTR_MAX,
-};
-
-#define IPVS_SVC_ATTR_MAX (__IPVS_SVC_ATTR_MAX - 1)
-
-/*
- * Attributes used to describe a destination (real server)
- *
- * Used inside nested attribute IPVS_CMD_ATTR_DEST
- */
-enum {
- IPVS_DEST_ATTR_UNSPEC = 0,
- IPVS_DEST_ATTR_ADDR, /* real server address */
- IPVS_DEST_ATTR_PORT, /* real server port */
-
- IPVS_DEST_ATTR_FWD_METHOD, /* forwarding method */
- IPVS_DEST_ATTR_WEIGHT, /* destination weight */
-
- IPVS_DEST_ATTR_U_THRESH, /* upper threshold */
- IPVS_DEST_ATTR_L_THRESH, /* lower threshold */
-
- IPVS_DEST_ATTR_ACTIVE_CONNS, /* active connections */
- IPVS_DEST_ATTR_INACT_CONNS, /* inactive connections */
- IPVS_DEST_ATTR_PERSIST_CONNS, /* persistent connections */
-
- IPVS_DEST_ATTR_STATS, /* nested attribute for dest stats */
- __IPVS_DEST_ATTR_MAX,
-};
-
-#define IPVS_DEST_ATTR_MAX (__IPVS_DEST_ATTR_MAX - 1)
-
-/*
- * Attributes describing a sync daemon
- *
- * Used inside nested attribute IPVS_CMD_ATTR_DAEMON
- */
-enum {
- IPVS_DAEMON_ATTR_UNSPEC = 0,
- IPVS_DAEMON_ATTR_STATE, /* sync daemon state (master/backup) */
- IPVS_DAEMON_ATTR_MCAST_IFN, /* multicast interface name */
- IPVS_DAEMON_ATTR_SYNC_ID, /* SyncID we belong to */
- __IPVS_DAEMON_ATTR_MAX,
-};
-
-#define IPVS_DAEMON_ATTR_MAX (__IPVS_DAEMON_ATTR_MAX - 1)
-
-/*
- * Attributes used to describe service or destination entry statistics
- *
- * Used inside nested attributes IPVS_SVC_ATTR_STATS and IPVS_DEST_ATTR_STATS
- */
-enum {
- IPVS_STATS_ATTR_UNSPEC = 0,
- IPVS_STATS_ATTR_CONNS, /* connections scheduled */
- IPVS_STATS_ATTR_INPKTS, /* incoming packets */
- IPVS_STATS_ATTR_OUTPKTS, /* outgoing packets */
- IPVS_STATS_ATTR_INBYTES, /* incoming bytes */
- IPVS_STATS_ATTR_OUTBYTES, /* outgoing bytes */
-
- IPVS_STATS_ATTR_CPS, /* current connection rate */
- IPVS_STATS_ATTR_INPPS, /* current in packet rate */
- IPVS_STATS_ATTR_OUTPPS, /* current out packet rate */
- IPVS_STATS_ATTR_INBPS, /* current in byte rate */
- IPVS_STATS_ATTR_OUTBPS, /* current out byte rate */
- __IPVS_STATS_ATTR_MAX,
-};
-
-#define IPVS_STATS_ATTR_MAX (__IPVS_STATS_ATTR_MAX - 1)
-
-/* Attributes used in response to IPVS_CMD_GET_INFO command */
-enum {
- IPVS_INFO_ATTR_UNSPEC = 0,
- IPVS_INFO_ATTR_VERSION, /* IPVS version number */
- IPVS_INFO_ATTR_CONN_TAB_SIZE, /* size of connection hash table */
- __IPVS_INFO_ATTR_MAX,
-};
-
-#define IPVS_INFO_ATTR_MAX (__IPVS_INFO_ATTR_MAX - 1)
-
-#endif /* _IP_VS_H */
diff --git a/ANDROID_3.4.5/include/linux/ipc.h b/ANDROID_3.4.5/include/linux/ipc.h
deleted file mode 100644
index 30e81614..00000000
--- a/ANDROID_3.4.5/include/linux/ipc.h
+++ /dev/null
@@ -1,103 +0,0 @@
-#ifndef _LINUX_IPC_H
-#define _LINUX_IPC_H
-
-#include <linux/types.h>
-
-#define IPC_PRIVATE ((__kernel_key_t) 0)
-
-/* Obsolete, used only for backwards compatibility and libc5 compiles */
-struct ipc_perm
-{
- __kernel_key_t key;
- __kernel_uid_t uid;
- __kernel_gid_t gid;
- __kernel_uid_t cuid;
- __kernel_gid_t cgid;
- __kernel_mode_t mode;
- unsigned short seq;
-};
-
-/* Include the definition of ipc64_perm */
-#include <asm/ipcbuf.h>
-
-/* resource get request flags */
-#define IPC_CREAT 00001000 /* create if key is nonexistent */
-#define IPC_EXCL 00002000 /* fail if key exists */
-#define IPC_NOWAIT 00004000 /* return error on wait */
-
-/* these fields are used by the DIPC package so the kernel as standard
- should avoid using them if possible */
-
-#define IPC_DIPC 00010000 /* make it distributed */
-#define IPC_OWN 00020000 /* this machine is the DIPC owner */
-
-/*
- * Control commands used with semctl, msgctl and shmctl
- * see also specific commands in sem.h, msg.h and shm.h
- */
-#define IPC_RMID 0 /* remove resource */
-#define IPC_SET 1 /* set ipc_perm options */
-#define IPC_STAT 2 /* get ipc_perm options */
-#define IPC_INFO 3 /* see ipcs */
-
-/*
- * Version flags for semctl, msgctl, and shmctl commands
- * These are passed as bitflags or-ed with the actual command
- */
-#define IPC_OLD 0 /* Old version (no 32-bit UID support on many
- architectures) */
-#define IPC_64 0x0100 /* New version (support 32-bit UIDs, bigger
- message sizes, etc. */
-
-/*
- * These are used to wrap system calls.
- *
- * See architecture code for ugly details..
- */
-struct ipc_kludge {
- struct msgbuf __user *msgp;
- long msgtyp;
-};
-
-#define SEMOP 1
-#define SEMGET 2
-#define SEMCTL 3
-#define SEMTIMEDOP 4
-#define MSGSND 11
-#define MSGRCV 12
-#define MSGGET 13
-#define MSGCTL 14
-#define SHMAT 21
-#define SHMDT 22
-#define SHMGET 23
-#define SHMCTL 24
-
-/* Used by the DIPC package, try and avoid reusing it */
-#define DIPC 25
-
-#define IPCCALL(version,op) ((version)<<16 | (op))
-
-#ifdef __KERNEL__
-#include <linux/spinlock.h>
-
-#define IPCMNI 32768 /* <= MAX_INT limit for ipc arrays (including sysctl changes) */
-
-/* used by in-kernel data structures */
-struct kern_ipc_perm
-{
- spinlock_t lock;
- int deleted;
- int id;
- key_t key;
- uid_t uid;
- gid_t gid;
- uid_t cuid;
- gid_t cgid;
- umode_t mode;
- unsigned long seq;
- void *security;
-};
-
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_IPC_H */
diff --git a/ANDROID_3.4.5/include/linux/ipc_namespace.h b/ANDROID_3.4.5/include/linux/ipc_namespace.h
deleted file mode 100644
index 8a297a5e..00000000
--- a/ANDROID_3.4.5/include/linux/ipc_namespace.h
+++ /dev/null
@@ -1,146 +0,0 @@
-#ifndef __IPC_NAMESPACE_H__
-#define __IPC_NAMESPACE_H__
-
-#include <linux/err.h>
-#include <linux/idr.h>
-#include <linux/rwsem.h>
-#include <linux/notifier.h>
-#include <linux/nsproxy.h>
-
-/*
- * ipc namespace events
- */
-#define IPCNS_MEMCHANGED 0x00000001 /* Notify lowmem size changed */
-#define IPCNS_CREATED 0x00000002 /* Notify new ipc namespace created */
-#define IPCNS_REMOVED 0x00000003 /* Notify ipc namespace removed */
-
-#define IPCNS_CALLBACK_PRI 0
-
-struct user_namespace;
-
-struct ipc_ids {
- int in_use;
- unsigned short seq;
- unsigned short seq_max;
- struct rw_semaphore rw_mutex;
- struct idr ipcs_idr;
-};
-
-struct ipc_namespace {
- atomic_t count;
- struct ipc_ids ids[3];
-
- int sem_ctls[4];
- int used_sems;
-
- int msg_ctlmax;
- int msg_ctlmnb;
- int msg_ctlmni;
- atomic_t msg_bytes;
- atomic_t msg_hdrs;
- int auto_msgmni;
-
- size_t shm_ctlmax;
- size_t shm_ctlall;
- int shm_ctlmni;
- int shm_tot;
- /*
- * Defines whether IPC_RMID is forced for _all_ shm segments regardless
- * of shmctl()
- */
- int shm_rmid_forced;
-
- struct notifier_block ipcns_nb;
-
- /* The kern_mount of the mqueuefs sb. We take a ref on it */
- struct vfsmount *mq_mnt;
-
- /* # queues in this ns, protected by mq_lock */
- unsigned int mq_queues_count;
-
- /* next fields are set through sysctl */
- unsigned int mq_queues_max; /* initialized to DFLT_QUEUESMAX */
- unsigned int mq_msg_max; /* initialized to DFLT_MSGMAX */
- unsigned int mq_msgsize_max; /* initialized to DFLT_MSGSIZEMAX */
-
- /* user_ns which owns the ipc ns */
- struct user_namespace *user_ns;
-};
-
-extern struct ipc_namespace init_ipc_ns;
-extern atomic_t nr_ipc_ns;
-
-extern spinlock_t mq_lock;
-
-#ifdef CONFIG_SYSVIPC
-extern int register_ipcns_notifier(struct ipc_namespace *);
-extern int cond_register_ipcns_notifier(struct ipc_namespace *);
-extern void unregister_ipcns_notifier(struct ipc_namespace *);
-extern int ipcns_notify(unsigned long);
-extern void shm_destroy_orphaned(struct ipc_namespace *ns);
-#else /* CONFIG_SYSVIPC */
-static inline int register_ipcns_notifier(struct ipc_namespace *ns)
-{ return 0; }
-static inline int cond_register_ipcns_notifier(struct ipc_namespace *ns)
-{ return 0; }
-static inline void unregister_ipcns_notifier(struct ipc_namespace *ns) { }
-static inline int ipcns_notify(unsigned long l) { return 0; }
-static inline void shm_destroy_orphaned(struct ipc_namespace *ns) {}
-#endif /* CONFIG_SYSVIPC */
-
-#ifdef CONFIG_POSIX_MQUEUE
-extern int mq_init_ns(struct ipc_namespace *ns);
-/* default values */
-#define DFLT_QUEUESMAX 256 /* max number of message queues */
-#define DFLT_MSGMAX 10 /* max number of messages in each queue */
-#define HARD_MSGMAX (32768*sizeof(void *)/4)
-#define DFLT_MSGSIZEMAX 8192 /* max message size */
-#else
-static inline int mq_init_ns(struct ipc_namespace *ns) { return 0; }
-#endif
-
-#if defined(CONFIG_IPC_NS)
-extern struct ipc_namespace *copy_ipcs(unsigned long flags,
- struct task_struct *tsk);
-static inline struct ipc_namespace *get_ipc_ns(struct ipc_namespace *ns)
-{
- if (ns)
- atomic_inc(&ns->count);
- return ns;
-}
-
-extern void put_ipc_ns(struct ipc_namespace *ns);
-#else
-static inline struct ipc_namespace *copy_ipcs(unsigned long flags,
- struct task_struct *tsk)
-{
- if (flags & CLONE_NEWIPC)
- return ERR_PTR(-EINVAL);
-
- return tsk->nsproxy->ipc_ns;
-}
-
-static inline struct ipc_namespace *get_ipc_ns(struct ipc_namespace *ns)
-{
- return ns;
-}
-
-static inline void put_ipc_ns(struct ipc_namespace *ns)
-{
-}
-#endif
-
-#ifdef CONFIG_POSIX_MQUEUE_SYSCTL
-
-struct ctl_table_header;
-extern struct ctl_table_header *mq_register_sysctl_table(void);
-
-#else /* CONFIG_POSIX_MQUEUE_SYSCTL */
-
-static inline struct ctl_table_header *mq_register_sysctl_table(void)
-{
- return NULL;
-}
-
-#endif /* CONFIG_POSIX_MQUEUE_SYSCTL */
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ipmi.h b/ANDROID_3.4.5/include/linux/ipmi.h
deleted file mode 100644
index 48dcba9b..00000000
--- a/ANDROID_3.4.5/include/linux/ipmi.h
+++ /dev/null
@@ -1,736 +0,0 @@
-/*
- * ipmi.h
- *
- * MontaVista IPMI interface
- *
- * Author: MontaVista Software, Inc.
- * Corey Minyard <minyard@mvista.com>
- * source@mvista.com
- *
- * Copyright 2002 MontaVista Software Inc.
- *
- * 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 SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * 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.
- */
-
-#ifndef __LINUX_IPMI_H
-#define __LINUX_IPMI_H
-
-#include <linux/ipmi_msgdefs.h>
-#include <linux/compiler.h>
-
-/*
- * This file describes an interface to an IPMI driver. You have to
- * have a fairly good understanding of IPMI to use this, so go read
- * the specs first before actually trying to do anything.
- *
- * With that said, this driver provides a multi-user interface to the
- * IPMI driver, and it allows multiple IPMI physical interfaces below
- * the driver. The physical interfaces bind as a lower layer on the
- * driver. They appear as interfaces to the application using this
- * interface.
- *
- * Multi-user means that multiple applications may use the driver,
- * send commands, receive responses, etc. The driver keeps track of
- * commands the user sends and tracks the responses. The responses
- * will go back to the application that send the command. If the
- * response doesn't come back in time, the driver will return a
- * timeout error response to the application. Asynchronous events
- * from the BMC event queue will go to all users bound to the driver.
- * The incoming event queue in the BMC will automatically be flushed
- * if it becomes full and it is queried once a second to see if
- * anything is in it. Incoming commands to the driver will get
- * delivered as commands.
- *
- * This driver provides two main interfaces: one for in-kernel
- * applications and another for userland applications. The
- * capabilities are basically the same for both interface, although
- * the interfaces are somewhat different. The stuff in the
- * #ifdef __KERNEL__ below is the in-kernel interface. The userland
- * interface is defined later in the file. */
-
-
-
-/*
- * This is an overlay for all the address types, so it's easy to
- * determine the actual address type. This is kind of like addresses
- * work for sockets.
- */
-#define IPMI_MAX_ADDR_SIZE 32
-struct ipmi_addr {
- /* Try to take these from the "Channel Medium Type" table
- in section 6.5 of the IPMI 1.5 manual. */
- int addr_type;
- short channel;
- char data[IPMI_MAX_ADDR_SIZE];
-};
-
-/*
- * When the address is not used, the type will be set to this value.
- * The channel is the BMC's channel number for the channel (usually
- * 0), or IPMC_BMC_CHANNEL if communicating directly with the BMC.
- */
-#define IPMI_SYSTEM_INTERFACE_ADDR_TYPE 0x0c
-struct ipmi_system_interface_addr {
- int addr_type;
- short channel;
- unsigned char lun;
-};
-
-/* An IPMB Address. */
-#define IPMI_IPMB_ADDR_TYPE 0x01
-/* Used for broadcast get device id as described in section 17.9 of the
- IPMI 1.5 manual. */
-#define IPMI_IPMB_BROADCAST_ADDR_TYPE 0x41
-struct ipmi_ipmb_addr {
- int addr_type;
- short channel;
- unsigned char slave_addr;
- unsigned char lun;
-};
-
-/*
- * A LAN Address. This is an address to/from a LAN interface bridged
- * by the BMC, not an address actually out on the LAN.
- *
- * A conscious decision was made here to deviate slightly from the IPMI
- * spec. We do not use rqSWID and rsSWID like it shows in the
- * message. Instead, we use remote_SWID and local_SWID. This means
- * that any message (a request or response) from another device will
- * always have exactly the same address. If you didn't do this,
- * requests and responses from the same device would have different
- * addresses, and that's not too cool.
- *
- * In this address, the remote_SWID is always the SWID the remote
- * message came from, or the SWID we are sending the message to.
- * local_SWID is always our SWID. Note that having our SWID in the
- * message is a little weird, but this is required.
- */
-#define IPMI_LAN_ADDR_TYPE 0x04
-struct ipmi_lan_addr {
- int addr_type;
- short channel;
- unsigned char privilege;
- unsigned char session_handle;
- unsigned char remote_SWID;
- unsigned char local_SWID;
- unsigned char lun;
-};
-
-
-/*
- * Channel for talking directly with the BMC. When using this
- * channel, This is for the system interface address type only. FIXME
- * - is this right, or should we use -1?
- */
-#define IPMI_BMC_CHANNEL 0xf
-#define IPMI_NUM_CHANNELS 0x10
-
-/*
- * Used to signify an "all channel" bitmask. This is more than the
- * actual number of channels because this is used in userland and
- * will cover us if the number of channels is extended.
- */
-#define IPMI_CHAN_ALL (~0)
-
-
-/*
- * A raw IPMI message without any addressing. This covers both
- * commands and responses. The completion code is always the first
- * byte of data in the response (as the spec shows the messages laid
- * out).
- */
-struct ipmi_msg {
- unsigned char netfn;
- unsigned char cmd;
- unsigned short data_len;
- unsigned char __user *data;
-};
-
-struct kernel_ipmi_msg {
- unsigned char netfn;
- unsigned char cmd;
- unsigned short data_len;
- unsigned char *data;
-};
-
-/*
- * Various defines that are useful for IPMI applications.
- */
-#define IPMI_INVALID_CMD_COMPLETION_CODE 0xC1
-#define IPMI_TIMEOUT_COMPLETION_CODE 0xC3
-#define IPMI_UNKNOWN_ERR_COMPLETION_CODE 0xff
-
-
-/*
- * Receive types for messages coming from the receive interface. This
- * is used for the receive in-kernel interface and in the receive
- * IOCTL.
- *
- * The "IPMI_RESPONSE_RESPNOSE_TYPE" is a little strange sounding, but
- * it allows you to get the message results when you send a response
- * message.
- */
-#define IPMI_RESPONSE_RECV_TYPE 1 /* A response to a command */
-#define IPMI_ASYNC_EVENT_RECV_TYPE 2 /* Something from the event queue */
-#define IPMI_CMD_RECV_TYPE 3 /* A command from somewhere else */
-#define IPMI_RESPONSE_RESPONSE_TYPE 4 /* The response for
- a sent response, giving any
- error status for sending the
- response. When you send a
- response message, this will
- be returned. */
-#define IPMI_OEM_RECV_TYPE 5 /* The response for OEM Channels */
-
-/* Note that async events and received commands do not have a completion
- code as the first byte of the incoming data, unlike a response. */
-
-
-/*
- * Modes for ipmi_set_maint_mode() and the userland IOCTL. The AUTO
- * setting is the default and means it will be set on certain
- * commands. Hard setting it on and off will override automatic
- * operation.
- */
-#define IPMI_MAINTENANCE_MODE_AUTO 0
-#define IPMI_MAINTENANCE_MODE_OFF 1
-#define IPMI_MAINTENANCE_MODE_ON 2
-
-#ifdef __KERNEL__
-
-/*
- * The in-kernel interface.
- */
-#include <linux/list.h>
-#include <linux/proc_fs.h>
-
-struct module;
-struct device;
-
-/* Opaque type for a IPMI message user. One of these is needed to
- send and receive messages. */
-typedef struct ipmi_user *ipmi_user_t;
-
-/*
- * Stuff coming from the receive interface comes as one of these.
- * They are allocated, the receiver must free them with
- * ipmi_free_recv_msg() when done with the message. The link is not
- * used after the message is delivered, so the upper layer may use the
- * link to build a linked list, if it likes.
- */
-struct ipmi_recv_msg {
- struct list_head link;
-
- /* The type of message as defined in the "Receive Types"
- defines above. */
- int recv_type;
-
- ipmi_user_t user;
- struct ipmi_addr addr;
- long msgid;
- struct kernel_ipmi_msg msg;
-
- /* The user_msg_data is the data supplied when a message was
- sent, if this is a response to a sent message. If this is
- not a response to a sent message, then user_msg_data will
- be NULL. If the user above is NULL, then this will be the
- intf. */
- void *user_msg_data;
-
- /* Call this when done with the message. It will presumably free
- the message and do any other necessary cleanup. */
- void (*done)(struct ipmi_recv_msg *msg);
-
- /* Place-holder for the data, don't make any assumptions about
- the size or existence of this, since it may change. */
- unsigned char msg_data[IPMI_MAX_MSG_LENGTH];
-};
-
-/* Allocate and free the receive message. */
-void ipmi_free_recv_msg(struct ipmi_recv_msg *msg);
-
-struct ipmi_user_hndl {
- /* Routine type to call when a message needs to be routed to
- the upper layer. This will be called with some locks held,
- the only IPMI routines that can be called are ipmi_request
- and the alloc/free operations. The handler_data is the
- variable supplied when the receive handler was registered. */
- void (*ipmi_recv_hndl)(struct ipmi_recv_msg *msg,
- void *user_msg_data);
-
- /* Called when the interface detects a watchdog pre-timeout. If
- this is NULL, it will be ignored for the user. */
- void (*ipmi_watchdog_pretimeout)(void *handler_data);
-};
-
-/* Create a new user of the IPMI layer on the given interface number. */
-int ipmi_create_user(unsigned int if_num,
- struct ipmi_user_hndl *handler,
- void *handler_data,
- ipmi_user_t *user);
-
-/* Destroy the given user of the IPMI layer. Note that after this
- function returns, the system is guaranteed to not call any
- callbacks for the user. Thus as long as you destroy all the users
- before you unload a module, you will be safe. And if you destroy
- the users before you destroy the callback structures, it should be
- safe, too. */
-int ipmi_destroy_user(ipmi_user_t user);
-
-/* Get the IPMI version of the BMC we are talking to. */
-void ipmi_get_version(ipmi_user_t user,
- unsigned char *major,
- unsigned char *minor);
-
-/* Set and get the slave address and LUN that we will use for our
- source messages. Note that this affects the interface, not just
- this user, so it will affect all users of this interface. This is
- so some initialization code can come in and do the OEM-specific
- things it takes to determine your address (if not the BMC) and set
- it for everyone else. Note that each channel can have its own address. */
-int ipmi_set_my_address(ipmi_user_t user,
- unsigned int channel,
- unsigned char address);
-int ipmi_get_my_address(ipmi_user_t user,
- unsigned int channel,
- unsigned char *address);
-int ipmi_set_my_LUN(ipmi_user_t user,
- unsigned int channel,
- unsigned char LUN);
-int ipmi_get_my_LUN(ipmi_user_t user,
- unsigned int channel,
- unsigned char *LUN);
-
-/*
- * Like ipmi_request, but lets you specify the number of retries and
- * the retry time. The retries is the number of times the message
- * will be resent if no reply is received. If set to -1, the default
- * value will be used. The retry time is the time in milliseconds
- * between retries. If set to zero, the default value will be
- * used.
- *
- * Don't use this unless you *really* have to. It's primarily for the
- * IPMI over LAN converter; since the LAN stuff does its own retries,
- * it makes no sense to do it here. However, this can be used if you
- * have unusual requirements.
- */
-int ipmi_request_settime(ipmi_user_t user,
- struct ipmi_addr *addr,
- long msgid,
- struct kernel_ipmi_msg *msg,
- void *user_msg_data,
- int priority,
- int max_retries,
- unsigned int retry_time_ms);
-
-/*
- * Like ipmi_request, but with messages supplied. This will not
- * allocate any memory, and the messages may be statically allocated
- * (just make sure to do the "done" handling on them). Note that this
- * is primarily for the watchdog timer, since it should be able to
- * send messages even if no memory is available. This is subject to
- * change as the system changes, so don't use it unless you REALLY
- * have to.
- */
-int ipmi_request_supply_msgs(ipmi_user_t user,
- struct ipmi_addr *addr,
- long msgid,
- struct kernel_ipmi_msg *msg,
- void *user_msg_data,
- void *supplied_smi,
- struct ipmi_recv_msg *supplied_recv,
- int priority);
-
-/*
- * Poll the IPMI interface for the user. This causes the IPMI code to
- * do an immediate check for information from the driver and handle
- * anything that is immediately pending. This will not block in any
- * way. This is useful if you need to spin waiting for something to
- * happen in the IPMI driver.
- */
-void ipmi_poll_interface(ipmi_user_t user);
-
-/*
- * When commands come in to the SMS, the user can register to receive
- * them. Only one user can be listening on a specific netfn/cmd/chan tuple
- * at a time, you will get an EBUSY error if the command is already
- * registered. If a command is received that does not have a user
- * registered, the driver will automatically return the proper
- * error. Channels are specified as a bitfield, use IPMI_CHAN_ALL to
- * mean all channels.
- */
-int ipmi_register_for_cmd(ipmi_user_t user,
- unsigned char netfn,
- unsigned char cmd,
- unsigned int chans);
-int ipmi_unregister_for_cmd(ipmi_user_t user,
- unsigned char netfn,
- unsigned char cmd,
- unsigned int chans);
-
-/*
- * Go into a mode where the driver will not autonomously attempt to do
- * things with the interface. It will still respond to attentions and
- * interrupts, and it will expect that commands will complete. It
- * will not automatcially check for flags, events, or things of that
- * nature.
- *
- * This is primarily used for firmware upgrades. The idea is that
- * when you go into firmware upgrade mode, you do this operation
- * and the driver will not attempt to do anything but what you tell
- * it or what the BMC asks for.
- *
- * Note that if you send a command that resets the BMC, the driver
- * will still expect a response from that command. So the BMC should
- * reset itself *after* the response is sent. Resetting before the
- * response is just silly.
- *
- * If in auto maintenance mode, the driver will automatically go into
- * maintenance mode for 30 seconds if it sees a cold reset, a warm
- * reset, or a firmware NetFN. This means that code that uses only
- * firmware NetFN commands to do upgrades will work automatically
- * without change, assuming it sends a message every 30 seconds or
- * less.
- *
- * See the IPMI_MAINTENANCE_MODE_xxx defines for what the mode means.
- */
-int ipmi_get_maintenance_mode(ipmi_user_t user);
-int ipmi_set_maintenance_mode(ipmi_user_t user, int mode);
-
-/*
- * When the user is created, it will not receive IPMI events by
- * default. The user must set this to TRUE to get incoming events.
- * The first user that sets this to TRUE will receive all events that
- * have been queued while no one was waiting for events.
- */
-int ipmi_set_gets_events(ipmi_user_t user, int val);
-
-/*
- * Called when a new SMI is registered. This will also be called on
- * every existing interface when a new watcher is registered with
- * ipmi_smi_watcher_register().
- */
-struct ipmi_smi_watcher {
- struct list_head link;
-
- /* You must set the owner to the current module, if you are in
- a module (generally just set it to "THIS_MODULE"). */
- struct module *owner;
-
- /* These two are called with read locks held for the interface
- the watcher list. So you can add and remove users from the
- IPMI interface, send messages, etc., but you cannot add
- or remove SMI watchers or SMI interfaces. */
- void (*new_smi)(int if_num, struct device *dev);
- void (*smi_gone)(int if_num);
-};
-
-int ipmi_smi_watcher_register(struct ipmi_smi_watcher *watcher);
-int ipmi_smi_watcher_unregister(struct ipmi_smi_watcher *watcher);
-
-/* The following are various helper functions for dealing with IPMI
- addresses. */
-
-/* Return the maximum length of an IPMI address given it's type. */
-unsigned int ipmi_addr_length(int addr_type);
-
-/* Validate that the given IPMI address is valid. */
-int ipmi_validate_addr(struct ipmi_addr *addr, int len);
-
-/*
- * How did the IPMI driver find out about the device?
- */
-enum ipmi_addr_src {
- SI_INVALID = 0, SI_HOTMOD, SI_HARDCODED, SI_SPMI, SI_ACPI, SI_SMBIOS,
- SI_PCI, SI_DEVICETREE, SI_DEFAULT
-};
-
-union ipmi_smi_info_union {
- /*
- * the acpi_info element is defined for the SI_ACPI
- * address type
- */
- struct {
- void *acpi_handle;
- } acpi_info;
-};
-
-struct ipmi_smi_info {
- enum ipmi_addr_src addr_src;
-
- /*
- * Base device for the interface. Don't forget to put this when
- * you are done.
- */
- struct device *dev;
-
- /*
- * The addr_info provides more detailed info for some IPMI
- * devices, depending on the addr_src. Currently only SI_ACPI
- * info is provided.
- */
- union ipmi_smi_info_union addr_info;
-};
-
-/* This is to get the private info of ipmi_smi_t */
-extern int ipmi_get_smi_info(int if_num, struct ipmi_smi_info *data);
-
-#endif /* __KERNEL__ */
-
-
-/*
- * The userland interface
- */
-
-/*
- * The userland interface for the IPMI driver is a standard character
- * device, with each instance of an interface registered as a minor
- * number under the major character device.
- *
- * The read and write calls do not work, to get messages in and out
- * requires ioctl calls because of the complexity of the data. select
- * and poll do work, so you can wait for input using the file
- * descriptor, you just can use read to get it.
- *
- * In general, you send a command down to the interface and receive
- * responses back. You can use the msgid value to correlate commands
- * and responses, the driver will take care of figuring out which
- * incoming messages are for which command and find the proper msgid
- * value to report. You will only receive reponses for commands you
- * send. Asynchronous events, however, go to all open users, so you
- * must be ready to handle these (or ignore them if you don't care).
- *
- * The address type depends upon the channel type. When talking
- * directly to the BMC (IPMC_BMC_CHANNEL), the address is ignored
- * (IPMI_UNUSED_ADDR_TYPE). When talking to an IPMB channel, you must
- * supply a valid IPMB address with the addr_type set properly.
- *
- * When talking to normal channels, the driver takes care of the
- * details of formatting and sending messages on that channel. You do
- * not, for instance, have to format a send command, you just send
- * whatever command you want to the channel, the driver will create
- * the send command, automatically issue receive command and get even
- * commands, and pass those up to the proper user.
- */
-
-
-/* The magic IOCTL value for this interface. */
-#define IPMI_IOC_MAGIC 'i'
-
-
-/* Messages sent to the interface are this format. */
-struct ipmi_req {
- unsigned char __user *addr; /* Address to send the message to. */
- unsigned int addr_len;
-
- long msgid; /* The sequence number for the message. This
- exact value will be reported back in the
- response to this request if it is a command.
- If it is a response, this will be used as
- the sequence value for the response. */
-
- struct ipmi_msg msg;
-};
-/*
- * Send a message to the interfaces. error values are:
- * - EFAULT - an address supplied was invalid.
- * - EINVAL - The address supplied was not valid, or the command
- * was not allowed.
- * - EMSGSIZE - The message to was too large.
- * - ENOMEM - Buffers could not be allocated for the command.
- */
-#define IPMICTL_SEND_COMMAND _IOR(IPMI_IOC_MAGIC, 13, \
- struct ipmi_req)
-
-/* Messages sent to the interface with timing parameters are this
- format. */
-struct ipmi_req_settime {
- struct ipmi_req req;
-
- /* See ipmi_request_settime() above for details on these
- values. */
- int retries;
- unsigned int retry_time_ms;
-};
-/*
- * Send a message to the interfaces with timing parameters. error values
- * are:
- * - EFAULT - an address supplied was invalid.
- * - EINVAL - The address supplied was not valid, or the command
- * was not allowed.
- * - EMSGSIZE - The message to was too large.
- * - ENOMEM - Buffers could not be allocated for the command.
- */
-#define IPMICTL_SEND_COMMAND_SETTIME _IOR(IPMI_IOC_MAGIC, 21, \
- struct ipmi_req_settime)
-
-/* Messages received from the interface are this format. */
-struct ipmi_recv {
- int recv_type; /* Is this a command, response or an
- asyncronous event. */
-
- unsigned char __user *addr; /* Address the message was from is put
- here. The caller must supply the
- memory. */
- unsigned int addr_len; /* The size of the address buffer.
- The caller supplies the full buffer
- length, this value is updated to
- the actual message length when the
- message is received. */
-
- long msgid; /* The sequence number specified in the request
- if this is a response. If this is a command,
- this will be the sequence number from the
- command. */
-
- struct ipmi_msg msg; /* The data field must point to a buffer.
- The data_size field must be set to the
- size of the message buffer. The
- caller supplies the full buffer
- length, this value is updated to the
- actual message length when the message
- is received. */
-};
-
-/*
- * Receive a message. error values:
- * - EAGAIN - no messages in the queue.
- * - EFAULT - an address supplied was invalid.
- * - EINVAL - The address supplied was not valid.
- * - EMSGSIZE - The message to was too large to fit into the message buffer,
- * the message will be left in the buffer. */
-#define IPMICTL_RECEIVE_MSG _IOWR(IPMI_IOC_MAGIC, 12, \
- struct ipmi_recv)
-
-/*
- * Like RECEIVE_MSG, but if the message won't fit in the buffer, it
- * will truncate the contents instead of leaving the data in the
- * buffer.
- */
-#define IPMICTL_RECEIVE_MSG_TRUNC _IOWR(IPMI_IOC_MAGIC, 11, \
- struct ipmi_recv)
-
-/* Register to get commands from other entities on this interface. */
-struct ipmi_cmdspec {
- unsigned char netfn;
- unsigned char cmd;
-};
-
-/*
- * Register to receive a specific command. error values:
- * - EFAULT - an address supplied was invalid.
- * - EBUSY - The netfn/cmd supplied was already in use.
- * - ENOMEM - could not allocate memory for the entry.
- */
-#define IPMICTL_REGISTER_FOR_CMD _IOR(IPMI_IOC_MAGIC, 14, \
- struct ipmi_cmdspec)
-/*
- * Unregister a regsitered command. error values:
- * - EFAULT - an address supplied was invalid.
- * - ENOENT - The netfn/cmd was not found registered for this user.
- */
-#define IPMICTL_UNREGISTER_FOR_CMD _IOR(IPMI_IOC_MAGIC, 15, \
- struct ipmi_cmdspec)
-
-/*
- * Register to get commands from other entities on specific channels.
- * This way, you can only listen on specific channels, or have messages
- * from some channels go to one place and other channels to someplace
- * else. The chans field is a bitmask, (1 << channel) for each channel.
- * It may be IPMI_CHAN_ALL for all channels.
- */
-struct ipmi_cmdspec_chans {
- unsigned int netfn;
- unsigned int cmd;
- unsigned int chans;
-};
-
-/*
- * Register to receive a specific command on specific channels. error values:
- * - EFAULT - an address supplied was invalid.
- * - EBUSY - One of the netfn/cmd/chans supplied was already in use.
- * - ENOMEM - could not allocate memory for the entry.
- */
-#define IPMICTL_REGISTER_FOR_CMD_CHANS _IOR(IPMI_IOC_MAGIC, 28, \
- struct ipmi_cmdspec_chans)
-/*
- * Unregister some netfn/cmd/chans. error values:
- * - EFAULT - an address supplied was invalid.
- * - ENOENT - None of the netfn/cmd/chans were found registered for this user.
- */
-#define IPMICTL_UNREGISTER_FOR_CMD_CHANS _IOR(IPMI_IOC_MAGIC, 29, \
- struct ipmi_cmdspec_chans)
-
-/*
- * Set whether this interface receives events. Note that the first
- * user registered for events will get all pending events for the
- * interface. error values:
- * - EFAULT - an address supplied was invalid.
- */
-#define IPMICTL_SET_GETS_EVENTS_CMD _IOR(IPMI_IOC_MAGIC, 16, int)
-
-/*
- * Set and get the slave address and LUN that we will use for our
- * source messages. Note that this affects the interface, not just
- * this user, so it will affect all users of this interface. This is
- * so some initialization code can come in and do the OEM-specific
- * things it takes to determine your address (if not the BMC) and set
- * it for everyone else. You should probably leave the LUN alone.
- */
-struct ipmi_channel_lun_address_set {
- unsigned short channel;
- unsigned char value;
-};
-#define IPMICTL_SET_MY_CHANNEL_ADDRESS_CMD \
- _IOR(IPMI_IOC_MAGIC, 24, struct ipmi_channel_lun_address_set)
-#define IPMICTL_GET_MY_CHANNEL_ADDRESS_CMD \
- _IOR(IPMI_IOC_MAGIC, 25, struct ipmi_channel_lun_address_set)
-#define IPMICTL_SET_MY_CHANNEL_LUN_CMD \
- _IOR(IPMI_IOC_MAGIC, 26, struct ipmi_channel_lun_address_set)
-#define IPMICTL_GET_MY_CHANNEL_LUN_CMD \
- _IOR(IPMI_IOC_MAGIC, 27, struct ipmi_channel_lun_address_set)
-/* Legacy interfaces, these only set IPMB 0. */
-#define IPMICTL_SET_MY_ADDRESS_CMD _IOR(IPMI_IOC_MAGIC, 17, unsigned int)
-#define IPMICTL_GET_MY_ADDRESS_CMD _IOR(IPMI_IOC_MAGIC, 18, unsigned int)
-#define IPMICTL_SET_MY_LUN_CMD _IOR(IPMI_IOC_MAGIC, 19, unsigned int)
-#define IPMICTL_GET_MY_LUN_CMD _IOR(IPMI_IOC_MAGIC, 20, unsigned int)
-
-/*
- * Get/set the default timing values for an interface. You shouldn't
- * generally mess with these.
- */
-struct ipmi_timing_parms {
- int retries;
- unsigned int retry_time_ms;
-};
-#define IPMICTL_SET_TIMING_PARMS_CMD _IOR(IPMI_IOC_MAGIC, 22, \
- struct ipmi_timing_parms)
-#define IPMICTL_GET_TIMING_PARMS_CMD _IOR(IPMI_IOC_MAGIC, 23, \
- struct ipmi_timing_parms)
-
-/*
- * Set the maintenance mode. See ipmi_set_maintenance_mode() above
- * for a description of what this does.
- */
-#define IPMICTL_GET_MAINTENANCE_MODE_CMD _IOR(IPMI_IOC_MAGIC, 30, int)
-#define IPMICTL_SET_MAINTENANCE_MODE_CMD _IOW(IPMI_IOC_MAGIC, 31, int)
-
-#endif /* __LINUX_IPMI_H */
diff --git a/ANDROID_3.4.5/include/linux/ipmi_msgdefs.h b/ANDROID_3.4.5/include/linux/ipmi_msgdefs.h
deleted file mode 100644
index df97e6e3..00000000
--- a/ANDROID_3.4.5/include/linux/ipmi_msgdefs.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * ipmi_smi.h
- *
- * MontaVista IPMI system management interface
- *
- * Author: MontaVista Software, Inc.
- * Corey Minyard <minyard@mvista.com>
- * source@mvista.com
- *
- * Copyright 2002 MontaVista Software Inc.
- *
- * 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 SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * 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.
- */
-
-#ifndef __LINUX_IPMI_MSGDEFS_H
-#define __LINUX_IPMI_MSGDEFS_H
-
-/* Various definitions for IPMI messages used by almost everything in
- the IPMI stack. */
-
-/* NetFNs and commands used inside the IPMI stack. */
-
-#define IPMI_NETFN_SENSOR_EVENT_REQUEST 0x04
-#define IPMI_NETFN_SENSOR_EVENT_RESPONSE 0x05
-#define IPMI_GET_EVENT_RECEIVER_CMD 0x01
-
-#define IPMI_NETFN_APP_REQUEST 0x06
-#define IPMI_NETFN_APP_RESPONSE 0x07
-#define IPMI_GET_DEVICE_ID_CMD 0x01
-#define IPMI_COLD_RESET_CMD 0x02
-#define IPMI_WARM_RESET_CMD 0x03
-#define IPMI_CLEAR_MSG_FLAGS_CMD 0x30
-#define IPMI_GET_DEVICE_GUID_CMD 0x08
-#define IPMI_GET_MSG_FLAGS_CMD 0x31
-#define IPMI_SEND_MSG_CMD 0x34
-#define IPMI_GET_MSG_CMD 0x33
-#define IPMI_SET_BMC_GLOBAL_ENABLES_CMD 0x2e
-#define IPMI_GET_BMC_GLOBAL_ENABLES_CMD 0x2f
-#define IPMI_READ_EVENT_MSG_BUFFER_CMD 0x35
-#define IPMI_GET_CHANNEL_INFO_CMD 0x42
-
-/* Bit for BMC global enables. */
-#define IPMI_BMC_RCV_MSG_INTR 0x01
-#define IPMI_BMC_EVT_MSG_INTR 0x02
-#define IPMI_BMC_EVT_MSG_BUFF 0x04
-#define IPMI_BMC_SYS_LOG 0x08
-
-#define IPMI_NETFN_STORAGE_REQUEST 0x0a
-#define IPMI_NETFN_STORAGE_RESPONSE 0x0b
-#define IPMI_ADD_SEL_ENTRY_CMD 0x44
-
-#define IPMI_NETFN_FIRMWARE_REQUEST 0x08
-#define IPMI_NETFN_FIRMWARE_RESPONSE 0x09
-
-/* The default slave address */
-#define IPMI_BMC_SLAVE_ADDR 0x20
-
-/* The BT interface on high-end HP systems supports up to 255 bytes in
- * one transfer. Its "virtual" BMC supports some commands that are longer
- * than 128 bytes. Use the full 256, plus NetFn/LUN, Cmd, cCode, plus
- * some overhead; it's not worth the effort to dynamically size this based
- * on the results of the "Get BT Capabilities" command. */
-#define IPMI_MAX_MSG_LENGTH 272 /* multiple of 16 */
-
-#define IPMI_CC_NO_ERROR 0x00
-#define IPMI_NODE_BUSY_ERR 0xc0
-#define IPMI_INVALID_COMMAND_ERR 0xc1
-#define IPMI_TIMEOUT_ERR 0xc3
-#define IPMI_ERR_MSG_TRUNCATED 0xc6
-#define IPMI_REQ_LEN_INVALID_ERR 0xc7
-#define IPMI_REQ_LEN_EXCEEDED_ERR 0xc8
-#define IPMI_NOT_IN_MY_STATE_ERR 0xd5 /* IPMI 2.0 */
-#define IPMI_LOST_ARBITRATION_ERR 0x81
-#define IPMI_BUS_ERR 0x82
-#define IPMI_NAK_ON_WRITE_ERR 0x83
-#define IPMI_ERR_UNSPECIFIED 0xff
-
-#define IPMI_CHANNEL_PROTOCOL_IPMB 1
-#define IPMI_CHANNEL_PROTOCOL_ICMB 2
-#define IPMI_CHANNEL_PROTOCOL_SMBUS 4
-#define IPMI_CHANNEL_PROTOCOL_KCS 5
-#define IPMI_CHANNEL_PROTOCOL_SMIC 6
-#define IPMI_CHANNEL_PROTOCOL_BT10 7
-#define IPMI_CHANNEL_PROTOCOL_BT15 8
-#define IPMI_CHANNEL_PROTOCOL_TMODE 9
-
-#define IPMI_CHANNEL_MEDIUM_IPMB 1
-#define IPMI_CHANNEL_MEDIUM_ICMB10 2
-#define IPMI_CHANNEL_MEDIUM_ICMB09 3
-#define IPMI_CHANNEL_MEDIUM_8023LAN 4
-#define IPMI_CHANNEL_MEDIUM_ASYNC 5
-#define IPMI_CHANNEL_MEDIUM_OTHER_LAN 6
-#define IPMI_CHANNEL_MEDIUM_PCI_SMBUS 7
-#define IPMI_CHANNEL_MEDIUM_SMBUS1 8
-#define IPMI_CHANNEL_MEDIUM_SMBUS2 9
-#define IPMI_CHANNEL_MEDIUM_USB1 10
-#define IPMI_CHANNEL_MEDIUM_USB2 11
-#define IPMI_CHANNEL_MEDIUM_SYSINTF 12
-#define IPMI_CHANNEL_MEDIUM_OEM_MIN 0x60
-#define IPMI_CHANNEL_MEDIUM_OEM_MAX 0x7f
-
-#endif /* __LINUX_IPMI_MSGDEFS_H */
diff --git a/ANDROID_3.4.5/include/linux/ipmi_smi.h b/ANDROID_3.4.5/include/linux/ipmi_smi.h
deleted file mode 100644
index fcb5d44e..00000000
--- a/ANDROID_3.4.5/include/linux/ipmi_smi.h
+++ /dev/null
@@ -1,242 +0,0 @@
-/*
- * ipmi_smi.h
- *
- * MontaVista IPMI system management interface
- *
- * Author: MontaVista Software, Inc.
- * Corey Minyard <minyard@mvista.com>
- * source@mvista.com
- *
- * Copyright 2002 MontaVista Software Inc.
- *
- * 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 SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * 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.
- */
-
-#ifndef __LINUX_IPMI_SMI_H
-#define __LINUX_IPMI_SMI_H
-
-#include <linux/ipmi_msgdefs.h>
-#include <linux/proc_fs.h>
-#include <linux/platform_device.h>
-#include <linux/ipmi.h>
-
-struct device;
-
-/* This files describes the interface for IPMI system management interface
- drivers to bind into the IPMI message handler. */
-
-/* Structure for the low-level drivers. */
-typedef struct ipmi_smi *ipmi_smi_t;
-
-/*
- * Messages to/from the lower layer. The smi interface will take one
- * of these to send. After the send has occurred and a response has
- * been received, it will report this same data structure back up to
- * the upper layer. If an error occurs, it should fill in the
- * response with an error code in the completion code location. When
- * asynchronous data is received, one of these is allocated, the
- * data_size is set to zero and the response holds the data from the
- * get message or get event command that the interface initiated.
- * Note that it is the interfaces responsibility to detect
- * asynchronous data and messages and request them from the
- * interface.
- */
-struct ipmi_smi_msg {
- struct list_head link;
-
- long msgid;
- void *user_data;
-
- int data_size;
- unsigned char data[IPMI_MAX_MSG_LENGTH];
-
- int rsp_size;
- unsigned char rsp[IPMI_MAX_MSG_LENGTH];
-
- /* Will be called when the system is done with the message
- (presumably to free it). */
- void (*done)(struct ipmi_smi_msg *msg);
-};
-
-struct ipmi_smi_handlers {
- struct module *owner;
-
- /* The low-level interface cannot start sending messages to
- the upper layer until this function is called. This may
- not be NULL, the lower layer must take the interface from
- this call. */
- int (*start_processing)(void *send_info,
- ipmi_smi_t new_intf);
-
- /*
- * Get the detailed private info of the low level interface and store
- * it into the structure of ipmi_smi_data. For example: the
- * ACPI device handle will be returned for the pnp_acpi IPMI device.
- */
- int (*get_smi_info)(void *send_info, struct ipmi_smi_info *data);
-
- /* Called to enqueue an SMI message to be sent. This
- operation is not allowed to fail. If an error occurs, it
- should report back the error in a received message. It may
- do this in the current call context, since no write locks
- are held when this is run. If the priority is > 0, the
- message will go into a high-priority queue and be sent
- first. Otherwise, it goes into a normal-priority queue. */
- void (*sender)(void *send_info,
- struct ipmi_smi_msg *msg,
- int priority);
-
- /* Called by the upper layer to request that we try to get
- events from the BMC we are attached to. */
- void (*request_events)(void *send_info);
-
- /* Called when the interface should go into "run to
- completion" mode. If this call sets the value to true, the
- interface should make sure that all messages are flushed
- out and that none are pending, and any new requests are run
- to completion immediately. */
- void (*set_run_to_completion)(void *send_info, int run_to_completion);
-
- /* Called to poll for work to do. This is so upper layers can
- poll for operations during things like crash dumps. */
- void (*poll)(void *send_info);
-
- /* Enable/disable firmware maintenance mode. Note that this
- is *not* the modes defined, this is simply an on/off
- setting. The message handler does the mode handling. Note
- that this is called from interrupt context, so it cannot
- block. */
- void (*set_maintenance_mode)(void *send_info, int enable);
-
- /* Tell the handler that we are using it/not using it. The
- message handler get the modules that this handler belongs
- to; this function lets the SMI claim any modules that it
- uses. These may be NULL if this is not required. */
- int (*inc_usecount)(void *send_info);
- void (*dec_usecount)(void *send_info);
-};
-
-struct ipmi_device_id {
- unsigned char device_id;
- unsigned char device_revision;
- unsigned char firmware_revision_1;
- unsigned char firmware_revision_2;
- unsigned char ipmi_version;
- unsigned char additional_device_support;
- unsigned int manufacturer_id;
- unsigned int product_id;
- unsigned char aux_firmware_revision[4];
- unsigned int aux_firmware_revision_set : 1;
-};
-
-#define ipmi_version_major(v) ((v)->ipmi_version & 0xf)
-#define ipmi_version_minor(v) ((v)->ipmi_version >> 4)
-
-/* Take a pointer to a raw data buffer and a length and extract device
- id information from it. The first byte of data must point to the
- netfn << 2, the data should be of the format:
- netfn << 2, cmd, completion code, data
- as normally comes from a device interface. */
-static inline int ipmi_demangle_device_id(const unsigned char *data,
- unsigned int data_len,
- struct ipmi_device_id *id)
-{
- if (data_len < 9)
- return -EINVAL;
- if (data[0] != IPMI_NETFN_APP_RESPONSE << 2 ||
- data[1] != IPMI_GET_DEVICE_ID_CMD)
- /* Strange, didn't get the response we expected. */
- return -EINVAL;
- if (data[2] != 0)
- /* That's odd, it shouldn't be able to fail. */
- return -EINVAL;
-
- data += 3;
- data_len -= 3;
- id->device_id = data[0];
- id->device_revision = data[1];
- id->firmware_revision_1 = data[2];
- id->firmware_revision_2 = data[3];
- id->ipmi_version = data[4];
- id->additional_device_support = data[5];
- if (data_len >= 11) {
- id->manufacturer_id = (data[6] | (data[7] << 8) |
- (data[8] << 16));
- id->product_id = data[9] | (data[10] << 8);
- } else {
- id->manufacturer_id = 0;
- id->product_id = 0;
- }
- if (data_len >= 15) {
- memcpy(id->aux_firmware_revision, data+11, 4);
- id->aux_firmware_revision_set = 1;
- } else
- id->aux_firmware_revision_set = 0;
-
- return 0;
-}
-
-/* Add a low-level interface to the IPMI driver. Note that if the
- interface doesn't know its slave address, it should pass in zero.
- The low-level interface should not deliver any messages to the
- upper layer until the start_processing() function in the handlers
- is called, and the lower layer must get the interface from that
- call. */
-int ipmi_register_smi(struct ipmi_smi_handlers *handlers,
- void *send_info,
- struct ipmi_device_id *device_id,
- struct device *dev,
- const char *sysfs_name,
- unsigned char slave_addr);
-
-/*
- * Remove a low-level interface from the IPMI driver. This will
- * return an error if the interface is still in use by a user.
- */
-int ipmi_unregister_smi(ipmi_smi_t intf);
-
-/*
- * The lower layer reports received messages through this interface.
- * The data_size should be zero if this is an asyncronous message. If
- * the lower layer gets an error sending a message, it should format
- * an error response in the message response.
- */
-void ipmi_smi_msg_received(ipmi_smi_t intf,
- struct ipmi_smi_msg *msg);
-
-/* The lower layer received a watchdog pre-timeout on interface. */
-void ipmi_smi_watchdog_pretimeout(ipmi_smi_t intf);
-
-struct ipmi_smi_msg *ipmi_alloc_smi_msg(void);
-static inline void ipmi_free_smi_msg(struct ipmi_smi_msg *msg)
-{
- msg->done(msg);
-}
-
-/* Allow the lower layer to add things to the proc filesystem
- directory for this interface. Note that the entry will
- automatically be dstroyed when the interface is destroyed. */
-int ipmi_smi_add_proc_entry(ipmi_smi_t smi, char *name,
- const struct file_operations *proc_ops,
- void *data);
-
-#endif /* __LINUX_IPMI_SMI_H */
diff --git a/ANDROID_3.4.5/include/linux/ipsec.h b/ANDROID_3.4.5/include/linux/ipsec.h
deleted file mode 100644
index d17a6302..00000000
--- a/ANDROID_3.4.5/include/linux/ipsec.h
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef _LINUX_IPSEC_H
-#define _LINUX_IPSEC_H
-
-/* The definitions, required to talk to KAME racoon IKE. */
-
-#include <linux/pfkeyv2.h>
-
-#define IPSEC_PORT_ANY 0
-#define IPSEC_ULPROTO_ANY 255
-#define IPSEC_PROTO_ANY 255
-
-enum {
- IPSEC_MODE_ANY = 0, /* We do not support this for SA */
- IPSEC_MODE_TRANSPORT = 1,
- IPSEC_MODE_TUNNEL = 2,
- IPSEC_MODE_BEET = 3
-};
-
-enum {
- IPSEC_DIR_ANY = 0,
- IPSEC_DIR_INBOUND = 1,
- IPSEC_DIR_OUTBOUND = 2,
- IPSEC_DIR_FWD = 3, /* It is our own */
- IPSEC_DIR_MAX = 4,
- IPSEC_DIR_INVALID = 5
-};
-
-enum {
- IPSEC_POLICY_DISCARD = 0,
- IPSEC_POLICY_NONE = 1,
- IPSEC_POLICY_IPSEC = 2,
- IPSEC_POLICY_ENTRUST = 3,
- IPSEC_POLICY_BYPASS = 4
-};
-
-enum {
- IPSEC_LEVEL_DEFAULT = 0,
- IPSEC_LEVEL_USE = 1,
- IPSEC_LEVEL_REQUIRE = 2,
- IPSEC_LEVEL_UNIQUE = 3
-};
-
-#define IPSEC_MANUAL_REQID_MAX 0x3fff
-
-#define IPSEC_REPLAYWSIZE 32
-
-#endif /* _LINUX_IPSEC_H */
diff --git a/ANDROID_3.4.5/include/linux/ipv6.h b/ANDROID_3.4.5/include/linux/ipv6.h
deleted file mode 100644
index 8260ef77..00000000
--- a/ANDROID_3.4.5/include/linux/ipv6.h
+++ /dev/null
@@ -1,544 +0,0 @@
-#ifndef _IPV6_H
-#define _IPV6_H
-
-#include <linux/types.h>
-#include <linux/in6.h>
-#include <asm/byteorder.h>
-
-/* The latest drafts declared increase in minimal mtu up to 1280. */
-
-#define IPV6_MIN_MTU 1280
-
-/*
- * Advanced API
- * source interface/address selection, source routing, etc...
- * *under construction*
- */
-
-
-struct in6_pktinfo {
- struct in6_addr ipi6_addr;
- int ipi6_ifindex;
-};
-
-struct ip6_mtuinfo {
- struct sockaddr_in6 ip6m_addr;
- __u32 ip6m_mtu;
-};
-
-struct in6_ifreq {
- struct in6_addr ifr6_addr;
- __u32 ifr6_prefixlen;
- int ifr6_ifindex;
-};
-
-#define IPV6_SRCRT_STRICT 0x01 /* Deprecated; will be removed */
-#define IPV6_SRCRT_TYPE_0 0 /* Deprecated; will be removed */
-#define IPV6_SRCRT_TYPE_2 2 /* IPv6 type 2 Routing Header */
-
-/*
- * routing header
- */
-struct ipv6_rt_hdr {
- __u8 nexthdr;
- __u8 hdrlen;
- __u8 type;
- __u8 segments_left;
-
- /*
- * type specific data
- * variable length field
- */
-};
-
-
-struct ipv6_opt_hdr {
- __u8 nexthdr;
- __u8 hdrlen;
- /*
- * TLV encoded option data follows.
- */
-} __attribute__((packed)); /* required for some archs */
-
-#define ipv6_destopt_hdr ipv6_opt_hdr
-#define ipv6_hopopt_hdr ipv6_opt_hdr
-
-#ifdef __KERNEL__
-#define ipv6_optlen(p) (((p)->hdrlen+1) << 3)
-#endif
-
-/*
- * routing header type 0 (used in cmsghdr struct)
- */
-
-struct rt0_hdr {
- struct ipv6_rt_hdr rt_hdr;
- __u32 reserved;
- struct in6_addr addr[0];
-
-#define rt0_type rt_hdr.type
-};
-
-/*
- * routing header type 2
- */
-
-struct rt2_hdr {
- struct ipv6_rt_hdr rt_hdr;
- __u32 reserved;
- struct in6_addr addr;
-
-#define rt2_type rt_hdr.type
-};
-
-/*
- * home address option in destination options header
- */
-
-struct ipv6_destopt_hao {
- __u8 type;
- __u8 length;
- struct in6_addr addr;
-} __attribute__((packed));
-
-/*
- * IPv6 fixed header
- *
- * BEWARE, it is incorrect. The first 4 bits of flow_lbl
- * are glued to priority now, forming "class".
- */
-
-struct ipv6hdr {
-#if defined(__LITTLE_ENDIAN_BITFIELD)
- __u8 priority:4,
- version:4;
-#elif defined(__BIG_ENDIAN_BITFIELD)
- __u8 version:4,
- priority:4;
-#else
-#error "Please fix <asm/byteorder.h>"
-#endif
- __u8 flow_lbl[3];
-
- __be16 payload_len;
- __u8 nexthdr;
- __u8 hop_limit;
-
- struct in6_addr saddr;
- struct in6_addr daddr;
-};
-
-#ifdef __KERNEL__
-/*
- * This structure contains configuration options per IPv6 link.
- */
-struct ipv6_devconf {
- __s32 forwarding;
- __s32 hop_limit;
- __s32 mtu6;
- __s32 accept_ra;
- __s32 accept_redirects;
- __s32 autoconf;
- __s32 dad_transmits;
- __s32 rtr_solicits;
- __s32 rtr_solicit_interval;
- __s32 rtr_solicit_delay;
- __s32 force_mld_version;
-#ifdef CONFIG_IPV6_PRIVACY
- __s32 use_tempaddr;
- __s32 temp_valid_lft;
- __s32 temp_prefered_lft;
- __s32 regen_max_retry;
- __s32 max_desync_factor;
-#endif
- __s32 max_addresses;
- __s32 accept_ra_defrtr;
- __s32 accept_ra_pinfo;
-#ifdef CONFIG_IPV6_ROUTER_PREF
- __s32 accept_ra_rtr_pref;
- __s32 rtr_probe_interval;
-#ifdef CONFIG_IPV6_ROUTE_INFO
- __s32 accept_ra_rt_info_max_plen;
-#endif
-#endif
- __s32 proxy_ndp;
- __s32 accept_source_route;
-#ifdef CONFIG_IPV6_OPTIMISTIC_DAD
- __s32 optimistic_dad;
-#endif
-#ifdef CONFIG_IPV6_MROUTE
- __s32 mc_forwarding;
-#endif
- __s32 disable_ipv6;
- __s32 accept_dad;
- __s32 force_tllao;
- void *sysctl;
-};
-
-struct ipv6_params {
- __s32 disable_ipv6;
- __s32 autoconf;
-};
-extern struct ipv6_params ipv6_defaults;
-#endif
-
-/* index values for the variables in ipv6_devconf */
-enum {
- DEVCONF_FORWARDING = 0,
- DEVCONF_HOPLIMIT,
- DEVCONF_MTU6,
- DEVCONF_ACCEPT_RA,
- DEVCONF_ACCEPT_REDIRECTS,
- DEVCONF_AUTOCONF,
- DEVCONF_DAD_TRANSMITS,
- DEVCONF_RTR_SOLICITS,
- DEVCONF_RTR_SOLICIT_INTERVAL,
- DEVCONF_RTR_SOLICIT_DELAY,
- DEVCONF_USE_TEMPADDR,
- DEVCONF_TEMP_VALID_LFT,
- DEVCONF_TEMP_PREFERED_LFT,
- DEVCONF_REGEN_MAX_RETRY,
- DEVCONF_MAX_DESYNC_FACTOR,
- DEVCONF_MAX_ADDRESSES,
- DEVCONF_FORCE_MLD_VERSION,
- DEVCONF_ACCEPT_RA_DEFRTR,
- DEVCONF_ACCEPT_RA_PINFO,
- DEVCONF_ACCEPT_RA_RTR_PREF,
- DEVCONF_RTR_PROBE_INTERVAL,
- DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN,
- DEVCONF_PROXY_NDP,
- DEVCONF_OPTIMISTIC_DAD,
- DEVCONF_ACCEPT_SOURCE_ROUTE,
- DEVCONF_MC_FORWARDING,
- DEVCONF_DISABLE_IPV6,
- DEVCONF_ACCEPT_DAD,
- DEVCONF_FORCE_TLLAO,
- DEVCONF_MAX
-};
-
-#ifdef __KERNEL__
-#include <linux/icmpv6.h>
-#include <linux/tcp.h>
-#include <linux/udp.h>
-
-#include <net/inet_sock.h>
-
-static inline struct ipv6hdr *ipv6_hdr(const struct sk_buff *skb)
-{
- return (struct ipv6hdr *)skb_network_header(skb);
-}
-
-static inline struct ipv6hdr *ipipv6_hdr(const struct sk_buff *skb)
-{
- return (struct ipv6hdr *)skb_transport_header(skb);
-}
-
-static inline __u8 ipv6_tclass(const struct ipv6hdr *iph)
-{
- return (ntohl(*(__be32 *)iph) >> 20) & 0xff;
-}
-
-/*
- This structure contains results of exthdrs parsing
- as offsets from skb->nh.
- */
-
-struct inet6_skb_parm {
- int iif;
- __u16 ra;
- __u16 hop;
- __u16 dst0;
- __u16 srcrt;
- __u16 dst1;
- __u16 lastopt;
- __u16 nhoff;
- __u16 flags;
-#if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE)
- __u16 dsthao;
-#endif
-
-#define IP6SKB_XFRM_TRANSFORMED 1
-#define IP6SKB_FORWARDED 2
-#define IP6SKB_REROUTED 4
-};
-
-#define IP6CB(skb) ((struct inet6_skb_parm*)((skb)->cb))
-#define IP6CBMTU(skb) ((struct ip6_mtuinfo *)((skb)->cb))
-
-static inline int inet6_iif(const struct sk_buff *skb)
-{
- return IP6CB(skb)->iif;
-}
-
-struct inet6_request_sock {
- struct in6_addr loc_addr;
- struct in6_addr rmt_addr;
- struct sk_buff *pktopts;
- int iif;
-};
-
-struct tcp6_request_sock {
- struct tcp_request_sock tcp6rsk_tcp;
- struct inet6_request_sock tcp6rsk_inet6;
-};
-
-struct ipv6_mc_socklist;
-struct ipv6_ac_socklist;
-struct ipv6_fl_socklist;
-
-/**
- * struct ipv6_pinfo - ipv6 private area
- *
- * In the struct sock hierarchy (tcp6_sock, upd6_sock, etc)
- * this _must_ be the last member, so that inet6_sk_generic
- * is able to calculate its offset from the base struct sock
- * by using the struct proto->slab_obj_size member. -acme
- */
-struct ipv6_pinfo {
- struct in6_addr saddr;
- struct in6_addr rcv_saddr;
- struct in6_addr daddr;
- struct in6_pktinfo sticky_pktinfo;
- struct in6_addr *daddr_cache;
-#ifdef CONFIG_IPV6_SUBTREES
- struct in6_addr *saddr_cache;
-#endif
-
- __be32 flow_label;
- __u32 frag_size;
-
- /*
- * Packed in 16bits.
- * Omit one shift by by putting the signed field at MSB.
- */
-#if defined(__BIG_ENDIAN_BITFIELD)
- __s16 hop_limit:9;
- __u16 __unused_1:7;
-#else
- __u16 __unused_1:7;
- __s16 hop_limit:9;
-#endif
-
-#if defined(__BIG_ENDIAN_BITFIELD)
- /* Packed in 16bits. */
- __s16 mcast_hops:9;
- __u16 __unused_2:6,
- mc_loop:1;
-#else
- __u16 mc_loop:1,
- __unused_2:6;
- __s16 mcast_hops:9;
-#endif
- int ucast_oif;
- int mcast_oif;
-
- /* pktoption flags */
- union {
- struct {
- __u16 srcrt:1,
- osrcrt:1,
- rxinfo:1,
- rxoinfo:1,
- rxhlim:1,
- rxohlim:1,
- hopopts:1,
- ohopopts:1,
- dstopts:1,
- odstopts:1,
- rxflow:1,
- rxtclass:1,
- rxpmtu:1,
- rxorigdstaddr:1;
- /* 2 bits hole */
- } bits;
- __u16 all;
- } rxopt;
-
- /* sockopt flags */
- __u16 recverr:1,
- sndflow:1,
- pmtudisc:2,
- ipv6only:1,
- srcprefs:3, /* 001: prefer temporary address
- * 010: prefer public address
- * 100: prefer care-of address
- */
- dontfrag:1;
- __u8 min_hopcount;
- __u8 tclass;
- __u8 rcv_tclass;
-
- __u32 dst_cookie;
-
- struct ipv6_mc_socklist __rcu *ipv6_mc_list;
- struct ipv6_ac_socklist *ipv6_ac_list;
- struct ipv6_fl_socklist *ipv6_fl_list;
-
- struct ipv6_txoptions *opt;
- struct sk_buff *pktoptions;
- struct sk_buff *rxpmtu;
- struct {
- struct ipv6_txoptions *opt;
- u8 hop_limit;
- u8 tclass;
- } cork;
-};
-
-/* WARNING: don't change the layout of the members in {raw,udp,tcp}6_sock! */
-struct raw6_sock {
- /* inet_sock has to be the first member of raw6_sock */
- struct inet_sock inet;
- __u32 checksum; /* perform checksum */
- __u32 offset; /* checksum offset */
- struct icmp6_filter filter;
- __u32 ip6mr_table;
- /* ipv6_pinfo has to be the last member of raw6_sock, see inet6_sk_generic */
- struct ipv6_pinfo inet6;
-};
-
-struct udp6_sock {
- struct udp_sock udp;
- /* ipv6_pinfo has to be the last member of udp6_sock, see inet6_sk_generic */
- struct ipv6_pinfo inet6;
-};
-
-struct tcp6_sock {
- struct tcp_sock tcp;
- /* ipv6_pinfo has to be the last member of tcp6_sock, see inet6_sk_generic */
- struct ipv6_pinfo inet6;
-};
-
-extern int inet6_sk_rebuild_header(struct sock *sk);
-
-#if IS_ENABLED(CONFIG_IPV6)
-static inline struct ipv6_pinfo * inet6_sk(const struct sock *__sk)
-{
- return inet_sk(__sk)->pinet6;
-}
-
-static inline struct inet6_request_sock *
- inet6_rsk(const struct request_sock *rsk)
-{
- return (struct inet6_request_sock *)(((u8 *)rsk) +
- inet_rsk(rsk)->inet6_rsk_offset);
-}
-
-static inline u32 inet6_rsk_offset(struct request_sock *rsk)
-{
- return rsk->rsk_ops->obj_size - sizeof(struct inet6_request_sock);
-}
-
-static inline struct request_sock *inet6_reqsk_alloc(struct request_sock_ops *ops)
-{
- struct request_sock *req = reqsk_alloc(ops);
-
- if (req != NULL) {
- inet_rsk(req)->inet6_rsk_offset = inet6_rsk_offset(req);
- inet6_rsk(req)->pktopts = NULL;
- }
-
- return req;
-}
-
-static inline struct raw6_sock *raw6_sk(const struct sock *sk)
-{
- return (struct raw6_sock *)sk;
-}
-
-static inline void inet_sk_copy_descendant(struct sock *sk_to,
- const struct sock *sk_from)
-{
- int ancestor_size = sizeof(struct inet_sock);
-
- if (sk_from->sk_family == PF_INET6)
- ancestor_size += sizeof(struct ipv6_pinfo);
-
- __inet_sk_copy_descendant(sk_to, sk_from, ancestor_size);
-}
-
-#define __ipv6_only_sock(sk) (inet6_sk(sk)->ipv6only)
-#define ipv6_only_sock(sk) ((sk)->sk_family == PF_INET6 && __ipv6_only_sock(sk))
-
-struct inet6_timewait_sock {
- struct in6_addr tw_v6_daddr;
- struct in6_addr tw_v6_rcv_saddr;
-};
-
-struct tcp6_timewait_sock {
- struct tcp_timewait_sock tcp6tw_tcp;
- struct inet6_timewait_sock tcp6tw_inet6;
-};
-
-static inline u16 inet6_tw_offset(const struct proto *prot)
-{
- return prot->twsk_prot->twsk_obj_size -
- sizeof(struct inet6_timewait_sock);
-}
-
-static inline struct inet6_timewait_sock *inet6_twsk(const struct sock *sk)
-{
- return (struct inet6_timewait_sock *)(((u8 *)sk) +
- inet_twsk(sk)->tw_ipv6_offset);
-}
-
-static inline struct in6_addr *__inet6_rcv_saddr(const struct sock *sk)
-{
- return likely(sk->sk_state != TCP_TIME_WAIT) ?
- &inet6_sk(sk)->rcv_saddr : &inet6_twsk(sk)->tw_v6_rcv_saddr;
-}
-
-static inline struct in6_addr *inet6_rcv_saddr(const struct sock *sk)
-{
- return sk->sk_family == AF_INET6 ? __inet6_rcv_saddr(sk) : NULL;
-}
-
-static inline int inet_v6_ipv6only(const struct sock *sk)
-{
- return likely(sk->sk_state != TCP_TIME_WAIT) ?
- ipv6_only_sock(sk) : inet_twsk(sk)->tw_ipv6only;
-}
-#else
-#define __ipv6_only_sock(sk) 0
-#define ipv6_only_sock(sk) 0
-
-static inline struct ipv6_pinfo * inet6_sk(const struct sock *__sk)
-{
- return NULL;
-}
-
-static inline struct inet6_request_sock *
- inet6_rsk(const struct request_sock *rsk)
-{
- return NULL;
-}
-
-static inline struct raw6_sock *raw6_sk(const struct sock *sk)
-{
- return NULL;
-}
-
-#define __inet6_rcv_saddr(__sk) NULL
-#define inet6_rcv_saddr(__sk) NULL
-#define tcp_twsk_ipv6only(__sk) 0
-#define inet_v6_ipv6only(__sk) 0
-#endif /* IS_ENABLED(CONFIG_IPV6) */
-
-#define INET6_MATCH(__sk, __net, __hash, __saddr, __daddr, __ports, __dif)\
- (((__sk)->sk_hash == (__hash)) && sock_net((__sk)) == (__net) && \
- ((*((__portpair *)&(inet_sk(__sk)->inet_dport))) == (__ports)) && \
- ((__sk)->sk_family == AF_INET6) && \
- ipv6_addr_equal(&inet6_sk(__sk)->daddr, (__saddr)) && \
- ipv6_addr_equal(&inet6_sk(__sk)->rcv_saddr, (__daddr)) && \
- (!((__sk)->sk_bound_dev_if) || ((__sk)->sk_bound_dev_if == (__dif))))
-
-#define INET6_TW_MATCH(__sk, __net, __hash, __saddr, __daddr, __ports, __dif) \
- (((__sk)->sk_hash == (__hash)) && sock_net((__sk)) == (__net) && \
- (*((__portpair *)&(inet_twsk(__sk)->tw_dport)) == (__ports)) && \
- ((__sk)->sk_family == PF_INET6) && \
- (ipv6_addr_equal(&inet6_twsk(__sk)->tw_v6_daddr, (__saddr))) && \
- (ipv6_addr_equal(&inet6_twsk(__sk)->tw_v6_rcv_saddr, (__daddr))) && \
- (!((__sk)->sk_bound_dev_if) || ((__sk)->sk_bound_dev_if == (__dif))))
-
-#endif /* __KERNEL__ */
-
-#endif /* _IPV6_H */
diff --git a/ANDROID_3.4.5/include/linux/ipv6_route.h b/ANDROID_3.4.5/include/linux/ipv6_route.h
deleted file mode 100644
index 1e7d8af2..00000000
--- a/ANDROID_3.4.5/include/linux/ipv6_route.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Linux INET6 implementation
- *
- * Authors:
- * Pedro Roque <roque@di.fc.ul.pt>
- *
- * 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_IPV6_ROUTE_H
-#define _LINUX_IPV6_ROUTE_H
-
-#include <linux/types.h>
-
-#define RTF_DEFAULT 0x00010000 /* default - learned via ND */
-#define RTF_ALLONLINK 0x00020000 /* (deprecated and will be removed)
- fallback, no routers on link */
-#define RTF_ADDRCONF 0x00040000 /* addrconf route - RA */
-#define RTF_PREFIX_RT 0x00080000 /* A prefix only route - RA */
-#define RTF_ANYCAST 0x00100000 /* Anycast */
-
-#define RTF_NONEXTHOP 0x00200000 /* route with no nexthop */
-#define RTF_EXPIRES 0x00400000
-
-#define RTF_ROUTEINFO 0x00800000 /* route information - RA */
-
-#define RTF_CACHE 0x01000000 /* cache entry */
-#define RTF_FLOW 0x02000000 /* flow significant route */
-#define RTF_POLICY 0x04000000 /* policy route */
-
-#define RTF_PREF(pref) ((pref) << 27)
-#define RTF_PREF_MASK 0x18000000
-
-#define RTF_LOCAL 0x80000000
-
-#ifdef __KERNEL__
-#define IPV6_EXTRACT_PREF(flag) (((flag) & RTF_PREF_MASK) >> 27)
-#define IPV6_DECODE_PREF(pref) ((pref) ^ 2) /* 1:low,2:med,3:high */
-#endif
-
-struct in6_rtmsg {
- struct in6_addr rtmsg_dst;
- struct in6_addr rtmsg_src;
- struct in6_addr rtmsg_gateway;
- __u32 rtmsg_type;
- __u16 rtmsg_dst_len;
- __u16 rtmsg_src_len;
- __u32 rtmsg_metric;
- unsigned long rtmsg_info;
- __u32 rtmsg_flags;
- int rtmsg_ifindex;
-};
-
-#define RTMSG_NEWDEVICE 0x11
-#define RTMSG_DELDEVICE 0x12
-#define RTMSG_NEWROUTE 0x21
-#define RTMSG_DELROUTE 0x22
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ipx.h b/ANDROID_3.4.5/include/linux/ipx.h
deleted file mode 100644
index 3d48014c..00000000
--- a/ANDROID_3.4.5/include/linux/ipx.h
+++ /dev/null
@@ -1,75 +0,0 @@
-#ifndef _IPX_H_
-#define _IPX_H_
-#include <linux/types.h>
-#include <linux/sockios.h>
-#include <linux/socket.h>
-#define IPX_NODE_LEN 6
-#define IPX_MTU 576
-
-struct sockaddr_ipx {
- __kernel_sa_family_t sipx_family;
- __be16 sipx_port;
- __be32 sipx_network;
- unsigned char sipx_node[IPX_NODE_LEN];
- __u8 sipx_type;
- unsigned char sipx_zero; /* 16 byte fill */
-};
-
-/*
- * So we can fit the extra info for SIOCSIFADDR into the address nicely
- */
-#define sipx_special sipx_port
-#define sipx_action sipx_zero
-#define IPX_DLTITF 0
-#define IPX_CRTITF 1
-
-struct ipx_route_definition {
- __be32 ipx_network;
- __be32 ipx_router_network;
- unsigned char ipx_router_node[IPX_NODE_LEN];
-};
-
-struct ipx_interface_definition {
- __be32 ipx_network;
- unsigned char ipx_device[16];
- unsigned char ipx_dlink_type;
-#define IPX_FRAME_NONE 0
-#define IPX_FRAME_SNAP 1
-#define IPX_FRAME_8022 2
-#define IPX_FRAME_ETHERII 3
-#define IPX_FRAME_8023 4
-#define IPX_FRAME_TR_8022 5 /* obsolete */
- unsigned char ipx_special;
-#define IPX_SPECIAL_NONE 0
-#define IPX_PRIMARY 1
-#define IPX_INTERNAL 2
- unsigned char ipx_node[IPX_NODE_LEN];
-};
-
-struct ipx_config_data {
- unsigned char ipxcfg_auto_select_primary;
- unsigned char ipxcfg_auto_create_interfaces;
-};
-
-/*
- * OLD Route Definition for backward compatibility.
- */
-
-struct ipx_route_def {
- __be32 ipx_network;
- __be32 ipx_router_network;
-#define IPX_ROUTE_NO_ROUTER 0
- unsigned char ipx_router_node[IPX_NODE_LEN];
- unsigned char ipx_device[16];
- unsigned short ipx_flags;
-#define IPX_RT_SNAP 8
-#define IPX_RT_8022 4
-#define IPX_RT_BLUEBOOK 2
-#define IPX_RT_ROUTED 1
-};
-
-#define SIOCAIPXITFCRT (SIOCPROTOPRIVATE)
-#define SIOCAIPXPRISLT (SIOCPROTOPRIVATE + 1)
-#define SIOCIPXCFGDATA (SIOCPROTOPRIVATE + 2)
-#define SIOCIPXNCPCONN (SIOCPROTOPRIVATE + 3)
-#endif /* _IPX_H_ */
diff --git a/ANDROID_3.4.5/include/linux/irda.h b/ANDROID_3.4.5/include/linux/irda.h
deleted file mode 100644
index a014c325..00000000
--- a/ANDROID_3.4.5/include/linux/irda.h
+++ /dev/null
@@ -1,251 +0,0 @@
-/*********************************************************************
- *
- * Filename: irda.h
- * Version:
- * Description:
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Mon Mar 8 14:06:12 1999
- * Modified at: Sat Dec 25 16:06:42 1999
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- * Copyright (c) 1999 Dag Brattli, 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.
- *
- * Neither Dag Brattli nor University of Tromsø admit liability nor
- * provide warranty for any of this software. This material is
- * provided "AS-IS" and at no charge.
- *
- ********************************************************************/
-
-#ifndef KERNEL_IRDA_H
-#define KERNEL_IRDA_H
-
-#include <linux/types.h>
-#include <linux/socket.h>
-
-/* Note that this file is shared with user space. */
-
-/* Hint bit positions for first hint byte */
-#define HINT_PNP 0x01
-#define HINT_PDA 0x02
-#define HINT_COMPUTER 0x04
-#define HINT_PRINTER 0x08
-#define HINT_MODEM 0x10
-#define HINT_FAX 0x20
-#define HINT_LAN 0x40
-#define HINT_EXTENSION 0x80
-
-/* Hint bit positions for second hint byte (first extension byte) */
-#define HINT_TELEPHONY 0x01
-#define HINT_FILE_SERVER 0x02
-#define HINT_COMM 0x04
-#define HINT_MESSAGE 0x08
-#define HINT_HTTP 0x10
-#define HINT_OBEX 0x20
-
-/* IrLMP character code values */
-#define CS_ASCII 0x00
-#define CS_ISO_8859_1 0x01
-#define CS_ISO_8859_2 0x02
-#define CS_ISO_8859_3 0x03
-#define CS_ISO_8859_4 0x04
-#define CS_ISO_8859_5 0x05
-#define CS_ISO_8859_6 0x06
-#define CS_ISO_8859_7 0x07
-#define CS_ISO_8859_8 0x08
-#define CS_ISO_8859_9 0x09
-#define CS_UNICODE 0xff
-
-/* These are the currently known dongles */
-typedef enum {
- IRDA_TEKRAM_DONGLE = 0,
- IRDA_ESI_DONGLE = 1,
- IRDA_ACTISYS_DONGLE = 2,
- IRDA_ACTISYS_PLUS_DONGLE = 3,
- IRDA_GIRBIL_DONGLE = 4,
- IRDA_LITELINK_DONGLE = 5,
- IRDA_AIRPORT_DONGLE = 6,
- IRDA_OLD_BELKIN_DONGLE = 7,
- IRDA_EP7211_IR = 8,
- IRDA_MCP2120_DONGLE = 9,
- IRDA_ACT200L_DONGLE = 10,
- IRDA_MA600_DONGLE = 11,
- IRDA_TOIM3232_DONGLE = 12,
- IRDA_EP7211_DONGLE = 13,
-} IRDA_DONGLE;
-
-/* Protocol types to be used for SOCK_DGRAM */
-enum {
- IRDAPROTO_UNITDATA = 0,
- IRDAPROTO_ULTRA = 1,
- IRDAPROTO_MAX
-};
-
-#define SOL_IRLMP 266 /* Same as SOL_IRDA for now */
-#define SOL_IRTTP 266 /* Same as SOL_IRDA for now */
-
-#define IRLMP_ENUMDEVICES 1 /* Return discovery log */
-#define IRLMP_IAS_SET 2 /* Set an attribute in local IAS */
-#define IRLMP_IAS_QUERY 3 /* Query remote IAS for attribute */
-#define IRLMP_HINTS_SET 4 /* Set hint bits advertised */
-#define IRLMP_QOS_SET 5
-#define IRLMP_QOS_GET 6
-#define IRLMP_MAX_SDU_SIZE 7
-#define IRLMP_IAS_GET 8 /* Get an attribute from local IAS */
-#define IRLMP_IAS_DEL 9 /* Remove attribute from local IAS */
-#define IRLMP_HINT_MASK_SET 10 /* Set discovery filter */
-#define IRLMP_WAITDEVICE 11 /* Wait for a new discovery */
-
-#define IRTTP_MAX_SDU_SIZE IRLMP_MAX_SDU_SIZE /* Compatibility */
-
-#define IAS_MAX_STRING 256 /* See IrLMP 1.1, 4.3.3.2 */
-#define IAS_MAX_OCTET_STRING 1024 /* See IrLMP 1.1, 4.3.3.2 */
-#define IAS_MAX_CLASSNAME 60 /* See IrLMP 1.1, 4.3.1 */
-#define IAS_MAX_ATTRIBNAME 60 /* See IrLMP 1.1, 4.3.3.1 */
-#define IAS_MAX_ATTRIBNUMBER 256 /* See IrLMP 1.1, 4.3.3.1 */
-/* For user space backward compatibility - may be fixed in kernel 2.5.X
- * Note : need 60+1 ('\0'), make it 64 for alignement - Jean II */
-#define IAS_EXPORT_CLASSNAME 64
-#define IAS_EXPORT_ATTRIBNAME 256
-
-/* Attribute type needed for struct irda_ias_set */
-#define IAS_MISSING 0
-#define IAS_INTEGER 1
-#define IAS_OCT_SEQ 2
-#define IAS_STRING 3
-
-#define LSAP_ANY 0xff
-
-struct sockaddr_irda {
- __kernel_sa_family_t sir_family; /* AF_IRDA */
- __u8 sir_lsap_sel; /* LSAP selector */
- __u32 sir_addr; /* Device address */
- char sir_name[25]; /* Usually <service>:IrDA:TinyTP */
-};
-
-struct irda_device_info {
- __u32 saddr; /* Address of local interface */
- __u32 daddr; /* Address of remote device */
- char info[22]; /* Description */
- __u8 charset; /* Charset used for description */
- __u8 hints[2]; /* Hint bits */
-};
-
-struct irda_device_list {
- __u32 len;
- struct irda_device_info dev[1];
-};
-
-struct irda_ias_set {
- char irda_class_name[IAS_EXPORT_CLASSNAME];
- char irda_attrib_name[IAS_EXPORT_ATTRIBNAME];
- unsigned int irda_attrib_type;
- union {
- unsigned int irda_attrib_int;
- struct {
- unsigned short len;
- __u8 octet_seq[IAS_MAX_OCTET_STRING];
- } irda_attrib_octet_seq;
- struct {
- __u8 len;
- __u8 charset;
- __u8 string[IAS_MAX_STRING];
- } irda_attrib_string;
- } attribute;
- __u32 daddr; /* Address of device (for some queries only) */
-};
-
-/* Some private IOCTL's (max 16) */
-#define SIOCSDONGLE (SIOCDEVPRIVATE + 0)
-#define SIOCGDONGLE (SIOCDEVPRIVATE + 1)
-#define SIOCSBANDWIDTH (SIOCDEVPRIVATE + 2)
-#define SIOCSMEDIABUSY (SIOCDEVPRIVATE + 3)
-#define SIOCGMEDIABUSY (SIOCDEVPRIVATE + 4)
-#define SIOCGRECEIVING (SIOCDEVPRIVATE + 5)
-#define SIOCSMODE (SIOCDEVPRIVATE + 6)
-#define SIOCGMODE (SIOCDEVPRIVATE + 7)
-#define SIOCSDTRRTS (SIOCDEVPRIVATE + 8)
-#define SIOCGQOS (SIOCDEVPRIVATE + 9)
-
-/* No reason to include <linux/if.h> just because of this one ;-) */
-#define IRNAMSIZ 16
-
-/* IrDA quality of service information (must not exceed 16 bytes) */
-struct if_irda_qos {
- unsigned long baudrate;
- unsigned short data_size;
- unsigned short window_size;
- unsigned short min_turn_time;
- unsigned short max_turn_time;
- unsigned char add_bofs;
- unsigned char link_disc;
-};
-
-/* For setting RTS and DTR lines of a dongle */
-struct if_irda_line {
- __u8 dtr;
- __u8 rts;
-};
-
-/* IrDA interface configuration (data part must not exceed 16 bytes) */
-struct if_irda_req {
- union {
- char ifrn_name[IRNAMSIZ]; /* if name, e.g. "irda0" */
- } ifr_ifrn;
-
- /* Data part */
- union {
- struct if_irda_line ifru_line;
- struct if_irda_qos ifru_qos;
- unsigned short ifru_flags;
- unsigned int ifru_receiving;
- unsigned int ifru_mode;
- unsigned int ifru_dongle;
- } ifr_ifru;
-};
-
-#define ifr_baudrate ifr_ifru.ifru_qos.baudrate
-#define ifr_receiving ifr_ifru.ifru_receiving
-#define ifr_dongle ifr_ifru.ifru_dongle
-#define ifr_mode ifr_ifru.ifru_mode
-#define ifr_dtr ifr_ifru.ifru_line.dtr
-#define ifr_rts ifr_ifru.ifru_line.rts
-
-
-/* IrDA netlink definitions */
-#define IRDA_NL_NAME "irda"
-#define IRDA_NL_VERSION 1
-
-enum irda_nl_commands {
- IRDA_NL_CMD_UNSPEC,
- IRDA_NL_CMD_SET_MODE,
- IRDA_NL_CMD_GET_MODE,
-
- __IRDA_NL_CMD_AFTER_LAST
-};
-#define IRDA_NL_CMD_MAX (__IRDA_NL_CMD_AFTER_LAST - 1)
-
-enum nl80211_attrs {
- IRDA_NL_ATTR_UNSPEC,
- IRDA_NL_ATTR_IFNAME,
- IRDA_NL_ATTR_MODE,
-
- __IRDA_NL_ATTR_AFTER_LAST
-};
-#define IRDA_NL_ATTR_MAX (__IRDA_NL_ATTR_AFTER_LAST - 1)
-
-/* IrDA modes */
-#define IRDA_MODE_PRIMARY 0x1
-#define IRDA_MODE_SECONDARY 0x2
-#define IRDA_MODE_MONITOR 0x4
-
-#endif /* KERNEL_IRDA_H */
-
-
-
-
diff --git a/ANDROID_3.4.5/include/linux/irq.h b/ANDROID_3.4.5/include/linux/irq.h
deleted file mode 100644
index b27cfcfd..00000000
--- a/ANDROID_3.4.5/include/linux/irq.h
+++ /dev/null
@@ -1,752 +0,0 @@
-#ifndef _LINUX_IRQ_H
-#define _LINUX_IRQ_H
-
-/*
- * Please do not include this file in generic code. There is currently
- * no requirement for any architecture to implement anything held
- * within this file.
- *
- * Thanks. --rmk
- */
-
-#include <linux/smp.h>
-
-#ifndef CONFIG_S390
-
-#include <linux/linkage.h>
-#include <linux/cache.h>
-#include <linux/spinlock.h>
-#include <linux/cpumask.h>
-#include <linux/gfp.h>
-#include <linux/irqreturn.h>
-#include <linux/irqnr.h>
-#include <linux/errno.h>
-#include <linux/topology.h>
-#include <linux/wait.h>
-
-#include <asm/irq.h>
-#include <asm/ptrace.h>
-#include <asm/irq_regs.h>
-
-struct seq_file;
-struct module;
-struct irq_desc;
-struct irq_data;
-typedef void (*irq_flow_handler_t)(unsigned int irq,
- struct irq_desc *desc);
-typedef void (*irq_preflow_handler_t)(struct irq_data *data);
-
-/*
- * IRQ line status.
- *
- * Bits 0-7 are the same as the IRQF_* bits in linux/interrupt.h
- *
- * IRQ_TYPE_NONE - default, unspecified type
- * IRQ_TYPE_EDGE_RISING - rising edge triggered
- * IRQ_TYPE_EDGE_FALLING - falling edge triggered
- * IRQ_TYPE_EDGE_BOTH - rising and falling edge triggered
- * IRQ_TYPE_LEVEL_HIGH - high level triggered
- * IRQ_TYPE_LEVEL_LOW - low level triggered
- * IRQ_TYPE_LEVEL_MASK - Mask to filter out the level bits
- * IRQ_TYPE_SENSE_MASK - Mask for all the above bits
- * IRQ_TYPE_DEFAULT - For use by some PICs to ask irq_set_type
- * to setup the HW to a sane default (used
- * by irqdomain map() callbacks to synchronize
- * the HW state and SW flags for a newly
- * allocated descriptor).
- *
- * IRQ_TYPE_PROBE - Special flag for probing in progress
- *
- * Bits which can be modified via irq_set/clear/modify_status_flags()
- * IRQ_LEVEL - Interrupt is level type. Will be also
- * updated in the code when the above trigger
- * bits are modified via irq_set_irq_type()
- * IRQ_PER_CPU - Mark an interrupt PER_CPU. Will protect
- * it from affinity setting
- * IRQ_NOPROBE - Interrupt cannot be probed by autoprobing
- * IRQ_NOREQUEST - Interrupt cannot be requested via
- * request_irq()
- * IRQ_NOTHREAD - Interrupt cannot be threaded
- * IRQ_NOAUTOEN - Interrupt is not automatically enabled in
- * request/setup_irq()
- * IRQ_NO_BALANCING - Interrupt cannot be balanced (affinity set)
- * IRQ_MOVE_PCNTXT - Interrupt can be migrated from process context
- * IRQ_NESTED_TRHEAD - Interrupt nests into another thread
- * IRQ_PER_CPU_DEVID - Dev_id is a per-cpu variable
- */
-enum {
- IRQ_TYPE_NONE = 0x00000000,
- IRQ_TYPE_EDGE_RISING = 0x00000001,
- IRQ_TYPE_EDGE_FALLING = 0x00000002,
- IRQ_TYPE_EDGE_BOTH = (IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING),
- IRQ_TYPE_LEVEL_HIGH = 0x00000004,
- IRQ_TYPE_LEVEL_LOW = 0x00000008,
- IRQ_TYPE_LEVEL_MASK = (IRQ_TYPE_LEVEL_LOW | IRQ_TYPE_LEVEL_HIGH),
- IRQ_TYPE_SENSE_MASK = 0x0000000f,
- IRQ_TYPE_DEFAULT = IRQ_TYPE_SENSE_MASK,
-
- IRQ_TYPE_PROBE = 0x00000010,
-
- IRQ_LEVEL = (1 << 8),
- IRQ_PER_CPU = (1 << 9),
- IRQ_NOPROBE = (1 << 10),
- IRQ_NOREQUEST = (1 << 11),
- IRQ_NOAUTOEN = (1 << 12),
- IRQ_NO_BALANCING = (1 << 13),
- IRQ_MOVE_PCNTXT = (1 << 14),
- IRQ_NESTED_THREAD = (1 << 15),
- IRQ_NOTHREAD = (1 << 16),
- IRQ_PER_CPU_DEVID = (1 << 17),
-};
-
-#define IRQF_MODIFY_MASK \
- (IRQ_TYPE_SENSE_MASK | IRQ_NOPROBE | IRQ_NOREQUEST | \
- IRQ_NOAUTOEN | IRQ_MOVE_PCNTXT | IRQ_LEVEL | IRQ_NO_BALANCING | \
- IRQ_PER_CPU | IRQ_NESTED_THREAD | IRQ_NOTHREAD | IRQ_PER_CPU_DEVID)
-
-#define IRQ_NO_BALANCING_MASK (IRQ_PER_CPU | IRQ_NO_BALANCING)
-
-/*
- * Return value for chip->irq_set_affinity()
- *
- * IRQ_SET_MASK_OK - OK, core updates irq_data.affinity
- * IRQ_SET_MASK_NOCPY - OK, chip did update irq_data.affinity
- */
-enum {
- IRQ_SET_MASK_OK = 0,
- IRQ_SET_MASK_OK_NOCOPY,
-};
-
-struct msi_desc;
-struct irq_domain;
-
-/**
- * struct irq_data - per irq and irq chip data passed down to chip functions
- * @irq: interrupt number
- * @hwirq: hardware interrupt number, local to the interrupt domain
- * @node: node index useful for balancing
- * @state_use_accessors: status information for irq chip functions.
- * Use accessor functions to deal with it
- * @chip: low level interrupt hardware access
- * @domain: Interrupt translation domain; responsible for mapping
- * between hwirq number and linux irq number.
- * @handler_data: per-IRQ data for the irq_chip methods
- * @chip_data: platform-specific per-chip private data for the chip
- * methods, to allow shared chip implementations
- * @msi_desc: MSI descriptor
- * @affinity: IRQ affinity on SMP
- *
- * The fields here need to overlay the ones in irq_desc until we
- * cleaned up the direct references and switched everything over to
- * irq_data.
- */
-struct irq_data {
- unsigned int irq;
- unsigned long hwirq;
- unsigned int node;
- unsigned int state_use_accessors;
- struct irq_chip *chip;
- struct irq_domain *domain;
- void *handler_data;
- void *chip_data;
- struct msi_desc *msi_desc;
-#ifdef CONFIG_SMP
- cpumask_var_t affinity;
-#endif
-};
-
-/*
- * Bit masks for irq_data.state
- *
- * IRQD_TRIGGER_MASK - Mask for the trigger type bits
- * IRQD_SETAFFINITY_PENDING - Affinity setting is pending
- * IRQD_NO_BALANCING - Balancing disabled for this IRQ
- * IRQD_PER_CPU - Interrupt is per cpu
- * IRQD_AFFINITY_SET - Interrupt affinity was set
- * IRQD_LEVEL - Interrupt is level triggered
- * IRQD_WAKEUP_STATE - Interrupt is configured for wakeup
- * from suspend
- * IRDQ_MOVE_PCNTXT - Interrupt can be moved in process
- * context
- * IRQD_IRQ_DISABLED - Disabled state of the interrupt
- * IRQD_IRQ_MASKED - Masked state of the interrupt
- * IRQD_IRQ_INPROGRESS - In progress state of the interrupt
- */
-enum {
- IRQD_TRIGGER_MASK = 0xf,
- IRQD_SETAFFINITY_PENDING = (1 << 8),
- IRQD_NO_BALANCING = (1 << 10),
- IRQD_PER_CPU = (1 << 11),
- IRQD_AFFINITY_SET = (1 << 12),
- IRQD_LEVEL = (1 << 13),
- IRQD_WAKEUP_STATE = (1 << 14),
- IRQD_MOVE_PCNTXT = (1 << 15),
- IRQD_IRQ_DISABLED = (1 << 16),
- IRQD_IRQ_MASKED = (1 << 17),
- IRQD_IRQ_INPROGRESS = (1 << 18),
-};
-
-static inline bool irqd_is_setaffinity_pending(struct irq_data *d)
-{
- return d->state_use_accessors & IRQD_SETAFFINITY_PENDING;
-}
-
-static inline bool irqd_is_per_cpu(struct irq_data *d)
-{
- return d->state_use_accessors & IRQD_PER_CPU;
-}
-
-static inline bool irqd_can_balance(struct irq_data *d)
-{
- return !(d->state_use_accessors & (IRQD_PER_CPU | IRQD_NO_BALANCING));
-}
-
-static inline bool irqd_affinity_was_set(struct irq_data *d)
-{
- return d->state_use_accessors & IRQD_AFFINITY_SET;
-}
-
-static inline void irqd_mark_affinity_was_set(struct irq_data *d)
-{
- d->state_use_accessors |= IRQD_AFFINITY_SET;
-}
-
-static inline u32 irqd_get_trigger_type(struct irq_data *d)
-{
- return d->state_use_accessors & IRQD_TRIGGER_MASK;
-}
-
-/*
- * Must only be called inside irq_chip.irq_set_type() functions.
- */
-static inline void irqd_set_trigger_type(struct irq_data *d, u32 type)
-{
- d->state_use_accessors &= ~IRQD_TRIGGER_MASK;
- d->state_use_accessors |= type & IRQD_TRIGGER_MASK;
-}
-
-static inline bool irqd_is_level_type(struct irq_data *d)
-{
- return d->state_use_accessors & IRQD_LEVEL;
-}
-
-static inline bool irqd_is_wakeup_set(struct irq_data *d)
-{
- return d->state_use_accessors & IRQD_WAKEUP_STATE;
-}
-
-static inline bool irqd_can_move_in_process_context(struct irq_data *d)
-{
- return d->state_use_accessors & IRQD_MOVE_PCNTXT;
-}
-
-static inline bool irqd_irq_disabled(struct irq_data *d)
-{
- return d->state_use_accessors & IRQD_IRQ_DISABLED;
-}
-
-static inline bool irqd_irq_masked(struct irq_data *d)
-{
- return d->state_use_accessors & IRQD_IRQ_MASKED;
-}
-
-static inline bool irqd_irq_inprogress(struct irq_data *d)
-{
- return d->state_use_accessors & IRQD_IRQ_INPROGRESS;
-}
-
-/*
- * Functions for chained handlers which can be enabled/disabled by the
- * standard disable_irq/enable_irq calls. Must be called with
- * irq_desc->lock held.
- */
-static inline void irqd_set_chained_irq_inprogress(struct irq_data *d)
-{
- d->state_use_accessors |= IRQD_IRQ_INPROGRESS;
-}
-
-static inline void irqd_clr_chained_irq_inprogress(struct irq_data *d)
-{
- d->state_use_accessors &= ~IRQD_IRQ_INPROGRESS;
-}
-
-static inline irq_hw_number_t irqd_to_hwirq(struct irq_data *d)
-{
- return d->hwirq;
-}
-
-/**
- * struct irq_chip - hardware interrupt chip descriptor
- *
- * @name: name for /proc/interrupts
- * @irq_startup: start up the interrupt (defaults to ->enable if NULL)
- * @irq_shutdown: shut down the interrupt (defaults to ->disable if NULL)
- * @irq_enable: enable the interrupt (defaults to chip->unmask if NULL)
- * @irq_disable: disable the interrupt
- * @irq_ack: start of a new interrupt
- * @irq_mask: mask an interrupt source
- * @irq_mask_ack: ack and mask an interrupt source
- * @irq_unmask: unmask an interrupt source
- * @irq_eoi: end of interrupt
- * @irq_set_affinity: set the CPU affinity on SMP machines
- * @irq_retrigger: resend an IRQ to the CPU
- * @irq_set_type: set the flow type (IRQ_TYPE_LEVEL/etc.) of an IRQ
- * @irq_set_wake: enable/disable power-management wake-on of an IRQ
- * @irq_bus_lock: function to lock access to slow bus (i2c) chips
- * @irq_bus_sync_unlock:function to sync and unlock slow bus (i2c) chips
- * @irq_cpu_online: configure an interrupt source for a secondary CPU
- * @irq_cpu_offline: un-configure an interrupt source for a secondary CPU
- * @irq_suspend: function called from core code on suspend once per chip
- * @irq_resume: function called from core code on resume once per chip
- * @irq_pm_shutdown: function called from core code on shutdown once per chip
- * @irq_print_chip: optional to print special chip info in show_interrupts
- * @flags: chip specific flags
- *
- * @release: release function solely used by UML
- */
-struct irq_chip {
- const char *name;
- unsigned int (*irq_startup)(struct irq_data *data);
- void (*irq_shutdown)(struct irq_data *data);
- void (*irq_enable)(struct irq_data *data);
- void (*irq_disable)(struct irq_data *data);
-
- void (*irq_ack)(struct irq_data *data);
- void (*irq_mask)(struct irq_data *data);
- void (*irq_mask_ack)(struct irq_data *data);
- void (*irq_unmask)(struct irq_data *data);
- void (*irq_eoi)(struct irq_data *data);
-
- int (*irq_set_affinity)(struct irq_data *data, const struct cpumask *dest, bool force);
- int (*irq_retrigger)(struct irq_data *data);
- int (*irq_set_type)(struct irq_data *data, unsigned int flow_type);
- int (*irq_set_wake)(struct irq_data *data, unsigned int on);
-
- void (*irq_bus_lock)(struct irq_data *data);
- void (*irq_bus_sync_unlock)(struct irq_data *data);
-
- void (*irq_cpu_online)(struct irq_data *data);
- void (*irq_cpu_offline)(struct irq_data *data);
-
- void (*irq_suspend)(struct irq_data *data);
- void (*irq_resume)(struct irq_data *data);
- void (*irq_pm_shutdown)(struct irq_data *data);
-
- void (*irq_print_chip)(struct irq_data *data, struct seq_file *p);
-
- unsigned long flags;
-
- /* Currently used only by UML, might disappear one day.*/
-#ifdef CONFIG_IRQ_RELEASE_METHOD
- void (*release)(unsigned int irq, void *dev_id);
-#endif
-};
-
-/*
- * irq_chip specific flags
- *
- * IRQCHIP_SET_TYPE_MASKED: Mask before calling chip.irq_set_type()
- * IRQCHIP_EOI_IF_HANDLED: Only issue irq_eoi() when irq was handled
- * IRQCHIP_MASK_ON_SUSPEND: Mask non wake irqs in the suspend path
- * IRQCHIP_ONOFFLINE_ENABLED: Only call irq_on/off_line callbacks
- * when irq enabled
- * IRQCHIP_SKIP_SET_WAKE: Skip chip.irq_set_wake(), for this irq chip
- */
-enum {
- IRQCHIP_SET_TYPE_MASKED = (1 << 0),
- IRQCHIP_EOI_IF_HANDLED = (1 << 1),
- IRQCHIP_MASK_ON_SUSPEND = (1 << 2),
- IRQCHIP_ONOFFLINE_ENABLED = (1 << 3),
- IRQCHIP_SKIP_SET_WAKE = (1 << 4),
-};
-
-/* This include will go away once we isolated irq_desc usage to core code */
-#include <linux/irqdesc.h>
-
-/*
- * Pick up the arch-dependent methods:
- */
-#include <asm/hw_irq.h>
-
-#ifndef NR_IRQS_LEGACY
-# define NR_IRQS_LEGACY 0
-#endif
-
-#ifndef ARCH_IRQ_INIT_FLAGS
-# define ARCH_IRQ_INIT_FLAGS 0
-#endif
-
-#define IRQ_DEFAULT_INIT_FLAGS ARCH_IRQ_INIT_FLAGS
-
-struct irqaction;
-extern int setup_irq(unsigned int irq, struct irqaction *new);
-extern void remove_irq(unsigned int irq, struct irqaction *act);
-extern int setup_percpu_irq(unsigned int irq, struct irqaction *new);
-extern void remove_percpu_irq(unsigned int irq, struct irqaction *act);
-
-extern void irq_cpu_online(void);
-extern void irq_cpu_offline(void);
-extern int __irq_set_affinity_locked(struct irq_data *data, const struct cpumask *cpumask);
-
-#ifdef CONFIG_GENERIC_HARDIRQS
-
-#if defined(CONFIG_SMP) && defined(CONFIG_GENERIC_PENDING_IRQ)
-void irq_move_irq(struct irq_data *data);
-void irq_move_masked_irq(struct irq_data *data);
-#else
-static inline void irq_move_irq(struct irq_data *data) { }
-static inline void irq_move_masked_irq(struct irq_data *data) { }
-#endif
-
-extern int no_irq_affinity;
-
-/*
- * Built-in IRQ handlers for various IRQ types,
- * callable via desc->handle_irq()
- */
-extern void handle_level_irq(unsigned int irq, struct irq_desc *desc);
-extern void handle_fasteoi_irq(unsigned int irq, struct irq_desc *desc);
-extern void handle_edge_irq(unsigned int irq, struct irq_desc *desc);
-extern void handle_edge_eoi_irq(unsigned int irq, struct irq_desc *desc);
-extern void handle_simple_irq(unsigned int irq, struct irq_desc *desc);
-extern void handle_percpu_irq(unsigned int irq, struct irq_desc *desc);
-extern void handle_percpu_devid_irq(unsigned int irq, struct irq_desc *desc);
-extern void handle_bad_irq(unsigned int irq, struct irq_desc *desc);
-extern void handle_nested_irq(unsigned int irq);
-
-/* Handling of unhandled and spurious interrupts: */
-extern void note_interrupt(unsigned int irq, struct irq_desc *desc,
- irqreturn_t action_ret);
-
-
-/* Enable/disable irq debugging output: */
-extern int noirqdebug_setup(char *str);
-
-/* Checks whether the interrupt can be requested by request_irq(): */
-extern int can_request_irq(unsigned int irq, unsigned long irqflags);
-
-/* Dummy irq-chip implementations: */
-extern struct irq_chip no_irq_chip;
-extern struct irq_chip dummy_irq_chip;
-
-extern void
-irq_set_chip_and_handler_name(unsigned int irq, struct irq_chip *chip,
- irq_flow_handler_t handle, const char *name);
-
-static inline void irq_set_chip_and_handler(unsigned int irq, struct irq_chip *chip,
- irq_flow_handler_t handle)
-{
- irq_set_chip_and_handler_name(irq, chip, handle, NULL);
-}
-
-extern int irq_set_percpu_devid(unsigned int irq);
-
-extern void
-__irq_set_handler(unsigned int irq, irq_flow_handler_t handle, int is_chained,
- const char *name);
-
-static inline void
-irq_set_handler(unsigned int irq, irq_flow_handler_t handle)
-{
- __irq_set_handler(irq, handle, 0, NULL);
-}
-
-/*
- * Set a highlevel chained flow handler for a given IRQ.
- * (a chained handler is automatically enabled and set to
- * IRQ_NOREQUEST, IRQ_NOPROBE, and IRQ_NOTHREAD)
- */
-static inline void
-irq_set_chained_handler(unsigned int irq, irq_flow_handler_t handle)
-{
- __irq_set_handler(irq, handle, 1, NULL);
-}
-
-void irq_modify_status(unsigned int irq, unsigned long clr, unsigned long set);
-
-static inline void irq_set_status_flags(unsigned int irq, unsigned long set)
-{
- irq_modify_status(irq, 0, set);
-}
-
-static inline void irq_clear_status_flags(unsigned int irq, unsigned long clr)
-{
- irq_modify_status(irq, clr, 0);
-}
-
-static inline void irq_set_noprobe(unsigned int irq)
-{
- irq_modify_status(irq, 0, IRQ_NOPROBE);
-}
-
-static inline void irq_set_probe(unsigned int irq)
-{
- irq_modify_status(irq, IRQ_NOPROBE, 0);
-}
-
-static inline void irq_set_nothread(unsigned int irq)
-{
- irq_modify_status(irq, 0, IRQ_NOTHREAD);
-}
-
-static inline void irq_set_thread(unsigned int irq)
-{
- irq_modify_status(irq, IRQ_NOTHREAD, 0);
-}
-
-static inline void irq_set_nested_thread(unsigned int irq, bool nest)
-{
- if (nest)
- irq_set_status_flags(irq, IRQ_NESTED_THREAD);
- else
- irq_clear_status_flags(irq, IRQ_NESTED_THREAD);
-}
-
-static inline void irq_set_percpu_devid_flags(unsigned int irq)
-{
- irq_set_status_flags(irq,
- IRQ_NOAUTOEN | IRQ_PER_CPU | IRQ_NOTHREAD |
- IRQ_NOPROBE | IRQ_PER_CPU_DEVID);
-}
-
-/* Handle dynamic irq creation and destruction */
-extern unsigned int create_irq_nr(unsigned int irq_want, int node);
-extern int create_irq(void);
-extern void destroy_irq(unsigned int irq);
-
-/*
- * Dynamic irq helper functions. Obsolete. Use irq_alloc_desc* and
- * irq_free_desc instead.
- */
-extern void dynamic_irq_cleanup(unsigned int irq);
-static inline void dynamic_irq_init(unsigned int irq)
-{
- dynamic_irq_cleanup(irq);
-}
-
-/* Set/get chip/data for an IRQ: */
-extern int irq_set_chip(unsigned int irq, struct irq_chip *chip);
-extern int irq_set_handler_data(unsigned int irq, void *data);
-extern int irq_set_chip_data(unsigned int irq, void *data);
-extern int irq_set_irq_type(unsigned int irq, unsigned int type);
-extern int irq_set_msi_desc(unsigned int irq, struct msi_desc *entry);
-extern struct irq_data *irq_get_irq_data(unsigned int irq);
-
-static inline struct irq_chip *irq_get_chip(unsigned int irq)
-{
- struct irq_data *d = irq_get_irq_data(irq);
- return d ? d->chip : NULL;
-}
-
-static inline struct irq_chip *irq_data_get_irq_chip(struct irq_data *d)
-{
- return d->chip;
-}
-
-static inline void *irq_get_chip_data(unsigned int irq)
-{
- struct irq_data *d = irq_get_irq_data(irq);
- return d ? d->chip_data : NULL;
-}
-
-static inline void *irq_data_get_irq_chip_data(struct irq_data *d)
-{
- return d->chip_data;
-}
-
-static inline void *irq_get_handler_data(unsigned int irq)
-{
- struct irq_data *d = irq_get_irq_data(irq);
- return d ? d->handler_data : NULL;
-}
-
-static inline void *irq_data_get_irq_handler_data(struct irq_data *d)
-{
- return d->handler_data;
-}
-
-static inline struct msi_desc *irq_get_msi_desc(unsigned int irq)
-{
- struct irq_data *d = irq_get_irq_data(irq);
- return d ? d->msi_desc : NULL;
-}
-
-static inline struct msi_desc *irq_data_get_msi(struct irq_data *d)
-{
- return d->msi_desc;
-}
-
-int __irq_alloc_descs(int irq, unsigned int from, unsigned int cnt, int node,
- struct module *owner);
-
-/* use macros to avoid needing export.h for THIS_MODULE */
-#define irq_alloc_descs(irq, from, cnt, node) \
- __irq_alloc_descs(irq, from, cnt, node, THIS_MODULE)
-
-#define irq_alloc_desc(node) \
- irq_alloc_descs(-1, 0, 1, node)
-
-#define irq_alloc_desc_at(at, node) \
- irq_alloc_descs(at, at, 1, node)
-
-#define irq_alloc_desc_from(from, node) \
- irq_alloc_descs(-1, from, 1, node)
-
-void irq_free_descs(unsigned int irq, unsigned int cnt);
-int irq_reserve_irqs(unsigned int from, unsigned int cnt);
-
-static inline void irq_free_desc(unsigned int irq)
-{
- irq_free_descs(irq, 1);
-}
-
-static inline int irq_reserve_irq(unsigned int irq)
-{
- return irq_reserve_irqs(irq, 1);
-}
-
-#ifndef irq_reg_writel
-# define irq_reg_writel(val, addr) writel(val, addr)
-#endif
-#ifndef irq_reg_readl
-# define irq_reg_readl(addr) readl(addr)
-#endif
-
-/**
- * struct irq_chip_regs - register offsets for struct irq_gci
- * @enable: Enable register offset to reg_base
- * @disable: Disable register offset to reg_base
- * @mask: Mask register offset to reg_base
- * @ack: Ack register offset to reg_base
- * @eoi: Eoi register offset to reg_base
- * @type: Type configuration register offset to reg_base
- * @polarity: Polarity configuration register offset to reg_base
- */
-struct irq_chip_regs {
- unsigned long enable;
- unsigned long disable;
- unsigned long mask;
- unsigned long ack;
- unsigned long eoi;
- unsigned long type;
- unsigned long polarity;
-};
-
-/**
- * struct irq_chip_type - Generic interrupt chip instance for a flow type
- * @chip: The real interrupt chip which provides the callbacks
- * @regs: Register offsets for this chip
- * @handler: Flow handler associated with this chip
- * @type: Chip can handle these flow types
- *
- * A irq_generic_chip can have several instances of irq_chip_type when
- * it requires different functions and register offsets for different
- * flow types.
- */
-struct irq_chip_type {
- struct irq_chip chip;
- struct irq_chip_regs regs;
- irq_flow_handler_t handler;
- u32 type;
-};
-
-/**
- * struct irq_chip_generic - Generic irq chip data structure
- * @lock: Lock to protect register and cache data access
- * @reg_base: Register base address (virtual)
- * @irq_base: Interrupt base nr for this chip
- * @irq_cnt: Number of interrupts handled by this chip
- * @mask_cache: Cached mask register
- * @type_cache: Cached type register
- * @polarity_cache: Cached polarity register
- * @wake_enabled: Interrupt can wakeup from suspend
- * @wake_active: Interrupt is marked as an wakeup from suspend source
- * @num_ct: Number of available irq_chip_type instances (usually 1)
- * @private: Private data for non generic chip callbacks
- * @list: List head for keeping track of instances
- * @chip_types: Array of interrupt irq_chip_types
- *
- * Note, that irq_chip_generic can have multiple irq_chip_type
- * implementations which can be associated to a particular irq line of
- * an irq_chip_generic instance. That allows to share and protect
- * state in an irq_chip_generic instance when we need to implement
- * different flow mechanisms (level/edge) for it.
- */
-struct irq_chip_generic {
- raw_spinlock_t lock;
- void __iomem *reg_base;
- unsigned int irq_base;
- unsigned int irq_cnt;
- u32 mask_cache;
- u32 type_cache;
- u32 polarity_cache;
- u32 wake_enabled;
- u32 wake_active;
- unsigned int num_ct;
- void *private;
- struct list_head list;
- struct irq_chip_type chip_types[0];
-};
-
-/**
- * enum irq_gc_flags - Initialization flags for generic irq chips
- * @IRQ_GC_INIT_MASK_CACHE: Initialize the mask_cache by reading mask reg
- * @IRQ_GC_INIT_NESTED_LOCK: Set the lock class of the irqs to nested for
- * irq chips which need to call irq_set_wake() on
- * the parent irq. Usually GPIO implementations
- */
-enum irq_gc_flags {
- IRQ_GC_INIT_MASK_CACHE = 1 << 0,
- IRQ_GC_INIT_NESTED_LOCK = 1 << 1,
-};
-
-/* Generic chip callback functions */
-void irq_gc_noop(struct irq_data *d);
-void irq_gc_mask_disable_reg(struct irq_data *d);
-void irq_gc_mask_set_bit(struct irq_data *d);
-void irq_gc_mask_clr_bit(struct irq_data *d);
-void irq_gc_unmask_enable_reg(struct irq_data *d);
-void irq_gc_ack_set_bit(struct irq_data *d);
-void irq_gc_ack_clr_bit(struct irq_data *d);
-void irq_gc_mask_disable_reg_and_ack(struct irq_data *d);
-void irq_gc_eoi(struct irq_data *d);
-int irq_gc_set_wake(struct irq_data *d, unsigned int on);
-
-/* Setup functions for irq_chip_generic */
-struct irq_chip_generic *
-irq_alloc_generic_chip(const char *name, int nr_ct, unsigned int irq_base,
- void __iomem *reg_base, irq_flow_handler_t handler);
-void irq_setup_generic_chip(struct irq_chip_generic *gc, u32 msk,
- enum irq_gc_flags flags, unsigned int clr,
- unsigned int set);
-int irq_setup_alt_chip(struct irq_data *d, unsigned int type);
-void irq_remove_generic_chip(struct irq_chip_generic *gc, u32 msk,
- unsigned int clr, unsigned int set);
-
-static inline struct irq_chip_type *irq_data_get_chip_type(struct irq_data *d)
-{
- return container_of(d->chip, struct irq_chip_type, chip);
-}
-
-#define IRQ_MSK(n) (u32)((n) < 32 ? ((1 << (n)) - 1) : UINT_MAX)
-
-#ifdef CONFIG_SMP
-static inline void irq_gc_lock(struct irq_chip_generic *gc)
-{
- raw_spin_lock(&gc->lock);
-}
-
-static inline void irq_gc_unlock(struct irq_chip_generic *gc)
-{
- raw_spin_unlock(&gc->lock);
-}
-#else
-static inline void irq_gc_lock(struct irq_chip_generic *gc) { }
-static inline void irq_gc_unlock(struct irq_chip_generic *gc) { }
-#endif
-
-#endif /* CONFIG_GENERIC_HARDIRQS */
-
-#endif /* !CONFIG_S390 */
-
-#endif /* _LINUX_IRQ_H */
diff --git a/ANDROID_3.4.5/include/linux/irq_cpustat.h b/ANDROID_3.4.5/include/linux/irq_cpustat.h
deleted file mode 100644
index 77e4bac2..00000000
--- a/ANDROID_3.4.5/include/linux/irq_cpustat.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef __irq_cpustat_h
-#define __irq_cpustat_h
-
-/*
- * Contains default mappings for irq_cpustat_t, used by almost every
- * architecture. Some arch (like s390) have per cpu hardware pages and
- * they define their own mappings for irq_stat.
- *
- * Keith Owens <kaos@ocs.com.au> July 2000.
- */
-
-
-/*
- * Simple wrappers reducing source bloat. Define all irq_stat fields
- * here, even ones that are arch dependent. That way we get common
- * definitions instead of differing sets for each arch.
- */
-
-#ifndef __ARCH_IRQ_STAT
-extern irq_cpustat_t irq_stat[]; /* defined in asm/hardirq.h */
-#define __IRQ_STAT(cpu, member) (irq_stat[cpu].member)
-#endif
-
- /* arch independent irq_stat fields */
-#define local_softirq_pending() \
- __IRQ_STAT(smp_processor_id(), __softirq_pending)
-
- /* arch dependent irq_stat fields */
-#define nmi_count(cpu) __IRQ_STAT((cpu), __nmi_count) /* i386 */
-
-#endif /* __irq_cpustat_h */
diff --git a/ANDROID_3.4.5/include/linux/irq_work.h b/ANDROID_3.4.5/include/linux/irq_work.h
deleted file mode 100644
index 6a9e8f53..00000000
--- a/ANDROID_3.4.5/include/linux/irq_work.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef _LINUX_IRQ_WORK_H
-#define _LINUX_IRQ_WORK_H
-
-#include <linux/llist.h>
-
-struct irq_work {
- unsigned long flags;
- struct llist_node llnode;
- void (*func)(struct irq_work *);
-};
-
-static inline
-void init_irq_work(struct irq_work *work, void (*func)(struct irq_work *))
-{
- work->flags = 0;
- work->func = func;
-}
-
-bool irq_work_queue(struct irq_work *work);
-void irq_work_run(void);
-void irq_work_sync(struct irq_work *work);
-
-#endif /* _LINUX_IRQ_WORK_H */
diff --git a/ANDROID_3.4.5/include/linux/irqdesc.h b/ANDROID_3.4.5/include/linux/irqdesc.h
deleted file mode 100644
index f1e25270..00000000
--- a/ANDROID_3.4.5/include/linux/irqdesc.h
+++ /dev/null
@@ -1,178 +0,0 @@
-#ifndef _LINUX_IRQDESC_H
-#define _LINUX_IRQDESC_H
-
-/*
- * Core internal functions to deal with irq descriptors
- *
- * This include will move to kernel/irq once we cleaned up the tree.
- * For now it's included from <linux/irq.h>
- */
-
-struct irq_affinity_notify;
-struct proc_dir_entry;
-struct timer_rand_state;
-struct module;
-/**
- * struct irq_desc - interrupt descriptor
- * @irq_data: per irq and chip data passed down to chip functions
- * @timer_rand_state: pointer to timer rand state struct
- * @kstat_irqs: irq stats per cpu
- * @handle_irq: highlevel irq-events handler
- * @preflow_handler: handler called before the flow handler (currently used by sparc)
- * @action: the irq action chain
- * @status: status information
- * @core_internal_state__do_not_mess_with_it: core internal status information
- * @depth: disable-depth, for nested irq_disable() calls
- * @wake_depth: enable depth, for multiple irq_set_irq_wake() callers
- * @irq_count: stats field to detect stalled irqs
- * @last_unhandled: aging timer for unhandled count
- * @irqs_unhandled: stats field for spurious unhandled interrupts
- * @lock: locking for SMP
- * @affinity_hint: hint to user space for preferred irq affinity
- * @affinity_notify: context for notification of affinity changes
- * @pending_mask: pending rebalanced interrupts
- * @threads_oneshot: bitfield to handle shared oneshot threads
- * @threads_active: number of irqaction threads currently running
- * @wait_for_threads: wait queue for sync_irq to wait for threaded handlers
- * @dir: /proc/irq/ procfs entry
- * @name: flow handler name for /proc/interrupts output
- */
-struct irq_desc {
- struct irq_data irq_data;
- struct timer_rand_state *timer_rand_state;
- unsigned int __percpu *kstat_irqs;
- irq_flow_handler_t handle_irq;
-#ifdef CONFIG_IRQ_PREFLOW_FASTEOI
- irq_preflow_handler_t preflow_handler;
-#endif
- struct irqaction *action; /* IRQ action list */
- unsigned int status_use_accessors;
- unsigned int core_internal_state__do_not_mess_with_it;
- unsigned int depth; /* nested irq disables */
- unsigned int wake_depth; /* nested wake enables */
- unsigned int irq_count; /* For detecting broken IRQs */
- unsigned long last_unhandled; /* Aging timer for unhandled count */
- unsigned int irqs_unhandled;
- raw_spinlock_t lock;
- struct cpumask *percpu_enabled;
-#ifdef CONFIG_SMP
- const struct cpumask *affinity_hint;
- struct irq_affinity_notify *affinity_notify;
-#ifdef CONFIG_GENERIC_PENDING_IRQ
- cpumask_var_t pending_mask;
-#endif
-#endif
- unsigned long threads_oneshot;
- atomic_t threads_active;
- wait_queue_head_t wait_for_threads;
-#ifdef CONFIG_PROC_FS
- struct proc_dir_entry *dir;
-#endif
- struct module *owner;
- const char *name;
-} ____cacheline_internodealigned_in_smp;
-
-#ifndef CONFIG_SPARSE_IRQ
-extern struct irq_desc irq_desc[NR_IRQS];
-#endif
-
-#ifdef CONFIG_GENERIC_HARDIRQS
-
-static inline struct irq_data *irq_desc_get_irq_data(struct irq_desc *desc)
-{
- return &desc->irq_data;
-}
-
-static inline struct irq_chip *irq_desc_get_chip(struct irq_desc *desc)
-{
- return desc->irq_data.chip;
-}
-
-static inline void *irq_desc_get_chip_data(struct irq_desc *desc)
-{
- return desc->irq_data.chip_data;
-}
-
-static inline void *irq_desc_get_handler_data(struct irq_desc *desc)
-{
- return desc->irq_data.handler_data;
-}
-
-static inline struct msi_desc *irq_desc_get_msi_desc(struct irq_desc *desc)
-{
- return desc->irq_data.msi_desc;
-}
-
-/*
- * Architectures call this to let the generic IRQ layer
- * handle an interrupt. If the descriptor is attached to an
- * irqchip-style controller then we call the ->handle_irq() handler,
- * and it calls __do_IRQ() if it's attached to an irqtype-style controller.
- */
-static inline void generic_handle_irq_desc(unsigned int irq, struct irq_desc *desc)
-{
- desc->handle_irq(irq, desc);
-}
-
-int generic_handle_irq(unsigned int irq);
-
-/* Test to see if a driver has successfully requested an irq */
-static inline int irq_has_action(unsigned int irq)
-{
- struct irq_desc *desc = irq_to_desc(irq);
- return desc->action != NULL;
-}
-
-/* caller has locked the irq_desc and both params are valid */
-static inline void __irq_set_handler_locked(unsigned int irq,
- irq_flow_handler_t handler)
-{
- struct irq_desc *desc;
-
- desc = irq_to_desc(irq);
- desc->handle_irq = handler;
-}
-
-/* caller has locked the irq_desc and both params are valid */
-static inline void
-__irq_set_chip_handler_name_locked(unsigned int irq, struct irq_chip *chip,
- irq_flow_handler_t handler, const char *name)
-{
- struct irq_desc *desc;
-
- desc = irq_to_desc(irq);
- irq_desc_get_irq_data(desc)->chip = chip;
- desc->handle_irq = handler;
- desc->name = name;
-}
-
-static inline int irq_balancing_disabled(unsigned int irq)
-{
- struct irq_desc *desc;
-
- desc = irq_to_desc(irq);
- return desc->status_use_accessors & IRQ_NO_BALANCING_MASK;
-}
-
-static inline void
-irq_set_lockdep_class(unsigned int irq, struct lock_class_key *class)
-{
- struct irq_desc *desc = irq_to_desc(irq);
-
- if (desc)
- lockdep_set_class(&desc->lock, class);
-}
-
-#ifdef CONFIG_IRQ_PREFLOW_FASTEOI
-static inline void
-__irq_set_preflow_handler(unsigned int irq, irq_preflow_handler_t handler)
-{
- struct irq_desc *desc;
-
- desc = irq_to_desc(irq);
- desc->preflow_handler = handler;
-}
-#endif
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/irqdomain.h b/ANDROID_3.4.5/include/linux/irqdomain.h
deleted file mode 100644
index c65740d7..00000000
--- a/ANDROID_3.4.5/include/linux/irqdomain.h
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- * irq_domain - IRQ translation domains
- *
- * Translation infrastructure between hw and linux irq numbers. This is
- * helpful for interrupt controllers to implement mapping between hardware
- * irq numbers and the Linux irq number space.
- *
- * irq_domains also have a hook for translating device tree interrupt
- * representation into a hardware irq number that can be mapped back to a
- * Linux irq number without any extra platform support code.
- *
- * Interrupt controller "domain" data structure. This could be defined as a
- * irq domain controller. That is, it handles the mapping between hardware
- * and virtual interrupt numbers for a given interrupt domain. The domain
- * structure is generally created by the PIC code for a given PIC instance
- * (though a domain can cover more than one PIC if they have a flat number
- * model). It's the domain callbacks that are responsible for setting the
- * irq_chip on a given irq_desc after it's been mapped.
- *
- * The host code and data structures are agnostic to whether or not
- * we use an open firmware device-tree. We do have references to struct
- * device_node in two places: in irq_find_host() to find the host matching
- * a given interrupt controller node, and of course as an argument to its
- * counterpart domain->ops->match() callback. However, those are treated as
- * generic pointers by the core and the fact that it's actually a device-node
- * pointer is purely a convention between callers and implementation. This
- * code could thus be used on other architectures by replacing those two
- * by some sort of arch-specific void * "token" used to identify interrupt
- * controllers.
- */
-
-#ifndef _LINUX_IRQDOMAIN_H
-#define _LINUX_IRQDOMAIN_H
-
-#include <linux/types.h>
-#include <linux/radix-tree.h>
-
-struct device_node;
-struct irq_domain;
-struct of_device_id;
-
-/* Number of irqs reserved for a legacy isa controller */
-#define NUM_ISA_INTERRUPTS 16
-
-/**
- * struct irq_domain_ops - Methods for irq_domain objects
- * @match: Match an interrupt controller device node to a host, returns
- * 1 on a match
- * @map: Create or update a mapping between a virtual irq number and a hw
- * irq number. This is called only once for a given mapping.
- * @unmap: Dispose of such a mapping
- * @xlate: Given a device tree node and interrupt specifier, decode
- * the hardware irq number and linux irq type value.
- *
- * Functions below are provided by the driver and called whenever a new mapping
- * is created or an old mapping is disposed. The driver can then proceed to
- * whatever internal data structures management is required. It also needs
- * to setup the irq_desc when returning from map().
- */
-struct irq_domain_ops {
- int (*match)(struct irq_domain *d, struct device_node *node);
- int (*map)(struct irq_domain *d, unsigned int virq, irq_hw_number_t hw);
- void (*unmap)(struct irq_domain *d, unsigned int virq);
- int (*xlate)(struct irq_domain *d, struct device_node *node,
- const u32 *intspec, unsigned int intsize,
- unsigned long *out_hwirq, unsigned int *out_type);
-};
-
-/**
- * struct irq_domain - Hardware interrupt number translation object
- * @link: Element in global irq_domain list.
- * @revmap_type: Method used for reverse mapping hwirq numbers to linux irq. This
- * will be one of the IRQ_DOMAIN_MAP_* values.
- * @revmap_data: Revmap method specific data.
- * @ops: pointer to irq_domain methods
- * @host_data: private data pointer for use by owner. Not touched by irq_domain
- * core code.
- * @irq_base: Start of irq_desc range assigned to the irq_domain. The creator
- * of the irq_domain is responsible for allocating the array of
- * irq_desc structures.
- * @nr_irq: Number of irqs managed by the irq domain
- * @hwirq_base: Starting number for hwirqs managed by the irq domain
- * @of_node: (optional) Pointer to device tree nodes associated with the
- * irq_domain. Used when decoding device tree interrupt specifiers.
- */
-struct irq_domain {
- struct list_head link;
-
- /* type of reverse mapping_technique */
- unsigned int revmap_type;
- union {
- struct {
- unsigned int size;
- unsigned int first_irq;
- irq_hw_number_t first_hwirq;
- } legacy;
- struct {
- unsigned int size;
- unsigned int *revmap;
- } linear;
- struct {
- unsigned int max_irq;
- } nomap;
- struct radix_tree_root tree;
- } revmap_data;
- const struct irq_domain_ops *ops;
- void *host_data;
- irq_hw_number_t inval_irq;
-
- /* Optional device node pointer */
- struct device_node *of_node;
-};
-
-#ifdef CONFIG_IRQ_DOMAIN
-struct irq_domain *irq_domain_add_legacy(struct device_node *of_node,
- unsigned int size,
- unsigned int first_irq,
- irq_hw_number_t first_hwirq,
- const struct irq_domain_ops *ops,
- void *host_data);
-struct irq_domain *irq_domain_add_linear(struct device_node *of_node,
- unsigned int size,
- const struct irq_domain_ops *ops,
- void *host_data);
-struct irq_domain *irq_domain_add_nomap(struct device_node *of_node,
- unsigned int max_irq,
- const struct irq_domain_ops *ops,
- void *host_data);
-struct irq_domain *irq_domain_add_tree(struct device_node *of_node,
- const struct irq_domain_ops *ops,
- void *host_data);
-
-extern struct irq_domain *irq_find_host(struct device_node *node);
-extern void irq_set_default_host(struct irq_domain *host);
-
-static inline struct irq_domain *irq_domain_add_legacy_isa(
- struct device_node *of_node,
- const struct irq_domain_ops *ops,
- void *host_data)
-{
- return irq_domain_add_legacy(of_node, NUM_ISA_INTERRUPTS, 0, 0, ops,
- host_data);
-}
-extern struct irq_domain *irq_find_host(struct device_node *node);
-extern void irq_set_default_host(struct irq_domain *host);
-
-
-extern unsigned int irq_create_mapping(struct irq_domain *host,
- irq_hw_number_t hwirq);
-extern void irq_dispose_mapping(unsigned int virq);
-extern unsigned int irq_find_mapping(struct irq_domain *host,
- irq_hw_number_t hwirq);
-extern unsigned int irq_create_direct_mapping(struct irq_domain *host);
-extern void irq_radix_revmap_insert(struct irq_domain *host, unsigned int virq,
- irq_hw_number_t hwirq);
-extern unsigned int irq_radix_revmap_lookup(struct irq_domain *host,
- irq_hw_number_t hwirq);
-extern unsigned int irq_linear_revmap(struct irq_domain *host,
- irq_hw_number_t hwirq);
-
-extern const struct irq_domain_ops irq_domain_simple_ops;
-
-/* stock xlate functions */
-int irq_domain_xlate_onecell(struct irq_domain *d, struct device_node *ctrlr,
- const u32 *intspec, unsigned int intsize,
- irq_hw_number_t *out_hwirq, unsigned int *out_type);
-int irq_domain_xlate_twocell(struct irq_domain *d, struct device_node *ctrlr,
- const u32 *intspec, unsigned int intsize,
- irq_hw_number_t *out_hwirq, unsigned int *out_type);
-int irq_domain_xlate_onetwocell(struct irq_domain *d, struct device_node *ctrlr,
- const u32 *intspec, unsigned int intsize,
- irq_hw_number_t *out_hwirq, unsigned int *out_type);
-
-#if defined(CONFIG_OF_IRQ)
-extern void irq_domain_generate_simple(const struct of_device_id *match,
- u64 phys_base, unsigned int irq_start);
-#else /* CONFIG_OF_IRQ */
-static inline void irq_domain_generate_simple(const struct of_device_id *match,
- u64 phys_base, unsigned int irq_start) { }
-#endif /* !CONFIG_OF_IRQ */
-
-#else /* CONFIG_IRQ_DOMAIN */
-static inline void irq_dispose_mapping(unsigned int virq) { }
-#endif /* !CONFIG_IRQ_DOMAIN */
-
-#endif /* _LINUX_IRQDOMAIN_H */
diff --git a/ANDROID_3.4.5/include/linux/irqflags.h b/ANDROID_3.4.5/include/linux/irqflags.h
deleted file mode 100644
index d176d658..00000000
--- a/ANDROID_3.4.5/include/linux/irqflags.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * include/linux/irqflags.h
- *
- * IRQ flags tracing: follow the state of the hardirq and softirq flags and
- * provide callbacks for transitions between ON and OFF states.
- *
- * This file gets included from lowlevel asm headers too, to provide
- * wrapped versions of the local_irq_*() APIs, based on the
- * raw_local_irq_*() macros from the lowlevel headers.
- */
-#ifndef _LINUX_TRACE_IRQFLAGS_H
-#define _LINUX_TRACE_IRQFLAGS_H
-
-#include <linux/typecheck.h>
-#include <asm/irqflags.h>
-
-#ifdef CONFIG_TRACE_IRQFLAGS
- extern void trace_softirqs_on(unsigned long ip);
- extern void trace_softirqs_off(unsigned long ip);
- extern void trace_hardirqs_on(void);
- extern void trace_hardirqs_off(void);
-# define trace_hardirq_context(p) ((p)->hardirq_context)
-# define trace_softirq_context(p) ((p)->softirq_context)
-# define trace_hardirqs_enabled(p) ((p)->hardirqs_enabled)
-# define trace_softirqs_enabled(p) ((p)->softirqs_enabled)
-# define trace_hardirq_enter() do { current->hardirq_context++; } while (0)
-# define trace_hardirq_exit() do { current->hardirq_context--; } while (0)
-# define lockdep_softirq_enter() do { current->softirq_context++; } while (0)
-# define lockdep_softirq_exit() do { current->softirq_context--; } while (0)
-# define INIT_TRACE_IRQFLAGS .softirqs_enabled = 1,
-#else
-# define trace_hardirqs_on() do { } while (0)
-# define trace_hardirqs_off() do { } while (0)
-# define trace_softirqs_on(ip) do { } while (0)
-# define trace_softirqs_off(ip) do { } while (0)
-# define trace_hardirq_context(p) 0
-# define trace_softirq_context(p) 0
-# define trace_hardirqs_enabled(p) 0
-# define trace_softirqs_enabled(p) 0
-# define trace_hardirq_enter() do { } while (0)
-# define trace_hardirq_exit() do { } while (0)
-# define lockdep_softirq_enter() do { } while (0)
-# define lockdep_softirq_exit() do { } while (0)
-# define INIT_TRACE_IRQFLAGS
-#endif
-
-#if defined(CONFIG_IRQSOFF_TRACER) || \
- defined(CONFIG_PREEMPT_TRACER)
- extern void stop_critical_timings(void);
- extern void start_critical_timings(void);
-#else
-# define stop_critical_timings() do { } while (0)
-# define start_critical_timings() do { } while (0)
-#endif
-
-/*
- * Wrap the arch provided IRQ routines to provide appropriate checks.
- */
-#define raw_local_irq_disable() arch_local_irq_disable()
-#define raw_local_irq_enable() arch_local_irq_enable()
-#define raw_local_irq_save(flags) \
- do { \
- typecheck(unsigned long, flags); \
- flags = arch_local_irq_save(); \
- } while (0)
-#define raw_local_irq_restore(flags) \
- do { \
- typecheck(unsigned long, flags); \
- arch_local_irq_restore(flags); \
- } while (0)
-#define raw_local_save_flags(flags) \
- do { \
- typecheck(unsigned long, flags); \
- flags = arch_local_save_flags(); \
- } while (0)
-#define raw_irqs_disabled_flags(flags) \
- ({ \
- typecheck(unsigned long, flags); \
- arch_irqs_disabled_flags(flags); \
- })
-#define raw_irqs_disabled() (arch_irqs_disabled())
-#define raw_safe_halt() arch_safe_halt()
-
-/*
- * The local_irq_*() APIs are equal to the raw_local_irq*()
- * if !TRACE_IRQFLAGS.
- */
-#ifdef CONFIG_TRACE_IRQFLAGS_SUPPORT
-#define local_irq_enable() \
- do { trace_hardirqs_on(); raw_local_irq_enable(); } while (0)
-#define local_irq_disable() \
- do { raw_local_irq_disable(); trace_hardirqs_off(); } while (0)
-#define local_irq_save(flags) \
- do { \
- raw_local_irq_save(flags); \
- trace_hardirqs_off(); \
- } while (0)
-
-
-#define local_irq_restore(flags) \
- do { \
- if (raw_irqs_disabled_flags(flags)) { \
- raw_local_irq_restore(flags); \
- trace_hardirqs_off(); \
- } else { \
- trace_hardirqs_on(); \
- raw_local_irq_restore(flags); \
- } \
- } while (0)
-#define local_save_flags(flags) \
- do { \
- raw_local_save_flags(flags); \
- } while (0)
-
-#define irqs_disabled_flags(flags) \
- ({ \
- raw_irqs_disabled_flags(flags); \
- })
-
-#define irqs_disabled() \
- ({ \
- unsigned long _flags; \
- raw_local_save_flags(_flags); \
- raw_irqs_disabled_flags(_flags); \
- })
-
-#define safe_halt() \
- do { \
- trace_hardirqs_on(); \
- raw_safe_halt(); \
- } while (0)
-
-
-#else /* !CONFIG_TRACE_IRQFLAGS_SUPPORT */
-
-#define local_irq_enable() do { raw_local_irq_enable(); } while (0)
-#define local_irq_disable() do { raw_local_irq_disable(); } while (0)
-#define local_irq_save(flags) \
- do { \
- raw_local_irq_save(flags); \
- } while (0)
-#define local_irq_restore(flags) do { raw_local_irq_restore(flags); } while (0)
-#define local_save_flags(flags) do { raw_local_save_flags(flags); } while (0)
-#define irqs_disabled() (raw_irqs_disabled())
-#define irqs_disabled_flags(flags) (raw_irqs_disabled_flags(flags))
-#define safe_halt() do { raw_safe_halt(); } while (0)
-
-#endif /* CONFIG_TRACE_IRQFLAGS_SUPPORT */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/irqnr.h b/ANDROID_3.4.5/include/linux/irqnr.h
deleted file mode 100644
index 3bc4dcab..00000000
--- a/ANDROID_3.4.5/include/linux/irqnr.h
+++ /dev/null
@@ -1,62 +0,0 @@
-#ifndef _LINUX_IRQNR_H
-#define _LINUX_IRQNR_H
-
-/*
- * Generic irq_desc iterators:
- */
-#ifdef __KERNEL__
-
-#ifndef CONFIG_GENERIC_HARDIRQS
-#include <asm/irq.h>
-
-/*
- * Wrappers for non-genirq architectures:
- */
-#define nr_irqs NR_IRQS
-#define irq_to_desc(irq) (&irq_desc[irq])
-
-# define for_each_irq_desc(irq, desc) \
- for (irq = 0; irq < nr_irqs; irq++)
-
-# define for_each_irq_desc_reverse(irq, desc) \
- for (irq = nr_irqs - 1; irq >= 0; irq--)
-
-#else /* CONFIG_GENERIC_HARDIRQS */
-
-extern int nr_irqs;
-extern struct irq_desc *irq_to_desc(unsigned int irq);
-unsigned int irq_get_next_irq(unsigned int offset);
-
-# define for_each_irq_desc(irq, desc) \
- for (irq = 0, desc = irq_to_desc(irq); irq < nr_irqs; \
- irq++, desc = irq_to_desc(irq)) \
- if (!desc) \
- ; \
- else
-
-
-# define for_each_irq_desc_reverse(irq, desc) \
- for (irq = nr_irqs - 1, desc = irq_to_desc(irq); irq >= 0; \
- irq--, desc = irq_to_desc(irq)) \
- if (!desc) \
- ; \
- else
-
-#ifdef CONFIG_SMP
-#define irq_node(irq) (irq_get_irq_data(irq)->node)
-#else
-#define irq_node(irq) 0
-#endif
-
-# define for_each_active_irq(irq) \
- for (irq = irq_get_next_irq(0); irq < nr_irqs; \
- irq = irq_get_next_irq(irq + 1))
-
-#endif /* CONFIG_GENERIC_HARDIRQS */
-
-#define for_each_irq_nr(irq) \
- for (irq = 0; irq < nr_irqs; irq++)
-
-#endif /* __KERNEL__ */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/irqreturn.h b/ANDROID_3.4.5/include/linux/irqreturn.h
deleted file mode 100644
index 714ba08d..00000000
--- a/ANDROID_3.4.5/include/linux/irqreturn.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef _LINUX_IRQRETURN_H
-#define _LINUX_IRQRETURN_H
-
-/**
- * enum irqreturn
- * @IRQ_NONE interrupt was not from this device
- * @IRQ_HANDLED interrupt was handled by this device
- * @IRQ_WAKE_THREAD handler requests to wake the handler thread
- */
-enum irqreturn {
- IRQ_NONE = (0 << 0),
- IRQ_HANDLED = (1 << 0),
- IRQ_WAKE_THREAD = (1 << 1),
-};
-
-typedef enum irqreturn irqreturn_t;
-#define IRQ_RETVAL(x) ((x) != IRQ_NONE)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/isa.h b/ANDROID_3.4.5/include/linux/isa.h
deleted file mode 100644
index b0270e38..00000000
--- a/ANDROID_3.4.5/include/linux/isa.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * ISA bus.
- */
-
-#ifndef __LINUX_ISA_H
-#define __LINUX_ISA_H
-
-#include <linux/device.h>
-#include <linux/kernel.h>
-
-struct isa_driver {
- int (*match)(struct device *, unsigned int);
- int (*probe)(struct device *, unsigned int);
- int (*remove)(struct device *, unsigned int);
- void (*shutdown)(struct device *, unsigned int);
- int (*suspend)(struct device *, unsigned int, pm_message_t);
- int (*resume)(struct device *, unsigned int);
-
- struct device_driver driver;
- struct device *devices;
-};
-
-#define to_isa_driver(x) container_of((x), struct isa_driver, driver)
-
-#ifdef CONFIG_ISA
-int isa_register_driver(struct isa_driver *, unsigned int);
-void isa_unregister_driver(struct isa_driver *);
-#else
-static inline int isa_register_driver(struct isa_driver *d, unsigned int i)
-{
- return 0;
-}
-
-static inline void isa_unregister_driver(struct isa_driver *d)
-{
-}
-#endif
-
-#endif /* __LINUX_ISA_H */
diff --git a/ANDROID_3.4.5/include/linux/isapnp.h b/ANDROID_3.4.5/include/linux/isapnp.h
deleted file mode 100644
index e2d28b02..00000000
--- a/ANDROID_3.4.5/include/linux/isapnp.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * ISA Plug & Play support
- * Copyright (c) by Jaroslav Kysela <perex@suse.cz>
- *
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-#ifndef LINUX_ISAPNP_H
-#define LINUX_ISAPNP_H
-
-#include <linux/errno.h>
-#include <linux/pnp.h>
-
-/*
- *
- */
-
-#define ISAPNP_VENDOR(a,b,c) (((((a)-'A'+1)&0x3f)<<2)|\
- ((((b)-'A'+1)&0x18)>>3)|((((b)-'A'+1)&7)<<13)|\
- ((((c)-'A'+1)&0x1f)<<8))
-#define ISAPNP_DEVICE(x) ((((x)&0xf000)>>8)|\
- (((x)&0x0f00)>>8)|\
- (((x)&0x00f0)<<8)|\
- (((x)&0x000f)<<8))
-#define ISAPNP_FUNCTION(x) ISAPNP_DEVICE(x)
-
-/*
- *
- */
-
-#ifdef __KERNEL__
-#include <linux/mod_devicetable.h>
-
-#define DEVICE_COUNT_COMPATIBLE 4
-
-#define ISAPNP_CARD_DEVS 8
-
-#define ISAPNP_CARD_ID(_va, _vb, _vc, _device) \
- .card_vendor = ISAPNP_VENDOR(_va, _vb, _vc), .card_device = ISAPNP_DEVICE(_device)
-#define ISAPNP_CARD_END \
- .card_vendor = 0, .card_device = 0
-#define ISAPNP_DEVICE_ID(_va, _vb, _vc, _function) \
- { .vendor = ISAPNP_VENDOR(_va, _vb, _vc), .function = ISAPNP_FUNCTION(_function) }
-
-/* export used IDs outside module */
-#define ISAPNP_CARD_TABLE(name) \
- MODULE_GENERIC_TABLE(isapnp_card, name)
-
-struct isapnp_card_id {
- unsigned long driver_data; /* data private to the driver */
- unsigned short card_vendor, card_device;
- struct {
- unsigned short vendor, function;
- } devs[ISAPNP_CARD_DEVS]; /* logical devices */
-};
-
-#define ISAPNP_DEVICE_SINGLE(_cva, _cvb, _cvc, _cdevice, _dva, _dvb, _dvc, _dfunction) \
- .card_vendor = ISAPNP_VENDOR(_cva, _cvb, _cvc), .card_device = ISAPNP_DEVICE(_cdevice), \
- .vendor = ISAPNP_VENDOR(_dva, _dvb, _dvc), .function = ISAPNP_FUNCTION(_dfunction)
-#define ISAPNP_DEVICE_SINGLE_END \
- .card_vendor = 0, .card_device = 0
-
-#if defined(CONFIG_ISAPNP) || (defined(CONFIG_ISAPNP_MODULE) && defined(MODULE))
-
-#define __ISAPNP__
-
-/* lowlevel configuration */
-int isapnp_present(void);
-int isapnp_cfg_begin(int csn, int device);
-int isapnp_cfg_end(void);
-unsigned char isapnp_read_byte(unsigned char idx);
-void isapnp_write_byte(unsigned char idx, unsigned char val);
-
-#ifdef CONFIG_PROC_FS
-int isapnp_proc_init(void);
-int isapnp_proc_done(void);
-#else
-static inline int isapnp_proc_init(void) { return 0; }
-static inline int isapnp_proc_done(void) { return 0; }
-#endif
-
-/* compat */
-struct pnp_card *pnp_find_card(unsigned short vendor,
- unsigned short device,
- struct pnp_card *from);
-struct pnp_dev *pnp_find_dev(struct pnp_card *card,
- unsigned short vendor,
- unsigned short function,
- struct pnp_dev *from);
-
-#else /* !CONFIG_ISAPNP */
-
-/* lowlevel configuration */
-static inline int isapnp_present(void) { return 0; }
-static inline int isapnp_cfg_begin(int csn, int device) { return -ENODEV; }
-static inline int isapnp_cfg_end(void) { return -ENODEV; }
-static inline unsigned char isapnp_read_byte(unsigned char idx) { return 0xff; }
-static inline void isapnp_write_byte(unsigned char idx, unsigned char val) { ; }
-
-static inline struct pnp_card *pnp_find_card(unsigned short vendor,
- unsigned short device,
- struct pnp_card *from) { return NULL; }
-static inline struct pnp_dev *pnp_find_dev(struct pnp_card *card,
- unsigned short vendor,
- unsigned short function,
- struct pnp_dev *from) { return NULL; }
-
-#endif /* CONFIG_ISAPNP */
-
-#endif /* __KERNEL__ */
-#endif /* LINUX_ISAPNP_H */
diff --git a/ANDROID_3.4.5/include/linux/iscsi_boot_sysfs.h b/ANDROID_3.4.5/include/linux/iscsi_boot_sysfs.h
deleted file mode 100644
index 2a8b1659..00000000
--- a/ANDROID_3.4.5/include/linux/iscsi_boot_sysfs.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Export the iSCSI boot info to userland via sysfs.
- *
- * Copyright (C) 2010 Red Hat, Inc. All rights reserved.
- * Copyright (C) 2010 Mike Christie
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License v2.0 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.
- */
-#ifndef _ISCSI_BOOT_SYSFS_
-#define _ISCSI_BOOT_SYSFS_
-
-/*
- * The text attributes names for each of the kobjects.
-*/
-enum iscsi_boot_eth_properties_enum {
- ISCSI_BOOT_ETH_INDEX,
- ISCSI_BOOT_ETH_FLAGS,
- ISCSI_BOOT_ETH_IP_ADDR,
- ISCSI_BOOT_ETH_SUBNET_MASK,
- ISCSI_BOOT_ETH_ORIGIN,
- ISCSI_BOOT_ETH_GATEWAY,
- ISCSI_BOOT_ETH_PRIMARY_DNS,
- ISCSI_BOOT_ETH_SECONDARY_DNS,
- ISCSI_BOOT_ETH_DHCP,
- ISCSI_BOOT_ETH_VLAN,
- ISCSI_BOOT_ETH_MAC,
- /* eth_pci_bdf - this is replaced by link to the device itself. */
- ISCSI_BOOT_ETH_HOSTNAME,
- ISCSI_BOOT_ETH_END_MARKER,
-};
-
-enum iscsi_boot_tgt_properties_enum {
- ISCSI_BOOT_TGT_INDEX,
- ISCSI_BOOT_TGT_FLAGS,
- ISCSI_BOOT_TGT_IP_ADDR,
- ISCSI_BOOT_TGT_PORT,
- ISCSI_BOOT_TGT_LUN,
- ISCSI_BOOT_TGT_CHAP_TYPE,
- ISCSI_BOOT_TGT_NIC_ASSOC,
- ISCSI_BOOT_TGT_NAME,
- ISCSI_BOOT_TGT_CHAP_NAME,
- ISCSI_BOOT_TGT_CHAP_SECRET,
- ISCSI_BOOT_TGT_REV_CHAP_NAME,
- ISCSI_BOOT_TGT_REV_CHAP_SECRET,
- ISCSI_BOOT_TGT_END_MARKER,
-};
-
-enum iscsi_boot_initiator_properties_enum {
- ISCSI_BOOT_INI_INDEX,
- ISCSI_BOOT_INI_FLAGS,
- ISCSI_BOOT_INI_ISNS_SERVER,
- ISCSI_BOOT_INI_SLP_SERVER,
- ISCSI_BOOT_INI_PRI_RADIUS_SERVER,
- ISCSI_BOOT_INI_SEC_RADIUS_SERVER,
- ISCSI_BOOT_INI_INITIATOR_NAME,
- ISCSI_BOOT_INI_END_MARKER,
-};
-
-struct attribute_group;
-
-struct iscsi_boot_kobj {
- struct kobject kobj;
- struct attribute_group *attr_group;
- struct list_head list;
-
- /*
- * Pointer to store driver specific info. If set this will
- * be freed for the LLD when the kobj release function is called.
- */
- void *data;
- /*
- * Driver specific show function.
- *
- * The enum of the type. This can be any value of the above
- * properties.
- */
- ssize_t (*show) (void *data, int type, char *buf);
-
- /*
- * Drivers specific visibility function.
- * The function should return if they the attr should be readable
- * writable or should not be shown.
- *
- * The enum of the type. This can be any value of the above
- * properties.
- */
- umode_t (*is_visible) (void *data, int type);
-
- /*
- * Driver specific release function.
- *
- * The function should free the data passed in.
- */
- void (*release) (void *data);
-};
-
-struct iscsi_boot_kset {
- struct list_head kobj_list;
- struct kset *kset;
-};
-
-struct iscsi_boot_kobj *
-iscsi_boot_create_initiator(struct iscsi_boot_kset *boot_kset, int index,
- void *data,
- ssize_t (*show) (void *data, int type, char *buf),
- umode_t (*is_visible) (void *data, int type),
- void (*release) (void *data));
-
-struct iscsi_boot_kobj *
-iscsi_boot_create_ethernet(struct iscsi_boot_kset *boot_kset, int index,
- void *data,
- ssize_t (*show) (void *data, int type, char *buf),
- umode_t (*is_visible) (void *data, int type),
- void (*release) (void *data));
-struct iscsi_boot_kobj *
-iscsi_boot_create_target(struct iscsi_boot_kset *boot_kset, int index,
- void *data,
- ssize_t (*show) (void *data, int type, char *buf),
- umode_t (*is_visible) (void *data, int type),
- void (*release) (void *data));
-
-struct iscsi_boot_kset *iscsi_boot_create_kset(const char *set_name);
-struct iscsi_boot_kset *iscsi_boot_create_host_kset(unsigned int hostno);
-void iscsi_boot_destroy_kset(struct iscsi_boot_kset *boot_kset);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/iscsi_ibft.h b/ANDROID_3.4.5/include/linux/iscsi_ibft.h
deleted file mode 100644
index 8ba7e5b9..00000000
--- a/ANDROID_3.4.5/include/linux/iscsi_ibft.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright 2007 Red Hat, Inc.
- * by Peter Jones <pjones@redhat.com>
- * Copyright 2007 IBM, Inc.
- * by Konrad Rzeszutek <konradr@linux.vnet.ibm.com>
- * Copyright 2008
- * by Konrad Rzeszutek <ketuzsezr@darnok.org>
- *
- * This code exposes the iSCSI Boot Format Table to userland via sysfs.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License v2.0 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.
- */
-
-#ifndef ISCSI_IBFT_H
-#define ISCSI_IBFT_H
-
-#include <acpi/acpi.h>
-
-/*
- * Logical location of iSCSI Boot Format Table.
- * If the value is NULL there is no iBFT on the machine.
- */
-extern struct acpi_table_ibft *ibft_addr;
-
-/*
- * Routine used to find and reserve the iSCSI Boot Format Table. The
- * mapped address is set in the ibft_addr variable.
- */
-#ifdef CONFIG_ISCSI_IBFT_FIND
-unsigned long find_ibft_region(unsigned long *sizep);
-#else
-static inline unsigned long find_ibft_region(unsigned long *sizep)
-{
- *sizep = 0;
- return 0;
-}
-#endif
-
-#endif /* ISCSI_IBFT_H */
diff --git a/ANDROID_3.4.5/include/linux/isdn.h b/ANDROID_3.4.5/include/linux/isdn.h
deleted file mode 100644
index 292f27a7..00000000
--- a/ANDROID_3.4.5/include/linux/isdn.h
+++ /dev/null
@@ -1,622 +0,0 @@
-/* $Id: isdn.h,v 1.125.2.3 2004/02/10 01:07:14 keil Exp $
- *
- * Main header for the Linux ISDN subsystem (linklevel).
- *
- * Copyright 1994,95,96 by Fritz Elfert (fritz@isdn4linux.de)
- * Copyright 1995,96 by Thinking Objects Software GmbH Wuerzburg
- * Copyright 1995,96 by Michael Hipp (Michael.Hipp@student.uni-tuebingen.de)
- *
- * This software may be used and distributed according to the terms
- * of the GNU General Public License, incorporated herein by reference.
- *
- */
-
-#ifndef __ISDN_H__
-#define __ISDN_H__
-
-#include <linux/ioctl.h>
-
-#define ISDN_MAX_DRIVERS 32
-#define ISDN_MAX_CHANNELS 64
-
-/* New ioctl-codes */
-#define IIOCNETAIF _IO('I',1)
-#define IIOCNETDIF _IO('I',2)
-#define IIOCNETSCF _IO('I',3)
-#define IIOCNETGCF _IO('I',4)
-#define IIOCNETANM _IO('I',5)
-#define IIOCNETDNM _IO('I',6)
-#define IIOCNETGNM _IO('I',7)
-#define IIOCGETSET _IO('I',8) /* no longer supported */
-#define IIOCSETSET _IO('I',9) /* no longer supported */
-#define IIOCSETVER _IO('I',10)
-#define IIOCNETHUP _IO('I',11)
-#define IIOCSETGST _IO('I',12)
-#define IIOCSETBRJ _IO('I',13)
-#define IIOCSIGPRF _IO('I',14)
-#define IIOCGETPRF _IO('I',15)
-#define IIOCSETPRF _IO('I',16)
-#define IIOCGETMAP _IO('I',17)
-#define IIOCSETMAP _IO('I',18)
-#define IIOCNETASL _IO('I',19)
-#define IIOCNETDIL _IO('I',20)
-#define IIOCGETCPS _IO('I',21)
-#define IIOCGETDVR _IO('I',22)
-#define IIOCNETLCR _IO('I',23) /* dwabc ioctl for LCR from isdnlog */
-#define IIOCNETDWRSET _IO('I',24) /* dwabc ioctl to reset abc-values to default on a net-interface */
-
-#define IIOCNETALN _IO('I',32)
-#define IIOCNETDLN _IO('I',33)
-
-#define IIOCNETGPN _IO('I',34)
-
-#define IIOCDBGVAR _IO('I',127)
-
-#define IIOCDRVCTL _IO('I',128)
-
-/* cisco hdlck device private ioctls */
-#define SIOCGKEEPPERIOD (SIOCDEVPRIVATE + 0)
-#define SIOCSKEEPPERIOD (SIOCDEVPRIVATE + 1)
-#define SIOCGDEBSERINT (SIOCDEVPRIVATE + 2)
-#define SIOCSDEBSERINT (SIOCDEVPRIVATE + 3)
-
-/* Packet encapsulations for net-interfaces */
-#define ISDN_NET_ENCAP_ETHER 0
-#define ISDN_NET_ENCAP_RAWIP 1
-#define ISDN_NET_ENCAP_IPTYP 2
-#define ISDN_NET_ENCAP_CISCOHDLC 3 /* Without SLARP and keepalive */
-#define ISDN_NET_ENCAP_SYNCPPP 4
-#define ISDN_NET_ENCAP_UIHDLC 5
-#define ISDN_NET_ENCAP_CISCOHDLCK 6 /* With SLARP and keepalive */
-#define ISDN_NET_ENCAP_X25IFACE 7 /* Documentation/networking/x25-iface.txt */
-#define ISDN_NET_ENCAP_MAX_ENCAP ISDN_NET_ENCAP_X25IFACE
-
-/* Facility which currently uses an ISDN-channel */
-#define ISDN_USAGE_NONE 0
-#define ISDN_USAGE_RAW 1
-#define ISDN_USAGE_MODEM 2
-#define ISDN_USAGE_NET 3
-#define ISDN_USAGE_VOICE 4
-#define ISDN_USAGE_FAX 5
-#define ISDN_USAGE_MASK 7 /* Mask to get plain usage */
-#define ISDN_USAGE_DISABLED 32 /* This bit is set, if channel is disabled */
-#define ISDN_USAGE_EXCLUSIVE 64 /* This bit is set, if channel is exclusive */
-#define ISDN_USAGE_OUTGOING 128 /* This bit is set, if channel is outgoing */
-
-#define ISDN_MODEM_NUMREG 24 /* Number of Modem-Registers */
-#define ISDN_LMSNLEN 255 /* Length of tty's Listen-MSN string */
-#define ISDN_CMSGLEN 50 /* Length of CONNECT-Message to add for Modem */
-
-#define ISDN_MSNLEN 32
-#define NET_DV 0x06 /* Data version for isdn_net_ioctl_cfg */
-#define TTY_DV 0x06 /* Data version for iprofd etc. */
-
-#define INF_DV 0x01 /* Data version for /dev/isdninfo */
-
-typedef struct {
- char drvid[25];
- unsigned long arg;
-} isdn_ioctl_struct;
-
-typedef struct {
- char name[10];
- char phone[ISDN_MSNLEN];
- int outgoing;
-} isdn_net_ioctl_phone;
-
-typedef struct {
- char name[10]; /* Name of interface */
- char master[10]; /* Name of Master for Bundling */
- char slave[10]; /* Name of Slave for Bundling */
- char eaz[256]; /* EAZ/MSN */
- char drvid[25]; /* DriverId for Bindings */
- int onhtime; /* Hangup-Timeout */
- int charge; /* Charge-Units */
- int l2_proto; /* Layer-2 protocol */
- int l3_proto; /* Layer-3 protocol */
- int p_encap; /* Encapsulation */
- int exclusive; /* Channel, if bound exclusive */
- int dialmax; /* Dial Retry-Counter */
- int slavedelay; /* Delay until slave starts up */
- int cbdelay; /* Delay before Callback */
- int chargehup; /* Flag: Charge-Hangup */
- int ihup; /* Flag: Hangup-Timeout on incoming line */
- int secure; /* Flag: Secure */
- int callback; /* Flag: Callback */
- int cbhup; /* Flag: Reject Call before Callback */
- int pppbind; /* ippp device for bindings */
- int chargeint; /* Use fixed charge interval length */
- int triggercps; /* BogoCPS needed for triggering slave */
- int dialtimeout; /* Dial-Timeout */
- int dialwait; /* Time to wait after failed dial */
- int dialmode; /* Flag: off / on / auto */
-} isdn_net_ioctl_cfg;
-
-#define ISDN_NET_DIALMODE_MASK 0xC0 /* bits for status */
-#define ISDN_NET_DM_OFF 0x00 /* this interface is stopped */
-#define ISDN_NET_DM_MANUAL 0x40 /* this interface is on (manual) */
-#define ISDN_NET_DM_AUTO 0x80 /* this interface is autodial */
-#define ISDN_NET_DIALMODE(x) ((&(x))->flags & ISDN_NET_DIALMODE_MASK)
-
-#ifdef __KERNEL__
-
-#include <linux/errno.h>
-#include <linux/fs.h>
-#include <linux/major.h>
-#include <asm/io.h>
-#include <linux/kernel.h>
-#include <linux/signal.h>
-#include <linux/slab.h>
-#include <linux/timer.h>
-#include <linux/wait.h>
-#include <linux/tty.h>
-#include <linux/tty_flip.h>
-#include <linux/serial_reg.h>
-#include <linux/fcntl.h>
-#include <linux/types.h>
-#include <linux/interrupt.h>
-#include <linux/ip.h>
-#include <linux/in.h>
-#include <linux/netdevice.h>
-#include <linux/etherdevice.h>
-#include <linux/skbuff.h>
-#include <linux/tcp.h>
-#include <linux/mutex.h>
-
-#define ISDN_TTY_MAJOR 43
-#define ISDN_TTYAUX_MAJOR 44
-#define ISDN_MAJOR 45
-
-/* The minor-devicenumbers for Channel 0 and 1 are used as arguments for
- * physical Channel-Mapping, so they MUST NOT be changed without changing
- * the correspondent code in isdn.c
- */
-
-#define ISDN_MINOR_B 0
-#define ISDN_MINOR_BMAX (ISDN_MAX_CHANNELS-1)
-#define ISDN_MINOR_CTRL 64
-#define ISDN_MINOR_CTRLMAX (64 + (ISDN_MAX_CHANNELS-1))
-#define ISDN_MINOR_PPP 128
-#define ISDN_MINOR_PPPMAX (128 + (ISDN_MAX_CHANNELS-1))
-#define ISDN_MINOR_STATUS 255
-
-#ifdef CONFIG_ISDN_PPP
-
-#ifdef CONFIG_ISDN_PPP_VJ
-# include <net/slhc_vj.h>
-#endif
-
-#include <linux/ppp_defs.h>
-#include <linux/ppp-ioctl.h>
-
-#include <linux/isdn_ppp.h>
-#endif
-
-#ifdef CONFIG_ISDN_X25
-# include <linux/concap.h>
-#endif
-
-#include <linux/isdnif.h>
-
-#define ISDN_DRVIOCTL_MASK 0x7f /* Mask for Device-ioctl */
-
-/* Until now unused */
-#define ISDN_SERVICE_VOICE 1
-#define ISDN_SERVICE_AB 1<<1
-#define ISDN_SERVICE_X21 1<<2
-#define ISDN_SERVICE_G4 1<<3
-#define ISDN_SERVICE_BTX 1<<4
-#define ISDN_SERVICE_DFUE 1<<5
-#define ISDN_SERVICE_X25 1<<6
-#define ISDN_SERVICE_TTX 1<<7
-#define ISDN_SERVICE_MIXED 1<<8
-#define ISDN_SERVICE_FW 1<<9
-#define ISDN_SERVICE_GTEL 1<<10
-#define ISDN_SERVICE_BTXN 1<<11
-#define ISDN_SERVICE_BTEL 1<<12
-
-/* Macros checking plain usage */
-#define USG_NONE(x) ((x & ISDN_USAGE_MASK)==ISDN_USAGE_NONE)
-#define USG_RAW(x) ((x & ISDN_USAGE_MASK)==ISDN_USAGE_RAW)
-#define USG_MODEM(x) ((x & ISDN_USAGE_MASK)==ISDN_USAGE_MODEM)
-#define USG_VOICE(x) ((x & ISDN_USAGE_MASK)==ISDN_USAGE_VOICE)
-#define USG_NET(x) ((x & ISDN_USAGE_MASK)==ISDN_USAGE_NET)
-#define USG_FAX(x) ((x & ISDN_USAGE_MASK)==ISDN_USAGE_FAX)
-#define USG_OUTGOING(x) ((x & ISDN_USAGE_OUTGOING)==ISDN_USAGE_OUTGOING)
-#define USG_MODEMORVOICE(x) (((x & ISDN_USAGE_MASK)==ISDN_USAGE_MODEM) || \
- ((x & ISDN_USAGE_MASK)==ISDN_USAGE_VOICE) )
-
-/* Timer-delays and scheduling-flags */
-#define ISDN_TIMER_RES 4 /* Main Timer-Resolution */
-#define ISDN_TIMER_02SEC (HZ/ISDN_TIMER_RES/5) /* Slow-Timer1 .2 sec */
-#define ISDN_TIMER_1SEC (HZ/ISDN_TIMER_RES) /* Slow-Timer2 1 sec */
-#define ISDN_TIMER_RINGING 5 /* tty RINGs = ISDN_TIMER_1SEC * this factor */
-#define ISDN_TIMER_KEEPINT 10 /* Cisco-Keepalive = ISDN_TIMER_1SEC * this factor */
-#define ISDN_TIMER_MODEMREAD 1
-#define ISDN_TIMER_MODEMPLUS 2
-#define ISDN_TIMER_MODEMRING 4
-#define ISDN_TIMER_MODEMXMIT 8
-#define ISDN_TIMER_NETDIAL 16
-#define ISDN_TIMER_NETHANGUP 32
-#define ISDN_TIMER_CARRIER 256 /* Wait for Carrier */
-#define ISDN_TIMER_FAST (ISDN_TIMER_MODEMREAD | ISDN_TIMER_MODEMPLUS | \
- ISDN_TIMER_MODEMXMIT)
-#define ISDN_TIMER_SLOW (ISDN_TIMER_MODEMRING | ISDN_TIMER_NETHANGUP | \
- ISDN_TIMER_NETDIAL | ISDN_TIMER_CARRIER)
-
-/* Timeout-Values for isdn_net_dial() */
-#define ISDN_TIMER_DTIMEOUT10 (10*HZ/(ISDN_TIMER_02SEC*(ISDN_TIMER_RES+1)))
-#define ISDN_TIMER_DTIMEOUT15 (15*HZ/(ISDN_TIMER_02SEC*(ISDN_TIMER_RES+1)))
-#define ISDN_TIMER_DTIMEOUT60 (60*HZ/(ISDN_TIMER_02SEC*(ISDN_TIMER_RES+1)))
-
-/* GLOBAL_FLAGS */
-#define ISDN_GLOBAL_STOPPED 1
-
-/*=================== Start of ip-over-ISDN stuff =========================*/
-
-/* Feature- and status-flags for a net-interface */
-#define ISDN_NET_CONNECTED 0x01 /* Bound to ISDN-Channel */
-#define ISDN_NET_SECURE 0x02 /* Accept calls from phonelist only */
-#define ISDN_NET_CALLBACK 0x04 /* activate callback */
-#define ISDN_NET_CBHUP 0x08 /* hangup before callback */
-#define ISDN_NET_CBOUT 0x10 /* remote machine does callback */
-
-#define ISDN_NET_MAGIC 0x49344C02 /* for paranoia-checking */
-
-/* Phone-list-element */
-typedef struct {
- void *next;
- char num[ISDN_MSNLEN];
-} isdn_net_phone;
-
-/*
- Principles when extending structures for generic encapsulation protocol
- ("concap") support:
- - Stuff which is hardware specific (here i4l-specific) goes in
- the netdev -> local structure (here: isdn_net_local)
- - Stuff which is encapsulation protocol specific goes in the structure
- which holds the linux device structure (here: isdn_net_device)
-*/
-
-/* Local interface-data */
-typedef struct isdn_net_local_s {
- ulong magic;
- struct net_device_stats stats; /* Ethernet Statistics */
- int isdn_device; /* Index to isdn-device */
- int isdn_channel; /* Index to isdn-channel */
- int ppp_slot; /* PPPD device slot number */
- int pre_device; /* Preselected isdn-device */
- int pre_channel; /* Preselected isdn-channel */
- int exclusive; /* If non-zero idx to reserved chan.*/
- int flags; /* Connection-flags */
- int dialretry; /* Counter for Dialout-retries */
- int dialmax; /* Max. Number of Dial-retries */
- int cbdelay; /* Delay before Callback starts */
- int dtimer; /* Timeout-counter for dialing */
- char msn[ISDN_MSNLEN]; /* MSNs/EAZs for this interface */
- u_char cbhup; /* Flag: Reject Call before Callback*/
- u_char dialstate; /* State for dialing */
- u_char p_encap; /* Packet encapsulation */
- /* 0 = Ethernet over ISDN */
- /* 1 = RAW-IP */
- /* 2 = IP with type field */
- u_char l2_proto; /* Layer-2-protocol */
- /* See ISDN_PROTO_L2..-constants in */
- /* isdnif.h */
- /* 0 = X75/LAPB with I-Frames */
- /* 1 = X75/LAPB with UI-Frames */
- /* 2 = X75/LAPB with BUI-Frames */
- /* 3 = HDLC */
- u_char l3_proto; /* Layer-3-protocol */
- /* See ISDN_PROTO_L3..-constants in */
- /* isdnif.h */
- /* 0 = Transparent */
- int huptimer; /* Timeout-counter for auto-hangup */
- int charge; /* Counter for charging units */
- ulong chargetime; /* Timer for Charging info */
- int hupflags; /* Flags for charge-unit-hangup: */
- /* bit0: chargeint is invalid */
- /* bit1: Getting charge-interval */
- /* bit2: Do charge-unit-hangup */
- /* bit3: Do hangup even on incoming */
- int outgoing; /* Flag: outgoing call */
- int onhtime; /* Time to keep link up */
- int chargeint; /* Interval between charge-infos */
- int onum; /* Flag: at least 1 outgoing number */
- int cps; /* current speed of this interface */
- int transcount; /* byte-counter for cps-calculation */
- int sqfull; /* Flag: netdev-queue overloaded */
- ulong sqfull_stamp; /* Start-Time of overload */
- ulong slavedelay; /* Dynamic bundling delaytime */
- int triggercps; /* BogoCPS needed for trigger slave */
- isdn_net_phone *phone[2]; /* List of remote-phonenumbers */
- /* phone[0] = Incoming Numbers */
- /* phone[1] = Outgoing Numbers */
- isdn_net_phone *dial; /* Pointer to dialed number */
- struct net_device *master; /* Ptr to Master device for slaves */
- struct net_device *slave; /* Ptr to Slave device for masters */
- struct isdn_net_local_s *next; /* Ptr to next link in bundle */
- struct isdn_net_local_s *last; /* Ptr to last link in bundle */
- struct isdn_net_dev_s *netdev; /* Ptr to netdev */
- struct sk_buff_head super_tx_queue; /* List of supervisory frames to */
- /* be transmitted asap */
- atomic_t frame_cnt; /* number of frames currently */
- /* queued in HL driver */
- /* Ptr to orig. hard_header_cache */
- spinlock_t xmit_lock; /* used to protect the xmit path of */
- /* a particular channel (including */
- /* the frame_cnt */
-
- int pppbind; /* ippp device for bindings */
- int dialtimeout; /* How long shall we try on dialing? (jiffies) */
- int dialwait; /* How long shall we wait after failed attempt? (jiffies) */
- ulong dialstarted; /* jiffies of first dialing-attempt */
- ulong dialwait_timer; /* jiffies of earliest next dialing-attempt */
- int huptimeout; /* How long will the connection be up? (seconds) */
-#ifdef CONFIG_ISDN_X25
- struct concap_device_ops *dops; /* callbacks used by encapsulator */
-#endif
- /* use an own struct for that in later versions */
- ulong cisco_myseq; /* Local keepalive seq. for Cisco */
- ulong cisco_mineseen; /* returned keepalive seq. from remote */
- ulong cisco_yourseq; /* Remote keepalive seq. for Cisco */
- int cisco_keepalive_period; /* keepalive period */
- ulong cisco_last_slarp_in; /* jiffie of last keepalive packet we received */
- char cisco_line_state; /* state of line according to keepalive packets */
- char cisco_debserint; /* debugging flag of cisco hdlc with slarp */
- struct timer_list cisco_timer;
- struct work_struct tqueue;
-} isdn_net_local;
-
-/* the interface itself */
-typedef struct isdn_net_dev_s {
- isdn_net_local *local;
- isdn_net_local *queue; /* circular list of all bundled
- channels, which are currently
- online */
- spinlock_t queue_lock; /* lock to protect queue */
- void *next; /* Pointer to next isdn-interface */
- struct net_device *dev; /* interface to upper levels */
-#ifdef CONFIG_ISDN_PPP
- ippp_bundle * pb; /* pointer to the common bundle structure
- * with the per-bundle data */
-#endif
-#ifdef CONFIG_ISDN_X25
- struct concap_proto *cprot; /* connection oriented encapsulation protocol */
-#endif
-
-} isdn_net_dev;
-
-/*===================== End of ip-over-ISDN stuff ===========================*/
-
-/*======================= Start of ISDN-tty stuff ===========================*/
-
-#define ISDN_ASYNC_MAGIC 0x49344C01 /* for paranoia-checking */
-#define ISDN_ASYNC_INITIALIZED 0x80000000 /* port was initialized */
-#define ISDN_ASYNC_CALLOUT_ACTIVE 0x40000000 /* Call out device active */
-#define ISDN_ASYNC_NORMAL_ACTIVE 0x20000000 /* Normal device active */
-#define ISDN_ASYNC_CLOSING 0x08000000 /* Serial port is closing */
-#define ISDN_ASYNC_CTS_FLOW 0x04000000 /* Do CTS flow control */
-#define ISDN_ASYNC_CHECK_CD 0x02000000 /* i.e., CLOCAL */
-#define ISDN_ASYNC_HUP_NOTIFY 0x0001 /* Notify tty on hangups/closes */
-#define ISDN_ASYNC_SESSION_LOCKOUT 0x0100 /* Lock cua opens on session */
-#define ISDN_ASYNC_PGRP_LOCKOUT 0x0200 /* Lock cua opens on pgrp */
-#define ISDN_ASYNC_CALLOUT_NOHUP 0x0400 /* No hangup for cui */
-#define ISDN_ASYNC_SPLIT_TERMIOS 0x0008 /* Sep. termios for dialin/out */
-#define ISDN_SERIAL_XMIT_SIZE 1024 /* Default bufsize for write */
-#define ISDN_SERIAL_XMIT_MAX 4000 /* Maximum bufsize for write */
-#define ISDN_SERIAL_TYPE_NORMAL 1
-#define ISDN_SERIAL_TYPE_CALLOUT 2
-
-#ifdef CONFIG_ISDN_AUDIO
-/* For using sk_buffs with audio we need some private variables
- * within each sk_buff. For this purpose, we declare a struct here,
- * and put it always at the private skb->cb data array. A few macros help
- * accessing the variables.
- */
-typedef struct _isdn_audio_data {
- unsigned short dle_count;
- unsigned char lock;
-} isdn_audio_data_t;
-
-#define ISDN_AUDIO_SKB_DLECOUNT(skb) (((isdn_audio_data_t *)&skb->cb[0])->dle_count)
-#define ISDN_AUDIO_SKB_LOCK(skb) (((isdn_audio_data_t *)&skb->cb[0])->lock)
-#endif
-
-/* Private data of AT-command-interpreter */
-typedef struct atemu {
- u_char profile[ISDN_MODEM_NUMREG]; /* Modem-Regs. Profile 0 */
- u_char mdmreg[ISDN_MODEM_NUMREG]; /* Modem-Registers */
- char pmsn[ISDN_MSNLEN]; /* EAZ/MSNs Profile 0 */
- char msn[ISDN_MSNLEN]; /* EAZ/MSN */
- char plmsn[ISDN_LMSNLEN]; /* Listening MSNs Profile 0 */
- char lmsn[ISDN_LMSNLEN]; /* Listening MSNs */
- char cpn[ISDN_MSNLEN]; /* CalledPartyNumber on incoming call */
- char connmsg[ISDN_CMSGLEN]; /* CONNECT-Msg from HL-Driver */
-#ifdef CONFIG_ISDN_AUDIO
- u_char vpar[10]; /* Voice-parameters */
- int lastDLE; /* Flag for voice-coding: DLE seen */
-#endif
- int mdmcmdl; /* Length of Modem-Commandbuffer */
- int pluscount; /* Counter for +++ sequence */
- u_long lastplus; /* Timestamp of last + */
- int carrierwait; /* Seconds of carrier waiting */
- char mdmcmd[255]; /* Modem-Commandbuffer */
- unsigned int charge; /* Charge units of current connection */
-} atemu;
-
-/* Private data (similar to async_struct in <linux/serial.h>) */
-typedef struct modem_info {
- int magic;
- struct module *owner;
- int flags; /* defined in tty.h */
- int x_char; /* xon/xoff character */
- int mcr; /* Modem control register */
- int msr; /* Modem status register */
- int lsr; /* Line status register */
- int line;
- int count; /* # of fd on device */
- int blocked_open; /* # of blocked opens */
- long session; /* Session of opening process */
- long pgrp; /* pgrp of opening process */
- int online; /* 1 = B-Channel is up, drop data */
- /* 2 = B-Channel is up, deliver d.*/
- int dialing; /* Dial in progress or ATA */
- int rcvsched; /* Receive needs schedule */
- int isdn_driver; /* Index to isdn-driver */
- int isdn_channel; /* Index to isdn-channel */
- int drv_index; /* Index to dev->usage */
- int ncarrier; /* Flag: schedule NO CARRIER */
- unsigned char last_cause[8]; /* Last cause message */
- unsigned char last_num[ISDN_MSNLEN];
- /* Last phone-number */
- unsigned char last_l2; /* Last layer-2 protocol */
- unsigned char last_si; /* Last service */
- unsigned char last_lhup; /* Last hangup local? */
- unsigned char last_dir; /* Last direction (in or out) */
- struct timer_list nc_timer; /* Timer for delayed NO CARRIER */
- int send_outstanding;/* # of outstanding send-requests */
- int xmit_size; /* max. # of chars in xmit_buf */
- int xmit_count; /* # of chars in xmit_buf */
- unsigned char *xmit_buf; /* transmit buffer */
- struct sk_buff_head xmit_queue; /* transmit queue */
- atomic_t xmit_lock; /* Semaphore for isdn_tty_write */
-#ifdef CONFIG_ISDN_AUDIO
- int vonline; /* Voice-channel status */
- /* Bit 0 = recording */
- /* Bit 1 = playback */
- /* Bit 2 = playback, DLE-ETX seen */
- struct sk_buff_head dtmf_queue; /* queue for dtmf results */
- void *adpcms; /* state for adpcm decompression */
- void *adpcmr; /* state for adpcm compression */
- void *dtmf_state; /* state for dtmf decoder */
- void *silence_state; /* state for silence detection */
-#endif
-#ifdef CONFIG_ISDN_TTY_FAX
- struct T30_s *fax; /* T30 Fax Group 3 data/interface */
- int faxonline; /* Fax-channel status */
-#endif
- struct tty_struct *tty; /* Pointer to corresponding tty */
- atemu emu; /* AT-emulator data */
- struct ktermios normal_termios; /* For saving termios structs */
- struct ktermios callout_termios;
- wait_queue_head_t open_wait, close_wait;
- spinlock_t readlock;
-} modem_info;
-
-#define ISDN_MODEM_WINSIZE 8
-
-/* Description of one ISDN-tty */
-typedef struct _isdn_modem {
- int refcount; /* Number of opens */
- struct tty_driver *tty_modem; /* tty-device */
- struct tty_struct *modem_table[ISDN_MAX_CHANNELS]; /* ?? copied from Orig */
- struct ktermios *modem_termios[ISDN_MAX_CHANNELS];
- struct ktermios *modem_termios_locked[ISDN_MAX_CHANNELS];
- modem_info info[ISDN_MAX_CHANNELS]; /* Private data */
-} isdn_modem_t;
-
-/*======================= End of ISDN-tty stuff ============================*/
-
-/*======================== Start of V.110 stuff ============================*/
-#define V110_BUFSIZE 1024
-
-typedef struct {
- int nbytes; /* 1 Matrixbyte -> nbytes in stream */
- int nbits; /* Number of used bits in streambyte */
- unsigned char key; /* Bitmask in stream eg. 11 (nbits=2) */
- int decodelen; /* Amount of data in decodebuf */
- int SyncInit; /* Number of sync frames to send */
- unsigned char *OnlineFrame; /* Precalculated V110 idle frame */
- unsigned char *OfflineFrame; /* Precalculated V110 sync Frame */
- int framelen; /* Length of frames */
- int skbuser; /* Number of unacked userdata skbs */
- int skbidle; /* Number of unacked idle/sync skbs */
- int introducer; /* Local vars for decoder */
- int dbit;
- unsigned char b;
- int skbres; /* space to reserve in outgoing skb */
- int maxsize; /* maxbufsize of lowlevel driver */
- unsigned char *encodebuf; /* temporary buffer for encoding */
- unsigned char decodebuf[V110_BUFSIZE]; /* incomplete V110 matrices */
-} isdn_v110_stream;
-
-/*========================= End of V.110 stuff =============================*/
-
-/*======================= Start of general stuff ===========================*/
-
-typedef struct {
- char *next;
- char *private;
-} infostruct;
-
-#define DRV_FLAG_RUNNING 1
-#define DRV_FLAG_REJBUS 2
-#define DRV_FLAG_LOADED 4
-
-/* Description of hardware-level-driver */
-typedef struct _isdn_driver {
- ulong online; /* Channel-Online flags */
- ulong flags; /* Misc driver Flags */
- int locks; /* Number of locks for this driver */
- int channels; /* Number of channels */
- wait_queue_head_t st_waitq; /* Wait-Queue for status-read's */
- int maxbufsize; /* Maximum Buffersize supported */
- unsigned long pktcount; /* Until now: unused */
- int stavail; /* Chars avail on Status-device */
- isdn_if *interface; /* Interface to driver */
- int *rcverr; /* Error-counters for B-Ch.-receive */
- int *rcvcount; /* Byte-counters for B-Ch.-receive */
-#ifdef CONFIG_ISDN_AUDIO
- unsigned long DLEflag; /* Flags: Insert DLE at next read */
-#endif
- struct sk_buff_head *rpqueue; /* Pointers to start of Rcv-Queue */
- wait_queue_head_t *rcv_waitq; /* Wait-Queues for B-Channel-Reads */
- wait_queue_head_t *snd_waitq; /* Wait-Queue for B-Channel-Send's */
- char msn2eaz[10][ISDN_MSNLEN]; /* Mapping-Table MSN->EAZ */
-} isdn_driver_t;
-
-/* Main driver-data */
-typedef struct isdn_devt {
- struct module *owner;
- spinlock_t lock;
- unsigned short flags; /* Bitmapped Flags: */
- int drivers; /* Current number of drivers */
- int channels; /* Current number of channels */
- int net_verbose; /* Verbose-Flag */
- int modempoll; /* Flag: tty-read active */
- spinlock_t timerlock;
- int tflags; /* Timer-Flags: */
- /* see ISDN_TIMER_..defines */
- int global_flags;
- infostruct *infochain; /* List of open info-devs. */
- wait_queue_head_t info_waitq; /* Wait-Queue for isdninfo */
- struct timer_list timer; /* Misc.-function Timer */
- int chanmap[ISDN_MAX_CHANNELS]; /* Map minor->device-channel */
- int drvmap[ISDN_MAX_CHANNELS]; /* Map minor->driver-index */
- int usage[ISDN_MAX_CHANNELS]; /* Used by tty/ip/voice */
- char num[ISDN_MAX_CHANNELS][ISDN_MSNLEN];
- /* Remote number of active ch.*/
- int m_idx[ISDN_MAX_CHANNELS]; /* Index for mdm.... */
- isdn_driver_t *drv[ISDN_MAX_DRIVERS]; /* Array of drivers */
- isdn_net_dev *netdev; /* Linked list of net-if's */
- char drvid[ISDN_MAX_DRIVERS][20];/* Driver-ID */
- struct task_struct *profd; /* For iprofd */
- isdn_modem_t mdm; /* tty-driver-data */
- isdn_net_dev *rx_netdev[ISDN_MAX_CHANNELS]; /* rx netdev-pointers */
- isdn_net_dev *st_netdev[ISDN_MAX_CHANNELS]; /* stat netdev-pointers */
- ulong ibytes[ISDN_MAX_CHANNELS]; /* Statistics incoming bytes */
- ulong obytes[ISDN_MAX_CHANNELS]; /* Statistics outgoing bytes */
- int v110emu[ISDN_MAX_CHANNELS]; /* V.110 emulator-mode 0=none */
- atomic_t v110use[ISDN_MAX_CHANNELS]; /* Usage-Semaphore for stream */
- isdn_v110_stream *v110[ISDN_MAX_CHANNELS]; /* V.110 private data */
- struct mutex mtx; /* serialize list access*/
- unsigned long global_features;
-} isdn_dev;
-
-extern isdn_dev *dev;
-
-
-#endif /* __KERNEL__ */
-
-#endif /* __ISDN_H__ */
diff --git a/ANDROID_3.4.5/include/linux/isdn/Kbuild b/ANDROID_3.4.5/include/linux/isdn/Kbuild
deleted file mode 100644
index 991cdb29..00000000
--- a/ANDROID_3.4.5/include/linux/isdn/Kbuild
+++ /dev/null
@@ -1 +0,0 @@
-header-y += capicmd.h
diff --git a/ANDROID_3.4.5/include/linux/isdn/capicmd.h b/ANDROID_3.4.5/include/linux/isdn/capicmd.h
deleted file mode 100644
index b58635f7..00000000
--- a/ANDROID_3.4.5/include/linux/isdn/capicmd.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/* $Id: capicmd.h,v 1.2.6.2 2001/09/23 22:24:33 kai Exp $
- *
- * CAPI 2.0 Interface for Linux
- *
- * Copyright 1997 by Carsten Paeth <calle@calle.de>
- *
- * This software may be used and distributed according to the terms
- * of the GNU General Public License, incorporated herein by reference.
- *
- */
-
-#ifndef __CAPICMD_H__
-#define __CAPICMD_H__
-
-#define CAPI_MSG_BASELEN 8
-#define CAPI_DATA_B3_REQ_LEN (CAPI_MSG_BASELEN+4+4+2+2+2)
-#define CAPI_DATA_B3_RESP_LEN (CAPI_MSG_BASELEN+4+2)
-
-/*----- CAPI commands -----*/
-#define CAPI_ALERT 0x01
-#define CAPI_CONNECT 0x02
-#define CAPI_CONNECT_ACTIVE 0x03
-#define CAPI_CONNECT_B3_ACTIVE 0x83
-#define CAPI_CONNECT_B3 0x82
-#define CAPI_CONNECT_B3_T90_ACTIVE 0x88
-#define CAPI_DATA_B3 0x86
-#define CAPI_DISCONNECT_B3 0x84
-#define CAPI_DISCONNECT 0x04
-#define CAPI_FACILITY 0x80
-#define CAPI_INFO 0x08
-#define CAPI_LISTEN 0x05
-#define CAPI_MANUFACTURER 0xff
-#define CAPI_RESET_B3 0x87
-#define CAPI_SELECT_B_PROTOCOL 0x41
-
-/*----- CAPI subcommands -----*/
-
-#define CAPI_REQ 0x80
-#define CAPI_CONF 0x81
-#define CAPI_IND 0x82
-#define CAPI_RESP 0x83
-
-/*----- CAPI combined commands -----*/
-
-#define CAPICMD(cmd,subcmd) (((cmd)<<8)|(subcmd))
-
-#define CAPI_DISCONNECT_REQ CAPICMD(CAPI_DISCONNECT,CAPI_REQ)
-#define CAPI_DISCONNECT_CONF CAPICMD(CAPI_DISCONNECT,CAPI_CONF)
-#define CAPI_DISCONNECT_IND CAPICMD(CAPI_DISCONNECT,CAPI_IND)
-#define CAPI_DISCONNECT_RESP CAPICMD(CAPI_DISCONNECT,CAPI_RESP)
-
-#define CAPI_ALERT_REQ CAPICMD(CAPI_ALERT,CAPI_REQ)
-#define CAPI_ALERT_CONF CAPICMD(CAPI_ALERT,CAPI_CONF)
-
-#define CAPI_CONNECT_REQ CAPICMD(CAPI_CONNECT,CAPI_REQ)
-#define CAPI_CONNECT_CONF CAPICMD(CAPI_CONNECT,CAPI_CONF)
-#define CAPI_CONNECT_IND CAPICMD(CAPI_CONNECT,CAPI_IND)
-#define CAPI_CONNECT_RESP CAPICMD(CAPI_CONNECT,CAPI_RESP)
-
-#define CAPI_CONNECT_ACTIVE_REQ CAPICMD(CAPI_CONNECT_ACTIVE,CAPI_REQ)
-#define CAPI_CONNECT_ACTIVE_CONF CAPICMD(CAPI_CONNECT_ACTIVE,CAPI_CONF)
-#define CAPI_CONNECT_ACTIVE_IND CAPICMD(CAPI_CONNECT_ACTIVE,CAPI_IND)
-#define CAPI_CONNECT_ACTIVE_RESP CAPICMD(CAPI_CONNECT_ACTIVE,CAPI_RESP)
-
-#define CAPI_SELECT_B_PROTOCOL_REQ CAPICMD(CAPI_SELECT_B_PROTOCOL,CAPI_REQ)
-#define CAPI_SELECT_B_PROTOCOL_CONF CAPICMD(CAPI_SELECT_B_PROTOCOL,CAPI_CONF)
-
-#define CAPI_CONNECT_B3_ACTIVE_REQ CAPICMD(CAPI_CONNECT_B3_ACTIVE,CAPI_REQ)
-#define CAPI_CONNECT_B3_ACTIVE_CONF CAPICMD(CAPI_CONNECT_B3_ACTIVE,CAPI_CONF)
-#define CAPI_CONNECT_B3_ACTIVE_IND CAPICMD(CAPI_CONNECT_B3_ACTIVE,CAPI_IND)
-#define CAPI_CONNECT_B3_ACTIVE_RESP CAPICMD(CAPI_CONNECT_B3_ACTIVE,CAPI_RESP)
-
-#define CAPI_CONNECT_B3_REQ CAPICMD(CAPI_CONNECT_B3,CAPI_REQ)
-#define CAPI_CONNECT_B3_CONF CAPICMD(CAPI_CONNECT_B3,CAPI_CONF)
-#define CAPI_CONNECT_B3_IND CAPICMD(CAPI_CONNECT_B3,CAPI_IND)
-#define CAPI_CONNECT_B3_RESP CAPICMD(CAPI_CONNECT_B3,CAPI_RESP)
-
-
-#define CAPI_CONNECT_B3_T90_ACTIVE_IND CAPICMD(CAPI_CONNECT_B3_T90_ACTIVE,CAPI_IND)
-#define CAPI_CONNECT_B3_T90_ACTIVE_RESP CAPICMD(CAPI_CONNECT_B3_T90_ACTIVE,CAPI_RESP)
-
-#define CAPI_DATA_B3_REQ CAPICMD(CAPI_DATA_B3,CAPI_REQ)
-#define CAPI_DATA_B3_CONF CAPICMD(CAPI_DATA_B3,CAPI_CONF)
-#define CAPI_DATA_B3_IND CAPICMD(CAPI_DATA_B3,CAPI_IND)
-#define CAPI_DATA_B3_RESP CAPICMD(CAPI_DATA_B3,CAPI_RESP)
-
-#define CAPI_DISCONNECT_B3_REQ CAPICMD(CAPI_DISCONNECT_B3,CAPI_REQ)
-#define CAPI_DISCONNECT_B3_CONF CAPICMD(CAPI_DISCONNECT_B3,CAPI_CONF)
-#define CAPI_DISCONNECT_B3_IND CAPICMD(CAPI_DISCONNECT_B3,CAPI_IND)
-#define CAPI_DISCONNECT_B3_RESP CAPICMD(CAPI_DISCONNECT_B3,CAPI_RESP)
-
-#define CAPI_RESET_B3_REQ CAPICMD(CAPI_RESET_B3,CAPI_REQ)
-#define CAPI_RESET_B3_CONF CAPICMD(CAPI_RESET_B3,CAPI_CONF)
-#define CAPI_RESET_B3_IND CAPICMD(CAPI_RESET_B3,CAPI_IND)
-#define CAPI_RESET_B3_RESP CAPICMD(CAPI_RESET_B3,CAPI_RESP)
-
-#define CAPI_LISTEN_REQ CAPICMD(CAPI_LISTEN,CAPI_REQ)
-#define CAPI_LISTEN_CONF CAPICMD(CAPI_LISTEN,CAPI_CONF)
-
-#define CAPI_MANUFACTURER_REQ CAPICMD(CAPI_MANUFACTURER,CAPI_REQ)
-#define CAPI_MANUFACTURER_CONF CAPICMD(CAPI_MANUFACTURER,CAPI_CONF)
-#define CAPI_MANUFACTURER_IND CAPICMD(CAPI_MANUFACTURER,CAPI_IND)
-#define CAPI_MANUFACTURER_RESP CAPICMD(CAPI_MANUFACTURER,CAPI_RESP)
-
-#define CAPI_FACILITY_REQ CAPICMD(CAPI_FACILITY,CAPI_REQ)
-#define CAPI_FACILITY_CONF CAPICMD(CAPI_FACILITY,CAPI_CONF)
-#define CAPI_FACILITY_IND CAPICMD(CAPI_FACILITY,CAPI_IND)
-#define CAPI_FACILITY_RESP CAPICMD(CAPI_FACILITY,CAPI_RESP)
-
-#define CAPI_INFO_REQ CAPICMD(CAPI_INFO,CAPI_REQ)
-#define CAPI_INFO_CONF CAPICMD(CAPI_INFO,CAPI_CONF)
-#define CAPI_INFO_IND CAPICMD(CAPI_INFO,CAPI_IND)
-#define CAPI_INFO_RESP CAPICMD(CAPI_INFO,CAPI_RESP)
-
-#endif /* __CAPICMD_H__ */
diff --git a/ANDROID_3.4.5/include/linux/isdn/capilli.h b/ANDROID_3.4.5/include/linux/isdn/capilli.h
deleted file mode 100644
index 11b57c48..00000000
--- a/ANDROID_3.4.5/include/linux/isdn/capilli.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/* $Id: capilli.h,v 1.1.2.2 2004/01/16 21:09:27 keil Exp $
- *
- * Kernel CAPI 2.0 Driver Interface for Linux
- *
- * Copyright 1999 by Carsten Paeth <calle@calle.de>
- *
- * This software may be used and distributed according to the terms
- * of the GNU General Public License, incorporated herein by reference.
- *
- */
-
-#ifndef __CAPILLI_H__
-#define __CAPILLI_H__
-
-#include <linux/kernel.h>
-#include <linux/list.h>
-#include <linux/capi.h>
-#include <linux/kernelcapi.h>
-
-typedef struct capiloaddatapart {
- int user; /* data in userspace ? */
- int len;
- unsigned char *data;
-} capiloaddatapart;
-
-typedef struct capiloaddata {
- capiloaddatapart firmware;
- capiloaddatapart configuration;
-} capiloaddata;
-
-typedef struct capicardparams {
- unsigned int port;
- unsigned irq;
- int cardtype;
- int cardnr;
- unsigned int membase;
-} capicardparams;
-
-struct capi_ctr {
- /* filled in before calling attach_capi_ctr */
- struct module *owner;
- void *driverdata; /* driver specific */
- char name[32]; /* name of controller */
- char *driver_name; /* name of driver */
- int (*load_firmware)(struct capi_ctr *, capiloaddata *);
- void (*reset_ctr)(struct capi_ctr *);
- void (*register_appl)(struct capi_ctr *, u16 appl,
- capi_register_params *);
- void (*release_appl)(struct capi_ctr *, u16 appl);
- u16 (*send_message)(struct capi_ctr *, struct sk_buff *skb);
-
- char *(*procinfo)(struct capi_ctr *);
- const struct file_operations *proc_fops;
-
- /* filled in before calling ready callback */
- u8 manu[CAPI_MANUFACTURER_LEN]; /* CAPI_GET_MANUFACTURER */
- capi_version version; /* CAPI_GET_VERSION */
- capi_profile profile; /* CAPI_GET_PROFILE */
- u8 serial[CAPI_SERIAL_LEN]; /* CAPI_GET_SERIAL */
-
- /* management information for kcapi */
-
- unsigned long nrecvctlpkt;
- unsigned long nrecvdatapkt;
- unsigned long nsentctlpkt;
- unsigned long nsentdatapkt;
-
- int cnr; /* controller number */
- unsigned short state; /* controller state */
- int blocked; /* output blocked */
- int traceflag; /* capi trace */
- wait_queue_head_t state_wait_queue;
-
- struct proc_dir_entry *procent;
- char procfn[128];
-};
-
-int attach_capi_ctr(struct capi_ctr *);
-int detach_capi_ctr(struct capi_ctr *);
-
-void capi_ctr_ready(struct capi_ctr * card);
-void capi_ctr_down(struct capi_ctr * card);
-void capi_ctr_suspend_output(struct capi_ctr * card);
-void capi_ctr_resume_output(struct capi_ctr * card);
-void capi_ctr_handle_message(struct capi_ctr * card, u16 appl, struct sk_buff *skb);
-
-// ---------------------------------------------------------------------------
-// needed for AVM capi drivers
-
-struct capi_driver {
- char name[32]; /* driver name */
- char revision[32];
-
- int (*add_card)(struct capi_driver *driver, capicardparams *data);
-
- /* management information for kcapi */
- struct list_head list;
-};
-
-void register_capi_driver(struct capi_driver *driver);
-void unregister_capi_driver(struct capi_driver *driver);
-
-// ---------------------------------------------------------------------------
-// library functions for use by hardware controller drivers
-
-void capilib_new_ncci(struct list_head *head, u16 applid, u32 ncci, u32 winsize);
-void capilib_free_ncci(struct list_head *head, u16 applid, u32 ncci);
-void capilib_release_appl(struct list_head *head, u16 applid);
-void capilib_release(struct list_head *head);
-void capilib_data_b3_conf(struct list_head *head, u16 applid, u32 ncci, u16 msgid);
-u16 capilib_data_b3_req(struct list_head *head, u16 applid, u32 ncci, u16 msgid);
-
-#endif /* __CAPILLI_H__ */
diff --git a/ANDROID_3.4.5/include/linux/isdn/capiutil.h b/ANDROID_3.4.5/include/linux/isdn/capiutil.h
deleted file mode 100644
index 5a52f2c9..00000000
--- a/ANDROID_3.4.5/include/linux/isdn/capiutil.h
+++ /dev/null
@@ -1,521 +0,0 @@
-/* $Id: capiutil.h,v 1.5.6.2 2001/09/23 22:24:33 kai Exp $
- *
- * CAPI 2.0 defines & types
- *
- * From CAPI 2.0 Development Kit AVM 1995 (msg.c)
- * Rewritten for Linux 1996 by Carsten Paeth <calle@calle.de>
- *
- * This software may be used and distributed according to the terms
- * of the GNU General Public License, incorporated herein by reference.
- *
- */
-
-#ifndef __CAPIUTIL_H__
-#define __CAPIUTIL_H__
-
-#include <asm/types.h>
-
-#define CAPIMSG_BASELEN 8
-#define CAPIMSG_U8(m, off) (m[off])
-#define CAPIMSG_U16(m, off) (m[off]|(m[(off)+1]<<8))
-#define CAPIMSG_U32(m, off) (m[off]|(m[(off)+1]<<8)|(m[(off)+2]<<16)|(m[(off)+3]<<24))
-#define CAPIMSG_LEN(m) CAPIMSG_U16(m,0)
-#define CAPIMSG_APPID(m) CAPIMSG_U16(m,2)
-#define CAPIMSG_COMMAND(m) CAPIMSG_U8(m,4)
-#define CAPIMSG_SUBCOMMAND(m) CAPIMSG_U8(m,5)
-#define CAPIMSG_CMD(m) (((m[4])<<8)|(m[5]))
-#define CAPIMSG_MSGID(m) CAPIMSG_U16(m,6)
-#define CAPIMSG_CONTROLLER(m) (m[8] & 0x7f)
-#define CAPIMSG_CONTROL(m) CAPIMSG_U32(m, 8)
-#define CAPIMSG_NCCI(m) CAPIMSG_CONTROL(m)
-#define CAPIMSG_DATALEN(m) CAPIMSG_U16(m,16) /* DATA_B3_REQ */
-
-static inline void capimsg_setu8(void *m, int off, __u8 val)
-{
- ((__u8 *)m)[off] = val;
-}
-
-static inline void capimsg_setu16(void *m, int off, __u16 val)
-{
- ((__u8 *)m)[off] = val & 0xff;
- ((__u8 *)m)[off+1] = (val >> 8) & 0xff;
-}
-
-static inline void capimsg_setu32(void *m, int off, __u32 val)
-{
- ((__u8 *)m)[off] = val & 0xff;
- ((__u8 *)m)[off+1] = (val >> 8) & 0xff;
- ((__u8 *)m)[off+2] = (val >> 16) & 0xff;
- ((__u8 *)m)[off+3] = (val >> 24) & 0xff;
-}
-
-#define CAPIMSG_SETLEN(m, len) capimsg_setu16(m, 0, len)
-#define CAPIMSG_SETAPPID(m, applid) capimsg_setu16(m, 2, applid)
-#define CAPIMSG_SETCOMMAND(m,cmd) capimsg_setu8(m, 4, cmd)
-#define CAPIMSG_SETSUBCOMMAND(m, cmd) capimsg_setu8(m, 5, cmd)
-#define CAPIMSG_SETMSGID(m, msgid) capimsg_setu16(m, 6, msgid)
-#define CAPIMSG_SETCONTROL(m, contr) capimsg_setu32(m, 8, contr)
-#define CAPIMSG_SETDATALEN(m, len) capimsg_setu16(m, 16, len)
-
-/*----- basic-type definitions -----*/
-
-typedef __u8 *_cstruct;
-
-typedef enum {
- CAPI_COMPOSE,
- CAPI_DEFAULT
-} _cmstruct;
-
-/*
- The _cmsg structure contains all possible CAPI 2.0 parameter.
- All parameters are stored here first. The function CAPI_CMSG_2_MESSAGE
- assembles the parameter and builds CAPI2.0 conform messages.
- CAPI_MESSAGE_2_CMSG disassembles CAPI 2.0 messages and stores the
- parameter in the _cmsg structure
- */
-
-typedef struct {
- /* Header */
- __u16 ApplId;
- __u8 Command;
- __u8 Subcommand;
- __u16 Messagenumber;
-
- /* Parameter */
- union {
- __u32 adrController;
- __u32 adrPLCI;
- __u32 adrNCCI;
- } adr;
-
- _cmstruct AdditionalInfo;
- _cstruct B1configuration;
- __u16 B1protocol;
- _cstruct B2configuration;
- __u16 B2protocol;
- _cstruct B3configuration;
- __u16 B3protocol;
- _cstruct BC;
- _cstruct BChannelinformation;
- _cmstruct BProtocol;
- _cstruct CalledPartyNumber;
- _cstruct CalledPartySubaddress;
- _cstruct CallingPartyNumber;
- _cstruct CallingPartySubaddress;
- __u32 CIPmask;
- __u32 CIPmask2;
- __u16 CIPValue;
- __u32 Class;
- _cstruct ConnectedNumber;
- _cstruct ConnectedSubaddress;
- __u32 Data;
- __u16 DataHandle;
- __u16 DataLength;
- _cstruct FacilityConfirmationParameter;
- _cstruct Facilitydataarray;
- _cstruct FacilityIndicationParameter;
- _cstruct FacilityRequestParameter;
- __u16 FacilitySelector;
- __u16 Flags;
- __u32 Function;
- _cstruct HLC;
- __u16 Info;
- _cstruct InfoElement;
- __u32 InfoMask;
- __u16 InfoNumber;
- _cstruct Keypadfacility;
- _cstruct LLC;
- _cstruct ManuData;
- __u32 ManuID;
- _cstruct NCPI;
- __u16 Reason;
- __u16 Reason_B3;
- __u16 Reject;
- _cstruct Useruserdata;
-
- /* intern */
- unsigned l, p;
- unsigned char *par;
- __u8 *m;
-
- /* buffer to construct message */
- __u8 buf[180];
-
-} _cmsg;
-
-/*
- * capi_cmsg2message() assembles the parameter from _cmsg to a CAPI 2.0
- * conform message
- */
-unsigned capi_cmsg2message(_cmsg * cmsg, __u8 * msg);
-
-/*
- * capi_message2cmsg disassembles a CAPI message an writes the parameter
- * into _cmsg for easy access
- */
-unsigned capi_message2cmsg(_cmsg * cmsg, __u8 * msg);
-
-/*
- * capi_cmsg_header() fills the _cmsg structure with default values, so only
- * parameter with non default values must be changed before sending the
- * message.
- */
-unsigned capi_cmsg_header(_cmsg * cmsg, __u16 _ApplId,
- __u8 _Command, __u8 _Subcommand,
- __u16 _Messagenumber, __u32 _Controller);
-
-/*
- * capi_info2str generated a readable string for Capi2.0 reasons.
- */
-char *capi_info2str(__u16 reason);
-
-/*-----------------------------------------------------------------------*/
-
-/*
- * Debugging / Tracing functions
- */
-
-char *capi_cmd2str(__u8 cmd, __u8 subcmd);
-
-typedef struct {
- u_char *buf;
- u_char *p;
- size_t size;
- size_t pos;
-} _cdebbuf;
-
-#define CDEBUG_SIZE 1024
-#define CDEBUG_GSIZE 4096
-
-void cdebbuf_free(_cdebbuf *cdb);
-int cdebug_init(void);
-void cdebug_exit(void);
-
-_cdebbuf *capi_cmsg2str(_cmsg *cmsg);
-_cdebbuf *capi_message2str(__u8 *msg);
-
-/*-----------------------------------------------------------------------*/
-
-static inline void capi_cmsg_answer(_cmsg * cmsg)
-{
- cmsg->Subcommand |= 0x01;
-}
-
-/*-----------------------------------------------------------------------*/
-
-static inline void capi_fill_CONNECT_B3_REQ(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber,
- __u32 adr,
- _cstruct NCPI)
-{
- capi_cmsg_header(cmsg, ApplId, 0x82, 0x80, Messagenumber, adr);
- cmsg->NCPI = NCPI;
-}
-
-static inline void capi_fill_FACILITY_REQ(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber,
- __u32 adr,
- __u16 FacilitySelector,
- _cstruct FacilityRequestParameter)
-{
- capi_cmsg_header(cmsg, ApplId, 0x80, 0x80, Messagenumber, adr);
- cmsg->FacilitySelector = FacilitySelector;
- cmsg->FacilityRequestParameter = FacilityRequestParameter;
-}
-
-static inline void capi_fill_INFO_REQ(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber,
- __u32 adr,
- _cstruct CalledPartyNumber,
- _cstruct BChannelinformation,
- _cstruct Keypadfacility,
- _cstruct Useruserdata,
- _cstruct Facilitydataarray)
-{
- capi_cmsg_header(cmsg, ApplId, 0x08, 0x80, Messagenumber, adr);
- cmsg->CalledPartyNumber = CalledPartyNumber;
- cmsg->BChannelinformation = BChannelinformation;
- cmsg->Keypadfacility = Keypadfacility;
- cmsg->Useruserdata = Useruserdata;
- cmsg->Facilitydataarray = Facilitydataarray;
-}
-
-static inline void capi_fill_LISTEN_REQ(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber,
- __u32 adr,
- __u32 InfoMask,
- __u32 CIPmask,
- __u32 CIPmask2,
- _cstruct CallingPartyNumber,
- _cstruct CallingPartySubaddress)
-{
- capi_cmsg_header(cmsg, ApplId, 0x05, 0x80, Messagenumber, adr);
- cmsg->InfoMask = InfoMask;
- cmsg->CIPmask = CIPmask;
- cmsg->CIPmask2 = CIPmask2;
- cmsg->CallingPartyNumber = CallingPartyNumber;
- cmsg->CallingPartySubaddress = CallingPartySubaddress;
-}
-
-static inline void capi_fill_ALERT_REQ(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber,
- __u32 adr,
- _cstruct BChannelinformation,
- _cstruct Keypadfacility,
- _cstruct Useruserdata,
- _cstruct Facilitydataarray)
-{
- capi_cmsg_header(cmsg, ApplId, 0x01, 0x80, Messagenumber, adr);
- cmsg->BChannelinformation = BChannelinformation;
- cmsg->Keypadfacility = Keypadfacility;
- cmsg->Useruserdata = Useruserdata;
- cmsg->Facilitydataarray = Facilitydataarray;
-}
-
-static inline void capi_fill_CONNECT_REQ(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber,
- __u32 adr,
- __u16 CIPValue,
- _cstruct CalledPartyNumber,
- _cstruct CallingPartyNumber,
- _cstruct CalledPartySubaddress,
- _cstruct CallingPartySubaddress,
- __u16 B1protocol,
- __u16 B2protocol,
- __u16 B3protocol,
- _cstruct B1configuration,
- _cstruct B2configuration,
- _cstruct B3configuration,
- _cstruct BC,
- _cstruct LLC,
- _cstruct HLC,
- _cstruct BChannelinformation,
- _cstruct Keypadfacility,
- _cstruct Useruserdata,
- _cstruct Facilitydataarray)
-{
-
- capi_cmsg_header(cmsg, ApplId, 0x02, 0x80, Messagenumber, adr);
- cmsg->CIPValue = CIPValue;
- cmsg->CalledPartyNumber = CalledPartyNumber;
- cmsg->CallingPartyNumber = CallingPartyNumber;
- cmsg->CalledPartySubaddress = CalledPartySubaddress;
- cmsg->CallingPartySubaddress = CallingPartySubaddress;
- cmsg->B1protocol = B1protocol;
- cmsg->B2protocol = B2protocol;
- cmsg->B3protocol = B3protocol;
- cmsg->B1configuration = B1configuration;
- cmsg->B2configuration = B2configuration;
- cmsg->B3configuration = B3configuration;
- cmsg->BC = BC;
- cmsg->LLC = LLC;
- cmsg->HLC = HLC;
- cmsg->BChannelinformation = BChannelinformation;
- cmsg->Keypadfacility = Keypadfacility;
- cmsg->Useruserdata = Useruserdata;
- cmsg->Facilitydataarray = Facilitydataarray;
-}
-
-static inline void capi_fill_DATA_B3_REQ(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber,
- __u32 adr,
- __u32 Data,
- __u16 DataLength,
- __u16 DataHandle,
- __u16 Flags)
-{
-
- capi_cmsg_header(cmsg, ApplId, 0x86, 0x80, Messagenumber, adr);
- cmsg->Data = Data;
- cmsg->DataLength = DataLength;
- cmsg->DataHandle = DataHandle;
- cmsg->Flags = Flags;
-}
-
-static inline void capi_fill_DISCONNECT_REQ(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber,
- __u32 adr,
- _cstruct BChannelinformation,
- _cstruct Keypadfacility,
- _cstruct Useruserdata,
- _cstruct Facilitydataarray)
-{
-
- capi_cmsg_header(cmsg, ApplId, 0x04, 0x80, Messagenumber, adr);
- cmsg->BChannelinformation = BChannelinformation;
- cmsg->Keypadfacility = Keypadfacility;
- cmsg->Useruserdata = Useruserdata;
- cmsg->Facilitydataarray = Facilitydataarray;
-}
-
-static inline void capi_fill_DISCONNECT_B3_REQ(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber,
- __u32 adr,
- _cstruct NCPI)
-{
-
- capi_cmsg_header(cmsg, ApplId, 0x84, 0x80, Messagenumber, adr);
- cmsg->NCPI = NCPI;
-}
-
-static inline void capi_fill_MANUFACTURER_REQ(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber,
- __u32 adr,
- __u32 ManuID,
- __u32 Class,
- __u32 Function,
- _cstruct ManuData)
-{
-
- capi_cmsg_header(cmsg, ApplId, 0xff, 0x80, Messagenumber, adr);
- cmsg->ManuID = ManuID;
- cmsg->Class = Class;
- cmsg->Function = Function;
- cmsg->ManuData = ManuData;
-}
-
-static inline void capi_fill_RESET_B3_REQ(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber,
- __u32 adr,
- _cstruct NCPI)
-{
-
- capi_cmsg_header(cmsg, ApplId, 0x87, 0x80, Messagenumber, adr);
- cmsg->NCPI = NCPI;
-}
-
-static inline void capi_fill_SELECT_B_PROTOCOL_REQ(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber,
- __u32 adr,
- __u16 B1protocol,
- __u16 B2protocol,
- __u16 B3protocol,
- _cstruct B1configuration,
- _cstruct B2configuration,
- _cstruct B3configuration)
-{
-
- capi_cmsg_header(cmsg, ApplId, 0x41, 0x80, Messagenumber, adr);
- cmsg->B1protocol = B1protocol;
- cmsg->B2protocol = B2protocol;
- cmsg->B3protocol = B3protocol;
- cmsg->B1configuration = B1configuration;
- cmsg->B2configuration = B2configuration;
- cmsg->B3configuration = B3configuration;
-}
-
-static inline void capi_fill_CONNECT_RESP(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber,
- __u32 adr,
- __u16 Reject,
- __u16 B1protocol,
- __u16 B2protocol,
- __u16 B3protocol,
- _cstruct B1configuration,
- _cstruct B2configuration,
- _cstruct B3configuration,
- _cstruct ConnectedNumber,
- _cstruct ConnectedSubaddress,
- _cstruct LLC,
- _cstruct BChannelinformation,
- _cstruct Keypadfacility,
- _cstruct Useruserdata,
- _cstruct Facilitydataarray)
-{
- capi_cmsg_header(cmsg, ApplId, 0x02, 0x83, Messagenumber, adr);
- cmsg->Reject = Reject;
- cmsg->B1protocol = B1protocol;
- cmsg->B2protocol = B2protocol;
- cmsg->B3protocol = B3protocol;
- cmsg->B1configuration = B1configuration;
- cmsg->B2configuration = B2configuration;
- cmsg->B3configuration = B3configuration;
- cmsg->ConnectedNumber = ConnectedNumber;
- cmsg->ConnectedSubaddress = ConnectedSubaddress;
- cmsg->LLC = LLC;
- cmsg->BChannelinformation = BChannelinformation;
- cmsg->Keypadfacility = Keypadfacility;
- cmsg->Useruserdata = Useruserdata;
- cmsg->Facilitydataarray = Facilitydataarray;
-}
-
-static inline void capi_fill_CONNECT_ACTIVE_RESP(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber,
- __u32 adr)
-{
-
- capi_cmsg_header(cmsg, ApplId, 0x03, 0x83, Messagenumber, adr);
-}
-
-static inline void capi_fill_CONNECT_B3_ACTIVE_RESP(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber,
- __u32 adr)
-{
-
- capi_cmsg_header(cmsg, ApplId, 0x83, 0x83, Messagenumber, adr);
-}
-
-static inline void capi_fill_CONNECT_B3_RESP(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber,
- __u32 adr,
- __u16 Reject,
- _cstruct NCPI)
-{
- capi_cmsg_header(cmsg, ApplId, 0x82, 0x83, Messagenumber, adr);
- cmsg->Reject = Reject;
- cmsg->NCPI = NCPI;
-}
-
-static inline void capi_fill_CONNECT_B3_T90_ACTIVE_RESP(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber,
- __u32 adr)
-{
-
- capi_cmsg_header(cmsg, ApplId, 0x88, 0x83, Messagenumber, adr);
-}
-
-static inline void capi_fill_DATA_B3_RESP(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber,
- __u32 adr,
- __u16 DataHandle)
-{
-
- capi_cmsg_header(cmsg, ApplId, 0x86, 0x83, Messagenumber, adr);
- cmsg->DataHandle = DataHandle;
-}
-
-static inline void capi_fill_DISCONNECT_B3_RESP(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber,
- __u32 adr)
-{
-
- capi_cmsg_header(cmsg, ApplId, 0x84, 0x83, Messagenumber, adr);
-}
-
-static inline void capi_fill_DISCONNECT_RESP(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber,
- __u32 adr)
-{
-
- capi_cmsg_header(cmsg, ApplId, 0x04, 0x83, Messagenumber, adr);
-}
-
-static inline void capi_fill_FACILITY_RESP(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber,
- __u32 adr,
- __u16 FacilitySelector)
-{
-
- capi_cmsg_header(cmsg, ApplId, 0x80, 0x83, Messagenumber, adr);
- cmsg->FacilitySelector = FacilitySelector;
-}
-
-static inline void capi_fill_INFO_RESP(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber,
- __u32 adr)
-{
-
- capi_cmsg_header(cmsg, ApplId, 0x08, 0x83, Messagenumber, adr);
-}
-
-static inline void capi_fill_MANUFACTURER_RESP(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber,
- __u32 adr,
- __u32 ManuID,
- __u32 Class,
- __u32 Function,
- _cstruct ManuData)
-{
-
- capi_cmsg_header(cmsg, ApplId, 0xff, 0x83, Messagenumber, adr);
- cmsg->ManuID = ManuID;
- cmsg->Class = Class;
- cmsg->Function = Function;
- cmsg->ManuData = ManuData;
-}
-
-static inline void capi_fill_RESET_B3_RESP(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber,
- __u32 adr)
-{
-
- capi_cmsg_header(cmsg, ApplId, 0x87, 0x83, Messagenumber, adr);
-}
-
-#endif /* __CAPIUTIL_H__ */
diff --git a/ANDROID_3.4.5/include/linux/isdn/hdlc.h b/ANDROID_3.4.5/include/linux/isdn/hdlc.h
deleted file mode 100644
index 96521370..00000000
--- a/ANDROID_3.4.5/include/linux/isdn/hdlc.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * hdlc.h -- General purpose ISDN HDLC decoder.
- *
- * Implementation of a HDLC decoder/encoder in software.
- * Necessary because some ISDN devices don't have HDLC
- * controllers.
- *
- * Copyright (C)
- * 2009 Karsten Keil <keil@b1-systems.de>
- * 2002 Wolfgang Mües <wolfgang@iksw-muees.de>
- * 2001 Frode Isaksen <fisaksen@bewan.com>
- * 2001 Kai Germaschewski <kai.germaschewski@gmx.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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef __ISDNHDLC_H__
-#define __ISDNHDLC_H__
-
-struct isdnhdlc_vars {
- int bit_shift;
- int hdlc_bits1;
- int data_bits;
- int ffbit_shift; /* encoding only */
- int state;
- int dstpos;
-
- u16 crc;
-
- u8 cbin;
- u8 shift_reg;
- u8 ffvalue;
-
- /* set if transferring data */
- u32 data_received:1;
- /* set if D channel (send idle instead of flags) */
- u32 dchannel:1;
- /* set if 56K adaptation */
- u32 do_adapt56:1;
- /* set if in closing phase (need to send CRC + flag) */
- u32 do_closing:1;
- /* set if data is bitreverse */
- u32 do_bitreverse:1;
-};
-
-/* Feature Flags */
-#define HDLC_56KBIT 0x01
-#define HDLC_DCHANNEL 0x02
-#define HDLC_BITREVERSE 0x04
-
-/*
- The return value from isdnhdlc_decode is
- the frame length, 0 if no complete frame was decoded,
- or a negative error number
-*/
-#define HDLC_FRAMING_ERROR 1
-#define HDLC_CRC_ERROR 2
-#define HDLC_LENGTH_ERROR 3
-
-extern void isdnhdlc_rcv_init(struct isdnhdlc_vars *hdlc, u32 features);
-
-extern int isdnhdlc_decode(struct isdnhdlc_vars *hdlc, const u8 *src,
- int slen, int *count, u8 *dst, int dsize);
-
-extern void isdnhdlc_out_init(struct isdnhdlc_vars *hdlc, u32 features);
-
-extern int isdnhdlc_encode(struct isdnhdlc_vars *hdlc, const u8 *src,
- u16 slen, int *count, u8 *dst, int dsize);
-
-#endif /* __ISDNHDLC_H__ */
diff --git a/ANDROID_3.4.5/include/linux/isdn_divertif.h b/ANDROID_3.4.5/include/linux/isdn_divertif.h
deleted file mode 100644
index a5a50f52..00000000
--- a/ANDROID_3.4.5/include/linux/isdn_divertif.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* $Id: isdn_divertif.h,v 1.4.6.1 2001/09/23 22:25:05 kai Exp $
- *
- * Header for the diversion supplementary interface for i4l.
- *
- * Author Werner Cornelius (werner@titro.de)
- * Copyright by Werner Cornelius (werner@titro.de)
- *
- * This software may be used and distributed according to the terms
- * of the GNU General Public License, incorporated herein by reference.
- *
- */
-
-#ifndef _LINUX_ISDN_DIVERTIF_H
-#define _LINUX_ISDN_DIVERTIF_H
-
-/***********************************************************/
-/* magic value is also used to control version information */
-/***********************************************************/
-#define DIVERT_IF_MAGIC 0x25873401
-#define DIVERT_CMD_REG 0x00 /* register command */
-#define DIVERT_CMD_REL 0x01 /* release command */
-#define DIVERT_NO_ERR 0x00 /* return value no error */
-#define DIVERT_CMD_ERR 0x01 /* invalid cmd */
-#define DIVERT_VER_ERR 0x02 /* magic/version invalid */
-#define DIVERT_REG_ERR 0x03 /* module already registered */
-#define DIVERT_REL_ERR 0x04 /* module not registered */
-#define DIVERT_REG_NAME isdn_register_divert
-
-#ifdef __KERNEL__
-#include <linux/isdnif.h>
-#include <linux/types.h>
-
-/***************************************************************/
-/* structure exchanging data between isdn hl and divert module */
-/***************************************************************/
-typedef struct
- { ulong if_magic; /* magic info and version */
- int cmd; /* command */
- int (*stat_callback)(isdn_ctrl *); /* supplied by divert module when calling */
- int (*ll_cmd)(isdn_ctrl *); /* supplied by hl on return */
- char * (*drv_to_name)(int); /* map a driver id to name, supplied by hl */
- int (*name_to_drv)(char *); /* map a driver id to name, supplied by hl */
- } isdn_divert_if;
-
-/*********************/
-/* function register */
-/*********************/
-extern int DIVERT_REG_NAME(isdn_divert_if *);
-#endif
-
-#endif /* _LINUX_ISDN_DIVERTIF_H */
diff --git a/ANDROID_3.4.5/include/linux/isdn_ppp.h b/ANDROID_3.4.5/include/linux/isdn_ppp.h
deleted file mode 100644
index 8687a7dc..00000000
--- a/ANDROID_3.4.5/include/linux/isdn_ppp.h
+++ /dev/null
@@ -1,248 +0,0 @@
-/* Linux ISDN subsystem, sync PPP, interface to ipppd
- *
- * Copyright 1994-1999 by Fritz Elfert (fritz@isdn4linux.de)
- * Copyright 1995,96 Thinking Objects Software GmbH Wuerzburg
- * Copyright 1995,96 by Michael Hipp (Michael.Hipp@student.uni-tuebingen.de)
- * Copyright 2000-2002 by Kai Germaschewski (kai@germaschewski.name)
- *
- * This software may be used and distributed according to the terms
- * of the GNU General Public License, incorporated herein by reference.
- *
- */
-
-#ifndef _LINUX_ISDN_PPP_H
-#define _LINUX_ISDN_PPP_H
-
-#define CALLTYPE_INCOMING 0x1
-#define CALLTYPE_OUTGOING 0x2
-#define CALLTYPE_CALLBACK 0x4
-
-#define IPPP_VERSION "2.2.0"
-
-struct pppcallinfo
-{
- int calltype;
- unsigned char local_num[64];
- unsigned char remote_num[64];
- int charge_units;
-};
-
-#define PPPIOCGCALLINFO _IOWR('t',128,struct pppcallinfo)
-#define PPPIOCBUNDLE _IOW('t',129,int)
-#define PPPIOCGMPFLAGS _IOR('t',130,int)
-#define PPPIOCSMPFLAGS _IOW('t',131,int)
-#define PPPIOCSMPMTU _IOW('t',132,int)
-#define PPPIOCSMPMRU _IOW('t',133,int)
-#define PPPIOCGCOMPRESSORS _IOR('t',134,unsigned long [8])
-#define PPPIOCSCOMPRESSOR _IOW('t',135,int)
-#define PPPIOCGIFNAME _IOR('t',136, char [IFNAMSIZ] )
-
-
-#define SC_MP_PROT 0x00000200
-#define SC_REJ_MP_PROT 0x00000400
-#define SC_OUT_SHORT_SEQ 0x00000800
-#define SC_IN_SHORT_SEQ 0x00004000
-
-#define SC_DECOMP_ON 0x01
-#define SC_COMP_ON 0x02
-#define SC_DECOMP_DISCARD 0x04
-#define SC_COMP_DISCARD 0x08
-#define SC_LINK_DECOMP_ON 0x10
-#define SC_LINK_COMP_ON 0x20
-#define SC_LINK_DECOMP_DISCARD 0x40
-#define SC_LINK_COMP_DISCARD 0x80
-
-#define ISDN_PPP_COMP_MAX_OPTIONS 16
-
-#define IPPP_COMP_FLAG_XMIT 0x1
-#define IPPP_COMP_FLAG_LINK 0x2
-
-struct isdn_ppp_comp_data {
- int num;
- unsigned char options[ISDN_PPP_COMP_MAX_OPTIONS];
- int optlen;
- int flags;
-};
-
-#ifdef __KERNEL__
-
-
-
-#ifdef CONFIG_IPPP_FILTER
-#include <linux/filter.h>
-#endif
-
-#define DECOMP_ERR_NOMEM (-10)
-
-#define MP_END_FRAG 0x40
-#define MP_BEGIN_FRAG 0x80
-
-#define MP_MAX_QUEUE_LEN 16
-
-/*
- * We need a way for the decompressor to influence the generation of CCP
- * Reset-Requests in a variety of ways. The decompressor is already returning
- * a lot of information (generated skb length, error conditions) so we use
- * another parameter. This parameter is a pointer to a structure which is
- * to be marked valid by the decompressor and only in this case is ever used.
- * Furthermore, the only case where this data is used is when the decom-
- * pressor returns DECOMP_ERROR.
- *
- * We use this same struct for the reset entry of the compressor to commu-
- * nicate to its caller how to deal with sending of a Reset Ack. In this
- * case, expra is not used, but other options still apply (suppressing
- * sending with rsend, appending arbitrary data, etc).
- */
-
-#define IPPP_RESET_MAXDATABYTES 32
-
-struct isdn_ppp_resetparams {
- unsigned char valid:1; /* rw Is this structure filled at all ? */
- unsigned char rsend:1; /* rw Should we send one at all ? */
- unsigned char idval:1; /* rw Is the id field valid ? */
- unsigned char dtval:1; /* rw Is the data field valid ? */
- unsigned char expra:1; /* rw Is an Ack expected for this Req ? */
- unsigned char id; /* wo Send CCP ResetReq with this id */
- unsigned short maxdlen; /* ro Max bytes to be stored in data field */
- unsigned short dlen; /* rw Bytes stored in data field */
- unsigned char *data; /* wo Data for ResetReq info field */
-};
-
-/*
- * this is an 'old friend' from ppp-comp.h under a new name
- * check the original include for more information
- */
-struct isdn_ppp_compressor {
- struct isdn_ppp_compressor *next, *prev;
- struct module *owner;
- int num; /* CCP compression protocol number */
-
- void *(*alloc) (struct isdn_ppp_comp_data *);
- void (*free) (void *state);
- int (*init) (void *state, struct isdn_ppp_comp_data *,
- int unit,int debug);
-
- /* The reset entry needs to get more exact information about the
- ResetReq or ResetAck it was called with. The parameters are
- obvious. If reset is called without a Req or Ack frame which
- could be handed into it, code MUST be set to 0. Using rsparm,
- the reset entry can control if and how a ResetAck is returned. */
-
- void (*reset) (void *state, unsigned char code, unsigned char id,
- unsigned char *data, unsigned len,
- struct isdn_ppp_resetparams *rsparm);
-
- int (*compress) (void *state, struct sk_buff *in,
- struct sk_buff *skb_out, int proto);
-
- int (*decompress) (void *state,struct sk_buff *in,
- struct sk_buff *skb_out,
- struct isdn_ppp_resetparams *rsparm);
-
- void (*incomp) (void *state, struct sk_buff *in,int proto);
- void (*stat) (void *state, struct compstat *stats);
-};
-
-extern int isdn_ppp_register_compressor(struct isdn_ppp_compressor *);
-extern int isdn_ppp_unregister_compressor(struct isdn_ppp_compressor *);
-extern int isdn_ppp_dial_slave(char *);
-extern int isdn_ppp_hangup_slave(char *);
-
-typedef struct {
- unsigned long seqerrs;
- unsigned long frame_drops;
- unsigned long overflows;
- unsigned long max_queue_len;
-} isdn_mppp_stats;
-
-typedef struct {
- int mp_mrru; /* unused */
- struct sk_buff * frags; /* fragments sl list -- use skb->next */
- long frames; /* number of frames in the frame list */
- unsigned int seq; /* last processed packet seq #: any packets
- * with smaller seq # will be dropped
- * unconditionally */
- spinlock_t lock;
- int ref_ct;
- /* statistics */
- isdn_mppp_stats stats;
-} ippp_bundle;
-
-#define NUM_RCV_BUFFS 64
-
-struct ippp_buf_queue {
- struct ippp_buf_queue *next;
- struct ippp_buf_queue *last;
- char *buf; /* NULL here indicates end of queue */
- int len;
-};
-
-/* The data structure for one CCP reset transaction */
-enum ippp_ccp_reset_states {
- CCPResetIdle,
- CCPResetSentReq,
- CCPResetRcvdReq,
- CCPResetSentAck,
- CCPResetRcvdAck
-};
-
-struct ippp_ccp_reset_state {
- enum ippp_ccp_reset_states state; /* State of this transaction */
- struct ippp_struct *is; /* Backlink to device stuff */
- unsigned char id; /* Backlink id index */
- unsigned char ta:1; /* The timer is active (flag) */
- unsigned char expra:1; /* We expect a ResetAck at all */
- int dlen; /* Databytes stored in data */
- struct timer_list timer; /* For timeouts/retries */
- /* This is a hack but seems sufficient for the moment. We do not want
- to have this be yet another allocation for some bytes, it is more
- memory management overhead than the whole mess is worth. */
- unsigned char data[IPPP_RESET_MAXDATABYTES];
-};
-
-/* The data structure keeping track of the currently outstanding CCP Reset
- transactions. */
-struct ippp_ccp_reset {
- struct ippp_ccp_reset_state *rs[256]; /* One per possible id */
- unsigned char lastid; /* Last id allocated by the engine */
-};
-
-struct ippp_struct {
- struct ippp_struct *next_link;
- int state;
- spinlock_t buflock;
- struct ippp_buf_queue rq[NUM_RCV_BUFFS]; /* packet queue for isdn_ppp_read() */
- struct ippp_buf_queue *first; /* pointer to (current) first packet */
- struct ippp_buf_queue *last; /* pointer to (current) last used packet in queue */
- wait_queue_head_t wq;
- struct task_struct *tk;
- unsigned int mpppcfg;
- unsigned int pppcfg;
- unsigned int mru;
- unsigned int mpmru;
- unsigned int mpmtu;
- unsigned int maxcid;
- struct isdn_net_local_s *lp;
- int unit;
- int minor;
- unsigned int last_link_seqno;
- long mp_seqno;
-#ifdef CONFIG_ISDN_PPP_VJ
- unsigned char *cbuf;
- struct slcompress *slcomp;
-#endif
-#ifdef CONFIG_IPPP_FILTER
- struct sock_filter *pass_filter; /* filter for packets to pass */
- struct sock_filter *active_filter; /* filter for pkts to reset idle */
- unsigned pass_len, active_len;
-#endif
- unsigned long debug;
- struct isdn_ppp_compressor *compressor,*decompressor;
- struct isdn_ppp_compressor *link_compressor,*link_decompressor;
- void *decomp_stat,*comp_stat,*link_decomp_stat,*link_comp_stat;
- struct ippp_ccp_reset *reset; /* Allocated on demand, may never be needed */
- unsigned long compflags;
-};
-
-#endif /* __KERNEL__ */
-#endif /* _LINUX_ISDN_PPP_H */
diff --git a/ANDROID_3.4.5/include/linux/isdnif.h b/ANDROID_3.4.5/include/linux/isdnif.h
deleted file mode 100644
index b8c23f88..00000000
--- a/ANDROID_3.4.5/include/linux/isdnif.h
+++ /dev/null
@@ -1,546 +0,0 @@
-/* $Id: isdnif.h,v 1.43.2.2 2004/01/12 23:08:35 keil Exp $
- *
- * Linux ISDN subsystem
- * Definition of the interface between the subsystem and its low-level drivers.
- *
- * Copyright 1994,95,96 by Fritz Elfert (fritz@isdn4linux.de)
- * Copyright 1995,96 Thinking Objects Software GmbH Wuerzburg
- *
- * This software may be used and distributed according to the terms
- * of the GNU General Public License, incorporated herein by reference.
- *
- */
-
-#ifndef __ISDNIF_H__
-#define __ISDNIF_H__
-
-
-/*
- * Values for general protocol-selection
- */
-#define ISDN_PTYPE_UNKNOWN 0 /* Protocol undefined */
-#define ISDN_PTYPE_1TR6 1 /* german 1TR6-protocol */
-#define ISDN_PTYPE_EURO 2 /* EDSS1-protocol */
-#define ISDN_PTYPE_LEASED 3 /* for leased lines */
-#define ISDN_PTYPE_NI1 4 /* US NI-1 protocol */
-#define ISDN_PTYPE_MAX 7 /* Max. 8 Protocols */
-
-/*
- * Values for Layer-2-protocol-selection
- */
-#define ISDN_PROTO_L2_X75I 0 /* X75/LAPB with I-Frames */
-#define ISDN_PROTO_L2_X75UI 1 /* X75/LAPB with UI-Frames */
-#define ISDN_PROTO_L2_X75BUI 2 /* X75/LAPB with UI-Frames */
-#define ISDN_PROTO_L2_HDLC 3 /* HDLC */
-#define ISDN_PROTO_L2_TRANS 4 /* Transparent (Voice) */
-#define ISDN_PROTO_L2_X25DTE 5 /* X25/LAPB DTE mode */
-#define ISDN_PROTO_L2_X25DCE 6 /* X25/LAPB DCE mode */
-#define ISDN_PROTO_L2_V11096 7 /* V.110 bitrate adaption 9600 Baud */
-#define ISDN_PROTO_L2_V11019 8 /* V.110 bitrate adaption 19200 Baud */
-#define ISDN_PROTO_L2_V11038 9 /* V.110 bitrate adaption 38400 Baud */
-#define ISDN_PROTO_L2_MODEM 10 /* Analog Modem on Board */
-#define ISDN_PROTO_L2_FAX 11 /* Fax Group 2/3 */
-#define ISDN_PROTO_L2_HDLC_56K 12 /* HDLC 56k */
-#define ISDN_PROTO_L2_MAX 15 /* Max. 16 Protocols */
-
-/*
- * Values for Layer-3-protocol-selection
- */
-#define ISDN_PROTO_L3_TRANS 0 /* Transparent */
-#define ISDN_PROTO_L3_TRANSDSP 1 /* Transparent with DSP */
-#define ISDN_PROTO_L3_FCLASS2 2 /* Fax Group 2/3 CLASS 2 */
-#define ISDN_PROTO_L3_FCLASS1 3 /* Fax Group 2/3 CLASS 1 */
-#define ISDN_PROTO_L3_MAX 7 /* Max. 8 Protocols */
-
-#ifdef __KERNEL__
-
-#include <linux/skbuff.h>
-
-/***************************************************************************/
-/* Extensions made by Werner Cornelius (werner@ikt.de) */
-/* */
-/* The proceed command holds a incoming call in a state to leave processes */
-/* enough time to check whether ist should be accepted. */
-/* The PROT_IO Command extends the interface to make protocol dependent */
-/* features available (call diversion, call waiting...). */
-/* */
-/* The PROT_IO Command is executed with the desired driver id and the arg */
-/* parameter coded as follows: */
-/* The lower 8 bits of arg contain the desired protocol from ISDN_PTYPE */
-/* definitions. The upper 24 bits represent the protocol specific cmd/stat.*/
-/* Any additional data is protocol and command specific. */
-/* This mechanism also applies to the statcallb callback STAT_PROT. */
-/* */
-/* This suggested extension permits an easy expansion of protocol specific */
-/* handling. Extensions may be added at any time without changing the HL */
-/* driver code and not getting conflicts without certifications. */
-/* The well known CAPI 2.0 interface handles such extensions in a similar */
-/* way. Perhaps a protocol specific module may be added and separately */
-/* loaded and linked to the basic isdn module for handling. */
-/***************************************************************************/
-
-/*****************/
-/* DSS1 commands */
-/*****************/
-#define DSS1_CMD_INVOKE ((0x00 << 8) | ISDN_PTYPE_EURO) /* invoke a supplementary service */
-#define DSS1_CMD_INVOKE_ABORT ((0x01 << 8) | ISDN_PTYPE_EURO) /* abort a invoke cmd */
-
-/*******************************/
-/* DSS1 Status callback values */
-/*******************************/
-#define DSS1_STAT_INVOKE_RES ((0x80 << 8) | ISDN_PTYPE_EURO) /* Result for invocation */
-#define DSS1_STAT_INVOKE_ERR ((0x81 << 8) | ISDN_PTYPE_EURO) /* Error Return for invocation */
-#define DSS1_STAT_INVOKE_BRD ((0x82 << 8) | ISDN_PTYPE_EURO) /* Deliver invoke broadcast info */
-
-
-/*********************************************************************/
-/* structures for DSS1 commands and callback */
-/* */
-/* An action is invoked by sending a DSS1_CMD_INVOKE. The ll_id, proc*/
-/* timeout, datalen and data fields must be set before calling. */
-/* */
-/* The return value is a positive hl_id value also delivered in the */
-/* hl_id field. A value of zero signals no more left hl_id capacitys.*/
-/* A negative return value signals errors in LL. So if the return */
-/* value is <= 0 no action in LL will be taken -> request ignored */
-/* */
-/* The timeout field must be filled with a positive value specifying */
-/* the amount of time the INVOKED process waits for a reaction from */
-/* the network. */
-/* If a response (either error or result) is received during this */
-/* intervall, a reporting callback is initiated and the process will */
-/* be deleted, the hl identifier will be freed. */
-/* If no response is received during the specified intervall, a error*/
-/* callback is initiated with timeout set to -1 and a datalen set */
-/* to 0. */
-/* If timeout is set to a value <= 0 during INVOCATION the process is*/
-/* immediately deleted after sending the data. No callback occurs ! */
-/* */
-/* A currently waiting process may be aborted with INVOKE_ABORT. No */
-/* callback will occur when a process has been aborted. */
-/* */
-/* Broadcast invoke frames from the network are reported via the */
-/* STAT_INVOKE_BRD callback. The ll_id is set to 0, the other fields */
-/* are supplied by the network and not by the HL. */
-/*********************************************************************/
-
-/*****************/
-/* NI1 commands */
-/*****************/
-#define NI1_CMD_INVOKE ((0x00 << 8) | ISDN_PTYPE_NI1) /* invoke a supplementary service */
-#define NI1_CMD_INVOKE_ABORT ((0x01 << 8) | ISDN_PTYPE_NI1) /* abort a invoke cmd */
-
-/*******************************/
-/* NI1 Status callback values */
-/*******************************/
-#define NI1_STAT_INVOKE_RES ((0x80 << 8) | ISDN_PTYPE_NI1) /* Result for invocation */
-#define NI1_STAT_INVOKE_ERR ((0x81 << 8) | ISDN_PTYPE_NI1) /* Error Return for invocation */
-#define NI1_STAT_INVOKE_BRD ((0x82 << 8) | ISDN_PTYPE_NI1) /* Deliver invoke broadcast info */
-
-typedef struct
- { ulong ll_id; /* ID supplied by LL when executing */
- /* a command and returned by HL for */
- /* INVOKE_RES and INVOKE_ERR */
- int hl_id; /* ID supplied by HL when called */
- /* for executing a cmd and delivered */
- /* for results and errors */
- /* must be supplied by LL when aborting*/
- int proc; /* invoke procedure used by CMD_INVOKE */
- /* returned by callback and broadcast */
- int timeout; /* timeout for INVOKE CMD in ms */
- /* -1 in stat callback when timed out */
- /* error value when error callback */
- int datalen; /* length of cmd or stat data */
- u_char *data;/* pointer to data delivered or send */
- } isdn_cmd_stat;
-
-/*
- * Commands from linklevel to lowlevel
- *
- */
-#define ISDN_CMD_IOCTL 0 /* Perform ioctl */
-#define ISDN_CMD_DIAL 1 /* Dial out */
-#define ISDN_CMD_ACCEPTD 2 /* Accept an incoming call on D-Chan. */
-#define ISDN_CMD_ACCEPTB 3 /* Request B-Channel connect. */
-#define ISDN_CMD_HANGUP 4 /* Hangup */
-#define ISDN_CMD_CLREAZ 5 /* Clear EAZ(s) of channel */
-#define ISDN_CMD_SETEAZ 6 /* Set EAZ(s) of channel */
-#define ISDN_CMD_GETEAZ 7 /* Get EAZ(s) of channel */
-#define ISDN_CMD_SETSIL 8 /* Set Service-Indicator-List of channel */
-#define ISDN_CMD_GETSIL 9 /* Get Service-Indicator-List of channel */
-#define ISDN_CMD_SETL2 10 /* Set B-Chan. Layer2-Parameter */
-#define ISDN_CMD_GETL2 11 /* Get B-Chan. Layer2-Parameter */
-#define ISDN_CMD_SETL3 12 /* Set B-Chan. Layer3-Parameter */
-#define ISDN_CMD_GETL3 13 /* Get B-Chan. Layer3-Parameter */
-// #define ISDN_CMD_LOCK 14 /* Signal usage by upper levels */
-// #define ISDN_CMD_UNLOCK 15 /* Release usage-lock */
-#define ISDN_CMD_SUSPEND 16 /* Suspend connection */
-#define ISDN_CMD_RESUME 17 /* Resume connection */
-#define ISDN_CMD_PROCEED 18 /* Proceed with call establishment */
-#define ISDN_CMD_ALERT 19 /* Alert after Proceeding */
-#define ISDN_CMD_REDIR 20 /* Redir a incoming call */
-#define ISDN_CMD_PROT_IO 21 /* Protocol specific commands */
-#define CAPI_PUT_MESSAGE 22 /* CAPI message send down or up */
-#define ISDN_CMD_FAXCMD 23 /* FAX commands to HL-driver */
-#define ISDN_CMD_AUDIO 24 /* DSP, DTMF, ... settings */
-
-/*
- * Status-Values delivered from lowlevel to linklevel via
- * statcallb().
- *
- */
-#define ISDN_STAT_STAVAIL 256 /* Raw status-data available */
-#define ISDN_STAT_ICALL 257 /* Incoming call detected */
-#define ISDN_STAT_RUN 258 /* Signal protocol-code is running */
-#define ISDN_STAT_STOP 259 /* Signal halt of protocol-code */
-#define ISDN_STAT_DCONN 260 /* Signal D-Channel connect */
-#define ISDN_STAT_BCONN 261 /* Signal B-Channel connect */
-#define ISDN_STAT_DHUP 262 /* Signal D-Channel disconnect */
-#define ISDN_STAT_BHUP 263 /* Signal B-Channel disconnect */
-#define ISDN_STAT_CINF 264 /* Charge-Info */
-#define ISDN_STAT_LOAD 265 /* Signal new lowlevel-driver is loaded */
-#define ISDN_STAT_UNLOAD 266 /* Signal unload of lowlevel-driver */
-#define ISDN_STAT_BSENT 267 /* Signal packet sent */
-#define ISDN_STAT_NODCH 268 /* Signal no D-Channel */
-#define ISDN_STAT_ADDCH 269 /* Add more Channels */
-#define ISDN_STAT_CAUSE 270 /* Cause-Message */
-#define ISDN_STAT_ICALLW 271 /* Incoming call without B-chan waiting */
-#define ISDN_STAT_REDIR 272 /* Redir result */
-#define ISDN_STAT_PROT 273 /* protocol IO specific callback */
-#define ISDN_STAT_DISPLAY 274 /* deliver a received display message */
-#define ISDN_STAT_L1ERR 275 /* Signal Layer-1 Error */
-#define ISDN_STAT_FAXIND 276 /* FAX indications from HL-driver */
-#define ISDN_STAT_AUDIO 277 /* DTMF, DSP indications */
-#define ISDN_STAT_DISCH 278 /* Disable/Enable channel usage */
-
-/*
- * Audio commands
- */
-#define ISDN_AUDIO_SETDD 0 /* Set DTMF detection */
-#define ISDN_AUDIO_DTMF 1 /* Rx/Tx DTMF */
-
-/*
- * Values for errcode field
- */
-#define ISDN_STAT_L1ERR_SEND 1
-#define ISDN_STAT_L1ERR_RECV 2
-
-/*
- * Values for feature-field of interface-struct.
- */
-/* Layer 2 */
-#define ISDN_FEATURE_L2_X75I (0x0001 << ISDN_PROTO_L2_X75I)
-#define ISDN_FEATURE_L2_X75UI (0x0001 << ISDN_PROTO_L2_X75UI)
-#define ISDN_FEATURE_L2_X75BUI (0x0001 << ISDN_PROTO_L2_X75BUI)
-#define ISDN_FEATURE_L2_HDLC (0x0001 << ISDN_PROTO_L2_HDLC)
-#define ISDN_FEATURE_L2_TRANS (0x0001 << ISDN_PROTO_L2_TRANS)
-#define ISDN_FEATURE_L2_X25DTE (0x0001 << ISDN_PROTO_L2_X25DTE)
-#define ISDN_FEATURE_L2_X25DCE (0x0001 << ISDN_PROTO_L2_X25DCE)
-#define ISDN_FEATURE_L2_V11096 (0x0001 << ISDN_PROTO_L2_V11096)
-#define ISDN_FEATURE_L2_V11019 (0x0001 << ISDN_PROTO_L2_V11019)
-#define ISDN_FEATURE_L2_V11038 (0x0001 << ISDN_PROTO_L2_V11038)
-#define ISDN_FEATURE_L2_MODEM (0x0001 << ISDN_PROTO_L2_MODEM)
-#define ISDN_FEATURE_L2_FAX (0x0001 << ISDN_PROTO_L2_FAX)
-#define ISDN_FEATURE_L2_HDLC_56K (0x0001 << ISDN_PROTO_L2_HDLC_56K)
-
-#define ISDN_FEATURE_L2_MASK (0x0FFFF) /* Max. 16 protocols */
-#define ISDN_FEATURE_L2_SHIFT (0)
-
-/* Layer 3 */
-#define ISDN_FEATURE_L3_TRANS (0x10000 << ISDN_PROTO_L3_TRANS)
-#define ISDN_FEATURE_L3_TRANSDSP (0x10000 << ISDN_PROTO_L3_TRANSDSP)
-#define ISDN_FEATURE_L3_FCLASS2 (0x10000 << ISDN_PROTO_L3_FCLASS2)
-#define ISDN_FEATURE_L3_FCLASS1 (0x10000 << ISDN_PROTO_L3_FCLASS1)
-
-#define ISDN_FEATURE_L3_MASK (0x0FF0000) /* Max. 8 Protocols */
-#define ISDN_FEATURE_L3_SHIFT (16)
-
-/* Signaling */
-#define ISDN_FEATURE_P_UNKNOWN (0x1000000 << ISDN_PTYPE_UNKNOWN)
-#define ISDN_FEATURE_P_1TR6 (0x1000000 << ISDN_PTYPE_1TR6)
-#define ISDN_FEATURE_P_EURO (0x1000000 << ISDN_PTYPE_EURO)
-#define ISDN_FEATURE_P_NI1 (0x1000000 << ISDN_PTYPE_NI1)
-
-#define ISDN_FEATURE_P_MASK (0x0FF000000) /* Max. 8 Protocols */
-#define ISDN_FEATURE_P_SHIFT (24)
-
-typedef struct setup_parm {
- unsigned char phone[32]; /* Remote Phone-Number */
- unsigned char eazmsn[32]; /* Local EAZ or MSN */
- unsigned char si1; /* Service Indicator 1 */
- unsigned char si2; /* Service Indicator 2 */
- unsigned char plan; /* Numbering plan */
- unsigned char screen; /* Screening info */
-} setup_parm;
-
-
-#ifdef CONFIG_ISDN_TTY_FAX
-/* T.30 Fax G3 */
-
-#define FAXIDLEN 21
-
-typedef struct T30_s {
- /* session parameters */
- __u8 resolution;
- __u8 rate;
- __u8 width;
- __u8 length;
- __u8 compression;
- __u8 ecm;
- __u8 binary;
- __u8 scantime;
- __u8 id[FAXIDLEN];
- /* additional parameters */
- __u8 phase;
- __u8 direction;
- __u8 code;
- __u8 badlin;
- __u8 badmul;
- __u8 bor;
- __u8 fet;
- __u8 pollid[FAXIDLEN];
- __u8 cq;
- __u8 cr;
- __u8 ctcrty;
- __u8 minsp;
- __u8 phcto;
- __u8 rel;
- __u8 nbc;
- /* remote station parameters */
- __u8 r_resolution;
- __u8 r_rate;
- __u8 r_width;
- __u8 r_length;
- __u8 r_compression;
- __u8 r_ecm;
- __u8 r_binary;
- __u8 r_scantime;
- __u8 r_id[FAXIDLEN];
- __u8 r_code;
-} __packed T30_s;
-
-#define ISDN_TTY_FAX_CONN_IN 0
-#define ISDN_TTY_FAX_CONN_OUT 1
-
-#define ISDN_TTY_FAX_FCON 0
-#define ISDN_TTY_FAX_DIS 1
-#define ISDN_TTY_FAX_FTT 2
-#define ISDN_TTY_FAX_MCF 3
-#define ISDN_TTY_FAX_DCS 4
-#define ISDN_TTY_FAX_TRAIN_OK 5
-#define ISDN_TTY_FAX_EOP 6
-#define ISDN_TTY_FAX_EOM 7
-#define ISDN_TTY_FAX_MPS 8
-#define ISDN_TTY_FAX_DTC 9
-#define ISDN_TTY_FAX_RID 10
-#define ISDN_TTY_FAX_HNG 11
-#define ISDN_TTY_FAX_DT 12
-#define ISDN_TTY_FAX_FCON_I 13
-#define ISDN_TTY_FAX_DR 14
-#define ISDN_TTY_FAX_ET 15
-#define ISDN_TTY_FAX_CFR 16
-#define ISDN_TTY_FAX_PTS 17
-#define ISDN_TTY_FAX_SENT 18
-
-#define ISDN_FAX_PHASE_IDLE 0
-#define ISDN_FAX_PHASE_A 1
-#define ISDN_FAX_PHASE_B 2
-#define ISDN_FAX_PHASE_C 3
-#define ISDN_FAX_PHASE_D 4
-#define ISDN_FAX_PHASE_E 5
-
-#endif /* TTY_FAX */
-
-#define ISDN_FAX_CLASS1_FAE 0
-#define ISDN_FAX_CLASS1_FTS 1
-#define ISDN_FAX_CLASS1_FRS 2
-#define ISDN_FAX_CLASS1_FTM 3
-#define ISDN_FAX_CLASS1_FRM 4
-#define ISDN_FAX_CLASS1_FTH 5
-#define ISDN_FAX_CLASS1_FRH 6
-#define ISDN_FAX_CLASS1_CTRL 7
-
-#define ISDN_FAX_CLASS1_OK 0
-#define ISDN_FAX_CLASS1_CONNECT 1
-#define ISDN_FAX_CLASS1_NOCARR 2
-#define ISDN_FAX_CLASS1_ERROR 3
-#define ISDN_FAX_CLASS1_FCERROR 4
-#define ISDN_FAX_CLASS1_QUERY 5
-
-typedef struct {
- __u8 cmd;
- __u8 subcmd;
- __u8 para[50];
-} aux_s;
-
-#define AT_COMMAND 0
-#define AT_EQ_VALUE 1
-#define AT_QUERY 2
-#define AT_EQ_QUERY 3
-
-/* CAPI structs */
-
-/* this is compatible to the old union size */
-#define MAX_CAPI_PARA_LEN 50
-
-typedef struct {
- /* Header */
- __u16 Length;
- __u16 ApplId;
- __u8 Command;
- __u8 Subcommand;
- __u16 Messagenumber;
-
- /* Parameter */
- union {
- __u32 Controller;
- __u32 PLCI;
- __u32 NCCI;
- } adr;
- __u8 para[MAX_CAPI_PARA_LEN];
-} capi_msg;
-
-/*
- * Structure for exchanging above infos
- *
- */
-typedef struct {
- int driver; /* Lowlevel-Driver-ID */
- int command; /* Command or Status (see above) */
- ulong arg; /* Additional Data */
- union {
- ulong errcode; /* Type of error with STAT_L1ERR */
- int length; /* Amount of bytes sent with STAT_BSENT */
- u_char num[50]; /* Additional Data */
- setup_parm setup;/* For SETUP msg */
- capi_msg cmsg; /* For CAPI like messages */
- char display[85];/* display message data */
- isdn_cmd_stat isdn_io; /* ISDN IO-parameter/result */
- aux_s aux; /* for modem commands/indications */
-#ifdef CONFIG_ISDN_TTY_FAX
- T30_s *fax; /* Pointer to ttys fax struct */
-#endif
- ulong userdata; /* User Data */
- } parm;
-} isdn_ctrl;
-
-#define dss1_io isdn_io
-#define ni1_io isdn_io
-
-/*
- * The interface-struct itself (initialized at load-time of lowlevel-driver)
- *
- * See Documentation/isdn/INTERFACE for a description, how the communication
- * between the ISDN subsystem and its drivers is done.
- *
- */
-typedef struct {
- struct module *owner;
-
- /* Number of channels supported by this driver
- */
- int channels;
-
- /*
- * Maximum Size of transmit/receive-buffer this driver supports.
- */
- int maxbufsize;
-
- /* Feature-Flags for this driver.
- * See defines ISDN_FEATURE_... for Values
- */
- unsigned long features;
-
- /*
- * Needed for calculating
- * dev->hard_header_len = linklayer header + hl_hdrlen;
- * Drivers, not supporting sk_buff's should set this to 0.
- */
- unsigned short hl_hdrlen;
-
- /*
- * Receive-Callback using sk_buff's
- * Parameters:
- * int Driver-ID
- * int local channel-number (0 ...)
- * struct sk_buff *skb received Data
- */
- void (*rcvcallb_skb)(int, int, struct sk_buff *);
-
- /* Status-Callback
- * Parameters:
- * isdn_ctrl*
- * driver = Driver ID.
- * command = One of above ISDN_STAT_... constants.
- * arg = depending on status-type.
- * num = depending on status-type.
- */
- int (*statcallb)(isdn_ctrl*);
-
- /* Send command
- * Parameters:
- * isdn_ctrl*
- * driver = Driver ID.
- * command = One of above ISDN_CMD_... constants.
- * arg = depending on command.
- * num = depending on command.
- */
- int (*command)(isdn_ctrl*);
-
- /*
- * Send data using sk_buff's
- * Parameters:
- * int driverId
- * int local channel-number (0...)
- * int Flag: Need ACK for this packet.
- * struct sk_buff *skb Data to send
- */
- int (*writebuf_skb) (int, int, int, struct sk_buff *);
-
- /* Send raw D-Channel-Commands
- * Parameters:
- * u_char pointer data
- * int length of data
- * int driverId
- * int local channel-number (0 ...)
- */
- int (*writecmd)(const u_char __user *, int, int, int);
-
- /* Read raw Status replies
- * u_char pointer data (volatile)
- * int length of buffer
- * int driverId
- * int local channel-number (0 ...)
- */
- int (*readstat)(u_char __user *, int, int, int);
-
- char id[20];
-} isdn_if;
-
-/*
- * Function which must be called by lowlevel-driver at loadtime with
- * the following fields of above struct set:
- *
- * channels Number of channels that will be supported.
- * hl_hdrlen Space to preserve in sk_buff's when sending. Drivers, not
- * supporting sk_buff's should set this to 0.
- * command Address of Command-Handler.
- * features Bitwise coded Features of this driver. (use ISDN_FEATURE_...)
- * writebuf_skb Address of Skbuff-Send-Handler.
- * writecmd " " D-Channel " which accepts raw D-Ch-Commands.
- * readstat " " D-Channel " which delivers raw Status-Data.
- *
- * The linklevel-driver fills the following fields:
- *
- * channels Driver-ID assigned to this driver. (Must be used on all
- * subsequent callbacks.
- * rcvcallb_skb Address of handler for received Skbuff's.
- * statcallb " " " for status-changes.
- *
- */
-extern int register_isdn(isdn_if*);
-#include <asm/uaccess.h>
-
-#endif /* __KERNEL__ */
-
-#endif /* __ISDNIF_H__ */
diff --git a/ANDROID_3.4.5/include/linux/isicom.h b/ANDROID_3.4.5/include/linux/isicom.h
deleted file mode 100644
index b92e0565..00000000
--- a/ANDROID_3.4.5/include/linux/isicom.h
+++ /dev/null
@@ -1,84 +0,0 @@
-#ifndef _LINUX_ISICOM_H
-#define _LINUX_ISICOM_H
-
-#define YES 1
-#define NO 0
-
-/*
- * ISICOM Driver definitions ...
- *
- */
-
-#define ISICOM_NAME "ISICom"
-
-/*
- * PCI definitions
- */
-
-#define DEVID_COUNT 9
-#define VENDOR_ID 0x10b5
-
-/*
- * These are now officially allocated numbers
- */
-
-#define ISICOM_NMAJOR 112 /* normal */
-#define ISICOM_CMAJOR 113 /* callout */
-#define ISICOM_MAGIC (('M' << 8) | 'T')
-
-#define WAKEUP_CHARS 256 /* hard coded for now */
-#define TX_SIZE 254
-
-#define BOARD_COUNT 4
-#define PORT_COUNT (BOARD_COUNT*16)
-
-/* character sizes */
-
-#define ISICOM_CS5 0x0000
-#define ISICOM_CS6 0x0001
-#define ISICOM_CS7 0x0002
-#define ISICOM_CS8 0x0003
-
-/* stop bits */
-
-#define ISICOM_1SB 0x0000
-#define ISICOM_2SB 0x0004
-
-/* parity */
-
-#define ISICOM_NOPAR 0x0000
-#define ISICOM_ODPAR 0x0008
-#define ISICOM_EVPAR 0x0018
-
-/* flow control */
-
-#define ISICOM_CTSRTS 0x03
-#define ISICOM_INITIATE_XONXOFF 0x04
-#define ISICOM_RESPOND_XONXOFF 0x08
-
-#define BOARD(line) (((line) >> 4) & 0x3)
-
- /* isi kill queue bitmap */
-
-#define ISICOM_KILLTX 0x01
-#define ISICOM_KILLRX 0x02
-
- /* isi_board status bitmap */
-
-#define FIRMWARE_LOADED 0x0001
-#define BOARD_ACTIVE 0x0002
-#define BOARD_INIT 0x0004
-
- /* isi_port status bitmap */
-
-#define ISI_CTS 0x1000
-#define ISI_DSR 0x2000
-#define ISI_RI 0x4000
-#define ISI_DCD 0x8000
-#define ISI_DTR 0x0100
-#define ISI_RTS 0x0200
-
-
-#define ISI_TXOK 0x0001
-
-#endif /* ISICOM_H */
diff --git a/ANDROID_3.4.5/include/linux/iso_fs.h b/ANDROID_3.4.5/include/linux/iso_fs.h
deleted file mode 100644
index 4688ac42..00000000
--- a/ANDROID_3.4.5/include/linux/iso_fs.h
+++ /dev/null
@@ -1,165 +0,0 @@
-#ifndef _ISOFS_FS_H
-#define _ISOFS_FS_H
-
-#include <linux/types.h>
-#include <linux/magic.h>
-
-/*
- * The isofs filesystem constants/structures
- */
-
-/* This part borrowed from the bsd386 isofs */
-#define ISODCL(from, to) (to - from + 1)
-
-struct iso_volume_descriptor {
- char type[ISODCL(1,1)]; /* 711 */
- char id[ISODCL(2,6)];
- char version[ISODCL(7,7)];
- char data[ISODCL(8,2048)];
-};
-
-/* volume descriptor types */
-#define ISO_VD_PRIMARY 1
-#define ISO_VD_SUPPLEMENTARY 2
-#define ISO_VD_END 255
-
-#define ISO_STANDARD_ID "CD001"
-
-struct iso_primary_descriptor {
- char type [ISODCL ( 1, 1)]; /* 711 */
- char id [ISODCL ( 2, 6)];
- char version [ISODCL ( 7, 7)]; /* 711 */
- char unused1 [ISODCL ( 8, 8)];
- char system_id [ISODCL ( 9, 40)]; /* achars */
- char volume_id [ISODCL ( 41, 72)]; /* dchars */
- char unused2 [ISODCL ( 73, 80)];
- char volume_space_size [ISODCL ( 81, 88)]; /* 733 */
- char unused3 [ISODCL ( 89, 120)];
- char volume_set_size [ISODCL (121, 124)]; /* 723 */
- char volume_sequence_number [ISODCL (125, 128)]; /* 723 */
- char logical_block_size [ISODCL (129, 132)]; /* 723 */
- char path_table_size [ISODCL (133, 140)]; /* 733 */
- char type_l_path_table [ISODCL (141, 144)]; /* 731 */
- char opt_type_l_path_table [ISODCL (145, 148)]; /* 731 */
- char type_m_path_table [ISODCL (149, 152)]; /* 732 */
- char opt_type_m_path_table [ISODCL (153, 156)]; /* 732 */
- char root_directory_record [ISODCL (157, 190)]; /* 9.1 */
- char volume_set_id [ISODCL (191, 318)]; /* dchars */
- char publisher_id [ISODCL (319, 446)]; /* achars */
- char preparer_id [ISODCL (447, 574)]; /* achars */
- char application_id [ISODCL (575, 702)]; /* achars */
- char copyright_file_id [ISODCL (703, 739)]; /* 7.5 dchars */
- char abstract_file_id [ISODCL (740, 776)]; /* 7.5 dchars */
- char bibliographic_file_id [ISODCL (777, 813)]; /* 7.5 dchars */
- char creation_date [ISODCL (814, 830)]; /* 8.4.26.1 */
- char modification_date [ISODCL (831, 847)]; /* 8.4.26.1 */
- char expiration_date [ISODCL (848, 864)]; /* 8.4.26.1 */
- char effective_date [ISODCL (865, 881)]; /* 8.4.26.1 */
- char file_structure_version [ISODCL (882, 882)]; /* 711 */
- char unused4 [ISODCL (883, 883)];
- char application_data [ISODCL (884, 1395)];
- char unused5 [ISODCL (1396, 2048)];
-};
-
-/* Almost the same as the primary descriptor but two fields are specified */
-struct iso_supplementary_descriptor {
- char type [ISODCL ( 1, 1)]; /* 711 */
- char id [ISODCL ( 2, 6)];
- char version [ISODCL ( 7, 7)]; /* 711 */
- char flags [ISODCL ( 8, 8)]; /* 853 */
- char system_id [ISODCL ( 9, 40)]; /* achars */
- char volume_id [ISODCL ( 41, 72)]; /* dchars */
- char unused2 [ISODCL ( 73, 80)];
- char volume_space_size [ISODCL ( 81, 88)]; /* 733 */
- char escape [ISODCL ( 89, 120)]; /* 856 */
- char volume_set_size [ISODCL (121, 124)]; /* 723 */
- char volume_sequence_number [ISODCL (125, 128)]; /* 723 */
- char logical_block_size [ISODCL (129, 132)]; /* 723 */
- char path_table_size [ISODCL (133, 140)]; /* 733 */
- char type_l_path_table [ISODCL (141, 144)]; /* 731 */
- char opt_type_l_path_table [ISODCL (145, 148)]; /* 731 */
- char type_m_path_table [ISODCL (149, 152)]; /* 732 */
- char opt_type_m_path_table [ISODCL (153, 156)]; /* 732 */
- char root_directory_record [ISODCL (157, 190)]; /* 9.1 */
- char volume_set_id [ISODCL (191, 318)]; /* dchars */
- char publisher_id [ISODCL (319, 446)]; /* achars */
- char preparer_id [ISODCL (447, 574)]; /* achars */
- char application_id [ISODCL (575, 702)]; /* achars */
- char copyright_file_id [ISODCL (703, 739)]; /* 7.5 dchars */
- char abstract_file_id [ISODCL (740, 776)]; /* 7.5 dchars */
- char bibliographic_file_id [ISODCL (777, 813)]; /* 7.5 dchars */
- char creation_date [ISODCL (814, 830)]; /* 8.4.26.1 */
- char modification_date [ISODCL (831, 847)]; /* 8.4.26.1 */
- char expiration_date [ISODCL (848, 864)]; /* 8.4.26.1 */
- char effective_date [ISODCL (865, 881)]; /* 8.4.26.1 */
- char file_structure_version [ISODCL (882, 882)]; /* 711 */
- char unused4 [ISODCL (883, 883)];
- char application_data [ISODCL (884, 1395)];
- char unused5 [ISODCL (1396, 2048)];
-};
-
-
-#define HS_STANDARD_ID "CDROM"
-
-struct hs_volume_descriptor {
- char foo [ISODCL ( 1, 8)]; /* 733 */
- char type [ISODCL ( 9, 9)]; /* 711 */
- char id [ISODCL ( 10, 14)];
- char version [ISODCL ( 15, 15)]; /* 711 */
- char data[ISODCL(16,2048)];
-};
-
-
-struct hs_primary_descriptor {
- char foo [ISODCL ( 1, 8)]; /* 733 */
- char type [ISODCL ( 9, 9)]; /* 711 */
- char id [ISODCL ( 10, 14)];
- char version [ISODCL ( 15, 15)]; /* 711 */
- char unused1 [ISODCL ( 16, 16)]; /* 711 */
- char system_id [ISODCL ( 17, 48)]; /* achars */
- char volume_id [ISODCL ( 49, 80)]; /* dchars */
- char unused2 [ISODCL ( 81, 88)]; /* 733 */
- char volume_space_size [ISODCL ( 89, 96)]; /* 733 */
- char unused3 [ISODCL ( 97, 128)]; /* 733 */
- char volume_set_size [ISODCL (129, 132)]; /* 723 */
- char volume_sequence_number [ISODCL (133, 136)]; /* 723 */
- char logical_block_size [ISODCL (137, 140)]; /* 723 */
- char path_table_size [ISODCL (141, 148)]; /* 733 */
- char type_l_path_table [ISODCL (149, 152)]; /* 731 */
- char unused4 [ISODCL (153, 180)]; /* 733 */
- char root_directory_record [ISODCL (181, 214)]; /* 9.1 */
-};
-
-/* We use this to help us look up the parent inode numbers. */
-
-struct iso_path_table{
- unsigned char name_len[2]; /* 721 */
- char extent[4]; /* 731 */
- char parent[2]; /* 721 */
- char name[0];
-} __attribute__((packed));
-
-/* high sierra is identical to iso, except that the date is only 6 bytes, and
- there is an extra reserved byte after the flags */
-
-struct iso_directory_record {
- char length [ISODCL (1, 1)]; /* 711 */
- char ext_attr_length [ISODCL (2, 2)]; /* 711 */
- char extent [ISODCL (3, 10)]; /* 733 */
- char size [ISODCL (11, 18)]; /* 733 */
- char date [ISODCL (19, 25)]; /* 7 by 711 */
- char flags [ISODCL (26, 26)];
- char file_unit_size [ISODCL (27, 27)]; /* 711 */
- char interleave [ISODCL (28, 28)]; /* 711 */
- char volume_sequence_number [ISODCL (29, 32)]; /* 723 */
- unsigned char name_len [ISODCL (33, 33)]; /* 711 */
- char name [0];
-} __attribute__((packed));
-
-#define ISOFS_BLOCK_BITS 11
-#define ISOFS_BLOCK_SIZE 2048
-
-#define ISOFS_BUFFER_SIZE(INODE) ((INODE)->i_sb->s_blocksize)
-#define ISOFS_BUFFER_BITS(INODE) ((INODE)->i_sb->s_blocksize_bits)
-
-#endif /* _ISOFS_FS_H */
diff --git a/ANDROID_3.4.5/include/linux/istallion.h b/ANDROID_3.4.5/include/linux/istallion.h
deleted file mode 100644
index ad700a60..00000000
--- a/ANDROID_3.4.5/include/linux/istallion.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/*****************************************************************************/
-
-/*
- * istallion.h -- stallion intelligent multiport serial driver.
- *
- * Copyright (C) 1996-1998 Stallion Technologies
- * Copyright (C) 1994-1996 Greg Ungerer.
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-/*****************************************************************************/
-#ifndef _ISTALLION_H
-#define _ISTALLION_H
-/*****************************************************************************/
-
-/*
- * Define important driver constants here.
- */
-#define STL_MAXBRDS 4
-#define STL_MAXPANELS 4
-#define STL_MAXPORTS 64
-#define STL_MAXCHANS (STL_MAXPORTS + 1)
-#define STL_MAXDEVS (STL_MAXBRDS * STL_MAXPORTS)
-
-
-/*
- * Define a set of structures to hold all the board/panel/port info
- * for our ports. These will be dynamically allocated as required at
- * driver initialization time.
- */
-
-/*
- * Port and board structures to hold status info about each object.
- * The board structure contains pointers to structures for each port
- * connected to it. Panels are not distinguished here, since
- * communication with the slave board will always be on a per port
- * basis.
- */
-struct stliport {
- unsigned long magic;
- struct tty_port port;
- unsigned int portnr;
- unsigned int panelnr;
- unsigned int brdnr;
- unsigned long state;
- unsigned int devnr;
- int baud_base;
- int custom_divisor;
- int closing_wait;
- int rc;
- int argsize;
- void *argp;
- unsigned int rxmarkmsk;
- wait_queue_head_t raw_wait;
- struct asysigs asig;
- unsigned long addr;
- unsigned long rxoffset;
- unsigned long txoffset;
- unsigned long sigs;
- unsigned long pflag;
- unsigned int rxsize;
- unsigned int txsize;
- unsigned char reqbit;
- unsigned char portidx;
- unsigned char portbit;
-};
-
-/*
- * Use a structure of function pointers to do board level operations.
- * These include, enable/disable, paging shared memory, interrupting, etc.
- */
-struct stlibrd {
- unsigned long magic;
- unsigned int brdnr;
- unsigned int brdtype;
- unsigned long state;
- unsigned int nrpanels;
- unsigned int nrports;
- unsigned int nrdevs;
- unsigned int iobase;
- int iosize;
- unsigned long memaddr;
- void __iomem *membase;
- unsigned long memsize;
- int pagesize;
- int hostoffset;
- int slaveoffset;
- int bitsize;
- int enabval;
- unsigned int panels[STL_MAXPANELS];
- int panelids[STL_MAXPANELS];
- void (*init)(struct stlibrd *brdp);
- void (*enable)(struct stlibrd *brdp);
- void (*reenable)(struct stlibrd *brdp);
- void (*disable)(struct stlibrd *brdp);
- void __iomem *(*getmemptr)(struct stlibrd *brdp, unsigned long offset, int line);
- void (*intr)(struct stlibrd *brdp);
- void (*reset)(struct stlibrd *brdp);
- struct stliport *ports[STL_MAXPORTS];
-};
-
-
-/*
- * Define MAGIC numbers used for above structures.
- */
-#define STLI_PORTMAGIC 0xe671c7a1
-#define STLI_BOARDMAGIC 0x4bc6c825
-
-/*****************************************************************************/
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ivtv.h b/ANDROID_3.4.5/include/linux/ivtv.h
deleted file mode 100644
index 42bf7257..00000000
--- a/ANDROID_3.4.5/include/linux/ivtv.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- Public ivtv API header
- Copyright (C) 2003-2004 Kevin Thayer <nufan_wfk at yahoo.com>
- Copyright (C) 2004-2007 Hans Verkuil <hverkuil@xs4all.nl>
-
- 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
- */
-
-#ifndef __LINUX_IVTV_H__
-#define __LINUX_IVTV_H__
-
-#include <linux/compiler.h>
-#include <linux/types.h>
-#include <linux/videodev2.h>
-
-/* ivtv knows several distinct output modes: MPEG streaming,
- YUV streaming, YUV updates through user DMA and the passthrough
- mode.
-
- In order to clearly tell the driver that we are in user DMA
- YUV mode you need to call IVTV_IOC_DMA_FRAME with y_source == NULL
- first (althrough if you don't then the first time
- DMA_FRAME is called the mode switch is done automatically).
-
- When you close the file handle the user DMA mode is exited again.
-
- While in one mode, you cannot use another mode (EBUSY is returned).
-
- All this means that if you want to change the YUV interlacing
- for the user DMA YUV mode you first need to do call IVTV_IOC_DMA_FRAME
- with y_source == NULL before you can set the correct format using
- VIDIOC_S_FMT.
-
- Eventually all this should be replaced with a proper V4L2 API,
- but for now we have to do it this way. */
-
-struct ivtv_dma_frame {
- enum v4l2_buf_type type; /* V4L2_BUF_TYPE_VIDEO_OUTPUT */
- __u32 pixelformat; /* 0 == same as destination */
- void __user *y_source; /* if NULL and type == V4L2_BUF_TYPE_VIDEO_OUTPUT,
- then just switch to user DMA YUV output mode */
- void __user *uv_source; /* Unused for RGB pixelformats */
- struct v4l2_rect src;
- struct v4l2_rect dst;
- __u32 src_width;
- __u32 src_height;
-};
-
-#define IVTV_IOC_DMA_FRAME _IOW ('V', BASE_VIDIOC_PRIVATE+0, struct ivtv_dma_frame)
-
-/* Select the passthrough mode (if the argument is non-zero). In the passthrough
- mode the output of the encoder is passed immediately into the decoder. */
-#define IVTV_IOC_PASSTHROUGH_MODE _IOW ('V', BASE_VIDIOC_PRIVATE+1, int)
-
-/* Deprecated defines: applications should use the defines from videodev2.h */
-#define IVTV_SLICED_TYPE_TELETEXT_B V4L2_MPEG_VBI_IVTV_TELETEXT_B
-#define IVTV_SLICED_TYPE_CAPTION_525 V4L2_MPEG_VBI_IVTV_CAPTION_525
-#define IVTV_SLICED_TYPE_WSS_625 V4L2_MPEG_VBI_IVTV_WSS_625
-#define IVTV_SLICED_TYPE_VPS V4L2_MPEG_VBI_IVTV_VPS
-
-#endif /* _LINUX_IVTV_H */
diff --git a/ANDROID_3.4.5/include/linux/ivtvfb.h b/ANDROID_3.4.5/include/linux/ivtvfb.h
deleted file mode 100644
index e8b92f67..00000000
--- a/ANDROID_3.4.5/include/linux/ivtvfb.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- On Screen Display cx23415 Framebuffer driver
-
- Copyright (C) 2006, 2007 Ian Armstrong <ian@iarmst.demon.co.uk>
-
- 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
- */
-
-#ifndef __LINUX_IVTVFB_H__
-#define __LINUX_IVTVFB_H__
-
-#include <linux/compiler.h>
-#include <linux/types.h>
-
-/* Framebuffer external API */
-
-struct ivtvfb_dma_frame {
- void __user *source;
- unsigned long dest_offset;
- int count;
-};
-
-#define IVTVFB_IOC_DMA_FRAME _IOW('V', BASE_VIDIOC_PRIVATE+0, struct ivtvfb_dma_frame)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ixjuser.h b/ANDROID_3.4.5/include/linux/ixjuser.h
deleted file mode 100644
index 94ab5e94..00000000
--- a/ANDROID_3.4.5/include/linux/ixjuser.h
+++ /dev/null
@@ -1,720 +0,0 @@
-#ifndef __LINUX_IXJUSER_H
-#define __LINUX_IXJUSER_H
-
-/******************************************************************************
- *
- * ixjuser.h
- *
- * Device Driver for Quicknet Technologies, Inc.'s Telephony cards
- * including the Internet PhoneJACK, Internet PhoneJACK Lite,
- * Internet PhoneJACK PCI, Internet LineJACK, Internet PhoneCARD and
- * SmartCABLE
- *
- * (c) Copyright 1999-2001 Quicknet Technologies, Inc.
- *
- * 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.
- *
- * Author: Ed Okerson, <eokerson@quicknet.net>
- *
- * Contributors: Greg Herlein, <gherlein@quicknet.net>
- * David W. Erhart, <derhart@quicknet.net>
- * John Sellers, <jsellers@quicknet.net>
- * Mike Preston, <mpreston@quicknet.net>
- *
- * More information about the hardware related to this driver can be found
- * at our website: http://www.quicknet.net
- *
- * Fixes:
- *
- * IN NO EVENT SHALL QUICKNET TECHNOLOGIES, INC. BE LIABLE TO ANY PARTY FOR
- * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
- * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF QUICKNET
- * TECHNOLOGIES, INC.HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * QUICKNET TECHNOLOGIES, INC. SPECIFICALLY DISCLAIMS ANY WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
- * ON AN "AS IS" BASIS, AND QUICKNET TECHNOLOGIES, INC. HAS NO OBLIGATION
- * TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
- *
- *****************************************************************************/
-
-#include <linux/telephony.h>
-
-
-/******************************************************************************
-*
-* IOCTL's used for the Quicknet Telephony Cards
-*
-* If you use the IXJCTL_TESTRAM command, the card must be power cycled to
-* reset the SRAM values before further use.
-*
-******************************************************************************/
-
-#define IXJCTL_DSP_RESET _IO ('q', 0xC0)
-
-#define IXJCTL_RING PHONE_RING
-#define IXJCTL_HOOKSTATE PHONE_HOOKSTATE
-#define IXJCTL_MAXRINGS PHONE_MAXRINGS
-#define IXJCTL_RING_CADENCE PHONE_RING_CADENCE
-#define IXJCTL_RING_START PHONE_RING_START
-#define IXJCTL_RING_STOP PHONE_RING_STOP
-
-#define IXJCTL_CARDTYPE _IOR ('q', 0xC1, int)
-#define IXJCTL_SERIAL _IOR ('q', 0xC2, int)
-#define IXJCTL_DSP_TYPE _IOR ('q', 0xC3, int)
-#define IXJCTL_DSP_VERSION _IOR ('q', 0xC4, int)
-#define IXJCTL_VERSION _IOR ('q', 0xDA, char *)
-#define IXJCTL_DSP_IDLE _IO ('q', 0xC5)
-#define IXJCTL_TESTRAM _IO ('q', 0xC6)
-
-/******************************************************************************
-*
-* This group of IOCTLs deal with the record settings of the DSP
-*
-* The IXJCTL_REC_DEPTH command sets the internal buffer depth of the DSP.
-* Setting a lower depth reduces latency, but increases the demand of the
-* application to service the driver without frame loss. The DSP has 480
-* bytes of physical buffer memory for the record channel so the true
-* maximum limit is determined by how many frames will fit in the buffer.
-*
-* 1 uncompressed (480 byte) 16-bit linear frame.
-* 2 uncompressed (240 byte) 8-bit A-law/mu-law frames.
-* 15 TrueSpeech 8.5 frames.
-* 20 TrueSpeech 6.3,5.3,4.8 or 4.1 frames.
-*
-* The default in the driver is currently set to 2 frames.
-*
-* The IXJCTL_REC_VOLUME and IXJCTL_PLAY_VOLUME commands both use a Q8
-* number as a parameter, 0x100 scales the signal by 1.0, 0x200 scales the
-* signal by 2.0, 0x80 scales the signal by 0.5. No protection is given
-* against over-scaling, if the multiplication factor times the input
-* signal exceeds 16 bits, overflow distortion will occur. The default
-* setting is 0x100 (1.0).
-*
-* The IXJCTL_REC_LEVEL returns the average signal level (not r.m.s.) on
-* the most recently recorded frame as a 16 bit value.
-******************************************************************************/
-
-#define IXJCTL_REC_CODEC PHONE_REC_CODEC
-#define IXJCTL_REC_START PHONE_REC_START
-#define IXJCTL_REC_STOP PHONE_REC_STOP
-#define IXJCTL_REC_DEPTH PHONE_REC_DEPTH
-#define IXJCTL_FRAME PHONE_FRAME
-#define IXJCTL_REC_VOLUME PHONE_REC_VOLUME
-#define IXJCTL_REC_LEVEL PHONE_REC_LEVEL
-
-typedef enum {
- f300_640 = 4, f300_500, f1100, f350, f400, f480, f440, f620, f20_50,
- f133_200, f300, f300_420, f330, f300_425, f330_440, f340, f350_400,
- f350_440, f350_450, f360, f380_420, f392, f400_425, f400_440, f400_450,
- f420, f425, f425_450, f425_475, f435, f440_450, f440_480, f445, f450,
- f452, f475, f480_620, f494, f500, f520, f523, f525, f540_660, f587,
- f590, f600, f660, f700, f740, f750, f750_1450, f770, f800, f816, f850,
- f857_1645, f900, f900_1300, f935_1215, f941_1477, f942, f950, f950_1400,
- f975, f1000, f1020, f1050, f1100_1750, f1140, f1200, f1209, f1330, f1336,
- lf1366, f1380, f1400, f1477, f1600, f1633_1638, f1800, f1860
-} IXJ_FILTER_FREQ;
-
-typedef struct {
- unsigned int filter;
- IXJ_FILTER_FREQ freq;
- char enable;
-} IXJ_FILTER;
-
-typedef struct {
- char enable;
- char en_filter;
- unsigned int filter;
- unsigned int on1;
- unsigned int off1;
- unsigned int on2;
- unsigned int off2;
- unsigned int on3;
- unsigned int off3;
-} IXJ_FILTER_CADENCE;
-
-#define IXJCTL_SET_FILTER _IOW ('q', 0xC7, IXJ_FILTER *)
-#define IXJCTL_SET_FILTER_RAW _IOW ('q', 0xDD, IXJ_FILTER_RAW *)
-#define IXJCTL_GET_FILTER_HIST _IOW ('q', 0xC8, int)
-#define IXJCTL_FILTER_CADENCE _IOW ('q', 0xD6, IXJ_FILTER_CADENCE *)
-#define IXJCTL_PLAY_CID _IO ('q', 0xD7)
-/******************************************************************************
-*
-* This IOCTL allows you to reassign values in the tone index table. The
-* tone table has 32 entries (0 - 31), but the driver only allows entries
-* 13 - 27 to be modified, entry 0 is reserved for silence and 1 - 12 are
-* the standard DTMF digits and 28 - 31 are the DTMF tones for A, B, C & D.
-* The positions used internally for Call Progress Tones are as follows:
-* Dial Tone - 25
-* Ring Back - 26
-* Busy Signal - 27
-*
-* The freq values are calculated as:
-* freq = cos(2 * PI * frequency / 8000)
-*
-* The most commonly needed values are already calculated and listed in the
-* enum IXJ_TONE_FREQ. Each tone index can have two frequencies with
-* different gains, if you are only using a single frequency set the unused
-* one to 0.
-*
-* The gain values range from 0 to 15 indicating +6dB to -24dB in 2dB
-* increments.
-*
-******************************************************************************/
-
-typedef enum {
- hz20 = 0x7ffa,
- hz50 = 0x7fe5,
- hz133 = 0x7f4c,
- hz200 = 0x7e6b,
- hz261 = 0x7d50, /* .63 C1 */
- hz277 = 0x7cfa, /* .18 CS1 */
- hz293 = 0x7c9f, /* .66 D1 */
- hz300 = 0x7c75,
- hz311 = 0x7c32, /* .13 DS1 */
- hz329 = 0x7bbf, /* .63 E1 */
- hz330 = 0x7bb8,
- hz340 = 0x7b75,
- hz349 = 0x7b37, /* .23 F1 */
- hz350 = 0x7b30,
- hz360 = 0x7ae9,
- hz369 = 0x7aa8, /* .99 FS1 */
- hz380 = 0x7a56,
- hz392 = 0x79fa, /* .00 G1 */
- hz400 = 0x79bb,
- hz415 = 0x7941, /* .30 GS1 */
- hz420 = 0x7918,
- hz425 = 0x78ee,
- hz435 = 0x7899,
- hz440 = 0x786d, /* .00 A1 */
- hz445 = 0x7842,
- hz450 = 0x7815,
- hz452 = 0x7803,
- hz466 = 0x7784, /* .16 AS1 */
- hz475 = 0x7731,
- hz480 = 0x7701,
- hz493 = 0x7685, /* .88 B1 */
- hz494 = 0x767b,
- hz500 = 0x7640,
- hz520 = 0x7578,
- hz523 = 0x7559, /* .25 C2 */
- hz525 = 0x7544,
- hz540 = 0x74a7,
- hz554 = 0x7411, /* .37 CS2 */
- hz587 = 0x72a1, /* .33 D2 */
- hz590 = 0x727f,
- hz600 = 0x720b,
- hz620 = 0x711e,
- hz622 = 0x7106, /* .25 DS2 */
- hz659 = 0x6f3b, /* .26 E2 */
- hz660 = 0x6f2e,
- hz698 = 0x6d3d, /* .46 F2 */
- hz700 = 0x6d22,
- hz739 = 0x6b09, /* .99 FS2 */
- hz740 = 0x6afa,
- hz750 = 0x6a6c,
- hz770 = 0x694b,
- hz783 = 0x688b, /* .99 G2 */
- hz800 = 0x678d,
- hz816 = 0x6698,
- hz830 = 0x65bf, /* .61 GS2 */
- hz850 = 0x6484,
- hz857 = 0x6414,
- hz880 = 0x629f, /* .00 A2 */
- hz900 = 0x6154,
- hz932 = 0x5f35, /* .33 AS2 */
- hz935 = 0x5f01,
- hz941 = 0x5e9a,
- hz942 = 0x5e88,
- hz950 = 0x5dfd,
- hz975 = 0x5c44,
- hz1000 = 0x5a81,
- hz1020 = 0x5912,
- hz1050 = 0x56e2,
- hz1100 = 0x5320,
- hz1140 = 0x5007,
- hz1200 = 0x4b3b,
- hz1209 = 0x4a80,
- hz1215 = 0x4a02,
- hz1250 = 0x471c,
- hz1300 = 0x42e0,
- hz1330 = 0x4049,
- hz1336 = 0x3fc4,
- hz1366 = 0x3d22,
- hz1380 = 0x3be4,
- hz1400 = 0x3a1b,
- hz1450 = 0x3596,
- hz1477 = 0x331c,
- hz1500 = 0x30fb,
- hz1600 = 0x278d,
- hz1633 = 0x2462,
- hz1638 = 0x23e7,
- hz1645 = 0x233a,
- hz1750 = 0x18f8,
- hz1800 = 0x1405,
- hz1860 = 0xe0b,
- hz2100 = 0xf5f6,
- hz2130 = 0xf2f5,
- hz2450 = 0xd3b3,
- hz2750 = 0xb8e4
-} IXJ_FREQ;
-
-typedef enum {
- C1 = hz261,
- CS1 = hz277,
- D1 = hz293,
- DS1 = hz311,
- E1 = hz329,
- F1 = hz349,
- FS1 = hz369,
- G1 = hz392,
- GS1 = hz415,
- A1 = hz440,
- AS1 = hz466,
- B1 = hz493,
- C2 = hz523,
- CS2 = hz554,
- D2 = hz587,
- DS2 = hz622,
- E2 = hz659,
- F2 = hz698,
- FS2 = hz739,
- G2 = hz783,
- GS2 = hz830,
- A2 = hz880,
- AS2 = hz932,
-} IXJ_NOTE;
-
-typedef struct {
- int tone_index;
- int freq0;
- int gain0;
- int freq1;
- int gain1;
-} IXJ_TONE;
-
-#define IXJCTL_INIT_TONE _IOW ('q', 0xC9, IXJ_TONE *)
-
-/******************************************************************************
-*
-* The IXJCTL_TONE_CADENCE ioctl defines tone sequences used for various
-* Call Progress Tones (CPT). This is accomplished by setting up an array of
-* IXJ_CADENCE_ELEMENT structures that sequentially define the states of
-* the tone sequence. The tone_on_time and tone_off time are in
-* 250 microsecond intervals. A pointer to this array is passed to the
-* driver as the ce element of an IXJ_CADENCE structure. The elements_used
-* must be set to the number of IXJ_CADENCE_ELEMENTS in the array. The
-* termination variable defines what to do at the end of a cadence, the
-* options are to play the cadence once and stop, to repeat the last
-* element of the cadence indefinitely, or to repeat the entire cadence
-* indefinitely. The ce variable is a pointer to the array of IXJ_TONE
-* structures. If the freq0 variable is non-zero, the tone table contents
-* for the tone_index are updated to the frequencies and gains defined. It
-* should be noted that DTMF tones cannot be reassigned, so if DTMF tone
-* table indexes are used in a cadence the frequency and gain variables will
-* be ignored.
-*
-* If the array elements contain frequency parameters the driver will
-* initialize the needed tone table elements and begin playing the tone,
-* there is no preset limit on the number of elements in the cadence. If
-* there is more than one frequency used in the cadence, sequential elements
-* of different frequencies MUST use different tone table indexes. Only one
-* cadence can be played at a time. It is possible to build complex
-* cadences with multiple frequencies using 2 tone table indexes by
-* alternating between them.
-*
-******************************************************************************/
-
-typedef struct {
- int index;
- int tone_on_time;
- int tone_off_time;
- int freq0;
- int gain0;
- int freq1;
- int gain1;
-} IXJ_CADENCE_ELEMENT;
-
-typedef enum {
- PLAY_ONCE,
- REPEAT_LAST_ELEMENT,
- REPEAT_ALL
-} IXJ_CADENCE_TERM;
-
-typedef struct {
- int elements_used;
- IXJ_CADENCE_TERM termination;
- IXJ_CADENCE_ELEMENT __user *ce;
-} IXJ_CADENCE;
-
-#define IXJCTL_TONE_CADENCE _IOW ('q', 0xCA, IXJ_CADENCE *)
-/******************************************************************************
-*
-* This group of IOCTLs deal with the playback settings of the DSP
-*
-******************************************************************************/
-
-#define IXJCTL_PLAY_CODEC PHONE_PLAY_CODEC
-#define IXJCTL_PLAY_START PHONE_PLAY_START
-#define IXJCTL_PLAY_STOP PHONE_PLAY_STOP
-#define IXJCTL_PLAY_DEPTH PHONE_PLAY_DEPTH
-#define IXJCTL_PLAY_VOLUME PHONE_PLAY_VOLUME
-#define IXJCTL_PLAY_LEVEL PHONE_PLAY_LEVEL
-
-/******************************************************************************
-*
-* This group of IOCTLs deal with the Acoustic Echo Cancellation settings
-* of the DSP
-*
-* Issuing the IXJCTL_AEC_START command with a value of AEC_OFF has the
-* same effect as IXJCTL_AEC_STOP. This is to simplify slider bar
-* controls. IXJCTL_AEC_GET_LEVEL returns the current setting of the AEC.
-******************************************************************************/
-#define IXJCTL_AEC_START _IOW ('q', 0xCB, int)
-#define IXJCTL_AEC_STOP _IO ('q', 0xCC)
-#define IXJCTL_AEC_GET_LEVEL _IO ('q', 0xCD)
-
-#define AEC_OFF 0
-#define AEC_LOW 1
-#define AEC_MED 2
-#define AEC_HIGH 3
-#define AEC_AUTO 4
-#define AEC_AGC 5
-/******************************************************************************
-*
-* Call Progress Tones, DTMF, etc.
-* IXJCTL_DTMF_OOB determines if DTMF signaling is sent as Out-Of-Band
-* only. If you pass a 1, DTMF is suppressed from the audio stream.
-* Tone on and off times are in 250 microsecond intervals so
-* ioctl(ixj1, IXJCTL_SET_TONE_ON_TIME, 360);
-* will set the tone on time of board ixj1 to 360 * 250us = 90ms
-* the default values of tone on and off times is 840 or 210ms
-******************************************************************************/
-
-#define IXJCTL_DTMF_READY PHONE_DTMF_READY
-#define IXJCTL_GET_DTMF PHONE_GET_DTMF
-#define IXJCTL_GET_DTMF_ASCII PHONE_GET_DTMF_ASCII
-#define IXJCTL_DTMF_OOB PHONE_DTMF_OOB
-#define IXJCTL_EXCEPTION PHONE_EXCEPTION
-#define IXJCTL_PLAY_TONE PHONE_PLAY_TONE
-#define IXJCTL_SET_TONE_ON_TIME PHONE_SET_TONE_ON_TIME
-#define IXJCTL_SET_TONE_OFF_TIME PHONE_SET_TONE_OFF_TIME
-#define IXJCTL_GET_TONE_ON_TIME PHONE_GET_TONE_ON_TIME
-#define IXJCTL_GET_TONE_OFF_TIME PHONE_GET_TONE_OFF_TIME
-#define IXJCTL_GET_TONE_STATE PHONE_GET_TONE_STATE
-#define IXJCTL_BUSY PHONE_BUSY
-#define IXJCTL_RINGBACK PHONE_RINGBACK
-#define IXJCTL_DIALTONE PHONE_DIALTONE
-#define IXJCTL_CPT_STOP PHONE_CPT_STOP
-
-/******************************************************************************
-* LineJACK specific IOCTLs
-*
-* The lsb 4 bits of the LED argument represent the state of each of the 4
-* LED's on the LineJACK
-******************************************************************************/
-
-#define IXJCTL_SET_LED _IOW ('q', 0xCE, int)
-#define IXJCTL_MIXER _IOW ('q', 0xCF, int)
-
-/******************************************************************************
-*
-* The master volume controls use attenuation with 32 levels from 0 to -62dB
-* with steps of 2dB each, the defines should be OR'ed together then sent
-* as the parameter to the mixer command to change the mixer settings.
-*
-******************************************************************************/
-#define MIXER_MASTER_L 0x0000
-#define MIXER_MASTER_R 0x0100
-#define ATT00DB 0x00
-#define ATT02DB 0x01
-#define ATT04DB 0x02
-#define ATT06DB 0x03
-#define ATT08DB 0x04
-#define ATT10DB 0x05
-#define ATT12DB 0x06
-#define ATT14DB 0x07
-#define ATT16DB 0x08
-#define ATT18DB 0x09
-#define ATT20DB 0x0A
-#define ATT22DB 0x0B
-#define ATT24DB 0x0C
-#define ATT26DB 0x0D
-#define ATT28DB 0x0E
-#define ATT30DB 0x0F
-#define ATT32DB 0x10
-#define ATT34DB 0x11
-#define ATT36DB 0x12
-#define ATT38DB 0x13
-#define ATT40DB 0x14
-#define ATT42DB 0x15
-#define ATT44DB 0x16
-#define ATT46DB 0x17
-#define ATT48DB 0x18
-#define ATT50DB 0x19
-#define ATT52DB 0x1A
-#define ATT54DB 0x1B
-#define ATT56DB 0x1C
-#define ATT58DB 0x1D
-#define ATT60DB 0x1E
-#define ATT62DB 0x1F
-#define MASTER_MUTE 0x80
-
-/******************************************************************************
-*
-* The input volume controls use gain with 32 levels from +12dB to -50dB
-* with steps of 2dB each, the defines should be OR'ed together then sent
-* as the parameter to the mixer command to change the mixer settings.
-*
-******************************************************************************/
-#define MIXER_PORT_CD_L 0x0600
-#define MIXER_PORT_CD_R 0x0700
-#define MIXER_PORT_LINE_IN_L 0x0800
-#define MIXER_PORT_LINE_IN_R 0x0900
-#define MIXER_PORT_POTS_REC 0x0C00
-#define MIXER_PORT_MIC 0x0E00
-
-#define GAIN12DB 0x00
-#define GAIN10DB 0x01
-#define GAIN08DB 0x02
-#define GAIN06DB 0x03
-#define GAIN04DB 0x04
-#define GAIN02DB 0x05
-#define GAIN00DB 0x06
-#define GAIN_02DB 0x07
-#define GAIN_04DB 0x08
-#define GAIN_06DB 0x09
-#define GAIN_08DB 0x0A
-#define GAIN_10DB 0x0B
-#define GAIN_12DB 0x0C
-#define GAIN_14DB 0x0D
-#define GAIN_16DB 0x0E
-#define GAIN_18DB 0x0F
-#define GAIN_20DB 0x10
-#define GAIN_22DB 0x11
-#define GAIN_24DB 0x12
-#define GAIN_26DB 0x13
-#define GAIN_28DB 0x14
-#define GAIN_30DB 0x15
-#define GAIN_32DB 0x16
-#define GAIN_34DB 0x17
-#define GAIN_36DB 0x18
-#define GAIN_38DB 0x19
-#define GAIN_40DB 0x1A
-#define GAIN_42DB 0x1B
-#define GAIN_44DB 0x1C
-#define GAIN_46DB 0x1D
-#define GAIN_48DB 0x1E
-#define GAIN_50DB 0x1F
-#define INPUT_MUTE 0x80
-
-/******************************************************************************
-*
-* The POTS volume control use attenuation with 8 levels from 0dB to -28dB
-* with steps of 4dB each, the defines should be OR'ed together then sent
-* as the parameter to the mixer command to change the mixer settings.
-*
-******************************************************************************/
-#define MIXER_PORT_POTS_PLAY 0x0F00
-
-#define POTS_ATT_00DB 0x00
-#define POTS_ATT_04DB 0x01
-#define POTS_ATT_08DB 0x02
-#define POTS_ATT_12DB 0x03
-#define POTS_ATT_16DB 0x04
-#define POTS_ATT_20DB 0x05
-#define POTS_ATT_24DB 0x06
-#define POTS_ATT_28DB 0x07
-#define POTS_MUTE 0x80
-
-/******************************************************************************
-*
-* The DAA controls the interface to the PSTN port. The driver loads the
-* US coefficients by default, so if you live in a different country you
-* need to load the set for your countries phone system.
-*
-******************************************************************************/
-#define IXJCTL_DAA_COEFF_SET _IOW ('q', 0xD0, int)
-
-#define DAA_US 1 /*PITA 8kHz */
-#define DAA_UK 2 /*ISAR34 8kHz */
-#define DAA_FRANCE 3 /* */
-#define DAA_GERMANY 4
-#define DAA_AUSTRALIA 5
-#define DAA_JAPAN 6
-
-/******************************************************************************
-*
-* Use IXJCTL_PORT to set or query the port the card is set to. If the
-* argument is set to PORT_QUERY, the return value of the ioctl will
-* indicate which port is currently in use, otherwise it will change the
-* port.
-*
-******************************************************************************/
-#define IXJCTL_PORT _IOW ('q', 0xD1, int)
-
-#define PORT_QUERY 0
-#define PORT_POTS 1
-#define PORT_PSTN 2
-#define PORT_SPEAKER 3
-#define PORT_HANDSET 4
-
-#define IXJCTL_PSTN_SET_STATE PHONE_PSTN_SET_STATE
-#define IXJCTL_PSTN_GET_STATE PHONE_PSTN_GET_STATE
-
-#define PSTN_ON_HOOK 0
-#define PSTN_RINGING 1
-#define PSTN_OFF_HOOK 2
-#define PSTN_PULSE_DIAL 3
-
-/******************************************************************************
-*
-* The DAA Analog GAIN sets 2 parameters at one time, the receive gain (AGRR),
-* and the transmit gain (AGX). OR together the components and pass them
-* as the parameter to IXJCTL_DAA_AGAIN. The default setting is both at 0dB.
-*
-******************************************************************************/
-#define IXJCTL_DAA_AGAIN _IOW ('q', 0xD2, int)
-
-#define AGRR00DB 0x00 /* Analog gain in receive direction 0dB */
-#define AGRR3_5DB 0x10 /* Analog gain in receive direction 3.5dB */
-#define AGRR06DB 0x30 /* Analog gain in receive direction 6dB */
-
-#define AGX00DB 0x00 /* Analog gain in transmit direction 0dB */
-#define AGX_6DB 0x04 /* Analog gain in transmit direction -6dB */
-#define AGX3_5DB 0x08 /* Analog gain in transmit direction 3.5dB */
-#define AGX_2_5B 0x0C /* Analog gain in transmit direction -2.5dB */
-
-#define IXJCTL_PSTN_LINETEST _IO ('q', 0xD3)
-
-#define IXJCTL_CID _IOR ('q', 0xD4, PHONE_CID *)
-#define IXJCTL_VMWI _IOR ('q', 0xD8, int)
-#define IXJCTL_CIDCW _IOW ('q', 0xD9, PHONE_CID *)
-/******************************************************************************
-*
-* The wink duration is tunable with this ioctl. The default wink duration
-* is 320ms. You do not need to use this ioctl if you do not require a
-* different wink duration.
-*
-******************************************************************************/
-#define IXJCTL_WINK_DURATION PHONE_WINK_DURATION
-
-/******************************************************************************
-*
-* This ioctl will connect the POTS port to the PSTN port on the LineJACK
-* In order for this to work properly the port selection should be set to
-* the PSTN port with IXJCTL_PORT prior to calling this ioctl. This will
-* enable conference calls between PSTN callers and network callers.
-* Passing a 1 to this ioctl enables the POTS<->PSTN connection while
-* passing a 0 turns it back off.
-*
-******************************************************************************/
-#define IXJCTL_POTS_PSTN _IOW ('q', 0xD5, int)
-
-/******************************************************************************
-*
-* IOCTLs added by request.
-*
-* IXJCTL_HZ sets the value your Linux kernel uses for HZ as defined in
-* /usr/include/asm/param.h, this determines the fundamental
-* frequency of the clock ticks on your Linux system. The kernel
-* must be rebuilt if you change this value, also all modules you
-* use (except this one) must be recompiled. The default value
-* is 100, and you only need to use this IOCTL if you use some
-* other value.
-*
-*
-* IXJCTL_RATE sets the number of times per second that the driver polls
-* the DSP. This value cannot be larger than HZ. By
-* increasing both of these values, you may be able to reduce
-* latency because the max hang time that can exist between the
-* driver and the DSP will be reduced.
-*
-******************************************************************************/
-
-#define IXJCTL_HZ _IOW ('q', 0xE0, int)
-#define IXJCTL_RATE _IOW ('q', 0xE1, int)
-#define IXJCTL_FRAMES_READ _IOR ('q', 0xE2, unsigned long)
-#define IXJCTL_FRAMES_WRITTEN _IOR ('q', 0xE3, unsigned long)
-#define IXJCTL_READ_WAIT _IOR ('q', 0xE4, unsigned long)
-#define IXJCTL_WRITE_WAIT _IOR ('q', 0xE5, unsigned long)
-#define IXJCTL_DRYBUFFER_READ _IOR ('q', 0xE6, unsigned long)
-#define IXJCTL_DRYBUFFER_CLEAR _IO ('q', 0xE7)
-#define IXJCTL_DTMF_PRESCALE _IOW ('q', 0xE8, int)
-
-/******************************************************************************
-*
-* This ioctl allows the user application to control what events the driver
-* will send signals for, and what signals it will send for which event.
-* By default, if signaling is enabled, all events will send SIGIO when
-* they occur. To disable signals for an event set the signal to 0.
-*
-******************************************************************************/
-typedef enum {
- SIG_DTMF_READY,
- SIG_HOOKSTATE,
- SIG_FLASH,
- SIG_PSTN_RING,
- SIG_CALLER_ID,
- SIG_PSTN_WINK,
- SIG_F0, SIG_F1, SIG_F2, SIG_F3,
- SIG_FC0, SIG_FC1, SIG_FC2, SIG_FC3,
- SIG_READ_READY = 33,
- SIG_WRITE_READY = 34
-} IXJ_SIGEVENT;
-
-typedef struct {
- unsigned int event;
- int signal;
-} IXJ_SIGDEF;
-
-#define IXJCTL_SIGCTL _IOW ('q', 0xE9, IXJ_SIGDEF *)
-
-/******************************************************************************
-*
-* These ioctls allow the user application to change the gain in the
-* Smart Cable of the Internet Phone Card. Sending -1 as a value will cause
-* return value to be the current setting. Valid values to set are 0x00 - 0x1F
-*
-* 11111 = +12 dB
-* 10111 = 0 dB
-* 00000 = -34.5 dB
-*
-* IXJCTL_SC_RXG sets the Receive gain
-* IXJCTL_SC_TXG sets the Transmit gain
-*
-******************************************************************************/
-#define IXJCTL_SC_RXG _IOW ('q', 0xEA, int)
-#define IXJCTL_SC_TXG _IOW ('q', 0xEB, int)
-
-/******************************************************************************
-*
-* The intercom IOCTL's short the output from one card to the input of the
-* other and vice versa (actually done in the DSP read function). It is only
-* necessary to execute the IOCTL on one card, but it is necessary to have
-* both devices open to be able to detect hook switch changes. The record
-* codec and rate of each card must match the playback codec and rate of
-* the other card for this to work properly.
-*
-******************************************************************************/
-
-#define IXJCTL_INTERCOM_START _IOW ('q', 0xFD, int)
-#define IXJCTL_INTERCOM_STOP _IOW ('q', 0xFE, int)
-
-/******************************************************************************
- *
- * new structure for accessing raw filter information
- *
- ******************************************************************************/
-
-typedef struct {
- unsigned int filter;
- char enable;
- unsigned int coeff[19];
-} IXJ_FILTER_RAW;
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/jbd.h b/ANDROID_3.4.5/include/linux/jbd.h
deleted file mode 100644
index d211732b..00000000
--- a/ANDROID_3.4.5/include/linux/jbd.h
+++ /dev/null
@@ -1,1031 +0,0 @@
-/*
- * linux/include/linux/jbd.h
- *
- * Written by Stephen C. Tweedie <sct@redhat.com>
- *
- * Copyright 1998-2000 Red Hat, Inc --- All Rights Reserved
- *
- * This file is part of the Linux kernel and is made available under
- * the terms of the GNU General Public License, version 2, or at your
- * option, any later version, incorporated herein by reference.
- *
- * Definitions for transaction data structures for the buffer cache
- * filesystem journaling support.
- */
-
-#ifndef _LINUX_JBD_H
-#define _LINUX_JBD_H
-
-/* Allow this file to be included directly into e2fsprogs */
-#ifndef __KERNEL__
-#include "jfs_compat.h"
-#define JFS_DEBUG
-#define jfs_debug jbd_debug
-#else
-
-#include <linux/types.h>
-#include <linux/buffer_head.h>
-#include <linux/journal-head.h>
-#include <linux/stddef.h>
-#include <linux/bit_spinlock.h>
-#include <linux/mutex.h>
-#include <linux/timer.h>
-#include <linux/lockdep.h>
-#include <linux/slab.h>
-
-#define journal_oom_retry 1
-
-/*
- * Define JBD_PARANOID_IOFAIL to cause a kernel BUG() if ext3 finds
- * certain classes of error which can occur due to failed IOs. Under
- * normal use we want ext3 to continue after such errors, because
- * hardware _can_ fail, but for debugging purposes when running tests on
- * known-good hardware we may want to trap these errors.
- */
-#undef JBD_PARANOID_IOFAIL
-
-/*
- * The default maximum commit age, in seconds.
- */
-#define JBD_DEFAULT_MAX_COMMIT_AGE 5
-
-#ifdef CONFIG_JBD_DEBUG
-/*
- * Define JBD_EXPENSIVE_CHECKING to enable more expensive internal
- * consistency checks. By default we don't do this unless
- * CONFIG_JBD_DEBUG is on.
- */
-#define JBD_EXPENSIVE_CHECKING
-extern u8 journal_enable_debug;
-
-#define jbd_debug(n, f, a...) \
- do { \
- if ((n) <= journal_enable_debug) { \
- printk (KERN_DEBUG "(%s, %d): %s: ", \
- __FILE__, __LINE__, __func__); \
- printk (f, ## a); \
- } \
- } while (0)
-#else
-#define jbd_debug(f, a...) /**/
-#endif
-
-static inline void *jbd_alloc(size_t size, gfp_t flags)
-{
- return (void *)__get_free_pages(flags, get_order(size));
-}
-
-static inline void jbd_free(void *ptr, size_t size)
-{
- free_pages((unsigned long)ptr, get_order(size));
-};
-
-#define JFS_MIN_JOURNAL_BLOCKS 1024
-
-
-/**
- * typedef handle_t - The handle_t type represents a single atomic update being performed by some process.
- *
- * All filesystem modifications made by the process go
- * through this handle. Recursive operations (such as quota operations)
- * are gathered into a single update.
- *
- * The buffer credits field is used to account for journaled buffers
- * being modified by the running process. To ensure that there is
- * enough log space for all outstanding operations, we need to limit the
- * number of outstanding buffers possible at any time. When the
- * operation completes, any buffer credits not used are credited back to
- * the transaction, so that at all times we know how many buffers the
- * outstanding updates on a transaction might possibly touch.
- *
- * This is an opaque datatype.
- **/
-typedef struct handle_s handle_t; /* Atomic operation type */
-
-
-/**
- * typedef journal_t - The journal_t maintains all of the journaling state information for a single filesystem.
- *
- * journal_t is linked to from the fs superblock structure.
- *
- * We use the journal_t to keep track of all outstanding transaction
- * activity on the filesystem, and to manage the state of the log
- * writing process.
- *
- * This is an opaque datatype.
- **/
-typedef struct journal_s journal_t; /* Journal control structure */
-#endif
-
-/*
- * Internal structures used by the logging mechanism:
- */
-
-#define JFS_MAGIC_NUMBER 0xc03b3998U /* The first 4 bytes of /dev/random! */
-
-/*
- * On-disk structures
- */
-
-/*
- * Descriptor block types:
- */
-
-#define JFS_DESCRIPTOR_BLOCK 1
-#define JFS_COMMIT_BLOCK 2
-#define JFS_SUPERBLOCK_V1 3
-#define JFS_SUPERBLOCK_V2 4
-#define JFS_REVOKE_BLOCK 5
-
-/*
- * Standard header for all descriptor blocks:
- */
-typedef struct journal_header_s
-{
- __be32 h_magic;
- __be32 h_blocktype;
- __be32 h_sequence;
-} journal_header_t;
-
-
-/*
- * The block tag: used to describe a single buffer in the journal
- */
-typedef struct journal_block_tag_s
-{
- __be32 t_blocknr; /* The on-disk block number */
- __be32 t_flags; /* See below */
-} journal_block_tag_t;
-
-/*
- * The revoke descriptor: used on disk to describe a series of blocks to
- * be revoked from the log
- */
-typedef struct journal_revoke_header_s
-{
- journal_header_t r_header;
- __be32 r_count; /* Count of bytes used in the block */
-} journal_revoke_header_t;
-
-
-/* Definitions for the journal tag flags word: */
-#define JFS_FLAG_ESCAPE 1 /* on-disk block is escaped */
-#define JFS_FLAG_SAME_UUID 2 /* block has same uuid as previous */
-#define JFS_FLAG_DELETED 4 /* block deleted by this transaction */
-#define JFS_FLAG_LAST_TAG 8 /* last tag in this descriptor block */
-
-
-/*
- * The journal superblock. All fields are in big-endian byte order.
- */
-typedef struct journal_superblock_s
-{
-/* 0x0000 */
- journal_header_t s_header;
-
-/* 0x000C */
- /* Static information describing the journal */
- __be32 s_blocksize; /* journal device blocksize */
- __be32 s_maxlen; /* total blocks in journal file */
- __be32 s_first; /* first block of log information */
-
-/* 0x0018 */
- /* Dynamic information describing the current state of the log */
- __be32 s_sequence; /* first commit ID expected in log */
- __be32 s_start; /* blocknr of start of log */
-
-/* 0x0020 */
- /* Error value, as set by journal_abort(). */
- __be32 s_errno;
-
-/* 0x0024 */
- /* Remaining fields are only valid in a version-2 superblock */
- __be32 s_feature_compat; /* compatible feature set */
- __be32 s_feature_incompat; /* incompatible feature set */
- __be32 s_feature_ro_compat; /* readonly-compatible feature set */
-/* 0x0030 */
- __u8 s_uuid[16]; /* 128-bit uuid for journal */
-
-/* 0x0040 */
- __be32 s_nr_users; /* Nr of filesystems sharing log */
-
- __be32 s_dynsuper; /* Blocknr of dynamic superblock copy*/
-
-/* 0x0048 */
- __be32 s_max_transaction; /* Limit of journal blocks per trans.*/
- __be32 s_max_trans_data; /* Limit of data blocks per trans. */
-
-/* 0x0050 */
- __u32 s_padding[44];
-
-/* 0x0100 */
- __u8 s_users[16*48]; /* ids of all fs'es sharing the log */
-/* 0x0400 */
-} journal_superblock_t;
-
-#define JFS_HAS_COMPAT_FEATURE(j,mask) \
- ((j)->j_format_version >= 2 && \
- ((j)->j_superblock->s_feature_compat & cpu_to_be32((mask))))
-#define JFS_HAS_RO_COMPAT_FEATURE(j,mask) \
- ((j)->j_format_version >= 2 && \
- ((j)->j_superblock->s_feature_ro_compat & cpu_to_be32((mask))))
-#define JFS_HAS_INCOMPAT_FEATURE(j,mask) \
- ((j)->j_format_version >= 2 && \
- ((j)->j_superblock->s_feature_incompat & cpu_to_be32((mask))))
-
-#define JFS_FEATURE_INCOMPAT_REVOKE 0x00000001
-
-/* Features known to this kernel version: */
-#define JFS_KNOWN_COMPAT_FEATURES 0
-#define JFS_KNOWN_ROCOMPAT_FEATURES 0
-#define JFS_KNOWN_INCOMPAT_FEATURES JFS_FEATURE_INCOMPAT_REVOKE
-
-#ifdef __KERNEL__
-
-#include <linux/fs.h>
-#include <linux/sched.h>
-#include <linux/jbd_common.h>
-
-#define J_ASSERT(assert) BUG_ON(!(assert))
-
-#define J_ASSERT_BH(bh, expr) J_ASSERT(expr)
-#define J_ASSERT_JH(jh, expr) J_ASSERT(expr)
-
-#if defined(JBD_PARANOID_IOFAIL)
-#define J_EXPECT(expr, why...) J_ASSERT(expr)
-#define J_EXPECT_BH(bh, expr, why...) J_ASSERT_BH(bh, expr)
-#define J_EXPECT_JH(jh, expr, why...) J_ASSERT_JH(jh, expr)
-#else
-#define __journal_expect(expr, why...) \
- ({ \
- int val = (expr); \
- if (!val) { \
- printk(KERN_ERR \
- "EXT3-fs unexpected failure: %s;\n",# expr); \
- printk(KERN_ERR why "\n"); \
- } \
- val; \
- })
-#define J_EXPECT(expr, why...) __journal_expect(expr, ## why)
-#define J_EXPECT_BH(bh, expr, why...) __journal_expect(expr, ## why)
-#define J_EXPECT_JH(jh, expr, why...) __journal_expect(expr, ## why)
-#endif
-
-struct jbd_revoke_table_s;
-
-/**
- * struct handle_s - this is the concrete type associated with handle_t.
- * @h_transaction: Which compound transaction is this update a part of?
- * @h_buffer_credits: Number of remaining buffers we are allowed to dirty.
- * @h_ref: Reference count on this handle
- * @h_err: Field for caller's use to track errors through large fs operations
- * @h_sync: flag for sync-on-close
- * @h_jdata: flag to force data journaling
- * @h_aborted: flag indicating fatal error on handle
- * @h_lockdep_map: lockdep info for debugging lock problems
- */
-struct handle_s
-{
- /* Which compound transaction is this update a part of? */
- transaction_t *h_transaction;
-
- /* Number of remaining buffers we are allowed to dirty: */
- int h_buffer_credits;
-
- /* Reference count on this handle */
- int h_ref;
-
- /* Field for caller's use to track errors through large fs */
- /* operations */
- int h_err;
-
- /* Flags [no locking] */
- unsigned int h_sync: 1; /* sync-on-close */
- unsigned int h_jdata: 1; /* force data journaling */
- unsigned int h_aborted: 1; /* fatal error on handle */
-
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
- struct lockdep_map h_lockdep_map;
-#endif
-};
-
-
-/* The transaction_t type is the guts of the journaling mechanism. It
- * tracks a compound transaction through its various states:
- *
- * RUNNING: accepting new updates
- * LOCKED: Updates still running but we don't accept new ones
- * RUNDOWN: Updates are tidying up but have finished requesting
- * new buffers to modify (state not used for now)
- * FLUSH: All updates complete, but we are still writing to disk
- * COMMIT: All data on disk, writing commit record
- * FINISHED: We still have to keep the transaction for checkpointing.
- *
- * The transaction keeps track of all of the buffers modified by a
- * running transaction, and all of the buffers committed but not yet
- * flushed to home for finished transactions.
- */
-
-/*
- * Lock ranking:
- *
- * j_list_lock
- * ->jbd_lock_bh_journal_head() (This is "innermost")
- *
- * j_state_lock
- * ->jbd_lock_bh_state()
- *
- * jbd_lock_bh_state()
- * ->j_list_lock
- *
- * j_state_lock
- * ->t_handle_lock
- *
- * j_state_lock
- * ->j_list_lock (journal_unmap_buffer)
- *
- */
-
-struct transaction_s
-{
- /* Pointer to the journal for this transaction. [no locking] */
- journal_t *t_journal;
-
- /* Sequence number for this transaction [no locking] */
- tid_t t_tid;
-
- /*
- * Transaction's current state
- * [no locking - only kjournald alters this]
- * [j_list_lock] guards transition of a transaction into T_FINISHED
- * state and subsequent call of __journal_drop_transaction()
- * FIXME: needs barriers
- * KLUDGE: [use j_state_lock]
- */
- enum {
- T_RUNNING,
- T_LOCKED,
- T_FLUSH,
- T_COMMIT,
- T_COMMIT_RECORD,
- T_FINISHED
- } t_state;
-
- /*
- * Where in the log does this transaction's commit start? [no locking]
- */
- unsigned int t_log_start;
-
- /* Number of buffers on the t_buffers list [j_list_lock] */
- int t_nr_buffers;
-
- /*
- * Doubly-linked circular list of all buffers reserved but not yet
- * modified by this transaction [j_list_lock]
- */
- struct journal_head *t_reserved_list;
-
- /*
- * Doubly-linked circular list of all buffers under writeout during
- * commit [j_list_lock]
- */
- struct journal_head *t_locked_list;
-
- /*
- * Doubly-linked circular list of all metadata buffers owned by this
- * transaction [j_list_lock]
- */
- struct journal_head *t_buffers;
-
- /*
- * Doubly-linked circular list of all data buffers still to be
- * flushed before this transaction can be committed [j_list_lock]
- */
- struct journal_head *t_sync_datalist;
-
- /*
- * Doubly-linked circular list of all forget buffers (superseded
- * buffers which we can un-checkpoint once this transaction commits)
- * [j_list_lock]
- */
- struct journal_head *t_forget;
-
- /*
- * Doubly-linked circular list of all buffers still to be flushed before
- * this transaction can be checkpointed. [j_list_lock]
- */
- struct journal_head *t_checkpoint_list;
-
- /*
- * Doubly-linked circular list of all buffers submitted for IO while
- * checkpointing. [j_list_lock]
- */
- struct journal_head *t_checkpoint_io_list;
-
- /*
- * Doubly-linked circular list of temporary buffers currently undergoing
- * IO in the log [j_list_lock]
- */
- struct journal_head *t_iobuf_list;
-
- /*
- * Doubly-linked circular list of metadata buffers being shadowed by log
- * IO. The IO buffers on the iobuf list and the shadow buffers on this
- * list match each other one for one at all times. [j_list_lock]
- */
- struct journal_head *t_shadow_list;
-
- /*
- * Doubly-linked circular list of control buffers being written to the
- * log. [j_list_lock]
- */
- struct journal_head *t_log_list;
-
- /*
- * Protects info related to handles
- */
- spinlock_t t_handle_lock;
-
- /*
- * Number of outstanding updates running on this transaction
- * [t_handle_lock]
- */
- int t_updates;
-
- /*
- * Number of buffers reserved for use by all handles in this transaction
- * handle but not yet modified. [t_handle_lock]
- */
- int t_outstanding_credits;
-
- /*
- * Forward and backward links for the circular list of all transactions
- * awaiting checkpoint. [j_list_lock]
- */
- transaction_t *t_cpnext, *t_cpprev;
-
- /*
- * When will the transaction expire (become due for commit), in jiffies?
- * [no locking]
- */
- unsigned long t_expires;
-
- /*
- * When this transaction started, in nanoseconds [no locking]
- */
- ktime_t t_start_time;
-
- /*
- * How many handles used this transaction? [t_handle_lock]
- */
- int t_handle_count;
-
- /*
- * This transaction is being forced and some process is
- * waiting for it to finish.
- */
- unsigned int t_synchronous_commit:1;
-};
-
-/**
- * struct journal_s - this is the concrete type associated with journal_t.
- * @j_flags: General journaling state flags
- * @j_errno: Is there an outstanding uncleared error on the journal (from a
- * prior abort)?
- * @j_sb_buffer: First part of superblock buffer
- * @j_superblock: Second part of superblock buffer
- * @j_format_version: Version of the superblock format
- * @j_state_lock: Protect the various scalars in the journal
- * @j_barrier_count: Number of processes waiting to create a barrier lock
- * @j_running_transaction: The current running transaction..
- * @j_committing_transaction: the transaction we are pushing to disk
- * @j_checkpoint_transactions: a linked circular list of all transactions
- * waiting for checkpointing
- * @j_wait_transaction_locked: Wait queue for waiting for a locked transaction
- * to start committing, or for a barrier lock to be released
- * @j_wait_logspace: Wait queue for waiting for checkpointing to complete
- * @j_wait_done_commit: Wait queue for waiting for commit to complete
- * @j_wait_checkpoint: Wait queue to trigger checkpointing
- * @j_wait_commit: Wait queue to trigger commit
- * @j_wait_updates: Wait queue to wait for updates to complete
- * @j_checkpoint_mutex: Mutex for locking against concurrent checkpoints
- * @j_head: Journal head - identifies the first unused block in the journal
- * @j_tail: Journal tail - identifies the oldest still-used block in the
- * journal.
- * @j_free: Journal free - how many free blocks are there in the journal?
- * @j_first: The block number of the first usable block
- * @j_last: The block number one beyond the last usable block
- * @j_dev: Device where we store the journal
- * @j_blocksize: blocksize for the location where we store the journal.
- * @j_blk_offset: starting block offset for into the device where we store the
- * journal
- * @j_fs_dev: Device which holds the client fs. For internal journal this will
- * be equal to j_dev
- * @j_maxlen: Total maximum capacity of the journal region on disk.
- * @j_list_lock: Protects the buffer lists and internal buffer state.
- * @j_inode: Optional inode where we store the journal. If present, all journal
- * block numbers are mapped into this inode via bmap().
- * @j_tail_sequence: Sequence number of the oldest transaction in the log
- * @j_transaction_sequence: Sequence number of the next transaction to grant
- * @j_commit_sequence: Sequence number of the most recently committed
- * transaction
- * @j_commit_request: Sequence number of the most recent transaction wanting
- * commit
- * @j_uuid: Uuid of client object.
- * @j_task: Pointer to the current commit thread for this journal
- * @j_max_transaction_buffers: Maximum number of metadata buffers to allow in a
- * single compound commit transaction
- * @j_commit_interval: What is the maximum transaction lifetime before we begin
- * a commit?
- * @j_commit_timer: The timer used to wakeup the commit thread
- * @j_revoke_lock: Protect the revoke table
- * @j_revoke: The revoke table - maintains the list of revoked blocks in the
- * current transaction.
- * @j_revoke_table: alternate revoke tables for j_revoke
- * @j_wbuf: array of buffer_heads for journal_commit_transaction
- * @j_wbufsize: maximum number of buffer_heads allowed in j_wbuf, the
- * number that will fit in j_blocksize
- * @j_last_sync_writer: most recent pid which did a synchronous write
- * @j_average_commit_time: the average amount of time in nanoseconds it
- * takes to commit a transaction to the disk.
- * @j_private: An opaque pointer to fs-private information.
- */
-
-struct journal_s
-{
- /* General journaling state flags [j_state_lock] */
- unsigned long j_flags;
-
- /*
- * Is there an outstanding uncleared error on the journal (from a prior
- * abort)? [j_state_lock]
- */
- int j_errno;
-
- /* The superblock buffer */
- struct buffer_head *j_sb_buffer;
- journal_superblock_t *j_superblock;
-
- /* Version of the superblock format */
- int j_format_version;
-
- /*
- * Protect the various scalars in the journal
- */
- spinlock_t j_state_lock;
-
- /*
- * Number of processes waiting to create a barrier lock [j_state_lock]
- */
- int j_barrier_count;
-
- /*
- * Transactions: The current running transaction...
- * [j_state_lock] [caller holding open handle]
- */
- transaction_t *j_running_transaction;
-
- /*
- * the transaction we are pushing to disk
- * [j_state_lock] [caller holding open handle]
- */
- transaction_t *j_committing_transaction;
-
- /*
- * ... and a linked circular list of all transactions waiting for
- * checkpointing. [j_list_lock]
- */
- transaction_t *j_checkpoint_transactions;
-
- /*
- * Wait queue for waiting for a locked transaction to start committing,
- * or for a barrier lock to be released
- */
- wait_queue_head_t j_wait_transaction_locked;
-
- /* Wait queue for waiting for checkpointing to complete */
- wait_queue_head_t j_wait_logspace;
-
- /* Wait queue for waiting for commit to complete */
- wait_queue_head_t j_wait_done_commit;
-
- /* Wait queue to trigger checkpointing */
- wait_queue_head_t j_wait_checkpoint;
-
- /* Wait queue to trigger commit */
- wait_queue_head_t j_wait_commit;
-
- /* Wait queue to wait for updates to complete */
- wait_queue_head_t j_wait_updates;
-
- /* Semaphore for locking against concurrent checkpoints */
- struct mutex j_checkpoint_mutex;
-
- /*
- * Journal head: identifies the first unused block in the journal.
- * [j_state_lock]
- */
- unsigned int j_head;
-
- /*
- * Journal tail: identifies the oldest still-used block in the journal.
- * [j_state_lock]
- */
- unsigned int j_tail;
-
- /*
- * Journal free: how many free blocks are there in the journal?
- * [j_state_lock]
- */
- unsigned int j_free;
-
- /*
- * Journal start and end: the block numbers of the first usable block
- * and one beyond the last usable block in the journal. [j_state_lock]
- */
- unsigned int j_first;
- unsigned int j_last;
-
- /*
- * Device, blocksize and starting block offset for the location where we
- * store the journal.
- */
- struct block_device *j_dev;
- int j_blocksize;
- unsigned int j_blk_offset;
-
- /*
- * Device which holds the client fs. For internal journal this will be
- * equal to j_dev.
- */
- struct block_device *j_fs_dev;
-
- /* Total maximum capacity of the journal region on disk. */
- unsigned int j_maxlen;
-
- /*
- * Protects the buffer lists and internal buffer state.
- */
- spinlock_t j_list_lock;
-
- /* Optional inode where we store the journal. If present, all */
- /* journal block numbers are mapped into this inode via */
- /* bmap(). */
- struct inode *j_inode;
-
- /*
- * Sequence number of the oldest transaction in the log [j_state_lock]
- */
- tid_t j_tail_sequence;
-
- /*
- * Sequence number of the next transaction to grant [j_state_lock]
- */
- tid_t j_transaction_sequence;
-
- /*
- * Sequence number of the most recently committed transaction
- * [j_state_lock].
- */
- tid_t j_commit_sequence;
-
- /*
- * Sequence number of the most recent transaction wanting commit
- * [j_state_lock]
- */
- tid_t j_commit_request;
-
- /*
- * Journal uuid: identifies the object (filesystem, LVM volume etc)
- * backed by this journal. This will eventually be replaced by an array
- * of uuids, allowing us to index multiple devices within a single
- * journal and to perform atomic updates across them.
- */
- __u8 j_uuid[16];
-
- /* Pointer to the current commit thread for this journal */
- struct task_struct *j_task;
-
- /*
- * Maximum number of metadata buffers to allow in a single compound
- * commit transaction
- */
- int j_max_transaction_buffers;
-
- /*
- * What is the maximum transaction lifetime before we begin a commit?
- */
- unsigned long j_commit_interval;
-
- /* The timer used to wakeup the commit thread: */
- struct timer_list j_commit_timer;
-
- /*
- * The revoke table: maintains the list of revoked blocks in the
- * current transaction. [j_revoke_lock]
- */
- spinlock_t j_revoke_lock;
- struct jbd_revoke_table_s *j_revoke;
- struct jbd_revoke_table_s *j_revoke_table[2];
-
- /*
- * array of bhs for journal_commit_transaction
- */
- struct buffer_head **j_wbuf;
- int j_wbufsize;
-
- /*
- * this is the pid of the last person to run a synchronous operation
- * through the journal.
- */
- pid_t j_last_sync_writer;
-
- /*
- * the average amount of time in nanoseconds it takes to commit a
- * transaction to the disk. [j_state_lock]
- */
- u64 j_average_commit_time;
-
- /*
- * An opaque pointer to fs-private information. ext3 puts its
- * superblock pointer here
- */
- void *j_private;
-};
-
-/*
- * Journal flag definitions
- */
-#define JFS_UNMOUNT 0x001 /* Journal thread is being destroyed */
-#define JFS_ABORT 0x002 /* Journaling has been aborted for errors. */
-#define JFS_ACK_ERR 0x004 /* The errno in the sb has been acked */
-#define JFS_FLUSHED 0x008 /* The journal superblock has been flushed */
-#define JFS_LOADED 0x010 /* The journal superblock has been loaded */
-#define JFS_BARRIER 0x020 /* Use IDE barriers */
-#define JFS_ABORT_ON_SYNCDATA_ERR 0x040 /* Abort the journal on file
- * data write error in ordered
- * mode */
-
-/*
- * Function declarations for the journaling transaction and buffer
- * management
- */
-
-/* Filing buffers */
-extern void journal_unfile_buffer(journal_t *, struct journal_head *);
-extern void __journal_unfile_buffer(struct journal_head *);
-extern void __journal_refile_buffer(struct journal_head *);
-extern void journal_refile_buffer(journal_t *, struct journal_head *);
-extern void __journal_file_buffer(struct journal_head *, transaction_t *, int);
-extern void __journal_free_buffer(struct journal_head *bh);
-extern void journal_file_buffer(struct journal_head *, transaction_t *, int);
-extern void __journal_clean_data_list(transaction_t *transaction);
-
-/* Log buffer allocation */
-extern struct journal_head * journal_get_descriptor_buffer(journal_t *);
-int journal_next_log_block(journal_t *, unsigned int *);
-
-/* Commit management */
-extern void journal_commit_transaction(journal_t *);
-
-/* Checkpoint list management */
-int __journal_clean_checkpoint_list(journal_t *journal);
-int __journal_remove_checkpoint(struct journal_head *);
-void __journal_insert_checkpoint(struct journal_head *, transaction_t *);
-
-/* Buffer IO */
-extern int
-journal_write_metadata_buffer(transaction_t *transaction,
- struct journal_head *jh_in,
- struct journal_head **jh_out,
- unsigned int blocknr);
-
-/* Transaction locking */
-extern void __wait_on_journal (journal_t *);
-
-/*
- * Journal locking.
- *
- * We need to lock the journal during transaction state changes so that nobody
- * ever tries to take a handle on the running transaction while we are in the
- * middle of moving it to the commit phase. j_state_lock does this.
- *
- * Note that the locking is completely interrupt unsafe. We never touch
- * journal structures from interrupts.
- */
-
-static inline handle_t *journal_current_handle(void)
-{
- return current->journal_info;
-}
-
-/* The journaling code user interface:
- *
- * Create and destroy handles
- * Register buffer modifications against the current transaction.
- */
-
-extern handle_t *journal_start(journal_t *, int nblocks);
-extern int journal_restart (handle_t *, int nblocks);
-extern int journal_extend (handle_t *, int nblocks);
-extern int journal_get_write_access(handle_t *, struct buffer_head *);
-extern int journal_get_create_access (handle_t *, struct buffer_head *);
-extern int journal_get_undo_access(handle_t *, struct buffer_head *);
-extern int journal_dirty_data (handle_t *, struct buffer_head *);
-extern int journal_dirty_metadata (handle_t *, struct buffer_head *);
-extern void journal_release_buffer (handle_t *, struct buffer_head *);
-extern int journal_forget (handle_t *, struct buffer_head *);
-extern void journal_sync_buffer (struct buffer_head *);
-extern void journal_invalidatepage(journal_t *,
- struct page *, unsigned long);
-extern int journal_try_to_free_buffers(journal_t *, struct page *, gfp_t);
-extern int journal_stop(handle_t *);
-extern int journal_flush (journal_t *);
-extern void journal_lock_updates (journal_t *);
-extern void journal_unlock_updates (journal_t *);
-
-extern journal_t * journal_init_dev(struct block_device *bdev,
- struct block_device *fs_dev,
- int start, int len, int bsize);
-extern journal_t * journal_init_inode (struct inode *);
-extern int journal_update_format (journal_t *);
-extern int journal_check_used_features
- (journal_t *, unsigned long, unsigned long, unsigned long);
-extern int journal_check_available_features
- (journal_t *, unsigned long, unsigned long, unsigned long);
-extern int journal_set_features
- (journal_t *, unsigned long, unsigned long, unsigned long);
-extern int journal_create (journal_t *);
-extern int journal_load (journal_t *journal);
-extern int journal_destroy (journal_t *);
-extern int journal_recover (journal_t *journal);
-extern int journal_wipe (journal_t *, int);
-extern int journal_skip_recovery (journal_t *);
-extern void journal_update_superblock (journal_t *, int);
-extern void journal_abort (journal_t *, int);
-extern int journal_errno (journal_t *);
-extern void journal_ack_err (journal_t *);
-extern int journal_clear_err (journal_t *);
-extern int journal_bmap(journal_t *, unsigned int, unsigned int *);
-extern int journal_force_commit(journal_t *);
-
-/*
- * journal_head management
- */
-struct journal_head *journal_add_journal_head(struct buffer_head *bh);
-struct journal_head *journal_grab_journal_head(struct buffer_head *bh);
-void journal_put_journal_head(struct journal_head *jh);
-
-/*
- * handle management
- */
-extern struct kmem_cache *jbd_handle_cache;
-
-static inline handle_t *jbd_alloc_handle(gfp_t gfp_flags)
-{
- return kmem_cache_alloc(jbd_handle_cache, gfp_flags);
-}
-
-static inline void jbd_free_handle(handle_t *handle)
-{
- kmem_cache_free(jbd_handle_cache, handle);
-}
-
-/* Primary revoke support */
-#define JOURNAL_REVOKE_DEFAULT_HASH 256
-extern int journal_init_revoke(journal_t *, int);
-extern void journal_destroy_revoke_caches(void);
-extern int journal_init_revoke_caches(void);
-
-extern void journal_destroy_revoke(journal_t *);
-extern int journal_revoke (handle_t *,
- unsigned int, struct buffer_head *);
-extern int journal_cancel_revoke(handle_t *, struct journal_head *);
-extern void journal_write_revoke_records(journal_t *,
- transaction_t *, int);
-
-/* Recovery revoke support */
-extern int journal_set_revoke(journal_t *, unsigned int, tid_t);
-extern int journal_test_revoke(journal_t *, unsigned int, tid_t);
-extern void journal_clear_revoke(journal_t *);
-extern void journal_switch_revoke_table(journal_t *journal);
-extern void journal_clear_buffer_revoked_flags(journal_t *journal);
-
-/*
- * The log thread user interface:
- *
- * Request space in the current transaction, and force transaction commit
- * transitions on demand.
- */
-
-int __log_space_left(journal_t *); /* Called with journal locked */
-int log_start_commit(journal_t *journal, tid_t tid);
-int __log_start_commit(journal_t *journal, tid_t tid);
-int journal_start_commit(journal_t *journal, tid_t *tid);
-int journal_force_commit_nested(journal_t *journal);
-int log_wait_commit(journal_t *journal, tid_t tid);
-int log_do_checkpoint(journal_t *journal);
-int journal_trans_will_send_data_barrier(journal_t *journal, tid_t tid);
-
-void __log_wait_for_space(journal_t *journal);
-extern void __journal_drop_transaction(journal_t *, transaction_t *);
-extern int cleanup_journal_tail(journal_t *);
-
-/* Debugging code only: */
-
-#define jbd_ENOSYS() \
-do { \
- printk (KERN_ERR "JBD unimplemented function %s\n", __func__); \
- current->state = TASK_UNINTERRUPTIBLE; \
- schedule(); \
-} while (1)
-
-/*
- * is_journal_abort
- *
- * Simple test wrapper function to test the JFS_ABORT state flag. This
- * bit, when set, indicates that we have had a fatal error somewhere,
- * either inside the journaling layer or indicated to us by the client
- * (eg. ext3), and that we and should not commit any further
- * transactions.
- */
-
-static inline int is_journal_aborted(journal_t *journal)
-{
- return journal->j_flags & JFS_ABORT;
-}
-
-static inline int is_handle_aborted(handle_t *handle)
-{
- if (handle->h_aborted)
- return 1;
- return is_journal_aborted(handle->h_transaction->t_journal);
-}
-
-static inline void journal_abort_handle(handle_t *handle)
-{
- handle->h_aborted = 1;
-}
-
-#endif /* __KERNEL__ */
-
-/* Comparison functions for transaction IDs: perform comparisons using
- * modulo arithmetic so that they work over sequence number wraps. */
-
-static inline int tid_gt(tid_t x, tid_t y)
-{
- int difference = (x - y);
- return (difference > 0);
-}
-
-static inline int tid_geq(tid_t x, tid_t y)
-{
- int difference = (x - y);
- return (difference >= 0);
-}
-
-extern int journal_blocks_per_page(struct inode *inode);
-
-/*
- * Return the minimum number of blocks which must be free in the journal
- * before a new transaction may be started. Must be called under j_state_lock.
- */
-static inline int jbd_space_needed(journal_t *journal)
-{
- int nblocks = journal->j_max_transaction_buffers;
- if (journal->j_committing_transaction)
- nblocks += journal->j_committing_transaction->
- t_outstanding_credits;
- return nblocks;
-}
-
-/*
- * Definitions which augment the buffer_head layer
- */
-
-/* journaling buffer types */
-#define BJ_None 0 /* Not journaled */
-#define BJ_SyncData 1 /* Normal data: flush before commit */
-#define BJ_Metadata 2 /* Normal journaled metadata */
-#define BJ_Forget 3 /* Buffer superseded by this transaction */
-#define BJ_IO 4 /* Buffer is for temporary IO use */
-#define BJ_Shadow 5 /* Buffer contents being shadowed to the log */
-#define BJ_LogCtl 6 /* Buffer contains log descriptors */
-#define BJ_Reserved 7 /* Buffer is reserved for access by journal */
-#define BJ_Locked 8 /* Locked for I/O during commit */
-#define BJ_Types 9
-
-extern int jbd_blocks_per_page(struct inode *inode);
-
-#ifdef __KERNEL__
-
-#define buffer_trace_init(bh) do {} while (0)
-#define print_buffer_fields(bh) do {} while (0)
-#define print_buffer_trace(bh) do {} while (0)
-#define BUFFER_TRACE(bh, info) do {} while (0)
-#define BUFFER_TRACE2(bh, bh2, info) do {} while (0)
-#define JBUFFER_TRACE(jh, info) do {} while (0)
-
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_JBD_H */
diff --git a/ANDROID_3.4.5/include/linux/jbd2.h b/ANDROID_3.4.5/include/linux/jbd2.h
deleted file mode 100644
index 912c30a8..00000000
--- a/ANDROID_3.4.5/include/linux/jbd2.h
+++ /dev/null
@@ -1,1282 +0,0 @@
-/*
- * linux/include/linux/jbd2.h
- *
- * Written by Stephen C. Tweedie <sct@redhat.com>
- *
- * Copyright 1998-2000 Red Hat, Inc --- All Rights Reserved
- *
- * This file is part of the Linux kernel and is made available under
- * the terms of the GNU General Public License, version 2, or at your
- * option, any later version, incorporated herein by reference.
- *
- * Definitions for transaction data structures for the buffer cache
- * filesystem journaling support.
- */
-
-#ifndef _LINUX_JBD2_H
-#define _LINUX_JBD2_H
-
-/* Allow this file to be included directly into e2fsprogs */
-#ifndef __KERNEL__
-#include "jfs_compat.h"
-#define JBD2_DEBUG
-#define jfs_debug jbd_debug
-#else
-
-#include <linux/types.h>
-#include <linux/buffer_head.h>
-#include <linux/journal-head.h>
-#include <linux/stddef.h>
-#include <linux/bit_spinlock.h>
-#include <linux/mutex.h>
-#include <linux/timer.h>
-#include <linux/slab.h>
-#endif
-
-#define journal_oom_retry 1
-
-/*
- * Define JBD2_PARANIOD_IOFAIL to cause a kernel BUG() if ext4 finds
- * certain classes of error which can occur due to failed IOs. Under
- * normal use we want ext4 to continue after such errors, because
- * hardware _can_ fail, but for debugging purposes when running tests on
- * known-good hardware we may want to trap these errors.
- */
-#undef JBD2_PARANOID_IOFAIL
-
-/*
- * The default maximum commit age, in seconds.
- */
-#define JBD2_DEFAULT_MAX_COMMIT_AGE 5
-
-#ifdef CONFIG_JBD2_DEBUG
-/*
- * Define JBD2_EXPENSIVE_CHECKING to enable more expensive internal
- * consistency checks. By default we don't do this unless
- * CONFIG_JBD2_DEBUG is on.
- */
-#define JBD2_EXPENSIVE_CHECKING
-extern u8 jbd2_journal_enable_debug;
-
-#define jbd_debug(n, f, a...) \
- do { \
- if ((n) <= jbd2_journal_enable_debug) { \
- printk (KERN_DEBUG "(%s, %d): %s: ", \
- __FILE__, __LINE__, __func__); \
- printk (f, ## a); \
- } \
- } while (0)
-#else
-#define jbd_debug(f, a...) /**/
-#endif
-
-extern void *jbd2_alloc(size_t size, gfp_t flags);
-extern void jbd2_free(void *ptr, size_t size);
-
-#define JBD2_MIN_JOURNAL_BLOCKS 1024
-
-#ifdef __KERNEL__
-
-/**
- * typedef handle_t - The handle_t type represents a single atomic update being performed by some process.
- *
- * All filesystem modifications made by the process go
- * through this handle. Recursive operations (such as quota operations)
- * are gathered into a single update.
- *
- * The buffer credits field is used to account for journaled buffers
- * being modified by the running process. To ensure that there is
- * enough log space for all outstanding operations, we need to limit the
- * number of outstanding buffers possible at any time. When the
- * operation completes, any buffer credits not used are credited back to
- * the transaction, so that at all times we know how many buffers the
- * outstanding updates on a transaction might possibly touch.
- *
- * This is an opaque datatype.
- **/
-typedef struct jbd2_journal_handle handle_t; /* Atomic operation type */
-
-
-/**
- * typedef journal_t - The journal_t maintains all of the journaling state information for a single filesystem.
- *
- * journal_t is linked to from the fs superblock structure.
- *
- * We use the journal_t to keep track of all outstanding transaction
- * activity on the filesystem, and to manage the state of the log
- * writing process.
- *
- * This is an opaque datatype.
- **/
-typedef struct journal_s journal_t; /* Journal control structure */
-#endif
-
-/*
- * Internal structures used by the logging mechanism:
- */
-
-#define JBD2_MAGIC_NUMBER 0xc03b3998U /* The first 4 bytes of /dev/random! */
-
-/*
- * On-disk structures
- */
-
-/*
- * Descriptor block types:
- */
-
-#define JBD2_DESCRIPTOR_BLOCK 1
-#define JBD2_COMMIT_BLOCK 2
-#define JBD2_SUPERBLOCK_V1 3
-#define JBD2_SUPERBLOCK_V2 4
-#define JBD2_REVOKE_BLOCK 5
-
-/*
- * Standard header for all descriptor blocks:
- */
-typedef struct journal_header_s
-{
- __be32 h_magic;
- __be32 h_blocktype;
- __be32 h_sequence;
-} journal_header_t;
-
-/*
- * Checksum types.
- */
-#define JBD2_CRC32_CHKSUM 1
-#define JBD2_MD5_CHKSUM 2
-#define JBD2_SHA1_CHKSUM 3
-
-#define JBD2_CRC32_CHKSUM_SIZE 4
-
-#define JBD2_CHECKSUM_BYTES (32 / sizeof(u32))
-/*
- * Commit block header for storing transactional checksums:
- */
-struct commit_header {
- __be32 h_magic;
- __be32 h_blocktype;
- __be32 h_sequence;
- unsigned char h_chksum_type;
- unsigned char h_chksum_size;
- unsigned char h_padding[2];
- __be32 h_chksum[JBD2_CHECKSUM_BYTES];
- __be64 h_commit_sec;
- __be32 h_commit_nsec;
-};
-
-/*
- * The block tag: used to describe a single buffer in the journal.
- * t_blocknr_high is only used if INCOMPAT_64BIT is set, so this
- * raw struct shouldn't be used for pointer math or sizeof() - use
- * journal_tag_bytes(journal) instead to compute this.
- */
-typedef struct journal_block_tag_s
-{
- __be32 t_blocknr; /* The on-disk block number */
- __be32 t_flags; /* See below */
- __be32 t_blocknr_high; /* most-significant high 32bits. */
-} journal_block_tag_t;
-
-#define JBD2_TAG_SIZE32 (offsetof(journal_block_tag_t, t_blocknr_high))
-#define JBD2_TAG_SIZE64 (sizeof(journal_block_tag_t))
-
-/*
- * The revoke descriptor: used on disk to describe a series of blocks to
- * be revoked from the log
- */
-typedef struct jbd2_journal_revoke_header_s
-{
- journal_header_t r_header;
- __be32 r_count; /* Count of bytes used in the block */
-} jbd2_journal_revoke_header_t;
-
-
-/* Definitions for the journal tag flags word: */
-#define JBD2_FLAG_ESCAPE 1 /* on-disk block is escaped */
-#define JBD2_FLAG_SAME_UUID 2 /* block has same uuid as previous */
-#define JBD2_FLAG_DELETED 4 /* block deleted by this transaction */
-#define JBD2_FLAG_LAST_TAG 8 /* last tag in this descriptor block */
-
-
-/*
- * The journal superblock. All fields are in big-endian byte order.
- */
-typedef struct journal_superblock_s
-{
-/* 0x0000 */
- journal_header_t s_header;
-
-/* 0x000C */
- /* Static information describing the journal */
- __be32 s_blocksize; /* journal device blocksize */
- __be32 s_maxlen; /* total blocks in journal file */
- __be32 s_first; /* first block of log information */
-
-/* 0x0018 */
- /* Dynamic information describing the current state of the log */
- __be32 s_sequence; /* first commit ID expected in log */
- __be32 s_start; /* blocknr of start of log */
-
-/* 0x0020 */
- /* Error value, as set by jbd2_journal_abort(). */
- __be32 s_errno;
-
-/* 0x0024 */
- /* Remaining fields are only valid in a version-2 superblock */
- __be32 s_feature_compat; /* compatible feature set */
- __be32 s_feature_incompat; /* incompatible feature set */
- __be32 s_feature_ro_compat; /* readonly-compatible feature set */
-/* 0x0030 */
- __u8 s_uuid[16]; /* 128-bit uuid for journal */
-
-/* 0x0040 */
- __be32 s_nr_users; /* Nr of filesystems sharing log */
-
- __be32 s_dynsuper; /* Blocknr of dynamic superblock copy*/
-
-/* 0x0048 */
- __be32 s_max_transaction; /* Limit of journal blocks per trans.*/
- __be32 s_max_trans_data; /* Limit of data blocks per trans. */
-
-/* 0x0050 */
- __u32 s_padding[44];
-
-/* 0x0100 */
- __u8 s_users[16*48]; /* ids of all fs'es sharing the log */
-/* 0x0400 */
-} journal_superblock_t;
-
-#define JBD2_HAS_COMPAT_FEATURE(j,mask) \
- ((j)->j_format_version >= 2 && \
- ((j)->j_superblock->s_feature_compat & cpu_to_be32((mask))))
-#define JBD2_HAS_RO_COMPAT_FEATURE(j,mask) \
- ((j)->j_format_version >= 2 && \
- ((j)->j_superblock->s_feature_ro_compat & cpu_to_be32((mask))))
-#define JBD2_HAS_INCOMPAT_FEATURE(j,mask) \
- ((j)->j_format_version >= 2 && \
- ((j)->j_superblock->s_feature_incompat & cpu_to_be32((mask))))
-
-#define JBD2_FEATURE_COMPAT_CHECKSUM 0x00000001
-
-#define JBD2_FEATURE_INCOMPAT_REVOKE 0x00000001
-#define JBD2_FEATURE_INCOMPAT_64BIT 0x00000002
-#define JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT 0x00000004
-
-/* Features known to this kernel version: */
-#define JBD2_KNOWN_COMPAT_FEATURES JBD2_FEATURE_COMPAT_CHECKSUM
-#define JBD2_KNOWN_ROCOMPAT_FEATURES 0
-#define JBD2_KNOWN_INCOMPAT_FEATURES (JBD2_FEATURE_INCOMPAT_REVOKE | \
- JBD2_FEATURE_INCOMPAT_64BIT | \
- JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT)
-
-#ifdef __KERNEL__
-
-#include <linux/fs.h>
-#include <linux/sched.h>
-#include <linux/jbd_common.h>
-
-#define J_ASSERT(assert) BUG_ON(!(assert))
-
-#define J_ASSERT_BH(bh, expr) J_ASSERT(expr)
-#define J_ASSERT_JH(jh, expr) J_ASSERT(expr)
-
-#if defined(JBD2_PARANOID_IOFAIL)
-#define J_EXPECT(expr, why...) J_ASSERT(expr)
-#define J_EXPECT_BH(bh, expr, why...) J_ASSERT_BH(bh, expr)
-#define J_EXPECT_JH(jh, expr, why...) J_ASSERT_JH(jh, expr)
-#else
-#define __journal_expect(expr, why...) \
- ({ \
- int val = (expr); \
- if (!val) { \
- printk(KERN_ERR \
- "JBD2 unexpected failure: %s: %s;\n", \
- __func__, #expr); \
- printk(KERN_ERR why "\n"); \
- } \
- val; \
- })
-#define J_EXPECT(expr, why...) __journal_expect(expr, ## why)
-#define J_EXPECT_BH(bh, expr, why...) __journal_expect(expr, ## why)
-#define J_EXPECT_JH(jh, expr, why...) __journal_expect(expr, ## why)
-#endif
-
-/* Flags in jbd_inode->i_flags */
-#define __JI_COMMIT_RUNNING 0
-/* Commit of the inode data in progress. We use this flag to protect us from
- * concurrent deletion of inode. We cannot use reference to inode for this
- * since we cannot afford doing last iput() on behalf of kjournald
- */
-#define JI_COMMIT_RUNNING (1 << __JI_COMMIT_RUNNING)
-
-/**
- * struct jbd_inode is the structure linking inodes in ordered mode
- * present in a transaction so that we can sync them during commit.
- */
-struct jbd2_inode {
- /* Which transaction does this inode belong to? Either the running
- * transaction or the committing one. [j_list_lock] */
- transaction_t *i_transaction;
-
- /* Pointer to the running transaction modifying inode's data in case
- * there is already a committing transaction touching it. [j_list_lock] */
- transaction_t *i_next_transaction;
-
- /* List of inodes in the i_transaction [j_list_lock] */
- struct list_head i_list;
-
- /* VFS inode this inode belongs to [constant during the lifetime
- * of the structure] */
- struct inode *i_vfs_inode;
-
- /* Flags of inode [j_list_lock] */
- unsigned long i_flags;
-};
-
-struct jbd2_revoke_table_s;
-
-/**
- * struct handle_s - The handle_s type is the concrete type associated with
- * handle_t.
- * @h_transaction: Which compound transaction is this update a part of?
- * @h_buffer_credits: Number of remaining buffers we are allowed to dirty.
- * @h_ref: Reference count on this handle
- * @h_err: Field for caller's use to track errors through large fs operations
- * @h_sync: flag for sync-on-close
- * @h_jdata: flag to force data journaling
- * @h_aborted: flag indicating fatal error on handle
- **/
-
-/* Docbook can't yet cope with the bit fields, but will leave the documentation
- * in so it can be fixed later.
- */
-
-struct jbd2_journal_handle
-{
- /* Which compound transaction is this update a part of? */
- transaction_t *h_transaction;
-
- /* Number of remaining buffers we are allowed to dirty: */
- int h_buffer_credits;
-
- /* Reference count on this handle */
- int h_ref;
-
- /* Field for caller's use to track errors through large fs */
- /* operations */
- int h_err;
-
- /* Flags [no locking] */
- unsigned int h_sync:1; /* sync-on-close */
- unsigned int h_jdata:1; /* force data journaling */
- unsigned int h_aborted:1; /* fatal error on handle */
- unsigned int h_cowing:1; /* COWing block to snapshot */
-
- /* Number of buffers requested by user:
- * (before adding the COW credits factor) */
- unsigned int h_base_credits:14;
-
- /* Number of buffers the user is allowed to dirty:
- * (counts only buffers dirtied when !h_cowing) */
- unsigned int h_user_credits:14;
-
-
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
- struct lockdep_map h_lockdep_map;
-#endif
-
-#ifdef CONFIG_JBD2_DEBUG
- /* COW debugging counters: */
- unsigned int h_cow_moved; /* blocks moved to snapshot */
- unsigned int h_cow_copied; /* blocks copied to snapshot */
- unsigned int h_cow_ok_jh; /* blocks already COWed during current
- transaction */
- unsigned int h_cow_ok_bitmap; /* blocks not set in COW bitmap */
- unsigned int h_cow_ok_mapped;/* blocks already mapped in snapshot */
- unsigned int h_cow_bitmaps; /* COW bitmaps created */
- unsigned int h_cow_excluded; /* blocks set in exclude bitmap */
-#endif
-};
-
-
-/*
- * Some stats for checkpoint phase
- */
-struct transaction_chp_stats_s {
- unsigned long cs_chp_time;
- __u32 cs_forced_to_close;
- __u32 cs_written;
- __u32 cs_dropped;
-};
-
-/* The transaction_t type is the guts of the journaling mechanism. It
- * tracks a compound transaction through its various states:
- *
- * RUNNING: accepting new updates
- * LOCKED: Updates still running but we don't accept new ones
- * RUNDOWN: Updates are tidying up but have finished requesting
- * new buffers to modify (state not used for now)
- * FLUSH: All updates complete, but we are still writing to disk
- * COMMIT: All data on disk, writing commit record
- * FINISHED: We still have to keep the transaction for checkpointing.
- *
- * The transaction keeps track of all of the buffers modified by a
- * running transaction, and all of the buffers committed but not yet
- * flushed to home for finished transactions.
- */
-
-/*
- * Lock ranking:
- *
- * j_list_lock
- * ->jbd_lock_bh_journal_head() (This is "innermost")
- *
- * j_state_lock
- * ->jbd_lock_bh_state()
- *
- * jbd_lock_bh_state()
- * ->j_list_lock
- *
- * j_state_lock
- * ->t_handle_lock
- *
- * j_state_lock
- * ->j_list_lock (journal_unmap_buffer)
- *
- */
-
-struct transaction_s
-{
- /* Pointer to the journal for this transaction. [no locking] */
- journal_t *t_journal;
-
- /* Sequence number for this transaction [no locking] */
- tid_t t_tid;
-
- /*
- * Transaction's current state
- * [no locking - only kjournald2 alters this]
- * [j_list_lock] guards transition of a transaction into T_FINISHED
- * state and subsequent call of __jbd2_journal_drop_transaction()
- * FIXME: needs barriers
- * KLUDGE: [use j_state_lock]
- */
- enum {
- T_RUNNING,
- T_LOCKED,
- T_FLUSH,
- T_COMMIT,
- T_COMMIT_DFLUSH,
- T_COMMIT_JFLUSH,
- T_FINISHED
- } t_state;
-
- /*
- * Where in the log does this transaction's commit start? [no locking]
- */
- unsigned long t_log_start;
-
- /* Number of buffers on the t_buffers list [j_list_lock] */
- int t_nr_buffers;
-
- /*
- * Doubly-linked circular list of all buffers reserved but not yet
- * modified by this transaction [j_list_lock]
- */
- struct journal_head *t_reserved_list;
-
- /*
- * Doubly-linked circular list of all metadata buffers owned by this
- * transaction [j_list_lock]
- */
- struct journal_head *t_buffers;
-
- /*
- * Doubly-linked circular list of all forget buffers (superseded
- * buffers which we can un-checkpoint once this transaction commits)
- * [j_list_lock]
- */
- struct journal_head *t_forget;
-
- /*
- * Doubly-linked circular list of all buffers still to be flushed before
- * this transaction can be checkpointed. [j_list_lock]
- */
- struct journal_head *t_checkpoint_list;
-
- /*
- * Doubly-linked circular list of all buffers submitted for IO while
- * checkpointing. [j_list_lock]
- */
- struct journal_head *t_checkpoint_io_list;
-
- /*
- * Doubly-linked circular list of temporary buffers currently undergoing
- * IO in the log [j_list_lock]
- */
- struct journal_head *t_iobuf_list;
-
- /*
- * Doubly-linked circular list of metadata buffers being shadowed by log
- * IO. The IO buffers on the iobuf list and the shadow buffers on this
- * list match each other one for one at all times. [j_list_lock]
- */
- struct journal_head *t_shadow_list;
-
- /*
- * Doubly-linked circular list of control buffers being written to the
- * log. [j_list_lock]
- */
- struct journal_head *t_log_list;
-
- /*
- * List of inodes whose data we've modified in data=ordered mode.
- * [j_list_lock]
- */
- struct list_head t_inode_list;
-
- /*
- * Protects info related to handles
- */
- spinlock_t t_handle_lock;
-
- /*
- * Longest time some handle had to wait for running transaction
- */
- unsigned long t_max_wait;
-
- /*
- * When transaction started
- */
- unsigned long t_start;
-
- /*
- * Checkpointing stats [j_checkpoint_sem]
- */
- struct transaction_chp_stats_s t_chp_stats;
-
- /*
- * Number of outstanding updates running on this transaction
- * [t_handle_lock]
- */
- atomic_t t_updates;
-
- /*
- * Number of buffers reserved for use by all handles in this transaction
- * handle but not yet modified. [t_handle_lock]
- */
- atomic_t t_outstanding_credits;
-
- /*
- * Forward and backward links for the circular list of all transactions
- * awaiting checkpoint. [j_list_lock]
- */
- transaction_t *t_cpnext, *t_cpprev;
-
- /*
- * When will the transaction expire (become due for commit), in jiffies?
- * [no locking]
- */
- unsigned long t_expires;
-
- /*
- * When this transaction started, in nanoseconds [no locking]
- */
- ktime_t t_start_time;
-
- /*
- * How many handles used this transaction? [t_handle_lock]
- */
- atomic_t t_handle_count;
-
- /*
- * This transaction is being forced and some process is
- * waiting for it to finish.
- */
- unsigned int t_synchronous_commit:1;
-
- /* Disk flush needs to be sent to fs partition [no locking] */
- int t_need_data_flush;
-
- /*
- * For use by the filesystem to store fs-specific data
- * structures associated with the transaction
- */
- struct list_head t_private_list;
-};
-
-struct transaction_run_stats_s {
- unsigned long rs_wait;
- unsigned long rs_running;
- unsigned long rs_locked;
- unsigned long rs_flushing;
- unsigned long rs_logging;
-
- __u32 rs_handle_count;
- __u32 rs_blocks;
- __u32 rs_blocks_logged;
-};
-
-struct transaction_stats_s {
- unsigned long ts_tid;
- struct transaction_run_stats_s run;
-};
-
-static inline unsigned long
-jbd2_time_diff(unsigned long start, unsigned long end)
-{
- if (end >= start)
- return end - start;
-
- return end + (MAX_JIFFY_OFFSET - start);
-}
-
-#define JBD2_NR_BATCH 64
-
-/**
- * struct journal_s - The journal_s type is the concrete type associated with
- * journal_t.
- * @j_flags: General journaling state flags
- * @j_errno: Is there an outstanding uncleared error on the journal (from a
- * prior abort)?
- * @j_sb_buffer: First part of superblock buffer
- * @j_superblock: Second part of superblock buffer
- * @j_format_version: Version of the superblock format
- * @j_state_lock: Protect the various scalars in the journal
- * @j_barrier_count: Number of processes waiting to create a barrier lock
- * @j_barrier: The barrier lock itself
- * @j_running_transaction: The current running transaction..
- * @j_committing_transaction: the transaction we are pushing to disk
- * @j_checkpoint_transactions: a linked circular list of all transactions
- * waiting for checkpointing
- * @j_wait_transaction_locked: Wait queue for waiting for a locked transaction
- * to start committing, or for a barrier lock to be released
- * @j_wait_logspace: Wait queue for waiting for checkpointing to complete
- * @j_wait_done_commit: Wait queue for waiting for commit to complete
- * @j_wait_checkpoint: Wait queue to trigger checkpointing
- * @j_wait_commit: Wait queue to trigger commit
- * @j_wait_updates: Wait queue to wait for updates to complete
- * @j_checkpoint_mutex: Mutex for locking against concurrent checkpoints
- * @j_head: Journal head - identifies the first unused block in the journal
- * @j_tail: Journal tail - identifies the oldest still-used block in the
- * journal.
- * @j_free: Journal free - how many free blocks are there in the journal?
- * @j_first: The block number of the first usable block
- * @j_last: The block number one beyond the last usable block
- * @j_dev: Device where we store the journal
- * @j_blocksize: blocksize for the location where we store the journal.
- * @j_blk_offset: starting block offset for into the device where we store the
- * journal
- * @j_fs_dev: Device which holds the client fs. For internal journal this will
- * be equal to j_dev
- * @j_maxlen: Total maximum capacity of the journal region on disk.
- * @j_list_lock: Protects the buffer lists and internal buffer state.
- * @j_inode: Optional inode where we store the journal. If present, all journal
- * block numbers are mapped into this inode via bmap().
- * @j_tail_sequence: Sequence number of the oldest transaction in the log
- * @j_transaction_sequence: Sequence number of the next transaction to grant
- * @j_commit_sequence: Sequence number of the most recently committed
- * transaction
- * @j_commit_request: Sequence number of the most recent transaction wanting
- * commit
- * @j_uuid: Uuid of client object.
- * @j_task: Pointer to the current commit thread for this journal
- * @j_max_transaction_buffers: Maximum number of metadata buffers to allow in a
- * single compound commit transaction
- * @j_commit_interval: What is the maximum transaction lifetime before we begin
- * a commit?
- * @j_commit_timer: The timer used to wakeup the commit thread
- * @j_revoke_lock: Protect the revoke table
- * @j_revoke: The revoke table - maintains the list of revoked blocks in the
- * current transaction.
- * @j_revoke_table: alternate revoke tables for j_revoke
- * @j_wbuf: array of buffer_heads for jbd2_journal_commit_transaction
- * @j_wbufsize: maximum number of buffer_heads allowed in j_wbuf, the
- * number that will fit in j_blocksize
- * @j_last_sync_writer: most recent pid which did a synchronous write
- * @j_history: Buffer storing the transactions statistics history
- * @j_history_max: Maximum number of transactions in the statistics history
- * @j_history_cur: Current number of transactions in the statistics history
- * @j_history_lock: Protect the transactions statistics history
- * @j_proc_entry: procfs entry for the jbd statistics directory
- * @j_stats: Overall statistics
- * @j_private: An opaque pointer to fs-private information.
- */
-
-struct journal_s
-{
- /* General journaling state flags [j_state_lock] */
- unsigned long j_flags;
-
- /*
- * Is there an outstanding uncleared error on the journal (from a prior
- * abort)? [j_state_lock]
- */
- int j_errno;
-
- /* The superblock buffer */
- struct buffer_head *j_sb_buffer;
- journal_superblock_t *j_superblock;
-
- /* Version of the superblock format */
- int j_format_version;
-
- /*
- * Protect the various scalars in the journal
- */
- rwlock_t j_state_lock;
-
- /*
- * Number of processes waiting to create a barrier lock [j_state_lock]
- */
- int j_barrier_count;
-
- /* The barrier lock itself */
- struct mutex j_barrier;
-
- /*
- * Transactions: The current running transaction...
- * [j_state_lock] [caller holding open handle]
- */
- transaction_t *j_running_transaction;
-
- /*
- * the transaction we are pushing to disk
- * [j_state_lock] [caller holding open handle]
- */
- transaction_t *j_committing_transaction;
-
- /*
- * ... and a linked circular list of all transactions waiting for
- * checkpointing. [j_list_lock]
- */
- transaction_t *j_checkpoint_transactions;
-
- /*
- * Wait queue for waiting for a locked transaction to start committing,
- * or for a barrier lock to be released
- */
- wait_queue_head_t j_wait_transaction_locked;
-
- /* Wait queue for waiting for checkpointing to complete */
- wait_queue_head_t j_wait_logspace;
-
- /* Wait queue for waiting for commit to complete */
- wait_queue_head_t j_wait_done_commit;
-
- /* Wait queue to trigger checkpointing */
- wait_queue_head_t j_wait_checkpoint;
-
- /* Wait queue to trigger commit */
- wait_queue_head_t j_wait_commit;
-
- /* Wait queue to wait for updates to complete */
- wait_queue_head_t j_wait_updates;
-
- /* Semaphore for locking against concurrent checkpoints */
- struct mutex j_checkpoint_mutex;
-
- /*
- * List of buffer heads used by the checkpoint routine. This
- * was moved from jbd2_log_do_checkpoint() to reduce stack
- * usage. Access to this array is controlled by the
- * j_checkpoint_mutex. [j_checkpoint_mutex]
- */
- struct buffer_head *j_chkpt_bhs[JBD2_NR_BATCH];
-
- /*
- * Journal head: identifies the first unused block in the journal.
- * [j_state_lock]
- */
- unsigned long j_head;
-
- /*
- * Journal tail: identifies the oldest still-used block in the journal.
- * [j_state_lock]
- */
- unsigned long j_tail;
-
- /*
- * Journal free: how many free blocks are there in the journal?
- * [j_state_lock]
- */
- unsigned long j_free;
-
- /*
- * Journal start and end: the block numbers of the first usable block
- * and one beyond the last usable block in the journal. [j_state_lock]
- */
- unsigned long j_first;
- unsigned long j_last;
-
- /*
- * Device, blocksize and starting block offset for the location where we
- * store the journal.
- */
- struct block_device *j_dev;
- int j_blocksize;
- unsigned long long j_blk_offset;
- char j_devname[BDEVNAME_SIZE+24];
-
- /*
- * Device which holds the client fs. For internal journal this will be
- * equal to j_dev.
- */
- struct block_device *j_fs_dev;
-
- /* Total maximum capacity of the journal region on disk. */
- unsigned int j_maxlen;
-
- /*
- * Protects the buffer lists and internal buffer state.
- */
- spinlock_t j_list_lock;
-
- /* Optional inode where we store the journal. If present, all */
- /* journal block numbers are mapped into this inode via */
- /* bmap(). */
- struct inode *j_inode;
-
- /*
- * Sequence number of the oldest transaction in the log [j_state_lock]
- */
- tid_t j_tail_sequence;
-
- /*
- * Sequence number of the next transaction to grant [j_state_lock]
- */
- tid_t j_transaction_sequence;
-
- /*
- * Sequence number of the most recently committed transaction
- * [j_state_lock].
- */
- tid_t j_commit_sequence;
-
- /*
- * Sequence number of the most recent transaction wanting commit
- * [j_state_lock]
- */
- tid_t j_commit_request;
-
- /*
- * Journal uuid: identifies the object (filesystem, LVM volume etc)
- * backed by this journal. This will eventually be replaced by an array
- * of uuids, allowing us to index multiple devices within a single
- * journal and to perform atomic updates across them.
- */
- __u8 j_uuid[16];
-
- /* Pointer to the current commit thread for this journal */
- struct task_struct *j_task;
-
- /*
- * Maximum number of metadata buffers to allow in a single compound
- * commit transaction
- */
- int j_max_transaction_buffers;
-
- /*
- * What is the maximum transaction lifetime before we begin a commit?
- */
- unsigned long j_commit_interval;
-
- /* The timer used to wakeup the commit thread: */
- struct timer_list j_commit_timer;
-
- /*
- * The revoke table: maintains the list of revoked blocks in the
- * current transaction. [j_revoke_lock]
- */
- spinlock_t j_revoke_lock;
- struct jbd2_revoke_table_s *j_revoke;
- struct jbd2_revoke_table_s *j_revoke_table[2];
-
- /*
- * array of bhs for jbd2_journal_commit_transaction
- */
- struct buffer_head **j_wbuf;
- int j_wbufsize;
-
- /*
- * this is the pid of hte last person to run a synchronous operation
- * through the journal
- */
- pid_t j_last_sync_writer;
-
- /*
- * the average amount of time in nanoseconds it takes to commit a
- * transaction to disk. [j_state_lock]
- */
- u64 j_average_commit_time;
-
- /*
- * minimum and maximum times that we should wait for
- * additional filesystem operations to get batched into a
- * synchronous handle in microseconds
- */
- u32 j_min_batch_time;
- u32 j_max_batch_time;
-
- /* This function is called when a transaction is closed */
- void (*j_commit_callback)(journal_t *,
- transaction_t *);
-
- /*
- * Journal statistics
- */
- spinlock_t j_history_lock;
- struct proc_dir_entry *j_proc_entry;
- struct transaction_stats_s j_stats;
-
- /* Failed journal commit ID */
- unsigned int j_failed_commit;
-
- /*
- * An opaque pointer to fs-private information. ext3 puts its
- * superblock pointer here
- */
- void *j_private;
-};
-
-/*
- * Journal flag definitions
- */
-#define JBD2_UNMOUNT 0x001 /* Journal thread is being destroyed */
-#define JBD2_ABORT 0x002 /* Journaling has been aborted for errors. */
-#define JBD2_ACK_ERR 0x004 /* The errno in the sb has been acked */
-#define JBD2_FLUSHED 0x008 /* The journal superblock has been flushed */
-#define JBD2_LOADED 0x010 /* The journal superblock has been loaded */
-#define JBD2_BARRIER 0x020 /* Use IDE barriers */
-#define JBD2_ABORT_ON_SYNCDATA_ERR 0x040 /* Abort the journal on file
- * data write error in ordered
- * mode */
-
-/*
- * Function declarations for the journaling transaction and buffer
- * management
- */
-
-/* Filing buffers */
-extern void jbd2_journal_unfile_buffer(journal_t *, struct journal_head *);
-extern void __jbd2_journal_refile_buffer(struct journal_head *);
-extern void jbd2_journal_refile_buffer(journal_t *, struct journal_head *);
-extern void __jbd2_journal_file_buffer(struct journal_head *, transaction_t *, int);
-extern void __journal_free_buffer(struct journal_head *bh);
-extern void jbd2_journal_file_buffer(struct journal_head *, transaction_t *, int);
-extern void __journal_clean_data_list(transaction_t *transaction);
-
-/* Log buffer allocation */
-extern struct journal_head * jbd2_journal_get_descriptor_buffer(journal_t *);
-int jbd2_journal_next_log_block(journal_t *, unsigned long long *);
-int jbd2_journal_get_log_tail(journal_t *journal, tid_t *tid,
- unsigned long *block);
-void __jbd2_update_log_tail(journal_t *journal, tid_t tid, unsigned long block);
-void jbd2_update_log_tail(journal_t *journal, tid_t tid, unsigned long block);
-
-/* Commit management */
-extern void jbd2_journal_commit_transaction(journal_t *);
-
-/* Checkpoint list management */
-int __jbd2_journal_clean_checkpoint_list(journal_t *journal);
-int __jbd2_journal_remove_checkpoint(struct journal_head *);
-void __jbd2_journal_insert_checkpoint(struct journal_head *, transaction_t *);
-
-
-/*
- * Triggers
- */
-
-struct jbd2_buffer_trigger_type {
- /*
- * Fired a the moment data to write to the journal are known to be
- * stable - so either at the moment b_frozen_data is created or just
- * before a buffer is written to the journal. mapped_data is a mapped
- * buffer that is the frozen data for commit.
- */
- void (*t_frozen)(struct jbd2_buffer_trigger_type *type,
- struct buffer_head *bh, void *mapped_data,
- size_t size);
-
- /*
- * Fired during journal abort for dirty buffers that will not be
- * committed.
- */
- void (*t_abort)(struct jbd2_buffer_trigger_type *type,
- struct buffer_head *bh);
-};
-
-extern void jbd2_buffer_frozen_trigger(struct journal_head *jh,
- void *mapped_data,
- struct jbd2_buffer_trigger_type *triggers);
-extern void jbd2_buffer_abort_trigger(struct journal_head *jh,
- struct jbd2_buffer_trigger_type *triggers);
-
-/* Buffer IO */
-extern int
-jbd2_journal_write_metadata_buffer(transaction_t *transaction,
- struct journal_head *jh_in,
- struct journal_head **jh_out,
- unsigned long long blocknr);
-
-/* Transaction locking */
-extern void __wait_on_journal (journal_t *);
-
-/* Transaction cache support */
-extern void jbd2_journal_destroy_transaction_cache(void);
-extern int jbd2_journal_init_transaction_cache(void);
-extern void jbd2_journal_free_transaction(transaction_t *);
-
-/*
- * Journal locking.
- *
- * We need to lock the journal during transaction state changes so that nobody
- * ever tries to take a handle on the running transaction while we are in the
- * middle of moving it to the commit phase. j_state_lock does this.
- *
- * Note that the locking is completely interrupt unsafe. We never touch
- * journal structures from interrupts.
- */
-
-static inline handle_t *journal_current_handle(void)
-{
- return current->journal_info;
-}
-
-/* The journaling code user interface:
- *
- * Create and destroy handles
- * Register buffer modifications against the current transaction.
- */
-
-extern handle_t *jbd2_journal_start(journal_t *, int nblocks);
-extern handle_t *jbd2__journal_start(journal_t *, int nblocks, gfp_t gfp_mask);
-extern int jbd2_journal_restart(handle_t *, int nblocks);
-extern int jbd2__journal_restart(handle_t *, int nblocks, gfp_t gfp_mask);
-extern int jbd2_journal_extend (handle_t *, int nblocks);
-extern int jbd2_journal_get_write_access(handle_t *, struct buffer_head *);
-extern int jbd2_journal_get_create_access (handle_t *, struct buffer_head *);
-extern int jbd2_journal_get_undo_access(handle_t *, struct buffer_head *);
-void jbd2_journal_set_triggers(struct buffer_head *,
- struct jbd2_buffer_trigger_type *type);
-extern int jbd2_journal_dirty_metadata (handle_t *, struct buffer_head *);
-extern void jbd2_journal_release_buffer (handle_t *, struct buffer_head *);
-extern int jbd2_journal_forget (handle_t *, struct buffer_head *);
-extern void journal_sync_buffer (struct buffer_head *);
-extern void jbd2_journal_invalidatepage(journal_t *,
- struct page *, unsigned long);
-extern int jbd2_journal_try_to_free_buffers(journal_t *, struct page *, gfp_t);
-extern int jbd2_journal_stop(handle_t *);
-extern int jbd2_journal_flush (journal_t *);
-extern void jbd2_journal_lock_updates (journal_t *);
-extern void jbd2_journal_unlock_updates (journal_t *);
-
-extern journal_t * jbd2_journal_init_dev(struct block_device *bdev,
- struct block_device *fs_dev,
- unsigned long long start, int len, int bsize);
-extern journal_t * jbd2_journal_init_inode (struct inode *);
-extern int jbd2_journal_update_format (journal_t *);
-extern int jbd2_journal_check_used_features
- (journal_t *, unsigned long, unsigned long, unsigned long);
-extern int jbd2_journal_check_available_features
- (journal_t *, unsigned long, unsigned long, unsigned long);
-extern int jbd2_journal_set_features
- (journal_t *, unsigned long, unsigned long, unsigned long);
-extern void jbd2_journal_clear_features
- (journal_t *, unsigned long, unsigned long, unsigned long);
-extern int jbd2_journal_load (journal_t *journal);
-extern int jbd2_journal_destroy (journal_t *);
-extern int jbd2_journal_recover (journal_t *journal);
-extern int jbd2_journal_wipe (journal_t *, int);
-extern int jbd2_journal_skip_recovery (journal_t *);
-extern void jbd2_journal_update_sb_log_tail (journal_t *, tid_t,
- unsigned long, int);
-extern void __jbd2_journal_abort_hard (journal_t *);
-extern void jbd2_journal_abort (journal_t *, int);
-extern int jbd2_journal_errno (journal_t *);
-extern void jbd2_journal_ack_err (journal_t *);
-extern int jbd2_journal_clear_err (journal_t *);
-extern int jbd2_journal_bmap(journal_t *, unsigned long, unsigned long long *);
-extern int jbd2_journal_force_commit(journal_t *);
-extern int jbd2_journal_file_inode(handle_t *handle, struct jbd2_inode *inode);
-extern int jbd2_journal_begin_ordered_truncate(journal_t *journal,
- struct jbd2_inode *inode, loff_t new_size);
-extern void jbd2_journal_init_jbd_inode(struct jbd2_inode *jinode, struct inode *inode);
-extern void jbd2_journal_release_jbd_inode(journal_t *journal, struct jbd2_inode *jinode);
-
-/*
- * journal_head management
- */
-struct journal_head *jbd2_journal_add_journal_head(struct buffer_head *bh);
-struct journal_head *jbd2_journal_grab_journal_head(struct buffer_head *bh);
-void jbd2_journal_put_journal_head(struct journal_head *jh);
-
-/*
- * handle management
- */
-extern struct kmem_cache *jbd2_handle_cache;
-
-static inline handle_t *jbd2_alloc_handle(gfp_t gfp_flags)
-{
- return kmem_cache_alloc(jbd2_handle_cache, gfp_flags);
-}
-
-static inline void jbd2_free_handle(handle_t *handle)
-{
- kmem_cache_free(jbd2_handle_cache, handle);
-}
-
-/*
- * jbd2_inode management (optional, for those file systems that want to use
- * dynamically allocated jbd2_inode structures)
- */
-extern struct kmem_cache *jbd2_inode_cache;
-
-static inline struct jbd2_inode *jbd2_alloc_inode(gfp_t gfp_flags)
-{
- return kmem_cache_alloc(jbd2_inode_cache, gfp_flags);
-}
-
-static inline void jbd2_free_inode(struct jbd2_inode *jinode)
-{
- kmem_cache_free(jbd2_inode_cache, jinode);
-}
-
-/* Primary revoke support */
-#define JOURNAL_REVOKE_DEFAULT_HASH 256
-extern int jbd2_journal_init_revoke(journal_t *, int);
-extern void jbd2_journal_destroy_revoke_caches(void);
-extern int jbd2_journal_init_revoke_caches(void);
-
-extern void jbd2_journal_destroy_revoke(journal_t *);
-extern int jbd2_journal_revoke (handle_t *, unsigned long long, struct buffer_head *);
-extern int jbd2_journal_cancel_revoke(handle_t *, struct journal_head *);
-extern void jbd2_journal_write_revoke_records(journal_t *,
- transaction_t *, int);
-
-/* Recovery revoke support */
-extern int jbd2_journal_set_revoke(journal_t *, unsigned long long, tid_t);
-extern int jbd2_journal_test_revoke(journal_t *, unsigned long long, tid_t);
-extern void jbd2_journal_clear_revoke(journal_t *);
-extern void jbd2_journal_switch_revoke_table(journal_t *journal);
-extern void jbd2_clear_buffer_revoked_flags(journal_t *journal);
-
-/*
- * The log thread user interface:
- *
- * Request space in the current transaction, and force transaction commit
- * transitions on demand.
- */
-
-int __jbd2_log_space_left(journal_t *); /* Called with journal locked */
-int jbd2_log_start_commit(journal_t *journal, tid_t tid);
-int __jbd2_log_start_commit(journal_t *journal, tid_t tid);
-int jbd2_journal_start_commit(journal_t *journal, tid_t *tid);
-int jbd2_journal_force_commit_nested(journal_t *journal);
-int jbd2_log_wait_commit(journal_t *journal, tid_t tid);
-int jbd2_log_do_checkpoint(journal_t *journal);
-int jbd2_trans_will_send_data_barrier(journal_t *journal, tid_t tid);
-
-void __jbd2_log_wait_for_space(journal_t *journal);
-extern void __jbd2_journal_drop_transaction(journal_t *, transaction_t *);
-extern int jbd2_cleanup_journal_tail(journal_t *);
-
-/* Debugging code only: */
-
-#define jbd_ENOSYS() \
-do { \
- printk (KERN_ERR "JBD unimplemented function %s\n", __func__); \
- current->state = TASK_UNINTERRUPTIBLE; \
- schedule(); \
-} while (1)
-
-/*
- * is_journal_abort
- *
- * Simple test wrapper function to test the JBD2_ABORT state flag. This
- * bit, when set, indicates that we have had a fatal error somewhere,
- * either inside the journaling layer or indicated to us by the client
- * (eg. ext3), and that we and should not commit any further
- * transactions.
- */
-
-static inline int is_journal_aborted(journal_t *journal)
-{
- return journal->j_flags & JBD2_ABORT;
-}
-
-static inline int is_handle_aborted(handle_t *handle)
-{
- if (handle->h_aborted)
- return 1;
- return is_journal_aborted(handle->h_transaction->t_journal);
-}
-
-static inline void jbd2_journal_abort_handle(handle_t *handle)
-{
- handle->h_aborted = 1;
-}
-
-#endif /* __KERNEL__ */
-
-/* Comparison functions for transaction IDs: perform comparisons using
- * modulo arithmetic so that they work over sequence number wraps. */
-
-static inline int tid_gt(tid_t x, tid_t y)
-{
- int difference = (x - y);
- return (difference > 0);
-}
-
-static inline int tid_geq(tid_t x, tid_t y)
-{
- int difference = (x - y);
- return (difference >= 0);
-}
-
-extern int jbd2_journal_blocks_per_page(struct inode *inode);
-extern size_t journal_tag_bytes(journal_t *journal);
-
-/*
- * Return the minimum number of blocks which must be free in the journal
- * before a new transaction may be started. Must be called under j_state_lock.
- */
-static inline int jbd_space_needed(journal_t *journal)
-{
- int nblocks = journal->j_max_transaction_buffers;
- if (journal->j_committing_transaction)
- nblocks += atomic_read(&journal->j_committing_transaction->
- t_outstanding_credits);
- return nblocks;
-}
-
-/*
- * Definitions which augment the buffer_head layer
- */
-
-/* journaling buffer types */
-#define BJ_None 0 /* Not journaled */
-#define BJ_Metadata 1 /* Normal journaled metadata */
-#define BJ_Forget 2 /* Buffer superseded by this transaction */
-#define BJ_IO 3 /* Buffer is for temporary IO use */
-#define BJ_Shadow 4 /* Buffer contents being shadowed to the log */
-#define BJ_LogCtl 5 /* Buffer contains log descriptors */
-#define BJ_Reserved 6 /* Buffer is reserved for access by journal */
-#define BJ_Types 7
-
-extern int jbd_blocks_per_page(struct inode *inode);
-
-#ifdef __KERNEL__
-
-#define buffer_trace_init(bh) do {} while (0)
-#define print_buffer_fields(bh) do {} while (0)
-#define print_buffer_trace(bh) do {} while (0)
-#define BUFFER_TRACE(bh, info) do {} while (0)
-#define BUFFER_TRACE2(bh, bh2, info) do {} while (0)
-#define JBUFFER_TRACE(jh, info) do {} while (0)
-
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_JBD2_H */
diff --git a/ANDROID_3.4.5/include/linux/jbd_common.h b/ANDROID_3.4.5/include/linux/jbd_common.h
deleted file mode 100644
index 6230f855..00000000
--- a/ANDROID_3.4.5/include/linux/jbd_common.h
+++ /dev/null
@@ -1,68 +0,0 @@
-#ifndef _LINUX_JBD_STATE_H
-#define _LINUX_JBD_STATE_H
-
-enum jbd_state_bits {
- BH_JBD /* Has an attached ext3 journal_head */
- = BH_PrivateStart,
- BH_JWrite, /* Being written to log (@@@ DEBUGGING) */
- BH_Freed, /* Has been freed (truncated) */
- BH_Revoked, /* Has been revoked from the log */
- BH_RevokeValid, /* Revoked flag is valid */
- BH_JBDDirty, /* Is dirty but journaled */
- BH_State, /* Pins most journal_head state */
- BH_JournalHead, /* Pins bh->b_private and jh->b_bh */
- BH_Unshadow, /* Dummy bit, for BJ_Shadow wakeup filtering */
- BH_JBDPrivateStart, /* First bit available for private use by FS */
-};
-
-BUFFER_FNS(JBD, jbd)
-BUFFER_FNS(JWrite, jwrite)
-BUFFER_FNS(JBDDirty, jbddirty)
-TAS_BUFFER_FNS(JBDDirty, jbddirty)
-BUFFER_FNS(Revoked, revoked)
-TAS_BUFFER_FNS(Revoked, revoked)
-BUFFER_FNS(RevokeValid, revokevalid)
-TAS_BUFFER_FNS(RevokeValid, revokevalid)
-BUFFER_FNS(Freed, freed)
-
-static inline struct buffer_head *jh2bh(struct journal_head *jh)
-{
- return jh->b_bh;
-}
-
-static inline struct journal_head *bh2jh(struct buffer_head *bh)
-{
- return bh->b_private;
-}
-
-static inline void jbd_lock_bh_state(struct buffer_head *bh)
-{
- bit_spin_lock(BH_State, &bh->b_state);
-}
-
-static inline int jbd_trylock_bh_state(struct buffer_head *bh)
-{
- return bit_spin_trylock(BH_State, &bh->b_state);
-}
-
-static inline int jbd_is_locked_bh_state(struct buffer_head *bh)
-{
- return bit_spin_is_locked(BH_State, &bh->b_state);
-}
-
-static inline void jbd_unlock_bh_state(struct buffer_head *bh)
-{
- bit_spin_unlock(BH_State, &bh->b_state);
-}
-
-static inline void jbd_lock_bh_journal_head(struct buffer_head *bh)
-{
- bit_spin_lock(BH_JournalHead, &bh->b_state);
-}
-
-static inline void jbd_unlock_bh_journal_head(struct buffer_head *bh)
-{
- bit_spin_unlock(BH_JournalHead, &bh->b_state);
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/jffs2.h b/ANDROID_3.4.5/include/linux/jffs2.h
deleted file mode 100644
index a18b719f..00000000
--- a/ANDROID_3.4.5/include/linux/jffs2.h
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- * JFFS2 -- Journalling Flash File System, Version 2.
- *
- * Copyright © 2001-2007 Red Hat, Inc.
- * Copyright © 2004-2010 David Woodhouse <dwmw2@infradead.org>
- *
- * Created by David Woodhouse <dwmw2@infradead.org>
- *
- * For licensing information, see the file 'LICENCE' in the
- * jffs2 directory.
- */
-
-#ifndef __LINUX_JFFS2_H__
-#define __LINUX_JFFS2_H__
-
-#include <linux/types.h>
-#include <linux/magic.h>
-
-/* You must include something which defines the C99 uintXX_t types.
- We don't do it from here because this file is used in too many
- different environments. */
-
-/* Values we may expect to find in the 'magic' field */
-#define JFFS2_OLD_MAGIC_BITMASK 0x1984
-#define JFFS2_MAGIC_BITMASK 0x1985
-#define KSAMTIB_CIGAM_2SFFJ 0x8519 /* For detecting wrong-endian fs */
-#define JFFS2_EMPTY_BITMASK 0xffff
-#define JFFS2_DIRTY_BITMASK 0x0000
-
-/* Summary node MAGIC marker */
-#define JFFS2_SUM_MAGIC 0x02851885
-
-/* We only allow a single char for length, and 0xFF is empty flash so
- we don't want it confused with a real length. Hence max 254.
-*/
-#define JFFS2_MAX_NAME_LEN 254
-
-/* How small can we sensibly write nodes? */
-#define JFFS2_MIN_DATA_LEN 128
-
-#define JFFS2_COMPR_NONE 0x00
-#define JFFS2_COMPR_ZERO 0x01
-#define JFFS2_COMPR_RTIME 0x02
-#define JFFS2_COMPR_RUBINMIPS 0x03
-#define JFFS2_COMPR_COPY 0x04
-#define JFFS2_COMPR_DYNRUBIN 0x05
-#define JFFS2_COMPR_ZLIB 0x06
-#define JFFS2_COMPR_LZO 0x07
-/* Compatibility flags. */
-#define JFFS2_COMPAT_MASK 0xc000 /* What do to if an unknown nodetype is found */
-#define JFFS2_NODE_ACCURATE 0x2000
-/* INCOMPAT: Fail to mount the filesystem */
-#define JFFS2_FEATURE_INCOMPAT 0xc000
-/* ROCOMPAT: Mount read-only */
-#define JFFS2_FEATURE_ROCOMPAT 0x8000
-/* RWCOMPAT_COPY: Mount read/write, and copy the node when it's GC'd */
-#define JFFS2_FEATURE_RWCOMPAT_COPY 0x4000
-/* RWCOMPAT_DELETE: Mount read/write, and delete the node when it's GC'd */
-#define JFFS2_FEATURE_RWCOMPAT_DELETE 0x0000
-
-#define JFFS2_NODETYPE_DIRENT (JFFS2_FEATURE_INCOMPAT | JFFS2_NODE_ACCURATE | 1)
-#define JFFS2_NODETYPE_INODE (JFFS2_FEATURE_INCOMPAT | JFFS2_NODE_ACCURATE | 2)
-#define JFFS2_NODETYPE_CLEANMARKER (JFFS2_FEATURE_RWCOMPAT_DELETE | JFFS2_NODE_ACCURATE | 3)
-#define JFFS2_NODETYPE_PADDING (JFFS2_FEATURE_RWCOMPAT_DELETE | JFFS2_NODE_ACCURATE | 4)
-
-#define JFFS2_NODETYPE_SUMMARY (JFFS2_FEATURE_RWCOMPAT_DELETE | JFFS2_NODE_ACCURATE | 6)
-
-#define JFFS2_NODETYPE_XATTR (JFFS2_FEATURE_INCOMPAT | JFFS2_NODE_ACCURATE | 8)
-#define JFFS2_NODETYPE_XREF (JFFS2_FEATURE_INCOMPAT | JFFS2_NODE_ACCURATE | 9)
-
-/* XATTR Related */
-#define JFFS2_XPREFIX_USER 1 /* for "user." */
-#define JFFS2_XPREFIX_SECURITY 2 /* for "security." */
-#define JFFS2_XPREFIX_ACL_ACCESS 3 /* for "system.posix_acl_access" */
-#define JFFS2_XPREFIX_ACL_DEFAULT 4 /* for "system.posix_acl_default" */
-#define JFFS2_XPREFIX_TRUSTED 5 /* for "trusted.*" */
-
-#define JFFS2_ACL_VERSION 0x0001
-
-// Maybe later...
-//#define JFFS2_NODETYPE_CHECKPOINT (JFFS2_FEATURE_RWCOMPAT_DELETE | JFFS2_NODE_ACCURATE | 3)
-//#define JFFS2_NODETYPE_OPTIONS (JFFS2_FEATURE_RWCOMPAT_COPY | JFFS2_NODE_ACCURATE | 4)
-
-
-#define JFFS2_INO_FLAG_PREREAD 1 /* Do read_inode() for this one at
- mount time, don't wait for it to
- happen later */
-#define JFFS2_INO_FLAG_USERCOMPR 2 /* User has requested a specific
- compression type */
-
-
-/* These can go once we've made sure we've caught all uses without
- byteswapping */
-
-typedef struct {
- __u32 v32;
-} __attribute__((packed)) jint32_t;
-
-typedef struct {
- __u32 m;
-} __attribute__((packed)) jmode_t;
-
-typedef struct {
- __u16 v16;
-} __attribute__((packed)) jint16_t;
-
-struct jffs2_unknown_node
-{
- /* All start like this */
- jint16_t magic;
- jint16_t nodetype;
- jint32_t totlen; /* So we can skip over nodes we don't grok */
- jint32_t hdr_crc;
-};
-
-struct jffs2_raw_dirent
-{
- jint16_t magic;
- jint16_t nodetype; /* == JFFS2_NODETYPE_DIRENT */
- jint32_t totlen;
- jint32_t hdr_crc;
- jint32_t pino;
- jint32_t version;
- jint32_t ino; /* == zero for unlink */
- jint32_t mctime;
- __u8 nsize;
- __u8 type;
- __u8 unused[2];
- jint32_t node_crc;
- jint32_t name_crc;
- __u8 name[0];
-};
-
-/* The JFFS2 raw inode structure: Used for storage on physical media. */
-/* The uid, gid, atime, mtime and ctime members could be longer, but
- are left like this for space efficiency. If and when people decide
- they really need them extended, it's simple enough to add support for
- a new type of raw node.
-*/
-struct jffs2_raw_inode
-{
- jint16_t magic; /* A constant magic number. */
- jint16_t nodetype; /* == JFFS2_NODETYPE_INODE */
- jint32_t totlen; /* Total length of this node (inc data, etc.) */
- jint32_t hdr_crc;
- jint32_t ino; /* Inode number. */
- jint32_t version; /* Version number. */
- jmode_t mode; /* The file's type or mode. */
- jint16_t uid; /* The file's owner. */
- jint16_t gid; /* The file's group. */
- jint32_t isize; /* Total resultant size of this inode (used for truncations) */
- jint32_t atime; /* Last access time. */
- jint32_t mtime; /* Last modification time. */
- jint32_t ctime; /* Change time. */
- jint32_t offset; /* Where to begin to write. */
- jint32_t csize; /* (Compressed) data size */
- jint32_t dsize; /* Size of the node's data. (after decompression) */
- __u8 compr; /* Compression algorithm used */
- __u8 usercompr; /* Compression algorithm requested by the user */
- jint16_t flags; /* See JFFS2_INO_FLAG_* */
- jint32_t data_crc; /* CRC for the (compressed) data. */
- jint32_t node_crc; /* CRC for the raw inode (excluding data) */
- __u8 data[0];
-};
-
-struct jffs2_raw_xattr {
- jint16_t magic;
- jint16_t nodetype; /* = JFFS2_NODETYPE_XATTR */
- jint32_t totlen;
- jint32_t hdr_crc;
- jint32_t xid; /* XATTR identifier number */
- jint32_t version;
- __u8 xprefix;
- __u8 name_len;
- jint16_t value_len;
- jint32_t data_crc;
- jint32_t node_crc;
- __u8 data[0];
-} __attribute__((packed));
-
-struct jffs2_raw_xref
-{
- jint16_t magic;
- jint16_t nodetype; /* = JFFS2_NODETYPE_XREF */
- jint32_t totlen;
- jint32_t hdr_crc;
- jint32_t ino; /* inode number */
- jint32_t xid; /* XATTR identifier number */
- jint32_t xseqno; /* xref sequential number */
- jint32_t node_crc;
-} __attribute__((packed));
-
-struct jffs2_raw_summary
-{
- jint16_t magic;
- jint16_t nodetype; /* = JFFS2_NODETYPE_SUMMARY */
- jint32_t totlen;
- jint32_t hdr_crc;
- jint32_t sum_num; /* number of sum entries*/
- jint32_t cln_mkr; /* clean marker size, 0 = no cleanmarker */
- jint32_t padded; /* sum of the size of padding nodes */
- jint32_t sum_crc; /* summary information crc */
- jint32_t node_crc; /* node crc */
- jint32_t sum[0]; /* inode summary info */
-};
-
-union jffs2_node_union
-{
- struct jffs2_raw_inode i;
- struct jffs2_raw_dirent d;
- struct jffs2_raw_xattr x;
- struct jffs2_raw_xref r;
- struct jffs2_raw_summary s;
- struct jffs2_unknown_node u;
-};
-
-/* Data payload for device nodes. */
-union jffs2_device_node {
- jint16_t old_id;
- jint32_t new_id;
-};
-
-#endif /* __LINUX_JFFS2_H__ */
diff --git a/ANDROID_3.4.5/include/linux/jhash.h b/ANDROID_3.4.5/include/linux/jhash.h
deleted file mode 100644
index 47cb09ed..00000000
--- a/ANDROID_3.4.5/include/linux/jhash.h
+++ /dev/null
@@ -1,170 +0,0 @@
-#ifndef _LINUX_JHASH_H
-#define _LINUX_JHASH_H
-
-/* jhash.h: Jenkins hash support.
- *
- * Copyright (C) 2006. Bob Jenkins (bob_jenkins@burtleburtle.net)
- *
- * http://burtleburtle.net/bob/hash/
- *
- * These are the credits from Bob's sources:
- *
- * lookup3.c, by Bob Jenkins, May 2006, Public Domain.
- *
- * These are functions for producing 32-bit hashes for hash table lookup.
- * hashword(), hashlittle(), hashlittle2(), hashbig(), mix(), and final()
- * are externally useful functions. Routines to test the hash are included
- * if SELF_TEST is defined. You can use this free for any purpose. It's in
- * the public domain. It has no warranty.
- *
- * Copyright (C) 2009-2010 Jozsef Kadlecsik (kadlec@blackhole.kfki.hu)
- *
- * I've modified Bob's hash to be useful in the Linux kernel, and
- * any bugs present are my fault.
- * Jozsef
- */
-#include <linux/bitops.h>
-#include <linux/unaligned/packed_struct.h>
-
-/* Best hash sizes are of power of two */
-#define jhash_size(n) ((u32)1<<(n))
-/* Mask the hash value, i.e (value & jhash_mask(n)) instead of (value % n) */
-#define jhash_mask(n) (jhash_size(n)-1)
-
-/* __jhash_mix -- mix 3 32-bit values reversibly. */
-#define __jhash_mix(a, b, c) \
-{ \
- a -= c; a ^= rol32(c, 4); c += b; \
- b -= a; b ^= rol32(a, 6); a += c; \
- c -= b; c ^= rol32(b, 8); b += a; \
- a -= c; a ^= rol32(c, 16); c += b; \
- b -= a; b ^= rol32(a, 19); a += c; \
- c -= b; c ^= rol32(b, 4); b += a; \
-}
-
-/* __jhash_final - final mixing of 3 32-bit values (a,b,c) into c */
-#define __jhash_final(a, b, c) \
-{ \
- c ^= b; c -= rol32(b, 14); \
- a ^= c; a -= rol32(c, 11); \
- b ^= a; b -= rol32(a, 25); \
- c ^= b; c -= rol32(b, 16); \
- a ^= c; a -= rol32(c, 4); \
- b ^= a; b -= rol32(a, 14); \
- c ^= b; c -= rol32(b, 24); \
-}
-
-/* An arbitrary initial parameter */
-#define JHASH_INITVAL 0xdeadbeef
-
-/* jhash - hash an arbitrary key
- * @k: sequence of bytes as key
- * @length: the length of the key
- * @initval: the previous hash, or an arbitray value
- *
- * The generic version, hashes an arbitrary sequence of bytes.
- * No alignment or length assumptions are made about the input key.
- *
- * Returns the hash value of the key. The result depends on endianness.
- */
-static inline u32 jhash(const void *key, u32 length, u32 initval)
-{
- u32 a, b, c;
- const u8 *k = key;
-
- /* Set up the internal state */
- a = b = c = JHASH_INITVAL + length + initval;
-
- /* All but the last block: affect some 32 bits of (a,b,c) */
- while (length > 12) {
- a += __get_unaligned_cpu32(k);
- b += __get_unaligned_cpu32(k + 4);
- c += __get_unaligned_cpu32(k + 8);
- __jhash_mix(a, b, c);
- length -= 12;
- k += 12;
- }
- /* Last block: affect all 32 bits of (c) */
- /* All the case statements fall through */
- switch (length) {
- case 12: c += (u32)k[11]<<24;
- case 11: c += (u32)k[10]<<16;
- case 10: c += (u32)k[9]<<8;
- case 9: c += k[8];
- case 8: b += (u32)k[7]<<24;
- case 7: b += (u32)k[6]<<16;
- case 6: b += (u32)k[5]<<8;
- case 5: b += k[4];
- case 4: a += (u32)k[3]<<24;
- case 3: a += (u32)k[2]<<16;
- case 2: a += (u32)k[1]<<8;
- case 1: a += k[0];
- __jhash_final(a, b, c);
- case 0: /* Nothing left to add */
- break;
- }
-
- return c;
-}
-
-/* jhash2 - hash an array of u32's
- * @k: the key which must be an array of u32's
- * @length: the number of u32's in the key
- * @initval: the previous hash, or an arbitray value
- *
- * Returns the hash value of the key.
- */
-static inline u32 jhash2(const u32 *k, u32 length, u32 initval)
-{
- u32 a, b, c;
-
- /* Set up the internal state */
- a = b = c = JHASH_INITVAL + (length<<2) + initval;
-
- /* Handle most of the key */
- while (length > 3) {
- a += k[0];
- b += k[1];
- c += k[2];
- __jhash_mix(a, b, c);
- length -= 3;
- k += 3;
- }
-
- /* Handle the last 3 u32's: all the case statements fall through */
- switch (length) {
- case 3: c += k[2];
- case 2: b += k[1];
- case 1: a += k[0];
- __jhash_final(a, b, c);
- case 0: /* Nothing left to add */
- break;
- }
-
- return c;
-}
-
-
-/* jhash_3words - hash exactly 3, 2 or 1 word(s) */
-static inline u32 jhash_3words(u32 a, u32 b, u32 c, u32 initval)
-{
- a += JHASH_INITVAL;
- b += JHASH_INITVAL;
- c += initval;
-
- __jhash_final(a, b, c);
-
- return c;
-}
-
-static inline u32 jhash_2words(u32 a, u32 b, u32 initval)
-{
- return jhash_3words(a, b, 0, initval);
-}
-
-static inline u32 jhash_1word(u32 a, u32 initval)
-{
- return jhash_3words(a, 0, 0, initval);
-}
-
-#endif /* _LINUX_JHASH_H */
diff --git a/ANDROID_3.4.5/include/linux/jiffies.h b/ANDROID_3.4.5/include/linux/jiffies.h
deleted file mode 100644
index 265e2c3c..00000000
--- a/ANDROID_3.4.5/include/linux/jiffies.h
+++ /dev/null
@@ -1,315 +0,0 @@
-#ifndef _LINUX_JIFFIES_H
-#define _LINUX_JIFFIES_H
-
-#include <linux/math64.h>
-#include <linux/kernel.h>
-#include <linux/types.h>
-#include <linux/time.h>
-#include <linux/timex.h>
-#include <asm/param.h> /* for HZ */
-
-/*
- * The following defines establish the engineering parameters of the PLL
- * model. The HZ variable establishes the timer interrupt frequency, 100 Hz
- * for the SunOS kernel, 256 Hz for the Ultrix kernel and 1024 Hz for the
- * OSF/1 kernel. The SHIFT_HZ define expresses the same value as the
- * nearest power of two in order to avoid hardware multiply operations.
- */
-#if HZ >= 12 && HZ < 24
-# define SHIFT_HZ 4
-#elif HZ >= 24 && HZ < 48
-# define SHIFT_HZ 5
-#elif HZ >= 48 && HZ < 96
-# define SHIFT_HZ 6
-#elif HZ >= 96 && HZ < 192
-# define SHIFT_HZ 7
-#elif HZ >= 192 && HZ < 384
-# define SHIFT_HZ 8
-#elif HZ >= 384 && HZ < 768
-# define SHIFT_HZ 9
-#elif HZ >= 768 && HZ < 1536
-# define SHIFT_HZ 10
-#elif HZ >= 1536 && HZ < 3072
-# define SHIFT_HZ 11
-#elif HZ >= 3072 && HZ < 6144
-# define SHIFT_HZ 12
-#elif HZ >= 6144 && HZ < 12288
-# define SHIFT_HZ 13
-#else
-# error Invalid value of HZ.
-#endif
-
-/* LATCH is used in the interval timer and ftape setup. */
-#define LATCH ((CLOCK_TICK_RATE + HZ/2) / HZ) /* For divider */
-
-/* Suppose we want to divide two numbers NOM and DEN: NOM/DEN, then we can
- * improve accuracy by shifting LSH bits, hence calculating:
- * (NOM << LSH) / DEN
- * This however means trouble for large NOM, because (NOM << LSH) may no
- * longer fit in 32 bits. The following way of calculating this gives us
- * some slack, under the following conditions:
- * - (NOM / DEN) fits in (32 - LSH) bits.
- * - (NOM % DEN) fits in (32 - LSH) bits.
- */
-#define SH_DIV(NOM,DEN,LSH) ( (((NOM) / (DEN)) << (LSH)) \
- + ((((NOM) % (DEN)) << (LSH)) + (DEN) / 2) / (DEN))
-
-/* HZ is the requested value. ACTHZ is actual HZ ("<< 8" is for accuracy) */
-#define ACTHZ (SH_DIV (CLOCK_TICK_RATE, LATCH, 8))
-
-/* TICK_NSEC is the time between ticks in nsec assuming real ACTHZ */
-#define TICK_NSEC (SH_DIV (1000000UL * 1000, ACTHZ, 8))
-
-/* TICK_USEC is the time between ticks in usec assuming fake USER_HZ */
-#define TICK_USEC ((1000000UL + USER_HZ/2) / USER_HZ)
-
-/* TICK_USEC_TO_NSEC is the time between ticks in nsec assuming real ACTHZ and */
-/* a value TUSEC for TICK_USEC (can be set bij adjtimex) */
-#define TICK_USEC_TO_NSEC(TUSEC) (SH_DIV (TUSEC * USER_HZ * 1000, ACTHZ, 8))
-
-/* some arch's have a small-data section that can be accessed register-relative
- * but that can only take up to, say, 4-byte variables. jiffies being part of
- * an 8-byte variable may not be correctly accessed unless we force the issue
- */
-#define __jiffy_data __attribute__((section(".data")))
-
-/*
- * The 64-bit value is not atomic - you MUST NOT read it
- * without sampling the sequence number in xtime_lock.
- * get_jiffies_64() will do this for you as appropriate.
- */
-extern u64 __jiffy_data jiffies_64;
-extern unsigned long volatile __jiffy_data jiffies;
-
-#if (BITS_PER_LONG < 64)
-u64 get_jiffies_64(void);
-#else
-static inline u64 get_jiffies_64(void)
-{
- return (u64)jiffies;
-}
-#endif
-
-/*
- * These inlines deal with timer wrapping correctly. You are
- * strongly encouraged to use them
- * 1. Because people otherwise forget
- * 2. Because if the timer wrap changes in future you won't have to
- * alter your driver code.
- *
- * time_after(a,b) returns true if the time a is after time b.
- *
- * Do this with "<0" and ">=0" to only test the sign of the result. A
- * good compiler would generate better code (and a really good compiler
- * wouldn't care). Gcc is currently neither.
- */
-#define time_after(a,b) \
- (typecheck(unsigned long, a) && \
- typecheck(unsigned long, b) && \
- ((long)(b) - (long)(a) < 0))
-#define time_before(a,b) time_after(b,a)
-
-#define time_after_eq(a,b) \
- (typecheck(unsigned long, a) && \
- typecheck(unsigned long, b) && \
- ((long)(a) - (long)(b) >= 0))
-#define time_before_eq(a,b) time_after_eq(b,a)
-
-/*
- * Calculate whether a is in the range of [b, c].
- */
-#define time_in_range(a,b,c) \
- (time_after_eq(a,b) && \
- time_before_eq(a,c))
-
-/*
- * Calculate whether a is in the range of [b, c).
- */
-#define time_in_range_open(a,b,c) \
- (time_after_eq(a,b) && \
- time_before(a,c))
-
-/* Same as above, but does so with platform independent 64bit types.
- * These must be used when utilizing jiffies_64 (i.e. return value of
- * get_jiffies_64() */
-#define time_after64(a,b) \
- (typecheck(__u64, a) && \
- typecheck(__u64, b) && \
- ((__s64)(b) - (__s64)(a) < 0))
-#define time_before64(a,b) time_after64(b,a)
-
-#define time_after_eq64(a,b) \
- (typecheck(__u64, a) && \
- typecheck(__u64, b) && \
- ((__s64)(a) - (__s64)(b) >= 0))
-#define time_before_eq64(a,b) time_after_eq64(b,a)
-
-/*
- * These four macros compare jiffies and 'a' for convenience.
- */
-
-/* time_is_before_jiffies(a) return true if a is before jiffies */
-#define time_is_before_jiffies(a) time_after(jiffies, a)
-
-/* time_is_after_jiffies(a) return true if a is after jiffies */
-#define time_is_after_jiffies(a) time_before(jiffies, a)
-
-/* time_is_before_eq_jiffies(a) return true if a is before or equal to jiffies*/
-#define time_is_before_eq_jiffies(a) time_after_eq(jiffies, a)
-
-/* time_is_after_eq_jiffies(a) return true if a is after or equal to jiffies*/
-#define time_is_after_eq_jiffies(a) time_before_eq(jiffies, a)
-
-/*
- * Have the 32 bit jiffies value wrap 5 minutes after boot
- * so jiffies wrap bugs show up earlier.
- */
-#define INITIAL_JIFFIES ((unsigned long)(unsigned int) (-300*HZ))
-
-/*
- * Change timeval to jiffies, trying to avoid the
- * most obvious overflows..
- *
- * And some not so obvious.
- *
- * Note that we don't want to return LONG_MAX, because
- * for various timeout reasons we often end up having
- * to wait "jiffies+1" in order to guarantee that we wait
- * at _least_ "jiffies" - so "jiffies+1" had better still
- * be positive.
- */
-#define MAX_JIFFY_OFFSET ((LONG_MAX >> 1)-1)
-
-extern unsigned long preset_lpj;
-
-/*
- * We want to do realistic conversions of time so we need to use the same
- * values the update wall clock code uses as the jiffies size. This value
- * is: TICK_NSEC (which is defined in timex.h). This
- * is a constant and is in nanoseconds. We will use scaled math
- * with a set of scales defined here as SEC_JIFFIE_SC, USEC_JIFFIE_SC and
- * NSEC_JIFFIE_SC. Note that these defines contain nothing but
- * constants and so are computed at compile time. SHIFT_HZ (computed in
- * timex.h) adjusts the scaling for different HZ values.
-
- * Scaled math??? What is that?
- *
- * Scaled math is a way to do integer math on values that would,
- * otherwise, either overflow, underflow, or cause undesired div
- * instructions to appear in the execution path. In short, we "scale"
- * up the operands so they take more bits (more precision, less
- * underflow), do the desired operation and then "scale" the result back
- * by the same amount. If we do the scaling by shifting we avoid the
- * costly mpy and the dastardly div instructions.
-
- * Suppose, for example, we want to convert from seconds to jiffies
- * where jiffies is defined in nanoseconds as NSEC_PER_JIFFIE. The
- * simple math is: jiff = (sec * NSEC_PER_SEC) / NSEC_PER_JIFFIE; We
- * observe that (NSEC_PER_SEC / NSEC_PER_JIFFIE) is a constant which we
- * might calculate at compile time, however, the result will only have
- * about 3-4 bits of precision (less for smaller values of HZ).
- *
- * So, we scale as follows:
- * jiff = (sec) * (NSEC_PER_SEC / NSEC_PER_JIFFIE);
- * jiff = ((sec) * ((NSEC_PER_SEC * SCALE)/ NSEC_PER_JIFFIE)) / SCALE;
- * Then we make SCALE a power of two so:
- * jiff = ((sec) * ((NSEC_PER_SEC << SCALE)/ NSEC_PER_JIFFIE)) >> SCALE;
- * Now we define:
- * #define SEC_CONV = ((NSEC_PER_SEC << SCALE)/ NSEC_PER_JIFFIE))
- * jiff = (sec * SEC_CONV) >> SCALE;
- *
- * Often the math we use will expand beyond 32-bits so we tell C how to
- * do this and pass the 64-bit result of the mpy through the ">> SCALE"
- * which should take the result back to 32-bits. We want this expansion
- * to capture as much precision as possible. At the same time we don't
- * want to overflow so we pick the SCALE to avoid this. In this file,
- * that means using a different scale for each range of HZ values (as
- * defined in timex.h).
- *
- * For those who want to know, gcc will give a 64-bit result from a "*"
- * operator if the result is a long long AND at least one of the
- * operands is cast to long long (usually just prior to the "*" so as
- * not to confuse it into thinking it really has a 64-bit operand,
- * which, buy the way, it can do, but it takes more code and at least 2
- * mpys).
-
- * We also need to be aware that one second in nanoseconds is only a
- * couple of bits away from overflowing a 32-bit word, so we MUST use
- * 64-bits to get the full range time in nanoseconds.
-
- */
-
-/*
- * Here are the scales we will use. One for seconds, nanoseconds and
- * microseconds.
- *
- * Within the limits of cpp we do a rough cut at the SEC_JIFFIE_SC and
- * check if the sign bit is set. If not, we bump the shift count by 1.
- * (Gets an extra bit of precision where we can use it.)
- * We know it is set for HZ = 1024 and HZ = 100 not for 1000.
- * Haven't tested others.
-
- * Limits of cpp (for #if expressions) only long (no long long), but
- * then we only need the most signicant bit.
- */
-
-#define SEC_JIFFIE_SC (31 - SHIFT_HZ)
-#if !((((NSEC_PER_SEC << 2) / TICK_NSEC) << (SEC_JIFFIE_SC - 2)) & 0x80000000)
-#undef SEC_JIFFIE_SC
-#define SEC_JIFFIE_SC (32 - SHIFT_HZ)
-#endif
-#define NSEC_JIFFIE_SC (SEC_JIFFIE_SC + 29)
-#define USEC_JIFFIE_SC (SEC_JIFFIE_SC + 19)
-#define SEC_CONVERSION ((unsigned long)((((u64)NSEC_PER_SEC << SEC_JIFFIE_SC) +\
- TICK_NSEC -1) / (u64)TICK_NSEC))
-
-#define NSEC_CONVERSION ((unsigned long)((((u64)1 << NSEC_JIFFIE_SC) +\
- TICK_NSEC -1) / (u64)TICK_NSEC))
-#define USEC_CONVERSION \
- ((unsigned long)((((u64)NSEC_PER_USEC << USEC_JIFFIE_SC) +\
- TICK_NSEC -1) / (u64)TICK_NSEC))
-/*
- * USEC_ROUND is used in the timeval to jiffie conversion. See there
- * for more details. It is the scaled resolution rounding value. Note
- * that it is a 64-bit value. Since, when it is applied, we are already
- * in jiffies (albit scaled), it is nothing but the bits we will shift
- * off.
- */
-#define USEC_ROUND (u64)(((u64)1 << USEC_JIFFIE_SC) - 1)
-/*
- * The maximum jiffie value is (MAX_INT >> 1). Here we translate that
- * into seconds. The 64-bit case will overflow if we are not careful,
- * so use the messy SH_DIV macro to do it. Still all constants.
- */
-#if BITS_PER_LONG < 64
-# define MAX_SEC_IN_JIFFIES \
- (long)((u64)((u64)MAX_JIFFY_OFFSET * TICK_NSEC) / NSEC_PER_SEC)
-#else /* take care of overflow on 64 bits machines */
-# define MAX_SEC_IN_JIFFIES \
- (SH_DIV((MAX_JIFFY_OFFSET >> SEC_JIFFIE_SC) * TICK_NSEC, NSEC_PER_SEC, 1) - 1)
-
-#endif
-
-/*
- * Convert various time units to each other:
- */
-extern unsigned int jiffies_to_msecs(const unsigned long j);
-extern unsigned int jiffies_to_usecs(const unsigned long j);
-extern unsigned long msecs_to_jiffies(const unsigned int m);
-extern unsigned long usecs_to_jiffies(const unsigned int u);
-extern unsigned long timespec_to_jiffies(const struct timespec *value);
-extern void jiffies_to_timespec(const unsigned long jiffies,
- struct timespec *value);
-extern unsigned long timeval_to_jiffies(const struct timeval *value);
-extern void jiffies_to_timeval(const unsigned long jiffies,
- struct timeval *value);
-extern clock_t jiffies_to_clock_t(unsigned long x);
-extern unsigned long clock_t_to_jiffies(unsigned long x);
-extern u64 jiffies_64_to_clock_t(u64 x);
-extern u64 nsec_to_clock_t(u64 x);
-extern u64 nsecs_to_jiffies64(u64 n);
-extern unsigned long nsecs_to_jiffies(u64 n);
-
-#define TIMESTAMP_SIZE 30
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/journal-head.h b/ANDROID_3.4.5/include/linux/journal-head.h
deleted file mode 100644
index c18b46f8..00000000
--- a/ANDROID_3.4.5/include/linux/journal-head.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * include/linux/journal-head.h
- *
- * buffer_head fields for JBD
- *
- * 27 May 2001 Andrew Morton
- * Created - pulled out of fs.h
- */
-
-#ifndef JOURNAL_HEAD_H_INCLUDED
-#define JOURNAL_HEAD_H_INCLUDED
-
-typedef unsigned int tid_t; /* Unique transaction ID */
-typedef struct transaction_s transaction_t; /* Compound transaction type */
-
-
-struct buffer_head;
-
-struct journal_head {
- /*
- * Points back to our buffer_head. [jbd_lock_bh_journal_head()]
- */
- struct buffer_head *b_bh;
-
- /*
- * Reference count - see description in journal.c
- * [jbd_lock_bh_journal_head()]
- */
- int b_jcount;
-
- /*
- * Journalling list for this buffer [jbd_lock_bh_state()]
- */
- unsigned b_jlist;
-
- /*
- * This flag signals the buffer has been modified by
- * the currently running transaction
- * [jbd_lock_bh_state()]
- */
- unsigned b_modified;
-
- /*
- * This feild tracks the last transaction id in which this buffer
- * has been cowed
- * [jbd_lock_bh_state()]
- */
- tid_t b_cow_tid;
-
- /*
- * Copy of the buffer data frozen for writing to the log.
- * [jbd_lock_bh_state()]
- */
- char *b_frozen_data;
-
- /*
- * Pointer to a saved copy of the buffer containing no uncommitted
- * deallocation references, so that allocations can avoid overwriting
- * uncommitted deletes. [jbd_lock_bh_state()]
- */
- char *b_committed_data;
-
- /*
- * Pointer to the compound transaction which owns this buffer's
- * metadata: either the running transaction or the committing
- * transaction (if there is one). Only applies to buffers on a
- * transaction's data or metadata journaling list.
- * [j_list_lock] [jbd_lock_bh_state()]
- * Either of these locks is enough for reading, both are needed for
- * changes.
- */
- transaction_t *b_transaction;
-
- /*
- * Pointer to the running compound transaction which is currently
- * modifying the buffer's metadata, if there was already a transaction
- * committing it when the new transaction touched it.
- * [t_list_lock] [jbd_lock_bh_state()]
- */
- transaction_t *b_next_transaction;
-
- /*
- * Doubly-linked list of buffers on a transaction's data, metadata or
- * forget queue. [t_list_lock] [jbd_lock_bh_state()]
- */
- struct journal_head *b_tnext, *b_tprev;
-
- /*
- * Pointer to the compound transaction against which this buffer
- * is checkpointed. Only dirty buffers can be checkpointed.
- * [j_list_lock]
- */
- transaction_t *b_cp_transaction;
-
- /*
- * Doubly-linked list of buffers still remaining to be flushed
- * before an old transaction can be checkpointed.
- * [j_list_lock]
- */
- struct journal_head *b_cpnext, *b_cpprev;
-
- /* Trigger type */
- struct jbd2_buffer_trigger_type *b_triggers;
-
- /* Trigger type for the committing transaction's frozen data */
- struct jbd2_buffer_trigger_type *b_frozen_triggers;
-};
-
-#endif /* JOURNAL_HEAD_H_INCLUDED */
diff --git a/ANDROID_3.4.5/include/linux/joystick.h b/ANDROID_3.4.5/include/linux/joystick.h
deleted file mode 100644
index 47199b13..00000000
--- a/ANDROID_3.4.5/include/linux/joystick.h
+++ /dev/null
@@ -1,145 +0,0 @@
-#ifndef _LINUX_JOYSTICK_H
-#define _LINUX_JOYSTICK_H
-
-/*
- * Copyright (C) 1996-2000 Vojtech Pavlik
- *
- * Sponsored by SuSE
- */
-
-/*
- * 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
- *
- * Should you need to contact me, the author, you can do so either by
- * e-mail - mail your message to <vojtech@suse.cz>, or by paper mail:
- * Vojtech Pavlik, Ucitelska 1576, Prague 8, 182 00 Czech Republic
- */
-
-#include <linux/types.h>
-#include <linux/input.h>
-
-/*
- * Version
- */
-
-#define JS_VERSION 0x020100
-
-/*
- * Types and constants for reading from /dev/js
- */
-
-#define JS_EVENT_BUTTON 0x01 /* button pressed/released */
-#define JS_EVENT_AXIS 0x02 /* joystick moved */
-#define JS_EVENT_INIT 0x80 /* initial state of device */
-
-struct js_event {
- __u32 time; /* event timestamp in milliseconds */
- __s16 value; /* value */
- __u8 type; /* event type */
- __u8 number; /* axis/button number */
-};
-
-/*
- * IOCTL commands for joystick driver
- */
-
-#define JSIOCGVERSION _IOR('j', 0x01, __u32) /* get driver version */
-
-#define JSIOCGAXES _IOR('j', 0x11, __u8) /* get number of axes */
-#define JSIOCGBUTTONS _IOR('j', 0x12, __u8) /* get number of buttons */
-#define JSIOCGNAME(len) _IOC(_IOC_READ, 'j', 0x13, len) /* get identifier string */
-
-#define JSIOCSCORR _IOW('j', 0x21, struct js_corr) /* set correction values */
-#define JSIOCGCORR _IOR('j', 0x22, struct js_corr) /* get correction values */
-
-#define JSIOCSAXMAP _IOW('j', 0x31, __u8[ABS_CNT]) /* set axis mapping */
-#define JSIOCGAXMAP _IOR('j', 0x32, __u8[ABS_CNT]) /* get axis mapping */
-#define JSIOCSBTNMAP _IOW('j', 0x33, __u16[KEY_MAX - BTN_MISC + 1]) /* set button mapping */
-#define JSIOCGBTNMAP _IOR('j', 0x34, __u16[KEY_MAX - BTN_MISC + 1]) /* get button mapping */
-
-/*
- * Types and constants for get/set correction
- */
-
-#define JS_CORR_NONE 0x00 /* returns raw values */
-#define JS_CORR_BROKEN 0x01 /* broken line */
-
-struct js_corr {
- __s32 coef[8];
- __s16 prec;
- __u16 type;
-};
-
-/*
- * v0.x compatibility definitions
- */
-
-#define JS_RETURN sizeof(struct JS_DATA_TYPE)
-#define JS_TRUE 1
-#define JS_FALSE 0
-#define JS_X_0 0x01
-#define JS_Y_0 0x02
-#define JS_X_1 0x04
-#define JS_Y_1 0x08
-#define JS_MAX 2
-
-#define JS_DEF_TIMEOUT 0x1300
-#define JS_DEF_CORR 0
-#define JS_DEF_TIMELIMIT 10L
-
-#define JS_SET_CAL 1
-#define JS_GET_CAL 2
-#define JS_SET_TIMEOUT 3
-#define JS_GET_TIMEOUT 4
-#define JS_SET_TIMELIMIT 5
-#define JS_GET_TIMELIMIT 6
-#define JS_GET_ALL 7
-#define JS_SET_ALL 8
-
-struct JS_DATA_TYPE {
- __s32 buttons;
- __s32 x;
- __s32 y;
-};
-
-struct JS_DATA_SAVE_TYPE_32 {
- __s32 JS_TIMEOUT;
- __s32 BUSY;
- __s32 JS_EXPIRETIME;
- __s32 JS_TIMELIMIT;
- struct JS_DATA_TYPE JS_SAVE;
- struct JS_DATA_TYPE JS_CORR;
-};
-
-struct JS_DATA_SAVE_TYPE_64 {
- __s32 JS_TIMEOUT;
- __s32 BUSY;
- __s64 JS_EXPIRETIME;
- __s64 JS_TIMELIMIT;
- struct JS_DATA_TYPE JS_SAVE;
- struct JS_DATA_TYPE JS_CORR;
-};
-
-#ifdef __KERNEL__
-#if BITS_PER_LONG == 64
-#define JS_DATA_SAVE_TYPE JS_DATA_SAVE_TYPE_64
-#elif BITS_PER_LONG == 32
-#define JS_DATA_SAVE_TYPE JS_DATA_SAVE_TYPE_32
-#else
-#error Unexpected BITS_PER_LONG
-#endif
-#endif
-
-#endif /* _LINUX_JOYSTICK_H */
diff --git a/ANDROID_3.4.5/include/linux/jump_label.h b/ANDROID_3.4.5/include/linux/jump_label.h
deleted file mode 100644
index c513a405..00000000
--- a/ANDROID_3.4.5/include/linux/jump_label.h
+++ /dev/null
@@ -1,226 +0,0 @@
-#ifndef _LINUX_JUMP_LABEL_H
-#define _LINUX_JUMP_LABEL_H
-
-/*
- * Jump label support
- *
- * Copyright (C) 2009-2012 Jason Baron <jbaron@redhat.com>
- * Copyright (C) 2011-2012 Peter Zijlstra <pzijlstr@redhat.com>
- *
- * Jump labels provide an interface to generate dynamic branches using
- * self-modifying code. Assuming toolchain and architecture support the result
- * of a "if (static_key_false(&key))" statement is a unconditional branch (which
- * defaults to false - and the true block is placed out of line).
- *
- * However at runtime we can change the branch target using
- * static_key_slow_{inc,dec}(). These function as a 'reference' count on the key
- * object and for as long as there are references all branches referring to
- * that particular key will point to the (out of line) true block.
- *
- * Since this relies on modifying code the static_key_slow_{inc,dec}() functions
- * must be considered absolute slow paths (machine wide synchronization etc.).
- * OTOH, since the affected branches are unconditional their runtime overhead
- * will be absolutely minimal, esp. in the default (off) case where the total
- * effect is a single NOP of appropriate size. The on case will patch in a jump
- * to the out-of-line block.
- *
- * When the control is directly exposed to userspace it is prudent to delay the
- * decrement to avoid high frequency code modifications which can (and do)
- * cause significant performance degradation. Struct static_key_deferred and
- * static_key_slow_dec_deferred() provide for this.
- *
- * Lacking toolchain and or architecture support, it falls back to a simple
- * conditional branch.
- *
- * struct static_key my_key = STATIC_KEY_INIT_TRUE;
- *
- * if (static_key_true(&my_key)) {
- * }
- *
- * will result in the true case being in-line and starts the key with a single
- * reference. Mixing static_key_true() and static_key_false() on the same key is not
- * allowed.
- *
- * Not initializing the key (static data is initialized to 0s anyway) is the
- * same as using STATIC_KEY_INIT_FALSE and static_key_false() is
- * equivalent with static_branch().
- *
-*/
-
-#include <linux/types.h>
-#include <linux/compiler.h>
-#include <linux/workqueue.h>
-
-#if defined(CC_HAVE_ASM_GOTO) && defined(CONFIG_JUMP_LABEL)
-
-struct static_key {
- atomic_t enabled;
-/* Set lsb bit to 1 if branch is default true, 0 ot */
- struct jump_entry *entries;
-#ifdef CONFIG_MODULES
- struct static_key_mod *next;
-#endif
-};
-
-struct static_key_deferred {
- struct static_key key;
- unsigned long timeout;
- struct delayed_work work;
-};
-
-# include <asm/jump_label.h>
-# define HAVE_JUMP_LABEL
-#endif /* CC_HAVE_ASM_GOTO && CONFIG_JUMP_LABEL */
-
-enum jump_label_type {
- JUMP_LABEL_DISABLE = 0,
- JUMP_LABEL_ENABLE,
-};
-
-struct module;
-
-#ifdef HAVE_JUMP_LABEL
-
-#define JUMP_LABEL_TRUE_BRANCH 1UL
-
-static
-inline struct jump_entry *jump_label_get_entries(struct static_key *key)
-{
- return (struct jump_entry *)((unsigned long)key->entries
- & ~JUMP_LABEL_TRUE_BRANCH);
-}
-
-static inline bool jump_label_get_branch_default(struct static_key *key)
-{
- if ((unsigned long)key->entries & JUMP_LABEL_TRUE_BRANCH)
- return true;
- return false;
-}
-
-static __always_inline bool static_key_false(struct static_key *key)
-{
- return arch_static_branch(key);
-}
-
-static __always_inline bool static_key_true(struct static_key *key)
-{
- return !static_key_false(key);
-}
-
-/* Deprecated. Please use 'static_key_false() instead. */
-static __always_inline bool static_branch(struct static_key *key)
-{
- return arch_static_branch(key);
-}
-
-extern struct jump_entry __start___jump_table[];
-extern struct jump_entry __stop___jump_table[];
-
-extern void jump_label_init(void);
-extern void jump_label_lock(void);
-extern void jump_label_unlock(void);
-extern void arch_jump_label_transform(struct jump_entry *entry,
- enum jump_label_type type);
-extern void arch_jump_label_transform_static(struct jump_entry *entry,
- enum jump_label_type type);
-extern int jump_label_text_reserved(void *start, void *end);
-extern void static_key_slow_inc(struct static_key *key);
-extern void static_key_slow_dec(struct static_key *key);
-extern void static_key_slow_dec_deferred(struct static_key_deferred *key);
-extern void jump_label_apply_nops(struct module *mod);
-extern void
-jump_label_rate_limit(struct static_key_deferred *key, unsigned long rl);
-
-#define STATIC_KEY_INIT_TRUE ((struct static_key) \
- { .enabled = ATOMIC_INIT(1), .entries = (void *)1 })
-#define STATIC_KEY_INIT_FALSE ((struct static_key) \
- { .enabled = ATOMIC_INIT(0), .entries = (void *)0 })
-
-#else /* !HAVE_JUMP_LABEL */
-
-#include <linux/atomic.h>
-
-struct static_key {
- atomic_t enabled;
-};
-
-static __always_inline void jump_label_init(void)
-{
-}
-
-struct static_key_deferred {
- struct static_key key;
-};
-
-static __always_inline bool static_key_false(struct static_key *key)
-{
- if (unlikely(atomic_read(&key->enabled)) > 0)
- return true;
- return false;
-}
-
-static __always_inline bool static_key_true(struct static_key *key)
-{
- if (likely(atomic_read(&key->enabled)) > 0)
- return true;
- return false;
-}
-
-/* Deprecated. Please use 'static_key_false() instead. */
-static __always_inline bool static_branch(struct static_key *key)
-{
- if (unlikely(atomic_read(&key->enabled)) > 0)
- return true;
- return false;
-}
-
-static inline void static_key_slow_inc(struct static_key *key)
-{
- atomic_inc(&key->enabled);
-}
-
-static inline void static_key_slow_dec(struct static_key *key)
-{
- atomic_dec(&key->enabled);
-}
-
-static inline void static_key_slow_dec_deferred(struct static_key_deferred *key)
-{
- static_key_slow_dec(&key->key);
-}
-
-static inline int jump_label_text_reserved(void *start, void *end)
-{
- return 0;
-}
-
-static inline void jump_label_lock(void) {}
-static inline void jump_label_unlock(void) {}
-
-static inline int jump_label_apply_nops(struct module *mod)
-{
- return 0;
-}
-
-static inline void
-jump_label_rate_limit(struct static_key_deferred *key,
- unsigned long rl)
-{
-}
-
-#define STATIC_KEY_INIT_TRUE ((struct static_key) \
- { .enabled = ATOMIC_INIT(1) })
-#define STATIC_KEY_INIT_FALSE ((struct static_key) \
- { .enabled = ATOMIC_INIT(0) })
-
-#endif /* HAVE_JUMP_LABEL */
-
-#define STATIC_KEY_INIT STATIC_KEY_INIT_FALSE
-#define jump_label_enabled static_key_enabled
-
-static inline bool static_key_enabled(struct static_key *key)
-{
- return (atomic_read(&key->enabled) > 0);
-}
-
-#endif /* _LINUX_JUMP_LABEL_H */
diff --git a/ANDROID_3.4.5/include/linux/jz4740-adc.h b/ANDROID_3.4.5/include/linux/jz4740-adc.h
deleted file mode 100644
index 8184578f..00000000
--- a/ANDROID_3.4.5/include/linux/jz4740-adc.h
+++ /dev/null
@@ -1,32 +0,0 @@
-
-#ifndef __LINUX_JZ4740_ADC
-#define __LINUX_JZ4740_ADC
-
-struct device;
-
-/*
- * jz4740_adc_set_config - Configure a JZ4740 adc device
- * @dev: Pointer to a jz4740-adc device
- * @mask: Mask for the config value to be set
- * @val: Value to be set
- *
- * This function can be used by the JZ4740 ADC mfd cells to configure their
- * options in the shared config register.
-*/
-int jz4740_adc_set_config(struct device *dev, uint32_t mask, uint32_t val);
-
-#define JZ_ADC_CONFIG_SPZZ BIT(31)
-#define JZ_ADC_CONFIG_EX_IN BIT(30)
-#define JZ_ADC_CONFIG_DNUM_MASK (0x7 << 16)
-#define JZ_ADC_CONFIG_DMA_ENABLE BIT(15)
-#define JZ_ADC_CONFIG_XYZ_MASK (0x2 << 13)
-#define JZ_ADC_CONFIG_SAMPLE_NUM_MASK (0x7 << 10)
-#define JZ_ADC_CONFIG_CLKDIV_MASK (0xf << 5)
-#define JZ_ADC_CONFIG_BAT_MB BIT(4)
-
-#define JZ_ADC_CONFIG_DNUM(dnum) ((dnum) << 16)
-#define JZ_ADC_CONFIG_XYZ_OFFSET(dnum) ((xyz) << 13)
-#define JZ_ADC_CONFIG_SAMPLE_NUM(x) ((x) << 10)
-#define JZ_ADC_CONFIG_CLKDIV(div) ((div) << 5)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/kallsyms.h b/ANDROID_3.4.5/include/linux/kallsyms.h
deleted file mode 100644
index 38757195..00000000
--- a/ANDROID_3.4.5/include/linux/kallsyms.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/* Rewritten and vastly simplified by Rusty Russell for in-kernel
- * module loader:
- * Copyright 2002 Rusty Russell <rusty@rustcorp.com.au> IBM Corporation
- */
-#ifndef _LINUX_KALLSYMS_H
-#define _LINUX_KALLSYMS_H
-
-#include <linux/errno.h>
-#include <linux/kernel.h>
-#include <linux/stddef.h>
-
-#define KSYM_NAME_LEN 128
-#define KSYM_SYMBOL_LEN (sizeof("%s+%#lx/%#lx [%s]") + (KSYM_NAME_LEN - 1) + \
- 2*(BITS_PER_LONG*3/10) + (MODULE_NAME_LEN - 1) + 1)
-
-struct module;
-
-#ifdef CONFIG_KALLSYMS
-/* Lookup the address for a symbol. Returns 0 if not found. */
-unsigned long kallsyms_lookup_name(const char *name);
-
-/* Call a function on each kallsyms symbol in the core kernel */
-int kallsyms_on_each_symbol(int (*fn)(void *, const char *, struct module *,
- unsigned long),
- void *data);
-
-extern int kallsyms_lookup_size_offset(unsigned long addr,
- unsigned long *symbolsize,
- unsigned long *offset);
-
-/* Lookup an address. modname is set to NULL if it's in the kernel. */
-const char *kallsyms_lookup(unsigned long addr,
- unsigned long *symbolsize,
- unsigned long *offset,
- char **modname, char *namebuf);
-
-/* Look up a kernel symbol and return it in a text buffer. */
-extern int sprint_symbol(char *buffer, unsigned long address);
-extern int sprint_backtrace(char *buffer, unsigned long address);
-
-/* Look up a kernel symbol and print it to the kernel messages. */
-extern void __print_symbol(const char *fmt, unsigned long address);
-
-int lookup_symbol_name(unsigned long addr, char *symname);
-int lookup_symbol_attrs(unsigned long addr, unsigned long *size, unsigned long *offset, char *modname, char *name);
-
-#else /* !CONFIG_KALLSYMS */
-
-static inline unsigned long kallsyms_lookup_name(const char *name)
-{
- return 0;
-}
-
-static inline int kallsyms_on_each_symbol(int (*fn)(void *, const char *,
- struct module *,
- unsigned long),
- void *data)
-{
- return 0;
-}
-
-static inline int kallsyms_lookup_size_offset(unsigned long addr,
- unsigned long *symbolsize,
- unsigned long *offset)
-{
- return 0;
-}
-
-static inline const char *kallsyms_lookup(unsigned long addr,
- unsigned long *symbolsize,
- unsigned long *offset,
- char **modname, char *namebuf)
-{
- return NULL;
-}
-
-static inline int sprint_symbol(char *buffer, unsigned long addr)
-{
- *buffer = '\0';
- return 0;
-}
-
-static inline int sprint_backtrace(char *buffer, unsigned long addr)
-{
- *buffer = '\0';
- return 0;
-}
-
-static inline int lookup_symbol_name(unsigned long addr, char *symname)
-{
- return -ERANGE;
-}
-
-static inline int lookup_symbol_attrs(unsigned long addr, unsigned long *size, unsigned long *offset, char *modname, char *name)
-{
- return -ERANGE;
-}
-
-/* Stupid that this does nothing, but I didn't create this mess. */
-#define __print_symbol(fmt, addr)
-#endif /*CONFIG_KALLSYMS*/
-
-/* This macro allows us to keep printk typechecking */
-static __printf(1, 2)
-void __check_printsym_format(const char *fmt, ...)
-{
-}
-
-static inline void print_symbol(const char *fmt, unsigned long addr)
-{
- __check_printsym_format(fmt, "");
- __print_symbol(fmt, (unsigned long)
- __builtin_extract_return_addr((void *)addr));
-}
-
-static inline void print_ip_sym(unsigned long ip)
-{
- printk("[<%p>] %pS\n", (void *) ip, (void *) ip);
-}
-
-#endif /*_LINUX_KALLSYMS_H*/
diff --git a/ANDROID_3.4.5/include/linux/kbd_diacr.h b/ANDROID_3.4.5/include/linux/kbd_diacr.h
deleted file mode 100644
index 7274ec68..00000000
--- a/ANDROID_3.4.5/include/linux/kbd_diacr.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef _DIACR_H
-#define _DIACR_H
-#include <linux/kd.h>
-
-extern struct kbdiacruc accent_table[];
-extern unsigned int accent_table_size;
-
-#endif /* _DIACR_H */
diff --git a/ANDROID_3.4.5/include/linux/kbd_kern.h b/ANDROID_3.4.5/include/linux/kbd_kern.h
deleted file mode 100644
index daf4a3a4..00000000
--- a/ANDROID_3.4.5/include/linux/kbd_kern.h
+++ /dev/null
@@ -1,160 +0,0 @@
-#ifndef _KBD_KERN_H
-#define _KBD_KERN_H
-
-#include <linux/tty.h>
-#include <linux/interrupt.h>
-#include <linux/keyboard.h>
-
-extern struct tasklet_struct keyboard_tasklet;
-
-extern char *func_table[MAX_NR_FUNC];
-extern char func_buf[];
-extern char *funcbufptr;
-extern int funcbufsize, funcbufleft;
-
-/*
- * kbd->xxx contains the VC-local things (flag settings etc..)
- *
- * Note: externally visible are LED_SCR, LED_NUM, LED_CAP defined in kd.h
- * The code in KDGETLED / KDSETLED depends on the internal and
- * external order being the same.
- *
- * Note: lockstate is used as index in the array key_map.
- */
-struct kbd_struct {
-
- unsigned char lockstate;
-/* 8 modifiers - the names do not have any meaning at all;
- they can be associated to arbitrarily chosen keys */
-#define VC_SHIFTLOCK KG_SHIFT /* shift lock mode */
-#define VC_ALTGRLOCK KG_ALTGR /* altgr lock mode */
-#define VC_CTRLLOCK KG_CTRL /* control lock mode */
-#define VC_ALTLOCK KG_ALT /* alt lock mode */
-#define VC_SHIFTLLOCK KG_SHIFTL /* shiftl lock mode */
-#define VC_SHIFTRLOCK KG_SHIFTR /* shiftr lock mode */
-#define VC_CTRLLLOCK KG_CTRLL /* ctrll lock mode */
-#define VC_CTRLRLOCK KG_CTRLR /* ctrlr lock mode */
- unsigned char slockstate; /* for `sticky' Shift, Ctrl, etc. */
-
- unsigned char ledmode:2; /* one 2-bit value */
-#define LED_SHOW_FLAGS 0 /* traditional state */
-#define LED_SHOW_IOCTL 1 /* only change leds upon ioctl */
-#define LED_SHOW_MEM 2 /* `heartbeat': peek into memory */
-
- unsigned char ledflagstate:4; /* flags, not lights */
- unsigned char default_ledflagstate:4;
-#define VC_SCROLLOCK 0 /* scroll-lock mode */
-#define VC_NUMLOCK 1 /* numeric lock mode */
-#define VC_CAPSLOCK 2 /* capslock mode */
-#define VC_KANALOCK 3 /* kanalock mode */
-
- unsigned char kbdmode:3; /* one 3-bit value */
-#define VC_XLATE 0 /* translate keycodes using keymap */
-#define VC_MEDIUMRAW 1 /* medium raw (keycode) mode */
-#define VC_RAW 2 /* raw (scancode) mode */
-#define VC_UNICODE 3 /* Unicode mode */
-#define VC_OFF 4 /* disabled mode */
-
- unsigned char modeflags:5;
-#define VC_APPLIC 0 /* application key mode */
-#define VC_CKMODE 1 /* cursor key mode */
-#define VC_REPEAT 2 /* keyboard repeat */
-#define VC_CRLF 3 /* 0 - enter sends CR, 1 - enter sends CRLF */
-#define VC_META 4 /* 0 - meta, 1 - meta=prefix with ESC */
-};
-
-extern int kbd_init(void);
-
-extern unsigned char getledstate(void);
-extern void setledstate(struct kbd_struct *kbd, unsigned int led);
-
-extern int do_poke_blanked_console;
-
-extern void (*kbd_ledfunc)(unsigned int led);
-
-extern int set_console(int nr);
-extern void schedule_console_callback(void);
-
-/* FIXME: review locking for vt.c callers */
-static inline void set_leds(void)
-{
- tasklet_schedule(&keyboard_tasklet);
-}
-
-static inline int vc_kbd_mode(struct kbd_struct * kbd, int flag)
-{
- return ((kbd->modeflags >> flag) & 1);
-}
-
-static inline int vc_kbd_led(struct kbd_struct * kbd, int flag)
-{
- return ((kbd->ledflagstate >> flag) & 1);
-}
-
-static inline void set_vc_kbd_mode(struct kbd_struct * kbd, int flag)
-{
- kbd->modeflags |= 1 << flag;
-}
-
-static inline void set_vc_kbd_led(struct kbd_struct * kbd, int flag)
-{
- kbd->ledflagstate |= 1 << flag;
-}
-
-static inline void clr_vc_kbd_mode(struct kbd_struct * kbd, int flag)
-{
- kbd->modeflags &= ~(1 << flag);
-}
-
-static inline void clr_vc_kbd_led(struct kbd_struct * kbd, int flag)
-{
- kbd->ledflagstate &= ~(1 << flag);
-}
-
-static inline void chg_vc_kbd_lock(struct kbd_struct * kbd, int flag)
-{
- kbd->lockstate ^= 1 << flag;
-}
-
-static inline void chg_vc_kbd_slock(struct kbd_struct * kbd, int flag)
-{
- kbd->slockstate ^= 1 << flag;
-}
-
-static inline void chg_vc_kbd_mode(struct kbd_struct * kbd, int flag)
-{
- kbd->modeflags ^= 1 << flag;
-}
-
-static inline void chg_vc_kbd_led(struct kbd_struct * kbd, int flag)
-{
- kbd->ledflagstate ^= 1 << flag;
-}
-
-#define U(x) ((x) ^ 0xf000)
-
-#define BRL_UC_ROW 0x2800
-
-/* keyboard.c */
-
-struct console;
-
-void compute_shiftstate(void);
-
-/* defkeymap.c */
-
-extern unsigned int keymap_count;
-
-/* console.c */
-
-static inline void con_schedule_flip(struct tty_struct *t)
-{
- unsigned long flags;
- spin_lock_irqsave(&t->buf.lock, flags);
- if (t->buf.tail != NULL)
- t->buf.tail->commit = t->buf.tail->used;
- spin_unlock_irqrestore(&t->buf.lock, flags);
- schedule_work(&t->buf.work);
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/kbuild.h b/ANDROID_3.4.5/include/linux/kbuild.h
deleted file mode 100644
index 22a72198..00000000
--- a/ANDROID_3.4.5/include/linux/kbuild.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef __LINUX_KBUILD_H
-#define __LINUX_KBUILD_H
-
-#define DEFINE(sym, val) \
- asm volatile("\n->" #sym " %0 " #val : : "i" (val))
-
-#define BLANK() asm volatile("\n->" : : )
-
-#define OFFSET(sym, str, mem) \
- DEFINE(sym, offsetof(struct str, mem))
-
-#define COMMENT(x) \
- asm volatile("\n->#" x)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/kconfig.h b/ANDROID_3.4.5/include/linux/kconfig.h
deleted file mode 100644
index be342b94..00000000
--- a/ANDROID_3.4.5/include/linux/kconfig.h
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef __LINUX_KCONFIG_H
-#define __LINUX_KCONFIG_H
-
-#include <generated/autoconf.h>
-
-/*
- * Helper macros to use CONFIG_ options in C/CPP expressions. Note that
- * these only work with boolean and tristate options.
- */
-
-/*
- * Getting something that works in C and CPP for an arg that may or may
- * not be defined is tricky. Here, if we have "#define CONFIG_BOOGER 1"
- * we match on the placeholder define, insert the "0," for arg1 and generate
- * the triplet (0, 1, 0). Then the last step cherry picks the 2nd arg (a one).
- * When CONFIG_BOOGER is not defined, we generate a (... 1, 0) pair, and when
- * the last step cherry picks the 2nd arg, we get a zero.
- */
-#define __ARG_PLACEHOLDER_1 0,
-#define config_enabled(cfg) _config_enabled(cfg)
-#define _config_enabled(value) __config_enabled(__ARG_PLACEHOLDER_##value)
-#define __config_enabled(arg1_or_junk) ___config_enabled(arg1_or_junk 1, 0)
-#define ___config_enabled(__ignored, val, ...) val
-
-/*
- * IS_ENABLED(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'y' or 'm',
- * 0 otherwise.
- *
- */
-#define IS_ENABLED(option) \
- (config_enabled(option) || config_enabled(option##_MODULE))
-
-/*
- * IS_BUILTIN(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'y', 0
- * otherwise. For boolean options, this is equivalent to
- * IS_ENABLED(CONFIG_FOO).
- */
-#define IS_BUILTIN(option) config_enabled(option)
-
-/*
- * IS_MODULE(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'm', 0
- * otherwise.
- */
-#define IS_MODULE(option) config_enabled(option##_MODULE)
-
-#endif /* __LINUX_KCONFIG_H */
diff --git a/ANDROID_3.4.5/include/linux/kd.h b/ANDROID_3.4.5/include/linux/kd.h
deleted file mode 100644
index c36d8476..00000000
--- a/ANDROID_3.4.5/include/linux/kd.h
+++ /dev/null
@@ -1,186 +0,0 @@
-#ifndef _LINUX_KD_H
-#define _LINUX_KD_H
-#include <linux/types.h>
-#include <linux/compiler.h>
-
-/* 0x4B is 'K', to avoid collision with termios and vt */
-
-#define GIO_FONT 0x4B60 /* gets font in expanded form */
-#define PIO_FONT 0x4B61 /* use font in expanded form */
-
-#define GIO_FONTX 0x4B6B /* get font using struct consolefontdesc */
-#define PIO_FONTX 0x4B6C /* set font using struct consolefontdesc */
-struct consolefontdesc {
- unsigned short charcount; /* characters in font (256 or 512) */
- unsigned short charheight; /* scan lines per character (1-32) */
- char __user *chardata; /* font data in expanded form */
-};
-
-#define PIO_FONTRESET 0x4B6D /* reset to default font */
-
-#define GIO_CMAP 0x4B70 /* gets colour palette on VGA+ */
-#define PIO_CMAP 0x4B71 /* sets colour palette on VGA+ */
-
-#define KIOCSOUND 0x4B2F /* start sound generation (0 for off) */
-#define KDMKTONE 0x4B30 /* generate tone */
-
-#define KDGETLED 0x4B31 /* return current led state */
-#define KDSETLED 0x4B32 /* set led state [lights, not flags] */
-#define LED_SCR 0x01 /* scroll lock led */
-#define LED_NUM 0x02 /* num lock led */
-#define LED_CAP 0x04 /* caps lock led */
-
-#define KDGKBTYPE 0x4B33 /* get keyboard type */
-#define KB_84 0x01
-#define KB_101 0x02 /* this is what we always answer */
-#define KB_OTHER 0x03
-
-#define KDADDIO 0x4B34 /* add i/o port as valid */
-#define KDDELIO 0x4B35 /* del i/o port as valid */
-#define KDENABIO 0x4B36 /* enable i/o to video board */
-#define KDDISABIO 0x4B37 /* disable i/o to video board */
-
-#define KDSETMODE 0x4B3A /* set text/graphics mode */
-#define KD_TEXT 0x00
-#define KD_GRAPHICS 0x01
-#define KD_TEXT0 0x02 /* obsolete */
-#define KD_TEXT1 0x03 /* obsolete */
-#define KDGETMODE 0x4B3B /* get current mode */
-
-#define KDMAPDISP 0x4B3C /* map display into address space */
-#define KDUNMAPDISP 0x4B3D /* unmap display from address space */
-
-typedef char scrnmap_t;
-#define E_TABSZ 256
-#define GIO_SCRNMAP 0x4B40 /* get screen mapping from kernel */
-#define PIO_SCRNMAP 0x4B41 /* put screen mapping table in kernel */
-#define GIO_UNISCRNMAP 0x4B69 /* get full Unicode screen mapping */
-#define PIO_UNISCRNMAP 0x4B6A /* set full Unicode screen mapping */
-
-#define GIO_UNIMAP 0x4B66 /* get unicode-to-font mapping from kernel */
-struct unipair {
- unsigned short unicode;
- unsigned short fontpos;
-};
-struct unimapdesc {
- unsigned short entry_ct;
- struct unipair __user *entries;
-};
-#define PIO_UNIMAP 0x4B67 /* put unicode-to-font mapping in kernel */
-#define PIO_UNIMAPCLR 0x4B68 /* clear table, possibly advise hash algorithm */
-struct unimapinit {
- unsigned short advised_hashsize; /* 0 if no opinion */
- unsigned short advised_hashstep; /* 0 if no opinion */
- unsigned short advised_hashlevel; /* 0 if no opinion */
-};
-
-#define UNI_DIRECT_BASE 0xF000 /* start of Direct Font Region */
-#define UNI_DIRECT_MASK 0x01FF /* Direct Font Region bitmask */
-
-#define K_RAW 0x00
-#define K_XLATE 0x01
-#define K_MEDIUMRAW 0x02
-#define K_UNICODE 0x03
-#define K_OFF 0x04
-#define KDGKBMODE 0x4B44 /* gets current keyboard mode */
-#define KDSKBMODE 0x4B45 /* sets current keyboard mode */
-
-#define K_METABIT 0x03
-#define K_ESCPREFIX 0x04
-#define KDGKBMETA 0x4B62 /* gets meta key handling mode */
-#define KDSKBMETA 0x4B63 /* sets meta key handling mode */
-
-#define K_SCROLLLOCK 0x01
-#define K_NUMLOCK 0x02
-#define K_CAPSLOCK 0x04
-#define KDGKBLED 0x4B64 /* get led flags (not lights) */
-#define KDSKBLED 0x4B65 /* set led flags (not lights) */
-
-struct kbentry {
- unsigned char kb_table;
- unsigned char kb_index;
- unsigned short kb_value;
-};
-#define K_NORMTAB 0x00
-#define K_SHIFTTAB 0x01
-#define K_ALTTAB 0x02
-#define K_ALTSHIFTTAB 0x03
-
-#define KDGKBENT 0x4B46 /* gets one entry in translation table */
-#define KDSKBENT 0x4B47 /* sets one entry in translation table */
-
-struct kbsentry {
- unsigned char kb_func;
- unsigned char kb_string[512];
-};
-#define KDGKBSENT 0x4B48 /* gets one function key string entry */
-#define KDSKBSENT 0x4B49 /* sets one function key string entry */
-
-struct kbdiacr {
- unsigned char diacr, base, result;
-};
-struct kbdiacrs {
- unsigned int kb_cnt; /* number of entries in following array */
- struct kbdiacr kbdiacr[256]; /* MAX_DIACR from keyboard.h */
-};
-#define KDGKBDIACR 0x4B4A /* read kernel accent table */
-#define KDSKBDIACR 0x4B4B /* write kernel accent table */
-
-struct kbdiacruc {
- unsigned int diacr, base, result;
-};
-struct kbdiacrsuc {
- unsigned int kb_cnt; /* number of entries in following array */
- struct kbdiacruc kbdiacruc[256]; /* MAX_DIACR from keyboard.h */
-};
-#define KDGKBDIACRUC 0x4BFA /* read kernel accent table - UCS */
-#define KDSKBDIACRUC 0x4BFB /* write kernel accent table - UCS */
-
-struct kbkeycode {
- unsigned int scancode, keycode;
-};
-#define KDGETKEYCODE 0x4B4C /* read kernel keycode table entry */
-#define KDSETKEYCODE 0x4B4D /* write kernel keycode table entry */
-
-#define KDSIGACCEPT 0x4B4E /* accept kbd generated signals */
-
-struct kbd_repeat {
- int delay; /* in msec; <= 0: don't change */
- int period; /* in msec; <= 0: don't change */
- /* earlier this field was misnamed "rate" */
-};
-
-#define KDKBDREP 0x4B52 /* set keyboard delay/repeat rate;
- * actually used values are returned */
-
-#define KDFONTOP 0x4B72 /* font operations */
-
-struct console_font_op {
- unsigned int op; /* operation code KD_FONT_OP_* */
- unsigned int flags; /* KD_FONT_FLAG_* */
- unsigned int width, height; /* font size */
- unsigned int charcount;
- unsigned char __user *data; /* font data with height fixed to 32 */
-};
-
-struct console_font {
- unsigned int width, height; /* font size */
- unsigned int charcount;
- unsigned char *data; /* font data with height fixed to 32 */
-};
-
-#define KD_FONT_OP_SET 0 /* Set font */
-#define KD_FONT_OP_GET 1 /* Get font */
-#define KD_FONT_OP_SET_DEFAULT 2 /* Set font to default, data points to name / NULL */
-#define KD_FONT_OP_COPY 3 /* Copy from another console */
-
-#define KD_FONT_FLAG_DONT_RECALC 1 /* Don't recalculate hw charcell size [compat] */
-#ifdef __KERNEL__
-#define KD_FONT_FLAG_OLD 0x80000000 /* Invoked via old interface [compat] */
-#endif
-
-/* note: 0x4B00-0x4B4E all have had a value at some time;
- don't reuse for the time being */
-/* note: 0x4B60-0x4B6D, 0x4B70-0x4B72 used above */
-
-#endif /* _LINUX_KD_H */
diff --git a/ANDROID_3.4.5/include/linux/kdb.h b/ANDROID_3.4.5/include/linux/kdb.h
deleted file mode 100644
index 06472585..00000000
--- a/ANDROID_3.4.5/include/linux/kdb.h
+++ /dev/null
@@ -1,169 +0,0 @@
-#ifndef _KDB_H
-#define _KDB_H
-
-/*
- * Kernel Debugger Architecture Independent Global Headers
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (c) 2000-2007 Silicon Graphics, Inc. All Rights Reserved.
- * Copyright (C) 2000 Stephane Eranian <eranian@hpl.hp.com>
- * Copyright (C) 2009 Jason Wessel <jason.wessel@windriver.com>
- */
-
-#ifdef CONFIG_KGDB_KDB
-#include <linux/init.h>
-#include <linux/sched.h>
-#include <linux/atomic.h>
-
-#define KDB_POLL_FUNC_MAX 5
-extern int kdb_poll_idx;
-
-/*
- * kdb_initial_cpu is initialized to -1, and is set to the cpu
- * number whenever the kernel debugger is entered.
- */
-extern int kdb_initial_cpu;
-extern atomic_t kdb_event;
-
-/* Types and messages used for dynamically added kdb shell commands */
-
-#define KDB_MAXARGS 16 /* Maximum number of arguments to a function */
-
-typedef enum {
- KDB_REPEAT_NONE = 0, /* Do not repeat this command */
- KDB_REPEAT_NO_ARGS, /* Repeat the command without arguments */
- KDB_REPEAT_WITH_ARGS, /* Repeat the command including its arguments */
-} kdb_repeat_t;
-
-typedef int (*kdb_func_t)(int, const char **);
-
-/* KDB return codes from a command or internal kdb function */
-#define KDB_NOTFOUND (-1)
-#define KDB_ARGCOUNT (-2)
-#define KDB_BADWIDTH (-3)
-#define KDB_BADRADIX (-4)
-#define KDB_NOTENV (-5)
-#define KDB_NOENVVALUE (-6)
-#define KDB_NOTIMP (-7)
-#define KDB_ENVFULL (-8)
-#define KDB_ENVBUFFULL (-9)
-#define KDB_TOOMANYBPT (-10)
-#define KDB_TOOMANYDBREGS (-11)
-#define KDB_DUPBPT (-12)
-#define KDB_BPTNOTFOUND (-13)
-#define KDB_BADMODE (-14)
-#define KDB_BADINT (-15)
-#define KDB_INVADDRFMT (-16)
-#define KDB_BADREG (-17)
-#define KDB_BADCPUNUM (-18)
-#define KDB_BADLENGTH (-19)
-#define KDB_NOBP (-20)
-#define KDB_BADADDR (-21)
-
-/*
- * kdb_diemsg
- *
- * Contains a pointer to the last string supplied to the
- * kernel 'die' panic function.
- */
-extern const char *kdb_diemsg;
-
-#define KDB_FLAG_EARLYKDB (1 << 0) /* set from boot parameter kdb=early */
-#define KDB_FLAG_CATASTROPHIC (1 << 1) /* A catastrophic event has occurred */
-#define KDB_FLAG_CMD_INTERRUPT (1 << 2) /* Previous command was interrupted */
-#define KDB_FLAG_NOIPI (1 << 3) /* Do not send IPIs */
-#define KDB_FLAG_ONLY_DO_DUMP (1 << 4) /* Only do a dump, used when
- * kdb is off */
-#define KDB_FLAG_NO_CONSOLE (1 << 5) /* No console is available,
- * kdb is disabled */
-#define KDB_FLAG_NO_VT_CONSOLE (1 << 6) /* No VT console is available, do
- * not use keyboard */
-#define KDB_FLAG_NO_I8042 (1 << 7) /* No i8042 chip is available, do
- * not use keyboard */
-
-extern int kdb_flags; /* Global flags, see kdb_state for per cpu state */
-
-extern void kdb_save_flags(void);
-extern void kdb_restore_flags(void);
-
-#define KDB_FLAG(flag) (kdb_flags & KDB_FLAG_##flag)
-#define KDB_FLAG_SET(flag) ((void)(kdb_flags |= KDB_FLAG_##flag))
-#define KDB_FLAG_CLEAR(flag) ((void)(kdb_flags &= ~KDB_FLAG_##flag))
-
-/*
- * External entry point for the kernel debugger. The pt_regs
- * at the time of entry are supplied along with the reason for
- * entry to the kernel debugger.
- */
-
-typedef enum {
- KDB_REASON_ENTER = 1, /* KDB_ENTER() trap/fault - regs valid */
- KDB_REASON_ENTER_SLAVE, /* KDB_ENTER_SLAVE() trap/fault - regs valid */
- KDB_REASON_BREAK, /* Breakpoint inst. - regs valid */
- KDB_REASON_DEBUG, /* Debug Fault - regs valid */
- KDB_REASON_OOPS, /* Kernel Oops - regs valid */
- KDB_REASON_SWITCH, /* CPU switch - regs valid*/
- KDB_REASON_KEYBOARD, /* Keyboard entry - regs valid */
- KDB_REASON_NMI, /* Non-maskable interrupt; regs valid */
- KDB_REASON_RECURSE, /* Recursive entry to kdb;
- * regs probably valid */
- KDB_REASON_SSTEP, /* Single Step trap. - regs valid */
-} kdb_reason_t;
-
-extern int kdb_trap_printk;
-extern __printf(1, 0) int vkdb_printf(const char *fmt, va_list args);
-extern __printf(1, 2) int kdb_printf(const char *, ...);
-typedef __printf(1, 2) int (*kdb_printf_t)(const char *, ...);
-
-extern void kdb_init(int level);
-
-/* Access to kdb specific polling devices */
-typedef int (*get_char_func)(void);
-extern get_char_func kdb_poll_funcs[];
-extern int kdb_get_kbd_char(void);
-
-static inline
-int kdb_process_cpu(const struct task_struct *p)
-{
- unsigned int cpu = task_thread_info(p)->cpu;
- if (cpu > num_possible_cpus())
- cpu = 0;
- return cpu;
-}
-
-/* kdb access to register set for stack dumping */
-extern struct pt_regs *kdb_current_regs;
-#ifdef CONFIG_KALLSYMS
-extern const char *kdb_walk_kallsyms(loff_t *pos);
-#else /* ! CONFIG_KALLSYMS */
-static inline const char *kdb_walk_kallsyms(loff_t *pos)
-{
- return NULL;
-}
-#endif /* ! CONFIG_KALLSYMS */
-
-/* Dynamic kdb shell command registration */
-extern int kdb_register(char *, kdb_func_t, char *, char *, short);
-extern int kdb_register_repeat(char *, kdb_func_t, char *, char *,
- short, kdb_repeat_t);
-extern int kdb_unregister(char *);
-#else /* ! CONFIG_KGDB_KDB */
-#define kdb_printf(...)
-#define kdb_init(x)
-#define kdb_register(...)
-#define kdb_register_repeat(...)
-#define kdb_uregister(x)
-#endif /* CONFIG_KGDB_KDB */
-enum {
- KDB_NOT_INITIALIZED,
- KDB_INIT_EARLY,
- KDB_INIT_FULL,
-};
-
-extern int kdbgetintenv(const char *, int *);
-extern int kdb_set(int, const char **);
-
-#endif /* !_KDB_H */
diff --git a/ANDROID_3.4.5/include/linux/kdebug.h b/ANDROID_3.4.5/include/linux/kdebug.h
deleted file mode 100644
index ed815090..00000000
--- a/ANDROID_3.4.5/include/linux/kdebug.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef _LINUX_KDEBUG_H
-#define _LINUX_KDEBUG_H
-
-#include <asm/kdebug.h>
-
-struct notifier_block;
-
-struct die_args {
- struct pt_regs *regs;
- const char *str;
- long err;
- int trapnr;
- int signr;
-};
-
-int register_die_notifier(struct notifier_block *nb);
-int unregister_die_notifier(struct notifier_block *nb);
-
-int notify_die(enum die_val val, const char *str,
- struct pt_regs *regs, long err, int trap, int sig);
-
-#endif /* _LINUX_KDEBUG_H */
diff --git a/ANDROID_3.4.5/include/linux/kdev_t.h b/ANDROID_3.4.5/include/linux/kdev_t.h
deleted file mode 100644
index 2dacab8b..00000000
--- a/ANDROID_3.4.5/include/linux/kdev_t.h
+++ /dev/null
@@ -1,100 +0,0 @@
-#ifndef _LINUX_KDEV_T_H
-#define _LINUX_KDEV_T_H
-#ifdef __KERNEL__
-#define MINORBITS 20
-#define MINORMASK ((1U << MINORBITS) - 1)
-
-#define MAJOR(dev) ((unsigned int) ((dev) >> MINORBITS))
-#define MINOR(dev) ((unsigned int) ((dev) & MINORMASK))
-#define MKDEV(ma,mi) (((ma) << MINORBITS) | (mi))
-
-#define print_dev_t(buffer, dev) \
- sprintf((buffer), "%u:%u\n", MAJOR(dev), MINOR(dev))
-
-#define format_dev_t(buffer, dev) \
- ({ \
- sprintf(buffer, "%u:%u", MAJOR(dev), MINOR(dev)); \
- buffer; \
- })
-
-/* acceptable for old filesystems */
-static inline int old_valid_dev(dev_t dev)
-{
- return MAJOR(dev) < 256 && MINOR(dev) < 256;
-}
-
-static inline u16 old_encode_dev(dev_t dev)
-{
- return (MAJOR(dev) << 8) | MINOR(dev);
-}
-
-static inline dev_t old_decode_dev(u16 val)
-{
- return MKDEV((val >> 8) & 255, val & 255);
-}
-
-static inline int new_valid_dev(dev_t dev)
-{
- return 1;
-}
-
-static inline u32 new_encode_dev(dev_t dev)
-{
- unsigned major = MAJOR(dev);
- unsigned minor = MINOR(dev);
- return (minor & 0xff) | (major << 8) | ((minor & ~0xff) << 12);
-}
-
-static inline dev_t new_decode_dev(u32 dev)
-{
- unsigned major = (dev & 0xfff00) >> 8;
- unsigned minor = (dev & 0xff) | ((dev >> 12) & 0xfff00);
- return MKDEV(major, minor);
-}
-
-static inline int huge_valid_dev(dev_t dev)
-{
- return 1;
-}
-
-static inline u64 huge_encode_dev(dev_t dev)
-{
- return new_encode_dev(dev);
-}
-
-static inline dev_t huge_decode_dev(u64 dev)
-{
- return new_decode_dev(dev);
-}
-
-static inline int sysv_valid_dev(dev_t dev)
-{
- return MAJOR(dev) < (1<<14) && MINOR(dev) < (1<<18);
-}
-
-static inline u32 sysv_encode_dev(dev_t dev)
-{
- return MINOR(dev) | (MAJOR(dev) << 18);
-}
-
-static inline unsigned sysv_major(u32 dev)
-{
- return (dev >> 18) & 0x3fff;
-}
-
-static inline unsigned sysv_minor(u32 dev)
-{
- return dev & 0x3ffff;
-}
-
-#else /* __KERNEL__ */
-
-/*
-Some programs want their definitions of MAJOR and MINOR and MKDEV
-from the kernel sources. These must be the externally visible ones.
-*/
-#define MAJOR(dev) ((dev)>>8)
-#define MINOR(dev) ((dev) & 0xff)
-#define MKDEV(ma,mi) ((ma)<<8 | (mi))
-#endif /* __KERNEL__ */
-#endif
diff --git a/ANDROID_3.4.5/include/linux/kernel-page-flags.h b/ANDROID_3.4.5/include/linux/kernel-page-flags.h
deleted file mode 100644
index a1bdf696..00000000
--- a/ANDROID_3.4.5/include/linux/kernel-page-flags.h
+++ /dev/null
@@ -1,51 +0,0 @@
-#ifndef LINUX_KERNEL_PAGE_FLAGS_H
-#define LINUX_KERNEL_PAGE_FLAGS_H
-
-/*
- * Stable page flag bits exported to user space
- */
-
-#define KPF_LOCKED 0
-#define KPF_ERROR 1
-#define KPF_REFERENCED 2
-#define KPF_UPTODATE 3
-#define KPF_DIRTY 4
-#define KPF_LRU 5
-#define KPF_ACTIVE 6
-#define KPF_SLAB 7
-#define KPF_WRITEBACK 8
-#define KPF_RECLAIM 9
-#define KPF_BUDDY 10
-
-/* 11-20: new additions in 2.6.31 */
-#define KPF_MMAP 11
-#define KPF_ANON 12
-#define KPF_SWAPCACHE 13
-#define KPF_SWAPBACKED 14
-#define KPF_COMPOUND_HEAD 15
-#define KPF_COMPOUND_TAIL 16
-#define KPF_HUGE 17
-#define KPF_UNEVICTABLE 18
-#define KPF_HWPOISON 19
-#define KPF_NOPAGE 20
-
-#define KPF_KSM 21
-#define KPF_THP 22
-
-#ifdef __KERNEL__
-
-/* kernel hacking assistances
- * WARNING: subject to change, never rely on them!
- */
-#define KPF_RESERVED 32
-#define KPF_MLOCKED 33
-#define KPF_MAPPEDTODISK 34
-#define KPF_PRIVATE 35
-#define KPF_PRIVATE_2 36
-#define KPF_OWNER_PRIVATE 37
-#define KPF_ARCH 38
-#define KPF_UNCACHED 39
-
-#endif /* __KERNEL__ */
-
-#endif /* LINUX_KERNEL_PAGE_FLAGS_H */
diff --git a/ANDROID_3.4.5/include/linux/kernel.h b/ANDROID_3.4.5/include/linux/kernel.h
deleted file mode 100644
index 747404ab..00000000
--- a/ANDROID_3.4.5/include/linux/kernel.h
+++ /dev/null
@@ -1,713 +0,0 @@
-#ifndef _LINUX_KERNEL_H
-#define _LINUX_KERNEL_H
-
-#include <linux/sysinfo.h>
-
-/*
- * 'kernel.h' contains some often-used function prototypes etc
- */
-#define __ALIGN_KERNEL(x, a) __ALIGN_KERNEL_MASK(x, (typeof(x))(a) - 1)
-#define __ALIGN_KERNEL_MASK(x, mask) (((x) + (mask)) & ~(mask))
-
-#ifdef __KERNEL__
-
-#include <stdarg.h>
-#include <linux/linkage.h>
-#include <linux/stddef.h>
-#include <linux/types.h>
-#include <linux/compiler.h>
-#include <linux/bitops.h>
-#include <linux/log2.h>
-#include <linux/typecheck.h>
-#include <linux/printk.h>
-#include <linux/dynamic_debug.h>
-#include <asm/byteorder.h>
-
-#define USHRT_MAX ((u16)(~0U))
-#define SHRT_MAX ((s16)(USHRT_MAX>>1))
-#define SHRT_MIN ((s16)(-SHRT_MAX - 1))
-#define INT_MAX ((int)(~0U>>1))
-#define INT_MIN (-INT_MAX - 1)
-#define UINT_MAX (~0U)
-#define LONG_MAX ((long)(~0UL>>1))
-#define LONG_MIN (-LONG_MAX - 1)
-#define ULONG_MAX (~0UL)
-#define LLONG_MAX ((long long)(~0ULL>>1))
-#define LLONG_MIN (-LLONG_MAX - 1)
-#define ULLONG_MAX (~0ULL)
-
-#define STACK_MAGIC 0xdeadbeef
-
-#define ALIGN(x, a) __ALIGN_KERNEL((x), (a))
-#define __ALIGN_MASK(x, mask) __ALIGN_KERNEL_MASK((x), (mask))
-#define PTR_ALIGN(p, a) ((typeof(p))ALIGN((unsigned long)(p), (a)))
-#define IS_ALIGNED(x, a) (((x) & ((typeof(x))(a) - 1)) == 0)
-
-#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
-
-/*
- * This looks more complex than it should be. But we need to
- * get the type for the ~ right in round_down (it needs to be
- * as wide as the result!), and we want to evaluate the macro
- * arguments just once each.
- */
-#define __round_mask(x, y) ((__typeof__(x))((y)-1))
-#define round_up(x, y) ((((x)-1) | __round_mask(x, y))+1)
-#define round_down(x, y) ((x) & ~__round_mask(x, y))
-
-#define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
-#define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d))
-#define DIV_ROUND_UP_ULL(ll,d) \
- ({ unsigned long long _tmp = (ll)+(d)-1; do_div(_tmp, d); _tmp; })
-
-#if BITS_PER_LONG == 32
-# define DIV_ROUND_UP_SECTOR_T(ll,d) DIV_ROUND_UP_ULL(ll, d)
-#else
-# define DIV_ROUND_UP_SECTOR_T(ll,d) DIV_ROUND_UP(ll,d)
-#endif
-
-/* The `const' in roundup() prevents gcc-3.3 from calling __divdi3 */
-#define roundup(x, y) ( \
-{ \
- const typeof(y) __y = y; \
- (((x) + (__y - 1)) / __y) * __y; \
-} \
-)
-#define rounddown(x, y) ( \
-{ \
- typeof(x) __x = (x); \
- __x - (__x % (y)); \
-} \
-)
-#define DIV_ROUND_CLOSEST(x, divisor)( \
-{ \
- typeof(divisor) __divisor = divisor; \
- (((x) + ((__divisor) / 2)) / (__divisor)); \
-} \
-)
-
-/*
- * Multiplies an integer by a fraction, while avoiding unnecessary
- * overflow or loss of precision.
- */
-#define mult_frac(x, numer, denom)( \
-{ \
- typeof(x) quot = (x) / (denom); \
- typeof(x) rem = (x) % (denom); \
- (quot * (numer)) + ((rem * (numer)) / (denom)); \
-} \
-)
-
-
-#define _RET_IP_ (unsigned long)__builtin_return_address(0)
-#define _THIS_IP_ ({ __label__ __here; __here: (unsigned long)&&__here; })
-
-#ifdef CONFIG_LBDAF
-# include <asm/div64.h>
-# define sector_div(a, b) do_div(a, b)
-#else
-# define sector_div(n, b)( \
-{ \
- int _res; \
- _res = (n) % (b); \
- (n) /= (b); \
- _res; \
-} \
-)
-#endif
-
-/**
- * upper_32_bits - return bits 32-63 of a number
- * @n: the number we're accessing
- *
- * A basic shift-right of a 64- or 32-bit quantity. Use this to suppress
- * the "right shift count >= width of type" warning when that quantity is
- * 32-bits.
- */
-#define upper_32_bits(n) ((u32)(((n) >> 16) >> 16))
-
-/**
- * lower_32_bits - return bits 0-31 of a number
- * @n: the number we're accessing
- */
-#define lower_32_bits(n) ((u32)(n))
-
-struct completion;
-struct pt_regs;
-struct user;
-
-#ifdef CONFIG_PREEMPT_VOLUNTARY
-extern int _cond_resched(void);
-# define might_resched() _cond_resched()
-#else
-# define might_resched() do { } while (0)
-#endif
-
-#ifdef CONFIG_DEBUG_ATOMIC_SLEEP
- void __might_sleep(const char *file, int line, int preempt_offset);
-/**
- * might_sleep - annotation for functions that can sleep
- *
- * this macro will print a stack trace if it is executed in an atomic
- * context (spinlock, irq-handler, ...).
- *
- * This is a useful debugging help to be able to catch problems early and not
- * be bitten later when the calling function happens to sleep when it is not
- * supposed to.
- */
-# define might_sleep() \
- do { __might_sleep(__FILE__, __LINE__, 0); might_resched(); } while (0)
-#else
- static inline void __might_sleep(const char *file, int line,
- int preempt_offset) { }
-# define might_sleep() do { might_resched(); } while (0)
-#endif
-
-#define might_sleep_if(cond) do { if (cond) might_sleep(); } while (0)
-
-/*
- * abs() handles unsigned and signed longs, ints, shorts and chars. For all
- * input types abs() returns a signed long.
- * abs() should not be used for 64-bit types (s64, u64, long long) - use abs64()
- * for those.
- */
-#define abs(x) ({ \
- long ret; \
- if (sizeof(x) == sizeof(long)) { \
- long __x = (x); \
- ret = (__x < 0) ? -__x : __x; \
- } else { \
- int __x = (x); \
- ret = (__x < 0) ? -__x : __x; \
- } \
- ret; \
- })
-
-#define abs64(x) ({ \
- s64 __x = (x); \
- (__x < 0) ? -__x : __x; \
- })
-
-#ifdef CONFIG_PROVE_LOCKING
-void might_fault(void);
-#else
-static inline void might_fault(void)
-{
- might_sleep();
-}
-#endif
-
-extern struct atomic_notifier_head panic_notifier_list;
-extern long (*panic_blink)(int state);
-__printf(1, 2)
-void panic(const char *fmt, ...)
- __noreturn __cold;
-extern void oops_enter(void);
-extern void oops_exit(void);
-void print_oops_end_marker(void);
-extern int oops_may_print(void);
-void do_exit(long error_code)
- __noreturn;
-void complete_and_exit(struct completion *, long)
- __noreturn;
-
-/* Internal, do not use. */
-int __must_check _kstrtoul(const char *s, unsigned int base, unsigned long *res);
-int __must_check _kstrtol(const char *s, unsigned int base, long *res);
-
-int __must_check kstrtoull(const char *s, unsigned int base, unsigned long long *res);
-int __must_check kstrtoll(const char *s, unsigned int base, long long *res);
-static inline int __must_check kstrtoul(const char *s, unsigned int base, unsigned long *res)
-{
- /*
- * We want to shortcut function call, but
- * __builtin_types_compatible_p(unsigned long, unsigned long long) = 0.
- */
- if (sizeof(unsigned long) == sizeof(unsigned long long) &&
- __alignof__(unsigned long) == __alignof__(unsigned long long))
- return kstrtoull(s, base, (unsigned long long *)res);
- else
- return _kstrtoul(s, base, res);
-}
-
-static inline int __must_check kstrtol(const char *s, unsigned int base, long *res)
-{
- /*
- * We want to shortcut function call, but
- * __builtin_types_compatible_p(long, long long) = 0.
- */
- if (sizeof(long) == sizeof(long long) &&
- __alignof__(long) == __alignof__(long long))
- return kstrtoll(s, base, (long long *)res);
- else
- return _kstrtol(s, base, res);
-}
-
-int __must_check kstrtouint(const char *s, unsigned int base, unsigned int *res);
-int __must_check kstrtoint(const char *s, unsigned int base, int *res);
-
-static inline int __must_check kstrtou64(const char *s, unsigned int base, u64 *res)
-{
- return kstrtoull(s, base, res);
-}
-
-static inline int __must_check kstrtos64(const char *s, unsigned int base, s64 *res)
-{
- return kstrtoll(s, base, res);
-}
-
-static inline int __must_check kstrtou32(const char *s, unsigned int base, u32 *res)
-{
- return kstrtouint(s, base, res);
-}
-
-static inline int __must_check kstrtos32(const char *s, unsigned int base, s32 *res)
-{
- return kstrtoint(s, base, res);
-}
-
-int __must_check kstrtou16(const char *s, unsigned int base, u16 *res);
-int __must_check kstrtos16(const char *s, unsigned int base, s16 *res);
-int __must_check kstrtou8(const char *s, unsigned int base, u8 *res);
-int __must_check kstrtos8(const char *s, unsigned int base, s8 *res);
-
-int __must_check kstrtoull_from_user(const char __user *s, size_t count, unsigned int base, unsigned long long *res);
-int __must_check kstrtoll_from_user(const char __user *s, size_t count, unsigned int base, long long *res);
-int __must_check kstrtoul_from_user(const char __user *s, size_t count, unsigned int base, unsigned long *res);
-int __must_check kstrtol_from_user(const char __user *s, size_t count, unsigned int base, long *res);
-int __must_check kstrtouint_from_user(const char __user *s, size_t count, unsigned int base, unsigned int *res);
-int __must_check kstrtoint_from_user(const char __user *s, size_t count, unsigned int base, int *res);
-int __must_check kstrtou16_from_user(const char __user *s, size_t count, unsigned int base, u16 *res);
-int __must_check kstrtos16_from_user(const char __user *s, size_t count, unsigned int base, s16 *res);
-int __must_check kstrtou8_from_user(const char __user *s, size_t count, unsigned int base, u8 *res);
-int __must_check kstrtos8_from_user(const char __user *s, size_t count, unsigned int base, s8 *res);
-
-static inline int __must_check kstrtou64_from_user(const char __user *s, size_t count, unsigned int base, u64 *res)
-{
- return kstrtoull_from_user(s, count, base, res);
-}
-
-static inline int __must_check kstrtos64_from_user(const char __user *s, size_t count, unsigned int base, s64 *res)
-{
- return kstrtoll_from_user(s, count, base, res);
-}
-
-static inline int __must_check kstrtou32_from_user(const char __user *s, size_t count, unsigned int base, u32 *res)
-{
- return kstrtouint_from_user(s, count, base, res);
-}
-
-static inline int __must_check kstrtos32_from_user(const char __user *s, size_t count, unsigned int base, s32 *res)
-{
- return kstrtoint_from_user(s, count, base, res);
-}
-
-/* Obsolete, do not use. Use kstrto<foo> instead */
-
-extern unsigned long simple_strtoul(const char *,char **,unsigned int);
-extern long simple_strtol(const char *,char **,unsigned int);
-extern unsigned long long simple_strtoull(const char *,char **,unsigned int);
-extern long long simple_strtoll(const char *,char **,unsigned int);
-#define strict_strtoul kstrtoul
-#define strict_strtol kstrtol
-#define strict_strtoull kstrtoull
-#define strict_strtoll kstrtoll
-
-extern int num_to_str(char *buf, int size, unsigned long long num);
-
-/* lib/printf utilities */
-
-extern __printf(2, 3) int sprintf(char *buf, const char * fmt, ...);
-extern __printf(2, 0) int vsprintf(char *buf, const char *, va_list);
-extern __printf(3, 4)
-int snprintf(char *buf, size_t size, const char *fmt, ...);
-extern __printf(3, 0)
-int vsnprintf(char *buf, size_t size, const char *fmt, va_list args);
-extern __printf(3, 4)
-int scnprintf(char *buf, size_t size, const char *fmt, ...);
-extern __printf(3, 0)
-int vscnprintf(char *buf, size_t size, const char *fmt, va_list args);
-extern __printf(2, 3)
-char *kasprintf(gfp_t gfp, const char *fmt, ...);
-extern char *kvasprintf(gfp_t gfp, const char *fmt, va_list args);
-
-extern __scanf(2, 3)
-int sscanf(const char *, const char *, ...);
-extern __scanf(2, 0)
-int vsscanf(const char *, const char *, va_list);
-
-extern int get_option(char **str, int *pint);
-extern char *get_options(const char *str, int nints, int *ints);
-extern unsigned long long memparse(const char *ptr, char **retptr);
-
-extern int core_kernel_text(unsigned long addr);
-extern int core_kernel_data(unsigned long addr);
-extern int __kernel_text_address(unsigned long addr);
-extern int kernel_text_address(unsigned long addr);
-extern int func_ptr_is_kernel_text(void *ptr);
-
-struct pid;
-extern struct pid *session_of_pgrp(struct pid *pgrp);
-
-unsigned long int_sqrt(unsigned long);
-
-extern void bust_spinlocks(int yes);
-extern void wake_up_klogd(void);
-extern int oops_in_progress; /* If set, an oops, panic(), BUG() or die() is in progress */
-extern int panic_timeout;
-extern int panic_on_oops;
-extern int panic_on_unrecovered_nmi;
-extern int panic_on_io_nmi;
-extern int sysctl_panic_on_stackoverflow;
-extern const char *print_tainted(void);
-extern void add_taint(unsigned flag);
-extern int test_taint(unsigned flag);
-extern unsigned long get_taint(void);
-extern int root_mountflags;
-
-extern bool early_boot_irqs_disabled;
-
-/* Values used for system_state */
-extern enum system_states {
- SYSTEM_BOOTING,
- SYSTEM_RUNNING,
- SYSTEM_HALT,
- SYSTEM_POWER_OFF,
- SYSTEM_RESTART,
- SYSTEM_SUSPEND_DISK,
-} system_state;
-
-#define TAINT_PROPRIETARY_MODULE 0
-#define TAINT_FORCED_MODULE 1
-#define TAINT_UNSAFE_SMP 2
-#define TAINT_FORCED_RMMOD 3
-#define TAINT_MACHINE_CHECK 4
-#define TAINT_BAD_PAGE 5
-#define TAINT_USER 6
-#define TAINT_DIE 7
-#define TAINT_OVERRIDDEN_ACPI_TABLE 8
-#define TAINT_WARN 9
-#define TAINT_CRAP 10
-#define TAINT_FIRMWARE_WORKAROUND 11
-#define TAINT_OOT_MODULE 12
-
-extern const char hex_asc[];
-#define hex_asc_lo(x) hex_asc[((x) & 0x0f)]
-#define hex_asc_hi(x) hex_asc[((x) & 0xf0) >> 4]
-
-static inline char *hex_byte_pack(char *buf, u8 byte)
-{
- *buf++ = hex_asc_hi(byte);
- *buf++ = hex_asc_lo(byte);
- return buf;
-}
-
-static inline char * __deprecated pack_hex_byte(char *buf, u8 byte)
-{
- return hex_byte_pack(buf, byte);
-}
-
-extern int hex_to_bin(char ch);
-extern int __must_check hex2bin(u8 *dst, const char *src, size_t count);
-
-/*
- * General tracing related utility functions - trace_printk(),
- * tracing_on/tracing_off and tracing_start()/tracing_stop
- *
- * Use tracing_on/tracing_off when you want to quickly turn on or off
- * tracing. It simply enables or disables the recording of the trace events.
- * This also corresponds to the user space /sys/kernel/debug/tracing/tracing_on
- * file, which gives a means for the kernel and userspace to interact.
- * Place a tracing_off() in the kernel where you want tracing to end.
- * From user space, examine the trace, and then echo 1 > tracing_on
- * to continue tracing.
- *
- * tracing_stop/tracing_start has slightly more overhead. It is used
- * by things like suspend to ram where disabling the recording of the
- * trace is not enough, but tracing must actually stop because things
- * like calling smp_processor_id() may crash the system.
- *
- * Most likely, you want to use tracing_on/tracing_off.
- */
-#ifdef CONFIG_RING_BUFFER
-/* trace_off_permanent stops recording with no way to bring it back */
-void tracing_off_permanent(void);
-#else
-static inline void tracing_off_permanent(void) { }
-#endif
-
-enum ftrace_dump_mode {
- DUMP_NONE,
- DUMP_ALL,
- DUMP_ORIG,
-};
-
-#ifdef CONFIG_TRACING
-void tracing_on(void);
-void tracing_off(void);
-int tracing_is_on(void);
-
-extern void tracing_start(void);
-extern void tracing_stop(void);
-extern void ftrace_off_permanent(void);
-
-static inline __printf(1, 2)
-void ____trace_printk_check_format(const char *fmt, ...)
-{
-}
-#define __trace_printk_check_format(fmt, args...) \
-do { \
- if (0) \
- ____trace_printk_check_format(fmt, ##args); \
-} while (0)
-
-/**
- * trace_printk - printf formatting in the ftrace buffer
- * @fmt: the printf format for printing
- *
- * Note: __trace_printk is an internal function for trace_printk and
- * the @ip is passed in via the trace_printk macro.
- *
- * This function allows a kernel developer to debug fast path sections
- * that printk is not appropriate for. By scattering in various
- * printk like tracing in the code, a developer can quickly see
- * where problems are occurring.
- *
- * This is intended as a debugging tool for the developer only.
- * Please refrain from leaving trace_printks scattered around in
- * your code.
- */
-
-#define trace_printk(fmt, args...) \
-do { \
- __trace_printk_check_format(fmt, ##args); \
- if (__builtin_constant_p(fmt)) { \
- static const char *trace_printk_fmt \
- __attribute__((section("__trace_printk_fmt"))) = \
- __builtin_constant_p(fmt) ? fmt : NULL; \
- \
- __trace_bprintk(_THIS_IP_, trace_printk_fmt, ##args); \
- } else \
- __trace_printk(_THIS_IP_, fmt, ##args); \
-} while (0)
-
-extern __printf(2, 3)
-int __trace_bprintk(unsigned long ip, const char *fmt, ...);
-
-extern __printf(2, 3)
-int __trace_printk(unsigned long ip, const char *fmt, ...);
-
-extern void trace_dump_stack(void);
-
-/*
- * The double __builtin_constant_p is because gcc will give us an error
- * if we try to allocate the static variable to fmt if it is not a
- * constant. Even with the outer if statement.
- */
-#define ftrace_vprintk(fmt, vargs) \
-do { \
- if (__builtin_constant_p(fmt)) { \
- static const char *trace_printk_fmt \
- __attribute__((section("__trace_printk_fmt"))) = \
- __builtin_constant_p(fmt) ? fmt : NULL; \
- \
- __ftrace_vbprintk(_THIS_IP_, trace_printk_fmt, vargs); \
- } else \
- __ftrace_vprintk(_THIS_IP_, fmt, vargs); \
-} while (0)
-
-extern int
-__ftrace_vbprintk(unsigned long ip, const char *fmt, va_list ap);
-
-extern int
-__ftrace_vprintk(unsigned long ip, const char *fmt, va_list ap);
-
-extern void ftrace_dump(enum ftrace_dump_mode oops_dump_mode);
-#else
-static inline __printf(1, 2)
-int trace_printk(const char *fmt, ...);
-
-static inline void tracing_start(void) { }
-static inline void tracing_stop(void) { }
-static inline void ftrace_off_permanent(void) { }
-static inline void trace_dump_stack(void) { }
-
-static inline void tracing_on(void) { }
-static inline void tracing_off(void) { }
-static inline int tracing_is_on(void) { return 0; }
-
-static inline int
-trace_printk(const char *fmt, ...)
-{
- return 0;
-}
-static inline int
-ftrace_vprintk(const char *fmt, va_list ap)
-{
- return 0;
-}
-static inline void ftrace_dump(enum ftrace_dump_mode oops_dump_mode) { }
-#endif /* CONFIG_TRACING */
-
-/*
- * min()/max()/clamp() macros that also do
- * strict type-checking.. See the
- * "unnecessary" pointer comparison.
- */
-#define min(x, y) ({ \
- typeof(x) _min1 = (x); \
- typeof(y) _min2 = (y); \
- (void) (&_min1 == &_min2); \
- _min1 < _min2 ? _min1 : _min2; })
-
-#define max(x, y) ({ \
- typeof(x) _max1 = (x); \
- typeof(y) _max2 = (y); \
- (void) (&_max1 == &_max2); \
- _max1 > _max2 ? _max1 : _max2; })
-
-#define min3(x, y, z) ({ \
- typeof(x) _min1 = (x); \
- typeof(y) _min2 = (y); \
- typeof(z) _min3 = (z); \
- (void) (&_min1 == &_min2); \
- (void) (&_min1 == &_min3); \
- _min1 < _min2 ? (_min1 < _min3 ? _min1 : _min3) : \
- (_min2 < _min3 ? _min2 : _min3); })
-
-#define max3(x, y, z) ({ \
- typeof(x) _max1 = (x); \
- typeof(y) _max2 = (y); \
- typeof(z) _max3 = (z); \
- (void) (&_max1 == &_max2); \
- (void) (&_max1 == &_max3); \
- _max1 > _max2 ? (_max1 > _max3 ? _max1 : _max3) : \
- (_max2 > _max3 ? _max2 : _max3); })
-
-/**
- * min_not_zero - return the minimum that is _not_ zero, unless both are zero
- * @x: value1
- * @y: value2
- */
-#define min_not_zero(x, y) ({ \
- typeof(x) __x = (x); \
- typeof(y) __y = (y); \
- __x == 0 ? __y : ((__y == 0) ? __x : min(__x, __y)); })
-
-/**
- * clamp - return a value clamped to a given range with strict typechecking
- * @val: current value
- * @min: minimum allowable value
- * @max: maximum allowable value
- *
- * This macro does strict typechecking of min/max to make sure they are of the
- * same type as val. See the unnecessary pointer comparisons.
- */
-#define clamp(val, min, max) ({ \
- typeof(val) __val = (val); \
- typeof(min) __min = (min); \
- typeof(max) __max = (max); \
- (void) (&__val == &__min); \
- (void) (&__val == &__max); \
- __val = __val < __min ? __min: __val; \
- __val > __max ? __max: __val; })
-
-/*
- * ..and if you can't take the strict
- * types, you can specify one yourself.
- *
- * Or not use min/max/clamp at all, of course.
- */
-#define min_t(type, x, y) ({ \
- type __min1 = (x); \
- type __min2 = (y); \
- __min1 < __min2 ? __min1: __min2; })
-
-#define max_t(type, x, y) ({ \
- type __max1 = (x); \
- type __max2 = (y); \
- __max1 > __max2 ? __max1: __max2; })
-
-/**
- * clamp_t - return a value clamped to a given range using a given type
- * @type: the type of variable to use
- * @val: current value
- * @min: minimum allowable value
- * @max: maximum allowable value
- *
- * This macro does no typechecking and uses temporary variables of type
- * 'type' to make all the comparisons.
- */
-#define clamp_t(type, val, min, max) ({ \
- type __val = (val); \
- type __min = (min); \
- type __max = (max); \
- __val = __val < __min ? __min: __val; \
- __val > __max ? __max: __val; })
-
-/**
- * clamp_val - return a value clamped to a given range using val's type
- * @val: current value
- * @min: minimum allowable value
- * @max: maximum allowable value
- *
- * This macro does no typechecking and uses temporary variables of whatever
- * type the input argument 'val' is. This is useful when val is an unsigned
- * type and min and max are literals that will otherwise be assigned a signed
- * integer type.
- */
-#define clamp_val(val, min, max) ({ \
- typeof(val) __val = (val); \
- typeof(val) __min = (min); \
- typeof(val) __max = (max); \
- __val = __val < __min ? __min: __val; \
- __val > __max ? __max: __val; })
-
-
-/*
- * swap - swap value of @a and @b
- */
-#define swap(a, b) \
- do { typeof(a) __tmp = (a); (a) = (b); (b) = __tmp; } while (0)
-
-/**
- * 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) );})
-
-/* Trap pasters of __FUNCTION__ at compile-time */
-#define __FUNCTION__ (__func__)
-
-/* This helps us to avoid #ifdef CONFIG_NUMA */
-#ifdef CONFIG_NUMA
-#define NUMA_BUILD 1
-#else
-#define NUMA_BUILD 0
-#endif
-
-/* This helps us avoid #ifdef CONFIG_COMPACTION */
-#ifdef CONFIG_COMPACTION
-#define COMPACTION_BUILD 1
-#else
-#define COMPACTION_BUILD 0
-#endif
-
-/* Rebuild everything on CONFIG_FTRACE_MCOUNT_RECORD */
-#ifdef CONFIG_FTRACE_MCOUNT_RECORD
-# define REBUILD_DUE_TO_FTRACE_MCOUNT_RECORD
-#endif
-
-extern int do_sysinfo(struct sysinfo *info);
-
-/* To identify board information in panic logs, set this */
-extern char *mach_panic_string;
-
-#endif /* __KERNEL__ */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/kernel_stat.h b/ANDROID_3.4.5/include/linux/kernel_stat.h
deleted file mode 100644
index 2fbd9053..00000000
--- a/ANDROID_3.4.5/include/linux/kernel_stat.h
+++ /dev/null
@@ -1,133 +0,0 @@
-#ifndef _LINUX_KERNEL_STAT_H
-#define _LINUX_KERNEL_STAT_H
-
-#include <linux/smp.h>
-#include <linux/threads.h>
-#include <linux/percpu.h>
-#include <linux/cpumask.h>
-#include <linux/interrupt.h>
-#include <linux/sched.h>
-#include <asm/irq.h>
-#include <asm/cputime.h>
-
-/*
- * 'kernel_stat.h' contains the definitions needed for doing
- * some kernel statistics (CPU usage, context switches ...),
- * used by rstatd/perfmeter
- */
-
-enum cpu_usage_stat {
- CPUTIME_USER,
- CPUTIME_NICE,
- CPUTIME_SYSTEM,
- CPUTIME_SOFTIRQ,
- CPUTIME_IRQ,
- CPUTIME_IDLE,
- CPUTIME_IOWAIT,
- CPUTIME_STEAL,
- CPUTIME_GUEST,
- CPUTIME_GUEST_NICE,
- NR_STATS,
-};
-
-struct kernel_cpustat {
- u64 cpustat[NR_STATS];
-};
-
-struct kernel_stat {
-#ifndef CONFIG_GENERIC_HARDIRQS
- unsigned int irqs[NR_IRQS];
-#endif
- unsigned long irqs_sum;
- unsigned int softirqs[NR_SOFTIRQS];
-};
-
-DECLARE_PER_CPU(struct kernel_stat, kstat);
-DECLARE_PER_CPU(struct kernel_cpustat, kernel_cpustat);
-
-/* Must have preemption disabled for this to be meaningful. */
-#define kstat_this_cpu (&__get_cpu_var(kstat))
-#define kcpustat_this_cpu (&__get_cpu_var(kernel_cpustat))
-#define kstat_cpu(cpu) per_cpu(kstat, cpu)
-#define kcpustat_cpu(cpu) per_cpu(kernel_cpustat, cpu)
-
-extern unsigned long long nr_context_switches(void);
-
-#ifndef CONFIG_GENERIC_HARDIRQS
-
-struct irq_desc;
-
-static inline void kstat_incr_irqs_this_cpu(unsigned int irq,
- struct irq_desc *desc)
-{
- __this_cpu_inc(kstat.irqs[irq]);
- __this_cpu_inc(kstat.irqs_sum);
-}
-
-static inline unsigned int kstat_irqs_cpu(unsigned int irq, int cpu)
-{
- return kstat_cpu(cpu).irqs[irq];
-}
-#else
-#include <linux/irq.h>
-extern unsigned int kstat_irqs_cpu(unsigned int irq, int cpu);
-
-#define kstat_incr_irqs_this_cpu(irqno, DESC) \
-do { \
- __this_cpu_inc(*(DESC)->kstat_irqs); \
- __this_cpu_inc(kstat.irqs_sum); \
-} while (0)
-
-#endif
-
-static inline void kstat_incr_softirqs_this_cpu(unsigned int irq)
-{
- __this_cpu_inc(kstat.softirqs[irq]);
-}
-
-static inline unsigned int kstat_softirqs_cpu(unsigned int irq, int cpu)
-{
- return kstat_cpu(cpu).softirqs[irq];
-}
-
-/*
- * Number of interrupts per specific IRQ source, since bootup
- */
-#ifndef CONFIG_GENERIC_HARDIRQS
-static inline unsigned int kstat_irqs(unsigned int irq)
-{
- unsigned int sum = 0;
- int cpu;
-
- for_each_possible_cpu(cpu)
- sum += kstat_irqs_cpu(irq, cpu);
-
- return sum;
-}
-#else
-extern unsigned int kstat_irqs(unsigned int irq);
-#endif
-
-/*
- * Number of interrupts per cpu, since bootup
- */
-static inline unsigned int kstat_cpu_irqs_sum(unsigned int cpu)
-{
- return kstat_cpu(cpu).irqs_sum;
-}
-
-/*
- * Lock/unlock the current runqueue - to extract task statistics:
- */
-extern unsigned long long task_delta_exec(struct task_struct *);
-
-extern void account_user_time(struct task_struct *, cputime_t, cputime_t);
-extern void account_system_time(struct task_struct *, int, cputime_t, cputime_t);
-extern void account_steal_time(cputime_t);
-extern void account_idle_time(cputime_t);
-
-extern void account_process_tick(struct task_struct *, int user);
-extern void account_steal_ticks(unsigned long ticks);
-extern void account_idle_ticks(unsigned long ticks);
-
-#endif /* _LINUX_KERNEL_STAT_H */
diff --git a/ANDROID_3.4.5/include/linux/kernelcapi.h b/ANDROID_3.4.5/include/linux/kernelcapi.h
deleted file mode 100644
index 9c268392..00000000
--- a/ANDROID_3.4.5/include/linux/kernelcapi.h
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * $Id: kernelcapi.h,v 1.8.6.2 2001/02/07 11:31:31 kai Exp $
- *
- * Kernel CAPI 2.0 Interface for Linux
- *
- * (c) Copyright 1997 by Carsten Paeth (calle@calle.in-berlin.de)
- *
- */
-
-#ifndef __KERNELCAPI_H__
-#define __KERNELCAPI_H__
-
-#define CAPI_MAXAPPL 240 /* maximum number of applications */
-#define CAPI_MAXCONTR 32 /* maximum number of controller */
-#define CAPI_MAXDATAWINDOW 8
-
-
-typedef struct kcapi_flagdef {
- int contr;
- int flag;
-} kcapi_flagdef;
-
-typedef struct kcapi_carddef {
- char driver[32];
- unsigned int port;
- unsigned irq;
- unsigned int membase;
- int cardnr;
-} kcapi_carddef;
-
-/* new ioctls >= 10 */
-#define KCAPI_CMD_TRACE 10
-#define KCAPI_CMD_ADDCARD 11 /* OBSOLETE */
-
-/*
- * flag > 2 => trace also data
- * flag & 1 => show trace
- */
-#define KCAPI_TRACE_OFF 0
-#define KCAPI_TRACE_SHORT_NO_DATA 1
-#define KCAPI_TRACE_FULL_NO_DATA 2
-#define KCAPI_TRACE_SHORT 3
-#define KCAPI_TRACE_FULL 4
-
-
-#ifdef __KERNEL__
-
-#include <linux/list.h>
-#include <linux/skbuff.h>
-#include <linux/workqueue.h>
-#include <linux/notifier.h>
-
-struct capi20_appl {
- u16 applid;
- capi_register_params rparam;
- void (*recv_message)(struct capi20_appl *ap, struct sk_buff *skb);
- void *private;
-
- /* internal to kernelcapi.o */
- unsigned long nrecvctlpkt;
- unsigned long nrecvdatapkt;
- unsigned long nsentctlpkt;
- unsigned long nsentdatapkt;
- struct mutex recv_mtx;
- struct sk_buff_head recv_queue;
- struct work_struct recv_work;
- int release_in_progress;
-};
-
-u16 capi20_isinstalled(void);
-u16 capi20_register(struct capi20_appl *ap);
-u16 capi20_release(struct capi20_appl *ap);
-u16 capi20_put_message(struct capi20_appl *ap, struct sk_buff *skb);
-u16 capi20_get_manufacturer(u32 contr, u8 buf[CAPI_MANUFACTURER_LEN]);
-u16 capi20_get_version(u32 contr, struct capi_version *verp);
-u16 capi20_get_serial(u32 contr, u8 serial[CAPI_SERIAL_LEN]);
-u16 capi20_get_profile(u32 contr, struct capi_profile *profp);
-int capi20_manufacturer(unsigned int cmd, void __user *data);
-
-#define CAPICTR_UP 0
-#define CAPICTR_DOWN 1
-
-int register_capictr_notifier(struct notifier_block *nb);
-int unregister_capictr_notifier(struct notifier_block *nb);
-
-#define CAPI_NOERROR 0x0000
-
-#define CAPI_TOOMANYAPPLS 0x1001
-#define CAPI_LOGBLKSIZETOSMALL 0x1002
-#define CAPI_BUFFEXECEEDS64K 0x1003
-#define CAPI_MSGBUFSIZETOOSMALL 0x1004
-#define CAPI_ANZLOGCONNNOTSUPPORTED 0x1005
-#define CAPI_REGRESERVED 0x1006
-#define CAPI_REGBUSY 0x1007
-#define CAPI_REGOSRESOURCEERR 0x1008
-#define CAPI_REGNOTINSTALLED 0x1009
-#define CAPI_REGCTRLERNOTSUPPORTEXTEQUIP 0x100a
-#define CAPI_REGCTRLERONLYSUPPORTEXTEQUIP 0x100b
-
-#define CAPI_ILLAPPNR 0x1101
-#define CAPI_ILLCMDORSUBCMDORMSGTOSMALL 0x1102
-#define CAPI_SENDQUEUEFULL 0x1103
-#define CAPI_RECEIVEQUEUEEMPTY 0x1104
-#define CAPI_RECEIVEOVERFLOW 0x1105
-#define CAPI_UNKNOWNNOTPAR 0x1106
-#define CAPI_MSGBUSY 0x1107
-#define CAPI_MSGOSRESOURCEERR 0x1108
-#define CAPI_MSGNOTINSTALLED 0x1109
-#define CAPI_MSGCTRLERNOTSUPPORTEXTEQUIP 0x110a
-#define CAPI_MSGCTRLERONLYSUPPORTEXTEQUIP 0x110b
-
-typedef enum {
- CapiMessageNotSupportedInCurrentState = 0x2001,
- CapiIllContrPlciNcci = 0x2002,
- CapiNoPlciAvailable = 0x2003,
- CapiNoNcciAvailable = 0x2004,
- CapiNoListenResourcesAvailable = 0x2005,
- CapiNoFaxResourcesAvailable = 0x2006,
- CapiIllMessageParmCoding = 0x2007,
-} RESOURCE_CODING_PROBLEM;
-
-typedef enum {
- CapiB1ProtocolNotSupported = 0x3001,
- CapiB2ProtocolNotSupported = 0x3002,
- CapiB3ProtocolNotSupported = 0x3003,
- CapiB1ProtocolParameterNotSupported = 0x3004,
- CapiB2ProtocolParameterNotSupported = 0x3005,
- CapiB3ProtocolParameterNotSupported = 0x3006,
- CapiBProtocolCombinationNotSupported = 0x3007,
- CapiNcpiNotSupported = 0x3008,
- CapiCipValueUnknown = 0x3009,
- CapiFlagsNotSupported = 0x300a,
- CapiFacilityNotSupported = 0x300b,
- CapiDataLengthNotSupportedByCurrentProtocol = 0x300c,
- CapiResetProcedureNotSupportedByCurrentProtocol = 0x300d,
- CapiTeiAssignmentFailed = 0x300e,
-} REQUESTED_SERVICES_PROBLEM;
-
-typedef enum {
- CapiSuccess = 0x0000,
- CapiSupplementaryServiceNotSupported = 0x300e,
- CapiRequestNotAllowedInThisState = 0x3010,
-} SUPPLEMENTARY_SERVICE_INFO;
-
-typedef enum {
- CapiProtocolErrorLayer1 = 0x3301,
- CapiProtocolErrorLayer2 = 0x3302,
- CapiProtocolErrorLayer3 = 0x3303,
- CapiTimeOut = 0x3303, // SuppServiceReason
- CapiCallGivenToOtherApplication = 0x3304,
-} CAPI_REASON;
-
-#endif /* __KERNEL__ */
-
-#endif /* __KERNELCAPI_H__ */
diff --git a/ANDROID_3.4.5/include/linux/kexec.h b/ANDROID_3.4.5/include/linux/kexec.h
deleted file mode 100644
index 0d7d6a1b..00000000
--- a/ANDROID_3.4.5/include/linux/kexec.h
+++ /dev/null
@@ -1,231 +0,0 @@
-#ifndef LINUX_KEXEC_H
-#define LINUX_KEXEC_H
-
-#ifdef CONFIG_KEXEC
-#include <linux/types.h>
-#include <linux/list.h>
-#include <linux/linkage.h>
-#include <linux/compat.h>
-#include <linux/ioport.h>
-#include <linux/elfcore.h>
-#include <linux/elf.h>
-#include <asm/kexec.h>
-
-/* Verify architecture specific macros are defined */
-
-#ifndef KEXEC_SOURCE_MEMORY_LIMIT
-#error KEXEC_SOURCE_MEMORY_LIMIT not defined
-#endif
-
-#ifndef KEXEC_DESTINATION_MEMORY_LIMIT
-#error KEXEC_DESTINATION_MEMORY_LIMIT not defined
-#endif
-
-#ifndef KEXEC_CONTROL_MEMORY_LIMIT
-#error KEXEC_CONTROL_MEMORY_LIMIT not defined
-#endif
-
-#ifndef KEXEC_CONTROL_PAGE_SIZE
-#error KEXEC_CONTROL_PAGE_SIZE not defined
-#endif
-
-#ifndef KEXEC_ARCH
-#error KEXEC_ARCH not defined
-#endif
-
-#ifndef KEXEC_CRASH_CONTROL_MEMORY_LIMIT
-#define KEXEC_CRASH_CONTROL_MEMORY_LIMIT KEXEC_CONTROL_MEMORY_LIMIT
-#endif
-
-#ifndef KEXEC_CRASH_MEM_ALIGN
-#define KEXEC_CRASH_MEM_ALIGN PAGE_SIZE
-#endif
-
-#define KEXEC_NOTE_HEAD_BYTES ALIGN(sizeof(struct elf_note), 4)
-#define KEXEC_CORE_NOTE_NAME "CORE"
-#define KEXEC_CORE_NOTE_NAME_BYTES ALIGN(sizeof(KEXEC_CORE_NOTE_NAME), 4)
-#define KEXEC_CORE_NOTE_DESC_BYTES ALIGN(sizeof(struct elf_prstatus), 4)
-/*
- * The per-cpu notes area is a list of notes terminated by a "NULL"
- * note header. For kdump, the code in vmcore.c runs in the context
- * of the second kernel to combine them into one note.
- */
-#ifndef KEXEC_NOTE_BYTES
-#define KEXEC_NOTE_BYTES ( (KEXEC_NOTE_HEAD_BYTES * 2) + \
- KEXEC_CORE_NOTE_NAME_BYTES + \
- KEXEC_CORE_NOTE_DESC_BYTES )
-#endif
-
-/*
- * This structure is used to hold the arguments that are used when loading
- * kernel binaries.
- */
-
-typedef unsigned long kimage_entry_t;
-#define IND_DESTINATION 0x1
-#define IND_INDIRECTION 0x2
-#define IND_DONE 0x4
-#define IND_SOURCE 0x8
-
-#define KEXEC_SEGMENT_MAX 16
-struct kexec_segment {
- void __user *buf;
- size_t bufsz;
- unsigned long mem; /* User space sees this as a (void *) ... */
- size_t memsz;
-};
-
-#ifdef CONFIG_COMPAT
-struct compat_kexec_segment {
- compat_uptr_t buf;
- compat_size_t bufsz;
- compat_ulong_t mem; /* User space sees this as a (void *) ... */
- compat_size_t memsz;
-};
-#endif
-
-struct kimage {
- kimage_entry_t head;
- kimage_entry_t *entry;
- kimage_entry_t *last_entry;
-
- unsigned long destination;
-
- unsigned long start;
- struct page *control_code_page;
- struct page *swap_page;
-
- unsigned long nr_segments;
- struct kexec_segment segment[KEXEC_SEGMENT_MAX];
-
- struct list_head control_pages;
- struct list_head dest_pages;
- struct list_head unuseable_pages;
-
- /* Address of next control page to allocate for crash kernels. */
- unsigned long control_page;
-
- /* Flags to indicate special processing */
- unsigned int type : 1;
-#define KEXEC_TYPE_DEFAULT 0
-#define KEXEC_TYPE_CRASH 1
- unsigned int preserve_context : 1;
-
-#ifdef ARCH_HAS_KIMAGE_ARCH
- struct kimage_arch arch;
-#endif
-};
-
-
-
-/* kexec interface functions */
-extern void machine_kexec(struct kimage *image);
-extern int machine_kexec_prepare(struct kimage *image);
-extern void machine_kexec_cleanup(struct kimage *image);
-extern asmlinkage long sys_kexec_load(unsigned long entry,
- unsigned long nr_segments,
- struct kexec_segment __user *segments,
- unsigned long flags);
-extern int kernel_kexec(void);
-#ifdef CONFIG_COMPAT
-extern asmlinkage long compat_sys_kexec_load(unsigned long entry,
- unsigned long nr_segments,
- struct compat_kexec_segment __user *segments,
- unsigned long flags);
-#endif
-extern struct page *kimage_alloc_control_pages(struct kimage *image,
- unsigned int order);
-extern void crash_kexec(struct pt_regs *);
-int kexec_should_crash(struct task_struct *);
-void crash_save_cpu(struct pt_regs *regs, int cpu);
-void crash_save_vmcoreinfo(void);
-void crash_map_reserved_pages(void);
-void crash_unmap_reserved_pages(void);
-void arch_crash_save_vmcoreinfo(void);
-__printf(1, 2)
-void vmcoreinfo_append_str(const char *fmt, ...);
-unsigned long paddr_vmcoreinfo_note(void);
-
-#define VMCOREINFO_OSRELEASE(value) \
- vmcoreinfo_append_str("OSRELEASE=%s\n", value)
-#define VMCOREINFO_PAGESIZE(value) \
- vmcoreinfo_append_str("PAGESIZE=%ld\n", value)
-#define VMCOREINFO_SYMBOL(name) \
- vmcoreinfo_append_str("SYMBOL(%s)=%lx\n", #name, (unsigned long)&name)
-#define VMCOREINFO_SIZE(name) \
- vmcoreinfo_append_str("SIZE(%s)=%lu\n", #name, \
- (unsigned long)sizeof(name))
-#define VMCOREINFO_STRUCT_SIZE(name) \
- vmcoreinfo_append_str("SIZE(%s)=%lu\n", #name, \
- (unsigned long)sizeof(struct name))
-#define VMCOREINFO_OFFSET(name, field) \
- vmcoreinfo_append_str("OFFSET(%s.%s)=%lu\n", #name, #field, \
- (unsigned long)offsetof(struct name, field))
-#define VMCOREINFO_LENGTH(name, value) \
- vmcoreinfo_append_str("LENGTH(%s)=%lu\n", #name, (unsigned long)value)
-#define VMCOREINFO_NUMBER(name) \
- vmcoreinfo_append_str("NUMBER(%s)=%ld\n", #name, (long)name)
-#define VMCOREINFO_CONFIG(name) \
- vmcoreinfo_append_str("CONFIG_%s=y\n", #name)
-
-extern struct kimage *kexec_image;
-extern struct kimage *kexec_crash_image;
-
-#ifndef kexec_flush_icache_page
-#define kexec_flush_icache_page(page)
-#endif
-
-#define KEXEC_ON_CRASH 0x00000001
-#define KEXEC_PRESERVE_CONTEXT 0x00000002
-#define KEXEC_ARCH_MASK 0xffff0000
-
-/* These values match the ELF architecture values.
- * Unless there is a good reason that should continue to be the case.
- */
-#define KEXEC_ARCH_DEFAULT ( 0 << 16)
-#define KEXEC_ARCH_386 ( 3 << 16)
-#define KEXEC_ARCH_X86_64 (62 << 16)
-#define KEXEC_ARCH_PPC (20 << 16)
-#define KEXEC_ARCH_PPC64 (21 << 16)
-#define KEXEC_ARCH_IA_64 (50 << 16)
-#define KEXEC_ARCH_ARM (40 << 16)
-#define KEXEC_ARCH_S390 (22 << 16)
-#define KEXEC_ARCH_SH (42 << 16)
-#define KEXEC_ARCH_MIPS_LE (10 << 16)
-#define KEXEC_ARCH_MIPS ( 8 << 16)
-
-/* List of defined/legal kexec flags */
-#ifndef CONFIG_KEXEC_JUMP
-#define KEXEC_FLAGS KEXEC_ON_CRASH
-#else
-#define KEXEC_FLAGS (KEXEC_ON_CRASH | KEXEC_PRESERVE_CONTEXT)
-#endif
-
-#define VMCOREINFO_BYTES (4096)
-#define VMCOREINFO_NOTE_NAME "VMCOREINFO"
-#define VMCOREINFO_NOTE_NAME_BYTES ALIGN(sizeof(VMCOREINFO_NOTE_NAME), 4)
-#define VMCOREINFO_NOTE_SIZE (KEXEC_NOTE_HEAD_BYTES*2 + VMCOREINFO_BYTES \
- + VMCOREINFO_NOTE_NAME_BYTES)
-
-/* Location of a reserved region to hold the crash kernel.
- */
-extern struct resource crashk_res;
-typedef u32 note_buf_t[KEXEC_NOTE_BYTES/4];
-extern note_buf_t __percpu *crash_notes;
-extern u32 vmcoreinfo_note[VMCOREINFO_NOTE_SIZE/4];
-extern size_t vmcoreinfo_size;
-extern size_t vmcoreinfo_max_size;
-
-int __init parse_crashkernel(char *cmdline, unsigned long long system_ram,
- unsigned long long *crash_size, unsigned long long *crash_base);
-int crash_shrink_memory(unsigned long new_size);
-size_t crash_get_memory_size(void);
-void crash_free_reserved_phys_range(unsigned long begin, unsigned long end);
-
-#else /* !CONFIG_KEXEC */
-struct pt_regs;
-struct task_struct;
-static inline void crash_kexec(struct pt_regs *regs) { }
-static inline int kexec_should_crash(struct task_struct *p) { return 0; }
-#endif /* CONFIG_KEXEC */
-#endif /* LINUX_KEXEC_H */
diff --git a/ANDROID_3.4.5/include/linux/key-type.h b/ANDROID_3.4.5/include/linux/key-type.h
deleted file mode 100644
index 39e3c082..00000000
--- a/ANDROID_3.4.5/include/linux/key-type.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/* Definitions for key type implementations
- *
- * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
- * Written by David Howells (dhowells@redhat.com)
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public Licence
- * as published by the Free Software Foundation; either version
- * 2 of the Licence, or (at your option) any later version.
- */
-
-#ifndef _LINUX_KEY_TYPE_H
-#define _LINUX_KEY_TYPE_H
-
-#include <linux/key.h>
-
-#ifdef CONFIG_KEYS
-
-/*
- * key under-construction record
- * - passed to the request_key actor if supplied
- */
-struct key_construction {
- struct key *key; /* key being constructed */
- struct key *authkey;/* authorisation for key being constructed */
-};
-
-typedef int (*request_key_actor_t)(struct key_construction *key,
- const char *op, void *aux);
-
-/*
- * kernel managed key type definition
- */
-struct key_type {
- /* name of the type */
- const char *name;
-
- /* default payload length for quota precalculation (optional)
- * - this can be used instead of calling key_payload_reserve(), that
- * function only needs to be called if the real datalen is different
- */
- size_t def_datalen;
-
- /* vet a description */
- int (*vet_description)(const char *description);
-
- /* instantiate a key of this type
- * - this method should call key_payload_reserve() to determine if the
- * user's quota will hold the payload
- */
- int (*instantiate)(struct key *key, const void *data, size_t datalen);
-
- /* update a key of this type (optional)
- * - this method should call key_payload_reserve() to recalculate the
- * quota consumption
- * - the key must be locked against read when modifying
- */
- int (*update)(struct key *key, const void *data, size_t datalen);
-
- /* match a key against a description */
- int (*match)(const struct key *key, const void *desc);
-
- /* clear some of the data from a key on revokation (optional)
- * - the key's semaphore will be write-locked by the caller
- */
- void (*revoke)(struct key *key);
-
- /* clear the data from a key (optional) */
- void (*destroy)(struct key *key);
-
- /* describe a key */
- void (*describe)(const struct key *key, struct seq_file *p);
-
- /* read a key's data (optional)
- * - permission checks will be done by the caller
- * - the key's semaphore will be readlocked by the caller
- * - should return the amount of data that could be read, no matter how
- * much is copied into the buffer
- * - shouldn't do the copy if the buffer is NULL
- */
- long (*read)(const struct key *key, char __user *buffer, size_t buflen);
-
- /* handle request_key() for this type instead of invoking
- * /sbin/request-key (optional)
- * - key is the key to instantiate
- * - authkey is the authority to assume when instantiating this key
- * - op is the operation to be done, usually "create"
- * - the call must not return until the instantiation process has run
- * its course
- */
- request_key_actor_t request_key;
-
- /* internal fields */
- struct list_head link; /* link in types list */
- struct lock_class_key lock_class; /* key->sem lock class */
-};
-
-extern struct key_type key_type_keyring;
-
-extern int register_key_type(struct key_type *ktype);
-extern void unregister_key_type(struct key_type *ktype);
-
-extern int key_payload_reserve(struct key *key, size_t datalen);
-extern int key_instantiate_and_link(struct key *key,
- const void *data,
- size_t datalen,
- struct key *keyring,
- struct key *instkey);
-extern int key_reject_and_link(struct key *key,
- unsigned timeout,
- unsigned error,
- struct key *keyring,
- struct key *instkey);
-extern void complete_request_key(struct key_construction *cons, int error);
-
-static inline int key_negate_and_link(struct key *key,
- unsigned timeout,
- struct key *keyring,
- struct key *instkey)
-{
- return key_reject_and_link(key, timeout, ENOKEY, keyring, instkey);
-}
-
-#endif /* CONFIG_KEYS */
-#endif /* _LINUX_KEY_TYPE_H */
diff --git a/ANDROID_3.4.5/include/linux/key.h b/ANDROID_3.4.5/include/linux/key.h
deleted file mode 100644
index 96933b1e..00000000
--- a/ANDROID_3.4.5/include/linux/key.h
+++ /dev/null
@@ -1,334 +0,0 @@
-/* Authentication token and access key management
- *
- * Copyright (C) 2004, 2007 Red Hat, Inc. All Rights Reserved.
- * Written by David Howells (dhowells@redhat.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.
- *
- *
- * See Documentation/security/keys.txt for information on keys/keyrings.
- */
-
-#ifndef _LINUX_KEY_H
-#define _LINUX_KEY_H
-
-#include <linux/types.h>
-#include <linux/list.h>
-#include <linux/rbtree.h>
-#include <linux/rcupdate.h>
-#include <linux/sysctl.h>
-#include <linux/rwsem.h>
-#include <linux/atomic.h>
-
-#ifdef __KERNEL__
-
-/* key handle serial number */
-typedef int32_t key_serial_t;
-
-/* key handle permissions mask */
-typedef uint32_t key_perm_t;
-
-struct key;
-
-#ifdef CONFIG_KEYS
-
-#undef KEY_DEBUGGING
-
-#define KEY_POS_VIEW 0x01000000 /* possessor can view a key's attributes */
-#define KEY_POS_READ 0x02000000 /* possessor can read key payload / view keyring */
-#define KEY_POS_WRITE 0x04000000 /* possessor can update key payload / add link to keyring */
-#define KEY_POS_SEARCH 0x08000000 /* possessor can find a key in search / search a keyring */
-#define KEY_POS_LINK 0x10000000 /* possessor can create a link to a key/keyring */
-#define KEY_POS_SETATTR 0x20000000 /* possessor can set key attributes */
-#define KEY_POS_ALL 0x3f000000
-
-#define KEY_USR_VIEW 0x00010000 /* user permissions... */
-#define KEY_USR_READ 0x00020000
-#define KEY_USR_WRITE 0x00040000
-#define KEY_USR_SEARCH 0x00080000
-#define KEY_USR_LINK 0x00100000
-#define KEY_USR_SETATTR 0x00200000
-#define KEY_USR_ALL 0x003f0000
-
-#define KEY_GRP_VIEW 0x00000100 /* group permissions... */
-#define KEY_GRP_READ 0x00000200
-#define KEY_GRP_WRITE 0x00000400
-#define KEY_GRP_SEARCH 0x00000800
-#define KEY_GRP_LINK 0x00001000
-#define KEY_GRP_SETATTR 0x00002000
-#define KEY_GRP_ALL 0x00003f00
-
-#define KEY_OTH_VIEW 0x00000001 /* third party permissions... */
-#define KEY_OTH_READ 0x00000002
-#define KEY_OTH_WRITE 0x00000004
-#define KEY_OTH_SEARCH 0x00000008
-#define KEY_OTH_LINK 0x00000010
-#define KEY_OTH_SETATTR 0x00000020
-#define KEY_OTH_ALL 0x0000003f
-
-#define KEY_PERM_UNDEF 0xffffffff
-
-struct seq_file;
-struct user_struct;
-struct signal_struct;
-struct cred;
-
-struct key_type;
-struct key_owner;
-struct keyring_list;
-struct keyring_name;
-
-/*****************************************************************************/
-/*
- * key reference with possession attribute handling
- *
- * NOTE! key_ref_t is a typedef'd pointer to a type that is not actually
- * defined. This is because we abuse the bottom bit of the reference to carry a
- * flag to indicate whether the calling process possesses that key in one of
- * its keyrings.
- *
- * the key_ref_t has been made a separate type so that the compiler can reject
- * attempts to dereference it without proper conversion.
- *
- * the three functions are used to assemble and disassemble references
- */
-typedef struct __key_reference_with_attributes *key_ref_t;
-
-static inline key_ref_t make_key_ref(const struct key *key,
- unsigned long possession)
-{
- return (key_ref_t) ((unsigned long) key | possession);
-}
-
-static inline struct key *key_ref_to_ptr(const key_ref_t key_ref)
-{
- return (struct key *) ((unsigned long) key_ref & ~1UL);
-}
-
-static inline unsigned long is_key_possessed(const key_ref_t key_ref)
-{
- return (unsigned long) key_ref & 1UL;
-}
-
-/*****************************************************************************/
-/*
- * authentication token / access credential / keyring
- * - types of key include:
- * - keyrings
- * - disk encryption IDs
- * - Kerberos TGTs and tickets
- */
-struct key {
- atomic_t usage; /* number of references */
- key_serial_t serial; /* key serial number */
- struct rb_node serial_node;
- struct key_type *type; /* type of key */
- struct rw_semaphore sem; /* change vs change sem */
- struct key_user *user; /* owner of this key */
- void *security; /* security data for this key */
- union {
- time_t expiry; /* time at which key expires (or 0) */
- time_t revoked_at; /* time at which key was revoked */
- };
- uid_t uid;
- gid_t gid;
- key_perm_t perm; /* access permissions */
- unsigned short quotalen; /* length added to quota */
- unsigned short datalen; /* payload data length
- * - may not match RCU dereferenced payload
- * - payload should contain own length
- */
-
-#ifdef KEY_DEBUGGING
- unsigned magic;
-#define KEY_DEBUG_MAGIC 0x18273645u
-#define KEY_DEBUG_MAGIC_X 0xf8e9dacbu
-#endif
-
- unsigned long flags; /* status flags (change with bitops) */
-#define KEY_FLAG_INSTANTIATED 0 /* set if key has been instantiated */
-#define KEY_FLAG_DEAD 1 /* set if key type has been deleted */
-#define KEY_FLAG_REVOKED 2 /* set if key had been revoked */
-#define KEY_FLAG_IN_QUOTA 3 /* set if key consumes quota */
-#define KEY_FLAG_USER_CONSTRUCT 4 /* set if key is being constructed in userspace */
-#define KEY_FLAG_NEGATIVE 5 /* set if key is negative */
-#define KEY_FLAG_ROOT_CAN_CLEAR 6 /* set if key can be cleared by root without permission */
-
- /* the description string
- * - this is used to match a key against search criteria
- * - this should be a printable string
- * - eg: for krb5 AFS, this might be "afs@REDHAT.COM"
- */
- char *description;
-
- /* type specific data
- * - this is used by the keyring type to index the name
- */
- union {
- struct list_head link;
- unsigned long x[2];
- void *p[2];
- int reject_error;
- } type_data;
-
- /* key data
- * - this is used to hold the data actually used in cryptography or
- * whatever
- */
- union {
- unsigned long value;
- void __rcu *rcudata;
- void *data;
- struct keyring_list __rcu *subscriptions;
- } payload;
-};
-
-extern struct key *key_alloc(struct key_type *type,
- const char *desc,
- uid_t uid, gid_t gid,
- const struct cred *cred,
- key_perm_t perm,
- unsigned long flags);
-
-
-#define KEY_ALLOC_IN_QUOTA 0x0000 /* add to quota, reject if would overrun */
-#define KEY_ALLOC_QUOTA_OVERRUN 0x0001 /* add to quota, permit even if overrun */
-#define KEY_ALLOC_NOT_IN_QUOTA 0x0002 /* not in quota */
-
-extern void key_revoke(struct key *key);
-extern void key_put(struct key *key);
-
-static inline struct key *key_get(struct key *key)
-{
- if (key)
- atomic_inc(&key->usage);
- return key;
-}
-
-static inline void key_ref_put(key_ref_t key_ref)
-{
- key_put(key_ref_to_ptr(key_ref));
-}
-
-extern struct key *request_key(struct key_type *type,
- const char *description,
- const char *callout_info);
-
-extern struct key *request_key_with_auxdata(struct key_type *type,
- const char *description,
- const void *callout_info,
- size_t callout_len,
- void *aux);
-
-extern struct key *request_key_async(struct key_type *type,
- const char *description,
- const void *callout_info,
- size_t callout_len);
-
-extern struct key *request_key_async_with_auxdata(struct key_type *type,
- const char *description,
- const void *callout_info,
- size_t callout_len,
- void *aux);
-
-extern int wait_for_key_construction(struct key *key, bool intr);
-
-extern int key_validate(struct key *key);
-
-extern key_ref_t key_create_or_update(key_ref_t keyring,
- const char *type,
- const char *description,
- const void *payload,
- size_t plen,
- key_perm_t perm,
- unsigned long flags);
-
-extern int key_update(key_ref_t key,
- const void *payload,
- size_t plen);
-
-extern int key_link(struct key *keyring,
- struct key *key);
-
-extern int key_unlink(struct key *keyring,
- struct key *key);
-
-extern struct key *keyring_alloc(const char *description, uid_t uid, gid_t gid,
- const struct cred *cred,
- unsigned long flags,
- struct key *dest);
-
-extern int keyring_clear(struct key *keyring);
-
-extern key_ref_t keyring_search(key_ref_t keyring,
- struct key_type *type,
- const char *description);
-
-extern int keyring_add_key(struct key *keyring,
- struct key *key);
-
-extern struct key *key_lookup(key_serial_t id);
-
-static inline key_serial_t key_serial(const struct key *key)
-{
- return key ? key->serial : 0;
-}
-
-extern void key_set_timeout(struct key *, unsigned);
-
-/**
- * key_is_instantiated - Determine if a key has been positively instantiated
- * @key: The key to check.
- *
- * Return true if the specified key has been positively instantiated, false
- * otherwise.
- */
-static inline bool key_is_instantiated(const struct key *key)
-{
- return test_bit(KEY_FLAG_INSTANTIATED, &key->flags) &&
- !test_bit(KEY_FLAG_NEGATIVE, &key->flags);
-}
-
-#define rcu_dereference_key(KEY) \
- (rcu_dereference_protected((KEY)->payload.rcudata, \
- rwsem_is_locked(&((struct key *)(KEY))->sem)))
-
-#define rcu_assign_keypointer(KEY, PAYLOAD) \
- (rcu_assign_pointer((KEY)->payload.rcudata, PAYLOAD))
-
-#ifdef CONFIG_SYSCTL
-extern ctl_table key_sysctls[];
-#endif
-
-extern void key_replace_session_keyring(void);
-
-/*
- * the userspace interface
- */
-extern int install_thread_keyring_to_cred(struct cred *cred);
-extern void key_fsuid_changed(struct task_struct *tsk);
-extern void key_fsgid_changed(struct task_struct *tsk);
-extern void key_init(void);
-
-#else /* CONFIG_KEYS */
-
-#define key_validate(k) 0
-#define key_serial(k) 0
-#define key_get(k) ({ NULL; })
-#define key_revoke(k) do { } while(0)
-#define key_put(k) do { } while(0)
-#define key_ref_put(k) do { } while(0)
-#define make_key_ref(k, p) NULL
-#define key_ref_to_ptr(k) NULL
-#define is_key_possessed(k) 0
-#define key_fsuid_changed(t) do { } while(0)
-#define key_fsgid_changed(t) do { } while(0)
-#define key_init() do { } while(0)
-#define key_replace_session_keyring() do { } while(0)
-
-#endif /* CONFIG_KEYS */
-#endif /* __KERNEL__ */
-#endif /* _LINUX_KEY_H */
diff --git a/ANDROID_3.4.5/include/linux/keyboard.h b/ANDROID_3.4.5/include/linux/keyboard.h
deleted file mode 100644
index 86e5214a..00000000
--- a/ANDROID_3.4.5/include/linux/keyboard.h
+++ /dev/null
@@ -1,459 +0,0 @@
-#ifndef __LINUX_KEYBOARD_H
-#define __LINUX_KEYBOARD_H
-
-#include <linux/wait.h>
-
-#define KG_SHIFT 0
-#define KG_CTRL 2
-#define KG_ALT 3
-#define KG_ALTGR 1
-#define KG_SHIFTL 4
-#define KG_KANASHIFT 4
-#define KG_SHIFTR 5
-#define KG_CTRLL 6
-#define KG_CTRLR 7
-#define KG_CAPSSHIFT 8
-
-#define NR_SHIFT 9
-
-#define NR_KEYS 256
-#define MAX_NR_KEYMAPS 256
-/* This means 128Kb if all keymaps are allocated. Only the superuser
- may increase the number of keymaps beyond MAX_NR_OF_USER_KEYMAPS. */
-#define MAX_NR_OF_USER_KEYMAPS 256 /* should be at least 7 */
-
-#ifdef __KERNEL__
-struct notifier_block;
-extern unsigned short *key_maps[MAX_NR_KEYMAPS];
-extern unsigned short plain_map[NR_KEYS];
-
-struct keyboard_notifier_param {
- struct vc_data *vc; /* VC on which the keyboard press was done */
- int down; /* Pressure of the key? */
- int shift; /* Current shift mask */
- int ledstate; /* Current led state */
- unsigned int value; /* keycode, unicode value or keysym */
-};
-
-extern int register_keyboard_notifier(struct notifier_block *nb);
-extern int unregister_keyboard_notifier(struct notifier_block *nb);
-#endif
-
-#define MAX_NR_FUNC 256 /* max nr of strings assigned to keys */
-
-#define KT_LATIN 0 /* we depend on this being zero */
-#define KT_LETTER 11 /* symbol that can be acted upon by CapsLock */
-#define KT_FN 1
-#define KT_SPEC 2
-#define KT_PAD 3
-#define KT_DEAD 4
-#define KT_CONS 5
-#define KT_CUR 6
-#define KT_SHIFT 7
-#define KT_META 8
-#define KT_ASCII 9
-#define KT_LOCK 10
-#define KT_SLOCK 12
-#define KT_DEAD2 13
-#define KT_BRL 14
-
-#define K(t,v) (((t)<<8)|(v))
-#define KTYP(x) ((x) >> 8)
-#define KVAL(x) ((x) & 0xff)
-
-#define K_F1 K(KT_FN,0)
-#define K_F2 K(KT_FN,1)
-#define K_F3 K(KT_FN,2)
-#define K_F4 K(KT_FN,3)
-#define K_F5 K(KT_FN,4)
-#define K_F6 K(KT_FN,5)
-#define K_F7 K(KT_FN,6)
-#define K_F8 K(KT_FN,7)
-#define K_F9 K(KT_FN,8)
-#define K_F10 K(KT_FN,9)
-#define K_F11 K(KT_FN,10)
-#define K_F12 K(KT_FN,11)
-#define K_F13 K(KT_FN,12)
-#define K_F14 K(KT_FN,13)
-#define K_F15 K(KT_FN,14)
-#define K_F16 K(KT_FN,15)
-#define K_F17 K(KT_FN,16)
-#define K_F18 K(KT_FN,17)
-#define K_F19 K(KT_FN,18)
-#define K_F20 K(KT_FN,19)
-#define K_FIND K(KT_FN,20)
-#define K_INSERT K(KT_FN,21)
-#define K_REMOVE K(KT_FN,22)
-#define K_SELECT K(KT_FN,23)
-#define K_PGUP K(KT_FN,24) /* PGUP is a synonym for PRIOR */
-#define K_PGDN K(KT_FN,25) /* PGDN is a synonym for NEXT */
-#define K_MACRO K(KT_FN,26)
-#define K_HELP K(KT_FN,27)
-#define K_DO K(KT_FN,28)
-#define K_PAUSE K(KT_FN,29)
-#define K_F21 K(KT_FN,30)
-#define K_F22 K(KT_FN,31)
-#define K_F23 K(KT_FN,32)
-#define K_F24 K(KT_FN,33)
-#define K_F25 K(KT_FN,34)
-#define K_F26 K(KT_FN,35)
-#define K_F27 K(KT_FN,36)
-#define K_F28 K(KT_FN,37)
-#define K_F29 K(KT_FN,38)
-#define K_F30 K(KT_FN,39)
-#define K_F31 K(KT_FN,40)
-#define K_F32 K(KT_FN,41)
-#define K_F33 K(KT_FN,42)
-#define K_F34 K(KT_FN,43)
-#define K_F35 K(KT_FN,44)
-#define K_F36 K(KT_FN,45)
-#define K_F37 K(KT_FN,46)
-#define K_F38 K(KT_FN,47)
-#define K_F39 K(KT_FN,48)
-#define K_F40 K(KT_FN,49)
-#define K_F41 K(KT_FN,50)
-#define K_F42 K(KT_FN,51)
-#define K_F43 K(KT_FN,52)
-#define K_F44 K(KT_FN,53)
-#define K_F45 K(KT_FN,54)
-#define K_F46 K(KT_FN,55)
-#define K_F47 K(KT_FN,56)
-#define K_F48 K(KT_FN,57)
-#define K_F49 K(KT_FN,58)
-#define K_F50 K(KT_FN,59)
-#define K_F51 K(KT_FN,60)
-#define K_F52 K(KT_FN,61)
-#define K_F53 K(KT_FN,62)
-#define K_F54 K(KT_FN,63)
-#define K_F55 K(KT_FN,64)
-#define K_F56 K(KT_FN,65)
-#define K_F57 K(KT_FN,66)
-#define K_F58 K(KT_FN,67)
-#define K_F59 K(KT_FN,68)
-#define K_F60 K(KT_FN,69)
-#define K_F61 K(KT_FN,70)
-#define K_F62 K(KT_FN,71)
-#define K_F63 K(KT_FN,72)
-#define K_F64 K(KT_FN,73)
-#define K_F65 K(KT_FN,74)
-#define K_F66 K(KT_FN,75)
-#define K_F67 K(KT_FN,76)
-#define K_F68 K(KT_FN,77)
-#define K_F69 K(KT_FN,78)
-#define K_F70 K(KT_FN,79)
-#define K_F71 K(KT_FN,80)
-#define K_F72 K(KT_FN,81)
-#define K_F73 K(KT_FN,82)
-#define K_F74 K(KT_FN,83)
-#define K_F75 K(KT_FN,84)
-#define K_F76 K(KT_FN,85)
-#define K_F77 K(KT_FN,86)
-#define K_F78 K(KT_FN,87)
-#define K_F79 K(KT_FN,88)
-#define K_F80 K(KT_FN,89)
-#define K_F81 K(KT_FN,90)
-#define K_F82 K(KT_FN,91)
-#define K_F83 K(KT_FN,92)
-#define K_F84 K(KT_FN,93)
-#define K_F85 K(KT_FN,94)
-#define K_F86 K(KT_FN,95)
-#define K_F87 K(KT_FN,96)
-#define K_F88 K(KT_FN,97)
-#define K_F89 K(KT_FN,98)
-#define K_F90 K(KT_FN,99)
-#define K_F91 K(KT_FN,100)
-#define K_F92 K(KT_FN,101)
-#define K_F93 K(KT_FN,102)
-#define K_F94 K(KT_FN,103)
-#define K_F95 K(KT_FN,104)
-#define K_F96 K(KT_FN,105)
-#define K_F97 K(KT_FN,106)
-#define K_F98 K(KT_FN,107)
-#define K_F99 K(KT_FN,108)
-#define K_F100 K(KT_FN,109)
-#define K_F101 K(KT_FN,110)
-#define K_F102 K(KT_FN,111)
-#define K_F103 K(KT_FN,112)
-#define K_F104 K(KT_FN,113)
-#define K_F105 K(KT_FN,114)
-#define K_F106 K(KT_FN,115)
-#define K_F107 K(KT_FN,116)
-#define K_F108 K(KT_FN,117)
-#define K_F109 K(KT_FN,118)
-#define K_F110 K(KT_FN,119)
-#define K_F111 K(KT_FN,120)
-#define K_F112 K(KT_FN,121)
-#define K_F113 K(KT_FN,122)
-#define K_F114 K(KT_FN,123)
-#define K_F115 K(KT_FN,124)
-#define K_F116 K(KT_FN,125)
-#define K_F117 K(KT_FN,126)
-#define K_F118 K(KT_FN,127)
-#define K_F119 K(KT_FN,128)
-#define K_F120 K(KT_FN,129)
-#define K_F121 K(KT_FN,130)
-#define K_F122 K(KT_FN,131)
-#define K_F123 K(KT_FN,132)
-#define K_F124 K(KT_FN,133)
-#define K_F125 K(KT_FN,134)
-#define K_F126 K(KT_FN,135)
-#define K_F127 K(KT_FN,136)
-#define K_F128 K(KT_FN,137)
-#define K_F129 K(KT_FN,138)
-#define K_F130 K(KT_FN,139)
-#define K_F131 K(KT_FN,140)
-#define K_F132 K(KT_FN,141)
-#define K_F133 K(KT_FN,142)
-#define K_F134 K(KT_FN,143)
-#define K_F135 K(KT_FN,144)
-#define K_F136 K(KT_FN,145)
-#define K_F137 K(KT_FN,146)
-#define K_F138 K(KT_FN,147)
-#define K_F139 K(KT_FN,148)
-#define K_F140 K(KT_FN,149)
-#define K_F141 K(KT_FN,150)
-#define K_F142 K(KT_FN,151)
-#define K_F143 K(KT_FN,152)
-#define K_F144 K(KT_FN,153)
-#define K_F145 K(KT_FN,154)
-#define K_F146 K(KT_FN,155)
-#define K_F147 K(KT_FN,156)
-#define K_F148 K(KT_FN,157)
-#define K_F149 K(KT_FN,158)
-#define K_F150 K(KT_FN,159)
-#define K_F151 K(KT_FN,160)
-#define K_F152 K(KT_FN,161)
-#define K_F153 K(KT_FN,162)
-#define K_F154 K(KT_FN,163)
-#define K_F155 K(KT_FN,164)
-#define K_F156 K(KT_FN,165)
-#define K_F157 K(KT_FN,166)
-#define K_F158 K(KT_FN,167)
-#define K_F159 K(KT_FN,168)
-#define K_F160 K(KT_FN,169)
-#define K_F161 K(KT_FN,170)
-#define K_F162 K(KT_FN,171)
-#define K_F163 K(KT_FN,172)
-#define K_F164 K(KT_FN,173)
-#define K_F165 K(KT_FN,174)
-#define K_F166 K(KT_FN,175)
-#define K_F167 K(KT_FN,176)
-#define K_F168 K(KT_FN,177)
-#define K_F169 K(KT_FN,178)
-#define K_F170 K(KT_FN,179)
-#define K_F171 K(KT_FN,180)
-#define K_F172 K(KT_FN,181)
-#define K_F173 K(KT_FN,182)
-#define K_F174 K(KT_FN,183)
-#define K_F175 K(KT_FN,184)
-#define K_F176 K(KT_FN,185)
-#define K_F177 K(KT_FN,186)
-#define K_F178 K(KT_FN,187)
-#define K_F179 K(KT_FN,188)
-#define K_F180 K(KT_FN,189)
-#define K_F181 K(KT_FN,190)
-#define K_F182 K(KT_FN,191)
-#define K_F183 K(KT_FN,192)
-#define K_F184 K(KT_FN,193)
-#define K_F185 K(KT_FN,194)
-#define K_F186 K(KT_FN,195)
-#define K_F187 K(KT_FN,196)
-#define K_F188 K(KT_FN,197)
-#define K_F189 K(KT_FN,198)
-#define K_F190 K(KT_FN,199)
-#define K_F191 K(KT_FN,200)
-#define K_F192 K(KT_FN,201)
-#define K_F193 K(KT_FN,202)
-#define K_F194 K(KT_FN,203)
-#define K_F195 K(KT_FN,204)
-#define K_F196 K(KT_FN,205)
-#define K_F197 K(KT_FN,206)
-#define K_F198 K(KT_FN,207)
-#define K_F199 K(KT_FN,208)
-#define K_F200 K(KT_FN,209)
-#define K_F201 K(KT_FN,210)
-#define K_F202 K(KT_FN,211)
-#define K_F203 K(KT_FN,212)
-#define K_F204 K(KT_FN,213)
-#define K_F205 K(KT_FN,214)
-#define K_F206 K(KT_FN,215)
-#define K_F207 K(KT_FN,216)
-#define K_F208 K(KT_FN,217)
-#define K_F209 K(KT_FN,218)
-#define K_F210 K(KT_FN,219)
-#define K_F211 K(KT_FN,220)
-#define K_F212 K(KT_FN,221)
-#define K_F213 K(KT_FN,222)
-#define K_F214 K(KT_FN,223)
-#define K_F215 K(KT_FN,224)
-#define K_F216 K(KT_FN,225)
-#define K_F217 K(KT_FN,226)
-#define K_F218 K(KT_FN,227)
-#define K_F219 K(KT_FN,228)
-#define K_F220 K(KT_FN,229)
-#define K_F221 K(KT_FN,230)
-#define K_F222 K(KT_FN,231)
-#define K_F223 K(KT_FN,232)
-#define K_F224 K(KT_FN,233)
-#define K_F225 K(KT_FN,234)
-#define K_F226 K(KT_FN,235)
-#define K_F227 K(KT_FN,236)
-#define K_F228 K(KT_FN,237)
-#define K_F229 K(KT_FN,238)
-#define K_F230 K(KT_FN,239)
-#define K_F231 K(KT_FN,240)
-#define K_F232 K(KT_FN,241)
-#define K_F233 K(KT_FN,242)
-#define K_F234 K(KT_FN,243)
-#define K_F235 K(KT_FN,244)
-#define K_F236 K(KT_FN,245)
-#define K_F237 K(KT_FN,246)
-#define K_F238 K(KT_FN,247)
-#define K_F239 K(KT_FN,248)
-#define K_F240 K(KT_FN,249)
-#define K_F241 K(KT_FN,250)
-#define K_F242 K(KT_FN,251)
-#define K_F243 K(KT_FN,252)
-#define K_F244 K(KT_FN,253)
-#define K_F245 K(KT_FN,254)
-#define K_UNDO K(KT_FN,255)
-
-
-#define K_HOLE K(KT_SPEC,0)
-#define K_ENTER K(KT_SPEC,1)
-#define K_SH_REGS K(KT_SPEC,2)
-#define K_SH_MEM K(KT_SPEC,3)
-#define K_SH_STAT K(KT_SPEC,4)
-#define K_BREAK K(KT_SPEC,5)
-#define K_CONS K(KT_SPEC,6)
-#define K_CAPS K(KT_SPEC,7)
-#define K_NUM K(KT_SPEC,8)
-#define K_HOLD K(KT_SPEC,9)
-#define K_SCROLLFORW K(KT_SPEC,10)
-#define K_SCROLLBACK K(KT_SPEC,11)
-#define K_BOOT K(KT_SPEC,12)
-#define K_CAPSON K(KT_SPEC,13)
-#define K_COMPOSE K(KT_SPEC,14)
-#define K_SAK K(KT_SPEC,15)
-#define K_DECRCONSOLE K(KT_SPEC,16)
-#define K_INCRCONSOLE K(KT_SPEC,17)
-#define K_SPAWNCONSOLE K(KT_SPEC,18)
-#define K_BARENUMLOCK K(KT_SPEC,19)
-
-#define K_ALLOCATED K(KT_SPEC,126) /* dynamically allocated keymap */
-#define K_NOSUCHMAP K(KT_SPEC,127) /* returned by KDGKBENT */
-
-#define K_P0 K(KT_PAD,0)
-#define K_P1 K(KT_PAD,1)
-#define K_P2 K(KT_PAD,2)
-#define K_P3 K(KT_PAD,3)
-#define K_P4 K(KT_PAD,4)
-#define K_P5 K(KT_PAD,5)
-#define K_P6 K(KT_PAD,6)
-#define K_P7 K(KT_PAD,7)
-#define K_P8 K(KT_PAD,8)
-#define K_P9 K(KT_PAD,9)
-#define K_PPLUS K(KT_PAD,10) /* key-pad plus */
-#define K_PMINUS K(KT_PAD,11) /* key-pad minus */
-#define K_PSTAR K(KT_PAD,12) /* key-pad asterisk (star) */
-#define K_PSLASH K(KT_PAD,13) /* key-pad slash */
-#define K_PENTER K(KT_PAD,14) /* key-pad enter */
-#define K_PCOMMA K(KT_PAD,15) /* key-pad comma: kludge... */
-#define K_PDOT K(KT_PAD,16) /* key-pad dot (period): kludge... */
-#define K_PPLUSMINUS K(KT_PAD,17) /* key-pad plus/minus */
-#define K_PPARENL K(KT_PAD,18) /* key-pad left parenthesis */
-#define K_PPARENR K(KT_PAD,19) /* key-pad right parenthesis */
-
-#define NR_PAD 20
-
-#define K_DGRAVE K(KT_DEAD,0)
-#define K_DACUTE K(KT_DEAD,1)
-#define K_DCIRCM K(KT_DEAD,2)
-#define K_DTILDE K(KT_DEAD,3)
-#define K_DDIERE K(KT_DEAD,4)
-#define K_DCEDIL K(KT_DEAD,5)
-
-#define NR_DEAD 6
-
-#define K_DOWN K(KT_CUR,0)
-#define K_LEFT K(KT_CUR,1)
-#define K_RIGHT K(KT_CUR,2)
-#define K_UP K(KT_CUR,3)
-
-#define K_SHIFT K(KT_SHIFT,KG_SHIFT)
-#define K_CTRL K(KT_SHIFT,KG_CTRL)
-#define K_ALT K(KT_SHIFT,KG_ALT)
-#define K_ALTGR K(KT_SHIFT,KG_ALTGR)
-#define K_SHIFTL K(KT_SHIFT,KG_SHIFTL)
-#define K_SHIFTR K(KT_SHIFT,KG_SHIFTR)
-#define K_CTRLL K(KT_SHIFT,KG_CTRLL)
-#define K_CTRLR K(KT_SHIFT,KG_CTRLR)
-#define K_CAPSSHIFT K(KT_SHIFT,KG_CAPSSHIFT)
-
-#define K_ASC0 K(KT_ASCII,0)
-#define K_ASC1 K(KT_ASCII,1)
-#define K_ASC2 K(KT_ASCII,2)
-#define K_ASC3 K(KT_ASCII,3)
-#define K_ASC4 K(KT_ASCII,4)
-#define K_ASC5 K(KT_ASCII,5)
-#define K_ASC6 K(KT_ASCII,6)
-#define K_ASC7 K(KT_ASCII,7)
-#define K_ASC8 K(KT_ASCII,8)
-#define K_ASC9 K(KT_ASCII,9)
-#define K_HEX0 K(KT_ASCII,10)
-#define K_HEX1 K(KT_ASCII,11)
-#define K_HEX2 K(KT_ASCII,12)
-#define K_HEX3 K(KT_ASCII,13)
-#define K_HEX4 K(KT_ASCII,14)
-#define K_HEX5 K(KT_ASCII,15)
-#define K_HEX6 K(KT_ASCII,16)
-#define K_HEX7 K(KT_ASCII,17)
-#define K_HEX8 K(KT_ASCII,18)
-#define K_HEX9 K(KT_ASCII,19)
-#define K_HEXa K(KT_ASCII,20)
-#define K_HEXb K(KT_ASCII,21)
-#define K_HEXc K(KT_ASCII,22)
-#define K_HEXd K(KT_ASCII,23)
-#define K_HEXe K(KT_ASCII,24)
-#define K_HEXf K(KT_ASCII,25)
-
-#define NR_ASCII 26
-
-#define K_SHIFTLOCK K(KT_LOCK,KG_SHIFT)
-#define K_CTRLLOCK K(KT_LOCK,KG_CTRL)
-#define K_ALTLOCK K(KT_LOCK,KG_ALT)
-#define K_ALTGRLOCK K(KT_LOCK,KG_ALTGR)
-#define K_SHIFTLLOCK K(KT_LOCK,KG_SHIFTL)
-#define K_SHIFTRLOCK K(KT_LOCK,KG_SHIFTR)
-#define K_CTRLLLOCK K(KT_LOCK,KG_CTRLL)
-#define K_CTRLRLOCK K(KT_LOCK,KG_CTRLR)
-#define K_CAPSSHIFTLOCK K(KT_LOCK,KG_CAPSSHIFT)
-
-#define K_SHIFT_SLOCK K(KT_SLOCK,KG_SHIFT)
-#define K_CTRL_SLOCK K(KT_SLOCK,KG_CTRL)
-#define K_ALT_SLOCK K(KT_SLOCK,KG_ALT)
-#define K_ALTGR_SLOCK K(KT_SLOCK,KG_ALTGR)
-#define K_SHIFTL_SLOCK K(KT_SLOCK,KG_SHIFTL)
-#define K_SHIFTR_SLOCK K(KT_SLOCK,KG_SHIFTR)
-#define K_CTRLL_SLOCK K(KT_SLOCK,KG_CTRLL)
-#define K_CTRLR_SLOCK K(KT_SLOCK,KG_CTRLR)
-#define K_CAPSSHIFT_SLOCK K(KT_SLOCK,KG_CAPSSHIFT)
-
-#define NR_LOCK 9
-
-#define K_BRL_BLANK K(KT_BRL, 0)
-#define K_BRL_DOT1 K(KT_BRL, 1)
-#define K_BRL_DOT2 K(KT_BRL, 2)
-#define K_BRL_DOT3 K(KT_BRL, 3)
-#define K_BRL_DOT4 K(KT_BRL, 4)
-#define K_BRL_DOT5 K(KT_BRL, 5)
-#define K_BRL_DOT6 K(KT_BRL, 6)
-#define K_BRL_DOT7 K(KT_BRL, 7)
-#define K_BRL_DOT8 K(KT_BRL, 8)
-#define K_BRL_DOT9 K(KT_BRL, 9)
-#define K_BRL_DOT10 K(KT_BRL, 10)
-
-#define NR_BRL 11
-
-#define MAX_DIACR 256
-#endif
diff --git a/ANDROID_3.4.5/include/linux/keychord.h b/ANDROID_3.4.5/include/linux/keychord.h
deleted file mode 100644
index 856a5850..00000000
--- a/ANDROID_3.4.5/include/linux/keychord.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Key chord input driver
- *
- * Copyright (C) 2008 Google, Inc.
- * Author: Mike Lockwood <lockwood@android.com>
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
-*/
-
-#ifndef __LINUX_KEYCHORD_H_
-#define __LINUX_KEYCHORD_H_
-
-#include <linux/input.h>
-
-#define KEYCHORD_VERSION 1
-
-/*
- * One or more input_keychord structs are written to /dev/keychord
- * at once to specify the list of keychords to monitor.
- * Reading /dev/keychord returns the id of a keychord when the
- * keychord combination is pressed. A keychord is signalled when
- * all of the keys in the keycode list are in the pressed state.
- * The order in which the keys are pressed does not matter.
- * The keychord will not be signalled if keys not in the keycode
- * list are pressed.
- * Keychords will not be signalled on key release events.
- */
-struct input_keychord {
- /* should be KEYCHORD_VERSION */
- __u16 version;
- /*
- * client specified ID, returned from read()
- * when this keychord is pressed.
- */
- __u16 id;
-
- /* number of keycodes in this keychord */
- __u16 count;
-
- /* variable length array of keycodes */
- __u16 keycodes[];
-};
-
-#endif /* __LINUX_KEYCHORD_H_ */
diff --git a/ANDROID_3.4.5/include/linux/keyctl.h b/ANDROID_3.4.5/include/linux/keyctl.h
deleted file mode 100644
index 9b0b865c..00000000
--- a/ANDROID_3.4.5/include/linux/keyctl.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/* keyctl.h: keyctl command IDs
- *
- * Copyright (C) 2004, 2008 Red Hat, Inc. All Rights Reserved.
- * Written by David Howells (dhowells@redhat.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 _LINUX_KEYCTL_H
-#define _LINUX_KEYCTL_H
-
-/* special process keyring shortcut IDs */
-#define KEY_SPEC_THREAD_KEYRING -1 /* - key ID for thread-specific keyring */
-#define KEY_SPEC_PROCESS_KEYRING -2 /* - key ID for process-specific keyring */
-#define KEY_SPEC_SESSION_KEYRING -3 /* - key ID for session-specific keyring */
-#define KEY_SPEC_USER_KEYRING -4 /* - key ID for UID-specific keyring */
-#define KEY_SPEC_USER_SESSION_KEYRING -5 /* - key ID for UID-session keyring */
-#define KEY_SPEC_GROUP_KEYRING -6 /* - key ID for GID-specific keyring */
-#define KEY_SPEC_REQKEY_AUTH_KEY -7 /* - key ID for assumed request_key auth key */
-#define KEY_SPEC_REQUESTOR_KEYRING -8 /* - key ID for request_key() dest keyring */
-
-/* request-key default keyrings */
-#define KEY_REQKEY_DEFL_NO_CHANGE -1
-#define KEY_REQKEY_DEFL_DEFAULT 0
-#define KEY_REQKEY_DEFL_THREAD_KEYRING 1
-#define KEY_REQKEY_DEFL_PROCESS_KEYRING 2
-#define KEY_REQKEY_DEFL_SESSION_KEYRING 3
-#define KEY_REQKEY_DEFL_USER_KEYRING 4
-#define KEY_REQKEY_DEFL_USER_SESSION_KEYRING 5
-#define KEY_REQKEY_DEFL_GROUP_KEYRING 6
-#define KEY_REQKEY_DEFL_REQUESTOR_KEYRING 7
-
-/* keyctl commands */
-#define KEYCTL_GET_KEYRING_ID 0 /* ask for a keyring's ID */
-#define KEYCTL_JOIN_SESSION_KEYRING 1 /* join or start named session keyring */
-#define KEYCTL_UPDATE 2 /* update a key */
-#define KEYCTL_REVOKE 3 /* revoke a key */
-#define KEYCTL_CHOWN 4 /* set ownership of a key */
-#define KEYCTL_SETPERM 5 /* set perms on a key */
-#define KEYCTL_DESCRIBE 6 /* describe a key */
-#define KEYCTL_CLEAR 7 /* clear contents of a keyring */
-#define KEYCTL_LINK 8 /* link a key into a keyring */
-#define KEYCTL_UNLINK 9 /* unlink a key from a keyring */
-#define KEYCTL_SEARCH 10 /* search for a key in a keyring */
-#define KEYCTL_READ 11 /* read a key or keyring's contents */
-#define KEYCTL_INSTANTIATE 12 /* instantiate a partially constructed key */
-#define KEYCTL_NEGATE 13 /* negate a partially constructed key */
-#define KEYCTL_SET_REQKEY_KEYRING 14 /* set default request-key keyring */
-#define KEYCTL_SET_TIMEOUT 15 /* set key timeout */
-#define KEYCTL_ASSUME_AUTHORITY 16 /* assume request_key() authorisation */
-#define KEYCTL_GET_SECURITY 17 /* get key security label */
-#define KEYCTL_SESSION_TO_PARENT 18 /* apply session keyring to parent process */
-#define KEYCTL_REJECT 19 /* reject a partially constructed key */
-#define KEYCTL_INSTANTIATE_IOV 20 /* instantiate a partially constructed key */
-
-#endif /* _LINUX_KEYCTL_H */
diff --git a/ANDROID_3.4.5/include/linux/keyreset.h b/ANDROID_3.4.5/include/linux/keyreset.h
deleted file mode 100644
index a2ac49e5..00000000
--- a/ANDROID_3.4.5/include/linux/keyreset.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * include/linux/keyreset.h - platform data structure for resetkeys driver
- *
- * Copyright (C) 2008 Google, Inc.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#ifndef _LINUX_KEYRESET_H
-#define _LINUX_KEYRESET_H
-
-#define KEYRESET_NAME "keyreset"
-
-struct keyreset_platform_data {
- int (*reset_fn)(void);
- int *keys_up;
- int keys_down[]; /* 0 terminated */
-};
-
-#endif /* _LINUX_KEYRESET_H */
diff --git a/ANDROID_3.4.5/include/linux/kfifo.h b/ANDROID_3.4.5/include/linux/kfifo.h
deleted file mode 100644
index 10308c6a..00000000
--- a/ANDROID_3.4.5/include/linux/kfifo.h
+++ /dev/null
@@ -1,852 +0,0 @@
-/*
- * A generic kernel FIFO implementation
- *
- * Copyright (C) 2009/2010 Stefani Seibold <stefani@seibold.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., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-#ifndef _LINUX_KFIFO_H
-#define _LINUX_KFIFO_H
-
-/*
- * How to porting drivers to the new generic FIFO API:
- *
- * - Modify the declaration of the "struct kfifo *" object into a
- * in-place "struct kfifo" object
- * - Init the in-place object with kfifo_alloc() or kfifo_init()
- * Note: The address of the in-place "struct kfifo" object must be
- * passed as the first argument to this functions
- * - Replace the use of __kfifo_put into kfifo_in and __kfifo_get
- * into kfifo_out
- * - Replace the use of kfifo_put into kfifo_in_spinlocked and kfifo_get
- * into kfifo_out_spinlocked
- * Note: the spinlock pointer formerly passed to kfifo_init/kfifo_alloc
- * must be passed now to the kfifo_in_spinlocked and kfifo_out_spinlocked
- * as the last parameter
- * - The formerly __kfifo_* functions are renamed into kfifo_*
- */
-
-/*
- * Note about locking : There is no locking required until only * one reader
- * and one writer is using the fifo and no kfifo_reset() will be * called
- * kfifo_reset_out() can be safely used, until it will be only called
- * in the reader thread.
- * For multiple writer and one reader there is only a need to lock the writer.
- * And vice versa for only one writer and multiple reader there is only a need
- * to lock the reader.
- */
-
-#include <linux/kernel.h>
-#include <linux/spinlock.h>
-#include <linux/stddef.h>
-#include <linux/scatterlist.h>
-
-struct __kfifo {
- unsigned int in;
- unsigned int out;
- unsigned int mask;
- unsigned int esize;
- void *data;
-};
-
-#define __STRUCT_KFIFO_COMMON(datatype, recsize, ptrtype) \
- union { \
- struct __kfifo kfifo; \
- datatype *type; \
- char (*rectype)[recsize]; \
- ptrtype *ptr; \
- const ptrtype *ptr_const; \
- }
-
-#define __STRUCT_KFIFO(type, size, recsize, ptrtype) \
-{ \
- __STRUCT_KFIFO_COMMON(type, recsize, ptrtype); \
- type buf[((size < 2) || (size & (size - 1))) ? -1 : size]; \
-}
-
-#define STRUCT_KFIFO(type, size) \
- struct __STRUCT_KFIFO(type, size, 0, type)
-
-#define __STRUCT_KFIFO_PTR(type, recsize, ptrtype) \
-{ \
- __STRUCT_KFIFO_COMMON(type, recsize, ptrtype); \
- type buf[0]; \
-}
-
-#define STRUCT_KFIFO_PTR(type) \
- struct __STRUCT_KFIFO_PTR(type, 0, type)
-
-/*
- * define compatibility "struct kfifo" for dynamic allocated fifos
- */
-struct kfifo __STRUCT_KFIFO_PTR(unsigned char, 0, void);
-
-#define STRUCT_KFIFO_REC_1(size) \
- struct __STRUCT_KFIFO(unsigned char, size, 1, void)
-
-#define STRUCT_KFIFO_REC_2(size) \
- struct __STRUCT_KFIFO(unsigned char, size, 2, void)
-
-/*
- * define kfifo_rec types
- */
-struct kfifo_rec_ptr_1 __STRUCT_KFIFO_PTR(unsigned char, 1, void);
-struct kfifo_rec_ptr_2 __STRUCT_KFIFO_PTR(unsigned char, 2, void);
-
-/*
- * helper macro to distinguish between real in place fifo where the fifo
- * array is a part of the structure and the fifo type where the array is
- * outside of the fifo structure.
- */
-#define __is_kfifo_ptr(fifo) (sizeof(*fifo) == sizeof(struct __kfifo))
-
-/**
- * DECLARE_KFIFO_PTR - macro to declare a fifo pointer object
- * @fifo: name of the declared fifo
- * @type: type of the fifo elements
- */
-#define DECLARE_KFIFO_PTR(fifo, type) STRUCT_KFIFO_PTR(type) fifo
-
-/**
- * DECLARE_KFIFO - macro to declare a fifo object
- * @fifo: name of the declared fifo
- * @type: type of the fifo elements
- * @size: the number of elements in the fifo, this must be a power of 2
- */
-#define DECLARE_KFIFO(fifo, type, size) STRUCT_KFIFO(type, size) fifo
-
-/**
- * INIT_KFIFO - Initialize a fifo declared by DECLARE_KFIFO
- * @fifo: name of the declared fifo datatype
- */
-#define INIT_KFIFO(fifo) \
-(void)({ \
- typeof(&(fifo)) __tmp = &(fifo); \
- struct __kfifo *__kfifo = &__tmp->kfifo; \
- __kfifo->in = 0; \
- __kfifo->out = 0; \
- __kfifo->mask = __is_kfifo_ptr(__tmp) ? 0 : ARRAY_SIZE(__tmp->buf) - 1;\
- __kfifo->esize = sizeof(*__tmp->buf); \
- __kfifo->data = __is_kfifo_ptr(__tmp) ? NULL : __tmp->buf; \
-})
-
-/**
- * DEFINE_KFIFO - macro to define and initialize a fifo
- * @fifo: name of the declared fifo datatype
- * @type: type of the fifo elements
- * @size: the number of elements in the fifo, this must be a power of 2
- *
- * Note: the macro can be used for global and local fifo data type variables.
- */
-#define DEFINE_KFIFO(fifo, type, size) \
- DECLARE_KFIFO(fifo, type, size) = \
- (typeof(fifo)) { \
- { \
- { \
- .in = 0, \
- .out = 0, \
- .mask = __is_kfifo_ptr(&(fifo)) ? \
- 0 : \
- ARRAY_SIZE((fifo).buf) - 1, \
- .esize = sizeof(*(fifo).buf), \
- .data = __is_kfifo_ptr(&(fifo)) ? \
- NULL : \
- (fifo).buf, \
- } \
- } \
- }
-
-
-static inline unsigned int __must_check
-__kfifo_uint_must_check_helper(unsigned int val)
-{
- return val;
-}
-
-static inline int __must_check
-__kfifo_int_must_check_helper(int val)
-{
- return val;
-}
-
-/**
- * kfifo_initialized - Check if the fifo is initialized
- * @fifo: address of the fifo to check
- *
- * Return %true if fifo is initialized, otherwise %false.
- * Assumes the fifo was 0 before.
- */
-#define kfifo_initialized(fifo) ((fifo)->kfifo.mask)
-
-/**
- * kfifo_esize - returns the size of the element managed by the fifo
- * @fifo: address of the fifo to be used
- */
-#define kfifo_esize(fifo) ((fifo)->kfifo.esize)
-
-/**
- * kfifo_recsize - returns the size of the record length field
- * @fifo: address of the fifo to be used
- */
-#define kfifo_recsize(fifo) (sizeof(*(fifo)->rectype))
-
-/**
- * kfifo_size - returns the size of the fifo in elements
- * @fifo: address of the fifo to be used
- */
-#define kfifo_size(fifo) ((fifo)->kfifo.mask + 1)
-
-/**
- * kfifo_reset - removes the entire fifo content
- * @fifo: address of the fifo to be used
- *
- * Note: usage of kfifo_reset() is dangerous. It should be only called when the
- * fifo is exclusived locked or when it is secured that no other thread is
- * accessing the fifo.
- */
-#define kfifo_reset(fifo) \
-(void)({ \
- typeof((fifo) + 1) __tmp = (fifo); \
- __tmp->kfifo.in = __tmp->kfifo.out = 0; \
-})
-
-/**
- * kfifo_reset_out - skip fifo content
- * @fifo: address of the fifo to be used
- *
- * Note: The usage of kfifo_reset_out() is safe until it will be only called
- * from the reader thread and there is only one concurrent reader. Otherwise
- * it is dangerous and must be handled in the same way as kfifo_reset().
- */
-#define kfifo_reset_out(fifo) \
-(void)({ \
- typeof((fifo) + 1) __tmp = (fifo); \
- __tmp->kfifo.out = __tmp->kfifo.in; \
-})
-
-/**
- * kfifo_len - returns the number of used elements in the fifo
- * @fifo: address of the fifo to be used
- */
-#define kfifo_len(fifo) \
-({ \
- typeof((fifo) + 1) __tmpl = (fifo); \
- __tmpl->kfifo.in - __tmpl->kfifo.out; \
-})
-
-/**
- * kfifo_is_empty - returns true if the fifo is empty
- * @fifo: address of the fifo to be used
- */
-#define kfifo_is_empty(fifo) \
-({ \
- typeof((fifo) + 1) __tmpq = (fifo); \
- __tmpq->kfifo.in == __tmpq->kfifo.out; \
-})
-
-/**
- * kfifo_is_full - returns true if the fifo is full
- * @fifo: address of the fifo to be used
- */
-#define kfifo_is_full(fifo) \
-({ \
- typeof((fifo) + 1) __tmpq = (fifo); \
- kfifo_len(__tmpq) > __tmpq->kfifo.mask; \
-})
-
-/**
- * kfifo_avail - returns the number of unused elements in the fifo
- * @fifo: address of the fifo to be used
- */
-#define kfifo_avail(fifo) \
-__kfifo_uint_must_check_helper( \
-({ \
- typeof((fifo) + 1) __tmpq = (fifo); \
- const size_t __recsize = sizeof(*__tmpq->rectype); \
- unsigned int __avail = kfifo_size(__tmpq) - kfifo_len(__tmpq); \
- (__recsize) ? ((__avail <= __recsize) ? 0 : \
- __kfifo_max_r(__avail - __recsize, __recsize)) : \
- __avail; \
-}) \
-)
-
-/**
- * kfifo_skip - skip output data
- * @fifo: address of the fifo to be used
- */
-#define kfifo_skip(fifo) \
-(void)({ \
- typeof((fifo) + 1) __tmp = (fifo); \
- const size_t __recsize = sizeof(*__tmp->rectype); \
- struct __kfifo *__kfifo = &__tmp->kfifo; \
- if (__recsize) \
- __kfifo_skip_r(__kfifo, __recsize); \
- else \
- __kfifo->out++; \
-})
-
-/**
- * kfifo_peek_len - gets the size of the next fifo record
- * @fifo: address of the fifo to be used
- *
- * This function returns the size of the next fifo record in number of bytes.
- */
-#define kfifo_peek_len(fifo) \
-__kfifo_uint_must_check_helper( \
-({ \
- typeof((fifo) + 1) __tmp = (fifo); \
- const size_t __recsize = sizeof(*__tmp->rectype); \
- struct __kfifo *__kfifo = &__tmp->kfifo; \
- (!__recsize) ? kfifo_len(__tmp) * sizeof(*__tmp->type) : \
- __kfifo_len_r(__kfifo, __recsize); \
-}) \
-)
-
-/**
- * kfifo_alloc - dynamically allocates a new fifo buffer
- * @fifo: pointer to the fifo
- * @size: the number of elements in the fifo, this must be a power of 2
- * @gfp_mask: get_free_pages mask, passed to kmalloc()
- *
- * This macro dynamically allocates a new fifo buffer.
- *
- * The numer of elements will be rounded-up to a power of 2.
- * The fifo will be release with kfifo_free().
- * Return 0 if no error, otherwise an error code.
- */
-#define kfifo_alloc(fifo, size, gfp_mask) \
-__kfifo_int_must_check_helper( \
-({ \
- typeof((fifo) + 1) __tmp = (fifo); \
- struct __kfifo *__kfifo = &__tmp->kfifo; \
- __is_kfifo_ptr(__tmp) ? \
- __kfifo_alloc(__kfifo, size, sizeof(*__tmp->type), gfp_mask) : \
- -EINVAL; \
-}) \
-)
-
-/**
- * kfifo_free - frees the fifo
- * @fifo: the fifo to be freed
- */
-#define kfifo_free(fifo) \
-({ \
- typeof((fifo) + 1) __tmp = (fifo); \
- struct __kfifo *__kfifo = &__tmp->kfifo; \
- if (__is_kfifo_ptr(__tmp)) \
- __kfifo_free(__kfifo); \
-})
-
-/**
- * kfifo_init - initialize a fifo using a preallocated buffer
- * @fifo: the fifo to assign the buffer
- * @buffer: the preallocated buffer to be used
- * @size: the size of the internal buffer, this have to be a power of 2
- *
- * This macro initialize a fifo using a preallocated buffer.
- *
- * The numer of elements will be rounded-up to a power of 2.
- * Return 0 if no error, otherwise an error code.
- */
-#define kfifo_init(fifo, buffer, size) \
-({ \
- typeof((fifo) + 1) __tmp = (fifo); \
- struct __kfifo *__kfifo = &__tmp->kfifo; \
- __is_kfifo_ptr(__tmp) ? \
- __kfifo_init(__kfifo, buffer, size, sizeof(*__tmp->type)) : \
- -EINVAL; \
-})
-
-/**
- * kfifo_put - put data into the fifo
- * @fifo: address of the fifo to be used
- * @val: the data to be added
- *
- * This macro copies the given value into the fifo.
- * It returns 0 if the fifo was full. Otherwise it returns the number
- * processed elements.
- *
- * Note that with only one concurrent reader and one concurrent
- * writer, you don't need extra locking to use these macro.
- */
-#define kfifo_put(fifo, val) \
-({ \
- typeof((fifo) + 1) __tmp = (fifo); \
- typeof((val) + 1) __val = (val); \
- unsigned int __ret; \
- const size_t __recsize = sizeof(*__tmp->rectype); \
- struct __kfifo *__kfifo = &__tmp->kfifo; \
- if (0) { \
- typeof(__tmp->ptr_const) __dummy __attribute__ ((unused)); \
- __dummy = (typeof(__val))NULL; \
- } \
- if (__recsize) \
- __ret = __kfifo_in_r(__kfifo, __val, sizeof(*__val), \
- __recsize); \
- else { \
- __ret = !kfifo_is_full(__tmp); \
- if (__ret) { \
- (__is_kfifo_ptr(__tmp) ? \
- ((typeof(__tmp->type))__kfifo->data) : \
- (__tmp->buf) \
- )[__kfifo->in & __tmp->kfifo.mask] = \
- *(typeof(__tmp->type))__val; \
- smp_wmb(); \
- __kfifo->in++; \
- } \
- } \
- __ret; \
-})
-
-/**
- * kfifo_get - get data from the fifo
- * @fifo: address of the fifo to be used
- * @val: the var where to store the data to be added
- *
- * This macro reads the data from the fifo.
- * It returns 0 if the fifo was empty. Otherwise it returns the number
- * processed elements.
- *
- * Note that with only one concurrent reader and one concurrent
- * writer, you don't need extra locking to use these macro.
- */
-#define kfifo_get(fifo, val) \
-__kfifo_uint_must_check_helper( \
-({ \
- typeof((fifo) + 1) __tmp = (fifo); \
- typeof((val) + 1) __val = (val); \
- unsigned int __ret; \
- const size_t __recsize = sizeof(*__tmp->rectype); \
- struct __kfifo *__kfifo = &__tmp->kfifo; \
- if (0) \
- __val = (typeof(__tmp->ptr))0; \
- if (__recsize) \
- __ret = __kfifo_out_r(__kfifo, __val, sizeof(*__val), \
- __recsize); \
- else { \
- __ret = !kfifo_is_empty(__tmp); \
- if (__ret) { \
- *(typeof(__tmp->type))__val = \
- (__is_kfifo_ptr(__tmp) ? \
- ((typeof(__tmp->type))__kfifo->data) : \
- (__tmp->buf) \
- )[__kfifo->out & __tmp->kfifo.mask]; \
- smp_wmb(); \
- __kfifo->out++; \
- } \
- } \
- __ret; \
-}) \
-)
-
-/**
- * kfifo_peek - get data from the fifo without removing
- * @fifo: address of the fifo to be used
- * @val: the var where to store the data to be added
- *
- * This reads the data from the fifo without removing it from the fifo.
- * It returns 0 if the fifo was empty. Otherwise it returns the number
- * processed elements.
- *
- * Note that with only one concurrent reader and one concurrent
- * writer, you don't need extra locking to use these macro.
- */
-#define kfifo_peek(fifo, val) \
-__kfifo_uint_must_check_helper( \
-({ \
- typeof((fifo) + 1) __tmp = (fifo); \
- typeof((val) + 1) __val = (val); \
- unsigned int __ret; \
- const size_t __recsize = sizeof(*__tmp->rectype); \
- struct __kfifo *__kfifo = &__tmp->kfifo; \
- if (0) \
- __val = (typeof(__tmp->ptr))NULL; \
- if (__recsize) \
- __ret = __kfifo_out_peek_r(__kfifo, __val, sizeof(*__val), \
- __recsize); \
- else { \
- __ret = !kfifo_is_empty(__tmp); \
- if (__ret) { \
- *(typeof(__tmp->type))__val = \
- (__is_kfifo_ptr(__tmp) ? \
- ((typeof(__tmp->type))__kfifo->data) : \
- (__tmp->buf) \
- )[__kfifo->out & __tmp->kfifo.mask]; \
- smp_wmb(); \
- } \
- } \
- __ret; \
-}) \
-)
-
-/**
- * kfifo_in - put data into the fifo
- * @fifo: address of the fifo to be used
- * @buf: the data to be added
- * @n: number of elements to be added
- *
- * This macro copies the given buffer into the fifo and returns the
- * number of copied elements.
- *
- * Note that with only one concurrent reader and one concurrent
- * writer, you don't need extra locking to use these macro.
- */
-#define kfifo_in(fifo, buf, n) \
-({ \
- typeof((fifo) + 1) __tmp = (fifo); \
- typeof((buf) + 1) __buf = (buf); \
- unsigned long __n = (n); \
- const size_t __recsize = sizeof(*__tmp->rectype); \
- struct __kfifo *__kfifo = &__tmp->kfifo; \
- if (0) { \
- typeof(__tmp->ptr_const) __dummy __attribute__ ((unused)); \
- __dummy = (typeof(__buf))NULL; \
- } \
- (__recsize) ?\
- __kfifo_in_r(__kfifo, __buf, __n, __recsize) : \
- __kfifo_in(__kfifo, __buf, __n); \
-})
-
-/**
- * kfifo_in_spinlocked - put data into the fifo using a spinlock for locking
- * @fifo: address of the fifo to be used
- * @buf: the data to be added
- * @n: number of elements to be added
- * @lock: pointer to the spinlock to use for locking
- *
- * This macro copies the given values buffer into the fifo and returns the
- * number of copied elements.
- */
-#define kfifo_in_spinlocked(fifo, buf, n, lock) \
-({ \
- unsigned long __flags; \
- unsigned int __ret; \
- spin_lock_irqsave(lock, __flags); \
- __ret = kfifo_in(fifo, buf, n); \
- spin_unlock_irqrestore(lock, __flags); \
- __ret; \
-})
-
-/* alias for kfifo_in_spinlocked, will be removed in a future release */
-#define kfifo_in_locked(fifo, buf, n, lock) \
- kfifo_in_spinlocked(fifo, buf, n, lock)
-
-/**
- * kfifo_out - get data from the fifo
- * @fifo: address of the fifo to be used
- * @buf: pointer to the storage buffer
- * @n: max. number of elements to get
- *
- * This macro get some data from the fifo and return the numbers of elements
- * copied.
- *
- * Note that with only one concurrent reader and one concurrent
- * writer, you don't need extra locking to use these macro.
- */
-#define kfifo_out(fifo, buf, n) \
-__kfifo_uint_must_check_helper( \
-({ \
- typeof((fifo) + 1) __tmp = (fifo); \
- typeof((buf) + 1) __buf = (buf); \
- unsigned long __n = (n); \
- const size_t __recsize = sizeof(*__tmp->rectype); \
- struct __kfifo *__kfifo = &__tmp->kfifo; \
- if (0) { \
- typeof(__tmp->ptr) __dummy = NULL; \
- __buf = __dummy; \
- } \
- (__recsize) ?\
- __kfifo_out_r(__kfifo, __buf, __n, __recsize) : \
- __kfifo_out(__kfifo, __buf, __n); \
-}) \
-)
-
-/**
- * kfifo_out_spinlocked - get data from the fifo using a spinlock for locking
- * @fifo: address of the fifo to be used
- * @buf: pointer to the storage buffer
- * @n: max. number of elements to get
- * @lock: pointer to the spinlock to use for locking
- *
- * This macro get the data from the fifo and return the numbers of elements
- * copied.
- */
-#define kfifo_out_spinlocked(fifo, buf, n, lock) \
-__kfifo_uint_must_check_helper( \
-({ \
- unsigned long __flags; \
- unsigned int __ret; \
- spin_lock_irqsave(lock, __flags); \
- __ret = kfifo_out(fifo, buf, n); \
- spin_unlock_irqrestore(lock, __flags); \
- __ret; \
-}) \
-)
-
-/* alias for kfifo_out_spinlocked, will be removed in a future release */
-#define kfifo_out_locked(fifo, buf, n, lock) \
- kfifo_out_spinlocked(fifo, buf, n, lock)
-
-/**
- * kfifo_from_user - puts some data from user space into the fifo
- * @fifo: address of the fifo to be used
- * @from: pointer to the data to be added
- * @len: the length of the data to be added
- * @copied: pointer to output variable to store the number of copied bytes
- *
- * This macro copies at most @len bytes from the @from into the
- * fifo, depending of the available space and returns -EFAULT/0.
- *
- * Note that with only one concurrent reader and one concurrent
- * writer, you don't need extra locking to use these macro.
- */
-#define kfifo_from_user(fifo, from, len, copied) \
-__kfifo_uint_must_check_helper( \
-({ \
- typeof((fifo) + 1) __tmp = (fifo); \
- const void __user *__from = (from); \
- unsigned int __len = (len); \
- unsigned int *__copied = (copied); \
- const size_t __recsize = sizeof(*__tmp->rectype); \
- struct __kfifo *__kfifo = &__tmp->kfifo; \
- (__recsize) ? \
- __kfifo_from_user_r(__kfifo, __from, __len, __copied, __recsize) : \
- __kfifo_from_user(__kfifo, __from, __len, __copied); \
-}) \
-)
-
-/**
- * kfifo_to_user - copies data from the fifo into user space
- * @fifo: address of the fifo to be used
- * @to: where the data must be copied
- * @len: the size of the destination buffer
- * @copied: pointer to output variable to store the number of copied bytes
- *
- * This macro copies at most @len bytes from the fifo into the
- * @to buffer and returns -EFAULT/0.
- *
- * Note that with only one concurrent reader and one concurrent
- * writer, you don't need extra locking to use these macro.
- */
-#define kfifo_to_user(fifo, to, len, copied) \
-__kfifo_uint_must_check_helper( \
-({ \
- typeof((fifo) + 1) __tmp = (fifo); \
- void __user *__to = (to); \
- unsigned int __len = (len); \
- unsigned int *__copied = (copied); \
- const size_t __recsize = sizeof(*__tmp->rectype); \
- struct __kfifo *__kfifo = &__tmp->kfifo; \
- (__recsize) ? \
- __kfifo_to_user_r(__kfifo, __to, __len, __copied, __recsize) : \
- __kfifo_to_user(__kfifo, __to, __len, __copied); \
-}) \
-)
-
-/**
- * kfifo_dma_in_prepare - setup a scatterlist for DMA input
- * @fifo: address of the fifo to be used
- * @sgl: pointer to the scatterlist array
- * @nents: number of entries in the scatterlist array
- * @len: number of elements to transfer
- *
- * This macro fills a scatterlist for DMA input.
- * It returns the number entries in the scatterlist array.
- *
- * Note that with only one concurrent reader and one concurrent
- * writer, you don't need extra locking to use these macros.
- */
-#define kfifo_dma_in_prepare(fifo, sgl, nents, len) \
-({ \
- typeof((fifo) + 1) __tmp = (fifo); \
- struct scatterlist *__sgl = (sgl); \
- int __nents = (nents); \
- unsigned int __len = (len); \
- const size_t __recsize = sizeof(*__tmp->rectype); \
- struct __kfifo *__kfifo = &__tmp->kfifo; \
- (__recsize) ? \
- __kfifo_dma_in_prepare_r(__kfifo, __sgl, __nents, __len, __recsize) : \
- __kfifo_dma_in_prepare(__kfifo, __sgl, __nents, __len); \
-})
-
-/**
- * kfifo_dma_in_finish - finish a DMA IN operation
- * @fifo: address of the fifo to be used
- * @len: number of bytes to received
- *
- * This macro finish a DMA IN operation. The in counter will be updated by
- * the len parameter. No error checking will be done.
- *
- * Note that with only one concurrent reader and one concurrent
- * writer, you don't need extra locking to use these macros.
- */
-#define kfifo_dma_in_finish(fifo, len) \
-(void)({ \
- typeof((fifo) + 1) __tmp = (fifo); \
- unsigned int __len = (len); \
- const size_t __recsize = sizeof(*__tmp->rectype); \
- struct __kfifo *__kfifo = &__tmp->kfifo; \
- if (__recsize) \
- __kfifo_dma_in_finish_r(__kfifo, __len, __recsize); \
- else \
- __kfifo->in += __len / sizeof(*__tmp->type); \
-})
-
-/**
- * kfifo_dma_out_prepare - setup a scatterlist for DMA output
- * @fifo: address of the fifo to be used
- * @sgl: pointer to the scatterlist array
- * @nents: number of entries in the scatterlist array
- * @len: number of elements to transfer
- *
- * This macro fills a scatterlist for DMA output which at most @len bytes
- * to transfer.
- * It returns the number entries in the scatterlist array.
- * A zero means there is no space available and the scatterlist is not filled.
- *
- * Note that with only one concurrent reader and one concurrent
- * writer, you don't need extra locking to use these macros.
- */
-#define kfifo_dma_out_prepare(fifo, sgl, nents, len) \
-({ \
- typeof((fifo) + 1) __tmp = (fifo); \
- struct scatterlist *__sgl = (sgl); \
- int __nents = (nents); \
- unsigned int __len = (len); \
- const size_t __recsize = sizeof(*__tmp->rectype); \
- struct __kfifo *__kfifo = &__tmp->kfifo; \
- (__recsize) ? \
- __kfifo_dma_out_prepare_r(__kfifo, __sgl, __nents, __len, __recsize) : \
- __kfifo_dma_out_prepare(__kfifo, __sgl, __nents, __len); \
-})
-
-/**
- * kfifo_dma_out_finish - finish a DMA OUT operation
- * @fifo: address of the fifo to be used
- * @len: number of bytes transferd
- *
- * This macro finish a DMA OUT operation. The out counter will be updated by
- * the len parameter. No error checking will be done.
- *
- * Note that with only one concurrent reader and one concurrent
- * writer, you don't need extra locking to use these macros.
- */
-#define kfifo_dma_out_finish(fifo, len) \
-(void)({ \
- typeof((fifo) + 1) __tmp = (fifo); \
- unsigned int __len = (len); \
- const size_t __recsize = sizeof(*__tmp->rectype); \
- struct __kfifo *__kfifo = &__tmp->kfifo; \
- if (__recsize) \
- __kfifo_dma_out_finish_r(__kfifo, __recsize); \
- else \
- __kfifo->out += __len / sizeof(*__tmp->type); \
-})
-
-/**
- * kfifo_out_peek - gets some data from the fifo
- * @fifo: address of the fifo to be used
- * @buf: pointer to the storage buffer
- * @n: max. number of elements to get
- *
- * This macro get the data from the fifo and return the numbers of elements
- * copied. The data is not removed from the fifo.
- *
- * Note that with only one concurrent reader and one concurrent
- * writer, you don't need extra locking to use these macro.
- */
-#define kfifo_out_peek(fifo, buf, n) \
-__kfifo_uint_must_check_helper( \
-({ \
- typeof((fifo) + 1) __tmp = (fifo); \
- typeof((buf) + 1) __buf = (buf); \
- unsigned long __n = (n); \
- const size_t __recsize = sizeof(*__tmp->rectype); \
- struct __kfifo *__kfifo = &__tmp->kfifo; \
- if (0) { \
- typeof(__tmp->ptr) __dummy __attribute__ ((unused)) = NULL; \
- __buf = __dummy; \
- } \
- (__recsize) ? \
- __kfifo_out_peek_r(__kfifo, __buf, __n, __recsize) : \
- __kfifo_out_peek(__kfifo, __buf, __n); \
-}) \
-)
-
-extern int __kfifo_alloc(struct __kfifo *fifo, unsigned int size,
- size_t esize, gfp_t gfp_mask);
-
-extern void __kfifo_free(struct __kfifo *fifo);
-
-extern int __kfifo_init(struct __kfifo *fifo, void *buffer,
- unsigned int size, size_t esize);
-
-extern unsigned int __kfifo_in(struct __kfifo *fifo,
- const void *buf, unsigned int len);
-
-extern unsigned int __kfifo_out(struct __kfifo *fifo,
- void *buf, unsigned int len);
-
-extern int __kfifo_from_user(struct __kfifo *fifo,
- const void __user *from, unsigned long len, unsigned int *copied);
-
-extern int __kfifo_to_user(struct __kfifo *fifo,
- void __user *to, unsigned long len, unsigned int *copied);
-
-extern unsigned int __kfifo_dma_in_prepare(struct __kfifo *fifo,
- struct scatterlist *sgl, int nents, unsigned int len);
-
-extern unsigned int __kfifo_dma_out_prepare(struct __kfifo *fifo,
- struct scatterlist *sgl, int nents, unsigned int len);
-
-extern unsigned int __kfifo_out_peek(struct __kfifo *fifo,
- void *buf, unsigned int len);
-
-extern unsigned int __kfifo_in_r(struct __kfifo *fifo,
- const void *buf, unsigned int len, size_t recsize);
-
-extern unsigned int __kfifo_out_r(struct __kfifo *fifo,
- void *buf, unsigned int len, size_t recsize);
-
-extern int __kfifo_from_user_r(struct __kfifo *fifo,
- const void __user *from, unsigned long len, unsigned int *copied,
- size_t recsize);
-
-extern int __kfifo_to_user_r(struct __kfifo *fifo, void __user *to,
- unsigned long len, unsigned int *copied, size_t recsize);
-
-extern unsigned int __kfifo_dma_in_prepare_r(struct __kfifo *fifo,
- struct scatterlist *sgl, int nents, unsigned int len, size_t recsize);
-
-extern void __kfifo_dma_in_finish_r(struct __kfifo *fifo,
- unsigned int len, size_t recsize);
-
-extern unsigned int __kfifo_dma_out_prepare_r(struct __kfifo *fifo,
- struct scatterlist *sgl, int nents, unsigned int len, size_t recsize);
-
-extern void __kfifo_dma_out_finish_r(struct __kfifo *fifo, size_t recsize);
-
-extern unsigned int __kfifo_len_r(struct __kfifo *fifo, size_t recsize);
-
-extern void __kfifo_skip_r(struct __kfifo *fifo, size_t recsize);
-
-extern unsigned int __kfifo_out_peek_r(struct __kfifo *fifo,
- void *buf, unsigned int len, size_t recsize);
-
-extern unsigned int __kfifo_max_r(unsigned int len, size_t recsize);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/kgdb.h b/ANDROID_3.4.5/include/linux/kgdb.h
deleted file mode 100644
index c4d2fc19..00000000
--- a/ANDROID_3.4.5/include/linux/kgdb.h
+++ /dev/null
@@ -1,313 +0,0 @@
-/*
- * This provides the callbacks and functions that KGDB needs to share between
- * the core, I/O and arch-specific portions.
- *
- * Author: Amit Kale <amitkale@linsyssoft.com> and
- * Tom Rini <trini@kernel.crashing.org>
- *
- * 2001-2004 (c) Amit S. Kale and 2003-2005 (c) MontaVista Software, Inc.
- * This file is licensed under the terms of the GNU General Public License
- * version 2. This program is licensed "as is" without any warranty of any
- * kind, whether express or implied.
- */
-#ifndef _KGDB_H_
-#define _KGDB_H_
-
-#include <linux/serial_8250.h>
-#include <linux/linkage.h>
-#include <linux/init.h>
-#include <linux/atomic.h>
-#ifdef CONFIG_HAVE_ARCH_KGDB
-#include <asm/kgdb.h>
-#endif
-
-#ifdef CONFIG_KGDB
-struct pt_regs;
-
-/**
- * kgdb_skipexception - (optional) exit kgdb_handle_exception early
- * @exception: Exception vector number
- * @regs: Current &struct pt_regs.
- *
- * On some architectures it is required to skip a breakpoint
- * exception when it occurs after a breakpoint has been removed.
- * This can be implemented in the architecture specific portion of kgdb.
- */
-extern int kgdb_skipexception(int exception, struct pt_regs *regs);
-
-struct tasklet_struct;
-struct task_struct;
-struct uart_port;
-
-/**
- * kgdb_breakpoint - compiled in breakpoint
- *
- * This will be implemented as a static inline per architecture. This
- * function is called by the kgdb core to execute an architecture
- * specific trap to cause kgdb to enter the exception processing.
- *
- */
-void kgdb_breakpoint(void);
-
-extern int kgdb_connected;
-extern int kgdb_io_module_registered;
-
-extern atomic_t kgdb_setting_breakpoint;
-extern atomic_t kgdb_cpu_doing_single_step;
-
-extern struct task_struct *kgdb_usethread;
-extern struct task_struct *kgdb_contthread;
-
-enum kgdb_bptype {
- BP_BREAKPOINT = 0,
- BP_HARDWARE_BREAKPOINT,
- BP_WRITE_WATCHPOINT,
- BP_READ_WATCHPOINT,
- BP_ACCESS_WATCHPOINT,
- BP_POKE_BREAKPOINT,
-};
-
-enum kgdb_bpstate {
- BP_UNDEFINED = 0,
- BP_REMOVED,
- BP_SET,
- BP_ACTIVE
-};
-
-struct kgdb_bkpt {
- unsigned long bpt_addr;
- unsigned char saved_instr[BREAK_INSTR_SIZE];
- enum kgdb_bptype type;
- enum kgdb_bpstate state;
-};
-
-struct dbg_reg_def_t {
- char *name;
- int size;
- int offset;
-};
-
-#ifndef DBG_MAX_REG_NUM
-#define DBG_MAX_REG_NUM 0
-#else
-extern struct dbg_reg_def_t dbg_reg_def[];
-extern char *dbg_get_reg(int regno, void *mem, struct pt_regs *regs);
-extern int dbg_set_reg(int regno, void *mem, struct pt_regs *regs);
-#endif
-#ifndef KGDB_MAX_BREAKPOINTS
-# define KGDB_MAX_BREAKPOINTS 1000
-#endif
-
-#define KGDB_HW_BREAKPOINT 1
-
-/*
- * Functions each KGDB-supporting architecture must provide:
- */
-
-/**
- * kgdb_arch_init - Perform any architecture specific initalization.
- *
- * This function will handle the initalization of any architecture
- * specific callbacks.
- */
-extern int kgdb_arch_init(void);
-
-/**
- * kgdb_arch_exit - Perform any architecture specific uninitalization.
- *
- * This function will handle the uninitalization of any architecture
- * specific callbacks, for dynamic registration and unregistration.
- */
-extern void kgdb_arch_exit(void);
-
-/**
- * pt_regs_to_gdb_regs - Convert ptrace regs to GDB regs
- * @gdb_regs: A pointer to hold the registers in the order GDB wants.
- * @regs: The &struct pt_regs of the current process.
- *
- * Convert the pt_regs in @regs into the format for registers that
- * GDB expects, stored in @gdb_regs.
- */
-extern void pt_regs_to_gdb_regs(unsigned long *gdb_regs, struct pt_regs *regs);
-
-/**
- * sleeping_thread_to_gdb_regs - Convert ptrace regs to GDB regs
- * @gdb_regs: A pointer to hold the registers in the order GDB wants.
- * @p: The &struct task_struct of the desired process.
- *
- * Convert the register values of the sleeping process in @p to
- * the format that GDB expects.
- * This function is called when kgdb does not have access to the
- * &struct pt_regs and therefore it should fill the gdb registers
- * @gdb_regs with what has been saved in &struct thread_struct
- * thread field during switch_to.
- */
-extern void
-sleeping_thread_to_gdb_regs(unsigned long *gdb_regs, struct task_struct *p);
-
-/**
- * gdb_regs_to_pt_regs - Convert GDB regs to ptrace regs.
- * @gdb_regs: A pointer to hold the registers we've received from GDB.
- * @regs: A pointer to a &struct pt_regs to hold these values in.
- *
- * Convert the GDB regs in @gdb_regs into the pt_regs, and store them
- * in @regs.
- */
-extern void gdb_regs_to_pt_regs(unsigned long *gdb_regs, struct pt_regs *regs);
-
-/**
- * kgdb_arch_handle_exception - Handle architecture specific GDB packets.
- * @vector: The error vector of the exception that happened.
- * @signo: The signal number of the exception that happened.
- * @err_code: The error code of the exception that happened.
- * @remcom_in_buffer: The buffer of the packet we have read.
- * @remcom_out_buffer: The buffer of %BUFMAX bytes to write a packet into.
- * @regs: The &struct pt_regs of the current process.
- *
- * This function MUST handle the 'c' and 's' command packets,
- * as well packets to set / remove a hardware breakpoint, if used.
- * If there are additional packets which the hardware needs to handle,
- * they are handled here. The code should return -1 if it wants to
- * process more packets, and a %0 or %1 if it wants to exit from the
- * kgdb callback.
- */
-extern int
-kgdb_arch_handle_exception(int vector, int signo, int err_code,
- char *remcom_in_buffer,
- char *remcom_out_buffer,
- struct pt_regs *regs);
-
-/**
- * kgdb_roundup_cpus - Get other CPUs into a holding pattern
- * @flags: Current IRQ state
- *
- * On SMP systems, we need to get the attention of the other CPUs
- * and get them into a known state. This should do what is needed
- * to get the other CPUs to call kgdb_wait(). Note that on some arches,
- * the NMI approach is not used for rounding up all the CPUs. For example,
- * in case of MIPS, smp_call_function() is used to roundup CPUs. In
- * this case, we have to make sure that interrupts are enabled before
- * calling smp_call_function(). The argument to this function is
- * the flags that will be used when restoring the interrupts. There is
- * local_irq_save() call before kgdb_roundup_cpus().
- *
- * On non-SMP systems, this is not called.
- */
-extern void kgdb_roundup_cpus(unsigned long flags);
-
-/**
- * kgdb_arch_set_pc - Generic call back to the program counter
- * @regs: Current &struct pt_regs.
- * @pc: The new value for the program counter
- *
- * This function handles updating the program counter and requires an
- * architecture specific implementation.
- */
-extern void kgdb_arch_set_pc(struct pt_regs *regs, unsigned long pc);
-
-
-/* Optional functions. */
-extern int kgdb_validate_break_address(unsigned long addr);
-extern int kgdb_arch_set_breakpoint(struct kgdb_bkpt *bpt);
-extern int kgdb_arch_remove_breakpoint(struct kgdb_bkpt *bpt);
-
-/**
- * kgdb_arch_late - Perform any architecture specific initalization.
- *
- * This function will handle the late initalization of any
- * architecture specific callbacks. This is an optional function for
- * handling things like late initialization of hw breakpoints. The
- * default implementation does nothing.
- */
-extern void kgdb_arch_late(void);
-
-
-/**
- * struct kgdb_arch - Describe architecture specific values.
- * @gdb_bpt_instr: The instruction to trigger a breakpoint.
- * @flags: Flags for the breakpoint, currently just %KGDB_HW_BREAKPOINT.
- * @set_breakpoint: Allow an architecture to specify how to set a software
- * breakpoint.
- * @remove_breakpoint: Allow an architecture to specify how to remove a
- * software breakpoint.
- * @set_hw_breakpoint: Allow an architecture to specify how to set a hardware
- * breakpoint.
- * @remove_hw_breakpoint: Allow an architecture to specify how to remove a
- * hardware breakpoint.
- * @disable_hw_break: Allow an architecture to specify how to disable
- * hardware breakpoints for a single cpu.
- * @remove_all_hw_break: Allow an architecture to specify how to remove all
- * hardware breakpoints.
- * @correct_hw_break: Allow an architecture to specify how to correct the
- * hardware debug registers.
- */
-struct kgdb_arch {
- unsigned char gdb_bpt_instr[BREAK_INSTR_SIZE];
- unsigned long flags;
-
- int (*set_breakpoint)(unsigned long, char *);
- int (*remove_breakpoint)(unsigned long, char *);
- int (*set_hw_breakpoint)(unsigned long, int, enum kgdb_bptype);
- int (*remove_hw_breakpoint)(unsigned long, int, enum kgdb_bptype);
- void (*disable_hw_break)(struct pt_regs *regs);
- void (*remove_all_hw_break)(void);
- void (*correct_hw_break)(void);
-};
-
-/**
- * struct kgdb_io - Describe the interface for an I/O driver to talk with KGDB.
- * @name: Name of the I/O driver.
- * @read_char: Pointer to a function that will return one char.
- * @write_char: Pointer to a function that will write one char.
- * @flush: Pointer to a function that will flush any pending writes.
- * @init: Pointer to a function that will initialize the device.
- * @pre_exception: Pointer to a function that will do any prep work for
- * the I/O driver.
- * @post_exception: Pointer to a function that will do any cleanup work
- * for the I/O driver.
- * @is_console: 1 if the end device is a console 0 if the I/O device is
- * not a console
- */
-struct kgdb_io {
- const char *name;
- int (*read_char) (void);
- void (*write_char) (u8);
- void (*flush) (void);
- int (*init) (void);
- void (*pre_exception) (void);
- void (*post_exception) (void);
- int is_console;
-};
-
-extern struct kgdb_arch arch_kgdb_ops;
-
-extern unsigned long __weak kgdb_arch_pc(int exception, struct pt_regs *regs);
-
-extern int kgdb_register_io_module(struct kgdb_io *local_kgdb_io_ops);
-extern void kgdb_unregister_io_module(struct kgdb_io *local_kgdb_io_ops);
-extern struct kgdb_io *dbg_io_ops;
-
-extern int kgdb_hex2long(char **ptr, unsigned long *long_val);
-extern char *kgdb_mem2hex(char *mem, char *buf, int count);
-extern int kgdb_hex2mem(char *buf, char *mem, int count);
-
-extern int kgdb_isremovedbreak(unsigned long addr);
-extern void kgdb_schedule_breakpoint(void);
-
-extern int
-kgdb_handle_exception(int ex_vector, int signo, int err_code,
- struct pt_regs *regs);
-extern int kgdb_nmicallback(int cpu, void *regs);
-extern void gdbstub_exit(int status);
-
-extern int kgdb_single_step;
-extern atomic_t kgdb_active;
-#define in_dbg_master() \
- (raw_smp_processor_id() == atomic_read(&kgdb_active))
-extern bool dbg_is_early;
-extern void __init dbg_late_init(void);
-#else /* ! CONFIG_KGDB */
-#define in_dbg_master() (0)
-#define dbg_late_init()
-#endif /* ! CONFIG_KGDB */
-#endif /* _KGDB_H_ */
diff --git a/ANDROID_3.4.5/include/linux/khugepaged.h b/ANDROID_3.4.5/include/linux/khugepaged.h
deleted file mode 100644
index 6b394f0b..00000000
--- a/ANDROID_3.4.5/include/linux/khugepaged.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef _LINUX_KHUGEPAGED_H
-#define _LINUX_KHUGEPAGED_H
-
-#include <linux/sched.h> /* MMF_VM_HUGEPAGE */
-
-#ifdef CONFIG_TRANSPARENT_HUGEPAGE
-extern int __khugepaged_enter(struct mm_struct *mm);
-extern void __khugepaged_exit(struct mm_struct *mm);
-extern int khugepaged_enter_vma_merge(struct vm_area_struct *vma);
-
-#define khugepaged_enabled() \
- (transparent_hugepage_flags & \
- ((1<<TRANSPARENT_HUGEPAGE_FLAG) | \
- (1<<TRANSPARENT_HUGEPAGE_REQ_MADV_FLAG)))
-#define khugepaged_always() \
- (transparent_hugepage_flags & \
- (1<<TRANSPARENT_HUGEPAGE_FLAG))
-#define khugepaged_req_madv() \
- (transparent_hugepage_flags & \
- (1<<TRANSPARENT_HUGEPAGE_REQ_MADV_FLAG))
-#define khugepaged_defrag() \
- (transparent_hugepage_flags & \
- (1<<TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG))
-
-static inline int khugepaged_fork(struct mm_struct *mm, struct mm_struct *oldmm)
-{
- if (test_bit(MMF_VM_HUGEPAGE, &oldmm->flags))
- return __khugepaged_enter(mm);
- return 0;
-}
-
-static inline void khugepaged_exit(struct mm_struct *mm)
-{
- if (test_bit(MMF_VM_HUGEPAGE, &mm->flags))
- __khugepaged_exit(mm);
-}
-
-static inline int khugepaged_enter(struct vm_area_struct *vma)
-{
- if (!test_bit(MMF_VM_HUGEPAGE, &vma->vm_mm->flags))
- if ((khugepaged_always() ||
- (khugepaged_req_madv() &&
- vma->vm_flags & VM_HUGEPAGE)) &&
- !(vma->vm_flags & VM_NOHUGEPAGE))
- if (__khugepaged_enter(vma->vm_mm))
- return -ENOMEM;
- return 0;
-}
-#else /* CONFIG_TRANSPARENT_HUGEPAGE */
-static inline int khugepaged_fork(struct mm_struct *mm, struct mm_struct *oldmm)
-{
- return 0;
-}
-static inline void khugepaged_exit(struct mm_struct *mm)
-{
-}
-static inline int khugepaged_enter(struct vm_area_struct *vma)
-{
- return 0;
-}
-static inline int khugepaged_enter_vma_merge(struct vm_area_struct *vma)
-{
- return 0;
-}
-#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
-
-#endif /* _LINUX_KHUGEPAGED_H */
diff --git a/ANDROID_3.4.5/include/linux/klist.h b/ANDROID_3.4.5/include/linux/klist.h
deleted file mode 100644
index a370ce57..00000000
--- a/ANDROID_3.4.5/include/linux/klist.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * klist.h - Some generic list helpers, extending struct list_head a bit.
- *
- * Implementations are found in lib/klist.c
- *
- *
- * Copyright (C) 2005 Patrick Mochel
- *
- * This file is rleased under the GPL v2.
- */
-
-#ifndef _LINUX_KLIST_H
-#define _LINUX_KLIST_H
-
-#include <linux/spinlock.h>
-#include <linux/kref.h>
-#include <linux/list.h>
-
-struct klist_node;
-struct klist {
- spinlock_t k_lock;
- struct list_head k_list;
- void (*get)(struct klist_node *);
- void (*put)(struct klist_node *);
-} __attribute__ ((aligned (sizeof(void *))));
-
-#define KLIST_INIT(_name, _get, _put) \
- { .k_lock = __SPIN_LOCK_UNLOCKED(_name.k_lock), \
- .k_list = LIST_HEAD_INIT(_name.k_list), \
- .get = _get, \
- .put = _put, }
-
-#define DEFINE_KLIST(_name, _get, _put) \
- struct klist _name = KLIST_INIT(_name, _get, _put)
-
-extern void klist_init(struct klist *k, void (*get)(struct klist_node *),
- void (*put)(struct klist_node *));
-
-struct klist_node {
- void *n_klist; /* never access directly */
- struct list_head n_node;
- struct kref n_ref;
-};
-
-extern void klist_add_tail(struct klist_node *n, struct klist *k);
-extern void klist_add_head(struct klist_node *n, struct klist *k);
-extern void klist_add_after(struct klist_node *n, struct klist_node *pos);
-extern void klist_add_before(struct klist_node *n, struct klist_node *pos);
-
-extern void klist_del(struct klist_node *n);
-extern void klist_remove(struct klist_node *n);
-
-extern int klist_node_attached(struct klist_node *n);
-
-
-struct klist_iter {
- struct klist *i_klist;
- struct klist_node *i_cur;
-};
-
-
-extern void klist_iter_init(struct klist *k, struct klist_iter *i);
-extern void klist_iter_init_node(struct klist *k, struct klist_iter *i,
- struct klist_node *n);
-extern void klist_iter_exit(struct klist_iter *i);
-extern struct klist_node *klist_next(struct klist_iter *i);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/kmalloc_sizes.h b/ANDROID_3.4.5/include/linux/kmalloc_sizes.h
deleted file mode 100644
index e576b848..00000000
--- a/ANDROID_3.4.5/include/linux/kmalloc_sizes.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#if (PAGE_SIZE == 4096)
- CACHE(32)
-#endif
- CACHE(64)
-#if L1_CACHE_BYTES < 64
- CACHE(96)
-#endif
- CACHE(128)
-#if L1_CACHE_BYTES < 128
- CACHE(192)
-#endif
- CACHE(256)
- CACHE(512)
- CACHE(1024)
- CACHE(2048)
- CACHE(4096)
- CACHE(8192)
- CACHE(16384)
- CACHE(32768)
- CACHE(65536)
- CACHE(131072)
-#if KMALLOC_MAX_SIZE >= 262144
- CACHE(262144)
-#endif
-#if KMALLOC_MAX_SIZE >= 524288
- CACHE(524288)
-#endif
-#if KMALLOC_MAX_SIZE >= 1048576
- CACHE(1048576)
-#endif
-#if KMALLOC_MAX_SIZE >= 2097152
- CACHE(2097152)
-#endif
-#if KMALLOC_MAX_SIZE >= 4194304
- CACHE(4194304)
-#endif
-#if KMALLOC_MAX_SIZE >= 8388608
- CACHE(8388608)
-#endif
-#if KMALLOC_MAX_SIZE >= 16777216
- CACHE(16777216)
-#endif
-#if KMALLOC_MAX_SIZE >= 33554432
- CACHE(33554432)
-#endif
diff --git a/ANDROID_3.4.5/include/linux/kmemcheck.h b/ANDROID_3.4.5/include/linux/kmemcheck.h
deleted file mode 100644
index 39f84532..00000000
--- a/ANDROID_3.4.5/include/linux/kmemcheck.h
+++ /dev/null
@@ -1,171 +0,0 @@
-#ifndef LINUX_KMEMCHECK_H
-#define LINUX_KMEMCHECK_H
-
-#include <linux/mm_types.h>
-#include <linux/types.h>
-
-#ifdef CONFIG_KMEMCHECK
-extern int kmemcheck_enabled;
-
-/* The slab-related functions. */
-void kmemcheck_alloc_shadow(struct page *page, int order, gfp_t flags, int node);
-void kmemcheck_free_shadow(struct page *page, int order);
-void kmemcheck_slab_alloc(struct kmem_cache *s, gfp_t gfpflags, void *object,
- size_t size);
-void kmemcheck_slab_free(struct kmem_cache *s, void *object, size_t size);
-
-void kmemcheck_pagealloc_alloc(struct page *p, unsigned int order,
- gfp_t gfpflags);
-
-void kmemcheck_show_pages(struct page *p, unsigned int n);
-void kmemcheck_hide_pages(struct page *p, unsigned int n);
-
-bool kmemcheck_page_is_tracked(struct page *p);
-
-void kmemcheck_mark_unallocated(void *address, unsigned int n);
-void kmemcheck_mark_uninitialized(void *address, unsigned int n);
-void kmemcheck_mark_initialized(void *address, unsigned int n);
-void kmemcheck_mark_freed(void *address, unsigned int n);
-
-void kmemcheck_mark_unallocated_pages(struct page *p, unsigned int n);
-void kmemcheck_mark_uninitialized_pages(struct page *p, unsigned int n);
-void kmemcheck_mark_initialized_pages(struct page *p, unsigned int n);
-
-int kmemcheck_show_addr(unsigned long address);
-int kmemcheck_hide_addr(unsigned long address);
-
-bool kmemcheck_is_obj_initialized(unsigned long addr, size_t size);
-
-/*
- * Bitfield annotations
- *
- * How to use: If you have a struct using bitfields, for example
- *
- * struct a {
- * int x:8, y:8;
- * };
- *
- * then this should be rewritten as
- *
- * struct a {
- * kmemcheck_bitfield_begin(flags);
- * int x:8, y:8;
- * kmemcheck_bitfield_end(flags);
- * };
- *
- * Now the "flags_begin" and "flags_end" members may be used to refer to the
- * beginning and end, respectively, of the bitfield (and things like
- * &x.flags_begin is allowed). As soon as the struct is allocated, the bit-
- * fields should be annotated:
- *
- * struct a *a = kmalloc(sizeof(struct a), GFP_KERNEL);
- * kmemcheck_annotate_bitfield(a, flags);
- */
-#define kmemcheck_bitfield_begin(name) \
- int name##_begin[0];
-
-#define kmemcheck_bitfield_end(name) \
- int name##_end[0];
-
-#define kmemcheck_annotate_bitfield(ptr, name) \
- do { \
- int _n; \
- \
- if (!ptr) \
- break; \
- \
- _n = (long) &((ptr)->name##_end) \
- - (long) &((ptr)->name##_begin); \
- BUILD_BUG_ON(_n < 0); \
- \
- kmemcheck_mark_initialized(&((ptr)->name##_begin), _n); \
- } while (0)
-
-#define kmemcheck_annotate_variable(var) \
- do { \
- kmemcheck_mark_initialized(&(var), sizeof(var)); \
- } while (0) \
-
-#else
-#define kmemcheck_enabled 0
-
-static inline void
-kmemcheck_alloc_shadow(struct page *page, int order, gfp_t flags, int node)
-{
-}
-
-static inline void
-kmemcheck_free_shadow(struct page *page, int order)
-{
-}
-
-static inline void
-kmemcheck_slab_alloc(struct kmem_cache *s, gfp_t gfpflags, void *object,
- size_t size)
-{
-}
-
-static inline void kmemcheck_slab_free(struct kmem_cache *s, void *object,
- size_t size)
-{
-}
-
-static inline void kmemcheck_pagealloc_alloc(struct page *p,
- unsigned int order, gfp_t gfpflags)
-{
-}
-
-static inline bool kmemcheck_page_is_tracked(struct page *p)
-{
- return false;
-}
-
-static inline void kmemcheck_mark_unallocated(void *address, unsigned int n)
-{
-}
-
-static inline void kmemcheck_mark_uninitialized(void *address, unsigned int n)
-{
-}
-
-static inline void kmemcheck_mark_initialized(void *address, unsigned int n)
-{
-}
-
-static inline void kmemcheck_mark_freed(void *address, unsigned int n)
-{
-}
-
-static inline void kmemcheck_mark_unallocated_pages(struct page *p,
- unsigned int n)
-{
-}
-
-static inline void kmemcheck_mark_uninitialized_pages(struct page *p,
- unsigned int n)
-{
-}
-
-static inline void kmemcheck_mark_initialized_pages(struct page *p,
- unsigned int n)
-{
-}
-
-static inline bool kmemcheck_is_obj_initialized(unsigned long addr, size_t size)
-{
- return true;
-}
-
-#define kmemcheck_bitfield_begin(name)
-#define kmemcheck_bitfield_end(name)
-#define kmemcheck_annotate_bitfield(ptr, name) \
- do { \
- } while (0)
-
-#define kmemcheck_annotate_variable(var) \
- do { \
- } while (0)
-
-#endif /* CONFIG_KMEMCHECK */
-
-#endif /* LINUX_KMEMCHECK_H */
diff --git a/ANDROID_3.4.5/include/linux/kmemleak.h b/ANDROID_3.4.5/include/linux/kmemleak.h
deleted file mode 100644
index 2a5e5548..00000000
--- a/ANDROID_3.4.5/include/linux/kmemleak.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * include/linux/kmemleak.h
- *
- * Copyright (C) 2008 ARM Limited
- * Written by Catalin Marinas <catalin.marinas@arm.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.
- *
- * 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
- */
-
-#ifndef __KMEMLEAK_H
-#define __KMEMLEAK_H
-
-#ifdef CONFIG_DEBUG_KMEMLEAK
-
-extern void kmemleak_init(void) __ref;
-extern void kmemleak_alloc(const void *ptr, size_t size, int min_count,
- gfp_t gfp) __ref;
-extern void kmemleak_alloc_percpu(const void __percpu *ptr, size_t size) __ref;
-extern void kmemleak_free(const void *ptr) __ref;
-extern void kmemleak_free_part(const void *ptr, size_t size) __ref;
-extern void kmemleak_free_percpu(const void __percpu *ptr) __ref;
-extern void kmemleak_padding(const void *ptr, unsigned long offset,
- size_t size) __ref;
-extern void kmemleak_not_leak(const void *ptr) __ref;
-extern void kmemleak_ignore(const void *ptr) __ref;
-extern void kmemleak_scan_area(const void *ptr, size_t size, gfp_t gfp) __ref;
-extern void kmemleak_no_scan(const void *ptr) __ref;
-
-static inline void kmemleak_alloc_recursive(const void *ptr, size_t size,
- int min_count, unsigned long flags,
- gfp_t gfp)
-{
- if (!(flags & SLAB_NOLEAKTRACE))
- kmemleak_alloc(ptr, size, min_count, gfp);
-}
-
-static inline void kmemleak_free_recursive(const void *ptr, unsigned long flags)
-{
- if (!(flags & SLAB_NOLEAKTRACE))
- kmemleak_free(ptr);
-}
-
-static inline void kmemleak_erase(void **ptr)
-{
- *ptr = NULL;
-}
-
-#else
-
-static inline void kmemleak_init(void)
-{
-}
-static inline void kmemleak_alloc(const void *ptr, size_t size, int min_count,
- gfp_t gfp)
-{
-}
-static inline void kmemleak_alloc_recursive(const void *ptr, size_t size,
- int min_count, unsigned long flags,
- gfp_t gfp)
-{
-}
-static inline void kmemleak_alloc_percpu(const void __percpu *ptr, size_t size)
-{
-}
-static inline void kmemleak_free(const void *ptr)
-{
-}
-static inline void kmemleak_free_part(const void *ptr, size_t size)
-{
-}
-static inline void kmemleak_free_recursive(const void *ptr, unsigned long flags)
-{
-}
-static inline void kmemleak_free_percpu(const void __percpu *ptr)
-{
-}
-static inline void kmemleak_not_leak(const void *ptr)
-{
-}
-static inline void kmemleak_ignore(const void *ptr)
-{
-}
-static inline void kmemleak_scan_area(const void *ptr, size_t size, gfp_t gfp)
-{
-}
-static inline void kmemleak_erase(void **ptr)
-{
-}
-static inline void kmemleak_no_scan(const void *ptr)
-{
-}
-
-#endif /* CONFIG_DEBUG_KMEMLEAK */
-
-#endif /* __KMEMLEAK_H */
diff --git a/ANDROID_3.4.5/include/linux/kmod.h b/ANDROID_3.4.5/include/linux/kmod.h
deleted file mode 100644
index dd99c329..00000000
--- a/ANDROID_3.4.5/include/linux/kmod.h
+++ /dev/null
@@ -1,138 +0,0 @@
-#ifndef __LINUX_KMOD_H__
-#define __LINUX_KMOD_H__
-
-/*
- * include/linux/kmod.h
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <linux/gfp.h>
-#include <linux/stddef.h>
-#include <linux/errno.h>
-#include <linux/compiler.h>
-#include <linux/workqueue.h>
-#include <linux/sysctl.h>
-
-#define KMOD_PATH_LEN 256
-
-#ifdef CONFIG_MODULES
-extern char modprobe_path[]; /* for sysctl */
-/* modprobe exit status on success, -ve on error. Return value
- * usually useless though. */
-extern __printf(2, 3)
-int __request_module(bool wait, const char *name, ...);
-#define request_module(mod...) __request_module(true, mod)
-#define request_module_nowait(mod...) __request_module(false, mod)
-#define try_then_request_module(x, mod...) \
- ((x) ?: (__request_module(true, mod), (x)))
-#else
-static inline int request_module(const char *name, ...) { return -ENOSYS; }
-static inline int request_module_nowait(const char *name, ...) { return -ENOSYS; }
-#define try_then_request_module(x, mod...) (x)
-#endif
-
-
-struct cred;
-struct file;
-
-#define UMH_NO_WAIT 0 /* don't wait at all */
-#define UMH_WAIT_EXEC 1 /* wait for the exec, but not the process */
-#define UMH_WAIT_PROC 2 /* wait for the process to complete */
-#define UMH_KILLABLE 4 /* wait for EXEC/PROC killable */
-
-struct subprocess_info {
- struct work_struct work;
- struct completion *complete;
- char *path;
- char **argv;
- char **envp;
- int wait;
- int retval;
- int (*init)(struct subprocess_info *info, struct cred *new);
- void (*cleanup)(struct subprocess_info *info);
- void *data;
-};
-
-/* Allocate a subprocess_info structure */
-struct subprocess_info *call_usermodehelper_setup(char *path, char **argv,
- char **envp, gfp_t gfp_mask);
-
-/* Set various pieces of state into the subprocess_info structure */
-void call_usermodehelper_setfns(struct subprocess_info *info,
- int (*init)(struct subprocess_info *info, struct cred *new),
- void (*cleanup)(struct subprocess_info *info),
- void *data);
-
-/* Actually execute the sub-process */
-int call_usermodehelper_exec(struct subprocess_info *info, int wait);
-
-/* Free the subprocess_info. This is only needed if you're not going
- to call call_usermodehelper_exec */
-void call_usermodehelper_freeinfo(struct subprocess_info *info);
-
-static inline int
-call_usermodehelper_fns(char *path, char **argv, char **envp, int wait,
- int (*init)(struct subprocess_info *info, struct cred *new),
- void (*cleanup)(struct subprocess_info *), void *data)
-{
- struct subprocess_info *info;
- gfp_t gfp_mask = (wait == UMH_NO_WAIT) ? GFP_ATOMIC : GFP_KERNEL;
-
- info = call_usermodehelper_setup(path, argv, envp, gfp_mask);
-
- if (info == NULL)
- return -ENOMEM;
-
- call_usermodehelper_setfns(info, init, cleanup, data);
-
- return call_usermodehelper_exec(info, wait);
-}
-
-static inline int
-call_usermodehelper(char *path, char **argv, char **envp, int wait)
-{
- return call_usermodehelper_fns(path, argv, envp, wait,
- NULL, NULL, NULL);
-}
-
-extern struct ctl_table usermodehelper_table[];
-
-enum umh_disable_depth {
- UMH_ENABLED = 0,
- UMH_FREEZING,
- UMH_DISABLED,
-};
-
-extern void usermodehelper_init(void);
-
-extern int __usermodehelper_disable(enum umh_disable_depth depth);
-extern void __usermodehelper_set_disable_depth(enum umh_disable_depth depth);
-
-static inline int usermodehelper_disable(void)
-{
- return __usermodehelper_disable(UMH_DISABLED);
-}
-
-static inline void usermodehelper_enable(void)
-{
- __usermodehelper_set_disable_depth(UMH_ENABLED);
-}
-
-extern int usermodehelper_read_trylock(void);
-extern long usermodehelper_read_lock_wait(long timeout);
-extern void usermodehelper_read_unlock(void);
-
-#endif /* __LINUX_KMOD_H__ */
diff --git a/ANDROID_3.4.5/include/linux/kmsg_dump.h b/ANDROID_3.4.5/include/linux/kmsg_dump.h
deleted file mode 100644
index 35f7237e..00000000
--- a/ANDROID_3.4.5/include/linux/kmsg_dump.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * linux/include/kmsg_dump.h
- *
- * Copyright (C) 2009 Net Insight AB
- *
- * Author: Simon Kagstrom <simon.kagstrom@netinsight.net>
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file COPYING in the main directory of this archive
- * for more details.
- */
-#ifndef _LINUX_KMSG_DUMP_H
-#define _LINUX_KMSG_DUMP_H
-
-#include <linux/errno.h>
-#include <linux/list.h>
-
-/*
- * Keep this list arranged in rough order of priority. Anything listed after
- * KMSG_DUMP_OOPS will not be logged by default unless printk.always_kmsg_dump
- * is passed to the kernel.
- */
-enum kmsg_dump_reason {
- KMSG_DUMP_PANIC,
- KMSG_DUMP_OOPS,
- KMSG_DUMP_EMERG,
- KMSG_DUMP_RESTART,
- KMSG_DUMP_HALT,
- KMSG_DUMP_POWEROFF,
-};
-
-/**
- * struct kmsg_dumper - kernel crash message dumper structure
- * @dump: The callback which gets called on crashes. The buffer is passed
- * as two sections, where s1 (length l1) contains the older
- * messages and s2 (length l2) contains the newer.
- * @list: Entry in the dumper list (private)
- * @registered: Flag that specifies if this is already registered
- */
-struct kmsg_dumper {
- void (*dump)(struct kmsg_dumper *dumper, enum kmsg_dump_reason reason,
- const char *s1, unsigned long l1,
- const char *s2, unsigned long l2);
- struct list_head list;
- int registered;
-};
-
-#ifdef CONFIG_PRINTK
-void kmsg_dump(enum kmsg_dump_reason reason);
-
-int kmsg_dump_register(struct kmsg_dumper *dumper);
-
-int kmsg_dump_unregister(struct kmsg_dumper *dumper);
-#else
-static inline void kmsg_dump(enum kmsg_dump_reason reason)
-{
-}
-
-static inline int kmsg_dump_register(struct kmsg_dumper *dumper)
-{
- return -EINVAL;
-}
-
-static inline int kmsg_dump_unregister(struct kmsg_dumper *dumper)
-{
- return -EINVAL;
-}
-#endif
-
-#endif /* _LINUX_KMSG_DUMP_H */
diff --git a/ANDROID_3.4.5/include/linux/kobj_map.h b/ANDROID_3.4.5/include/linux/kobj_map.h
deleted file mode 100644
index 18ca75ff..00000000
--- a/ANDROID_3.4.5/include/linux/kobj_map.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * kobj_map.h
- */
-
-#ifndef _KOBJ_MAP_H_
-#define _KOBJ_MAP_H_
-
-#include <linux/mutex.h>
-
-typedef struct kobject *kobj_probe_t(dev_t, int *, void *);
-struct kobj_map;
-
-int kobj_map(struct kobj_map *, dev_t, unsigned long, struct module *,
- kobj_probe_t *, int (*)(dev_t, void *), void *);
-void kobj_unmap(struct kobj_map *, dev_t, unsigned long);
-struct kobject *kobj_lookup(struct kobj_map *, dev_t, int *);
-struct kobj_map *kobj_map_init(kobj_probe_t *, struct mutex *);
-
-#endif /* _KOBJ_MAP_H_ */
diff --git a/ANDROID_3.4.5/include/linux/kobject.h b/ANDROID_3.4.5/include/linux/kobject.h
deleted file mode 100644
index fc615a97..00000000
--- a/ANDROID_3.4.5/include/linux/kobject.h
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
- * kobject.h - generic kernel object infrastructure.
- *
- * Copyright (c) 2002-2003 Patrick Mochel
- * Copyright (c) 2002-2003 Open Source Development Labs
- * Copyright (c) 2006-2008 Greg Kroah-Hartman <greg@kroah.com>
- * Copyright (c) 2006-2008 Novell Inc.
- *
- * This file is released under the GPLv2.
- *
- * Please read Documentation/kobject.txt before using the kobject
- * interface, ESPECIALLY the parts about reference counts and object
- * destructors.
- */
-
-#ifndef _KOBJECT_H_
-#define _KOBJECT_H_
-
-#include <linux/types.h>
-#include <linux/list.h>
-#include <linux/sysfs.h>
-#include <linux/compiler.h>
-#include <linux/spinlock.h>
-#include <linux/kref.h>
-#include <linux/kobject_ns.h>
-#include <linux/kernel.h>
-#include <linux/wait.h>
-#include <linux/atomic.h>
-
-#define UEVENT_HELPER_PATH_LEN 256
-#define UEVENT_NUM_ENVP 32 /* number of env pointers */
-#define UEVENT_BUFFER_SIZE 2048 /* buffer for the variables */
-
-/* path to the userspace helper executed on an event */
-extern char uevent_helper[];
-
-/* counter to tag the uevent, read only except for the kobject core */
-extern u64 uevent_seqnum;
-
-/*
- * The actions here must match the index to the string array
- * in lib/kobject_uevent.c
- *
- * Do not add new actions here without checking with the driver-core
- * maintainers. Action strings are not meant to express subsystem
- * or device specific properties. In most cases you want to send a
- * kobject_uevent_env(kobj, KOBJ_CHANGE, env) with additional event
- * specific variables added to the event environment.
- */
-enum kobject_action {
- KOBJ_ADD,
- KOBJ_REMOVE,
- KOBJ_CHANGE,
- KOBJ_MOVE,
- KOBJ_ONLINE,
- KOBJ_OFFLINE,
- KOBJ_MAX
-};
-
-struct kobject {
- const char *name;
- struct list_head entry;
- struct kobject *parent;
- struct kset *kset;
- struct kobj_type *ktype;
- struct sysfs_dirent *sd;
- struct kref kref;
- unsigned int state_initialized:1;
- unsigned int state_in_sysfs:1;
- unsigned int state_add_uevent_sent:1;
- unsigned int state_remove_uevent_sent:1;
- unsigned int uevent_suppress:1;
-};
-
-extern __printf(2, 3)
-int kobject_set_name(struct kobject *kobj, const char *name, ...);
-extern int kobject_set_name_vargs(struct kobject *kobj, const char *fmt,
- va_list vargs);
-
-static inline const char *kobject_name(const struct kobject *kobj)
-{
- return kobj->name;
-}
-
-extern void kobject_init(struct kobject *kobj, struct kobj_type *ktype);
-extern __printf(3, 4) __must_check
-int kobject_add(struct kobject *kobj, struct kobject *parent,
- const char *fmt, ...);
-extern __printf(4, 5) __must_check
-int kobject_init_and_add(struct kobject *kobj,
- struct kobj_type *ktype, struct kobject *parent,
- const char *fmt, ...);
-
-extern void kobject_del(struct kobject *kobj);
-
-extern struct kobject * __must_check kobject_create(void);
-extern struct kobject * __must_check kobject_create_and_add(const char *name,
- struct kobject *parent);
-
-extern int __must_check kobject_rename(struct kobject *, const char *new_name);
-extern int __must_check kobject_move(struct kobject *, struct kobject *);
-
-extern struct kobject *kobject_get(struct kobject *kobj);
-extern void kobject_put(struct kobject *kobj);
-
-extern char *kobject_get_path(struct kobject *kobj, gfp_t flag);
-
-struct kobj_type {
- void (*release)(struct kobject *kobj);
- const struct sysfs_ops *sysfs_ops;
- struct attribute **default_attrs;
- const struct kobj_ns_type_operations *(*child_ns_type)(struct kobject *kobj);
- const void *(*namespace)(struct kobject *kobj);
-};
-
-struct kobj_uevent_env {
- char *envp[UEVENT_NUM_ENVP];
- int envp_idx;
- char buf[UEVENT_BUFFER_SIZE];
- int buflen;
-};
-
-struct kset_uevent_ops {
- int (* const filter)(struct kset *kset, struct kobject *kobj);
- const char *(* const name)(struct kset *kset, struct kobject *kobj);
- int (* const uevent)(struct kset *kset, struct kobject *kobj,
- struct kobj_uevent_env *env);
-};
-
-struct kobj_attribute {
- struct attribute attr;
- ssize_t (*show)(struct kobject *kobj, struct kobj_attribute *attr,
- char *buf);
- ssize_t (*store)(struct kobject *kobj, struct kobj_attribute *attr,
- const char *buf, size_t count);
-};
-
-extern const struct sysfs_ops kobj_sysfs_ops;
-
-struct sock;
-
-/**
- * struct kset - a set of kobjects of a specific type, belonging to a specific subsystem.
- *
- * A kset defines a group of kobjects. They can be individually
- * different "types" but overall these kobjects all want to be grouped
- * together and operated on in the same manner. ksets are used to
- * define the attribute callbacks and other common events that happen to
- * a kobject.
- *
- * @list: the list of all kobjects for this kset
- * @list_lock: a lock for iterating over the kobjects
- * @kobj: the embedded kobject for this kset (recursion, isn't it fun...)
- * @uevent_ops: the set of uevent operations for this kset. These are
- * called whenever a kobject has something happen to it so that the kset
- * can add new environment variables, or filter out the uevents if so
- * desired.
- */
-struct kset {
- struct list_head list;
- spinlock_t list_lock;
- struct kobject kobj;
- const struct kset_uevent_ops *uevent_ops;
-};
-
-extern void kset_init(struct kset *kset);
-extern int __must_check kset_register(struct kset *kset);
-extern void kset_unregister(struct kset *kset);
-extern struct kset * __must_check kset_create_and_add(const char *name,
- const struct kset_uevent_ops *u,
- struct kobject *parent_kobj);
-
-static inline struct kset *to_kset(struct kobject *kobj)
-{
- return kobj ? container_of(kobj, struct kset, kobj) : NULL;
-}
-
-static inline struct kset *kset_get(struct kset *k)
-{
- return k ? to_kset(kobject_get(&k->kobj)) : NULL;
-}
-
-static inline void kset_put(struct kset *k)
-{
- kobject_put(&k->kobj);
-}
-
-static inline struct kobj_type *get_ktype(struct kobject *kobj)
-{
- return kobj->ktype;
-}
-
-extern struct kobject *kset_find_obj(struct kset *, const char *);
-
-/* The global /sys/kernel/ kobject for people to chain off of */
-extern struct kobject *kernel_kobj;
-/* The global /sys/kernel/mm/ kobject for people to chain off of */
-extern struct kobject *mm_kobj;
-/* The global /sys/hypervisor/ kobject for people to chain off of */
-extern struct kobject *hypervisor_kobj;
-/* The global /sys/power/ kobject for people to chain off of */
-extern struct kobject *power_kobj;
-/* The global /sys/firmware/ kobject for people to chain off of */
-extern struct kobject *firmware_kobj;
-
-#if defined(CONFIG_HOTPLUG)
-int kobject_uevent(struct kobject *kobj, enum kobject_action action);
-int kobject_uevent_env(struct kobject *kobj, enum kobject_action action,
- char *envp[]);
-
-__printf(2, 3)
-int add_uevent_var(struct kobj_uevent_env *env, const char *format, ...);
-
-int kobject_action_type(const char *buf, size_t count,
- enum kobject_action *type);
-#else
-static inline int kobject_uevent(struct kobject *kobj,
- enum kobject_action action)
-{ return 0; }
-static inline int kobject_uevent_env(struct kobject *kobj,
- enum kobject_action action,
- char *envp[])
-{ return 0; }
-
-static inline __printf(2, 3)
-int add_uevent_var(struct kobj_uevent_env *env, const char *format, ...)
-{ return 0; }
-
-static inline int kobject_action_type(const char *buf, size_t count,
- enum kobject_action *type)
-{ return -EINVAL; }
-#endif
-
-#endif /* _KOBJECT_H_ */
diff --git a/ANDROID_3.4.5/include/linux/kobject_ns.h b/ANDROID_3.4.5/include/linux/kobject_ns.h
deleted file mode 100644
index f66b065a..00000000
--- a/ANDROID_3.4.5/include/linux/kobject_ns.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* Kernel object name space definitions
- *
- * Copyright (c) 2002-2003 Patrick Mochel
- * Copyright (c) 2002-2003 Open Source Development Labs
- * Copyright (c) 2006-2008 Greg Kroah-Hartman <greg@kroah.com>
- * Copyright (c) 2006-2008 Novell Inc.
- *
- * Split from kobject.h by David Howells (dhowells@redhat.com)
- *
- * This file is released under the GPLv2.
- *
- * Please read Documentation/kobject.txt before using the kobject
- * interface, ESPECIALLY the parts about reference counts and object
- * destructors.
- */
-
-#ifndef _LINUX_KOBJECT_NS_H
-#define _LINUX_KOBJECT_NS_H
-
-struct sock;
-struct kobject;
-
-/*
- * Namespace types which are used to tag kobjects and sysfs entries.
- * Network namespace will likely be the first.
- */
-enum kobj_ns_type {
- KOBJ_NS_TYPE_NONE = 0,
- KOBJ_NS_TYPE_NET,
- KOBJ_NS_TYPES
-};
-
-/*
- * Callbacks so sysfs can determine namespaces
- * @grab_current_ns: return a new reference to calling task's namespace
- * @netlink_ns: return namespace to which a sock belongs (right?)
- * @initial_ns: return the initial namespace (i.e. init_net_ns)
- * @drop_ns: drops a reference to namespace
- */
-struct kobj_ns_type_operations {
- enum kobj_ns_type type;
- void *(*grab_current_ns)(void);
- const void *(*netlink_ns)(struct sock *sk);
- const void *(*initial_ns)(void);
- void (*drop_ns)(void *);
-};
-
-int kobj_ns_type_register(const struct kobj_ns_type_operations *ops);
-int kobj_ns_type_registered(enum kobj_ns_type type);
-const struct kobj_ns_type_operations *kobj_child_ns_ops(struct kobject *parent);
-const struct kobj_ns_type_operations *kobj_ns_ops(struct kobject *kobj);
-
-void *kobj_ns_grab_current(enum kobj_ns_type type);
-const void *kobj_ns_netlink(enum kobj_ns_type type, struct sock *sk);
-const void *kobj_ns_initial(enum kobj_ns_type type);
-void kobj_ns_drop(enum kobj_ns_type type, void *ns);
-
-#endif /* _LINUX_KOBJECT_NS_H */
diff --git a/ANDROID_3.4.5/include/linux/kprobes.h b/ANDROID_3.4.5/include/linux/kprobes.h
deleted file mode 100644
index b6e1f8c0..00000000
--- a/ANDROID_3.4.5/include/linux/kprobes.h
+++ /dev/null
@@ -1,440 +0,0 @@
-#ifndef _LINUX_KPROBES_H
-#define _LINUX_KPROBES_H
-/*
- * Kernel Probes (KProbes)
- * include/linux/kprobes.h
- *
- * 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.
- *
- * Copyright (C) IBM Corporation, 2002, 2004
- *
- * 2002-Oct Created by Vamsi Krishna S <vamsi_krishna@in.ibm.com> Kernel
- * Probes initial implementation ( includes suggestions from
- * Rusty Russell).
- * 2004-July Suparna Bhattacharya <suparna@in.ibm.com> added jumper probes
- * interface to access function arguments.
- * 2005-May Hien Nguyen <hien@us.ibm.com> and Jim Keniston
- * <jkenisto@us.ibm.com> and Prasanna S Panchamukhi
- * <prasanna@in.ibm.com> added function-return probes.
- */
-#include <linux/linkage.h>
-#include <linux/list.h>
-#include <linux/notifier.h>
-#include <linux/smp.h>
-#include <linux/bug.h>
-#include <linux/percpu.h>
-#include <linux/spinlock.h>
-#include <linux/rcupdate.h>
-#include <linux/mutex.h>
-
-#ifdef CONFIG_KPROBES
-#include <asm/kprobes.h>
-
-/* kprobe_status settings */
-#define KPROBE_HIT_ACTIVE 0x00000001
-#define KPROBE_HIT_SS 0x00000002
-#define KPROBE_REENTER 0x00000004
-#define KPROBE_HIT_SSDONE 0x00000008
-
-/* Attach to insert probes on any functions which should be ignored*/
-#define __kprobes __attribute__((__section__(".kprobes.text")))
-#else /* CONFIG_KPROBES */
-typedef int kprobe_opcode_t;
-struct arch_specific_insn {
- int dummy;
-};
-#define __kprobes
-#endif /* CONFIG_KPROBES */
-
-struct kprobe;
-struct pt_regs;
-struct kretprobe;
-struct kretprobe_instance;
-typedef int (*kprobe_pre_handler_t) (struct kprobe *, struct pt_regs *);
-typedef int (*kprobe_break_handler_t) (struct kprobe *, struct pt_regs *);
-typedef void (*kprobe_post_handler_t) (struct kprobe *, struct pt_regs *,
- unsigned long flags);
-typedef int (*kprobe_fault_handler_t) (struct kprobe *, struct pt_regs *,
- int trapnr);
-typedef int (*kretprobe_handler_t) (struct kretprobe_instance *,
- struct pt_regs *);
-
-struct kprobe {
- struct hlist_node hlist;
-
- /* list of kprobes for multi-handler support */
- struct list_head list;
-
- /*count the number of times this probe was temporarily disarmed */
- unsigned long nmissed;
-
- /* location of the probe point */
- kprobe_opcode_t *addr;
-
- /* Allow user to indicate symbol name of the probe point */
- const char *symbol_name;
-
- /* Offset into the symbol */
- unsigned int offset;
-
- /* Called before addr is executed. */
- kprobe_pre_handler_t pre_handler;
-
- /* Called after addr is executed, unless... */
- kprobe_post_handler_t post_handler;
-
- /*
- * ... called if executing addr causes a fault (eg. page fault).
- * Return 1 if it handled fault, otherwise kernel will see it.
- */
- kprobe_fault_handler_t fault_handler;
-
- /*
- * ... called if breakpoint trap occurs in probe handler.
- * Return 1 if it handled break, otherwise kernel will see it.
- */
- kprobe_break_handler_t break_handler;
-
- /* Saved opcode (which has been replaced with breakpoint) */
- kprobe_opcode_t opcode;
-
- /* copy of the original instruction */
- struct arch_specific_insn ainsn;
-
- /*
- * Indicates various status flags.
- * Protected by kprobe_mutex after this kprobe is registered.
- */
- u32 flags;
-};
-
-/* Kprobe status flags */
-#define KPROBE_FLAG_GONE 1 /* breakpoint has already gone */
-#define KPROBE_FLAG_DISABLED 2 /* probe is temporarily disabled */
-#define KPROBE_FLAG_OPTIMIZED 4 /*
- * probe is really optimized.
- * NOTE:
- * this flag is only for optimized_kprobe.
- */
-
-/* Has this kprobe gone ? */
-static inline int kprobe_gone(struct kprobe *p)
-{
- return p->flags & KPROBE_FLAG_GONE;
-}
-
-/* Is this kprobe disabled ? */
-static inline int kprobe_disabled(struct kprobe *p)
-{
- return p->flags & (KPROBE_FLAG_DISABLED | KPROBE_FLAG_GONE);
-}
-
-/* Is this kprobe really running optimized path ? */
-static inline int kprobe_optimized(struct kprobe *p)
-{
- return p->flags & KPROBE_FLAG_OPTIMIZED;
-}
-/*
- * Special probe type that uses setjmp-longjmp type tricks to resume
- * execution at a specified entry with a matching prototype corresponding
- * to the probed function - a trick to enable arguments to become
- * accessible seamlessly by probe handling logic.
- * Note:
- * Because of the way compilers allocate stack space for local variables
- * etc upfront, regardless of sub-scopes within a function, this mirroring
- * principle currently works only for probes placed on function entry points.
- */
-struct jprobe {
- struct kprobe kp;
- void *entry; /* probe handling code to jump to */
-};
-
-/* For backward compatibility with old code using JPROBE_ENTRY() */
-#define JPROBE_ENTRY(handler) (handler)
-
-/*
- * Function-return probe -
- * Note:
- * User needs to provide a handler function, and initialize maxactive.
- * maxactive - The maximum number of instances of the probed function that
- * can be active concurrently.
- * nmissed - tracks the number of times the probed function's return was
- * ignored, due to maxactive being too low.
- *
- */
-struct kretprobe {
- struct kprobe kp;
- kretprobe_handler_t handler;
- kretprobe_handler_t entry_handler;
- int maxactive;
- int nmissed;
- size_t data_size;
- struct hlist_head free_instances;
- raw_spinlock_t lock;
-};
-
-struct kretprobe_instance {
- struct hlist_node hlist;
- struct kretprobe *rp;
- kprobe_opcode_t *ret_addr;
- struct task_struct *task;
- char data[0];
-};
-
-struct kretprobe_blackpoint {
- const char *name;
- void *addr;
-};
-
-struct kprobe_blackpoint {
- const char *name;
- unsigned long start_addr;
- unsigned long range;
-};
-
-#ifdef CONFIG_KPROBES
-DECLARE_PER_CPU(struct kprobe *, current_kprobe);
-DECLARE_PER_CPU(struct kprobe_ctlblk, kprobe_ctlblk);
-
-/*
- * For #ifdef avoidance:
- */
-static inline int kprobes_built_in(void)
-{
- return 1;
-}
-
-#ifdef CONFIG_KRETPROBES
-extern void arch_prepare_kretprobe(struct kretprobe_instance *ri,
- struct pt_regs *regs);
-extern int arch_trampoline_kprobe(struct kprobe *p);
-#else /* CONFIG_KRETPROBES */
-static inline void arch_prepare_kretprobe(struct kretprobe *rp,
- struct pt_regs *regs)
-{
-}
-static inline int arch_trampoline_kprobe(struct kprobe *p)
-{
- return 0;
-}
-#endif /* CONFIG_KRETPROBES */
-
-extern struct kretprobe_blackpoint kretprobe_blacklist[];
-
-static inline void kretprobe_assert(struct kretprobe_instance *ri,
- unsigned long orig_ret_address, unsigned long trampoline_address)
-{
- if (!orig_ret_address || (orig_ret_address == trampoline_address)) {
- printk("kretprobe BUG!: Processing kretprobe %p @ %p\n",
- ri->rp, ri->rp->kp.addr);
- BUG();
- }
-}
-
-#ifdef CONFIG_KPROBES_SANITY_TEST
-extern int init_test_probes(void);
-#else
-static inline int init_test_probes(void)
-{
- return 0;
-}
-#endif /* CONFIG_KPROBES_SANITY_TEST */
-
-extern int arch_prepare_kprobe(struct kprobe *p);
-extern void arch_arm_kprobe(struct kprobe *p);
-extern void arch_disarm_kprobe(struct kprobe *p);
-extern int arch_init_kprobes(void);
-extern void show_registers(struct pt_regs *regs);
-extern kprobe_opcode_t *get_insn_slot(void);
-extern void free_insn_slot(kprobe_opcode_t *slot, int dirty);
-extern void kprobes_inc_nmissed_count(struct kprobe *p);
-
-#ifdef CONFIG_OPTPROBES
-/*
- * Internal structure for direct jump optimized probe
- */
-struct optimized_kprobe {
- struct kprobe kp;
- struct list_head list; /* list for optimizing queue */
- struct arch_optimized_insn optinsn;
-};
-
-/* Architecture dependent functions for direct jump optimization */
-extern int arch_prepared_optinsn(struct arch_optimized_insn *optinsn);
-extern int arch_check_optimized_kprobe(struct optimized_kprobe *op);
-extern int arch_prepare_optimized_kprobe(struct optimized_kprobe *op);
-extern void arch_remove_optimized_kprobe(struct optimized_kprobe *op);
-extern void arch_optimize_kprobes(struct list_head *oplist);
-extern void arch_unoptimize_kprobes(struct list_head *oplist,
- struct list_head *done_list);
-extern void arch_unoptimize_kprobe(struct optimized_kprobe *op);
-extern kprobe_opcode_t *get_optinsn_slot(void);
-extern void free_optinsn_slot(kprobe_opcode_t *slot, int dirty);
-extern int arch_within_optimized_kprobe(struct optimized_kprobe *op,
- unsigned long addr);
-
-extern void opt_pre_handler(struct kprobe *p, struct pt_regs *regs);
-
-#ifdef CONFIG_SYSCTL
-extern int sysctl_kprobes_optimization;
-extern int proc_kprobes_optimization_handler(struct ctl_table *table,
- int write, void __user *buffer,
- size_t *length, loff_t *ppos);
-#endif
-
-#endif /* CONFIG_OPTPROBES */
-
-/* Get the kprobe at this addr (if any) - called with preemption disabled */
-struct kprobe *get_kprobe(void *addr);
-void kretprobe_hash_lock(struct task_struct *tsk,
- struct hlist_head **head, unsigned long *flags);
-void kretprobe_hash_unlock(struct task_struct *tsk, unsigned long *flags);
-struct hlist_head * kretprobe_inst_table_head(struct task_struct *tsk);
-
-/* kprobe_running() will just return the current_kprobe on this CPU */
-static inline struct kprobe *kprobe_running(void)
-{
- return (__this_cpu_read(current_kprobe));
-}
-
-static inline void reset_current_kprobe(void)
-{
- __this_cpu_write(current_kprobe, NULL);
-}
-
-static inline struct kprobe_ctlblk *get_kprobe_ctlblk(void)
-{
- return (&__get_cpu_var(kprobe_ctlblk));
-}
-
-int register_kprobe(struct kprobe *p);
-void unregister_kprobe(struct kprobe *p);
-int register_kprobes(struct kprobe **kps, int num);
-void unregister_kprobes(struct kprobe **kps, int num);
-int setjmp_pre_handler(struct kprobe *, struct pt_regs *);
-int longjmp_break_handler(struct kprobe *, struct pt_regs *);
-int register_jprobe(struct jprobe *p);
-void unregister_jprobe(struct jprobe *p);
-int register_jprobes(struct jprobe **jps, int num);
-void unregister_jprobes(struct jprobe **jps, int num);
-void jprobe_return(void);
-unsigned long arch_deref_entry_point(void *);
-
-int register_kretprobe(struct kretprobe *rp);
-void unregister_kretprobe(struct kretprobe *rp);
-int register_kretprobes(struct kretprobe **rps, int num);
-void unregister_kretprobes(struct kretprobe **rps, int num);
-
-void kprobe_flush_task(struct task_struct *tk);
-void recycle_rp_inst(struct kretprobe_instance *ri, struct hlist_head *head);
-
-int disable_kprobe(struct kprobe *kp);
-int enable_kprobe(struct kprobe *kp);
-
-void dump_kprobe(struct kprobe *kp);
-
-#else /* !CONFIG_KPROBES: */
-
-static inline int kprobes_built_in(void)
-{
- return 0;
-}
-static inline int kprobe_fault_handler(struct pt_regs *regs, int trapnr)
-{
- return 0;
-}
-static inline struct kprobe *get_kprobe(void *addr)
-{
- return NULL;
-}
-static inline struct kprobe *kprobe_running(void)
-{
- return NULL;
-}
-static inline int register_kprobe(struct kprobe *p)
-{
- return -ENOSYS;
-}
-static inline int register_kprobes(struct kprobe **kps, int num)
-{
- return -ENOSYS;
-}
-static inline void unregister_kprobe(struct kprobe *p)
-{
-}
-static inline void unregister_kprobes(struct kprobe **kps, int num)
-{
-}
-static inline int register_jprobe(struct jprobe *p)
-{
- return -ENOSYS;
-}
-static inline int register_jprobes(struct jprobe **jps, int num)
-{
- return -ENOSYS;
-}
-static inline void unregister_jprobe(struct jprobe *p)
-{
-}
-static inline void unregister_jprobes(struct jprobe **jps, int num)
-{
-}
-static inline void jprobe_return(void)
-{
-}
-static inline int register_kretprobe(struct kretprobe *rp)
-{
- return -ENOSYS;
-}
-static inline int register_kretprobes(struct kretprobe **rps, int num)
-{
- return -ENOSYS;
-}
-static inline void unregister_kretprobe(struct kretprobe *rp)
-{
-}
-static inline void unregister_kretprobes(struct kretprobe **rps, int num)
-{
-}
-static inline void kprobe_flush_task(struct task_struct *tk)
-{
-}
-static inline int disable_kprobe(struct kprobe *kp)
-{
- return -ENOSYS;
-}
-static inline int enable_kprobe(struct kprobe *kp)
-{
- return -ENOSYS;
-}
-#endif /* CONFIG_KPROBES */
-static inline int disable_kretprobe(struct kretprobe *rp)
-{
- return disable_kprobe(&rp->kp);
-}
-static inline int enable_kretprobe(struct kretprobe *rp)
-{
- return enable_kprobe(&rp->kp);
-}
-static inline int disable_jprobe(struct jprobe *jp)
-{
- return disable_kprobe(&jp->kp);
-}
-static inline int enable_jprobe(struct jprobe *jp)
-{
- return enable_kprobe(&jp->kp);
-}
-
-#endif /* _LINUX_KPROBES_H */
diff --git a/ANDROID_3.4.5/include/linux/kref.h b/ANDROID_3.4.5/include/linux/kref.h
deleted file mode 100644
index 9c07dceb..00000000
--- a/ANDROID_3.4.5/include/linux/kref.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * kref.h - library routines for handling generic reference counted objects
- *
- * Copyright (C) 2004 Greg Kroah-Hartman <greg@kroah.com>
- * Copyright (C) 2004 IBM Corp.
- *
- * based on kobject.h which was:
- * Copyright (C) 2002-2003 Patrick Mochel <mochel@osdl.org>
- * Copyright (C) 2002-2003 Open Source Development Labs
- *
- * This file is released under the GPLv2.
- *
- */
-
-#ifndef _KREF_H_
-#define _KREF_H_
-
-#include <linux/bug.h>
-#include <linux/atomic.h>
-#include <linux/kernel.h>
-
-struct kref {
- atomic_t refcount;
-};
-
-/**
- * kref_init - initialize object.
- * @kref: object in question.
- */
-static inline void kref_init(struct kref *kref)
-{
- atomic_set(&kref->refcount, 1);
-}
-
-/**
- * kref_get - increment refcount for object.
- * @kref: object.
- */
-static inline void kref_get(struct kref *kref)
-{
- WARN_ON(!atomic_read(&kref->refcount));
- atomic_inc(&kref->refcount);
-}
-
-/**
- * kref_sub - subtract a number of refcounts for object.
- * @kref: object.
- * @count: Number of recounts to subtract.
- * @release: pointer to the function that will clean up the object when the
- * last reference to the object is released.
- * This pointer is required, and it is not acceptable to pass kfree
- * in as this function. If the caller does pass kfree to this
- * function, you will be publicly mocked mercilessly by the kref
- * maintainer, and anyone else who happens to notice it. You have
- * been warned.
- *
- * Subtract @count from the refcount, and if 0, call release().
- * Return 1 if the object was removed, otherwise return 0. Beware, if this
- * function returns 0, you still can not count on the kref from remaining in
- * memory. Only use the return value if you want to see if the kref is now
- * gone, not present.
- */
-static inline int kref_sub(struct kref *kref, unsigned int count,
- void (*release)(struct kref *kref))
-{
- WARN_ON(release == NULL);
-
- if (atomic_sub_and_test((int) count, &kref->refcount)) {
- release(kref);
- return 1;
- }
- return 0;
-}
-
-/**
- * kref_put - decrement refcount for object.
- * @kref: object.
- * @release: pointer to the function that will clean up the object when the
- * last reference to the object is released.
- * This pointer is required, and it is not acceptable to pass kfree
- * in as this function. If the caller does pass kfree to this
- * function, you will be publicly mocked mercilessly by the kref
- * maintainer, and anyone else who happens to notice it. You have
- * been warned.
- *
- * Decrement the refcount, and if 0, call release().
- * Return 1 if the object was removed, otherwise return 0. Beware, if this
- * function returns 0, you still can not count on the kref from remaining in
- * memory. Only use the return value if you want to see if the kref is now
- * gone, not present.
- */
-static inline int kref_put(struct kref *kref, void (*release)(struct kref *kref))
-{
- return kref_sub(kref, 1, release);
-}
-#endif /* _KREF_H_ */
diff --git a/ANDROID_3.4.5/include/linux/ks0108.h b/ANDROID_3.4.5/include/linux/ks0108.h
deleted file mode 100644
index cb311798..00000000
--- a/ANDROID_3.4.5/include/linux/ks0108.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Filename: ks0108.h
- * Version: 0.1.0
- * Description: ks0108 LCD Controller driver header
- * License: GPLv2
- *
- * Author: Copyright (C) Miguel Ojeda Sandonis
- * Date: 2006-10-31
- *
- * 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.
- *
- * 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
- *
- */
-
-#ifndef _KS0108_H_
-#define _KS0108_H_
-
-/* Write a byte to the data port */
-extern void ks0108_writedata(unsigned char byte);
-
-/* Write a byte to the control port */
-extern void ks0108_writecontrol(unsigned char byte);
-
-/* Set the controller's current display state (0..1) */
-extern void ks0108_displaystate(unsigned char state);
-
-/* Set the controller's current startline (0..63) */
-extern void ks0108_startline(unsigned char startline);
-
-/* Set the controller's current address (0..63) */
-extern void ks0108_address(unsigned char address);
-
-/* Set the controller's current page (0..7) */
-extern void ks0108_page(unsigned char page);
-
-/* Is the module inited? */
-extern unsigned char ks0108_isinited(void);
-
-#endif /* _KS0108_H_ */
diff --git a/ANDROID_3.4.5/include/linux/ks8842.h b/ANDROID_3.4.5/include/linux/ks8842.h
deleted file mode 100644
index 14ba4452..00000000
--- a/ANDROID_3.4.5/include/linux/ks8842.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * ks8842.h KS8842 platform data struct definition
- * Copyright (c) 2010 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.
- *
- * 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.
- */
-
-#ifndef _LINUX_KS8842_H
-#define _LINUX_KS8842_H
-
-#include <linux/if_ether.h>
-
-/**
- * struct ks8842_platform_data - Platform data of the KS8842 network driver
- * @macaddr: The MAC address of the device, set to all 0:s to use the on in
- * the chip.
- * @rx_dma_channel: The DMA channel to use for RX, -1 for none.
- * @tx_dma_channel: The DMA channel to use for TX, -1 for none.
- *
- */
-struct ks8842_platform_data {
- u8 macaddr[ETH_ALEN];
- int rx_dma_channel;
- int tx_dma_channel;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ksm.h b/ANDROID_3.4.5/include/linux/ksm.h
deleted file mode 100644
index 3319a696..00000000
--- a/ANDROID_3.4.5/include/linux/ksm.h
+++ /dev/null
@@ -1,145 +0,0 @@
-#ifndef __LINUX_KSM_H
-#define __LINUX_KSM_H
-/*
- * Memory merging support.
- *
- * This code enables dynamic sharing of identical pages found in different
- * memory areas, even if they are not shared by fork().
- */
-
-#include <linux/bitops.h>
-#include <linux/mm.h>
-#include <linux/pagemap.h>
-#include <linux/rmap.h>
-#include <linux/sched.h>
-
-struct stable_node;
-struct mem_cgroup;
-
-struct page *ksm_does_need_to_copy(struct page *page,
- struct vm_area_struct *vma, unsigned long address);
-
-#ifdef CONFIG_KSM
-int ksm_madvise(struct vm_area_struct *vma, unsigned long start,
- unsigned long end, int advice, unsigned long *vm_flags);
-int __ksm_enter(struct mm_struct *mm);
-void __ksm_exit(struct mm_struct *mm);
-
-static inline int ksm_fork(struct mm_struct *mm, struct mm_struct *oldmm)
-{
- if (test_bit(MMF_VM_MERGEABLE, &oldmm->flags))
- return __ksm_enter(mm);
- return 0;
-}
-
-static inline void ksm_exit(struct mm_struct *mm)
-{
- if (test_bit(MMF_VM_MERGEABLE, &mm->flags))
- __ksm_exit(mm);
-}
-
-/*
- * A KSM page is one of those write-protected "shared pages" or "merged pages"
- * which KSM maps into multiple mms, wherever identical anonymous page content
- * is found in VM_MERGEABLE vmas. It's a PageAnon page, pointing not to any
- * anon_vma, but to that page's node of the stable tree.
- */
-static inline int PageKsm(struct page *page)
-{
- return ((unsigned long)page->mapping & PAGE_MAPPING_FLAGS) ==
- (PAGE_MAPPING_ANON | PAGE_MAPPING_KSM);
-}
-
-static inline struct stable_node *page_stable_node(struct page *page)
-{
- return PageKsm(page) ? page_rmapping(page) : NULL;
-}
-
-static inline void set_page_stable_node(struct page *page,
- struct stable_node *stable_node)
-{
- page->mapping = (void *)stable_node +
- (PAGE_MAPPING_ANON | PAGE_MAPPING_KSM);
-}
-
-/*
- * When do_swap_page() first faults in from swap what used to be a KSM page,
- * no problem, it will be assigned to this vma's anon_vma; but thereafter,
- * it might be faulted into a different anon_vma (or perhaps to a different
- * offset in the same anon_vma). do_swap_page() cannot do all the locking
- * needed to reconstitute a cross-anon_vma KSM page: for now it has to make
- * a copy, and leave remerging the pages to a later pass of ksmd.
- *
- * We'd like to make this conditional on vma->vm_flags & VM_MERGEABLE,
- * but what if the vma was unmerged while the page was swapped out?
- */
-static inline int ksm_might_need_to_copy(struct page *page,
- struct vm_area_struct *vma, unsigned long address)
-{
- struct anon_vma *anon_vma = page_anon_vma(page);
-
- return anon_vma &&
- (anon_vma->root != vma->anon_vma->root ||
- page->index != linear_page_index(vma, address));
-}
-
-int page_referenced_ksm(struct page *page,
- struct mem_cgroup *memcg, unsigned long *vm_flags);
-int try_to_unmap_ksm(struct page *page, enum ttu_flags flags);
-int rmap_walk_ksm(struct page *page, int (*rmap_one)(struct page *,
- struct vm_area_struct *, unsigned long, void *), void *arg);
-void ksm_migrate_page(struct page *newpage, struct page *oldpage);
-
-#else /* !CONFIG_KSM */
-
-static inline int ksm_fork(struct mm_struct *mm, struct mm_struct *oldmm)
-{
- return 0;
-}
-
-static inline void ksm_exit(struct mm_struct *mm)
-{
-}
-
-static inline int PageKsm(struct page *page)
-{
- return 0;
-}
-
-#ifdef CONFIG_MMU
-static inline int ksm_madvise(struct vm_area_struct *vma, unsigned long start,
- unsigned long end, int advice, unsigned long *vm_flags)
-{
- return 0;
-}
-
-static inline int ksm_might_need_to_copy(struct page *page,
- struct vm_area_struct *vma, unsigned long address)
-{
- return 0;
-}
-
-static inline int page_referenced_ksm(struct page *page,
- struct mem_cgroup *memcg, unsigned long *vm_flags)
-{
- return 0;
-}
-
-static inline int try_to_unmap_ksm(struct page *page, enum ttu_flags flags)
-{
- return 0;
-}
-
-static inline int rmap_walk_ksm(struct page *page, int (*rmap_one)(struct page*,
- struct vm_area_struct *, unsigned long, void *), void *arg)
-{
- return 0;
-}
-
-static inline void ksm_migrate_page(struct page *newpage, struct page *oldpage)
-{
-}
-#endif /* CONFIG_MMU */
-#endif /* !CONFIG_KSM */
-
-#endif /* __LINUX_KSM_H */
diff --git a/ANDROID_3.4.5/include/linux/kthread.h b/ANDROID_3.4.5/include/linux/kthread.h
deleted file mode 100644
index 22ccf9de..00000000
--- a/ANDROID_3.4.5/include/linux/kthread.h
+++ /dev/null
@@ -1,130 +0,0 @@
-#ifndef _LINUX_KTHREAD_H
-#define _LINUX_KTHREAD_H
-/* Simple interface for creating and stopping kernel threads without mess. */
-#include <linux/err.h>
-#include <linux/sched.h>
-
-__printf(4, 5)
-struct task_struct *kthread_create_on_node(int (*threadfn)(void *data),
- void *data,
- int node,
- const char namefmt[], ...);
-
-#define kthread_create(threadfn, data, namefmt, arg...) \
- kthread_create_on_node(threadfn, data, -1, namefmt, ##arg)
-
-
-/**
- * kthread_run - create and wake a thread.
- * @threadfn: the function to run until signal_pending(current).
- * @data: data ptr for @threadfn.
- * @namefmt: printf-style name for the thread.
- *
- * Description: Convenient wrapper for kthread_create() followed by
- * wake_up_process(). Returns the kthread or ERR_PTR(-ENOMEM).
- */
-#define kthread_run(threadfn, data, namefmt, ...) \
-({ \
- struct task_struct *__k \
- = kthread_create(threadfn, data, namefmt, ## __VA_ARGS__); \
- if (!IS_ERR(__k)) \
- wake_up_process(__k); \
- __k; \
-})
-
-void kthread_bind(struct task_struct *k, unsigned int cpu);
-int kthread_stop(struct task_struct *k);
-int kthread_should_stop(void);
-bool kthread_freezable_should_stop(bool *was_frozen);
-void *kthread_data(struct task_struct *k);
-
-int kthreadd(void *unused);
-extern struct task_struct *kthreadd_task;
-extern int tsk_fork_get_node(struct task_struct *tsk);
-
-/*
- * Simple work processor based on kthread.
- *
- * This provides easier way to make use of kthreads. A kthread_work
- * can be queued and flushed using queue/flush_kthread_work()
- * respectively. Queued kthread_works are processed by a kthread
- * running kthread_worker_fn().
- */
-struct kthread_work;
-typedef void (*kthread_work_func_t)(struct kthread_work *work);
-
-struct kthread_worker {
- spinlock_t lock;
- struct list_head work_list;
- struct task_struct *task;
- struct kthread_work *current_work;
-};
-
-struct kthread_work {
- struct list_head node;
- kthread_work_func_t func;
- wait_queue_head_t done;
- struct kthread_worker *worker;
-};
-
-#define KTHREAD_WORKER_INIT(worker) { \
- .lock = __SPIN_LOCK_UNLOCKED((worker).lock), \
- .work_list = LIST_HEAD_INIT((worker).work_list), \
- }
-
-#define KTHREAD_WORK_INIT(work, fn) { \
- .node = LIST_HEAD_INIT((work).node), \
- .func = (fn), \
- .done = __WAIT_QUEUE_HEAD_INITIALIZER((work).done), \
- }
-
-#define DEFINE_KTHREAD_WORKER(worker) \
- struct kthread_worker worker = KTHREAD_WORKER_INIT(worker)
-
-#define DEFINE_KTHREAD_WORK(work, fn) \
- struct kthread_work work = KTHREAD_WORK_INIT(work, fn)
-
-/*
- * kthread_worker.lock and kthread_work.done need their own lockdep class
- * keys if they are defined on stack with lockdep enabled. Use the
- * following macros when defining them on stack.
- */
-#ifdef CONFIG_LOCKDEP
-# define KTHREAD_WORKER_INIT_ONSTACK(worker) \
- ({ init_kthread_worker(&worker); worker; })
-# define DEFINE_KTHREAD_WORKER_ONSTACK(worker) \
- struct kthread_worker worker = KTHREAD_WORKER_INIT_ONSTACK(worker)
-# define KTHREAD_WORK_INIT_ONSTACK(work, fn) \
- ({ init_kthread_work((&work), fn); work; })
-# define DEFINE_KTHREAD_WORK_ONSTACK(work, fn) \
- struct kthread_work work = KTHREAD_WORK_INIT_ONSTACK(work, fn)
-#else
-# define DEFINE_KTHREAD_WORKER_ONSTACK(worker) DEFINE_KTHREAD_WORKER(worker)
-# define DEFINE_KTHREAD_WORK_ONSTACK(work, fn) DEFINE_KTHREAD_WORK(work, fn)
-#endif
-
-extern void __init_kthread_worker(struct kthread_worker *worker,
- const char *name, struct lock_class_key *key);
-
-#define init_kthread_worker(worker) \
- do { \
- static struct lock_class_key __key; \
- __init_kthread_worker((worker), "("#worker")->lock", &__key); \
- } while (0)
-
-#define init_kthread_work(work, fn) \
- do { \
- memset((work), 0, sizeof(struct kthread_work)); \
- INIT_LIST_HEAD(&(work)->node); \
- (work)->func = (fn); \
- init_waitqueue_head(&(work)->done); \
- } while (0)
-
-int kthread_worker_fn(void *worker_ptr);
-
-bool queue_kthread_work(struct kthread_worker *worker,
- struct kthread_work *work);
-void flush_kthread_work(struct kthread_work *work);
-void flush_kthread_worker(struct kthread_worker *worker);
-
-#endif /* _LINUX_KTHREAD_H */
diff --git a/ANDROID_3.4.5/include/linux/ktime.h b/ANDROID_3.4.5/include/linux/ktime.h
deleted file mode 100644
index 603bec29..00000000
--- a/ANDROID_3.4.5/include/linux/ktime.h
+++ /dev/null
@@ -1,342 +0,0 @@
-/*
- * include/linux/ktime.h
- *
- * ktime_t - nanosecond-resolution time format.
- *
- * Copyright(C) 2005, Thomas Gleixner <tglx@linutronix.de>
- * Copyright(C) 2005, Red Hat, Inc., Ingo Molnar
- *
- * data type definitions, declarations, prototypes and macros.
- *
- * Started by: Thomas Gleixner and Ingo Molnar
- *
- * Credits:
- *
- * Roman Zippel provided the ideas and primary code snippets of
- * the ktime_t union and further simplifications of the original
- * code.
- *
- * For licencing details see kernel-base/COPYING
- */
-#ifndef _LINUX_KTIME_H
-#define _LINUX_KTIME_H
-
-#include <linux/time.h>
-#include <linux/jiffies.h>
-
-/*
- * ktime_t:
- *
- * On 64-bit CPUs a single 64-bit variable is used to store the hrtimers
- * internal representation of time values in scalar nanoseconds. The
- * design plays out best on 64-bit CPUs, where most conversions are
- * NOPs and most arithmetic ktime_t operations are plain arithmetic
- * operations.
- *
- * On 32-bit CPUs an optimized representation of the timespec structure
- * is used to avoid expensive conversions from and to timespecs. The
- * endian-aware order of the tv struct members is chosen to allow
- * mathematical operations on the tv64 member of the union too, which
- * for certain operations produces better code.
- *
- * For architectures with efficient support for 64/32-bit conversions the
- * plain scalar nanosecond based representation can be selected by the
- * config switch CONFIG_KTIME_SCALAR.
- */
-union ktime {
- s64 tv64;
-#if BITS_PER_LONG != 64 && !defined(CONFIG_KTIME_SCALAR)
- struct {
-# ifdef __BIG_ENDIAN
- s32 sec, nsec;
-# else
- s32 nsec, sec;
-# endif
- } tv;
-#endif
-};
-
-typedef union ktime ktime_t; /* Kill this */
-
-#define KTIME_MAX ((s64)~((u64)1 << 63))
-#if (BITS_PER_LONG == 64)
-# define KTIME_SEC_MAX (KTIME_MAX / NSEC_PER_SEC)
-#else
-# define KTIME_SEC_MAX LONG_MAX
-#endif
-
-/*
- * ktime_t definitions when using the 64-bit scalar representation:
- */
-
-#if (BITS_PER_LONG == 64) || defined(CONFIG_KTIME_SCALAR)
-
-/**
- * ktime_set - Set a ktime_t variable from a seconds/nanoseconds value
- * @secs: seconds to set
- * @nsecs: nanoseconds to set
- *
- * Return the ktime_t representation of the value
- */
-static inline ktime_t ktime_set(const long secs, const unsigned long nsecs)
-{
-#if (BITS_PER_LONG == 64)
- if (unlikely(secs >= KTIME_SEC_MAX))
- return (ktime_t){ .tv64 = KTIME_MAX };
-#endif
- return (ktime_t) { .tv64 = (s64)secs * NSEC_PER_SEC + (s64)nsecs };
-}
-
-/* Subtract two ktime_t variables. rem = lhs -rhs: */
-#define ktime_sub(lhs, rhs) \
- ({ (ktime_t){ .tv64 = (lhs).tv64 - (rhs).tv64 }; })
-
-/* Add two ktime_t variables. res = lhs + rhs: */
-#define ktime_add(lhs, rhs) \
- ({ (ktime_t){ .tv64 = (lhs).tv64 + (rhs).tv64 }; })
-
-/*
- * Add a ktime_t variable and a scalar nanosecond value.
- * res = kt + nsval:
- */
-#define ktime_add_ns(kt, nsval) \
- ({ (ktime_t){ .tv64 = (kt).tv64 + (nsval) }; })
-
-/*
- * Subtract a scalar nanosecod from a ktime_t variable
- * res = kt - nsval:
- */
-#define ktime_sub_ns(kt, nsval) \
- ({ (ktime_t){ .tv64 = (kt).tv64 - (nsval) }; })
-
-/* convert a timespec to ktime_t format: */
-static inline ktime_t timespec_to_ktime(struct timespec ts)
-{
- return ktime_set(ts.tv_sec, ts.tv_nsec);
-}
-
-/* convert a timeval to ktime_t format: */
-static inline ktime_t timeval_to_ktime(struct timeval tv)
-{
- return ktime_set(tv.tv_sec, tv.tv_usec * NSEC_PER_USEC);
-}
-
-/* Map the ktime_t to timespec conversion to ns_to_timespec function */
-#define ktime_to_timespec(kt) ns_to_timespec((kt).tv64)
-
-/* Map the ktime_t to timeval conversion to ns_to_timeval function */
-#define ktime_to_timeval(kt) ns_to_timeval((kt).tv64)
-
-/* Convert ktime_t to nanoseconds - NOP in the scalar storage format: */
-#define ktime_to_ns(kt) ((kt).tv64)
-
-#else /* !((BITS_PER_LONG == 64) || defined(CONFIG_KTIME_SCALAR)) */
-
-/*
- * Helper macros/inlines to get the ktime_t math right in the timespec
- * representation. The macros are sometimes ugly - their actual use is
- * pretty okay-ish, given the circumstances. We do all this for
- * performance reasons. The pure scalar nsec_t based code was nice and
- * simple, but created too many 64-bit / 32-bit conversions and divisions.
- *
- * Be especially aware that negative values are represented in a way
- * that the tv.sec field is negative and the tv.nsec field is greater
- * or equal to zero but less than nanoseconds per second. This is the
- * same representation which is used by timespecs.
- *
- * tv.sec < 0 and 0 >= tv.nsec < NSEC_PER_SEC
- */
-
-/* Set a ktime_t variable to a value in sec/nsec representation: */
-static inline ktime_t ktime_set(const long secs, const unsigned long nsecs)
-{
- return (ktime_t) { .tv = { .sec = secs, .nsec = nsecs } };
-}
-
-/**
- * ktime_sub - subtract two ktime_t variables
- * @lhs: minuend
- * @rhs: subtrahend
- *
- * Returns the remainder of the subtraction
- */
-static inline ktime_t ktime_sub(const ktime_t lhs, const ktime_t rhs)
-{
- ktime_t res;
-
- res.tv64 = lhs.tv64 - rhs.tv64;
- if (res.tv.nsec < 0)
- res.tv.nsec += NSEC_PER_SEC;
-
- return res;
-}
-
-/**
- * ktime_add - add two ktime_t variables
- * @add1: addend1
- * @add2: addend2
- *
- * Returns the sum of @add1 and @add2.
- */
-static inline ktime_t ktime_add(const ktime_t add1, const ktime_t add2)
-{
- ktime_t res;
-
- res.tv64 = add1.tv64 + add2.tv64;
- /*
- * performance trick: the (u32) -NSEC gives 0x00000000Fxxxxxxx
- * so we subtract NSEC_PER_SEC and add 1 to the upper 32 bit.
- *
- * it's equivalent to:
- * tv.nsec -= NSEC_PER_SEC
- * tv.sec ++;
- */
- if (res.tv.nsec >= NSEC_PER_SEC)
- res.tv64 += (u32)-NSEC_PER_SEC;
-
- return res;
-}
-
-/**
- * ktime_add_ns - Add a scalar nanoseconds value to a ktime_t variable
- * @kt: addend
- * @nsec: the scalar nsec value to add
- *
- * Returns the sum of @kt and @nsec in ktime_t format
- */
-extern ktime_t ktime_add_ns(const ktime_t kt, u64 nsec);
-
-/**
- * ktime_sub_ns - Subtract a scalar nanoseconds value from a ktime_t variable
- * @kt: minuend
- * @nsec: the scalar nsec value to subtract
- *
- * Returns the subtraction of @nsec from @kt in ktime_t format
- */
-extern ktime_t ktime_sub_ns(const ktime_t kt, u64 nsec);
-
-/**
- * timespec_to_ktime - convert a timespec to ktime_t format
- * @ts: the timespec variable to convert
- *
- * Returns a ktime_t variable with the converted timespec value
- */
-static inline ktime_t timespec_to_ktime(const struct timespec ts)
-{
- return (ktime_t) { .tv = { .sec = (s32)ts.tv_sec,
- .nsec = (s32)ts.tv_nsec } };
-}
-
-/**
- * timeval_to_ktime - convert a timeval to ktime_t format
- * @tv: the timeval variable to convert
- *
- * Returns a ktime_t variable with the converted timeval value
- */
-static inline ktime_t timeval_to_ktime(const struct timeval tv)
-{
- return (ktime_t) { .tv = { .sec = (s32)tv.tv_sec,
- .nsec = (s32)tv.tv_usec * 1000 } };
-}
-
-/**
- * ktime_to_timespec - convert a ktime_t variable to timespec format
- * @kt: the ktime_t variable to convert
- *
- * Returns the timespec representation of the ktime value
- */
-static inline struct timespec ktime_to_timespec(const ktime_t kt)
-{
- return (struct timespec) { .tv_sec = (time_t) kt.tv.sec,
- .tv_nsec = (long) kt.tv.nsec };
-}
-
-/**
- * ktime_to_timeval - convert a ktime_t variable to timeval format
- * @kt: the ktime_t variable to convert
- *
- * Returns the timeval representation of the ktime value
- */
-static inline struct timeval ktime_to_timeval(const ktime_t kt)
-{
- return (struct timeval) {
- .tv_sec = (time_t) kt.tv.sec,
- .tv_usec = (suseconds_t) (kt.tv.nsec / NSEC_PER_USEC) };
-}
-
-/**
- * ktime_to_ns - convert a ktime_t variable to scalar nanoseconds
- * @kt: the ktime_t variable to convert
- *
- * Returns the scalar nanoseconds representation of @kt
- */
-static inline s64 ktime_to_ns(const ktime_t kt)
-{
- return (s64) kt.tv.sec * NSEC_PER_SEC + kt.tv.nsec;
-}
-
-#endif /* !((BITS_PER_LONG == 64) || defined(CONFIG_KTIME_SCALAR)) */
-
-/**
- * ktime_equal - Compares two ktime_t variables to see if they are equal
- * @cmp1: comparable1
- * @cmp2: comparable2
- *
- * Compare two ktime_t variables, returns 1 if equal
- */
-static inline int ktime_equal(const ktime_t cmp1, const ktime_t cmp2)
-{
- return cmp1.tv64 == cmp2.tv64;
-}
-
-static inline s64 ktime_to_us(const ktime_t kt)
-{
- struct timeval tv = ktime_to_timeval(kt);
- return (s64) tv.tv_sec * USEC_PER_SEC + tv.tv_usec;
-}
-
-static inline s64 ktime_to_ms(const ktime_t kt)
-{
- struct timeval tv = ktime_to_timeval(kt);
- return (s64) tv.tv_sec * MSEC_PER_SEC + tv.tv_usec / USEC_PER_MSEC;
-}
-
-static inline s64 ktime_us_delta(const ktime_t later, const ktime_t earlier)
-{
- return ktime_to_us(ktime_sub(later, earlier));
-}
-
-static inline ktime_t ktime_add_us(const ktime_t kt, const u64 usec)
-{
- return ktime_add_ns(kt, usec * 1000);
-}
-
-static inline ktime_t ktime_sub_us(const ktime_t kt, const u64 usec)
-{
- return ktime_sub_ns(kt, usec * 1000);
-}
-
-extern ktime_t ktime_add_safe(const ktime_t lhs, const ktime_t rhs);
-
-/*
- * The resolution of the clocks. The resolution value is returned in
- * the clock_getres() system call to give application programmers an
- * idea of the (in)accuracy of timers. Timer values are rounded up to
- * this resolution values.
- */
-#define LOW_RES_NSEC TICK_NSEC
-#define KTIME_LOW_RES (ktime_t){ .tv64 = LOW_RES_NSEC }
-
-/* Get the monotonic time in timespec format: */
-extern void ktime_get_ts(struct timespec *ts);
-
-/* Get the real (wall-) time in timespec format: */
-#define ktime_get_real_ts(ts) getnstimeofday(ts)
-
-static inline ktime_t ns_to_ktime(u64 ns)
-{
- static const ktime_t ktime_zero = { .tv64 = 0 };
- return ktime_add_ns(ktime_zero, ns);
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/kvm.h b/ANDROID_3.4.5/include/linux/kvm.h
deleted file mode 100644
index 6c322a90..00000000
--- a/ANDROID_3.4.5/include/linux/kvm.h
+++ /dev/null
@@ -1,913 +0,0 @@
-#ifndef __LINUX_KVM_H
-#define __LINUX_KVM_H
-
-/*
- * Userspace interface for /dev/kvm - kernel based virtual machine
- *
- * Note: you must update KVM_API_VERSION if you change this interface.
- */
-
-#include <linux/types.h>
-#include <linux/compiler.h>
-#include <linux/ioctl.h>
-#include <asm/kvm.h>
-
-#define KVM_API_VERSION 12
-
-/* *** Deprecated interfaces *** */
-
-#define KVM_TRC_SHIFT 16
-
-#define KVM_TRC_ENTRYEXIT (1 << KVM_TRC_SHIFT)
-#define KVM_TRC_HANDLER (1 << (KVM_TRC_SHIFT + 1))
-
-#define KVM_TRC_VMENTRY (KVM_TRC_ENTRYEXIT + 0x01)
-#define KVM_TRC_VMEXIT (KVM_TRC_ENTRYEXIT + 0x02)
-#define KVM_TRC_PAGE_FAULT (KVM_TRC_HANDLER + 0x01)
-
-#define KVM_TRC_HEAD_SIZE 12
-#define KVM_TRC_CYCLE_SIZE 8
-#define KVM_TRC_EXTRA_MAX 7
-
-#define KVM_TRC_INJ_VIRQ (KVM_TRC_HANDLER + 0x02)
-#define KVM_TRC_REDELIVER_EVT (KVM_TRC_HANDLER + 0x03)
-#define KVM_TRC_PEND_INTR (KVM_TRC_HANDLER + 0x04)
-#define KVM_TRC_IO_READ (KVM_TRC_HANDLER + 0x05)
-#define KVM_TRC_IO_WRITE (KVM_TRC_HANDLER + 0x06)
-#define KVM_TRC_CR_READ (KVM_TRC_HANDLER + 0x07)
-#define KVM_TRC_CR_WRITE (KVM_TRC_HANDLER + 0x08)
-#define KVM_TRC_DR_READ (KVM_TRC_HANDLER + 0x09)
-#define KVM_TRC_DR_WRITE (KVM_TRC_HANDLER + 0x0A)
-#define KVM_TRC_MSR_READ (KVM_TRC_HANDLER + 0x0B)
-#define KVM_TRC_MSR_WRITE (KVM_TRC_HANDLER + 0x0C)
-#define KVM_TRC_CPUID (KVM_TRC_HANDLER + 0x0D)
-#define KVM_TRC_INTR (KVM_TRC_HANDLER + 0x0E)
-#define KVM_TRC_NMI (KVM_TRC_HANDLER + 0x0F)
-#define KVM_TRC_VMMCALL (KVM_TRC_HANDLER + 0x10)
-#define KVM_TRC_HLT (KVM_TRC_HANDLER + 0x11)
-#define KVM_TRC_CLTS (KVM_TRC_HANDLER + 0x12)
-#define KVM_TRC_LMSW (KVM_TRC_HANDLER + 0x13)
-#define KVM_TRC_APIC_ACCESS (KVM_TRC_HANDLER + 0x14)
-#define KVM_TRC_TDP_FAULT (KVM_TRC_HANDLER + 0x15)
-#define KVM_TRC_GTLB_WRITE (KVM_TRC_HANDLER + 0x16)
-#define KVM_TRC_STLB_WRITE (KVM_TRC_HANDLER + 0x17)
-#define KVM_TRC_STLB_INVAL (KVM_TRC_HANDLER + 0x18)
-#define KVM_TRC_PPC_INSTR (KVM_TRC_HANDLER + 0x19)
-
-struct kvm_user_trace_setup {
- __u32 buf_size;
- __u32 buf_nr;
-};
-
-#define __KVM_DEPRECATED_MAIN_W_0x06 \
- _IOW(KVMIO, 0x06, struct kvm_user_trace_setup)
-#define __KVM_DEPRECATED_MAIN_0x07 _IO(KVMIO, 0x07)
-#define __KVM_DEPRECATED_MAIN_0x08 _IO(KVMIO, 0x08)
-
-#define __KVM_DEPRECATED_VM_R_0x70 _IOR(KVMIO, 0x70, struct kvm_assigned_irq)
-
-struct kvm_breakpoint {
- __u32 enabled;
- __u32 padding;
- __u64 address;
-};
-
-struct kvm_debug_guest {
- __u32 enabled;
- __u32 pad;
- struct kvm_breakpoint breakpoints[4];
- __u32 singlestep;
-};
-
-#define __KVM_DEPRECATED_VCPU_W_0x87 _IOW(KVMIO, 0x87, struct kvm_debug_guest)
-
-/* *** End of deprecated interfaces *** */
-
-
-/* for KVM_CREATE_MEMORY_REGION */
-struct kvm_memory_region {
- __u32 slot;
- __u32 flags;
- __u64 guest_phys_addr;
- __u64 memory_size; /* bytes */
-};
-
-/* for KVM_SET_USER_MEMORY_REGION */
-struct kvm_userspace_memory_region {
- __u32 slot;
- __u32 flags;
- __u64 guest_phys_addr;
- __u64 memory_size; /* bytes */
- __u64 userspace_addr; /* start of the userspace allocated memory */
-};
-
-/* for kvm_memory_region::flags */
-#define KVM_MEM_LOG_DIRTY_PAGES 1UL
-#define KVM_MEMSLOT_INVALID (1UL << 1)
-
-/* for KVM_IRQ_LINE */
-struct kvm_irq_level {
- /*
- * ACPI gsi notion of irq.
- * For IA-64 (APIC model) IOAPIC0: irq 0-23; IOAPIC1: irq 24-47..
- * For X86 (standard AT mode) PIC0/1: irq 0-15. IOAPIC0: 0-23..
- */
- union {
- __u32 irq;
- __s32 status;
- };
- __u32 level;
-};
-
-
-struct kvm_irqchip {
- __u32 chip_id;
- __u32 pad;
- union {
- char dummy[512]; /* reserving space */
-#ifdef __KVM_HAVE_PIT
- struct kvm_pic_state pic;
-#endif
-#ifdef __KVM_HAVE_IOAPIC
- struct kvm_ioapic_state ioapic;
-#endif
- } chip;
-};
-
-/* for KVM_CREATE_PIT2 */
-struct kvm_pit_config {
- __u32 flags;
- __u32 pad[15];
-};
-
-#define KVM_PIT_SPEAKER_DUMMY 1
-
-#define KVM_EXIT_UNKNOWN 0
-#define KVM_EXIT_EXCEPTION 1
-#define KVM_EXIT_IO 2
-#define KVM_EXIT_HYPERCALL 3
-#define KVM_EXIT_DEBUG 4
-#define KVM_EXIT_HLT 5
-#define KVM_EXIT_MMIO 6
-#define KVM_EXIT_IRQ_WINDOW_OPEN 7
-#define KVM_EXIT_SHUTDOWN 8
-#define KVM_EXIT_FAIL_ENTRY 9
-#define KVM_EXIT_INTR 10
-#define KVM_EXIT_SET_TPR 11
-#define KVM_EXIT_TPR_ACCESS 12
-#define KVM_EXIT_S390_SIEIC 13
-#define KVM_EXIT_S390_RESET 14
-#define KVM_EXIT_DCR 15
-#define KVM_EXIT_NMI 16
-#define KVM_EXIT_INTERNAL_ERROR 17
-#define KVM_EXIT_OSI 18
-#define KVM_EXIT_PAPR_HCALL 19
-#define KVM_EXIT_S390_UCONTROL 20
-
-/* For KVM_EXIT_INTERNAL_ERROR */
-#define KVM_INTERNAL_ERROR_EMULATION 1
-#define KVM_INTERNAL_ERROR_SIMUL_EX 2
-
-/* for KVM_RUN, returned by mmap(vcpu_fd, offset=0) */
-struct kvm_run {
- /* in */
- __u8 request_interrupt_window;
- __u8 padding1[7];
-
- /* out */
- __u32 exit_reason;
- __u8 ready_for_interrupt_injection;
- __u8 if_flag;
- __u8 padding2[2];
-
- /* in (pre_kvm_run), out (post_kvm_run) */
- __u64 cr8;
- __u64 apic_base;
-
-#ifdef __KVM_S390
- /* the processor status word for s390 */
- __u64 psw_mask; /* psw upper half */
- __u64 psw_addr; /* psw lower half */
-#endif
- union {
- /* KVM_EXIT_UNKNOWN */
- struct {
- __u64 hardware_exit_reason;
- } hw;
- /* KVM_EXIT_FAIL_ENTRY */
- struct {
- __u64 hardware_entry_failure_reason;
- } fail_entry;
- /* KVM_EXIT_EXCEPTION */
- struct {
- __u32 exception;
- __u32 error_code;
- } ex;
- /* KVM_EXIT_IO */
- struct {
-#define KVM_EXIT_IO_IN 0
-#define KVM_EXIT_IO_OUT 1
- __u8 direction;
- __u8 size; /* bytes */
- __u16 port;
- __u32 count;
- __u64 data_offset; /* relative to kvm_run start */
- } io;
- struct {
- struct kvm_debug_exit_arch arch;
- } debug;
- /* KVM_EXIT_MMIO */
- struct {
- __u64 phys_addr;
- __u8 data[8];
- __u32 len;
- __u8 is_write;
- } mmio;
- /* KVM_EXIT_HYPERCALL */
- struct {
- __u64 nr;
- __u64 args[6];
- __u64 ret;
- __u32 longmode;
- __u32 pad;
- } hypercall;
- /* KVM_EXIT_TPR_ACCESS */
- struct {
- __u64 rip;
- __u32 is_write;
- __u32 pad;
- } tpr_access;
- /* KVM_EXIT_S390_SIEIC */
- struct {
- __u8 icptcode;
- __u16 ipa;
- __u32 ipb;
- } s390_sieic;
- /* KVM_EXIT_S390_RESET */
-#define KVM_S390_RESET_POR 1
-#define KVM_S390_RESET_CLEAR 2
-#define KVM_S390_RESET_SUBSYSTEM 4
-#define KVM_S390_RESET_CPU_INIT 8
-#define KVM_S390_RESET_IPL 16
- __u64 s390_reset_flags;
- /* KVM_EXIT_S390_UCONTROL */
- struct {
- __u64 trans_exc_code;
- __u32 pgm_code;
- } s390_ucontrol;
- /* KVM_EXIT_DCR */
- struct {
- __u32 dcrn;
- __u32 data;
- __u8 is_write;
- } dcr;
- struct {
- __u32 suberror;
- /* Available with KVM_CAP_INTERNAL_ERROR_DATA: */
- __u32 ndata;
- __u64 data[16];
- } internal;
- /* KVM_EXIT_OSI */
- struct {
- __u64 gprs[32];
- } osi;
- struct {
- __u64 nr;
- __u64 ret;
- __u64 args[9];
- } papr_hcall;
- /* Fix the size of the union. */
- char padding[256];
- };
-
- /*
- * shared registers between kvm and userspace.
- * kvm_valid_regs specifies the register classes set by the host
- * kvm_dirty_regs specified the register classes dirtied by userspace
- * struct kvm_sync_regs is architecture specific, as well as the
- * bits for kvm_valid_regs and kvm_dirty_regs
- */
- __u64 kvm_valid_regs;
- __u64 kvm_dirty_regs;
- union {
- struct kvm_sync_regs regs;
- char padding[1024];
- } s;
-};
-
-/* for KVM_REGISTER_COALESCED_MMIO / KVM_UNREGISTER_COALESCED_MMIO */
-
-struct kvm_coalesced_mmio_zone {
- __u64 addr;
- __u32 size;
- __u32 pad;
-};
-
-struct kvm_coalesced_mmio {
- __u64 phys_addr;
- __u32 len;
- __u32 pad;
- __u8 data[8];
-};
-
-struct kvm_coalesced_mmio_ring {
- __u32 first, last;
- struct kvm_coalesced_mmio coalesced_mmio[0];
-};
-
-#define KVM_COALESCED_MMIO_MAX \
- ((PAGE_SIZE - sizeof(struct kvm_coalesced_mmio_ring)) / \
- sizeof(struct kvm_coalesced_mmio))
-
-/* for KVM_TRANSLATE */
-struct kvm_translation {
- /* in */
- __u64 linear_address;
-
- /* out */
- __u64 physical_address;
- __u8 valid;
- __u8 writeable;
- __u8 usermode;
- __u8 pad[5];
-};
-
-/* for KVM_INTERRUPT */
-struct kvm_interrupt {
- /* in */
- __u32 irq;
-};
-
-/* for KVM_GET_DIRTY_LOG */
-struct kvm_dirty_log {
- __u32 slot;
- __u32 padding1;
- union {
- void __user *dirty_bitmap; /* one bit per page */
- __u64 padding2;
- };
-};
-
-/* for KVM_SET_SIGNAL_MASK */
-struct kvm_signal_mask {
- __u32 len;
- __u8 sigset[0];
-};
-
-/* for KVM_TPR_ACCESS_REPORTING */
-struct kvm_tpr_access_ctl {
- __u32 enabled;
- __u32 flags;
- __u32 reserved[8];
-};
-
-/* for KVM_SET_VAPIC_ADDR */
-struct kvm_vapic_addr {
- __u64 vapic_addr;
-};
-
-/* for KVM_SET_MPSTATE */
-
-#define KVM_MP_STATE_RUNNABLE 0
-#define KVM_MP_STATE_UNINITIALIZED 1
-#define KVM_MP_STATE_INIT_RECEIVED 2
-#define KVM_MP_STATE_HALTED 3
-#define KVM_MP_STATE_SIPI_RECEIVED 4
-
-struct kvm_mp_state {
- __u32 mp_state;
-};
-
-struct kvm_s390_psw {
- __u64 mask;
- __u64 addr;
-};
-
-/* valid values for type in kvm_s390_interrupt */
-#define KVM_S390_SIGP_STOP 0xfffe0000u
-#define KVM_S390_PROGRAM_INT 0xfffe0001u
-#define KVM_S390_SIGP_SET_PREFIX 0xfffe0002u
-#define KVM_S390_RESTART 0xfffe0003u
-#define KVM_S390_INT_VIRTIO 0xffff2603u
-#define KVM_S390_INT_SERVICE 0xffff2401u
-#define KVM_S390_INT_EMERGENCY 0xffff1201u
-#define KVM_S390_INT_EXTERNAL_CALL 0xffff1202u
-
-struct kvm_s390_interrupt {
- __u32 type;
- __u32 parm;
- __u64 parm64;
-};
-
-/* for KVM_SET_GUEST_DEBUG */
-
-#define KVM_GUESTDBG_ENABLE 0x00000001
-#define KVM_GUESTDBG_SINGLESTEP 0x00000002
-
-struct kvm_guest_debug {
- __u32 control;
- __u32 pad;
- struct kvm_guest_debug_arch arch;
-};
-
-enum {
- kvm_ioeventfd_flag_nr_datamatch,
- kvm_ioeventfd_flag_nr_pio,
- kvm_ioeventfd_flag_nr_deassign,
- kvm_ioeventfd_flag_nr_max,
-};
-
-#define KVM_IOEVENTFD_FLAG_DATAMATCH (1 << kvm_ioeventfd_flag_nr_datamatch)
-#define KVM_IOEVENTFD_FLAG_PIO (1 << kvm_ioeventfd_flag_nr_pio)
-#define KVM_IOEVENTFD_FLAG_DEASSIGN (1 << kvm_ioeventfd_flag_nr_deassign)
-
-#define KVM_IOEVENTFD_VALID_FLAG_MASK ((1 << kvm_ioeventfd_flag_nr_max) - 1)
-
-struct kvm_ioeventfd {
- __u64 datamatch;
- __u64 addr; /* legal pio/mmio address */
- __u32 len; /* 1, 2, 4, or 8 bytes */
- __s32 fd;
- __u32 flags;
- __u8 pad[36];
-};
-
-/* for KVM_ENABLE_CAP */
-struct kvm_enable_cap {
- /* in */
- __u32 cap;
- __u32 flags;
- __u64 args[4];
- __u8 pad[64];
-};
-
-/* for KVM_PPC_GET_PVINFO */
-struct kvm_ppc_pvinfo {
- /* out */
- __u32 flags;
- __u32 hcall[4];
- __u8 pad[108];
-};
-
-#define KVMIO 0xAE
-
-/* machine type bits, to be used as argument to KVM_CREATE_VM */
-#define KVM_VM_S390_UCONTROL 1
-
-#define KVM_S390_SIE_PAGE_OFFSET 1
-
-/*
- * ioctls for /dev/kvm fds:
- */
-#define KVM_GET_API_VERSION _IO(KVMIO, 0x00)
-#define KVM_CREATE_VM _IO(KVMIO, 0x01) /* returns a VM fd */
-#define KVM_GET_MSR_INDEX_LIST _IOWR(KVMIO, 0x02, struct kvm_msr_list)
-
-#define KVM_S390_ENABLE_SIE _IO(KVMIO, 0x06)
-/*
- * Check if a kvm extension is available. Argument is extension number,
- * return is 1 (yes) or 0 (no, sorry).
- */
-#define KVM_CHECK_EXTENSION _IO(KVMIO, 0x03)
-/*
- * Get size for mmap(vcpu_fd)
- */
-#define KVM_GET_VCPU_MMAP_SIZE _IO(KVMIO, 0x04) /* in bytes */
-#define KVM_GET_SUPPORTED_CPUID _IOWR(KVMIO, 0x05, struct kvm_cpuid2)
-#define KVM_TRACE_ENABLE __KVM_DEPRECATED_MAIN_W_0x06
-#define KVM_TRACE_PAUSE __KVM_DEPRECATED_MAIN_0x07
-#define KVM_TRACE_DISABLE __KVM_DEPRECATED_MAIN_0x08
-
-/*
- * Extension capability list.
- */
-#define KVM_CAP_IRQCHIP 0
-#define KVM_CAP_HLT 1
-#define KVM_CAP_MMU_SHADOW_CACHE_CONTROL 2
-#define KVM_CAP_USER_MEMORY 3
-#define KVM_CAP_SET_TSS_ADDR 4
-#define KVM_CAP_VAPIC 6
-#define KVM_CAP_EXT_CPUID 7
-#define KVM_CAP_CLOCKSOURCE 8
-#define KVM_CAP_NR_VCPUS 9 /* returns recommended max vcpus per vm */
-#define KVM_CAP_NR_MEMSLOTS 10 /* returns max memory slots per vm */
-#define KVM_CAP_PIT 11
-#define KVM_CAP_NOP_IO_DELAY 12
-#define KVM_CAP_PV_MMU 13
-#define KVM_CAP_MP_STATE 14
-#define KVM_CAP_COALESCED_MMIO 15
-#define KVM_CAP_SYNC_MMU 16 /* Changes to host mmap are reflected in guest */
-#ifdef __KVM_HAVE_DEVICE_ASSIGNMENT
-#define KVM_CAP_DEVICE_ASSIGNMENT 17
-#endif
-#define KVM_CAP_IOMMU 18
-#ifdef __KVM_HAVE_MSI
-#define KVM_CAP_DEVICE_MSI 20
-#endif
-/* Bug in KVM_SET_USER_MEMORY_REGION fixed: */
-#define KVM_CAP_DESTROY_MEMORY_REGION_WORKS 21
-#ifdef __KVM_HAVE_USER_NMI
-#define KVM_CAP_USER_NMI 22
-#endif
-#ifdef __KVM_HAVE_GUEST_DEBUG
-#define KVM_CAP_SET_GUEST_DEBUG 23
-#endif
-#ifdef __KVM_HAVE_PIT
-#define KVM_CAP_REINJECT_CONTROL 24
-#endif
-#ifdef __KVM_HAVE_IOAPIC
-#define KVM_CAP_IRQ_ROUTING 25
-#endif
-#define KVM_CAP_IRQ_INJECT_STATUS 26
-#ifdef __KVM_HAVE_DEVICE_ASSIGNMENT
-#define KVM_CAP_DEVICE_DEASSIGNMENT 27
-#endif
-#ifdef __KVM_HAVE_MSIX
-#define KVM_CAP_DEVICE_MSIX 28
-#endif
-#define KVM_CAP_ASSIGN_DEV_IRQ 29
-/* Another bug in KVM_SET_USER_MEMORY_REGION fixed: */
-#define KVM_CAP_JOIN_MEMORY_REGIONS_WORKS 30
-#ifdef __KVM_HAVE_MCE
-#define KVM_CAP_MCE 31
-#endif
-#define KVM_CAP_IRQFD 32
-#ifdef __KVM_HAVE_PIT
-#define KVM_CAP_PIT2 33
-#endif
-#define KVM_CAP_SET_BOOT_CPU_ID 34
-#ifdef __KVM_HAVE_PIT_STATE2
-#define KVM_CAP_PIT_STATE2 35
-#endif
-#define KVM_CAP_IOEVENTFD 36
-#define KVM_CAP_SET_IDENTITY_MAP_ADDR 37
-#ifdef __KVM_HAVE_XEN_HVM
-#define KVM_CAP_XEN_HVM 38
-#endif
-#define KVM_CAP_ADJUST_CLOCK 39
-#define KVM_CAP_INTERNAL_ERROR_DATA 40
-#ifdef __KVM_HAVE_VCPU_EVENTS
-#define KVM_CAP_VCPU_EVENTS 41
-#endif
-#define KVM_CAP_S390_PSW 42
-#define KVM_CAP_PPC_SEGSTATE 43
-#define KVM_CAP_HYPERV 44
-#define KVM_CAP_HYPERV_VAPIC 45
-#define KVM_CAP_HYPERV_SPIN 46
-#define KVM_CAP_PCI_SEGMENT 47
-#define KVM_CAP_PPC_PAIRED_SINGLES 48
-#define KVM_CAP_INTR_SHADOW 49
-#ifdef __KVM_HAVE_DEBUGREGS
-#define KVM_CAP_DEBUGREGS 50
-#endif
-#define KVM_CAP_X86_ROBUST_SINGLESTEP 51
-#define KVM_CAP_PPC_OSI 52
-#define KVM_CAP_PPC_UNSET_IRQ 53
-#define KVM_CAP_ENABLE_CAP 54
-#ifdef __KVM_HAVE_XSAVE
-#define KVM_CAP_XSAVE 55
-#endif
-#ifdef __KVM_HAVE_XCRS
-#define KVM_CAP_XCRS 56
-#endif
-#define KVM_CAP_PPC_GET_PVINFO 57
-#define KVM_CAP_PPC_IRQ_LEVEL 58
-#define KVM_CAP_ASYNC_PF 59
-#define KVM_CAP_TSC_CONTROL 60
-#define KVM_CAP_GET_TSC_KHZ 61
-#define KVM_CAP_PPC_BOOKE_SREGS 62
-#define KVM_CAP_SPAPR_TCE 63
-#define KVM_CAP_PPC_SMT 64
-#define KVM_CAP_PPC_RMA 65
-#define KVM_CAP_MAX_VCPUS 66 /* returns max vcpus per vm */
-#define KVM_CAP_PPC_HIOR 67
-#define KVM_CAP_PPC_PAPR 68
-#define KVM_CAP_SW_TLB 69
-#define KVM_CAP_ONE_REG 70
-#define KVM_CAP_S390_GMAP 71
-#define KVM_CAP_TSC_DEADLINE_TIMER 72
-#define KVM_CAP_S390_UCONTROL 73
-#define KVM_CAP_SYNC_REGS 74
-#define KVM_CAP_PCI_2_3 75
-
-#ifdef KVM_CAP_IRQ_ROUTING
-
-struct kvm_irq_routing_irqchip {
- __u32 irqchip;
- __u32 pin;
-};
-
-struct kvm_irq_routing_msi {
- __u32 address_lo;
- __u32 address_hi;
- __u32 data;
- __u32 pad;
-};
-
-/* gsi routing entry types */
-#define KVM_IRQ_ROUTING_IRQCHIP 1
-#define KVM_IRQ_ROUTING_MSI 2
-
-struct kvm_irq_routing_entry {
- __u32 gsi;
- __u32 type;
- __u32 flags;
- __u32 pad;
- union {
- struct kvm_irq_routing_irqchip irqchip;
- struct kvm_irq_routing_msi msi;
- __u32 pad[8];
- } u;
-};
-
-struct kvm_irq_routing {
- __u32 nr;
- __u32 flags;
- struct kvm_irq_routing_entry entries[0];
-};
-
-#endif
-
-#ifdef KVM_CAP_MCE
-/* x86 MCE */
-struct kvm_x86_mce {
- __u64 status;
- __u64 addr;
- __u64 misc;
- __u64 mcg_status;
- __u8 bank;
- __u8 pad1[7];
- __u64 pad2[3];
-};
-#endif
-
-#ifdef KVM_CAP_XEN_HVM
-struct kvm_xen_hvm_config {
- __u32 flags;
- __u32 msr;
- __u64 blob_addr_32;
- __u64 blob_addr_64;
- __u8 blob_size_32;
- __u8 blob_size_64;
- __u8 pad2[30];
-};
-#endif
-
-#define KVM_IRQFD_FLAG_DEASSIGN (1 << 0)
-
-struct kvm_irqfd {
- __u32 fd;
- __u32 gsi;
- __u32 flags;
- __u8 pad[20];
-};
-
-struct kvm_clock_data {
- __u64 clock;
- __u32 flags;
- __u32 pad[9];
-};
-
-#define KVM_MMU_FSL_BOOKE_NOHV 0
-#define KVM_MMU_FSL_BOOKE_HV 1
-
-struct kvm_config_tlb {
- __u64 params;
- __u64 array;
- __u32 mmu_type;
- __u32 array_len;
-};
-
-struct kvm_dirty_tlb {
- __u64 bitmap;
- __u32 num_dirty;
-};
-
-/* Available with KVM_CAP_ONE_REG */
-
-#define KVM_REG_ARCH_MASK 0xff00000000000000ULL
-#define KVM_REG_GENERIC 0x0000000000000000ULL
-
-/*
- * Architecture specific registers are to be defined in arch headers and
- * ORed with the arch identifier.
- */
-#define KVM_REG_PPC 0x1000000000000000ULL
-#define KVM_REG_X86 0x2000000000000000ULL
-#define KVM_REG_IA64 0x3000000000000000ULL
-#define KVM_REG_ARM 0x4000000000000000ULL
-#define KVM_REG_S390 0x5000000000000000ULL
-
-#define KVM_REG_SIZE_SHIFT 52
-#define KVM_REG_SIZE_MASK 0x00f0000000000000ULL
-#define KVM_REG_SIZE_U8 0x0000000000000000ULL
-#define KVM_REG_SIZE_U16 0x0010000000000000ULL
-#define KVM_REG_SIZE_U32 0x0020000000000000ULL
-#define KVM_REG_SIZE_U64 0x0030000000000000ULL
-#define KVM_REG_SIZE_U128 0x0040000000000000ULL
-#define KVM_REG_SIZE_U256 0x0050000000000000ULL
-#define KVM_REG_SIZE_U512 0x0060000000000000ULL
-#define KVM_REG_SIZE_U1024 0x0070000000000000ULL
-
-struct kvm_one_reg {
- __u64 id;
- __u64 addr;
-};
-
-/*
- * ioctls for VM fds
- */
-#define KVM_SET_MEMORY_REGION _IOW(KVMIO, 0x40, struct kvm_memory_region)
-/*
- * KVM_CREATE_VCPU receives as a parameter the vcpu slot, and returns
- * a vcpu fd.
- */
-#define KVM_CREATE_VCPU _IO(KVMIO, 0x41)
-#define KVM_GET_DIRTY_LOG _IOW(KVMIO, 0x42, struct kvm_dirty_log)
-/* KVM_SET_MEMORY_ALIAS is obsolete: */
-#define KVM_SET_MEMORY_ALIAS _IOW(KVMIO, 0x43, struct kvm_memory_alias)
-#define KVM_SET_NR_MMU_PAGES _IO(KVMIO, 0x44)
-#define KVM_GET_NR_MMU_PAGES _IO(KVMIO, 0x45)
-#define KVM_SET_USER_MEMORY_REGION _IOW(KVMIO, 0x46, \
- struct kvm_userspace_memory_region)
-#define KVM_SET_TSS_ADDR _IO(KVMIO, 0x47)
-#define KVM_SET_IDENTITY_MAP_ADDR _IOW(KVMIO, 0x48, __u64)
-
-/* enable ucontrol for s390 */
-struct kvm_s390_ucas_mapping {
- __u64 user_addr;
- __u64 vcpu_addr;
- __u64 length;
-};
-#define KVM_S390_UCAS_MAP _IOW(KVMIO, 0x50, struct kvm_s390_ucas_mapping)
-#define KVM_S390_UCAS_UNMAP _IOW(KVMIO, 0x51, struct kvm_s390_ucas_mapping)
-#define KVM_S390_VCPU_FAULT _IOW(KVMIO, 0x52, unsigned long)
-
-/* Device model IOC */
-#define KVM_CREATE_IRQCHIP _IO(KVMIO, 0x60)
-#define KVM_IRQ_LINE _IOW(KVMIO, 0x61, struct kvm_irq_level)
-#define KVM_GET_IRQCHIP _IOWR(KVMIO, 0x62, struct kvm_irqchip)
-#define KVM_SET_IRQCHIP _IOR(KVMIO, 0x63, struct kvm_irqchip)
-#define KVM_CREATE_PIT _IO(KVMIO, 0x64)
-#define KVM_GET_PIT _IOWR(KVMIO, 0x65, struct kvm_pit_state)
-#define KVM_SET_PIT _IOR(KVMIO, 0x66, struct kvm_pit_state)
-#define KVM_IRQ_LINE_STATUS _IOWR(KVMIO, 0x67, struct kvm_irq_level)
-#define KVM_REGISTER_COALESCED_MMIO \
- _IOW(KVMIO, 0x67, struct kvm_coalesced_mmio_zone)
-#define KVM_UNREGISTER_COALESCED_MMIO \
- _IOW(KVMIO, 0x68, struct kvm_coalesced_mmio_zone)
-#define KVM_ASSIGN_PCI_DEVICE _IOR(KVMIO, 0x69, \
- struct kvm_assigned_pci_dev)
-#define KVM_SET_GSI_ROUTING _IOW(KVMIO, 0x6a, struct kvm_irq_routing)
-/* deprecated, replaced by KVM_ASSIGN_DEV_IRQ */
-#define KVM_ASSIGN_IRQ __KVM_DEPRECATED_VM_R_0x70
-#define KVM_ASSIGN_DEV_IRQ _IOW(KVMIO, 0x70, struct kvm_assigned_irq)
-#define KVM_REINJECT_CONTROL _IO(KVMIO, 0x71)
-#define KVM_DEASSIGN_PCI_DEVICE _IOW(KVMIO, 0x72, \
- struct kvm_assigned_pci_dev)
-#define KVM_ASSIGN_SET_MSIX_NR _IOW(KVMIO, 0x73, \
- struct kvm_assigned_msix_nr)
-#define KVM_ASSIGN_SET_MSIX_ENTRY _IOW(KVMIO, 0x74, \
- struct kvm_assigned_msix_entry)
-#define KVM_DEASSIGN_DEV_IRQ _IOW(KVMIO, 0x75, struct kvm_assigned_irq)
-#define KVM_IRQFD _IOW(KVMIO, 0x76, struct kvm_irqfd)
-#define KVM_CREATE_PIT2 _IOW(KVMIO, 0x77, struct kvm_pit_config)
-#define KVM_SET_BOOT_CPU_ID _IO(KVMIO, 0x78)
-#define KVM_IOEVENTFD _IOW(KVMIO, 0x79, struct kvm_ioeventfd)
-#define KVM_XEN_HVM_CONFIG _IOW(KVMIO, 0x7a, struct kvm_xen_hvm_config)
-#define KVM_SET_CLOCK _IOW(KVMIO, 0x7b, struct kvm_clock_data)
-#define KVM_GET_CLOCK _IOR(KVMIO, 0x7c, struct kvm_clock_data)
-/* Available with KVM_CAP_PIT_STATE2 */
-#define KVM_GET_PIT2 _IOR(KVMIO, 0x9f, struct kvm_pit_state2)
-#define KVM_SET_PIT2 _IOW(KVMIO, 0xa0, struct kvm_pit_state2)
-/* Available with KVM_CAP_PPC_GET_PVINFO */
-#define KVM_PPC_GET_PVINFO _IOW(KVMIO, 0xa1, struct kvm_ppc_pvinfo)
-/* Available with KVM_CAP_TSC_CONTROL */
-#define KVM_SET_TSC_KHZ _IO(KVMIO, 0xa2)
-#define KVM_GET_TSC_KHZ _IO(KVMIO, 0xa3)
-/* Available with KVM_CAP_PCI_2_3 */
-#define KVM_ASSIGN_SET_INTX_MASK _IOW(KVMIO, 0xa4, \
- struct kvm_assigned_pci_dev)
-
-/*
- * ioctls for vcpu fds
- */
-#define KVM_RUN _IO(KVMIO, 0x80)
-#define KVM_GET_REGS _IOR(KVMIO, 0x81, struct kvm_regs)
-#define KVM_SET_REGS _IOW(KVMIO, 0x82, struct kvm_regs)
-#define KVM_GET_SREGS _IOR(KVMIO, 0x83, struct kvm_sregs)
-#define KVM_SET_SREGS _IOW(KVMIO, 0x84, struct kvm_sregs)
-#define KVM_TRANSLATE _IOWR(KVMIO, 0x85, struct kvm_translation)
-#define KVM_INTERRUPT _IOW(KVMIO, 0x86, struct kvm_interrupt)
-/* KVM_DEBUG_GUEST is no longer supported, use KVM_SET_GUEST_DEBUG instead */
-#define KVM_DEBUG_GUEST __KVM_DEPRECATED_VCPU_W_0x87
-#define KVM_GET_MSRS _IOWR(KVMIO, 0x88, struct kvm_msrs)
-#define KVM_SET_MSRS _IOW(KVMIO, 0x89, struct kvm_msrs)
-#define KVM_SET_CPUID _IOW(KVMIO, 0x8a, struct kvm_cpuid)
-#define KVM_SET_SIGNAL_MASK _IOW(KVMIO, 0x8b, struct kvm_signal_mask)
-#define KVM_GET_FPU _IOR(KVMIO, 0x8c, struct kvm_fpu)
-#define KVM_SET_FPU _IOW(KVMIO, 0x8d, struct kvm_fpu)
-#define KVM_GET_LAPIC _IOR(KVMIO, 0x8e, struct kvm_lapic_state)
-#define KVM_SET_LAPIC _IOW(KVMIO, 0x8f, struct kvm_lapic_state)
-#define KVM_SET_CPUID2 _IOW(KVMIO, 0x90, struct kvm_cpuid2)
-#define KVM_GET_CPUID2 _IOWR(KVMIO, 0x91, struct kvm_cpuid2)
-/* Available with KVM_CAP_VAPIC */
-#define KVM_TPR_ACCESS_REPORTING _IOWR(KVMIO, 0x92, struct kvm_tpr_access_ctl)
-/* Available with KVM_CAP_VAPIC */
-#define KVM_SET_VAPIC_ADDR _IOW(KVMIO, 0x93, struct kvm_vapic_addr)
-/* valid for virtual machine (for floating interrupt)_and_ vcpu */
-#define KVM_S390_INTERRUPT _IOW(KVMIO, 0x94, struct kvm_s390_interrupt)
-/* store status for s390 */
-#define KVM_S390_STORE_STATUS_NOADDR (-1ul)
-#define KVM_S390_STORE_STATUS_PREFIXED (-2ul)
-#define KVM_S390_STORE_STATUS _IOW(KVMIO, 0x95, unsigned long)
-/* initial ipl psw for s390 */
-#define KVM_S390_SET_INITIAL_PSW _IOW(KVMIO, 0x96, struct kvm_s390_psw)
-/* initial reset for s390 */
-#define KVM_S390_INITIAL_RESET _IO(KVMIO, 0x97)
-#define KVM_GET_MP_STATE _IOR(KVMIO, 0x98, struct kvm_mp_state)
-#define KVM_SET_MP_STATE _IOW(KVMIO, 0x99, struct kvm_mp_state)
-/* Available with KVM_CAP_NMI */
-#define KVM_NMI _IO(KVMIO, 0x9a)
-/* Available with KVM_CAP_SET_GUEST_DEBUG */
-#define KVM_SET_GUEST_DEBUG _IOW(KVMIO, 0x9b, struct kvm_guest_debug)
-/* MCE for x86 */
-#define KVM_X86_SETUP_MCE _IOW(KVMIO, 0x9c, __u64)
-#define KVM_X86_GET_MCE_CAP_SUPPORTED _IOR(KVMIO, 0x9d, __u64)
-#define KVM_X86_SET_MCE _IOW(KVMIO, 0x9e, struct kvm_x86_mce)
-/* IA64 stack access */
-#define KVM_IA64_VCPU_GET_STACK _IOR(KVMIO, 0x9a, void *)
-#define KVM_IA64_VCPU_SET_STACK _IOW(KVMIO, 0x9b, void *)
-/* Available with KVM_CAP_VCPU_EVENTS */
-#define KVM_GET_VCPU_EVENTS _IOR(KVMIO, 0x9f, struct kvm_vcpu_events)
-#define KVM_SET_VCPU_EVENTS _IOW(KVMIO, 0xa0, struct kvm_vcpu_events)
-/* Available with KVM_CAP_DEBUGREGS */
-#define KVM_GET_DEBUGREGS _IOR(KVMIO, 0xa1, struct kvm_debugregs)
-#define KVM_SET_DEBUGREGS _IOW(KVMIO, 0xa2, struct kvm_debugregs)
-#define KVM_ENABLE_CAP _IOW(KVMIO, 0xa3, struct kvm_enable_cap)
-/* Available with KVM_CAP_XSAVE */
-#define KVM_GET_XSAVE _IOR(KVMIO, 0xa4, struct kvm_xsave)
-#define KVM_SET_XSAVE _IOW(KVMIO, 0xa5, struct kvm_xsave)
-/* Available with KVM_CAP_XCRS */
-#define KVM_GET_XCRS _IOR(KVMIO, 0xa6, struct kvm_xcrs)
-#define KVM_SET_XCRS _IOW(KVMIO, 0xa7, struct kvm_xcrs)
-#define KVM_CREATE_SPAPR_TCE _IOW(KVMIO, 0xa8, struct kvm_create_spapr_tce)
-/* Available with KVM_CAP_RMA */
-#define KVM_ALLOCATE_RMA _IOR(KVMIO, 0xa9, struct kvm_allocate_rma)
-/* Available with KVM_CAP_SW_TLB */
-#define KVM_DIRTY_TLB _IOW(KVMIO, 0xaa, struct kvm_dirty_tlb)
-/* Available with KVM_CAP_ONE_REG */
-#define KVM_GET_ONE_REG _IOW(KVMIO, 0xab, struct kvm_one_reg)
-#define KVM_SET_ONE_REG _IOW(KVMIO, 0xac, struct kvm_one_reg)
-
-#define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0)
-#define KVM_DEV_ASSIGN_PCI_2_3 (1 << 1)
-#define KVM_DEV_ASSIGN_MASK_INTX (1 << 2)
-
-struct kvm_assigned_pci_dev {
- __u32 assigned_dev_id;
- __u32 busnr;
- __u32 devfn;
- __u32 flags;
- __u32 segnr;
- union {
- __u32 reserved[11];
- };
-};
-
-#define KVM_DEV_IRQ_HOST_INTX (1 << 0)
-#define KVM_DEV_IRQ_HOST_MSI (1 << 1)
-#define KVM_DEV_IRQ_HOST_MSIX (1 << 2)
-
-#define KVM_DEV_IRQ_GUEST_INTX (1 << 8)
-#define KVM_DEV_IRQ_GUEST_MSI (1 << 9)
-#define KVM_DEV_IRQ_GUEST_MSIX (1 << 10)
-
-#define KVM_DEV_IRQ_HOST_MASK 0x00ff
-#define KVM_DEV_IRQ_GUEST_MASK 0xff00
-
-struct kvm_assigned_irq {
- __u32 assigned_dev_id;
- __u32 host_irq; /* ignored (legacy field) */
- __u32 guest_irq;
- __u32 flags;
- union {
- __u32 reserved[12];
- };
-};
-
-struct kvm_assigned_msix_nr {
- __u32 assigned_dev_id;
- __u16 entry_nr;
- __u16 padding;
-};
-
-#define KVM_MAX_MSIX_PER_DEV 256
-struct kvm_assigned_msix_entry {
- __u32 assigned_dev_id;
- __u32 gsi;
- __u16 entry; /* The index of entry in the MSI-X table */
- __u16 padding[3];
-};
-
-#endif /* __LINUX_KVM_H */
diff --git a/ANDROID_3.4.5/include/linux/kvm_host.h b/ANDROID_3.4.5/include/linux/kvm_host.h
deleted file mode 100644
index 72cbf08d..00000000
--- a/ANDROID_3.4.5/include/linux/kvm_host.h
+++ /dev/null
@@ -1,857 +0,0 @@
-#ifndef __KVM_HOST_H
-#define __KVM_HOST_H
-
-/*
- * This work is licensed under the terms of the GNU GPL, version 2. See
- * the COPYING file in the top-level directory.
- */
-
-#include <linux/types.h>
-#include <linux/hardirq.h>
-#include <linux/list.h>
-#include <linux/mutex.h>
-#include <linux/spinlock.h>
-#include <linux/signal.h>
-#include <linux/sched.h>
-#include <linux/bug.h>
-#include <linux/mm.h>
-#include <linux/mmu_notifier.h>
-#include <linux/preempt.h>
-#include <linux/msi.h>
-#include <linux/slab.h>
-#include <linux/rcupdate.h>
-#include <linux/ratelimit.h>
-#include <asm/signal.h>
-
-#include <linux/kvm.h>
-#include <linux/kvm_para.h>
-
-#include <linux/kvm_types.h>
-
-#include <asm/kvm_host.h>
-
-#ifndef KVM_MMIO_SIZE
-#define KVM_MMIO_SIZE 8
-#endif
-
-/*
- * vcpu->requests bit members
- */
-#define KVM_REQ_TLB_FLUSH 0
-#define KVM_REQ_MIGRATE_TIMER 1
-#define KVM_REQ_REPORT_TPR_ACCESS 2
-#define KVM_REQ_MMU_RELOAD 3
-#define KVM_REQ_TRIPLE_FAULT 4
-#define KVM_REQ_PENDING_TIMER 5
-#define KVM_REQ_UNHALT 6
-#define KVM_REQ_MMU_SYNC 7
-#define KVM_REQ_CLOCK_UPDATE 8
-#define KVM_REQ_KICK 9
-#define KVM_REQ_DEACTIVATE_FPU 10
-#define KVM_REQ_EVENT 11
-#define KVM_REQ_APF_HALT 12
-#define KVM_REQ_STEAL_UPDATE 13
-#define KVM_REQ_NMI 14
-#define KVM_REQ_IMMEDIATE_EXIT 15
-#define KVM_REQ_PMU 16
-#define KVM_REQ_PMI 17
-
-#define KVM_USERSPACE_IRQ_SOURCE_ID 0
-
-struct kvm;
-struct kvm_vcpu;
-extern struct kmem_cache *kvm_vcpu_cache;
-
-struct kvm_io_range {
- gpa_t addr;
- int len;
- struct kvm_io_device *dev;
-};
-
-struct kvm_io_bus {
- int dev_count;
-#define NR_IOBUS_DEVS 300
- struct kvm_io_range range[NR_IOBUS_DEVS];
-};
-
-enum kvm_bus {
- KVM_MMIO_BUS,
- KVM_PIO_BUS,
- KVM_NR_BUSES
-};
-
-int kvm_io_bus_write(struct kvm *kvm, enum kvm_bus bus_idx, gpa_t addr,
- int len, const void *val);
-int kvm_io_bus_read(struct kvm *kvm, enum kvm_bus bus_idx, gpa_t addr, int len,
- void *val);
-int kvm_io_bus_register_dev(struct kvm *kvm, enum kvm_bus bus_idx, gpa_t addr,
- int len, struct kvm_io_device *dev);
-int kvm_io_bus_unregister_dev(struct kvm *kvm, enum kvm_bus bus_idx,
- struct kvm_io_device *dev);
-
-#ifdef CONFIG_KVM_ASYNC_PF
-struct kvm_async_pf {
- struct work_struct work;
- struct list_head link;
- struct list_head queue;
- struct kvm_vcpu *vcpu;
- struct mm_struct *mm;
- gva_t gva;
- unsigned long addr;
- struct kvm_arch_async_pf arch;
- struct page *page;
- bool done;
-};
-
-void kvm_clear_async_pf_completion_queue(struct kvm_vcpu *vcpu);
-void kvm_check_async_pf_completion(struct kvm_vcpu *vcpu);
-int kvm_setup_async_pf(struct kvm_vcpu *vcpu, gva_t gva, gfn_t gfn,
- struct kvm_arch_async_pf *arch);
-int kvm_async_pf_wakeup_all(struct kvm_vcpu *vcpu);
-#endif
-
-enum {
- OUTSIDE_GUEST_MODE,
- IN_GUEST_MODE,
- EXITING_GUEST_MODE
-};
-
-struct kvm_vcpu {
- struct kvm *kvm;
-#ifdef CONFIG_PREEMPT_NOTIFIERS
- struct preempt_notifier preempt_notifier;
-#endif
- int cpu;
- int vcpu_id;
- int srcu_idx;
- int mode;
- unsigned long requests;
- unsigned long guest_debug;
-
- struct mutex mutex;
- struct kvm_run *run;
-
- int fpu_active;
- int guest_fpu_loaded, guest_xcr0_loaded;
- wait_queue_head_t wq;
- struct pid *pid;
- int sigset_active;
- sigset_t sigset;
- struct kvm_vcpu_stat stat;
-
-#ifdef CONFIG_HAS_IOMEM
- int mmio_needed;
- int mmio_read_completed;
- int mmio_is_write;
- int mmio_size;
- int mmio_index;
- unsigned char mmio_data[KVM_MMIO_SIZE];
- gpa_t mmio_phys_addr;
-#endif
-
-#ifdef CONFIG_KVM_ASYNC_PF
- struct {
- u32 queued;
- struct list_head queue;
- struct list_head done;
- spinlock_t lock;
- } async_pf;
-#endif
-
- struct kvm_vcpu_arch arch;
-};
-
-static inline int kvm_vcpu_exiting_guest_mode(struct kvm_vcpu *vcpu)
-{
- return cmpxchg(&vcpu->mode, IN_GUEST_MODE, EXITING_GUEST_MODE);
-}
-
-/*
- * Some of the bitops functions do not support too long bitmaps.
- * This number must be determined not to exceed such limits.
- */
-#define KVM_MEM_MAX_NR_PAGES ((1UL << 31) - 1)
-
-struct kvm_memory_slot {
- gfn_t base_gfn;
- unsigned long npages;
- unsigned long flags;
- unsigned long *rmap;
- unsigned long *dirty_bitmap;
- unsigned long *dirty_bitmap_head;
- unsigned long nr_dirty_pages;
- struct kvm_arch_memory_slot arch;
- unsigned long userspace_addr;
- int user_alloc;
- int id;
-};
-
-static inline unsigned long kvm_dirty_bitmap_bytes(struct kvm_memory_slot *memslot)
-{
- return ALIGN(memslot->npages, BITS_PER_LONG) / 8;
-}
-
-struct kvm_kernel_irq_routing_entry {
- u32 gsi;
- u32 type;
- int (*set)(struct kvm_kernel_irq_routing_entry *e,
- struct kvm *kvm, int irq_source_id, int level);
- union {
- struct {
- unsigned irqchip;
- unsigned pin;
- } irqchip;
- struct msi_msg msi;
- };
- struct hlist_node link;
-};
-
-#ifdef __KVM_HAVE_IOAPIC
-
-struct kvm_irq_routing_table {
- int chip[KVM_NR_IRQCHIPS][KVM_IOAPIC_NUM_PINS];
- struct kvm_kernel_irq_routing_entry *rt_entries;
- u32 nr_rt_entries;
- /*
- * Array indexed by gsi. Each entry contains list of irq chips
- * the gsi is connected to.
- */
- struct hlist_head map[0];
-};
-
-#else
-
-struct kvm_irq_routing_table {};
-
-#endif
-
-#ifndef KVM_MEM_SLOTS_NUM
-#define KVM_MEM_SLOTS_NUM (KVM_MEMORY_SLOTS + KVM_PRIVATE_MEM_SLOTS)
-#endif
-
-/*
- * Note:
- * memslots are not sorted by id anymore, please use id_to_memslot()
- * to get the memslot by its id.
- */
-struct kvm_memslots {
- u64 generation;
- struct kvm_memory_slot memslots[KVM_MEM_SLOTS_NUM];
- /* The mapping table from slot id to the index in memslots[]. */
- int id_to_index[KVM_MEM_SLOTS_NUM];
-};
-
-struct kvm {
- spinlock_t mmu_lock;
- struct mutex slots_lock;
- struct mm_struct *mm; /* userspace tied to this vm */
- struct kvm_memslots *memslots;
- struct srcu_struct srcu;
-#ifdef CONFIG_KVM_APIC_ARCHITECTURE
- u32 bsp_vcpu_id;
-#endif
- struct kvm_vcpu *vcpus[KVM_MAX_VCPUS];
- atomic_t online_vcpus;
- int last_boosted_vcpu;
- struct list_head vm_list;
- struct mutex lock;
- struct kvm_io_bus *buses[KVM_NR_BUSES];
-#ifdef CONFIG_HAVE_KVM_EVENTFD
- struct {
- spinlock_t lock;
- struct list_head items;
- } irqfds;
- struct list_head ioeventfds;
-#endif
- struct kvm_vm_stat stat;
- struct kvm_arch arch;
- atomic_t users_count;
-#ifdef KVM_COALESCED_MMIO_PAGE_OFFSET
- struct kvm_coalesced_mmio_ring *coalesced_mmio_ring;
- spinlock_t ring_lock;
- struct list_head coalesced_zones;
-#endif
-
- struct mutex irq_lock;
-#ifdef CONFIG_HAVE_KVM_IRQCHIP
- /*
- * Update side is protected by irq_lock and,
- * if configured, irqfds.lock.
- */
- struct kvm_irq_routing_table __rcu *irq_routing;
- struct hlist_head mask_notifier_list;
- struct hlist_head irq_ack_notifier_list;
-#endif
-
-#ifdef KVM_ARCH_WANT_MMU_NOTIFIER
- struct mmu_notifier mmu_notifier;
- unsigned long mmu_notifier_seq;
- long mmu_notifier_count;
-#endif
- long tlbs_dirty;
-};
-
-/* The guest did something we don't support. */
-#define pr_unimpl(vcpu, fmt, ...) \
- pr_err_ratelimited("kvm: %i: cpu%i " fmt, \
- current->tgid, (vcpu)->vcpu_id , ## __VA_ARGS__)
-
-#define kvm_printf(kvm, fmt ...) printk(KERN_DEBUG fmt)
-#define vcpu_printf(vcpu, fmt...) kvm_printf(vcpu->kvm, fmt)
-
-static inline struct kvm_vcpu *kvm_get_vcpu(struct kvm *kvm, int i)
-{
- smp_rmb();
- return kvm->vcpus[i];
-}
-
-#define kvm_for_each_vcpu(idx, vcpup, kvm) \
- for (idx = 0; \
- idx < atomic_read(&kvm->online_vcpus) && \
- (vcpup = kvm_get_vcpu(kvm, idx)) != NULL; \
- idx++)
-
-#define kvm_for_each_memslot(memslot, slots) \
- for (memslot = &slots->memslots[0]; \
- memslot < slots->memslots + KVM_MEM_SLOTS_NUM && memslot->npages;\
- memslot++)
-
-int kvm_vcpu_init(struct kvm_vcpu *vcpu, struct kvm *kvm, unsigned id);
-void kvm_vcpu_uninit(struct kvm_vcpu *vcpu);
-
-void vcpu_load(struct kvm_vcpu *vcpu);
-void vcpu_put(struct kvm_vcpu *vcpu);
-
-int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
- struct module *module);
-void kvm_exit(void);
-
-void kvm_get_kvm(struct kvm *kvm);
-void kvm_put_kvm(struct kvm *kvm);
-void update_memslots(struct kvm_memslots *slots, struct kvm_memory_slot *new);
-
-static inline struct kvm_memslots *kvm_memslots(struct kvm *kvm)
-{
- return rcu_dereference_check(kvm->memslots,
- srcu_read_lock_held(&kvm->srcu)
- || lockdep_is_held(&kvm->slots_lock));
-}
-
-static inline struct kvm_memory_slot *
-id_to_memslot(struct kvm_memslots *slots, int id)
-{
- int index = slots->id_to_index[id];
- struct kvm_memory_slot *slot;
-
- slot = &slots->memslots[index];
-
- WARN_ON(slot->id != id);
- return slot;
-}
-
-#define HPA_MSB ((sizeof(hpa_t) * 8) - 1)
-#define HPA_ERR_MASK ((hpa_t)1 << HPA_MSB)
-static inline int is_error_hpa(hpa_t hpa) { return hpa >> HPA_MSB; }
-
-extern struct page *bad_page;
-extern struct page *fault_page;
-
-extern pfn_t bad_pfn;
-extern pfn_t fault_pfn;
-
-int is_error_page(struct page *page);
-int is_error_pfn(pfn_t pfn);
-int is_hwpoison_pfn(pfn_t pfn);
-int is_fault_pfn(pfn_t pfn);
-int is_noslot_pfn(pfn_t pfn);
-int is_invalid_pfn(pfn_t pfn);
-int kvm_is_error_hva(unsigned long addr);
-int kvm_set_memory_region(struct kvm *kvm,
- struct kvm_userspace_memory_region *mem,
- int user_alloc);
-int __kvm_set_memory_region(struct kvm *kvm,
- struct kvm_userspace_memory_region *mem,
- int user_alloc);
-void kvm_arch_free_memslot(struct kvm_memory_slot *free,
- struct kvm_memory_slot *dont);
-int kvm_arch_create_memslot(struct kvm_memory_slot *slot, unsigned long npages);
-int kvm_arch_prepare_memory_region(struct kvm *kvm,
- struct kvm_memory_slot *memslot,
- struct kvm_memory_slot old,
- struct kvm_userspace_memory_region *mem,
- int user_alloc);
-void kvm_arch_commit_memory_region(struct kvm *kvm,
- struct kvm_userspace_memory_region *mem,
- struct kvm_memory_slot old,
- int user_alloc);
-bool kvm_largepages_enabled(void);
-void kvm_disable_largepages(void);
-void kvm_arch_flush_shadow(struct kvm *kvm);
-
-int gfn_to_page_many_atomic(struct kvm *kvm, gfn_t gfn, struct page **pages,
- int nr_pages);
-
-struct page *gfn_to_page(struct kvm *kvm, gfn_t gfn);
-unsigned long gfn_to_hva(struct kvm *kvm, gfn_t gfn);
-void kvm_release_page_clean(struct page *page);
-void kvm_release_page_dirty(struct page *page);
-void kvm_set_page_dirty(struct page *page);
-void kvm_set_page_accessed(struct page *page);
-
-pfn_t hva_to_pfn_atomic(struct kvm *kvm, unsigned long addr);
-pfn_t gfn_to_pfn_atomic(struct kvm *kvm, gfn_t gfn);
-pfn_t gfn_to_pfn_async(struct kvm *kvm, gfn_t gfn, bool *async,
- bool write_fault, bool *writable);
-pfn_t gfn_to_pfn(struct kvm *kvm, gfn_t gfn);
-pfn_t gfn_to_pfn_prot(struct kvm *kvm, gfn_t gfn, bool write_fault,
- bool *writable);
-pfn_t gfn_to_pfn_memslot(struct kvm *kvm,
- struct kvm_memory_slot *slot, gfn_t gfn);
-void kvm_release_pfn_dirty(pfn_t);
-void kvm_release_pfn_clean(pfn_t pfn);
-void kvm_set_pfn_dirty(pfn_t pfn);
-void kvm_set_pfn_accessed(pfn_t pfn);
-void kvm_get_pfn(pfn_t pfn);
-
-int kvm_read_guest_page(struct kvm *kvm, gfn_t gfn, void *data, int offset,
- int len);
-int kvm_read_guest_atomic(struct kvm *kvm, gpa_t gpa, void *data,
- unsigned long len);
-int kvm_read_guest(struct kvm *kvm, gpa_t gpa, void *data, unsigned long len);
-int kvm_read_guest_cached(struct kvm *kvm, struct gfn_to_hva_cache *ghc,
- void *data, unsigned long len);
-int kvm_write_guest_page(struct kvm *kvm, gfn_t gfn, const void *data,
- int offset, int len);
-int kvm_write_guest(struct kvm *kvm, gpa_t gpa, const void *data,
- unsigned long len);
-int kvm_write_guest_cached(struct kvm *kvm, struct gfn_to_hva_cache *ghc,
- void *data, unsigned long len);
-int kvm_gfn_to_hva_cache_init(struct kvm *kvm, struct gfn_to_hva_cache *ghc,
- gpa_t gpa);
-int kvm_clear_guest_page(struct kvm *kvm, gfn_t gfn, int offset, int len);
-int kvm_clear_guest(struct kvm *kvm, gpa_t gpa, unsigned long len);
-struct kvm_memory_slot *gfn_to_memslot(struct kvm *kvm, gfn_t gfn);
-int kvm_is_visible_gfn(struct kvm *kvm, gfn_t gfn);
-unsigned long kvm_host_page_size(struct kvm *kvm, gfn_t gfn);
-void mark_page_dirty(struct kvm *kvm, gfn_t gfn);
-void mark_page_dirty_in_slot(struct kvm *kvm, struct kvm_memory_slot *memslot,
- gfn_t gfn);
-
-void kvm_vcpu_block(struct kvm_vcpu *vcpu);
-void kvm_vcpu_on_spin(struct kvm_vcpu *vcpu);
-void kvm_resched(struct kvm_vcpu *vcpu);
-void kvm_load_guest_fpu(struct kvm_vcpu *vcpu);
-void kvm_put_guest_fpu(struct kvm_vcpu *vcpu);
-
-void kvm_flush_remote_tlbs(struct kvm *kvm);
-void kvm_reload_remote_mmus(struct kvm *kvm);
-
-long kvm_arch_dev_ioctl(struct file *filp,
- unsigned int ioctl, unsigned long arg);
-long kvm_arch_vcpu_ioctl(struct file *filp,
- unsigned int ioctl, unsigned long arg);
-int kvm_arch_vcpu_fault(struct kvm_vcpu *vcpu, struct vm_fault *vmf);
-
-int kvm_dev_ioctl_check_extension(long ext);
-
-int kvm_get_dirty_log(struct kvm *kvm,
- struct kvm_dirty_log *log, int *is_dirty);
-int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm,
- struct kvm_dirty_log *log);
-
-int kvm_vm_ioctl_set_memory_region(struct kvm *kvm,
- struct
- kvm_userspace_memory_region *mem,
- int user_alloc);
-long kvm_arch_vm_ioctl(struct file *filp,
- unsigned int ioctl, unsigned long arg);
-
-int kvm_arch_vcpu_ioctl_get_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu);
-int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu);
-
-int kvm_arch_vcpu_ioctl_translate(struct kvm_vcpu *vcpu,
- struct kvm_translation *tr);
-
-int kvm_arch_vcpu_ioctl_get_regs(struct kvm_vcpu *vcpu, struct kvm_regs *regs);
-int kvm_arch_vcpu_ioctl_set_regs(struct kvm_vcpu *vcpu, struct kvm_regs *regs);
-int kvm_arch_vcpu_ioctl_get_sregs(struct kvm_vcpu *vcpu,
- struct kvm_sregs *sregs);
-int kvm_arch_vcpu_ioctl_set_sregs(struct kvm_vcpu *vcpu,
- struct kvm_sregs *sregs);
-int kvm_arch_vcpu_ioctl_get_mpstate(struct kvm_vcpu *vcpu,
- struct kvm_mp_state *mp_state);
-int kvm_arch_vcpu_ioctl_set_mpstate(struct kvm_vcpu *vcpu,
- struct kvm_mp_state *mp_state);
-int kvm_arch_vcpu_ioctl_set_guest_debug(struct kvm_vcpu *vcpu,
- struct kvm_guest_debug *dbg);
-int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run);
-
-int kvm_arch_init(void *opaque);
-void kvm_arch_exit(void);
-
-int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu);
-void kvm_arch_vcpu_uninit(struct kvm_vcpu *vcpu);
-
-void kvm_arch_vcpu_free(struct kvm_vcpu *vcpu);
-void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu);
-void kvm_arch_vcpu_put(struct kvm_vcpu *vcpu);
-struct kvm_vcpu *kvm_arch_vcpu_create(struct kvm *kvm, unsigned int id);
-int kvm_arch_vcpu_setup(struct kvm_vcpu *vcpu);
-void kvm_arch_vcpu_destroy(struct kvm_vcpu *vcpu);
-
-int kvm_arch_vcpu_reset(struct kvm_vcpu *vcpu);
-int kvm_arch_hardware_enable(void *garbage);
-void kvm_arch_hardware_disable(void *garbage);
-int kvm_arch_hardware_setup(void);
-void kvm_arch_hardware_unsetup(void);
-void kvm_arch_check_processor_compat(void *rtn);
-int kvm_arch_vcpu_runnable(struct kvm_vcpu *vcpu);
-
-void kvm_free_physmem(struct kvm *kvm);
-
-#ifndef __KVM_HAVE_ARCH_VM_ALLOC
-static inline struct kvm *kvm_arch_alloc_vm(void)
-{
- return kzalloc(sizeof(struct kvm), GFP_KERNEL);
-}
-
-static inline void kvm_arch_free_vm(struct kvm *kvm)
-{
- kfree(kvm);
-}
-#endif
-
-int kvm_arch_init_vm(struct kvm *kvm, unsigned long type);
-void kvm_arch_destroy_vm(struct kvm *kvm);
-void kvm_free_all_assigned_devices(struct kvm *kvm);
-void kvm_arch_sync_events(struct kvm *kvm);
-
-int kvm_cpu_has_pending_timer(struct kvm_vcpu *vcpu);
-void kvm_vcpu_kick(struct kvm_vcpu *vcpu);
-
-int kvm_is_mmio_pfn(pfn_t pfn);
-
-struct kvm_irq_ack_notifier {
- struct hlist_node link;
- unsigned gsi;
- void (*irq_acked)(struct kvm_irq_ack_notifier *kian);
-};
-
-struct kvm_assigned_dev_kernel {
- struct kvm_irq_ack_notifier ack_notifier;
- struct list_head list;
- int assigned_dev_id;
- int host_segnr;
- int host_busnr;
- int host_devfn;
- unsigned int entries_nr;
- int host_irq;
- bool host_irq_disabled;
- bool pci_2_3;
- struct msix_entry *host_msix_entries;
- int guest_irq;
- struct msix_entry *guest_msix_entries;
- unsigned long irq_requested_type;
- int irq_source_id;
- int flags;
- struct pci_dev *dev;
- struct kvm *kvm;
- spinlock_t intx_lock;
- spinlock_t intx_mask_lock;
- char irq_name[32];
- struct pci_saved_state *pci_saved_state;
-};
-
-struct kvm_irq_mask_notifier {
- void (*func)(struct kvm_irq_mask_notifier *kimn, bool masked);
- int irq;
- struct hlist_node link;
-};
-
-void kvm_register_irq_mask_notifier(struct kvm *kvm, int irq,
- struct kvm_irq_mask_notifier *kimn);
-void kvm_unregister_irq_mask_notifier(struct kvm *kvm, int irq,
- struct kvm_irq_mask_notifier *kimn);
-void kvm_fire_mask_notifiers(struct kvm *kvm, unsigned irqchip, unsigned pin,
- bool mask);
-
-#ifdef __KVM_HAVE_IOAPIC
-void kvm_get_intr_delivery_bitmask(struct kvm_ioapic *ioapic,
- union kvm_ioapic_redirect_entry *entry,
- unsigned long *deliver_bitmask);
-#endif
-int kvm_set_irq(struct kvm *kvm, int irq_source_id, u32 irq, int level);
-int kvm_set_msi(struct kvm_kernel_irq_routing_entry *irq_entry, struct kvm *kvm,
- int irq_source_id, int level);
-void kvm_notify_acked_irq(struct kvm *kvm, unsigned irqchip, unsigned pin);
-void kvm_register_irq_ack_notifier(struct kvm *kvm,
- struct kvm_irq_ack_notifier *kian);
-void kvm_unregister_irq_ack_notifier(struct kvm *kvm,
- struct kvm_irq_ack_notifier *kian);
-int kvm_request_irq_source_id(struct kvm *kvm);
-void kvm_free_irq_source_id(struct kvm *kvm, int irq_source_id);
-
-/* For vcpu->arch.iommu_flags */
-#define KVM_IOMMU_CACHE_COHERENCY 0x1
-
-#ifdef CONFIG_IOMMU_API
-int kvm_iommu_map_pages(struct kvm *kvm, struct kvm_memory_slot *slot);
-void kvm_iommu_unmap_pages(struct kvm *kvm, struct kvm_memory_slot *slot);
-int kvm_iommu_map_guest(struct kvm *kvm);
-int kvm_iommu_unmap_guest(struct kvm *kvm);
-int kvm_assign_device(struct kvm *kvm,
- struct kvm_assigned_dev_kernel *assigned_dev);
-int kvm_deassign_device(struct kvm *kvm,
- struct kvm_assigned_dev_kernel *assigned_dev);
-#else /* CONFIG_IOMMU_API */
-static inline int kvm_iommu_map_pages(struct kvm *kvm,
- struct kvm_memory_slot *slot)
-{
- return 0;
-}
-
-static inline void kvm_iommu_unmap_pages(struct kvm *kvm,
- struct kvm_memory_slot *slot)
-{
-}
-
-static inline int kvm_iommu_map_guest(struct kvm *kvm)
-{
- return -ENODEV;
-}
-
-static inline int kvm_iommu_unmap_guest(struct kvm *kvm)
-{
- return 0;
-}
-
-static inline int kvm_assign_device(struct kvm *kvm,
- struct kvm_assigned_dev_kernel *assigned_dev)
-{
- return 0;
-}
-
-static inline int kvm_deassign_device(struct kvm *kvm,
- struct kvm_assigned_dev_kernel *assigned_dev)
-{
- return 0;
-}
-#endif /* CONFIG_IOMMU_API */
-
-static inline void kvm_guest_enter(void)
-{
- BUG_ON(preemptible());
- account_system_vtime(current);
- current->flags |= PF_VCPU;
- /* KVM does not hold any references to rcu protected data when it
- * switches CPU into a guest mode. In fact switching to a guest mode
- * is very similar to exiting to userspase from rcu point of view. In
- * addition CPU may stay in a guest mode for quite a long time (up to
- * one time slice). Lets treat guest mode as quiescent state, just like
- * we do with user-mode execution.
- */
- rcu_virt_note_context_switch(smp_processor_id());
-}
-
-static inline void kvm_guest_exit(void)
-{
- account_system_vtime(current);
- current->flags &= ~PF_VCPU;
-}
-
-/*
- * search_memslots() and __gfn_to_memslot() are here because they are
- * used in non-modular code in arch/powerpc/kvm/book3s_hv_rm_mmu.c.
- * gfn_to_memslot() itself isn't here as an inline because that would
- * bloat other code too much.
- */
-static inline struct kvm_memory_slot *
-search_memslots(struct kvm_memslots *slots, gfn_t gfn)
-{
- struct kvm_memory_slot *memslot;
-
- kvm_for_each_memslot(memslot, slots)
- if (gfn >= memslot->base_gfn &&
- gfn < memslot->base_gfn + memslot->npages)
- return memslot;
-
- return NULL;
-}
-
-static inline struct kvm_memory_slot *
-__gfn_to_memslot(struct kvm_memslots *slots, gfn_t gfn)
-{
- return search_memslots(slots, gfn);
-}
-
-static inline int memslot_id(struct kvm *kvm, gfn_t gfn)
-{
- return gfn_to_memslot(kvm, gfn)->id;
-}
-
-static inline gfn_t gfn_to_index(gfn_t gfn, gfn_t base_gfn, int level)
-{
- /* KVM_HPAGE_GFN_SHIFT(PT_PAGE_TABLE_LEVEL) must be 0. */
- return (gfn >> KVM_HPAGE_GFN_SHIFT(level)) -
- (base_gfn >> KVM_HPAGE_GFN_SHIFT(level));
-}
-
-static inline unsigned long gfn_to_hva_memslot(struct kvm_memory_slot *slot,
- gfn_t gfn)
-{
- return slot->userspace_addr + (gfn - slot->base_gfn) * PAGE_SIZE;
-}
-
-static inline gpa_t gfn_to_gpa(gfn_t gfn)
-{
- return (gpa_t)gfn << PAGE_SHIFT;
-}
-
-static inline gfn_t gpa_to_gfn(gpa_t gpa)
-{
- return (gfn_t)(gpa >> PAGE_SHIFT);
-}
-
-static inline hpa_t pfn_to_hpa(pfn_t pfn)
-{
- return (hpa_t)pfn << PAGE_SHIFT;
-}
-
-static inline void kvm_migrate_timers(struct kvm_vcpu *vcpu)
-{
- set_bit(KVM_REQ_MIGRATE_TIMER, &vcpu->requests);
-}
-
-enum kvm_stat_kind {
- KVM_STAT_VM,
- KVM_STAT_VCPU,
-};
-
-struct kvm_stats_debugfs_item {
- const char *name;
- int offset;
- enum kvm_stat_kind kind;
- struct dentry *dentry;
-};
-extern struct kvm_stats_debugfs_item debugfs_entries[];
-extern struct dentry *kvm_debugfs_dir;
-
-#ifdef KVM_ARCH_WANT_MMU_NOTIFIER
-static inline int mmu_notifier_retry(struct kvm_vcpu *vcpu, unsigned long mmu_seq)
-{
- if (unlikely(vcpu->kvm->mmu_notifier_count))
- return 1;
- /*
- * Ensure the read of mmu_notifier_count happens before the read
- * of mmu_notifier_seq. This interacts with the smp_wmb() in
- * mmu_notifier_invalidate_range_end to make sure that the caller
- * either sees the old (non-zero) value of mmu_notifier_count or
- * the new (incremented) value of mmu_notifier_seq.
- * PowerPC Book3s HV KVM calls this under a per-page lock
- * rather than under kvm->mmu_lock, for scalability, so
- * can't rely on kvm->mmu_lock to keep things ordered.
- */
- smp_rmb();
- if (vcpu->kvm->mmu_notifier_seq != mmu_seq)
- return 1;
- return 0;
-}
-#endif
-
-#ifdef CONFIG_HAVE_KVM_IRQCHIP
-
-#define KVM_MAX_IRQ_ROUTES 1024
-
-int kvm_setup_default_irq_routing(struct kvm *kvm);
-int kvm_set_irq_routing(struct kvm *kvm,
- const struct kvm_irq_routing_entry *entries,
- unsigned nr,
- unsigned flags);
-void kvm_free_irq_routing(struct kvm *kvm);
-
-#else
-
-static inline void kvm_free_irq_routing(struct kvm *kvm) {}
-
-#endif
-
-#ifdef CONFIG_HAVE_KVM_EVENTFD
-
-void kvm_eventfd_init(struct kvm *kvm);
-int kvm_irqfd(struct kvm *kvm, int fd, int gsi, int flags);
-void kvm_irqfd_release(struct kvm *kvm);
-void kvm_irq_routing_update(struct kvm *, struct kvm_irq_routing_table *);
-int kvm_ioeventfd(struct kvm *kvm, struct kvm_ioeventfd *args);
-
-#else
-
-static inline void kvm_eventfd_init(struct kvm *kvm) {}
-
-static inline int kvm_irqfd(struct kvm *kvm, int fd, int gsi, int flags)
-{
- return -EINVAL;
-}
-
-static inline void kvm_irqfd_release(struct kvm *kvm) {}
-
-#ifdef CONFIG_HAVE_KVM_IRQCHIP
-static inline void kvm_irq_routing_update(struct kvm *kvm,
- struct kvm_irq_routing_table *irq_rt)
-{
- rcu_assign_pointer(kvm->irq_routing, irq_rt);
-}
-#endif
-
-static inline int kvm_ioeventfd(struct kvm *kvm, struct kvm_ioeventfd *args)
-{
- return -ENOSYS;
-}
-
-#endif /* CONFIG_HAVE_KVM_EVENTFD */
-
-#ifdef CONFIG_KVM_APIC_ARCHITECTURE
-static inline bool kvm_vcpu_is_bsp(struct kvm_vcpu *vcpu)
-{
- return vcpu->kvm->bsp_vcpu_id == vcpu->vcpu_id;
-}
-
-bool kvm_vcpu_compatible(struct kvm_vcpu *vcpu);
-
-#else
-
-static inline bool kvm_vcpu_compatible(struct kvm_vcpu *vcpu) { return true; }
-
-#endif
-
-#ifdef __KVM_HAVE_DEVICE_ASSIGNMENT
-
-long kvm_vm_ioctl_assigned_device(struct kvm *kvm, unsigned ioctl,
- unsigned long arg);
-
-#else
-
-static inline long kvm_vm_ioctl_assigned_device(struct kvm *kvm, unsigned ioctl,
- unsigned long arg)
-{
- return -ENOTTY;
-}
-
-#endif
-
-static inline void kvm_make_request(int req, struct kvm_vcpu *vcpu)
-{
- set_bit(req, &vcpu->requests);
-}
-
-static inline bool kvm_check_request(int req, struct kvm_vcpu *vcpu)
-{
- if (test_bit(req, &vcpu->requests)) {
- clear_bit(req, &vcpu->requests);
- return true;
- } else {
- return false;
- }
-}
-
-#endif
-
diff --git a/ANDROID_3.4.5/include/linux/kvm_para.h b/ANDROID_3.4.5/include/linux/kvm_para.h
deleted file mode 100644
index ff476dda..00000000
--- a/ANDROID_3.4.5/include/linux/kvm_para.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef __LINUX_KVM_PARA_H
-#define __LINUX_KVM_PARA_H
-
-/*
- * This header file provides a method for making a hypercall to the host
- * Architectures should define:
- * - kvm_hypercall0, kvm_hypercall1...
- * - kvm_arch_para_features
- * - kvm_para_available
- */
-
-/* Return values for hypercalls */
-#define KVM_ENOSYS 1000
-#define KVM_EFAULT EFAULT
-#define KVM_E2BIG E2BIG
-#define KVM_EPERM EPERM
-
-#define KVM_HC_VAPIC_POLL_IRQ 1
-#define KVM_HC_MMU_OP 2
-#define KVM_HC_FEATURES 3
-#define KVM_HC_PPC_MAP_MAGIC_PAGE 4
-
-/*
- * hypercalls use architecture specific
- */
-#include <asm/kvm_para.h>
-
-#ifdef __KERNEL__
-
-static inline int kvm_para_has_feature(unsigned int feature)
-{
- if (kvm_arch_para_features() & (1UL << feature))
- return 1;
- return 0;
-}
-#endif /* __KERNEL__ */
-#endif /* __LINUX_KVM_PARA_H */
diff --git a/ANDROID_3.4.5/include/linux/kvm_types.h b/ANDROID_3.4.5/include/linux/kvm_types.h
deleted file mode 100644
index fa7cc724..00000000
--- a/ANDROID_3.4.5/include/linux/kvm_types.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * 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.
- *
- * 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, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- */
-
-#ifndef __KVM_TYPES_H__
-#define __KVM_TYPES_H__
-
-#include <asm/types.h>
-
-/*
- * Address types:
- *
- * gva - guest virtual address
- * gpa - guest physical address
- * gfn - guest frame number
- * hva - host virtual address
- * hpa - host physical address
- * hfn - host frame number
- */
-
-typedef unsigned long gva_t;
-typedef u64 gpa_t;
-typedef u64 gfn_t;
-
-typedef unsigned long hva_t;
-typedef u64 hpa_t;
-typedef u64 hfn_t;
-
-typedef hfn_t pfn_t;
-
-union kvm_ioapic_redirect_entry {
- u64 bits;
- struct {
- u8 vector;
- u8 delivery_mode:3;
- u8 dest_mode:1;
- u8 delivery_status:1;
- u8 polarity:1;
- u8 remote_irr:1;
- u8 trig_mode:1;
- u8 mask:1;
- u8 reserve:7;
- u8 reserved[4];
- u8 dest_id;
- } fields;
-};
-
-struct kvm_lapic_irq {
- u32 vector;
- u32 delivery_mode;
- u32 dest_mode;
- u32 level;
- u32 trig_mode;
- u32 shorthand;
- u32 dest_id;
-};
-
-struct gfn_to_hva_cache {
- u64 generation;
- gpa_t gpa;
- unsigned long hva;
- struct kvm_memory_slot *memslot;
-};
-
-#endif /* __KVM_TYPES_H__ */
diff --git a/ANDROID_3.4.5/include/linux/l2tp.h b/ANDROID_3.4.5/include/linux/l2tp.h
deleted file mode 100644
index e77d7f9b..00000000
--- a/ANDROID_3.4.5/include/linux/l2tp.h
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * L2TP-over-IP socket for L2TPv3.
- *
- * Author: James Chapman <jchapman@katalix.com>
- */
-
-#ifndef _LINUX_L2TP_H_
-#define _LINUX_L2TP_H_
-
-#include <linux/types.h>
-#include <linux/socket.h>
-#ifdef __KERNEL__
-#include <linux/in.h>
-#else
-#include <netinet/in.h>
-#endif
-
-#define IPPROTO_L2TP 115
-
-/**
- * struct sockaddr_l2tpip - the sockaddr structure for L2TP-over-IP sockets
- * @l2tp_family: address family number AF_L2TPIP.
- * @l2tp_addr: protocol specific address information
- * @l2tp_conn_id: connection id of tunnel
- */
-#define __SOCK_SIZE__ 16 /* sizeof(struct sockaddr) */
-struct sockaddr_l2tpip {
- /* The first fields must match struct sockaddr_in */
- __kernel_sa_family_t l2tp_family; /* AF_INET */
- __be16 l2tp_unused; /* INET port number (unused) */
- struct in_addr l2tp_addr; /* Internet address */
-
- __u32 l2tp_conn_id; /* Connection ID of tunnel */
-
- /* Pad to size of `struct sockaddr'. */
- unsigned char __pad[sizeof(struct sockaddr) -
- sizeof(__kernel_sa_family_t) -
- sizeof(__be16) - sizeof(struct in_addr) -
- sizeof(__u32)];
-};
-
-/*****************************************************************************
- * NETLINK_GENERIC netlink family.
- *****************************************************************************/
-
-/*
- * Commands.
- * Valid TLVs of each command are:-
- * TUNNEL_CREATE - CONN_ID, pw_type, netns, ifname, ipinfo, udpinfo, udpcsum, vlanid
- * TUNNEL_DELETE - CONN_ID
- * TUNNEL_MODIFY - CONN_ID, udpcsum
- * TUNNEL_GETSTATS - CONN_ID, (stats)
- * TUNNEL_GET - CONN_ID, (...)
- * SESSION_CREATE - SESSION_ID, PW_TYPE, offset, data_seq, cookie, peer_cookie, offset, l2spec
- * SESSION_DELETE - SESSION_ID
- * SESSION_MODIFY - SESSION_ID, data_seq
- * SESSION_GET - SESSION_ID, (...)
- * SESSION_GETSTATS - SESSION_ID, (stats)
- *
- */
-enum {
- L2TP_CMD_NOOP,
- L2TP_CMD_TUNNEL_CREATE,
- L2TP_CMD_TUNNEL_DELETE,
- L2TP_CMD_TUNNEL_MODIFY,
- L2TP_CMD_TUNNEL_GET,
- L2TP_CMD_SESSION_CREATE,
- L2TP_CMD_SESSION_DELETE,
- L2TP_CMD_SESSION_MODIFY,
- L2TP_CMD_SESSION_GET,
- __L2TP_CMD_MAX,
-};
-
-#define L2TP_CMD_MAX (__L2TP_CMD_MAX - 1)
-
-/*
- * ATTR types defined for L2TP
- */
-enum {
- L2TP_ATTR_NONE, /* no data */
- L2TP_ATTR_PW_TYPE, /* u16, enum l2tp_pwtype */
- L2TP_ATTR_ENCAP_TYPE, /* u16, enum l2tp_encap_type */
- L2TP_ATTR_OFFSET, /* u16 */
- L2TP_ATTR_DATA_SEQ, /* u16 */
- L2TP_ATTR_L2SPEC_TYPE, /* u8, enum l2tp_l2spec_type */
- L2TP_ATTR_L2SPEC_LEN, /* u8, enum l2tp_l2spec_type */
- L2TP_ATTR_PROTO_VERSION, /* u8 */
- L2TP_ATTR_IFNAME, /* string */
- L2TP_ATTR_CONN_ID, /* u32 */
- L2TP_ATTR_PEER_CONN_ID, /* u32 */
- L2TP_ATTR_SESSION_ID, /* u32 */
- L2TP_ATTR_PEER_SESSION_ID, /* u32 */
- L2TP_ATTR_UDP_CSUM, /* u8 */
- L2TP_ATTR_VLAN_ID, /* u16 */
- L2TP_ATTR_COOKIE, /* 0, 4 or 8 bytes */
- L2TP_ATTR_PEER_COOKIE, /* 0, 4 or 8 bytes */
- L2TP_ATTR_DEBUG, /* u32 */
- L2TP_ATTR_RECV_SEQ, /* u8 */
- L2TP_ATTR_SEND_SEQ, /* u8 */
- L2TP_ATTR_LNS_MODE, /* u8 */
- L2TP_ATTR_USING_IPSEC, /* u8 */
- L2TP_ATTR_RECV_TIMEOUT, /* msec */
- L2TP_ATTR_FD, /* int */
- L2TP_ATTR_IP_SADDR, /* u32 */
- L2TP_ATTR_IP_DADDR, /* u32 */
- L2TP_ATTR_UDP_SPORT, /* u16 */
- L2TP_ATTR_UDP_DPORT, /* u16 */
- L2TP_ATTR_MTU, /* u16 */
- L2TP_ATTR_MRU, /* u16 */
- L2TP_ATTR_STATS, /* nested */
- __L2TP_ATTR_MAX,
-};
-
-#define L2TP_ATTR_MAX (__L2TP_ATTR_MAX - 1)
-
-/* Nested in L2TP_ATTR_STATS */
-enum {
- L2TP_ATTR_STATS_NONE, /* no data */
- L2TP_ATTR_TX_PACKETS, /* u64 */
- L2TP_ATTR_TX_BYTES, /* u64 */
- L2TP_ATTR_TX_ERRORS, /* u64 */
- L2TP_ATTR_RX_PACKETS, /* u64 */
- L2TP_ATTR_RX_BYTES, /* u64 */
- L2TP_ATTR_RX_SEQ_DISCARDS, /* u64 */
- L2TP_ATTR_RX_OOS_PACKETS, /* u64 */
- L2TP_ATTR_RX_ERRORS, /* u64 */
- __L2TP_ATTR_STATS_MAX,
-};
-
-#define L2TP_ATTR_STATS_MAX (__L2TP_ATTR_STATS_MAX - 1)
-
-enum l2tp_pwtype {
- L2TP_PWTYPE_NONE = 0x0000,
- L2TP_PWTYPE_ETH_VLAN = 0x0004,
- L2TP_PWTYPE_ETH = 0x0005,
- L2TP_PWTYPE_PPP = 0x0007,
- L2TP_PWTYPE_PPP_AC = 0x0008,
- L2TP_PWTYPE_IP = 0x000b,
- __L2TP_PWTYPE_MAX
-};
-
-enum l2tp_l2spec_type {
- L2TP_L2SPECTYPE_NONE,
- L2TP_L2SPECTYPE_DEFAULT,
-};
-
-enum l2tp_encap_type {
- L2TP_ENCAPTYPE_UDP,
- L2TP_ENCAPTYPE_IP,
-};
-
-enum l2tp_seqmode {
- L2TP_SEQ_NONE = 0,
- L2TP_SEQ_IP = 1,
- L2TP_SEQ_ALL = 2,
-};
-
-/*
- * NETLINK_GENERIC related info
- */
-#define L2TP_GENL_NAME "l2tp"
-#define L2TP_GENL_VERSION 0x1
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/lapb.h b/ANDROID_3.4.5/include/linux/lapb.h
deleted file mode 100644
index 873c1eb6..00000000
--- a/ANDROID_3.4.5/include/linux/lapb.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * These are the public elements of the Linux LAPB module.
- */
-
-#ifndef LAPB_KERNEL_H
-#define LAPB_KERNEL_H
-
-#define LAPB_OK 0
-#define LAPB_BADTOKEN 1
-#define LAPB_INVALUE 2
-#define LAPB_CONNECTED 3
-#define LAPB_NOTCONNECTED 4
-#define LAPB_REFUSED 5
-#define LAPB_TIMEDOUT 6
-#define LAPB_NOMEM 7
-
-#define LAPB_STANDARD 0x00
-#define LAPB_EXTENDED 0x01
-
-#define LAPB_SLP 0x00
-#define LAPB_MLP 0x02
-
-#define LAPB_DTE 0x00
-#define LAPB_DCE 0x04
-
-struct lapb_register_struct {
- void (*connect_confirmation)(struct net_device *dev, int reason);
- void (*connect_indication)(struct net_device *dev, int reason);
- void (*disconnect_confirmation)(struct net_device *dev, int reason);
- void (*disconnect_indication)(struct net_device *dev, int reason);
- int (*data_indication)(struct net_device *dev, struct sk_buff *skb);
- void (*data_transmit)(struct net_device *dev, struct sk_buff *skb);
-};
-
-struct lapb_parms_struct {
- unsigned int t1;
- unsigned int t1timer;
- unsigned int t2;
- unsigned int t2timer;
- unsigned int n2;
- unsigned int n2count;
- unsigned int window;
- unsigned int state;
- unsigned int mode;
-};
-
-extern int lapb_register(struct net_device *dev,
- const struct lapb_register_struct *callbacks);
-extern int lapb_unregister(struct net_device *dev);
-extern int lapb_getparms(struct net_device *dev, struct lapb_parms_struct *parms);
-extern int lapb_setparms(struct net_device *dev, struct lapb_parms_struct *parms);
-extern int lapb_connect_request(struct net_device *dev);
-extern int lapb_disconnect_request(struct net_device *dev);
-extern int lapb_data_request(struct net_device *dev, struct sk_buff *skb);
-extern int lapb_data_received(struct net_device *dev, struct sk_buff *skb);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/latencytop.h b/ANDROID_3.4.5/include/linux/latencytop.h
deleted file mode 100644
index e23121f9..00000000
--- a/ANDROID_3.4.5/include/linux/latencytop.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * latencytop.h: Infrastructure for displaying latency
- *
- * (C) Copyright 2008 Intel Corporation
- * Author: Arjan van de Ven <arjan@linux.intel.com>
- *
- */
-
-#ifndef _INCLUDE_GUARD_LATENCYTOP_H_
-#define _INCLUDE_GUARD_LATENCYTOP_H_
-
-#include <linux/compiler.h>
-struct task_struct;
-
-#ifdef CONFIG_LATENCYTOP
-
-#define LT_SAVECOUNT 32
-#define LT_BACKTRACEDEPTH 12
-
-struct latency_record {
- unsigned long backtrace[LT_BACKTRACEDEPTH];
- unsigned int count;
- unsigned long time;
- unsigned long max;
-};
-
-
-
-extern int latencytop_enabled;
-void __account_scheduler_latency(struct task_struct *task, int usecs, int inter);
-static inline void
-account_scheduler_latency(struct task_struct *task, int usecs, int inter)
-{
- if (unlikely(latencytop_enabled))
- __account_scheduler_latency(task, usecs, inter);
-}
-
-void clear_all_latency_tracing(struct task_struct *p);
-
-#else
-
-static inline void
-account_scheduler_latency(struct task_struct *task, int usecs, int inter)
-{
-}
-
-static inline void clear_all_latency_tracing(struct task_struct *p)
-{
-}
-
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/lcd.h b/ANDROID_3.4.5/include/linux/lcd.h
deleted file mode 100644
index 8877123f..00000000
--- a/ANDROID_3.4.5/include/linux/lcd.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * LCD Lowlevel Control Abstraction
- *
- * Copyright (C) 2003,2004 Hewlett-Packard Company
- *
- */
-
-#ifndef _LINUX_LCD_H
-#define _LINUX_LCD_H
-
-#include <linux/device.h>
-#include <linux/mutex.h>
-#include <linux/notifier.h>
-#include <linux/fb.h>
-
-/* Notes on locking:
- *
- * lcd_device->ops_lock is an internal backlight lock protecting the ops
- * field and no code outside the core should need to touch it.
- *
- * Access to set_power() is serialised by the update_lock mutex since
- * most drivers seem to need this and historically get it wrong.
- *
- * Most drivers don't need locking on their get_power() method.
- * If yours does, you need to implement it in the driver. You can use the
- * update_lock mutex if appropriate.
- *
- * Any other use of the locks below is probably wrong.
- */
-
-struct lcd_device;
-struct fb_info;
-
-struct lcd_properties {
- /* The maximum value for contrast (read-only) */
- int max_contrast;
-};
-
-struct lcd_ops {
- /* Get the LCD panel power status (0: full on, 1..3: controller
- power on, flat panel power off, 4: full off), see FB_BLANK_XXX */
- int (*get_power)(struct lcd_device *);
- /* Enable or disable power to the LCD (0: on; 4: off, see FB_BLANK_XXX) */
- int (*set_power)(struct lcd_device *, int power);
- /* Get the current contrast setting (0-max_contrast) */
- int (*get_contrast)(struct lcd_device *);
- /* Set LCD panel contrast */
- int (*set_contrast)(struct lcd_device *, int contrast);
- /* Set LCD panel mode (resolutions ...) */
- int (*set_mode)(struct lcd_device *, struct fb_videomode *);
- /* Check if given framebuffer device is the one LCD is bound to;
- return 0 if not, !=0 if it is. If NULL, lcd always matches the fb. */
- int (*check_fb)(struct lcd_device *, struct fb_info *);
-};
-
-struct lcd_device {
- struct lcd_properties props;
- /* This protects the 'ops' field. If 'ops' is NULL, the driver that
- registered this device has been unloaded, and if class_get_devdata()
- points to something in the body of that driver, it is also invalid. */
- struct mutex ops_lock;
- /* If this is NULL, the backing module is unloaded */
- struct lcd_ops *ops;
- /* Serialise access to set_power method */
- struct mutex update_lock;
- /* The framebuffer notifier block */
- struct notifier_block fb_notif;
-
- struct device dev;
-};
-
-struct lcd_platform_data {
- /* reset lcd panel device. */
- int (*reset)(struct lcd_device *ld);
- /* on or off to lcd panel. if 'enable' is 0 then
- lcd power off and 1, lcd power on. */
- int (*power_on)(struct lcd_device *ld, int enable);
-
- /* it indicates whether lcd panel was enabled
- from bootloader or not. */
- int lcd_enabled;
- /* it means delay for stable time when it becomes low to high
- or high to low that is dependent on whether reset gpio is
- low active or high active. */
- unsigned int reset_delay;
- /* stable time needing to become lcd power on. */
- unsigned int power_on_delay;
- /* stable time needing to become lcd power off. */
- unsigned int power_off_delay;
-
- /* it could be used for any purpose. */
- void *pdata;
-};
-
-static inline void lcd_set_power(struct lcd_device *ld, int power)
-{
- mutex_lock(&ld->update_lock);
- if (ld->ops && ld->ops->set_power)
- ld->ops->set_power(ld, power);
- mutex_unlock(&ld->update_lock);
-}
-
-extern struct lcd_device *lcd_device_register(const char *name,
- struct device *parent, void *devdata, struct lcd_ops *ops);
-extern void lcd_device_unregister(struct lcd_device *ld);
-
-#define to_lcd_device(obj) container_of(obj, struct lcd_device, dev)
-
-static inline void * lcd_get_data(struct lcd_device *ld_dev)
-{
- return dev_get_drvdata(&ld_dev->dev);
-}
-
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/lcm.h b/ANDROID_3.4.5/include/linux/lcm.h
deleted file mode 100644
index 7bf01d77..00000000
--- a/ANDROID_3.4.5/include/linux/lcm.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef _LCM_H
-#define _LCM_H
-
-#include <linux/compiler.h>
-
-unsigned long lcm(unsigned long a, unsigned long b) __attribute_const__;
-
-#endif /* _LCM_H */
diff --git a/ANDROID_3.4.5/include/linux/led-lm3530.h b/ANDROID_3.4.5/include/linux/led-lm3530.h
deleted file mode 100644
index eeae6e74..00000000
--- a/ANDROID_3.4.5/include/linux/led-lm3530.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright (C) 2011 ST-Ericsson SA.
- * Copyright (C) 2009 Motorola, Inc.
- *
- * License Terms: GNU General Public License v2
- *
- * Simple driver for National Semiconductor LM35330 Backlight driver chip
- *
- * Author: Shreshtha Kumar SAHU <shreshthakumar.sahu@stericsson.com>
- * based on leds-lm3530.c by Dan Murphy <D.Murphy@motorola.com>
- */
-
-#ifndef _LINUX_LED_LM3530_H__
-#define _LINUX_LED_LM3530_H__
-
-#define LM3530_FS_CURR_5mA (0) /* Full Scale Current */
-#define LM3530_FS_CURR_8mA (1)
-#define LM3530_FS_CURR_12mA (2)
-#define LM3530_FS_CURR_15mA (3)
-#define LM3530_FS_CURR_19mA (4)
-#define LM3530_FS_CURR_22mA (5)
-#define LM3530_FS_CURR_26mA (6)
-#define LM3530_FS_CURR_29mA (7)
-
-#define LM3530_ALS_AVRG_TIME_32ms (0) /* ALS Averaging Time */
-#define LM3530_ALS_AVRG_TIME_64ms (1)
-#define LM3530_ALS_AVRG_TIME_128ms (2)
-#define LM3530_ALS_AVRG_TIME_256ms (3)
-#define LM3530_ALS_AVRG_TIME_512ms (4)
-#define LM3530_ALS_AVRG_TIME_1024ms (5)
-#define LM3530_ALS_AVRG_TIME_2048ms (6)
-#define LM3530_ALS_AVRG_TIME_4096ms (7)
-
-#define LM3530_RAMP_TIME_1ms (0) /* Brigtness Ramp Time */
-#define LM3530_RAMP_TIME_130ms (1) /* Max to 0 and vice versa */
-#define LM3530_RAMP_TIME_260ms (2)
-#define LM3530_RAMP_TIME_520ms (3)
-#define LM3530_RAMP_TIME_1s (4)
-#define LM3530_RAMP_TIME_2s (5)
-#define LM3530_RAMP_TIME_4s (6)
-#define LM3530_RAMP_TIME_8s (7)
-
-/* ALS Resistor Select */
-#define LM3530_ALS_IMPD_Z (0x00) /* ALS Impedance */
-#define LM3530_ALS_IMPD_13_53kOhm (0x01)
-#define LM3530_ALS_IMPD_9_01kOhm (0x02)
-#define LM3530_ALS_IMPD_5_41kOhm (0x03)
-#define LM3530_ALS_IMPD_2_27kOhm (0x04)
-#define LM3530_ALS_IMPD_1_94kOhm (0x05)
-#define LM3530_ALS_IMPD_1_81kOhm (0x06)
-#define LM3530_ALS_IMPD_1_6kOhm (0x07)
-#define LM3530_ALS_IMPD_1_138kOhm (0x08)
-#define LM3530_ALS_IMPD_1_05kOhm (0x09)
-#define LM3530_ALS_IMPD_1_011kOhm (0x0A)
-#define LM3530_ALS_IMPD_941Ohm (0x0B)
-#define LM3530_ALS_IMPD_759Ohm (0x0C)
-#define LM3530_ALS_IMPD_719Ohm (0x0D)
-#define LM3530_ALS_IMPD_700Ohm (0x0E)
-#define LM3530_ALS_IMPD_667Ohm (0x0F)
-
-enum lm3530_mode {
- LM3530_BL_MODE_MANUAL = 0, /* "man" */
- LM3530_BL_MODE_ALS, /* "als" */
- LM3530_BL_MODE_PWM, /* "pwm" */
-};
-
-/* ALS input select */
-enum lm3530_als_mode {
- LM3530_INPUT_AVRG = 0, /* ALS1 and ALS2 input average */
- LM3530_INPUT_ALS1, /* ALS1 Input */
- LM3530_INPUT_ALS2, /* ALS2 Input */
- LM3530_INPUT_CEIL, /* Max of ALS1 and ALS2 */
-};
-
-/* PWM Platform Specific Data */
-struct lm3530_pwm_data {
- void (*pwm_set_intensity) (int brightness, int max_brightness);
- int (*pwm_get_intensity) (int max_brightness);
-};
-
-/**
- * struct lm3530_platform_data
- * @mode: mode of operation i.e. Manual, ALS or PWM
- * @als_input_mode: select source of ALS input - ALS1/2 or average
- * @max_current: full scale LED current
- * @pwm_pol_hi: PWM input polarity - active high/active low
- * @als_avrg_time: ALS input averaging time
- * @brt_ramp_law: brightness mapping mode - exponential/linear
- * @brt_ramp_fall: rate of fall of led current
- * @brt_ramp_rise: rate of rise of led current
- * @als1_resistor_sel: internal resistance from ALS1 input to ground
- * @als2_resistor_sel: internal resistance from ALS2 input to ground
- * @als_vmin: als input voltage calibrated for max brightness in mV
- * @als_vmax: als input voltage calibrated for min brightness in mV
- * @brt_val: brightness value (0-255)
- * @pwm_data: PWM control functions (only valid when the mode is PWM)
- */
-struct lm3530_platform_data {
- enum lm3530_mode mode;
- enum lm3530_als_mode als_input_mode;
-
- u8 max_current;
- bool pwm_pol_hi;
- u8 als_avrg_time;
-
- bool brt_ramp_law;
- u8 brt_ramp_fall;
- u8 brt_ramp_rise;
-
- u8 als1_resistor_sel;
- u8 als2_resistor_sel;
-
- u32 als_vmin;
- u32 als_vmax;
-
- u8 brt_val;
-
- struct lm3530_pwm_data pwm_data;
-};
-
-#endif /* _LINUX_LED_LM3530_H__ */
diff --git a/ANDROID_3.4.5/include/linux/leds-bd2802.h b/ANDROID_3.4.5/include/linux/leds-bd2802.h
deleted file mode 100644
index 42f854a1..00000000
--- a/ANDROID_3.4.5/include/linux/leds-bd2802.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * leds-bd2802.h - RGB LED Driver
- *
- * Copyright (C) 2009 Samsung Electronics
- * Kim Kyuwon <q1.kim@samsung.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.
- *
- * Datasheet: http://www.rohm.com/products/databook/driver/pdf/bd2802gu-e.pdf
- *
- */
-#ifndef _LEDS_BD2802_H_
-#define _LEDS_BD2802_H_
-
-struct bd2802_led_platform_data{
- int reset_gpio;
- u8 rgb_time;
-};
-
-#define RGB_TIME(slopedown, slopeup, waveform) \
- ((slopedown) << 6 | (slopeup) << 4 | (waveform))
-
-#endif /* _LEDS_BD2802_H_ */
-
diff --git a/ANDROID_3.4.5/include/linux/leds-lp3944.h b/ANDROID_3.4.5/include/linux/leds-lp3944.h
deleted file mode 100644
index 2618aa90..00000000
--- a/ANDROID_3.4.5/include/linux/leds-lp3944.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * leds-lp3944.h - platform data structure for lp3944 led controller
- *
- * Copyright (C) 2009 Antonio Ospite <ospite@studenti.unina.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.
- *
- */
-
-#ifndef __LINUX_LEDS_LP3944_H
-#define __LINUX_LEDS_LP3944_H
-
-#define LP3944_LED0 0
-#define LP3944_LED1 1
-#define LP3944_LED2 2
-#define LP3944_LED3 3
-#define LP3944_LED4 4
-#define LP3944_LED5 5
-#define LP3944_LED6 6
-#define LP3944_LED7 7
-#define LP3944_LEDS_MAX 8
-
-#define LP3944_LED_STATUS_MASK 0x03
-enum lp3944_status {
- LP3944_LED_STATUS_OFF = 0x0,
- LP3944_LED_STATUS_ON = 0x1,
- LP3944_LED_STATUS_DIM0 = 0x2,
- LP3944_LED_STATUS_DIM1 = 0x3
-};
-
-enum lp3944_type {
- LP3944_LED_TYPE_NONE,
- LP3944_LED_TYPE_LED,
- LP3944_LED_TYPE_LED_INVERTED,
-};
-
-struct lp3944_led {
- char *name;
- enum lp3944_type type;
- enum lp3944_status status;
-};
-
-struct lp3944_platform_data {
- struct lp3944_led leds[LP3944_LEDS_MAX];
- u8 leds_size;
-};
-
-#endif /* __LINUX_LEDS_LP3944_H */
diff --git a/ANDROID_3.4.5/include/linux/leds-lp5521.h b/ANDROID_3.4.5/include/linux/leds-lp5521.h
deleted file mode 100644
index 3f071ec0..00000000
--- a/ANDROID_3.4.5/include/linux/leds-lp5521.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * LP5521 LED chip driver.
- *
- * Copyright (C) 2010 Nokia Corporation
- *
- * Contact: Samu Onkalo <samu.p.onkalo@nokia.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.
- *
- * 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 __LINUX_LP5521_H
-#define __LINUX_LP5521_H
-
-/* See Documentation/leds/leds-lp5521.txt */
-
-struct lp5521_led_config {
- char *name;
- u8 chan_nr;
- u8 led_current; /* mA x10, 0 if led is not connected */
- u8 max_current;
-};
-
-struct lp5521_led_pattern {
- u8 *r;
- u8 *g;
- u8 *b;
- u8 size_r;
- u8 size_g;
- u8 size_b;
-};
-
-#define LP5521_CLOCK_AUTO 0
-#define LP5521_CLOCK_INT 1
-#define LP5521_CLOCK_EXT 2
-
-/* Bits in CONFIG register */
-#define LP5521_PWM_HF 0x40 /* PWM: 0 = 256Hz, 1 = 558Hz */
-#define LP5521_PWRSAVE_EN 0x20 /* 1 = Power save mode */
-#define LP5521_CP_MODE_OFF 0 /* Charge pump (CP) off */
-#define LP5521_CP_MODE_BYPASS 8 /* CP forced to bypass mode */
-#define LP5521_CP_MODE_1X5 0x10 /* CP forced to 1.5x mode */
-#define LP5521_CP_MODE_AUTO 0x18 /* Automatic mode selection */
-#define LP5521_R_TO_BATT 4 /* R out: 0 = CP, 1 = Vbat */
-#define LP5521_CLK_SRC_EXT 0 /* Ext-clk source (CLK_32K) */
-#define LP5521_CLK_INT 1 /* Internal clock */
-#define LP5521_CLK_AUTO 2 /* Automatic clock selection */
-
-struct lp5521_platform_data {
- struct lp5521_led_config *led_config;
- u8 num_channels;
- u8 clock_mode;
- int (*setup_resources)(void);
- void (*release_resources)(void);
- void (*enable)(bool state);
- const char *label;
- u8 update_config;
- struct lp5521_led_pattern *patterns;
- int num_patterns;
-};
-
-#endif /* __LINUX_LP5521_H */
diff --git a/ANDROID_3.4.5/include/linux/leds-lp5523.h b/ANDROID_3.4.5/include/linux/leds-lp5523.h
deleted file mode 100644
index 2694289b..00000000
--- a/ANDROID_3.4.5/include/linux/leds-lp5523.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * LP5523 LED Driver
- *
- * Copyright (C) 2010 Nokia Corporation
- *
- * Contact: Samu Onkalo <samu.p.onkalo@nokia.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.
- *
- * 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 __LINUX_LP5523_H
-#define __LINUX_LP5523_H
-
-/* See Documentation/leds/leds-lp5523.txt */
-
-struct lp5523_led_config {
- u8 chan_nr;
- u8 led_current; /* mA x10, 0 if led is not connected */
- u8 max_current;
-};
-
-#define LP5523_CLOCK_AUTO 0
-#define LP5523_CLOCK_INT 1
-#define LP5523_CLOCK_EXT 2
-
-struct lp5523_platform_data {
- struct lp5523_led_config *led_config;
- u8 num_channels;
- u8 clock_mode;
- int (*setup_resources)(void);
- void (*release_resources)(void);
- void (*enable)(bool state);
- const char *label;
-};
-
-#endif /* __LINUX_LP5523_H */
diff --git a/ANDROID_3.4.5/include/linux/leds-pca9532.h b/ANDROID_3.4.5/include/linux/leds-pca9532.h
deleted file mode 100644
index b8d6fffe..00000000
--- a/ANDROID_3.4.5/include/linux/leds-pca9532.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * pca9532.h - platform data structure for pca9532 led controller
- *
- * Copyright (C) 2008 Riku Voipio <riku.voipio@movial.fi>
- *
- * 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.
- *
- * Datasheet: http://www.nxp.com/acrobat/datasheets/PCA9532_3.pdf
- *
- */
-
-#ifndef __LINUX_PCA9532_H
-#define __LINUX_PCA9532_H
-
-#include <linux/leds.h>
-#include <linux/workqueue.h>
-
-enum pca9532_state {
- PCA9532_OFF = 0x0,
- PCA9532_ON = 0x1,
- PCA9532_PWM0 = 0x2,
- PCA9532_PWM1 = 0x3
-};
-
-enum pca9532_type { PCA9532_TYPE_NONE, PCA9532_TYPE_LED,
- PCA9532_TYPE_N2100_BEEP, PCA9532_TYPE_GPIO };
-
-struct pca9532_led {
- u8 id;
- struct i2c_client *client;
- char *name;
- struct led_classdev ldev;
- struct work_struct work;
- enum pca9532_type type;
- enum pca9532_state state;
-};
-
-struct pca9532_platform_data {
- struct pca9532_led leds[16];
- u8 pwm[2];
- u8 psc[2];
- int gpio_base;
-};
-
-#endif /* __LINUX_PCA9532_H */
-
diff --git a/ANDROID_3.4.5/include/linux/leds-regulator.h b/ANDROID_3.4.5/include/linux/leds-regulator.h
deleted file mode 100644
index e2337a8c..00000000
--- a/ANDROID_3.4.5/include/linux/leds-regulator.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * leds-regulator.h - platform data structure for regulator driven LEDs.
- *
- * Copyright (C) 2009 Antonio Ospite <ospite@studenti.unina.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.
- *
- */
-
-#ifndef __LINUX_LEDS_REGULATOR_H
-#define __LINUX_LEDS_REGULATOR_H
-
-/*
- * Use "vled" as supply id when declaring the regulator consumer:
- *
- * static struct regulator_consumer_supply pcap_regulator_VVIB_consumers [] = {
- * { .dev_name = "leds-regulator.0", .supply = "vled" },
- * };
- *
- * If you have several regulator driven LEDs, you can append a numerical id to
- * .dev_name as done above, and use the same id when declaring the platform
- * device:
- *
- * static struct led_regulator_platform_data a780_vibrator_data = {
- * .name = "a780::vibrator",
- * };
- *
- * static struct platform_device a780_vibrator = {
- * .name = "leds-regulator",
- * .id = 0,
- * .dev = {
- * .platform_data = &a780_vibrator_data,
- * },
- * };
- */
-
-#include <linux/leds.h>
-
-struct led_regulator_platform_data {
- char *name; /* LED name as expected by LED class */
- enum led_brightness brightness; /* initial brightness value */
-};
-
-#endif /* __LINUX_LEDS_REGULATOR_H */
diff --git a/ANDROID_3.4.5/include/linux/leds-tca6507.h b/ANDROID_3.4.5/include/linux/leds-tca6507.h
deleted file mode 100644
index dcabf4fa..00000000
--- a/ANDROID_3.4.5/include/linux/leds-tca6507.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * TCA6507 LED chip driver.
- *
- * Copyright (C) 2011 Neil Brown <neil@brown.name>
- *
- * 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.
- *
- * 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 __LINUX_TCA6507_H
-#define __LINUX_TCA6507_H
-#include <linux/leds.h>
-
-struct tca6507_platform_data {
- struct led_platform_data leds;
-#ifdef CONFIG_GPIOLIB
- int gpio_base;
- void (*setup)(unsigned gpio_base, unsigned ngpio);
-#endif
-};
-
-#define TCA6507_MAKE_GPIO 1
-#endif /* __LINUX_TCA6507_H*/
diff --git a/ANDROID_3.4.5/include/linux/leds.h b/ANDROID_3.4.5/include/linux/leds.h
deleted file mode 100644
index 5884def1..00000000
--- a/ANDROID_3.4.5/include/linux/leds.h
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
- * Driver model for leds and led triggers
- *
- * Copyright (C) 2005 John Lenz <lenz@cs.wisc.edu>
- * Copyright (C) 2005 Richard Purdie <rpurdie@openedhand.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.
- *
- */
-#ifndef __LINUX_LEDS_H_INCLUDED
-#define __LINUX_LEDS_H_INCLUDED
-
-#include <linux/list.h>
-#include <linux/spinlock.h>
-#include <linux/rwsem.h>
-#include <linux/timer.h>
-
-struct device;
-/*
- * LED Core
- */
-
-enum led_brightness {
- LED_OFF = 0,
- LED_HALF = 127,
- LED_FULL = 255,
-};
-
-struct led_classdev {
- const char *name;
- int brightness;
- int max_brightness;
- int flags;
-
- /* Lower 16 bits reflect status */
-#define LED_SUSPENDED (1 << 0)
- /* Upper 16 bits reflect control information */
-#define LED_CORE_SUSPENDRESUME (1 << 16)
-
- /* Set LED brightness level */
- /* Must not sleep, use a workqueue if needed */
- void (*brightness_set)(struct led_classdev *led_cdev,
- enum led_brightness brightness);
- /* Get LED brightness level */
- enum led_brightness (*brightness_get)(struct led_classdev *led_cdev);
-
- /*
- * Activate hardware accelerated blink, delays are in milliseconds
- * and if both are zero then a sensible default should be chosen.
- * The call should adjust the timings in that case and if it can't
- * match the values specified exactly.
- * Deactivate blinking again when the brightness is set to a fixed
- * value via the brightness_set() callback.
- */
- int (*blink_set)(struct led_classdev *led_cdev,
- unsigned long *delay_on,
- unsigned long *delay_off);
-
- struct device *dev;
- struct list_head node; /* LED Device list */
- const char *default_trigger; /* Trigger to use */
-
- unsigned long blink_delay_on, blink_delay_off;
- struct timer_list blink_timer;
- int blink_brightness;
-
-#ifdef CONFIG_LEDS_TRIGGERS
- /* Protects the trigger data below */
- struct rw_semaphore trigger_lock;
-
- struct led_trigger *trigger;
- struct list_head trig_list;
- void *trigger_data;
-#endif
-};
-
-extern int led_classdev_register(struct device *parent,
- struct led_classdev *led_cdev);
-extern void led_classdev_unregister(struct led_classdev *led_cdev);
-extern void led_classdev_suspend(struct led_classdev *led_cdev);
-extern void led_classdev_resume(struct led_classdev *led_cdev);
-
-/**
- * led_blink_set - set blinking with software fallback
- * @led_cdev: the LED to start blinking
- * @delay_on: the time it should be on (in ms)
- * @delay_off: the time it should ble off (in ms)
- *
- * This function makes the LED blink, attempting to use the
- * hardware acceleration if possible, but falling back to
- * software blinking if there is no hardware blinking or if
- * the LED refuses the passed values.
- *
- * Note that if software blinking is active, simply calling
- * led_cdev->brightness_set() will not stop the blinking,
- * use led_classdev_brightness_set() instead.
- */
-extern void led_blink_set(struct led_classdev *led_cdev,
- unsigned long *delay_on,
- unsigned long *delay_off);
-/**
- * led_brightness_set - set LED brightness
- * @led_cdev: the LED to set
- * @brightness: the brightness to set it to
- *
- * Set an LED's brightness, and, if necessary, cancel the
- * software blink timer that implements blinking when the
- * hardware doesn't.
- */
-extern void led_brightness_set(struct led_classdev *led_cdev,
- enum led_brightness brightness);
-
-/*
- * LED Triggers
- */
-#ifdef CONFIG_LEDS_TRIGGERS
-
-#define TRIG_NAME_MAX 50
-
-struct led_trigger {
- /* Trigger Properties */
- const char *name;
- void (*activate)(struct led_classdev *led_cdev);
- void (*deactivate)(struct led_classdev *led_cdev);
-
- /* LEDs under control by this trigger (for simple triggers) */
- rwlock_t leddev_list_lock;
- struct list_head led_cdevs;
-
- /* Link to next registered trigger */
- struct list_head next_trig;
-};
-
-/* Registration functions for complex triggers */
-extern int led_trigger_register(struct led_trigger *trigger);
-extern void led_trigger_unregister(struct led_trigger *trigger);
-
-/* Registration functions for simple triggers */
-#define DEFINE_LED_TRIGGER(x) static struct led_trigger *x;
-#define DEFINE_LED_TRIGGER_GLOBAL(x) struct led_trigger *x;
-extern void led_trigger_register_simple(const char *name,
- struct led_trigger **trigger);
-extern void led_trigger_unregister_simple(struct led_trigger *trigger);
-extern void led_trigger_event(struct led_trigger *trigger,
- enum led_brightness event);
-extern void led_trigger_blink(struct led_trigger *trigger,
- unsigned long *delay_on,
- unsigned long *delay_off);
-
-#else
-
-/* Triggers aren't active - null macros */
-#define DEFINE_LED_TRIGGER(x)
-#define DEFINE_LED_TRIGGER_GLOBAL(x)
-#define led_trigger_register_simple(x, y) do {} while(0)
-#define led_trigger_unregister_simple(x) do {} while(0)
-#define led_trigger_event(x, y) do {} while(0)
-
-#endif
-
-/* Trigger specific functions */
-#ifdef CONFIG_LEDS_TRIGGER_IDE_DISK
-extern void ledtrig_ide_activity(void);
-#else
-#define ledtrig_ide_activity() do {} while(0)
-#endif
-
-/*
- * Generic LED platform data for describing LED names and default triggers.
- */
-struct led_info {
- const char *name;
- const char *default_trigger;
- int flags;
-};
-
-struct led_platform_data {
- int num_leds;
- struct led_info *leds;
-};
-
-/* For the leds-gpio driver */
-struct gpio_led {
- const char *name;
- const char *default_trigger;
- unsigned gpio;
- unsigned active_low : 1;
- unsigned retain_state_suspended : 1;
- unsigned default_state : 2;
- /* default_state should be one of LEDS_GPIO_DEFSTATE_(ON|OFF|KEEP) */
-};
-#define LEDS_GPIO_DEFSTATE_OFF 0
-#define LEDS_GPIO_DEFSTATE_ON 1
-#define LEDS_GPIO_DEFSTATE_KEEP 2
-
-struct gpio_led_platform_data {
- int num_leds;
- const struct gpio_led *leds;
-
-#define GPIO_LED_NO_BLINK_LOW 0 /* No blink GPIO state low */
-#define GPIO_LED_NO_BLINK_HIGH 1 /* No blink GPIO state high */
-#define GPIO_LED_BLINK 2 /* Please, blink */
- int (*gpio_blink_set)(unsigned gpio, int state,
- unsigned long *delay_on,
- unsigned long *delay_off);
-};
-
-struct platform_device *gpio_led_register_device(
- int id, const struct gpio_led_platform_data *pdata);
-
-#endif /* __LINUX_LEDS_H_INCLUDED */
diff --git a/ANDROID_3.4.5/include/linux/leds_pwm.h b/ANDROID_3.4.5/include/linux/leds_pwm.h
deleted file mode 100644
index 33a07116..00000000
--- a/ANDROID_3.4.5/include/linux/leds_pwm.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * PWM LED driver data - see drivers/leds/leds-pwm.c
- */
-#ifndef __LINUX_LEDS_PWM_H
-#define __LINUX_LEDS_PWM_H
-
-struct led_pwm {
- const char *name;
- const char *default_trigger;
- unsigned pwm_id;
- u8 active_low;
- unsigned max_brightness;
- unsigned pwm_period_ns;
-};
-
-struct led_pwm_platform_data {
- int num_leds;
- struct led_pwm *leds;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/lglock.h b/ANDROID_3.4.5/include/linux/lglock.h
deleted file mode 100644
index 87f402cc..00000000
--- a/ANDROID_3.4.5/include/linux/lglock.h
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * Specialised local-global spinlock. Can only be declared as global variables
- * to avoid overhead and keep things simple (and we don't want to start using
- * these inside dynamically allocated structures).
- *
- * "local/global locks" (lglocks) can be used to:
- *
- * - Provide fast exclusive access to per-CPU data, with exclusive access to
- * another CPU's data allowed but possibly subject to contention, and to
- * provide very slow exclusive access to all per-CPU data.
- * - Or to provide very fast and scalable read serialisation, and to provide
- * very slow exclusive serialisation of data (not necessarily per-CPU data).
- *
- * Brlocks are also implemented as a short-hand notation for the latter use
- * case.
- *
- * Copyright 2009, 2010, Nick Piggin, Novell Inc.
- */
-#ifndef __LINUX_LGLOCK_H
-#define __LINUX_LGLOCK_H
-
-#include <linux/spinlock.h>
-#include <linux/lockdep.h>
-#include <linux/percpu.h>
-#include <linux/cpu.h>
-
-/* can make br locks by using local lock for read side, global lock for write */
-#define br_lock_init(name) name##_lock_init()
-#define br_read_lock(name) name##_local_lock()
-#define br_read_unlock(name) name##_local_unlock()
-#define br_write_lock(name) name##_global_lock_online()
-#define br_write_unlock(name) name##_global_unlock_online()
-
-#define DECLARE_BRLOCK(name) DECLARE_LGLOCK(name)
-#define DEFINE_BRLOCK(name) DEFINE_LGLOCK(name)
-
-
-#define lg_lock_init(name) name##_lock_init()
-#define lg_local_lock(name) name##_local_lock()
-#define lg_local_unlock(name) name##_local_unlock()
-#define lg_local_lock_cpu(name, cpu) name##_local_lock_cpu(cpu)
-#define lg_local_unlock_cpu(name, cpu) name##_local_unlock_cpu(cpu)
-#define lg_global_lock(name) name##_global_lock()
-#define lg_global_unlock(name) name##_global_unlock()
-#define lg_global_lock_online(name) name##_global_lock_online()
-#define lg_global_unlock_online(name) name##_global_unlock_online()
-
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
-#define LOCKDEP_INIT_MAP lockdep_init_map
-
-#define DEFINE_LGLOCK_LOCKDEP(name) \
- struct lock_class_key name##_lock_key; \
- struct lockdep_map name##_lock_dep_map; \
- EXPORT_SYMBOL(name##_lock_dep_map)
-
-#else
-#define LOCKDEP_INIT_MAP(a, b, c, d)
-
-#define DEFINE_LGLOCK_LOCKDEP(name)
-#endif
-
-
-#define DECLARE_LGLOCK(name) \
- extern void name##_lock_init(void); \
- extern void name##_local_lock(void); \
- extern void name##_local_unlock(void); \
- extern void name##_local_lock_cpu(int cpu); \
- extern void name##_local_unlock_cpu(int cpu); \
- extern void name##_global_lock(void); \
- extern void name##_global_unlock(void); \
- extern void name##_global_lock_online(void); \
- extern void name##_global_unlock_online(void); \
-
-#define DEFINE_LGLOCK(name) \
- \
- DEFINE_SPINLOCK(name##_cpu_lock); \
- cpumask_t name##_cpus __read_mostly; \
- DEFINE_PER_CPU(arch_spinlock_t, name##_lock); \
- DEFINE_LGLOCK_LOCKDEP(name); \
- \
- static int \
- name##_lg_cpu_callback(struct notifier_block *nb, \
- unsigned long action, void *hcpu) \
- { \
- switch (action & ~CPU_TASKS_FROZEN) { \
- case CPU_UP_PREPARE: \
- spin_lock(&name##_cpu_lock); \
- cpu_set((unsigned long)hcpu, name##_cpus); \
- spin_unlock(&name##_cpu_lock); \
- break; \
- case CPU_UP_CANCELED: case CPU_DEAD: \
- spin_lock(&name##_cpu_lock); \
- cpu_clear((unsigned long)hcpu, name##_cpus); \
- spin_unlock(&name##_cpu_lock); \
- } \
- return NOTIFY_OK; \
- } \
- static struct notifier_block name##_lg_cpu_notifier = { \
- .notifier_call = name##_lg_cpu_callback, \
- }; \
- void name##_lock_init(void) { \
- int i; \
- LOCKDEP_INIT_MAP(&name##_lock_dep_map, #name, &name##_lock_key, 0); \
- for_each_possible_cpu(i) { \
- arch_spinlock_t *lock; \
- lock = &per_cpu(name##_lock, i); \
- *lock = (arch_spinlock_t)__ARCH_SPIN_LOCK_UNLOCKED; \
- } \
- register_hotcpu_notifier(&name##_lg_cpu_notifier); \
- get_online_cpus(); \
- for_each_online_cpu(i) \
- cpu_set(i, name##_cpus); \
- put_online_cpus(); \
- } \
- EXPORT_SYMBOL(name##_lock_init); \
- \
- void name##_local_lock(void) { \
- arch_spinlock_t *lock; \
- preempt_disable(); \
- rwlock_acquire_read(&name##_lock_dep_map, 0, 0, _THIS_IP_); \
- lock = &__get_cpu_var(name##_lock); \
- arch_spin_lock(lock); \
- } \
- EXPORT_SYMBOL(name##_local_lock); \
- \
- void name##_local_unlock(void) { \
- arch_spinlock_t *lock; \
- rwlock_release(&name##_lock_dep_map, 1, _THIS_IP_); \
- lock = &__get_cpu_var(name##_lock); \
- arch_spin_unlock(lock); \
- preempt_enable(); \
- } \
- EXPORT_SYMBOL(name##_local_unlock); \
- \
- void name##_local_lock_cpu(int cpu) { \
- arch_spinlock_t *lock; \
- preempt_disable(); \
- rwlock_acquire_read(&name##_lock_dep_map, 0, 0, _THIS_IP_); \
- lock = &per_cpu(name##_lock, cpu); \
- arch_spin_lock(lock); \
- } \
- EXPORT_SYMBOL(name##_local_lock_cpu); \
- \
- void name##_local_unlock_cpu(int cpu) { \
- arch_spinlock_t *lock; \
- rwlock_release(&name##_lock_dep_map, 1, _THIS_IP_); \
- lock = &per_cpu(name##_lock, cpu); \
- arch_spin_unlock(lock); \
- preempt_enable(); \
- } \
- EXPORT_SYMBOL(name##_local_unlock_cpu); \
- \
- void name##_global_lock_online(void) { \
- int i; \
- spin_lock(&name##_cpu_lock); \
- rwlock_acquire(&name##_lock_dep_map, 0, 0, _RET_IP_); \
- for_each_cpu(i, &name##_cpus) { \
- arch_spinlock_t *lock; \
- lock = &per_cpu(name##_lock, i); \
- arch_spin_lock(lock); \
- } \
- } \
- EXPORT_SYMBOL(name##_global_lock_online); \
- \
- void name##_global_unlock_online(void) { \
- int i; \
- rwlock_release(&name##_lock_dep_map, 1, _RET_IP_); \
- for_each_cpu(i, &name##_cpus) { \
- arch_spinlock_t *lock; \
- lock = &per_cpu(name##_lock, i); \
- arch_spin_unlock(lock); \
- } \
- spin_unlock(&name##_cpu_lock); \
- } \
- EXPORT_SYMBOL(name##_global_unlock_online); \
- \
- void name##_global_lock(void) { \
- int i; \
- preempt_disable(); \
- rwlock_acquire(&name##_lock_dep_map, 0, 0, _RET_IP_); \
- for_each_possible_cpu(i) { \
- arch_spinlock_t *lock; \
- lock = &per_cpu(name##_lock, i); \
- arch_spin_lock(lock); \
- } \
- } \
- EXPORT_SYMBOL(name##_global_lock); \
- \
- void name##_global_unlock(void) { \
- int i; \
- rwlock_release(&name##_lock_dep_map, 1, _RET_IP_); \
- for_each_possible_cpu(i) { \
- arch_spinlock_t *lock; \
- lock = &per_cpu(name##_lock, i); \
- arch_spin_unlock(lock); \
- } \
- preempt_enable(); \
- } \
- EXPORT_SYMBOL(name##_global_unlock);
-#endif
diff --git a/ANDROID_3.4.5/include/linux/lguest.h b/ANDROID_3.4.5/include/linux/lguest.h
deleted file mode 100644
index 9962c6bb..00000000
--- a/ANDROID_3.4.5/include/linux/lguest.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Things the lguest guest needs to know. Note: like all lguest interfaces,
- * this is subject to wild and random change between versions.
- */
-#ifndef _LINUX_LGUEST_H
-#define _LINUX_LGUEST_H
-
-#ifndef __ASSEMBLY__
-#include <linux/time.h>
-#include <asm/irq.h>
-#include <asm/lguest_hcall.h>
-
-#define LG_CLOCK_MIN_DELTA 100UL
-#define LG_CLOCK_MAX_DELTA ULONG_MAX
-
-/*G:031
- * The second method of communicating with the Host is to via "struct
- * lguest_data". Once the Guest's initialization hypercall tells the Host where
- * this is, the Guest and Host both publish information in it.
-:*/
-struct lguest_data {
- /*
- * 512 == enabled (same as eflags in normal hardware). The Guest
- * changes interrupts so often that a hypercall is too slow.
- */
- unsigned int irq_enabled;
- /* Fine-grained interrupt disabling by the Guest */
- DECLARE_BITMAP(blocked_interrupts, LGUEST_IRQS);
-
- /*
- * The Host writes the virtual address of the last page fault here,
- * which saves the Guest a hypercall. CR2 is the native register where
- * this address would normally be found.
- */
- unsigned long cr2;
-
- /* Wallclock time set by the Host. */
- struct timespec time;
-
- /*
- * Interrupt pending set by the Host. The Guest should do a hypercall
- * if it re-enables interrupts and sees this set (to X86_EFLAGS_IF).
- */
- int irq_pending;
-
- /*
- * Async hypercall ring. Instead of directly making hypercalls, we can
- * place them in here for processing the next time the Host wants.
- * This batching can be quite efficient.
- */
-
- /* 0xFF == done (set by Host), 0 == pending (set by Guest). */
- u8 hcall_status[LHCALL_RING_SIZE];
- /* The actual registers for the hypercalls. */
- struct hcall_args hcalls[LHCALL_RING_SIZE];
-
-/* Fields initialized by the Host at boot: */
- /* Memory not to try to access */
- unsigned long reserve_mem;
- /* KHz for the TSC clock. */
- u32 tsc_khz;
-
-/* Fields initialized by the Guest at boot: */
- /* Instruction range to suppress interrupts even if enabled */
- unsigned long noirq_start, noirq_end;
- /* Address above which page tables are all identical. */
- unsigned long kernel_address;
- /* The vector to try to use for system calls (0x40 or 0x80). */
- unsigned int syscall_vec;
-};
-extern struct lguest_data lguest_data;
-#endif /* __ASSEMBLY__ */
-#endif /* _LINUX_LGUEST_H */
diff --git a/ANDROID_3.4.5/include/linux/lguest_launcher.h b/ANDROID_3.4.5/include/linux/lguest_launcher.h
deleted file mode 100644
index 495203ff..00000000
--- a/ANDROID_3.4.5/include/linux/lguest_launcher.h
+++ /dev/null
@@ -1,73 +0,0 @@
-#ifndef _LINUX_LGUEST_LAUNCHER
-#define _LINUX_LGUEST_LAUNCHER
-/* Everything the "lguest" userspace program needs to know. */
-#include <linux/types.h>
-
-/*D:010
- * Drivers
- *
- * The Guest needs devices to do anything useful. Since we don't let it touch
- * real devices (think of the damage it could do!) we provide virtual devices.
- * We could emulate a PCI bus with various devices on it, but that is a fairly
- * complex burden for the Host and suboptimal for the Guest, so we have our own
- * simple lguest bus and we use "virtio" drivers. These drivers need a set of
- * routines from us which will actually do the virtual I/O, but they handle all
- * the net/block/console stuff themselves. This means that if we want to add
- * a new device, we simply need to write a new virtio driver and create support
- * for it in the Launcher: this code won't need to change.
- *
- * Virtio devices are also used by kvm, so we can simply reuse their optimized
- * device drivers. And one day when everyone uses virtio, my plan will be
- * complete. Bwahahahah!
- *
- * Devices are described by a simplified ID, a status byte, and some "config"
- * bytes which describe this device's configuration. This is placed by the
- * Launcher just above the top of physical memory:
- */
-struct lguest_device_desc {
- /* The device type: console, network, disk etc. Type 0 terminates. */
- __u8 type;
- /* The number of virtqueues (first in config array) */
- __u8 num_vq;
- /*
- * The number of bytes of feature bits. Multiply by 2: one for host
- * features and one for Guest acknowledgements.
- */
- __u8 feature_len;
- /* The number of bytes of the config array after virtqueues. */
- __u8 config_len;
- /* A status byte, written by the Guest. */
- __u8 status;
- __u8 config[0];
-};
-
-/*D:135
- * This is how we expect the device configuration field for a virtqueue
- * to be laid out in config space.
- */
-struct lguest_vqconfig {
- /* The number of entries in the virtio_ring */
- __u16 num;
- /* The interrupt we get when something happens. */
- __u16 irq;
- /* The page number of the virtio ring for this device. */
- __u32 pfn;
-};
-/*:*/
-
-/* Write command first word is a request. */
-enum lguest_req
-{
- LHREQ_INITIALIZE, /* + base, pfnlimit, start */
- LHREQ_GETDMA, /* No longer used */
- LHREQ_IRQ, /* + irq */
- LHREQ_BREAK, /* No longer used */
- LHREQ_EVENTFD, /* + address, fd. */
-};
-
-/*
- * The alignment to use between consumer and producer parts of vring.
- * x86 pagesize for historical reasons.
- */
-#define LGUEST_VRING_ALIGN 4096
-#endif /* _LINUX_LGUEST_LAUNCHER */
diff --git a/ANDROID_3.4.5/include/linux/libata.h b/ANDROID_3.4.5/include/linux/libata.h
deleted file mode 100644
index 6e887c74..00000000
--- a/ANDROID_3.4.5/include/linux/libata.h
+++ /dev/null
@@ -1,1786 +0,0 @@
-/*
- * Copyright 2003-2005 Red Hat, Inc. All rights reserved.
- * Copyright 2003-2005 Jeff Garzik
- *
- *
- * 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.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- *
- * libata documentation is available via 'make {ps|pdf}docs',
- * as Documentation/DocBook/libata.*
- *
- */
-
-#ifndef __LINUX_LIBATA_H__
-#define __LINUX_LIBATA_H__
-
-#include <linux/delay.h>
-#include <linux/jiffies.h>
-#include <linux/interrupt.h>
-#include <linux/dma-mapping.h>
-#include <linux/scatterlist.h>
-#include <linux/io.h>
-#include <linux/ata.h>
-#include <linux/workqueue.h>
-#include <scsi/scsi_host.h>
-#include <linux/acpi.h>
-#include <linux/cdrom.h>
-#include <linux/sched.h>
-
-/*
- * Define if arch has non-standard setup. This is a _PCI_ standard
- * not a legacy or ISA standard.
- */
-#ifdef CONFIG_ATA_NONSTANDARD
-#include <asm/libata-portmap.h>
-#else
-#include <asm-generic/libata-portmap.h>
-#endif
-
-/*
- * compile-time options: to be removed as soon as all the drivers are
- * converted to the new debugging mechanism
- */
-#undef ATA_DEBUG /* debugging output */
-#undef ATA_VERBOSE_DEBUG /* yet more debugging output */
-#undef ATA_IRQ_TRAP /* define to ack screaming irqs */
-#undef ATA_NDEBUG /* define to disable quick runtime checks */
-
-
-/* note: prints function name for you */
-#ifdef ATA_DEBUG
-#define DPRINTK(fmt, args...) printk(KERN_ERR "%s: " fmt, __func__, ## args)
-#ifdef ATA_VERBOSE_DEBUG
-#define VPRINTK(fmt, args...) printk(KERN_ERR "%s: " fmt, __func__, ## args)
-#else
-#define VPRINTK(fmt, args...)
-#endif /* ATA_VERBOSE_DEBUG */
-#else
-#define DPRINTK(fmt, args...)
-#define VPRINTK(fmt, args...)
-#endif /* ATA_DEBUG */
-
-#define BPRINTK(fmt, args...) if (ap->flags & ATA_FLAG_DEBUGMSG) printk(KERN_ERR "%s: " fmt, __func__, ## args)
-
-#define ata_print_version_once(dev, version) \
-({ \
- static bool __print_once; \
- \
- if (!__print_once) { \
- __print_once = true; \
- ata_print_version(dev, version); \
- } \
-})
-
-/* NEW: debug levels */
-#define HAVE_LIBATA_MSG 1
-
-enum {
- ATA_MSG_DRV = 0x0001,
- ATA_MSG_INFO = 0x0002,
- ATA_MSG_PROBE = 0x0004,
- ATA_MSG_WARN = 0x0008,
- ATA_MSG_MALLOC = 0x0010,
- ATA_MSG_CTL = 0x0020,
- ATA_MSG_INTR = 0x0040,
- ATA_MSG_ERR = 0x0080,
-};
-
-#define ata_msg_drv(p) ((p)->msg_enable & ATA_MSG_DRV)
-#define ata_msg_info(p) ((p)->msg_enable & ATA_MSG_INFO)
-#define ata_msg_probe(p) ((p)->msg_enable & ATA_MSG_PROBE)
-#define ata_msg_warn(p) ((p)->msg_enable & ATA_MSG_WARN)
-#define ata_msg_malloc(p) ((p)->msg_enable & ATA_MSG_MALLOC)
-#define ata_msg_ctl(p) ((p)->msg_enable & ATA_MSG_CTL)
-#define ata_msg_intr(p) ((p)->msg_enable & ATA_MSG_INTR)
-#define ata_msg_err(p) ((p)->msg_enable & ATA_MSG_ERR)
-
-static inline u32 ata_msg_init(int dval, int default_msg_enable_bits)
-{
- if (dval < 0 || dval >= (sizeof(u32) * 8))
- return default_msg_enable_bits; /* should be 0x1 - only driver info msgs */
- if (!dval)
- return 0;
- return (1 << dval) - 1;
-}
-
-/* defines only for the constants which don't work well as enums */
-#define ATA_TAG_POISON 0xfafbfcfdU
-
-enum {
- /* various global constants */
- LIBATA_MAX_PRD = ATA_MAX_PRD / 2,
- LIBATA_DUMB_MAX_PRD = ATA_MAX_PRD / 4, /* Worst case */
- ATA_DEF_QUEUE = 1,
- /* tag ATA_MAX_QUEUE - 1 is reserved for internal commands */
- ATA_MAX_QUEUE = 32,
- ATA_TAG_INTERNAL = ATA_MAX_QUEUE - 1,
- ATA_SHORT_PAUSE = 16,
-
- ATAPI_MAX_DRAIN = 16 << 10,
-
- ATA_ALL_DEVICES = (1 << ATA_MAX_DEVICES) - 1,
-
- ATA_SHT_EMULATED = 1,
- ATA_SHT_CMD_PER_LUN = 1,
- ATA_SHT_THIS_ID = -1,
- ATA_SHT_USE_CLUSTERING = 1,
-
- /* struct ata_device stuff */
- ATA_DFLAG_LBA = (1 << 0), /* device supports LBA */
- ATA_DFLAG_LBA48 = (1 << 1), /* device supports LBA48 */
- ATA_DFLAG_CDB_INTR = (1 << 2), /* device asserts INTRQ when ready for CDB */
- ATA_DFLAG_NCQ = (1 << 3), /* device supports NCQ */
- ATA_DFLAG_FLUSH_EXT = (1 << 4), /* do FLUSH_EXT instead of FLUSH */
- ATA_DFLAG_ACPI_PENDING = (1 << 5), /* ACPI resume action pending */
- ATA_DFLAG_ACPI_FAILED = (1 << 6), /* ACPI on devcfg has failed */
- ATA_DFLAG_AN = (1 << 7), /* AN configured */
- ATA_DFLAG_DMADIR = (1 << 10), /* device requires DMADIR */
- ATA_DFLAG_CFG_MASK = (1 << 12) - 1,
-
- ATA_DFLAG_PIO = (1 << 12), /* device limited to PIO mode */
- ATA_DFLAG_NCQ_OFF = (1 << 13), /* device limited to non-NCQ mode */
- ATA_DFLAG_SLEEPING = (1 << 15), /* device is sleeping */
- ATA_DFLAG_DUBIOUS_XFER = (1 << 16), /* data transfer not verified */
- ATA_DFLAG_NO_UNLOAD = (1 << 17), /* device doesn't support unload */
- ATA_DFLAG_UNLOCK_HPA = (1 << 18), /* unlock HPA */
- ATA_DFLAG_INIT_MASK = (1 << 24) - 1,
-
- ATA_DFLAG_DETACH = (1 << 24),
- ATA_DFLAG_DETACHED = (1 << 25),
-
- ATA_DEV_UNKNOWN = 0, /* unknown device */
- ATA_DEV_ATA = 1, /* ATA device */
- ATA_DEV_ATA_UNSUP = 2, /* ATA device (unsupported) */
- ATA_DEV_ATAPI = 3, /* ATAPI device */
- ATA_DEV_ATAPI_UNSUP = 4, /* ATAPI device (unsupported) */
- ATA_DEV_PMP = 5, /* SATA port multiplier */
- ATA_DEV_PMP_UNSUP = 6, /* SATA port multiplier (unsupported) */
- ATA_DEV_SEMB = 7, /* SEMB */
- ATA_DEV_SEMB_UNSUP = 8, /* SEMB (unsupported) */
- ATA_DEV_NONE = 9, /* no device */
-
- /* struct ata_link flags */
- ATA_LFLAG_NO_HRST = (1 << 1), /* avoid hardreset */
- ATA_LFLAG_NO_SRST = (1 << 2), /* avoid softreset */
- ATA_LFLAG_ASSUME_ATA = (1 << 3), /* assume ATA class */
- ATA_LFLAG_ASSUME_SEMB = (1 << 4), /* assume SEMB class */
- ATA_LFLAG_ASSUME_CLASS = ATA_LFLAG_ASSUME_ATA | ATA_LFLAG_ASSUME_SEMB,
- ATA_LFLAG_NO_RETRY = (1 << 5), /* don't retry this link */
- ATA_LFLAG_DISABLED = (1 << 6), /* link is disabled */
- ATA_LFLAG_SW_ACTIVITY = (1 << 7), /* keep activity stats */
- ATA_LFLAG_NO_LPM = (1 << 8), /* disable LPM on this link */
-
- /* struct ata_port flags */
- ATA_FLAG_SLAVE_POSS = (1 << 0), /* host supports slave dev */
- /* (doesn't imply presence) */
- ATA_FLAG_SATA = (1 << 1),
- ATA_FLAG_NO_ATAPI = (1 << 6), /* No ATAPI support */
- ATA_FLAG_PIO_DMA = (1 << 7), /* PIO cmds via DMA */
- ATA_FLAG_PIO_LBA48 = (1 << 8), /* Host DMA engine is LBA28 only */
- ATA_FLAG_PIO_POLLING = (1 << 9), /* use polling PIO if LLD
- * doesn't handle PIO interrupts */
- ATA_FLAG_NCQ = (1 << 10), /* host supports NCQ */
- ATA_FLAG_NO_POWEROFF_SPINDOWN = (1 << 11), /* don't spindown before poweroff */
- ATA_FLAG_NO_HIBERNATE_SPINDOWN = (1 << 12), /* don't spindown before hibernation */
- ATA_FLAG_DEBUGMSG = (1 << 13),
- ATA_FLAG_FPDMA_AA = (1 << 14), /* driver supports Auto-Activate */
- ATA_FLAG_IGN_SIMPLEX = (1 << 15), /* ignore SIMPLEX */
- ATA_FLAG_NO_IORDY = (1 << 16), /* controller lacks iordy */
- ATA_FLAG_ACPI_SATA = (1 << 17), /* need native SATA ACPI layout */
- ATA_FLAG_AN = (1 << 18), /* controller supports AN */
- ATA_FLAG_PMP = (1 << 19), /* controller supports PMP */
- ATA_FLAG_EM = (1 << 21), /* driver supports enclosure
- * management */
- ATA_FLAG_SW_ACTIVITY = (1 << 22), /* driver supports sw activity
- * led */
- ATA_FLAG_NO_DIPM = (1 << 23), /* host not happy with DIPM */
-
- /* bits 24:31 of ap->flags are reserved for LLD specific flags */
-
-
- /* struct ata_port pflags */
- ATA_PFLAG_EH_PENDING = (1 << 0), /* EH pending */
- ATA_PFLAG_EH_IN_PROGRESS = (1 << 1), /* EH in progress */
- ATA_PFLAG_FROZEN = (1 << 2), /* port is frozen */
- ATA_PFLAG_RECOVERED = (1 << 3), /* recovery action performed */
- ATA_PFLAG_LOADING = (1 << 4), /* boot/loading probe */
- ATA_PFLAG_SCSI_HOTPLUG = (1 << 6), /* SCSI hotplug scheduled */
- ATA_PFLAG_INITIALIZING = (1 << 7), /* being initialized, don't touch */
- ATA_PFLAG_RESETTING = (1 << 8), /* reset in progress */
- ATA_PFLAG_UNLOADING = (1 << 9), /* driver is being unloaded */
- ATA_PFLAG_UNLOADED = (1 << 10), /* driver is unloaded */
-
- ATA_PFLAG_SUSPENDED = (1 << 17), /* port is suspended (power) */
- ATA_PFLAG_PM_PENDING = (1 << 18), /* PM operation pending */
- ATA_PFLAG_INIT_GTM_VALID = (1 << 19), /* initial gtm data valid */
-
- ATA_PFLAG_PIO32 = (1 << 20), /* 32bit PIO */
- ATA_PFLAG_PIO32CHANGE = (1 << 21), /* 32bit PIO can be turned on/off */
-
- /* struct ata_queued_cmd flags */
- ATA_QCFLAG_ACTIVE = (1 << 0), /* cmd not yet ack'd to scsi lyer */
- ATA_QCFLAG_DMAMAP = (1 << 1), /* SG table is DMA mapped */
- ATA_QCFLAG_IO = (1 << 3), /* standard IO command */
- ATA_QCFLAG_RESULT_TF = (1 << 4), /* result TF requested */
- ATA_QCFLAG_CLEAR_EXCL = (1 << 5), /* clear excl_link on completion */
- ATA_QCFLAG_QUIET = (1 << 6), /* don't report device error */
- ATA_QCFLAG_RETRY = (1 << 7), /* retry after failure */
-
- ATA_QCFLAG_FAILED = (1 << 16), /* cmd failed and is owned by EH */
- ATA_QCFLAG_SENSE_VALID = (1 << 17), /* sense data valid */
- ATA_QCFLAG_EH_SCHEDULED = (1 << 18), /* EH scheduled (obsolete) */
-
- /* host set flags */
- ATA_HOST_SIMPLEX = (1 << 0), /* Host is simplex, one DMA channel per host only */
- ATA_HOST_STARTED = (1 << 1), /* Host started */
- ATA_HOST_PARALLEL_SCAN = (1 << 2), /* Ports on this host can be scanned in parallel */
- ATA_HOST_IGNORE_ATA = (1 << 3), /* Ignore ATA devices on this host. */
-
- /* bits 24:31 of host->flags are reserved for LLD specific flags */
-
- /* various lengths of time */
- ATA_TMOUT_BOOT = 30000, /* heuristic */
- ATA_TMOUT_BOOT_QUICK = 7000, /* heuristic */
- ATA_TMOUT_INTERNAL_QUICK = 5000,
- ATA_TMOUT_MAX_PARK = 30000,
-
- /*
- * GoVault needs 2s and iVDR disk HHD424020F7SV00 800ms. 2s
- * is too much without parallel probing. Use 2s if parallel
- * probing is available, 800ms otherwise.
- */
- ATA_TMOUT_FF_WAIT_LONG = 2000,
- ATA_TMOUT_FF_WAIT = 800,
-
- /* Spec mandates to wait for ">= 2ms" before checking status
- * after reset. We wait 150ms, because that was the magic
- * delay used for ATAPI devices in Hale Landis's ATADRVR, for
- * the period of time between when the ATA command register is
- * written, and then status is checked. Because waiting for
- * "a while" before checking status is fine, post SRST, we
- * perform this magic delay here as well.
- *
- * Old drivers/ide uses the 2mS rule and then waits for ready.
- */
- ATA_WAIT_AFTER_RESET = 150,
-
- /* If PMP is supported, we have to do follow-up SRST. As some
- * PMPs don't send D2H Reg FIS after hardreset, LLDs are
- * advised to wait only for the following duration before
- * doing SRST.
- */
- ATA_TMOUT_PMP_SRST_WAIT = 5000,
-
- /* ATA bus states */
- BUS_UNKNOWN = 0,
- BUS_DMA = 1,
- BUS_IDLE = 2,
- BUS_NOINTR = 3,
- BUS_NODATA = 4,
- BUS_TIMER = 5,
- BUS_PIO = 6,
- BUS_EDD = 7,
- BUS_IDENTIFY = 8,
- BUS_PACKET = 9,
-
- /* SATA port states */
- PORT_UNKNOWN = 0,
- PORT_ENABLED = 1,
- PORT_DISABLED = 2,
-
- /* encoding various smaller bitmaps into a single
- * unsigned long bitmap
- */
- ATA_NR_PIO_MODES = 7,
- ATA_NR_MWDMA_MODES = 5,
- ATA_NR_UDMA_MODES = 8,
-
- ATA_SHIFT_PIO = 0,
- ATA_SHIFT_MWDMA = ATA_SHIFT_PIO + ATA_NR_PIO_MODES,
- ATA_SHIFT_UDMA = ATA_SHIFT_MWDMA + ATA_NR_MWDMA_MODES,
-
- /* size of buffer to pad xfers ending on unaligned boundaries */
- ATA_DMA_PAD_SZ = 4,
-
- /* ering size */
- ATA_ERING_SIZE = 32,
-
- /* return values for ->qc_defer */
- ATA_DEFER_LINK = 1,
- ATA_DEFER_PORT = 2,
-
- /* desc_len for ata_eh_info and context */
- ATA_EH_DESC_LEN = 80,
-
- /* reset / recovery action types */
- ATA_EH_REVALIDATE = (1 << 0),
- ATA_EH_SOFTRESET = (1 << 1), /* meaningful only in ->prereset */
- ATA_EH_HARDRESET = (1 << 2), /* meaningful only in ->prereset */
- ATA_EH_RESET = ATA_EH_SOFTRESET | ATA_EH_HARDRESET,
- ATA_EH_ENABLE_LINK = (1 << 3),
- ATA_EH_PARK = (1 << 5), /* unload heads and stop I/O */
-
- ATA_EH_PERDEV_MASK = ATA_EH_REVALIDATE | ATA_EH_PARK,
- ATA_EH_ALL_ACTIONS = ATA_EH_REVALIDATE | ATA_EH_RESET |
- ATA_EH_ENABLE_LINK,
-
- /* ata_eh_info->flags */
- ATA_EHI_HOTPLUGGED = (1 << 0), /* could have been hotplugged */
- ATA_EHI_NO_AUTOPSY = (1 << 2), /* no autopsy */
- ATA_EHI_QUIET = (1 << 3), /* be quiet */
- ATA_EHI_NO_RECOVERY = (1 << 4), /* no recovery */
-
- ATA_EHI_DID_SOFTRESET = (1 << 16), /* already soft-reset this port */
- ATA_EHI_DID_HARDRESET = (1 << 17), /* already soft-reset this port */
- ATA_EHI_PRINTINFO = (1 << 18), /* print configuration info */
- ATA_EHI_SETMODE = (1 << 19), /* configure transfer mode */
- ATA_EHI_POST_SETMODE = (1 << 20), /* revalidating after setmode */
-
- ATA_EHI_DID_RESET = ATA_EHI_DID_SOFTRESET | ATA_EHI_DID_HARDRESET,
-
- /* mask of flags to transfer *to* the slave link */
- ATA_EHI_TO_SLAVE_MASK = ATA_EHI_NO_AUTOPSY | ATA_EHI_QUIET,
-
- /* max tries if error condition is still set after ->error_handler */
- ATA_EH_MAX_TRIES = 5,
-
- /* sometimes resuming a link requires several retries */
- ATA_LINK_RESUME_TRIES = 5,
-
- /* how hard are we gonna try to probe/recover devices */
- ATA_PROBE_MAX_TRIES = 3,
- ATA_EH_DEV_TRIES = 3,
- ATA_EH_PMP_TRIES = 5,
- ATA_EH_PMP_LINK_TRIES = 3,
-
- SATA_PMP_RW_TIMEOUT = 3000, /* PMP read/write timeout */
-
- /* This should match the actual table size of
- * ata_eh_cmd_timeout_table in libata-eh.c.
- */
- ATA_EH_CMD_TIMEOUT_TABLE_SIZE = 6,
-
- /* Horkage types. May be set by libata or controller on drives
- (some horkage may be drive/controller pair dependent */
-
- ATA_HORKAGE_DIAGNOSTIC = (1 << 0), /* Failed boot diag */
- ATA_HORKAGE_NODMA = (1 << 1), /* DMA problems */
- ATA_HORKAGE_NONCQ = (1 << 2), /* Don't use NCQ */
- ATA_HORKAGE_MAX_SEC_128 = (1 << 3), /* Limit max sects to 128 */
- ATA_HORKAGE_BROKEN_HPA = (1 << 4), /* Broken HPA */
- ATA_HORKAGE_DISABLE = (1 << 5), /* Disable it */
- ATA_HORKAGE_HPA_SIZE = (1 << 6), /* native size off by one */
- ATA_HORKAGE_IVB = (1 << 8), /* cbl det validity bit bugs */
- ATA_HORKAGE_STUCK_ERR = (1 << 9), /* stuck ERR on next PACKET */
- ATA_HORKAGE_BRIDGE_OK = (1 << 10), /* no bridge limits */
- ATA_HORKAGE_ATAPI_MOD16_DMA = (1 << 11), /* use ATAPI DMA for commands
- not multiple of 16 bytes */
- ATA_HORKAGE_FIRMWARE_WARN = (1 << 12), /* firmware update warning */
- ATA_HORKAGE_1_5_GBPS = (1 << 13), /* force 1.5 Gbps */
- ATA_HORKAGE_NOSETXFER = (1 << 14), /* skip SETXFER, SATA only */
- ATA_HORKAGE_BROKEN_FPDMA_AA = (1 << 15), /* skip AA */
- ATA_HORKAGE_DUMP_ID = (1 << 16), /* dump IDENTIFY data */
-
- /* DMA mask for user DMA control: User visible values; DO NOT
- renumber */
- ATA_DMA_MASK_ATA = (1 << 0), /* DMA on ATA Disk */
- ATA_DMA_MASK_ATAPI = (1 << 1), /* DMA on ATAPI */
- ATA_DMA_MASK_CFA = (1 << 2), /* DMA on CF Card */
-
- /* ATAPI command types */
- ATAPI_READ = 0, /* READs */
- ATAPI_WRITE = 1, /* WRITEs */
- ATAPI_READ_CD = 2, /* READ CD [MSF] */
- ATAPI_PASS_THRU = 3, /* SAT pass-thru */
- ATAPI_MISC = 4, /* the rest */
-
- /* Timing constants */
- ATA_TIMING_SETUP = (1 << 0),
- ATA_TIMING_ACT8B = (1 << 1),
- ATA_TIMING_REC8B = (1 << 2),
- ATA_TIMING_CYC8B = (1 << 3),
- ATA_TIMING_8BIT = ATA_TIMING_ACT8B | ATA_TIMING_REC8B |
- ATA_TIMING_CYC8B,
- ATA_TIMING_ACTIVE = (1 << 4),
- ATA_TIMING_RECOVER = (1 << 5),
- ATA_TIMING_DMACK_HOLD = (1 << 6),
- ATA_TIMING_CYCLE = (1 << 7),
- ATA_TIMING_UDMA = (1 << 8),
- ATA_TIMING_ALL = ATA_TIMING_SETUP | ATA_TIMING_ACT8B |
- ATA_TIMING_REC8B | ATA_TIMING_CYC8B |
- ATA_TIMING_ACTIVE | ATA_TIMING_RECOVER |
- ATA_TIMING_DMACK_HOLD | ATA_TIMING_CYCLE |
- ATA_TIMING_UDMA,
-
- /* ACPI constants */
- ATA_ACPI_FILTER_SETXFER = 1 << 0,
- ATA_ACPI_FILTER_LOCK = 1 << 1,
- ATA_ACPI_FILTER_DIPM = 1 << 2,
- ATA_ACPI_FILTER_FPDMA_OFFSET = 1 << 3, /* FPDMA non-zero offset */
- ATA_ACPI_FILTER_FPDMA_AA = 1 << 4, /* FPDMA auto activate */
-
- ATA_ACPI_FILTER_DEFAULT = ATA_ACPI_FILTER_SETXFER |
- ATA_ACPI_FILTER_LOCK |
- ATA_ACPI_FILTER_DIPM,
-};
-
-enum ata_xfer_mask {
- ATA_MASK_PIO = ((1LU << ATA_NR_PIO_MODES) - 1)
- << ATA_SHIFT_PIO,
- ATA_MASK_MWDMA = ((1LU << ATA_NR_MWDMA_MODES) - 1)
- << ATA_SHIFT_MWDMA,
- ATA_MASK_UDMA = ((1LU << ATA_NR_UDMA_MODES) - 1)
- << ATA_SHIFT_UDMA,
-};
-
-enum hsm_task_states {
- HSM_ST_IDLE, /* no command on going */
- HSM_ST_FIRST, /* (waiting the device to)
- write CDB or first data block */
- HSM_ST, /* (waiting the device to) transfer data */
- HSM_ST_LAST, /* (waiting the device to) complete command */
- HSM_ST_ERR, /* error */
-};
-
-enum ata_completion_errors {
- AC_ERR_DEV = (1 << 0), /* device reported error */
- AC_ERR_HSM = (1 << 1), /* host state machine violation */
- AC_ERR_TIMEOUT = (1 << 2), /* timeout */
- AC_ERR_MEDIA = (1 << 3), /* media error */
- AC_ERR_ATA_BUS = (1 << 4), /* ATA bus error */
- AC_ERR_HOST_BUS = (1 << 5), /* host bus error */
- AC_ERR_SYSTEM = (1 << 6), /* system error */
- AC_ERR_INVALID = (1 << 7), /* invalid argument */
- AC_ERR_OTHER = (1 << 8), /* unknown */
- AC_ERR_NODEV_HINT = (1 << 9), /* polling device detection hint */
- AC_ERR_NCQ = (1 << 10), /* marker for offending NCQ qc */
-};
-
-/*
- * Link power management policy: If you alter this, you also need to
- * alter libata-scsi.c (for the ascii descriptions)
- */
-enum ata_lpm_policy {
- ATA_LPM_UNKNOWN,
- ATA_LPM_MAX_POWER,
- ATA_LPM_MED_POWER,
- ATA_LPM_MIN_POWER,
-};
-
-enum ata_lpm_hints {
- ATA_LPM_EMPTY = (1 << 0), /* port empty/probing */
- ATA_LPM_HIPM = (1 << 1), /* may use HIPM */
-};
-
-/* forward declarations */
-struct scsi_device;
-struct ata_port_operations;
-struct ata_port;
-struct ata_link;
-struct ata_queued_cmd;
-
-/* typedefs */
-typedef void (*ata_qc_cb_t) (struct ata_queued_cmd *qc);
-typedef int (*ata_prereset_fn_t)(struct ata_link *link, unsigned long deadline);
-typedef int (*ata_reset_fn_t)(struct ata_link *link, unsigned int *classes,
- unsigned long deadline);
-typedef void (*ata_postreset_fn_t)(struct ata_link *link, unsigned int *classes);
-
-extern struct device_attribute dev_attr_link_power_management_policy;
-extern struct device_attribute dev_attr_unload_heads;
-extern struct device_attribute dev_attr_em_message_type;
-extern struct device_attribute dev_attr_em_message;
-extern struct device_attribute dev_attr_sw_activity;
-
-enum sw_activity {
- OFF,
- BLINK_ON,
- BLINK_OFF,
-};
-
-#ifdef CONFIG_ATA_SFF
-struct ata_ioports {
- void __iomem *cmd_addr;
- void __iomem *data_addr;
- void __iomem *error_addr;
- void __iomem *feature_addr;
- void __iomem *nsect_addr;
- void __iomem *lbal_addr;
- void __iomem *lbam_addr;
- void __iomem *lbah_addr;
- void __iomem *device_addr;
- void __iomem *status_addr;
- void __iomem *command_addr;
- void __iomem *altstatus_addr;
- void __iomem *ctl_addr;
-#ifdef CONFIG_ATA_BMDMA
- void __iomem *bmdma_addr;
-#endif /* CONFIG_ATA_BMDMA */
- void __iomem *scr_addr;
-};
-#endif /* CONFIG_ATA_SFF */
-
-struct ata_host {
- spinlock_t lock;
- struct device *dev;
- void __iomem * const *iomap;
- unsigned int n_ports;
- void *private_data;
- struct ata_port_operations *ops;
- unsigned long flags;
-
- struct mutex eh_mutex;
- struct task_struct *eh_owner;
-
-#ifdef CONFIG_ATA_ACPI
- acpi_handle acpi_handle;
-#endif
- struct ata_port *simplex_claimed; /* channel owning the DMA */
- struct ata_port *ports[0];
-};
-
-struct ata_queued_cmd {
- struct ata_port *ap;
- struct ata_device *dev;
-
- struct scsi_cmnd *scsicmd;
- void (*scsidone)(struct scsi_cmnd *);
-
- struct ata_taskfile tf;
- u8 cdb[ATAPI_CDB_LEN];
-
- unsigned long flags; /* ATA_QCFLAG_xxx */
- unsigned int tag;
- unsigned int n_elem;
- unsigned int orig_n_elem;
-
- int dma_dir;
-
- unsigned int sect_size;
-
- unsigned int nbytes;
- unsigned int extrabytes;
- unsigned int curbytes;
-
- struct scatterlist sgent;
-
- struct scatterlist *sg;
-
- struct scatterlist *cursg;
- unsigned int cursg_ofs;
-
- unsigned int err_mask;
- struct ata_taskfile result_tf;
- ata_qc_cb_t complete_fn;
-
- void *private_data;
- void *lldd_task;
-};
-
-struct ata_port_stats {
- unsigned long unhandled_irq;
- unsigned long idle_irq;
- unsigned long rw_reqbuf;
-};
-
-struct ata_ering_entry {
- unsigned int eflags;
- unsigned int err_mask;
- u64 timestamp;
-};
-
-struct ata_ering {
- int cursor;
- struct ata_ering_entry ring[ATA_ERING_SIZE];
-};
-
-struct ata_device {
- struct ata_link *link;
- unsigned int devno; /* 0 or 1 */
- unsigned int horkage; /* List of broken features */
- unsigned long flags; /* ATA_DFLAG_xxx */
- struct scsi_device *sdev; /* attached SCSI device */
- void *private_data;
-#ifdef CONFIG_ATA_ACPI
- acpi_handle acpi_handle;
- union acpi_object *gtf_cache;
- unsigned int gtf_filter;
-#endif
- struct device tdev;
- /* n_sector is CLEAR_BEGIN, read comment above CLEAR_BEGIN */
- u64 n_sectors; /* size of device, if ATA */
- u64 n_native_sectors; /* native size, if ATA */
- unsigned int class; /* ATA_DEV_xxx */
- unsigned long unpark_deadline;
-
- u8 pio_mode;
- u8 dma_mode;
- u8 xfer_mode;
- unsigned int xfer_shift; /* ATA_SHIFT_xxx */
-
- unsigned int multi_count; /* sectors count for
- READ/WRITE MULTIPLE */
- unsigned int max_sectors; /* per-device max sectors */
- unsigned int cdb_len;
-
- /* per-dev xfer mask */
- unsigned long pio_mask;
- unsigned long mwdma_mask;
- unsigned long udma_mask;
-
- /* for CHS addressing */
- u16 cylinders; /* Number of cylinders */
- u16 heads; /* Number of heads */
- u16 sectors; /* Number of sectors per track */
-
- union {
- u16 id[ATA_ID_WORDS]; /* IDENTIFY xxx DEVICE data */
- u32 gscr[SATA_PMP_GSCR_DWORDS]; /* PMP GSCR block */
- };
-
- /* error history */
- int spdn_cnt;
- /* ering is CLEAR_END, read comment above CLEAR_END */
- struct ata_ering ering;
-};
-
-/* Fields between ATA_DEVICE_CLEAR_BEGIN and ATA_DEVICE_CLEAR_END are
- * cleared to zero on ata_dev_init().
- */
-#define ATA_DEVICE_CLEAR_BEGIN offsetof(struct ata_device, n_sectors)
-#define ATA_DEVICE_CLEAR_END offsetof(struct ata_device, ering)
-
-struct ata_eh_info {
- struct ata_device *dev; /* offending device */
- u32 serror; /* SError from LLDD */
- unsigned int err_mask; /* port-wide err_mask */
- unsigned int action; /* ATA_EH_* action mask */
- unsigned int dev_action[ATA_MAX_DEVICES]; /* dev EH action */
- unsigned int flags; /* ATA_EHI_* flags */
-
- unsigned int probe_mask;
-
- char desc[ATA_EH_DESC_LEN];
- int desc_len;
-};
-
-struct ata_eh_context {
- struct ata_eh_info i;
- int tries[ATA_MAX_DEVICES];
- int cmd_timeout_idx[ATA_MAX_DEVICES]
- [ATA_EH_CMD_TIMEOUT_TABLE_SIZE];
- unsigned int classes[ATA_MAX_DEVICES];
- unsigned int did_probe_mask;
- unsigned int unloaded_mask;
- unsigned int saved_ncq_enabled;
- u8 saved_xfer_mode[ATA_MAX_DEVICES];
- /* timestamp for the last reset attempt or success */
- unsigned long last_reset;
-};
-
-struct ata_acpi_drive
-{
- u32 pio;
- u32 dma;
-} __packed;
-
-struct ata_acpi_gtm {
- struct ata_acpi_drive drive[2];
- u32 flags;
-} __packed;
-
-struct ata_link {
- struct ata_port *ap;
- int pmp; /* port multiplier port # */
-
- struct device tdev;
- unsigned int active_tag; /* active tag on this link */
- u32 sactive; /* active NCQ commands */
-
- unsigned int flags; /* ATA_LFLAG_xxx */
-
- u32 saved_scontrol; /* SControl on probe */
- unsigned int hw_sata_spd_limit;
- unsigned int sata_spd_limit;
- unsigned int sata_spd; /* current SATA PHY speed */
- enum ata_lpm_policy lpm_policy;
-
- /* record runtime error info, protected by host_set lock */
- struct ata_eh_info eh_info;
- /* EH context */
- struct ata_eh_context eh_context;
-
- struct ata_device device[ATA_MAX_DEVICES];
-};
-#define ATA_LINK_CLEAR_BEGIN offsetof(struct ata_link, active_tag)
-#define ATA_LINK_CLEAR_END offsetof(struct ata_link, device[0])
-
-struct ata_port {
- struct Scsi_Host *scsi_host; /* our co-allocated scsi host */
- struct ata_port_operations *ops;
- spinlock_t *lock;
- /* Flags owned by the EH context. Only EH should touch these once the
- port is active */
- unsigned long flags; /* ATA_FLAG_xxx */
- /* Flags that change dynamically, protected by ap->lock */
- unsigned int pflags; /* ATA_PFLAG_xxx */
- unsigned int print_id; /* user visible unique port ID */
- unsigned int port_no; /* 0 based port no. inside the host */
-
-#ifdef CONFIG_ATA_SFF
- struct ata_ioports ioaddr; /* ATA cmd/ctl/dma register blocks */
- u8 ctl; /* cache of ATA control register */
- u8 last_ctl; /* Cache last written value */
- struct ata_link* sff_pio_task_link; /* link currently used */
- struct delayed_work sff_pio_task;
-#ifdef CONFIG_ATA_BMDMA
- struct ata_bmdma_prd *bmdma_prd; /* BMDMA SG list */
- dma_addr_t bmdma_prd_dma; /* and its DMA mapping */
-#endif /* CONFIG_ATA_BMDMA */
-#endif /* CONFIG_ATA_SFF */
-
- unsigned int pio_mask;
- unsigned int mwdma_mask;
- unsigned int udma_mask;
- unsigned int cbl; /* cable type; ATA_CBL_xxx */
-
- struct ata_queued_cmd qcmd[ATA_MAX_QUEUE];
- unsigned long qc_allocated;
- unsigned int qc_active;
- int nr_active_links; /* #links with active qcs */
-
- struct ata_link link; /* host default link */
- struct ata_link *slave_link; /* see ata_slave_link_init() */
-
- int nr_pmp_links; /* nr of available PMP links */
- struct ata_link *pmp_link; /* array of PMP links */
- struct ata_link *excl_link; /* for PMP qc exclusion */
-
- struct ata_port_stats stats;
- struct ata_host *host;
- struct device *dev;
- struct device tdev;
-
- struct mutex scsi_scan_mutex;
- struct delayed_work hotplug_task;
- struct work_struct scsi_rescan_task;
-
- unsigned int hsm_task_state;
-
- u32 msg_enable;
- struct list_head eh_done_q;
- wait_queue_head_t eh_wait_q;
- int eh_tries;
- struct completion park_req_pending;
-
- pm_message_t pm_mesg;
- int *pm_result;
- enum ata_lpm_policy target_lpm_policy;
-
- struct timer_list fastdrain_timer;
- unsigned long fastdrain_cnt;
-
- int em_message_type;
- void *private_data;
-
-#ifdef CONFIG_ATA_ACPI
- acpi_handle acpi_handle;
- struct ata_acpi_gtm __acpi_init_gtm; /* use ata_acpi_init_gtm() */
-#endif
- /* owned by EH */
- u8 sector_buf[ATA_SECT_SIZE] ____cacheline_aligned;
-};
-
-/* The following initializer overrides a method to NULL whether one of
- * its parent has the method defined or not. This is equivalent to
- * ERR_PTR(-ENOENT). Unfortunately, ERR_PTR doesn't render a constant
- * expression and thus can't be used as an initializer.
- */
-#define ATA_OP_NULL (void *)(unsigned long)(-ENOENT)
-
-struct ata_port_operations {
- /*
- * Command execution
- */
- int (*qc_defer)(struct ata_queued_cmd *qc);
- int (*check_atapi_dma)(struct ata_queued_cmd *qc);
- void (*qc_prep)(struct ata_queued_cmd *qc);
- unsigned int (*qc_issue)(struct ata_queued_cmd *qc);
- bool (*qc_fill_rtf)(struct ata_queued_cmd *qc);
-
- /*
- * Configuration and exception handling
- */
- int (*cable_detect)(struct ata_port *ap);
- unsigned long (*mode_filter)(struct ata_device *dev, unsigned long xfer_mask);
- void (*set_piomode)(struct ata_port *ap, struct ata_device *dev);
- void (*set_dmamode)(struct ata_port *ap, struct ata_device *dev);
- int (*set_mode)(struct ata_link *link, struct ata_device **r_failed_dev);
- unsigned int (*read_id)(struct ata_device *dev, struct ata_taskfile *tf, u16 *id);
-
- void (*dev_config)(struct ata_device *dev);
-
- void (*freeze)(struct ata_port *ap);
- void (*thaw)(struct ata_port *ap);
- ata_prereset_fn_t prereset;
- ata_reset_fn_t softreset;
- ata_reset_fn_t hardreset;
- ata_postreset_fn_t postreset;
- ata_prereset_fn_t pmp_prereset;
- ata_reset_fn_t pmp_softreset;
- ata_reset_fn_t pmp_hardreset;
- ata_postreset_fn_t pmp_postreset;
- void (*error_handler)(struct ata_port *ap);
- void (*lost_interrupt)(struct ata_port *ap);
- void (*post_internal_cmd)(struct ata_queued_cmd *qc);
-
- /*
- * Optional features
- */
- int (*scr_read)(struct ata_link *link, unsigned int sc_reg, u32 *val);
- int (*scr_write)(struct ata_link *link, unsigned int sc_reg, u32 val);
- void (*pmp_attach)(struct ata_port *ap);
- void (*pmp_detach)(struct ata_port *ap);
- int (*set_lpm)(struct ata_link *link, enum ata_lpm_policy policy,
- unsigned hints);
-
- /*
- * Start, stop, suspend and resume
- */
- int (*port_suspend)(struct ata_port *ap, pm_message_t mesg);
- int (*port_resume)(struct ata_port *ap);
- int (*port_start)(struct ata_port *ap);
- void (*port_stop)(struct ata_port *ap);
- void (*host_stop)(struct ata_host *host);
-
-#ifdef CONFIG_ATA_SFF
- /*
- * SFF / taskfile oriented ops
- */
- void (*sff_dev_select)(struct ata_port *ap, unsigned int device);
- void (*sff_set_devctl)(struct ata_port *ap, u8 ctl);
- u8 (*sff_check_status)(struct ata_port *ap);
- u8 (*sff_check_altstatus)(struct ata_port *ap);
- void (*sff_tf_load)(struct ata_port *ap, const struct ata_taskfile *tf);
- void (*sff_tf_read)(struct ata_port *ap, struct ata_taskfile *tf);
- void (*sff_exec_command)(struct ata_port *ap,
- const struct ata_taskfile *tf);
- unsigned int (*sff_data_xfer)(struct ata_device *dev,
- unsigned char *buf, unsigned int buflen, int rw);
- void (*sff_irq_on)(struct ata_port *);
- bool (*sff_irq_check)(struct ata_port *);
- void (*sff_irq_clear)(struct ata_port *);
- void (*sff_drain_fifo)(struct ata_queued_cmd *qc);
-
-#ifdef CONFIG_ATA_BMDMA
- void (*bmdma_setup)(struct ata_queued_cmd *qc);
- void (*bmdma_start)(struct ata_queued_cmd *qc);
- void (*bmdma_stop)(struct ata_queued_cmd *qc);
- u8 (*bmdma_status)(struct ata_port *ap);
-#endif /* CONFIG_ATA_BMDMA */
-#endif /* CONFIG_ATA_SFF */
-
- ssize_t (*em_show)(struct ata_port *ap, char *buf);
- ssize_t (*em_store)(struct ata_port *ap, const char *message,
- size_t size);
- ssize_t (*sw_activity_show)(struct ata_device *dev, char *buf);
- ssize_t (*sw_activity_store)(struct ata_device *dev,
- enum sw_activity val);
- /*
- * Obsolete
- */
- void (*phy_reset)(struct ata_port *ap);
- void (*eng_timeout)(struct ata_port *ap);
-
- /*
- * ->inherits must be the last field and all the preceding
- * fields must be pointers.
- */
- const struct ata_port_operations *inherits;
-};
-
-struct ata_port_info {
- unsigned long flags;
- unsigned long link_flags;
- unsigned long pio_mask;
- unsigned long mwdma_mask;
- unsigned long udma_mask;
- struct ata_port_operations *port_ops;
- void *private_data;
-};
-
-struct ata_timing {
- unsigned short mode; /* ATA mode */
- unsigned short setup; /* t1 */
- unsigned short act8b; /* t2 for 8-bit I/O */
- unsigned short rec8b; /* t2i for 8-bit I/O */
- unsigned short cyc8b; /* t0 for 8-bit I/O */
- unsigned short active; /* t2 or tD */
- unsigned short recover; /* t2i or tK */
- unsigned short dmack_hold; /* tj */
- unsigned short cycle; /* t0 */
- unsigned short udma; /* t2CYCTYP/2 */
-};
-
-/*
- * Core layer - drivers/ata/libata-core.c
- */
-extern const unsigned long sata_deb_timing_normal[];
-extern const unsigned long sata_deb_timing_hotplug[];
-extern const unsigned long sata_deb_timing_long[];
-
-extern struct ata_port_operations ata_dummy_port_ops;
-extern const struct ata_port_info ata_dummy_port_info;
-
-static inline const unsigned long *
-sata_ehc_deb_timing(struct ata_eh_context *ehc)
-{
- if (ehc->i.flags & ATA_EHI_HOTPLUGGED)
- return sata_deb_timing_hotplug;
- else
- return sata_deb_timing_normal;
-}
-
-static inline int ata_port_is_dummy(struct ata_port *ap)
-{
- return ap->ops == &ata_dummy_port_ops;
-}
-
-extern int sata_set_spd(struct ata_link *link);
-extern int ata_std_prereset(struct ata_link *link, unsigned long deadline);
-extern int ata_wait_after_reset(struct ata_link *link, unsigned long deadline,
- int (*check_ready)(struct ata_link *link));
-extern int sata_link_debounce(struct ata_link *link,
- const unsigned long *params, unsigned long deadline);
-extern int sata_link_resume(struct ata_link *link, const unsigned long *params,
- unsigned long deadline);
-extern int sata_link_scr_lpm(struct ata_link *link, enum ata_lpm_policy policy,
- bool spm_wakeup);
-extern int sata_link_hardreset(struct ata_link *link,
- const unsigned long *timing, unsigned long deadline,
- bool *online, int (*check_ready)(struct ata_link *));
-extern int sata_std_hardreset(struct ata_link *link, unsigned int *class,
- unsigned long deadline);
-extern void ata_std_postreset(struct ata_link *link, unsigned int *classes);
-
-extern struct ata_host *ata_host_alloc(struct device *dev, int max_ports);
-extern struct ata_host *ata_host_alloc_pinfo(struct device *dev,
- const struct ata_port_info * const * ppi, int n_ports);
-extern int ata_slave_link_init(struct ata_port *ap);
-extern int ata_host_start(struct ata_host *host);
-extern int ata_host_register(struct ata_host *host,
- struct scsi_host_template *sht);
-extern int ata_host_activate(struct ata_host *host, int irq,
- irq_handler_t irq_handler, unsigned long irq_flags,
- struct scsi_host_template *sht);
-extern void ata_host_detach(struct ata_host *host);
-extern void ata_host_init(struct ata_host *, struct device *,
- unsigned long, struct ata_port_operations *);
-extern int ata_scsi_detect(struct scsi_host_template *sht);
-extern int ata_scsi_ioctl(struct scsi_device *dev, int cmd, void __user *arg);
-extern int ata_scsi_queuecmd(struct Scsi_Host *h, struct scsi_cmnd *cmd);
-extern int ata_sas_scsi_ioctl(struct ata_port *ap, struct scsi_device *dev,
- int cmd, void __user *arg);
-extern void ata_sas_port_destroy(struct ata_port *);
-extern struct ata_port *ata_sas_port_alloc(struct ata_host *,
- struct ata_port_info *, struct Scsi_Host *);
-extern void ata_sas_async_probe(struct ata_port *ap);
-extern int ata_sas_sync_probe(struct ata_port *ap);
-extern int ata_sas_port_init(struct ata_port *);
-extern int ata_sas_port_start(struct ata_port *ap);
-extern void ata_sas_port_stop(struct ata_port *ap);
-extern int ata_sas_slave_configure(struct scsi_device *, struct ata_port *);
-extern int ata_sas_queuecmd(struct scsi_cmnd *cmd, struct ata_port *ap);
-extern int sata_scr_valid(struct ata_link *link);
-extern int sata_scr_read(struct ata_link *link, int reg, u32 *val);
-extern int sata_scr_write(struct ata_link *link, int reg, u32 val);
-extern int sata_scr_write_flush(struct ata_link *link, int reg, u32 val);
-extern bool ata_link_online(struct ata_link *link);
-extern bool ata_link_offline(struct ata_link *link);
-#ifdef CONFIG_PM
-extern int ata_host_suspend(struct ata_host *host, pm_message_t mesg);
-extern void ata_host_resume(struct ata_host *host);
-#endif
-extern int ata_ratelimit(void);
-extern void ata_msleep(struct ata_port *ap, unsigned int msecs);
-extern u32 ata_wait_register(struct ata_port *ap, void __iomem *reg, u32 mask,
- u32 val, unsigned long interval, unsigned long timeout);
-extern int atapi_cmd_type(u8 opcode);
-extern void ata_tf_to_fis(const struct ata_taskfile *tf,
- u8 pmp, int is_cmd, u8 *fis);
-extern void ata_tf_from_fis(const u8 *fis, struct ata_taskfile *tf);
-extern unsigned long ata_pack_xfermask(unsigned long pio_mask,
- unsigned long mwdma_mask, unsigned long udma_mask);
-extern void ata_unpack_xfermask(unsigned long xfer_mask,
- unsigned long *pio_mask, unsigned long *mwdma_mask,
- unsigned long *udma_mask);
-extern u8 ata_xfer_mask2mode(unsigned long xfer_mask);
-extern unsigned long ata_xfer_mode2mask(u8 xfer_mode);
-extern int ata_xfer_mode2shift(unsigned long xfer_mode);
-extern const char *ata_mode_string(unsigned long xfer_mask);
-extern unsigned long ata_id_xfermask(const u16 *id);
-extern int ata_std_qc_defer(struct ata_queued_cmd *qc);
-extern void ata_noop_qc_prep(struct ata_queued_cmd *qc);
-extern void ata_sg_init(struct ata_queued_cmd *qc, struct scatterlist *sg,
- unsigned int n_elem);
-extern unsigned int ata_dev_classify(const struct ata_taskfile *tf);
-extern void ata_dev_disable(struct ata_device *adev);
-extern void ata_id_string(const u16 *id, unsigned char *s,
- unsigned int ofs, unsigned int len);
-extern void ata_id_c_string(const u16 *id, unsigned char *s,
- unsigned int ofs, unsigned int len);
-extern unsigned int ata_do_dev_read_id(struct ata_device *dev,
- struct ata_taskfile *tf, u16 *id);
-extern void ata_qc_complete(struct ata_queued_cmd *qc);
-extern int ata_qc_complete_multiple(struct ata_port *ap, u32 qc_active);
-extern void ata_scsi_simulate(struct ata_device *dev, struct scsi_cmnd *cmd);
-extern int ata_std_bios_param(struct scsi_device *sdev,
- struct block_device *bdev,
- sector_t capacity, int geom[]);
-extern void ata_scsi_unlock_native_capacity(struct scsi_device *sdev);
-extern int ata_scsi_slave_config(struct scsi_device *sdev);
-extern void ata_scsi_slave_destroy(struct scsi_device *sdev);
-extern int ata_scsi_change_queue_depth(struct scsi_device *sdev,
- int queue_depth, int reason);
-extern int __ata_change_queue_depth(struct ata_port *ap, struct scsi_device *sdev,
- int queue_depth, int reason);
-extern struct ata_device *ata_dev_pair(struct ata_device *adev);
-extern int ata_do_set_mode(struct ata_link *link, struct ata_device **r_failed_dev);
-extern void ata_scsi_port_error_handler(struct Scsi_Host *host, struct ata_port *ap);
-extern void ata_scsi_cmd_error_handler(struct Scsi_Host *host, struct ata_port *ap, struct list_head *eh_q);
-
-extern int ata_cable_40wire(struct ata_port *ap);
-extern int ata_cable_80wire(struct ata_port *ap);
-extern int ata_cable_sata(struct ata_port *ap);
-extern int ata_cable_ignore(struct ata_port *ap);
-extern int ata_cable_unknown(struct ata_port *ap);
-
-/* Timing helpers */
-extern unsigned int ata_pio_need_iordy(const struct ata_device *);
-extern const struct ata_timing *ata_timing_find_mode(u8 xfer_mode);
-extern int ata_timing_compute(struct ata_device *, unsigned short,
- struct ata_timing *, int, int);
-extern void ata_timing_merge(const struct ata_timing *,
- const struct ata_timing *, struct ata_timing *,
- unsigned int);
-extern u8 ata_timing_cycle2mode(unsigned int xfer_shift, int cycle);
-
-/* PCI */
-#ifdef CONFIG_PCI
-struct pci_dev;
-
-struct pci_bits {
- unsigned int reg; /* PCI config register to read */
- unsigned int width; /* 1 (8 bit), 2 (16 bit), 4 (32 bit) */
- unsigned long mask;
- unsigned long val;
-};
-
-extern int pci_test_config_bits(struct pci_dev *pdev, const struct pci_bits *bits);
-extern void ata_pci_remove_one(struct pci_dev *pdev);
-
-#ifdef CONFIG_PM
-extern void ata_pci_device_do_suspend(struct pci_dev *pdev, pm_message_t mesg);
-extern int __must_check ata_pci_device_do_resume(struct pci_dev *pdev);
-extern int ata_pci_device_suspend(struct pci_dev *pdev, pm_message_t mesg);
-extern int ata_pci_device_resume(struct pci_dev *pdev);
-#endif /* CONFIG_PM */
-#endif /* CONFIG_PCI */
-
-/*
- * ACPI - drivers/ata/libata-acpi.c
- */
-#ifdef CONFIG_ATA_ACPI
-static inline const struct ata_acpi_gtm *ata_acpi_init_gtm(struct ata_port *ap)
-{
- if (ap->pflags & ATA_PFLAG_INIT_GTM_VALID)
- return &ap->__acpi_init_gtm;
- return NULL;
-}
-int ata_acpi_stm(struct ata_port *ap, const struct ata_acpi_gtm *stm);
-int ata_acpi_gtm(struct ata_port *ap, struct ata_acpi_gtm *stm);
-unsigned long ata_acpi_gtm_xfermask(struct ata_device *dev,
- const struct ata_acpi_gtm *gtm);
-int ata_acpi_cbl_80wire(struct ata_port *ap, const struct ata_acpi_gtm *gtm);
-#else
-static inline const struct ata_acpi_gtm *ata_acpi_init_gtm(struct ata_port *ap)
-{
- return NULL;
-}
-
-static inline int ata_acpi_stm(const struct ata_port *ap,
- struct ata_acpi_gtm *stm)
-{
- return -ENOSYS;
-}
-
-static inline int ata_acpi_gtm(const struct ata_port *ap,
- struct ata_acpi_gtm *stm)
-{
- return -ENOSYS;
-}
-
-static inline unsigned int ata_acpi_gtm_xfermask(struct ata_device *dev,
- const struct ata_acpi_gtm *gtm)
-{
- return 0;
-}
-
-static inline int ata_acpi_cbl_80wire(struct ata_port *ap,
- const struct ata_acpi_gtm *gtm)
-{
- return 0;
-}
-#endif
-
-/*
- * EH - drivers/ata/libata-eh.c
- */
-extern void ata_port_schedule_eh(struct ata_port *ap);
-extern void ata_port_wait_eh(struct ata_port *ap);
-extern int ata_link_abort(struct ata_link *link);
-extern int ata_port_abort(struct ata_port *ap);
-extern int ata_port_freeze(struct ata_port *ap);
-extern int sata_async_notification(struct ata_port *ap);
-
-extern void ata_eh_freeze_port(struct ata_port *ap);
-extern void ata_eh_thaw_port(struct ata_port *ap);
-
-extern void ata_eh_qc_complete(struct ata_queued_cmd *qc);
-extern void ata_eh_qc_retry(struct ata_queued_cmd *qc);
-extern void ata_eh_analyze_ncq_error(struct ata_link *link);
-
-extern void ata_do_eh(struct ata_port *ap, ata_prereset_fn_t prereset,
- ata_reset_fn_t softreset, ata_reset_fn_t hardreset,
- ata_postreset_fn_t postreset);
-extern void ata_std_error_handler(struct ata_port *ap);
-extern int ata_link_nr_enabled(struct ata_link *link);
-
-/*
- * Base operations to inherit from and initializers for sht
- *
- * Operations
- *
- * base : Common to all libata drivers.
- * sata : SATA controllers w/ native interface.
- * pmp : SATA controllers w/ PMP support.
- * sff : SFF ATA controllers w/o BMDMA support.
- * bmdma : SFF ATA controllers w/ BMDMA support.
- *
- * sht initializers
- *
- * BASE : Common to all libata drivers. The user must set
- * sg_tablesize and dma_boundary.
- * PIO : SFF ATA controllers w/ only PIO support.
- * BMDMA : SFF ATA controllers w/ BMDMA support. sg_tablesize and
- * dma_boundary are set to BMDMA limits.
- * NCQ : SATA controllers supporting NCQ. The user must set
- * sg_tablesize, dma_boundary and can_queue.
- */
-extern const struct ata_port_operations ata_base_port_ops;
-extern const struct ata_port_operations sata_port_ops;
-extern struct device_attribute *ata_common_sdev_attrs[];
-
-#define ATA_BASE_SHT(drv_name) \
- .module = THIS_MODULE, \
- .name = drv_name, \
- .ioctl = ata_scsi_ioctl, \
- .queuecommand = ata_scsi_queuecmd, \
- .can_queue = ATA_DEF_QUEUE, \
- .this_id = ATA_SHT_THIS_ID, \
- .cmd_per_lun = ATA_SHT_CMD_PER_LUN, \
- .emulated = ATA_SHT_EMULATED, \
- .use_clustering = ATA_SHT_USE_CLUSTERING, \
- .proc_name = drv_name, \
- .slave_configure = ata_scsi_slave_config, \
- .slave_destroy = ata_scsi_slave_destroy, \
- .bios_param = ata_std_bios_param, \
- .unlock_native_capacity = ata_scsi_unlock_native_capacity, \
- .sdev_attrs = ata_common_sdev_attrs
-
-#define ATA_NCQ_SHT(drv_name) \
- ATA_BASE_SHT(drv_name), \
- .change_queue_depth = ata_scsi_change_queue_depth
-
-/*
- * PMP helpers
- */
-#ifdef CONFIG_SATA_PMP
-static inline bool sata_pmp_supported(struct ata_port *ap)
-{
- return ap->flags & ATA_FLAG_PMP;
-}
-
-static inline bool sata_pmp_attached(struct ata_port *ap)
-{
- return ap->nr_pmp_links != 0;
-}
-
-static inline int ata_is_host_link(const struct ata_link *link)
-{
- return link == &link->ap->link || link == link->ap->slave_link;
-}
-#else /* CONFIG_SATA_PMP */
-static inline bool sata_pmp_supported(struct ata_port *ap)
-{
- return false;
-}
-
-static inline bool sata_pmp_attached(struct ata_port *ap)
-{
- return false;
-}
-
-static inline int ata_is_host_link(const struct ata_link *link)
-{
- return 1;
-}
-#endif /* CONFIG_SATA_PMP */
-
-static inline int sata_srst_pmp(struct ata_link *link)
-{
- if (sata_pmp_supported(link->ap) && ata_is_host_link(link))
- return SATA_PMP_CTRL_PORT;
- return link->pmp;
-}
-
-/*
- * printk helpers
- */
-__printf(3, 4)
-int ata_port_printk(const struct ata_port *ap, const char *level,
- const char *fmt, ...);
-__printf(3, 4)
-int ata_link_printk(const struct ata_link *link, const char *level,
- const char *fmt, ...);
-__printf(3, 4)
-int ata_dev_printk(const struct ata_device *dev, const char *level,
- const char *fmt, ...);
-
-#define ata_port_err(ap, fmt, ...) \
- ata_port_printk(ap, KERN_ERR, fmt, ##__VA_ARGS__)
-#define ata_port_warn(ap, fmt, ...) \
- ata_port_printk(ap, KERN_WARNING, fmt, ##__VA_ARGS__)
-#define ata_port_notice(ap, fmt, ...) \
- ata_port_printk(ap, KERN_NOTICE, fmt, ##__VA_ARGS__)
-#define ata_port_info(ap, fmt, ...) \
- ata_port_printk(ap, KERN_INFO, fmt, ##__VA_ARGS__)
-#define ata_port_dbg(ap, fmt, ...) \
- ata_port_printk(ap, KERN_DEBUG, fmt, ##__VA_ARGS__)
-
-#define ata_link_err(link, fmt, ...) \
- ata_link_printk(link, KERN_ERR, fmt, ##__VA_ARGS__)
-#define ata_link_warn(link, fmt, ...) \
- ata_link_printk(link, KERN_WARNING, fmt, ##__VA_ARGS__)
-#define ata_link_notice(link, fmt, ...) \
- ata_link_printk(link, KERN_NOTICE, fmt, ##__VA_ARGS__)
-#define ata_link_info(link, fmt, ...) \
- ata_link_printk(link, KERN_INFO, fmt, ##__VA_ARGS__)
-#define ata_link_dbg(link, fmt, ...) \
- ata_link_printk(link, KERN_DEBUG, fmt, ##__VA_ARGS__)
-
-#define ata_dev_err(dev, fmt, ...) \
- ata_dev_printk(dev, KERN_ERR, fmt, ##__VA_ARGS__)
-#define ata_dev_warn(dev, fmt, ...) \
- ata_dev_printk(dev, KERN_WARNING, fmt, ##__VA_ARGS__)
-#define ata_dev_notice(dev, fmt, ...) \
- ata_dev_printk(dev, KERN_NOTICE, fmt, ##__VA_ARGS__)
-#define ata_dev_info(dev, fmt, ...) \
- ata_dev_printk(dev, KERN_INFO, fmt, ##__VA_ARGS__)
-#define ata_dev_dbg(dev, fmt, ...) \
- ata_dev_printk(dev, KERN_DEBUG, fmt, ##__VA_ARGS__)
-
-void ata_print_version(const struct device *dev, const char *version);
-
-/*
- * ata_eh_info helpers
- */
-extern __printf(2, 3)
-void __ata_ehi_push_desc(struct ata_eh_info *ehi, const char *fmt, ...);
-extern __printf(2, 3)
-void ata_ehi_push_desc(struct ata_eh_info *ehi, const char *fmt, ...);
-extern void ata_ehi_clear_desc(struct ata_eh_info *ehi);
-
-static inline void ata_ehi_hotplugged(struct ata_eh_info *ehi)
-{
- ehi->probe_mask |= (1 << ATA_MAX_DEVICES) - 1;
- ehi->flags |= ATA_EHI_HOTPLUGGED;
- ehi->action |= ATA_EH_RESET | ATA_EH_ENABLE_LINK;
- ehi->err_mask |= AC_ERR_ATA_BUS;
-}
-
-/*
- * port description helpers
- */
-extern __printf(2, 3)
-void ata_port_desc(struct ata_port *ap, const char *fmt, ...);
-#ifdef CONFIG_PCI
-extern void ata_port_pbar_desc(struct ata_port *ap, int bar, ssize_t offset,
- const char *name);
-#endif
-
-static inline unsigned int ata_tag_valid(unsigned int tag)
-{
- return (tag < ATA_MAX_QUEUE) ? 1 : 0;
-}
-
-static inline unsigned int ata_tag_internal(unsigned int tag)
-{
- return tag == ATA_TAG_INTERNAL;
-}
-
-/*
- * device helpers
- */
-static inline unsigned int ata_class_enabled(unsigned int class)
-{
- return class == ATA_DEV_ATA || class == ATA_DEV_ATAPI ||
- class == ATA_DEV_PMP || class == ATA_DEV_SEMB;
-}
-
-static inline unsigned int ata_class_disabled(unsigned int class)
-{
- return class == ATA_DEV_ATA_UNSUP || class == ATA_DEV_ATAPI_UNSUP ||
- class == ATA_DEV_PMP_UNSUP || class == ATA_DEV_SEMB_UNSUP;
-}
-
-static inline unsigned int ata_class_absent(unsigned int class)
-{
- return !ata_class_enabled(class) && !ata_class_disabled(class);
-}
-
-static inline unsigned int ata_dev_enabled(const struct ata_device *dev)
-{
- return ata_class_enabled(dev->class);
-}
-
-static inline unsigned int ata_dev_disabled(const struct ata_device *dev)
-{
- return ata_class_disabled(dev->class);
-}
-
-static inline unsigned int ata_dev_absent(const struct ata_device *dev)
-{
- return ata_class_absent(dev->class);
-}
-
-/*
- * link helpers
- */
-static inline int ata_link_max_devices(const struct ata_link *link)
-{
- if (ata_is_host_link(link) && link->ap->flags & ATA_FLAG_SLAVE_POSS)
- return 2;
- return 1;
-}
-
-static inline int ata_link_active(struct ata_link *link)
-{
- return ata_tag_valid(link->active_tag) || link->sactive;
-}
-
-/*
- * Iterators
- *
- * ATA_LITER_* constants are used to select link iteration mode and
- * ATA_DITER_* device iteration mode.
- *
- * For a custom iteration directly using ata_{link|dev}_next(), if
- * @link or @dev, respectively, is NULL, the first element is
- * returned. @dev and @link can be any valid device or link and the
- * next element according to the iteration mode will be returned.
- * After the last element, NULL is returned.
- */
-enum ata_link_iter_mode {
- ATA_LITER_EDGE, /* if present, PMP links only; otherwise,
- * host link. no slave link */
- ATA_LITER_HOST_FIRST, /* host link followed by PMP or slave links */
- ATA_LITER_PMP_FIRST, /* PMP links followed by host link,
- * slave link still comes after host link */
-};
-
-enum ata_dev_iter_mode {
- ATA_DITER_ENABLED,
- ATA_DITER_ENABLED_REVERSE,
- ATA_DITER_ALL,
- ATA_DITER_ALL_REVERSE,
-};
-
-extern struct ata_link *ata_link_next(struct ata_link *link,
- struct ata_port *ap,
- enum ata_link_iter_mode mode);
-
-extern struct ata_device *ata_dev_next(struct ata_device *dev,
- struct ata_link *link,
- enum ata_dev_iter_mode mode);
-
-/*
- * Shortcut notation for iterations
- *
- * ata_for_each_link() iterates over each link of @ap according to
- * @mode. @link points to the current link in the loop. @link is
- * NULL after loop termination. ata_for_each_dev() works the same way
- * except that it iterates over each device of @link.
- *
- * Note that the mode prefixes ATA_{L|D}ITER_ shouldn't need to be
- * specified when using the following shorthand notations. Only the
- * mode itself (EDGE, HOST_FIRST, ENABLED, etc...) should be
- * specified. This not only increases brevity but also makes it
- * impossible to use ATA_LITER_* for device iteration or vice-versa.
- */
-#define ata_for_each_link(link, ap, mode) \
- for ((link) = ata_link_next(NULL, (ap), ATA_LITER_##mode); (link); \
- (link) = ata_link_next((link), (ap), ATA_LITER_##mode))
-
-#define ata_for_each_dev(dev, link, mode) \
- for ((dev) = ata_dev_next(NULL, (link), ATA_DITER_##mode); (dev); \
- (dev) = ata_dev_next((dev), (link), ATA_DITER_##mode))
-
-/**
- * ata_ncq_enabled - Test whether NCQ is enabled
- * @dev: ATA device to test for
- *
- * LOCKING:
- * spin_lock_irqsave(host lock)
- *
- * RETURNS:
- * 1 if NCQ is enabled for @dev, 0 otherwise.
- */
-static inline int ata_ncq_enabled(struct ata_device *dev)
-{
- return (dev->flags & (ATA_DFLAG_PIO | ATA_DFLAG_NCQ_OFF |
- ATA_DFLAG_NCQ)) == ATA_DFLAG_NCQ;
-}
-
-static inline void ata_qc_set_polling(struct ata_queued_cmd *qc)
-{
- qc->tf.ctl |= ATA_NIEN;
-}
-
-static inline struct ata_queued_cmd *__ata_qc_from_tag(struct ata_port *ap,
- unsigned int tag)
-{
- if (likely(ata_tag_valid(tag)))
- return &ap->qcmd[tag];
- return NULL;
-}
-
-static inline struct ata_queued_cmd *ata_qc_from_tag(struct ata_port *ap,
- unsigned int tag)
-{
- struct ata_queued_cmd *qc = __ata_qc_from_tag(ap, tag);
-
- if (unlikely(!qc) || !ap->ops->error_handler)
- return qc;
-
- if ((qc->flags & (ATA_QCFLAG_ACTIVE |
- ATA_QCFLAG_FAILED)) == ATA_QCFLAG_ACTIVE)
- return qc;
-
- return NULL;
-}
-
-static inline unsigned int ata_qc_raw_nbytes(struct ata_queued_cmd *qc)
-{
- return qc->nbytes - min(qc->extrabytes, qc->nbytes);
-}
-
-static inline void ata_tf_init(struct ata_device *dev, struct ata_taskfile *tf)
-{
- memset(tf, 0, sizeof(*tf));
-
-#ifdef CONFIG_ATA_SFF
- tf->ctl = dev->link->ap->ctl;
-#else
- tf->ctl = ATA_DEVCTL_OBS;
-#endif
- if (dev->devno == 0)
- tf->device = ATA_DEVICE_OBS;
- else
- tf->device = ATA_DEVICE_OBS | ATA_DEV1;
-}
-
-static inline void ata_qc_reinit(struct ata_queued_cmd *qc)
-{
- qc->dma_dir = DMA_NONE;
- qc->sg = NULL;
- qc->flags = 0;
- qc->cursg = NULL;
- qc->cursg_ofs = 0;
- qc->nbytes = qc->extrabytes = qc->curbytes = 0;
- qc->n_elem = 0;
- qc->err_mask = 0;
- qc->sect_size = ATA_SECT_SIZE;
-
- ata_tf_init(qc->dev, &qc->tf);
-
- /* init result_tf such that it indicates normal completion */
- qc->result_tf.command = ATA_DRDY;
- qc->result_tf.feature = 0;
-}
-
-static inline int ata_try_flush_cache(const struct ata_device *dev)
-{
- return ata_id_wcache_enabled(dev->id) ||
- ata_id_has_flush(dev->id) ||
- ata_id_has_flush_ext(dev->id);
-}
-
-static inline unsigned int ac_err_mask(u8 status)
-{
- if (status & (ATA_BUSY | ATA_DRQ))
- return AC_ERR_HSM;
- if (status & (ATA_ERR | ATA_DF))
- return AC_ERR_DEV;
- return 0;
-}
-
-static inline unsigned int __ac_err_mask(u8 status)
-{
- unsigned int mask = ac_err_mask(status);
- if (mask == 0)
- return AC_ERR_OTHER;
- return mask;
-}
-
-static inline struct ata_port *ata_shost_to_port(struct Scsi_Host *host)
-{
- return *(struct ata_port **)&host->hostdata[0];
-}
-
-static inline int ata_check_ready(u8 status)
-{
- if (!(status & ATA_BUSY))
- return 1;
-
- /* 0xff indicates either no device or device not ready */
- if (status == 0xff)
- return -ENODEV;
-
- return 0;
-}
-
-static inline unsigned long ata_deadline(unsigned long from_jiffies,
- unsigned long timeout_msecs)
-{
- return from_jiffies + msecs_to_jiffies(timeout_msecs);
-}
-
-/* Don't open code these in drivers as there are traps. Firstly the range may
- change in future hardware and specs, secondly 0xFF means 'no DMA' but is
- > UDMA_0. Dyma ddreigiau */
-
-static inline int ata_using_mwdma(struct ata_device *adev)
-{
- if (adev->dma_mode >= XFER_MW_DMA_0 && adev->dma_mode <= XFER_MW_DMA_4)
- return 1;
- return 0;
-}
-
-static inline int ata_using_udma(struct ata_device *adev)
-{
- if (adev->dma_mode >= XFER_UDMA_0 && adev->dma_mode <= XFER_UDMA_7)
- return 1;
- return 0;
-}
-
-static inline int ata_dma_enabled(struct ata_device *adev)
-{
- return (adev->dma_mode == 0xFF ? 0 : 1);
-}
-
-/**************************************************************************
- * PMP - drivers/ata/libata-pmp.c
- */
-#ifdef CONFIG_SATA_PMP
-
-extern const struct ata_port_operations sata_pmp_port_ops;
-
-extern int sata_pmp_qc_defer_cmd_switch(struct ata_queued_cmd *qc);
-extern void sata_pmp_error_handler(struct ata_port *ap);
-
-#else /* CONFIG_SATA_PMP */
-
-#define sata_pmp_port_ops sata_port_ops
-#define sata_pmp_qc_defer_cmd_switch ata_std_qc_defer
-#define sata_pmp_error_handler ata_std_error_handler
-
-#endif /* CONFIG_SATA_PMP */
-
-
-/**************************************************************************
- * SFF - drivers/ata/libata-sff.c
- */
-#ifdef CONFIG_ATA_SFF
-
-extern const struct ata_port_operations ata_sff_port_ops;
-extern const struct ata_port_operations ata_bmdma32_port_ops;
-
-/* PIO only, sg_tablesize and dma_boundary limits can be removed */
-#define ATA_PIO_SHT(drv_name) \
- ATA_BASE_SHT(drv_name), \
- .sg_tablesize = LIBATA_MAX_PRD, \
- .dma_boundary = ATA_DMA_BOUNDARY
-
-extern void ata_sff_dev_select(struct ata_port *ap, unsigned int device);
-extern u8 ata_sff_check_status(struct ata_port *ap);
-extern void ata_sff_pause(struct ata_port *ap);
-extern void ata_sff_dma_pause(struct ata_port *ap);
-extern int ata_sff_busy_sleep(struct ata_port *ap,
- unsigned long timeout_pat, unsigned long timeout);
-extern int ata_sff_wait_ready(struct ata_link *link, unsigned long deadline);
-extern void ata_sff_tf_load(struct ata_port *ap, const struct ata_taskfile *tf);
-extern void ata_sff_tf_read(struct ata_port *ap, struct ata_taskfile *tf);
-extern void ata_sff_exec_command(struct ata_port *ap,
- const struct ata_taskfile *tf);
-extern unsigned int ata_sff_data_xfer(struct ata_device *dev,
- unsigned char *buf, unsigned int buflen, int rw);
-extern unsigned int ata_sff_data_xfer32(struct ata_device *dev,
- unsigned char *buf, unsigned int buflen, int rw);
-extern unsigned int ata_sff_data_xfer_noirq(struct ata_device *dev,
- unsigned char *buf, unsigned int buflen, int rw);
-extern void ata_sff_irq_on(struct ata_port *ap);
-extern void ata_sff_irq_clear(struct ata_port *ap);
-extern int ata_sff_hsm_move(struct ata_port *ap, struct ata_queued_cmd *qc,
- u8 status, int in_wq);
-extern void ata_sff_queue_work(struct work_struct *work);
-extern void ata_sff_queue_delayed_work(struct delayed_work *dwork,
- unsigned long delay);
-extern void ata_sff_queue_pio_task(struct ata_link *link, unsigned long delay);
-extern unsigned int ata_sff_qc_issue(struct ata_queued_cmd *qc);
-extern bool ata_sff_qc_fill_rtf(struct ata_queued_cmd *qc);
-extern unsigned int ata_sff_port_intr(struct ata_port *ap,
- struct ata_queued_cmd *qc);
-extern irqreturn_t ata_sff_interrupt(int irq, void *dev_instance);
-extern void ata_sff_lost_interrupt(struct ata_port *ap);
-extern void ata_sff_freeze(struct ata_port *ap);
-extern void ata_sff_thaw(struct ata_port *ap);
-extern int ata_sff_prereset(struct ata_link *link, unsigned long deadline);
-extern unsigned int ata_sff_dev_classify(struct ata_device *dev, int present,
- u8 *r_err);
-extern int ata_sff_wait_after_reset(struct ata_link *link, unsigned int devmask,
- unsigned long deadline);
-extern int ata_sff_softreset(struct ata_link *link, unsigned int *classes,
- unsigned long deadline);
-extern int sata_sff_hardreset(struct ata_link *link, unsigned int *class,
- unsigned long deadline);
-extern void ata_sff_postreset(struct ata_link *link, unsigned int *classes);
-extern void ata_sff_drain_fifo(struct ata_queued_cmd *qc);
-extern void ata_sff_error_handler(struct ata_port *ap);
-extern void ata_sff_std_ports(struct ata_ioports *ioaddr);
-#ifdef CONFIG_PCI
-extern int ata_pci_sff_init_host(struct ata_host *host);
-extern int ata_pci_sff_prepare_host(struct pci_dev *pdev,
- const struct ata_port_info * const * ppi,
- struct ata_host **r_host);
-extern int ata_pci_sff_activate_host(struct ata_host *host,
- irq_handler_t irq_handler,
- struct scsi_host_template *sht);
-extern int ata_pci_sff_init_one(struct pci_dev *pdev,
- const struct ata_port_info * const * ppi,
- struct scsi_host_template *sht, void *host_priv, int hflags);
-#endif /* CONFIG_PCI */
-
-#ifdef CONFIG_ATA_BMDMA
-
-extern const struct ata_port_operations ata_bmdma_port_ops;
-
-#define ATA_BMDMA_SHT(drv_name) \
- ATA_BASE_SHT(drv_name), \
- .sg_tablesize = LIBATA_MAX_PRD, \
- .dma_boundary = ATA_DMA_BOUNDARY
-
-extern void ata_bmdma_qc_prep(struct ata_queued_cmd *qc);
-extern unsigned int ata_bmdma_qc_issue(struct ata_queued_cmd *qc);
-extern void ata_bmdma_dumb_qc_prep(struct ata_queued_cmd *qc);
-extern unsigned int ata_bmdma_port_intr(struct ata_port *ap,
- struct ata_queued_cmd *qc);
-extern irqreturn_t ata_bmdma_interrupt(int irq, void *dev_instance);
-extern void ata_bmdma_error_handler(struct ata_port *ap);
-extern void ata_bmdma_post_internal_cmd(struct ata_queued_cmd *qc);
-extern void ata_bmdma_irq_clear(struct ata_port *ap);
-extern void ata_bmdma_setup(struct ata_queued_cmd *qc);
-extern void ata_bmdma_start(struct ata_queued_cmd *qc);
-extern void ata_bmdma_stop(struct ata_queued_cmd *qc);
-extern u8 ata_bmdma_status(struct ata_port *ap);
-extern int ata_bmdma_port_start(struct ata_port *ap);
-extern int ata_bmdma_port_start32(struct ata_port *ap);
-
-#ifdef CONFIG_PCI
-extern int ata_pci_bmdma_clear_simplex(struct pci_dev *pdev);
-extern void ata_pci_bmdma_init(struct ata_host *host);
-extern int ata_pci_bmdma_prepare_host(struct pci_dev *pdev,
- const struct ata_port_info * const * ppi,
- struct ata_host **r_host);
-extern int ata_pci_bmdma_init_one(struct pci_dev *pdev,
- const struct ata_port_info * const * ppi,
- struct scsi_host_template *sht,
- void *host_priv, int hflags);
-#endif /* CONFIG_PCI */
-#endif /* CONFIG_ATA_BMDMA */
-
-/**
- * ata_sff_busy_wait - Wait for a port status register
- * @ap: Port to wait for.
- * @bits: bits that must be clear
- * @max: number of 10uS waits to perform
- *
- * Waits up to max*10 microseconds for the selected bits in the port's
- * status register to be cleared.
- * Returns final value of status register.
- *
- * LOCKING:
- * Inherited from caller.
- */
-static inline u8 ata_sff_busy_wait(struct ata_port *ap, unsigned int bits,
- unsigned int max)
-{
- u8 status;
-
- do {
- udelay(10);
- status = ap->ops->sff_check_status(ap);
- max--;
- } while (status != 0xff && (status & bits) && (max > 0));
-
- return status;
-}
-
-/**
- * ata_wait_idle - Wait for a port to be idle.
- * @ap: Port to wait for.
- *
- * Waits up to 10ms for port's BUSY and DRQ signals to clear.
- * Returns final value of status register.
- *
- * LOCKING:
- * Inherited from caller.
- */
-static inline u8 ata_wait_idle(struct ata_port *ap)
-{
- u8 status = ata_sff_busy_wait(ap, ATA_BUSY | ATA_DRQ, 1000);
-
-#ifdef ATA_DEBUG
- if (status != 0xff && (status & (ATA_BUSY | ATA_DRQ)))
- ata_port_printk(ap, KERN_DEBUG, "abnormal Status 0x%X\n",
- status);
-#endif
-
- return status;
-}
-#endif /* CONFIG_ATA_SFF */
-
-#endif /* __LINUX_LIBATA_H__ */
diff --git a/ANDROID_3.4.5/include/linux/libps2.h b/ANDROID_3.4.5/include/linux/libps2.h
deleted file mode 100644
index 79603a6c..00000000
--- a/ANDROID_3.4.5/include/linux/libps2.h
+++ /dev/null
@@ -1,56 +0,0 @@
-#ifndef _LIBPS2_H
-#define _LIBPS2_H
-
-/*
- * Copyright (C) 1999-2002 Vojtech Pavlik
- * Copyright (C) 2004 Dmitry Torokhov
- *
- * 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.
- */
-
-
-#define PS2_CMD_GETID 0x02f2
-#define PS2_CMD_RESET_BAT 0x02ff
-
-#define PS2_RET_BAT 0xaa
-#define PS2_RET_ID 0x00
-#define PS2_RET_ACK 0xfa
-#define PS2_RET_NAK 0xfe
-#define PS2_RET_ERR 0xfc
-
-#define PS2_FLAG_ACK 1 /* Waiting for ACK/NAK */
-#define PS2_FLAG_CMD 2 /* Waiting for command to finish */
-#define PS2_FLAG_CMD1 4 /* Waiting for the first byte of command response */
-#define PS2_FLAG_WAITID 8 /* Command execiting is GET ID */
-#define PS2_FLAG_NAK 16 /* Last transmission was NAKed */
-
-struct ps2dev {
- struct serio *serio;
-
- /* Ensures that only one command is executing at a time */
- struct mutex cmd_mutex;
-
- /* Used to signal completion from interrupt handler */
- wait_queue_head_t wait;
-
- unsigned long flags;
- unsigned char cmdbuf[6];
- unsigned char cmdcnt;
- unsigned char nak;
-};
-
-void ps2_init(struct ps2dev *ps2dev, struct serio *serio);
-int ps2_sendbyte(struct ps2dev *ps2dev, unsigned char byte, int timeout);
-void ps2_drain(struct ps2dev *ps2dev, int maxbytes, int timeout);
-void ps2_begin_command(struct ps2dev *ps2dev);
-void ps2_end_command(struct ps2dev *ps2dev);
-int __ps2_command(struct ps2dev *ps2dev, unsigned char *param, int command);
-int ps2_command(struct ps2dev *ps2dev, unsigned char *param, int command);
-int ps2_handle_ack(struct ps2dev *ps2dev, unsigned char data);
-int ps2_handle_response(struct ps2dev *ps2dev, unsigned char data);
-void ps2_cmd_aborted(struct ps2dev *ps2dev);
-int ps2_is_keyboard_id(char id);
-
-#endif /* _LIBPS2_H */
diff --git a/ANDROID_3.4.5/include/linux/license.h b/ANDROID_3.4.5/include/linux/license.h
deleted file mode 100644
index decdbf43..00000000
--- a/ANDROID_3.4.5/include/linux/license.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef __LICENSE_H
-#define __LICENSE_H
-
-static inline int license_is_gpl_compatible(const char *license)
-{
- return (strcmp(license, "GPL") == 0
- || strcmp(license, "GPL v2") == 0
- || strcmp(license, "GPL and additional rights") == 0
- || strcmp(license, "Dual BSD/GPL") == 0
- || strcmp(license, "Dual MIT/GPL") == 0
- || strcmp(license, "Dual MPL/GPL") == 0);
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/limits.h b/ANDROID_3.4.5/include/linux/limits.h
deleted file mode 100644
index 2d0f9416..00000000
--- a/ANDROID_3.4.5/include/linux/limits.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef _LINUX_LIMITS_H
-#define _LINUX_LIMITS_H
-
-#define NR_OPEN 1024
-
-#define NGROUPS_MAX 65536 /* supplemental group IDs are available */
-#define ARG_MAX 131072 /* # bytes of args + environ for exec() */
-#define LINK_MAX 127 /* # links a file may have */
-#define MAX_CANON 255 /* size of the canonical input queue */
-#define MAX_INPUT 255 /* size of the type-ahead buffer */
-#define NAME_MAX 255 /* # chars in a file name */
-#define PATH_MAX 4096 /* # chars in a path name including nul */
-#define PIPE_BUF 4096 /* # bytes in atomic write to a pipe */
-#define XATTR_NAME_MAX 255 /* # chars in an extended attribute name */
-#define XATTR_SIZE_MAX 65536 /* size of an extended attribute value (64k) */
-#define XATTR_LIST_MAX 65536 /* size of extended attribute namelist (64k) */
-
-#define RTSIG_MAX 32
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/linkage.h b/ANDROID_3.4.5/include/linux/linkage.h
deleted file mode 100644
index 807f1e53..00000000
--- a/ANDROID_3.4.5/include/linux/linkage.h
+++ /dev/null
@@ -1,91 +0,0 @@
-#ifndef _LINUX_LINKAGE_H
-#define _LINUX_LINKAGE_H
-
-#include <linux/compiler.h>
-#include <asm/linkage.h>
-
-#ifdef __cplusplus
-#define CPP_ASMLINKAGE extern "C"
-#else
-#define CPP_ASMLINKAGE
-#endif
-
-#ifndef asmlinkage
-#define asmlinkage CPP_ASMLINKAGE
-#endif
-
-#define __page_aligned_data __section(.data..page_aligned) __aligned(PAGE_SIZE)
-#define __page_aligned_bss __section(.bss..page_aligned) __aligned(PAGE_SIZE)
-
-/*
- * For assembly routines.
- *
- * Note when using these that you must specify the appropriate
- * alignment directives yourself
- */
-#define __PAGE_ALIGNED_DATA .section ".data..page_aligned", "aw"
-#define __PAGE_ALIGNED_BSS .section ".bss..page_aligned", "aw"
-
-/*
- * This is used by architectures to keep arguments on the stack
- * untouched by the compiler by keeping them live until the end.
- * The argument stack may be owned by the assembly-language
- * caller, not the callee, and gcc doesn't always understand
- * that.
- *
- * We have the return value, and a maximum of six arguments.
- *
- * This should always be followed by a "return ret" for the
- * protection to work (ie no more work that the compiler might
- * end up needing stack temporaries for).
- */
-/* Assembly files may be compiled with -traditional .. */
-#ifndef __ASSEMBLY__
-#ifndef asmlinkage_protect
-# define asmlinkage_protect(n, ret, args...) do { } while (0)
-#endif
-#endif
-
-#ifndef __ALIGN
-#define __ALIGN .align 4,0x90
-#define __ALIGN_STR ".align 4,0x90"
-#endif
-
-#ifdef __ASSEMBLY__
-
-#ifndef LINKER_SCRIPT
-#define ALIGN __ALIGN
-#define ALIGN_STR __ALIGN_STR
-
-#ifndef ENTRY
-#define ENTRY(name) \
- .globl name; \
- ALIGN; \
- name:
-#endif
-#endif /* LINKER_SCRIPT */
-
-#ifndef WEAK
-#define WEAK(name) \
- .weak name; \
- name:
-#endif
-
-#ifndef END
-#define END(name) \
- .size name, .-name
-#endif
-
-/* If symbol 'name' is treated as a subroutine (gets called, and returns)
- * then please use ENDPROC to mark 'name' as STT_FUNC for the benefit of
- * static analysis tools such as stack depth analyzer.
- */
-#ifndef ENDPROC
-#define ENDPROC(name) \
- .type name, @function; \
- END(name)
-#endif
-
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/linux_logo.h b/ANDROID_3.4.5/include/linux/linux_logo.h
deleted file mode 100644
index ca5bd91d..00000000
--- a/ANDROID_3.4.5/include/linux/linux_logo.h
+++ /dev/null
@@ -1,61 +0,0 @@
-#ifndef _LINUX_LINUX_LOGO_H
-#define _LINUX_LINUX_LOGO_H
-
-/*
- * Linux logo to be displayed on boot
- *
- * Copyright (C) 1996 Larry Ewing (lewing@isc.tamu.edu)
- * Copyright (C) 1996,1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
- * Copyright (C) 2001 Greg Banks <gnb@alphalink.com.au>
- * Copyright (C) 2001 Jan-Benedict Glaw <jbglaw@lug-owl.de>
- * Copyright (C) 2003 Geert Uytterhoeven <geert@linux-m68k.org>
- *
- * Serial_console ascii image can be any size,
- * but should contain %s to display the version
- */
-
-#include <linux/init.h>
-
-
-#define LINUX_LOGO_MONO 1 /* monochrome black/white */
-#define LINUX_LOGO_VGA16 2 /* 16 colors VGA text palette */
-#define LINUX_LOGO_CLUT224 3 /* 224 colors */
-#define LINUX_LOGO_GRAY256 4 /* 256 levels grayscale */
-
-
-struct linux_logo {
- int type; /* one of LINUX_LOGO_* */
- unsigned int width;
- unsigned int height;
- unsigned int clutsize; /* LINUX_LOGO_CLUT224 only */
- const unsigned char *clut; /* LINUX_LOGO_CLUT224 only */
- const unsigned char *data;
-};
-
-extern const struct linux_logo logo_linux_mono;
-extern const struct linux_logo logo_linux_vga16;
-extern const struct linux_logo logo_linux_clut224;
-extern const struct linux_logo logo_blackfin_vga16;
-extern const struct linux_logo logo_blackfin_clut224;
-extern const struct linux_logo logo_dec_clut224;
-extern const struct linux_logo logo_mac_clut224;
-extern const struct linux_logo logo_parisc_clut224;
-extern const struct linux_logo logo_sgi_clut224;
-extern const struct linux_logo logo_sun_clut224;
-extern const struct linux_logo logo_superh_mono;
-extern const struct linux_logo logo_superh_vga16;
-extern const struct linux_logo logo_superh_clut224;
-extern const struct linux_logo logo_m32r_clut224;
-extern const struct linux_logo logo_spe_clut224;
-
-extern const struct linux_logo *fb_find_logo(int depth);
-#ifdef CONFIG_FB_LOGO_EXTRA
-extern void fb_append_extra_logo(const struct linux_logo *logo,
- unsigned int n);
-#else
-static inline void fb_append_extra_logo(const struct linux_logo *logo,
- unsigned int n)
-{}
-#endif
-
-#endif /* _LINUX_LINUX_LOGO_H */
diff --git a/ANDROID_3.4.5/include/linux/lis3lv02d.h b/ANDROID_3.4.5/include/linux/lis3lv02d.h
deleted file mode 100644
index f1664c63..00000000
--- a/ANDROID_3.4.5/include/linux/lis3lv02d.h
+++ /dev/null
@@ -1,127 +0,0 @@
-#ifndef __LIS3LV02D_H_
-#define __LIS3LV02D_H_
-
-/**
- * struct lis3lv02d_platform_data - lis3 chip family platform data
- * @click_flags: Click detection unit configuration
- * @click_thresh_x: Click detection unit x axis threshold
- * @click_thresh_y: Click detection unit y axis threshold
- * @click_thresh_z: Click detection unit z axis threshold
- * @click_time_limit: Click detection unit time parameter
- * @click_latency: Click detection unit latency parameter
- * @click_window: Click detection unit window parameter
- * @irq_cfg: On chip irq source and type configuration (click /
- * data available / wake up, open drain, polarity)
- * @irq_flags1: Additional irq triggering flags for irq channel 0
- * @irq_flags2: Additional irq triggering flags for irq channel 1
- * @duration1: Wake up unit 1 duration parameter
- * @duration2: Wake up unit 2 duration parameter
- * @wakeup_flags: Wake up unit 1 flags
- * @wakeup_thresh: Wake up unit 1 threshold value
- * @wakeup_flags2: Wake up unit 2 flags
- * @wakeup_thresh2: Wake up unit 2 threshold value
- * @hipass_ctrl: High pass filter control (enable / disable, cut off
- * frequency)
- * @axis_x: Sensor orientation remapping for x-axis
- * @axis_y: Sensor orientation remapping for y-axis
- * @axis_z: Sensor orientation remapping for z-axis
- * @driver_features: Enable bits for different features. Disabled by default
- * @default_rate: Default sampling rate. 0 means reset default
- * @setup_resources: Interrupt line setup call back function
- * @release_resources: Interrupt line release call back function
- * @st_min_limits[3]: Selftest acceptance minimum values
- * @st_max_limits[3]: Selftest acceptance maximum values
- * @irq2: Irq line 2 number
- *
- * Platform data is used to setup the sensor chip. Meaning of the different
- * chip features can be found from the data sheet. It is publicly available
- * at www.st.com web pages. Currently the platform data is used
- * only for the 8 bit device. The 8 bit device has two wake up / free fall
- * detection units and click detection unit. There are plenty of ways to
- * configure the chip which makes is quite hard to explain deeper meaning of
- * the fields here. Behaviour of the detection blocks varies heavily depending
- * on the configuration. For example, interrupt detection block can use high
- * pass filtered data which makes it react to the changes in the acceleration.
- * Irq_flags can be used to enable interrupt detection on the both edges.
- * With proper chip configuration this produces interrupt when some trigger
- * starts and when it goes away.
- */
-
-struct lis3lv02d_platform_data {
- /* please note: the 'click' feature is only supported for
- * LIS[32]02DL variants of the chip and will be ignored for
- * others */
-#define LIS3_CLICK_SINGLE_X (1 << 0)
-#define LIS3_CLICK_DOUBLE_X (1 << 1)
-#define LIS3_CLICK_SINGLE_Y (1 << 2)
-#define LIS3_CLICK_DOUBLE_Y (1 << 3)
-#define LIS3_CLICK_SINGLE_Z (1 << 4)
-#define LIS3_CLICK_DOUBLE_Z (1 << 5)
- unsigned char click_flags;
- unsigned char click_thresh_x;
- unsigned char click_thresh_y;
- unsigned char click_thresh_z;
- unsigned char click_time_limit;
- unsigned char click_latency;
- unsigned char click_window;
-
-#define LIS3_IRQ1_DISABLE (0 << 0)
-#define LIS3_IRQ1_FF_WU_1 (1 << 0)
-#define LIS3_IRQ1_FF_WU_2 (2 << 0)
-#define LIS3_IRQ1_FF_WU_12 (3 << 0)
-#define LIS3_IRQ1_DATA_READY (4 << 0)
-#define LIS3_IRQ1_CLICK (7 << 0)
-#define LIS3_IRQ1_MASK (7 << 0)
-#define LIS3_IRQ2_DISABLE (0 << 3)
-#define LIS3_IRQ2_FF_WU_1 (1 << 3)
-#define LIS3_IRQ2_FF_WU_2 (2 << 3)
-#define LIS3_IRQ2_FF_WU_12 (3 << 3)
-#define LIS3_IRQ2_DATA_READY (4 << 3)
-#define LIS3_IRQ2_CLICK (7 << 3)
-#define LIS3_IRQ2_MASK (7 << 3)
-#define LIS3_IRQ_OPEN_DRAIN (1 << 6)
-#define LIS3_IRQ_ACTIVE_LOW (1 << 7)
- unsigned char irq_cfg;
- unsigned char irq_flags1; /* Additional irq edge / level flags */
- unsigned char irq_flags2; /* Additional irq edge / level flags */
- unsigned char duration1;
- unsigned char duration2;
-#define LIS3_WAKEUP_X_LO (1 << 0)
-#define LIS3_WAKEUP_X_HI (1 << 1)
-#define LIS3_WAKEUP_Y_LO (1 << 2)
-#define LIS3_WAKEUP_Y_HI (1 << 3)
-#define LIS3_WAKEUP_Z_LO (1 << 4)
-#define LIS3_WAKEUP_Z_HI (1 << 5)
- unsigned char wakeup_flags;
- unsigned char wakeup_thresh;
- unsigned char wakeup_flags2;
- unsigned char wakeup_thresh2;
-#define LIS3_HIPASS_CUTFF_8HZ 0
-#define LIS3_HIPASS_CUTFF_4HZ 1
-#define LIS3_HIPASS_CUTFF_2HZ 2
-#define LIS3_HIPASS_CUTFF_1HZ 3
-#define LIS3_HIPASS1_DISABLE (1 << 2)
-#define LIS3_HIPASS2_DISABLE (1 << 3)
- unsigned char hipass_ctrl;
-#define LIS3_NO_MAP 0
-#define LIS3_DEV_X 1
-#define LIS3_DEV_Y 2
-#define LIS3_DEV_Z 3
-#define LIS3_INV_DEV_X -1
-#define LIS3_INV_DEV_Y -2
-#define LIS3_INV_DEV_Z -3
- s8 axis_x;
- s8 axis_y;
- s8 axis_z;
-#define LIS3_USE_BLOCK_READ 0x02
- u16 driver_features;
- int default_rate;
- int (*setup_resources)(void);
- int (*release_resources)(void);
- /* Limits for selftest are specified in chip data sheet */
- s16 st_min_limits[3]; /* min pass limit x, y, z */
- s16 st_max_limits[3]; /* max pass limit x, y, z */
- int irq2;
-};
-
-#endif /* __LIS3LV02D_H_ */
diff --git a/ANDROID_3.4.5/include/linux/list.h b/ANDROID_3.4.5/include/linux/list.h
deleted file mode 100644
index cc6d2aa6..00000000
--- a/ANDROID_3.4.5/include/linux/list.h
+++ /dev/null
@@ -1,719 +0,0 @@
-#ifndef _LINUX_LIST_H
-#define _LINUX_LIST_H
-
-#include <linux/types.h>
-#include <linux/stddef.h>
-#include <linux/poison.h>
-#include <linux/const.h>
-
-/*
- * Simple doubly linked list implementation.
- *
- * Some of the internal functions ("__xxx") are useful when
- * manipulating whole lists rather than single entries, as
- * sometimes we already know the next/prev entries and we can
- * generate better code by using them directly rather than
- * using the generic single-entry routines.
- */
-
-#define LIST_HEAD_INIT(name) { &(name), &(name) }
-
-#define LIST_HEAD(name) \
- struct list_head name = LIST_HEAD_INIT(name)
-
-static inline void INIT_LIST_HEAD(struct list_head *list)
-{
- list->next = list;
- list->prev = list;
-}
-
-/*
- * Insert a new entry between two known consecutive entries.
- *
- * This is only for internal list manipulation where we know
- * the prev/next entries already!
- */
-#ifndef CONFIG_DEBUG_LIST
-static inline void __list_add(struct list_head *new,
- struct list_head *prev,
- struct list_head *next)
-{
- next->prev = new;
- new->next = next;
- new->prev = prev;
- prev->next = new;
-}
-#else
-extern void __list_add(struct list_head *new,
- struct list_head *prev,
- struct list_head *next);
-#endif
-
-/**
- * list_add - add a new entry
- * @new: new entry to be added
- * @head: list head to add it after
- *
- * Insert a new entry after the specified head.
- * This is good for implementing stacks.
- */
-static inline void list_add(struct list_head *new, struct list_head *head)
-{
- __list_add(new, head, head->next);
-}
-
-
-/**
- * list_add_tail - add a new entry
- * @new: new entry to be added
- * @head: list head to add it before
- *
- * Insert a new entry before the specified head.
- * This is useful for implementing queues.
- */
-static inline void list_add_tail(struct list_head *new, struct list_head *head)
-{
- __list_add(new, head->prev, head);
-}
-
-/*
- * Delete a list entry by making the prev/next entries
- * point to each other.
- *
- * This is only for internal list manipulation where we know
- * the prev/next entries already!
- */
-static inline void __list_del(struct list_head * prev, struct list_head * next)
-{
- next->prev = prev;
- prev->next = next;
-}
-
-/**
- * list_del - deletes entry from list.
- * @entry: the element to delete from the list.
- * Note: list_empty() on entry does not return true after this, the entry is
- * in an undefined state.
- */
-#ifndef CONFIG_DEBUG_LIST
-static inline void __list_del_entry(struct list_head *entry)
-{
- __list_del(entry->prev, entry->next);
-}
-
-static inline void list_del(struct list_head *entry)
-{
- __list_del(entry->prev, entry->next);
- entry->next = LIST_POISON1;
- entry->prev = LIST_POISON2;
-}
-#else
-extern void __list_del_entry(struct list_head *entry);
-extern void list_del(struct list_head *entry);
-#endif
-
-/**
- * list_replace - replace old entry by new one
- * @old : the element to be replaced
- * @new : the new element to insert
- *
- * If @old was empty, it will be overwritten.
- */
-static inline void list_replace(struct list_head *old,
- struct list_head *new)
-{
- new->next = old->next;
- new->next->prev = new;
- new->prev = old->prev;
- new->prev->next = new;
-}
-
-static inline void list_replace_init(struct list_head *old,
- struct list_head *new)
-{
- list_replace(old, new);
- INIT_LIST_HEAD(old);
-}
-
-/**
- * list_del_init - deletes entry from list and reinitialize it.
- * @entry: the element to delete from the list.
- */
-static inline void list_del_init(struct list_head *entry)
-{
- __list_del_entry(entry);
- INIT_LIST_HEAD(entry);
-}
-
-/**
- * list_move - delete from one list and add as another's head
- * @list: the entry to move
- * @head: the head that will precede our entry
- */
-static inline void list_move(struct list_head *list, struct list_head *head)
-{
- __list_del_entry(list);
- list_add(list, head);
-}
-
-/**
- * list_move_tail - delete from one list and add as another's tail
- * @list: the entry to move
- * @head: the head that will follow our entry
- */
-static inline void list_move_tail(struct list_head *list,
- struct list_head *head)
-{
- __list_del_entry(list);
- list_add_tail(list, head);
-}
-
-/**
- * list_is_last - tests whether @list is the last entry in list @head
- * @list: the entry to test
- * @head: the head of the list
- */
-static inline int list_is_last(const struct list_head *list,
- const struct list_head *head)
-{
- return list->next == head;
-}
-
-/**
- * list_empty - tests whether a list is empty
- * @head: the list to test.
- */
-static inline int list_empty(const struct list_head *head)
-{
- return head->next == head;
-}
-
-/**
- * list_empty_careful - tests whether a list is empty and not being modified
- * @head: the list to test
- *
- * Description:
- * tests whether a list is empty _and_ checks that no other CPU might be
- * in the process of modifying either member (next or prev)
- *
- * NOTE: using list_empty_careful() without synchronization
- * can only be safe if the only activity that can happen
- * to the list entry is list_del_init(). Eg. it cannot be used
- * if another CPU could re-list_add() it.
- */
-static inline int list_empty_careful(const struct list_head *head)
-{
- struct list_head *next = head->next;
- return (next == head) && (next == head->prev);
-}
-
-/**
- * list_rotate_left - rotate the list to the left
- * @head: the head of the list
- */
-static inline void list_rotate_left(struct list_head *head)
-{
- struct list_head *first;
-
- if (!list_empty(head)) {
- first = head->next;
- list_move_tail(first, head);
- }
-}
-
-/**
- * list_is_singular - tests whether a list has just one entry.
- * @head: the list to test.
- */
-static inline int list_is_singular(const struct list_head *head)
-{
- return !list_empty(head) && (head->next == head->prev);
-}
-
-static inline void __list_cut_position(struct list_head *list,
- struct list_head *head, struct list_head *entry)
-{
- struct list_head *new_first = entry->next;
- list->next = head->next;
- list->next->prev = list;
- list->prev = entry;
- entry->next = list;
- head->next = new_first;
- new_first->prev = head;
-}
-
-/**
- * list_cut_position - cut a list into two
- * @list: a new list to add all removed entries
- * @head: a list with entries
- * @entry: an entry within head, could be the head itself
- * and if so we won't cut the list
- *
- * This helper moves the initial part of @head, up to and
- * including @entry, from @head to @list. You should
- * pass on @entry an element you know is on @head. @list
- * should be an empty list or a list you do not care about
- * losing its data.
- *
- */
-static inline void list_cut_position(struct list_head *list,
- struct list_head *head, struct list_head *entry)
-{
- if (list_empty(head))
- return;
- if (list_is_singular(head) &&
- (head->next != entry && head != entry))
- return;
- if (entry == head)
- INIT_LIST_HEAD(list);
- else
- __list_cut_position(list, head, entry);
-}
-
-static inline void __list_splice(const struct list_head *list,
- struct list_head *prev,
- struct list_head *next)
-{
- struct list_head *first = list->next;
- struct list_head *last = list->prev;
-
- first->prev = prev;
- prev->next = first;
-
- last->next = next;
- next->prev = last;
-}
-
-/**
- * list_splice - join two lists, this is designed for stacks
- * @list: the new list to add.
- * @head: the place to add it in the first list.
- */
-static inline void list_splice(const struct list_head *list,
- struct list_head *head)
-{
- if (!list_empty(list))
- __list_splice(list, head, head->next);
-}
-
-/**
- * list_splice_tail - join two lists, each list being a queue
- * @list: the new list to add.
- * @head: the place to add it in the first list.
- */
-static inline void list_splice_tail(struct list_head *list,
- struct list_head *head)
-{
- if (!list_empty(list))
- __list_splice(list, head->prev, head);
-}
-
-/**
- * list_splice_init - join two lists and reinitialise the emptied list.
- * @list: the new list to add.
- * @head: the place to add it in the first list.
- *
- * The list at @list is reinitialised
- */
-static inline void list_splice_init(struct list_head *list,
- struct list_head *head)
-{
- if (!list_empty(list)) {
- __list_splice(list, head, head->next);
- INIT_LIST_HEAD(list);
- }
-}
-
-/**
- * list_splice_tail_init - join two lists and reinitialise the emptied list
- * @list: the new list to add.
- * @head: the place to add it in the first list.
- *
- * Each of the lists is a queue.
- * The list at @list is reinitialised
- */
-static inline void list_splice_tail_init(struct list_head *list,
- struct list_head *head)
-{
- if (!list_empty(list)) {
- __list_splice(list, head->prev, head);
- INIT_LIST_HEAD(list);
- }
-}
-
-/**
- * list_entry - get the struct for this entry
- * @ptr: the &struct list_head pointer.
- * @type: the type of the struct this is embedded in.
- * @member: the name of the list_struct within the struct.
- */
-#define list_entry(ptr, type, member) \
- container_of(ptr, type, member)
-
-/**
- * list_first_entry - get the first element from a list
- * @ptr: the list head to take the element from.
- * @type: the type of the struct this is embedded in.
- * @member: the name of the list_struct within the struct.
- *
- * Note, that list is expected to be not empty.
- */
-#define list_first_entry(ptr, type, member) \
- list_entry((ptr)->next, type, member)
-
-/**
- * list_for_each - iterate over a list
- * @pos: the &struct list_head to use as a loop cursor.
- * @head: the head for your list.
- */
-#define list_for_each(pos, head) \
- for (pos = (head)->next; pos != (head); pos = pos->next)
-
-/**
- * __list_for_each - iterate over a list
- * @pos: the &struct list_head to use as a loop cursor.
- * @head: the head for your list.
- *
- * This variant doesn't differ from list_for_each() any more.
- * We don't do prefetching in either case.
- */
-#define __list_for_each(pos, head) \
- for (pos = (head)->next; pos != (head); pos = pos->next)
-
-/**
- * list_for_each_prev - iterate over a list backwards
- * @pos: the &struct list_head to use as a loop cursor.
- * @head: the head for your list.
- */
-#define list_for_each_prev(pos, head) \
- for (pos = (head)->prev; pos != (head); pos = pos->prev)
-
-/**
- * list_for_each_safe - iterate over a list safe against removal of list entry
- * @pos: the &struct list_head to use as a loop cursor.
- * @n: another &struct list_head to use as temporary storage
- * @head: the head for your list.
- */
-#define list_for_each_safe(pos, n, head) \
- for (pos = (head)->next, n = pos->next; pos != (head); \
- pos = n, n = pos->next)
-
-/**
- * list_for_each_prev_safe - iterate over a list backwards safe against removal of list entry
- * @pos: the &struct list_head to use as a loop cursor.
- * @n: another &struct list_head to use as temporary storage
- * @head: the head for your list.
- */
-#define list_for_each_prev_safe(pos, n, head) \
- for (pos = (head)->prev, n = pos->prev; \
- pos != (head); \
- pos = n, n = pos->prev)
-
-/**
- * list_for_each_entry - iterate over list of given type
- * @pos: the type * to use as a loop cursor.
- * @head: the head for your list.
- * @member: the name of the list_struct within the struct.
- */
-#define list_for_each_entry(pos, head, member) \
- for (pos = list_entry((head)->next, typeof(*pos), member); \
- &pos->member != (head); \
- pos = list_entry(pos->member.next, typeof(*pos), member))
-
-/**
- * list_for_each_entry_reverse - iterate backwards over list of given type.
- * @pos: the type * to use as a loop cursor.
- * @head: the head for your list.
- * @member: the name of the list_struct within the struct.
- */
-#define list_for_each_entry_reverse(pos, head, member) \
- for (pos = list_entry((head)->prev, typeof(*pos), member); \
- &pos->member != (head); \
- pos = list_entry(pos->member.prev, typeof(*pos), member))
-
-/**
- * list_prepare_entry - prepare a pos entry for use in list_for_each_entry_continue()
- * @pos: the type * to use as a start point
- * @head: the head of the list
- * @member: the name of the list_struct within the struct.
- *
- * Prepares a pos entry for use as a start point in list_for_each_entry_continue().
- */
-#define list_prepare_entry(pos, head, member) \
- ((pos) ? : list_entry(head, typeof(*pos), member))
-
-/**
- * list_for_each_entry_continue - continue iteration over list of given type
- * @pos: the type * to use as a loop cursor.
- * @head: the head for your list.
- * @member: the name of the list_struct within the struct.
- *
- * Continue to iterate over list of given type, continuing after
- * the current position.
- */
-#define list_for_each_entry_continue(pos, head, member) \
- for (pos = list_entry(pos->member.next, typeof(*pos), member); \
- &pos->member != (head); \
- pos = list_entry(pos->member.next, typeof(*pos), member))
-
-/**
- * list_for_each_entry_continue_reverse - iterate backwards from the given point
- * @pos: the type * to use as a loop cursor.
- * @head: the head for your list.
- * @member: the name of the list_struct within the struct.
- *
- * Start to iterate over list of given type backwards, continuing after
- * the current position.
- */
-#define list_for_each_entry_continue_reverse(pos, head, member) \
- for (pos = list_entry(pos->member.prev, typeof(*pos), member); \
- &pos->member != (head); \
- pos = list_entry(pos->member.prev, typeof(*pos), member))
-
-/**
- * list_for_each_entry_from - iterate over list of given type from the current point
- * @pos: the type * to use as a loop cursor.
- * @head: the head for your list.
- * @member: the name of the list_struct within the struct.
- *
- * Iterate over list of given type, continuing from current position.
- */
-#define list_for_each_entry_from(pos, head, member) \
- for (; &pos->member != (head); \
- pos = list_entry(pos->member.next, typeof(*pos), member))
-
-/**
- * list_for_each_entry_safe - iterate over list of given type safe against removal of list entry
- * @pos: the type * to use as a loop cursor.
- * @n: another type * to use as temporary storage
- * @head: the head for your list.
- * @member: the name of the list_struct within the struct.
- */
-#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))
-
-/**
- * list_for_each_entry_safe_continue - continue list iteration safe against removal
- * @pos: the type * to use as a loop cursor.
- * @n: another type * to use as temporary storage
- * @head: the head for your list.
- * @member: the name of the list_struct within the struct.
- *
- * Iterate over list of given type, continuing after current point,
- * safe against removal of list entry.
- */
-#define list_for_each_entry_safe_continue(pos, n, head, member) \
- for (pos = list_entry(pos->member.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))
-
-/**
- * list_for_each_entry_safe_from - iterate over list from current point safe against removal
- * @pos: the type * to use as a loop cursor.
- * @n: another type * to use as temporary storage
- * @head: the head for your list.
- * @member: the name of the list_struct within the struct.
- *
- * Iterate over list of given type from current point, safe against
- * removal of list entry.
- */
-#define list_for_each_entry_safe_from(pos, n, head, member) \
- for (n = list_entry(pos->member.next, typeof(*pos), member); \
- &pos->member != (head); \
- pos = n, n = list_entry(n->member.next, typeof(*n), member))
-
-/**
- * list_for_each_entry_safe_reverse - iterate backwards over list safe against removal
- * @pos: the type * to use as a loop cursor.
- * @n: another type * to use as temporary storage
- * @head: the head for your list.
- * @member: the name of the list_struct within the struct.
- *
- * Iterate backwards over list of given type, safe against removal
- * of list entry.
- */
-#define list_for_each_entry_safe_reverse(pos, n, head, member) \
- for (pos = list_entry((head)->prev, typeof(*pos), member), \
- n = list_entry(pos->member.prev, typeof(*pos), member); \
- &pos->member != (head); \
- pos = n, n = list_entry(n->member.prev, typeof(*n), member))
-
-/**
- * list_safe_reset_next - reset a stale list_for_each_entry_safe loop
- * @pos: the loop cursor used in the list_for_each_entry_safe loop
- * @n: temporary storage used in list_for_each_entry_safe
- * @member: the name of the list_struct within the struct.
- *
- * list_safe_reset_next is not safe to use in general if the list may be
- * modified concurrently (eg. the lock is dropped in the loop body). An
- * exception to this is if the cursor element (pos) is pinned in the list,
- * and list_safe_reset_next is called after re-taking the lock and before
- * completing the current iteration of the loop body.
- */
-#define list_safe_reset_next(pos, n, member) \
- n = list_entry(pos->member.next, typeof(*pos), member)
-
-/*
- * Double linked lists with a single pointer list head.
- * Mostly useful for hash tables where the two pointer list head is
- * too wasteful.
- * You lose the ability to access the tail in O(1).
- */
-
-#define HLIST_HEAD_INIT { .first = NULL }
-#define HLIST_HEAD(name) struct hlist_head name = { .first = NULL }
-#define INIT_HLIST_HEAD(ptr) ((ptr)->first = NULL)
-static inline void INIT_HLIST_NODE(struct hlist_node *h)
-{
- h->next = NULL;
- h->pprev = NULL;
-}
-
-static inline int hlist_unhashed(const struct hlist_node *h)
-{
- return !h->pprev;
-}
-
-static inline int hlist_empty(const struct hlist_head *h)
-{
- return !h->first;
-}
-
-static inline void __hlist_del(struct hlist_node *n)
-{
- struct hlist_node *next = n->next;
- struct hlist_node **pprev = n->pprev;
- *pprev = next;
- if (next)
- next->pprev = pprev;
-}
-
-static inline void hlist_del(struct hlist_node *n)
-{
- __hlist_del(n);
- n->next = LIST_POISON1;
- n->pprev = LIST_POISON2;
-}
-
-static inline void hlist_del_init(struct hlist_node *n)
-{
- if (!hlist_unhashed(n)) {
- __hlist_del(n);
- INIT_HLIST_NODE(n);
- }
-}
-
-static inline void hlist_add_head(struct hlist_node *n, struct hlist_head *h)
-{
- struct hlist_node *first = h->first;
- n->next = first;
- if (first)
- first->pprev = &n->next;
- h->first = n;
- n->pprev = &h->first;
-}
-
-/* next must be != NULL */
-static inline void hlist_add_before(struct hlist_node *n,
- struct hlist_node *next)
-{
- n->pprev = next->pprev;
- n->next = next;
- next->pprev = &n->next;
- *(n->pprev) = n;
-}
-
-static inline void hlist_add_after(struct hlist_node *n,
- struct hlist_node *next)
-{
- next->next = n->next;
- n->next = next;
- next->pprev = &n->next;
-
- if(next->next)
- next->next->pprev = &next->next;
-}
-
-/* after that we'll appear to be on some hlist and hlist_del will work */
-static inline void hlist_add_fake(struct hlist_node *n)
-{
- n->pprev = &n->next;
-}
-
-/*
- * Move a list from one list head to another. Fixup the pprev
- * reference of the first entry if it exists.
- */
-static inline void hlist_move_list(struct hlist_head *old,
- struct hlist_head *new)
-{
- new->first = old->first;
- if (new->first)
- new->first->pprev = &new->first;
- old->first = NULL;
-}
-
-#define hlist_entry(ptr, type, member) container_of(ptr,type,member)
-
-#define hlist_for_each(pos, head) \
- for (pos = (head)->first; pos ; pos = pos->next)
-
-#define hlist_for_each_safe(pos, n, head) \
- for (pos = (head)->first; pos && ({ n = pos->next; 1; }); \
- pos = n)
-
-/**
- * hlist_for_each_entry - iterate over list of given type
- * @tpos: the type * to use as a loop cursor.
- * @pos: the &struct hlist_node to use as a loop cursor.
- * @head: the head for your list.
- * @member: the name of the hlist_node within the struct.
- */
-#define hlist_for_each_entry(tpos, pos, head, member) \
- for (pos = (head)->first; \
- pos && \
- ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \
- pos = pos->next)
-
-/**
- * hlist_for_each_entry_continue - iterate over a hlist continuing after current point
- * @tpos: the type * to use as a loop cursor.
- * @pos: the &struct hlist_node to use as a loop cursor.
- * @member: the name of the hlist_node within the struct.
- */
-#define hlist_for_each_entry_continue(tpos, pos, member) \
- for (pos = (pos)->next; \
- pos && \
- ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \
- pos = pos->next)
-
-/**
- * hlist_for_each_entry_from - iterate over a hlist continuing from current point
- * @tpos: the type * to use as a loop cursor.
- * @pos: the &struct hlist_node to use as a loop cursor.
- * @member: the name of the hlist_node within the struct.
- */
-#define hlist_for_each_entry_from(tpos, pos, member) \
- for (; pos && \
- ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \
- pos = pos->next)
-
-/**
- * hlist_for_each_entry_safe - iterate over list of given type safe against removal of list entry
- * @tpos: the type * to use as a loop cursor.
- * @pos: the &struct hlist_node to use as a loop cursor.
- * @n: another &struct hlist_node to use as temporary storage
- * @head: the head for your list.
- * @member: the name of the hlist_node within the struct.
- */
-#define hlist_for_each_entry_safe(tpos, pos, n, head, member) \
- for (pos = (head)->first; \
- pos && ({ n = pos->next; 1; }) && \
- ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \
- pos = n)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/list_bl.h b/ANDROID_3.4.5/include/linux/list_bl.h
deleted file mode 100644
index 31f9d75a..00000000
--- a/ANDROID_3.4.5/include/linux/list_bl.h
+++ /dev/null
@@ -1,156 +0,0 @@
-#ifndef _LINUX_LIST_BL_H
-#define _LINUX_LIST_BL_H
-
-#include <linux/list.h>
-#include <linux/bit_spinlock.h>
-
-/*
- * Special version of lists, where head of the list has a lock in the lowest
- * bit. This is useful for scalable hash tables without increasing memory
- * footprint overhead.
- *
- * For modification operations, the 0 bit of hlist_bl_head->first
- * pointer must be set.
- *
- * With some small modifications, this can easily be adapted to store several
- * arbitrary bits (not just a single lock bit), if the need arises to store
- * some fast and compact auxiliary data.
- */
-
-#if defined(CONFIG_SMP) || defined(CONFIG_DEBUG_SPINLOCK)
-#define LIST_BL_LOCKMASK 1UL
-#else
-#define LIST_BL_LOCKMASK 0UL
-#endif
-
-#ifdef CONFIG_DEBUG_LIST
-#define LIST_BL_BUG_ON(x) BUG_ON(x)
-#else
-#define LIST_BL_BUG_ON(x)
-#endif
-
-
-struct hlist_bl_head {
- struct hlist_bl_node *first;
-};
-
-struct hlist_bl_node {
- struct hlist_bl_node *next, **pprev;
-};
-#define INIT_HLIST_BL_HEAD(ptr) \
- ((ptr)->first = NULL)
-
-static inline void INIT_HLIST_BL_NODE(struct hlist_bl_node *h)
-{
- h->next = NULL;
- h->pprev = NULL;
-}
-
-#define hlist_bl_entry(ptr, type, member) container_of(ptr,type,member)
-
-static inline int hlist_bl_unhashed(const struct hlist_bl_node *h)
-{
- return !h->pprev;
-}
-
-static inline struct hlist_bl_node *hlist_bl_first(struct hlist_bl_head *h)
-{
- return (struct hlist_bl_node *)
- ((unsigned long)h->first & ~LIST_BL_LOCKMASK);
-}
-
-static inline void hlist_bl_set_first(struct hlist_bl_head *h,
- struct hlist_bl_node *n)
-{
- LIST_BL_BUG_ON((unsigned long)n & LIST_BL_LOCKMASK);
- LIST_BL_BUG_ON(((unsigned long)h->first & LIST_BL_LOCKMASK) !=
- LIST_BL_LOCKMASK);
- h->first = (struct hlist_bl_node *)((unsigned long)n | LIST_BL_LOCKMASK);
-}
-
-static inline int hlist_bl_empty(const struct hlist_bl_head *h)
-{
- return !((unsigned long)h->first & ~LIST_BL_LOCKMASK);
-}
-
-static inline void hlist_bl_add_head(struct hlist_bl_node *n,
- struct hlist_bl_head *h)
-{
- struct hlist_bl_node *first = hlist_bl_first(h);
-
- n->next = first;
- if (first)
- first->pprev = &n->next;
- n->pprev = &h->first;
- hlist_bl_set_first(h, n);
-}
-
-static inline void __hlist_bl_del(struct hlist_bl_node *n)
-{
- struct hlist_bl_node *next = n->next;
- struct hlist_bl_node **pprev = n->pprev;
-
- LIST_BL_BUG_ON((unsigned long)n & LIST_BL_LOCKMASK);
-
- /* pprev may be `first`, so be careful not to lose the lock bit */
- *pprev = (struct hlist_bl_node *)
- ((unsigned long)next |
- ((unsigned long)*pprev & LIST_BL_LOCKMASK));
- if (next)
- next->pprev = pprev;
-}
-
-static inline void hlist_bl_del(struct hlist_bl_node *n)
-{
- __hlist_bl_del(n);
- n->next = LIST_POISON1;
- n->pprev = LIST_POISON2;
-}
-
-static inline void hlist_bl_del_init(struct hlist_bl_node *n)
-{
- if (!hlist_bl_unhashed(n)) {
- __hlist_bl_del(n);
- INIT_HLIST_BL_NODE(n);
- }
-}
-
-static inline void hlist_bl_lock(struct hlist_bl_head *b)
-{
- bit_spin_lock(0, (unsigned long *)b);
-}
-
-static inline void hlist_bl_unlock(struct hlist_bl_head *b)
-{
- __bit_spin_unlock(0, (unsigned long *)b);
-}
-
-/**
- * hlist_bl_for_each_entry - iterate over list of given type
- * @tpos: the type * to use as a loop cursor.
- * @pos: the &struct hlist_node to use as a loop cursor.
- * @head: the head for your list.
- * @member: the name of the hlist_node within the struct.
- *
- */
-#define hlist_bl_for_each_entry(tpos, pos, head, member) \
- for (pos = hlist_bl_first(head); \
- pos && \
- ({ tpos = hlist_bl_entry(pos, typeof(*tpos), member); 1;}); \
- pos = pos->next)
-
-/**
- * hlist_bl_for_each_entry_safe - iterate over list of given type safe against removal of list entry
- * @tpos: the type * to use as a loop cursor.
- * @pos: the &struct hlist_node to use as a loop cursor.
- * @n: another &struct hlist_node to use as temporary storage
- * @head: the head for your list.
- * @member: the name of the hlist_node within the struct.
- */
-#define hlist_bl_for_each_entry_safe(tpos, pos, n, head, member) \
- for (pos = hlist_bl_first(head); \
- pos && ({ n = pos->next; 1; }) && \
- ({ tpos = hlist_bl_entry(pos, typeof(*tpos), member); 1;}); \
- pos = n)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/list_nulls.h b/ANDROID_3.4.5/include/linux/list_nulls.h
deleted file mode 100644
index 5d10ae36..00000000
--- a/ANDROID_3.4.5/include/linux/list_nulls.h
+++ /dev/null
@@ -1,112 +0,0 @@
-#ifndef _LINUX_LIST_NULLS_H
-#define _LINUX_LIST_NULLS_H
-
-/*
- * Special version of lists, where end of list is not a NULL pointer,
- * but a 'nulls' marker, which can have many different values.
- * (up to 2^31 different values guaranteed on all platforms)
- *
- * In the standard hlist, termination of a list is the NULL pointer.
- * In this special 'nulls' variant, we use the fact that objects stored in
- * a list are aligned on a word (4 or 8 bytes alignment).
- * We therefore use the last significant bit of 'ptr' :
- * Set to 1 : This is a 'nulls' end-of-list marker (ptr >> 1)
- * Set to 0 : This is a pointer to some object (ptr)
- */
-
-struct hlist_nulls_head {
- struct hlist_nulls_node *first;
-};
-
-struct hlist_nulls_node {
- struct hlist_nulls_node *next, **pprev;
-};
-#define INIT_HLIST_NULLS_HEAD(ptr, nulls) \
- ((ptr)->first = (struct hlist_nulls_node *) (1UL | (((long)nulls) << 1)))
-
-#define hlist_nulls_entry(ptr, type, member) container_of(ptr,type,member)
-/**
- * ptr_is_a_nulls - Test if a ptr is a nulls
- * @ptr: ptr to be tested
- *
- */
-static inline int is_a_nulls(const struct hlist_nulls_node *ptr)
-{
- return ((unsigned long)ptr & 1);
-}
-
-/**
- * get_nulls_value - Get the 'nulls' value of the end of chain
- * @ptr: end of chain
- *
- * Should be called only if is_a_nulls(ptr);
- */
-static inline unsigned long get_nulls_value(const struct hlist_nulls_node *ptr)
-{
- return ((unsigned long)ptr) >> 1;
-}
-
-static inline int hlist_nulls_unhashed(const struct hlist_nulls_node *h)
-{
- return !h->pprev;
-}
-
-static inline int hlist_nulls_empty(const struct hlist_nulls_head *h)
-{
- return is_a_nulls(h->first);
-}
-
-static inline void hlist_nulls_add_head(struct hlist_nulls_node *n,
- struct hlist_nulls_head *h)
-{
- struct hlist_nulls_node *first = h->first;
-
- n->next = first;
- n->pprev = &h->first;
- h->first = n;
- if (!is_a_nulls(first))
- first->pprev = &n->next;
-}
-
-static inline void __hlist_nulls_del(struct hlist_nulls_node *n)
-{
- struct hlist_nulls_node *next = n->next;
- struct hlist_nulls_node **pprev = n->pprev;
- *pprev = next;
- if (!is_a_nulls(next))
- next->pprev = pprev;
-}
-
-static inline void hlist_nulls_del(struct hlist_nulls_node *n)
-{
- __hlist_nulls_del(n);
- n->pprev = LIST_POISON2;
-}
-
-/**
- * hlist_nulls_for_each_entry - iterate over list of given type
- * @tpos: the type * to use as a loop cursor.
- * @pos: the &struct hlist_node to use as a loop cursor.
- * @head: the head for your list.
- * @member: the name of the hlist_node within the struct.
- *
- */
-#define hlist_nulls_for_each_entry(tpos, pos, head, member) \
- for (pos = (head)->first; \
- (!is_a_nulls(pos)) && \
- ({ tpos = hlist_nulls_entry(pos, typeof(*tpos), member); 1;}); \
- pos = pos->next)
-
-/**
- * hlist_nulls_for_each_entry_from - iterate over a hlist continuing from current point
- * @tpos: the type * to use as a loop cursor.
- * @pos: the &struct hlist_node to use as a loop cursor.
- * @member: the name of the hlist_node within the struct.
- *
- */
-#define hlist_nulls_for_each_entry_from(tpos, pos, member) \
- for (; (!is_a_nulls(pos)) && \
- ({ tpos = hlist_nulls_entry(pos, typeof(*tpos), member); 1;}); \
- pos = pos->next)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/list_sort.h b/ANDROID_3.4.5/include/linux/list_sort.h
deleted file mode 100644
index 1a2df2ef..00000000
--- a/ANDROID_3.4.5/include/linux/list_sort.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef _LINUX_LIST_SORT_H
-#define _LINUX_LIST_SORT_H
-
-#include <linux/types.h>
-
-struct list_head;
-
-void list_sort(void *priv, struct list_head *head,
- int (*cmp)(void *priv, struct list_head *a,
- struct list_head *b));
-#endif
diff --git a/ANDROID_3.4.5/include/linux/llc.h b/ANDROID_3.4.5/include/linux/llc.h
deleted file mode 100644
index a2418ae1..00000000
--- a/ANDROID_3.4.5/include/linux/llc.h
+++ /dev/null
@@ -1,91 +0,0 @@
-#ifndef __LINUX_LLC_H
-#define __LINUX_LLC_H
-/*
- * IEEE 802.2 User Interface SAPs for Linux, data structures and indicators.
- *
- * Copyright (c) 2001 by Jay Schulist <jschlst@samba.org>
- *
- * This program can be redistributed or modified under the terms of the
- * GNU General Public License as published by the Free Software Foundation.
- * This program is distributed without any warranty or implied warranty
- * of merchantability or fitness for a particular purpose.
- *
- * See the GNU General Public License for more details.
- */
-
-#include <linux/socket.h>
-
-#define __LLC_SOCK_SIZE__ 16 /* sizeof(sockaddr_llc), word align. */
-struct sockaddr_llc {
- __kernel_sa_family_t sllc_family; /* AF_LLC */
- __kernel_sa_family_t sllc_arphrd; /* ARPHRD_ETHER */
- unsigned char sllc_test;
- unsigned char sllc_xid;
- unsigned char sllc_ua; /* UA data, only for SOCK_STREAM. */
- unsigned char sllc_sap;
- unsigned char sllc_mac[IFHWADDRLEN];
- unsigned char __pad[__LLC_SOCK_SIZE__ -
- sizeof(__kernel_sa_family_t) * 2 -
- sizeof(unsigned char) * 4 - IFHWADDRLEN];
-};
-
-/* sockopt definitions. */
-enum llc_sockopts {
- LLC_OPT_UNKNOWN = 0,
- LLC_OPT_RETRY, /* max retrans attempts. */
- LLC_OPT_SIZE, /* max PDU size (octets). */
- LLC_OPT_ACK_TMR_EXP, /* ack expire time (secs). */
- LLC_OPT_P_TMR_EXP, /* pf cycle expire time (secs). */
- LLC_OPT_REJ_TMR_EXP, /* rej sent expire time (secs). */
- LLC_OPT_BUSY_TMR_EXP, /* busy state expire time (secs). */
- LLC_OPT_TX_WIN, /* tx window size. */
- LLC_OPT_RX_WIN, /* rx window size. */
- LLC_OPT_PKTINFO, /* ancillary packet information. */
- LLC_OPT_MAX
-};
-
-#define LLC_OPT_MAX_RETRY 100
-#define LLC_OPT_MAX_SIZE 4196
-#define LLC_OPT_MAX_WIN 127
-#define LLC_OPT_MAX_ACK_TMR_EXP 60
-#define LLC_OPT_MAX_P_TMR_EXP 60
-#define LLC_OPT_MAX_REJ_TMR_EXP 60
-#define LLC_OPT_MAX_BUSY_TMR_EXP 60
-
-/* LLC SAP types. */
-#define LLC_SAP_NULL 0x00 /* NULL SAP. */
-#define LLC_SAP_LLC 0x02 /* LLC Sublayer Management. */
-#define LLC_SAP_SNA 0x04 /* SNA Path Control. */
-#define LLC_SAP_PNM 0x0E /* Proway Network Management. */
-#define LLC_SAP_IP 0x06 /* TCP/IP. */
-#define LLC_SAP_BSPAN 0x42 /* Bridge Spanning Tree Proto */
-#define LLC_SAP_MMS 0x4E /* Manufacturing Message Srv. */
-#define LLC_SAP_8208 0x7E /* ISO 8208 */
-#define LLC_SAP_3COM 0x80 /* 3COM. */
-#define LLC_SAP_PRO 0x8E /* Proway Active Station List */
-#define LLC_SAP_SNAP 0xAA /* SNAP. */
-#define LLC_SAP_BANYAN 0xBC /* Banyan. */
-#define LLC_SAP_IPX 0xE0 /* IPX/SPX. */
-#define LLC_SAP_NETBEUI 0xF0 /* NetBEUI. */
-#define LLC_SAP_LANMGR 0xF4 /* LanManager. */
-#define LLC_SAP_IMPL 0xF8 /* IMPL */
-#define LLC_SAP_DISC 0xFC /* Discovery */
-#define LLC_SAP_OSI 0xFE /* OSI Network Layers. */
-#define LLC_SAP_LAR 0xDC /* LAN Address Resolution */
-#define LLC_SAP_RM 0xD4 /* Resource Management */
-#define LLC_SAP_GLOBAL 0xFF /* Global SAP. */
-
-struct llc_pktinfo {
- int lpi_ifindex;
- unsigned char lpi_sap;
- unsigned char lpi_mac[IFHWADDRLEN];
-};
-
-#ifdef __KERNEL__
-#define LLC_SAP_DYN_START 0xC0
-#define LLC_SAP_DYN_STOP 0xDE
-#define LLC_SAP_DYN_TRIES 4
-
-#define llc_ui_skb_cb(__skb) ((struct sockaddr_llc *)&((__skb)->cb[0]))
-#endif /* __KERNEL__ */
-#endif /* __LINUX_LLC_H */
diff --git a/ANDROID_3.4.5/include/linux/llist.h b/ANDROID_3.4.5/include/linux/llist.h
deleted file mode 100644
index a5199f6d..00000000
--- a/ANDROID_3.4.5/include/linux/llist.h
+++ /dev/null
@@ -1,186 +0,0 @@
-#ifndef LLIST_H
-#define LLIST_H
-/*
- * Lock-less NULL terminated single linked list
- *
- * If there are multiple producers and multiple consumers, llist_add
- * can be used in producers and llist_del_all can be used in
- * consumers. They can work simultaneously without lock. But
- * llist_del_first can not be used here. Because llist_del_first
- * depends on list->first->next does not changed if list->first is not
- * changed during its operation, but llist_del_first, llist_add,
- * llist_add (or llist_del_all, llist_add, llist_add) sequence in
- * another consumer may violate that.
- *
- * If there are multiple producers and one consumer, llist_add can be
- * used in producers and llist_del_all or llist_del_first can be used
- * in the consumer.
- *
- * This can be summarized as follow:
- *
- * | add | del_first | del_all
- * add | - | - | -
- * del_first | | L | L
- * del_all | | | -
- *
- * Where "-" stands for no lock is needed, while "L" stands for lock
- * is needed.
- *
- * The list entries deleted via llist_del_all can be traversed with
- * traversing function such as llist_for_each etc. But the list
- * entries can not be traversed safely before deleted from the list.
- * The order of deleted entries is from the newest to the oldest added
- * one. If you want to traverse from the oldest to the newest, you
- * must reverse the order by yourself before traversing.
- *
- * The basic atomic operation of this list is cmpxchg on long. On
- * architectures that don't have NMI-safe cmpxchg implementation, the
- * list can NOT be used in NMI handlers. So code that uses the list in
- * an NMI handler should depend on CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG.
- *
- * Copyright 2010,2011 Intel Corp.
- * Author: Huang Ying <ying.huang@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;
- *
- * 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 <asm/cmpxchg.h>
-
-struct llist_head {
- struct llist_node *first;
-};
-
-struct llist_node {
- struct llist_node *next;
-};
-
-#define LLIST_HEAD_INIT(name) { NULL }
-#define LLIST_HEAD(name) struct llist_head name = LLIST_HEAD_INIT(name)
-
-/**
- * init_llist_head - initialize lock-less list head
- * @head: the head for your lock-less list
- */
-static inline void init_llist_head(struct llist_head *list)
-{
- list->first = NULL;
-}
-
-/**
- * llist_entry - get the struct of this entry
- * @ptr: the &struct llist_node pointer.
- * @type: the type of the struct this is embedded in.
- * @member: the name of the llist_node within the struct.
- */
-#define llist_entry(ptr, type, member) \
- container_of(ptr, type, member)
-
-/**
- * llist_for_each - iterate over some deleted entries of a lock-less list
- * @pos: the &struct llist_node to use as a loop cursor
- * @node: the first entry of deleted list entries
- *
- * In general, some entries of the lock-less list can be traversed
- * safely only after being deleted from list, so start with an entry
- * instead of list head.
- *
- * If being used on entries deleted from lock-less list directly, the
- * traverse order is from the newest to the oldest added entry. If
- * you want to traverse from the oldest to the newest, you must
- * reverse the order by yourself before traversing.
- */
-#define llist_for_each(pos, node) \
- for ((pos) = (node); pos; (pos) = (pos)->next)
-
-/**
- * llist_for_each_entry - iterate over some deleted entries of lock-less list of given type
- * @pos: the type * to use as a loop cursor.
- * @node: the fist entry of deleted list entries.
- * @member: the name of the llist_node with the struct.
- *
- * In general, some entries of the lock-less list can be traversed
- * safely only after being removed from list, so start with an entry
- * instead of list head.
- *
- * If being used on entries deleted from lock-less list directly, the
- * traverse order is from the newest to the oldest added entry. If
- * you want to traverse from the oldest to the newest, you must
- * reverse the order by yourself before traversing.
- */
-#define llist_for_each_entry(pos, node, member) \
- for ((pos) = llist_entry((node), typeof(*(pos)), member); \
- &(pos)->member != NULL; \
- (pos) = llist_entry((pos)->member.next, typeof(*(pos)), member))
-
-/**
- * llist_empty - tests whether a lock-less list is empty
- * @head: the list to test
- *
- * Not guaranteed to be accurate or up to date. Just a quick way to
- * test whether the list is empty without deleting something from the
- * list.
- */
-static inline bool llist_empty(const struct llist_head *head)
-{
- return ACCESS_ONCE(head->first) == NULL;
-}
-
-static inline struct llist_node *llist_next(struct llist_node *node)
-{
- return node->next;
-}
-
-/**
- * llist_add - add a new entry
- * @new: new entry to be added
- * @head: the head for your lock-less list
- *
- * Returns true if the list was empty prior to adding this entry.
- */
-static inline bool llist_add(struct llist_node *new, struct llist_head *head)
-{
- struct llist_node *entry, *old_entry;
-
- entry = head->first;
- for (;;) {
- old_entry = entry;
- new->next = entry;
- entry = cmpxchg(&head->first, old_entry, new);
- if (entry == old_entry)
- break;
- }
-
- return old_entry == NULL;
-}
-
-/**
- * llist_del_all - delete all entries from lock-less list
- * @head: the head of lock-less list to delete all entries
- *
- * If list is empty, return NULL, otherwise, delete all entries and
- * return the pointer to the first entry. The order of entries
- * deleted is from the newest to the oldest added one.
- */
-static inline struct llist_node *llist_del_all(struct llist_head *head)
-{
- return xchg(&head->first, NULL);
-}
-
-extern bool llist_add_batch(struct llist_node *new_first,
- struct llist_node *new_last,
- struct llist_head *head);
-extern struct llist_node *llist_del_first(struct llist_head *head);
-
-#endif /* LLIST_H */
diff --git a/ANDROID_3.4.5/include/linux/lockd/bind.h b/ANDROID_3.4.5/include/linux/lockd/bind.h
deleted file mode 100644
index 4d24d645..00000000
--- a/ANDROID_3.4.5/include/linux/lockd/bind.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * linux/include/linux/lockd/bind.h
- *
- * This is the part of lockd visible to nfsd and the nfs client.
- *
- * Copyright (C) 1996, Olaf Kirch <okir@monad.swb.de>
- */
-
-#ifndef LINUX_LOCKD_BIND_H
-#define LINUX_LOCKD_BIND_H
-
-#include <linux/lockd/nlm.h>
-/* need xdr-encoded error codes too, so... */
-#include <linux/lockd/xdr.h>
-#ifdef CONFIG_LOCKD_V4
-#include <linux/lockd/xdr4.h>
-#endif
-
-/* Dummy declarations */
-struct svc_rqst;
-
-/*
- * This is the set of functions for lockd->nfsd communication
- */
-struct nlmsvc_binding {
- __be32 (*fopen)(struct svc_rqst *,
- struct nfs_fh *,
- struct file **);
- void (*fclose)(struct file *);
-};
-
-extern struct nlmsvc_binding * nlmsvc_ops;
-
-/*
- * Similar to nfs_client_initdata, but without the NFS-specific
- * rpc_ops field.
- */
-struct nlmclnt_initdata {
- const char *hostname;
- const struct sockaddr *address;
- size_t addrlen;
- unsigned short protocol;
- u32 nfs_version;
- int noresvport;
- struct net *net;
-};
-
-/*
- * Functions exported by the lockd module
- */
-
-extern struct nlm_host *nlmclnt_init(const struct nlmclnt_initdata *nlm_init);
-extern void nlmclnt_done(struct nlm_host *host);
-
-extern int nlmclnt_proc(struct nlm_host *host, int cmd,
- struct file_lock *fl);
-extern int lockd_up(struct net *net);
-extern void lockd_down(struct net *net);
-
-#endif /* LINUX_LOCKD_BIND_H */
diff --git a/ANDROID_3.4.5/include/linux/lockd/debug.h b/ANDROID_3.4.5/include/linux/lockd/debug.h
deleted file mode 100644
index 257d3779..00000000
--- a/ANDROID_3.4.5/include/linux/lockd/debug.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * linux/include/linux/lockd/debug.h
- *
- * Debugging stuff.
- *
- * Copyright (C) 1996 Olaf Kirch <okir@monad.swb.de>
- */
-
-#ifndef LINUX_LOCKD_DEBUG_H
-#define LINUX_LOCKD_DEBUG_H
-
-#ifdef __KERNEL__
-
-#include <linux/sunrpc/debug.h>
-
-/*
- * Enable lockd debugging.
- * Requires RPC_DEBUG.
- */
-#ifdef RPC_DEBUG
-# define LOCKD_DEBUG 1
-#endif
-
-#undef ifdebug
-#if defined(RPC_DEBUG) && defined(LOCKD_DEBUG)
-# define ifdebug(flag) if (unlikely(nlm_debug & NLMDBG_##flag))
-#else
-# define ifdebug(flag) if (0)
-#endif
-
-#endif /* __KERNEL__ */
-
-/*
- * Debug flags
- */
-#define NLMDBG_SVC 0x0001
-#define NLMDBG_CLIENT 0x0002
-#define NLMDBG_CLNTLOCK 0x0004
-#define NLMDBG_SVCLOCK 0x0008
-#define NLMDBG_MONITOR 0x0010
-#define NLMDBG_CLNTSUBS 0x0020
-#define NLMDBG_SVCSUBS 0x0040
-#define NLMDBG_HOSTCACHE 0x0080
-#define NLMDBG_XDR 0x0100
-#define NLMDBG_ALL 0x7fff
-
-#endif /* LINUX_LOCKD_DEBUG_H */
diff --git a/ANDROID_3.4.5/include/linux/lockd/lockd.h b/ANDROID_3.4.5/include/linux/lockd/lockd.h
deleted file mode 100644
index f04ce6ac..00000000
--- a/ANDROID_3.4.5/include/linux/lockd/lockd.h
+++ /dev/null
@@ -1,365 +0,0 @@
-/*
- * linux/include/linux/lockd/lockd.h
- *
- * General-purpose lockd include file.
- *
- * Copyright (C) 1996 Olaf Kirch <okir@monad.swb.de>
- */
-
-#ifndef LINUX_LOCKD_LOCKD_H
-#define LINUX_LOCKD_LOCKD_H
-
-#ifdef __KERNEL__
-
-#include <linux/in.h>
-#include <linux/in6.h>
-#include <net/ipv6.h>
-#include <linux/fs.h>
-#include <linux/kref.h>
-#include <linux/utsname.h>
-#include <linux/nfsd/nfsfh.h>
-#include <linux/lockd/bind.h>
-#include <linux/lockd/xdr.h>
-#ifdef CONFIG_LOCKD_V4
-#include <linux/lockd/xdr4.h>
-#endif
-#include <linux/lockd/debug.h>
-
-/*
- * Version string
- */
-#define LOCKD_VERSION "0.5"
-
-/*
- * Default timeout for RPC calls (seconds)
- */
-#define LOCKD_DFLT_TIMEO 10
-
-/*
- * Lockd host handle (used both by the client and server personality).
- */
-struct nlm_host {
- struct hlist_node h_hash; /* doubly linked list */
- struct sockaddr_storage h_addr; /* peer address */
- size_t h_addrlen;
- struct sockaddr_storage h_srcaddr; /* our address (optional) */
- size_t h_srcaddrlen;
- struct rpc_clnt *h_rpcclnt; /* RPC client to talk to peer */
- char *h_name; /* remote hostname */
- u32 h_version; /* interface version */
- unsigned short h_proto; /* transport proto */
- unsigned short h_reclaiming : 1,
- h_server : 1, /* server side, not client side */
- h_noresvport : 1,
- h_inuse : 1;
- wait_queue_head_t h_gracewait; /* wait while reclaiming */
- struct rw_semaphore h_rwsem; /* Reboot recovery lock */
- u32 h_state; /* pseudo-state counter */
- u32 h_nsmstate; /* true remote NSM state */
- u32 h_pidcount; /* Pseudopids */
- atomic_t h_count; /* reference count */
- struct mutex h_mutex; /* mutex for pmap binding */
- unsigned long h_nextrebind; /* next portmap call */
- unsigned long h_expires; /* eligible for GC */
- struct list_head h_lockowners; /* Lockowners for the client */
- spinlock_t h_lock;
- struct list_head h_granted; /* Locks in GRANTED state */
- struct list_head h_reclaim; /* Locks in RECLAIM state */
- struct nsm_handle *h_nsmhandle; /* NSM status handle */
- char *h_addrbuf; /* address eyecatcher */
- struct net *net; /* host net */
-};
-
-/*
- * The largest string sm_addrbuf should hold is a full-size IPv6 address
- * (no "::" anywhere) with a scope ID. The buffer size is computed to
- * hold eight groups of colon-separated four-hex-digit numbers, a
- * percent sign, a scope id (at most 32 bits, in decimal), and NUL.
- */
-#define NSM_ADDRBUF ((8 * 4 + 7) + (1 + 10) + 1)
-
-struct nsm_handle {
- struct list_head sm_link;
- atomic_t sm_count;
- char *sm_mon_name;
- char *sm_name;
- struct sockaddr_storage sm_addr;
- size_t sm_addrlen;
- unsigned int sm_monitored : 1,
- sm_sticky : 1; /* don't unmonitor */
- struct nsm_private sm_priv;
- char sm_addrbuf[NSM_ADDRBUF];
-};
-
-/*
- * Rigorous type checking on sockaddr type conversions
- */
-static inline struct sockaddr_in *nlm_addr_in(const struct nlm_host *host)
-{
- return (struct sockaddr_in *)&host->h_addr;
-}
-
-static inline struct sockaddr *nlm_addr(const struct nlm_host *host)
-{
- return (struct sockaddr *)&host->h_addr;
-}
-
-static inline struct sockaddr_in *nlm_srcaddr_in(const struct nlm_host *host)
-{
- return (struct sockaddr_in *)&host->h_srcaddr;
-}
-
-static inline struct sockaddr *nlm_srcaddr(const struct nlm_host *host)
-{
- return (struct sockaddr *)&host->h_srcaddr;
-}
-
-/*
- * Map an fl_owner_t into a unique 32-bit "pid"
- */
-struct nlm_lockowner {
- struct list_head list;
- atomic_t count;
-
- struct nlm_host *host;
- fl_owner_t owner;
- uint32_t pid;
-};
-
-struct nlm_wait;
-
-/*
- * Memory chunk for NLM client RPC request.
- */
-#define NLMCLNT_OHSIZE ((__NEW_UTS_LEN) + 10u)
-struct nlm_rqst {
- atomic_t a_count;
- unsigned int a_flags; /* initial RPC task flags */
- struct nlm_host * a_host; /* host handle */
- struct nlm_args a_args; /* arguments */
- struct nlm_res a_res; /* result */
- struct nlm_block * a_block;
- unsigned int a_retries; /* Retry count */
- u8 a_owner[NLMCLNT_OHSIZE];
-};
-
-/*
- * This struct describes a file held open by lockd on behalf of
- * an NFS client.
- */
-struct nlm_file {
- struct hlist_node f_list; /* linked list */
- struct nfs_fh f_handle; /* NFS file handle */
- struct file * f_file; /* VFS file pointer */
- struct nlm_share * f_shares; /* DOS shares */
- struct list_head f_blocks; /* blocked locks */
- unsigned int f_locks; /* guesstimate # of locks */
- unsigned int f_count; /* reference count */
- struct mutex f_mutex; /* avoid concurrent access */
-};
-
-/*
- * This is a server block (i.e. a lock requested by some client which
- * couldn't be granted because of a conflicting lock).
- */
-#define NLM_NEVER (~(unsigned long) 0)
-/* timeout on non-blocking call: */
-#define NLM_TIMEOUT (7 * HZ)
-
-struct nlm_block {
- struct kref b_count; /* Reference count */
- struct list_head b_list; /* linked list of all blocks */
- struct list_head b_flist; /* linked list (per file) */
- struct nlm_rqst * b_call; /* RPC args & callback info */
- struct svc_serv * b_daemon; /* NLM service */
- struct nlm_host * b_host; /* host handle for RPC clnt */
- unsigned long b_when; /* next re-xmit */
- unsigned int b_id; /* block id */
- unsigned char b_granted; /* VFS granted lock */
- struct nlm_file * b_file; /* file in question */
- struct cache_req * b_cache_req; /* deferred request handling */
- struct file_lock * b_fl; /* set for GETLK */
- struct cache_deferred_req * b_deferred_req;
- unsigned int b_flags; /* block flags */
-#define B_QUEUED 1 /* lock queued */
-#define B_GOT_CALLBACK 2 /* got lock or conflicting lock */
-#define B_TIMED_OUT 4 /* filesystem too slow to respond */
-};
-
-/*
- * Global variables
- */
-extern const struct rpc_program nlm_program;
-extern struct svc_procedure nlmsvc_procedures[];
-#ifdef CONFIG_LOCKD_V4
-extern struct svc_procedure nlmsvc_procedures4[];
-#endif
-extern int nlmsvc_grace_period;
-extern unsigned long nlmsvc_timeout;
-extern bool nsm_use_hostnames;
-extern u32 nsm_local_state;
-
-/*
- * Lockd client functions
- */
-struct nlm_rqst * nlm_alloc_call(struct nlm_host *host);
-int nlm_async_call(struct nlm_rqst *, u32, const struct rpc_call_ops *);
-int nlm_async_reply(struct nlm_rqst *, u32, const struct rpc_call_ops *);
-void nlmclnt_release_call(struct nlm_rqst *);
-struct nlm_wait * nlmclnt_prepare_block(struct nlm_host *host, struct file_lock *fl);
-void nlmclnt_finish_block(struct nlm_wait *block);
-int nlmclnt_block(struct nlm_wait *block, struct nlm_rqst *req, long timeout);
-__be32 nlmclnt_grant(const struct sockaddr *addr,
- const struct nlm_lock *lock);
-void nlmclnt_recovery(struct nlm_host *);
-int nlmclnt_reclaim(struct nlm_host *, struct file_lock *);
-void nlmclnt_next_cookie(struct nlm_cookie *);
-
-/*
- * Host cache
- */
-struct nlm_host *nlmclnt_lookup_host(const struct sockaddr *sap,
- const size_t salen,
- const unsigned short protocol,
- const u32 version,
- const char *hostname,
- int noresvport,
- struct net *net);
-void nlmclnt_release_host(struct nlm_host *);
-struct nlm_host *nlmsvc_lookup_host(const struct svc_rqst *rqstp,
- const char *hostname,
- const size_t hostname_len);
-void nlmsvc_release_host(struct nlm_host *);
-struct rpc_clnt * nlm_bind_host(struct nlm_host *);
-void nlm_rebind_host(struct nlm_host *);
-struct nlm_host * nlm_get_host(struct nlm_host *);
-void nlm_shutdown_hosts(void);
-void nlm_shutdown_hosts_net(struct net *net);
-void nlm_host_rebooted(const struct nlm_reboot *);
-
-/*
- * Host monitoring
- */
-int nsm_monitor(const struct nlm_host *host);
-void nsm_unmonitor(const struct nlm_host *host);
-
-struct nsm_handle *nsm_get_handle(const struct sockaddr *sap,
- const size_t salen,
- const char *hostname,
- const size_t hostname_len);
-struct nsm_handle *nsm_reboot_lookup(const struct nlm_reboot *info);
-void nsm_release(struct nsm_handle *nsm);
-
-/*
- * This is used in garbage collection and resource reclaim
- * A return value != 0 means destroy the lock/block/share
- */
-typedef int (*nlm_host_match_fn_t)(void *cur, struct nlm_host *ref);
-
-/*
- * Server-side lock handling
- */
-__be32 nlmsvc_lock(struct svc_rqst *, struct nlm_file *,
- struct nlm_host *, struct nlm_lock *, int,
- struct nlm_cookie *, int);
-__be32 nlmsvc_unlock(struct nlm_file *, struct nlm_lock *);
-__be32 nlmsvc_testlock(struct svc_rqst *, struct nlm_file *,
- struct nlm_host *, struct nlm_lock *,
- struct nlm_lock *, struct nlm_cookie *);
-__be32 nlmsvc_cancel_blocked(struct nlm_file *, struct nlm_lock *);
-unsigned long nlmsvc_retry_blocked(void);
-void nlmsvc_traverse_blocks(struct nlm_host *, struct nlm_file *,
- nlm_host_match_fn_t match);
-void nlmsvc_grant_reply(struct nlm_cookie *, __be32);
-void nlmsvc_release_call(struct nlm_rqst *);
-
-/*
- * File handling for the server personality
- */
-__be32 nlm_lookup_file(struct svc_rqst *, struct nlm_file **,
- struct nfs_fh *);
-void nlm_release_file(struct nlm_file *);
-void nlmsvc_mark_resources(void);
-void nlmsvc_free_host_resources(struct nlm_host *);
-void nlmsvc_invalidate_all(void);
-
-/*
- * Cluster failover support
- */
-int nlmsvc_unlock_all_by_sb(struct super_block *sb);
-int nlmsvc_unlock_all_by_ip(struct sockaddr *server_addr);
-
-static inline struct inode *nlmsvc_file_inode(struct nlm_file *file)
-{
- return file->f_file->f_path.dentry->d_inode;
-}
-
-static inline int __nlm_privileged_request4(const struct sockaddr *sap)
-{
- const struct sockaddr_in *sin = (struct sockaddr_in *)sap;
-
- if (ntohs(sin->sin_port) > 1023)
- return 0;
-
- return ipv4_is_loopback(sin->sin_addr.s_addr);
-}
-
-#if IS_ENABLED(CONFIG_IPV6)
-static inline int __nlm_privileged_request6(const struct sockaddr *sap)
-{
- const struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)sap;
-
- if (ntohs(sin6->sin6_port) > 1023)
- return 0;
-
- if (ipv6_addr_type(&sin6->sin6_addr) & IPV6_ADDR_MAPPED)
- return ipv4_is_loopback(sin6->sin6_addr.s6_addr32[3]);
-
- return ipv6_addr_type(&sin6->sin6_addr) & IPV6_ADDR_LOOPBACK;
-}
-#else /* IS_ENABLED(CONFIG_IPV6) */
-static inline int __nlm_privileged_request6(const struct sockaddr *sap)
-{
- return 0;
-}
-#endif /* IS_ENABLED(CONFIG_IPV6) */
-
-/*
- * Ensure incoming requests are from local privileged callers.
- *
- * Return TRUE if sender is local and is connecting via a privileged port;
- * otherwise return FALSE.
- */
-static inline int nlm_privileged_requester(const struct svc_rqst *rqstp)
-{
- const struct sockaddr *sap = svc_addr(rqstp);
-
- switch (sap->sa_family) {
- case AF_INET:
- return __nlm_privileged_request4(sap);
- case AF_INET6:
- return __nlm_privileged_request6(sap);
- default:
- return 0;
- }
-}
-
-/*
- * Compare two NLM locks.
- * When the second lock is of type F_UNLCK, this acts like a wildcard.
- */
-static inline int nlm_compare_locks(const struct file_lock *fl1,
- const struct file_lock *fl2)
-{
- return fl1->fl_pid == fl2->fl_pid
- && fl1->fl_owner == fl2->fl_owner
- && fl1->fl_start == fl2->fl_start
- && fl1->fl_end == fl2->fl_end
- &&(fl1->fl_type == fl2->fl_type || fl2->fl_type == F_UNLCK);
-}
-
-extern const struct lock_manager_operations nlmsvc_lock_operations;
-
-#endif /* __KERNEL__ */
-
-#endif /* LINUX_LOCKD_LOCKD_H */
diff --git a/ANDROID_3.4.5/include/linux/lockd/nlm.h b/ANDROID_3.4.5/include/linux/lockd/nlm.h
deleted file mode 100644
index d9d46e44..00000000
--- a/ANDROID_3.4.5/include/linux/lockd/nlm.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * linux/include/linux/lockd/nlm.h
- *
- * Declarations for the Network Lock Manager protocol.
- *
- * Copyright (C) 1996, Olaf Kirch <okir@monad.swb.de>
- */
-
-#ifndef LINUX_LOCKD_NLM_H
-#define LINUX_LOCKD_NLM_H
-
-
-/* Maximum file offset in file_lock.fl_end */
-# define NLM_OFFSET_MAX ((s32) 0x7fffffff)
-# define NLM4_OFFSET_MAX ((s64) ((~(u64)0) >> 1))
-
-/* Return states for NLM */
-enum {
- NLM_LCK_GRANTED = 0,
- NLM_LCK_DENIED = 1,
- NLM_LCK_DENIED_NOLOCKS = 2,
- NLM_LCK_BLOCKED = 3,
- NLM_LCK_DENIED_GRACE_PERIOD = 4,
-#ifdef CONFIG_LOCKD_V4
- NLM_DEADLCK = 5,
- NLM_ROFS = 6,
- NLM_STALE_FH = 7,
- NLM_FBIG = 8,
- NLM_FAILED = 9,
-#endif
-};
-
-#define NLM_PROGRAM 100021
-
-#define NLMPROC_NULL 0
-#define NLMPROC_TEST 1
-#define NLMPROC_LOCK 2
-#define NLMPROC_CANCEL 3
-#define NLMPROC_UNLOCK 4
-#define NLMPROC_GRANTED 5
-#define NLMPROC_TEST_MSG 6
-#define NLMPROC_LOCK_MSG 7
-#define NLMPROC_CANCEL_MSG 8
-#define NLMPROC_UNLOCK_MSG 9
-#define NLMPROC_GRANTED_MSG 10
-#define NLMPROC_TEST_RES 11
-#define NLMPROC_LOCK_RES 12
-#define NLMPROC_CANCEL_RES 13
-#define NLMPROC_UNLOCK_RES 14
-#define NLMPROC_GRANTED_RES 15
-#define NLMPROC_NSM_NOTIFY 16 /* statd callback */
-#define NLMPROC_SHARE 20
-#define NLMPROC_UNSHARE 21
-#define NLMPROC_NM_LOCK 22
-#define NLMPROC_FREE_ALL 23
-
-#endif /* LINUX_LOCKD_NLM_H */
diff --git a/ANDROID_3.4.5/include/linux/lockd/share.h b/ANDROID_3.4.5/include/linux/lockd/share.h
deleted file mode 100644
index 630c5bf6..00000000
--- a/ANDROID_3.4.5/include/linux/lockd/share.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * linux/include/linux/lockd/share.h
- *
- * DOS share management for lockd.
- *
- * Copyright (C) 1996, Olaf Kirch <okir@monad.swb.de>
- */
-
-#ifndef LINUX_LOCKD_SHARE_H
-#define LINUX_LOCKD_SHARE_H
-
-/*
- * DOS share for a specific file
- */
-struct nlm_share {
- struct nlm_share * s_next; /* linked list */
- struct nlm_host * s_host; /* client host */
- struct nlm_file * s_file; /* shared file */
- struct xdr_netobj s_owner; /* owner handle */
- u32 s_access; /* access mode */
- u32 s_mode; /* deny mode */
-};
-
-__be32 nlmsvc_share_file(struct nlm_host *, struct nlm_file *,
- struct nlm_args *);
-__be32 nlmsvc_unshare_file(struct nlm_host *, struct nlm_file *,
- struct nlm_args *);
-void nlmsvc_traverse_shares(struct nlm_host *, struct nlm_file *,
- nlm_host_match_fn_t);
-
-#endif /* LINUX_LOCKD_SHARE_H */
diff --git a/ANDROID_3.4.5/include/linux/lockd/xdr.h b/ANDROID_3.4.5/include/linux/lockd/xdr.h
deleted file mode 100644
index d39ed1cc..00000000
--- a/ANDROID_3.4.5/include/linux/lockd/xdr.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * linux/include/linux/lockd/xdr.h
- *
- * XDR types for the NLM protocol
- *
- * Copyright (C) 1996 Olaf Kirch <okir@monad.swb.de>
- */
-
-#ifndef LOCKD_XDR_H
-#define LOCKD_XDR_H
-
-#include <linux/fs.h>
-#include <linux/nfs.h>
-#include <linux/sunrpc/xdr.h>
-
-#define SM_MAXSTRLEN 1024
-#define SM_PRIV_SIZE 16
-
-struct nsm_private {
- unsigned char data[SM_PRIV_SIZE];
-};
-
-struct svc_rqst;
-
-#define NLM_MAXCOOKIELEN 32
-#define NLM_MAXSTRLEN 1024
-
-#define nlm_granted cpu_to_be32(NLM_LCK_GRANTED)
-#define nlm_lck_denied cpu_to_be32(NLM_LCK_DENIED)
-#define nlm_lck_denied_nolocks cpu_to_be32(NLM_LCK_DENIED_NOLOCKS)
-#define nlm_lck_blocked cpu_to_be32(NLM_LCK_BLOCKED)
-#define nlm_lck_denied_grace_period cpu_to_be32(NLM_LCK_DENIED_GRACE_PERIOD)
-
-#define nlm_drop_reply cpu_to_be32(30000)
-
-/* Lock info passed via NLM */
-struct nlm_lock {
- char * caller;
- unsigned int len; /* length of "caller" */
- struct nfs_fh fh;
- struct xdr_netobj oh;
- u32 svid;
- struct file_lock fl;
-};
-
-/*
- * NLM cookies. Technically they can be 1K, but Linux only uses 8 bytes.
- * FreeBSD uses 16, Apple Mac OS X 10.3 uses 20. Therefore we set it to
- * 32 bytes.
- */
-
-struct nlm_cookie
-{
- unsigned char data[NLM_MAXCOOKIELEN];
- unsigned int len;
-};
-
-/*
- * Generic lockd arguments for all but sm_notify
- */
-struct nlm_args {
- struct nlm_cookie cookie;
- struct nlm_lock lock;
- u32 block;
- u32 reclaim;
- u32 state;
- u32 monitor;
- u32 fsm_access;
- u32 fsm_mode;
-};
-
-typedef struct nlm_args nlm_args;
-
-/*
- * Generic lockd result
- */
-struct nlm_res {
- struct nlm_cookie cookie;
- __be32 status;
- struct nlm_lock lock;
-};
-
-/*
- * statd callback when client has rebooted
- */
-struct nlm_reboot {
- char *mon;
- unsigned int len;
- u32 state;
- struct nsm_private priv;
-};
-
-/*
- * Contents of statd callback when monitored host rebooted
- */
-#define NLMSVC_XDRSIZE sizeof(struct nlm_args)
-
-int nlmsvc_decode_testargs(struct svc_rqst *, __be32 *, struct nlm_args *);
-int nlmsvc_encode_testres(struct svc_rqst *, __be32 *, struct nlm_res *);
-int nlmsvc_decode_lockargs(struct svc_rqst *, __be32 *, struct nlm_args *);
-int nlmsvc_decode_cancargs(struct svc_rqst *, __be32 *, struct nlm_args *);
-int nlmsvc_decode_unlockargs(struct svc_rqst *, __be32 *, struct nlm_args *);
-int nlmsvc_encode_res(struct svc_rqst *, __be32 *, struct nlm_res *);
-int nlmsvc_decode_res(struct svc_rqst *, __be32 *, struct nlm_res *);
-int nlmsvc_encode_void(struct svc_rqst *, __be32 *, void *);
-int nlmsvc_decode_void(struct svc_rqst *, __be32 *, void *);
-int nlmsvc_decode_shareargs(struct svc_rqst *, __be32 *, struct nlm_args *);
-int nlmsvc_encode_shareres(struct svc_rqst *, __be32 *, struct nlm_res *);
-int nlmsvc_decode_notify(struct svc_rqst *, __be32 *, struct nlm_args *);
-int nlmsvc_decode_reboot(struct svc_rqst *, __be32 *, struct nlm_reboot *);
-/*
-int nlmclt_encode_testargs(struct rpc_rqst *, u32 *, struct nlm_args *);
-int nlmclt_encode_lockargs(struct rpc_rqst *, u32 *, struct nlm_args *);
-int nlmclt_encode_cancargs(struct rpc_rqst *, u32 *, struct nlm_args *);
-int nlmclt_encode_unlockargs(struct rpc_rqst *, u32 *, struct nlm_args *);
- */
-
-#endif /* LOCKD_XDR_H */
diff --git a/ANDROID_3.4.5/include/linux/lockd/xdr4.h b/ANDROID_3.4.5/include/linux/lockd/xdr4.h
deleted file mode 100644
index e58c88b5..00000000
--- a/ANDROID_3.4.5/include/linux/lockd/xdr4.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * linux/include/linux/lockd/xdr4.h
- *
- * XDR types for the NLM protocol
- *
- * Copyright (C) 1996 Olaf Kirch <okir@monad.swb.de>
- */
-
-#ifndef LOCKD_XDR4_H
-#define LOCKD_XDR4_H
-
-#include <linux/fs.h>
-#include <linux/nfs.h>
-#include <linux/sunrpc/xdr.h>
-#include <linux/lockd/xdr.h>
-
-/* error codes new to NLMv4 */
-#define nlm4_deadlock cpu_to_be32(NLM_DEADLCK)
-#define nlm4_rofs cpu_to_be32(NLM_ROFS)
-#define nlm4_stale_fh cpu_to_be32(NLM_STALE_FH)
-#define nlm4_fbig cpu_to_be32(NLM_FBIG)
-#define nlm4_failed cpu_to_be32(NLM_FAILED)
-
-
-
-int nlm4svc_decode_testargs(struct svc_rqst *, __be32 *, struct nlm_args *);
-int nlm4svc_encode_testres(struct svc_rqst *, __be32 *, struct nlm_res *);
-int nlm4svc_decode_lockargs(struct svc_rqst *, __be32 *, struct nlm_args *);
-int nlm4svc_decode_cancargs(struct svc_rqst *, __be32 *, struct nlm_args *);
-int nlm4svc_decode_unlockargs(struct svc_rqst *, __be32 *, struct nlm_args *);
-int nlm4svc_encode_res(struct svc_rqst *, __be32 *, struct nlm_res *);
-int nlm4svc_decode_res(struct svc_rqst *, __be32 *, struct nlm_res *);
-int nlm4svc_encode_void(struct svc_rqst *, __be32 *, void *);
-int nlm4svc_decode_void(struct svc_rqst *, __be32 *, void *);
-int nlm4svc_decode_shareargs(struct svc_rqst *, __be32 *, struct nlm_args *);
-int nlm4svc_encode_shareres(struct svc_rqst *, __be32 *, struct nlm_res *);
-int nlm4svc_decode_notify(struct svc_rqst *, __be32 *, struct nlm_args *);
-int nlm4svc_decode_reboot(struct svc_rqst *, __be32 *, struct nlm_reboot *);
-/*
-int nlmclt_encode_testargs(struct rpc_rqst *, u32 *, struct nlm_args *);
-int nlmclt_encode_lockargs(struct rpc_rqst *, u32 *, struct nlm_args *);
-int nlmclt_encode_cancargs(struct rpc_rqst *, u32 *, struct nlm_args *);
-int nlmclt_encode_unlockargs(struct rpc_rqst *, u32 *, struct nlm_args *);
- */
-extern const struct rpc_version nlm_version4;
-
-#endif /* LOCKD_XDR4_H */
diff --git a/ANDROID_3.4.5/include/linux/lockdep.h b/ANDROID_3.4.5/include/linux/lockdep.h
deleted file mode 100644
index d36619ea..00000000
--- a/ANDROID_3.4.5/include/linux/lockdep.h
+++ /dev/null
@@ -1,558 +0,0 @@
-/*
- * Runtime locking correctness validator
- *
- * Copyright (C) 2006,2007 Red Hat, Inc., Ingo Molnar <mingo@redhat.com>
- * Copyright (C) 2007 Red Hat, Inc., Peter Zijlstra <pzijlstr@redhat.com>
- *
- * see Documentation/lockdep-design.txt for more details.
- */
-#ifndef __LINUX_LOCKDEP_H
-#define __LINUX_LOCKDEP_H
-
-struct task_struct;
-struct lockdep_map;
-
-/* for sysctl */
-extern int prove_locking;
-extern int lock_stat;
-
-#ifdef CONFIG_LOCKDEP
-
-#include <linux/linkage.h>
-#include <linux/list.h>
-#include <linux/debug_locks.h>
-#include <linux/stacktrace.h>
-
-/*
- * We'd rather not expose kernel/lockdep_states.h this wide, but we do need
- * the total number of states... :-(
- */
-#define XXX_LOCK_USAGE_STATES (1+3*4)
-
-#define MAX_LOCKDEP_SUBCLASSES 8UL
-
-/*
- * NR_LOCKDEP_CACHING_CLASSES ... Number of classes
- * cached in the instance of lockdep_map
- *
- * Currently main class (subclass == 0) and signle depth subclass
- * are cached in lockdep_map. This optimization is mainly targeting
- * on rq->lock. double_rq_lock() acquires this highly competitive with
- * single depth.
- */
-#define NR_LOCKDEP_CACHING_CLASSES 2
-
-/*
- * Lock-classes are keyed via unique addresses, by embedding the
- * lockclass-key into the kernel (or module) .data section. (For
- * static locks we use the lock address itself as the key.)
- */
-struct lockdep_subclass_key {
- char __one_byte;
-} __attribute__ ((__packed__));
-
-struct lock_class_key {
- struct lockdep_subclass_key subkeys[MAX_LOCKDEP_SUBCLASSES];
-};
-
-extern struct lock_class_key __lockdep_no_validate__;
-
-#define LOCKSTAT_POINTS 4
-
-/*
- * The lock-class itself:
- */
-struct lock_class {
- /*
- * class-hash:
- */
- struct list_head hash_entry;
-
- /*
- * global list of all lock-classes:
- */
- struct list_head lock_entry;
-
- struct lockdep_subclass_key *key;
- unsigned int subclass;
- unsigned int dep_gen_id;
-
- /*
- * IRQ/softirq usage tracking bits:
- */
- unsigned long usage_mask;
- struct stack_trace usage_traces[XXX_LOCK_USAGE_STATES];
-
- /*
- * These fields represent a directed graph of lock dependencies,
- * to every node we attach a list of "forward" and a list of
- * "backward" graph nodes.
- */
- struct list_head locks_after, locks_before;
-
- /*
- * Generation counter, when doing certain classes of graph walking,
- * to ensure that we check one node only once:
- */
- unsigned int version;
-
- /*
- * Statistics counter:
- */
- unsigned long ops;
-
- const char *name;
- int name_version;
-
-#ifdef CONFIG_LOCK_STAT
- unsigned long contention_point[LOCKSTAT_POINTS];
- unsigned long contending_point[LOCKSTAT_POINTS];
-#endif
-};
-
-#ifdef CONFIG_LOCK_STAT
-struct lock_time {
- s64 min;
- s64 max;
- s64 total;
- unsigned long nr;
-};
-
-enum bounce_type {
- bounce_acquired_write,
- bounce_acquired_read,
- bounce_contended_write,
- bounce_contended_read,
- nr_bounce_types,
-
- bounce_acquired = bounce_acquired_write,
- bounce_contended = bounce_contended_write,
-};
-
-struct lock_class_stats {
- unsigned long contention_point[4];
- unsigned long contending_point[4];
- struct lock_time read_waittime;
- struct lock_time write_waittime;
- struct lock_time read_holdtime;
- struct lock_time write_holdtime;
- unsigned long bounces[nr_bounce_types];
-};
-
-struct lock_class_stats lock_stats(struct lock_class *class);
-void clear_lock_stats(struct lock_class *class);
-#endif
-
-/*
- * Map the lock object (the lock instance) to the lock-class object.
- * This is embedded into specific lock instances:
- */
-struct lockdep_map {
- struct lock_class_key *key;
- struct lock_class *class_cache[NR_LOCKDEP_CACHING_CLASSES];
- const char *name;
-#ifdef CONFIG_LOCK_STAT
- int cpu;
- unsigned long ip;
-#endif
-};
-
-/*
- * Every lock has a list of other locks that were taken after it.
- * We only grow the list, never remove from it:
- */
-struct lock_list {
- struct list_head entry;
- struct lock_class *class;
- struct stack_trace trace;
- int distance;
-
- /*
- * The parent field is used to implement breadth-first search, and the
- * bit 0 is reused to indicate if the lock has been accessed in BFS.
- */
- struct lock_list *parent;
-};
-
-/*
- * We record lock dependency chains, so that we can cache them:
- */
-struct lock_chain {
- u8 irq_context;
- u8 depth;
- u16 base;
- struct list_head entry;
- u64 chain_key;
-};
-
-#define MAX_LOCKDEP_KEYS_BITS 13
-/*
- * Subtract one because we offset hlock->class_idx by 1 in order
- * to make 0 mean no class. This avoids overflowing the class_idx
- * bitfield and hitting the BUG in hlock_class().
- */
-#define MAX_LOCKDEP_KEYS ((1UL << MAX_LOCKDEP_KEYS_BITS) - 1)
-
-struct held_lock {
- /*
- * One-way hash of the dependency chain up to this point. We
- * hash the hashes step by step as the dependency chain grows.
- *
- * We use it for dependency-caching and we skip detection
- * passes and dependency-updates if there is a cache-hit, so
- * it is absolutely critical for 100% coverage of the validator
- * to have a unique key value for every unique dependency path
- * that can occur in the system, to make a unique hash value
- * as likely as possible - hence the 64-bit width.
- *
- * The task struct holds the current hash value (initialized
- * with zero), here we store the previous hash value:
- */
- u64 prev_chain_key;
- unsigned long acquire_ip;
- struct lockdep_map *instance;
- struct lockdep_map *nest_lock;
-#ifdef CONFIG_LOCK_STAT
- u64 waittime_stamp;
- u64 holdtime_stamp;
-#endif
- unsigned int class_idx:MAX_LOCKDEP_KEYS_BITS;
- /*
- * The lock-stack is unified in that the lock chains of interrupt
- * contexts nest ontop of process context chains, but we 'separate'
- * the hashes by starting with 0 if we cross into an interrupt
- * context, and we also keep do not add cross-context lock
- * dependencies - the lock usage graph walking covers that area
- * anyway, and we'd just unnecessarily increase the number of
- * dependencies otherwise. [Note: hardirq and softirq contexts
- * are separated from each other too.]
- *
- * The following field is used to detect when we cross into an
- * interrupt context:
- */
- unsigned int irq_context:2; /* bit 0 - soft, bit 1 - hard */
- unsigned int trylock:1; /* 16 bits */
-
- unsigned int read:2; /* see lock_acquire() comment */
- unsigned int check:2; /* see lock_acquire() comment */
- unsigned int hardirqs_off:1;
- unsigned int references:11; /* 32 bits */
-};
-
-/*
- * Initialization, self-test and debugging-output methods:
- */
-extern void lockdep_init(void);
-extern void lockdep_info(void);
-extern void lockdep_reset(void);
-extern void lockdep_reset_lock(struct lockdep_map *lock);
-extern void lockdep_free_key_range(void *start, unsigned long size);
-extern void lockdep_sys_exit(void);
-
-extern void lockdep_off(void);
-extern void lockdep_on(void);
-
-/*
- * These methods are used by specific locking variants (spinlocks,
- * rwlocks, mutexes and rwsems) to pass init/acquire/release events
- * to lockdep:
- */
-
-extern void lockdep_init_map(struct lockdep_map *lock, const char *name,
- struct lock_class_key *key, int subclass);
-
-/*
- * To initialize a lockdep_map statically use this macro.
- * Note that _name must not be NULL.
- */
-#define STATIC_LOCKDEP_MAP_INIT(_name, _key) \
- { .name = (_name), .key = (void *)(_key), }
-
-/*
- * Reinitialize a lock key - for cases where there is special locking or
- * special initialization of locks so that the validator gets the scope
- * of dependencies wrong: they are either too broad (they need a class-split)
- * or they are too narrow (they suffer from a false class-split):
- */
-#define lockdep_set_class(lock, key) \
- lockdep_init_map(&(lock)->dep_map, #key, key, 0)
-#define lockdep_set_class_and_name(lock, key, name) \
- lockdep_init_map(&(lock)->dep_map, name, key, 0)
-#define lockdep_set_class_and_subclass(lock, key, sub) \
- lockdep_init_map(&(lock)->dep_map, #key, key, sub)
-#define lockdep_set_subclass(lock, sub) \
- lockdep_init_map(&(lock)->dep_map, #lock, \
- (lock)->dep_map.key, sub)
-
-#define lockdep_set_novalidate_class(lock) \
- lockdep_set_class(lock, &__lockdep_no_validate__)
-/*
- * Compare locking classes
- */
-#define lockdep_match_class(lock, key) lockdep_match_key(&(lock)->dep_map, key)
-
-static inline int lockdep_match_key(struct lockdep_map *lock,
- struct lock_class_key *key)
-{
- return lock->key == key;
-}
-
-/*
- * Acquire a lock.
- *
- * Values for "read":
- *
- * 0: exclusive (write) acquire
- * 1: read-acquire (no recursion allowed)
- * 2: read-acquire with same-instance recursion allowed
- *
- * Values for check:
- *
- * 0: disabled
- * 1: simple checks (freeing, held-at-exit-time, etc.)
- * 2: full validation
- */
-extern void lock_acquire(struct lockdep_map *lock, unsigned int subclass,
- int trylock, int read, int check,
- struct lockdep_map *nest_lock, unsigned long ip);
-
-extern void lock_release(struct lockdep_map *lock, int nested,
- unsigned long ip);
-
-#define lockdep_is_held(lock) lock_is_held(&(lock)->dep_map)
-
-extern int lock_is_held(struct lockdep_map *lock);
-
-extern void lock_set_class(struct lockdep_map *lock, const char *name,
- struct lock_class_key *key, unsigned int subclass,
- unsigned long ip);
-
-static inline void lock_set_subclass(struct lockdep_map *lock,
- unsigned int subclass, unsigned long ip)
-{
- lock_set_class(lock, lock->name, lock->key, subclass, ip);
-}
-
-extern void lockdep_set_current_reclaim_state(gfp_t gfp_mask);
-extern void lockdep_clear_current_reclaim_state(void);
-extern void lockdep_trace_alloc(gfp_t mask);
-
-# define INIT_LOCKDEP .lockdep_recursion = 0, .lockdep_reclaim_gfp = 0,
-
-#define lockdep_depth(tsk) (debug_locks ? (tsk)->lockdep_depth : 0)
-
-#define lockdep_assert_held(l) WARN_ON(debug_locks && !lockdep_is_held(l))
-
-#define lockdep_recursing(tsk) ((tsk)->lockdep_recursion)
-
-#else /* !LOCKDEP */
-
-static inline void lockdep_off(void)
-{
-}
-
-static inline void lockdep_on(void)
-{
-}
-
-# define lock_acquire(l, s, t, r, c, n, i) do { } while (0)
-# define lock_release(l, n, i) do { } while (0)
-# define lock_set_class(l, n, k, s, i) do { } while (0)
-# define lock_set_subclass(l, s, i) do { } while (0)
-# define lockdep_set_current_reclaim_state(g) do { } while (0)
-# define lockdep_clear_current_reclaim_state() do { } while (0)
-# define lockdep_trace_alloc(g) do { } while (0)
-# define lockdep_init() do { } while (0)
-# define lockdep_info() do { } while (0)
-# define lockdep_init_map(lock, name, key, sub) \
- do { (void)(name); (void)(key); } while (0)
-# define lockdep_set_class(lock, key) do { (void)(key); } while (0)
-# define lockdep_set_class_and_name(lock, key, name) \
- do { (void)(key); (void)(name); } while (0)
-#define lockdep_set_class_and_subclass(lock, key, sub) \
- do { (void)(key); } while (0)
-#define lockdep_set_subclass(lock, sub) do { } while (0)
-
-#define lockdep_set_novalidate_class(lock) do { } while (0)
-
-/*
- * We don't define lockdep_match_class() and lockdep_match_key() for !LOCKDEP
- * case since the result is not well defined and the caller should rather
- * #ifdef the call himself.
- */
-
-# define INIT_LOCKDEP
-# define lockdep_reset() do { debug_locks = 1; } while (0)
-# define lockdep_free_key_range(start, size) do { } while (0)
-# define lockdep_sys_exit() do { } while (0)
-/*
- * The class key takes no space if lockdep is disabled:
- */
-struct lock_class_key { };
-
-#define lockdep_depth(tsk) (0)
-
-#define lockdep_assert_held(l) do { } while (0)
-
-#define lockdep_recursing(tsk) (0)
-
-#endif /* !LOCKDEP */
-
-#ifdef CONFIG_LOCK_STAT
-
-extern void lock_contended(struct lockdep_map *lock, unsigned long ip);
-extern void lock_acquired(struct lockdep_map *lock, unsigned long ip);
-
-#define LOCK_CONTENDED(_lock, try, lock) \
-do { \
- if (!try(_lock)) { \
- lock_contended(&(_lock)->dep_map, _RET_IP_); \
- lock(_lock); \
- } \
- lock_acquired(&(_lock)->dep_map, _RET_IP_); \
-} while (0)
-
-#else /* CONFIG_LOCK_STAT */
-
-#define lock_contended(lockdep_map, ip) do {} while (0)
-#define lock_acquired(lockdep_map, ip) do {} while (0)
-
-#define LOCK_CONTENDED(_lock, try, lock) \
- lock(_lock)
-
-#endif /* CONFIG_LOCK_STAT */
-
-#ifdef CONFIG_LOCKDEP
-
-/*
- * On lockdep we dont want the hand-coded irq-enable of
- * _raw_*_lock_flags() code, because lockdep assumes
- * that interrupts are not re-enabled during lock-acquire:
- */
-#define LOCK_CONTENDED_FLAGS(_lock, try, lock, lockfl, flags) \
- LOCK_CONTENDED((_lock), (try), (lock))
-
-#else /* CONFIG_LOCKDEP */
-
-#define LOCK_CONTENDED_FLAGS(_lock, try, lock, lockfl, flags) \
- lockfl((_lock), (flags))
-
-#endif /* CONFIG_LOCKDEP */
-
-#ifdef CONFIG_TRACE_IRQFLAGS
-extern void print_irqtrace_events(struct task_struct *curr);
-#else
-static inline void print_irqtrace_events(struct task_struct *curr)
-{
-}
-#endif
-
-/*
- * For trivial one-depth nesting of a lock-class, the following
- * global define can be used. (Subsystems with multiple levels
- * of nesting should define their own lock-nesting subclasses.)
- */
-#define SINGLE_DEPTH_NESTING 1
-
-/*
- * Map the dependency ops to NOP or to real lockdep ops, depending
- * on the per lock-class debug mode:
- */
-
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
-# ifdef CONFIG_PROVE_LOCKING
-# define spin_acquire(l, s, t, i) lock_acquire(l, s, t, 0, 2, NULL, i)
-# define spin_acquire_nest(l, s, t, n, i) lock_acquire(l, s, t, 0, 2, n, i)
-# else
-# define spin_acquire(l, s, t, i) lock_acquire(l, s, t, 0, 1, NULL, i)
-# define spin_acquire_nest(l, s, t, n, i) lock_acquire(l, s, t, 0, 1, NULL, i)
-# endif
-# define spin_release(l, n, i) lock_release(l, n, i)
-#else
-# define spin_acquire(l, s, t, i) do { } while (0)
-# define spin_release(l, n, i) do { } while (0)
-#endif
-
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
-# ifdef CONFIG_PROVE_LOCKING
-# define rwlock_acquire(l, s, t, i) lock_acquire(l, s, t, 0, 2, NULL, i)
-# define rwlock_acquire_read(l, s, t, i) lock_acquire(l, s, t, 2, 2, NULL, i)
-# else
-# define rwlock_acquire(l, s, t, i) lock_acquire(l, s, t, 0, 1, NULL, i)
-# define rwlock_acquire_read(l, s, t, i) lock_acquire(l, s, t, 2, 1, NULL, i)
-# endif
-# define rwlock_release(l, n, i) lock_release(l, n, i)
-#else
-# define rwlock_acquire(l, s, t, i) do { } while (0)
-# define rwlock_acquire_read(l, s, t, i) do { } while (0)
-# define rwlock_release(l, n, i) do { } while (0)
-#endif
-
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
-# ifdef CONFIG_PROVE_LOCKING
-# define mutex_acquire(l, s, t, i) lock_acquire(l, s, t, 0, 2, NULL, i)
-# define mutex_acquire_nest(l, s, t, n, i) lock_acquire(l, s, t, 0, 2, n, i)
-# else
-# define mutex_acquire(l, s, t, i) lock_acquire(l, s, t, 0, 1, NULL, i)
-# define mutex_acquire_nest(l, s, t, n, i) lock_acquire(l, s, t, 0, 1, n, i)
-# endif
-# define mutex_release(l, n, i) lock_release(l, n, i)
-#else
-# define mutex_acquire(l, s, t, i) do { } while (0)
-# define mutex_acquire_nest(l, s, t, n, i) do { } while (0)
-# define mutex_release(l, n, i) do { } while (0)
-#endif
-
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
-# ifdef CONFIG_PROVE_LOCKING
-# define rwsem_acquire(l, s, t, i) lock_acquire(l, s, t, 0, 2, NULL, i)
-# define rwsem_acquire_read(l, s, t, i) lock_acquire(l, s, t, 1, 2, NULL, i)
-# else
-# define rwsem_acquire(l, s, t, i) lock_acquire(l, s, t, 0, 1, NULL, i)
-# define rwsem_acquire_read(l, s, t, i) lock_acquire(l, s, t, 1, 1, NULL, i)
-# endif
-# define rwsem_release(l, n, i) lock_release(l, n, i)
-#else
-# define rwsem_acquire(l, s, t, i) do { } while (0)
-# define rwsem_acquire_read(l, s, t, i) do { } while (0)
-# define rwsem_release(l, n, i) do { } while (0)
-#endif
-
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
-# ifdef CONFIG_PROVE_LOCKING
-# define lock_map_acquire(l) lock_acquire(l, 0, 0, 0, 2, NULL, _THIS_IP_)
-# define lock_map_acquire_read(l) lock_acquire(l, 0, 0, 2, 2, NULL, _THIS_IP_)
-# else
-# define lock_map_acquire(l) lock_acquire(l, 0, 0, 0, 1, NULL, _THIS_IP_)
-# define lock_map_acquire_read(l) lock_acquire(l, 0, 0, 2, 1, NULL, _THIS_IP_)
-# endif
-# define lock_map_release(l) lock_release(l, 1, _THIS_IP_)
-#else
-# define lock_map_acquire(l) do { } while (0)
-# define lock_map_acquire_read(l) do { } while (0)
-# define lock_map_release(l) do { } while (0)
-#endif
-
-#ifdef CONFIG_PROVE_LOCKING
-# define might_lock(lock) \
-do { \
- typecheck(struct lockdep_map *, &(lock)->dep_map); \
- lock_acquire(&(lock)->dep_map, 0, 0, 0, 2, NULL, _THIS_IP_); \
- lock_release(&(lock)->dep_map, 0, _THIS_IP_); \
-} while (0)
-# define might_lock_read(lock) \
-do { \
- typecheck(struct lockdep_map *, &(lock)->dep_map); \
- lock_acquire(&(lock)->dep_map, 0, 0, 1, 2, NULL, _THIS_IP_); \
- lock_release(&(lock)->dep_map, 0, _THIS_IP_); \
-} while (0)
-#else
-# define might_lock(lock) do { } while (0)
-# define might_lock_read(lock) do { } while (0)
-#endif
-
-#ifdef CONFIG_PROVE_RCU
-void lockdep_rcu_suspicious(const char *file, const int line, const char *s);
-#endif
-
-#endif /* __LINUX_LOCKDEP_H */
diff --git a/ANDROID_3.4.5/include/linux/log2.h b/ANDROID_3.4.5/include/linux/log2.h
deleted file mode 100644
index fd7ff3d9..00000000
--- a/ANDROID_3.4.5/include/linux/log2.h
+++ /dev/null
@@ -1,208 +0,0 @@
-/* Integer base 2 logarithm calculation
- *
- * Copyright (C) 2006 Red Hat, Inc. All Rights Reserved.
- * Written by David Howells (dhowells@redhat.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 _LINUX_LOG2_H
-#define _LINUX_LOG2_H
-
-#include <linux/types.h>
-#include <linux/bitops.h>
-
-/*
- * deal with unrepresentable constant logarithms
- */
-extern __attribute__((const, noreturn))
-int ____ilog2_NaN(void);
-
-/*
- * non-constant log of base 2 calculators
- * - the arch may override these in asm/bitops.h if they can be implemented
- * more efficiently than using fls() and fls64()
- * - the arch is not required to handle n==0 if implementing the fallback
- */
-#ifndef CONFIG_ARCH_HAS_ILOG2_U32
-static inline __attribute__((const))
-int __ilog2_u32(u32 n)
-{
- return fls(n) - 1;
-}
-#endif
-
-#ifndef CONFIG_ARCH_HAS_ILOG2_U64
-static inline __attribute__((const))
-int __ilog2_u64(u64 n)
-{
- return fls64(n) - 1;
-}
-#endif
-
-/*
- * Determine whether some value is a power of two, where zero is
- * *not* considered a power of two.
- */
-
-static inline __attribute__((const))
-bool is_power_of_2(unsigned long n)
-{
- return (n != 0 && ((n & (n - 1)) == 0));
-}
-
-/*
- * round up to nearest power of two
- */
-static inline __attribute__((const))
-unsigned long __roundup_pow_of_two(unsigned long n)
-{
- return 1UL << fls_long(n - 1);
-}
-
-/*
- * round down to nearest power of two
- */
-static inline __attribute__((const))
-unsigned long __rounddown_pow_of_two(unsigned long n)
-{
- return 1UL << (fls_long(n) - 1);
-}
-
-/**
- * ilog2 - log of base 2 of 32-bit or a 64-bit unsigned value
- * @n - parameter
- *
- * constant-capable log of base 2 calculation
- * - this can be used to initialise global variables from constant data, hence
- * the massive ternary operator construction
- *
- * selects the appropriately-sized optimised version depending on sizeof(n)
- */
-#define ilog2(n) \
-( \
- __builtin_constant_p(n) ? ( \
- (n) < 1 ? ____ilog2_NaN() : \
- (n) & (1ULL << 63) ? 63 : \
- (n) & (1ULL << 62) ? 62 : \
- (n) & (1ULL << 61) ? 61 : \
- (n) & (1ULL << 60) ? 60 : \
- (n) & (1ULL << 59) ? 59 : \
- (n) & (1ULL << 58) ? 58 : \
- (n) & (1ULL << 57) ? 57 : \
- (n) & (1ULL << 56) ? 56 : \
- (n) & (1ULL << 55) ? 55 : \
- (n) & (1ULL << 54) ? 54 : \
- (n) & (1ULL << 53) ? 53 : \
- (n) & (1ULL << 52) ? 52 : \
- (n) & (1ULL << 51) ? 51 : \
- (n) & (1ULL << 50) ? 50 : \
- (n) & (1ULL << 49) ? 49 : \
- (n) & (1ULL << 48) ? 48 : \
- (n) & (1ULL << 47) ? 47 : \
- (n) & (1ULL << 46) ? 46 : \
- (n) & (1ULL << 45) ? 45 : \
- (n) & (1ULL << 44) ? 44 : \
- (n) & (1ULL << 43) ? 43 : \
- (n) & (1ULL << 42) ? 42 : \
- (n) & (1ULL << 41) ? 41 : \
- (n) & (1ULL << 40) ? 40 : \
- (n) & (1ULL << 39) ? 39 : \
- (n) & (1ULL << 38) ? 38 : \
- (n) & (1ULL << 37) ? 37 : \
- (n) & (1ULL << 36) ? 36 : \
- (n) & (1ULL << 35) ? 35 : \
- (n) & (1ULL << 34) ? 34 : \
- (n) & (1ULL << 33) ? 33 : \
- (n) & (1ULL << 32) ? 32 : \
- (n) & (1ULL << 31) ? 31 : \
- (n) & (1ULL << 30) ? 30 : \
- (n) & (1ULL << 29) ? 29 : \
- (n) & (1ULL << 28) ? 28 : \
- (n) & (1ULL << 27) ? 27 : \
- (n) & (1ULL << 26) ? 26 : \
- (n) & (1ULL << 25) ? 25 : \
- (n) & (1ULL << 24) ? 24 : \
- (n) & (1ULL << 23) ? 23 : \
- (n) & (1ULL << 22) ? 22 : \
- (n) & (1ULL << 21) ? 21 : \
- (n) & (1ULL << 20) ? 20 : \
- (n) & (1ULL << 19) ? 19 : \
- (n) & (1ULL << 18) ? 18 : \
- (n) & (1ULL << 17) ? 17 : \
- (n) & (1ULL << 16) ? 16 : \
- (n) & (1ULL << 15) ? 15 : \
- (n) & (1ULL << 14) ? 14 : \
- (n) & (1ULL << 13) ? 13 : \
- (n) & (1ULL << 12) ? 12 : \
- (n) & (1ULL << 11) ? 11 : \
- (n) & (1ULL << 10) ? 10 : \
- (n) & (1ULL << 9) ? 9 : \
- (n) & (1ULL << 8) ? 8 : \
- (n) & (1ULL << 7) ? 7 : \
- (n) & (1ULL << 6) ? 6 : \
- (n) & (1ULL << 5) ? 5 : \
- (n) & (1ULL << 4) ? 4 : \
- (n) & (1ULL << 3) ? 3 : \
- (n) & (1ULL << 2) ? 2 : \
- (n) & (1ULL << 1) ? 1 : \
- (n) & (1ULL << 0) ? 0 : \
- ____ilog2_NaN() \
- ) : \
- (sizeof(n) <= 4) ? \
- __ilog2_u32(n) : \
- __ilog2_u64(n) \
- )
-
-/**
- * roundup_pow_of_two - round the given value up to nearest power of two
- * @n - parameter
- *
- * round the given value up to the nearest power of two
- * - the result is undefined when n == 0
- * - this can be used to initialise global variables from constant data
- */
-#define roundup_pow_of_two(n) \
-( \
- __builtin_constant_p(n) ? ( \
- (n == 1) ? 1 : \
- (1UL << (ilog2((n) - 1) + 1)) \
- ) : \
- __roundup_pow_of_two(n) \
- )
-
-/**
- * rounddown_pow_of_two - round the given value down to nearest power of two
- * @n - parameter
- *
- * round the given value down to the nearest power of two
- * - the result is undefined when n == 0
- * - this can be used to initialise global variables from constant data
- */
-#define rounddown_pow_of_two(n) \
-( \
- __builtin_constant_p(n) ? ( \
- (1UL << ilog2(n))) : \
- __rounddown_pow_of_two(n) \
- )
-
-/**
- * order_base_2 - calculate the (rounded up) base 2 order of the argument
- * @n: parameter
- *
- * The first few values calculated by this routine:
- * ob2(0) = 0
- * ob2(1) = 0
- * ob2(2) = 1
- * ob2(3) = 2
- * ob2(4) = 2
- * ob2(5) = 3
- * ... and so on.
- */
-
-#define order_base_2(n) ilog2(roundup_pow_of_two(n))
-
-#endif /* _LINUX_LOG2_H */
diff --git a/ANDROID_3.4.5/include/linux/loop.h b/ANDROID_3.4.5/include/linux/loop.h
deleted file mode 100644
index 11a41a8f..00000000
--- a/ANDROID_3.4.5/include/linux/loop.h
+++ /dev/null
@@ -1,167 +0,0 @@
-#ifndef _LINUX_LOOP_H
-#define _LINUX_LOOP_H
-
-/*
- * include/linux/loop.h
- *
- * Written by Theodore Ts'o, 3/29/93.
- *
- * Copyright 1993 by Theodore Ts'o. Redistribution of this file is
- * permitted under the GNU General Public License.
- */
-
-#define LO_NAME_SIZE 64
-#define LO_KEY_SIZE 32
-
-#ifdef __KERNEL__
-#include <linux/bio.h>
-#include <linux/blkdev.h>
-#include <linux/spinlock.h>
-#include <linux/mutex.h>
-
-/* Possible states of device */
-enum {
- Lo_unbound,
- Lo_bound,
- Lo_rundown,
-};
-
-struct loop_func_table;
-
-struct loop_device {
- int lo_number;
- int lo_refcnt;
- loff_t lo_offset;
- loff_t lo_sizelimit;
- int lo_flags;
- int (*transfer)(struct loop_device *, int cmd,
- struct page *raw_page, unsigned raw_off,
- struct page *loop_page, unsigned loop_off,
- int size, sector_t real_block);
- char lo_file_name[LO_NAME_SIZE];
- char lo_crypt_name[LO_NAME_SIZE];
- char lo_encrypt_key[LO_KEY_SIZE];
- int lo_encrypt_key_size;
- struct loop_func_table *lo_encryption;
- __u32 lo_init[2];
- uid_t lo_key_owner; /* Who set the key */
- int (*ioctl)(struct loop_device *, int cmd,
- unsigned long arg);
-
- struct file * lo_backing_file;
- struct block_device *lo_device;
- unsigned lo_blocksize;
- void *key_data;
-
- gfp_t old_gfp_mask;
-
- spinlock_t lo_lock;
- struct bio_list lo_bio_list;
- int lo_state;
- struct mutex lo_ctl_mutex;
- struct task_struct *lo_thread;
- wait_queue_head_t lo_event;
-
- struct request_queue *lo_queue;
- struct gendisk *lo_disk;
-};
-
-#endif /* __KERNEL__ */
-
-/*
- * Loop flags
- */
-enum {
- LO_FLAGS_READ_ONLY = 1,
- LO_FLAGS_AUTOCLEAR = 4,
- LO_FLAGS_PARTSCAN = 8,
-};
-
-#include <asm/posix_types.h> /* for __kernel_old_dev_t */
-#include <linux/types.h> /* for __u64 */
-
-/* Backwards compatibility version */
-struct loop_info {
- int lo_number; /* ioctl r/o */
- __kernel_old_dev_t lo_device; /* ioctl r/o */
- unsigned long lo_inode; /* ioctl r/o */
- __kernel_old_dev_t lo_rdevice; /* ioctl r/o */
- int lo_offset;
- int lo_encrypt_type;
- int lo_encrypt_key_size; /* ioctl w/o */
- int lo_flags; /* ioctl r/o */
- char lo_name[LO_NAME_SIZE];
- unsigned char lo_encrypt_key[LO_KEY_SIZE]; /* ioctl w/o */
- unsigned long lo_init[2];
- char reserved[4];
-};
-
-struct loop_info64 {
- __u64 lo_device; /* ioctl r/o */
- __u64 lo_inode; /* ioctl r/o */
- __u64 lo_rdevice; /* ioctl r/o */
- __u64 lo_offset;
- __u64 lo_sizelimit;/* bytes, 0 == max available */
- __u32 lo_number; /* ioctl r/o */
- __u32 lo_encrypt_type;
- __u32 lo_encrypt_key_size; /* ioctl w/o */
- __u32 lo_flags; /* ioctl r/o */
- __u8 lo_file_name[LO_NAME_SIZE];
- __u8 lo_crypt_name[LO_NAME_SIZE];
- __u8 lo_encrypt_key[LO_KEY_SIZE]; /* ioctl w/o */
- __u64 lo_init[2];
-};
-
-/*
- * Loop filter types
- */
-
-#define LO_CRYPT_NONE 0
-#define LO_CRYPT_XOR 1
-#define LO_CRYPT_DES 2
-#define LO_CRYPT_FISH2 3 /* Twofish encryption */
-#define LO_CRYPT_BLOW 4
-#define LO_CRYPT_CAST128 5
-#define LO_CRYPT_IDEA 6
-#define LO_CRYPT_DUMMY 9
-#define LO_CRYPT_SKIPJACK 10
-#define LO_CRYPT_CRYPTOAPI 18
-#define MAX_LO_CRYPT 20
-
-#ifdef __KERNEL__
-/* Support for loadable transfer modules */
-struct loop_func_table {
- int number; /* filter type */
- int (*transfer)(struct loop_device *lo, int cmd,
- struct page *raw_page, unsigned raw_off,
- struct page *loop_page, unsigned loop_off,
- int size, sector_t real_block);
- int (*init)(struct loop_device *, const struct loop_info64 *);
- /* release is called from loop_unregister_transfer or clr_fd */
- int (*release)(struct loop_device *);
- int (*ioctl)(struct loop_device *, int cmd, unsigned long arg);
- struct module *owner;
-};
-
-int loop_register_transfer(struct loop_func_table *funcs);
-int loop_unregister_transfer(int number);
-
-#endif
-/*
- * IOCTL commands --- we will commandeer 0x4C ('L')
- */
-
-#define LOOP_SET_FD 0x4C00
-#define LOOP_CLR_FD 0x4C01
-#define LOOP_SET_STATUS 0x4C02
-#define LOOP_GET_STATUS 0x4C03
-#define LOOP_SET_STATUS64 0x4C04
-#define LOOP_GET_STATUS64 0x4C05
-#define LOOP_CHANGE_FD 0x4C06
-#define LOOP_SET_CAPACITY 0x4C07
-
-/* /dev/loop-control interface */
-#define LOOP_CTL_ADD 0x4C80
-#define LOOP_CTL_REMOVE 0x4C81
-#define LOOP_CTL_GET_FREE 0x4C82
-#endif
diff --git a/ANDROID_3.4.5/include/linux/lp.h b/ANDROID_3.4.5/include/linux/lp.h
deleted file mode 100644
index 0df024bf..00000000
--- a/ANDROID_3.4.5/include/linux/lp.h
+++ /dev/null
@@ -1,191 +0,0 @@
-#ifndef _LINUX_LP_H
-#define _LINUX_LP_H
-
-/*
- * usr/include/linux/lp.h c.1991-1992 James Wiegand
- * many modifications copyright (C) 1992 Michael K. Johnson
- * Interrupt support added 1993 Nigel Gamble
- * Removed 8255 status defines from inside __KERNEL__ Marcelo Tosatti
- */
-
-/*
- * Per POSIX guidelines, this module reserves the LP and lp prefixes
- * These are the lp_table[minor].flags flags...
- */
-#define LP_EXIST 0x0001
-#define LP_SELEC 0x0002
-#define LP_BUSY 0x0004
-#define LP_BUSY_BIT_POS 2
-#define LP_OFFL 0x0008
-#define LP_NOPA 0x0010
-#define LP_ERR 0x0020
-#define LP_ABORT 0x0040
-#define LP_CAREFUL 0x0080 /* obsoleted -arca */
-#define LP_ABORTOPEN 0x0100
-
-#define LP_TRUST_IRQ_ 0x0200 /* obsolete */
-#define LP_NO_REVERSE 0x0400 /* No reverse mode available. */
-#define LP_DATA_AVAIL 0x0800 /* Data is available. */
-
-/*
- * bit defines for 8255 status port
- * base + 1
- * accessed with LP_S(minor), which gets the byte...
- */
-#define LP_PBUSY 0x80 /* inverted input, active high */
-#define LP_PACK 0x40 /* unchanged input, active low */
-#define LP_POUTPA 0x20 /* unchanged input, active high */
-#define LP_PSELECD 0x10 /* unchanged input, active high */
-#define LP_PERRORP 0x08 /* unchanged input, active low */
-
-/* timeout for each character. This is relative to bus cycles -- it
- * is the count in a busy loop. THIS IS THE VALUE TO CHANGE if you
- * have extremely slow printing, or if the machine seems to slow down
- * a lot when you print. If you have slow printing, increase this
- * number and recompile, and if your system gets bogged down, decrease
- * this number. This can be changed with the tunelp(8) command as well.
- */
-
-#define LP_INIT_CHAR 1000
-
-/* The parallel port specs apparently say that there needs to be
- * a .5usec wait before and after the strobe.
- */
-
-#define LP_INIT_WAIT 1
-
-/* This is the amount of time that the driver waits for the printer to
- * catch up when the printer's buffer appears to be filled. If you
- * want to tune this and have a fast printer (i.e. HPIIIP), decrease
- * this number, and if you have a slow printer, increase this number.
- * This is in hundredths of a second, the default 2 being .05 second.
- * Or use the tunelp(8) command, which is especially nice if you want
- * change back and forth between character and graphics printing, which
- * are wildly different...
- */
-
-#define LP_INIT_TIME 2
-
-/* IOCTL numbers */
-#define LPCHAR 0x0601 /* corresponds to LP_INIT_CHAR */
-#define LPTIME 0x0602 /* corresponds to LP_INIT_TIME */
-#define LPABORT 0x0604 /* call with TRUE arg to abort on error,
- FALSE to retry. Default is retry. */
-#define LPSETIRQ 0x0605 /* call with new IRQ number,
- or 0 for polling (no IRQ) */
-#define LPGETIRQ 0x0606 /* get the current IRQ number */
-#define LPWAIT 0x0608 /* corresponds to LP_INIT_WAIT */
-/* NOTE: LPCAREFUL is obsoleted and it' s always the default right now -arca */
-#define LPCAREFUL 0x0609 /* call with TRUE arg to require out-of-paper, off-
- line, and error indicators good on all writes,
- FALSE to ignore them. Default is ignore. */
-#define LPABORTOPEN 0x060a /* call with TRUE arg to abort open() on error,
- FALSE to ignore error. Default is ignore. */
-#define LPGETSTATUS 0x060b /* return LP_S(minor) */
-#define LPRESET 0x060c /* reset printer */
-#ifdef LP_STATS
-#define LPGETSTATS 0x060d /* get statistics (struct lp_stats) */
-#endif
-#define LPGETFLAGS 0x060e /* get status flags */
-#define LPSETTIMEOUT 0x060f /* set parport timeout */
-
-/* timeout for printk'ing a timeout, in jiffies (100ths of a second).
- This is also used for re-checking error conditions if LP_ABORT is
- not set. This is the default behavior. */
-
-#define LP_TIMEOUT_INTERRUPT (60 * HZ)
-#define LP_TIMEOUT_POLLED (10 * HZ)
-
-#ifdef __KERNEL__
-
-#include <linux/wait.h>
-#include <linux/mutex.h>
-
-/* Magic numbers for defining port-device mappings */
-#define LP_PARPORT_UNSPEC -4
-#define LP_PARPORT_AUTO -3
-#define LP_PARPORT_OFF -2
-#define LP_PARPORT_NONE -1
-
-#define LP_F(minor) lp_table[(minor)].flags /* flags for busy, etc. */
-#define LP_CHAR(minor) lp_table[(minor)].chars /* busy timeout */
-#define LP_TIME(minor) lp_table[(minor)].time /* wait time */
-#define LP_WAIT(minor) lp_table[(minor)].wait /* strobe wait */
-#define LP_IRQ(minor) lp_table[(minor)].dev->port->irq /* interrupt # */
- /* PARPORT_IRQ_NONE means polled */
-#ifdef LP_STATS
-#define LP_STAT(minor) lp_table[(minor)].stats /* statistics area */
-#endif
-#define LP_BUFFER_SIZE PAGE_SIZE
-
-#define LP_BASE(x) lp_table[(x)].dev->port->base
-
-#ifdef LP_STATS
-struct lp_stats {
- unsigned long chars;
- unsigned long sleeps;
- unsigned int maxrun;
- unsigned int maxwait;
- unsigned int meanwait;
- unsigned int mdev;
-};
-#endif
-
-struct lp_struct {
- struct pardevice *dev;
- unsigned long flags;
- unsigned int chars;
- unsigned int time;
- unsigned int wait;
- char *lp_buffer;
-#ifdef LP_STATS
- unsigned int lastcall;
- unsigned int runchars;
- struct lp_stats stats;
-#endif
- wait_queue_head_t waitq;
- unsigned int last_error;
- struct mutex port_mutex;
- wait_queue_head_t dataq;
- long timeout;
- unsigned int best_mode;
- unsigned int current_mode;
- unsigned long bits;
-};
-
-/*
- * The following constants describe the various signals of the printer port
- * hardware. Note that the hardware inverts some signals and that some
- * signals are active low. An example is LP_STROBE, which must be programmed
- * with 1 for being active and 0 for being inactive, because the strobe signal
- * gets inverted, but it is also active low.
- */
-
-
-/*
- * defines for 8255 control port
- * base + 2
- * accessed with LP_C(minor)
- */
-#define LP_PINTEN 0x10 /* high to read data in or-ed with data out */
-#define LP_PSELECP 0x08 /* inverted output, active low */
-#define LP_PINITP 0x04 /* unchanged output, active low */
-#define LP_PAUTOLF 0x02 /* inverted output, active low */
-#define LP_PSTROBE 0x01 /* short high output on raising edge */
-
-/*
- * the value written to ports to test existence. PC-style ports will
- * return the value written. AT-style ports will return 0. so why not
- * make them the same ?
- */
-#define LP_DUMMY 0x00
-
-/*
- * This is the port delay time, in microseconds.
- * It is used only in the lp_init() and lp_reset() routine.
- */
-#define LP_DELAY 50
-
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/lp855x.h b/ANDROID_3.4.5/include/linux/lp855x.h
deleted file mode 100644
index 781a490a..00000000
--- a/ANDROID_3.4.5/include/linux/lp855x.h
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * LP855x Backlight Driver
- *
- * Copyright (C) 2011 Texas Instruments
- *
- * 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.
- *
- */
-
-#ifndef _LP855X_H
-#define _LP855X_H
-
-#define BL_CTL_SHFT (0)
-#define BRT_MODE_SHFT (1)
-#define BRT_MODE_MASK (0x06)
-
-/* Enable backlight. Only valid when BRT_MODE=10(I2C only) */
-#define ENABLE_BL (1)
-#define DISABLE_BL (0)
-
-#define I2C_CONFIG(id) id ## _I2C_CONFIG
-#define PWM_CONFIG(id) id ## _PWM_CONFIG
-
-/* DEVICE CONTROL register - LP8550 */
-#define LP8550_PWM_CONFIG (LP8550_PWM_ONLY << BRT_MODE_SHFT)
-#define LP8550_I2C_CONFIG ((ENABLE_BL << BL_CTL_SHFT) | \
- (LP8550_I2C_ONLY << BRT_MODE_SHFT))
-
-/* DEVICE CONTROL register - LP8551 */
-#define LP8551_PWM_CONFIG LP8550_PWM_CONFIG
-#define LP8551_I2C_CONFIG LP8550_I2C_CONFIG
-
-/* DEVICE CONTROL register - LP8552 */
-#define LP8552_PWM_CONFIG LP8550_PWM_CONFIG
-#define LP8552_I2C_CONFIG LP8550_I2C_CONFIG
-
-/* DEVICE CONTROL register - LP8553 */
-#define LP8553_PWM_CONFIG LP8550_PWM_CONFIG
-#define LP8553_I2C_CONFIG LP8550_I2C_CONFIG
-
-/* DEVICE CONTROL register - LP8556 */
-#define LP8556_PWM_CONFIG (LP8556_PWM_ONLY << BRT_MODE_SHFT)
-#define LP8556_COMB1_CONFIG (LP8556_COMBINED1 << BRT_MODE_SHFT)
-#define LP8556_I2C_CONFIG ((ENABLE_BL << BL_CTL_SHFT) | \
- (LP8556_I2C_ONLY << BRT_MODE_SHFT))
-#define LP8556_COMB2_CONFIG (LP8556_COMBINED2 << BRT_MODE_SHFT)
-
-/* ROM area boundary */
-#define EEPROM_START (0xA0)
-#define EEPROM_END (0xA7)
-#define EPROM_START (0xA0)
-#define EPROM_END (0xAF)
-
-enum lp855x_chip_id {
- LP8550,
- LP8551,
- LP8552,
- LP8553,
- LP8556,
-};
-
-enum lp855x_brightness_ctrl_mode {
- PWM_BASED = 1,
- REGISTER_BASED,
-};
-
-enum lp8550_brighntess_source {
- LP8550_PWM_ONLY,
- LP8550_I2C_ONLY = 2,
-};
-
-enum lp8551_brighntess_source {
- LP8551_PWM_ONLY = LP8550_PWM_ONLY,
- LP8551_I2C_ONLY = LP8550_I2C_ONLY,
-};
-
-enum lp8552_brighntess_source {
- LP8552_PWM_ONLY = LP8550_PWM_ONLY,
- LP8552_I2C_ONLY = LP8550_I2C_ONLY,
-};
-
-enum lp8553_brighntess_source {
- LP8553_PWM_ONLY = LP8550_PWM_ONLY,
- LP8553_I2C_ONLY = LP8550_I2C_ONLY,
-};
-
-enum lp8556_brightness_source {
- LP8556_PWM_ONLY,
- LP8556_COMBINED1, /* pwm + i2c before the shaper block */
- LP8556_I2C_ONLY,
- LP8556_COMBINED2, /* pwm + i2c after the shaper block */
-};
-
-struct lp855x_pwm_data {
- void (*pwm_set_intensity) (int brightness, int max_brightness);
- int (*pwm_get_intensity) (int max_brightness);
-};
-
-struct lp855x_rom_data {
- u8 addr;
- u8 val;
-};
-
-/**
- * struct lp855x_platform_data
- * @name : Backlight driver name. If it is not defined, default name is set.
- * @mode : brightness control by pwm or lp855x register
- * @device_control : value of DEVICE CONTROL register
- * @initial_brightness : initial value of backlight brightness
- * @pwm_data : platform specific pwm generation functions.
- Only valid when mode is PWM_BASED.
- * @load_new_rom_data :
- 0 : use default configuration data
- 1 : update values of eeprom or eprom registers on loading driver
- * @size_program : total size of lp855x_rom_data
- * @rom_data : list of new eeprom/eprom registers
- */
-struct lp855x_platform_data {
- char *name;
- enum lp855x_brightness_ctrl_mode mode;
- u8 device_control;
- int initial_brightness;
- struct lp855x_pwm_data pwm_data;
- u8 load_new_rom_data;
- int size_program;
- struct lp855x_rom_data *rom_data;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/lp8727.h b/ANDROID_3.4.5/include/linux/lp8727.h
deleted file mode 100644
index ea98c613..00000000
--- a/ANDROID_3.4.5/include/linux/lp8727.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * LP8727 Micro/Mini USB IC with integrated charger
- *
- * Copyright (C) 2011 Texas Instruments
- * Copyright (C) 2011 National Semiconductor
- *
- * 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.
- */
-
-#ifndef _LP8727_H
-#define _LP8727_H
-
-enum lp8727_eoc_level {
- EOC_5P,
- EOC_10P,
- EOC_16P,
- EOC_20P,
- EOC_25P,
- EOC_33P,
- EOC_50P,
-};
-
-enum lp8727_ichg {
- ICHG_90mA,
- ICHG_100mA,
- ICHG_400mA,
- ICHG_450mA,
- ICHG_500mA,
- ICHG_600mA,
- ICHG_700mA,
- ICHG_800mA,
- ICHG_900mA,
- ICHG_1000mA,
-};
-
-/**
- * struct lp8727_chg_param
- * @eoc_level : end of charge level setting
- * @ichg : charging current
- */
-struct lp8727_chg_param {
- enum lp8727_eoc_level eoc_level;
- enum lp8727_ichg ichg;
-};
-
-/**
- * struct lp8727_platform_data
- * @get_batt_present : check battery status - exists or not
- * @get_batt_level : get battery voltage (mV)
- * @get_batt_capacity : get battery capacity (%)
- * @get_batt_temp : get battery temperature
- * @ac, @usb : charging parameters each charger type
- */
-struct lp8727_platform_data {
- u8 (*get_batt_present)(void);
- u16 (*get_batt_level)(void);
- u8 (*get_batt_capacity)(void);
- u8 (*get_batt_temp)(void);
- struct lp8727_chg_param ac;
- struct lp8727_chg_param usb;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/lru_cache.h b/ANDROID_3.4.5/include/linux/lru_cache.h
deleted file mode 100644
index 7a71ffad..00000000
--- a/ANDROID_3.4.5/include/linux/lru_cache.h
+++ /dev/null
@@ -1,294 +0,0 @@
-/*
- lru_cache.c
-
- This file is part of DRBD by Philipp Reisner and Lars Ellenberg.
-
- Copyright (C) 2003-2008, LINBIT Information Technologies GmbH.
- Copyright (C) 2003-2008, Philipp Reisner <philipp.reisner@linbit.com>.
- Copyright (C) 2003-2008, Lars Ellenberg <lars.ellenberg@linbit.com>.
-
- drbd 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.
-
- drbd 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 drbd; see the file COPYING. If not, write to
- the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-
- */
-
-#ifndef LRU_CACHE_H
-#define LRU_CACHE_H
-
-#include <linux/list.h>
-#include <linux/slab.h>
-#include <linux/bitops.h>
-#include <linux/string.h> /* for memset */
-#include <linux/seq_file.h>
-
-/*
-This header file (and its .c file; kernel-doc of functions see there)
- define a helper framework to easily keep track of index:label associations,
- and changes to an "active set" of objects, as well as pending transactions,
- to persistently record those changes.
-
- We use an LRU policy if it is necessary to "cool down" a region currently in
- the active set before we can "heat" a previously unused region.
-
- Because of this later property, it is called "lru_cache".
- As it actually Tracks Objects in an Active SeT, we could also call it
- toast (incidentally that is what may happen to the data on the
- backend storage uppon next resync, if we don't get it right).
-
-What for?
-
-We replicate IO (more or less synchronously) to local and remote disk.
-
-For crash recovery after replication node failure,
- we need to resync all regions that have been target of in-flight WRITE IO
- (in use, or "hot", regions), as we don't know wether or not those WRITEs have
- made it to stable storage.
-
- To avoid a "full resync", we need to persistently track these regions.
-
- This is known as "write intent log", and can be implemented as on-disk
- (coarse or fine grained) bitmap, or other meta data.
-
- To avoid the overhead of frequent extra writes to this meta data area,
- usually the condition is softened to regions that _may_ have been target of
- in-flight WRITE IO, e.g. by only lazily clearing the on-disk write-intent
- bitmap, trading frequency of meta data transactions against amount of
- (possibly unnecessary) resync traffic.
-
- If we set a hard limit on the area that may be "hot" at any given time, we
- limit the amount of resync traffic needed for crash recovery.
-
-For recovery after replication link failure,
- we need to resync all blocks that have been changed on the other replica
- in the mean time, or, if both replica have been changed independently [*],
- all blocks that have been changed on either replica in the mean time.
- [*] usually as a result of a cluster split-brain and insufficient protection.
- but there are valid use cases to do this on purpose.
-
- Tracking those blocks can be implemented as "dirty bitmap".
- Having it fine-grained reduces the amount of resync traffic.
- It should also be persistent, to allow for reboots (or crashes)
- while the replication link is down.
-
-There are various possible implementations for persistently storing
-write intent log information, three of which are mentioned here.
-
-"Chunk dirtying"
- The on-disk "dirty bitmap" may be re-used as "write-intent" bitmap as well.
- To reduce the frequency of bitmap updates for write-intent log purposes,
- one could dirty "chunks" (of some size) at a time of the (fine grained)
- on-disk bitmap, while keeping the in-memory "dirty" bitmap as clean as
- possible, flushing it to disk again when a previously "hot" (and on-disk
- dirtied as full chunk) area "cools down" again (no IO in flight anymore,
- and none expected in the near future either).
-
-"Explicit (coarse) write intent bitmap"
- An other implementation could chose a (probably coarse) explicit bitmap,
- for write-intent log purposes, additionally to the fine grained dirty bitmap.
-
-"Activity log"
- Yet an other implementation may keep track of the hot regions, by starting
- with an empty set, and writing down a journal of region numbers that have
- become "hot", or have "cooled down" again.
-
- To be able to use a ring buffer for this journal of changes to the active
- set, we not only record the actual changes to that set, but also record the
- not changing members of the set in a round robin fashion. To do so, we use a
- fixed (but configurable) number of slots which we can identify by index, and
- associate region numbers (labels) with these indices.
- For each transaction recording a change to the active set, we record the
- change itself (index: -old_label, +new_label), and which index is associated
- with which label (index: current_label) within a certain sliding window that
- is moved further over the available indices with each such transaction.
-
- Thus, for crash recovery, if the ringbuffer is sufficiently large, we can
- accurately reconstruct the active set.
-
- Sufficiently large depends only on maximum number of active objects, and the
- size of the sliding window recording "index: current_label" associations within
- each transaction.
-
- This is what we call the "activity log".
-
- Currently we need one activity log transaction per single label change, which
- does not give much benefit over the "dirty chunks of bitmap" approach, other
- than potentially less seeks.
-
- We plan to change the transaction format to support multiple changes per
- transaction, which then would reduce several (disjoint, "random") updates to
- the bitmap into one transaction to the activity log ring buffer.
-*/
-
-/* this defines an element in a tracked set
- * .colision is for hash table lookup.
- * When we process a new IO request, we know its sector, thus can deduce the
- * region number (label) easily. To do the label -> object lookup without a
- * full list walk, we use a simple hash table.
- *
- * .list is on one of three lists:
- * in_use: currently in use (refcnt > 0, lc_number != LC_FREE)
- * lru: unused but ready to be reused or recycled
- * (lc_refcnt == 0, lc_number != LC_FREE),
- * free: unused but ready to be recycled
- * (lc_refcnt == 0, lc_number == LC_FREE),
- *
- * an element is said to be "in the active set",
- * if either on "in_use" or "lru", i.e. lc_number != LC_FREE.
- *
- * DRBD currently (May 2009) only uses 61 elements on the resync lru_cache
- * (total memory usage 2 pages), and up to 3833 elements on the act_log
- * lru_cache, totalling ~215 kB for 64bit architecture, ~53 pages.
- *
- * We usually do not actually free these objects again, but only "recycle"
- * them, as the change "index: -old_label, +LC_FREE" would need a transaction
- * as well. Which also means that using a kmem_cache to allocate the objects
- * from wastes some resources.
- * But it avoids high order page allocations in kmalloc.
- */
-struct lc_element {
- struct hlist_node colision;
- struct list_head list; /* LRU list or free list */
- unsigned refcnt;
- /* back "pointer" into lc_cache->element[index],
- * for paranoia, and for "lc_element_to_index" */
- unsigned lc_index;
- /* if we want to track a larger set of objects,
- * it needs to become arch independend u64 */
- unsigned lc_number;
-
- /* special label when on free list */
-#define LC_FREE (~0U)
-};
-
-struct lru_cache {
- /* the least recently used item is kept at lru->prev */
- struct list_head lru;
- struct list_head free;
- struct list_head in_use;
-
- /* the pre-created kmem cache to allocate the objects from */
- struct kmem_cache *lc_cache;
-
- /* size of tracked objects, used to memset(,0,) them in lc_reset */
- size_t element_size;
- /* offset of struct lc_element member in the tracked object */
- size_t element_off;
-
- /* number of elements (indices) */
- unsigned int nr_elements;
- /* Arbitrary limit on maximum tracked objects. Practical limit is much
- * lower due to allocation failures, probably. For typical use cases,
- * nr_elements should be a few thousand at most.
- * This also limits the maximum value of lc_element.lc_index, allowing the
- * 8 high bits of .lc_index to be overloaded with flags in the future. */
-#define LC_MAX_ACTIVE (1<<24)
-
- /* statistics */
- unsigned used; /* number of lelements currently on in_use list */
- unsigned long hits, misses, starving, dirty, changed;
-
- /* see below: flag-bits for lru_cache */
- unsigned long flags;
-
- /* when changing the label of an index element */
- unsigned int new_number;
-
- /* for paranoia when changing the label of an index element */
- struct lc_element *changing_element;
-
- void *lc_private;
- const char *name;
-
- /* nr_elements there */
- struct hlist_head *lc_slot;
- struct lc_element **lc_element;
-};
-
-
-/* flag-bits for lru_cache */
-enum {
- /* debugging aid, to catch concurrent access early.
- * user needs to guarantee exclusive access by proper locking! */
- __LC_PARANOIA,
- /* if we need to change the set, but currently there is a changing
- * transaction pending, we are "dirty", and must deferr further
- * changing requests */
- __LC_DIRTY,
- /* if we need to change the set, but currently there is no free nor
- * unused element available, we are "starving", and must not give out
- * further references, to guarantee that eventually some refcnt will
- * drop to zero and we will be able to make progress again, changing
- * the set, writing the transaction.
- * if the statistics say we are frequently starving,
- * nr_elements is too small. */
- __LC_STARVING,
-};
-#define LC_PARANOIA (1<<__LC_PARANOIA)
-#define LC_DIRTY (1<<__LC_DIRTY)
-#define LC_STARVING (1<<__LC_STARVING)
-
-extern struct lru_cache *lc_create(const char *name, struct kmem_cache *cache,
- unsigned e_count, size_t e_size, size_t e_off);
-extern void lc_reset(struct lru_cache *lc);
-extern void lc_destroy(struct lru_cache *lc);
-extern void lc_set(struct lru_cache *lc, unsigned int enr, int index);
-extern void lc_del(struct lru_cache *lc, struct lc_element *element);
-
-extern struct lc_element *lc_try_get(struct lru_cache *lc, unsigned int enr);
-extern struct lc_element *lc_find(struct lru_cache *lc, unsigned int enr);
-extern struct lc_element *lc_get(struct lru_cache *lc, unsigned int enr);
-extern unsigned int lc_put(struct lru_cache *lc, struct lc_element *e);
-extern void lc_changed(struct lru_cache *lc, struct lc_element *e);
-
-struct seq_file;
-extern size_t lc_seq_printf_stats(struct seq_file *seq, struct lru_cache *lc);
-
-extern void lc_seq_dump_details(struct seq_file *seq, struct lru_cache *lc, char *utext,
- void (*detail) (struct seq_file *, struct lc_element *));
-
-/**
- * lc_try_lock - can be used to stop lc_get() from changing the tracked set
- * @lc: the lru cache to operate on
- *
- * Note that the reference counts and order on the active and lru lists may
- * still change. Returns true if we acquired the lock.
- */
-static inline int lc_try_lock(struct lru_cache *lc)
-{
- return !test_and_set_bit(__LC_DIRTY, &lc->flags);
-}
-
-/**
- * lc_unlock - unlock @lc, allow lc_get() to change the set again
- * @lc: the lru cache to operate on
- */
-static inline void lc_unlock(struct lru_cache *lc)
-{
- clear_bit(__LC_DIRTY, &lc->flags);
- smp_mb__after_clear_bit();
-}
-
-static inline int lc_is_used(struct lru_cache *lc, unsigned int enr)
-{
- struct lc_element *e = lc_find(lc, enr);
- return e && e->refcnt;
-}
-
-#define lc_entry(ptr, type, member) \
- container_of(ptr, type, member)
-
-extern struct lc_element *lc_element_by_index(struct lru_cache *lc, unsigned i);
-extern unsigned int lc_index_of(struct lru_cache *lc, struct lc_element *e);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/lsm_audit.h b/ANDROID_3.4.5/include/linux/lsm_audit.h
deleted file mode 100644
index fad48aab..00000000
--- a/ANDROID_3.4.5/include/linux/lsm_audit.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Common LSM logging functions
- * Heavily borrowed from selinux/avc.h
- *
- * Author : Etienne BASSET <etienne.basset@ensta.org>
- *
- * All credits to : Stephen Smalley, <sds@epoch.ncsc.mil>
- * All BUGS to : Etienne BASSET <etienne.basset@ensta.org>
- */
-#ifndef _LSM_COMMON_LOGGING_
-#define _LSM_COMMON_LOGGING_
-
-#include <linux/stddef.h>
-#include <linux/errno.h>
-#include <linux/kernel.h>
-#include <linux/kdev_t.h>
-#include <linux/spinlock.h>
-#include <linux/init.h>
-#include <linux/audit.h>
-#include <linux/in6.h>
-#include <linux/path.h>
-#include <linux/key.h>
-#include <linux/skbuff.h>
-
-struct lsm_network_audit {
- int netif;
- struct sock *sk;
- u16 family;
- __be16 dport;
- __be16 sport;
- union {
- struct {
- __be32 daddr;
- __be32 saddr;
- } v4;
- struct {
- struct in6_addr daddr;
- struct in6_addr saddr;
- } v6;
- } fam;
-};
-
-/* Auxiliary data to use in generating the audit record. */
-struct common_audit_data {
- char type;
-#define LSM_AUDIT_DATA_PATH 1
-#define LSM_AUDIT_DATA_NET 2
-#define LSM_AUDIT_DATA_CAP 3
-#define LSM_AUDIT_DATA_IPC 4
-#define LSM_AUDIT_DATA_TASK 5
-#define LSM_AUDIT_DATA_KEY 6
-#define LSM_AUDIT_DATA_NONE 7
-#define LSM_AUDIT_DATA_KMOD 8
-#define LSM_AUDIT_DATA_INODE 9
-#define LSM_AUDIT_DATA_DENTRY 10
- struct task_struct *tsk;
- union {
- struct path path;
- struct dentry *dentry;
- struct inode *inode;
- struct lsm_network_audit *net;
- int cap;
- int ipc_id;
- struct task_struct *tsk;
-#ifdef CONFIG_KEYS
- struct {
- key_serial_t key;
- char *key_desc;
- } key_struct;
-#endif
- char *kmod_name;
- } u;
- /* this union contains LSM specific data */
- union {
-#ifdef CONFIG_SECURITY_SMACK
- struct smack_audit_data *smack_audit_data;
-#endif
-#ifdef CONFIG_SECURITY_SELINUX
- struct selinux_audit_data *selinux_audit_data;
-#endif
-#ifdef CONFIG_SECURITY_APPARMOR
- struct apparmor_audit_data *apparmor_audit_data;
-#endif
- }; /* per LSM data pointer union */
-};
-
-#define v4info fam.v4
-#define v6info fam.v6
-
-int ipv4_skb_to_auditdata(struct sk_buff *skb,
- struct common_audit_data *ad, u8 *proto);
-
-int ipv6_skb_to_auditdata(struct sk_buff *skb,
- struct common_audit_data *ad, u8 *proto);
-
-/* Initialize an LSM audit data structure. */
-#define COMMON_AUDIT_DATA_INIT(_d, _t) \
- { memset((_d), 0, sizeof(struct common_audit_data)); \
- (_d)->type = LSM_AUDIT_DATA_##_t; }
-
-void common_lsm_audit(struct common_audit_data *a,
- void (*pre_audit)(struct audit_buffer *, void *),
- void (*post_audit)(struct audit_buffer *, void *));
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/lz4.h b/ANDROID_3.4.5/include/linux/lz4.h
deleted file mode 100755
index 8bd8ad7e..00000000
--- a/ANDROID_3.4.5/include/linux/lz4.h
+++ /dev/null
@@ -1,89 +0,0 @@
-#ifndef __LZ4_H__
-#define __LZ4_H__
-/*
- * LZ4 Kernel Interface
- *
- * Copyright (C) 2013, LG Electronics, Kyungsik Lee <kyungsik.lee@lge.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.
- */
-#define LZ4_MEM_COMPRESS (4096 * sizeof(unsigned char *))
-#define LZ4HC_MEM_COMPRESS (65538 * sizeof(unsigned char *))
-
-#define lz4_worst_compress(x) ((x) + ((x) / 255) + 16)
-
-/*
- * lz4_compressbound()
- * Provides the maximum size that LZ4 may output in a "worst case" scenario
- * (input data not compressible)
- */
-static inline size_t lz4_compressbound(size_t isize)
-{
- return isize + (isize / 255) + 16;
-}
-
-/*
- * lz4_compress()
- * src : source address of the original data
- * src_len : size of the original data
- * dst : output buffer address of the compressed data
- * This requires 'dst' of size LZ4_COMPRESSBOUND.
- * dst_len : is the output size, which is returned after compress done
- * workmem : address of the working memory.
- * This requires 'workmem' of size LZ4_MEM_COMPRESS.
- * return : Success if return 0
- * Error if return (< 0)
- * note : Destination buffer and workmem must be already allocated with
- * the defined size.
- */
-int lz4_compress(const unsigned char *src, size_t src_len,
- unsigned char *dst, size_t *dst_len, void *wrkmem);
-
- /*
- * lz4hc_compress()
- * src : source address of the original data
- * src_len : size of the original data
- * dst : output buffer address of the compressed data
- * This requires 'dst' of size LZ4_COMPRESSBOUND.
- * dst_len : is the output size, which is returned after compress done
- * workmem : address of the working memory.
- * This requires 'workmem' of size LZ4HC_MEM_COMPRESS.
- * return : Success if return 0
- * Error if return (< 0)
- * note : Destination buffer and workmem must be already allocated with
- * the defined size.
- */
-int lz4hc_compress(const unsigned char *src, size_t src_len,
- unsigned char *dst, size_t *dst_len, void *wrkmem);
-
-/*
- * lz4_decompress()
- * src : source address of the compressed data
- * src_len : is the input size, whcih is returned after decompress done
- * dest : output buffer address of the decompressed data
- * actual_dest_len: is the size of uncompressed data, supposing it's known
- * return : Success if return 0
- * Error if return (< 0)
- * note : Destination buffer must be already allocated.
- * slightly faster than lz4_decompress_unknownoutputsize()
- */
-int lz4_decompress(const unsigned char *src, size_t *src_len,
- unsigned char *dest, size_t actual_dest_len);
-
-/*
- * lz4_decompress_unknownoutputsize()
- * src : source address of the compressed data
- * src_len : is the input size, therefore the compressed size
- * dest : output buffer address of the decompressed data
- * dest_len: is the max size of the destination buffer, which is
- * returned with actual size of decompressed data after
- * decompress done
- * return : Success if return 0
- * Error if return (< 0)
- * note : Destination buffer must be already allocated.
- */
-int lz4_decompress_unknownoutputsize(const unsigned char *src, size_t src_len,
- unsigned char *dest, size_t *dest_len);
-#endif
diff --git a/ANDROID_3.4.5/include/linux/lzo.h b/ANDROID_3.4.5/include/linux/lzo.h
deleted file mode 100644
index d793497e..00000000
--- a/ANDROID_3.4.5/include/linux/lzo.h
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef __LZO_H__
-#define __LZO_H__
-/*
- * LZO Public Kernel Interface
- * A mini subset of the LZO real-time data compression library
- *
- * Copyright (C) 1996-2005 Markus F.X.J. Oberhumer <markus@oberhumer.com>
- *
- * The full LZO package can be found at:
- * http://www.oberhumer.com/opensource/lzo/
- *
- * Changed for kernel use by:
- * Nitin Gupta <nitingupta910@gmail.com>
- * Richard Purdie <rpurdie@openedhand.com>
- */
-
-#define LZO1X_MEM_COMPRESS (16384 * sizeof(unsigned char *))
-#define LZO1X_1_MEM_COMPRESS LZO1X_MEM_COMPRESS
-
-#define lzo1x_worst_compress(x) ((x) + ((x) / 16) + 64 + 3)
-
-/* This requires 'workmem' of size LZO1X_1_MEM_COMPRESS */
-int lzo1x_1_compress(const unsigned char *src, size_t src_len,
- unsigned char *dst, size_t *dst_len, void *wrkmem);
-
-/* safe decompression with overrun testing */
-int lzo1x_decompress_safe(const unsigned char *src, size_t src_len,
- unsigned char *dst, size_t *dst_len);
-
-/*
- * Return values (< 0 = Error)
- */
-#define LZO_E_OK 0
-#define LZO_E_ERROR (-1)
-#define LZO_E_OUT_OF_MEMORY (-2)
-#define LZO_E_NOT_COMPRESSIBLE (-3)
-#define LZO_E_INPUT_OVERRUN (-4)
-#define LZO_E_OUTPUT_OVERRUN (-5)
-#define LZO_E_LOOKBEHIND_OVERRUN (-6)
-#define LZO_E_EOF_NOT_FOUND (-7)
-#define LZO_E_INPUT_NOT_CONSUMED (-8)
-#define LZO_E_NOT_YET_IMPLEMENTED (-9)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/m48t86.h b/ANDROID_3.4.5/include/linux/m48t86.h
deleted file mode 100644
index 915d6b4f..00000000
--- a/ANDROID_3.4.5/include/linux/m48t86.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * ST M48T86 / Dallas DS12887 RTC driver
- * Copyright (c) 2006 Tower Technologies
- *
- * Author: Alessandro Zummo <a.zummo@towertech.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.
-*/
-
-struct m48t86_ops
-{
- void (*writebyte)(unsigned char value, unsigned long addr);
- unsigned char (*readbyte)(unsigned long addr);
-};
diff --git a/ANDROID_3.4.5/include/linux/mISDNdsp.h b/ANDROID_3.4.5/include/linux/mISDNdsp.h
deleted file mode 100644
index 41d1eeb9..00000000
--- a/ANDROID_3.4.5/include/linux/mISDNdsp.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef __mISDNdsp_H__
-#define __mISDNdsp_H__
-
-struct mISDN_dsp_element_arg {
- char *name;
- char *def;
- char *desc;
-};
-
-struct mISDN_dsp_element {
- char *name;
- void *(*new)(const char *arg);
- void (*free)(void *p);
- void (*process_tx)(void *p, unsigned char *data, int len);
- void (*process_rx)(void *p, unsigned char *data, int len,
- unsigned int txlen);
- int num_args;
- struct mISDN_dsp_element_arg
- *args;
-};
-
-extern int mISDN_dsp_element_register(struct mISDN_dsp_element *elem);
-extern void mISDN_dsp_element_unregister(struct mISDN_dsp_element *elem);
-
-struct dsp_features {
- int hfc_id; /* unique id to identify the chip (or -1) */
- int hfc_dtmf; /* set if HFCmulti card supports dtmf */
- int hfc_conf; /* set if HFCmulti card supports conferences */
- int hfc_loops; /* set if card supports tone loops */
- int hfc_echocanhw; /* set if card supports echocancelation*/
- int pcm_id; /* unique id to identify the pcm bus (or -1) */
- int pcm_slots; /* number of slots on the pcm bus */
- int pcm_banks; /* number of IO banks of pcm bus */
- int unclocked; /* data is not clocked (has jitter/loss) */
- int unordered; /* data is unordered (packets have index) */
-};
-
-#endif
-
diff --git a/ANDROID_3.4.5/include/linux/mISDNhw.h b/ANDROID_3.4.5/include/linux/mISDNhw.h
deleted file mode 100644
index 4af84140..00000000
--- a/ANDROID_3.4.5/include/linux/mISDNhw.h
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- *
- * Author Karsten Keil <kkeil@novell.com>
- *
- * Basic declarations for the mISDN HW channels
- *
- * Copyright 2008 by Karsten Keil <kkeil@novell.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.
- *
- * 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 MISDNHW_H
-#define MISDNHW_H
-#include <linux/mISDNif.h>
-#include <linux/timer.h>
-
-/*
- * HW DEBUG 0xHHHHGGGG
- * H - hardware driver specific bits
- * G - for all drivers
- */
-
-#define DEBUG_HW 0x00000001
-#define DEBUG_HW_OPEN 0x00000002
-#define DEBUG_HW_DCHANNEL 0x00000100
-#define DEBUG_HW_DFIFO 0x00000200
-#define DEBUG_HW_BCHANNEL 0x00001000
-#define DEBUG_HW_BFIFO 0x00002000
-
-#define MAX_DFRAME_LEN_L1 300
-#define MAX_MON_FRAME 32
-#define MAX_LOG_SPACE 2048
-#define MISDN_COPY_SIZE 32
-
-/* channel->Flags bit field */
-#define FLG_TX_BUSY 0 /* tx_buf in use */
-#define FLG_TX_NEXT 1 /* next_skb in use */
-#define FLG_L1_BUSY 2 /* L1 is permanent busy */
-#define FLG_L2_ACTIVATED 3 /* activated from L2 */
-#define FLG_OPEN 5 /* channel is in use */
-#define FLG_ACTIVE 6 /* channel is activated */
-#define FLG_BUSY_TIMER 7
-/* channel type */
-#define FLG_DCHANNEL 8 /* channel is D-channel */
-#define FLG_BCHANNEL 9 /* channel is B-channel */
-#define FLG_ECHANNEL 10 /* channel is E-channel */
-#define FLG_TRANSPARENT 12 /* channel use transparent data */
-#define FLG_HDLC 13 /* channel use hdlc data */
-#define FLG_L2DATA 14 /* channel use L2 DATA primitivs */
-#define FLG_ORIGIN 15 /* channel is on origin site */
-/* channel specific stuff */
-#define FLG_FILLEMPTY 16 /* fill fifo on first frame (empty) */
-/* arcofi specific */
-#define FLG_ARCOFI_TIMER 17
-#define FLG_ARCOFI_ERROR 18
-/* isar specific */
-#define FLG_INITIALIZED 17
-#define FLG_DLEETX 18
-#define FLG_LASTDLE 19
-#define FLG_FIRST 20
-#define FLG_LASTDATA 21
-#define FLG_NMD_DATA 22
-#define FLG_FTI_RUN 23
-#define FLG_LL_OK 24
-#define FLG_LL_CONN 25
-#define FLG_DTMFSEND 26
-
-/* workq events */
-#define FLG_RECVQUEUE 30
-#define FLG_PHCHANGE 31
-
-#define schedule_event(s, ev) do { \
- test_and_set_bit(ev, &((s)->Flags)); \
- schedule_work(&((s)->workq)); \
- } while (0)
-
-struct dchannel {
- struct mISDNdevice dev;
- u_long Flags;
- struct work_struct workq;
- void (*phfunc) (struct dchannel *);
- u_int state;
- void *l1;
- void *hw;
- int slot; /* multiport card channel slot */
- struct timer_list timer;
- /* receive data */
- struct sk_buff *rx_skb;
- int maxlen;
- /* send data */
- struct sk_buff_head squeue;
- struct sk_buff_head rqueue;
- struct sk_buff *tx_skb;
- int tx_idx;
- int debug;
- /* statistics */
- int err_crc;
- int err_tx;
- int err_rx;
-};
-
-typedef int (dchannel_l1callback)(struct dchannel *, u_int);
-extern int create_l1(struct dchannel *, dchannel_l1callback *);
-
-/* private L1 commands */
-#define INFO0 0x8002
-#define INFO1 0x8102
-#define INFO2 0x8202
-#define INFO3_P8 0x8302
-#define INFO3_P10 0x8402
-#define INFO4_P8 0x8502
-#define INFO4_P10 0x8602
-#define LOSTFRAMING 0x8702
-#define ANYSIGNAL 0x8802
-#define HW_POWERDOWN 0x8902
-#define HW_RESET_REQ 0x8a02
-#define HW_POWERUP_REQ 0x8b02
-#define HW_DEACT_REQ 0x8c02
-#define HW_ACTIVATE_REQ 0x8e02
-#define HW_D_NOBLOCKED 0x8f02
-#define HW_RESET_IND 0x9002
-#define HW_POWERUP_IND 0x9102
-#define HW_DEACT_IND 0x9202
-#define HW_ACTIVATE_IND 0x9302
-#define HW_DEACT_CNF 0x9402
-#define HW_TESTLOOP 0x9502
-#define HW_TESTRX_RAW 0x9602
-#define HW_TESTRX_HDLC 0x9702
-#define HW_TESTRX_OFF 0x9802
-
-struct layer1;
-extern int l1_event(struct layer1 *, u_int);
-
-
-struct bchannel {
- struct mISDNchannel ch;
- int nr;
- u_long Flags;
- struct work_struct workq;
- u_int state;
- void *hw;
- int slot; /* multiport card channel slot */
- struct timer_list timer;
- /* receive data */
- struct sk_buff *rx_skb;
- int maxlen;
- /* send data */
- struct sk_buff *next_skb;
- struct sk_buff *tx_skb;
- struct sk_buff_head rqueue;
- int rcount;
- int tx_idx;
- int debug;
- /* statistics */
- int err_crc;
- int err_tx;
- int err_rx;
-};
-
-extern int mISDN_initdchannel(struct dchannel *, int, void *);
-extern int mISDN_initbchannel(struct bchannel *, int);
-extern int mISDN_freedchannel(struct dchannel *);
-extern void mISDN_clear_bchannel(struct bchannel *);
-extern int mISDN_freebchannel(struct bchannel *);
-extern void queue_ch_frame(struct mISDNchannel *, u_int,
- int, struct sk_buff *);
-extern int dchannel_senddata(struct dchannel *, struct sk_buff *);
-extern int bchannel_senddata(struct bchannel *, struct sk_buff *);
-extern void recv_Dchannel(struct dchannel *);
-extern void recv_Echannel(struct dchannel *, struct dchannel *);
-extern void recv_Bchannel(struct bchannel *, unsigned int id);
-extern void recv_Dchannel_skb(struct dchannel *, struct sk_buff *);
-extern void recv_Bchannel_skb(struct bchannel *, struct sk_buff *);
-extern void confirm_Bsend(struct bchannel *bch);
-extern int get_next_bframe(struct bchannel *);
-extern int get_next_dframe(struct dchannel *);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mISDNif.h b/ANDROID_3.4.5/include/linux/mISDNif.h
deleted file mode 100644
index b5e7f220..00000000
--- a/ANDROID_3.4.5/include/linux/mISDNif.h
+++ /dev/null
@@ -1,590 +0,0 @@
-/*
- *
- * Author Karsten Keil <kkeil@novell.com>
- *
- * Copyright 2008 by Karsten Keil <kkeil@novell.com>
- *
- * This code is free software; you can redistribute it and/or modify
- * it under the terms of the GNU LESSER GENERAL PUBLIC LICENSE
- * version 2.1 as published by the Free Software Foundation.
- *
- * This code 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.
- *
- */
-
-#ifndef mISDNIF_H
-#define mISDNIF_H
-
-#include <stdarg.h>
-#include <linux/types.h>
-#include <linux/errno.h>
-#include <linux/socket.h>
-
-/*
- * ABI Version 32 bit
- *
- * <8 bit> Major version
- * - changed if any interface become backwards incompatible
- *
- * <8 bit> Minor version
- * - changed if any interface is extended but backwards compatible
- *
- * <16 bit> Release number
- * - should be incremented on every checkin
- */
-#define MISDN_MAJOR_VERSION 1
-#define MISDN_MINOR_VERSION 1
-#define MISDN_RELEASE 21
-
-/* primitives for information exchange
- * generell format
- * <16 bit 0 >
- * <8 bit command>
- * BIT 8 = 1 LAYER private
- * BIT 7 = 1 answer
- * BIT 6 = 1 DATA
- * <8 bit target layer mask>
- *
- * Layer = 00 is reserved for general commands
- Layer = 01 L2 -> HW
- Layer = 02 HW -> L2
- Layer = 04 L3 -> L2
- Layer = 08 L2 -> L3
- * Layer = FF is reserved for broadcast commands
- */
-
-#define MISDN_CMDMASK 0xff00
-#define MISDN_LAYERMASK 0x00ff
-
-/* generell commands */
-#define OPEN_CHANNEL 0x0100
-#define CLOSE_CHANNEL 0x0200
-#define CONTROL_CHANNEL 0x0300
-#define CHECK_DATA 0x0400
-
-/* layer 2 -> layer 1 */
-#define PH_ACTIVATE_REQ 0x0101
-#define PH_DEACTIVATE_REQ 0x0201
-#define PH_DATA_REQ 0x2001
-#define MPH_ACTIVATE_REQ 0x0501
-#define MPH_DEACTIVATE_REQ 0x0601
-#define MPH_INFORMATION_REQ 0x0701
-#define PH_CONTROL_REQ 0x0801
-
-/* layer 1 -> layer 2 */
-#define PH_ACTIVATE_IND 0x0102
-#define PH_ACTIVATE_CNF 0x4102
-#define PH_DEACTIVATE_IND 0x0202
-#define PH_DEACTIVATE_CNF 0x4202
-#define PH_DATA_IND 0x2002
-#define PH_DATA_E_IND 0x3002
-#define MPH_ACTIVATE_IND 0x0502
-#define MPH_DEACTIVATE_IND 0x0602
-#define MPH_INFORMATION_IND 0x0702
-#define PH_DATA_CNF 0x6002
-#define PH_CONTROL_IND 0x0802
-#define PH_CONTROL_CNF 0x4802
-
-/* layer 3 -> layer 2 */
-#define DL_ESTABLISH_REQ 0x1004
-#define DL_RELEASE_REQ 0x1104
-#define DL_DATA_REQ 0x3004
-#define DL_UNITDATA_REQ 0x3104
-#define DL_INFORMATION_REQ 0x0004
-
-/* layer 2 -> layer 3 */
-#define DL_ESTABLISH_IND 0x1008
-#define DL_ESTABLISH_CNF 0x5008
-#define DL_RELEASE_IND 0x1108
-#define DL_RELEASE_CNF 0x5108
-#define DL_DATA_IND 0x3008
-#define DL_UNITDATA_IND 0x3108
-#define DL_INFORMATION_IND 0x0008
-
-/* intern layer 2 management */
-#define MDL_ASSIGN_REQ 0x1804
-#define MDL_ASSIGN_IND 0x1904
-#define MDL_REMOVE_REQ 0x1A04
-#define MDL_REMOVE_IND 0x1B04
-#define MDL_STATUS_UP_IND 0x1C04
-#define MDL_STATUS_DOWN_IND 0x1D04
-#define MDL_STATUS_UI_IND 0x1E04
-#define MDL_ERROR_IND 0x1F04
-#define MDL_ERROR_RSP 0x5F04
-
-/* DL_INFORMATION_IND types */
-#define DL_INFO_L2_CONNECT 0x0001
-#define DL_INFO_L2_REMOVED 0x0002
-
-/* PH_CONTROL types */
-/* TOUCH TONE IS 0x20XX XX "0"..."9", "A","B","C","D","*","#" */
-#define DTMF_TONE_VAL 0x2000
-#define DTMF_TONE_MASK 0x007F
-#define DTMF_TONE_START 0x2100
-#define DTMF_TONE_STOP 0x2200
-#define DTMF_HFC_COEF 0x4000
-#define DSP_CONF_JOIN 0x2403
-#define DSP_CONF_SPLIT 0x2404
-#define DSP_RECEIVE_OFF 0x2405
-#define DSP_RECEIVE_ON 0x2406
-#define DSP_ECHO_ON 0x2407
-#define DSP_ECHO_OFF 0x2408
-#define DSP_MIX_ON 0x2409
-#define DSP_MIX_OFF 0x240a
-#define DSP_DELAY 0x240b
-#define DSP_JITTER 0x240c
-#define DSP_TXDATA_ON 0x240d
-#define DSP_TXDATA_OFF 0x240e
-#define DSP_TX_DEJITTER 0x240f
-#define DSP_TX_DEJ_OFF 0x2410
-#define DSP_TONE_PATT_ON 0x2411
-#define DSP_TONE_PATT_OFF 0x2412
-#define DSP_VOL_CHANGE_TX 0x2413
-#define DSP_VOL_CHANGE_RX 0x2414
-#define DSP_BF_ENABLE_KEY 0x2415
-#define DSP_BF_DISABLE 0x2416
-#define DSP_BF_ACCEPT 0x2416
-#define DSP_BF_REJECT 0x2417
-#define DSP_PIPELINE_CFG 0x2418
-#define HFC_VOL_CHANGE_TX 0x2601
-#define HFC_VOL_CHANGE_RX 0x2602
-#define HFC_SPL_LOOP_ON 0x2603
-#define HFC_SPL_LOOP_OFF 0x2604
-/* for T30 FAX and analog modem */
-#define HW_MOD_FRM 0x4000
-#define HW_MOD_FRH 0x4001
-#define HW_MOD_FTM 0x4002
-#define HW_MOD_FTH 0x4003
-#define HW_MOD_FTS 0x4004
-#define HW_MOD_CONNECT 0x4010
-#define HW_MOD_OK 0x4011
-#define HW_MOD_NOCARR 0x4012
-#define HW_MOD_FCERROR 0x4013
-#define HW_MOD_READY 0x4014
-#define HW_MOD_LASTDATA 0x4015
-
-/* DSP_TONE_PATT_ON parameter */
-#define TONE_OFF 0x0000
-#define TONE_GERMAN_DIALTONE 0x0001
-#define TONE_GERMAN_OLDDIALTONE 0x0002
-#define TONE_AMERICAN_DIALTONE 0x0003
-#define TONE_GERMAN_DIALPBX 0x0004
-#define TONE_GERMAN_OLDDIALPBX 0x0005
-#define TONE_AMERICAN_DIALPBX 0x0006
-#define TONE_GERMAN_RINGING 0x0007
-#define TONE_GERMAN_OLDRINGING 0x0008
-#define TONE_AMERICAN_RINGPBX 0x000b
-#define TONE_GERMAN_RINGPBX 0x000c
-#define TONE_GERMAN_OLDRINGPBX 0x000d
-#define TONE_AMERICAN_RINGING 0x000e
-#define TONE_GERMAN_BUSY 0x000f
-#define TONE_GERMAN_OLDBUSY 0x0010
-#define TONE_AMERICAN_BUSY 0x0011
-#define TONE_GERMAN_HANGUP 0x0012
-#define TONE_GERMAN_OLDHANGUP 0x0013
-#define TONE_AMERICAN_HANGUP 0x0014
-#define TONE_SPECIAL_INFO 0x0015
-#define TONE_GERMAN_GASSENBESETZT 0x0016
-#define TONE_GERMAN_AUFSCHALTTON 0x0016
-
-/* MPH_INFORMATION_IND */
-#define L1_SIGNAL_LOS_OFF 0x0010
-#define L1_SIGNAL_LOS_ON 0x0011
-#define L1_SIGNAL_AIS_OFF 0x0012
-#define L1_SIGNAL_AIS_ON 0x0013
-#define L1_SIGNAL_RDI_OFF 0x0014
-#define L1_SIGNAL_RDI_ON 0x0015
-#define L1_SIGNAL_SLIP_RX 0x0020
-#define L1_SIGNAL_SLIP_TX 0x0021
-
-/*
- * protocol ids
- * D channel 1-31
- * B channel 33 - 63
- */
-
-#define ISDN_P_NONE 0
-#define ISDN_P_BASE 0
-#define ISDN_P_TE_S0 0x01
-#define ISDN_P_NT_S0 0x02
-#define ISDN_P_TE_E1 0x03
-#define ISDN_P_NT_E1 0x04
-#define ISDN_P_TE_UP0 0x05
-#define ISDN_P_NT_UP0 0x06
-
-#define IS_ISDN_P_TE(p) ((p == ISDN_P_TE_S0) || (p == ISDN_P_TE_E1) || \
- (p == ISDN_P_TE_UP0) || (p == ISDN_P_LAPD_TE))
-#define IS_ISDN_P_NT(p) ((p == ISDN_P_NT_S0) || (p == ISDN_P_NT_E1) || \
- (p == ISDN_P_NT_UP0) || (p == ISDN_P_LAPD_NT))
-#define IS_ISDN_P_S0(p) ((p == ISDN_P_TE_S0) || (p == ISDN_P_NT_S0))
-#define IS_ISDN_P_E1(p) ((p == ISDN_P_TE_E1) || (p == ISDN_P_NT_E1))
-#define IS_ISDN_P_UP0(p) ((p == ISDN_P_TE_UP0) || (p == ISDN_P_NT_UP0))
-
-
-#define ISDN_P_LAPD_TE 0x10
-#define ISDN_P_LAPD_NT 0x11
-
-#define ISDN_P_B_MASK 0x1f
-#define ISDN_P_B_START 0x20
-
-#define ISDN_P_B_RAW 0x21
-#define ISDN_P_B_HDLC 0x22
-#define ISDN_P_B_X75SLP 0x23
-#define ISDN_P_B_L2DTMF 0x24
-#define ISDN_P_B_L2DSP 0x25
-#define ISDN_P_B_L2DSPHDLC 0x26
-#define ISDN_P_B_T30_FAX 0x27
-#define ISDN_P_B_MODEM_ASYNC 0x28
-
-#define OPTION_L2_PMX 1
-#define OPTION_L2_PTP 2
-#define OPTION_L2_FIXEDTEI 3
-#define OPTION_L2_CLEANUP 4
-#define OPTION_L1_HOLD 5
-
-/* should be in sync with linux/kobject.h:KOBJ_NAME_LEN */
-#define MISDN_MAX_IDLEN 20
-
-struct mISDNhead {
- unsigned int prim;
- unsigned int id;
-} __packed;
-
-#define MISDN_HEADER_LEN sizeof(struct mISDNhead)
-#define MAX_DATA_SIZE 2048
-#define MAX_DATA_MEM (MAX_DATA_SIZE + MISDN_HEADER_LEN)
-#define MAX_DFRAME_LEN 260
-
-#define MISDN_ID_ADDR_MASK 0xFFFF
-#define MISDN_ID_TEI_MASK 0xFF00
-#define MISDN_ID_SAPI_MASK 0x00FF
-#define MISDN_ID_TEI_ANY 0x7F00
-
-#define MISDN_ID_ANY 0xFFFF
-#define MISDN_ID_NONE 0xFFFE
-
-#define GROUP_TEI 127
-#define TEI_SAPI 63
-#define CTRL_SAPI 0
-
-#define MISDN_MAX_CHANNEL 127
-#define MISDN_CHMAP_SIZE ((MISDN_MAX_CHANNEL + 1) >> 3)
-
-#define SOL_MISDN 0
-
-struct sockaddr_mISDN {
- sa_family_t family;
- unsigned char dev;
- unsigned char channel;
- unsigned char sapi;
- unsigned char tei;
-};
-
-struct mISDNversion {
- unsigned char major;
- unsigned char minor;
- unsigned short release;
-};
-
-struct mISDN_devinfo {
- u_int id;
- u_int Dprotocols;
- u_int Bprotocols;
- u_int protocol;
- u_char channelmap[MISDN_CHMAP_SIZE];
- u_int nrbchan;
- char name[MISDN_MAX_IDLEN];
-};
-
-struct mISDN_devrename {
- u_int id;
- char name[MISDN_MAX_IDLEN]; /* new name */
-};
-
-/* MPH_INFORMATION_REQ payload */
-struct ph_info_ch {
- __u32 protocol;
- __u64 Flags;
-};
-
-struct ph_info_dch {
- struct ph_info_ch ch;
- __u16 state;
- __u16 num_bch;
-};
-
-struct ph_info {
- struct ph_info_dch dch;
- struct ph_info_ch bch[];
-};
-
-/* timer device ioctl */
-#define IMADDTIMER _IOR('I', 64, int)
-#define IMDELTIMER _IOR('I', 65, int)
-
-/* socket ioctls */
-#define IMGETVERSION _IOR('I', 66, int)
-#define IMGETCOUNT _IOR('I', 67, int)
-#define IMGETDEVINFO _IOR('I', 68, int)
-#define IMCTRLREQ _IOR('I', 69, int)
-#define IMCLEAR_L2 _IOR('I', 70, int)
-#define IMSETDEVNAME _IOR('I', 71, struct mISDN_devrename)
-#define IMHOLD_L1 _IOR('I', 72, int)
-
-static inline int
-test_channelmap(u_int nr, u_char *map)
-{
- if (nr <= MISDN_MAX_CHANNEL)
- return map[nr >> 3] & (1 << (nr & 7));
- else
- return 0;
-}
-
-static inline void
-set_channelmap(u_int nr, u_char *map)
-{
- map[nr >> 3] |= (1 << (nr & 7));
-}
-
-static inline void
-clear_channelmap(u_int nr, u_char *map)
-{
- map[nr >> 3] &= ~(1 << (nr & 7));
-}
-
-/* CONTROL_CHANNEL parameters */
-#define MISDN_CTRL_GETOP 0x0000
-#define MISDN_CTRL_LOOP 0x0001
-#define MISDN_CTRL_CONNECT 0x0002
-#define MISDN_CTRL_DISCONNECT 0x0004
-#define MISDN_CTRL_PCMCONNECT 0x0010
-#define MISDN_CTRL_PCMDISCONNECT 0x0020
-#define MISDN_CTRL_SETPEER 0x0040
-#define MISDN_CTRL_UNSETPEER 0x0080
-#define MISDN_CTRL_RX_OFF 0x0100
-#define MISDN_CTRL_FILL_EMPTY 0x0200
-#define MISDN_CTRL_GETPEER 0x0400
-#define MISDN_CTRL_HW_FEATURES_OP 0x2000
-#define MISDN_CTRL_HW_FEATURES 0x2001
-#define MISDN_CTRL_HFC_OP 0x4000
-#define MISDN_CTRL_HFC_PCM_CONN 0x4001
-#define MISDN_CTRL_HFC_PCM_DISC 0x4002
-#define MISDN_CTRL_HFC_CONF_JOIN 0x4003
-#define MISDN_CTRL_HFC_CONF_SPLIT 0x4004
-#define MISDN_CTRL_HFC_RECEIVE_OFF 0x4005
-#define MISDN_CTRL_HFC_RECEIVE_ON 0x4006
-#define MISDN_CTRL_HFC_ECHOCAN_ON 0x4007
-#define MISDN_CTRL_HFC_ECHOCAN_OFF 0x4008
-#define MISDN_CTRL_HFC_WD_INIT 0x4009
-#define MISDN_CTRL_HFC_WD_RESET 0x400A
-
-/* socket options */
-#define MISDN_TIME_STAMP 0x0001
-
-struct mISDN_ctrl_req {
- int op;
- int channel;
- int p1;
- int p2;
-};
-
-/* muxer options */
-#define MISDN_OPT_ALL 1
-#define MISDN_OPT_TEIMGR 2
-
-#ifdef __KERNEL__
-#include <linux/list.h>
-#include <linux/skbuff.h>
-#include <linux/net.h>
-#include <net/sock.h>
-#include <linux/completion.h>
-
-#define DEBUG_CORE 0x000000ff
-#define DEBUG_CORE_FUNC 0x00000002
-#define DEBUG_SOCKET 0x00000004
-#define DEBUG_MANAGER 0x00000008
-#define DEBUG_SEND_ERR 0x00000010
-#define DEBUG_MSG_THREAD 0x00000020
-#define DEBUG_QUEUE_FUNC 0x00000040
-#define DEBUG_L1 0x0000ff00
-#define DEBUG_L1_FSM 0x00000200
-#define DEBUG_L2 0x00ff0000
-#define DEBUG_L2_FSM 0x00020000
-#define DEBUG_L2_CTRL 0x00040000
-#define DEBUG_L2_RECV 0x00080000
-#define DEBUG_L2_TEI 0x00100000
-#define DEBUG_L2_TEIFSM 0x00200000
-#define DEBUG_TIMER 0x01000000
-#define DEBUG_CLOCK 0x02000000
-
-#define mISDN_HEAD_P(s) ((struct mISDNhead *)&s->cb[0])
-#define mISDN_HEAD_PRIM(s) (((struct mISDNhead *)&s->cb[0])->prim)
-#define mISDN_HEAD_ID(s) (((struct mISDNhead *)&s->cb[0])->id)
-
-/* socket states */
-#define MISDN_OPEN 1
-#define MISDN_BOUND 2
-#define MISDN_CLOSED 3
-
-struct mISDNchannel;
-struct mISDNdevice;
-struct mISDNstack;
-struct mISDNclock;
-
-struct channel_req {
- u_int protocol;
- struct sockaddr_mISDN adr;
- struct mISDNchannel *ch;
-};
-
-typedef int (ctrl_func_t)(struct mISDNchannel *, u_int, void *);
-typedef int (send_func_t)(struct mISDNchannel *, struct sk_buff *);
-typedef int (create_func_t)(struct channel_req *);
-
-struct Bprotocol {
- struct list_head list;
- char *name;
- u_int Bprotocols;
- create_func_t *create;
-};
-
-struct mISDNchannel {
- struct list_head list;
- u_int protocol;
- u_int nr;
- u_long opt;
- u_int addr;
- struct mISDNstack *st;
- struct mISDNchannel *peer;
- send_func_t *send;
- send_func_t *recv;
- ctrl_func_t *ctrl;
-};
-
-struct mISDN_sock_list {
- struct hlist_head head;
- rwlock_t lock;
-};
-
-struct mISDN_sock {
- struct sock sk;
- struct mISDNchannel ch;
- u_int cmask;
- struct mISDNdevice *dev;
-};
-
-
-
-struct mISDNdevice {
- struct mISDNchannel D;
- u_int id;
- u_int Dprotocols;
- u_int Bprotocols;
- u_int nrbchan;
- u_char channelmap[MISDN_CHMAP_SIZE];
- struct list_head bchannels;
- struct mISDNchannel *teimgr;
- struct device dev;
-};
-
-struct mISDNstack {
- u_long status;
- struct mISDNdevice *dev;
- struct task_struct *thread;
- struct completion *notify;
- wait_queue_head_t workq;
- struct sk_buff_head msgq;
- struct list_head layer2;
- struct mISDNchannel *layer1;
- struct mISDNchannel own;
- struct mutex lmutex; /* protect lists */
- struct mISDN_sock_list l1sock;
-#ifdef MISDN_MSG_STATS
- u_int msg_cnt;
- u_int sleep_cnt;
- u_int stopped_cnt;
-#endif
-};
-
-typedef int (clockctl_func_t)(void *, int);
-
-struct mISDNclock {
- struct list_head list;
- char name[64];
- int pri;
- clockctl_func_t *ctl;
- void *priv;
-};
-
-/* global alloc/queue functions */
-
-static inline struct sk_buff *
-mI_alloc_skb(unsigned int len, gfp_t gfp_mask)
-{
- struct sk_buff *skb;
-
- skb = alloc_skb(len + MISDN_HEADER_LEN, gfp_mask);
- if (likely(skb))
- skb_reserve(skb, MISDN_HEADER_LEN);
- return skb;
-}
-
-static inline struct sk_buff *
-_alloc_mISDN_skb(u_int prim, u_int id, u_int len, void *dp, gfp_t gfp_mask)
-{
- struct sk_buff *skb = mI_alloc_skb(len, gfp_mask);
- struct mISDNhead *hh;
-
- if (!skb)
- return NULL;
- if (len)
- memcpy(skb_put(skb, len), dp, len);
- hh = mISDN_HEAD_P(skb);
- hh->prim = prim;
- hh->id = id;
- return skb;
-}
-
-static inline void
-_queue_data(struct mISDNchannel *ch, u_int prim,
- u_int id, u_int len, void *dp, gfp_t gfp_mask)
-{
- struct sk_buff *skb;
-
- if (!ch->peer)
- return;
- skb = _alloc_mISDN_skb(prim, id, len, dp, gfp_mask);
- if (!skb)
- return;
- if (ch->recv(ch->peer, skb))
- dev_kfree_skb(skb);
-}
-
-/* global register/unregister functions */
-
-extern int mISDN_register_device(struct mISDNdevice *,
- struct device *parent, char *name);
-extern void mISDN_unregister_device(struct mISDNdevice *);
-extern int mISDN_register_Bprotocol(struct Bprotocol *);
-extern void mISDN_unregister_Bprotocol(struct Bprotocol *);
-extern struct mISDNclock *mISDN_register_clock(char *, int, clockctl_func_t *,
- void *);
-extern void mISDN_unregister_clock(struct mISDNclock *);
-
-static inline struct mISDNdevice *dev_to_mISDN(struct device *dev)
-{
- if (dev)
- return dev_get_drvdata(dev);
- else
- return NULL;
-}
-
-extern void set_channel_address(struct mISDNchannel *, u_int, u_int);
-extern void mISDN_clock_update(struct mISDNclock *, int, struct timeval *);
-extern unsigned short mISDN_clock_get(void);
-
-#endif /* __KERNEL__ */
-#endif /* mISDNIF_H */
diff --git a/ANDROID_3.4.5/include/linux/magic.h b/ANDROID_3.4.5/include/linux/magic.h
deleted file mode 100644
index e15192cb..00000000
--- a/ANDROID_3.4.5/include/linux/magic.h
+++ /dev/null
@@ -1,72 +0,0 @@
-#ifndef __LINUX_MAGIC_H__
-#define __LINUX_MAGIC_H__
-
-#define ADFS_SUPER_MAGIC 0xadf5
-#define AFFS_SUPER_MAGIC 0xadff
-#define AFS_SUPER_MAGIC 0x5346414F
-#define AUTOFS_SUPER_MAGIC 0x0187
-#define CODA_SUPER_MAGIC 0x73757245
-#define CRAMFS_MAGIC 0x28cd3d45 /* some random number */
-#define CRAMFS_MAGIC_WEND 0x453dcd28 /* magic number with the wrong endianess */
-#define DEBUGFS_MAGIC 0x64626720
-#define SECURITYFS_MAGIC 0x73636673
-#define SELINUX_MAGIC 0xf97cff8c
-#define RAMFS_MAGIC 0x858458f6 /* some random number */
-#define TMPFS_MAGIC 0x01021994
-#define HUGETLBFS_MAGIC 0x958458f6 /* some random number */
-#define SQUASHFS_MAGIC 0x73717368
-#define ECRYPTFS_SUPER_MAGIC 0xf15f
-#define EFS_SUPER_MAGIC 0x414A53
-#define EXT2_SUPER_MAGIC 0xEF53
-#define EXT3_SUPER_MAGIC 0xEF53
-#define XENFS_SUPER_MAGIC 0xabba1974
-#define EXT4_SUPER_MAGIC 0xEF53
-#define BTRFS_SUPER_MAGIC 0x9123683E
-#define NILFS_SUPER_MAGIC 0x3434
-#define HPFS_SUPER_MAGIC 0xf995e849
-#define ISOFS_SUPER_MAGIC 0x9660
-#define JFFS2_SUPER_MAGIC 0x72b6
-#define PSTOREFS_MAGIC 0x6165676C
-
-#define MINIX_SUPER_MAGIC 0x137F /* minix v1 fs, 14 char names */
-#define MINIX_SUPER_MAGIC2 0x138F /* minix v1 fs, 30 char names */
-#define MINIX2_SUPER_MAGIC 0x2468 /* minix v2 fs, 14 char names */
-#define MINIX2_SUPER_MAGIC2 0x2478 /* minix v2 fs, 30 char names */
-#define MINIX3_SUPER_MAGIC 0x4d5a /* minix v3 fs, 60 char names */
-
-#define MSDOS_SUPER_MAGIC 0x4d44 /* MD */
-#define NCP_SUPER_MAGIC 0x564c /* Guess, what 0x564c is :-) */
-#define NFS_SUPER_MAGIC 0x6969
-#define OPENPROM_SUPER_MAGIC 0x9fa1
-#define QNX4_SUPER_MAGIC 0x002f /* qnx4 fs detection */
-#define QNX6_SUPER_MAGIC 0x68191122 /* qnx6 fs detection */
-
-#define REISERFS_SUPER_MAGIC 0x52654973 /* used by gcc */
- /* used by file system utilities that
- look at the superblock, etc. */
-#define REISERFS_SUPER_MAGIC_STRING "ReIsErFs"
-#define REISER2FS_SUPER_MAGIC_STRING "ReIsEr2Fs"
-#define REISER2FS_JR_SUPER_MAGIC_STRING "ReIsEr3Fs"
-
-#define SMB_SUPER_MAGIC 0x517B
-#define CGROUP_SUPER_MAGIC 0x27e0eb
-
-
-#define STACK_END_MAGIC 0x57AC6E9D
-
-#define V9FS_MAGIC 0x01021997
-
-#define BDEVFS_MAGIC 0x62646576
-#define BINFMTFS_MAGIC 0x42494e4d
-#define DEVPTS_SUPER_MAGIC 0x1cd1
-#define FUTEXFS_SUPER_MAGIC 0xBAD1DEA
-#define PIPEFS_MAGIC 0x50495045
-#define PROC_SUPER_MAGIC 0x9fa0
-#define SOCKFS_MAGIC 0x534F434B
-#define SYSFS_MAGIC 0x62656572
-#define USBDEVICE_SUPER_MAGIC 0x9fa2
-#define MTD_INODE_FS_MAGIC 0x11307854
-#define ANON_INODE_FS_MAGIC 0x09041934
-
-
-#endif /* __LINUX_MAGIC_H__ */
diff --git a/ANDROID_3.4.5/include/linux/major.h b/ANDROID_3.4.5/include/linux/major.h
deleted file mode 100644
index 14706398..00000000
--- a/ANDROID_3.4.5/include/linux/major.h
+++ /dev/null
@@ -1,184 +0,0 @@
-#ifndef _LINUX_MAJOR_H
-#define _LINUX_MAJOR_H
-
-/*
- * This file has definitions for major device numbers.
- * For the device number assignments, see Documentation/devices.txt.
- */
-
-#define UNNAMED_MAJOR 0
-#define MEM_MAJOR 1
-#define RAMDISK_MAJOR 1
-#define FLOPPY_MAJOR 2
-#define PTY_MASTER_MAJOR 2
-#define IDE0_MAJOR 3
-#define HD_MAJOR IDE0_MAJOR
-#define PTY_SLAVE_MAJOR 3
-#define TTY_MAJOR 4
-#define TTYAUX_MAJOR 5
-#define LP_MAJOR 6
-#define VCS_MAJOR 7
-#define LOOP_MAJOR 7
-#define SCSI_DISK0_MAJOR 8
-#define SCSI_TAPE_MAJOR 9
-#define MD_MAJOR 9
-#define MISC_MAJOR 10
-#define SCSI_CDROM_MAJOR 11
-#define MUX_MAJOR 11 /* PA-RISC only */
-#define XT_DISK_MAJOR 13
-#define INPUT_MAJOR 13
-#define SOUND_MAJOR 14
-#define CDU31A_CDROM_MAJOR 15
-#define JOYSTICK_MAJOR 15
-#define GOLDSTAR_CDROM_MAJOR 16
-#define OPTICS_CDROM_MAJOR 17
-#define SANYO_CDROM_MAJOR 18
-#define CYCLADES_MAJOR 19
-#define CYCLADESAUX_MAJOR 20
-#define MITSUMI_X_CDROM_MAJOR 20
-#define MFM_ACORN_MAJOR 21 /* ARM Linux /dev/mfm */
-#define SCSI_GENERIC_MAJOR 21
-#define IDE1_MAJOR 22
-#define DIGICU_MAJOR 22
-#define DIGI_MAJOR 23
-#define MITSUMI_CDROM_MAJOR 23
-#define CDU535_CDROM_MAJOR 24
-#define STL_SERIALMAJOR 24
-#define MATSUSHITA_CDROM_MAJOR 25
-#define STL_CALLOUTMAJOR 25
-#define MATSUSHITA_CDROM2_MAJOR 26
-#define QIC117_TAPE_MAJOR 27
-#define MATSUSHITA_CDROM3_MAJOR 27
-#define MATSUSHITA_CDROM4_MAJOR 28
-#define STL_SIOMEMMAJOR 28
-#define ACSI_MAJOR 28
-#define AZTECH_CDROM_MAJOR 29
-#define FB_MAJOR 29 /* /dev/fb* framebuffers */
-#define CM206_CDROM_MAJOR 32
-#define IDE2_MAJOR 33
-#define IDE3_MAJOR 34
-#define Z8530_MAJOR 34
-#define XPRAM_MAJOR 35 /* Expanded storage on S/390: "slow ram"*/
-#define NETLINK_MAJOR 36
-#define PS2ESDI_MAJOR 36
-#define IDETAPE_MAJOR 37
-#define Z2RAM_MAJOR 37
-#define APBLOCK_MAJOR 38 /* AP1000 Block device */
-#define DDV_MAJOR 39 /* AP1000 DDV block device */
-#define NBD_MAJOR 43 /* Network block device */
-#define RISCOM8_NORMAL_MAJOR 48
-#define DAC960_MAJOR 48 /* 48..55 */
-#define RISCOM8_CALLOUT_MAJOR 49
-#define MKISS_MAJOR 55
-#define DSP56K_MAJOR 55 /* DSP56001 processor device */
-
-#define IDE4_MAJOR 56
-#define IDE5_MAJOR 57
-
-#define SCSI_DISK1_MAJOR 65
-#define SCSI_DISK2_MAJOR 66
-#define SCSI_DISK3_MAJOR 67
-#define SCSI_DISK4_MAJOR 68
-#define SCSI_DISK5_MAJOR 69
-#define SCSI_DISK6_MAJOR 70
-#define SCSI_DISK7_MAJOR 71
-
-#define COMPAQ_SMART2_MAJOR 72
-#define COMPAQ_SMART2_MAJOR1 73
-#define COMPAQ_SMART2_MAJOR2 74
-#define COMPAQ_SMART2_MAJOR3 75
-#define COMPAQ_SMART2_MAJOR4 76
-#define COMPAQ_SMART2_MAJOR5 77
-#define COMPAQ_SMART2_MAJOR6 78
-#define COMPAQ_SMART2_MAJOR7 79
-
-#define SPECIALIX_NORMAL_MAJOR 75
-#define SPECIALIX_CALLOUT_MAJOR 76
-
-#define AURORA_MAJOR 79
-
-#define I2O_MAJOR 80 /* 80->87 */
-
-#define SHMIQ_MAJOR 85 /* Linux/mips, SGI /dev/shmiq */
-#define SCSI_CHANGER_MAJOR 86
-
-#define IDE6_MAJOR 88
-#define IDE7_MAJOR 89
-#define IDE8_MAJOR 90
-#define IDE9_MAJOR 91
-
-#define DASD_MAJOR 94
-
-#define MDISK_MAJOR 95
-
-#define UBD_MAJOR 98
-
-#define PP_MAJOR 99
-#define JSFD_MAJOR 99
-
-#define PHONE_MAJOR 100
-
-#define COMPAQ_CISS_MAJOR 104
-#define COMPAQ_CISS_MAJOR1 105
-#define COMPAQ_CISS_MAJOR2 106
-#define COMPAQ_CISS_MAJOR3 107
-#define COMPAQ_CISS_MAJOR4 108
-#define COMPAQ_CISS_MAJOR5 109
-#define COMPAQ_CISS_MAJOR6 110
-#define COMPAQ_CISS_MAJOR7 111
-
-#define VIODASD_MAJOR 112
-#define VIOCD_MAJOR 113
-
-#define ATARAID_MAJOR 114
-
-#define SCSI_DISK8_MAJOR 128
-#define SCSI_DISK9_MAJOR 129
-#define SCSI_DISK10_MAJOR 130
-#define SCSI_DISK11_MAJOR 131
-#define SCSI_DISK12_MAJOR 132
-#define SCSI_DISK13_MAJOR 133
-#define SCSI_DISK14_MAJOR 134
-#define SCSI_DISK15_MAJOR 135
-
-#define UNIX98_PTY_MASTER_MAJOR 128
-#define UNIX98_PTY_MAJOR_COUNT 8
-#define UNIX98_PTY_SLAVE_MAJOR (UNIX98_PTY_MASTER_MAJOR+UNIX98_PTY_MAJOR_COUNT)
-
-#define DRBD_MAJOR 147
-#define RTF_MAJOR 150
-#define RAW_MAJOR 162
-
-#define USB_ACM_MAJOR 166
-#define USB_ACM_AUX_MAJOR 167
-#define USB_CHAR_MAJOR 180
-
-#define MMC_BLOCK_MAJOR 179
-
-#define VXVM_MAJOR 199 /* VERITAS volume i/o driver */
-#define VXSPEC_MAJOR 200 /* VERITAS volume config driver */
-#define VXDMP_MAJOR 201 /* VERITAS volume multipath driver */
-
-#define XENVBD_MAJOR 202 /* Xen virtual block device */
-
-#define MSR_MAJOR 202
-#define CPUID_MAJOR 203
-
-#define OSST_MAJOR 206 /* OnStream-SCx0 SCSI tape */
-
-#define IBM_TTY3270_MAJOR 227
-#define IBM_FS3270_MAJOR 228
-
-#define VIOTAPE_MAJOR 230
-
-#define VD_MAJOR 236 /* For all Video Decoders & Encoders */
-#define CIPHER_MAJOR 238 /* For security engine */
-
-#define VID_MAJOR 241 /* For CMOS driver */
-#define MB_MAJOR 242 /* For WMT Memory Block driver */
-
-#define BLOCK_EXT_MAJOR 259
-#define SCSI_OSD_MAJOR 260 /* open-osd's OSD scsi device */
-#define CEC_MAJOR 261 /* for WMT HDMI CEC driver*/
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/map_to_7segment.h b/ANDROID_3.4.5/include/linux/map_to_7segment.h
deleted file mode 100644
index 12d62a54..00000000
--- a/ANDROID_3.4.5/include/linux/map_to_7segment.h
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * Copyright (c) 2005 Henk Vergonet <Henk.Vergonet@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
- */
-
-#ifndef MAP_TO_7SEGMENT_H
-#define MAP_TO_7SEGMENT_H
-
-/* This file provides translation primitives and tables for the conversion
- * of (ASCII) characters to a 7-segments notation.
- *
- * The 7 segment's wikipedia notation below is used as standard.
- * See: http://en.wikipedia.org/wiki/Seven_segment_display
- *
- * Notation: +-a-+
- * f b
- * +-g-+
- * e c
- * +-d-+
- *
- * Usage:
- *
- * Register a map variable, and fill it with a character set:
- * static SEG7_DEFAULT_MAP(map_seg7);
- *
- *
- * Then use for conversion:
- * seg7 = map_to_seg7(&map_seg7, some_char);
- * ...
- *
- * In device drivers it is recommended, if required, to make the char map
- * accessible via the sysfs interface using the following scheme:
- *
- * static ssize_t show_map(struct device *dev, char *buf) {
- * memcpy(buf, &map_seg7, sizeof(map_seg7));
- * return sizeof(map_seg7);
- * }
- * static ssize_t store_map(struct device *dev, const char *buf, size_t cnt) {
- * if(cnt != sizeof(map_seg7))
- * return -EINVAL;
- * memcpy(&map_seg7, buf, cnt);
- * return cnt;
- * }
- * static DEVICE_ATTR(map_seg7, PERMS_RW, show_map, store_map);
- *
- * History:
- * 2005-05-31 RFC linux-kernel@vger.kernel.org
- */
-#include <linux/errno.h>
-
-
-#define BIT_SEG7_A 0
-#define BIT_SEG7_B 1
-#define BIT_SEG7_C 2
-#define BIT_SEG7_D 3
-#define BIT_SEG7_E 4
-#define BIT_SEG7_F 5
-#define BIT_SEG7_G 6
-#define BIT_SEG7_RESERVED 7
-
-struct seg7_conversion_map {
- unsigned char table[128];
-};
-
-static __inline__ int map_to_seg7(struct seg7_conversion_map *map, int c)
-{
- return c >= 0 && c < sizeof(map->table) ? map->table[c] : -EINVAL;
-}
-
-#define SEG7_CONVERSION_MAP(_name, _map) \
- struct seg7_conversion_map _name = { .table = { _map } }
-
-/*
- * It is recommended to use a facility that allows user space to redefine
- * custom character sets for LCD devices. Please use a sysfs interface
- * as described above.
- */
-#define MAP_TO_SEG7_SYSFS_FILE "map_seg7"
-
-/*******************************************************************************
- * ASCII conversion table
- ******************************************************************************/
-
-#define _SEG7(l,a,b,c,d,e,f,g) \
- ( a<<BIT_SEG7_A | b<<BIT_SEG7_B | c<<BIT_SEG7_C | d<<BIT_SEG7_D | \
- e<<BIT_SEG7_E | f<<BIT_SEG7_F | g<<BIT_SEG7_G )
-
-#define _MAP_0_32_ASCII_SEG7_NON_PRINTABLE \
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-#define _MAP_33_47_ASCII_SEG7_SYMBOL \
- _SEG7('!',0,0,0,0,1,1,0), _SEG7('"',0,1,0,0,0,1,0), _SEG7('#',0,1,1,0,1,1,0),\
- _SEG7('$',1,0,1,1,0,1,1), _SEG7('%',0,0,1,0,0,1,0), _SEG7('&',1,0,1,1,1,1,1),\
- _SEG7('\'',0,0,0,0,0,1,0),_SEG7('(',1,0,0,1,1,1,0), _SEG7(')',1,1,1,1,0,0,0),\
- _SEG7('*',0,1,1,0,1,1,1), _SEG7('+',0,1,1,0,0,0,1), _SEG7(',',0,0,0,0,1,0,0),\
- _SEG7('-',0,0,0,0,0,0,1), _SEG7('.',0,0,0,0,1,0,0), _SEG7('/',0,1,0,0,1,0,1),
-
-#define _MAP_48_57_ASCII_SEG7_NUMERIC \
- _SEG7('0',1,1,1,1,1,1,0), _SEG7('1',0,1,1,0,0,0,0), _SEG7('2',1,1,0,1,1,0,1),\
- _SEG7('3',1,1,1,1,0,0,1), _SEG7('4',0,1,1,0,0,1,1), _SEG7('5',1,0,1,1,0,1,1),\
- _SEG7('6',1,0,1,1,1,1,1), _SEG7('7',1,1,1,0,0,0,0), _SEG7('8',1,1,1,1,1,1,1),\
- _SEG7('9',1,1,1,1,0,1,1),
-
-#define _MAP_58_64_ASCII_SEG7_SYMBOL \
- _SEG7(':',0,0,0,1,0,0,1), _SEG7(';',0,0,0,1,0,0,1), _SEG7('<',1,0,0,0,0,1,1),\
- _SEG7('=',0,0,0,1,0,0,1), _SEG7('>',1,1,0,0,0,0,1), _SEG7('?',1,1,1,0,0,1,0),\
- _SEG7('@',1,1,0,1,1,1,1),
-
-#define _MAP_65_90_ASCII_SEG7_ALPHA_UPPR \
- _SEG7('A',1,1,1,0,1,1,1), _SEG7('B',1,1,1,1,1,1,1), _SEG7('C',1,0,0,1,1,1,0),\
- _SEG7('D',1,1,1,1,1,1,0), _SEG7('E',1,0,0,1,1,1,1), _SEG7('F',1,0,0,0,1,1,1),\
- _SEG7('G',1,1,1,1,0,1,1), _SEG7('H',0,1,1,0,1,1,1), _SEG7('I',0,1,1,0,0,0,0),\
- _SEG7('J',0,1,1,1,0,0,0), _SEG7('K',0,1,1,0,1,1,1), _SEG7('L',0,0,0,1,1,1,0),\
- _SEG7('M',1,1,1,0,1,1,0), _SEG7('N',1,1,1,0,1,1,0), _SEG7('O',1,1,1,1,1,1,0),\
- _SEG7('P',1,1,0,0,1,1,1), _SEG7('Q',1,1,1,1,1,1,0), _SEG7('R',1,1,1,0,1,1,1),\
- _SEG7('S',1,0,1,1,0,1,1), _SEG7('T',0,0,0,1,1,1,1), _SEG7('U',0,1,1,1,1,1,0),\
- _SEG7('V',0,1,1,1,1,1,0), _SEG7('W',0,1,1,1,1,1,1), _SEG7('X',0,1,1,0,1,1,1),\
- _SEG7('Y',0,1,1,0,0,1,1), _SEG7('Z',1,1,0,1,1,0,1),
-
-#define _MAP_91_96_ASCII_SEG7_SYMBOL \
- _SEG7('[',1,0,0,1,1,1,0), _SEG7('\\',0,0,1,0,0,1,1),_SEG7(']',1,1,1,1,0,0,0),\
- _SEG7('^',1,1,0,0,0,1,0), _SEG7('_',0,0,0,1,0,0,0), _SEG7('`',0,1,0,0,0,0,0),
-
-#define _MAP_97_122_ASCII_SEG7_ALPHA_LOWER \
- _SEG7('A',1,1,1,0,1,1,1), _SEG7('b',0,0,1,1,1,1,1), _SEG7('c',0,0,0,1,1,0,1),\
- _SEG7('d',0,1,1,1,1,0,1), _SEG7('E',1,0,0,1,1,1,1), _SEG7('F',1,0,0,0,1,1,1),\
- _SEG7('G',1,1,1,1,0,1,1), _SEG7('h',0,0,1,0,1,1,1), _SEG7('i',0,0,1,0,0,0,0),\
- _SEG7('j',0,0,1,1,0,0,0), _SEG7('k',0,0,1,0,1,1,1), _SEG7('L',0,0,0,1,1,1,0),\
- _SEG7('M',1,1,1,0,1,1,0), _SEG7('n',0,0,1,0,1,0,1), _SEG7('o',0,0,1,1,1,0,1),\
- _SEG7('P',1,1,0,0,1,1,1), _SEG7('q',1,1,1,0,0,1,1), _SEG7('r',0,0,0,0,1,0,1),\
- _SEG7('S',1,0,1,1,0,1,1), _SEG7('T',0,0,0,1,1,1,1), _SEG7('u',0,0,1,1,1,0,0),\
- _SEG7('v',0,0,1,1,1,0,0), _SEG7('W',0,1,1,1,1,1,1), _SEG7('X',0,1,1,0,1,1,1),\
- _SEG7('y',0,1,1,1,0,1,1), _SEG7('Z',1,1,0,1,1,0,1),
-
-#define _MAP_123_126_ASCII_SEG7_SYMBOL \
- _SEG7('{',1,0,0,1,1,1,0), _SEG7('|',0,0,0,0,1,1,0), _SEG7('}',1,1,1,1,0,0,0),\
- _SEG7('~',1,0,0,0,0,0,0),
-
-/* Maps */
-
-/* This set tries to map as close as possible to the visible characteristics
- * of the ASCII symbol, lowercase and uppercase letters may differ in
- * presentation on the display.
- */
-#define MAP_ASCII7SEG_ALPHANUM \
- _MAP_0_32_ASCII_SEG7_NON_PRINTABLE \
- _MAP_33_47_ASCII_SEG7_SYMBOL \
- _MAP_48_57_ASCII_SEG7_NUMERIC \
- _MAP_58_64_ASCII_SEG7_SYMBOL \
- _MAP_65_90_ASCII_SEG7_ALPHA_UPPR \
- _MAP_91_96_ASCII_SEG7_SYMBOL \
- _MAP_97_122_ASCII_SEG7_ALPHA_LOWER \
- _MAP_123_126_ASCII_SEG7_SYMBOL
-
-/* This set tries to map as close as possible to the symbolic characteristics
- * of the ASCII character for maximum discrimination.
- * For now this means all alpha chars are in lower case representations.
- * (This for example facilitates the use of hex numbers with uppercase input.)
- */
-#define MAP_ASCII7SEG_ALPHANUM_LC \
- _MAP_0_32_ASCII_SEG7_NON_PRINTABLE \
- _MAP_33_47_ASCII_SEG7_SYMBOL \
- _MAP_48_57_ASCII_SEG7_NUMERIC \
- _MAP_58_64_ASCII_SEG7_SYMBOL \
- _MAP_97_122_ASCII_SEG7_ALPHA_LOWER \
- _MAP_91_96_ASCII_SEG7_SYMBOL \
- _MAP_97_122_ASCII_SEG7_ALPHA_LOWER \
- _MAP_123_126_ASCII_SEG7_SYMBOL
-
-#define SEG7_DEFAULT_MAP(_name) \
- SEG7_CONVERSION_MAP(_name,MAP_ASCII7SEG_ALPHANUM)
-
-#endif /* MAP_TO_7SEGMENT_H */
-
diff --git a/ANDROID_3.4.5/include/linux/maple.h b/ANDROID_3.4.5/include/linux/maple.h
deleted file mode 100644
index c37288b2..00000000
--- a/ANDROID_3.4.5/include/linux/maple.h
+++ /dev/null
@@ -1,105 +0,0 @@
-#ifndef __LINUX_MAPLE_H
-#define __LINUX_MAPLE_H
-
-#include <mach/maple.h>
-
-struct device;
-extern struct bus_type maple_bus_type;
-
-/* Maple Bus command and response codes */
-enum maple_code {
- MAPLE_RESPONSE_FILEERR = -5,
- MAPLE_RESPONSE_AGAIN, /* retransmit */
- MAPLE_RESPONSE_BADCMD,
- MAPLE_RESPONSE_BADFUNC,
- MAPLE_RESPONSE_NONE, /* unit didn't respond*/
- MAPLE_COMMAND_DEVINFO = 1,
- MAPLE_COMMAND_ALLINFO,
- MAPLE_COMMAND_RESET,
- MAPLE_COMMAND_KILL,
- MAPLE_RESPONSE_DEVINFO,
- MAPLE_RESPONSE_ALLINFO,
- MAPLE_RESPONSE_OK,
- MAPLE_RESPONSE_DATATRF,
- MAPLE_COMMAND_GETCOND,
- MAPLE_COMMAND_GETMINFO,
- MAPLE_COMMAND_BREAD,
- MAPLE_COMMAND_BWRITE,
- MAPLE_COMMAND_BSYNC,
- MAPLE_COMMAND_SETCOND,
- MAPLE_COMMAND_MICCONTROL
-};
-
-enum maple_file_errors {
- MAPLE_FILEERR_INVALID_PARTITION = 0x01000000,
- MAPLE_FILEERR_PHASE_ERROR = 0x02000000,
- MAPLE_FILEERR_INVALID_BLOCK = 0x04000000,
- MAPLE_FILEERR_WRITE_ERROR = 0x08000000,
- MAPLE_FILEERR_INVALID_WRITE_LENGTH = 0x10000000,
- MAPLE_FILEERR_BAD_CRC = 0x20000000
-};
-
-struct maple_buffer {
- char bufx[0x400];
- void *buf;
-};
-
-struct mapleq {
- struct list_head list;
- struct maple_device *dev;
- struct maple_buffer *recvbuf;
- void *sendbuf, *recvbuf_p2;
- unsigned char length;
- enum maple_code command;
-};
-
-struct maple_devinfo {
- unsigned long function;
- unsigned long function_data[3];
- unsigned char area_code;
- unsigned char connector_direction;
- char product_name[31];
- char product_licence[61];
- unsigned short standby_power;
- unsigned short max_power;
-};
-
-struct maple_device {
- struct maple_driver *driver;
- struct mapleq *mq;
- void (*callback) (struct mapleq * mq);
- void (*fileerr_handler)(struct maple_device *mdev, void *recvbuf);
- int (*can_unload)(struct maple_device *mdev);
- unsigned long when, interval, function;
- struct maple_devinfo devinfo;
- unsigned char port, unit;
- char product_name[32];
- char product_licence[64];
- atomic_t busy;
- wait_queue_head_t maple_wait;
- struct device dev;
-};
-
-struct maple_driver {
- unsigned long function;
- struct device_driver drv;
-};
-
-void maple_getcond_callback(struct maple_device *dev,
- void (*callback) (struct mapleq * mq),
- unsigned long interval,
- unsigned long function);
-int maple_driver_register(struct maple_driver *);
-void maple_driver_unregister(struct maple_driver *);
-
-int maple_add_packet(struct maple_device *mdev, u32 function,
- u32 command, u32 length, void *data);
-void maple_clear_dev(struct maple_device *mdev);
-
-#define to_maple_dev(n) container_of(n, struct maple_device, dev)
-#define to_maple_driver(n) container_of(n, struct maple_driver, drv)
-
-#define maple_get_drvdata(d) dev_get_drvdata(&(d)->dev)
-#define maple_set_drvdata(d,p) dev_set_drvdata(&(d)->dev, (p))
-
-#endif /* __LINUX_MAPLE_H */
diff --git a/ANDROID_3.4.5/include/linux/marvell_phy.h b/ANDROID_3.4.5/include/linux/marvell_phy.h
deleted file mode 100644
index dd3c34eb..00000000
--- a/ANDROID_3.4.5/include/linux/marvell_phy.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef _MARVELL_PHY_H
-#define _MARVELL_PHY_H
-
-/* Mask used for ID comparisons */
-#define MARVELL_PHY_ID_MASK 0xfffffff0
-
-/* Known PHY IDs */
-#define MARVELL_PHY_ID_88E1101 0x01410c60
-#define MARVELL_PHY_ID_88E1112 0x01410c90
-#define MARVELL_PHY_ID_88E1111 0x01410cc0
-#define MARVELL_PHY_ID_88E1118 0x01410e10
-#define MARVELL_PHY_ID_88E1121R 0x01410cb0
-#define MARVELL_PHY_ID_88E1145 0x01410cd0
-#define MARVELL_PHY_ID_88E1149R 0x01410e50
-#define MARVELL_PHY_ID_88E1240 0x01410e30
-#define MARVELL_PHY_ID_88E1318S 0x01410e90
-
-/* struct phy_device dev_flags definitions */
-#define MARVELL_PHY_M1145_FLAGS_RESISTANCE 0x00000001
-#define MARVELL_PHY_M1118_DNS323_LEDS 0x00000002
-
-#endif /* _MARVELL_PHY_H */
diff --git a/ANDROID_3.4.5/include/linux/math64.h b/ANDROID_3.4.5/include/linux/math64.h
deleted file mode 100644
index b8ba8554..00000000
--- a/ANDROID_3.4.5/include/linux/math64.h
+++ /dev/null
@@ -1,121 +0,0 @@
-#ifndef _LINUX_MATH64_H
-#define _LINUX_MATH64_H
-
-#include <linux/types.h>
-#include <asm/div64.h>
-
-#if BITS_PER_LONG == 64
-
-#define div64_long(x,y) div64_s64((x),(y))
-
-/**
- * div_u64_rem - unsigned 64bit divide with 32bit divisor with remainder
- *
- * This is commonly provided by 32bit archs to provide an optimized 64bit
- * divide.
- */
-static inline u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
-{
- *remainder = dividend % divisor;
- return dividend / divisor;
-}
-
-/**
- * div_s64_rem - signed 64bit divide with 32bit divisor with remainder
- */
-static inline s64 div_s64_rem(s64 dividend, s32 divisor, s32 *remainder)
-{
- *remainder = dividend % divisor;
- return dividend / divisor;
-}
-
-/**
- * div64_u64 - unsigned 64bit divide with 64bit divisor
- */
-static inline u64 div64_u64(u64 dividend, u64 divisor)
-{
- return dividend / divisor;
-}
-
-/**
- * div64_s64 - signed 64bit divide with 64bit divisor
- */
-static inline s64 div64_s64(s64 dividend, s64 divisor)
-{
- return dividend / divisor;
-}
-
-#elif BITS_PER_LONG == 32
-
-#define div64_long(x,y) div_s64((x),(y))
-
-#ifndef div_u64_rem
-static inline u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
-{
- *remainder = do_div(dividend, divisor);
- return dividend;
-}
-#endif
-
-#ifndef div_s64_rem
-extern s64 div_s64_rem(s64 dividend, s32 divisor, s32 *remainder);
-#endif
-
-#ifndef div64_u64
-extern u64 div64_u64(u64 dividend, u64 divisor);
-#endif
-
-#ifndef div64_s64
-extern s64 div64_s64(s64 dividend, s64 divisor);
-#endif
-
-#endif /* BITS_PER_LONG */
-
-/**
- * div_u64 - unsigned 64bit divide with 32bit divisor
- *
- * This is the most common 64bit divide and should be used if possible,
- * as many 32bit archs can optimize this variant better than a full 64bit
- * divide.
- */
-#ifndef div_u64
-static inline u64 div_u64(u64 dividend, u32 divisor)
-{
- u32 remainder;
- return div_u64_rem(dividend, divisor, &remainder);
-}
-#endif
-
-/**
- * div_s64 - signed 64bit divide with 32bit divisor
- */
-#ifndef div_s64
-static inline s64 div_s64(s64 dividend, s32 divisor)
-{
- s32 remainder;
- return div_s64_rem(dividend, divisor, &remainder);
-}
-#endif
-
-u32 iter_div_u64_rem(u64 dividend, u32 divisor, u64 *remainder);
-
-static __always_inline u32
-__iter_div_u64_rem(u64 dividend, u32 divisor, u64 *remainder)
-{
- u32 ret = 0;
-
- while (dividend >= divisor) {
- /* The following asm() prevents the compiler from
- optimising this loop into a modulo operation. */
- asm("" : "+rm"(dividend));
-
- dividend -= divisor;
- ret++;
- }
-
- *remainder = dividend;
-
- return ret;
-}
-
-#endif /* _LINUX_MATH64_H */
diff --git a/ANDROID_3.4.5/include/linux/matroxfb.h b/ANDROID_3.4.5/include/linux/matroxfb.h
deleted file mode 100644
index 8c22a893..00000000
--- a/ANDROID_3.4.5/include/linux/matroxfb.h
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef __LINUX_MATROXFB_H__
-#define __LINUX_MATROXFB_H__
-
-#include <asm/ioctl.h>
-#include <linux/types.h>
-#include <linux/videodev2.h>
-#include <linux/fb.h>
-
-struct matroxioc_output_mode {
- __u32 output; /* which output */
-#define MATROXFB_OUTPUT_PRIMARY 0x0000
-#define MATROXFB_OUTPUT_SECONDARY 0x0001
-#define MATROXFB_OUTPUT_DFP 0x0002
- __u32 mode; /* which mode */
-#define MATROXFB_OUTPUT_MODE_PAL 0x0001
-#define MATROXFB_OUTPUT_MODE_NTSC 0x0002
-#define MATROXFB_OUTPUT_MODE_MONITOR 0x0080
-};
-#define MATROXFB_SET_OUTPUT_MODE _IOW('n',0xFA,size_t)
-#define MATROXFB_GET_OUTPUT_MODE _IOWR('n',0xFA,size_t)
-
-/* bitfield */
-#define MATROXFB_OUTPUT_CONN_PRIMARY (1 << MATROXFB_OUTPUT_PRIMARY)
-#define MATROXFB_OUTPUT_CONN_SECONDARY (1 << MATROXFB_OUTPUT_SECONDARY)
-#define MATROXFB_OUTPUT_CONN_DFP (1 << MATROXFB_OUTPUT_DFP)
-/* connect these outputs to this framebuffer */
-#define MATROXFB_SET_OUTPUT_CONNECTION _IOW('n',0xF8,size_t)
-/* which outputs are connected to this framebuffer */
-#define MATROXFB_GET_OUTPUT_CONNECTION _IOR('n',0xF8,size_t)
-/* which outputs are available for this framebuffer */
-#define MATROXFB_GET_AVAILABLE_OUTPUTS _IOR('n',0xF9,size_t)
-/* which outputs exist on this framebuffer */
-#define MATROXFB_GET_ALL_OUTPUTS _IOR('n',0xFB,size_t)
-
-enum matroxfb_ctrl_id {
- MATROXFB_CID_TESTOUT = V4L2_CID_PRIVATE_BASE,
- MATROXFB_CID_DEFLICKER,
- MATROXFB_CID_LAST
-};
-
-#endif
-
diff --git a/ANDROID_3.4.5/include/linux/max17040_battery.h b/ANDROID_3.4.5/include/linux/max17040_battery.h
deleted file mode 100644
index ad97b06c..00000000
--- a/ANDROID_3.4.5/include/linux/max17040_battery.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * Copyright (C) 2009 Samsung Electronics
- * Minkyu Kang <mk7.kang@samsung.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.
- */
-
-#ifndef __MAX17040_BATTERY_H_
-#define __MAX17040_BATTERY_H_
-
-struct max17040_platform_data {
- int (*battery_online)(void);
- int (*charger_online)(void);
- int (*charger_enable)(void);
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mbcache.h b/ANDROID_3.4.5/include/linux/mbcache.h
deleted file mode 100644
index 5525d370..00000000
--- a/ANDROID_3.4.5/include/linux/mbcache.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- File: linux/mbcache.h
-
- (C) 2001 by Andreas Gruenbacher, <a.gruenbacher@computer.org>
-*/
-
-struct mb_cache_entry {
- struct list_head e_lru_list;
- struct mb_cache *e_cache;
- unsigned short e_used;
- unsigned short e_queued;
- struct block_device *e_bdev;
- sector_t e_block;
- struct list_head e_block_list;
- struct {
- struct list_head o_list;
- unsigned int o_key;
- } e_index;
-};
-
-struct mb_cache {
- struct list_head c_cache_list;
- const char *c_name;
- atomic_t c_entry_count;
- int c_max_entries;
- int c_bucket_bits;
- struct kmem_cache *c_entry_cache;
- struct list_head *c_block_hash;
- struct list_head *c_index_hash;
-};
-
-/* Functions on caches */
-
-struct mb_cache *mb_cache_create(const char *, int);
-void mb_cache_shrink(struct block_device *);
-void mb_cache_destroy(struct mb_cache *);
-
-/* Functions on cache entries */
-
-struct mb_cache_entry *mb_cache_entry_alloc(struct mb_cache *, gfp_t);
-int mb_cache_entry_insert(struct mb_cache_entry *, struct block_device *,
- sector_t, unsigned int);
-void mb_cache_entry_release(struct mb_cache_entry *);
-void mb_cache_entry_free(struct mb_cache_entry *);
-struct mb_cache_entry *mb_cache_entry_get(struct mb_cache *,
- struct block_device *,
- sector_t);
-struct mb_cache_entry *mb_cache_entry_find_first(struct mb_cache *cache,
- struct block_device *,
- unsigned int);
-struct mb_cache_entry *mb_cache_entry_find_next(struct mb_cache_entry *,
- struct block_device *,
- unsigned int);
diff --git a/ANDROID_3.4.5/include/linux/mbus.h b/ANDROID_3.4.5/include/linux/mbus.h
deleted file mode 100644
index efa1a6d7..00000000
--- a/ANDROID_3.4.5/include/linux/mbus.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Marvell MBUS common definitions.
- *
- * Copyright (C) 2008 Marvell Semiconductor
- *
- * This file is licensed under the terms of the GNU General Public
- * License version 2. This program is licensed "as is" without any
- * warranty of any kind, whether express or implied.
- */
-
-#ifndef __LINUX_MBUS_H
-#define __LINUX_MBUS_H
-
-struct mbus_dram_target_info
-{
- /*
- * The 4-bit MBUS target ID of the DRAM controller.
- */
- u8 mbus_dram_target_id;
-
- /*
- * The base address, size, and MBUS attribute ID for each
- * of the possible DRAM chip selects. Peripherals are
- * required to support at least 4 decode windows.
- */
- int num_cs;
- struct mbus_dram_window {
- u8 cs_index;
- u8 mbus_attr;
- u32 base;
- u32 size;
- } cs[4];
-};
-
-/*
- * The Marvell mbus is to be found only on SOCs from the Orion family
- * at the moment. Provide a dummy stub for other architectures.
- */
-#ifdef CONFIG_PLAT_ORION
-extern const struct mbus_dram_target_info *mv_mbus_dram_info(void);
-#else
-static inline const struct mbus_dram_target_info *mv_mbus_dram_info(void)
-{
- return NULL;
-}
-#endif
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mc146818rtc.h b/ANDROID_3.4.5/include/linux/mc146818rtc.h
deleted file mode 100644
index 2f4e957a..00000000
--- a/ANDROID_3.4.5/include/linux/mc146818rtc.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/* mc146818rtc.h - register definitions for the Real-Time-Clock / CMOS RAM
- * Copyright Torsten Duwe <duwe@informatik.uni-erlangen.de> 1993
- * derived from Data Sheet, Copyright Motorola 1984 (!).
- * It was written to be part of the Linux operating system.
- */
-/* permission is hereby granted to copy, modify and redistribute this code
- * in terms of the GNU Library General Public License, Version 2 or later,
- * at your option.
- */
-
-#ifndef _MC146818RTC_H
-#define _MC146818RTC_H
-
-#include <asm/io.h>
-#include <linux/rtc.h> /* get the user-level API */
-#include <asm/mc146818rtc.h> /* register access macros */
-
-#ifdef __KERNEL__
-#include <linux/spinlock.h> /* spinlock_t */
-extern spinlock_t rtc_lock; /* serialize CMOS RAM access */
-
-/* Some RTCs extend the mc146818 register set to support alarms of more
- * than 24 hours in the future; or dates that include a century code.
- * This platform_data structure can pass this information to the driver.
- *
- * Also, some platforms need suspend()/resume() hooks to kick in special
- * handling of wake alarms, e.g. activating ACPI BIOS hooks or setting up
- * a separate wakeup alarm used by some almost-clone chips.
- */
-struct cmos_rtc_board_info {
- void (*wake_on)(struct device *dev);
- void (*wake_off)(struct device *dev);
-
- u8 rtc_day_alarm; /* zero, or register index */
- u8 rtc_mon_alarm; /* zero, or register index */
- u8 rtc_century; /* zero, or register index */
-};
-#endif
-
-/**********************************************************************
- * register summary
- **********************************************************************/
-#define RTC_SECONDS 0
-#define RTC_SECONDS_ALARM 1
-#define RTC_MINUTES 2
-#define RTC_MINUTES_ALARM 3
-#define RTC_HOURS 4
-#define RTC_HOURS_ALARM 5
-/* RTC_*_alarm is always true if 2 MSBs are set */
-# define RTC_ALARM_DONT_CARE 0xC0
-
-#define RTC_DAY_OF_WEEK 6
-#define RTC_DAY_OF_MONTH 7
-#define RTC_MONTH 8
-#define RTC_YEAR 9
-
-/* control registers - Moto names
- */
-#define RTC_REG_A 10
-#define RTC_REG_B 11
-#define RTC_REG_C 12
-#define RTC_REG_D 13
-
-/**********************************************************************
- * register details
- **********************************************************************/
-#define RTC_FREQ_SELECT RTC_REG_A
-
-/* update-in-progress - set to "1" 244 microsecs before RTC goes off the bus,
- * reset after update (may take 1.984ms @ 32768Hz RefClock) is complete,
- * totalling to a max high interval of 2.228 ms.
- */
-# define RTC_UIP 0x80
-# define RTC_DIV_CTL 0x70
- /* divider control: refclock values 4.194 / 1.049 MHz / 32.768 kHz */
-# define RTC_REF_CLCK_4MHZ 0x00
-# define RTC_REF_CLCK_1MHZ 0x10
-# define RTC_REF_CLCK_32KHZ 0x20
- /* 2 values for divider stage reset, others for "testing purposes only" */
-# define RTC_DIV_RESET1 0x60
-# define RTC_DIV_RESET2 0x70
- /* Periodic intr. / Square wave rate select. 0=none, 1=32.8kHz,... 15=2Hz */
-# define RTC_RATE_SELECT 0x0F
-
-/**********************************************************************/
-#define RTC_CONTROL RTC_REG_B
-# define RTC_SET 0x80 /* disable updates for clock setting */
-# define RTC_PIE 0x40 /* periodic interrupt enable */
-# define RTC_AIE 0x20 /* alarm interrupt enable */
-# define RTC_UIE 0x10 /* update-finished interrupt enable */
-# define RTC_SQWE 0x08 /* enable square-wave output */
-# define RTC_DM_BINARY 0x04 /* all time/date values are BCD if clear */
-# define RTC_24H 0x02 /* 24 hour mode - else hours bit 7 means pm */
-# define RTC_DST_EN 0x01 /* auto switch DST - works f. USA only */
-
-/**********************************************************************/
-#define RTC_INTR_FLAGS RTC_REG_C
-/* caution - cleared by read */
-# define RTC_IRQF 0x80 /* any of the following 3 is active */
-# define RTC_PF 0x40
-# define RTC_AF 0x20
-# define RTC_UF 0x10
-
-/**********************************************************************/
-#define RTC_VALID RTC_REG_D
-# define RTC_VRT 0x80 /* valid RAM and time */
-/**********************************************************************/
-
-#ifndef ARCH_RTC_LOCATION /* Override by <asm/mc146818rtc.h>? */
-
-#define RTC_IO_EXTENT 0x8
-#define RTC_IO_EXTENT_USED 0x2
-#define RTC_IOMAPPED 1 /* Default to I/O mapping. */
-
-#else
-#define RTC_IO_EXTENT_USED RTC_IO_EXTENT
-#endif /* ARCH_RTC_LOCATION */
-
-#endif /* _MC146818RTC_H */
diff --git a/ANDROID_3.4.5/include/linux/mc6821.h b/ANDROID_3.4.5/include/linux/mc6821.h
deleted file mode 100644
index 28e301e2..00000000
--- a/ANDROID_3.4.5/include/linux/mc6821.h
+++ /dev/null
@@ -1,51 +0,0 @@
-#ifndef _MC6821_H_
-#define _MC6821_H_
-
-/*
- * This file describes the memery mapping of the MC6821 PIA.
- * The unions describe overlayed registers. Which of them is used is
- * determined by bit 2 of the corresponding control register.
- * this files expects the PIA_REG_PADWIDTH to be defined the numeric
- * value of the register spacing.
- *
- * Data came from MFC-31-Developer Kit (from Ralph Seidel,
- * zodiac@darkness.gun.de) and Motorola Data Sheet (from
- * Richard Hirst, srh@gpt.co.uk)
- *
- * 6.11.95 copyright Joerg Dorchain (dorchain@mpi-sb.mpg.de)
- *
- */
-
-#ifndef PIA_REG_PADWIDTH
-#define PIA_REG_PADWIDTH 255
-#endif
-
-struct pia {
- union {
- volatile u_char pra;
- volatile u_char ddra;
- } ua;
- u_char pad1[PIA_REG_PADWIDTH];
- volatile u_char cra;
- u_char pad2[PIA_REG_PADWIDTH];
- union {
- volatile u_char prb;
- volatile u_char ddrb;
- } ub;
- u_char pad3[PIA_REG_PADWIDTH];
- volatile u_char crb;
- u_char pad4[PIA_REG_PADWIDTH];
-};
-
-#define ppra ua.pra
-#define pddra ua.ddra
-#define pprb ub.prb
-#define pddrb ub.ddrb
-
-#define PIA_C1_ENABLE_IRQ (1<<0)
-#define PIA_C1_LOW_TO_HIGH (1<<1)
-#define PIA_DDR (1<<2)
-#define PIA_IRQ2 (1<<6)
-#define PIA_IRQ1 (1<<7)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mca-legacy.h b/ANDROID_3.4.5/include/linux/mca-legacy.h
deleted file mode 100644
index 7a3aea84..00000000
--- a/ANDROID_3.4.5/include/linux/mca-legacy.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/* -*- mode: c; c-basic-offset: 8 -*- */
-
-/* This is the function prototypes for the old legacy MCA interface
- *
- * Please move your driver to the new sysfs based one instead */
-
-#ifndef _LINUX_MCA_LEGACY_H
-#define _LINUX_MCA_LEGACY_H
-
-#include <linux/mca.h>
-
-#warning "MCA legacy - please move your driver to the new sysfs api"
-
-/* MCA_NOTFOUND is an error condition. The other two indicate
- * motherboard POS registers contain the adapter. They might be
- * returned by the mca_find_adapter() function, and can be used as
- * arguments to mca_read_stored_pos(). I'm not going to allow direct
- * access to the motherboard registers until we run across an adapter
- * that requires it. We don't know enough about them to know if it's
- * safe.
- *
- * See Documentation/mca.txt or one of the existing drivers for
- * more information.
- */
-#define MCA_NOTFOUND (-1)
-
-
-
-/* Returns the slot of the first enabled adapter matching id. User can
- * specify a starting slot beyond zero, to deal with detecting multiple
- * devices. Returns MCA_NOTFOUND if id not found. Also checks the
- * integrated adapters.
- */
-extern int mca_find_adapter(int id, int start);
-extern int mca_find_unused_adapter(int id, int start);
-
-extern int mca_mark_as_used(int slot);
-extern void mca_mark_as_unused(int slot);
-
-/* gets a byte out of POS register (stored in memory) */
-extern unsigned char mca_read_stored_pos(int slot, int reg);
-
-/* This can be expanded later. Right now, it gives us a way of
- * getting meaningful information into the MCA_info structure,
- * so we can have a more interesting /proc/mca.
- */
-extern void mca_set_adapter_name(int slot, char* name);
-
-/* These routines actually mess with the hardware POS registers. They
- * temporarily disable the device (and interrupts), so make sure you know
- * what you're doing if you use them. Furthermore, writing to a POS may
- * result in two devices trying to share a resource, which in turn can
- * result in multiple devices sharing memory spaces, IRQs, or even trashing
- * hardware. YOU HAVE BEEN WARNED.
- *
- * You can only access slots with this. Motherboard registers are off
- * limits.
- */
-
-/* read a byte from the specified POS register. */
-extern unsigned char mca_read_pos(int slot, int reg);
-
-/* write a byte to the specified POS register. */
-extern void mca_write_pos(int slot, int reg, unsigned char byte);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mca.h b/ANDROID_3.4.5/include/linux/mca.h
deleted file mode 100644
index 37972704..00000000
--- a/ANDROID_3.4.5/include/linux/mca.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * Header for Microchannel Architecture Bus
- * Written by Martin Kolinek, February 1996
- */
-
-#ifndef _LINUX_MCA_H
-#define _LINUX_MCA_H
-
-#include <linux/device.h>
-
-#ifdef CONFIG_MCA
-#include <asm/mca.h>
-
-extern int MCA_bus;
-#else
-#define MCA_bus 0
-#endif
-
-/* This sets up an information callback for /proc/mca/slot?. The
- * function is called with the buffer, slot, and device pointer (or
- * some equally informative context information, or nothing, if you
- * prefer), and is expected to put useful information into the
- * buffer. The adapter name, id, and POS registers get printed
- * before this is called though, so don't do it again.
- *
- * This should be called with a NULL procfn when a module
- * unregisters, thus preventing kernel crashes and other such
- * nastiness.
- */
-typedef int (*MCA_ProcFn)(char* buf, int slot, void* dev);
-
-/* Should only be called by the NMI interrupt handler, this will do some
- * fancy stuff to figure out what might have generated a NMI.
- */
-extern void mca_handle_nmi(void);
-
-enum MCA_AdapterStatus {
- MCA_ADAPTER_NORMAL = 0,
- MCA_ADAPTER_NONE = 1,
- MCA_ADAPTER_DISABLED = 2,
- MCA_ADAPTER_ERROR = 3
-};
-
-struct mca_device {
- u64 dma_mask;
- int pos_id;
- int slot;
-
- /* index into id_table, set by the bus match routine */
- int index;
-
- /* is there a driver installed? 0 - No, 1 - Yes */
- int driver_loaded;
- /* POS registers */
- unsigned char pos[8];
- /* if a pseudo adapter of the motherboard, this is the motherboard
- * register value to use for setup cycles */
- short pos_register;
-
- enum MCA_AdapterStatus status;
-#ifdef CONFIG_MCA_PROC_FS
- /* name of the proc/mca file */
- char procname[8];
- /* /proc info callback */
- MCA_ProcFn procfn;
- /* device/context info for proc callback */
- void *proc_dev;
-#endif
- struct device dev;
- char name[32];
-};
-#define to_mca_device(mdev) container_of(mdev, struct mca_device, dev)
-
-struct mca_bus_accessor_functions {
- unsigned char (*mca_read_pos)(struct mca_device *, int reg);
- void (*mca_write_pos)(struct mca_device *, int reg,
- unsigned char byte);
- int (*mca_transform_irq)(struct mca_device *, int irq);
- int (*mca_transform_ioport)(struct mca_device *,
- int region);
- void * (*mca_transform_memory)(struct mca_device *,
- void *memory);
-};
-
-struct mca_bus {
- u64 default_dma_mask;
- int number;
- struct mca_bus_accessor_functions f;
- struct device dev;
- char name[32];
-};
-#define to_mca_bus(mdev) container_of(mdev, struct mca_bus, dev)
-
-struct mca_driver {
- const short *id_table;
- void *driver_data;
- int integrated_id;
- struct device_driver driver;
-};
-#define to_mca_driver(mdriver) container_of(mdriver, struct mca_driver, driver)
-
-/* Ongoing supported API functions */
-extern struct mca_device *mca_find_device_by_slot(int slot);
-extern int mca_system_init(void);
-extern struct mca_bus *mca_attach_bus(int);
-
-extern unsigned char mca_device_read_stored_pos(struct mca_device *mca_dev,
- int reg);
-extern unsigned char mca_device_read_pos(struct mca_device *mca_dev, int reg);
-extern void mca_device_write_pos(struct mca_device *mca_dev, int reg,
- unsigned char byte);
-extern int mca_device_transform_irq(struct mca_device *mca_dev, int irq);
-extern int mca_device_transform_ioport(struct mca_device *mca_dev, int port);
-extern void *mca_device_transform_memory(struct mca_device *mca_dev,
- void *mem);
-extern int mca_device_claimed(struct mca_device *mca_dev);
-extern void mca_device_set_claim(struct mca_device *mca_dev, int val);
-extern void mca_device_set_name(struct mca_device *mca_dev, const char *name);
-static inline char *mca_device_get_name(struct mca_device *mca_dev)
-{
- return mca_dev ? mca_dev->name : NULL;
-}
-
-extern enum MCA_AdapterStatus mca_device_status(struct mca_device *mca_dev);
-
-extern struct bus_type mca_bus_type;
-
-extern int mca_register_driver(struct mca_driver *drv);
-extern int mca_register_driver_integrated(struct mca_driver *, int);
-extern void mca_unregister_driver(struct mca_driver *drv);
-
-/* WARNING: only called by the boot time device setup */
-extern int mca_register_device(int bus, struct mca_device *mca_dev);
-
-#ifdef CONFIG_MCA_PROC_FS
-extern void mca_do_proc_init(void);
-extern void mca_set_adapter_procfn(int slot, MCA_ProcFn, void* dev);
-#else
-static inline void mca_do_proc_init(void)
-{
-}
-
-static inline void mca_set_adapter_procfn(int slot, MCA_ProcFn fn, void* dev)
-{
-}
-#endif
-
-#endif /* _LINUX_MCA_H */
diff --git a/ANDROID_3.4.5/include/linux/mdio-bitbang.h b/ANDROID_3.4.5/include/linux/mdio-bitbang.h
deleted file mode 100644
index 76f52bbb..00000000
--- a/ANDROID_3.4.5/include/linux/mdio-bitbang.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef __LINUX_MDIO_BITBANG_H
-#define __LINUX_MDIO_BITBANG_H
-
-#include <linux/phy.h>
-
-struct module;
-
-struct mdiobb_ctrl;
-
-struct mdiobb_ops {
- struct module *owner;
-
- /* Set the Management Data Clock high if level is one,
- * low if level is zero.
- */
- void (*set_mdc)(struct mdiobb_ctrl *ctrl, int level);
-
- /* Configure the Management Data I/O pin as an input if
- * "output" is zero, or an output if "output" is one.
- */
- void (*set_mdio_dir)(struct mdiobb_ctrl *ctrl, int output);
-
- /* Set the Management Data I/O pin high if value is one,
- * low if "value" is zero. This may only be called
- * when the MDIO pin is configured as an output.
- */
- void (*set_mdio_data)(struct mdiobb_ctrl *ctrl, int value);
-
- /* Retrieve the state Management Data I/O pin. */
- int (*get_mdio_data)(struct mdiobb_ctrl *ctrl);
-};
-
-struct mdiobb_ctrl {
- const struct mdiobb_ops *ops;
- /* reset callback */
- int (*reset)(struct mii_bus *bus);
-};
-
-/* The returned bus is not yet registered with the phy layer. */
-struct mii_bus *alloc_mdio_bitbang(struct mdiobb_ctrl *ctrl);
-
-/* The bus must already have been unregistered. */
-void free_mdio_bitbang(struct mii_bus *bus);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mdio-gpio.h b/ANDROID_3.4.5/include/linux/mdio-gpio.h
deleted file mode 100644
index 7c9fe3c2..00000000
--- a/ANDROID_3.4.5/include/linux/mdio-gpio.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * MDIO-GPIO bus platform data structures
- *
- * Copyright (C) 2008, Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
- *
- * This file is licensed under the terms of the GNU General Public License
- * version 2. This program is licensed "as is" without any warranty of any
- * kind, whether express or implied.
- */
-
-#ifndef __LINUX_MDIO_GPIO_H
-#define __LINUX_MDIO_GPIO_H
-
-#include <linux/mdio-bitbang.h>
-
-struct mdio_gpio_platform_data {
- /* GPIO numbers for bus pins */
- unsigned int mdc;
- unsigned int mdio;
-
- unsigned int phy_mask;
- int irqs[PHY_MAX_ADDR];
- /* reset callback */
- int (*reset)(struct mii_bus *bus);
-};
-
-#endif /* __LINUX_MDIO_GPIO_H */
diff --git a/ANDROID_3.4.5/include/linux/mdio.h b/ANDROID_3.4.5/include/linux/mdio.h
deleted file mode 100644
index dfb94795..00000000
--- a/ANDROID_3.4.5/include/linux/mdio.h
+++ /dev/null
@@ -1,361 +0,0 @@
-/*
- * linux/mdio.h: definitions for MDIO (clause 45) transceivers
- * Copyright 2006-2009 Solarflare Communications Inc.
- *
- * 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, incorporated herein by reference.
- */
-
-#ifndef __LINUX_MDIO_H__
-#define __LINUX_MDIO_H__
-
-#include <linux/types.h>
-#include <linux/mii.h>
-
-/* MDIO Manageable Devices (MMDs). */
-#define MDIO_MMD_PMAPMD 1 /* Physical Medium Attachment/
- * Physical Medium Dependent */
-#define MDIO_MMD_WIS 2 /* WAN Interface Sublayer */
-#define MDIO_MMD_PCS 3 /* Physical Coding Sublayer */
-#define MDIO_MMD_PHYXS 4 /* PHY Extender Sublayer */
-#define MDIO_MMD_DTEXS 5 /* DTE Extender Sublayer */
-#define MDIO_MMD_TC 6 /* Transmission Convergence */
-#define MDIO_MMD_AN 7 /* Auto-Negotiation */
-#define MDIO_MMD_C22EXT 29 /* Clause 22 extension */
-#define MDIO_MMD_VEND1 30 /* Vendor specific 1 */
-#define MDIO_MMD_VEND2 31 /* Vendor specific 2 */
-
-/* Generic MDIO registers. */
-#define MDIO_CTRL1 MII_BMCR
-#define MDIO_STAT1 MII_BMSR
-#define MDIO_DEVID1 MII_PHYSID1
-#define MDIO_DEVID2 MII_PHYSID2
-#define MDIO_SPEED 4 /* Speed ability */
-#define MDIO_DEVS1 5 /* Devices in package */
-#define MDIO_DEVS2 6
-#define MDIO_CTRL2 7 /* 10G control 2 */
-#define MDIO_STAT2 8 /* 10G status 2 */
-#define MDIO_PMA_TXDIS 9 /* 10G PMA/PMD transmit disable */
-#define MDIO_PMA_RXDET 10 /* 10G PMA/PMD receive signal detect */
-#define MDIO_PMA_EXTABLE 11 /* 10G PMA/PMD extended ability */
-#define MDIO_PKGID1 14 /* Package identifier */
-#define MDIO_PKGID2 15
-#define MDIO_AN_ADVERTISE 16 /* AN advertising (base page) */
-#define MDIO_AN_LPA 19 /* AN LP abilities (base page) */
-#define MDIO_PHYXS_LNSTAT 24 /* PHY XGXS lane state */
-
-/* Media-dependent registers. */
-#define MDIO_PMA_10GBT_SWAPPOL 130 /* 10GBASE-T pair swap & polarity */
-#define MDIO_PMA_10GBT_TXPWR 131 /* 10GBASE-T TX power control */
-#define MDIO_PMA_10GBT_SNR 133 /* 10GBASE-T SNR margin, lane A.
- * Lanes B-D are numbered 134-136. */
-#define MDIO_PMA_10GBR_FECABLE 170 /* 10GBASE-R FEC ability */
-#define MDIO_PCS_10GBX_STAT1 24 /* 10GBASE-X PCS status 1 */
-#define MDIO_PCS_10GBRT_STAT1 32 /* 10GBASE-R/-T PCS status 1 */
-#define MDIO_PCS_10GBRT_STAT2 33 /* 10GBASE-R/-T PCS status 2 */
-#define MDIO_AN_10GBT_CTRL 32 /* 10GBASE-T auto-negotiation control */
-#define MDIO_AN_10GBT_STAT 33 /* 10GBASE-T auto-negotiation status */
-#define MDIO_AN_EEE_ADV 60 /* EEE advertisement */
-
-/* LASI (Link Alarm Status Interrupt) registers, defined by XENPAK MSA. */
-#define MDIO_PMA_LASI_RXCTRL 0x9000 /* RX_ALARM control */
-#define MDIO_PMA_LASI_TXCTRL 0x9001 /* TX_ALARM control */
-#define MDIO_PMA_LASI_CTRL 0x9002 /* LASI control */
-#define MDIO_PMA_LASI_RXSTAT 0x9003 /* RX_ALARM status */
-#define MDIO_PMA_LASI_TXSTAT 0x9004 /* TX_ALARM status */
-#define MDIO_PMA_LASI_STAT 0x9005 /* LASI status */
-
-/* Control register 1. */
-/* Enable extended speed selection */
-#define MDIO_CTRL1_SPEEDSELEXT (BMCR_SPEED1000 | BMCR_SPEED100)
-/* All speed selection bits */
-#define MDIO_CTRL1_SPEEDSEL (MDIO_CTRL1_SPEEDSELEXT | 0x003c)
-#define MDIO_CTRL1_FULLDPLX BMCR_FULLDPLX
-#define MDIO_CTRL1_LPOWER BMCR_PDOWN
-#define MDIO_CTRL1_RESET BMCR_RESET
-#define MDIO_PMA_CTRL1_LOOPBACK 0x0001
-#define MDIO_PMA_CTRL1_SPEED1000 BMCR_SPEED1000
-#define MDIO_PMA_CTRL1_SPEED100 BMCR_SPEED100
-#define MDIO_PCS_CTRL1_LOOPBACK BMCR_LOOPBACK
-#define MDIO_PHYXS_CTRL1_LOOPBACK BMCR_LOOPBACK
-#define MDIO_AN_CTRL1_RESTART BMCR_ANRESTART
-#define MDIO_AN_CTRL1_ENABLE BMCR_ANENABLE
-#define MDIO_AN_CTRL1_XNP 0x2000 /* Enable extended next page */
-
-/* 10 Gb/s */
-#define MDIO_CTRL1_SPEED10G (MDIO_CTRL1_SPEEDSELEXT | 0x00)
-/* 10PASS-TS/2BASE-TL */
-#define MDIO_CTRL1_SPEED10P2B (MDIO_CTRL1_SPEEDSELEXT | 0x04)
-
-/* Status register 1. */
-#define MDIO_STAT1_LPOWERABLE 0x0002 /* Low-power ability */
-#define MDIO_STAT1_LSTATUS BMSR_LSTATUS
-#define MDIO_STAT1_FAULT 0x0080 /* Fault */
-#define MDIO_AN_STAT1_LPABLE 0x0001 /* Link partner AN ability */
-#define MDIO_AN_STAT1_ABLE BMSR_ANEGCAPABLE
-#define MDIO_AN_STAT1_RFAULT BMSR_RFAULT
-#define MDIO_AN_STAT1_COMPLETE BMSR_ANEGCOMPLETE
-#define MDIO_AN_STAT1_PAGE 0x0040 /* Page received */
-#define MDIO_AN_STAT1_XNP 0x0080 /* Extended next page status */
-
-/* Speed register. */
-#define MDIO_SPEED_10G 0x0001 /* 10G capable */
-#define MDIO_PMA_SPEED_2B 0x0002 /* 2BASE-TL capable */
-#define MDIO_PMA_SPEED_10P 0x0004 /* 10PASS-TS capable */
-#define MDIO_PMA_SPEED_1000 0x0010 /* 1000M capable */
-#define MDIO_PMA_SPEED_100 0x0020 /* 100M capable */
-#define MDIO_PMA_SPEED_10 0x0040 /* 10M capable */
-#define MDIO_PCS_SPEED_10P2B 0x0002 /* 10PASS-TS/2BASE-TL capable */
-
-/* Device present registers. */
-#define MDIO_DEVS_PRESENT(devad) (1 << (devad))
-#define MDIO_DEVS_PMAPMD MDIO_DEVS_PRESENT(MDIO_MMD_PMAPMD)
-#define MDIO_DEVS_WIS MDIO_DEVS_PRESENT(MDIO_MMD_WIS)
-#define MDIO_DEVS_PCS MDIO_DEVS_PRESENT(MDIO_MMD_PCS)
-#define MDIO_DEVS_PHYXS MDIO_DEVS_PRESENT(MDIO_MMD_PHYXS)
-#define MDIO_DEVS_DTEXS MDIO_DEVS_PRESENT(MDIO_MMD_DTEXS)
-#define MDIO_DEVS_TC MDIO_DEVS_PRESENT(MDIO_MMD_TC)
-#define MDIO_DEVS_AN MDIO_DEVS_PRESENT(MDIO_MMD_AN)
-#define MDIO_DEVS_C22EXT MDIO_DEVS_PRESENT(MDIO_MMD_C22EXT)
-
-/* Control register 2. */
-#define MDIO_PMA_CTRL2_TYPE 0x000f /* PMA/PMD type selection */
-#define MDIO_PMA_CTRL2_10GBCX4 0x0000 /* 10GBASE-CX4 type */
-#define MDIO_PMA_CTRL2_10GBEW 0x0001 /* 10GBASE-EW type */
-#define MDIO_PMA_CTRL2_10GBLW 0x0002 /* 10GBASE-LW type */
-#define MDIO_PMA_CTRL2_10GBSW 0x0003 /* 10GBASE-SW type */
-#define MDIO_PMA_CTRL2_10GBLX4 0x0004 /* 10GBASE-LX4 type */
-#define MDIO_PMA_CTRL2_10GBER 0x0005 /* 10GBASE-ER type */
-#define MDIO_PMA_CTRL2_10GBLR 0x0006 /* 10GBASE-LR type */
-#define MDIO_PMA_CTRL2_10GBSR 0x0007 /* 10GBASE-SR type */
-#define MDIO_PMA_CTRL2_10GBLRM 0x0008 /* 10GBASE-LRM type */
-#define MDIO_PMA_CTRL2_10GBT 0x0009 /* 10GBASE-T type */
-#define MDIO_PMA_CTRL2_10GBKX4 0x000a /* 10GBASE-KX4 type */
-#define MDIO_PMA_CTRL2_10GBKR 0x000b /* 10GBASE-KR type */
-#define MDIO_PMA_CTRL2_1000BT 0x000c /* 1000BASE-T type */
-#define MDIO_PMA_CTRL2_1000BKX 0x000d /* 1000BASE-KX type */
-#define MDIO_PMA_CTRL2_100BTX 0x000e /* 100BASE-TX type */
-#define MDIO_PMA_CTRL2_10BT 0x000f /* 10BASE-T type */
-#define MDIO_PCS_CTRL2_TYPE 0x0003 /* PCS type selection */
-#define MDIO_PCS_CTRL2_10GBR 0x0000 /* 10GBASE-R type */
-#define MDIO_PCS_CTRL2_10GBX 0x0001 /* 10GBASE-X type */
-#define MDIO_PCS_CTRL2_10GBW 0x0002 /* 10GBASE-W type */
-#define MDIO_PCS_CTRL2_10GBT 0x0003 /* 10GBASE-T type */
-
-/* Status register 2. */
-#define MDIO_STAT2_RXFAULT 0x0400 /* Receive fault */
-#define MDIO_STAT2_TXFAULT 0x0800 /* Transmit fault */
-#define MDIO_STAT2_DEVPRST 0xc000 /* Device present */
-#define MDIO_STAT2_DEVPRST_VAL 0x8000 /* Device present value */
-#define MDIO_PMA_STAT2_LBABLE 0x0001 /* PMA loopback ability */
-#define MDIO_PMA_STAT2_10GBEW 0x0002 /* 10GBASE-EW ability */
-#define MDIO_PMA_STAT2_10GBLW 0x0004 /* 10GBASE-LW ability */
-#define MDIO_PMA_STAT2_10GBSW 0x0008 /* 10GBASE-SW ability */
-#define MDIO_PMA_STAT2_10GBLX4 0x0010 /* 10GBASE-LX4 ability */
-#define MDIO_PMA_STAT2_10GBER 0x0020 /* 10GBASE-ER ability */
-#define MDIO_PMA_STAT2_10GBLR 0x0040 /* 10GBASE-LR ability */
-#define MDIO_PMA_STAT2_10GBSR 0x0080 /* 10GBASE-SR ability */
-#define MDIO_PMD_STAT2_TXDISAB 0x0100 /* PMD TX disable ability */
-#define MDIO_PMA_STAT2_EXTABLE 0x0200 /* Extended abilities */
-#define MDIO_PMA_STAT2_RXFLTABLE 0x1000 /* Receive fault ability */
-#define MDIO_PMA_STAT2_TXFLTABLE 0x2000 /* Transmit fault ability */
-#define MDIO_PCS_STAT2_10GBR 0x0001 /* 10GBASE-R capable */
-#define MDIO_PCS_STAT2_10GBX 0x0002 /* 10GBASE-X capable */
-#define MDIO_PCS_STAT2_10GBW 0x0004 /* 10GBASE-W capable */
-#define MDIO_PCS_STAT2_RXFLTABLE 0x1000 /* Receive fault ability */
-#define MDIO_PCS_STAT2_TXFLTABLE 0x2000 /* Transmit fault ability */
-
-/* Transmit disable register. */
-#define MDIO_PMD_TXDIS_GLOBAL 0x0001 /* Global PMD TX disable */
-#define MDIO_PMD_TXDIS_0 0x0002 /* PMD TX disable 0 */
-#define MDIO_PMD_TXDIS_1 0x0004 /* PMD TX disable 1 */
-#define MDIO_PMD_TXDIS_2 0x0008 /* PMD TX disable 2 */
-#define MDIO_PMD_TXDIS_3 0x0010 /* PMD TX disable 3 */
-
-/* Receive signal detect register. */
-#define MDIO_PMD_RXDET_GLOBAL 0x0001 /* Global PMD RX signal detect */
-#define MDIO_PMD_RXDET_0 0x0002 /* PMD RX signal detect 0 */
-#define MDIO_PMD_RXDET_1 0x0004 /* PMD RX signal detect 1 */
-#define MDIO_PMD_RXDET_2 0x0008 /* PMD RX signal detect 2 */
-#define MDIO_PMD_RXDET_3 0x0010 /* PMD RX signal detect 3 */
-
-/* Extended abilities register. */
-#define MDIO_PMA_EXTABLE_10GCX4 0x0001 /* 10GBASE-CX4 ability */
-#define MDIO_PMA_EXTABLE_10GBLRM 0x0002 /* 10GBASE-LRM ability */
-#define MDIO_PMA_EXTABLE_10GBT 0x0004 /* 10GBASE-T ability */
-#define MDIO_PMA_EXTABLE_10GBKX4 0x0008 /* 10GBASE-KX4 ability */
-#define MDIO_PMA_EXTABLE_10GBKR 0x0010 /* 10GBASE-KR ability */
-#define MDIO_PMA_EXTABLE_1000BT 0x0020 /* 1000BASE-T ability */
-#define MDIO_PMA_EXTABLE_1000BKX 0x0040 /* 1000BASE-KX ability */
-#define MDIO_PMA_EXTABLE_100BTX 0x0080 /* 100BASE-TX ability */
-#define MDIO_PMA_EXTABLE_10BT 0x0100 /* 10BASE-T ability */
-
-/* PHY XGXS lane state register. */
-#define MDIO_PHYXS_LNSTAT_SYNC0 0x0001
-#define MDIO_PHYXS_LNSTAT_SYNC1 0x0002
-#define MDIO_PHYXS_LNSTAT_SYNC2 0x0004
-#define MDIO_PHYXS_LNSTAT_SYNC3 0x0008
-#define MDIO_PHYXS_LNSTAT_ALIGN 0x1000
-
-/* PMA 10GBASE-T pair swap & polarity */
-#define MDIO_PMA_10GBT_SWAPPOL_ABNX 0x0001 /* Pair A/B uncrossed */
-#define MDIO_PMA_10GBT_SWAPPOL_CDNX 0x0002 /* Pair C/D uncrossed */
-#define MDIO_PMA_10GBT_SWAPPOL_AREV 0x0100 /* Pair A polarity reversed */
-#define MDIO_PMA_10GBT_SWAPPOL_BREV 0x0200 /* Pair B polarity reversed */
-#define MDIO_PMA_10GBT_SWAPPOL_CREV 0x0400 /* Pair C polarity reversed */
-#define MDIO_PMA_10GBT_SWAPPOL_DREV 0x0800 /* Pair D polarity reversed */
-
-/* PMA 10GBASE-T TX power register. */
-#define MDIO_PMA_10GBT_TXPWR_SHORT 0x0001 /* Short-reach mode */
-
-/* PMA 10GBASE-T SNR registers. */
-/* Value is SNR margin in dB, clamped to range [-127, 127], plus 0x8000. */
-#define MDIO_PMA_10GBT_SNR_BIAS 0x8000
-#define MDIO_PMA_10GBT_SNR_MAX 127
-
-/* PMA 10GBASE-R FEC ability register. */
-#define MDIO_PMA_10GBR_FECABLE_ABLE 0x0001 /* FEC ability */
-#define MDIO_PMA_10GBR_FECABLE_ERRABLE 0x0002 /* FEC error indic. ability */
-
-/* PCS 10GBASE-R/-T status register 1. */
-#define MDIO_PCS_10GBRT_STAT1_BLKLK 0x0001 /* Block lock attained */
-
-/* PCS 10GBASE-R/-T status register 2. */
-#define MDIO_PCS_10GBRT_STAT2_ERR 0x00ff
-#define MDIO_PCS_10GBRT_STAT2_BER 0x3f00
-
-/* AN 10GBASE-T control register. */
-#define MDIO_AN_10GBT_CTRL_ADV10G 0x1000 /* Advertise 10GBASE-T */
-
-/* AN 10GBASE-T status register. */
-#define MDIO_AN_10GBT_STAT_LPTRR 0x0200 /* LP training reset req. */
-#define MDIO_AN_10GBT_STAT_LPLTABLE 0x0400 /* LP loop timing ability */
-#define MDIO_AN_10GBT_STAT_LP10G 0x0800 /* LP is 10GBT capable */
-#define MDIO_AN_10GBT_STAT_REMOK 0x1000 /* Remote OK */
-#define MDIO_AN_10GBT_STAT_LOCOK 0x2000 /* Local OK */
-#define MDIO_AN_10GBT_STAT_MS 0x4000 /* Master/slave config */
-#define MDIO_AN_10GBT_STAT_MSFLT 0x8000 /* Master/slave config fault */
-
-/* AN EEE Advertisement register. */
-#define MDIO_AN_EEE_ADV_100TX 0x0002 /* Advertise 100TX EEE cap */
-#define MDIO_AN_EEE_ADV_1000T 0x0004 /* Advertise 1000T EEE cap */
-
-/* LASI RX_ALARM control/status registers. */
-#define MDIO_PMA_LASI_RX_PHYXSLFLT 0x0001 /* PHY XS RX local fault */
-#define MDIO_PMA_LASI_RX_PCSLFLT 0x0008 /* PCS RX local fault */
-#define MDIO_PMA_LASI_RX_PMALFLT 0x0010 /* PMA/PMD RX local fault */
-#define MDIO_PMA_LASI_RX_OPTICPOWERFLT 0x0020 /* RX optical power fault */
-#define MDIO_PMA_LASI_RX_WISLFLT 0x0200 /* WIS local fault */
-
-/* LASI TX_ALARM control/status registers. */
-#define MDIO_PMA_LASI_TX_PHYXSLFLT 0x0001 /* PHY XS TX local fault */
-#define MDIO_PMA_LASI_TX_PCSLFLT 0x0008 /* PCS TX local fault */
-#define MDIO_PMA_LASI_TX_PMALFLT 0x0010 /* PMA/PMD TX local fault */
-#define MDIO_PMA_LASI_TX_LASERPOWERFLT 0x0080 /* Laser output power fault */
-#define MDIO_PMA_LASI_TX_LASERTEMPFLT 0x0100 /* Laser temperature fault */
-#define MDIO_PMA_LASI_TX_LASERBICURRFLT 0x0200 /* Laser bias current fault */
-
-/* LASI control/status registers. */
-#define MDIO_PMA_LASI_LSALARM 0x0001 /* LS_ALARM enable/status */
-#define MDIO_PMA_LASI_TXALARM 0x0002 /* TX_ALARM enable/status */
-#define MDIO_PMA_LASI_RXALARM 0x0004 /* RX_ALARM enable/status */
-
-/* Mapping between MDIO PRTAD/DEVAD and mii_ioctl_data::phy_id */
-
-#define MDIO_PHY_ID_C45 0x8000
-#define MDIO_PHY_ID_PRTAD 0x03e0
-#define MDIO_PHY_ID_DEVAD 0x001f
-#define MDIO_PHY_ID_C45_MASK \
- (MDIO_PHY_ID_C45 | MDIO_PHY_ID_PRTAD | MDIO_PHY_ID_DEVAD)
-
-static inline __u16 mdio_phy_id_c45(int prtad, int devad)
-{
- return MDIO_PHY_ID_C45 | (prtad << 5) | devad;
-}
-
-#ifdef __KERNEL__
-
-static inline bool mdio_phy_id_is_c45(int phy_id)
-{
- return (phy_id & MDIO_PHY_ID_C45) && !(phy_id & ~MDIO_PHY_ID_C45_MASK);
-}
-
-static inline __u16 mdio_phy_id_prtad(int phy_id)
-{
- return (phy_id & MDIO_PHY_ID_PRTAD) >> 5;
-}
-
-static inline __u16 mdio_phy_id_devad(int phy_id)
-{
- return phy_id & MDIO_PHY_ID_DEVAD;
-}
-
-/**
- * struct mdio_if_info - Ethernet controller MDIO interface
- * @prtad: PRTAD of the PHY (%MDIO_PRTAD_NONE if not present/unknown)
- * @mmds: Mask of MMDs expected to be present in the PHY. This must be
- * non-zero unless @prtad = %MDIO_PRTAD_NONE.
- * @mode_support: MDIO modes supported. If %MDIO_SUPPORTS_C22 is set then
- * MII register access will be passed through with @devad =
- * %MDIO_DEVAD_NONE. If %MDIO_EMULATE_C22 is set then access to
- * commonly used clause 22 registers will be translated into
- * clause 45 registers.
- * @dev: Net device structure
- * @mdio_read: Register read function; returns value or negative error code
- * @mdio_write: Register write function; returns 0 or negative error code
- */
-struct mdio_if_info {
- int prtad;
- u32 mmds;
- unsigned mode_support;
-
- struct net_device *dev;
- int (*mdio_read)(struct net_device *dev, int prtad, int devad,
- u16 addr);
- int (*mdio_write)(struct net_device *dev, int prtad, int devad,
- u16 addr, u16 val);
-};
-
-#define MDIO_PRTAD_NONE (-1)
-#define MDIO_DEVAD_NONE (-1)
-#define MDIO_SUPPORTS_C22 1
-#define MDIO_SUPPORTS_C45 2
-#define MDIO_EMULATE_C22 4
-
-struct ethtool_cmd;
-struct ethtool_pauseparam;
-extern int mdio45_probe(struct mdio_if_info *mdio, int prtad);
-extern int mdio_set_flag(const struct mdio_if_info *mdio,
- int prtad, int devad, u16 addr, int mask,
- bool sense);
-extern int mdio45_links_ok(const struct mdio_if_info *mdio, u32 mmds);
-extern int mdio45_nway_restart(const struct mdio_if_info *mdio);
-extern void mdio45_ethtool_gset_npage(const struct mdio_if_info *mdio,
- struct ethtool_cmd *ecmd,
- u32 npage_adv, u32 npage_lpa);
-extern void
-mdio45_ethtool_spauseparam_an(const struct mdio_if_info *mdio,
- const struct ethtool_pauseparam *ecmd);
-
-/**
- * mdio45_ethtool_gset - get settings for ETHTOOL_GSET
- * @mdio: MDIO interface
- * @ecmd: Ethtool request structure
- *
- * Since the CSRs for auto-negotiation using next pages are not fully
- * standardised, this function does not attempt to decode them. Use
- * mdio45_ethtool_gset_npage() to specify advertisement bits from next
- * pages.
- */
-static inline void mdio45_ethtool_gset(const struct mdio_if_info *mdio,
- struct ethtool_cmd *ecmd)
-{
- mdio45_ethtool_gset_npage(mdio, ecmd, 0, 0);
-}
-
-extern int mdio_mii_ioctl(const struct mdio_if_info *mdio,
- struct mii_ioctl_data *mii_data, int cmd);
-
-#endif /* __KERNEL__ */
-#endif /* __LINUX_MDIO_H__ */
diff --git a/ANDROID_3.4.5/include/linux/media.h b/ANDROID_3.4.5/include/linux/media.h
deleted file mode 100644
index 0ef88332..00000000
--- a/ANDROID_3.4.5/include/linux/media.h
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Multimedia device API
- *
- * Copyright (C) 2010 Nokia Corporation
- *
- * Contacts: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
- * Sakari Ailus <sakari.ailus@iki.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.
- *
- * 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
- */
-
-#ifndef __LINUX_MEDIA_H
-#define __LINUX_MEDIA_H
-
-#include <linux/ioctl.h>
-#include <linux/types.h>
-#include <linux/version.h>
-
-#define MEDIA_API_VERSION KERNEL_VERSION(0, 1, 0)
-
-struct media_device_info {
- char driver[16];
- char model[32];
- char serial[40];
- char bus_info[32];
- __u32 media_version;
- __u32 hw_revision;
- __u32 driver_version;
- __u32 reserved[31];
-};
-
-#define MEDIA_ENT_ID_FLAG_NEXT (1 << 31)
-
-#define MEDIA_ENT_TYPE_SHIFT 16
-#define MEDIA_ENT_TYPE_MASK 0x00ff0000
-#define MEDIA_ENT_SUBTYPE_MASK 0x0000ffff
-
-#define MEDIA_ENT_T_DEVNODE (1 << MEDIA_ENT_TYPE_SHIFT)
-#define MEDIA_ENT_T_DEVNODE_V4L (MEDIA_ENT_T_DEVNODE + 1)
-#define MEDIA_ENT_T_DEVNODE_FB (MEDIA_ENT_T_DEVNODE + 2)
-#define MEDIA_ENT_T_DEVNODE_ALSA (MEDIA_ENT_T_DEVNODE + 3)
-#define MEDIA_ENT_T_DEVNODE_DVB (MEDIA_ENT_T_DEVNODE + 4)
-
-#define MEDIA_ENT_T_V4L2_SUBDEV (2 << MEDIA_ENT_TYPE_SHIFT)
-#define MEDIA_ENT_T_V4L2_SUBDEV_SENSOR (MEDIA_ENT_T_V4L2_SUBDEV + 1)
-#define MEDIA_ENT_T_V4L2_SUBDEV_FLASH (MEDIA_ENT_T_V4L2_SUBDEV + 2)
-#define MEDIA_ENT_T_V4L2_SUBDEV_LENS (MEDIA_ENT_T_V4L2_SUBDEV + 3)
-
-#define MEDIA_ENT_FL_DEFAULT (1 << 0)
-
-struct media_entity_desc {
- __u32 id;
- char name[32];
- __u32 type;
- __u32 revision;
- __u32 flags;
- __u32 group_id;
- __u16 pads;
- __u16 links;
-
- __u32 reserved[4];
-
- union {
- /* Node specifications */
- struct {
- __u32 major;
- __u32 minor;
- } v4l;
- struct {
- __u32 major;
- __u32 minor;
- } fb;
- struct {
- __u32 card;
- __u32 device;
- __u32 subdevice;
- } alsa;
- int dvb;
-
- /* Sub-device specifications */
- /* Nothing needed yet */
- __u8 raw[184];
- };
-};
-
-#define MEDIA_PAD_FL_SINK (1 << 0)
-#define MEDIA_PAD_FL_SOURCE (1 << 1)
-
-struct media_pad_desc {
- __u32 entity; /* entity ID */
- __u16 index; /* pad index */
- __u32 flags; /* pad flags */
- __u32 reserved[2];
-};
-
-#define MEDIA_LNK_FL_ENABLED (1 << 0)
-#define MEDIA_LNK_FL_IMMUTABLE (1 << 1)
-#define MEDIA_LNK_FL_DYNAMIC (1 << 2)
-
-struct media_link_desc {
- struct media_pad_desc source;
- struct media_pad_desc sink;
- __u32 flags;
- __u32 reserved[2];
-};
-
-struct media_links_enum {
- __u32 entity;
- /* Should have enough room for pads elements */
- struct media_pad_desc __user *pads;
- /* Should have enough room for links elements */
- struct media_link_desc __user *links;
- __u32 reserved[4];
-};
-
-#define MEDIA_IOC_DEVICE_INFO _IOWR('|', 0x00, struct media_device_info)
-#define MEDIA_IOC_ENUM_ENTITIES _IOWR('|', 0x01, struct media_entity_desc)
-#define MEDIA_IOC_ENUM_LINKS _IOWR('|', 0x02, struct media_links_enum)
-#define MEDIA_IOC_SETUP_LINK _IOWR('|', 0x03, struct media_link_desc)
-
-#endif /* __LINUX_MEDIA_H */
diff --git a/ANDROID_3.4.5/include/linux/memblock.h b/ANDROID_3.4.5/include/linux/memblock.h
deleted file mode 100644
index 19dc455b..00000000
--- a/ANDROID_3.4.5/include/linux/memblock.h
+++ /dev/null
@@ -1,251 +0,0 @@
-#ifndef _LINUX_MEMBLOCK_H
-#define _LINUX_MEMBLOCK_H
-#ifdef __KERNEL__
-
-#ifdef CONFIG_HAVE_MEMBLOCK
-/*
- * Logical memory blocks.
- *
- * Copyright (C) 2001 Peter Bergner, IBM Corp.
- *
- * 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/mm.h>
-
-#define INIT_MEMBLOCK_REGIONS 128
-
-struct memblock_region {
- phys_addr_t base;
- phys_addr_t size;
-#ifdef CONFIG_HAVE_MEMBLOCK_NODE_MAP
- int nid;
-#endif
-};
-
-struct memblock_type {
- unsigned long cnt; /* number of regions */
- unsigned long max; /* size of the allocated array */
- phys_addr_t total_size; /* size of all regions */
- struct memblock_region *regions;
-};
-
-struct memblock {
- phys_addr_t current_limit;
- struct memblock_type memory;
- struct memblock_type reserved;
-};
-
-extern struct memblock memblock;
-extern int memblock_debug;
-
-#define memblock_dbg(fmt, ...) \
- if (memblock_debug) printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
-
-phys_addr_t memblock_find_in_range_node(phys_addr_t start, phys_addr_t end,
- phys_addr_t size, phys_addr_t align, int nid);
-phys_addr_t memblock_find_in_range(phys_addr_t start, phys_addr_t end,
- phys_addr_t size, phys_addr_t align);
-phys_addr_t get_allocated_memblock_reserved_regions_info(phys_addr_t *addr);
-void memblock_allow_resize(void);
-int memblock_add_node(phys_addr_t base, phys_addr_t size, int nid);
-int memblock_add(phys_addr_t base, phys_addr_t size);
-int memblock_remove(phys_addr_t base, phys_addr_t size);
-int memblock_free(phys_addr_t base, phys_addr_t size);
-int memblock_reserve(phys_addr_t base, phys_addr_t size);
-
-#ifdef CONFIG_HAVE_MEMBLOCK_NODE_MAP
-void __next_mem_pfn_range(int *idx, int nid, unsigned long *out_start_pfn,
- unsigned long *out_end_pfn, int *out_nid);
-
-/**
- * for_each_mem_pfn_range - early memory pfn range iterator
- * @i: an integer used as loop variable
- * @nid: node selector, %MAX_NUMNODES for all nodes
- * @p_start: ptr to ulong for start pfn of the range, can be %NULL
- * @p_end: ptr to ulong for end pfn of the range, can be %NULL
- * @p_nid: ptr to int for nid of the range, can be %NULL
- *
- * Walks over configured memory ranges. Available after early_node_map is
- * populated.
- */
-#define for_each_mem_pfn_range(i, nid, p_start, p_end, p_nid) \
- for (i = -1, __next_mem_pfn_range(&i, nid, p_start, p_end, p_nid); \
- i >= 0; __next_mem_pfn_range(&i, nid, p_start, p_end, p_nid))
-#endif /* CONFIG_HAVE_MEMBLOCK_NODE_MAP */
-
-void __next_free_mem_range(u64 *idx, int nid, phys_addr_t *out_start,
- phys_addr_t *out_end, int *out_nid);
-
-/**
- * for_each_free_mem_range - iterate through free memblock areas
- * @i: u64 used as loop variable
- * @nid: node selector, %MAX_NUMNODES for all nodes
- * @p_start: ptr to phys_addr_t for start address of the range, can be %NULL
- * @p_end: ptr to phys_addr_t for end address of the range, can be %NULL
- * @p_nid: ptr to int for nid of the range, can be %NULL
- *
- * Walks over free (memory && !reserved) areas of memblock. Available as
- * soon as memblock is initialized.
- */
-#define for_each_free_mem_range(i, nid, p_start, p_end, p_nid) \
- for (i = 0, \
- __next_free_mem_range(&i, nid, p_start, p_end, p_nid); \
- i != (u64)ULLONG_MAX; \
- __next_free_mem_range(&i, nid, p_start, p_end, p_nid))
-
-void __next_free_mem_range_rev(u64 *idx, int nid, phys_addr_t *out_start,
- phys_addr_t *out_end, int *out_nid);
-
-/**
- * for_each_free_mem_range_reverse - rev-iterate through free memblock areas
- * @i: u64 used as loop variable
- * @nid: node selector, %MAX_NUMNODES for all nodes
- * @p_start: ptr to phys_addr_t for start address of the range, can be %NULL
- * @p_end: ptr to phys_addr_t for end address of the range, can be %NULL
- * @p_nid: ptr to int for nid of the range, can be %NULL
- *
- * Walks over free (memory && !reserved) areas of memblock in reverse
- * order. Available as soon as memblock is initialized.
- */
-#define for_each_free_mem_range_reverse(i, nid, p_start, p_end, p_nid) \
- for (i = (u64)ULLONG_MAX, \
- __next_free_mem_range_rev(&i, nid, p_start, p_end, p_nid); \
- i != (u64)ULLONG_MAX; \
- __next_free_mem_range_rev(&i, nid, p_start, p_end, p_nid))
-
-#ifdef CONFIG_HAVE_MEMBLOCK_NODE_MAP
-int memblock_set_node(phys_addr_t base, phys_addr_t size, int nid);
-
-static inline void memblock_set_region_node(struct memblock_region *r, int nid)
-{
- r->nid = nid;
-}
-
-static inline int memblock_get_region_node(const struct memblock_region *r)
-{
- return r->nid;
-}
-#else
-static inline void memblock_set_region_node(struct memblock_region *r, int nid)
-{
-}
-
-static inline int memblock_get_region_node(const struct memblock_region *r)
-{
- return 0;
-}
-#endif /* CONFIG_HAVE_MEMBLOCK_NODE_MAP */
-
-phys_addr_t memblock_alloc_nid(phys_addr_t size, phys_addr_t align, int nid);
-phys_addr_t memblock_alloc_try_nid(phys_addr_t size, phys_addr_t align, int nid);
-
-phys_addr_t memblock_alloc(phys_addr_t size, phys_addr_t align);
-
-/* Flags for memblock_alloc_base() amd __memblock_alloc_base() */
-#define MEMBLOCK_ALLOC_ANYWHERE (~(phys_addr_t)0)
-#define MEMBLOCK_ALLOC_ACCESSIBLE 0
-
-phys_addr_t memblock_alloc_base(phys_addr_t size, phys_addr_t align,
- phys_addr_t max_addr);
-phys_addr_t __memblock_alloc_base(phys_addr_t size, phys_addr_t align,
- phys_addr_t max_addr);
-phys_addr_t memblock_phys_mem_size(void);
-phys_addr_t memblock_start_of_DRAM(void);
-phys_addr_t memblock_end_of_DRAM(void);
-void memblock_enforce_memory_limit(phys_addr_t memory_limit);
-int memblock_is_memory(phys_addr_t addr);
-int memblock_is_region_memory(phys_addr_t base, phys_addr_t size);
-int memblock_is_reserved(phys_addr_t addr);
-int memblock_is_region_reserved(phys_addr_t base, phys_addr_t size);
-
-extern void __memblock_dump_all(void);
-
-static inline void memblock_dump_all(void)
-{
- if (memblock_debug)
- __memblock_dump_all();
-}
-
-/**
- * memblock_set_current_limit - Set the current allocation limit to allow
- * limiting allocations to what is currently
- * accessible during boot
- * @limit: New limit value (physical address)
- */
-void memblock_set_current_limit(phys_addr_t limit);
-
-
-/*
- * pfn conversion functions
- *
- * While the memory MEMBLOCKs should always be page aligned, the reserved
- * MEMBLOCKs may not be. This accessor attempt to provide a very clear
- * idea of what they return for such non aligned MEMBLOCKs.
- */
-
-/**
- * memblock_region_memory_base_pfn - Return the lowest pfn intersecting with the memory region
- * @reg: memblock_region structure
- */
-static inline unsigned long memblock_region_memory_base_pfn(const struct memblock_region *reg)
-{
- return PFN_UP(reg->base);
-}
-
-/**
- * memblock_region_memory_end_pfn - Return the end_pfn this region
- * @reg: memblock_region structure
- */
-static inline unsigned long memblock_region_memory_end_pfn(const struct memblock_region *reg)
-{
- return PFN_DOWN(reg->base + reg->size);
-}
-
-/**
- * memblock_region_reserved_base_pfn - Return the lowest pfn intersecting with the reserved region
- * @reg: memblock_region structure
- */
-static inline unsigned long memblock_region_reserved_base_pfn(const struct memblock_region *reg)
-{
- return PFN_DOWN(reg->base);
-}
-
-/**
- * memblock_region_reserved_end_pfn - Return the end_pfn this region
- * @reg: memblock_region structure
- */
-static inline unsigned long memblock_region_reserved_end_pfn(const struct memblock_region *reg)
-{
- return PFN_UP(reg->base + reg->size);
-}
-
-#define for_each_memblock(memblock_type, region) \
- for (region = memblock.memblock_type.regions; \
- region < (memblock.memblock_type.regions + memblock.memblock_type.cnt); \
- region++)
-
-
-#ifdef CONFIG_ARCH_DISCARD_MEMBLOCK
-#define __init_memblock __meminit
-#define __initdata_memblock __meminitdata
-#else
-#define __init_memblock
-#define __initdata_memblock
-#endif
-
-#else
-static inline phys_addr_t memblock_alloc(phys_addr_t size, phys_addr_t align)
-{
- return 0;
-}
-
-#endif /* CONFIG_HAVE_MEMBLOCK */
-
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_MEMBLOCK_H */
diff --git a/ANDROID_3.4.5/include/linux/memcontrol.h b/ANDROID_3.4.5/include/linux/memcontrol.h
deleted file mode 100644
index f94efd2f..00000000
--- a/ANDROID_3.4.5/include/linux/memcontrol.h
+++ /dev/null
@@ -1,452 +0,0 @@
-/* memcontrol.h - Memory Controller
- *
- * Copyright IBM Corporation, 2007
- * Author Balbir Singh <balbir@linux.vnet.ibm.com>
- *
- * Copyright 2007 OpenVZ SWsoft Inc
- * Author: Pavel Emelianov <xemul@openvz.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.
- */
-
-#ifndef _LINUX_MEMCONTROL_H
-#define _LINUX_MEMCONTROL_H
-#include <linux/cgroup.h>
-#include <linux/vm_event_item.h>
-
-struct mem_cgroup;
-struct page_cgroup;
-struct page;
-struct mm_struct;
-
-/* Stats that can be updated by kernel. */
-enum mem_cgroup_page_stat_item {
- MEMCG_NR_FILE_MAPPED, /* # of pages charged as file rss */
-};
-
-struct mem_cgroup_reclaim_cookie {
- struct zone *zone;
- int priority;
- unsigned int generation;
-};
-
-#ifdef CONFIG_CGROUP_MEM_RES_CTLR
-/*
- * All "charge" functions with gfp_mask should use GFP_KERNEL or
- * (gfp_mask & GFP_RECLAIM_MASK). In current implementatin, memcg doesn't
- * alloc memory but reclaims memory from all available zones. So, "where I want
- * memory from" bits of gfp_mask has no meaning. So any bits of that field is
- * available but adding a rule is better. charge functions' gfp_mask should
- * be set to GFP_KERNEL or gfp_mask & GFP_RECLAIM_MASK for avoiding ambiguous
- * codes.
- * (Of course, if memcg does memory allocation in future, GFP_KERNEL is sane.)
- */
-
-extern int mem_cgroup_newpage_charge(struct page *page, struct mm_struct *mm,
- gfp_t gfp_mask);
-/* for swap handling */
-extern int mem_cgroup_try_charge_swapin(struct mm_struct *mm,
- struct page *page, gfp_t mask, struct mem_cgroup **memcgp);
-extern void mem_cgroup_commit_charge_swapin(struct page *page,
- struct mem_cgroup *memcg);
-extern void mem_cgroup_cancel_charge_swapin(struct mem_cgroup *memcg);
-
-extern int mem_cgroup_cache_charge(struct page *page, struct mm_struct *mm,
- gfp_t gfp_mask);
-
-struct lruvec *mem_cgroup_zone_lruvec(struct zone *, struct mem_cgroup *);
-struct lruvec *mem_cgroup_lru_add_list(struct zone *, struct page *,
- enum lru_list);
-void mem_cgroup_lru_del_list(struct page *, enum lru_list);
-void mem_cgroup_lru_del(struct page *);
-struct lruvec *mem_cgroup_lru_move_lists(struct zone *, struct page *,
- enum lru_list, enum lru_list);
-
-/* For coalescing uncharge for reducing memcg' overhead*/
-extern void mem_cgroup_uncharge_start(void);
-extern void mem_cgroup_uncharge_end(void);
-
-extern void mem_cgroup_uncharge_page(struct page *page);
-extern void mem_cgroup_uncharge_cache_page(struct page *page);
-
-extern void mem_cgroup_out_of_memory(struct mem_cgroup *memcg, gfp_t gfp_mask,
- int order);
-int task_in_mem_cgroup(struct task_struct *task, const struct mem_cgroup *memcg);
-
-extern struct mem_cgroup *try_get_mem_cgroup_from_page(struct page *page);
-extern struct mem_cgroup *mem_cgroup_from_task(struct task_struct *p);
-extern struct mem_cgroup *try_get_mem_cgroup_from_mm(struct mm_struct *mm);
-
-extern struct mem_cgroup *parent_mem_cgroup(struct mem_cgroup *memcg);
-extern struct mem_cgroup *mem_cgroup_from_cont(struct cgroup *cont);
-
-static inline
-int mm_match_cgroup(const struct mm_struct *mm, const struct mem_cgroup *cgroup)
-{
- struct mem_cgroup *memcg;
- rcu_read_lock();
- memcg = mem_cgroup_from_task(rcu_dereference((mm)->owner));
- rcu_read_unlock();
- return cgroup == memcg;
-}
-
-extern struct cgroup_subsys_state *mem_cgroup_css(struct mem_cgroup *memcg);
-
-extern int
-mem_cgroup_prepare_migration(struct page *page,
- struct page *newpage, struct mem_cgroup **memcgp, gfp_t gfp_mask);
-extern void mem_cgroup_end_migration(struct mem_cgroup *memcg,
- struct page *oldpage, struct page *newpage, bool migration_ok);
-
-struct mem_cgroup *mem_cgroup_iter(struct mem_cgroup *,
- struct mem_cgroup *,
- struct mem_cgroup_reclaim_cookie *);
-void mem_cgroup_iter_break(struct mem_cgroup *, struct mem_cgroup *);
-
-/*
- * For memory reclaim.
- */
-int mem_cgroup_inactive_anon_is_low(struct mem_cgroup *memcg,
- struct zone *zone);
-int mem_cgroup_inactive_file_is_low(struct mem_cgroup *memcg,
- struct zone *zone);
-int mem_cgroup_select_victim_node(struct mem_cgroup *memcg);
-unsigned long mem_cgroup_zone_nr_lru_pages(struct mem_cgroup *memcg,
- int nid, int zid, unsigned int lrumask);
-struct zone_reclaim_stat *mem_cgroup_get_reclaim_stat(struct mem_cgroup *memcg,
- struct zone *zone);
-struct zone_reclaim_stat*
-mem_cgroup_get_reclaim_stat_from_page(struct page *page);
-extern void mem_cgroup_print_oom_info(struct mem_cgroup *memcg,
- struct task_struct *p);
-extern void mem_cgroup_replace_page_cache(struct page *oldpage,
- struct page *newpage);
-
-#ifdef CONFIG_CGROUP_MEM_RES_CTLR_SWAP
-extern int do_swap_account;
-#endif
-
-static inline bool mem_cgroup_disabled(void)
-{
- if (mem_cgroup_subsys.disabled)
- return true;
- return false;
-}
-
-void __mem_cgroup_begin_update_page_stat(struct page *page, bool *locked,
- unsigned long *flags);
-
-extern atomic_t memcg_moving;
-
-static inline void mem_cgroup_begin_update_page_stat(struct page *page,
- bool *locked, unsigned long *flags)
-{
- if (mem_cgroup_disabled())
- return;
- rcu_read_lock();
- *locked = false;
- if (atomic_read(&memcg_moving))
- __mem_cgroup_begin_update_page_stat(page, locked, flags);
-}
-
-void __mem_cgroup_end_update_page_stat(struct page *page,
- unsigned long *flags);
-static inline void mem_cgroup_end_update_page_stat(struct page *page,
- bool *locked, unsigned long *flags)
-{
- if (mem_cgroup_disabled())
- return;
- if (*locked)
- __mem_cgroup_end_update_page_stat(page, flags);
- rcu_read_unlock();
-}
-
-void mem_cgroup_update_page_stat(struct page *page,
- enum mem_cgroup_page_stat_item idx,
- int val);
-
-static inline void mem_cgroup_inc_page_stat(struct page *page,
- enum mem_cgroup_page_stat_item idx)
-{
- mem_cgroup_update_page_stat(page, idx, 1);
-}
-
-static inline void mem_cgroup_dec_page_stat(struct page *page,
- enum mem_cgroup_page_stat_item idx)
-{
- mem_cgroup_update_page_stat(page, idx, -1);
-}
-
-unsigned long mem_cgroup_soft_limit_reclaim(struct zone *zone, int order,
- gfp_t gfp_mask,
- unsigned long *total_scanned);
-u64 mem_cgroup_get_limit(struct mem_cgroup *memcg);
-
-void mem_cgroup_count_vm_event(struct mm_struct *mm, enum vm_event_item idx);
-#ifdef CONFIG_TRANSPARENT_HUGEPAGE
-void mem_cgroup_split_huge_fixup(struct page *head);
-#endif
-
-#ifdef CONFIG_DEBUG_VM
-bool mem_cgroup_bad_page_check(struct page *page);
-void mem_cgroup_print_bad_page(struct page *page);
-#endif
-#else /* CONFIG_CGROUP_MEM_RES_CTLR */
-struct mem_cgroup;
-
-static inline int mem_cgroup_newpage_charge(struct page *page,
- struct mm_struct *mm, gfp_t gfp_mask)
-{
- return 0;
-}
-
-static inline int mem_cgroup_cache_charge(struct page *page,
- struct mm_struct *mm, gfp_t gfp_mask)
-{
- return 0;
-}
-
-static inline int mem_cgroup_try_charge_swapin(struct mm_struct *mm,
- struct page *page, gfp_t gfp_mask, struct mem_cgroup **memcgp)
-{
- return 0;
-}
-
-static inline void mem_cgroup_commit_charge_swapin(struct page *page,
- struct mem_cgroup *memcg)
-{
-}
-
-static inline void mem_cgroup_cancel_charge_swapin(struct mem_cgroup *memcg)
-{
-}
-
-static inline void mem_cgroup_uncharge_start(void)
-{
-}
-
-static inline void mem_cgroup_uncharge_end(void)
-{
-}
-
-static inline void mem_cgroup_uncharge_page(struct page *page)
-{
-}
-
-static inline void mem_cgroup_uncharge_cache_page(struct page *page)
-{
-}
-
-static inline struct lruvec *mem_cgroup_zone_lruvec(struct zone *zone,
- struct mem_cgroup *memcg)
-{
- return &zone->lruvec;
-}
-
-static inline struct lruvec *mem_cgroup_lru_add_list(struct zone *zone,
- struct page *page,
- enum lru_list lru)
-{
- return &zone->lruvec;
-}
-
-static inline void mem_cgroup_lru_del_list(struct page *page, enum lru_list lru)
-{
-}
-
-static inline void mem_cgroup_lru_del(struct page *page)
-{
-}
-
-static inline struct lruvec *mem_cgroup_lru_move_lists(struct zone *zone,
- struct page *page,
- enum lru_list from,
- enum lru_list to)
-{
- return &zone->lruvec;
-}
-
-static inline struct mem_cgroup *try_get_mem_cgroup_from_page(struct page *page)
-{
- return NULL;
-}
-
-static inline struct mem_cgroup *try_get_mem_cgroup_from_mm(struct mm_struct *mm)
-{
- return NULL;
-}
-
-static inline int mm_match_cgroup(struct mm_struct *mm,
- struct mem_cgroup *memcg)
-{
- return 1;
-}
-
-static inline int task_in_mem_cgroup(struct task_struct *task,
- const struct mem_cgroup *memcg)
-{
- return 1;
-}
-
-static inline struct cgroup_subsys_state
- *mem_cgroup_css(struct mem_cgroup *memcg)
-{
- return NULL;
-}
-
-static inline int
-mem_cgroup_prepare_migration(struct page *page, struct page *newpage,
- struct mem_cgroup **memcgp, gfp_t gfp_mask)
-{
- return 0;
-}
-
-static inline void mem_cgroup_end_migration(struct mem_cgroup *memcg,
- struct page *oldpage, struct page *newpage, bool migration_ok)
-{
-}
-
-static inline struct mem_cgroup *
-mem_cgroup_iter(struct mem_cgroup *root,
- struct mem_cgroup *prev,
- struct mem_cgroup_reclaim_cookie *reclaim)
-{
- return NULL;
-}
-
-static inline void mem_cgroup_iter_break(struct mem_cgroup *root,
- struct mem_cgroup *prev)
-{
-}
-
-static inline bool mem_cgroup_disabled(void)
-{
- return true;
-}
-
-static inline int
-mem_cgroup_inactive_anon_is_low(struct mem_cgroup *memcg, struct zone *zone)
-{
- return 1;
-}
-
-static inline int
-mem_cgroup_inactive_file_is_low(struct mem_cgroup *memcg, struct zone *zone)
-{
- return 1;
-}
-
-static inline unsigned long
-mem_cgroup_zone_nr_lru_pages(struct mem_cgroup *memcg, int nid, int zid,
- unsigned int lru_mask)
-{
- return 0;
-}
-
-
-static inline struct zone_reclaim_stat*
-mem_cgroup_get_reclaim_stat(struct mem_cgroup *memcg, struct zone *zone)
-{
- return NULL;
-}
-
-static inline struct zone_reclaim_stat*
-mem_cgroup_get_reclaim_stat_from_page(struct page *page)
-{
- return NULL;
-}
-
-static inline void
-mem_cgroup_print_oom_info(struct mem_cgroup *memcg, struct task_struct *p)
-{
-}
-
-static inline void mem_cgroup_begin_update_page_stat(struct page *page,
- bool *locked, unsigned long *flags)
-{
-}
-
-static inline void mem_cgroup_end_update_page_stat(struct page *page,
- bool *locked, unsigned long *flags)
-{
-}
-
-static inline void mem_cgroup_inc_page_stat(struct page *page,
- enum mem_cgroup_page_stat_item idx)
-{
-}
-
-static inline void mem_cgroup_dec_page_stat(struct page *page,
- enum mem_cgroup_page_stat_item idx)
-{
-}
-
-static inline
-unsigned long mem_cgroup_soft_limit_reclaim(struct zone *zone, int order,
- gfp_t gfp_mask,
- unsigned long *total_scanned)
-{
- return 0;
-}
-
-static inline
-u64 mem_cgroup_get_limit(struct mem_cgroup *memcg)
-{
- return 0;
-}
-
-static inline void mem_cgroup_split_huge_fixup(struct page *head)
-{
-}
-
-static inline
-void mem_cgroup_count_vm_event(struct mm_struct *mm, enum vm_event_item idx)
-{
-}
-static inline void mem_cgroup_replace_page_cache(struct page *oldpage,
- struct page *newpage)
-{
-}
-#endif /* CONFIG_CGROUP_MEM_RES_CTLR */
-
-#if !defined(CONFIG_CGROUP_MEM_RES_CTLR) || !defined(CONFIG_DEBUG_VM)
-static inline bool
-mem_cgroup_bad_page_check(struct page *page)
-{
- return false;
-}
-
-static inline void
-mem_cgroup_print_bad_page(struct page *page)
-{
-}
-#endif
-
-enum {
- UNDER_LIMIT,
- SOFT_LIMIT,
- OVER_LIMIT,
-};
-
-struct sock;
-#ifdef CONFIG_CGROUP_MEM_RES_CTLR_KMEM
-void sock_update_memcg(struct sock *sk);
-void sock_release_memcg(struct sock *sk);
-#else
-static inline void sock_update_memcg(struct sock *sk)
-{
-}
-static inline void sock_release_memcg(struct sock *sk)
-{
-}
-#endif /* CONFIG_CGROUP_MEM_RES_CTLR_KMEM */
-#endif /* _LINUX_MEMCONTROL_H */
-
diff --git a/ANDROID_3.4.5/include/linux/memory.h b/ANDROID_3.4.5/include/linux/memory.h
deleted file mode 100644
index 1ac7f6e4..00000000
--- a/ANDROID_3.4.5/include/linux/memory.h
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * include/linux/memory.h - generic memory definition
- *
- * This is mainly for topological representation. We define the
- * basic "struct memory_block" here, which can be embedded in per-arch
- * definitions or NUMA information.
- *
- * Basic handling of the devices is done in drivers/base/memory.c
- * and system devices are handled in drivers/base/sys.c.
- *
- * Memory block are exported via sysfs in the class/memory/devices/
- * directory.
- *
- */
-#ifndef _LINUX_MEMORY_H_
-#define _LINUX_MEMORY_H_
-
-#include <linux/node.h>
-#include <linux/compiler.h>
-#include <linux/mutex.h>
-
-#define MIN_MEMORY_BLOCK_SIZE (1 << SECTION_SIZE_BITS)
-
-struct memory_block {
- unsigned long start_section_nr;
- unsigned long end_section_nr;
- unsigned long state;
- int section_count;
-
- /*
- * This serializes all state change requests. It isn't
- * held during creation because the control files are
- * created long after the critical areas during
- * initialization.
- */
- struct mutex state_mutex;
- int phys_device; /* to which fru does this belong? */
- void *hw; /* optional pointer to fw/hw data */
- int (*phys_callback)(struct memory_block *);
- struct device dev;
-};
-
-int arch_get_memory_phys_device(unsigned long start_pfn);
-
-/* These states are exposed to userspace as text strings in sysfs */
-#define MEM_ONLINE (1<<0) /* exposed to userspace */
-#define MEM_GOING_OFFLINE (1<<1) /* exposed to userspace */
-#define MEM_OFFLINE (1<<2) /* exposed to userspace */
-#define MEM_GOING_ONLINE (1<<3)
-#define MEM_CANCEL_ONLINE (1<<4)
-#define MEM_CANCEL_OFFLINE (1<<5)
-
-struct memory_notify {
- unsigned long start_pfn;
- unsigned long nr_pages;
- int status_change_nid;
-};
-
-/*
- * During pageblock isolation, count the number of pages within the
- * range [start_pfn, start_pfn + nr_pages) which are owned by code
- * in the notifier chain.
- */
-#define MEM_ISOLATE_COUNT (1<<0)
-
-struct memory_isolate_notify {
- unsigned long start_pfn; /* Start of range to check */
- unsigned int nr_pages; /* # pages in range to check */
- unsigned int pages_found; /* # pages owned found by callbacks */
-};
-
-struct notifier_block;
-struct mem_section;
-
-/*
- * Priorities for the hotplug memory callback routines (stored in decreasing
- * order in the callback chain)
- */
-#define SLAB_CALLBACK_PRI 1
-#define IPC_CALLBACK_PRI 10
-
-#ifndef CONFIG_MEMORY_HOTPLUG_SPARSE
-static inline int memory_dev_init(void)
-{
- return 0;
-}
-static inline int register_memory_notifier(struct notifier_block *nb)
-{
- return 0;
-}
-static inline void unregister_memory_notifier(struct notifier_block *nb)
-{
-}
-static inline int memory_notify(unsigned long val, void *v)
-{
- return 0;
-}
-static inline int register_memory_isolate_notifier(struct notifier_block *nb)
-{
- return 0;
-}
-static inline void unregister_memory_isolate_notifier(struct notifier_block *nb)
-{
-}
-static inline int memory_isolate_notify(unsigned long val, void *v)
-{
- return 0;
-}
-#else
-extern int register_memory_notifier(struct notifier_block *nb);
-extern void unregister_memory_notifier(struct notifier_block *nb);
-extern int register_memory_isolate_notifier(struct notifier_block *nb);
-extern void unregister_memory_isolate_notifier(struct notifier_block *nb);
-extern int register_new_memory(int, struct mem_section *);
-extern int unregister_memory_section(struct mem_section *);
-extern int memory_dev_init(void);
-extern int remove_memory_block(unsigned long, struct mem_section *, int);
-extern int memory_notify(unsigned long val, void *v);
-extern int memory_isolate_notify(unsigned long val, void *v);
-extern struct memory_block *find_memory_block_hinted(struct mem_section *,
- struct memory_block *);
-extern struct memory_block *find_memory_block(struct mem_section *);
-#define CONFIG_MEM_BLOCK_SIZE (PAGES_PER_SECTION<<PAGE_SHIFT)
-enum mem_add_context { BOOT, HOTPLUG };
-#endif /* CONFIG_MEMORY_HOTPLUG_SPARSE */
-
-#ifdef CONFIG_MEMORY_HOTPLUG
-#define hotplug_memory_notifier(fn, pri) { \
- static __meminitdata struct notifier_block fn##_mem_nb =\
- { .notifier_call = fn, .priority = pri }; \
- register_memory_notifier(&fn##_mem_nb); \
-}
-#else
-#define hotplug_memory_notifier(fn, pri) do { } while (0)
-#endif
-
-/*
- * 'struct memory_accessor' is a generic interface to provide
- * in-kernel access to persistent memory such as i2c or SPI EEPROMs
- */
-struct memory_accessor {
- ssize_t (*read)(struct memory_accessor *, char *buf, off_t offset,
- size_t count);
- ssize_t (*write)(struct memory_accessor *, const char *buf,
- off_t offset, size_t count);
-};
-
-/*
- * Kernel text modification mutex, used for code patching. Users of this lock
- * can sleep.
- */
-extern struct mutex text_mutex;
-
-#endif /* _LINUX_MEMORY_H_ */
diff --git a/ANDROID_3.4.5/include/linux/memory_hotplug.h b/ANDROID_3.4.5/include/linux/memory_hotplug.h
deleted file mode 100644
index 910550f3..00000000
--- a/ANDROID_3.4.5/include/linux/memory_hotplug.h
+++ /dev/null
@@ -1,243 +0,0 @@
-#ifndef __LINUX_MEMORY_HOTPLUG_H
-#define __LINUX_MEMORY_HOTPLUG_H
-
-#include <linux/mmzone.h>
-#include <linux/spinlock.h>
-#include <linux/notifier.h>
-#include <linux/bug.h>
-
-struct page;
-struct zone;
-struct pglist_data;
-struct mem_section;
-
-#ifdef CONFIG_MEMORY_HOTPLUG
-
-/*
- * Types for free bootmem stored in page->lru.next. These have to be in
- * some random range in unsigned long space for debugging purposes.
- */
-enum {
- MEMORY_HOTPLUG_MIN_BOOTMEM_TYPE = 12,
- SECTION_INFO = MEMORY_HOTPLUG_MIN_BOOTMEM_TYPE,
- MIX_SECTION_INFO,
- NODE_INFO,
- MEMORY_HOTPLUG_MAX_BOOTMEM_TYPE = NODE_INFO,
-};
-
-/*
- * pgdat resizing functions
- */
-static inline
-void pgdat_resize_lock(struct pglist_data *pgdat, unsigned long *flags)
-{
- spin_lock_irqsave(&pgdat->node_size_lock, *flags);
-}
-static inline
-void pgdat_resize_unlock(struct pglist_data *pgdat, unsigned long *flags)
-{
- spin_unlock_irqrestore(&pgdat->node_size_lock, *flags);
-}
-static inline
-void pgdat_resize_init(struct pglist_data *pgdat)
-{
- spin_lock_init(&pgdat->node_size_lock);
-}
-/*
- * Zone resizing functions
- */
-static inline unsigned zone_span_seqbegin(struct zone *zone)
-{
- return read_seqbegin(&zone->span_seqlock);
-}
-static inline int zone_span_seqretry(struct zone *zone, unsigned iv)
-{
- return read_seqretry(&zone->span_seqlock, iv);
-}
-static inline void zone_span_writelock(struct zone *zone)
-{
- write_seqlock(&zone->span_seqlock);
-}
-static inline void zone_span_writeunlock(struct zone *zone)
-{
- write_sequnlock(&zone->span_seqlock);
-}
-static inline void zone_seqlock_init(struct zone *zone)
-{
- seqlock_init(&zone->span_seqlock);
-}
-extern int zone_grow_free_lists(struct zone *zone, unsigned long new_nr_pages);
-extern int zone_grow_waitqueues(struct zone *zone, unsigned long nr_pages);
-extern int add_one_highpage(struct page *page, int pfn, int bad_ppro);
-/* VM interface that may be used by firmware interface */
-extern int online_pages(unsigned long, unsigned long);
-extern void __offline_isolated_pages(unsigned long, unsigned long);
-
-typedef void (*online_page_callback_t)(struct page *page);
-
-extern int set_online_page_callback(online_page_callback_t callback);
-extern int restore_online_page_callback(online_page_callback_t callback);
-
-extern void __online_page_set_limits(struct page *page);
-extern void __online_page_increment_counters(struct page *page);
-extern void __online_page_free(struct page *page);
-
-#ifdef CONFIG_MEMORY_HOTREMOVE
-extern bool is_pageblock_removable_nolock(struct page *page);
-#endif /* CONFIG_MEMORY_HOTREMOVE */
-
-/* reasonably generic interface to expand the physical pages in a zone */
-extern int __add_pages(int nid, struct zone *zone, unsigned long start_pfn,
- unsigned long nr_pages);
-extern int __remove_pages(struct zone *zone, unsigned long start_pfn,
- unsigned long nr_pages);
-
-#ifdef CONFIG_NUMA
-extern int memory_add_physaddr_to_nid(u64 start);
-#else
-static inline int memory_add_physaddr_to_nid(u64 start)
-{
- return 0;
-}
-#endif
-
-#ifdef CONFIG_HAVE_ARCH_NODEDATA_EXTENSION
-/*
- * For supporting node-hotadd, we have to allocate a new pgdat.
- *
- * If an arch has generic style NODE_DATA(),
- * node_data[nid] = kzalloc() works well. But it depends on the architecture.
- *
- * In general, generic_alloc_nodedata() is used.
- * Now, arch_free_nodedata() is just defined for error path of node_hot_add.
- *
- */
-extern pg_data_t *arch_alloc_nodedata(int nid);
-extern void arch_free_nodedata(pg_data_t *pgdat);
-extern void arch_refresh_nodedata(int nid, pg_data_t *pgdat);
-
-#else /* CONFIG_HAVE_ARCH_NODEDATA_EXTENSION */
-
-#define arch_alloc_nodedata(nid) generic_alloc_nodedata(nid)
-#define arch_free_nodedata(pgdat) generic_free_nodedata(pgdat)
-
-#ifdef CONFIG_NUMA
-/*
- * If ARCH_HAS_NODEDATA_EXTENSION=n, this func is used to allocate pgdat.
- * XXX: kmalloc_node() can't work well to get new node's memory at this time.
- * Because, pgdat for the new node is not allocated/initialized yet itself.
- * To use new node's memory, more consideration will be necessary.
- */
-#define generic_alloc_nodedata(nid) \
-({ \
- kzalloc(sizeof(pg_data_t), GFP_KERNEL); \
-})
-/*
- * This definition is just for error path in node hotadd.
- * For node hotremove, we have to replace this.
- */
-#define generic_free_nodedata(pgdat) kfree(pgdat)
-
-extern pg_data_t *node_data[];
-static inline void arch_refresh_nodedata(int nid, pg_data_t *pgdat)
-{
- node_data[nid] = pgdat;
-}
-
-#else /* !CONFIG_NUMA */
-
-/* never called */
-static inline pg_data_t *generic_alloc_nodedata(int nid)
-{
- BUG();
- return NULL;
-}
-static inline void generic_free_nodedata(pg_data_t *pgdat)
-{
-}
-static inline void arch_refresh_nodedata(int nid, pg_data_t *pgdat)
-{
-}
-#endif /* CONFIG_NUMA */
-#endif /* CONFIG_HAVE_ARCH_NODEDATA_EXTENSION */
-
-#ifdef CONFIG_SPARSEMEM_VMEMMAP
-static inline void register_page_bootmem_info_node(struct pglist_data *pgdat)
-{
-}
-static inline void put_page_bootmem(struct page *page)
-{
-}
-#else
-extern void register_page_bootmem_info_node(struct pglist_data *pgdat);
-extern void put_page_bootmem(struct page *page);
-#endif
-
-/*
- * Lock for memory hotplug guarantees 1) all callbacks for memory hotplug
- * notifier will be called under this. 2) offline/online/add/remove memory
- * will not run simultaneously.
- */
-
-void lock_memory_hotplug(void);
-void unlock_memory_hotplug(void);
-
-#else /* ! CONFIG_MEMORY_HOTPLUG */
-/*
- * Stub functions for when hotplug is off
- */
-static inline void pgdat_resize_lock(struct pglist_data *p, unsigned long *f) {}
-static inline void pgdat_resize_unlock(struct pglist_data *p, unsigned long *f) {}
-static inline void pgdat_resize_init(struct pglist_data *pgdat) {}
-
-static inline unsigned zone_span_seqbegin(struct zone *zone)
-{
- return 0;
-}
-static inline int zone_span_seqretry(struct zone *zone, unsigned iv)
-{
- return 0;
-}
-static inline void zone_span_writelock(struct zone *zone) {}
-static inline void zone_span_writeunlock(struct zone *zone) {}
-static inline void zone_seqlock_init(struct zone *zone) {}
-
-static inline int mhp_notimplemented(const char *func)
-{
- printk(KERN_WARNING "%s() called, with CONFIG_MEMORY_HOTPLUG disabled\n", func);
- dump_stack();
- return -ENOSYS;
-}
-
-static inline void register_page_bootmem_info_node(struct pglist_data *pgdat)
-{
-}
-
-static inline void lock_memory_hotplug(void) {}
-static inline void unlock_memory_hotplug(void) {}
-
-#endif /* ! CONFIG_MEMORY_HOTPLUG */
-
-#ifdef CONFIG_MEMORY_HOTREMOVE
-
-extern int is_mem_section_removable(unsigned long pfn, unsigned long nr_pages);
-
-#else
-static inline int is_mem_section_removable(unsigned long pfn,
- unsigned long nr_pages)
-{
- return 0;
-}
-#endif /* CONFIG_MEMORY_HOTREMOVE */
-
-extern int mem_online_node(int nid);
-extern int add_memory(int nid, u64 start, u64 size);
-extern int arch_add_memory(int nid, u64 start, u64 size);
-extern int remove_memory(u64 start, u64 size);
-extern int sparse_add_one_section(struct zone *zone, unsigned long start_pfn,
- int nr_pages);
-extern void sparse_remove_one_section(struct zone *zone, struct mem_section *ms);
-extern struct page *sparse_decode_mem_map(unsigned long coded_mem_map,
- unsigned long pnum);
-
-#endif /* __LINUX_MEMORY_HOTPLUG_H */
diff --git a/ANDROID_3.4.5/include/linux/mempolicy.h b/ANDROID_3.4.5/include/linux/mempolicy.h
deleted file mode 100644
index 7c727a90..00000000
--- a/ANDROID_3.4.5/include/linux/mempolicy.h
+++ /dev/null
@@ -1,385 +0,0 @@
-#ifndef _LINUX_MEMPOLICY_H
-#define _LINUX_MEMPOLICY_H 1
-
-#include <linux/errno.h>
-
-/*
- * NUMA memory policies for Linux.
- * Copyright 2003,2004 Andi Kleen SuSE Labs
- */
-
-/*
- * Both the MPOL_* mempolicy mode and the MPOL_F_* optional mode flags are
- * passed by the user to either set_mempolicy() or mbind() in an 'int' actual.
- * The MPOL_MODE_FLAGS macro determines the legal set of optional mode flags.
- */
-
-/* Policies */
-enum {
- MPOL_DEFAULT,
- MPOL_PREFERRED,
- MPOL_BIND,
- MPOL_INTERLEAVE,
- MPOL_MAX, /* always last member of enum */
-};
-
-enum mpol_rebind_step {
- MPOL_REBIND_ONCE, /* do rebind work at once(not by two step) */
- MPOL_REBIND_STEP1, /* first step(set all the newly nodes) */
- MPOL_REBIND_STEP2, /* second step(clean all the disallowed nodes)*/
- MPOL_REBIND_NSTEP,
-};
-
-/* Flags for set_mempolicy */
-#define MPOL_F_STATIC_NODES (1 << 15)
-#define MPOL_F_RELATIVE_NODES (1 << 14)
-
-/*
- * MPOL_MODE_FLAGS is the union of all possible optional mode flags passed to
- * either set_mempolicy() or mbind().
- */
-#define MPOL_MODE_FLAGS (MPOL_F_STATIC_NODES | MPOL_F_RELATIVE_NODES)
-
-/* Flags for get_mempolicy */
-#define MPOL_F_NODE (1<<0) /* return next IL mode instead of node mask */
-#define MPOL_F_ADDR (1<<1) /* look up vma using address */
-#define MPOL_F_MEMS_ALLOWED (1<<2) /* return allowed memories */
-
-/* Flags for mbind */
-#define MPOL_MF_STRICT (1<<0) /* Verify existing pages in the mapping */
-#define MPOL_MF_MOVE (1<<1) /* Move pages owned by this process to conform to mapping */
-#define MPOL_MF_MOVE_ALL (1<<2) /* Move every page to conform to mapping */
-#define MPOL_MF_INTERNAL (1<<3) /* Internal flags start here */
-
-/*
- * Internal flags that share the struct mempolicy flags word with
- * "mode flags". These flags are allocated from bit 0 up, as they
- * are never OR'ed into the mode in mempolicy API arguments.
- */
-#define MPOL_F_SHARED (1 << 0) /* identify shared policies */
-#define MPOL_F_LOCAL (1 << 1) /* preferred local allocation */
-#define MPOL_F_REBINDING (1 << 2) /* identify policies in rebinding */
-
-#ifdef __KERNEL__
-
-#include <linux/mmzone.h>
-#include <linux/slab.h>
-#include <linux/rbtree.h>
-#include <linux/spinlock.h>
-#include <linux/nodemask.h>
-#include <linux/pagemap.h>
-
-struct mm_struct;
-
-#ifdef CONFIG_NUMA
-
-/*
- * Describe a memory policy.
- *
- * A mempolicy can be either associated with a process or with a VMA.
- * For VMA related allocations the VMA policy is preferred, otherwise
- * the process policy is used. Interrupts ignore the memory policy
- * of the current process.
- *
- * Locking policy for interlave:
- * In process context there is no locking because only the process accesses
- * its own state. All vma manipulation is somewhat protected by a down_read on
- * mmap_sem.
- *
- * Freeing policy:
- * Mempolicy objects are reference counted. A mempolicy will be freed when
- * mpol_put() decrements the reference count to zero.
- *
- * Duplicating policy objects:
- * mpol_dup() allocates a new mempolicy and copies the specified mempolicy
- * to the new storage. The reference count of the new object is initialized
- * to 1, representing the caller of mpol_dup().
- */
-struct mempolicy {
- atomic_t refcnt;
- unsigned short mode; /* See MPOL_* above */
- unsigned short flags; /* See set_mempolicy() MPOL_F_* above */
- union {
- short preferred_node; /* preferred */
- nodemask_t nodes; /* interleave/bind */
- /* undefined for default */
- } v;
- union {
- nodemask_t cpuset_mems_allowed; /* relative to these nodes */
- nodemask_t user_nodemask; /* nodemask passed by user */
- } w;
-};
-
-/*
- * Support for managing mempolicy data objects (clone, copy, destroy)
- * The default fast path of a NULL MPOL_DEFAULT policy is always inlined.
- */
-
-extern void __mpol_put(struct mempolicy *pol);
-static inline void mpol_put(struct mempolicy *pol)
-{
- if (pol)
- __mpol_put(pol);
-}
-
-/*
- * Does mempolicy pol need explicit unref after use?
- * Currently only needed for shared policies.
- */
-static inline int mpol_needs_cond_ref(struct mempolicy *pol)
-{
- return (pol && (pol->flags & MPOL_F_SHARED));
-}
-
-static inline void mpol_cond_put(struct mempolicy *pol)
-{
- if (mpol_needs_cond_ref(pol))
- __mpol_put(pol);
-}
-
-extern struct mempolicy *__mpol_cond_copy(struct mempolicy *tompol,
- struct mempolicy *frompol);
-static inline struct mempolicy *mpol_cond_copy(struct mempolicy *tompol,
- struct mempolicy *frompol)
-{
- if (!frompol)
- return frompol;
- return __mpol_cond_copy(tompol, frompol);
-}
-
-extern struct mempolicy *__mpol_dup(struct mempolicy *pol);
-static inline struct mempolicy *mpol_dup(struct mempolicy *pol)
-{
- if (pol)
- pol = __mpol_dup(pol);
- return pol;
-}
-
-#define vma_policy(vma) ((vma)->vm_policy)
-#define vma_set_policy(vma, pol) ((vma)->vm_policy = (pol))
-
-static inline void mpol_get(struct mempolicy *pol)
-{
- if (pol)
- atomic_inc(&pol->refcnt);
-}
-
-extern bool __mpol_equal(struct mempolicy *a, struct mempolicy *b);
-static inline bool mpol_equal(struct mempolicy *a, struct mempolicy *b)
-{
- if (a == b)
- return true;
- return __mpol_equal(a, b);
-}
-
-/*
- * Tree of shared policies for a shared memory region.
- * Maintain the policies in a pseudo mm that contains vmas. The vmas
- * carry the policy. As a special twist the pseudo mm is indexed in pages, not
- * bytes, so that we can work with shared memory segments bigger than
- * unsigned long.
- */
-
-struct sp_node {
- struct rb_node nd;
- unsigned long start, end;
- struct mempolicy *policy;
-};
-
-struct shared_policy {
- struct rb_root root;
- spinlock_t lock;
-};
-
-void mpol_shared_policy_init(struct shared_policy *sp, struct mempolicy *mpol);
-int mpol_set_shared_policy(struct shared_policy *info,
- struct vm_area_struct *vma,
- struct mempolicy *new);
-void mpol_free_shared_policy(struct shared_policy *p);
-struct mempolicy *mpol_shared_policy_lookup(struct shared_policy *sp,
- unsigned long idx);
-
-struct mempolicy *get_vma_policy(struct task_struct *tsk,
- struct vm_area_struct *vma, unsigned long addr);
-
-extern void numa_default_policy(void);
-extern void numa_policy_init(void);
-extern void mpol_rebind_task(struct task_struct *tsk, const nodemask_t *new,
- enum mpol_rebind_step step);
-extern void mpol_rebind_mm(struct mm_struct *mm, nodemask_t *new);
-extern void mpol_fix_fork_child_flag(struct task_struct *p);
-
-extern struct zonelist *huge_zonelist(struct vm_area_struct *vma,
- unsigned long addr, gfp_t gfp_flags,
- struct mempolicy **mpol, nodemask_t **nodemask);
-extern bool init_nodemask_of_mempolicy(nodemask_t *mask);
-extern bool mempolicy_nodemask_intersects(struct task_struct *tsk,
- const nodemask_t *mask);
-extern unsigned slab_node(struct mempolicy *policy);
-
-extern enum zone_type policy_zone;
-
-static inline void check_highest_zone(enum zone_type k)
-{
- if (k > policy_zone && k != ZONE_MOVABLE)
- policy_zone = k;
-}
-
-int do_migrate_pages(struct mm_struct *mm,
- const nodemask_t *from_nodes, const nodemask_t *to_nodes, int flags);
-
-
-#ifdef CONFIG_TMPFS
-extern int mpol_parse_str(char *str, struct mempolicy **mpol, int no_context);
-#endif
-
-extern int mpol_to_str(char *buffer, int maxlen, struct mempolicy *pol,
- int no_context);
-
-/* Check if a vma is migratable */
-static inline int vma_migratable(struct vm_area_struct *vma)
-{
- if (vma->vm_flags & (VM_IO|VM_HUGETLB|VM_PFNMAP|VM_RESERVED))
- return 0;
- /*
- * Migration allocates pages in the highest zone. If we cannot
- * do so then migration (at least from node to node) is not
- * possible.
- */
- if (vma->vm_file &&
- gfp_zone(mapping_gfp_mask(vma->vm_file->f_mapping))
- < policy_zone)
- return 0;
- return 1;
-}
-
-#else
-
-struct mempolicy {};
-
-static inline bool mpol_equal(struct mempolicy *a, struct mempolicy *b)
-{
- return true;
-}
-
-static inline void mpol_put(struct mempolicy *p)
-{
-}
-
-static inline void mpol_cond_put(struct mempolicy *pol)
-{
-}
-
-static inline struct mempolicy *mpol_cond_copy(struct mempolicy *to,
- struct mempolicy *from)
-{
- return from;
-}
-
-static inline void mpol_get(struct mempolicy *pol)
-{
-}
-
-static inline struct mempolicy *mpol_dup(struct mempolicy *old)
-{
- return NULL;
-}
-
-struct shared_policy {};
-
-static inline int mpol_set_shared_policy(struct shared_policy *info,
- struct vm_area_struct *vma,
- struct mempolicy *new)
-{
- return -EINVAL;
-}
-
-static inline void mpol_shared_policy_init(struct shared_policy *sp,
- struct mempolicy *mpol)
-{
-}
-
-static inline void mpol_free_shared_policy(struct shared_policy *p)
-{
-}
-
-static inline struct mempolicy *
-mpol_shared_policy_lookup(struct shared_policy *sp, unsigned long idx)
-{
- return NULL;
-}
-
-#define vma_policy(vma) NULL
-#define vma_set_policy(vma, pol) do {} while(0)
-
-static inline void numa_policy_init(void)
-{
-}
-
-static inline void numa_default_policy(void)
-{
-}
-
-static inline void mpol_rebind_task(struct task_struct *tsk,
- const nodemask_t *new,
- enum mpol_rebind_step step)
-{
-}
-
-static inline void mpol_rebind_mm(struct mm_struct *mm, nodemask_t *new)
-{
-}
-
-static inline void mpol_fix_fork_child_flag(struct task_struct *p)
-{
-}
-
-static inline struct zonelist *huge_zonelist(struct vm_area_struct *vma,
- unsigned long addr, gfp_t gfp_flags,
- struct mempolicy **mpol, nodemask_t **nodemask)
-{
- *mpol = NULL;
- *nodemask = NULL;
- return node_zonelist(0, gfp_flags);
-}
-
-static inline bool init_nodemask_of_mempolicy(nodemask_t *m)
-{
- return false;
-}
-
-static inline bool mempolicy_nodemask_intersects(struct task_struct *tsk,
- const nodemask_t *mask)
-{
- return false;
-}
-
-static inline int do_migrate_pages(struct mm_struct *mm,
- const nodemask_t *from_nodes,
- const nodemask_t *to_nodes, int flags)
-{
- return 0;
-}
-
-static inline void check_highest_zone(int k)
-{
-}
-
-#ifdef CONFIG_TMPFS
-static inline int mpol_parse_str(char *str, struct mempolicy **mpol,
- int no_context)
-{
- return 1; /* error */
-}
-#endif
-
-static inline int mpol_to_str(char *buffer, int maxlen, struct mempolicy *pol,
- int no_context)
-{
- return 0;
-}
-
-#endif /* CONFIG_NUMA */
-#endif /* __KERNEL__ */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mempool.h b/ANDROID_3.4.5/include/linux/mempool.h
deleted file mode 100644
index 7c08052e..00000000
--- a/ANDROID_3.4.5/include/linux/mempool.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * memory buffer pool support
- */
-#ifndef _LINUX_MEMPOOL_H
-#define _LINUX_MEMPOOL_H
-
-#include <linux/wait.h>
-
-struct kmem_cache;
-
-typedef void * (mempool_alloc_t)(gfp_t gfp_mask, void *pool_data);
-typedef void (mempool_free_t)(void *element, void *pool_data);
-
-typedef struct mempool_s {
- spinlock_t lock;
- int min_nr; /* nr of elements at *elements */
- int curr_nr; /* Current nr of elements at *elements */
- void **elements;
-
- void *pool_data;
- mempool_alloc_t *alloc;
- mempool_free_t *free;
- wait_queue_head_t wait;
-} mempool_t;
-
-extern mempool_t *mempool_create(int min_nr, mempool_alloc_t *alloc_fn,
- mempool_free_t *free_fn, void *pool_data);
-extern mempool_t *mempool_create_node(int min_nr, mempool_alloc_t *alloc_fn,
- mempool_free_t *free_fn, void *pool_data, int nid);
-
-extern int mempool_resize(mempool_t *pool, int new_min_nr, gfp_t gfp_mask);
-extern void mempool_destroy(mempool_t *pool);
-extern void * mempool_alloc(mempool_t *pool, gfp_t gfp_mask);
-extern void mempool_free(void *element, mempool_t *pool);
-
-/*
- * A mempool_alloc_t and mempool_free_t that get the memory from
- * a slab that is passed in through pool_data.
- */
-void *mempool_alloc_slab(gfp_t gfp_mask, void *pool_data);
-void mempool_free_slab(void *element, void *pool_data);
-static inline mempool_t *
-mempool_create_slab_pool(int min_nr, struct kmem_cache *kc)
-{
- return mempool_create(min_nr, mempool_alloc_slab, mempool_free_slab,
- (void *) kc);
-}
-
-/*
- * a mempool_alloc_t and a mempool_free_t to kmalloc and kfree the
- * amount of memory specified by pool_data
- */
-void *mempool_kmalloc(gfp_t gfp_mask, void *pool_data);
-void mempool_kfree(void *element, void *pool_data);
-static inline mempool_t *mempool_create_kmalloc_pool(int min_nr, size_t size)
-{
- return mempool_create(min_nr, mempool_kmalloc, mempool_kfree,
- (void *) size);
-}
-
-/*
- * A mempool_alloc_t and mempool_free_t for a simple page allocator that
- * allocates pages of the order specified by pool_data
- */
-void *mempool_alloc_pages(gfp_t gfp_mask, void *pool_data);
-void mempool_free_pages(void *element, void *pool_data);
-static inline mempool_t *mempool_create_page_pool(int min_nr, int order)
-{
- return mempool_create(min_nr, mempool_alloc_pages, mempool_free_pages,
- (void *)(long)order);
-}
-
-#endif /* _LINUX_MEMPOOL_H */
diff --git a/ANDROID_3.4.5/include/linux/memstick.h b/ANDROID_3.4.5/include/linux/memstick.h
deleted file mode 100644
index 690c35a9..00000000
--- a/ANDROID_3.4.5/include/linux/memstick.h
+++ /dev/null
@@ -1,347 +0,0 @@
-/*
- * Sony MemoryStick support
- *
- * Copyright (C) 2007 Alex Dubov <oakad@yahoo.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.
- *
- */
-
-#ifndef _MEMSTICK_H
-#define _MEMSTICK_H
-
-#include <linux/workqueue.h>
-#include <linux/scatterlist.h>
-#include <linux/device.h>
-
-/*** Hardware based structures ***/
-
-struct ms_status_register {
- unsigned char reserved;
- unsigned char interrupt;
-#define MEMSTICK_INT_CMDNAK 0x01
-#define MEMSTICK_INT_IOREQ 0x08
-#define MEMSTICK_INT_IOBREQ 0x10
-#define MEMSTICK_INT_BREQ 0x20
-#define MEMSTICK_INT_ERR 0x40
-#define MEMSTICK_INT_CED 0x80
-
- unsigned char status0;
-#define MEMSTICK_STATUS0_WP 0x01
-#define MEMSTICK_STATUS0_SL 0x02
-#define MEMSTICK_STATUS0_BF 0x10
-#define MEMSTICK_STATUS0_BE 0x20
-#define MEMSTICK_STATUS0_FB0 0x40
-#define MEMSTICK_STATUS0_MB 0x80
-
- unsigned char status1;
-#define MEMSTICK_STATUS1_UCFG 0x01
-#define MEMSTICK_STATUS1_FGER 0x02
-#define MEMSTICK_STATUS1_UCEX 0x04
-#define MEMSTICK_STATUS1_EXER 0x08
-#define MEMSTICK_STATUS1_UCDT 0x10
-#define MEMSTICK_STATUS1_DTER 0x20
-#define MEMSTICK_STATUS1_FB1 0x40
-#define MEMSTICK_STATUS1_MB 0x80
-} __attribute__((packed));
-
-struct ms_id_register {
- unsigned char type;
- unsigned char if_mode;
- unsigned char category;
- unsigned char class;
-} __attribute__((packed));
-
-struct ms_param_register {
- unsigned char system;
-#define MEMSTICK_SYS_PAM 0x08
-#define MEMSTICK_SYS_BAMD 0x80
-
- unsigned char block_address_msb;
- unsigned short block_address;
- unsigned char cp;
-#define MEMSTICK_CP_BLOCK 0x00
-#define MEMSTICK_CP_PAGE 0x20
-#define MEMSTICK_CP_EXTRA 0x40
-#define MEMSTICK_CP_OVERWRITE 0x80
-
- unsigned char page_address;
-} __attribute__((packed));
-
-struct ms_extra_data_register {
- unsigned char overwrite_flag;
-#define MEMSTICK_OVERWRITE_UDST 0x10
-#define MEMSTICK_OVERWRITE_PGST1 0x20
-#define MEMSTICK_OVERWRITE_PGST0 0x40
-#define MEMSTICK_OVERWRITE_BKST 0x80
-
- unsigned char management_flag;
-#define MEMSTICK_MANAGEMENT_SYSFLG 0x04
-#define MEMSTICK_MANAGEMENT_ATFLG 0x08
-#define MEMSTICK_MANAGEMENT_SCMS1 0x10
-#define MEMSTICK_MANAGEMENT_SCMS0 0x20
-
- unsigned short logical_address;
-} __attribute__((packed));
-
-struct ms_register {
- struct ms_status_register status;
- struct ms_id_register id;
- unsigned char reserved[8];
- struct ms_param_register param;
- struct ms_extra_data_register extra_data;
-} __attribute__((packed));
-
-struct mspro_param_register {
- unsigned char system;
-#define MEMSTICK_SYS_PAR4 0x00
-#define MEMSTICK_SYS_PAR8 0x40
-#define MEMSTICK_SYS_SERIAL 0x80
-
- __be16 data_count;
- __be32 data_address;
- unsigned char tpc_param;
-} __attribute__((packed));
-
-struct mspro_io_info_register {
- unsigned char version;
- unsigned char io_category;
- unsigned char current_req;
- unsigned char card_opt_info;
- unsigned char rdy_wait_time;
-} __attribute__((packed));
-
-struct mspro_io_func_register {
- unsigned char func_enable;
- unsigned char func_select;
- unsigned char func_intmask;
- unsigned char transfer_mode;
-} __attribute__((packed));
-
-struct mspro_io_cmd_register {
- unsigned short tpc_param;
- unsigned short data_count;
- unsigned int data_address;
-} __attribute__((packed));
-
-struct mspro_register {
- struct ms_status_register status;
- struct ms_id_register id;
- unsigned char reserved0[8];
- struct mspro_param_register param;
- unsigned char reserved1[8];
- struct mspro_io_info_register io_info;
- struct mspro_io_func_register io_func;
- unsigned char reserved2[7];
- struct mspro_io_cmd_register io_cmd;
- unsigned char io_int;
- unsigned char io_int_func;
-} __attribute__((packed));
-
-struct ms_register_addr {
- unsigned char r_offset;
- unsigned char r_length;
- unsigned char w_offset;
- unsigned char w_length;
-} __attribute__((packed));
-
-enum memstick_tpc {
- MS_TPC_READ_MG_STATUS = 0x01,
- MS_TPC_READ_LONG_DATA = 0x02,
- MS_TPC_READ_SHORT_DATA = 0x03,
- MS_TPC_READ_MG_DATA = 0x03,
- MS_TPC_READ_REG = 0x04,
- MS_TPC_READ_QUAD_DATA = 0x05,
- MS_TPC_READ_IO_DATA = 0x05,
- MS_TPC_GET_INT = 0x07,
- MS_TPC_SET_RW_REG_ADRS = 0x08,
- MS_TPC_EX_SET_CMD = 0x09,
- MS_TPC_WRITE_QUAD_DATA = 0x0a,
- MS_TPC_WRITE_IO_DATA = 0x0a,
- MS_TPC_WRITE_REG = 0x0b,
- MS_TPC_WRITE_SHORT_DATA = 0x0c,
- MS_TPC_WRITE_MG_DATA = 0x0c,
- MS_TPC_WRITE_LONG_DATA = 0x0d,
- MS_TPC_SET_CMD = 0x0e
-};
-
-enum memstick_command {
- MS_CMD_BLOCK_END = 0x33,
- MS_CMD_RESET = 0x3c,
- MS_CMD_BLOCK_WRITE = 0x55,
- MS_CMD_SLEEP = 0x5a,
- MS_CMD_BLOCK_ERASE = 0x99,
- MS_CMD_BLOCK_READ = 0xaa,
- MS_CMD_CLEAR_BUF = 0xc3,
- MS_CMD_FLASH_STOP = 0xcc,
- MS_CMD_LOAD_ID = 0x60,
- MS_CMD_CMP_ICV = 0x7f,
- MSPRO_CMD_FORMAT = 0x10,
- MSPRO_CMD_SLEEP = 0x11,
- MSPRO_CMD_WAKEUP = 0x12,
- MSPRO_CMD_READ_DATA = 0x20,
- MSPRO_CMD_WRITE_DATA = 0x21,
- MSPRO_CMD_READ_ATRB = 0x24,
- MSPRO_CMD_STOP = 0x25,
- MSPRO_CMD_ERASE = 0x26,
- MSPRO_CMD_READ_QUAD = 0x27,
- MSPRO_CMD_WRITE_QUAD = 0x28,
- MSPRO_CMD_SET_IBD = 0x46,
- MSPRO_CMD_GET_IBD = 0x47,
- MSPRO_CMD_IN_IO_DATA = 0xb0,
- MSPRO_CMD_OUT_IO_DATA = 0xb1,
- MSPRO_CMD_READ_IO_ATRB = 0xb2,
- MSPRO_CMD_IN_IO_FIFO = 0xb3,
- MSPRO_CMD_OUT_IO_FIFO = 0xb4,
- MSPRO_CMD_IN_IOM = 0xb5,
- MSPRO_CMD_OUT_IOM = 0xb6,
-};
-
-/*** Driver structures and functions ***/
-
-enum memstick_param { MEMSTICK_POWER = 1, MEMSTICK_INTERFACE };
-
-#define MEMSTICK_POWER_OFF 0
-#define MEMSTICK_POWER_ON 1
-
-#define MEMSTICK_SERIAL 0
-#define MEMSTICK_PAR4 1
-#define MEMSTICK_PAR8 2
-
-struct memstick_host;
-struct memstick_driver;
-
-struct memstick_device_id {
- unsigned char match_flags;
-#define MEMSTICK_MATCH_ALL 0x01
-
- unsigned char type;
-#define MEMSTICK_TYPE_LEGACY 0xff
-#define MEMSTICK_TYPE_DUO 0x00
-#define MEMSTICK_TYPE_PRO 0x01
-
- unsigned char category;
-#define MEMSTICK_CATEGORY_STORAGE 0xff
-#define MEMSTICK_CATEGORY_STORAGE_DUO 0x00
-#define MEMSTICK_CATEGORY_IO 0x01
-#define MEMSTICK_CATEGORY_IO_PRO 0x10
-
- unsigned char class;
-#define MEMSTICK_CLASS_FLASH 0xff
-#define MEMSTICK_CLASS_DUO 0x00
-#define MEMSTICK_CLASS_ROM 0x01
-#define MEMSTICK_CLASS_RO 0x02
-#define MEMSTICK_CLASS_WP 0x03
-};
-
-struct memstick_request {
- unsigned char tpc;
- unsigned char data_dir:1,
- need_card_int:1,
- long_data:1;
- unsigned char int_reg;
- int error;
- union {
- struct scatterlist sg;
- struct {
- unsigned char data_len;
- unsigned char data[15];
- };
- };
-};
-
-struct memstick_dev {
- struct memstick_device_id id;
- struct memstick_host *host;
- struct ms_register_addr reg_addr;
- struct completion mrq_complete;
- struct memstick_request current_mrq;
-
- /* Check that media driver is still willing to operate the device. */
- int (*check)(struct memstick_dev *card);
- /* Get next request from the media driver. */
- int (*next_request)(struct memstick_dev *card,
- struct memstick_request **mrq);
- /* Tell the media driver to stop doing things */
- void (*stop)(struct memstick_dev *card);
- /* Allow the media driver to continue */
- void (*start)(struct memstick_dev *card);
-
- struct device dev;
-};
-
-struct memstick_host {
- struct mutex lock;
- unsigned int id;
- unsigned int caps;
-#define MEMSTICK_CAP_AUTO_GET_INT 1
-#define MEMSTICK_CAP_PAR4 2
-#define MEMSTICK_CAP_PAR8 4
-
- struct work_struct media_checker;
- struct device dev;
-
- struct memstick_dev *card;
- unsigned int retries;
-
- /* Notify the host that some requests are pending. */
- void (*request)(struct memstick_host *host);
- /* Set host IO parameters (power, clock, etc). */
- int (*set_param)(struct memstick_host *host,
- enum memstick_param param,
- int value);
- unsigned long private[0] ____cacheline_aligned;
-};
-
-struct memstick_driver {
- struct memstick_device_id *id_table;
- int (*probe)(struct memstick_dev *card);
- void (*remove)(struct memstick_dev *card);
- int (*suspend)(struct memstick_dev *card,
- pm_message_t state);
- int (*resume)(struct memstick_dev *card);
-
- struct device_driver driver;
-};
-
-int memstick_register_driver(struct memstick_driver *drv);
-void memstick_unregister_driver(struct memstick_driver *drv);
-
-struct memstick_host *memstick_alloc_host(unsigned int extra,
- struct device *dev);
-
-int memstick_add_host(struct memstick_host *host);
-void memstick_remove_host(struct memstick_host *host);
-void memstick_free_host(struct memstick_host *host);
-void memstick_detect_change(struct memstick_host *host);
-void memstick_suspend_host(struct memstick_host *host);
-void memstick_resume_host(struct memstick_host *host);
-
-void memstick_init_req_sg(struct memstick_request *mrq, unsigned char tpc,
- const struct scatterlist *sg);
-void memstick_init_req(struct memstick_request *mrq, unsigned char tpc,
- const void *buf, size_t length);
-int memstick_next_req(struct memstick_host *host,
- struct memstick_request **mrq);
-void memstick_new_req(struct memstick_host *host);
-
-int memstick_set_rw_addr(struct memstick_dev *card);
-
-static inline void *memstick_priv(struct memstick_host *host)
-{
- return (void *)host->private;
-}
-
-static inline void *memstick_get_drvdata(struct memstick_dev *card)
-{
- return dev_get_drvdata(&card->dev);
-}
-
-static inline void memstick_set_drvdata(struct memstick_dev *card, void *data)
-{
- dev_set_drvdata(&card->dev, data);
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/meye.h b/ANDROID_3.4.5/include/linux/meye.h
deleted file mode 100644
index 0dd49954..00000000
--- a/ANDROID_3.4.5/include/linux/meye.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Motion Eye video4linux driver for Sony Vaio PictureBook
- *
- * Copyright (C) 2001-2003 Stelian Pop <stelian@popies.net>
- *
- * Copyright (C) 2001-2002 Alcôve <www.alcove.com>
- *
- * Copyright (C) 2000 Andrew Tridgell <tridge@valinux.com>
- *
- * Earlier work by Werner Almesberger, Paul `Rusty' Russell and Paul Mackerras.
- *
- * Some parts borrowed from various video4linux drivers, especially
- * bttv-driver.c and zoran.c, see original files for credits.
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef _MEYE_H_
-#define _MEYE_H_
-
-/****************************************************************************/
-/* Private API for handling mjpeg capture / playback. */
-/****************************************************************************/
-
-struct meye_params {
- unsigned char subsample;
- unsigned char quality;
- unsigned char sharpness;
- unsigned char agc;
- unsigned char picture;
- unsigned char framerate;
-};
-
-/* query the extended parameters */
-#define MEYEIOC_G_PARAMS _IOR ('v', BASE_VIDIOC_PRIVATE+0, struct meye_params)
-/* set the extended parameters */
-#define MEYEIOC_S_PARAMS _IOW ('v', BASE_VIDIOC_PRIVATE+1, struct meye_params)
-/* queue a buffer for mjpeg capture */
-#define MEYEIOC_QBUF_CAPT _IOW ('v', BASE_VIDIOC_PRIVATE+2, int)
-/* sync a previously queued mjpeg buffer */
-#define MEYEIOC_SYNC _IOWR('v', BASE_VIDIOC_PRIVATE+3, int)
-/* get a still uncompressed snapshot */
-#define MEYEIOC_STILLCAPT _IO ('v', BASE_VIDIOC_PRIVATE+4)
-/* get a jpeg compressed snapshot */
-#define MEYEIOC_STILLJCAPT _IOR ('v', BASE_VIDIOC_PRIVATE+5, int)
-
-/* V4L2 private controls */
-#define V4L2_CID_AGC V4L2_CID_PRIVATE_BASE
-#define V4L2_CID_MEYE_SHARPNESS (V4L2_CID_PRIVATE_BASE + 1)
-#define V4L2_CID_PICTURE (V4L2_CID_PRIVATE_BASE + 2)
-#define V4L2_CID_JPEGQUAL (V4L2_CID_PRIVATE_BASE + 3)
-#define V4L2_CID_FRAMERATE (V4L2_CID_PRIVATE_BASE + 4)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/88pm860x.h b/ANDROID_3.4.5/include/linux/mfd/88pm860x.h
deleted file mode 100644
index 84d071ad..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/88pm860x.h
+++ /dev/null
@@ -1,414 +0,0 @@
-/*
- * Marvell 88PM860x Interface
- *
- * Copyright (C) 2009 Marvell International Ltd.
- * Haojian Zhuang <haojian.zhuang@marvell.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.
- */
-
-#ifndef __LINUX_MFD_88PM860X_H
-#define __LINUX_MFD_88PM860X_H
-
-#include <linux/interrupt.h>
-
-#define MFD_NAME_SIZE (40)
-
-enum {
- CHIP_INVALID = 0,
- CHIP_PM8606,
- CHIP_PM8607,
- CHIP_MAX,
-};
-
-enum {
- PM8606_ID_INVALID,
- PM8606_ID_BACKLIGHT,
- PM8606_ID_LED,
- PM8606_ID_VIBRATOR,
- PM8606_ID_TOUCH,
- PM8606_ID_SOUND,
- PM8606_ID_CHARGER,
- PM8606_ID_MAX,
-};
-
-enum {
- PM8606_BACKLIGHT1 = 0,
- PM8606_BACKLIGHT2,
- PM8606_BACKLIGHT3,
-};
-
-enum {
- PM8606_LED1_RED = 0,
- PM8606_LED1_GREEN,
- PM8606_LED1_BLUE,
- PM8606_LED2_RED,
- PM8606_LED2_GREEN,
- PM8606_LED2_BLUE,
- PM8607_LED_VIBRATOR,
-};
-
-
-/* 8606 Registers */
-#define PM8606_DCM_BOOST (0x00)
-#define PM8606_PWM (0x01)
-
-/* Backlight Registers */
-#define PM8606_WLED1A (0x02)
-#define PM8606_WLED1B (0x03)
-#define PM8606_WLED2A (0x04)
-#define PM8606_WLED2B (0x05)
-#define PM8606_WLED3A (0x06)
-#define PM8606_WLED3B (0x07)
-
-/* LED Registers */
-#define PM8606_RGB2A (0x08)
-#define PM8606_RGB2B (0x09)
-#define PM8606_RGB2C (0x0A)
-#define PM8606_RGB2D (0x0B)
-#define PM8606_RGB1A (0x0C)
-#define PM8606_RGB1B (0x0D)
-#define PM8606_RGB1C (0x0E)
-#define PM8606_RGB1D (0x0F)
-
-#define PM8606_PREREGULATORA (0x10)
-#define PM8606_PREREGULATORB (0x11)
-#define PM8606_VIBRATORA (0x12)
-#define PM8606_VIBRATORB (0x13)
-#define PM8606_VCHG (0x14)
-#define PM8606_VSYS (0x15)
-#define PM8606_MISC (0x16)
-#define PM8606_CHIP_ID (0x17)
-#define PM8606_STATUS (0x18)
-#define PM8606_FLAGS (0x19)
-#define PM8606_PROTECTA (0x1A)
-#define PM8606_PROTECTB (0x1B)
-#define PM8606_PROTECTC (0x1C)
-
-/* Bit definitions of PM8606 registers */
-#define PM8606_DCM_500MA (0x0) /* current limit */
-#define PM8606_DCM_750MA (0x1)
-#define PM8606_DCM_1000MA (0x2)
-#define PM8606_DCM_1250MA (0x3)
-#define PM8606_DCM_250MV (0x0 << 2)
-#define PM8606_DCM_300MV (0x1 << 2)
-#define PM8606_DCM_350MV (0x2 << 2)
-#define PM8606_DCM_400MV (0x3 << 2)
-
-#define PM8606_PWM_31200HZ (0x0)
-#define PM8606_PWM_15600HZ (0x1)
-#define PM8606_PWM_7800HZ (0x2)
-#define PM8606_PWM_3900HZ (0x3)
-#define PM8606_PWM_1950HZ (0x4)
-#define PM8606_PWM_976HZ (0x5)
-#define PM8606_PWM_488HZ (0x6)
-#define PM8606_PWM_244HZ (0x7)
-#define PM8606_PWM_FREQ_MASK (0x7)
-
-#define PM8606_WLED_ON (1 << 0)
-#define PM8606_WLED_CURRENT(x) ((x & 0x1F) << 1)
-
-#define PM8606_LED_CURRENT(x) (((x >> 2) & 0x07) << 5)
-
-#define PM8606_VSYS_EN (1 << 1)
-
-#define PM8606_MISC_OSC_EN (1 << 4)
-
-enum {
- PM8607_ID_BUCK1 = 0,
- PM8607_ID_BUCK2,
- PM8607_ID_BUCK3,
-
- PM8607_ID_LDO1,
- PM8607_ID_LDO2,
- PM8607_ID_LDO3,
- PM8607_ID_LDO4,
- PM8607_ID_LDO5,
- PM8607_ID_LDO6,
- PM8607_ID_LDO7,
- PM8607_ID_LDO8,
- PM8607_ID_LDO9,
- PM8607_ID_LDO10,
- PM8607_ID_LDO11,
- PM8607_ID_LDO12,
- PM8607_ID_LDO13,
- PM8607_ID_LDO14,
- PM8607_ID_LDO15,
-
- PM8607_ID_RG_MAX,
-};
-
-/* 8607 chip ID is 0x40 or 0x50 */
-#define PM8607_VERSION_MASK (0xF0) /* 8607 chip ID mask */
-
-/* Interrupt Registers */
-#define PM8607_STATUS_1 (0x01)
-#define PM8607_STATUS_2 (0x02)
-#define PM8607_INT_STATUS1 (0x03)
-#define PM8607_INT_STATUS2 (0x04)
-#define PM8607_INT_STATUS3 (0x05)
-#define PM8607_INT_MASK_1 (0x06)
-#define PM8607_INT_MASK_2 (0x07)
-#define PM8607_INT_MASK_3 (0x08)
-
-/* Regulator Control Registers */
-#define PM8607_LDO1 (0x10)
-#define PM8607_LDO2 (0x11)
-#define PM8607_LDO3 (0x12)
-#define PM8607_LDO4 (0x13)
-#define PM8607_LDO5 (0x14)
-#define PM8607_LDO6 (0x15)
-#define PM8607_LDO7 (0x16)
-#define PM8607_LDO8 (0x17)
-#define PM8607_LDO9 (0x18)
-#define PM8607_LDO10 (0x19)
-#define PM8607_LDO12 (0x1A)
-#define PM8607_LDO14 (0x1B)
-#define PM8607_SLEEP_MODE1 (0x1C)
-#define PM8607_SLEEP_MODE2 (0x1D)
-#define PM8607_SLEEP_MODE3 (0x1E)
-#define PM8607_SLEEP_MODE4 (0x1F)
-#define PM8607_GO (0x20)
-#define PM8607_SLEEP_BUCK1 (0x21)
-#define PM8607_SLEEP_BUCK2 (0x22)
-#define PM8607_SLEEP_BUCK3 (0x23)
-#define PM8607_BUCK1 (0x24)
-#define PM8607_BUCK2 (0x25)
-#define PM8607_BUCK3 (0x26)
-#define PM8607_BUCK_CONTROLS (0x27)
-#define PM8607_SUPPLIES_EN11 (0x2B)
-#define PM8607_SUPPLIES_EN12 (0x2C)
-#define PM8607_GROUP1 (0x2D)
-#define PM8607_GROUP2 (0x2E)
-#define PM8607_GROUP3 (0x2F)
-#define PM8607_GROUP4 (0x30)
-#define PM8607_GROUP5 (0x31)
-#define PM8607_GROUP6 (0x32)
-#define PM8607_SUPPLIES_EN21 (0x33)
-#define PM8607_SUPPLIES_EN22 (0x34)
-
-/* Vibrator Control Registers */
-#define PM8607_VIBRATOR_SET (0x28)
-#define PM8607_VIBRATOR_PWM (0x29)
-
-/* GPADC Registers */
-#define PM8607_GP_BIAS1 (0x4F)
-#define PM8607_MEAS_EN1 (0x50)
-#define PM8607_MEAS_EN2 (0x51)
-#define PM8607_MEAS_EN3 (0x52)
-#define PM8607_MEAS_OFF_TIME1 (0x53)
-#define PM8607_MEAS_OFF_TIME2 (0x54)
-#define PM8607_TSI_PREBIAS (0x55) /* prebias time */
-#define PM8607_PD_PREBIAS (0x56) /* prebias time */
-#define PM8607_GPADC_MISC1 (0x57)
-
-/* RTC Control Registers */
-#define PM8607_RTC1 (0xA0)
-#define PM8607_RTC_COUNTER1 (0xA1)
-#define PM8607_RTC_COUNTER2 (0xA2)
-#define PM8607_RTC_COUNTER3 (0xA3)
-#define PM8607_RTC_COUNTER4 (0xA4)
-#define PM8607_RTC_EXPIRE1 (0xA5)
-#define PM8607_RTC_EXPIRE2 (0xA6)
-#define PM8607_RTC_EXPIRE3 (0xA7)
-#define PM8607_RTC_EXPIRE4 (0xA8)
-#define PM8607_RTC_TRIM1 (0xA9)
-#define PM8607_RTC_TRIM2 (0xAA)
-#define PM8607_RTC_TRIM3 (0xAB)
-#define PM8607_RTC_TRIM4 (0xAC)
-#define PM8607_RTC_MISC1 (0xAD)
-#define PM8607_RTC_MISC2 (0xAE)
-#define PM8607_RTC_MISC3 (0xAF)
-
-/* Misc Registers */
-#define PM8607_CHIP_ID (0x00)
-#define PM8607_B0_MISC1 (0x0C)
-#define PM8607_LDO1 (0x10)
-#define PM8607_DVC3 (0x26)
-#define PM8607_A1_MISC1 (0x40)
-
-/* bit definitions of Status Query Interface */
-#define PM8607_STATUS_CC (1 << 3)
-#define PM8607_STATUS_PEN (1 << 4)
-#define PM8607_STATUS_HEADSET (1 << 5)
-#define PM8607_STATUS_HOOK (1 << 6)
-#define PM8607_STATUS_MICIN (1 << 7)
-#define PM8607_STATUS_ONKEY (1 << 8)
-#define PM8607_STATUS_EXTON (1 << 9)
-#define PM8607_STATUS_CHG (1 << 10)
-#define PM8607_STATUS_BAT (1 << 11)
-#define PM8607_STATUS_VBUS (1 << 12)
-#define PM8607_STATUS_OV (1 << 13)
-
-/* bit definitions of BUCK3 */
-#define PM8607_BUCK3_DOUBLE (1 << 6)
-
-/* bit definitions of Misc1 */
-#define PM8607_A1_MISC1_PI2C (1 << 0)
-#define PM8607_B0_MISC1_INV_INT (1 << 0)
-#define PM8607_B0_MISC1_INT_CLEAR (1 << 1)
-#define PM8607_B0_MISC1_INT_MASK (1 << 2)
-#define PM8607_B0_MISC1_PI2C (1 << 3)
-#define PM8607_B0_MISC1_RESET (1 << 6)
-
-/* bits definitions of GPADC */
-#define PM8607_GPADC_EN (1 << 0)
-#define PM8607_GPADC_PREBIAS_MASK (3 << 1)
-#define PM8607_GPADC_SLOT_CYCLE_MASK (3 << 3) /* slow mode */
-#define PM8607_GPADC_OFF_SCALE_MASK (3 << 5) /* GP sleep mode */
-#define PM8607_GPADC_SW_CAL_MASK (1 << 7)
-
-#define PM8607_PD_PREBIAS_MASK (0x1F << 0)
-#define PM8607_PD_PRECHG_MASK (7 << 5)
-
-#define PM8606_REF_GP_OSC_OFF 0
-#define PM8606_REF_GP_OSC_ON 1
-#define PM8606_REF_GP_OSC_UNKNOWN 2
-
-/* Clients of reference group and 8MHz oscillator in 88PM8606 */
-enum pm8606_ref_gp_and_osc_clients {
- REF_GP_NO_CLIENTS = 0,
- WLED1_DUTY = (1<<0), /*PF 0x02.7:0*/
- WLED2_DUTY = (1<<1), /*PF 0x04.7:0*/
- WLED3_DUTY = (1<<2), /*PF 0x06.7:0*/
- RGB1_ENABLE = (1<<3), /*PF 0x07.1*/
- RGB2_ENABLE = (1<<4), /*PF 0x07.2*/
- LDO_VBR_EN = (1<<5), /*PF 0x12.0*/
- REF_GP_MAX_CLIENT = 0xFFFF
-};
-
-/* Interrupt Number in 88PM8607 */
-enum {
- PM8607_IRQ_ONKEY,
- PM8607_IRQ_EXTON,
- PM8607_IRQ_CHG,
- PM8607_IRQ_BAT,
- PM8607_IRQ_RTC,
- PM8607_IRQ_CC,
- PM8607_IRQ_VBAT,
- PM8607_IRQ_VCHG,
- PM8607_IRQ_VSYS,
- PM8607_IRQ_TINT,
- PM8607_IRQ_GPADC0,
- PM8607_IRQ_GPADC1,
- PM8607_IRQ_GPADC2,
- PM8607_IRQ_GPADC3,
- PM8607_IRQ_AUDIO_SHORT,
- PM8607_IRQ_PEN,
- PM8607_IRQ_HEADSET,
- PM8607_IRQ_HOOK,
- PM8607_IRQ_MICIN,
- PM8607_IRQ_CHG_FAIL,
- PM8607_IRQ_CHG_DONE,
- PM8607_IRQ_CHG_FAULT,
-};
-
-enum {
- PM8607_CHIP_A0 = 0x40,
- PM8607_CHIP_A1 = 0x41,
- PM8607_CHIP_B0 = 0x48,
-};
-
-struct pm860x_chip {
- struct device *dev;
- struct mutex irq_lock;
- struct mutex osc_lock;
- struct i2c_client *client;
- struct i2c_client *companion; /* companion chip client */
- struct regmap *regmap;
- struct regmap *regmap_companion;
-
- int buck3_double; /* DVC ramp slope double */
- unsigned short companion_addr;
- unsigned short osc_vote;
- int id;
- int irq_mode;
- int irq_base;
- int core_irq;
- unsigned char chip_version;
- unsigned char osc_status;
-
- unsigned int wakeup_flag;
-};
-
-enum {
- GI2C_PORT = 0,
- PI2C_PORT,
-};
-
-struct pm860x_backlight_pdata {
- int id;
- int pwm;
- int iset;
- unsigned long flags;
-};
-
-struct pm860x_led_pdata {
- int id;
- int iset;
- unsigned long flags;
-};
-
-struct pm860x_rtc_pdata {
- int (*sync)(unsigned int ticks);
- int vrtc;
-};
-
-struct pm860x_touch_pdata {
- int gpadc_prebias;
- int slot_cycle;
- int off_scale;
- int sw_cal;
- int tsi_prebias; /* time, slot */
- int pen_prebias; /* time, slot */
- int pen_prechg; /* time, slot */
- int res_x; /* resistor of Xplate */
- unsigned long flags;
-};
-
-struct pm860x_power_pdata {
- unsigned fast_charge; /* charge current */
-};
-
-struct pm860x_platform_data {
- struct pm860x_backlight_pdata *backlight;
- struct pm860x_led_pdata *led;
- struct pm860x_rtc_pdata *rtc;
- struct pm860x_touch_pdata *touch;
- struct pm860x_power_pdata *power;
- struct regulator_init_data *regulator;
-
- unsigned short companion_addr; /* I2C address of companion chip */
- int i2c_port; /* Controlled by GI2C or PI2C */
- int irq_mode; /* Clear interrupt by read/write(0/1) */
- int irq_base; /* IRQ base number of 88pm860x */
- int num_leds;
- int num_backlights;
- int num_regulators;
-};
-
-extern int pm8606_osc_enable(struct pm860x_chip *, unsigned short);
-extern int pm8606_osc_disable(struct pm860x_chip *, unsigned short);
-
-extern int pm860x_reg_read(struct i2c_client *, int);
-extern int pm860x_reg_write(struct i2c_client *, int, unsigned char);
-extern int pm860x_bulk_read(struct i2c_client *, int, int, unsigned char *);
-extern int pm860x_bulk_write(struct i2c_client *, int, int, unsigned char *);
-extern int pm860x_set_bits(struct i2c_client *, int, unsigned char,
- unsigned char);
-extern int pm860x_page_reg_read(struct i2c_client *, int);
-extern int pm860x_page_reg_write(struct i2c_client *, int, unsigned char);
-extern int pm860x_page_bulk_read(struct i2c_client *, int, int,
- unsigned char *);
-extern int pm860x_page_bulk_write(struct i2c_client *, int, int,
- unsigned char *);
-extern int pm860x_page_set_bits(struct i2c_client *, int, unsigned char,
- unsigned char);
-
-extern int pm860x_device_init(struct pm860x_chip *chip,
- struct pm860x_platform_data *pdata) __devinit ;
-extern void pm860x_device_exit(struct pm860x_chip *chip) __devexit ;
-
-#endif /* __LINUX_MFD_88PM860X_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/aat2870.h b/ANDROID_3.4.5/include/linux/mfd/aat2870.h
deleted file mode 100644
index f7316c29..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/aat2870.h
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * linux/include/linux/mfd/aat2870.h
- *
- * Copyright (c) 2011, NVIDIA Corporation.
- * Author: Jin Park <jinyoungp@nvidia.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.
- *
- * 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 __LINUX_MFD_AAT2870_H
-#define __LINUX_MFD_AAT2870_H
-
-#include <linux/debugfs.h>
-#include <linux/i2c.h>
-
-/* Register offsets */
-#define AAT2870_BL_CH_EN 0x00
-#define AAT2870_BLM 0x01
-#define AAT2870_BLS 0x02
-#define AAT2870_BL1 0x03
-#define AAT2870_BL2 0x04
-#define AAT2870_BL3 0x05
-#define AAT2870_BL4 0x06
-#define AAT2870_BL5 0x07
-#define AAT2870_BL6 0x08
-#define AAT2870_BL7 0x09
-#define AAT2870_BL8 0x0A
-#define AAT2870_FLR 0x0B
-#define AAT2870_FM 0x0C
-#define AAT2870_FS 0x0D
-#define AAT2870_ALS_CFG0 0x0E
-#define AAT2870_ALS_CFG1 0x0F
-#define AAT2870_ALS_CFG2 0x10
-#define AAT2870_AMB 0x11
-#define AAT2870_ALS0 0x12
-#define AAT2870_ALS1 0x13
-#define AAT2870_ALS2 0x14
-#define AAT2870_ALS3 0x15
-#define AAT2870_ALS4 0x16
-#define AAT2870_ALS5 0x17
-#define AAT2870_ALS6 0x18
-#define AAT2870_ALS7 0x19
-#define AAT2870_ALS8 0x1A
-#define AAT2870_ALS9 0x1B
-#define AAT2870_ALSA 0x1C
-#define AAT2870_ALSB 0x1D
-#define AAT2870_ALSC 0x1E
-#define AAT2870_ALSD 0x1F
-#define AAT2870_ALSE 0x20
-#define AAT2870_ALSF 0x21
-#define AAT2870_SUB_SET 0x22
-#define AAT2870_SUB_CTRL 0x23
-#define AAT2870_LDO_AB 0x24
-#define AAT2870_LDO_CD 0x25
-#define AAT2870_LDO_EN 0x26
-#define AAT2870_REG_NUM 0x27
-
-/* Device IDs */
-enum aat2870_id {
- AAT2870_ID_BL,
- AAT2870_ID_LDOA,
- AAT2870_ID_LDOB,
- AAT2870_ID_LDOC,
- AAT2870_ID_LDOD
-};
-
-/* Backlight channels */
-#define AAT2870_BL_CH1 0x01
-#define AAT2870_BL_CH2 0x02
-#define AAT2870_BL_CH3 0x04
-#define AAT2870_BL_CH4 0x08
-#define AAT2870_BL_CH5 0x10
-#define AAT2870_BL_CH6 0x20
-#define AAT2870_BL_CH7 0x40
-#define AAT2870_BL_CH8 0x80
-#define AAT2870_BL_CH_ALL 0xFF
-
-/* Backlight current magnitude (mA) */
-enum aat2870_current {
- AAT2870_CURRENT_0_45 = 1,
- AAT2870_CURRENT_0_90,
- AAT2870_CURRENT_1_80,
- AAT2870_CURRENT_2_70,
- AAT2870_CURRENT_3_60,
- AAT2870_CURRENT_4_50,
- AAT2870_CURRENT_5_40,
- AAT2870_CURRENT_6_30,
- AAT2870_CURRENT_7_20,
- AAT2870_CURRENT_8_10,
- AAT2870_CURRENT_9_00,
- AAT2870_CURRENT_9_90,
- AAT2870_CURRENT_10_8,
- AAT2870_CURRENT_11_7,
- AAT2870_CURRENT_12_6,
- AAT2870_CURRENT_13_5,
- AAT2870_CURRENT_14_4,
- AAT2870_CURRENT_15_3,
- AAT2870_CURRENT_16_2,
- AAT2870_CURRENT_17_1,
- AAT2870_CURRENT_18_0,
- AAT2870_CURRENT_18_9,
- AAT2870_CURRENT_19_8,
- AAT2870_CURRENT_20_7,
- AAT2870_CURRENT_21_6,
- AAT2870_CURRENT_22_5,
- AAT2870_CURRENT_23_4,
- AAT2870_CURRENT_24_3,
- AAT2870_CURRENT_25_2,
- AAT2870_CURRENT_26_1,
- AAT2870_CURRENT_27_0,
- AAT2870_CURRENT_27_9
-};
-
-struct aat2870_register {
- bool readable;
- bool writeable;
- u8 value;
-};
-
-struct aat2870_data {
- struct device *dev;
- struct i2c_client *client;
-
- struct mutex io_lock;
- struct aat2870_register *reg_cache; /* register cache */
- int en_pin; /* enable GPIO pin (if < 0, ignore this value) */
- bool is_enable;
-
- /* init and uninit for platform specified */
- int (*init)(struct aat2870_data *aat2870);
- void (*uninit)(struct aat2870_data *aat2870);
-
- /* i2c io funcntions */
- int (*read)(struct aat2870_data *aat2870, u8 addr, u8 *val);
- int (*write)(struct aat2870_data *aat2870, u8 addr, u8 val);
- int (*update)(struct aat2870_data *aat2870, u8 addr, u8 mask, u8 val);
-
- /* for debugfs */
- struct dentry *dentry_root;
- struct dentry *dentry_reg;
-};
-
-struct aat2870_subdev_info {
- int id;
- const char *name;
- void *platform_data;
-};
-
-struct aat2870_platform_data {
- int en_pin; /* enable GPIO pin (if < 0, ignore this value) */
-
- struct aat2870_subdev_info *subdevs;
- int num_subdevs;
-
- /* init and uninit for platform specified */
- int (*init)(struct aat2870_data *aat2870);
- void (*uninit)(struct aat2870_data *aat2870);
-};
-
-struct aat2870_bl_platform_data {
- /* backlight channels, default is AAT2870_BL_CH_ALL */
- int channels;
- /* backlight current magnitude, default is AAT2870_CURRENT_27_9 */
- int max_current;
- /* maximum brightness, default is 255 */
- int max_brightness;
-};
-
-#endif /* __LINUX_MFD_AAT2870_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/abx500.h b/ANDROID_3.4.5/include/linux/mfd/abx500.h
deleted file mode 100644
index ee96cd51..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/abx500.h
+++ /dev/null
@@ -1,461 +0,0 @@
-/*
- * Copyright (C) 2007-2009 ST-Ericsson AB
- * License terms: GNU General Public License (GPL) version 2
- * AB3100 core access functions
- * Author: Linus Walleij <linus.walleij@stericsson.com>
- *
- * ABX500 core access functions.
- * The abx500 interface is used for the Analog Baseband chip
- * ab3100, ab5500, and ab8500.
- *
- * Author: Mattias Wallin <mattias.wallin@stericsson.com>
- * Author: Mattias Nilsson <mattias.i.nilsson@stericsson.com>
- * Author: Bengt Jonsson <bengt.g.jonsson@stericsson.com>
- * Author: Rickard Andersson <rickard.andersson@stericsson.com>
- */
-
-#include <linux/regulator/machine.h>
-
-struct device;
-
-#ifndef MFD_ABX500_H
-#define MFD_ABX500_H
-
-#define AB3100_P1A 0xc0
-#define AB3100_P1B 0xc1
-#define AB3100_P1C 0xc2
-#define AB3100_P1D 0xc3
-#define AB3100_P1E 0xc4
-#define AB3100_P1F 0xc5
-#define AB3100_P1G 0xc6
-#define AB3100_R2A 0xc7
-#define AB3100_R2B 0xc8
-#define AB5500_1_0 0x20
-#define AB5500_1_1 0x21
-#define AB5500_2_0 0x24
-
-/*
- * AB3100, EVENTA1, A2 and A3 event register flags
- * these are catenated into a single 32-bit flag in the code
- * for event notification broadcasts.
- */
-#define AB3100_EVENTA1_ONSWA (0x01<<16)
-#define AB3100_EVENTA1_ONSWB (0x02<<16)
-#define AB3100_EVENTA1_ONSWC (0x04<<16)
-#define AB3100_EVENTA1_DCIO (0x08<<16)
-#define AB3100_EVENTA1_OVER_TEMP (0x10<<16)
-#define AB3100_EVENTA1_SIM_OFF (0x20<<16)
-#define AB3100_EVENTA1_VBUS (0x40<<16)
-#define AB3100_EVENTA1_VSET_USB (0x80<<16)
-
-#define AB3100_EVENTA2_READY_TX (0x01<<8)
-#define AB3100_EVENTA2_READY_RX (0x02<<8)
-#define AB3100_EVENTA2_OVERRUN_ERROR (0x04<<8)
-#define AB3100_EVENTA2_FRAMING_ERROR (0x08<<8)
-#define AB3100_EVENTA2_CHARG_OVERCURRENT (0x10<<8)
-#define AB3100_EVENTA2_MIDR (0x20<<8)
-#define AB3100_EVENTA2_BATTERY_REM (0x40<<8)
-#define AB3100_EVENTA2_ALARM (0x80<<8)
-
-#define AB3100_EVENTA3_ADC_TRIG5 (0x01)
-#define AB3100_EVENTA3_ADC_TRIG4 (0x02)
-#define AB3100_EVENTA3_ADC_TRIG3 (0x04)
-#define AB3100_EVENTA3_ADC_TRIG2 (0x08)
-#define AB3100_EVENTA3_ADC_TRIGVBAT (0x10)
-#define AB3100_EVENTA3_ADC_TRIGVTX (0x20)
-#define AB3100_EVENTA3_ADC_TRIG1 (0x40)
-#define AB3100_EVENTA3_ADC_TRIG0 (0x80)
-
-/* AB3100, STR register flags */
-#define AB3100_STR_ONSWA (0x01)
-#define AB3100_STR_ONSWB (0x02)
-#define AB3100_STR_ONSWC (0x04)
-#define AB3100_STR_DCIO (0x08)
-#define AB3100_STR_BOOT_MODE (0x10)
-#define AB3100_STR_SIM_OFF (0x20)
-#define AB3100_STR_BATT_REMOVAL (0x40)
-#define AB3100_STR_VBUS (0x80)
-
-/*
- * AB3100 contains 8 regulators, one external regulator controller
- * and a buck converter, further the LDO E and buck converter can
- * have separate settings if they are in sleep mode, this is
- * modeled as a separate regulator.
- */
-#define AB3100_NUM_REGULATORS 10
-
-/**
- * struct ab3100
- * @access_mutex: lock out concurrent accesses to the AB3100 registers
- * @dev: pointer to the containing device
- * @i2c_client: I2C client for this chip
- * @testreg_client: secondary client for test registers
- * @chip_name: name of this chip variant
- * @chip_id: 8 bit chip ID for this chip variant
- * @event_subscribers: event subscribers are listed here
- * @startup_events: a copy of the first reading of the event registers
- * @startup_events_read: whether the first events have been read
- *
- * This struct is PRIVATE and devices using it should NOT
- * access ANY fields. It is used as a token for calling the
- * AB3100 functions.
- */
-struct ab3100 {
- struct mutex access_mutex;
- struct device *dev;
- struct i2c_client *i2c_client;
- struct i2c_client *testreg_client;
- char chip_name[32];
- u8 chip_id;
- struct blocking_notifier_head event_subscribers;
- u8 startup_events[3];
- bool startup_events_read;
-};
-
-/**
- * struct ab3100_platform_data
- * Data supplied to initialize board connections to the AB3100
- * @reg_constraints: regulator constraints for target board
- * the order of these constraints are: LDO A, C, D, E,
- * F, G, H, K, EXT and BUCK.
- * @reg_initvals: initial values for the regulator registers
- * plus two sleep settings for LDO E and the BUCK converter.
- * exactly AB3100_NUM_REGULATORS+2 values must be sent in.
- * Order: LDO A, C, E, E sleep, F, G, H, K, EXT, BUCK,
- * BUCK sleep, LDO D. (LDO D need to be initialized last.)
- * @external_voltage: voltage level of the external regulator.
- */
-struct ab3100_platform_data {
- struct regulator_init_data reg_constraints[AB3100_NUM_REGULATORS];
- u8 reg_initvals[AB3100_NUM_REGULATORS+2];
- int external_voltage;
-};
-
-int ab3100_event_register(struct ab3100 *ab3100,
- struct notifier_block *nb);
-int ab3100_event_unregister(struct ab3100 *ab3100,
- struct notifier_block *nb);
-
-/**
- * struct abx500_init_setting
- * Initial value of the registers for driver to use during setup.
- */
-struct abx500_init_settings {
- u8 bank;
- u8 reg;
- u8 setting;
-};
-
-/* Battery driver related data */
-/*
- * ADC for the battery thermistor.
- * When using the ABx500_ADC_THERM_BATCTRL the battery ID resistor is combined
- * with a NTC resistor to both identify the battery and to measure its
- * temperature. Different phone manufactures uses different techniques to both
- * identify the battery and to read its temperature.
- */
-enum abx500_adc_therm {
- ABx500_ADC_THERM_BATCTRL,
- ABx500_ADC_THERM_BATTEMP,
-};
-
-/**
- * struct abx500_res_to_temp - defines one point in a temp to res curve. To
- * be used in battery packs that combines the identification resistor with a
- * NTC resistor.
- * @temp: battery pack temperature in Celcius
- * @resist: NTC resistor net total resistance
- */
-struct abx500_res_to_temp {
- int temp;
- int resist;
-};
-
-/**
- * struct abx500_v_to_cap - Table for translating voltage to capacity
- * @voltage: Voltage in mV
- * @capacity: Capacity in percent
- */
-struct abx500_v_to_cap {
- int voltage;
- int capacity;
-};
-
-/* Forward declaration */
-struct abx500_fg;
-
-/**
- * struct abx500_fg_parameters - Fuel gauge algorithm parameters, in seconds
- * if not specified
- * @recovery_sleep_timer: Time between measurements while recovering
- * @recovery_total_time: Total recovery time
- * @init_timer: Measurement interval during startup
- * @init_discard_time: Time we discard voltage measurement at startup
- * @init_total_time: Total init time during startup
- * @high_curr_time: Time current has to be high to go to recovery
- * @accu_charging: FG accumulation time while charging
- * @accu_high_curr: FG accumulation time in high current mode
- * @high_curr_threshold: High current threshold, in mA
- * @lowbat_threshold: Low battery threshold, in mV
- * @overbat_threshold: Over battery threshold, in mV
- * @battok_falling_th_sel0 Threshold in mV for battOk signal sel0
- * Resolution in 50 mV step.
- * @battok_raising_th_sel1 Threshold in mV for battOk signal sel1
- * Resolution in 50 mV step.
- * @user_cap_limit Capacity reported from user must be within this
- * limit to be considered as sane, in percentage
- * points.
- * @maint_thres This is the threshold where we stop reporting
- * battery full while in maintenance, in per cent
- */
-struct abx500_fg_parameters {
- int recovery_sleep_timer;
- int recovery_total_time;
- int init_timer;
- int init_discard_time;
- int init_total_time;
- int high_curr_time;
- int accu_charging;
- int accu_high_curr;
- int high_curr_threshold;
- int lowbat_threshold;
- int overbat_threshold;
- int battok_falling_th_sel0;
- int battok_raising_th_sel1;
- int user_cap_limit;
- int maint_thres;
-};
-
-/**
- * struct abx500_charger_maximization - struct used by the board config.
- * @use_maxi: Enable maximization for this battery type
- * @maxi_chg_curr: Maximum charger current allowed
- * @maxi_wait_cycles: cycles to wait before setting charger current
- * @charger_curr_step delta between two charger current settings (mA)
- */
-struct abx500_maxim_parameters {
- bool ena_maxi;
- int chg_curr;
- int wait_cycles;
- int charger_curr_step;
-};
-
-/**
- * struct abx500_battery_type - different batteries supported
- * @name: battery technology
- * @resis_high: battery upper resistance limit
- * @resis_low: battery lower resistance limit
- * @charge_full_design: Maximum battery capacity in mAh
- * @nominal_voltage: Nominal voltage of the battery in mV
- * @termination_vol: max voltage upto which battery can be charged
- * @termination_curr battery charging termination current in mA
- * @recharge_vol battery voltage limit that will trigger a new
- * full charging cycle in the case where maintenan-
- * -ce charging has been disabled
- * @normal_cur_lvl: charger current in normal state in mA
- * @normal_vol_lvl: charger voltage in normal state in mV
- * @maint_a_cur_lvl: charger current in maintenance A state in mA
- * @maint_a_vol_lvl: charger voltage in maintenance A state in mV
- * @maint_a_chg_timer_h: charge time in maintenance A state
- * @maint_b_cur_lvl: charger current in maintenance B state in mA
- * @maint_b_vol_lvl: charger voltage in maintenance B state in mV
- * @maint_b_chg_timer_h: charge time in maintenance B state
- * @low_high_cur_lvl: charger current in temp low/high state in mA
- * @low_high_vol_lvl: charger voltage in temp low/high state in mV'
- * @battery_resistance: battery inner resistance in mOhm.
- * @n_r_t_tbl_elements: number of elements in r_to_t_tbl
- * @r_to_t_tbl: table containing resistance to temp points
- * @n_v_cap_tbl_elements: number of elements in v_to_cap_tbl
- * @v_to_cap_tbl: Voltage to capacity (in %) table
- * @n_batres_tbl_elements number of elements in the batres_tbl
- * @batres_tbl battery internal resistance vs temperature table
- */
-struct abx500_battery_type {
- int name;
- int resis_high;
- int resis_low;
- int charge_full_design;
- int nominal_voltage;
- int termination_vol;
- int termination_curr;
- int recharge_vol;
- int normal_cur_lvl;
- int normal_vol_lvl;
- int maint_a_cur_lvl;
- int maint_a_vol_lvl;
- int maint_a_chg_timer_h;
- int maint_b_cur_lvl;
- int maint_b_vol_lvl;
- int maint_b_chg_timer_h;
- int low_high_cur_lvl;
- int low_high_vol_lvl;
- int battery_resistance;
- int n_temp_tbl_elements;
- struct abx500_res_to_temp *r_to_t_tbl;
- int n_v_cap_tbl_elements;
- struct abx500_v_to_cap *v_to_cap_tbl;
- int n_batres_tbl_elements;
- struct batres_vs_temp *batres_tbl;
-};
-
-/**
- * struct abx500_bm_capacity_levels - abx500 capacity level data
- * @critical: critical capacity level in percent
- * @low: low capacity level in percent
- * @normal: normal capacity level in percent
- * @high: high capacity level in percent
- * @full: full capacity level in percent
- */
-struct abx500_bm_capacity_levels {
- int critical;
- int low;
- int normal;
- int high;
- int full;
-};
-
-/**
- * struct abx500_bm_charger_parameters - Charger specific parameters
- * @usb_volt_max: maximum allowed USB charger voltage in mV
- * @usb_curr_max: maximum allowed USB charger current in mA
- * @ac_volt_max: maximum allowed AC charger voltage in mV
- * @ac_curr_max: maximum allowed AC charger current in mA
- */
-struct abx500_bm_charger_parameters {
- int usb_volt_max;
- int usb_curr_max;
- int ac_volt_max;
- int ac_curr_max;
-};
-
-/**
- * struct abx500_bm_data - abx500 battery management data
- * @temp_under under this temp, charging is stopped
- * @temp_low between this temp and temp_under charging is reduced
- * @temp_high between this temp and temp_over charging is reduced
- * @temp_over over this temp, charging is stopped
- * @temp_now present battery temperature
- * @temp_interval_chg temperature measurement interval in s when charging
- * @temp_interval_nochg temperature measurement interval in s when not charging
- * @main_safety_tmr_h safety timer for main charger
- * @usb_safety_tmr_h safety timer for usb charger
- * @bkup_bat_v voltage which we charge the backup battery with
- * @bkup_bat_i current which we charge the backup battery with
- * @no_maintenance indicates that maintenance charging is disabled
- * @abx500_adc_therm placement of thermistor, batctrl or battemp adc
- * @chg_unknown_bat flag to enable charging of unknown batteries
- * @enable_overshoot flag to enable VBAT overshoot control
- * @auto_trig flag to enable auto adc trigger
- * @fg_res resistance of FG resistor in 0.1mOhm
- * @n_btypes number of elements in array bat_type
- * @batt_id index of the identified battery in array bat_type
- * @interval_charging charge alg cycle period time when charging (sec)
- * @interval_not_charging charge alg cycle period time when not charging (sec)
- * @temp_hysteresis temperature hysteresis
- * @gnd_lift_resistance Battery ground to phone ground resistance (mOhm)
- * @maxi: maximization parameters
- * @cap_levels capacity in percent for the different capacity levels
- * @bat_type table of supported battery types
- * @chg_params charger parameters
- * @fg_params fuel gauge parameters
- */
-struct abx500_bm_data {
- int temp_under;
- int temp_low;
- int temp_high;
- int temp_over;
- int temp_now;
- int temp_interval_chg;
- int temp_interval_nochg;
- int main_safety_tmr_h;
- int usb_safety_tmr_h;
- int bkup_bat_v;
- int bkup_bat_i;
- bool no_maintenance;
- bool chg_unknown_bat;
- bool enable_overshoot;
- bool auto_trig;
- enum abx500_adc_therm adc_therm;
- int fg_res;
- int n_btypes;
- int batt_id;
- int interval_charging;
- int interval_not_charging;
- int temp_hysteresis;
- int gnd_lift_resistance;
- const struct abx500_maxim_parameters *maxi;
- const struct abx500_bm_capacity_levels *cap_levels;
- const struct abx500_battery_type *bat_type;
- const struct abx500_bm_charger_parameters *chg_params;
- const struct abx500_fg_parameters *fg_params;
-};
-
-struct abx500_chargalg_platform_data {
- char **supplied_to;
- size_t num_supplicants;
-};
-
-struct abx500_charger_platform_data {
- char **supplied_to;
- size_t num_supplicants;
- bool autopower_cfg;
-};
-
-struct abx500_btemp_platform_data {
- char **supplied_to;
- size_t num_supplicants;
-};
-
-struct abx500_fg_platform_data {
- char **supplied_to;
- size_t num_supplicants;
-};
-
-struct abx500_bm_plat_data {
- struct abx500_bm_data *battery;
- struct abx500_charger_platform_data *charger;
- struct abx500_btemp_platform_data *btemp;
- struct abx500_fg_platform_data *fg;
- struct abx500_chargalg_platform_data *chargalg;
-};
-
-int abx500_set_register_interruptible(struct device *dev, u8 bank, u8 reg,
- u8 value);
-int abx500_get_register_interruptible(struct device *dev, u8 bank, u8 reg,
- u8 *value);
-int abx500_get_register_page_interruptible(struct device *dev, u8 bank,
- u8 first_reg, u8 *regvals, u8 numregs);
-int abx500_set_register_page_interruptible(struct device *dev, u8 bank,
- u8 first_reg, u8 *regvals, u8 numregs);
-/**
- * abx500_mask_and_set_register_inerruptible() - Modifies selected bits of a
- * target register
- *
- * @dev: The AB sub device.
- * @bank: The i2c bank number.
- * @bitmask: The bit mask to use.
- * @bitvalues: The new bit values.
- *
- * Updates the value of an AB register:
- * value -> ((value & ~bitmask) | (bitvalues & bitmask))
- */
-int abx500_mask_and_set_register_interruptible(struct device *dev, u8 bank,
- u8 reg, u8 bitmask, u8 bitvalues);
-int abx500_get_chip_id(struct device *dev);
-int abx500_event_registers_startup_state_get(struct device *dev, u8 *event);
-int abx500_startup_irq_enabled(struct device *dev, unsigned int irq);
-
-struct abx500_ops {
- int (*get_chip_id) (struct device *);
- int (*get_register) (struct device *, u8, u8, u8 *);
- int (*set_register) (struct device *, u8, u8, u8);
- int (*get_register_page) (struct device *, u8, u8, u8 *, u8);
- int (*set_register_page) (struct device *, u8, u8, u8 *, u8);
- int (*mask_and_set_register) (struct device *, u8, u8, u8, u8);
- int (*event_registers_startup_state_get) (struct device *, u8 *);
- int (*startup_irq_enabled) (struct device *, unsigned int);
-};
-
-int abx500_register_ops(struct device *core_dev, struct abx500_ops *ops);
-void abx500_remove_ops(struct device *dev);
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/abx500/ab5500.h b/ANDROID_3.4.5/include/linux/mfd/abx500/ab5500.h
deleted file mode 100644
index 54f820ed..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/abx500/ab5500.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson 2011
- *
- * License Terms: GNU General Public License v2
- */
-#ifndef MFD_AB5500_H
-#define MFD_AB5500_H
-
-struct device;
-
-enum ab5500_devid {
- AB5500_DEVID_ADC,
- AB5500_DEVID_LEDS,
- AB5500_DEVID_POWER,
- AB5500_DEVID_REGULATORS,
- AB5500_DEVID_SIM,
- AB5500_DEVID_RTC,
- AB5500_DEVID_CHARGER,
- AB5500_DEVID_FUELGAUGE,
- AB5500_DEVID_VIBRATOR,
- AB5500_DEVID_CODEC,
- AB5500_DEVID_USB,
- AB5500_DEVID_OTP,
- AB5500_DEVID_VIDEO,
- AB5500_DEVID_DBIECI,
- AB5500_DEVID_ONSWA,
- AB5500_NUM_DEVICES,
-};
-
-enum ab5500_banks {
- AB5500_BANK_VIT_IO_I2C_CLK_TST_OTP = 0,
- AB5500_BANK_VDDDIG_IO_I2C_CLK_TST = 1,
- AB5500_BANK_VDENC = 2,
- AB5500_BANK_SIM_USBSIM = 3,
- AB5500_BANK_LED = 4,
- AB5500_BANK_ADC = 5,
- AB5500_BANK_RTC = 6,
- AB5500_BANK_STARTUP = 7,
- AB5500_BANK_DBI_ECI = 8,
- AB5500_BANK_CHG = 9,
- AB5500_BANK_FG_BATTCOM_ACC = 10,
- AB5500_BANK_USB = 11,
- AB5500_BANK_IT = 12,
- AB5500_BANK_VIBRA = 13,
- AB5500_BANK_AUDIO_HEADSETUSB = 14,
- AB5500_NUM_BANKS = 15,
-};
-
-enum ab5500_banks_addr {
- AB5500_ADDR_VIT_IO_I2C_CLK_TST_OTP = 0x4A,
- AB5500_ADDR_VDDDIG_IO_I2C_CLK_TST = 0x4B,
- AB5500_ADDR_VDENC = 0x06,
- AB5500_ADDR_SIM_USBSIM = 0x04,
- AB5500_ADDR_LED = 0x10,
- AB5500_ADDR_ADC = 0x0A,
- AB5500_ADDR_RTC = 0x0F,
- AB5500_ADDR_STARTUP = 0x03,
- AB5500_ADDR_DBI_ECI = 0x07,
- AB5500_ADDR_CHG = 0x0B,
- AB5500_ADDR_FG_BATTCOM_ACC = 0x0C,
- AB5500_ADDR_USB = 0x05,
- AB5500_ADDR_IT = 0x0E,
- AB5500_ADDR_VIBRA = 0x02,
- AB5500_ADDR_AUDIO_HEADSETUSB = 0x0D,
-};
-
-/*
- * Interrupt register offsets
- * Bank : 0x0E
- */
-#define AB5500_IT_SOURCE0_REG 0x20
-#define AB5500_IT_SOURCE1_REG 0x21
-#define AB5500_IT_SOURCE2_REG 0x22
-#define AB5500_IT_SOURCE3_REG 0x23
-#define AB5500_IT_SOURCE4_REG 0x24
-#define AB5500_IT_SOURCE5_REG 0x25
-#define AB5500_IT_SOURCE6_REG 0x26
-#define AB5500_IT_SOURCE7_REG 0x27
-#define AB5500_IT_SOURCE8_REG 0x28
-#define AB5500_IT_SOURCE9_REG 0x29
-#define AB5500_IT_SOURCE10_REG 0x2A
-#define AB5500_IT_SOURCE11_REG 0x2B
-#define AB5500_IT_SOURCE12_REG 0x2C
-#define AB5500_IT_SOURCE13_REG 0x2D
-#define AB5500_IT_SOURCE14_REG 0x2E
-#define AB5500_IT_SOURCE15_REG 0x2F
-#define AB5500_IT_SOURCE16_REG 0x30
-#define AB5500_IT_SOURCE17_REG 0x31
-#define AB5500_IT_SOURCE18_REG 0x32
-#define AB5500_IT_SOURCE19_REG 0x33
-#define AB5500_IT_SOURCE20_REG 0x34
-#define AB5500_IT_SOURCE21_REG 0x35
-#define AB5500_IT_SOURCE22_REG 0x36
-#define AB5500_IT_SOURCE23_REG 0x37
-
-#define AB5500_NUM_IRQ_REGS 23
-
-/**
- * struct ab5500
- * @access_mutex: lock out concurrent accesses to the AB registers
- * @dev: a pointer to the device struct for this chip driver
- * @ab5500_irq: the analog baseband irq
- * @irq_base: the platform configuration irq base for subdevices
- * @chip_name: name of this chip variant
- * @chip_id: 8 bit chip ID for this chip variant
- * @irq_lock: a lock to protect the mask
- * @abb_events: a local bit mask of the prcmu wakeup events
- * @event_mask: a local copy of the mask event registers
- * @last_event_mask: a copy of the last event_mask written to hardware
- * @startup_events: a copy of the first reading of the event registers
- * @startup_events_read: whether the first events have been read
- */
-struct ab5500 {
- struct mutex access_mutex;
- struct device *dev;
- unsigned int ab5500_irq;
- unsigned int irq_base;
- char chip_name[32];
- u8 chip_id;
- struct mutex irq_lock;
- u32 abb_events;
- u8 mask[AB5500_NUM_IRQ_REGS];
- u8 oldmask[AB5500_NUM_IRQ_REGS];
- u8 startup_events[AB5500_NUM_IRQ_REGS];
- bool startup_events_read;
-#ifdef CONFIG_DEBUG_FS
- unsigned int debug_bank;
- unsigned int debug_address;
-#endif
-};
-
-struct ab5500_platform_data {
- struct {unsigned int base; unsigned int count; } irq;
- void *dev_data[AB5500_NUM_DEVICES];
- struct abx500_init_settings *init_settings;
- unsigned int init_settings_sz;
- bool pm_power_off;
-};
-
-#endif /* MFD_AB5500_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/abx500/ab8500-bm.h b/ANDROID_3.4.5/include/linux/mfd/abx500/ab8500-bm.h
deleted file mode 100644
index 44310c98..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/abx500/ab8500-bm.h
+++ /dev/null
@@ -1,474 +0,0 @@
-/*
- * Copyright ST-Ericsson 2012.
- *
- * Author: Arun Murthy <arun.murthy@stericsson.com>
- * Licensed under GPLv2.
- */
-
-#ifndef _AB8500_BM_H
-#define _AB8500_BM_H
-
-#include <linux/kernel.h>
-#include <linux/mfd/abx500.h>
-
-/*
- * System control 2 register offsets.
- * bank = 0x02
- */
-#define AB8500_MAIN_WDOG_CTRL_REG 0x01
-#define AB8500_LOW_BAT_REG 0x03
-#define AB8500_BATT_OK_REG 0x04
-/*
- * USB/ULPI register offsets
- * Bank : 0x5
- */
-#define AB8500_USB_LINE_STAT_REG 0x80
-
-/*
- * Charger / status register offfsets
- * Bank : 0x0B
- */
-#define AB8500_CH_STATUS1_REG 0x00
-#define AB8500_CH_STATUS2_REG 0x01
-#define AB8500_CH_USBCH_STAT1_REG 0x02
-#define AB8500_CH_USBCH_STAT2_REG 0x03
-#define AB8500_CH_FSM_STAT_REG 0x04
-#define AB8500_CH_STAT_REG 0x05
-
-/*
- * Charger / control register offfsets
- * Bank : 0x0B
- */
-#define AB8500_CH_VOLT_LVL_REG 0x40
-#define AB8500_CH_VOLT_LVL_MAX_REG 0x41 /*Only in Cut2.0*/
-#define AB8500_CH_OPT_CRNTLVL_REG 0x42
-#define AB8500_CH_OPT_CRNTLVL_MAX_REG 0x43 /*Only in Cut2.0*/
-#define AB8500_CH_WD_TIMER_REG 0x50
-#define AB8500_CHARG_WD_CTRL 0x51
-#define AB8500_BTEMP_HIGH_TH 0x52
-#define AB8500_LED_INDICATOR_PWM_CTRL 0x53
-#define AB8500_LED_INDICATOR_PWM_DUTY 0x54
-#define AB8500_BATT_OVV 0x55
-#define AB8500_CHARGER_CTRL 0x56
-#define AB8500_BAT_CTRL_CURRENT_SOURCE 0x60 /*Only in Cut2.0*/
-
-/*
- * Charger / main control register offsets
- * Bank : 0x0B
- */
-#define AB8500_MCH_CTRL1 0x80
-#define AB8500_MCH_CTRL2 0x81
-#define AB8500_MCH_IPT_CURLVL_REG 0x82
-#define AB8500_CH_WD_REG 0x83
-
-/*
- * Charger / USB control register offsets
- * Bank : 0x0B
- */
-#define AB8500_USBCH_CTRL1_REG 0xC0
-#define AB8500_USBCH_CTRL2_REG 0xC1
-#define AB8500_USBCH_IPT_CRNTLVL_REG 0xC2
-
-/*
- * Gas Gauge register offsets
- * Bank : 0x0C
- */
-#define AB8500_GASG_CC_CTRL_REG 0x00
-#define AB8500_GASG_CC_ACCU1_REG 0x01
-#define AB8500_GASG_CC_ACCU2_REG 0x02
-#define AB8500_GASG_CC_ACCU3_REG 0x03
-#define AB8500_GASG_CC_ACCU4_REG 0x04
-#define AB8500_GASG_CC_SMPL_CNTRL_REG 0x05
-#define AB8500_GASG_CC_SMPL_CNTRH_REG 0x06
-#define AB8500_GASG_CC_SMPL_CNVL_REG 0x07
-#define AB8500_GASG_CC_SMPL_CNVH_REG 0x08
-#define AB8500_GASG_CC_CNTR_AVGOFF_REG 0x09
-#define AB8500_GASG_CC_OFFSET_REG 0x0A
-#define AB8500_GASG_CC_NCOV_ACCU 0x10
-#define AB8500_GASG_CC_NCOV_ACCU_CTRL 0x11
-#define AB8500_GASG_CC_NCOV_ACCU_LOW 0x12
-#define AB8500_GASG_CC_NCOV_ACCU_MED 0x13
-#define AB8500_GASG_CC_NCOV_ACCU_HIGH 0x14
-
-/*
- * Interrupt register offsets
- * Bank : 0x0E
- */
-#define AB8500_IT_SOURCE2_REG 0x01
-#define AB8500_IT_SOURCE21_REG 0x14
-
-/*
- * RTC register offsets
- * Bank: 0x0F
- */
-#define AB8500_RTC_BACKUP_CHG_REG 0x0C
-#define AB8500_RTC_CC_CONF_REG 0x01
-#define AB8500_RTC_CTRL_REG 0x0B
-
-/*
- * OTP register offsets
- * Bank : 0x15
- */
-#define AB8500_OTP_CONF_15 0x0E
-
-/* GPADC constants from AB8500 spec, UM0836 */
-#define ADC_RESOLUTION 1024
-#define ADC_CH_MAIN_MIN 0
-#define ADC_CH_MAIN_MAX 20030
-#define ADC_CH_VBUS_MIN 0
-#define ADC_CH_VBUS_MAX 20030
-#define ADC_CH_VBAT_MIN 2300
-#define ADC_CH_VBAT_MAX 4800
-#define ADC_CH_BKBAT_MIN 0
-#define ADC_CH_BKBAT_MAX 3200
-
-/* Main charge i/p current */
-#define MAIN_CH_IP_CUR_0P9A 0x80
-#define MAIN_CH_IP_CUR_1P0A 0x90
-#define MAIN_CH_IP_CUR_1P1A 0xA0
-#define MAIN_CH_IP_CUR_1P2A 0xB0
-#define MAIN_CH_IP_CUR_1P3A 0xC0
-#define MAIN_CH_IP_CUR_1P4A 0xD0
-#define MAIN_CH_IP_CUR_1P5A 0xE0
-
-/* ChVoltLevel */
-#define CH_VOL_LVL_3P5 0x00
-#define CH_VOL_LVL_4P0 0x14
-#define CH_VOL_LVL_4P05 0x16
-#define CH_VOL_LVL_4P1 0x1B
-#define CH_VOL_LVL_4P15 0x20
-#define CH_VOL_LVL_4P2 0x25
-#define CH_VOL_LVL_4P6 0x4D
-
-/* ChOutputCurrentLevel */
-#define CH_OP_CUR_LVL_0P1 0x00
-#define CH_OP_CUR_LVL_0P2 0x01
-#define CH_OP_CUR_LVL_0P3 0x02
-#define CH_OP_CUR_LVL_0P4 0x03
-#define CH_OP_CUR_LVL_0P5 0x04
-#define CH_OP_CUR_LVL_0P6 0x05
-#define CH_OP_CUR_LVL_0P7 0x06
-#define CH_OP_CUR_LVL_0P8 0x07
-#define CH_OP_CUR_LVL_0P9 0x08
-#define CH_OP_CUR_LVL_1P4 0x0D
-#define CH_OP_CUR_LVL_1P5 0x0E
-#define CH_OP_CUR_LVL_1P6 0x0F
-
-/* BTEMP High thermal limits */
-#define BTEMP_HIGH_TH_57_0 0x00
-#define BTEMP_HIGH_TH_52 0x01
-#define BTEMP_HIGH_TH_57_1 0x02
-#define BTEMP_HIGH_TH_62 0x03
-
-/* current is mA */
-#define USB_0P1A 100
-#define USB_0P2A 200
-#define USB_0P3A 300
-#define USB_0P4A 400
-#define USB_0P5A 500
-
-#define LOW_BAT_3P1V 0x20
-#define LOW_BAT_2P3V 0x00
-#define LOW_BAT_RESET 0x01
-#define LOW_BAT_ENABLE 0x01
-
-/* Backup battery constants */
-#define BUP_ICH_SEL_50UA 0x00
-#define BUP_ICH_SEL_150UA 0x04
-#define BUP_ICH_SEL_300UA 0x08
-#define BUP_ICH_SEL_700UA 0x0C
-
-#define BUP_VCH_SEL_2P5V 0x00
-#define BUP_VCH_SEL_2P6V 0x01
-#define BUP_VCH_SEL_2P8V 0x02
-#define BUP_VCH_SEL_3P1V 0x03
-
-/* Battery OVV constants */
-#define BATT_OVV_ENA 0x02
-#define BATT_OVV_TH_3P7 0x00
-#define BATT_OVV_TH_4P75 0x01
-
-/* A value to indicate over voltage */
-#define BATT_OVV_VALUE 4750
-
-/* VBUS OVV constants */
-#define VBUS_OVV_SELECT_MASK 0x78
-#define VBUS_OVV_SELECT_5P6V 0x00
-#define VBUS_OVV_SELECT_5P7V 0x08
-#define VBUS_OVV_SELECT_5P8V 0x10
-#define VBUS_OVV_SELECT_5P9V 0x18
-#define VBUS_OVV_SELECT_6P0V 0x20
-#define VBUS_OVV_SELECT_6P1V 0x28
-#define VBUS_OVV_SELECT_6P2V 0x30
-#define VBUS_OVV_SELECT_6P3V 0x38
-
-#define VBUS_AUTO_IN_CURR_LIM_ENA 0x04
-
-/* Fuel Gauge constants */
-#define RESET_ACCU 0x02
-#define READ_REQ 0x01
-#define CC_DEEP_SLEEP_ENA 0x02
-#define CC_PWR_UP_ENA 0x01
-#define CC_SAMPLES_40 0x28
-#define RD_NCONV_ACCU_REQ 0x01
-#define CC_CALIB 0x08
-#define CC_INTAVGOFFSET_ENA 0x10
-#define CC_MUXOFFSET 0x80
-#define CC_INT_CAL_N_AVG_MASK 0x60
-#define CC_INT_CAL_SAMPLES_16 0x40
-#define CC_INT_CAL_SAMPLES_8 0x20
-#define CC_INT_CAL_SAMPLES_4 0x00
-
-/* RTC constants */
-#define RTC_BUP_CH_ENA 0x10
-
-/* BatCtrl Current Source Constants */
-#define BAT_CTRL_7U_ENA 0x01
-#define BAT_CTRL_20U_ENA 0x02
-#define BAT_CTRL_CMP_ENA 0x04
-#define FORCE_BAT_CTRL_CMP_HIGH 0x08
-#define BAT_CTRL_PULL_UP_ENA 0x10
-
-/* Battery type */
-#define BATTERY_UNKNOWN 00
-
-/**
- * struct res_to_temp - defines one point in a temp to res curve. To
- * be used in battery packs that combines the identification resistor with a
- * NTC resistor.
- * @temp: battery pack temperature in Celcius
- * @resist: NTC resistor net total resistance
- */
-struct res_to_temp {
- int temp;
- int resist;
-};
-
-/**
- * struct batres_vs_temp - defines one point in a temp vs battery internal
- * resistance curve.
- * @temp: battery pack temperature in Celcius
- * @resist: battery internal reistance in mOhm
- */
-struct batres_vs_temp {
- int temp;
- int resist;
-};
-
-/* Forward declaration */
-struct ab8500_fg;
-
-/**
- * struct ab8500_fg_parameters - Fuel gauge algorithm parameters, in seconds
- * if not specified
- * @recovery_sleep_timer: Time between measurements while recovering
- * @recovery_total_time: Total recovery time
- * @init_timer: Measurement interval during startup
- * @init_discard_time: Time we discard voltage measurement at startup
- * @init_total_time: Total init time during startup
- * @high_curr_time: Time current has to be high to go to recovery
- * @accu_charging: FG accumulation time while charging
- * @accu_high_curr: FG accumulation time in high current mode
- * @high_curr_threshold: High current threshold, in mA
- * @lowbat_threshold: Low battery threshold, in mV
- * @battok_falling_th_sel0 Threshold in mV for battOk signal sel0
- * Resolution in 50 mV step.
- * @battok_raising_th_sel1 Threshold in mV for battOk signal sel1
- * Resolution in 50 mV step.
- * @user_cap_limit Capacity reported from user must be within this
- * limit to be considered as sane, in percentage
- * points.
- * @maint_thres This is the threshold where we stop reporting
- * battery full while in maintenance, in per cent
- */
-struct ab8500_fg_parameters {
- int recovery_sleep_timer;
- int recovery_total_time;
- int init_timer;
- int init_discard_time;
- int init_total_time;
- int high_curr_time;
- int accu_charging;
- int accu_high_curr;
- int high_curr_threshold;
- int lowbat_threshold;
- int battok_falling_th_sel0;
- int battok_raising_th_sel1;
- int user_cap_limit;
- int maint_thres;
-};
-
-/**
- * struct ab8500_charger_maximization - struct used by the board config.
- * @use_maxi: Enable maximization for this battery type
- * @maxi_chg_curr: Maximum charger current allowed
- * @maxi_wait_cycles: cycles to wait before setting charger current
- * @charger_curr_step delta between two charger current settings (mA)
- */
-struct ab8500_maxim_parameters {
- bool ena_maxi;
- int chg_curr;
- int wait_cycles;
- int charger_curr_step;
-};
-
-/**
- * struct ab8500_bm_capacity_levels - ab8500 capacity level data
- * @critical: critical capacity level in percent
- * @low: low capacity level in percent
- * @normal: normal capacity level in percent
- * @high: high capacity level in percent
- * @full: full capacity level in percent
- */
-struct ab8500_bm_capacity_levels {
- int critical;
- int low;
- int normal;
- int high;
- int full;
-};
-
-/**
- * struct ab8500_bm_charger_parameters - Charger specific parameters
- * @usb_volt_max: maximum allowed USB charger voltage in mV
- * @usb_curr_max: maximum allowed USB charger current in mA
- * @ac_volt_max: maximum allowed AC charger voltage in mV
- * @ac_curr_max: maximum allowed AC charger current in mA
- */
-struct ab8500_bm_charger_parameters {
- int usb_volt_max;
- int usb_curr_max;
- int ac_volt_max;
- int ac_curr_max;
-};
-
-/**
- * struct ab8500_bm_data - ab8500 battery management data
- * @temp_under under this temp, charging is stopped
- * @temp_low between this temp and temp_under charging is reduced
- * @temp_high between this temp and temp_over charging is reduced
- * @temp_over over this temp, charging is stopped
- * @temp_interval_chg temperature measurement interval in s when charging
- * @temp_interval_nochg temperature measurement interval in s when not charging
- * @main_safety_tmr_h safety timer for main charger
- * @usb_safety_tmr_h safety timer for usb charger
- * @bkup_bat_v voltage which we charge the backup battery with
- * @bkup_bat_i current which we charge the backup battery with
- * @no_maintenance indicates that maintenance charging is disabled
- * @adc_therm placement of thermistor, batctrl or battemp adc
- * @chg_unknown_bat flag to enable charging of unknown batteries
- * @enable_overshoot flag to enable VBAT overshoot control
- * @fg_res resistance of FG resistor in 0.1mOhm
- * @n_btypes number of elements in array bat_type
- * @batt_id index of the identified battery in array bat_type
- * @interval_charging charge alg cycle period time when charging (sec)
- * @interval_not_charging charge alg cycle period time when not charging (sec)
- * @temp_hysteresis temperature hysteresis
- * @gnd_lift_resistance Battery ground to phone ground resistance (mOhm)
- * @maxi: maximization parameters
- * @cap_levels capacity in percent for the different capacity levels
- * @bat_type table of supported battery types
- * @chg_params charger parameters
- * @fg_params fuel gauge parameters
- */
-struct ab8500_bm_data {
- int temp_under;
- int temp_low;
- int temp_high;
- int temp_over;
- int temp_interval_chg;
- int temp_interval_nochg;
- int main_safety_tmr_h;
- int usb_safety_tmr_h;
- int bkup_bat_v;
- int bkup_bat_i;
- bool no_maintenance;
- bool chg_unknown_bat;
- bool enable_overshoot;
- enum abx500_adc_therm adc_therm;
- int fg_res;
- int n_btypes;
- int batt_id;
- int interval_charging;
- int interval_not_charging;
- int temp_hysteresis;
- int gnd_lift_resistance;
- const struct ab8500_maxim_parameters *maxi;
- const struct ab8500_bm_capacity_levels *cap_levels;
- const struct ab8500_bm_charger_parameters *chg_params;
- const struct ab8500_fg_parameters *fg_params;
-};
-
-struct ab8500_charger_platform_data {
- char **supplied_to;
- size_t num_supplicants;
- bool autopower_cfg;
-};
-
-struct ab8500_btemp_platform_data {
- char **supplied_to;
- size_t num_supplicants;
-};
-
-struct ab8500_fg_platform_data {
- char **supplied_to;
- size_t num_supplicants;
-};
-
-struct ab8500_chargalg_platform_data {
- char **supplied_to;
- size_t num_supplicants;
-};
-struct ab8500_btemp;
-struct ab8500_gpadc;
-struct ab8500_fg;
-#ifdef CONFIG_AB8500_BM
-void ab8500_fg_reinit(void);
-void ab8500_charger_usb_state_changed(u8 bm_usb_state, u16 mA);
-struct ab8500_btemp *ab8500_btemp_get(void);
-int ab8500_btemp_get_batctrl_temp(struct ab8500_btemp *btemp);
-struct ab8500_fg *ab8500_fg_get(void);
-int ab8500_fg_inst_curr_blocking(struct ab8500_fg *dev);
-int ab8500_fg_inst_curr_start(struct ab8500_fg *di);
-int ab8500_fg_inst_curr_finalize(struct ab8500_fg *di, int *res);
-int ab8500_fg_inst_curr_done(struct ab8500_fg *di);
-
-#else
-int ab8500_fg_inst_curr_done(struct ab8500_fg *di)
-{
-}
-static void ab8500_fg_reinit(void)
-{
-}
-static void ab8500_charger_usb_state_changed(u8 bm_usb_state, u16 mA)
-{
-}
-static struct ab8500_btemp *ab8500_btemp_get(void)
-{
- return NULL;
-}
-static int ab8500_btemp_get_batctrl_temp(struct ab8500_btemp *btemp)
-{
- return 0;
-}
-struct ab8500_fg *ab8500_fg_get(void)
-{
- return NULL;
-}
-static int ab8500_fg_inst_curr_blocking(struct ab8500_fg *dev)
-{
- return -ENODEV;
-}
-
-static inline int ab8500_fg_inst_curr_start(struct ab8500_fg *di)
-{
- return -ENODEV;
-}
-
-static inline int ab8500_fg_inst_curr_finalize(struct ab8500_fg *di, int *res)
-{
- return -ENODEV;
-}
-
-#endif
-#endif /* _AB8500_BM_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/abx500/ab8500-gpadc.h b/ANDROID_3.4.5/include/linux/mfd/abx500/ab8500-gpadc.h
deleted file mode 100644
index 25296676..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/abx500/ab8500-gpadc.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2010 ST-Ericsson SA
- * Licensed under GPLv2.
- *
- * Author: Arun R Murthy <arun.murthy@stericsson.com>
- * Author: Daniel Willerud <daniel.willerud@stericsson.com>
- */
-
-#ifndef _AB8500_GPADC_H
-#define _AB8500_GPADC_H
-
-/* GPADC source: From datasheet(ADCSwSel[4:0] in GPADCCtrl2) */
-#define BAT_CTRL 0x01
-#define BTEMP_BALL 0x02
-#define MAIN_CHARGER_V 0x03
-#define ACC_DETECT1 0x04
-#define ACC_DETECT2 0x05
-#define ADC_AUX1 0x06
-#define ADC_AUX2 0x07
-#define MAIN_BAT_V 0x08
-#define VBUS_V 0x09
-#define MAIN_CHARGER_C 0x0A
-#define USB_CHARGER_C 0x0B
-#define BK_BAT_V 0x0C
-#define DIE_TEMP 0x0D
-
-struct ab8500_gpadc;
-
-struct ab8500_gpadc *ab8500_gpadc_get(char *name);
-int ab8500_gpadc_convert(struct ab8500_gpadc *gpadc, u8 channel);
-int ab8500_gpadc_read_raw(struct ab8500_gpadc *gpadc, u8 channel);
-int ab8500_gpadc_ad_to_voltage(struct ab8500_gpadc *gpadc,
- u8 channel, int ad_value);
-
-#endif /* _AB8500_GPADC_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/abx500/ab8500-gpio.h b/ANDROID_3.4.5/include/linux/mfd/abx500/ab8500-gpio.h
deleted file mode 100644
index 2387c207..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/abx500/ab8500-gpio.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright ST-Ericsson 2010.
- *
- * Author: Bibek Basu <bibek.basu@stericsson.com>
- * Licensed under GPLv2.
- */
-
-#ifndef _AB8500_GPIO_H
-#define _AB8500_GPIO_H
-
-/*
- * Platform data to register a block: only the initial gpio/irq number.
- * Array sizes are large enough to contain all AB8500 and AB9540 GPIO
- * registers.
- */
-
-struct ab8500_gpio_platform_data {
- int gpio_base;
- u32 irq_base;
- u8 config_reg[8];
-};
-
-#endif /* _AB8500_GPIO_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/abx500/ab8500-sysctrl.h b/ANDROID_3.4.5/include/linux/mfd/abx500/ab8500-sysctrl.h
deleted file mode 100644
index 10eb5097..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/abx500/ab8500-sysctrl.h
+++ /dev/null
@@ -1,297 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson SA 2010
- * Author: Mattias Nilsson <mattias.i.nilsson@stericsson.com> for ST Ericsson.
- * License terms: GNU General Public License (GPL) version 2
- */
-#ifndef __AB8500_SYSCTRL_H
-#define __AB8500_SYSCTRL_H
-
-#include <linux/bitops.h>
-
-#ifdef CONFIG_AB8500_CORE
-
-int ab8500_sysctrl_read(u16 reg, u8 *value);
-int ab8500_sysctrl_write(u16 reg, u8 mask, u8 value);
-
-#else
-
-static inline int ab8500_sysctrl_read(u16 reg, u8 *value)
-{
- return 0;
-}
-
-static inline int ab8500_sysctrl_write(u16 reg, u8 mask, u8 value)
-{
- return 0;
-}
-
-#endif /* CONFIG_AB8500_CORE */
-
-static inline int ab8500_sysctrl_set(u16 reg, u8 bits)
-{
- return ab8500_sysctrl_write(reg, bits, bits);
-}
-
-static inline int ab8500_sysctrl_clear(u16 reg, u8 bits)
-{
- return ab8500_sysctrl_write(reg, bits, 0);
-}
-
-/* Registers */
-#define AB8500_TURNONSTATUS 0x100
-#define AB8500_RESETSTATUS 0x101
-#define AB8500_PONKEY1PRESSSTATUS 0x102
-#define AB8500_SYSCLKREQSTATUS 0x142
-#define AB8500_STW4500CTRL1 0x180
-#define AB8500_STW4500CTRL2 0x181
-#define AB8500_STW4500CTRL3 0x200
-#define AB8500_MAINWDOGCTRL 0x201
-#define AB8500_MAINWDOGTIMER 0x202
-#define AB8500_LOWBAT 0x203
-#define AB8500_BATTOK 0x204
-#define AB8500_SYSCLKTIMER 0x205
-#define AB8500_SMPSCLKCTRL 0x206
-#define AB8500_SMPSCLKSEL1 0x207
-#define AB8500_SMPSCLKSEL2 0x208
-#define AB8500_SMPSCLKSEL3 0x209
-#define AB8500_SYSULPCLKCONF 0x20A
-#define AB8500_SYSULPCLKCTRL1 0x20B
-#define AB8500_SYSCLKCTRL 0x20C
-#define AB8500_SYSCLKREQ1VALID 0x20D
-#define AB8500_SYSTEMCTRLSUP 0x20F
-#define AB8500_SYSCLKREQ1RFCLKBUF 0x210
-#define AB8500_SYSCLKREQ2RFCLKBUF 0x211
-#define AB8500_SYSCLKREQ3RFCLKBUF 0x212
-#define AB8500_SYSCLKREQ4RFCLKBUF 0x213
-#define AB8500_SYSCLKREQ5RFCLKBUF 0x214
-#define AB8500_SYSCLKREQ6RFCLKBUF 0x215
-#define AB8500_SYSCLKREQ7RFCLKBUF 0x216
-#define AB8500_SYSCLKREQ8RFCLKBUF 0x217
-#define AB8500_DITHERCLKCTRL 0x220
-#define AB8500_SWATCTRL 0x230
-#define AB8500_HIQCLKCTRL 0x232
-#define AB8500_VSIMSYSCLKCTRL 0x233
-#define AB9540_SYSCLK12BUFCTRL 0x234
-#define AB9540_SYSCLK12CONFCTRL 0x235
-#define AB9540_SYSCLK12BUFCTRL2 0x236
-#define AB9540_SYSCLK12BUF1VALID 0x237
-#define AB9540_SYSCLK12BUF2VALID 0x238
-#define AB9540_SYSCLK12BUF3VALID 0x239
-#define AB9540_SYSCLK12BUF4VALID 0x23A
-
-/* Bits */
-#define AB8500_TURNONSTATUS_PORNVBAT BIT(0)
-#define AB8500_TURNONSTATUS_PONKEY1DBF BIT(1)
-#define AB8500_TURNONSTATUS_PONKEY2DBF BIT(2)
-#define AB8500_TURNONSTATUS_RTCALARM BIT(3)
-#define AB8500_TURNONSTATUS_MAINCHDET BIT(4)
-#define AB8500_TURNONSTATUS_VBUSDET BIT(5)
-#define AB8500_TURNONSTATUS_USBIDDETECT BIT(6)
-
-#define AB8500_RESETSTATUS_RESETN4500NSTATUS BIT(0)
-#define AB8500_RESETSTATUS_SWRESETN4500NSTATUS BIT(2)
-
-#define AB8500_PONKEY1PRESSSTATUS_PONKEY1PRESSTIME_MASK 0x7F
-#define AB8500_PONKEY1PRESSSTATUS_PONKEY1PRESSTIME_SHIFT 0
-
-#define AB8500_SYSCLKREQSTATUS_SYSCLKREQ1STATUS BIT(0)
-#define AB8500_SYSCLKREQSTATUS_SYSCLKREQ2STATUS BIT(1)
-#define AB8500_SYSCLKREQSTATUS_SYSCLKREQ3STATUS BIT(2)
-#define AB8500_SYSCLKREQSTATUS_SYSCLKREQ4STATUS BIT(3)
-#define AB8500_SYSCLKREQSTATUS_SYSCLKREQ5STATUS BIT(4)
-#define AB8500_SYSCLKREQSTATUS_SYSCLKREQ6STATUS BIT(5)
-#define AB8500_SYSCLKREQSTATUS_SYSCLKREQ7STATUS BIT(6)
-#define AB8500_SYSCLKREQSTATUS_SYSCLKREQ8STATUS BIT(7)
-
-#define AB8500_STW4500CTRL1_SWOFF BIT(0)
-#define AB8500_STW4500CTRL1_SWRESET4500N BIT(1)
-#define AB8500_STW4500CTRL1_THDB8500SWOFF BIT(2)
-
-#define AB8500_STW4500CTRL2_RESETNVAUX1VALID BIT(0)
-#define AB8500_STW4500CTRL2_RESETNVAUX2VALID BIT(1)
-#define AB8500_STW4500CTRL2_RESETNVAUX3VALID BIT(2)
-#define AB8500_STW4500CTRL2_RESETNVMODVALID BIT(3)
-#define AB8500_STW4500CTRL2_RESETNVEXTSUPPLY1VALID BIT(4)
-#define AB8500_STW4500CTRL2_RESETNVEXTSUPPLY2VALID BIT(5)
-#define AB8500_STW4500CTRL2_RESETNVEXTSUPPLY3VALID BIT(6)
-#define AB8500_STW4500CTRL2_RESETNVSMPS1VALID BIT(7)
-
-#define AB8500_STW4500CTRL3_CLK32KOUT2DIS BIT(0)
-#define AB8500_STW4500CTRL3_RESETAUDN BIT(1)
-#define AB8500_STW4500CTRL3_RESETDENCN BIT(2)
-#define AB8500_STW4500CTRL3_THSDENA BIT(3)
-
-#define AB8500_MAINWDOGCTRL_MAINWDOGENA BIT(0)
-#define AB8500_MAINWDOGCTRL_MAINWDOGKICK BIT(1)
-#define AB8500_MAINWDOGCTRL_WDEXPTURNONVALID BIT(4)
-
-#define AB8500_MAINWDOGTIMER_MAINWDOGTIMER_MASK 0x7F
-#define AB8500_MAINWDOGTIMER_MAINWDOGTIMER_SHIFT 0
-
-#define AB8500_LOWBAT_LOWBATENA BIT(0)
-#define AB8500_LOWBAT_LOWBAT_MASK 0x7E
-#define AB8500_LOWBAT_LOWBAT_SHIFT 1
-
-#define AB8500_BATTOK_BATTOKSEL0THF_MASK 0x0F
-#define AB8500_BATTOK_BATTOKSEL0THF_SHIFT 0
-#define AB8500_BATTOK_BATTOKSEL1THF_MASK 0xF0
-#define AB8500_BATTOK_BATTOKSEL1THF_SHIFT 4
-
-#define AB8500_SYSCLKTIMER_SYSCLKTIMER_MASK 0x0F
-#define AB8500_SYSCLKTIMER_SYSCLKTIMER_SHIFT 0
-#define AB8500_SYSCLKTIMER_SYSCLKTIMERADJ_MASK 0xF0
-#define AB8500_SYSCLKTIMER_SYSCLKTIMERADJ_SHIFT 4
-
-#define AB8500_SMPSCLKCTRL_SMPSCLKINTSEL_MASK 0x03
-#define AB8500_SMPSCLKCTRL_SMPSCLKINTSEL_SHIFT 0
-#define AB8500_SMPSCLKCTRL_3M2CLKINTENA BIT(2)
-
-#define AB8500_SMPSCLKSEL1_VARMCLKSEL_MASK 0x07
-#define AB8500_SMPSCLKSEL1_VARMCLKSEL_SHIFT 0
-#define AB8500_SMPSCLKSEL1_VAPECLKSEL_MASK 0x38
-#define AB8500_SMPSCLKSEL1_VAPECLKSEL_SHIFT 3
-
-#define AB8500_SMPSCLKSEL2_VMODCLKSEL_MASK 0x07
-#define AB8500_SMPSCLKSEL2_VMODCLKSEL_SHIFT 0
-#define AB8500_SMPSCLKSEL2_VSMPS1CLKSEL_MASK 0x38
-#define AB8500_SMPSCLKSEL2_VSMPS1CLKSEL_SHIFT 3
-
-#define AB8500_SMPSCLKSEL3_VSMPS2CLKSEL_MASK 0x07
-#define AB8500_SMPSCLKSEL3_VSMPS2CLKSEL_SHIFT 0
-#define AB8500_SMPSCLKSEL3_VSMPS3CLKSEL_MASK 0x38
-#define AB8500_SMPSCLKSEL3_VSMPS3CLKSEL_SHIFT 3
-
-#define AB8500_SYSULPCLKCONF_ULPCLKCONF_MASK 0x03
-#define AB8500_SYSULPCLKCONF_ULPCLKCONF_SHIFT 0
-#define AB8500_SYSULPCLKCONF_CLK27MHZSTRE BIT(2)
-#define AB8500_SYSULPCLKCONF_TVOUTCLKDELN BIT(3)
-#define AB8500_SYSULPCLKCONF_TVOUTCLKINV BIT(4)
-#define AB8500_SYSULPCLKCONF_ULPCLKSTRE BIT(5)
-#define AB8500_SYSULPCLKCONF_CLK27MHZBUFENA BIT(6)
-#define AB8500_SYSULPCLKCONF_CLK27MHZPDENA BIT(7)
-
-#define AB8500_SYSULPCLKCTRL1_SYSULPCLKINTSEL_MASK 0x03
-#define AB8500_SYSULPCLKCTRL1_SYSULPCLKINTSEL_SHIFT 0
-#define AB8500_SYSULPCLKCTRL1_ULPCLKREQ BIT(2)
-#define AB8500_SYSULPCLKCTRL1_4500SYSCLKREQ BIT(3)
-#define AB8500_SYSULPCLKCTRL1_AUDIOCLKENA BIT(4)
-#define AB8500_SYSULPCLKCTRL1_SYSCLKBUF2REQ BIT(5)
-#define AB8500_SYSULPCLKCTRL1_SYSCLKBUF3REQ BIT(6)
-#define AB8500_SYSULPCLKCTRL1_SYSCLKBUF4REQ BIT(7)
-
-#define AB8500_SYSCLKCTRL_TVOUTPLLENA BIT(0)
-#define AB8500_SYSCLKCTRL_TVOUTCLKENA BIT(1)
-#define AB8500_SYSCLKCTRL_USBCLKENA BIT(2)
-
-#define AB8500_SYSCLKREQ1VALID_SYSCLKREQ1VALID BIT(0)
-#define AB8500_SYSCLKREQ1VALID_ULPCLKREQ1VALID BIT(1)
-#define AB8500_SYSCLKREQ1VALID_USBSYSCLKREQ1VALID BIT(2)
-
-#define AB8500_SYSTEMCTRLSUP_EXTSUP12LPNCLKSEL_MASK 0x03
-#define AB8500_SYSTEMCTRLSUP_EXTSUP12LPNCLKSEL_SHIFT 0
-#define AB8500_SYSTEMCTRLSUP_EXTSUP3LPNCLKSEL_MASK 0x0C
-#define AB8500_SYSTEMCTRLSUP_EXTSUP3LPNCLKSEL_SHIFT 2
-#define AB8500_SYSTEMCTRLSUP_INTDB8500NOD BIT(4)
-
-#define AB8500_SYSCLKREQ1RFCLKBUF_SYSCLKREQ1RFCLKBUF2 BIT(2)
-#define AB8500_SYSCLKREQ1RFCLKBUF_SYSCLKREQ1RFCLKBUF3 BIT(3)
-#define AB8500_SYSCLKREQ1RFCLKBUF_SYSCLKREQ1RFCLKBUF4 BIT(4)
-
-#define AB8500_SYSCLKREQ2RFCLKBUF_SYSCLKREQ2RFCLKBUF2 BIT(2)
-#define AB8500_SYSCLKREQ2RFCLKBUF_SYSCLKREQ2RFCLKBUF3 BIT(3)
-#define AB8500_SYSCLKREQ2RFCLKBUF_SYSCLKREQ2RFCLKBUF4 BIT(4)
-
-#define AB8500_SYSCLKREQ3RFCLKBUF_SYSCLKREQ3RFCLKBUF2 BIT(2)
-#define AB8500_SYSCLKREQ3RFCLKBUF_SYSCLKREQ3RFCLKBUF3 BIT(3)
-#define AB8500_SYSCLKREQ3RFCLKBUF_SYSCLKREQ3RFCLKBUF4 BIT(4)
-
-#define AB8500_SYSCLKREQ4RFCLKBUF_SYSCLKREQ4RFCLKBUF2 BIT(2)
-#define AB8500_SYSCLKREQ4RFCLKBUF_SYSCLKREQ4RFCLKBUF3 BIT(3)
-#define AB8500_SYSCLKREQ4RFCLKBUF_SYSCLKREQ4RFCLKBUF4 BIT(4)
-
-#define AB8500_SYSCLKREQ5RFCLKBUF_SYSCLKREQ5RFCLKBUF2 BIT(2)
-#define AB8500_SYSCLKREQ5RFCLKBUF_SYSCLKREQ5RFCLKBUF3 BIT(3)
-#define AB8500_SYSCLKREQ5RFCLKBUF_SYSCLKREQ5RFCLKBUF4 BIT(4)
-
-#define AB8500_SYSCLKREQ6RFCLKBUF_SYSCLKREQ6RFCLKBUF2 BIT(2)
-#define AB8500_SYSCLKREQ6RFCLKBUF_SYSCLKREQ6RFCLKBUF3 BIT(3)
-#define AB8500_SYSCLKREQ6RFCLKBUF_SYSCLKREQ6RFCLKBUF4 BIT(4)
-
-#define AB8500_SYSCLKREQ7RFCLKBUF_SYSCLKREQ7RFCLKBUF2 BIT(2)
-#define AB8500_SYSCLKREQ7RFCLKBUF_SYSCLKREQ7RFCLKBUF3 BIT(3)
-#define AB8500_SYSCLKREQ7RFCLKBUF_SYSCLKREQ7RFCLKBUF4 BIT(4)
-
-#define AB8500_SYSCLKREQ8RFCLKBUF_SYSCLKREQ8RFCLKBUF2 BIT(2)
-#define AB8500_SYSCLKREQ8RFCLKBUF_SYSCLKREQ8RFCLKBUF3 BIT(3)
-#define AB8500_SYSCLKREQ8RFCLKBUF_SYSCLKREQ8RFCLKBUF4 BIT(4)
-
-#define AB8500_DITHERCLKCTRL_VARMDITHERENA BIT(0)
-#define AB8500_DITHERCLKCTRL_VSMPS3DITHERENA BIT(1)
-#define AB8500_DITHERCLKCTRL_VSMPS1DITHERENA BIT(2)
-#define AB8500_DITHERCLKCTRL_VSMPS2DITHERENA BIT(3)
-#define AB8500_DITHERCLKCTRL_VMODDITHERENA BIT(4)
-#define AB8500_DITHERCLKCTRL_VAPEDITHERENA BIT(5)
-#define AB8500_DITHERCLKCTRL_DITHERDEL_MASK 0xC0
-#define AB8500_DITHERCLKCTRL_DITHERDEL_SHIFT 6
-
-#define AB8500_SWATCTRL_UPDATERF BIT(0)
-#define AB8500_SWATCTRL_SWATENABLE BIT(1)
-#define AB8500_SWATCTRL_RFOFFTIMER_MASK 0x1C
-#define AB8500_SWATCTRL_RFOFFTIMER_SHIFT 2
-#define AB8500_SWATCTRL_SWATBIT5 BIT(6)
-
-#define AB8500_HIQCLKCTRL_SYSCLKREQ1HIQENAVALID BIT(0)
-#define AB8500_HIQCLKCTRL_SYSCLKREQ2HIQENAVALID BIT(1)
-#define AB8500_HIQCLKCTRL_SYSCLKREQ3HIQENAVALID BIT(2)
-#define AB8500_HIQCLKCTRL_SYSCLKREQ4HIQENAVALID BIT(3)
-#define AB8500_HIQCLKCTRL_SYSCLKREQ5HIQENAVALID BIT(4)
-#define AB8500_HIQCLKCTRL_SYSCLKREQ6HIQENAVALID BIT(5)
-#define AB8500_HIQCLKCTRL_SYSCLKREQ7HIQENAVALID BIT(6)
-#define AB8500_HIQCLKCTRL_SYSCLKREQ8HIQENAVALID BIT(7)
-
-#define AB8500_VSIMSYSCLKCTRL_VSIMSYSCLKREQ1VALID BIT(0)
-#define AB8500_VSIMSYSCLKCTRL_VSIMSYSCLKREQ2VALID BIT(1)
-#define AB8500_VSIMSYSCLKCTRL_VSIMSYSCLKREQ3VALID BIT(2)
-#define AB8500_VSIMSYSCLKCTRL_VSIMSYSCLKREQ4VALID BIT(3)
-#define AB8500_VSIMSYSCLKCTRL_VSIMSYSCLKREQ5VALID BIT(4)
-#define AB8500_VSIMSYSCLKCTRL_VSIMSYSCLKREQ6VALID BIT(5)
-#define AB8500_VSIMSYSCLKCTRL_VSIMSYSCLKREQ7VALID BIT(6)
-#define AB8500_VSIMSYSCLKCTRL_VSIMSYSCLKREQ8VALID BIT(7)
-
-#define AB9540_SYSCLK12BUFCTRL_SYSCLK12BUF1ENA BIT(0)
-#define AB9540_SYSCLK12BUFCTRL_SYSCLK12BUF2ENA BIT(1)
-#define AB9540_SYSCLK12BUFCTRL_SYSCLK12BUF3ENA BIT(2)
-#define AB9540_SYSCLK12BUFCTRL_SYSCLK12BUF4ENA BIT(3)
-#define AB9540_SYSCLK12BUFCTRL_SYSCLK12BUFENA_MASK 0x0F
-#define AB9540_SYSCLK12BUFCTRL_SYSCLK12BUF1STRE BIT(4)
-#define AB9540_SYSCLK12BUFCTRL_SYSCLK12BUF2STRE BIT(5)
-#define AB9540_SYSCLK12BUFCTRL_SYSCLK12BUF3STRE BIT(6)
-#define AB9540_SYSCLK12BUFCTRL_SYSCLK12BUF4STRE BIT(7)
-#define AB9540_SYSCLK12BUFCTRL_SYSCLK12BUFSTRE_MASK 0xF0
-
-#define AB9540_SYSCLK12CONFCTRL_PLL26TO38ENA BIT(0)
-#define AB9540_SYSCLK12CONFCTRL_SYSCLK12USBMUXSEL BIT(1)
-#define AB9540_SYSCLK12CONFCTRL_INT384MHZMUXSEL_MASK 0x0C
-#define AB9540_SYSCLK12CONFCTRL_INT384MHZMUXSEL_SHIFT 2
-#define AB9540_SYSCLK12CONFCTRL_SYSCLK12BUFMUX BIT(4)
-#define AB9540_SYSCLK12CONFCTRL_SYSCLK12PLLMUX BIT(5)
-#define AB9540_SYSCLK12CONFCTRL_SYSCLK2MUXVALID BIT(6)
-
-#define AB9540_SYSCLK12BUFCTRL2_SYSCLK12BUF1PDENA BIT(0)
-#define AB9540_SYSCLK12BUFCTRL2_SYSCLK12BUF2PDENA BIT(1)
-#define AB9540_SYSCLK12BUFCTRL2_SYSCLK12BUF3PDENA BIT(2)
-#define AB9540_SYSCLK12BUFCTRL2_SYSCLK12BUF4PDENA BIT(3)
-
-#define AB9540_SYSCLK12BUF1VALID_SYSCLK12BUF1VALID_MASK 0xFF
-#define AB9540_SYSCLK12BUF1VALID_SYSCLK12BUF1VALID_SHIFT 0
-
-#define AB9540_SYSCLK12BUF2VALID_SYSCLK12BUF2VALID_MASK 0xFF
-#define AB9540_SYSCLK12BUF2VALID_SYSCLK12BUF2VALID_SHIFT 0
-
-#define AB9540_SYSCLK12BUF3VALID_SYSCLK12BUF3VALID_MASK 0xFF
-#define AB9540_SYSCLK12BUF3VALID_SYSCLK12BUF3VALID_SHIFT 0
-
-#define AB9540_SYSCLK12BUF4VALID_SYSCLK12BUF4VALID_MASK 0xFF
-#define AB9540_SYSCLK12BUF4VALID_SYSCLK12BUF4VALID_SHIFT 0
-
-#endif /* __AB8500_SYSCTRL_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/abx500/ab8500.h b/ANDROID_3.4.5/include/linux/mfd/abx500/ab8500.h
deleted file mode 100644
index fccc3002..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/abx500/ab8500.h
+++ /dev/null
@@ -1,327 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson SA 2010
- *
- * License Terms: GNU General Public License v2
- * Author: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com>
- */
-#ifndef MFD_AB8500_H
-#define MFD_AB8500_H
-
-#include <linux/mutex.h>
-
-struct device;
-
-/*
- * AB IC versions
- *
- * AB8500_VERSION_AB8500 should be 0xFF but will never be read as need a
- * non-supported multi-byte I2C access via PRCMU. Set to 0x00 to ease the
- * print of version string.
- */
-enum ab8500_version {
- AB8500_VERSION_AB8500 = 0x0,
- AB8500_VERSION_AB8505 = 0x1,
- AB8500_VERSION_AB9540 = 0x2,
- AB8500_VERSION_AB8540 = 0x3,
- AB8500_VERSION_UNDEFINED,
-};
-
-/* AB8500 CIDs*/
-#define AB8500_CUTEARLY 0x00
-#define AB8500_CUT1P0 0x10
-#define AB8500_CUT1P1 0x11
-#define AB8500_CUT2P0 0x20
-#define AB8500_CUT3P0 0x30
-#define AB8500_CUT3P3 0x33
-
-/*
- * AB8500 bank addresses
- */
-#define AB8500_SYS_CTRL1_BLOCK 0x1
-#define AB8500_SYS_CTRL2_BLOCK 0x2
-#define AB8500_REGU_CTRL1 0x3
-#define AB8500_REGU_CTRL2 0x4
-#define AB8500_USB 0x5
-#define AB8500_TVOUT 0x6
-#define AB8500_DBI 0x7
-#define AB8500_ECI_AV_ACC 0x8
-#define AB8500_RESERVED 0x9
-#define AB8500_GPADC 0xA
-#define AB8500_CHARGER 0xB
-#define AB8500_GAS_GAUGE 0xC
-#define AB8500_AUDIO 0xD
-#define AB8500_INTERRUPT 0xE
-#define AB8500_RTC 0xF
-#define AB8500_MISC 0x10
-#define AB8500_DEVELOPMENT 0x11
-#define AB8500_DEBUG 0x12
-#define AB8500_PROD_TEST 0x13
-#define AB8500_OTP_EMUL 0x15
-
-/*
- * Interrupts
- * Values used to index into array ab8500_irq_regoffset[] defined in
- * drivers/mdf/ab8500-core.c
- */
-/* Definitions for AB8500 and AB9540 */
-/* ab8500_irq_regoffset[0] -> IT[Source|Latch|Mask]1 */
-#define AB8500_INT_MAIN_EXT_CH_NOT_OK 0 /* not 8505/9540 */
-#define AB8500_INT_UN_PLUG_TV_DET 1 /* not 8505/9540 */
-#define AB8500_INT_PLUG_TV_DET 2 /* not 8505/9540 */
-#define AB8500_INT_TEMP_WARM 3
-#define AB8500_INT_PON_KEY2DB_F 4
-#define AB8500_INT_PON_KEY2DB_R 5
-#define AB8500_INT_PON_KEY1DB_F 6
-#define AB8500_INT_PON_KEY1DB_R 7
-/* ab8500_irq_regoffset[1] -> IT[Source|Latch|Mask]2 */
-#define AB8500_INT_BATT_OVV 8
-#define AB8500_INT_MAIN_CH_UNPLUG_DET 10 /* not 8505 */
-#define AB8500_INT_MAIN_CH_PLUG_DET 11 /* not 8505 */
-#define AB8500_INT_VBUS_DET_F 14
-#define AB8500_INT_VBUS_DET_R 15
-/* ab8500_irq_regoffset[2] -> IT[Source|Latch|Mask]3 */
-#define AB8500_INT_VBUS_CH_DROP_END 16
-#define AB8500_INT_RTC_60S 17
-#define AB8500_INT_RTC_ALARM 18
-#define AB8500_INT_BAT_CTRL_INDB 20
-#define AB8500_INT_CH_WD_EXP 21
-#define AB8500_INT_VBUS_OVV 22
-#define AB8500_INT_MAIN_CH_DROP_END 23 /* not 8505/9540 */
-/* ab8500_irq_regoffset[3] -> IT[Source|Latch|Mask]4 */
-#define AB8500_INT_CCN_CONV_ACC 24
-#define AB8500_INT_INT_AUD 25
-#define AB8500_INT_CCEOC 26
-#define AB8500_INT_CC_INT_CALIB 27
-#define AB8500_INT_LOW_BAT_F 28
-#define AB8500_INT_LOW_BAT_R 29
-#define AB8500_INT_BUP_CHG_NOT_OK 30
-#define AB8500_INT_BUP_CHG_OK 31
-/* ab8500_irq_regoffset[4] -> IT[Source|Latch|Mask]5 */
-#define AB8500_INT_GP_HW_ADC_CONV_END 32 /* not 8505 */
-#define AB8500_INT_ACC_DETECT_1DB_F 33
-#define AB8500_INT_ACC_DETECT_1DB_R 34
-#define AB8500_INT_ACC_DETECT_22DB_F 35
-#define AB8500_INT_ACC_DETECT_22DB_R 36
-#define AB8500_INT_ACC_DETECT_21DB_F 37
-#define AB8500_INT_ACC_DETECT_21DB_R 38
-#define AB8500_INT_GP_SW_ADC_CONV_END 39
-/* ab8500_irq_regoffset[5] -> IT[Source|Latch|Mask]7 */
-#define AB8500_INT_GPIO6R 40 /* not 8505/9540 */
-#define AB8500_INT_GPIO7R 41 /* not 8505/9540 */
-#define AB8500_INT_GPIO8R 42 /* not 8505/9540 */
-#define AB8500_INT_GPIO9R 43 /* not 8505/9540 */
-#define AB8500_INT_GPIO10R 44
-#define AB8500_INT_GPIO11R 45
-#define AB8500_INT_GPIO12R 46 /* not 8505 */
-#define AB8500_INT_GPIO13R 47
-/* ab8500_irq_regoffset[6] -> IT[Source|Latch|Mask]8 */
-#define AB8500_INT_GPIO24R 48 /* not 8505 */
-#define AB8500_INT_GPIO25R 49 /* not 8505 */
-#define AB8500_INT_GPIO36R 50 /* not 8505/9540 */
-#define AB8500_INT_GPIO37R 51 /* not 8505/9540 */
-#define AB8500_INT_GPIO38R 52 /* not 8505/9540 */
-#define AB8500_INT_GPIO39R 53 /* not 8505/9540 */
-#define AB8500_INT_GPIO40R 54
-#define AB8500_INT_GPIO41R 55
-/* ab8500_irq_regoffset[7] -> IT[Source|Latch|Mask]9 */
-#define AB8500_INT_GPIO6F 56 /* not 8505/9540 */
-#define AB8500_INT_GPIO7F 57 /* not 8505/9540 */
-#define AB8500_INT_GPIO8F 58 /* not 8505/9540 */
-#define AB8500_INT_GPIO9F 59 /* not 8505/9540 */
-#define AB8500_INT_GPIO10F 60
-#define AB8500_INT_GPIO11F 61
-#define AB8500_INT_GPIO12F 62 /* not 8505 */
-#define AB8500_INT_GPIO13F 63
-/* ab8500_irq_regoffset[8] -> IT[Source|Latch|Mask]10 */
-#define AB8500_INT_GPIO24F 64 /* not 8505 */
-#define AB8500_INT_GPIO25F 65 /* not 8505 */
-#define AB8500_INT_GPIO36F 66 /* not 8505/9540 */
-#define AB8500_INT_GPIO37F 67 /* not 8505/9540 */
-#define AB8500_INT_GPIO38F 68 /* not 8505/9540 */
-#define AB8500_INT_GPIO39F 69 /* not 8505/9540 */
-#define AB8500_INT_GPIO40F 70
-#define AB8500_INT_GPIO41F 71
-/* ab8500_irq_regoffset[9] -> IT[Source|Latch|Mask]12 */
-#define AB8500_INT_ADP_SOURCE_ERROR 72
-#define AB8500_INT_ADP_SINK_ERROR 73
-#define AB8500_INT_ADP_PROBE_PLUG 74
-#define AB8500_INT_ADP_PROBE_UNPLUG 75
-#define AB8500_INT_ADP_SENSE_OFF 76
-#define AB8500_INT_USB_PHY_POWER_ERR 78
-#define AB8500_INT_USB_LINK_STATUS 79
-/* ab8500_irq_regoffset[10] -> IT[Source|Latch|Mask]19 */
-#define AB8500_INT_BTEMP_LOW 80
-#define AB8500_INT_BTEMP_LOW_MEDIUM 81
-#define AB8500_INT_BTEMP_MEDIUM_HIGH 82
-#define AB8500_INT_BTEMP_HIGH 83
-/* ab8500_irq_regoffset[11] -> IT[Source|Latch|Mask]20 */
-#define AB8500_INT_SRP_DETECT 88
-#define AB8500_INT_USB_CHARGER_NOT_OKR 89
-#define AB8500_INT_ID_WAKEUP_R 90
-#define AB8500_INT_ID_DET_R1R 92
-#define AB8500_INT_ID_DET_R2R 93
-#define AB8500_INT_ID_DET_R3R 94
-#define AB8500_INT_ID_DET_R4R 95
-/* ab8500_irq_regoffset[12] -> IT[Source|Latch|Mask]21 */
-#define AB8500_INT_ID_WAKEUP_F 96
-#define AB8500_INT_ID_DET_R1F 98
-#define AB8500_INT_ID_DET_R2F 99
-#define AB8500_INT_ID_DET_R3F 100
-#define AB8500_INT_ID_DET_R4F 101
-#define AB8500_INT_CHAUTORESTARTAFTSEC 102
-#define AB8500_INT_CHSTOPBYSEC 103
-/* ab8500_irq_regoffset[13] -> IT[Source|Latch|Mask]22 */
-#define AB8500_INT_USB_CH_TH_PROT_F 104
-#define AB8500_INT_USB_CH_TH_PROT_R 105
-#define AB8500_INT_MAIN_CH_TH_PROT_F 106 /* not 8505/9540 */
-#define AB8500_INT_MAIN_CH_TH_PROT_R 107 /* not 8505/9540 */
-#define AB8500_INT_CHCURLIMNOHSCHIRP 109
-#define AB8500_INT_CHCURLIMHSCHIRP 110
-#define AB8500_INT_XTAL32K_KO 111
-
-/* Definitions for AB9540 */
-/* ab8500_irq_regoffset[14] -> IT[Source|Latch|Mask]13 */
-#define AB9540_INT_GPIO50R 113
-#define AB9540_INT_GPIO51R 114 /* not 8505 */
-#define AB9540_INT_GPIO52R 115
-#define AB9540_INT_GPIO53R 116
-#define AB9540_INT_GPIO54R 117 /* not 8505 */
-#define AB9540_INT_IEXT_CH_RF_BFN_R 118
-#define AB9540_INT_IEXT_CH_RF_BFN_F 119
-/* ab8500_irq_regoffset[15] -> IT[Source|Latch|Mask]14 */
-#define AB9540_INT_GPIO50F 121
-#define AB9540_INT_GPIO51F 122 /* not 8505 */
-#define AB9540_INT_GPIO52F 123
-#define AB9540_INT_GPIO53F 124
-#define AB9540_INT_GPIO54F 125 /* not 8505 */
-
-/*
- * AB8500_AB9540_NR_IRQS is used when configuring the IRQ numbers for the
- * entire platform. This is a "compile time" constant so this must be set to
- * the largest possible value that may be encountered with different AB SOCs.
- * Of the currently supported AB devices, AB8500 and AB9540, it is the AB9540
- * which is larger.
- */
-#define AB8500_NR_IRQS 112
-#define AB8505_NR_IRQS 128
-#define AB9540_NR_IRQS 128
-/* This is set to the roof of any AB8500 chip variant IRQ counts */
-#define AB8500_MAX_NR_IRQS AB9540_NR_IRQS
-
-#define AB8500_NUM_IRQ_REGS 14
-#define AB9540_NUM_IRQ_REGS 17
-
-/**
- * struct ab8500 - ab8500 internal structure
- * @dev: parent device
- * @lock: read/write operations lock
- * @irq_lock: genirq bus lock
- * @irq: irq line
- * @version: chip version id (e.g. ab8500 or ab9540)
- * @chip_id: chip revision id
- * @write: register write
- * @write_masked: masked register write
- * @read: register read
- * @rx_buf: rx buf for SPI
- * @tx_buf: tx buf for SPI
- * @mask: cache of IRQ regs for bus lock
- * @oldmask: cache of previous IRQ regs for bus lock
- * @mask_size: Actual number of valid entries in mask[], oldmask[] and
- * irq_reg_offset
- * @irq_reg_offset: Array of offsets into IRQ registers
- */
-struct ab8500 {
- struct device *dev;
- struct mutex lock;
- struct mutex irq_lock;
-
- int irq_base;
- int irq;
- enum ab8500_version version;
- u8 chip_id;
-
- int (*write)(struct ab8500 *ab8500, u16 addr, u8 data);
- int (*write_masked)(struct ab8500 *ab8500, u16 addr, u8 mask, u8 data);
- int (*read)(struct ab8500 *ab8500, u16 addr);
-
- unsigned long tx_buf[4];
- unsigned long rx_buf[4];
-
- u8 *mask;
- u8 *oldmask;
- int mask_size;
- const int *irq_reg_offset;
-};
-
-struct regulator_reg_init;
-struct regulator_init_data;
-struct ab8500_gpio_platform_data;
-
-/**
- * struct ab8500_platform_data - AB8500 platform data
- * @irq_base: start of AB8500 IRQs, AB8500_NR_IRQS will be used
- * @init: board-specific initialization after detection of ab8500
- * @num_regulator_reg_init: number of regulator init registers
- * @regulator_reg_init: regulator init registers
- * @num_regulator: number of regulators
- * @regulator: machine-specific constraints for regulators
- */
-struct ab8500_platform_data {
- int irq_base;
- void (*init) (struct ab8500 *);
- int num_regulator_reg_init;
- struct ab8500_regulator_reg_init *regulator_reg_init;
- int num_regulator;
- struct regulator_init_data *regulator;
- struct ab8500_gpio_platform_data *gpio;
-};
-
-extern int __devinit ab8500_init(struct ab8500 *ab8500,
- enum ab8500_version version);
-extern int __devexit ab8500_exit(struct ab8500 *ab8500);
-
-static inline int is_ab8500(struct ab8500 *ab)
-{
- return ab->version == AB8500_VERSION_AB8500;
-}
-
-static inline int is_ab8505(struct ab8500 *ab)
-{
- return ab->version == AB8500_VERSION_AB8505;
-}
-
-static inline int is_ab9540(struct ab8500 *ab)
-{
- return ab->version == AB8500_VERSION_AB9540;
-}
-
-static inline int is_ab8540(struct ab8500 *ab)
-{
- return ab->version == AB8500_VERSION_AB8540;
-}
-
-/* exclude also ab8505, ab9540... */
-static inline int is_ab8500_1p0_or_earlier(struct ab8500 *ab)
-{
- return (is_ab8500(ab) && (ab->chip_id <= AB8500_CUT1P0));
-}
-
-/* exclude also ab8505, ab9540... */
-static inline int is_ab8500_1p1_or_earlier(struct ab8500 *ab)
-{
- return (is_ab8500(ab) && (ab->chip_id <= AB8500_CUT1P1));
-}
-
-/* exclude also ab8505, ab9540... */
-static inline int is_ab8500_2p0_or_earlier(struct ab8500 *ab)
-{
- return (is_ab8500(ab) && (ab->chip_id <= AB8500_CUT2P0));
-}
-
-/* exclude also ab8505, ab9540... */
-static inline int is_ab8500_2p0(struct ab8500 *ab)
-{
- return (is_ab8500(ab) && (ab->chip_id == AB8500_CUT2P0));
-}
-
-#endif /* MFD_AB8500_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/abx500/ux500_chargalg.h b/ANDROID_3.4.5/include/linux/mfd/abx500/ux500_chargalg.h
deleted file mode 100644
index 9b077257..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/abx500/ux500_chargalg.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson SA 2012
- * Author: Johan Gardsmark <johan.gardsmark@stericsson.com> for ST-Ericsson.
- * License terms: GNU General Public License (GPL), version 2
- */
-
-#ifndef _UX500_CHARGALG_H
-#define _UX500_CHARGALG_H
-
-#include <linux/power_supply.h>
-
-#define psy_to_ux500_charger(x) container_of((x), \
- struct ux500_charger, psy)
-
-/* Forward declaration */
-struct ux500_charger;
-
-struct ux500_charger_ops {
- int (*enable) (struct ux500_charger *, int, int, int);
- int (*kick_wd) (struct ux500_charger *);
- int (*update_curr) (struct ux500_charger *, int);
-};
-
-/**
- * struct ux500_charger - power supply ux500 charger sub class
- * @psy power supply base class
- * @ops ux500 charger operations
- * @max_out_volt maximum output charger voltage in mV
- * @max_out_curr maximum output charger current in mA
- */
-struct ux500_charger {
- struct power_supply psy;
- struct ux500_charger_ops ops;
- int max_out_volt;
- int max_out_curr;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/adp5520.h b/ANDROID_3.4.5/include/linux/mfd/adp5520.h
deleted file mode 100644
index ac37558a..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/adp5520.h
+++ /dev/null
@@ -1,299 +0,0 @@
-/*
- * Definitions and platform data for Analog Devices
- * ADP5520/ADP5501 MFD PMICs (Backlight, LED, GPIO and Keys)
- *
- * Copyright 2009 Analog Devices Inc.
- *
- * Licensed under the GPL-2 or later.
- */
-
-
-#ifndef __LINUX_MFD_ADP5520_H
-#define __LINUX_MFD_ADP5520_H
-
-#define ID_ADP5520 5520
-#define ID_ADP5501 5501
-
-/*
- * ADP5520/ADP5501 Register Map
- */
-
-#define ADP5520_MODE_STATUS 0x00
-#define ADP5520_INTERRUPT_ENABLE 0x01
-#define ADP5520_BL_CONTROL 0x02
-#define ADP5520_BL_TIME 0x03
-#define ADP5520_BL_FADE 0x04
-#define ADP5520_DAYLIGHT_MAX 0x05
-#define ADP5520_DAYLIGHT_DIM 0x06
-#define ADP5520_OFFICE_MAX 0x07
-#define ADP5520_OFFICE_DIM 0x08
-#define ADP5520_DARK_MAX 0x09
-#define ADP5520_DARK_DIM 0x0A
-#define ADP5520_BL_VALUE 0x0B
-#define ADP5520_ALS_CMPR_CFG 0x0C
-#define ADP5520_L2_TRIP 0x0D
-#define ADP5520_L2_HYS 0x0E
-#define ADP5520_L3_TRIP 0x0F
-#define ADP5520_L3_HYS 0x10
-#define ADP5520_LED_CONTROL 0x11
-#define ADP5520_LED_TIME 0x12
-#define ADP5520_LED_FADE 0x13
-#define ADP5520_LED1_CURRENT 0x14
-#define ADP5520_LED2_CURRENT 0x15
-#define ADP5520_LED3_CURRENT 0x16
-
-/*
- * ADP5520 Register Map
- */
-
-#define ADP5520_GPIO_CFG_1 0x17
-#define ADP5520_GPIO_CFG_2 0x18
-#define ADP5520_GPIO_IN 0x19
-#define ADP5520_GPIO_OUT 0x1A
-#define ADP5520_GPIO_INT_EN 0x1B
-#define ADP5520_GPIO_INT_STAT 0x1C
-#define ADP5520_GPIO_INT_LVL 0x1D
-#define ADP5520_GPIO_DEBOUNCE 0x1E
-#define ADP5520_GPIO_PULLUP 0x1F
-#define ADP5520_KP_INT_STAT_1 0x20
-#define ADP5520_KP_INT_STAT_2 0x21
-#define ADP5520_KR_INT_STAT_1 0x22
-#define ADP5520_KR_INT_STAT_2 0x23
-#define ADP5520_KEY_STAT_1 0x24
-#define ADP5520_KEY_STAT_2 0x25
-
-/*
- * MODE_STATUS bits
- */
-
-#define ADP5520_nSTNBY (1 << 7)
-#define ADP5520_BL_EN (1 << 6)
-#define ADP5520_DIM_EN (1 << 5)
-#define ADP5520_OVP_INT (1 << 4)
-#define ADP5520_CMPR_INT (1 << 3)
-#define ADP5520_GPI_INT (1 << 2)
-#define ADP5520_KR_INT (1 << 1)
-#define ADP5520_KP_INT (1 << 0)
-
-/*
- * INTERRUPT_ENABLE bits
- */
-
-#define ADP5520_AUTO_LD_EN (1 << 4)
-#define ADP5520_CMPR_IEN (1 << 3)
-#define ADP5520_OVP_IEN (1 << 2)
-#define ADP5520_KR_IEN (1 << 1)
-#define ADP5520_KP_IEN (1 << 0)
-
-/*
- * BL_CONTROL bits
- */
-
-#define ADP5520_BL_LVL ((x) << 5)
-#define ADP5520_BL_LAW ((x) << 4)
-#define ADP5520_BL_AUTO_ADJ (1 << 3)
-#define ADP5520_OVP_EN (1 << 2)
-#define ADP5520_FOVR (1 << 1)
-#define ADP5520_KP_BL_EN (1 << 0)
-
-/*
- * ALS_CMPR_CFG bits
- */
-
-#define ADP5520_L3_OUT (1 << 3)
-#define ADP5520_L2_OUT (1 << 2)
-#define ADP5520_L3_EN (1 << 1)
-
-#define ADP5020_MAX_BRIGHTNESS 0x7F
-
-#define FADE_VAL(in, out) ((0xF & (in)) | ((0xF & (out)) << 4))
-#define BL_CTRL_VAL(law, auto) (((1 & (auto)) << 3) | ((0x3 & (law)) << 4))
-#define ALS_CMPR_CFG_VAL(filt, l3_en) (((0x7 & filt) << 5) | l3_en)
-
-/*
- * LEDs subdevice bits and masks
- */
-
-#define ADP5520_01_MAXLEDS 3
-
-#define ADP5520_FLAG_LED_MASK 0x3
-#define ADP5520_FLAG_OFFT_SHIFT 8
-#define ADP5520_FLAG_OFFT_MASK 0x3
-
-#define ADP5520_R3_MODE (1 << 5)
-#define ADP5520_C3_MODE (1 << 4)
-#define ADP5520_LED_LAW (1 << 3)
-#define ADP5520_LED3_EN (1 << 2)
-#define ADP5520_LED2_EN (1 << 1)
-#define ADP5520_LED1_EN (1 << 0)
-
-/*
- * GPIO subdevice bits and masks
- */
-
-#define ADP5520_MAXGPIOS 8
-
-#define ADP5520_GPIO_C3 (1 << 7) /* LED2 or GPIO7 aka C3 */
-#define ADP5520_GPIO_C2 (1 << 6)
-#define ADP5520_GPIO_C1 (1 << 5)
-#define ADP5520_GPIO_C0 (1 << 4)
-#define ADP5520_GPIO_R3 (1 << 3) /* LED3 or GPIO3 aka R3 */
-#define ADP5520_GPIO_R2 (1 << 2)
-#define ADP5520_GPIO_R1 (1 << 1)
-#define ADP5520_GPIO_R0 (1 << 0)
-
-struct adp5520_gpio_platform_data {
- unsigned gpio_start;
- u8 gpio_en_mask;
- u8 gpio_pullup_mask;
-};
-
-/*
- * Keypad subdevice bits and masks
- */
-
-#define ADP5520_MAXKEYS 16
-
-#define ADP5520_COL_C3 (1 << 7) /* LED2 or GPIO7 aka C3 */
-#define ADP5520_COL_C2 (1 << 6)
-#define ADP5520_COL_C1 (1 << 5)
-#define ADP5520_COL_C0 (1 << 4)
-#define ADP5520_ROW_R3 (1 << 3) /* LED3 or GPIO3 aka R3 */
-#define ADP5520_ROW_R2 (1 << 2)
-#define ADP5520_ROW_R1 (1 << 1)
-#define ADP5520_ROW_R0 (1 << 0)
-
-#define ADP5520_KEY(row, col) (col + row * 4)
-#define ADP5520_KEYMAPSIZE ADP5520_MAXKEYS
-
-struct adp5520_keys_platform_data {
- int rows_en_mask; /* Number of rows */
- int cols_en_mask; /* Number of columns */
- const unsigned short *keymap; /* Pointer to keymap */
- unsigned short keymapsize; /* Keymap size */
- unsigned repeat:1; /* Enable key repeat */
-};
-
-
-/*
- * LEDs subdevice platform data
- */
-
-#define FLAG_ID_ADP5520_LED1_ADP5501_LED0 1 /* ADP5520 PIN ILED */
-#define FLAG_ID_ADP5520_LED2_ADP5501_LED1 2 /* ADP5520 PIN C3 */
-#define FLAG_ID_ADP5520_LED3_ADP5501_LED2 3 /* ADP5520 PIN R3 */
-
-#define ADP5520_LED_DIS_BLINK (0 << ADP5520_FLAG_OFFT_SHIFT)
-#define ADP5520_LED_OFFT_600ms (1 << ADP5520_FLAG_OFFT_SHIFT)
-#define ADP5520_LED_OFFT_800ms (2 << ADP5520_FLAG_OFFT_SHIFT)
-#define ADP5520_LED_OFFT_1200ms (3 << ADP5520_FLAG_OFFT_SHIFT)
-
-#define ADP5520_LED_ONT_200ms 0
-#define ADP5520_LED_ONT_600ms 1
-#define ADP5520_LED_ONT_800ms 2
-#define ADP5520_LED_ONT_1200ms 3
-
-struct adp5520_leds_platform_data {
- int num_leds;
- struct led_info *leds;
- u8 fade_in; /* Backlight Fade-In Timer */
- u8 fade_out; /* Backlight Fade-Out Timer */
- u8 led_on_time;
-};
-
-/*
- * Backlight subdevice platform data
- */
-
-#define ADP5520_FADE_T_DIS 0 /* Fade Timer Disabled */
-#define ADP5520_FADE_T_300ms 1 /* 0.3 Sec */
-#define ADP5520_FADE_T_600ms 2
-#define ADP5520_FADE_T_900ms 3
-#define ADP5520_FADE_T_1200ms 4
-#define ADP5520_FADE_T_1500ms 5
-#define ADP5520_FADE_T_1800ms 6
-#define ADP5520_FADE_T_2100ms 7
-#define ADP5520_FADE_T_2400ms 8
-#define ADP5520_FADE_T_2700ms 9
-#define ADP5520_FADE_T_3000ms 10
-#define ADP5520_FADE_T_3500ms 11
-#define ADP5520_FADE_T_4000ms 12
-#define ADP5520_FADE_T_4500ms 13
-#define ADP5520_FADE_T_5000ms 14
-#define ADP5520_FADE_T_5500ms 15 /* 5.5 Sec */
-
-#define ADP5520_BL_LAW_LINEAR 0
-#define ADP5520_BL_LAW_SQUARE 1
-#define ADP5520_BL_LAW_CUBIC1 2
-#define ADP5520_BL_LAW_CUBIC2 3
-
-#define ADP5520_BL_AMBL_FILT_80ms 0 /* Light sensor filter time */
-#define ADP5520_BL_AMBL_FILT_160ms 1
-#define ADP5520_BL_AMBL_FILT_320ms 2
-#define ADP5520_BL_AMBL_FILT_640ms 3
-#define ADP5520_BL_AMBL_FILT_1280ms 4
-#define ADP5520_BL_AMBL_FILT_2560ms 5
-#define ADP5520_BL_AMBL_FILT_5120ms 6
-#define ADP5520_BL_AMBL_FILT_10240ms 7 /* 10.24 sec */
-
- /*
- * Blacklight current 0..30mA
- */
-#define ADP5520_BL_CUR_mA(I) ((I * 127) / 30)
-
- /*
- * L2 comparator current 0..1000uA
- */
-#define ADP5520_L2_COMP_CURR_uA(I) ((I * 255) / 1000)
-
- /*
- * L3 comparator current 0..127uA
- */
-#define ADP5520_L3_COMP_CURR_uA(I) ((I * 255) / 127)
-
-struct adp5520_backlight_platform_data {
- u8 fade_in; /* Backlight Fade-In Timer */
- u8 fade_out; /* Backlight Fade-Out Timer */
- u8 fade_led_law; /* fade-on/fade-off transfer characteristic */
-
- u8 en_ambl_sens; /* 1 = enable ambient light sensor */
- u8 abml_filt; /* Light sensor filter time */
- u8 l1_daylight_max; /* use BL_CUR_mA(I) 0 <= I <= 30 mA */
- u8 l1_daylight_dim; /* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
- u8 l2_office_max; /* use BL_CUR_mA(I) 0 <= I <= 30 mA */
- u8 l2_office_dim; /* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
- u8 l3_dark_max; /* use BL_CUR_mA(I) 0 <= I <= 30 mA */
- u8 l3_dark_dim; /* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
- u8 l2_trip; /* use L2_COMP_CURR_uA(I) 0 <= I <= 1000 uA */
- u8 l2_hyst; /* use L2_COMP_CURR_uA(I) 0 <= I <= 1000 uA */
- u8 l3_trip; /* use L3_COMP_CURR_uA(I) 0 <= I <= 127 uA */
- u8 l3_hyst; /* use L3_COMP_CURR_uA(I) 0 <= I <= 127 uA */
-};
-
-/*
- * MFD chip platform data
- */
-
-struct adp5520_platform_data {
- struct adp5520_keys_platform_data *keys;
- struct adp5520_gpio_platform_data *gpio;
- struct adp5520_leds_platform_data *leds;
- struct adp5520_backlight_platform_data *backlight;
-};
-
-/*
- * MFD chip functions
- */
-
-extern int adp5520_read(struct device *dev, int reg, uint8_t *val);
-extern int adp5520_write(struct device *dev, int reg, u8 val);
-extern int adp5520_clr_bits(struct device *dev, int reg, uint8_t bit_mask);
-extern int adp5520_set_bits(struct device *dev, int reg, uint8_t bit_mask);
-
-extern int adp5520_register_notifier(struct device *dev,
- struct notifier_block *nb, unsigned int events);
-
-extern int adp5520_unregister_notifier(struct device *dev,
- struct notifier_block *nb, unsigned int events);
-
-#endif /* __LINUX_MFD_ADP5520_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/anatop.h b/ANDROID_3.4.5/include/linux/mfd/anatop.h
deleted file mode 100644
index 22c1007d..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/anatop.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * anatop.h - Anatop MFD driver
- *
- * Copyright (C) 2012 Ying-Chun Liu (PaulLiu) <paul.liu@linaro.org>
- * Copyright (C) 2012 Linaro
- *
- * 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
- */
-
-#ifndef __LINUX_MFD_ANATOP_H
-#define __LINUX_MFD_ANATOP_H
-
-#include <linux/spinlock.h>
-
-/**
- * anatop - MFD data
- * @ioreg: ioremap register
- * @reglock: spinlock for register read/write
- */
-struct anatop {
- void *ioreg;
- spinlock_t reglock;
-};
-
-extern u32 anatop_get_bits(struct anatop *, u32, int, int);
-extern void anatop_set_bits(struct anatop *, u32, int, int, u32);
-
-#endif /* __LINUX_MFD_ANATOP_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/asic3.h b/ANDROID_3.4.5/include/linux/mfd/asic3.h
deleted file mode 100644
index ed793b77..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/asic3.h
+++ /dev/null
@@ -1,313 +0,0 @@
-/*
- * include/linux/mfd/asic3.h
- *
- * Compaq ASIC3 headers.
- *
- * 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.
- *
- * Copyright 2001 Compaq Computer Corporation.
- * Copyright 2007-2008 OpenedHand Ltd.
- */
-
-#ifndef __ASIC3_H__
-#define __ASIC3_H__
-
-#include <linux/types.h>
-
-struct led_classdev;
-struct asic3_led {
- const char *name;
- const char *default_trigger;
- struct led_classdev *cdev;
-};
-
-struct asic3_platform_data {
- u16 *gpio_config;
- unsigned int gpio_config_num;
-
- unsigned int irq_base;
-
- unsigned int gpio_base;
-
- struct asic3_led *leds;
-};
-
-#define ASIC3_NUM_GPIO_BANKS 4
-#define ASIC3_GPIOS_PER_BANK 16
-#define ASIC3_NUM_GPIOS 64
-#define ASIC3_NR_IRQS ASIC3_NUM_GPIOS + 6
-
-#define ASIC3_IRQ_LED0 64
-#define ASIC3_IRQ_LED1 65
-#define ASIC3_IRQ_LED2 66
-#define ASIC3_IRQ_SPI 67
-#define ASIC3_IRQ_SMBUS 68
-#define ASIC3_IRQ_OWM 69
-
-#define ASIC3_TO_GPIO(gpio) (NR_BUILTIN_GPIO + (gpio))
-
-#define ASIC3_GPIO_BANK_A 0
-#define ASIC3_GPIO_BANK_B 1
-#define ASIC3_GPIO_BANK_C 2
-#define ASIC3_GPIO_BANK_D 3
-
-#define ASIC3_GPIO(bank, gpio) \
- ((ASIC3_GPIOS_PER_BANK * ASIC3_GPIO_BANK_##bank) + (gpio))
-#define ASIC3_GPIO_bit(gpio) (1 << (gpio & 0xf))
-/* All offsets below are specified with this address bus shift */
-#define ASIC3_DEFAULT_ADDR_SHIFT 2
-
-#define ASIC3_OFFSET(base, reg) (ASIC3_##base##_BASE + ASIC3_##base##_##reg)
-#define ASIC3_GPIO_OFFSET(base, reg) \
- (ASIC3_GPIO_##base##_BASE + ASIC3_GPIO_##reg)
-
-#define ASIC3_GPIO_A_BASE 0x0000
-#define ASIC3_GPIO_B_BASE 0x0100
-#define ASIC3_GPIO_C_BASE 0x0200
-#define ASIC3_GPIO_D_BASE 0x0300
-
-#define ASIC3_GPIO_TO_BANK(gpio) ((gpio) >> 4)
-#define ASIC3_GPIO_TO_BIT(gpio) ((gpio) - \
- (ASIC3_GPIOS_PER_BANK * ((gpio) >> 4)))
-#define ASIC3_GPIO_TO_MASK(gpio) (1 << ASIC3_GPIO_TO_BIT(gpio))
-#define ASIC3_GPIO_TO_BASE(gpio) (ASIC3_GPIO_A_BASE + (((gpio) >> 4) * 0x0100))
-#define ASIC3_BANK_TO_BASE(bank) (ASIC3_GPIO_A_BASE + ((bank) * 0x100))
-
-#define ASIC3_GPIO_MASK 0x00 /* R/W 0:don't mask */
-#define ASIC3_GPIO_DIRECTION 0x04 /* R/W 0:input */
-#define ASIC3_GPIO_OUT 0x08 /* R/W 0:output low */
-#define ASIC3_GPIO_TRIGGER_TYPE 0x0c /* R/W 0:level */
-#define ASIC3_GPIO_EDGE_TRIGGER 0x10 /* R/W 0:falling */
-#define ASIC3_GPIO_LEVEL_TRIGGER 0x14 /* R/W 0:low level detect */
-#define ASIC3_GPIO_SLEEP_MASK 0x18 /* R/W 0:don't mask in sleep mode */
-#define ASIC3_GPIO_SLEEP_OUT 0x1c /* R/W level 0:low in sleep mode */
-#define ASIC3_GPIO_BAT_FAULT_OUT 0x20 /* R/W level 0:low in batt_fault */
-#define ASIC3_GPIO_INT_STATUS 0x24 /* R/W 0:none, 1:detect */
-#define ASIC3_GPIO_ALT_FUNCTION 0x28 /* R/W 1:LED register control */
-#define ASIC3_GPIO_SLEEP_CONF 0x2c /*
- * R/W bit 1: autosleep
- * 0: disable gposlpout in normal mode,
- * enable gposlpout in sleep mode.
- */
-#define ASIC3_GPIO_STATUS 0x30 /* R Pin status */
-
-/*
- * ASIC3 GPIO config
- *
- * Bits 0..6 gpio number
- * Bits 7..13 Alternate function
- * Bit 14 Direction
- * Bit 15 Initial value
- *
- */
-#define ASIC3_CONFIG_GPIO_PIN(config) ((config) & 0x7f)
-#define ASIC3_CONFIG_GPIO_ALT(config) (((config) & (0x7f << 7)) >> 7)
-#define ASIC3_CONFIG_GPIO_DIR(config) ((config & (1 << 14)) >> 14)
-#define ASIC3_CONFIG_GPIO_INIT(config) ((config & (1 << 15)) >> 15)
-#define ASIC3_CONFIG_GPIO(gpio, alt, dir, init) (((gpio) & 0x7f) \
- | (((alt) & 0x7f) << 7) | (((dir) & 0x1) << 14) \
- | (((init) & 0x1) << 15))
-#define ASIC3_CONFIG_GPIO_DEFAULT(gpio, dir, init) \
- ASIC3_CONFIG_GPIO((gpio), 0, (dir), (init))
-#define ASIC3_CONFIG_GPIO_DEFAULT_OUT(gpio, init) \
- ASIC3_CONFIG_GPIO((gpio), 0, 1, (init))
-
-/*
- * Alternate functions
- */
-#define ASIC3_GPIOA11_PWM0 ASIC3_CONFIG_GPIO(11, 1, 1, 0)
-#define ASIC3_GPIOA12_PWM1 ASIC3_CONFIG_GPIO(12, 1, 1, 0)
-#define ASIC3_GPIOA15_CONTROL_CX ASIC3_CONFIG_GPIO(15, 1, 1, 0)
-#define ASIC3_GPIOC0_LED0 ASIC3_CONFIG_GPIO(32, 1, 0, 0)
-#define ASIC3_GPIOC1_LED1 ASIC3_CONFIG_GPIO(33, 1, 0, 0)
-#define ASIC3_GPIOC2_LED2 ASIC3_CONFIG_GPIO(34, 1, 0, 0)
-#define ASIC3_GPIOC3_SPI_RXD ASIC3_CONFIG_GPIO(35, 1, 0, 0)
-#define ASIC3_GPIOC4_CF_nCD ASIC3_CONFIG_GPIO(36, 1, 0, 0)
-#define ASIC3_GPIOC4_SPI_TXD ASIC3_CONFIG_GPIO(36, 1, 1, 0)
-#define ASIC3_GPIOC5_SPI_CLK ASIC3_CONFIG_GPIO(37, 1, 1, 0)
-#define ASIC3_GPIOC5_nCIOW ASIC3_CONFIG_GPIO(37, 1, 1, 0)
-#define ASIC3_GPIOC6_nCIOR ASIC3_CONFIG_GPIO(38, 1, 1, 0)
-#define ASIC3_GPIOC7_nPCE_1 ASIC3_CONFIG_GPIO(39, 1, 0, 0)
-#define ASIC3_GPIOC8_nPCE_2 ASIC3_CONFIG_GPIO(40, 1, 0, 0)
-#define ASIC3_GPIOC9_nPOE ASIC3_CONFIG_GPIO(41, 1, 0, 0)
-#define ASIC3_GPIOC10_nPWE ASIC3_CONFIG_GPIO(42, 1, 0, 0)
-#define ASIC3_GPIOC11_PSKTSEL ASIC3_CONFIG_GPIO(43, 1, 0, 0)
-#define ASIC3_GPIOC12_nPREG ASIC3_CONFIG_GPIO(44, 1, 0, 0)
-#define ASIC3_GPIOC13_nPWAIT ASIC3_CONFIG_GPIO(45, 1, 1, 0)
-#define ASIC3_GPIOC14_nPIOIS16 ASIC3_CONFIG_GPIO(46, 1, 1, 0)
-#define ASIC3_GPIOC15_nPIOR ASIC3_CONFIG_GPIO(47, 1, 0, 0)
-#define ASIC3_GPIOD11_nCIOIS16 ASIC3_CONFIG_GPIO(59, 1, 0, 0)
-#define ASIC3_GPIOD12_nCWAIT ASIC3_CONFIG_GPIO(60, 1, 0, 0)
-#define ASIC3_GPIOD15_nPIOW ASIC3_CONFIG_GPIO(63, 1, 0, 0)
-
-
-#define ASIC3_SPI_Base 0x0400
-#define ASIC3_SPI_Control 0x0000
-#define ASIC3_SPI_TxData 0x0004
-#define ASIC3_SPI_RxData 0x0008
-#define ASIC3_SPI_Int 0x000c
-#define ASIC3_SPI_Status 0x0010
-
-#define SPI_CONTROL_SPR(clk) ((clk) & 0x0f) /* Clock rate */
-
-#define ASIC3_PWM_0_Base 0x0500
-#define ASIC3_PWM_1_Base 0x0600
-#define ASIC3_PWM_TimeBase 0x0000
-#define ASIC3_PWM_PeriodTime 0x0004
-#define ASIC3_PWM_DutyTime 0x0008
-
-#define PWM_TIMEBASE_VALUE(x) ((x)&0xf) /* Low 4 bits sets time base */
-#define PWM_TIMEBASE_ENABLE (1 << 4) /* Enable clock */
-
-#define ASIC3_NUM_LEDS 3
-#define ASIC3_LED_0_Base 0x0700
-#define ASIC3_LED_1_Base 0x0800
-#define ASIC3_LED_2_Base 0x0900
-#define ASIC3_LED_TimeBase 0x0000 /* R/W 7 bits */
-#define ASIC3_LED_PeriodTime 0x0004 /* R/W 12 bits */
-#define ASIC3_LED_DutyTime 0x0008 /* R/W 12 bits */
-#define ASIC3_LED_AutoStopCount 0x000c /* R/W 16 bits */
-
-/* LED TimeBase bits - match ASIC2 */
-#define LED_TBS 0x0f /* Low 4 bits sets time base, max = 13 */
- /* Note: max = 5 on hx4700 */
- /* 0: maximum time base */
- /* 1: maximum time base / 2 */
- /* n: maximum time base / 2^n */
-
-#define LED_EN (1 << 4) /* LED ON/OFF 0:off, 1:on */
-#define LED_AUTOSTOP (1 << 5) /* LED ON/OFF auto stop 0:disable, 1:enable */
-#define LED_ALWAYS (1 << 6) /* LED Interrupt Mask 0:No mask, 1:mask */
-
-#define ASIC3_CLOCK_BASE 0x0A00
-#define ASIC3_CLOCK_CDEX 0x00
-#define ASIC3_CLOCK_SEL 0x04
-
-#define CLOCK_CDEX_SOURCE (1 << 0) /* 2 bits */
-#define CLOCK_CDEX_SOURCE0 (1 << 0)
-#define CLOCK_CDEX_SOURCE1 (1 << 1)
-#define CLOCK_CDEX_SPI (1 << 2)
-#define CLOCK_CDEX_OWM (1 << 3)
-#define CLOCK_CDEX_PWM0 (1 << 4)
-#define CLOCK_CDEX_PWM1 (1 << 5)
-#define CLOCK_CDEX_LED0 (1 << 6)
-#define CLOCK_CDEX_LED1 (1 << 7)
-#define CLOCK_CDEX_LED2 (1 << 8)
-
-/* Clocks settings: 1 for 24.576 MHz, 0 for 12.288Mhz */
-#define CLOCK_CDEX_SD_HOST (1 << 9) /* R/W: SD host clock source */
-#define CLOCK_CDEX_SD_BUS (1 << 10) /* R/W: SD bus clock source ctrl */
-#define CLOCK_CDEX_SMBUS (1 << 11)
-#define CLOCK_CDEX_CONTROL_CX (1 << 12)
-
-#define CLOCK_CDEX_EX0 (1 << 13) /* R/W: 32.768 kHz crystal */
-#define CLOCK_CDEX_EX1 (1 << 14) /* R/W: 24.576 MHz crystal */
-
-#define CLOCK_SEL_SD_HCLK_SEL (1 << 0) /* R/W: SDIO host clock select */
-#define CLOCK_SEL_SD_BCLK_SEL (1 << 1) /* R/W: SDIO bus clock select */
-
-/* R/W: INT clock source control (32.768 kHz) */
-#define CLOCK_SEL_CX (1 << 2)
-
-
-#define ASIC3_INTR_BASE 0x0B00
-
-#define ASIC3_INTR_INT_MASK 0x00 /* Interrupt mask control */
-#define ASIC3_INTR_P_INT_STAT 0x04 /* Peripheral interrupt status */
-#define ASIC3_INTR_INT_CPS 0x08 /* Interrupt timer clock pre-scale */
-#define ASIC3_INTR_INT_TBS 0x0c /* Interrupt timer set */
-
-#define ASIC3_INTMASK_GINTMASK (1 << 0) /* Global INTs mask 1:enable */
-#define ASIC3_INTMASK_GINTEL (1 << 1) /* 1: rising edge, 0: hi level */
-#define ASIC3_INTMASK_MASK0 (1 << 2)
-#define ASIC3_INTMASK_MASK1 (1 << 3)
-#define ASIC3_INTMASK_MASK2 (1 << 4)
-#define ASIC3_INTMASK_MASK3 (1 << 5)
-#define ASIC3_INTMASK_MASK4 (1 << 6)
-#define ASIC3_INTMASK_MASK5 (1 << 7)
-
-#define ASIC3_INTR_PERIPHERAL_A (1 << 0)
-#define ASIC3_INTR_PERIPHERAL_B (1 << 1)
-#define ASIC3_INTR_PERIPHERAL_C (1 << 2)
-#define ASIC3_INTR_PERIPHERAL_D (1 << 3)
-#define ASIC3_INTR_LED0 (1 << 4)
-#define ASIC3_INTR_LED1 (1 << 5)
-#define ASIC3_INTR_LED2 (1 << 6)
-#define ASIC3_INTR_SPI (1 << 7)
-#define ASIC3_INTR_SMBUS (1 << 8)
-#define ASIC3_INTR_OWM (1 << 9)
-
-#define ASIC3_INTR_CPS(x) ((x)&0x0f) /* 4 bits, max 14 */
-#define ASIC3_INTR_CPS_SET (1 << 4) /* Time base enable */
-
-
-/* Basic control of the SD ASIC */
-#define ASIC3_SDHWCTRL_BASE 0x0E00
-#define ASIC3_SDHWCTRL_SDCONF 0x00
-
-#define ASIC3_SDHWCTRL_SUSPEND (1 << 0) /* 1=suspend all SD operations */
-#define ASIC3_SDHWCTRL_CLKSEL (1 << 1) /* 1=SDICK, 0=HCLK */
-#define ASIC3_SDHWCTRL_PCLR (1 << 2) /* All registers of SDIO cleared */
-#define ASIC3_SDHWCTRL_LEVCD (1 << 3) /* SD card detection: 0:low */
-
-/* SD card write protection: 0=high */
-#define ASIC3_SDHWCTRL_LEVWP (1 << 4)
-#define ASIC3_SDHWCTRL_SDLED (1 << 5) /* SD card LED signal 0=disable */
-
-/* SD card power supply ctrl 1=enable */
-#define ASIC3_SDHWCTRL_SDPWR (1 << 6)
-
-#define ASIC3_EXTCF_BASE 0x1100
-
-#define ASIC3_EXTCF_SELECT 0x00
-#define ASIC3_EXTCF_RESET 0x04
-
-#define ASIC3_EXTCF_SMOD0 (1 << 0) /* slot number of mode 0 */
-#define ASIC3_EXTCF_SMOD1 (1 << 1) /* slot number of mode 1 */
-#define ASIC3_EXTCF_SMOD2 (1 << 2) /* slot number of mode 2 */
-#define ASIC3_EXTCF_OWM_EN (1 << 4) /* enable onewire module */
-#define ASIC3_EXTCF_OWM_SMB (1 << 5) /* OWM bus selection */
-#define ASIC3_EXTCF_OWM_RESET (1 << 6) /* ?? used by OWM and CF */
-#define ASIC3_EXTCF_CF0_SLEEP_MODE (1 << 7) /* CF0 sleep state */
-#define ASIC3_EXTCF_CF1_SLEEP_MODE (1 << 8) /* CF1 sleep state */
-#define ASIC3_EXTCF_CF0_PWAIT_EN (1 << 10) /* CF0 PWAIT_n control */
-#define ASIC3_EXTCF_CF1_PWAIT_EN (1 << 11) /* CF1 PWAIT_n control */
-#define ASIC3_EXTCF_CF0_BUF_EN (1 << 12) /* CF0 buffer control */
-#define ASIC3_EXTCF_CF1_BUF_EN (1 << 13) /* CF1 buffer control */
-#define ASIC3_EXTCF_SD_MEM_ENABLE (1 << 14)
-#define ASIC3_EXTCF_CF_SLEEP (1 << 15) /* CF sleep mode control */
-
-/*********************************************
- * The Onewire interface (DS1WM) is handled
- * by the ds1wm driver.
- *
- *********************************************/
-
-#define ASIC3_OWM_BASE 0xC00
-
-/*****************************************************************************
- * The SD configuration registers are at a completely different location
- * in memory. They are divided into three sets of registers:
- *
- * SD_CONFIG Core configuration register
- * SD_CTRL Control registers for SD operations
- * SDIO_CTRL Control registers for SDIO operations
- *
- *****************************************************************************/
-#define ASIC3_SD_CONFIG_BASE 0x0400 /* Assumes 32 bit addressing */
-#define ASIC3_SD_CONFIG_SIZE 0x0200 /* Assumes 32 bit addressing */
-#define ASIC3_SD_CTRL_BASE 0x1000
-#define ASIC3_SDIO_CTRL_BASE 0x1200
-
-#define ASIC3_MAP_SIZE_32BIT 0x2000
-#define ASIC3_MAP_SIZE_16BIT 0x1000
-
-/* Functions needed by leds-asic3 */
-
-struct asic3;
-extern void asic3_write_register(struct asic3 *asic, unsigned int reg, u32 val);
-extern u32 asic3_read_register(struct asic3 *asic, unsigned int reg);
-
-#endif /* __ASIC3_H__ */
diff --git a/ANDROID_3.4.5/include/linux/mfd/core.h b/ANDROID_3.4.5/include/linux/mfd/core.h
deleted file mode 100644
index 4e76163d..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/core.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * drivers/mfd/mfd-core.h
- *
- * core MFD support
- * Copyright (c) 2006 Ian Molton
- * Copyright (c) 2007 Dmitry Baryshkov
- *
- * 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.
- *
- */
-
-#ifndef MFD_CORE_H
-#define MFD_CORE_H
-
-#include <linux/platform_device.h>
-
-/*
- * This struct describes the MFD part ("cell").
- * After registration the copy of this structure will become the platform data
- * of the resulting platform_device
- */
-struct mfd_cell {
- const char *name;
- int id;
-
- /* refcounting for multiple drivers to use a single cell */
- atomic_t *usage_count;
- int (*enable)(struct platform_device *dev);
- int (*disable)(struct platform_device *dev);
-
- int (*suspend)(struct platform_device *dev);
- int (*resume)(struct platform_device *dev);
-
- /* platform data passed to the sub devices drivers */
- void *platform_data;
- size_t pdata_size;
-
- /*
- * These resources can be specified relative to the parent device.
- * For accessing hardware you should use resources from the platform dev
- */
- int num_resources;
- const struct resource *resources;
-
- /* don't check for resource conflicts */
- bool ignore_resource_conflicts;
-
- /*
- * Disable runtime PM callbacks for this subdevice - see
- * pm_runtime_no_callbacks().
- */
- bool pm_runtime_no_callbacks;
-};
-
-/*
- * Convenience functions for clients using shared cells. Refcounting
- * happens automatically, with the cell's enable/disable callbacks
- * being called only when a device is first being enabled or no other
- * clients are making use of it.
- */
-extern int mfd_cell_enable(struct platform_device *pdev);
-extern int mfd_cell_disable(struct platform_device *pdev);
-
-/*
- * "Clone" multiple platform devices for a single cell. This is to be used
- * for devices that have multiple users of a cell. For example, if an mfd
- * driver wants the cell "foo" to be used by a GPIO driver, an MTD driver,
- * and a platform driver, the following bit of code would be use after first
- * calling mfd_add_devices():
- *
- * const char *fclones[] = { "foo-gpio", "foo-mtd" };
- * err = mfd_clone_cells("foo", fclones, ARRAY_SIZE(fclones));
- *
- * Each driver (MTD, GPIO, and platform driver) would then register
- * platform_drivers for "foo-mtd", "foo-gpio", and "foo", respectively.
- * The cell's .enable/.disable hooks should be used to deal with hardware
- * resource contention.
- */
-extern int mfd_clone_cell(const char *cell, const char **clones,
- size_t n_clones);
-
-/*
- * Given a platform device that's been created by mfd_add_devices(), fetch
- * the mfd_cell that created it.
- */
-static inline const struct mfd_cell *mfd_get_cell(struct platform_device *pdev)
-{
- return pdev->mfd_cell;
-}
-
-extern int mfd_add_devices(struct device *parent, int id,
- struct mfd_cell *cells, int n_devs,
- struct resource *mem_base,
- int irq_base);
-
-extern void mfd_remove_devices(struct device *parent);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/da903x.h b/ANDROID_3.4.5/include/linux/mfd/da903x.h
deleted file mode 100644
index 0aa3a1a4..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/da903x.h
+++ /dev/null
@@ -1,247 +0,0 @@
-#ifndef __LINUX_PMIC_DA903X_H
-#define __LINUX_PMIC_DA903X_H
-
-/* Unified sub device IDs for DA9030/DA9034/DA9035 */
-enum {
- DA9030_ID_LED_1,
- DA9030_ID_LED_2,
- DA9030_ID_LED_3,
- DA9030_ID_LED_4,
- DA9030_ID_LED_PC,
- DA9030_ID_VIBRA,
- DA9030_ID_WLED,
- DA9030_ID_BUCK1,
- DA9030_ID_BUCK2,
- DA9030_ID_LDO1,
- DA9030_ID_LDO2,
- DA9030_ID_LDO3,
- DA9030_ID_LDO4,
- DA9030_ID_LDO5,
- DA9030_ID_LDO6,
- DA9030_ID_LDO7,
- DA9030_ID_LDO8,
- DA9030_ID_LDO9,
- DA9030_ID_LDO10,
- DA9030_ID_LDO11,
- DA9030_ID_LDO12,
- DA9030_ID_LDO13,
- DA9030_ID_LDO14,
- DA9030_ID_LDO15,
- DA9030_ID_LDO16,
- DA9030_ID_LDO17,
- DA9030_ID_LDO18,
- DA9030_ID_LDO19,
- DA9030_ID_LDO_INT, /* LDO Internal */
- DA9030_ID_BAT, /* battery charger */
-
- DA9034_ID_LED_1,
- DA9034_ID_LED_2,
- DA9034_ID_VIBRA,
- DA9034_ID_WLED,
- DA9034_ID_TOUCH,
-
- DA9034_ID_BUCK1,
- DA9034_ID_BUCK2,
- DA9034_ID_LDO1,
- DA9034_ID_LDO2,
- DA9034_ID_LDO3,
- DA9034_ID_LDO4,
- DA9034_ID_LDO5,
- DA9034_ID_LDO6,
- DA9034_ID_LDO7,
- DA9034_ID_LDO8,
- DA9034_ID_LDO9,
- DA9034_ID_LDO10,
- DA9034_ID_LDO11,
- DA9034_ID_LDO12,
- DA9034_ID_LDO13,
- DA9034_ID_LDO14,
- DA9034_ID_LDO15,
-
- DA9035_ID_BUCK3,
-};
-
-/*
- * DA9030/DA9034 LEDs sub-devices uses generic "struct led_info"
- * as the platform_data
- */
-
-/* DA9030 flags for "struct led_info"
- */
-#define DA9030_LED_RATE_ON (0 << 5)
-#define DA9030_LED_RATE_052S (1 << 5)
-#define DA9030_LED_DUTY_1_16 (0 << 3)
-#define DA9030_LED_DUTY_1_8 (1 << 3)
-#define DA9030_LED_DUTY_1_4 (2 << 3)
-#define DA9030_LED_DUTY_1_2 (3 << 3)
-
-#define DA9030_VIBRA_MODE_1P3V (0 << 1)
-#define DA9030_VIBRA_MODE_2P7V (1 << 1)
-#define DA9030_VIBRA_FREQ_1HZ (0 << 2)
-#define DA9030_VIBRA_FREQ_2HZ (1 << 2)
-#define DA9030_VIBRA_FREQ_4HZ (2 << 2)
-#define DA9030_VIBRA_FREQ_8HZ (3 << 2)
-#define DA9030_VIBRA_DUTY_ON (0 << 4)
-#define DA9030_VIBRA_DUTY_75P (1 << 4)
-#define DA9030_VIBRA_DUTY_50P (2 << 4)
-#define DA9030_VIBRA_DUTY_25P (3 << 4)
-
-/* DA9034 flags for "struct led_info" */
-#define DA9034_LED_RAMP (1 << 7)
-
-/* DA9034 touch screen platform data */
-struct da9034_touch_pdata {
- int interval_ms; /* sampling interval while pen down */
- int x_inverted;
- int y_inverted;
-};
-
-struct da9034_backlight_pdata {
- int output_current; /* output current of WLED, from 0-31 (in mA) */
-};
-
-/* DA9030 battery charger data */
-struct power_supply_info;
-
-struct da9030_battery_info {
- /* battery parameters */
- struct power_supply_info *battery_info;
-
- /* current and voltage to use for battery charging */
- unsigned int charge_milliamp;
- unsigned int charge_millivolt;
-
- /* voltage thresholds (in millivolts) */
- int vbat_low;
- int vbat_crit;
- int vbat_charge_start;
- int vbat_charge_stop;
- int vbat_charge_restart;
-
- /* battery nominal minimal and maximal voltages in millivolts */
- int vcharge_min;
- int vcharge_max;
-
- /* Temperature thresholds. These are DA9030 register values
- "as is" and should be measured for each battery type */
- int tbat_low;
- int tbat_high;
- int tbat_restart;
-
-
- /* battery monitor interval (seconds) */
- unsigned int batmon_interval;
-
- /* platform callbacks for battery low and critical events */
- void (*battery_low)(void);
- void (*battery_critical)(void);
-};
-
-struct da903x_subdev_info {
- int id;
- const char *name;
- void *platform_data;
-};
-
-struct da903x_platform_data {
- int num_subdevs;
- struct da903x_subdev_info *subdevs;
-};
-
-/* bit definitions for DA9030 events */
-#define DA9030_EVENT_ONKEY (1 << 0)
-#define DA9030_EVENT_PWREN (1 << 1)
-#define DA9030_EVENT_EXTON (1 << 2)
-#define DA9030_EVENT_CHDET (1 << 3)
-#define DA9030_EVENT_TBAT (1 << 4)
-#define DA9030_EVENT_VBATMON (1 << 5)
-#define DA9030_EVENT_VBATMON_TXON (1 << 6)
-#define DA9030_EVENT_CHIOVER (1 << 7)
-#define DA9030_EVENT_TCTO (1 << 8)
-#define DA9030_EVENT_CCTO (1 << 9)
-#define DA9030_EVENT_ADC_READY (1 << 10)
-#define DA9030_EVENT_VBUS_4P4 (1 << 11)
-#define DA9030_EVENT_VBUS_4P0 (1 << 12)
-#define DA9030_EVENT_SESS_VALID (1 << 13)
-#define DA9030_EVENT_SRP_DETECT (1 << 14)
-#define DA9030_EVENT_WATCHDOG (1 << 15)
-#define DA9030_EVENT_LDO15 (1 << 16)
-#define DA9030_EVENT_LDO16 (1 << 17)
-#define DA9030_EVENT_LDO17 (1 << 18)
-#define DA9030_EVENT_LDO18 (1 << 19)
-#define DA9030_EVENT_LDO19 (1 << 20)
-#define DA9030_EVENT_BUCK2 (1 << 21)
-
-/* bit definitions for DA9034 events */
-#define DA9034_EVENT_ONKEY (1 << 0)
-#define DA9034_EVENT_EXTON (1 << 2)
-#define DA9034_EVENT_CHDET (1 << 3)
-#define DA9034_EVENT_TBAT (1 << 4)
-#define DA9034_EVENT_VBATMON (1 << 5)
-#define DA9034_EVENT_REV_IOVER (1 << 6)
-#define DA9034_EVENT_CH_IOVER (1 << 7)
-#define DA9034_EVENT_CH_TCTO (1 << 8)
-#define DA9034_EVENT_CH_CCTO (1 << 9)
-#define DA9034_EVENT_USB_DEV (1 << 10)
-#define DA9034_EVENT_OTGCP_IOVER (1 << 11)
-#define DA9034_EVENT_VBUS_4P55 (1 << 12)
-#define DA9034_EVENT_VBUS_3P8 (1 << 13)
-#define DA9034_EVENT_SESS_1P8 (1 << 14)
-#define DA9034_EVENT_SRP_READY (1 << 15)
-#define DA9034_EVENT_ADC_MAN (1 << 16)
-#define DA9034_EVENT_ADC_AUTO4 (1 << 17)
-#define DA9034_EVENT_ADC_AUTO5 (1 << 18)
-#define DA9034_EVENT_ADC_AUTO6 (1 << 19)
-#define DA9034_EVENT_PEN_DOWN (1 << 20)
-#define DA9034_EVENT_TSI_READY (1 << 21)
-#define DA9034_EVENT_UART_TX (1 << 22)
-#define DA9034_EVENT_UART_RX (1 << 23)
-#define DA9034_EVENT_HEADSET (1 << 25)
-#define DA9034_EVENT_HOOKSWITCH (1 << 26)
-#define DA9034_EVENT_WATCHDOG (1 << 27)
-
-extern int da903x_register_notifier(struct device *dev,
- struct notifier_block *nb, unsigned int events);
-extern int da903x_unregister_notifier(struct device *dev,
- struct notifier_block *nb, unsigned int events);
-
-/* Status Query Interface */
-#define DA9030_STATUS_ONKEY (1 << 0)
-#define DA9030_STATUS_PWREN1 (1 << 1)
-#define DA9030_STATUS_EXTON (1 << 2)
-#define DA9030_STATUS_CHDET (1 << 3)
-#define DA9030_STATUS_TBAT (1 << 4)
-#define DA9030_STATUS_VBATMON (1 << 5)
-#define DA9030_STATUS_VBATMON_TXON (1 << 6)
-#define DA9030_STATUS_MCLKDET (1 << 7)
-
-#define DA9034_STATUS_ONKEY (1 << 0)
-#define DA9034_STATUS_EXTON (1 << 2)
-#define DA9034_STATUS_CHDET (1 << 3)
-#define DA9034_STATUS_TBAT (1 << 4)
-#define DA9034_STATUS_VBATMON (1 << 5)
-#define DA9034_STATUS_PEN_DOWN (1 << 6)
-#define DA9034_STATUS_MCLKDET (1 << 7)
-#define DA9034_STATUS_USB_DEV (1 << 8)
-#define DA9034_STATUS_HEADSET (1 << 9)
-#define DA9034_STATUS_HOOKSWITCH (1 << 10)
-#define DA9034_STATUS_REMCON (1 << 11)
-#define DA9034_STATUS_VBUS_VALID_4P55 (1 << 12)
-#define DA9034_STATUS_VBUS_VALID_3P8 (1 << 13)
-#define DA9034_STATUS_SESS_VALID_1P8 (1 << 14)
-#define DA9034_STATUS_SRP_READY (1 << 15)
-
-extern int da903x_query_status(struct device *dev, unsigned int status);
-
-
-/* NOTE: the functions below are not intended for use outside
- * of the DA903x sub-device drivers
- */
-extern int da903x_write(struct device *dev, int reg, uint8_t val);
-extern int da903x_writes(struct device *dev, int reg, int len, uint8_t *val);
-extern int da903x_read(struct device *dev, int reg, uint8_t *val);
-extern int da903x_reads(struct device *dev, int reg, int len, uint8_t *val);
-extern int da903x_update(struct device *dev, int reg, uint8_t val, uint8_t mask);
-extern int da903x_set_bits(struct device *dev, int reg, uint8_t bit_mask);
-extern int da903x_clr_bits(struct device *dev, int reg, uint8_t bit_mask);
-#endif /* __LINUX_PMIC_DA903X_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/da9052/da9052.h b/ANDROID_3.4.5/include/linux/mfd/da9052/da9052.h
deleted file mode 100644
index 7ffbd6e9..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/da9052/da9052.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * da9052 declarations for DA9052 PMICs.
- *
- * Copyright(c) 2011 Dialog Semiconductor Ltd.
- *
- * Author: David Dajun Chen <dchen@diasemi.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., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-#ifndef __MFD_DA9052_DA9052_H
-#define __MFD_DA9052_DA9052_H
-
-#include <linux/interrupt.h>
-#include <linux/regmap.h>
-#include <linux/slab.h>
-#include <linux/completion.h>
-#include <linux/list.h>
-#include <linux/mfd/core.h>
-
-#include <linux/mfd/da9052/reg.h>
-
-#define DA9052_IRQ_DCIN 0
-#define DA9052_IRQ_VBUS 1
-#define DA9052_IRQ_DCINREM 2
-#define DA9052_IRQ_VBUSREM 3
-#define DA9052_IRQ_VDDLOW 4
-#define DA9052_IRQ_ALARM 5
-#define DA9052_IRQ_SEQRDY 6
-#define DA9052_IRQ_COMP1V2 7
-#define DA9052_IRQ_NONKEY 8
-#define DA9052_IRQ_IDFLOAT 9
-#define DA9052_IRQ_IDGND 10
-#define DA9052_IRQ_CHGEND 11
-#define DA9052_IRQ_TBAT 12
-#define DA9052_IRQ_ADC_EOM 13
-#define DA9052_IRQ_PENDOWN 14
-#define DA9052_IRQ_TSIREADY 15
-#define DA9052_IRQ_GPI0 16
-#define DA9052_IRQ_GPI1 17
-#define DA9052_IRQ_GPI2 18
-#define DA9052_IRQ_GPI3 19
-#define DA9052_IRQ_GPI4 20
-#define DA9052_IRQ_GPI5 21
-#define DA9052_IRQ_GPI6 22
-#define DA9052_IRQ_GPI7 23
-#define DA9052_IRQ_GPI8 24
-#define DA9052_IRQ_GPI9 25
-#define DA9052_IRQ_GPI10 26
-#define DA9052_IRQ_GPI11 27
-#define DA9052_IRQ_GPI12 28
-#define DA9052_IRQ_GPI13 29
-#define DA9052_IRQ_GPI14 30
-#define DA9052_IRQ_GPI15 31
-
-enum da9052_chip_id {
- DA9052,
- DA9053_AA,
- DA9053_BA,
- DA9053_BB,
-};
-
-struct da9052_pdata;
-
-struct da9052 {
- struct device *dev;
- struct regmap *regmap;
-
- int irq_base;
- u8 chip_id;
-
- int chip_irq;
-};
-
-/* Device I/O API */
-static inline int da9052_reg_read(struct da9052 *da9052, unsigned char reg)
-{
- int val, ret;
-
- ret = regmap_read(da9052->regmap, reg, &val);
- if (ret < 0)
- return ret;
- return val;
-}
-
-static inline int da9052_reg_write(struct da9052 *da9052, unsigned char reg,
- unsigned char val)
-{
- return regmap_write(da9052->regmap, reg, val);
-}
-
-static inline int da9052_group_read(struct da9052 *da9052, unsigned char reg,
- unsigned reg_cnt, unsigned char *val)
-{
- return regmap_bulk_read(da9052->regmap, reg, val, reg_cnt);
-}
-
-static inline int da9052_group_write(struct da9052 *da9052, unsigned char reg,
- unsigned reg_cnt, unsigned char *val)
-{
- return regmap_raw_write(da9052->regmap, reg, val, reg_cnt);
-}
-
-static inline int da9052_reg_update(struct da9052 *da9052, unsigned char reg,
- unsigned char bit_mask,
- unsigned char reg_val)
-{
- return regmap_update_bits(da9052->regmap, reg, bit_mask, reg_val);
-}
-
-int da9052_device_init(struct da9052 *da9052, u8 chip_id);
-void da9052_device_exit(struct da9052 *da9052);
-
-extern struct regmap_config da9052_regmap_config;
-
-#endif /* __MFD_DA9052_DA9052_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/da9052/pdata.h b/ANDROID_3.4.5/include/linux/mfd/da9052/pdata.h
deleted file mode 100644
index 62c5c3c2..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/da9052/pdata.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Platform data declarations for DA9052 PMICs.
- *
- * Copyright(c) 2011 Dialog Semiconductor Ltd.
- *
- * Author: David Dajun Chen <dchen@diasemi.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., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-#ifndef __MFD_DA9052_PDATA_H__
-#define __MFD_DA9052_PDATA_H__
-
-#define DA9052_MAX_REGULATORS 14
-
-struct da9052;
-
-struct da9052_pdata {
- struct led_platform_data *pled;
- int (*init) (struct da9052 *da9052);
- int irq_base;
- int gpio_base;
- int use_for_apm;
- struct regulator_init_data *regulators[DA9052_MAX_REGULATORS];
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/da9052/reg.h b/ANDROID_3.4.5/include/linux/mfd/da9052/reg.h
deleted file mode 100644
index b97f7309..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/da9052/reg.h
+++ /dev/null
@@ -1,749 +0,0 @@
-/*
- * Register declarations for DA9052 PMICs.
- *
- * Copyright(c) 2011 Dialog Semiconductor Ltd.
- *
- * Author: David Dajun Chen <dchen@diasemi.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., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-#ifndef __LINUX_MFD_DA9052_REG_H
-#define __LINUX_MFD_DA9052_REG_H
-
-/* PAGE REGISTERS */
-#define DA9052_PAGE0_CON_REG 0
-#define DA9052_PAGE1_CON_REG 128
-
-/* STATUS REGISTERS */
-#define DA9052_STATUS_A_REG 1
-#define DA9052_STATUS_B_REG 2
-#define DA9052_STATUS_C_REG 3
-#define DA9052_STATUS_D_REG 4
-
-/* EVENT REGISTERS */
-#define DA9052_EVENT_A_REG 5
-#define DA9052_EVENT_B_REG 6
-#define DA9052_EVENT_C_REG 7
-#define DA9052_EVENT_D_REG 8
-#define DA9052_FAULTLOG_REG 9
-
-/* IRQ REGISTERS */
-#define DA9052_IRQ_MASK_A_REG 10
-#define DA9052_IRQ_MASK_B_REG 11
-#define DA9052_IRQ_MASK_C_REG 12
-#define DA9052_IRQ_MASK_D_REG 13
-
-/* CONTROL REGISTERS */
-#define DA9052_CONTROL_A_REG 14
-#define DA9052_CONTROL_B_REG 15
-#define DA9052_CONTROL_C_REG 16
-#define DA9052_CONTROL_D_REG 17
-
-#define DA9052_PDDIS_REG 18
-#define DA9052_INTERFACE_REG 19
-#define DA9052_RESET_REG 20
-
-/* GPIO REGISTERS */
-#define DA9052_GPIO_0_1_REG 21
-#define DA9052_GPIO_2_3_REG 22
-#define DA9052_GPIO_4_5_REG 23
-#define DA9052_GPIO_6_7_REG 24
-#define DA9052_GPIO_14_15_REG 28
-
-/* POWER SEQUENCER CONTROL REGISTERS */
-#define DA9052_ID_0_1_REG 29
-#define DA9052_ID_2_3_REG 30
-#define DA9052_ID_4_5_REG 31
-#define DA9052_ID_6_7_REG 32
-#define DA9052_ID_8_9_REG 33
-#define DA9052_ID_10_11_REG 34
-#define DA9052_ID_12_13_REG 35
-#define DA9052_ID_14_15_REG 36
-#define DA9052_ID_16_17_REG 37
-#define DA9052_ID_18_19_REG 38
-#define DA9052_ID_20_21_REG 39
-#define DA9052_SEQ_STATUS_REG 40
-#define DA9052_SEQ_A_REG 41
-#define DA9052_SEQ_B_REG 42
-#define DA9052_SEQ_TIMER_REG 43
-
-/* LDO AND BUCK REGISTERS */
-#define DA9052_BUCKA_REG 44
-#define DA9052_BUCKB_REG 45
-#define DA9052_BUCKCORE_REG 46
-#define DA9052_BUCKPRO_REG 47
-#define DA9052_BUCKMEM_REG 48
-#define DA9052_BUCKPERI_REG 49
-#define DA9052_LDO1_REG 50
-#define DA9052_LDO2_REG 51
-#define DA9052_LDO3_REG 52
-#define DA9052_LDO4_REG 53
-#define DA9052_LDO5_REG 54
-#define DA9052_LDO6_REG 55
-#define DA9052_LDO7_REG 56
-#define DA9052_LDO8_REG 57
-#define DA9052_LDO9_REG 58
-#define DA9052_LDO10_REG 59
-#define DA9052_SUPPLY_REG 60
-#define DA9052_PULLDOWN_REG 61
-#define DA9052_CHGBUCK_REG 62
-#define DA9052_WAITCONT_REG 63
-#define DA9052_ISET_REG 64
-#define DA9052_BATCHG_REG 65
-
-/* BATTERY CONTROL REGISTRS */
-#define DA9052_CHG_CONT_REG 66
-#define DA9052_INPUT_CONT_REG 67
-#define DA9052_CHG_TIME_REG 68
-#define DA9052_BBAT_CONT_REG 69
-
-/* LED CONTROL REGISTERS */
-#define DA9052_BOOST_REG 70
-#define DA9052_LED_CONT_REG 71
-#define DA9052_LEDMIN123_REG 72
-#define DA9052_LED1_CONF_REG 73
-#define DA9052_LED2_CONF_REG 74
-#define DA9052_LED3_CONF_REG 75
-#define DA9052_LED1CONT_REG 76
-#define DA9052_LED2CONT_REG 77
-#define DA9052_LED3CONT_REG 78
-#define DA9052_LED_CONT_4_REG 79
-#define DA9052_LED_CONT_5_REG 80
-
-/* ADC CONTROL REGISTERS */
-#define DA9052_ADC_MAN_REG 81
-#define DA9052_ADC_CONT_REG 82
-#define DA9052_ADC_RES_L_REG 83
-#define DA9052_ADC_RES_H_REG 84
-#define DA9052_VDD_RES_REG 85
-#define DA9052_VDD_MON_REG 86
-
-#define DA9052_ICHG_AV_REG 87
-#define DA9052_ICHG_THD_REG 88
-#define DA9052_ICHG_END_REG 89
-#define DA9052_TBAT_RES_REG 90
-#define DA9052_TBAT_HIGHP_REG 91
-#define DA9052_TBAT_HIGHN_REG 92
-#define DA9052_TBAT_LOW_REG 93
-#define DA9052_T_OFFSET_REG 94
-
-#define DA9052_ADCIN4_RES_REG 95
-#define DA9052_AUTO4_HIGH_REG 96
-#define DA9052_AUTO4_LOW_REG 97
-#define DA9052_ADCIN5_RES_REG 98
-#define DA9052_AUTO5_HIGH_REG 99
-#define DA9052_AUTO5_LOW_REG 100
-#define DA9052_ADCIN6_RES_REG 101
-#define DA9052_AUTO6_HIGH_REG 102
-#define DA9052_AUTO6_LOW_REG 103
-
-#define DA9052_TJUNC_RES_REG 104
-
-/* TSI CONTROL REGISTERS */
-#define DA9052_TSI_CONT_A_REG 105
-#define DA9052_TSI_CONT_B_REG 106
-#define DA9052_TSI_X_MSB_REG 107
-#define DA9052_TSI_Y_MSB_REG 108
-#define DA9052_TSI_LSB_REG 109
-#define DA9052_TSI_Z_MSB_REG 110
-
-/* RTC COUNT REGISTERS */
-#define DA9052_COUNT_S_REG 111
-#define DA9052_COUNT_MI_REG 112
-#define DA9052_COUNT_H_REG 113
-#define DA9052_COUNT_D_REG 114
-#define DA9052_COUNT_MO_REG 115
-#define DA9052_COUNT_Y_REG 116
-
-/* RTC CONTROL REGISTERS */
-#define DA9052_ALARM_MI_REG 117
-#define DA9052_ALARM_H_REG 118
-#define DA9052_ALARM_D_REG 119
-#define DA9052_ALARM_MO_REG 120
-#define DA9052_ALARM_Y_REG 121
-#define DA9052_SECOND_A_REG 122
-#define DA9052_SECOND_B_REG 123
-#define DA9052_SECOND_C_REG 124
-#define DA9052_SECOND_D_REG 125
-
-/* PAGE CONFIGURATION BIT */
-#define DA9052_PAGE_CONF 0X80
-
-/* STATUS REGISTER A BITS */
-#define DA9052_STATUSA_VDATDET 0X80
-#define DA9052_STATUSA_VBUSSEL 0X40
-#define DA9052_STATUSA_DCINSEL 0X20
-#define DA9052_STATUSA_VBUSDET 0X10
-#define DA9052_STATUSA_DCINDET 0X08
-#define DA9052_STATUSA_IDGND 0X04
-#define DA9052_STATUSA_IDFLOAT 0X02
-#define DA9052_STATUSA_NONKEY 0X01
-
-/* STATUS REGISTER B BITS */
-#define DA9052_STATUSB_COMPDET 0X80
-#define DA9052_STATUSB_SEQUENCING 0X40
-#define DA9052_STATUSB_GPFB2 0X20
-#define DA9052_STATUSB_CHGTO 0X10
-#define DA9052_STATUSB_CHGEND 0X08
-#define DA9052_STATUSB_CHGLIM 0X04
-#define DA9052_STATUSB_CHGPRE 0X02
-#define DA9052_STATUSB_CHGATT 0X01
-
-/* STATUS REGISTER C BITS */
-#define DA9052_STATUSC_GPI7 0X80
-#define DA9052_STATUSC_GPI6 0X40
-#define DA9052_STATUSC_GPI5 0X20
-#define DA9052_STATUSC_GPI4 0X10
-#define DA9052_STATUSC_GPI3 0X08
-#define DA9052_STATUSC_GPI2 0X04
-#define DA9052_STATUSC_GPI1 0X02
-#define DA9052_STATUSC_GPI0 0X01
-
-/* STATUS REGISTER D BITS */
-#define DA9052_STATUSD_GPI15 0X80
-#define DA9052_STATUSD_GPI14 0X40
-#define DA9052_STATUSD_GPI13 0X20
-#define DA9052_STATUSD_GPI12 0X10
-#define DA9052_STATUSD_GPI11 0X08
-#define DA9052_STATUSD_GPI10 0X04
-#define DA9052_STATUSD_GPI9 0X02
-#define DA9052_STATUSD_GPI8 0X01
-
-/* EVENT REGISTER A BITS */
-#define DA9052_EVENTA_ECOMP1V2 0X80
-#define DA9052_EVENTA_ESEQRDY 0X40
-#define DA9052_EVENTA_EALRAM 0X20
-#define DA9052_EVENTA_EVDDLOW 0X10
-#define DA9052_EVENTA_EVBUSREM 0X08
-#define DA9052_EVENTA_EDCINREM 0X04
-#define DA9052_EVENTA_EVBUSDET 0X02
-#define DA9052_EVENTA_EDCINDET 0X01
-
-/* EVENT REGISTER B BITS */
-#define DA9052_EVENTB_ETSIREADY 0X80
-#define DA9052_EVENTB_EPENDOWN 0X40
-#define DA9052_EVENTB_EADCEOM 0X20
-#define DA9052_EVENTB_ETBAT 0X10
-#define DA9052_EVENTB_ECHGEND 0X08
-#define DA9052_EVENTB_EIDGND 0X04
-#define DA9052_EVENTB_EIDFLOAT 0X02
-#define DA9052_EVENTB_ENONKEY 0X01
-
-/* EVENT REGISTER C BITS */
-#define DA9052_EVENTC_EGPI7 0X80
-#define DA9052_EVENTC_EGPI6 0X40
-#define DA9052_EVENTC_EGPI5 0X20
-#define DA9052_EVENTC_EGPI4 0X10
-#define DA9052_EVENTC_EGPI3 0X08
-#define DA9052_EVENTC_EGPI2 0X04
-#define DA9052_EVENTC_EGPI1 0X02
-#define DA9052_EVENTC_EGPI0 0X01
-
-/* EVENT REGISTER D BITS */
-#define DA9052_EVENTD_EGPI15 0X80
-#define DA9052_EVENTD_EGPI14 0X40
-#define DA9052_EVENTD_EGPI13 0X20
-#define DA9052_EVENTD_EGPI12 0X10
-#define DA9052_EVENTD_EGPI11 0X08
-#define DA9052_EVENTD_EGPI10 0X04
-#define DA9052_EVENTD_EGPI9 0X02
-#define DA9052_EVENTD_EGPI8 0X01
-
-/* IRQ MASK REGISTERS BITS */
-#define DA9052_M_NONKEY 0X0100
-
-/* TSI EVENT REGISTERS BITS */
-#define DA9052_E_PEN_DOWN 0X4000
-#define DA9052_E_TSI_READY 0X8000
-
-/* FAULT LOG REGISTER BITS */
-#define DA9052_FAULTLOG_WAITSET 0X80
-#define DA9052_FAULTLOG_NSDSET 0X40
-#define DA9052_FAULTLOG_KEYSHUT 0X20
-#define DA9052_FAULTLOG_TEMPOVER 0X08
-#define DA9052_FAULTLOG_VDDSTART 0X04
-#define DA9052_FAULTLOG_VDDFAULT 0X02
-#define DA9052_FAULTLOG_TWDERROR 0X01
-
-/* CONTROL REGISTER A BITS */
-#define DA9052_CONTROLA_GPIV 0X80
-#define DA9052_CONTROLA_PMOTYPE 0X20
-#define DA9052_CONTROLA_PMOV 0X10
-#define DA9052_CONTROLA_PMIV 0X08
-#define DA9052_CONTROLA_PMIFV 0X08
-#define DA9052_CONTROLA_PWR1EN 0X04
-#define DA9052_CONTROLA_PWREN 0X02
-#define DA9052_CONTROLA_SYSEN 0X01
-
-/* CONTROL REGISTER B BITS */
-#define DA9052_CONTROLB_SHUTDOWN 0X80
-#define DA9052_CONTROLB_DEEPSLEEP 0X40
-#define DA9052_CONTROL_B_WRITEMODE 0X20
-#define DA9052_CONTROLB_BBATEN 0X10
-#define DA9052_CONTROLB_OTPREADEN 0X08
-#define DA9052_CONTROLB_AUTOBOOT 0X04
-#define DA9052_CONTROLB_ACTDIODE 0X02
-#define DA9052_CONTROLB_BUCKMERGE 0X01
-
-/* CONTROL REGISTER C BITS */
-#define DA9052_CONTROLC_BLINKDUR 0X80
-#define DA9052_CONTROLC_BLINKFRQ 0X60
-#define DA9052_CONTROLC_DEBOUNCING 0X1C
-#define DA9052_CONTROLC_PMFB2PIN 0X02
-#define DA9052_CONTROLC_PMFB1PIN 0X01
-
-/* CONTROL REGISTER D BITS */
-#define DA9052_CONTROLD_WATCHDOG 0X80
-#define DA9052_CONTROLD_ACCDETEN 0X40
-#define DA9052_CONTROLD_GPI1415SD 0X20
-#define DA9052_CONTROLD_NONKEYSD 0X10
-#define DA9052_CONTROLD_KEEPACTEN 0X08
-#define DA9052_CONTROLD_TWDSCALE 0X07
-
-/* POWER DOWN DISABLE REGISTER BITS */
-#define DA9052_PDDIS_PMCONTPD 0X80
-#define DA9052_PDDIS_OUT32KPD 0X40
-#define DA9052_PDDIS_CHGBBATPD 0X20
-#define DA9052_PDDIS_CHGPD 0X10
-#define DA9052_PDDIS_HS2WIREPD 0X08
-#define DA9052_PDDIS_PMIFPD 0X04
-#define DA9052_PDDIS_GPADCPD 0X02
-#define DA9052_PDDIS_GPIOPD 0X01
-
-/* CONTROL REGISTER D BITS */
-#define DA9052_INTERFACE_IFBASEADDR 0XE0
-#define DA9052_INTERFACE_NCSPOL 0X10
-#define DA9052_INTERFACE_RWPOL 0X08
-#define DA9052_INTERFACE_CPHA 0X04
-#define DA9052_INTERFACE_CPOL 0X02
-#define DA9052_INTERFACE_IFTYPE 0X01
-
-/* CONTROL REGISTER D BITS */
-#define DA9052_RESET_RESETEVENT 0XC0
-#define DA9052_RESET_RESETTIMER 0X3F
-
-/* GPIO REGISTERS */
-/* GPIO CONTROL REGISTER BITS */
-#define DA9052_GPIO_EVEN_PORT_PIN 0X03
-#define DA9052_GPIO_EVEN_PORT_TYPE 0X04
-#define DA9052_GPIO_EVEN_PORT_MODE 0X08
-
-#define DA9052_GPIO_ODD_PORT_PIN 0X30
-#define DA9052_GPIO_ODD_PORT_TYPE 0X40
-#define DA9052_GPIO_ODD_PORT_MODE 0X80
-
-/*POWER SEQUENCER REGISTER BITS */
-/* SEQ CONTROL REGISTER BITS FOR ID 0 AND 1 */
-#define DA9052_ID01_LDO1STEP 0XF0
-#define DA9052_ID01_SYSPRE 0X04
-#define DA9052_ID01_DEFSUPPLY 0X02
-#define DA9052_ID01_NRESMODE 0X01
-
-/* SEQ CONTROL REGISTER BITS FOR ID 2 AND 3 */
-#define DA9052_ID23_LDO3STEP 0XF0
-#define DA9052_ID23_LDO2STEP 0X0F
-
-/* SEQ CONTROL REGISTER BITS FOR ID 4 AND 5 */
-#define DA9052_ID45_LDO5STEP 0XF0
-#define DA9052_ID45_LDO4STEP 0X0F
-
-/* SEQ CONTROL REGISTER BITS FOR ID 6 AND 7 */
-#define DA9052_ID67_LDO7STEP 0XF0
-#define DA9052_ID67_LDO6STEP 0X0F
-
-/* SEQ CONTROL REGISTER BITS FOR ID 8 AND 9 */
-#define DA9052_ID89_LDO9STEP 0XF0
-#define DA9052_ID89_LDO8STEP 0X0F
-
-/* SEQ CONTROL REGISTER BITS FOR ID 10 AND 11 */
-#define DA9052_ID1011_PDDISSTEP 0XF0
-#define DA9052_ID1011_LDO10STEP 0X0F
-
-/* SEQ CONTROL REGISTER BITS FOR ID 12 AND 13 */
-#define DA9052_ID1213_VMEMSWSTEP 0XF0
-#define DA9052_ID1213_VPERISWSTEP 0X0F
-
-/* SEQ CONTROL REGISTER BITS FOR ID 14 AND 15 */
-#define DA9052_ID1415_BUCKPROSTEP 0XF0
-#define DA9052_ID1415_BUCKCORESTEP 0X0F
-
-/* SEQ CONTROL REGISTER BITS FOR ID 16 AND 17 */
-#define DA9052_ID1617_BUCKPERISTEP 0XF0
-#define DA9052_ID1617_BUCKMEMSTEP 0X0F
-
-/* SEQ CONTROL REGISTER BITS FOR ID 18 AND 19 */
-#define DA9052_ID1819_GPRISE2STEP 0XF0
-#define DA9052_ID1819_GPRISE1STEP 0X0F
-
-/* SEQ CONTROL REGISTER BITS FOR ID 20 AND 21 */
-#define DA9052_ID2021_GPFALL2STEP 0XF0
-#define DA9052_ID2021_GPFALL1STEP 0X0F
-
-/* POWER SEQ STATUS REGISTER BITS */
-#define DA9052_SEQSTATUS_SEQPOINTER 0XF0
-#define DA9052_SEQSTATUS_WAITSTEP 0X0F
-
-/* POWER SEQ A REGISTER BITS */
-#define DA9052_SEQA_POWEREND 0XF0
-#define DA9052_SEQA_SYSTEMEND 0X0F
-
-/* POWER SEQ B REGISTER BITS */
-#define DA9052_SEQB_PARTDOWN 0XF0
-#define DA9052_SEQB_MAXCOUNT 0X0F
-
-/* POWER SEQ TIMER REGISTER BITS */
-#define DA9052_SEQTIMER_SEQDUMMY 0XF0
-#define DA9052_SEQTIMER_SEQTIME 0X0F
-
-/*POWER SUPPLY CONTROL REGISTER BITS */
-/* BUCK REGISTER A BITS */
-#define DA9052_BUCKA_BPROILIM 0XC0
-#define DA9052_BUCKA_BPROMODE 0X30
-#define DA9052_BUCKA_BCOREILIM 0X0C
-#define DA9052_BUCKA_BCOREMODE 0X03
-
-/* BUCK REGISTER B BITS */
-#define DA9052_BUCKB_BERIILIM 0XC0
-#define DA9052_BUCKB_BPERIMODE 0X30
-#define DA9052_BUCKB_BMEMILIM 0X0C
-#define DA9052_BUCKB_BMEMMODE 0X03
-
-/* BUCKCORE REGISTER BITS */
-#define DA9052_BUCKCORE_BCORECONF 0X80
-#define DA9052_BUCKCORE_BCOREEN 0X40
-#define DA9052_BUCKCORE_VBCORE 0X3F
-
-/* BUCKPRO REGISTER BITS */
-#define DA9052_BUCKPRO_BPROCONF 0X80
-#define DA9052_BUCKPRO_BPROEN 0X40
-#define DA9052_BUCKPRO_VBPRO 0X3F
-
-/* BUCKMEM REGISTER BITS */
-#define DA9052_BUCKMEM_BMEMCONF 0X80
-#define DA9052_BUCKMEM_BMEMEN 0X40
-#define DA9052_BUCKMEM_VBMEM 0X3F
-
-/* BUCKPERI REGISTER BITS */
-#define DA9052_BUCKPERI_BPERICONF 0X80
-#define DA9052_BUCKPERI_BPERIEN 0X40
-#define DA9052_BUCKPERI_BPERIHS 0X20
-#define DA9052_BUCKPERI_VBPERI 0X1F
-
-/* LDO1 REGISTER BITS */
-#define DA9052_LDO1_LDO1CONF 0X80
-#define DA9052_LDO1_LDO1EN 0X40
-#define DA9052_LDO1_VLDO1 0X1F
-
-/* LDO2 REGISTER BITS */
-#define DA9052_LDO2_LDO2CONF 0X80
-#define DA9052_LDO2_LDO2EN 0X40
-#define DA9052_LDO2_VLDO2 0X3F
-
-/* LDO3 REGISTER BITS */
-#define DA9052_LDO3_LDO3CONF 0X80
-#define DA9052_LDO3_LDO3EN 0X40
-#define DA9052_LDO3_VLDO3 0X3F
-
-/* LDO4 REGISTER BITS */
-#define DA9052_LDO4_LDO4CONF 0X80
-#define DA9052_LDO4_LDO4EN 0X40
-#define DA9052_LDO4_VLDO4 0X3F
-
-/* LDO5 REGISTER BITS */
-#define DA9052_LDO5_LDO5CONF 0X80
-#define DA9052_LDO5_LDO5EN 0X40
-#define DA9052_LDO5_VLDO5 0X3F
-
-/* LDO6 REGISTER BITS */
-#define DA9052_LDO6_LDO6CONF 0X80
-#define DA9052_LDO6_LDO6EN 0X40
-#define DA9052_LDO6_VLDO6 0X3F
-
-/* LDO7 REGISTER BITS */
-#define DA9052_LDO7_LDO7CONF 0X80
-#define DA9052_LDO7_LDO7EN 0X40
-#define DA9052_LDO7_VLDO7 0X3F
-
-/* LDO8 REGISTER BITS */
-#define DA9052_LDO8_LDO8CONF 0X80
-#define DA9052_LDO8_LDO8EN 0X40
-#define DA9052_LDO8_VLDO8 0X3F
-
-/* LDO9 REGISTER BITS */
-#define DA9052_LDO9_LDO9CONF 0X80
-#define DA9052_LDO9_LDO9EN 0X40
-#define DA9052_LDO9_VLDO9 0X3F
-
-/* LDO10 REGISTER BITS */
-#define DA9052_LDO10_LDO10CONF 0X80
-#define DA9052_LDO10_LDO10EN 0X40
-#define DA9052_LDO10_VLDO10 0X3F
-
-/* SUPPLY REGISTER BITS */
-#define DA9052_SUPPLY_VLOCK 0X80
-#define DA9052_SUPPLY_VMEMSWEN 0X40
-#define DA9052_SUPPLY_VPERISWEN 0X20
-#define DA9052_SUPPLY_VLDO3GO 0X10
-#define DA9052_SUPPLY_VLDO2GO 0X08
-#define DA9052_SUPPLY_VBMEMGO 0X04
-#define DA9052_SUPPLY_VBPROGO 0X02
-#define DA9052_SUPPLY_VBCOREGO 0X01
-
-/* PULLDOWN REGISTER BITS */
-#define DA9052_PULLDOWN_LDO5PDDIS 0X20
-#define DA9052_PULLDOWN_LDO2PDDIS 0X10
-#define DA9052_PULLDOWN_LDO1PDDIS 0X08
-#define DA9052_PULLDOWN_MEMPDDIS 0X04
-#define DA9052_PULLDOWN_PROPDDIS 0X02
-#define DA9052_PULLDOWN_COREPDDIS 0X01
-
-/* BAT CHARGER REGISTER BITS */
-/* CHARGER BUCK REGISTER BITS */
-#define DA9052_CHGBUCK_CHGTEMP 0X80
-#define DA9052_CHGBUCK_CHGUSBILIM 0X40
-#define DA9052_CHGBUCK_CHGBUCKLP 0X20
-#define DA9052_CHGBUCK_CHGBUCKEN 0X10
-#define DA9052_CHGBUCK_ISETBUCK 0X0F
-
-/* WAIT COUNTER REGISTER BITS */
-#define DA9052_WAITCONT_WAITDIR 0X80
-#define DA9052_WAITCONT_RTCCLOCK 0X40
-#define DA9052_WAITCONT_WAITMODE 0X20
-#define DA9052_WAITCONT_EN32KOUT 0X10
-#define DA9052_WAITCONT_DELAYTIME 0X0F
-
-/* ISET CONTROL REGISTER BITS */
-#define DA9052_ISET_ISETDCIN 0XF0
-#define DA9052_ISET_ISETVBUS 0X0F
-
-/* BATTERY CHARGER CONTROL REGISTER BITS */
-#define DA9052_BATCHG_ICHGPRE 0XC0
-#define DA9052_BATCHG_ICHGBAT 0X3F
-
-/* CHARGER COUNTER REGISTER BITS */
-#define DA9052_CHG_CONT_VCHG_BAT 0XF8
-#define DA9052_CHG_CONT_TCTR 0X07
-
-/* INPUT CONTROL REGISTER BITS */
-#define DA9052_INPUT_CONT_TCTR_MODE 0X80
-#define DA9052_INPUT_CONT_VBUS_SUSP 0X10
-#define DA9052_INPUT_CONT_DCIN_SUSP 0X08
-
-/* CHARGING TIME REGISTER BITS */
-#define DA9052_CHGTIME_CHGTIME 0XFF
-
-/* BACKUP BATTERY CONTROL REGISTER BITS */
-#define DA9052_BBATCONT_BCHARGERISET 0XF0
-#define DA9052_BBATCONT_BCHARGERVSET 0X0F
-
-/* LED REGISTERS BITS */
-/* LED BOOST REGISTER BITS */
-#define DA9052_BOOST_EBFAULT 0X80
-#define DA9052_BOOST_MBFAULT 0X40
-#define DA9052_BOOST_BOOSTFRQ 0X20
-#define DA9052_BOOST_BOOSTILIM 0X10
-#define DA9052_BOOST_LED3INEN 0X08
-#define DA9052_BOOST_LED2INEN 0X04
-#define DA9052_BOOST_LED1INEN 0X02
-#define DA9052_BOOST_BOOSTEN 0X01
-
-/* LED CONTROL REGISTER BITS */
-#define DA9052_LEDCONT_SELLEDMODE 0X80
-#define DA9052_LEDCONT_LED3ICONT 0X40
-#define DA9052_LEDCONT_LED3RAMP 0X20
-#define DA9052_LEDCONT_LED3EN 0X10
-#define DA9052_LEDCONT_LED2RAMP 0X08
-#define DA9052_LEDCONT_LED2EN 0X04
-#define DA9052_LEDCONT_LED1RAMP 0X02
-#define DA9052_LEDCONT_LED1EN 0X01
-
-/* LEDMIN123 REGISTER BIT */
-#define DA9052_LEDMIN123_LEDMINCURRENT 0XFF
-
-/* LED1CONF REGISTER BIT */
-#define DA9052_LED1CONF_LED1CURRENT 0XFF
-
-/* LED2CONF REGISTER BIT */
-#define DA9052_LED2CONF_LED2CURRENT 0XFF
-
-/* LED3CONF REGISTER BIT */
-#define DA9052_LED3CONF_LED3CURRENT 0XFF
-
-/* LED COUNT REGISTER BIT */
-#define DA9052_LED_CONT_DIM 0X80
-
-/* ADC MAN REGISTERS BITS */
-#define DA9052_ADC_MAN_MAN_CONV 0X10
-#define DA9052_ADC_MAN_MUXSEL_VDDOUT 0X00
-#define DA9052_ADC_MAN_MUXSEL_ICH 0X01
-#define DA9052_ADC_MAN_MUXSEL_TBAT 0X02
-#define DA9052_ADC_MAN_MUXSEL_VBAT 0X03
-#define DA9052_ADC_MAN_MUXSEL_AD4 0X04
-#define DA9052_ADC_MAN_MUXSEL_AD5 0X05
-#define DA9052_ADC_MAN_MUXSEL_AD6 0X06
-#define DA9052_ADC_MAN_MUXSEL_VBBAT 0X09
-
-/* ADC CONTROL REGSISTERS BITS */
-#define DA9052_ADCCONT_COMP1V2EN 0X80
-#define DA9052_ADCCONT_ADCMODE 0X40
-#define DA9052_ADCCONT_TBATISRCEN 0X20
-#define DA9052_ADCCONT_AD4ISRCEN 0X10
-#define DA9052_ADCCONT_AUTOAD6EN 0X08
-#define DA9052_ADCCONT_AUTOAD5EN 0X04
-#define DA9052_ADCCONT_AUTOAD4EN 0X02
-#define DA9052_ADCCONT_AUTOVDDEN 0X01
-
-/* ADC 10 BIT MANUAL CONVERSION RESULT LOW REGISTER */
-#define DA9052_ADC_RES_LSB 0X03
-
-/* ADC 10 BIT MANUAL CONVERSION RESULT HIGH REGISTER */
-#define DA9052_ADCRESH_ADCRESMSB 0XFF
-
-/* VDD RES REGSISTER BIT*/
-#define DA9052_VDDRES_VDDOUTRES 0XFF
-
-/* VDD MON REGSISTER BIT */
-#define DA9052_VDDMON_VDDOUTMON 0XFF
-
-/* ICHG_AV REGSISTER BIT */
-#define DA9052_ICHGAV_ICHGAV 0XFF
-
-/* ICHG_THD REGSISTER BIT */
-#define DA9052_ICHGTHD_ICHGTHD 0XFF
-
-/* ICHG_END REGSISTER BIT */
-#define DA9052_ICHGEND_ICHGEND 0XFF
-
-/* TBAT_RES REGSISTER BIT */
-#define DA9052_TBATRES_TBATRES 0XFF
-
-/* TBAT_HIGHP REGSISTER BIT */
-#define DA9052_TBATHIGHP_TBATHIGHP 0XFF
-
-/* TBAT_HIGHN REGSISTER BIT */
-#define DA9052_TBATHIGHN_TBATHIGHN 0XFF
-
-/* TBAT_LOW REGSISTER BIT */
-#define DA9052_TBATLOW_TBATLOW 0XFF
-
-/* T_OFFSET REGSISTER BIT */
-#define DA9052_TOFFSET_TOFFSET 0XFF
-
-/* ADCIN4_RES REGSISTER BIT */
-#define DA9052_ADCIN4RES_ADCIN4RES 0XFF
-
-/* ADCIN4_HIGH REGSISTER BIT */
-#define DA9052_AUTO4HIGH_AUTO4HIGH 0XFF
-
-/* ADCIN4_LOW REGSISTER BIT */
-#define DA9052_AUTO4LOW_AUTO4LOW 0XFF
-
-/* ADCIN5_RES REGSISTER BIT */
-#define DA9052_ADCIN5RES_ADCIN5RES 0XFF
-
-/* ADCIN5_HIGH REGSISTER BIT */
-#define DA9052_AUTO5HIGH_AUTOHIGH 0XFF
-
-/* ADCIN5_LOW REGSISTER BIT */
-#define DA9052_AUTO5LOW_AUTO5LOW 0XFF
-
-/* ADCIN6_RES REGSISTER BIT */
-#define DA9052_ADCIN6RES_ADCIN6RES 0XFF
-
-/* ADCIN6_HIGH REGSISTER BIT */
-#define DA9052_AUTO6HIGH_AUTO6HIGH 0XFF
-
-/* ADCIN6_LOW REGSISTER BIT */
-#define DA9052_AUTO6LOW_AUTO6LOW 0XFF
-
-/* TJUNC_RES REGSISTER BIT*/
-#define DA9052_TJUNCRES_TJUNCRES 0XFF
-
-/* TSI REGISTER */
-/* TSI CONTROL REGISTER A BITS */
-#define DA9052_TSICONTA_TSIDELAY 0XC0
-#define DA9052_TSICONTA_TSISKIP 0X38
-#define DA9052_TSICONTA_TSIMODE 0X04
-#define DA9052_TSICONTA_PENDETEN 0X02
-#define DA9052_TSICONTA_AUTOTSIEN 0X01
-
-/* TSI CONTROL REGISTER B BITS */
-#define DA9052_TSICONTB_ADCREF 0X80
-#define DA9052_TSICONTB_TSIMAN 0X40
-#define DA9052_TSICONTB_TSIMUX 0X30
-#define DA9052_TSICONTB_TSISEL3 0X08
-#define DA9052_TSICONTB_TSISEL2 0X04
-#define DA9052_TSICONTB_TSISEL1 0X02
-#define DA9052_TSICONTB_TSISEL0 0X01
-
-/* TSI X CO-ORDINATE MSB RESULT REGISTER BITS */
-#define DA9052_TSIXMSB_TSIXM 0XFF
-
-/* TSI Y CO-ORDINATE MSB RESULT REGISTER BITS */
-#define DA9052_TSIYMSB_TSIYM 0XFF
-
-/* TSI CO-ORDINATE LSB RESULT REGISTER BITS */
-#define DA9052_TSILSB_PENDOWN 0X40
-#define DA9052_TSILSB_TSIZL 0X30
-#define DA9052_TSILSB_TSIYL 0X0C
-#define DA9052_TSILSB_TSIXL 0X03
-
-/* TSI Z MEASUREMENT MSB RESULT REGISTER BIT */
-#define DA9052_TSIZMSB_TSIZM 0XFF
-
-/* RTC REGISTER */
-/* RTC TIMER SECONDS REGISTER BITS */
-#define DA9052_COUNTS_MONITOR 0X40
-#define DA9052_RTC_SEC 0X3F
-
-/* RTC TIMER MINUTES REGISTER BIT */
-#define DA9052_RTC_MIN 0X3F
-
-/* RTC TIMER HOUR REGISTER BIT */
-#define DA9052_RTC_HOUR 0X1F
-
-/* RTC TIMER DAYS REGISTER BIT */
-#define DA9052_RTC_DAY 0X1F
-
-/* RTC TIMER MONTHS REGISTER BIT */
-#define DA9052_RTC_MONTH 0X0F
-
-/* RTC TIMER YEARS REGISTER BIT */
-#define DA9052_RTC_YEAR 0X3F
-
-/* RTC ALARM MINUTES REGISTER BITS */
-#define DA9052_ALARMM_I_TICK_TYPE 0X80
-#define DA9052_ALARMMI_ALARMTYPE 0X40
-
-/* RTC ALARM YEARS REGISTER BITS */
-#define DA9052_ALARM_Y_TICK_ON 0X80
-#define DA9052_ALARM_Y_ALARM_ON 0X40
-
-/* RTC SECONDS REGISTER A BITS */
-#define DA9052_SECONDA_SECONDSA 0XFF
-
-/* RTC SECONDS REGISTER B BITS */
-#define DA9052_SECONDB_SECONDSB 0XFF
-
-/* RTC SECONDS REGISTER C BITS */
-#define DA9052_SECONDC_SECONDSC 0XFF
-
-/* RTC SECONDS REGISTER D BITS */
-#define DA9052_SECONDD_SECONDSD 0XFF
-
-#endif
-/* __LINUX_MFD_DA9052_REG_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/davinci_voicecodec.h b/ANDROID_3.4.5/include/linux/mfd/davinci_voicecodec.h
deleted file mode 100644
index 0ab61320..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/davinci_voicecodec.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * DaVinci Voice Codec Core Interface for TI platforms
- *
- * Copyright (C) 2010 Texas Instruments, Inc
- *
- * Author: Miguel Aguilar <miguel.aguilar@ridgerun.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
- */
-
-#ifndef __LINUX_MFD_DAVINCI_VOICECODEC_H_
-#define __LINUX_MFD_DAVINIC_VOICECODEC_H_
-
-#include <linux/kernel.h>
-#include <linux/platform_device.h>
-#include <linux/mfd/core.h>
-
-#include <mach/edma.h>
-
-/*
- * Register values.
- */
-#define DAVINCI_VC_PID 0x00
-#define DAVINCI_VC_CTRL 0x04
-#define DAVINCI_VC_INTEN 0x08
-#define DAVINCI_VC_INTSTATUS 0x0c
-#define DAVINCI_VC_INTCLR 0x10
-#define DAVINCI_VC_EMUL_CTRL 0x14
-#define DAVINCI_VC_RFIFO 0x20
-#define DAVINCI_VC_WFIFO 0x24
-#define DAVINCI_VC_FIFOSTAT 0x28
-#define DAVINCI_VC_TST_CTRL 0x2C
-#define DAVINCI_VC_REG05 0x94
-#define DAVINCI_VC_REG09 0xA4
-#define DAVINCI_VC_REG12 0xB0
-
-/* DAVINCI_VC_CTRL bit fields */
-#define DAVINCI_VC_CTRL_MASK 0x5500
-#define DAVINCI_VC_CTRL_RSTADC BIT(0)
-#define DAVINCI_VC_CTRL_RSTDAC BIT(1)
-#define DAVINCI_VC_CTRL_RD_BITS_8 BIT(4)
-#define DAVINCI_VC_CTRL_RD_UNSIGNED BIT(5)
-#define DAVINCI_VC_CTRL_WD_BITS_8 BIT(6)
-#define DAVINCI_VC_CTRL_WD_UNSIGNED BIT(7)
-#define DAVINCI_VC_CTRL_RFIFOEN BIT(8)
-#define DAVINCI_VC_CTRL_RFIFOCL BIT(9)
-#define DAVINCI_VC_CTRL_RFIFOMD_WORD_1 BIT(10)
-#define DAVINCI_VC_CTRL_WFIFOEN BIT(12)
-#define DAVINCI_VC_CTRL_WFIFOCL BIT(13)
-#define DAVINCI_VC_CTRL_WFIFOMD_WORD_1 BIT(14)
-
-/* DAVINCI_VC_INT bit fields */
-#define DAVINCI_VC_INT_MASK 0x3F
-#define DAVINCI_VC_INT_RDRDY_MASK BIT(0)
-#define DAVINCI_VC_INT_RERROVF_MASK BIT(1)
-#define DAVINCI_VC_INT_RERRUDR_MASK BIT(2)
-#define DAVINCI_VC_INT_WDREQ_MASK BIT(3)
-#define DAVINCI_VC_INT_WERROVF_MASKBIT BIT(4)
-#define DAVINCI_VC_INT_WERRUDR_MASK BIT(5)
-
-/* DAVINCI_VC_REG05 bit fields */
-#define DAVINCI_VC_REG05_PGA_GAIN 0x07
-
-/* DAVINCI_VC_REG09 bit fields */
-#define DAVINCI_VC_REG09_MUTE 0x40
-#define DAVINCI_VC_REG09_DIG_ATTEN 0x3F
-
-/* DAVINCI_VC_REG12 bit fields */
-#define DAVINCI_VC_REG12_POWER_ALL_ON 0xFD
-#define DAVINCI_VC_REG12_POWER_ALL_OFF 0x00
-
-#define DAVINCI_VC_CELLS 2
-
-enum davinci_vc_cells {
- DAVINCI_VC_VCIF_CELL,
- DAVINCI_VC_CQ93VC_CELL,
-};
-
-struct davinci_vcif {
- struct platform_device *pdev;
- u32 dma_tx_channel;
- u32 dma_rx_channel;
- dma_addr_t dma_tx_addr;
- dma_addr_t dma_rx_addr;
-};
-
-struct cq93vc {
- struct platform_device *pdev;
- struct snd_soc_codec *codec;
- u32 sysclk;
-};
-
-struct davinci_vc;
-
-struct davinci_vc {
- /* Device data */
- struct device *dev;
- struct platform_device *pdev;
- struct clk *clk;
-
- /* Memory resources */
- void __iomem *base;
- resource_size_t pbase;
- size_t base_size;
-
- /* MFD cells */
- struct mfd_cell cells[DAVINCI_VC_CELLS];
-
- /* Client devices */
- struct davinci_vcif davinci_vcif;
- struct cq93vc cq93vc;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/db5500-prcmu.h b/ANDROID_3.4.5/include/linux/mfd/db5500-prcmu.h
deleted file mode 100644
index 5a049dfa..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/db5500-prcmu.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson SA 2010
- *
- * License Terms: GNU General Public License v2
- *
- * U5500 PRCMU API.
- */
-#ifndef __MFD_DB5500_PRCMU_H
-#define __MFD_DB5500_PRCMU_H
-
-static inline int prcmu_resetout(u8 resoutn, u8 state)
-{
- return 0;
-}
-
-static inline int db5500_prcmu_set_epod(u16 epod_id, u8 epod_state)
-{
- return 0;
-}
-
-static inline int db5500_prcmu_request_clock(u8 clock, bool enable)
-{
- return 0;
-}
-
-static inline int db5500_prcmu_set_power_state(u8 state, bool keep_ulp_clk,
- bool keep_ap_pll)
-{
- return 0;
-}
-
-static inline int db5500_prcmu_config_esram0_deep_sleep(u8 state)
-{
- return 0;
-}
-
-static inline u16 db5500_prcmu_get_reset_code(void)
-{
- return 0;
-}
-
-static inline bool db5500_prcmu_is_ac_wake_requested(void)
-{
- return 0;
-}
-
-static inline int db5500_prcmu_set_arm_opp(u8 opp)
-{
- return 0;
-}
-
-static inline int db5500_prcmu_get_arm_opp(void)
-{
- return 0;
-}
-
-static inline void db5500_prcmu_config_abb_event_readout(u32 abb_events) {}
-
-static inline void db5500_prcmu_get_abb_event_buffer(void __iomem **buf) {}
-
-static inline void db5500_prcmu_system_reset(u16 reset_code) {}
-
-static inline void db5500_prcmu_enable_wakeups(u32 wakeups) {}
-
-#ifdef CONFIG_MFD_DB5500_PRCMU
-
-void db5500_prcmu_early_init(void);
-int db5500_prcmu_set_display_clocks(void);
-int db5500_prcmu_disable_dsipll(void);
-int db5500_prcmu_enable_dsipll(void);
-int db5500_prcmu_abb_read(u8 slave, u8 reg, u8 *value, u8 size);
-int db5500_prcmu_abb_write(u8 slave, u8 reg, u8 *value, u8 size);
-
-#else /* !CONFIG_UX500_SOC_DB5500 */
-
-static inline void db5500_prcmu_early_init(void) {}
-
-static inline int db5500_prcmu_abb_read(u8 slave, u8 reg, u8 *value, u8 size)
-{
- return -ENOSYS;
-}
-
-static inline int db5500_prcmu_abb_write(u8 slave, u8 reg, u8 *value, u8 size)
-{
- return -ENOSYS;
-}
-
-static inline int db5500_prcmu_set_display_clocks(void)
-{
- return 0;
-}
-
-static inline int db5500_prcmu_disable_dsipll(void)
-{
- return 0;
-}
-
-static inline int db5500_prcmu_enable_dsipll(void)
-{
- return 0;
-}
-
-#endif /* CONFIG_MFD_DB5500_PRCMU */
-
-#endif /* __MFD_DB5500_PRCMU_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/db8500-prcmu.h b/ANDROID_3.4.5/include/linux/mfd/db8500-prcmu.h
deleted file mode 100644
index b3a43b12..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/db8500-prcmu.h
+++ /dev/null
@@ -1,795 +0,0 @@
-/*
- * Copyright (C) STMicroelectronics 2009
- * Copyright (C) ST-Ericsson SA 2010
- *
- * License Terms: GNU General Public License v2
- * Author: Kumar Sanghvi <kumar.sanghvi@stericsson.com>
- *
- * PRCMU f/w APIs
- */
-#ifndef __MFD_DB8500_PRCMU_H
-#define __MFD_DB8500_PRCMU_H
-
-#include <linux/interrupt.h>
-#include <linux/bitops.h>
-
-/*
- * Registers
- */
-#define DB8500_PRCM_GPIOCR 0x138
-#define DB8500_PRCM_GPIOCR_DBG_UARTMOD_CMD0 BIT(0)
-#define DB8500_PRCM_GPIOCR_DBG_STM_APE_CMD BIT(9)
-#define DB8500_PRCM_GPIOCR_DBG_STM_MOD_CMD1 BIT(11)
-#define DB8500_PRCM_GPIOCR_SPI2_SELECT BIT(23)
-
-#define DB8500_PRCM_LINE_VALUE 0x170
-#define DB8500_PRCM_LINE_VALUE_HSI_CAWAKE0 BIT(3)
-
-#define DB8500_PRCM_DSI_SW_RESET 0x324
-#define DB8500_PRCM_DSI_SW_RESET_DSI0_SW_RESETN BIT(0)
-#define DB8500_PRCM_DSI_SW_RESET_DSI1_SW_RESETN BIT(1)
-#define DB8500_PRCM_DSI_SW_RESET_DSI2_SW_RESETN BIT(2)
-
-/* This portion previously known as <mach/prcmu-fw-defs_v1.h> */
-
-/**
- * enum state - ON/OFF state definition
- * @OFF: State is ON
- * @ON: State is OFF
- *
- */
-enum state {
- OFF = 0x0,
- ON = 0x1,
-};
-
-/**
- * enum ret_state - general purpose On/Off/Retention states
- *
- */
-enum ret_state {
- OFFST = 0,
- ONST = 1,
- RETST = 2
-};
-
-/**
- * enum clk_arm - ARM Cortex A9 clock schemes
- * @A9_OFF:
- * @A9_BOOT:
- * @A9_OPPT1:
- * @A9_OPPT2:
- * @A9_EXTCLK:
- */
-enum clk_arm {
- A9_OFF,
- A9_BOOT,
- A9_OPPT1,
- A9_OPPT2,
- A9_EXTCLK
-};
-
-/**
- * enum clk_gen - GEN#0/GEN#1 clock schemes
- * @GEN_OFF:
- * @GEN_BOOT:
- * @GEN_OPPT1:
- */
-enum clk_gen {
- GEN_OFF,
- GEN_BOOT,
- GEN_OPPT1,
-};
-
-/* some information between arm and xp70 */
-
-/**
- * enum romcode_write - Romcode message written by A9 AND read by XP70
- * @RDY_2_DS: Value set when ApDeepSleep state can be executed by XP70
- * @RDY_2_XP70_RST: Value set when 0x0F has been successfully polled by the
- * romcode. The xp70 will go into self-reset
- */
-enum romcode_write {
- RDY_2_DS = 0x09,
- RDY_2_XP70_RST = 0x10
-};
-
-/**
- * enum romcode_read - Romcode message written by XP70 and read by A9
- * @INIT: Init value when romcode field is not used
- * @FS_2_DS: Value set when power state is going from ApExecute to
- * ApDeepSleep
- * @END_DS: Value set when ApDeepSleep power state is reached coming from
- * ApExecute state
- * @DS_TO_FS: Value set when power state is going from ApDeepSleep to
- * ApExecute
- * @END_FS: Value set when ApExecute power state is reached coming from
- * ApDeepSleep state
- * @SWR: Value set when power state is going to ApReset
- * @END_SWR: Value set when the xp70 finished executing ApReset actions and
- * waits for romcode acknowledgment to go to self-reset
- */
-enum romcode_read {
- INIT = 0x00,
- FS_2_DS = 0x0A,
- END_DS = 0x0B,
- DS_TO_FS = 0x0C,
- END_FS = 0x0D,
- SWR = 0x0E,
- END_SWR = 0x0F
-};
-
-/**
- * enum ap_pwrst - current power states defined in PRCMU firmware
- * @NO_PWRST: Current power state init
- * @AP_BOOT: Current power state is apBoot
- * @AP_EXECUTE: Current power state is apExecute
- * @AP_DEEP_SLEEP: Current power state is apDeepSleep
- * @AP_SLEEP: Current power state is apSleep
- * @AP_IDLE: Current power state is apIdle
- * @AP_RESET: Current power state is apReset
- */
-enum ap_pwrst {
- NO_PWRST = 0x00,
- AP_BOOT = 0x01,
- AP_EXECUTE = 0x02,
- AP_DEEP_SLEEP = 0x03,
- AP_SLEEP = 0x04,
- AP_IDLE = 0x05,
- AP_RESET = 0x06
-};
-
-/**
- * enum ap_pwrst_trans - Transition states defined in PRCMU firmware
- * @NO_TRANSITION: No power state transition
- * @APEXECUTE_TO_APSLEEP: Power state transition from ApExecute to ApSleep
- * @APIDLE_TO_APSLEEP: Power state transition from ApIdle to ApSleep
- * @APBOOT_TO_APEXECUTE: Power state transition from ApBoot to ApExecute
- * @APEXECUTE_TO_APDEEPSLEEP: Power state transition from ApExecute to
- * ApDeepSleep
- * @APEXECUTE_TO_APIDLE: Power state transition from ApExecute to ApIdle
- */
-enum ap_pwrst_trans {
- PRCMU_AP_NO_CHANGE = 0x00,
- APEXECUTE_TO_APSLEEP = 0x01,
- APIDLE_TO_APSLEEP = 0x02, /* To be removed */
- PRCMU_AP_SLEEP = 0x01,
- APBOOT_TO_APEXECUTE = 0x03,
- APEXECUTE_TO_APDEEPSLEEP = 0x04, /* To be removed */
- PRCMU_AP_DEEP_SLEEP = 0x04,
- APEXECUTE_TO_APIDLE = 0x05, /* To be removed */
- PRCMU_AP_IDLE = 0x05,
- PRCMU_AP_DEEP_IDLE = 0x07,
-};
-
-/**
- * enum hw_acc_state - State definition for hardware accelerator
- * @HW_NO_CHANGE: The hardware accelerator state must remain unchanged
- * @HW_OFF: The hardware accelerator must be switched off
- * @HW_OFF_RAMRET: The hardware accelerator must be switched off with its
- * internal RAM in retention
- * @HW_ON: The hwa hardware accelerator hwa must be switched on
- *
- * NOTE! Deprecated, to be removed when all users switched over to use the
- * regulator API.
- */
-enum hw_acc_state {
- HW_NO_CHANGE = 0x00,
- HW_OFF = 0x01,
- HW_OFF_RAMRET = 0x02,
- HW_ON = 0x04
-};
-
-/**
- * enum mbox_2_arm_stat - Status messages definition for mbox_arm
- * @BOOT_TO_EXECUTEOK: The apBoot to apExecute state transition has been
- * completed
- * @DEEPSLEEPOK: The apExecute to apDeepSleep state transition has been
- * completed
- * @SLEEPOK: The apExecute to apSleep state transition has been completed
- * @IDLEOK: The apExecute to apIdle state transition has been completed
- * @SOFTRESETOK: The A9 watchdog/ SoftReset state has been completed
- * @SOFTRESETGO : The A9 watchdog/SoftReset state is on going
- * @BOOT_TO_EXECUTE: The apBoot to apExecute state transition is on going
- * @EXECUTE_TO_DEEPSLEEP: The apExecute to apDeepSleep state transition is on
- * going
- * @DEEPSLEEP_TO_EXECUTE: The apDeepSleep to apExecute state transition is on
- * going
- * @DEEPSLEEP_TO_EXECUTEOK: The apDeepSleep to apExecute state transition has
- * been completed
- * @EXECUTE_TO_SLEEP: The apExecute to apSleep state transition is on going
- * @SLEEP_TO_EXECUTE: The apSleep to apExecute state transition is on going
- * @SLEEP_TO_EXECUTEOK: The apSleep to apExecute state transition has been
- * completed
- * @EXECUTE_TO_IDLE: The apExecute to apIdle state transition is on going
- * @IDLE_TO_EXECUTE: The apIdle to apExecute state transition is on going
- * @IDLE_TO_EXECUTEOK: The apIdle to apExecute state transition has been
- * completed
- * @INIT_STATUS: Status init
- */
-enum ap_pwrsttr_status {
- BOOT_TO_EXECUTEOK = 0xFF,
- DEEPSLEEPOK = 0xFE,
- SLEEPOK = 0xFD,
- IDLEOK = 0xFC,
- SOFTRESETOK = 0xFB,
- SOFTRESETGO = 0xFA,
- BOOT_TO_EXECUTE = 0xF9,
- EXECUTE_TO_DEEPSLEEP = 0xF8,
- DEEPSLEEP_TO_EXECUTE = 0xF7,
- DEEPSLEEP_TO_EXECUTEOK = 0xF6,
- EXECUTE_TO_SLEEP = 0xF5,
- SLEEP_TO_EXECUTE = 0xF4,
- SLEEP_TO_EXECUTEOK = 0xF3,
- EXECUTE_TO_IDLE = 0xF2,
- IDLE_TO_EXECUTE = 0xF1,
- IDLE_TO_EXECUTEOK = 0xF0,
- RDYTODS_RETURNTOEXE = 0xEF,
- NORDYTODS_RETURNTOEXE = 0xEE,
- EXETOSLEEP_RETURNTOEXE = 0xED,
- EXETOIDLE_RETURNTOEXE = 0xEC,
- INIT_STATUS = 0xEB,
-
- /*error messages */
- INITERROR = 0x00,
- PLLARMLOCKP_ER = 0x01,
- PLLDDRLOCKP_ER = 0x02,
- PLLSOCLOCKP_ER = 0x03,
- PLLSOCK1LOCKP_ER = 0x04,
- ARMWFI_ER = 0x05,
- SYSCLKOK_ER = 0x06,
- I2C_NACK_DATA_ER = 0x07,
- BOOT_ER = 0x08,
- I2C_STATUS_ALWAYS_1 = 0x0A,
- I2C_NACK_REG_ADDR_ER = 0x0B,
- I2C_NACK_DATA0123_ER = 0x1B,
- I2C_NACK_ADDR_ER = 0x1F,
- CURAPPWRSTISNOT_BOOT = 0x20,
- CURAPPWRSTISNOT_EXECUTE = 0x21,
- CURAPPWRSTISNOT_SLEEPMODE = 0x22,
- CURAPPWRSTISNOT_CORRECTFORIT10 = 0x23,
- FIFO4500WUISNOT_WUPEVENT = 0x24,
- PLL32KLOCKP_ER = 0x29,
- DDRDEEPSLEEPOK_ER = 0x2A,
- ROMCODEREADY_ER = 0x50,
- WUPBEFOREDS = 0x51,
- DDRCONFIG_ER = 0x52,
- WUPBEFORESLEEP = 0x53,
- WUPBEFOREIDLE = 0x54
-}; /* earlier called as mbox_2_arm_stat */
-
-/**
- * enum dvfs_stat - DVFS status messages definition
- * @DVFS_GO: A state transition DVFS is on going
- * @DVFS_ARM100OPPOK: The state transition DVFS has been completed for 100OPP
- * @DVFS_ARM50OPPOK: The state transition DVFS has been completed for 50OPP
- * @DVFS_ARMEXTCLKOK: The state transition DVFS has been completed for EXTCLK
- * @DVFS_NOCHGTCLKOK: The state transition DVFS has been completed for
- * NOCHGCLK
- * @DVFS_INITSTATUS: Value init
- */
-enum dvfs_stat {
- DVFS_GO = 0xFF,
- DVFS_ARM100OPPOK = 0xFE,
- DVFS_ARM50OPPOK = 0xFD,
- DVFS_ARMEXTCLKOK = 0xFC,
- DVFS_NOCHGTCLKOK = 0xFB,
- DVFS_INITSTATUS = 0x00
-};
-
-/**
- * enum sva_mmdsp_stat - SVA MMDSP status messages
- * @SVA_MMDSP_GO: SVAMMDSP interrupt has happened
- * @SVA_MMDSP_INIT: Status init
- */
-enum sva_mmdsp_stat {
- SVA_MMDSP_GO = 0xFF,
- SVA_MMDSP_INIT = 0x00
-};
-
-/**
- * enum sia_mmdsp_stat - SIA MMDSP status messages
- * @SIA_MMDSP_GO: SIAMMDSP interrupt has happened
- * @SIA_MMDSP_INIT: Status init
- */
-enum sia_mmdsp_stat {
- SIA_MMDSP_GO = 0xFF,
- SIA_MMDSP_INIT = 0x00
-};
-
-/**
- * enum mbox_to_arm_err - Error messages definition
- * @INIT_ERR: Init value
- * @PLLARMLOCKP_ERR: PLLARM has not been correctly locked in given time
- * @PLLDDRLOCKP_ERR: PLLDDR has not been correctly locked in the given time
- * @PLLSOC0LOCKP_ERR: PLLSOC0 has not been correctly locked in the given time
- * @PLLSOC1LOCKP_ERR: PLLSOC1 has not been correctly locked in the given time
- * @ARMWFI_ERR: The ARM WFI has not been correctly executed in the given time
- * @SYSCLKOK_ERR: The SYSCLK is not available in the given time
- * @BOOT_ERR: Romcode has not validated the XP70 self reset in the given time
- * @ROMCODESAVECONTEXT: The Romcode didn.t correctly save it secure context
- * @VARMHIGHSPEEDVALTO_ERR: The ARM high speed supply value transfered
- * through I2C has not been correctly executed in the given time
- * @VARMHIGHSPEEDACCESS_ERR: The command value of VarmHighSpeedVal transfered
- * through I2C has not been correctly executed in the given time
- * @VARMLOWSPEEDVALTO_ERR:The ARM low speed supply value transfered through
- * I2C has not been correctly executed in the given time
- * @VARMLOWSPEEDACCESS_ERR: The command value of VarmLowSpeedVal transfered
- * through I2C has not been correctly executed in the given time
- * @VARMRETENTIONVALTO_ERR: The ARM retention supply value transfered through
- * I2C has not been correctly executed in the given time
- * @VARMRETENTIONACCESS_ERR: The command value of VarmRetentionVal transfered
- * through I2C has not been correctly executed in the given time
- * @VAPEHIGHSPEEDVALTO_ERR: The APE highspeed supply value transfered through
- * I2C has not been correctly executed in the given time
- * @VSAFEHPVALTO_ERR: The SAFE high power supply value transfered through I2C
- * has not been correctly executed in the given time
- * @VMODSEL1VALTO_ERR: The MODEM sel1 supply value transfered through I2C has
- * not been correctly executed in the given time
- * @VMODSEL2VALTO_ERR: The MODEM sel2 supply value transfered through I2C has
- * not been correctly executed in the given time
- * @VARMOFFACCESS_ERR: The command value of Varm ON/OFF transfered through
- * I2C has not been correctly executed in the given time
- * @VAPEOFFACCESS_ERR: The command value of Vape ON/OFF transfered through
- * I2C has not been correctly executed in the given time
- * @VARMRETACCES_ERR: The command value of Varm retention ON/OFF transfered
- * through I2C has not been correctly executed in the given time
- * @CURAPPWRSTISNOTBOOT:Generated when Arm want to do power state transition
- * ApBoot to ApExecute but the power current state is not Apboot
- * @CURAPPWRSTISNOTEXECUTE: Generated when Arm want to do power state
- * transition from ApExecute to others power state but the
- * power current state is not ApExecute
- * @CURAPPWRSTISNOTSLEEPMODE: Generated when wake up events are transmitted
- * but the power current state is not ApDeepSleep/ApSleep/ApIdle
- * @CURAPPWRSTISNOTCORRECTDBG: Generated when wake up events are transmitted
- * but the power current state is not correct
- * @ARMREGU1VALTO_ERR:The ArmRegu1 value transferred through I2C has not
- * been correctly executed in the given time
- * @ARMREGU2VALTO_ERR: The ArmRegu2 value transferred through I2C has not
- * been correctly executed in the given time
- * @VAPEREGUVALTO_ERR: The VApeRegu value transfered through I2C has not
- * been correctly executed in the given time
- * @VSMPS3REGUVALTO_ERR: The VSmps3Regu value transfered through I2C has not
- * been correctly executed in the given time
- * @VMODREGUVALTO_ERR: The VModemRegu value transfered through I2C has not
- * been correctly executed in the given time
- */
-enum mbox_to_arm_err {
- INIT_ERR = 0x00,
- PLLARMLOCKP_ERR = 0x01,
- PLLDDRLOCKP_ERR = 0x02,
- PLLSOC0LOCKP_ERR = 0x03,
- PLLSOC1LOCKP_ERR = 0x04,
- ARMWFI_ERR = 0x05,
- SYSCLKOK_ERR = 0x06,
- BOOT_ERR = 0x07,
- ROMCODESAVECONTEXT = 0x08,
- VARMHIGHSPEEDVALTO_ERR = 0x10,
- VARMHIGHSPEEDACCESS_ERR = 0x11,
- VARMLOWSPEEDVALTO_ERR = 0x12,
- VARMLOWSPEEDACCESS_ERR = 0x13,
- VARMRETENTIONVALTO_ERR = 0x14,
- VARMRETENTIONACCESS_ERR = 0x15,
- VAPEHIGHSPEEDVALTO_ERR = 0x16,
- VSAFEHPVALTO_ERR = 0x17,
- VMODSEL1VALTO_ERR = 0x18,
- VMODSEL2VALTO_ERR = 0x19,
- VARMOFFACCESS_ERR = 0x1A,
- VAPEOFFACCESS_ERR = 0x1B,
- VARMRETACCES_ERR = 0x1C,
- CURAPPWRSTISNOTBOOT = 0x20,
- CURAPPWRSTISNOTEXECUTE = 0x21,
- CURAPPWRSTISNOTSLEEPMODE = 0x22,
- CURAPPWRSTISNOTCORRECTDBG = 0x23,
- ARMREGU1VALTO_ERR = 0x24,
- ARMREGU2VALTO_ERR = 0x25,
- VAPEREGUVALTO_ERR = 0x26,
- VSMPS3REGUVALTO_ERR = 0x27,
- VMODREGUVALTO_ERR = 0x28
-};
-
-enum hw_acc {
- SVAMMDSP = 0,
- SVAPIPE = 1,
- SIAMMDSP = 2,
- SIAPIPE = 3,
- SGA = 4,
- B2R2MCDE = 5,
- ESRAM12 = 6,
- ESRAM34 = 7,
-};
-
-enum cs_pwrmgt {
- PWRDNCS0 = 0,
- WKUPCS0 = 1,
- PWRDNCS1 = 2,
- WKUPCS1 = 3
-};
-
-/* Defs related to autonomous power management */
-
-/**
- * enum sia_sva_pwr_policy - Power policy
- * @NO_CHGT: No change
- * @DSPOFF_HWPOFF:
- * @DSPOFFRAMRET_HWPOFF:
- * @DSPCLKOFF_HWPOFF:
- * @DSPCLKOFF_HWPCLKOFF:
- *
- */
-enum sia_sva_pwr_policy {
- NO_CHGT = 0x0,
- DSPOFF_HWPOFF = 0x1,
- DSPOFFRAMRET_HWPOFF = 0x2,
- DSPCLKOFF_HWPOFF = 0x3,
- DSPCLKOFF_HWPCLKOFF = 0x4,
-};
-
-/**
- * enum auto_enable - Auto Power enable
- * @AUTO_OFF:
- * @AUTO_ON:
- *
- */
-enum auto_enable {
- AUTO_OFF = 0x0,
- AUTO_ON = 0x1,
-};
-
-/* End of file previously known as prcmu-fw-defs_v1.h */
-
-/**
- * enum prcmu_power_status - results from set_power_state
- * @PRCMU_SLEEP_OK: Sleep went ok
- * @PRCMU_DEEP_SLEEP_OK: DeepSleep went ok
- * @PRCMU_IDLE_OK: Idle went ok
- * @PRCMU_DEEPIDLE_OK: DeepIdle went ok
- * @PRCMU_PRCMU2ARMPENDINGIT_ER: Pending interrupt detected
- * @PRCMU_ARMPENDINGIT_ER: Pending interrupt detected
- *
- */
-enum prcmu_power_status {
- PRCMU_SLEEP_OK = 0xf3,
- PRCMU_DEEP_SLEEP_OK = 0xf6,
- PRCMU_IDLE_OK = 0xf0,
- PRCMU_DEEPIDLE_OK = 0xe3,
- PRCMU_PRCMU2ARMPENDINGIT_ER = 0x91,
- PRCMU_ARMPENDINGIT_ER = 0x93,
-};
-
-/*
- * Definitions for autonomous power management configuration.
- */
-
-#define PRCMU_AUTO_PM_OFF 0
-#define PRCMU_AUTO_PM_ON 1
-
-#define PRCMU_AUTO_PM_POWER_ON_HSEM BIT(0)
-#define PRCMU_AUTO_PM_POWER_ON_ABB_FIFO_IT BIT(1)
-
-enum prcmu_auto_pm_policy {
- PRCMU_AUTO_PM_POLICY_NO_CHANGE,
- PRCMU_AUTO_PM_POLICY_DSP_OFF_HWP_OFF,
- PRCMU_AUTO_PM_POLICY_DSP_OFF_RAMRET_HWP_OFF,
- PRCMU_AUTO_PM_POLICY_DSP_CLK_OFF_HWP_OFF,
- PRCMU_AUTO_PM_POLICY_DSP_CLK_OFF_HWP_CLK_OFF,
-};
-
-/**
- * struct prcmu_auto_pm_config - Autonomous power management configuration.
- * @sia_auto_pm_enable: SIA autonomous pm enable. (PRCMU_AUTO_PM_{OFF,ON})
- * @sia_power_on: SIA power ON enable. (PRCMU_AUTO_PM_POWER_ON_* bitmask)
- * @sia_policy: SIA power policy. (enum prcmu_auto_pm_policy)
- * @sva_auto_pm_enable: SVA autonomous pm enable. (PRCMU_AUTO_PM_{OFF,ON})
- * @sva_power_on: SVA power ON enable. (PRCMU_AUTO_PM_POWER_ON_* bitmask)
- * @sva_policy: SVA power policy. (enum prcmu_auto_pm_policy)
- */
-struct prcmu_auto_pm_config {
- u8 sia_auto_pm_enable;
- u8 sia_power_on;
- u8 sia_policy;
- u8 sva_auto_pm_enable;
- u8 sva_power_on;
- u8 sva_policy;
-};
-
-#define PRCMU_FW_PROJECT_U8500 2
-#define PRCMU_FW_PROJECT_U9500 4
-#define PRCMU_FW_PROJECT_U8500_C2 7
-#define PRCMU_FW_PROJECT_U9500_C2 11
-#define PRCMU_FW_PROJECT_U8520 13
-#define PRCMU_FW_PROJECT_U8420 14
-
-struct prcmu_fw_version {
- u8 project;
- u8 api_version;
- u8 func_version;
- u8 errata;
-};
-
-#ifdef CONFIG_MFD_DB8500_PRCMU
-
-void db8500_prcmu_early_init(void);
-int prcmu_set_rc_a2p(enum romcode_write);
-enum romcode_read prcmu_get_rc_p2a(void);
-enum ap_pwrst prcmu_get_xp70_current_state(void);
-bool prcmu_has_arm_maxopp(void);
-struct prcmu_fw_version *prcmu_get_fw_version(void);
-int prcmu_request_ape_opp_100_voltage(bool enable);
-int prcmu_release_usb_wakeup_state(void);
-void prcmu_configure_auto_pm(struct prcmu_auto_pm_config *sleep,
- struct prcmu_auto_pm_config *idle);
-bool prcmu_is_auto_pm_enabled(void);
-
-int prcmu_config_clkout(u8 clkout, u8 source, u8 div);
-int prcmu_set_clock_divider(u8 clock, u8 divider);
-int db8500_prcmu_config_hotdog(u8 threshold);
-int db8500_prcmu_config_hotmon(u8 low, u8 high);
-int db8500_prcmu_start_temp_sense(u16 cycles32k);
-int db8500_prcmu_stop_temp_sense(void);
-int prcmu_abb_read(u8 slave, u8 reg, u8 *value, u8 size);
-int prcmu_abb_write(u8 slave, u8 reg, u8 *value, u8 size);
-
-void prcmu_ac_wake_req(void);
-void prcmu_ac_sleep_req(void);
-void db8500_prcmu_modem_reset(void);
-
-int db8500_prcmu_config_a9wdog(u8 num, bool sleep_auto_off);
-int db8500_prcmu_enable_a9wdog(u8 id);
-int db8500_prcmu_disable_a9wdog(u8 id);
-int db8500_prcmu_kick_a9wdog(u8 id);
-int db8500_prcmu_load_a9wdog(u8 id, u32 val);
-
-void db8500_prcmu_system_reset(u16 reset_code);
-int db8500_prcmu_set_power_state(u8 state, bool keep_ulp_clk, bool keep_ap_pll);
-u8 db8500_prcmu_get_power_state_result(void);
-int db8500_prcmu_gic_decouple(void);
-int db8500_prcmu_gic_recouple(void);
-int db8500_prcmu_copy_gic_settings(void);
-bool db8500_prcmu_gic_pending_irq(void);
-bool db8500_prcmu_pending_irq(void);
-bool db8500_prcmu_is_cpu_in_wfi(int cpu);
-void db8500_prcmu_enable_wakeups(u32 wakeups);
-int db8500_prcmu_set_epod(u16 epod_id, u8 epod_state);
-int db8500_prcmu_request_clock(u8 clock, bool enable);
-int db8500_prcmu_set_display_clocks(void);
-int db8500_prcmu_disable_dsipll(void);
-int db8500_prcmu_enable_dsipll(void);
-void db8500_prcmu_config_abb_event_readout(u32 abb_events);
-void db8500_prcmu_get_abb_event_buffer(void __iomem **buf);
-int db8500_prcmu_config_esram0_deep_sleep(u8 state);
-u16 db8500_prcmu_get_reset_code(void);
-bool db8500_prcmu_is_ac_wake_requested(void);
-int db8500_prcmu_set_arm_opp(u8 opp);
-int db8500_prcmu_get_arm_opp(void);
-int db8500_prcmu_set_ape_opp(u8 opp);
-int db8500_prcmu_get_ape_opp(void);
-int db8500_prcmu_set_ddr_opp(u8 opp);
-int db8500_prcmu_get_ddr_opp(void);
-
-u32 db8500_prcmu_read(unsigned int reg);
-void db8500_prcmu_write(unsigned int reg, u32 value);
-void db8500_prcmu_write_masked(unsigned int reg, u32 mask, u32 value);
-
-#else /* !CONFIG_MFD_DB8500_PRCMU */
-
-static inline void db8500_prcmu_early_init(void) {}
-
-static inline int prcmu_set_rc_a2p(enum romcode_write code)
-{
- return 0;
-}
-
-static inline enum romcode_read prcmu_get_rc_p2a(void)
-{
- return INIT;
-}
-
-static inline enum ap_pwrst prcmu_get_xp70_current_state(void)
-{
- return AP_EXECUTE;
-}
-
-static inline bool prcmu_has_arm_maxopp(void)
-{
- return false;
-}
-
-static inline struct prcmu_fw_version *prcmu_get_fw_version(void)
-{
- return NULL;
-}
-
-static inline int db8500_prcmu_set_ape_opp(u8 opp)
-{
- return 0;
-}
-
-static inline int db8500_prcmu_get_ape_opp(void)
-{
- return APE_100_OPP;
-}
-
-static inline int prcmu_request_ape_opp_100_voltage(bool enable)
-{
- return 0;
-}
-
-static inline int prcmu_release_usb_wakeup_state(void)
-{
- return 0;
-}
-
-static inline int db8500_prcmu_set_ddr_opp(u8 opp)
-{
- return 0;
-}
-
-static inline int db8500_prcmu_get_ddr_opp(void)
-{
- return DDR_100_OPP;
-}
-
-static inline void prcmu_configure_auto_pm(struct prcmu_auto_pm_config *sleep,
- struct prcmu_auto_pm_config *idle)
-{
-}
-
-static inline bool prcmu_is_auto_pm_enabled(void)
-{
- return false;
-}
-
-static inline int prcmu_config_clkout(u8 clkout, u8 source, u8 div)
-{
- return 0;
-}
-
-static inline int prcmu_set_clock_divider(u8 clock, u8 divider)
-{
- return 0;
-}
-
-static inline int db8500_prcmu_config_hotdog(u8 threshold)
-{
- return 0;
-}
-
-static inline int db8500_prcmu_config_hotmon(u8 low, u8 high)
-{
- return 0;
-}
-
-static inline int db8500_prcmu_start_temp_sense(u16 cycles32k)
-{
- return 0;
-}
-
-static inline int db8500_prcmu_stop_temp_sense(void)
-{
- return 0;
-}
-
-static inline int prcmu_abb_read(u8 slave, u8 reg, u8 *value, u8 size)
-{
- return -ENOSYS;
-}
-
-static inline int prcmu_abb_write(u8 slave, u8 reg, u8 *value, u8 size)
-{
- return -ENOSYS;
-}
-
-static inline void prcmu_ac_wake_req(void) {}
-
-static inline void prcmu_ac_sleep_req(void) {}
-
-static inline void db8500_prcmu_modem_reset(void) {}
-
-static inline void db8500_prcmu_system_reset(u16 reset_code) {}
-
-static inline int db8500_prcmu_set_power_state(u8 state, bool keep_ulp_clk,
- bool keep_ap_pll)
-{
- return 0;
-}
-
-static inline u8 db8500_prcmu_get_power_state_result(void)
-{
- return 0;
-}
-
-static inline void db8500_prcmu_enable_wakeups(u32 wakeups) {}
-
-static inline int db8500_prcmu_set_epod(u16 epod_id, u8 epod_state)
-{
- return 0;
-}
-
-static inline int db8500_prcmu_request_clock(u8 clock, bool enable)
-{
- return 0;
-}
-
-static inline int db8500_prcmu_set_display_clocks(void)
-{
- return 0;
-}
-
-static inline int db8500_prcmu_disable_dsipll(void)
-{
- return 0;
-}
-
-static inline int db8500_prcmu_enable_dsipll(void)
-{
- return 0;
-}
-
-static inline int db8500_prcmu_config_esram0_deep_sleep(u8 state)
-{
- return 0;
-}
-
-static inline void db8500_prcmu_config_abb_event_readout(u32 abb_events) {}
-
-static inline void db8500_prcmu_get_abb_event_buffer(void __iomem **buf) {}
-
-static inline u16 db8500_prcmu_get_reset_code(void)
-{
- return 0;
-}
-
-static inline int db8500_prcmu_config_a9wdog(u8 num, bool sleep_auto_off)
-{
- return 0;
-}
-
-static inline int db8500_prcmu_enable_a9wdog(u8 id)
-{
- return 0;
-}
-
-static inline int db8500_prcmu_disable_a9wdog(u8 id)
-{
- return 0;
-}
-
-static inline int db8500_prcmu_kick_a9wdog(u8 id)
-{
- return 0;
-}
-
-static inline int db8500_prcmu_load_a9wdog(u8 id, u32 val)
-{
- return 0;
-}
-
-static inline bool db8500_prcmu_is_ac_wake_requested(void)
-{
- return 0;
-}
-
-static inline int db8500_prcmu_set_arm_opp(u8 opp)
-{
- return 0;
-}
-
-static inline int db8500_prcmu_get_arm_opp(void)
-{
- return 0;
-}
-
-static inline u32 db8500_prcmu_read(unsigned int reg)
-{
- return 0;
-}
-
-static inline void db8500_prcmu_write(unsigned int reg, u32 value) {}
-
-static inline void db8500_prcmu_write_masked(unsigned int reg, u32 mask,
- u32 value) {}
-
-#endif /* !CONFIG_MFD_DB8500_PRCMU */
-
-#endif /* __MFD_DB8500_PRCMU_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/dbx500-prcmu.h b/ANDROID_3.4.5/include/linux/mfd/dbx500-prcmu.h
deleted file mode 100644
index d7674eb7..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/dbx500-prcmu.h
+++ /dev/null
@@ -1,915 +0,0 @@
-/*
- * Copyright (C) ST Ericsson SA 2011
- *
- * License Terms: GNU General Public License v2
- *
- * STE Ux500 PRCMU API
- */
-#ifndef __MACH_PRCMU_H
-#define __MACH_PRCMU_H
-
-#include <linux/interrupt.h>
-#include <linux/notifier.h>
-#include <linux/err.h>
-
-/* PRCMU Wakeup defines */
-enum prcmu_wakeup_index {
- PRCMU_WAKEUP_INDEX_RTC,
- PRCMU_WAKEUP_INDEX_RTT0,
- PRCMU_WAKEUP_INDEX_RTT1,
- PRCMU_WAKEUP_INDEX_HSI0,
- PRCMU_WAKEUP_INDEX_HSI1,
- PRCMU_WAKEUP_INDEX_USB,
- PRCMU_WAKEUP_INDEX_ABB,
- PRCMU_WAKEUP_INDEX_ABB_FIFO,
- PRCMU_WAKEUP_INDEX_ARM,
- PRCMU_WAKEUP_INDEX_CD_IRQ,
- NUM_PRCMU_WAKEUP_INDICES
-};
-#define PRCMU_WAKEUP(_name) (BIT(PRCMU_WAKEUP_INDEX_##_name))
-
-/* EPOD (power domain) IDs */
-
-/*
- * DB8500 EPODs
- * - EPOD_ID_SVAMMDSP: power domain for SVA MMDSP
- * - EPOD_ID_SVAPIPE: power domain for SVA pipe
- * - EPOD_ID_SIAMMDSP: power domain for SIA MMDSP
- * - EPOD_ID_SIAPIPE: power domain for SIA pipe
- * - EPOD_ID_SGA: power domain for SGA
- * - EPOD_ID_B2R2_MCDE: power domain for B2R2 and MCDE
- * - EPOD_ID_ESRAM12: power domain for ESRAM 1 and 2
- * - EPOD_ID_ESRAM34: power domain for ESRAM 3 and 4
- * - NUM_EPOD_ID: number of power domains
- *
- * TODO: These should be prefixed.
- */
-#define EPOD_ID_SVAMMDSP 0
-#define EPOD_ID_SVAPIPE 1
-#define EPOD_ID_SIAMMDSP 2
-#define EPOD_ID_SIAPIPE 3
-#define EPOD_ID_SGA 4
-#define EPOD_ID_B2R2_MCDE 5
-#define EPOD_ID_ESRAM12 6
-#define EPOD_ID_ESRAM34 7
-#define NUM_EPOD_ID 8
-
-/*
- * DB5500 EPODs
- */
-#define DB5500_EPOD_ID_BASE 0x0100
-#define DB5500_EPOD_ID_SGA (DB5500_EPOD_ID_BASE + 0)
-#define DB5500_EPOD_ID_HVA (DB5500_EPOD_ID_BASE + 1)
-#define DB5500_EPOD_ID_SIA (DB5500_EPOD_ID_BASE + 2)
-#define DB5500_EPOD_ID_DISP (DB5500_EPOD_ID_BASE + 3)
-#define DB5500_EPOD_ID_ESRAM12 (DB5500_EPOD_ID_BASE + 6)
-#define DB5500_NUM_EPOD_ID 7
-
-/*
- * state definition for EPOD (power domain)
- * - EPOD_STATE_NO_CHANGE: The EPOD should remain unchanged
- * - EPOD_STATE_OFF: The EPOD is switched off
- * - EPOD_STATE_RAMRET: The EPOD is switched off with its internal RAM in
- * retention
- * - EPOD_STATE_ON_CLK_OFF: The EPOD is switched on, clock is still off
- * - EPOD_STATE_ON: Same as above, but with clock enabled
- */
-#define EPOD_STATE_NO_CHANGE 0x00
-#define EPOD_STATE_OFF 0x01
-#define EPOD_STATE_RAMRET 0x02
-#define EPOD_STATE_ON_CLK_OFF 0x03
-#define EPOD_STATE_ON 0x04
-
-/* DB5500 CLKOUT IDs */
-enum {
- DB5500_CLKOUT0 = 0,
- DB5500_CLKOUT1,
-};
-
-/* DB5500 CLKOUTx sources */
-enum {
- DB5500_CLKOUT_REF_CLK_SEL0,
- DB5500_CLKOUT_RTC_CLK0_SEL0,
- DB5500_CLKOUT_ULP_CLK_SEL0,
- DB5500_CLKOUT_STATIC0,
- DB5500_CLKOUT_REFCLK,
- DB5500_CLKOUT_ULPCLK,
- DB5500_CLKOUT_ARMCLK,
- DB5500_CLKOUT_SYSACC0CLK,
- DB5500_CLKOUT_SOC0PLLCLK,
- DB5500_CLKOUT_SOC1PLLCLK,
- DB5500_CLKOUT_DDRPLLCLK,
- DB5500_CLKOUT_TVCLK,
- DB5500_CLKOUT_IRDACLK,
-};
-
-/*
- * CLKOUT sources
- */
-#define PRCMU_CLKSRC_CLK38M 0x00
-#define PRCMU_CLKSRC_ACLK 0x01
-#define PRCMU_CLKSRC_SYSCLK 0x02
-#define PRCMU_CLKSRC_LCDCLK 0x03
-#define PRCMU_CLKSRC_SDMMCCLK 0x04
-#define PRCMU_CLKSRC_TVCLK 0x05
-#define PRCMU_CLKSRC_TIMCLK 0x06
-#define PRCMU_CLKSRC_CLK009 0x07
-/* These are only valid for CLKOUT1: */
-#define PRCMU_CLKSRC_SIAMMDSPCLK 0x40
-#define PRCMU_CLKSRC_I2CCLK 0x41
-#define PRCMU_CLKSRC_MSP02CLK 0x42
-#define PRCMU_CLKSRC_ARMPLL_OBSCLK 0x43
-#define PRCMU_CLKSRC_HSIRXCLK 0x44
-#define PRCMU_CLKSRC_HSITXCLK 0x45
-#define PRCMU_CLKSRC_ARMCLKFIX 0x46
-#define PRCMU_CLKSRC_HDMICLK 0x47
-
-/*
- * Clock identifiers.
- */
-enum prcmu_clock {
- PRCMU_SGACLK,
- PRCMU_UARTCLK,
- PRCMU_MSP02CLK,
- PRCMU_MSP1CLK,
- PRCMU_I2CCLK,
- PRCMU_SDMMCCLK,
- PRCMU_SPARE1CLK,
- PRCMU_SLIMCLK,
- PRCMU_PER1CLK,
- PRCMU_PER2CLK,
- PRCMU_PER3CLK,
- PRCMU_PER5CLK,
- PRCMU_PER6CLK,
- PRCMU_PER7CLK,
- PRCMU_LCDCLK,
- PRCMU_BMLCLK,
- PRCMU_HSITXCLK,
- PRCMU_HSIRXCLK,
- PRCMU_HDMICLK,
- PRCMU_APEATCLK,
- PRCMU_APETRACECLK,
- PRCMU_MCDECLK,
- PRCMU_IPI2CCLK,
- PRCMU_DSIALTCLK,
- PRCMU_DMACLK,
- PRCMU_B2R2CLK,
- PRCMU_TVCLK,
- PRCMU_SSPCLK,
- PRCMU_RNGCLK,
- PRCMU_UICCCLK,
- PRCMU_PWMCLK,
- PRCMU_IRDACLK,
- PRCMU_IRRCCLK,
- PRCMU_SIACLK,
- PRCMU_SVACLK,
- PRCMU_ACLK,
- PRCMU_NUM_REG_CLOCKS,
- PRCMU_SYSCLK = PRCMU_NUM_REG_CLOCKS,
- PRCMU_CDCLK,
- PRCMU_TIMCLK,
- PRCMU_PLLSOC0,
- PRCMU_PLLSOC1,
- PRCMU_PLLDDR,
- PRCMU_PLLDSI,
- PRCMU_DSI0CLK,
- PRCMU_DSI1CLK,
- PRCMU_DSI0ESCCLK,
- PRCMU_DSI1ESCCLK,
- PRCMU_DSI2ESCCLK,
-};
-
-/**
- * enum ape_opp - APE OPP states definition
- * @APE_OPP_INIT:
- * @APE_NO_CHANGE: The APE operating point is unchanged
- * @APE_100_OPP: The new APE operating point is ape100opp
- * @APE_50_OPP: 50%
- * @APE_50_PARTLY_25_OPP: 50%, except some clocks at 25%.
- */
-enum ape_opp {
- APE_OPP_INIT = 0x00,
- APE_NO_CHANGE = 0x01,
- APE_100_OPP = 0x02,
- APE_50_OPP = 0x03,
- APE_50_PARTLY_25_OPP = 0xFF,
-};
-
-/**
- * enum arm_opp - ARM OPP states definition
- * @ARM_OPP_INIT:
- * @ARM_NO_CHANGE: The ARM operating point is unchanged
- * @ARM_100_OPP: The new ARM operating point is arm100opp
- * @ARM_50_OPP: The new ARM operating point is arm50opp
- * @ARM_MAX_OPP: Operating point is "max" (more than 100)
- * @ARM_MAX_FREQ100OPP: Set max opp if available, else 100
- * @ARM_EXTCLK: The new ARM operating point is armExtClk
- */
-enum arm_opp {
- ARM_OPP_INIT = 0x00,
- ARM_NO_CHANGE = 0x01,
- ARM_100_OPP = 0x02,
- ARM_50_OPP = 0x03,
- ARM_MAX_OPP = 0x04,
- ARM_MAX_FREQ100OPP = 0x05,
- ARM_EXTCLK = 0x07
-};
-
-/**
- * enum ddr_opp - DDR OPP states definition
- * @DDR_100_OPP: The new DDR operating point is ddr100opp
- * @DDR_50_OPP: The new DDR operating point is ddr50opp
- * @DDR_25_OPP: The new DDR operating point is ddr25opp
- */
-enum ddr_opp {
- DDR_100_OPP = 0x00,
- DDR_50_OPP = 0x01,
- DDR_25_OPP = 0x02,
-};
-
-/*
- * Definitions for controlling ESRAM0 in deep sleep.
- */
-#define ESRAM0_DEEP_SLEEP_STATE_OFF 1
-#define ESRAM0_DEEP_SLEEP_STATE_RET 2
-
-/**
- * enum ddr_pwrst - DDR power states definition
- * @DDR_PWR_STATE_UNCHANGED: SDRAM and DDR controller state is unchanged
- * @DDR_PWR_STATE_ON:
- * @DDR_PWR_STATE_OFFLOWLAT:
- * @DDR_PWR_STATE_OFFHIGHLAT:
- */
-enum ddr_pwrst {
- DDR_PWR_STATE_UNCHANGED = 0x00,
- DDR_PWR_STATE_ON = 0x01,
- DDR_PWR_STATE_OFFLOWLAT = 0x02,
- DDR_PWR_STATE_OFFHIGHLAT = 0x03
-};
-
-#include <linux/mfd/db8500-prcmu.h>
-#include <linux/mfd/db5500-prcmu.h>
-
-#if defined(CONFIG_UX500_SOC_DB8500) || defined(CONFIG_UX500_SOC_DB5500)
-
-#include <mach/id.h>
-
-static inline void __init prcmu_early_init(void)
-{
- if (cpu_is_u5500())
- return db5500_prcmu_early_init();
- else
- return db8500_prcmu_early_init();
-}
-
-static inline int prcmu_set_power_state(u8 state, bool keep_ulp_clk,
- bool keep_ap_pll)
-{
- if (cpu_is_u5500())
- return db5500_prcmu_set_power_state(state, keep_ulp_clk,
- keep_ap_pll);
- else
- return db8500_prcmu_set_power_state(state, keep_ulp_clk,
- keep_ap_pll);
-}
-
-static inline u8 prcmu_get_power_state_result(void)
-{
- if (cpu_is_u5500())
- return -EINVAL;
- else
- return db8500_prcmu_get_power_state_result();
-}
-
-static inline int prcmu_gic_decouple(void)
-{
- if (cpu_is_u5500())
- return -EINVAL;
- else
- return db8500_prcmu_gic_decouple();
-}
-
-static inline int prcmu_gic_recouple(void)
-{
- if (cpu_is_u5500())
- return -EINVAL;
- else
- return db8500_prcmu_gic_recouple();
-}
-
-static inline bool prcmu_gic_pending_irq(void)
-{
- if (cpu_is_u5500())
- return -EINVAL;
- else
- return db8500_prcmu_gic_pending_irq();
-}
-
-static inline bool prcmu_is_cpu_in_wfi(int cpu)
-{
- if (cpu_is_u5500())
- return -EINVAL;
- else
- return db8500_prcmu_is_cpu_in_wfi(cpu);
-}
-
-static inline int prcmu_copy_gic_settings(void)
-{
- if (cpu_is_u5500())
- return -EINVAL;
- else
- return db8500_prcmu_copy_gic_settings();
-}
-
-static inline bool prcmu_pending_irq(void)
-{
- if (cpu_is_u5500())
- return -EINVAL;
- else
- return db8500_prcmu_pending_irq();
-}
-
-static inline int prcmu_set_epod(u16 epod_id, u8 epod_state)
-{
- if (cpu_is_u5500())
- return -EINVAL;
- else
- return db8500_prcmu_set_epod(epod_id, epod_state);
-}
-
-static inline void prcmu_enable_wakeups(u32 wakeups)
-{
- if (cpu_is_u5500())
- db5500_prcmu_enable_wakeups(wakeups);
- else
- db8500_prcmu_enable_wakeups(wakeups);
-}
-
-static inline void prcmu_disable_wakeups(void)
-{
- prcmu_enable_wakeups(0);
-}
-
-static inline void prcmu_config_abb_event_readout(u32 abb_events)
-{
- if (cpu_is_u5500())
- db5500_prcmu_config_abb_event_readout(abb_events);
- else
- db8500_prcmu_config_abb_event_readout(abb_events);
-}
-
-static inline void prcmu_get_abb_event_buffer(void __iomem **buf)
-{
- if (cpu_is_u5500())
- db5500_prcmu_get_abb_event_buffer(buf);
- else
- db8500_prcmu_get_abb_event_buffer(buf);
-}
-
-int prcmu_abb_read(u8 slave, u8 reg, u8 *value, u8 size);
-int prcmu_abb_write(u8 slave, u8 reg, u8 *value, u8 size);
-int prcmu_abb_write_masked(u8 slave, u8 reg, u8 *value, u8 *mask, u8 size);
-
-int prcmu_config_clkout(u8 clkout, u8 source, u8 div);
-
-static inline int prcmu_request_clock(u8 clock, bool enable)
-{
- if (cpu_is_u5500())
- return db5500_prcmu_request_clock(clock, enable);
- else
- return db8500_prcmu_request_clock(clock, enable);
-}
-
-unsigned long prcmu_clock_rate(u8 clock);
-long prcmu_round_clock_rate(u8 clock, unsigned long rate);
-int prcmu_set_clock_rate(u8 clock, unsigned long rate);
-
-static inline int prcmu_set_ddr_opp(u8 opp)
-{
- if (cpu_is_u5500())
- return -EINVAL;
- else
- return db8500_prcmu_set_ddr_opp(opp);
-}
-static inline int prcmu_get_ddr_opp(void)
-{
- if (cpu_is_u5500())
- return -EINVAL;
- else
- return db8500_prcmu_get_ddr_opp();
-}
-
-static inline int prcmu_set_arm_opp(u8 opp)
-{
- if (cpu_is_u5500())
- return -EINVAL;
- else
- return db8500_prcmu_set_arm_opp(opp);
-}
-
-static inline int prcmu_get_arm_opp(void)
-{
- if (cpu_is_u5500())
- return -EINVAL;
- else
- return db8500_prcmu_get_arm_opp();
-}
-
-static inline int prcmu_set_ape_opp(u8 opp)
-{
- if (cpu_is_u5500())
- return -EINVAL;
- else
- return db8500_prcmu_set_ape_opp(opp);
-}
-
-static inline int prcmu_get_ape_opp(void)
-{
- if (cpu_is_u5500())
- return -EINVAL;
- else
- return db8500_prcmu_get_ape_opp();
-}
-
-static inline void prcmu_system_reset(u16 reset_code)
-{
- if (cpu_is_u5500())
- return db5500_prcmu_system_reset(reset_code);
- else
- return db8500_prcmu_system_reset(reset_code);
-}
-
-static inline u16 prcmu_get_reset_code(void)
-{
- if (cpu_is_u5500())
- return db5500_prcmu_get_reset_code();
- else
- return db8500_prcmu_get_reset_code();
-}
-
-void prcmu_ac_wake_req(void);
-void prcmu_ac_sleep_req(void);
-static inline void prcmu_modem_reset(void)
-{
- if (cpu_is_u5500())
- return;
- else
- return db8500_prcmu_modem_reset();
-}
-
-static inline bool prcmu_is_ac_wake_requested(void)
-{
- if (cpu_is_u5500())
- return db5500_prcmu_is_ac_wake_requested();
- else
- return db8500_prcmu_is_ac_wake_requested();
-}
-
-static inline int prcmu_set_display_clocks(void)
-{
- if (cpu_is_u5500())
- return db5500_prcmu_set_display_clocks();
- else
- return db8500_prcmu_set_display_clocks();
-}
-
-static inline int prcmu_disable_dsipll(void)
-{
- if (cpu_is_u5500())
- return db5500_prcmu_disable_dsipll();
- else
- return db8500_prcmu_disable_dsipll();
-}
-
-static inline int prcmu_enable_dsipll(void)
-{
- if (cpu_is_u5500())
- return db5500_prcmu_enable_dsipll();
- else
- return db8500_prcmu_enable_dsipll();
-}
-
-static inline int prcmu_config_esram0_deep_sleep(u8 state)
-{
- if (cpu_is_u5500())
- return -EINVAL;
- else
- return db8500_prcmu_config_esram0_deep_sleep(state);
-}
-
-static inline int prcmu_config_hotdog(u8 threshold)
-{
- if (cpu_is_u5500())
- return -EINVAL;
- else
- return db8500_prcmu_config_hotdog(threshold);
-}
-
-static inline int prcmu_config_hotmon(u8 low, u8 high)
-{
- if (cpu_is_u5500())
- return -EINVAL;
- else
- return db8500_prcmu_config_hotmon(low, high);
-}
-
-static inline int prcmu_start_temp_sense(u16 cycles32k)
-{
- if (cpu_is_u5500())
- return -EINVAL;
- else
- return db8500_prcmu_start_temp_sense(cycles32k);
-}
-
-static inline int prcmu_stop_temp_sense(void)
-{
- if (cpu_is_u5500())
- return -EINVAL;
- else
- return db8500_prcmu_stop_temp_sense();
-}
-
-static inline u32 prcmu_read(unsigned int reg)
-{
- if (cpu_is_u5500())
- return -EINVAL;
- else
- return db8500_prcmu_read(reg);
-}
-
-static inline void prcmu_write(unsigned int reg, u32 value)
-{
- if (cpu_is_u5500())
- return;
- else
- db8500_prcmu_write(reg, value);
-}
-
-static inline void prcmu_write_masked(unsigned int reg, u32 mask, u32 value)
-{
- if (cpu_is_u5500())
- return;
- else
- db8500_prcmu_write_masked(reg, mask, value);
-}
-
-static inline int prcmu_enable_a9wdog(u8 id)
-{
- if (cpu_is_u5500())
- return -EINVAL;
- else
- return db8500_prcmu_enable_a9wdog(id);
-}
-
-static inline int prcmu_disable_a9wdog(u8 id)
-{
- if (cpu_is_u5500())
- return -EINVAL;
- else
- return db8500_prcmu_disable_a9wdog(id);
-}
-
-static inline int prcmu_kick_a9wdog(u8 id)
-{
- if (cpu_is_u5500())
- return -EINVAL;
- else
- return db8500_prcmu_kick_a9wdog(id);
-}
-
-static inline int prcmu_load_a9wdog(u8 id, u32 timeout)
-{
- if (cpu_is_u5500())
- return -EINVAL;
- else
- return db8500_prcmu_load_a9wdog(id, timeout);
-}
-
-static inline int prcmu_config_a9wdog(u8 num, bool sleep_auto_off)
-{
- if (cpu_is_u5500())
- return -EINVAL;
- else
- return db8500_prcmu_config_a9wdog(num, sleep_auto_off);
-}
-#else
-
-static inline void __init prcmu_early_init(void) {}
-
-static inline int prcmu_set_power_state(u8 state, bool keep_ulp_clk,
- bool keep_ap_pll)
-{
- return 0;
-}
-
-static inline int prcmu_set_epod(u16 epod_id, u8 epod_state)
-{
- return 0;
-}
-
-static inline void prcmu_enable_wakeups(u32 wakeups) {}
-
-static inline void prcmu_disable_wakeups(void) {}
-
-static inline int prcmu_abb_read(u8 slave, u8 reg, u8 *value, u8 size)
-{
- return -ENOSYS;
-}
-
-static inline int prcmu_abb_write(u8 slave, u8 reg, u8 *value, u8 size)
-{
- return -ENOSYS;
-}
-
-static inline int prcmu_abb_write_masked(u8 slave, u8 reg, u8 *value, u8 *mask,
- u8 size)
-{
- return -ENOSYS;
-}
-
-static inline int prcmu_config_clkout(u8 clkout, u8 source, u8 div)
-{
- return 0;
-}
-
-static inline int prcmu_request_clock(u8 clock, bool enable)
-{
- return 0;
-}
-
-static inline long prcmu_round_clock_rate(u8 clock, unsigned long rate)
-{
- return 0;
-}
-
-static inline int prcmu_set_clock_rate(u8 clock, unsigned long rate)
-{
- return 0;
-}
-
-static inline unsigned long prcmu_clock_rate(u8 clock)
-{
- return 0;
-}
-
-static inline int prcmu_set_ape_opp(u8 opp)
-{
- return 0;
-}
-
-static inline int prcmu_get_ape_opp(void)
-{
- return APE_100_OPP;
-}
-
-static inline int prcmu_set_arm_opp(u8 opp)
-{
- return 0;
-}
-
-static inline int prcmu_get_arm_opp(void)
-{
- return ARM_100_OPP;
-}
-
-static inline int prcmu_set_ddr_opp(u8 opp)
-{
- return 0;
-}
-
-static inline int prcmu_get_ddr_opp(void)
-{
- return DDR_100_OPP;
-}
-
-static inline void prcmu_system_reset(u16 reset_code) {}
-
-static inline u16 prcmu_get_reset_code(void)
-{
- return 0;
-}
-
-static inline void prcmu_ac_wake_req(void) {}
-
-static inline void prcmu_ac_sleep_req(void) {}
-
-static inline void prcmu_modem_reset(void) {}
-
-static inline bool prcmu_is_ac_wake_requested(void)
-{
- return false;
-}
-
-static inline int prcmu_set_display_clocks(void)
-{
- return 0;
-}
-
-static inline int prcmu_disable_dsipll(void)
-{
- return 0;
-}
-
-static inline int prcmu_enable_dsipll(void)
-{
- return 0;
-}
-
-static inline int prcmu_config_esram0_deep_sleep(u8 state)
-{
- return 0;
-}
-
-static inline void prcmu_config_abb_event_readout(u32 abb_events) {}
-
-static inline void prcmu_get_abb_event_buffer(void __iomem **buf)
-{
- *buf = NULL;
-}
-
-static inline int prcmu_config_hotdog(u8 threshold)
-{
- return 0;
-}
-
-static inline int prcmu_config_hotmon(u8 low, u8 high)
-{
- return 0;
-}
-
-static inline int prcmu_start_temp_sense(u16 cycles32k)
-{
- return 0;
-}
-
-static inline int prcmu_stop_temp_sense(void)
-{
- return 0;
-}
-
-static inline u32 prcmu_read(unsigned int reg)
-{
- return 0;
-}
-
-static inline void prcmu_write(unsigned int reg, u32 value) {}
-
-static inline void prcmu_write_masked(unsigned int reg, u32 mask, u32 value) {}
-
-#endif
-
-static inline void prcmu_set(unsigned int reg, u32 bits)
-{
- prcmu_write_masked(reg, bits, bits);
-}
-
-static inline void prcmu_clear(unsigned int reg, u32 bits)
-{
- prcmu_write_masked(reg, bits, 0);
-}
-
-#if defined(CONFIG_UX500_SOC_DB8500) || defined(CONFIG_UX500_SOC_DB5500)
-
-/**
- * prcmu_enable_spi2 - Enables pin muxing for SPI2 on OtherAlternateC1.
- */
-static inline void prcmu_enable_spi2(void)
-{
- if (cpu_is_u8500())
- prcmu_set(DB8500_PRCM_GPIOCR, DB8500_PRCM_GPIOCR_SPI2_SELECT);
-}
-
-/**
- * prcmu_disable_spi2 - Disables pin muxing for SPI2 on OtherAlternateC1.
- */
-static inline void prcmu_disable_spi2(void)
-{
- if (cpu_is_u8500())
- prcmu_clear(DB8500_PRCM_GPIOCR, DB8500_PRCM_GPIOCR_SPI2_SELECT);
-}
-
-/**
- * prcmu_enable_stm_mod_uart - Enables pin muxing for STMMOD
- * and UARTMOD on OtherAlternateC3.
- */
-static inline void prcmu_enable_stm_mod_uart(void)
-{
- if (cpu_is_u8500()) {
- prcmu_set(DB8500_PRCM_GPIOCR,
- (DB8500_PRCM_GPIOCR_DBG_STM_MOD_CMD1 |
- DB8500_PRCM_GPIOCR_DBG_UARTMOD_CMD0));
- }
-}
-
-/**
- * prcmu_disable_stm_mod_uart - Disables pin muxing for STMMOD
- * and UARTMOD on OtherAlternateC3.
- */
-static inline void prcmu_disable_stm_mod_uart(void)
-{
- if (cpu_is_u8500()) {
- prcmu_clear(DB8500_PRCM_GPIOCR,
- (DB8500_PRCM_GPIOCR_DBG_STM_MOD_CMD1 |
- DB8500_PRCM_GPIOCR_DBG_UARTMOD_CMD0));
- }
-}
-
-/**
- * prcmu_enable_stm_ape - Enables pin muxing for STM APE on OtherAlternateC1.
- */
-static inline void prcmu_enable_stm_ape(void)
-{
- if (cpu_is_u8500()) {
- prcmu_set(DB8500_PRCM_GPIOCR,
- DB8500_PRCM_GPIOCR_DBG_STM_APE_CMD);
- }
-}
-
-/**
- * prcmu_disable_stm_ape - Disables pin muxing for STM APE on OtherAlternateC1.
- */
-static inline void prcmu_disable_stm_ape(void)
-{
- if (cpu_is_u8500()) {
- prcmu_clear(DB8500_PRCM_GPIOCR,
- DB8500_PRCM_GPIOCR_DBG_STM_APE_CMD);
- }
-}
-
-#else
-
-static inline void prcmu_enable_spi2(void) {}
-static inline void prcmu_disable_spi2(void) {}
-static inline void prcmu_enable_stm_mod_uart(void) {}
-static inline void prcmu_disable_stm_mod_uart(void) {}
-static inline void prcmu_enable_stm_ape(void) {}
-static inline void prcmu_disable_stm_ape(void) {}
-
-#endif
-
-/* PRCMU QoS APE OPP class */
-#define PRCMU_QOS_APE_OPP 1
-#define PRCMU_QOS_DDR_OPP 2
-#define PRCMU_QOS_ARM_OPP 3
-#define PRCMU_QOS_DEFAULT_VALUE -1
-
-#ifdef CONFIG_DBX500_PRCMU_QOS_POWER
-
-unsigned long prcmu_qos_get_cpufreq_opp_delay(void);
-void prcmu_qos_set_cpufreq_opp_delay(unsigned long);
-void prcmu_qos_force_opp(int, s32);
-int prcmu_qos_requirement(int pm_qos_class);
-int prcmu_qos_add_requirement(int pm_qos_class, char *name, s32 value);
-int prcmu_qos_update_requirement(int pm_qos_class, char *name, s32 new_value);
-void prcmu_qos_remove_requirement(int pm_qos_class, char *name);
-int prcmu_qos_add_notifier(int prcmu_qos_class,
- struct notifier_block *notifier);
-int prcmu_qos_remove_notifier(int prcmu_qos_class,
- struct notifier_block *notifier);
-
-#else
-
-static inline unsigned long prcmu_qos_get_cpufreq_opp_delay(void)
-{
- return 0;
-}
-
-static inline void prcmu_qos_set_cpufreq_opp_delay(unsigned long n) {}
-
-static inline void prcmu_qos_force_opp(int prcmu_qos_class, s32 i) {}
-
-static inline int prcmu_qos_requirement(int prcmu_qos_class)
-{
- return 0;
-}
-
-static inline int prcmu_qos_add_requirement(int prcmu_qos_class,
- char *name, s32 value)
-{
- return 0;
-}
-
-static inline int prcmu_qos_update_requirement(int prcmu_qos_class,
- char *name, s32 new_value)
-{
- return 0;
-}
-
-static inline void prcmu_qos_remove_requirement(int prcmu_qos_class, char *name)
-{
-}
-
-static inline int prcmu_qos_add_notifier(int prcmu_qos_class,
- struct notifier_block *notifier)
-{
- return 0;
-}
-static inline int prcmu_qos_remove_notifier(int prcmu_qos_class,
- struct notifier_block *notifier)
-{
- return 0;
-}
-
-#endif
-
-#endif /* __MACH_PRCMU_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/ds1wm.h b/ANDROID_3.4.5/include/linux/mfd/ds1wm.h
deleted file mode 100644
index 38a372a0..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/ds1wm.h
+++ /dev/null
@@ -1,13 +0,0 @@
-/* MFD cell driver data for the DS1WM driver */
-
-struct ds1wm_driver_data {
- int active_high;
- int clock_rate;
- /* in milliseconds, the amount of time to */
- /* sleep following a reset pulse. Zero */
- /* should work if your bus devices recover*/
- /* time respects the 1-wire spec since the*/
- /* ds1wm implements the precise timings of*/
- /* a reset pulse/presence detect sequence.*/
- unsigned int reset_recover_delay;
-};
diff --git a/ANDROID_3.4.5/include/linux/mfd/ezx-pcap.h b/ANDROID_3.4.5/include/linux/mfd/ezx-pcap.h
deleted file mode 100644
index 40c37216..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/ezx-pcap.h
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
- * Copyright 2009 Daniel Ribeiro <drwyrm@gmail.com>
- *
- * For further information, please see http://wiki.openezx.org/PCAP2
- */
-
-#ifndef EZX_PCAP_H
-#define EZX_PCAP_H
-
-struct pcap_subdev {
- int id;
- const char *name;
- void *platform_data;
-};
-
-struct pcap_platform_data {
- unsigned int irq_base;
- unsigned int config;
- void (*init) (void *); /* board specific init */
- int num_subdevs;
- struct pcap_subdev *subdevs;
-};
-
-struct pcap_chip;
-
-int ezx_pcap_write(struct pcap_chip *, u8, u32);
-int ezx_pcap_read(struct pcap_chip *, u8, u32 *);
-int ezx_pcap_set_bits(struct pcap_chip *, u8, u32, u32);
-int pcap_to_irq(struct pcap_chip *, int);
-int irq_to_pcap(struct pcap_chip *, int);
-int pcap_adc_async(struct pcap_chip *, u8, u32, u8[], void *, void *);
-int pcap_adc_sync(struct pcap_chip *, u8, u32, u8[], u16[]);
-void pcap_set_ts_bits(struct pcap_chip *, u32);
-
-#define PCAP_SECOND_PORT 1
-#define PCAP_CS_AH 2
-
-#define PCAP_REGISTER_WRITE_OP_BIT 0x80000000
-#define PCAP_REGISTER_READ_OP_BIT 0x00000000
-
-#define PCAP_REGISTER_VALUE_MASK 0x01ffffff
-#define PCAP_REGISTER_ADDRESS_MASK 0x7c000000
-#define PCAP_REGISTER_ADDRESS_SHIFT 26
-#define PCAP_REGISTER_NUMBER 32
-#define PCAP_CLEAR_INTERRUPT_REGISTER 0x01ffffff
-#define PCAP_MASK_ALL_INTERRUPT 0x01ffffff
-
-/* registers accessible by both pcap ports */
-#define PCAP_REG_ISR 0x0 /* Interrupt Status */
-#define PCAP_REG_MSR 0x1 /* Interrupt Mask */
-#define PCAP_REG_PSTAT 0x2 /* Processor Status */
-#define PCAP_REG_VREG2 0x6 /* Regulator Bank 2 Control */
-#define PCAP_REG_AUXVREG 0x7 /* Auxiliary Regulator Control */
-#define PCAP_REG_BATT 0x8 /* Battery Control */
-#define PCAP_REG_ADC 0x9 /* AD Control */
-#define PCAP_REG_ADR 0xa /* AD Result */
-#define PCAP_REG_CODEC 0xb /* Audio Codec Control */
-#define PCAP_REG_RX_AMPS 0xc /* RX Audio Amplifiers Control */
-#define PCAP_REG_ST_DAC 0xd /* Stereo DAC Control */
-#define PCAP_REG_BUSCTRL 0x14 /* Connectivity Control */
-#define PCAP_REG_PERIPH 0x15 /* Peripheral Control */
-#define PCAP_REG_LOWPWR 0x18 /* Regulator Low Power Control */
-#define PCAP_REG_TX_AMPS 0x1a /* TX Audio Amplifiers Control */
-#define PCAP_REG_GP 0x1b /* General Purpose */
-#define PCAP_REG_TEST1 0x1c
-#define PCAP_REG_TEST2 0x1d
-#define PCAP_REG_VENDOR_TEST1 0x1e
-#define PCAP_REG_VENDOR_TEST2 0x1f
-
-/* registers accessible by pcap port 1 only (a1200, e2 & e6) */
-#define PCAP_REG_INT_SEL 0x3 /* Interrupt Select */
-#define PCAP_REG_SWCTRL 0x4 /* Switching Regulator Control */
-#define PCAP_REG_VREG1 0x5 /* Regulator Bank 1 Control */
-#define PCAP_REG_RTC_TOD 0xe /* RTC Time of Day */
-#define PCAP_REG_RTC_TODA 0xf /* RTC Time of Day Alarm */
-#define PCAP_REG_RTC_DAY 0x10 /* RTC Day */
-#define PCAP_REG_RTC_DAYA 0x11 /* RTC Day Alarm */
-#define PCAP_REG_MTRTMR 0x12 /* AD Monitor Timer */
-#define PCAP_REG_PWR 0x13 /* Power Control */
-#define PCAP_REG_AUXVREG_MASK 0x16 /* Auxiliary Regulator Mask */
-#define PCAP_REG_VENDOR_REV 0x17
-#define PCAP_REG_PERIPH_MASK 0x19 /* Peripheral Mask */
-
-/* PCAP2 Interrupts */
-#define PCAP_NIRQS 23
-#define PCAP_IRQ_ADCDONE 0 /* ADC done port 1 */
-#define PCAP_IRQ_TS 1 /* Touch Screen */
-#define PCAP_IRQ_1HZ 2 /* 1HZ timer */
-#define PCAP_IRQ_WH 3 /* ADC above high limit */
-#define PCAP_IRQ_WL 4 /* ADC below low limit */
-#define PCAP_IRQ_TODA 5 /* Time of day alarm */
-#define PCAP_IRQ_USB4V 6 /* USB above 4V */
-#define PCAP_IRQ_ONOFF 7 /* On/Off button */
-#define PCAP_IRQ_ONOFF2 8 /* On/Off button 2 */
-#define PCAP_IRQ_USB1V 9 /* USB above 1V */
-#define PCAP_IRQ_MOBPORT 10
-#define PCAP_IRQ_MIC 11 /* Mic attach/HS button */
-#define PCAP_IRQ_HS 12 /* Headset attach */
-#define PCAP_IRQ_ST 13
-#define PCAP_IRQ_PC 14 /* Power Cut */
-#define PCAP_IRQ_WARM 15
-#define PCAP_IRQ_EOL 16 /* Battery End Of Life */
-#define PCAP_IRQ_CLK 17
-#define PCAP_IRQ_SYSRST 18 /* System Reset */
-#define PCAP_IRQ_DUMMY 19
-#define PCAP_IRQ_ADCDONE2 20 /* ADC done port 2 */
-#define PCAP_IRQ_SOFTRESET 21
-#define PCAP_IRQ_MNEXB 22
-
-/* voltage regulators */
-#define V1 0
-#define V2 1
-#define V3 2
-#define V4 3
-#define V5 4
-#define V6 5
-#define V7 6
-#define V8 7
-#define V9 8
-#define V10 9
-#define VAUX1 10
-#define VAUX2 11
-#define VAUX3 12
-#define VAUX4 13
-#define VSIM 14
-#define VSIM2 15
-#define VVIB 16
-#define SW1 17
-#define SW2 18
-#define SW3 19
-#define SW1S 20
-#define SW2S 21
-
-#define PCAP_BATT_DAC_MASK 0x000000ff
-#define PCAP_BATT_DAC_SHIFT 0
-#define PCAP_BATT_B_FDBK (1 << 8)
-#define PCAP_BATT_EXT_ISENSE (1 << 9)
-#define PCAP_BATT_V_COIN_MASK 0x00003c00
-#define PCAP_BATT_V_COIN_SHIFT 10
-#define PCAP_BATT_I_COIN (1 << 14)
-#define PCAP_BATT_COIN_CH_EN (1 << 15)
-#define PCAP_BATT_EOL_SEL_MASK 0x000e0000
-#define PCAP_BATT_EOL_SEL_SHIFT 17
-#define PCAP_BATT_EOL_CMP_EN (1 << 20)
-#define PCAP_BATT_BATT_DET_EN (1 << 21)
-#define PCAP_BATT_THERMBIAS_CTRL (1 << 22)
-
-#define PCAP_ADC_ADEN (1 << 0)
-#define PCAP_ADC_RAND (1 << 1)
-#define PCAP_ADC_AD_SEL1 (1 << 2)
-#define PCAP_ADC_AD_SEL2 (1 << 3)
-#define PCAP_ADC_ADA1_MASK 0x00000070
-#define PCAP_ADC_ADA1_SHIFT 4
-#define PCAP_ADC_ADA2_MASK 0x00000380
-#define PCAP_ADC_ADA2_SHIFT 7
-#define PCAP_ADC_ATO_MASK 0x00003c00
-#define PCAP_ADC_ATO_SHIFT 10
-#define PCAP_ADC_ATOX (1 << 14)
-#define PCAP_ADC_MTR1 (1 << 15)
-#define PCAP_ADC_MTR2 (1 << 16)
-#define PCAP_ADC_TS_M_MASK 0x000e0000
-#define PCAP_ADC_TS_M_SHIFT 17
-#define PCAP_ADC_TS_REF_LOWPWR (1 << 20)
-#define PCAP_ADC_TS_REFENB (1 << 21)
-#define PCAP_ADC_BATT_I_POLARITY (1 << 22)
-#define PCAP_ADC_BATT_I_ADC (1 << 23)
-
-#define PCAP_ADC_BANK_0 0
-#define PCAP_ADC_BANK_1 1
-/* ADC bank 0 */
-#define PCAP_ADC_CH_COIN 0
-#define PCAP_ADC_CH_BATT 1
-#define PCAP_ADC_CH_BPLUS 2
-#define PCAP_ADC_CH_MOBPORTB 3
-#define PCAP_ADC_CH_TEMPERATURE 4
-#define PCAP_ADC_CH_CHARGER_ID 5
-#define PCAP_ADC_CH_AD6 6
-/* ADC bank 1 */
-#define PCAP_ADC_CH_AD7 0
-#define PCAP_ADC_CH_AD8 1
-#define PCAP_ADC_CH_AD9 2
-#define PCAP_ADC_CH_TS_X1 3
-#define PCAP_ADC_CH_TS_X2 4
-#define PCAP_ADC_CH_TS_Y1 5
-#define PCAP_ADC_CH_TS_Y2 6
-
-#define PCAP_ADC_T_NOW 0
-#define PCAP_ADC_T_IN_BURST 1
-#define PCAP_ADC_T_OUT_BURST 2
-
-#define PCAP_ADC_ATO_IN_BURST 6
-#define PCAP_ADC_ATO_OUT_BURST 0
-
-#define PCAP_ADC_TS_M_XY 1
-#define PCAP_ADC_TS_M_PRESSURE 2
-#define PCAP_ADC_TS_M_PLATE_X 3
-#define PCAP_ADC_TS_M_PLATE_Y 4
-#define PCAP_ADC_TS_M_STANDBY 5
-#define PCAP_ADC_TS_M_NONTS 6
-
-#define PCAP_ADR_ADD1_MASK 0x000003ff
-#define PCAP_ADR_ADD1_SHIFT 0
-#define PCAP_ADR_ADD2_MASK 0x000ffc00
-#define PCAP_ADR_ADD2_SHIFT 10
-#define PCAP_ADR_ADINC1 (1 << 20)
-#define PCAP_ADR_ADINC2 (1 << 21)
-#define PCAP_ADR_ASC (1 << 22)
-#define PCAP_ADR_ONESHOT (1 << 23)
-
-#define PCAP_BUSCTRL_FSENB (1 << 0)
-#define PCAP_BUSCTRL_USB_SUSPEND (1 << 1)
-#define PCAP_BUSCTRL_USB_PU (1 << 2)
-#define PCAP_BUSCTRL_USB_PD (1 << 3)
-#define PCAP_BUSCTRL_VUSB_EN (1 << 4)
-#define PCAP_BUSCTRL_USB_PS (1 << 5)
-#define PCAP_BUSCTRL_VUSB_MSTR_EN (1 << 6)
-#define PCAP_BUSCTRL_VBUS_PD_ENB (1 << 7)
-#define PCAP_BUSCTRL_CURRLIM (1 << 8)
-#define PCAP_BUSCTRL_RS232ENB (1 << 9)
-#define PCAP_BUSCTRL_RS232_DIR (1 << 10)
-#define PCAP_BUSCTRL_SE0_CONN (1 << 11)
-#define PCAP_BUSCTRL_USB_PDM (1 << 12)
-#define PCAP_BUSCTRL_BUS_PRI_ADJ (1 << 24)
-
-/* leds */
-#define PCAP_LED0 0
-#define PCAP_LED1 1
-#define PCAP_BL0 2
-#define PCAP_BL1 3
-#define PCAP_LED_3MA 0
-#define PCAP_LED_4MA 1
-#define PCAP_LED_5MA 2
-#define PCAP_LED_9MA 3
-#define PCAP_LED_T_MASK 0xf
-#define PCAP_LED_C_MASK 0x3
-#define PCAP_BL_MASK 0x1f
-#define PCAP_BL0_SHIFT 0
-#define PCAP_LED0_EN (1 << 5)
-#define PCAP_LED1_EN (1 << 6)
-#define PCAP_LED0_T_SHIFT 7
-#define PCAP_LED1_T_SHIFT 11
-#define PCAP_LED0_C_SHIFT 15
-#define PCAP_LED1_C_SHIFT 17
-#define PCAP_BL1_SHIFT 20
-
-/* RTC */
-#define PCAP_RTC_DAY_MASK 0x3fff
-#define PCAP_RTC_TOD_MASK 0xffff
-#define PCAP_RTC_PC_MASK 0x7
-#define SEC_PER_DAY 86400
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/htc-egpio.h b/ANDROID_3.4.5/include/linux/mfd/htc-egpio.h
deleted file mode 100644
index b4201c97..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/htc-egpio.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * HTC simple EGPIO irq and gpio extender
- */
-
-#ifndef __HTC_EGPIO_H__
-#define __HTC_EGPIO_H__
-
-#include <linux/gpio.h>
-
-/* Descriptive values for all-in or all-out htc_egpio_chip descriptors. */
-#define HTC_EGPIO_OUTPUT (~0)
-#define HTC_EGPIO_INPUT 0
-
-/**
- * struct htc_egpio_chip - descriptor to create gpio_chip for register range
- * @reg_start: index of first register
- * @gpio_base: gpio number of first pin in this register range
- * @num_gpios: number of gpios in this register range, max BITS_PER_LONG
- * (number of registers = DIV_ROUND_UP(num_gpios, reg_width))
- * @direction: bitfield, '0' = input, '1' = output,
- */
-struct htc_egpio_chip {
- int reg_start;
- int gpio_base;
- int num_gpios;
- unsigned long direction;
- unsigned long initial_values;
-};
-
-/**
- * struct htc_egpio_platform_data - description provided by the arch
- * @irq_base: beginning of available IRQs (eg, IRQ_BOARD_START)
- * @num_irqs: number of irqs
- * @reg_width: number of bits per register, either 8 or 16 bit
- * @bus_width: alignment of the registers, either 16 or 32 bit
- * @invert_acks: set if chip requires writing '0' to ack an irq, instead of '1'
- * @ack_register: location of the irq/ack register
- * @chip: pointer to array of htc_egpio_chip descriptors
- * @num_chips: number of egpio chip descriptors
- */
-struct htc_egpio_platform_data {
- int bus_width;
- int reg_width;
-
- int irq_base;
- int num_irqs;
- int invert_acks;
- int ack_register;
-
- struct htc_egpio_chip *chip;
- int num_chips;
-};
-
-/* Determine the wakeup irq, to be called during early resume */
-extern int htc_egpio_get_wakeup_irq(struct device *dev);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/htc-pasic3.h b/ANDROID_3.4.5/include/linux/mfd/htc-pasic3.h
deleted file mode 100644
index 3d3ed67b..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/htc-pasic3.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * HTC PASIC3 driver - LEDs and DS1WM
- *
- * Copyright (c) 2007 Philipp Zabel <philipp.zabel@gmail.com>
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file COPYING in the main directory of this archive for
- * more details.
- *
- */
-
-#ifndef __PASIC3_H
-#define __PASIC3_H
-
-#include <linux/platform_device.h>
-#include <linux/leds.h>
-
-extern void pasic3_write_register(struct device *dev, u32 reg, u8 val);
-extern u8 pasic3_read_register(struct device *dev, u32 reg);
-
-/*
- * mask for registers 0x20,0x21,0x22
- */
-#define PASIC3_MASK_LED0 0x04
-#define PASIC3_MASK_LED1 0x08
-#define PASIC3_MASK_LED2 0x40
-
-/*
- * bits in register 0x06
- */
-#define PASIC3_BIT2_LED0 0x08
-#define PASIC3_BIT2_LED1 0x10
-#define PASIC3_BIT2_LED2 0x20
-
-struct pasic3_led {
- struct led_classdev led;
- unsigned int hw_num;
- unsigned int bit2;
- unsigned int mask;
- struct pasic3_leds_machinfo *pdata;
-};
-
-struct pasic3_leds_machinfo {
- unsigned int num_leds;
- unsigned int power_gpio;
- struct pasic3_led *leds;
-};
-
-struct pasic3_platform_data {
- struct pasic3_leds_machinfo *led_pdata;
- unsigned int clock_rate;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/intel_msic.h b/ANDROID_3.4.5/include/linux/mfd/intel_msic.h
deleted file mode 100644
index 439a7a61..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/intel_msic.h
+++ /dev/null
@@ -1,456 +0,0 @@
-/*
- * include/linux/mfd/intel_msic.h - Core interface for Intel MSIC
- *
- * Copyright (C) 2011, Intel Corporation
- * Author: Mika Westerberg <mika.westerberg@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.
- */
-
-#ifndef __LINUX_MFD_INTEL_MSIC_H__
-#define __LINUX_MFD_INTEL_MSIC_H__
-
-/* ID */
-#define INTEL_MSIC_ID0 0x000 /* RO */
-#define INTEL_MSIC_ID1 0x001 /* RO */
-
-/* IRQ */
-#define INTEL_MSIC_IRQLVL1 0x002
-#define INTEL_MSIC_ADC1INT 0x003
-#define INTEL_MSIC_CCINT 0x004
-#define INTEL_MSIC_PWRSRCINT 0x005
-#define INTEL_MSIC_PWRSRCINT1 0x006
-#define INTEL_MSIC_CHRINT 0x007
-#define INTEL_MSIC_CHRINT1 0x008
-#define INTEL_MSIC_RTCIRQ 0x009
-#define INTEL_MSIC_GPIO0LVIRQ 0x00a
-#define INTEL_MSIC_GPIO1LVIRQ 0x00b
-#define INTEL_MSIC_GPIOHVIRQ 0x00c
-#define INTEL_MSIC_VRINT 0x00d
-#define INTEL_MSIC_OCAUDIO 0x00e
-#define INTEL_MSIC_ACCDET 0x00f
-#define INTEL_MSIC_RESETIRQ1 0x010
-#define INTEL_MSIC_RESETIRQ2 0x011
-#define INTEL_MSIC_MADC1INT 0x012
-#define INTEL_MSIC_MCCINT 0x013
-#define INTEL_MSIC_MPWRSRCINT 0x014
-#define INTEL_MSIC_MPWRSRCINT1 0x015
-#define INTEL_MSIC_MCHRINT 0x016
-#define INTEL_MSIC_MCHRINT1 0x017
-#define INTEL_MSIC_RTCIRQMASK 0x018
-#define INTEL_MSIC_GPIO0LVIRQMASK 0x019
-#define INTEL_MSIC_GPIO1LVIRQMASK 0x01a
-#define INTEL_MSIC_GPIOHVIRQMASK 0x01b
-#define INTEL_MSIC_VRINTMASK 0x01c
-#define INTEL_MSIC_OCAUDIOMASK 0x01d
-#define INTEL_MSIC_ACCDETMASK 0x01e
-#define INTEL_MSIC_RESETIRQ1MASK 0x01f
-#define INTEL_MSIC_RESETIRQ2MASK 0x020
-#define INTEL_MSIC_IRQLVL1MSK 0x021
-#define INTEL_MSIC_PBCONFIG 0x03e
-#define INTEL_MSIC_PBSTATUS 0x03f /* RO */
-
-/* GPIO */
-#define INTEL_MSIC_GPIO0LV7CTLO 0x040
-#define INTEL_MSIC_GPIO0LV6CTLO 0x041
-#define INTEL_MSIC_GPIO0LV5CTLO 0x042
-#define INTEL_MSIC_GPIO0LV4CTLO 0x043
-#define INTEL_MSIC_GPIO0LV3CTLO 0x044
-#define INTEL_MSIC_GPIO0LV2CTLO 0x045
-#define INTEL_MSIC_GPIO0LV1CTLO 0x046
-#define INTEL_MSIC_GPIO0LV0CTLO 0x047
-#define INTEL_MSIC_GPIO1LV7CTLOS 0x048
-#define INTEL_MSIC_GPIO1LV6CTLO 0x049
-#define INTEL_MSIC_GPIO1LV5CTLO 0x04a
-#define INTEL_MSIC_GPIO1LV4CTLO 0x04b
-#define INTEL_MSIC_GPIO1LV3CTLO 0x04c
-#define INTEL_MSIC_GPIO1LV2CTLO 0x04d
-#define INTEL_MSIC_GPIO1LV1CTLO 0x04e
-#define INTEL_MSIC_GPIO1LV0CTLO 0x04f
-#define INTEL_MSIC_GPIO0LV7CTLI 0x050
-#define INTEL_MSIC_GPIO0LV6CTLI 0x051
-#define INTEL_MSIC_GPIO0LV5CTLI 0x052
-#define INTEL_MSIC_GPIO0LV4CTLI 0x053
-#define INTEL_MSIC_GPIO0LV3CTLI 0x054
-#define INTEL_MSIC_GPIO0LV2CTLI 0x055
-#define INTEL_MSIC_GPIO0LV1CTLI 0x056
-#define INTEL_MSIC_GPIO0LV0CTLI 0x057
-#define INTEL_MSIC_GPIO1LV7CTLIS 0x058
-#define INTEL_MSIC_GPIO1LV6CTLI 0x059
-#define INTEL_MSIC_GPIO1LV5CTLI 0x05a
-#define INTEL_MSIC_GPIO1LV4CTLI 0x05b
-#define INTEL_MSIC_GPIO1LV3CTLI 0x05c
-#define INTEL_MSIC_GPIO1LV2CTLI 0x05d
-#define INTEL_MSIC_GPIO1LV1CTLI 0x05e
-#define INTEL_MSIC_GPIO1LV0CTLI 0x05f
-#define INTEL_MSIC_PWM0CLKDIV1 0x061
-#define INTEL_MSIC_PWM0CLKDIV0 0x062
-#define INTEL_MSIC_PWM1CLKDIV1 0x063
-#define INTEL_MSIC_PWM1CLKDIV0 0x064
-#define INTEL_MSIC_PWM2CLKDIV1 0x065
-#define INTEL_MSIC_PWM2CLKDIV0 0x066
-#define INTEL_MSIC_PWM0DUTYCYCLE 0x067
-#define INTEL_MSIC_PWM1DUTYCYCLE 0x068
-#define INTEL_MSIC_PWM2DUTYCYCLE 0x069
-#define INTEL_MSIC_GPIO0HV3CTLO 0x06d
-#define INTEL_MSIC_GPIO0HV2CTLO 0x06e
-#define INTEL_MSIC_GPIO0HV1CTLO 0x06f
-#define INTEL_MSIC_GPIO0HV0CTLO 0x070
-#define INTEL_MSIC_GPIO1HV3CTLO 0x071
-#define INTEL_MSIC_GPIO1HV2CTLO 0x072
-#define INTEL_MSIC_GPIO1HV1CTLO 0x073
-#define INTEL_MSIC_GPIO1HV0CTLO 0x074
-#define INTEL_MSIC_GPIO0HV3CTLI 0x075
-#define INTEL_MSIC_GPIO0HV2CTLI 0x076
-#define INTEL_MSIC_GPIO0HV1CTLI 0x077
-#define INTEL_MSIC_GPIO0HV0CTLI 0x078
-#define INTEL_MSIC_GPIO1HV3CTLI 0x079
-#define INTEL_MSIC_GPIO1HV2CTLI 0x07a
-#define INTEL_MSIC_GPIO1HV1CTLI 0x07b
-#define INTEL_MSIC_GPIO1HV0CTLI 0x07c
-
-/* SVID */
-#define INTEL_MSIC_SVIDCTRL0 0x080
-#define INTEL_MSIC_SVIDCTRL1 0x081
-#define INTEL_MSIC_SVIDCTRL2 0x082
-#define INTEL_MSIC_SVIDTXLASTPKT3 0x083 /* RO */
-#define INTEL_MSIC_SVIDTXLASTPKT2 0x084 /* RO */
-#define INTEL_MSIC_SVIDTXLASTPKT1 0x085 /* RO */
-#define INTEL_MSIC_SVIDTXLASTPKT0 0x086 /* RO */
-#define INTEL_MSIC_SVIDPKTOUTBYTE3 0x087
-#define INTEL_MSIC_SVIDPKTOUTBYTE2 0x088
-#define INTEL_MSIC_SVIDPKTOUTBYTE1 0x089
-#define INTEL_MSIC_SVIDPKTOUTBYTE0 0x08a
-#define INTEL_MSIC_SVIDRXVPDEBUG1 0x08b
-#define INTEL_MSIC_SVIDRXVPDEBUG0 0x08c
-#define INTEL_MSIC_SVIDRXLASTPKT3 0x08d /* RO */
-#define INTEL_MSIC_SVIDRXLASTPKT2 0x08e /* RO */
-#define INTEL_MSIC_SVIDRXLASTPKT1 0x08f /* RO */
-#define INTEL_MSIC_SVIDRXLASTPKT0 0x090 /* RO */
-#define INTEL_MSIC_SVIDRXCHKSTATUS3 0x091 /* RO */
-#define INTEL_MSIC_SVIDRXCHKSTATUS2 0x092 /* RO */
-#define INTEL_MSIC_SVIDRXCHKSTATUS1 0x093 /* RO */
-#define INTEL_MSIC_SVIDRXCHKSTATUS0 0x094 /* RO */
-
-/* VREG */
-#define INTEL_MSIC_VCCLATCH 0x0c0
-#define INTEL_MSIC_VNNLATCH 0x0c1
-#define INTEL_MSIC_VCCCNT 0x0c2
-#define INTEL_MSIC_SMPSRAMP 0x0c3
-#define INTEL_MSIC_VNNCNT 0x0c4
-#define INTEL_MSIC_VNNAONCNT 0x0c5
-#define INTEL_MSIC_VCC122AONCNT 0x0c6
-#define INTEL_MSIC_V180AONCNT 0x0c7
-#define INTEL_MSIC_V500CNT 0x0c8
-#define INTEL_MSIC_VIHFCNT 0x0c9
-#define INTEL_MSIC_LDORAMP1 0x0ca
-#define INTEL_MSIC_LDORAMP2 0x0cb
-#define INTEL_MSIC_VCC108AONCNT 0x0cc
-#define INTEL_MSIC_VCC108ASCNT 0x0cd
-#define INTEL_MSIC_VCC108CNT 0x0ce
-#define INTEL_MSIC_VCCA100ASCNT 0x0cf
-#define INTEL_MSIC_VCCA100CNT 0x0d0
-#define INTEL_MSIC_VCC180AONCNT 0x0d1
-#define INTEL_MSIC_VCC180CNT 0x0d2
-#define INTEL_MSIC_VCC330CNT 0x0d3
-#define INTEL_MSIC_VUSB330CNT 0x0d4
-#define INTEL_MSIC_VCCSDIOCNT 0x0d5
-#define INTEL_MSIC_VPROG1CNT 0x0d6
-#define INTEL_MSIC_VPROG2CNT 0x0d7
-#define INTEL_MSIC_VEMMCSCNT 0x0d8
-#define INTEL_MSIC_VEMMC1CNT 0x0d9
-#define INTEL_MSIC_VEMMC2CNT 0x0da
-#define INTEL_MSIC_VAUDACNT 0x0db
-#define INTEL_MSIC_VHSPCNT 0x0dc
-#define INTEL_MSIC_VHSNCNT 0x0dd
-#define INTEL_MSIC_VHDMICNT 0x0de
-#define INTEL_MSIC_VOTGCNT 0x0df
-#define INTEL_MSIC_V1P35CNT 0x0e0
-#define INTEL_MSIC_V330AONCNT 0x0e1
-
-/* RESET */
-#define INTEL_MSIC_CHIPCNTRL 0x100 /* WO */
-#define INTEL_MSIC_ERCONFIG 0x101
-
-/* BURST */
-#define INTEL_MSIC_BATCURRENTLIMIT12 0x102
-#define INTEL_MSIC_BATTIMELIMIT12 0x103
-#define INTEL_MSIC_BATTIMELIMIT3 0x104
-#define INTEL_MSIC_BATTIMEDB 0x105
-#define INTEL_MSIC_BRSTCONFIGOUTPUTS 0x106
-#define INTEL_MSIC_BRSTCONFIGACTIONS 0x107
-#define INTEL_MSIC_BURSTCONTROLSTATUS 0x108
-
-/* RTC */
-#define INTEL_MSIC_RTCB1 0x140 /* RO */
-#define INTEL_MSIC_RTCB2 0x141 /* RO */
-#define INTEL_MSIC_RTCB3 0x142 /* RO */
-#define INTEL_MSIC_RTCB4 0x143 /* RO */
-#define INTEL_MSIC_RTCOB1 0x144
-#define INTEL_MSIC_RTCOB2 0x145
-#define INTEL_MSIC_RTCOB3 0x146
-#define INTEL_MSIC_RTCOB4 0x147
-#define INTEL_MSIC_RTCAB1 0x148
-#define INTEL_MSIC_RTCAB2 0x149
-#define INTEL_MSIC_RTCAB3 0x14a
-#define INTEL_MSIC_RTCAB4 0x14b
-#define INTEL_MSIC_RTCWAB1 0x14c
-#define INTEL_MSIC_RTCWAB2 0x14d
-#define INTEL_MSIC_RTCWAB3 0x14e
-#define INTEL_MSIC_RTCWAB4 0x14f
-#define INTEL_MSIC_RTCSC1 0x150
-#define INTEL_MSIC_RTCSC2 0x151
-#define INTEL_MSIC_RTCSC3 0x152
-#define INTEL_MSIC_RTCSC4 0x153
-#define INTEL_MSIC_RTCSTATUS 0x154 /* RO */
-#define INTEL_MSIC_RTCCONFIG1 0x155
-#define INTEL_MSIC_RTCCONFIG2 0x156
-
-/* CHARGER */
-#define INTEL_MSIC_BDTIMER 0x180
-#define INTEL_MSIC_BATTRMV 0x181
-#define INTEL_MSIC_VBUSDET 0x182
-#define INTEL_MSIC_VBUSDET1 0x183
-#define INTEL_MSIC_ADPHVDET 0x184
-#define INTEL_MSIC_ADPLVDET 0x185
-#define INTEL_MSIC_ADPDETDBDM 0x186
-#define INTEL_MSIC_LOWBATTDET 0x187
-#define INTEL_MSIC_CHRCTRL 0x188
-#define INTEL_MSIC_CHRCVOLTAGE 0x189
-#define INTEL_MSIC_CHRCCURRENT 0x18a
-#define INTEL_MSIC_SPCHARGER 0x18b
-#define INTEL_MSIC_CHRTTIME 0x18c
-#define INTEL_MSIC_CHRCTRL1 0x18d
-#define INTEL_MSIC_PWRSRCLMT 0x18e
-#define INTEL_MSIC_CHRSTWDT 0x18f
-#define INTEL_MSIC_WDTWRITE 0x190 /* WO */
-#define INTEL_MSIC_CHRSAFELMT 0x191
-#define INTEL_MSIC_SPWRSRCINT 0x192 /* RO */
-#define INTEL_MSIC_SPWRSRCINT1 0x193 /* RO */
-#define INTEL_MSIC_CHRLEDPWM 0x194
-#define INTEL_MSIC_CHRLEDCTRL 0x195
-
-/* ADC */
-#define INTEL_MSIC_ADC1CNTL1 0x1c0
-#define INTEL_MSIC_ADC1CNTL2 0x1c1
-#define INTEL_MSIC_ADC1CNTL3 0x1c2
-#define INTEL_MSIC_ADC1OFFSETH 0x1c3 /* RO */
-#define INTEL_MSIC_ADC1OFFSETL 0x1c4 /* RO */
-#define INTEL_MSIC_ADC1ADDR0 0x1c5
-#define INTEL_MSIC_ADC1ADDR1 0x1c6
-#define INTEL_MSIC_ADC1ADDR2 0x1c7
-#define INTEL_MSIC_ADC1ADDR3 0x1c8
-#define INTEL_MSIC_ADC1ADDR4 0x1c9
-#define INTEL_MSIC_ADC1ADDR5 0x1ca
-#define INTEL_MSIC_ADC1ADDR6 0x1cb
-#define INTEL_MSIC_ADC1ADDR7 0x1cc
-#define INTEL_MSIC_ADC1ADDR8 0x1cd
-#define INTEL_MSIC_ADC1ADDR9 0x1ce
-#define INTEL_MSIC_ADC1ADDR10 0x1cf
-#define INTEL_MSIC_ADC1ADDR11 0x1d0
-#define INTEL_MSIC_ADC1ADDR12 0x1d1
-#define INTEL_MSIC_ADC1ADDR13 0x1d2
-#define INTEL_MSIC_ADC1ADDR14 0x1d3
-#define INTEL_MSIC_ADC1SNS0H 0x1d4 /* RO */
-#define INTEL_MSIC_ADC1SNS0L 0x1d5 /* RO */
-#define INTEL_MSIC_ADC1SNS1H 0x1d6 /* RO */
-#define INTEL_MSIC_ADC1SNS1L 0x1d7 /* RO */
-#define INTEL_MSIC_ADC1SNS2H 0x1d8 /* RO */
-#define INTEL_MSIC_ADC1SNS2L 0x1d9 /* RO */
-#define INTEL_MSIC_ADC1SNS3H 0x1da /* RO */
-#define INTEL_MSIC_ADC1SNS3L 0x1db /* RO */
-#define INTEL_MSIC_ADC1SNS4H 0x1dc /* RO */
-#define INTEL_MSIC_ADC1SNS4L 0x1dd /* RO */
-#define INTEL_MSIC_ADC1SNS5H 0x1de /* RO */
-#define INTEL_MSIC_ADC1SNS5L 0x1df /* RO */
-#define INTEL_MSIC_ADC1SNS6H 0x1e0 /* RO */
-#define INTEL_MSIC_ADC1SNS6L 0x1e1 /* RO */
-#define INTEL_MSIC_ADC1SNS7H 0x1e2 /* RO */
-#define INTEL_MSIC_ADC1SNS7L 0x1e3 /* RO */
-#define INTEL_MSIC_ADC1SNS8H 0x1e4 /* RO */
-#define INTEL_MSIC_ADC1SNS8L 0x1e5 /* RO */
-#define INTEL_MSIC_ADC1SNS9H 0x1e6 /* RO */
-#define INTEL_MSIC_ADC1SNS9L 0x1e7 /* RO */
-#define INTEL_MSIC_ADC1SNS10H 0x1e8 /* RO */
-#define INTEL_MSIC_ADC1SNS10L 0x1e9 /* RO */
-#define INTEL_MSIC_ADC1SNS11H 0x1ea /* RO */
-#define INTEL_MSIC_ADC1SNS11L 0x1eb /* RO */
-#define INTEL_MSIC_ADC1SNS12H 0x1ec /* RO */
-#define INTEL_MSIC_ADC1SNS12L 0x1ed /* RO */
-#define INTEL_MSIC_ADC1SNS13H 0x1ee /* RO */
-#define INTEL_MSIC_ADC1SNS13L 0x1ef /* RO */
-#define INTEL_MSIC_ADC1SNS14H 0x1f0 /* RO */
-#define INTEL_MSIC_ADC1SNS14L 0x1f1 /* RO */
-#define INTEL_MSIC_ADC1BV0H 0x1f2 /* RO */
-#define INTEL_MSIC_ADC1BV0L 0x1f3 /* RO */
-#define INTEL_MSIC_ADC1BV1H 0x1f4 /* RO */
-#define INTEL_MSIC_ADC1BV1L 0x1f5 /* RO */
-#define INTEL_MSIC_ADC1BV2H 0x1f6 /* RO */
-#define INTEL_MSIC_ADC1BV2L 0x1f7 /* RO */
-#define INTEL_MSIC_ADC1BV3H 0x1f8 /* RO */
-#define INTEL_MSIC_ADC1BV3L 0x1f9 /* RO */
-#define INTEL_MSIC_ADC1BI0H 0x1fa /* RO */
-#define INTEL_MSIC_ADC1BI0L 0x1fb /* RO */
-#define INTEL_MSIC_ADC1BI1H 0x1fc /* RO */
-#define INTEL_MSIC_ADC1BI1L 0x1fd /* RO */
-#define INTEL_MSIC_ADC1BI2H 0x1fe /* RO */
-#define INTEL_MSIC_ADC1BI2L 0x1ff /* RO */
-#define INTEL_MSIC_ADC1BI3H 0x200 /* RO */
-#define INTEL_MSIC_ADC1BI3L 0x201 /* RO */
-#define INTEL_MSIC_CCCNTL 0x202
-#define INTEL_MSIC_CCOFFSETH 0x203 /* RO */
-#define INTEL_MSIC_CCOFFSETL 0x204 /* RO */
-#define INTEL_MSIC_CCADCHA 0x205 /* RO */
-#define INTEL_MSIC_CCADCLA 0x206 /* RO */
-
-/* AUDIO */
-#define INTEL_MSIC_AUDPLLCTRL 0x240
-#define INTEL_MSIC_DMICBUF0123 0x241
-#define INTEL_MSIC_DMICBUF45 0x242
-#define INTEL_MSIC_DMICGPO 0x244
-#define INTEL_MSIC_DMICMUX 0x245
-#define INTEL_MSIC_DMICCLK 0x246
-#define INTEL_MSIC_MICBIAS 0x247
-#define INTEL_MSIC_ADCCONFIG 0x248
-#define INTEL_MSIC_MICAMP1 0x249
-#define INTEL_MSIC_MICAMP2 0x24a
-#define INTEL_MSIC_NOISEMUX 0x24b
-#define INTEL_MSIC_AUDIOMUX12 0x24c
-#define INTEL_MSIC_AUDIOMUX34 0x24d
-#define INTEL_MSIC_AUDIOSINC 0x24e
-#define INTEL_MSIC_AUDIOTXEN 0x24f
-#define INTEL_MSIC_HSEPRXCTRL 0x250
-#define INTEL_MSIC_IHFRXCTRL 0x251
-#define INTEL_MSIC_VOICETXVOL 0x252
-#define INTEL_MSIC_SIDETONEVOL 0x253
-#define INTEL_MSIC_MUSICSHARVOL 0x254
-#define INTEL_MSIC_VOICETXCTRL 0x255
-#define INTEL_MSIC_HSMIXER 0x256
-#define INTEL_MSIC_DACCONFIG 0x257
-#define INTEL_MSIC_SOFTMUTE 0x258
-#define INTEL_MSIC_HSLVOLCTRL 0x259
-#define INTEL_MSIC_HSRVOLCTRL 0x25a
-#define INTEL_MSIC_IHFLVOLCTRL 0x25b
-#define INTEL_MSIC_IHFRVOLCTRL 0x25c
-#define INTEL_MSIC_DRIVEREN 0x25d
-#define INTEL_MSIC_LINEOUTCTRL 0x25e
-#define INTEL_MSIC_VIB1CTRL1 0x25f
-#define INTEL_MSIC_VIB1CTRL2 0x260
-#define INTEL_MSIC_VIB1CTRL3 0x261
-#define INTEL_MSIC_VIB1SPIPCM_1 0x262
-#define INTEL_MSIC_VIB1SPIPCM_2 0x263
-#define INTEL_MSIC_VIB1CTRL5 0x264
-#define INTEL_MSIC_VIB2CTRL1 0x265
-#define INTEL_MSIC_VIB2CTRL2 0x266
-#define INTEL_MSIC_VIB2CTRL3 0x267
-#define INTEL_MSIC_VIB2SPIPCM_1 0x268
-#define INTEL_MSIC_VIB2SPIPCM_2 0x269
-#define INTEL_MSIC_VIB2CTRL5 0x26a
-#define INTEL_MSIC_BTNCTRL1 0x26b
-#define INTEL_MSIC_BTNCTRL2 0x26c
-#define INTEL_MSIC_PCM1TXSLOT01 0x26d
-#define INTEL_MSIC_PCM1TXSLOT23 0x26e
-#define INTEL_MSIC_PCM1TXSLOT45 0x26f
-#define INTEL_MSIC_PCM1RXSLOT0123 0x270
-#define INTEL_MSIC_PCM1RXSLOT045 0x271
-#define INTEL_MSIC_PCM2TXSLOT01 0x272
-#define INTEL_MSIC_PCM2TXSLOT23 0x273
-#define INTEL_MSIC_PCM2TXSLOT45 0x274
-#define INTEL_MSIC_PCM2RXSLOT01 0x275
-#define INTEL_MSIC_PCM2RXSLOT23 0x276
-#define INTEL_MSIC_PCM2RXSLOT45 0x277
-#define INTEL_MSIC_PCM1CTRL1 0x278
-#define INTEL_MSIC_PCM1CTRL2 0x279
-#define INTEL_MSIC_PCM1CTRL3 0x27a
-#define INTEL_MSIC_PCM2CTRL1 0x27b
-#define INTEL_MSIC_PCM2CTRL2 0x27c
-
-/* HDMI */
-#define INTEL_MSIC_HDMIPUEN 0x280
-#define INTEL_MSIC_HDMISTATUS 0x281 /* RO */
-
-/* Physical address of the start of the MSIC interrupt tree in SRAM */
-#define INTEL_MSIC_IRQ_PHYS_BASE 0xffff7fc0
-
-/**
- * struct intel_msic_gpio_pdata - platform data for the MSIC GPIO driver
- * @gpio_base: base number for the GPIOs
- */
-struct intel_msic_gpio_pdata {
- unsigned gpio_base;
-};
-
-/**
- * struct intel_msic_ocd_pdata - platform data for the MSIC OCD driver
- * @gpio: GPIO number used for OCD interrupts
- *
- * The MSIC MFD driver converts @gpio into an IRQ number and passes it to
- * the OCD driver as %IORESOURCE_IRQ.
- */
-struct intel_msic_ocd_pdata {
- unsigned gpio;
-};
-
-/* MSIC embedded blocks (subdevices) */
-enum intel_msic_block {
- INTEL_MSIC_BLOCK_TOUCH,
- INTEL_MSIC_BLOCK_ADC,
- INTEL_MSIC_BLOCK_BATTERY,
- INTEL_MSIC_BLOCK_GPIO,
- INTEL_MSIC_BLOCK_AUDIO,
- INTEL_MSIC_BLOCK_HDMI,
- INTEL_MSIC_BLOCK_THERMAL,
- INTEL_MSIC_BLOCK_POWER_BTN,
- INTEL_MSIC_BLOCK_OCD,
-
- INTEL_MSIC_BLOCK_LAST,
-};
-
-/**
- * struct intel_msic_platform_data - platform data for the MSIC driver
- * @irq: array of interrupt numbers, one per device. If @irq is set to %0
- * for a given block, the corresponding platform device is not
- * created. For devices which don't have an interrupt, use %0xff
- * (this is same as in SFI spec).
- * @gpio: platform data for the MSIC GPIO driver
- * @ocd: platform data for the MSIC OCD driver
- *
- * Once the MSIC driver is initialized, the register interface is ready to
- * use. All the platform devices for subdevices are created after the
- * register interface is ready so that we can guarantee its availability to
- * the subdevice drivers.
- *
- * Interrupt numbers are passed to the subdevices via %IORESOURCE_IRQ
- * resources of the created platform device.
- */
-struct intel_msic_platform_data {
- int irq[INTEL_MSIC_BLOCK_LAST];
- struct intel_msic_gpio_pdata *gpio;
- struct intel_msic_ocd_pdata *ocd;
-};
-
-struct intel_msic;
-
-extern int intel_msic_reg_read(unsigned short reg, u8 *val);
-extern int intel_msic_reg_write(unsigned short reg, u8 val);
-extern int intel_msic_reg_update(unsigned short reg, u8 val, u8 mask);
-extern int intel_msic_bulk_read(unsigned short *reg, u8 *buf, size_t count);
-extern int intel_msic_bulk_write(unsigned short *reg, u8 *buf, size_t count);
-
-/*
- * pdev_to_intel_msic - gets an MSIC instance from the platform device
- * @pdev: platform device pointer
- *
- * The client drivers need to have pointer to the MSIC instance if they
- * want to call intel_msic_irq_read(). This macro can be used for
- * convenience to get the MSIC pointer from @pdev where needed. This is
- * _only_ valid for devices which are managed by the MSIC.
- */
-#define pdev_to_intel_msic(pdev) (dev_get_drvdata(pdev->dev.parent))
-
-extern int intel_msic_irq_read(struct intel_msic *msic, unsigned short reg,
- u8 *val);
-
-#endif /* __LINUX_MFD_INTEL_MSIC_H__ */
diff --git a/ANDROID_3.4.5/include/linux/mfd/janz.h b/ANDROID_3.4.5/include/linux/mfd/janz.h
deleted file mode 100644
index e9994c46..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/janz.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Common Definitions for Janz MODULbus devices
- *
- * Copyright (c) 2010 Ira W. Snyder <iws@ovro.caltech.edu>
- *
- * 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 JANZ_H
-#define JANZ_H
-
-struct janz_platform_data {
- /* MODULbus Module Number */
- unsigned int modno;
-};
-
-/* PLX bridge chip onboard registers */
-struct janz_cmodio_onboard_regs {
- u8 unused1;
-
- /*
- * Read access: interrupt status
- * Write access: interrupt disable
- */
- u8 int_disable;
- u8 unused2;
-
- /*
- * Read access: MODULbus number (hex switch)
- * Write access: interrupt enable
- */
- u8 int_enable;
- u8 unused3;
-
- /* write-only */
- u8 reset_assert;
- u8 unused4;
-
- /* write-only */
- u8 reset_deassert;
- u8 unused5;
-
- /* read-write access to serial EEPROM */
- u8 eep;
- u8 unused6;
-
- /* write-only access to EEPROM chip select */
- u8 enid;
-};
-
-#endif /* JANZ_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/max8925.h b/ANDROID_3.4.5/include/linux/mfd/max8925.h
deleted file mode 100644
index 15b2392a..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/max8925.h
+++ /dev/null
@@ -1,256 +0,0 @@
-/*
- * Maxim8925 Interface
- *
- * Copyright (C) 2009 Marvell International Ltd.
- * Haojian Zhuang <haojian.zhuang@marvell.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.
- */
-
-#ifndef __LINUX_MFD_MAX8925_H
-#define __LINUX_MFD_MAX8925_H
-
-#include <linux/mutex.h>
-#include <linux/interrupt.h>
-
-/* Unified sub device IDs for MAX8925 */
-enum {
- MAX8925_ID_SD1,
- MAX8925_ID_SD2,
- MAX8925_ID_SD3,
- MAX8925_ID_LDO1,
- MAX8925_ID_LDO2,
- MAX8925_ID_LDO3,
- MAX8925_ID_LDO4,
- MAX8925_ID_LDO5,
- MAX8925_ID_LDO6,
- MAX8925_ID_LDO7,
- MAX8925_ID_LDO8,
- MAX8925_ID_LDO9,
- MAX8925_ID_LDO10,
- MAX8925_ID_LDO11,
- MAX8925_ID_LDO12,
- MAX8925_ID_LDO13,
- MAX8925_ID_LDO14,
- MAX8925_ID_LDO15,
- MAX8925_ID_LDO16,
- MAX8925_ID_LDO17,
- MAX8925_ID_LDO18,
- MAX8925_ID_LDO19,
- MAX8925_ID_LDO20,
- MAX8925_ID_MAX,
-};
-
-enum {
- /*
- * Charging current threshold trigger going from fast charge
- * to TOPOFF charge. From 5% to 20% of fasting charging current.
- */
- MAX8925_TOPOFF_THR_5PER,
- MAX8925_TOPOFF_THR_10PER,
- MAX8925_TOPOFF_THR_15PER,
- MAX8925_TOPOFF_THR_20PER,
-};
-
-enum {
- /* Fast charging current */
- MAX8925_FCHG_85MA,
- MAX8925_FCHG_300MA,
- MAX8925_FCHG_460MA,
- MAX8925_FCHG_600MA,
- MAX8925_FCHG_700MA,
- MAX8925_FCHG_800MA,
- MAX8925_FCHG_900MA,
- MAX8925_FCHG_1000MA,
-};
-
-/* Charger registers */
-#define MAX8925_CHG_IRQ1 (0x7e)
-#define MAX8925_CHG_IRQ2 (0x7f)
-#define MAX8925_CHG_IRQ1_MASK (0x80)
-#define MAX8925_CHG_IRQ2_MASK (0x81)
-#define MAX8925_CHG_STATUS (0x82)
-
-/* GPM registers */
-#define MAX8925_SYSENSEL (0x00)
-#define MAX8925_ON_OFF_IRQ1 (0x01)
-#define MAX8925_ON_OFF_IRQ1_MASK (0x02)
-#define MAX8925_ON_OFF_STATUS (0x03)
-#define MAX8925_ON_OFF_IRQ2 (0x0d)
-#define MAX8925_ON_OFF_IRQ2_MASK (0x0e)
-#define MAX8925_RESET_CNFG (0x0f)
-
-/* Touch registers */
-#define MAX8925_TSC_IRQ (0x00)
-#define MAX8925_TSC_IRQ_MASK (0x01)
-#define MAX8925_TSC_CNFG1 (0x02)
-#define MAX8925_ADC_SCHED (0x10)
-#define MAX8925_ADC_RES_END (0x6f)
-
-#define MAX8925_NREF_OK (1 << 4)
-
-/* RTC registers */
-#define MAX8925_ALARM0_CNTL (0x18)
-#define MAX8925_ALARM1_CNTL (0x19)
-#define MAX8925_RTC_IRQ (0x1c)
-#define MAX8925_RTC_IRQ_MASK (0x1d)
-#define MAX8925_MPL_CNTL (0x1e)
-
-/* WLED registers */
-#define MAX8925_WLED_MODE_CNTL (0x84)
-#define MAX8925_WLED_CNTL (0x85)
-
-/* MAX8925 Registers */
-#define MAX8925_SDCTL1 (0x04)
-#define MAX8925_SDCTL2 (0x07)
-#define MAX8925_SDCTL3 (0x0A)
-#define MAX8925_SDV1 (0x06)
-#define MAX8925_SDV2 (0x09)
-#define MAX8925_SDV3 (0x0C)
-#define MAX8925_LDOCTL1 (0x18)
-#define MAX8925_LDOCTL2 (0x1C)
-#define MAX8925_LDOCTL3 (0x20)
-#define MAX8925_LDOCTL4 (0x24)
-#define MAX8925_LDOCTL5 (0x28)
-#define MAX8925_LDOCTL6 (0x2C)
-#define MAX8925_LDOCTL7 (0x30)
-#define MAX8925_LDOCTL8 (0x34)
-#define MAX8925_LDOCTL9 (0x38)
-#define MAX8925_LDOCTL10 (0x3C)
-#define MAX8925_LDOCTL11 (0x40)
-#define MAX8925_LDOCTL12 (0x44)
-#define MAX8925_LDOCTL13 (0x48)
-#define MAX8925_LDOCTL14 (0x4C)
-#define MAX8925_LDOCTL15 (0x50)
-#define MAX8925_LDOCTL16 (0x10)
-#define MAX8925_LDOCTL17 (0x14)
-#define MAX8925_LDOCTL18 (0x72)
-#define MAX8925_LDOCTL19 (0x5C)
-#define MAX8925_LDOCTL20 (0x9C)
-#define MAX8925_LDOVOUT1 (0x1A)
-#define MAX8925_LDOVOUT2 (0x1E)
-#define MAX8925_LDOVOUT3 (0x22)
-#define MAX8925_LDOVOUT4 (0x26)
-#define MAX8925_LDOVOUT5 (0x2A)
-#define MAX8925_LDOVOUT6 (0x2E)
-#define MAX8925_LDOVOUT7 (0x32)
-#define MAX8925_LDOVOUT8 (0x36)
-#define MAX8925_LDOVOUT9 (0x3A)
-#define MAX8925_LDOVOUT10 (0x3E)
-#define MAX8925_LDOVOUT11 (0x42)
-#define MAX8925_LDOVOUT12 (0x46)
-#define MAX8925_LDOVOUT13 (0x4A)
-#define MAX8925_LDOVOUT14 (0x4E)
-#define MAX8925_LDOVOUT15 (0x52)
-#define MAX8925_LDOVOUT16 (0x12)
-#define MAX8925_LDOVOUT17 (0x16)
-#define MAX8925_LDOVOUT18 (0x74)
-#define MAX8925_LDOVOUT19 (0x5E)
-#define MAX8925_LDOVOUT20 (0x9E)
-
-/* bit definitions */
-#define CHG_IRQ1_MASK (0x07)
-#define CHG_IRQ2_MASK (0xff)
-#define ON_OFF_IRQ1_MASK (0xff)
-#define ON_OFF_IRQ2_MASK (0x03)
-#define TSC_IRQ_MASK (0x03)
-#define RTC_IRQ_MASK (0x0c)
-
-#define MAX8925_MAX_REGULATOR (23)
-
-#define MAX8925_NAME_SIZE (32)
-
-/* IRQ definitions */
-enum {
- MAX8925_IRQ_VCHG_DC_OVP,
- MAX8925_IRQ_VCHG_DC_F,
- MAX8925_IRQ_VCHG_DC_R,
- MAX8925_IRQ_VCHG_THM_OK_R,
- MAX8925_IRQ_VCHG_THM_OK_F,
- MAX8925_IRQ_VCHG_SYSLOW_F,
- MAX8925_IRQ_VCHG_SYSLOW_R,
- MAX8925_IRQ_VCHG_RST,
- MAX8925_IRQ_VCHG_DONE,
- MAX8925_IRQ_VCHG_TOPOFF,
- MAX8925_IRQ_VCHG_TMR_FAULT,
- MAX8925_IRQ_GPM_RSTIN,
- MAX8925_IRQ_GPM_MPL,
- MAX8925_IRQ_GPM_SW_3SEC,
- MAX8925_IRQ_GPM_EXTON_F,
- MAX8925_IRQ_GPM_EXTON_R,
- MAX8925_IRQ_GPM_SW_1SEC,
- MAX8925_IRQ_GPM_SW_F,
- MAX8925_IRQ_GPM_SW_R,
- MAX8925_IRQ_GPM_SYSCKEN_F,
- MAX8925_IRQ_GPM_SYSCKEN_R,
- MAX8925_IRQ_RTC_ALARM1,
- MAX8925_IRQ_RTC_ALARM0,
- MAX8925_IRQ_TSC_STICK,
- MAX8925_IRQ_TSC_NSTICK,
- MAX8925_NR_IRQS,
-};
-
-struct max8925_chip {
- struct device *dev;
- struct i2c_client *i2c;
- struct i2c_client *adc;
- struct i2c_client *rtc;
- struct mutex io_lock;
- struct mutex irq_lock;
-
- int irq_base;
- int core_irq;
- int tsc_irq;
-
- unsigned int wakeup_flag;
-};
-
-struct max8925_backlight_pdata {
- int lxw_scl; /* 0/1 -- 0.8Ohm/0.4Ohm */
- int lxw_freq; /* 700KHz ~ 1400KHz */
- int dual_string; /* 0/1 -- single/dual string */
-};
-
-struct max8925_touch_pdata {
- unsigned int flags;
-};
-
-struct max8925_power_pdata {
- int (*set_charger)(int);
- unsigned batt_detect:1;
- unsigned topoff_threshold:2;
- unsigned fast_charge:3; /* charge current */
- unsigned no_temp_support:1; /* set if no temperature detect */
- unsigned no_insert_detect:1; /* set if no ac insert detect */
- char **supplied_to;
- int num_supplicants;
-};
-
-/*
- * irq_base: stores IRQ base number of MAX8925 in platform
- * tsc_irq: stores IRQ number of MAX8925 TSC
- */
-struct max8925_platform_data {
- struct max8925_backlight_pdata *backlight;
- struct max8925_touch_pdata *touch;
- struct max8925_power_pdata *power;
- struct regulator_init_data *regulator[MAX8925_MAX_REGULATOR];
-
- int irq_base;
- int tsc_irq;
-};
-
-extern int max8925_reg_read(struct i2c_client *, int);
-extern int max8925_reg_write(struct i2c_client *, int, unsigned char);
-extern int max8925_bulk_read(struct i2c_client *, int, int, unsigned char *);
-extern int max8925_bulk_write(struct i2c_client *, int, int, unsigned char *);
-extern int max8925_set_bits(struct i2c_client *, int, unsigned char,
- unsigned char);
-
-extern int max8925_device_init(struct max8925_chip *,
- struct max8925_platform_data *);
-extern void max8925_device_exit(struct max8925_chip *);
-#endif /* __LINUX_MFD_MAX8925_H */
-
diff --git a/ANDROID_3.4.5/include/linux/mfd/max8997-private.h b/ANDROID_3.4.5/include/linux/mfd/max8997-private.h
deleted file mode 100644
index 3f4deb62..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/max8997-private.h
+++ /dev/null
@@ -1,363 +0,0 @@
-/*
- * max8997.h - Voltage regulator driver for the Maxim 8997
- *
- * Copyright (C) 2010 Samsung Electrnoics
- * MyungJoo Ham <myungjoo.ham@samsung.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
- */
-
-#ifndef __LINUX_MFD_MAX8997_PRIV_H
-#define __LINUX_MFD_MAX8997_PRIV_H
-
-#include <linux/i2c.h>
-
-#define MAX8997_REG_INVALID (0xff)
-
-enum max8997_pmic_reg {
- MAX8997_REG_PMIC_ID0 = 0x00,
- MAX8997_REG_PMIC_ID1 = 0x01,
- MAX8997_REG_INTSRC = 0x02,
- MAX8997_REG_INT1 = 0x03,
- MAX8997_REG_INT2 = 0x04,
- MAX8997_REG_INT3 = 0x05,
- MAX8997_REG_INT4 = 0x06,
-
- MAX8997_REG_INT1MSK = 0x08,
- MAX8997_REG_INT2MSK = 0x09,
- MAX8997_REG_INT3MSK = 0x0a,
- MAX8997_REG_INT4MSK = 0x0b,
-
- MAX8997_REG_STATUS1 = 0x0d,
- MAX8997_REG_STATUS2 = 0x0e,
- MAX8997_REG_STATUS3 = 0x0f,
- MAX8997_REG_STATUS4 = 0x10,
-
- MAX8997_REG_MAINCON1 = 0x13,
- MAX8997_REG_MAINCON2 = 0x14,
- MAX8997_REG_BUCKRAMP = 0x15,
-
- MAX8997_REG_BUCK1CTRL = 0x18,
- MAX8997_REG_BUCK1DVS1 = 0x19,
- MAX8997_REG_BUCK1DVS2 = 0x1a,
- MAX8997_REG_BUCK1DVS3 = 0x1b,
- MAX8997_REG_BUCK1DVS4 = 0x1c,
- MAX8997_REG_BUCK1DVS5 = 0x1d,
- MAX8997_REG_BUCK1DVS6 = 0x1e,
- MAX8997_REG_BUCK1DVS7 = 0x1f,
- MAX8997_REG_BUCK1DVS8 = 0x20,
- MAX8997_REG_BUCK2CTRL = 0x21,
- MAX8997_REG_BUCK2DVS1 = 0x22,
- MAX8997_REG_BUCK2DVS2 = 0x23,
- MAX8997_REG_BUCK2DVS3 = 0x24,
- MAX8997_REG_BUCK2DVS4 = 0x25,
- MAX8997_REG_BUCK2DVS5 = 0x26,
- MAX8997_REG_BUCK2DVS6 = 0x27,
- MAX8997_REG_BUCK2DVS7 = 0x28,
- MAX8997_REG_BUCK2DVS8 = 0x29,
- MAX8997_REG_BUCK3CTRL = 0x2a,
- MAX8997_REG_BUCK3DVS = 0x2b,
- MAX8997_REG_BUCK4CTRL = 0x2c,
- MAX8997_REG_BUCK4DVS = 0x2d,
- MAX8997_REG_BUCK5CTRL = 0x2e,
- MAX8997_REG_BUCK5DVS1 = 0x2f,
- MAX8997_REG_BUCK5DVS2 = 0x30,
- MAX8997_REG_BUCK5DVS3 = 0x31,
- MAX8997_REG_BUCK5DVS4 = 0x32,
- MAX8997_REG_BUCK5DVS5 = 0x33,
- MAX8997_REG_BUCK5DVS6 = 0x34,
- MAX8997_REG_BUCK5DVS7 = 0x35,
- MAX8997_REG_BUCK5DVS8 = 0x36,
- MAX8997_REG_BUCK6CTRL = 0x37,
- MAX8997_REG_BUCK6BPSKIPCTRL = 0x38,
- MAX8997_REG_BUCK7CTRL = 0x39,
- MAX8997_REG_BUCK7DVS = 0x3a,
- MAX8997_REG_LDO1CTRL = 0x3b,
- MAX8997_REG_LDO2CTRL = 0x3c,
- MAX8997_REG_LDO3CTRL = 0x3d,
- MAX8997_REG_LDO4CTRL = 0x3e,
- MAX8997_REG_LDO5CTRL = 0x3f,
- MAX8997_REG_LDO6CTRL = 0x40,
- MAX8997_REG_LDO7CTRL = 0x41,
- MAX8997_REG_LDO8CTRL = 0x42,
- MAX8997_REG_LDO9CTRL = 0x43,
- MAX8997_REG_LDO10CTRL = 0x44,
- MAX8997_REG_LDO11CTRL = 0x45,
- MAX8997_REG_LDO12CTRL = 0x46,
- MAX8997_REG_LDO13CTRL = 0x47,
- MAX8997_REG_LDO14CTRL = 0x48,
- MAX8997_REG_LDO15CTRL = 0x49,
- MAX8997_REG_LDO16CTRL = 0x4a,
- MAX8997_REG_LDO17CTRL = 0x4b,
- MAX8997_REG_LDO18CTRL = 0x4c,
- MAX8997_REG_LDO21CTRL = 0x4d,
-
- MAX8997_REG_MBCCTRL1 = 0x50,
- MAX8997_REG_MBCCTRL2 = 0x51,
- MAX8997_REG_MBCCTRL3 = 0x52,
- MAX8997_REG_MBCCTRL4 = 0x53,
- MAX8997_REG_MBCCTRL5 = 0x54,
- MAX8997_REG_MBCCTRL6 = 0x55,
- MAX8997_REG_OTPCGHCVS = 0x56,
-
- MAX8997_REG_SAFEOUTCTRL = 0x5a,
-
- MAX8997_REG_LBCNFG1 = 0x5e,
- MAX8997_REG_LBCNFG2 = 0x5f,
- MAX8997_REG_BBCCTRL = 0x60,
-
- MAX8997_REG_FLASH1_CUR = 0x63, /* 0x63 ~ 0x6e for FLASH */
- MAX8997_REG_FLASH2_CUR = 0x64,
- MAX8997_REG_MOVIE_CUR = 0x65,
- MAX8997_REG_GSMB_CUR = 0x66,
- MAX8997_REG_BOOST_CNTL = 0x67,
- MAX8997_REG_LEN_CNTL = 0x68,
- MAX8997_REG_FLASH_CNTL = 0x69,
- MAX8997_REG_WDT_CNTL = 0x6a,
- MAX8997_REG_MAXFLASH1 = 0x6b,
- MAX8997_REG_MAXFLASH2 = 0x6c,
- MAX8997_REG_FLASHSTATUS = 0x6d,
- MAX8997_REG_FLASHSTATUSMASK = 0x6e,
-
- MAX8997_REG_GPIOCNTL1 = 0x70,
- MAX8997_REG_GPIOCNTL2 = 0x71,
- MAX8997_REG_GPIOCNTL3 = 0x72,
- MAX8997_REG_GPIOCNTL4 = 0x73,
- MAX8997_REG_GPIOCNTL5 = 0x74,
- MAX8997_REG_GPIOCNTL6 = 0x75,
- MAX8997_REG_GPIOCNTL7 = 0x76,
- MAX8997_REG_GPIOCNTL8 = 0x77,
- MAX8997_REG_GPIOCNTL9 = 0x78,
- MAX8997_REG_GPIOCNTL10 = 0x79,
- MAX8997_REG_GPIOCNTL11 = 0x7a,
- MAX8997_REG_GPIOCNTL12 = 0x7b,
-
- MAX8997_REG_LDO1CONFIG = 0x80,
- MAX8997_REG_LDO2CONFIG = 0x81,
- MAX8997_REG_LDO3CONFIG = 0x82,
- MAX8997_REG_LDO4CONFIG = 0x83,
- MAX8997_REG_LDO5CONFIG = 0x84,
- MAX8997_REG_LDO6CONFIG = 0x85,
- MAX8997_REG_LDO7CONFIG = 0x86,
- MAX8997_REG_LDO8CONFIG = 0x87,
- MAX8997_REG_LDO9CONFIG = 0x88,
- MAX8997_REG_LDO10CONFIG = 0x89,
- MAX8997_REG_LDO11CONFIG = 0x8a,
- MAX8997_REG_LDO12CONFIG = 0x8b,
- MAX8997_REG_LDO13CONFIG = 0x8c,
- MAX8997_REG_LDO14CONFIG = 0x8d,
- MAX8997_REG_LDO15CONFIG = 0x8e,
- MAX8997_REG_LDO16CONFIG = 0x8f,
- MAX8997_REG_LDO17CONFIG = 0x90,
- MAX8997_REG_LDO18CONFIG = 0x91,
- MAX8997_REG_LDO21CONFIG = 0x92,
-
- MAX8997_REG_DVSOKTIMER1 = 0x97,
- MAX8997_REG_DVSOKTIMER2 = 0x98,
- MAX8997_REG_DVSOKTIMER4 = 0x99,
- MAX8997_REG_DVSOKTIMER5 = 0x9a,
-
- MAX8997_REG_PMIC_END = 0x9b,
-};
-
-enum max8997_muic_reg {
- MAX8997_MUIC_REG_ID = 0x0,
- MAX8997_MUIC_REG_INT1 = 0x1,
- MAX8997_MUIC_REG_INT2 = 0x2,
- MAX8997_MUIC_REG_INT3 = 0x3,
- MAX8997_MUIC_REG_STATUS1 = 0x4,
- MAX8997_MUIC_REG_STATUS2 = 0x5,
- MAX8997_MUIC_REG_STATUS3 = 0x6,
- MAX8997_MUIC_REG_INTMASK1 = 0x7,
- MAX8997_MUIC_REG_INTMASK2 = 0x8,
- MAX8997_MUIC_REG_INTMASK3 = 0x9,
- MAX8997_MUIC_REG_CDETCTRL = 0xa,
-
- MAX8997_MUIC_REG_CONTROL1 = 0xc,
- MAX8997_MUIC_REG_CONTROL2 = 0xd,
- MAX8997_MUIC_REG_CONTROL3 = 0xe,
-
- MAX8997_MUIC_REG_END = 0xf,
-};
-
-enum max8997_haptic_reg {
- MAX8997_HAPTIC_REG_GENERAL = 0x00,
- MAX8997_HAPTIC_REG_CONF1 = 0x01,
- MAX8997_HAPTIC_REG_CONF2 = 0x02,
- MAX8997_HAPTIC_REG_DRVCONF = 0x03,
- MAX8997_HAPTIC_REG_CYCLECONF1 = 0x04,
- MAX8997_HAPTIC_REG_CYCLECONF2 = 0x05,
- MAX8997_HAPTIC_REG_SIGCONF1 = 0x06,
- MAX8997_HAPTIC_REG_SIGCONF2 = 0x07,
- MAX8997_HAPTIC_REG_SIGCONF3 = 0x08,
- MAX8997_HAPTIC_REG_SIGCONF4 = 0x09,
- MAX8997_HAPTIC_REG_SIGDC1 = 0x0a,
- MAX8997_HAPTIC_REG_SIGDC2 = 0x0b,
- MAX8997_HAPTIC_REG_SIGPWMDC1 = 0x0c,
- MAX8997_HAPTIC_REG_SIGPWMDC2 = 0x0d,
- MAX8997_HAPTIC_REG_SIGPWMDC3 = 0x0e,
- MAX8997_HAPTIC_REG_SIGPWMDC4 = 0x0f,
- MAX8997_HAPTIC_REG_MTR_REV = 0x10,
-
- MAX8997_HAPTIC_REG_END = 0x11,
-};
-
-/* slave addr = 0x0c: using "2nd part" of rev4 datasheet */
-enum max8997_rtc_reg {
- MAX8997_RTC_CTRLMASK = 0x02,
- MAX8997_RTC_CTRL = 0x03,
- MAX8997_RTC_UPDATE1 = 0x04,
- MAX8997_RTC_UPDATE2 = 0x05,
- MAX8997_RTC_WTSR_SMPL = 0x06,
-
- MAX8997_RTC_SEC = 0x10,
- MAX8997_RTC_MIN = 0x11,
- MAX8997_RTC_HOUR = 0x12,
- MAX8997_RTC_DAY_OF_WEEK = 0x13,
- MAX8997_RTC_MONTH = 0x14,
- MAX8997_RTC_YEAR = 0x15,
- MAX8997_RTC_DAY_OF_MONTH = 0x16,
- MAX8997_RTC_ALARM1_SEC = 0x17,
- MAX8997_RTC_ALARM1_MIN = 0x18,
- MAX8997_RTC_ALARM1_HOUR = 0x19,
- MAX8997_RTC_ALARM1_DAY_OF_WEEK = 0x1a,
- MAX8997_RTC_ALARM1_MONTH = 0x1b,
- MAX8997_RTC_ALARM1_YEAR = 0x1c,
- MAX8997_RTC_ALARM1_DAY_OF_MONTH = 0x1d,
- MAX8997_RTC_ALARM2_SEC = 0x1e,
- MAX8997_RTC_ALARM2_MIN = 0x1f,
- MAX8997_RTC_ALARM2_HOUR = 0x20,
- MAX8997_RTC_ALARM2_DAY_OF_WEEK = 0x21,
- MAX8997_RTC_ALARM2_MONTH = 0x22,
- MAX8997_RTC_ALARM2_YEAR = 0x23,
- MAX8997_RTC_ALARM2_DAY_OF_MONTH = 0x24,
-};
-
-enum max8997_irq_source {
- PMIC_INT1 = 0,
- PMIC_INT2,
- PMIC_INT3,
- PMIC_INT4,
-
- FUEL_GAUGE, /* Ignored (MAX17042 driver handles) */
-
- MUIC_INT1,
- MUIC_INT2,
- MUIC_INT3,
-
- GPIO_LOW, /* Not implemented */
- GPIO_HI, /* Not implemented */
-
- FLASH_STATUS, /* Not implemented */
-
- MAX8997_IRQ_GROUP_NR,
-};
-
-enum max8997_irq {
- MAX8997_PMICIRQ_PWRONR,
- MAX8997_PMICIRQ_PWRONF,
- MAX8997_PMICIRQ_PWRON1SEC,
- MAX8997_PMICIRQ_JIGONR,
- MAX8997_PMICIRQ_JIGONF,
- MAX8997_PMICIRQ_LOWBAT2,
- MAX8997_PMICIRQ_LOWBAT1,
-
- MAX8997_PMICIRQ_JIGR,
- MAX8997_PMICIRQ_JIGF,
- MAX8997_PMICIRQ_MR,
- MAX8997_PMICIRQ_DVS1OK,
- MAX8997_PMICIRQ_DVS2OK,
- MAX8997_PMICIRQ_DVS3OK,
- MAX8997_PMICIRQ_DVS4OK,
-
- MAX8997_PMICIRQ_CHGINS,
- MAX8997_PMICIRQ_CHGRM,
- MAX8997_PMICIRQ_DCINOVP,
- MAX8997_PMICIRQ_TOPOFFR,
- MAX8997_PMICIRQ_CHGRSTF,
- MAX8997_PMICIRQ_MBCHGTMEXPD,
-
- MAX8997_PMICIRQ_RTC60S,
- MAX8997_PMICIRQ_RTCA1,
- MAX8997_PMICIRQ_RTCA2,
- MAX8997_PMICIRQ_SMPL_INT,
- MAX8997_PMICIRQ_RTC1S,
- MAX8997_PMICIRQ_WTSR,
-
- MAX8997_MUICIRQ_ADCError,
- MAX8997_MUICIRQ_ADCLow,
- MAX8997_MUICIRQ_ADC,
-
- MAX8997_MUICIRQ_VBVolt,
- MAX8997_MUICIRQ_DBChg,
- MAX8997_MUICIRQ_DCDTmr,
- MAX8997_MUICIRQ_ChgDetRun,
- MAX8997_MUICIRQ_ChgTyp,
-
- MAX8997_MUICIRQ_OVP,
-
- MAX8997_IRQ_NR,
-};
-
-#define MAX8997_NUM_GPIO 12
-struct max8997_dev {
- struct device *dev;
- struct i2c_client *i2c; /* 0xcc / PMIC, Battery Control, and FLASH */
- struct i2c_client *rtc; /* slave addr 0x0c */
- struct i2c_client *haptic; /* slave addr 0x90 */
- struct i2c_client *muic; /* slave addr 0x4a */
- struct mutex iolock;
-
- int type;
- struct platform_device *battery; /* battery control (not fuel gauge) */
-
- int irq;
- int ono;
- int irq_base;
- struct mutex irqlock;
- int irq_masks_cur[MAX8997_IRQ_GROUP_NR];
- int irq_masks_cache[MAX8997_IRQ_GROUP_NR];
-
- /* For hibernation */
- u8 reg_dump[MAX8997_REG_PMIC_END + MAX8997_MUIC_REG_END +
- MAX8997_HAPTIC_REG_END];
-
- bool gpio_status[MAX8997_NUM_GPIO];
-};
-
-enum max8997_types {
- TYPE_MAX8997,
- TYPE_MAX8966,
-};
-
-extern int max8997_irq_init(struct max8997_dev *max8997);
-extern void max8997_irq_exit(struct max8997_dev *max8997);
-extern int max8997_irq_resume(struct max8997_dev *max8997);
-
-extern int max8997_read_reg(struct i2c_client *i2c, u8 reg, u8 *dest);
-extern int max8997_bulk_read(struct i2c_client *i2c, u8 reg, int count,
- u8 *buf);
-extern int max8997_write_reg(struct i2c_client *i2c, u8 reg, u8 value);
-extern int max8997_bulk_write(struct i2c_client *i2c, u8 reg, int count,
- u8 *buf);
-extern int max8997_update_reg(struct i2c_client *i2c, u8 reg, u8 val, u8 mask);
-
-#define MAX8997_GPIO_INT_BOTH (0x3 << 4)
-#define MAX8997_GPIO_INT_RISE (0x2 << 4)
-#define MAX8997_GPIO_INT_FALL (0x1 << 4)
-
-#define MAX8997_GPIO_INT_MASK (0x3 << 4)
-#define MAX8997_GPIO_DATA_MASK (0x1 << 2)
-#endif /* __LINUX_MFD_MAX8997_PRIV_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/max8997.h b/ANDROID_3.4.5/include/linux/mfd/max8997.h
deleted file mode 100644
index 28726dd5..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/max8997.h
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
- * max8997.h - Driver for the Maxim 8997/8966
- *
- * Copyright (C) 2009-2010 Samsung Electrnoics
- * MyungJoo Ham <myungjoo.ham@samsung.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
- *
- * This driver is based on max8998.h
- *
- * MAX8997 has PMIC, MUIC, HAPTIC, RTC, FLASH, and Fuel Gauge devices.
- * Except Fuel Gauge, every device shares the same I2C bus and included in
- * this mfd driver. Although the fuel gauge is included in the chip, it is
- * excluded from the driver because a) it has a different I2C bus from
- * others and b) it can be enabled simply by using MAX17042 driver.
- */
-
-#ifndef __LINUX_MFD_MAX8998_H
-#define __LINUX_MFD_MAX8998_H
-
-#include <linux/regulator/consumer.h>
-
-/* MAX8997/8966 regulator IDs */
-enum max8998_regulators {
- MAX8997_LDO1 = 0,
- MAX8997_LDO2,
- MAX8997_LDO3,
- MAX8997_LDO4,
- MAX8997_LDO5,
- MAX8997_LDO6,
- MAX8997_LDO7,
- MAX8997_LDO8,
- MAX8997_LDO9,
- MAX8997_LDO10,
- MAX8997_LDO11,
- MAX8997_LDO12,
- MAX8997_LDO13,
- MAX8997_LDO14,
- MAX8997_LDO15,
- MAX8997_LDO16,
- MAX8997_LDO17,
- MAX8997_LDO18,
- MAX8997_LDO21,
- MAX8997_BUCK1,
- MAX8997_BUCK2,
- MAX8997_BUCK3,
- MAX8997_BUCK4,
- MAX8997_BUCK5,
- MAX8997_BUCK6,
- MAX8997_BUCK7,
- MAX8997_EN32KHZ_AP,
- MAX8997_EN32KHZ_CP,
- MAX8997_ENVICHG,
- MAX8997_ESAFEOUT1,
- MAX8997_ESAFEOUT2,
- MAX8997_CHARGER_CV, /* control MBCCV of MBCCTRL3 */
- MAX8997_CHARGER, /* charger current, MBCCTRL4 */
- MAX8997_CHARGER_TOPOFF, /* MBCCTRL5 */
-
- MAX8997_REG_MAX,
-};
-
-struct max8997_regulator_data {
- int id;
- struct regulator_init_data *initdata;
-};
-
-enum max8997_muic_usb_type {
- MAX8997_USB_HOST,
- MAX8997_USB_DEVICE,
-};
-
-enum max8997_muic_charger_type {
- MAX8997_CHARGER_TYPE_NONE = 0,
- MAX8997_CHARGER_TYPE_USB,
- MAX8997_CHARGER_TYPE_DOWNSTREAM_PORT,
- MAX8997_CHARGER_TYPE_DEDICATED_CHG,
- MAX8997_CHARGER_TYPE_500MA,
- MAX8997_CHARGER_TYPE_1A,
- MAX8997_CHARGER_TYPE_DEAD_BATTERY = 7,
-};
-
-struct max8997_muic_reg_data {
- u8 addr;
- u8 data;
-};
-
-/**
- * struct max8997_muic_platform_data
- * @usb_callback: callback function for USB
- * inform callee of USB type (HOST or DEVICE)
- * and attached state(true or false)
- * @charger_callback: callback function for charger
- * inform callee of charger_type
- * and attached state(true or false)
- * @deskdock_callback: callback function for desk dock
- * inform callee of attached state(true or false)
- * @cardock_callback: callback function for car dock
- * inform callee of attached state(true or false)
- * @mhl_callback: callback function for MHL (Mobile High-definition Link)
- * inform callee of attached state(true or false)
- * @uart_callback: callback function for JIG UART
- * inform callee of attached state(true or false)
- * @init_data: array of max8997_muic_reg_data
- * used for initializing registers of MAX8997 MUIC device
- * @num_init_data: array size of init_data
- */
-struct max8997_muic_platform_data {
- void (*usb_callback)(enum max8997_muic_usb_type usb_type,
- bool attached);
- void (*charger_callback)(bool attached,
- enum max8997_muic_charger_type charger_type);
- void (*deskdock_callback) (bool attached);
- void (*cardock_callback) (bool attached);
- void (*mhl_callback) (bool attached);
- void (*uart_callback) (bool attached);
-
- struct max8997_muic_reg_data *init_data;
- int num_init_data;
-};
-
-enum max8997_haptic_motor_type {
- MAX8997_HAPTIC_ERM,
- MAX8997_HAPTIC_LRA,
-};
-
-enum max8997_haptic_pulse_mode {
- MAX8997_EXTERNAL_MODE,
- MAX8997_INTERNAL_MODE,
-};
-
-enum max8997_haptic_pwm_divisor {
- MAX8997_PWM_DIVISOR_32,
- MAX8997_PWM_DIVISOR_64,
- MAX8997_PWM_DIVISOR_128,
- MAX8997_PWM_DIVISOR_256,
-};
-
-/**
- * max8997_haptic_platform_data
- * @pwm_channel_id: channel number of PWM device
- * valid for MAX8997_EXTERNAL_MODE
- * @pwm_period: period in nano second for PWM device
- * valid for MAX8997_EXTERNAL_MODE
- * @type: motor type
- * @mode: pulse mode
- * MAX8997_EXTERNAL_MODE: external PWM device is used to control motor
- * MAX8997_INTERNAL_MODE: internal pulse generator is used to control motor
- * @pwm_divisor: divisor for external PWM device
- * @internal_mode_pattern: internal mode pattern for internal mode
- * [0 - 3]: valid pattern number
- * @pattern_cycle: the number of cycles of the waveform
- * for the internal mode pattern
- * [0 - 15]: available cycles
- * @pattern_signal_period: period of the waveform for the internal mode pattern
- * [0 - 255]: available period
- */
-struct max8997_haptic_platform_data {
- unsigned int pwm_channel_id;
- unsigned int pwm_period;
-
- enum max8997_haptic_motor_type type;
- enum max8997_haptic_pulse_mode mode;
- enum max8997_haptic_pwm_divisor pwm_divisor;
-
- unsigned int internal_mode_pattern;
- unsigned int pattern_cycle;
- unsigned int pattern_signal_period;
-};
-
-enum max8997_led_mode {
- MAX8997_NONE,
- MAX8997_FLASH_MODE,
- MAX8997_MOVIE_MODE,
- MAX8997_FLASH_PIN_CONTROL_MODE,
- MAX8997_MOVIE_PIN_CONTROL_MODE,
-};
-
-/**
- * struct max8997_led_platform_data
- * The number of LED devices for MAX8997 is two
- * @mode: LED mode for each LED device
- * @brightness: initial brightness for each LED device
- * range:
- * [0 - 31]: MAX8997_FLASH_MODE and MAX8997_FLASH_PIN_CONTROL_MODE
- * [0 - 15]: MAX8997_MOVIE_MODE and MAX8997_MOVIE_PIN_CONTROL_MODE
- */
-struct max8997_led_platform_data {
- enum max8997_led_mode mode[2];
- u8 brightness[2];
-};
-
-struct max8997_platform_data {
- /* IRQ */
- int irq_base;
- int ono;
- int wakeup;
-
- /* ---- PMIC ---- */
- struct max8997_regulator_data *regulators;
- int num_regulators;
-
- /*
- * SET1~3 DVS GPIOs control Buck1, 2, and 5 simultaneously. Therefore,
- * With buckx_gpiodvs enabled, the buckx cannot be controlled
- * independently. To control buckx (of 1, 2, and 5) independently,
- * disable buckx_gpiodvs and control with BUCKxDVS1 register.
- *
- * When buckx_gpiodvs and bucky_gpiodvs are both enabled, set_voltage
- * on buckx will change the voltage of bucky at the same time.
- *
- */
- bool ignore_gpiodvs_side_effect;
- int buck125_gpios[3]; /* GPIO of [0]SET1, [1]SET2, [2]SET3 */
- int buck125_default_idx; /* Default value of SET1, 2, 3 */
- unsigned int buck1_voltage[8]; /* buckx_voltage in uV */
- bool buck1_gpiodvs;
- unsigned int buck2_voltage[8];
- bool buck2_gpiodvs;
- unsigned int buck5_voltage[8];
- bool buck5_gpiodvs;
-
- /* ---- Charger control ---- */
- /* eoc stands for 'end of charge' */
- int eoc_mA; /* 50 ~ 200mA by 10mA step */
- /* charge Full Timeout */
- int timeout; /* 0 (no timeout), 5, 6, 7 hours */
-
- /* ---- MUIC ---- */
- struct max8997_muic_platform_data *muic_pdata;
-
- /* ---- HAPTIC ---- */
- struct max8997_haptic_platform_data *haptic_pdata;
-
- /* RTC: Not implemented */
- /* ---- LED ---- */
- struct max8997_led_platform_data *led_pdata;
-};
-
-#endif /* __LINUX_MFD_MAX8998_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/max8998-private.h b/ANDROID_3.4.5/include/linux/mfd/max8998-private.h
deleted file mode 100644
index effa5d3b..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/max8998-private.h
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * max8998.h - Voltage regulator driver for the Maxim 8998
- *
- * Copyright (C) 2009-2010 Samsung Electrnoics
- * Kyungmin Park <kyungmin.park@samsung.com>
- * Marek Szyprowski <m.szyprowski@samsung.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
- */
-
-#ifndef __LINUX_MFD_MAX8998_PRIV_H
-#define __LINUX_MFD_MAX8998_PRIV_H
-
-#define MAX8998_NUM_IRQ_REGS 4
-
-/* MAX 8998 registers */
-enum {
- MAX8998_REG_IRQ1,
- MAX8998_REG_IRQ2,
- MAX8998_REG_IRQ3,
- MAX8998_REG_IRQ4,
- MAX8998_REG_IRQM1,
- MAX8998_REG_IRQM2,
- MAX8998_REG_IRQM3,
- MAX8998_REG_IRQM4,
- MAX8998_REG_STATUS1,
- MAX8998_REG_STATUS2,
- MAX8998_REG_STATUSM1,
- MAX8998_REG_STATUSM2,
- MAX8998_REG_CHGR1,
- MAX8998_REG_CHGR2,
- MAX8998_REG_LDO_ACTIVE_DISCHARGE1,
- MAX8998_REG_LDO_ACTIVE_DISCHARGE2,
- MAX8998_REG_BUCK_ACTIVE_DISCHARGE3,
- MAX8998_REG_ONOFF1,
- MAX8998_REG_ONOFF2,
- MAX8998_REG_ONOFF3,
- MAX8998_REG_ONOFF4,
- MAX8998_REG_BUCK1_VOLTAGE1,
- MAX8998_REG_BUCK1_VOLTAGE2,
- MAX8998_REG_BUCK1_VOLTAGE3,
- MAX8998_REG_BUCK1_VOLTAGE4,
- MAX8998_REG_BUCK2_VOLTAGE1,
- MAX8998_REG_BUCK2_VOLTAGE2,
- MAX8998_REG_BUCK3,
- MAX8998_REG_BUCK4,
- MAX8998_REG_LDO2_LDO3,
- MAX8998_REG_LDO4,
- MAX8998_REG_LDO5,
- MAX8998_REG_LDO6,
- MAX8998_REG_LDO7,
- MAX8998_REG_LDO8_LDO9,
- MAX8998_REG_LDO10_LDO11,
- MAX8998_REG_LDO12,
- MAX8998_REG_LDO13,
- MAX8998_REG_LDO14,
- MAX8998_REG_LDO15,
- MAX8998_REG_LDO16,
- MAX8998_REG_LDO17,
- MAX8998_REG_BKCHR,
- MAX8998_REG_LBCNFG1,
- MAX8998_REG_LBCNFG2,
-};
-
-/* IRQ definitions */
-enum {
- MAX8998_IRQ_DCINF,
- MAX8998_IRQ_DCINR,
- MAX8998_IRQ_JIGF,
- MAX8998_IRQ_JIGR,
- MAX8998_IRQ_PWRONF,
- MAX8998_IRQ_PWRONR,
-
- MAX8998_IRQ_WTSREVNT,
- MAX8998_IRQ_SMPLEVNT,
- MAX8998_IRQ_ALARM1,
- MAX8998_IRQ_ALARM0,
-
- MAX8998_IRQ_ONKEY1S,
- MAX8998_IRQ_TOPOFFR,
- MAX8998_IRQ_DCINOVPR,
- MAX8998_IRQ_CHGRSTF,
- MAX8998_IRQ_DONER,
- MAX8998_IRQ_CHGFAULT,
-
- MAX8998_IRQ_LOBAT1,
- MAX8998_IRQ_LOBAT2,
-
- MAX8998_IRQ_NR,
-};
-
-/* MAX8998 various variants */
-enum {
- TYPE_MAX8998 = 0, /* Default */
- TYPE_LP3974, /* National version of MAX8998 */
- TYPE_LP3979, /* Added AVS */
-};
-
-#define MAX8998_IRQ_DCINF_MASK (1 << 2)
-#define MAX8998_IRQ_DCINR_MASK (1 << 3)
-#define MAX8998_IRQ_JIGF_MASK (1 << 4)
-#define MAX8998_IRQ_JIGR_MASK (1 << 5)
-#define MAX8998_IRQ_PWRONF_MASK (1 << 6)
-#define MAX8998_IRQ_PWRONR_MASK (1 << 7)
-
-#define MAX8998_IRQ_WTSREVNT_MASK (1 << 0)
-#define MAX8998_IRQ_SMPLEVNT_MASK (1 << 1)
-#define MAX8998_IRQ_ALARM1_MASK (1 << 2)
-#define MAX8998_IRQ_ALARM0_MASK (1 << 3)
-
-#define MAX8998_IRQ_ONKEY1S_MASK (1 << 0)
-#define MAX8998_IRQ_TOPOFFR_MASK (1 << 2)
-#define MAX8998_IRQ_DCINOVPR_MASK (1 << 3)
-#define MAX8998_IRQ_CHGRSTF_MASK (1 << 4)
-#define MAX8998_IRQ_DONER_MASK (1 << 5)
-#define MAX8998_IRQ_CHGFAULT_MASK (1 << 7)
-
-#define MAX8998_IRQ_LOBAT1_MASK (1 << 0)
-#define MAX8998_IRQ_LOBAT2_MASK (1 << 1)
-
-#define MAX8998_ENRAMP (1 << 4)
-
-/**
- * struct max8998_dev - max8998 master device for sub-drivers
- * @dev: master device of the chip (can be used to access platform data)
- * @i2c: i2c client private data for regulator
- * @rtc: i2c client private data for rtc
- * @iolock: mutex for serializing io access
- * @irqlock: mutex for buslock
- * @irq_base: base IRQ number for max8998, required for IRQs
- * @irq: generic IRQ number for max8998
- * @ono: power onoff IRQ number for max8998
- * @irq_masks_cur: currently active value
- * @irq_masks_cache: cached hardware value
- * @type: indicate which max8998 "variant" is used
- */
-struct max8998_dev {
- struct device *dev;
- struct i2c_client *i2c;
- struct i2c_client *rtc;
- struct mutex iolock;
- struct mutex irqlock;
-
- int irq_base;
- int irq;
- int ono;
- u8 irq_masks_cur[MAX8998_NUM_IRQ_REGS];
- u8 irq_masks_cache[MAX8998_NUM_IRQ_REGS];
- int type;
- bool wakeup;
-};
-
-int max8998_irq_init(struct max8998_dev *max8998);
-void max8998_irq_exit(struct max8998_dev *max8998);
-int max8998_irq_resume(struct max8998_dev *max8998);
-
-extern int max8998_read_reg(struct i2c_client *i2c, u8 reg, u8 *dest);
-extern int max8998_bulk_read(struct i2c_client *i2c, u8 reg, int count,
- u8 *buf);
-extern int max8998_write_reg(struct i2c_client *i2c, u8 reg, u8 value);
-extern int max8998_bulk_write(struct i2c_client *i2c, u8 reg, int count,
- u8 *buf);
-extern int max8998_update_reg(struct i2c_client *i2c, u8 reg, u8 val, u8 mask);
-
-#endif /* __LINUX_MFD_MAX8998_PRIV_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/max8998.h b/ANDROID_3.4.5/include/linux/mfd/max8998.h
deleted file mode 100644
index f4f0dfa4..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/max8998.h
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * max8998.h - Voltage regulator driver for the Maxim 8998
- *
- * Copyright (C) 2009-2010 Samsung Electrnoics
- * Kyungmin Park <kyungmin.park@samsung.com>
- * Marek Szyprowski <m.szyprowski@samsung.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
- */
-
-#ifndef __LINUX_MFD_MAX8998_H
-#define __LINUX_MFD_MAX8998_H
-
-#include <linux/regulator/machine.h>
-
-/* MAX 8998 regulator ids */
-enum {
- MAX8998_LDO2 = 2,
- MAX8998_LDO3,
- MAX8998_LDO4,
- MAX8998_LDO5,
- MAX8998_LDO6,
- MAX8998_LDO7,
- MAX8998_LDO8,
- MAX8998_LDO9,
- MAX8998_LDO10,
- MAX8998_LDO11,
- MAX8998_LDO12,
- MAX8998_LDO13,
- MAX8998_LDO14,
- MAX8998_LDO15,
- MAX8998_LDO16,
- MAX8998_LDO17,
- MAX8998_BUCK1,
- MAX8998_BUCK2,
- MAX8998_BUCK3,
- MAX8998_BUCK4,
- MAX8998_EN32KHZ_AP,
- MAX8998_EN32KHZ_CP,
- MAX8998_ENVICHG,
- MAX8998_ESAFEOUT1,
- MAX8998_ESAFEOUT2,
-};
-
-/**
- * max8998_regulator_data - regulator data
- * @id: regulator id
- * @initdata: regulator init data (contraints, supplies, ...)
- */
-struct max8998_regulator_data {
- int id;
- struct regulator_init_data *initdata;
-};
-
-/**
- * struct max8998_board - packages regulator init data
- * @regulators: array of defined regulators
- * @num_regulators: number of regultors used
- * @irq_base: base IRQ number for max8998, required for IRQs
- * @ono: power onoff IRQ number for max8998
- * @buck_voltage_lock: Do NOT change the values of the following six
- * registers set by buck?_voltage?. The voltage of BUCK1/2 cannot
- * be other than the preset values.
- * @buck1_voltage1: BUCK1 DVS mode 1 voltage register
- * @buck1_voltage2: BUCK1 DVS mode 2 voltage register
- * @buck1_voltage3: BUCK1 DVS mode 3 voltage register
- * @buck1_voltage4: BUCK1 DVS mode 4 voltage register
- * @buck2_voltage1: BUCK2 DVS mode 1 voltage register
- * @buck2_voltage2: BUCK2 DVS mode 2 voltage register
- * @buck1_set1: BUCK1 gpio pin 1 to set output voltage
- * @buck1_set2: BUCK1 gpio pin 2 to set output voltage
- * @buck1_default_idx: Default for BUCK1 gpio pin 1, 2
- * @buck2_set3: BUCK2 gpio pin to set output voltage
- * @buck2_default_idx: Default for BUCK2 gpio pin.
- * @wakeup: Allow to wake up from suspend
- * @rtc_delay: LP3974 RTC chip bug that requires delay after a register
- * write before reading it.
- * @eoc: End of Charge Level in percent: 10% ~ 45% by 5% step
- * If it equals 0, leave it unchanged.
- * Otherwise, it is a invalid value.
- * @restart: Restart Level in mV: 100, 150, 200, and -1 for disable.
- * If it equals 0, leave it unchanged.
- * Otherwise, it is a invalid value.
- * @timeout: Full Timeout in hours: 5, 6, 7, and -1 for disable.
- * If it equals 0, leave it unchanged.
- * Otherwise, leave it unchanged.
- */
-struct max8998_platform_data {
- struct max8998_regulator_data *regulators;
- int num_regulators;
- int irq_base;
- int ono;
- bool buck_voltage_lock;
- int buck1_voltage1;
- int buck1_voltage2;
- int buck1_voltage3;
- int buck1_voltage4;
- int buck2_voltage1;
- int buck2_voltage2;
- int buck1_set1;
- int buck1_set2;
- int buck1_default_idx;
- int buck2_set3;
- int buck2_default_idx;
- bool wakeup;
- bool rtc_delay;
- int eoc;
- int restart;
- int timeout;
-};
-
-#endif /* __LINUX_MFD_MAX8998_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/mc13783.h b/ANDROID_3.4.5/include/linux/mfd/mc13783.h
deleted file mode 100644
index a8eeda77..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/mc13783.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright 2010 Yong Shen <yong.shen@linaro.org>
- * Copyright 2009-2010 Pengutronix
- * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
- *
- * 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.
- */
-#ifndef __LINUX_MFD_MC13783_H
-#define __LINUX_MFD_MC13783_H
-
-#include <linux/mfd/mc13xxx.h>
-
-#define MC13783_REG_SW1A 0
-#define MC13783_REG_SW1B 1
-#define MC13783_REG_SW2A 2
-#define MC13783_REG_SW2B 3
-#define MC13783_REG_SW3 4
-#define MC13783_REG_PLL 5
-#define MC13783_REG_VAUDIO 6
-#define MC13783_REG_VIOHI 7
-#define MC13783_REG_VIOLO 8
-#define MC13783_REG_VDIG 9
-#define MC13783_REG_VGEN 10
-#define MC13783_REG_VRFDIG 11
-#define MC13783_REG_VRFREF 12
-#define MC13783_REG_VRFCP 13
-#define MC13783_REG_VSIM 14
-#define MC13783_REG_VESIM 15
-#define MC13783_REG_VCAM 16
-#define MC13783_REG_VRFBG 17
-#define MC13783_REG_VVIB 18
-#define MC13783_REG_VRF1 19
-#define MC13783_REG_VRF2 20
-#define MC13783_REG_VMMC1 21
-#define MC13783_REG_VMMC2 22
-#define MC13783_REG_GPO1 23
-#define MC13783_REG_GPO2 24
-#define MC13783_REG_GPO3 25
-#define MC13783_REG_GPO4 26
-#define MC13783_REG_V1 27
-#define MC13783_REG_V2 28
-#define MC13783_REG_V3 29
-#define MC13783_REG_V4 30
-#define MC13783_REG_PWGT1SPI 31
-#define MC13783_REG_PWGT2SPI 32
-
-#define MC13783_IRQ_ADCDONE MC13XXX_IRQ_ADCDONE
-#define MC13783_IRQ_ADCBISDONE MC13XXX_IRQ_ADCBISDONE
-#define MC13783_IRQ_TS MC13XXX_IRQ_TS
-#define MC13783_IRQ_WHIGH 3
-#define MC13783_IRQ_WLOW 4
-#define MC13783_IRQ_CHGDET MC13XXX_IRQ_CHGDET
-#define MC13783_IRQ_CHGOV 7
-#define MC13783_IRQ_CHGREV MC13XXX_IRQ_CHGREV
-#define MC13783_IRQ_CHGSHORT MC13XXX_IRQ_CHGSHORT
-#define MC13783_IRQ_CCCV MC13XXX_IRQ_CCCV
-#define MC13783_IRQ_CHGCURR MC13XXX_IRQ_CHGCURR
-#define MC13783_IRQ_BPON MC13XXX_IRQ_BPON
-#define MC13783_IRQ_LOBATL MC13XXX_IRQ_LOBATL
-#define MC13783_IRQ_LOBATH MC13XXX_IRQ_LOBATH
-#define MC13783_IRQ_UDP 15
-#define MC13783_IRQ_USB 16
-#define MC13783_IRQ_ID 19
-#define MC13783_IRQ_SE1 21
-#define MC13783_IRQ_CKDET 22
-#define MC13783_IRQ_UDM 23
-#define MC13783_IRQ_1HZ MC13XXX_IRQ_1HZ
-#define MC13783_IRQ_TODA MC13XXX_IRQ_TODA
-#define MC13783_IRQ_ONOFD1 27
-#define MC13783_IRQ_ONOFD2 28
-#define MC13783_IRQ_ONOFD3 29
-#define MC13783_IRQ_SYSRST MC13XXX_IRQ_SYSRST
-#define MC13783_IRQ_RTCRST MC13XXX_IRQ_RTCRST
-#define MC13783_IRQ_PC MC13XXX_IRQ_PC
-#define MC13783_IRQ_WARM MC13XXX_IRQ_WARM
-#define MC13783_IRQ_MEMHLD MC13XXX_IRQ_MEMHLD
-#define MC13783_IRQ_PWRRDY 35
-#define MC13783_IRQ_THWARNL MC13XXX_IRQ_THWARNL
-#define MC13783_IRQ_THWARNH MC13XXX_IRQ_THWARNH
-#define MC13783_IRQ_CLK MC13XXX_IRQ_CLK
-#define MC13783_IRQ_SEMAF 39
-#define MC13783_IRQ_MC2B 41
-#define MC13783_IRQ_HSDET 42
-#define MC13783_IRQ_HSL 43
-#define MC13783_IRQ_ALSPTH 44
-#define MC13783_IRQ_AHSSHORT 45
-#define MC13783_NUM_IRQ MC13XXX_NUM_IRQ
-
-#endif /* ifndef __LINUX_MFD_MC13783_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/mc13892.h b/ANDROID_3.4.5/include/linux/mfd/mc13892.h
deleted file mode 100644
index a00f2bec..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/mc13892.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright 2010 Yong Shen <yong.shen@linaro.org>
- *
- * 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.
- */
-
-#ifndef __LINUX_MFD_MC13892_H
-#define __LINUX_MFD_MC13892_H
-
-#include <linux/mfd/mc13xxx.h>
-
-#define MC13892_SW1 0
-#define MC13892_SW2 1
-#define MC13892_SW3 2
-#define MC13892_SW4 3
-#define MC13892_SWBST 4
-#define MC13892_VIOHI 5
-#define MC13892_VPLL 6
-#define MC13892_VDIG 7
-#define MC13892_VSD 8
-#define MC13892_VUSB2 9
-#define MC13892_VVIDEO 10
-#define MC13892_VAUDIO 11
-#define MC13892_VCAM 12
-#define MC13892_VGEN1 13
-#define MC13892_VGEN2 14
-#define MC13892_VGEN3 15
-#define MC13892_VUSB 16
-#define MC13892_GPO1 17
-#define MC13892_GPO2 18
-#define MC13892_GPO3 19
-#define MC13892_GPO4 20
-#define MC13892_PWGT1SPI 21
-#define MC13892_PWGT2SPI 22
-#define MC13892_VCOINCELL 23
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/mc13xxx.h b/ANDROID_3.4.5/include/linux/mfd/mc13xxx.h
deleted file mode 100644
index 10e038ba..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/mc13xxx.h
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- * Copyright 2009-2010 Pengutronix
- * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
- *
- * 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.
- */
-#ifndef __LINUX_MFD_MC13XXX_H
-#define __LINUX_MFD_MC13XXX_H
-
-#include <linux/interrupt.h>
-
-struct mc13xxx;
-
-void mc13xxx_lock(struct mc13xxx *mc13xxx);
-void mc13xxx_unlock(struct mc13xxx *mc13xxx);
-
-int mc13xxx_reg_read(struct mc13xxx *mc13xxx, unsigned int offset, u32 *val);
-int mc13xxx_reg_write(struct mc13xxx *mc13xxx, unsigned int offset, u32 val);
-int mc13xxx_reg_rmw(struct mc13xxx *mc13xxx, unsigned int offset,
- u32 mask, u32 val);
-
-int mc13xxx_get_flags(struct mc13xxx *mc13xxx);
-
-int mc13xxx_irq_request(struct mc13xxx *mc13xxx, int irq,
- irq_handler_t handler, const char *name, void *dev);
-int mc13xxx_irq_request_nounmask(struct mc13xxx *mc13xxx, int irq,
- irq_handler_t handler, const char *name, void *dev);
-int mc13xxx_irq_free(struct mc13xxx *mc13xxx, int irq, void *dev);
-
-int mc13xxx_irq_mask(struct mc13xxx *mc13xxx, int irq);
-int mc13xxx_irq_unmask(struct mc13xxx *mc13xxx, int irq);
-int mc13xxx_irq_status(struct mc13xxx *mc13xxx, int irq,
- int *enabled, int *pending);
-int mc13xxx_irq_ack(struct mc13xxx *mc13xxx, int irq);
-
-int mc13xxx_get_flags(struct mc13xxx *mc13xxx);
-
-int mc13xxx_adc_do_conversion(struct mc13xxx *mc13xxx,
- unsigned int mode, unsigned int channel,
- u8 ato, bool atox, unsigned int *sample);
-
-#define MC13XXX_IRQ_ADCDONE 0
-#define MC13XXX_IRQ_ADCBISDONE 1
-#define MC13XXX_IRQ_TS 2
-#define MC13XXX_IRQ_CHGDET 6
-#define MC13XXX_IRQ_CHGREV 8
-#define MC13XXX_IRQ_CHGSHORT 9
-#define MC13XXX_IRQ_CCCV 10
-#define MC13XXX_IRQ_CHGCURR 11
-#define MC13XXX_IRQ_BPON 12
-#define MC13XXX_IRQ_LOBATL 13
-#define MC13XXX_IRQ_LOBATH 14
-#define MC13XXX_IRQ_1HZ 24
-#define MC13XXX_IRQ_TODA 25
-#define MC13XXX_IRQ_SYSRST 30
-#define MC13XXX_IRQ_RTCRST 31
-#define MC13XXX_IRQ_PC 32
-#define MC13XXX_IRQ_WARM 33
-#define MC13XXX_IRQ_MEMHLD 34
-#define MC13XXX_IRQ_THWARNL 36
-#define MC13XXX_IRQ_THWARNH 37
-#define MC13XXX_IRQ_CLK 38
-
-#define MC13XXX_NUM_IRQ 46
-
-struct regulator_init_data;
-
-struct mc13xxx_regulator_init_data {
- int id;
- struct regulator_init_data *init_data;
- struct device_node *node;
-};
-
-struct mc13xxx_regulator_platform_data {
- int num_regulators;
- struct mc13xxx_regulator_init_data *regulators;
-};
-
-struct mc13xxx_led_platform_data {
-#define MC13783_LED_MD 0
-#define MC13783_LED_AD 1
-#define MC13783_LED_KP 2
-#define MC13783_LED_R1 3
-#define MC13783_LED_G1 4
-#define MC13783_LED_B1 5
-#define MC13783_LED_R2 6
-#define MC13783_LED_G2 7
-#define MC13783_LED_B2 8
-#define MC13783_LED_R3 9
-#define MC13783_LED_G3 10
-#define MC13783_LED_B3 11
-#define MC13783_LED_MAX MC13783_LED_B3
- int id;
- const char *name;
- const char *default_trigger;
-
-/* Three or two bits current selection depending on the led */
- char max_current;
-};
-
-struct mc13xxx_leds_platform_data {
- int num_leds;
- struct mc13xxx_led_platform_data *led;
-
-#define MC13783_LED_TRIODE_MD (1 << 0)
-#define MC13783_LED_TRIODE_AD (1 << 1)
-#define MC13783_LED_TRIODE_KP (1 << 2)
-#define MC13783_LED_BOOST_EN (1 << 3)
-#define MC13783_LED_TC1HALF (1 << 4)
-#define MC13783_LED_SLEWLIMTC (1 << 5)
-#define MC13783_LED_SLEWLIMBL (1 << 6)
-#define MC13783_LED_TRIODE_TC1 (1 << 7)
-#define MC13783_LED_TRIODE_TC2 (1 << 8)
-#define MC13783_LED_TRIODE_TC3 (1 << 9)
- int flags;
-
-#define MC13783_LED_AB_DISABLED 0
-#define MC13783_LED_AB_MD1 1
-#define MC13783_LED_AB_MD12 2
-#define MC13783_LED_AB_MD123 3
-#define MC13783_LED_AB_MD1234 4
-#define MC13783_LED_AB_MD1234_AD1 5
-#define MC13783_LED_AB_MD1234_AD12 6
-#define MC13783_LED_AB_MD1_AD 7
- char abmode;
-
-#define MC13783_LED_ABREF_200MV 0
-#define MC13783_LED_ABREF_400MV 1
-#define MC13783_LED_ABREF_600MV 2
-#define MC13783_LED_ABREF_800MV 3
- char abref;
-
-#define MC13783_LED_PERIOD_10MS 0
-#define MC13783_LED_PERIOD_100MS 1
-#define MC13783_LED_PERIOD_500MS 2
-#define MC13783_LED_PERIOD_2S 3
- char bl_period;
- char tc1_period;
- char tc2_period;
- char tc3_period;
-};
-
-struct mc13xxx_buttons_platform_data {
-#define MC13783_BUTTON_DBNC_0MS 0
-#define MC13783_BUTTON_DBNC_30MS 1
-#define MC13783_BUTTON_DBNC_150MS 2
-#define MC13783_BUTTON_DBNC_750MS 3
-#define MC13783_BUTTON_ENABLE (1 << 2)
-#define MC13783_BUTTON_POL_INVERT (1 << 3)
-#define MC13783_BUTTON_RESET_EN (1 << 4)
- int b1on_flags;
- unsigned short b1on_key;
- int b2on_flags;
- unsigned short b2on_key;
- int b3on_flags;
- unsigned short b3on_key;
-};
-
-struct mc13xxx_ts_platform_data {
- /* Delay between Touchscreen polarization and ADC Conversion.
- * Given in clock ticks of a 32 kHz clock which gives a granularity of
- * about 30.5ms */
- u8 ato;
-
-#define MC13783_TS_ATO_FIRST false
-#define MC13783_TS_ATO_EACH true
- /* Use the ATO delay only for the first conversion or for each one */
- bool atox;
-};
-
-struct mc13xxx_platform_data {
-#define MC13XXX_USE_TOUCHSCREEN (1 << 0)
-#define MC13XXX_USE_CODEC (1 << 1)
-#define MC13XXX_USE_ADC (1 << 2)
-#define MC13XXX_USE_RTC (1 << 3)
- unsigned int flags;
-
- struct mc13xxx_regulator_platform_data regulators;
- struct mc13xxx_leds_platform_data *leds;
- struct mc13xxx_buttons_platform_data *buttons;
- struct mc13xxx_ts_platform_data touch;
-};
-
-#define MC13XXX_ADC_MODE_TS 1
-#define MC13XXX_ADC_MODE_SINGLE_CHAN 2
-#define MC13XXX_ADC_MODE_MULT_CHAN 3
-
-#define MC13XXX_ADC0 43
-#define MC13XXX_ADC0_LICELLCON (1 << 0)
-#define MC13XXX_ADC0_CHRGICON (1 << 1)
-#define MC13XXX_ADC0_BATICON (1 << 2)
-#define MC13XXX_ADC0_ADREFEN (1 << 10)
-#define MC13XXX_ADC0_TSMOD0 (1 << 12)
-#define MC13XXX_ADC0_TSMOD1 (1 << 13)
-#define MC13XXX_ADC0_TSMOD2 (1 << 14)
-#define MC13XXX_ADC0_ADINC1 (1 << 16)
-#define MC13XXX_ADC0_ADINC2 (1 << 17)
-
-#define MC13XXX_ADC0_TSMOD_MASK (MC13XXX_ADC0_TSMOD0 | \
- MC13XXX_ADC0_TSMOD1 | \
- MC13XXX_ADC0_TSMOD2)
-
-#define MC13XXX_ADC0_CONFIG_MASK (MC13XXX_ADC0_TSMOD_MASK | \
- MC13XXX_ADC0_LICELLCON | \
- MC13XXX_ADC0_CHRGICON | \
- MC13XXX_ADC0_BATICON)
-
-#endif /* ifndef __LINUX_MFD_MC13XXX_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/mcp.h b/ANDROID_3.4.5/include/linux/mfd/mcp.h
deleted file mode 100644
index a9e8bd15..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/mcp.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * linux/drivers/mfd/mcp.h
- *
- * Copyright (C) 2001 Russell King, 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.
- */
-#ifndef MCP_H
-#define MCP_H
-
-struct mcp_ops;
-
-struct mcp {
- struct module *owner;
- struct mcp_ops *ops;
- spinlock_t lock;
- int use_count;
- unsigned int sclk_rate;
- unsigned int rw_timeout;
- struct device attached_device;
-};
-
-struct mcp_ops {
- void (*set_telecom_divisor)(struct mcp *, unsigned int);
- void (*set_audio_divisor)(struct mcp *, unsigned int);
- void (*reg_write)(struct mcp *, unsigned int, unsigned int);
- unsigned int (*reg_read)(struct mcp *, unsigned int);
- void (*enable)(struct mcp *);
- void (*disable)(struct mcp *);
-};
-
-void mcp_set_telecom_divisor(struct mcp *, unsigned int);
-void mcp_set_audio_divisor(struct mcp *, unsigned int);
-void mcp_reg_write(struct mcp *, unsigned int, unsigned int);
-unsigned int mcp_reg_read(struct mcp *, unsigned int);
-void mcp_enable(struct mcp *);
-void mcp_disable(struct mcp *);
-#define mcp_get_sclk_rate(mcp) ((mcp)->sclk_rate)
-
-struct mcp *mcp_host_alloc(struct device *, size_t);
-int mcp_host_add(struct mcp *, void *);
-void mcp_host_del(struct mcp *);
-void mcp_host_free(struct mcp *);
-
-struct mcp_driver {
- struct device_driver drv;
- int (*probe)(struct mcp *);
- void (*remove)(struct mcp *);
-};
-
-int mcp_driver_register(struct mcp_driver *);
-void mcp_driver_unregister(struct mcp_driver *);
-
-#define mcp_get_drvdata(mcp) dev_get_drvdata(&(mcp)->attached_device)
-#define mcp_set_drvdata(mcp,d) dev_set_drvdata(&(mcp)->attached_device, d)
-
-static inline void *mcp_priv(struct mcp *mcp)
-{
- return mcp + 1;
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/pcf50633/adc.h b/ANDROID_3.4.5/include/linux/mfd/pcf50633/adc.h
deleted file mode 100644
index b35e6280..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/pcf50633/adc.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * adc.h -- Driver for NXP PCF50633 ADC
- *
- * (C) 2006-2008 by Openmoko, Inc.
- * 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.
- */
-
-#ifndef __LINUX_MFD_PCF50633_ADC_H
-#define __LINUX_MFD_PCF50633_ADC_H
-
-#include <linux/mfd/pcf50633/core.h>
-#include <linux/platform_device.h>
-
-/* ADC Registers */
-#define PCF50633_REG_ADCC3 0x52
-#define PCF50633_REG_ADCC2 0x53
-#define PCF50633_REG_ADCC1 0x54
-#define PCF50633_REG_ADCS1 0x55
-#define PCF50633_REG_ADCS2 0x56
-#define PCF50633_REG_ADCS3 0x57
-
-#define PCF50633_ADCC1_ADCSTART 0x01
-#define PCF50633_ADCC1_RES_8BIT 0x02
-#define PCF50633_ADCC1_RES_10BIT 0x00
-#define PCF50633_ADCC1_AVERAGE_NO 0x00
-#define PCF50633_ADCC1_AVERAGE_4 0x04
-#define PCF50633_ADCC1_AVERAGE_8 0x08
-#define PCF50633_ADCC1_AVERAGE_16 0x0c
-#define PCF50633_ADCC1_MUX_BATSNS_RES 0x00
-#define PCF50633_ADCC1_MUX_BATSNS_SUBTR 0x10
-#define PCF50633_ADCC1_MUX_ADCIN2_RES 0x20
-#define PCF50633_ADCC1_MUX_ADCIN2_SUBTR 0x30
-#define PCF50633_ADCC1_MUX_BATTEMP 0x60
-#define PCF50633_ADCC1_MUX_ADCIN1 0x70
-#define PCF50633_ADCC1_AVERAGE_MASK 0x0c
-#define PCF50633_ADCC1_ADCMUX_MASK 0xf0
-
-#define PCF50633_ADCC2_RATIO_NONE 0x00
-#define PCF50633_ADCC2_RATIO_BATTEMP 0x01
-#define PCF50633_ADCC2_RATIO_ADCIN1 0x02
-#define PCF50633_ADCC2_RATIO_BOTH 0x03
-#define PCF50633_ADCC2_RATIOSETTL_100US 0x04
-
-#define PCF50633_ADCC3_ACCSW_EN 0x01
-#define PCF50633_ADCC3_NTCSW_EN 0x04
-#define PCF50633_ADCC3_RES_DIV_TWO 0x10
-#define PCF50633_ADCC3_RES_DIV_THREE 0x00
-
-#define PCF50633_ADCS3_REF_NTCSW 0x00
-#define PCF50633_ADCS3_REF_ACCSW 0x10
-#define PCF50633_ADCS3_REF_2V0 0x20
-#define PCF50633_ADCS3_REF_VISA 0x30
-#define PCF50633_ADCS3_REF_2V0_2 0x70
-#define PCF50633_ADCS3_ADCRDY 0x80
-
-#define PCF50633_ADCS3_ADCDAT1L_MASK 0x03
-#define PCF50633_ADCS3_ADCDAT2L_MASK 0x0c
-#define PCF50633_ADCS3_ADCDAT2L_SHIFT 2
-#define PCF50633_ASCS3_REF_MASK 0x70
-
-extern int
-pcf50633_adc_async_read(struct pcf50633 *pcf, int mux, int avg,
- void (*callback)(struct pcf50633 *, void *, int),
- void *callback_param);
-extern int
-pcf50633_adc_sync_read(struct pcf50633 *pcf, int mux, int avg);
-
-#endif /* __LINUX_PCF50633_ADC_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/pcf50633/backlight.h b/ANDROID_3.4.5/include/linux/mfd/pcf50633/backlight.h
deleted file mode 100644
index 83747e21..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/pcf50633/backlight.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2009-2010, Lars-Peter Clausen <lars@metafoo.de>
- * PCF50633 backlight device 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.
- *
- * 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.
- *
- */
-
-#ifndef __LINUX_MFD_PCF50633_BACKLIGHT
-#define __LINUX_MFD_PCF50633_BACKLIGHT
-
-/*
-* @default_brightness: Backlight brightness is initialized to this value
-*
-* Brightness to be used after the driver has been probed.
-* Valid range 0-63.
-*
-* @default_brightness_limit: The actual brightness is limited by this value
-*
-* Brightness limit to be used after the driver has been probed. This is useful
-* when it is not known how much power is available for the backlight during
-* probe.
-* Valid range 0-63. Can be changed later with pcf50633_bl_set_brightness_limit.
-*
-* @ramp_time: Display ramp time when changing brightness
-*
-* When changing the backlights brightness the change is not instant, instead
-* it fades smooth from one state to another. This value specifies how long
-* the fade should take. The lower the value the higher the fade time.
-* Valid range 0-255
-*/
-struct pcf50633_bl_platform_data {
- unsigned int default_brightness;
- unsigned int default_brightness_limit;
- uint8_t ramp_time;
-};
-
-
-struct pcf50633;
-
-int pcf50633_bl_set_brightness_limit(struct pcf50633 *pcf, unsigned int limit);
-
-#endif
-
diff --git a/ANDROID_3.4.5/include/linux/mfd/pcf50633/core.h b/ANDROID_3.4.5/include/linux/mfd/pcf50633/core.h
deleted file mode 100644
index a8084075..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/pcf50633/core.h
+++ /dev/null
@@ -1,238 +0,0 @@
-/*
- * core.h -- Core driver for NXP PCF50633
- *
- * (C) 2006-2008 by Openmoko, Inc.
- * 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.
- */
-
-#ifndef __LINUX_MFD_PCF50633_CORE_H
-#define __LINUX_MFD_PCF50633_CORE_H
-
-#include <linux/i2c.h>
-#include <linux/workqueue.h>
-#include <linux/regulator/driver.h>
-#include <linux/regulator/machine.h>
-#include <linux/power_supply.h>
-#include <linux/mfd/pcf50633/backlight.h>
-
-struct pcf50633;
-struct regmap;
-
-#define PCF50633_NUM_REGULATORS 11
-
-struct pcf50633_platform_data {
- struct regulator_init_data reg_init_data[PCF50633_NUM_REGULATORS];
-
- char **batteries;
- int num_batteries;
-
- /*
- * Should be set accordingly to the reference resistor used, see
- * I_{ch(ref)} charger reference current in the pcf50633 User
- * Manual.
- */
- int charger_reference_current_ma;
-
- /* Callbacks */
- void (*probe_done)(struct pcf50633 *);
- void (*mbc_event_callback)(struct pcf50633 *, int);
- void (*regulator_registered)(struct pcf50633 *, int);
- void (*force_shutdown)(struct pcf50633 *);
-
- u8 resumers[5];
-
- struct pcf50633_bl_platform_data *backlight_data;
-};
-
-struct pcf50633_irq {
- void (*handler) (int, void *);
- void *data;
-};
-
-int pcf50633_register_irq(struct pcf50633 *pcf, int irq,
- void (*handler) (int, void *), void *data);
-int pcf50633_free_irq(struct pcf50633 *pcf, int irq);
-
-int pcf50633_irq_mask(struct pcf50633 *pcf, int irq);
-int pcf50633_irq_unmask(struct pcf50633 *pcf, int irq);
-int pcf50633_irq_mask_get(struct pcf50633 *pcf, int irq);
-
-int pcf50633_read_block(struct pcf50633 *, u8 reg,
- int nr_regs, u8 *data);
-int pcf50633_write_block(struct pcf50633 *pcf, u8 reg,
- int nr_regs, u8 *data);
-u8 pcf50633_reg_read(struct pcf50633 *, u8 reg);
-int pcf50633_reg_write(struct pcf50633 *pcf, u8 reg, u8 val);
-
-int pcf50633_reg_set_bit_mask(struct pcf50633 *pcf, u8 reg, u8 mask, u8 val);
-int pcf50633_reg_clear_bits(struct pcf50633 *pcf, u8 reg, u8 bits);
-
-/* Interrupt registers */
-
-#define PCF50633_REG_INT1 0x02
-#define PCF50633_REG_INT2 0x03
-#define PCF50633_REG_INT3 0x04
-#define PCF50633_REG_INT4 0x05
-#define PCF50633_REG_INT5 0x06
-
-#define PCF50633_REG_INT1M 0x07
-#define PCF50633_REG_INT2M 0x08
-#define PCF50633_REG_INT3M 0x09
-#define PCF50633_REG_INT4M 0x0a
-#define PCF50633_REG_INT5M 0x0b
-
-enum {
- /* Chip IRQs */
- PCF50633_IRQ_ADPINS,
- PCF50633_IRQ_ADPREM,
- PCF50633_IRQ_USBINS,
- PCF50633_IRQ_USBREM,
- PCF50633_IRQ_RESERVED1,
- PCF50633_IRQ_RESERVED2,
- PCF50633_IRQ_ALARM,
- PCF50633_IRQ_SECOND,
- PCF50633_IRQ_ONKEYR,
- PCF50633_IRQ_ONKEYF,
- PCF50633_IRQ_EXTON1R,
- PCF50633_IRQ_EXTON1F,
- PCF50633_IRQ_EXTON2R,
- PCF50633_IRQ_EXTON2F,
- PCF50633_IRQ_EXTON3R,
- PCF50633_IRQ_EXTON3F,
- PCF50633_IRQ_BATFULL,
- PCF50633_IRQ_CHGHALT,
- PCF50633_IRQ_THLIMON,
- PCF50633_IRQ_THLIMOFF,
- PCF50633_IRQ_USBLIMON,
- PCF50633_IRQ_USBLIMOFF,
- PCF50633_IRQ_ADCRDY,
- PCF50633_IRQ_ONKEY1S,
- PCF50633_IRQ_LOWSYS,
- PCF50633_IRQ_LOWBAT,
- PCF50633_IRQ_HIGHTMP,
- PCF50633_IRQ_AUTOPWRFAIL,
- PCF50633_IRQ_DWN1PWRFAIL,
- PCF50633_IRQ_DWN2PWRFAIL,
- PCF50633_IRQ_LEDPWRFAIL,
- PCF50633_IRQ_LEDOVP,
- PCF50633_IRQ_LDO1PWRFAIL,
- PCF50633_IRQ_LDO2PWRFAIL,
- PCF50633_IRQ_LDO3PWRFAIL,
- PCF50633_IRQ_LDO4PWRFAIL,
- PCF50633_IRQ_LDO5PWRFAIL,
- PCF50633_IRQ_LDO6PWRFAIL,
- PCF50633_IRQ_HCLDOPWRFAIL,
- PCF50633_IRQ_HCLDOOVL,
-
- /* Always last */
- PCF50633_NUM_IRQ,
-};
-
-struct pcf50633 {
- struct device *dev;
- struct regmap *regmap;
-
- struct pcf50633_platform_data *pdata;
- int irq;
- struct pcf50633_irq irq_handler[PCF50633_NUM_IRQ];
- struct work_struct irq_work;
- struct workqueue_struct *work_queue;
- struct mutex lock;
-
- u8 mask_regs[5];
-
- u8 suspend_irq_masks[5];
- u8 resume_reason[5];
- int is_suspended;
-
- int onkey1s_held;
-
- struct platform_device *rtc_pdev;
- struct platform_device *mbc_pdev;
- struct platform_device *adc_pdev;
- struct platform_device *input_pdev;
- struct platform_device *bl_pdev;
- struct platform_device *regulator_pdev[PCF50633_NUM_REGULATORS];
-};
-
-enum pcf50633_reg_int1 {
- PCF50633_INT1_ADPINS = 0x01, /* Adapter inserted */
- PCF50633_INT1_ADPREM = 0x02, /* Adapter removed */
- PCF50633_INT1_USBINS = 0x04, /* USB inserted */
- PCF50633_INT1_USBREM = 0x08, /* USB removed */
- /* reserved */
- PCF50633_INT1_ALARM = 0x40, /* RTC alarm time is reached */
- PCF50633_INT1_SECOND = 0x80, /* RTC periodic second interrupt */
-};
-
-enum pcf50633_reg_int2 {
- PCF50633_INT2_ONKEYR = 0x01, /* ONKEY rising edge */
- PCF50633_INT2_ONKEYF = 0x02, /* ONKEY falling edge */
- PCF50633_INT2_EXTON1R = 0x04, /* EXTON1 rising edge */
- PCF50633_INT2_EXTON1F = 0x08, /* EXTON1 falling edge */
- PCF50633_INT2_EXTON2R = 0x10, /* EXTON2 rising edge */
- PCF50633_INT2_EXTON2F = 0x20, /* EXTON2 falling edge */
- PCF50633_INT2_EXTON3R = 0x40, /* EXTON3 rising edge */
- PCF50633_INT2_EXTON3F = 0x80, /* EXTON3 falling edge */
-};
-
-enum pcf50633_reg_int3 {
- PCF50633_INT3_BATFULL = 0x01, /* Battery full */
- PCF50633_INT3_CHGHALT = 0x02, /* Charger halt */
- PCF50633_INT3_THLIMON = 0x04,
- PCF50633_INT3_THLIMOFF = 0x08,
- PCF50633_INT3_USBLIMON = 0x10,
- PCF50633_INT3_USBLIMOFF = 0x20,
- PCF50633_INT3_ADCRDY = 0x40, /* ADC result ready */
- PCF50633_INT3_ONKEY1S = 0x80, /* ONKEY pressed 1 second */
-};
-
-enum pcf50633_reg_int4 {
- PCF50633_INT4_LOWSYS = 0x01,
- PCF50633_INT4_LOWBAT = 0x02,
- PCF50633_INT4_HIGHTMP = 0x04,
- PCF50633_INT4_AUTOPWRFAIL = 0x08,
- PCF50633_INT4_DWN1PWRFAIL = 0x10,
- PCF50633_INT4_DWN2PWRFAIL = 0x20,
- PCF50633_INT4_LEDPWRFAIL = 0x40,
- PCF50633_INT4_LEDOVP = 0x80,
-};
-
-enum pcf50633_reg_int5 {
- PCF50633_INT5_LDO1PWRFAIL = 0x01,
- PCF50633_INT5_LDO2PWRFAIL = 0x02,
- PCF50633_INT5_LDO3PWRFAIL = 0x04,
- PCF50633_INT5_LDO4PWRFAIL = 0x08,
- PCF50633_INT5_LDO5PWRFAIL = 0x10,
- PCF50633_INT5_LDO6PWRFAIL = 0x20,
- PCF50633_INT5_HCLDOPWRFAIL = 0x40,
- PCF50633_INT5_HCLDOOVL = 0x80,
-};
-
-/* misc. registers */
-#define PCF50633_REG_OOCSHDWN 0x0c
-
-/* LED registers */
-#define PCF50633_REG_LEDOUT 0x28
-#define PCF50633_REG_LEDENA 0x29
-#define PCF50633_REG_LEDCTL 0x2a
-#define PCF50633_REG_LEDDIM 0x2b
-
-static inline struct pcf50633 *dev_to_pcf50633(struct device *dev)
-{
- return dev_get_drvdata(dev);
-}
-
-int pcf50633_irq_init(struct pcf50633 *pcf, int irq);
-void pcf50633_irq_free(struct pcf50633 *pcf);
-#ifdef CONFIG_PM
-int pcf50633_irq_suspend(struct pcf50633 *pcf);
-int pcf50633_irq_resume(struct pcf50633 *pcf);
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/pcf50633/gpio.h b/ANDROID_3.4.5/include/linux/mfd/pcf50633/gpio.h
deleted file mode 100644
index a42b845e..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/pcf50633/gpio.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * gpio.h -- GPIO driver for NXP PCF50633
- *
- * (C) 2006-2008 by Openmoko, Inc.
- * 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.
- */
-
-#ifndef __LINUX_MFD_PCF50633_GPIO_H
-#define __LINUX_MFD_PCF50633_GPIO_H
-
-#include <linux/mfd/pcf50633/core.h>
-
-#define PCF50633_GPIO1 1
-#define PCF50633_GPIO2 2
-#define PCF50633_GPIO3 3
-#define PCF50633_GPO 4
-
-#define PCF50633_REG_GPIO1CFG 0x14
-#define PCF50633_REG_GPIO2CFG 0x15
-#define PCF50633_REG_GPIO3CFG 0x16
-#define PCF50633_REG_GPOCFG 0x17
-
-#define PCF50633_GPOCFG_GPOSEL_MASK 0x07
-
-enum pcf50633_reg_gpocfg {
- PCF50633_GPOCFG_GPOSEL_0 = 0x00,
- PCF50633_GPOCFG_GPOSEL_LED_NFET = 0x01,
- PCF50633_GPOCFG_GPOSEL_SYSxOK = 0x02,
- PCF50633_GPOCFG_GPOSEL_CLK32K = 0x03,
- PCF50633_GPOCFG_GPOSEL_ADAPUSB = 0x04,
- PCF50633_GPOCFG_GPOSEL_USBxOK = 0x05,
- PCF50633_GPOCFG_GPOSEL_ACTPH4 = 0x06,
- PCF50633_GPOCFG_GPOSEL_1 = 0x07,
- PCF50633_GPOCFG_GPOSEL_INVERSE = 0x08,
-};
-
-int pcf50633_gpio_set(struct pcf50633 *pcf, int gpio, u8 val);
-u8 pcf50633_gpio_get(struct pcf50633 *pcf, int gpio);
-
-int pcf50633_gpio_invert_set(struct pcf50633 *, int gpio, int invert);
-int pcf50633_gpio_invert_get(struct pcf50633 *pcf, int gpio);
-
-int pcf50633_gpio_power_supply_set(struct pcf50633 *,
- int gpio, int regulator, int on);
-#endif /* __LINUX_MFD_PCF50633_GPIO_H */
-
-
diff --git a/ANDROID_3.4.5/include/linux/mfd/pcf50633/mbc.h b/ANDROID_3.4.5/include/linux/mfd/pcf50633/mbc.h
deleted file mode 100644
index df4f5fa8..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/pcf50633/mbc.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * mbc.h -- Driver for NXP PCF50633 Main Battery Charger
- *
- * (C) 2006-2008 by Openmoko, Inc.
- * 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.
- */
-
-#ifndef __LINUX_MFD_PCF50633_MBC_H
-#define __LINUX_MFD_PCF50633_MBC_H
-
-#include <linux/mfd/pcf50633/core.h>
-#include <linux/platform_device.h>
-
-#define PCF50633_REG_MBCC1 0x43
-#define PCF50633_REG_MBCC2 0x44
-#define PCF50633_REG_MBCC3 0x45
-#define PCF50633_REG_MBCC4 0x46
-#define PCF50633_REG_MBCC5 0x47
-#define PCF50633_REG_MBCC6 0x48
-#define PCF50633_REG_MBCC7 0x49
-#define PCF50633_REG_MBCC8 0x4a
-#define PCF50633_REG_MBCS1 0x4b
-#define PCF50633_REG_MBCS2 0x4c
-#define PCF50633_REG_MBCS3 0x4d
-
-enum pcf50633_reg_mbcc1 {
- PCF50633_MBCC1_CHGENA = 0x01, /* Charger enable */
- PCF50633_MBCC1_AUTOSTOP = 0x02,
- PCF50633_MBCC1_AUTORES = 0x04, /* automatic resume */
- PCF50633_MBCC1_RESUME = 0x08, /* explicit resume cmd */
- PCF50633_MBCC1_RESTART = 0x10, /* restart charging */
- PCF50633_MBCC1_PREWDTIME_60M = 0x20, /* max. precharging time */
- PCF50633_MBCC1_WDTIME_1H = 0x00,
- PCF50633_MBCC1_WDTIME_2H = 0x40,
- PCF50633_MBCC1_WDTIME_4H = 0x80,
- PCF50633_MBCC1_WDTIME_6H = 0xc0,
-};
-#define PCF50633_MBCC1_WDTIME_MASK 0xc0
-
-enum pcf50633_reg_mbcc2 {
- PCF50633_MBCC2_VBATCOND_2V7 = 0x00,
- PCF50633_MBCC2_VBATCOND_2V85 = 0x01,
- PCF50633_MBCC2_VBATCOND_3V0 = 0x02,
- PCF50633_MBCC2_VBATCOND_3V15 = 0x03,
- PCF50633_MBCC2_VMAX_4V = 0x00,
- PCF50633_MBCC2_VMAX_4V20 = 0x28,
- PCF50633_MBCC2_VRESDEBTIME_64S = 0x80, /* debounce time (32/64sec) */
-};
-
-enum pcf50633_reg_mbcc7 {
- PCF50633_MBCC7_USB_100mA = 0x00,
- PCF50633_MBCC7_USB_500mA = 0x01,
- PCF50633_MBCC7_USB_1000mA = 0x02,
- PCF50633_MBCC7_USB_SUSPEND = 0x03,
- PCF50633_MBCC7_BATTEMP_EN = 0x04,
- PCF50633_MBCC7_BATSYSIMAX_1A6 = 0x00,
- PCF50633_MBCC7_BATSYSIMAX_1A8 = 0x40,
- PCF50633_MBCC7_BATSYSIMAX_2A0 = 0x80,
- PCF50633_MBCC7_BATSYSIMAX_2A2 = 0xc0,
-};
-#define PCF50633_MBCC7_USB_MASK 0x03
-
-enum pcf50633_reg_mbcc8 {
- PCF50633_MBCC8_USBENASUS = 0x10,
-};
-
-enum pcf50633_reg_mbcs1 {
- PCF50633_MBCS1_USBPRES = 0x01,
- PCF50633_MBCS1_USBOK = 0x02,
- PCF50633_MBCS1_ADAPTPRES = 0x04,
- PCF50633_MBCS1_ADAPTOK = 0x08,
- PCF50633_MBCS1_TBAT_OK = 0x00,
- PCF50633_MBCS1_TBAT_ABOVE = 0x10,
- PCF50633_MBCS1_TBAT_BELOW = 0x20,
- PCF50633_MBCS1_TBAT_UNDEF = 0x30,
- PCF50633_MBCS1_PREWDTEXP = 0x40,
- PCF50633_MBCS1_WDTEXP = 0x80,
-};
-
-enum pcf50633_reg_mbcs2_mbcmod {
- PCF50633_MBCS2_MBC_PLAY = 0x00,
- PCF50633_MBCS2_MBC_USB_PRE = 0x01,
- PCF50633_MBCS2_MBC_USB_PRE_WAIT = 0x02,
- PCF50633_MBCS2_MBC_USB_FAST = 0x03,
- PCF50633_MBCS2_MBC_USB_FAST_WAIT = 0x04,
- PCF50633_MBCS2_MBC_USB_SUSPEND = 0x05,
- PCF50633_MBCS2_MBC_ADP_PRE = 0x06,
- PCF50633_MBCS2_MBC_ADP_PRE_WAIT = 0x07,
- PCF50633_MBCS2_MBC_ADP_FAST = 0x08,
- PCF50633_MBCS2_MBC_ADP_FAST_WAIT = 0x09,
- PCF50633_MBCS2_MBC_BAT_FULL = 0x0a,
- PCF50633_MBCS2_MBC_HALT = 0x0b,
-};
-#define PCF50633_MBCS2_MBC_MASK 0x0f
-enum pcf50633_reg_mbcs2_chgstat {
- PCF50633_MBCS2_CHGS_NONE = 0x00,
- PCF50633_MBCS2_CHGS_ADAPTER = 0x10,
- PCF50633_MBCS2_CHGS_USB = 0x20,
- PCF50633_MBCS2_CHGS_BOTH = 0x30,
-};
-#define PCF50633_MBCS2_RESSTAT_AUTO 0x40
-
-enum pcf50633_reg_mbcs3 {
- PCF50633_MBCS3_USBLIM_PLAY = 0x01,
- PCF50633_MBCS3_USBLIM_CGH = 0x02,
- PCF50633_MBCS3_TLIM_PLAY = 0x04,
- PCF50633_MBCS3_TLIM_CHG = 0x08,
- PCF50633_MBCS3_ILIM = 0x10, /* 1: Ibat > Icutoff */
- PCF50633_MBCS3_VLIM = 0x20, /* 1: Vbat == Vmax */
- PCF50633_MBCS3_VBATSTAT = 0x40, /* 1: Vbat > Vbatcond */
- PCF50633_MBCS3_VRES = 0x80, /* 1: Vbat > Vth(RES) */
-};
-
-#define PCF50633_MBCC2_VBATCOND_MASK 0x03
-#define PCF50633_MBCC2_VMAX_MASK 0x3c
-
-/* Charger status */
-#define PCF50633_MBC_USB_ONLINE 0x01
-#define PCF50633_MBC_USB_ACTIVE 0x02
-#define PCF50633_MBC_ADAPTER_ONLINE 0x04
-#define PCF50633_MBC_ADAPTER_ACTIVE 0x08
-
-int pcf50633_mbc_usb_curlim_set(struct pcf50633 *pcf, int ma);
-
-int pcf50633_mbc_get_status(struct pcf50633 *);
-int pcf50633_mbc_get_usb_online_status(struct pcf50633 *);
-
-#endif
-
diff --git a/ANDROID_3.4.5/include/linux/mfd/pcf50633/pmic.h b/ANDROID_3.4.5/include/linux/mfd/pcf50633/pmic.h
deleted file mode 100644
index 2d3dbe53..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/pcf50633/pmic.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef __LINUX_MFD_PCF50633_PMIC_H
-#define __LINUX_MFD_PCF50633_PMIC_H
-
-#include <linux/mfd/pcf50633/core.h>
-#include <linux/platform_device.h>
-
-#define PCF50633_REG_AUTOOUT 0x1a
-#define PCF50633_REG_AUTOENA 0x1b
-#define PCF50633_REG_AUTOCTL 0x1c
-#define PCF50633_REG_AUTOMXC 0x1d
-#define PCF50633_REG_DOWN1OUT 0x1e
-#define PCF50633_REG_DOWN1ENA 0x1f
-#define PCF50633_REG_DOWN1CTL 0x20
-#define PCF50633_REG_DOWN1MXC 0x21
-#define PCF50633_REG_DOWN2OUT 0x22
-#define PCF50633_REG_DOWN2ENA 0x23
-#define PCF50633_REG_DOWN2CTL 0x24
-#define PCF50633_REG_DOWN2MXC 0x25
-#define PCF50633_REG_MEMLDOOUT 0x26
-#define PCF50633_REG_MEMLDOENA 0x27
-#define PCF50633_REG_LDO1OUT 0x2d
-#define PCF50633_REG_LDO1ENA 0x2e
-#define PCF50633_REG_LDO2OUT 0x2f
-#define PCF50633_REG_LDO2ENA 0x30
-#define PCF50633_REG_LDO3OUT 0x31
-#define PCF50633_REG_LDO3ENA 0x32
-#define PCF50633_REG_LDO4OUT 0x33
-#define PCF50633_REG_LDO4ENA 0x34
-#define PCF50633_REG_LDO5OUT 0x35
-#define PCF50633_REG_LDO5ENA 0x36
-#define PCF50633_REG_LDO6OUT 0x37
-#define PCF50633_REG_LDO6ENA 0x38
-#define PCF50633_REG_HCLDOOUT 0x39
-#define PCF50633_REG_HCLDOENA 0x3a
-#define PCF50633_REG_HCLDOOVL 0x40
-
-enum pcf50633_regulator_enable {
- PCF50633_REGULATOR_ON = 0x01,
- PCF50633_REGULATOR_ON_GPIO1 = 0x02,
- PCF50633_REGULATOR_ON_GPIO2 = 0x04,
- PCF50633_REGULATOR_ON_GPIO3 = 0x08,
-};
-#define PCF50633_REGULATOR_ON_MASK 0x0f
-
-enum pcf50633_regulator_phase {
- PCF50633_REGULATOR_ACTPH1 = 0x00,
- PCF50633_REGULATOR_ACTPH2 = 0x10,
- PCF50633_REGULATOR_ACTPH3 = 0x20,
- PCF50633_REGULATOR_ACTPH4 = 0x30,
-};
-#define PCF50633_REGULATOR_ACTPH_MASK 0x30
-
-enum pcf50633_regulator_id {
- PCF50633_REGULATOR_AUTO,
- PCF50633_REGULATOR_DOWN1,
- PCF50633_REGULATOR_DOWN2,
- PCF50633_REGULATOR_LDO1,
- PCF50633_REGULATOR_LDO2,
- PCF50633_REGULATOR_LDO3,
- PCF50633_REGULATOR_LDO4,
- PCF50633_REGULATOR_LDO5,
- PCF50633_REGULATOR_LDO6,
- PCF50633_REGULATOR_HCLDO,
- PCF50633_REGULATOR_MEMLDO,
-};
-#endif
-
diff --git a/ANDROID_3.4.5/include/linux/mfd/pm8xxx/core.h b/ANDROID_3.4.5/include/linux/mfd/pm8xxx/core.h
deleted file mode 100644
index bd2f4f64..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/pm8xxx/core.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (c) 2011, Code Aurora Forum. 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 version 2 and
- * only version 2 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.
- */
-/*
- * Qualcomm PMIC 8xxx driver header file
- *
- */
-
-#ifndef __MFD_PM8XXX_CORE_H
-#define __MFD_PM8XXX_CORE_H
-
-#include <linux/mfd/core.h>
-
-struct pm8xxx_drvdata {
- int (*pmic_readb) (const struct device *dev, u16 addr, u8 *val);
- int (*pmic_writeb) (const struct device *dev, u16 addr, u8 val);
- int (*pmic_read_buf) (const struct device *dev, u16 addr, u8 *buf,
- int n);
- int (*pmic_write_buf) (const struct device *dev, u16 addr, u8 *buf,
- int n);
- int (*pmic_read_irq_stat) (const struct device *dev, int irq);
- void *pm_chip_data;
-};
-
-static inline int pm8xxx_readb(const struct device *dev, u16 addr, u8 *val)
-{
- struct pm8xxx_drvdata *dd = dev_get_drvdata(dev);
-
- if (!dd)
- return -EINVAL;
- return dd->pmic_readb(dev, addr, val);
-}
-
-static inline int pm8xxx_writeb(const struct device *dev, u16 addr, u8 val)
-{
- struct pm8xxx_drvdata *dd = dev_get_drvdata(dev);
-
- if (!dd)
- return -EINVAL;
- return dd->pmic_writeb(dev, addr, val);
-}
-
-static inline int pm8xxx_read_buf(const struct device *dev, u16 addr, u8 *buf,
- int n)
-{
- struct pm8xxx_drvdata *dd = dev_get_drvdata(dev);
-
- if (!dd)
- return -EINVAL;
- return dd->pmic_read_buf(dev, addr, buf, n);
-}
-
-static inline int pm8xxx_write_buf(const struct device *dev, u16 addr, u8 *buf,
- int n)
-{
- struct pm8xxx_drvdata *dd = dev_get_drvdata(dev);
-
- if (!dd)
- return -EINVAL;
- return dd->pmic_write_buf(dev, addr, buf, n);
-}
-
-static inline int pm8xxx_read_irq_stat(const struct device *dev, int irq)
-{
- struct pm8xxx_drvdata *dd = dev_get_drvdata(dev);
-
- if (!dd)
- return -EINVAL;
- return dd->pmic_read_irq_stat(dev, irq);
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/pm8xxx/irq.h b/ANDROID_3.4.5/include/linux/mfd/pm8xxx/irq.h
deleted file mode 100644
index 4b21769f..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/pm8xxx/irq.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (c) 2011, Code Aurora Forum. 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 version 2 and
- * only version 2 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.
- */
-/*
- * Qualcomm PMIC irq 8xxx driver header file
- *
- */
-
-#ifndef __MFD_PM8XXX_IRQ_H
-#define __MFD_PM8XXX_IRQ_H
-
-#include <linux/errno.h>
-#include <linux/err.h>
-
-struct pm8xxx_irq_core_data {
- u32 rev;
- int nirqs;
-};
-
-struct pm8xxx_irq_platform_data {
- int irq_base;
- struct pm8xxx_irq_core_data irq_cdata;
- int devirq;
- int irq_trigger_flag;
-};
-
-struct pm_irq_chip;
-
-#ifdef CONFIG_MFD_PM8XXX_IRQ
-int pm8xxx_get_irq_stat(struct pm_irq_chip *chip, int irq);
-struct pm_irq_chip * __devinit pm8xxx_irq_init(struct device *dev,
- const struct pm8xxx_irq_platform_data *pdata);
-int __devexit pm8xxx_irq_exit(struct pm_irq_chip *chip);
-#else
-static inline int pm8xxx_get_irq_stat(struct pm_irq_chip *chip, int irq)
-{
- return -ENXIO;
-}
-static inline struct pm_irq_chip * __devinit pm8xxx_irq_init(
- const struct device *dev,
- const struct pm8xxx_irq_platform_data *pdata)
-{
- return ERR_PTR(-ENXIO);
-}
-static inline int __devexit pm8xxx_irq_exit(struct pm_irq_chip *chip)
-{
- return -ENXIO;
-}
-#endif /* CONFIG_MFD_PM8XXX_IRQ */
-#endif /* __MFD_PM8XXX_IRQ_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/pm8xxx/pm8921.h b/ANDROID_3.4.5/include/linux/mfd/pm8xxx/pm8921.h
deleted file mode 100644
index 00fa3de7..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/pm8xxx/pm8921.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (c) 2011, Code Aurora Forum. 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 version 2 and
- * only version 2 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.
- */
-/*
- * Qualcomm PMIC 8921 driver header file
- *
- */
-
-#ifndef __MFD_PM8921_H
-#define __MFD_PM8921_H
-
-#include <linux/mfd/pm8xxx/irq.h>
-
-#define PM8921_NR_IRQS 256
-
-struct pm8921_platform_data {
- int irq_base;
- struct pm8xxx_irq_platform_data *irq_pdata;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/pm8xxx/rtc.h b/ANDROID_3.4.5/include/linux/mfd/pm8xxx/rtc.h
deleted file mode 100644
index 14f1983e..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/pm8xxx/rtc.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright (c) 2010-2011, Code Aurora Forum. 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 version 2 and
- * only version 2 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.
- */
-
-#ifndef __RTC_PM8XXX_H__
-#define __RTC_PM8XXX_H__
-
-#define PM8XXX_RTC_DEV_NAME "rtc-pm8xxx"
-/**
- * struct pm8xxx_rtc_pdata - RTC driver platform data
- * @rtc_write_enable: variable stating RTC write capability
- */
-struct pm8xxx_rtc_platform_data {
- bool rtc_write_enable;
-};
-
-#endif /* __RTC_PM8XXX_H__ */
diff --git a/ANDROID_3.4.5/include/linux/mfd/rc5t583.h b/ANDROID_3.4.5/include/linux/mfd/rc5t583.h
deleted file mode 100644
index 0b64b19d..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/rc5t583.h
+++ /dev/null
@@ -1,326 +0,0 @@
-/*
- * Core driver interface to access RICOH_RC5T583 power management chip.
- *
- * Copyright (c) 2011-2012, NVIDIA CORPORATION. All rights reserved.
- * Author: Laxman dewangan <ldewangan@nvidia.com>
- *
- * Based on code
- * Copyright (C) 2011 RICOH COMPANY,LTD
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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, see <http://www.gnu.org/licenses/>.
- *
- */
-
-#ifndef __LINUX_MFD_RC5T583_H
-#define __LINUX_MFD_RC5T583_H
-
-#include <linux/mutex.h>
-#include <linux/types.h>
-#include <linux/regmap.h>
-
-#define RC5T583_MAX_REGS 0xF8
-
-/* Maximum number of main interrupts */
-#define MAX_MAIN_INTERRUPT 5
-#define RC5T583_MAX_GPEDGE_REG 2
-#define RC5T583_MAX_INTERRUPT_MASK_REGS 9
-
-/* Interrupt enable register */
-#define RC5T583_INT_EN_SYS1 0x19
-#define RC5T583_INT_EN_SYS2 0x1D
-#define RC5T583_INT_EN_DCDC 0x41
-#define RC5T583_INT_EN_RTC 0xED
-#define RC5T583_INT_EN_ADC1 0x90
-#define RC5T583_INT_EN_ADC2 0x91
-#define RC5T583_INT_EN_ADC3 0x92
-
-/* Interrupt status registers (monitor regs in Ricoh)*/
-#define RC5T583_INTC_INTPOL 0xAD
-#define RC5T583_INTC_INTEN 0xAE
-#define RC5T583_INTC_INTMON 0xAF
-
-#define RC5T583_INT_MON_GRP 0xAF
-#define RC5T583_INT_MON_SYS1 0x1B
-#define RC5T583_INT_MON_SYS2 0x1F
-#define RC5T583_INT_MON_DCDC 0x43
-#define RC5T583_INT_MON_RTC 0xEE
-
-/* Interrupt clearing registers */
-#define RC5T583_INT_IR_SYS1 0x1A
-#define RC5T583_INT_IR_SYS2 0x1E
-#define RC5T583_INT_IR_DCDC 0x42
-#define RC5T583_INT_IR_RTC 0xEE
-#define RC5T583_INT_IR_ADCL 0x94
-#define RC5T583_INT_IR_ADCH 0x95
-#define RC5T583_INT_IR_ADCEND 0x96
-#define RC5T583_INT_IR_GPIOR 0xA9
-#define RC5T583_INT_IR_GPIOF 0xAA
-
-/* Sleep sequence registers */
-#define RC5T583_SLPSEQ1 0x21
-#define RC5T583_SLPSEQ2 0x22
-#define RC5T583_SLPSEQ3 0x23
-#define RC5T583_SLPSEQ4 0x24
-#define RC5T583_SLPSEQ5 0x25
-#define RC5T583_SLPSEQ6 0x26
-#define RC5T583_SLPSEQ7 0x27
-#define RC5T583_SLPSEQ8 0x28
-#define RC5T583_SLPSEQ9 0x29
-#define RC5T583_SLPSEQ10 0x2A
-#define RC5T583_SLPSEQ11 0x2B
-
-/* Regulator registers */
-#define RC5T583_REG_DC0CTL 0x30
-#define RC5T583_REG_DC0DAC 0x31
-#define RC5T583_REG_DC0LATCTL 0x32
-#define RC5T583_REG_SR0CTL 0x33
-
-#define RC5T583_REG_DC1CTL 0x34
-#define RC5T583_REG_DC1DAC 0x35
-#define RC5T583_REG_DC1LATCTL 0x36
-#define RC5T583_REG_SR1CTL 0x37
-
-#define RC5T583_REG_DC2CTL 0x38
-#define RC5T583_REG_DC2DAC 0x39
-#define RC5T583_REG_DC2LATCTL 0x3A
-#define RC5T583_REG_SR2CTL 0x3B
-
-#define RC5T583_REG_DC3CTL 0x3C
-#define RC5T583_REG_DC3DAC 0x3D
-#define RC5T583_REG_DC3LATCTL 0x3E
-#define RC5T583_REG_SR3CTL 0x3F
-
-
-#define RC5T583_REG_LDOEN1 0x50
-#define RC5T583_REG_LDOEN2 0x51
-#define RC5T583_REG_LDODIS1 0x52
-#define RC5T583_REG_LDODIS2 0x53
-
-#define RC5T583_REG_LDO0DAC 0x54
-#define RC5T583_REG_LDO1DAC 0x55
-#define RC5T583_REG_LDO2DAC 0x56
-#define RC5T583_REG_LDO3DAC 0x57
-#define RC5T583_REG_LDO4DAC 0x58
-#define RC5T583_REG_LDO5DAC 0x59
-#define RC5T583_REG_LDO6DAC 0x5A
-#define RC5T583_REG_LDO7DAC 0x5B
-#define RC5T583_REG_LDO8DAC 0x5C
-#define RC5T583_REG_LDO9DAC 0x5D
-
-#define RC5T583_REG_DC0DAC_DS 0x60
-#define RC5T583_REG_DC1DAC_DS 0x61
-#define RC5T583_REG_DC2DAC_DS 0x62
-#define RC5T583_REG_DC3DAC_DS 0x63
-
-#define RC5T583_REG_LDO0DAC_DS 0x64
-#define RC5T583_REG_LDO1DAC_DS 0x65
-#define RC5T583_REG_LDO2DAC_DS 0x66
-#define RC5T583_REG_LDO3DAC_DS 0x67
-#define RC5T583_REG_LDO4DAC_DS 0x68
-#define RC5T583_REG_LDO5DAC_DS 0x69
-#define RC5T583_REG_LDO6DAC_DS 0x6A
-#define RC5T583_REG_LDO7DAC_DS 0x6B
-#define RC5T583_REG_LDO8DAC_DS 0x6C
-#define RC5T583_REG_LDO9DAC_DS 0x6D
-
-/* GPIO register base address */
-#define RC5T583_GPIO_IOSEL 0xA0
-#define RC5T583_GPIO_PDEN 0xA1
-#define RC5T583_GPIO_IOOUT 0xA2
-#define RC5T583_GPIO_PGSEL 0xA3
-#define RC5T583_GPIO_GPINV 0xA4
-#define RC5T583_GPIO_GPDEB 0xA5
-#define RC5T583_GPIO_GPEDGE1 0xA6
-#define RC5T583_GPIO_GPEDGE2 0xA7
-#define RC5T583_GPIO_EN_INT 0xA8
-#define RC5T583_GPIO_MON_IOIN 0xAB
-#define RC5T583_GPIO_GPOFUNC 0xAC
-
-/* RICOH_RC5T583 IRQ definitions */
-enum {
- RC5T583_IRQ_ONKEY,
- RC5T583_IRQ_ACOK,
- RC5T583_IRQ_LIDOPEN,
- RC5T583_IRQ_PREOT,
- RC5T583_IRQ_CLKSTP,
- RC5T583_IRQ_ONKEY_OFF,
- RC5T583_IRQ_WD,
- RC5T583_IRQ_EN_PWRREQ1,
- RC5T583_IRQ_EN_PWRREQ2,
- RC5T583_IRQ_PRE_VINDET,
-
- RC5T583_IRQ_DC0LIM,
- RC5T583_IRQ_DC1LIM,
- RC5T583_IRQ_DC2LIM,
- RC5T583_IRQ_DC3LIM,
-
- RC5T583_IRQ_CTC,
- RC5T583_IRQ_YALE,
- RC5T583_IRQ_DALE,
- RC5T583_IRQ_WALE,
-
- RC5T583_IRQ_AIN1L,
- RC5T583_IRQ_AIN2L,
- RC5T583_IRQ_AIN3L,
- RC5T583_IRQ_VBATL,
- RC5T583_IRQ_VIN3L,
- RC5T583_IRQ_VIN8L,
- RC5T583_IRQ_AIN1H,
- RC5T583_IRQ_AIN2H,
- RC5T583_IRQ_AIN3H,
- RC5T583_IRQ_VBATH,
- RC5T583_IRQ_VIN3H,
- RC5T583_IRQ_VIN8H,
- RC5T583_IRQ_ADCEND,
-
- RC5T583_IRQ_GPIO0,
- RC5T583_IRQ_GPIO1,
- RC5T583_IRQ_GPIO2,
- RC5T583_IRQ_GPIO3,
- RC5T583_IRQ_GPIO4,
- RC5T583_IRQ_GPIO5,
- RC5T583_IRQ_GPIO6,
- RC5T583_IRQ_GPIO7,
-
- /* Should be last entry */
- RC5T583_MAX_IRQS,
-};
-
-/* Ricoh583 gpio definitions */
-enum {
- RC5T583_GPIO0,
- RC5T583_GPIO1,
- RC5T583_GPIO2,
- RC5T583_GPIO3,
- RC5T583_GPIO4,
- RC5T583_GPIO5,
- RC5T583_GPIO6,
- RC5T583_GPIO7,
-
- /* Should be last entry */
- RC5T583_MAX_GPIO,
-};
-
-enum {
- RC5T583_DS_NONE,
- RC5T583_DS_DC0,
- RC5T583_DS_DC1,
- RC5T583_DS_DC2,
- RC5T583_DS_DC3,
- RC5T583_DS_LDO0,
- RC5T583_DS_LDO1,
- RC5T583_DS_LDO2,
- RC5T583_DS_LDO3,
- RC5T583_DS_LDO4,
- RC5T583_DS_LDO5,
- RC5T583_DS_LDO6,
- RC5T583_DS_LDO7,
- RC5T583_DS_LDO8,
- RC5T583_DS_LDO9,
- RC5T583_DS_PSO0,
- RC5T583_DS_PSO1,
- RC5T583_DS_PSO2,
- RC5T583_DS_PSO3,
- RC5T583_DS_PSO4,
- RC5T583_DS_PSO5,
- RC5T583_DS_PSO6,
- RC5T583_DS_PSO7,
-
- /* Should be last entry */
- RC5T583_DS_MAX,
-};
-
-/*
- * Ricoh pmic RC5T583 supports sleep through two external controls.
- * The output of gpios and regulator can be enable/disable through
- * this external signals.
- */
-enum {
- RC5T583_EXT_PWRREQ1_CONTROL = 0x1,
- RC5T583_EXT_PWRREQ2_CONTROL = 0x2,
-};
-
-struct rc5t583 {
- struct device *dev;
- struct regmap *regmap;
- int chip_irq;
- int irq_base;
- struct mutex irq_lock;
- unsigned long group_irq_en[MAX_MAIN_INTERRUPT];
-
- /* For main interrupt bits in INTC */
- uint8_t intc_inten_reg;
-
- /* For group interrupt bits and address */
- uint8_t irq_en_reg[RC5T583_MAX_INTERRUPT_MASK_REGS];
-
- /* For gpio edge */
- uint8_t gpedge_reg[RC5T583_MAX_GPEDGE_REG];
-};
-
-/*
- * rc5t583_platform_data: Platform data for ricoh rc5t583 pmu.
- * The board specific data is provided through this structure.
- * @irq_base: Irq base number on which this device registers their interrupts.
- * @enable_shutdown: Enable shutdown through the input pin "shutdown".
- */
-
-struct rc5t583_platform_data {
- int irq_base;
- bool enable_shutdown;
-};
-
-static inline int rc5t583_write(struct device *dev, uint8_t reg, uint8_t val)
-{
- struct rc5t583 *rc5t583 = dev_get_drvdata(dev);
- return regmap_write(rc5t583->regmap, reg, val);
-}
-
-static inline int rc5t583_read(struct device *dev, uint8_t reg, uint8_t *val)
-{
- struct rc5t583 *rc5t583 = dev_get_drvdata(dev);
- unsigned int ival;
- int ret;
- ret = regmap_read(rc5t583->regmap, reg, &ival);
- if (!ret)
- *val = (uint8_t)ival;
- return ret;
-}
-
-static inline int rc5t583_set_bits(struct device *dev, unsigned int reg,
- unsigned int bit_mask)
-{
- struct rc5t583 *rc5t583 = dev_get_drvdata(dev);
- return regmap_update_bits(rc5t583->regmap, reg, bit_mask, bit_mask);
-}
-
-static inline int rc5t583_clear_bits(struct device *dev, unsigned int reg,
- unsigned int bit_mask)
-{
- struct rc5t583 *rc5t583 = dev_get_drvdata(dev);
- return regmap_update_bits(rc5t583->regmap, reg, bit_mask, 0);
-}
-
-static inline int rc5t583_update(struct device *dev, unsigned int reg,
- unsigned int val, unsigned int mask)
-{
- struct rc5t583 *rc5t583 = dev_get_drvdata(dev);
- return regmap_update_bits(rc5t583->regmap, reg, mask, val);
-}
-
-int rc5t583_ext_power_req_config(struct device *dev, int deepsleep_id,
- int ext_pwr_req, int deepsleep_slot_nr);
-int rc5t583_irq_init(struct rc5t583 *rc5t583, int irq, int irq_base);
-int rc5t583_irq_exit(struct rc5t583 *rc5t583);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/rdc321x.h b/ANDROID_3.4.5/include/linux/mfd/rdc321x.h
deleted file mode 100644
index 4bdf19c8..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/rdc321x.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef __RDC321X_MFD_H
-#define __RDC321X_MFD_H
-
-#include <linux/types.h>
-#include <linux/pci.h>
-
-/* Offsets to be accessed in the southbridge PCI
- * device configuration register */
-#define RDC321X_WDT_CTRL 0x44
-#define RDC321X_GPIO_CTRL_REG1 0x48
-#define RDC321X_GPIO_DATA_REG1 0x4c
-#define RDC321X_GPIO_CTRL_REG2 0x84
-#define RDC321X_GPIO_DATA_REG2 0x88
-
-#define RDC321X_MAX_GPIO 58
-
-struct rdc321x_gpio_pdata {
- struct pci_dev *sb_pdev;
- unsigned max_gpios;
-};
-
-struct rdc321x_wdt_pdata {
- struct pci_dev *sb_pdev;
-};
-
-#endif /* __RDC321X_MFD_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/s5m87xx/s5m-core.h b/ANDROID_3.4.5/include/linux/mfd/s5m87xx/s5m-core.h
deleted file mode 100644
index a7480b57..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/s5m87xx/s5m-core.h
+++ /dev/null
@@ -1,373 +0,0 @@
-/*
- * s5m-core.h
- *
- * Copyright (c) 2011 Samsung Electronics Co., Ltd
- * http://www.samsung.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 __LINUX_MFD_S5M_CORE_H
-#define __LINUX_MFD_S5M_CORE_H
-
-#define NUM_IRQ_REGS 4
-
-enum s5m_device_type {
- S5M8751X,
- S5M8763X,
- S5M8767X,
-};
-
-/* S5M8767 registers */
-enum s5m8767_reg {
- S5M8767_REG_ID,
- S5M8767_REG_INT1,
- S5M8767_REG_INT2,
- S5M8767_REG_INT3,
- S5M8767_REG_INT1M,
- S5M8767_REG_INT2M,
- S5M8767_REG_INT3M,
- S5M8767_REG_STATUS1,
- S5M8767_REG_STATUS2,
- S5M8767_REG_STATUS3,
- S5M8767_REG_CTRL1,
- S5M8767_REG_CTRL2,
- S5M8767_REG_LOWBAT1,
- S5M8767_REG_LOWBAT2,
- S5M8767_REG_BUCHG,
- S5M8767_REG_DVSRAMP,
- S5M8767_REG_DVSTIMER2 = 0x10,
- S5M8767_REG_DVSTIMER3,
- S5M8767_REG_DVSTIMER4,
- S5M8767_REG_LDO1,
- S5M8767_REG_LDO2,
- S5M8767_REG_LDO3,
- S5M8767_REG_LDO4,
- S5M8767_REG_LDO5,
- S5M8767_REG_LDO6,
- S5M8767_REG_LDO7,
- S5M8767_REG_LDO8,
- S5M8767_REG_LDO9,
- S5M8767_REG_LDO10,
- S5M8767_REG_LDO11,
- S5M8767_REG_LDO12,
- S5M8767_REG_LDO13,
- S5M8767_REG_LDO14 = 0x20,
- S5M8767_REG_LDO15,
- S5M8767_REG_LDO16,
- S5M8767_REG_LDO17,
- S5M8767_REG_LDO18,
- S5M8767_REG_LDO19,
- S5M8767_REG_LDO20,
- S5M8767_REG_LDO21,
- S5M8767_REG_LDO22,
- S5M8767_REG_LDO23,
- S5M8767_REG_LDO24,
- S5M8767_REG_LDO25,
- S5M8767_REG_LDO26,
- S5M8767_REG_LDO27,
- S5M8767_REG_LDO28,
- S5M8767_REG_UVLO = 0x31,
- S5M8767_REG_BUCK1CTRL1,
- S5M8767_REG_BUCK1CTRL2,
- S5M8767_REG_BUCK2CTRL,
- S5M8767_REG_BUCK2DVS1,
- S5M8767_REG_BUCK2DVS2,
- S5M8767_REG_BUCK2DVS3,
- S5M8767_REG_BUCK2DVS4,
- S5M8767_REG_BUCK2DVS5,
- S5M8767_REG_BUCK2DVS6,
- S5M8767_REG_BUCK2DVS7,
- S5M8767_REG_BUCK2DVS8,
- S5M8767_REG_BUCK3CTRL,
- S5M8767_REG_BUCK3DVS1,
- S5M8767_REG_BUCK3DVS2,
- S5M8767_REG_BUCK3DVS3,
- S5M8767_REG_BUCK3DVS4,
- S5M8767_REG_BUCK3DVS5,
- S5M8767_REG_BUCK3DVS6,
- S5M8767_REG_BUCK3DVS7,
- S5M8767_REG_BUCK3DVS8,
- S5M8767_REG_BUCK4CTRL,
- S5M8767_REG_BUCK4DVS1,
- S5M8767_REG_BUCK4DVS2,
- S5M8767_REG_BUCK4DVS3,
- S5M8767_REG_BUCK4DVS4,
- S5M8767_REG_BUCK4DVS5,
- S5M8767_REG_BUCK4DVS6,
- S5M8767_REG_BUCK4DVS7,
- S5M8767_REG_BUCK4DVS8,
- S5M8767_REG_BUCK5CTRL1,
- S5M8767_REG_BUCK5CTRL2,
- S5M8767_REG_BUCK5CTRL3,
- S5M8767_REG_BUCK5CTRL4,
- S5M8767_REG_BUCK5CTRL5,
- S5M8767_REG_BUCK6CTRL1,
- S5M8767_REG_BUCK6CTRL2,
- S5M8767_REG_BUCK7CTRL1,
- S5M8767_REG_BUCK7CTRL2,
- S5M8767_REG_BUCK8CTRL1,
- S5M8767_REG_BUCK8CTRL2,
- S5M8767_REG_BUCK9CTRL1,
- S5M8767_REG_BUCK9CTRL2,
- S5M8767_REG_LDO1CTRL,
- S5M8767_REG_LDO2_1CTRL,
- S5M8767_REG_LDO2_2CTRL,
- S5M8767_REG_LDO2_3CTRL,
- S5M8767_REG_LDO2_4CTRL,
- S5M8767_REG_LDO3CTRL,
- S5M8767_REG_LDO4CTRL,
- S5M8767_REG_LDO5CTRL,
- S5M8767_REG_LDO6CTRL,
- S5M8767_REG_LDO7CTRL,
- S5M8767_REG_LDO8CTRL,
- S5M8767_REG_LDO9CTRL,
- S5M8767_REG_LDO10CTRL,
- S5M8767_REG_LDO11CTRL,
- S5M8767_REG_LDO12CTRL,
- S5M8767_REG_LDO13CTRL,
- S5M8767_REG_LDO14CTRL,
- S5M8767_REG_LDO15CTRL,
- S5M8767_REG_LDO16CTRL,
- S5M8767_REG_LDO17CTRL,
- S5M8767_REG_LDO18CTRL,
- S5M8767_REG_LDO19CTRL,
- S5M8767_REG_LDO20CTRL,
- S5M8767_REG_LDO21CTRL,
- S5M8767_REG_LDO22CTRL,
- S5M8767_REG_LDO23CTRL,
- S5M8767_REG_LDO24CTRL,
- S5M8767_REG_LDO25CTRL,
- S5M8767_REG_LDO26CTRL,
- S5M8767_REG_LDO27CTRL,
- S5M8767_REG_LDO28CTRL,
-};
-
-/* S5M8763 registers */
-enum s5m8763_reg {
- S5M8763_REG_IRQ1,
- S5M8763_REG_IRQ2,
- S5M8763_REG_IRQ3,
- S5M8763_REG_IRQ4,
- S5M8763_REG_IRQM1,
- S5M8763_REG_IRQM2,
- S5M8763_REG_IRQM3,
- S5M8763_REG_IRQM4,
- S5M8763_REG_STATUS1,
- S5M8763_REG_STATUS2,
- S5M8763_REG_STATUSM1,
- S5M8763_REG_STATUSM2,
- S5M8763_REG_CHGR1,
- S5M8763_REG_CHGR2,
- S5M8763_REG_LDO_ACTIVE_DISCHARGE1,
- S5M8763_REG_LDO_ACTIVE_DISCHARGE2,
- S5M8763_REG_BUCK_ACTIVE_DISCHARGE3,
- S5M8763_REG_ONOFF1,
- S5M8763_REG_ONOFF2,
- S5M8763_REG_ONOFF3,
- S5M8763_REG_ONOFF4,
- S5M8763_REG_BUCK1_VOLTAGE1,
- S5M8763_REG_BUCK1_VOLTAGE2,
- S5M8763_REG_BUCK1_VOLTAGE3,
- S5M8763_REG_BUCK1_VOLTAGE4,
- S5M8763_REG_BUCK2_VOLTAGE1,
- S5M8763_REG_BUCK2_VOLTAGE2,
- S5M8763_REG_BUCK3,
- S5M8763_REG_BUCK4,
- S5M8763_REG_LDO1_LDO2,
- S5M8763_REG_LDO3,
- S5M8763_REG_LDO4,
- S5M8763_REG_LDO5,
- S5M8763_REG_LDO6,
- S5M8763_REG_LDO7,
- S5M8763_REG_LDO7_LDO8,
- S5M8763_REG_LDO9_LDO10,
- S5M8763_REG_LDO11,
- S5M8763_REG_LDO12,
- S5M8763_REG_LDO13,
- S5M8763_REG_LDO14,
- S5M8763_REG_LDO15,
- S5M8763_REG_LDO16,
- S5M8763_REG_BKCHR,
- S5M8763_REG_LBCNFG1,
- S5M8763_REG_LBCNFG2,
-};
-
-enum s5m8767_irq {
- S5M8767_IRQ_PWRR,
- S5M8767_IRQ_PWRF,
- S5M8767_IRQ_PWR1S,
- S5M8767_IRQ_JIGR,
- S5M8767_IRQ_JIGF,
- S5M8767_IRQ_LOWBAT2,
- S5M8767_IRQ_LOWBAT1,
-
- S5M8767_IRQ_MRB,
- S5M8767_IRQ_DVSOK2,
- S5M8767_IRQ_DVSOK3,
- S5M8767_IRQ_DVSOK4,
-
- S5M8767_IRQ_RTC60S,
- S5M8767_IRQ_RTCA1,
- S5M8767_IRQ_RTCA2,
- S5M8767_IRQ_SMPL,
- S5M8767_IRQ_RTC1S,
- S5M8767_IRQ_WTSR,
-
- S5M8767_IRQ_NR,
-};
-
-#define S5M8767_IRQ_PWRR_MASK (1 << 0)
-#define S5M8767_IRQ_PWRF_MASK (1 << 1)
-#define S5M8767_IRQ_PWR1S_MASK (1 << 3)
-#define S5M8767_IRQ_JIGR_MASK (1 << 4)
-#define S5M8767_IRQ_JIGF_MASK (1 << 5)
-#define S5M8767_IRQ_LOWBAT2_MASK (1 << 6)
-#define S5M8767_IRQ_LOWBAT1_MASK (1 << 7)
-
-#define S5M8767_IRQ_MRB_MASK (1 << 2)
-#define S5M8767_IRQ_DVSOK2_MASK (1 << 3)
-#define S5M8767_IRQ_DVSOK3_MASK (1 << 4)
-#define S5M8767_IRQ_DVSOK4_MASK (1 << 5)
-
-#define S5M8767_IRQ_RTC60S_MASK (1 << 0)
-#define S5M8767_IRQ_RTCA1_MASK (1 << 1)
-#define S5M8767_IRQ_RTCA2_MASK (1 << 2)
-#define S5M8767_IRQ_SMPL_MASK (1 << 3)
-#define S5M8767_IRQ_RTC1S_MASK (1 << 4)
-#define S5M8767_IRQ_WTSR_MASK (1 << 5)
-
-enum s5m8763_irq {
- S5M8763_IRQ_DCINF,
- S5M8763_IRQ_DCINR,
- S5M8763_IRQ_JIGF,
- S5M8763_IRQ_JIGR,
- S5M8763_IRQ_PWRONF,
- S5M8763_IRQ_PWRONR,
-
- S5M8763_IRQ_WTSREVNT,
- S5M8763_IRQ_SMPLEVNT,
- S5M8763_IRQ_ALARM1,
- S5M8763_IRQ_ALARM0,
-
- S5M8763_IRQ_ONKEY1S,
- S5M8763_IRQ_TOPOFFR,
- S5M8763_IRQ_DCINOVPR,
- S5M8763_IRQ_CHGRSTF,
- S5M8763_IRQ_DONER,
- S5M8763_IRQ_CHGFAULT,
-
- S5M8763_IRQ_LOBAT1,
- S5M8763_IRQ_LOBAT2,
-
- S5M8763_IRQ_NR,
-};
-
-#define S5M8763_IRQ_DCINF_MASK (1 << 2)
-#define S5M8763_IRQ_DCINR_MASK (1 << 3)
-#define S5M8763_IRQ_JIGF_MASK (1 << 4)
-#define S5M8763_IRQ_JIGR_MASK (1 << 5)
-#define S5M8763_IRQ_PWRONF_MASK (1 << 6)
-#define S5M8763_IRQ_PWRONR_MASK (1 << 7)
-
-#define S5M8763_IRQ_WTSREVNT_MASK (1 << 0)
-#define S5M8763_IRQ_SMPLEVNT_MASK (1 << 1)
-#define S5M8763_IRQ_ALARM1_MASK (1 << 2)
-#define S5M8763_IRQ_ALARM0_MASK (1 << 3)
-
-#define S5M8763_IRQ_ONKEY1S_MASK (1 << 0)
-#define S5M8763_IRQ_TOPOFFR_MASK (1 << 2)
-#define S5M8763_IRQ_DCINOVPR_MASK (1 << 3)
-#define S5M8763_IRQ_CHGRSTF_MASK (1 << 4)
-#define S5M8763_IRQ_DONER_MASK (1 << 5)
-#define S5M8763_IRQ_CHGFAULT_MASK (1 << 7)
-
-#define S5M8763_IRQ_LOBAT1_MASK (1 << 0)
-#define S5M8763_IRQ_LOBAT2_MASK (1 << 1)
-
-#define S5M8763_ENRAMP (1 << 4)
-
-/**
- * struct s5m87xx_dev - s5m87xx master device for sub-drivers
- * @dev: master device of the chip (can be used to access platform data)
- * @i2c: i2c client private data for regulator
- * @rtc: i2c client private data for rtc
- * @iolock: mutex for serializing io access
- * @irqlock: mutex for buslock
- * @irq_base: base IRQ number for s5m87xx, required for IRQs
- * @irq: generic IRQ number for s5m87xx
- * @ono: power onoff IRQ number for s5m87xx
- * @irq_masks_cur: currently active value
- * @irq_masks_cache: cached hardware value
- * @type: indicate which s5m87xx "variant" is used
- */
-struct s5m87xx_dev {
- struct device *dev;
- struct regmap *regmap;
- struct i2c_client *i2c;
- struct i2c_client *rtc;
- struct mutex iolock;
- struct mutex irqlock;
-
- int device_type;
- int irq_base;
- int irq;
- int ono;
- u8 irq_masks_cur[NUM_IRQ_REGS];
- u8 irq_masks_cache[NUM_IRQ_REGS];
- int type;
- bool wakeup;
-};
-
-int s5m_irq_init(struct s5m87xx_dev *s5m87xx);
-void s5m_irq_exit(struct s5m87xx_dev *s5m87xx);
-int s5m_irq_resume(struct s5m87xx_dev *s5m87xx);
-
-extern int s5m_reg_read(struct s5m87xx_dev *s5m87xx, u8 reg, void *dest);
-extern int s5m_bulk_read(struct s5m87xx_dev *s5m87xx, u8 reg, int count, u8 *buf);
-extern int s5m_reg_write(struct s5m87xx_dev *s5m87xx, u8 reg, u8 value);
-extern int s5m_bulk_write(struct s5m87xx_dev *s5m87xx, u8 reg, int count, u8 *buf);
-extern int s5m_reg_update(struct s5m87xx_dev *s5m87xx, u8 reg, u8 val, u8 mask);
-
-struct s5m_platform_data {
- struct s5m_regulator_data *regulators;
- int device_type;
- int num_regulators;
-
- int irq_base;
- int (*cfg_pmic_irq)(void);
-
- int ono;
- bool wakeup;
- bool buck_voltage_lock;
-
- int buck_gpios[3];
- int buck2_voltage[8];
- bool buck2_gpiodvs;
- int buck3_voltage[8];
- bool buck3_gpiodvs;
- int buck4_voltage[8];
- bool buck4_gpiodvs;
-
- int buck_set1;
- int buck_set2;
- int buck_set3;
- int buck2_enable;
- int buck3_enable;
- int buck4_enable;
- int buck_default_idx;
- int buck2_default_idx;
- int buck3_default_idx;
- int buck4_default_idx;
-
- int buck_ramp_delay;
- bool buck2_ramp_enable;
- bool buck3_ramp_enable;
- bool buck4_ramp_enable;
-};
-
-#endif /* __LINUX_MFD_S5M_CORE_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/s5m87xx/s5m-pmic.h b/ANDROID_3.4.5/include/linux/mfd/s5m87xx/s5m-pmic.h
deleted file mode 100644
index a72a5d27..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/s5m87xx/s5m-pmic.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/* s5m87xx.h
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
- * http://www.samsung.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.
-*/
-
-#ifndef __LINUX_MFD_S5M_PMIC_H
-#define __LINUX_MFD_S5M_PMIC_H
-
-#include <linux/regulator/machine.h>
-
-/* S5M8767 regulator ids */
-enum s5m8767_regulators {
- S5M8767_LDO1,
- S5M8767_LDO2,
- S5M8767_LDO3,
- S5M8767_LDO4,
- S5M8767_LDO5,
- S5M8767_LDO6,
- S5M8767_LDO7,
- S5M8767_LDO8,
- S5M8767_LDO9,
- S5M8767_LDO10,
- S5M8767_LDO11,
- S5M8767_LDO12,
- S5M8767_LDO13,
- S5M8767_LDO14,
- S5M8767_LDO15,
- S5M8767_LDO16,
- S5M8767_LDO17,
- S5M8767_LDO18,
- S5M8767_LDO19,
- S5M8767_LDO20,
- S5M8767_LDO21,
- S5M8767_LDO22,
- S5M8767_LDO23,
- S5M8767_LDO24,
- S5M8767_LDO25,
- S5M8767_LDO26,
- S5M8767_LDO27,
- S5M8767_LDO28,
- S5M8767_BUCK1,
- S5M8767_BUCK2,
- S5M8767_BUCK3,
- S5M8767_BUCK4,
- S5M8767_BUCK5,
- S5M8767_BUCK6,
- S5M8767_BUCK7,
- S5M8767_BUCK8,
- S5M8767_BUCK9,
- S5M8767_AP_EN32KHZ,
- S5M8767_CP_EN32KHZ,
-
- S5M8767_REG_MAX,
-};
-
-/* S5M8763 regulator ids */
-enum s5m8763_regulators {
- S5M8763_LDO1,
- S5M8763_LDO2,
- S5M8763_LDO3,
- S5M8763_LDO4,
- S5M8763_LDO5,
- S5M8763_LDO6,
- S5M8763_LDO7,
- S5M8763_LDO8,
- S5M8763_LDO9,
- S5M8763_LDO10,
- S5M8763_LDO11,
- S5M8763_LDO12,
- S5M8763_LDO13,
- S5M8763_LDO14,
- S5M8763_LDO15,
- S5M8763_LDO16,
- S5M8763_BUCK1,
- S5M8763_BUCK2,
- S5M8763_BUCK3,
- S5M8763_BUCK4,
- S5M8763_AP_EN32KHZ,
- S5M8763_CP_EN32KHZ,
- S5M8763_ENCHGVI,
- S5M8763_ESAFEUSB1,
- S5M8763_ESAFEUSB2,
-};
-
-/**
- * s5m87xx_regulator_data - regulator data
- * @id: regulator id
- * @initdata: regulator init data (contraints, supplies, ...)
- */
-struct s5m_regulator_data {
- int id;
- struct regulator_init_data *initdata;
-};
-
-#endif /* __LINUX_MFD_S5M_PMIC_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/s5m87xx/s5m-rtc.h b/ANDROID_3.4.5/include/linux/mfd/s5m87xx/s5m-rtc.h
deleted file mode 100644
index 6ce8da26..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/s5m87xx/s5m-rtc.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * s5m-rtc.h
- *
- * Copyright (c) 2011 Samsung Electronics Co., Ltd
- * http://www.samsung.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 __LINUX_MFD_S5M_RTC_H
-#define __LINUX_MFD_S5M_RTC_H
-
-enum s5m87xx_rtc_reg {
- S5M87XX_RTC_SEC,
- S5M87XX_RTC_MIN,
- S5M87XX_RTC_HOUR,
- S5M87XX_RTC_WEEKDAY,
- S5M87XX_RTC_DATE,
- S5M87XX_RTC_MONTH,
- S5M87XX_RTC_YEAR1,
- S5M87XX_RTC_YEAR2,
- S5M87XX_ALARM0_SEC,
- S5M87XX_ALARM0_MIN,
- S5M87XX_ALARM0_HOUR,
- S5M87XX_ALARM0_WEEKDAY,
- S5M87XX_ALARM0_DATE,
- S5M87XX_ALARM0_MONTH,
- S5M87XX_ALARM0_YEAR1,
- S5M87XX_ALARM0_YEAR2,
- S5M87XX_ALARM1_SEC,
- S5M87XX_ALARM1_MIN,
- S5M87XX_ALARM1_HOUR,
- S5M87XX_ALARM1_WEEKDAY,
- S5M87XX_ALARM1_DATE,
- S5M87XX_ALARM1_MONTH,
- S5M87XX_ALARM1_YEAR1,
- S5M87XX_ALARM1_YEAR2,
- S5M87XX_ALARM0_CONF,
- S5M87XX_ALARM1_CONF,
- S5M87XX_RTC_STATUS,
- S5M87XX_WTSR_SMPL_CNTL,
- S5M87XX_RTC_UDR_CON,
-};
-
-#define RTC_I2C_ADDR (0x0C >> 1)
-
-#define HOUR_12 (1 << 7)
-#define HOUR_AMPM (1 << 6)
-#define HOUR_PM (1 << 5)
-#define ALARM0_STATUS (1 << 1)
-#define ALARM1_STATUS (1 << 2)
-#define UPDATE_AD (1 << 0)
-
-/* RTC Control Register */
-#define BCD_EN_SHIFT 0
-#define BCD_EN_MASK (1 << BCD_EN_SHIFT)
-#define MODEL24_SHIFT 1
-#define MODEL24_MASK (1 << MODEL24_SHIFT)
-/* RTC Update Register1 */
-#define RTC_UDR_SHIFT 0
-#define RTC_UDR_MASK (1 << RTC_UDR_SHIFT)
-/* RTC Hour register */
-#define HOUR_PM_SHIFT 6
-#define HOUR_PM_MASK (1 << HOUR_PM_SHIFT)
-/* RTC Alarm Enable */
-#define ALARM_ENABLE_SHIFT 7
-#define ALARM_ENABLE_MASK (1 << ALARM_ENABLE_SHIFT)
-
-enum {
- RTC_SEC = 0,
- RTC_MIN,
- RTC_HOUR,
- RTC_WEEKDAY,
- RTC_DATE,
- RTC_MONTH,
- RTC_YEAR1,
- RTC_YEAR2,
-};
-
-#endif /* __LINUX_MFD_S5M_RTC_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/stmpe.h b/ANDROID_3.4.5/include/linux/mfd/stmpe.h
deleted file mode 100644
index 8516fd1e..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/stmpe.h
+++ /dev/null
@@ -1,225 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson SA 2010
- *
- * License Terms: GNU General Public License, version 2
- * Author: Rabin Vincent <rabin.vincent@stericsson.com> for ST-Ericsson
- */
-
-#ifndef __LINUX_MFD_STMPE_H
-#define __LINUX_MFD_STMPE_H
-
-#include <linux/mutex.h>
-
-struct device;
-
-enum stmpe_block {
- STMPE_BLOCK_GPIO = 1 << 0,
- STMPE_BLOCK_KEYPAD = 1 << 1,
- STMPE_BLOCK_TOUCHSCREEN = 1 << 2,
- STMPE_BLOCK_ADC = 1 << 3,
- STMPE_BLOCK_PWM = 1 << 4,
- STMPE_BLOCK_ROTATOR = 1 << 5,
-};
-
-enum stmpe_partnum {
- STMPE610,
- STMPE801,
- STMPE811,
- STMPE1601,
- STMPE2401,
- STMPE2403,
- STMPE_NBR_PARTS
-};
-
-/*
- * For registers whose locations differ on variants, the correct address is
- * obtained by indexing stmpe->regs with one of the following.
- */
-enum {
- STMPE_IDX_CHIP_ID,
- STMPE_IDX_ICR_LSB,
- STMPE_IDX_IER_LSB,
- STMPE_IDX_ISR_MSB,
- STMPE_IDX_GPMR_LSB,
- STMPE_IDX_GPSR_LSB,
- STMPE_IDX_GPCR_LSB,
- STMPE_IDX_GPDR_LSB,
- STMPE_IDX_GPEDR_MSB,
- STMPE_IDX_GPRER_LSB,
- STMPE_IDX_GPFER_LSB,
- STMPE_IDX_GPAFR_U_MSB,
- STMPE_IDX_IEGPIOR_LSB,
- STMPE_IDX_ISGPIOR_MSB,
- STMPE_IDX_MAX,
-};
-
-
-struct stmpe_variant_info;
-struct stmpe_client_info;
-
-/**
- * struct stmpe - STMPE MFD structure
- * @lock: lock protecting I/O operations
- * @irq_lock: IRQ bus lock
- * @dev: device, mostly for dev_dbg()
- * @client: client - i2c or spi
- * @ci: client specific information
- * @partnum: part number
- * @variant: the detected STMPE model number
- * @regs: list of addresses of registers which are at different addresses on
- * different variants. Indexed by one of STMPE_IDX_*.
- * @irq: irq number for stmpe
- * @irq_base: starting IRQ number for internal IRQs
- * @num_gpios: number of gpios, differs for variants
- * @ier: cache of IER registers for bus_lock
- * @oldier: cache of IER registers for bus_lock
- * @pdata: platform data
- */
-struct stmpe {
- struct mutex lock;
- struct mutex irq_lock;
- struct device *dev;
- void *client;
- struct stmpe_client_info *ci;
- enum stmpe_partnum partnum;
- struct stmpe_variant_info *variant;
- const u8 *regs;
-
- int irq;
- int irq_base;
- int num_gpios;
- u8 ier[2];
- u8 oldier[2];
- struct stmpe_platform_data *pdata;
-};
-
-extern int stmpe_reg_write(struct stmpe *stmpe, u8 reg, u8 data);
-extern int stmpe_reg_read(struct stmpe *stmpe, u8 reg);
-extern int stmpe_block_read(struct stmpe *stmpe, u8 reg, u8 length,
- u8 *values);
-extern int stmpe_block_write(struct stmpe *stmpe, u8 reg, u8 length,
- const u8 *values);
-extern int stmpe_set_bits(struct stmpe *stmpe, u8 reg, u8 mask, u8 val);
-extern int stmpe_set_altfunc(struct stmpe *stmpe, u32 pins,
- enum stmpe_block block);
-extern int stmpe_enable(struct stmpe *stmpe, unsigned int blocks);
-extern int stmpe_disable(struct stmpe *stmpe, unsigned int blocks);
-
-struct matrix_keymap_data;
-
-/**
- * struct stmpe_keypad_platform_data - STMPE keypad platform data
- * @keymap_data: key map table and size
- * @debounce_ms: debounce interval, in ms. Maximum is
- * %STMPE_KEYPAD_MAX_DEBOUNCE.
- * @scan_count: number of key scanning cycles to confirm key data.
- * Maximum is %STMPE_KEYPAD_MAX_SCAN_COUNT.
- * @no_autorepeat: disable key autorepeat
- */
-struct stmpe_keypad_platform_data {
- struct matrix_keymap_data *keymap_data;
- unsigned int debounce_ms;
- unsigned int scan_count;
- bool no_autorepeat;
-};
-
-#define STMPE_GPIO_NOREQ_811_TOUCH (0xf0)
-
-/**
- * struct stmpe_gpio_platform_data - STMPE GPIO platform data
- * @gpio_base: first gpio number assigned. A maximum of
- * %STMPE_NR_GPIOS GPIOs will be allocated.
- * @norequest_mask: bitmask specifying which GPIOs should _not_ be
- * requestable due to different usage (e.g. touch, keypad)
- * STMPE_GPIO_NOREQ_* macros can be used here.
- * @setup: board specific setup callback.
- * @remove: board specific remove callback
- */
-struct stmpe_gpio_platform_data {
- int gpio_base;
- unsigned norequest_mask;
- void (*setup)(struct stmpe *stmpe, unsigned gpio_base);
- void (*remove)(struct stmpe *stmpe, unsigned gpio_base);
-};
-
-/**
- * struct stmpe_ts_platform_data - stmpe811 touch screen controller platform
- * data
- * @sample_time: ADC converstion time in number of clock.
- * (0 -> 36 clocks, 1 -> 44 clocks, 2 -> 56 clocks, 3 -> 64 clocks,
- * 4 -> 80 clocks, 5 -> 96 clocks, 6 -> 144 clocks),
- * recommended is 4.
- * @mod_12b: ADC Bit mode (0 -> 10bit ADC, 1 -> 12bit ADC)
- * @ref_sel: ADC reference source
- * (0 -> internal reference, 1 -> external reference)
- * @adc_freq: ADC Clock speed
- * (0 -> 1.625 MHz, 1 -> 3.25 MHz, 2 || 3 -> 6.5 MHz)
- * @ave_ctrl: Sample average control
- * (0 -> 1 sample, 1 -> 2 samples, 2 -> 4 samples, 3 -> 8 samples)
- * @touch_det_delay: Touch detect interrupt delay
- * (0 -> 10 us, 1 -> 50 us, 2 -> 100 us, 3 -> 500 us,
- * 4-> 1 ms, 5 -> 5 ms, 6 -> 10 ms, 7 -> 50 ms)
- * recommended is 3
- * @settling: Panel driver settling time
- * (0 -> 10 us, 1 -> 100 us, 2 -> 500 us, 3 -> 1 ms,
- * 4 -> 5 ms, 5 -> 10 ms, 6 for 50 ms, 7 -> 100 ms)
- * recommended is 2
- * @fraction_z: Length of the fractional part in z
- * (fraction_z ([0..7]) = Count of the fractional part)
- * recommended is 7
- * @i_drive: current limit value of the touchscreen drivers
- * (0 -> 20 mA typical 35 mA max, 1 -> 50 mA typical 80 mA max)
- *
- * */
-struct stmpe_ts_platform_data {
- u8 sample_time;
- u8 mod_12b;
- u8 ref_sel;
- u8 adc_freq;
- u8 ave_ctrl;
- u8 touch_det_delay;
- u8 settling;
- u8 fraction_z;
- u8 i_drive;
-};
-
-/**
- * struct stmpe_platform_data - STMPE platform data
- * @id: device id to distinguish between multiple STMPEs on the same board
- * @blocks: bitmask of blocks to enable (use STMPE_BLOCK_*)
- * @irq_trigger: IRQ trigger to use for the interrupt to the host
- * @irq_invert_polarity: IRQ line is connected with reversed polarity
- * @autosleep: bool to enable/disable stmpe autosleep
- * @autosleep_timeout: inactivity timeout in milliseconds for autosleep
- * @irq_base: base IRQ number. %STMPE_NR_IRQS irqs will be used, or
- * %STMPE_NR_INTERNAL_IRQS if the GPIO driver is not used.
- * @irq_over_gpio: true if gpio is used to get irq
- * @irq_gpio: gpio number over which irq will be requested (significant only if
- * irq_over_gpio is true)
- * @gpio: GPIO-specific platform data
- * @keypad: keypad-specific platform data
- * @ts: touchscreen-specific platform data
- */
-struct stmpe_platform_data {
- int id;
- unsigned int blocks;
- int irq_base;
- unsigned int irq_trigger;
- bool irq_invert_polarity;
- bool autosleep;
- bool irq_over_gpio;
- int irq_gpio;
- int autosleep_timeout;
-
- struct stmpe_gpio_platform_data *gpio;
- struct stmpe_keypad_platform_data *keypad;
- struct stmpe_ts_platform_data *ts;
-};
-
-#define STMPE_NR_INTERNAL_IRQS 9
-#define STMPE_INT_GPIO(x) (STMPE_NR_INTERNAL_IRQS + (x))
-
-#define STMPE_NR_GPIOS 24
-#define STMPE_NR_IRQS STMPE_INT_GPIO(STMPE_NR_GPIOS)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/t7l66xb.h b/ANDROID_3.4.5/include/linux/mfd/t7l66xb.h
deleted file mode 100644
index b4629818..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/t7l66xb.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * This file contains the definitions for the T7L66XB
- *
- * (C) Copyright 2005 Ian Molton <spyro@f2s.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.
- *
- */
-#ifndef MFD_T7L66XB_H
-#define MFD_T7L66XB_H
-
-#include <linux/mfd/core.h>
-#include <linux/mfd/tmio.h>
-
-struct t7l66xb_platform_data {
- int (*enable)(struct platform_device *dev);
- int (*disable)(struct platform_device *dev);
- int (*suspend)(struct platform_device *dev);
- int (*resume)(struct platform_device *dev);
-
- int irq_base; /* The base for subdevice irqs */
-
- struct tmio_nand_data *nand_data;
-};
-
-
-#define IRQ_T7L66XB_MMC (1)
-#define IRQ_T7L66XB_NAND (3)
-
-#define T7L66XB_NR_IRQS 8
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/tc3589x.h b/ANDROID_3.4.5/include/linux/mfd/tc3589x.h
deleted file mode 100644
index 3acb3a8e..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/tc3589x.h
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson SA 2010
- *
- * License Terms: GNU General Public License, version 2
- */
-
-#ifndef __LINUX_MFD_TC3589x_H
-#define __LINUX_MFD_TC3589x_H
-
-struct device;
-
-enum tx3589x_block {
- TC3589x_BLOCK_GPIO = 1 << 0,
- TC3589x_BLOCK_KEYPAD = 1 << 1,
-};
-
-#define TC3589x_RSTCTRL_IRQRST (1 << 4)
-#define TC3589x_RSTCTRL_TIMRST (1 << 3)
-#define TC3589x_RSTCTRL_ROTRST (1 << 2)
-#define TC3589x_RSTCTRL_KBDRST (1 << 1)
-#define TC3589x_RSTCTRL_GPIRST (1 << 0)
-
-/* Keyboard Configuration Registers */
-#define TC3589x_KBDSETTLE_REG 0x01
-#define TC3589x_KBDBOUNCE 0x02
-#define TC3589x_KBDSIZE 0x03
-#define TC3589x_KBCFG_LSB 0x04
-#define TC3589x_KBCFG_MSB 0x05
-#define TC3589x_KBDIC 0x08
-#define TC3589x_KBDMSK 0x09
-#define TC3589x_EVTCODE_FIFO 0x10
-#define TC3589x_KBDMFS 0x8F
-
-#define TC3589x_IRQST 0x91
-
-#define TC3589x_MANFCODE_MAGIC 0x03
-#define TC3589x_MANFCODE 0x80
-#define TC3589x_VERSION 0x81
-#define TC3589x_IOCFG 0xA7
-
-#define TC3589x_CLKMODE 0x88
-#define TC3589x_CLKCFG 0x89
-#define TC3589x_CLKEN 0x8A
-
-#define TC3589x_RSTCTRL 0x82
-#define TC3589x_EXTRSTN 0x83
-#define TC3589x_RSTINTCLR 0x84
-
-/* Pull up/down configuration registers */
-#define TC3589x_IOCFG 0xA7
-#define TC3589x_IOPULLCFG0_LSB 0xAA
-#define TC3589x_IOPULLCFG0_MSB 0xAB
-#define TC3589x_IOPULLCFG1_LSB 0xAC
-#define TC3589x_IOPULLCFG1_MSB 0xAD
-#define TC3589x_IOPULLCFG2_LSB 0xAE
-
-#define TC3589x_GPIOIS0 0xC9
-#define TC3589x_GPIOIS1 0xCA
-#define TC3589x_GPIOIS2 0xCB
-#define TC3589x_GPIOIBE0 0xCC
-#define TC3589x_GPIOIBE1 0xCD
-#define TC3589x_GPIOIBE2 0xCE
-#define TC3589x_GPIOIEV0 0xCF
-#define TC3589x_GPIOIEV1 0xD0
-#define TC3589x_GPIOIEV2 0xD1
-#define TC3589x_GPIOIE0 0xD2
-#define TC3589x_GPIOIE1 0xD3
-#define TC3589x_GPIOIE2 0xD4
-#define TC3589x_GPIORIS0 0xD6
-#define TC3589x_GPIORIS1 0xD7
-#define TC3589x_GPIORIS2 0xD8
-#define TC3589x_GPIOMIS0 0xD9
-#define TC3589x_GPIOMIS1 0xDA
-#define TC3589x_GPIOMIS2 0xDB
-#define TC3589x_GPIOIC0 0xDC
-#define TC3589x_GPIOIC1 0xDD
-#define TC3589x_GPIOIC2 0xDE
-
-#define TC3589x_GPIODATA0 0xC0
-#define TC3589x_GPIOMASK0 0xc1
-#define TC3589x_GPIODATA1 0xC2
-#define TC3589x_GPIOMASK1 0xc3
-#define TC3589x_GPIODATA2 0xC4
-#define TC3589x_GPIOMASK2 0xC5
-
-#define TC3589x_GPIODIR0 0xC6
-#define TC3589x_GPIODIR1 0xC7
-#define TC3589x_GPIODIR2 0xC8
-
-#define TC3589x_GPIOSYNC0 0xE6
-#define TC3589x_GPIOSYNC1 0xE7
-#define TC3589x_GPIOSYNC2 0xE8
-
-#define TC3589x_GPIOWAKE0 0xE9
-#define TC3589x_GPIOWAKE1 0xEA
-#define TC3589x_GPIOWAKE2 0xEB
-
-#define TC3589x_GPIOODM0 0xE0
-#define TC3589x_GPIOODE0 0xE1
-#define TC3589x_GPIOODM1 0xE2
-#define TC3589x_GPIOODE1 0xE3
-#define TC3589x_GPIOODM2 0xE4
-#define TC3589x_GPIOODE2 0xE5
-
-#define TC3589x_INT_GPIIRQ 0
-#define TC3589x_INT_TI0IRQ 1
-#define TC3589x_INT_TI1IRQ 2
-#define TC3589x_INT_TI2IRQ 3
-#define TC3589x_INT_ROTIRQ 5
-#define TC3589x_INT_KBDIRQ 6
-#define TC3589x_INT_PORIRQ 7
-
-#define TC3589x_NR_INTERNAL_IRQS 8
-#define TC3589x_INT_GPIO(x) (TC3589x_NR_INTERNAL_IRQS + (x))
-
-struct tc3589x {
- struct mutex lock;
- struct device *dev;
- struct i2c_client *i2c;
-
- int irq_base;
- int num_gpio;
- struct tc3589x_platform_data *pdata;
-};
-
-extern int tc3589x_reg_write(struct tc3589x *tc3589x, u8 reg, u8 data);
-extern int tc3589x_reg_read(struct tc3589x *tc3589x, u8 reg);
-extern int tc3589x_block_read(struct tc3589x *tc3589x, u8 reg, u8 length,
- u8 *values);
-extern int tc3589x_block_write(struct tc3589x *tc3589x, u8 reg, u8 length,
- const u8 *values);
-extern int tc3589x_set_bits(struct tc3589x *tc3589x, u8 reg, u8 mask, u8 val);
-
-/*
- * Keypad related platform specific constants
- * These values may be modified for fine tuning
- */
-#define TC_KPD_ROWS 0x8
-#define TC_KPD_COLUMNS 0x8
-#define TC_KPD_DEBOUNCE_PERIOD 0xA3
-#define TC_KPD_SETTLE_TIME 0xA3
-
-/**
- * struct tc35893_platform_data - data structure for platform specific data
- * @keymap_data: matrix scan code table for keycodes
- * @krow: mask for available rows, value is 0xFF
- * @kcol: mask for available columns, value is 0xFF
- * @debounce_period: platform specific debounce time
- * @settle_time: platform specific settle down time
- * @irqtype: type of interrupt, falling or rising edge
- * @enable_wakeup: specifies if keypad event can wake up system from sleep
- * @no_autorepeat: flag for auto repetition
- */
-struct tc3589x_keypad_platform_data {
- const struct matrix_keymap_data *keymap_data;
- u8 krow;
- u8 kcol;
- u8 debounce_period;
- u8 settle_time;
- unsigned long irqtype;
- bool enable_wakeup;
- bool no_autorepeat;
-};
-
-/**
- * struct tc3589x_gpio_platform_data - TC3589x GPIO platform data
- * @gpio_base: first gpio number assigned to TC3589x. A maximum of
- * %TC3589x_NR_GPIOS GPIOs will be allocated.
- * @setup: callback for board-specific initialization
- * @remove: callback for board-specific teardown
- */
-struct tc3589x_gpio_platform_data {
- int gpio_base;
- void (*setup)(struct tc3589x *tc3589x, unsigned gpio_base);
- void (*remove)(struct tc3589x *tc3589x, unsigned gpio_base);
-};
-
-/**
- * struct tc3589x_platform_data - TC3589x platform data
- * @block: bitmask of blocks to enable (use TC3589x_BLOCK_*)
- * @irq_base: base IRQ number. %TC3589x_NR_IRQS irqs will be used.
- * @gpio: GPIO-specific platform data
- * @keypad: keypad-specific platform data
- */
-struct tc3589x_platform_data {
- unsigned int block;
- int irq_base;
- struct tc3589x_gpio_platform_data *gpio;
- const struct tc3589x_keypad_platform_data *keypad;
-};
-
-#define TC3589x_NR_GPIOS 24
-#define TC3589x_NR_IRQS TC3589x_INT_GPIO(TC3589x_NR_GPIOS)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/tc6387xb.h b/ANDROID_3.4.5/include/linux/mfd/tc6387xb.h
deleted file mode 100644
index b4888209..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/tc6387xb.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * This file contains the definitions for the TC6387XB
- *
- * (C) Copyright 2005 Ian Molton <spyro@f2s.com>
- *
- * May be copied or modified under the terms of the GNU General Public
- * License. See linux/COPYING for more information.
- *
- */
-#ifndef MFD_TC6387XB_H
-#define MFD_TC6387XB_H
-
-struct tc6387xb_platform_data {
- int (*enable)(struct platform_device *dev);
- int (*disable)(struct platform_device *dev);
- int (*suspend)(struct platform_device *dev);
- int (*resume)(struct platform_device *dev);
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/tc6393xb.h b/ANDROID_3.4.5/include/linux/mfd/tc6393xb.h
deleted file mode 100644
index 626e4482..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/tc6393xb.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Toshiba TC6393XB SoC support
- *
- * Copyright(c) 2005-2006 Chris Humbert
- * Copyright(c) 2005 Dirk Opfer
- * Copyright(c) 2005 Ian Molton <spyro@f2s.com>
- * Copyright(c) 2007 Dmitry Baryshkov
- *
- * Based on code written by Sharp/Lineo for 2.4 kernels
- * Based on locomo.c
- *
- * 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.
- */
-
-#ifndef MFD_TC6393XB_H
-#define MFD_TC6393XB_H
-
-#include <linux/fb.h>
-
-/* Also one should provide the CK3P6MI clock */
-struct tc6393xb_platform_data {
- u16 scr_pll2cr; /* PLL2 Control */
- u16 scr_gper; /* GP Enable */
-
- int (*enable)(struct platform_device *dev);
- int (*disable)(struct platform_device *dev);
- int (*suspend)(struct platform_device *dev);
- int (*resume)(struct platform_device *dev);
-
- int irq_base; /* base for subdevice irqs */
- int gpio_base;
- int (*setup)(struct platform_device *dev);
- void (*teardown)(struct platform_device *dev);
-
- struct tmio_nand_data *nand_data;
- struct tmio_fb_data *fb_data;
-
- unsigned resume_restore : 1; /* make special actions
- to preserve the state
- on suspend/resume */
-};
-
-extern int tc6393xb_lcd_mode(struct platform_device *fb,
- const struct fb_videomode *mode);
-extern int tc6393xb_lcd_set_power(struct platform_device *fb, bool on);
-
-/*
- * Relative to irq_base
- */
-#define IRQ_TC6393_NAND 0
-#define IRQ_TC6393_MMC 1
-#define IRQ_TC6393_OHCI 2
-#define IRQ_TC6393_FB 4
-
-#define TC6393XB_NR_IRQS 8
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/ti_ssp.h b/ANDROID_3.4.5/include/linux/mfd/ti_ssp.h
deleted file mode 100644
index dbb4b43b..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/ti_ssp.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Sequencer Serial Port (SSP) driver for Texas Instruments' SoCs
- *
- * Copyright (C) 2010 Texas Instruments Inc
- *
- * 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
- */
-
-#ifndef __TI_SSP_H__
-#define __TI_SSP_H__
-
-struct ti_ssp_dev_data {
- const char *dev_name;
- void *pdata;
- size_t pdata_size;
-};
-
-struct ti_ssp_data {
- unsigned long out_clock;
- struct ti_ssp_dev_data dev_data[2];
-};
-
-struct ti_ssp_spi_data {
- unsigned long iosel;
- int num_cs;
- void (*select)(int cs);
-};
-
-/*
- * Sequencer port IO pin configuration bits. These do not correlate 1-1 with
- * the hardware. The iosel field in the port data combines iosel1 and iosel2,
- * and is therefore not a direct map to register space. It is best to use the
- * macros below to construct iosel values.
- *
- * least significant 16 bits --> iosel1
- * most significant 16 bits --> iosel2
- */
-
-#define SSP_IN 0x0000
-#define SSP_DATA 0x0001
-#define SSP_CLOCK 0x0002
-#define SSP_CHIPSEL 0x0003
-#define SSP_OUT 0x0004
-#define SSP_PIN_SEL(pin, v) ((v) << ((pin) * 3))
-#define SSP_PIN_MASK(pin) SSP_PIN_SEL(pin, 0x7)
-#define SSP_INPUT_SEL(pin) ((pin) << 16)
-
-/* Sequencer port config bits */
-#define SSP_EARLY_DIN BIT(8)
-#define SSP_DELAY_DOUT BIT(9)
-
-/* Sequence map definitions */
-#define SSP_CLK_HIGH BIT(0)
-#define SSP_CLK_LOW 0
-#define SSP_DATA_HIGH BIT(1)
-#define SSP_DATA_LOW 0
-#define SSP_CS_HIGH BIT(2)
-#define SSP_CS_LOW 0
-#define SSP_OUT_MODE BIT(3)
-#define SSP_IN_MODE 0
-#define SSP_DATA_REG BIT(4)
-#define SSP_ADDR_REG 0
-
-#define SSP_OPCODE_DIRECT ((0x0) << 5)
-#define SSP_OPCODE_TOGGLE ((0x1) << 5)
-#define SSP_OPCODE_SHIFT ((0x2) << 5)
-#define SSP_OPCODE_BRANCH0 ((0x4) << 5)
-#define SSP_OPCODE_BRANCH1 ((0x5) << 5)
-#define SSP_OPCODE_BRANCH ((0x6) << 5)
-#define SSP_OPCODE_STOP ((0x7) << 5)
-#define SSP_BRANCH(addr) ((addr) << 8)
-#define SSP_COUNT(cycles) ((cycles) << 8)
-
-int ti_ssp_raw_read(struct device *dev);
-int ti_ssp_raw_write(struct device *dev, u32 val);
-int ti_ssp_load(struct device *dev, int offs, u32* prog, int len);
-int ti_ssp_run(struct device *dev, u32 pc, u32 input, u32 *output);
-int ti_ssp_set_mode(struct device *dev, int mode);
-int ti_ssp_set_iosel(struct device *dev, u32 iosel);
-
-#endif /* __TI_SSP_H__ */
diff --git a/ANDROID_3.4.5/include/linux/mfd/tmio.h b/ANDROID_3.4.5/include/linux/mfd/tmio.h
deleted file mode 100644
index f5171dbf..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/tmio.h
+++ /dev/null
@@ -1,153 +0,0 @@
-#ifndef MFD_TMIO_H
-#define MFD_TMIO_H
-
-#include <linux/device.h>
-#include <linux/fb.h>
-#include <linux/io.h>
-#include <linux/jiffies.h>
-#include <linux/platform_device.h>
-#include <linux/pm_runtime.h>
-
-#define tmio_ioread8(addr) readb(addr)
-#define tmio_ioread16(addr) readw(addr)
-#define tmio_ioread16_rep(r, b, l) readsw(r, b, l)
-#define tmio_ioread32(addr) \
- (((u32) readw((addr))) | (((u32) readw((addr) + 2)) << 16))
-
-#define tmio_iowrite8(val, addr) writeb((val), (addr))
-#define tmio_iowrite16(val, addr) writew((val), (addr))
-#define tmio_iowrite16_rep(r, b, l) writesw(r, b, l)
-#define tmio_iowrite32(val, addr) \
- do { \
- writew((val), (addr)); \
- writew((val) >> 16, (addr) + 2); \
- } while (0)
-
-#define CNF_CMD 0x04
-#define CNF_CTL_BASE 0x10
-#define CNF_INT_PIN 0x3d
-#define CNF_STOP_CLK_CTL 0x40
-#define CNF_GCLK_CTL 0x41
-#define CNF_SD_CLK_MODE 0x42
-#define CNF_PIN_STATUS 0x44
-#define CNF_PWR_CTL_1 0x48
-#define CNF_PWR_CTL_2 0x49
-#define CNF_PWR_CTL_3 0x4a
-#define CNF_CARD_DETECT_MODE 0x4c
-#define CNF_SD_SLOT 0x50
-#define CNF_EXT_GCLK_CTL_1 0xf0
-#define CNF_EXT_GCLK_CTL_2 0xf1
-#define CNF_EXT_GCLK_CTL_3 0xf9
-#define CNF_SD_LED_EN_1 0xfa
-#define CNF_SD_LED_EN_2 0xfe
-
-#define SDCREN 0x2 /* Enable access to MMC CTL regs. (flag in COMMAND_REG)*/
-
-#define sd_config_write8(base, shift, reg, val) \
- tmio_iowrite8((val), (base) + ((reg) << (shift)))
-#define sd_config_write16(base, shift, reg, val) \
- tmio_iowrite16((val), (base) + ((reg) << (shift)))
-#define sd_config_write32(base, shift, reg, val) \
- do { \
- tmio_iowrite16((val), (base) + ((reg) << (shift))); \
- tmio_iowrite16((val) >> 16, (base) + ((reg + 2) << (shift))); \
- } while (0)
-
-/* tmio MMC platform flags */
-#define TMIO_MMC_WRPROTECT_DISABLE (1 << 0)
-/*
- * Some controllers can support a 2-byte block size when the bus width
- * is configured in 4-bit mode.
- */
-#define TMIO_MMC_BLKSZ_2BYTES (1 << 1)
-/*
- * Some controllers can support SDIO IRQ signalling.
- */
-#define TMIO_MMC_SDIO_IRQ (1 << 2)
-/*
- * Some platforms can detect card insertion events with controller powered
- * down, using a GPIO IRQ, in which case they have to fill in cd_irq, cd_gpio,
- * and cd_flags fields of struct tmio_mmc_data.
- */
-#define TMIO_MMC_HAS_COLD_CD (1 << 3)
-/*
- * Some controllers require waiting for the SD bus to become
- * idle before writing to some registers.
- */
-#define TMIO_MMC_HAS_IDLE_WAIT (1 << 4)
-/*
- * A GPIO is used for card hotplug detection. We need an extra flag for this,
- * because 0 is a valid GPIO number too, and requiring users to specify
- * cd_gpio < 0 to disable GPIO hotplug would break backwards compatibility.
- */
-#define TMIO_MMC_USE_GPIO_CD (1 << 5)
-
-int tmio_core_mmc_enable(void __iomem *cnf, int shift, unsigned long base);
-int tmio_core_mmc_resume(void __iomem *cnf, int shift, unsigned long base);
-void tmio_core_mmc_pwr(void __iomem *cnf, int shift, int state);
-void tmio_core_mmc_clk_div(void __iomem *cnf, int shift, int state);
-
-struct tmio_mmc_dma {
- void *chan_priv_tx;
- void *chan_priv_rx;
- int alignment_shift;
-};
-
-struct tmio_mmc_host;
-
-/*
- * data for the MMC controller
- */
-struct tmio_mmc_data {
- unsigned int hclk;
- unsigned long capabilities;
- unsigned long flags;
- u32 ocr_mask; /* available voltages */
- struct tmio_mmc_dma *dma;
- struct device *dev;
- unsigned int cd_gpio;
- void (*set_pwr)(struct platform_device *host, int state);
- void (*set_clk_div)(struct platform_device *host, int state);
- int (*get_cd)(struct platform_device *host);
- int (*write16_hook)(struct tmio_mmc_host *host, int addr);
-};
-
-/*
- * This function is deprecated and will be removed soon. Please, convert your
- * platform to use drivers/mmc/core/cd-gpio.c
- */
-#include <linux/mmc/host.h>
-static inline void tmio_mmc_cd_wakeup(struct tmio_mmc_data *pdata)
-{
- if (pdata)
- mmc_detect_change(dev_get_drvdata(pdata->dev),
- msecs_to_jiffies(100));
-}
-
-/*
- * data for the NAND controller
- */
-struct tmio_nand_data {
- struct nand_bbt_descr *badblock_pattern;
- struct mtd_partition *partition;
- unsigned int num_partitions;
-};
-
-#define FBIO_TMIO_ACC_WRITE 0x7C639300
-#define FBIO_TMIO_ACC_SYNC 0x7C639301
-
-struct tmio_fb_data {
- int (*lcd_set_power)(struct platform_device *fb_dev,
- bool on);
- int (*lcd_mode)(struct platform_device *fb_dev,
- const struct fb_videomode *mode);
- int num_modes;
- struct fb_videomode *modes;
-
- /* in mm: size of screen */
- int height;
- int width;
-};
-
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/tps6105x.h b/ANDROID_3.4.5/include/linux/mfd/tps6105x.h
deleted file mode 100644
index 386743dd..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/tps6105x.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (C) 2011 ST-Ericsson SA
- * Written on behalf of Linaro for ST-Ericsson
- *
- * Author: Linus Walleij <linus.walleij@linaro.org>
- *
- * License terms: GNU General Public License (GPL) version 2
- */
-#ifndef MFD_TPS6105X_H
-#define MFD_TPS6105X_H
-
-#include <linux/i2c.h>
-#include <linux/regulator/machine.h>
-
-/*
- * Register definitions to all subdrivers
- */
-#define TPS6105X_REG_0 0x00
-#define TPS6105X_REG0_MODE_SHIFT 6
-#define TPS6105X_REG0_MODE_MASK (0x03<<6)
-/* These defines for both reg0 and reg1 */
-#define TPS6105X_REG0_MODE_SHUTDOWN 0x00
-#define TPS6105X_REG0_MODE_TORCH 0x01
-#define TPS6105X_REG0_MODE_TORCH_FLASH 0x02
-#define TPS6105X_REG0_MODE_VOLTAGE 0x03
-#define TPS6105X_REG0_VOLTAGE_SHIFT 4
-#define TPS6105X_REG0_VOLTAGE_MASK (3<<4)
-#define TPS6105X_REG0_VOLTAGE_450 0
-#define TPS6105X_REG0_VOLTAGE_500 1
-#define TPS6105X_REG0_VOLTAGE_525 2
-#define TPS6105X_REG0_VOLTAGE_500_2 3
-#define TPS6105X_REG0_DIMMING_SHIFT 3
-#define TPS6105X_REG0_TORCHC_SHIFT 0
-#define TPS6105X_REG0_TORCHC_MASK (7<<0)
-#define TPS6105X_REG0_TORCHC_0 0x00
-#define TPS6105X_REG0_TORCHC_50 0x01
-#define TPS6105X_REG0_TORCHC_75 0x02
-#define TPS6105X_REG0_TORCHC_100 0x03
-#define TPS6105X_REG0_TORCHC_150 0x04
-#define TPS6105X_REG0_TORCHC_200 0x05
-#define TPS6105X_REG0_TORCHC_250_400 0x06
-#define TPS6105X_REG0_TORCHC_250_500 0x07
-#define TPS6105X_REG_1 0x01
-#define TPS6105X_REG1_MODE_SHIFT 6
-#define TPS6105X_REG1_MODE_MASK (0x03<<6)
-#define TPS6105X_REG1_MODE_SHUTDOWN 0x00
-#define TPS6105X_REG1_MODE_TORCH 0x01
-#define TPS6105X_REG1_MODE_TORCH_FLASH 0x02
-#define TPS6105X_REG1_MODE_VOLTAGE 0x03
-#define TPS6105X_REG_2 0x02
-#define TPS6105X_REG_3 0x03
-
-/**
- * enum tps6105x_mode - desired mode for the TPS6105x
- * @TPS6105X_MODE_SHUTDOWN: this instance is inactive, not used for anything
- * @TPS61905X_MODE_TORCH: this instance is used as a LED, usually a while
- * LED, for example as backlight or flashlight. If this is set, the
- * TPS6105X will register to the LED framework
- * @TPS6105X_MODE_TORCH_FLASH: this instance is used as a flashgun, usually
- * in a camera
- * @TPS6105X_MODE_VOLTAGE: this instance is used as a voltage regulator and
- * will register to the regulator framework
- */
-enum tps6105x_mode {
- TPS6105X_MODE_SHUTDOWN,
- TPS6105X_MODE_TORCH,
- TPS6105X_MODE_TORCH_FLASH,
- TPS6105X_MODE_VOLTAGE,
-};
-
-/**
- * struct tps6105x_platform_data - TPS61905x platform data
- * @mode: what mode this instance shall be operated in,
- * this is not selectable at runtime
- * @regulator_data: initialization data for the voltage
- * regulator if used as a voltage source
- */
-struct tps6105x_platform_data {
- enum tps6105x_mode mode;
- struct regulator_init_data *regulator_data;
-};
-
-/**
- * struct tps6105x - state holder for the TPS6105x drivers
- * @mutex: mutex to serialize I2C accesses
- * @i2c_client: corresponding I2C client
- * @regulator: regulator device if used in voltage mode
- */
-struct tps6105x {
- struct tps6105x_platform_data *pdata;
- struct mutex lock;
- struct i2c_client *client;
- struct regulator_dev *regulator;
-};
-
-extern int tps6105x_set(struct tps6105x *tps6105x, u8 reg, u8 value);
-extern int tps6105x_get(struct tps6105x *tps6105x, u8 reg, u8 *buf);
-extern int tps6105x_mask_and_set(struct tps6105x *tps6105x, u8 reg,
- u8 bitmask, u8 bitvalues);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/tps6507x.h b/ANDROID_3.4.5/include/linux/mfd/tps6507x.h
deleted file mode 100644
index c923e486..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/tps6507x.h
+++ /dev/null
@@ -1,169 +0,0 @@
-/* linux/mfd/tps6507x.h
- *
- * Functions to access TPS65070 power management chip.
- *
- * Copyright (c) 2009 RidgeRun (todd.fischer@ridgerun.com)
- *
- *
- * For licencing details see kernel-base/COPYING
- */
-
-#ifndef __LINUX_MFD_TPS6507X_H
-#define __LINUX_MFD_TPS6507X_H
-
-/*
- * ----------------------------------------------------------------------------
- * Registers, all 8 bits
- * ----------------------------------------------------------------------------
- */
-
-
-/* Register definitions */
-#define TPS6507X_REG_PPATH1 0X01
-#define TPS6507X_CHG_USB BIT(7)
-#define TPS6507X_CHG_AC BIT(6)
-#define TPS6507X_CHG_USB_PW_ENABLE BIT(5)
-#define TPS6507X_CHG_AC_PW_ENABLE BIT(4)
-#define TPS6507X_CHG_AC_CURRENT BIT(2)
-#define TPS6507X_CHG_USB_CURRENT BIT(0)
-
-#define TPS6507X_REG_INT 0X02
-#define TPS6507X_REG_MASK_AC_USB BIT(7)
-#define TPS6507X_REG_MASK_TSC BIT(6)
-#define TPS6507X_REG_MASK_PB_IN BIT(5)
-#define TPS6507X_REG_TSC_INT BIT(3)
-#define TPS6507X_REG_PB_IN_INT BIT(2)
-#define TPS6507X_REG_AC_USB_APPLIED BIT(1)
-#define TPS6507X_REG_AC_USB_REMOVED BIT(0)
-
-#define TPS6507X_REG_CHGCONFIG0 0X03
-
-#define TPS6507X_REG_CHGCONFIG1 0X04
-#define TPS6507X_CON_CTRL1_DCDC1_ENABLE BIT(4)
-#define TPS6507X_CON_CTRL1_DCDC2_ENABLE BIT(3)
-#define TPS6507X_CON_CTRL1_DCDC3_ENABLE BIT(2)
-#define TPS6507X_CON_CTRL1_LDO1_ENABLE BIT(1)
-#define TPS6507X_CON_CTRL1_LDO2_ENABLE BIT(0)
-
-#define TPS6507X_REG_CHGCONFIG2 0X05
-
-#define TPS6507X_REG_CHGCONFIG3 0X06
-
-#define TPS6507X_REG_ADCONFIG 0X07
-#define TPS6507X_ADCONFIG_AD_ENABLE BIT(7)
-#define TPS6507X_ADCONFIG_START_CONVERSION BIT(6)
-#define TPS6507X_ADCONFIG_CONVERSION_DONE BIT(5)
-#define TPS6507X_ADCONFIG_VREF_ENABLE BIT(4)
-#define TPS6507X_ADCONFIG_INPUT_AD_IN1 0
-#define TPS6507X_ADCONFIG_INPUT_AD_IN2 1
-#define TPS6507X_ADCONFIG_INPUT_AD_IN3 2
-#define TPS6507X_ADCONFIG_INPUT_AD_IN4 3
-#define TPS6507X_ADCONFIG_INPUT_TS_PIN 4
-#define TPS6507X_ADCONFIG_INPUT_BAT_CURRENT 5
-#define TPS6507X_ADCONFIG_INPUT_AC_VOLTAGE 6
-#define TPS6507X_ADCONFIG_INPUT_SYS_VOLTAGE 7
-#define TPS6507X_ADCONFIG_INPUT_CHARGER_VOLTAGE 8
-#define TPS6507X_ADCONFIG_INPUT_BAT_VOLTAGE 9
-#define TPS6507X_ADCONFIG_INPUT_THRESHOLD_VOLTAGE 10
-#define TPS6507X_ADCONFIG_INPUT_ISET1_VOLTAGE 11
-#define TPS6507X_ADCONFIG_INPUT_ISET2_VOLTAGE 12
-#define TPS6507X_ADCONFIG_INPUT_REAL_TSC 14
-#define TPS6507X_ADCONFIG_INPUT_TSC 15
-
-#define TPS6507X_REG_TSCMODE 0X08
-#define TPS6507X_TSCMODE_X_POSITION 0
-#define TPS6507X_TSCMODE_Y_POSITION 1
-#define TPS6507X_TSCMODE_PRESSURE 2
-#define TPS6507X_TSCMODE_X_PLATE 3
-#define TPS6507X_TSCMODE_Y_PLATE 4
-#define TPS6507X_TSCMODE_STANDBY 5
-#define TPS6507X_TSCMODE_ADC_INPUT 6
-#define TPS6507X_TSCMODE_DISABLE 7
-
-#define TPS6507X_REG_ADRESULT_1 0X09
-
-#define TPS6507X_REG_ADRESULT_2 0X0A
-#define TPS6507X_REG_ADRESULT_2_MASK (BIT(1) | BIT(0))
-
-#define TPS6507X_REG_PGOOD 0X0B
-
-#define TPS6507X_REG_PGOODMASK 0X0C
-
-#define TPS6507X_REG_CON_CTRL1 0X0D
-#define TPS6507X_CON_CTRL1_DCDC1_ENABLE BIT(4)
-#define TPS6507X_CON_CTRL1_DCDC2_ENABLE BIT(3)
-#define TPS6507X_CON_CTRL1_DCDC3_ENABLE BIT(2)
-#define TPS6507X_CON_CTRL1_LDO1_ENABLE BIT(1)
-#define TPS6507X_CON_CTRL1_LDO2_ENABLE BIT(0)
-
-#define TPS6507X_REG_CON_CTRL2 0X0E
-
-#define TPS6507X_REG_CON_CTRL3 0X0F
-
-#define TPS6507X_REG_DEFDCDC1 0X10
-#define TPS6507X_DEFDCDC1_DCDC1_EXT_ADJ_EN BIT(7)
-#define TPS6507X_DEFDCDC1_DCDC1_MASK 0X3F
-
-#define TPS6507X_REG_DEFDCDC2_LOW 0X11
-#define TPS6507X_DEFDCDC2_LOW_DCDC2_MASK 0X3F
-
-#define TPS6507X_REG_DEFDCDC2_HIGH 0X12
-#define TPS6507X_DEFDCDC2_HIGH_DCDC2_MASK 0X3F
-
-#define TPS6507X_REG_DEFDCDC3_LOW 0X13
-#define TPS6507X_DEFDCDC3_LOW_DCDC3_MASK 0X3F
-
-#define TPS6507X_REG_DEFDCDC3_HIGH 0X14
-#define TPS6507X_DEFDCDC3_HIGH_DCDC3_MASK 0X3F
-
-#define TPS6507X_REG_DEFSLEW 0X15
-
-#define TPS6507X_REG_LDO_CTRL1 0X16
-#define TPS6507X_REG_LDO_CTRL1_LDO1_MASK 0X0F
-
-#define TPS6507X_REG_DEFLDO2 0X17
-#define TPS6507X_REG_DEFLDO2_LDO2_MASK 0X3F
-
-#define TPS6507X_REG_WLED_CTRL1 0X18
-
-#define TPS6507X_REG_WLED_CTRL2 0X19
-
-/* VDCDC MASK */
-#define TPS6507X_DEFDCDCX_DCDC_MASK 0X3F
-
-#define TPS6507X_MAX_REGISTER 0X19
-
-/**
- * struct tps6507x_board - packages regulator and touchscreen init data
- * @tps6507x_regulator_data: regulator initialization values
- *
- * Board data may be used to initialize regulator and touchscreen.
- */
-
-struct tps6507x_board {
- struct regulator_init_data *tps6507x_pmic_init_data;
- struct touchscreen_init_data *tps6507x_ts_init_data;
-};
-
-/**
- * struct tps6507x_dev - tps6507x sub-driver chip access routines
- * @read_dev() - I2C register read function
- * @write_dev() - I2C register write function
- *
- * Device data may be used to access the TPS6507x chip
- */
-
-struct tps6507x_dev {
- struct device *dev;
- struct i2c_client *i2c_client;
- int (*read_dev)(struct tps6507x_dev *tps6507x, char reg, int size,
- void *dest);
- int (*write_dev)(struct tps6507x_dev *tps6507x, char reg, int size,
- void *src);
-
- /* Client devices */
- struct tps6507x_pmic *pmic;
- struct tps6507x_ts *ts;
-};
-
-#endif /* __LINUX_MFD_TPS6507X_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/tps65090.h b/ANDROID_3.4.5/include/linux/mfd/tps65090.h
deleted file mode 100644
index 38e31c55..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/tps65090.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Core driver interface for TI TPS65090 PMIC family
- *
- * Copyright (C) 2012 NVIDIA Corporation
- *
- * 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.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- */
-
-#ifndef __LINUX_MFD_TPS65090_H
-#define __LINUX_MFD_TPS65090_H
-
-struct tps65090_subdev_info {
- int id;
- const char *name;
- void *platform_data;
-};
-
-struct tps65090_platform_data {
- int irq_base;
- int num_subdevs;
- struct tps65090_subdev_info *subdevs;
-};
-
-/*
- * NOTE: the functions below are not intended for use outside
- * of the TPS65090 sub-device drivers
- */
-extern int tps65090_write(struct device *dev, int reg, uint8_t val);
-extern int tps65090_read(struct device *dev, int reg, uint8_t *val);
-extern int tps65090_set_bits(struct device *dev, int reg, uint8_t bit_num);
-extern int tps65090_clr_bits(struct device *dev, int reg, uint8_t bit_num);
-
-#endif /*__LINUX_MFD_TPS65090_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/tps65217.h b/ANDROID_3.4.5/include/linux/mfd/tps65217.h
deleted file mode 100644
index e030ef9a..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/tps65217.h
+++ /dev/null
@@ -1,283 +0,0 @@
-/*
- * linux/mfd/tps65217.h
- *
- * Functions to access TPS65217 power management chip.
- *
- * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.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 version 2.
- *
- * This program is distributed "as is" WITHOUT ANY WARRANTY of any
- * kind, whether express or implied; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
-
-#ifndef __LINUX_MFD_TPS65217_H
-#define __LINUX_MFD_TPS65217_H
-
-#include <linux/i2c.h>
-#include <linux/regulator/driver.h>
-#include <linux/regulator/machine.h>
-
-/* I2C ID for TPS65217 part */
-#define TPS65217_I2C_ID 0x24
-
-/* All register addresses */
-#define TPS65217_REG_CHIPID 0X00
-#define TPS65217_REG_PPATH 0X01
-#define TPS65217_REG_INT 0X02
-#define TPS65217_REG_CHGCONFIG0 0X03
-#define TPS65217_REG_CHGCONFIG1 0X04
-#define TPS65217_REG_CHGCONFIG2 0X05
-#define TPS65217_REG_CHGCONFIG3 0X06
-#define TPS65217_REG_WLEDCTRL1 0X07
-#define TPS65217_REG_WLEDCTRL2 0X08
-#define TPS65217_REG_MUXCTRL 0X09
-#define TPS65217_REG_STATUS 0X0A
-#define TPS65217_REG_PASSWORD 0X0B
-#define TPS65217_REG_PGOOD 0X0C
-#define TPS65217_REG_DEFPG 0X0D
-#define TPS65217_REG_DEFDCDC1 0X0E
-#define TPS65217_REG_DEFDCDC2 0X0F
-#define TPS65217_REG_DEFDCDC3 0X10
-#define TPS65217_REG_DEFSLEW 0X11
-#define TPS65217_REG_DEFLDO1 0X12
-#define TPS65217_REG_DEFLDO2 0X13
-#define TPS65217_REG_DEFLS1 0X14
-#define TPS65217_REG_DEFLS2 0X15
-#define TPS65217_REG_ENABLE 0X16
-#define TPS65217_REG_DEFUVLO 0X18
-#define TPS65217_REG_SEQ1 0X19
-#define TPS65217_REG_SEQ2 0X1A
-#define TPS65217_REG_SEQ3 0X1B
-#define TPS65217_REG_SEQ4 0X1C
-#define TPS65217_REG_SEQ5 0X1D
-#define TPS65217_REG_SEQ6 0X1E
-
-/* Register field definitions */
-#define TPS65217_CHIPID_CHIP_MASK 0xF0
-#define TPS65217_CHIPID_REV_MASK 0x0F
-
-#define TPS65217_PPATH_ACSINK_ENABLE BIT(7)
-#define TPS65217_PPATH_USBSINK_ENABLE BIT(6)
-#define TPS65217_PPATH_AC_PW_ENABLE BIT(5)
-#define TPS65217_PPATH_USB_PW_ENABLE BIT(4)
-#define TPS65217_PPATH_AC_CURRENT_MASK 0x0C
-#define TPS65217_PPATH_USB_CURRENT_MASK 0x03
-
-#define TPS65217_INT_PBM BIT(6)
-#define TPS65217_INT_ACM BIT(5)
-#define TPS65217_INT_USBM BIT(4)
-#define TPS65217_INT_PBI BIT(2)
-#define TPS65217_INT_ACI BIT(1)
-#define TPS65217_INT_USBI BIT(0)
-
-#define TPS65217_CHGCONFIG0_TREG BIT(7)
-#define TPS65217_CHGCONFIG0_DPPM BIT(6)
-#define TPS65217_CHGCONFIG0_TSUSP BIT(5)
-#define TPS65217_CHGCONFIG0_TERMI BIT(4)
-#define TPS65217_CHGCONFIG0_ACTIVE BIT(3)
-#define TPS65217_CHGCONFIG0_CHGTOUT BIT(2)
-#define TPS65217_CHGCONFIG0_PCHGTOUT BIT(1)
-#define TPS65217_CHGCONFIG0_BATTEMP BIT(0)
-
-#define TPS65217_CHGCONFIG1_TMR_MASK 0xC0
-#define TPS65217_CHGCONFIG1_TMR_ENABLE BIT(5)
-#define TPS65217_CHGCONFIG1_NTC_TYPE BIT(4)
-#define TPS65217_CHGCONFIG1_RESET BIT(3)
-#define TPS65217_CHGCONFIG1_TERM BIT(2)
-#define TPS65217_CHGCONFIG1_SUSP BIT(1)
-#define TPS65217_CHGCONFIG1_CHG_EN BIT(0)
-
-#define TPS65217_CHGCONFIG2_DYNTMR BIT(7)
-#define TPS65217_CHGCONFIG2_VPREGHG BIT(6)
-#define TPS65217_CHGCONFIG2_VOREG_MASK 0x30
-
-#define TPS65217_CHGCONFIG3_ICHRG_MASK 0xC0
-#define TPS65217_CHGCONFIG3_DPPMTH_MASK 0x30
-#define TPS65217_CHGCONFIG2_PCHRGT BIT(3)
-#define TPS65217_CHGCONFIG2_TERMIF 0x06
-#define TPS65217_CHGCONFIG2_TRANGE BIT(0)
-
-#define TPS65217_WLEDCTRL1_ISINK_ENABLE BIT(3)
-#define TPS65217_WLEDCTRL1_ISEL BIT(2)
-#define TPS65217_WLEDCTRL1_FDIM_MASK 0x03
-
-#define TPS65217_WLEDCTRL2_DUTY_MASK 0x7F
-
-#define TPS65217_MUXCTRL_MUX_MASK 0x07
-
-#define TPS65217_STATUS_OFF BIT(7)
-#define TPS65217_STATUS_ACPWR BIT(3)
-#define TPS65217_STATUS_USBPWR BIT(2)
-#define TPS65217_STATUS_PB BIT(0)
-
-#define TPS65217_PASSWORD_REGS_UNLOCK 0x7D
-
-#define TPS65217_PGOOD_LDO3_PG BIT(6)
-#define TPS65217_PGOOD_LDO4_PG BIT(5)
-#define TPS65217_PGOOD_DC1_PG BIT(4)
-#define TPS65217_PGOOD_DC2_PG BIT(3)
-#define TPS65217_PGOOD_DC3_PG BIT(2)
-#define TPS65217_PGOOD_LDO1_PG BIT(1)
-#define TPS65217_PGOOD_LDO2_PG BIT(0)
-
-#define TPS65217_DEFPG_LDO1PGM BIT(3)
-#define TPS65217_DEFPG_LDO2PGM BIT(2)
-#define TPS65217_DEFPG_PGDLY_MASK 0x03
-
-#define TPS65217_DEFDCDCX_XADJX BIT(7)
-#define TPS65217_DEFDCDCX_DCDC_MASK 0x3F
-
-#define TPS65217_DEFSLEW_GO BIT(7)
-#define TPS65217_DEFSLEW_GODSBL BIT(6)
-#define TPS65217_DEFSLEW_PFM_EN1 BIT(5)
-#define TPS65217_DEFSLEW_PFM_EN2 BIT(4)
-#define TPS65217_DEFSLEW_PFM_EN3 BIT(3)
-#define TPS65217_DEFSLEW_SLEW_MASK 0x07
-
-#define TPS65217_DEFLDO1_LDO1_MASK 0x0F
-
-#define TPS65217_DEFLDO2_TRACK BIT(6)
-#define TPS65217_DEFLDO2_LDO2_MASK 0x3F
-
-#define TPS65217_DEFLDO3_LDO3_EN BIT(5)
-#define TPS65217_DEFLDO3_LDO3_MASK 0x1F
-
-#define TPS65217_DEFLDO4_LDO4_EN BIT(5)
-#define TPS65217_DEFLDO4_LDO4_MASK 0x1F
-
-#define TPS65217_ENABLE_LS1_EN BIT(6)
-#define TPS65217_ENABLE_LS2_EN BIT(5)
-#define TPS65217_ENABLE_DC1_EN BIT(4)
-#define TPS65217_ENABLE_DC2_EN BIT(3)
-#define TPS65217_ENABLE_DC3_EN BIT(2)
-#define TPS65217_ENABLE_LDO1_EN BIT(1)
-#define TPS65217_ENABLE_LDO2_EN BIT(0)
-
-#define TPS65217_DEFUVLO_UVLOHYS BIT(2)
-#define TPS65217_DEFUVLO_UVLO_MASK 0x03
-
-#define TPS65217_SEQ1_DC1_SEQ_MASK 0xF0
-#define TPS65217_SEQ1_DC2_SEQ_MASK 0x0F
-
-#define TPS65217_SEQ2_DC3_SEQ_MASK 0xF0
-#define TPS65217_SEQ2_LDO1_SEQ_MASK 0x0F
-
-#define TPS65217_SEQ3_LDO2_SEQ_MASK 0xF0
-#define TPS65217_SEQ3_LDO3_SEQ_MASK 0x0F
-
-#define TPS65217_SEQ4_LDO4_SEQ_MASK 0xF0
-
-#define TPS65217_SEQ5_DLY1_MASK 0xC0
-#define TPS65217_SEQ5_DLY2_MASK 0x30
-#define TPS65217_SEQ5_DLY3_MASK 0x0C
-#define TPS65217_SEQ5_DLY4_MASK 0x03
-
-#define TPS65217_SEQ6_DLY5_MASK 0xC0
-#define TPS65217_SEQ6_DLY6_MASK 0x30
-#define TPS65217_SEQ6_SEQUP BIT(2)
-#define TPS65217_SEQ6_SEQDWN BIT(1)
-#define TPS65217_SEQ6_INSTDWN BIT(0)
-
-#define TPS65217_MAX_REGISTER 0x1E
-#define TPS65217_PROTECT_NONE 0
-#define TPS65217_PROTECT_L1 1
-#define TPS65217_PROTECT_L2 2
-
-
-enum tps65217_regulator_id {
- /* DCDC's */
- TPS65217_DCDC_1,
- TPS65217_DCDC_2,
- TPS65217_DCDC_3,
- /* LDOs */
- TPS65217_LDO_1,
- TPS65217_LDO_2,
- TPS65217_LDO_3,
- TPS65217_LDO_4,
-};
-
-#define TPS65217_MAX_REG_ID TPS65217_LDO_4
-
-/* Number of step-down converters available */
-#define TPS65217_NUM_DCDC 3
-/* Number of LDO voltage regulators available */
-#define TPS65217_NUM_LDO 4
-/* Number of total regulators available */
-#define TPS65217_NUM_REGULATOR (TPS65217_NUM_DCDC + TPS65217_NUM_LDO)
-
-/**
- * struct tps65217_board - packages regulator init data
- * @tps65217_regulator_data: regulator initialization values
- *
- * Board data may be used to initialize regulator.
- */
-struct tps65217_board {
- struct regulator_init_data *tps65217_init_data;
-};
-
-/**
- * struct tps_info - packages regulator constraints
- * @name: Voltage regulator name
- * @min_uV: minimum micro volts
- * @max_uV: minimum micro volts
- * @vsel_to_uv: Function pointer to get voltage from selector
- * @uv_to_vsel: Function pointer to get selector from voltage
- * @table: Table for non-uniform voltage step-size
- * @table_len: Length of the voltage table
- * @enable_mask: Regulator enable mask bits
- * @set_vout_reg: Regulator output voltage set register
- * @set_vout_mask: Regulator output voltage set mask
- *
- * This data is used to check the regualtor voltage limits while setting.
- */
-struct tps_info {
- const char *name;
- int min_uV;
- int max_uV;
- int (*vsel_to_uv)(unsigned int vsel);
- int (*uv_to_vsel)(int uV, unsigned int *vsel);
- const int *table;
- unsigned int table_len;
- unsigned int enable_mask;
- unsigned int set_vout_reg;
- unsigned int set_vout_mask;
-};
-
-/**
- * struct tps65217 - tps65217 sub-driver chip access routines
- *
- * Device data may be used to access the TPS65217 chip
- */
-
-struct tps65217 {
- struct device *dev;
- struct tps65217_board *pdata;
- struct regulator_desc desc[TPS65217_NUM_REGULATOR];
- struct regulator_dev *rdev[TPS65217_NUM_REGULATOR];
- struct tps_info *info[TPS65217_NUM_REGULATOR];
- struct regmap *regmap;
-
- /* Client devices */
- struct platform_device *regulator_pdev[TPS65217_NUM_REGULATOR];
-};
-
-static inline struct tps65217 *dev_to_tps65217(struct device *dev)
-{
- return dev_get_drvdata(dev);
-}
-
-int tps65217_reg_read(struct tps65217 *tps, unsigned int reg,
- unsigned int *val);
-int tps65217_reg_write(struct tps65217 *tps, unsigned int reg,
- unsigned int val, unsigned int level);
-int tps65217_set_bits(struct tps65217 *tps, unsigned int reg,
- unsigned int mask, unsigned int val, unsigned int level);
-int tps65217_clear_bits(struct tps65217 *tps, unsigned int reg,
- unsigned int mask, unsigned int level);
-
-#endif /* __LINUX_MFD_TPS65217_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/tps6586x.h b/ANDROID_3.4.5/include/linux/mfd/tps6586x.h
deleted file mode 100644
index b19176ea..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/tps6586x.h
+++ /dev/null
@@ -1,94 +0,0 @@
-#ifndef __LINUX_MFD_TPS6586X_H
-#define __LINUX_MFD_TPS6586X_H
-
-#define TPS6586X_SLEW_RATE_INSTANTLY 0x00
-#define TPS6586X_SLEW_RATE_110UV 0x01
-#define TPS6586X_SLEW_RATE_220UV 0x02
-#define TPS6586X_SLEW_RATE_440UV 0x03
-#define TPS6586X_SLEW_RATE_880UV 0x04
-#define TPS6586X_SLEW_RATE_1760UV 0x05
-#define TPS6586X_SLEW_RATE_3520UV 0x06
-#define TPS6586X_SLEW_RATE_7040UV 0x07
-
-#define TPS6586X_SLEW_RATE_SET 0x08
-#define TPS6586X_SLEW_RATE_MASK 0x07
-
-enum {
- TPS6586X_ID_SM_0,
- TPS6586X_ID_SM_1,
- TPS6586X_ID_SM_2,
- TPS6586X_ID_LDO_0,
- TPS6586X_ID_LDO_1,
- TPS6586X_ID_LDO_2,
- TPS6586X_ID_LDO_3,
- TPS6586X_ID_LDO_4,
- TPS6586X_ID_LDO_5,
- TPS6586X_ID_LDO_6,
- TPS6586X_ID_LDO_7,
- TPS6586X_ID_LDO_8,
- TPS6586X_ID_LDO_9,
- TPS6586X_ID_LDO_RTC,
-};
-
-enum {
- TPS6586X_INT_PLDO_0,
- TPS6586X_INT_PLDO_1,
- TPS6586X_INT_PLDO_2,
- TPS6586X_INT_PLDO_3,
- TPS6586X_INT_PLDO_4,
- TPS6586X_INT_PLDO_5,
- TPS6586X_INT_PLDO_6,
- TPS6586X_INT_PLDO_7,
- TPS6586X_INT_COMP_DET,
- TPS6586X_INT_ADC,
- TPS6586X_INT_PLDO_8,
- TPS6586X_INT_PLDO_9,
- TPS6586X_INT_PSM_0,
- TPS6586X_INT_PSM_1,
- TPS6586X_INT_PSM_2,
- TPS6586X_INT_PSM_3,
- TPS6586X_INT_RTC_ALM1,
- TPS6586X_INT_ACUSB_OVP,
- TPS6586X_INT_USB_DET,
- TPS6586X_INT_AC_DET,
- TPS6586X_INT_BAT_DET,
- TPS6586X_INT_CHG_STAT,
- TPS6586X_INT_CHG_TEMP,
- TPS6586X_INT_PP,
- TPS6586X_INT_RESUME,
- TPS6586X_INT_LOW_SYS,
- TPS6586X_INT_RTC_ALM2,
-};
-
-struct tps6586x_settings {
- int slew_rate;
-};
-
-struct tps6586x_subdev_info {
- int id;
- const char *name;
- void *platform_data;
-};
-
-struct tps6586x_platform_data {
- int num_subdevs;
- struct tps6586x_subdev_info *subdevs;
-
- int gpio_base;
- int irq_base;
-};
-
-/*
- * NOTE: the functions below are not intended for use outside
- * of the TPS6586X sub-device drivers
- */
-extern int tps6586x_write(struct device *dev, int reg, uint8_t val);
-extern int tps6586x_writes(struct device *dev, int reg, int len, uint8_t *val);
-extern int tps6586x_read(struct device *dev, int reg, uint8_t *val);
-extern int tps6586x_reads(struct device *dev, int reg, int len, uint8_t *val);
-extern int tps6586x_set_bits(struct device *dev, int reg, uint8_t bit_mask);
-extern int tps6586x_clr_bits(struct device *dev, int reg, uint8_t bit_mask);
-extern int tps6586x_update(struct device *dev, int reg, uint8_t val,
- uint8_t mask);
-
-#endif /*__LINUX_MFD_TPS6586X_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/tps65910.h b/ANDROID_3.4.5/include/linux/mfd/tps65910.h
deleted file mode 100644
index 1c6c2860..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/tps65910.h
+++ /dev/null
@@ -1,848 +0,0 @@
-/*
- * tps65910.h -- TI TPS6591x
- *
- * Copyright 2010-2011 Texas Instruments Inc.
- *
- * Author: Graeme Gregory <gg@slimlogic.co.uk>
- * Author: Jorge Eduardo Candelaria <jedu@slimlogic.co.uk>
- * Author: Arnaud Deconinck <a-deconinck@ti.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 __LINUX_MFD_TPS65910_H
-#define __LINUX_MFD_TPS65910_H
-
-#include <linux/gpio.h>
-
-/* TPS chip id list */
-#define TPS65910 0
-#define TPS65911 1
-
-/* TPS regulator type list */
-#define REGULATOR_LDO 0
-#define REGULATOR_DCDC 1
-
-/*
- * List of registers for component TPS65910
- *
- */
-
-#define TPS65910_SECONDS 0x0
-#define TPS65910_MINUTES 0x1
-#define TPS65910_HOURS 0x2
-#define TPS65910_DAYS 0x3
-#define TPS65910_MONTHS 0x4
-#define TPS65910_YEARS 0x5
-#define TPS65910_WEEKS 0x6
-#define TPS65910_ALARM_SECONDS 0x8
-#define TPS65910_ALARM_MINUTES 0x9
-#define TPS65910_ALARM_HOURS 0xA
-#define TPS65910_ALARM_DAYS 0xB
-#define TPS65910_ALARM_MONTHS 0xC
-#define TPS65910_ALARM_YEARS 0xD
-#define TPS65910_RTC_CTRL 0x10
-#define TPS65910_RTC_STATUS 0x11
-#define TPS65910_RTC_INTERRUPTS 0x12
-#define TPS65910_RTC_COMP_LSB 0x13
-#define TPS65910_RTC_COMP_MSB 0x14
-#define TPS65910_RTC_RES_PROG 0x15
-#define TPS65910_RTC_RESET_STATUS 0x16
-#define TPS65910_BCK1 0x17
-#define TPS65910_BCK2 0x18
-#define TPS65910_BCK3 0x19
-#define TPS65910_BCK4 0x1A
-#define TPS65910_BCK5 0x1B
-#define TPS65910_PUADEN 0x1C
-#define TPS65910_REF 0x1D
-#define TPS65910_VRTC 0x1E
-#define TPS65910_VIO 0x20
-#define TPS65910_VDD1 0x21
-#define TPS65910_VDD1_OP 0x22
-#define TPS65910_VDD1_SR 0x23
-#define TPS65910_VDD2 0x24
-#define TPS65910_VDD2_OP 0x25
-#define TPS65910_VDD2_SR 0x26
-#define TPS65910_VDD3 0x27
-#define TPS65910_VDIG1 0x30
-#define TPS65910_VDIG2 0x31
-#define TPS65910_VAUX1 0x32
-#define TPS65910_VAUX2 0x33
-#define TPS65910_VAUX33 0x34
-#define TPS65910_VMMC 0x35
-#define TPS65910_VPLL 0x36
-#define TPS65910_VDAC 0x37
-#define TPS65910_THERM 0x38
-#define TPS65910_BBCH 0x39
-#define TPS65910_DCDCCTRL 0x3E
-#define TPS65910_DEVCTRL 0x3F
-#define TPS65910_DEVCTRL2 0x40
-#define TPS65910_SLEEP_KEEP_LDO_ON 0x41
-#define TPS65910_SLEEP_KEEP_RES_ON 0x42
-#define TPS65910_SLEEP_SET_LDO_OFF 0x43
-#define TPS65910_SLEEP_SET_RES_OFF 0x44
-#define TPS65910_EN1_LDO_ASS 0x45
-#define TPS65910_EN1_SMPS_ASS 0x46
-#define TPS65910_EN2_LDO_ASS 0x47
-#define TPS65910_EN2_SMPS_ASS 0x48
-#define TPS65910_EN3_LDO_ASS 0x49
-#define TPS65910_SPARE 0x4A
-#define TPS65910_INT_STS 0x50
-#define TPS65910_INT_MSK 0x51
-#define TPS65910_INT_STS2 0x52
-#define TPS65910_INT_MSK2 0x53
-#define TPS65910_INT_STS3 0x54
-#define TPS65910_INT_MSK3 0x55
-#define TPS65910_GPIO0 0x60
-#define TPS65910_GPIO1 0x61
-#define TPS65910_GPIO2 0x62
-#define TPS65910_GPIO3 0x63
-#define TPS65910_GPIO4 0x64
-#define TPS65910_GPIO5 0x65
-#define TPS65910_GPIO6 0x66
-#define TPS65910_GPIO7 0x67
-#define TPS65910_GPIO8 0x68
-#define TPS65910_JTAGVERNUM 0x80
-#define TPS65910_MAX_REGISTER 0x80
-
-/*
- * List of registers specific to TPS65911
- */
-#define TPS65911_VDDCTRL 0x27
-#define TPS65911_VDDCTRL_OP 0x28
-#define TPS65911_VDDCTRL_SR 0x29
-#define TPS65911_LDO1 0x30
-#define TPS65911_LDO2 0x31
-#define TPS65911_LDO5 0x32
-#define TPS65911_LDO8 0x33
-#define TPS65911_LDO7 0x34
-#define TPS65911_LDO6 0x35
-#define TPS65911_LDO4 0x36
-#define TPS65911_LDO3 0x37
-#define TPS65911_VMBCH 0x6A
-#define TPS65911_VMBCH2 0x6B
-
-/*
- * List of register bitfields for component TPS65910
- *
- */
-
-
-/*Register BCK1 (0x80) register.RegisterDescription */
-#define BCK1_BCKUP_MASK 0xFF
-#define BCK1_BCKUP_SHIFT 0
-
-
-/*Register BCK2 (0x80) register.RegisterDescription */
-#define BCK2_BCKUP_MASK 0xFF
-#define BCK2_BCKUP_SHIFT 0
-
-
-/*Register BCK3 (0x80) register.RegisterDescription */
-#define BCK3_BCKUP_MASK 0xFF
-#define BCK3_BCKUP_SHIFT 0
-
-
-/*Register BCK4 (0x80) register.RegisterDescription */
-#define BCK4_BCKUP_MASK 0xFF
-#define BCK4_BCKUP_SHIFT 0
-
-
-/*Register BCK5 (0x80) register.RegisterDescription */
-#define BCK5_BCKUP_MASK 0xFF
-#define BCK5_BCKUP_SHIFT 0
-
-
-/*Register PUADEN (0x80) register.RegisterDescription */
-#define PUADEN_EN3P_MASK 0x80
-#define PUADEN_EN3P_SHIFT 7
-#define PUADEN_I2CCTLP_MASK 0x40
-#define PUADEN_I2CCTLP_SHIFT 6
-#define PUADEN_I2CSRP_MASK 0x20
-#define PUADEN_I2CSRP_SHIFT 5
-#define PUADEN_PWRONP_MASK 0x10
-#define PUADEN_PWRONP_SHIFT 4
-#define PUADEN_SLEEPP_MASK 0x08
-#define PUADEN_SLEEPP_SHIFT 3
-#define PUADEN_PWRHOLDP_MASK 0x04
-#define PUADEN_PWRHOLDP_SHIFT 2
-#define PUADEN_BOOT1P_MASK 0x02
-#define PUADEN_BOOT1P_SHIFT 1
-#define PUADEN_BOOT0P_MASK 0x01
-#define PUADEN_BOOT0P_SHIFT 0
-
-
-/*Register REF (0x80) register.RegisterDescription */
-#define REF_VMBCH_SEL_MASK 0x0C
-#define REF_VMBCH_SEL_SHIFT 2
-#define REF_ST_MASK 0x03
-#define REF_ST_SHIFT 0
-
-
-/*Register VRTC (0x80) register.RegisterDescription */
-#define VRTC_VRTC_OFFMASK_MASK 0x08
-#define VRTC_VRTC_OFFMASK_SHIFT 3
-#define VRTC_ST_MASK 0x03
-#define VRTC_ST_SHIFT 0
-
-
-/*Register VIO (0x80) register.RegisterDescription */
-#define VIO_ILMAX_MASK 0xC0
-#define VIO_ILMAX_SHIFT 6
-#define VIO_SEL_MASK 0x0C
-#define VIO_SEL_SHIFT 2
-#define VIO_ST_MASK 0x03
-#define VIO_ST_SHIFT 0
-
-
-/*Register VDD1 (0x80) register.RegisterDescription */
-#define VDD1_VGAIN_SEL_MASK 0xC0
-#define VDD1_VGAIN_SEL_SHIFT 6
-#define VDD1_ILMAX_MASK 0x20
-#define VDD1_ILMAX_SHIFT 5
-#define VDD1_TSTEP_MASK 0x1C
-#define VDD1_TSTEP_SHIFT 2
-#define VDD1_ST_MASK 0x03
-#define VDD1_ST_SHIFT 0
-
-
-/*Register VDD1_OP (0x80) register.RegisterDescription */
-#define VDD1_OP_CMD_MASK 0x80
-#define VDD1_OP_CMD_SHIFT 7
-#define VDD1_OP_SEL_MASK 0x7F
-#define VDD1_OP_SEL_SHIFT 0
-
-
-/*Register VDD1_SR (0x80) register.RegisterDescription */
-#define VDD1_SR_SEL_MASK 0x7F
-#define VDD1_SR_SEL_SHIFT 0
-
-
-/*Register VDD2 (0x80) register.RegisterDescription */
-#define VDD2_VGAIN_SEL_MASK 0xC0
-#define VDD2_VGAIN_SEL_SHIFT 6
-#define VDD2_ILMAX_MASK 0x20
-#define VDD2_ILMAX_SHIFT 5
-#define VDD2_TSTEP_MASK 0x1C
-#define VDD2_TSTEP_SHIFT 2
-#define VDD2_ST_MASK 0x03
-#define VDD2_ST_SHIFT 0
-
-
-/*Register VDD2_OP (0x80) register.RegisterDescription */
-#define VDD2_OP_CMD_MASK 0x80
-#define VDD2_OP_CMD_SHIFT 7
-#define VDD2_OP_SEL_MASK 0x7F
-#define VDD2_OP_SEL_SHIFT 0
-
-/*Register VDD2_SR (0x80) register.RegisterDescription */
-#define VDD2_SR_SEL_MASK 0x7F
-#define VDD2_SR_SEL_SHIFT 0
-
-
-/*Registers VDD1, VDD2 voltage values definitions */
-#define VDD1_2_NUM_VOLT_FINE 73
-#define VDD1_2_NUM_VOLT_COARSE 3
-#define VDD1_2_MIN_VOLT 6000
-#define VDD1_2_OFFSET 125
-
-
-/*Register VDD3 (0x80) register.RegisterDescription */
-#define VDD3_CKINEN_MASK 0x04
-#define VDD3_CKINEN_SHIFT 2
-#define VDD3_ST_MASK 0x03
-#define VDD3_ST_SHIFT 0
-#define VDDCTRL_MIN_VOLT 6000
-#define VDDCTRL_OFFSET 125
-
-/*Registers VDIG (0x80) to VDAC register.RegisterDescription */
-#define LDO_SEL_MASK 0x0C
-#define LDO_SEL_SHIFT 2
-#define LDO_ST_MASK 0x03
-#define LDO_ST_SHIFT 0
-#define LDO_ST_ON_BIT 0x01
-#define LDO_ST_MODE_BIT 0x02
-
-
-/* Registers LDO1 to LDO8 in tps65910 */
-#define LDO1_SEL_MASK 0xFC
-#define LDO3_SEL_MASK 0x7C
-#define LDO_MIN_VOLT 1000
-#define LDO_MAX_VOLT 3300
-
-
-/*Register VDIG1 (0x80) register.RegisterDescription */
-#define VDIG1_SEL_MASK 0x0C
-#define VDIG1_SEL_SHIFT 2
-#define VDIG1_ST_MASK 0x03
-#define VDIG1_ST_SHIFT 0
-
-
-/*Register VDIG2 (0x80) register.RegisterDescription */
-#define VDIG2_SEL_MASK 0x0C
-#define VDIG2_SEL_SHIFT 2
-#define VDIG2_ST_MASK 0x03
-#define VDIG2_ST_SHIFT 0
-
-
-/*Register VAUX1 (0x80) register.RegisterDescription */
-#define VAUX1_SEL_MASK 0x0C
-#define VAUX1_SEL_SHIFT 2
-#define VAUX1_ST_MASK 0x03
-#define VAUX1_ST_SHIFT 0
-
-
-/*Register VAUX2 (0x80) register.RegisterDescription */
-#define VAUX2_SEL_MASK 0x0C
-#define VAUX2_SEL_SHIFT 2
-#define VAUX2_ST_MASK 0x03
-#define VAUX2_ST_SHIFT 0
-
-
-/*Register VAUX33 (0x80) register.RegisterDescription */
-#define VAUX33_SEL_MASK 0x0C
-#define VAUX33_SEL_SHIFT 2
-#define VAUX33_ST_MASK 0x03
-#define VAUX33_ST_SHIFT 0
-
-
-/*Register VMMC (0x80) register.RegisterDescription */
-#define VMMC_SEL_MASK 0x0C
-#define VMMC_SEL_SHIFT 2
-#define VMMC_ST_MASK 0x03
-#define VMMC_ST_SHIFT 0
-
-
-/*Register VPLL (0x80) register.RegisterDescription */
-#define VPLL_SEL_MASK 0x0C
-#define VPLL_SEL_SHIFT 2
-#define VPLL_ST_MASK 0x03
-#define VPLL_ST_SHIFT 0
-
-
-/*Register VDAC (0x80) register.RegisterDescription */
-#define VDAC_SEL_MASK 0x0C
-#define VDAC_SEL_SHIFT 2
-#define VDAC_ST_MASK 0x03
-#define VDAC_ST_SHIFT 0
-
-
-/*Register THERM (0x80) register.RegisterDescription */
-#define THERM_THERM_HD_MASK 0x20
-#define THERM_THERM_HD_SHIFT 5
-#define THERM_THERM_TS_MASK 0x10
-#define THERM_THERM_TS_SHIFT 4
-#define THERM_THERM_HDSEL_MASK 0x0C
-#define THERM_THERM_HDSEL_SHIFT 2
-#define THERM_RSVD1_MASK 0x02
-#define THERM_RSVD1_SHIFT 1
-#define THERM_THERM_STATE_MASK 0x01
-#define THERM_THERM_STATE_SHIFT 0
-
-
-/*Register BBCH (0x80) register.RegisterDescription */
-#define BBCH_BBSEL_MASK 0x06
-#define BBCH_BBSEL_SHIFT 1
-#define BBCH_BBCHEN_MASK 0x01
-#define BBCH_BBCHEN_SHIFT 0
-
-
-/*Register DCDCCTRL (0x80) register.RegisterDescription */
-#define DCDCCTRL_VDD2_PSKIP_MASK 0x20
-#define DCDCCTRL_VDD2_PSKIP_SHIFT 5
-#define DCDCCTRL_VDD1_PSKIP_MASK 0x10
-#define DCDCCTRL_VDD1_PSKIP_SHIFT 4
-#define DCDCCTRL_VIO_PSKIP_MASK 0x08
-#define DCDCCTRL_VIO_PSKIP_SHIFT 3
-#define DCDCCTRL_DCDCCKEXT_MASK 0x04
-#define DCDCCTRL_DCDCCKEXT_SHIFT 2
-#define DCDCCTRL_DCDCCKSYNC_MASK 0x03
-#define DCDCCTRL_DCDCCKSYNC_SHIFT 0
-
-
-/*Register DEVCTRL (0x80) register.RegisterDescription */
-#define DEVCTRL_RTC_PWDN_MASK 0x40
-#define DEVCTRL_RTC_PWDN_SHIFT 6
-#define DEVCTRL_CK32K_CTRL_MASK 0x20
-#define DEVCTRL_CK32K_CTRL_SHIFT 5
-#define DEVCTRL_SR_CTL_I2C_SEL_MASK 0x10
-#define DEVCTRL_SR_CTL_I2C_SEL_SHIFT 4
-#define DEVCTRL_DEV_OFF_RST_MASK 0x08
-#define DEVCTRL_DEV_OFF_RST_SHIFT 3
-#define DEVCTRL_DEV_ON_MASK 0x04
-#define DEVCTRL_DEV_ON_SHIFT 2
-#define DEVCTRL_DEV_SLP_MASK 0x02
-#define DEVCTRL_DEV_SLP_SHIFT 1
-#define DEVCTRL_DEV_OFF_MASK 0x01
-#define DEVCTRL_DEV_OFF_SHIFT 0
-
-
-/*Register DEVCTRL2 (0x80) register.RegisterDescription */
-#define DEVCTRL2_TSLOT_LENGTH_MASK 0x30
-#define DEVCTRL2_TSLOT_LENGTH_SHIFT 4
-#define DEVCTRL2_SLEEPSIG_POL_MASK 0x08
-#define DEVCTRL2_SLEEPSIG_POL_SHIFT 3
-#define DEVCTRL2_PWON_LP_OFF_MASK 0x04
-#define DEVCTRL2_PWON_LP_OFF_SHIFT 2
-#define DEVCTRL2_PWON_LP_RST_MASK 0x02
-#define DEVCTRL2_PWON_LP_RST_SHIFT 1
-#define DEVCTRL2_IT_POL_MASK 0x01
-#define DEVCTRL2_IT_POL_SHIFT 0
-
-
-/*Register SLEEP_KEEP_LDO_ON (0x80) register.RegisterDescription */
-#define SLEEP_KEEP_LDO_ON_VDAC_KEEPON_MASK 0x80
-#define SLEEP_KEEP_LDO_ON_VDAC_KEEPON_SHIFT 7
-#define SLEEP_KEEP_LDO_ON_VPLL_KEEPON_MASK 0x40
-#define SLEEP_KEEP_LDO_ON_VPLL_KEEPON_SHIFT 6
-#define SLEEP_KEEP_LDO_ON_VAUX33_KEEPON_MASK 0x20
-#define SLEEP_KEEP_LDO_ON_VAUX33_KEEPON_SHIFT 5
-#define SLEEP_KEEP_LDO_ON_VAUX2_KEEPON_MASK 0x10
-#define SLEEP_KEEP_LDO_ON_VAUX2_KEEPON_SHIFT 4
-#define SLEEP_KEEP_LDO_ON_VAUX1_KEEPON_MASK 0x08
-#define SLEEP_KEEP_LDO_ON_VAUX1_KEEPON_SHIFT 3
-#define SLEEP_KEEP_LDO_ON_VDIG2_KEEPON_MASK 0x04
-#define SLEEP_KEEP_LDO_ON_VDIG2_KEEPON_SHIFT 2
-#define SLEEP_KEEP_LDO_ON_VDIG1_KEEPON_MASK 0x02
-#define SLEEP_KEEP_LDO_ON_VDIG1_KEEPON_SHIFT 1
-#define SLEEP_KEEP_LDO_ON_VMMC_KEEPON_MASK 0x01
-#define SLEEP_KEEP_LDO_ON_VMMC_KEEPON_SHIFT 0
-
-
-/*Register SLEEP_KEEP_RES_ON (0x80) register.RegisterDescription */
-#define SLEEP_KEEP_RES_ON_THERM_KEEPON_MASK 0x80
-#define SLEEP_KEEP_RES_ON_THERM_KEEPON_SHIFT 7
-#define SLEEP_KEEP_RES_ON_CLKOUT32K_KEEPON_MASK 0x40
-#define SLEEP_KEEP_RES_ON_CLKOUT32K_KEEPON_SHIFT 6
-#define SLEEP_KEEP_RES_ON_VRTC_KEEPON_MASK 0x20
-#define SLEEP_KEEP_RES_ON_VRTC_KEEPON_SHIFT 5
-#define SLEEP_KEEP_RES_ON_I2CHS_KEEPON_MASK 0x10
-#define SLEEP_KEEP_RES_ON_I2CHS_KEEPON_SHIFT 4
-#define SLEEP_KEEP_RES_ON_VDD3_KEEPON_MASK 0x08
-#define SLEEP_KEEP_RES_ON_VDD3_KEEPON_SHIFT 3
-#define SLEEP_KEEP_RES_ON_VDD2_KEEPON_MASK 0x04
-#define SLEEP_KEEP_RES_ON_VDD2_KEEPON_SHIFT 2
-#define SLEEP_KEEP_RES_ON_VDD1_KEEPON_MASK 0x02
-#define SLEEP_KEEP_RES_ON_VDD1_KEEPON_SHIFT 1
-#define SLEEP_KEEP_RES_ON_VIO_KEEPON_MASK 0x01
-#define SLEEP_KEEP_RES_ON_VIO_KEEPON_SHIFT 0
-
-
-/*Register SLEEP_SET_LDO_OFF (0x80) register.RegisterDescription */
-#define SLEEP_SET_LDO_OFF_VDAC_SETOFF_MASK 0x80
-#define SLEEP_SET_LDO_OFF_VDAC_SETOFF_SHIFT 7
-#define SLEEP_SET_LDO_OFF_VPLL_SETOFF_MASK 0x40
-#define SLEEP_SET_LDO_OFF_VPLL_SETOFF_SHIFT 6
-#define SLEEP_SET_LDO_OFF_VAUX33_SETOFF_MASK 0x20
-#define SLEEP_SET_LDO_OFF_VAUX33_SETOFF_SHIFT 5
-#define SLEEP_SET_LDO_OFF_VAUX2_SETOFF_MASK 0x10
-#define SLEEP_SET_LDO_OFF_VAUX2_SETOFF_SHIFT 4
-#define SLEEP_SET_LDO_OFF_VAUX1_SETOFF_MASK 0x08
-#define SLEEP_SET_LDO_OFF_VAUX1_SETOFF_SHIFT 3
-#define SLEEP_SET_LDO_OFF_VDIG2_SETOFF_MASK 0x04
-#define SLEEP_SET_LDO_OFF_VDIG2_SETOFF_SHIFT 2
-#define SLEEP_SET_LDO_OFF_VDIG1_SETOFF_MASK 0x02
-#define SLEEP_SET_LDO_OFF_VDIG1_SETOFF_SHIFT 1
-#define SLEEP_SET_LDO_OFF_VMMC_SETOFF_MASK 0x01
-#define SLEEP_SET_LDO_OFF_VMMC_SETOFF_SHIFT 0
-
-
-/*Register SLEEP_SET_RES_OFF (0x80) register.RegisterDescription */
-#define SLEEP_SET_RES_OFF_DEFAULT_VOLT_MASK 0x80
-#define SLEEP_SET_RES_OFF_DEFAULT_VOLT_SHIFT 7
-#define SLEEP_SET_RES_OFF_RSVD_MASK 0x60
-#define SLEEP_SET_RES_OFF_RSVD_SHIFT 5
-#define SLEEP_SET_RES_OFF_SPARE_SETOFF_MASK 0x10
-#define SLEEP_SET_RES_OFF_SPARE_SETOFF_SHIFT 4
-#define SLEEP_SET_RES_OFF_VDD3_SETOFF_MASK 0x08
-#define SLEEP_SET_RES_OFF_VDD3_SETOFF_SHIFT 3
-#define SLEEP_SET_RES_OFF_VDD2_SETOFF_MASK 0x04
-#define SLEEP_SET_RES_OFF_VDD2_SETOFF_SHIFT 2
-#define SLEEP_SET_RES_OFF_VDD1_SETOFF_MASK 0x02
-#define SLEEP_SET_RES_OFF_VDD1_SETOFF_SHIFT 1
-#define SLEEP_SET_RES_OFF_VIO_SETOFF_MASK 0x01
-#define SLEEP_SET_RES_OFF_VIO_SETOFF_SHIFT 0
-
-
-/*Register EN1_LDO_ASS (0x80) register.RegisterDescription */
-#define EN1_LDO_ASS_VDAC_EN1_MASK 0x80
-#define EN1_LDO_ASS_VDAC_EN1_SHIFT 7
-#define EN1_LDO_ASS_VPLL_EN1_MASK 0x40
-#define EN1_LDO_ASS_VPLL_EN1_SHIFT 6
-#define EN1_LDO_ASS_VAUX33_EN1_MASK 0x20
-#define EN1_LDO_ASS_VAUX33_EN1_SHIFT 5
-#define EN1_LDO_ASS_VAUX2_EN1_MASK 0x10
-#define EN1_LDO_ASS_VAUX2_EN1_SHIFT 4
-#define EN1_LDO_ASS_VAUX1_EN1_MASK 0x08
-#define EN1_LDO_ASS_VAUX1_EN1_SHIFT 3
-#define EN1_LDO_ASS_VDIG2_EN1_MASK 0x04
-#define EN1_LDO_ASS_VDIG2_EN1_SHIFT 2
-#define EN1_LDO_ASS_VDIG1_EN1_MASK 0x02
-#define EN1_LDO_ASS_VDIG1_EN1_SHIFT 1
-#define EN1_LDO_ASS_VMMC_EN1_MASK 0x01
-#define EN1_LDO_ASS_VMMC_EN1_SHIFT 0
-
-
-/*Register EN1_SMPS_ASS (0x80) register.RegisterDescription */
-#define EN1_SMPS_ASS_RSVD_MASK 0xE0
-#define EN1_SMPS_ASS_RSVD_SHIFT 5
-#define EN1_SMPS_ASS_SPARE_EN1_MASK 0x10
-#define EN1_SMPS_ASS_SPARE_EN1_SHIFT 4
-#define EN1_SMPS_ASS_VDD3_EN1_MASK 0x08
-#define EN1_SMPS_ASS_VDD3_EN1_SHIFT 3
-#define EN1_SMPS_ASS_VDD2_EN1_MASK 0x04
-#define EN1_SMPS_ASS_VDD2_EN1_SHIFT 2
-#define EN1_SMPS_ASS_VDD1_EN1_MASK 0x02
-#define EN1_SMPS_ASS_VDD1_EN1_SHIFT 1
-#define EN1_SMPS_ASS_VIO_EN1_MASK 0x01
-#define EN1_SMPS_ASS_VIO_EN1_SHIFT 0
-
-
-/*Register EN2_LDO_ASS (0x80) register.RegisterDescription */
-#define EN2_LDO_ASS_VDAC_EN2_MASK 0x80
-#define EN2_LDO_ASS_VDAC_EN2_SHIFT 7
-#define EN2_LDO_ASS_VPLL_EN2_MASK 0x40
-#define EN2_LDO_ASS_VPLL_EN2_SHIFT 6
-#define EN2_LDO_ASS_VAUX33_EN2_MASK 0x20
-#define EN2_LDO_ASS_VAUX33_EN2_SHIFT 5
-#define EN2_LDO_ASS_VAUX2_EN2_MASK 0x10
-#define EN2_LDO_ASS_VAUX2_EN2_SHIFT 4
-#define EN2_LDO_ASS_VAUX1_EN2_MASK 0x08
-#define EN2_LDO_ASS_VAUX1_EN2_SHIFT 3
-#define EN2_LDO_ASS_VDIG2_EN2_MASK 0x04
-#define EN2_LDO_ASS_VDIG2_EN2_SHIFT 2
-#define EN2_LDO_ASS_VDIG1_EN2_MASK 0x02
-#define EN2_LDO_ASS_VDIG1_EN2_SHIFT 1
-#define EN2_LDO_ASS_VMMC_EN2_MASK 0x01
-#define EN2_LDO_ASS_VMMC_EN2_SHIFT 0
-
-
-/*Register EN2_SMPS_ASS (0x80) register.RegisterDescription */
-#define EN2_SMPS_ASS_RSVD_MASK 0xE0
-#define EN2_SMPS_ASS_RSVD_SHIFT 5
-#define EN2_SMPS_ASS_SPARE_EN2_MASK 0x10
-#define EN2_SMPS_ASS_SPARE_EN2_SHIFT 4
-#define EN2_SMPS_ASS_VDD3_EN2_MASK 0x08
-#define EN2_SMPS_ASS_VDD3_EN2_SHIFT 3
-#define EN2_SMPS_ASS_VDD2_EN2_MASK 0x04
-#define EN2_SMPS_ASS_VDD2_EN2_SHIFT 2
-#define EN2_SMPS_ASS_VDD1_EN2_MASK 0x02
-#define EN2_SMPS_ASS_VDD1_EN2_SHIFT 1
-#define EN2_SMPS_ASS_VIO_EN2_MASK 0x01
-#define EN2_SMPS_ASS_VIO_EN2_SHIFT 0
-
-
-/*Register EN3_LDO_ASS (0x80) register.RegisterDescription */
-#define EN3_LDO_ASS_VDAC_EN3_MASK 0x80
-#define EN3_LDO_ASS_VDAC_EN3_SHIFT 7
-#define EN3_LDO_ASS_VPLL_EN3_MASK 0x40
-#define EN3_LDO_ASS_VPLL_EN3_SHIFT 6
-#define EN3_LDO_ASS_VAUX33_EN3_MASK 0x20
-#define EN3_LDO_ASS_VAUX33_EN3_SHIFT 5
-#define EN3_LDO_ASS_VAUX2_EN3_MASK 0x10
-#define EN3_LDO_ASS_VAUX2_EN3_SHIFT 4
-#define EN3_LDO_ASS_VAUX1_EN3_MASK 0x08
-#define EN3_LDO_ASS_VAUX1_EN3_SHIFT 3
-#define EN3_LDO_ASS_VDIG2_EN3_MASK 0x04
-#define EN3_LDO_ASS_VDIG2_EN3_SHIFT 2
-#define EN3_LDO_ASS_VDIG1_EN3_MASK 0x02
-#define EN3_LDO_ASS_VDIG1_EN3_SHIFT 1
-#define EN3_LDO_ASS_VMMC_EN3_MASK 0x01
-#define EN3_LDO_ASS_VMMC_EN3_SHIFT 0
-
-
-/*Register SPARE (0x80) register.RegisterDescription */
-#define SPARE_SPARE_MASK 0xFF
-#define SPARE_SPARE_SHIFT 0
-
-
-/*Register INT_STS (0x80) register.RegisterDescription */
-#define INT_STS_RTC_PERIOD_IT_MASK 0x80
-#define INT_STS_RTC_PERIOD_IT_SHIFT 7
-#define INT_STS_RTC_ALARM_IT_MASK 0x40
-#define INT_STS_RTC_ALARM_IT_SHIFT 6
-#define INT_STS_HOTDIE_IT_MASK 0x20
-#define INT_STS_HOTDIE_IT_SHIFT 5
-#define INT_STS_PWRHOLD_IT_MASK 0x10
-#define INT_STS_PWRHOLD_IT_SHIFT 4
-#define INT_STS_PWRON_LP_IT_MASK 0x08
-#define INT_STS_PWRON_LP_IT_SHIFT 3
-#define INT_STS_PWRON_IT_MASK 0x04
-#define INT_STS_PWRON_IT_SHIFT 2
-#define INT_STS_VMBHI_IT_MASK 0x02
-#define INT_STS_VMBHI_IT_SHIFT 1
-#define INT_STS_VMBDCH_IT_MASK 0x01
-#define INT_STS_VMBDCH_IT_SHIFT 0
-
-
-/*Register INT_MSK (0x80) register.RegisterDescription */
-#define INT_MSK_RTC_PERIOD_IT_MSK_MASK 0x80
-#define INT_MSK_RTC_PERIOD_IT_MSK_SHIFT 7
-#define INT_MSK_RTC_ALARM_IT_MSK_MASK 0x40
-#define INT_MSK_RTC_ALARM_IT_MSK_SHIFT 6
-#define INT_MSK_HOTDIE_IT_MSK_MASK 0x20
-#define INT_MSK_HOTDIE_IT_MSK_SHIFT 5
-#define INT_MSK_PWRHOLD_IT_MSK_MASK 0x10
-#define INT_MSK_PWRHOLD_IT_MSK_SHIFT 4
-#define INT_MSK_PWRON_LP_IT_MSK_MASK 0x08
-#define INT_MSK_PWRON_LP_IT_MSK_SHIFT 3
-#define INT_MSK_PWRON_IT_MSK_MASK 0x04
-#define INT_MSK_PWRON_IT_MSK_SHIFT 2
-#define INT_MSK_VMBHI_IT_MSK_MASK 0x02
-#define INT_MSK_VMBHI_IT_MSK_SHIFT 1
-#define INT_MSK_VMBDCH_IT_MSK_MASK 0x01
-#define INT_MSK_VMBDCH_IT_MSK_SHIFT 0
-
-
-/*Register INT_STS2 (0x80) register.RegisterDescription */
-#define INT_STS2_GPIO3_F_IT_MASK 0x80
-#define INT_STS2_GPIO3_F_IT_SHIFT 7
-#define INT_STS2_GPIO3_R_IT_MASK 0x40
-#define INT_STS2_GPIO3_R_IT_SHIFT 6
-#define INT_STS2_GPIO2_F_IT_MASK 0x20
-#define INT_STS2_GPIO2_F_IT_SHIFT 5
-#define INT_STS2_GPIO2_R_IT_MASK 0x10
-#define INT_STS2_GPIO2_R_IT_SHIFT 4
-#define INT_STS2_GPIO1_F_IT_MASK 0x08
-#define INT_STS2_GPIO1_F_IT_SHIFT 3
-#define INT_STS2_GPIO1_R_IT_MASK 0x04
-#define INT_STS2_GPIO1_R_IT_SHIFT 2
-#define INT_STS2_GPIO0_F_IT_MASK 0x02
-#define INT_STS2_GPIO0_F_IT_SHIFT 1
-#define INT_STS2_GPIO0_R_IT_MASK 0x01
-#define INT_STS2_GPIO0_R_IT_SHIFT 0
-
-
-/*Register INT_MSK2 (0x80) register.RegisterDescription */
-#define INT_MSK2_GPIO3_F_IT_MSK_MASK 0x80
-#define INT_MSK2_GPIO3_F_IT_MSK_SHIFT 7
-#define INT_MSK2_GPIO3_R_IT_MSK_MASK 0x40
-#define INT_MSK2_GPIO3_R_IT_MSK_SHIFT 6
-#define INT_MSK2_GPIO2_F_IT_MSK_MASK 0x20
-#define INT_MSK2_GPIO2_F_IT_MSK_SHIFT 5
-#define INT_MSK2_GPIO2_R_IT_MSK_MASK 0x10
-#define INT_MSK2_GPIO2_R_IT_MSK_SHIFT 4
-#define INT_MSK2_GPIO1_F_IT_MSK_MASK 0x08
-#define INT_MSK2_GPIO1_F_IT_MSK_SHIFT 3
-#define INT_MSK2_GPIO1_R_IT_MSK_MASK 0x04
-#define INT_MSK2_GPIO1_R_IT_MSK_SHIFT 2
-#define INT_MSK2_GPIO0_F_IT_MSK_MASK 0x02
-#define INT_MSK2_GPIO0_F_IT_MSK_SHIFT 1
-#define INT_MSK2_GPIO0_R_IT_MSK_MASK 0x01
-#define INT_MSK2_GPIO0_R_IT_MSK_SHIFT 0
-
-
-/*Register INT_STS3 (0x80) register.RegisterDescription */
-#define INT_STS3_GPIO5_F_IT_MASK 0x08
-#define INT_STS3_GPIO5_F_IT_SHIFT 3
-#define INT_STS3_GPIO5_R_IT_MASK 0x04
-#define INT_STS3_GPIO5_R_IT_SHIFT 2
-#define INT_STS3_GPIO4_F_IT_MASK 0x02
-#define INT_STS3_GPIO4_F_IT_SHIFT 1
-#define INT_STS3_GPIO4_R_IT_MASK 0x01
-#define INT_STS3_GPIO4_R_IT_SHIFT 0
-
-
-/*Register INT_MSK3 (0x80) register.RegisterDescription */
-#define INT_MSK3_GPIO5_F_IT_MSK_MASK 0x08
-#define INT_MSK3_GPIO5_F_IT_MSK_SHIFT 3
-#define INT_MSK3_GPIO5_R_IT_MSK_MASK 0x04
-#define INT_MSK3_GPIO5_R_IT_MSK_SHIFT 2
-#define INT_MSK3_GPIO4_F_IT_MSK_MASK 0x02
-#define INT_MSK3_GPIO4_F_IT_MSK_SHIFT 1
-#define INT_MSK3_GPIO4_R_IT_MSK_MASK 0x01
-#define INT_MSK3_GPIO4_R_IT_MSK_SHIFT 0
-
-
-/*Register GPIO (0x80) register.RegisterDescription */
-#define GPIO_SLEEP_MASK 0x80
-#define GPIO_SLEEP_SHIFT 7
-#define GPIO_DEB_MASK 0x10
-#define GPIO_DEB_SHIFT 4
-#define GPIO_PUEN_MASK 0x08
-#define GPIO_PUEN_SHIFT 3
-#define GPIO_CFG_MASK 0x04
-#define GPIO_CFG_SHIFT 2
-#define GPIO_STS_MASK 0x02
-#define GPIO_STS_SHIFT 1
-#define GPIO_SET_MASK 0x01
-#define GPIO_SET_SHIFT 0
-
-
-/*Register JTAGVERNUM (0x80) register.RegisterDescription */
-#define JTAGVERNUM_VERNUM_MASK 0x0F
-#define JTAGVERNUM_VERNUM_SHIFT 0
-
-
-/* Register VDDCTRL (0x27) bit definitions */
-#define VDDCTRL_ST_MASK 0x03
-#define VDDCTRL_ST_SHIFT 0
-
-
-/*Register VDDCTRL_OP (0x28) bit definitios */
-#define VDDCTRL_OP_CMD_MASK 0x80
-#define VDDCTRL_OP_CMD_SHIFT 7
-#define VDDCTRL_OP_SEL_MASK 0x7F
-#define VDDCTRL_OP_SEL_SHIFT 0
-
-
-/*Register VDDCTRL_SR (0x29) bit definitions */
-#define VDDCTRL_SR_SEL_MASK 0x7F
-#define VDDCTRL_SR_SEL_SHIFT 0
-
-
-/* IRQ Definitions */
-#define TPS65910_IRQ_VBAT_VMBDCH 0
-#define TPS65910_IRQ_VBAT_VMHI 1
-#define TPS65910_IRQ_PWRON 2
-#define TPS65910_IRQ_PWRON_LP 3
-#define TPS65910_IRQ_PWRHOLD 4
-#define TPS65910_IRQ_HOTDIE 5
-#define TPS65910_IRQ_RTC_ALARM 6
-#define TPS65910_IRQ_RTC_PERIOD 7
-#define TPS65910_IRQ_GPIO_R 8
-#define TPS65910_IRQ_GPIO_F 9
-#define TPS65910_NUM_IRQ 10
-
-#define TPS65911_IRQ_VBAT_VMBDCH 0
-#define TPS65911_IRQ_VBAT_VMBDCH2L 1
-#define TPS65911_IRQ_VBAT_VMBDCH2H 2
-#define TPS65911_IRQ_VBAT_VMHI 3
-#define TPS65911_IRQ_PWRON 4
-#define TPS65911_IRQ_PWRON_LP 5
-#define TPS65911_IRQ_PWRHOLD_F 6
-#define TPS65911_IRQ_PWRHOLD_R 7
-#define TPS65911_IRQ_HOTDIE 8
-#define TPS65911_IRQ_RTC_ALARM 9
-#define TPS65911_IRQ_RTC_PERIOD 10
-#define TPS65911_IRQ_GPIO0_R 11
-#define TPS65911_IRQ_GPIO0_F 12
-#define TPS65911_IRQ_GPIO1_R 13
-#define TPS65911_IRQ_GPIO1_F 14
-#define TPS65911_IRQ_GPIO2_R 15
-#define TPS65911_IRQ_GPIO2_F 16
-#define TPS65911_IRQ_GPIO3_R 17
-#define TPS65911_IRQ_GPIO3_F 18
-#define TPS65911_IRQ_GPIO4_R 19
-#define TPS65911_IRQ_GPIO4_F 20
-#define TPS65911_IRQ_GPIO5_R 21
-#define TPS65911_IRQ_GPIO5_F 22
-#define TPS65911_IRQ_WTCHDG 23
-#define TPS65911_IRQ_PWRDN 24
-
-#define TPS65911_NUM_IRQ 25
-
-
-/* GPIO Register Definitions */
-#define TPS65910_GPIO_DEB BIT(2)
-#define TPS65910_GPIO_PUEN BIT(3)
-#define TPS65910_GPIO_CFG BIT(2)
-#define TPS65910_GPIO_STS BIT(1)
-#define TPS65910_GPIO_SET BIT(0)
-
-/* Max number of TPS65910/11 GPIOs */
-#define TPS65910_NUM_GPIO 6
-#define TPS65911_NUM_GPIO 9
-#define TPS6591X_MAX_NUM_GPIO 9
-
-/* Regulator Index Definitions */
-#define TPS65910_REG_VRTC 0
-#define TPS65910_REG_VIO 1
-#define TPS65910_REG_VDD1 2
-#define TPS65910_REG_VDD2 3
-#define TPS65910_REG_VDD3 4
-#define TPS65910_REG_VDIG1 5
-#define TPS65910_REG_VDIG2 6
-#define TPS65910_REG_VPLL 7
-#define TPS65910_REG_VDAC 8
-#define TPS65910_REG_VAUX1 9
-#define TPS65910_REG_VAUX2 10
-#define TPS65910_REG_VAUX33 11
-#define TPS65910_REG_VMMC 12
-
-#define TPS65911_REG_VDDCTRL 4
-#define TPS65911_REG_LDO1 5
-#define TPS65911_REG_LDO2 6
-#define TPS65911_REG_LDO3 7
-#define TPS65911_REG_LDO4 8
-#define TPS65911_REG_LDO5 9
-#define TPS65911_REG_LDO6 10
-#define TPS65911_REG_LDO7 11
-#define TPS65911_REG_LDO8 12
-
-/* Max number of TPS65910/11 regulators */
-#define TPS65910_NUM_REGS 13
-
-/* External sleep controls through EN1/EN2/EN3/SLEEP inputs */
-#define TPS65910_SLEEP_CONTROL_EXT_INPUT_EN1 0x1
-#define TPS65910_SLEEP_CONTROL_EXT_INPUT_EN2 0x2
-#define TPS65910_SLEEP_CONTROL_EXT_INPUT_EN3 0x4
-#define TPS65911_SLEEP_CONTROL_EXT_INPUT_SLEEP 0x8
-
-/**
- * struct tps65910_board
- * Board platform data may be used to initialize regulators.
- */
-
-struct tps65910_board {
- int gpio_base;
- int irq;
- int irq_base;
- int vmbch_threshold;
- int vmbch2_threshold;
- bool en_gpio_sleep[TPS6591X_MAX_NUM_GPIO];
- unsigned long regulator_ext_sleep_control[TPS65910_NUM_REGS];
- struct regulator_init_data *tps65910_pmic_init_data[TPS65910_NUM_REGS];
-};
-
-/**
- * struct tps65910 - tps65910 sub-driver chip access routines
- */
-
-struct tps65910 {
- struct device *dev;
- struct i2c_client *i2c_client;
- struct regmap *regmap;
- struct mutex io_mutex;
- unsigned int id;
- int (*read)(struct tps65910 *tps65910, u8 reg, int size, void *dest);
- int (*write)(struct tps65910 *tps65910, u8 reg, int size, void *src);
-
- /* Client devices */
- struct tps65910_pmic *pmic;
- struct tps65910_rtc *rtc;
- struct tps65910_power *power;
-
- /* GPIO Handling */
- struct gpio_chip gpio;
-
- /* IRQ Handling */
- struct mutex irq_lock;
- int chip_irq;
- int irq_base;
- int irq_num;
- u32 irq_mask;
-};
-
-struct tps65910_platform_data {
- int irq;
- int irq_base;
-};
-
-int tps65910_set_bits(struct tps65910 *tps65910, u8 reg, u8 mask);
-int tps65910_clear_bits(struct tps65910 *tps65910, u8 reg, u8 mask);
-void tps65910_gpio_init(struct tps65910 *tps65910, int gpio_base);
-int tps65910_irq_init(struct tps65910 *tps65910, int irq,
- struct tps65910_platform_data *pdata);
-int tps65910_irq_exit(struct tps65910 *tps65910);
-
-static inline int tps65910_chip_id(struct tps65910 *tps65910)
-{
- return tps65910->id;
-}
-
-#endif /* __LINUX_MFD_TPS65910_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/tps65912.h b/ANDROID_3.4.5/include/linux/mfd/tps65912.h
deleted file mode 100644
index aaceab40..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/tps65912.h
+++ /dev/null
@@ -1,327 +0,0 @@
-/*
- * tps65912.h -- TI TPS6591x
- *
- * Copyright 2011 Texas Instruments Inc.
- *
- * Author: Margarita Olaya <magi@slimlogic.co.uk>
- *
- * 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_MFD_TPS65912_H
-#define __LINUX_MFD_TPS65912_H
-
-/* TPS regulator type list */
-#define REGULATOR_LDO 0
-#define REGULATOR_DCDC 1
-
-/*
- * List of registers for TPS65912
- */
-
-#define TPS65912_DCDC1_CTRL 0x00
-#define TPS65912_DCDC2_CTRL 0x01
-#define TPS65912_DCDC3_CTRL 0x02
-#define TPS65912_DCDC4_CTRL 0x03
-#define TPS65912_DCDC1_OP 0x04
-#define TPS65912_DCDC1_AVS 0x05
-#define TPS65912_DCDC1_LIMIT 0x06
-#define TPS65912_DCDC2_OP 0x07
-#define TPS65912_DCDC2_AVS 0x08
-#define TPS65912_DCDC2_LIMIT 0x09
-#define TPS65912_DCDC3_OP 0x0A
-#define TPS65912_DCDC3_AVS 0x0B
-#define TPS65912_DCDC3_LIMIT 0x0C
-#define TPS65912_DCDC4_OP 0x0D
-#define TPS65912_DCDC4_AVS 0x0E
-#define TPS65912_DCDC4_LIMIT 0x0F
-#define TPS65912_LDO1_OP 0x10
-#define TPS65912_LDO1_AVS 0x11
-#define TPS65912_LDO1_LIMIT 0x12
-#define TPS65912_LDO2_OP 0x13
-#define TPS65912_LDO2_AVS 0x14
-#define TPS65912_LDO2_LIMIT 0x15
-#define TPS65912_LDO3_OP 0x16
-#define TPS65912_LDO3_AVS 0x17
-#define TPS65912_LDO3_LIMIT 0x18
-#define TPS65912_LDO4_OP 0x19
-#define TPS65912_LDO4_AVS 0x1A
-#define TPS65912_LDO4_LIMIT 0x1B
-#define TPS65912_LDO5 0x1C
-#define TPS65912_LDO6 0x1D
-#define TPS65912_LDO7 0x1E
-#define TPS65912_LDO8 0x1F
-#define TPS65912_LDO9 0x20
-#define TPS65912_LDO10 0x21
-#define TPS65912_THRM 0x22
-#define TPS65912_CLK32OUT 0x23
-#define TPS65912_DEVCTRL 0x24
-#define TPS65912_DEVCTRL2 0x25
-#define TPS65912_I2C_SPI_CFG 0x26
-#define TPS65912_KEEP_ON 0x27
-#define TPS65912_KEEP_ON2 0x28
-#define TPS65912_SET_OFF1 0x29
-#define TPS65912_SET_OFF2 0x2A
-#define TPS65912_DEF_VOLT 0x2B
-#define TPS65912_DEF_VOLT_MAPPING 0x2C
-#define TPS65912_DISCHARGE 0x2D
-#define TPS65912_DISCHARGE2 0x2E
-#define TPS65912_EN1_SET1 0x2F
-#define TPS65912_EN1_SET2 0x30
-#define TPS65912_EN2_SET1 0x31
-#define TPS65912_EN2_SET2 0x32
-#define TPS65912_EN3_SET1 0x33
-#define TPS65912_EN3_SET2 0x34
-#define TPS65912_EN4_SET1 0x35
-#define TPS65912_EN4_SET2 0x36
-#define TPS65912_PGOOD 0x37
-#define TPS65912_PGOOD2 0x38
-#define TPS65912_INT_STS 0x39
-#define TPS65912_INT_MSK 0x3A
-#define TPS65912_INT_STS2 0x3B
-#define TPS65912_INT_MSK2 0x3C
-#define TPS65912_INT_STS3 0x3D
-#define TPS65912_INT_MSK3 0x3E
-#define TPS65912_INT_STS4 0x3F
-#define TPS65912_INT_MSK4 0x40
-#define TPS65912_GPIO1 0x41
-#define TPS65912_GPIO2 0x42
-#define TPS65912_GPIO3 0x43
-#define TPS65912_GPIO4 0x44
-#define TPS65912_GPIO5 0x45
-#define TPS65912_VMON 0x46
-#define TPS65912_LEDA_CTRL1 0x47
-#define TPS65912_LEDA_CTRL2 0x48
-#define TPS65912_LEDA_CTRL3 0x49
-#define TPS65912_LEDA_CTRL4 0x4A
-#define TPS65912_LEDA_CTRL5 0x4B
-#define TPS65912_LEDA_CTRL6 0x4C
-#define TPS65912_LEDA_CTRL7 0x4D
-#define TPS65912_LEDA_CTRL8 0x4E
-#define TPS65912_LEDB_CTRL1 0x4F
-#define TPS65912_LEDB_CTRL2 0x50
-#define TPS65912_LEDB_CTRL3 0x51
-#define TPS65912_LEDB_CTRL4 0x52
-#define TPS65912_LEDB_CTRL5 0x53
-#define TPS65912_LEDB_CTRL6 0x54
-#define TPS65912_LEDB_CTRL7 0x55
-#define TPS65912_LEDB_CTRL8 0x56
-#define TPS65912_LEDC_CTRL1 0x57
-#define TPS65912_LEDC_CTRL2 0x58
-#define TPS65912_LEDC_CTRL3 0x59
-#define TPS65912_LEDC_CTRL4 0x5A
-#define TPS65912_LEDC_CTRL5 0x5B
-#define TPS65912_LEDC_CTRL6 0x5C
-#define TPS65912_LEDC_CTRL7 0x5D
-#define TPS65912_LEDC_CTRL8 0x5E
-#define TPS65912_LED_RAMP_UP_TIME 0x5F
-#define TPS65912_LED_RAMP_DOWN_TIME 0x60
-#define TPS65912_LED_SEQ_EN 0x61
-#define TPS65912_LOADSWITCH 0x62
-#define TPS65912_SPARE 0x63
-#define TPS65912_VERNUM 0x64
-#define TPS6591X_MAX_REGISTER 0x64
-
-/* IRQ Definitions */
-#define TPS65912_IRQ_PWRHOLD_F 0
-#define TPS65912_IRQ_VMON 1
-#define TPS65912_IRQ_PWRON 2
-#define TPS65912_IRQ_PWRON_LP 3
-#define TPS65912_IRQ_PWRHOLD_R 4
-#define TPS65912_IRQ_HOTDIE 5
-#define TPS65912_IRQ_GPIO1_R 6
-#define TPS65912_IRQ_GPIO1_F 7
-#define TPS65912_IRQ_GPIO2_R 8
-#define TPS65912_IRQ_GPIO2_F 9
-#define TPS65912_IRQ_GPIO3_R 10
-#define TPS65912_IRQ_GPIO3_F 11
-#define TPS65912_IRQ_GPIO4_R 12
-#define TPS65912_IRQ_GPIO4_F 13
-#define TPS65912_IRQ_GPIO5_R 14
-#define TPS65912_IRQ_GPIO5_F 15
-#define TPS65912_IRQ_PGOOD_DCDC1 16
-#define TPS65912_IRQ_PGOOD_DCDC2 17
-#define TPS65912_IRQ_PGOOD_DCDC3 18
-#define TPS65912_IRQ_PGOOD_DCDC4 19
-#define TPS65912_IRQ_PGOOD_LDO1 20
-#define TPS65912_IRQ_PGOOD_LDO2 21
-#define TPS65912_IRQ_PGOOD_LDO3 22
-#define TPS65912_IRQ_PGOOD_LDO4 23
-#define TPS65912_IRQ_PGOOD_LDO5 24
-#define TPS65912_IRQ_PGOOD_LDO6 25
-#define TPS65912_IRQ_PGOOD_LDO7 26
-#define TPS65912_IRQ_PGOOD_LD08 27
-#define TPS65912_IRQ_PGOOD_LDO9 28
-#define TPS65912_IRQ_PGOOD_LDO10 29
-
-#define TPS65912_NUM_IRQ 30
-
-/* GPIO 1 and 2 Register Definitions */
-#define GPIO_SLEEP_MASK 0x80
-#define GPIO_SLEEP_SHIFT 7
-#define GPIO_DEB_MASK 0x10
-#define GPIO_DEB_SHIFT 4
-#define GPIO_CFG_MASK 0x04
-#define GPIO_CFG_SHIFT 2
-#define GPIO_STS_MASK 0x02
-#define GPIO_STS_SHIFT 1
-#define GPIO_SET_MASK 0x01
-#define GPIO_SET_SHIFT 0
-
-/* GPIO 3 Register Definitions */
-#define GPIO3_SLEEP_MASK 0x80
-#define GPIO3_SLEEP_SHIFT 7
-#define GPIO3_SEL_MASK 0x40
-#define GPIO3_SEL_SHIFT 6
-#define GPIO3_ODEN_MASK 0x20
-#define GPIO3_ODEN_SHIFT 5
-#define GPIO3_DEB_MASK 0x10
-#define GPIO3_DEB_SHIFT 4
-#define GPIO3_PDEN_MASK 0x08
-#define GPIO3_PDEN_SHIFT 3
-#define GPIO3_CFG_MASK 0x04
-#define GPIO3_CFG_SHIFT 2
-#define GPIO3_STS_MASK 0x02
-#define GPIO3_STS_SHIFT 1
-#define GPIO3_SET_MASK 0x01
-#define GPIO3_SET_SHIFT 0
-
-/* GPIO 4 Register Definitions */
-#define GPIO4_SLEEP_MASK 0x80
-#define GPIO4_SLEEP_SHIFT 7
-#define GPIO4_SEL_MASK 0x40
-#define GPIO4_SEL_SHIFT 6
-#define GPIO4_ODEN_MASK 0x20
-#define GPIO4_ODEN_SHIFT 5
-#define GPIO4_DEB_MASK 0x10
-#define GPIO4_DEB_SHIFT 4
-#define GPIO4_PDEN_MASK 0x08
-#define GPIO4_PDEN_SHIFT 3
-#define GPIO4_CFG_MASK 0x04
-#define GPIO4_CFG_SHIFT 2
-#define GPIO4_STS_MASK 0x02
-#define GPIO4_STS_SHIFT 1
-#define GPIO4_SET_MASK 0x01
-#define GPIO4_SET_SHIFT 0
-
-/* Register THERM (0x80) register.RegisterDescription */
-#define THERM_THERM_HD_MASK 0x20
-#define THERM_THERM_HD_SHIFT 5
-#define THERM_THERM_TS_MASK 0x10
-#define THERM_THERM_TS_SHIFT 4
-#define THERM_THERM_HDSEL_MASK 0x0C
-#define THERM_THERM_HDSEL_SHIFT 2
-#define THERM_RSVD1_MASK 0x02
-#define THERM_RSVD1_SHIFT 1
-#define THERM_THERM_STATE_MASK 0x01
-#define THERM_THERM_STATE_SHIFT 0
-
-/* Register DCDCCTRL1 register.RegisterDescription */
-#define DCDCCTRL_VCON_ENABLE_MASK 0x80
-#define DCDCCTRL_VCON_ENABLE_SHIFT 7
-#define DCDCCTRL_VCON_RANGE1_MASK 0x40
-#define DCDCCTRL_VCON_RANGE1_SHIFT 6
-#define DCDCCTRL_VCON_RANGE0_MASK 0x20
-#define DCDCCTRL_VCON_RANGE0_SHIFT 5
-#define DCDCCTRL_TSTEP2_MASK 0x10
-#define DCDCCTRL_TSTEP2_SHIFT 4
-#define DCDCCTRL_TSTEP1_MASK 0x08
-#define DCDCCTRL_TSTEP1_SHIFT 3
-#define DCDCCTRL_TSTEP0_MASK 0x04
-#define DCDCCTRL_TSTEP0_SHIFT 2
-#define DCDCCTRL_DCDC1_MODE_MASK 0x02
-#define DCDCCTRL_DCDC1_MODE_SHIFT 1
-
-/* Register DCDCCTRL2 and DCDCCTRL3 register.RegisterDescription */
-#define DCDCCTRL_TSTEP2_MASK 0x10
-#define DCDCCTRL_TSTEP2_SHIFT 4
-#define DCDCCTRL_TSTEP1_MASK 0x08
-#define DCDCCTRL_TSTEP1_SHIFT 3
-#define DCDCCTRL_TSTEP0_MASK 0x04
-#define DCDCCTRL_TSTEP0_SHIFT 2
-#define DCDCCTRL_DCDC_MODE_MASK 0x02
-#define DCDCCTRL_DCDC_MODE_SHIFT 1
-#define DCDCCTRL_RSVD0_MASK 0x01
-#define DCDCCTRL_RSVD0_SHIFT 0
-
-/* Register DCDCCTRL4 register.RegisterDescription */
-#define DCDCCTRL_RAMP_TIME_MASK 0x01
-#define DCDCCTRL_RAMP_TIME_SHIFT 0
-
-/* Register DCDCx_AVS */
-#define DCDC_AVS_ENABLE_MASK 0x80
-#define DCDC_AVS_ENABLE_SHIFT 7
-#define DCDC_AVS_ECO_MASK 0x40
-#define DCDC_AVS_ECO_SHIFT 6
-
-/* Register DCDCx_LIMIT */
-#define DCDC_LIMIT_RANGE_MASK 0xC0
-#define DCDC_LIMIT_RANGE_SHIFT 6
-#define DCDC_LIMIT_MAX_SEL_MASK 0x3F
-#define DCDC_LIMIT_MAX_SEL_SHIFT 0
-
-/**
- * struct tps65912_board
- * Board platform dat may be used to initialize regulators.
- */
-struct tps65912_board {
- int is_dcdc1_avs;
- int is_dcdc2_avs;
- int is_dcdc3_avs;
- int is_dcdc4_avs;
- int irq;
- int irq_base;
- int gpio_base;
- struct regulator_init_data *tps65912_pmic_init_data;
-};
-
-/**
- * struct tps65912 - tps65912 sub-driver chip access routines
- */
-
-struct tps65912 {
- struct device *dev;
- /* for read/write acces */
- struct mutex io_mutex;
-
- /* For device IO interfaces: I2C or SPI */
- void *control_data;
-
- int (*read)(struct tps65912 *tps65912, u8 reg, int size, void *dest);
- int (*write)(struct tps65912 *tps65912, u8 reg, int size, void *src);
-
- /* Client devices */
- struct tps65912_pmic *pmic;
-
- /* GPIO Handling */
- struct gpio_chip gpio;
-
- /* IRQ Handling */
- struct mutex irq_lock;
- int chip_irq;
- int irq_base;
- int irq_num;
- u32 irq_mask;
-};
-
-struct tps65912_platform_data {
- int irq;
- int irq_base;
-};
-
-unsigned int tps_chip(void);
-
-int tps65912_set_bits(struct tps65912 *tps65912, u8 reg, u8 mask);
-int tps65912_clear_bits(struct tps65912 *tps65912, u8 reg, u8 mask);
-int tps65912_reg_read(struct tps65912 *tps65912, u8 reg);
-int tps65912_reg_write(struct tps65912 *tps65912, u8 reg, u8 val);
-int tps65912_device_init(struct tps65912 *tps65912);
-void tps65912_device_exit(struct tps65912 *tps65912);
-int tps65912_irq_init(struct tps65912 *tps65912, int irq,
- struct tps65912_platform_data *pdata);
-
-#endif /* __LINUX_MFD_TPS65912_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/twl4030-audio.h b/ANDROID_3.4.5/include/linux/mfd/twl4030-audio.h
deleted file mode 100644
index 3d22b72d..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/twl4030-audio.h
+++ /dev/null
@@ -1,272 +0,0 @@
-/*
- * MFD driver for twl4030 audio submodule
- *
- * Author: Peter Ujfalusi <peter.ujfalusi@ti.com>
- *
- * Copyright: (C) 2009 Nokia 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.
- *
- * 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 __TWL4030_CODEC_H__
-#define __TWL4030_CODEC_H__
-
-/* Codec registers */
-#define TWL4030_REG_CODEC_MODE 0x01
-#define TWL4030_REG_OPTION 0x02
-#define TWL4030_REG_UNKNOWN 0x03
-#define TWL4030_REG_MICBIAS_CTL 0x04
-#define TWL4030_REG_ANAMICL 0x05
-#define TWL4030_REG_ANAMICR 0x06
-#define TWL4030_REG_AVADC_CTL 0x07
-#define TWL4030_REG_ADCMICSEL 0x08
-#define TWL4030_REG_DIGMIXING 0x09
-#define TWL4030_REG_ATXL1PGA 0x0A
-#define TWL4030_REG_ATXR1PGA 0x0B
-#define TWL4030_REG_AVTXL2PGA 0x0C
-#define TWL4030_REG_AVTXR2PGA 0x0D
-#define TWL4030_REG_AUDIO_IF 0x0E
-#define TWL4030_REG_VOICE_IF 0x0F
-#define TWL4030_REG_ARXR1PGA 0x10
-#define TWL4030_REG_ARXL1PGA 0x11
-#define TWL4030_REG_ARXR2PGA 0x12
-#define TWL4030_REG_ARXL2PGA 0x13
-#define TWL4030_REG_VRXPGA 0x14
-#define TWL4030_REG_VSTPGA 0x15
-#define TWL4030_REG_VRX2ARXPGA 0x16
-#define TWL4030_REG_AVDAC_CTL 0x17
-#define TWL4030_REG_ARX2VTXPGA 0x18
-#define TWL4030_REG_ARXL1_APGA_CTL 0x19
-#define TWL4030_REG_ARXR1_APGA_CTL 0x1A
-#define TWL4030_REG_ARXL2_APGA_CTL 0x1B
-#define TWL4030_REG_ARXR2_APGA_CTL 0x1C
-#define TWL4030_REG_ATX2ARXPGA 0x1D
-#define TWL4030_REG_BT_IF 0x1E
-#define TWL4030_REG_BTPGA 0x1F
-#define TWL4030_REG_BTSTPGA 0x20
-#define TWL4030_REG_EAR_CTL 0x21
-#define TWL4030_REG_HS_SEL 0x22
-#define TWL4030_REG_HS_GAIN_SET 0x23
-#define TWL4030_REG_HS_POPN_SET 0x24
-#define TWL4030_REG_PREDL_CTL 0x25
-#define TWL4030_REG_PREDR_CTL 0x26
-#define TWL4030_REG_PRECKL_CTL 0x27
-#define TWL4030_REG_PRECKR_CTL 0x28
-#define TWL4030_REG_HFL_CTL 0x29
-#define TWL4030_REG_HFR_CTL 0x2A
-#define TWL4030_REG_ALC_CTL 0x2B
-#define TWL4030_REG_ALC_SET1 0x2C
-#define TWL4030_REG_ALC_SET2 0x2D
-#define TWL4030_REG_BOOST_CTL 0x2E
-#define TWL4030_REG_SOFTVOL_CTL 0x2F
-#define TWL4030_REG_DTMF_FREQSEL 0x30
-#define TWL4030_REG_DTMF_TONEXT1H 0x31
-#define TWL4030_REG_DTMF_TONEXT1L 0x32
-#define TWL4030_REG_DTMF_TONEXT2H 0x33
-#define TWL4030_REG_DTMF_TONEXT2L 0x34
-#define TWL4030_REG_DTMF_TONOFF 0x35
-#define TWL4030_REG_DTMF_WANONOFF 0x36
-#define TWL4030_REG_I2S_RX_SCRAMBLE_H 0x37
-#define TWL4030_REG_I2S_RX_SCRAMBLE_M 0x38
-#define TWL4030_REG_I2S_RX_SCRAMBLE_L 0x39
-#define TWL4030_REG_APLL_CTL 0x3A
-#define TWL4030_REG_DTMF_CTL 0x3B
-#define TWL4030_REG_DTMF_PGA_CTL2 0x3C
-#define TWL4030_REG_DTMF_PGA_CTL1 0x3D
-#define TWL4030_REG_MISC_SET_1 0x3E
-#define TWL4030_REG_PCMBTMUX 0x3F
-#define TWL4030_REG_RX_PATH_SEL 0x43
-#define TWL4030_REG_VDL_APGA_CTL 0x44
-#define TWL4030_REG_VIBRA_CTL 0x45
-#define TWL4030_REG_VIBRA_SET 0x46
-#define TWL4030_REG_VIBRA_PWM_SET 0x47
-#define TWL4030_REG_ANAMIC_GAIN 0x48
-#define TWL4030_REG_MISC_SET_2 0x49
-
-/* Bitfield Definitions */
-
-/* TWL4030_CODEC_MODE (0x01) Fields */
-#define TWL4030_APLL_RATE 0xF0
-#define TWL4030_APLL_RATE_8000 0x00
-#define TWL4030_APLL_RATE_11025 0x10
-#define TWL4030_APLL_RATE_12000 0x20
-#define TWL4030_APLL_RATE_16000 0x40
-#define TWL4030_APLL_RATE_22050 0x50
-#define TWL4030_APLL_RATE_24000 0x60
-#define TWL4030_APLL_RATE_32000 0x80
-#define TWL4030_APLL_RATE_44100 0x90
-#define TWL4030_APLL_RATE_48000 0xA0
-#define TWL4030_APLL_RATE_96000 0xE0
-#define TWL4030_SEL_16K 0x08
-#define TWL4030_CODECPDZ 0x02
-#define TWL4030_OPT_MODE 0x01
-#define TWL4030_OPTION_1 (1 << 0)
-#define TWL4030_OPTION_2 (0 << 0)
-
-/* TWL4030_OPTION (0x02) Fields */
-#define TWL4030_ATXL1_EN (1 << 0)
-#define TWL4030_ATXR1_EN (1 << 1)
-#define TWL4030_ATXL2_VTXL_EN (1 << 2)
-#define TWL4030_ATXR2_VTXR_EN (1 << 3)
-#define TWL4030_ARXL1_VRX_EN (1 << 4)
-#define TWL4030_ARXR1_EN (1 << 5)
-#define TWL4030_ARXL2_EN (1 << 6)
-#define TWL4030_ARXR2_EN (1 << 7)
-
-/* TWL4030_REG_MICBIAS_CTL (0x04) Fields */
-#define TWL4030_MICBIAS2_CTL 0x40
-#define TWL4030_MICBIAS1_CTL 0x20
-#define TWL4030_HSMICBIAS_EN 0x04
-#define TWL4030_MICBIAS2_EN 0x02
-#define TWL4030_MICBIAS1_EN 0x01
-
-/* ANAMICL (0x05) Fields */
-#define TWL4030_CNCL_OFFSET_START 0x80
-#define TWL4030_OFFSET_CNCL_SEL 0x60
-#define TWL4030_OFFSET_CNCL_SEL_ARX1 0x00
-#define TWL4030_OFFSET_CNCL_SEL_ARX2 0x20
-#define TWL4030_OFFSET_CNCL_SEL_VRX 0x40
-#define TWL4030_OFFSET_CNCL_SEL_ALL 0x60
-#define TWL4030_MICAMPL_EN 0x10
-#define TWL4030_CKMIC_EN 0x08
-#define TWL4030_AUXL_EN 0x04
-#define TWL4030_HSMIC_EN 0x02
-#define TWL4030_MAINMIC_EN 0x01
-
-/* ANAMICR (0x06) Fields */
-#define TWL4030_MICAMPR_EN 0x10
-#define TWL4030_AUXR_EN 0x04
-#define TWL4030_SUBMIC_EN 0x01
-
-/* AVADC_CTL (0x07) Fields */
-#define TWL4030_ADCL_EN 0x08
-#define TWL4030_AVADC_CLK_PRIORITY 0x04
-#define TWL4030_ADCR_EN 0x02
-
-/* TWL4030_REG_ADCMICSEL (0x08) Fields */
-#define TWL4030_DIGMIC1_EN 0x08
-#define TWL4030_TX2IN_SEL 0x04
-#define TWL4030_DIGMIC0_EN 0x02
-#define TWL4030_TX1IN_SEL 0x01
-
-/* AUDIO_IF (0x0E) Fields */
-#define TWL4030_AIF_SLAVE_EN 0x80
-#define TWL4030_DATA_WIDTH 0x60
-#define TWL4030_DATA_WIDTH_16S_16W 0x00
-#define TWL4030_DATA_WIDTH_32S_16W 0x40
-#define TWL4030_DATA_WIDTH_32S_24W 0x60
-#define TWL4030_AIF_FORMAT 0x18
-#define TWL4030_AIF_FORMAT_CODEC 0x00
-#define TWL4030_AIF_FORMAT_LEFT 0x08
-#define TWL4030_AIF_FORMAT_RIGHT 0x10
-#define TWL4030_AIF_FORMAT_TDM 0x18
-#define TWL4030_AIF_TRI_EN 0x04
-#define TWL4030_CLK256FS_EN 0x02
-#define TWL4030_AIF_EN 0x01
-
-/* VOICE_IF (0x0F) Fields */
-#define TWL4030_VIF_SLAVE_EN 0x80
-#define TWL4030_VIF_DIN_EN 0x40
-#define TWL4030_VIF_DOUT_EN 0x20
-#define TWL4030_VIF_SWAP 0x10
-#define TWL4030_VIF_FORMAT 0x08
-#define TWL4030_VIF_TRI_EN 0x04
-#define TWL4030_VIF_SUB_EN 0x02
-#define TWL4030_VIF_EN 0x01
-
-/* EAR_CTL (0x21) */
-#define TWL4030_EAR_GAIN 0x30
-
-/* HS_GAIN_SET (0x23) Fields */
-#define TWL4030_HSR_GAIN 0x0C
-#define TWL4030_HSR_GAIN_PWR_DOWN 0x00
-#define TWL4030_HSR_GAIN_PLUS_6DB 0x04
-#define TWL4030_HSR_GAIN_0DB 0x08
-#define TWL4030_HSR_GAIN_MINUS_6DB 0x0C
-#define TWL4030_HSL_GAIN 0x03
-#define TWL4030_HSL_GAIN_PWR_DOWN 0x00
-#define TWL4030_HSL_GAIN_PLUS_6DB 0x01
-#define TWL4030_HSL_GAIN_0DB 0x02
-#define TWL4030_HSL_GAIN_MINUS_6DB 0x03
-
-/* HS_POPN_SET (0x24) Fields */
-#define TWL4030_VMID_EN 0x40
-#define TWL4030_EXTMUTE 0x20
-#define TWL4030_RAMP_DELAY 0x1C
-#define TWL4030_RAMP_DELAY_20MS 0x00
-#define TWL4030_RAMP_DELAY_40MS 0x04
-#define TWL4030_RAMP_DELAY_81MS 0x08
-#define TWL4030_RAMP_DELAY_161MS 0x0C
-#define TWL4030_RAMP_DELAY_323MS 0x10
-#define TWL4030_RAMP_DELAY_645MS 0x14
-#define TWL4030_RAMP_DELAY_1291MS 0x18
-#define TWL4030_RAMP_DELAY_2581MS 0x1C
-#define TWL4030_RAMP_EN 0x02
-
-/* PREDL_CTL (0x25) */
-#define TWL4030_PREDL_GAIN 0x30
-
-/* PREDR_CTL (0x26) */
-#define TWL4030_PREDR_GAIN 0x30
-
-/* PRECKL_CTL (0x27) */
-#define TWL4030_PRECKL_GAIN 0x30
-
-/* PRECKR_CTL (0x28) */
-#define TWL4030_PRECKR_GAIN 0x30
-
-/* HFL_CTL (0x29, 0x2A) Fields */
-#define TWL4030_HF_CTL_HB_EN 0x04
-#define TWL4030_HF_CTL_LOOP_EN 0x08
-#define TWL4030_HF_CTL_RAMP_EN 0x10
-#define TWL4030_HF_CTL_REF_EN 0x20
-
-/* APLL_CTL (0x3A) Fields */
-#define TWL4030_APLL_EN 0x10
-#define TWL4030_APLL_INFREQ 0x0F
-#define TWL4030_APLL_INFREQ_19200KHZ 0x05
-#define TWL4030_APLL_INFREQ_26000KHZ 0x06
-#define TWL4030_APLL_INFREQ_38400KHZ 0x0F
-
-/* REG_MISC_SET_1 (0x3E) Fields */
-#define TWL4030_CLK64_EN 0x80
-#define TWL4030_SCRAMBLE_EN 0x40
-#define TWL4030_FMLOOP_EN 0x20
-#define TWL4030_SMOOTH_ANAVOL_EN 0x02
-#define TWL4030_DIGMIC_LR_SWAP_EN 0x01
-
-/* VIBRA_CTL (0x45) */
-#define TWL4030_VIBRA_EN 0x01
-#define TWL4030_VIBRA_DIR 0x02
-#define TWL4030_VIBRA_AUDIO_SEL_L1 (0x00 << 2)
-#define TWL4030_VIBRA_AUDIO_SEL_R1 (0x01 << 2)
-#define TWL4030_VIBRA_AUDIO_SEL_L2 (0x02 << 2)
-#define TWL4030_VIBRA_AUDIO_SEL_R2 (0x03 << 2)
-#define TWL4030_VIBRA_SEL 0x10
-#define TWL4030_VIBRA_DIR_SEL 0x20
-
-/* TWL4030 codec resource IDs */
-enum twl4030_audio_res {
- TWL4030_AUDIO_RES_POWER = 0,
- TWL4030_AUDIO_RES_APLL,
- TWL4030_AUDIO_RES_MAX,
-};
-
-int twl4030_audio_disable_resource(enum twl4030_audio_res id);
-int twl4030_audio_enable_resource(enum twl4030_audio_res id);
-unsigned int twl4030_audio_get_mclk(void);
-
-#endif /* End of __TWL4030_CODEC_H__ */
diff --git a/ANDROID_3.4.5/include/linux/mfd/twl6040.h b/ANDROID_3.4.5/include/linux/mfd/twl6040.h
deleted file mode 100644
index b15b5f03..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/twl6040.h
+++ /dev/null
@@ -1,251 +0,0 @@
-/*
- * MFD driver for twl6040
- *
- * Authors: Jorge Eduardo Candelaria <jorge.candelaria@ti.com>
- * Misael Lopez Cruz <misael.lopez@ti.com>
- *
- * Copyright: (C) 2011 Texas Instruments, Inc.
- *
- * 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.
- *
- * 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 __TWL6040_CODEC_H__
-#define __TWL6040_CODEC_H__
-
-#include <linux/interrupt.h>
-#include <linux/mfd/core.h>
-
-#define TWL6040_REG_ASICID 0x01
-#define TWL6040_REG_ASICREV 0x02
-#define TWL6040_REG_INTID 0x03
-#define TWL6040_REG_INTMR 0x04
-#define TWL6040_REG_NCPCTL 0x05
-#define TWL6040_REG_LDOCTL 0x06
-#define TWL6040_REG_HPPLLCTL 0x07
-#define TWL6040_REG_LPPLLCTL 0x08
-#define TWL6040_REG_LPPLLDIV 0x09
-#define TWL6040_REG_AMICBCTL 0x0A
-#define TWL6040_REG_DMICBCTL 0x0B
-#define TWL6040_REG_MICLCTL 0x0C
-#define TWL6040_REG_MICRCTL 0x0D
-#define TWL6040_REG_MICGAIN 0x0E
-#define TWL6040_REG_LINEGAIN 0x0F
-#define TWL6040_REG_HSLCTL 0x10
-#define TWL6040_REG_HSRCTL 0x11
-#define TWL6040_REG_HSGAIN 0x12
-#define TWL6040_REG_EARCTL 0x13
-#define TWL6040_REG_HFLCTL 0x14
-#define TWL6040_REG_HFLGAIN 0x15
-#define TWL6040_REG_HFRCTL 0x16
-#define TWL6040_REG_HFRGAIN 0x17
-#define TWL6040_REG_VIBCTLL 0x18
-#define TWL6040_REG_VIBDATL 0x19
-#define TWL6040_REG_VIBCTLR 0x1A
-#define TWL6040_REG_VIBDATR 0x1B
-#define TWL6040_REG_HKCTL1 0x1C
-#define TWL6040_REG_HKCTL2 0x1D
-#define TWL6040_REG_GPOCTL 0x1E
-#define TWL6040_REG_ALB 0x1F
-#define TWL6040_REG_DLB 0x20
-#define TWL6040_REG_TRIM1 0x28
-#define TWL6040_REG_TRIM2 0x29
-#define TWL6040_REG_TRIM3 0x2A
-#define TWL6040_REG_HSOTRIM 0x2B
-#define TWL6040_REG_HFOTRIM 0x2C
-#define TWL6040_REG_ACCCTL 0x2D
-#define TWL6040_REG_STATUS 0x2E
-
-/* INTID (0x03) fields */
-
-#define TWL6040_THINT 0x01
-#define TWL6040_PLUGINT 0x02
-#define TWL6040_UNPLUGINT 0x04
-#define TWL6040_HOOKINT 0x08
-#define TWL6040_HFINT 0x10
-#define TWL6040_VIBINT 0x20
-#define TWL6040_READYINT 0x40
-
-/* INTMR (0x04) fields */
-
-#define TWL6040_THMSK 0x01
-#define TWL6040_PLUGMSK 0x02
-#define TWL6040_HOOKMSK 0x08
-#define TWL6040_HFMSK 0x10
-#define TWL6040_VIBMSK 0x20
-#define TWL6040_READYMSK 0x40
-#define TWL6040_ALLINT_MSK 0x7B
-
-/* NCPCTL (0x05) fields */
-
-#define TWL6040_NCPENA 0x01
-#define TWL6040_NCPOPEN 0x40
-
-/* LDOCTL (0x06) fields */
-
-#define TWL6040_LSLDOENA 0x01
-#define TWL6040_HSLDOENA 0x04
-#define TWL6040_REFENA 0x40
-#define TWL6040_OSCENA 0x80
-
-/* HPPLLCTL (0x07) fields */
-
-#define TWL6040_HPLLENA 0x01
-#define TWL6040_HPLLRST 0x02
-#define TWL6040_HPLLBP 0x04
-#define TWL6040_HPLLSQRENA 0x08
-#define TWL6040_MCLK_12000KHZ (0 << 5)
-#define TWL6040_MCLK_19200KHZ (1 << 5)
-#define TWL6040_MCLK_26000KHZ (2 << 5)
-#define TWL6040_MCLK_38400KHZ (3 << 5)
-#define TWL6040_MCLK_MSK 0x60
-
-/* LPPLLCTL (0x08) fields */
-
-#define TWL6040_LPLLENA 0x01
-#define TWL6040_LPLLRST 0x02
-#define TWL6040_LPLLSEL 0x04
-#define TWL6040_LPLLFIN 0x08
-#define TWL6040_HPLLSEL 0x10
-
-/* HSLCTL/R (0x10/0x11) fields */
-
-#define TWL6040_HSDACENA (1 << 0)
-#define TWL6040_HSDACMODE (1 << 1)
-#define TWL6040_HSDRVMODE (1 << 3)
-
-/* VIBCTLL/R (0x18/0x1A) fields */
-
-#define TWL6040_VIBENA (1 << 0)
-#define TWL6040_VIBSEL (1 << 1)
-#define TWL6040_VIBCTRL (1 << 2)
-#define TWL6040_VIBCTRL_P (1 << 3)
-#define TWL6040_VIBCTRL_N (1 << 4)
-
-/* VIBDATL/R (0x19/0x1B) fields */
-
-#define TWL6040_VIBDAT_MAX 0x64
-
-/* GPOCTL (0x1E) fields */
-
-#define TWL6040_GPO1 0x01
-#define TWL6040_GPO2 0x02
-#define TWL6040_GPO3 0x03
-
-/* ACCCTL (0x2D) fields */
-
-#define TWL6040_I2CSEL 0x01
-#define TWL6040_RESETSPLIT 0x04
-#define TWL6040_INTCLRMODE 0x08
-
-/* STATUS (0x2E) fields */
-
-#define TWL6040_PLUGCOMP 0x02
-#define TWL6040_VIBLOCDET 0x10
-#define TWL6040_VIBROCDET 0x20
-#define TWL6040_TSHUTDET 0x40
-
-#define TWL6040_CELLS 2
-
-#define TWL6040_REV_ES1_0 0x00
-#define TWL6040_REV_ES1_1 0x01
-#define TWL6040_REV_ES1_2 0x02
-
-#define TWL6040_IRQ_TH 0
-#define TWL6040_IRQ_PLUG 1
-#define TWL6040_IRQ_HOOK 2
-#define TWL6040_IRQ_HF 3
-#define TWL6040_IRQ_VIB 4
-#define TWL6040_IRQ_READY 5
-
-/* PLL selection */
-#define TWL6040_SYSCLK_SEL_LPPLL 0
-#define TWL6040_SYSCLK_SEL_HPPLL 1
-
-struct twl6040_codec_data {
- u16 hs_left_step;
- u16 hs_right_step;
- u16 hf_left_step;
- u16 hf_right_step;
-};
-
-struct twl6040_vibra_data {
- unsigned int vibldrv_res; /* left driver resistance */
- unsigned int vibrdrv_res; /* right driver resistance */
- unsigned int viblmotor_res; /* left motor resistance */
- unsigned int vibrmotor_res; /* right motor resistance */
- int vddvibl_uV; /* VDDVIBL volt, set 0 for fixed reg */
- int vddvibr_uV; /* VDDVIBR volt, set 0 for fixed reg */
-};
-
-struct twl6040_platform_data {
- int audpwron_gpio; /* audio power-on gpio */
- unsigned int irq_base;
-
- struct twl6040_codec_data *codec;
- struct twl6040_vibra_data *vibra;
-};
-
-struct regmap;
-
-struct twl6040 {
- struct device *dev;
- struct regmap *regmap;
- struct mutex mutex;
- struct mutex io_mutex;
- struct mutex irq_mutex;
- struct mfd_cell cells[TWL6040_CELLS];
- struct completion ready;
-
- int audpwron;
- int power_count;
- int rev;
- u8 vibra_ctrl_cache[2];
-
- /* PLL configuration */
- int pll;
- unsigned int sysclk;
- unsigned int mclk;
-
- unsigned int irq;
- unsigned int irq_base;
- u8 irq_masks_cur;
- u8 irq_masks_cache;
-};
-
-int twl6040_reg_read(struct twl6040 *twl6040, unsigned int reg);
-int twl6040_reg_write(struct twl6040 *twl6040, unsigned int reg,
- u8 val);
-int twl6040_set_bits(struct twl6040 *twl6040, unsigned int reg,
- u8 mask);
-int twl6040_clear_bits(struct twl6040 *twl6040, unsigned int reg,
- u8 mask);
-int twl6040_power(struct twl6040 *twl6040, int on);
-int twl6040_set_pll(struct twl6040 *twl6040, int pll_id,
- unsigned int freq_in, unsigned int freq_out);
-int twl6040_get_pll(struct twl6040 *twl6040);
-unsigned int twl6040_get_sysclk(struct twl6040 *twl6040);
-int twl6040_irq_init(struct twl6040 *twl6040);
-void twl6040_irq_exit(struct twl6040 *twl6040);
-/* Get the combined status of the vibra control register */
-int twl6040_get_vibralr_status(struct twl6040 *twl6040);
-
-static inline int twl6040_get_revid(struct twl6040 *twl6040)
-{
- return twl6040->rev;
-}
-
-
-#endif /* End of __TWL6040_CODEC_H__ */
diff --git a/ANDROID_3.4.5/include/linux/mfd/ucb1x00.h b/ANDROID_3.4.5/include/linux/mfd/ucb1x00.h
deleted file mode 100644
index 28af4175..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/ucb1x00.h
+++ /dev/null
@@ -1,259 +0,0 @@
-/*
- * linux/include/mfd/ucb1x00.h
- *
- * Copyright (C) 2001 Russell King, 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.
- */
-#ifndef UCB1200_H
-#define UCB1200_H
-
-#include <linux/mfd/mcp.h>
-#include <linux/gpio.h>
-#include <linux/mutex.h>
-
-#define UCB_IO_DATA 0x00
-#define UCB_IO_DIR 0x01
-
-#define UCB_IO_0 (1 << 0)
-#define UCB_IO_1 (1 << 1)
-#define UCB_IO_2 (1 << 2)
-#define UCB_IO_3 (1 << 3)
-#define UCB_IO_4 (1 << 4)
-#define UCB_IO_5 (1 << 5)
-#define UCB_IO_6 (1 << 6)
-#define UCB_IO_7 (1 << 7)
-#define UCB_IO_8 (1 << 8)
-#define UCB_IO_9 (1 << 9)
-
-#define UCB_IE_RIS 0x02
-#define UCB_IE_FAL 0x03
-#define UCB_IE_STATUS 0x04
-#define UCB_IE_CLEAR 0x04
-#define UCB_IE_ADC (1 << 11)
-#define UCB_IE_TSPX (1 << 12)
-#define UCB_IE_TSMX (1 << 13)
-#define UCB_IE_TCLIP (1 << 14)
-#define UCB_IE_ACLIP (1 << 15)
-
-#define UCB_IRQ_TSPX 12
-
-#define UCB_TC_A 0x05
-#define UCB_TC_A_LOOP (1 << 7) /* UCB1200 */
-#define UCB_TC_A_AMPL (1 << 7) /* UCB1300 */
-
-#define UCB_TC_B 0x06
-#define UCB_TC_B_VOICE_ENA (1 << 3)
-#define UCB_TC_B_CLIP (1 << 4)
-#define UCB_TC_B_ATT (1 << 6)
-#define UCB_TC_B_SIDE_ENA (1 << 11)
-#define UCB_TC_B_MUTE (1 << 13)
-#define UCB_TC_B_IN_ENA (1 << 14)
-#define UCB_TC_B_OUT_ENA (1 << 15)
-
-#define UCB_AC_A 0x07
-#define UCB_AC_B 0x08
-#define UCB_AC_B_LOOP (1 << 8)
-#define UCB_AC_B_MUTE (1 << 13)
-#define UCB_AC_B_IN_ENA (1 << 14)
-#define UCB_AC_B_OUT_ENA (1 << 15)
-
-#define UCB_TS_CR 0x09
-#define UCB_TS_CR_TSMX_POW (1 << 0)
-#define UCB_TS_CR_TSPX_POW (1 << 1)
-#define UCB_TS_CR_TSMY_POW (1 << 2)
-#define UCB_TS_CR_TSPY_POW (1 << 3)
-#define UCB_TS_CR_TSMX_GND (1 << 4)
-#define UCB_TS_CR_TSPX_GND (1 << 5)
-#define UCB_TS_CR_TSMY_GND (1 << 6)
-#define UCB_TS_CR_TSPY_GND (1 << 7)
-#define UCB_TS_CR_MODE_INT (0 << 8)
-#define UCB_TS_CR_MODE_PRES (1 << 8)
-#define UCB_TS_CR_MODE_POS (2 << 8)
-#define UCB_TS_CR_BIAS_ENA (1 << 11)
-#define UCB_TS_CR_TSPX_LOW (1 << 12)
-#define UCB_TS_CR_TSMX_LOW (1 << 13)
-
-#define UCB_ADC_CR 0x0a
-#define UCB_ADC_SYNC_ENA (1 << 0)
-#define UCB_ADC_VREFBYP_CON (1 << 1)
-#define UCB_ADC_INP_TSPX (0 << 2)
-#define UCB_ADC_INP_TSMX (1 << 2)
-#define UCB_ADC_INP_TSPY (2 << 2)
-#define UCB_ADC_INP_TSMY (3 << 2)
-#define UCB_ADC_INP_AD0 (4 << 2)
-#define UCB_ADC_INP_AD1 (5 << 2)
-#define UCB_ADC_INP_AD2 (6 << 2)
-#define UCB_ADC_INP_AD3 (7 << 2)
-#define UCB_ADC_EXT_REF (1 << 5)
-#define UCB_ADC_START (1 << 7)
-#define UCB_ADC_ENA (1 << 15)
-
-#define UCB_ADC_DATA 0x0b
-#define UCB_ADC_DAT_VAL (1 << 15)
-#define UCB_ADC_DAT(x) (((x) & 0x7fe0) >> 5)
-
-#define UCB_ID 0x0c
-#define UCB_ID_1200 0x1004
-#define UCB_ID_1300 0x1005
-#define UCB_ID_TC35143 0x9712
-
-#define UCB_MODE 0x0d
-#define UCB_MODE_DYN_VFLAG_ENA (1 << 12)
-#define UCB_MODE_AUD_OFF_CAN (1 << 13)
-
-enum ucb1x00_reset {
- UCB_RST_PROBE,
- UCB_RST_RESUME,
- UCB_RST_SUSPEND,
- UCB_RST_REMOVE,
- UCB_RST_PROBE_FAIL,
-};
-
-struct ucb1x00_plat_data {
- void (*reset)(enum ucb1x00_reset);
- unsigned irq_base;
- int gpio_base;
- unsigned can_wakeup;
-};
-
-struct ucb1x00 {
- raw_spinlock_t irq_lock;
- struct mcp *mcp;
- unsigned int irq;
- int irq_base;
- struct mutex adc_mutex;
- spinlock_t io_lock;
- u16 id;
- u16 io_dir;
- u16 io_out;
- u16 adc_cr;
- u16 irq_fal_enbl;
- u16 irq_ris_enbl;
- u16 irq_mask;
- u16 irq_wake;
- struct device dev;
- struct list_head node;
- struct list_head devs;
- struct gpio_chip gpio;
-};
-
-struct ucb1x00_driver;
-
-struct ucb1x00_dev {
- struct list_head dev_node;
- struct list_head drv_node;
- struct ucb1x00 *ucb;
- struct ucb1x00_driver *drv;
- void *priv;
-};
-
-struct ucb1x00_driver {
- struct list_head node;
- struct list_head devs;
- int (*add)(struct ucb1x00_dev *dev);
- void (*remove)(struct ucb1x00_dev *dev);
- int (*suspend)(struct ucb1x00_dev *dev);
- int (*resume)(struct ucb1x00_dev *dev);
-};
-
-#define classdev_to_ucb1x00(cd) container_of(cd, struct ucb1x00, dev)
-
-int ucb1x00_register_driver(struct ucb1x00_driver *);
-void ucb1x00_unregister_driver(struct ucb1x00_driver *);
-
-/**
- * ucb1x00_clkrate - return the UCB1x00 SIB clock rate
- * @ucb: UCB1x00 structure describing chip
- *
- * Return the SIB clock rate in Hz.
- */
-static inline unsigned int ucb1x00_clkrate(struct ucb1x00 *ucb)
-{
- return mcp_get_sclk_rate(ucb->mcp);
-}
-
-/**
- * ucb1x00_enable - enable the UCB1x00 SIB clock
- * @ucb: UCB1x00 structure describing chip
- *
- * Enable the SIB clock. This can be called multiple times.
- */
-static inline void ucb1x00_enable(struct ucb1x00 *ucb)
-{
- mcp_enable(ucb->mcp);
-}
-
-/**
- * ucb1x00_disable - disable the UCB1x00 SIB clock
- * @ucb: UCB1x00 structure describing chip
- *
- * Disable the SIB clock. The SIB clock will only be disabled
- * when the number of ucb1x00_enable calls match the number of
- * ucb1x00_disable calls.
- */
-static inline void ucb1x00_disable(struct ucb1x00 *ucb)
-{
- mcp_disable(ucb->mcp);
-}
-
-/**
- * ucb1x00_reg_write - write a UCB1x00 register
- * @ucb: UCB1x00 structure describing chip
- * @reg: UCB1x00 4-bit register index to write
- * @val: UCB1x00 16-bit value to write
- *
- * Write the UCB1x00 register @reg with value @val. The SIB
- * clock must be running for this function to return.
- */
-static inline void ucb1x00_reg_write(struct ucb1x00 *ucb, unsigned int reg, unsigned int val)
-{
- mcp_reg_write(ucb->mcp, reg, val);
-}
-
-/**
- * ucb1x00_reg_read - read a UCB1x00 register
- * @ucb: UCB1x00 structure describing chip
- * @reg: UCB1x00 4-bit register index to write
- *
- * Read the UCB1x00 register @reg and return its value. The SIB
- * clock must be running for this function to return.
- */
-static inline unsigned int ucb1x00_reg_read(struct ucb1x00 *ucb, unsigned int reg)
-{
- return mcp_reg_read(ucb->mcp, reg);
-}
-/**
- * ucb1x00_set_audio_divisor -
- * @ucb: UCB1x00 structure describing chip
- * @div: SIB clock divisor
- */
-static inline void ucb1x00_set_audio_divisor(struct ucb1x00 *ucb, unsigned int div)
-{
- mcp_set_audio_divisor(ucb->mcp, div);
-}
-
-/**
- * ucb1x00_set_telecom_divisor -
- * @ucb: UCB1x00 structure describing chip
- * @div: SIB clock divisor
- */
-static inline void ucb1x00_set_telecom_divisor(struct ucb1x00 *ucb, unsigned int div)
-{
- mcp_set_telecom_divisor(ucb->mcp, div);
-}
-
-void ucb1x00_io_set_dir(struct ucb1x00 *ucb, unsigned int, unsigned int);
-void ucb1x00_io_write(struct ucb1x00 *ucb, unsigned int, unsigned int);
-unsigned int ucb1x00_io_read(struct ucb1x00 *ucb);
-
-#define UCB_NOSYNC (0)
-#define UCB_SYNC (1)
-
-unsigned int ucb1x00_adc_read(struct ucb1x00 *ucb, int adc_channel, int sync);
-void ucb1x00_adc_enable(struct ucb1x00 *ucb);
-void ucb1x00_adc_disable(struct ucb1x00 *ucb);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/vt1603/core.h b/ANDROID_3.4.5/include/linux/mfd/vt1603/core.h
deleted file mode 100755
index 3dc639c2..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/vt1603/core.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*++
- * WonderMedia core driver for VT1603/VT1609
- *
- * Copyright c 2010 WonderMedia Technologies, Inc.
- *
- * 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, see <http://www.gnu.org/licenses/>.
- *
- * WonderMedia Technologies, Inc.
- * 4F, 533, Chung-Cheng Road, Hsin-Tien, Taipei 231, R.O.C
---*/
-
-#ifndef __MFD_VT1603_CORE_H__
-#define __MFD_VT1603_CORE_H__
-
-enum vt1603_type {
- VT1603 = 0,
- VT1609 = 1,
-};
-
-struct vt1603 {
- int (*reg_read)(struct vt1603 *vt1603, u8 reg, u8 *val);
- int (*reg_write)(struct vt1603 *vt1603, u8 reg, u8 val);
- void *control_data;
- int type;
- struct device *dev;
-};
-
-/* Device I/O API */
-int vt1603_reg_write(struct vt1603 *vt1603, u8 reg, u8 val);
-int vt1603_reg_read(struct vt1603 *vt1603, u8 reg, u8 *val);
-void vt1603_regs_dump(struct vt1603 *vt1603);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/wl1273-core.h b/ANDROID_3.4.5/include/linux/mfd/wl1273-core.h
deleted file mode 100644
index db2f3f45..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/wl1273-core.h
+++ /dev/null
@@ -1,290 +0,0 @@
-/*
- * include/linux/mfd/wl1273-core.h
- *
- * Some definitions for the wl1273 radio receiver/transmitter chip.
- *
- * Copyright (C) 2010 Nokia Corporation
- * Author: Matti J. Aaltonen <matti.j.aaltonen@nokia.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.
- *
- * 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 WL1273_CORE_H
-#define WL1273_CORE_H
-
-#include <linux/i2c.h>
-#include <linux/mfd/core.h>
-
-#define WL1273_FM_DRIVER_NAME "wl1273-fm"
-#define RX71_FM_I2C_ADDR 0x22
-
-#define WL1273_STEREO_GET 0
-#define WL1273_RSSI_LVL_GET 1
-#define WL1273_IF_COUNT_GET 2
-#define WL1273_FLAG_GET 3
-#define WL1273_RDS_SYNC_GET 4
-#define WL1273_RDS_DATA_GET 5
-#define WL1273_FREQ_SET 10
-#define WL1273_AF_FREQ_SET 11
-#define WL1273_MOST_MODE_SET 12
-#define WL1273_MOST_BLEND_SET 13
-#define WL1273_DEMPH_MODE_SET 14
-#define WL1273_SEARCH_LVL_SET 15
-#define WL1273_BAND_SET 16
-#define WL1273_MUTE_STATUS_SET 17
-#define WL1273_RDS_PAUSE_LVL_SET 18
-#define WL1273_RDS_PAUSE_DUR_SET 19
-#define WL1273_RDS_MEM_SET 20
-#define WL1273_RDS_BLK_B_SET 21
-#define WL1273_RDS_MSK_B_SET 22
-#define WL1273_RDS_PI_MASK_SET 23
-#define WL1273_RDS_PI_SET 24
-#define WL1273_RDS_SYSTEM_SET 25
-#define WL1273_INT_MASK_SET 26
-#define WL1273_SEARCH_DIR_SET 27
-#define WL1273_VOLUME_SET 28
-#define WL1273_AUDIO_ENABLE 29
-#define WL1273_PCM_MODE_SET 30
-#define WL1273_I2S_MODE_CONFIG_SET 31
-#define WL1273_POWER_SET 32
-#define WL1273_INTX_CONFIG_SET 33
-#define WL1273_PULL_EN_SET 34
-#define WL1273_HILO_SET 35
-#define WL1273_SWITCH2FREF 36
-#define WL1273_FREQ_DRIFT_REPORT 37
-
-#define WL1273_PCE_GET 40
-#define WL1273_FIRM_VER_GET 41
-#define WL1273_ASIC_VER_GET 42
-#define WL1273_ASIC_ID_GET 43
-#define WL1273_MAN_ID_GET 44
-#define WL1273_TUNER_MODE_SET 45
-#define WL1273_STOP_SEARCH 46
-#define WL1273_RDS_CNTRL_SET 47
-
-#define WL1273_WRITE_HARDWARE_REG 100
-#define WL1273_CODE_DOWNLOAD 101
-#define WL1273_RESET 102
-
-#define WL1273_FM_POWER_MODE 254
-#define WL1273_FM_INTERRUPT 255
-
-/* Transmitter API */
-
-#define WL1273_CHANL_SET 55
-#define WL1273_SCAN_SPACING_SET 56
-#define WL1273_REF_SET 57
-#define WL1273_POWER_ENB_SET 90
-#define WL1273_POWER_ATT_SET 58
-#define WL1273_POWER_LEV_SET 59
-#define WL1273_AUDIO_DEV_SET 60
-#define WL1273_PILOT_DEV_SET 61
-#define WL1273_RDS_DEV_SET 62
-#define WL1273_PUPD_SET 91
-#define WL1273_AUDIO_IO_SET 63
-#define WL1273_PREMPH_SET 64
-#define WL1273_MONO_SET 66
-#define WL1273_MUTE 92
-#define WL1273_MPX_LMT_ENABLE 67
-#define WL1273_PI_SET 93
-#define WL1273_ECC_SET 69
-#define WL1273_PTY 70
-#define WL1273_AF 71
-#define WL1273_DISPLAY_MODE 74
-#define WL1273_RDS_REP_SET 77
-#define WL1273_RDS_CONFIG_DATA_SET 98
-#define WL1273_RDS_DATA_SET 99
-#define WL1273_RDS_DATA_ENB 94
-#define WL1273_TA_SET 78
-#define WL1273_TP_SET 79
-#define WL1273_DI_SET 80
-#define WL1273_MS_SET 81
-#define WL1273_PS_SCROLL_SPEED 82
-#define WL1273_TX_AUDIO_LEVEL_TEST 96
-#define WL1273_TX_AUDIO_LEVEL_TEST_THRESHOLD 73
-#define WL1273_TX_AUDIO_INPUT_LEVEL_RANGE_SET 54
-#define WL1273_RX_ANTENNA_SELECT 87
-#define WL1273_I2C_DEV_ADDR_SET 86
-#define WL1273_REF_ERR_CALIB_PARAM_SET 88
-#define WL1273_REF_ERR_CALIB_PERIODICITY_SET 89
-#define WL1273_SOC_INT_TRIGGER 52
-#define WL1273_SOC_AUDIO_PATH_SET 83
-#define WL1273_SOC_PCMI_OVERRIDE 84
-#define WL1273_SOC_I2S_OVERRIDE 85
-#define WL1273_RSSI_BLOCK_SCAN_FREQ_SET 95
-#define WL1273_RSSI_BLOCK_SCAN_START 97
-#define WL1273_RSSI_BLOCK_SCAN_DATA_GET 5
-#define WL1273_READ_FMANT_TUNE_VALUE 104
-
-#define WL1273_RDS_OFF 0
-#define WL1273_RDS_ON 1
-#define WL1273_RDS_RESET 2
-
-#define WL1273_AUDIO_DIGITAL 0
-#define WL1273_AUDIO_ANALOG 1
-
-#define WL1273_MODE_RX BIT(0)
-#define WL1273_MODE_TX BIT(1)
-#define WL1273_MODE_OFF BIT(2)
-#define WL1273_MODE_SUSPENDED BIT(3)
-
-#define WL1273_RADIO_CHILD BIT(0)
-#define WL1273_CODEC_CHILD BIT(1)
-
-#define WL1273_RX_MONO 1
-#define WL1273_RX_STEREO 0
-#define WL1273_TX_MONO 0
-#define WL1273_TX_STEREO 1
-
-#define WL1273_MAX_VOLUME 0xffff
-#define WL1273_DEFAULT_VOLUME 0x78b8
-
-/* I2S protocol, left channel first, data width 16 bits */
-#define WL1273_PCM_DEF_MODE 0x00
-
-/* Rx */
-#define WL1273_AUDIO_ENABLE_I2S BIT(0)
-#define WL1273_AUDIO_ENABLE_ANALOG BIT(1)
-
-/* Tx */
-#define WL1273_AUDIO_IO_SET_ANALOG 0
-#define WL1273_AUDIO_IO_SET_I2S 1
-
-#define WL1273_PUPD_SET_OFF 0x00
-#define WL1273_PUPD_SET_ON 0x01
-#define WL1273_PUPD_SET_RETENTION 0x10
-
-/* I2S mode */
-#define WL1273_IS2_WIDTH_32 0x0
-#define WL1273_IS2_WIDTH_40 0x1
-#define WL1273_IS2_WIDTH_22_23 0x2
-#define WL1273_IS2_WIDTH_23_22 0x3
-#define WL1273_IS2_WIDTH_48 0x4
-#define WL1273_IS2_WIDTH_50 0x5
-#define WL1273_IS2_WIDTH_60 0x6
-#define WL1273_IS2_WIDTH_64 0x7
-#define WL1273_IS2_WIDTH_80 0x8
-#define WL1273_IS2_WIDTH_96 0x9
-#define WL1273_IS2_WIDTH_128 0xa
-#define WL1273_IS2_WIDTH 0xf
-
-#define WL1273_IS2_FORMAT_STD (0x0 << 4)
-#define WL1273_IS2_FORMAT_LEFT (0x1 << 4)
-#define WL1273_IS2_FORMAT_RIGHT (0x2 << 4)
-#define WL1273_IS2_FORMAT_USER (0x3 << 4)
-
-#define WL1273_IS2_MASTER (0x0 << 6)
-#define WL1273_IS2_SLAVEW (0x1 << 6)
-
-#define WL1273_IS2_TRI_AFTER_SENDING (0x0 << 7)
-#define WL1273_IS2_TRI_ALWAYS_ACTIVE (0x1 << 7)
-
-#define WL1273_IS2_SDOWS_RR (0x0 << 8)
-#define WL1273_IS2_SDOWS_RF (0x1 << 8)
-#define WL1273_IS2_SDOWS_FR (0x2 << 8)
-#define WL1273_IS2_SDOWS_FF (0x3 << 8)
-
-#define WL1273_IS2_TRI_OPT (0x0 << 10)
-#define WL1273_IS2_TRI_ALWAYS (0x1 << 10)
-
-#define WL1273_IS2_RATE_48K (0x0 << 12)
-#define WL1273_IS2_RATE_44_1K (0x1 << 12)
-#define WL1273_IS2_RATE_32K (0x2 << 12)
-#define WL1273_IS2_RATE_22_05K (0x4 << 12)
-#define WL1273_IS2_RATE_16K (0x5 << 12)
-#define WL1273_IS2_RATE_12K (0x8 << 12)
-#define WL1273_IS2_RATE_11_025 (0x9 << 12)
-#define WL1273_IS2_RATE_8K (0xa << 12)
-#define WL1273_IS2_RATE (0xf << 12)
-
-#define WL1273_I2S_DEF_MODE (WL1273_IS2_WIDTH_32 | \
- WL1273_IS2_FORMAT_STD | \
- WL1273_IS2_MASTER | \
- WL1273_IS2_TRI_AFTER_SENDING | \
- WL1273_IS2_SDOWS_RR | \
- WL1273_IS2_TRI_OPT | \
- WL1273_IS2_RATE_48K)
-
-#define SCHAR_MIN (-128)
-#define SCHAR_MAX 127
-
-#define WL1273_FR_EVENT BIT(0)
-#define WL1273_BL_EVENT BIT(1)
-#define WL1273_RDS_EVENT BIT(2)
-#define WL1273_BBLK_EVENT BIT(3)
-#define WL1273_LSYNC_EVENT BIT(4)
-#define WL1273_LEV_EVENT BIT(5)
-#define WL1273_IFFR_EVENT BIT(6)
-#define WL1273_PI_EVENT BIT(7)
-#define WL1273_PD_EVENT BIT(8)
-#define WL1273_STIC_EVENT BIT(9)
-#define WL1273_MAL_EVENT BIT(10)
-#define WL1273_POW_ENB_EVENT BIT(11)
-#define WL1273_SCAN_OVER_EVENT BIT(12)
-#define WL1273_ERROR_EVENT BIT(13)
-
-#define TUNER_MODE_STOP_SEARCH 0
-#define TUNER_MODE_PRESET 1
-#define TUNER_MODE_AUTO_SEEK 2
-#define TUNER_MODE_AF 3
-#define TUNER_MODE_AUTO_SEEK_PI 4
-#define TUNER_MODE_AUTO_SEEK_BULK 5
-
-#define RDS_BLOCK_SIZE 3
-
-struct wl1273_fm_platform_data {
- int (*request_resources) (struct i2c_client *client);
- void (*free_resources) (void);
- void (*enable) (void);
- void (*disable) (void);
-
- u8 forbidden_modes;
- unsigned int children;
-};
-
-#define WL1273_FM_CORE_CELLS 2
-
-#define WL1273_BAND_OTHER 0
-#define WL1273_BAND_JAPAN 1
-
-#define WL1273_BAND_JAPAN_LOW 76000
-#define WL1273_BAND_JAPAN_HIGH 90000
-#define WL1273_BAND_OTHER_LOW 87500
-#define WL1273_BAND_OTHER_HIGH 108000
-
-#define WL1273_BAND_TX_LOW 76000
-#define WL1273_BAND_TX_HIGH 108000
-
-struct wl1273_core {
- struct mfd_cell cells[WL1273_FM_CORE_CELLS];
- struct wl1273_fm_platform_data *pdata;
-
- unsigned int mode;
- unsigned int i2s_mode;
- unsigned int volume;
- unsigned int audio_mode;
- unsigned int channel_number;
- struct mutex lock; /* for serializing fm radio operations */
-
- struct i2c_client *client;
-
- int (*read)(struct wl1273_core *core, u8, u16 *);
- int (*write)(struct wl1273_core *core, u8, u16);
- int (*write_data)(struct wl1273_core *core, u8 *, u16);
- int (*set_audio)(struct wl1273_core *core, unsigned int);
- int (*set_volume)(struct wl1273_core *core, unsigned int);
-};
-
-#endif /* ifndef WL1273_CORE_H */
diff --git a/ANDROID_3.4.5/include/linux/mfd/wm831x/auxadc.h b/ANDROID_3.4.5/include/linux/mfd/wm831x/auxadc.h
deleted file mode 100644
index b132067e..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/wm831x/auxadc.h
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- * include/linux/mfd/wm831x/auxadc.h -- Auxiliary ADC interface for WM831x
- *
- * Copyright 2009 Wolfson Microelectronics PLC.
- *
- * Author: Mark Brown <broonie@opensource.wolfsonmicro.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 __MFD_WM831X_AUXADC_H__
-#define __MFD_WM831X_AUXADC_H__
-
-/*
- * R16429 (0x402D) - AuxADC Data
- */
-#define WM831X_AUX_DATA_SRC_MASK 0xF000 /* AUX_DATA_SRC - [15:12] */
-#define WM831X_AUX_DATA_SRC_SHIFT 12 /* AUX_DATA_SRC - [15:12] */
-#define WM831X_AUX_DATA_SRC_WIDTH 4 /* AUX_DATA_SRC - [15:12] */
-#define WM831X_AUX_DATA_MASK 0x0FFF /* AUX_DATA - [11:0] */
-#define WM831X_AUX_DATA_SHIFT 0 /* AUX_DATA - [11:0] */
-#define WM831X_AUX_DATA_WIDTH 12 /* AUX_DATA - [11:0] */
-
-/*
- * R16430 (0x402E) - AuxADC Control
- */
-#define WM831X_AUX_ENA 0x8000 /* AUX_ENA */
-#define WM831X_AUX_ENA_MASK 0x8000 /* AUX_ENA */
-#define WM831X_AUX_ENA_SHIFT 15 /* AUX_ENA */
-#define WM831X_AUX_ENA_WIDTH 1 /* AUX_ENA */
-#define WM831X_AUX_CVT_ENA 0x4000 /* AUX_CVT_ENA */
-#define WM831X_AUX_CVT_ENA_MASK 0x4000 /* AUX_CVT_ENA */
-#define WM831X_AUX_CVT_ENA_SHIFT 14 /* AUX_CVT_ENA */
-#define WM831X_AUX_CVT_ENA_WIDTH 1 /* AUX_CVT_ENA */
-#define WM831X_AUX_SLPENA 0x1000 /* AUX_SLPENA */
-#define WM831X_AUX_SLPENA_MASK 0x1000 /* AUX_SLPENA */
-#define WM831X_AUX_SLPENA_SHIFT 12 /* AUX_SLPENA */
-#define WM831X_AUX_SLPENA_WIDTH 1 /* AUX_SLPENA */
-#define WM831X_AUX_FRC_ENA 0x0800 /* AUX_FRC_ENA */
-#define WM831X_AUX_FRC_ENA_MASK 0x0800 /* AUX_FRC_ENA */
-#define WM831X_AUX_FRC_ENA_SHIFT 11 /* AUX_FRC_ENA */
-#define WM831X_AUX_FRC_ENA_WIDTH 1 /* AUX_FRC_ENA */
-#define WM831X_AUX_RATE_MASK 0x003F /* AUX_RATE - [5:0] */
-#define WM831X_AUX_RATE_SHIFT 0 /* AUX_RATE - [5:0] */
-#define WM831X_AUX_RATE_WIDTH 6 /* AUX_RATE - [5:0] */
-
-/*
- * R16431 (0x402F) - AuxADC Source
- */
-#define WM831X_AUX_CAL_SEL 0x8000 /* AUX_CAL_SEL */
-#define WM831X_AUX_CAL_SEL_MASK 0x8000 /* AUX_CAL_SEL */
-#define WM831X_AUX_CAL_SEL_SHIFT 15 /* AUX_CAL_SEL */
-#define WM831X_AUX_CAL_SEL_WIDTH 1 /* AUX_CAL_SEL */
-#define WM831X_AUX_BKUP_BATT_SEL 0x0400 /* AUX_BKUP_BATT_SEL */
-#define WM831X_AUX_BKUP_BATT_SEL_MASK 0x0400 /* AUX_BKUP_BATT_SEL */
-#define WM831X_AUX_BKUP_BATT_SEL_SHIFT 10 /* AUX_BKUP_BATT_SEL */
-#define WM831X_AUX_BKUP_BATT_SEL_WIDTH 1 /* AUX_BKUP_BATT_SEL */
-#define WM831X_AUX_WALL_SEL 0x0200 /* AUX_WALL_SEL */
-#define WM831X_AUX_WALL_SEL_MASK 0x0200 /* AUX_WALL_SEL */
-#define WM831X_AUX_WALL_SEL_SHIFT 9 /* AUX_WALL_SEL */
-#define WM831X_AUX_WALL_SEL_WIDTH 1 /* AUX_WALL_SEL */
-#define WM831X_AUX_BATT_SEL 0x0100 /* AUX_BATT_SEL */
-#define WM831X_AUX_BATT_SEL_MASK 0x0100 /* AUX_BATT_SEL */
-#define WM831X_AUX_BATT_SEL_SHIFT 8 /* AUX_BATT_SEL */
-#define WM831X_AUX_BATT_SEL_WIDTH 1 /* AUX_BATT_SEL */
-#define WM831X_AUX_USB_SEL 0x0080 /* AUX_USB_SEL */
-#define WM831X_AUX_USB_SEL_MASK 0x0080 /* AUX_USB_SEL */
-#define WM831X_AUX_USB_SEL_SHIFT 7 /* AUX_USB_SEL */
-#define WM831X_AUX_USB_SEL_WIDTH 1 /* AUX_USB_SEL */
-#define WM831X_AUX_SYSVDD_SEL 0x0040 /* AUX_SYSVDD_SEL */
-#define WM831X_AUX_SYSVDD_SEL_MASK 0x0040 /* AUX_SYSVDD_SEL */
-#define WM831X_AUX_SYSVDD_SEL_SHIFT 6 /* AUX_SYSVDD_SEL */
-#define WM831X_AUX_SYSVDD_SEL_WIDTH 1 /* AUX_SYSVDD_SEL */
-#define WM831X_AUX_BATT_TEMP_SEL 0x0020 /* AUX_BATT_TEMP_SEL */
-#define WM831X_AUX_BATT_TEMP_SEL_MASK 0x0020 /* AUX_BATT_TEMP_SEL */
-#define WM831X_AUX_BATT_TEMP_SEL_SHIFT 5 /* AUX_BATT_TEMP_SEL */
-#define WM831X_AUX_BATT_TEMP_SEL_WIDTH 1 /* AUX_BATT_TEMP_SEL */
-#define WM831X_AUX_CHIP_TEMP_SEL 0x0010 /* AUX_CHIP_TEMP_SEL */
-#define WM831X_AUX_CHIP_TEMP_SEL_MASK 0x0010 /* AUX_CHIP_TEMP_SEL */
-#define WM831X_AUX_CHIP_TEMP_SEL_SHIFT 4 /* AUX_CHIP_TEMP_SEL */
-#define WM831X_AUX_CHIP_TEMP_SEL_WIDTH 1 /* AUX_CHIP_TEMP_SEL */
-#define WM831X_AUX_AUX4_SEL 0x0008 /* AUX_AUX4_SEL */
-#define WM831X_AUX_AUX4_SEL_MASK 0x0008 /* AUX_AUX4_SEL */
-#define WM831X_AUX_AUX4_SEL_SHIFT 3 /* AUX_AUX4_SEL */
-#define WM831X_AUX_AUX4_SEL_WIDTH 1 /* AUX_AUX4_SEL */
-#define WM831X_AUX_AUX3_SEL 0x0004 /* AUX_AUX3_SEL */
-#define WM831X_AUX_AUX3_SEL_MASK 0x0004 /* AUX_AUX3_SEL */
-#define WM831X_AUX_AUX3_SEL_SHIFT 2 /* AUX_AUX3_SEL */
-#define WM831X_AUX_AUX3_SEL_WIDTH 1 /* AUX_AUX3_SEL */
-#define WM831X_AUX_AUX2_SEL 0x0002 /* AUX_AUX2_SEL */
-#define WM831X_AUX_AUX2_SEL_MASK 0x0002 /* AUX_AUX2_SEL */
-#define WM831X_AUX_AUX2_SEL_SHIFT 1 /* AUX_AUX2_SEL */
-#define WM831X_AUX_AUX2_SEL_WIDTH 1 /* AUX_AUX2_SEL */
-#define WM831X_AUX_AUX1_SEL 0x0001 /* AUX_AUX1_SEL */
-#define WM831X_AUX_AUX1_SEL_MASK 0x0001 /* AUX_AUX1_SEL */
-#define WM831X_AUX_AUX1_SEL_SHIFT 0 /* AUX_AUX1_SEL */
-#define WM831X_AUX_AUX1_SEL_WIDTH 1 /* AUX_AUX1_SEL */
-
-/*
- * R16432 (0x4030) - Comparator Control
- */
-#define WM831X_DCOMP4_STS 0x0800 /* DCOMP4_STS */
-#define WM831X_DCOMP4_STS_MASK 0x0800 /* DCOMP4_STS */
-#define WM831X_DCOMP4_STS_SHIFT 11 /* DCOMP4_STS */
-#define WM831X_DCOMP4_STS_WIDTH 1 /* DCOMP4_STS */
-#define WM831X_DCOMP3_STS 0x0400 /* DCOMP3_STS */
-#define WM831X_DCOMP3_STS_MASK 0x0400 /* DCOMP3_STS */
-#define WM831X_DCOMP3_STS_SHIFT 10 /* DCOMP3_STS */
-#define WM831X_DCOMP3_STS_WIDTH 1 /* DCOMP3_STS */
-#define WM831X_DCOMP2_STS 0x0200 /* DCOMP2_STS */
-#define WM831X_DCOMP2_STS_MASK 0x0200 /* DCOMP2_STS */
-#define WM831X_DCOMP2_STS_SHIFT 9 /* DCOMP2_STS */
-#define WM831X_DCOMP2_STS_WIDTH 1 /* DCOMP2_STS */
-#define WM831X_DCOMP1_STS 0x0100 /* DCOMP1_STS */
-#define WM831X_DCOMP1_STS_MASK 0x0100 /* DCOMP1_STS */
-#define WM831X_DCOMP1_STS_SHIFT 8 /* DCOMP1_STS */
-#define WM831X_DCOMP1_STS_WIDTH 1 /* DCOMP1_STS */
-#define WM831X_DCMP4_ENA 0x0008 /* DCMP4_ENA */
-#define WM831X_DCMP4_ENA_MASK 0x0008 /* DCMP4_ENA */
-#define WM831X_DCMP4_ENA_SHIFT 3 /* DCMP4_ENA */
-#define WM831X_DCMP4_ENA_WIDTH 1 /* DCMP4_ENA */
-#define WM831X_DCMP3_ENA 0x0004 /* DCMP3_ENA */
-#define WM831X_DCMP3_ENA_MASK 0x0004 /* DCMP3_ENA */
-#define WM831X_DCMP3_ENA_SHIFT 2 /* DCMP3_ENA */
-#define WM831X_DCMP3_ENA_WIDTH 1 /* DCMP3_ENA */
-#define WM831X_DCMP2_ENA 0x0002 /* DCMP2_ENA */
-#define WM831X_DCMP2_ENA_MASK 0x0002 /* DCMP2_ENA */
-#define WM831X_DCMP2_ENA_SHIFT 1 /* DCMP2_ENA */
-#define WM831X_DCMP2_ENA_WIDTH 1 /* DCMP2_ENA */
-#define WM831X_DCMP1_ENA 0x0001 /* DCMP1_ENA */
-#define WM831X_DCMP1_ENA_MASK 0x0001 /* DCMP1_ENA */
-#define WM831X_DCMP1_ENA_SHIFT 0 /* DCMP1_ENA */
-#define WM831X_DCMP1_ENA_WIDTH 1 /* DCMP1_ENA */
-
-/*
- * R16433 (0x4031) - Comparator 1
- */
-#define WM831X_DCMP1_SRC_MASK 0xE000 /* DCMP1_SRC - [15:13] */
-#define WM831X_DCMP1_SRC_SHIFT 13 /* DCMP1_SRC - [15:13] */
-#define WM831X_DCMP1_SRC_WIDTH 3 /* DCMP1_SRC - [15:13] */
-#define WM831X_DCMP1_GT 0x1000 /* DCMP1_GT */
-#define WM831X_DCMP1_GT_MASK 0x1000 /* DCMP1_GT */
-#define WM831X_DCMP1_GT_SHIFT 12 /* DCMP1_GT */
-#define WM831X_DCMP1_GT_WIDTH 1 /* DCMP1_GT */
-#define WM831X_DCMP1_THR_MASK 0x0FFF /* DCMP1_THR - [11:0] */
-#define WM831X_DCMP1_THR_SHIFT 0 /* DCMP1_THR - [11:0] */
-#define WM831X_DCMP1_THR_WIDTH 12 /* DCMP1_THR - [11:0] */
-
-/*
- * R16434 (0x4032) - Comparator 2
- */
-#define WM831X_DCMP2_SRC_MASK 0xE000 /* DCMP2_SRC - [15:13] */
-#define WM831X_DCMP2_SRC_SHIFT 13 /* DCMP2_SRC - [15:13] */
-#define WM831X_DCMP2_SRC_WIDTH 3 /* DCMP2_SRC - [15:13] */
-#define WM831X_DCMP2_GT 0x1000 /* DCMP2_GT */
-#define WM831X_DCMP2_GT_MASK 0x1000 /* DCMP2_GT */
-#define WM831X_DCMP2_GT_SHIFT 12 /* DCMP2_GT */
-#define WM831X_DCMP2_GT_WIDTH 1 /* DCMP2_GT */
-#define WM831X_DCMP2_THR_MASK 0x0FFF /* DCMP2_THR - [11:0] */
-#define WM831X_DCMP2_THR_SHIFT 0 /* DCMP2_THR - [11:0] */
-#define WM831X_DCMP2_THR_WIDTH 12 /* DCMP2_THR - [11:0] */
-
-/*
- * R16435 (0x4033) - Comparator 3
- */
-#define WM831X_DCMP3_SRC_MASK 0xE000 /* DCMP3_SRC - [15:13] */
-#define WM831X_DCMP3_SRC_SHIFT 13 /* DCMP3_SRC - [15:13] */
-#define WM831X_DCMP3_SRC_WIDTH 3 /* DCMP3_SRC - [15:13] */
-#define WM831X_DCMP3_GT 0x1000 /* DCMP3_GT */
-#define WM831X_DCMP3_GT_MASK 0x1000 /* DCMP3_GT */
-#define WM831X_DCMP3_GT_SHIFT 12 /* DCMP3_GT */
-#define WM831X_DCMP3_GT_WIDTH 1 /* DCMP3_GT */
-#define WM831X_DCMP3_THR_MASK 0x0FFF /* DCMP3_THR - [11:0] */
-#define WM831X_DCMP3_THR_SHIFT 0 /* DCMP3_THR - [11:0] */
-#define WM831X_DCMP3_THR_WIDTH 12 /* DCMP3_THR - [11:0] */
-
-/*
- * R16436 (0x4034) - Comparator 4
- */
-#define WM831X_DCMP4_SRC_MASK 0xE000 /* DCMP4_SRC - [15:13] */
-#define WM831X_DCMP4_SRC_SHIFT 13 /* DCMP4_SRC - [15:13] */
-#define WM831X_DCMP4_SRC_WIDTH 3 /* DCMP4_SRC - [15:13] */
-#define WM831X_DCMP4_GT 0x1000 /* DCMP4_GT */
-#define WM831X_DCMP4_GT_MASK 0x1000 /* DCMP4_GT */
-#define WM831X_DCMP4_GT_SHIFT 12 /* DCMP4_GT */
-#define WM831X_DCMP4_GT_WIDTH 1 /* DCMP4_GT */
-#define WM831X_DCMP4_THR_MASK 0x0FFF /* DCMP4_THR - [11:0] */
-#define WM831X_DCMP4_THR_SHIFT 0 /* DCMP4_THR - [11:0] */
-#define WM831X_DCMP4_THR_WIDTH 12 /* DCMP4_THR - [11:0] */
-
-#define WM831X_AUX_CAL_FACTOR 0xfff
-#define WM831X_AUX_CAL_NOMINAL 0x222
-
-enum wm831x_auxadc {
- WM831X_AUX_CAL = 15,
- WM831X_AUX_BKUP_BATT = 10,
- WM831X_AUX_WALL = 9,
- WM831X_AUX_BATT = 8,
- WM831X_AUX_USB = 7,
- WM831X_AUX_SYSVDD = 6,
- WM831X_AUX_BATT_TEMP = 5,
- WM831X_AUX_CHIP_TEMP = 4,
- WM831X_AUX_AUX4 = 3,
- WM831X_AUX_AUX3 = 2,
- WM831X_AUX_AUX2 = 1,
- WM831X_AUX_AUX1 = 0,
-};
-
-int wm831x_auxadc_read(struct wm831x *wm831x, enum wm831x_auxadc input);
-int wm831x_auxadc_read_uv(struct wm831x *wm831x, enum wm831x_auxadc input);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/wm831x/core.h b/ANDROID_3.4.5/include/linux/mfd/wm831x/core.h
deleted file mode 100644
index 4b121185..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/wm831x/core.h
+++ /dev/null
@@ -1,422 +0,0 @@
-/*
- * include/linux/mfd/wm831x/core.h -- Core interface for WM831x
- *
- * Copyright 2009 Wolfson Microelectronics PLC.
- *
- * Author: Mark Brown <broonie@opensource.wolfsonmicro.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 __MFD_WM831X_CORE_H__
-#define __MFD_WM831X_CORE_H__
-
-#include <linux/completion.h>
-#include <linux/interrupt.h>
-#include <linux/list.h>
-#include <linux/regmap.h>
-
-/*
- * Register values.
- */
-#define WM831X_RESET_ID 0x00
-#define WM831X_REVISION 0x01
-#define WM831X_PARENT_ID 0x4000
-#define WM831X_SYSVDD_CONTROL 0x4001
-#define WM831X_THERMAL_MONITORING 0x4002
-#define WM831X_POWER_STATE 0x4003
-#define WM831X_WATCHDOG 0x4004
-#define WM831X_ON_PIN_CONTROL 0x4005
-#define WM831X_RESET_CONTROL 0x4006
-#define WM831X_CONTROL_INTERFACE 0x4007
-#define WM831X_SECURITY_KEY 0x4008
-#define WM831X_SOFTWARE_SCRATCH 0x4009
-#define WM831X_OTP_CONTROL 0x400A
-#define WM831X_GPIO_LEVEL 0x400C
-#define WM831X_SYSTEM_STATUS 0x400D
-#define WM831X_ON_SOURCE 0x400E
-#define WM831X_OFF_SOURCE 0x400F
-#define WM831X_SYSTEM_INTERRUPTS 0x4010
-#define WM831X_INTERRUPT_STATUS_1 0x4011
-#define WM831X_INTERRUPT_STATUS_2 0x4012
-#define WM831X_INTERRUPT_STATUS_3 0x4013
-#define WM831X_INTERRUPT_STATUS_4 0x4014
-#define WM831X_INTERRUPT_STATUS_5 0x4015
-#define WM831X_IRQ_CONFIG 0x4017
-#define WM831X_SYSTEM_INTERRUPTS_MASK 0x4018
-#define WM831X_INTERRUPT_STATUS_1_MASK 0x4019
-#define WM831X_INTERRUPT_STATUS_2_MASK 0x401A
-#define WM831X_INTERRUPT_STATUS_3_MASK 0x401B
-#define WM831X_INTERRUPT_STATUS_4_MASK 0x401C
-#define WM831X_INTERRUPT_STATUS_5_MASK 0x401D
-#define WM831X_RTC_WRITE_COUNTER 0x4020
-#define WM831X_RTC_TIME_1 0x4021
-#define WM831X_RTC_TIME_2 0x4022
-#define WM831X_RTC_ALARM_1 0x4023
-#define WM831X_RTC_ALARM_2 0x4024
-#define WM831X_RTC_CONTROL 0x4025
-#define WM831X_RTC_TRIM 0x4026
-#define WM831X_TOUCH_CONTROL_1 0x4028
-#define WM831X_TOUCH_CONTROL_2 0x4029
-#define WM831X_TOUCH_DATA_X 0x402A
-#define WM831X_TOUCH_DATA_Y 0x402B
-#define WM831X_TOUCH_DATA_Z 0x402C
-#define WM831X_AUXADC_DATA 0x402D
-#define WM831X_AUXADC_CONTROL 0x402E
-#define WM831X_AUXADC_SOURCE 0x402F
-#define WM831X_COMPARATOR_CONTROL 0x4030
-#define WM831X_COMPARATOR_1 0x4031
-#define WM831X_COMPARATOR_2 0x4032
-#define WM831X_COMPARATOR_3 0x4033
-#define WM831X_COMPARATOR_4 0x4034
-#define WM831X_GPIO1_CONTROL 0x4038
-#define WM831X_GPIO2_CONTROL 0x4039
-#define WM831X_GPIO3_CONTROL 0x403A
-#define WM831X_GPIO4_CONTROL 0x403B
-#define WM831X_GPIO5_CONTROL 0x403C
-#define WM831X_GPIO6_CONTROL 0x403D
-#define WM831X_GPIO7_CONTROL 0x403E
-#define WM831X_GPIO8_CONTROL 0x403F
-#define WM831X_GPIO9_CONTROL 0x4040
-#define WM831X_GPIO10_CONTROL 0x4041
-#define WM831X_GPIO11_CONTROL 0x4042
-#define WM831X_GPIO12_CONTROL 0x4043
-#define WM831X_GPIO13_CONTROL 0x4044
-#define WM831X_GPIO14_CONTROL 0x4045
-#define WM831X_GPIO15_CONTROL 0x4046
-#define WM831X_GPIO16_CONTROL 0x4047
-#define WM831X_CHARGER_CONTROL_1 0x4048
-#define WM831X_CHARGER_CONTROL_2 0x4049
-#define WM831X_CHARGER_STATUS 0x404A
-#define WM831X_BACKUP_CHARGER_CONTROL 0x404B
-#define WM831X_STATUS_LED_1 0x404C
-#define WM831X_STATUS_LED_2 0x404D
-#define WM831X_CURRENT_SINK_1 0x404E
-#define WM831X_CURRENT_SINK_2 0x404F
-#define WM831X_DCDC_ENABLE 0x4050
-#define WM831X_LDO_ENABLE 0x4051
-#define WM831X_DCDC_STATUS 0x4052
-#define WM831X_LDO_STATUS 0x4053
-#define WM831X_DCDC_UV_STATUS 0x4054
-#define WM831X_LDO_UV_STATUS 0x4055
-#define WM831X_DC1_CONTROL_1 0x4056
-#define WM831X_DC1_CONTROL_2 0x4057
-#define WM831X_DC1_ON_CONFIG 0x4058
-#define WM831X_DC1_SLEEP_CONTROL 0x4059
-#define WM831X_DC1_DVS_CONTROL 0x405A
-#define WM831X_DC2_CONTROL_1 0x405B
-#define WM831X_DC2_CONTROL_2 0x405C
-#define WM831X_DC2_ON_CONFIG 0x405D
-#define WM831X_DC2_SLEEP_CONTROL 0x405E
-#define WM831X_DC2_DVS_CONTROL 0x405F
-#define WM831X_DC3_CONTROL_1 0x4060
-#define WM831X_DC3_CONTROL_2 0x4061
-#define WM831X_DC3_ON_CONFIG 0x4062
-#define WM831X_DC3_SLEEP_CONTROL 0x4063
-#define WM831X_DC4_CONTROL 0x4064
-#define WM831X_DC4_SLEEP_CONTROL 0x4065
-#define WM832X_DC4_SLEEP_CONTROL 0x4067
-#define WM831X_EPE1_CONTROL 0x4066
-#define WM831X_EPE2_CONTROL 0x4067
-#define WM831X_LDO1_CONTROL 0x4068
-#define WM831X_LDO1_ON_CONTROL 0x4069
-#define WM831X_LDO1_SLEEP_CONTROL 0x406A
-#define WM831X_LDO2_CONTROL 0x406B
-#define WM831X_LDO2_ON_CONTROL 0x406C
-#define WM831X_LDO2_SLEEP_CONTROL 0x406D
-#define WM831X_LDO3_CONTROL 0x406E
-#define WM831X_LDO3_ON_CONTROL 0x406F
-#define WM831X_LDO3_SLEEP_CONTROL 0x4070
-#define WM831X_LDO4_CONTROL 0x4071
-#define WM831X_LDO4_ON_CONTROL 0x4072
-#define WM831X_LDO4_SLEEP_CONTROL 0x4073
-#define WM831X_LDO5_CONTROL 0x4074
-#define WM831X_LDO5_ON_CONTROL 0x4075
-#define WM831X_LDO5_SLEEP_CONTROL 0x4076
-#define WM831X_LDO6_CONTROL 0x4077
-#define WM831X_LDO6_ON_CONTROL 0x4078
-#define WM831X_LDO6_SLEEP_CONTROL 0x4079
-#define WM831X_LDO7_CONTROL 0x407A
-#define WM831X_LDO7_ON_CONTROL 0x407B
-#define WM831X_LDO7_SLEEP_CONTROL 0x407C
-#define WM831X_LDO8_CONTROL 0x407D
-#define WM831X_LDO8_ON_CONTROL 0x407E
-#define WM831X_LDO8_SLEEP_CONTROL 0x407F
-#define WM831X_LDO9_CONTROL 0x4080
-#define WM831X_LDO9_ON_CONTROL 0x4081
-#define WM831X_LDO9_SLEEP_CONTROL 0x4082
-#define WM831X_LDO10_CONTROL 0x4083
-#define WM831X_LDO10_ON_CONTROL 0x4084
-#define WM831X_LDO10_SLEEP_CONTROL 0x4085
-#define WM831X_LDO11_ON_CONTROL 0x4087
-#define WM831X_LDO11_SLEEP_CONTROL 0x4088
-#define WM831X_POWER_GOOD_SOURCE_1 0x408E
-#define WM831X_POWER_GOOD_SOURCE_2 0x408F
-#define WM831X_CLOCK_CONTROL_1 0x4090
-#define WM831X_CLOCK_CONTROL_2 0x4091
-#define WM831X_FLL_CONTROL_1 0x4092
-#define WM831X_FLL_CONTROL_2 0x4093
-#define WM831X_FLL_CONTROL_3 0x4094
-#define WM831X_FLL_CONTROL_4 0x4095
-#define WM831X_FLL_CONTROL_5 0x4096
-#define WM831X_UNIQUE_ID_1 0x7800
-#define WM831X_UNIQUE_ID_2 0x7801
-#define WM831X_UNIQUE_ID_3 0x7802
-#define WM831X_UNIQUE_ID_4 0x7803
-#define WM831X_UNIQUE_ID_5 0x7804
-#define WM831X_UNIQUE_ID_6 0x7805
-#define WM831X_UNIQUE_ID_7 0x7806
-#define WM831X_UNIQUE_ID_8 0x7807
-#define WM831X_FACTORY_OTP_ID 0x7808
-#define WM831X_FACTORY_OTP_1 0x7809
-#define WM831X_FACTORY_OTP_2 0x780A
-#define WM831X_FACTORY_OTP_3 0x780B
-#define WM831X_FACTORY_OTP_4 0x780C
-#define WM831X_FACTORY_OTP_5 0x780D
-#define WM831X_CUSTOMER_OTP_ID 0x7810
-#define WM831X_DC1_OTP_CONTROL 0x7811
-#define WM831X_DC2_OTP_CONTROL 0x7812
-#define WM831X_DC3_OTP_CONTROL 0x7813
-#define WM831X_LDO1_2_OTP_CONTROL 0x7814
-#define WM831X_LDO3_4_OTP_CONTROL 0x7815
-#define WM831X_LDO5_6_OTP_CONTROL 0x7816
-#define WM831X_LDO7_8_OTP_CONTROL 0x7817
-#define WM831X_LDO9_10_OTP_CONTROL 0x7818
-#define WM831X_LDO11_EPE_CONTROL 0x7819
-#define WM831X_GPIO1_OTP_CONTROL 0x781A
-#define WM831X_GPIO2_OTP_CONTROL 0x781B
-#define WM831X_GPIO3_OTP_CONTROL 0x781C
-#define WM831X_GPIO4_OTP_CONTROL 0x781D
-#define WM831X_GPIO5_OTP_CONTROL 0x781E
-#define WM831X_GPIO6_OTP_CONTROL 0x781F
-#define WM831X_DBE_CHECK_DATA 0x7827
-
-/*
- * R0 (0x00) - Reset ID
- */
-#define WM831X_CHIP_ID_MASK 0xFFFF /* CHIP_ID - [15:0] */
-#define WM831X_CHIP_ID_SHIFT 0 /* CHIP_ID - [15:0] */
-#define WM831X_CHIP_ID_WIDTH 16 /* CHIP_ID - [15:0] */
-
-/*
- * R1 (0x01) - Revision
- */
-#define WM831X_PARENT_REV_MASK 0xFF00 /* PARENT_REV - [15:8] */
-#define WM831X_PARENT_REV_SHIFT 8 /* PARENT_REV - [15:8] */
-#define WM831X_PARENT_REV_WIDTH 8 /* PARENT_REV - [15:8] */
-#define WM831X_CHILD_REV_MASK 0x00FF /* CHILD_REV - [7:0] */
-#define WM831X_CHILD_REV_SHIFT 0 /* CHILD_REV - [7:0] */
-#define WM831X_CHILD_REV_WIDTH 8 /* CHILD_REV - [7:0] */
-
-/*
- * R16384 (0x4000) - Parent ID
- */
-#define WM831X_PARENT_ID_MASK 0xFFFF /* PARENT_ID - [15:0] */
-#define WM831X_PARENT_ID_SHIFT 0 /* PARENT_ID - [15:0] */
-#define WM831X_PARENT_ID_WIDTH 16 /* PARENT_ID - [15:0] */
-
-/*
- * R16389 (0x4005) - ON Pin Control
- */
-#define WM831X_ON_PIN_SECACT_MASK 0x0300 /* ON_PIN_SECACT - [9:8] */
-#define WM831X_ON_PIN_SECACT_SHIFT 8 /* ON_PIN_SECACT - [9:8] */
-#define WM831X_ON_PIN_SECACT_WIDTH 2 /* ON_PIN_SECACT - [9:8] */
-#define WM831X_ON_PIN_PRIMACT_MASK 0x0030 /* ON_PIN_PRIMACT - [5:4] */
-#define WM831X_ON_PIN_PRIMACT_SHIFT 4 /* ON_PIN_PRIMACT - [5:4] */
-#define WM831X_ON_PIN_PRIMACT_WIDTH 2 /* ON_PIN_PRIMACT - [5:4] */
-#define WM831X_ON_PIN_STS 0x0008 /* ON_PIN_STS */
-#define WM831X_ON_PIN_STS_MASK 0x0008 /* ON_PIN_STS */
-#define WM831X_ON_PIN_STS_SHIFT 3 /* ON_PIN_STS */
-#define WM831X_ON_PIN_STS_WIDTH 1 /* ON_PIN_STS */
-#define WM831X_ON_PIN_TO_MASK 0x0003 /* ON_PIN_TO - [1:0] */
-#define WM831X_ON_PIN_TO_SHIFT 0 /* ON_PIN_TO - [1:0] */
-#define WM831X_ON_PIN_TO_WIDTH 2 /* ON_PIN_TO - [1:0] */
-
-/*
- * R16528 (0x4090) - Clock Control 1
- */
-#define WM831X_CLKOUT_ENA 0x8000 /* CLKOUT_ENA */
-#define WM831X_CLKOUT_ENA_MASK 0x8000 /* CLKOUT_ENA */
-#define WM831X_CLKOUT_ENA_SHIFT 15 /* CLKOUT_ENA */
-#define WM831X_CLKOUT_ENA_WIDTH 1 /* CLKOUT_ENA */
-#define WM831X_CLKOUT_OD 0x2000 /* CLKOUT_OD */
-#define WM831X_CLKOUT_OD_MASK 0x2000 /* CLKOUT_OD */
-#define WM831X_CLKOUT_OD_SHIFT 13 /* CLKOUT_OD */
-#define WM831X_CLKOUT_OD_WIDTH 1 /* CLKOUT_OD */
-#define WM831X_CLKOUT_SLOT_MASK 0x0700 /* CLKOUT_SLOT - [10:8] */
-#define WM831X_CLKOUT_SLOT_SHIFT 8 /* CLKOUT_SLOT - [10:8] */
-#define WM831X_CLKOUT_SLOT_WIDTH 3 /* CLKOUT_SLOT - [10:8] */
-#define WM831X_CLKOUT_SLPSLOT_MASK 0x0070 /* CLKOUT_SLPSLOT - [6:4] */
-#define WM831X_CLKOUT_SLPSLOT_SHIFT 4 /* CLKOUT_SLPSLOT - [6:4] */
-#define WM831X_CLKOUT_SLPSLOT_WIDTH 3 /* CLKOUT_SLPSLOT - [6:4] */
-#define WM831X_CLKOUT_SRC 0x0001 /* CLKOUT_SRC */
-#define WM831X_CLKOUT_SRC_MASK 0x0001 /* CLKOUT_SRC */
-#define WM831X_CLKOUT_SRC_SHIFT 0 /* CLKOUT_SRC */
-#define WM831X_CLKOUT_SRC_WIDTH 1 /* CLKOUT_SRC */
-
-/*
- * R16529 (0x4091) - Clock Control 2
- */
-#define WM831X_XTAL_INH 0x8000 /* XTAL_INH */
-#define WM831X_XTAL_INH_MASK 0x8000 /* XTAL_INH */
-#define WM831X_XTAL_INH_SHIFT 15 /* XTAL_INH */
-#define WM831X_XTAL_INH_WIDTH 1 /* XTAL_INH */
-#define WM831X_XTAL_ENA 0x2000 /* XTAL_ENA */
-#define WM831X_XTAL_ENA_MASK 0x2000 /* XTAL_ENA */
-#define WM831X_XTAL_ENA_SHIFT 13 /* XTAL_ENA */
-#define WM831X_XTAL_ENA_WIDTH 1 /* XTAL_ENA */
-#define WM831X_XTAL_BKUPENA 0x1000 /* XTAL_BKUPENA */
-#define WM831X_XTAL_BKUPENA_MASK 0x1000 /* XTAL_BKUPENA */
-#define WM831X_XTAL_BKUPENA_SHIFT 12 /* XTAL_BKUPENA */
-#define WM831X_XTAL_BKUPENA_WIDTH 1 /* XTAL_BKUPENA */
-#define WM831X_FLL_AUTO 0x0080 /* FLL_AUTO */
-#define WM831X_FLL_AUTO_MASK 0x0080 /* FLL_AUTO */
-#define WM831X_FLL_AUTO_SHIFT 7 /* FLL_AUTO */
-#define WM831X_FLL_AUTO_WIDTH 1 /* FLL_AUTO */
-#define WM831X_FLL_AUTO_FREQ_MASK 0x0007 /* FLL_AUTO_FREQ - [2:0] */
-#define WM831X_FLL_AUTO_FREQ_SHIFT 0 /* FLL_AUTO_FREQ - [2:0] */
-#define WM831X_FLL_AUTO_FREQ_WIDTH 3 /* FLL_AUTO_FREQ - [2:0] */
-
-/*
- * R16530 (0x4092) - FLL Control 1
- */
-#define WM831X_FLL_FRAC 0x0004 /* FLL_FRAC */
-#define WM831X_FLL_FRAC_MASK 0x0004 /* FLL_FRAC */
-#define WM831X_FLL_FRAC_SHIFT 2 /* FLL_FRAC */
-#define WM831X_FLL_FRAC_WIDTH 1 /* FLL_FRAC */
-#define WM831X_FLL_OSC_ENA 0x0002 /* FLL_OSC_ENA */
-#define WM831X_FLL_OSC_ENA_MASK 0x0002 /* FLL_OSC_ENA */
-#define WM831X_FLL_OSC_ENA_SHIFT 1 /* FLL_OSC_ENA */
-#define WM831X_FLL_OSC_ENA_WIDTH 1 /* FLL_OSC_ENA */
-#define WM831X_FLL_ENA 0x0001 /* FLL_ENA */
-#define WM831X_FLL_ENA_MASK 0x0001 /* FLL_ENA */
-#define WM831X_FLL_ENA_SHIFT 0 /* FLL_ENA */
-#define WM831X_FLL_ENA_WIDTH 1 /* FLL_ENA */
-
-/*
- * R16531 (0x4093) - FLL Control 2
- */
-#define WM831X_FLL_OUTDIV_MASK 0x3F00 /* FLL_OUTDIV - [13:8] */
-#define WM831X_FLL_OUTDIV_SHIFT 8 /* FLL_OUTDIV - [13:8] */
-#define WM831X_FLL_OUTDIV_WIDTH 6 /* FLL_OUTDIV - [13:8] */
-#define WM831X_FLL_CTRL_RATE_MASK 0x0070 /* FLL_CTRL_RATE - [6:4] */
-#define WM831X_FLL_CTRL_RATE_SHIFT 4 /* FLL_CTRL_RATE - [6:4] */
-#define WM831X_FLL_CTRL_RATE_WIDTH 3 /* FLL_CTRL_RATE - [6:4] */
-#define WM831X_FLL_FRATIO_MASK 0x0007 /* FLL_FRATIO - [2:0] */
-#define WM831X_FLL_FRATIO_SHIFT 0 /* FLL_FRATIO - [2:0] */
-#define WM831X_FLL_FRATIO_WIDTH 3 /* FLL_FRATIO - [2:0] */
-
-/*
- * R16532 (0x4094) - FLL Control 3
- */
-#define WM831X_FLL_K_MASK 0xFFFF /* FLL_K - [15:0] */
-#define WM831X_FLL_K_SHIFT 0 /* FLL_K - [15:0] */
-#define WM831X_FLL_K_WIDTH 16 /* FLL_K - [15:0] */
-
-/*
- * R16533 (0x4095) - FLL Control 4
- */
-#define WM831X_FLL_N_MASK 0x7FE0 /* FLL_N - [14:5] */
-#define WM831X_FLL_N_SHIFT 5 /* FLL_N - [14:5] */
-#define WM831X_FLL_N_WIDTH 10 /* FLL_N - [14:5] */
-#define WM831X_FLL_GAIN_MASK 0x000F /* FLL_GAIN - [3:0] */
-#define WM831X_FLL_GAIN_SHIFT 0 /* FLL_GAIN - [3:0] */
-#define WM831X_FLL_GAIN_WIDTH 4 /* FLL_GAIN - [3:0] */
-
-/*
- * R16534 (0x4096) - FLL Control 5
- */
-#define WM831X_FLL_CLK_REF_DIV_MASK 0x0018 /* FLL_CLK_REF_DIV - [4:3] */
-#define WM831X_FLL_CLK_REF_DIV_SHIFT 3 /* FLL_CLK_REF_DIV - [4:3] */
-#define WM831X_FLL_CLK_REF_DIV_WIDTH 2 /* FLL_CLK_REF_DIV - [4:3] */
-#define WM831X_FLL_CLK_SRC_MASK 0x0003 /* FLL_CLK_SRC - [1:0] */
-#define WM831X_FLL_CLK_SRC_SHIFT 0 /* FLL_CLK_SRC - [1:0] */
-#define WM831X_FLL_CLK_SRC_WIDTH 2 /* FLL_CLK_SRC - [1:0] */
-
-struct regulator_dev;
-
-#define WM831X_NUM_IRQ_REGS 5
-#define WM831X_NUM_GPIO_REGS 16
-
-enum wm831x_parent {
- WM8310 = 0x8310,
- WM8311 = 0x8311,
- WM8312 = 0x8312,
- WM8320 = 0x8320,
- WM8321 = 0x8321,
- WM8325 = 0x8325,
- WM8326 = 0x8326,
-};
-
-struct wm831x;
-enum wm831x_auxadc;
-
-typedef int (*wm831x_auxadc_read_fn)(struct wm831x *wm831x,
- enum wm831x_auxadc input);
-
-struct wm831x {
- struct mutex io_lock;
-
- struct device *dev;
-
- struct regmap *regmap;
-
- int irq; /* Our chip IRQ */
- struct mutex irq_lock;
- int irq_base;
- int irq_masks_cur[WM831X_NUM_IRQ_REGS]; /* Currently active value */
- int irq_masks_cache[WM831X_NUM_IRQ_REGS]; /* Cached hardware value */
-
- bool soft_shutdown;
-
- /* Chip revision based flags */
- unsigned has_gpio_ena:1; /* Has GPIO enable bit */
- unsigned has_cs_sts:1; /* Has current sink status bit */
- unsigned charger_irq_wake:1; /* Are charger IRQs a wake source? */
-
- int num_gpio;
-
- /* Used by the interrupt controller code to post writes */
- int gpio_update[WM831X_NUM_GPIO_REGS];
- bool gpio_level[WM831X_NUM_GPIO_REGS];
-
- struct mutex auxadc_lock;
- struct list_head auxadc_pending;
- u16 auxadc_active;
- wm831x_auxadc_read_fn auxadc_read;
-
- /* The WM831x has a security key blocking access to certain
- * registers. The mutex is taken by the accessors for locking
- * and unlocking the security key, locked is used to fail
- * writes if the lock is held.
- */
- struct mutex key_lock;
- unsigned int locked:1;
-};
-
-/* Device I/O API */
-int wm831x_reg_read(struct wm831x *wm831x, unsigned short reg);
-int wm831x_reg_write(struct wm831x *wm831x, unsigned short reg,
- unsigned short val);
-void wm831x_reg_lock(struct wm831x *wm831x);
-int wm831x_reg_unlock(struct wm831x *wm831x);
-int wm831x_set_bits(struct wm831x *wm831x, unsigned short reg,
- unsigned short mask, unsigned short val);
-int wm831x_bulk_read(struct wm831x *wm831x, unsigned short reg,
- int count, u16 *buf);
-
-int wm831x_device_init(struct wm831x *wm831x, unsigned long id, int irq);
-void wm831x_device_exit(struct wm831x *wm831x);
-int wm831x_device_suspend(struct wm831x *wm831x);
-void wm831x_device_shutdown(struct wm831x *wm831x);
-int wm831x_irq_init(struct wm831x *wm831x, int irq);
-void wm831x_irq_exit(struct wm831x *wm831x);
-void wm831x_auxadc_init(struct wm831x *wm831x);
-
-extern struct regmap_config wm831x_regmap_config;
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/wm831x/gpio.h b/ANDROID_3.4.5/include/linux/mfd/wm831x/gpio.h
deleted file mode 100644
index 9b163c58..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/wm831x/gpio.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * include/linux/mfd/wm831x/gpio.h -- GPIO for WM831x
- *
- * Copyright 2009 Wolfson Microelectronics PLC.
- *
- * Author: Mark Brown <broonie@opensource.wolfsonmicro.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 __MFD_WM831X_GPIO_H__
-#define __MFD_WM831X_GPIO_H__
-
-/*
- * R16440-16455 (0x4038-0x4047) - GPIOx Control
- */
-#define WM831X_GPN_DIR 0x8000 /* GPN_DIR */
-#define WM831X_GPN_DIR_MASK 0x8000 /* GPN_DIR */
-#define WM831X_GPN_DIR_SHIFT 15 /* GPN_DIR */
-#define WM831X_GPN_DIR_WIDTH 1 /* GPN_DIR */
-#define WM831X_GPN_PULL_MASK 0x6000 /* GPN_PULL - [14:13] */
-#define WM831X_GPN_PULL_SHIFT 13 /* GPN_PULL - [14:13] */
-#define WM831X_GPN_PULL_WIDTH 2 /* GPN_PULL - [14:13] */
-#define WM831X_GPN_INT_MODE 0x1000 /* GPN_INT_MODE */
-#define WM831X_GPN_INT_MODE_MASK 0x1000 /* GPN_INT_MODE */
-#define WM831X_GPN_INT_MODE_SHIFT 12 /* GPN_INT_MODE */
-#define WM831X_GPN_INT_MODE_WIDTH 1 /* GPN_INT_MODE */
-#define WM831X_GPN_PWR_DOM 0x0800 /* GPN_PWR_DOM */
-#define WM831X_GPN_PWR_DOM_MASK 0x0800 /* GPN_PWR_DOM */
-#define WM831X_GPN_PWR_DOM_SHIFT 11 /* GPN_PWR_DOM */
-#define WM831X_GPN_PWR_DOM_WIDTH 1 /* GPN_PWR_DOM */
-#define WM831X_GPN_POL 0x0400 /* GPN_POL */
-#define WM831X_GPN_POL_MASK 0x0400 /* GPN_POL */
-#define WM831X_GPN_POL_SHIFT 10 /* GPN_POL */
-#define WM831X_GPN_POL_WIDTH 1 /* GPN_POL */
-#define WM831X_GPN_OD 0x0200 /* GPN_OD */
-#define WM831X_GPN_OD_MASK 0x0200 /* GPN_OD */
-#define WM831X_GPN_OD_SHIFT 9 /* GPN_OD */
-#define WM831X_GPN_OD_WIDTH 1 /* GPN_OD */
-#define WM831X_GPN_ENA 0x0080 /* GPN_ENA */
-#define WM831X_GPN_ENA_MASK 0x0080 /* GPN_ENA */
-#define WM831X_GPN_ENA_SHIFT 7 /* GPN_ENA */
-#define WM831X_GPN_ENA_WIDTH 1 /* GPN_ENA */
-#define WM831X_GPN_TRI 0x0080 /* GPN_TRI */
-#define WM831X_GPN_TRI_MASK 0x0080 /* GPN_TRI */
-#define WM831X_GPN_TRI_SHIFT 7 /* GPN_TRI */
-#define WM831X_GPN_TRI_WIDTH 1 /* GPN_TRI */
-#define WM831X_GPN_FN_MASK 0x000F /* GPN_FN - [3:0] */
-#define WM831X_GPN_FN_SHIFT 0 /* GPN_FN - [3:0] */
-#define WM831X_GPN_FN_WIDTH 4 /* GPN_FN - [3:0] */
-
-#define WM831X_GPIO_PULL_NONE (0 << WM831X_GPN_PULL_SHIFT)
-#define WM831X_GPIO_PULL_DOWN (1 << WM831X_GPN_PULL_SHIFT)
-#define WM831X_GPIO_PULL_UP (2 << WM831X_GPN_PULL_SHIFT)
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/wm831x/irq.h b/ANDROID_3.4.5/include/linux/mfd/wm831x/irq.h
deleted file mode 100644
index 3a8c9765..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/wm831x/irq.h
+++ /dev/null
@@ -1,764 +0,0 @@
-/*
- * include/linux/mfd/wm831x/irq.h -- Interrupt controller for WM831x
- *
- * Copyright 2009 Wolfson Microelectronics PLC.
- *
- * Author: Mark Brown <broonie@opensource.wolfsonmicro.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 __MFD_WM831X_IRQ_H__
-#define __MFD_WM831X_IRQ_H__
-
-/* Interrupt number assignments within Linux */
-#define WM831X_IRQ_TEMP_THW 0
-#define WM831X_IRQ_GPIO_1 1
-#define WM831X_IRQ_GPIO_2 2
-#define WM831X_IRQ_GPIO_3 3
-#define WM831X_IRQ_GPIO_4 4
-#define WM831X_IRQ_GPIO_5 5
-#define WM831X_IRQ_GPIO_6 6
-#define WM831X_IRQ_GPIO_7 7
-#define WM831X_IRQ_GPIO_8 8
-#define WM831X_IRQ_GPIO_9 9
-#define WM831X_IRQ_GPIO_10 10
-#define WM831X_IRQ_GPIO_11 11
-#define WM831X_IRQ_GPIO_12 12
-#define WM831X_IRQ_GPIO_13 13
-#define WM831X_IRQ_GPIO_14 14
-#define WM831X_IRQ_GPIO_15 15
-#define WM831X_IRQ_GPIO_16 16
-#define WM831X_IRQ_ON 17
-#define WM831X_IRQ_PPM_SYSLO 18
-#define WM831X_IRQ_PPM_PWR_SRC 19
-#define WM831X_IRQ_PPM_USB_CURR 20
-#define WM831X_IRQ_WDOG_TO 21
-#define WM831X_IRQ_RTC_PER 22
-#define WM831X_IRQ_RTC_ALM 23
-#define WM831X_IRQ_CHG_BATT_HOT 24
-#define WM831X_IRQ_CHG_BATT_COLD 25
-#define WM831X_IRQ_CHG_BATT_FAIL 26
-#define WM831X_IRQ_CHG_OV 27
-#define WM831X_IRQ_CHG_END 29
-#define WM831X_IRQ_CHG_TO 30
-#define WM831X_IRQ_CHG_MODE 31
-#define WM831X_IRQ_CHG_START 32
-#define WM831X_IRQ_TCHDATA 33
-#define WM831X_IRQ_TCHPD 34
-#define WM831X_IRQ_AUXADC_DATA 35
-#define WM831X_IRQ_AUXADC_DCOMP1 36
-#define WM831X_IRQ_AUXADC_DCOMP2 37
-#define WM831X_IRQ_AUXADC_DCOMP3 38
-#define WM831X_IRQ_AUXADC_DCOMP4 39
-#define WM831X_IRQ_CS1 40
-#define WM831X_IRQ_CS2 41
-#define WM831X_IRQ_HC_DC1 42
-#define WM831X_IRQ_HC_DC2 43
-#define WM831X_IRQ_UV_LDO1 44
-#define WM831X_IRQ_UV_LDO2 45
-#define WM831X_IRQ_UV_LDO3 46
-#define WM831X_IRQ_UV_LDO4 47
-#define WM831X_IRQ_UV_LDO5 48
-#define WM831X_IRQ_UV_LDO6 49
-#define WM831X_IRQ_UV_LDO7 50
-#define WM831X_IRQ_UV_LDO8 51
-#define WM831X_IRQ_UV_LDO9 52
-#define WM831X_IRQ_UV_LDO10 53
-#define WM831X_IRQ_UV_DC1 54
-#define WM831X_IRQ_UV_DC2 55
-#define WM831X_IRQ_UV_DC3 56
-#define WM831X_IRQ_UV_DC4 57
-
-#define WM831X_NUM_IRQS 58
-
-/*
- * R16400 (0x4010) - System Interrupts
- */
-#define WM831X_PS_INT 0x8000 /* PS_INT */
-#define WM831X_PS_INT_MASK 0x8000 /* PS_INT */
-#define WM831X_PS_INT_SHIFT 15 /* PS_INT */
-#define WM831X_PS_INT_WIDTH 1 /* PS_INT */
-#define WM831X_TEMP_INT 0x4000 /* TEMP_INT */
-#define WM831X_TEMP_INT_MASK 0x4000 /* TEMP_INT */
-#define WM831X_TEMP_INT_SHIFT 14 /* TEMP_INT */
-#define WM831X_TEMP_INT_WIDTH 1 /* TEMP_INT */
-#define WM831X_GP_INT 0x2000 /* GP_INT */
-#define WM831X_GP_INT_MASK 0x2000 /* GP_INT */
-#define WM831X_GP_INT_SHIFT 13 /* GP_INT */
-#define WM831X_GP_INT_WIDTH 1 /* GP_INT */
-#define WM831X_ON_PIN_INT 0x1000 /* ON_PIN_INT */
-#define WM831X_ON_PIN_INT_MASK 0x1000 /* ON_PIN_INT */
-#define WM831X_ON_PIN_INT_SHIFT 12 /* ON_PIN_INT */
-#define WM831X_ON_PIN_INT_WIDTH 1 /* ON_PIN_INT */
-#define WM831X_WDOG_INT 0x0800 /* WDOG_INT */
-#define WM831X_WDOG_INT_MASK 0x0800 /* WDOG_INT */
-#define WM831X_WDOG_INT_SHIFT 11 /* WDOG_INT */
-#define WM831X_WDOG_INT_WIDTH 1 /* WDOG_INT */
-#define WM831X_TCHDATA_INT 0x0400 /* TCHDATA_INT */
-#define WM831X_TCHDATA_INT_MASK 0x0400 /* TCHDATA_INT */
-#define WM831X_TCHDATA_INT_SHIFT 10 /* TCHDATA_INT */
-#define WM831X_TCHDATA_INT_WIDTH 1 /* TCHDATA_INT */
-#define WM831X_TCHPD_INT 0x0200 /* TCHPD_INT */
-#define WM831X_TCHPD_INT_MASK 0x0200 /* TCHPD_INT */
-#define WM831X_TCHPD_INT_SHIFT 9 /* TCHPD_INT */
-#define WM831X_TCHPD_INT_WIDTH 1 /* TCHPD_INT */
-#define WM831X_AUXADC_INT 0x0100 /* AUXADC_INT */
-#define WM831X_AUXADC_INT_MASK 0x0100 /* AUXADC_INT */
-#define WM831X_AUXADC_INT_SHIFT 8 /* AUXADC_INT */
-#define WM831X_AUXADC_INT_WIDTH 1 /* AUXADC_INT */
-#define WM831X_PPM_INT 0x0080 /* PPM_INT */
-#define WM831X_PPM_INT_MASK 0x0080 /* PPM_INT */
-#define WM831X_PPM_INT_SHIFT 7 /* PPM_INT */
-#define WM831X_PPM_INT_WIDTH 1 /* PPM_INT */
-#define WM831X_CS_INT 0x0040 /* CS_INT */
-#define WM831X_CS_INT_MASK 0x0040 /* CS_INT */
-#define WM831X_CS_INT_SHIFT 6 /* CS_INT */
-#define WM831X_CS_INT_WIDTH 1 /* CS_INT */
-#define WM831X_RTC_INT 0x0020 /* RTC_INT */
-#define WM831X_RTC_INT_MASK 0x0020 /* RTC_INT */
-#define WM831X_RTC_INT_SHIFT 5 /* RTC_INT */
-#define WM831X_RTC_INT_WIDTH 1 /* RTC_INT */
-#define WM831X_OTP_INT 0x0010 /* OTP_INT */
-#define WM831X_OTP_INT_MASK 0x0010 /* OTP_INT */
-#define WM831X_OTP_INT_SHIFT 4 /* OTP_INT */
-#define WM831X_OTP_INT_WIDTH 1 /* OTP_INT */
-#define WM831X_CHILD_INT 0x0008 /* CHILD_INT */
-#define WM831X_CHILD_INT_MASK 0x0008 /* CHILD_INT */
-#define WM831X_CHILD_INT_SHIFT 3 /* CHILD_INT */
-#define WM831X_CHILD_INT_WIDTH 1 /* CHILD_INT */
-#define WM831X_CHG_INT 0x0004 /* CHG_INT */
-#define WM831X_CHG_INT_MASK 0x0004 /* CHG_INT */
-#define WM831X_CHG_INT_SHIFT 2 /* CHG_INT */
-#define WM831X_CHG_INT_WIDTH 1 /* CHG_INT */
-#define WM831X_HC_INT 0x0002 /* HC_INT */
-#define WM831X_HC_INT_MASK 0x0002 /* HC_INT */
-#define WM831X_HC_INT_SHIFT 1 /* HC_INT */
-#define WM831X_HC_INT_WIDTH 1 /* HC_INT */
-#define WM831X_UV_INT 0x0001 /* UV_INT */
-#define WM831X_UV_INT_MASK 0x0001 /* UV_INT */
-#define WM831X_UV_INT_SHIFT 0 /* UV_INT */
-#define WM831X_UV_INT_WIDTH 1 /* UV_INT */
-
-/*
- * R16401 (0x4011) - Interrupt Status 1
- */
-#define WM831X_PPM_SYSLO_EINT 0x8000 /* PPM_SYSLO_EINT */
-#define WM831X_PPM_SYSLO_EINT_MASK 0x8000 /* PPM_SYSLO_EINT */
-#define WM831X_PPM_SYSLO_EINT_SHIFT 15 /* PPM_SYSLO_EINT */
-#define WM831X_PPM_SYSLO_EINT_WIDTH 1 /* PPM_SYSLO_EINT */
-#define WM831X_PPM_PWR_SRC_EINT 0x4000 /* PPM_PWR_SRC_EINT */
-#define WM831X_PPM_PWR_SRC_EINT_MASK 0x4000 /* PPM_PWR_SRC_EINT */
-#define WM831X_PPM_PWR_SRC_EINT_SHIFT 14 /* PPM_PWR_SRC_EINT */
-#define WM831X_PPM_PWR_SRC_EINT_WIDTH 1 /* PPM_PWR_SRC_EINT */
-#define WM831X_PPM_USB_CURR_EINT 0x2000 /* PPM_USB_CURR_EINT */
-#define WM831X_PPM_USB_CURR_EINT_MASK 0x2000 /* PPM_USB_CURR_EINT */
-#define WM831X_PPM_USB_CURR_EINT_SHIFT 13 /* PPM_USB_CURR_EINT */
-#define WM831X_PPM_USB_CURR_EINT_WIDTH 1 /* PPM_USB_CURR_EINT */
-#define WM831X_ON_PIN_EINT 0x1000 /* ON_PIN_EINT */
-#define WM831X_ON_PIN_EINT_MASK 0x1000 /* ON_PIN_EINT */
-#define WM831X_ON_PIN_EINT_SHIFT 12 /* ON_PIN_EINT */
-#define WM831X_ON_PIN_EINT_WIDTH 1 /* ON_PIN_EINT */
-#define WM831X_WDOG_TO_EINT 0x0800 /* WDOG_TO_EINT */
-#define WM831X_WDOG_TO_EINT_MASK 0x0800 /* WDOG_TO_EINT */
-#define WM831X_WDOG_TO_EINT_SHIFT 11 /* WDOG_TO_EINT */
-#define WM831X_WDOG_TO_EINT_WIDTH 1 /* WDOG_TO_EINT */
-#define WM831X_TCHDATA_EINT 0x0400 /* TCHDATA_EINT */
-#define WM831X_TCHDATA_EINT_MASK 0x0400 /* TCHDATA_EINT */
-#define WM831X_TCHDATA_EINT_SHIFT 10 /* TCHDATA_EINT */
-#define WM831X_TCHDATA_EINT_WIDTH 1 /* TCHDATA_EINT */
-#define WM831X_TCHPD_EINT 0x0200 /* TCHPD_EINT */
-#define WM831X_TCHPD_EINT_MASK 0x0200 /* TCHPD_EINT */
-#define WM831X_TCHPD_EINT_SHIFT 9 /* TCHPD_EINT */
-#define WM831X_TCHPD_EINT_WIDTH 1 /* TCHPD_EINT */
-#define WM831X_AUXADC_DATA_EINT 0x0100 /* AUXADC_DATA_EINT */
-#define WM831X_AUXADC_DATA_EINT_MASK 0x0100 /* AUXADC_DATA_EINT */
-#define WM831X_AUXADC_DATA_EINT_SHIFT 8 /* AUXADC_DATA_EINT */
-#define WM831X_AUXADC_DATA_EINT_WIDTH 1 /* AUXADC_DATA_EINT */
-#define WM831X_AUXADC_DCOMP4_EINT 0x0080 /* AUXADC_DCOMP4_EINT */
-#define WM831X_AUXADC_DCOMP4_EINT_MASK 0x0080 /* AUXADC_DCOMP4_EINT */
-#define WM831X_AUXADC_DCOMP4_EINT_SHIFT 7 /* AUXADC_DCOMP4_EINT */
-#define WM831X_AUXADC_DCOMP4_EINT_WIDTH 1 /* AUXADC_DCOMP4_EINT */
-#define WM831X_AUXADC_DCOMP3_EINT 0x0040 /* AUXADC_DCOMP3_EINT */
-#define WM831X_AUXADC_DCOMP3_EINT_MASK 0x0040 /* AUXADC_DCOMP3_EINT */
-#define WM831X_AUXADC_DCOMP3_EINT_SHIFT 6 /* AUXADC_DCOMP3_EINT */
-#define WM831X_AUXADC_DCOMP3_EINT_WIDTH 1 /* AUXADC_DCOMP3_EINT */
-#define WM831X_AUXADC_DCOMP2_EINT 0x0020 /* AUXADC_DCOMP2_EINT */
-#define WM831X_AUXADC_DCOMP2_EINT_MASK 0x0020 /* AUXADC_DCOMP2_EINT */
-#define WM831X_AUXADC_DCOMP2_EINT_SHIFT 5 /* AUXADC_DCOMP2_EINT */
-#define WM831X_AUXADC_DCOMP2_EINT_WIDTH 1 /* AUXADC_DCOMP2_EINT */
-#define WM831X_AUXADC_DCOMP1_EINT 0x0010 /* AUXADC_DCOMP1_EINT */
-#define WM831X_AUXADC_DCOMP1_EINT_MASK 0x0010 /* AUXADC_DCOMP1_EINT */
-#define WM831X_AUXADC_DCOMP1_EINT_SHIFT 4 /* AUXADC_DCOMP1_EINT */
-#define WM831X_AUXADC_DCOMP1_EINT_WIDTH 1 /* AUXADC_DCOMP1_EINT */
-#define WM831X_RTC_PER_EINT 0x0008 /* RTC_PER_EINT */
-#define WM831X_RTC_PER_EINT_MASK 0x0008 /* RTC_PER_EINT */
-#define WM831X_RTC_PER_EINT_SHIFT 3 /* RTC_PER_EINT */
-#define WM831X_RTC_PER_EINT_WIDTH 1 /* RTC_PER_EINT */
-#define WM831X_RTC_ALM_EINT 0x0004 /* RTC_ALM_EINT */
-#define WM831X_RTC_ALM_EINT_MASK 0x0004 /* RTC_ALM_EINT */
-#define WM831X_RTC_ALM_EINT_SHIFT 2 /* RTC_ALM_EINT */
-#define WM831X_RTC_ALM_EINT_WIDTH 1 /* RTC_ALM_EINT */
-#define WM831X_TEMP_THW_EINT 0x0002 /* TEMP_THW_EINT */
-#define WM831X_TEMP_THW_EINT_MASK 0x0002 /* TEMP_THW_EINT */
-#define WM831X_TEMP_THW_EINT_SHIFT 1 /* TEMP_THW_EINT */
-#define WM831X_TEMP_THW_EINT_WIDTH 1 /* TEMP_THW_EINT */
-
-/*
- * R16402 (0x4012) - Interrupt Status 2
- */
-#define WM831X_CHG_BATT_HOT_EINT 0x8000 /* CHG_BATT_HOT_EINT */
-#define WM831X_CHG_BATT_HOT_EINT_MASK 0x8000 /* CHG_BATT_HOT_EINT */
-#define WM831X_CHG_BATT_HOT_EINT_SHIFT 15 /* CHG_BATT_HOT_EINT */
-#define WM831X_CHG_BATT_HOT_EINT_WIDTH 1 /* CHG_BATT_HOT_EINT */
-#define WM831X_CHG_BATT_COLD_EINT 0x4000 /* CHG_BATT_COLD_EINT */
-#define WM831X_CHG_BATT_COLD_EINT_MASK 0x4000 /* CHG_BATT_COLD_EINT */
-#define WM831X_CHG_BATT_COLD_EINT_SHIFT 14 /* CHG_BATT_COLD_EINT */
-#define WM831X_CHG_BATT_COLD_EINT_WIDTH 1 /* CHG_BATT_COLD_EINT */
-#define WM831X_CHG_BATT_FAIL_EINT 0x2000 /* CHG_BATT_FAIL_EINT */
-#define WM831X_CHG_BATT_FAIL_EINT_MASK 0x2000 /* CHG_BATT_FAIL_EINT */
-#define WM831X_CHG_BATT_FAIL_EINT_SHIFT 13 /* CHG_BATT_FAIL_EINT */
-#define WM831X_CHG_BATT_FAIL_EINT_WIDTH 1 /* CHG_BATT_FAIL_EINT */
-#define WM831X_CHG_OV_EINT 0x1000 /* CHG_OV_EINT */
-#define WM831X_CHG_OV_EINT_MASK 0x1000 /* CHG_OV_EINT */
-#define WM831X_CHG_OV_EINT_SHIFT 12 /* CHG_OV_EINT */
-#define WM831X_CHG_OV_EINT_WIDTH 1 /* CHG_OV_EINT */
-#define WM831X_CHG_END_EINT 0x0800 /* CHG_END_EINT */
-#define WM831X_CHG_END_EINT_MASK 0x0800 /* CHG_END_EINT */
-#define WM831X_CHG_END_EINT_SHIFT 11 /* CHG_END_EINT */
-#define WM831X_CHG_END_EINT_WIDTH 1 /* CHG_END_EINT */
-#define WM831X_CHG_TO_EINT 0x0400 /* CHG_TO_EINT */
-#define WM831X_CHG_TO_EINT_MASK 0x0400 /* CHG_TO_EINT */
-#define WM831X_CHG_TO_EINT_SHIFT 10 /* CHG_TO_EINT */
-#define WM831X_CHG_TO_EINT_WIDTH 1 /* CHG_TO_EINT */
-#define WM831X_CHG_MODE_EINT 0x0200 /* CHG_MODE_EINT */
-#define WM831X_CHG_MODE_EINT_MASK 0x0200 /* CHG_MODE_EINT */
-#define WM831X_CHG_MODE_EINT_SHIFT 9 /* CHG_MODE_EINT */
-#define WM831X_CHG_MODE_EINT_WIDTH 1 /* CHG_MODE_EINT */
-#define WM831X_CHG_START_EINT 0x0100 /* CHG_START_EINT */
-#define WM831X_CHG_START_EINT_MASK 0x0100 /* CHG_START_EINT */
-#define WM831X_CHG_START_EINT_SHIFT 8 /* CHG_START_EINT */
-#define WM831X_CHG_START_EINT_WIDTH 1 /* CHG_START_EINT */
-#define WM831X_CS2_EINT 0x0080 /* CS2_EINT */
-#define WM831X_CS2_EINT_MASK 0x0080 /* CS2_EINT */
-#define WM831X_CS2_EINT_SHIFT 7 /* CS2_EINT */
-#define WM831X_CS2_EINT_WIDTH 1 /* CS2_EINT */
-#define WM831X_CS1_EINT 0x0040 /* CS1_EINT */
-#define WM831X_CS1_EINT_MASK 0x0040 /* CS1_EINT */
-#define WM831X_CS1_EINT_SHIFT 6 /* CS1_EINT */
-#define WM831X_CS1_EINT_WIDTH 1 /* CS1_EINT */
-#define WM831X_OTP_CMD_END_EINT 0x0020 /* OTP_CMD_END_EINT */
-#define WM831X_OTP_CMD_END_EINT_MASK 0x0020 /* OTP_CMD_END_EINT */
-#define WM831X_OTP_CMD_END_EINT_SHIFT 5 /* OTP_CMD_END_EINT */
-#define WM831X_OTP_CMD_END_EINT_WIDTH 1 /* OTP_CMD_END_EINT */
-#define WM831X_OTP_ERR_EINT 0x0010 /* OTP_ERR_EINT */
-#define WM831X_OTP_ERR_EINT_MASK 0x0010 /* OTP_ERR_EINT */
-#define WM831X_OTP_ERR_EINT_SHIFT 4 /* OTP_ERR_EINT */
-#define WM831X_OTP_ERR_EINT_WIDTH 1 /* OTP_ERR_EINT */
-#define WM831X_PS_POR_EINT 0x0004 /* PS_POR_EINT */
-#define WM831X_PS_POR_EINT_MASK 0x0004 /* PS_POR_EINT */
-#define WM831X_PS_POR_EINT_SHIFT 2 /* PS_POR_EINT */
-#define WM831X_PS_POR_EINT_WIDTH 1 /* PS_POR_EINT */
-#define WM831X_PS_SLEEP_OFF_EINT 0x0002 /* PS_SLEEP_OFF_EINT */
-#define WM831X_PS_SLEEP_OFF_EINT_MASK 0x0002 /* PS_SLEEP_OFF_EINT */
-#define WM831X_PS_SLEEP_OFF_EINT_SHIFT 1 /* PS_SLEEP_OFF_EINT */
-#define WM831X_PS_SLEEP_OFF_EINT_WIDTH 1 /* PS_SLEEP_OFF_EINT */
-#define WM831X_PS_ON_WAKE_EINT 0x0001 /* PS_ON_WAKE_EINT */
-#define WM831X_PS_ON_WAKE_EINT_MASK 0x0001 /* PS_ON_WAKE_EINT */
-#define WM831X_PS_ON_WAKE_EINT_SHIFT 0 /* PS_ON_WAKE_EINT */
-#define WM831X_PS_ON_WAKE_EINT_WIDTH 1 /* PS_ON_WAKE_EINT */
-
-/*
- * R16403 (0x4013) - Interrupt Status 3
- */
-#define WM831X_UV_LDO10_EINT 0x0200 /* UV_LDO10_EINT */
-#define WM831X_UV_LDO10_EINT_MASK 0x0200 /* UV_LDO10_EINT */
-#define WM831X_UV_LDO10_EINT_SHIFT 9 /* UV_LDO10_EINT */
-#define WM831X_UV_LDO10_EINT_WIDTH 1 /* UV_LDO10_EINT */
-#define WM831X_UV_LDO9_EINT 0x0100 /* UV_LDO9_EINT */
-#define WM831X_UV_LDO9_EINT_MASK 0x0100 /* UV_LDO9_EINT */
-#define WM831X_UV_LDO9_EINT_SHIFT 8 /* UV_LDO9_EINT */
-#define WM831X_UV_LDO9_EINT_WIDTH 1 /* UV_LDO9_EINT */
-#define WM831X_UV_LDO8_EINT 0x0080 /* UV_LDO8_EINT */
-#define WM831X_UV_LDO8_EINT_MASK 0x0080 /* UV_LDO8_EINT */
-#define WM831X_UV_LDO8_EINT_SHIFT 7 /* UV_LDO8_EINT */
-#define WM831X_UV_LDO8_EINT_WIDTH 1 /* UV_LDO8_EINT */
-#define WM831X_UV_LDO7_EINT 0x0040 /* UV_LDO7_EINT */
-#define WM831X_UV_LDO7_EINT_MASK 0x0040 /* UV_LDO7_EINT */
-#define WM831X_UV_LDO7_EINT_SHIFT 6 /* UV_LDO7_EINT */
-#define WM831X_UV_LDO7_EINT_WIDTH 1 /* UV_LDO7_EINT */
-#define WM831X_UV_LDO6_EINT 0x0020 /* UV_LDO6_EINT */
-#define WM831X_UV_LDO6_EINT_MASK 0x0020 /* UV_LDO6_EINT */
-#define WM831X_UV_LDO6_EINT_SHIFT 5 /* UV_LDO6_EINT */
-#define WM831X_UV_LDO6_EINT_WIDTH 1 /* UV_LDO6_EINT */
-#define WM831X_UV_LDO5_EINT 0x0010 /* UV_LDO5_EINT */
-#define WM831X_UV_LDO5_EINT_MASK 0x0010 /* UV_LDO5_EINT */
-#define WM831X_UV_LDO5_EINT_SHIFT 4 /* UV_LDO5_EINT */
-#define WM831X_UV_LDO5_EINT_WIDTH 1 /* UV_LDO5_EINT */
-#define WM831X_UV_LDO4_EINT 0x0008 /* UV_LDO4_EINT */
-#define WM831X_UV_LDO4_EINT_MASK 0x0008 /* UV_LDO4_EINT */
-#define WM831X_UV_LDO4_EINT_SHIFT 3 /* UV_LDO4_EINT */
-#define WM831X_UV_LDO4_EINT_WIDTH 1 /* UV_LDO4_EINT */
-#define WM831X_UV_LDO3_EINT 0x0004 /* UV_LDO3_EINT */
-#define WM831X_UV_LDO3_EINT_MASK 0x0004 /* UV_LDO3_EINT */
-#define WM831X_UV_LDO3_EINT_SHIFT 2 /* UV_LDO3_EINT */
-#define WM831X_UV_LDO3_EINT_WIDTH 1 /* UV_LDO3_EINT */
-#define WM831X_UV_LDO2_EINT 0x0002 /* UV_LDO2_EINT */
-#define WM831X_UV_LDO2_EINT_MASK 0x0002 /* UV_LDO2_EINT */
-#define WM831X_UV_LDO2_EINT_SHIFT 1 /* UV_LDO2_EINT */
-#define WM831X_UV_LDO2_EINT_WIDTH 1 /* UV_LDO2_EINT */
-#define WM831X_UV_LDO1_EINT 0x0001 /* UV_LDO1_EINT */
-#define WM831X_UV_LDO1_EINT_MASK 0x0001 /* UV_LDO1_EINT */
-#define WM831X_UV_LDO1_EINT_SHIFT 0 /* UV_LDO1_EINT */
-#define WM831X_UV_LDO1_EINT_WIDTH 1 /* UV_LDO1_EINT */
-
-/*
- * R16404 (0x4014) - Interrupt Status 4
- */
-#define WM831X_HC_DC2_EINT 0x0200 /* HC_DC2_EINT */
-#define WM831X_HC_DC2_EINT_MASK 0x0200 /* HC_DC2_EINT */
-#define WM831X_HC_DC2_EINT_SHIFT 9 /* HC_DC2_EINT */
-#define WM831X_HC_DC2_EINT_WIDTH 1 /* HC_DC2_EINT */
-#define WM831X_HC_DC1_EINT 0x0100 /* HC_DC1_EINT */
-#define WM831X_HC_DC1_EINT_MASK 0x0100 /* HC_DC1_EINT */
-#define WM831X_HC_DC1_EINT_SHIFT 8 /* HC_DC1_EINT */
-#define WM831X_HC_DC1_EINT_WIDTH 1 /* HC_DC1_EINT */
-#define WM831X_UV_DC4_EINT 0x0008 /* UV_DC4_EINT */
-#define WM831X_UV_DC4_EINT_MASK 0x0008 /* UV_DC4_EINT */
-#define WM831X_UV_DC4_EINT_SHIFT 3 /* UV_DC4_EINT */
-#define WM831X_UV_DC4_EINT_WIDTH 1 /* UV_DC4_EINT */
-#define WM831X_UV_DC3_EINT 0x0004 /* UV_DC3_EINT */
-#define WM831X_UV_DC3_EINT_MASK 0x0004 /* UV_DC3_EINT */
-#define WM831X_UV_DC3_EINT_SHIFT 2 /* UV_DC3_EINT */
-#define WM831X_UV_DC3_EINT_WIDTH 1 /* UV_DC3_EINT */
-#define WM831X_UV_DC2_EINT 0x0002 /* UV_DC2_EINT */
-#define WM831X_UV_DC2_EINT_MASK 0x0002 /* UV_DC2_EINT */
-#define WM831X_UV_DC2_EINT_SHIFT 1 /* UV_DC2_EINT */
-#define WM831X_UV_DC2_EINT_WIDTH 1 /* UV_DC2_EINT */
-#define WM831X_UV_DC1_EINT 0x0001 /* UV_DC1_EINT */
-#define WM831X_UV_DC1_EINT_MASK 0x0001 /* UV_DC1_EINT */
-#define WM831X_UV_DC1_EINT_SHIFT 0 /* UV_DC1_EINT */
-#define WM831X_UV_DC1_EINT_WIDTH 1 /* UV_DC1_EINT */
-
-/*
- * R16405 (0x4015) - Interrupt Status 5
- */
-#define WM831X_GP16_EINT 0x8000 /* GP16_EINT */
-#define WM831X_GP16_EINT_MASK 0x8000 /* GP16_EINT */
-#define WM831X_GP16_EINT_SHIFT 15 /* GP16_EINT */
-#define WM831X_GP16_EINT_WIDTH 1 /* GP16_EINT */
-#define WM831X_GP15_EINT 0x4000 /* GP15_EINT */
-#define WM831X_GP15_EINT_MASK 0x4000 /* GP15_EINT */
-#define WM831X_GP15_EINT_SHIFT 14 /* GP15_EINT */
-#define WM831X_GP15_EINT_WIDTH 1 /* GP15_EINT */
-#define WM831X_GP14_EINT 0x2000 /* GP14_EINT */
-#define WM831X_GP14_EINT_MASK 0x2000 /* GP14_EINT */
-#define WM831X_GP14_EINT_SHIFT 13 /* GP14_EINT */
-#define WM831X_GP14_EINT_WIDTH 1 /* GP14_EINT */
-#define WM831X_GP13_EINT 0x1000 /* GP13_EINT */
-#define WM831X_GP13_EINT_MASK 0x1000 /* GP13_EINT */
-#define WM831X_GP13_EINT_SHIFT 12 /* GP13_EINT */
-#define WM831X_GP13_EINT_WIDTH 1 /* GP13_EINT */
-#define WM831X_GP12_EINT 0x0800 /* GP12_EINT */
-#define WM831X_GP12_EINT_MASK 0x0800 /* GP12_EINT */
-#define WM831X_GP12_EINT_SHIFT 11 /* GP12_EINT */
-#define WM831X_GP12_EINT_WIDTH 1 /* GP12_EINT */
-#define WM831X_GP11_EINT 0x0400 /* GP11_EINT */
-#define WM831X_GP11_EINT_MASK 0x0400 /* GP11_EINT */
-#define WM831X_GP11_EINT_SHIFT 10 /* GP11_EINT */
-#define WM831X_GP11_EINT_WIDTH 1 /* GP11_EINT */
-#define WM831X_GP10_EINT 0x0200 /* GP10_EINT */
-#define WM831X_GP10_EINT_MASK 0x0200 /* GP10_EINT */
-#define WM831X_GP10_EINT_SHIFT 9 /* GP10_EINT */
-#define WM831X_GP10_EINT_WIDTH 1 /* GP10_EINT */
-#define WM831X_GP9_EINT 0x0100 /* GP9_EINT */
-#define WM831X_GP9_EINT_MASK 0x0100 /* GP9_EINT */
-#define WM831X_GP9_EINT_SHIFT 8 /* GP9_EINT */
-#define WM831X_GP9_EINT_WIDTH 1 /* GP9_EINT */
-#define WM831X_GP8_EINT 0x0080 /* GP8_EINT */
-#define WM831X_GP8_EINT_MASK 0x0080 /* GP8_EINT */
-#define WM831X_GP8_EINT_SHIFT 7 /* GP8_EINT */
-#define WM831X_GP8_EINT_WIDTH 1 /* GP8_EINT */
-#define WM831X_GP7_EINT 0x0040 /* GP7_EINT */
-#define WM831X_GP7_EINT_MASK 0x0040 /* GP7_EINT */
-#define WM831X_GP7_EINT_SHIFT 6 /* GP7_EINT */
-#define WM831X_GP7_EINT_WIDTH 1 /* GP7_EINT */
-#define WM831X_GP6_EINT 0x0020 /* GP6_EINT */
-#define WM831X_GP6_EINT_MASK 0x0020 /* GP6_EINT */
-#define WM831X_GP6_EINT_SHIFT 5 /* GP6_EINT */
-#define WM831X_GP6_EINT_WIDTH 1 /* GP6_EINT */
-#define WM831X_GP5_EINT 0x0010 /* GP5_EINT */
-#define WM831X_GP5_EINT_MASK 0x0010 /* GP5_EINT */
-#define WM831X_GP5_EINT_SHIFT 4 /* GP5_EINT */
-#define WM831X_GP5_EINT_WIDTH 1 /* GP5_EINT */
-#define WM831X_GP4_EINT 0x0008 /* GP4_EINT */
-#define WM831X_GP4_EINT_MASK 0x0008 /* GP4_EINT */
-#define WM831X_GP4_EINT_SHIFT 3 /* GP4_EINT */
-#define WM831X_GP4_EINT_WIDTH 1 /* GP4_EINT */
-#define WM831X_GP3_EINT 0x0004 /* GP3_EINT */
-#define WM831X_GP3_EINT_MASK 0x0004 /* GP3_EINT */
-#define WM831X_GP3_EINT_SHIFT 2 /* GP3_EINT */
-#define WM831X_GP3_EINT_WIDTH 1 /* GP3_EINT */
-#define WM831X_GP2_EINT 0x0002 /* GP2_EINT */
-#define WM831X_GP2_EINT_MASK 0x0002 /* GP2_EINT */
-#define WM831X_GP2_EINT_SHIFT 1 /* GP2_EINT */
-#define WM831X_GP2_EINT_WIDTH 1 /* GP2_EINT */
-#define WM831X_GP1_EINT 0x0001 /* GP1_EINT */
-#define WM831X_GP1_EINT_MASK 0x0001 /* GP1_EINT */
-#define WM831X_GP1_EINT_SHIFT 0 /* GP1_EINT */
-#define WM831X_GP1_EINT_WIDTH 1 /* GP1_EINT */
-
-/*
- * R16407 (0x4017) - IRQ Config
- */
-#define WM831X_IRQ_OD 0x0002 /* IRQ_OD */
-#define WM831X_IRQ_OD_MASK 0x0002 /* IRQ_OD */
-#define WM831X_IRQ_OD_SHIFT 1 /* IRQ_OD */
-#define WM831X_IRQ_OD_WIDTH 1 /* IRQ_OD */
-#define WM831X_IM_IRQ 0x0001 /* IM_IRQ */
-#define WM831X_IM_IRQ_MASK 0x0001 /* IM_IRQ */
-#define WM831X_IM_IRQ_SHIFT 0 /* IM_IRQ */
-#define WM831X_IM_IRQ_WIDTH 1 /* IM_IRQ */
-
-/*
- * R16408 (0x4018) - System Interrupts Mask
- */
-#define WM831X_IM_PS_INT 0x8000 /* IM_PS_INT */
-#define WM831X_IM_PS_INT_MASK 0x8000 /* IM_PS_INT */
-#define WM831X_IM_PS_INT_SHIFT 15 /* IM_PS_INT */
-#define WM831X_IM_PS_INT_WIDTH 1 /* IM_PS_INT */
-#define WM831X_IM_TEMP_INT 0x4000 /* IM_TEMP_INT */
-#define WM831X_IM_TEMP_INT_MASK 0x4000 /* IM_TEMP_INT */
-#define WM831X_IM_TEMP_INT_SHIFT 14 /* IM_TEMP_INT */
-#define WM831X_IM_TEMP_INT_WIDTH 1 /* IM_TEMP_INT */
-#define WM831X_IM_GP_INT 0x2000 /* IM_GP_INT */
-#define WM831X_IM_GP_INT_MASK 0x2000 /* IM_GP_INT */
-#define WM831X_IM_GP_INT_SHIFT 13 /* IM_GP_INT */
-#define WM831X_IM_GP_INT_WIDTH 1 /* IM_GP_INT */
-#define WM831X_IM_ON_PIN_INT 0x1000 /* IM_ON_PIN_INT */
-#define WM831X_IM_ON_PIN_INT_MASK 0x1000 /* IM_ON_PIN_INT */
-#define WM831X_IM_ON_PIN_INT_SHIFT 12 /* IM_ON_PIN_INT */
-#define WM831X_IM_ON_PIN_INT_WIDTH 1 /* IM_ON_PIN_INT */
-#define WM831X_IM_WDOG_INT 0x0800 /* IM_WDOG_INT */
-#define WM831X_IM_WDOG_INT_MASK 0x0800 /* IM_WDOG_INT */
-#define WM831X_IM_WDOG_INT_SHIFT 11 /* IM_WDOG_INT */
-#define WM831X_IM_WDOG_INT_WIDTH 1 /* IM_WDOG_INT */
-#define WM831X_IM_TCHDATA_INT 0x0400 /* IM_TCHDATA_INT */
-#define WM831X_IM_TCHDATA_INT_MASK 0x0400 /* IM_TCHDATA_INT */
-#define WM831X_IM_TCHDATA_INT_SHIFT 10 /* IM_TCHDATA_INT */
-#define WM831X_IM_TCHDATA_INT_WIDTH 1 /* IM_TCHDATA_INT */
-#define WM831X_IM_TCHPD_INT 0x0200 /* IM_TCHPD_INT */
-#define WM831X_IM_TCHPD_INT_MASK 0x0200 /* IM_TCHPD_INT */
-#define WM831X_IM_TCHPD_INT_SHIFT 9 /* IM_TCHPD_INT */
-#define WM831X_IM_TCHPD_INT_WIDTH 1 /* IM_TCHPD_INT */
-#define WM831X_IM_AUXADC_INT 0x0100 /* IM_AUXADC_INT */
-#define WM831X_IM_AUXADC_INT_MASK 0x0100 /* IM_AUXADC_INT */
-#define WM831X_IM_AUXADC_INT_SHIFT 8 /* IM_AUXADC_INT */
-#define WM831X_IM_AUXADC_INT_WIDTH 1 /* IM_AUXADC_INT */
-#define WM831X_IM_PPM_INT 0x0080 /* IM_PPM_INT */
-#define WM831X_IM_PPM_INT_MASK 0x0080 /* IM_PPM_INT */
-#define WM831X_IM_PPM_INT_SHIFT 7 /* IM_PPM_INT */
-#define WM831X_IM_PPM_INT_WIDTH 1 /* IM_PPM_INT */
-#define WM831X_IM_CS_INT 0x0040 /* IM_CS_INT */
-#define WM831X_IM_CS_INT_MASK 0x0040 /* IM_CS_INT */
-#define WM831X_IM_CS_INT_SHIFT 6 /* IM_CS_INT */
-#define WM831X_IM_CS_INT_WIDTH 1 /* IM_CS_INT */
-#define WM831X_IM_RTC_INT 0x0020 /* IM_RTC_INT */
-#define WM831X_IM_RTC_INT_MASK 0x0020 /* IM_RTC_INT */
-#define WM831X_IM_RTC_INT_SHIFT 5 /* IM_RTC_INT */
-#define WM831X_IM_RTC_INT_WIDTH 1 /* IM_RTC_INT */
-#define WM831X_IM_OTP_INT 0x0010 /* IM_OTP_INT */
-#define WM831X_IM_OTP_INT_MASK 0x0010 /* IM_OTP_INT */
-#define WM831X_IM_OTP_INT_SHIFT 4 /* IM_OTP_INT */
-#define WM831X_IM_OTP_INT_WIDTH 1 /* IM_OTP_INT */
-#define WM831X_IM_CHILD_INT 0x0008 /* IM_CHILD_INT */
-#define WM831X_IM_CHILD_INT_MASK 0x0008 /* IM_CHILD_INT */
-#define WM831X_IM_CHILD_INT_SHIFT 3 /* IM_CHILD_INT */
-#define WM831X_IM_CHILD_INT_WIDTH 1 /* IM_CHILD_INT */
-#define WM831X_IM_CHG_INT 0x0004 /* IM_CHG_INT */
-#define WM831X_IM_CHG_INT_MASK 0x0004 /* IM_CHG_INT */
-#define WM831X_IM_CHG_INT_SHIFT 2 /* IM_CHG_INT */
-#define WM831X_IM_CHG_INT_WIDTH 1 /* IM_CHG_INT */
-#define WM831X_IM_HC_INT 0x0002 /* IM_HC_INT */
-#define WM831X_IM_HC_INT_MASK 0x0002 /* IM_HC_INT */
-#define WM831X_IM_HC_INT_SHIFT 1 /* IM_HC_INT */
-#define WM831X_IM_HC_INT_WIDTH 1 /* IM_HC_INT */
-#define WM831X_IM_UV_INT 0x0001 /* IM_UV_INT */
-#define WM831X_IM_UV_INT_MASK 0x0001 /* IM_UV_INT */
-#define WM831X_IM_UV_INT_SHIFT 0 /* IM_UV_INT */
-#define WM831X_IM_UV_INT_WIDTH 1 /* IM_UV_INT */
-
-/*
- * R16409 (0x4019) - Interrupt Status 1 Mask
- */
-#define WM831X_IM_PPM_SYSLO_EINT 0x8000 /* IM_PPM_SYSLO_EINT */
-#define WM831X_IM_PPM_SYSLO_EINT_MASK 0x8000 /* IM_PPM_SYSLO_EINT */
-#define WM831X_IM_PPM_SYSLO_EINT_SHIFT 15 /* IM_PPM_SYSLO_EINT */
-#define WM831X_IM_PPM_SYSLO_EINT_WIDTH 1 /* IM_PPM_SYSLO_EINT */
-#define WM831X_IM_PPM_PWR_SRC_EINT 0x4000 /* IM_PPM_PWR_SRC_EINT */
-#define WM831X_IM_PPM_PWR_SRC_EINT_MASK 0x4000 /* IM_PPM_PWR_SRC_EINT */
-#define WM831X_IM_PPM_PWR_SRC_EINT_SHIFT 14 /* IM_PPM_PWR_SRC_EINT */
-#define WM831X_IM_PPM_PWR_SRC_EINT_WIDTH 1 /* IM_PPM_PWR_SRC_EINT */
-#define WM831X_IM_PPM_USB_CURR_EINT 0x2000 /* IM_PPM_USB_CURR_EINT */
-#define WM831X_IM_PPM_USB_CURR_EINT_MASK 0x2000 /* IM_PPM_USB_CURR_EINT */
-#define WM831X_IM_PPM_USB_CURR_EINT_SHIFT 13 /* IM_PPM_USB_CURR_EINT */
-#define WM831X_IM_PPM_USB_CURR_EINT_WIDTH 1 /* IM_PPM_USB_CURR_EINT */
-#define WM831X_IM_ON_PIN_EINT 0x1000 /* IM_ON_PIN_EINT */
-#define WM831X_IM_ON_PIN_EINT_MASK 0x1000 /* IM_ON_PIN_EINT */
-#define WM831X_IM_ON_PIN_EINT_SHIFT 12 /* IM_ON_PIN_EINT */
-#define WM831X_IM_ON_PIN_EINT_WIDTH 1 /* IM_ON_PIN_EINT */
-#define WM831X_IM_WDOG_TO_EINT 0x0800 /* IM_WDOG_TO_EINT */
-#define WM831X_IM_WDOG_TO_EINT_MASK 0x0800 /* IM_WDOG_TO_EINT */
-#define WM831X_IM_WDOG_TO_EINT_SHIFT 11 /* IM_WDOG_TO_EINT */
-#define WM831X_IM_WDOG_TO_EINT_WIDTH 1 /* IM_WDOG_TO_EINT */
-#define WM831X_IM_TCHDATA_EINT 0x0400 /* IM_TCHDATA_EINT */
-#define WM831X_IM_TCHDATA_EINT_MASK 0x0400 /* IM_TCHDATA_EINT */
-#define WM831X_IM_TCHDATA_EINT_SHIFT 10 /* IM_TCHDATA_EINT */
-#define WM831X_IM_TCHDATA_EINT_WIDTH 1 /* IM_TCHDATA_EINT */
-#define WM831X_IM_TCHPD_EINT 0x0200 /* IM_TCHPD_EINT */
-#define WM831X_IM_TCHPD_EINT_MASK 0x0200 /* IM_TCHPD_EINT */
-#define WM831X_IM_TCHPD_EINT_SHIFT 9 /* IM_TCHPD_EINT */
-#define WM831X_IM_TCHPD_EINT_WIDTH 1 /* IM_TCHPD_EINT */
-#define WM831X_IM_AUXADC_DATA_EINT 0x0100 /* IM_AUXADC_DATA_EINT */
-#define WM831X_IM_AUXADC_DATA_EINT_MASK 0x0100 /* IM_AUXADC_DATA_EINT */
-#define WM831X_IM_AUXADC_DATA_EINT_SHIFT 8 /* IM_AUXADC_DATA_EINT */
-#define WM831X_IM_AUXADC_DATA_EINT_WIDTH 1 /* IM_AUXADC_DATA_EINT */
-#define WM831X_IM_AUXADC_DCOMP4_EINT 0x0080 /* IM_AUXADC_DCOMP4_EINT */
-#define WM831X_IM_AUXADC_DCOMP4_EINT_MASK 0x0080 /* IM_AUXADC_DCOMP4_EINT */
-#define WM831X_IM_AUXADC_DCOMP4_EINT_SHIFT 7 /* IM_AUXADC_DCOMP4_EINT */
-#define WM831X_IM_AUXADC_DCOMP4_EINT_WIDTH 1 /* IM_AUXADC_DCOMP4_EINT */
-#define WM831X_IM_AUXADC_DCOMP3_EINT 0x0040 /* IM_AUXADC_DCOMP3_EINT */
-#define WM831X_IM_AUXADC_DCOMP3_EINT_MASK 0x0040 /* IM_AUXADC_DCOMP3_EINT */
-#define WM831X_IM_AUXADC_DCOMP3_EINT_SHIFT 6 /* IM_AUXADC_DCOMP3_EINT */
-#define WM831X_IM_AUXADC_DCOMP3_EINT_WIDTH 1 /* IM_AUXADC_DCOMP3_EINT */
-#define WM831X_IM_AUXADC_DCOMP2_EINT 0x0020 /* IM_AUXADC_DCOMP2_EINT */
-#define WM831X_IM_AUXADC_DCOMP2_EINT_MASK 0x0020 /* IM_AUXADC_DCOMP2_EINT */
-#define WM831X_IM_AUXADC_DCOMP2_EINT_SHIFT 5 /* IM_AUXADC_DCOMP2_EINT */
-#define WM831X_IM_AUXADC_DCOMP2_EINT_WIDTH 1 /* IM_AUXADC_DCOMP2_EINT */
-#define WM831X_IM_AUXADC_DCOMP1_EINT 0x0010 /* IM_AUXADC_DCOMP1_EINT */
-#define WM831X_IM_AUXADC_DCOMP1_EINT_MASK 0x0010 /* IM_AUXADC_DCOMP1_EINT */
-#define WM831X_IM_AUXADC_DCOMP1_EINT_SHIFT 4 /* IM_AUXADC_DCOMP1_EINT */
-#define WM831X_IM_AUXADC_DCOMP1_EINT_WIDTH 1 /* IM_AUXADC_DCOMP1_EINT */
-#define WM831X_IM_RTC_PER_EINT 0x0008 /* IM_RTC_PER_EINT */
-#define WM831X_IM_RTC_PER_EINT_MASK 0x0008 /* IM_RTC_PER_EINT */
-#define WM831X_IM_RTC_PER_EINT_SHIFT 3 /* IM_RTC_PER_EINT */
-#define WM831X_IM_RTC_PER_EINT_WIDTH 1 /* IM_RTC_PER_EINT */
-#define WM831X_IM_RTC_ALM_EINT 0x0004 /* IM_RTC_ALM_EINT */
-#define WM831X_IM_RTC_ALM_EINT_MASK 0x0004 /* IM_RTC_ALM_EINT */
-#define WM831X_IM_RTC_ALM_EINT_SHIFT 2 /* IM_RTC_ALM_EINT */
-#define WM831X_IM_RTC_ALM_EINT_WIDTH 1 /* IM_RTC_ALM_EINT */
-#define WM831X_IM_TEMP_THW_EINT 0x0002 /* IM_TEMP_THW_EINT */
-#define WM831X_IM_TEMP_THW_EINT_MASK 0x0002 /* IM_TEMP_THW_EINT */
-#define WM831X_IM_TEMP_THW_EINT_SHIFT 1 /* IM_TEMP_THW_EINT */
-#define WM831X_IM_TEMP_THW_EINT_WIDTH 1 /* IM_TEMP_THW_EINT */
-
-/*
- * R16410 (0x401A) - Interrupt Status 2 Mask
- */
-#define WM831X_IM_CHG_BATT_HOT_EINT 0x8000 /* IM_CHG_BATT_HOT_EINT */
-#define WM831X_IM_CHG_BATT_HOT_EINT_MASK 0x8000 /* IM_CHG_BATT_HOT_EINT */
-#define WM831X_IM_CHG_BATT_HOT_EINT_SHIFT 15 /* IM_CHG_BATT_HOT_EINT */
-#define WM831X_IM_CHG_BATT_HOT_EINT_WIDTH 1 /* IM_CHG_BATT_HOT_EINT */
-#define WM831X_IM_CHG_BATT_COLD_EINT 0x4000 /* IM_CHG_BATT_COLD_EINT */
-#define WM831X_IM_CHG_BATT_COLD_EINT_MASK 0x4000 /* IM_CHG_BATT_COLD_EINT */
-#define WM831X_IM_CHG_BATT_COLD_EINT_SHIFT 14 /* IM_CHG_BATT_COLD_EINT */
-#define WM831X_IM_CHG_BATT_COLD_EINT_WIDTH 1 /* IM_CHG_BATT_COLD_EINT */
-#define WM831X_IM_CHG_BATT_FAIL_EINT 0x2000 /* IM_CHG_BATT_FAIL_EINT */
-#define WM831X_IM_CHG_BATT_FAIL_EINT_MASK 0x2000 /* IM_CHG_BATT_FAIL_EINT */
-#define WM831X_IM_CHG_BATT_FAIL_EINT_SHIFT 13 /* IM_CHG_BATT_FAIL_EINT */
-#define WM831X_IM_CHG_BATT_FAIL_EINT_WIDTH 1 /* IM_CHG_BATT_FAIL_EINT */
-#define WM831X_IM_CHG_OV_EINT 0x1000 /* IM_CHG_OV_EINT */
-#define WM831X_IM_CHG_OV_EINT_MASK 0x1000 /* IM_CHG_OV_EINT */
-#define WM831X_IM_CHG_OV_EINT_SHIFT 12 /* IM_CHG_OV_EINT */
-#define WM831X_IM_CHG_OV_EINT_WIDTH 1 /* IM_CHG_OV_EINT */
-#define WM831X_IM_CHG_END_EINT 0x0800 /* IM_CHG_END_EINT */
-#define WM831X_IM_CHG_END_EINT_MASK 0x0800 /* IM_CHG_END_EINT */
-#define WM831X_IM_CHG_END_EINT_SHIFT 11 /* IM_CHG_END_EINT */
-#define WM831X_IM_CHG_END_EINT_WIDTH 1 /* IM_CHG_END_EINT */
-#define WM831X_IM_CHG_TO_EINT 0x0400 /* IM_CHG_TO_EINT */
-#define WM831X_IM_CHG_TO_EINT_MASK 0x0400 /* IM_CHG_TO_EINT */
-#define WM831X_IM_CHG_TO_EINT_SHIFT 10 /* IM_CHG_TO_EINT */
-#define WM831X_IM_CHG_TO_EINT_WIDTH 1 /* IM_CHG_TO_EINT */
-#define WM831X_IM_CHG_MODE_EINT 0x0200 /* IM_CHG_MODE_EINT */
-#define WM831X_IM_CHG_MODE_EINT_MASK 0x0200 /* IM_CHG_MODE_EINT */
-#define WM831X_IM_CHG_MODE_EINT_SHIFT 9 /* IM_CHG_MODE_EINT */
-#define WM831X_IM_CHG_MODE_EINT_WIDTH 1 /* IM_CHG_MODE_EINT */
-#define WM831X_IM_CHG_START_EINT 0x0100 /* IM_CHG_START_EINT */
-#define WM831X_IM_CHG_START_EINT_MASK 0x0100 /* IM_CHG_START_EINT */
-#define WM831X_IM_CHG_START_EINT_SHIFT 8 /* IM_CHG_START_EINT */
-#define WM831X_IM_CHG_START_EINT_WIDTH 1 /* IM_CHG_START_EINT */
-#define WM831X_IM_CS2_EINT 0x0080 /* IM_CS2_EINT */
-#define WM831X_IM_CS2_EINT_MASK 0x0080 /* IM_CS2_EINT */
-#define WM831X_IM_CS2_EINT_SHIFT 7 /* IM_CS2_EINT */
-#define WM831X_IM_CS2_EINT_WIDTH 1 /* IM_CS2_EINT */
-#define WM831X_IM_CS1_EINT 0x0040 /* IM_CS1_EINT */
-#define WM831X_IM_CS1_EINT_MASK 0x0040 /* IM_CS1_EINT */
-#define WM831X_IM_CS1_EINT_SHIFT 6 /* IM_CS1_EINT */
-#define WM831X_IM_CS1_EINT_WIDTH 1 /* IM_CS1_EINT */
-#define WM831X_IM_OTP_CMD_END_EINT 0x0020 /* IM_OTP_CMD_END_EINT */
-#define WM831X_IM_OTP_CMD_END_EINT_MASK 0x0020 /* IM_OTP_CMD_END_EINT */
-#define WM831X_IM_OTP_CMD_END_EINT_SHIFT 5 /* IM_OTP_CMD_END_EINT */
-#define WM831X_IM_OTP_CMD_END_EINT_WIDTH 1 /* IM_OTP_CMD_END_EINT */
-#define WM831X_IM_OTP_ERR_EINT 0x0010 /* IM_OTP_ERR_EINT */
-#define WM831X_IM_OTP_ERR_EINT_MASK 0x0010 /* IM_OTP_ERR_EINT */
-#define WM831X_IM_OTP_ERR_EINT_SHIFT 4 /* IM_OTP_ERR_EINT */
-#define WM831X_IM_OTP_ERR_EINT_WIDTH 1 /* IM_OTP_ERR_EINT */
-#define WM831X_IM_PS_POR_EINT 0x0004 /* IM_PS_POR_EINT */
-#define WM831X_IM_PS_POR_EINT_MASK 0x0004 /* IM_PS_POR_EINT */
-#define WM831X_IM_PS_POR_EINT_SHIFT 2 /* IM_PS_POR_EINT */
-#define WM831X_IM_PS_POR_EINT_WIDTH 1 /* IM_PS_POR_EINT */
-#define WM831X_IM_PS_SLEEP_OFF_EINT 0x0002 /* IM_PS_SLEEP_OFF_EINT */
-#define WM831X_IM_PS_SLEEP_OFF_EINT_MASK 0x0002 /* IM_PS_SLEEP_OFF_EINT */
-#define WM831X_IM_PS_SLEEP_OFF_EINT_SHIFT 1 /* IM_PS_SLEEP_OFF_EINT */
-#define WM831X_IM_PS_SLEEP_OFF_EINT_WIDTH 1 /* IM_PS_SLEEP_OFF_EINT */
-#define WM831X_IM_PS_ON_WAKE_EINT 0x0001 /* IM_PS_ON_WAKE_EINT */
-#define WM831X_IM_PS_ON_WAKE_EINT_MASK 0x0001 /* IM_PS_ON_WAKE_EINT */
-#define WM831X_IM_PS_ON_WAKE_EINT_SHIFT 0 /* IM_PS_ON_WAKE_EINT */
-#define WM831X_IM_PS_ON_WAKE_EINT_WIDTH 1 /* IM_PS_ON_WAKE_EINT */
-
-/*
- * R16411 (0x401B) - Interrupt Status 3 Mask
- */
-#define WM831X_IM_UV_LDO10_EINT 0x0200 /* IM_UV_LDO10_EINT */
-#define WM831X_IM_UV_LDO10_EINT_MASK 0x0200 /* IM_UV_LDO10_EINT */
-#define WM831X_IM_UV_LDO10_EINT_SHIFT 9 /* IM_UV_LDO10_EINT */
-#define WM831X_IM_UV_LDO10_EINT_WIDTH 1 /* IM_UV_LDO10_EINT */
-#define WM831X_IM_UV_LDO9_EINT 0x0100 /* IM_UV_LDO9_EINT */
-#define WM831X_IM_UV_LDO9_EINT_MASK 0x0100 /* IM_UV_LDO9_EINT */
-#define WM831X_IM_UV_LDO9_EINT_SHIFT 8 /* IM_UV_LDO9_EINT */
-#define WM831X_IM_UV_LDO9_EINT_WIDTH 1 /* IM_UV_LDO9_EINT */
-#define WM831X_IM_UV_LDO8_EINT 0x0080 /* IM_UV_LDO8_EINT */
-#define WM831X_IM_UV_LDO8_EINT_MASK 0x0080 /* IM_UV_LDO8_EINT */
-#define WM831X_IM_UV_LDO8_EINT_SHIFT 7 /* IM_UV_LDO8_EINT */
-#define WM831X_IM_UV_LDO8_EINT_WIDTH 1 /* IM_UV_LDO8_EINT */
-#define WM831X_IM_UV_LDO7_EINT 0x0040 /* IM_UV_LDO7_EINT */
-#define WM831X_IM_UV_LDO7_EINT_MASK 0x0040 /* IM_UV_LDO7_EINT */
-#define WM831X_IM_UV_LDO7_EINT_SHIFT 6 /* IM_UV_LDO7_EINT */
-#define WM831X_IM_UV_LDO7_EINT_WIDTH 1 /* IM_UV_LDO7_EINT */
-#define WM831X_IM_UV_LDO6_EINT 0x0020 /* IM_UV_LDO6_EINT */
-#define WM831X_IM_UV_LDO6_EINT_MASK 0x0020 /* IM_UV_LDO6_EINT */
-#define WM831X_IM_UV_LDO6_EINT_SHIFT 5 /* IM_UV_LDO6_EINT */
-#define WM831X_IM_UV_LDO6_EINT_WIDTH 1 /* IM_UV_LDO6_EINT */
-#define WM831X_IM_UV_LDO5_EINT 0x0010 /* IM_UV_LDO5_EINT */
-#define WM831X_IM_UV_LDO5_EINT_MASK 0x0010 /* IM_UV_LDO5_EINT */
-#define WM831X_IM_UV_LDO5_EINT_SHIFT 4 /* IM_UV_LDO5_EINT */
-#define WM831X_IM_UV_LDO5_EINT_WIDTH 1 /* IM_UV_LDO5_EINT */
-#define WM831X_IM_UV_LDO4_EINT 0x0008 /* IM_UV_LDO4_EINT */
-#define WM831X_IM_UV_LDO4_EINT_MASK 0x0008 /* IM_UV_LDO4_EINT */
-#define WM831X_IM_UV_LDO4_EINT_SHIFT 3 /* IM_UV_LDO4_EINT */
-#define WM831X_IM_UV_LDO4_EINT_WIDTH 1 /* IM_UV_LDO4_EINT */
-#define WM831X_IM_UV_LDO3_EINT 0x0004 /* IM_UV_LDO3_EINT */
-#define WM831X_IM_UV_LDO3_EINT_MASK 0x0004 /* IM_UV_LDO3_EINT */
-#define WM831X_IM_UV_LDO3_EINT_SHIFT 2 /* IM_UV_LDO3_EINT */
-#define WM831X_IM_UV_LDO3_EINT_WIDTH 1 /* IM_UV_LDO3_EINT */
-#define WM831X_IM_UV_LDO2_EINT 0x0002 /* IM_UV_LDO2_EINT */
-#define WM831X_IM_UV_LDO2_EINT_MASK 0x0002 /* IM_UV_LDO2_EINT */
-#define WM831X_IM_UV_LDO2_EINT_SHIFT 1 /* IM_UV_LDO2_EINT */
-#define WM831X_IM_UV_LDO2_EINT_WIDTH 1 /* IM_UV_LDO2_EINT */
-#define WM831X_IM_UV_LDO1_EINT 0x0001 /* IM_UV_LDO1_EINT */
-#define WM831X_IM_UV_LDO1_EINT_MASK 0x0001 /* IM_UV_LDO1_EINT */
-#define WM831X_IM_UV_LDO1_EINT_SHIFT 0 /* IM_UV_LDO1_EINT */
-#define WM831X_IM_UV_LDO1_EINT_WIDTH 1 /* IM_UV_LDO1_EINT */
-
-/*
- * R16412 (0x401C) - Interrupt Status 4 Mask
- */
-#define WM831X_IM_HC_DC2_EINT 0x0200 /* IM_HC_DC2_EINT */
-#define WM831X_IM_HC_DC2_EINT_MASK 0x0200 /* IM_HC_DC2_EINT */
-#define WM831X_IM_HC_DC2_EINT_SHIFT 9 /* IM_HC_DC2_EINT */
-#define WM831X_IM_HC_DC2_EINT_WIDTH 1 /* IM_HC_DC2_EINT */
-#define WM831X_IM_HC_DC1_EINT 0x0100 /* IM_HC_DC1_EINT */
-#define WM831X_IM_HC_DC1_EINT_MASK 0x0100 /* IM_HC_DC1_EINT */
-#define WM831X_IM_HC_DC1_EINT_SHIFT 8 /* IM_HC_DC1_EINT */
-#define WM831X_IM_HC_DC1_EINT_WIDTH 1 /* IM_HC_DC1_EINT */
-#define WM831X_IM_UV_DC4_EINT 0x0008 /* IM_UV_DC4_EINT */
-#define WM831X_IM_UV_DC4_EINT_MASK 0x0008 /* IM_UV_DC4_EINT */
-#define WM831X_IM_UV_DC4_EINT_SHIFT 3 /* IM_UV_DC4_EINT */
-#define WM831X_IM_UV_DC4_EINT_WIDTH 1 /* IM_UV_DC4_EINT */
-#define WM831X_IM_UV_DC3_EINT 0x0004 /* IM_UV_DC3_EINT */
-#define WM831X_IM_UV_DC3_EINT_MASK 0x0004 /* IM_UV_DC3_EINT */
-#define WM831X_IM_UV_DC3_EINT_SHIFT 2 /* IM_UV_DC3_EINT */
-#define WM831X_IM_UV_DC3_EINT_WIDTH 1 /* IM_UV_DC3_EINT */
-#define WM831X_IM_UV_DC2_EINT 0x0002 /* IM_UV_DC2_EINT */
-#define WM831X_IM_UV_DC2_EINT_MASK 0x0002 /* IM_UV_DC2_EINT */
-#define WM831X_IM_UV_DC2_EINT_SHIFT 1 /* IM_UV_DC2_EINT */
-#define WM831X_IM_UV_DC2_EINT_WIDTH 1 /* IM_UV_DC2_EINT */
-#define WM831X_IM_UV_DC1_EINT 0x0001 /* IM_UV_DC1_EINT */
-#define WM831X_IM_UV_DC1_EINT_MASK 0x0001 /* IM_UV_DC1_EINT */
-#define WM831X_IM_UV_DC1_EINT_SHIFT 0 /* IM_UV_DC1_EINT */
-#define WM831X_IM_UV_DC1_EINT_WIDTH 1 /* IM_UV_DC1_EINT */
-
-/*
- * R16413 (0x401D) - Interrupt Status 5 Mask
- */
-#define WM831X_IM_GP16_EINT 0x8000 /* IM_GP16_EINT */
-#define WM831X_IM_GP16_EINT_MASK 0x8000 /* IM_GP16_EINT */
-#define WM831X_IM_GP16_EINT_SHIFT 15 /* IM_GP16_EINT */
-#define WM831X_IM_GP16_EINT_WIDTH 1 /* IM_GP16_EINT */
-#define WM831X_IM_GP15_EINT 0x4000 /* IM_GP15_EINT */
-#define WM831X_IM_GP15_EINT_MASK 0x4000 /* IM_GP15_EINT */
-#define WM831X_IM_GP15_EINT_SHIFT 14 /* IM_GP15_EINT */
-#define WM831X_IM_GP15_EINT_WIDTH 1 /* IM_GP15_EINT */
-#define WM831X_IM_GP14_EINT 0x2000 /* IM_GP14_EINT */
-#define WM831X_IM_GP14_EINT_MASK 0x2000 /* IM_GP14_EINT */
-#define WM831X_IM_GP14_EINT_SHIFT 13 /* IM_GP14_EINT */
-#define WM831X_IM_GP14_EINT_WIDTH 1 /* IM_GP14_EINT */
-#define WM831X_IM_GP13_EINT 0x1000 /* IM_GP13_EINT */
-#define WM831X_IM_GP13_EINT_MASK 0x1000 /* IM_GP13_EINT */
-#define WM831X_IM_GP13_EINT_SHIFT 12 /* IM_GP13_EINT */
-#define WM831X_IM_GP13_EINT_WIDTH 1 /* IM_GP13_EINT */
-#define WM831X_IM_GP12_EINT 0x0800 /* IM_GP12_EINT */
-#define WM831X_IM_GP12_EINT_MASK 0x0800 /* IM_GP12_EINT */
-#define WM831X_IM_GP12_EINT_SHIFT 11 /* IM_GP12_EINT */
-#define WM831X_IM_GP12_EINT_WIDTH 1 /* IM_GP12_EINT */
-#define WM831X_IM_GP11_EINT 0x0400 /* IM_GP11_EINT */
-#define WM831X_IM_GP11_EINT_MASK 0x0400 /* IM_GP11_EINT */
-#define WM831X_IM_GP11_EINT_SHIFT 10 /* IM_GP11_EINT */
-#define WM831X_IM_GP11_EINT_WIDTH 1 /* IM_GP11_EINT */
-#define WM831X_IM_GP10_EINT 0x0200 /* IM_GP10_EINT */
-#define WM831X_IM_GP10_EINT_MASK 0x0200 /* IM_GP10_EINT */
-#define WM831X_IM_GP10_EINT_SHIFT 9 /* IM_GP10_EINT */
-#define WM831X_IM_GP10_EINT_WIDTH 1 /* IM_GP10_EINT */
-#define WM831X_IM_GP9_EINT 0x0100 /* IM_GP9_EINT */
-#define WM831X_IM_GP9_EINT_MASK 0x0100 /* IM_GP9_EINT */
-#define WM831X_IM_GP9_EINT_SHIFT 8 /* IM_GP9_EINT */
-#define WM831X_IM_GP9_EINT_WIDTH 1 /* IM_GP9_EINT */
-#define WM831X_IM_GP8_EINT 0x0080 /* IM_GP8_EINT */
-#define WM831X_IM_GP8_EINT_MASK 0x0080 /* IM_GP8_EINT */
-#define WM831X_IM_GP8_EINT_SHIFT 7 /* IM_GP8_EINT */
-#define WM831X_IM_GP8_EINT_WIDTH 1 /* IM_GP8_EINT */
-#define WM831X_IM_GP7_EINT 0x0040 /* IM_GP7_EINT */
-#define WM831X_IM_GP7_EINT_MASK 0x0040 /* IM_GP7_EINT */
-#define WM831X_IM_GP7_EINT_SHIFT 6 /* IM_GP7_EINT */
-#define WM831X_IM_GP7_EINT_WIDTH 1 /* IM_GP7_EINT */
-#define WM831X_IM_GP6_EINT 0x0020 /* IM_GP6_EINT */
-#define WM831X_IM_GP6_EINT_MASK 0x0020 /* IM_GP6_EINT */
-#define WM831X_IM_GP6_EINT_SHIFT 5 /* IM_GP6_EINT */
-#define WM831X_IM_GP6_EINT_WIDTH 1 /* IM_GP6_EINT */
-#define WM831X_IM_GP5_EINT 0x0010 /* IM_GP5_EINT */
-#define WM831X_IM_GP5_EINT_MASK 0x0010 /* IM_GP5_EINT */
-#define WM831X_IM_GP5_EINT_SHIFT 4 /* IM_GP5_EINT */
-#define WM831X_IM_GP5_EINT_WIDTH 1 /* IM_GP5_EINT */
-#define WM831X_IM_GP4_EINT 0x0008 /* IM_GP4_EINT */
-#define WM831X_IM_GP4_EINT_MASK 0x0008 /* IM_GP4_EINT */
-#define WM831X_IM_GP4_EINT_SHIFT 3 /* IM_GP4_EINT */
-#define WM831X_IM_GP4_EINT_WIDTH 1 /* IM_GP4_EINT */
-#define WM831X_IM_GP3_EINT 0x0004 /* IM_GP3_EINT */
-#define WM831X_IM_GP3_EINT_MASK 0x0004 /* IM_GP3_EINT */
-#define WM831X_IM_GP3_EINT_SHIFT 2 /* IM_GP3_EINT */
-#define WM831X_IM_GP3_EINT_WIDTH 1 /* IM_GP3_EINT */
-#define WM831X_IM_GP2_EINT 0x0002 /* IM_GP2_EINT */
-#define WM831X_IM_GP2_EINT_MASK 0x0002 /* IM_GP2_EINT */
-#define WM831X_IM_GP2_EINT_SHIFT 1 /* IM_GP2_EINT */
-#define WM831X_IM_GP2_EINT_WIDTH 1 /* IM_GP2_EINT */
-#define WM831X_IM_GP1_EINT 0x0001 /* IM_GP1_EINT */
-#define WM831X_IM_GP1_EINT_MASK 0x0001 /* IM_GP1_EINT */
-#define WM831X_IM_GP1_EINT_SHIFT 0 /* IM_GP1_EINT */
-#define WM831X_IM_GP1_EINT_WIDTH 1 /* IM_GP1_EINT */
-
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/wm831x/otp.h b/ANDROID_3.4.5/include/linux/mfd/wm831x/otp.h
deleted file mode 100644
index ce1f81a3..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/wm831x/otp.h
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * include/linux/mfd/wm831x/otp.h -- OTP interface for WM831x
- *
- * Copyright 2009 Wolfson Microelectronics PLC.
- *
- * Author: Mark Brown <broonie@opensource.wolfsonmicro.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 __MFD_WM831X_OTP_H__
-#define __MFD_WM831X_OTP_H__
-
-int wm831x_otp_init(struct wm831x *wm831x);
-void wm831x_otp_exit(struct wm831x *wm831x);
-
-/*
- * R30720 (0x7800) - Unique ID 1
- */
-#define WM831X_UNIQUE_ID_MASK 0xFFFF /* UNIQUE_ID - [15:0] */
-#define WM831X_UNIQUE_ID_SHIFT 0 /* UNIQUE_ID - [15:0] */
-#define WM831X_UNIQUE_ID_WIDTH 16 /* UNIQUE_ID - [15:0] */
-
-/*
- * R30721 (0x7801) - Unique ID 2
- */
-#define WM831X_UNIQUE_ID_MASK 0xFFFF /* UNIQUE_ID - [15:0] */
-#define WM831X_UNIQUE_ID_SHIFT 0 /* UNIQUE_ID - [15:0] */
-#define WM831X_UNIQUE_ID_WIDTH 16 /* UNIQUE_ID - [15:0] */
-
-/*
- * R30722 (0x7802) - Unique ID 3
- */
-#define WM831X_UNIQUE_ID_MASK 0xFFFF /* UNIQUE_ID - [15:0] */
-#define WM831X_UNIQUE_ID_SHIFT 0 /* UNIQUE_ID - [15:0] */
-#define WM831X_UNIQUE_ID_WIDTH 16 /* UNIQUE_ID - [15:0] */
-
-/*
- * R30723 (0x7803) - Unique ID 4
- */
-#define WM831X_UNIQUE_ID_MASK 0xFFFF /* UNIQUE_ID - [15:0] */
-#define WM831X_UNIQUE_ID_SHIFT 0 /* UNIQUE_ID - [15:0] */
-#define WM831X_UNIQUE_ID_WIDTH 16 /* UNIQUE_ID - [15:0] */
-
-/*
- * R30724 (0x7804) - Unique ID 5
- */
-#define WM831X_UNIQUE_ID_MASK 0xFFFF /* UNIQUE_ID - [15:0] */
-#define WM831X_UNIQUE_ID_SHIFT 0 /* UNIQUE_ID - [15:0] */
-#define WM831X_UNIQUE_ID_WIDTH 16 /* UNIQUE_ID - [15:0] */
-
-/*
- * R30725 (0x7805) - Unique ID 6
- */
-#define WM831X_UNIQUE_ID_MASK 0xFFFF /* UNIQUE_ID - [15:0] */
-#define WM831X_UNIQUE_ID_SHIFT 0 /* UNIQUE_ID - [15:0] */
-#define WM831X_UNIQUE_ID_WIDTH 16 /* UNIQUE_ID - [15:0] */
-
-/*
- * R30726 (0x7806) - Unique ID 7
- */
-#define WM831X_UNIQUE_ID_MASK 0xFFFF /* UNIQUE_ID - [15:0] */
-#define WM831X_UNIQUE_ID_SHIFT 0 /* UNIQUE_ID - [15:0] */
-#define WM831X_UNIQUE_ID_WIDTH 16 /* UNIQUE_ID - [15:0] */
-
-/*
- * R30727 (0x7807) - Unique ID 8
- */
-#define WM831X_UNIQUE_ID_MASK 0xFFFF /* UNIQUE_ID - [15:0] */
-#define WM831X_UNIQUE_ID_SHIFT 0 /* UNIQUE_ID - [15:0] */
-#define WM831X_UNIQUE_ID_WIDTH 16 /* UNIQUE_ID - [15:0] */
-
-/*
- * R30728 (0x7808) - Factory OTP ID
- */
-#define WM831X_OTP_FACT_ID_MASK 0xFFFE /* OTP_FACT_ID - [15:1] */
-#define WM831X_OTP_FACT_ID_SHIFT 1 /* OTP_FACT_ID - [15:1] */
-#define WM831X_OTP_FACT_ID_WIDTH 15 /* OTP_FACT_ID - [15:1] */
-#define WM831X_OTP_FACT_FINAL 0x0001 /* OTP_FACT_FINAL */
-#define WM831X_OTP_FACT_FINAL_MASK 0x0001 /* OTP_FACT_FINAL */
-#define WM831X_OTP_FACT_FINAL_SHIFT 0 /* OTP_FACT_FINAL */
-#define WM831X_OTP_FACT_FINAL_WIDTH 1 /* OTP_FACT_FINAL */
-
-/*
- * R30729 (0x7809) - Factory OTP 1
- */
-#define WM831X_DC3_TRIM_MASK 0xF000 /* DC3_TRIM - [15:12] */
-#define WM831X_DC3_TRIM_SHIFT 12 /* DC3_TRIM - [15:12] */
-#define WM831X_DC3_TRIM_WIDTH 4 /* DC3_TRIM - [15:12] */
-#define WM831X_DC2_TRIM_MASK 0x0FC0 /* DC2_TRIM - [11:6] */
-#define WM831X_DC2_TRIM_SHIFT 6 /* DC2_TRIM - [11:6] */
-#define WM831X_DC2_TRIM_WIDTH 6 /* DC2_TRIM - [11:6] */
-#define WM831X_DC1_TRIM_MASK 0x003F /* DC1_TRIM - [5:0] */
-#define WM831X_DC1_TRIM_SHIFT 0 /* DC1_TRIM - [5:0] */
-#define WM831X_DC1_TRIM_WIDTH 6 /* DC1_TRIM - [5:0] */
-
-/*
- * R30730 (0x780A) - Factory OTP 2
- */
-#define WM831X_CHIP_ID_MASK 0xFFFF /* CHIP_ID - [15:0] */
-#define WM831X_CHIP_ID_SHIFT 0 /* CHIP_ID - [15:0] */
-#define WM831X_CHIP_ID_WIDTH 16 /* CHIP_ID - [15:0] */
-
-/*
- * R30731 (0x780B) - Factory OTP 3
- */
-#define WM831X_OSC_TRIM_MASK 0x0780 /* OSC_TRIM - [10:7] */
-#define WM831X_OSC_TRIM_SHIFT 7 /* OSC_TRIM - [10:7] */
-#define WM831X_OSC_TRIM_WIDTH 4 /* OSC_TRIM - [10:7] */
-#define WM831X_BG_TRIM_MASK 0x0078 /* BG_TRIM - [6:3] */
-#define WM831X_BG_TRIM_SHIFT 3 /* BG_TRIM - [6:3] */
-#define WM831X_BG_TRIM_WIDTH 4 /* BG_TRIM - [6:3] */
-#define WM831X_LPBG_TRIM_MASK 0x0007 /* LPBG_TRIM - [2:0] */
-#define WM831X_LPBG_TRIM_SHIFT 0 /* LPBG_TRIM - [2:0] */
-#define WM831X_LPBG_TRIM_WIDTH 3 /* LPBG_TRIM - [2:0] */
-
-/*
- * R30732 (0x780C) - Factory OTP 4
- */
-#define WM831X_CHILD_I2C_ADDR_MASK 0x00FE /* CHILD_I2C_ADDR - [7:1] */
-#define WM831X_CHILD_I2C_ADDR_SHIFT 1 /* CHILD_I2C_ADDR - [7:1] */
-#define WM831X_CHILD_I2C_ADDR_WIDTH 7 /* CHILD_I2C_ADDR - [7:1] */
-#define WM831X_CH_AW 0x0001 /* CH_AW */
-#define WM831X_CH_AW_MASK 0x0001 /* CH_AW */
-#define WM831X_CH_AW_SHIFT 0 /* CH_AW */
-#define WM831X_CH_AW_WIDTH 1 /* CH_AW */
-
-/*
- * R30733 (0x780D) - Factory OTP 5
- */
-#define WM831X_CHARGE_TRIM_MASK 0x003F /* CHARGE_TRIM - [5:0] */
-#define WM831X_CHARGE_TRIM_SHIFT 0 /* CHARGE_TRIM - [5:0] */
-#define WM831X_CHARGE_TRIM_WIDTH 6 /* CHARGE_TRIM - [5:0] */
-
-/*
- * R30736 (0x7810) - Customer OTP ID
- */
-#define WM831X_OTP_AUTO_PROG 0x8000 /* OTP_AUTO_PROG */
-#define WM831X_OTP_AUTO_PROG_MASK 0x8000 /* OTP_AUTO_PROG */
-#define WM831X_OTP_AUTO_PROG_SHIFT 15 /* OTP_AUTO_PROG */
-#define WM831X_OTP_AUTO_PROG_WIDTH 1 /* OTP_AUTO_PROG */
-#define WM831X_OTP_CUST_ID_MASK 0x7FFE /* OTP_CUST_ID - [14:1] */
-#define WM831X_OTP_CUST_ID_SHIFT 1 /* OTP_CUST_ID - [14:1] */
-#define WM831X_OTP_CUST_ID_WIDTH 14 /* OTP_CUST_ID - [14:1] */
-#define WM831X_OTP_CUST_FINAL 0x0001 /* OTP_CUST_FINAL */
-#define WM831X_OTP_CUST_FINAL_MASK 0x0001 /* OTP_CUST_FINAL */
-#define WM831X_OTP_CUST_FINAL_SHIFT 0 /* OTP_CUST_FINAL */
-#define WM831X_OTP_CUST_FINAL_WIDTH 1 /* OTP_CUST_FINAL */
-
-/*
- * R30759 (0x7827) - DBE CHECK DATA
- */
-#define WM831X_DBE_VALID_DATA_MASK 0xFFFF /* DBE_VALID_DATA - [15:0] */
-#define WM831X_DBE_VALID_DATA_SHIFT 0 /* DBE_VALID_DATA - [15:0] */
-#define WM831X_DBE_VALID_DATA_WIDTH 16 /* DBE_VALID_DATA - [15:0] */
-
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/wm831x/pdata.h b/ANDROID_3.4.5/include/linux/mfd/wm831x/pdata.h
deleted file mode 100644
index 1d7a3f7b..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/wm831x/pdata.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * include/linux/mfd/wm831x/pdata.h -- Platform data for WM831x
- *
- * Copyright 2009 Wolfson Microelectronics PLC.
- *
- * Author: Mark Brown <broonie@opensource.wolfsonmicro.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 __MFD_WM831X_PDATA_H__
-#define __MFD_WM831X_PDATA_H__
-
-struct wm831x;
-struct regulator_init_data;
-
-struct wm831x_backlight_pdata {
- int isink; /** ISINK to use, 1 or 2 */
- int max_uA; /** Maximum current to allow */
-};
-
-struct wm831x_backup_pdata {
- int charger_enable;
- int no_constant_voltage; /** Disable constant voltage charging */
- int vlim; /** Voltage limit in milivolts */
- int ilim; /** Current limit in microamps */
-};
-
-struct wm831x_battery_pdata {
- int enable; /** Enable charging */
- int fast_enable; /** Enable fast charging */
- int off_mask; /** Mask OFF while charging */
- int trickle_ilim; /** Trickle charge current limit, in mA */
- int vsel; /** Target voltage, in mV */
- int eoc_iterm; /** End of trickle charge current, in mA */
- int fast_ilim; /** Fast charge current limit, in mA */
- int timeout; /** Charge cycle timeout, in minutes */
-};
-
-/**
- * Configuration for the WM831x DC-DC BuckWise convertors. This
- * should be passed as driver_data in the regulator_init_data.
- *
- * Currently all the configuration is for the fast DVS switching
- * support of the devices. This allows MFPs on the device to be
- * configured as an input to switch between two output voltages,
- * allowing voltage transitions without the expense of an access over
- * I2C or SPI buses.
- */
-struct wm831x_buckv_pdata {
- int dvs_gpio; /** CPU GPIO to use for DVS switching */
- int dvs_control_src; /** Hardware DVS source to use (1 or 2) */
- int dvs_init_state; /** DVS state to expect on startup */
- int dvs_state_gpio; /** CPU GPIO to use for monitoring status */
-};
-
-/* Sources for status LED configuration. Values are register values
- * plus 1 to allow for a zero default for preserve.
- */
-enum wm831x_status_src {
- WM831X_STATUS_PRESERVE = 0, /* Keep the current hardware setting */
- WM831X_STATUS_OTP = 1,
- WM831X_STATUS_POWER = 2,
- WM831X_STATUS_CHARGER = 3,
- WM831X_STATUS_MANUAL = 4,
-};
-
-struct wm831x_status_pdata {
- enum wm831x_status_src default_src;
- const char *name;
- const char *default_trigger;
-};
-
-struct wm831x_touch_pdata {
- int fivewire; /** 1 for five wire mode, 0 for 4 wire */
- int isel; /** Current for pen down (uA) */
- int rpu; /** Pen down sensitivity resistor divider */
- int pressure; /** Report pressure (boolean) */
- unsigned int data_irq; /** Touch data ready IRQ */
- int data_irqf; /** IRQ flags for data ready IRQ */
- unsigned int pd_irq; /** Touch pendown detect IRQ */
- int pd_irqf; /** IRQ flags for pen down IRQ */
-};
-
-enum wm831x_watchdog_action {
- WM831X_WDOG_NONE = 0,
- WM831X_WDOG_INTERRUPT = 1,
- WM831X_WDOG_RESET = 2,
- WM831X_WDOG_WAKE = 3,
-};
-
-struct wm831x_watchdog_pdata {
- enum wm831x_watchdog_action primary, secondary;
- int update_gpio;
- unsigned int software:1;
-};
-
-#define WM831X_MAX_STATUS 2
-#define WM831X_MAX_DCDC 4
-#define WM831X_MAX_EPE 2
-#define WM831X_MAX_LDO 11
-#define WM831X_MAX_ISINK 2
-
-#define WM831X_GPIO_CONFIGURE 0x10000
-#define WM831X_GPIO_NUM 16
-
-struct wm831x_pdata {
- /** Used to distinguish multiple WM831x chips */
- int wm831x_num;
-
- /** Called before subdevices are set up */
- int (*pre_init)(struct wm831x *wm831x);
- /** Called after subdevices are set up */
- int (*post_init)(struct wm831x *wm831x);
-
- /** Put the /IRQ line into CMOS mode */
- bool irq_cmos;
-
- /** Disable the touchscreen */
- bool disable_touch;
-
- /** The driver should initiate a power off sequence during shutdown */
- bool soft_shutdown;
-
- int irq_base;
- int gpio_base;
- int gpio_defaults[WM831X_GPIO_NUM];
- struct wm831x_backlight_pdata *backlight;
- struct wm831x_backup_pdata *backup;
- struct wm831x_battery_pdata *battery;
- struct wm831x_touch_pdata *touch;
- struct wm831x_watchdog_pdata *watchdog;
-
- /** LED1 = 0 and so on */
- struct wm831x_status_pdata *status[WM831X_MAX_STATUS];
- /** DCDC1 = 0 and so on */
- struct regulator_init_data *dcdc[WM831X_MAX_DCDC];
- /** EPE1 = 0 and so on */
- struct regulator_init_data *epe[WM831X_MAX_EPE];
- /** LDO1 = 0 and so on */
- struct regulator_init_data *ldo[WM831X_MAX_LDO];
- /** ISINK1 = 0 and so on*/
- struct regulator_init_data *isink[WM831X_MAX_ISINK];
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/wm831x/pmu.h b/ANDROID_3.4.5/include/linux/mfd/wm831x/pmu.h
deleted file mode 100644
index b18cbb02..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/wm831x/pmu.h
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * include/linux/mfd/wm831x/pmu.h -- PMU for WM831x
- *
- * Copyright 2009 Wolfson Microelectronics PLC.
- *
- * Author: Mark Brown <broonie@opensource.wolfsonmicro.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 __MFD_WM831X_PMU_H__
-#define __MFD_WM831X_PMU_H__
-
-/*
- * R16387 (0x4003) - Power State
- */
-#define WM831X_CHIP_ON 0x8000 /* CHIP_ON */
-#define WM831X_CHIP_ON_MASK 0x8000 /* CHIP_ON */
-#define WM831X_CHIP_ON_SHIFT 15 /* CHIP_ON */
-#define WM831X_CHIP_ON_WIDTH 1 /* CHIP_ON */
-#define WM831X_CHIP_SLP 0x4000 /* CHIP_SLP */
-#define WM831X_CHIP_SLP_MASK 0x4000 /* CHIP_SLP */
-#define WM831X_CHIP_SLP_SHIFT 14 /* CHIP_SLP */
-#define WM831X_CHIP_SLP_WIDTH 1 /* CHIP_SLP */
-#define WM831X_REF_LP 0x1000 /* REF_LP */
-#define WM831X_REF_LP_MASK 0x1000 /* REF_LP */
-#define WM831X_REF_LP_SHIFT 12 /* REF_LP */
-#define WM831X_REF_LP_WIDTH 1 /* REF_LP */
-#define WM831X_PWRSTATE_DLY_MASK 0x0C00 /* PWRSTATE_DLY - [11:10] */
-#define WM831X_PWRSTATE_DLY_SHIFT 10 /* PWRSTATE_DLY - [11:10] */
-#define WM831X_PWRSTATE_DLY_WIDTH 2 /* PWRSTATE_DLY - [11:10] */
-#define WM831X_SWRST_DLY 0x0200 /* SWRST_DLY */
-#define WM831X_SWRST_DLY_MASK 0x0200 /* SWRST_DLY */
-#define WM831X_SWRST_DLY_SHIFT 9 /* SWRST_DLY */
-#define WM831X_SWRST_DLY_WIDTH 1 /* SWRST_DLY */
-#define WM831X_USB100MA_STARTUP_MASK 0x0030 /* USB100MA_STARTUP - [5:4] */
-#define WM831X_USB100MA_STARTUP_SHIFT 4 /* USB100MA_STARTUP - [5:4] */
-#define WM831X_USB100MA_STARTUP_WIDTH 2 /* USB100MA_STARTUP - [5:4] */
-#define WM831X_USB_CURR_STS 0x0008 /* USB_CURR_STS */
-#define WM831X_USB_CURR_STS_MASK 0x0008 /* USB_CURR_STS */
-#define WM831X_USB_CURR_STS_SHIFT 3 /* USB_CURR_STS */
-#define WM831X_USB_CURR_STS_WIDTH 1 /* USB_CURR_STS */
-#define WM831X_USB_ILIM_MASK 0x0007 /* USB_ILIM - [2:0] */
-#define WM831X_USB_ILIM_SHIFT 0 /* USB_ILIM - [2:0] */
-#define WM831X_USB_ILIM_WIDTH 3 /* USB_ILIM - [2:0] */
-
-/*
- * R16397 (0x400D) - System Status
- */
-#define WM831X_THW_STS 0x8000 /* THW_STS */
-#define WM831X_THW_STS_MASK 0x8000 /* THW_STS */
-#define WM831X_THW_STS_SHIFT 15 /* THW_STS */
-#define WM831X_THW_STS_WIDTH 1 /* THW_STS */
-#define WM831X_PWR_SRC_BATT 0x0400 /* PWR_SRC_BATT */
-#define WM831X_PWR_SRC_BATT_MASK 0x0400 /* PWR_SRC_BATT */
-#define WM831X_PWR_SRC_BATT_SHIFT 10 /* PWR_SRC_BATT */
-#define WM831X_PWR_SRC_BATT_WIDTH 1 /* PWR_SRC_BATT */
-#define WM831X_PWR_WALL 0x0200 /* PWR_WALL */
-#define WM831X_PWR_WALL_MASK 0x0200 /* PWR_WALL */
-#define WM831X_PWR_WALL_SHIFT 9 /* PWR_WALL */
-#define WM831X_PWR_WALL_WIDTH 1 /* PWR_WALL */
-#define WM831X_PWR_USB 0x0100 /* PWR_USB */
-#define WM831X_PWR_USB_MASK 0x0100 /* PWR_USB */
-#define WM831X_PWR_USB_SHIFT 8 /* PWR_USB */
-#define WM831X_PWR_USB_WIDTH 1 /* PWR_USB */
-#define WM831X_MAIN_STATE_MASK 0x001F /* MAIN_STATE - [4:0] */
-#define WM831X_MAIN_STATE_SHIFT 0 /* MAIN_STATE - [4:0] */
-#define WM831X_MAIN_STATE_WIDTH 5 /* MAIN_STATE - [4:0] */
-
-/*
- * R16456 (0x4048) - Charger Control 1
- */
-#define WM831X_CHG_ENA 0x8000 /* CHG_ENA */
-#define WM831X_CHG_ENA_MASK 0x8000 /* CHG_ENA */
-#define WM831X_CHG_ENA_SHIFT 15 /* CHG_ENA */
-#define WM831X_CHG_ENA_WIDTH 1 /* CHG_ENA */
-#define WM831X_CHG_FRC 0x4000 /* CHG_FRC */
-#define WM831X_CHG_FRC_MASK 0x4000 /* CHG_FRC */
-#define WM831X_CHG_FRC_SHIFT 14 /* CHG_FRC */
-#define WM831X_CHG_FRC_WIDTH 1 /* CHG_FRC */
-#define WM831X_CHG_ITERM_MASK 0x1C00 /* CHG_ITERM - [12:10] */
-#define WM831X_CHG_ITERM_SHIFT 10 /* CHG_ITERM - [12:10] */
-#define WM831X_CHG_ITERM_WIDTH 3 /* CHG_ITERM - [12:10] */
-#define WM831X_CHG_FAST 0x0020 /* CHG_FAST */
-#define WM831X_CHG_FAST_MASK 0x0020 /* CHG_FAST */
-#define WM831X_CHG_FAST_SHIFT 5 /* CHG_FAST */
-#define WM831X_CHG_FAST_WIDTH 1 /* CHG_FAST */
-#define WM831X_CHG_IMON_ENA 0x0002 /* CHG_IMON_ENA */
-#define WM831X_CHG_IMON_ENA_MASK 0x0002 /* CHG_IMON_ENA */
-#define WM831X_CHG_IMON_ENA_SHIFT 1 /* CHG_IMON_ENA */
-#define WM831X_CHG_IMON_ENA_WIDTH 1 /* CHG_IMON_ENA */
-#define WM831X_CHG_CHIP_TEMP_MON 0x0001 /* CHG_CHIP_TEMP_MON */
-#define WM831X_CHG_CHIP_TEMP_MON_MASK 0x0001 /* CHG_CHIP_TEMP_MON */
-#define WM831X_CHG_CHIP_TEMP_MON_SHIFT 0 /* CHG_CHIP_TEMP_MON */
-#define WM831X_CHG_CHIP_TEMP_MON_WIDTH 1 /* CHG_CHIP_TEMP_MON */
-
-/*
- * R16457 (0x4049) - Charger Control 2
- */
-#define WM831X_CHG_OFF_MSK 0x4000 /* CHG_OFF_MSK */
-#define WM831X_CHG_OFF_MSK_MASK 0x4000 /* CHG_OFF_MSK */
-#define WM831X_CHG_OFF_MSK_SHIFT 14 /* CHG_OFF_MSK */
-#define WM831X_CHG_OFF_MSK_WIDTH 1 /* CHG_OFF_MSK */
-#define WM831X_CHG_TIME_MASK 0x0F00 /* CHG_TIME - [11:8] */
-#define WM831X_CHG_TIME_SHIFT 8 /* CHG_TIME - [11:8] */
-#define WM831X_CHG_TIME_WIDTH 4 /* CHG_TIME - [11:8] */
-#define WM831X_CHG_TRKL_ILIM_MASK 0x00C0 /* CHG_TRKL_ILIM - [7:6] */
-#define WM831X_CHG_TRKL_ILIM_SHIFT 6 /* CHG_TRKL_ILIM - [7:6] */
-#define WM831X_CHG_TRKL_ILIM_WIDTH 2 /* CHG_TRKL_ILIM - [7:6] */
-#define WM831X_CHG_VSEL_MASK 0x0030 /* CHG_VSEL - [5:4] */
-#define WM831X_CHG_VSEL_SHIFT 4 /* CHG_VSEL - [5:4] */
-#define WM831X_CHG_VSEL_WIDTH 2 /* CHG_VSEL - [5:4] */
-#define WM831X_CHG_FAST_ILIM_MASK 0x000F /* CHG_FAST_ILIM - [3:0] */
-#define WM831X_CHG_FAST_ILIM_SHIFT 0 /* CHG_FAST_ILIM - [3:0] */
-#define WM831X_CHG_FAST_ILIM_WIDTH 4 /* CHG_FAST_ILIM - [3:0] */
-
-/*
- * R16458 (0x404A) - Charger Status
- */
-#define WM831X_BATT_OV_STS 0x8000 /* BATT_OV_STS */
-#define WM831X_BATT_OV_STS_MASK 0x8000 /* BATT_OV_STS */
-#define WM831X_BATT_OV_STS_SHIFT 15 /* BATT_OV_STS */
-#define WM831X_BATT_OV_STS_WIDTH 1 /* BATT_OV_STS */
-#define WM831X_CHG_STATE_MASK 0x7000 /* CHG_STATE - [14:12] */
-#define WM831X_CHG_STATE_SHIFT 12 /* CHG_STATE - [14:12] */
-#define WM831X_CHG_STATE_WIDTH 3 /* CHG_STATE - [14:12] */
-#define WM831X_BATT_HOT_STS 0x0800 /* BATT_HOT_STS */
-#define WM831X_BATT_HOT_STS_MASK 0x0800 /* BATT_HOT_STS */
-#define WM831X_BATT_HOT_STS_SHIFT 11 /* BATT_HOT_STS */
-#define WM831X_BATT_HOT_STS_WIDTH 1 /* BATT_HOT_STS */
-#define WM831X_BATT_COLD_STS 0x0400 /* BATT_COLD_STS */
-#define WM831X_BATT_COLD_STS_MASK 0x0400 /* BATT_COLD_STS */
-#define WM831X_BATT_COLD_STS_SHIFT 10 /* BATT_COLD_STS */
-#define WM831X_BATT_COLD_STS_WIDTH 1 /* BATT_COLD_STS */
-#define WM831X_CHG_TOPOFF 0x0200 /* CHG_TOPOFF */
-#define WM831X_CHG_TOPOFF_MASK 0x0200 /* CHG_TOPOFF */
-#define WM831X_CHG_TOPOFF_SHIFT 9 /* CHG_TOPOFF */
-#define WM831X_CHG_TOPOFF_WIDTH 1 /* CHG_TOPOFF */
-#define WM831X_CHG_ACTIVE 0x0100 /* CHG_ACTIVE */
-#define WM831X_CHG_ACTIVE_MASK 0x0100 /* CHG_ACTIVE */
-#define WM831X_CHG_ACTIVE_SHIFT 8 /* CHG_ACTIVE */
-#define WM831X_CHG_ACTIVE_WIDTH 1 /* CHG_ACTIVE */
-#define WM831X_CHG_TIME_ELAPSED_MASK 0x00FF /* CHG_TIME_ELAPSED - [7:0] */
-#define WM831X_CHG_TIME_ELAPSED_SHIFT 0 /* CHG_TIME_ELAPSED - [7:0] */
-#define WM831X_CHG_TIME_ELAPSED_WIDTH 8 /* CHG_TIME_ELAPSED - [7:0] */
-
-#define WM831X_CHG_STATE_OFF (0 << WM831X_CHG_STATE_SHIFT)
-#define WM831X_CHG_STATE_TRICKLE (1 << WM831X_CHG_STATE_SHIFT)
-#define WM831X_CHG_STATE_FAST (2 << WM831X_CHG_STATE_SHIFT)
-#define WM831X_CHG_STATE_TRICKLE_OT (3 << WM831X_CHG_STATE_SHIFT)
-#define WM831X_CHG_STATE_FAST_OT (4 << WM831X_CHG_STATE_SHIFT)
-#define WM831X_CHG_STATE_DEFECTIVE (5 << WM831X_CHG_STATE_SHIFT)
-
-/*
- * R16459 (0x404B) - Backup Charger Control
- */
-#define WM831X_BKUP_CHG_ENA 0x8000 /* BKUP_CHG_ENA */
-#define WM831X_BKUP_CHG_ENA_MASK 0x8000 /* BKUP_CHG_ENA */
-#define WM831X_BKUP_CHG_ENA_SHIFT 15 /* BKUP_CHG_ENA */
-#define WM831X_BKUP_CHG_ENA_WIDTH 1 /* BKUP_CHG_ENA */
-#define WM831X_BKUP_CHG_STS 0x4000 /* BKUP_CHG_STS */
-#define WM831X_BKUP_CHG_STS_MASK 0x4000 /* BKUP_CHG_STS */
-#define WM831X_BKUP_CHG_STS_SHIFT 14 /* BKUP_CHG_STS */
-#define WM831X_BKUP_CHG_STS_WIDTH 1 /* BKUP_CHG_STS */
-#define WM831X_BKUP_CHG_MODE 0x1000 /* BKUP_CHG_MODE */
-#define WM831X_BKUP_CHG_MODE_MASK 0x1000 /* BKUP_CHG_MODE */
-#define WM831X_BKUP_CHG_MODE_SHIFT 12 /* BKUP_CHG_MODE */
-#define WM831X_BKUP_CHG_MODE_WIDTH 1 /* BKUP_CHG_MODE */
-#define WM831X_BKUP_BATT_DET_ENA 0x0800 /* BKUP_BATT_DET_ENA */
-#define WM831X_BKUP_BATT_DET_ENA_MASK 0x0800 /* BKUP_BATT_DET_ENA */
-#define WM831X_BKUP_BATT_DET_ENA_SHIFT 11 /* BKUP_BATT_DET_ENA */
-#define WM831X_BKUP_BATT_DET_ENA_WIDTH 1 /* BKUP_BATT_DET_ENA */
-#define WM831X_BKUP_BATT_STS 0x0400 /* BKUP_BATT_STS */
-#define WM831X_BKUP_BATT_STS_MASK 0x0400 /* BKUP_BATT_STS */
-#define WM831X_BKUP_BATT_STS_SHIFT 10 /* BKUP_BATT_STS */
-#define WM831X_BKUP_BATT_STS_WIDTH 1 /* BKUP_BATT_STS */
-#define WM831X_BKUP_CHG_VLIM 0x0010 /* BKUP_CHG_VLIM */
-#define WM831X_BKUP_CHG_VLIM_MASK 0x0010 /* BKUP_CHG_VLIM */
-#define WM831X_BKUP_CHG_VLIM_SHIFT 4 /* BKUP_CHG_VLIM */
-#define WM831X_BKUP_CHG_VLIM_WIDTH 1 /* BKUP_CHG_VLIM */
-#define WM831X_BKUP_CHG_ILIM_MASK 0x0003 /* BKUP_CHG_ILIM - [1:0] */
-#define WM831X_BKUP_CHG_ILIM_SHIFT 0 /* BKUP_CHG_ILIM - [1:0] */
-#define WM831X_BKUP_CHG_ILIM_WIDTH 2 /* BKUP_CHG_ILIM - [1:0] */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/wm831x/regulator.h b/ANDROID_3.4.5/include/linux/mfd/wm831x/regulator.h
deleted file mode 100644
index 955d30fc..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/wm831x/regulator.h
+++ /dev/null
@@ -1,1218 +0,0 @@
-/*
- * linux/mfd/wm831x/regulator.h -- Regulator definitons for wm831x
- *
- * Copyright 2009 Wolfson Microelectronics PLC.
- *
- * Author: Mark Brown <broonie@opensource.wolfsonmicro.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 __MFD_WM831X_REGULATOR_H__
-#define __MFD_WM831X_REGULATOR_H__
-
-/*
- * R16462 (0x404E) - Current Sink 1
- */
-#define WM831X_CS1_ENA 0x8000 /* CS1_ENA */
-#define WM831X_CS1_ENA_MASK 0x8000 /* CS1_ENA */
-#define WM831X_CS1_ENA_SHIFT 15 /* CS1_ENA */
-#define WM831X_CS1_ENA_WIDTH 1 /* CS1_ENA */
-#define WM831X_CS1_DRIVE 0x4000 /* CS1_DRIVE */
-#define WM831X_CS1_DRIVE_MASK 0x4000 /* CS1_DRIVE */
-#define WM831X_CS1_DRIVE_SHIFT 14 /* CS1_DRIVE */
-#define WM831X_CS1_DRIVE_WIDTH 1 /* CS1_DRIVE */
-#define WM831X_CS1_SLPENA 0x1000 /* CS1_SLPENA */
-#define WM831X_CS1_SLPENA_MASK 0x1000 /* CS1_SLPENA */
-#define WM831X_CS1_SLPENA_SHIFT 12 /* CS1_SLPENA */
-#define WM831X_CS1_SLPENA_WIDTH 1 /* CS1_SLPENA */
-#define WM831X_CS1_OFF_RAMP_MASK 0x0C00 /* CS1_OFF_RAMP - [11:10] */
-#define WM831X_CS1_OFF_RAMP_SHIFT 10 /* CS1_OFF_RAMP - [11:10] */
-#define WM831X_CS1_OFF_RAMP_WIDTH 2 /* CS1_OFF_RAMP - [11:10] */
-#define WM831X_CS1_ON_RAMP_MASK 0x0300 /* CS1_ON_RAMP - [9:8] */
-#define WM831X_CS1_ON_RAMP_SHIFT 8 /* CS1_ON_RAMP - [9:8] */
-#define WM831X_CS1_ON_RAMP_WIDTH 2 /* CS1_ON_RAMP - [9:8] */
-#define WM831X_CS1_ISEL_MASK 0x003F /* CS1_ISEL - [5:0] */
-#define WM831X_CS1_ISEL_SHIFT 0 /* CS1_ISEL - [5:0] */
-#define WM831X_CS1_ISEL_WIDTH 6 /* CS1_ISEL - [5:0] */
-
-/*
- * R16463 (0x404F) - Current Sink 2
- */
-#define WM831X_CS2_ENA 0x8000 /* CS2_ENA */
-#define WM831X_CS2_ENA_MASK 0x8000 /* CS2_ENA */
-#define WM831X_CS2_ENA_SHIFT 15 /* CS2_ENA */
-#define WM831X_CS2_ENA_WIDTH 1 /* CS2_ENA */
-#define WM831X_CS2_DRIVE 0x4000 /* CS2_DRIVE */
-#define WM831X_CS2_DRIVE_MASK 0x4000 /* CS2_DRIVE */
-#define WM831X_CS2_DRIVE_SHIFT 14 /* CS2_DRIVE */
-#define WM831X_CS2_DRIVE_WIDTH 1 /* CS2_DRIVE */
-#define WM831X_CS2_SLPENA 0x1000 /* CS2_SLPENA */
-#define WM831X_CS2_SLPENA_MASK 0x1000 /* CS2_SLPENA */
-#define WM831X_CS2_SLPENA_SHIFT 12 /* CS2_SLPENA */
-#define WM831X_CS2_SLPENA_WIDTH 1 /* CS2_SLPENA */
-#define WM831X_CS2_OFF_RAMP_MASK 0x0C00 /* CS2_OFF_RAMP - [11:10] */
-#define WM831X_CS2_OFF_RAMP_SHIFT 10 /* CS2_OFF_RAMP - [11:10] */
-#define WM831X_CS2_OFF_RAMP_WIDTH 2 /* CS2_OFF_RAMP - [11:10] */
-#define WM831X_CS2_ON_RAMP_MASK 0x0300 /* CS2_ON_RAMP - [9:8] */
-#define WM831X_CS2_ON_RAMP_SHIFT 8 /* CS2_ON_RAMP - [9:8] */
-#define WM831X_CS2_ON_RAMP_WIDTH 2 /* CS2_ON_RAMP - [9:8] */
-#define WM831X_CS2_ISEL_MASK 0x003F /* CS2_ISEL - [5:0] */
-#define WM831X_CS2_ISEL_SHIFT 0 /* CS2_ISEL - [5:0] */
-#define WM831X_CS2_ISEL_WIDTH 6 /* CS2_ISEL - [5:0] */
-
-/*
- * R16464 (0x4050) - DCDC Enable
- */
-#define WM831X_EPE2_ENA 0x0080 /* EPE2_ENA */
-#define WM831X_EPE2_ENA_MASK 0x0080 /* EPE2_ENA */
-#define WM831X_EPE2_ENA_SHIFT 7 /* EPE2_ENA */
-#define WM831X_EPE2_ENA_WIDTH 1 /* EPE2_ENA */
-#define WM831X_EPE1_ENA 0x0040 /* EPE1_ENA */
-#define WM831X_EPE1_ENA_MASK 0x0040 /* EPE1_ENA */
-#define WM831X_EPE1_ENA_SHIFT 6 /* EPE1_ENA */
-#define WM831X_EPE1_ENA_WIDTH 1 /* EPE1_ENA */
-#define WM831X_DC4_ENA 0x0008 /* DC4_ENA */
-#define WM831X_DC4_ENA_MASK 0x0008 /* DC4_ENA */
-#define WM831X_DC4_ENA_SHIFT 3 /* DC4_ENA */
-#define WM831X_DC4_ENA_WIDTH 1 /* DC4_ENA */
-#define WM831X_DC3_ENA 0x0004 /* DC3_ENA */
-#define WM831X_DC3_ENA_MASK 0x0004 /* DC3_ENA */
-#define WM831X_DC3_ENA_SHIFT 2 /* DC3_ENA */
-#define WM831X_DC3_ENA_WIDTH 1 /* DC3_ENA */
-#define WM831X_DC2_ENA 0x0002 /* DC2_ENA */
-#define WM831X_DC2_ENA_MASK 0x0002 /* DC2_ENA */
-#define WM831X_DC2_ENA_SHIFT 1 /* DC2_ENA */
-#define WM831X_DC2_ENA_WIDTH 1 /* DC2_ENA */
-#define WM831X_DC1_ENA 0x0001 /* DC1_ENA */
-#define WM831X_DC1_ENA_MASK 0x0001 /* DC1_ENA */
-#define WM831X_DC1_ENA_SHIFT 0 /* DC1_ENA */
-#define WM831X_DC1_ENA_WIDTH 1 /* DC1_ENA */
-
-/*
- * R16465 (0x4051) - LDO Enable
- */
-#define WM831X_LDO11_ENA 0x0400 /* LDO11_ENA */
-#define WM831X_LDO11_ENA_MASK 0x0400 /* LDO11_ENA */
-#define WM831X_LDO11_ENA_SHIFT 10 /* LDO11_ENA */
-#define WM831X_LDO11_ENA_WIDTH 1 /* LDO11_ENA */
-#define WM831X_LDO10_ENA 0x0200 /* LDO10_ENA */
-#define WM831X_LDO10_ENA_MASK 0x0200 /* LDO10_ENA */
-#define WM831X_LDO10_ENA_SHIFT 9 /* LDO10_ENA */
-#define WM831X_LDO10_ENA_WIDTH 1 /* LDO10_ENA */
-#define WM831X_LDO9_ENA 0x0100 /* LDO9_ENA */
-#define WM831X_LDO9_ENA_MASK 0x0100 /* LDO9_ENA */
-#define WM831X_LDO9_ENA_SHIFT 8 /* LDO9_ENA */
-#define WM831X_LDO9_ENA_WIDTH 1 /* LDO9_ENA */
-#define WM831X_LDO8_ENA 0x0080 /* LDO8_ENA */
-#define WM831X_LDO8_ENA_MASK 0x0080 /* LDO8_ENA */
-#define WM831X_LDO8_ENA_SHIFT 7 /* LDO8_ENA */
-#define WM831X_LDO8_ENA_WIDTH 1 /* LDO8_ENA */
-#define WM831X_LDO7_ENA 0x0040 /* LDO7_ENA */
-#define WM831X_LDO7_ENA_MASK 0x0040 /* LDO7_ENA */
-#define WM831X_LDO7_ENA_SHIFT 6 /* LDO7_ENA */
-#define WM831X_LDO7_ENA_WIDTH 1 /* LDO7_ENA */
-#define WM831X_LDO6_ENA 0x0020 /* LDO6_ENA */
-#define WM831X_LDO6_ENA_MASK 0x0020 /* LDO6_ENA */
-#define WM831X_LDO6_ENA_SHIFT 5 /* LDO6_ENA */
-#define WM831X_LDO6_ENA_WIDTH 1 /* LDO6_ENA */
-#define WM831X_LDO5_ENA 0x0010 /* LDO5_ENA */
-#define WM831X_LDO5_ENA_MASK 0x0010 /* LDO5_ENA */
-#define WM831X_LDO5_ENA_SHIFT 4 /* LDO5_ENA */
-#define WM831X_LDO5_ENA_WIDTH 1 /* LDO5_ENA */
-#define WM831X_LDO4_ENA 0x0008 /* LDO4_ENA */
-#define WM831X_LDO4_ENA_MASK 0x0008 /* LDO4_ENA */
-#define WM831X_LDO4_ENA_SHIFT 3 /* LDO4_ENA */
-#define WM831X_LDO4_ENA_WIDTH 1 /* LDO4_ENA */
-#define WM831X_LDO3_ENA 0x0004 /* LDO3_ENA */
-#define WM831X_LDO3_ENA_MASK 0x0004 /* LDO3_ENA */
-#define WM831X_LDO3_ENA_SHIFT 2 /* LDO3_ENA */
-#define WM831X_LDO3_ENA_WIDTH 1 /* LDO3_ENA */
-#define WM831X_LDO2_ENA 0x0002 /* LDO2_ENA */
-#define WM831X_LDO2_ENA_MASK 0x0002 /* LDO2_ENA */
-#define WM831X_LDO2_ENA_SHIFT 1 /* LDO2_ENA */
-#define WM831X_LDO2_ENA_WIDTH 1 /* LDO2_ENA */
-#define WM831X_LDO1_ENA 0x0001 /* LDO1_ENA */
-#define WM831X_LDO1_ENA_MASK 0x0001 /* LDO1_ENA */
-#define WM831X_LDO1_ENA_SHIFT 0 /* LDO1_ENA */
-#define WM831X_LDO1_ENA_WIDTH 1 /* LDO1_ENA */
-
-/*
- * R16466 (0x4052) - DCDC Status
- */
-#define WM831X_EPE2_STS 0x0080 /* EPE2_STS */
-#define WM831X_EPE2_STS_MASK 0x0080 /* EPE2_STS */
-#define WM831X_EPE2_STS_SHIFT 7 /* EPE2_STS */
-#define WM831X_EPE2_STS_WIDTH 1 /* EPE2_STS */
-#define WM831X_EPE1_STS 0x0040 /* EPE1_STS */
-#define WM831X_EPE1_STS_MASK 0x0040 /* EPE1_STS */
-#define WM831X_EPE1_STS_SHIFT 6 /* EPE1_STS */
-#define WM831X_EPE1_STS_WIDTH 1 /* EPE1_STS */
-#define WM831X_DC4_STS 0x0008 /* DC4_STS */
-#define WM831X_DC4_STS_MASK 0x0008 /* DC4_STS */
-#define WM831X_DC4_STS_SHIFT 3 /* DC4_STS */
-#define WM831X_DC4_STS_WIDTH 1 /* DC4_STS */
-#define WM831X_DC3_STS 0x0004 /* DC3_STS */
-#define WM831X_DC3_STS_MASK 0x0004 /* DC3_STS */
-#define WM831X_DC3_STS_SHIFT 2 /* DC3_STS */
-#define WM831X_DC3_STS_WIDTH 1 /* DC3_STS */
-#define WM831X_DC2_STS 0x0002 /* DC2_STS */
-#define WM831X_DC2_STS_MASK 0x0002 /* DC2_STS */
-#define WM831X_DC2_STS_SHIFT 1 /* DC2_STS */
-#define WM831X_DC2_STS_WIDTH 1 /* DC2_STS */
-#define WM831X_DC1_STS 0x0001 /* DC1_STS */
-#define WM831X_DC1_STS_MASK 0x0001 /* DC1_STS */
-#define WM831X_DC1_STS_SHIFT 0 /* DC1_STS */
-#define WM831X_DC1_STS_WIDTH 1 /* DC1_STS */
-
-/*
- * R16467 (0x4053) - LDO Status
- */
-#define WM831X_LDO11_STS 0x0400 /* LDO11_STS */
-#define WM831X_LDO11_STS_MASK 0x0400 /* LDO11_STS */
-#define WM831X_LDO11_STS_SHIFT 10 /* LDO11_STS */
-#define WM831X_LDO11_STS_WIDTH 1 /* LDO11_STS */
-#define WM831X_LDO10_STS 0x0200 /* LDO10_STS */
-#define WM831X_LDO10_STS_MASK 0x0200 /* LDO10_STS */
-#define WM831X_LDO10_STS_SHIFT 9 /* LDO10_STS */
-#define WM831X_LDO10_STS_WIDTH 1 /* LDO10_STS */
-#define WM831X_LDO9_STS 0x0100 /* LDO9_STS */
-#define WM831X_LDO9_STS_MASK 0x0100 /* LDO9_STS */
-#define WM831X_LDO9_STS_SHIFT 8 /* LDO9_STS */
-#define WM831X_LDO9_STS_WIDTH 1 /* LDO9_STS */
-#define WM831X_LDO8_STS 0x0080 /* LDO8_STS */
-#define WM831X_LDO8_STS_MASK 0x0080 /* LDO8_STS */
-#define WM831X_LDO8_STS_SHIFT 7 /* LDO8_STS */
-#define WM831X_LDO8_STS_WIDTH 1 /* LDO8_STS */
-#define WM831X_LDO7_STS 0x0040 /* LDO7_STS */
-#define WM831X_LDO7_STS_MASK 0x0040 /* LDO7_STS */
-#define WM831X_LDO7_STS_SHIFT 6 /* LDO7_STS */
-#define WM831X_LDO7_STS_WIDTH 1 /* LDO7_STS */
-#define WM831X_LDO6_STS 0x0020 /* LDO6_STS */
-#define WM831X_LDO6_STS_MASK 0x0020 /* LDO6_STS */
-#define WM831X_LDO6_STS_SHIFT 5 /* LDO6_STS */
-#define WM831X_LDO6_STS_WIDTH 1 /* LDO6_STS */
-#define WM831X_LDO5_STS 0x0010 /* LDO5_STS */
-#define WM831X_LDO5_STS_MASK 0x0010 /* LDO5_STS */
-#define WM831X_LDO5_STS_SHIFT 4 /* LDO5_STS */
-#define WM831X_LDO5_STS_WIDTH 1 /* LDO5_STS */
-#define WM831X_LDO4_STS 0x0008 /* LDO4_STS */
-#define WM831X_LDO4_STS_MASK 0x0008 /* LDO4_STS */
-#define WM831X_LDO4_STS_SHIFT 3 /* LDO4_STS */
-#define WM831X_LDO4_STS_WIDTH 1 /* LDO4_STS */
-#define WM831X_LDO3_STS 0x0004 /* LDO3_STS */
-#define WM831X_LDO3_STS_MASK 0x0004 /* LDO3_STS */
-#define WM831X_LDO3_STS_SHIFT 2 /* LDO3_STS */
-#define WM831X_LDO3_STS_WIDTH 1 /* LDO3_STS */
-#define WM831X_LDO2_STS 0x0002 /* LDO2_STS */
-#define WM831X_LDO2_STS_MASK 0x0002 /* LDO2_STS */
-#define WM831X_LDO2_STS_SHIFT 1 /* LDO2_STS */
-#define WM831X_LDO2_STS_WIDTH 1 /* LDO2_STS */
-#define WM831X_LDO1_STS 0x0001 /* LDO1_STS */
-#define WM831X_LDO1_STS_MASK 0x0001 /* LDO1_STS */
-#define WM831X_LDO1_STS_SHIFT 0 /* LDO1_STS */
-#define WM831X_LDO1_STS_WIDTH 1 /* LDO1_STS */
-
-/*
- * R16468 (0x4054) - DCDC UV Status
- */
-#define WM831X_DC2_OV_STS 0x2000 /* DC2_OV_STS */
-#define WM831X_DC2_OV_STS_MASK 0x2000 /* DC2_OV_STS */
-#define WM831X_DC2_OV_STS_SHIFT 13 /* DC2_OV_STS */
-#define WM831X_DC2_OV_STS_WIDTH 1 /* DC2_OV_STS */
-#define WM831X_DC1_OV_STS 0x1000 /* DC1_OV_STS */
-#define WM831X_DC1_OV_STS_MASK 0x1000 /* DC1_OV_STS */
-#define WM831X_DC1_OV_STS_SHIFT 12 /* DC1_OV_STS */
-#define WM831X_DC1_OV_STS_WIDTH 1 /* DC1_OV_STS */
-#define WM831X_DC2_HC_STS 0x0200 /* DC2_HC_STS */
-#define WM831X_DC2_HC_STS_MASK 0x0200 /* DC2_HC_STS */
-#define WM831X_DC2_HC_STS_SHIFT 9 /* DC2_HC_STS */
-#define WM831X_DC2_HC_STS_WIDTH 1 /* DC2_HC_STS */
-#define WM831X_DC1_HC_STS 0x0100 /* DC1_HC_STS */
-#define WM831X_DC1_HC_STS_MASK 0x0100 /* DC1_HC_STS */
-#define WM831X_DC1_HC_STS_SHIFT 8 /* DC1_HC_STS */
-#define WM831X_DC1_HC_STS_WIDTH 1 /* DC1_HC_STS */
-#define WM831X_DC4_UV_STS 0x0008 /* DC4_UV_STS */
-#define WM831X_DC4_UV_STS_MASK 0x0008 /* DC4_UV_STS */
-#define WM831X_DC4_UV_STS_SHIFT 3 /* DC4_UV_STS */
-#define WM831X_DC4_UV_STS_WIDTH 1 /* DC4_UV_STS */
-#define WM831X_DC3_UV_STS 0x0004 /* DC3_UV_STS */
-#define WM831X_DC3_UV_STS_MASK 0x0004 /* DC3_UV_STS */
-#define WM831X_DC3_UV_STS_SHIFT 2 /* DC3_UV_STS */
-#define WM831X_DC3_UV_STS_WIDTH 1 /* DC3_UV_STS */
-#define WM831X_DC2_UV_STS 0x0002 /* DC2_UV_STS */
-#define WM831X_DC2_UV_STS_MASK 0x0002 /* DC2_UV_STS */
-#define WM831X_DC2_UV_STS_SHIFT 1 /* DC2_UV_STS */
-#define WM831X_DC2_UV_STS_WIDTH 1 /* DC2_UV_STS */
-#define WM831X_DC1_UV_STS 0x0001 /* DC1_UV_STS */
-#define WM831X_DC1_UV_STS_MASK 0x0001 /* DC1_UV_STS */
-#define WM831X_DC1_UV_STS_SHIFT 0 /* DC1_UV_STS */
-#define WM831X_DC1_UV_STS_WIDTH 1 /* DC1_UV_STS */
-
-/*
- * R16469 (0x4055) - LDO UV Status
- */
-#define WM831X_INTLDO_UV_STS 0x8000 /* INTLDO_UV_STS */
-#define WM831X_INTLDO_UV_STS_MASK 0x8000 /* INTLDO_UV_STS */
-#define WM831X_INTLDO_UV_STS_SHIFT 15 /* INTLDO_UV_STS */
-#define WM831X_INTLDO_UV_STS_WIDTH 1 /* INTLDO_UV_STS */
-#define WM831X_LDO10_UV_STS 0x0200 /* LDO10_UV_STS */
-#define WM831X_LDO10_UV_STS_MASK 0x0200 /* LDO10_UV_STS */
-#define WM831X_LDO10_UV_STS_SHIFT 9 /* LDO10_UV_STS */
-#define WM831X_LDO10_UV_STS_WIDTH 1 /* LDO10_UV_STS */
-#define WM831X_LDO9_UV_STS 0x0100 /* LDO9_UV_STS */
-#define WM831X_LDO9_UV_STS_MASK 0x0100 /* LDO9_UV_STS */
-#define WM831X_LDO9_UV_STS_SHIFT 8 /* LDO9_UV_STS */
-#define WM831X_LDO9_UV_STS_WIDTH 1 /* LDO9_UV_STS */
-#define WM831X_LDO8_UV_STS 0x0080 /* LDO8_UV_STS */
-#define WM831X_LDO8_UV_STS_MASK 0x0080 /* LDO8_UV_STS */
-#define WM831X_LDO8_UV_STS_SHIFT 7 /* LDO8_UV_STS */
-#define WM831X_LDO8_UV_STS_WIDTH 1 /* LDO8_UV_STS */
-#define WM831X_LDO7_UV_STS 0x0040 /* LDO7_UV_STS */
-#define WM831X_LDO7_UV_STS_MASK 0x0040 /* LDO7_UV_STS */
-#define WM831X_LDO7_UV_STS_SHIFT 6 /* LDO7_UV_STS */
-#define WM831X_LDO7_UV_STS_WIDTH 1 /* LDO7_UV_STS */
-#define WM831X_LDO6_UV_STS 0x0020 /* LDO6_UV_STS */
-#define WM831X_LDO6_UV_STS_MASK 0x0020 /* LDO6_UV_STS */
-#define WM831X_LDO6_UV_STS_SHIFT 5 /* LDO6_UV_STS */
-#define WM831X_LDO6_UV_STS_WIDTH 1 /* LDO6_UV_STS */
-#define WM831X_LDO5_UV_STS 0x0010 /* LDO5_UV_STS */
-#define WM831X_LDO5_UV_STS_MASK 0x0010 /* LDO5_UV_STS */
-#define WM831X_LDO5_UV_STS_SHIFT 4 /* LDO5_UV_STS */
-#define WM831X_LDO5_UV_STS_WIDTH 1 /* LDO5_UV_STS */
-#define WM831X_LDO4_UV_STS 0x0008 /* LDO4_UV_STS */
-#define WM831X_LDO4_UV_STS_MASK 0x0008 /* LDO4_UV_STS */
-#define WM831X_LDO4_UV_STS_SHIFT 3 /* LDO4_UV_STS */
-#define WM831X_LDO4_UV_STS_WIDTH 1 /* LDO4_UV_STS */
-#define WM831X_LDO3_UV_STS 0x0004 /* LDO3_UV_STS */
-#define WM831X_LDO3_UV_STS_MASK 0x0004 /* LDO3_UV_STS */
-#define WM831X_LDO3_UV_STS_SHIFT 2 /* LDO3_UV_STS */
-#define WM831X_LDO3_UV_STS_WIDTH 1 /* LDO3_UV_STS */
-#define WM831X_LDO2_UV_STS 0x0002 /* LDO2_UV_STS */
-#define WM831X_LDO2_UV_STS_MASK 0x0002 /* LDO2_UV_STS */
-#define WM831X_LDO2_UV_STS_SHIFT 1 /* LDO2_UV_STS */
-#define WM831X_LDO2_UV_STS_WIDTH 1 /* LDO2_UV_STS */
-#define WM831X_LDO1_UV_STS 0x0001 /* LDO1_UV_STS */
-#define WM831X_LDO1_UV_STS_MASK 0x0001 /* LDO1_UV_STS */
-#define WM831X_LDO1_UV_STS_SHIFT 0 /* LDO1_UV_STS */
-#define WM831X_LDO1_UV_STS_WIDTH 1 /* LDO1_UV_STS */
-
-/*
- * R16470 (0x4056) - DC1 Control 1
- */
-#define WM831X_DC1_RATE_MASK 0xC000 /* DC1_RATE - [15:14] */
-#define WM831X_DC1_RATE_SHIFT 14 /* DC1_RATE - [15:14] */
-#define WM831X_DC1_RATE_WIDTH 2 /* DC1_RATE - [15:14] */
-#define WM831X_DC1_PHASE 0x1000 /* DC1_PHASE */
-#define WM831X_DC1_PHASE_MASK 0x1000 /* DC1_PHASE */
-#define WM831X_DC1_PHASE_SHIFT 12 /* DC1_PHASE */
-#define WM831X_DC1_PHASE_WIDTH 1 /* DC1_PHASE */
-#define WM831X_DC1_FREQ_MASK 0x0300 /* DC1_FREQ - [9:8] */
-#define WM831X_DC1_FREQ_SHIFT 8 /* DC1_FREQ - [9:8] */
-#define WM831X_DC1_FREQ_WIDTH 2 /* DC1_FREQ - [9:8] */
-#define WM831X_DC1_FLT 0x0080 /* DC1_FLT */
-#define WM831X_DC1_FLT_MASK 0x0080 /* DC1_FLT */
-#define WM831X_DC1_FLT_SHIFT 7 /* DC1_FLT */
-#define WM831X_DC1_FLT_WIDTH 1 /* DC1_FLT */
-#define WM831X_DC1_SOFT_START_MASK 0x0030 /* DC1_SOFT_START - [5:4] */
-#define WM831X_DC1_SOFT_START_SHIFT 4 /* DC1_SOFT_START - [5:4] */
-#define WM831X_DC1_SOFT_START_WIDTH 2 /* DC1_SOFT_START - [5:4] */
-#define WM831X_DC1_CAP_MASK 0x0003 /* DC1_CAP - [1:0] */
-#define WM831X_DC1_CAP_SHIFT 0 /* DC1_CAP - [1:0] */
-#define WM831X_DC1_CAP_WIDTH 2 /* DC1_CAP - [1:0] */
-
-/*
- * R16471 (0x4057) - DC1 Control 2
- */
-#define WM831X_DC1_ERR_ACT_MASK 0xC000 /* DC1_ERR_ACT - [15:14] */
-#define WM831X_DC1_ERR_ACT_SHIFT 14 /* DC1_ERR_ACT - [15:14] */
-#define WM831X_DC1_ERR_ACT_WIDTH 2 /* DC1_ERR_ACT - [15:14] */
-#define WM831X_DC1_HWC_SRC_MASK 0x1800 /* DC1_HWC_SRC - [12:11] */
-#define WM831X_DC1_HWC_SRC_SHIFT 11 /* DC1_HWC_SRC - [12:11] */
-#define WM831X_DC1_HWC_SRC_WIDTH 2 /* DC1_HWC_SRC - [12:11] */
-#define WM831X_DC1_HWC_VSEL 0x0400 /* DC1_HWC_VSEL */
-#define WM831X_DC1_HWC_VSEL_MASK 0x0400 /* DC1_HWC_VSEL */
-#define WM831X_DC1_HWC_VSEL_SHIFT 10 /* DC1_HWC_VSEL */
-#define WM831X_DC1_HWC_VSEL_WIDTH 1 /* DC1_HWC_VSEL */
-#define WM831X_DC1_HWC_MODE_MASK 0x0300 /* DC1_HWC_MODE - [9:8] */
-#define WM831X_DC1_HWC_MODE_SHIFT 8 /* DC1_HWC_MODE - [9:8] */
-#define WM831X_DC1_HWC_MODE_WIDTH 2 /* DC1_HWC_MODE - [9:8] */
-#define WM831X_DC1_HC_THR_MASK 0x0070 /* DC1_HC_THR - [6:4] */
-#define WM831X_DC1_HC_THR_SHIFT 4 /* DC1_HC_THR - [6:4] */
-#define WM831X_DC1_HC_THR_WIDTH 3 /* DC1_HC_THR - [6:4] */
-#define WM831X_DC1_HC_IND_ENA 0x0001 /* DC1_HC_IND_ENA */
-#define WM831X_DC1_HC_IND_ENA_MASK 0x0001 /* DC1_HC_IND_ENA */
-#define WM831X_DC1_HC_IND_ENA_SHIFT 0 /* DC1_HC_IND_ENA */
-#define WM831X_DC1_HC_IND_ENA_WIDTH 1 /* DC1_HC_IND_ENA */
-
-/*
- * R16472 (0x4058) - DC1 ON Config
- */
-#define WM831X_DC1_ON_SLOT_MASK 0xE000 /* DC1_ON_SLOT - [15:13] */
-#define WM831X_DC1_ON_SLOT_SHIFT 13 /* DC1_ON_SLOT - [15:13] */
-#define WM831X_DC1_ON_SLOT_WIDTH 3 /* DC1_ON_SLOT - [15:13] */
-#define WM831X_DC1_ON_MODE_MASK 0x0300 /* DC1_ON_MODE - [9:8] */
-#define WM831X_DC1_ON_MODE_SHIFT 8 /* DC1_ON_MODE - [9:8] */
-#define WM831X_DC1_ON_MODE_WIDTH 2 /* DC1_ON_MODE - [9:8] */
-#define WM831X_DC1_ON_VSEL_MASK 0x007F /* DC1_ON_VSEL - [6:0] */
-#define WM831X_DC1_ON_VSEL_SHIFT 0 /* DC1_ON_VSEL - [6:0] */
-#define WM831X_DC1_ON_VSEL_WIDTH 7 /* DC1_ON_VSEL - [6:0] */
-
-/*
- * R16473 (0x4059) - DC1 SLEEP Control
- */
-#define WM831X_DC1_SLP_SLOT_MASK 0xE000 /* DC1_SLP_SLOT - [15:13] */
-#define WM831X_DC1_SLP_SLOT_SHIFT 13 /* DC1_SLP_SLOT - [15:13] */
-#define WM831X_DC1_SLP_SLOT_WIDTH 3 /* DC1_SLP_SLOT - [15:13] */
-#define WM831X_DC1_SLP_MODE_MASK 0x0300 /* DC1_SLP_MODE - [9:8] */
-#define WM831X_DC1_SLP_MODE_SHIFT 8 /* DC1_SLP_MODE - [9:8] */
-#define WM831X_DC1_SLP_MODE_WIDTH 2 /* DC1_SLP_MODE - [9:8] */
-#define WM831X_DC1_SLP_VSEL_MASK 0x007F /* DC1_SLP_VSEL - [6:0] */
-#define WM831X_DC1_SLP_VSEL_SHIFT 0 /* DC1_SLP_VSEL - [6:0] */
-#define WM831X_DC1_SLP_VSEL_WIDTH 7 /* DC1_SLP_VSEL - [6:0] */
-
-/*
- * R16474 (0x405A) - DC1 DVS Control
- */
-#define WM831X_DC1_DVS_SRC_MASK 0x1800 /* DC1_DVS_SRC - [12:11] */
-#define WM831X_DC1_DVS_SRC_SHIFT 11 /* DC1_DVS_SRC - [12:11] */
-#define WM831X_DC1_DVS_SRC_WIDTH 2 /* DC1_DVS_SRC - [12:11] */
-#define WM831X_DC1_DVS_VSEL_MASK 0x007F /* DC1_DVS_VSEL - [6:0] */
-#define WM831X_DC1_DVS_VSEL_SHIFT 0 /* DC1_DVS_VSEL - [6:0] */
-#define WM831X_DC1_DVS_VSEL_WIDTH 7 /* DC1_DVS_VSEL - [6:0] */
-
-/*
- * R16475 (0x405B) - DC2 Control 1
- */
-#define WM831X_DC2_RATE_MASK 0xC000 /* DC2_RATE - [15:14] */
-#define WM831X_DC2_RATE_SHIFT 14 /* DC2_RATE - [15:14] */
-#define WM831X_DC2_RATE_WIDTH 2 /* DC2_RATE - [15:14] */
-#define WM831X_DC2_PHASE 0x1000 /* DC2_PHASE */
-#define WM831X_DC2_PHASE_MASK 0x1000 /* DC2_PHASE */
-#define WM831X_DC2_PHASE_SHIFT 12 /* DC2_PHASE */
-#define WM831X_DC2_PHASE_WIDTH 1 /* DC2_PHASE */
-#define WM831X_DC2_FREQ_MASK 0x0300 /* DC2_FREQ - [9:8] */
-#define WM831X_DC2_FREQ_SHIFT 8 /* DC2_FREQ - [9:8] */
-#define WM831X_DC2_FREQ_WIDTH 2 /* DC2_FREQ - [9:8] */
-#define WM831X_DC2_FLT 0x0080 /* DC2_FLT */
-#define WM831X_DC2_FLT_MASK 0x0080 /* DC2_FLT */
-#define WM831X_DC2_FLT_SHIFT 7 /* DC2_FLT */
-#define WM831X_DC2_FLT_WIDTH 1 /* DC2_FLT */
-#define WM831X_DC2_SOFT_START_MASK 0x0030 /* DC2_SOFT_START - [5:4] */
-#define WM831X_DC2_SOFT_START_SHIFT 4 /* DC2_SOFT_START - [5:4] */
-#define WM831X_DC2_SOFT_START_WIDTH 2 /* DC2_SOFT_START - [5:4] */
-#define WM831X_DC2_CAP_MASK 0x0003 /* DC2_CAP - [1:0] */
-#define WM831X_DC2_CAP_SHIFT 0 /* DC2_CAP - [1:0] */
-#define WM831X_DC2_CAP_WIDTH 2 /* DC2_CAP - [1:0] */
-
-/*
- * R16476 (0x405C) - DC2 Control 2
- */
-#define WM831X_DC2_ERR_ACT_MASK 0xC000 /* DC2_ERR_ACT - [15:14] */
-#define WM831X_DC2_ERR_ACT_SHIFT 14 /* DC2_ERR_ACT - [15:14] */
-#define WM831X_DC2_ERR_ACT_WIDTH 2 /* DC2_ERR_ACT - [15:14] */
-#define WM831X_DC2_HWC_SRC_MASK 0x1800 /* DC2_HWC_SRC - [12:11] */
-#define WM831X_DC2_HWC_SRC_SHIFT 11 /* DC2_HWC_SRC - [12:11] */
-#define WM831X_DC2_HWC_SRC_WIDTH 2 /* DC2_HWC_SRC - [12:11] */
-#define WM831X_DC2_HWC_VSEL 0x0400 /* DC2_HWC_VSEL */
-#define WM831X_DC2_HWC_VSEL_MASK 0x0400 /* DC2_HWC_VSEL */
-#define WM831X_DC2_HWC_VSEL_SHIFT 10 /* DC2_HWC_VSEL */
-#define WM831X_DC2_HWC_VSEL_WIDTH 1 /* DC2_HWC_VSEL */
-#define WM831X_DC2_HWC_MODE_MASK 0x0300 /* DC2_HWC_MODE - [9:8] */
-#define WM831X_DC2_HWC_MODE_SHIFT 8 /* DC2_HWC_MODE - [9:8] */
-#define WM831X_DC2_HWC_MODE_WIDTH 2 /* DC2_HWC_MODE - [9:8] */
-#define WM831X_DC2_HC_THR_MASK 0x0070 /* DC2_HC_THR - [6:4] */
-#define WM831X_DC2_HC_THR_SHIFT 4 /* DC2_HC_THR - [6:4] */
-#define WM831X_DC2_HC_THR_WIDTH 3 /* DC2_HC_THR - [6:4] */
-#define WM831X_DC2_HC_IND_ENA 0x0001 /* DC2_HC_IND_ENA */
-#define WM831X_DC2_HC_IND_ENA_MASK 0x0001 /* DC2_HC_IND_ENA */
-#define WM831X_DC2_HC_IND_ENA_SHIFT 0 /* DC2_HC_IND_ENA */
-#define WM831X_DC2_HC_IND_ENA_WIDTH 1 /* DC2_HC_IND_ENA */
-
-/*
- * R16477 (0x405D) - DC2 ON Config
- */
-#define WM831X_DC2_ON_SLOT_MASK 0xE000 /* DC2_ON_SLOT - [15:13] */
-#define WM831X_DC2_ON_SLOT_SHIFT 13 /* DC2_ON_SLOT - [15:13] */
-#define WM831X_DC2_ON_SLOT_WIDTH 3 /* DC2_ON_SLOT - [15:13] */
-#define WM831X_DC2_ON_MODE_MASK 0x0300 /* DC2_ON_MODE - [9:8] */
-#define WM831X_DC2_ON_MODE_SHIFT 8 /* DC2_ON_MODE - [9:8] */
-#define WM831X_DC2_ON_MODE_WIDTH 2 /* DC2_ON_MODE - [9:8] */
-#define WM831X_DC2_ON_VSEL_MASK 0x007F /* DC2_ON_VSEL - [6:0] */
-#define WM831X_DC2_ON_VSEL_SHIFT 0 /* DC2_ON_VSEL - [6:0] */
-#define WM831X_DC2_ON_VSEL_WIDTH 7 /* DC2_ON_VSEL - [6:0] */
-
-/*
- * R16478 (0x405E) - DC2 SLEEP Control
- */
-#define WM831X_DC2_SLP_SLOT_MASK 0xE000 /* DC2_SLP_SLOT - [15:13] */
-#define WM831X_DC2_SLP_SLOT_SHIFT 13 /* DC2_SLP_SLOT - [15:13] */
-#define WM831X_DC2_SLP_SLOT_WIDTH 3 /* DC2_SLP_SLOT - [15:13] */
-#define WM831X_DC2_SLP_MODE_MASK 0x0300 /* DC2_SLP_MODE - [9:8] */
-#define WM831X_DC2_SLP_MODE_SHIFT 8 /* DC2_SLP_MODE - [9:8] */
-#define WM831X_DC2_SLP_MODE_WIDTH 2 /* DC2_SLP_MODE - [9:8] */
-#define WM831X_DC2_SLP_VSEL_MASK 0x007F /* DC2_SLP_VSEL - [6:0] */
-#define WM831X_DC2_SLP_VSEL_SHIFT 0 /* DC2_SLP_VSEL - [6:0] */
-#define WM831X_DC2_SLP_VSEL_WIDTH 7 /* DC2_SLP_VSEL - [6:0] */
-
-/*
- * R16479 (0x405F) - DC2 DVS Control
- */
-#define WM831X_DC2_DVS_SRC_MASK 0x1800 /* DC2_DVS_SRC - [12:11] */
-#define WM831X_DC2_DVS_SRC_SHIFT 11 /* DC2_DVS_SRC - [12:11] */
-#define WM831X_DC2_DVS_SRC_WIDTH 2 /* DC2_DVS_SRC - [12:11] */
-#define WM831X_DC2_DVS_VSEL_MASK 0x007F /* DC2_DVS_VSEL - [6:0] */
-#define WM831X_DC2_DVS_VSEL_SHIFT 0 /* DC2_DVS_VSEL - [6:0] */
-#define WM831X_DC2_DVS_VSEL_WIDTH 7 /* DC2_DVS_VSEL - [6:0] */
-
-/*
- * R16480 (0x4060) - DC3 Control 1
- */
-#define WM831X_DC3_PHASE 0x1000 /* DC3_PHASE */
-#define WM831X_DC3_PHASE_MASK 0x1000 /* DC3_PHASE */
-#define WM831X_DC3_PHASE_SHIFT 12 /* DC3_PHASE */
-#define WM831X_DC3_PHASE_WIDTH 1 /* DC3_PHASE */
-#define WM831X_DC3_FLT 0x0080 /* DC3_FLT */
-#define WM831X_DC3_FLT_MASK 0x0080 /* DC3_FLT */
-#define WM831X_DC3_FLT_SHIFT 7 /* DC3_FLT */
-#define WM831X_DC3_FLT_WIDTH 1 /* DC3_FLT */
-#define WM831X_DC3_SOFT_START_MASK 0x0030 /* DC3_SOFT_START - [5:4] */
-#define WM831X_DC3_SOFT_START_SHIFT 4 /* DC3_SOFT_START - [5:4] */
-#define WM831X_DC3_SOFT_START_WIDTH 2 /* DC3_SOFT_START - [5:4] */
-#define WM831X_DC3_STNBY_LIM_MASK 0x000C /* DC3_STNBY_LIM - [3:2] */
-#define WM831X_DC3_STNBY_LIM_SHIFT 2 /* DC3_STNBY_LIM - [3:2] */
-#define WM831X_DC3_STNBY_LIM_WIDTH 2 /* DC3_STNBY_LIM - [3:2] */
-#define WM831X_DC3_CAP_MASK 0x0003 /* DC3_CAP - [1:0] */
-#define WM831X_DC3_CAP_SHIFT 0 /* DC3_CAP - [1:0] */
-#define WM831X_DC3_CAP_WIDTH 2 /* DC3_CAP - [1:0] */
-
-/*
- * R16481 (0x4061) - DC3 Control 2
- */
-#define WM831X_DC3_ERR_ACT_MASK 0xC000 /* DC3_ERR_ACT - [15:14] */
-#define WM831X_DC3_ERR_ACT_SHIFT 14 /* DC3_ERR_ACT - [15:14] */
-#define WM831X_DC3_ERR_ACT_WIDTH 2 /* DC3_ERR_ACT - [15:14] */
-#define WM831X_DC3_HWC_SRC_MASK 0x1800 /* DC3_HWC_SRC - [12:11] */
-#define WM831X_DC3_HWC_SRC_SHIFT 11 /* DC3_HWC_SRC - [12:11] */
-#define WM831X_DC3_HWC_SRC_WIDTH 2 /* DC3_HWC_SRC - [12:11] */
-#define WM831X_DC3_HWC_VSEL 0x0400 /* DC3_HWC_VSEL */
-#define WM831X_DC3_HWC_VSEL_MASK 0x0400 /* DC3_HWC_VSEL */
-#define WM831X_DC3_HWC_VSEL_SHIFT 10 /* DC3_HWC_VSEL */
-#define WM831X_DC3_HWC_VSEL_WIDTH 1 /* DC3_HWC_VSEL */
-#define WM831X_DC3_HWC_MODE_MASK 0x0300 /* DC3_HWC_MODE - [9:8] */
-#define WM831X_DC3_HWC_MODE_SHIFT 8 /* DC3_HWC_MODE - [9:8] */
-#define WM831X_DC3_HWC_MODE_WIDTH 2 /* DC3_HWC_MODE - [9:8] */
-#define WM831X_DC3_OVP 0x0080 /* DC3_OVP */
-#define WM831X_DC3_OVP_MASK 0x0080 /* DC3_OVP */
-#define WM831X_DC3_OVP_SHIFT 7 /* DC3_OVP */
-#define WM831X_DC3_OVP_WIDTH 1 /* DC3_OVP */
-
-/*
- * R16482 (0x4062) - DC3 ON Config
- */
-#define WM831X_DC3_ON_SLOT_MASK 0xE000 /* DC3_ON_SLOT - [15:13] */
-#define WM831X_DC3_ON_SLOT_SHIFT 13 /* DC3_ON_SLOT - [15:13] */
-#define WM831X_DC3_ON_SLOT_WIDTH 3 /* DC3_ON_SLOT - [15:13] */
-#define WM831X_DC3_ON_MODE_MASK 0x0300 /* DC3_ON_MODE - [9:8] */
-#define WM831X_DC3_ON_MODE_SHIFT 8 /* DC3_ON_MODE - [9:8] */
-#define WM831X_DC3_ON_MODE_WIDTH 2 /* DC3_ON_MODE - [9:8] */
-#define WM831X_DC3_ON_VSEL_MASK 0x007F /* DC3_ON_VSEL - [6:0] */
-#define WM831X_DC3_ON_VSEL_SHIFT 0 /* DC3_ON_VSEL - [6:0] */
-#define WM831X_DC3_ON_VSEL_WIDTH 7 /* DC3_ON_VSEL - [6:0] */
-
-/*
- * R16483 (0x4063) - DC3 SLEEP Control
- */
-#define WM831X_DC3_SLP_SLOT_MASK 0xE000 /* DC3_SLP_SLOT - [15:13] */
-#define WM831X_DC3_SLP_SLOT_SHIFT 13 /* DC3_SLP_SLOT - [15:13] */
-#define WM831X_DC3_SLP_SLOT_WIDTH 3 /* DC3_SLP_SLOT - [15:13] */
-#define WM831X_DC3_SLP_MODE_MASK 0x0300 /* DC3_SLP_MODE - [9:8] */
-#define WM831X_DC3_SLP_MODE_SHIFT 8 /* DC3_SLP_MODE - [9:8] */
-#define WM831X_DC3_SLP_MODE_WIDTH 2 /* DC3_SLP_MODE - [9:8] */
-#define WM831X_DC3_SLP_VSEL_MASK 0x007F /* DC3_SLP_VSEL - [6:0] */
-#define WM831X_DC3_SLP_VSEL_SHIFT 0 /* DC3_SLP_VSEL - [6:0] */
-#define WM831X_DC3_SLP_VSEL_WIDTH 7 /* DC3_SLP_VSEL - [6:0] */
-
-/*
- * R16484 (0x4064) - DC4 Control
- */
-#define WM831X_DC4_ERR_ACT_MASK 0xC000 /* DC4_ERR_ACT - [15:14] */
-#define WM831X_DC4_ERR_ACT_SHIFT 14 /* DC4_ERR_ACT - [15:14] */
-#define WM831X_DC4_ERR_ACT_WIDTH 2 /* DC4_ERR_ACT - [15:14] */
-#define WM831X_DC4_HWC_SRC_MASK 0x1800 /* DC4_HWC_SRC - [12:11] */
-#define WM831X_DC4_HWC_SRC_SHIFT 11 /* DC4_HWC_SRC - [12:11] */
-#define WM831X_DC4_HWC_SRC_WIDTH 2 /* DC4_HWC_SRC - [12:11] */
-#define WM831X_DC4_HWC_MODE 0x0100 /* DC4_HWC_MODE */
-#define WM831X_DC4_HWC_MODE_MASK 0x0100 /* DC4_HWC_MODE */
-#define WM831X_DC4_HWC_MODE_SHIFT 8 /* DC4_HWC_MODE */
-#define WM831X_DC4_HWC_MODE_WIDTH 1 /* DC4_HWC_MODE */
-#define WM831X_DC4_RANGE_MASK 0x000C /* DC4_RANGE - [3:2] */
-#define WM831X_DC4_RANGE_SHIFT 2 /* DC4_RANGE - [3:2] */
-#define WM831X_DC4_RANGE_WIDTH 2 /* DC4_RANGE - [3:2] */
-#define WM831X_DC4_FBSRC 0x0001 /* DC4_FBSRC */
-#define WM831X_DC4_FBSRC_MASK 0x0001 /* DC4_FBSRC */
-#define WM831X_DC4_FBSRC_SHIFT 0 /* DC4_FBSRC */
-#define WM831X_DC4_FBSRC_WIDTH 1 /* DC4_FBSRC */
-
-/*
- * R16485 (0x4065) - DC4 SLEEP Control
- */
-#define WM831X_DC4_SLPENA 0x0100 /* DC4_SLPENA */
-#define WM831X_DC4_SLPENA_MASK 0x0100 /* DC4_SLPENA */
-#define WM831X_DC4_SLPENA_SHIFT 8 /* DC4_SLPENA */
-#define WM831X_DC4_SLPENA_WIDTH 1 /* DC4_SLPENA */
-
-/*
- * R16488 (0x4068) - LDO1 Control
- */
-#define WM831X_LDO1_ERR_ACT_MASK 0xC000 /* LDO1_ERR_ACT - [15:14] */
-#define WM831X_LDO1_ERR_ACT_SHIFT 14 /* LDO1_ERR_ACT - [15:14] */
-#define WM831X_LDO1_ERR_ACT_WIDTH 2 /* LDO1_ERR_ACT - [15:14] */
-#define WM831X_LDO1_HWC_SRC_MASK 0x1800 /* LDO1_HWC_SRC - [12:11] */
-#define WM831X_LDO1_HWC_SRC_SHIFT 11 /* LDO1_HWC_SRC - [12:11] */
-#define WM831X_LDO1_HWC_SRC_WIDTH 2 /* LDO1_HWC_SRC - [12:11] */
-#define WM831X_LDO1_HWC_VSEL 0x0400 /* LDO1_HWC_VSEL */
-#define WM831X_LDO1_HWC_VSEL_MASK 0x0400 /* LDO1_HWC_VSEL */
-#define WM831X_LDO1_HWC_VSEL_SHIFT 10 /* LDO1_HWC_VSEL */
-#define WM831X_LDO1_HWC_VSEL_WIDTH 1 /* LDO1_HWC_VSEL */
-#define WM831X_LDO1_HWC_MODE_MASK 0x0300 /* LDO1_HWC_MODE - [9:8] */
-#define WM831X_LDO1_HWC_MODE_SHIFT 8 /* LDO1_HWC_MODE - [9:8] */
-#define WM831X_LDO1_HWC_MODE_WIDTH 2 /* LDO1_HWC_MODE - [9:8] */
-#define WM831X_LDO1_FLT 0x0080 /* LDO1_FLT */
-#define WM831X_LDO1_FLT_MASK 0x0080 /* LDO1_FLT */
-#define WM831X_LDO1_FLT_SHIFT 7 /* LDO1_FLT */
-#define WM831X_LDO1_FLT_WIDTH 1 /* LDO1_FLT */
-#define WM831X_LDO1_SWI 0x0040 /* LDO1_SWI */
-#define WM831X_LDO1_SWI_MASK 0x0040 /* LDO1_SWI */
-#define WM831X_LDO1_SWI_SHIFT 6 /* LDO1_SWI */
-#define WM831X_LDO1_SWI_WIDTH 1 /* LDO1_SWI */
-#define WM831X_LDO1_LP_MODE 0x0001 /* LDO1_LP_MODE */
-#define WM831X_LDO1_LP_MODE_MASK 0x0001 /* LDO1_LP_MODE */
-#define WM831X_LDO1_LP_MODE_SHIFT 0 /* LDO1_LP_MODE */
-#define WM831X_LDO1_LP_MODE_WIDTH 1 /* LDO1_LP_MODE */
-
-/*
- * R16489 (0x4069) - LDO1 ON Control
- */
-#define WM831X_LDO1_ON_SLOT_MASK 0xE000 /* LDO1_ON_SLOT - [15:13] */
-#define WM831X_LDO1_ON_SLOT_SHIFT 13 /* LDO1_ON_SLOT - [15:13] */
-#define WM831X_LDO1_ON_SLOT_WIDTH 3 /* LDO1_ON_SLOT - [15:13] */
-#define WM831X_LDO1_ON_MODE 0x0100 /* LDO1_ON_MODE */
-#define WM831X_LDO1_ON_MODE_MASK 0x0100 /* LDO1_ON_MODE */
-#define WM831X_LDO1_ON_MODE_SHIFT 8 /* LDO1_ON_MODE */
-#define WM831X_LDO1_ON_MODE_WIDTH 1 /* LDO1_ON_MODE */
-#define WM831X_LDO1_ON_VSEL_MASK 0x001F /* LDO1_ON_VSEL - [4:0] */
-#define WM831X_LDO1_ON_VSEL_SHIFT 0 /* LDO1_ON_VSEL - [4:0] */
-#define WM831X_LDO1_ON_VSEL_WIDTH 5 /* LDO1_ON_VSEL - [4:0] */
-
-/*
- * R16490 (0x406A) - LDO1 SLEEP Control
- */
-#define WM831X_LDO1_SLP_SLOT_MASK 0xE000 /* LDO1_SLP_SLOT - [15:13] */
-#define WM831X_LDO1_SLP_SLOT_SHIFT 13 /* LDO1_SLP_SLOT - [15:13] */
-#define WM831X_LDO1_SLP_SLOT_WIDTH 3 /* LDO1_SLP_SLOT - [15:13] */
-#define WM831X_LDO1_SLP_MODE 0x0100 /* LDO1_SLP_MODE */
-#define WM831X_LDO1_SLP_MODE_MASK 0x0100 /* LDO1_SLP_MODE */
-#define WM831X_LDO1_SLP_MODE_SHIFT 8 /* LDO1_SLP_MODE */
-#define WM831X_LDO1_SLP_MODE_WIDTH 1 /* LDO1_SLP_MODE */
-#define WM831X_LDO1_SLP_VSEL_MASK 0x001F /* LDO1_SLP_VSEL - [4:0] */
-#define WM831X_LDO1_SLP_VSEL_SHIFT 0 /* LDO1_SLP_VSEL - [4:0] */
-#define WM831X_LDO1_SLP_VSEL_WIDTH 5 /* LDO1_SLP_VSEL - [4:0] */
-
-/*
- * R16491 (0x406B) - LDO2 Control
- */
-#define WM831X_LDO2_ERR_ACT_MASK 0xC000 /* LDO2_ERR_ACT - [15:14] */
-#define WM831X_LDO2_ERR_ACT_SHIFT 14 /* LDO2_ERR_ACT - [15:14] */
-#define WM831X_LDO2_ERR_ACT_WIDTH 2 /* LDO2_ERR_ACT - [15:14] */
-#define WM831X_LDO2_HWC_SRC_MASK 0x1800 /* LDO2_HWC_SRC - [12:11] */
-#define WM831X_LDO2_HWC_SRC_SHIFT 11 /* LDO2_HWC_SRC - [12:11] */
-#define WM831X_LDO2_HWC_SRC_WIDTH 2 /* LDO2_HWC_SRC - [12:11] */
-#define WM831X_LDO2_HWC_VSEL 0x0400 /* LDO2_HWC_VSEL */
-#define WM831X_LDO2_HWC_VSEL_MASK 0x0400 /* LDO2_HWC_VSEL */
-#define WM831X_LDO2_HWC_VSEL_SHIFT 10 /* LDO2_HWC_VSEL */
-#define WM831X_LDO2_HWC_VSEL_WIDTH 1 /* LDO2_HWC_VSEL */
-#define WM831X_LDO2_HWC_MODE_MASK 0x0300 /* LDO2_HWC_MODE - [9:8] */
-#define WM831X_LDO2_HWC_MODE_SHIFT 8 /* LDO2_HWC_MODE - [9:8] */
-#define WM831X_LDO2_HWC_MODE_WIDTH 2 /* LDO2_HWC_MODE - [9:8] */
-#define WM831X_LDO2_FLT 0x0080 /* LDO2_FLT */
-#define WM831X_LDO2_FLT_MASK 0x0080 /* LDO2_FLT */
-#define WM831X_LDO2_FLT_SHIFT 7 /* LDO2_FLT */
-#define WM831X_LDO2_FLT_WIDTH 1 /* LDO2_FLT */
-#define WM831X_LDO2_SWI 0x0040 /* LDO2_SWI */
-#define WM831X_LDO2_SWI_MASK 0x0040 /* LDO2_SWI */
-#define WM831X_LDO2_SWI_SHIFT 6 /* LDO2_SWI */
-#define WM831X_LDO2_SWI_WIDTH 1 /* LDO2_SWI */
-#define WM831X_LDO2_LP_MODE 0x0001 /* LDO2_LP_MODE */
-#define WM831X_LDO2_LP_MODE_MASK 0x0001 /* LDO2_LP_MODE */
-#define WM831X_LDO2_LP_MODE_SHIFT 0 /* LDO2_LP_MODE */
-#define WM831X_LDO2_LP_MODE_WIDTH 1 /* LDO2_LP_MODE */
-
-/*
- * R16492 (0x406C) - LDO2 ON Control
- */
-#define WM831X_LDO2_ON_SLOT_MASK 0xE000 /* LDO2_ON_SLOT - [15:13] */
-#define WM831X_LDO2_ON_SLOT_SHIFT 13 /* LDO2_ON_SLOT - [15:13] */
-#define WM831X_LDO2_ON_SLOT_WIDTH 3 /* LDO2_ON_SLOT - [15:13] */
-#define WM831X_LDO2_ON_MODE 0x0100 /* LDO2_ON_MODE */
-#define WM831X_LDO2_ON_MODE_MASK 0x0100 /* LDO2_ON_MODE */
-#define WM831X_LDO2_ON_MODE_SHIFT 8 /* LDO2_ON_MODE */
-#define WM831X_LDO2_ON_MODE_WIDTH 1 /* LDO2_ON_MODE */
-#define WM831X_LDO2_ON_VSEL_MASK 0x001F /* LDO2_ON_VSEL - [4:0] */
-#define WM831X_LDO2_ON_VSEL_SHIFT 0 /* LDO2_ON_VSEL - [4:0] */
-#define WM831X_LDO2_ON_VSEL_WIDTH 5 /* LDO2_ON_VSEL - [4:0] */
-
-/*
- * R16493 (0x406D) - LDO2 SLEEP Control
- */
-#define WM831X_LDO2_SLP_SLOT_MASK 0xE000 /* LDO2_SLP_SLOT - [15:13] */
-#define WM831X_LDO2_SLP_SLOT_SHIFT 13 /* LDO2_SLP_SLOT - [15:13] */
-#define WM831X_LDO2_SLP_SLOT_WIDTH 3 /* LDO2_SLP_SLOT - [15:13] */
-#define WM831X_LDO2_SLP_MODE 0x0100 /* LDO2_SLP_MODE */
-#define WM831X_LDO2_SLP_MODE_MASK 0x0100 /* LDO2_SLP_MODE */
-#define WM831X_LDO2_SLP_MODE_SHIFT 8 /* LDO2_SLP_MODE */
-#define WM831X_LDO2_SLP_MODE_WIDTH 1 /* LDO2_SLP_MODE */
-#define WM831X_LDO2_SLP_VSEL_MASK 0x001F /* LDO2_SLP_VSEL - [4:0] */
-#define WM831X_LDO2_SLP_VSEL_SHIFT 0 /* LDO2_SLP_VSEL - [4:0] */
-#define WM831X_LDO2_SLP_VSEL_WIDTH 5 /* LDO2_SLP_VSEL - [4:0] */
-
-/*
- * R16494 (0x406E) - LDO3 Control
- */
-#define WM831X_LDO3_ERR_ACT_MASK 0xC000 /* LDO3_ERR_ACT - [15:14] */
-#define WM831X_LDO3_ERR_ACT_SHIFT 14 /* LDO3_ERR_ACT - [15:14] */
-#define WM831X_LDO3_ERR_ACT_WIDTH 2 /* LDO3_ERR_ACT - [15:14] */
-#define WM831X_LDO3_HWC_SRC_MASK 0x1800 /* LDO3_HWC_SRC - [12:11] */
-#define WM831X_LDO3_HWC_SRC_SHIFT 11 /* LDO3_HWC_SRC - [12:11] */
-#define WM831X_LDO3_HWC_SRC_WIDTH 2 /* LDO3_HWC_SRC - [12:11] */
-#define WM831X_LDO3_HWC_VSEL 0x0400 /* LDO3_HWC_VSEL */
-#define WM831X_LDO3_HWC_VSEL_MASK 0x0400 /* LDO3_HWC_VSEL */
-#define WM831X_LDO3_HWC_VSEL_SHIFT 10 /* LDO3_HWC_VSEL */
-#define WM831X_LDO3_HWC_VSEL_WIDTH 1 /* LDO3_HWC_VSEL */
-#define WM831X_LDO3_HWC_MODE_MASK 0x0300 /* LDO3_HWC_MODE - [9:8] */
-#define WM831X_LDO3_HWC_MODE_SHIFT 8 /* LDO3_HWC_MODE - [9:8] */
-#define WM831X_LDO3_HWC_MODE_WIDTH 2 /* LDO3_HWC_MODE - [9:8] */
-#define WM831X_LDO3_FLT 0x0080 /* LDO3_FLT */
-#define WM831X_LDO3_FLT_MASK 0x0080 /* LDO3_FLT */
-#define WM831X_LDO3_FLT_SHIFT 7 /* LDO3_FLT */
-#define WM831X_LDO3_FLT_WIDTH 1 /* LDO3_FLT */
-#define WM831X_LDO3_SWI 0x0040 /* LDO3_SWI */
-#define WM831X_LDO3_SWI_MASK 0x0040 /* LDO3_SWI */
-#define WM831X_LDO3_SWI_SHIFT 6 /* LDO3_SWI */
-#define WM831X_LDO3_SWI_WIDTH 1 /* LDO3_SWI */
-#define WM831X_LDO3_LP_MODE 0x0001 /* LDO3_LP_MODE */
-#define WM831X_LDO3_LP_MODE_MASK 0x0001 /* LDO3_LP_MODE */
-#define WM831X_LDO3_LP_MODE_SHIFT 0 /* LDO3_LP_MODE */
-#define WM831X_LDO3_LP_MODE_WIDTH 1 /* LDO3_LP_MODE */
-
-/*
- * R16495 (0x406F) - LDO3 ON Control
- */
-#define WM831X_LDO3_ON_SLOT_MASK 0xE000 /* LDO3_ON_SLOT - [15:13] */
-#define WM831X_LDO3_ON_SLOT_SHIFT 13 /* LDO3_ON_SLOT - [15:13] */
-#define WM831X_LDO3_ON_SLOT_WIDTH 3 /* LDO3_ON_SLOT - [15:13] */
-#define WM831X_LDO3_ON_MODE 0x0100 /* LDO3_ON_MODE */
-#define WM831X_LDO3_ON_MODE_MASK 0x0100 /* LDO3_ON_MODE */
-#define WM831X_LDO3_ON_MODE_SHIFT 8 /* LDO3_ON_MODE */
-#define WM831X_LDO3_ON_MODE_WIDTH 1 /* LDO3_ON_MODE */
-#define WM831X_LDO3_ON_VSEL_MASK 0x001F /* LDO3_ON_VSEL - [4:0] */
-#define WM831X_LDO3_ON_VSEL_SHIFT 0 /* LDO3_ON_VSEL - [4:0] */
-#define WM831X_LDO3_ON_VSEL_WIDTH 5 /* LDO3_ON_VSEL - [4:0] */
-
-/*
- * R16496 (0x4070) - LDO3 SLEEP Control
- */
-#define WM831X_LDO3_SLP_SLOT_MASK 0xE000 /* LDO3_SLP_SLOT - [15:13] */
-#define WM831X_LDO3_SLP_SLOT_SHIFT 13 /* LDO3_SLP_SLOT - [15:13] */
-#define WM831X_LDO3_SLP_SLOT_WIDTH 3 /* LDO3_SLP_SLOT - [15:13] */
-#define WM831X_LDO3_SLP_MODE 0x0100 /* LDO3_SLP_MODE */
-#define WM831X_LDO3_SLP_MODE_MASK 0x0100 /* LDO3_SLP_MODE */
-#define WM831X_LDO3_SLP_MODE_SHIFT 8 /* LDO3_SLP_MODE */
-#define WM831X_LDO3_SLP_MODE_WIDTH 1 /* LDO3_SLP_MODE */
-#define WM831X_LDO3_SLP_VSEL_MASK 0x001F /* LDO3_SLP_VSEL - [4:0] */
-#define WM831X_LDO3_SLP_VSEL_SHIFT 0 /* LDO3_SLP_VSEL - [4:0] */
-#define WM831X_LDO3_SLP_VSEL_WIDTH 5 /* LDO3_SLP_VSEL - [4:0] */
-
-/*
- * R16497 (0x4071) - LDO4 Control
- */
-#define WM831X_LDO4_ERR_ACT_MASK 0xC000 /* LDO4_ERR_ACT - [15:14] */
-#define WM831X_LDO4_ERR_ACT_SHIFT 14 /* LDO4_ERR_ACT - [15:14] */
-#define WM831X_LDO4_ERR_ACT_WIDTH 2 /* LDO4_ERR_ACT - [15:14] */
-#define WM831X_LDO4_HWC_SRC_MASK 0x1800 /* LDO4_HWC_SRC - [12:11] */
-#define WM831X_LDO4_HWC_SRC_SHIFT 11 /* LDO4_HWC_SRC - [12:11] */
-#define WM831X_LDO4_HWC_SRC_WIDTH 2 /* LDO4_HWC_SRC - [12:11] */
-#define WM831X_LDO4_HWC_VSEL 0x0400 /* LDO4_HWC_VSEL */
-#define WM831X_LDO4_HWC_VSEL_MASK 0x0400 /* LDO4_HWC_VSEL */
-#define WM831X_LDO4_HWC_VSEL_SHIFT 10 /* LDO4_HWC_VSEL */
-#define WM831X_LDO4_HWC_VSEL_WIDTH 1 /* LDO4_HWC_VSEL */
-#define WM831X_LDO4_HWC_MODE_MASK 0x0300 /* LDO4_HWC_MODE - [9:8] */
-#define WM831X_LDO4_HWC_MODE_SHIFT 8 /* LDO4_HWC_MODE - [9:8] */
-#define WM831X_LDO4_HWC_MODE_WIDTH 2 /* LDO4_HWC_MODE - [9:8] */
-#define WM831X_LDO4_FLT 0x0080 /* LDO4_FLT */
-#define WM831X_LDO4_FLT_MASK 0x0080 /* LDO4_FLT */
-#define WM831X_LDO4_FLT_SHIFT 7 /* LDO4_FLT */
-#define WM831X_LDO4_FLT_WIDTH 1 /* LDO4_FLT */
-#define WM831X_LDO4_SWI 0x0040 /* LDO4_SWI */
-#define WM831X_LDO4_SWI_MASK 0x0040 /* LDO4_SWI */
-#define WM831X_LDO4_SWI_SHIFT 6 /* LDO4_SWI */
-#define WM831X_LDO4_SWI_WIDTH 1 /* LDO4_SWI */
-#define WM831X_LDO4_LP_MODE 0x0001 /* LDO4_LP_MODE */
-#define WM831X_LDO4_LP_MODE_MASK 0x0001 /* LDO4_LP_MODE */
-#define WM831X_LDO4_LP_MODE_SHIFT 0 /* LDO4_LP_MODE */
-#define WM831X_LDO4_LP_MODE_WIDTH 1 /* LDO4_LP_MODE */
-
-/*
- * R16498 (0x4072) - LDO4 ON Control
- */
-#define WM831X_LDO4_ON_SLOT_MASK 0xE000 /* LDO4_ON_SLOT - [15:13] */
-#define WM831X_LDO4_ON_SLOT_SHIFT 13 /* LDO4_ON_SLOT - [15:13] */
-#define WM831X_LDO4_ON_SLOT_WIDTH 3 /* LDO4_ON_SLOT - [15:13] */
-#define WM831X_LDO4_ON_MODE 0x0100 /* LDO4_ON_MODE */
-#define WM831X_LDO4_ON_MODE_MASK 0x0100 /* LDO4_ON_MODE */
-#define WM831X_LDO4_ON_MODE_SHIFT 8 /* LDO4_ON_MODE */
-#define WM831X_LDO4_ON_MODE_WIDTH 1 /* LDO4_ON_MODE */
-#define WM831X_LDO4_ON_VSEL_MASK 0x001F /* LDO4_ON_VSEL - [4:0] */
-#define WM831X_LDO4_ON_VSEL_SHIFT 0 /* LDO4_ON_VSEL - [4:0] */
-#define WM831X_LDO4_ON_VSEL_WIDTH 5 /* LDO4_ON_VSEL - [4:0] */
-
-/*
- * R16499 (0x4073) - LDO4 SLEEP Control
- */
-#define WM831X_LDO4_SLP_SLOT_MASK 0xE000 /* LDO4_SLP_SLOT - [15:13] */
-#define WM831X_LDO4_SLP_SLOT_SHIFT 13 /* LDO4_SLP_SLOT - [15:13] */
-#define WM831X_LDO4_SLP_SLOT_WIDTH 3 /* LDO4_SLP_SLOT - [15:13] */
-#define WM831X_LDO4_SLP_MODE 0x0100 /* LDO4_SLP_MODE */
-#define WM831X_LDO4_SLP_MODE_MASK 0x0100 /* LDO4_SLP_MODE */
-#define WM831X_LDO4_SLP_MODE_SHIFT 8 /* LDO4_SLP_MODE */
-#define WM831X_LDO4_SLP_MODE_WIDTH 1 /* LDO4_SLP_MODE */
-#define WM831X_LDO4_SLP_VSEL_MASK 0x001F /* LDO4_SLP_VSEL - [4:0] */
-#define WM831X_LDO4_SLP_VSEL_SHIFT 0 /* LDO4_SLP_VSEL - [4:0] */
-#define WM831X_LDO4_SLP_VSEL_WIDTH 5 /* LDO4_SLP_VSEL - [4:0] */
-
-/*
- * R16500 (0x4074) - LDO5 Control
- */
-#define WM831X_LDO5_ERR_ACT_MASK 0xC000 /* LDO5_ERR_ACT - [15:14] */
-#define WM831X_LDO5_ERR_ACT_SHIFT 14 /* LDO5_ERR_ACT - [15:14] */
-#define WM831X_LDO5_ERR_ACT_WIDTH 2 /* LDO5_ERR_ACT - [15:14] */
-#define WM831X_LDO5_HWC_SRC_MASK 0x1800 /* LDO5_HWC_SRC - [12:11] */
-#define WM831X_LDO5_HWC_SRC_SHIFT 11 /* LDO5_HWC_SRC - [12:11] */
-#define WM831X_LDO5_HWC_SRC_WIDTH 2 /* LDO5_HWC_SRC - [12:11] */
-#define WM831X_LDO5_HWC_VSEL 0x0400 /* LDO5_HWC_VSEL */
-#define WM831X_LDO5_HWC_VSEL_MASK 0x0400 /* LDO5_HWC_VSEL */
-#define WM831X_LDO5_HWC_VSEL_SHIFT 10 /* LDO5_HWC_VSEL */
-#define WM831X_LDO5_HWC_VSEL_WIDTH 1 /* LDO5_HWC_VSEL */
-#define WM831X_LDO5_HWC_MODE_MASK 0x0300 /* LDO5_HWC_MODE - [9:8] */
-#define WM831X_LDO5_HWC_MODE_SHIFT 8 /* LDO5_HWC_MODE - [9:8] */
-#define WM831X_LDO5_HWC_MODE_WIDTH 2 /* LDO5_HWC_MODE - [9:8] */
-#define WM831X_LDO5_FLT 0x0080 /* LDO5_FLT */
-#define WM831X_LDO5_FLT_MASK 0x0080 /* LDO5_FLT */
-#define WM831X_LDO5_FLT_SHIFT 7 /* LDO5_FLT */
-#define WM831X_LDO5_FLT_WIDTH 1 /* LDO5_FLT */
-#define WM831X_LDO5_SWI 0x0040 /* LDO5_SWI */
-#define WM831X_LDO5_SWI_MASK 0x0040 /* LDO5_SWI */
-#define WM831X_LDO5_SWI_SHIFT 6 /* LDO5_SWI */
-#define WM831X_LDO5_SWI_WIDTH 1 /* LDO5_SWI */
-#define WM831X_LDO5_LP_MODE 0x0001 /* LDO5_LP_MODE */
-#define WM831X_LDO5_LP_MODE_MASK 0x0001 /* LDO5_LP_MODE */
-#define WM831X_LDO5_LP_MODE_SHIFT 0 /* LDO5_LP_MODE */
-#define WM831X_LDO5_LP_MODE_WIDTH 1 /* LDO5_LP_MODE */
-
-/*
- * R16501 (0x4075) - LDO5 ON Control
- */
-#define WM831X_LDO5_ON_SLOT_MASK 0xE000 /* LDO5_ON_SLOT - [15:13] */
-#define WM831X_LDO5_ON_SLOT_SHIFT 13 /* LDO5_ON_SLOT - [15:13] */
-#define WM831X_LDO5_ON_SLOT_WIDTH 3 /* LDO5_ON_SLOT - [15:13] */
-#define WM831X_LDO5_ON_MODE 0x0100 /* LDO5_ON_MODE */
-#define WM831X_LDO5_ON_MODE_MASK 0x0100 /* LDO5_ON_MODE */
-#define WM831X_LDO5_ON_MODE_SHIFT 8 /* LDO5_ON_MODE */
-#define WM831X_LDO5_ON_MODE_WIDTH 1 /* LDO5_ON_MODE */
-#define WM831X_LDO5_ON_VSEL_MASK 0x001F /* LDO5_ON_VSEL - [4:0] */
-#define WM831X_LDO5_ON_VSEL_SHIFT 0 /* LDO5_ON_VSEL - [4:0] */
-#define WM831X_LDO5_ON_VSEL_WIDTH 5 /* LDO5_ON_VSEL - [4:0] */
-
-/*
- * R16502 (0x4076) - LDO5 SLEEP Control
- */
-#define WM831X_LDO5_SLP_SLOT_MASK 0xE000 /* LDO5_SLP_SLOT - [15:13] */
-#define WM831X_LDO5_SLP_SLOT_SHIFT 13 /* LDO5_SLP_SLOT - [15:13] */
-#define WM831X_LDO5_SLP_SLOT_WIDTH 3 /* LDO5_SLP_SLOT - [15:13] */
-#define WM831X_LDO5_SLP_MODE 0x0100 /* LDO5_SLP_MODE */
-#define WM831X_LDO5_SLP_MODE_MASK 0x0100 /* LDO5_SLP_MODE */
-#define WM831X_LDO5_SLP_MODE_SHIFT 8 /* LDO5_SLP_MODE */
-#define WM831X_LDO5_SLP_MODE_WIDTH 1 /* LDO5_SLP_MODE */
-#define WM831X_LDO5_SLP_VSEL_MASK 0x001F /* LDO5_SLP_VSEL - [4:0] */
-#define WM831X_LDO5_SLP_VSEL_SHIFT 0 /* LDO5_SLP_VSEL - [4:0] */
-#define WM831X_LDO5_SLP_VSEL_WIDTH 5 /* LDO5_SLP_VSEL - [4:0] */
-
-/*
- * R16503 (0x4077) - LDO6 Control
- */
-#define WM831X_LDO6_ERR_ACT_MASK 0xC000 /* LDO6_ERR_ACT - [15:14] */
-#define WM831X_LDO6_ERR_ACT_SHIFT 14 /* LDO6_ERR_ACT - [15:14] */
-#define WM831X_LDO6_ERR_ACT_WIDTH 2 /* LDO6_ERR_ACT - [15:14] */
-#define WM831X_LDO6_HWC_SRC_MASK 0x1800 /* LDO6_HWC_SRC - [12:11] */
-#define WM831X_LDO6_HWC_SRC_SHIFT 11 /* LDO6_HWC_SRC - [12:11] */
-#define WM831X_LDO6_HWC_SRC_WIDTH 2 /* LDO6_HWC_SRC - [12:11] */
-#define WM831X_LDO6_HWC_VSEL 0x0400 /* LDO6_HWC_VSEL */
-#define WM831X_LDO6_HWC_VSEL_MASK 0x0400 /* LDO6_HWC_VSEL */
-#define WM831X_LDO6_HWC_VSEL_SHIFT 10 /* LDO6_HWC_VSEL */
-#define WM831X_LDO6_HWC_VSEL_WIDTH 1 /* LDO6_HWC_VSEL */
-#define WM831X_LDO6_HWC_MODE_MASK 0x0300 /* LDO6_HWC_MODE - [9:8] */
-#define WM831X_LDO6_HWC_MODE_SHIFT 8 /* LDO6_HWC_MODE - [9:8] */
-#define WM831X_LDO6_HWC_MODE_WIDTH 2 /* LDO6_HWC_MODE - [9:8] */
-#define WM831X_LDO6_FLT 0x0080 /* LDO6_FLT */
-#define WM831X_LDO6_FLT_MASK 0x0080 /* LDO6_FLT */
-#define WM831X_LDO6_FLT_SHIFT 7 /* LDO6_FLT */
-#define WM831X_LDO6_FLT_WIDTH 1 /* LDO6_FLT */
-#define WM831X_LDO6_SWI 0x0040 /* LDO6_SWI */
-#define WM831X_LDO6_SWI_MASK 0x0040 /* LDO6_SWI */
-#define WM831X_LDO6_SWI_SHIFT 6 /* LDO6_SWI */
-#define WM831X_LDO6_SWI_WIDTH 1 /* LDO6_SWI */
-#define WM831X_LDO6_LP_MODE 0x0001 /* LDO6_LP_MODE */
-#define WM831X_LDO6_LP_MODE_MASK 0x0001 /* LDO6_LP_MODE */
-#define WM831X_LDO6_LP_MODE_SHIFT 0 /* LDO6_LP_MODE */
-#define WM831X_LDO6_LP_MODE_WIDTH 1 /* LDO6_LP_MODE */
-
-/*
- * R16504 (0x4078) - LDO6 ON Control
- */
-#define WM831X_LDO6_ON_SLOT_MASK 0xE000 /* LDO6_ON_SLOT - [15:13] */
-#define WM831X_LDO6_ON_SLOT_SHIFT 13 /* LDO6_ON_SLOT - [15:13] */
-#define WM831X_LDO6_ON_SLOT_WIDTH 3 /* LDO6_ON_SLOT - [15:13] */
-#define WM831X_LDO6_ON_MODE 0x0100 /* LDO6_ON_MODE */
-#define WM831X_LDO6_ON_MODE_MASK 0x0100 /* LDO6_ON_MODE */
-#define WM831X_LDO6_ON_MODE_SHIFT 8 /* LDO6_ON_MODE */
-#define WM831X_LDO6_ON_MODE_WIDTH 1 /* LDO6_ON_MODE */
-#define WM831X_LDO6_ON_VSEL_MASK 0x001F /* LDO6_ON_VSEL - [4:0] */
-#define WM831X_LDO6_ON_VSEL_SHIFT 0 /* LDO6_ON_VSEL - [4:0] */
-#define WM831X_LDO6_ON_VSEL_WIDTH 5 /* LDO6_ON_VSEL - [4:0] */
-
-/*
- * R16505 (0x4079) - LDO6 SLEEP Control
- */
-#define WM831X_LDO6_SLP_SLOT_MASK 0xE000 /* LDO6_SLP_SLOT - [15:13] */
-#define WM831X_LDO6_SLP_SLOT_SHIFT 13 /* LDO6_SLP_SLOT - [15:13] */
-#define WM831X_LDO6_SLP_SLOT_WIDTH 3 /* LDO6_SLP_SLOT - [15:13] */
-#define WM831X_LDO6_SLP_MODE 0x0100 /* LDO6_SLP_MODE */
-#define WM831X_LDO6_SLP_MODE_MASK 0x0100 /* LDO6_SLP_MODE */
-#define WM831X_LDO6_SLP_MODE_SHIFT 8 /* LDO6_SLP_MODE */
-#define WM831X_LDO6_SLP_MODE_WIDTH 1 /* LDO6_SLP_MODE */
-#define WM831X_LDO6_SLP_VSEL_MASK 0x001F /* LDO6_SLP_VSEL - [4:0] */
-#define WM831X_LDO6_SLP_VSEL_SHIFT 0 /* LDO6_SLP_VSEL - [4:0] */
-#define WM831X_LDO6_SLP_VSEL_WIDTH 5 /* LDO6_SLP_VSEL - [4:0] */
-
-/*
- * R16506 (0x407A) - LDO7 Control
- */
-#define WM831X_LDO7_ERR_ACT_MASK 0xC000 /* LDO7_ERR_ACT - [15:14] */
-#define WM831X_LDO7_ERR_ACT_SHIFT 14 /* LDO7_ERR_ACT - [15:14] */
-#define WM831X_LDO7_ERR_ACT_WIDTH 2 /* LDO7_ERR_ACT - [15:14] */
-#define WM831X_LDO7_HWC_SRC_MASK 0x1800 /* LDO7_HWC_SRC - [12:11] */
-#define WM831X_LDO7_HWC_SRC_SHIFT 11 /* LDO7_HWC_SRC - [12:11] */
-#define WM831X_LDO7_HWC_SRC_WIDTH 2 /* LDO7_HWC_SRC - [12:11] */
-#define WM831X_LDO7_HWC_VSEL 0x0400 /* LDO7_HWC_VSEL */
-#define WM831X_LDO7_HWC_VSEL_MASK 0x0400 /* LDO7_HWC_VSEL */
-#define WM831X_LDO7_HWC_VSEL_SHIFT 10 /* LDO7_HWC_VSEL */
-#define WM831X_LDO7_HWC_VSEL_WIDTH 1 /* LDO7_HWC_VSEL */
-#define WM831X_LDO7_HWC_MODE_MASK 0x0300 /* LDO7_HWC_MODE - [9:8] */
-#define WM831X_LDO7_HWC_MODE_SHIFT 8 /* LDO7_HWC_MODE - [9:8] */
-#define WM831X_LDO7_HWC_MODE_WIDTH 2 /* LDO7_HWC_MODE - [9:8] */
-#define WM831X_LDO7_FLT 0x0080 /* LDO7_FLT */
-#define WM831X_LDO7_FLT_MASK 0x0080 /* LDO7_FLT */
-#define WM831X_LDO7_FLT_SHIFT 7 /* LDO7_FLT */
-#define WM831X_LDO7_FLT_WIDTH 1 /* LDO7_FLT */
-#define WM831X_LDO7_SWI 0x0040 /* LDO7_SWI */
-#define WM831X_LDO7_SWI_MASK 0x0040 /* LDO7_SWI */
-#define WM831X_LDO7_SWI_SHIFT 6 /* LDO7_SWI */
-#define WM831X_LDO7_SWI_WIDTH 1 /* LDO7_SWI */
-
-/*
- * R16507 (0x407B) - LDO7 ON Control
- */
-#define WM831X_LDO7_ON_SLOT_MASK 0xE000 /* LDO7_ON_SLOT - [15:13] */
-#define WM831X_LDO7_ON_SLOT_SHIFT 13 /* LDO7_ON_SLOT - [15:13] */
-#define WM831X_LDO7_ON_SLOT_WIDTH 3 /* LDO7_ON_SLOT - [15:13] */
-#define WM831X_LDO7_ON_MODE 0x0100 /* LDO7_ON_MODE */
-#define WM831X_LDO7_ON_MODE_MASK 0x0100 /* LDO7_ON_MODE */
-#define WM831X_LDO7_ON_MODE_SHIFT 8 /* LDO7_ON_MODE */
-#define WM831X_LDO7_ON_MODE_WIDTH 1 /* LDO7_ON_MODE */
-#define WM831X_LDO7_ON_VSEL_MASK 0x001F /* LDO7_ON_VSEL - [4:0] */
-#define WM831X_LDO7_ON_VSEL_SHIFT 0 /* LDO7_ON_VSEL - [4:0] */
-#define WM831X_LDO7_ON_VSEL_WIDTH 5 /* LDO7_ON_VSEL - [4:0] */
-
-/*
- * R16508 (0x407C) - LDO7 SLEEP Control
- */
-#define WM831X_LDO7_SLP_SLOT_MASK 0xE000 /* LDO7_SLP_SLOT - [15:13] */
-#define WM831X_LDO7_SLP_SLOT_SHIFT 13 /* LDO7_SLP_SLOT - [15:13] */
-#define WM831X_LDO7_SLP_SLOT_WIDTH 3 /* LDO7_SLP_SLOT - [15:13] */
-#define WM831X_LDO7_SLP_MODE 0x0100 /* LDO7_SLP_MODE */
-#define WM831X_LDO7_SLP_MODE_MASK 0x0100 /* LDO7_SLP_MODE */
-#define WM831X_LDO7_SLP_MODE_SHIFT 8 /* LDO7_SLP_MODE */
-#define WM831X_LDO7_SLP_MODE_WIDTH 1 /* LDO7_SLP_MODE */
-#define WM831X_LDO7_SLP_VSEL_MASK 0x001F /* LDO7_SLP_VSEL - [4:0] */
-#define WM831X_LDO7_SLP_VSEL_SHIFT 0 /* LDO7_SLP_VSEL - [4:0] */
-#define WM831X_LDO7_SLP_VSEL_WIDTH 5 /* LDO7_SLP_VSEL - [4:0] */
-
-/*
- * R16509 (0x407D) - LDO8 Control
- */
-#define WM831X_LDO8_ERR_ACT_MASK 0xC000 /* LDO8_ERR_ACT - [15:14] */
-#define WM831X_LDO8_ERR_ACT_SHIFT 14 /* LDO8_ERR_ACT - [15:14] */
-#define WM831X_LDO8_ERR_ACT_WIDTH 2 /* LDO8_ERR_ACT - [15:14] */
-#define WM831X_LDO8_HWC_SRC_MASK 0x1800 /* LDO8_HWC_SRC - [12:11] */
-#define WM831X_LDO8_HWC_SRC_SHIFT 11 /* LDO8_HWC_SRC - [12:11] */
-#define WM831X_LDO8_HWC_SRC_WIDTH 2 /* LDO8_HWC_SRC - [12:11] */
-#define WM831X_LDO8_HWC_VSEL 0x0400 /* LDO8_HWC_VSEL */
-#define WM831X_LDO8_HWC_VSEL_MASK 0x0400 /* LDO8_HWC_VSEL */
-#define WM831X_LDO8_HWC_VSEL_SHIFT 10 /* LDO8_HWC_VSEL */
-#define WM831X_LDO8_HWC_VSEL_WIDTH 1 /* LDO8_HWC_VSEL */
-#define WM831X_LDO8_HWC_MODE_MASK 0x0300 /* LDO8_HWC_MODE - [9:8] */
-#define WM831X_LDO8_HWC_MODE_SHIFT 8 /* LDO8_HWC_MODE - [9:8] */
-#define WM831X_LDO8_HWC_MODE_WIDTH 2 /* LDO8_HWC_MODE - [9:8] */
-#define WM831X_LDO8_FLT 0x0080 /* LDO8_FLT */
-#define WM831X_LDO8_FLT_MASK 0x0080 /* LDO8_FLT */
-#define WM831X_LDO8_FLT_SHIFT 7 /* LDO8_FLT */
-#define WM831X_LDO8_FLT_WIDTH 1 /* LDO8_FLT */
-#define WM831X_LDO8_SWI 0x0040 /* LDO8_SWI */
-#define WM831X_LDO8_SWI_MASK 0x0040 /* LDO8_SWI */
-#define WM831X_LDO8_SWI_SHIFT 6 /* LDO8_SWI */
-#define WM831X_LDO8_SWI_WIDTH 1 /* LDO8_SWI */
-
-/*
- * R16510 (0x407E) - LDO8 ON Control
- */
-#define WM831X_LDO8_ON_SLOT_MASK 0xE000 /* LDO8_ON_SLOT - [15:13] */
-#define WM831X_LDO8_ON_SLOT_SHIFT 13 /* LDO8_ON_SLOT - [15:13] */
-#define WM831X_LDO8_ON_SLOT_WIDTH 3 /* LDO8_ON_SLOT - [15:13] */
-#define WM831X_LDO8_ON_MODE 0x0100 /* LDO8_ON_MODE */
-#define WM831X_LDO8_ON_MODE_MASK 0x0100 /* LDO8_ON_MODE */
-#define WM831X_LDO8_ON_MODE_SHIFT 8 /* LDO8_ON_MODE */
-#define WM831X_LDO8_ON_MODE_WIDTH 1 /* LDO8_ON_MODE */
-#define WM831X_LDO8_ON_VSEL_MASK 0x001F /* LDO8_ON_VSEL - [4:0] */
-#define WM831X_LDO8_ON_VSEL_SHIFT 0 /* LDO8_ON_VSEL - [4:0] */
-#define WM831X_LDO8_ON_VSEL_WIDTH 5 /* LDO8_ON_VSEL - [4:0] */
-
-/*
- * R16511 (0x407F) - LDO8 SLEEP Control
- */
-#define WM831X_LDO8_SLP_SLOT_MASK 0xE000 /* LDO8_SLP_SLOT - [15:13] */
-#define WM831X_LDO8_SLP_SLOT_SHIFT 13 /* LDO8_SLP_SLOT - [15:13] */
-#define WM831X_LDO8_SLP_SLOT_WIDTH 3 /* LDO8_SLP_SLOT - [15:13] */
-#define WM831X_LDO8_SLP_MODE 0x0100 /* LDO8_SLP_MODE */
-#define WM831X_LDO8_SLP_MODE_MASK 0x0100 /* LDO8_SLP_MODE */
-#define WM831X_LDO8_SLP_MODE_SHIFT 8 /* LDO8_SLP_MODE */
-#define WM831X_LDO8_SLP_MODE_WIDTH 1 /* LDO8_SLP_MODE */
-#define WM831X_LDO8_SLP_VSEL_MASK 0x001F /* LDO8_SLP_VSEL - [4:0] */
-#define WM831X_LDO8_SLP_VSEL_SHIFT 0 /* LDO8_SLP_VSEL - [4:0] */
-#define WM831X_LDO8_SLP_VSEL_WIDTH 5 /* LDO8_SLP_VSEL - [4:0] */
-
-/*
- * R16512 (0x4080) - LDO9 Control
- */
-#define WM831X_LDO9_ERR_ACT_MASK 0xC000 /* LDO9_ERR_ACT - [15:14] */
-#define WM831X_LDO9_ERR_ACT_SHIFT 14 /* LDO9_ERR_ACT - [15:14] */
-#define WM831X_LDO9_ERR_ACT_WIDTH 2 /* LDO9_ERR_ACT - [15:14] */
-#define WM831X_LDO9_HWC_SRC_MASK 0x1800 /* LDO9_HWC_SRC - [12:11] */
-#define WM831X_LDO9_HWC_SRC_SHIFT 11 /* LDO9_HWC_SRC - [12:11] */
-#define WM831X_LDO9_HWC_SRC_WIDTH 2 /* LDO9_HWC_SRC - [12:11] */
-#define WM831X_LDO9_HWC_VSEL 0x0400 /* LDO9_HWC_VSEL */
-#define WM831X_LDO9_HWC_VSEL_MASK 0x0400 /* LDO9_HWC_VSEL */
-#define WM831X_LDO9_HWC_VSEL_SHIFT 10 /* LDO9_HWC_VSEL */
-#define WM831X_LDO9_HWC_VSEL_WIDTH 1 /* LDO9_HWC_VSEL */
-#define WM831X_LDO9_HWC_MODE_MASK 0x0300 /* LDO9_HWC_MODE - [9:8] */
-#define WM831X_LDO9_HWC_MODE_SHIFT 8 /* LDO9_HWC_MODE - [9:8] */
-#define WM831X_LDO9_HWC_MODE_WIDTH 2 /* LDO9_HWC_MODE - [9:8] */
-#define WM831X_LDO9_FLT 0x0080 /* LDO9_FLT */
-#define WM831X_LDO9_FLT_MASK 0x0080 /* LDO9_FLT */
-#define WM831X_LDO9_FLT_SHIFT 7 /* LDO9_FLT */
-#define WM831X_LDO9_FLT_WIDTH 1 /* LDO9_FLT */
-#define WM831X_LDO9_SWI 0x0040 /* LDO9_SWI */
-#define WM831X_LDO9_SWI_MASK 0x0040 /* LDO9_SWI */
-#define WM831X_LDO9_SWI_SHIFT 6 /* LDO9_SWI */
-#define WM831X_LDO9_SWI_WIDTH 1 /* LDO9_SWI */
-
-/*
- * R16513 (0x4081) - LDO9 ON Control
- */
-#define WM831X_LDO9_ON_SLOT_MASK 0xE000 /* LDO9_ON_SLOT - [15:13] */
-#define WM831X_LDO9_ON_SLOT_SHIFT 13 /* LDO9_ON_SLOT - [15:13] */
-#define WM831X_LDO9_ON_SLOT_WIDTH 3 /* LDO9_ON_SLOT - [15:13] */
-#define WM831X_LDO9_ON_MODE 0x0100 /* LDO9_ON_MODE */
-#define WM831X_LDO9_ON_MODE_MASK 0x0100 /* LDO9_ON_MODE */
-#define WM831X_LDO9_ON_MODE_SHIFT 8 /* LDO9_ON_MODE */
-#define WM831X_LDO9_ON_MODE_WIDTH 1 /* LDO9_ON_MODE */
-#define WM831X_LDO9_ON_VSEL_MASK 0x001F /* LDO9_ON_VSEL - [4:0] */
-#define WM831X_LDO9_ON_VSEL_SHIFT 0 /* LDO9_ON_VSEL - [4:0] */
-#define WM831X_LDO9_ON_VSEL_WIDTH 5 /* LDO9_ON_VSEL - [4:0] */
-
-/*
- * R16514 (0x4082) - LDO9 SLEEP Control
- */
-#define WM831X_LDO9_SLP_SLOT_MASK 0xE000 /* LDO9_SLP_SLOT - [15:13] */
-#define WM831X_LDO9_SLP_SLOT_SHIFT 13 /* LDO9_SLP_SLOT - [15:13] */
-#define WM831X_LDO9_SLP_SLOT_WIDTH 3 /* LDO9_SLP_SLOT - [15:13] */
-#define WM831X_LDO9_SLP_MODE 0x0100 /* LDO9_SLP_MODE */
-#define WM831X_LDO9_SLP_MODE_MASK 0x0100 /* LDO9_SLP_MODE */
-#define WM831X_LDO9_SLP_MODE_SHIFT 8 /* LDO9_SLP_MODE */
-#define WM831X_LDO9_SLP_MODE_WIDTH 1 /* LDO9_SLP_MODE */
-#define WM831X_LDO9_SLP_VSEL_MASK 0x001F /* LDO9_SLP_VSEL - [4:0] */
-#define WM831X_LDO9_SLP_VSEL_SHIFT 0 /* LDO9_SLP_VSEL - [4:0] */
-#define WM831X_LDO9_SLP_VSEL_WIDTH 5 /* LDO9_SLP_VSEL - [4:0] */
-
-/*
- * R16515 (0x4083) - LDO10 Control
- */
-#define WM831X_LDO10_ERR_ACT_MASK 0xC000 /* LDO10_ERR_ACT - [15:14] */
-#define WM831X_LDO10_ERR_ACT_SHIFT 14 /* LDO10_ERR_ACT - [15:14] */
-#define WM831X_LDO10_ERR_ACT_WIDTH 2 /* LDO10_ERR_ACT - [15:14] */
-#define WM831X_LDO10_HWC_SRC_MASK 0x1800 /* LDO10_HWC_SRC - [12:11] */
-#define WM831X_LDO10_HWC_SRC_SHIFT 11 /* LDO10_HWC_SRC - [12:11] */
-#define WM831X_LDO10_HWC_SRC_WIDTH 2 /* LDO10_HWC_SRC - [12:11] */
-#define WM831X_LDO10_HWC_VSEL 0x0400 /* LDO10_HWC_VSEL */
-#define WM831X_LDO10_HWC_VSEL_MASK 0x0400 /* LDO10_HWC_VSEL */
-#define WM831X_LDO10_HWC_VSEL_SHIFT 10 /* LDO10_HWC_VSEL */
-#define WM831X_LDO10_HWC_VSEL_WIDTH 1 /* LDO10_HWC_VSEL */
-#define WM831X_LDO10_HWC_MODE_MASK 0x0300 /* LDO10_HWC_MODE - [9:8] */
-#define WM831X_LDO10_HWC_MODE_SHIFT 8 /* LDO10_HWC_MODE - [9:8] */
-#define WM831X_LDO10_HWC_MODE_WIDTH 2 /* LDO10_HWC_MODE - [9:8] */
-#define WM831X_LDO10_FLT 0x0080 /* LDO10_FLT */
-#define WM831X_LDO10_FLT_MASK 0x0080 /* LDO10_FLT */
-#define WM831X_LDO10_FLT_SHIFT 7 /* LDO10_FLT */
-#define WM831X_LDO10_FLT_WIDTH 1 /* LDO10_FLT */
-#define WM831X_LDO10_SWI 0x0040 /* LDO10_SWI */
-#define WM831X_LDO10_SWI_MASK 0x0040 /* LDO10_SWI */
-#define WM831X_LDO10_SWI_SHIFT 6 /* LDO10_SWI */
-#define WM831X_LDO10_SWI_WIDTH 1 /* LDO10_SWI */
-
-/*
- * R16516 (0x4084) - LDO10 ON Control
- */
-#define WM831X_LDO10_ON_SLOT_MASK 0xE000 /* LDO10_ON_SLOT - [15:13] */
-#define WM831X_LDO10_ON_SLOT_SHIFT 13 /* LDO10_ON_SLOT - [15:13] */
-#define WM831X_LDO10_ON_SLOT_WIDTH 3 /* LDO10_ON_SLOT - [15:13] */
-#define WM831X_LDO10_ON_MODE 0x0100 /* LDO10_ON_MODE */
-#define WM831X_LDO10_ON_MODE_MASK 0x0100 /* LDO10_ON_MODE */
-#define WM831X_LDO10_ON_MODE_SHIFT 8 /* LDO10_ON_MODE */
-#define WM831X_LDO10_ON_MODE_WIDTH 1 /* LDO10_ON_MODE */
-#define WM831X_LDO10_ON_VSEL_MASK 0x001F /* LDO10_ON_VSEL - [4:0] */
-#define WM831X_LDO10_ON_VSEL_SHIFT 0 /* LDO10_ON_VSEL - [4:0] */
-#define WM831X_LDO10_ON_VSEL_WIDTH 5 /* LDO10_ON_VSEL - [4:0] */
-
-/*
- * R16517 (0x4085) - LDO10 SLEEP Control
- */
-#define WM831X_LDO10_SLP_SLOT_MASK 0xE000 /* LDO10_SLP_SLOT - [15:13] */
-#define WM831X_LDO10_SLP_SLOT_SHIFT 13 /* LDO10_SLP_SLOT - [15:13] */
-#define WM831X_LDO10_SLP_SLOT_WIDTH 3 /* LDO10_SLP_SLOT - [15:13] */
-#define WM831X_LDO10_SLP_MODE 0x0100 /* LDO10_SLP_MODE */
-#define WM831X_LDO10_SLP_MODE_MASK 0x0100 /* LDO10_SLP_MODE */
-#define WM831X_LDO10_SLP_MODE_SHIFT 8 /* LDO10_SLP_MODE */
-#define WM831X_LDO10_SLP_MODE_WIDTH 1 /* LDO10_SLP_MODE */
-#define WM831X_LDO10_SLP_VSEL_MASK 0x001F /* LDO10_SLP_VSEL - [4:0] */
-#define WM831X_LDO10_SLP_VSEL_SHIFT 0 /* LDO10_SLP_VSEL - [4:0] */
-#define WM831X_LDO10_SLP_VSEL_WIDTH 5 /* LDO10_SLP_VSEL - [4:0] */
-
-/*
- * R16519 (0x4087) - LDO11 ON Control
- */
-#define WM831X_LDO11_ON_SLOT_MASK 0xE000 /* LDO11_ON_SLOT - [15:13] */
-#define WM831X_LDO11_ON_SLOT_SHIFT 13 /* LDO11_ON_SLOT - [15:13] */
-#define WM831X_LDO11_ON_SLOT_WIDTH 3 /* LDO11_ON_SLOT - [15:13] */
-#define WM831X_LDO11_OFFENA 0x1000 /* LDO11_OFFENA */
-#define WM831X_LDO11_OFFENA_MASK 0x1000 /* LDO11_OFFENA */
-#define WM831X_LDO11_OFFENA_SHIFT 12 /* LDO11_OFFENA */
-#define WM831X_LDO11_OFFENA_WIDTH 1 /* LDO11_OFFENA */
-#define WM831X_LDO11_VSEL_SRC 0x0080 /* LDO11_VSEL_SRC */
-#define WM831X_LDO11_VSEL_SRC_MASK 0x0080 /* LDO11_VSEL_SRC */
-#define WM831X_LDO11_VSEL_SRC_SHIFT 7 /* LDO11_VSEL_SRC */
-#define WM831X_LDO11_VSEL_SRC_WIDTH 1 /* LDO11_VSEL_SRC */
-#define WM831X_LDO11_ON_VSEL_MASK 0x000F /* LDO11_ON_VSEL - [3:0] */
-#define WM831X_LDO11_ON_VSEL_SHIFT 0 /* LDO11_ON_VSEL - [3:0] */
-#define WM831X_LDO11_ON_VSEL_WIDTH 4 /* LDO11_ON_VSEL - [3:0] */
-
-/*
- * R16520 (0x4088) - LDO11 SLEEP Control
- */
-#define WM831X_LDO11_SLP_SLOT_MASK 0xE000 /* LDO11_SLP_SLOT - [15:13] */
-#define WM831X_LDO11_SLP_SLOT_SHIFT 13 /* LDO11_SLP_SLOT - [15:13] */
-#define WM831X_LDO11_SLP_SLOT_WIDTH 3 /* LDO11_SLP_SLOT - [15:13] */
-#define WM831X_LDO11_SLP_VSEL_MASK 0x000F /* LDO11_SLP_VSEL - [3:0] */
-#define WM831X_LDO11_SLP_VSEL_SHIFT 0 /* LDO11_SLP_VSEL - [3:0] */
-#define WM831X_LDO11_SLP_VSEL_WIDTH 4 /* LDO11_SLP_VSEL - [3:0] */
-
-/*
- * R16526 (0x408E) - Power Good Source 1
- */
-#define WM831X_DC4_OK 0x0008 /* DC4_OK */
-#define WM831X_DC4_OK_MASK 0x0008 /* DC4_OK */
-#define WM831X_DC4_OK_SHIFT 3 /* DC4_OK */
-#define WM831X_DC4_OK_WIDTH 1 /* DC4_OK */
-#define WM831X_DC3_OK 0x0004 /* DC3_OK */
-#define WM831X_DC3_OK_MASK 0x0004 /* DC3_OK */
-#define WM831X_DC3_OK_SHIFT 2 /* DC3_OK */
-#define WM831X_DC3_OK_WIDTH 1 /* DC3_OK */
-#define WM831X_DC2_OK 0x0002 /* DC2_OK */
-#define WM831X_DC2_OK_MASK 0x0002 /* DC2_OK */
-#define WM831X_DC2_OK_SHIFT 1 /* DC2_OK */
-#define WM831X_DC2_OK_WIDTH 1 /* DC2_OK */
-#define WM831X_DC1_OK 0x0001 /* DC1_OK */
-#define WM831X_DC1_OK_MASK 0x0001 /* DC1_OK */
-#define WM831X_DC1_OK_SHIFT 0 /* DC1_OK */
-#define WM831X_DC1_OK_WIDTH 1 /* DC1_OK */
-
-/*
- * R16527 (0x408F) - Power Good Source 2
- */
-#define WM831X_LDO10_OK 0x0200 /* LDO10_OK */
-#define WM831X_LDO10_OK_MASK 0x0200 /* LDO10_OK */
-#define WM831X_LDO10_OK_SHIFT 9 /* LDO10_OK */
-#define WM831X_LDO10_OK_WIDTH 1 /* LDO10_OK */
-#define WM831X_LDO9_OK 0x0100 /* LDO9_OK */
-#define WM831X_LDO9_OK_MASK 0x0100 /* LDO9_OK */
-#define WM831X_LDO9_OK_SHIFT 8 /* LDO9_OK */
-#define WM831X_LDO9_OK_WIDTH 1 /* LDO9_OK */
-#define WM831X_LDO8_OK 0x0080 /* LDO8_OK */
-#define WM831X_LDO8_OK_MASK 0x0080 /* LDO8_OK */
-#define WM831X_LDO8_OK_SHIFT 7 /* LDO8_OK */
-#define WM831X_LDO8_OK_WIDTH 1 /* LDO8_OK */
-#define WM831X_LDO7_OK 0x0040 /* LDO7_OK */
-#define WM831X_LDO7_OK_MASK 0x0040 /* LDO7_OK */
-#define WM831X_LDO7_OK_SHIFT 6 /* LDO7_OK */
-#define WM831X_LDO7_OK_WIDTH 1 /* LDO7_OK */
-#define WM831X_LDO6_OK 0x0020 /* LDO6_OK */
-#define WM831X_LDO6_OK_MASK 0x0020 /* LDO6_OK */
-#define WM831X_LDO6_OK_SHIFT 5 /* LDO6_OK */
-#define WM831X_LDO6_OK_WIDTH 1 /* LDO6_OK */
-#define WM831X_LDO5_OK 0x0010 /* LDO5_OK */
-#define WM831X_LDO5_OK_MASK 0x0010 /* LDO5_OK */
-#define WM831X_LDO5_OK_SHIFT 4 /* LDO5_OK */
-#define WM831X_LDO5_OK_WIDTH 1 /* LDO5_OK */
-#define WM831X_LDO4_OK 0x0008 /* LDO4_OK */
-#define WM831X_LDO4_OK_MASK 0x0008 /* LDO4_OK */
-#define WM831X_LDO4_OK_SHIFT 3 /* LDO4_OK */
-#define WM831X_LDO4_OK_WIDTH 1 /* LDO4_OK */
-#define WM831X_LDO3_OK 0x0004 /* LDO3_OK */
-#define WM831X_LDO3_OK_MASK 0x0004 /* LDO3_OK */
-#define WM831X_LDO3_OK_SHIFT 2 /* LDO3_OK */
-#define WM831X_LDO3_OK_WIDTH 1 /* LDO3_OK */
-#define WM831X_LDO2_OK 0x0002 /* LDO2_OK */
-#define WM831X_LDO2_OK_MASK 0x0002 /* LDO2_OK */
-#define WM831X_LDO2_OK_SHIFT 1 /* LDO2_OK */
-#define WM831X_LDO2_OK_WIDTH 1 /* LDO2_OK */
-#define WM831X_LDO1_OK 0x0001 /* LDO1_OK */
-#define WM831X_LDO1_OK_MASK 0x0001 /* LDO1_OK */
-#define WM831X_LDO1_OK_SHIFT 0 /* LDO1_OK */
-#define WM831X_LDO1_OK_WIDTH 1 /* LDO1_OK */
-
-#define WM831X_ISINK_MAX_ISEL 55
-extern int wm831x_isinkv_values[WM831X_ISINK_MAX_ISEL + 1];
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/wm831x/status.h b/ANDROID_3.4.5/include/linux/mfd/wm831x/status.h
deleted file mode 100644
index 6bc090d0..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/wm831x/status.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * include/linux/mfd/wm831x/status.h -- Status LEDs for WM831x
- *
- * Copyright 2009 Wolfson Microelectronics PLC.
- *
- * Author: Mark Brown <broonie@opensource.wolfsonmicro.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 __MFD_WM831X_STATUS_H__
-#define __MFD_WM831X_STATUS_H__
-
-#define WM831X_LED_SRC_MASK 0xC000 /* LED_SRC - [15:14] */
-#define WM831X_LED_SRC_SHIFT 14 /* LED_SRC - [15:14] */
-#define WM831X_LED_SRC_WIDTH 2 /* LED_SRC - [15:14] */
-#define WM831X_LED_MODE_MASK 0x0300 /* LED_MODE - [9:8] */
-#define WM831X_LED_MODE_SHIFT 8 /* LED_MODE - [9:8] */
-#define WM831X_LED_MODE_WIDTH 2 /* LED_MODE - [9:8] */
-#define WM831X_LED_SEQ_LEN_MASK 0x0030 /* LED_SEQ_LEN - [5:4] */
-#define WM831X_LED_SEQ_LEN_SHIFT 4 /* LED_SEQ_LEN - [5:4] */
-#define WM831X_LED_SEQ_LEN_WIDTH 2 /* LED_SEQ_LEN - [5:4] */
-#define WM831X_LED_DUR_MASK 0x000C /* LED_DUR - [3:2] */
-#define WM831X_LED_DUR_SHIFT 2 /* LED_DUR - [3:2] */
-#define WM831X_LED_DUR_WIDTH 2 /* LED_DUR - [3:2] */
-#define WM831X_LED_DUTY_CYC_MASK 0x0003 /* LED_DUTY_CYC - [1:0] */
-#define WM831X_LED_DUTY_CYC_SHIFT 0 /* LED_DUTY_CYC - [1:0] */
-#define WM831X_LED_DUTY_CYC_WIDTH 2 /* LED_DUTY_CYC - [1:0] */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/wm831x/watchdog.h b/ANDROID_3.4.5/include/linux/mfd/wm831x/watchdog.h
deleted file mode 100644
index 97a99b52..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/wm831x/watchdog.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * include/linux/mfd/wm831x/watchdog.h -- Watchdog for WM831x
- *
- * Copyright 2009 Wolfson Microelectronics PLC.
- *
- * Author: Mark Brown <broonie@opensource.wolfsonmicro.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 __MFD_WM831X_WATCHDOG_H__
-#define __MFD_WM831X_WATCHDOG_H__
-
-
-/*
- * R16388 (0x4004) - Watchdog
- */
-#define WM831X_WDOG_ENA 0x8000 /* WDOG_ENA */
-#define WM831X_WDOG_ENA_MASK 0x8000 /* WDOG_ENA */
-#define WM831X_WDOG_ENA_SHIFT 15 /* WDOG_ENA */
-#define WM831X_WDOG_ENA_WIDTH 1 /* WDOG_ENA */
-#define WM831X_WDOG_DEBUG 0x4000 /* WDOG_DEBUG */
-#define WM831X_WDOG_DEBUG_MASK 0x4000 /* WDOG_DEBUG */
-#define WM831X_WDOG_DEBUG_SHIFT 14 /* WDOG_DEBUG */
-#define WM831X_WDOG_DEBUG_WIDTH 1 /* WDOG_DEBUG */
-#define WM831X_WDOG_RST_SRC 0x2000 /* WDOG_RST_SRC */
-#define WM831X_WDOG_RST_SRC_MASK 0x2000 /* WDOG_RST_SRC */
-#define WM831X_WDOG_RST_SRC_SHIFT 13 /* WDOG_RST_SRC */
-#define WM831X_WDOG_RST_SRC_WIDTH 1 /* WDOG_RST_SRC */
-#define WM831X_WDOG_SLPENA 0x1000 /* WDOG_SLPENA */
-#define WM831X_WDOG_SLPENA_MASK 0x1000 /* WDOG_SLPENA */
-#define WM831X_WDOG_SLPENA_SHIFT 12 /* WDOG_SLPENA */
-#define WM831X_WDOG_SLPENA_WIDTH 1 /* WDOG_SLPENA */
-#define WM831X_WDOG_RESET 0x0800 /* WDOG_RESET */
-#define WM831X_WDOG_RESET_MASK 0x0800 /* WDOG_RESET */
-#define WM831X_WDOG_RESET_SHIFT 11 /* WDOG_RESET */
-#define WM831X_WDOG_RESET_WIDTH 1 /* WDOG_RESET */
-#define WM831X_WDOG_SECACT_MASK 0x0300 /* WDOG_SECACT - [9:8] */
-#define WM831X_WDOG_SECACT_SHIFT 8 /* WDOG_SECACT - [9:8] */
-#define WM831X_WDOG_SECACT_WIDTH 2 /* WDOG_SECACT - [9:8] */
-#define WM831X_WDOG_PRIMACT_MASK 0x0030 /* WDOG_PRIMACT - [5:4] */
-#define WM831X_WDOG_PRIMACT_SHIFT 4 /* WDOG_PRIMACT - [5:4] */
-#define WM831X_WDOG_PRIMACT_WIDTH 2 /* WDOG_PRIMACT - [5:4] */
-#define WM831X_WDOG_TO_MASK 0x0007 /* WDOG_TO - [2:0] */
-#define WM831X_WDOG_TO_SHIFT 0 /* WDOG_TO - [2:0] */
-#define WM831X_WDOG_TO_WIDTH 3 /* WDOG_TO - [2:0] */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/wm8350/audio.h b/ANDROID_3.4.5/include/linux/mfd/wm8350/audio.h
deleted file mode 100644
index bd581c6f..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/wm8350/audio.h
+++ /dev/null
@@ -1,628 +0,0 @@
-/*
- * audio.h -- Audio Driver for Wolfson WM8350 PMIC
- *
- * Copyright 2007, 2008 Wolfson Microelectronics PLC
- *
- * 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_MFD_WM8350_AUDIO_H_
-#define __LINUX_MFD_WM8350_AUDIO_H_
-
-#include <linux/platform_device.h>
-
-#define WM8350_CLOCK_CONTROL_1 0x28
-#define WM8350_CLOCK_CONTROL_2 0x29
-#define WM8350_FLL_CONTROL_1 0x2A
-#define WM8350_FLL_CONTROL_2 0x2B
-#define WM8350_FLL_CONTROL_3 0x2C
-#define WM8350_FLL_CONTROL_4 0x2D
-#define WM8350_DAC_CONTROL 0x30
-#define WM8350_DAC_DIGITAL_VOLUME_L 0x32
-#define WM8350_DAC_DIGITAL_VOLUME_R 0x33
-#define WM8350_DAC_LR_RATE 0x35
-#define WM8350_DAC_CLOCK_CONTROL 0x36
-#define WM8350_DAC_MUTE 0x3A
-#define WM8350_DAC_MUTE_VOLUME 0x3B
-#define WM8350_DAC_SIDE 0x3C
-#define WM8350_ADC_CONTROL 0x40
-#define WM8350_ADC_DIGITAL_VOLUME_L 0x42
-#define WM8350_ADC_DIGITAL_VOLUME_R 0x43
-#define WM8350_ADC_DIVIDER 0x44
-#define WM8350_ADC_LR_RATE 0x46
-#define WM8350_INPUT_CONTROL 0x48
-#define WM8350_IN3_INPUT_CONTROL 0x49
-#define WM8350_MIC_BIAS_CONTROL 0x4A
-#define WM8350_OUTPUT_CONTROL 0x4C
-#define WM8350_JACK_DETECT 0x4D
-#define WM8350_ANTI_POP_CONTROL 0x4E
-#define WM8350_LEFT_INPUT_VOLUME 0x50
-#define WM8350_RIGHT_INPUT_VOLUME 0x51
-#define WM8350_LEFT_MIXER_CONTROL 0x58
-#define WM8350_RIGHT_MIXER_CONTROL 0x59
-#define WM8350_OUT3_MIXER_CONTROL 0x5C
-#define WM8350_OUT4_MIXER_CONTROL 0x5D
-#define WM8350_OUTPUT_LEFT_MIXER_VOLUME 0x60
-#define WM8350_OUTPUT_RIGHT_MIXER_VOLUME 0x61
-#define WM8350_INPUT_MIXER_VOLUME_L 0x62
-#define WM8350_INPUT_MIXER_VOLUME_R 0x63
-#define WM8350_INPUT_MIXER_VOLUME 0x64
-#define WM8350_LOUT1_VOLUME 0x68
-#define WM8350_ROUT1_VOLUME 0x69
-#define WM8350_LOUT2_VOLUME 0x6A
-#define WM8350_ROUT2_VOLUME 0x6B
-#define WM8350_BEEP_VOLUME 0x6F
-#define WM8350_AI_FORMATING 0x70
-#define WM8350_ADC_DAC_COMP 0x71
-#define WM8350_AI_ADC_CONTROL 0x72
-#define WM8350_AI_DAC_CONTROL 0x73
-#define WM8350_AIF_TEST 0x74
-#define WM8350_JACK_PIN_STATUS 0xE7
-
-/* Bit values for R08 (0x08) */
-#define WM8350_CODEC_ISEL_1_5 0 /* x1.5 */
-#define WM8350_CODEC_ISEL_1_0 1 /* x1.0 */
-#define WM8350_CODEC_ISEL_0_75 2 /* x0.75 */
-#define WM8350_CODEC_ISEL_0_5 3 /* x0.5 */
-
-#define WM8350_VMID_OFF 0
-#define WM8350_VMID_300K 1
-#define WM8350_VMID_50K 2
-#define WM8350_VMID_5K 3
-
-/*
- * R40 (0x28) - Clock Control 1
- */
-#define WM8350_TOCLK_RATE 0x4000
-#define WM8350_MCLK_SEL 0x0800
-#define WM8350_MCLK_DIV_MASK 0x0100
-#define WM8350_BCLK_DIV_MASK 0x00F0
-#define WM8350_OPCLK_DIV_MASK 0x0007
-
-/*
- * R41 (0x29) - Clock Control 2
- */
-#define WM8350_LRC_ADC_SEL 0x8000
-#define WM8350_MCLK_DIR 0x0001
-
-/*
- * R42 (0x2A) - FLL Control 1
- */
-#define WM8350_FLL_DITHER_WIDTH_MASK 0x3000
-#define WM8350_FLL_DITHER_HP 0x0800
-#define WM8350_FLL_OUTDIV_MASK 0x0700
-#define WM8350_FLL_RSP_RATE_MASK 0x00F0
-#define WM8350_FLL_RATE_MASK 0x0007
-
-/*
- * R43 (0x2B) - FLL Control 2
- */
-#define WM8350_FLL_RATIO_MASK 0xF800
-#define WM8350_FLL_N_MASK 0x03FF
-
-/*
- * R44 (0x2C) - FLL Control 3
- */
-#define WM8350_FLL_K_MASK 0xFFFF
-
-/*
- * R45 (0x2D) - FLL Control 4
- */
-#define WM8350_FLL_FRAC 0x0020
-#define WM8350_FLL_SLOW_LOCK_REF 0x0010
-#define WM8350_FLL_CLK_SRC_MASK 0x0003
-
-/*
- * R48 (0x30) - DAC Control
- */
-#define WM8350_DAC_MONO 0x2000
-#define WM8350_AIF_LRCLKRATE 0x1000
-#define WM8350_DEEMP_MASK 0x0030
-#define WM8350_DACL_DATINV 0x0002
-#define WM8350_DACR_DATINV 0x0001
-
-/*
- * R50 (0x32) - DAC Digital Volume L
- */
-#define WM8350_DAC_VU 0x0100
-#define WM8350_DACL_VOL_MASK 0x00FF
-
-/*
- * R51 (0x33) - DAC Digital Volume R
- */
-#define WM8350_DAC_VU 0x0100
-#define WM8350_DACR_VOL_MASK 0x00FF
-
-/*
- * R53 (0x35) - DAC LR Rate
- */
-#define WM8350_DACLRC_ENA 0x0800
-#define WM8350_DACLRC_RATE_MASK 0x07FF
-
-/*
- * R54 (0x36) - DAC Clock Control
- */
-#define WM8350_DACCLK_POL 0x0010
-#define WM8350_DAC_CLKDIV_MASK 0x0007
-
-/*
- * R58 (0x3A) - DAC Mute
- */
-#define WM8350_DAC_MUTE_ENA 0x4000
-
-/*
- * R59 (0x3B) - DAC Mute Volume
- */
-#define WM8350_DAC_MUTEMODE 0x4000
-#define WM8350_DAC_MUTERATE 0x2000
-#define WM8350_DAC_SB_FILT 0x1000
-
-/*
- * R60 (0x3C) - DAC Side
- */
-#define WM8350_ADC_TO_DACL_MASK 0x3000
-#define WM8350_ADC_TO_DACR_MASK 0x0C00
-
-/*
- * R64 (0x40) - ADC Control
- */
-#define WM8350_ADC_HPF_CUT_MASK 0x0300
-#define WM8350_ADCL_DATINV 0x0002
-#define WM8350_ADCR_DATINV 0x0001
-
-/*
- * R66 (0x42) - ADC Digital Volume L
- */
-#define WM8350_ADC_VU 0x0100
-#define WM8350_ADCL_VOL_MASK 0x00FF
-
-/*
- * R67 (0x43) - ADC Digital Volume R
- */
-#define WM8350_ADC_VU 0x0100
-#define WM8350_ADCR_VOL_MASK 0x00FF
-
-/*
- * R68 (0x44) - ADC Divider
- */
-#define WM8350_ADCL_DAC_SVOL_MASK 0x0F00
-#define WM8350_ADCR_DAC_SVOL_MASK 0x00F0
-#define WM8350_ADCCLK_POL 0x0008
-#define WM8350_ADC_CLKDIV_MASK 0x0007
-
-/*
- * R70 (0x46) - ADC LR Rate
- */
-#define WM8350_ADCLRC_ENA 0x0800
-#define WM8350_ADCLRC_RATE_MASK 0x07FF
-
-/*
- * R72 (0x48) - Input Control
- */
-#define WM8350_IN2R_ENA 0x0400
-#define WM8350_IN1RN_ENA 0x0200
-#define WM8350_IN1RP_ENA 0x0100
-#define WM8350_IN2L_ENA 0x0004
-#define WM8350_IN1LN_ENA 0x0002
-#define WM8350_IN1LP_ENA 0x0001
-
-/*
- * R73 (0x49) - IN3 Input Control
- */
-#define WM8350_IN3R_SHORT 0x4000
-#define WM8350_IN3L_SHORT 0x0040
-
-/*
- * R74 (0x4A) - Mic Bias Control
- */
-#define WM8350_MICBSEL 0x4000
-#define WM8350_MCDTHR_MASK 0x001C
-#define WM8350_MCDSCTHR_MASK 0x0003
-
-/*
- * R76 (0x4C) - Output Control
- */
-#define WM8350_OUT4_VROI 0x0800
-#define WM8350_OUT3_VROI 0x0400
-#define WM8350_OUT2_VROI 0x0200
-#define WM8350_OUT1_VROI 0x0100
-#define WM8350_OUT2_FB 0x0004
-#define WM8350_OUT1_FB 0x0001
-
-/*
- * R77 (0x4D) - Jack Detect
- */
-#define WM8350_JDL_ENA 0x8000
-#define WM8350_JDR_ENA 0x4000
-
-/*
- * R78 (0x4E) - Anti Pop Control
- */
-#define WM8350_ANTI_POP_MASK 0x0300
-#define WM8350_DIS_OP_LN4_MASK 0x00C0
-#define WM8350_DIS_OP_LN3_MASK 0x0030
-#define WM8350_DIS_OP_OUT2_MASK 0x000C
-#define WM8350_DIS_OP_OUT1_MASK 0x0003
-
-/*
- * R80 (0x50) - Left Input Volume
- */
-#define WM8350_INL_MUTE 0x4000
-#define WM8350_INL_ZC 0x2000
-#define WM8350_IN_VU 0x0100
-#define WM8350_INL_VOL_MASK 0x00FC
-
-/*
- * R81 (0x51) - Right Input Volume
- */
-#define WM8350_INR_MUTE 0x4000
-#define WM8350_INR_ZC 0x2000
-#define WM8350_IN_VU 0x0100
-#define WM8350_INR_VOL_MASK 0x00FC
-
-/*
- * R88 (0x58) - Left Mixer Control
- */
-#define WM8350_DACR_TO_MIXOUTL 0x1000
-#define WM8350_DACL_TO_MIXOUTL 0x0800
-#define WM8350_IN3L_TO_MIXOUTL 0x0004
-#define WM8350_INR_TO_MIXOUTL 0x0002
-#define WM8350_INL_TO_MIXOUTL 0x0001
-
-/*
- * R89 (0x59) - Right Mixer Control
- */
-#define WM8350_DACR_TO_MIXOUTR 0x1000
-#define WM8350_DACL_TO_MIXOUTR 0x0800
-#define WM8350_IN3R_TO_MIXOUTR 0x0008
-#define WM8350_INR_TO_MIXOUTR 0x0002
-#define WM8350_INL_TO_MIXOUTR 0x0001
-
-/*
- * R92 (0x5C) - OUT3 Mixer Control
- */
-#define WM8350_DACL_TO_OUT3 0x0800
-#define WM8350_MIXINL_TO_OUT3 0x0100
-#define WM8350_OUT4_TO_OUT3 0x0008
-#define WM8350_MIXOUTL_TO_OUT3 0x0001
-
-/*
- * R93 (0x5D) - OUT4 Mixer Control
- */
-#define WM8350_DACR_TO_OUT4 0x1000
-#define WM8350_DACL_TO_OUT4 0x0800
-#define WM8350_OUT4_ATTN 0x0400
-#define WM8350_MIXINR_TO_OUT4 0x0200
-#define WM8350_OUT3_TO_OUT4 0x0004
-#define WM8350_MIXOUTR_TO_OUT4 0x0002
-#define WM8350_MIXOUTL_TO_OUT4 0x0001
-
-/*
- * R96 (0x60) - Output Left Mixer Volume
- */
-#define WM8350_IN3L_MIXOUTL_VOL_MASK 0x0E00
-#define WM8350_IN3L_MIXOUTL_VOL_SHIFT 9
-#define WM8350_INR_MIXOUTL_VOL_MASK 0x00E0
-#define WM8350_INR_MIXOUTL_VOL_SHIFT 5
-#define WM8350_INL_MIXOUTL_VOL_MASK 0x000E
-#define WM8350_INL_MIXOUTL_VOL_SHIFT 1
-
-/* Bit values for R96 (0x60) */
-#define WM8350_IN3L_MIXOUTL_VOL_OFF 0
-#define WM8350_IN3L_MIXOUTL_VOL_M12DB 1
-#define WM8350_IN3L_MIXOUTL_VOL_M9DB 2
-#define WM8350_IN3L_MIXOUTL_VOL_M6DB 3
-#define WM8350_IN3L_MIXOUTL_VOL_M3DB 4
-#define WM8350_IN3L_MIXOUTL_VOL_0DB 5
-#define WM8350_IN3L_MIXOUTL_VOL_3DB 6
-#define WM8350_IN3L_MIXOUTL_VOL_6DB 7
-
-#define WM8350_INR_MIXOUTL_VOL_OFF 0
-#define WM8350_INR_MIXOUTL_VOL_M12DB 1
-#define WM8350_INR_MIXOUTL_VOL_M9DB 2
-#define WM8350_INR_MIXOUTL_VOL_M6DB 3
-#define WM8350_INR_MIXOUTL_VOL_M3DB 4
-#define WM8350_INR_MIXOUTL_VOL_0DB 5
-#define WM8350_INR_MIXOUTL_VOL_3DB 6
-#define WM8350_INR_MIXOUTL_VOL_6DB 7
-
-#define WM8350_INL_MIXOUTL_VOL_OFF 0
-#define WM8350_INL_MIXOUTL_VOL_M12DB 1
-#define WM8350_INL_MIXOUTL_VOL_M9DB 2
-#define WM8350_INL_MIXOUTL_VOL_M6DB 3
-#define WM8350_INL_MIXOUTL_VOL_M3DB 4
-#define WM8350_INL_MIXOUTL_VOL_0DB 5
-#define WM8350_INL_MIXOUTL_VOL_3DB 6
-#define WM8350_INL_MIXOUTL_VOL_6DB 7
-
-/*
- * R97 (0x61) - Output Right Mixer Volume
- */
-#define WM8350_IN3R_MIXOUTR_VOL_MASK 0xE000
-#define WM8350_IN3R_MIXOUTR_VOL_SHIFT 13
-#define WM8350_INR_MIXOUTR_VOL_MASK 0x00E0
-#define WM8350_INR_MIXOUTR_VOL_SHIFT 5
-#define WM8350_INL_MIXOUTR_VOL_MASK 0x000E
-#define WM8350_INL_MIXOUTR_VOL_SHIFT 1
-
-/* Bit values for R96 (0x60) */
-#define WM8350_IN3R_MIXOUTR_VOL_OFF 0
-#define WM8350_IN3R_MIXOUTR_VOL_M12DB 1
-#define WM8350_IN3R_MIXOUTR_VOL_M9DB 2
-#define WM8350_IN3R_MIXOUTR_VOL_M6DB 3
-#define WM8350_IN3R_MIXOUTR_VOL_M3DB 4
-#define WM8350_IN3R_MIXOUTR_VOL_0DB 5
-#define WM8350_IN3R_MIXOUTR_VOL_3DB 6
-#define WM8350_IN3R_MIXOUTR_VOL_6DB 7
-
-#define WM8350_INR_MIXOUTR_VOL_OFF 0
-#define WM8350_INR_MIXOUTR_VOL_M12DB 1
-#define WM8350_INR_MIXOUTR_VOL_M9DB 2
-#define WM8350_INR_MIXOUTR_VOL_M6DB 3
-#define WM8350_INR_MIXOUTR_VOL_M3DB 4
-#define WM8350_INR_MIXOUTR_VOL_0DB 5
-#define WM8350_INR_MIXOUTR_VOL_3DB 6
-#define WM8350_INR_MIXOUTR_VOL_6DB 7
-
-#define WM8350_INL_MIXOUTR_VOL_OFF 0
-#define WM8350_INL_MIXOUTR_VOL_M12DB 1
-#define WM8350_INL_MIXOUTR_VOL_M9DB 2
-#define WM8350_INL_MIXOUTR_VOL_M6DB 3
-#define WM8350_INL_MIXOUTR_VOL_M3DB 4
-#define WM8350_INL_MIXOUTR_VOL_0DB 5
-#define WM8350_INL_MIXOUTR_VOL_3DB 6
-#define WM8350_INL_MIXOUTR_VOL_6DB 7
-
-/*
- * R98 (0x62) - Input Mixer Volume L
- */
-#define WM8350_IN3L_MIXINL_VOL_MASK 0x0E00
-#define WM8350_IN2L_MIXINL_VOL_MASK 0x000E
-#define WM8350_INL_MIXINL_VOL 0x0001
-
-/*
- * R99 (0x63) - Input Mixer Volume R
- */
-#define WM8350_IN3R_MIXINR_VOL_MASK 0xE000
-#define WM8350_IN2R_MIXINR_VOL_MASK 0x00E0
-#define WM8350_INR_MIXINR_VOL 0x0001
-
-/*
- * R100 (0x64) - Input Mixer Volume
- */
-#define WM8350_OUT4_MIXIN_DST 0x8000
-#define WM8350_OUT4_MIXIN_VOL_MASK 0x000E
-
-/*
- * R104 (0x68) - LOUT1 Volume
- */
-#define WM8350_OUT1L_MUTE 0x4000
-#define WM8350_OUT1L_ZC 0x2000
-#define WM8350_OUT1_VU 0x0100
-#define WM8350_OUT1L_VOL_MASK 0x00FC
-#define WM8350_OUT1L_VOL_SHIFT 2
-
-/*
- * R105 (0x69) - ROUT1 Volume
- */
-#define WM8350_OUT1R_MUTE 0x4000
-#define WM8350_OUT1R_ZC 0x2000
-#define WM8350_OUT1_VU 0x0100
-#define WM8350_OUT1R_VOL_MASK 0x00FC
-#define WM8350_OUT1R_VOL_SHIFT 2
-
-/*
- * R106 (0x6A) - LOUT2 Volume
- */
-#define WM8350_OUT2L_MUTE 0x4000
-#define WM8350_OUT2L_ZC 0x2000
-#define WM8350_OUT2_VU 0x0100
-#define WM8350_OUT2L_VOL_MASK 0x00FC
-
-/*
- * R107 (0x6B) - ROUT2 Volume
- */
-#define WM8350_OUT2R_MUTE 0x4000
-#define WM8350_OUT2R_ZC 0x2000
-#define WM8350_OUT2R_INV 0x0400
-#define WM8350_OUT2R_INV_MUTE 0x0200
-#define WM8350_OUT2_VU 0x0100
-#define WM8350_OUT2R_VOL_MASK 0x00FC
-
-/*
- * R111 (0x6F) - BEEP Volume
- */
-#define WM8350_IN3R_OUT2R_VOL_MASK 0x00E0
-
-/*
- * R112 (0x70) - AI Formating
- */
-#define WM8350_AIF_BCLK_INV 0x8000
-#define WM8350_AIF_TRI 0x2000
-#define WM8350_AIF_LRCLK_INV 0x1000
-#define WM8350_AIF_WL_MASK 0x0C00
-#define WM8350_AIF_FMT_MASK 0x0300
-
-/*
- * R113 (0x71) - ADC DAC COMP
- */
-#define WM8350_DAC_COMP 0x0080
-#define WM8350_DAC_COMPMODE 0x0040
-#define WM8350_ADC_COMP 0x0020
-#define WM8350_ADC_COMPMODE 0x0010
-#define WM8350_LOOPBACK 0x0001
-
-/*
- * R114 (0x72) - AI ADC Control
- */
-#define WM8350_AIFADC_PD 0x0080
-#define WM8350_AIFADCL_SRC 0x0040
-#define WM8350_AIFADCR_SRC 0x0020
-#define WM8350_AIFADC_TDM_CHAN 0x0010
-#define WM8350_AIFADC_TDM 0x0008
-
-/*
- * R115 (0x73) - AI DAC Control
- */
-#define WM8350_BCLK_MSTR 0x4000
-#define WM8350_AIFDAC_PD 0x0080
-#define WM8350_DACL_SRC 0x0040
-#define WM8350_DACR_SRC 0x0020
-#define WM8350_AIFDAC_TDM_CHAN 0x0010
-#define WM8350_AIFDAC_TDM 0x0008
-#define WM8350_DAC_BOOST_MASK 0x0003
-
-/*
- * R116 (0x74) - AIF Test
- */
-#define WM8350_CODEC_BYP 0x4000
-#define WM8350_AIFADC_WR_TST 0x2000
-#define WM8350_AIFADC_RD_TST 0x1000
-#define WM8350_AIFDAC_WR_TST 0x0800
-#define WM8350_AIFDAC_RD_TST 0x0400
-#define WM8350_AIFADC_ASYN 0x0020
-#define WM8350_AIFDAC_ASYN 0x0010
-
-/*
- * R231 (0xE7) - Jack Status
- */
-#define WM8350_JACK_L_LVL 0x0800
-#define WM8350_JACK_R_LVL 0x0400
-#define WM8350_JACK_MICSCD_LVL 0x0200
-#define WM8350_JACK_MICSD_LVL 0x0100
-
-/*
- * WM8350 Platform setup
- */
-#define WM8350_S_CURVE_NONE 0x0
-#define WM8350_S_CURVE_FAST 0x1
-#define WM8350_S_CURVE_MEDIUM 0x2
-#define WM8350_S_CURVE_SLOW 0x3
-
-#define WM8350_DISCHARGE_OFF 0x0
-#define WM8350_DISCHARGE_FAST 0x1
-#define WM8350_DISCHARGE_MEDIUM 0x2
-#define WM8350_DISCHARGE_SLOW 0x3
-
-#define WM8350_TIE_OFF_500R 0x0
-#define WM8350_TIE_OFF_30K 0x1
-
-/*
- * Clock sources & directions
- */
-#define WM8350_SYSCLK 0
-
-#define WM8350_MCLK_SEL_PLL_MCLK 0
-#define WM8350_MCLK_SEL_PLL_DAC 1
-#define WM8350_MCLK_SEL_PLL_ADC 2
-#define WM8350_MCLK_SEL_PLL_32K 3
-#define WM8350_MCLK_SEL_MCLK 5
-
-/* clock divider id's */
-#define WM8350_ADC_CLKDIV 0
-#define WM8350_DAC_CLKDIV 1
-#define WM8350_BCLK_CLKDIV 2
-#define WM8350_OPCLK_CLKDIV 3
-#define WM8350_TO_CLKDIV 4
-#define WM8350_SYS_CLKDIV 5
-#define WM8350_DACLR_CLKDIV 6
-#define WM8350_ADCLR_CLKDIV 7
-
-/* ADC clock dividers */
-#define WM8350_ADCDIV_1 0x0
-#define WM8350_ADCDIV_1_5 0x1
-#define WM8350_ADCDIV_2 0x2
-#define WM8350_ADCDIV_3 0x3
-#define WM8350_ADCDIV_4 0x4
-#define WM8350_ADCDIV_5_5 0x5
-#define WM8350_ADCDIV_6 0x6
-
-/* ADC clock dividers */
-#define WM8350_DACDIV_1 0x0
-#define WM8350_DACDIV_1_5 0x1
-#define WM8350_DACDIV_2 0x2
-#define WM8350_DACDIV_3 0x3
-#define WM8350_DACDIV_4 0x4
-#define WM8350_DACDIV_5_5 0x5
-#define WM8350_DACDIV_6 0x6
-
-/* BCLK clock dividers */
-#define WM8350_BCLK_DIV_1 (0x0 << 4)
-#define WM8350_BCLK_DIV_1_5 (0x1 << 4)
-#define WM8350_BCLK_DIV_2 (0x2 << 4)
-#define WM8350_BCLK_DIV_3 (0x3 << 4)
-#define WM8350_BCLK_DIV_4 (0x4 << 4)
-#define WM8350_BCLK_DIV_5_5 (0x5 << 4)
-#define WM8350_BCLK_DIV_6 (0x6 << 4)
-#define WM8350_BCLK_DIV_8 (0x7 << 4)
-#define WM8350_BCLK_DIV_11 (0x8 << 4)
-#define WM8350_BCLK_DIV_12 (0x9 << 4)
-#define WM8350_BCLK_DIV_16 (0xa << 4)
-#define WM8350_BCLK_DIV_22 (0xb << 4)
-#define WM8350_BCLK_DIV_24 (0xc << 4)
-#define WM8350_BCLK_DIV_32 (0xd << 4)
-#define WM8350_BCLK_DIV_44 (0xe << 4)
-#define WM8350_BCLK_DIV_48 (0xf << 4)
-
-/* Sys (MCLK) clock dividers */
-#define WM8350_MCLK_DIV_1 (0x0 << 8)
-#define WM8350_MCLK_DIV_2 (0x1 << 8)
-
-/* OP clock dividers */
-#define WM8350_OPCLK_DIV_1 0x0
-#define WM8350_OPCLK_DIV_2 0x1
-#define WM8350_OPCLK_DIV_3 0x2
-#define WM8350_OPCLK_DIV_4 0x3
-#define WM8350_OPCLK_DIV_5_5 0x4
-#define WM8350_OPCLK_DIV_6 0x5
-
-/* DAI ID */
-#define WM8350_HIFI_DAI 0
-
-/*
- * Audio interrupts.
- */
-#define WM8350_IRQ_CODEC_JCK_DET_L 39
-#define WM8350_IRQ_CODEC_JCK_DET_R 40
-#define WM8350_IRQ_CODEC_MICSCD 41
-#define WM8350_IRQ_CODEC_MICD 42
-
-/*
- * WM8350 Platform data.
- *
- * This must be initialised per platform for best audio performance.
- * Please see WM8350 datasheet for information.
- */
-struct wm8350_audio_platform_data {
- int vmid_discharge_msecs; /* VMID --> OFF discharge time */
- int drain_msecs; /* OFF drain time */
- int cap_discharge_msecs; /* Cap ON (from OFF) discharge time */
- int vmid_charge_msecs; /* vmid power up time */
- u32 vmid_s_curve:2; /* vmid enable s curve speed */
- u32 dis_out4:2; /* out4 discharge speed */
- u32 dis_out3:2; /* out3 discharge speed */
- u32 dis_out2:2; /* out2 discharge speed */
- u32 dis_out1:2; /* out1 discharge speed */
- u32 vroi_out4:1; /* out4 tie off */
- u32 vroi_out3:1; /* out3 tie off */
- u32 vroi_out2:1; /* out2 tie off */
- u32 vroi_out1:1; /* out1 tie off */
- u32 vroi_enable:1; /* enable tie off */
- u32 codec_current_on:2; /* current level ON */
- u32 codec_current_standby:2; /* current level STANDBY */
- u32 codec_current_charge:2; /* codec current @ vmid charge */
-};
-
-struct snd_soc_codec;
-
-struct wm8350_codec {
- struct platform_device *pdev;
- struct snd_soc_codec *codec;
- struct wm8350_audio_platform_data *platform_data;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/wm8350/comparator.h b/ANDROID_3.4.5/include/linux/mfd/wm8350/comparator.h
deleted file mode 100644
index 54bc5d0f..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/wm8350/comparator.h
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * comparator.h -- Comparator Aux ADC for Wolfson WM8350 PMIC
- *
- * Copyright 2007 Wolfson Microelectronics PLC
- *
- * 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_MFD_WM8350_COMPARATOR_H_
-#define __LINUX_MFD_WM8350_COMPARATOR_H_
-
-/*
- * Registers
- */
-
-#define WM8350_DIGITISER_CONTROL_1 0x90
-#define WM8350_DIGITISER_CONTROL_2 0x91
-#define WM8350_AUX1_READBACK 0x98
-#define WM8350_AUX2_READBACK 0x99
-#define WM8350_AUX3_READBACK 0x9A
-#define WM8350_AUX4_READBACK 0x9B
-#define WM8350_CHIP_TEMP_READBACK 0x9F
-#define WM8350_GENERIC_COMPARATOR_CONTROL 0xA3
-#define WM8350_GENERIC_COMPARATOR_1 0xA4
-#define WM8350_GENERIC_COMPARATOR_2 0xA5
-#define WM8350_GENERIC_COMPARATOR_3 0xA6
-#define WM8350_GENERIC_COMPARATOR_4 0xA7
-
-/*
- * R144 (0x90) - Digitiser Control (1)
- */
-#define WM8350_AUXADC_CTC 0x4000
-#define WM8350_AUXADC_POLL 0x2000
-#define WM8350_AUXADC_HIB_MODE 0x1000
-#define WM8350_AUXADC_SEL8 0x0080
-#define WM8350_AUXADC_SEL7 0x0040
-#define WM8350_AUXADC_SEL6 0x0020
-#define WM8350_AUXADC_SEL5 0x0010
-#define WM8350_AUXADC_SEL4 0x0008
-#define WM8350_AUXADC_SEL3 0x0004
-#define WM8350_AUXADC_SEL2 0x0002
-#define WM8350_AUXADC_SEL1 0x0001
-
-/*
- * R145 (0x91) - Digitiser Control (2)
- */
-#define WM8350_AUXADC_MASKMODE_MASK 0x3000
-#define WM8350_AUXADC_CRATE_MASK 0x0700
-#define WM8350_AUXADC_CAL 0x0004
-#define WM8350_AUX_RBMODE 0x0002
-#define WM8350_AUXADC_WAIT 0x0001
-
-/*
- * R152 (0x98) - AUX1 Readback
- */
-#define WM8350_AUXADC_SCALE1_MASK 0x6000
-#define WM8350_AUXADC_REF1 0x1000
-#define WM8350_AUXADC_DATA1_MASK 0x0FFF
-
-/*
- * R153 (0x99) - AUX2 Readback
- */
-#define WM8350_AUXADC_SCALE2_MASK 0x6000
-#define WM8350_AUXADC_REF2 0x1000
-#define WM8350_AUXADC_DATA2_MASK 0x0FFF
-
-/*
- * R154 (0x9A) - AUX3 Readback
- */
-#define WM8350_AUXADC_SCALE3_MASK 0x6000
-#define WM8350_AUXADC_REF3 0x1000
-#define WM8350_AUXADC_DATA3_MASK 0x0FFF
-
-/*
- * R155 (0x9B) - AUX4 Readback
- */
-#define WM8350_AUXADC_SCALE4_MASK 0x6000
-#define WM8350_AUXADC_REF4 0x1000
-#define WM8350_AUXADC_DATA4_MASK 0x0FFF
-
-/*
- * R156 (0x9C) - USB Voltage Readback
- */
-#define WM8350_AUXADC_DATA_USB_MASK 0x0FFF
-
-/*
- * R157 (0x9D) - LINE Voltage Readback
- */
-#define WM8350_AUXADC_DATA_LINE_MASK 0x0FFF
-
-/*
- * R158 (0x9E) - BATT Voltage Readback
- */
-#define WM8350_AUXADC_DATA_BATT_MASK 0x0FFF
-
-/*
- * R159 (0x9F) - Chip Temp Readback
- */
-#define WM8350_AUXADC_DATA_CHIPTEMP_MASK 0x0FFF
-
-/*
- * R163 (0xA3) - Generic Comparator Control
- */
-#define WM8350_DCMP4_ENA 0x0008
-#define WM8350_DCMP3_ENA 0x0004
-#define WM8350_DCMP2_ENA 0x0002
-#define WM8350_DCMP1_ENA 0x0001
-
-/*
- * R164 (0xA4) - Generic comparator 1
- */
-#define WM8350_DCMP1_SRCSEL_MASK 0xE000
-#define WM8350_DCMP1_GT 0x1000
-#define WM8350_DCMP1_THR_MASK 0x0FFF
-
-/*
- * R165 (0xA5) - Generic comparator 2
- */
-#define WM8350_DCMP2_SRCSEL_MASK 0xE000
-#define WM8350_DCMP2_GT 0x1000
-#define WM8350_DCMP2_THR_MASK 0x0FFF
-
-/*
- * R166 (0xA6) - Generic comparator 3
- */
-#define WM8350_DCMP3_SRCSEL_MASK 0xE000
-#define WM8350_DCMP3_GT 0x1000
-#define WM8350_DCMP3_THR_MASK 0x0FFF
-
-/*
- * R167 (0xA7) - Generic comparator 4
- */
-#define WM8350_DCMP4_SRCSEL_MASK 0xE000
-#define WM8350_DCMP4_GT 0x1000
-#define WM8350_DCMP4_THR_MASK 0x0FFF
-
-/*
- * Interrupts.
- */
-#define WM8350_IRQ_AUXADC_DATARDY 16
-#define WM8350_IRQ_AUXADC_DCOMP4 17
-#define WM8350_IRQ_AUXADC_DCOMP3 18
-#define WM8350_IRQ_AUXADC_DCOMP2 19
-#define WM8350_IRQ_AUXADC_DCOMP1 20
-#define WM8350_IRQ_SYS_HYST_COMP_FAIL 21
-#define WM8350_IRQ_SYS_CHIP_GT115 22
-#define WM8350_IRQ_SYS_CHIP_GT140 23
-
-/*
- * USB/2, LINE & BATT = ((VRTC * 2) / 4095)) * 10e6 uV
- * Where VRTC = 2.7 V
- */
-#define WM8350_AUX_COEFF 1319
-
-#define WM8350_AUXADC_AUX1 0
-#define WM8350_AUXADC_AUX2 1
-#define WM8350_AUXADC_AUX3 2
-#define WM8350_AUXADC_AUX4 3
-#define WM8350_AUXADC_USB 4
-#define WM8350_AUXADC_LINE 5
-#define WM8350_AUXADC_BATT 6
-#define WM8350_AUXADC_TEMP 7
-
-struct wm8350;
-
-/*
- * AUX ADC Readback
- */
-int wm8350_read_auxadc(struct wm8350 *wm8350, int channel, int scale,
- int vref);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/wm8350/core.h b/ANDROID_3.4.5/include/linux/mfd/wm8350/core.h
deleted file mode 100644
index 98fcc977..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/wm8350/core.h
+++ /dev/null
@@ -1,713 +0,0 @@
-/*
- * core.h -- Core Driver for Wolfson WM8350 PMIC
- *
- * Copyright 2007 Wolfson Microelectronics PLC
- *
- * 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_MFD_WM8350_CORE_H_
-#define __LINUX_MFD_WM8350_CORE_H_
-
-#include <linux/kernel.h>
-#include <linux/mutex.h>
-#include <linux/interrupt.h>
-#include <linux/completion.h>
-
-#include <linux/mfd/wm8350/audio.h>
-#include <linux/mfd/wm8350/gpio.h>
-#include <linux/mfd/wm8350/pmic.h>
-#include <linux/mfd/wm8350/rtc.h>
-#include <linux/mfd/wm8350/supply.h>
-#include <linux/mfd/wm8350/wdt.h>
-
-/*
- * Register values.
- */
-#define WM8350_RESET_ID 0x00
-#define WM8350_ID 0x01
-#define WM8350_REVISION 0x02
-#define WM8350_SYSTEM_CONTROL_1 0x03
-#define WM8350_SYSTEM_CONTROL_2 0x04
-#define WM8350_SYSTEM_HIBERNATE 0x05
-#define WM8350_INTERFACE_CONTROL 0x06
-#define WM8350_POWER_MGMT_1 0x08
-#define WM8350_POWER_MGMT_2 0x09
-#define WM8350_POWER_MGMT_3 0x0A
-#define WM8350_POWER_MGMT_4 0x0B
-#define WM8350_POWER_MGMT_5 0x0C
-#define WM8350_POWER_MGMT_6 0x0D
-#define WM8350_POWER_MGMT_7 0x0E
-
-#define WM8350_SYSTEM_INTERRUPTS 0x18
-#define WM8350_INT_STATUS_1 0x19
-#define WM8350_INT_STATUS_2 0x1A
-#define WM8350_POWER_UP_INT_STATUS 0x1B
-#define WM8350_UNDER_VOLTAGE_INT_STATUS 0x1C
-#define WM8350_OVER_CURRENT_INT_STATUS 0x1D
-#define WM8350_GPIO_INT_STATUS 0x1E
-#define WM8350_COMPARATOR_INT_STATUS 0x1F
-#define WM8350_SYSTEM_INTERRUPTS_MASK 0x20
-#define WM8350_INT_STATUS_1_MASK 0x21
-#define WM8350_INT_STATUS_2_MASK 0x22
-#define WM8350_POWER_UP_INT_STATUS_MASK 0x23
-#define WM8350_UNDER_VOLTAGE_INT_STATUS_MASK 0x24
-#define WM8350_OVER_CURRENT_INT_STATUS_MASK 0x25
-#define WM8350_GPIO_INT_STATUS_MASK 0x26
-#define WM8350_COMPARATOR_INT_STATUS_MASK 0x27
-#define WM8350_CHARGER_OVERRIDES 0xE2
-#define WM8350_MISC_OVERRIDES 0xE3
-#define WM8350_COMPARATOR_OVERRIDES 0xE7
-#define WM8350_STATE_MACHINE_STATUS 0xE9
-
-#define WM8350_MAX_REGISTER 0xFF
-
-/*
- * Field Definitions.
- */
-
-/*
- * R0 (0x00) - Reset/ID
- */
-#define WM8350_SW_RESET_CHIP_ID_MASK 0xFFFF
-
-/*
- * R1 (0x01) - ID
- */
-#define WM8350_CHIP_REV_MASK 0x7000
-#define WM8350_CONF_STS_MASK 0x0C00
-#define WM8350_CUST_ID_MASK 0x00FF
-
-/*
- * R2 (0x02) - Revision
- */
-#define WM8350_MASK_REV_MASK 0x00FF
-
-/*
- * R3 (0x03) - System Control 1
- */
-#define WM8350_CHIP_ON 0x8000
-#define WM8350_POWERCYCLE 0x2000
-#define WM8350_VCC_FAULT_OV 0x1000
-#define WM8350_REG_RSTB_TIME_MASK 0x0C00
-#define WM8350_BG_SLEEP 0x0200
-#define WM8350_MEM_VALID 0x0020
-#define WM8350_CHIP_SET_UP 0x0010
-#define WM8350_ON_DEB_T 0x0008
-#define WM8350_ON_POL 0x0002
-#define WM8350_IRQ_POL 0x0001
-
-/*
- * R4 (0x04) - System Control 2
- */
-#define WM8350_USB_SUSPEND_8MA 0x8000
-#define WM8350_USB_SUSPEND 0x4000
-#define WM8350_USB_MSTR 0x2000
-#define WM8350_USB_MSTR_SRC 0x1000
-#define WM8350_USB_500MA 0x0800
-#define WM8350_USB_NOLIM 0x0400
-
-/*
- * R5 (0x05) - System Hibernate
- */
-#define WM8350_HIBERNATE 0x8000
-#define WM8350_WDOG_HIB_MODE 0x0080
-#define WM8350_REG_HIB_STARTUP_SEQ 0x0040
-#define WM8350_REG_RESET_HIB_MODE 0x0020
-#define WM8350_RST_HIB_MODE 0x0010
-#define WM8350_IRQ_HIB_MODE 0x0008
-#define WM8350_MEMRST_HIB_MODE 0x0004
-#define WM8350_PCCOMP_HIB_MODE 0x0002
-#define WM8350_TEMPMON_HIB_MODE 0x0001
-
-/*
- * R6 (0x06) - Interface Control
- */
-#define WM8350_USE_DEV_PINS 0x8000
-#define WM8350_USE_DEV_PINS_MASK 0x8000
-#define WM8350_USE_DEV_PINS_SHIFT 15
-#define WM8350_DEV_ADDR_MASK 0x6000
-#define WM8350_DEV_ADDR_SHIFT 13
-#define WM8350_CONFIG_DONE 0x1000
-#define WM8350_CONFIG_DONE_MASK 0x1000
-#define WM8350_CONFIG_DONE_SHIFT 12
-#define WM8350_RECONFIG_AT_ON 0x0800
-#define WM8350_RECONFIG_AT_ON_MASK 0x0800
-#define WM8350_RECONFIG_AT_ON_SHIFT 11
-#define WM8350_AUTOINC 0x0200
-#define WM8350_AUTOINC_MASK 0x0200
-#define WM8350_AUTOINC_SHIFT 9
-#define WM8350_ARA 0x0100
-#define WM8350_ARA_MASK 0x0100
-#define WM8350_ARA_SHIFT 8
-#define WM8350_SPI_CFG 0x0008
-#define WM8350_SPI_CFG_MASK 0x0008
-#define WM8350_SPI_CFG_SHIFT 3
-#define WM8350_SPI_4WIRE 0x0004
-#define WM8350_SPI_4WIRE_MASK 0x0004
-#define WM8350_SPI_4WIRE_SHIFT 2
-#define WM8350_SPI_3WIRE 0x0002
-#define WM8350_SPI_3WIRE_MASK 0x0002
-#define WM8350_SPI_3WIRE_SHIFT 1
-
-/* Bit values for R06 (0x06) */
-#define WM8350_USE_DEV_PINS_PRIMARY 0
-#define WM8350_USE_DEV_PINS_DEV 1
-
-#define WM8350_DEV_ADDR_34 0
-#define WM8350_DEV_ADDR_36 1
-#define WM8350_DEV_ADDR_3C 2
-#define WM8350_DEV_ADDR_3E 3
-
-#define WM8350_CONFIG_DONE_OFF 0
-#define WM8350_CONFIG_DONE_DONE 1
-
-#define WM8350_RECONFIG_AT_ON_OFF 0
-#define WM8350_RECONFIG_AT_ON_ON 1
-
-#define WM8350_AUTOINC_OFF 0
-#define WM8350_AUTOINC_ON 1
-
-#define WM8350_ARA_OFF 0
-#define WM8350_ARA_ON 1
-
-#define WM8350_SPI_CFG_CMOS 0
-#define WM8350_SPI_CFG_OD 1
-
-#define WM8350_SPI_4WIRE_3WIRE 0
-#define WM8350_SPI_4WIRE_4WIRE 1
-
-#define WM8350_SPI_3WIRE_I2C 0
-#define WM8350_SPI_3WIRE_SPI 1
-
-/*
- * R8 (0x08) - Power mgmt (1)
- */
-#define WM8350_CODEC_ISEL_MASK 0xC000
-#define WM8350_VBUFEN 0x2000
-#define WM8350_OUTPUT_DRAIN_EN 0x0400
-#define WM8350_MIC_DET_ENA 0x0100
-#define WM8350_BIASEN 0x0020
-#define WM8350_MICBEN 0x0010
-#define WM8350_VMIDEN 0x0004
-#define WM8350_VMID_MASK 0x0003
-#define WM8350_VMID_SHIFT 0
-
-/*
- * R9 (0x09) - Power mgmt (2)
- */
-#define WM8350_IN3R_ENA 0x0800
-#define WM8350_IN3L_ENA 0x0400
-#define WM8350_INR_ENA 0x0200
-#define WM8350_INL_ENA 0x0100
-#define WM8350_MIXINR_ENA 0x0080
-#define WM8350_MIXINL_ENA 0x0040
-#define WM8350_OUT4_ENA 0x0020
-#define WM8350_OUT3_ENA 0x0010
-#define WM8350_MIXOUTR_ENA 0x0002
-#define WM8350_MIXOUTL_ENA 0x0001
-
-/*
- * R10 (0x0A) - Power mgmt (3)
- */
-#define WM8350_IN3R_TO_OUT2R 0x0080
-#define WM8350_OUT2R_ENA 0x0008
-#define WM8350_OUT2L_ENA 0x0004
-#define WM8350_OUT1R_ENA 0x0002
-#define WM8350_OUT1L_ENA 0x0001
-
-/*
- * R11 (0x0B) - Power mgmt (4)
- */
-#define WM8350_SYSCLK_ENA 0x4000
-#define WM8350_ADC_HPF_ENA 0x2000
-#define WM8350_FLL_ENA 0x0800
-#define WM8350_FLL_OSC_ENA 0x0400
-#define WM8350_TOCLK_ENA 0x0100
-#define WM8350_DACR_ENA 0x0020
-#define WM8350_DACL_ENA 0x0010
-#define WM8350_ADCR_ENA 0x0008
-#define WM8350_ADCL_ENA 0x0004
-
-/*
- * R12 (0x0C) - Power mgmt (5)
- */
-#define WM8350_CODEC_ENA 0x1000
-#define WM8350_RTC_TICK_ENA 0x0800
-#define WM8350_OSC32K_ENA 0x0400
-#define WM8350_CHG_ENA 0x0200
-#define WM8350_ACC_DET_ENA 0x0100
-#define WM8350_AUXADC_ENA 0x0080
-#define WM8350_DCMP4_ENA 0x0008
-#define WM8350_DCMP3_ENA 0x0004
-#define WM8350_DCMP2_ENA 0x0002
-#define WM8350_DCMP1_ENA 0x0001
-
-/*
- * R13 (0x0D) - Power mgmt (6)
- */
-#define WM8350_LS_ENA 0x8000
-#define WM8350_LDO4_ENA 0x0800
-#define WM8350_LDO3_ENA 0x0400
-#define WM8350_LDO2_ENA 0x0200
-#define WM8350_LDO1_ENA 0x0100
-#define WM8350_DC6_ENA 0x0020
-#define WM8350_DC5_ENA 0x0010
-#define WM8350_DC4_ENA 0x0008
-#define WM8350_DC3_ENA 0x0004
-#define WM8350_DC2_ENA 0x0002
-#define WM8350_DC1_ENA 0x0001
-
-/*
- * R14 (0x0E) - Power mgmt (7)
- */
-#define WM8350_CS2_ENA 0x0002
-#define WM8350_CS1_ENA 0x0001
-
-/*
- * R24 (0x18) - System Interrupts
- */
-#define WM8350_OC_INT 0x2000
-#define WM8350_UV_INT 0x1000
-#define WM8350_PUTO_INT 0x0800
-#define WM8350_CS_INT 0x0200
-#define WM8350_EXT_INT 0x0100
-#define WM8350_CODEC_INT 0x0080
-#define WM8350_GP_INT 0x0040
-#define WM8350_AUXADC_INT 0x0020
-#define WM8350_RTC_INT 0x0010
-#define WM8350_SYS_INT 0x0008
-#define WM8350_CHG_INT 0x0004
-#define WM8350_USB_INT 0x0002
-#define WM8350_WKUP_INT 0x0001
-
-/*
- * R25 (0x19) - Interrupt Status 1
- */
-#define WM8350_CHG_BAT_HOT_EINT 0x8000
-#define WM8350_CHG_BAT_COLD_EINT 0x4000
-#define WM8350_CHG_BAT_FAIL_EINT 0x2000
-#define WM8350_CHG_TO_EINT 0x1000
-#define WM8350_CHG_END_EINT 0x0800
-#define WM8350_CHG_START_EINT 0x0400
-#define WM8350_CHG_FAST_RDY_EINT 0x0200
-#define WM8350_RTC_PER_EINT 0x0080
-#define WM8350_RTC_SEC_EINT 0x0040
-#define WM8350_RTC_ALM_EINT 0x0020
-#define WM8350_CHG_VBATT_LT_3P9_EINT 0x0004
-#define WM8350_CHG_VBATT_LT_3P1_EINT 0x0002
-#define WM8350_CHG_VBATT_LT_2P85_EINT 0x0001
-
-/*
- * R26 (0x1A) - Interrupt Status 2
- */
-#define WM8350_CS1_EINT 0x2000
-#define WM8350_CS2_EINT 0x1000
-#define WM8350_USB_LIMIT_EINT 0x0400
-#define WM8350_AUXADC_DATARDY_EINT 0x0100
-#define WM8350_AUXADC_DCOMP4_EINT 0x0080
-#define WM8350_AUXADC_DCOMP3_EINT 0x0040
-#define WM8350_AUXADC_DCOMP2_EINT 0x0020
-#define WM8350_AUXADC_DCOMP1_EINT 0x0010
-#define WM8350_SYS_HYST_COMP_FAIL_EINT 0x0008
-#define WM8350_SYS_CHIP_GT115_EINT 0x0004
-#define WM8350_SYS_CHIP_GT140_EINT 0x0002
-#define WM8350_SYS_WDOG_TO_EINT 0x0001
-
-/*
- * R27 (0x1B) - Power Up Interrupt Status
- */
-#define WM8350_PUTO_LDO4_EINT 0x0800
-#define WM8350_PUTO_LDO3_EINT 0x0400
-#define WM8350_PUTO_LDO2_EINT 0x0200
-#define WM8350_PUTO_LDO1_EINT 0x0100
-#define WM8350_PUTO_DC6_EINT 0x0020
-#define WM8350_PUTO_DC5_EINT 0x0010
-#define WM8350_PUTO_DC4_EINT 0x0008
-#define WM8350_PUTO_DC3_EINT 0x0004
-#define WM8350_PUTO_DC2_EINT 0x0002
-#define WM8350_PUTO_DC1_EINT 0x0001
-
-/*
- * R28 (0x1C) - Under Voltage Interrupt status
- */
-#define WM8350_UV_LDO4_EINT 0x0800
-#define WM8350_UV_LDO3_EINT 0x0400
-#define WM8350_UV_LDO2_EINT 0x0200
-#define WM8350_UV_LDO1_EINT 0x0100
-#define WM8350_UV_DC6_EINT 0x0020
-#define WM8350_UV_DC5_EINT 0x0010
-#define WM8350_UV_DC4_EINT 0x0008
-#define WM8350_UV_DC3_EINT 0x0004
-#define WM8350_UV_DC2_EINT 0x0002
-#define WM8350_UV_DC1_EINT 0x0001
-
-/*
- * R29 (0x1D) - Over Current Interrupt status
- */
-#define WM8350_OC_LS_EINT 0x8000
-
-/*
- * R30 (0x1E) - GPIO Interrupt Status
- */
-#define WM8350_GP12_EINT 0x1000
-#define WM8350_GP11_EINT 0x0800
-#define WM8350_GP10_EINT 0x0400
-#define WM8350_GP9_EINT 0x0200
-#define WM8350_GP8_EINT 0x0100
-#define WM8350_GP7_EINT 0x0080
-#define WM8350_GP6_EINT 0x0040
-#define WM8350_GP5_EINT 0x0020
-#define WM8350_GP4_EINT 0x0010
-#define WM8350_GP3_EINT 0x0008
-#define WM8350_GP2_EINT 0x0004
-#define WM8350_GP1_EINT 0x0002
-#define WM8350_GP0_EINT 0x0001
-
-/*
- * R31 (0x1F) - Comparator Interrupt Status
- */
-#define WM8350_EXT_USB_FB_EINT 0x8000
-#define WM8350_EXT_WALL_FB_EINT 0x4000
-#define WM8350_EXT_BAT_FB_EINT 0x2000
-#define WM8350_CODEC_JCK_DET_L_EINT 0x0800
-#define WM8350_CODEC_JCK_DET_R_EINT 0x0400
-#define WM8350_CODEC_MICSCD_EINT 0x0200
-#define WM8350_CODEC_MICD_EINT 0x0100
-#define WM8350_WKUP_OFF_STATE_EINT 0x0040
-#define WM8350_WKUP_HIB_STATE_EINT 0x0020
-#define WM8350_WKUP_CONV_FAULT_EINT 0x0010
-#define WM8350_WKUP_WDOG_RST_EINT 0x0008
-#define WM8350_WKUP_GP_PWR_ON_EINT 0x0004
-#define WM8350_WKUP_ONKEY_EINT 0x0002
-#define WM8350_WKUP_GP_WAKEUP_EINT 0x0001
-
-/*
- * R32 (0x20) - System Interrupts Mask
- */
-#define WM8350_IM_OC_INT 0x2000
-#define WM8350_IM_UV_INT 0x1000
-#define WM8350_IM_PUTO_INT 0x0800
-#define WM8350_IM_SPARE_INT 0x0400
-#define WM8350_IM_CS_INT 0x0200
-#define WM8350_IM_EXT_INT 0x0100
-#define WM8350_IM_CODEC_INT 0x0080
-#define WM8350_IM_GP_INT 0x0040
-#define WM8350_IM_AUXADC_INT 0x0020
-#define WM8350_IM_RTC_INT 0x0010
-#define WM8350_IM_SYS_INT 0x0008
-#define WM8350_IM_CHG_INT 0x0004
-#define WM8350_IM_USB_INT 0x0002
-#define WM8350_IM_WKUP_INT 0x0001
-
-/*
- * R33 (0x21) - Interrupt Status 1 Mask
- */
-#define WM8350_IM_CHG_BAT_HOT_EINT 0x8000
-#define WM8350_IM_CHG_BAT_COLD_EINT 0x4000
-#define WM8350_IM_CHG_BAT_FAIL_EINT 0x2000
-#define WM8350_IM_CHG_TO_EINT 0x1000
-#define WM8350_IM_CHG_END_EINT 0x0800
-#define WM8350_IM_CHG_START_EINT 0x0400
-#define WM8350_IM_CHG_FAST_RDY_EINT 0x0200
-#define WM8350_IM_RTC_PER_EINT 0x0080
-#define WM8350_IM_RTC_SEC_EINT 0x0040
-#define WM8350_IM_RTC_ALM_EINT 0x0020
-#define WM8350_IM_CHG_VBATT_LT_3P9_EINT 0x0004
-#define WM8350_IM_CHG_VBATT_LT_3P1_EINT 0x0002
-#define WM8350_IM_CHG_VBATT_LT_2P85_EINT 0x0001
-
-/*
- * R34 (0x22) - Interrupt Status 2 Mask
- */
-#define WM8350_IM_SPARE2_EINT 0x8000
-#define WM8350_IM_SPARE1_EINT 0x4000
-#define WM8350_IM_CS1_EINT 0x2000
-#define WM8350_IM_CS2_EINT 0x1000
-#define WM8350_IM_USB_LIMIT_EINT 0x0400
-#define WM8350_IM_AUXADC_DATARDY_EINT 0x0100
-#define WM8350_IM_AUXADC_DCOMP4_EINT 0x0080
-#define WM8350_IM_AUXADC_DCOMP3_EINT 0x0040
-#define WM8350_IM_AUXADC_DCOMP2_EINT 0x0020
-#define WM8350_IM_AUXADC_DCOMP1_EINT 0x0010
-#define WM8350_IM_SYS_HYST_COMP_FAIL_EINT 0x0008
-#define WM8350_IM_SYS_CHIP_GT115_EINT 0x0004
-#define WM8350_IM_SYS_CHIP_GT140_EINT 0x0002
-#define WM8350_IM_SYS_WDOG_TO_EINT 0x0001
-
-/*
- * R35 (0x23) - Power Up Interrupt Status Mask
- */
-#define WM8350_IM_PUTO_LDO4_EINT 0x0800
-#define WM8350_IM_PUTO_LDO3_EINT 0x0400
-#define WM8350_IM_PUTO_LDO2_EINT 0x0200
-#define WM8350_IM_PUTO_LDO1_EINT 0x0100
-#define WM8350_IM_PUTO_DC6_EINT 0x0020
-#define WM8350_IM_PUTO_DC5_EINT 0x0010
-#define WM8350_IM_PUTO_DC4_EINT 0x0008
-#define WM8350_IM_PUTO_DC3_EINT 0x0004
-#define WM8350_IM_PUTO_DC2_EINT 0x0002
-#define WM8350_IM_PUTO_DC1_EINT 0x0001
-
-/*
- * R36 (0x24) - Under Voltage Interrupt status Mask
- */
-#define WM8350_IM_UV_LDO4_EINT 0x0800
-#define WM8350_IM_UV_LDO3_EINT 0x0400
-#define WM8350_IM_UV_LDO2_EINT 0x0200
-#define WM8350_IM_UV_LDO1_EINT 0x0100
-#define WM8350_IM_UV_DC6_EINT 0x0020
-#define WM8350_IM_UV_DC5_EINT 0x0010
-#define WM8350_IM_UV_DC4_EINT 0x0008
-#define WM8350_IM_UV_DC3_EINT 0x0004
-#define WM8350_IM_UV_DC2_EINT 0x0002
-#define WM8350_IM_UV_DC1_EINT 0x0001
-
-/*
- * R37 (0x25) - Over Current Interrupt status Mask
- */
-#define WM8350_IM_OC_LS_EINT 0x8000
-
-/*
- * R38 (0x26) - GPIO Interrupt Status Mask
- */
-#define WM8350_IM_GP12_EINT 0x1000
-#define WM8350_IM_GP11_EINT 0x0800
-#define WM8350_IM_GP10_EINT 0x0400
-#define WM8350_IM_GP9_EINT 0x0200
-#define WM8350_IM_GP8_EINT 0x0100
-#define WM8350_IM_GP7_EINT 0x0080
-#define WM8350_IM_GP6_EINT 0x0040
-#define WM8350_IM_GP5_EINT 0x0020
-#define WM8350_IM_GP4_EINT 0x0010
-#define WM8350_IM_GP3_EINT 0x0008
-#define WM8350_IM_GP2_EINT 0x0004
-#define WM8350_IM_GP1_EINT 0x0002
-#define WM8350_IM_GP0_EINT 0x0001
-
-/*
- * R39 (0x27) - Comparator Interrupt Status Mask
- */
-#define WM8350_IM_EXT_USB_FB_EINT 0x8000
-#define WM8350_IM_EXT_WALL_FB_EINT 0x4000
-#define WM8350_IM_EXT_BAT_FB_EINT 0x2000
-#define WM8350_IM_CODEC_JCK_DET_L_EINT 0x0800
-#define WM8350_IM_CODEC_JCK_DET_R_EINT 0x0400
-#define WM8350_IM_CODEC_MICSCD_EINT 0x0200
-#define WM8350_IM_CODEC_MICD_EINT 0x0100
-#define WM8350_IM_WKUP_OFF_STATE_EINT 0x0040
-#define WM8350_IM_WKUP_HIB_STATE_EINT 0x0020
-#define WM8350_IM_WKUP_CONV_FAULT_EINT 0x0010
-#define WM8350_IM_WKUP_WDOG_RST_EINT 0x0008
-#define WM8350_IM_WKUP_GP_PWR_ON_EINT 0x0004
-#define WM8350_IM_WKUP_ONKEY_EINT 0x0002
-#define WM8350_IM_WKUP_GP_WAKEUP_EINT 0x0001
-
-/*
- * R220 (0xDC) - RAM BIST 1
- */
-#define WM8350_READ_STATUS 0x0800
-#define WM8350_TSTRAM_CLK 0x0100
-#define WM8350_TSTRAM_CLK_ENA 0x0080
-#define WM8350_STARTSEQ 0x0040
-#define WM8350_READ_SRC 0x0020
-#define WM8350_COUNT_DIR 0x0010
-#define WM8350_TSTRAM_MODE_MASK 0x000E
-#define WM8350_TSTRAM_ENA 0x0001
-
-/*
- * R225 (0xE1) - DCDC/LDO status
- */
-#define WM8350_LS_STS 0x8000
-#define WM8350_LDO4_STS 0x0800
-#define WM8350_LDO3_STS 0x0400
-#define WM8350_LDO2_STS 0x0200
-#define WM8350_LDO1_STS 0x0100
-#define WM8350_DC6_STS 0x0020
-#define WM8350_DC5_STS 0x0010
-#define WM8350_DC4_STS 0x0008
-#define WM8350_DC3_STS 0x0004
-#define WM8350_DC2_STS 0x0002
-#define WM8350_DC1_STS 0x0001
-
-/*
- * R226 (0xE2) - Charger status
- */
-#define WM8350_CHG_BATT_HOT_OVRDE 0x8000
-#define WM8350_CHG_BATT_COLD_OVRDE 0x4000
-
-/*
- * R227 (0xE3) - Misc Overrides
- */
-#define WM8350_USB_LIMIT_OVRDE 0x0400
-
-/*
- * R227 (0xE7) - Comparator Overrides
- */
-#define WM8350_USB_FB_OVRDE 0x8000
-#define WM8350_WALL_FB_OVRDE 0x4000
-#define WM8350_BATT_FB_OVRDE 0x2000
-
-
-/*
- * R233 (0xE9) - State Machinine Status
- */
-#define WM8350_USB_SM_MASK 0x0700
-#define WM8350_USB_SM_SHIFT 8
-
-#define WM8350_USB_SM_100_SLV 1
-#define WM8350_USB_SM_500_SLV 5
-#define WM8350_USB_SM_STDBY_SLV 7
-
-/* WM8350 wake up conditions */
-#define WM8350_IRQ_WKUP_OFF_STATE 43
-#define WM8350_IRQ_WKUP_HIB_STATE 44
-#define WM8350_IRQ_WKUP_CONV_FAULT 45
-#define WM8350_IRQ_WKUP_WDOG_RST 46
-#define WM8350_IRQ_WKUP_GP_PWR_ON 47
-#define WM8350_IRQ_WKUP_ONKEY 48
-#define WM8350_IRQ_WKUP_GP_WAKEUP 49
-
-/* wm8350 chip revisions */
-#define WM8350_REV_E 0x4
-#define WM8350_REV_F 0x5
-#define WM8350_REV_G 0x6
-#define WM8350_REV_H 0x7
-
-#define WM8350_NUM_IRQ 63
-
-#define WM8350_NUM_IRQ_REGS 7
-
-struct wm8350_reg_access {
- u16 readable; /* Mask of readable bits */
- u16 writable; /* Mask of writable bits */
- u16 vol; /* Mask of volatile bits */
-};
-extern const struct wm8350_reg_access wm8350_reg_io_map[];
-extern const u16 wm8350_mode0_defaults[];
-extern const u16 wm8350_mode1_defaults[];
-extern const u16 wm8350_mode2_defaults[];
-extern const u16 wm8350_mode3_defaults[];
-extern const u16 wm8351_mode0_defaults[];
-extern const u16 wm8351_mode1_defaults[];
-extern const u16 wm8351_mode2_defaults[];
-extern const u16 wm8351_mode3_defaults[];
-extern const u16 wm8352_mode0_defaults[];
-extern const u16 wm8352_mode1_defaults[];
-extern const u16 wm8352_mode2_defaults[];
-extern const u16 wm8352_mode3_defaults[];
-
-struct wm8350;
-
-struct wm8350_hwmon {
- struct platform_device *pdev;
- struct device *classdev;
-};
-
-struct wm8350 {
- struct device *dev;
-
- /* device IO */
- union {
- struct i2c_client *i2c_client;
- struct spi_device *spi_device;
- };
- int (*read_dev)(struct wm8350 *wm8350, char reg, int size, void *dest);
- int (*write_dev)(struct wm8350 *wm8350, char reg, int size,
- void *src);
- u16 *reg_cache;
-
- struct mutex auxadc_mutex;
- struct completion auxadc_done;
-
- /* Interrupt handling */
- struct mutex irq_lock;
- int chip_irq;
- int irq_base;
- u16 irq_masks[WM8350_NUM_IRQ_REGS];
-
- /* Client devices */
- struct wm8350_codec codec;
- struct wm8350_gpio gpio;
- struct wm8350_hwmon hwmon;
- struct wm8350_pmic pmic;
- struct wm8350_power power;
- struct wm8350_rtc rtc;
- struct wm8350_wdt wdt;
-};
-
-/**
- * Data to be supplied by the platform to initialise the WM8350.
- *
- * @init: Function called during driver initialisation. Should be
- * used by the platform to configure GPIO functions and similar.
- * @irq_high: Set if WM8350 IRQ is active high.
- * @irq_base: Base IRQ for genirq (not currently used).
- * @gpio_base: Base for gpiolib.
- */
-struct wm8350_platform_data {
- int (*init)(struct wm8350 *wm8350);
- int irq_high;
- int irq_base;
- int gpio_base;
-};
-
-
-/*
- * WM8350 device initialisation and exit.
- */
-int wm8350_device_init(struct wm8350 *wm8350, int irq,
- struct wm8350_platform_data *pdata);
-void wm8350_device_exit(struct wm8350 *wm8350);
-
-/*
- * WM8350 device IO
- */
-int wm8350_clear_bits(struct wm8350 *wm8350, u16 reg, u16 mask);
-int wm8350_set_bits(struct wm8350 *wm8350, u16 reg, u16 mask);
-u16 wm8350_reg_read(struct wm8350 *wm8350, int reg);
-int wm8350_reg_write(struct wm8350 *wm8350, int reg, u16 val);
-int wm8350_reg_lock(struct wm8350 *wm8350);
-int wm8350_reg_unlock(struct wm8350 *wm8350);
-int wm8350_block_read(struct wm8350 *wm8350, int reg, int size, u16 *dest);
-int wm8350_block_write(struct wm8350 *wm8350, int reg, int size, u16 *src);
-
-/*
- * WM8350 internal interrupts
- */
-static inline int wm8350_register_irq(struct wm8350 *wm8350, int irq,
- irq_handler_t handler,
- unsigned long flags,
- const char *name, void *data)
-{
- if (!wm8350->irq_base)
- return -ENODEV;
-
- return request_threaded_irq(irq + wm8350->irq_base, NULL,
- handler, flags, name, data);
-}
-
-static inline void wm8350_free_irq(struct wm8350 *wm8350, int irq, void *data)
-{
- free_irq(irq + wm8350->irq_base, data);
-}
-
-static inline void wm8350_mask_irq(struct wm8350 *wm8350, int irq)
-{
- disable_irq(irq + wm8350->irq_base);
-}
-
-static inline void wm8350_unmask_irq(struct wm8350 *wm8350, int irq)
-{
- enable_irq(irq + wm8350->irq_base);
-}
-
-int wm8350_irq_init(struct wm8350 *wm8350, int irq,
- struct wm8350_platform_data *pdata);
-int wm8350_irq_exit(struct wm8350 *wm8350);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/wm8350/gpio.h b/ANDROID_3.4.5/include/linux/mfd/wm8350/gpio.h
deleted file mode 100644
index d657bcd6..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/wm8350/gpio.h
+++ /dev/null
@@ -1,361 +0,0 @@
-/*
- * gpio.h -- GPIO Driver for Wolfson WM8350 PMIC
- *
- * Copyright 2007 Wolfson Microelectronics PLC
- *
- * 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_MFD_WM8350_GPIO_H_
-#define __LINUX_MFD_WM8350_GPIO_H_
-
-#include <linux/platform_device.h>
-
-/*
- * GPIO Registers.
- */
-#define WM8350_GPIO_DEBOUNCE 0x80
-#define WM8350_GPIO_PIN_PULL_UP_CONTROL 0x81
-#define WM8350_GPIO_PULL_DOWN_CONTROL 0x82
-#define WM8350_GPIO_INT_MODE 0x83
-#define WM8350_GPIO_CONTROL 0x85
-#define WM8350_GPIO_CONFIGURATION_I_O 0x86
-#define WM8350_GPIO_PIN_POLARITY_TYPE 0x87
-#define WM8350_GPIO_FUNCTION_SELECT_1 0x8C
-#define WM8350_GPIO_FUNCTION_SELECT_2 0x8D
-#define WM8350_GPIO_FUNCTION_SELECT_3 0x8E
-#define WM8350_GPIO_FUNCTION_SELECT_4 0x8F
-#define WM8350_GPIO_LEVEL 0xE6
-
-/*
- * GPIO Functions
- */
-#define WM8350_GPIO0_GPIO_IN 0x0
-#define WM8350_GPIO0_GPIO_OUT 0x0
-#define WM8350_GPIO0_PWR_ON_IN 0x1
-#define WM8350_GPIO0_PWR_ON_OUT 0x1
-#define WM8350_GPIO0_LDO_EN_IN 0x2
-#define WM8350_GPIO0_VRTC_OUT 0x2
-#define WM8350_GPIO0_LPWR1_IN 0x3
-#define WM8350_GPIO0_POR_B_OUT 0x3
-
-#define WM8350_GPIO1_GPIO_IN 0x0
-#define WM8350_GPIO1_GPIO_OUT 0x0
-#define WM8350_GPIO1_PWR_ON_IN 0x1
-#define WM8350_GPIO1_DO_CONF_OUT 0x1
-#define WM8350_GPIO1_LDO_EN_IN 0x2
-#define WM8350_GPIO1_RESET_OUT 0x2
-#define WM8350_GPIO1_LPWR2_IN 0x3
-#define WM8350_GPIO1_MEMRST_OUT 0x3
-
-#define WM8350_GPIO2_GPIO_IN 0x0
-#define WM8350_GPIO2_GPIO_OUT 0x0
-#define WM8350_GPIO2_PWR_ON_IN 0x1
-#define WM8350_GPIO2_PWR_ON_OUT 0x1
-#define WM8350_GPIO2_WAKE_UP_IN 0x2
-#define WM8350_GPIO2_VRTC_OUT 0x2
-#define WM8350_GPIO2_32KHZ_IN 0x3
-#define WM8350_GPIO2_32KHZ_OUT 0x3
-
-#define WM8350_GPIO3_GPIO_IN 0x0
-#define WM8350_GPIO3_GPIO_OUT 0x0
-#define WM8350_GPIO3_PWR_ON_IN 0x1
-#define WM8350_GPIO3_P_CLK_OUT 0x1
-#define WM8350_GPIO3_LDO_EN_IN 0x2
-#define WM8350_GPIO3_VRTC_OUT 0x2
-#define WM8350_GPIO3_PWR_OFF_IN 0x3
-#define WM8350_GPIO3_32KHZ_OUT 0x3
-
-#define WM8350_GPIO4_GPIO_IN 0x0
-#define WM8350_GPIO4_GPIO_OUT 0x0
-#define WM8350_GPIO4_MR_IN 0x1
-#define WM8350_GPIO4_MEM_RST_OUT 0x1
-#define WM8350_GPIO4_FLASH_IN 0x2
-#define WM8350_GPIO4_ADA_OUT 0x2
-#define WM8350_GPIO4_HIBERNATE_IN 0x3
-#define WM8350_GPIO4_FLASH_OUT 0x3
-#define WM8350_GPIO4_MICDET_OUT 0x4
-#define WM8350_GPIO4_MICSHT_OUT 0x5
-
-#define WM8350_GPIO5_GPIO_IN 0x0
-#define WM8350_GPIO5_GPIO_OUT 0x0
-#define WM8350_GPIO5_LPWR1_IN 0x1
-#define WM8350_GPIO5_P_CLK_OUT 0x1
-#define WM8350_GPIO5_ADCLRCLK_IN 0x2
-#define WM8350_GPIO5_ADCLRCLK_OUT 0x2
-#define WM8350_GPIO5_HIBERNATE_IN 0x3
-#define WM8350_GPIO5_32KHZ_OUT 0x3
-#define WM8350_GPIO5_MICDET_OUT 0x4
-#define WM8350_GPIO5_MICSHT_OUT 0x5
-#define WM8350_GPIO5_ADA_OUT 0x6
-#define WM8350_GPIO5_OPCLK_OUT 0x7
-
-#define WM8350_GPIO6_GPIO_IN 0x0
-#define WM8350_GPIO6_GPIO_OUT 0x0
-#define WM8350_GPIO6_LPWR2_IN 0x1
-#define WM8350_GPIO6_MEMRST_OUT 0x1
-#define WM8350_GPIO6_FLASH_IN 0x2
-#define WM8350_GPIO6_ADA_OUT 0x2
-#define WM8350_GPIO6_HIBERNATE_IN 0x3
-#define WM8350_GPIO6_RTC_OUT 0x3
-#define WM8350_GPIO6_MICDET_OUT 0x4
-#define WM8350_GPIO6_MICSHT_OUT 0x5
-#define WM8350_GPIO6_ADCLRCLKB_OUT 0x6
-#define WM8350_GPIO6_SDOUT_OUT 0x7
-
-#define WM8350_GPIO7_GPIO_IN 0x0
-#define WM8350_GPIO7_GPIO_OUT 0x0
-#define WM8350_GPIO7_LPWR3_IN 0x1
-#define WM8350_GPIO7_P_CLK_OUT 0x1
-#define WM8350_GPIO7_MASK_IN 0x2
-#define WM8350_GPIO7_VCC_FAULT_OUT 0x2
-#define WM8350_GPIO7_HIBERNATE_IN 0x3
-#define WM8350_GPIO7_BATT_FAULT_OUT 0x3
-#define WM8350_GPIO7_MICDET_OUT 0x4
-#define WM8350_GPIO7_MICSHT_OUT 0x5
-#define WM8350_GPIO7_ADA_OUT 0x6
-#define WM8350_GPIO7_CSB_IN 0x7
-
-#define WM8350_GPIO8_GPIO_IN 0x0
-#define WM8350_GPIO8_GPIO_OUT 0x0
-#define WM8350_GPIO8_MR_IN 0x1
-#define WM8350_GPIO8_VCC_FAULT_OUT 0x1
-#define WM8350_GPIO8_ADCBCLK_IN 0x2
-#define WM8350_GPIO8_ADCBCLK_OUT 0x2
-#define WM8350_GPIO8_PWR_OFF_IN 0x3
-#define WM8350_GPIO8_BATT_FAULT_OUT 0x3
-#define WM8350_GPIO8_ALTSCL_IN 0xf
-
-#define WM8350_GPIO9_GPIO_IN 0x0
-#define WM8350_GPIO9_GPIO_OUT 0x0
-#define WM8350_GPIO9_HEARTBEAT_IN 0x1
-#define WM8350_GPIO9_VCC_FAULT_OUT 0x1
-#define WM8350_GPIO9_MASK_IN 0x2
-#define WM8350_GPIO9_LINE_GT_BATT_OUT 0x2
-#define WM8350_GPIO9_PWR_OFF_IN 0x3
-#define WM8350_GPIO9_BATT_FAULT_OUT 0x3
-#define WM8350_GPIO9_ALTSDA_OUT 0xf
-
-#define WM8350_GPIO10_GPIO_IN 0x0
-#define WM8350_GPIO10_GPIO_OUT 0x0
-#define WM8350_GPIO10_ISINKC_OUT 0x1
-#define WM8350_GPIO10_PWR_OFF_IN 0x2
-#define WM8350_GPIO10_LINE_GT_BATT_OUT 0x2
-#define WM8350_GPIO10_CHD_IND_IN 0x3
-
-#define WM8350_GPIO11_GPIO_IN 0x0
-#define WM8350_GPIO11_GPIO_OUT 0x0
-#define WM8350_GPIO11_ISINKD_OUT 0x1
-#define WM8350_GPIO11_WAKEUP_IN 0x2
-#define WM8350_GPIO11_LINE_GT_BATT_OUT 0x2
-#define WM8350_GPIO11_CHD_IND_IN 0x3
-
-#define WM8350_GPIO12_GPIO_IN 0x0
-#define WM8350_GPIO12_GPIO_OUT 0x0
-#define WM8350_GPIO12_ISINKE_OUT 0x1
-#define WM8350_GPIO12_LINE_GT_BATT_OUT 0x2
-#define WM8350_GPIO12_LINE_EN_OUT 0x3
-#define WM8350_GPIO12_32KHZ_OUT 0x4
-
-#define WM8350_GPIO_DIR_IN 0
-#define WM8350_GPIO_DIR_OUT 1
-#define WM8350_GPIO_ACTIVE_LOW 0
-#define WM8350_GPIO_ACTIVE_HIGH 1
-#define WM8350_GPIO_PULL_NONE 0
-#define WM8350_GPIO_PULL_UP 1
-#define WM8350_GPIO_PULL_DOWN 2
-#define WM8350_GPIO_INVERT_OFF 0
-#define WM8350_GPIO_INVERT_ON 1
-#define WM8350_GPIO_DEBOUNCE_OFF 0
-#define WM8350_GPIO_DEBOUNCE_ON 1
-
-/*
- * R30 (0x1E) - GPIO Interrupt Status
- */
-#define WM8350_GP12_EINT 0x1000
-#define WM8350_GP11_EINT 0x0800
-#define WM8350_GP10_EINT 0x0400
-#define WM8350_GP9_EINT 0x0200
-#define WM8350_GP8_EINT 0x0100
-#define WM8350_GP7_EINT 0x0080
-#define WM8350_GP6_EINT 0x0040
-#define WM8350_GP5_EINT 0x0020
-#define WM8350_GP4_EINT 0x0010
-#define WM8350_GP3_EINT 0x0008
-#define WM8350_GP2_EINT 0x0004
-#define WM8350_GP1_EINT 0x0002
-#define WM8350_GP0_EINT 0x0001
-
-
-/*
- * R128 (0x80) - GPIO Debounce
- */
-#define WM8350_GP12_DB 0x1000
-#define WM8350_GP11_DB 0x0800
-#define WM8350_GP10_DB 0x0400
-#define WM8350_GP9_DB 0x0200
-#define WM8350_GP8_DB 0x0100
-#define WM8350_GP7_DB 0x0080
-#define WM8350_GP6_DB 0x0040
-#define WM8350_GP5_DB 0x0020
-#define WM8350_GP4_DB 0x0010
-#define WM8350_GP3_DB 0x0008
-#define WM8350_GP2_DB 0x0004
-#define WM8350_GP1_DB 0x0002
-#define WM8350_GP0_DB 0x0001
-
-/*
- * R129 (0x81) - GPIO Pin pull up Control
- */
-#define WM8350_GP12_PU 0x1000
-#define WM8350_GP11_PU 0x0800
-#define WM8350_GP10_PU 0x0400
-#define WM8350_GP9_PU 0x0200
-#define WM8350_GP8_PU 0x0100
-#define WM8350_GP7_PU 0x0080
-#define WM8350_GP6_PU 0x0040
-#define WM8350_GP5_PU 0x0020
-#define WM8350_GP4_PU 0x0010
-#define WM8350_GP3_PU 0x0008
-#define WM8350_GP2_PU 0x0004
-#define WM8350_GP1_PU 0x0002
-#define WM8350_GP0_PU 0x0001
-
-/*
- * R130 (0x82) - GPIO Pull down Control
- */
-#define WM8350_GP12_PD 0x1000
-#define WM8350_GP11_PD 0x0800
-#define WM8350_GP10_PD 0x0400
-#define WM8350_GP9_PD 0x0200
-#define WM8350_GP8_PD 0x0100
-#define WM8350_GP7_PD 0x0080
-#define WM8350_GP6_PD 0x0040
-#define WM8350_GP5_PD 0x0020
-#define WM8350_GP4_PD 0x0010
-#define WM8350_GP3_PD 0x0008
-#define WM8350_GP2_PD 0x0004
-#define WM8350_GP1_PD 0x0002
-#define WM8350_GP0_PD 0x0001
-
-/*
- * R131 (0x83) - GPIO Interrupt Mode
- */
-#define WM8350_GP12_INTMODE 0x1000
-#define WM8350_GP11_INTMODE 0x0800
-#define WM8350_GP10_INTMODE 0x0400
-#define WM8350_GP9_INTMODE 0x0200
-#define WM8350_GP8_INTMODE 0x0100
-#define WM8350_GP7_INTMODE 0x0080
-#define WM8350_GP6_INTMODE 0x0040
-#define WM8350_GP5_INTMODE 0x0020
-#define WM8350_GP4_INTMODE 0x0010
-#define WM8350_GP3_INTMODE 0x0008
-#define WM8350_GP2_INTMODE 0x0004
-#define WM8350_GP1_INTMODE 0x0002
-#define WM8350_GP0_INTMODE 0x0001
-
-/*
- * R133 (0x85) - GPIO Control
- */
-#define WM8350_GP_DBTIME_MASK 0x00C0
-
-/*
- * R134 (0x86) - GPIO Configuration (i/o)
- */
-#define WM8350_GP12_DIR 0x1000
-#define WM8350_GP11_DIR 0x0800
-#define WM8350_GP10_DIR 0x0400
-#define WM8350_GP9_DIR 0x0200
-#define WM8350_GP8_DIR 0x0100
-#define WM8350_GP7_DIR 0x0080
-#define WM8350_GP6_DIR 0x0040
-#define WM8350_GP5_DIR 0x0020
-#define WM8350_GP4_DIR 0x0010
-#define WM8350_GP3_DIR 0x0008
-#define WM8350_GP2_DIR 0x0004
-#define WM8350_GP1_DIR 0x0002
-#define WM8350_GP0_DIR 0x0001
-
-/*
- * R135 (0x87) - GPIO Pin Polarity / Type
- */
-#define WM8350_GP12_CFG 0x1000
-#define WM8350_GP11_CFG 0x0800
-#define WM8350_GP10_CFG 0x0400
-#define WM8350_GP9_CFG 0x0200
-#define WM8350_GP8_CFG 0x0100
-#define WM8350_GP7_CFG 0x0080
-#define WM8350_GP6_CFG 0x0040
-#define WM8350_GP5_CFG 0x0020
-#define WM8350_GP4_CFG 0x0010
-#define WM8350_GP3_CFG 0x0008
-#define WM8350_GP2_CFG 0x0004
-#define WM8350_GP1_CFG 0x0002
-#define WM8350_GP0_CFG 0x0001
-
-/*
- * R140 (0x8C) - GPIO Function Select 1
- */
-#define WM8350_GP3_FN_MASK 0xF000
-#define WM8350_GP2_FN_MASK 0x0F00
-#define WM8350_GP1_FN_MASK 0x00F0
-#define WM8350_GP0_FN_MASK 0x000F
-
-/*
- * R141 (0x8D) - GPIO Function Select 2
- */
-#define WM8350_GP7_FN_MASK 0xF000
-#define WM8350_GP6_FN_MASK 0x0F00
-#define WM8350_GP5_FN_MASK 0x00F0
-#define WM8350_GP4_FN_MASK 0x000F
-
-/*
- * R142 (0x8E) - GPIO Function Select 3
- */
-#define WM8350_GP11_FN_MASK 0xF000
-#define WM8350_GP10_FN_MASK 0x0F00
-#define WM8350_GP9_FN_MASK 0x00F0
-#define WM8350_GP8_FN_MASK 0x000F
-
-/*
- * R143 (0x8F) - GPIO Function Select 4
- */
-#define WM8350_GP12_FN_MASK 0x000F
-
-/*
- * R230 (0xE6) - GPIO Pin Status
- */
-#define WM8350_GP12_LVL 0x1000
-#define WM8350_GP11_LVL 0x0800
-#define WM8350_GP10_LVL 0x0400
-#define WM8350_GP9_LVL 0x0200
-#define WM8350_GP8_LVL 0x0100
-#define WM8350_GP7_LVL 0x0080
-#define WM8350_GP6_LVL 0x0040
-#define WM8350_GP5_LVL 0x0020
-#define WM8350_GP4_LVL 0x0010
-#define WM8350_GP3_LVL 0x0008
-#define WM8350_GP2_LVL 0x0004
-#define WM8350_GP1_LVL 0x0002
-#define WM8350_GP0_LVL 0x0001
-
-struct wm8350;
-
-int wm8350_gpio_config(struct wm8350 *wm8350, int gpio, int dir, int func,
- int pol, int pull, int invert, int debounce);
-
-struct wm8350_gpio {
- struct platform_device *pdev;
-};
-
-/*
- * GPIO Interrupts
- */
-#define WM8350_IRQ_GPIO(x) (50 + x)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/wm8350/pmic.h b/ANDROID_3.4.5/include/linux/mfd/wm8350/pmic.h
deleted file mode 100644
index 579b50ca..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/wm8350/pmic.h
+++ /dev/null
@@ -1,781 +0,0 @@
-/*
- * pmic.h -- Power Management Driver for Wolfson WM8350 PMIC
- *
- * Copyright 2007 Wolfson Microelectronics PLC
- *
- * 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_MFD_WM8350_PMIC_H
-#define __LINUX_MFD_WM8350_PMIC_H
-
-#include <linux/platform_device.h>
-#include <linux/leds.h>
-#include <linux/regulator/machine.h>
-
-/*
- * Register values.
- */
-
-#define WM8350_CURRENT_SINK_DRIVER_A 0xAC
-#define WM8350_CSA_FLASH_CONTROL 0xAD
-#define WM8350_CURRENT_SINK_DRIVER_B 0xAE
-#define WM8350_CSB_FLASH_CONTROL 0xAF
-#define WM8350_DCDC_LDO_REQUESTED 0xB0
-#define WM8350_DCDC_ACTIVE_OPTIONS 0xB1
-#define WM8350_DCDC_SLEEP_OPTIONS 0xB2
-#define WM8350_POWER_CHECK_COMPARATOR 0xB3
-#define WM8350_DCDC1_CONTROL 0xB4
-#define WM8350_DCDC1_TIMEOUTS 0xB5
-#define WM8350_DCDC1_LOW_POWER 0xB6
-#define WM8350_DCDC2_CONTROL 0xB7
-#define WM8350_DCDC2_TIMEOUTS 0xB8
-#define WM8350_DCDC3_CONTROL 0xBA
-#define WM8350_DCDC3_TIMEOUTS 0xBB
-#define WM8350_DCDC3_LOW_POWER 0xBC
-#define WM8350_DCDC4_CONTROL 0xBD
-#define WM8350_DCDC4_TIMEOUTS 0xBE
-#define WM8350_DCDC4_LOW_POWER 0xBF
-#define WM8350_DCDC5_CONTROL 0xC0
-#define WM8350_DCDC5_TIMEOUTS 0xC1
-#define WM8350_DCDC6_CONTROL 0xC3
-#define WM8350_DCDC6_TIMEOUTS 0xC4
-#define WM8350_DCDC6_LOW_POWER 0xC5
-#define WM8350_LIMIT_SWITCH_CONTROL 0xC7
-#define WM8350_LDO1_CONTROL 0xC8
-#define WM8350_LDO1_TIMEOUTS 0xC9
-#define WM8350_LDO1_LOW_POWER 0xCA
-#define WM8350_LDO2_CONTROL 0xCB
-#define WM8350_LDO2_TIMEOUTS 0xCC
-#define WM8350_LDO2_LOW_POWER 0xCD
-#define WM8350_LDO3_CONTROL 0xCE
-#define WM8350_LDO3_TIMEOUTS 0xCF
-#define WM8350_LDO3_LOW_POWER 0xD0
-#define WM8350_LDO4_CONTROL 0xD1
-#define WM8350_LDO4_TIMEOUTS 0xD2
-#define WM8350_LDO4_LOW_POWER 0xD3
-#define WM8350_VCC_FAULT_MASKS 0xD7
-#define WM8350_MAIN_BANDGAP_CONTROL 0xD8
-#define WM8350_OSC_CONTROL 0xD9
-#define WM8350_RTC_TICK_CONTROL 0xDA
-#define WM8350_SECURITY 0xDB
-#define WM8350_RAM_BIST_1 0xDC
-#define WM8350_DCDC_LDO_STATUS 0xE1
-#define WM8350_GPIO_PIN_STATUS 0xE6
-
-#define WM8350_DCDC1_FORCE_PWM 0xF8
-#define WM8350_DCDC3_FORCE_PWM 0xFA
-#define WM8350_DCDC4_FORCE_PWM 0xFB
-#define WM8350_DCDC6_FORCE_PWM 0xFD
-
-/*
- * R172 (0xAC) - Current Sink Driver A
- */
-#define WM8350_CS1_HIB_MODE 0x1000
-#define WM8350_CS1_HIB_MODE_MASK 0x1000
-#define WM8350_CS1_HIB_MODE_SHIFT 12
-#define WM8350_CS1_ISEL_MASK 0x003F
-#define WM8350_CS1_ISEL_SHIFT 0
-
-/* Bit values for R172 (0xAC) */
-#define WM8350_CS1_HIB_MODE_DISABLE 0
-#define WM8350_CS1_HIB_MODE_LEAVE 1
-
-#define WM8350_CS1_ISEL_220M 0x3F
-
-/*
- * R173 (0xAD) - CSA Flash control
- */
-#define WM8350_CS1_FLASH_MODE 0x8000
-#define WM8350_CS1_TRIGSRC 0x4000
-#define WM8350_CS1_DRIVE 0x2000
-#define WM8350_CS1_FLASH_DUR_MASK 0x0300
-#define WM8350_CS1_OFF_RAMP_MASK 0x0030
-#define WM8350_CS1_ON_RAMP_MASK 0x0003
-
-/*
- * R174 (0xAE) - Current Sink Driver B
- */
-#define WM8350_CS2_HIB_MODE 0x1000
-#define WM8350_CS2_ISEL_MASK 0x003F
-
-/*
- * R175 (0xAF) - CSB Flash control
- */
-#define WM8350_CS2_FLASH_MODE 0x8000
-#define WM8350_CS2_TRIGSRC 0x4000
-#define WM8350_CS2_DRIVE 0x2000
-#define WM8350_CS2_FLASH_DUR_MASK 0x0300
-#define WM8350_CS2_OFF_RAMP_MASK 0x0030
-#define WM8350_CS2_ON_RAMP_MASK 0x0003
-
-/*
- * R176 (0xB0) - DCDC/LDO requested
- */
-#define WM8350_LS_ENA 0x8000
-#define WM8350_LDO4_ENA 0x0800
-#define WM8350_LDO3_ENA 0x0400
-#define WM8350_LDO2_ENA 0x0200
-#define WM8350_LDO1_ENA 0x0100
-#define WM8350_DC6_ENA 0x0020
-#define WM8350_DC5_ENA 0x0010
-#define WM8350_DC4_ENA 0x0008
-#define WM8350_DC3_ENA 0x0004
-#define WM8350_DC2_ENA 0x0002
-#define WM8350_DC1_ENA 0x0001
-
-/*
- * R177 (0xB1) - DCDC Active options
- */
-#define WM8350_PUTO_MASK 0x3000
-#define WM8350_PWRUP_DELAY_MASK 0x0300
-#define WM8350_DC6_ACTIVE 0x0020
-#define WM8350_DC4_ACTIVE 0x0008
-#define WM8350_DC3_ACTIVE 0x0004
-#define WM8350_DC1_ACTIVE 0x0001
-
-/*
- * R178 (0xB2) - DCDC Sleep options
- */
-#define WM8350_DC6_SLEEP 0x0020
-#define WM8350_DC4_SLEEP 0x0008
-#define WM8350_DC3_SLEEP 0x0004
-#define WM8350_DC1_SLEEP 0x0001
-
-/*
- * R179 (0xB3) - Power-check comparator
- */
-#define WM8350_PCCMP_ERRACT 0x4000
-#define WM8350_PCCMP_RAIL 0x0100
-#define WM8350_PCCMP_OFF_THR_MASK 0x0070
-#define WM8350_PCCMP_ON_THR_MASK 0x0007
-
-/*
- * R180 (0xB4) - DCDC1 Control
- */
-#define WM8350_DC1_OPFLT 0x0400
-#define WM8350_DC1_VSEL_MASK 0x007F
-#define WM8350_DC1_VSEL_SHIFT 0
-
-/*
- * R181 (0xB5) - DCDC1 Timeouts
- */
-#define WM8350_DC1_ERRACT_MASK 0xC000
-#define WM8350_DC1_ERRACT_SHIFT 14
-#define WM8350_DC1_ENSLOT_MASK 0x3C00
-#define WM8350_DC1_ENSLOT_SHIFT 10
-#define WM8350_DC1_SDSLOT_MASK 0x03C0
-#define WM8350_DC1_UVTO_MASK 0x0030
-#define WM8350_DC1_SDSLOT_SHIFT 6
-
-/* Bit values for R181 (0xB5) */
-#define WM8350_DC1_ERRACT_NONE 0
-#define WM8350_DC1_ERRACT_SHUTDOWN_CONV 1
-#define WM8350_DC1_ERRACT_SHUTDOWN_SYS 2
-
-/*
- * R182 (0xB6) - DCDC1 Low Power
- */
-#define WM8350_DC1_HIB_MODE_MASK 0x7000
-#define WM8350_DC1_HIB_TRIG_MASK 0x0300
-#define WM8350_DC1_VIMG_MASK 0x007F
-
-/*
- * R183 (0xB7) - DCDC2 Control
- */
-#define WM8350_DC2_MODE 0x4000
-#define WM8350_DC2_MODE_MASK 0x4000
-#define WM8350_DC2_MODE_SHIFT 14
-#define WM8350_DC2_HIB_MODE 0x1000
-#define WM8350_DC2_HIB_MODE_MASK 0x1000
-#define WM8350_DC2_HIB_MODE_SHIFT 12
-#define WM8350_DC2_HIB_TRIG_MASK 0x0300
-#define WM8350_DC2_HIB_TRIG_SHIFT 8
-#define WM8350_DC2_ILIM 0x0040
-#define WM8350_DC2_ILIM_MASK 0x0040
-#define WM8350_DC2_ILIM_SHIFT 6
-#define WM8350_DC2_RMP_MASK 0x0018
-#define WM8350_DC2_RMP_SHIFT 3
-#define WM8350_DC2_FBSRC_MASK 0x0003
-#define WM8350_DC2_FBSRC_SHIFT 0
-
-/* Bit values for R183 (0xB7) */
-#define WM8350_DC2_MODE_BOOST 0
-#define WM8350_DC2_MODE_SWITCH 1
-
-#define WM8350_DC2_HIB_MODE_ACTIVE 1
-#define WM8350_DC2_HIB_MODE_DISABLE 0
-
-#define WM8350_DC2_HIB_TRIG_NONE 0
-#define WM8350_DC2_HIB_TRIG_LPWR1 1
-#define WM8350_DC2_HIB_TRIG_LPWR2 2
-#define WM8350_DC2_HIB_TRIG_LPWR3 3
-
-#define WM8350_DC2_ILIM_HIGH 0
-#define WM8350_DC2_ILIM_LOW 1
-
-#define WM8350_DC2_RMP_30V 0
-#define WM8350_DC2_RMP_20V 1
-#define WM8350_DC2_RMP_10V 2
-#define WM8350_DC2_RMP_5V 3
-
-#define WM8350_DC2_FBSRC_FB2 0
-#define WM8350_DC2_FBSRC_ISINKA 1
-#define WM8350_DC2_FBSRC_ISINKB 2
-#define WM8350_DC2_FBSRC_USB 3
-
-/*
- * R184 (0xB8) - DCDC2 Timeouts
- */
-#define WM8350_DC2_ERRACT_MASK 0xC000
-#define WM8350_DC2_ERRACT_SHIFT 14
-#define WM8350_DC2_ENSLOT_MASK 0x3C00
-#define WM8350_DC2_ENSLOT_SHIFT 10
-#define WM8350_DC2_SDSLOT_MASK 0x03C0
-#define WM8350_DC2_UVTO_MASK 0x0030
-
-/* Bit values for R184 (0xB8) */
-#define WM8350_DC2_ERRACT_NONE 0
-#define WM8350_DC2_ERRACT_SHUTDOWN_CONV 1
-#define WM8350_DC2_ERRACT_SHUTDOWN_SYS 2
-
-/*
- * R186 (0xBA) - DCDC3 Control
- */
-#define WM8350_DC3_OPFLT 0x0400
-#define WM8350_DC3_VSEL_MASK 0x007F
-#define WM8350_DC3_VSEL_SHIFT 0
-
-/*
- * R187 (0xBB) - DCDC3 Timeouts
- */
-#define WM8350_DC3_ERRACT_MASK 0xC000
-#define WM8350_DC3_ERRACT_SHIFT 14
-#define WM8350_DC3_ENSLOT_MASK 0x3C00
-#define WM8350_DC3_ENSLOT_SHIFT 10
-#define WM8350_DC3_SDSLOT_MASK 0x03C0
-#define WM8350_DC3_UVTO_MASK 0x0030
-#define WM8350_DC3_SDSLOT_SHIFT 6
-
-/* Bit values for R187 (0xBB) */
-#define WM8350_DC3_ERRACT_NONE 0
-#define WM8350_DC3_ERRACT_SHUTDOWN_CONV 1
-#define WM8350_DC3_ERRACT_SHUTDOWN_SYS 2
-/*
- * R188 (0xBC) - DCDC3 Low Power
- */
-#define WM8350_DC3_HIB_MODE_MASK 0x7000
-#define WM8350_DC3_HIB_TRIG_MASK 0x0300
-#define WM8350_DC3_VIMG_MASK 0x007F
-
-/*
- * R189 (0xBD) - DCDC4 Control
- */
-#define WM8350_DC4_OPFLT 0x0400
-#define WM8350_DC4_VSEL_MASK 0x007F
-#define WM8350_DC4_VSEL_SHIFT 0
-
-/*
- * R190 (0xBE) - DCDC4 Timeouts
- */
-#define WM8350_DC4_ERRACT_MASK 0xC000
-#define WM8350_DC4_ERRACT_SHIFT 14
-#define WM8350_DC4_ENSLOT_MASK 0x3C00
-#define WM8350_DC4_ENSLOT_SHIFT 10
-#define WM8350_DC4_SDSLOT_MASK 0x03C0
-#define WM8350_DC4_UVTO_MASK 0x0030
-#define WM8350_DC4_SDSLOT_SHIFT 6
-
-/* Bit values for R190 (0xBE) */
-#define WM8350_DC4_ERRACT_NONE 0
-#define WM8350_DC4_ERRACT_SHUTDOWN_CONV 1
-#define WM8350_DC4_ERRACT_SHUTDOWN_SYS 2
-
-/*
- * R191 (0xBF) - DCDC4 Low Power
- */
-#define WM8350_DC4_HIB_MODE_MASK 0x7000
-#define WM8350_DC4_HIB_TRIG_MASK 0x0300
-#define WM8350_DC4_VIMG_MASK 0x007F
-
-/*
- * R192 (0xC0) - DCDC5 Control
- */
-#define WM8350_DC5_MODE 0x4000
-#define WM8350_DC5_MODE_MASK 0x4000
-#define WM8350_DC5_MODE_SHIFT 14
-#define WM8350_DC5_HIB_MODE 0x1000
-#define WM8350_DC5_HIB_MODE_MASK 0x1000
-#define WM8350_DC5_HIB_MODE_SHIFT 12
-#define WM8350_DC5_HIB_TRIG_MASK 0x0300
-#define WM8350_DC5_HIB_TRIG_SHIFT 8
-#define WM8350_DC5_ILIM 0x0040
-#define WM8350_DC5_ILIM_MASK 0x0040
-#define WM8350_DC5_ILIM_SHIFT 6
-#define WM8350_DC5_RMP_MASK 0x0018
-#define WM8350_DC5_RMP_SHIFT 3
-#define WM8350_DC5_FBSRC_MASK 0x0003
-#define WM8350_DC5_FBSRC_SHIFT 0
-
-/* Bit values for R192 (0xC0) */
-#define WM8350_DC5_MODE_BOOST 0
-#define WM8350_DC5_MODE_SWITCH 1
-
-#define WM8350_DC5_HIB_MODE_ACTIVE 1
-#define WM8350_DC5_HIB_MODE_DISABLE 0
-
-#define WM8350_DC5_HIB_TRIG_NONE 0
-#define WM8350_DC5_HIB_TRIG_LPWR1 1
-#define WM8350_DC5_HIB_TRIG_LPWR2 2
-#define WM8350_DC5_HIB_TRIG_LPWR3 3
-
-#define WM8350_DC5_ILIM_HIGH 0
-#define WM8350_DC5_ILIM_LOW 1
-
-#define WM8350_DC5_RMP_30V 0
-#define WM8350_DC5_RMP_20V 1
-#define WM8350_DC5_RMP_10V 2
-#define WM8350_DC5_RMP_5V 3
-
-#define WM8350_DC5_FBSRC_FB2 0
-#define WM8350_DC5_FBSRC_ISINKA 1
-#define WM8350_DC5_FBSRC_ISINKB 2
-#define WM8350_DC5_FBSRC_USB 3
-
-/*
- * R193 (0xC1) - DCDC5 Timeouts
- */
-#define WM8350_DC5_ERRACT_MASK 0xC000
-#define WM8350_DC5_ERRACT_SHIFT 14
-#define WM8350_DC5_ENSLOT_MASK 0x3C00
-#define WM8350_DC5_ENSLOT_SHIFT 10
-#define WM8350_DC5_SDSLOT_MASK 0x03C0
-#define WM8350_DC5_UVTO_MASK 0x0030
-#define WM8350_DC5_SDSLOT_SHIFT 6
-
-/* Bit values for R193 (0xC1) */
-#define WM8350_DC5_ERRACT_NONE 0
-#define WM8350_DC5_ERRACT_SHUTDOWN_CONV 1
-#define WM8350_DC5_ERRACT_SHUTDOWN_SYS 2
-
-/*
- * R195 (0xC3) - DCDC6 Control
- */
-#define WM8350_DC6_OPFLT 0x0400
-#define WM8350_DC6_VSEL_MASK 0x007F
-#define WM8350_DC6_VSEL_SHIFT 0
-
-/*
- * R196 (0xC4) - DCDC6 Timeouts
- */
-#define WM8350_DC6_ERRACT_MASK 0xC000
-#define WM8350_DC6_ERRACT_SHIFT 14
-#define WM8350_DC6_ENSLOT_MASK 0x3C00
-#define WM8350_DC6_ENSLOT_SHIFT 10
-#define WM8350_DC6_SDSLOT_MASK 0x03C0
-#define WM8350_DC6_UVTO_MASK 0x0030
-#define WM8350_DC6_SDSLOT_SHIFT 6
-
-/* Bit values for R196 (0xC4) */
-#define WM8350_DC6_ERRACT_NONE 0
-#define WM8350_DC6_ERRACT_SHUTDOWN_CONV 1
-#define WM8350_DC6_ERRACT_SHUTDOWN_SYS 2
-
-/*
- * R197 (0xC5) - DCDC6 Low Power
- */
-#define WM8350_DC6_HIB_MODE_MASK 0x7000
-#define WM8350_DC6_HIB_TRIG_MASK 0x0300
-#define WM8350_DC6_VIMG_MASK 0x007F
-
-/*
- * R199 (0xC7) - Limit Switch Control
- */
-#define WM8350_LS_ERRACT_MASK 0xC000
-#define WM8350_LS_ERRACT_SHIFT 14
-#define WM8350_LS_ENSLOT_MASK 0x3C00
-#define WM8350_LS_ENSLOT_SHIFT 10
-#define WM8350_LS_SDSLOT_MASK 0x03C0
-#define WM8350_LS_SDSLOT_SHIFT 6
-#define WM8350_LS_HIB_MODE 0x0010
-#define WM8350_LS_HIB_MODE_MASK 0x0010
-#define WM8350_LS_HIB_MODE_SHIFT 4
-#define WM8350_LS_HIB_PROT 0x0002
-#define WM8350_LS_HIB_PROT_MASK 0x0002
-#define WM8350_LS_HIB_PROT_SHIFT 1
-#define WM8350_LS_PROT 0x0001
-#define WM8350_LS_PROT_MASK 0x0001
-#define WM8350_LS_PROT_SHIFT 0
-
-/* Bit values for R199 (0xC7) */
-#define WM8350_LS_ERRACT_NONE 0
-#define WM8350_LS_ERRACT_SHUTDOWN_CONV 1
-#define WM8350_LS_ERRACT_SHUTDOWN_SYS 2
-
-/*
- * R200 (0xC8) - LDO1 Control
- */
-#define WM8350_LDO1_SWI 0x4000
-#define WM8350_LDO1_OPFLT 0x0400
-#define WM8350_LDO1_VSEL_MASK 0x001F
-#define WM8350_LDO1_VSEL_SHIFT 0
-
-/*
- * R201 (0xC9) - LDO1 Timeouts
- */
-#define WM8350_LDO1_ERRACT_MASK 0xC000
-#define WM8350_LDO1_ERRACT_SHIFT 14
-#define WM8350_LDO1_ENSLOT_MASK 0x3C00
-#define WM8350_LDO1_ENSLOT_SHIFT 10
-#define WM8350_LDO1_SDSLOT_MASK 0x03C0
-#define WM8350_LDO1_UVTO_MASK 0x0030
-#define WM8350_LDO1_SDSLOT_SHIFT 6
-
-/* Bit values for R201 (0xC9) */
-#define WM8350_LDO1_ERRACT_NONE 0
-#define WM8350_LDO1_ERRACT_SHUTDOWN_CONV 1
-#define WM8350_LDO1_ERRACT_SHUTDOWN_SYS 2
-
-/*
- * R202 (0xCA) - LDO1 Low Power
- */
-#define WM8350_LDO1_HIB_MODE_MASK 0x3000
-#define WM8350_LDO1_HIB_TRIG_MASK 0x0300
-#define WM8350_LDO1_VIMG_MASK 0x001F
-#define WM8350_LDO1_HIB_MODE_DIS (0x1 << 12)
-
-
-/*
- * R203 (0xCB) - LDO2 Control
- */
-#define WM8350_LDO2_SWI 0x4000
-#define WM8350_LDO2_OPFLT 0x0400
-#define WM8350_LDO2_VSEL_MASK 0x001F
-#define WM8350_LDO2_VSEL_SHIFT 0
-
-/*
- * R204 (0xCC) - LDO2 Timeouts
- */
-#define WM8350_LDO2_ERRACT_MASK 0xC000
-#define WM8350_LDO2_ERRACT_SHIFT 14
-#define WM8350_LDO2_ENSLOT_MASK 0x3C00
-#define WM8350_LDO2_ENSLOT_SHIFT 10
-#define WM8350_LDO2_SDSLOT_MASK 0x03C0
-#define WM8350_LDO2_SDSLOT_SHIFT 6
-
-/* Bit values for R204 (0xCC) */
-#define WM8350_LDO2_ERRACT_NONE 0
-#define WM8350_LDO2_ERRACT_SHUTDOWN_CONV 1
-#define WM8350_LDO2_ERRACT_SHUTDOWN_SYS 2
-
-/*
- * R205 (0xCD) - LDO2 Low Power
- */
-#define WM8350_LDO2_HIB_MODE_MASK 0x3000
-#define WM8350_LDO2_HIB_TRIG_MASK 0x0300
-#define WM8350_LDO2_VIMG_MASK 0x001F
-
-/*
- * R206 (0xCE) - LDO3 Control
- */
-#define WM8350_LDO3_SWI 0x4000
-#define WM8350_LDO3_OPFLT 0x0400
-#define WM8350_LDO3_VSEL_MASK 0x001F
-#define WM8350_LDO3_VSEL_SHIFT 0
-
-/*
- * R207 (0xCF) - LDO3 Timeouts
- */
-#define WM8350_LDO3_ERRACT_MASK 0xC000
-#define WM8350_LDO3_ERRACT_SHIFT 14
-#define WM8350_LDO3_ENSLOT_MASK 0x3C00
-#define WM8350_LDO3_ENSLOT_SHIFT 10
-#define WM8350_LDO3_SDSLOT_MASK 0x03C0
-#define WM8350_LDO3_UVTO_MASK 0x0030
-#define WM8350_LDO3_SDSLOT_SHIFT 6
-
-/* Bit values for R207 (0xCF) */
-#define WM8350_LDO3_ERRACT_NONE 0
-#define WM8350_LDO3_ERRACT_SHUTDOWN_CONV 1
-#define WM8350_LDO3_ERRACT_SHUTDOWN_SYS 2
-
-/*
- * R208 (0xD0) - LDO3 Low Power
- */
-#define WM8350_LDO3_HIB_MODE_MASK 0x3000
-#define WM8350_LDO3_HIB_TRIG_MASK 0x0300
-#define WM8350_LDO3_VIMG_MASK 0x001F
-
-/*
- * R209 (0xD1) - LDO4 Control
- */
-#define WM8350_LDO4_SWI 0x4000
-#define WM8350_LDO4_OPFLT 0x0400
-#define WM8350_LDO4_VSEL_MASK 0x001F
-#define WM8350_LDO4_VSEL_SHIFT 0
-
-/*
- * R210 (0xD2) - LDO4 Timeouts
- */
-#define WM8350_LDO4_ERRACT_MASK 0xC000
-#define WM8350_LDO4_ERRACT_SHIFT 14
-#define WM8350_LDO4_ENSLOT_MASK 0x3C00
-#define WM8350_LDO4_ENSLOT_SHIFT 10
-#define WM8350_LDO4_SDSLOT_MASK 0x03C0
-#define WM8350_LDO4_UVTO_MASK 0x0030
-#define WM8350_LDO4_SDSLOT_SHIFT 6
-
-/* Bit values for R210 (0xD2) */
-#define WM8350_LDO4_ERRACT_NONE 0
-#define WM8350_LDO4_ERRACT_SHUTDOWN_CONV 1
-#define WM8350_LDO4_ERRACT_SHUTDOWN_SYS 2
-
-/*
- * R211 (0xD3) - LDO4 Low Power
- */
-#define WM8350_LDO4_HIB_MODE_MASK 0x3000
-#define WM8350_LDO4_HIB_TRIG_MASK 0x0300
-#define WM8350_LDO4_VIMG_MASK 0x001F
-
-/*
- * R215 (0xD7) - VCC_FAULT Masks
- */
-#define WM8350_LS_FAULT 0x8000
-#define WM8350_LDO4_FAULT 0x0800
-#define WM8350_LDO3_FAULT 0x0400
-#define WM8350_LDO2_FAULT 0x0200
-#define WM8350_LDO1_FAULT 0x0100
-#define WM8350_DC6_FAULT 0x0020
-#define WM8350_DC5_FAULT 0x0010
-#define WM8350_DC4_FAULT 0x0008
-#define WM8350_DC3_FAULT 0x0004
-#define WM8350_DC2_FAULT 0x0002
-#define WM8350_DC1_FAULT 0x0001
-
-/*
- * R216 (0xD8) - Main Bandgap Control
- */
-#define WM8350_MBG_LOAD_FUSES 0x8000
-#define WM8350_MBG_FUSE_WPREP 0x4000
-#define WM8350_MBG_FUSE_WRITE 0x2000
-#define WM8350_MBG_FUSE_TRIM_MASK 0x1F00
-#define WM8350_MBG_TRIM_SRC 0x0020
-#define WM8350_MBG_USER_TRIM_MASK 0x001F
-
-/*
- * R217 (0xD9) - OSC Control
- */
-#define WM8350_OSC_LOAD_FUSES 0x8000
-#define WM8350_OSC_FUSE_WPREP 0x4000
-#define WM8350_OSC_FUSE_WRITE 0x2000
-#define WM8350_OSC_FUSE_TRIM_MASK 0x0F00
-#define WM8350_OSC_TRIM_SRC 0x0020
-#define WM8350_OSC_USER_TRIM_MASK 0x000F
-
-/*
- * R248 (0xF8) - DCDC1 Force PWM
- */
-#define WM8350_DCDC1_FORCE_PWM_ENA 0x0010
-
-/*
- * R250 (0xFA) - DCDC3 Force PWM
- */
-#define WM8350_DCDC3_FORCE_PWM_ENA 0x0010
-
-/*
- * R251 (0xFB) - DCDC4 Force PWM
- */
-#define WM8350_DCDC4_FORCE_PWM_ENA 0x0010
-
-/*
- * R253 (0xFD) - DCDC1 Force PWM
- */
-#define WM8350_DCDC6_FORCE_PWM_ENA 0x0010
-
-/*
- * DCDC's
- */
-#define WM8350_DCDC_1 0
-#define WM8350_DCDC_2 1
-#define WM8350_DCDC_3 2
-#define WM8350_DCDC_4 3
-#define WM8350_DCDC_5 4
-#define WM8350_DCDC_6 5
-
-/* DCDC modes */
-#define WM8350_DCDC_ACTIVE_STANDBY 0
-#define WM8350_DCDC_ACTIVE_PULSE 1
-#define WM8350_DCDC_SLEEP_NORMAL 0
-#define WM8350_DCDC_SLEEP_LOW 1
-
-/* DCDC Low power (Hibernate) mode */
-#define WM8350_DCDC_HIB_MODE_CUR (0 << 12)
-#define WM8350_DCDC_HIB_MODE_IMAGE (1 << 12)
-#define WM8350_DCDC_HIB_MODE_STANDBY (2 << 12)
-#define WM8350_DCDC_HIB_MODE_LDO (4 << 12)
-#define WM8350_DCDC_HIB_MODE_LDO_IM (5 << 12)
-#define WM8350_DCDC_HIB_MODE_DIS (7 << 12)
-#define WM8350_DCDC_HIB_MODE_MASK (7 << 12)
-
-/* DCDC Low Power (Hibernate) signal */
-#define WM8350_DCDC_HIB_SIG_REG (0 << 8)
-#define WM8350_DCDC_HIB_SIG_LPWR1 (1 << 8)
-#define WM8350_DCDC_HIB_SIG_LPWR2 (2 << 8)
-#define WM8350_DCDC_HIB_SIG_LPWR3 (3 << 8)
-
-/* LDO Low power (Hibernate) mode */
-#define WM8350_LDO_HIB_MODE_IMAGE (0 << 0)
-#define WM8350_LDO_HIB_MODE_DIS (1 << 0)
-
-/* LDO Low Power (Hibernate) signal */
-#define WM8350_LDO_HIB_SIG_REG (0 << 8)
-#define WM8350_LDO_HIB_SIG_LPWR1 (1 << 8)
-#define WM8350_LDO_HIB_SIG_LPWR2 (2 << 8)
-#define WM8350_LDO_HIB_SIG_LPWR3 (3 << 8)
-
-/*
- * LDOs
- */
-#define WM8350_LDO_1 6
-#define WM8350_LDO_2 7
-#define WM8350_LDO_3 8
-#define WM8350_LDO_4 9
-
-/*
- * ISINKs
- */
-#define WM8350_ISINK_A 10
-#define WM8350_ISINK_B 11
-
-#define WM8350_ISINK_MODE_BOOST 0
-#define WM8350_ISINK_MODE_SWITCH 1
-#define WM8350_ISINK_ILIM_NORMAL 0
-#define WM8350_ISINK_ILIM_LOW 1
-
-#define WM8350_ISINK_FLASH_DISABLE 0
-#define WM8350_ISINK_FLASH_ENABLE 1
-#define WM8350_ISINK_FLASH_TRIG_BIT 0
-#define WM8350_ISINK_FLASH_TRIG_GPIO 1
-#define WM8350_ISINK_FLASH_MODE_EN (1 << 13)
-#define WM8350_ISINK_FLASH_MODE_DIS (0 << 13)
-#define WM8350_ISINK_FLASH_DUR_32MS (0 << 8)
-#define WM8350_ISINK_FLASH_DUR_64MS (1 << 8)
-#define WM8350_ISINK_FLASH_DUR_96MS (2 << 8)
-#define WM8350_ISINK_FLASH_DUR_1024MS (3 << 8)
-#define WM8350_ISINK_FLASH_ON_INSTANT (0 << 0)
-#define WM8350_ISINK_FLASH_ON_0_25S (1 << 0)
-#define WM8350_ISINK_FLASH_ON_0_50S (2 << 0)
-#define WM8350_ISINK_FLASH_ON_1_00S (3 << 0)
-#define WM8350_ISINK_FLASH_ON_1_95S (1 << 0)
-#define WM8350_ISINK_FLASH_ON_3_91S (2 << 0)
-#define WM8350_ISINK_FLASH_ON_7_80S (3 << 0)
-#define WM8350_ISINK_FLASH_OFF_INSTANT (0 << 4)
-#define WM8350_ISINK_FLASH_OFF_0_25S (1 << 4)
-#define WM8350_ISINK_FLASH_OFF_0_50S (2 << 4)
-#define WM8350_ISINK_FLASH_OFF_1_00S (3 << 4)
-#define WM8350_ISINK_FLASH_OFF_1_95S (1 << 4)
-#define WM8350_ISINK_FLASH_OFF_3_91S (2 << 4)
-#define WM8350_ISINK_FLASH_OFF_7_80S (3 << 4)
-
-/*
- * Regulator Interrupts.
- */
-#define WM8350_IRQ_CS1 13
-#define WM8350_IRQ_CS2 14
-#define WM8350_IRQ_UV_LDO4 25
-#define WM8350_IRQ_UV_LDO3 26
-#define WM8350_IRQ_UV_LDO2 27
-#define WM8350_IRQ_UV_LDO1 28
-#define WM8350_IRQ_UV_DC6 29
-#define WM8350_IRQ_UV_DC5 30
-#define WM8350_IRQ_UV_DC4 31
-#define WM8350_IRQ_UV_DC3 32
-#define WM8350_IRQ_UV_DC2 33
-#define WM8350_IRQ_UV_DC1 34
-#define WM8350_IRQ_OC_LS 35
-
-#define NUM_WM8350_REGULATORS 12
-
-struct wm8350;
-struct platform_device;
-struct regulator_init_data;
-
-/*
- * WM8350 LED platform data
- */
-struct wm8350_led_platform_data {
- const char *name;
- const char *default_trigger;
- int max_uA;
-};
-
-struct wm8350_led {
- struct platform_device *pdev;
- struct mutex mutex;
- struct work_struct work;
- spinlock_t value_lock;
- enum led_brightness value;
- struct led_classdev cdev;
- int max_uA_index;
- int enabled;
-
- struct regulator *isink;
- struct regulator_consumer_supply isink_consumer;
- struct regulator_init_data isink_init;
- struct regulator *dcdc;
- struct regulator_consumer_supply dcdc_consumer;
- struct regulator_init_data dcdc_init;
-};
-
-struct wm8350_pmic {
- /* Number of regulators of each type on this device */
- int max_dcdc;
- int max_isink;
-
- /* ISINK to DCDC mapping */
- int isink_A_dcdc;
- int isink_B_dcdc;
-
- /* hibernate configs */
- u16 dcdc1_hib_mode;
- u16 dcdc3_hib_mode;
- u16 dcdc4_hib_mode;
- u16 dcdc6_hib_mode;
-
- /* regulator devices */
- struct platform_device *pdev[NUM_WM8350_REGULATORS];
-
- /* LED devices */
- struct wm8350_led led[2];
-};
-
-int wm8350_register_regulator(struct wm8350 *wm8350, int reg,
- struct regulator_init_data *initdata);
-int wm8350_register_led(struct wm8350 *wm8350, int lednum, int dcdc, int isink,
- struct wm8350_led_platform_data *pdata);
-
-/*
- * Additional DCDC control not supported via regulator API
- */
-int wm8350_dcdc_set_slot(struct wm8350 *wm8350, int dcdc, u16 start,
- u16 stop, u16 fault);
-int wm8350_dcdc25_set_mode(struct wm8350 *wm8350, int dcdc, u16 mode,
- u16 ilim, u16 ramp, u16 feedback);
-
-/*
- * Additional LDO control not supported via regulator API
- */
-int wm8350_ldo_set_slot(struct wm8350 *wm8350, int ldo, u16 start, u16 stop);
-
-/*
- * Additional ISINK control not supported via regulator API
- */
-int wm8350_isink_set_flash(struct wm8350 *wm8350, int isink, u16 mode,
- u16 trigger, u16 duration, u16 on_ramp,
- u16 off_ramp, u16 drive);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/wm8350/rtc.h b/ANDROID_3.4.5/include/linux/mfd/wm8350/rtc.h
deleted file mode 100644
index ebd72ffc..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/wm8350/rtc.h
+++ /dev/null
@@ -1,269 +0,0 @@
-/*
- * rtc.h -- RTC driver for Wolfson WM8350 PMIC
- *
- * Copyright 2007 Wolfson Microelectronics PLC
- *
- * 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_MFD_WM8350_RTC_H
-#define __LINUX_MFD_WM8350_RTC_H
-
-#include <linux/platform_device.h>
-
-/*
- * Register values.
- */
-#define WM8350_RTC_SECONDS_MINUTES 0x10
-#define WM8350_RTC_HOURS_DAY 0x11
-#define WM8350_RTC_DATE_MONTH 0x12
-#define WM8350_RTC_YEAR 0x13
-#define WM8350_ALARM_SECONDS_MINUTES 0x14
-#define WM8350_ALARM_HOURS_DAY 0x15
-#define WM8350_ALARM_DATE_MONTH 0x16
-#define WM8350_RTC_TIME_CONTROL 0x17
-
-/*
- * R16 (0x10) - RTC Seconds/Minutes
- */
-#define WM8350_RTC_MINS_MASK 0x7F00
-#define WM8350_RTC_MINS_SHIFT 8
-#define WM8350_RTC_SECS_MASK 0x007F
-#define WM8350_RTC_SECS_SHIFT 0
-
-/*
- * R17 (0x11) - RTC Hours/Day
- */
-#define WM8350_RTC_DAY_MASK 0x0700
-#define WM8350_RTC_DAY_SHIFT 8
-#define WM8350_RTC_HPM_MASK 0x0020
-#define WM8350_RTC_HPM_SHIFT 5
-#define WM8350_RTC_HRS_MASK 0x001F
-#define WM8350_RTC_HRS_SHIFT 0
-
-/* Bit values for R21 (0x15) */
-#define WM8350_RTC_DAY_SUN 1
-#define WM8350_RTC_DAY_MON 2
-#define WM8350_RTC_DAY_TUE 3
-#define WM8350_RTC_DAY_WED 4
-#define WM8350_RTC_DAY_THU 5
-#define WM8350_RTC_DAY_FRI 6
-#define WM8350_RTC_DAY_SAT 7
-
-#define WM8350_RTC_HPM_AM 0
-#define WM8350_RTC_HPM_PM 1
-
-/*
- * R18 (0x12) - RTC Date/Month
- */
-#define WM8350_RTC_MTH_MASK 0x1F00
-#define WM8350_RTC_MTH_SHIFT 8
-#define WM8350_RTC_DATE_MASK 0x003F
-#define WM8350_RTC_DATE_SHIFT 0
-
-/* Bit values for R22 (0x16) */
-#define WM8350_RTC_MTH_JAN 1
-#define WM8350_RTC_MTH_FEB 2
-#define WM8350_RTC_MTH_MAR 3
-#define WM8350_RTC_MTH_APR 4
-#define WM8350_RTC_MTH_MAY 5
-#define WM8350_RTC_MTH_JUN 6
-#define WM8350_RTC_MTH_JUL 7
-#define WM8350_RTC_MTH_AUG 8
-#define WM8350_RTC_MTH_SEP 9
-#define WM8350_RTC_MTH_OCT 10
-#define WM8350_RTC_MTH_NOV 11
-#define WM8350_RTC_MTH_DEC 12
-#define WM8350_RTC_MTH_JAN_BCD 0x01
-#define WM8350_RTC_MTH_FEB_BCD 0x02
-#define WM8350_RTC_MTH_MAR_BCD 0x03
-#define WM8350_RTC_MTH_APR_BCD 0x04
-#define WM8350_RTC_MTH_MAY_BCD 0x05
-#define WM8350_RTC_MTH_JUN_BCD 0x06
-#define WM8350_RTC_MTH_JUL_BCD 0x07
-#define WM8350_RTC_MTH_AUG_BCD 0x08
-#define WM8350_RTC_MTH_SEP_BCD 0x09
-#define WM8350_RTC_MTH_OCT_BCD 0x10
-#define WM8350_RTC_MTH_NOV_BCD 0x11
-#define WM8350_RTC_MTH_DEC_BCD 0x12
-
-/*
- * R19 (0x13) - RTC Year
- */
-#define WM8350_RTC_YHUNDREDS_MASK 0x3F00
-#define WM8350_RTC_YHUNDREDS_SHIFT 8
-#define WM8350_RTC_YUNITS_MASK 0x00FF
-#define WM8350_RTC_YUNITS_SHIFT 0
-
-/*
- * R20 (0x14) - Alarm Seconds/Minutes
- */
-#define WM8350_RTC_ALMMINS_MASK 0x7F00
-#define WM8350_RTC_ALMMINS_SHIFT 8
-#define WM8350_RTC_ALMSECS_MASK 0x007F
-#define WM8350_RTC_ALMSECS_SHIFT 0
-
-/* Bit values for R20 (0x14) */
-#define WM8350_RTC_ALMMINS_DONT_CARE -1
-#define WM8350_RTC_ALMSECS_DONT_CARE -1
-
-/*
- * R21 (0x15) - Alarm Hours/Day
- */
-#define WM8350_RTC_ALMDAY_MASK 0x0F00
-#define WM8350_RTC_ALMDAY_SHIFT 8
-#define WM8350_RTC_ALMHPM_MASK 0x0020
-#define WM8350_RTC_ALMHPM_SHIFT 5
-#define WM8350_RTC_ALMHRS_MASK 0x001F
-#define WM8350_RTC_ALMHRS_SHIFT 0
-
-/* Bit values for R21 (0x15) */
-#define WM8350_RTC_ALMDAY_DONT_CARE -1
-#define WM8350_RTC_ALMDAY_SUN 1
-#define WM8350_RTC_ALMDAY_MON 2
-#define WM8350_RTC_ALMDAY_TUE 3
-#define WM8350_RTC_ALMDAY_WED 4
-#define WM8350_RTC_ALMDAY_THU 5
-#define WM8350_RTC_ALMDAY_FRI 6
-#define WM8350_RTC_ALMDAY_SAT 7
-
-#define WM8350_RTC_ALMHPM_AM 0
-#define WM8350_RTC_ALMHPM_PM 1
-
-#define WM8350_RTC_ALMHRS_DONT_CARE -1
-
-/*
- * R22 (0x16) - Alarm Date/Month
- */
-#define WM8350_RTC_ALMMTH_MASK 0x1F00
-#define WM8350_RTC_ALMMTH_SHIFT 8
-#define WM8350_RTC_ALMDATE_MASK 0x003F
-#define WM8350_RTC_ALMDATE_SHIFT 0
-
-/* Bit values for R22 (0x16) */
-#define WM8350_RTC_ALMDATE_DONT_CARE -1
-
-#define WM8350_RTC_ALMMTH_DONT_CARE -1
-#define WM8350_RTC_ALMMTH_JAN 1
-#define WM8350_RTC_ALMMTH_FEB 2
-#define WM8350_RTC_ALMMTH_MAR 3
-#define WM8350_RTC_ALMMTH_APR 4
-#define WM8350_RTC_ALMMTH_MAY 5
-#define WM8350_RTC_ALMMTH_JUN 6
-#define WM8350_RTC_ALMMTH_JUL 7
-#define WM8350_RTC_ALMMTH_AUG 8
-#define WM8350_RTC_ALMMTH_SEP 9
-#define WM8350_RTC_ALMMTH_OCT 10
-#define WM8350_RTC_ALMMTH_NOV 11
-#define WM8350_RTC_ALMMTH_DEC 12
-#define WM8350_RTC_ALMMTH_JAN_BCD 0x01
-#define WM8350_RTC_ALMMTH_FEB_BCD 0x02
-#define WM8350_RTC_ALMMTH_MAR_BCD 0x03
-#define WM8350_RTC_ALMMTH_APR_BCD 0x04
-#define WM8350_RTC_ALMMTH_MAY_BCD 0x05
-#define WM8350_RTC_ALMMTH_JUN_BCD 0x06
-#define WM8350_RTC_ALMMTH_JUL_BCD 0x07
-#define WM8350_RTC_ALMMTH_AUG_BCD 0x08
-#define WM8350_RTC_ALMMTH_SEP_BCD 0x09
-#define WM8350_RTC_ALMMTH_OCT_BCD 0x10
-#define WM8350_RTC_ALMMTH_NOV_BCD 0x11
-#define WM8350_RTC_ALMMTH_DEC_BCD 0x12
-
-/*
- * R23 (0x17) - RTC Time Control
- */
-#define WM8350_RTC_BCD 0x8000
-#define WM8350_RTC_BCD_MASK 0x8000
-#define WM8350_RTC_BCD_SHIFT 15
-#define WM8350_RTC_12HR 0x4000
-#define WM8350_RTC_12HR_MASK 0x4000
-#define WM8350_RTC_12HR_SHIFT 14
-#define WM8350_RTC_DST 0x2000
-#define WM8350_RTC_DST_MASK 0x2000
-#define WM8350_RTC_DST_SHIFT 13
-#define WM8350_RTC_SET 0x0800
-#define WM8350_RTC_SET_MASK 0x0800
-#define WM8350_RTC_SET_SHIFT 11
-#define WM8350_RTC_STS 0x0400
-#define WM8350_RTC_STS_MASK 0x0400
-#define WM8350_RTC_STS_SHIFT 10
-#define WM8350_RTC_ALMSET 0x0200
-#define WM8350_RTC_ALMSET_MASK 0x0200
-#define WM8350_RTC_ALMSET_SHIFT 9
-#define WM8350_RTC_ALMSTS 0x0100
-#define WM8350_RTC_ALMSTS_MASK 0x0100
-#define WM8350_RTC_ALMSTS_SHIFT 8
-#define WM8350_RTC_PINT 0x0070
-#define WM8350_RTC_PINT_MASK 0x0070
-#define WM8350_RTC_PINT_SHIFT 4
-#define WM8350_RTC_DSW 0x000F
-#define WM8350_RTC_DSW_MASK 0x000F
-#define WM8350_RTC_DSW_SHIFT 0
-
-/* Bit values for R23 (0x17) */
-#define WM8350_RTC_BCD_BINARY 0
-#define WM8350_RTC_BCD_BCD 1
-
-#define WM8350_RTC_12HR_24HR 0
-#define WM8350_RTC_12HR_12HR 1
-
-#define WM8350_RTC_DST_DISABLED 0
-#define WM8350_RTC_DST_ENABLED 1
-
-#define WM8350_RTC_SET_RUN 0
-#define WM8350_RTC_SET_SET 1
-
-#define WM8350_RTC_STS_RUNNING 0
-#define WM8350_RTC_STS_STOPPED 1
-
-#define WM8350_RTC_ALMSET_RUN 0
-#define WM8350_RTC_ALMSET_SET 1
-
-#define WM8350_RTC_ALMSTS_RUNNING 0
-#define WM8350_RTC_ALMSTS_STOPPED 1
-
-#define WM8350_RTC_PINT_DISABLED 0
-#define WM8350_RTC_PINT_SECS 1
-#define WM8350_RTC_PINT_MINS 2
-#define WM8350_RTC_PINT_HRS 3
-#define WM8350_RTC_PINT_DAYS 4
-#define WM8350_RTC_PINT_MTHS 5
-
-#define WM8350_RTC_DSW_DISABLED 0
-#define WM8350_RTC_DSW_1HZ 1
-#define WM8350_RTC_DSW_2HZ 2
-#define WM8350_RTC_DSW_4HZ 3
-#define WM8350_RTC_DSW_8HZ 4
-#define WM8350_RTC_DSW_16HZ 5
-#define WM8350_RTC_DSW_32HZ 6
-#define WM8350_RTC_DSW_64HZ 7
-#define WM8350_RTC_DSW_128HZ 8
-#define WM8350_RTC_DSW_256HZ 9
-#define WM8350_RTC_DSW_512HZ 10
-#define WM8350_RTC_DSW_1024HZ 11
-
-/*
- * R218 (0xDA) - RTC Tick Control
- */
-#define WM8350_RTC_TICKSTS 0x4000
-#define WM8350_RTC_CLKSRC 0x2000
-#define WM8350_RTC_TRIM_MASK 0x03FF
-
-/*
- * RTC Interrupts.
- */
-#define WM8350_IRQ_RTC_PER 7
-#define WM8350_IRQ_RTC_SEC 8
-#define WM8350_IRQ_RTC_ALM 9
-
-struct wm8350_rtc {
- struct platform_device *pdev;
- struct rtc_device *rtc;
- int alarm_enabled; /* used over suspend/resume */
- int update_enabled;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/wm8350/supply.h b/ANDROID_3.4.5/include/linux/mfd/wm8350/supply.h
deleted file mode 100644
index 2b947931..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/wm8350/supply.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * supply.h -- Power Supply Driver for Wolfson WM8350 PMIC
- *
- * Copyright 2007 Wolfson Microelectronics PLC
- *
- * 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_MFD_WM8350_SUPPLY_H_
-#define __LINUX_MFD_WM8350_SUPPLY_H_
-
-#include <linux/mutex.h>
-#include <linux/power_supply.h>
-
-/*
- * Charger registers
- */
-#define WM8350_BATTERY_CHARGER_CONTROL_1 0xA8
-#define WM8350_BATTERY_CHARGER_CONTROL_2 0xA9
-#define WM8350_BATTERY_CHARGER_CONTROL_3 0xAA
-
-/*
- * R168 (0xA8) - Battery Charger Control 1
- */
-#define WM8350_CHG_ENA_R168 0x8000
-#define WM8350_CHG_THR 0x2000
-#define WM8350_CHG_EOC_SEL_MASK 0x1C00
-#define WM8350_CHG_TRICKLE_TEMP_CHOKE 0x0200
-#define WM8350_CHG_TRICKLE_USB_CHOKE 0x0100
-#define WM8350_CHG_RECOVER_T 0x0080
-#define WM8350_CHG_END_ACT 0x0040
-#define WM8350_CHG_FAST 0x0020
-#define WM8350_CHG_FAST_USB_THROTTLE 0x0010
-#define WM8350_CHG_NTC_MON 0x0008
-#define WM8350_CHG_BATT_HOT_MON 0x0004
-#define WM8350_CHG_BATT_COLD_MON 0x0002
-#define WM8350_CHG_CHIP_TEMP_MON 0x0001
-
-/*
- * R169 (0xA9) - Battery Charger Control 2
- */
-#define WM8350_CHG_ACTIVE 0x8000
-#define WM8350_CHG_PAUSE 0x4000
-#define WM8350_CHG_STS_MASK 0x3000
-#define WM8350_CHG_TIME_MASK 0x0F00
-#define WM8350_CHG_MASK_WALL_FB 0x0080
-#define WM8350_CHG_TRICKLE_SEL 0x0040
-#define WM8350_CHG_VSEL_MASK 0x0030
-#define WM8350_CHG_ISEL_MASK 0x000F
-#define WM8350_CHG_STS_OFF 0x0000
-#define WM8350_CHG_STS_TRICKLE 0x1000
-#define WM8350_CHG_STS_FAST 0x2000
-
-/*
- * R170 (0xAA) - Battery Charger Control 3
- */
-#define WM8350_CHG_THROTTLE_T_MASK 0x0060
-#define WM8350_CHG_SMART 0x0010
-#define WM8350_CHG_TIMER_ADJT_MASK 0x000F
-
-/*
- * Charger Interrupts
- */
-#define WM8350_IRQ_CHG_BAT_HOT 0
-#define WM8350_IRQ_CHG_BAT_COLD 1
-#define WM8350_IRQ_CHG_BAT_FAIL 2
-#define WM8350_IRQ_CHG_TO 3
-#define WM8350_IRQ_CHG_END 4
-#define WM8350_IRQ_CHG_START 5
-#define WM8350_IRQ_CHG_FAST_RDY 6
-#define WM8350_IRQ_CHG_VBATT_LT_3P9 10
-#define WM8350_IRQ_CHG_VBATT_LT_3P1 11
-#define WM8350_IRQ_CHG_VBATT_LT_2P85 12
-
-/*
- * Charger Policy
- */
-#define WM8350_CHG_TRICKLE_50mA (0 << 6)
-#define WM8350_CHG_TRICKLE_100mA (1 << 6)
-#define WM8350_CHG_4_05V (0 << 4)
-#define WM8350_CHG_4_10V (1 << 4)
-#define WM8350_CHG_4_15V (2 << 4)
-#define WM8350_CHG_4_20V (3 << 4)
-#define WM8350_CHG_FAST_LIMIT_mA(x) ((x / 50) & 0xf)
-#define WM8350_CHG_EOC_mA(x) (((x - 10) & 0x7) << 10)
-#define WM8350_CHG_TRICKLE_3_1V (0 << 13)
-#define WM8350_CHG_TRICKLE_3_9V (1 << 13)
-
-/*
- * Supply Registers.
- */
-#define WM8350_USB_VOLTAGE_READBACK 0x9C
-#define WM8350_LINE_VOLTAGE_READBACK 0x9D
-#define WM8350_BATT_VOLTAGE_READBACK 0x9E
-
-/*
- * Supply Interrupts.
- */
-#define WM8350_IRQ_USB_LIMIT 15
-#define WM8350_IRQ_EXT_USB_FB 36
-#define WM8350_IRQ_EXT_WALL_FB 37
-#define WM8350_IRQ_EXT_BAT_FB 38
-
-/*
- * Policy to control charger state machine.
- */
-struct wm8350_charger_policy {
-
- /* charger state machine policy - set in machine driver */
- int eoc_mA; /* end of charge current (mA) */
- int charge_mV; /* charge voltage */
- int fast_limit_mA; /* fast charge current limit */
- int fast_limit_USB_mA; /* USB fast charge current limit */
- int charge_timeout; /* charge timeout (mins) */
- int trickle_start_mV; /* trickle charge starts at mV */
- int trickle_charge_mA; /* trickle charge current */
- int trickle_charge_USB_mA; /* USB trickle charge current */
-};
-
-struct wm8350_power {
- struct platform_device *pdev;
- struct power_supply battery;
- struct power_supply usb;
- struct power_supply ac;
- struct wm8350_charger_policy *policy;
-
- int rev_g_coeff;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/wm8350/wdt.h b/ANDROID_3.4.5/include/linux/mfd/wm8350/wdt.h
deleted file mode 100644
index f6135b5e..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/wm8350/wdt.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * wdt.h -- Watchdog Driver for Wolfson WM8350 PMIC
- *
- * Copyright 2007, 2008 Wolfson Microelectronics PLC
- *
- * 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_MFD_WM8350_WDT_H_
-#define __LINUX_MFD_WM8350_WDT_H_
-
-#include <linux/platform_device.h>
-
-#define WM8350_WDOG_HIB_MODE 0x0080
-#define WM8350_WDOG_DEBUG 0x0040
-#define WM8350_WDOG_MODE_MASK 0x0030
-#define WM8350_WDOG_TO_MASK 0x0007
-
-#define WM8350_IRQ_SYS_WDOG_TO 24
-
-struct wm8350_wdt {
- struct platform_device *pdev;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/wm8400-audio.h b/ANDROID_3.4.5/include/linux/mfd/wm8400-audio.h
deleted file mode 100644
index e06ed3eb..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/wm8400-audio.h
+++ /dev/null
@@ -1,1187 +0,0 @@
-/*
- * wm8400 private definitions for audio
- *
- * Copyright 2008 Wolfson Microelectronics plc
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef __LINUX_MFD_WM8400_AUDIO_H
-#define __LINUX_MFD_WM8400_AUDIO_H
-
-#include <linux/mfd/wm8400-audio.h>
-
-/*
- * R2 (0x02) - Power Management (1)
- */
-#define WM8400_CODEC_ENA 0x8000 /* CODEC_ENA */
-#define WM8400_CODEC_ENA_MASK 0x8000 /* CODEC_ENA */
-#define WM8400_CODEC_ENA_SHIFT 15 /* CODEC_ENA */
-#define WM8400_CODEC_ENA_WIDTH 1 /* CODEC_ENA */
-#define WM8400_SYSCLK_ENA 0x4000 /* SYSCLK_ENA */
-#define WM8400_SYSCLK_ENA_MASK 0x4000 /* SYSCLK_ENA */
-#define WM8400_SYSCLK_ENA_SHIFT 14 /* SYSCLK_ENA */
-#define WM8400_SYSCLK_ENA_WIDTH 1 /* SYSCLK_ENA */
-#define WM8400_SPK_MIX_ENA 0x2000 /* SPK_MIX_ENA */
-#define WM8400_SPK_MIX_ENA_MASK 0x2000 /* SPK_MIX_ENA */
-#define WM8400_SPK_MIX_ENA_SHIFT 13 /* SPK_MIX_ENA */
-#define WM8400_SPK_MIX_ENA_WIDTH 1 /* SPK_MIX_ENA */
-#define WM8400_SPK_ENA 0x1000 /* SPK_ENA */
-#define WM8400_SPK_ENA_MASK 0x1000 /* SPK_ENA */
-#define WM8400_SPK_ENA_SHIFT 12 /* SPK_ENA */
-#define WM8400_SPK_ENA_WIDTH 1 /* SPK_ENA */
-#define WM8400_OUT3_ENA 0x0800 /* OUT3_ENA */
-#define WM8400_OUT3_ENA_MASK 0x0800 /* OUT3_ENA */
-#define WM8400_OUT3_ENA_SHIFT 11 /* OUT3_ENA */
-#define WM8400_OUT3_ENA_WIDTH 1 /* OUT3_ENA */
-#define WM8400_OUT4_ENA 0x0400 /* OUT4_ENA */
-#define WM8400_OUT4_ENA_MASK 0x0400 /* OUT4_ENA */
-#define WM8400_OUT4_ENA_SHIFT 10 /* OUT4_ENA */
-#define WM8400_OUT4_ENA_WIDTH 1 /* OUT4_ENA */
-#define WM8400_LOUT_ENA 0x0200 /* LOUT_ENA */
-#define WM8400_LOUT_ENA_MASK 0x0200 /* LOUT_ENA */
-#define WM8400_LOUT_ENA_SHIFT 9 /* LOUT_ENA */
-#define WM8400_LOUT_ENA_WIDTH 1 /* LOUT_ENA */
-#define WM8400_ROUT_ENA 0x0100 /* ROUT_ENA */
-#define WM8400_ROUT_ENA_MASK 0x0100 /* ROUT_ENA */
-#define WM8400_ROUT_ENA_SHIFT 8 /* ROUT_ENA */
-#define WM8400_ROUT_ENA_WIDTH 1 /* ROUT_ENA */
-#define WM8400_MIC1BIAS_ENA 0x0010 /* MIC1BIAS_ENA */
-#define WM8400_MIC1BIAS_ENA_MASK 0x0010 /* MIC1BIAS_ENA */
-#define WM8400_MIC1BIAS_ENA_SHIFT 4 /* MIC1BIAS_ENA */
-#define WM8400_MIC1BIAS_ENA_WIDTH 1 /* MIC1BIAS_ENA */
-#define WM8400_VMID_MODE_MASK 0x0006 /* VMID_MODE - [2:1] */
-#define WM8400_VMID_MODE_SHIFT 1 /* VMID_MODE - [2:1] */
-#define WM8400_VMID_MODE_WIDTH 2 /* VMID_MODE - [2:1] */
-#define WM8400_VREF_ENA 0x0001 /* VREF_ENA */
-#define WM8400_VREF_ENA_MASK 0x0001 /* VREF_ENA */
-#define WM8400_VREF_ENA_SHIFT 0 /* VREF_ENA */
-#define WM8400_VREF_ENA_WIDTH 1 /* VREF_ENA */
-
-/*
- * R3 (0x03) - Power Management (2)
- */
-#define WM8400_FLL_ENA 0x8000 /* FLL_ENA */
-#define WM8400_FLL_ENA_MASK 0x8000 /* FLL_ENA */
-#define WM8400_FLL_ENA_SHIFT 15 /* FLL_ENA */
-#define WM8400_FLL_ENA_WIDTH 1 /* FLL_ENA */
-#define WM8400_TSHUT_ENA 0x4000 /* TSHUT_ENA */
-#define WM8400_TSHUT_ENA_MASK 0x4000 /* TSHUT_ENA */
-#define WM8400_TSHUT_ENA_SHIFT 14 /* TSHUT_ENA */
-#define WM8400_TSHUT_ENA_WIDTH 1 /* TSHUT_ENA */
-#define WM8400_TSHUT_OPDIS 0x2000 /* TSHUT_OPDIS */
-#define WM8400_TSHUT_OPDIS_MASK 0x2000 /* TSHUT_OPDIS */
-#define WM8400_TSHUT_OPDIS_SHIFT 13 /* TSHUT_OPDIS */
-#define WM8400_TSHUT_OPDIS_WIDTH 1 /* TSHUT_OPDIS */
-#define WM8400_OPCLK_ENA 0x0800 /* OPCLK_ENA */
-#define WM8400_OPCLK_ENA_MASK 0x0800 /* OPCLK_ENA */
-#define WM8400_OPCLK_ENA_SHIFT 11 /* OPCLK_ENA */
-#define WM8400_OPCLK_ENA_WIDTH 1 /* OPCLK_ENA */
-#define WM8400_AINL_ENA 0x0200 /* AINL_ENA */
-#define WM8400_AINL_ENA_MASK 0x0200 /* AINL_ENA */
-#define WM8400_AINL_ENA_SHIFT 9 /* AINL_ENA */
-#define WM8400_AINL_ENA_WIDTH 1 /* AINL_ENA */
-#define WM8400_AINR_ENA 0x0100 /* AINR_ENA */
-#define WM8400_AINR_ENA_MASK 0x0100 /* AINR_ENA */
-#define WM8400_AINR_ENA_SHIFT 8 /* AINR_ENA */
-#define WM8400_AINR_ENA_WIDTH 1 /* AINR_ENA */
-#define WM8400_LIN34_ENA 0x0080 /* LIN34_ENA */
-#define WM8400_LIN34_ENA_MASK 0x0080 /* LIN34_ENA */
-#define WM8400_LIN34_ENA_SHIFT 7 /* LIN34_ENA */
-#define WM8400_LIN34_ENA_WIDTH 1 /* LIN34_ENA */
-#define WM8400_LIN12_ENA 0x0040 /* LIN12_ENA */
-#define WM8400_LIN12_ENA_MASK 0x0040 /* LIN12_ENA */
-#define WM8400_LIN12_ENA_SHIFT 6 /* LIN12_ENA */
-#define WM8400_LIN12_ENA_WIDTH 1 /* LIN12_ENA */
-#define WM8400_RIN34_ENA 0x0020 /* RIN34_ENA */
-#define WM8400_RIN34_ENA_MASK 0x0020 /* RIN34_ENA */
-#define WM8400_RIN34_ENA_SHIFT 5 /* RIN34_ENA */
-#define WM8400_RIN34_ENA_WIDTH 1 /* RIN34_ENA */
-#define WM8400_RIN12_ENA 0x0010 /* RIN12_ENA */
-#define WM8400_RIN12_ENA_MASK 0x0010 /* RIN12_ENA */
-#define WM8400_RIN12_ENA_SHIFT 4 /* RIN12_ENA */
-#define WM8400_RIN12_ENA_WIDTH 1 /* RIN12_ENA */
-#define WM8400_ADCL_ENA 0x0002 /* ADCL_ENA */
-#define WM8400_ADCL_ENA_MASK 0x0002 /* ADCL_ENA */
-#define WM8400_ADCL_ENA_SHIFT 1 /* ADCL_ENA */
-#define WM8400_ADCL_ENA_WIDTH 1 /* ADCL_ENA */
-#define WM8400_ADCR_ENA 0x0001 /* ADCR_ENA */
-#define WM8400_ADCR_ENA_MASK 0x0001 /* ADCR_ENA */
-#define WM8400_ADCR_ENA_SHIFT 0 /* ADCR_ENA */
-#define WM8400_ADCR_ENA_WIDTH 1 /* ADCR_ENA */
-
-/*
- * R4 (0x04) - Power Management (3)
- */
-#define WM8400_LON_ENA 0x2000 /* LON_ENA */
-#define WM8400_LON_ENA_MASK 0x2000 /* LON_ENA */
-#define WM8400_LON_ENA_SHIFT 13 /* LON_ENA */
-#define WM8400_LON_ENA_WIDTH 1 /* LON_ENA */
-#define WM8400_LOP_ENA 0x1000 /* LOP_ENA */
-#define WM8400_LOP_ENA_MASK 0x1000 /* LOP_ENA */
-#define WM8400_LOP_ENA_SHIFT 12 /* LOP_ENA */
-#define WM8400_LOP_ENA_WIDTH 1 /* LOP_ENA */
-#define WM8400_RON_ENA 0x0800 /* RON_ENA */
-#define WM8400_RON_ENA_MASK 0x0800 /* RON_ENA */
-#define WM8400_RON_ENA_SHIFT 11 /* RON_ENA */
-#define WM8400_RON_ENA_WIDTH 1 /* RON_ENA */
-#define WM8400_ROP_ENA 0x0400 /* ROP_ENA */
-#define WM8400_ROP_ENA_MASK 0x0400 /* ROP_ENA */
-#define WM8400_ROP_ENA_SHIFT 10 /* ROP_ENA */
-#define WM8400_ROP_ENA_WIDTH 1 /* ROP_ENA */
-#define WM8400_LOPGA_ENA 0x0080 /* LOPGA_ENA */
-#define WM8400_LOPGA_ENA_MASK 0x0080 /* LOPGA_ENA */
-#define WM8400_LOPGA_ENA_SHIFT 7 /* LOPGA_ENA */
-#define WM8400_LOPGA_ENA_WIDTH 1 /* LOPGA_ENA */
-#define WM8400_ROPGA_ENA 0x0040 /* ROPGA_ENA */
-#define WM8400_ROPGA_ENA_MASK 0x0040 /* ROPGA_ENA */
-#define WM8400_ROPGA_ENA_SHIFT 6 /* ROPGA_ENA */
-#define WM8400_ROPGA_ENA_WIDTH 1 /* ROPGA_ENA */
-#define WM8400_LOMIX_ENA 0x0020 /* LOMIX_ENA */
-#define WM8400_LOMIX_ENA_MASK 0x0020 /* LOMIX_ENA */
-#define WM8400_LOMIX_ENA_SHIFT 5 /* LOMIX_ENA */
-#define WM8400_LOMIX_ENA_WIDTH 1 /* LOMIX_ENA */
-#define WM8400_ROMIX_ENA 0x0010 /* ROMIX_ENA */
-#define WM8400_ROMIX_ENA_MASK 0x0010 /* ROMIX_ENA */
-#define WM8400_ROMIX_ENA_SHIFT 4 /* ROMIX_ENA */
-#define WM8400_ROMIX_ENA_WIDTH 1 /* ROMIX_ENA */
-#define WM8400_DACL_ENA 0x0002 /* DACL_ENA */
-#define WM8400_DACL_ENA_MASK 0x0002 /* DACL_ENA */
-#define WM8400_DACL_ENA_SHIFT 1 /* DACL_ENA */
-#define WM8400_DACL_ENA_WIDTH 1 /* DACL_ENA */
-#define WM8400_DACR_ENA 0x0001 /* DACR_ENA */
-#define WM8400_DACR_ENA_MASK 0x0001 /* DACR_ENA */
-#define WM8400_DACR_ENA_SHIFT 0 /* DACR_ENA */
-#define WM8400_DACR_ENA_WIDTH 1 /* DACR_ENA */
-
-/*
- * R5 (0x05) - Audio Interface (1)
- */
-#define WM8400_AIFADCL_SRC 0x8000 /* AIFADCL_SRC */
-#define WM8400_AIFADCL_SRC_MASK 0x8000 /* AIFADCL_SRC */
-#define WM8400_AIFADCL_SRC_SHIFT 15 /* AIFADCL_SRC */
-#define WM8400_AIFADCL_SRC_WIDTH 1 /* AIFADCL_SRC */
-#define WM8400_AIFADCR_SRC 0x4000 /* AIFADCR_SRC */
-#define WM8400_AIFADCR_SRC_MASK 0x4000 /* AIFADCR_SRC */
-#define WM8400_AIFADCR_SRC_SHIFT 14 /* AIFADCR_SRC */
-#define WM8400_AIFADCR_SRC_WIDTH 1 /* AIFADCR_SRC */
-#define WM8400_AIFADC_TDM 0x2000 /* AIFADC_TDM */
-#define WM8400_AIFADC_TDM_MASK 0x2000 /* AIFADC_TDM */
-#define WM8400_AIFADC_TDM_SHIFT 13 /* AIFADC_TDM */
-#define WM8400_AIFADC_TDM_WIDTH 1 /* AIFADC_TDM */
-#define WM8400_AIFADC_TDM_CHAN 0x1000 /* AIFADC_TDM_CHAN */
-#define WM8400_AIFADC_TDM_CHAN_MASK 0x1000 /* AIFADC_TDM_CHAN */
-#define WM8400_AIFADC_TDM_CHAN_SHIFT 12 /* AIFADC_TDM_CHAN */
-#define WM8400_AIFADC_TDM_CHAN_WIDTH 1 /* AIFADC_TDM_CHAN */
-#define WM8400_AIF_BCLK_INV 0x0100 /* AIF_BCLK_INV */
-#define WM8400_AIF_BCLK_INV_MASK 0x0100 /* AIF_BCLK_INV */
-#define WM8400_AIF_BCLK_INV_SHIFT 8 /* AIF_BCLK_INV */
-#define WM8400_AIF_BCLK_INV_WIDTH 1 /* AIF_BCLK_INV */
-#define WM8400_AIF_LRCLK_INV 0x0080 /* AIF_LRCLK_INV */
-#define WM8400_AIF_LRCLK_INV_MASK 0x0080 /* AIF_LRCLK_INV */
-#define WM8400_AIF_LRCLK_INV_SHIFT 7 /* AIF_LRCLK_INV */
-#define WM8400_AIF_LRCLK_INV_WIDTH 1 /* AIF_LRCLK_INV */
-#define WM8400_AIF_WL_MASK 0x0060 /* AIF_WL - [6:5] */
-#define WM8400_AIF_WL_SHIFT 5 /* AIF_WL - [6:5] */
-#define WM8400_AIF_WL_WIDTH 2 /* AIF_WL - [6:5] */
-#define WM8400_AIF_WL_16BITS (0 << 5)
-#define WM8400_AIF_WL_20BITS (1 << 5)
-#define WM8400_AIF_WL_24BITS (2 << 5)
-#define WM8400_AIF_WL_32BITS (3 << 5)
-#define WM8400_AIF_FMT_MASK 0x0018 /* AIF_FMT - [4:3] */
-#define WM8400_AIF_FMT_SHIFT 3 /* AIF_FMT - [4:3] */
-#define WM8400_AIF_FMT_WIDTH 2 /* AIF_FMT - [4:3] */
-#define WM8400_AIF_FMT_RIGHTJ (0 << 3)
-#define WM8400_AIF_FMT_LEFTJ (1 << 3)
-#define WM8400_AIF_FMT_I2S (2 << 3)
-#define WM8400_AIF_FMT_DSP (3 << 3)
-
-/*
- * R6 (0x06) - Audio Interface (2)
- */
-#define WM8400_DACL_SRC 0x8000 /* DACL_SRC */
-#define WM8400_DACL_SRC_MASK 0x8000 /* DACL_SRC */
-#define WM8400_DACL_SRC_SHIFT 15 /* DACL_SRC */
-#define WM8400_DACL_SRC_WIDTH 1 /* DACL_SRC */
-#define WM8400_DACR_SRC 0x4000 /* DACR_SRC */
-#define WM8400_DACR_SRC_MASK 0x4000 /* DACR_SRC */
-#define WM8400_DACR_SRC_SHIFT 14 /* DACR_SRC */
-#define WM8400_DACR_SRC_WIDTH 1 /* DACR_SRC */
-#define WM8400_AIFDAC_TDM 0x2000 /* AIFDAC_TDM */
-#define WM8400_AIFDAC_TDM_MASK 0x2000 /* AIFDAC_TDM */
-#define WM8400_AIFDAC_TDM_SHIFT 13 /* AIFDAC_TDM */
-#define WM8400_AIFDAC_TDM_WIDTH 1 /* AIFDAC_TDM */
-#define WM8400_AIFDAC_TDM_CHAN 0x1000 /* AIFDAC_TDM_CHAN */
-#define WM8400_AIFDAC_TDM_CHAN_MASK 0x1000 /* AIFDAC_TDM_CHAN */
-#define WM8400_AIFDAC_TDM_CHAN_SHIFT 12 /* AIFDAC_TDM_CHAN */
-#define WM8400_AIFDAC_TDM_CHAN_WIDTH 1 /* AIFDAC_TDM_CHAN */
-#define WM8400_DAC_BOOST_MASK 0x0C00 /* DAC_BOOST - [11:10] */
-#define WM8400_DAC_BOOST_SHIFT 10 /* DAC_BOOST - [11:10] */
-#define WM8400_DAC_BOOST_WIDTH 2 /* DAC_BOOST - [11:10] */
-#define WM8400_DAC_COMP 0x0010 /* DAC_COMP */
-#define WM8400_DAC_COMP_MASK 0x0010 /* DAC_COMP */
-#define WM8400_DAC_COMP_SHIFT 4 /* DAC_COMP */
-#define WM8400_DAC_COMP_WIDTH 1 /* DAC_COMP */
-#define WM8400_DAC_COMPMODE 0x0008 /* DAC_COMPMODE */
-#define WM8400_DAC_COMPMODE_MASK 0x0008 /* DAC_COMPMODE */
-#define WM8400_DAC_COMPMODE_SHIFT 3 /* DAC_COMPMODE */
-#define WM8400_DAC_COMPMODE_WIDTH 1 /* DAC_COMPMODE */
-#define WM8400_ADC_COMP 0x0004 /* ADC_COMP */
-#define WM8400_ADC_COMP_MASK 0x0004 /* ADC_COMP */
-#define WM8400_ADC_COMP_SHIFT 2 /* ADC_COMP */
-#define WM8400_ADC_COMP_WIDTH 1 /* ADC_COMP */
-#define WM8400_ADC_COMPMODE 0x0002 /* ADC_COMPMODE */
-#define WM8400_ADC_COMPMODE_MASK 0x0002 /* ADC_COMPMODE */
-#define WM8400_ADC_COMPMODE_SHIFT 1 /* ADC_COMPMODE */
-#define WM8400_ADC_COMPMODE_WIDTH 1 /* ADC_COMPMODE */
-#define WM8400_LOOPBACK 0x0001 /* LOOPBACK */
-#define WM8400_LOOPBACK_MASK 0x0001 /* LOOPBACK */
-#define WM8400_LOOPBACK_SHIFT 0 /* LOOPBACK */
-#define WM8400_LOOPBACK_WIDTH 1 /* LOOPBACK */
-
-/*
- * R7 (0x07) - Clocking (1)
- */
-#define WM8400_TOCLK_RATE 0x8000 /* TOCLK_RATE */
-#define WM8400_TOCLK_RATE_MASK 0x8000 /* TOCLK_RATE */
-#define WM8400_TOCLK_RATE_SHIFT 15 /* TOCLK_RATE */
-#define WM8400_TOCLK_RATE_WIDTH 1 /* TOCLK_RATE */
-#define WM8400_TOCLK_ENA 0x4000 /* TOCLK_ENA */
-#define WM8400_TOCLK_ENA_MASK 0x4000 /* TOCLK_ENA */
-#define WM8400_TOCLK_ENA_SHIFT 14 /* TOCLK_ENA */
-#define WM8400_TOCLK_ENA_WIDTH 1 /* TOCLK_ENA */
-#define WM8400_OPCLKDIV_MASK 0x1E00 /* OPCLKDIV - [12:9] */
-#define WM8400_OPCLKDIV_SHIFT 9 /* OPCLKDIV - [12:9] */
-#define WM8400_OPCLKDIV_WIDTH 4 /* OPCLKDIV - [12:9] */
-#define WM8400_DCLKDIV_MASK 0x01C0 /* DCLKDIV - [8:6] */
-#define WM8400_DCLKDIV_SHIFT 6 /* DCLKDIV - [8:6] */
-#define WM8400_DCLKDIV_WIDTH 3 /* DCLKDIV - [8:6] */
-#define WM8400_BCLK_DIV_MASK 0x001E /* BCLK_DIV - [4:1] */
-#define WM8400_BCLK_DIV_SHIFT 1 /* BCLK_DIV - [4:1] */
-#define WM8400_BCLK_DIV_WIDTH 4 /* BCLK_DIV - [4:1] */
-
-/*
- * R8 (0x08) - Clocking (2)
- */
-#define WM8400_MCLK_SRC 0x8000 /* MCLK_SRC */
-#define WM8400_MCLK_SRC_MASK 0x8000 /* MCLK_SRC */
-#define WM8400_MCLK_SRC_SHIFT 15 /* MCLK_SRC */
-#define WM8400_MCLK_SRC_WIDTH 1 /* MCLK_SRC */
-#define WM8400_SYSCLK_SRC 0x4000 /* SYSCLK_SRC */
-#define WM8400_SYSCLK_SRC_MASK 0x4000 /* SYSCLK_SRC */
-#define WM8400_SYSCLK_SRC_SHIFT 14 /* SYSCLK_SRC */
-#define WM8400_SYSCLK_SRC_WIDTH 1 /* SYSCLK_SRC */
-#define WM8400_CLK_FORCE 0x2000 /* CLK_FORCE */
-#define WM8400_CLK_FORCE_MASK 0x2000 /* CLK_FORCE */
-#define WM8400_CLK_FORCE_SHIFT 13 /* CLK_FORCE */
-#define WM8400_CLK_FORCE_WIDTH 1 /* CLK_FORCE */
-#define WM8400_MCLK_DIV_MASK 0x1800 /* MCLK_DIV - [12:11] */
-#define WM8400_MCLK_DIV_SHIFT 11 /* MCLK_DIV - [12:11] */
-#define WM8400_MCLK_DIV_WIDTH 2 /* MCLK_DIV - [12:11] */
-#define WM8400_MCLK_INV 0x0400 /* MCLK_INV */
-#define WM8400_MCLK_INV_MASK 0x0400 /* MCLK_INV */
-#define WM8400_MCLK_INV_SHIFT 10 /* MCLK_INV */
-#define WM8400_MCLK_INV_WIDTH 1 /* MCLK_INV */
-#define WM8400_ADC_CLKDIV_MASK 0x00E0 /* ADC_CLKDIV - [7:5] */
-#define WM8400_ADC_CLKDIV_SHIFT 5 /* ADC_CLKDIV - [7:5] */
-#define WM8400_ADC_CLKDIV_WIDTH 3 /* ADC_CLKDIV - [7:5] */
-#define WM8400_DAC_CLKDIV_MASK 0x001C /* DAC_CLKDIV - [4:2] */
-#define WM8400_DAC_CLKDIV_SHIFT 2 /* DAC_CLKDIV - [4:2] */
-#define WM8400_DAC_CLKDIV_WIDTH 3 /* DAC_CLKDIV - [4:2] */
-
-/*
- * R9 (0x09) - Audio Interface (3)
- */
-#define WM8400_AIF_MSTR1 0x8000 /* AIF_MSTR1 */
-#define WM8400_AIF_MSTR1_MASK 0x8000 /* AIF_MSTR1 */
-#define WM8400_AIF_MSTR1_SHIFT 15 /* AIF_MSTR1 */
-#define WM8400_AIF_MSTR1_WIDTH 1 /* AIF_MSTR1 */
-#define WM8400_AIF_MSTR2 0x4000 /* AIF_MSTR2 */
-#define WM8400_AIF_MSTR2_MASK 0x4000 /* AIF_MSTR2 */
-#define WM8400_AIF_MSTR2_SHIFT 14 /* AIF_MSTR2 */
-#define WM8400_AIF_MSTR2_WIDTH 1 /* AIF_MSTR2 */
-#define WM8400_AIF_SEL 0x2000 /* AIF_SEL */
-#define WM8400_AIF_SEL_MASK 0x2000 /* AIF_SEL */
-#define WM8400_AIF_SEL_SHIFT 13 /* AIF_SEL */
-#define WM8400_AIF_SEL_WIDTH 1 /* AIF_SEL */
-#define WM8400_ADCLRC_DIR 0x0800 /* ADCLRC_DIR */
-#define WM8400_ADCLRC_DIR_MASK 0x0800 /* ADCLRC_DIR */
-#define WM8400_ADCLRC_DIR_SHIFT 11 /* ADCLRC_DIR */
-#define WM8400_ADCLRC_DIR_WIDTH 1 /* ADCLRC_DIR */
-#define WM8400_ADCLRC_RATE_MASK 0x07FF /* ADCLRC_RATE - [10:0] */
-#define WM8400_ADCLRC_RATE_SHIFT 0 /* ADCLRC_RATE - [10:0] */
-#define WM8400_ADCLRC_RATE_WIDTH 11 /* ADCLRC_RATE - [10:0] */
-
-/*
- * R10 (0x0A) - Audio Interface (4)
- */
-#define WM8400_ALRCGPIO1 0x8000 /* ALRCGPIO1 */
-#define WM8400_ALRCGPIO1_MASK 0x8000 /* ALRCGPIO1 */
-#define WM8400_ALRCGPIO1_SHIFT 15 /* ALRCGPIO1 */
-#define WM8400_ALRCGPIO1_WIDTH 1 /* ALRCGPIO1 */
-#define WM8400_ALRCBGPIO6 0x4000 /* ALRCBGPIO6 */
-#define WM8400_ALRCBGPIO6_MASK 0x4000 /* ALRCBGPIO6 */
-#define WM8400_ALRCBGPIO6_SHIFT 14 /* ALRCBGPIO6 */
-#define WM8400_ALRCBGPIO6_WIDTH 1 /* ALRCBGPIO6 */
-#define WM8400_AIF_TRIS 0x2000 /* AIF_TRIS */
-#define WM8400_AIF_TRIS_MASK 0x2000 /* AIF_TRIS */
-#define WM8400_AIF_TRIS_SHIFT 13 /* AIF_TRIS */
-#define WM8400_AIF_TRIS_WIDTH 1 /* AIF_TRIS */
-#define WM8400_DACLRC_DIR 0x0800 /* DACLRC_DIR */
-#define WM8400_DACLRC_DIR_MASK 0x0800 /* DACLRC_DIR */
-#define WM8400_DACLRC_DIR_SHIFT 11 /* DACLRC_DIR */
-#define WM8400_DACLRC_DIR_WIDTH 1 /* DACLRC_DIR */
-#define WM8400_DACLRC_RATE_MASK 0x07FF /* DACLRC_RATE - [10:0] */
-#define WM8400_DACLRC_RATE_SHIFT 0 /* DACLRC_RATE - [10:0] */
-#define WM8400_DACLRC_RATE_WIDTH 11 /* DACLRC_RATE - [10:0] */
-
-/*
- * R11 (0x0B) - DAC CTRL
- */
-#define WM8400_DAC_SDMCLK_RATE 0x2000 /* DAC_SDMCLK_RATE */
-#define WM8400_DAC_SDMCLK_RATE_MASK 0x2000 /* DAC_SDMCLK_RATE */
-#define WM8400_DAC_SDMCLK_RATE_SHIFT 13 /* DAC_SDMCLK_RATE */
-#define WM8400_DAC_SDMCLK_RATE_WIDTH 1 /* DAC_SDMCLK_RATE */
-#define WM8400_AIF_LRCLKRATE 0x0400 /* AIF_LRCLKRATE */
-#define WM8400_AIF_LRCLKRATE_MASK 0x0400 /* AIF_LRCLKRATE */
-#define WM8400_AIF_LRCLKRATE_SHIFT 10 /* AIF_LRCLKRATE */
-#define WM8400_AIF_LRCLKRATE_WIDTH 1 /* AIF_LRCLKRATE */
-#define WM8400_DAC_MONO 0x0200 /* DAC_MONO */
-#define WM8400_DAC_MONO_MASK 0x0200 /* DAC_MONO */
-#define WM8400_DAC_MONO_SHIFT 9 /* DAC_MONO */
-#define WM8400_DAC_MONO_WIDTH 1 /* DAC_MONO */
-#define WM8400_DAC_SB_FILT 0x0100 /* DAC_SB_FILT */
-#define WM8400_DAC_SB_FILT_MASK 0x0100 /* DAC_SB_FILT */
-#define WM8400_DAC_SB_FILT_SHIFT 8 /* DAC_SB_FILT */
-#define WM8400_DAC_SB_FILT_WIDTH 1 /* DAC_SB_FILT */
-#define WM8400_DAC_MUTERATE 0x0080 /* DAC_MUTERATE */
-#define WM8400_DAC_MUTERATE_MASK 0x0080 /* DAC_MUTERATE */
-#define WM8400_DAC_MUTERATE_SHIFT 7 /* DAC_MUTERATE */
-#define WM8400_DAC_MUTERATE_WIDTH 1 /* DAC_MUTERATE */
-#define WM8400_DAC_MUTEMODE 0x0040 /* DAC_MUTEMODE */
-#define WM8400_DAC_MUTEMODE_MASK 0x0040 /* DAC_MUTEMODE */
-#define WM8400_DAC_MUTEMODE_SHIFT 6 /* DAC_MUTEMODE */
-#define WM8400_DAC_MUTEMODE_WIDTH 1 /* DAC_MUTEMODE */
-#define WM8400_DEEMP_MASK 0x0030 /* DEEMP - [5:4] */
-#define WM8400_DEEMP_SHIFT 4 /* DEEMP - [5:4] */
-#define WM8400_DEEMP_WIDTH 2 /* DEEMP - [5:4] */
-#define WM8400_DAC_MUTE 0x0004 /* DAC_MUTE */
-#define WM8400_DAC_MUTE_MASK 0x0004 /* DAC_MUTE */
-#define WM8400_DAC_MUTE_SHIFT 2 /* DAC_MUTE */
-#define WM8400_DAC_MUTE_WIDTH 1 /* DAC_MUTE */
-#define WM8400_DACL_DATINV 0x0002 /* DACL_DATINV */
-#define WM8400_DACL_DATINV_MASK 0x0002 /* DACL_DATINV */
-#define WM8400_DACL_DATINV_SHIFT 1 /* DACL_DATINV */
-#define WM8400_DACL_DATINV_WIDTH 1 /* DACL_DATINV */
-#define WM8400_DACR_DATINV 0x0001 /* DACR_DATINV */
-#define WM8400_DACR_DATINV_MASK 0x0001 /* DACR_DATINV */
-#define WM8400_DACR_DATINV_SHIFT 0 /* DACR_DATINV */
-#define WM8400_DACR_DATINV_WIDTH 1 /* DACR_DATINV */
-
-/*
- * R12 (0x0C) - Left DAC Digital Volume
- */
-#define WM8400_DAC_VU 0x0100 /* DAC_VU */
-#define WM8400_DAC_VU_MASK 0x0100 /* DAC_VU */
-#define WM8400_DAC_VU_SHIFT 8 /* DAC_VU */
-#define WM8400_DAC_VU_WIDTH 1 /* DAC_VU */
-#define WM8400_DACL_VOL_MASK 0x00FF /* DACL_VOL - [7:0] */
-#define WM8400_DACL_VOL_SHIFT 0 /* DACL_VOL - [7:0] */
-#define WM8400_DACL_VOL_WIDTH 8 /* DACL_VOL - [7:0] */
-
-/*
- * R13 (0x0D) - Right DAC Digital Volume
- */
-#define WM8400_DAC_VU 0x0100 /* DAC_VU */
-#define WM8400_DAC_VU_MASK 0x0100 /* DAC_VU */
-#define WM8400_DAC_VU_SHIFT 8 /* DAC_VU */
-#define WM8400_DAC_VU_WIDTH 1 /* DAC_VU */
-#define WM8400_DACR_VOL_MASK 0x00FF /* DACR_VOL - [7:0] */
-#define WM8400_DACR_VOL_SHIFT 0 /* DACR_VOL - [7:0] */
-#define WM8400_DACR_VOL_WIDTH 8 /* DACR_VOL - [7:0] */
-
-/*
- * R14 (0x0E) - Digital Side Tone
- */
-#define WM8400_ADCL_DAC_SVOL_MASK 0x1E00 /* ADCL_DAC_SVOL - [12:9] */
-#define WM8400_ADCL_DAC_SVOL_SHIFT 9 /* ADCL_DAC_SVOL - [12:9] */
-#define WM8400_ADCL_DAC_SVOL_WIDTH 4 /* ADCL_DAC_SVOL - [12:9] */
-#define WM8400_ADCR_DAC_SVOL_MASK 0x01E0 /* ADCR_DAC_SVOL - [8:5] */
-#define WM8400_ADCR_DAC_SVOL_SHIFT 5 /* ADCR_DAC_SVOL - [8:5] */
-#define WM8400_ADCR_DAC_SVOL_WIDTH 4 /* ADCR_DAC_SVOL - [8:5] */
-#define WM8400_ADC_TO_DACL_MASK 0x000C /* ADC_TO_DACL - [3:2] */
-#define WM8400_ADC_TO_DACL_SHIFT 2 /* ADC_TO_DACL - [3:2] */
-#define WM8400_ADC_TO_DACL_WIDTH 2 /* ADC_TO_DACL - [3:2] */
-#define WM8400_ADC_TO_DACR_MASK 0x0003 /* ADC_TO_DACR - [1:0] */
-#define WM8400_ADC_TO_DACR_SHIFT 0 /* ADC_TO_DACR - [1:0] */
-#define WM8400_ADC_TO_DACR_WIDTH 2 /* ADC_TO_DACR - [1:0] */
-
-/*
- * R15 (0x0F) - ADC CTRL
- */
-#define WM8400_ADC_HPF_ENA 0x0100 /* ADC_HPF_ENA */
-#define WM8400_ADC_HPF_ENA_MASK 0x0100 /* ADC_HPF_ENA */
-#define WM8400_ADC_HPF_ENA_SHIFT 8 /* ADC_HPF_ENA */
-#define WM8400_ADC_HPF_ENA_WIDTH 1 /* ADC_HPF_ENA */
-#define WM8400_ADC_HPF_CUT_MASK 0x0060 /* ADC_HPF_CUT - [6:5] */
-#define WM8400_ADC_HPF_CUT_SHIFT 5 /* ADC_HPF_CUT - [6:5] */
-#define WM8400_ADC_HPF_CUT_WIDTH 2 /* ADC_HPF_CUT - [6:5] */
-#define WM8400_ADCL_DATINV 0x0002 /* ADCL_DATINV */
-#define WM8400_ADCL_DATINV_MASK 0x0002 /* ADCL_DATINV */
-#define WM8400_ADCL_DATINV_SHIFT 1 /* ADCL_DATINV */
-#define WM8400_ADCL_DATINV_WIDTH 1 /* ADCL_DATINV */
-#define WM8400_ADCR_DATINV 0x0001 /* ADCR_DATINV */
-#define WM8400_ADCR_DATINV_MASK 0x0001 /* ADCR_DATINV */
-#define WM8400_ADCR_DATINV_SHIFT 0 /* ADCR_DATINV */
-#define WM8400_ADCR_DATINV_WIDTH 1 /* ADCR_DATINV */
-
-/*
- * R16 (0x10) - Left ADC Digital Volume
- */
-#define WM8400_ADC_VU 0x0100 /* ADC_VU */
-#define WM8400_ADC_VU_MASK 0x0100 /* ADC_VU */
-#define WM8400_ADC_VU_SHIFT 8 /* ADC_VU */
-#define WM8400_ADC_VU_WIDTH 1 /* ADC_VU */
-#define WM8400_ADCL_VOL_MASK 0x00FF /* ADCL_VOL - [7:0] */
-#define WM8400_ADCL_VOL_SHIFT 0 /* ADCL_VOL - [7:0] */
-#define WM8400_ADCL_VOL_WIDTH 8 /* ADCL_VOL - [7:0] */
-
-/*
- * R17 (0x11) - Right ADC Digital Volume
- */
-#define WM8400_ADC_VU 0x0100 /* ADC_VU */
-#define WM8400_ADC_VU_MASK 0x0100 /* ADC_VU */
-#define WM8400_ADC_VU_SHIFT 8 /* ADC_VU */
-#define WM8400_ADC_VU_WIDTH 1 /* ADC_VU */
-#define WM8400_ADCR_VOL_MASK 0x00FF /* ADCR_VOL - [7:0] */
-#define WM8400_ADCR_VOL_SHIFT 0 /* ADCR_VOL - [7:0] */
-#define WM8400_ADCR_VOL_WIDTH 8 /* ADCR_VOL - [7:0] */
-
-/*
- * R24 (0x18) - Left Line Input 1&2 Volume
- */
-#define WM8400_IPVU 0x0100 /* IPVU */
-#define WM8400_IPVU_MASK 0x0100 /* IPVU */
-#define WM8400_IPVU_SHIFT 8 /* IPVU */
-#define WM8400_IPVU_WIDTH 1 /* IPVU */
-#define WM8400_LI12MUTE 0x0080 /* LI12MUTE */
-#define WM8400_LI12MUTE_MASK 0x0080 /* LI12MUTE */
-#define WM8400_LI12MUTE_SHIFT 7 /* LI12MUTE */
-#define WM8400_LI12MUTE_WIDTH 1 /* LI12MUTE */
-#define WM8400_LI12ZC 0x0040 /* LI12ZC */
-#define WM8400_LI12ZC_MASK 0x0040 /* LI12ZC */
-#define WM8400_LI12ZC_SHIFT 6 /* LI12ZC */
-#define WM8400_LI12ZC_WIDTH 1 /* LI12ZC */
-#define WM8400_LIN12VOL_MASK 0x001F /* LIN12VOL - [4:0] */
-#define WM8400_LIN12VOL_SHIFT 0 /* LIN12VOL - [4:0] */
-#define WM8400_LIN12VOL_WIDTH 5 /* LIN12VOL - [4:0] */
-
-/*
- * R25 (0x19) - Left Line Input 3&4 Volume
- */
-#define WM8400_IPVU 0x0100 /* IPVU */
-#define WM8400_IPVU_MASK 0x0100 /* IPVU */
-#define WM8400_IPVU_SHIFT 8 /* IPVU */
-#define WM8400_IPVU_WIDTH 1 /* IPVU */
-#define WM8400_LI34MUTE 0x0080 /* LI34MUTE */
-#define WM8400_LI34MUTE_MASK 0x0080 /* LI34MUTE */
-#define WM8400_LI34MUTE_SHIFT 7 /* LI34MUTE */
-#define WM8400_LI34MUTE_WIDTH 1 /* LI34MUTE */
-#define WM8400_LI34ZC 0x0040 /* LI34ZC */
-#define WM8400_LI34ZC_MASK 0x0040 /* LI34ZC */
-#define WM8400_LI34ZC_SHIFT 6 /* LI34ZC */
-#define WM8400_LI34ZC_WIDTH 1 /* LI34ZC */
-#define WM8400_LIN34VOL_MASK 0x001F /* LIN34VOL - [4:0] */
-#define WM8400_LIN34VOL_SHIFT 0 /* LIN34VOL - [4:0] */
-#define WM8400_LIN34VOL_WIDTH 5 /* LIN34VOL - [4:0] */
-
-/*
- * R26 (0x1A) - Right Line Input 1&2 Volume
- */
-#define WM8400_IPVU 0x0100 /* IPVU */
-#define WM8400_IPVU_MASK 0x0100 /* IPVU */
-#define WM8400_IPVU_SHIFT 8 /* IPVU */
-#define WM8400_IPVU_WIDTH 1 /* IPVU */
-#define WM8400_RI12MUTE 0x0080 /* RI12MUTE */
-#define WM8400_RI12MUTE_MASK 0x0080 /* RI12MUTE */
-#define WM8400_RI12MUTE_SHIFT 7 /* RI12MUTE */
-#define WM8400_RI12MUTE_WIDTH 1 /* RI12MUTE */
-#define WM8400_RI12ZC 0x0040 /* RI12ZC */
-#define WM8400_RI12ZC_MASK 0x0040 /* RI12ZC */
-#define WM8400_RI12ZC_SHIFT 6 /* RI12ZC */
-#define WM8400_RI12ZC_WIDTH 1 /* RI12ZC */
-#define WM8400_RIN12VOL_MASK 0x001F /* RIN12VOL - [4:0] */
-#define WM8400_RIN12VOL_SHIFT 0 /* RIN12VOL - [4:0] */
-#define WM8400_RIN12VOL_WIDTH 5 /* RIN12VOL - [4:0] */
-
-/*
- * R27 (0x1B) - Right Line Input 3&4 Volume
- */
-#define WM8400_IPVU 0x0100 /* IPVU */
-#define WM8400_IPVU_MASK 0x0100 /* IPVU */
-#define WM8400_IPVU_SHIFT 8 /* IPVU */
-#define WM8400_IPVU_WIDTH 1 /* IPVU */
-#define WM8400_RI34MUTE 0x0080 /* RI34MUTE */
-#define WM8400_RI34MUTE_MASK 0x0080 /* RI34MUTE */
-#define WM8400_RI34MUTE_SHIFT 7 /* RI34MUTE */
-#define WM8400_RI34MUTE_WIDTH 1 /* RI34MUTE */
-#define WM8400_RI34ZC 0x0040 /* RI34ZC */
-#define WM8400_RI34ZC_MASK 0x0040 /* RI34ZC */
-#define WM8400_RI34ZC_SHIFT 6 /* RI34ZC */
-#define WM8400_RI34ZC_WIDTH 1 /* RI34ZC */
-#define WM8400_RIN34VOL_MASK 0x001F /* RIN34VOL - [4:0] */
-#define WM8400_RIN34VOL_SHIFT 0 /* RIN34VOL - [4:0] */
-#define WM8400_RIN34VOL_WIDTH 5 /* RIN34VOL - [4:0] */
-
-/*
- * R28 (0x1C) - Left Output Volume
- */
-#define WM8400_OPVU 0x0100 /* OPVU */
-#define WM8400_OPVU_MASK 0x0100 /* OPVU */
-#define WM8400_OPVU_SHIFT 8 /* OPVU */
-#define WM8400_OPVU_WIDTH 1 /* OPVU */
-#define WM8400_LOZC 0x0080 /* LOZC */
-#define WM8400_LOZC_MASK 0x0080 /* LOZC */
-#define WM8400_LOZC_SHIFT 7 /* LOZC */
-#define WM8400_LOZC_WIDTH 1 /* LOZC */
-#define WM8400_LOUTVOL_MASK 0x007F /* LOUTVOL - [6:0] */
-#define WM8400_LOUTVOL_SHIFT 0 /* LOUTVOL - [6:0] */
-#define WM8400_LOUTVOL_WIDTH 7 /* LOUTVOL - [6:0] */
-
-/*
- * R29 (0x1D) - Right Output Volume
- */
-#define WM8400_OPVU 0x0100 /* OPVU */
-#define WM8400_OPVU_MASK 0x0100 /* OPVU */
-#define WM8400_OPVU_SHIFT 8 /* OPVU */
-#define WM8400_OPVU_WIDTH 1 /* OPVU */
-#define WM8400_ROZC 0x0080 /* ROZC */
-#define WM8400_ROZC_MASK 0x0080 /* ROZC */
-#define WM8400_ROZC_SHIFT 7 /* ROZC */
-#define WM8400_ROZC_WIDTH 1 /* ROZC */
-#define WM8400_ROUTVOL_MASK 0x007F /* ROUTVOL - [6:0] */
-#define WM8400_ROUTVOL_SHIFT 0 /* ROUTVOL - [6:0] */
-#define WM8400_ROUTVOL_WIDTH 7 /* ROUTVOL - [6:0] */
-
-/*
- * R30 (0x1E) - Line Outputs Volume
- */
-#define WM8400_LONMUTE 0x0040 /* LONMUTE */
-#define WM8400_LONMUTE_MASK 0x0040 /* LONMUTE */
-#define WM8400_LONMUTE_SHIFT 6 /* LONMUTE */
-#define WM8400_LONMUTE_WIDTH 1 /* LONMUTE */
-#define WM8400_LOPMUTE 0x0020 /* LOPMUTE */
-#define WM8400_LOPMUTE_MASK 0x0020 /* LOPMUTE */
-#define WM8400_LOPMUTE_SHIFT 5 /* LOPMUTE */
-#define WM8400_LOPMUTE_WIDTH 1 /* LOPMUTE */
-#define WM8400_LOATTN 0x0010 /* LOATTN */
-#define WM8400_LOATTN_MASK 0x0010 /* LOATTN */
-#define WM8400_LOATTN_SHIFT 4 /* LOATTN */
-#define WM8400_LOATTN_WIDTH 1 /* LOATTN */
-#define WM8400_RONMUTE 0x0004 /* RONMUTE */
-#define WM8400_RONMUTE_MASK 0x0004 /* RONMUTE */
-#define WM8400_RONMUTE_SHIFT 2 /* RONMUTE */
-#define WM8400_RONMUTE_WIDTH 1 /* RONMUTE */
-#define WM8400_ROPMUTE 0x0002 /* ROPMUTE */
-#define WM8400_ROPMUTE_MASK 0x0002 /* ROPMUTE */
-#define WM8400_ROPMUTE_SHIFT 1 /* ROPMUTE */
-#define WM8400_ROPMUTE_WIDTH 1 /* ROPMUTE */
-#define WM8400_ROATTN 0x0001 /* ROATTN */
-#define WM8400_ROATTN_MASK 0x0001 /* ROATTN */
-#define WM8400_ROATTN_SHIFT 0 /* ROATTN */
-#define WM8400_ROATTN_WIDTH 1 /* ROATTN */
-
-/*
- * R31 (0x1F) - Out3/4 Volume
- */
-#define WM8400_OUT3MUTE 0x0020 /* OUT3MUTE */
-#define WM8400_OUT3MUTE_MASK 0x0020 /* OUT3MUTE */
-#define WM8400_OUT3MUTE_SHIFT 5 /* OUT3MUTE */
-#define WM8400_OUT3MUTE_WIDTH 1 /* OUT3MUTE */
-#define WM8400_OUT3ATTN 0x0010 /* OUT3ATTN */
-#define WM8400_OUT3ATTN_MASK 0x0010 /* OUT3ATTN */
-#define WM8400_OUT3ATTN_SHIFT 4 /* OUT3ATTN */
-#define WM8400_OUT3ATTN_WIDTH 1 /* OUT3ATTN */
-#define WM8400_OUT4MUTE 0x0002 /* OUT4MUTE */
-#define WM8400_OUT4MUTE_MASK 0x0002 /* OUT4MUTE */
-#define WM8400_OUT4MUTE_SHIFT 1 /* OUT4MUTE */
-#define WM8400_OUT4MUTE_WIDTH 1 /* OUT4MUTE */
-#define WM8400_OUT4ATTN 0x0001 /* OUT4ATTN */
-#define WM8400_OUT4ATTN_MASK 0x0001 /* OUT4ATTN */
-#define WM8400_OUT4ATTN_SHIFT 0 /* OUT4ATTN */
-#define WM8400_OUT4ATTN_WIDTH 1 /* OUT4ATTN */
-
-/*
- * R32 (0x20) - Left OPGA Volume
- */
-#define WM8400_OPVU 0x0100 /* OPVU */
-#define WM8400_OPVU_MASK 0x0100 /* OPVU */
-#define WM8400_OPVU_SHIFT 8 /* OPVU */
-#define WM8400_OPVU_WIDTH 1 /* OPVU */
-#define WM8400_LOPGAZC 0x0080 /* LOPGAZC */
-#define WM8400_LOPGAZC_MASK 0x0080 /* LOPGAZC */
-#define WM8400_LOPGAZC_SHIFT 7 /* LOPGAZC */
-#define WM8400_LOPGAZC_WIDTH 1 /* LOPGAZC */
-#define WM8400_LOPGAVOL_MASK 0x007F /* LOPGAVOL - [6:0] */
-#define WM8400_LOPGAVOL_SHIFT 0 /* LOPGAVOL - [6:0] */
-#define WM8400_LOPGAVOL_WIDTH 7 /* LOPGAVOL - [6:0] */
-
-/*
- * R33 (0x21) - Right OPGA Volume
- */
-#define WM8400_OPVU 0x0100 /* OPVU */
-#define WM8400_OPVU_MASK 0x0100 /* OPVU */
-#define WM8400_OPVU_SHIFT 8 /* OPVU */
-#define WM8400_OPVU_WIDTH 1 /* OPVU */
-#define WM8400_ROPGAZC 0x0080 /* ROPGAZC */
-#define WM8400_ROPGAZC_MASK 0x0080 /* ROPGAZC */
-#define WM8400_ROPGAZC_SHIFT 7 /* ROPGAZC */
-#define WM8400_ROPGAZC_WIDTH 1 /* ROPGAZC */
-#define WM8400_ROPGAVOL_MASK 0x007F /* ROPGAVOL - [6:0] */
-#define WM8400_ROPGAVOL_SHIFT 0 /* ROPGAVOL - [6:0] */
-#define WM8400_ROPGAVOL_WIDTH 7 /* ROPGAVOL - [6:0] */
-
-/*
- * R34 (0x22) - Speaker Volume
- */
-#define WM8400_SPKATTN_MASK 0x0003 /* SPKATTN - [1:0] */
-#define WM8400_SPKATTN_SHIFT 0 /* SPKATTN - [1:0] */
-#define WM8400_SPKATTN_WIDTH 2 /* SPKATTN - [1:0] */
-
-/*
- * R35 (0x23) - ClassD1
- */
-#define WM8400_CDMODE 0x0100 /* CDMODE */
-#define WM8400_CDMODE_MASK 0x0100 /* CDMODE */
-#define WM8400_CDMODE_SHIFT 8 /* CDMODE */
-#define WM8400_CDMODE_WIDTH 1 /* CDMODE */
-#define WM8400_CLASSD_CLK_SEL 0x0080 /* CLASSD_CLK_SEL */
-#define WM8400_CLASSD_CLK_SEL_MASK 0x0080 /* CLASSD_CLK_SEL */
-#define WM8400_CLASSD_CLK_SEL_SHIFT 7 /* CLASSD_CLK_SEL */
-#define WM8400_CLASSD_CLK_SEL_WIDTH 1 /* CLASSD_CLK_SEL */
-#define WM8400_CD_SRCTRL 0x0040 /* CD_SRCTRL */
-#define WM8400_CD_SRCTRL_MASK 0x0040 /* CD_SRCTRL */
-#define WM8400_CD_SRCTRL_SHIFT 6 /* CD_SRCTRL */
-#define WM8400_CD_SRCTRL_WIDTH 1 /* CD_SRCTRL */
-#define WM8400_SPKNOPOP 0x0020 /* SPKNOPOP */
-#define WM8400_SPKNOPOP_MASK 0x0020 /* SPKNOPOP */
-#define WM8400_SPKNOPOP_SHIFT 5 /* SPKNOPOP */
-#define WM8400_SPKNOPOP_WIDTH 1 /* SPKNOPOP */
-#define WM8400_DBLERATE 0x0010 /* DBLERATE */
-#define WM8400_DBLERATE_MASK 0x0010 /* DBLERATE */
-#define WM8400_DBLERATE_SHIFT 4 /* DBLERATE */
-#define WM8400_DBLERATE_WIDTH 1 /* DBLERATE */
-#define WM8400_LOOPTEST 0x0008 /* LOOPTEST */
-#define WM8400_LOOPTEST_MASK 0x0008 /* LOOPTEST */
-#define WM8400_LOOPTEST_SHIFT 3 /* LOOPTEST */
-#define WM8400_LOOPTEST_WIDTH 1 /* LOOPTEST */
-#define WM8400_HALFABBIAS 0x0004 /* HALFABBIAS */
-#define WM8400_HALFABBIAS_MASK 0x0004 /* HALFABBIAS */
-#define WM8400_HALFABBIAS_SHIFT 2 /* HALFABBIAS */
-#define WM8400_HALFABBIAS_WIDTH 1 /* HALFABBIAS */
-#define WM8400_TRIDEL_MASK 0x0003 /* TRIDEL - [1:0] */
-#define WM8400_TRIDEL_SHIFT 0 /* TRIDEL - [1:0] */
-#define WM8400_TRIDEL_WIDTH 2 /* TRIDEL - [1:0] */
-
-/*
- * R37 (0x25) - ClassD3
- */
-#define WM8400_DCGAIN_MASK 0x0038 /* DCGAIN - [5:3] */
-#define WM8400_DCGAIN_SHIFT 3 /* DCGAIN - [5:3] */
-#define WM8400_DCGAIN_WIDTH 3 /* DCGAIN - [5:3] */
-#define WM8400_ACGAIN_MASK 0x0007 /* ACGAIN - [2:0] */
-#define WM8400_ACGAIN_SHIFT 0 /* ACGAIN - [2:0] */
-#define WM8400_ACGAIN_WIDTH 3 /* ACGAIN - [2:0] */
-
-/*
- * R39 (0x27) - Input Mixer1
- */
-#define WM8400_AINLMODE_MASK 0x000C /* AINLMODE - [3:2] */
-#define WM8400_AINLMODE_SHIFT 2 /* AINLMODE - [3:2] */
-#define WM8400_AINLMODE_WIDTH 2 /* AINLMODE - [3:2] */
-#define WM8400_AINRMODE_MASK 0x0003 /* AINRMODE - [1:0] */
-#define WM8400_AINRMODE_SHIFT 0 /* AINRMODE - [1:0] */
-#define WM8400_AINRMODE_WIDTH 2 /* AINRMODE - [1:0] */
-
-/*
- * R40 (0x28) - Input Mixer2
- */
-#define WM8400_LMP4 0x0080 /* LMP4 */
-#define WM8400_LMP4_MASK 0x0080 /* LMP4 */
-#define WM8400_LMP4_SHIFT 7 /* LMP4 */
-#define WM8400_LMP4_WIDTH 1 /* LMP4 */
-#define WM8400_LMN3 0x0040 /* LMN3 */
-#define WM8400_LMN3_MASK 0x0040 /* LMN3 */
-#define WM8400_LMN3_SHIFT 6 /* LMN3 */
-#define WM8400_LMN3_WIDTH 1 /* LMN3 */
-#define WM8400_LMP2 0x0020 /* LMP2 */
-#define WM8400_LMP2_MASK 0x0020 /* LMP2 */
-#define WM8400_LMP2_SHIFT 5 /* LMP2 */
-#define WM8400_LMP2_WIDTH 1 /* LMP2 */
-#define WM8400_LMN1 0x0010 /* LMN1 */
-#define WM8400_LMN1_MASK 0x0010 /* LMN1 */
-#define WM8400_LMN1_SHIFT 4 /* LMN1 */
-#define WM8400_LMN1_WIDTH 1 /* LMN1 */
-#define WM8400_RMP4 0x0008 /* RMP4 */
-#define WM8400_RMP4_MASK 0x0008 /* RMP4 */
-#define WM8400_RMP4_SHIFT 3 /* RMP4 */
-#define WM8400_RMP4_WIDTH 1 /* RMP4 */
-#define WM8400_RMN3 0x0004 /* RMN3 */
-#define WM8400_RMN3_MASK 0x0004 /* RMN3 */
-#define WM8400_RMN3_SHIFT 2 /* RMN3 */
-#define WM8400_RMN3_WIDTH 1 /* RMN3 */
-#define WM8400_RMP2 0x0002 /* RMP2 */
-#define WM8400_RMP2_MASK 0x0002 /* RMP2 */
-#define WM8400_RMP2_SHIFT 1 /* RMP2 */
-#define WM8400_RMP2_WIDTH 1 /* RMP2 */
-#define WM8400_RMN1 0x0001 /* RMN1 */
-#define WM8400_RMN1_MASK 0x0001 /* RMN1 */
-#define WM8400_RMN1_SHIFT 0 /* RMN1 */
-#define WM8400_RMN1_WIDTH 1 /* RMN1 */
-
-/*
- * R41 (0x29) - Input Mixer3
- */
-#define WM8400_L34MNB 0x0100 /* L34MNB */
-#define WM8400_L34MNB_MASK 0x0100 /* L34MNB */
-#define WM8400_L34MNB_SHIFT 8 /* L34MNB */
-#define WM8400_L34MNB_WIDTH 1 /* L34MNB */
-#define WM8400_L34MNBST 0x0080 /* L34MNBST */
-#define WM8400_L34MNBST_MASK 0x0080 /* L34MNBST */
-#define WM8400_L34MNBST_SHIFT 7 /* L34MNBST */
-#define WM8400_L34MNBST_WIDTH 1 /* L34MNBST */
-#define WM8400_L12MNB 0x0020 /* L12MNB */
-#define WM8400_L12MNB_MASK 0x0020 /* L12MNB */
-#define WM8400_L12MNB_SHIFT 5 /* L12MNB */
-#define WM8400_L12MNB_WIDTH 1 /* L12MNB */
-#define WM8400_L12MNBST 0x0010 /* L12MNBST */
-#define WM8400_L12MNBST_MASK 0x0010 /* L12MNBST */
-#define WM8400_L12MNBST_SHIFT 4 /* L12MNBST */
-#define WM8400_L12MNBST_WIDTH 1 /* L12MNBST */
-#define WM8400_LDBVOL_MASK 0x0007 /* LDBVOL - [2:0] */
-#define WM8400_LDBVOL_SHIFT 0 /* LDBVOL - [2:0] */
-#define WM8400_LDBVOL_WIDTH 3 /* LDBVOL - [2:0] */
-
-/*
- * R42 (0x2A) - Input Mixer4
- */
-#define WM8400_R34MNB 0x0100 /* R34MNB */
-#define WM8400_R34MNB_MASK 0x0100 /* R34MNB */
-#define WM8400_R34MNB_SHIFT 8 /* R34MNB */
-#define WM8400_R34MNB_WIDTH 1 /* R34MNB */
-#define WM8400_R34MNBST 0x0080 /* R34MNBST */
-#define WM8400_R34MNBST_MASK 0x0080 /* R34MNBST */
-#define WM8400_R34MNBST_SHIFT 7 /* R34MNBST */
-#define WM8400_R34MNBST_WIDTH 1 /* R34MNBST */
-#define WM8400_R12MNB 0x0020 /* R12MNB */
-#define WM8400_R12MNB_MASK 0x0020 /* R12MNB */
-#define WM8400_R12MNB_SHIFT 5 /* R12MNB */
-#define WM8400_R12MNB_WIDTH 1 /* R12MNB */
-#define WM8400_R12MNBST 0x0010 /* R12MNBST */
-#define WM8400_R12MNBST_MASK 0x0010 /* R12MNBST */
-#define WM8400_R12MNBST_SHIFT 4 /* R12MNBST */
-#define WM8400_R12MNBST_WIDTH 1 /* R12MNBST */
-#define WM8400_RDBVOL_MASK 0x0007 /* RDBVOL - [2:0] */
-#define WM8400_RDBVOL_SHIFT 0 /* RDBVOL - [2:0] */
-#define WM8400_RDBVOL_WIDTH 3 /* RDBVOL - [2:0] */
-
-/*
- * R43 (0x2B) - Input Mixer5
- */
-#define WM8400_LI2BVOL_MASK 0x01C0 /* LI2BVOL - [8:6] */
-#define WM8400_LI2BVOL_SHIFT 6 /* LI2BVOL - [8:6] */
-#define WM8400_LI2BVOL_WIDTH 3 /* LI2BVOL - [8:6] */
-#define WM8400_LR4BVOL_MASK 0x0038 /* LR4BVOL - [5:3] */
-#define WM8400_LR4BVOL_SHIFT 3 /* LR4BVOL - [5:3] */
-#define WM8400_LR4BVOL_WIDTH 3 /* LR4BVOL - [5:3] */
-#define WM8400_LL4BVOL_MASK 0x0007 /* LL4BVOL - [2:0] */
-#define WM8400_LL4BVOL_SHIFT 0 /* LL4BVOL - [2:0] */
-#define WM8400_LL4BVOL_WIDTH 3 /* LL4BVOL - [2:0] */
-
-/*
- * R44 (0x2C) - Input Mixer6
- */
-#define WM8400_RI2BVOL_MASK 0x01C0 /* RI2BVOL - [8:6] */
-#define WM8400_RI2BVOL_SHIFT 6 /* RI2BVOL - [8:6] */
-#define WM8400_RI2BVOL_WIDTH 3 /* RI2BVOL - [8:6] */
-#define WM8400_RL4BVOL_MASK 0x0038 /* RL4BVOL - [5:3] */
-#define WM8400_RL4BVOL_SHIFT 3 /* RL4BVOL - [5:3] */
-#define WM8400_RL4BVOL_WIDTH 3 /* RL4BVOL - [5:3] */
-#define WM8400_RR4BVOL_MASK 0x0007 /* RR4BVOL - [2:0] */
-#define WM8400_RR4BVOL_SHIFT 0 /* RR4BVOL - [2:0] */
-#define WM8400_RR4BVOL_WIDTH 3 /* RR4BVOL - [2:0] */
-
-/*
- * R45 (0x2D) - Output Mixer1
- */
-#define WM8400_LRBLO 0x0080 /* LRBLO */
-#define WM8400_LRBLO_MASK 0x0080 /* LRBLO */
-#define WM8400_LRBLO_SHIFT 7 /* LRBLO */
-#define WM8400_LRBLO_WIDTH 1 /* LRBLO */
-#define WM8400_LLBLO 0x0040 /* LLBLO */
-#define WM8400_LLBLO_MASK 0x0040 /* LLBLO */
-#define WM8400_LLBLO_SHIFT 6 /* LLBLO */
-#define WM8400_LLBLO_WIDTH 1 /* LLBLO */
-#define WM8400_LRI3LO 0x0020 /* LRI3LO */
-#define WM8400_LRI3LO_MASK 0x0020 /* LRI3LO */
-#define WM8400_LRI3LO_SHIFT 5 /* LRI3LO */
-#define WM8400_LRI3LO_WIDTH 1 /* LRI3LO */
-#define WM8400_LLI3LO 0x0010 /* LLI3LO */
-#define WM8400_LLI3LO_MASK 0x0010 /* LLI3LO */
-#define WM8400_LLI3LO_SHIFT 4 /* LLI3LO */
-#define WM8400_LLI3LO_WIDTH 1 /* LLI3LO */
-#define WM8400_LR12LO 0x0008 /* LR12LO */
-#define WM8400_LR12LO_MASK 0x0008 /* LR12LO */
-#define WM8400_LR12LO_SHIFT 3 /* LR12LO */
-#define WM8400_LR12LO_WIDTH 1 /* LR12LO */
-#define WM8400_LL12LO 0x0004 /* LL12LO */
-#define WM8400_LL12LO_MASK 0x0004 /* LL12LO */
-#define WM8400_LL12LO_SHIFT 2 /* LL12LO */
-#define WM8400_LL12LO_WIDTH 1 /* LL12LO */
-#define WM8400_LDLO 0x0001 /* LDLO */
-#define WM8400_LDLO_MASK 0x0001 /* LDLO */
-#define WM8400_LDLO_SHIFT 0 /* LDLO */
-#define WM8400_LDLO_WIDTH 1 /* LDLO */
-
-/*
- * R46 (0x2E) - Output Mixer2
- */
-#define WM8400_RLBRO 0x0080 /* RLBRO */
-#define WM8400_RLBRO_MASK 0x0080 /* RLBRO */
-#define WM8400_RLBRO_SHIFT 7 /* RLBRO */
-#define WM8400_RLBRO_WIDTH 1 /* RLBRO */
-#define WM8400_RRBRO 0x0040 /* RRBRO */
-#define WM8400_RRBRO_MASK 0x0040 /* RRBRO */
-#define WM8400_RRBRO_SHIFT 6 /* RRBRO */
-#define WM8400_RRBRO_WIDTH 1 /* RRBRO */
-#define WM8400_RLI3RO 0x0020 /* RLI3RO */
-#define WM8400_RLI3RO_MASK 0x0020 /* RLI3RO */
-#define WM8400_RLI3RO_SHIFT 5 /* RLI3RO */
-#define WM8400_RLI3RO_WIDTH 1 /* RLI3RO */
-#define WM8400_RRI3RO 0x0010 /* RRI3RO */
-#define WM8400_RRI3RO_MASK 0x0010 /* RRI3RO */
-#define WM8400_RRI3RO_SHIFT 4 /* RRI3RO */
-#define WM8400_RRI3RO_WIDTH 1 /* RRI3RO */
-#define WM8400_RL12RO 0x0008 /* RL12RO */
-#define WM8400_RL12RO_MASK 0x0008 /* RL12RO */
-#define WM8400_RL12RO_SHIFT 3 /* RL12RO */
-#define WM8400_RL12RO_WIDTH 1 /* RL12RO */
-#define WM8400_RR12RO 0x0004 /* RR12RO */
-#define WM8400_RR12RO_MASK 0x0004 /* RR12RO */
-#define WM8400_RR12RO_SHIFT 2 /* RR12RO */
-#define WM8400_RR12RO_WIDTH 1 /* RR12RO */
-#define WM8400_RDRO 0x0001 /* RDRO */
-#define WM8400_RDRO_MASK 0x0001 /* RDRO */
-#define WM8400_RDRO_SHIFT 0 /* RDRO */
-#define WM8400_RDRO_WIDTH 1 /* RDRO */
-
-/*
- * R47 (0x2F) - Output Mixer3
- */
-#define WM8400_LLI3LOVOL_MASK 0x01C0 /* LLI3LOVOL - [8:6] */
-#define WM8400_LLI3LOVOL_SHIFT 6 /* LLI3LOVOL - [8:6] */
-#define WM8400_LLI3LOVOL_WIDTH 3 /* LLI3LOVOL - [8:6] */
-#define WM8400_LR12LOVOL_MASK 0x0038 /* LR12LOVOL - [5:3] */
-#define WM8400_LR12LOVOL_SHIFT 3 /* LR12LOVOL - [5:3] */
-#define WM8400_LR12LOVOL_WIDTH 3 /* LR12LOVOL - [5:3] */
-#define WM8400_LL12LOVOL_MASK 0x0007 /* LL12LOVOL - [2:0] */
-#define WM8400_LL12LOVOL_SHIFT 0 /* LL12LOVOL - [2:0] */
-#define WM8400_LL12LOVOL_WIDTH 3 /* LL12LOVOL - [2:0] */
-
-/*
- * R48 (0x30) - Output Mixer4
- */
-#define WM8400_RRI3ROVOL_MASK 0x01C0 /* RRI3ROVOL - [8:6] */
-#define WM8400_RRI3ROVOL_SHIFT 6 /* RRI3ROVOL - [8:6] */
-#define WM8400_RRI3ROVOL_WIDTH 3 /* RRI3ROVOL - [8:6] */
-#define WM8400_RL12ROVOL_MASK 0x0038 /* RL12ROVOL - [5:3] */
-#define WM8400_RL12ROVOL_SHIFT 3 /* RL12ROVOL - [5:3] */
-#define WM8400_RL12ROVOL_WIDTH 3 /* RL12ROVOL - [5:3] */
-#define WM8400_RR12ROVOL_MASK 0x0007 /* RR12ROVOL - [2:0] */
-#define WM8400_RR12ROVOL_SHIFT 0 /* RR12ROVOL - [2:0] */
-#define WM8400_RR12ROVOL_WIDTH 3 /* RR12ROVOL - [2:0] */
-
-/*
- * R49 (0x31) - Output Mixer5
- */
-#define WM8400_LRI3LOVOL_MASK 0x01C0 /* LRI3LOVOL - [8:6] */
-#define WM8400_LRI3LOVOL_SHIFT 6 /* LRI3LOVOL - [8:6] */
-#define WM8400_LRI3LOVOL_WIDTH 3 /* LRI3LOVOL - [8:6] */
-#define WM8400_LRBLOVOL_MASK 0x0038 /* LRBLOVOL - [5:3] */
-#define WM8400_LRBLOVOL_SHIFT 3 /* LRBLOVOL - [5:3] */
-#define WM8400_LRBLOVOL_WIDTH 3 /* LRBLOVOL - [5:3] */
-#define WM8400_LLBLOVOL_MASK 0x0007 /* LLBLOVOL - [2:0] */
-#define WM8400_LLBLOVOL_SHIFT 0 /* LLBLOVOL - [2:0] */
-#define WM8400_LLBLOVOL_WIDTH 3 /* LLBLOVOL - [2:0] */
-
-/*
- * R50 (0x32) - Output Mixer6
- */
-#define WM8400_RLI3ROVOL_MASK 0x01C0 /* RLI3ROVOL - [8:6] */
-#define WM8400_RLI3ROVOL_SHIFT 6 /* RLI3ROVOL - [8:6] */
-#define WM8400_RLI3ROVOL_WIDTH 3 /* RLI3ROVOL - [8:6] */
-#define WM8400_RLBROVOL_MASK 0x0038 /* RLBROVOL - [5:3] */
-#define WM8400_RLBROVOL_SHIFT 3 /* RLBROVOL - [5:3] */
-#define WM8400_RLBROVOL_WIDTH 3 /* RLBROVOL - [5:3] */
-#define WM8400_RRBROVOL_MASK 0x0007 /* RRBROVOL - [2:0] */
-#define WM8400_RRBROVOL_SHIFT 0 /* RRBROVOL - [2:0] */
-#define WM8400_RRBROVOL_WIDTH 3 /* RRBROVOL - [2:0] */
-
-/*
- * R51 (0x33) - Out3/4 Mixer
- */
-#define WM8400_VSEL_MASK 0x0180 /* VSEL - [8:7] */
-#define WM8400_VSEL_SHIFT 7 /* VSEL - [8:7] */
-#define WM8400_VSEL_WIDTH 2 /* VSEL - [8:7] */
-#define WM8400_LI4O3 0x0020 /* LI4O3 */
-#define WM8400_LI4O3_MASK 0x0020 /* LI4O3 */
-#define WM8400_LI4O3_SHIFT 5 /* LI4O3 */
-#define WM8400_LI4O3_WIDTH 1 /* LI4O3 */
-#define WM8400_LPGAO3 0x0010 /* LPGAO3 */
-#define WM8400_LPGAO3_MASK 0x0010 /* LPGAO3 */
-#define WM8400_LPGAO3_SHIFT 4 /* LPGAO3 */
-#define WM8400_LPGAO3_WIDTH 1 /* LPGAO3 */
-#define WM8400_RI4O4 0x0002 /* RI4O4 */
-#define WM8400_RI4O4_MASK 0x0002 /* RI4O4 */
-#define WM8400_RI4O4_SHIFT 1 /* RI4O4 */
-#define WM8400_RI4O4_WIDTH 1 /* RI4O4 */
-#define WM8400_RPGAO4 0x0001 /* RPGAO4 */
-#define WM8400_RPGAO4_MASK 0x0001 /* RPGAO4 */
-#define WM8400_RPGAO4_SHIFT 0 /* RPGAO4 */
-#define WM8400_RPGAO4_WIDTH 1 /* RPGAO4 */
-
-/*
- * R52 (0x34) - Line Mixer1
- */
-#define WM8400_LLOPGALON 0x0040 /* LLOPGALON */
-#define WM8400_LLOPGALON_MASK 0x0040 /* LLOPGALON */
-#define WM8400_LLOPGALON_SHIFT 6 /* LLOPGALON */
-#define WM8400_LLOPGALON_WIDTH 1 /* LLOPGALON */
-#define WM8400_LROPGALON 0x0020 /* LROPGALON */
-#define WM8400_LROPGALON_MASK 0x0020 /* LROPGALON */
-#define WM8400_LROPGALON_SHIFT 5 /* LROPGALON */
-#define WM8400_LROPGALON_WIDTH 1 /* LROPGALON */
-#define WM8400_LOPLON 0x0010 /* LOPLON */
-#define WM8400_LOPLON_MASK 0x0010 /* LOPLON */
-#define WM8400_LOPLON_SHIFT 4 /* LOPLON */
-#define WM8400_LOPLON_WIDTH 1 /* LOPLON */
-#define WM8400_LR12LOP 0x0004 /* LR12LOP */
-#define WM8400_LR12LOP_MASK 0x0004 /* LR12LOP */
-#define WM8400_LR12LOP_SHIFT 2 /* LR12LOP */
-#define WM8400_LR12LOP_WIDTH 1 /* LR12LOP */
-#define WM8400_LL12LOP 0x0002 /* LL12LOP */
-#define WM8400_LL12LOP_MASK 0x0002 /* LL12LOP */
-#define WM8400_LL12LOP_SHIFT 1 /* LL12LOP */
-#define WM8400_LL12LOP_WIDTH 1 /* LL12LOP */
-#define WM8400_LLOPGALOP 0x0001 /* LLOPGALOP */
-#define WM8400_LLOPGALOP_MASK 0x0001 /* LLOPGALOP */
-#define WM8400_LLOPGALOP_SHIFT 0 /* LLOPGALOP */
-#define WM8400_LLOPGALOP_WIDTH 1 /* LLOPGALOP */
-
-/*
- * R53 (0x35) - Line Mixer2
- */
-#define WM8400_RROPGARON 0x0040 /* RROPGARON */
-#define WM8400_RROPGARON_MASK 0x0040 /* RROPGARON */
-#define WM8400_RROPGARON_SHIFT 6 /* RROPGARON */
-#define WM8400_RROPGARON_WIDTH 1 /* RROPGARON */
-#define WM8400_RLOPGARON 0x0020 /* RLOPGARON */
-#define WM8400_RLOPGARON_MASK 0x0020 /* RLOPGARON */
-#define WM8400_RLOPGARON_SHIFT 5 /* RLOPGARON */
-#define WM8400_RLOPGARON_WIDTH 1 /* RLOPGARON */
-#define WM8400_ROPRON 0x0010 /* ROPRON */
-#define WM8400_ROPRON_MASK 0x0010 /* ROPRON */
-#define WM8400_ROPRON_SHIFT 4 /* ROPRON */
-#define WM8400_ROPRON_WIDTH 1 /* ROPRON */
-#define WM8400_RL12ROP 0x0004 /* RL12ROP */
-#define WM8400_RL12ROP_MASK 0x0004 /* RL12ROP */
-#define WM8400_RL12ROP_SHIFT 2 /* RL12ROP */
-#define WM8400_RL12ROP_WIDTH 1 /* RL12ROP */
-#define WM8400_RR12ROP 0x0002 /* RR12ROP */
-#define WM8400_RR12ROP_MASK 0x0002 /* RR12ROP */
-#define WM8400_RR12ROP_SHIFT 1 /* RR12ROP */
-#define WM8400_RR12ROP_WIDTH 1 /* RR12ROP */
-#define WM8400_RROPGAROP 0x0001 /* RROPGAROP */
-#define WM8400_RROPGAROP_MASK 0x0001 /* RROPGAROP */
-#define WM8400_RROPGAROP_SHIFT 0 /* RROPGAROP */
-#define WM8400_RROPGAROP_WIDTH 1 /* RROPGAROP */
-
-/*
- * R54 (0x36) - Speaker Mixer
- */
-#define WM8400_LB2SPK 0x0080 /* LB2SPK */
-#define WM8400_LB2SPK_MASK 0x0080 /* LB2SPK */
-#define WM8400_LB2SPK_SHIFT 7 /* LB2SPK */
-#define WM8400_LB2SPK_WIDTH 1 /* LB2SPK */
-#define WM8400_RB2SPK 0x0040 /* RB2SPK */
-#define WM8400_RB2SPK_MASK 0x0040 /* RB2SPK */
-#define WM8400_RB2SPK_SHIFT 6 /* RB2SPK */
-#define WM8400_RB2SPK_WIDTH 1 /* RB2SPK */
-#define WM8400_LI2SPK 0x0020 /* LI2SPK */
-#define WM8400_LI2SPK_MASK 0x0020 /* LI2SPK */
-#define WM8400_LI2SPK_SHIFT 5 /* LI2SPK */
-#define WM8400_LI2SPK_WIDTH 1 /* LI2SPK */
-#define WM8400_RI2SPK 0x0010 /* RI2SPK */
-#define WM8400_RI2SPK_MASK 0x0010 /* RI2SPK */
-#define WM8400_RI2SPK_SHIFT 4 /* RI2SPK */
-#define WM8400_RI2SPK_WIDTH 1 /* RI2SPK */
-#define WM8400_LOPGASPK 0x0008 /* LOPGASPK */
-#define WM8400_LOPGASPK_MASK 0x0008 /* LOPGASPK */
-#define WM8400_LOPGASPK_SHIFT 3 /* LOPGASPK */
-#define WM8400_LOPGASPK_WIDTH 1 /* LOPGASPK */
-#define WM8400_ROPGASPK 0x0004 /* ROPGASPK */
-#define WM8400_ROPGASPK_MASK 0x0004 /* ROPGASPK */
-#define WM8400_ROPGASPK_SHIFT 2 /* ROPGASPK */
-#define WM8400_ROPGASPK_WIDTH 1 /* ROPGASPK */
-#define WM8400_LDSPK 0x0002 /* LDSPK */
-#define WM8400_LDSPK_MASK 0x0002 /* LDSPK */
-#define WM8400_LDSPK_SHIFT 1 /* LDSPK */
-#define WM8400_LDSPK_WIDTH 1 /* LDSPK */
-#define WM8400_RDSPK 0x0001 /* RDSPK */
-#define WM8400_RDSPK_MASK 0x0001 /* RDSPK */
-#define WM8400_RDSPK_SHIFT 0 /* RDSPK */
-#define WM8400_RDSPK_WIDTH 1 /* RDSPK */
-
-/*
- * R55 (0x37) - Additional Control
- */
-#define WM8400_VROI 0x0001 /* VROI */
-#define WM8400_VROI_MASK 0x0001 /* VROI */
-#define WM8400_VROI_SHIFT 0 /* VROI */
-#define WM8400_VROI_WIDTH 1 /* VROI */
-
-/*
- * R56 (0x38) - AntiPOP1
- */
-#define WM8400_DIS_LLINE 0x0020 /* DIS_LLINE */
-#define WM8400_DIS_LLINE_MASK 0x0020 /* DIS_LLINE */
-#define WM8400_DIS_LLINE_SHIFT 5 /* DIS_LLINE */
-#define WM8400_DIS_LLINE_WIDTH 1 /* DIS_LLINE */
-#define WM8400_DIS_RLINE 0x0010 /* DIS_RLINE */
-#define WM8400_DIS_RLINE_MASK 0x0010 /* DIS_RLINE */
-#define WM8400_DIS_RLINE_SHIFT 4 /* DIS_RLINE */
-#define WM8400_DIS_RLINE_WIDTH 1 /* DIS_RLINE */
-#define WM8400_DIS_OUT3 0x0008 /* DIS_OUT3 */
-#define WM8400_DIS_OUT3_MASK 0x0008 /* DIS_OUT3 */
-#define WM8400_DIS_OUT3_SHIFT 3 /* DIS_OUT3 */
-#define WM8400_DIS_OUT3_WIDTH 1 /* DIS_OUT3 */
-#define WM8400_DIS_OUT4 0x0004 /* DIS_OUT4 */
-#define WM8400_DIS_OUT4_MASK 0x0004 /* DIS_OUT4 */
-#define WM8400_DIS_OUT4_SHIFT 2 /* DIS_OUT4 */
-#define WM8400_DIS_OUT4_WIDTH 1 /* DIS_OUT4 */
-#define WM8400_DIS_LOUT 0x0002 /* DIS_LOUT */
-#define WM8400_DIS_LOUT_MASK 0x0002 /* DIS_LOUT */
-#define WM8400_DIS_LOUT_SHIFT 1 /* DIS_LOUT */
-#define WM8400_DIS_LOUT_WIDTH 1 /* DIS_LOUT */
-#define WM8400_DIS_ROUT 0x0001 /* DIS_ROUT */
-#define WM8400_DIS_ROUT_MASK 0x0001 /* DIS_ROUT */
-#define WM8400_DIS_ROUT_SHIFT 0 /* DIS_ROUT */
-#define WM8400_DIS_ROUT_WIDTH 1 /* DIS_ROUT */
-
-/*
- * R57 (0x39) - AntiPOP2
- */
-#define WM8400_SOFTST 0x0040 /* SOFTST */
-#define WM8400_SOFTST_MASK 0x0040 /* SOFTST */
-#define WM8400_SOFTST_SHIFT 6 /* SOFTST */
-#define WM8400_SOFTST_WIDTH 1 /* SOFTST */
-#define WM8400_BUFIOEN 0x0008 /* BUFIOEN */
-#define WM8400_BUFIOEN_MASK 0x0008 /* BUFIOEN */
-#define WM8400_BUFIOEN_SHIFT 3 /* BUFIOEN */
-#define WM8400_BUFIOEN_WIDTH 1 /* BUFIOEN */
-#define WM8400_BUFDCOPEN 0x0004 /* BUFDCOPEN */
-#define WM8400_BUFDCOPEN_MASK 0x0004 /* BUFDCOPEN */
-#define WM8400_BUFDCOPEN_SHIFT 2 /* BUFDCOPEN */
-#define WM8400_BUFDCOPEN_WIDTH 1 /* BUFDCOPEN */
-#define WM8400_POBCTRL 0x0002 /* POBCTRL */
-#define WM8400_POBCTRL_MASK 0x0002 /* POBCTRL */
-#define WM8400_POBCTRL_SHIFT 1 /* POBCTRL */
-#define WM8400_POBCTRL_WIDTH 1 /* POBCTRL */
-#define WM8400_VMIDTOG 0x0001 /* VMIDTOG */
-#define WM8400_VMIDTOG_MASK 0x0001 /* VMIDTOG */
-#define WM8400_VMIDTOG_SHIFT 0 /* VMIDTOG */
-#define WM8400_VMIDTOG_WIDTH 1 /* VMIDTOG */
-
-/*
- * R58 (0x3A) - MICBIAS
- */
-#define WM8400_MCDSCTH_MASK 0x00C0 /* MCDSCTH - [7:6] */
-#define WM8400_MCDSCTH_SHIFT 6 /* MCDSCTH - [7:6] */
-#define WM8400_MCDSCTH_WIDTH 2 /* MCDSCTH - [7:6] */
-#define WM8400_MCDTHR_MASK 0x0038 /* MCDTHR - [5:3] */
-#define WM8400_MCDTHR_SHIFT 3 /* MCDTHR - [5:3] */
-#define WM8400_MCDTHR_WIDTH 3 /* MCDTHR - [5:3] */
-#define WM8400_MCD 0x0004 /* MCD */
-#define WM8400_MCD_MASK 0x0004 /* MCD */
-#define WM8400_MCD_SHIFT 2 /* MCD */
-#define WM8400_MCD_WIDTH 1 /* MCD */
-#define WM8400_MBSEL 0x0001 /* MBSEL */
-#define WM8400_MBSEL_MASK 0x0001 /* MBSEL */
-#define WM8400_MBSEL_SHIFT 0 /* MBSEL */
-#define WM8400_MBSEL_WIDTH 1 /* MBSEL */
-
-/*
- * R60 (0x3C) - FLL Control 1
- */
-#define WM8400_FLL_REF_FREQ 0x1000 /* FLL_REF_FREQ */
-#define WM8400_FLL_REF_FREQ_MASK 0x1000 /* FLL_REF_FREQ */
-#define WM8400_FLL_REF_FREQ_SHIFT 12 /* FLL_REF_FREQ */
-#define WM8400_FLL_REF_FREQ_WIDTH 1 /* FLL_REF_FREQ */
-#define WM8400_FLL_CLK_SRC_MASK 0x0C00 /* FLL_CLK_SRC - [11:10] */
-#define WM8400_FLL_CLK_SRC_SHIFT 10 /* FLL_CLK_SRC - [11:10] */
-#define WM8400_FLL_CLK_SRC_WIDTH 2 /* FLL_CLK_SRC - [11:10] */
-#define WM8400_FLL_FRAC 0x0200 /* FLL_FRAC */
-#define WM8400_FLL_FRAC_MASK 0x0200 /* FLL_FRAC */
-#define WM8400_FLL_FRAC_SHIFT 9 /* FLL_FRAC */
-#define WM8400_FLL_FRAC_WIDTH 1 /* FLL_FRAC */
-#define WM8400_FLL_OSC_ENA 0x0100 /* FLL_OSC_ENA */
-#define WM8400_FLL_OSC_ENA_MASK 0x0100 /* FLL_OSC_ENA */
-#define WM8400_FLL_OSC_ENA_SHIFT 8 /* FLL_OSC_ENA */
-#define WM8400_FLL_OSC_ENA_WIDTH 1 /* FLL_OSC_ENA */
-#define WM8400_FLL_CTRL_RATE_MASK 0x00E0 /* FLL_CTRL_RATE - [7:5] */
-#define WM8400_FLL_CTRL_RATE_SHIFT 5 /* FLL_CTRL_RATE - [7:5] */
-#define WM8400_FLL_CTRL_RATE_WIDTH 3 /* FLL_CTRL_RATE - [7:5] */
-#define WM8400_FLL_FRATIO_MASK 0x001F /* FLL_FRATIO - [4:0] */
-#define WM8400_FLL_FRATIO_SHIFT 0 /* FLL_FRATIO - [4:0] */
-#define WM8400_FLL_FRATIO_WIDTH 5 /* FLL_FRATIO - [4:0] */
-
-/*
- * R61 (0x3D) - FLL Control 2
- */
-#define WM8400_FLL_K_MASK 0xFFFF /* FLL_K - [15:0] */
-#define WM8400_FLL_K_SHIFT 0 /* FLL_K - [15:0] */
-#define WM8400_FLL_K_WIDTH 16 /* FLL_K - [15:0] */
-
-/*
- * R62 (0x3E) - FLL Control 3
- */
-#define WM8400_FLL_N_MASK 0x03FF /* FLL_N - [9:0] */
-#define WM8400_FLL_N_SHIFT 0 /* FLL_N - [9:0] */
-#define WM8400_FLL_N_WIDTH 10 /* FLL_N - [9:0] */
-
-/*
- * R63 (0x3F) - FLL Control 4
- */
-#define WM8400_FLL_TRK_GAIN_MASK 0x0078 /* FLL_TRK_GAIN - [6:3] */
-#define WM8400_FLL_TRK_GAIN_SHIFT 3 /* FLL_TRK_GAIN - [6:3] */
-#define WM8400_FLL_TRK_GAIN_WIDTH 4 /* FLL_TRK_GAIN - [6:3] */
-#define WM8400_FLL_OUTDIV_MASK 0x0007 /* FLL_OUTDIV - [2:0] */
-#define WM8400_FLL_OUTDIV_SHIFT 0 /* FLL_OUTDIV - [2:0] */
-#define WM8400_FLL_OUTDIV_WIDTH 3 /* FLL_OUTDIV - [2:0] */
-
-struct wm8400;
-void wm8400_reset_codec_reg_cache(struct wm8400 *wm8400);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/wm8400-private.h b/ANDROID_3.4.5/include/linux/mfd/wm8400-private.h
deleted file mode 100644
index 0147b696..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/wm8400-private.h
+++ /dev/null
@@ -1,935 +0,0 @@
-/*
- * wm8400 private definitions.
- *
- * Copyright 2008 Wolfson Microelectronics plc
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef __LINUX_MFD_WM8400_PRIV_H
-#define __LINUX_MFD_WM8400_PRIV_H
-
-#include <linux/mfd/wm8400.h>
-#include <linux/mutex.h>
-#include <linux/platform_device.h>
-
-struct regmap;
-
-#define WM8400_REGISTER_COUNT 0x55
-
-struct wm8400 {
- struct device *dev;
-
- struct mutex io_lock;
- struct regmap *regmap;
-
- u16 reg_cache[WM8400_REGISTER_COUNT];
-
- struct platform_device regulators[6];
-};
-
-/*
- * Register values.
- */
-#define WM8400_RESET_ID 0x00
-#define WM8400_ID 0x01
-#define WM8400_POWER_MANAGEMENT_1 0x02
-#define WM8400_POWER_MANAGEMENT_2 0x03
-#define WM8400_POWER_MANAGEMENT_3 0x04
-#define WM8400_AUDIO_INTERFACE_1 0x05
-#define WM8400_AUDIO_INTERFACE_2 0x06
-#define WM8400_CLOCKING_1 0x07
-#define WM8400_CLOCKING_2 0x08
-#define WM8400_AUDIO_INTERFACE_3 0x09
-#define WM8400_AUDIO_INTERFACE_4 0x0A
-#define WM8400_DAC_CTRL 0x0B
-#define WM8400_LEFT_DAC_DIGITAL_VOLUME 0x0C
-#define WM8400_RIGHT_DAC_DIGITAL_VOLUME 0x0D
-#define WM8400_DIGITAL_SIDE_TONE 0x0E
-#define WM8400_ADC_CTRL 0x0F
-#define WM8400_LEFT_ADC_DIGITAL_VOLUME 0x10
-#define WM8400_RIGHT_ADC_DIGITAL_VOLUME 0x11
-#define WM8400_GPIO_CTRL_1 0x12
-#define WM8400_GPIO1_GPIO2 0x13
-#define WM8400_GPIO3_GPIO4 0x14
-#define WM8400_GPIO5_GPIO6 0x15
-#define WM8400_GPIOCTRL_2 0x16
-#define WM8400_GPIO_POL 0x17
-#define WM8400_LEFT_LINE_INPUT_1_2_VOLUME 0x18
-#define WM8400_LEFT_LINE_INPUT_3_4_VOLUME 0x19
-#define WM8400_RIGHT_LINE_INPUT_1_2_VOLUME 0x1A
-#define WM8400_RIGHT_LINE_INPUT_3_4_VOLUME 0x1B
-#define WM8400_LEFT_OUTPUT_VOLUME 0x1C
-#define WM8400_RIGHT_OUTPUT_VOLUME 0x1D
-#define WM8400_LINE_OUTPUTS_VOLUME 0x1E
-#define WM8400_OUT3_4_VOLUME 0x1F
-#define WM8400_LEFT_OPGA_VOLUME 0x20
-#define WM8400_RIGHT_OPGA_VOLUME 0x21
-#define WM8400_SPEAKER_VOLUME 0x22
-#define WM8400_CLASSD1 0x23
-#define WM8400_CLASSD3 0x25
-#define WM8400_INPUT_MIXER1 0x27
-#define WM8400_INPUT_MIXER2 0x28
-#define WM8400_INPUT_MIXER3 0x29
-#define WM8400_INPUT_MIXER4 0x2A
-#define WM8400_INPUT_MIXER5 0x2B
-#define WM8400_INPUT_MIXER6 0x2C
-#define WM8400_OUTPUT_MIXER1 0x2D
-#define WM8400_OUTPUT_MIXER2 0x2E
-#define WM8400_OUTPUT_MIXER3 0x2F
-#define WM8400_OUTPUT_MIXER4 0x30
-#define WM8400_OUTPUT_MIXER5 0x31
-#define WM8400_OUTPUT_MIXER6 0x32
-#define WM8400_OUT3_4_MIXER 0x33
-#define WM8400_LINE_MIXER1 0x34
-#define WM8400_LINE_MIXER2 0x35
-#define WM8400_SPEAKER_MIXER 0x36
-#define WM8400_ADDITIONAL_CONTROL 0x37
-#define WM8400_ANTIPOP1 0x38
-#define WM8400_ANTIPOP2 0x39
-#define WM8400_MICBIAS 0x3A
-#define WM8400_FLL_CONTROL_1 0x3C
-#define WM8400_FLL_CONTROL_2 0x3D
-#define WM8400_FLL_CONTROL_3 0x3E
-#define WM8400_FLL_CONTROL_4 0x3F
-#define WM8400_LDO1_CONTROL 0x41
-#define WM8400_LDO2_CONTROL 0x42
-#define WM8400_LDO3_CONTROL 0x43
-#define WM8400_LDO4_CONTROL 0x44
-#define WM8400_DCDC1_CONTROL_1 0x46
-#define WM8400_DCDC1_CONTROL_2 0x47
-#define WM8400_DCDC2_CONTROL_1 0x48
-#define WM8400_DCDC2_CONTROL_2 0x49
-#define WM8400_INTERFACE 0x4B
-#define WM8400_PM_GENERAL 0x4C
-#define WM8400_PM_SHUTDOWN_CONTROL 0x4E
-#define WM8400_INTERRUPT_STATUS_1 0x4F
-#define WM8400_INTERRUPT_STATUS_1_MASK 0x50
-#define WM8400_INTERRUPT_LEVELS 0x51
-#define WM8400_SHUTDOWN_REASON 0x52
-#define WM8400_LINE_CIRCUITS 0x54
-
-/*
- * Field Definitions.
- */
-
-/*
- * R0 (0x00) - Reset/ID
- */
-#define WM8400_SW_RESET_CHIP_ID_MASK 0xFFFF /* SW_RESET/CHIP_ID - [15:0] */
-#define WM8400_SW_RESET_CHIP_ID_SHIFT 0 /* SW_RESET/CHIP_ID - [15:0] */
-#define WM8400_SW_RESET_CHIP_ID_WIDTH 16 /* SW_RESET/CHIP_ID - [15:0] */
-
-/*
- * R1 (0x01) - ID
- */
-#define WM8400_CHIP_REV_MASK 0x7000 /* CHIP_REV - [14:12] */
-#define WM8400_CHIP_REV_SHIFT 12 /* CHIP_REV - [14:12] */
-#define WM8400_CHIP_REV_WIDTH 3 /* CHIP_REV - [14:12] */
-
-/*
- * R18 (0x12) - GPIO CTRL 1
- */
-#define WM8400_IRQ 0x1000 /* IRQ */
-#define WM8400_IRQ_MASK 0x1000 /* IRQ */
-#define WM8400_IRQ_SHIFT 12 /* IRQ */
-#define WM8400_IRQ_WIDTH 1 /* IRQ */
-#define WM8400_TEMPOK 0x0800 /* TEMPOK */
-#define WM8400_TEMPOK_MASK 0x0800 /* TEMPOK */
-#define WM8400_TEMPOK_SHIFT 11 /* TEMPOK */
-#define WM8400_TEMPOK_WIDTH 1 /* TEMPOK */
-#define WM8400_MIC1SHRT 0x0400 /* MIC1SHRT */
-#define WM8400_MIC1SHRT_MASK 0x0400 /* MIC1SHRT */
-#define WM8400_MIC1SHRT_SHIFT 10 /* MIC1SHRT */
-#define WM8400_MIC1SHRT_WIDTH 1 /* MIC1SHRT */
-#define WM8400_MIC1DET 0x0200 /* MIC1DET */
-#define WM8400_MIC1DET_MASK 0x0200 /* MIC1DET */
-#define WM8400_MIC1DET_SHIFT 9 /* MIC1DET */
-#define WM8400_MIC1DET_WIDTH 1 /* MIC1DET */
-#define WM8400_FLL_LCK 0x0100 /* FLL_LCK */
-#define WM8400_FLL_LCK_MASK 0x0100 /* FLL_LCK */
-#define WM8400_FLL_LCK_SHIFT 8 /* FLL_LCK */
-#define WM8400_FLL_LCK_WIDTH 1 /* FLL_LCK */
-#define WM8400_GPIO_STATUS_MASK 0x00FF /* GPIO_STATUS - [7:0] */
-#define WM8400_GPIO_STATUS_SHIFT 0 /* GPIO_STATUS - [7:0] */
-#define WM8400_GPIO_STATUS_WIDTH 8 /* GPIO_STATUS - [7:0] */
-
-/*
- * R19 (0x13) - GPIO1 & GPIO2
- */
-#define WM8400_GPIO2_DEB_ENA 0x8000 /* GPIO2_DEB_ENA */
-#define WM8400_GPIO2_DEB_ENA_MASK 0x8000 /* GPIO2_DEB_ENA */
-#define WM8400_GPIO2_DEB_ENA_SHIFT 15 /* GPIO2_DEB_ENA */
-#define WM8400_GPIO2_DEB_ENA_WIDTH 1 /* GPIO2_DEB_ENA */
-#define WM8400_GPIO2_IRQ_ENA 0x4000 /* GPIO2_IRQ_ENA */
-#define WM8400_GPIO2_IRQ_ENA_MASK 0x4000 /* GPIO2_IRQ_ENA */
-#define WM8400_GPIO2_IRQ_ENA_SHIFT 14 /* GPIO2_IRQ_ENA */
-#define WM8400_GPIO2_IRQ_ENA_WIDTH 1 /* GPIO2_IRQ_ENA */
-#define WM8400_GPIO2_PU 0x2000 /* GPIO2_PU */
-#define WM8400_GPIO2_PU_MASK 0x2000 /* GPIO2_PU */
-#define WM8400_GPIO2_PU_SHIFT 13 /* GPIO2_PU */
-#define WM8400_GPIO2_PU_WIDTH 1 /* GPIO2_PU */
-#define WM8400_GPIO2_PD 0x1000 /* GPIO2_PD */
-#define WM8400_GPIO2_PD_MASK 0x1000 /* GPIO2_PD */
-#define WM8400_GPIO2_PD_SHIFT 12 /* GPIO2_PD */
-#define WM8400_GPIO2_PD_WIDTH 1 /* GPIO2_PD */
-#define WM8400_GPIO2_SEL_MASK 0x0F00 /* GPIO2_SEL - [11:8] */
-#define WM8400_GPIO2_SEL_SHIFT 8 /* GPIO2_SEL - [11:8] */
-#define WM8400_GPIO2_SEL_WIDTH 4 /* GPIO2_SEL - [11:8] */
-#define WM8400_GPIO1_DEB_ENA 0x0080 /* GPIO1_DEB_ENA */
-#define WM8400_GPIO1_DEB_ENA_MASK 0x0080 /* GPIO1_DEB_ENA */
-#define WM8400_GPIO1_DEB_ENA_SHIFT 7 /* GPIO1_DEB_ENA */
-#define WM8400_GPIO1_DEB_ENA_WIDTH 1 /* GPIO1_DEB_ENA */
-#define WM8400_GPIO1_IRQ_ENA 0x0040 /* GPIO1_IRQ_ENA */
-#define WM8400_GPIO1_IRQ_ENA_MASK 0x0040 /* GPIO1_IRQ_ENA */
-#define WM8400_GPIO1_IRQ_ENA_SHIFT 6 /* GPIO1_IRQ_ENA */
-#define WM8400_GPIO1_IRQ_ENA_WIDTH 1 /* GPIO1_IRQ_ENA */
-#define WM8400_GPIO1_PU 0x0020 /* GPIO1_PU */
-#define WM8400_GPIO1_PU_MASK 0x0020 /* GPIO1_PU */
-#define WM8400_GPIO1_PU_SHIFT 5 /* GPIO1_PU */
-#define WM8400_GPIO1_PU_WIDTH 1 /* GPIO1_PU */
-#define WM8400_GPIO1_PD 0x0010 /* GPIO1_PD */
-#define WM8400_GPIO1_PD_MASK 0x0010 /* GPIO1_PD */
-#define WM8400_GPIO1_PD_SHIFT 4 /* GPIO1_PD */
-#define WM8400_GPIO1_PD_WIDTH 1 /* GPIO1_PD */
-#define WM8400_GPIO1_SEL_MASK 0x000F /* GPIO1_SEL - [3:0] */
-#define WM8400_GPIO1_SEL_SHIFT 0 /* GPIO1_SEL - [3:0] */
-#define WM8400_GPIO1_SEL_WIDTH 4 /* GPIO1_SEL - [3:0] */
-
-/*
- * R20 (0x14) - GPIO3 & GPIO4
- */
-#define WM8400_GPIO4_DEB_ENA 0x8000 /* GPIO4_DEB_ENA */
-#define WM8400_GPIO4_DEB_ENA_MASK 0x8000 /* GPIO4_DEB_ENA */
-#define WM8400_GPIO4_DEB_ENA_SHIFT 15 /* GPIO4_DEB_ENA */
-#define WM8400_GPIO4_DEB_ENA_WIDTH 1 /* GPIO4_DEB_ENA */
-#define WM8400_GPIO4_IRQ_ENA 0x4000 /* GPIO4_IRQ_ENA */
-#define WM8400_GPIO4_IRQ_ENA_MASK 0x4000 /* GPIO4_IRQ_ENA */
-#define WM8400_GPIO4_IRQ_ENA_SHIFT 14 /* GPIO4_IRQ_ENA */
-#define WM8400_GPIO4_IRQ_ENA_WIDTH 1 /* GPIO4_IRQ_ENA */
-#define WM8400_GPIO4_PU 0x2000 /* GPIO4_PU */
-#define WM8400_GPIO4_PU_MASK 0x2000 /* GPIO4_PU */
-#define WM8400_GPIO4_PU_SHIFT 13 /* GPIO4_PU */
-#define WM8400_GPIO4_PU_WIDTH 1 /* GPIO4_PU */
-#define WM8400_GPIO4_PD 0x1000 /* GPIO4_PD */
-#define WM8400_GPIO4_PD_MASK 0x1000 /* GPIO4_PD */
-#define WM8400_GPIO4_PD_SHIFT 12 /* GPIO4_PD */
-#define WM8400_GPIO4_PD_WIDTH 1 /* GPIO4_PD */
-#define WM8400_GPIO4_SEL_MASK 0x0F00 /* GPIO4_SEL - [11:8] */
-#define WM8400_GPIO4_SEL_SHIFT 8 /* GPIO4_SEL - [11:8] */
-#define WM8400_GPIO4_SEL_WIDTH 4 /* GPIO4_SEL - [11:8] */
-#define WM8400_GPIO3_DEB_ENA 0x0080 /* GPIO3_DEB_ENA */
-#define WM8400_GPIO3_DEB_ENA_MASK 0x0080 /* GPIO3_DEB_ENA */
-#define WM8400_GPIO3_DEB_ENA_SHIFT 7 /* GPIO3_DEB_ENA */
-#define WM8400_GPIO3_DEB_ENA_WIDTH 1 /* GPIO3_DEB_ENA */
-#define WM8400_GPIO3_IRQ_ENA 0x0040 /* GPIO3_IRQ_ENA */
-#define WM8400_GPIO3_IRQ_ENA_MASK 0x0040 /* GPIO3_IRQ_ENA */
-#define WM8400_GPIO3_IRQ_ENA_SHIFT 6 /* GPIO3_IRQ_ENA */
-#define WM8400_GPIO3_IRQ_ENA_WIDTH 1 /* GPIO3_IRQ_ENA */
-#define WM8400_GPIO3_PU 0x0020 /* GPIO3_PU */
-#define WM8400_GPIO3_PU_MASK 0x0020 /* GPIO3_PU */
-#define WM8400_GPIO3_PU_SHIFT 5 /* GPIO3_PU */
-#define WM8400_GPIO3_PU_WIDTH 1 /* GPIO3_PU */
-#define WM8400_GPIO3_PD 0x0010 /* GPIO3_PD */
-#define WM8400_GPIO3_PD_MASK 0x0010 /* GPIO3_PD */
-#define WM8400_GPIO3_PD_SHIFT 4 /* GPIO3_PD */
-#define WM8400_GPIO3_PD_WIDTH 1 /* GPIO3_PD */
-#define WM8400_GPIO3_SEL_MASK 0x000F /* GPIO3_SEL - [3:0] */
-#define WM8400_GPIO3_SEL_SHIFT 0 /* GPIO3_SEL - [3:0] */
-#define WM8400_GPIO3_SEL_WIDTH 4 /* GPIO3_SEL - [3:0] */
-
-/*
- * R21 (0x15) - GPIO5 & GPIO6
- */
-#define WM8400_GPIO6_DEB_ENA 0x8000 /* GPIO6_DEB_ENA */
-#define WM8400_GPIO6_DEB_ENA_MASK 0x8000 /* GPIO6_DEB_ENA */
-#define WM8400_GPIO6_DEB_ENA_SHIFT 15 /* GPIO6_DEB_ENA */
-#define WM8400_GPIO6_DEB_ENA_WIDTH 1 /* GPIO6_DEB_ENA */
-#define WM8400_GPIO6_IRQ_ENA 0x4000 /* GPIO6_IRQ_ENA */
-#define WM8400_GPIO6_IRQ_ENA_MASK 0x4000 /* GPIO6_IRQ_ENA */
-#define WM8400_GPIO6_IRQ_ENA_SHIFT 14 /* GPIO6_IRQ_ENA */
-#define WM8400_GPIO6_IRQ_ENA_WIDTH 1 /* GPIO6_IRQ_ENA */
-#define WM8400_GPIO6_PU 0x2000 /* GPIO6_PU */
-#define WM8400_GPIO6_PU_MASK 0x2000 /* GPIO6_PU */
-#define WM8400_GPIO6_PU_SHIFT 13 /* GPIO6_PU */
-#define WM8400_GPIO6_PU_WIDTH 1 /* GPIO6_PU */
-#define WM8400_GPIO6_PD 0x1000 /* GPIO6_PD */
-#define WM8400_GPIO6_PD_MASK 0x1000 /* GPIO6_PD */
-#define WM8400_GPIO6_PD_SHIFT 12 /* GPIO6_PD */
-#define WM8400_GPIO6_PD_WIDTH 1 /* GPIO6_PD */
-#define WM8400_GPIO6_SEL_MASK 0x0F00 /* GPIO6_SEL - [11:8] */
-#define WM8400_GPIO6_SEL_SHIFT 8 /* GPIO6_SEL - [11:8] */
-#define WM8400_GPIO6_SEL_WIDTH 4 /* GPIO6_SEL - [11:8] */
-#define WM8400_GPIO5_DEB_ENA 0x0080 /* GPIO5_DEB_ENA */
-#define WM8400_GPIO5_DEB_ENA_MASK 0x0080 /* GPIO5_DEB_ENA */
-#define WM8400_GPIO5_DEB_ENA_SHIFT 7 /* GPIO5_DEB_ENA */
-#define WM8400_GPIO5_DEB_ENA_WIDTH 1 /* GPIO5_DEB_ENA */
-#define WM8400_GPIO5_IRQ_ENA 0x0040 /* GPIO5_IRQ_ENA */
-#define WM8400_GPIO5_IRQ_ENA_MASK 0x0040 /* GPIO5_IRQ_ENA */
-#define WM8400_GPIO5_IRQ_ENA_SHIFT 6 /* GPIO5_IRQ_ENA */
-#define WM8400_GPIO5_IRQ_ENA_WIDTH 1 /* GPIO5_IRQ_ENA */
-#define WM8400_GPIO5_PU 0x0020 /* GPIO5_PU */
-#define WM8400_GPIO5_PU_MASK 0x0020 /* GPIO5_PU */
-#define WM8400_GPIO5_PU_SHIFT 5 /* GPIO5_PU */
-#define WM8400_GPIO5_PU_WIDTH 1 /* GPIO5_PU */
-#define WM8400_GPIO5_PD 0x0010 /* GPIO5_PD */
-#define WM8400_GPIO5_PD_MASK 0x0010 /* GPIO5_PD */
-#define WM8400_GPIO5_PD_SHIFT 4 /* GPIO5_PD */
-#define WM8400_GPIO5_PD_WIDTH 1 /* GPIO5_PD */
-#define WM8400_GPIO5_SEL_MASK 0x000F /* GPIO5_SEL - [3:0] */
-#define WM8400_GPIO5_SEL_SHIFT 0 /* GPIO5_SEL - [3:0] */
-#define WM8400_GPIO5_SEL_WIDTH 4 /* GPIO5_SEL - [3:0] */
-
-/*
- * R22 (0x16) - GPIOCTRL 2
- */
-#define WM8400_TEMPOK_IRQ_ENA 0x0800 /* TEMPOK_IRQ_ENA */
-#define WM8400_TEMPOK_IRQ_ENA_MASK 0x0800 /* TEMPOK_IRQ_ENA */
-#define WM8400_TEMPOK_IRQ_ENA_SHIFT 11 /* TEMPOK_IRQ_ENA */
-#define WM8400_TEMPOK_IRQ_ENA_WIDTH 1 /* TEMPOK_IRQ_ENA */
-#define WM8400_MIC1SHRT_IRQ_ENA 0x0400 /* MIC1SHRT_IRQ_ENA */
-#define WM8400_MIC1SHRT_IRQ_ENA_MASK 0x0400 /* MIC1SHRT_IRQ_ENA */
-#define WM8400_MIC1SHRT_IRQ_ENA_SHIFT 10 /* MIC1SHRT_IRQ_ENA */
-#define WM8400_MIC1SHRT_IRQ_ENA_WIDTH 1 /* MIC1SHRT_IRQ_ENA */
-#define WM8400_MIC1DET_IRQ_ENA 0x0200 /* MIC1DET_IRQ_ENA */
-#define WM8400_MIC1DET_IRQ_ENA_MASK 0x0200 /* MIC1DET_IRQ_ENA */
-#define WM8400_MIC1DET_IRQ_ENA_SHIFT 9 /* MIC1DET_IRQ_ENA */
-#define WM8400_MIC1DET_IRQ_ENA_WIDTH 1 /* MIC1DET_IRQ_ENA */
-#define WM8400_FLL_LCK_IRQ_ENA 0x0100 /* FLL_LCK_IRQ_ENA */
-#define WM8400_FLL_LCK_IRQ_ENA_MASK 0x0100 /* FLL_LCK_IRQ_ENA */
-#define WM8400_FLL_LCK_IRQ_ENA_SHIFT 8 /* FLL_LCK_IRQ_ENA */
-#define WM8400_FLL_LCK_IRQ_ENA_WIDTH 1 /* FLL_LCK_IRQ_ENA */
-#define WM8400_GPI8_DEB_ENA 0x0080 /* GPI8_DEB_ENA */
-#define WM8400_GPI8_DEB_ENA_MASK 0x0080 /* GPI8_DEB_ENA */
-#define WM8400_GPI8_DEB_ENA_SHIFT 7 /* GPI8_DEB_ENA */
-#define WM8400_GPI8_DEB_ENA_WIDTH 1 /* GPI8_DEB_ENA */
-#define WM8400_GPI8_IRQ_ENA 0x0040 /* GPI8_IRQ_ENA */
-#define WM8400_GPI8_IRQ_ENA_MASK 0x0040 /* GPI8_IRQ_ENA */
-#define WM8400_GPI8_IRQ_ENA_SHIFT 6 /* GPI8_IRQ_ENA */
-#define WM8400_GPI8_IRQ_ENA_WIDTH 1 /* GPI8_IRQ_ENA */
-#define WM8400_GPI8_ENA 0x0010 /* GPI8_ENA */
-#define WM8400_GPI8_ENA_MASK 0x0010 /* GPI8_ENA */
-#define WM8400_GPI8_ENA_SHIFT 4 /* GPI8_ENA */
-#define WM8400_GPI8_ENA_WIDTH 1 /* GPI8_ENA */
-#define WM8400_GPI7_DEB_ENA 0x0008 /* GPI7_DEB_ENA */
-#define WM8400_GPI7_DEB_ENA_MASK 0x0008 /* GPI7_DEB_ENA */
-#define WM8400_GPI7_DEB_ENA_SHIFT 3 /* GPI7_DEB_ENA */
-#define WM8400_GPI7_DEB_ENA_WIDTH 1 /* GPI7_DEB_ENA */
-#define WM8400_GPI7_IRQ_ENA 0x0004 /* GPI7_IRQ_ENA */
-#define WM8400_GPI7_IRQ_ENA_MASK 0x0004 /* GPI7_IRQ_ENA */
-#define WM8400_GPI7_IRQ_ENA_SHIFT 2 /* GPI7_IRQ_ENA */
-#define WM8400_GPI7_IRQ_ENA_WIDTH 1 /* GPI7_IRQ_ENA */
-#define WM8400_GPI7_ENA 0x0001 /* GPI7_ENA */
-#define WM8400_GPI7_ENA_MASK 0x0001 /* GPI7_ENA */
-#define WM8400_GPI7_ENA_SHIFT 0 /* GPI7_ENA */
-#define WM8400_GPI7_ENA_WIDTH 1 /* GPI7_ENA */
-
-/*
- * R23 (0x17) - GPIO_POL
- */
-#define WM8400_IRQ_INV 0x1000 /* IRQ_INV */
-#define WM8400_IRQ_INV_MASK 0x1000 /* IRQ_INV */
-#define WM8400_IRQ_INV_SHIFT 12 /* IRQ_INV */
-#define WM8400_IRQ_INV_WIDTH 1 /* IRQ_INV */
-#define WM8400_TEMPOK_POL 0x0800 /* TEMPOK_POL */
-#define WM8400_TEMPOK_POL_MASK 0x0800 /* TEMPOK_POL */
-#define WM8400_TEMPOK_POL_SHIFT 11 /* TEMPOK_POL */
-#define WM8400_TEMPOK_POL_WIDTH 1 /* TEMPOK_POL */
-#define WM8400_MIC1SHRT_POL 0x0400 /* MIC1SHRT_POL */
-#define WM8400_MIC1SHRT_POL_MASK 0x0400 /* MIC1SHRT_POL */
-#define WM8400_MIC1SHRT_POL_SHIFT 10 /* MIC1SHRT_POL */
-#define WM8400_MIC1SHRT_POL_WIDTH 1 /* MIC1SHRT_POL */
-#define WM8400_MIC1DET_POL 0x0200 /* MIC1DET_POL */
-#define WM8400_MIC1DET_POL_MASK 0x0200 /* MIC1DET_POL */
-#define WM8400_MIC1DET_POL_SHIFT 9 /* MIC1DET_POL */
-#define WM8400_MIC1DET_POL_WIDTH 1 /* MIC1DET_POL */
-#define WM8400_FLL_LCK_POL 0x0100 /* FLL_LCK_POL */
-#define WM8400_FLL_LCK_POL_MASK 0x0100 /* FLL_LCK_POL */
-#define WM8400_FLL_LCK_POL_SHIFT 8 /* FLL_LCK_POL */
-#define WM8400_FLL_LCK_POL_WIDTH 1 /* FLL_LCK_POL */
-#define WM8400_GPIO_POL_MASK 0x00FF /* GPIO_POL - [7:0] */
-#define WM8400_GPIO_POL_SHIFT 0 /* GPIO_POL - [7:0] */
-#define WM8400_GPIO_POL_WIDTH 8 /* GPIO_POL - [7:0] */
-
-/*
- * R65 (0x41) - LDO 1 Control
- */
-#define WM8400_LDO1_ENA 0x8000 /* LDO1_ENA */
-#define WM8400_LDO1_ENA_MASK 0x8000 /* LDO1_ENA */
-#define WM8400_LDO1_ENA_SHIFT 15 /* LDO1_ENA */
-#define WM8400_LDO1_ENA_WIDTH 1 /* LDO1_ENA */
-#define WM8400_LDO1_SWI 0x4000 /* LDO1_SWI */
-#define WM8400_LDO1_SWI_MASK 0x4000 /* LDO1_SWI */
-#define WM8400_LDO1_SWI_SHIFT 14 /* LDO1_SWI */
-#define WM8400_LDO1_SWI_WIDTH 1 /* LDO1_SWI */
-#define WM8400_LDO1_OPFLT 0x1000 /* LDO1_OPFLT */
-#define WM8400_LDO1_OPFLT_MASK 0x1000 /* LDO1_OPFLT */
-#define WM8400_LDO1_OPFLT_SHIFT 12 /* LDO1_OPFLT */
-#define WM8400_LDO1_OPFLT_WIDTH 1 /* LDO1_OPFLT */
-#define WM8400_LDO1_ERRACT 0x0800 /* LDO1_ERRACT */
-#define WM8400_LDO1_ERRACT_MASK 0x0800 /* LDO1_ERRACT */
-#define WM8400_LDO1_ERRACT_SHIFT 11 /* LDO1_ERRACT */
-#define WM8400_LDO1_ERRACT_WIDTH 1 /* LDO1_ERRACT */
-#define WM8400_LDO1_HIB_MODE 0x0400 /* LDO1_HIB_MODE */
-#define WM8400_LDO1_HIB_MODE_MASK 0x0400 /* LDO1_HIB_MODE */
-#define WM8400_LDO1_HIB_MODE_SHIFT 10 /* LDO1_HIB_MODE */
-#define WM8400_LDO1_HIB_MODE_WIDTH 1 /* LDO1_HIB_MODE */
-#define WM8400_LDO1_VIMG_MASK 0x03E0 /* LDO1_VIMG - [9:5] */
-#define WM8400_LDO1_VIMG_SHIFT 5 /* LDO1_VIMG - [9:5] */
-#define WM8400_LDO1_VIMG_WIDTH 5 /* LDO1_VIMG - [9:5] */
-#define WM8400_LDO1_VSEL_MASK 0x001F /* LDO1_VSEL - [4:0] */
-#define WM8400_LDO1_VSEL_SHIFT 0 /* LDO1_VSEL - [4:0] */
-#define WM8400_LDO1_VSEL_WIDTH 5 /* LDO1_VSEL - [4:0] */
-
-/*
- * R66 (0x42) - LDO 2 Control
- */
-#define WM8400_LDO2_ENA 0x8000 /* LDO2_ENA */
-#define WM8400_LDO2_ENA_MASK 0x8000 /* LDO2_ENA */
-#define WM8400_LDO2_ENA_SHIFT 15 /* LDO2_ENA */
-#define WM8400_LDO2_ENA_WIDTH 1 /* LDO2_ENA */
-#define WM8400_LDO2_SWI 0x4000 /* LDO2_SWI */
-#define WM8400_LDO2_SWI_MASK 0x4000 /* LDO2_SWI */
-#define WM8400_LDO2_SWI_SHIFT 14 /* LDO2_SWI */
-#define WM8400_LDO2_SWI_WIDTH 1 /* LDO2_SWI */
-#define WM8400_LDO2_OPFLT 0x1000 /* LDO2_OPFLT */
-#define WM8400_LDO2_OPFLT_MASK 0x1000 /* LDO2_OPFLT */
-#define WM8400_LDO2_OPFLT_SHIFT 12 /* LDO2_OPFLT */
-#define WM8400_LDO2_OPFLT_WIDTH 1 /* LDO2_OPFLT */
-#define WM8400_LDO2_ERRACT 0x0800 /* LDO2_ERRACT */
-#define WM8400_LDO2_ERRACT_MASK 0x0800 /* LDO2_ERRACT */
-#define WM8400_LDO2_ERRACT_SHIFT 11 /* LDO2_ERRACT */
-#define WM8400_LDO2_ERRACT_WIDTH 1 /* LDO2_ERRACT */
-#define WM8400_LDO2_HIB_MODE 0x0400 /* LDO2_HIB_MODE */
-#define WM8400_LDO2_HIB_MODE_MASK 0x0400 /* LDO2_HIB_MODE */
-#define WM8400_LDO2_HIB_MODE_SHIFT 10 /* LDO2_HIB_MODE */
-#define WM8400_LDO2_HIB_MODE_WIDTH 1 /* LDO2_HIB_MODE */
-#define WM8400_LDO2_VIMG_MASK 0x03E0 /* LDO2_VIMG - [9:5] */
-#define WM8400_LDO2_VIMG_SHIFT 5 /* LDO2_VIMG - [9:5] */
-#define WM8400_LDO2_VIMG_WIDTH 5 /* LDO2_VIMG - [9:5] */
-#define WM8400_LDO2_VSEL_MASK 0x001F /* LDO2_VSEL - [4:0] */
-#define WM8400_LDO2_VSEL_SHIFT 0 /* LDO2_VSEL - [4:0] */
-#define WM8400_LDO2_VSEL_WIDTH 5 /* LDO2_VSEL - [4:0] */
-
-/*
- * R67 (0x43) - LDO 3 Control
- */
-#define WM8400_LDO3_ENA 0x8000 /* LDO3_ENA */
-#define WM8400_LDO3_ENA_MASK 0x8000 /* LDO3_ENA */
-#define WM8400_LDO3_ENA_SHIFT 15 /* LDO3_ENA */
-#define WM8400_LDO3_ENA_WIDTH 1 /* LDO3_ENA */
-#define WM8400_LDO3_SWI 0x4000 /* LDO3_SWI */
-#define WM8400_LDO3_SWI_MASK 0x4000 /* LDO3_SWI */
-#define WM8400_LDO3_SWI_SHIFT 14 /* LDO3_SWI */
-#define WM8400_LDO3_SWI_WIDTH 1 /* LDO3_SWI */
-#define WM8400_LDO3_OPFLT 0x1000 /* LDO3_OPFLT */
-#define WM8400_LDO3_OPFLT_MASK 0x1000 /* LDO3_OPFLT */
-#define WM8400_LDO3_OPFLT_SHIFT 12 /* LDO3_OPFLT */
-#define WM8400_LDO3_OPFLT_WIDTH 1 /* LDO3_OPFLT */
-#define WM8400_LDO3_ERRACT 0x0800 /* LDO3_ERRACT */
-#define WM8400_LDO3_ERRACT_MASK 0x0800 /* LDO3_ERRACT */
-#define WM8400_LDO3_ERRACT_SHIFT 11 /* LDO3_ERRACT */
-#define WM8400_LDO3_ERRACT_WIDTH 1 /* LDO3_ERRACT */
-#define WM8400_LDO3_HIB_MODE 0x0400 /* LDO3_HIB_MODE */
-#define WM8400_LDO3_HIB_MODE_MASK 0x0400 /* LDO3_HIB_MODE */
-#define WM8400_LDO3_HIB_MODE_SHIFT 10 /* LDO3_HIB_MODE */
-#define WM8400_LDO3_HIB_MODE_WIDTH 1 /* LDO3_HIB_MODE */
-#define WM8400_LDO3_VIMG_MASK 0x03E0 /* LDO3_VIMG - [9:5] */
-#define WM8400_LDO3_VIMG_SHIFT 5 /* LDO3_VIMG - [9:5] */
-#define WM8400_LDO3_VIMG_WIDTH 5 /* LDO3_VIMG - [9:5] */
-#define WM8400_LDO3_VSEL_MASK 0x001F /* LDO3_VSEL - [4:0] */
-#define WM8400_LDO3_VSEL_SHIFT 0 /* LDO3_VSEL - [4:0] */
-#define WM8400_LDO3_VSEL_WIDTH 5 /* LDO3_VSEL - [4:0] */
-
-/*
- * R68 (0x44) - LDO 4 Control
- */
-#define WM8400_LDO4_ENA 0x8000 /* LDO4_ENA */
-#define WM8400_LDO4_ENA_MASK 0x8000 /* LDO4_ENA */
-#define WM8400_LDO4_ENA_SHIFT 15 /* LDO4_ENA */
-#define WM8400_LDO4_ENA_WIDTH 1 /* LDO4_ENA */
-#define WM8400_LDO4_SWI 0x4000 /* LDO4_SWI */
-#define WM8400_LDO4_SWI_MASK 0x4000 /* LDO4_SWI */
-#define WM8400_LDO4_SWI_SHIFT 14 /* LDO4_SWI */
-#define WM8400_LDO4_SWI_WIDTH 1 /* LDO4_SWI */
-#define WM8400_LDO4_OPFLT 0x1000 /* LDO4_OPFLT */
-#define WM8400_LDO4_OPFLT_MASK 0x1000 /* LDO4_OPFLT */
-#define WM8400_LDO4_OPFLT_SHIFT 12 /* LDO4_OPFLT */
-#define WM8400_LDO4_OPFLT_WIDTH 1 /* LDO4_OPFLT */
-#define WM8400_LDO4_ERRACT 0x0800 /* LDO4_ERRACT */
-#define WM8400_LDO4_ERRACT_MASK 0x0800 /* LDO4_ERRACT */
-#define WM8400_LDO4_ERRACT_SHIFT 11 /* LDO4_ERRACT */
-#define WM8400_LDO4_ERRACT_WIDTH 1 /* LDO4_ERRACT */
-#define WM8400_LDO4_HIB_MODE 0x0400 /* LDO4_HIB_MODE */
-#define WM8400_LDO4_HIB_MODE_MASK 0x0400 /* LDO4_HIB_MODE */
-#define WM8400_LDO4_HIB_MODE_SHIFT 10 /* LDO4_HIB_MODE */
-#define WM8400_LDO4_HIB_MODE_WIDTH 1 /* LDO4_HIB_MODE */
-#define WM8400_LDO4_VIMG_MASK 0x03E0 /* LDO4_VIMG - [9:5] */
-#define WM8400_LDO4_VIMG_SHIFT 5 /* LDO4_VIMG - [9:5] */
-#define WM8400_LDO4_VIMG_WIDTH 5 /* LDO4_VIMG - [9:5] */
-#define WM8400_LDO4_VSEL_MASK 0x001F /* LDO4_VSEL - [4:0] */
-#define WM8400_LDO4_VSEL_SHIFT 0 /* LDO4_VSEL - [4:0] */
-#define WM8400_LDO4_VSEL_WIDTH 5 /* LDO4_VSEL - [4:0] */
-
-/*
- * R70 (0x46) - DCDC1 Control 1
- */
-#define WM8400_DC1_ENA 0x8000 /* DC1_ENA */
-#define WM8400_DC1_ENA_MASK 0x8000 /* DC1_ENA */
-#define WM8400_DC1_ENA_SHIFT 15 /* DC1_ENA */
-#define WM8400_DC1_ENA_WIDTH 1 /* DC1_ENA */
-#define WM8400_DC1_ACTIVE 0x4000 /* DC1_ACTIVE */
-#define WM8400_DC1_ACTIVE_MASK 0x4000 /* DC1_ACTIVE */
-#define WM8400_DC1_ACTIVE_SHIFT 14 /* DC1_ACTIVE */
-#define WM8400_DC1_ACTIVE_WIDTH 1 /* DC1_ACTIVE */
-#define WM8400_DC1_SLEEP 0x2000 /* DC1_SLEEP */
-#define WM8400_DC1_SLEEP_MASK 0x2000 /* DC1_SLEEP */
-#define WM8400_DC1_SLEEP_SHIFT 13 /* DC1_SLEEP */
-#define WM8400_DC1_SLEEP_WIDTH 1 /* DC1_SLEEP */
-#define WM8400_DC1_OPFLT 0x1000 /* DC1_OPFLT */
-#define WM8400_DC1_OPFLT_MASK 0x1000 /* DC1_OPFLT */
-#define WM8400_DC1_OPFLT_SHIFT 12 /* DC1_OPFLT */
-#define WM8400_DC1_OPFLT_WIDTH 1 /* DC1_OPFLT */
-#define WM8400_DC1_ERRACT 0x0800 /* DC1_ERRACT */
-#define WM8400_DC1_ERRACT_MASK 0x0800 /* DC1_ERRACT */
-#define WM8400_DC1_ERRACT_SHIFT 11 /* DC1_ERRACT */
-#define WM8400_DC1_ERRACT_WIDTH 1 /* DC1_ERRACT */
-#define WM8400_DC1_HIB_MODE 0x0400 /* DC1_HIB_MODE */
-#define WM8400_DC1_HIB_MODE_MASK 0x0400 /* DC1_HIB_MODE */
-#define WM8400_DC1_HIB_MODE_SHIFT 10 /* DC1_HIB_MODE */
-#define WM8400_DC1_HIB_MODE_WIDTH 1 /* DC1_HIB_MODE */
-#define WM8400_DC1_SOFTST_MASK 0x0300 /* DC1_SOFTST - [9:8] */
-#define WM8400_DC1_SOFTST_SHIFT 8 /* DC1_SOFTST - [9:8] */
-#define WM8400_DC1_SOFTST_WIDTH 2 /* DC1_SOFTST - [9:8] */
-#define WM8400_DC1_OV_PROT 0x0080 /* DC1_OV_PROT */
-#define WM8400_DC1_OV_PROT_MASK 0x0080 /* DC1_OV_PROT */
-#define WM8400_DC1_OV_PROT_SHIFT 7 /* DC1_OV_PROT */
-#define WM8400_DC1_OV_PROT_WIDTH 1 /* DC1_OV_PROT */
-#define WM8400_DC1_VSEL_MASK 0x007F /* DC1_VSEL - [6:0] */
-#define WM8400_DC1_VSEL_SHIFT 0 /* DC1_VSEL - [6:0] */
-#define WM8400_DC1_VSEL_WIDTH 7 /* DC1_VSEL - [6:0] */
-
-/*
- * R71 (0x47) - DCDC1 Control 2
- */
-#define WM8400_DC1_FRC_PWM 0x2000 /* DC1_FRC_PWM */
-#define WM8400_DC1_FRC_PWM_MASK 0x2000 /* DC1_FRC_PWM */
-#define WM8400_DC1_FRC_PWM_SHIFT 13 /* DC1_FRC_PWM */
-#define WM8400_DC1_FRC_PWM_WIDTH 1 /* DC1_FRC_PWM */
-#define WM8400_DC1_STBY_LIM_MASK 0x0300 /* DC1_STBY_LIM - [9:8] */
-#define WM8400_DC1_STBY_LIM_SHIFT 8 /* DC1_STBY_LIM - [9:8] */
-#define WM8400_DC1_STBY_LIM_WIDTH 2 /* DC1_STBY_LIM - [9:8] */
-#define WM8400_DC1_ACT_LIM 0x0080 /* DC1_ACT_LIM */
-#define WM8400_DC1_ACT_LIM_MASK 0x0080 /* DC1_ACT_LIM */
-#define WM8400_DC1_ACT_LIM_SHIFT 7 /* DC1_ACT_LIM */
-#define WM8400_DC1_ACT_LIM_WIDTH 1 /* DC1_ACT_LIM */
-#define WM8400_DC1_VIMG_MASK 0x007F /* DC1_VIMG - [6:0] */
-#define WM8400_DC1_VIMG_SHIFT 0 /* DC1_VIMG - [6:0] */
-#define WM8400_DC1_VIMG_WIDTH 7 /* DC1_VIMG - [6:0] */
-
-/*
- * R72 (0x48) - DCDC2 Control 1
- */
-#define WM8400_DC2_ENA 0x8000 /* DC2_ENA */
-#define WM8400_DC2_ENA_MASK 0x8000 /* DC2_ENA */
-#define WM8400_DC2_ENA_SHIFT 15 /* DC2_ENA */
-#define WM8400_DC2_ENA_WIDTH 1 /* DC2_ENA */
-#define WM8400_DC2_ACTIVE 0x4000 /* DC2_ACTIVE */
-#define WM8400_DC2_ACTIVE_MASK 0x4000 /* DC2_ACTIVE */
-#define WM8400_DC2_ACTIVE_SHIFT 14 /* DC2_ACTIVE */
-#define WM8400_DC2_ACTIVE_WIDTH 1 /* DC2_ACTIVE */
-#define WM8400_DC2_SLEEP 0x2000 /* DC2_SLEEP */
-#define WM8400_DC2_SLEEP_MASK 0x2000 /* DC2_SLEEP */
-#define WM8400_DC2_SLEEP_SHIFT 13 /* DC2_SLEEP */
-#define WM8400_DC2_SLEEP_WIDTH 1 /* DC2_SLEEP */
-#define WM8400_DC2_OPFLT 0x1000 /* DC2_OPFLT */
-#define WM8400_DC2_OPFLT_MASK 0x1000 /* DC2_OPFLT */
-#define WM8400_DC2_OPFLT_SHIFT 12 /* DC2_OPFLT */
-#define WM8400_DC2_OPFLT_WIDTH 1 /* DC2_OPFLT */
-#define WM8400_DC2_ERRACT 0x0800 /* DC2_ERRACT */
-#define WM8400_DC2_ERRACT_MASK 0x0800 /* DC2_ERRACT */
-#define WM8400_DC2_ERRACT_SHIFT 11 /* DC2_ERRACT */
-#define WM8400_DC2_ERRACT_WIDTH 1 /* DC2_ERRACT */
-#define WM8400_DC2_HIB_MODE 0x0400 /* DC2_HIB_MODE */
-#define WM8400_DC2_HIB_MODE_MASK 0x0400 /* DC2_HIB_MODE */
-#define WM8400_DC2_HIB_MODE_SHIFT 10 /* DC2_HIB_MODE */
-#define WM8400_DC2_HIB_MODE_WIDTH 1 /* DC2_HIB_MODE */
-#define WM8400_DC2_SOFTST_MASK 0x0300 /* DC2_SOFTST - [9:8] */
-#define WM8400_DC2_SOFTST_SHIFT 8 /* DC2_SOFTST - [9:8] */
-#define WM8400_DC2_SOFTST_WIDTH 2 /* DC2_SOFTST - [9:8] */
-#define WM8400_DC2_OV_PROT 0x0080 /* DC2_OV_PROT */
-#define WM8400_DC2_OV_PROT_MASK 0x0080 /* DC2_OV_PROT */
-#define WM8400_DC2_OV_PROT_SHIFT 7 /* DC2_OV_PROT */
-#define WM8400_DC2_OV_PROT_WIDTH 1 /* DC2_OV_PROT */
-#define WM8400_DC2_VSEL_MASK 0x007F /* DC2_VSEL - [6:0] */
-#define WM8400_DC2_VSEL_SHIFT 0 /* DC2_VSEL - [6:0] */
-#define WM8400_DC2_VSEL_WIDTH 7 /* DC2_VSEL - [6:0] */
-
-/*
- * R73 (0x49) - DCDC2 Control 2
- */
-#define WM8400_DC2_FRC_PWM 0x2000 /* DC2_FRC_PWM */
-#define WM8400_DC2_FRC_PWM_MASK 0x2000 /* DC2_FRC_PWM */
-#define WM8400_DC2_FRC_PWM_SHIFT 13 /* DC2_FRC_PWM */
-#define WM8400_DC2_FRC_PWM_WIDTH 1 /* DC2_FRC_PWM */
-#define WM8400_DC2_STBY_LIM_MASK 0x0300 /* DC2_STBY_LIM - [9:8] */
-#define WM8400_DC2_STBY_LIM_SHIFT 8 /* DC2_STBY_LIM - [9:8] */
-#define WM8400_DC2_STBY_LIM_WIDTH 2 /* DC2_STBY_LIM - [9:8] */
-#define WM8400_DC2_ACT_LIM 0x0080 /* DC2_ACT_LIM */
-#define WM8400_DC2_ACT_LIM_MASK 0x0080 /* DC2_ACT_LIM */
-#define WM8400_DC2_ACT_LIM_SHIFT 7 /* DC2_ACT_LIM */
-#define WM8400_DC2_ACT_LIM_WIDTH 1 /* DC2_ACT_LIM */
-#define WM8400_DC2_VIMG_MASK 0x007F /* DC2_VIMG - [6:0] */
-#define WM8400_DC2_VIMG_SHIFT 0 /* DC2_VIMG - [6:0] */
-#define WM8400_DC2_VIMG_WIDTH 7 /* DC2_VIMG - [6:0] */
-
-/*
- * R75 (0x4B) - Interface
- */
-#define WM8400_AUTOINC 0x0008 /* AUTOINC */
-#define WM8400_AUTOINC_MASK 0x0008 /* AUTOINC */
-#define WM8400_AUTOINC_SHIFT 3 /* AUTOINC */
-#define WM8400_AUTOINC_WIDTH 1 /* AUTOINC */
-#define WM8400_ARA_ENA 0x0004 /* ARA_ENA */
-#define WM8400_ARA_ENA_MASK 0x0004 /* ARA_ENA */
-#define WM8400_ARA_ENA_SHIFT 2 /* ARA_ENA */
-#define WM8400_ARA_ENA_WIDTH 1 /* ARA_ENA */
-#define WM8400_SPI_CFG 0x0002 /* SPI_CFG */
-#define WM8400_SPI_CFG_MASK 0x0002 /* SPI_CFG */
-#define WM8400_SPI_CFG_SHIFT 1 /* SPI_CFG */
-#define WM8400_SPI_CFG_WIDTH 1 /* SPI_CFG */
-
-/*
- * R76 (0x4C) - PM GENERAL
- */
-#define WM8400_CODEC_SOFTST 0x8000 /* CODEC_SOFTST */
-#define WM8400_CODEC_SOFTST_MASK 0x8000 /* CODEC_SOFTST */
-#define WM8400_CODEC_SOFTST_SHIFT 15 /* CODEC_SOFTST */
-#define WM8400_CODEC_SOFTST_WIDTH 1 /* CODEC_SOFTST */
-#define WM8400_CODEC_SOFTSD 0x4000 /* CODEC_SOFTSD */
-#define WM8400_CODEC_SOFTSD_MASK 0x4000 /* CODEC_SOFTSD */
-#define WM8400_CODEC_SOFTSD_SHIFT 14 /* CODEC_SOFTSD */
-#define WM8400_CODEC_SOFTSD_WIDTH 1 /* CODEC_SOFTSD */
-#define WM8400_CHIP_SOFTSD 0x2000 /* CHIP_SOFTSD */
-#define WM8400_CHIP_SOFTSD_MASK 0x2000 /* CHIP_SOFTSD */
-#define WM8400_CHIP_SOFTSD_SHIFT 13 /* CHIP_SOFTSD */
-#define WM8400_CHIP_SOFTSD_WIDTH 1 /* CHIP_SOFTSD */
-#define WM8400_DSLEEP1_POL 0x0008 /* DSLEEP1_POL */
-#define WM8400_DSLEEP1_POL_MASK 0x0008 /* DSLEEP1_POL */
-#define WM8400_DSLEEP1_POL_SHIFT 3 /* DSLEEP1_POL */
-#define WM8400_DSLEEP1_POL_WIDTH 1 /* DSLEEP1_POL */
-#define WM8400_DSLEEP2_POL 0x0004 /* DSLEEP2_POL */
-#define WM8400_DSLEEP2_POL_MASK 0x0004 /* DSLEEP2_POL */
-#define WM8400_DSLEEP2_POL_SHIFT 2 /* DSLEEP2_POL */
-#define WM8400_DSLEEP2_POL_WIDTH 1 /* DSLEEP2_POL */
-#define WM8400_PWR_STATE_MASK 0x0003 /* PWR_STATE - [1:0] */
-#define WM8400_PWR_STATE_SHIFT 0 /* PWR_STATE - [1:0] */
-#define WM8400_PWR_STATE_WIDTH 2 /* PWR_STATE - [1:0] */
-
-/*
- * R78 (0x4E) - PM Shutdown Control
- */
-#define WM8400_CHIP_GT150_ERRACT 0x0200 /* CHIP_GT150_ERRACT */
-#define WM8400_CHIP_GT150_ERRACT_MASK 0x0200 /* CHIP_GT150_ERRACT */
-#define WM8400_CHIP_GT150_ERRACT_SHIFT 9 /* CHIP_GT150_ERRACT */
-#define WM8400_CHIP_GT150_ERRACT_WIDTH 1 /* CHIP_GT150_ERRACT */
-#define WM8400_CHIP_GT115_ERRACT 0x0100 /* CHIP_GT115_ERRACT */
-#define WM8400_CHIP_GT115_ERRACT_MASK 0x0100 /* CHIP_GT115_ERRACT */
-#define WM8400_CHIP_GT115_ERRACT_SHIFT 8 /* CHIP_GT115_ERRACT */
-#define WM8400_CHIP_GT115_ERRACT_WIDTH 1 /* CHIP_GT115_ERRACT */
-#define WM8400_LINE_CMP_ERRACT 0x0080 /* LINE_CMP_ERRACT */
-#define WM8400_LINE_CMP_ERRACT_MASK 0x0080 /* LINE_CMP_ERRACT */
-#define WM8400_LINE_CMP_ERRACT_SHIFT 7 /* LINE_CMP_ERRACT */
-#define WM8400_LINE_CMP_ERRACT_WIDTH 1 /* LINE_CMP_ERRACT */
-#define WM8400_UVLO_ERRACT 0x0040 /* UVLO_ERRACT */
-#define WM8400_UVLO_ERRACT_MASK 0x0040 /* UVLO_ERRACT */
-#define WM8400_UVLO_ERRACT_SHIFT 6 /* UVLO_ERRACT */
-#define WM8400_UVLO_ERRACT_WIDTH 1 /* UVLO_ERRACT */
-
-/*
- * R79 (0x4F) - Interrupt Status 1
- */
-#define WM8400_MICD_CINT 0x8000 /* MICD_CINT */
-#define WM8400_MICD_CINT_MASK 0x8000 /* MICD_CINT */
-#define WM8400_MICD_CINT_SHIFT 15 /* MICD_CINT */
-#define WM8400_MICD_CINT_WIDTH 1 /* MICD_CINT */
-#define WM8400_MICSCD_CINT 0x4000 /* MICSCD_CINT */
-#define WM8400_MICSCD_CINT_MASK 0x4000 /* MICSCD_CINT */
-#define WM8400_MICSCD_CINT_SHIFT 14 /* MICSCD_CINT */
-#define WM8400_MICSCD_CINT_WIDTH 1 /* MICSCD_CINT */
-#define WM8400_JDL_CINT 0x2000 /* JDL_CINT */
-#define WM8400_JDL_CINT_MASK 0x2000 /* JDL_CINT */
-#define WM8400_JDL_CINT_SHIFT 13 /* JDL_CINT */
-#define WM8400_JDL_CINT_WIDTH 1 /* JDL_CINT */
-#define WM8400_JDR_CINT 0x1000 /* JDR_CINT */
-#define WM8400_JDR_CINT_MASK 0x1000 /* JDR_CINT */
-#define WM8400_JDR_CINT_SHIFT 12 /* JDR_CINT */
-#define WM8400_JDR_CINT_WIDTH 1 /* JDR_CINT */
-#define WM8400_CODEC_SEQ_END_EINT 0x0800 /* CODEC_SEQ_END_EINT */
-#define WM8400_CODEC_SEQ_END_EINT_MASK 0x0800 /* CODEC_SEQ_END_EINT */
-#define WM8400_CODEC_SEQ_END_EINT_SHIFT 11 /* CODEC_SEQ_END_EINT */
-#define WM8400_CODEC_SEQ_END_EINT_WIDTH 1 /* CODEC_SEQ_END_EINT */
-#define WM8400_CDEL_TO_EINT 0x0400 /* CDEL_TO_EINT */
-#define WM8400_CDEL_TO_EINT_MASK 0x0400 /* CDEL_TO_EINT */
-#define WM8400_CDEL_TO_EINT_SHIFT 10 /* CDEL_TO_EINT */
-#define WM8400_CDEL_TO_EINT_WIDTH 1 /* CDEL_TO_EINT */
-#define WM8400_CHIP_GT150_EINT 0x0200 /* CHIP_GT150_EINT */
-#define WM8400_CHIP_GT150_EINT_MASK 0x0200 /* CHIP_GT150_EINT */
-#define WM8400_CHIP_GT150_EINT_SHIFT 9 /* CHIP_GT150_EINT */
-#define WM8400_CHIP_GT150_EINT_WIDTH 1 /* CHIP_GT150_EINT */
-#define WM8400_CHIP_GT115_EINT 0x0100 /* CHIP_GT115_EINT */
-#define WM8400_CHIP_GT115_EINT_MASK 0x0100 /* CHIP_GT115_EINT */
-#define WM8400_CHIP_GT115_EINT_SHIFT 8 /* CHIP_GT115_EINT */
-#define WM8400_CHIP_GT115_EINT_WIDTH 1 /* CHIP_GT115_EINT */
-#define WM8400_LINE_CMP_EINT 0x0080 /* LINE_CMP_EINT */
-#define WM8400_LINE_CMP_EINT_MASK 0x0080 /* LINE_CMP_EINT */
-#define WM8400_LINE_CMP_EINT_SHIFT 7 /* LINE_CMP_EINT */
-#define WM8400_LINE_CMP_EINT_WIDTH 1 /* LINE_CMP_EINT */
-#define WM8400_UVLO_EINT 0x0040 /* UVLO_EINT */
-#define WM8400_UVLO_EINT_MASK 0x0040 /* UVLO_EINT */
-#define WM8400_UVLO_EINT_SHIFT 6 /* UVLO_EINT */
-#define WM8400_UVLO_EINT_WIDTH 1 /* UVLO_EINT */
-#define WM8400_DC2_UV_EINT 0x0020 /* DC2_UV_EINT */
-#define WM8400_DC2_UV_EINT_MASK 0x0020 /* DC2_UV_EINT */
-#define WM8400_DC2_UV_EINT_SHIFT 5 /* DC2_UV_EINT */
-#define WM8400_DC2_UV_EINT_WIDTH 1 /* DC2_UV_EINT */
-#define WM8400_DC1_UV_EINT 0x0010 /* DC1_UV_EINT */
-#define WM8400_DC1_UV_EINT_MASK 0x0010 /* DC1_UV_EINT */
-#define WM8400_DC1_UV_EINT_SHIFT 4 /* DC1_UV_EINT */
-#define WM8400_DC1_UV_EINT_WIDTH 1 /* DC1_UV_EINT */
-#define WM8400_LDO4_UV_EINT 0x0008 /* LDO4_UV_EINT */
-#define WM8400_LDO4_UV_EINT_MASK 0x0008 /* LDO4_UV_EINT */
-#define WM8400_LDO4_UV_EINT_SHIFT 3 /* LDO4_UV_EINT */
-#define WM8400_LDO4_UV_EINT_WIDTH 1 /* LDO4_UV_EINT */
-#define WM8400_LDO3_UV_EINT 0x0004 /* LDO3_UV_EINT */
-#define WM8400_LDO3_UV_EINT_MASK 0x0004 /* LDO3_UV_EINT */
-#define WM8400_LDO3_UV_EINT_SHIFT 2 /* LDO3_UV_EINT */
-#define WM8400_LDO3_UV_EINT_WIDTH 1 /* LDO3_UV_EINT */
-#define WM8400_LDO2_UV_EINT 0x0002 /* LDO2_UV_EINT */
-#define WM8400_LDO2_UV_EINT_MASK 0x0002 /* LDO2_UV_EINT */
-#define WM8400_LDO2_UV_EINT_SHIFT 1 /* LDO2_UV_EINT */
-#define WM8400_LDO2_UV_EINT_WIDTH 1 /* LDO2_UV_EINT */
-#define WM8400_LDO1_UV_EINT 0x0001 /* LDO1_UV_EINT */
-#define WM8400_LDO1_UV_EINT_MASK 0x0001 /* LDO1_UV_EINT */
-#define WM8400_LDO1_UV_EINT_SHIFT 0 /* LDO1_UV_EINT */
-#define WM8400_LDO1_UV_EINT_WIDTH 1 /* LDO1_UV_EINT */
-
-/*
- * R80 (0x50) - Interrupt Status 1 Mask
- */
-#define WM8400_IM_MICD_CINT 0x8000 /* IM_MICD_CINT */
-#define WM8400_IM_MICD_CINT_MASK 0x8000 /* IM_MICD_CINT */
-#define WM8400_IM_MICD_CINT_SHIFT 15 /* IM_MICD_CINT */
-#define WM8400_IM_MICD_CINT_WIDTH 1 /* IM_MICD_CINT */
-#define WM8400_IM_MICSCD_CINT 0x4000 /* IM_MICSCD_CINT */
-#define WM8400_IM_MICSCD_CINT_MASK 0x4000 /* IM_MICSCD_CINT */
-#define WM8400_IM_MICSCD_CINT_SHIFT 14 /* IM_MICSCD_CINT */
-#define WM8400_IM_MICSCD_CINT_WIDTH 1 /* IM_MICSCD_CINT */
-#define WM8400_IM_JDL_CINT 0x2000 /* IM_JDL_CINT */
-#define WM8400_IM_JDL_CINT_MASK 0x2000 /* IM_JDL_CINT */
-#define WM8400_IM_JDL_CINT_SHIFT 13 /* IM_JDL_CINT */
-#define WM8400_IM_JDL_CINT_WIDTH 1 /* IM_JDL_CINT */
-#define WM8400_IM_JDR_CINT 0x1000 /* IM_JDR_CINT */
-#define WM8400_IM_JDR_CINT_MASK 0x1000 /* IM_JDR_CINT */
-#define WM8400_IM_JDR_CINT_SHIFT 12 /* IM_JDR_CINT */
-#define WM8400_IM_JDR_CINT_WIDTH 1 /* IM_JDR_CINT */
-#define WM8400_IM_CODEC_SEQ_END_EINT 0x0800 /* IM_CODEC_SEQ_END_EINT */
-#define WM8400_IM_CODEC_SEQ_END_EINT_MASK 0x0800 /* IM_CODEC_SEQ_END_EINT */
-#define WM8400_IM_CODEC_SEQ_END_EINT_SHIFT 11 /* IM_CODEC_SEQ_END_EINT */
-#define WM8400_IM_CODEC_SEQ_END_EINT_WIDTH 1 /* IM_CODEC_SEQ_END_EINT */
-#define WM8400_IM_CDEL_TO_EINT 0x0400 /* IM_CDEL_TO_EINT */
-#define WM8400_IM_CDEL_TO_EINT_MASK 0x0400 /* IM_CDEL_TO_EINT */
-#define WM8400_IM_CDEL_TO_EINT_SHIFT 10 /* IM_CDEL_TO_EINT */
-#define WM8400_IM_CDEL_TO_EINT_WIDTH 1 /* IM_CDEL_TO_EINT */
-#define WM8400_IM_CHIP_GT150_EINT 0x0200 /* IM_CHIP_GT150_EINT */
-#define WM8400_IM_CHIP_GT150_EINT_MASK 0x0200 /* IM_CHIP_GT150_EINT */
-#define WM8400_IM_CHIP_GT150_EINT_SHIFT 9 /* IM_CHIP_GT150_EINT */
-#define WM8400_IM_CHIP_GT150_EINT_WIDTH 1 /* IM_CHIP_GT150_EINT */
-#define WM8400_IM_CHIP_GT115_EINT 0x0100 /* IM_CHIP_GT115_EINT */
-#define WM8400_IM_CHIP_GT115_EINT_MASK 0x0100 /* IM_CHIP_GT115_EINT */
-#define WM8400_IM_CHIP_GT115_EINT_SHIFT 8 /* IM_CHIP_GT115_EINT */
-#define WM8400_IM_CHIP_GT115_EINT_WIDTH 1 /* IM_CHIP_GT115_EINT */
-#define WM8400_IM_LINE_CMP_EINT 0x0080 /* IM_LINE_CMP_EINT */
-#define WM8400_IM_LINE_CMP_EINT_MASK 0x0080 /* IM_LINE_CMP_EINT */
-#define WM8400_IM_LINE_CMP_EINT_SHIFT 7 /* IM_LINE_CMP_EINT */
-#define WM8400_IM_LINE_CMP_EINT_WIDTH 1 /* IM_LINE_CMP_EINT */
-#define WM8400_IM_UVLO_EINT 0x0040 /* IM_UVLO_EINT */
-#define WM8400_IM_UVLO_EINT_MASK 0x0040 /* IM_UVLO_EINT */
-#define WM8400_IM_UVLO_EINT_SHIFT 6 /* IM_UVLO_EINT */
-#define WM8400_IM_UVLO_EINT_WIDTH 1 /* IM_UVLO_EINT */
-#define WM8400_IM_DC2_UV_EINT 0x0020 /* IM_DC2_UV_EINT */
-#define WM8400_IM_DC2_UV_EINT_MASK 0x0020 /* IM_DC2_UV_EINT */
-#define WM8400_IM_DC2_UV_EINT_SHIFT 5 /* IM_DC2_UV_EINT */
-#define WM8400_IM_DC2_UV_EINT_WIDTH 1 /* IM_DC2_UV_EINT */
-#define WM8400_IM_DC1_UV_EINT 0x0010 /* IM_DC1_UV_EINT */
-#define WM8400_IM_DC1_UV_EINT_MASK 0x0010 /* IM_DC1_UV_EINT */
-#define WM8400_IM_DC1_UV_EINT_SHIFT 4 /* IM_DC1_UV_EINT */
-#define WM8400_IM_DC1_UV_EINT_WIDTH 1 /* IM_DC1_UV_EINT */
-#define WM8400_IM_LDO4_UV_EINT 0x0008 /* IM_LDO4_UV_EINT */
-#define WM8400_IM_LDO4_UV_EINT_MASK 0x0008 /* IM_LDO4_UV_EINT */
-#define WM8400_IM_LDO4_UV_EINT_SHIFT 3 /* IM_LDO4_UV_EINT */
-#define WM8400_IM_LDO4_UV_EINT_WIDTH 1 /* IM_LDO4_UV_EINT */
-#define WM8400_IM_LDO3_UV_EINT 0x0004 /* IM_LDO3_UV_EINT */
-#define WM8400_IM_LDO3_UV_EINT_MASK 0x0004 /* IM_LDO3_UV_EINT */
-#define WM8400_IM_LDO3_UV_EINT_SHIFT 2 /* IM_LDO3_UV_EINT */
-#define WM8400_IM_LDO3_UV_EINT_WIDTH 1 /* IM_LDO3_UV_EINT */
-#define WM8400_IM_LDO2_UV_EINT 0x0002 /* IM_LDO2_UV_EINT */
-#define WM8400_IM_LDO2_UV_EINT_MASK 0x0002 /* IM_LDO2_UV_EINT */
-#define WM8400_IM_LDO2_UV_EINT_SHIFT 1 /* IM_LDO2_UV_EINT */
-#define WM8400_IM_LDO2_UV_EINT_WIDTH 1 /* IM_LDO2_UV_EINT */
-#define WM8400_IM_LDO1_UV_EINT 0x0001 /* IM_LDO1_UV_EINT */
-#define WM8400_IM_LDO1_UV_EINT_MASK 0x0001 /* IM_LDO1_UV_EINT */
-#define WM8400_IM_LDO1_UV_EINT_SHIFT 0 /* IM_LDO1_UV_EINT */
-#define WM8400_IM_LDO1_UV_EINT_WIDTH 1 /* IM_LDO1_UV_EINT */
-
-/*
- * R81 (0x51) - Interrupt Levels
- */
-#define WM8400_MICD_LVL 0x8000 /* MICD_LVL */
-#define WM8400_MICD_LVL_MASK 0x8000 /* MICD_LVL */
-#define WM8400_MICD_LVL_SHIFT 15 /* MICD_LVL */
-#define WM8400_MICD_LVL_WIDTH 1 /* MICD_LVL */
-#define WM8400_MICSCD_LVL 0x4000 /* MICSCD_LVL */
-#define WM8400_MICSCD_LVL_MASK 0x4000 /* MICSCD_LVL */
-#define WM8400_MICSCD_LVL_SHIFT 14 /* MICSCD_LVL */
-#define WM8400_MICSCD_LVL_WIDTH 1 /* MICSCD_LVL */
-#define WM8400_JDL_LVL 0x2000 /* JDL_LVL */
-#define WM8400_JDL_LVL_MASK 0x2000 /* JDL_LVL */
-#define WM8400_JDL_LVL_SHIFT 13 /* JDL_LVL */
-#define WM8400_JDL_LVL_WIDTH 1 /* JDL_LVL */
-#define WM8400_JDR_LVL 0x1000 /* JDR_LVL */
-#define WM8400_JDR_LVL_MASK 0x1000 /* JDR_LVL */
-#define WM8400_JDR_LVL_SHIFT 12 /* JDR_LVL */
-#define WM8400_JDR_LVL_WIDTH 1 /* JDR_LVL */
-#define WM8400_CODEC_SEQ_END_LVL 0x0800 /* CODEC_SEQ_END_LVL */
-#define WM8400_CODEC_SEQ_END_LVL_MASK 0x0800 /* CODEC_SEQ_END_LVL */
-#define WM8400_CODEC_SEQ_END_LVL_SHIFT 11 /* CODEC_SEQ_END_LVL */
-#define WM8400_CODEC_SEQ_END_LVL_WIDTH 1 /* CODEC_SEQ_END_LVL */
-#define WM8400_CDEL_TO_LVL 0x0400 /* CDEL_TO_LVL */
-#define WM8400_CDEL_TO_LVL_MASK 0x0400 /* CDEL_TO_LVL */
-#define WM8400_CDEL_TO_LVL_SHIFT 10 /* CDEL_TO_LVL */
-#define WM8400_CDEL_TO_LVL_WIDTH 1 /* CDEL_TO_LVL */
-#define WM8400_CHIP_GT150_LVL 0x0200 /* CHIP_GT150_LVL */
-#define WM8400_CHIP_GT150_LVL_MASK 0x0200 /* CHIP_GT150_LVL */
-#define WM8400_CHIP_GT150_LVL_SHIFT 9 /* CHIP_GT150_LVL */
-#define WM8400_CHIP_GT150_LVL_WIDTH 1 /* CHIP_GT150_LVL */
-#define WM8400_CHIP_GT115_LVL 0x0100 /* CHIP_GT115_LVL */
-#define WM8400_CHIP_GT115_LVL_MASK 0x0100 /* CHIP_GT115_LVL */
-#define WM8400_CHIP_GT115_LVL_SHIFT 8 /* CHIP_GT115_LVL */
-#define WM8400_CHIP_GT115_LVL_WIDTH 1 /* CHIP_GT115_LVL */
-#define WM8400_LINE_CMP_LVL 0x0080 /* LINE_CMP_LVL */
-#define WM8400_LINE_CMP_LVL_MASK 0x0080 /* LINE_CMP_LVL */
-#define WM8400_LINE_CMP_LVL_SHIFT 7 /* LINE_CMP_LVL */
-#define WM8400_LINE_CMP_LVL_WIDTH 1 /* LINE_CMP_LVL */
-#define WM8400_UVLO_LVL 0x0040 /* UVLO_LVL */
-#define WM8400_UVLO_LVL_MASK 0x0040 /* UVLO_LVL */
-#define WM8400_UVLO_LVL_SHIFT 6 /* UVLO_LVL */
-#define WM8400_UVLO_LVL_WIDTH 1 /* UVLO_LVL */
-#define WM8400_DC2_UV_LVL 0x0020 /* DC2_UV_LVL */
-#define WM8400_DC2_UV_LVL_MASK 0x0020 /* DC2_UV_LVL */
-#define WM8400_DC2_UV_LVL_SHIFT 5 /* DC2_UV_LVL */
-#define WM8400_DC2_UV_LVL_WIDTH 1 /* DC2_UV_LVL */
-#define WM8400_DC1_UV_LVL 0x0010 /* DC1_UV_LVL */
-#define WM8400_DC1_UV_LVL_MASK 0x0010 /* DC1_UV_LVL */
-#define WM8400_DC1_UV_LVL_SHIFT 4 /* DC1_UV_LVL */
-#define WM8400_DC1_UV_LVL_WIDTH 1 /* DC1_UV_LVL */
-#define WM8400_LDO4_UV_LVL 0x0008 /* LDO4_UV_LVL */
-#define WM8400_LDO4_UV_LVL_MASK 0x0008 /* LDO4_UV_LVL */
-#define WM8400_LDO4_UV_LVL_SHIFT 3 /* LDO4_UV_LVL */
-#define WM8400_LDO4_UV_LVL_WIDTH 1 /* LDO4_UV_LVL */
-#define WM8400_LDO3_UV_LVL 0x0004 /* LDO3_UV_LVL */
-#define WM8400_LDO3_UV_LVL_MASK 0x0004 /* LDO3_UV_LVL */
-#define WM8400_LDO3_UV_LVL_SHIFT 2 /* LDO3_UV_LVL */
-#define WM8400_LDO3_UV_LVL_WIDTH 1 /* LDO3_UV_LVL */
-#define WM8400_LDO2_UV_LVL 0x0002 /* LDO2_UV_LVL */
-#define WM8400_LDO2_UV_LVL_MASK 0x0002 /* LDO2_UV_LVL */
-#define WM8400_LDO2_UV_LVL_SHIFT 1 /* LDO2_UV_LVL */
-#define WM8400_LDO2_UV_LVL_WIDTH 1 /* LDO2_UV_LVL */
-#define WM8400_LDO1_UV_LVL 0x0001 /* LDO1_UV_LVL */
-#define WM8400_LDO1_UV_LVL_MASK 0x0001 /* LDO1_UV_LVL */
-#define WM8400_LDO1_UV_LVL_SHIFT 0 /* LDO1_UV_LVL */
-#define WM8400_LDO1_UV_LVL_WIDTH 1 /* LDO1_UV_LVL */
-
-/*
- * R82 (0x52) - Shutdown Reason
- */
-#define WM8400_SDR_CHIP_SOFTSD 0x2000 /* SDR_CHIP_SOFTSD */
-#define WM8400_SDR_CHIP_SOFTSD_MASK 0x2000 /* SDR_CHIP_SOFTSD */
-#define WM8400_SDR_CHIP_SOFTSD_SHIFT 13 /* SDR_CHIP_SOFTSD */
-#define WM8400_SDR_CHIP_SOFTSD_WIDTH 1 /* SDR_CHIP_SOFTSD */
-#define WM8400_SDR_NPDN 0x0800 /* SDR_NPDN */
-#define WM8400_SDR_NPDN_MASK 0x0800 /* SDR_NPDN */
-#define WM8400_SDR_NPDN_SHIFT 11 /* SDR_NPDN */
-#define WM8400_SDR_NPDN_WIDTH 1 /* SDR_NPDN */
-#define WM8400_SDR_CHIP_GT150 0x0200 /* SDR_CHIP_GT150 */
-#define WM8400_SDR_CHIP_GT150_MASK 0x0200 /* SDR_CHIP_GT150 */
-#define WM8400_SDR_CHIP_GT150_SHIFT 9 /* SDR_CHIP_GT150 */
-#define WM8400_SDR_CHIP_GT150_WIDTH 1 /* SDR_CHIP_GT150 */
-#define WM8400_SDR_CHIP_GT115 0x0100 /* SDR_CHIP_GT115 */
-#define WM8400_SDR_CHIP_GT115_MASK 0x0100 /* SDR_CHIP_GT115 */
-#define WM8400_SDR_CHIP_GT115_SHIFT 8 /* SDR_CHIP_GT115 */
-#define WM8400_SDR_CHIP_GT115_WIDTH 1 /* SDR_CHIP_GT115 */
-#define WM8400_SDR_LINE_CMP 0x0080 /* SDR_LINE_CMP */
-#define WM8400_SDR_LINE_CMP_MASK 0x0080 /* SDR_LINE_CMP */
-#define WM8400_SDR_LINE_CMP_SHIFT 7 /* SDR_LINE_CMP */
-#define WM8400_SDR_LINE_CMP_WIDTH 1 /* SDR_LINE_CMP */
-#define WM8400_SDR_UVLO 0x0040 /* SDR_UVLO */
-#define WM8400_SDR_UVLO_MASK 0x0040 /* SDR_UVLO */
-#define WM8400_SDR_UVLO_SHIFT 6 /* SDR_UVLO */
-#define WM8400_SDR_UVLO_WIDTH 1 /* SDR_UVLO */
-#define WM8400_SDR_DC2_UV 0x0020 /* SDR_DC2_UV */
-#define WM8400_SDR_DC2_UV_MASK 0x0020 /* SDR_DC2_UV */
-#define WM8400_SDR_DC2_UV_SHIFT 5 /* SDR_DC2_UV */
-#define WM8400_SDR_DC2_UV_WIDTH 1 /* SDR_DC2_UV */
-#define WM8400_SDR_DC1_UV 0x0010 /* SDR_DC1_UV */
-#define WM8400_SDR_DC1_UV_MASK 0x0010 /* SDR_DC1_UV */
-#define WM8400_SDR_DC1_UV_SHIFT 4 /* SDR_DC1_UV */
-#define WM8400_SDR_DC1_UV_WIDTH 1 /* SDR_DC1_UV */
-#define WM8400_SDR_LDO4_UV 0x0008 /* SDR_LDO4_UV */
-#define WM8400_SDR_LDO4_UV_MASK 0x0008 /* SDR_LDO4_UV */
-#define WM8400_SDR_LDO4_UV_SHIFT 3 /* SDR_LDO4_UV */
-#define WM8400_SDR_LDO4_UV_WIDTH 1 /* SDR_LDO4_UV */
-#define WM8400_SDR_LDO3_UV 0x0004 /* SDR_LDO3_UV */
-#define WM8400_SDR_LDO3_UV_MASK 0x0004 /* SDR_LDO3_UV */
-#define WM8400_SDR_LDO3_UV_SHIFT 2 /* SDR_LDO3_UV */
-#define WM8400_SDR_LDO3_UV_WIDTH 1 /* SDR_LDO3_UV */
-#define WM8400_SDR_LDO2_UV 0x0002 /* SDR_LDO2_UV */
-#define WM8400_SDR_LDO2_UV_MASK 0x0002 /* SDR_LDO2_UV */
-#define WM8400_SDR_LDO2_UV_SHIFT 1 /* SDR_LDO2_UV */
-#define WM8400_SDR_LDO2_UV_WIDTH 1 /* SDR_LDO2_UV */
-#define WM8400_SDR_LDO1_UV 0x0001 /* SDR_LDO1_UV */
-#define WM8400_SDR_LDO1_UV_MASK 0x0001 /* SDR_LDO1_UV */
-#define WM8400_SDR_LDO1_UV_SHIFT 0 /* SDR_LDO1_UV */
-#define WM8400_SDR_LDO1_UV_WIDTH 1 /* SDR_LDO1_UV */
-
-/*
- * R84 (0x54) - Line Circuits
- */
-#define WM8400_BG_LINE_COMP 0x8000 /* BG_LINE_COMP */
-#define WM8400_BG_LINE_COMP_MASK 0x8000 /* BG_LINE_COMP */
-#define WM8400_BG_LINE_COMP_SHIFT 15 /* BG_LINE_COMP */
-#define WM8400_BG_LINE_COMP_WIDTH 1 /* BG_LINE_COMP */
-#define WM8400_LINE_CMP_VTHI_MASK 0x00F0 /* LINE_CMP_VTHI - [7:4] */
-#define WM8400_LINE_CMP_VTHI_SHIFT 4 /* LINE_CMP_VTHI - [7:4] */
-#define WM8400_LINE_CMP_VTHI_WIDTH 4 /* LINE_CMP_VTHI - [7:4] */
-#define WM8400_LINE_CMP_VTHD_MASK 0x000F /* LINE_CMP_VTHD - [3:0] */
-#define WM8400_LINE_CMP_VTHD_SHIFT 0 /* LINE_CMP_VTHD - [3:0] */
-#define WM8400_LINE_CMP_VTHD_WIDTH 4 /* LINE_CMP_VTHD - [3:0] */
-
-u16 wm8400_reg_read(struct wm8400 *wm8400, u8 reg);
-int wm8400_block_read(struct wm8400 *wm8400, u8 reg, int count, u16 *data);
-int wm8400_set_bits(struct wm8400 *wm8400, u8 reg, u16 mask, u16 val);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/wm8400.h b/ANDROID_3.4.5/include/linux/mfd/wm8400.h
deleted file mode 100644
index b46b566a..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/wm8400.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * wm8400 client interface
- *
- * Copyright 2008 Wolfson Microelectronics plc
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef __LINUX_MFD_WM8400_H
-#define __LINUX_MFD_WM8400_H
-
-#include <linux/regulator/machine.h>
-
-#define WM8400_LDO1 0
-#define WM8400_LDO2 1
-#define WM8400_LDO3 2
-#define WM8400_LDO4 3
-#define WM8400_DCDC1 4
-#define WM8400_DCDC2 5
-
-struct wm8400_platform_data {
- int (*platform_init)(struct device *dev);
-};
-
-int wm8400_register_regulator(struct device *dev, int reg,
- struct regulator_init_data *initdata);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/wm8994/core.h b/ANDROID_3.4.5/include/linux/mfd/wm8994/core.h
deleted file mode 100644
index 9eff2a35..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/wm8994/core.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * include/linux/mfd/wm8994/core.h -- Core interface for WM8994
- *
- * Copyright 2009 Wolfson Microelectronics PLC.
- *
- * Author: Mark Brown <broonie@opensource.wolfsonmicro.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 __MFD_WM8994_CORE_H__
-#define __MFD_WM8994_CORE_H__
-
-#include <linux/mutex.h>
-#include <linux/interrupt.h>
-
-enum wm8994_type {
- WM8994 = 0,
- WM8958 = 1,
- WM1811 = 2,
-};
-
-struct regulator_dev;
-struct regulator_bulk_data;
-struct regmap;
-
-#define WM8994_NUM_GPIO_REGS 11
-#define WM8994_NUM_LDO_REGS 2
-#define WM8994_NUM_IRQ_REGS 2
-
-#define WM8994_IRQ_TEMP_SHUT 0
-#define WM8994_IRQ_MIC1_DET 1
-#define WM8994_IRQ_MIC1_SHRT 2
-#define WM8994_IRQ_MIC2_DET 3
-#define WM8994_IRQ_MIC2_SHRT 4
-#define WM8994_IRQ_FLL1_LOCK 5
-#define WM8994_IRQ_FLL2_LOCK 6
-#define WM8994_IRQ_SRC1_LOCK 7
-#define WM8994_IRQ_SRC2_LOCK 8
-#define WM8994_IRQ_AIF1DRC1_SIG_DET 9
-#define WM8994_IRQ_AIF1DRC2_SIG_DET 10
-#define WM8994_IRQ_AIF2DRC_SIG_DET 11
-#define WM8994_IRQ_FIFOS_ERR 12
-#define WM8994_IRQ_WSEQ_DONE 13
-#define WM8994_IRQ_DCS_DONE 14
-#define WM8994_IRQ_TEMP_WARN 15
-
-/* GPIOs in the chip are numbered from 1-11 */
-#define WM8994_IRQ_GPIO(x) (x + WM8994_IRQ_TEMP_WARN)
-
-struct wm8994 {
- struct mutex irq_lock;
-
- enum wm8994_type type;
- int revision;
-
- struct device *dev;
- struct regmap *regmap;
-
- bool ldo_ena_always_driven;
-
- int gpio_base;
- int irq_base;
-
- int irq;
- struct regmap_irq_chip_data *irq_data;
-
- /* Used over suspend/resume */
- bool suspended;
-
- struct regulator_dev *dbvdd;
- int num_supplies;
- struct regulator_bulk_data *supplies;
-};
-
-/* Device I/O API */
-int wm8994_reg_read(struct wm8994 *wm8994, unsigned short reg);
-int wm8994_reg_write(struct wm8994 *wm8994, unsigned short reg,
- unsigned short val);
-int wm8994_set_bits(struct wm8994 *wm8994, unsigned short reg,
- unsigned short mask, unsigned short val);
-int wm8994_bulk_read(struct wm8994 *wm8994, unsigned short reg,
- int count, u16 *buf);
-int wm8994_bulk_write(struct wm8994 *wm8994, unsigned short reg,
- int count, const u16 *buf);
-
-
-/* Helper to save on boilerplate */
-static inline int wm8994_request_irq(struct wm8994 *wm8994, int irq,
- irq_handler_t handler, const char *name,
- void *data)
-{
- if (!wm8994->irq_base)
- return -EINVAL;
- return request_threaded_irq(wm8994->irq_base + irq, NULL, handler,
- IRQF_TRIGGER_RISING, name,
- data);
-}
-static inline void wm8994_free_irq(struct wm8994 *wm8994, int irq, void *data)
-{
- if (!wm8994->irq_base)
- return;
- free_irq(wm8994->irq_base + irq, data);
-}
-
-int wm8994_irq_init(struct wm8994 *wm8994);
-void wm8994_irq_exit(struct wm8994 *wm8994);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/wm8994/gpio.h b/ANDROID_3.4.5/include/linux/mfd/wm8994/gpio.h
deleted file mode 100644
index 0c79b5ff..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/wm8994/gpio.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * include/linux/mfd/wm8994/gpio.h - GPIO configuration for WM8994
- *
- * Copyright 2009 Wolfson Microelectronics PLC.
- *
- * Author: Mark Brown <broonie@opensource.wolfsonmicro.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 __MFD_WM8994_GPIO_H__
-#define __MFD_WM8994_GPIO_H__
-
-#define WM8994_GPIO_MAX 11
-
-#define WM8994_GP_FN_PIN_SPECIFIC 0
-#define WM8994_GP_FN_GPIO 1
-#define WM8994_GP_FN_SDOUT 2
-#define WM8994_GP_FN_IRQ 3
-#define WM8994_GP_FN_TEMPERATURE 4
-#define WM8994_GP_FN_MICBIAS1_DET 5
-#define WM8994_GP_FN_MICBIAS1_SHORT 6
-#define WM8994_GP_FN_MICBIAS2_DET 7
-#define WM8994_GP_FN_MICBIAS2_SHORT 8
-#define WM8994_GP_FN_FLL1_LOCK 9
-#define WM8994_GP_FN_FLL2_LOCK 10
-#define WM8994_GP_FN_SRC1_LOCK 11
-#define WM8994_GP_FN_SRC2_LOCK 12
-#define WM8994_GP_FN_DRC1_ACT 13
-#define WM8994_GP_FN_DRC2_ACT 14
-#define WM8994_GP_FN_DRC3_ACT 15
-#define WM8994_GP_FN_WSEQ_STATUS 16
-#define WM8994_GP_FN_FIFO_ERROR 17
-#define WM8994_GP_FN_OPCLK 18
-#define WM8994_GP_FN_THW 19
-#define WM8994_GP_FN_DCS_DONE 20
-#define WM8994_GP_FN_FLL1_OUT 21
-#define WM8994_GP_FN_FLL2_OUT 22
-
-#define WM8994_GPN_DIR 0x8000 /* GPN_DIR */
-#define WM8994_GPN_DIR_MASK 0x8000 /* GPN_DIR */
-#define WM8994_GPN_DIR_SHIFT 15 /* GPN_DIR */
-#define WM8994_GPN_DIR_WIDTH 1 /* GPN_DIR */
-#define WM8994_GPN_PU 0x4000 /* GPN_PU */
-#define WM8994_GPN_PU_MASK 0x4000 /* GPN_PU */
-#define WM8994_GPN_PU_SHIFT 14 /* GPN_PU */
-#define WM8994_GPN_PU_WIDTH 1 /* GPN_PU */
-#define WM8994_GPN_PD 0x2000 /* GPN_PD */
-#define WM8994_GPN_PD_MASK 0x2000 /* GPN_PD */
-#define WM8994_GPN_PD_SHIFT 13 /* GPN_PD */
-#define WM8994_GPN_PD_WIDTH 1 /* GPN_PD */
-#define WM8994_GPN_POL 0x0400 /* GPN_POL */
-#define WM8994_GPN_POL_MASK 0x0400 /* GPN_POL */
-#define WM8994_GPN_POL_SHIFT 10 /* GPN_POL */
-#define WM8994_GPN_POL_WIDTH 1 /* GPN_POL */
-#define WM8994_GPN_OP_CFG 0x0200 /* GPN_OP_CFG */
-#define WM8994_GPN_OP_CFG_MASK 0x0200 /* GPN_OP_CFG */
-#define WM8994_GPN_OP_CFG_SHIFT 9 /* GPN_OP_CFG */
-#define WM8994_GPN_OP_CFG_WIDTH 1 /* GPN_OP_CFG */
-#define WM8994_GPN_DB 0x0100 /* GPN_DB */
-#define WM8994_GPN_DB_MASK 0x0100 /* GPN_DB */
-#define WM8994_GPN_DB_SHIFT 8 /* GPN_DB */
-#define WM8994_GPN_DB_WIDTH 1 /* GPN_DB */
-#define WM8994_GPN_LVL 0x0040 /* GPN_LVL */
-#define WM8994_GPN_LVL_MASK 0x0040 /* GPN_LVL */
-#define WM8994_GPN_LVL_SHIFT 6 /* GPN_LVL */
-#define WM8994_GPN_LVL_WIDTH 1 /* GPN_LVL */
-#define WM8994_GPN_FN_MASK 0x001F /* GPN_FN - [4:0] */
-#define WM8994_GPN_FN_SHIFT 0 /* GPN_FN - [4:0] */
-#define WM8994_GPN_FN_WIDTH 5 /* GPN_FN - [4:0] */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/wm8994/pdata.h b/ANDROID_3.4.5/include/linux/mfd/wm8994/pdata.h
deleted file mode 100644
index 893267bb..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/wm8994/pdata.h
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- * include/linux/mfd/wm8994/pdata.h -- Platform data for WM8994
- *
- * Copyright 2009 Wolfson Microelectronics PLC.
- *
- * Author: Mark Brown <broonie@opensource.wolfsonmicro.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 __MFD_WM8994_PDATA_H__
-#define __MFD_WM8994_PDATA_H__
-
-#define WM8994_NUM_LDO 2
-#define WM8994_NUM_GPIO 11
-
-struct wm8994_ldo_pdata {
- /** GPIOs to enable regulator, 0 or less if not available */
- int enable;
-
- const struct regulator_init_data *init_data;
-};
-
-#define WM8994_CONFIGURE_GPIO 0x10000
-
-#define WM8994_DRC_REGS 5
-#define WM8994_EQ_REGS 20
-#define WM8958_MBC_CUTOFF_REGS 20
-#define WM8958_MBC_COEFF_REGS 48
-#define WM8958_MBC_COMBINED_REGS 56
-#define WM8958_VSS_HPF_REGS 2
-#define WM8958_VSS_REGS 148
-#define WM8958_ENH_EQ_REGS 32
-
-/**
- * DRC configurations are specified with a label and a set of register
- * values to write (the enable bits will be ignored). At runtime an
- * enumerated control will be presented for each DRC block allowing
- * the user to choose the configration to use.
- *
- * Configurations may be generated by hand or by using the DRC control
- * panel provided by the WISCE - see http://www.wolfsonmicro.com/wisce/
- * for details.
- */
-struct wm8994_drc_cfg {
- const char *name;
- u16 regs[WM8994_DRC_REGS];
-};
-
-/**
- * ReTune Mobile configurations are specified with a label, sample
- * rate and set of values to write (the enable bits will be ignored).
- *
- * Configurations are expected to be generated using the ReTune Mobile
- * control panel in WISCE - see http://www.wolfsonmicro.com/wisce/
- */
-struct wm8994_retune_mobile_cfg {
- const char *name;
- unsigned int rate;
- u16 regs[WM8994_EQ_REGS];
-};
-
-/**
- * Multiband compressor configurations are specified with a label and
- * two sets of values to write. Configurations are expected to be
- * generated using the multiband compressor configuration panel in
- * WISCE - see http://www.wolfsonmicro.com/wisce/
- */
-struct wm8958_mbc_cfg {
- const char *name;
- u16 cutoff_regs[WM8958_MBC_CUTOFF_REGS];
- u16 coeff_regs[WM8958_MBC_COEFF_REGS];
-
- /* Coefficient layout when using MBC+VSS firmware */
- u16 combined_regs[WM8958_MBC_COMBINED_REGS];
-};
-
-/**
- * VSS HPF configurations are specified with a label and two values to
- * write. Configurations are expected to be generated using the
- * multiband compressor configuration panel in WISCE - see
- * http://www.wolfsonmicro.com/wisce/
- */
-struct wm8958_vss_hpf_cfg {
- const char *name;
- u16 regs[WM8958_VSS_HPF_REGS];
-};
-
-/**
- * VSS configurations are specified with a label and array of values
- * to write. Configurations are expected to be generated using the
- * multiband compressor configuration panel in WISCE - see
- * http://www.wolfsonmicro.com/wisce/
- */
-struct wm8958_vss_cfg {
- const char *name;
- u16 regs[WM8958_VSS_REGS];
-};
-
-/**
- * Enhanced EQ configurations are specified with a label and array of
- * values to write. Configurations are expected to be generated using
- * the multiband compressor configuration panel in WISCE - see
- * http://www.wolfsonmicro.com/wisce/
- */
-struct wm8958_enh_eq_cfg {
- const char *name;
- u16 regs[WM8958_ENH_EQ_REGS];
-};
-
-/**
- * Microphone detection rates, used to tune response rates and power
- * consumption for WM8958/WM1811 microphone detection.
- *
- * @sysclk: System clock rate to use this configuration for.
- * @idle: True if this configuration should use when no accessory is detected,
- * false otherwise.
- * @start: Value for MICD_BIAS_START_TIME register field (not shifted).
- * @rate: Value for MICD_RATE register field (not shifted).
- */
-struct wm8958_micd_rate {
- int sysclk;
- bool idle;
- int start;
- int rate;
-};
-
-struct wm8994_pdata {
- int gpio_base;
-
- /**
- * Default values for GPIOs if non-zero, WM8994_CONFIGURE_GPIO
- * can be used for all zero values.
- */
- int gpio_defaults[WM8994_NUM_GPIO];
-
- struct wm8994_ldo_pdata ldo[WM8994_NUM_LDO];
-
- int irq_base; /** Base IRQ number for WM8994, required for IRQs */
-
- int num_drc_cfgs;
- struct wm8994_drc_cfg *drc_cfgs;
-
- int num_retune_mobile_cfgs;
- struct wm8994_retune_mobile_cfg *retune_mobile_cfgs;
-
- int num_mbc_cfgs;
- struct wm8958_mbc_cfg *mbc_cfgs;
-
- int num_vss_cfgs;
- struct wm8958_vss_cfg *vss_cfgs;
-
- int num_vss_hpf_cfgs;
- struct wm8958_vss_hpf_cfg *vss_hpf_cfgs;
-
- int num_enh_eq_cfgs;
- struct wm8958_enh_eq_cfg *enh_eq_cfgs;
-
- int num_micd_rates;
- struct wm8958_micd_rate *micd_rates;
-
- /* LINEOUT can be differential or single ended */
- unsigned int lineout1_diff:1;
- unsigned int lineout2_diff:1;
-
- /* Common mode feedback */
- unsigned int lineout1fb:1;
- unsigned int lineout2fb:1;
-
- /* IRQ for microphone detection if brought out directly as a
- * signal.
- */
- int micdet_irq;
-
- /* WM8994 microphone biases: 0=0.9*AVDD1 1=0.65*AVVD1 */
- unsigned int micbias1_lvl:1;
- unsigned int micbias2_lvl:1;
-
- /* WM8994 jack detect threashold levels, see datasheet for values */
- unsigned int jd_scthr:2;
- unsigned int jd_thr:2;
-
- /* Configure WM1811 jack detection for use with external capacitor */
- unsigned int jd_ext_cap:1;
-
- /* WM8958 microphone bias configuration */
- int micbias[2];
-
- /* WM8958 microphone detection ranges */
- u16 micd_lvl_sel;
-
- /* Disable the internal pull downs on the LDOs if they are
- * always driven (eg, connected to an always on supply or
- * GPIO that always drives an output. If they float power
- * consumption will rise.
- */
- bool ldo_ena_always_driven;
-
- /*
- * SPKMODE must be pulled internally by the device on this
- * system.
- */
- bool spkmode_pu;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mfd/wm8994/registers.h b/ANDROID_3.4.5/include/linux/mfd/wm8994/registers.h
deleted file mode 100644
index 86e6a032..00000000
--- a/ANDROID_3.4.5/include/linux/mfd/wm8994/registers.h
+++ /dev/null
@@ -1,4811 +0,0 @@
-/*
- * include/linux/mfd/wm8994/registers.h -- Register definitions for WM8994
- *
- * Copyright 2009 Wolfson Microelectronics PLC.
- *
- * Author: Mark Brown <broonie@opensource.wolfsonmicro.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 __MFD_WM8994_REGISTERS_H__
-#define __MFD_WM8994_REGISTERS_H__
-
-/*
- * Register values.
- */
-#define WM8994_SOFTWARE_RESET 0x00
-#define WM8994_POWER_MANAGEMENT_1 0x01
-#define WM8994_POWER_MANAGEMENT_2 0x02
-#define WM8994_POWER_MANAGEMENT_3 0x03
-#define WM8994_POWER_MANAGEMENT_4 0x04
-#define WM8994_POWER_MANAGEMENT_5 0x05
-#define WM8994_POWER_MANAGEMENT_6 0x06
-#define WM8994_INPUT_MIXER_1 0x15
-#define WM8994_LEFT_LINE_INPUT_1_2_VOLUME 0x18
-#define WM8994_LEFT_LINE_INPUT_3_4_VOLUME 0x19
-#define WM8994_RIGHT_LINE_INPUT_1_2_VOLUME 0x1A
-#define WM8994_RIGHT_LINE_INPUT_3_4_VOLUME 0x1B
-#define WM8994_LEFT_OUTPUT_VOLUME 0x1C
-#define WM8994_RIGHT_OUTPUT_VOLUME 0x1D
-#define WM8994_LINE_OUTPUTS_VOLUME 0x1E
-#define WM8994_HPOUT2_VOLUME 0x1F
-#define WM8994_LEFT_OPGA_VOLUME 0x20
-#define WM8994_RIGHT_OPGA_VOLUME 0x21
-#define WM8994_SPKMIXL_ATTENUATION 0x22
-#define WM8994_SPKMIXR_ATTENUATION 0x23
-#define WM8994_SPKOUT_MIXERS 0x24
-#define WM8994_CLASSD 0x25
-#define WM8994_SPEAKER_VOLUME_LEFT 0x26
-#define WM8994_SPEAKER_VOLUME_RIGHT 0x27
-#define WM8994_INPUT_MIXER_2 0x28
-#define WM8994_INPUT_MIXER_3 0x29
-#define WM8994_INPUT_MIXER_4 0x2A
-#define WM8994_INPUT_MIXER_5 0x2B
-#define WM8994_INPUT_MIXER_6 0x2C
-#define WM8994_OUTPUT_MIXER_1 0x2D
-#define WM8994_OUTPUT_MIXER_2 0x2E
-#define WM8994_OUTPUT_MIXER_3 0x2F
-#define WM8994_OUTPUT_MIXER_4 0x30
-#define WM8994_OUTPUT_MIXER_5 0x31
-#define WM8994_OUTPUT_MIXER_6 0x32
-#define WM8994_HPOUT2_MIXER 0x33
-#define WM8994_LINE_MIXER_1 0x34
-#define WM8994_LINE_MIXER_2 0x35
-#define WM8994_SPEAKER_MIXER 0x36
-#define WM8994_ADDITIONAL_CONTROL 0x37
-#define WM8994_ANTIPOP_1 0x38
-#define WM8994_ANTIPOP_2 0x39
-#define WM8994_MICBIAS 0x3A
-#define WM8994_LDO_1 0x3B
-#define WM8994_LDO_2 0x3C
-#define WM8958_MICBIAS1 0x3D
-#define WM8958_MICBIAS2 0x3E
-#define WM8994_CHARGE_PUMP_1 0x4C
-#define WM8958_CHARGE_PUMP_2 0x4D
-#define WM8994_CLASS_W_1 0x51
-#define WM8994_DC_SERVO_1 0x54
-#define WM8994_DC_SERVO_2 0x55
-#define WM8994_DC_SERVO_4 0x57
-#define WM8994_DC_SERVO_READBACK 0x58
-#define WM8994_DC_SERVO_4E 0x59
-#define WM8994_ANALOGUE_HP_1 0x60
-#define WM8958_MIC_DETECT_1 0xD0
-#define WM8958_MIC_DETECT_2 0xD1
-#define WM8958_MIC_DETECT_3 0xD2
-#define WM8994_CHIP_REVISION 0x100
-#define WM8994_CONTROL_INTERFACE 0x101
-#define WM8994_WRITE_SEQUENCER_CTRL_1 0x110
-#define WM8994_WRITE_SEQUENCER_CTRL_2 0x111
-#define WM8994_AIF1_CLOCKING_1 0x200
-#define WM8994_AIF1_CLOCKING_2 0x201
-#define WM8994_AIF2_CLOCKING_1 0x204
-#define WM8994_AIF2_CLOCKING_2 0x205
-#define WM8994_CLOCKING_1 0x208
-#define WM8994_CLOCKING_2 0x209
-#define WM8994_AIF1_RATE 0x210
-#define WM8994_AIF2_RATE 0x211
-#define WM8994_RATE_STATUS 0x212
-#define WM8994_FLL1_CONTROL_1 0x220
-#define WM8994_FLL1_CONTROL_2 0x221
-#define WM8994_FLL1_CONTROL_3 0x222
-#define WM8994_FLL1_CONTROL_4 0x223
-#define WM8994_FLL1_CONTROL_5 0x224
-#define WM8958_FLL1_EFS_1 0x226
-#define WM8958_FLL1_EFS_2 0x227
-#define WM8994_FLL2_CONTROL_1 0x240
-#define WM8994_FLL2_CONTROL_2 0x241
-#define WM8994_FLL2_CONTROL_3 0x242
-#define WM8994_FLL2_CONTROL_4 0x243
-#define WM8994_FLL2_CONTROL_5 0x244
-#define WM8958_FLL2_EFS_1 0x246
-#define WM8958_FLL2_EFS_2 0x247
-#define WM8994_AIF1_CONTROL_1 0x300
-#define WM8994_AIF1_CONTROL_2 0x301
-#define WM8994_AIF1_MASTER_SLAVE 0x302
-#define WM8994_AIF1_BCLK 0x303
-#define WM8994_AIF1ADC_LRCLK 0x304
-#define WM8994_AIF1DAC_LRCLK 0x305
-#define WM8994_AIF1DAC_DATA 0x306
-#define WM8994_AIF1ADC_DATA 0x307
-#define WM8994_AIF2_CONTROL_1 0x310
-#define WM8994_AIF2_CONTROL_2 0x311
-#define WM8994_AIF2_MASTER_SLAVE 0x312
-#define WM8994_AIF2_BCLK 0x313
-#define WM8994_AIF2ADC_LRCLK 0x314
-#define WM8994_AIF2DAC_LRCLK 0x315
-#define WM8994_AIF2DAC_DATA 0x316
-#define WM8994_AIF2ADC_DATA 0x317
-#define WM1811_AIF2TX_CONTROL 0x318
-#define WM8958_AIF3_CONTROL_1 0x320
-#define WM8958_AIF3_CONTROL_2 0x321
-#define WM8958_AIF3DAC_DATA 0x322
-#define WM8958_AIF3ADC_DATA 0x323
-#define WM8994_AIF1_ADC1_LEFT_VOLUME 0x400
-#define WM8994_AIF1_ADC1_RIGHT_VOLUME 0x401
-#define WM8994_AIF1_DAC1_LEFT_VOLUME 0x402
-#define WM8994_AIF1_DAC1_RIGHT_VOLUME 0x403
-#define WM8994_AIF1_ADC2_LEFT_VOLUME 0x404
-#define WM8994_AIF1_ADC2_RIGHT_VOLUME 0x405
-#define WM8994_AIF1_DAC2_LEFT_VOLUME 0x406
-#define WM8994_AIF1_DAC2_RIGHT_VOLUME 0x407
-#define WM8994_AIF1_ADC1_FILTERS 0x410
-#define WM8994_AIF1_ADC2_FILTERS 0x411
-#define WM8994_AIF1_DAC1_FILTERS_1 0x420
-#define WM8994_AIF1_DAC1_FILTERS_2 0x421
-#define WM8994_AIF1_DAC2_FILTERS_1 0x422
-#define WM8994_AIF1_DAC2_FILTERS_2 0x423
-#define WM8958_AIF1_DAC1_NOISE_GATE 0x430
-#define WM8958_AIF1_DAC2_NOISE_GATE 0x431
-#define WM8994_AIF1_DRC1_1 0x440
-#define WM8994_AIF1_DRC1_2 0x441
-#define WM8994_AIF1_DRC1_3 0x442
-#define WM8994_AIF1_DRC1_4 0x443
-#define WM8994_AIF1_DRC1_5 0x444
-#define WM8994_AIF1_DRC2_1 0x450
-#define WM8994_AIF1_DRC2_2 0x451
-#define WM8994_AIF1_DRC2_3 0x452
-#define WM8994_AIF1_DRC2_4 0x453
-#define WM8994_AIF1_DRC2_5 0x454
-#define WM8994_AIF1_DAC1_EQ_GAINS_1 0x480
-#define WM8994_AIF1_DAC1_EQ_GAINS_2 0x481
-#define WM8994_AIF1_DAC1_EQ_BAND_1_A 0x482
-#define WM8994_AIF1_DAC1_EQ_BAND_1_B 0x483
-#define WM8994_AIF1_DAC1_EQ_BAND_1_PG 0x484
-#define WM8994_AIF1_DAC1_EQ_BAND_2_A 0x485
-#define WM8994_AIF1_DAC1_EQ_BAND_2_B 0x486
-#define WM8994_AIF1_DAC1_EQ_BAND_2_C 0x487
-#define WM8994_AIF1_DAC1_EQ_BAND_2_PG 0x488
-#define WM8994_AIF1_DAC1_EQ_BAND_3_A 0x489
-#define WM8994_AIF1_DAC1_EQ_BAND_3_B 0x48A
-#define WM8994_AIF1_DAC1_EQ_BAND_3_C 0x48B
-#define WM8994_AIF1_DAC1_EQ_BAND_3_PG 0x48C
-#define WM8994_AIF1_DAC1_EQ_BAND_4_A 0x48D
-#define WM8994_AIF1_DAC1_EQ_BAND_4_B 0x48E
-#define WM8994_AIF1_DAC1_EQ_BAND_4_C 0x48F
-#define WM8994_AIF1_DAC1_EQ_BAND_4_PG 0x490
-#define WM8994_AIF1_DAC1_EQ_BAND_5_A 0x491
-#define WM8994_AIF1_DAC1_EQ_BAND_5_B 0x492
-#define WM8994_AIF1_DAC1_EQ_BAND_5_PG 0x493
-#define WM8994_AIF1_DAC1_EQ_BAND_1_C 0x494
-#define WM8994_AIF1_DAC2_EQ_GAINS_1 0x4A0
-#define WM8994_AIF1_DAC2_EQ_GAINS_2 0x4A1
-#define WM8994_AIF1_DAC2_EQ_BAND_1_A 0x4A2
-#define WM8994_AIF1_DAC2_EQ_BAND_1_B 0x4A3
-#define WM8994_AIF1_DAC2_EQ_BAND_1_PG 0x4A4
-#define WM8994_AIF1_DAC2_EQ_BAND_2_A 0x4A5
-#define WM8994_AIF1_DAC2_EQ_BAND_2_B 0x4A6
-#define WM8994_AIF1_DAC2_EQ_BAND_2_C 0x4A7
-#define WM8994_AIF1_DAC2_EQ_BAND_2_PG 0x4A8
-#define WM8994_AIF1_DAC2_EQ_BAND_3_A 0x4A9
-#define WM8994_AIF1_DAC2_EQ_BAND_3_B 0x4AA
-#define WM8994_AIF1_DAC2_EQ_BAND_3_C 0x4AB
-#define WM8994_AIF1_DAC2_EQ_BAND_3_PG 0x4AC
-#define WM8994_AIF1_DAC2_EQ_BAND_4_A 0x4AD
-#define WM8994_AIF1_DAC2_EQ_BAND_4_B 0x4AE
-#define WM8994_AIF1_DAC2_EQ_BAND_4_C 0x4AF
-#define WM8994_AIF1_DAC2_EQ_BAND_4_PG 0x4B0
-#define WM8994_AIF1_DAC2_EQ_BAND_5_A 0x4B1
-#define WM8994_AIF1_DAC2_EQ_BAND_5_B 0x4B2
-#define WM8994_AIF1_DAC2_EQ_BAND_5_PG 0x4B3
-#define WM8994_AIF1_DAC2_EQ_BAND_1_C 0x4B4
-#define WM8994_AIF2_ADC_LEFT_VOLUME 0x500
-#define WM8994_AIF2_ADC_RIGHT_VOLUME 0x501
-#define WM8994_AIF2_DAC_LEFT_VOLUME 0x502
-#define WM8994_AIF2_DAC_RIGHT_VOLUME 0x503
-#define WM8994_AIF2_ADC_FILTERS 0x510
-#define WM8994_AIF2_DAC_FILTERS_1 0x520
-#define WM8994_AIF2_DAC_FILTERS_2 0x521
-#define WM8958_AIF2_DAC_NOISE_GATE 0x530
-#define WM8994_AIF2_DRC_1 0x540
-#define WM8994_AIF2_DRC_2 0x541
-#define WM8994_AIF2_DRC_3 0x542
-#define WM8994_AIF2_DRC_4 0x543
-#define WM8994_AIF2_DRC_5 0x544
-#define WM8994_AIF2_EQ_GAINS_1 0x580
-#define WM8994_AIF2_EQ_GAINS_2 0x581
-#define WM8994_AIF2_EQ_BAND_1_A 0x582
-#define WM8994_AIF2_EQ_BAND_1_B 0x583
-#define WM8994_AIF2_EQ_BAND_1_PG 0x584
-#define WM8994_AIF2_EQ_BAND_2_A 0x585
-#define WM8994_AIF2_EQ_BAND_2_B 0x586
-#define WM8994_AIF2_EQ_BAND_2_C 0x587
-#define WM8994_AIF2_EQ_BAND_2_PG 0x588
-#define WM8994_AIF2_EQ_BAND_3_A 0x589
-#define WM8994_AIF2_EQ_BAND_3_B 0x58A
-#define WM8994_AIF2_EQ_BAND_3_C 0x58B
-#define WM8994_AIF2_EQ_BAND_3_PG 0x58C
-#define WM8994_AIF2_EQ_BAND_4_A 0x58D
-#define WM8994_AIF2_EQ_BAND_4_B 0x58E
-#define WM8994_AIF2_EQ_BAND_4_C 0x58F
-#define WM8994_AIF2_EQ_BAND_4_PG 0x590
-#define WM8994_AIF2_EQ_BAND_5_A 0x591
-#define WM8994_AIF2_EQ_BAND_5_B 0x592
-#define WM8994_AIF2_EQ_BAND_5_PG 0x593
-#define WM8994_AIF2_EQ_BAND_1_C 0x594
-#define WM8994_DAC1_MIXER_VOLUMES 0x600
-#define WM8994_DAC1_LEFT_MIXER_ROUTING 0x601
-#define WM8994_DAC1_RIGHT_MIXER_ROUTING 0x602
-#define WM8994_DAC2_MIXER_VOLUMES 0x603
-#define WM8994_DAC2_LEFT_MIXER_ROUTING 0x604
-#define WM8994_DAC2_RIGHT_MIXER_ROUTING 0x605
-#define WM8994_AIF1_ADC1_LEFT_MIXER_ROUTING 0x606
-#define WM8994_AIF1_ADC1_RIGHT_MIXER_ROUTING 0x607
-#define WM8994_AIF1_ADC2_LEFT_MIXER_ROUTING 0x608
-#define WM8994_AIF1_ADC2_RIGHT_MIXER_ROUTING 0x609
-#define WM8994_DAC1_LEFT_VOLUME 0x610
-#define WM8994_DAC1_RIGHT_VOLUME 0x611
-#define WM8994_DAC2_LEFT_VOLUME 0x612
-#define WM8994_DAC2_RIGHT_VOLUME 0x613
-#define WM8994_DAC_SOFTMUTE 0x614
-#define WM8994_OVERSAMPLING 0x620
-#define WM8994_SIDETONE 0x621
-#define WM8994_GPIO_1 0x700
-#define WM8994_GPIO_2 0x701
-#define WM8994_GPIO_3 0x702
-#define WM8994_GPIO_4 0x703
-#define WM8994_GPIO_5 0x704
-#define WM8994_GPIO_6 0x705
-#define WM1811_JACKDET_CTRL 0x705
-#define WM8994_GPIO_7 0x706
-#define WM8994_GPIO_8 0x707
-#define WM8994_GPIO_9 0x708
-#define WM8994_GPIO_10 0x709
-#define WM8994_GPIO_11 0x70A
-#define WM8994_PULL_CONTROL_1 0x720
-#define WM8994_PULL_CONTROL_2 0x721
-#define WM8994_INTERRUPT_STATUS_1 0x730
-#define WM8994_INTERRUPT_STATUS_2 0x731
-#define WM8994_INTERRUPT_RAW_STATUS_2 0x732
-#define WM8994_INTERRUPT_STATUS_1_MASK 0x738
-#define WM8994_INTERRUPT_STATUS_2_MASK 0x739
-#define WM8994_INTERRUPT_CONTROL 0x740
-#define WM8994_IRQ_DEBOUNCE 0x748
-#define WM8958_DSP2_PROGRAM 0x900
-#define WM8958_DSP2_CONFIG 0x901
-#define WM8958_DSP2_MAGICNUM 0xA00
-#define WM8958_DSP2_RELEASEYEAR 0xA01
-#define WM8958_DSP2_RELEASEMONTHDAY 0xA02
-#define WM8958_DSP2_RELEASETIME 0xA03
-#define WM8958_DSP2_VERMAJMIN 0xA04
-#define WM8958_DSP2_VERBUILD 0xA05
-#define WM8958_DSP2_TESTREG 0xA06
-#define WM8958_DSP2_XORREG 0xA07
-#define WM8958_DSP2_SHIFTMAXX 0xA08
-#define WM8958_DSP2_SHIFTMAXY 0xA09
-#define WM8958_DSP2_SHIFTMAXZ 0xA0A
-#define WM8958_DSP2_SHIFTMAXEXTLO 0xA0B
-#define WM8958_DSP2_AESSELECT 0xA0C
-#define WM8958_DSP2_EXECCONTROL 0xA0D
-#define WM8958_DSP2_SAMPLEBREAK 0xA0E
-#define WM8958_DSP2_COUNTBREAK 0xA0F
-#define WM8958_DSP2_INTSTATUS 0xA10
-#define WM8958_DSP2_EVENTSTATUS 0xA11
-#define WM8958_DSP2_INTMASK 0xA12
-#define WM8958_DSP2_CONFIGDWIDTH 0xA13
-#define WM8958_DSP2_CONFIGINSTR 0xA14
-#define WM8958_DSP2_CONFIGDMEM 0xA15
-#define WM8958_DSP2_CONFIGDELAYS 0xA16
-#define WM8958_DSP2_CONFIGNUMIO 0xA17
-#define WM8958_DSP2_CONFIGEXTDEPTH 0xA18
-#define WM8958_DSP2_CONFIGMULTIPLIER 0xA19
-#define WM8958_DSP2_CONFIGCTRLDWIDTH 0xA1A
-#define WM8958_DSP2_CONFIGPIPELINE 0xA1B
-#define WM8958_DSP2_SHIFTMAXEXTHI 0xA1C
-#define WM8958_DSP2_SWVERSIONREG 0xA1D
-#define WM8958_DSP2_CONFIGXMEM 0xA1E
-#define WM8958_DSP2_CONFIGYMEM 0xA1F
-#define WM8958_DSP2_CONFIGZMEM 0xA20
-#define WM8958_FW_BUILD_1 0x2000
-#define WM8958_FW_BUILD_0 0x2001
-#define WM8958_FW_ID_1 0x2002
-#define WM8958_FW_ID_0 0x2003
-#define WM8958_FW_MAJOR_1 0x2004
-#define WM8958_FW_MAJOR_0 0x2005
-#define WM8958_FW_MINOR_1 0x2006
-#define WM8958_FW_MINOR_0 0x2007
-#define WM8958_FW_PATCH_1 0x2008
-#define WM8958_FW_PATCH_0 0x2009
-#define WM8958_MBC_BAND_2_LOWER_CUTOFF_C1_1 0x2200
-#define WM8958_MBC_BAND_2_LOWER_CUTOFF_C1_2 0x2201
-#define WM8958_MBC_BAND_2_LOWER_CUTOFF_C2_1 0x2202
-#define WM8958_MBC_BAND_2_LOWER_CUTOFF_C2_2 0x2203
-#define WM8958_MBC_BAND_2_LOWER_CUTOFF_C3_1 0x2204
-#define WM8958_MBC_BAND_2_LOWER_CUTOFF_C3_2 0x2205
-#define WM8958_MBC_BAND_2_UPPER_CUTOFF_C2_1 0x2206
-#define WM8958_MBC_BAND_2_UPPER_CUTOFF_C2_2 0x2207
-#define WM8958_MBC_BAND_2_UPPER_CUTOFF_C3_1 0x2208
-#define WM8958_MBC_BAND_2_UPPER_CUTOFF_C3_2 0x2209
-#define WM8958_MBC_BAND_2_UPPER_CUTOFF_C1_1 0x220A
-#define WM8958_MBC_BAND_2_UPPER_CUTOFF_C1_2 0x220B
-#define WM8958_MBC_BAND_1_UPPER_CUTOFF_C1_1 0x220C
-#define WM8958_MBC_BAND_1_UPPER_CUTOFF_C1_2 0x220D
-#define WM8958_MBC_BAND_1_UPPER_CUTOFF_C2_1 0x220E
-#define WM8958_MBC_BAND_1_UPPER_CUTOFF_C2_2 0x220F
-#define WM8958_MBC_BAND_1_UPPER_CUTOFF_C3_1 0x2210
-#define WM8958_MBC_BAND_1_UPPER_CUTOFF_C3_2 0x2211
-#define WM8958_MBC_BAND_1_LOWER_CUTOFF_1 0x2212
-#define WM8958_MBC_BAND_1_LOWER_CUTOFF_2 0x2213
-#define WM8958_MBC_BAND_1_K_1 0x2400
-#define WM8958_MBC_BAND_1_K_2 0x2401
-#define WM8958_MBC_BAND_1_N1_1 0x2402
-#define WM8958_MBC_BAND_1_N1_2 0x2403
-#define WM8958_MBC_BAND_1_N2_1 0x2404
-#define WM8958_MBC_BAND_1_N2_2 0x2405
-#define WM8958_MBC_BAND_1_N3_1 0x2406
-#define WM8958_MBC_BAND_1_N3_2 0x2407
-#define WM8958_MBC_BAND_1_N4_1 0x2408
-#define WM8958_MBC_BAND_1_N4_2 0x2409
-#define WM8958_MBC_BAND_1_N5_1 0x240A
-#define WM8958_MBC_BAND_1_N5_2 0x240B
-#define WM8958_MBC_BAND_1_X1_1 0x240C
-#define WM8958_MBC_BAND_1_X1_2 0x240D
-#define WM8958_MBC_BAND_1_X2_1 0x240E
-#define WM8958_MBC_BAND_1_X2_2 0x240F
-#define WM8958_MBC_BAND_1_X3_1 0x2410
-#define WM8958_MBC_BAND_1_X3_2 0x2411
-#define WM8958_MBC_BAND_1_ATTACK_1 0x2412
-#define WM8958_MBC_BAND_1_ATTACK_2 0x2413
-#define WM8958_MBC_BAND_1_DECAY_1 0x2414
-#define WM8958_MBC_BAND_1_DECAY_2 0x2415
-#define WM8958_MBC_BAND_2_K_1 0x2416
-#define WM8958_MBC_BAND_2_K_2 0x2417
-#define WM8958_MBC_BAND_2_N1_1 0x2418
-#define WM8958_MBC_BAND_2_N1_2 0x2419
-#define WM8958_MBC_BAND_2_N2_1 0x241A
-#define WM8958_MBC_BAND_2_N2_2 0x241B
-#define WM8958_MBC_BAND_2_N3_1 0x241C
-#define WM8958_MBC_BAND_2_N3_2 0x241D
-#define WM8958_MBC_BAND_2_N4_1 0x241E
-#define WM8958_MBC_BAND_2_N4_2 0x241F
-#define WM8958_MBC_BAND_2_N5_1 0x2420
-#define WM8958_MBC_BAND_2_N5_2 0x2421
-#define WM8958_MBC_BAND_2_X1_1 0x2422
-#define WM8958_MBC_BAND_2_X1_2 0x2423
-#define WM8958_MBC_BAND_2_X2_1 0x2424
-#define WM8958_MBC_BAND_2_X2_2 0x2425
-#define WM8958_MBC_BAND_2_X3_1 0x2426
-#define WM8958_MBC_BAND_2_X3_2 0x2427
-#define WM8958_MBC_BAND_2_ATTACK_1 0x2428
-#define WM8958_MBC_BAND_2_ATTACK_2 0x2429
-#define WM8958_MBC_BAND_2_DECAY_1 0x242A
-#define WM8958_MBC_BAND_2_DECAY_2 0x242B
-#define WM8958_MBC_B2_PG2_1 0x242C
-#define WM8958_MBC_B2_PG2_2 0x242D
-#define WM8958_MBC_B1_PG2_1 0x242E
-#define WM8958_MBC_B1_PG2_2 0x242F
-#define WM8958_MBC_CROSSOVER_1 0x2600
-#define WM8958_MBC_CROSSOVER_2 0x2601
-#define WM8958_MBC_HPF_1 0x2602
-#define WM8958_MBC_HPF_2 0x2603
-#define WM8958_MBC_LPF_1 0x2606
-#define WM8958_MBC_LPF_2 0x2607
-#define WM8958_MBC_RMS_LIMIT_1 0x260A
-#define WM8958_MBC_RMS_LIMIT_2 0x260B
-#define WM8994_WRITE_SEQUENCER_0 0x3000
-#define WM8994_WRITE_SEQUENCER_1 0x3001
-#define WM8994_WRITE_SEQUENCER_2 0x3002
-#define WM8994_WRITE_SEQUENCER_3 0x3003
-#define WM8994_WRITE_SEQUENCER_4 0x3004
-#define WM8994_WRITE_SEQUENCER_5 0x3005
-#define WM8994_WRITE_SEQUENCER_6 0x3006
-#define WM8994_WRITE_SEQUENCER_7 0x3007
-#define WM8994_WRITE_SEQUENCER_8 0x3008
-#define WM8994_WRITE_SEQUENCER_9 0x3009
-#define WM8994_WRITE_SEQUENCER_10 0x300A
-#define WM8994_WRITE_SEQUENCER_11 0x300B
-#define WM8994_WRITE_SEQUENCER_12 0x300C
-#define WM8994_WRITE_SEQUENCER_13 0x300D
-#define WM8994_WRITE_SEQUENCER_14 0x300E
-#define WM8994_WRITE_SEQUENCER_15 0x300F
-#define WM8994_WRITE_SEQUENCER_16 0x3010
-#define WM8994_WRITE_SEQUENCER_17 0x3011
-#define WM8994_WRITE_SEQUENCER_18 0x3012
-#define WM8994_WRITE_SEQUENCER_19 0x3013
-#define WM8994_WRITE_SEQUENCER_20 0x3014
-#define WM8994_WRITE_SEQUENCER_21 0x3015
-#define WM8994_WRITE_SEQUENCER_22 0x3016
-#define WM8994_WRITE_SEQUENCER_23 0x3017
-#define WM8994_WRITE_SEQUENCER_24 0x3018
-#define WM8994_WRITE_SEQUENCER_25 0x3019
-#define WM8994_WRITE_SEQUENCER_26 0x301A
-#define WM8994_WRITE_SEQUENCER_27 0x301B
-#define WM8994_WRITE_SEQUENCER_28 0x301C
-#define WM8994_WRITE_SEQUENCER_29 0x301D
-#define WM8994_WRITE_SEQUENCER_30 0x301E
-#define WM8994_WRITE_SEQUENCER_31 0x301F
-#define WM8994_WRITE_SEQUENCER_32 0x3020
-#define WM8994_WRITE_SEQUENCER_33 0x3021
-#define WM8994_WRITE_SEQUENCER_34 0x3022
-#define WM8994_WRITE_SEQUENCER_35 0x3023
-#define WM8994_WRITE_SEQUENCER_36 0x3024
-#define WM8994_WRITE_SEQUENCER_37 0x3025
-#define WM8994_WRITE_SEQUENCER_38 0x3026
-#define WM8994_WRITE_SEQUENCER_39 0x3027
-#define WM8994_WRITE_SEQUENCER_40 0x3028
-#define WM8994_WRITE_SEQUENCER_41 0x3029
-#define WM8994_WRITE_SEQUENCER_42 0x302A
-#define WM8994_WRITE_SEQUENCER_43 0x302B
-#define WM8994_WRITE_SEQUENCER_44 0x302C
-#define WM8994_WRITE_SEQUENCER_45 0x302D
-#define WM8994_WRITE_SEQUENCER_46 0x302E
-#define WM8994_WRITE_SEQUENCER_47 0x302F
-#define WM8994_WRITE_SEQUENCER_48 0x3030
-#define WM8994_WRITE_SEQUENCER_49 0x3031
-#define WM8994_WRITE_SEQUENCER_50 0x3032
-#define WM8994_WRITE_SEQUENCER_51 0x3033
-#define WM8994_WRITE_SEQUENCER_52 0x3034
-#define WM8994_WRITE_SEQUENCER_53 0x3035
-#define WM8994_WRITE_SEQUENCER_54 0x3036
-#define WM8994_WRITE_SEQUENCER_55 0x3037
-#define WM8994_WRITE_SEQUENCER_56 0x3038
-#define WM8994_WRITE_SEQUENCER_57 0x3039
-#define WM8994_WRITE_SEQUENCER_58 0x303A
-#define WM8994_WRITE_SEQUENCER_59 0x303B
-#define WM8994_WRITE_SEQUENCER_60 0x303C
-#define WM8994_WRITE_SEQUENCER_61 0x303D
-#define WM8994_WRITE_SEQUENCER_62 0x303E
-#define WM8994_WRITE_SEQUENCER_63 0x303F
-#define WM8994_WRITE_SEQUENCER_64 0x3040
-#define WM8994_WRITE_SEQUENCER_65 0x3041
-#define WM8994_WRITE_SEQUENCER_66 0x3042
-#define WM8994_WRITE_SEQUENCER_67 0x3043
-#define WM8994_WRITE_SEQUENCER_68 0x3044
-#define WM8994_WRITE_SEQUENCER_69 0x3045
-#define WM8994_WRITE_SEQUENCER_70 0x3046
-#define WM8994_WRITE_SEQUENCER_71 0x3047
-#define WM8994_WRITE_SEQUENCER_72 0x3048
-#define WM8994_WRITE_SEQUENCER_73 0x3049
-#define WM8994_WRITE_SEQUENCER_74 0x304A
-#define WM8994_WRITE_SEQUENCER_75 0x304B
-#define WM8994_WRITE_SEQUENCER_76 0x304C
-#define WM8994_WRITE_SEQUENCER_77 0x304D
-#define WM8994_WRITE_SEQUENCER_78 0x304E
-#define WM8994_WRITE_SEQUENCER_79 0x304F
-#define WM8994_WRITE_SEQUENCER_80 0x3050
-#define WM8994_WRITE_SEQUENCER_81 0x3051
-#define WM8994_WRITE_SEQUENCER_82 0x3052
-#define WM8994_WRITE_SEQUENCER_83 0x3053
-#define WM8994_WRITE_SEQUENCER_84 0x3054
-#define WM8994_WRITE_SEQUENCER_85 0x3055
-#define WM8994_WRITE_SEQUENCER_86 0x3056
-#define WM8994_WRITE_SEQUENCER_87 0x3057
-#define WM8994_WRITE_SEQUENCER_88 0x3058
-#define WM8994_WRITE_SEQUENCER_89 0x3059
-#define WM8994_WRITE_SEQUENCER_90 0x305A
-#define WM8994_WRITE_SEQUENCER_91 0x305B
-#define WM8994_WRITE_SEQUENCER_92 0x305C
-#define WM8994_WRITE_SEQUENCER_93 0x305D
-#define WM8994_WRITE_SEQUENCER_94 0x305E
-#define WM8994_WRITE_SEQUENCER_95 0x305F
-#define WM8994_WRITE_SEQUENCER_96 0x3060
-#define WM8994_WRITE_SEQUENCER_97 0x3061
-#define WM8994_WRITE_SEQUENCER_98 0x3062
-#define WM8994_WRITE_SEQUENCER_99 0x3063
-#define WM8994_WRITE_SEQUENCER_100 0x3064
-#define WM8994_WRITE_SEQUENCER_101 0x3065
-#define WM8994_WRITE_SEQUENCER_102 0x3066
-#define WM8994_WRITE_SEQUENCER_103 0x3067
-#define WM8994_WRITE_SEQUENCER_104 0x3068
-#define WM8994_WRITE_SEQUENCER_105 0x3069
-#define WM8994_WRITE_SEQUENCER_106 0x306A
-#define WM8994_WRITE_SEQUENCER_107 0x306B
-#define WM8994_WRITE_SEQUENCER_108 0x306C
-#define WM8994_WRITE_SEQUENCER_109 0x306D
-#define WM8994_WRITE_SEQUENCER_110 0x306E
-#define WM8994_WRITE_SEQUENCER_111 0x306F
-#define WM8994_WRITE_SEQUENCER_112 0x3070
-#define WM8994_WRITE_SEQUENCER_113 0x3071
-#define WM8994_WRITE_SEQUENCER_114 0x3072
-#define WM8994_WRITE_SEQUENCER_115 0x3073
-#define WM8994_WRITE_SEQUENCER_116 0x3074
-#define WM8994_WRITE_SEQUENCER_117 0x3075
-#define WM8994_WRITE_SEQUENCER_118 0x3076
-#define WM8994_WRITE_SEQUENCER_119 0x3077
-#define WM8994_WRITE_SEQUENCER_120 0x3078
-#define WM8994_WRITE_SEQUENCER_121 0x3079
-#define WM8994_WRITE_SEQUENCER_122 0x307A
-#define WM8994_WRITE_SEQUENCER_123 0x307B
-#define WM8994_WRITE_SEQUENCER_124 0x307C
-#define WM8994_WRITE_SEQUENCER_125 0x307D
-#define WM8994_WRITE_SEQUENCER_126 0x307E
-#define WM8994_WRITE_SEQUENCER_127 0x307F
-#define WM8994_WRITE_SEQUENCER_128 0x3080
-#define WM8994_WRITE_SEQUENCER_129 0x3081
-#define WM8994_WRITE_SEQUENCER_130 0x3082
-#define WM8994_WRITE_SEQUENCER_131 0x3083
-#define WM8994_WRITE_SEQUENCER_132 0x3084
-#define WM8994_WRITE_SEQUENCER_133 0x3085
-#define WM8994_WRITE_SEQUENCER_134 0x3086
-#define WM8994_WRITE_SEQUENCER_135 0x3087
-#define WM8994_WRITE_SEQUENCER_136 0x3088
-#define WM8994_WRITE_SEQUENCER_137 0x3089
-#define WM8994_WRITE_SEQUENCER_138 0x308A
-#define WM8994_WRITE_SEQUENCER_139 0x308B
-#define WM8994_WRITE_SEQUENCER_140 0x308C
-#define WM8994_WRITE_SEQUENCER_141 0x308D
-#define WM8994_WRITE_SEQUENCER_142 0x308E
-#define WM8994_WRITE_SEQUENCER_143 0x308F
-#define WM8994_WRITE_SEQUENCER_144 0x3090
-#define WM8994_WRITE_SEQUENCER_145 0x3091
-#define WM8994_WRITE_SEQUENCER_146 0x3092
-#define WM8994_WRITE_SEQUENCER_147 0x3093
-#define WM8994_WRITE_SEQUENCER_148 0x3094
-#define WM8994_WRITE_SEQUENCER_149 0x3095
-#define WM8994_WRITE_SEQUENCER_150 0x3096
-#define WM8994_WRITE_SEQUENCER_151 0x3097
-#define WM8994_WRITE_SEQUENCER_152 0x3098
-#define WM8994_WRITE_SEQUENCER_153 0x3099
-#define WM8994_WRITE_SEQUENCER_154 0x309A
-#define WM8994_WRITE_SEQUENCER_155 0x309B
-#define WM8994_WRITE_SEQUENCER_156 0x309C
-#define WM8994_WRITE_SEQUENCER_157 0x309D
-#define WM8994_WRITE_SEQUENCER_158 0x309E
-#define WM8994_WRITE_SEQUENCER_159 0x309F
-#define WM8994_WRITE_SEQUENCER_160 0x30A0
-#define WM8994_WRITE_SEQUENCER_161 0x30A1
-#define WM8994_WRITE_SEQUENCER_162 0x30A2
-#define WM8994_WRITE_SEQUENCER_163 0x30A3
-#define WM8994_WRITE_SEQUENCER_164 0x30A4
-#define WM8994_WRITE_SEQUENCER_165 0x30A5
-#define WM8994_WRITE_SEQUENCER_166 0x30A6
-#define WM8994_WRITE_SEQUENCER_167 0x30A7
-#define WM8994_WRITE_SEQUENCER_168 0x30A8
-#define WM8994_WRITE_SEQUENCER_169 0x30A9
-#define WM8994_WRITE_SEQUENCER_170 0x30AA
-#define WM8994_WRITE_SEQUENCER_171 0x30AB
-#define WM8994_WRITE_SEQUENCER_172 0x30AC
-#define WM8994_WRITE_SEQUENCER_173 0x30AD
-#define WM8994_WRITE_SEQUENCER_174 0x30AE
-#define WM8994_WRITE_SEQUENCER_175 0x30AF
-#define WM8994_WRITE_SEQUENCER_176 0x30B0
-#define WM8994_WRITE_SEQUENCER_177 0x30B1
-#define WM8994_WRITE_SEQUENCER_178 0x30B2
-#define WM8994_WRITE_SEQUENCER_179 0x30B3
-#define WM8994_WRITE_SEQUENCER_180 0x30B4
-#define WM8994_WRITE_SEQUENCER_181 0x30B5
-#define WM8994_WRITE_SEQUENCER_182 0x30B6
-#define WM8994_WRITE_SEQUENCER_183 0x30B7
-#define WM8994_WRITE_SEQUENCER_184 0x30B8
-#define WM8994_WRITE_SEQUENCER_185 0x30B9
-#define WM8994_WRITE_SEQUENCER_186 0x30BA
-#define WM8994_WRITE_SEQUENCER_187 0x30BB
-#define WM8994_WRITE_SEQUENCER_188 0x30BC
-#define WM8994_WRITE_SEQUENCER_189 0x30BD
-#define WM8994_WRITE_SEQUENCER_190 0x30BE
-#define WM8994_WRITE_SEQUENCER_191 0x30BF
-#define WM8994_WRITE_SEQUENCER_192 0x30C0
-#define WM8994_WRITE_SEQUENCER_193 0x30C1
-#define WM8994_WRITE_SEQUENCER_194 0x30C2
-#define WM8994_WRITE_SEQUENCER_195 0x30C3
-#define WM8994_WRITE_SEQUENCER_196 0x30C4
-#define WM8994_WRITE_SEQUENCER_197 0x30C5
-#define WM8994_WRITE_SEQUENCER_198 0x30C6
-#define WM8994_WRITE_SEQUENCER_199 0x30C7
-#define WM8994_WRITE_SEQUENCER_200 0x30C8
-#define WM8994_WRITE_SEQUENCER_201 0x30C9
-#define WM8994_WRITE_SEQUENCER_202 0x30CA
-#define WM8994_WRITE_SEQUENCER_203 0x30CB
-#define WM8994_WRITE_SEQUENCER_204 0x30CC
-#define WM8994_WRITE_SEQUENCER_205 0x30CD
-#define WM8994_WRITE_SEQUENCER_206 0x30CE
-#define WM8994_WRITE_SEQUENCER_207 0x30CF
-#define WM8994_WRITE_SEQUENCER_208 0x30D0
-#define WM8994_WRITE_SEQUENCER_209 0x30D1
-#define WM8994_WRITE_SEQUENCER_210 0x30D2
-#define WM8994_WRITE_SEQUENCER_211 0x30D3
-#define WM8994_WRITE_SEQUENCER_212 0x30D4
-#define WM8994_WRITE_SEQUENCER_213 0x30D5
-#define WM8994_WRITE_SEQUENCER_214 0x30D6
-#define WM8994_WRITE_SEQUENCER_215 0x30D7
-#define WM8994_WRITE_SEQUENCER_216 0x30D8
-#define WM8994_WRITE_SEQUENCER_217 0x30D9
-#define WM8994_WRITE_SEQUENCER_218 0x30DA
-#define WM8994_WRITE_SEQUENCER_219 0x30DB
-#define WM8994_WRITE_SEQUENCER_220 0x30DC
-#define WM8994_WRITE_SEQUENCER_221 0x30DD
-#define WM8994_WRITE_SEQUENCER_222 0x30DE
-#define WM8994_WRITE_SEQUENCER_223 0x30DF
-#define WM8994_WRITE_SEQUENCER_224 0x30E0
-#define WM8994_WRITE_SEQUENCER_225 0x30E1
-#define WM8994_WRITE_SEQUENCER_226 0x30E2
-#define WM8994_WRITE_SEQUENCER_227 0x30E3
-#define WM8994_WRITE_SEQUENCER_228 0x30E4
-#define WM8994_WRITE_SEQUENCER_229 0x30E5
-#define WM8994_WRITE_SEQUENCER_230 0x30E6
-#define WM8994_WRITE_SEQUENCER_231 0x30E7
-#define WM8994_WRITE_SEQUENCER_232 0x30E8
-#define WM8994_WRITE_SEQUENCER_233 0x30E9
-#define WM8994_WRITE_SEQUENCER_234 0x30EA
-#define WM8994_WRITE_SEQUENCER_235 0x30EB
-#define WM8994_WRITE_SEQUENCER_236 0x30EC
-#define WM8994_WRITE_SEQUENCER_237 0x30ED
-#define WM8994_WRITE_SEQUENCER_238 0x30EE
-#define WM8994_WRITE_SEQUENCER_239 0x30EF
-#define WM8994_WRITE_SEQUENCER_240 0x30F0
-#define WM8994_WRITE_SEQUENCER_241 0x30F1
-#define WM8994_WRITE_SEQUENCER_242 0x30F2
-#define WM8994_WRITE_SEQUENCER_243 0x30F3
-#define WM8994_WRITE_SEQUENCER_244 0x30F4
-#define WM8994_WRITE_SEQUENCER_245 0x30F5
-#define WM8994_WRITE_SEQUENCER_246 0x30F6
-#define WM8994_WRITE_SEQUENCER_247 0x30F7
-#define WM8994_WRITE_SEQUENCER_248 0x30F8
-#define WM8994_WRITE_SEQUENCER_249 0x30F9
-#define WM8994_WRITE_SEQUENCER_250 0x30FA
-#define WM8994_WRITE_SEQUENCER_251 0x30FB
-#define WM8994_WRITE_SEQUENCER_252 0x30FC
-#define WM8994_WRITE_SEQUENCER_253 0x30FD
-#define WM8994_WRITE_SEQUENCER_254 0x30FE
-#define WM8994_WRITE_SEQUENCER_255 0x30FF
-#define WM8994_WRITE_SEQUENCER_256 0x3100
-#define WM8994_WRITE_SEQUENCER_257 0x3101
-#define WM8994_WRITE_SEQUENCER_258 0x3102
-#define WM8994_WRITE_SEQUENCER_259 0x3103
-#define WM8994_WRITE_SEQUENCER_260 0x3104
-#define WM8994_WRITE_SEQUENCER_261 0x3105
-#define WM8994_WRITE_SEQUENCER_262 0x3106
-#define WM8994_WRITE_SEQUENCER_263 0x3107
-#define WM8994_WRITE_SEQUENCER_264 0x3108
-#define WM8994_WRITE_SEQUENCER_265 0x3109
-#define WM8994_WRITE_SEQUENCER_266 0x310A
-#define WM8994_WRITE_SEQUENCER_267 0x310B
-#define WM8994_WRITE_SEQUENCER_268 0x310C
-#define WM8994_WRITE_SEQUENCER_269 0x310D
-#define WM8994_WRITE_SEQUENCER_270 0x310E
-#define WM8994_WRITE_SEQUENCER_271 0x310F
-#define WM8994_WRITE_SEQUENCER_272 0x3110
-#define WM8994_WRITE_SEQUENCER_273 0x3111
-#define WM8994_WRITE_SEQUENCER_274 0x3112
-#define WM8994_WRITE_SEQUENCER_275 0x3113
-#define WM8994_WRITE_SEQUENCER_276 0x3114
-#define WM8994_WRITE_SEQUENCER_277 0x3115
-#define WM8994_WRITE_SEQUENCER_278 0x3116
-#define WM8994_WRITE_SEQUENCER_279 0x3117
-#define WM8994_WRITE_SEQUENCER_280 0x3118
-#define WM8994_WRITE_SEQUENCER_281 0x3119
-#define WM8994_WRITE_SEQUENCER_282 0x311A
-#define WM8994_WRITE_SEQUENCER_283 0x311B
-#define WM8994_WRITE_SEQUENCER_284 0x311C
-#define WM8994_WRITE_SEQUENCER_285 0x311D
-#define WM8994_WRITE_SEQUENCER_286 0x311E
-#define WM8994_WRITE_SEQUENCER_287 0x311F
-#define WM8994_WRITE_SEQUENCER_288 0x3120
-#define WM8994_WRITE_SEQUENCER_289 0x3121
-#define WM8994_WRITE_SEQUENCER_290 0x3122
-#define WM8994_WRITE_SEQUENCER_291 0x3123
-#define WM8994_WRITE_SEQUENCER_292 0x3124
-#define WM8994_WRITE_SEQUENCER_293 0x3125
-#define WM8994_WRITE_SEQUENCER_294 0x3126
-#define WM8994_WRITE_SEQUENCER_295 0x3127
-#define WM8994_WRITE_SEQUENCER_296 0x3128
-#define WM8994_WRITE_SEQUENCER_297 0x3129
-#define WM8994_WRITE_SEQUENCER_298 0x312A
-#define WM8994_WRITE_SEQUENCER_299 0x312B
-#define WM8994_WRITE_SEQUENCER_300 0x312C
-#define WM8994_WRITE_SEQUENCER_301 0x312D
-#define WM8994_WRITE_SEQUENCER_302 0x312E
-#define WM8994_WRITE_SEQUENCER_303 0x312F
-#define WM8994_WRITE_SEQUENCER_304 0x3130
-#define WM8994_WRITE_SEQUENCER_305 0x3131
-#define WM8994_WRITE_SEQUENCER_306 0x3132
-#define WM8994_WRITE_SEQUENCER_307 0x3133
-#define WM8994_WRITE_SEQUENCER_308 0x3134
-#define WM8994_WRITE_SEQUENCER_309 0x3135
-#define WM8994_WRITE_SEQUENCER_310 0x3136
-#define WM8994_WRITE_SEQUENCER_311 0x3137
-#define WM8994_WRITE_SEQUENCER_312 0x3138
-#define WM8994_WRITE_SEQUENCER_313 0x3139
-#define WM8994_WRITE_SEQUENCER_314 0x313A
-#define WM8994_WRITE_SEQUENCER_315 0x313B
-#define WM8994_WRITE_SEQUENCER_316 0x313C
-#define WM8994_WRITE_SEQUENCER_317 0x313D
-#define WM8994_WRITE_SEQUENCER_318 0x313E
-#define WM8994_WRITE_SEQUENCER_319 0x313F
-#define WM8994_WRITE_SEQUENCER_320 0x3140
-#define WM8994_WRITE_SEQUENCER_321 0x3141
-#define WM8994_WRITE_SEQUENCER_322 0x3142
-#define WM8994_WRITE_SEQUENCER_323 0x3143
-#define WM8994_WRITE_SEQUENCER_324 0x3144
-#define WM8994_WRITE_SEQUENCER_325 0x3145
-#define WM8994_WRITE_SEQUENCER_326 0x3146
-#define WM8994_WRITE_SEQUENCER_327 0x3147
-#define WM8994_WRITE_SEQUENCER_328 0x3148
-#define WM8994_WRITE_SEQUENCER_329 0x3149
-#define WM8994_WRITE_SEQUENCER_330 0x314A
-#define WM8994_WRITE_SEQUENCER_331 0x314B
-#define WM8994_WRITE_SEQUENCER_332 0x314C
-#define WM8994_WRITE_SEQUENCER_333 0x314D
-#define WM8994_WRITE_SEQUENCER_334 0x314E
-#define WM8994_WRITE_SEQUENCER_335 0x314F
-#define WM8994_WRITE_SEQUENCER_336 0x3150
-#define WM8994_WRITE_SEQUENCER_337 0x3151
-#define WM8994_WRITE_SEQUENCER_338 0x3152
-#define WM8994_WRITE_SEQUENCER_339 0x3153
-#define WM8994_WRITE_SEQUENCER_340 0x3154
-#define WM8994_WRITE_SEQUENCER_341 0x3155
-#define WM8994_WRITE_SEQUENCER_342 0x3156
-#define WM8994_WRITE_SEQUENCER_343 0x3157
-#define WM8994_WRITE_SEQUENCER_344 0x3158
-#define WM8994_WRITE_SEQUENCER_345 0x3159
-#define WM8994_WRITE_SEQUENCER_346 0x315A
-#define WM8994_WRITE_SEQUENCER_347 0x315B
-#define WM8994_WRITE_SEQUENCER_348 0x315C
-#define WM8994_WRITE_SEQUENCER_349 0x315D
-#define WM8994_WRITE_SEQUENCER_350 0x315E
-#define WM8994_WRITE_SEQUENCER_351 0x315F
-#define WM8994_WRITE_SEQUENCER_352 0x3160
-#define WM8994_WRITE_SEQUENCER_353 0x3161
-#define WM8994_WRITE_SEQUENCER_354 0x3162
-#define WM8994_WRITE_SEQUENCER_355 0x3163
-#define WM8994_WRITE_SEQUENCER_356 0x3164
-#define WM8994_WRITE_SEQUENCER_357 0x3165
-#define WM8994_WRITE_SEQUENCER_358 0x3166
-#define WM8994_WRITE_SEQUENCER_359 0x3167
-#define WM8994_WRITE_SEQUENCER_360 0x3168
-#define WM8994_WRITE_SEQUENCER_361 0x3169
-#define WM8994_WRITE_SEQUENCER_362 0x316A
-#define WM8994_WRITE_SEQUENCER_363 0x316B
-#define WM8994_WRITE_SEQUENCER_364 0x316C
-#define WM8994_WRITE_SEQUENCER_365 0x316D
-#define WM8994_WRITE_SEQUENCER_366 0x316E
-#define WM8994_WRITE_SEQUENCER_367 0x316F
-#define WM8994_WRITE_SEQUENCER_368 0x3170
-#define WM8994_WRITE_SEQUENCER_369 0x3171
-#define WM8994_WRITE_SEQUENCER_370 0x3172
-#define WM8994_WRITE_SEQUENCER_371 0x3173
-#define WM8994_WRITE_SEQUENCER_372 0x3174
-#define WM8994_WRITE_SEQUENCER_373 0x3175
-#define WM8994_WRITE_SEQUENCER_374 0x3176
-#define WM8994_WRITE_SEQUENCER_375 0x3177
-#define WM8994_WRITE_SEQUENCER_376 0x3178
-#define WM8994_WRITE_SEQUENCER_377 0x3179
-#define WM8994_WRITE_SEQUENCER_378 0x317A
-#define WM8994_WRITE_SEQUENCER_379 0x317B
-#define WM8994_WRITE_SEQUENCER_380 0x317C
-#define WM8994_WRITE_SEQUENCER_381 0x317D
-#define WM8994_WRITE_SEQUENCER_382 0x317E
-#define WM8994_WRITE_SEQUENCER_383 0x317F
-#define WM8994_WRITE_SEQUENCER_384 0x3180
-#define WM8994_WRITE_SEQUENCER_385 0x3181
-#define WM8994_WRITE_SEQUENCER_386 0x3182
-#define WM8994_WRITE_SEQUENCER_387 0x3183
-#define WM8994_WRITE_SEQUENCER_388 0x3184
-#define WM8994_WRITE_SEQUENCER_389 0x3185
-#define WM8994_WRITE_SEQUENCER_390 0x3186
-#define WM8994_WRITE_SEQUENCER_391 0x3187
-#define WM8994_WRITE_SEQUENCER_392 0x3188
-#define WM8994_WRITE_SEQUENCER_393 0x3189
-#define WM8994_WRITE_SEQUENCER_394 0x318A
-#define WM8994_WRITE_SEQUENCER_395 0x318B
-#define WM8994_WRITE_SEQUENCER_396 0x318C
-#define WM8994_WRITE_SEQUENCER_397 0x318D
-#define WM8994_WRITE_SEQUENCER_398 0x318E
-#define WM8994_WRITE_SEQUENCER_399 0x318F
-#define WM8994_WRITE_SEQUENCER_400 0x3190
-#define WM8994_WRITE_SEQUENCER_401 0x3191
-#define WM8994_WRITE_SEQUENCER_402 0x3192
-#define WM8994_WRITE_SEQUENCER_403 0x3193
-#define WM8994_WRITE_SEQUENCER_404 0x3194
-#define WM8994_WRITE_SEQUENCER_405 0x3195
-#define WM8994_WRITE_SEQUENCER_406 0x3196
-#define WM8994_WRITE_SEQUENCER_407 0x3197
-#define WM8994_WRITE_SEQUENCER_408 0x3198
-#define WM8994_WRITE_SEQUENCER_409 0x3199
-#define WM8994_WRITE_SEQUENCER_410 0x319A
-#define WM8994_WRITE_SEQUENCER_411 0x319B
-#define WM8994_WRITE_SEQUENCER_412 0x319C
-#define WM8994_WRITE_SEQUENCER_413 0x319D
-#define WM8994_WRITE_SEQUENCER_414 0x319E
-#define WM8994_WRITE_SEQUENCER_415 0x319F
-#define WM8994_WRITE_SEQUENCER_416 0x31A0
-#define WM8994_WRITE_SEQUENCER_417 0x31A1
-#define WM8994_WRITE_SEQUENCER_418 0x31A2
-#define WM8994_WRITE_SEQUENCER_419 0x31A3
-#define WM8994_WRITE_SEQUENCER_420 0x31A4
-#define WM8994_WRITE_SEQUENCER_421 0x31A5
-#define WM8994_WRITE_SEQUENCER_422 0x31A6
-#define WM8994_WRITE_SEQUENCER_423 0x31A7
-#define WM8994_WRITE_SEQUENCER_424 0x31A8
-#define WM8994_WRITE_SEQUENCER_425 0x31A9
-#define WM8994_WRITE_SEQUENCER_426 0x31AA
-#define WM8994_WRITE_SEQUENCER_427 0x31AB
-#define WM8994_WRITE_SEQUENCER_428 0x31AC
-#define WM8994_WRITE_SEQUENCER_429 0x31AD
-#define WM8994_WRITE_SEQUENCER_430 0x31AE
-#define WM8994_WRITE_SEQUENCER_431 0x31AF
-#define WM8994_WRITE_SEQUENCER_432 0x31B0
-#define WM8994_WRITE_SEQUENCER_433 0x31B1
-#define WM8994_WRITE_SEQUENCER_434 0x31B2
-#define WM8994_WRITE_SEQUENCER_435 0x31B3
-#define WM8994_WRITE_SEQUENCER_436 0x31B4
-#define WM8994_WRITE_SEQUENCER_437 0x31B5
-#define WM8994_WRITE_SEQUENCER_438 0x31B6
-#define WM8994_WRITE_SEQUENCER_439 0x31B7
-#define WM8994_WRITE_SEQUENCER_440 0x31B8
-#define WM8994_WRITE_SEQUENCER_441 0x31B9
-#define WM8994_WRITE_SEQUENCER_442 0x31BA
-#define WM8994_WRITE_SEQUENCER_443 0x31BB
-#define WM8994_WRITE_SEQUENCER_444 0x31BC
-#define WM8994_WRITE_SEQUENCER_445 0x31BD
-#define WM8994_WRITE_SEQUENCER_446 0x31BE
-#define WM8994_WRITE_SEQUENCER_447 0x31BF
-#define WM8994_WRITE_SEQUENCER_448 0x31C0
-#define WM8994_WRITE_SEQUENCER_449 0x31C1
-#define WM8994_WRITE_SEQUENCER_450 0x31C2
-#define WM8994_WRITE_SEQUENCER_451 0x31C3
-#define WM8994_WRITE_SEQUENCER_452 0x31C4
-#define WM8994_WRITE_SEQUENCER_453 0x31C5
-#define WM8994_WRITE_SEQUENCER_454 0x31C6
-#define WM8994_WRITE_SEQUENCER_455 0x31C7
-#define WM8994_WRITE_SEQUENCER_456 0x31C8
-#define WM8994_WRITE_SEQUENCER_457 0x31C9
-#define WM8994_WRITE_SEQUENCER_458 0x31CA
-#define WM8994_WRITE_SEQUENCER_459 0x31CB
-#define WM8994_WRITE_SEQUENCER_460 0x31CC
-#define WM8994_WRITE_SEQUENCER_461 0x31CD
-#define WM8994_WRITE_SEQUENCER_462 0x31CE
-#define WM8994_WRITE_SEQUENCER_463 0x31CF
-#define WM8994_WRITE_SEQUENCER_464 0x31D0
-#define WM8994_WRITE_SEQUENCER_465 0x31D1
-#define WM8994_WRITE_SEQUENCER_466 0x31D2
-#define WM8994_WRITE_SEQUENCER_467 0x31D3
-#define WM8994_WRITE_SEQUENCER_468 0x31D4
-#define WM8994_WRITE_SEQUENCER_469 0x31D5
-#define WM8994_WRITE_SEQUENCER_470 0x31D6
-#define WM8994_WRITE_SEQUENCER_471 0x31D7
-#define WM8994_WRITE_SEQUENCER_472 0x31D8
-#define WM8994_WRITE_SEQUENCER_473 0x31D9
-#define WM8994_WRITE_SEQUENCER_474 0x31DA
-#define WM8994_WRITE_SEQUENCER_475 0x31DB
-#define WM8994_WRITE_SEQUENCER_476 0x31DC
-#define WM8994_WRITE_SEQUENCER_477 0x31DD
-#define WM8994_WRITE_SEQUENCER_478 0x31DE
-#define WM8994_WRITE_SEQUENCER_479 0x31DF
-#define WM8994_WRITE_SEQUENCER_480 0x31E0
-#define WM8994_WRITE_SEQUENCER_481 0x31E1
-#define WM8994_WRITE_SEQUENCER_482 0x31E2
-#define WM8994_WRITE_SEQUENCER_483 0x31E3
-#define WM8994_WRITE_SEQUENCER_484 0x31E4
-#define WM8994_WRITE_SEQUENCER_485 0x31E5
-#define WM8994_WRITE_SEQUENCER_486 0x31E6
-#define WM8994_WRITE_SEQUENCER_487 0x31E7
-#define WM8994_WRITE_SEQUENCER_488 0x31E8
-#define WM8994_WRITE_SEQUENCER_489 0x31E9
-#define WM8994_WRITE_SEQUENCER_490 0x31EA
-#define WM8994_WRITE_SEQUENCER_491 0x31EB
-#define WM8994_WRITE_SEQUENCER_492 0x31EC
-#define WM8994_WRITE_SEQUENCER_493 0x31ED
-#define WM8994_WRITE_SEQUENCER_494 0x31EE
-#define WM8994_WRITE_SEQUENCER_495 0x31EF
-#define WM8994_WRITE_SEQUENCER_496 0x31F0
-#define WM8994_WRITE_SEQUENCER_497 0x31F1
-#define WM8994_WRITE_SEQUENCER_498 0x31F2
-#define WM8994_WRITE_SEQUENCER_499 0x31F3
-#define WM8994_WRITE_SEQUENCER_500 0x31F4
-#define WM8994_WRITE_SEQUENCER_501 0x31F5
-#define WM8994_WRITE_SEQUENCER_502 0x31F6
-#define WM8994_WRITE_SEQUENCER_503 0x31F7
-#define WM8994_WRITE_SEQUENCER_504 0x31F8
-#define WM8994_WRITE_SEQUENCER_505 0x31F9
-#define WM8994_WRITE_SEQUENCER_506 0x31FA
-#define WM8994_WRITE_SEQUENCER_507 0x31FB
-#define WM8994_WRITE_SEQUENCER_508 0x31FC
-#define WM8994_WRITE_SEQUENCER_509 0x31FD
-#define WM8994_WRITE_SEQUENCER_510 0x31FE
-#define WM8994_WRITE_SEQUENCER_511 0x31FF
-
-#define WM8994_REGISTER_COUNT 736
-#define WM8994_MAX_REGISTER 0x31FF
-#define WM8994_MAX_CACHED_REGISTER 0x749
-
-/*
- * Field Definitions.
- */
-
-/*
- * R0 (0x00) - Software Reset
- */
-#define WM8994_SW_RESET_MASK 0xFFFF /* SW_RESET - [15:0] */
-#define WM8994_SW_RESET_SHIFT 0 /* SW_RESET - [15:0] */
-#define WM8994_SW_RESET_WIDTH 16 /* SW_RESET - [15:0] */
-
-/*
- * R1 (0x01) - Power Management (1)
- */
-#define WM8994_SPKOUTR_ENA 0x2000 /* SPKOUTR_ENA */
-#define WM8994_SPKOUTR_ENA_MASK 0x2000 /* SPKOUTR_ENA */
-#define WM8994_SPKOUTR_ENA_SHIFT 13 /* SPKOUTR_ENA */
-#define WM8994_SPKOUTR_ENA_WIDTH 1 /* SPKOUTR_ENA */
-#define WM8994_SPKOUTL_ENA 0x1000 /* SPKOUTL_ENA */
-#define WM8994_SPKOUTL_ENA_MASK 0x1000 /* SPKOUTL_ENA */
-#define WM8994_SPKOUTL_ENA_SHIFT 12 /* SPKOUTL_ENA */
-#define WM8994_SPKOUTL_ENA_WIDTH 1 /* SPKOUTL_ENA */
-#define WM8994_HPOUT2_ENA 0x0800 /* HPOUT2_ENA */
-#define WM8994_HPOUT2_ENA_MASK 0x0800 /* HPOUT2_ENA */
-#define WM8994_HPOUT2_ENA_SHIFT 11 /* HPOUT2_ENA */
-#define WM8994_HPOUT2_ENA_WIDTH 1 /* HPOUT2_ENA */
-#define WM8994_HPOUT1L_ENA 0x0200 /* HPOUT1L_ENA */
-#define WM8994_HPOUT1L_ENA_MASK 0x0200 /* HPOUT1L_ENA */
-#define WM8994_HPOUT1L_ENA_SHIFT 9 /* HPOUT1L_ENA */
-#define WM8994_HPOUT1L_ENA_WIDTH 1 /* HPOUT1L_ENA */
-#define WM8994_HPOUT1R_ENA 0x0100 /* HPOUT1R_ENA */
-#define WM8994_HPOUT1R_ENA_MASK 0x0100 /* HPOUT1R_ENA */
-#define WM8994_HPOUT1R_ENA_SHIFT 8 /* HPOUT1R_ENA */
-#define WM8994_HPOUT1R_ENA_WIDTH 1 /* HPOUT1R_ENA */
-#define WM8994_MICB2_ENA 0x0020 /* MICB2_ENA */
-#define WM8994_MICB2_ENA_MASK 0x0020 /* MICB2_ENA */
-#define WM8994_MICB2_ENA_SHIFT 5 /* MICB2_ENA */
-#define WM8994_MICB2_ENA_WIDTH 1 /* MICB2_ENA */
-#define WM8994_MICB1_ENA 0x0010 /* MICB1_ENA */
-#define WM8994_MICB1_ENA_MASK 0x0010 /* MICB1_ENA */
-#define WM8994_MICB1_ENA_SHIFT 4 /* MICB1_ENA */
-#define WM8994_MICB1_ENA_WIDTH 1 /* MICB1_ENA */
-#define WM8994_VMID_SEL_MASK 0x0006 /* VMID_SEL - [2:1] */
-#define WM8994_VMID_SEL_SHIFT 1 /* VMID_SEL - [2:1] */
-#define WM8994_VMID_SEL_WIDTH 2 /* VMID_SEL - [2:1] */
-#define WM8994_BIAS_ENA 0x0001 /* BIAS_ENA */
-#define WM8994_BIAS_ENA_MASK 0x0001 /* BIAS_ENA */
-#define WM8994_BIAS_ENA_SHIFT 0 /* BIAS_ENA */
-#define WM8994_BIAS_ENA_WIDTH 1 /* BIAS_ENA */
-
-/*
- * R2 (0x02) - Power Management (2)
- */
-#define WM8994_TSHUT_ENA 0x4000 /* TSHUT_ENA */
-#define WM8994_TSHUT_ENA_MASK 0x4000 /* TSHUT_ENA */
-#define WM8994_TSHUT_ENA_SHIFT 14 /* TSHUT_ENA */
-#define WM8994_TSHUT_ENA_WIDTH 1 /* TSHUT_ENA */
-#define WM8994_TSHUT_OPDIS 0x2000 /* TSHUT_OPDIS */
-#define WM8994_TSHUT_OPDIS_MASK 0x2000 /* TSHUT_OPDIS */
-#define WM8994_TSHUT_OPDIS_SHIFT 13 /* TSHUT_OPDIS */
-#define WM8994_TSHUT_OPDIS_WIDTH 1 /* TSHUT_OPDIS */
-#define WM8994_OPCLK_ENA 0x0800 /* OPCLK_ENA */
-#define WM8994_OPCLK_ENA_MASK 0x0800 /* OPCLK_ENA */
-#define WM8994_OPCLK_ENA_SHIFT 11 /* OPCLK_ENA */
-#define WM8994_OPCLK_ENA_WIDTH 1 /* OPCLK_ENA */
-#define WM8994_MIXINL_ENA 0x0200 /* MIXINL_ENA */
-#define WM8994_MIXINL_ENA_MASK 0x0200 /* MIXINL_ENA */
-#define WM8994_MIXINL_ENA_SHIFT 9 /* MIXINL_ENA */
-#define WM8994_MIXINL_ENA_WIDTH 1 /* MIXINL_ENA */
-#define WM8994_MIXINR_ENA 0x0100 /* MIXINR_ENA */
-#define WM8994_MIXINR_ENA_MASK 0x0100 /* MIXINR_ENA */
-#define WM8994_MIXINR_ENA_SHIFT 8 /* MIXINR_ENA */
-#define WM8994_MIXINR_ENA_WIDTH 1 /* MIXINR_ENA */
-#define WM8994_IN2L_ENA 0x0080 /* IN2L_ENA */
-#define WM8994_IN2L_ENA_MASK 0x0080 /* IN2L_ENA */
-#define WM8994_IN2L_ENA_SHIFT 7 /* IN2L_ENA */
-#define WM8994_IN2L_ENA_WIDTH 1 /* IN2L_ENA */
-#define WM8994_IN1L_ENA 0x0040 /* IN1L_ENA */
-#define WM8994_IN1L_ENA_MASK 0x0040 /* IN1L_ENA */
-#define WM8994_IN1L_ENA_SHIFT 6 /* IN1L_ENA */
-#define WM8994_IN1L_ENA_WIDTH 1 /* IN1L_ENA */
-#define WM8994_IN2R_ENA 0x0020 /* IN2R_ENA */
-#define WM8994_IN2R_ENA_MASK 0x0020 /* IN2R_ENA */
-#define WM8994_IN2R_ENA_SHIFT 5 /* IN2R_ENA */
-#define WM8994_IN2R_ENA_WIDTH 1 /* IN2R_ENA */
-#define WM8994_IN1R_ENA 0x0010 /* IN1R_ENA */
-#define WM8994_IN1R_ENA_MASK 0x0010 /* IN1R_ENA */
-#define WM8994_IN1R_ENA_SHIFT 4 /* IN1R_ENA */
-#define WM8994_IN1R_ENA_WIDTH 1 /* IN1R_ENA */
-
-/*
- * R3 (0x03) - Power Management (3)
- */
-#define WM8994_LINEOUT1N_ENA 0x2000 /* LINEOUT1N_ENA */
-#define WM8994_LINEOUT1N_ENA_MASK 0x2000 /* LINEOUT1N_ENA */
-#define WM8994_LINEOUT1N_ENA_SHIFT 13 /* LINEOUT1N_ENA */
-#define WM8994_LINEOUT1N_ENA_WIDTH 1 /* LINEOUT1N_ENA */
-#define WM8994_LINEOUT1P_ENA 0x1000 /* LINEOUT1P_ENA */
-#define WM8994_LINEOUT1P_ENA_MASK 0x1000 /* LINEOUT1P_ENA */
-#define WM8994_LINEOUT1P_ENA_SHIFT 12 /* LINEOUT1P_ENA */
-#define WM8994_LINEOUT1P_ENA_WIDTH 1 /* LINEOUT1P_ENA */
-#define WM8994_LINEOUT2N_ENA 0x0800 /* LINEOUT2N_ENA */
-#define WM8994_LINEOUT2N_ENA_MASK 0x0800 /* LINEOUT2N_ENA */
-#define WM8994_LINEOUT2N_ENA_SHIFT 11 /* LINEOUT2N_ENA */
-#define WM8994_LINEOUT2N_ENA_WIDTH 1 /* LINEOUT2N_ENA */
-#define WM8994_LINEOUT2P_ENA 0x0400 /* LINEOUT2P_ENA */
-#define WM8994_LINEOUT2P_ENA_MASK 0x0400 /* LINEOUT2P_ENA */
-#define WM8994_LINEOUT2P_ENA_SHIFT 10 /* LINEOUT2P_ENA */
-#define WM8994_LINEOUT2P_ENA_WIDTH 1 /* LINEOUT2P_ENA */
-#define WM8994_SPKRVOL_ENA 0x0200 /* SPKRVOL_ENA */
-#define WM8994_SPKRVOL_ENA_MASK 0x0200 /* SPKRVOL_ENA */
-#define WM8994_SPKRVOL_ENA_SHIFT 9 /* SPKRVOL_ENA */
-#define WM8994_SPKRVOL_ENA_WIDTH 1 /* SPKRVOL_ENA */
-#define WM8994_SPKLVOL_ENA 0x0100 /* SPKLVOL_ENA */
-#define WM8994_SPKLVOL_ENA_MASK 0x0100 /* SPKLVOL_ENA */
-#define WM8994_SPKLVOL_ENA_SHIFT 8 /* SPKLVOL_ENA */
-#define WM8994_SPKLVOL_ENA_WIDTH 1 /* SPKLVOL_ENA */
-#define WM8994_MIXOUTLVOL_ENA 0x0080 /* MIXOUTLVOL_ENA */
-#define WM8994_MIXOUTLVOL_ENA_MASK 0x0080 /* MIXOUTLVOL_ENA */
-#define WM8994_MIXOUTLVOL_ENA_SHIFT 7 /* MIXOUTLVOL_ENA */
-#define WM8994_MIXOUTLVOL_ENA_WIDTH 1 /* MIXOUTLVOL_ENA */
-#define WM8994_MIXOUTRVOL_ENA 0x0040 /* MIXOUTRVOL_ENA */
-#define WM8994_MIXOUTRVOL_ENA_MASK 0x0040 /* MIXOUTRVOL_ENA */
-#define WM8994_MIXOUTRVOL_ENA_SHIFT 6 /* MIXOUTRVOL_ENA */
-#define WM8994_MIXOUTRVOL_ENA_WIDTH 1 /* MIXOUTRVOL_ENA */
-#define WM8994_MIXOUTL_ENA 0x0020 /* MIXOUTL_ENA */
-#define WM8994_MIXOUTL_ENA_MASK 0x0020 /* MIXOUTL_ENA */
-#define WM8994_MIXOUTL_ENA_SHIFT 5 /* MIXOUTL_ENA */
-#define WM8994_MIXOUTL_ENA_WIDTH 1 /* MIXOUTL_ENA */
-#define WM8994_MIXOUTR_ENA 0x0010 /* MIXOUTR_ENA */
-#define WM8994_MIXOUTR_ENA_MASK 0x0010 /* MIXOUTR_ENA */
-#define WM8994_MIXOUTR_ENA_SHIFT 4 /* MIXOUTR_ENA */
-#define WM8994_MIXOUTR_ENA_WIDTH 1 /* MIXOUTR_ENA */
-
-/*
- * R4 (0x04) - Power Management (4)
- */
-#define WM8994_AIF2ADCL_ENA 0x2000 /* AIF2ADCL_ENA */
-#define WM8994_AIF2ADCL_ENA_MASK 0x2000 /* AIF2ADCL_ENA */
-#define WM8994_AIF2ADCL_ENA_SHIFT 13 /* AIF2ADCL_ENA */
-#define WM8994_AIF2ADCL_ENA_WIDTH 1 /* AIF2ADCL_ENA */
-#define WM8994_AIF2ADCR_ENA 0x1000 /* AIF2ADCR_ENA */
-#define WM8994_AIF2ADCR_ENA_MASK 0x1000 /* AIF2ADCR_ENA */
-#define WM8994_AIF2ADCR_ENA_SHIFT 12 /* AIF2ADCR_ENA */
-#define WM8994_AIF2ADCR_ENA_WIDTH 1 /* AIF2ADCR_ENA */
-#define WM8994_AIF1ADC2L_ENA 0x0800 /* AIF1ADC2L_ENA */
-#define WM8994_AIF1ADC2L_ENA_MASK 0x0800 /* AIF1ADC2L_ENA */
-#define WM8994_AIF1ADC2L_ENA_SHIFT 11 /* AIF1ADC2L_ENA */
-#define WM8994_AIF1ADC2L_ENA_WIDTH 1 /* AIF1ADC2L_ENA */
-#define WM8994_AIF1ADC2R_ENA 0x0400 /* AIF1ADC2R_ENA */
-#define WM8994_AIF1ADC2R_ENA_MASK 0x0400 /* AIF1ADC2R_ENA */
-#define WM8994_AIF1ADC2R_ENA_SHIFT 10 /* AIF1ADC2R_ENA */
-#define WM8994_AIF1ADC2R_ENA_WIDTH 1 /* AIF1ADC2R_ENA */
-#define WM8994_AIF1ADC1L_ENA 0x0200 /* AIF1ADC1L_ENA */
-#define WM8994_AIF1ADC1L_ENA_MASK 0x0200 /* AIF1ADC1L_ENA */
-#define WM8994_AIF1ADC1L_ENA_SHIFT 9 /* AIF1ADC1L_ENA */
-#define WM8994_AIF1ADC1L_ENA_WIDTH 1 /* AIF1ADC1L_ENA */
-#define WM8994_AIF1ADC1R_ENA 0x0100 /* AIF1ADC1R_ENA */
-#define WM8994_AIF1ADC1R_ENA_MASK 0x0100 /* AIF1ADC1R_ENA */
-#define WM8994_AIF1ADC1R_ENA_SHIFT 8 /* AIF1ADC1R_ENA */
-#define WM8994_AIF1ADC1R_ENA_WIDTH 1 /* AIF1ADC1R_ENA */
-#define WM8994_DMIC2L_ENA 0x0020 /* DMIC2L_ENA */
-#define WM8994_DMIC2L_ENA_MASK 0x0020 /* DMIC2L_ENA */
-#define WM8994_DMIC2L_ENA_SHIFT 5 /* DMIC2L_ENA */
-#define WM8994_DMIC2L_ENA_WIDTH 1 /* DMIC2L_ENA */
-#define WM8994_DMIC2R_ENA 0x0010 /* DMIC2R_ENA */
-#define WM8994_DMIC2R_ENA_MASK 0x0010 /* DMIC2R_ENA */
-#define WM8994_DMIC2R_ENA_SHIFT 4 /* DMIC2R_ENA */
-#define WM8994_DMIC2R_ENA_WIDTH 1 /* DMIC2R_ENA */
-#define WM8994_DMIC1L_ENA 0x0008 /* DMIC1L_ENA */
-#define WM8994_DMIC1L_ENA_MASK 0x0008 /* DMIC1L_ENA */
-#define WM8994_DMIC1L_ENA_SHIFT 3 /* DMIC1L_ENA */
-#define WM8994_DMIC1L_ENA_WIDTH 1 /* DMIC1L_ENA */
-#define WM8994_DMIC1R_ENA 0x0004 /* DMIC1R_ENA */
-#define WM8994_DMIC1R_ENA_MASK 0x0004 /* DMIC1R_ENA */
-#define WM8994_DMIC1R_ENA_SHIFT 2 /* DMIC1R_ENA */
-#define WM8994_DMIC1R_ENA_WIDTH 1 /* DMIC1R_ENA */
-#define WM8994_ADCL_ENA 0x0002 /* ADCL_ENA */
-#define WM8994_ADCL_ENA_MASK 0x0002 /* ADCL_ENA */
-#define WM8994_ADCL_ENA_SHIFT 1 /* ADCL_ENA */
-#define WM8994_ADCL_ENA_WIDTH 1 /* ADCL_ENA */
-#define WM8994_ADCR_ENA 0x0001 /* ADCR_ENA */
-#define WM8994_ADCR_ENA_MASK 0x0001 /* ADCR_ENA */
-#define WM8994_ADCR_ENA_SHIFT 0 /* ADCR_ENA */
-#define WM8994_ADCR_ENA_WIDTH 1 /* ADCR_ENA */
-
-/*
- * R5 (0x05) - Power Management (5)
- */
-#define WM8994_AIF2DACL_ENA 0x2000 /* AIF2DACL_ENA */
-#define WM8994_AIF2DACL_ENA_MASK 0x2000 /* AIF2DACL_ENA */
-#define WM8994_AIF2DACL_ENA_SHIFT 13 /* AIF2DACL_ENA */
-#define WM8994_AIF2DACL_ENA_WIDTH 1 /* AIF2DACL_ENA */
-#define WM8994_AIF2DACR_ENA 0x1000 /* AIF2DACR_ENA */
-#define WM8994_AIF2DACR_ENA_MASK 0x1000 /* AIF2DACR_ENA */
-#define WM8994_AIF2DACR_ENA_SHIFT 12 /* AIF2DACR_ENA */
-#define WM8994_AIF2DACR_ENA_WIDTH 1 /* AIF2DACR_ENA */
-#define WM8994_AIF1DAC2L_ENA 0x0800 /* AIF1DAC2L_ENA */
-#define WM8994_AIF1DAC2L_ENA_MASK 0x0800 /* AIF1DAC2L_ENA */
-#define WM8994_AIF1DAC2L_ENA_SHIFT 11 /* AIF1DAC2L_ENA */
-#define WM8994_AIF1DAC2L_ENA_WIDTH 1 /* AIF1DAC2L_ENA */
-#define WM8994_AIF1DAC2R_ENA 0x0400 /* AIF1DAC2R_ENA */
-#define WM8994_AIF1DAC2R_ENA_MASK 0x0400 /* AIF1DAC2R_ENA */
-#define WM8994_AIF1DAC2R_ENA_SHIFT 10 /* AIF1DAC2R_ENA */
-#define WM8994_AIF1DAC2R_ENA_WIDTH 1 /* AIF1DAC2R_ENA */
-#define WM8994_AIF1DAC1L_ENA 0x0200 /* AIF1DAC1L_ENA */
-#define WM8994_AIF1DAC1L_ENA_MASK 0x0200 /* AIF1DAC1L_ENA */
-#define WM8994_AIF1DAC1L_ENA_SHIFT 9 /* AIF1DAC1L_ENA */
-#define WM8994_AIF1DAC1L_ENA_WIDTH 1 /* AIF1DAC1L_ENA */
-#define WM8994_AIF1DAC1R_ENA 0x0100 /* AIF1DAC1R_ENA */
-#define WM8994_AIF1DAC1R_ENA_MASK 0x0100 /* AIF1DAC1R_ENA */
-#define WM8994_AIF1DAC1R_ENA_SHIFT 8 /* AIF1DAC1R_ENA */
-#define WM8994_AIF1DAC1R_ENA_WIDTH 1 /* AIF1DAC1R_ENA */
-#define WM8994_DAC2L_ENA 0x0008 /* DAC2L_ENA */
-#define WM8994_DAC2L_ENA_MASK 0x0008 /* DAC2L_ENA */
-#define WM8994_DAC2L_ENA_SHIFT 3 /* DAC2L_ENA */
-#define WM8994_DAC2L_ENA_WIDTH 1 /* DAC2L_ENA */
-#define WM8994_DAC2R_ENA 0x0004 /* DAC2R_ENA */
-#define WM8994_DAC2R_ENA_MASK 0x0004 /* DAC2R_ENA */
-#define WM8994_DAC2R_ENA_SHIFT 2 /* DAC2R_ENA */
-#define WM8994_DAC2R_ENA_WIDTH 1 /* DAC2R_ENA */
-#define WM8994_DAC1L_ENA 0x0002 /* DAC1L_ENA */
-#define WM8994_DAC1L_ENA_MASK 0x0002 /* DAC1L_ENA */
-#define WM8994_DAC1L_ENA_SHIFT 1 /* DAC1L_ENA */
-#define WM8994_DAC1L_ENA_WIDTH 1 /* DAC1L_ENA */
-#define WM8994_DAC1R_ENA 0x0001 /* DAC1R_ENA */
-#define WM8994_DAC1R_ENA_MASK 0x0001 /* DAC1R_ENA */
-#define WM8994_DAC1R_ENA_SHIFT 0 /* DAC1R_ENA */
-#define WM8994_DAC1R_ENA_WIDTH 1 /* DAC1R_ENA */
-
-/*
- * R6 (0x06) - Power Management (6)
- */
-#define WM8958_AIF3ADC_SRC_MASK 0x0600 /* AIF3ADC_SRC - [10:9] */
-#define WM8958_AIF3ADC_SRC_SHIFT 9 /* AIF3ADC_SRC - [10:9] */
-#define WM8958_AIF3ADC_SRC_WIDTH 2 /* AIF3ADC_SRC - [10:9] */
-#define WM8958_AIF2DAC_SRC_MASK 0x0180 /* AIF2DAC_SRC - [8:7] */
-#define WM8958_AIF2DAC_SRC_SHIFT 7 /* AIF2DAC_SRC - [8:7] */
-#define WM8958_AIF2DAC_SRC_WIDTH 2 /* AIF2DAC_SRC - [8:7] */
-#define WM8994_AIF3_TRI 0x0020 /* AIF3_TRI */
-#define WM8994_AIF3_TRI_MASK 0x0020 /* AIF3_TRI */
-#define WM8994_AIF3_TRI_SHIFT 5 /* AIF3_TRI */
-#define WM8994_AIF3_TRI_WIDTH 1 /* AIF3_TRI */
-#define WM8994_AIF3_ADCDAT_SRC_MASK 0x0018 /* AIF3_ADCDAT_SRC - [4:3] */
-#define WM8994_AIF3_ADCDAT_SRC_SHIFT 3 /* AIF3_ADCDAT_SRC - [4:3] */
-#define WM8994_AIF3_ADCDAT_SRC_WIDTH 2 /* AIF3_ADCDAT_SRC - [4:3] */
-#define WM8994_AIF2_ADCDAT_SRC 0x0004 /* AIF2_ADCDAT_SRC */
-#define WM8994_AIF2_ADCDAT_SRC_MASK 0x0004 /* AIF2_ADCDAT_SRC */
-#define WM8994_AIF2_ADCDAT_SRC_SHIFT 2 /* AIF2_ADCDAT_SRC */
-#define WM8994_AIF2_ADCDAT_SRC_WIDTH 1 /* AIF2_ADCDAT_SRC */
-#define WM8994_AIF2_DACDAT_SRC 0x0002 /* AIF2_DACDAT_SRC */
-#define WM8994_AIF2_DACDAT_SRC_MASK 0x0002 /* AIF2_DACDAT_SRC */
-#define WM8994_AIF2_DACDAT_SRC_SHIFT 1 /* AIF2_DACDAT_SRC */
-#define WM8994_AIF2_DACDAT_SRC_WIDTH 1 /* AIF2_DACDAT_SRC */
-#define WM8994_AIF1_DACDAT_SRC 0x0001 /* AIF1_DACDAT_SRC */
-#define WM8994_AIF1_DACDAT_SRC_MASK 0x0001 /* AIF1_DACDAT_SRC */
-#define WM8994_AIF1_DACDAT_SRC_SHIFT 0 /* AIF1_DACDAT_SRC */
-#define WM8994_AIF1_DACDAT_SRC_WIDTH 1 /* AIF1_DACDAT_SRC */
-
-/*
- * R21 (0x15) - Input Mixer (1)
- */
-#define WM8994_IN1RP_MIXINR_BOOST 0x0100 /* IN1RP_MIXINR_BOOST */
-#define WM8994_IN1RP_MIXINR_BOOST_MASK 0x0100 /* IN1RP_MIXINR_BOOST */
-#define WM8994_IN1RP_MIXINR_BOOST_SHIFT 8 /* IN1RP_MIXINR_BOOST */
-#define WM8994_IN1RP_MIXINR_BOOST_WIDTH 1 /* IN1RP_MIXINR_BOOST */
-#define WM8994_IN1LP_MIXINL_BOOST 0x0080 /* IN1LP_MIXINL_BOOST */
-#define WM8994_IN1LP_MIXINL_BOOST_MASK 0x0080 /* IN1LP_MIXINL_BOOST */
-#define WM8994_IN1LP_MIXINL_BOOST_SHIFT 7 /* IN1LP_MIXINL_BOOST */
-#define WM8994_IN1LP_MIXINL_BOOST_WIDTH 1 /* IN1LP_MIXINL_BOOST */
-#define WM8994_INPUTS_CLAMP 0x0040 /* INPUTS_CLAMP */
-#define WM8994_INPUTS_CLAMP_MASK 0x0040 /* INPUTS_CLAMP */
-#define WM8994_INPUTS_CLAMP_SHIFT 6 /* INPUTS_CLAMP */
-#define WM8994_INPUTS_CLAMP_WIDTH 1 /* INPUTS_CLAMP */
-
-/*
- * R24 (0x18) - Left Line Input 1&2 Volume
- */
-#define WM8994_IN1_VU 0x0100 /* IN1_VU */
-#define WM8994_IN1_VU_MASK 0x0100 /* IN1_VU */
-#define WM8994_IN1_VU_SHIFT 8 /* IN1_VU */
-#define WM8994_IN1_VU_WIDTH 1 /* IN1_VU */
-#define WM8994_IN1L_MUTE 0x0080 /* IN1L_MUTE */
-#define WM8994_IN1L_MUTE_MASK 0x0080 /* IN1L_MUTE */
-#define WM8994_IN1L_MUTE_SHIFT 7 /* IN1L_MUTE */
-#define WM8994_IN1L_MUTE_WIDTH 1 /* IN1L_MUTE */
-#define WM8994_IN1L_ZC 0x0040 /* IN1L_ZC */
-#define WM8994_IN1L_ZC_MASK 0x0040 /* IN1L_ZC */
-#define WM8994_IN1L_ZC_SHIFT 6 /* IN1L_ZC */
-#define WM8994_IN1L_ZC_WIDTH 1 /* IN1L_ZC */
-#define WM8994_IN1L_VOL_MASK 0x001F /* IN1L_VOL - [4:0] */
-#define WM8994_IN1L_VOL_SHIFT 0 /* IN1L_VOL - [4:0] */
-#define WM8994_IN1L_VOL_WIDTH 5 /* IN1L_VOL - [4:0] */
-
-/*
- * R25 (0x19) - Left Line Input 3&4 Volume
- */
-#define WM8994_IN2_VU 0x0100 /* IN2_VU */
-#define WM8994_IN2_VU_MASK 0x0100 /* IN2_VU */
-#define WM8994_IN2_VU_SHIFT 8 /* IN2_VU */
-#define WM8994_IN2_VU_WIDTH 1 /* IN2_VU */
-#define WM8994_IN2L_MUTE 0x0080 /* IN2L_MUTE */
-#define WM8994_IN2L_MUTE_MASK 0x0080 /* IN2L_MUTE */
-#define WM8994_IN2L_MUTE_SHIFT 7 /* IN2L_MUTE */
-#define WM8994_IN2L_MUTE_WIDTH 1 /* IN2L_MUTE */
-#define WM8994_IN2L_ZC 0x0040 /* IN2L_ZC */
-#define WM8994_IN2L_ZC_MASK 0x0040 /* IN2L_ZC */
-#define WM8994_IN2L_ZC_SHIFT 6 /* IN2L_ZC */
-#define WM8994_IN2L_ZC_WIDTH 1 /* IN2L_ZC */
-#define WM8994_IN2L_VOL_MASK 0x001F /* IN2L_VOL - [4:0] */
-#define WM8994_IN2L_VOL_SHIFT 0 /* IN2L_VOL - [4:0] */
-#define WM8994_IN2L_VOL_WIDTH 5 /* IN2L_VOL - [4:0] */
-
-/*
- * R26 (0x1A) - Right Line Input 1&2 Volume
- */
-#define WM8994_IN1_VU 0x0100 /* IN1_VU */
-#define WM8994_IN1_VU_MASK 0x0100 /* IN1_VU */
-#define WM8994_IN1_VU_SHIFT 8 /* IN1_VU */
-#define WM8994_IN1_VU_WIDTH 1 /* IN1_VU */
-#define WM8994_IN1R_MUTE 0x0080 /* IN1R_MUTE */
-#define WM8994_IN1R_MUTE_MASK 0x0080 /* IN1R_MUTE */
-#define WM8994_IN1R_MUTE_SHIFT 7 /* IN1R_MUTE */
-#define WM8994_IN1R_MUTE_WIDTH 1 /* IN1R_MUTE */
-#define WM8994_IN1R_ZC 0x0040 /* IN1R_ZC */
-#define WM8994_IN1R_ZC_MASK 0x0040 /* IN1R_ZC */
-#define WM8994_IN1R_ZC_SHIFT 6 /* IN1R_ZC */
-#define WM8994_IN1R_ZC_WIDTH 1 /* IN1R_ZC */
-#define WM8994_IN1R_VOL_MASK 0x001F /* IN1R_VOL - [4:0] */
-#define WM8994_IN1R_VOL_SHIFT 0 /* IN1R_VOL - [4:0] */
-#define WM8994_IN1R_VOL_WIDTH 5 /* IN1R_VOL - [4:0] */
-
-/*
- * R27 (0x1B) - Right Line Input 3&4 Volume
- */
-#define WM8994_IN2_VU 0x0100 /* IN2_VU */
-#define WM8994_IN2_VU_MASK 0x0100 /* IN2_VU */
-#define WM8994_IN2_VU_SHIFT 8 /* IN2_VU */
-#define WM8994_IN2_VU_WIDTH 1 /* IN2_VU */
-#define WM8994_IN2R_MUTE 0x0080 /* IN2R_MUTE */
-#define WM8994_IN2R_MUTE_MASK 0x0080 /* IN2R_MUTE */
-#define WM8994_IN2R_MUTE_SHIFT 7 /* IN2R_MUTE */
-#define WM8994_IN2R_MUTE_WIDTH 1 /* IN2R_MUTE */
-#define WM8994_IN2R_ZC 0x0040 /* IN2R_ZC */
-#define WM8994_IN2R_ZC_MASK 0x0040 /* IN2R_ZC */
-#define WM8994_IN2R_ZC_SHIFT 6 /* IN2R_ZC */
-#define WM8994_IN2R_ZC_WIDTH 1 /* IN2R_ZC */
-#define WM8994_IN2R_VOL_MASK 0x001F /* IN2R_VOL - [4:0] */
-#define WM8994_IN2R_VOL_SHIFT 0 /* IN2R_VOL - [4:0] */
-#define WM8994_IN2R_VOL_WIDTH 5 /* IN2R_VOL - [4:0] */
-
-/*
- * R28 (0x1C) - Left Output Volume
- */
-#define WM8994_HPOUT1_VU 0x0100 /* HPOUT1_VU */
-#define WM8994_HPOUT1_VU_MASK 0x0100 /* HPOUT1_VU */
-#define WM8994_HPOUT1_VU_SHIFT 8 /* HPOUT1_VU */
-#define WM8994_HPOUT1_VU_WIDTH 1 /* HPOUT1_VU */
-#define WM8994_HPOUT1L_ZC 0x0080 /* HPOUT1L_ZC */
-#define WM8994_HPOUT1L_ZC_MASK 0x0080 /* HPOUT1L_ZC */
-#define WM8994_HPOUT1L_ZC_SHIFT 7 /* HPOUT1L_ZC */
-#define WM8994_HPOUT1L_ZC_WIDTH 1 /* HPOUT1L_ZC */
-#define WM8994_HPOUT1L_MUTE_N 0x0040 /* HPOUT1L_MUTE_N */
-#define WM8994_HPOUT1L_MUTE_N_MASK 0x0040 /* HPOUT1L_MUTE_N */
-#define WM8994_HPOUT1L_MUTE_N_SHIFT 6 /* HPOUT1L_MUTE_N */
-#define WM8994_HPOUT1L_MUTE_N_WIDTH 1 /* HPOUT1L_MUTE_N */
-#define WM8994_HPOUT1L_VOL_MASK 0x003F /* HPOUT1L_VOL - [5:0] */
-#define WM8994_HPOUT1L_VOL_SHIFT 0 /* HPOUT1L_VOL - [5:0] */
-#define WM8994_HPOUT1L_VOL_WIDTH 6 /* HPOUT1L_VOL - [5:0] */
-
-/*
- * R29 (0x1D) - Right Output Volume
- */
-#define WM8994_HPOUT1_VU 0x0100 /* HPOUT1_VU */
-#define WM8994_HPOUT1_VU_MASK 0x0100 /* HPOUT1_VU */
-#define WM8994_HPOUT1_VU_SHIFT 8 /* HPOUT1_VU */
-#define WM8994_HPOUT1_VU_WIDTH 1 /* HPOUT1_VU */
-#define WM8994_HPOUT1R_ZC 0x0080 /* HPOUT1R_ZC */
-#define WM8994_HPOUT1R_ZC_MASK 0x0080 /* HPOUT1R_ZC */
-#define WM8994_HPOUT1R_ZC_SHIFT 7 /* HPOUT1R_ZC */
-#define WM8994_HPOUT1R_ZC_WIDTH 1 /* HPOUT1R_ZC */
-#define WM8994_HPOUT1R_MUTE_N 0x0040 /* HPOUT1R_MUTE_N */
-#define WM8994_HPOUT1R_MUTE_N_MASK 0x0040 /* HPOUT1R_MUTE_N */
-#define WM8994_HPOUT1R_MUTE_N_SHIFT 6 /* HPOUT1R_MUTE_N */
-#define WM8994_HPOUT1R_MUTE_N_WIDTH 1 /* HPOUT1R_MUTE_N */
-#define WM8994_HPOUT1R_VOL_MASK 0x003F /* HPOUT1R_VOL - [5:0] */
-#define WM8994_HPOUT1R_VOL_SHIFT 0 /* HPOUT1R_VOL - [5:0] */
-#define WM8994_HPOUT1R_VOL_WIDTH 6 /* HPOUT1R_VOL - [5:0] */
-
-/*
- * R30 (0x1E) - Line Outputs Volume
- */
-#define WM8994_LINEOUT1N_MUTE 0x0040 /* LINEOUT1N_MUTE */
-#define WM8994_LINEOUT1N_MUTE_MASK 0x0040 /* LINEOUT1N_MUTE */
-#define WM8994_LINEOUT1N_MUTE_SHIFT 6 /* LINEOUT1N_MUTE */
-#define WM8994_LINEOUT1N_MUTE_WIDTH 1 /* LINEOUT1N_MUTE */
-#define WM8994_LINEOUT1P_MUTE 0x0020 /* LINEOUT1P_MUTE */
-#define WM8994_LINEOUT1P_MUTE_MASK 0x0020 /* LINEOUT1P_MUTE */
-#define WM8994_LINEOUT1P_MUTE_SHIFT 5 /* LINEOUT1P_MUTE */
-#define WM8994_LINEOUT1P_MUTE_WIDTH 1 /* LINEOUT1P_MUTE */
-#define WM8994_LINEOUT1_VOL 0x0010 /* LINEOUT1_VOL */
-#define WM8994_LINEOUT1_VOL_MASK 0x0010 /* LINEOUT1_VOL */
-#define WM8994_LINEOUT1_VOL_SHIFT 4 /* LINEOUT1_VOL */
-#define WM8994_LINEOUT1_VOL_WIDTH 1 /* LINEOUT1_VOL */
-#define WM8994_LINEOUT2N_MUTE 0x0004 /* LINEOUT2N_MUTE */
-#define WM8994_LINEOUT2N_MUTE_MASK 0x0004 /* LINEOUT2N_MUTE */
-#define WM8994_LINEOUT2N_MUTE_SHIFT 2 /* LINEOUT2N_MUTE */
-#define WM8994_LINEOUT2N_MUTE_WIDTH 1 /* LINEOUT2N_MUTE */
-#define WM8994_LINEOUT2P_MUTE 0x0002 /* LINEOUT2P_MUTE */
-#define WM8994_LINEOUT2P_MUTE_MASK 0x0002 /* LINEOUT2P_MUTE */
-#define WM8994_LINEOUT2P_MUTE_SHIFT 1 /* LINEOUT2P_MUTE */
-#define WM8994_LINEOUT2P_MUTE_WIDTH 1 /* LINEOUT2P_MUTE */
-#define WM8994_LINEOUT2_VOL 0x0001 /* LINEOUT2_VOL */
-#define WM8994_LINEOUT2_VOL_MASK 0x0001 /* LINEOUT2_VOL */
-#define WM8994_LINEOUT2_VOL_SHIFT 0 /* LINEOUT2_VOL */
-#define WM8994_LINEOUT2_VOL_WIDTH 1 /* LINEOUT2_VOL */
-
-/*
- * R31 (0x1F) - HPOUT2 Volume
- */
-#define WM8994_HPOUT2_MUTE 0x0020 /* HPOUT2_MUTE */
-#define WM8994_HPOUT2_MUTE_MASK 0x0020 /* HPOUT2_MUTE */
-#define WM8994_HPOUT2_MUTE_SHIFT 5 /* HPOUT2_MUTE */
-#define WM8994_HPOUT2_MUTE_WIDTH 1 /* HPOUT2_MUTE */
-#define WM8994_HPOUT2_VOL 0x0010 /* HPOUT2_VOL */
-#define WM8994_HPOUT2_VOL_MASK 0x0010 /* HPOUT2_VOL */
-#define WM8994_HPOUT2_VOL_SHIFT 4 /* HPOUT2_VOL */
-#define WM8994_HPOUT2_VOL_WIDTH 1 /* HPOUT2_VOL */
-
-/*
- * R32 (0x20) - Left OPGA Volume
- */
-#define WM8994_MIXOUT_VU 0x0100 /* MIXOUT_VU */
-#define WM8994_MIXOUT_VU_MASK 0x0100 /* MIXOUT_VU */
-#define WM8994_MIXOUT_VU_SHIFT 8 /* MIXOUT_VU */
-#define WM8994_MIXOUT_VU_WIDTH 1 /* MIXOUT_VU */
-#define WM8994_MIXOUTL_ZC 0x0080 /* MIXOUTL_ZC */
-#define WM8994_MIXOUTL_ZC_MASK 0x0080 /* MIXOUTL_ZC */
-#define WM8994_MIXOUTL_ZC_SHIFT 7 /* MIXOUTL_ZC */
-#define WM8994_MIXOUTL_ZC_WIDTH 1 /* MIXOUTL_ZC */
-#define WM8994_MIXOUTL_MUTE_N 0x0040 /* MIXOUTL_MUTE_N */
-#define WM8994_MIXOUTL_MUTE_N_MASK 0x0040 /* MIXOUTL_MUTE_N */
-#define WM8994_MIXOUTL_MUTE_N_SHIFT 6 /* MIXOUTL_MUTE_N */
-#define WM8994_MIXOUTL_MUTE_N_WIDTH 1 /* MIXOUTL_MUTE_N */
-#define WM8994_MIXOUTL_VOL_MASK 0x003F /* MIXOUTL_VOL - [5:0] */
-#define WM8994_MIXOUTL_VOL_SHIFT 0 /* MIXOUTL_VOL - [5:0] */
-#define WM8994_MIXOUTL_VOL_WIDTH 6 /* MIXOUTL_VOL - [5:0] */
-
-/*
- * R33 (0x21) - Right OPGA Volume
- */
-#define WM8994_MIXOUT_VU 0x0100 /* MIXOUT_VU */
-#define WM8994_MIXOUT_VU_MASK 0x0100 /* MIXOUT_VU */
-#define WM8994_MIXOUT_VU_SHIFT 8 /* MIXOUT_VU */
-#define WM8994_MIXOUT_VU_WIDTH 1 /* MIXOUT_VU */
-#define WM8994_MIXOUTR_ZC 0x0080 /* MIXOUTR_ZC */
-#define WM8994_MIXOUTR_ZC_MASK 0x0080 /* MIXOUTR_ZC */
-#define WM8994_MIXOUTR_ZC_SHIFT 7 /* MIXOUTR_ZC */
-#define WM8994_MIXOUTR_ZC_WIDTH 1 /* MIXOUTR_ZC */
-#define WM8994_MIXOUTR_MUTE_N 0x0040 /* MIXOUTR_MUTE_N */
-#define WM8994_MIXOUTR_MUTE_N_MASK 0x0040 /* MIXOUTR_MUTE_N */
-#define WM8994_MIXOUTR_MUTE_N_SHIFT 6 /* MIXOUTR_MUTE_N */
-#define WM8994_MIXOUTR_MUTE_N_WIDTH 1 /* MIXOUTR_MUTE_N */
-#define WM8994_MIXOUTR_VOL_MASK 0x003F /* MIXOUTR_VOL - [5:0] */
-#define WM8994_MIXOUTR_VOL_SHIFT 0 /* MIXOUTR_VOL - [5:0] */
-#define WM8994_MIXOUTR_VOL_WIDTH 6 /* MIXOUTR_VOL - [5:0] */
-
-/*
- * R34 (0x22) - SPKMIXL Attenuation
- */
-#define WM8994_DAC2L_SPKMIXL_VOL 0x0040 /* DAC2L_SPKMIXL_VOL */
-#define WM8994_DAC2L_SPKMIXL_VOL_MASK 0x0040 /* DAC2L_SPKMIXL_VOL */
-#define WM8994_DAC2L_SPKMIXL_VOL_SHIFT 6 /* DAC2L_SPKMIXL_VOL */
-#define WM8994_DAC2L_SPKMIXL_VOL_WIDTH 1 /* DAC2L_SPKMIXL_VOL */
-#define WM8994_MIXINL_SPKMIXL_VOL 0x0020 /* MIXINL_SPKMIXL_VOL */
-#define WM8994_MIXINL_SPKMIXL_VOL_MASK 0x0020 /* MIXINL_SPKMIXL_VOL */
-#define WM8994_MIXINL_SPKMIXL_VOL_SHIFT 5 /* MIXINL_SPKMIXL_VOL */
-#define WM8994_MIXINL_SPKMIXL_VOL_WIDTH 1 /* MIXINL_SPKMIXL_VOL */
-#define WM8994_IN1LP_SPKMIXL_VOL 0x0010 /* IN1LP_SPKMIXL_VOL */
-#define WM8994_IN1LP_SPKMIXL_VOL_MASK 0x0010 /* IN1LP_SPKMIXL_VOL */
-#define WM8994_IN1LP_SPKMIXL_VOL_SHIFT 4 /* IN1LP_SPKMIXL_VOL */
-#define WM8994_IN1LP_SPKMIXL_VOL_WIDTH 1 /* IN1LP_SPKMIXL_VOL */
-#define WM8994_MIXOUTL_SPKMIXL_VOL 0x0008 /* MIXOUTL_SPKMIXL_VOL */
-#define WM8994_MIXOUTL_SPKMIXL_VOL_MASK 0x0008 /* MIXOUTL_SPKMIXL_VOL */
-#define WM8994_MIXOUTL_SPKMIXL_VOL_SHIFT 3 /* MIXOUTL_SPKMIXL_VOL */
-#define WM8994_MIXOUTL_SPKMIXL_VOL_WIDTH 1 /* MIXOUTL_SPKMIXL_VOL */
-#define WM8994_DAC1L_SPKMIXL_VOL 0x0004 /* DAC1L_SPKMIXL_VOL */
-#define WM8994_DAC1L_SPKMIXL_VOL_MASK 0x0004 /* DAC1L_SPKMIXL_VOL */
-#define WM8994_DAC1L_SPKMIXL_VOL_SHIFT 2 /* DAC1L_SPKMIXL_VOL */
-#define WM8994_DAC1L_SPKMIXL_VOL_WIDTH 1 /* DAC1L_SPKMIXL_VOL */
-#define WM8994_SPKMIXL_VOL_MASK 0x0003 /* SPKMIXL_VOL - [1:0] */
-#define WM8994_SPKMIXL_VOL_SHIFT 0 /* SPKMIXL_VOL - [1:0] */
-#define WM8994_SPKMIXL_VOL_WIDTH 2 /* SPKMIXL_VOL - [1:0] */
-
-/*
- * R35 (0x23) - SPKMIXR Attenuation
- */
-#define WM8994_SPKOUT_CLASSAB 0x0100 /* SPKOUT_CLASSAB */
-#define WM8994_SPKOUT_CLASSAB_MASK 0x0100 /* SPKOUT_CLASSAB */
-#define WM8994_SPKOUT_CLASSAB_SHIFT 8 /* SPKOUT_CLASSAB */
-#define WM8994_SPKOUT_CLASSAB_WIDTH 1 /* SPKOUT_CLASSAB */
-#define WM8994_DAC2R_SPKMIXR_VOL 0x0040 /* DAC2R_SPKMIXR_VOL */
-#define WM8994_DAC2R_SPKMIXR_VOL_MASK 0x0040 /* DAC2R_SPKMIXR_VOL */
-#define WM8994_DAC2R_SPKMIXR_VOL_SHIFT 6 /* DAC2R_SPKMIXR_VOL */
-#define WM8994_DAC2R_SPKMIXR_VOL_WIDTH 1 /* DAC2R_SPKMIXR_VOL */
-#define WM8994_MIXINR_SPKMIXR_VOL 0x0020 /* MIXINR_SPKMIXR_VOL */
-#define WM8994_MIXINR_SPKMIXR_VOL_MASK 0x0020 /* MIXINR_SPKMIXR_VOL */
-#define WM8994_MIXINR_SPKMIXR_VOL_SHIFT 5 /* MIXINR_SPKMIXR_VOL */
-#define WM8994_MIXINR_SPKMIXR_VOL_WIDTH 1 /* MIXINR_SPKMIXR_VOL */
-#define WM8994_IN1RP_SPKMIXR_VOL 0x0010 /* IN1RP_SPKMIXR_VOL */
-#define WM8994_IN1RP_SPKMIXR_VOL_MASK 0x0010 /* IN1RP_SPKMIXR_VOL */
-#define WM8994_IN1RP_SPKMIXR_VOL_SHIFT 4 /* IN1RP_SPKMIXR_VOL */
-#define WM8994_IN1RP_SPKMIXR_VOL_WIDTH 1 /* IN1RP_SPKMIXR_VOL */
-#define WM8994_MIXOUTR_SPKMIXR_VOL 0x0008 /* MIXOUTR_SPKMIXR_VOL */
-#define WM8994_MIXOUTR_SPKMIXR_VOL_MASK 0x0008 /* MIXOUTR_SPKMIXR_VOL */
-#define WM8994_MIXOUTR_SPKMIXR_VOL_SHIFT 3 /* MIXOUTR_SPKMIXR_VOL */
-#define WM8994_MIXOUTR_SPKMIXR_VOL_WIDTH 1 /* MIXOUTR_SPKMIXR_VOL */
-#define WM8994_DAC1R_SPKMIXR_VOL 0x0004 /* DAC1R_SPKMIXR_VOL */
-#define WM8994_DAC1R_SPKMIXR_VOL_MASK 0x0004 /* DAC1R_SPKMIXR_VOL */
-#define WM8994_DAC1R_SPKMIXR_VOL_SHIFT 2 /* DAC1R_SPKMIXR_VOL */
-#define WM8994_DAC1R_SPKMIXR_VOL_WIDTH 1 /* DAC1R_SPKMIXR_VOL */
-#define WM8994_SPKMIXR_VOL_MASK 0x0003 /* SPKMIXR_VOL - [1:0] */
-#define WM8994_SPKMIXR_VOL_SHIFT 0 /* SPKMIXR_VOL - [1:0] */
-#define WM8994_SPKMIXR_VOL_WIDTH 2 /* SPKMIXR_VOL - [1:0] */
-
-/*
- * R36 (0x24) - SPKOUT Mixers
- */
-#define WM8994_IN2LRP_TO_SPKOUTL 0x0020 /* IN2LRP_TO_SPKOUTL */
-#define WM8994_IN2LRP_TO_SPKOUTL_MASK 0x0020 /* IN2LRP_TO_SPKOUTL */
-#define WM8994_IN2LRP_TO_SPKOUTL_SHIFT 5 /* IN2LRP_TO_SPKOUTL */
-#define WM8994_IN2LRP_TO_SPKOUTL_WIDTH 1 /* IN2LRP_TO_SPKOUTL */
-#define WM8994_SPKMIXL_TO_SPKOUTL 0x0010 /* SPKMIXL_TO_SPKOUTL */
-#define WM8994_SPKMIXL_TO_SPKOUTL_MASK 0x0010 /* SPKMIXL_TO_SPKOUTL */
-#define WM8994_SPKMIXL_TO_SPKOUTL_SHIFT 4 /* SPKMIXL_TO_SPKOUTL */
-#define WM8994_SPKMIXL_TO_SPKOUTL_WIDTH 1 /* SPKMIXL_TO_SPKOUTL */
-#define WM8994_SPKMIXR_TO_SPKOUTL 0x0008 /* SPKMIXR_TO_SPKOUTL */
-#define WM8994_SPKMIXR_TO_SPKOUTL_MASK 0x0008 /* SPKMIXR_TO_SPKOUTL */
-#define WM8994_SPKMIXR_TO_SPKOUTL_SHIFT 3 /* SPKMIXR_TO_SPKOUTL */
-#define WM8994_SPKMIXR_TO_SPKOUTL_WIDTH 1 /* SPKMIXR_TO_SPKOUTL */
-#define WM8994_IN2LRP_TO_SPKOUTR 0x0004 /* IN2LRP_TO_SPKOUTR */
-#define WM8994_IN2LRP_TO_SPKOUTR_MASK 0x0004 /* IN2LRP_TO_SPKOUTR */
-#define WM8994_IN2LRP_TO_SPKOUTR_SHIFT 2 /* IN2LRP_TO_SPKOUTR */
-#define WM8994_IN2LRP_TO_SPKOUTR_WIDTH 1 /* IN2LRP_TO_SPKOUTR */
-#define WM8994_SPKMIXL_TO_SPKOUTR 0x0002 /* SPKMIXL_TO_SPKOUTR */
-#define WM8994_SPKMIXL_TO_SPKOUTR_MASK 0x0002 /* SPKMIXL_TO_SPKOUTR */
-#define WM8994_SPKMIXL_TO_SPKOUTR_SHIFT 1 /* SPKMIXL_TO_SPKOUTR */
-#define WM8994_SPKMIXL_TO_SPKOUTR_WIDTH 1 /* SPKMIXL_TO_SPKOUTR */
-#define WM8994_SPKMIXR_TO_SPKOUTR 0x0001 /* SPKMIXR_TO_SPKOUTR */
-#define WM8994_SPKMIXR_TO_SPKOUTR_MASK 0x0001 /* SPKMIXR_TO_SPKOUTR */
-#define WM8994_SPKMIXR_TO_SPKOUTR_SHIFT 0 /* SPKMIXR_TO_SPKOUTR */
-#define WM8994_SPKMIXR_TO_SPKOUTR_WIDTH 1 /* SPKMIXR_TO_SPKOUTR */
-
-/*
- * R37 (0x25) - ClassD
- */
-#define WM8994_SPKOUTL_BOOST_MASK 0x0038 /* SPKOUTL_BOOST - [5:3] */
-#define WM8994_SPKOUTL_BOOST_SHIFT 3 /* SPKOUTL_BOOST - [5:3] */
-#define WM8994_SPKOUTL_BOOST_WIDTH 3 /* SPKOUTL_BOOST - [5:3] */
-#define WM8994_SPKOUTR_BOOST_MASK 0x0007 /* SPKOUTR_BOOST - [2:0] */
-#define WM8994_SPKOUTR_BOOST_SHIFT 0 /* SPKOUTR_BOOST - [2:0] */
-#define WM8994_SPKOUTR_BOOST_WIDTH 3 /* SPKOUTR_BOOST - [2:0] */
-
-/*
- * R38 (0x26) - Speaker Volume Left
- */
-#define WM8994_SPKOUT_VU 0x0100 /* SPKOUT_VU */
-#define WM8994_SPKOUT_VU_MASK 0x0100 /* SPKOUT_VU */
-#define WM8994_SPKOUT_VU_SHIFT 8 /* SPKOUT_VU */
-#define WM8994_SPKOUT_VU_WIDTH 1 /* SPKOUT_VU */
-#define WM8994_SPKOUTL_ZC 0x0080 /* SPKOUTL_ZC */
-#define WM8994_SPKOUTL_ZC_MASK 0x0080 /* SPKOUTL_ZC */
-#define WM8994_SPKOUTL_ZC_SHIFT 7 /* SPKOUTL_ZC */
-#define WM8994_SPKOUTL_ZC_WIDTH 1 /* SPKOUTL_ZC */
-#define WM8994_SPKOUTL_MUTE_N 0x0040 /* SPKOUTL_MUTE_N */
-#define WM8994_SPKOUTL_MUTE_N_MASK 0x0040 /* SPKOUTL_MUTE_N */
-#define WM8994_SPKOUTL_MUTE_N_SHIFT 6 /* SPKOUTL_MUTE_N */
-#define WM8994_SPKOUTL_MUTE_N_WIDTH 1 /* SPKOUTL_MUTE_N */
-#define WM8994_SPKOUTL_VOL_MASK 0x003F /* SPKOUTL_VOL - [5:0] */
-#define WM8994_SPKOUTL_VOL_SHIFT 0 /* SPKOUTL_VOL - [5:0] */
-#define WM8994_SPKOUTL_VOL_WIDTH 6 /* SPKOUTL_VOL - [5:0] */
-
-/*
- * R39 (0x27) - Speaker Volume Right
- */
-#define WM8994_SPKOUT_VU 0x0100 /* SPKOUT_VU */
-#define WM8994_SPKOUT_VU_MASK 0x0100 /* SPKOUT_VU */
-#define WM8994_SPKOUT_VU_SHIFT 8 /* SPKOUT_VU */
-#define WM8994_SPKOUT_VU_WIDTH 1 /* SPKOUT_VU */
-#define WM8994_SPKOUTR_ZC 0x0080 /* SPKOUTR_ZC */
-#define WM8994_SPKOUTR_ZC_MASK 0x0080 /* SPKOUTR_ZC */
-#define WM8994_SPKOUTR_ZC_SHIFT 7 /* SPKOUTR_ZC */
-#define WM8994_SPKOUTR_ZC_WIDTH 1 /* SPKOUTR_ZC */
-#define WM8994_SPKOUTR_MUTE_N 0x0040 /* SPKOUTR_MUTE_N */
-#define WM8994_SPKOUTR_MUTE_N_MASK 0x0040 /* SPKOUTR_MUTE_N */
-#define WM8994_SPKOUTR_MUTE_N_SHIFT 6 /* SPKOUTR_MUTE_N */
-#define WM8994_SPKOUTR_MUTE_N_WIDTH 1 /* SPKOUTR_MUTE_N */
-#define WM8994_SPKOUTR_VOL_MASK 0x003F /* SPKOUTR_VOL - [5:0] */
-#define WM8994_SPKOUTR_VOL_SHIFT 0 /* SPKOUTR_VOL - [5:0] */
-#define WM8994_SPKOUTR_VOL_WIDTH 6 /* SPKOUTR_VOL - [5:0] */
-
-/*
- * R40 (0x28) - Input Mixer (2)
- */
-#define WM8994_IN2LP_TO_IN2L 0x0080 /* IN2LP_TO_IN2L */
-#define WM8994_IN2LP_TO_IN2L_MASK 0x0080 /* IN2LP_TO_IN2L */
-#define WM8994_IN2LP_TO_IN2L_SHIFT 7 /* IN2LP_TO_IN2L */
-#define WM8994_IN2LP_TO_IN2L_WIDTH 1 /* IN2LP_TO_IN2L */
-#define WM8994_IN2LN_TO_IN2L 0x0040 /* IN2LN_TO_IN2L */
-#define WM8994_IN2LN_TO_IN2L_MASK 0x0040 /* IN2LN_TO_IN2L */
-#define WM8994_IN2LN_TO_IN2L_SHIFT 6 /* IN2LN_TO_IN2L */
-#define WM8994_IN2LN_TO_IN2L_WIDTH 1 /* IN2LN_TO_IN2L */
-#define WM8994_IN1LP_TO_IN1L 0x0020 /* IN1LP_TO_IN1L */
-#define WM8994_IN1LP_TO_IN1L_MASK 0x0020 /* IN1LP_TO_IN1L */
-#define WM8994_IN1LP_TO_IN1L_SHIFT 5 /* IN1LP_TO_IN1L */
-#define WM8994_IN1LP_TO_IN1L_WIDTH 1 /* IN1LP_TO_IN1L */
-#define WM8994_IN1LN_TO_IN1L 0x0010 /* IN1LN_TO_IN1L */
-#define WM8994_IN1LN_TO_IN1L_MASK 0x0010 /* IN1LN_TO_IN1L */
-#define WM8994_IN1LN_TO_IN1L_SHIFT 4 /* IN1LN_TO_IN1L */
-#define WM8994_IN1LN_TO_IN1L_WIDTH 1 /* IN1LN_TO_IN1L */
-#define WM8994_IN2RP_TO_IN2R 0x0008 /* IN2RP_TO_IN2R */
-#define WM8994_IN2RP_TO_IN2R_MASK 0x0008 /* IN2RP_TO_IN2R */
-#define WM8994_IN2RP_TO_IN2R_SHIFT 3 /* IN2RP_TO_IN2R */
-#define WM8994_IN2RP_TO_IN2R_WIDTH 1 /* IN2RP_TO_IN2R */
-#define WM8994_IN2RN_TO_IN2R 0x0004 /* IN2RN_TO_IN2R */
-#define WM8994_IN2RN_TO_IN2R_MASK 0x0004 /* IN2RN_TO_IN2R */
-#define WM8994_IN2RN_TO_IN2R_SHIFT 2 /* IN2RN_TO_IN2R */
-#define WM8994_IN2RN_TO_IN2R_WIDTH 1 /* IN2RN_TO_IN2R */
-#define WM8994_IN1RP_TO_IN1R 0x0002 /* IN1RP_TO_IN1R */
-#define WM8994_IN1RP_TO_IN1R_MASK 0x0002 /* IN1RP_TO_IN1R */
-#define WM8994_IN1RP_TO_IN1R_SHIFT 1 /* IN1RP_TO_IN1R */
-#define WM8994_IN1RP_TO_IN1R_WIDTH 1 /* IN1RP_TO_IN1R */
-#define WM8994_IN1RN_TO_IN1R 0x0001 /* IN1RN_TO_IN1R */
-#define WM8994_IN1RN_TO_IN1R_MASK 0x0001 /* IN1RN_TO_IN1R */
-#define WM8994_IN1RN_TO_IN1R_SHIFT 0 /* IN1RN_TO_IN1R */
-#define WM8994_IN1RN_TO_IN1R_WIDTH 1 /* IN1RN_TO_IN1R */
-
-/*
- * R41 (0x29) - Input Mixer (3)
- */
-#define WM8994_IN2L_TO_MIXINL 0x0100 /* IN2L_TO_MIXINL */
-#define WM8994_IN2L_TO_MIXINL_MASK 0x0100 /* IN2L_TO_MIXINL */
-#define WM8994_IN2L_TO_MIXINL_SHIFT 8 /* IN2L_TO_MIXINL */
-#define WM8994_IN2L_TO_MIXINL_WIDTH 1 /* IN2L_TO_MIXINL */
-#define WM8994_IN2L_MIXINL_VOL 0x0080 /* IN2L_MIXINL_VOL */
-#define WM8994_IN2L_MIXINL_VOL_MASK 0x0080 /* IN2L_MIXINL_VOL */
-#define WM8994_IN2L_MIXINL_VOL_SHIFT 7 /* IN2L_MIXINL_VOL */
-#define WM8994_IN2L_MIXINL_VOL_WIDTH 1 /* IN2L_MIXINL_VOL */
-#define WM8994_IN1L_TO_MIXINL 0x0020 /* IN1L_TO_MIXINL */
-#define WM8994_IN1L_TO_MIXINL_MASK 0x0020 /* IN1L_TO_MIXINL */
-#define WM8994_IN1L_TO_MIXINL_SHIFT 5 /* IN1L_TO_MIXINL */
-#define WM8994_IN1L_TO_MIXINL_WIDTH 1 /* IN1L_TO_MIXINL */
-#define WM8994_IN1L_MIXINL_VOL 0x0010 /* IN1L_MIXINL_VOL */
-#define WM8994_IN1L_MIXINL_VOL_MASK 0x0010 /* IN1L_MIXINL_VOL */
-#define WM8994_IN1L_MIXINL_VOL_SHIFT 4 /* IN1L_MIXINL_VOL */
-#define WM8994_IN1L_MIXINL_VOL_WIDTH 1 /* IN1L_MIXINL_VOL */
-#define WM8994_MIXOUTL_MIXINL_VOL_MASK 0x0007 /* MIXOUTL_MIXINL_VOL - [2:0] */
-#define WM8994_MIXOUTL_MIXINL_VOL_SHIFT 0 /* MIXOUTL_MIXINL_VOL - [2:0] */
-#define WM8994_MIXOUTL_MIXINL_VOL_WIDTH 3 /* MIXOUTL_MIXINL_VOL - [2:0] */
-
-/*
- * R42 (0x2A) - Input Mixer (4)
- */
-#define WM8994_IN2R_TO_MIXINR 0x0100 /* IN2R_TO_MIXINR */
-#define WM8994_IN2R_TO_MIXINR_MASK 0x0100 /* IN2R_TO_MIXINR */
-#define WM8994_IN2R_TO_MIXINR_SHIFT 8 /* IN2R_TO_MIXINR */
-#define WM8994_IN2R_TO_MIXINR_WIDTH 1 /* IN2R_TO_MIXINR */
-#define WM8994_IN2R_MIXINR_VOL 0x0080 /* IN2R_MIXINR_VOL */
-#define WM8994_IN2R_MIXINR_VOL_MASK 0x0080 /* IN2R_MIXINR_VOL */
-#define WM8994_IN2R_MIXINR_VOL_SHIFT 7 /* IN2R_MIXINR_VOL */
-#define WM8994_IN2R_MIXINR_VOL_WIDTH 1 /* IN2R_MIXINR_VOL */
-#define WM8994_IN1R_TO_MIXINR 0x0020 /* IN1R_TO_MIXINR */
-#define WM8994_IN1R_TO_MIXINR_MASK 0x0020 /* IN1R_TO_MIXINR */
-#define WM8994_IN1R_TO_MIXINR_SHIFT 5 /* IN1R_TO_MIXINR */
-#define WM8994_IN1R_TO_MIXINR_WIDTH 1 /* IN1R_TO_MIXINR */
-#define WM8994_IN1R_MIXINR_VOL 0x0010 /* IN1R_MIXINR_VOL */
-#define WM8994_IN1R_MIXINR_VOL_MASK 0x0010 /* IN1R_MIXINR_VOL */
-#define WM8994_IN1R_MIXINR_VOL_SHIFT 4 /* IN1R_MIXINR_VOL */
-#define WM8994_IN1R_MIXINR_VOL_WIDTH 1 /* IN1R_MIXINR_VOL */
-#define WM8994_MIXOUTR_MIXINR_VOL_MASK 0x0007 /* MIXOUTR_MIXINR_VOL - [2:0] */
-#define WM8994_MIXOUTR_MIXINR_VOL_SHIFT 0 /* MIXOUTR_MIXINR_VOL - [2:0] */
-#define WM8994_MIXOUTR_MIXINR_VOL_WIDTH 3 /* MIXOUTR_MIXINR_VOL - [2:0] */
-
-/*
- * R43 (0x2B) - Input Mixer (5)
- */
-#define WM8994_IN1LP_MIXINL_VOL_MASK 0x01C0 /* IN1LP_MIXINL_VOL - [8:6] */
-#define WM8994_IN1LP_MIXINL_VOL_SHIFT 6 /* IN1LP_MIXINL_VOL - [8:6] */
-#define WM8994_IN1LP_MIXINL_VOL_WIDTH 3 /* IN1LP_MIXINL_VOL - [8:6] */
-#define WM8994_IN2LRP_MIXINL_VOL_MASK 0x0007 /* IN2LRP_MIXINL_VOL - [2:0] */
-#define WM8994_IN2LRP_MIXINL_VOL_SHIFT 0 /* IN2LRP_MIXINL_VOL - [2:0] */
-#define WM8994_IN2LRP_MIXINL_VOL_WIDTH 3 /* IN2LRP_MIXINL_VOL - [2:0] */
-
-/*
- * R44 (0x2C) - Input Mixer (6)
- */
-#define WM8994_IN1RP_MIXINR_VOL_MASK 0x01C0 /* IN1RP_MIXINR_VOL - [8:6] */
-#define WM8994_IN1RP_MIXINR_VOL_SHIFT 6 /* IN1RP_MIXINR_VOL - [8:6] */
-#define WM8994_IN1RP_MIXINR_VOL_WIDTH 3 /* IN1RP_MIXINR_VOL - [8:6] */
-#define WM8994_IN2LRP_MIXINR_VOL_MASK 0x0007 /* IN2LRP_MIXINR_VOL - [2:0] */
-#define WM8994_IN2LRP_MIXINR_VOL_SHIFT 0 /* IN2LRP_MIXINR_VOL - [2:0] */
-#define WM8994_IN2LRP_MIXINR_VOL_WIDTH 3 /* IN2LRP_MIXINR_VOL - [2:0] */
-
-/*
- * R45 (0x2D) - Output Mixer (1)
- */
-#define WM8994_DAC1L_TO_HPOUT1L 0x0100 /* DAC1L_TO_HPOUT1L */
-#define WM8994_DAC1L_TO_HPOUT1L_MASK 0x0100 /* DAC1L_TO_HPOUT1L */
-#define WM8994_DAC1L_TO_HPOUT1L_SHIFT 8 /* DAC1L_TO_HPOUT1L */
-#define WM8994_DAC1L_TO_HPOUT1L_WIDTH 1 /* DAC1L_TO_HPOUT1L */
-#define WM8994_MIXINR_TO_MIXOUTL 0x0080 /* MIXINR_TO_MIXOUTL */
-#define WM8994_MIXINR_TO_MIXOUTL_MASK 0x0080 /* MIXINR_TO_MIXOUTL */
-#define WM8994_MIXINR_TO_MIXOUTL_SHIFT 7 /* MIXINR_TO_MIXOUTL */
-#define WM8994_MIXINR_TO_MIXOUTL_WIDTH 1 /* MIXINR_TO_MIXOUTL */
-#define WM8994_MIXINL_TO_MIXOUTL 0x0040 /* MIXINL_TO_MIXOUTL */
-#define WM8994_MIXINL_TO_MIXOUTL_MASK 0x0040 /* MIXINL_TO_MIXOUTL */
-#define WM8994_MIXINL_TO_MIXOUTL_SHIFT 6 /* MIXINL_TO_MIXOUTL */
-#define WM8994_MIXINL_TO_MIXOUTL_WIDTH 1 /* MIXINL_TO_MIXOUTL */
-#define WM8994_IN2RN_TO_MIXOUTL 0x0020 /* IN2RN_TO_MIXOUTL */
-#define WM8994_IN2RN_TO_MIXOUTL_MASK 0x0020 /* IN2RN_TO_MIXOUTL */
-#define WM8994_IN2RN_TO_MIXOUTL_SHIFT 5 /* IN2RN_TO_MIXOUTL */
-#define WM8994_IN2RN_TO_MIXOUTL_WIDTH 1 /* IN2RN_TO_MIXOUTL */
-#define WM8994_IN2LN_TO_MIXOUTL 0x0010 /* IN2LN_TO_MIXOUTL */
-#define WM8994_IN2LN_TO_MIXOUTL_MASK 0x0010 /* IN2LN_TO_MIXOUTL */
-#define WM8994_IN2LN_TO_MIXOUTL_SHIFT 4 /* IN2LN_TO_MIXOUTL */
-#define WM8994_IN2LN_TO_MIXOUTL_WIDTH 1 /* IN2LN_TO_MIXOUTL */
-#define WM8994_IN1R_TO_MIXOUTL 0x0008 /* IN1R_TO_MIXOUTL */
-#define WM8994_IN1R_TO_MIXOUTL_MASK 0x0008 /* IN1R_TO_MIXOUTL */
-#define WM8994_IN1R_TO_MIXOUTL_SHIFT 3 /* IN1R_TO_MIXOUTL */
-#define WM8994_IN1R_TO_MIXOUTL_WIDTH 1 /* IN1R_TO_MIXOUTL */
-#define WM8994_IN1L_TO_MIXOUTL 0x0004 /* IN1L_TO_MIXOUTL */
-#define WM8994_IN1L_TO_MIXOUTL_MASK 0x0004 /* IN1L_TO_MIXOUTL */
-#define WM8994_IN1L_TO_MIXOUTL_SHIFT 2 /* IN1L_TO_MIXOUTL */
-#define WM8994_IN1L_TO_MIXOUTL_WIDTH 1 /* IN1L_TO_MIXOUTL */
-#define WM8994_IN2LP_TO_MIXOUTL 0x0002 /* IN2LP_TO_MIXOUTL */
-#define WM8994_IN2LP_TO_MIXOUTL_MASK 0x0002 /* IN2LP_TO_MIXOUTL */
-#define WM8994_IN2LP_TO_MIXOUTL_SHIFT 1 /* IN2LP_TO_MIXOUTL */
-#define WM8994_IN2LP_TO_MIXOUTL_WIDTH 1 /* IN2LP_TO_MIXOUTL */
-#define WM8994_DAC1L_TO_MIXOUTL 0x0001 /* DAC1L_TO_MIXOUTL */
-#define WM8994_DAC1L_TO_MIXOUTL_MASK 0x0001 /* DAC1L_TO_MIXOUTL */
-#define WM8994_DAC1L_TO_MIXOUTL_SHIFT 0 /* DAC1L_TO_MIXOUTL */
-#define WM8994_DAC1L_TO_MIXOUTL_WIDTH 1 /* DAC1L_TO_MIXOUTL */
-
-/*
- * R46 (0x2E) - Output Mixer (2)
- */
-#define WM8994_DAC1R_TO_HPOUT1R 0x0100 /* DAC1R_TO_HPOUT1R */
-#define WM8994_DAC1R_TO_HPOUT1R_MASK 0x0100 /* DAC1R_TO_HPOUT1R */
-#define WM8994_DAC1R_TO_HPOUT1R_SHIFT 8 /* DAC1R_TO_HPOUT1R */
-#define WM8994_DAC1R_TO_HPOUT1R_WIDTH 1 /* DAC1R_TO_HPOUT1R */
-#define WM8994_MIXINL_TO_MIXOUTR 0x0080 /* MIXINL_TO_MIXOUTR */
-#define WM8994_MIXINL_TO_MIXOUTR_MASK 0x0080 /* MIXINL_TO_MIXOUTR */
-#define WM8994_MIXINL_TO_MIXOUTR_SHIFT 7 /* MIXINL_TO_MIXOUTR */
-#define WM8994_MIXINL_TO_MIXOUTR_WIDTH 1 /* MIXINL_TO_MIXOUTR */
-#define WM8994_MIXINR_TO_MIXOUTR 0x0040 /* MIXINR_TO_MIXOUTR */
-#define WM8994_MIXINR_TO_MIXOUTR_MASK 0x0040 /* MIXINR_TO_MIXOUTR */
-#define WM8994_MIXINR_TO_MIXOUTR_SHIFT 6 /* MIXINR_TO_MIXOUTR */
-#define WM8994_MIXINR_TO_MIXOUTR_WIDTH 1 /* MIXINR_TO_MIXOUTR */
-#define WM8994_IN2LN_TO_MIXOUTR 0x0020 /* IN2LN_TO_MIXOUTR */
-#define WM8994_IN2LN_TO_MIXOUTR_MASK 0x0020 /* IN2LN_TO_MIXOUTR */
-#define WM8994_IN2LN_TO_MIXOUTR_SHIFT 5 /* IN2LN_TO_MIXOUTR */
-#define WM8994_IN2LN_TO_MIXOUTR_WIDTH 1 /* IN2LN_TO_MIXOUTR */
-#define WM8994_IN2RN_TO_MIXOUTR 0x0010 /* IN2RN_TO_MIXOUTR */
-#define WM8994_IN2RN_TO_MIXOUTR_MASK 0x0010 /* IN2RN_TO_MIXOUTR */
-#define WM8994_IN2RN_TO_MIXOUTR_SHIFT 4 /* IN2RN_TO_MIXOUTR */
-#define WM8994_IN2RN_TO_MIXOUTR_WIDTH 1 /* IN2RN_TO_MIXOUTR */
-#define WM8994_IN1L_TO_MIXOUTR 0x0008 /* IN1L_TO_MIXOUTR */
-#define WM8994_IN1L_TO_MIXOUTR_MASK 0x0008 /* IN1L_TO_MIXOUTR */
-#define WM8994_IN1L_TO_MIXOUTR_SHIFT 3 /* IN1L_TO_MIXOUTR */
-#define WM8994_IN1L_TO_MIXOUTR_WIDTH 1 /* IN1L_TO_MIXOUTR */
-#define WM8994_IN1R_TO_MIXOUTR 0x0004 /* IN1R_TO_MIXOUTR */
-#define WM8994_IN1R_TO_MIXOUTR_MASK 0x0004 /* IN1R_TO_MIXOUTR */
-#define WM8994_IN1R_TO_MIXOUTR_SHIFT 2 /* IN1R_TO_MIXOUTR */
-#define WM8994_IN1R_TO_MIXOUTR_WIDTH 1 /* IN1R_TO_MIXOUTR */
-#define WM8994_IN2RP_TO_MIXOUTR 0x0002 /* IN2RP_TO_MIXOUTR */
-#define WM8994_IN2RP_TO_MIXOUTR_MASK 0x0002 /* IN2RP_TO_MIXOUTR */
-#define WM8994_IN2RP_TO_MIXOUTR_SHIFT 1 /* IN2RP_TO_MIXOUTR */
-#define WM8994_IN2RP_TO_MIXOUTR_WIDTH 1 /* IN2RP_TO_MIXOUTR */
-#define WM8994_DAC1R_TO_MIXOUTR 0x0001 /* DAC1R_TO_MIXOUTR */
-#define WM8994_DAC1R_TO_MIXOUTR_MASK 0x0001 /* DAC1R_TO_MIXOUTR */
-#define WM8994_DAC1R_TO_MIXOUTR_SHIFT 0 /* DAC1R_TO_MIXOUTR */
-#define WM8994_DAC1R_TO_MIXOUTR_WIDTH 1 /* DAC1R_TO_MIXOUTR */
-
-/*
- * R47 (0x2F) - Output Mixer (3)
- */
-#define WM8994_IN2LP_MIXOUTL_VOL_MASK 0x0E00 /* IN2LP_MIXOUTL_VOL - [11:9] */
-#define WM8994_IN2LP_MIXOUTL_VOL_SHIFT 9 /* IN2LP_MIXOUTL_VOL - [11:9] */
-#define WM8994_IN2LP_MIXOUTL_VOL_WIDTH 3 /* IN2LP_MIXOUTL_VOL - [11:9] */
-#define WM8994_IN2LN_MIXOUTL_VOL_MASK 0x01C0 /* IN2LN_MIXOUTL_VOL - [8:6] */
-#define WM8994_IN2LN_MIXOUTL_VOL_SHIFT 6 /* IN2LN_MIXOUTL_VOL - [8:6] */
-#define WM8994_IN2LN_MIXOUTL_VOL_WIDTH 3 /* IN2LN_MIXOUTL_VOL - [8:6] */
-#define WM8994_IN1R_MIXOUTL_VOL_MASK 0x0038 /* IN1R_MIXOUTL_VOL - [5:3] */
-#define WM8994_IN1R_MIXOUTL_VOL_SHIFT 3 /* IN1R_MIXOUTL_VOL - [5:3] */
-#define WM8994_IN1R_MIXOUTL_VOL_WIDTH 3 /* IN1R_MIXOUTL_VOL - [5:3] */
-#define WM8994_IN1L_MIXOUTL_VOL_MASK 0x0007 /* IN1L_MIXOUTL_VOL - [2:0] */
-#define WM8994_IN1L_MIXOUTL_VOL_SHIFT 0 /* IN1L_MIXOUTL_VOL - [2:0] */
-#define WM8994_IN1L_MIXOUTL_VOL_WIDTH 3 /* IN1L_MIXOUTL_VOL - [2:0] */
-
-/*
- * R48 (0x30) - Output Mixer (4)
- */
-#define WM8994_IN2RP_MIXOUTR_VOL_MASK 0x0E00 /* IN2RP_MIXOUTR_VOL - [11:9] */
-#define WM8994_IN2RP_MIXOUTR_VOL_SHIFT 9 /* IN2RP_MIXOUTR_VOL - [11:9] */
-#define WM8994_IN2RP_MIXOUTR_VOL_WIDTH 3 /* IN2RP_MIXOUTR_VOL - [11:9] */
-#define WM8994_IN2RN_MIXOUTR_VOL_MASK 0x01C0 /* IN2RN_MIXOUTR_VOL - [8:6] */
-#define WM8994_IN2RN_MIXOUTR_VOL_SHIFT 6 /* IN2RN_MIXOUTR_VOL - [8:6] */
-#define WM8994_IN2RN_MIXOUTR_VOL_WIDTH 3 /* IN2RN_MIXOUTR_VOL - [8:6] */
-#define WM8994_IN1L_MIXOUTR_VOL_MASK 0x0038 /* IN1L_MIXOUTR_VOL - [5:3] */
-#define WM8994_IN1L_MIXOUTR_VOL_SHIFT 3 /* IN1L_MIXOUTR_VOL - [5:3] */
-#define WM8994_IN1L_MIXOUTR_VOL_WIDTH 3 /* IN1L_MIXOUTR_VOL - [5:3] */
-#define WM8994_IN1R_MIXOUTR_VOL_MASK 0x0007 /* IN1R_MIXOUTR_VOL - [2:0] */
-#define WM8994_IN1R_MIXOUTR_VOL_SHIFT 0 /* IN1R_MIXOUTR_VOL - [2:0] */
-#define WM8994_IN1R_MIXOUTR_VOL_WIDTH 3 /* IN1R_MIXOUTR_VOL - [2:0] */
-
-/*
- * R49 (0x31) - Output Mixer (5)
- */
-#define WM8994_DAC1L_MIXOUTL_VOL_MASK 0x0E00 /* DAC1L_MIXOUTL_VOL - [11:9] */
-#define WM8994_DAC1L_MIXOUTL_VOL_SHIFT 9 /* DAC1L_MIXOUTL_VOL - [11:9] */
-#define WM8994_DAC1L_MIXOUTL_VOL_WIDTH 3 /* DAC1L_MIXOUTL_VOL - [11:9] */
-#define WM8994_IN2RN_MIXOUTL_VOL_MASK 0x01C0 /* IN2RN_MIXOUTL_VOL - [8:6] */
-#define WM8994_IN2RN_MIXOUTL_VOL_SHIFT 6 /* IN2RN_MIXOUTL_VOL - [8:6] */
-#define WM8994_IN2RN_MIXOUTL_VOL_WIDTH 3 /* IN2RN_MIXOUTL_VOL - [8:6] */
-#define WM8994_MIXINR_MIXOUTL_VOL_MASK 0x0038 /* MIXINR_MIXOUTL_VOL - [5:3] */
-#define WM8994_MIXINR_MIXOUTL_VOL_SHIFT 3 /* MIXINR_MIXOUTL_VOL - [5:3] */
-#define WM8994_MIXINR_MIXOUTL_VOL_WIDTH 3 /* MIXINR_MIXOUTL_VOL - [5:3] */
-#define WM8994_MIXINL_MIXOUTL_VOL_MASK 0x0007 /* MIXINL_MIXOUTL_VOL - [2:0] */
-#define WM8994_MIXINL_MIXOUTL_VOL_SHIFT 0 /* MIXINL_MIXOUTL_VOL - [2:0] */
-#define WM8994_MIXINL_MIXOUTL_VOL_WIDTH 3 /* MIXINL_MIXOUTL_VOL - [2:0] */
-
-/*
- * R50 (0x32) - Output Mixer (6)
- */
-#define WM8994_DAC1R_MIXOUTR_VOL_MASK 0x0E00 /* DAC1R_MIXOUTR_VOL - [11:9] */
-#define WM8994_DAC1R_MIXOUTR_VOL_SHIFT 9 /* DAC1R_MIXOUTR_VOL - [11:9] */
-#define WM8994_DAC1R_MIXOUTR_VOL_WIDTH 3 /* DAC1R_MIXOUTR_VOL - [11:9] */
-#define WM8994_IN2LN_MIXOUTR_VOL_MASK 0x01C0 /* IN2LN_MIXOUTR_VOL - [8:6] */
-#define WM8994_IN2LN_MIXOUTR_VOL_SHIFT 6 /* IN2LN_MIXOUTR_VOL - [8:6] */
-#define WM8994_IN2LN_MIXOUTR_VOL_WIDTH 3 /* IN2LN_MIXOUTR_VOL - [8:6] */
-#define WM8994_MIXINL_MIXOUTR_VOL_MASK 0x0038 /* MIXINL_MIXOUTR_VOL - [5:3] */
-#define WM8994_MIXINL_MIXOUTR_VOL_SHIFT 3 /* MIXINL_MIXOUTR_VOL - [5:3] */
-#define WM8994_MIXINL_MIXOUTR_VOL_WIDTH 3 /* MIXINL_MIXOUTR_VOL - [5:3] */
-#define WM8994_MIXINR_MIXOUTR_VOL_MASK 0x0007 /* MIXINR_MIXOUTR_VOL - [2:0] */
-#define WM8994_MIXINR_MIXOUTR_VOL_SHIFT 0 /* MIXINR_MIXOUTR_VOL - [2:0] */
-#define WM8994_MIXINR_MIXOUTR_VOL_WIDTH 3 /* MIXINR_MIXOUTR_VOL - [2:0] */
-
-/*
- * R51 (0x33) - HPOUT2 Mixer
- */
-#define WM8994_IN2LRP_TO_HPOUT2 0x0020 /* IN2LRP_TO_HPOUT2 */
-#define WM8994_IN2LRP_TO_HPOUT2_MASK 0x0020 /* IN2LRP_TO_HPOUT2 */
-#define WM8994_IN2LRP_TO_HPOUT2_SHIFT 5 /* IN2LRP_TO_HPOUT2 */
-#define WM8994_IN2LRP_TO_HPOUT2_WIDTH 1 /* IN2LRP_TO_HPOUT2 */
-#define WM8994_MIXOUTLVOL_TO_HPOUT2 0x0010 /* MIXOUTLVOL_TO_HPOUT2 */
-#define WM8994_MIXOUTLVOL_TO_HPOUT2_MASK 0x0010 /* MIXOUTLVOL_TO_HPOUT2 */
-#define WM8994_MIXOUTLVOL_TO_HPOUT2_SHIFT 4 /* MIXOUTLVOL_TO_HPOUT2 */
-#define WM8994_MIXOUTLVOL_TO_HPOUT2_WIDTH 1 /* MIXOUTLVOL_TO_HPOUT2 */
-#define WM8994_MIXOUTRVOL_TO_HPOUT2 0x0008 /* MIXOUTRVOL_TO_HPOUT2 */
-#define WM8994_MIXOUTRVOL_TO_HPOUT2_MASK 0x0008 /* MIXOUTRVOL_TO_HPOUT2 */
-#define WM8994_MIXOUTRVOL_TO_HPOUT2_SHIFT 3 /* MIXOUTRVOL_TO_HPOUT2 */
-#define WM8994_MIXOUTRVOL_TO_HPOUT2_WIDTH 1 /* MIXOUTRVOL_TO_HPOUT2 */
-
-/*
- * R52 (0x34) - Line Mixer (1)
- */
-#define WM8994_MIXOUTL_TO_LINEOUT1N 0x0040 /* MIXOUTL_TO_LINEOUT1N */
-#define WM8994_MIXOUTL_TO_LINEOUT1N_MASK 0x0040 /* MIXOUTL_TO_LINEOUT1N */
-#define WM8994_MIXOUTL_TO_LINEOUT1N_SHIFT 6 /* MIXOUTL_TO_LINEOUT1N */
-#define WM8994_MIXOUTL_TO_LINEOUT1N_WIDTH 1 /* MIXOUTL_TO_LINEOUT1N */
-#define WM8994_MIXOUTR_TO_LINEOUT1N 0x0020 /* MIXOUTR_TO_LINEOUT1N */
-#define WM8994_MIXOUTR_TO_LINEOUT1N_MASK 0x0020 /* MIXOUTR_TO_LINEOUT1N */
-#define WM8994_MIXOUTR_TO_LINEOUT1N_SHIFT 5 /* MIXOUTR_TO_LINEOUT1N */
-#define WM8994_MIXOUTR_TO_LINEOUT1N_WIDTH 1 /* MIXOUTR_TO_LINEOUT1N */
-#define WM8994_LINEOUT1_MODE 0x0010 /* LINEOUT1_MODE */
-#define WM8994_LINEOUT1_MODE_MASK 0x0010 /* LINEOUT1_MODE */
-#define WM8994_LINEOUT1_MODE_SHIFT 4 /* LINEOUT1_MODE */
-#define WM8994_LINEOUT1_MODE_WIDTH 1 /* LINEOUT1_MODE */
-#define WM8994_IN1R_TO_LINEOUT1P 0x0004 /* IN1R_TO_LINEOUT1P */
-#define WM8994_IN1R_TO_LINEOUT1P_MASK 0x0004 /* IN1R_TO_LINEOUT1P */
-#define WM8994_IN1R_TO_LINEOUT1P_SHIFT 2 /* IN1R_TO_LINEOUT1P */
-#define WM8994_IN1R_TO_LINEOUT1P_WIDTH 1 /* IN1R_TO_LINEOUT1P */
-#define WM8994_IN1L_TO_LINEOUT1P 0x0002 /* IN1L_TO_LINEOUT1P */
-#define WM8994_IN1L_TO_LINEOUT1P_MASK 0x0002 /* IN1L_TO_LINEOUT1P */
-#define WM8994_IN1L_TO_LINEOUT1P_SHIFT 1 /* IN1L_TO_LINEOUT1P */
-#define WM8994_IN1L_TO_LINEOUT1P_WIDTH 1 /* IN1L_TO_LINEOUT1P */
-#define WM8994_MIXOUTL_TO_LINEOUT1P 0x0001 /* MIXOUTL_TO_LINEOUT1P */
-#define WM8994_MIXOUTL_TO_LINEOUT1P_MASK 0x0001 /* MIXOUTL_TO_LINEOUT1P */
-#define WM8994_MIXOUTL_TO_LINEOUT1P_SHIFT 0 /* MIXOUTL_TO_LINEOUT1P */
-#define WM8994_MIXOUTL_TO_LINEOUT1P_WIDTH 1 /* MIXOUTL_TO_LINEOUT1P */
-
-/*
- * R53 (0x35) - Line Mixer (2)
- */
-#define WM8994_MIXOUTR_TO_LINEOUT2N 0x0040 /* MIXOUTR_TO_LINEOUT2N */
-#define WM8994_MIXOUTR_TO_LINEOUT2N_MASK 0x0040 /* MIXOUTR_TO_LINEOUT2N */
-#define WM8994_MIXOUTR_TO_LINEOUT2N_SHIFT 6 /* MIXOUTR_TO_LINEOUT2N */
-#define WM8994_MIXOUTR_TO_LINEOUT2N_WIDTH 1 /* MIXOUTR_TO_LINEOUT2N */
-#define WM8994_MIXOUTL_TO_LINEOUT2N 0x0020 /* MIXOUTL_TO_LINEOUT2N */
-#define WM8994_MIXOUTL_TO_LINEOUT2N_MASK 0x0020 /* MIXOUTL_TO_LINEOUT2N */
-#define WM8994_MIXOUTL_TO_LINEOUT2N_SHIFT 5 /* MIXOUTL_TO_LINEOUT2N */
-#define WM8994_MIXOUTL_TO_LINEOUT2N_WIDTH 1 /* MIXOUTL_TO_LINEOUT2N */
-#define WM8994_LINEOUT2_MODE 0x0010 /* LINEOUT2_MODE */
-#define WM8994_LINEOUT2_MODE_MASK 0x0010 /* LINEOUT2_MODE */
-#define WM8994_LINEOUT2_MODE_SHIFT 4 /* LINEOUT2_MODE */
-#define WM8994_LINEOUT2_MODE_WIDTH 1 /* LINEOUT2_MODE */
-#define WM8994_IN1L_TO_LINEOUT2P 0x0004 /* IN1L_TO_LINEOUT2P */
-#define WM8994_IN1L_TO_LINEOUT2P_MASK 0x0004 /* IN1L_TO_LINEOUT2P */
-#define WM8994_IN1L_TO_LINEOUT2P_SHIFT 2 /* IN1L_TO_LINEOUT2P */
-#define WM8994_IN1L_TO_LINEOUT2P_WIDTH 1 /* IN1L_TO_LINEOUT2P */
-#define WM8994_IN1R_TO_LINEOUT2P 0x0002 /* IN1R_TO_LINEOUT2P */
-#define WM8994_IN1R_TO_LINEOUT2P_MASK 0x0002 /* IN1R_TO_LINEOUT2P */
-#define WM8994_IN1R_TO_LINEOUT2P_SHIFT 1 /* IN1R_TO_LINEOUT2P */
-#define WM8994_IN1R_TO_LINEOUT2P_WIDTH 1 /* IN1R_TO_LINEOUT2P */
-#define WM8994_MIXOUTR_TO_LINEOUT2P 0x0001 /* MIXOUTR_TO_LINEOUT2P */
-#define WM8994_MIXOUTR_TO_LINEOUT2P_MASK 0x0001 /* MIXOUTR_TO_LINEOUT2P */
-#define WM8994_MIXOUTR_TO_LINEOUT2P_SHIFT 0 /* MIXOUTR_TO_LINEOUT2P */
-#define WM8994_MIXOUTR_TO_LINEOUT2P_WIDTH 1 /* MIXOUTR_TO_LINEOUT2P */
-
-/*
- * R54 (0x36) - Speaker Mixer
- */
-#define WM8994_DAC2L_TO_SPKMIXL 0x0200 /* DAC2L_TO_SPKMIXL */
-#define WM8994_DAC2L_TO_SPKMIXL_MASK 0x0200 /* DAC2L_TO_SPKMIXL */
-#define WM8994_DAC2L_TO_SPKMIXL_SHIFT 9 /* DAC2L_TO_SPKMIXL */
-#define WM8994_DAC2L_TO_SPKMIXL_WIDTH 1 /* DAC2L_TO_SPKMIXL */
-#define WM8994_DAC2R_TO_SPKMIXR 0x0100 /* DAC2R_TO_SPKMIXR */
-#define WM8994_DAC2R_TO_SPKMIXR_MASK 0x0100 /* DAC2R_TO_SPKMIXR */
-#define WM8994_DAC2R_TO_SPKMIXR_SHIFT 8 /* DAC2R_TO_SPKMIXR */
-#define WM8994_DAC2R_TO_SPKMIXR_WIDTH 1 /* DAC2R_TO_SPKMIXR */
-#define WM8994_MIXINL_TO_SPKMIXL 0x0080 /* MIXINL_TO_SPKMIXL */
-#define WM8994_MIXINL_TO_SPKMIXL_MASK 0x0080 /* MIXINL_TO_SPKMIXL */
-#define WM8994_MIXINL_TO_SPKMIXL_SHIFT 7 /* MIXINL_TO_SPKMIXL */
-#define WM8994_MIXINL_TO_SPKMIXL_WIDTH 1 /* MIXINL_TO_SPKMIXL */
-#define WM8994_MIXINR_TO_SPKMIXR 0x0040 /* MIXINR_TO_SPKMIXR */
-#define WM8994_MIXINR_TO_SPKMIXR_MASK 0x0040 /* MIXINR_TO_SPKMIXR */
-#define WM8994_MIXINR_TO_SPKMIXR_SHIFT 6 /* MIXINR_TO_SPKMIXR */
-#define WM8994_MIXINR_TO_SPKMIXR_WIDTH 1 /* MIXINR_TO_SPKMIXR */
-#define WM8994_IN1LP_TO_SPKMIXL 0x0020 /* IN1LP_TO_SPKMIXL */
-#define WM8994_IN1LP_TO_SPKMIXL_MASK 0x0020 /* IN1LP_TO_SPKMIXL */
-#define WM8994_IN1LP_TO_SPKMIXL_SHIFT 5 /* IN1LP_TO_SPKMIXL */
-#define WM8994_IN1LP_TO_SPKMIXL_WIDTH 1 /* IN1LP_TO_SPKMIXL */
-#define WM8994_IN1RP_TO_SPKMIXR 0x0010 /* IN1RP_TO_SPKMIXR */
-#define WM8994_IN1RP_TO_SPKMIXR_MASK 0x0010 /* IN1RP_TO_SPKMIXR */
-#define WM8994_IN1RP_TO_SPKMIXR_SHIFT 4 /* IN1RP_TO_SPKMIXR */
-#define WM8994_IN1RP_TO_SPKMIXR_WIDTH 1 /* IN1RP_TO_SPKMIXR */
-#define WM8994_MIXOUTL_TO_SPKMIXL 0x0008 /* MIXOUTL_TO_SPKMIXL */
-#define WM8994_MIXOUTL_TO_SPKMIXL_MASK 0x0008 /* MIXOUTL_TO_SPKMIXL */
-#define WM8994_MIXOUTL_TO_SPKMIXL_SHIFT 3 /* MIXOUTL_TO_SPKMIXL */
-#define WM8994_MIXOUTL_TO_SPKMIXL_WIDTH 1 /* MIXOUTL_TO_SPKMIXL */
-#define WM8994_MIXOUTR_TO_SPKMIXR 0x0004 /* MIXOUTR_TO_SPKMIXR */
-#define WM8994_MIXOUTR_TO_SPKMIXR_MASK 0x0004 /* MIXOUTR_TO_SPKMIXR */
-#define WM8994_MIXOUTR_TO_SPKMIXR_SHIFT 2 /* MIXOUTR_TO_SPKMIXR */
-#define WM8994_MIXOUTR_TO_SPKMIXR_WIDTH 1 /* MIXOUTR_TO_SPKMIXR */
-#define WM8994_DAC1L_TO_SPKMIXL 0x0002 /* DAC1L_TO_SPKMIXL */
-#define WM8994_DAC1L_TO_SPKMIXL_MASK 0x0002 /* DAC1L_TO_SPKMIXL */
-#define WM8994_DAC1L_TO_SPKMIXL_SHIFT 1 /* DAC1L_TO_SPKMIXL */
-#define WM8994_DAC1L_TO_SPKMIXL_WIDTH 1 /* DAC1L_TO_SPKMIXL */
-#define WM8994_DAC1R_TO_SPKMIXR 0x0001 /* DAC1R_TO_SPKMIXR */
-#define WM8994_DAC1R_TO_SPKMIXR_MASK 0x0001 /* DAC1R_TO_SPKMIXR */
-#define WM8994_DAC1R_TO_SPKMIXR_SHIFT 0 /* DAC1R_TO_SPKMIXR */
-#define WM8994_DAC1R_TO_SPKMIXR_WIDTH 1 /* DAC1R_TO_SPKMIXR */
-
-/*
- * R55 (0x37) - Additional Control
- */
-#define WM8994_LINEOUT1_FB 0x0080 /* LINEOUT1_FB */
-#define WM8994_LINEOUT1_FB_MASK 0x0080 /* LINEOUT1_FB */
-#define WM8994_LINEOUT1_FB_SHIFT 7 /* LINEOUT1_FB */
-#define WM8994_LINEOUT1_FB_WIDTH 1 /* LINEOUT1_FB */
-#define WM8994_LINEOUT2_FB 0x0040 /* LINEOUT2_FB */
-#define WM8994_LINEOUT2_FB_MASK 0x0040 /* LINEOUT2_FB */
-#define WM8994_LINEOUT2_FB_SHIFT 6 /* LINEOUT2_FB */
-#define WM8994_LINEOUT2_FB_WIDTH 1 /* LINEOUT2_FB */
-#define WM8994_VROI 0x0001 /* VROI */
-#define WM8994_VROI_MASK 0x0001 /* VROI */
-#define WM8994_VROI_SHIFT 0 /* VROI */
-#define WM8994_VROI_WIDTH 1 /* VROI */
-
-/*
- * R56 (0x38) - AntiPOP (1)
- */
-#define WM8994_LINEOUT_VMID_BUF_ENA 0x0080 /* LINEOUT_VMID_BUF_ENA */
-#define WM8994_LINEOUT_VMID_BUF_ENA_MASK 0x0080 /* LINEOUT_VMID_BUF_ENA */
-#define WM8994_LINEOUT_VMID_BUF_ENA_SHIFT 7 /* LINEOUT_VMID_BUF_ENA */
-#define WM8994_LINEOUT_VMID_BUF_ENA_WIDTH 1 /* LINEOUT_VMID_BUF_ENA */
-#define WM8994_HPOUT2_IN_ENA 0x0040 /* HPOUT2_IN_ENA */
-#define WM8994_HPOUT2_IN_ENA_MASK 0x0040 /* HPOUT2_IN_ENA */
-#define WM8994_HPOUT2_IN_ENA_SHIFT 6 /* HPOUT2_IN_ENA */
-#define WM8994_HPOUT2_IN_ENA_WIDTH 1 /* HPOUT2_IN_ENA */
-#define WM8994_LINEOUT1_DISCH 0x0020 /* LINEOUT1_DISCH */
-#define WM8994_LINEOUT1_DISCH_MASK 0x0020 /* LINEOUT1_DISCH */
-#define WM8994_LINEOUT1_DISCH_SHIFT 5 /* LINEOUT1_DISCH */
-#define WM8994_LINEOUT1_DISCH_WIDTH 1 /* LINEOUT1_DISCH */
-#define WM8994_LINEOUT2_DISCH 0x0010 /* LINEOUT2_DISCH */
-#define WM8994_LINEOUT2_DISCH_MASK 0x0010 /* LINEOUT2_DISCH */
-#define WM8994_LINEOUT2_DISCH_SHIFT 4 /* LINEOUT2_DISCH */
-#define WM8994_LINEOUT2_DISCH_WIDTH 1 /* LINEOUT2_DISCH */
-
-/*
- * R57 (0x39) - AntiPOP (2)
- */
-#define WM1811_JACKDET_MODE_MASK 0x0180 /* JACKDET_MODE - [8:7] */
-#define WM1811_JACKDET_MODE_SHIFT 7 /* JACKDET_MODE - [8:7] */
-#define WM1811_JACKDET_MODE_WIDTH 2 /* JACKDET_MODE - [8:7] */
-#define WM8994_MICB2_DISCH 0x0100 /* MICB2_DISCH */
-#define WM8994_MICB2_DISCH_MASK 0x0100 /* MICB2_DISCH */
-#define WM8994_MICB2_DISCH_SHIFT 8 /* MICB2_DISCH */
-#define WM8994_MICB2_DISCH_WIDTH 1 /* MICB2_DISCH */
-#define WM8994_MICB1_DISCH 0x0080 /* MICB1_DISCH */
-#define WM8994_MICB1_DISCH_MASK 0x0080 /* MICB1_DISCH */
-#define WM8994_MICB1_DISCH_SHIFT 7 /* MICB1_DISCH */
-#define WM8994_MICB1_DISCH_WIDTH 1 /* MICB1_DISCH */
-#define WM8994_VMID_RAMP_MASK 0x0060 /* VMID_RAMP - [6:5] */
-#define WM8994_VMID_RAMP_SHIFT 5 /* VMID_RAMP - [6:5] */
-#define WM8994_VMID_RAMP_WIDTH 2 /* VMID_RAMP - [6:5] */
-#define WM8994_VMID_BUF_ENA 0x0008 /* VMID_BUF_ENA */
-#define WM8994_VMID_BUF_ENA_MASK 0x0008 /* VMID_BUF_ENA */
-#define WM8994_VMID_BUF_ENA_SHIFT 3 /* VMID_BUF_ENA */
-#define WM8994_VMID_BUF_ENA_WIDTH 1 /* VMID_BUF_ENA */
-#define WM8994_STARTUP_BIAS_ENA 0x0004 /* STARTUP_BIAS_ENA */
-#define WM8994_STARTUP_BIAS_ENA_MASK 0x0004 /* STARTUP_BIAS_ENA */
-#define WM8994_STARTUP_BIAS_ENA_SHIFT 2 /* STARTUP_BIAS_ENA */
-#define WM8994_STARTUP_BIAS_ENA_WIDTH 1 /* STARTUP_BIAS_ENA */
-#define WM8994_BIAS_SRC 0x0002 /* BIAS_SRC */
-#define WM8994_BIAS_SRC_MASK 0x0002 /* BIAS_SRC */
-#define WM8994_BIAS_SRC_SHIFT 1 /* BIAS_SRC */
-#define WM8994_BIAS_SRC_WIDTH 1 /* BIAS_SRC */
-#define WM8994_VMID_DISCH 0x0001 /* VMID_DISCH */
-#define WM8994_VMID_DISCH_MASK 0x0001 /* VMID_DISCH */
-#define WM8994_VMID_DISCH_SHIFT 0 /* VMID_DISCH */
-#define WM8994_VMID_DISCH_WIDTH 1 /* VMID_DISCH */
-
-/*
- * R58 (0x3A) - MICBIAS
- */
-#define WM8994_MICD_SCTHR_MASK 0x00C0 /* MICD_SCTHR - [7:6] */
-#define WM8994_MICD_SCTHR_SHIFT 6 /* MICD_SCTHR - [7:6] */
-#define WM8994_MICD_SCTHR_WIDTH 2 /* MICD_SCTHR - [7:6] */
-#define WM8994_MICD_THR_MASK 0x0038 /* MICD_THR - [5:3] */
-#define WM8994_MICD_THR_SHIFT 3 /* MICD_THR - [5:3] */
-#define WM8994_MICD_THR_WIDTH 3 /* MICD_THR - [5:3] */
-#define WM8994_MICD_ENA 0x0004 /* MICD_ENA */
-#define WM8994_MICD_ENA_MASK 0x0004 /* MICD_ENA */
-#define WM8994_MICD_ENA_SHIFT 2 /* MICD_ENA */
-#define WM8994_MICD_ENA_WIDTH 1 /* MICD_ENA */
-#define WM8994_MICB2_LVL 0x0002 /* MICB2_LVL */
-#define WM8994_MICB2_LVL_MASK 0x0002 /* MICB2_LVL */
-#define WM8994_MICB2_LVL_SHIFT 1 /* MICB2_LVL */
-#define WM8994_MICB2_LVL_WIDTH 1 /* MICB2_LVL */
-#define WM8994_MICB1_LVL 0x0001 /* MICB1_LVL */
-#define WM8994_MICB1_LVL_MASK 0x0001 /* MICB1_LVL */
-#define WM8994_MICB1_LVL_SHIFT 0 /* MICB1_LVL */
-#define WM8994_MICB1_LVL_WIDTH 1 /* MICB1_LVL */
-
-/*
- * R59 (0x3B) - LDO 1
- */
-#define WM8994_LDO1_VSEL_MASK 0x000E /* LDO1_VSEL - [3:1] */
-#define WM8994_LDO1_VSEL_SHIFT 1 /* LDO1_VSEL - [3:1] */
-#define WM8994_LDO1_VSEL_WIDTH 3 /* LDO1_VSEL - [3:1] */
-#define WM8994_LDO1_DISCH 0x0001 /* LDO1_DISCH */
-#define WM8994_LDO1_DISCH_MASK 0x0001 /* LDO1_DISCH */
-#define WM8994_LDO1_DISCH_SHIFT 0 /* LDO1_DISCH */
-#define WM8994_LDO1_DISCH_WIDTH 1 /* LDO1_DISCH */
-
-/*
- * R60 (0x3C) - LDO 2
- */
-#define WM8994_LDO2_VSEL_MASK 0x0006 /* LDO2_VSEL - [2:1] */
-#define WM8994_LDO2_VSEL_SHIFT 1 /* LDO2_VSEL - [2:1] */
-#define WM8994_LDO2_VSEL_WIDTH 2 /* LDO2_VSEL - [2:1] */
-#define WM8994_LDO2_DISCH 0x0001 /* LDO2_DISCH */
-#define WM8994_LDO2_DISCH_MASK 0x0001 /* LDO2_DISCH */
-#define WM8994_LDO2_DISCH_SHIFT 0 /* LDO2_DISCH */
-#define WM8994_LDO2_DISCH_WIDTH 1 /* LDO2_DISCH */
-
-/*
- * R61 (0x3D) - MICBIAS1
- */
-#define WM8958_MICB1_RATE 0x0020 /* MICB1_RATE */
-#define WM8958_MICB1_RATE_MASK 0x0020 /* MICB1_RATE */
-#define WM8958_MICB1_RATE_SHIFT 5 /* MICB1_RATE */
-#define WM8958_MICB1_RATE_WIDTH 1 /* MICB1_RATE */
-#define WM8958_MICB1_MODE 0x0010 /* MICB1_MODE */
-#define WM8958_MICB1_MODE_MASK 0x0010 /* MICB1_MODE */
-#define WM8958_MICB1_MODE_SHIFT 4 /* MICB1_MODE */
-#define WM8958_MICB1_MODE_WIDTH 1 /* MICB1_MODE */
-#define WM8958_MICB1_LVL_MASK 0x000E /* MICB1_LVL - [3:1] */
-#define WM8958_MICB1_LVL_SHIFT 1 /* MICB1_LVL - [3:1] */
-#define WM8958_MICB1_LVL_WIDTH 3 /* MICB1_LVL - [3:1] */
-#define WM8958_MICB1_DISCH 0x0001 /* MICB1_DISCH */
-#define WM8958_MICB1_DISCH_MASK 0x0001 /* MICB1_DISCH */
-#define WM8958_MICB1_DISCH_SHIFT 0 /* MICB1_DISCH */
-#define WM8958_MICB1_DISCH_WIDTH 1 /* MICB1_DISCH */
-
-/*
- * R62 (0x3E) - MICBIAS2
- */
-#define WM8958_MICB2_RATE 0x0020 /* MICB2_RATE */
-#define WM8958_MICB2_RATE_MASK 0x0020 /* MICB2_RATE */
-#define WM8958_MICB2_RATE_SHIFT 5 /* MICB2_RATE */
-#define WM8958_MICB2_RATE_WIDTH 1 /* MICB2_RATE */
-#define WM8958_MICB2_MODE 0x0010 /* MICB2_MODE */
-#define WM8958_MICB2_MODE_MASK 0x0010 /* MICB2_MODE */
-#define WM8958_MICB2_MODE_SHIFT 4 /* MICB2_MODE */
-#define WM8958_MICB2_MODE_WIDTH 1 /* MICB2_MODE */
-#define WM8958_MICB2_LVL_MASK 0x000E /* MICB2_LVL - [3:1] */
-#define WM8958_MICB2_LVL_SHIFT 1 /* MICB2_LVL - [3:1] */
-#define WM8958_MICB2_LVL_WIDTH 3 /* MICB2_LVL - [3:1] */
-#define WM8958_MICB2_DISCH 0x0001 /* MICB2_DISCH */
-#define WM8958_MICB2_DISCH_MASK 0x0001 /* MICB2_DISCH */
-#define WM8958_MICB2_DISCH_SHIFT 0 /* MICB2_DISCH */
-#define WM8958_MICB2_DISCH_WIDTH 1 /* MICB2_DISCH */
-
-/*
- * R210 (0xD2) - Mic Detect 3
- */
-#define WM8958_MICD_LVL_MASK 0x07FC /* MICD_LVL - [10:2] */
-#define WM8958_MICD_LVL_SHIFT 2 /* MICD_LVL - [10:2] */
-#define WM8958_MICD_LVL_WIDTH 9 /* MICD_LVL - [10:2] */
-#define WM8958_MICD_VALID 0x0002 /* MICD_VALID */
-#define WM8958_MICD_VALID_MASK 0x0002 /* MICD_VALID */
-#define WM8958_MICD_VALID_SHIFT 1 /* MICD_VALID */
-#define WM8958_MICD_VALID_WIDTH 1 /* MICD_VALID */
-#define WM8958_MICD_STS 0x0001 /* MICD_STS */
-#define WM8958_MICD_STS_MASK 0x0001 /* MICD_STS */
-#define WM8958_MICD_STS_SHIFT 0 /* MICD_STS */
-#define WM8958_MICD_STS_WIDTH 1 /* MICD_STS */
-
-/*
- * R76 (0x4C) - Charge Pump (1)
- */
-#define WM8994_CP_ENA 0x8000 /* CP_ENA */
-#define WM8994_CP_ENA_MASK 0x8000 /* CP_ENA */
-#define WM8994_CP_ENA_SHIFT 15 /* CP_ENA */
-#define WM8994_CP_ENA_WIDTH 1 /* CP_ENA */
-
-/*
- * R77 (0x4D) - Charge Pump (2)
- */
-#define WM8958_CP_DISCH 0x8000 /* CP_DISCH */
-#define WM8958_CP_DISCH_MASK 0x8000 /* CP_DISCH */
-#define WM8958_CP_DISCH_SHIFT 15 /* CP_DISCH */
-#define WM8958_CP_DISCH_WIDTH 1 /* CP_DISCH */
-
-/*
- * R81 (0x51) - Class W (1)
- */
-#define WM8994_CP_DYN_SRC_SEL_MASK 0x0300 /* CP_DYN_SRC_SEL - [9:8] */
-#define WM8994_CP_DYN_SRC_SEL_SHIFT 8 /* CP_DYN_SRC_SEL - [9:8] */
-#define WM8994_CP_DYN_SRC_SEL_WIDTH 2 /* CP_DYN_SRC_SEL - [9:8] */
-#define WM8994_CP_DYN_PWR 0x0001 /* CP_DYN_PWR */
-#define WM8994_CP_DYN_PWR_MASK 0x0001 /* CP_DYN_PWR */
-#define WM8994_CP_DYN_PWR_SHIFT 0 /* CP_DYN_PWR */
-#define WM8994_CP_DYN_PWR_WIDTH 1 /* CP_DYN_PWR */
-
-/*
- * R84 (0x54) - DC Servo (1)
- */
-#define WM8994_DCS_TRIG_SINGLE_1 0x2000 /* DCS_TRIG_SINGLE_1 */
-#define WM8994_DCS_TRIG_SINGLE_1_MASK 0x2000 /* DCS_TRIG_SINGLE_1 */
-#define WM8994_DCS_TRIG_SINGLE_1_SHIFT 13 /* DCS_TRIG_SINGLE_1 */
-#define WM8994_DCS_TRIG_SINGLE_1_WIDTH 1 /* DCS_TRIG_SINGLE_1 */
-#define WM8994_DCS_TRIG_SINGLE_0 0x1000 /* DCS_TRIG_SINGLE_0 */
-#define WM8994_DCS_TRIG_SINGLE_0_MASK 0x1000 /* DCS_TRIG_SINGLE_0 */
-#define WM8994_DCS_TRIG_SINGLE_0_SHIFT 12 /* DCS_TRIG_SINGLE_0 */
-#define WM8994_DCS_TRIG_SINGLE_0_WIDTH 1 /* DCS_TRIG_SINGLE_0 */
-#define WM8994_DCS_TRIG_SERIES_1 0x0200 /* DCS_TRIG_SERIES_1 */
-#define WM8994_DCS_TRIG_SERIES_1_MASK 0x0200 /* DCS_TRIG_SERIES_1 */
-#define WM8994_DCS_TRIG_SERIES_1_SHIFT 9 /* DCS_TRIG_SERIES_1 */
-#define WM8994_DCS_TRIG_SERIES_1_WIDTH 1 /* DCS_TRIG_SERIES_1 */
-#define WM8994_DCS_TRIG_SERIES_0 0x0100 /* DCS_TRIG_SERIES_0 */
-#define WM8994_DCS_TRIG_SERIES_0_MASK 0x0100 /* DCS_TRIG_SERIES_0 */
-#define WM8994_DCS_TRIG_SERIES_0_SHIFT 8 /* DCS_TRIG_SERIES_0 */
-#define WM8994_DCS_TRIG_SERIES_0_WIDTH 1 /* DCS_TRIG_SERIES_0 */
-#define WM8994_DCS_TRIG_STARTUP_1 0x0020 /* DCS_TRIG_STARTUP_1 */
-#define WM8994_DCS_TRIG_STARTUP_1_MASK 0x0020 /* DCS_TRIG_STARTUP_1 */
-#define WM8994_DCS_TRIG_STARTUP_1_SHIFT 5 /* DCS_TRIG_STARTUP_1 */
-#define WM8994_DCS_TRIG_STARTUP_1_WIDTH 1 /* DCS_TRIG_STARTUP_1 */
-#define WM8994_DCS_TRIG_STARTUP_0 0x0010 /* DCS_TRIG_STARTUP_0 */
-#define WM8994_DCS_TRIG_STARTUP_0_MASK 0x0010 /* DCS_TRIG_STARTUP_0 */
-#define WM8994_DCS_TRIG_STARTUP_0_SHIFT 4 /* DCS_TRIG_STARTUP_0 */
-#define WM8994_DCS_TRIG_STARTUP_0_WIDTH 1 /* DCS_TRIG_STARTUP_0 */
-#define WM8994_DCS_TRIG_DAC_WR_1 0x0008 /* DCS_TRIG_DAC_WR_1 */
-#define WM8994_DCS_TRIG_DAC_WR_1_MASK 0x0008 /* DCS_TRIG_DAC_WR_1 */
-#define WM8994_DCS_TRIG_DAC_WR_1_SHIFT 3 /* DCS_TRIG_DAC_WR_1 */
-#define WM8994_DCS_TRIG_DAC_WR_1_WIDTH 1 /* DCS_TRIG_DAC_WR_1 */
-#define WM8994_DCS_TRIG_DAC_WR_0 0x0004 /* DCS_TRIG_DAC_WR_0 */
-#define WM8994_DCS_TRIG_DAC_WR_0_MASK 0x0004 /* DCS_TRIG_DAC_WR_0 */
-#define WM8994_DCS_TRIG_DAC_WR_0_SHIFT 2 /* DCS_TRIG_DAC_WR_0 */
-#define WM8994_DCS_TRIG_DAC_WR_0_WIDTH 1 /* DCS_TRIG_DAC_WR_0 */
-#define WM8994_DCS_ENA_CHAN_1 0x0002 /* DCS_ENA_CHAN_1 */
-#define WM8994_DCS_ENA_CHAN_1_MASK 0x0002 /* DCS_ENA_CHAN_1 */
-#define WM8994_DCS_ENA_CHAN_1_SHIFT 1 /* DCS_ENA_CHAN_1 */
-#define WM8994_DCS_ENA_CHAN_1_WIDTH 1 /* DCS_ENA_CHAN_1 */
-#define WM8994_DCS_ENA_CHAN_0 0x0001 /* DCS_ENA_CHAN_0 */
-#define WM8994_DCS_ENA_CHAN_0_MASK 0x0001 /* DCS_ENA_CHAN_0 */
-#define WM8994_DCS_ENA_CHAN_0_SHIFT 0 /* DCS_ENA_CHAN_0 */
-#define WM8994_DCS_ENA_CHAN_0_WIDTH 1 /* DCS_ENA_CHAN_0 */
-
-/*
- * R85 (0x55) - DC Servo (2)
- */
-#define WM8994_DCS_SERIES_NO_01_MASK 0x0FE0 /* DCS_SERIES_NO_01 - [11:5] */
-#define WM8994_DCS_SERIES_NO_01_SHIFT 5 /* DCS_SERIES_NO_01 - [11:5] */
-#define WM8994_DCS_SERIES_NO_01_WIDTH 7 /* DCS_SERIES_NO_01 - [11:5] */
-#define WM8994_DCS_TIMER_PERIOD_01_MASK 0x000F /* DCS_TIMER_PERIOD_01 - [3:0] */
-#define WM8994_DCS_TIMER_PERIOD_01_SHIFT 0 /* DCS_TIMER_PERIOD_01 - [3:0] */
-#define WM8994_DCS_TIMER_PERIOD_01_WIDTH 4 /* DCS_TIMER_PERIOD_01 - [3:0] */
-
-/*
- * R87 (0x57) - DC Servo (4)
- */
-#define WM8994_DCS_DAC_WR_VAL_1_MASK 0xFF00 /* DCS_DAC_WR_VAL_1 - [15:8] */
-#define WM8994_DCS_DAC_WR_VAL_1_SHIFT 8 /* DCS_DAC_WR_VAL_1 - [15:8] */
-#define WM8994_DCS_DAC_WR_VAL_1_WIDTH 8 /* DCS_DAC_WR_VAL_1 - [15:8] */
-#define WM8994_DCS_DAC_WR_VAL_0_MASK 0x00FF /* DCS_DAC_WR_VAL_0 - [7:0] */
-#define WM8994_DCS_DAC_WR_VAL_0_SHIFT 0 /* DCS_DAC_WR_VAL_0 - [7:0] */
-#define WM8994_DCS_DAC_WR_VAL_0_WIDTH 8 /* DCS_DAC_WR_VAL_0 - [7:0] */
-
-/*
- * R88 (0x58) - DC Servo Readback
- */
-#define WM8994_DCS_CAL_COMPLETE_MASK 0x0300 /* DCS_CAL_COMPLETE - [9:8] */
-#define WM8994_DCS_CAL_COMPLETE_SHIFT 8 /* DCS_CAL_COMPLETE - [9:8] */
-#define WM8994_DCS_CAL_COMPLETE_WIDTH 2 /* DCS_CAL_COMPLETE - [9:8] */
-#define WM8994_DCS_DAC_WR_COMPLETE_MASK 0x0030 /* DCS_DAC_WR_COMPLETE - [5:4] */
-#define WM8994_DCS_DAC_WR_COMPLETE_SHIFT 4 /* DCS_DAC_WR_COMPLETE - [5:4] */
-#define WM8994_DCS_DAC_WR_COMPLETE_WIDTH 2 /* DCS_DAC_WR_COMPLETE - [5:4] */
-#define WM8994_DCS_STARTUP_COMPLETE_MASK 0x0003 /* DCS_STARTUP_COMPLETE - [1:0] */
-#define WM8994_DCS_STARTUP_COMPLETE_SHIFT 0 /* DCS_STARTUP_COMPLETE - [1:0] */
-#define WM8994_DCS_STARTUP_COMPLETE_WIDTH 2 /* DCS_STARTUP_COMPLETE - [1:0] */
-
-/*
- * R96 (0x60) - Analogue HP (1)
- */
-#define WM1811_HPOUT1_ATTN 0x0100 /* HPOUT1_ATTN */
-#define WM1811_HPOUT1_ATTN_MASK 0x0100 /* HPOUT1_ATTN */
-#define WM1811_HPOUT1_ATTN_SHIFT 8 /* HPOUT1_ATTN */
-#define WM1811_HPOUT1_ATTN_WIDTH 1 /* HPOUT1_ATTN */
-#define WM8994_HPOUT1L_RMV_SHORT 0x0080 /* HPOUT1L_RMV_SHORT */
-#define WM8994_HPOUT1L_RMV_SHORT_MASK 0x0080 /* HPOUT1L_RMV_SHORT */
-#define WM8994_HPOUT1L_RMV_SHORT_SHIFT 7 /* HPOUT1L_RMV_SHORT */
-#define WM8994_HPOUT1L_RMV_SHORT_WIDTH 1 /* HPOUT1L_RMV_SHORT */
-#define WM8994_HPOUT1L_OUTP 0x0040 /* HPOUT1L_OUTP */
-#define WM8994_HPOUT1L_OUTP_MASK 0x0040 /* HPOUT1L_OUTP */
-#define WM8994_HPOUT1L_OUTP_SHIFT 6 /* HPOUT1L_OUTP */
-#define WM8994_HPOUT1L_OUTP_WIDTH 1 /* HPOUT1L_OUTP */
-#define WM8994_HPOUT1L_DLY 0x0020 /* HPOUT1L_DLY */
-#define WM8994_HPOUT1L_DLY_MASK 0x0020 /* HPOUT1L_DLY */
-#define WM8994_HPOUT1L_DLY_SHIFT 5 /* HPOUT1L_DLY */
-#define WM8994_HPOUT1L_DLY_WIDTH 1 /* HPOUT1L_DLY */
-#define WM8994_HPOUT1R_RMV_SHORT 0x0008 /* HPOUT1R_RMV_SHORT */
-#define WM8994_HPOUT1R_RMV_SHORT_MASK 0x0008 /* HPOUT1R_RMV_SHORT */
-#define WM8994_HPOUT1R_RMV_SHORT_SHIFT 3 /* HPOUT1R_RMV_SHORT */
-#define WM8994_HPOUT1R_RMV_SHORT_WIDTH 1 /* HPOUT1R_RMV_SHORT */
-#define WM8994_HPOUT1R_OUTP 0x0004 /* HPOUT1R_OUTP */
-#define WM8994_HPOUT1R_OUTP_MASK 0x0004 /* HPOUT1R_OUTP */
-#define WM8994_HPOUT1R_OUTP_SHIFT 2 /* HPOUT1R_OUTP */
-#define WM8994_HPOUT1R_OUTP_WIDTH 1 /* HPOUT1R_OUTP */
-#define WM8994_HPOUT1R_DLY 0x0002 /* HPOUT1R_DLY */
-#define WM8994_HPOUT1R_DLY_MASK 0x0002 /* HPOUT1R_DLY */
-#define WM8994_HPOUT1R_DLY_SHIFT 1 /* HPOUT1R_DLY */
-#define WM8994_HPOUT1R_DLY_WIDTH 1 /* HPOUT1R_DLY */
-
-/*
- * R208 (0xD0) - Mic Detect 1
- */
-#define WM8958_MICD_BIAS_STARTTIME_MASK 0xF000 /* MICD_BIAS_STARTTIME - [15:12] */
-#define WM8958_MICD_BIAS_STARTTIME_SHIFT 12 /* MICD_BIAS_STARTTIME - [15:12] */
-#define WM8958_MICD_BIAS_STARTTIME_WIDTH 4 /* MICD_BIAS_STARTTIME - [15:12] */
-#define WM8958_MICD_RATE_MASK 0x0F00 /* MICD_RATE - [11:8] */
-#define WM8958_MICD_RATE_SHIFT 8 /* MICD_RATE - [11:8] */
-#define WM8958_MICD_RATE_WIDTH 4 /* MICD_RATE - [11:8] */
-#define WM8958_MICD_DBTIME 0x0002 /* MICD_DBTIME */
-#define WM8958_MICD_DBTIME_MASK 0x0002 /* MICD_DBTIME */
-#define WM8958_MICD_DBTIME_SHIFT 1 /* MICD_DBTIME */
-#define WM8958_MICD_DBTIME_WIDTH 1 /* MICD_DBTIME */
-#define WM8958_MICD_ENA 0x0001 /* MICD_ENA */
-#define WM8958_MICD_ENA_MASK 0x0001 /* MICD_ENA */
-#define WM8958_MICD_ENA_SHIFT 0 /* MICD_ENA */
-#define WM8958_MICD_ENA_WIDTH 1 /* MICD_ENA */
-
-/*
- * R209 (0xD1) - Mic Detect 2
- */
-#define WM8958_MICD_LVL_SEL_MASK 0x00FF /* MICD_LVL_SEL - [7:0] */
-#define WM8958_MICD_LVL_SEL_SHIFT 0 /* MICD_LVL_SEL - [7:0] */
-#define WM8958_MICD_LVL_SEL_WIDTH 8 /* MICD_LVL_SEL - [7:0] */
-
-/*
- * R210 (0xD2) - Mic Detect 3
- */
-#define WM8958_MICD_LVL_MASK 0x07FC /* MICD_LVL - [10:2] */
-#define WM8958_MICD_LVL_SHIFT 2 /* MICD_LVL - [10:2] */
-#define WM8958_MICD_LVL_WIDTH 9 /* MICD_LVL - [10:2] */
-#define WM8958_MICD_VALID 0x0002 /* MICD_VALID */
-#define WM8958_MICD_VALID_MASK 0x0002 /* MICD_VALID */
-#define WM8958_MICD_VALID_SHIFT 1 /* MICD_VALID */
-#define WM8958_MICD_VALID_WIDTH 1 /* MICD_VALID */
-#define WM8958_MICD_STS 0x0001 /* MICD_STS */
-#define WM8958_MICD_STS_MASK 0x0001 /* MICD_STS */
-#define WM8958_MICD_STS_SHIFT 0 /* MICD_STS */
-#define WM8958_MICD_STS_WIDTH 1 /* MICD_STS */
-
-/*
- * R256 (0x100) - Chip Revision
- */
-#define WM8994_CHIP_REV_MASK 0x000F /* CHIP_REV - [3:0] */
-#define WM8994_CHIP_REV_SHIFT 0 /* CHIP_REV - [3:0] */
-#define WM8994_CHIP_REV_WIDTH 4 /* CHIP_REV - [3:0] */
-
-/*
- * R257 (0x101) - Control Interface
- */
-#define WM8994_SPI_CONTRD 0x0040 /* SPI_CONTRD */
-#define WM8994_SPI_CONTRD_MASK 0x0040 /* SPI_CONTRD */
-#define WM8994_SPI_CONTRD_SHIFT 6 /* SPI_CONTRD */
-#define WM8994_SPI_CONTRD_WIDTH 1 /* SPI_CONTRD */
-#define WM8994_SPI_4WIRE 0x0020 /* SPI_4WIRE */
-#define WM8994_SPI_4WIRE_MASK 0x0020 /* SPI_4WIRE */
-#define WM8994_SPI_4WIRE_SHIFT 5 /* SPI_4WIRE */
-#define WM8994_SPI_4WIRE_WIDTH 1 /* SPI_4WIRE */
-#define WM8994_SPI_CFG 0x0010 /* SPI_CFG */
-#define WM8994_SPI_CFG_MASK 0x0010 /* SPI_CFG */
-#define WM8994_SPI_CFG_SHIFT 4 /* SPI_CFG */
-#define WM8994_SPI_CFG_WIDTH 1 /* SPI_CFG */
-#define WM8994_AUTO_INC 0x0004 /* AUTO_INC */
-#define WM8994_AUTO_INC_MASK 0x0004 /* AUTO_INC */
-#define WM8994_AUTO_INC_SHIFT 2 /* AUTO_INC */
-#define WM8994_AUTO_INC_WIDTH 1 /* AUTO_INC */
-
-/*
- * R272 (0x110) - Write Sequencer Ctrl (1)
- */
-#define WM8994_WSEQ_ENA 0x8000 /* WSEQ_ENA */
-#define WM8994_WSEQ_ENA_MASK 0x8000 /* WSEQ_ENA */
-#define WM8994_WSEQ_ENA_SHIFT 15 /* WSEQ_ENA */
-#define WM8994_WSEQ_ENA_WIDTH 1 /* WSEQ_ENA */
-#define WM8994_WSEQ_ABORT 0x0200 /* WSEQ_ABORT */
-#define WM8994_WSEQ_ABORT_MASK 0x0200 /* WSEQ_ABORT */
-#define WM8994_WSEQ_ABORT_SHIFT 9 /* WSEQ_ABORT */
-#define WM8994_WSEQ_ABORT_WIDTH 1 /* WSEQ_ABORT */
-#define WM8994_WSEQ_START 0x0100 /* WSEQ_START */
-#define WM8994_WSEQ_START_MASK 0x0100 /* WSEQ_START */
-#define WM8994_WSEQ_START_SHIFT 8 /* WSEQ_START */
-#define WM8994_WSEQ_START_WIDTH 1 /* WSEQ_START */
-#define WM8994_WSEQ_START_INDEX_MASK 0x007F /* WSEQ_START_INDEX - [6:0] */
-#define WM8994_WSEQ_START_INDEX_SHIFT 0 /* WSEQ_START_INDEX - [6:0] */
-#define WM8994_WSEQ_START_INDEX_WIDTH 7 /* WSEQ_START_INDEX - [6:0] */
-
-/*
- * R273 (0x111) - Write Sequencer Ctrl (2)
- */
-#define WM8994_WSEQ_BUSY 0x0100 /* WSEQ_BUSY */
-#define WM8994_WSEQ_BUSY_MASK 0x0100 /* WSEQ_BUSY */
-#define WM8994_WSEQ_BUSY_SHIFT 8 /* WSEQ_BUSY */
-#define WM8994_WSEQ_BUSY_WIDTH 1 /* WSEQ_BUSY */
-#define WM8994_WSEQ_CURRENT_INDEX_MASK 0x007F /* WSEQ_CURRENT_INDEX - [6:0] */
-#define WM8994_WSEQ_CURRENT_INDEX_SHIFT 0 /* WSEQ_CURRENT_INDEX - [6:0] */
-#define WM8994_WSEQ_CURRENT_INDEX_WIDTH 7 /* WSEQ_CURRENT_INDEX - [6:0] */
-
-/*
- * R512 (0x200) - AIF1 Clocking (1)
- */
-#define WM8994_AIF1CLK_SRC_MASK 0x0018 /* AIF1CLK_SRC - [4:3] */
-#define WM8994_AIF1CLK_SRC_SHIFT 3 /* AIF1CLK_SRC - [4:3] */
-#define WM8994_AIF1CLK_SRC_WIDTH 2 /* AIF1CLK_SRC - [4:3] */
-#define WM8994_AIF1CLK_INV 0x0004 /* AIF1CLK_INV */
-#define WM8994_AIF1CLK_INV_MASK 0x0004 /* AIF1CLK_INV */
-#define WM8994_AIF1CLK_INV_SHIFT 2 /* AIF1CLK_INV */
-#define WM8994_AIF1CLK_INV_WIDTH 1 /* AIF1CLK_INV */
-#define WM8994_AIF1CLK_DIV 0x0002 /* AIF1CLK_DIV */
-#define WM8994_AIF1CLK_DIV_MASK 0x0002 /* AIF1CLK_DIV */
-#define WM8994_AIF1CLK_DIV_SHIFT 1 /* AIF1CLK_DIV */
-#define WM8994_AIF1CLK_DIV_WIDTH 1 /* AIF1CLK_DIV */
-#define WM8994_AIF1CLK_ENA 0x0001 /* AIF1CLK_ENA */
-#define WM8994_AIF1CLK_ENA_MASK 0x0001 /* AIF1CLK_ENA */
-#define WM8994_AIF1CLK_ENA_SHIFT 0 /* AIF1CLK_ENA */
-#define WM8994_AIF1CLK_ENA_WIDTH 1 /* AIF1CLK_ENA */
-
-/*
- * R513 (0x201) - AIF1 Clocking (2)
- */
-#define WM8994_AIF1DAC_DIV_MASK 0x0038 /* AIF1DAC_DIV - [5:3] */
-#define WM8994_AIF1DAC_DIV_SHIFT 3 /* AIF1DAC_DIV - [5:3] */
-#define WM8994_AIF1DAC_DIV_WIDTH 3 /* AIF1DAC_DIV - [5:3] */
-#define WM8994_AIF1ADC_DIV_MASK 0x0007 /* AIF1ADC_DIV - [2:0] */
-#define WM8994_AIF1ADC_DIV_SHIFT 0 /* AIF1ADC_DIV - [2:0] */
-#define WM8994_AIF1ADC_DIV_WIDTH 3 /* AIF1ADC_DIV - [2:0] */
-
-/*
- * R516 (0x204) - AIF2 Clocking (1)
- */
-#define WM8994_AIF2CLK_SRC_MASK 0x0018 /* AIF2CLK_SRC - [4:3] */
-#define WM8994_AIF2CLK_SRC_SHIFT 3 /* AIF2CLK_SRC - [4:3] */
-#define WM8994_AIF2CLK_SRC_WIDTH 2 /* AIF2CLK_SRC - [4:3] */
-#define WM8994_AIF2CLK_INV 0x0004 /* AIF2CLK_INV */
-#define WM8994_AIF2CLK_INV_MASK 0x0004 /* AIF2CLK_INV */
-#define WM8994_AIF2CLK_INV_SHIFT 2 /* AIF2CLK_INV */
-#define WM8994_AIF2CLK_INV_WIDTH 1 /* AIF2CLK_INV */
-#define WM8994_AIF2CLK_DIV 0x0002 /* AIF2CLK_DIV */
-#define WM8994_AIF2CLK_DIV_MASK 0x0002 /* AIF2CLK_DIV */
-#define WM8994_AIF2CLK_DIV_SHIFT 1 /* AIF2CLK_DIV */
-#define WM8994_AIF2CLK_DIV_WIDTH 1 /* AIF2CLK_DIV */
-#define WM8994_AIF2CLK_ENA 0x0001 /* AIF2CLK_ENA */
-#define WM8994_AIF2CLK_ENA_MASK 0x0001 /* AIF2CLK_ENA */
-#define WM8994_AIF2CLK_ENA_SHIFT 0 /* AIF2CLK_ENA */
-#define WM8994_AIF2CLK_ENA_WIDTH 1 /* AIF2CLK_ENA */
-
-/*
- * R517 (0x205) - AIF2 Clocking (2)
- */
-#define WM8994_AIF2DAC_DIV_MASK 0x0038 /* AIF2DAC_DIV - [5:3] */
-#define WM8994_AIF2DAC_DIV_SHIFT 3 /* AIF2DAC_DIV - [5:3] */
-#define WM8994_AIF2DAC_DIV_WIDTH 3 /* AIF2DAC_DIV - [5:3] */
-#define WM8994_AIF2ADC_DIV_MASK 0x0007 /* AIF2ADC_DIV - [2:0] */
-#define WM8994_AIF2ADC_DIV_SHIFT 0 /* AIF2ADC_DIV - [2:0] */
-#define WM8994_AIF2ADC_DIV_WIDTH 3 /* AIF2ADC_DIV - [2:0] */
-
-/*
- * R520 (0x208) - Clocking (1)
- */
-#define WM8958_DSP2CLK_ENA 0x4000 /* DSP2CLK_ENA */
-#define WM8958_DSP2CLK_ENA_MASK 0x4000 /* DSP2CLK_ENA */
-#define WM8958_DSP2CLK_ENA_SHIFT 14 /* DSP2CLK_ENA */
-#define WM8958_DSP2CLK_ENA_WIDTH 1 /* DSP2CLK_ENA */
-#define WM8958_DSP2CLK_SRC 0x1000 /* DSP2CLK_SRC */
-#define WM8958_DSP2CLK_SRC_MASK 0x1000 /* DSP2CLK_SRC */
-#define WM8958_DSP2CLK_SRC_SHIFT 12 /* DSP2CLK_SRC */
-#define WM8958_DSP2CLK_SRC_WIDTH 1 /* DSP2CLK_SRC */
-#define WM8994_TOCLK_ENA 0x0010 /* TOCLK_ENA */
-#define WM8994_TOCLK_ENA_MASK 0x0010 /* TOCLK_ENA */
-#define WM8994_TOCLK_ENA_SHIFT 4 /* TOCLK_ENA */
-#define WM8994_TOCLK_ENA_WIDTH 1 /* TOCLK_ENA */
-#define WM8994_AIF1DSPCLK_ENA 0x0008 /* AIF1DSPCLK_ENA */
-#define WM8994_AIF1DSPCLK_ENA_MASK 0x0008 /* AIF1DSPCLK_ENA */
-#define WM8994_AIF1DSPCLK_ENA_SHIFT 3 /* AIF1DSPCLK_ENA */
-#define WM8994_AIF1DSPCLK_ENA_WIDTH 1 /* AIF1DSPCLK_ENA */
-#define WM8994_AIF2DSPCLK_ENA 0x0004 /* AIF2DSPCLK_ENA */
-#define WM8994_AIF2DSPCLK_ENA_MASK 0x0004 /* AIF2DSPCLK_ENA */
-#define WM8994_AIF2DSPCLK_ENA_SHIFT 2 /* AIF2DSPCLK_ENA */
-#define WM8994_AIF2DSPCLK_ENA_WIDTH 1 /* AIF2DSPCLK_ENA */
-#define WM8994_SYSDSPCLK_ENA 0x0002 /* SYSDSPCLK_ENA */
-#define WM8994_SYSDSPCLK_ENA_MASK 0x0002 /* SYSDSPCLK_ENA */
-#define WM8994_SYSDSPCLK_ENA_SHIFT 1 /* SYSDSPCLK_ENA */
-#define WM8994_SYSDSPCLK_ENA_WIDTH 1 /* SYSDSPCLK_ENA */
-#define WM8994_SYSCLK_SRC 0x0001 /* SYSCLK_SRC */
-#define WM8994_SYSCLK_SRC_MASK 0x0001 /* SYSCLK_SRC */
-#define WM8994_SYSCLK_SRC_SHIFT 0 /* SYSCLK_SRC */
-#define WM8994_SYSCLK_SRC_WIDTH 1 /* SYSCLK_SRC */
-
-/*
- * R521 (0x209) - Clocking (2)
- */
-#define WM8994_TOCLK_DIV_MASK 0x0700 /* TOCLK_DIV - [10:8] */
-#define WM8994_TOCLK_DIV_SHIFT 8 /* TOCLK_DIV - [10:8] */
-#define WM8994_TOCLK_DIV_WIDTH 3 /* TOCLK_DIV - [10:8] */
-#define WM8994_DBCLK_DIV_MASK 0x0070 /* DBCLK_DIV - [6:4] */
-#define WM8994_DBCLK_DIV_SHIFT 4 /* DBCLK_DIV - [6:4] */
-#define WM8994_DBCLK_DIV_WIDTH 3 /* DBCLK_DIV - [6:4] */
-#define WM8994_OPCLK_DIV_MASK 0x0007 /* OPCLK_DIV - [2:0] */
-#define WM8994_OPCLK_DIV_SHIFT 0 /* OPCLK_DIV - [2:0] */
-#define WM8994_OPCLK_DIV_WIDTH 3 /* OPCLK_DIV - [2:0] */
-
-/*
- * R528 (0x210) - AIF1 Rate
- */
-#define WM8994_AIF1_SR_MASK 0x00F0 /* AIF1_SR - [7:4] */
-#define WM8994_AIF1_SR_SHIFT 4 /* AIF1_SR - [7:4] */
-#define WM8994_AIF1_SR_WIDTH 4 /* AIF1_SR - [7:4] */
-#define WM8994_AIF1CLK_RATE_MASK 0x000F /* AIF1CLK_RATE - [3:0] */
-#define WM8994_AIF1CLK_RATE_SHIFT 0 /* AIF1CLK_RATE - [3:0] */
-#define WM8994_AIF1CLK_RATE_WIDTH 4 /* AIF1CLK_RATE - [3:0] */
-
-/*
- * R529 (0x211) - AIF2 Rate
- */
-#define WM8994_AIF2_SR_MASK 0x00F0 /* AIF2_SR - [7:4] */
-#define WM8994_AIF2_SR_SHIFT 4 /* AIF2_SR - [7:4] */
-#define WM8994_AIF2_SR_WIDTH 4 /* AIF2_SR - [7:4] */
-#define WM8994_AIF2CLK_RATE_MASK 0x000F /* AIF2CLK_RATE - [3:0] */
-#define WM8994_AIF2CLK_RATE_SHIFT 0 /* AIF2CLK_RATE - [3:0] */
-#define WM8994_AIF2CLK_RATE_WIDTH 4 /* AIF2CLK_RATE - [3:0] */
-
-/*
- * R530 (0x212) - Rate Status
- */
-#define WM8994_SR_ERROR_MASK 0x000F /* SR_ERROR - [3:0] */
-#define WM8994_SR_ERROR_SHIFT 0 /* SR_ERROR - [3:0] */
-#define WM8994_SR_ERROR_WIDTH 4 /* SR_ERROR - [3:0] */
-
-/*
- * R544 (0x220) - FLL1 Control (1)
- */
-#define WM8994_FLL1_FRAC 0x0004 /* FLL1_FRAC */
-#define WM8994_FLL1_FRAC_MASK 0x0004 /* FLL1_FRAC */
-#define WM8994_FLL1_FRAC_SHIFT 2 /* FLL1_FRAC */
-#define WM8994_FLL1_FRAC_WIDTH 1 /* FLL1_FRAC */
-#define WM8994_FLL1_OSC_ENA 0x0002 /* FLL1_OSC_ENA */
-#define WM8994_FLL1_OSC_ENA_MASK 0x0002 /* FLL1_OSC_ENA */
-#define WM8994_FLL1_OSC_ENA_SHIFT 1 /* FLL1_OSC_ENA */
-#define WM8994_FLL1_OSC_ENA_WIDTH 1 /* FLL1_OSC_ENA */
-#define WM8994_FLL1_ENA 0x0001 /* FLL1_ENA */
-#define WM8994_FLL1_ENA_MASK 0x0001 /* FLL1_ENA */
-#define WM8994_FLL1_ENA_SHIFT 0 /* FLL1_ENA */
-#define WM8994_FLL1_ENA_WIDTH 1 /* FLL1_ENA */
-
-/*
- * R545 (0x221) - FLL1 Control (2)
- */
-#define WM8994_FLL1_OUTDIV_MASK 0x3F00 /* FLL1_OUTDIV - [13:8] */
-#define WM8994_FLL1_OUTDIV_SHIFT 8 /* FLL1_OUTDIV - [13:8] */
-#define WM8994_FLL1_OUTDIV_WIDTH 6 /* FLL1_OUTDIV - [13:8] */
-#define WM8994_FLL1_CTRL_RATE_MASK 0x0070 /* FLL1_CTRL_RATE - [6:4] */
-#define WM8994_FLL1_CTRL_RATE_SHIFT 4 /* FLL1_CTRL_RATE - [6:4] */
-#define WM8994_FLL1_CTRL_RATE_WIDTH 3 /* FLL1_CTRL_RATE - [6:4] */
-#define WM8994_FLL1_FRATIO_MASK 0x0007 /* FLL1_FRATIO - [2:0] */
-#define WM8994_FLL1_FRATIO_SHIFT 0 /* FLL1_FRATIO - [2:0] */
-#define WM8994_FLL1_FRATIO_WIDTH 3 /* FLL1_FRATIO - [2:0] */
-
-/*
- * R546 (0x222) - FLL1 Control (3)
- */
-#define WM8994_FLL1_K_MASK 0xFFFF /* FLL1_K - [15:0] */
-#define WM8994_FLL1_K_SHIFT 0 /* FLL1_K - [15:0] */
-#define WM8994_FLL1_K_WIDTH 16 /* FLL1_K - [15:0] */
-
-/*
- * R547 (0x223) - FLL1 Control (4)
- */
-#define WM8994_FLL1_N_MASK 0x7FE0 /* FLL1_N - [14:5] */
-#define WM8994_FLL1_N_SHIFT 5 /* FLL1_N - [14:5] */
-#define WM8994_FLL1_N_WIDTH 10 /* FLL1_N - [14:5] */
-#define WM8994_FLL1_LOOP_GAIN_MASK 0x000F /* FLL1_LOOP_GAIN - [3:0] */
-#define WM8994_FLL1_LOOP_GAIN_SHIFT 0 /* FLL1_LOOP_GAIN - [3:0] */
-#define WM8994_FLL1_LOOP_GAIN_WIDTH 4 /* FLL1_LOOP_GAIN - [3:0] */
-
-/*
- * R548 (0x224) - FLL1 Control (5)
- */
-#define WM8958_FLL1_BYP 0x8000 /* FLL1_BYP */
-#define WM8958_FLL1_BYP_MASK 0x8000 /* FLL1_BYP */
-#define WM8958_FLL1_BYP_SHIFT 15 /* FLL1_BYP */
-#define WM8958_FLL1_BYP_WIDTH 1 /* FLL1_BYP */
-#define WM8994_FLL1_FRC_NCO_VAL_MASK 0x1F80 /* FLL1_FRC_NCO_VAL - [12:7] */
-#define WM8994_FLL1_FRC_NCO_VAL_SHIFT 7 /* FLL1_FRC_NCO_VAL - [12:7] */
-#define WM8994_FLL1_FRC_NCO_VAL_WIDTH 6 /* FLL1_FRC_NCO_VAL - [12:7] */
-#define WM8994_FLL1_FRC_NCO 0x0040 /* FLL1_FRC_NCO */
-#define WM8994_FLL1_FRC_NCO_MASK 0x0040 /* FLL1_FRC_NCO */
-#define WM8994_FLL1_FRC_NCO_SHIFT 6 /* FLL1_FRC_NCO */
-#define WM8994_FLL1_FRC_NCO_WIDTH 1 /* FLL1_FRC_NCO */
-#define WM8994_FLL1_REFCLK_DIV_MASK 0x0018 /* FLL1_REFCLK_DIV - [4:3] */
-#define WM8994_FLL1_REFCLK_DIV_SHIFT 3 /* FLL1_REFCLK_DIV - [4:3] */
-#define WM8994_FLL1_REFCLK_DIV_WIDTH 2 /* FLL1_REFCLK_DIV - [4:3] */
-#define WM8994_FLL1_REFCLK_SRC_MASK 0x0003 /* FLL1_REFCLK_SRC - [1:0] */
-#define WM8994_FLL1_REFCLK_SRC_SHIFT 0 /* FLL1_REFCLK_SRC - [1:0] */
-#define WM8994_FLL1_REFCLK_SRC_WIDTH 2 /* FLL1_REFCLK_SRC - [1:0] */
-
-/*
- * R550 (0x226) - FLL1 EFS 1
- */
-#define WM8958_FLL1_LAMBDA_MASK 0xFFFF /* FLL1_LAMBDA - [15:0] */
-#define WM8958_FLL1_LAMBDA_SHIFT 0 /* FLL1_LAMBDA - [15:0] */
-#define WM8958_FLL1_LAMBDA_WIDTH 16 /* FLL1_LAMBDA - [15:0] */
-
-/*
- * R551 (0x227) - FLL1 EFS 2
- */
-#define WM8958_FLL1_LFSR_SEL_MASK 0x0006 /* FLL1_LFSR_SEL - [2:1] */
-#define WM8958_FLL1_LFSR_SEL_SHIFT 1 /* FLL1_LFSR_SEL - [2:1] */
-#define WM8958_FLL1_LFSR_SEL_WIDTH 2 /* FLL1_LFSR_SEL - [2:1] */
-#define WM8958_FLL1_EFS_ENA 0x0001 /* FLL1_EFS_ENA */
-#define WM8958_FLL1_EFS_ENA_MASK 0x0001 /* FLL1_EFS_ENA */
-#define WM8958_FLL1_EFS_ENA_SHIFT 0 /* FLL1_EFS_ENA */
-#define WM8958_FLL1_EFS_ENA_WIDTH 1 /* FLL1_EFS_ENA */
-
-/*
- * R576 (0x240) - FLL2 Control (1)
- */
-#define WM8994_FLL2_FRAC 0x0004 /* FLL2_FRAC */
-#define WM8994_FLL2_FRAC_MASK 0x0004 /* FLL2_FRAC */
-#define WM8994_FLL2_FRAC_SHIFT 2 /* FLL2_FRAC */
-#define WM8994_FLL2_FRAC_WIDTH 1 /* FLL2_FRAC */
-#define WM8994_FLL2_OSC_ENA 0x0002 /* FLL2_OSC_ENA */
-#define WM8994_FLL2_OSC_ENA_MASK 0x0002 /* FLL2_OSC_ENA */
-#define WM8994_FLL2_OSC_ENA_SHIFT 1 /* FLL2_OSC_ENA */
-#define WM8994_FLL2_OSC_ENA_WIDTH 1 /* FLL2_OSC_ENA */
-#define WM8994_FLL2_ENA 0x0001 /* FLL2_ENA */
-#define WM8994_FLL2_ENA_MASK 0x0001 /* FLL2_ENA */
-#define WM8994_FLL2_ENA_SHIFT 0 /* FLL2_ENA */
-#define WM8994_FLL2_ENA_WIDTH 1 /* FLL2_ENA */
-
-/*
- * R577 (0x241) - FLL2 Control (2)
- */
-#define WM8994_FLL2_OUTDIV_MASK 0x3F00 /* FLL2_OUTDIV - [13:8] */
-#define WM8994_FLL2_OUTDIV_SHIFT 8 /* FLL2_OUTDIV - [13:8] */
-#define WM8994_FLL2_OUTDIV_WIDTH 6 /* FLL2_OUTDIV - [13:8] */
-#define WM8994_FLL2_CTRL_RATE_MASK 0x0070 /* FLL2_CTRL_RATE - [6:4] */
-#define WM8994_FLL2_CTRL_RATE_SHIFT 4 /* FLL2_CTRL_RATE - [6:4] */
-#define WM8994_FLL2_CTRL_RATE_WIDTH 3 /* FLL2_CTRL_RATE - [6:4] */
-#define WM8994_FLL2_FRATIO_MASK 0x0007 /* FLL2_FRATIO - [2:0] */
-#define WM8994_FLL2_FRATIO_SHIFT 0 /* FLL2_FRATIO - [2:0] */
-#define WM8994_FLL2_FRATIO_WIDTH 3 /* FLL2_FRATIO - [2:0] */
-
-/*
- * R578 (0x242) - FLL2 Control (3)
- */
-#define WM8994_FLL2_K_MASK 0xFFFF /* FLL2_K - [15:0] */
-#define WM8994_FLL2_K_SHIFT 0 /* FLL2_K - [15:0] */
-#define WM8994_FLL2_K_WIDTH 16 /* FLL2_K - [15:0] */
-
-/*
- * R579 (0x243) - FLL2 Control (4)
- */
-#define WM8994_FLL2_N_MASK 0x7FE0 /* FLL2_N - [14:5] */
-#define WM8994_FLL2_N_SHIFT 5 /* FLL2_N - [14:5] */
-#define WM8994_FLL2_N_WIDTH 10 /* FLL2_N - [14:5] */
-#define WM8994_FLL2_LOOP_GAIN_MASK 0x000F /* FLL2_LOOP_GAIN - [3:0] */
-#define WM8994_FLL2_LOOP_GAIN_SHIFT 0 /* FLL2_LOOP_GAIN - [3:0] */
-#define WM8994_FLL2_LOOP_GAIN_WIDTH 4 /* FLL2_LOOP_GAIN - [3:0] */
-
-/*
- * R580 (0x244) - FLL2 Control (5)
- */
-#define WM8958_FLL2_BYP 0x8000 /* FLL2_BYP */
-#define WM8958_FLL2_BYP_MASK 0x8000 /* FLL2_BYP */
-#define WM8958_FLL2_BYP_SHIFT 15 /* FLL2_BYP */
-#define WM8958_FLL2_BYP_WIDTH 1 /* FLL2_BYP */
-#define WM8994_FLL2_FRC_NCO_VAL_MASK 0x1F80 /* FLL2_FRC_NCO_VAL - [12:7] */
-#define WM8994_FLL2_FRC_NCO_VAL_SHIFT 7 /* FLL2_FRC_NCO_VAL - [12:7] */
-#define WM8994_FLL2_FRC_NCO_VAL_WIDTH 6 /* FLL2_FRC_NCO_VAL - [12:7] */
-#define WM8994_FLL2_FRC_NCO 0x0040 /* FLL2_FRC_NCO */
-#define WM8994_FLL2_FRC_NCO_MASK 0x0040 /* FLL2_FRC_NCO */
-#define WM8994_FLL2_FRC_NCO_SHIFT 6 /* FLL2_FRC_NCO */
-#define WM8994_FLL2_FRC_NCO_WIDTH 1 /* FLL2_FRC_NCO */
-#define WM8994_FLL2_REFCLK_DIV_MASK 0x0018 /* FLL2_REFCLK_DIV - [4:3] */
-#define WM8994_FLL2_REFCLK_DIV_SHIFT 3 /* FLL2_REFCLK_DIV - [4:3] */
-#define WM8994_FLL2_REFCLK_DIV_WIDTH 2 /* FLL2_REFCLK_DIV - [4:3] */
-#define WM8994_FLL2_REFCLK_SRC_MASK 0x0003 /* FLL2_REFCLK_SRC - [1:0] */
-#define WM8994_FLL2_REFCLK_SRC_SHIFT 0 /* FLL2_REFCLK_SRC - [1:0] */
-#define WM8994_FLL2_REFCLK_SRC_WIDTH 2 /* FLL2_REFCLK_SRC - [1:0] */
-
-/*
- * R582 (0x246) - FLL2 EFS 1
- */
-#define WM8958_FLL2_LAMBDA_MASK 0xFFFF /* FLL2_LAMBDA - [15:0] */
-#define WM8958_FLL2_LAMBDA_SHIFT 0 /* FLL2_LAMBDA - [15:0] */
-#define WM8958_FLL2_LAMBDA_WIDTH 16 /* FLL2_LAMBDA - [15:0] */
-
-/*
- * R583 (0x247) - FLL2 EFS 2
- */
-#define WM8958_FLL2_LFSR_SEL_MASK 0x0006 /* FLL2_LFSR_SEL - [2:1] */
-#define WM8958_FLL2_LFSR_SEL_SHIFT 1 /* FLL2_LFSR_SEL - [2:1] */
-#define WM8958_FLL2_LFSR_SEL_WIDTH 2 /* FLL2_LFSR_SEL - [2:1] */
-#define WM8958_FLL2_EFS_ENA 0x0001 /* FLL2_EFS_ENA */
-#define WM8958_FLL2_EFS_ENA_MASK 0x0001 /* FLL2_EFS_ENA */
-#define WM8958_FLL2_EFS_ENA_SHIFT 0 /* FLL2_EFS_ENA */
-#define WM8958_FLL2_EFS_ENA_WIDTH 1 /* FLL2_EFS_ENA */
-
-/*
- * R768 (0x300) - AIF1 Control (1)
- */
-#define WM8994_AIF1ADCL_SRC 0x8000 /* AIF1ADCL_SRC */
-#define WM8994_AIF1ADCL_SRC_MASK 0x8000 /* AIF1ADCL_SRC */
-#define WM8994_AIF1ADCL_SRC_SHIFT 15 /* AIF1ADCL_SRC */
-#define WM8994_AIF1ADCL_SRC_WIDTH 1 /* AIF1ADCL_SRC */
-#define WM8994_AIF1ADCR_SRC 0x4000 /* AIF1ADCR_SRC */
-#define WM8994_AIF1ADCR_SRC_MASK 0x4000 /* AIF1ADCR_SRC */
-#define WM8994_AIF1ADCR_SRC_SHIFT 14 /* AIF1ADCR_SRC */
-#define WM8994_AIF1ADCR_SRC_WIDTH 1 /* AIF1ADCR_SRC */
-#define WM8994_AIF1ADC_TDM 0x2000 /* AIF1ADC_TDM */
-#define WM8994_AIF1ADC_TDM_MASK 0x2000 /* AIF1ADC_TDM */
-#define WM8994_AIF1ADC_TDM_SHIFT 13 /* AIF1ADC_TDM */
-#define WM8994_AIF1ADC_TDM_WIDTH 1 /* AIF1ADC_TDM */
-#define WM8994_AIF1_BCLK_INV 0x0100 /* AIF1_BCLK_INV */
-#define WM8994_AIF1_BCLK_INV_MASK 0x0100 /* AIF1_BCLK_INV */
-#define WM8994_AIF1_BCLK_INV_SHIFT 8 /* AIF1_BCLK_INV */
-#define WM8994_AIF1_BCLK_INV_WIDTH 1 /* AIF1_BCLK_INV */
-#define WM8994_AIF1_LRCLK_INV 0x0080 /* AIF1_LRCLK_INV */
-#define WM8994_AIF1_LRCLK_INV_MASK 0x0080 /* AIF1_LRCLK_INV */
-#define WM8994_AIF1_LRCLK_INV_SHIFT 7 /* AIF1_LRCLK_INV */
-#define WM8994_AIF1_LRCLK_INV_WIDTH 1 /* AIF1_LRCLK_INV */
-#define WM8994_AIF1_WL_MASK 0x0060 /* AIF1_WL - [6:5] */
-#define WM8994_AIF1_WL_SHIFT 5 /* AIF1_WL - [6:5] */
-#define WM8994_AIF1_WL_WIDTH 2 /* AIF1_WL - [6:5] */
-#define WM8994_AIF1_FMT_MASK 0x0018 /* AIF1_FMT - [4:3] */
-#define WM8994_AIF1_FMT_SHIFT 3 /* AIF1_FMT - [4:3] */
-#define WM8994_AIF1_FMT_WIDTH 2 /* AIF1_FMT - [4:3] */
-
-/*
- * R769 (0x301) - AIF1 Control (2)
- */
-#define WM8994_AIF1DACL_SRC 0x8000 /* AIF1DACL_SRC */
-#define WM8994_AIF1DACL_SRC_MASK 0x8000 /* AIF1DACL_SRC */
-#define WM8994_AIF1DACL_SRC_SHIFT 15 /* AIF1DACL_SRC */
-#define WM8994_AIF1DACL_SRC_WIDTH 1 /* AIF1DACL_SRC */
-#define WM8994_AIF1DACR_SRC 0x4000 /* AIF1DACR_SRC */
-#define WM8994_AIF1DACR_SRC_MASK 0x4000 /* AIF1DACR_SRC */
-#define WM8994_AIF1DACR_SRC_SHIFT 14 /* AIF1DACR_SRC */
-#define WM8994_AIF1DACR_SRC_WIDTH 1 /* AIF1DACR_SRC */
-#define WM8994_AIF1DAC_BOOST_MASK 0x0C00 /* AIF1DAC_BOOST - [11:10] */
-#define WM8994_AIF1DAC_BOOST_SHIFT 10 /* AIF1DAC_BOOST - [11:10] */
-#define WM8994_AIF1DAC_BOOST_WIDTH 2 /* AIF1DAC_BOOST - [11:10] */
-#define WM8994_AIF1_MONO 0x0100 /* AIF1_MONO */
-#define WM8994_AIF1_MONO_MASK 0x0100 /* AIF1_MONO */
-#define WM8994_AIF1_MONO_SHIFT 8 /* AIF1_MONO */
-#define WM8994_AIF1_MONO_WIDTH 1 /* AIF1_MONO */
-#define WM8994_AIF1DAC_COMP 0x0010 /* AIF1DAC_COMP */
-#define WM8994_AIF1DAC_COMP_MASK 0x0010 /* AIF1DAC_COMP */
-#define WM8994_AIF1DAC_COMP_SHIFT 4 /* AIF1DAC_COMP */
-#define WM8994_AIF1DAC_COMP_WIDTH 1 /* AIF1DAC_COMP */
-#define WM8994_AIF1DAC_COMPMODE 0x0008 /* AIF1DAC_COMPMODE */
-#define WM8994_AIF1DAC_COMPMODE_MASK 0x0008 /* AIF1DAC_COMPMODE */
-#define WM8994_AIF1DAC_COMPMODE_SHIFT 3 /* AIF1DAC_COMPMODE */
-#define WM8994_AIF1DAC_COMPMODE_WIDTH 1 /* AIF1DAC_COMPMODE */
-#define WM8994_AIF1ADC_COMP 0x0004 /* AIF1ADC_COMP */
-#define WM8994_AIF1ADC_COMP_MASK 0x0004 /* AIF1ADC_COMP */
-#define WM8994_AIF1ADC_COMP_SHIFT 2 /* AIF1ADC_COMP */
-#define WM8994_AIF1ADC_COMP_WIDTH 1 /* AIF1ADC_COMP */
-#define WM8994_AIF1ADC_COMPMODE 0x0002 /* AIF1ADC_COMPMODE */
-#define WM8994_AIF1ADC_COMPMODE_MASK 0x0002 /* AIF1ADC_COMPMODE */
-#define WM8994_AIF1ADC_COMPMODE_SHIFT 1 /* AIF1ADC_COMPMODE */
-#define WM8994_AIF1ADC_COMPMODE_WIDTH 1 /* AIF1ADC_COMPMODE */
-#define WM8994_AIF1_LOOPBACK 0x0001 /* AIF1_LOOPBACK */
-#define WM8994_AIF1_LOOPBACK_MASK 0x0001 /* AIF1_LOOPBACK */
-#define WM8994_AIF1_LOOPBACK_SHIFT 0 /* AIF1_LOOPBACK */
-#define WM8994_AIF1_LOOPBACK_WIDTH 1 /* AIF1_LOOPBACK */
-
-/*
- * R770 (0x302) - AIF1 Master/Slave
- */
-#define WM8994_AIF1_TRI 0x8000 /* AIF1_TRI */
-#define WM8994_AIF1_TRI_MASK 0x8000 /* AIF1_TRI */
-#define WM8994_AIF1_TRI_SHIFT 15 /* AIF1_TRI */
-#define WM8994_AIF1_TRI_WIDTH 1 /* AIF1_TRI */
-#define WM8994_AIF1_MSTR 0x4000 /* AIF1_MSTR */
-#define WM8994_AIF1_MSTR_MASK 0x4000 /* AIF1_MSTR */
-#define WM8994_AIF1_MSTR_SHIFT 14 /* AIF1_MSTR */
-#define WM8994_AIF1_MSTR_WIDTH 1 /* AIF1_MSTR */
-#define WM8994_AIF1_CLK_FRC 0x2000 /* AIF1_CLK_FRC */
-#define WM8994_AIF1_CLK_FRC_MASK 0x2000 /* AIF1_CLK_FRC */
-#define WM8994_AIF1_CLK_FRC_SHIFT 13 /* AIF1_CLK_FRC */
-#define WM8994_AIF1_CLK_FRC_WIDTH 1 /* AIF1_CLK_FRC */
-#define WM8994_AIF1_LRCLK_FRC 0x1000 /* AIF1_LRCLK_FRC */
-#define WM8994_AIF1_LRCLK_FRC_MASK 0x1000 /* AIF1_LRCLK_FRC */
-#define WM8994_AIF1_LRCLK_FRC_SHIFT 12 /* AIF1_LRCLK_FRC */
-#define WM8994_AIF1_LRCLK_FRC_WIDTH 1 /* AIF1_LRCLK_FRC */
-
-/*
- * R771 (0x303) - AIF1 BCLK
- */
-#define WM8994_AIF1_BCLK_DIV_MASK 0x01F0 /* AIF1_BCLK_DIV - [8:4] */
-#define WM8994_AIF1_BCLK_DIV_SHIFT 4 /* AIF1_BCLK_DIV - [8:4] */
-#define WM8994_AIF1_BCLK_DIV_WIDTH 5 /* AIF1_BCLK_DIV - [8:4] */
-
-/*
- * R772 (0x304) - AIF1ADC LRCLK
- */
-#define WM8994_AIF1ADC_LRCLK_DIR 0x0800 /* AIF1ADC_LRCLK_DIR */
-#define WM8994_AIF1ADC_LRCLK_DIR_MASK 0x0800 /* AIF1ADC_LRCLK_DIR */
-#define WM8994_AIF1ADC_LRCLK_DIR_SHIFT 11 /* AIF1ADC_LRCLK_DIR */
-#define WM8994_AIF1ADC_LRCLK_DIR_WIDTH 1 /* AIF1ADC_LRCLK_DIR */
-#define WM8994_AIF1ADC_RATE_MASK 0x07FF /* AIF1ADC_RATE - [10:0] */
-#define WM8994_AIF1ADC_RATE_SHIFT 0 /* AIF1ADC_RATE - [10:0] */
-#define WM8994_AIF1ADC_RATE_WIDTH 11 /* AIF1ADC_RATE - [10:0] */
-
-/*
- * R773 (0x305) - AIF1DAC LRCLK
- */
-#define WM8994_AIF1DAC_LRCLK_DIR 0x0800 /* AIF1DAC_LRCLK_DIR */
-#define WM8994_AIF1DAC_LRCLK_DIR_MASK 0x0800 /* AIF1DAC_LRCLK_DIR */
-#define WM8994_AIF1DAC_LRCLK_DIR_SHIFT 11 /* AIF1DAC_LRCLK_DIR */
-#define WM8994_AIF1DAC_LRCLK_DIR_WIDTH 1 /* AIF1DAC_LRCLK_DIR */
-#define WM8994_AIF1DAC_RATE_MASK 0x07FF /* AIF1DAC_RATE - [10:0] */
-#define WM8994_AIF1DAC_RATE_SHIFT 0 /* AIF1DAC_RATE - [10:0] */
-#define WM8994_AIF1DAC_RATE_WIDTH 11 /* AIF1DAC_RATE - [10:0] */
-
-/*
- * R774 (0x306) - AIF1DAC Data
- */
-#define WM8994_AIF1DACL_DAT_INV 0x0002 /* AIF1DACL_DAT_INV */
-#define WM8994_AIF1DACL_DAT_INV_MASK 0x0002 /* AIF1DACL_DAT_INV */
-#define WM8994_AIF1DACL_DAT_INV_SHIFT 1 /* AIF1DACL_DAT_INV */
-#define WM8994_AIF1DACL_DAT_INV_WIDTH 1 /* AIF1DACL_DAT_INV */
-#define WM8994_AIF1DACR_DAT_INV 0x0001 /* AIF1DACR_DAT_INV */
-#define WM8994_AIF1DACR_DAT_INV_MASK 0x0001 /* AIF1DACR_DAT_INV */
-#define WM8994_AIF1DACR_DAT_INV_SHIFT 0 /* AIF1DACR_DAT_INV */
-#define WM8994_AIF1DACR_DAT_INV_WIDTH 1 /* AIF1DACR_DAT_INV */
-
-/*
- * R775 (0x307) - AIF1ADC Data
- */
-#define WM8994_AIF1ADCL_DAT_INV 0x0002 /* AIF1ADCL_DAT_INV */
-#define WM8994_AIF1ADCL_DAT_INV_MASK 0x0002 /* AIF1ADCL_DAT_INV */
-#define WM8994_AIF1ADCL_DAT_INV_SHIFT 1 /* AIF1ADCL_DAT_INV */
-#define WM8994_AIF1ADCL_DAT_INV_WIDTH 1 /* AIF1ADCL_DAT_INV */
-#define WM8994_AIF1ADCR_DAT_INV 0x0001 /* AIF1ADCR_DAT_INV */
-#define WM8994_AIF1ADCR_DAT_INV_MASK 0x0001 /* AIF1ADCR_DAT_INV */
-#define WM8994_AIF1ADCR_DAT_INV_SHIFT 0 /* AIF1ADCR_DAT_INV */
-#define WM8994_AIF1ADCR_DAT_INV_WIDTH 1 /* AIF1ADCR_DAT_INV */
-
-/*
- * R784 (0x310) - AIF2 Control (1)
- */
-#define WM8994_AIF2ADCL_SRC 0x8000 /* AIF2ADCL_SRC */
-#define WM8994_AIF2ADCL_SRC_MASK 0x8000 /* AIF2ADCL_SRC */
-#define WM8994_AIF2ADCL_SRC_SHIFT 15 /* AIF2ADCL_SRC */
-#define WM8994_AIF2ADCL_SRC_WIDTH 1 /* AIF2ADCL_SRC */
-#define WM8994_AIF2ADCR_SRC 0x4000 /* AIF2ADCR_SRC */
-#define WM8994_AIF2ADCR_SRC_MASK 0x4000 /* AIF2ADCR_SRC */
-#define WM8994_AIF2ADCR_SRC_SHIFT 14 /* AIF2ADCR_SRC */
-#define WM8994_AIF2ADCR_SRC_WIDTH 1 /* AIF2ADCR_SRC */
-#define WM8994_AIF2ADC_TDM 0x2000 /* AIF2ADC_TDM */
-#define WM8994_AIF2ADC_TDM_MASK 0x2000 /* AIF2ADC_TDM */
-#define WM8994_AIF2ADC_TDM_SHIFT 13 /* AIF2ADC_TDM */
-#define WM8994_AIF2ADC_TDM_WIDTH 1 /* AIF2ADC_TDM */
-#define WM8994_AIF2ADC_TDM_CHAN 0x1000 /* AIF2ADC_TDM_CHAN */
-#define WM8994_AIF2ADC_TDM_CHAN_MASK 0x1000 /* AIF2ADC_TDM_CHAN */
-#define WM8994_AIF2ADC_TDM_CHAN_SHIFT 12 /* AIF2ADC_TDM_CHAN */
-#define WM8994_AIF2ADC_TDM_CHAN_WIDTH 1 /* AIF2ADC_TDM_CHAN */
-#define WM8994_AIF2_BCLK_INV 0x0100 /* AIF2_BCLK_INV */
-#define WM8994_AIF2_BCLK_INV_MASK 0x0100 /* AIF2_BCLK_INV */
-#define WM8994_AIF2_BCLK_INV_SHIFT 8 /* AIF2_BCLK_INV */
-#define WM8994_AIF2_BCLK_INV_WIDTH 1 /* AIF2_BCLK_INV */
-#define WM8994_AIF2_LRCLK_INV 0x0080 /* AIF2_LRCLK_INV */
-#define WM8994_AIF2_LRCLK_INV_MASK 0x0080 /* AIF2_LRCLK_INV */
-#define WM8994_AIF2_LRCLK_INV_SHIFT 7 /* AIF2_LRCLK_INV */
-#define WM8994_AIF2_LRCLK_INV_WIDTH 1 /* AIF2_LRCLK_INV */
-#define WM8994_AIF2_WL_MASK 0x0060 /* AIF2_WL - [6:5] */
-#define WM8994_AIF2_WL_SHIFT 5 /* AIF2_WL - [6:5] */
-#define WM8994_AIF2_WL_WIDTH 2 /* AIF2_WL - [6:5] */
-#define WM8994_AIF2_FMT_MASK 0x0018 /* AIF2_FMT - [4:3] */
-#define WM8994_AIF2_FMT_SHIFT 3 /* AIF2_FMT - [4:3] */
-#define WM8994_AIF2_FMT_WIDTH 2 /* AIF2_FMT - [4:3] */
-
-/*
- * R785 (0x311) - AIF2 Control (2)
- */
-#define WM8994_AIF2DACL_SRC 0x8000 /* AIF2DACL_SRC */
-#define WM8994_AIF2DACL_SRC_MASK 0x8000 /* AIF2DACL_SRC */
-#define WM8994_AIF2DACL_SRC_SHIFT 15 /* AIF2DACL_SRC */
-#define WM8994_AIF2DACL_SRC_WIDTH 1 /* AIF2DACL_SRC */
-#define WM8994_AIF2DACR_SRC 0x4000 /* AIF2DACR_SRC */
-#define WM8994_AIF2DACR_SRC_MASK 0x4000 /* AIF2DACR_SRC */
-#define WM8994_AIF2DACR_SRC_SHIFT 14 /* AIF2DACR_SRC */
-#define WM8994_AIF2DACR_SRC_WIDTH 1 /* AIF2DACR_SRC */
-#define WM8994_AIF2DAC_TDM 0x2000 /* AIF2DAC_TDM */
-#define WM8994_AIF2DAC_TDM_MASK 0x2000 /* AIF2DAC_TDM */
-#define WM8994_AIF2DAC_TDM_SHIFT 13 /* AIF2DAC_TDM */
-#define WM8994_AIF2DAC_TDM_WIDTH 1 /* AIF2DAC_TDM */
-#define WM8994_AIF2DAC_TDM_CHAN 0x1000 /* AIF2DAC_TDM_CHAN */
-#define WM8994_AIF2DAC_TDM_CHAN_MASK 0x1000 /* AIF2DAC_TDM_CHAN */
-#define WM8994_AIF2DAC_TDM_CHAN_SHIFT 12 /* AIF2DAC_TDM_CHAN */
-#define WM8994_AIF2DAC_TDM_CHAN_WIDTH 1 /* AIF2DAC_TDM_CHAN */
-#define WM8994_AIF2DAC_BOOST_MASK 0x0C00 /* AIF2DAC_BOOST - [11:10] */
-#define WM8994_AIF2DAC_BOOST_SHIFT 10 /* AIF2DAC_BOOST - [11:10] */
-#define WM8994_AIF2DAC_BOOST_WIDTH 2 /* AIF2DAC_BOOST - [11:10] */
-#define WM8994_AIF2_MONO 0x0100 /* AIF2_MONO */
-#define WM8994_AIF2_MONO_MASK 0x0100 /* AIF2_MONO */
-#define WM8994_AIF2_MONO_SHIFT 8 /* AIF2_MONO */
-#define WM8994_AIF2_MONO_WIDTH 1 /* AIF2_MONO */
-#define WM8994_AIF2DAC_COMP 0x0010 /* AIF2DAC_COMP */
-#define WM8994_AIF2DAC_COMP_MASK 0x0010 /* AIF2DAC_COMP */
-#define WM8994_AIF2DAC_COMP_SHIFT 4 /* AIF2DAC_COMP */
-#define WM8994_AIF2DAC_COMP_WIDTH 1 /* AIF2DAC_COMP */
-#define WM8994_AIF2DAC_COMPMODE 0x0008 /* AIF2DAC_COMPMODE */
-#define WM8994_AIF2DAC_COMPMODE_MASK 0x0008 /* AIF2DAC_COMPMODE */
-#define WM8994_AIF2DAC_COMPMODE_SHIFT 3 /* AIF2DAC_COMPMODE */
-#define WM8994_AIF2DAC_COMPMODE_WIDTH 1 /* AIF2DAC_COMPMODE */
-#define WM8994_AIF2ADC_COMP 0x0004 /* AIF2ADC_COMP */
-#define WM8994_AIF2ADC_COMP_MASK 0x0004 /* AIF2ADC_COMP */
-#define WM8994_AIF2ADC_COMP_SHIFT 2 /* AIF2ADC_COMP */
-#define WM8994_AIF2ADC_COMP_WIDTH 1 /* AIF2ADC_COMP */
-#define WM8994_AIF2ADC_COMPMODE 0x0002 /* AIF2ADC_COMPMODE */
-#define WM8994_AIF2ADC_COMPMODE_MASK 0x0002 /* AIF2ADC_COMPMODE */
-#define WM8994_AIF2ADC_COMPMODE_SHIFT 1 /* AIF2ADC_COMPMODE */
-#define WM8994_AIF2ADC_COMPMODE_WIDTH 1 /* AIF2ADC_COMPMODE */
-#define WM8994_AIF2_LOOPBACK 0x0001 /* AIF2_LOOPBACK */
-#define WM8994_AIF2_LOOPBACK_MASK 0x0001 /* AIF2_LOOPBACK */
-#define WM8994_AIF2_LOOPBACK_SHIFT 0 /* AIF2_LOOPBACK */
-#define WM8994_AIF2_LOOPBACK_WIDTH 1 /* AIF2_LOOPBACK */
-
-/*
- * R786 (0x312) - AIF2 Master/Slave
- */
-#define WM8994_AIF2_TRI 0x8000 /* AIF2_TRI */
-#define WM8994_AIF2_TRI_MASK 0x8000 /* AIF2_TRI */
-#define WM8994_AIF2_TRI_SHIFT 15 /* AIF2_TRI */
-#define WM8994_AIF2_TRI_WIDTH 1 /* AIF2_TRI */
-#define WM8994_AIF2_MSTR 0x4000 /* AIF2_MSTR */
-#define WM8994_AIF2_MSTR_MASK 0x4000 /* AIF2_MSTR */
-#define WM8994_AIF2_MSTR_SHIFT 14 /* AIF2_MSTR */
-#define WM8994_AIF2_MSTR_WIDTH 1 /* AIF2_MSTR */
-#define WM8994_AIF2_CLK_FRC 0x2000 /* AIF2_CLK_FRC */
-#define WM8994_AIF2_CLK_FRC_MASK 0x2000 /* AIF2_CLK_FRC */
-#define WM8994_AIF2_CLK_FRC_SHIFT 13 /* AIF2_CLK_FRC */
-#define WM8994_AIF2_CLK_FRC_WIDTH 1 /* AIF2_CLK_FRC */
-#define WM8994_AIF2_LRCLK_FRC 0x1000 /* AIF2_LRCLK_FRC */
-#define WM8994_AIF2_LRCLK_FRC_MASK 0x1000 /* AIF2_LRCLK_FRC */
-#define WM8994_AIF2_LRCLK_FRC_SHIFT 12 /* AIF2_LRCLK_FRC */
-#define WM8994_AIF2_LRCLK_FRC_WIDTH 1 /* AIF2_LRCLK_FRC */
-
-/*
- * R787 (0x313) - AIF2 BCLK
- */
-#define WM8994_AIF2_BCLK_DIV_MASK 0x01F0 /* AIF2_BCLK_DIV - [8:4] */
-#define WM8994_AIF2_BCLK_DIV_SHIFT 4 /* AIF2_BCLK_DIV - [8:4] */
-#define WM8994_AIF2_BCLK_DIV_WIDTH 5 /* AIF2_BCLK_DIV - [8:4] */
-
-/*
- * R788 (0x314) - AIF2ADC LRCLK
- */
-#define WM8994_AIF2ADC_LRCLK_DIR 0x0800 /* AIF2ADC_LRCLK_DIR */
-#define WM8994_AIF2ADC_LRCLK_DIR_MASK 0x0800 /* AIF2ADC_LRCLK_DIR */
-#define WM8994_AIF2ADC_LRCLK_DIR_SHIFT 11 /* AIF2ADC_LRCLK_DIR */
-#define WM8994_AIF2ADC_LRCLK_DIR_WIDTH 1 /* AIF2ADC_LRCLK_DIR */
-#define WM8994_AIF2ADC_RATE_MASK 0x07FF /* AIF2ADC_RATE - [10:0] */
-#define WM8994_AIF2ADC_RATE_SHIFT 0 /* AIF2ADC_RATE - [10:0] */
-#define WM8994_AIF2ADC_RATE_WIDTH 11 /* AIF2ADC_RATE - [10:0] */
-
-/*
- * R789 (0x315) - AIF2DAC LRCLK
- */
-#define WM8994_AIF2DAC_LRCLK_DIR 0x0800 /* AIF2DAC_LRCLK_DIR */
-#define WM8994_AIF2DAC_LRCLK_DIR_MASK 0x0800 /* AIF2DAC_LRCLK_DIR */
-#define WM8994_AIF2DAC_LRCLK_DIR_SHIFT 11 /* AIF2DAC_LRCLK_DIR */
-#define WM8994_AIF2DAC_LRCLK_DIR_WIDTH 1 /* AIF2DAC_LRCLK_DIR */
-#define WM8994_AIF2DAC_RATE_MASK 0x07FF /* AIF2DAC_RATE - [10:0] */
-#define WM8994_AIF2DAC_RATE_SHIFT 0 /* AIF2DAC_RATE - [10:0] */
-#define WM8994_AIF2DAC_RATE_WIDTH 11 /* AIF2DAC_RATE - [10:0] */
-
-/*
- * R790 (0x316) - AIF2DAC Data
- */
-#define WM8994_AIF2DACL_DAT_INV 0x0002 /* AIF2DACL_DAT_INV */
-#define WM8994_AIF2DACL_DAT_INV_MASK 0x0002 /* AIF2DACL_DAT_INV */
-#define WM8994_AIF2DACL_DAT_INV_SHIFT 1 /* AIF2DACL_DAT_INV */
-#define WM8994_AIF2DACL_DAT_INV_WIDTH 1 /* AIF2DACL_DAT_INV */
-#define WM8994_AIF2DACR_DAT_INV 0x0001 /* AIF2DACR_DAT_INV */
-#define WM8994_AIF2DACR_DAT_INV_MASK 0x0001 /* AIF2DACR_DAT_INV */
-#define WM8994_AIF2DACR_DAT_INV_SHIFT 0 /* AIF2DACR_DAT_INV */
-#define WM8994_AIF2DACR_DAT_INV_WIDTH 1 /* AIF2DACR_DAT_INV */
-
-/*
- * R791 (0x317) - AIF2ADC Data
- */
-#define WM8994_AIF2ADCL_DAT_INV 0x0002 /* AIF2ADCL_DAT_INV */
-#define WM8994_AIF2ADCL_DAT_INV_MASK 0x0002 /* AIF2ADCL_DAT_INV */
-#define WM8994_AIF2ADCL_DAT_INV_SHIFT 1 /* AIF2ADCL_DAT_INV */
-#define WM8994_AIF2ADCL_DAT_INV_WIDTH 1 /* AIF2ADCL_DAT_INV */
-#define WM8994_AIF2ADCR_DAT_INV 0x0001 /* AIF2ADCR_DAT_INV */
-#define WM8994_AIF2ADCR_DAT_INV_MASK 0x0001 /* AIF2ADCR_DAT_INV */
-#define WM8994_AIF2ADCR_DAT_INV_SHIFT 0 /* AIF2ADCR_DAT_INV */
-#define WM8994_AIF2ADCR_DAT_INV_WIDTH 1 /* AIF2ADCR_DAT_INV */
-
-/*
- * R800 (0x320) - AIF3 Control (1)
- */
-#define WM8958_AIF3_LRCLK_INV 0x0080 /* AIF3_LRCLK_INV */
-#define WM8958_AIF3_LRCLK_INV_MASK 0x0080 /* AIF3_LRCLK_INV */
-#define WM8958_AIF3_LRCLK_INV_SHIFT 7 /* AIF3_LRCLK_INV */
-#define WM8958_AIF3_LRCLK_INV_WIDTH 1 /* AIF3_LRCLK_INV */
-#define WM8958_AIF3_WL_MASK 0x0060 /* AIF3_WL - [6:5] */
-#define WM8958_AIF3_WL_SHIFT 5 /* AIF3_WL - [6:5] */
-#define WM8958_AIF3_WL_WIDTH 2 /* AIF3_WL - [6:5] */
-#define WM8958_AIF3_FMT_MASK 0x0018 /* AIF3_FMT - [4:3] */
-#define WM8958_AIF3_FMT_SHIFT 3 /* AIF3_FMT - [4:3] */
-#define WM8958_AIF3_FMT_WIDTH 2 /* AIF3_FMT - [4:3] */
-
-/*
- * R801 (0x321) - AIF3 Control (2)
- */
-#define WM8958_AIF3DAC_BOOST_MASK 0x0C00 /* AIF3DAC_BOOST - [11:10] */
-#define WM8958_AIF3DAC_BOOST_SHIFT 10 /* AIF3DAC_BOOST - [11:10] */
-#define WM8958_AIF3DAC_BOOST_WIDTH 2 /* AIF3DAC_BOOST - [11:10] */
-#define WM8958_AIF3DAC_COMP 0x0010 /* AIF3DAC_COMP */
-#define WM8958_AIF3DAC_COMP_MASK 0x0010 /* AIF3DAC_COMP */
-#define WM8958_AIF3DAC_COMP_SHIFT 4 /* AIF3DAC_COMP */
-#define WM8958_AIF3DAC_COMP_WIDTH 1 /* AIF3DAC_COMP */
-#define WM8958_AIF3DAC_COMPMODE 0x0008 /* AIF3DAC_COMPMODE */
-#define WM8958_AIF3DAC_COMPMODE_MASK 0x0008 /* AIF3DAC_COMPMODE */
-#define WM8958_AIF3DAC_COMPMODE_SHIFT 3 /* AIF3DAC_COMPMODE */
-#define WM8958_AIF3DAC_COMPMODE_WIDTH 1 /* AIF3DAC_COMPMODE */
-#define WM8958_AIF3ADC_COMP 0x0004 /* AIF3ADC_COMP */
-#define WM8958_AIF3ADC_COMP_MASK 0x0004 /* AIF3ADC_COMP */
-#define WM8958_AIF3ADC_COMP_SHIFT 2 /* AIF3ADC_COMP */
-#define WM8958_AIF3ADC_COMP_WIDTH 1 /* AIF3ADC_COMP */
-#define WM8958_AIF3ADC_COMPMODE 0x0002 /* AIF3ADC_COMPMODE */
-#define WM8958_AIF3ADC_COMPMODE_MASK 0x0002 /* AIF3ADC_COMPMODE */
-#define WM8958_AIF3ADC_COMPMODE_SHIFT 1 /* AIF3ADC_COMPMODE */
-#define WM8958_AIF3ADC_COMPMODE_WIDTH 1 /* AIF3ADC_COMPMODE */
-#define WM8958_AIF3_LOOPBACK 0x0001 /* AIF3_LOOPBACK */
-#define WM8958_AIF3_LOOPBACK_MASK 0x0001 /* AIF3_LOOPBACK */
-#define WM8958_AIF3_LOOPBACK_SHIFT 0 /* AIF3_LOOPBACK */
-#define WM8958_AIF3_LOOPBACK_WIDTH 1 /* AIF3_LOOPBACK */
-
-/*
- * R802 (0x322) - AIF3DAC Data
- */
-#define WM8958_AIF3DAC_DAT_INV 0x0001 /* AIF3DAC_DAT_INV */
-#define WM8958_AIF3DAC_DAT_INV_MASK 0x0001 /* AIF3DAC_DAT_INV */
-#define WM8958_AIF3DAC_DAT_INV_SHIFT 0 /* AIF3DAC_DAT_INV */
-#define WM8958_AIF3DAC_DAT_INV_WIDTH 1 /* AIF3DAC_DAT_INV */
-
-/*
- * R803 (0x323) - AIF3ADC Data
- */
-#define WM8958_AIF3ADC_DAT_INV 0x0001 /* AIF3ADC_DAT_INV */
-#define WM8958_AIF3ADC_DAT_INV_MASK 0x0001 /* AIF3ADC_DAT_INV */
-#define WM8958_AIF3ADC_DAT_INV_SHIFT 0 /* AIF3ADC_DAT_INV */
-#define WM8958_AIF3ADC_DAT_INV_WIDTH 1 /* AIF3ADC_DAT_INV */
-
-/*
- * R1024 (0x400) - AIF1 ADC1 Left Volume
- */
-#define WM8994_AIF1ADC1_VU 0x0100 /* AIF1ADC1_VU */
-#define WM8994_AIF1ADC1_VU_MASK 0x0100 /* AIF1ADC1_VU */
-#define WM8994_AIF1ADC1_VU_SHIFT 8 /* AIF1ADC1_VU */
-#define WM8994_AIF1ADC1_VU_WIDTH 1 /* AIF1ADC1_VU */
-#define WM8994_AIF1ADC1L_VOL_MASK 0x00FF /* AIF1ADC1L_VOL - [7:0] */
-#define WM8994_AIF1ADC1L_VOL_SHIFT 0 /* AIF1ADC1L_VOL - [7:0] */
-#define WM8994_AIF1ADC1L_VOL_WIDTH 8 /* AIF1ADC1L_VOL - [7:0] */
-
-/*
- * R1025 (0x401) - AIF1 ADC1 Right Volume
- */
-#define WM8994_AIF1ADC1_VU 0x0100 /* AIF1ADC1_VU */
-#define WM8994_AIF1ADC1_VU_MASK 0x0100 /* AIF1ADC1_VU */
-#define WM8994_AIF1ADC1_VU_SHIFT 8 /* AIF1ADC1_VU */
-#define WM8994_AIF1ADC1_VU_WIDTH 1 /* AIF1ADC1_VU */
-#define WM8994_AIF1ADC1R_VOL_MASK 0x00FF /* AIF1ADC1R_VOL - [7:0] */
-#define WM8994_AIF1ADC1R_VOL_SHIFT 0 /* AIF1ADC1R_VOL - [7:0] */
-#define WM8994_AIF1ADC1R_VOL_WIDTH 8 /* AIF1ADC1R_VOL - [7:0] */
-
-/*
- * R1026 (0x402) - AIF1 DAC1 Left Volume
- */
-#define WM8994_AIF1DAC1_VU 0x0100 /* AIF1DAC1_VU */
-#define WM8994_AIF1DAC1_VU_MASK 0x0100 /* AIF1DAC1_VU */
-#define WM8994_AIF1DAC1_VU_SHIFT 8 /* AIF1DAC1_VU */
-#define WM8994_AIF1DAC1_VU_WIDTH 1 /* AIF1DAC1_VU */
-#define WM8994_AIF1DAC1L_VOL_MASK 0x00FF /* AIF1DAC1L_VOL - [7:0] */
-#define WM8994_AIF1DAC1L_VOL_SHIFT 0 /* AIF1DAC1L_VOL - [7:0] */
-#define WM8994_AIF1DAC1L_VOL_WIDTH 8 /* AIF1DAC1L_VOL - [7:0] */
-
-/*
- * R1027 (0x403) - AIF1 DAC1 Right Volume
- */
-#define WM8994_AIF1DAC1_VU 0x0100 /* AIF1DAC1_VU */
-#define WM8994_AIF1DAC1_VU_MASK 0x0100 /* AIF1DAC1_VU */
-#define WM8994_AIF1DAC1_VU_SHIFT 8 /* AIF1DAC1_VU */
-#define WM8994_AIF1DAC1_VU_WIDTH 1 /* AIF1DAC1_VU */
-#define WM8994_AIF1DAC1R_VOL_MASK 0x00FF /* AIF1DAC1R_VOL - [7:0] */
-#define WM8994_AIF1DAC1R_VOL_SHIFT 0 /* AIF1DAC1R_VOL - [7:0] */
-#define WM8994_AIF1DAC1R_VOL_WIDTH 8 /* AIF1DAC1R_VOL - [7:0] */
-
-/*
- * R1028 (0x404) - AIF1 ADC2 Left Volume
- */
-#define WM8994_AIF1ADC2_VU 0x0100 /* AIF1ADC2_VU */
-#define WM8994_AIF1ADC2_VU_MASK 0x0100 /* AIF1ADC2_VU */
-#define WM8994_AIF1ADC2_VU_SHIFT 8 /* AIF1ADC2_VU */
-#define WM8994_AIF1ADC2_VU_WIDTH 1 /* AIF1ADC2_VU */
-#define WM8994_AIF1ADC2L_VOL_MASK 0x00FF /* AIF1ADC2L_VOL - [7:0] */
-#define WM8994_AIF1ADC2L_VOL_SHIFT 0 /* AIF1ADC2L_VOL - [7:0] */
-#define WM8994_AIF1ADC2L_VOL_WIDTH 8 /* AIF1ADC2L_VOL - [7:0] */
-
-/*
- * R1029 (0x405) - AIF1 ADC2 Right Volume
- */
-#define WM8994_AIF1ADC2_VU 0x0100 /* AIF1ADC2_VU */
-#define WM8994_AIF1ADC2_VU_MASK 0x0100 /* AIF1ADC2_VU */
-#define WM8994_AIF1ADC2_VU_SHIFT 8 /* AIF1ADC2_VU */
-#define WM8994_AIF1ADC2_VU_WIDTH 1 /* AIF1ADC2_VU */
-#define WM8994_AIF1ADC2R_VOL_MASK 0x00FF /* AIF1ADC2R_VOL - [7:0] */
-#define WM8994_AIF1ADC2R_VOL_SHIFT 0 /* AIF1ADC2R_VOL - [7:0] */
-#define WM8994_AIF1ADC2R_VOL_WIDTH 8 /* AIF1ADC2R_VOL - [7:0] */
-
-/*
- * R1030 (0x406) - AIF1 DAC2 Left Volume
- */
-#define WM8994_AIF1DAC2_VU 0x0100 /* AIF1DAC2_VU */
-#define WM8994_AIF1DAC2_VU_MASK 0x0100 /* AIF1DAC2_VU */
-#define WM8994_AIF1DAC2_VU_SHIFT 8 /* AIF1DAC2_VU */
-#define WM8994_AIF1DAC2_VU_WIDTH 1 /* AIF1DAC2_VU */
-#define WM8994_AIF1DAC2L_VOL_MASK 0x00FF /* AIF1DAC2L_VOL - [7:0] */
-#define WM8994_AIF1DAC2L_VOL_SHIFT 0 /* AIF1DAC2L_VOL - [7:0] */
-#define WM8994_AIF1DAC2L_VOL_WIDTH 8 /* AIF1DAC2L_VOL - [7:0] */
-
-/*
- * R1031 (0x407) - AIF1 DAC2 Right Volume
- */
-#define WM8994_AIF1DAC2_VU 0x0100 /* AIF1DAC2_VU */
-#define WM8994_AIF1DAC2_VU_MASK 0x0100 /* AIF1DAC2_VU */
-#define WM8994_AIF1DAC2_VU_SHIFT 8 /* AIF1DAC2_VU */
-#define WM8994_AIF1DAC2_VU_WIDTH 1 /* AIF1DAC2_VU */
-#define WM8994_AIF1DAC2R_VOL_MASK 0x00FF /* AIF1DAC2R_VOL - [7:0] */
-#define WM8994_AIF1DAC2R_VOL_SHIFT 0 /* AIF1DAC2R_VOL - [7:0] */
-#define WM8994_AIF1DAC2R_VOL_WIDTH 8 /* AIF1DAC2R_VOL - [7:0] */
-
-/*
- * R1040 (0x410) - AIF1 ADC1 Filters
- */
-#define WM8994_AIF1ADC_4FS 0x8000 /* AIF1ADC_4FS */
-#define WM8994_AIF1ADC_4FS_MASK 0x8000 /* AIF1ADC_4FS */
-#define WM8994_AIF1ADC_4FS_SHIFT 15 /* AIF1ADC_4FS */
-#define WM8994_AIF1ADC_4FS_WIDTH 1 /* AIF1ADC_4FS */
-#define WM8994_AIF1ADC1_HPF_CUT_MASK 0x6000 /* AIF1ADC1_HPF_CUT - [14:13] */
-#define WM8994_AIF1ADC1_HPF_CUT_SHIFT 13 /* AIF1ADC1_HPF_CUT - [14:13] */
-#define WM8994_AIF1ADC1_HPF_CUT_WIDTH 2 /* AIF1ADC1_HPF_CUT - [14:13] */
-#define WM8994_AIF1ADC1L_HPF 0x1000 /* AIF1ADC1L_HPF */
-#define WM8994_AIF1ADC1L_HPF_MASK 0x1000 /* AIF1ADC1L_HPF */
-#define WM8994_AIF1ADC1L_HPF_SHIFT 12 /* AIF1ADC1L_HPF */
-#define WM8994_AIF1ADC1L_HPF_WIDTH 1 /* AIF1ADC1L_HPF */
-#define WM8994_AIF1ADC1R_HPF 0x0800 /* AIF1ADC1R_HPF */
-#define WM8994_AIF1ADC1R_HPF_MASK 0x0800 /* AIF1ADC1R_HPF */
-#define WM8994_AIF1ADC1R_HPF_SHIFT 11 /* AIF1ADC1R_HPF */
-#define WM8994_AIF1ADC1R_HPF_WIDTH 1 /* AIF1ADC1R_HPF */
-
-/*
- * R1041 (0x411) - AIF1 ADC2 Filters
- */
-#define WM8994_AIF1ADC2_HPF_CUT_MASK 0x6000 /* AIF1ADC2_HPF_CUT - [14:13] */
-#define WM8994_AIF1ADC2_HPF_CUT_SHIFT 13 /* AIF1ADC2_HPF_CUT - [14:13] */
-#define WM8994_AIF1ADC2_HPF_CUT_WIDTH 2 /* AIF1ADC2_HPF_CUT - [14:13] */
-#define WM8994_AIF1ADC2L_HPF 0x1000 /* AIF1ADC2L_HPF */
-#define WM8994_AIF1ADC2L_HPF_MASK 0x1000 /* AIF1ADC2L_HPF */
-#define WM8994_AIF1ADC2L_HPF_SHIFT 12 /* AIF1ADC2L_HPF */
-#define WM8994_AIF1ADC2L_HPF_WIDTH 1 /* AIF1ADC2L_HPF */
-#define WM8994_AIF1ADC2R_HPF 0x0800 /* AIF1ADC2R_HPF */
-#define WM8994_AIF1ADC2R_HPF_MASK 0x0800 /* AIF1ADC2R_HPF */
-#define WM8994_AIF1ADC2R_HPF_SHIFT 11 /* AIF1ADC2R_HPF */
-#define WM8994_AIF1ADC2R_HPF_WIDTH 1 /* AIF1ADC2R_HPF */
-
-/*
- * R1056 (0x420) - AIF1 DAC1 Filters (1)
- */
-#define WM8994_AIF1DAC1_MUTE 0x0200 /* AIF1DAC1_MUTE */
-#define WM8994_AIF1DAC1_MUTE_MASK 0x0200 /* AIF1DAC1_MUTE */
-#define WM8994_AIF1DAC1_MUTE_SHIFT 9 /* AIF1DAC1_MUTE */
-#define WM8994_AIF1DAC1_MUTE_WIDTH 1 /* AIF1DAC1_MUTE */
-#define WM8994_AIF1DAC1_MONO 0x0080 /* AIF1DAC1_MONO */
-#define WM8994_AIF1DAC1_MONO_MASK 0x0080 /* AIF1DAC1_MONO */
-#define WM8994_AIF1DAC1_MONO_SHIFT 7 /* AIF1DAC1_MONO */
-#define WM8994_AIF1DAC1_MONO_WIDTH 1 /* AIF1DAC1_MONO */
-#define WM8994_AIF1DAC1_MUTERATE 0x0020 /* AIF1DAC1_MUTERATE */
-#define WM8994_AIF1DAC1_MUTERATE_MASK 0x0020 /* AIF1DAC1_MUTERATE */
-#define WM8994_AIF1DAC1_MUTERATE_SHIFT 5 /* AIF1DAC1_MUTERATE */
-#define WM8994_AIF1DAC1_MUTERATE_WIDTH 1 /* AIF1DAC1_MUTERATE */
-#define WM8994_AIF1DAC1_UNMUTE_RAMP 0x0010 /* AIF1DAC1_UNMUTE_RAMP */
-#define WM8994_AIF1DAC1_UNMUTE_RAMP_MASK 0x0010 /* AIF1DAC1_UNMUTE_RAMP */
-#define WM8994_AIF1DAC1_UNMUTE_RAMP_SHIFT 4 /* AIF1DAC1_UNMUTE_RAMP */
-#define WM8994_AIF1DAC1_UNMUTE_RAMP_WIDTH 1 /* AIF1DAC1_UNMUTE_RAMP */
-#define WM8994_AIF1DAC1_DEEMP_MASK 0x0006 /* AIF1DAC1_DEEMP - [2:1] */
-#define WM8994_AIF1DAC1_DEEMP_SHIFT 1 /* AIF1DAC1_DEEMP - [2:1] */
-#define WM8994_AIF1DAC1_DEEMP_WIDTH 2 /* AIF1DAC1_DEEMP - [2:1] */
-
-/*
- * R1057 (0x421) - AIF1 DAC1 Filters (2)
- */
-#define WM8994_AIF1DAC1_3D_GAIN_MASK 0x3E00 /* AIF1DAC1_3D_GAIN - [13:9] */
-#define WM8994_AIF1DAC1_3D_GAIN_SHIFT 9 /* AIF1DAC1_3D_GAIN - [13:9] */
-#define WM8994_AIF1DAC1_3D_GAIN_WIDTH 5 /* AIF1DAC1_3D_GAIN - [13:9] */
-#define WM8994_AIF1DAC1_3D_ENA 0x0100 /* AIF1DAC1_3D_ENA */
-#define WM8994_AIF1DAC1_3D_ENA_MASK 0x0100 /* AIF1DAC1_3D_ENA */
-#define WM8994_AIF1DAC1_3D_ENA_SHIFT 8 /* AIF1DAC1_3D_ENA */
-#define WM8994_AIF1DAC1_3D_ENA_WIDTH 1 /* AIF1DAC1_3D_ENA */
-
-/*
- * R1058 (0x422) - AIF1 DAC2 Filters (1)
- */
-#define WM8994_AIF1DAC2_MUTE 0x0200 /* AIF1DAC2_MUTE */
-#define WM8994_AIF1DAC2_MUTE_MASK 0x0200 /* AIF1DAC2_MUTE */
-#define WM8994_AIF1DAC2_MUTE_SHIFT 9 /* AIF1DAC2_MUTE */
-#define WM8994_AIF1DAC2_MUTE_WIDTH 1 /* AIF1DAC2_MUTE */
-#define WM8994_AIF1DAC2_MONO 0x0080 /* AIF1DAC2_MONO */
-#define WM8994_AIF1DAC2_MONO_MASK 0x0080 /* AIF1DAC2_MONO */
-#define WM8994_AIF1DAC2_MONO_SHIFT 7 /* AIF1DAC2_MONO */
-#define WM8994_AIF1DAC2_MONO_WIDTH 1 /* AIF1DAC2_MONO */
-#define WM8994_AIF1DAC2_MUTERATE 0x0020 /* AIF1DAC2_MUTERATE */
-#define WM8994_AIF1DAC2_MUTERATE_MASK 0x0020 /* AIF1DAC2_MUTERATE */
-#define WM8994_AIF1DAC2_MUTERATE_SHIFT 5 /* AIF1DAC2_MUTERATE */
-#define WM8994_AIF1DAC2_MUTERATE_WIDTH 1 /* AIF1DAC2_MUTERATE */
-#define WM8994_AIF1DAC2_UNMUTE_RAMP 0x0010 /* AIF1DAC2_UNMUTE_RAMP */
-#define WM8994_AIF1DAC2_UNMUTE_RAMP_MASK 0x0010 /* AIF1DAC2_UNMUTE_RAMP */
-#define WM8994_AIF1DAC2_UNMUTE_RAMP_SHIFT 4 /* AIF1DAC2_UNMUTE_RAMP */
-#define WM8994_AIF1DAC2_UNMUTE_RAMP_WIDTH 1 /* AIF1DAC2_UNMUTE_RAMP */
-#define WM8994_AIF1DAC2_DEEMP_MASK 0x0006 /* AIF1DAC2_DEEMP - [2:1] */
-#define WM8994_AIF1DAC2_DEEMP_SHIFT 1 /* AIF1DAC2_DEEMP - [2:1] */
-#define WM8994_AIF1DAC2_DEEMP_WIDTH 2 /* AIF1DAC2_DEEMP - [2:1] */
-
-/*
- * R1059 (0x423) - AIF1 DAC2 Filters (2)
- */
-#define WM8994_AIF1DAC2_3D_GAIN_MASK 0x3E00 /* AIF1DAC2_3D_GAIN - [13:9] */
-#define WM8994_AIF1DAC2_3D_GAIN_SHIFT 9 /* AIF1DAC2_3D_GAIN - [13:9] */
-#define WM8994_AIF1DAC2_3D_GAIN_WIDTH 5 /* AIF1DAC2_3D_GAIN - [13:9] */
-#define WM8994_AIF1DAC2_3D_ENA 0x0100 /* AIF1DAC2_3D_ENA */
-#define WM8994_AIF1DAC2_3D_ENA_MASK 0x0100 /* AIF1DAC2_3D_ENA */
-#define WM8994_AIF1DAC2_3D_ENA_SHIFT 8 /* AIF1DAC2_3D_ENA */
-#define WM8994_AIF1DAC2_3D_ENA_WIDTH 1 /* AIF1DAC2_3D_ENA */
-
-/*
- * R1072 (0x430) - AIF1 DAC1 Noise Gate
- */
-#define WM8958_AIF1DAC1_NG_HLD_MASK 0x0060 /* AIF1DAC1_NG_HLD - [6:5] */
-#define WM8958_AIF1DAC1_NG_HLD_SHIFT 5 /* AIF1DAC1_NG_HLD - [6:5] */
-#define WM8958_AIF1DAC1_NG_HLD_WIDTH 2 /* AIF1DAC1_NG_HLD - [6:5] */
-#define WM8958_AIF1DAC1_NG_THR_MASK 0x000E /* AIF1DAC1_NG_THR - [3:1] */
-#define WM8958_AIF1DAC1_NG_THR_SHIFT 1 /* AIF1DAC1_NG_THR - [3:1] */
-#define WM8958_AIF1DAC1_NG_THR_WIDTH 3 /* AIF1DAC1_NG_THR - [3:1] */
-#define WM8958_AIF1DAC1_NG_ENA 0x0001 /* AIF1DAC1_NG_ENA */
-#define WM8958_AIF1DAC1_NG_ENA_MASK 0x0001 /* AIF1DAC1_NG_ENA */
-#define WM8958_AIF1DAC1_NG_ENA_SHIFT 0 /* AIF1DAC1_NG_ENA */
-#define WM8958_AIF1DAC1_NG_ENA_WIDTH 1 /* AIF1DAC1_NG_ENA */
-
-/*
- * R1073 (0x431) - AIF1 DAC2 Noise Gate
- */
-#define WM8958_AIF1DAC2_NG_HLD_MASK 0x0060 /* AIF1DAC2_NG_HLD - [6:5] */
-#define WM8958_AIF1DAC2_NG_HLD_SHIFT 5 /* AIF1DAC2_NG_HLD - [6:5] */
-#define WM8958_AIF1DAC2_NG_HLD_WIDTH 2 /* AIF1DAC2_NG_HLD - [6:5] */
-#define WM8958_AIF1DAC2_NG_THR_MASK 0x000E /* AIF1DAC2_NG_THR - [3:1] */
-#define WM8958_AIF1DAC2_NG_THR_SHIFT 1 /* AIF1DAC2_NG_THR - [3:1] */
-#define WM8958_AIF1DAC2_NG_THR_WIDTH 3 /* AIF1DAC2_NG_THR - [3:1] */
-#define WM8958_AIF1DAC2_NG_ENA 0x0001 /* AIF1DAC2_NG_ENA */
-#define WM8958_AIF1DAC2_NG_ENA_MASK 0x0001 /* AIF1DAC2_NG_ENA */
-#define WM8958_AIF1DAC2_NG_ENA_SHIFT 0 /* AIF1DAC2_NG_ENA */
-#define WM8958_AIF1DAC2_NG_ENA_WIDTH 1 /* AIF1DAC2_NG_ENA */
-
-/*
- * R1088 (0x440) - AIF1 DRC1 (1)
- */
-#define WM8994_AIF1DRC1_SIG_DET_RMS_MASK 0xF800 /* AIF1DRC1_SIG_DET_RMS - [15:11] */
-#define WM8994_AIF1DRC1_SIG_DET_RMS_SHIFT 11 /* AIF1DRC1_SIG_DET_RMS - [15:11] */
-#define WM8994_AIF1DRC1_SIG_DET_RMS_WIDTH 5 /* AIF1DRC1_SIG_DET_RMS - [15:11] */
-#define WM8994_AIF1DRC1_SIG_DET_PK_MASK 0x0600 /* AIF1DRC1_SIG_DET_PK - [10:9] */
-#define WM8994_AIF1DRC1_SIG_DET_PK_SHIFT 9 /* AIF1DRC1_SIG_DET_PK - [10:9] */
-#define WM8994_AIF1DRC1_SIG_DET_PK_WIDTH 2 /* AIF1DRC1_SIG_DET_PK - [10:9] */
-#define WM8994_AIF1DRC1_NG_ENA 0x0100 /* AIF1DRC1_NG_ENA */
-#define WM8994_AIF1DRC1_NG_ENA_MASK 0x0100 /* AIF1DRC1_NG_ENA */
-#define WM8994_AIF1DRC1_NG_ENA_SHIFT 8 /* AIF1DRC1_NG_ENA */
-#define WM8994_AIF1DRC1_NG_ENA_WIDTH 1 /* AIF1DRC1_NG_ENA */
-#define WM8994_AIF1DRC1_SIG_DET_MODE 0x0080 /* AIF1DRC1_SIG_DET_MODE */
-#define WM8994_AIF1DRC1_SIG_DET_MODE_MASK 0x0080 /* AIF1DRC1_SIG_DET_MODE */
-#define WM8994_AIF1DRC1_SIG_DET_MODE_SHIFT 7 /* AIF1DRC1_SIG_DET_MODE */
-#define WM8994_AIF1DRC1_SIG_DET_MODE_WIDTH 1 /* AIF1DRC1_SIG_DET_MODE */
-#define WM8994_AIF1DRC1_SIG_DET 0x0040 /* AIF1DRC1_SIG_DET */
-#define WM8994_AIF1DRC1_SIG_DET_MASK 0x0040 /* AIF1DRC1_SIG_DET */
-#define WM8994_AIF1DRC1_SIG_DET_SHIFT 6 /* AIF1DRC1_SIG_DET */
-#define WM8994_AIF1DRC1_SIG_DET_WIDTH 1 /* AIF1DRC1_SIG_DET */
-#define WM8994_AIF1DRC1_KNEE2_OP_ENA 0x0020 /* AIF1DRC1_KNEE2_OP_ENA */
-#define WM8994_AIF1DRC1_KNEE2_OP_ENA_MASK 0x0020 /* AIF1DRC1_KNEE2_OP_ENA */
-#define WM8994_AIF1DRC1_KNEE2_OP_ENA_SHIFT 5 /* AIF1DRC1_KNEE2_OP_ENA */
-#define WM8994_AIF1DRC1_KNEE2_OP_ENA_WIDTH 1 /* AIF1DRC1_KNEE2_OP_ENA */
-#define WM8994_AIF1DRC1_QR 0x0010 /* AIF1DRC1_QR */
-#define WM8994_AIF1DRC1_QR_MASK 0x0010 /* AIF1DRC1_QR */
-#define WM8994_AIF1DRC1_QR_SHIFT 4 /* AIF1DRC1_QR */
-#define WM8994_AIF1DRC1_QR_WIDTH 1 /* AIF1DRC1_QR */
-#define WM8994_AIF1DRC1_ANTICLIP 0x0008 /* AIF1DRC1_ANTICLIP */
-#define WM8994_AIF1DRC1_ANTICLIP_MASK 0x0008 /* AIF1DRC1_ANTICLIP */
-#define WM8994_AIF1DRC1_ANTICLIP_SHIFT 3 /* AIF1DRC1_ANTICLIP */
-#define WM8994_AIF1DRC1_ANTICLIP_WIDTH 1 /* AIF1DRC1_ANTICLIP */
-#define WM8994_AIF1DAC1_DRC_ENA 0x0004 /* AIF1DAC1_DRC_ENA */
-#define WM8994_AIF1DAC1_DRC_ENA_MASK 0x0004 /* AIF1DAC1_DRC_ENA */
-#define WM8994_AIF1DAC1_DRC_ENA_SHIFT 2 /* AIF1DAC1_DRC_ENA */
-#define WM8994_AIF1DAC1_DRC_ENA_WIDTH 1 /* AIF1DAC1_DRC_ENA */
-#define WM8994_AIF1ADC1L_DRC_ENA 0x0002 /* AIF1ADC1L_DRC_ENA */
-#define WM8994_AIF1ADC1L_DRC_ENA_MASK 0x0002 /* AIF1ADC1L_DRC_ENA */
-#define WM8994_AIF1ADC1L_DRC_ENA_SHIFT 1 /* AIF1ADC1L_DRC_ENA */
-#define WM8994_AIF1ADC1L_DRC_ENA_WIDTH 1 /* AIF1ADC1L_DRC_ENA */
-#define WM8994_AIF1ADC1R_DRC_ENA 0x0001 /* AIF1ADC1R_DRC_ENA */
-#define WM8994_AIF1ADC1R_DRC_ENA_MASK 0x0001 /* AIF1ADC1R_DRC_ENA */
-#define WM8994_AIF1ADC1R_DRC_ENA_SHIFT 0 /* AIF1ADC1R_DRC_ENA */
-#define WM8994_AIF1ADC1R_DRC_ENA_WIDTH 1 /* AIF1ADC1R_DRC_ENA */
-
-/*
- * R1089 (0x441) - AIF1 DRC1 (2)
- */
-#define WM8994_AIF1DRC1_ATK_MASK 0x1E00 /* AIF1DRC1_ATK - [12:9] */
-#define WM8994_AIF1DRC1_ATK_SHIFT 9 /* AIF1DRC1_ATK - [12:9] */
-#define WM8994_AIF1DRC1_ATK_WIDTH 4 /* AIF1DRC1_ATK - [12:9] */
-#define WM8994_AIF1DRC1_DCY_MASK 0x01E0 /* AIF1DRC1_DCY - [8:5] */
-#define WM8994_AIF1DRC1_DCY_SHIFT 5 /* AIF1DRC1_DCY - [8:5] */
-#define WM8994_AIF1DRC1_DCY_WIDTH 4 /* AIF1DRC1_DCY - [8:5] */
-#define WM8994_AIF1DRC1_MINGAIN_MASK 0x001C /* AIF1DRC1_MINGAIN - [4:2] */
-#define WM8994_AIF1DRC1_MINGAIN_SHIFT 2 /* AIF1DRC1_MINGAIN - [4:2] */
-#define WM8994_AIF1DRC1_MINGAIN_WIDTH 3 /* AIF1DRC1_MINGAIN - [4:2] */
-#define WM8994_AIF1DRC1_MAXGAIN_MASK 0x0003 /* AIF1DRC1_MAXGAIN - [1:0] */
-#define WM8994_AIF1DRC1_MAXGAIN_SHIFT 0 /* AIF1DRC1_MAXGAIN - [1:0] */
-#define WM8994_AIF1DRC1_MAXGAIN_WIDTH 2 /* AIF1DRC1_MAXGAIN - [1:0] */
-
-/*
- * R1090 (0x442) - AIF1 DRC1 (3)
- */
-#define WM8994_AIF1DRC1_NG_MINGAIN_MASK 0xF000 /* AIF1DRC1_NG_MINGAIN - [15:12] */
-#define WM8994_AIF1DRC1_NG_MINGAIN_SHIFT 12 /* AIF1DRC1_NG_MINGAIN - [15:12] */
-#define WM8994_AIF1DRC1_NG_MINGAIN_WIDTH 4 /* AIF1DRC1_NG_MINGAIN - [15:12] */
-#define WM8994_AIF1DRC1_NG_EXP_MASK 0x0C00 /* AIF1DRC1_NG_EXP - [11:10] */
-#define WM8994_AIF1DRC1_NG_EXP_SHIFT 10 /* AIF1DRC1_NG_EXP - [11:10] */
-#define WM8994_AIF1DRC1_NG_EXP_WIDTH 2 /* AIF1DRC1_NG_EXP - [11:10] */
-#define WM8994_AIF1DRC1_QR_THR_MASK 0x0300 /* AIF1DRC1_QR_THR - [9:8] */
-#define WM8994_AIF1DRC1_QR_THR_SHIFT 8 /* AIF1DRC1_QR_THR - [9:8] */
-#define WM8994_AIF1DRC1_QR_THR_WIDTH 2 /* AIF1DRC1_QR_THR - [9:8] */
-#define WM8994_AIF1DRC1_QR_DCY_MASK 0x00C0 /* AIF1DRC1_QR_DCY - [7:6] */
-#define WM8994_AIF1DRC1_QR_DCY_SHIFT 6 /* AIF1DRC1_QR_DCY - [7:6] */
-#define WM8994_AIF1DRC1_QR_DCY_WIDTH 2 /* AIF1DRC1_QR_DCY - [7:6] */
-#define WM8994_AIF1DRC1_HI_COMP_MASK 0x0038 /* AIF1DRC1_HI_COMP - [5:3] */
-#define WM8994_AIF1DRC1_HI_COMP_SHIFT 3 /* AIF1DRC1_HI_COMP - [5:3] */
-#define WM8994_AIF1DRC1_HI_COMP_WIDTH 3 /* AIF1DRC1_HI_COMP - [5:3] */
-#define WM8994_AIF1DRC1_LO_COMP_MASK 0x0007 /* AIF1DRC1_LO_COMP - [2:0] */
-#define WM8994_AIF1DRC1_LO_COMP_SHIFT 0 /* AIF1DRC1_LO_COMP - [2:0] */
-#define WM8994_AIF1DRC1_LO_COMP_WIDTH 3 /* AIF1DRC1_LO_COMP - [2:0] */
-
-/*
- * R1091 (0x443) - AIF1 DRC1 (4)
- */
-#define WM8994_AIF1DRC1_KNEE_IP_MASK 0x07E0 /* AIF1DRC1_KNEE_IP - [10:5] */
-#define WM8994_AIF1DRC1_KNEE_IP_SHIFT 5 /* AIF1DRC1_KNEE_IP - [10:5] */
-#define WM8994_AIF1DRC1_KNEE_IP_WIDTH 6 /* AIF1DRC1_KNEE_IP - [10:5] */
-#define WM8994_AIF1DRC1_KNEE_OP_MASK 0x001F /* AIF1DRC1_KNEE_OP - [4:0] */
-#define WM8994_AIF1DRC1_KNEE_OP_SHIFT 0 /* AIF1DRC1_KNEE_OP - [4:0] */
-#define WM8994_AIF1DRC1_KNEE_OP_WIDTH 5 /* AIF1DRC1_KNEE_OP - [4:0] */
-
-/*
- * R1092 (0x444) - AIF1 DRC1 (5)
- */
-#define WM8994_AIF1DRC1_KNEE2_IP_MASK 0x03E0 /* AIF1DRC1_KNEE2_IP - [9:5] */
-#define WM8994_AIF1DRC1_KNEE2_IP_SHIFT 5 /* AIF1DRC1_KNEE2_IP - [9:5] */
-#define WM8994_AIF1DRC1_KNEE2_IP_WIDTH 5 /* AIF1DRC1_KNEE2_IP - [9:5] */
-#define WM8994_AIF1DRC1_KNEE2_OP_MASK 0x001F /* AIF1DRC1_KNEE2_OP - [4:0] */
-#define WM8994_AIF1DRC1_KNEE2_OP_SHIFT 0 /* AIF1DRC1_KNEE2_OP - [4:0] */
-#define WM8994_AIF1DRC1_KNEE2_OP_WIDTH 5 /* AIF1DRC1_KNEE2_OP - [4:0] */
-
-/*
- * R1104 (0x450) - AIF1 DRC2 (1)
- */
-#define WM8994_AIF1DRC2_SIG_DET_RMS_MASK 0xF800 /* AIF1DRC2_SIG_DET_RMS - [15:11] */
-#define WM8994_AIF1DRC2_SIG_DET_RMS_SHIFT 11 /* AIF1DRC2_SIG_DET_RMS - [15:11] */
-#define WM8994_AIF1DRC2_SIG_DET_RMS_WIDTH 5 /* AIF1DRC2_SIG_DET_RMS - [15:11] */
-#define WM8994_AIF1DRC2_SIG_DET_PK_MASK 0x0600 /* AIF1DRC2_SIG_DET_PK - [10:9] */
-#define WM8994_AIF1DRC2_SIG_DET_PK_SHIFT 9 /* AIF1DRC2_SIG_DET_PK - [10:9] */
-#define WM8994_AIF1DRC2_SIG_DET_PK_WIDTH 2 /* AIF1DRC2_SIG_DET_PK - [10:9] */
-#define WM8994_AIF1DRC2_NG_ENA 0x0100 /* AIF1DRC2_NG_ENA */
-#define WM8994_AIF1DRC2_NG_ENA_MASK 0x0100 /* AIF1DRC2_NG_ENA */
-#define WM8994_AIF1DRC2_NG_ENA_SHIFT 8 /* AIF1DRC2_NG_ENA */
-#define WM8994_AIF1DRC2_NG_ENA_WIDTH 1 /* AIF1DRC2_NG_ENA */
-#define WM8994_AIF1DRC2_SIG_DET_MODE 0x0080 /* AIF1DRC2_SIG_DET_MODE */
-#define WM8994_AIF1DRC2_SIG_DET_MODE_MASK 0x0080 /* AIF1DRC2_SIG_DET_MODE */
-#define WM8994_AIF1DRC2_SIG_DET_MODE_SHIFT 7 /* AIF1DRC2_SIG_DET_MODE */
-#define WM8994_AIF1DRC2_SIG_DET_MODE_WIDTH 1 /* AIF1DRC2_SIG_DET_MODE */
-#define WM8994_AIF1DRC2_SIG_DET 0x0040 /* AIF1DRC2_SIG_DET */
-#define WM8994_AIF1DRC2_SIG_DET_MASK 0x0040 /* AIF1DRC2_SIG_DET */
-#define WM8994_AIF1DRC2_SIG_DET_SHIFT 6 /* AIF1DRC2_SIG_DET */
-#define WM8994_AIF1DRC2_SIG_DET_WIDTH 1 /* AIF1DRC2_SIG_DET */
-#define WM8994_AIF1DRC2_KNEE2_OP_ENA 0x0020 /* AIF1DRC2_KNEE2_OP_ENA */
-#define WM8994_AIF1DRC2_KNEE2_OP_ENA_MASK 0x0020 /* AIF1DRC2_KNEE2_OP_ENA */
-#define WM8994_AIF1DRC2_KNEE2_OP_ENA_SHIFT 5 /* AIF1DRC2_KNEE2_OP_ENA */
-#define WM8994_AIF1DRC2_KNEE2_OP_ENA_WIDTH 1 /* AIF1DRC2_KNEE2_OP_ENA */
-#define WM8994_AIF1DRC2_QR 0x0010 /* AIF1DRC2_QR */
-#define WM8994_AIF1DRC2_QR_MASK 0x0010 /* AIF1DRC2_QR */
-#define WM8994_AIF1DRC2_QR_SHIFT 4 /* AIF1DRC2_QR */
-#define WM8994_AIF1DRC2_QR_WIDTH 1 /* AIF1DRC2_QR */
-#define WM8994_AIF1DRC2_ANTICLIP 0x0008 /* AIF1DRC2_ANTICLIP */
-#define WM8994_AIF1DRC2_ANTICLIP_MASK 0x0008 /* AIF1DRC2_ANTICLIP */
-#define WM8994_AIF1DRC2_ANTICLIP_SHIFT 3 /* AIF1DRC2_ANTICLIP */
-#define WM8994_AIF1DRC2_ANTICLIP_WIDTH 1 /* AIF1DRC2_ANTICLIP */
-#define WM8994_AIF1DAC2_DRC_ENA 0x0004 /* AIF1DAC2_DRC_ENA */
-#define WM8994_AIF1DAC2_DRC_ENA_MASK 0x0004 /* AIF1DAC2_DRC_ENA */
-#define WM8994_AIF1DAC2_DRC_ENA_SHIFT 2 /* AIF1DAC2_DRC_ENA */
-#define WM8994_AIF1DAC2_DRC_ENA_WIDTH 1 /* AIF1DAC2_DRC_ENA */
-#define WM8994_AIF1ADC2L_DRC_ENA 0x0002 /* AIF1ADC2L_DRC_ENA */
-#define WM8994_AIF1ADC2L_DRC_ENA_MASK 0x0002 /* AIF1ADC2L_DRC_ENA */
-#define WM8994_AIF1ADC2L_DRC_ENA_SHIFT 1 /* AIF1ADC2L_DRC_ENA */
-#define WM8994_AIF1ADC2L_DRC_ENA_WIDTH 1 /* AIF1ADC2L_DRC_ENA */
-#define WM8994_AIF1ADC2R_DRC_ENA 0x0001 /* AIF1ADC2R_DRC_ENA */
-#define WM8994_AIF1ADC2R_DRC_ENA_MASK 0x0001 /* AIF1ADC2R_DRC_ENA */
-#define WM8994_AIF1ADC2R_DRC_ENA_SHIFT 0 /* AIF1ADC2R_DRC_ENA */
-#define WM8994_AIF1ADC2R_DRC_ENA_WIDTH 1 /* AIF1ADC2R_DRC_ENA */
-
-/*
- * R1105 (0x451) - AIF1 DRC2 (2)
- */
-#define WM8994_AIF1DRC2_ATK_MASK 0x1E00 /* AIF1DRC2_ATK - [12:9] */
-#define WM8994_AIF1DRC2_ATK_SHIFT 9 /* AIF1DRC2_ATK - [12:9] */
-#define WM8994_AIF1DRC2_ATK_WIDTH 4 /* AIF1DRC2_ATK - [12:9] */
-#define WM8994_AIF1DRC2_DCY_MASK 0x01E0 /* AIF1DRC2_DCY - [8:5] */
-#define WM8994_AIF1DRC2_DCY_SHIFT 5 /* AIF1DRC2_DCY - [8:5] */
-#define WM8994_AIF1DRC2_DCY_WIDTH 4 /* AIF1DRC2_DCY - [8:5] */
-#define WM8994_AIF1DRC2_MINGAIN_MASK 0x001C /* AIF1DRC2_MINGAIN - [4:2] */
-#define WM8994_AIF1DRC2_MINGAIN_SHIFT 2 /* AIF1DRC2_MINGAIN - [4:2] */
-#define WM8994_AIF1DRC2_MINGAIN_WIDTH 3 /* AIF1DRC2_MINGAIN - [4:2] */
-#define WM8994_AIF1DRC2_MAXGAIN_MASK 0x0003 /* AIF1DRC2_MAXGAIN - [1:0] */
-#define WM8994_AIF1DRC2_MAXGAIN_SHIFT 0 /* AIF1DRC2_MAXGAIN - [1:0] */
-#define WM8994_AIF1DRC2_MAXGAIN_WIDTH 2 /* AIF1DRC2_MAXGAIN - [1:0] */
-
-/*
- * R1106 (0x452) - AIF1 DRC2 (3)
- */
-#define WM8994_AIF1DRC2_NG_MINGAIN_MASK 0xF000 /* AIF1DRC2_NG_MINGAIN - [15:12] */
-#define WM8994_AIF1DRC2_NG_MINGAIN_SHIFT 12 /* AIF1DRC2_NG_MINGAIN - [15:12] */
-#define WM8994_AIF1DRC2_NG_MINGAIN_WIDTH 4 /* AIF1DRC2_NG_MINGAIN - [15:12] */
-#define WM8994_AIF1DRC2_NG_EXP_MASK 0x0C00 /* AIF1DRC2_NG_EXP - [11:10] */
-#define WM8994_AIF1DRC2_NG_EXP_SHIFT 10 /* AIF1DRC2_NG_EXP - [11:10] */
-#define WM8994_AIF1DRC2_NG_EXP_WIDTH 2 /* AIF1DRC2_NG_EXP - [11:10] */
-#define WM8994_AIF1DRC2_QR_THR_MASK 0x0300 /* AIF1DRC2_QR_THR - [9:8] */
-#define WM8994_AIF1DRC2_QR_THR_SHIFT 8 /* AIF1DRC2_QR_THR - [9:8] */
-#define WM8994_AIF1DRC2_QR_THR_WIDTH 2 /* AIF1DRC2_QR_THR - [9:8] */
-#define WM8994_AIF1DRC2_QR_DCY_MASK 0x00C0 /* AIF1DRC2_QR_DCY - [7:6] */
-#define WM8994_AIF1DRC2_QR_DCY_SHIFT 6 /* AIF1DRC2_QR_DCY - [7:6] */
-#define WM8994_AIF1DRC2_QR_DCY_WIDTH 2 /* AIF1DRC2_QR_DCY - [7:6] */
-#define WM8994_AIF1DRC2_HI_COMP_MASK 0x0038 /* AIF1DRC2_HI_COMP - [5:3] */
-#define WM8994_AIF1DRC2_HI_COMP_SHIFT 3 /* AIF1DRC2_HI_COMP - [5:3] */
-#define WM8994_AIF1DRC2_HI_COMP_WIDTH 3 /* AIF1DRC2_HI_COMP - [5:3] */
-#define WM8994_AIF1DRC2_LO_COMP_MASK 0x0007 /* AIF1DRC2_LO_COMP - [2:0] */
-#define WM8994_AIF1DRC2_LO_COMP_SHIFT 0 /* AIF1DRC2_LO_COMP - [2:0] */
-#define WM8994_AIF1DRC2_LO_COMP_WIDTH 3 /* AIF1DRC2_LO_COMP - [2:0] */
-
-/*
- * R1107 (0x453) - AIF1 DRC2 (4)
- */
-#define WM8994_AIF1DRC2_KNEE_IP_MASK 0x07E0 /* AIF1DRC2_KNEE_IP - [10:5] */
-#define WM8994_AIF1DRC2_KNEE_IP_SHIFT 5 /* AIF1DRC2_KNEE_IP - [10:5] */
-#define WM8994_AIF1DRC2_KNEE_IP_WIDTH 6 /* AIF1DRC2_KNEE_IP - [10:5] */
-#define WM8994_AIF1DRC2_KNEE_OP_MASK 0x001F /* AIF1DRC2_KNEE_OP - [4:0] */
-#define WM8994_AIF1DRC2_KNEE_OP_SHIFT 0 /* AIF1DRC2_KNEE_OP - [4:0] */
-#define WM8994_AIF1DRC2_KNEE_OP_WIDTH 5 /* AIF1DRC2_KNEE_OP - [4:0] */
-
-/*
- * R1108 (0x454) - AIF1 DRC2 (5)
- */
-#define WM8994_AIF1DRC2_KNEE2_IP_MASK 0x03E0 /* AIF1DRC2_KNEE2_IP - [9:5] */
-#define WM8994_AIF1DRC2_KNEE2_IP_SHIFT 5 /* AIF1DRC2_KNEE2_IP - [9:5] */
-#define WM8994_AIF1DRC2_KNEE2_IP_WIDTH 5 /* AIF1DRC2_KNEE2_IP - [9:5] */
-#define WM8994_AIF1DRC2_KNEE2_OP_MASK 0x001F /* AIF1DRC2_KNEE2_OP - [4:0] */
-#define WM8994_AIF1DRC2_KNEE2_OP_SHIFT 0 /* AIF1DRC2_KNEE2_OP - [4:0] */
-#define WM8994_AIF1DRC2_KNEE2_OP_WIDTH 5 /* AIF1DRC2_KNEE2_OP - [4:0] */
-
-/*
- * R1152 (0x480) - AIF1 DAC1 EQ Gains (1)
- */
-#define WM8994_AIF1DAC1_EQ_B1_GAIN_MASK 0xF800 /* AIF1DAC1_EQ_B1_GAIN - [15:11] */
-#define WM8994_AIF1DAC1_EQ_B1_GAIN_SHIFT 11 /* AIF1DAC1_EQ_B1_GAIN - [15:11] */
-#define WM8994_AIF1DAC1_EQ_B1_GAIN_WIDTH 5 /* AIF1DAC1_EQ_B1_GAIN - [15:11] */
-#define WM8994_AIF1DAC1_EQ_B2_GAIN_MASK 0x07C0 /* AIF1DAC1_EQ_B2_GAIN - [10:6] */
-#define WM8994_AIF1DAC1_EQ_B2_GAIN_SHIFT 6 /* AIF1DAC1_EQ_B2_GAIN - [10:6] */
-#define WM8994_AIF1DAC1_EQ_B2_GAIN_WIDTH 5 /* AIF1DAC1_EQ_B2_GAIN - [10:6] */
-#define WM8994_AIF1DAC1_EQ_B3_GAIN_MASK 0x003E /* AIF1DAC1_EQ_B3_GAIN - [5:1] */
-#define WM8994_AIF1DAC1_EQ_B3_GAIN_SHIFT 1 /* AIF1DAC1_EQ_B3_GAIN - [5:1] */
-#define WM8994_AIF1DAC1_EQ_B3_GAIN_WIDTH 5 /* AIF1DAC1_EQ_B3_GAIN - [5:1] */
-#define WM8994_AIF1DAC1_EQ_ENA 0x0001 /* AIF1DAC1_EQ_ENA */
-#define WM8994_AIF1DAC1_EQ_ENA_MASK 0x0001 /* AIF1DAC1_EQ_ENA */
-#define WM8994_AIF1DAC1_EQ_ENA_SHIFT 0 /* AIF1DAC1_EQ_ENA */
-#define WM8994_AIF1DAC1_EQ_ENA_WIDTH 1 /* AIF1DAC1_EQ_ENA */
-
-/*
- * R1153 (0x481) - AIF1 DAC1 EQ Gains (2)
- */
-#define WM8994_AIF1DAC1_EQ_B4_GAIN_MASK 0xF800 /* AIF1DAC1_EQ_B4_GAIN - [15:11] */
-#define WM8994_AIF1DAC1_EQ_B4_GAIN_SHIFT 11 /* AIF1DAC1_EQ_B4_GAIN - [15:11] */
-#define WM8994_AIF1DAC1_EQ_B4_GAIN_WIDTH 5 /* AIF1DAC1_EQ_B4_GAIN - [15:11] */
-#define WM8994_AIF1DAC1_EQ_B5_GAIN_MASK 0x07C0 /* AIF1DAC1_EQ_B5_GAIN - [10:6] */
-#define WM8994_AIF1DAC1_EQ_B5_GAIN_SHIFT 6 /* AIF1DAC1_EQ_B5_GAIN - [10:6] */
-#define WM8994_AIF1DAC1_EQ_B5_GAIN_WIDTH 5 /* AIF1DAC1_EQ_B5_GAIN - [10:6] */
-
-/*
- * R1154 (0x482) - AIF1 DAC1 EQ Band 1 A
- */
-#define WM8994_AIF1DAC1_EQ_B1_A_MASK 0xFFFF /* AIF1DAC1_EQ_B1_A - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B1_A_SHIFT 0 /* AIF1DAC1_EQ_B1_A - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B1_A_WIDTH 16 /* AIF1DAC1_EQ_B1_A - [15:0] */
-
-/*
- * R1155 (0x483) - AIF1 DAC1 EQ Band 1 B
- */
-#define WM8994_AIF1DAC1_EQ_B1_B_MASK 0xFFFF /* AIF1DAC1_EQ_B1_B - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B1_B_SHIFT 0 /* AIF1DAC1_EQ_B1_B - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B1_B_WIDTH 16 /* AIF1DAC1_EQ_B1_B - [15:0] */
-
-/*
- * R1156 (0x484) - AIF1 DAC1 EQ Band 1 PG
- */
-#define WM8994_AIF1DAC1_EQ_B1_PG_MASK 0xFFFF /* AIF1DAC1_EQ_B1_PG - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B1_PG_SHIFT 0 /* AIF1DAC1_EQ_B1_PG - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B1_PG_WIDTH 16 /* AIF1DAC1_EQ_B1_PG - [15:0] */
-
-/*
- * R1157 (0x485) - AIF1 DAC1 EQ Band 2 A
- */
-#define WM8994_AIF1DAC1_EQ_B2_A_MASK 0xFFFF /* AIF1DAC1_EQ_B2_A - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B2_A_SHIFT 0 /* AIF1DAC1_EQ_B2_A - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B2_A_WIDTH 16 /* AIF1DAC1_EQ_B2_A - [15:0] */
-
-/*
- * R1158 (0x486) - AIF1 DAC1 EQ Band 2 B
- */
-#define WM8994_AIF1DAC1_EQ_B2_B_MASK 0xFFFF /* AIF1DAC1_EQ_B2_B - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B2_B_SHIFT 0 /* AIF1DAC1_EQ_B2_B - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B2_B_WIDTH 16 /* AIF1DAC1_EQ_B2_B - [15:0] */
-
-/*
- * R1159 (0x487) - AIF1 DAC1 EQ Band 2 C
- */
-#define WM8994_AIF1DAC1_EQ_B2_C_MASK 0xFFFF /* AIF1DAC1_EQ_B2_C - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B2_C_SHIFT 0 /* AIF1DAC1_EQ_B2_C - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B2_C_WIDTH 16 /* AIF1DAC1_EQ_B2_C - [15:0] */
-
-/*
- * R1160 (0x488) - AIF1 DAC1 EQ Band 2 PG
- */
-#define WM8994_AIF1DAC1_EQ_B2_PG_MASK 0xFFFF /* AIF1DAC1_EQ_B2_PG - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B2_PG_SHIFT 0 /* AIF1DAC1_EQ_B2_PG - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B2_PG_WIDTH 16 /* AIF1DAC1_EQ_B2_PG - [15:0] */
-
-/*
- * R1161 (0x489) - AIF1 DAC1 EQ Band 3 A
- */
-#define WM8994_AIF1DAC1_EQ_B3_A_MASK 0xFFFF /* AIF1DAC1_EQ_B3_A - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B3_A_SHIFT 0 /* AIF1DAC1_EQ_B3_A - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B3_A_WIDTH 16 /* AIF1DAC1_EQ_B3_A - [15:0] */
-
-/*
- * R1162 (0x48A) - AIF1 DAC1 EQ Band 3 B
- */
-#define WM8994_AIF1DAC1_EQ_B3_B_MASK 0xFFFF /* AIF1DAC1_EQ_B3_B - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B3_B_SHIFT 0 /* AIF1DAC1_EQ_B3_B - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B3_B_WIDTH 16 /* AIF1DAC1_EQ_B3_B - [15:0] */
-
-/*
- * R1163 (0x48B) - AIF1 DAC1 EQ Band 3 C
- */
-#define WM8994_AIF1DAC1_EQ_B3_C_MASK 0xFFFF /* AIF1DAC1_EQ_B3_C - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B3_C_SHIFT 0 /* AIF1DAC1_EQ_B3_C - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B3_C_WIDTH 16 /* AIF1DAC1_EQ_B3_C - [15:0] */
-
-/*
- * R1164 (0x48C) - AIF1 DAC1 EQ Band 3 PG
- */
-#define WM8994_AIF1DAC1_EQ_B3_PG_MASK 0xFFFF /* AIF1DAC1_EQ_B3_PG - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B3_PG_SHIFT 0 /* AIF1DAC1_EQ_B3_PG - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B3_PG_WIDTH 16 /* AIF1DAC1_EQ_B3_PG - [15:0] */
-
-/*
- * R1165 (0x48D) - AIF1 DAC1 EQ Band 4 A
- */
-#define WM8994_AIF1DAC1_EQ_B4_A_MASK 0xFFFF /* AIF1DAC1_EQ_B4_A - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B4_A_SHIFT 0 /* AIF1DAC1_EQ_B4_A - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B4_A_WIDTH 16 /* AIF1DAC1_EQ_B4_A - [15:0] */
-
-/*
- * R1166 (0x48E) - AIF1 DAC1 EQ Band 4 B
- */
-#define WM8994_AIF1DAC1_EQ_B4_B_MASK 0xFFFF /* AIF1DAC1_EQ_B4_B - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B4_B_SHIFT 0 /* AIF1DAC1_EQ_B4_B - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B4_B_WIDTH 16 /* AIF1DAC1_EQ_B4_B - [15:0] */
-
-/*
- * R1167 (0x48F) - AIF1 DAC1 EQ Band 4 C
- */
-#define WM8994_AIF1DAC1_EQ_B4_C_MASK 0xFFFF /* AIF1DAC1_EQ_B4_C - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B4_C_SHIFT 0 /* AIF1DAC1_EQ_B4_C - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B4_C_WIDTH 16 /* AIF1DAC1_EQ_B4_C - [15:0] */
-
-/*
- * R1168 (0x490) - AIF1 DAC1 EQ Band 4 PG
- */
-#define WM8994_AIF1DAC1_EQ_B4_PG_MASK 0xFFFF /* AIF1DAC1_EQ_B4_PG - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B4_PG_SHIFT 0 /* AIF1DAC1_EQ_B4_PG - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B4_PG_WIDTH 16 /* AIF1DAC1_EQ_B4_PG - [15:0] */
-
-/*
- * R1169 (0x491) - AIF1 DAC1 EQ Band 5 A
- */
-#define WM8994_AIF1DAC1_EQ_B5_A_MASK 0xFFFF /* AIF1DAC1_EQ_B5_A - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B5_A_SHIFT 0 /* AIF1DAC1_EQ_B5_A - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B5_A_WIDTH 16 /* AIF1DAC1_EQ_B5_A - [15:0] */
-
-/*
- * R1170 (0x492) - AIF1 DAC1 EQ Band 5 B
- */
-#define WM8994_AIF1DAC1_EQ_B5_B_MASK 0xFFFF /* AIF1DAC1_EQ_B5_B - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B5_B_SHIFT 0 /* AIF1DAC1_EQ_B5_B - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B5_B_WIDTH 16 /* AIF1DAC1_EQ_B5_B - [15:0] */
-
-/*
- * R1171 (0x493) - AIF1 DAC1 EQ Band 5 PG
- */
-#define WM8994_AIF1DAC1_EQ_B5_PG_MASK 0xFFFF /* AIF1DAC1_EQ_B5_PG - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B5_PG_SHIFT 0 /* AIF1DAC1_EQ_B5_PG - [15:0] */
-#define WM8994_AIF1DAC1_EQ_B5_PG_WIDTH 16 /* AIF1DAC1_EQ_B5_PG - [15:0] */
-
-/*
- * R1184 (0x4A0) - AIF1 DAC2 EQ Gains (1)
- */
-#define WM8994_AIF1DAC2_EQ_B1_GAIN_MASK 0xF800 /* AIF1DAC2_EQ_B1_GAIN - [15:11] */
-#define WM8994_AIF1DAC2_EQ_B1_GAIN_SHIFT 11 /* AIF1DAC2_EQ_B1_GAIN - [15:11] */
-#define WM8994_AIF1DAC2_EQ_B1_GAIN_WIDTH 5 /* AIF1DAC2_EQ_B1_GAIN - [15:11] */
-#define WM8994_AIF1DAC2_EQ_B2_GAIN_MASK 0x07C0 /* AIF1DAC2_EQ_B2_GAIN - [10:6] */
-#define WM8994_AIF1DAC2_EQ_B2_GAIN_SHIFT 6 /* AIF1DAC2_EQ_B2_GAIN - [10:6] */
-#define WM8994_AIF1DAC2_EQ_B2_GAIN_WIDTH 5 /* AIF1DAC2_EQ_B2_GAIN - [10:6] */
-#define WM8994_AIF1DAC2_EQ_B3_GAIN_MASK 0x003E /* AIF1DAC2_EQ_B3_GAIN - [5:1] */
-#define WM8994_AIF1DAC2_EQ_B3_GAIN_SHIFT 1 /* AIF1DAC2_EQ_B3_GAIN - [5:1] */
-#define WM8994_AIF1DAC2_EQ_B3_GAIN_WIDTH 5 /* AIF1DAC2_EQ_B3_GAIN - [5:1] */
-#define WM8994_AIF1DAC2_EQ_ENA 0x0001 /* AIF1DAC2_EQ_ENA */
-#define WM8994_AIF1DAC2_EQ_ENA_MASK 0x0001 /* AIF1DAC2_EQ_ENA */
-#define WM8994_AIF1DAC2_EQ_ENA_SHIFT 0 /* AIF1DAC2_EQ_ENA */
-#define WM8994_AIF1DAC2_EQ_ENA_WIDTH 1 /* AIF1DAC2_EQ_ENA */
-
-/*
- * R1185 (0x4A1) - AIF1 DAC2 EQ Gains (2)
- */
-#define WM8994_AIF1DAC2_EQ_B4_GAIN_MASK 0xF800 /* AIF1DAC2_EQ_B4_GAIN - [15:11] */
-#define WM8994_AIF1DAC2_EQ_B4_GAIN_SHIFT 11 /* AIF1DAC2_EQ_B4_GAIN - [15:11] */
-#define WM8994_AIF1DAC2_EQ_B4_GAIN_WIDTH 5 /* AIF1DAC2_EQ_B4_GAIN - [15:11] */
-#define WM8994_AIF1DAC2_EQ_B5_GAIN_MASK 0x07C0 /* AIF1DAC2_EQ_B5_GAIN - [10:6] */
-#define WM8994_AIF1DAC2_EQ_B5_GAIN_SHIFT 6 /* AIF1DAC2_EQ_B5_GAIN - [10:6] */
-#define WM8994_AIF1DAC2_EQ_B5_GAIN_WIDTH 5 /* AIF1DAC2_EQ_B5_GAIN - [10:6] */
-
-/*
- * R1186 (0x4A2) - AIF1 DAC2 EQ Band 1 A
- */
-#define WM8994_AIF1DAC2_EQ_B1_A_MASK 0xFFFF /* AIF1DAC2_EQ_B1_A - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B1_A_SHIFT 0 /* AIF1DAC2_EQ_B1_A - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B1_A_WIDTH 16 /* AIF1DAC2_EQ_B1_A - [15:0] */
-
-/*
- * R1187 (0x4A3) - AIF1 DAC2 EQ Band 1 B
- */
-#define WM8994_AIF1DAC2_EQ_B1_B_MASK 0xFFFF /* AIF1DAC2_EQ_B1_B - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B1_B_SHIFT 0 /* AIF1DAC2_EQ_B1_B - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B1_B_WIDTH 16 /* AIF1DAC2_EQ_B1_B - [15:0] */
-
-/*
- * R1188 (0x4A4) - AIF1 DAC2 EQ Band 1 PG
- */
-#define WM8994_AIF1DAC2_EQ_B1_PG_MASK 0xFFFF /* AIF1DAC2_EQ_B1_PG - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B1_PG_SHIFT 0 /* AIF1DAC2_EQ_B1_PG - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B1_PG_WIDTH 16 /* AIF1DAC2_EQ_B1_PG - [15:0] */
-
-/*
- * R1189 (0x4A5) - AIF1 DAC2 EQ Band 2 A
- */
-#define WM8994_AIF1DAC2_EQ_B2_A_MASK 0xFFFF /* AIF1DAC2_EQ_B2_A - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B2_A_SHIFT 0 /* AIF1DAC2_EQ_B2_A - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B2_A_WIDTH 16 /* AIF1DAC2_EQ_B2_A - [15:0] */
-
-/*
- * R1190 (0x4A6) - AIF1 DAC2 EQ Band 2 B
- */
-#define WM8994_AIF1DAC2_EQ_B2_B_MASK 0xFFFF /* AIF1DAC2_EQ_B2_B - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B2_B_SHIFT 0 /* AIF1DAC2_EQ_B2_B - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B2_B_WIDTH 16 /* AIF1DAC2_EQ_B2_B - [15:0] */
-
-/*
- * R1191 (0x4A7) - AIF1 DAC2 EQ Band 2 C
- */
-#define WM8994_AIF1DAC2_EQ_B2_C_MASK 0xFFFF /* AIF1DAC2_EQ_B2_C - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B2_C_SHIFT 0 /* AIF1DAC2_EQ_B2_C - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B2_C_WIDTH 16 /* AIF1DAC2_EQ_B2_C - [15:0] */
-
-/*
- * R1192 (0x4A8) - AIF1 DAC2 EQ Band 2 PG
- */
-#define WM8994_AIF1DAC2_EQ_B2_PG_MASK 0xFFFF /* AIF1DAC2_EQ_B2_PG - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B2_PG_SHIFT 0 /* AIF1DAC2_EQ_B2_PG - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B2_PG_WIDTH 16 /* AIF1DAC2_EQ_B2_PG - [15:0] */
-
-/*
- * R1193 (0x4A9) - AIF1 DAC2 EQ Band 3 A
- */
-#define WM8994_AIF1DAC2_EQ_B3_A_MASK 0xFFFF /* AIF1DAC2_EQ_B3_A - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B3_A_SHIFT 0 /* AIF1DAC2_EQ_B3_A - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B3_A_WIDTH 16 /* AIF1DAC2_EQ_B3_A - [15:0] */
-
-/*
- * R1194 (0x4AA) - AIF1 DAC2 EQ Band 3 B
- */
-#define WM8994_AIF1DAC2_EQ_B3_B_MASK 0xFFFF /* AIF1DAC2_EQ_B3_B - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B3_B_SHIFT 0 /* AIF1DAC2_EQ_B3_B - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B3_B_WIDTH 16 /* AIF1DAC2_EQ_B3_B - [15:0] */
-
-/*
- * R1195 (0x4AB) - AIF1 DAC2 EQ Band 3 C
- */
-#define WM8994_AIF1DAC2_EQ_B3_C_MASK 0xFFFF /* AIF1DAC2_EQ_B3_C - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B3_C_SHIFT 0 /* AIF1DAC2_EQ_B3_C - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B3_C_WIDTH 16 /* AIF1DAC2_EQ_B3_C - [15:0] */
-
-/*
- * R1196 (0x4AC) - AIF1 DAC2 EQ Band 3 PG
- */
-#define WM8994_AIF1DAC2_EQ_B3_PG_MASK 0xFFFF /* AIF1DAC2_EQ_B3_PG - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B3_PG_SHIFT 0 /* AIF1DAC2_EQ_B3_PG - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B3_PG_WIDTH 16 /* AIF1DAC2_EQ_B3_PG - [15:0] */
-
-/*
- * R1197 (0x4AD) - AIF1 DAC2 EQ Band 4 A
- */
-#define WM8994_AIF1DAC2_EQ_B4_A_MASK 0xFFFF /* AIF1DAC2_EQ_B4_A - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B4_A_SHIFT 0 /* AIF1DAC2_EQ_B4_A - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B4_A_WIDTH 16 /* AIF1DAC2_EQ_B4_A - [15:0] */
-
-/*
- * R1198 (0x4AE) - AIF1 DAC2 EQ Band 4 B
- */
-#define WM8994_AIF1DAC2_EQ_B4_B_MASK 0xFFFF /* AIF1DAC2_EQ_B4_B - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B4_B_SHIFT 0 /* AIF1DAC2_EQ_B4_B - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B4_B_WIDTH 16 /* AIF1DAC2_EQ_B4_B - [15:0] */
-
-/*
- * R1199 (0x4AF) - AIF1 DAC2 EQ Band 4 C
- */
-#define WM8994_AIF1DAC2_EQ_B4_C_MASK 0xFFFF /* AIF1DAC2_EQ_B4_C - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B4_C_SHIFT 0 /* AIF1DAC2_EQ_B4_C - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B4_C_WIDTH 16 /* AIF1DAC2_EQ_B4_C - [15:0] */
-
-/*
- * R1200 (0x4B0) - AIF1 DAC2 EQ Band 4 PG
- */
-#define WM8994_AIF1DAC2_EQ_B4_PG_MASK 0xFFFF /* AIF1DAC2_EQ_B4_PG - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B4_PG_SHIFT 0 /* AIF1DAC2_EQ_B4_PG - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B4_PG_WIDTH 16 /* AIF1DAC2_EQ_B4_PG - [15:0] */
-
-/*
- * R1201 (0x4B1) - AIF1 DAC2 EQ Band 5 A
- */
-#define WM8994_AIF1DAC2_EQ_B5_A_MASK 0xFFFF /* AIF1DAC2_EQ_B5_A - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B5_A_SHIFT 0 /* AIF1DAC2_EQ_B5_A - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B5_A_WIDTH 16 /* AIF1DAC2_EQ_B5_A - [15:0] */
-
-/*
- * R1202 (0x4B2) - AIF1 DAC2 EQ Band 5 B
- */
-#define WM8994_AIF1DAC2_EQ_B5_B_MASK 0xFFFF /* AIF1DAC2_EQ_B5_B - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B5_B_SHIFT 0 /* AIF1DAC2_EQ_B5_B - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B5_B_WIDTH 16 /* AIF1DAC2_EQ_B5_B - [15:0] */
-
-/*
- * R1203 (0x4B3) - AIF1 DAC2 EQ Band 5 PG
- */
-#define WM8994_AIF1DAC2_EQ_B5_PG_MASK 0xFFFF /* AIF1DAC2_EQ_B5_PG - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B5_PG_SHIFT 0 /* AIF1DAC2_EQ_B5_PG - [15:0] */
-#define WM8994_AIF1DAC2_EQ_B5_PG_WIDTH 16 /* AIF1DAC2_EQ_B5_PG - [15:0] */
-
-/*
- * R1280 (0x500) - AIF2 ADC Left Volume
- */
-#define WM8994_AIF2ADC_VU 0x0100 /* AIF2ADC_VU */
-#define WM8994_AIF2ADC_VU_MASK 0x0100 /* AIF2ADC_VU */
-#define WM8994_AIF2ADC_VU_SHIFT 8 /* AIF2ADC_VU */
-#define WM8994_AIF2ADC_VU_WIDTH 1 /* AIF2ADC_VU */
-#define WM8994_AIF2ADCL_VOL_MASK 0x00FF /* AIF2ADCL_VOL - [7:0] */
-#define WM8994_AIF2ADCL_VOL_SHIFT 0 /* AIF2ADCL_VOL - [7:0] */
-#define WM8994_AIF2ADCL_VOL_WIDTH 8 /* AIF2ADCL_VOL - [7:0] */
-
-/*
- * R1281 (0x501) - AIF2 ADC Right Volume
- */
-#define WM8994_AIF2ADC_VU 0x0100 /* AIF2ADC_VU */
-#define WM8994_AIF2ADC_VU_MASK 0x0100 /* AIF2ADC_VU */
-#define WM8994_AIF2ADC_VU_SHIFT 8 /* AIF2ADC_VU */
-#define WM8994_AIF2ADC_VU_WIDTH 1 /* AIF2ADC_VU */
-#define WM8994_AIF2ADCR_VOL_MASK 0x00FF /* AIF2ADCR_VOL - [7:0] */
-#define WM8994_AIF2ADCR_VOL_SHIFT 0 /* AIF2ADCR_VOL - [7:0] */
-#define WM8994_AIF2ADCR_VOL_WIDTH 8 /* AIF2ADCR_VOL - [7:0] */
-
-/*
- * R1282 (0x502) - AIF2 DAC Left Volume
- */
-#define WM8994_AIF2DAC_VU 0x0100 /* AIF2DAC_VU */
-#define WM8994_AIF2DAC_VU_MASK 0x0100 /* AIF2DAC_VU */
-#define WM8994_AIF2DAC_VU_SHIFT 8 /* AIF2DAC_VU */
-#define WM8994_AIF2DAC_VU_WIDTH 1 /* AIF2DAC_VU */
-#define WM8994_AIF2DACL_VOL_MASK 0x00FF /* AIF2DACL_VOL - [7:0] */
-#define WM8994_AIF2DACL_VOL_SHIFT 0 /* AIF2DACL_VOL - [7:0] */
-#define WM8994_AIF2DACL_VOL_WIDTH 8 /* AIF2DACL_VOL - [7:0] */
-
-/*
- * R1283 (0x503) - AIF2 DAC Right Volume
- */
-#define WM8994_AIF2DAC_VU 0x0100 /* AIF2DAC_VU */
-#define WM8994_AIF2DAC_VU_MASK 0x0100 /* AIF2DAC_VU */
-#define WM8994_AIF2DAC_VU_SHIFT 8 /* AIF2DAC_VU */
-#define WM8994_AIF2DAC_VU_WIDTH 1 /* AIF2DAC_VU */
-#define WM8994_AIF2DACR_VOL_MASK 0x00FF /* AIF2DACR_VOL - [7:0] */
-#define WM8994_AIF2DACR_VOL_SHIFT 0 /* AIF2DACR_VOL - [7:0] */
-#define WM8994_AIF2DACR_VOL_WIDTH 8 /* AIF2DACR_VOL - [7:0] */
-
-/*
- * R1296 (0x510) - AIF2 ADC Filters
- */
-#define WM8994_AIF2ADC_4FS 0x8000 /* AIF2ADC_4FS */
-#define WM8994_AIF2ADC_4FS_MASK 0x8000 /* AIF2ADC_4FS */
-#define WM8994_AIF2ADC_4FS_SHIFT 15 /* AIF2ADC_4FS */
-#define WM8994_AIF2ADC_4FS_WIDTH 1 /* AIF2ADC_4FS */
-#define WM8994_AIF2ADC_HPF_CUT_MASK 0x6000 /* AIF2ADC_HPF_CUT - [14:13] */
-#define WM8994_AIF2ADC_HPF_CUT_SHIFT 13 /* AIF2ADC_HPF_CUT - [14:13] */
-#define WM8994_AIF2ADC_HPF_CUT_WIDTH 2 /* AIF2ADC_HPF_CUT - [14:13] */
-#define WM8994_AIF2ADCL_HPF 0x1000 /* AIF2ADCL_HPF */
-#define WM8994_AIF2ADCL_HPF_MASK 0x1000 /* AIF2ADCL_HPF */
-#define WM8994_AIF2ADCL_HPF_SHIFT 12 /* AIF2ADCL_HPF */
-#define WM8994_AIF2ADCL_HPF_WIDTH 1 /* AIF2ADCL_HPF */
-#define WM8994_AIF2ADCR_HPF 0x0800 /* AIF2ADCR_HPF */
-#define WM8994_AIF2ADCR_HPF_MASK 0x0800 /* AIF2ADCR_HPF */
-#define WM8994_AIF2ADCR_HPF_SHIFT 11 /* AIF2ADCR_HPF */
-#define WM8994_AIF2ADCR_HPF_WIDTH 1 /* AIF2ADCR_HPF */
-
-/*
- * R1312 (0x520) - AIF2 DAC Filters (1)
- */
-#define WM8994_AIF2DAC_MUTE 0x0200 /* AIF2DAC_MUTE */
-#define WM8994_AIF2DAC_MUTE_MASK 0x0200 /* AIF2DAC_MUTE */
-#define WM8994_AIF2DAC_MUTE_SHIFT 9 /* AIF2DAC_MUTE */
-#define WM8994_AIF2DAC_MUTE_WIDTH 1 /* AIF2DAC_MUTE */
-#define WM8994_AIF2DAC_MONO 0x0080 /* AIF2DAC_MONO */
-#define WM8994_AIF2DAC_MONO_MASK 0x0080 /* AIF2DAC_MONO */
-#define WM8994_AIF2DAC_MONO_SHIFT 7 /* AIF2DAC_MONO */
-#define WM8994_AIF2DAC_MONO_WIDTH 1 /* AIF2DAC_MONO */
-#define WM8994_AIF2DAC_MUTERATE 0x0020 /* AIF2DAC_MUTERATE */
-#define WM8994_AIF2DAC_MUTERATE_MASK 0x0020 /* AIF2DAC_MUTERATE */
-#define WM8994_AIF2DAC_MUTERATE_SHIFT 5 /* AIF2DAC_MUTERATE */
-#define WM8994_AIF2DAC_MUTERATE_WIDTH 1 /* AIF2DAC_MUTERATE */
-#define WM8994_AIF2DAC_UNMUTE_RAMP 0x0010 /* AIF2DAC_UNMUTE_RAMP */
-#define WM8994_AIF2DAC_UNMUTE_RAMP_MASK 0x0010 /* AIF2DAC_UNMUTE_RAMP */
-#define WM8994_AIF2DAC_UNMUTE_RAMP_SHIFT 4 /* AIF2DAC_UNMUTE_RAMP */
-#define WM8994_AIF2DAC_UNMUTE_RAMP_WIDTH 1 /* AIF2DAC_UNMUTE_RAMP */
-#define WM8994_AIF2DAC_DEEMP_MASK 0x0006 /* AIF2DAC_DEEMP - [2:1] */
-#define WM8994_AIF2DAC_DEEMP_SHIFT 1 /* AIF2DAC_DEEMP - [2:1] */
-#define WM8994_AIF2DAC_DEEMP_WIDTH 2 /* AIF2DAC_DEEMP - [2:1] */
-
-/*
- * R1313 (0x521) - AIF2 DAC Filters (2)
- */
-#define WM8994_AIF2DAC_3D_GAIN_MASK 0x3E00 /* AIF2DAC_3D_GAIN - [13:9] */
-#define WM8994_AIF2DAC_3D_GAIN_SHIFT 9 /* AIF2DAC_3D_GAIN - [13:9] */
-#define WM8994_AIF2DAC_3D_GAIN_WIDTH 5 /* AIF2DAC_3D_GAIN - [13:9] */
-#define WM8994_AIF2DAC_3D_ENA 0x0100 /* AIF2DAC_3D_ENA */
-#define WM8994_AIF2DAC_3D_ENA_MASK 0x0100 /* AIF2DAC_3D_ENA */
-#define WM8994_AIF2DAC_3D_ENA_SHIFT 8 /* AIF2DAC_3D_ENA */
-#define WM8994_AIF2DAC_3D_ENA_WIDTH 1 /* AIF2DAC_3D_ENA */
-
-/*
- * R1328 (0x530) - AIF2 DAC Noise Gate
- */
-#define WM8958_AIF2DAC_NG_HLD_MASK 0x0060 /* AIF2DAC_NG_HLD - [6:5] */
-#define WM8958_AIF2DAC_NG_HLD_SHIFT 5 /* AIF2DAC_NG_HLD - [6:5] */
-#define WM8958_AIF2DAC_NG_HLD_WIDTH 2 /* AIF2DAC_NG_HLD - [6:5] */
-#define WM8958_AIF2DAC_NG_THR_MASK 0x000E /* AIF2DAC_NG_THR - [3:1] */
-#define WM8958_AIF2DAC_NG_THR_SHIFT 1 /* AIF2DAC_NG_THR - [3:1] */
-#define WM8958_AIF2DAC_NG_THR_WIDTH 3 /* AIF2DAC_NG_THR - [3:1] */
-#define WM8958_AIF2DAC_NG_ENA 0x0001 /* AIF2DAC_NG_ENA */
-#define WM8958_AIF2DAC_NG_ENA_MASK 0x0001 /* AIF2DAC_NG_ENA */
-#define WM8958_AIF2DAC_NG_ENA_SHIFT 0 /* AIF2DAC_NG_ENA */
-#define WM8958_AIF2DAC_NG_ENA_WIDTH 1 /* AIF2DAC_NG_ENA */
-
-/*
- * R1344 (0x540) - AIF2 DRC (1)
- */
-#define WM8994_AIF2DRC_SIG_DET_RMS_MASK 0xF800 /* AIF2DRC_SIG_DET_RMS - [15:11] */
-#define WM8994_AIF2DRC_SIG_DET_RMS_SHIFT 11 /* AIF2DRC_SIG_DET_RMS - [15:11] */
-#define WM8994_AIF2DRC_SIG_DET_RMS_WIDTH 5 /* AIF2DRC_SIG_DET_RMS - [15:11] */
-#define WM8994_AIF2DRC_SIG_DET_PK_MASK 0x0600 /* AIF2DRC_SIG_DET_PK - [10:9] */
-#define WM8994_AIF2DRC_SIG_DET_PK_SHIFT 9 /* AIF2DRC_SIG_DET_PK - [10:9] */
-#define WM8994_AIF2DRC_SIG_DET_PK_WIDTH 2 /* AIF2DRC_SIG_DET_PK - [10:9] */
-#define WM8994_AIF2DRC_NG_ENA 0x0100 /* AIF2DRC_NG_ENA */
-#define WM8994_AIF2DRC_NG_ENA_MASK 0x0100 /* AIF2DRC_NG_ENA */
-#define WM8994_AIF2DRC_NG_ENA_SHIFT 8 /* AIF2DRC_NG_ENA */
-#define WM8994_AIF2DRC_NG_ENA_WIDTH 1 /* AIF2DRC_NG_ENA */
-#define WM8994_AIF2DRC_SIG_DET_MODE 0x0080 /* AIF2DRC_SIG_DET_MODE */
-#define WM8994_AIF2DRC_SIG_DET_MODE_MASK 0x0080 /* AIF2DRC_SIG_DET_MODE */
-#define WM8994_AIF2DRC_SIG_DET_MODE_SHIFT 7 /* AIF2DRC_SIG_DET_MODE */
-#define WM8994_AIF2DRC_SIG_DET_MODE_WIDTH 1 /* AIF2DRC_SIG_DET_MODE */
-#define WM8994_AIF2DRC_SIG_DET 0x0040 /* AIF2DRC_SIG_DET */
-#define WM8994_AIF2DRC_SIG_DET_MASK 0x0040 /* AIF2DRC_SIG_DET */
-#define WM8994_AIF2DRC_SIG_DET_SHIFT 6 /* AIF2DRC_SIG_DET */
-#define WM8994_AIF2DRC_SIG_DET_WIDTH 1 /* AIF2DRC_SIG_DET */
-#define WM8994_AIF2DRC_KNEE2_OP_ENA 0x0020 /* AIF2DRC_KNEE2_OP_ENA */
-#define WM8994_AIF2DRC_KNEE2_OP_ENA_MASK 0x0020 /* AIF2DRC_KNEE2_OP_ENA */
-#define WM8994_AIF2DRC_KNEE2_OP_ENA_SHIFT 5 /* AIF2DRC_KNEE2_OP_ENA */
-#define WM8994_AIF2DRC_KNEE2_OP_ENA_WIDTH 1 /* AIF2DRC_KNEE2_OP_ENA */
-#define WM8994_AIF2DRC_QR 0x0010 /* AIF2DRC_QR */
-#define WM8994_AIF2DRC_QR_MASK 0x0010 /* AIF2DRC_QR */
-#define WM8994_AIF2DRC_QR_SHIFT 4 /* AIF2DRC_QR */
-#define WM8994_AIF2DRC_QR_WIDTH 1 /* AIF2DRC_QR */
-#define WM8994_AIF2DRC_ANTICLIP 0x0008 /* AIF2DRC_ANTICLIP */
-#define WM8994_AIF2DRC_ANTICLIP_MASK 0x0008 /* AIF2DRC_ANTICLIP */
-#define WM8994_AIF2DRC_ANTICLIP_SHIFT 3 /* AIF2DRC_ANTICLIP */
-#define WM8994_AIF2DRC_ANTICLIP_WIDTH 1 /* AIF2DRC_ANTICLIP */
-#define WM8994_AIF2DAC_DRC_ENA 0x0004 /* AIF2DAC_DRC_ENA */
-#define WM8994_AIF2DAC_DRC_ENA_MASK 0x0004 /* AIF2DAC_DRC_ENA */
-#define WM8994_AIF2DAC_DRC_ENA_SHIFT 2 /* AIF2DAC_DRC_ENA */
-#define WM8994_AIF2DAC_DRC_ENA_WIDTH 1 /* AIF2DAC_DRC_ENA */
-#define WM8994_AIF2ADCL_DRC_ENA 0x0002 /* AIF2ADCL_DRC_ENA */
-#define WM8994_AIF2ADCL_DRC_ENA_MASK 0x0002 /* AIF2ADCL_DRC_ENA */
-#define WM8994_AIF2ADCL_DRC_ENA_SHIFT 1 /* AIF2ADCL_DRC_ENA */
-#define WM8994_AIF2ADCL_DRC_ENA_WIDTH 1 /* AIF2ADCL_DRC_ENA */
-#define WM8994_AIF2ADCR_DRC_ENA 0x0001 /* AIF2ADCR_DRC_ENA */
-#define WM8994_AIF2ADCR_DRC_ENA_MASK 0x0001 /* AIF2ADCR_DRC_ENA */
-#define WM8994_AIF2ADCR_DRC_ENA_SHIFT 0 /* AIF2ADCR_DRC_ENA */
-#define WM8994_AIF2ADCR_DRC_ENA_WIDTH 1 /* AIF2ADCR_DRC_ENA */
-
-/*
- * R1345 (0x541) - AIF2 DRC (2)
- */
-#define WM8994_AIF2DRC_ATK_MASK 0x1E00 /* AIF2DRC_ATK - [12:9] */
-#define WM8994_AIF2DRC_ATK_SHIFT 9 /* AIF2DRC_ATK - [12:9] */
-#define WM8994_AIF2DRC_ATK_WIDTH 4 /* AIF2DRC_ATK - [12:9] */
-#define WM8994_AIF2DRC_DCY_MASK 0x01E0 /* AIF2DRC_DCY - [8:5] */
-#define WM8994_AIF2DRC_DCY_SHIFT 5 /* AIF2DRC_DCY - [8:5] */
-#define WM8994_AIF2DRC_DCY_WIDTH 4 /* AIF2DRC_DCY - [8:5] */
-#define WM8994_AIF2DRC_MINGAIN_MASK 0x001C /* AIF2DRC_MINGAIN - [4:2] */
-#define WM8994_AIF2DRC_MINGAIN_SHIFT 2 /* AIF2DRC_MINGAIN - [4:2] */
-#define WM8994_AIF2DRC_MINGAIN_WIDTH 3 /* AIF2DRC_MINGAIN - [4:2] */
-#define WM8994_AIF2DRC_MAXGAIN_MASK 0x0003 /* AIF2DRC_MAXGAIN - [1:0] */
-#define WM8994_AIF2DRC_MAXGAIN_SHIFT 0 /* AIF2DRC_MAXGAIN - [1:0] */
-#define WM8994_AIF2DRC_MAXGAIN_WIDTH 2 /* AIF2DRC_MAXGAIN - [1:0] */
-
-/*
- * R1346 (0x542) - AIF2 DRC (3)
- */
-#define WM8994_AIF2DRC_NG_MINGAIN_MASK 0xF000 /* AIF2DRC_NG_MINGAIN - [15:12] */
-#define WM8994_AIF2DRC_NG_MINGAIN_SHIFT 12 /* AIF2DRC_NG_MINGAIN - [15:12] */
-#define WM8994_AIF2DRC_NG_MINGAIN_WIDTH 4 /* AIF2DRC_NG_MINGAIN - [15:12] */
-#define WM8994_AIF2DRC_NG_EXP_MASK 0x0C00 /* AIF2DRC_NG_EXP - [11:10] */
-#define WM8994_AIF2DRC_NG_EXP_SHIFT 10 /* AIF2DRC_NG_EXP - [11:10] */
-#define WM8994_AIF2DRC_NG_EXP_WIDTH 2 /* AIF2DRC_NG_EXP - [11:10] */
-#define WM8994_AIF2DRC_QR_THR_MASK 0x0300 /* AIF2DRC_QR_THR - [9:8] */
-#define WM8994_AIF2DRC_QR_THR_SHIFT 8 /* AIF2DRC_QR_THR - [9:8] */
-#define WM8994_AIF2DRC_QR_THR_WIDTH 2 /* AIF2DRC_QR_THR - [9:8] */
-#define WM8994_AIF2DRC_QR_DCY_MASK 0x00C0 /* AIF2DRC_QR_DCY - [7:6] */
-#define WM8994_AIF2DRC_QR_DCY_SHIFT 6 /* AIF2DRC_QR_DCY - [7:6] */
-#define WM8994_AIF2DRC_QR_DCY_WIDTH 2 /* AIF2DRC_QR_DCY - [7:6] */
-#define WM8994_AIF2DRC_HI_COMP_MASK 0x0038 /* AIF2DRC_HI_COMP - [5:3] */
-#define WM8994_AIF2DRC_HI_COMP_SHIFT 3 /* AIF2DRC_HI_COMP - [5:3] */
-#define WM8994_AIF2DRC_HI_COMP_WIDTH 3 /* AIF2DRC_HI_COMP - [5:3] */
-#define WM8994_AIF2DRC_LO_COMP_MASK 0x0007 /* AIF2DRC_LO_COMP - [2:0] */
-#define WM8994_AIF2DRC_LO_COMP_SHIFT 0 /* AIF2DRC_LO_COMP - [2:0] */
-#define WM8994_AIF2DRC_LO_COMP_WIDTH 3 /* AIF2DRC_LO_COMP - [2:0] */
-
-/*
- * R1347 (0x543) - AIF2 DRC (4)
- */
-#define WM8994_AIF2DRC_KNEE_IP_MASK 0x07E0 /* AIF2DRC_KNEE_IP - [10:5] */
-#define WM8994_AIF2DRC_KNEE_IP_SHIFT 5 /* AIF2DRC_KNEE_IP - [10:5] */
-#define WM8994_AIF2DRC_KNEE_IP_WIDTH 6 /* AIF2DRC_KNEE_IP - [10:5] */
-#define WM8994_AIF2DRC_KNEE_OP_MASK 0x001F /* AIF2DRC_KNEE_OP - [4:0] */
-#define WM8994_AIF2DRC_KNEE_OP_SHIFT 0 /* AIF2DRC_KNEE_OP - [4:0] */
-#define WM8994_AIF2DRC_KNEE_OP_WIDTH 5 /* AIF2DRC_KNEE_OP - [4:0] */
-
-/*
- * R1348 (0x544) - AIF2 DRC (5)
- */
-#define WM8994_AIF2DRC_KNEE2_IP_MASK 0x03E0 /* AIF2DRC_KNEE2_IP - [9:5] */
-#define WM8994_AIF2DRC_KNEE2_IP_SHIFT 5 /* AIF2DRC_KNEE2_IP - [9:5] */
-#define WM8994_AIF2DRC_KNEE2_IP_WIDTH 5 /* AIF2DRC_KNEE2_IP - [9:5] */
-#define WM8994_AIF2DRC_KNEE2_OP_MASK 0x001F /* AIF2DRC_KNEE2_OP - [4:0] */
-#define WM8994_AIF2DRC_KNEE2_OP_SHIFT 0 /* AIF2DRC_KNEE2_OP - [4:0] */
-#define WM8994_AIF2DRC_KNEE2_OP_WIDTH 5 /* AIF2DRC_KNEE2_OP - [4:0] */
-
-/*
- * R1408 (0x580) - AIF2 EQ Gains (1)
- */
-#define WM8994_AIF2DAC_EQ_B1_GAIN_MASK 0xF800 /* AIF2DAC_EQ_B1_GAIN - [15:11] */
-#define WM8994_AIF2DAC_EQ_B1_GAIN_SHIFT 11 /* AIF2DAC_EQ_B1_GAIN - [15:11] */
-#define WM8994_AIF2DAC_EQ_B1_GAIN_WIDTH 5 /* AIF2DAC_EQ_B1_GAIN - [15:11] */
-#define WM8994_AIF2DAC_EQ_B2_GAIN_MASK 0x07C0 /* AIF2DAC_EQ_B2_GAIN - [10:6] */
-#define WM8994_AIF2DAC_EQ_B2_GAIN_SHIFT 6 /* AIF2DAC_EQ_B2_GAIN - [10:6] */
-#define WM8994_AIF2DAC_EQ_B2_GAIN_WIDTH 5 /* AIF2DAC_EQ_B2_GAIN - [10:6] */
-#define WM8994_AIF2DAC_EQ_B3_GAIN_MASK 0x003E /* AIF2DAC_EQ_B3_GAIN - [5:1] */
-#define WM8994_AIF2DAC_EQ_B3_GAIN_SHIFT 1 /* AIF2DAC_EQ_B3_GAIN - [5:1] */
-#define WM8994_AIF2DAC_EQ_B3_GAIN_WIDTH 5 /* AIF2DAC_EQ_B3_GAIN - [5:1] */
-#define WM8994_AIF2DAC_EQ_ENA 0x0001 /* AIF2DAC_EQ_ENA */
-#define WM8994_AIF2DAC_EQ_ENA_MASK 0x0001 /* AIF2DAC_EQ_ENA */
-#define WM8994_AIF2DAC_EQ_ENA_SHIFT 0 /* AIF2DAC_EQ_ENA */
-#define WM8994_AIF2DAC_EQ_ENA_WIDTH 1 /* AIF2DAC_EQ_ENA */
-
-/*
- * R1409 (0x581) - AIF2 EQ Gains (2)
- */
-#define WM8994_AIF2DAC_EQ_B4_GAIN_MASK 0xF800 /* AIF2DAC_EQ_B4_GAIN - [15:11] */
-#define WM8994_AIF2DAC_EQ_B4_GAIN_SHIFT 11 /* AIF2DAC_EQ_B4_GAIN - [15:11] */
-#define WM8994_AIF2DAC_EQ_B4_GAIN_WIDTH 5 /* AIF2DAC_EQ_B4_GAIN - [15:11] */
-#define WM8994_AIF2DAC_EQ_B5_GAIN_MASK 0x07C0 /* AIF2DAC_EQ_B5_GAIN - [10:6] */
-#define WM8994_AIF2DAC_EQ_B5_GAIN_SHIFT 6 /* AIF2DAC_EQ_B5_GAIN - [10:6] */
-#define WM8994_AIF2DAC_EQ_B5_GAIN_WIDTH 5 /* AIF2DAC_EQ_B5_GAIN - [10:6] */
-
-/*
- * R1410 (0x582) - AIF2 EQ Band 1 A
- */
-#define WM8994_AIF2DAC_EQ_B1_A_MASK 0xFFFF /* AIF2DAC_EQ_B1_A - [15:0] */
-#define WM8994_AIF2DAC_EQ_B1_A_SHIFT 0 /* AIF2DAC_EQ_B1_A - [15:0] */
-#define WM8994_AIF2DAC_EQ_B1_A_WIDTH 16 /* AIF2DAC_EQ_B1_A - [15:0] */
-
-/*
- * R1411 (0x583) - AIF2 EQ Band 1 B
- */
-#define WM8994_AIF2DAC_EQ_B1_B_MASK 0xFFFF /* AIF2DAC_EQ_B1_B - [15:0] */
-#define WM8994_AIF2DAC_EQ_B1_B_SHIFT 0 /* AIF2DAC_EQ_B1_B - [15:0] */
-#define WM8994_AIF2DAC_EQ_B1_B_WIDTH 16 /* AIF2DAC_EQ_B1_B - [15:0] */
-
-/*
- * R1412 (0x584) - AIF2 EQ Band 1 PG
- */
-#define WM8994_AIF2DAC_EQ_B1_PG_MASK 0xFFFF /* AIF2DAC_EQ_B1_PG - [15:0] */
-#define WM8994_AIF2DAC_EQ_B1_PG_SHIFT 0 /* AIF2DAC_EQ_B1_PG - [15:0] */
-#define WM8994_AIF2DAC_EQ_B1_PG_WIDTH 16 /* AIF2DAC_EQ_B1_PG - [15:0] */
-
-/*
- * R1413 (0x585) - AIF2 EQ Band 2 A
- */
-#define WM8994_AIF2DAC_EQ_B2_A_MASK 0xFFFF /* AIF2DAC_EQ_B2_A - [15:0] */
-#define WM8994_AIF2DAC_EQ_B2_A_SHIFT 0 /* AIF2DAC_EQ_B2_A - [15:0] */
-#define WM8994_AIF2DAC_EQ_B2_A_WIDTH 16 /* AIF2DAC_EQ_B2_A - [15:0] */
-
-/*
- * R1414 (0x586) - AIF2 EQ Band 2 B
- */
-#define WM8994_AIF2DAC_EQ_B2_B_MASK 0xFFFF /* AIF2DAC_EQ_B2_B - [15:0] */
-#define WM8994_AIF2DAC_EQ_B2_B_SHIFT 0 /* AIF2DAC_EQ_B2_B - [15:0] */
-#define WM8994_AIF2DAC_EQ_B2_B_WIDTH 16 /* AIF2DAC_EQ_B2_B - [15:0] */
-
-/*
- * R1415 (0x587) - AIF2 EQ Band 2 C
- */
-#define WM8994_AIF2DAC_EQ_B2_C_MASK 0xFFFF /* AIF2DAC_EQ_B2_C - [15:0] */
-#define WM8994_AIF2DAC_EQ_B2_C_SHIFT 0 /* AIF2DAC_EQ_B2_C - [15:0] */
-#define WM8994_AIF2DAC_EQ_B2_C_WIDTH 16 /* AIF2DAC_EQ_B2_C - [15:0] */
-
-/*
- * R1416 (0x588) - AIF2 EQ Band 2 PG
- */
-#define WM8994_AIF2DAC_EQ_B2_PG_MASK 0xFFFF /* AIF2DAC_EQ_B2_PG - [15:0] */
-#define WM8994_AIF2DAC_EQ_B2_PG_SHIFT 0 /* AIF2DAC_EQ_B2_PG - [15:0] */
-#define WM8994_AIF2DAC_EQ_B2_PG_WIDTH 16 /* AIF2DAC_EQ_B2_PG - [15:0] */
-
-/*
- * R1417 (0x589) - AIF2 EQ Band 3 A
- */
-#define WM8994_AIF2DAC_EQ_B3_A_MASK 0xFFFF /* AIF2DAC_EQ_B3_A - [15:0] */
-#define WM8994_AIF2DAC_EQ_B3_A_SHIFT 0 /* AIF2DAC_EQ_B3_A - [15:0] */
-#define WM8994_AIF2DAC_EQ_B3_A_WIDTH 16 /* AIF2DAC_EQ_B3_A - [15:0] */
-
-/*
- * R1418 (0x58A) - AIF2 EQ Band 3 B
- */
-#define WM8994_AIF2DAC_EQ_B3_B_MASK 0xFFFF /* AIF2DAC_EQ_B3_B - [15:0] */
-#define WM8994_AIF2DAC_EQ_B3_B_SHIFT 0 /* AIF2DAC_EQ_B3_B - [15:0] */
-#define WM8994_AIF2DAC_EQ_B3_B_WIDTH 16 /* AIF2DAC_EQ_B3_B - [15:0] */
-
-/*
- * R1419 (0x58B) - AIF2 EQ Band 3 C
- */
-#define WM8994_AIF2DAC_EQ_B3_C_MASK 0xFFFF /* AIF2DAC_EQ_B3_C - [15:0] */
-#define WM8994_AIF2DAC_EQ_B3_C_SHIFT 0 /* AIF2DAC_EQ_B3_C - [15:0] */
-#define WM8994_AIF2DAC_EQ_B3_C_WIDTH 16 /* AIF2DAC_EQ_B3_C - [15:0] */
-
-/*
- * R1420 (0x58C) - AIF2 EQ Band 3 PG
- */
-#define WM8994_AIF2DAC_EQ_B3_PG_MASK 0xFFFF /* AIF2DAC_EQ_B3_PG - [15:0] */
-#define WM8994_AIF2DAC_EQ_B3_PG_SHIFT 0 /* AIF2DAC_EQ_B3_PG - [15:0] */
-#define WM8994_AIF2DAC_EQ_B3_PG_WIDTH 16 /* AIF2DAC_EQ_B3_PG - [15:0] */
-
-/*
- * R1421 (0x58D) - AIF2 EQ Band 4 A
- */
-#define WM8994_AIF2DAC_EQ_B4_A_MASK 0xFFFF /* AIF2DAC_EQ_B4_A - [15:0] */
-#define WM8994_AIF2DAC_EQ_B4_A_SHIFT 0 /* AIF2DAC_EQ_B4_A - [15:0] */
-#define WM8994_AIF2DAC_EQ_B4_A_WIDTH 16 /* AIF2DAC_EQ_B4_A - [15:0] */
-
-/*
- * R1422 (0x58E) - AIF2 EQ Band 4 B
- */
-#define WM8994_AIF2DAC_EQ_B4_B_MASK 0xFFFF /* AIF2DAC_EQ_B4_B - [15:0] */
-#define WM8994_AIF2DAC_EQ_B4_B_SHIFT 0 /* AIF2DAC_EQ_B4_B - [15:0] */
-#define WM8994_AIF2DAC_EQ_B4_B_WIDTH 16 /* AIF2DAC_EQ_B4_B - [15:0] */
-
-/*
- * R1423 (0x58F) - AIF2 EQ Band 4 C
- */
-#define WM8994_AIF2DAC_EQ_B4_C_MASK 0xFFFF /* AIF2DAC_EQ_B4_C - [15:0] */
-#define WM8994_AIF2DAC_EQ_B4_C_SHIFT 0 /* AIF2DAC_EQ_B4_C - [15:0] */
-#define WM8994_AIF2DAC_EQ_B4_C_WIDTH 16 /* AIF2DAC_EQ_B4_C - [15:0] */
-
-/*
- * R1424 (0x590) - AIF2 EQ Band 4 PG
- */
-#define WM8994_AIF2DAC_EQ_B4_PG_MASK 0xFFFF /* AIF2DAC_EQ_B4_PG - [15:0] */
-#define WM8994_AIF2DAC_EQ_B4_PG_SHIFT 0 /* AIF2DAC_EQ_B4_PG - [15:0] */
-#define WM8994_AIF2DAC_EQ_B4_PG_WIDTH 16 /* AIF2DAC_EQ_B4_PG - [15:0] */
-
-/*
- * R1425 (0x591) - AIF2 EQ Band 5 A
- */
-#define WM8994_AIF2DAC_EQ_B5_A_MASK 0xFFFF /* AIF2DAC_EQ_B5_A - [15:0] */
-#define WM8994_AIF2DAC_EQ_B5_A_SHIFT 0 /* AIF2DAC_EQ_B5_A - [15:0] */
-#define WM8994_AIF2DAC_EQ_B5_A_WIDTH 16 /* AIF2DAC_EQ_B5_A - [15:0] */
-
-/*
- * R1426 (0x592) - AIF2 EQ Band 5 B
- */
-#define WM8994_AIF2DAC_EQ_B5_B_MASK 0xFFFF /* AIF2DAC_EQ_B5_B - [15:0] */
-#define WM8994_AIF2DAC_EQ_B5_B_SHIFT 0 /* AIF2DAC_EQ_B5_B - [15:0] */
-#define WM8994_AIF2DAC_EQ_B5_B_WIDTH 16 /* AIF2DAC_EQ_B5_B - [15:0] */
-
-/*
- * R1427 (0x593) - AIF2 EQ Band 5 PG
- */
-#define WM8994_AIF2DAC_EQ_B5_PG_MASK 0xFFFF /* AIF2DAC_EQ_B5_PG - [15:0] */
-#define WM8994_AIF2DAC_EQ_B5_PG_SHIFT 0 /* AIF2DAC_EQ_B5_PG - [15:0] */
-#define WM8994_AIF2DAC_EQ_B5_PG_WIDTH 16 /* AIF2DAC_EQ_B5_PG - [15:0] */
-
-/*
- * R1536 (0x600) - DAC1 Mixer Volumes
- */
-#define WM8994_ADCR_DAC1_VOL_MASK 0x01E0 /* ADCR_DAC1_VOL - [8:5] */
-#define WM8994_ADCR_DAC1_VOL_SHIFT 5 /* ADCR_DAC1_VOL - [8:5] */
-#define WM8994_ADCR_DAC1_VOL_WIDTH 4 /* ADCR_DAC1_VOL - [8:5] */
-#define WM8994_ADCL_DAC1_VOL_MASK 0x000F /* ADCL_DAC1_VOL - [3:0] */
-#define WM8994_ADCL_DAC1_VOL_SHIFT 0 /* ADCL_DAC1_VOL - [3:0] */
-#define WM8994_ADCL_DAC1_VOL_WIDTH 4 /* ADCL_DAC1_VOL - [3:0] */
-
-/*
- * R1537 (0x601) - DAC1 Left Mixer Routing
- */
-#define WM8994_ADCR_TO_DAC1L 0x0020 /* ADCR_TO_DAC1L */
-#define WM8994_ADCR_TO_DAC1L_MASK 0x0020 /* ADCR_TO_DAC1L */
-#define WM8994_ADCR_TO_DAC1L_SHIFT 5 /* ADCR_TO_DAC1L */
-#define WM8994_ADCR_TO_DAC1L_WIDTH 1 /* ADCR_TO_DAC1L */
-#define WM8994_ADCL_TO_DAC1L 0x0010 /* ADCL_TO_DAC1L */
-#define WM8994_ADCL_TO_DAC1L_MASK 0x0010 /* ADCL_TO_DAC1L */
-#define WM8994_ADCL_TO_DAC1L_SHIFT 4 /* ADCL_TO_DAC1L */
-#define WM8994_ADCL_TO_DAC1L_WIDTH 1 /* ADCL_TO_DAC1L */
-#define WM8994_AIF2DACL_TO_DAC1L 0x0004 /* AIF2DACL_TO_DAC1L */
-#define WM8994_AIF2DACL_TO_DAC1L_MASK 0x0004 /* AIF2DACL_TO_DAC1L */
-#define WM8994_AIF2DACL_TO_DAC1L_SHIFT 2 /* AIF2DACL_TO_DAC1L */
-#define WM8994_AIF2DACL_TO_DAC1L_WIDTH 1 /* AIF2DACL_TO_DAC1L */
-#define WM8994_AIF1DAC2L_TO_DAC1L 0x0002 /* AIF1DAC2L_TO_DAC1L */
-#define WM8994_AIF1DAC2L_TO_DAC1L_MASK 0x0002 /* AIF1DAC2L_TO_DAC1L */
-#define WM8994_AIF1DAC2L_TO_DAC1L_SHIFT 1 /* AIF1DAC2L_TO_DAC1L */
-#define WM8994_AIF1DAC2L_TO_DAC1L_WIDTH 1 /* AIF1DAC2L_TO_DAC1L */
-#define WM8994_AIF1DAC1L_TO_DAC1L 0x0001 /* AIF1DAC1L_TO_DAC1L */
-#define WM8994_AIF1DAC1L_TO_DAC1L_MASK 0x0001 /* AIF1DAC1L_TO_DAC1L */
-#define WM8994_AIF1DAC1L_TO_DAC1L_SHIFT 0 /* AIF1DAC1L_TO_DAC1L */
-#define WM8994_AIF1DAC1L_TO_DAC1L_WIDTH 1 /* AIF1DAC1L_TO_DAC1L */
-
-/*
- * R1538 (0x602) - DAC1 Right Mixer Routing
- */
-#define WM8994_ADCR_TO_DAC1R 0x0020 /* ADCR_TO_DAC1R */
-#define WM8994_ADCR_TO_DAC1R_MASK 0x0020 /* ADCR_TO_DAC1R */
-#define WM8994_ADCR_TO_DAC1R_SHIFT 5 /* ADCR_TO_DAC1R */
-#define WM8994_ADCR_TO_DAC1R_WIDTH 1 /* ADCR_TO_DAC1R */
-#define WM8994_ADCL_TO_DAC1R 0x0010 /* ADCL_TO_DAC1R */
-#define WM8994_ADCL_TO_DAC1R_MASK 0x0010 /* ADCL_TO_DAC1R */
-#define WM8994_ADCL_TO_DAC1R_SHIFT 4 /* ADCL_TO_DAC1R */
-#define WM8994_ADCL_TO_DAC1R_WIDTH 1 /* ADCL_TO_DAC1R */
-#define WM8994_AIF2DACR_TO_DAC1R 0x0004 /* AIF2DACR_TO_DAC1R */
-#define WM8994_AIF2DACR_TO_DAC1R_MASK 0x0004 /* AIF2DACR_TO_DAC1R */
-#define WM8994_AIF2DACR_TO_DAC1R_SHIFT 2 /* AIF2DACR_TO_DAC1R */
-#define WM8994_AIF2DACR_TO_DAC1R_WIDTH 1 /* AIF2DACR_TO_DAC1R */
-#define WM8994_AIF1DAC2R_TO_DAC1R 0x0002 /* AIF1DAC2R_TO_DAC1R */
-#define WM8994_AIF1DAC2R_TO_DAC1R_MASK 0x0002 /* AIF1DAC2R_TO_DAC1R */
-#define WM8994_AIF1DAC2R_TO_DAC1R_SHIFT 1 /* AIF1DAC2R_TO_DAC1R */
-#define WM8994_AIF1DAC2R_TO_DAC1R_WIDTH 1 /* AIF1DAC2R_TO_DAC1R */
-#define WM8994_AIF1DAC1R_TO_DAC1R 0x0001 /* AIF1DAC1R_TO_DAC1R */
-#define WM8994_AIF1DAC1R_TO_DAC1R_MASK 0x0001 /* AIF1DAC1R_TO_DAC1R */
-#define WM8994_AIF1DAC1R_TO_DAC1R_SHIFT 0 /* AIF1DAC1R_TO_DAC1R */
-#define WM8994_AIF1DAC1R_TO_DAC1R_WIDTH 1 /* AIF1DAC1R_TO_DAC1R */
-
-/*
- * R1539 (0x603) - DAC2 Mixer Volumes
- */
-#define WM8994_ADCR_DAC2_VOL_MASK 0x01E0 /* ADCR_DAC2_VOL - [8:5] */
-#define WM8994_ADCR_DAC2_VOL_SHIFT 5 /* ADCR_DAC2_VOL - [8:5] */
-#define WM8994_ADCR_DAC2_VOL_WIDTH 4 /* ADCR_DAC2_VOL - [8:5] */
-#define WM8994_ADCL_DAC2_VOL_MASK 0x000F /* ADCL_DAC2_VOL - [3:0] */
-#define WM8994_ADCL_DAC2_VOL_SHIFT 0 /* ADCL_DAC2_VOL - [3:0] */
-#define WM8994_ADCL_DAC2_VOL_WIDTH 4 /* ADCL_DAC2_VOL - [3:0] */
-
-/*
- * R1540 (0x604) - DAC2 Left Mixer Routing
- */
-#define WM8994_ADCR_TO_DAC2L 0x0020 /* ADCR_TO_DAC2L */
-#define WM8994_ADCR_TO_DAC2L_MASK 0x0020 /* ADCR_TO_DAC2L */
-#define WM8994_ADCR_TO_DAC2L_SHIFT 5 /* ADCR_TO_DAC2L */
-#define WM8994_ADCR_TO_DAC2L_WIDTH 1 /* ADCR_TO_DAC2L */
-#define WM8994_ADCL_TO_DAC2L 0x0010 /* ADCL_TO_DAC2L */
-#define WM8994_ADCL_TO_DAC2L_MASK 0x0010 /* ADCL_TO_DAC2L */
-#define WM8994_ADCL_TO_DAC2L_SHIFT 4 /* ADCL_TO_DAC2L */
-#define WM8994_ADCL_TO_DAC2L_WIDTH 1 /* ADCL_TO_DAC2L */
-#define WM8994_AIF2DACL_TO_DAC2L 0x0004 /* AIF2DACL_TO_DAC2L */
-#define WM8994_AIF2DACL_TO_DAC2L_MASK 0x0004 /* AIF2DACL_TO_DAC2L */
-#define WM8994_AIF2DACL_TO_DAC2L_SHIFT 2 /* AIF2DACL_TO_DAC2L */
-#define WM8994_AIF2DACL_TO_DAC2L_WIDTH 1 /* AIF2DACL_TO_DAC2L */
-#define WM8994_AIF1DAC2L_TO_DAC2L 0x0002 /* AIF1DAC2L_TO_DAC2L */
-#define WM8994_AIF1DAC2L_TO_DAC2L_MASK 0x0002 /* AIF1DAC2L_TO_DAC2L */
-#define WM8994_AIF1DAC2L_TO_DAC2L_SHIFT 1 /* AIF1DAC2L_TO_DAC2L */
-#define WM8994_AIF1DAC2L_TO_DAC2L_WIDTH 1 /* AIF1DAC2L_TO_DAC2L */
-#define WM8994_AIF1DAC1L_TO_DAC2L 0x0001 /* AIF1DAC1L_TO_DAC2L */
-#define WM8994_AIF1DAC1L_TO_DAC2L_MASK 0x0001 /* AIF1DAC1L_TO_DAC2L */
-#define WM8994_AIF1DAC1L_TO_DAC2L_SHIFT 0 /* AIF1DAC1L_TO_DAC2L */
-#define WM8994_AIF1DAC1L_TO_DAC2L_WIDTH 1 /* AIF1DAC1L_TO_DAC2L */
-
-/*
- * R1541 (0x605) - DAC2 Right Mixer Routing
- */
-#define WM8994_ADCR_TO_DAC2R 0x0020 /* ADCR_TO_DAC2R */
-#define WM8994_ADCR_TO_DAC2R_MASK 0x0020 /* ADCR_TO_DAC2R */
-#define WM8994_ADCR_TO_DAC2R_SHIFT 5 /* ADCR_TO_DAC2R */
-#define WM8994_ADCR_TO_DAC2R_WIDTH 1 /* ADCR_TO_DAC2R */
-#define WM8994_ADCL_TO_DAC2R 0x0010 /* ADCL_TO_DAC2R */
-#define WM8994_ADCL_TO_DAC2R_MASK 0x0010 /* ADCL_TO_DAC2R */
-#define WM8994_ADCL_TO_DAC2R_SHIFT 4 /* ADCL_TO_DAC2R */
-#define WM8994_ADCL_TO_DAC2R_WIDTH 1 /* ADCL_TO_DAC2R */
-#define WM8994_AIF2DACR_TO_DAC2R 0x0004 /* AIF2DACR_TO_DAC2R */
-#define WM8994_AIF2DACR_TO_DAC2R_MASK 0x0004 /* AIF2DACR_TO_DAC2R */
-#define WM8994_AIF2DACR_TO_DAC2R_SHIFT 2 /* AIF2DACR_TO_DAC2R */
-#define WM8994_AIF2DACR_TO_DAC2R_WIDTH 1 /* AIF2DACR_TO_DAC2R */
-#define WM8994_AIF1DAC2R_TO_DAC2R 0x0002 /* AIF1DAC2R_TO_DAC2R */
-#define WM8994_AIF1DAC2R_TO_DAC2R_MASK 0x0002 /* AIF1DAC2R_TO_DAC2R */
-#define WM8994_AIF1DAC2R_TO_DAC2R_SHIFT 1 /* AIF1DAC2R_TO_DAC2R */
-#define WM8994_AIF1DAC2R_TO_DAC2R_WIDTH 1 /* AIF1DAC2R_TO_DAC2R */
-#define WM8994_AIF1DAC1R_TO_DAC2R 0x0001 /* AIF1DAC1R_TO_DAC2R */
-#define WM8994_AIF1DAC1R_TO_DAC2R_MASK 0x0001 /* AIF1DAC1R_TO_DAC2R */
-#define WM8994_AIF1DAC1R_TO_DAC2R_SHIFT 0 /* AIF1DAC1R_TO_DAC2R */
-#define WM8994_AIF1DAC1R_TO_DAC2R_WIDTH 1 /* AIF1DAC1R_TO_DAC2R */
-
-/*
- * R1542 (0x606) - AIF1 ADC1 Left Mixer Routing
- */
-#define WM8994_ADC1L_TO_AIF1ADC1L 0x0002 /* ADC1L_TO_AIF1ADC1L */
-#define WM8994_ADC1L_TO_AIF1ADC1L_MASK 0x0002 /* ADC1L_TO_AIF1ADC1L */
-#define WM8994_ADC1L_TO_AIF1ADC1L_SHIFT 1 /* ADC1L_TO_AIF1ADC1L */
-#define WM8994_ADC1L_TO_AIF1ADC1L_WIDTH 1 /* ADC1L_TO_AIF1ADC1L */
-#define WM8994_AIF2DACL_TO_AIF1ADC1L 0x0001 /* AIF2DACL_TO_AIF1ADC1L */
-#define WM8994_AIF2DACL_TO_AIF1ADC1L_MASK 0x0001 /* AIF2DACL_TO_AIF1ADC1L */
-#define WM8994_AIF2DACL_TO_AIF1ADC1L_SHIFT 0 /* AIF2DACL_TO_AIF1ADC1L */
-#define WM8994_AIF2DACL_TO_AIF1ADC1L_WIDTH 1 /* AIF2DACL_TO_AIF1ADC1L */
-
-/*
- * R1543 (0x607) - AIF1 ADC1 Right Mixer Routing
- */
-#define WM8994_ADC1R_TO_AIF1ADC1R 0x0002 /* ADC1R_TO_AIF1ADC1R */
-#define WM8994_ADC1R_TO_AIF1ADC1R_MASK 0x0002 /* ADC1R_TO_AIF1ADC1R */
-#define WM8994_ADC1R_TO_AIF1ADC1R_SHIFT 1 /* ADC1R_TO_AIF1ADC1R */
-#define WM8994_ADC1R_TO_AIF1ADC1R_WIDTH 1 /* ADC1R_TO_AIF1ADC1R */
-#define WM8994_AIF2DACR_TO_AIF1ADC1R 0x0001 /* AIF2DACR_TO_AIF1ADC1R */
-#define WM8994_AIF2DACR_TO_AIF1ADC1R_MASK 0x0001 /* AIF2DACR_TO_AIF1ADC1R */
-#define WM8994_AIF2DACR_TO_AIF1ADC1R_SHIFT 0 /* AIF2DACR_TO_AIF1ADC1R */
-#define WM8994_AIF2DACR_TO_AIF1ADC1R_WIDTH 1 /* AIF2DACR_TO_AIF1ADC1R */
-
-/*
- * R1544 (0x608) - AIF1 ADC2 Left Mixer Routing
- */
-#define WM8994_ADC2L_TO_AIF1ADC2L 0x0002 /* ADC2L_TO_AIF1ADC2L */
-#define WM8994_ADC2L_TO_AIF1ADC2L_MASK 0x0002 /* ADC2L_TO_AIF1ADC2L */
-#define WM8994_ADC2L_TO_AIF1ADC2L_SHIFT 1 /* ADC2L_TO_AIF1ADC2L */
-#define WM8994_ADC2L_TO_AIF1ADC2L_WIDTH 1 /* ADC2L_TO_AIF1ADC2L */
-#define WM8994_AIF2DACL_TO_AIF1ADC2L 0x0001 /* AIF2DACL_TO_AIF1ADC2L */
-#define WM8994_AIF2DACL_TO_AIF1ADC2L_MASK 0x0001 /* AIF2DACL_TO_AIF1ADC2L */
-#define WM8994_AIF2DACL_TO_AIF1ADC2L_SHIFT 0 /* AIF2DACL_TO_AIF1ADC2L */
-#define WM8994_AIF2DACL_TO_AIF1ADC2L_WIDTH 1 /* AIF2DACL_TO_AIF1ADC2L */
-
-/*
- * R1545 (0x609) - AIF1 ADC2 Right mixer Routing
- */
-#define WM8994_ADC2R_TO_AIF1ADC2R 0x0002 /* ADC2R_TO_AIF1ADC2R */
-#define WM8994_ADC2R_TO_AIF1ADC2R_MASK 0x0002 /* ADC2R_TO_AIF1ADC2R */
-#define WM8994_ADC2R_TO_AIF1ADC2R_SHIFT 1 /* ADC2R_TO_AIF1ADC2R */
-#define WM8994_ADC2R_TO_AIF1ADC2R_WIDTH 1 /* ADC2R_TO_AIF1ADC2R */
-#define WM8994_AIF2DACR_TO_AIF1ADC2R 0x0001 /* AIF2DACR_TO_AIF1ADC2R */
-#define WM8994_AIF2DACR_TO_AIF1ADC2R_MASK 0x0001 /* AIF2DACR_TO_AIF1ADC2R */
-#define WM8994_AIF2DACR_TO_AIF1ADC2R_SHIFT 0 /* AIF2DACR_TO_AIF1ADC2R */
-#define WM8994_AIF2DACR_TO_AIF1ADC2R_WIDTH 1 /* AIF2DACR_TO_AIF1ADC2R */
-
-/*
- * R1552 (0x610) - DAC1 Left Volume
- */
-#define WM8994_DAC1L_MUTE 0x0200 /* DAC1L_MUTE */
-#define WM8994_DAC1L_MUTE_MASK 0x0200 /* DAC1L_MUTE */
-#define WM8994_DAC1L_MUTE_SHIFT 9 /* DAC1L_MUTE */
-#define WM8994_DAC1L_MUTE_WIDTH 1 /* DAC1L_MUTE */
-#define WM8994_DAC1_VU 0x0100 /* DAC1_VU */
-#define WM8994_DAC1_VU_MASK 0x0100 /* DAC1_VU */
-#define WM8994_DAC1_VU_SHIFT 8 /* DAC1_VU */
-#define WM8994_DAC1_VU_WIDTH 1 /* DAC1_VU */
-#define WM8994_DAC1L_VOL_MASK 0x00FF /* DAC1L_VOL - [7:0] */
-#define WM8994_DAC1L_VOL_SHIFT 0 /* DAC1L_VOL - [7:0] */
-#define WM8994_DAC1L_VOL_WIDTH 8 /* DAC1L_VOL - [7:0] */
-
-/*
- * R1553 (0x611) - DAC1 Right Volume
- */
-#define WM8994_DAC1R_MUTE 0x0200 /* DAC1R_MUTE */
-#define WM8994_DAC1R_MUTE_MASK 0x0200 /* DAC1R_MUTE */
-#define WM8994_DAC1R_MUTE_SHIFT 9 /* DAC1R_MUTE */
-#define WM8994_DAC1R_MUTE_WIDTH 1 /* DAC1R_MUTE */
-#define WM8994_DAC1_VU 0x0100 /* DAC1_VU */
-#define WM8994_DAC1_VU_MASK 0x0100 /* DAC1_VU */
-#define WM8994_DAC1_VU_SHIFT 8 /* DAC1_VU */
-#define WM8994_DAC1_VU_WIDTH 1 /* DAC1_VU */
-#define WM8994_DAC1R_VOL_MASK 0x00FF /* DAC1R_VOL - [7:0] */
-#define WM8994_DAC1R_VOL_SHIFT 0 /* DAC1R_VOL - [7:0] */
-#define WM8994_DAC1R_VOL_WIDTH 8 /* DAC1R_VOL - [7:0] */
-
-/*
- * R1554 (0x612) - DAC2 Left Volume
- */
-#define WM8994_DAC2L_MUTE 0x0200 /* DAC2L_MUTE */
-#define WM8994_DAC2L_MUTE_MASK 0x0200 /* DAC2L_MUTE */
-#define WM8994_DAC2L_MUTE_SHIFT 9 /* DAC2L_MUTE */
-#define WM8994_DAC2L_MUTE_WIDTH 1 /* DAC2L_MUTE */
-#define WM8994_DAC2_VU 0x0100 /* DAC2_VU */
-#define WM8994_DAC2_VU_MASK 0x0100 /* DAC2_VU */
-#define WM8994_DAC2_VU_SHIFT 8 /* DAC2_VU */
-#define WM8994_DAC2_VU_WIDTH 1 /* DAC2_VU */
-#define WM8994_DAC2L_VOL_MASK 0x00FF /* DAC2L_VOL - [7:0] */
-#define WM8994_DAC2L_VOL_SHIFT 0 /* DAC2L_VOL - [7:0] */
-#define WM8994_DAC2L_VOL_WIDTH 8 /* DAC2L_VOL - [7:0] */
-
-/*
- * R1555 (0x613) - DAC2 Right Volume
- */
-#define WM8994_DAC2R_MUTE 0x0200 /* DAC2R_MUTE */
-#define WM8994_DAC2R_MUTE_MASK 0x0200 /* DAC2R_MUTE */
-#define WM8994_DAC2R_MUTE_SHIFT 9 /* DAC2R_MUTE */
-#define WM8994_DAC2R_MUTE_WIDTH 1 /* DAC2R_MUTE */
-#define WM8994_DAC2_VU 0x0100 /* DAC2_VU */
-#define WM8994_DAC2_VU_MASK 0x0100 /* DAC2_VU */
-#define WM8994_DAC2_VU_SHIFT 8 /* DAC2_VU */
-#define WM8994_DAC2_VU_WIDTH 1 /* DAC2_VU */
-#define WM8994_DAC2R_VOL_MASK 0x00FF /* DAC2R_VOL - [7:0] */
-#define WM8994_DAC2R_VOL_SHIFT 0 /* DAC2R_VOL - [7:0] */
-#define WM8994_DAC2R_VOL_WIDTH 8 /* DAC2R_VOL - [7:0] */
-
-/*
- * R1556 (0x614) - DAC Softmute
- */
-#define WM8994_DAC_SOFTMUTEMODE 0x0002 /* DAC_SOFTMUTEMODE */
-#define WM8994_DAC_SOFTMUTEMODE_MASK 0x0002 /* DAC_SOFTMUTEMODE */
-#define WM8994_DAC_SOFTMUTEMODE_SHIFT 1 /* DAC_SOFTMUTEMODE */
-#define WM8994_DAC_SOFTMUTEMODE_WIDTH 1 /* DAC_SOFTMUTEMODE */
-#define WM8994_DAC_MUTERATE 0x0001 /* DAC_MUTERATE */
-#define WM8994_DAC_MUTERATE_MASK 0x0001 /* DAC_MUTERATE */
-#define WM8994_DAC_MUTERATE_SHIFT 0 /* DAC_MUTERATE */
-#define WM8994_DAC_MUTERATE_WIDTH 1 /* DAC_MUTERATE */
-
-/*
- * R1568 (0x620) - Oversampling
- */
-#define WM8994_ADC_OSR128 0x0002 /* ADC_OSR128 */
-#define WM8994_ADC_OSR128_MASK 0x0002 /* ADC_OSR128 */
-#define WM8994_ADC_OSR128_SHIFT 1 /* ADC_OSR128 */
-#define WM8994_ADC_OSR128_WIDTH 1 /* ADC_OSR128 */
-#define WM8994_DAC_OSR128 0x0001 /* DAC_OSR128 */
-#define WM8994_DAC_OSR128_MASK 0x0001 /* DAC_OSR128 */
-#define WM8994_DAC_OSR128_SHIFT 0 /* DAC_OSR128 */
-#define WM8994_DAC_OSR128_WIDTH 1 /* DAC_OSR128 */
-
-/*
- * R1569 (0x621) - Sidetone
- */
-#define WM8994_ST_HPF_CUT_MASK 0x0380 /* ST_HPF_CUT - [9:7] */
-#define WM8994_ST_HPF_CUT_SHIFT 7 /* ST_HPF_CUT - [9:7] */
-#define WM8994_ST_HPF_CUT_WIDTH 3 /* ST_HPF_CUT - [9:7] */
-#define WM8994_ST_HPF 0x0040 /* ST_HPF */
-#define WM8994_ST_HPF_MASK 0x0040 /* ST_HPF */
-#define WM8994_ST_HPF_SHIFT 6 /* ST_HPF */
-#define WM8994_ST_HPF_WIDTH 1 /* ST_HPF */
-#define WM8994_STR_SEL 0x0002 /* STR_SEL */
-#define WM8994_STR_SEL_MASK 0x0002 /* STR_SEL */
-#define WM8994_STR_SEL_SHIFT 1 /* STR_SEL */
-#define WM8994_STR_SEL_WIDTH 1 /* STR_SEL */
-#define WM8994_STL_SEL 0x0001 /* STL_SEL */
-#define WM8994_STL_SEL_MASK 0x0001 /* STL_SEL */
-#define WM8994_STL_SEL_SHIFT 0 /* STL_SEL */
-#define WM8994_STL_SEL_WIDTH 1 /* STL_SEL */
-
-/*
- * R1797 (0x705) - JACKDET Ctrl
- */
-#define WM1811_JACKDET_DB 0x0100 /* JACKDET_DB */
-#define WM1811_JACKDET_DB_MASK 0x0100 /* JACKDET_DB */
-#define WM1811_JACKDET_DB_SHIFT 8 /* JACKDET_DB */
-#define WM1811_JACKDET_DB_WIDTH 1 /* JACKDET_DB */
-#define WM1811_JACKDET_LVL 0x0040 /* JACKDET_LVL */
-#define WM1811_JACKDET_LVL_MASK 0x0040 /* JACKDET_LVL */
-#define WM1811_JACKDET_LVL_SHIFT 6 /* JACKDET_LVL */
-#define WM1811_JACKDET_LVL_WIDTH 1 /* JACKDET_LVL */
-
-/*
- * R1824 (0x720) - Pull Control (1)
- */
-#define WM8994_DMICDAT2_PU 0x0800 /* DMICDAT2_PU */
-#define WM8994_DMICDAT2_PU_MASK 0x0800 /* DMICDAT2_PU */
-#define WM8994_DMICDAT2_PU_SHIFT 11 /* DMICDAT2_PU */
-#define WM8994_DMICDAT2_PU_WIDTH 1 /* DMICDAT2_PU */
-#define WM8994_DMICDAT2_PD 0x0400 /* DMICDAT2_PD */
-#define WM8994_DMICDAT2_PD_MASK 0x0400 /* DMICDAT2_PD */
-#define WM8994_DMICDAT2_PD_SHIFT 10 /* DMICDAT2_PD */
-#define WM8994_DMICDAT2_PD_WIDTH 1 /* DMICDAT2_PD */
-#define WM8994_DMICDAT1_PU 0x0200 /* DMICDAT1_PU */
-#define WM8994_DMICDAT1_PU_MASK 0x0200 /* DMICDAT1_PU */
-#define WM8994_DMICDAT1_PU_SHIFT 9 /* DMICDAT1_PU */
-#define WM8994_DMICDAT1_PU_WIDTH 1 /* DMICDAT1_PU */
-#define WM8994_DMICDAT1_PD 0x0100 /* DMICDAT1_PD */
-#define WM8994_DMICDAT1_PD_MASK 0x0100 /* DMICDAT1_PD */
-#define WM8994_DMICDAT1_PD_SHIFT 8 /* DMICDAT1_PD */
-#define WM8994_DMICDAT1_PD_WIDTH 1 /* DMICDAT1_PD */
-#define WM8994_MCLK1_PU 0x0080 /* MCLK1_PU */
-#define WM8994_MCLK1_PU_MASK 0x0080 /* MCLK1_PU */
-#define WM8994_MCLK1_PU_SHIFT 7 /* MCLK1_PU */
-#define WM8994_MCLK1_PU_WIDTH 1 /* MCLK1_PU */
-#define WM8994_MCLK1_PD 0x0040 /* MCLK1_PD */
-#define WM8994_MCLK1_PD_MASK 0x0040 /* MCLK1_PD */
-#define WM8994_MCLK1_PD_SHIFT 6 /* MCLK1_PD */
-#define WM8994_MCLK1_PD_WIDTH 1 /* MCLK1_PD */
-#define WM8994_DACDAT1_PU 0x0020 /* DACDAT1_PU */
-#define WM8994_DACDAT1_PU_MASK 0x0020 /* DACDAT1_PU */
-#define WM8994_DACDAT1_PU_SHIFT 5 /* DACDAT1_PU */
-#define WM8994_DACDAT1_PU_WIDTH 1 /* DACDAT1_PU */
-#define WM8994_DACDAT1_PD 0x0010 /* DACDAT1_PD */
-#define WM8994_DACDAT1_PD_MASK 0x0010 /* DACDAT1_PD */
-#define WM8994_DACDAT1_PD_SHIFT 4 /* DACDAT1_PD */
-#define WM8994_DACDAT1_PD_WIDTH 1 /* DACDAT1_PD */
-#define WM8994_DACLRCLK1_PU 0x0008 /* DACLRCLK1_PU */
-#define WM8994_DACLRCLK1_PU_MASK 0x0008 /* DACLRCLK1_PU */
-#define WM8994_DACLRCLK1_PU_SHIFT 3 /* DACLRCLK1_PU */
-#define WM8994_DACLRCLK1_PU_WIDTH 1 /* DACLRCLK1_PU */
-#define WM8994_DACLRCLK1_PD 0x0004 /* DACLRCLK1_PD */
-#define WM8994_DACLRCLK1_PD_MASK 0x0004 /* DACLRCLK1_PD */
-#define WM8994_DACLRCLK1_PD_SHIFT 2 /* DACLRCLK1_PD */
-#define WM8994_DACLRCLK1_PD_WIDTH 1 /* DACLRCLK1_PD */
-#define WM8994_BCLK1_PU 0x0002 /* BCLK1_PU */
-#define WM8994_BCLK1_PU_MASK 0x0002 /* BCLK1_PU */
-#define WM8994_BCLK1_PU_SHIFT 1 /* BCLK1_PU */
-#define WM8994_BCLK1_PU_WIDTH 1 /* BCLK1_PU */
-#define WM8994_BCLK1_PD 0x0001 /* BCLK1_PD */
-#define WM8994_BCLK1_PD_MASK 0x0001 /* BCLK1_PD */
-#define WM8994_BCLK1_PD_SHIFT 0 /* BCLK1_PD */
-#define WM8994_BCLK1_PD_WIDTH 1 /* BCLK1_PD */
-
-/*
- * R1825 (0x721) - Pull Control (2)
- */
-#define WM8994_CSNADDR_PD 0x0100 /* CSNADDR_PD */
-#define WM8994_CSNADDR_PD_MASK 0x0100 /* CSNADDR_PD */
-#define WM8994_CSNADDR_PD_SHIFT 8 /* CSNADDR_PD */
-#define WM8994_CSNADDR_PD_WIDTH 1 /* CSNADDR_PD */
-#define WM8994_LDO2ENA_PD 0x0040 /* LDO2ENA_PD */
-#define WM8994_LDO2ENA_PD_MASK 0x0040 /* LDO2ENA_PD */
-#define WM8994_LDO2ENA_PD_SHIFT 6 /* LDO2ENA_PD */
-#define WM8994_LDO2ENA_PD_WIDTH 1 /* LDO2ENA_PD */
-#define WM8994_LDO1ENA_PD 0x0010 /* LDO1ENA_PD */
-#define WM8994_LDO1ENA_PD_MASK 0x0010 /* LDO1ENA_PD */
-#define WM8994_LDO1ENA_PD_SHIFT 4 /* LDO1ENA_PD */
-#define WM8994_LDO1ENA_PD_WIDTH 1 /* LDO1ENA_PD */
-#define WM8994_CIFMODE_PD 0x0004 /* CIFMODE_PD */
-#define WM8994_CIFMODE_PD_MASK 0x0004 /* CIFMODE_PD */
-#define WM8994_CIFMODE_PD_SHIFT 2 /* CIFMODE_PD */
-#define WM8994_CIFMODE_PD_WIDTH 1 /* CIFMODE_PD */
-#define WM8994_SPKMODE_PU 0x0002 /* SPKMODE_PU */
-#define WM8994_SPKMODE_PU_MASK 0x0002 /* SPKMODE_PU */
-#define WM8994_SPKMODE_PU_SHIFT 1 /* SPKMODE_PU */
-#define WM8994_SPKMODE_PU_WIDTH 1 /* SPKMODE_PU */
-
-/*
- * R1840 (0x730) - Interrupt Status 1
- */
-#define WM8994_GP11_EINT 0x0400 /* GP11_EINT */
-#define WM8994_GP11_EINT_MASK 0x0400 /* GP11_EINT */
-#define WM8994_GP11_EINT_SHIFT 10 /* GP11_EINT */
-#define WM8994_GP11_EINT_WIDTH 1 /* GP11_EINT */
-#define WM8994_GP10_EINT 0x0200 /* GP10_EINT */
-#define WM8994_GP10_EINT_MASK 0x0200 /* GP10_EINT */
-#define WM8994_GP10_EINT_SHIFT 9 /* GP10_EINT */
-#define WM8994_GP10_EINT_WIDTH 1 /* GP10_EINT */
-#define WM8994_GP9_EINT 0x0100 /* GP9_EINT */
-#define WM8994_GP9_EINT_MASK 0x0100 /* GP9_EINT */
-#define WM8994_GP9_EINT_SHIFT 8 /* GP9_EINT */
-#define WM8994_GP9_EINT_WIDTH 1 /* GP9_EINT */
-#define WM8994_GP8_EINT 0x0080 /* GP8_EINT */
-#define WM8994_GP8_EINT_MASK 0x0080 /* GP8_EINT */
-#define WM8994_GP8_EINT_SHIFT 7 /* GP8_EINT */
-#define WM8994_GP8_EINT_WIDTH 1 /* GP8_EINT */
-#define WM8994_GP7_EINT 0x0040 /* GP7_EINT */
-#define WM8994_GP7_EINT_MASK 0x0040 /* GP7_EINT */
-#define WM8994_GP7_EINT_SHIFT 6 /* GP7_EINT */
-#define WM8994_GP7_EINT_WIDTH 1 /* GP7_EINT */
-#define WM8994_GP6_EINT 0x0020 /* GP6_EINT */
-#define WM8994_GP6_EINT_MASK 0x0020 /* GP6_EINT */
-#define WM8994_GP6_EINT_SHIFT 5 /* GP6_EINT */
-#define WM8994_GP6_EINT_WIDTH 1 /* GP6_EINT */
-#define WM8994_GP5_EINT 0x0010 /* GP5_EINT */
-#define WM8994_GP5_EINT_MASK 0x0010 /* GP5_EINT */
-#define WM8994_GP5_EINT_SHIFT 4 /* GP5_EINT */
-#define WM8994_GP5_EINT_WIDTH 1 /* GP5_EINT */
-#define WM8994_GP4_EINT 0x0008 /* GP4_EINT */
-#define WM8994_GP4_EINT_MASK 0x0008 /* GP4_EINT */
-#define WM8994_GP4_EINT_SHIFT 3 /* GP4_EINT */
-#define WM8994_GP4_EINT_WIDTH 1 /* GP4_EINT */
-#define WM8994_GP3_EINT 0x0004 /* GP3_EINT */
-#define WM8994_GP3_EINT_MASK 0x0004 /* GP3_EINT */
-#define WM8994_GP3_EINT_SHIFT 2 /* GP3_EINT */
-#define WM8994_GP3_EINT_WIDTH 1 /* GP3_EINT */
-#define WM8994_GP2_EINT 0x0002 /* GP2_EINT */
-#define WM8994_GP2_EINT_MASK 0x0002 /* GP2_EINT */
-#define WM8994_GP2_EINT_SHIFT 1 /* GP2_EINT */
-#define WM8994_GP2_EINT_WIDTH 1 /* GP2_EINT */
-#define WM8994_GP1_EINT 0x0001 /* GP1_EINT */
-#define WM8994_GP1_EINT_MASK 0x0001 /* GP1_EINT */
-#define WM8994_GP1_EINT_SHIFT 0 /* GP1_EINT */
-#define WM8994_GP1_EINT_WIDTH 1 /* GP1_EINT */
-
-/*
- * R1841 (0x731) - Interrupt Status 2
- */
-#define WM8994_TEMP_WARN_EINT 0x8000 /* TEMP_WARN_EINT */
-#define WM8994_TEMP_WARN_EINT_MASK 0x8000 /* TEMP_WARN_EINT */
-#define WM8994_TEMP_WARN_EINT_SHIFT 15 /* TEMP_WARN_EINT */
-#define WM8994_TEMP_WARN_EINT_WIDTH 1 /* TEMP_WARN_EINT */
-#define WM8994_DCS_DONE_EINT 0x4000 /* DCS_DONE_EINT */
-#define WM8994_DCS_DONE_EINT_MASK 0x4000 /* DCS_DONE_EINT */
-#define WM8994_DCS_DONE_EINT_SHIFT 14 /* DCS_DONE_EINT */
-#define WM8994_DCS_DONE_EINT_WIDTH 1 /* DCS_DONE_EINT */
-#define WM8994_WSEQ_DONE_EINT 0x2000 /* WSEQ_DONE_EINT */
-#define WM8994_WSEQ_DONE_EINT_MASK 0x2000 /* WSEQ_DONE_EINT */
-#define WM8994_WSEQ_DONE_EINT_SHIFT 13 /* WSEQ_DONE_EINT */
-#define WM8994_WSEQ_DONE_EINT_WIDTH 1 /* WSEQ_DONE_EINT */
-#define WM8994_FIFOS_ERR_EINT 0x1000 /* FIFOS_ERR_EINT */
-#define WM8994_FIFOS_ERR_EINT_MASK 0x1000 /* FIFOS_ERR_EINT */
-#define WM8994_FIFOS_ERR_EINT_SHIFT 12 /* FIFOS_ERR_EINT */
-#define WM8994_FIFOS_ERR_EINT_WIDTH 1 /* FIFOS_ERR_EINT */
-#define WM8994_AIF2DRC_SIG_DET_EINT 0x0800 /* AIF2DRC_SIG_DET_EINT */
-#define WM8994_AIF2DRC_SIG_DET_EINT_MASK 0x0800 /* AIF2DRC_SIG_DET_EINT */
-#define WM8994_AIF2DRC_SIG_DET_EINT_SHIFT 11 /* AIF2DRC_SIG_DET_EINT */
-#define WM8994_AIF2DRC_SIG_DET_EINT_WIDTH 1 /* AIF2DRC_SIG_DET_EINT */
-#define WM8994_AIF1DRC2_SIG_DET_EINT 0x0400 /* AIF1DRC2_SIG_DET_EINT */
-#define WM8994_AIF1DRC2_SIG_DET_EINT_MASK 0x0400 /* AIF1DRC2_SIG_DET_EINT */
-#define WM8994_AIF1DRC2_SIG_DET_EINT_SHIFT 10 /* AIF1DRC2_SIG_DET_EINT */
-#define WM8994_AIF1DRC2_SIG_DET_EINT_WIDTH 1 /* AIF1DRC2_SIG_DET_EINT */
-#define WM8994_AIF1DRC1_SIG_DET_EINT 0x0200 /* AIF1DRC1_SIG_DET_EINT */
-#define WM8994_AIF1DRC1_SIG_DET_EINT_MASK 0x0200 /* AIF1DRC1_SIG_DET_EINT */
-#define WM8994_AIF1DRC1_SIG_DET_EINT_SHIFT 9 /* AIF1DRC1_SIG_DET_EINT */
-#define WM8994_AIF1DRC1_SIG_DET_EINT_WIDTH 1 /* AIF1DRC1_SIG_DET_EINT */
-#define WM8994_SRC2_LOCK_EINT 0x0100 /* SRC2_LOCK_EINT */
-#define WM8994_SRC2_LOCK_EINT_MASK 0x0100 /* SRC2_LOCK_EINT */
-#define WM8994_SRC2_LOCK_EINT_SHIFT 8 /* SRC2_LOCK_EINT */
-#define WM8994_SRC2_LOCK_EINT_WIDTH 1 /* SRC2_LOCK_EINT */
-#define WM8994_SRC1_LOCK_EINT 0x0080 /* SRC1_LOCK_EINT */
-#define WM8994_SRC1_LOCK_EINT_MASK 0x0080 /* SRC1_LOCK_EINT */
-#define WM8994_SRC1_LOCK_EINT_SHIFT 7 /* SRC1_LOCK_EINT */
-#define WM8994_SRC1_LOCK_EINT_WIDTH 1 /* SRC1_LOCK_EINT */
-#define WM8994_FLL2_LOCK_EINT 0x0040 /* FLL2_LOCK_EINT */
-#define WM8994_FLL2_LOCK_EINT_MASK 0x0040 /* FLL2_LOCK_EINT */
-#define WM8994_FLL2_LOCK_EINT_SHIFT 6 /* FLL2_LOCK_EINT */
-#define WM8994_FLL2_LOCK_EINT_WIDTH 1 /* FLL2_LOCK_EINT */
-#define WM8994_FLL1_LOCK_EINT 0x0020 /* FLL1_LOCK_EINT */
-#define WM8994_FLL1_LOCK_EINT_MASK 0x0020 /* FLL1_LOCK_EINT */
-#define WM8994_FLL1_LOCK_EINT_SHIFT 5 /* FLL1_LOCK_EINT */
-#define WM8994_FLL1_LOCK_EINT_WIDTH 1 /* FLL1_LOCK_EINT */
-#define WM8994_MIC2_SHRT_EINT 0x0010 /* MIC2_SHRT_EINT */
-#define WM8994_MIC2_SHRT_EINT_MASK 0x0010 /* MIC2_SHRT_EINT */
-#define WM8994_MIC2_SHRT_EINT_SHIFT 4 /* MIC2_SHRT_EINT */
-#define WM8994_MIC2_SHRT_EINT_WIDTH 1 /* MIC2_SHRT_EINT */
-#define WM8994_MIC2_DET_EINT 0x0008 /* MIC2_DET_EINT */
-#define WM8994_MIC2_DET_EINT_MASK 0x0008 /* MIC2_DET_EINT */
-#define WM8994_MIC2_DET_EINT_SHIFT 3 /* MIC2_DET_EINT */
-#define WM8994_MIC2_DET_EINT_WIDTH 1 /* MIC2_DET_EINT */
-#define WM8994_MIC1_SHRT_EINT 0x0004 /* MIC1_SHRT_EINT */
-#define WM8994_MIC1_SHRT_EINT_MASK 0x0004 /* MIC1_SHRT_EINT */
-#define WM8994_MIC1_SHRT_EINT_SHIFT 2 /* MIC1_SHRT_EINT */
-#define WM8994_MIC1_SHRT_EINT_WIDTH 1 /* MIC1_SHRT_EINT */
-#define WM8994_MIC1_DET_EINT 0x0002 /* MIC1_DET_EINT */
-#define WM8994_MIC1_DET_EINT_MASK 0x0002 /* MIC1_DET_EINT */
-#define WM8994_MIC1_DET_EINT_SHIFT 1 /* MIC1_DET_EINT */
-#define WM8994_MIC1_DET_EINT_WIDTH 1 /* MIC1_DET_EINT */
-#define WM8994_TEMP_SHUT_EINT 0x0001 /* TEMP_SHUT_EINT */
-#define WM8994_TEMP_SHUT_EINT_MASK 0x0001 /* TEMP_SHUT_EINT */
-#define WM8994_TEMP_SHUT_EINT_SHIFT 0 /* TEMP_SHUT_EINT */
-#define WM8994_TEMP_SHUT_EINT_WIDTH 1 /* TEMP_SHUT_EINT */
-
-/*
- * R1842 (0x732) - Interrupt Raw Status 2
- */
-#define WM8994_TEMP_WARN_STS 0x8000 /* TEMP_WARN_STS */
-#define WM8994_TEMP_WARN_STS_MASK 0x8000 /* TEMP_WARN_STS */
-#define WM8994_TEMP_WARN_STS_SHIFT 15 /* TEMP_WARN_STS */
-#define WM8994_TEMP_WARN_STS_WIDTH 1 /* TEMP_WARN_STS */
-#define WM8994_DCS_DONE_STS 0x4000 /* DCS_DONE_STS */
-#define WM8994_DCS_DONE_STS_MASK 0x4000 /* DCS_DONE_STS */
-#define WM8994_DCS_DONE_STS_SHIFT 14 /* DCS_DONE_STS */
-#define WM8994_DCS_DONE_STS_WIDTH 1 /* DCS_DONE_STS */
-#define WM8994_WSEQ_DONE_STS 0x2000 /* WSEQ_DONE_STS */
-#define WM8994_WSEQ_DONE_STS_MASK 0x2000 /* WSEQ_DONE_STS */
-#define WM8994_WSEQ_DONE_STS_SHIFT 13 /* WSEQ_DONE_STS */
-#define WM8994_WSEQ_DONE_STS_WIDTH 1 /* WSEQ_DONE_STS */
-#define WM8994_FIFOS_ERR_STS 0x1000 /* FIFOS_ERR_STS */
-#define WM8994_FIFOS_ERR_STS_MASK 0x1000 /* FIFOS_ERR_STS */
-#define WM8994_FIFOS_ERR_STS_SHIFT 12 /* FIFOS_ERR_STS */
-#define WM8994_FIFOS_ERR_STS_WIDTH 1 /* FIFOS_ERR_STS */
-#define WM8994_AIF2DRC_SIG_DET_STS 0x0800 /* AIF2DRC_SIG_DET_STS */
-#define WM8994_AIF2DRC_SIG_DET_STS_MASK 0x0800 /* AIF2DRC_SIG_DET_STS */
-#define WM8994_AIF2DRC_SIG_DET_STS_SHIFT 11 /* AIF2DRC_SIG_DET_STS */
-#define WM8994_AIF2DRC_SIG_DET_STS_WIDTH 1 /* AIF2DRC_SIG_DET_STS */
-#define WM8994_AIF1DRC2_SIG_DET_STS 0x0400 /* AIF1DRC2_SIG_DET_STS */
-#define WM8994_AIF1DRC2_SIG_DET_STS_MASK 0x0400 /* AIF1DRC2_SIG_DET_STS */
-#define WM8994_AIF1DRC2_SIG_DET_STS_SHIFT 10 /* AIF1DRC2_SIG_DET_STS */
-#define WM8994_AIF1DRC2_SIG_DET_STS_WIDTH 1 /* AIF1DRC2_SIG_DET_STS */
-#define WM8994_AIF1DRC1_SIG_DET_STS 0x0200 /* AIF1DRC1_SIG_DET_STS */
-#define WM8994_AIF1DRC1_SIG_DET_STS_MASK 0x0200 /* AIF1DRC1_SIG_DET_STS */
-#define WM8994_AIF1DRC1_SIG_DET_STS_SHIFT 9 /* AIF1DRC1_SIG_DET_STS */
-#define WM8994_AIF1DRC1_SIG_DET_STS_WIDTH 1 /* AIF1DRC1_SIG_DET_STS */
-#define WM8994_SRC2_LOCK_STS 0x0100 /* SRC2_LOCK_STS */
-#define WM8994_SRC2_LOCK_STS_MASK 0x0100 /* SRC2_LOCK_STS */
-#define WM8994_SRC2_LOCK_STS_SHIFT 8 /* SRC2_LOCK_STS */
-#define WM8994_SRC2_LOCK_STS_WIDTH 1 /* SRC2_LOCK_STS */
-#define WM8994_SRC1_LOCK_STS 0x0080 /* SRC1_LOCK_STS */
-#define WM8994_SRC1_LOCK_STS_MASK 0x0080 /* SRC1_LOCK_STS */
-#define WM8994_SRC1_LOCK_STS_SHIFT 7 /* SRC1_LOCK_STS */
-#define WM8994_SRC1_LOCK_STS_WIDTH 1 /* SRC1_LOCK_STS */
-#define WM8994_FLL2_LOCK_STS 0x0040 /* FLL2_LOCK_STS */
-#define WM8994_FLL2_LOCK_STS_MASK 0x0040 /* FLL2_LOCK_STS */
-#define WM8994_FLL2_LOCK_STS_SHIFT 6 /* FLL2_LOCK_STS */
-#define WM8994_FLL2_LOCK_STS_WIDTH 1 /* FLL2_LOCK_STS */
-#define WM8994_FLL1_LOCK_STS 0x0020 /* FLL1_LOCK_STS */
-#define WM8994_FLL1_LOCK_STS_MASK 0x0020 /* FLL1_LOCK_STS */
-#define WM8994_FLL1_LOCK_STS_SHIFT 5 /* FLL1_LOCK_STS */
-#define WM8994_FLL1_LOCK_STS_WIDTH 1 /* FLL1_LOCK_STS */
-#define WM8994_MIC2_SHRT_STS 0x0010 /* MIC2_SHRT_STS */
-#define WM8994_MIC2_SHRT_STS_MASK 0x0010 /* MIC2_SHRT_STS */
-#define WM8994_MIC2_SHRT_STS_SHIFT 4 /* MIC2_SHRT_STS */
-#define WM8994_MIC2_SHRT_STS_WIDTH 1 /* MIC2_SHRT_STS */
-#define WM8994_MIC2_DET_STS 0x0008 /* MIC2_DET_STS */
-#define WM8994_MIC2_DET_STS_MASK 0x0008 /* MIC2_DET_STS */
-#define WM8994_MIC2_DET_STS_SHIFT 3 /* MIC2_DET_STS */
-#define WM8994_MIC2_DET_STS_WIDTH 1 /* MIC2_DET_STS */
-#define WM8994_MIC1_SHRT_STS 0x0004 /* MIC1_SHRT_STS */
-#define WM8994_MIC1_SHRT_STS_MASK 0x0004 /* MIC1_SHRT_STS */
-#define WM8994_MIC1_SHRT_STS_SHIFT 2 /* MIC1_SHRT_STS */
-#define WM8994_MIC1_SHRT_STS_WIDTH 1 /* MIC1_SHRT_STS */
-#define WM8994_MIC1_DET_STS 0x0002 /* MIC1_DET_STS */
-#define WM8994_MIC1_DET_STS_MASK 0x0002 /* MIC1_DET_STS */
-#define WM8994_MIC1_DET_STS_SHIFT 1 /* MIC1_DET_STS */
-#define WM8994_MIC1_DET_STS_WIDTH 1 /* MIC1_DET_STS */
-#define WM8994_TEMP_SHUT_STS 0x0001 /* TEMP_SHUT_STS */
-#define WM8994_TEMP_SHUT_STS_MASK 0x0001 /* TEMP_SHUT_STS */
-#define WM8994_TEMP_SHUT_STS_SHIFT 0 /* TEMP_SHUT_STS */
-#define WM8994_TEMP_SHUT_STS_WIDTH 1 /* TEMP_SHUT_STS */
-
-/*
- * R1848 (0x738) - Interrupt Status 1 Mask
- */
-#define WM8994_IM_GP11_EINT 0x0400 /* IM_GP11_EINT */
-#define WM8994_IM_GP11_EINT_MASK 0x0400 /* IM_GP11_EINT */
-#define WM8994_IM_GP11_EINT_SHIFT 10 /* IM_GP11_EINT */
-#define WM8994_IM_GP11_EINT_WIDTH 1 /* IM_GP11_EINT */
-#define WM8994_IM_GP10_EINT 0x0200 /* IM_GP10_EINT */
-#define WM8994_IM_GP10_EINT_MASK 0x0200 /* IM_GP10_EINT */
-#define WM8994_IM_GP10_EINT_SHIFT 9 /* IM_GP10_EINT */
-#define WM8994_IM_GP10_EINT_WIDTH 1 /* IM_GP10_EINT */
-#define WM8994_IM_GP9_EINT 0x0100 /* IM_GP9_EINT */
-#define WM8994_IM_GP9_EINT_MASK 0x0100 /* IM_GP9_EINT */
-#define WM8994_IM_GP9_EINT_SHIFT 8 /* IM_GP9_EINT */
-#define WM8994_IM_GP9_EINT_WIDTH 1 /* IM_GP9_EINT */
-#define WM8994_IM_GP8_EINT 0x0080 /* IM_GP8_EINT */
-#define WM8994_IM_GP8_EINT_MASK 0x0080 /* IM_GP8_EINT */
-#define WM8994_IM_GP8_EINT_SHIFT 7 /* IM_GP8_EINT */
-#define WM8994_IM_GP8_EINT_WIDTH 1 /* IM_GP8_EINT */
-#define WM8994_IM_GP7_EINT 0x0040 /* IM_GP7_EINT */
-#define WM8994_IM_GP7_EINT_MASK 0x0040 /* IM_GP7_EINT */
-#define WM8994_IM_GP7_EINT_SHIFT 6 /* IM_GP7_EINT */
-#define WM8994_IM_GP7_EINT_WIDTH 1 /* IM_GP7_EINT */
-#define WM8994_IM_GP6_EINT 0x0020 /* IM_GP6_EINT */
-#define WM8994_IM_GP6_EINT_MASK 0x0020 /* IM_GP6_EINT */
-#define WM8994_IM_GP6_EINT_SHIFT 5 /* IM_GP6_EINT */
-#define WM8994_IM_GP6_EINT_WIDTH 1 /* IM_GP6_EINT */
-#define WM8994_IM_GP5_EINT 0x0010 /* IM_GP5_EINT */
-#define WM8994_IM_GP5_EINT_MASK 0x0010 /* IM_GP5_EINT */
-#define WM8994_IM_GP5_EINT_SHIFT 4 /* IM_GP5_EINT */
-#define WM8994_IM_GP5_EINT_WIDTH 1 /* IM_GP5_EINT */
-#define WM8994_IM_GP4_EINT 0x0008 /* IM_GP4_EINT */
-#define WM8994_IM_GP4_EINT_MASK 0x0008 /* IM_GP4_EINT */
-#define WM8994_IM_GP4_EINT_SHIFT 3 /* IM_GP4_EINT */
-#define WM8994_IM_GP4_EINT_WIDTH 1 /* IM_GP4_EINT */
-#define WM8994_IM_GP3_EINT 0x0004 /* IM_GP3_EINT */
-#define WM8994_IM_GP3_EINT_MASK 0x0004 /* IM_GP3_EINT */
-#define WM8994_IM_GP3_EINT_SHIFT 2 /* IM_GP3_EINT */
-#define WM8994_IM_GP3_EINT_WIDTH 1 /* IM_GP3_EINT */
-#define WM8994_IM_GP2_EINT 0x0002 /* IM_GP2_EINT */
-#define WM8994_IM_GP2_EINT_MASK 0x0002 /* IM_GP2_EINT */
-#define WM8994_IM_GP2_EINT_SHIFT 1 /* IM_GP2_EINT */
-#define WM8994_IM_GP2_EINT_WIDTH 1 /* IM_GP2_EINT */
-#define WM8994_IM_GP1_EINT 0x0001 /* IM_GP1_EINT */
-#define WM8994_IM_GP1_EINT_MASK 0x0001 /* IM_GP1_EINT */
-#define WM8994_IM_GP1_EINT_SHIFT 0 /* IM_GP1_EINT */
-#define WM8994_IM_GP1_EINT_WIDTH 1 /* IM_GP1_EINT */
-
-/*
- * R1849 (0x739) - Interrupt Status 2 Mask
- */
-#define WM8994_IM_TEMP_WARN_EINT 0x8000 /* IM_TEMP_WARN_EINT */
-#define WM8994_IM_TEMP_WARN_EINT_MASK 0x8000 /* IM_TEMP_WARN_EINT */
-#define WM8994_IM_TEMP_WARN_EINT_SHIFT 15 /* IM_TEMP_WARN_EINT */
-#define WM8994_IM_TEMP_WARN_EINT_WIDTH 1 /* IM_TEMP_WARN_EINT */
-#define WM8994_IM_DCS_DONE_EINT 0x4000 /* IM_DCS_DONE_EINT */
-#define WM8994_IM_DCS_DONE_EINT_MASK 0x4000 /* IM_DCS_DONE_EINT */
-#define WM8994_IM_DCS_DONE_EINT_SHIFT 14 /* IM_DCS_DONE_EINT */
-#define WM8994_IM_DCS_DONE_EINT_WIDTH 1 /* IM_DCS_DONE_EINT */
-#define WM8994_IM_WSEQ_DONE_EINT 0x2000 /* IM_WSEQ_DONE_EINT */
-#define WM8994_IM_WSEQ_DONE_EINT_MASK 0x2000 /* IM_WSEQ_DONE_EINT */
-#define WM8994_IM_WSEQ_DONE_EINT_SHIFT 13 /* IM_WSEQ_DONE_EINT */
-#define WM8994_IM_WSEQ_DONE_EINT_WIDTH 1 /* IM_WSEQ_DONE_EINT */
-#define WM8994_IM_FIFOS_ERR_EINT 0x1000 /* IM_FIFOS_ERR_EINT */
-#define WM8994_IM_FIFOS_ERR_EINT_MASK 0x1000 /* IM_FIFOS_ERR_EINT */
-#define WM8994_IM_FIFOS_ERR_EINT_SHIFT 12 /* IM_FIFOS_ERR_EINT */
-#define WM8994_IM_FIFOS_ERR_EINT_WIDTH 1 /* IM_FIFOS_ERR_EINT */
-#define WM8994_IM_AIF2DRC_SIG_DET_EINT 0x0800 /* IM_AIF2DRC_SIG_DET_EINT */
-#define WM8994_IM_AIF2DRC_SIG_DET_EINT_MASK 0x0800 /* IM_AIF2DRC_SIG_DET_EINT */
-#define WM8994_IM_AIF2DRC_SIG_DET_EINT_SHIFT 11 /* IM_AIF2DRC_SIG_DET_EINT */
-#define WM8994_IM_AIF2DRC_SIG_DET_EINT_WIDTH 1 /* IM_AIF2DRC_SIG_DET_EINT */
-#define WM8994_IM_AIF1DRC2_SIG_DET_EINT 0x0400 /* IM_AIF1DRC2_SIG_DET_EINT */
-#define WM8994_IM_AIF1DRC2_SIG_DET_EINT_MASK 0x0400 /* IM_AIF1DRC2_SIG_DET_EINT */
-#define WM8994_IM_AIF1DRC2_SIG_DET_EINT_SHIFT 10 /* IM_AIF1DRC2_SIG_DET_EINT */
-#define WM8994_IM_AIF1DRC2_SIG_DET_EINT_WIDTH 1 /* IM_AIF1DRC2_SIG_DET_EINT */
-#define WM8994_IM_AIF1DRC1_SIG_DET_EINT 0x0200 /* IM_AIF1DRC1_SIG_DET_EINT */
-#define WM8994_IM_AIF1DRC1_SIG_DET_EINT_MASK 0x0200 /* IM_AIF1DRC1_SIG_DET_EINT */
-#define WM8994_IM_AIF1DRC1_SIG_DET_EINT_SHIFT 9 /* IM_AIF1DRC1_SIG_DET_EINT */
-#define WM8994_IM_AIF1DRC1_SIG_DET_EINT_WIDTH 1 /* IM_AIF1DRC1_SIG_DET_EINT */
-#define WM8994_IM_SRC2_LOCK_EINT 0x0100 /* IM_SRC2_LOCK_EINT */
-#define WM8994_IM_SRC2_LOCK_EINT_MASK 0x0100 /* IM_SRC2_LOCK_EINT */
-#define WM8994_IM_SRC2_LOCK_EINT_SHIFT 8 /* IM_SRC2_LOCK_EINT */
-#define WM8994_IM_SRC2_LOCK_EINT_WIDTH 1 /* IM_SRC2_LOCK_EINT */
-#define WM8994_IM_SRC1_LOCK_EINT 0x0080 /* IM_SRC1_LOCK_EINT */
-#define WM8994_IM_SRC1_LOCK_EINT_MASK 0x0080 /* IM_SRC1_LOCK_EINT */
-#define WM8994_IM_SRC1_LOCK_EINT_SHIFT 7 /* IM_SRC1_LOCK_EINT */
-#define WM8994_IM_SRC1_LOCK_EINT_WIDTH 1 /* IM_SRC1_LOCK_EINT */
-#define WM8994_IM_FLL2_LOCK_EINT 0x0040 /* IM_FLL2_LOCK_EINT */
-#define WM8994_IM_FLL2_LOCK_EINT_MASK 0x0040 /* IM_FLL2_LOCK_EINT */
-#define WM8994_IM_FLL2_LOCK_EINT_SHIFT 6 /* IM_FLL2_LOCK_EINT */
-#define WM8994_IM_FLL2_LOCK_EINT_WIDTH 1 /* IM_FLL2_LOCK_EINT */
-#define WM8994_IM_FLL1_LOCK_EINT 0x0020 /* IM_FLL1_LOCK_EINT */
-#define WM8994_IM_FLL1_LOCK_EINT_MASK 0x0020 /* IM_FLL1_LOCK_EINT */
-#define WM8994_IM_FLL1_LOCK_EINT_SHIFT 5 /* IM_FLL1_LOCK_EINT */
-#define WM8994_IM_FLL1_LOCK_EINT_WIDTH 1 /* IM_FLL1_LOCK_EINT */
-#define WM8994_IM_MIC2_SHRT_EINT 0x0010 /* IM_MIC2_SHRT_EINT */
-#define WM8994_IM_MIC2_SHRT_EINT_MASK 0x0010 /* IM_MIC2_SHRT_EINT */
-#define WM8994_IM_MIC2_SHRT_EINT_SHIFT 4 /* IM_MIC2_SHRT_EINT */
-#define WM8994_IM_MIC2_SHRT_EINT_WIDTH 1 /* IM_MIC2_SHRT_EINT */
-#define WM8994_IM_MIC2_DET_EINT 0x0008 /* IM_MIC2_DET_EINT */
-#define WM8994_IM_MIC2_DET_EINT_MASK 0x0008 /* IM_MIC2_DET_EINT */
-#define WM8994_IM_MIC2_DET_EINT_SHIFT 3 /* IM_MIC2_DET_EINT */
-#define WM8994_IM_MIC2_DET_EINT_WIDTH 1 /* IM_MIC2_DET_EINT */
-#define WM8994_IM_MIC1_SHRT_EINT 0x0004 /* IM_MIC1_SHRT_EINT */
-#define WM8994_IM_MIC1_SHRT_EINT_MASK 0x0004 /* IM_MIC1_SHRT_EINT */
-#define WM8994_IM_MIC1_SHRT_EINT_SHIFT 2 /* IM_MIC1_SHRT_EINT */
-#define WM8994_IM_MIC1_SHRT_EINT_WIDTH 1 /* IM_MIC1_SHRT_EINT */
-#define WM8994_IM_MIC1_DET_EINT 0x0002 /* IM_MIC1_DET_EINT */
-#define WM8994_IM_MIC1_DET_EINT_MASK 0x0002 /* IM_MIC1_DET_EINT */
-#define WM8994_IM_MIC1_DET_EINT_SHIFT 1 /* IM_MIC1_DET_EINT */
-#define WM8994_IM_MIC1_DET_EINT_WIDTH 1 /* IM_MIC1_DET_EINT */
-#define WM8994_IM_TEMP_SHUT_EINT 0x0001 /* IM_TEMP_SHUT_EINT */
-#define WM8994_IM_TEMP_SHUT_EINT_MASK 0x0001 /* IM_TEMP_SHUT_EINT */
-#define WM8994_IM_TEMP_SHUT_EINT_SHIFT 0 /* IM_TEMP_SHUT_EINT */
-#define WM8994_IM_TEMP_SHUT_EINT_WIDTH 1 /* IM_TEMP_SHUT_EINT */
-
-/*
- * R1856 (0x740) - Interrupt Control
- */
-#define WM8994_IM_IRQ 0x0001 /* IM_IRQ */
-#define WM8994_IM_IRQ_MASK 0x0001 /* IM_IRQ */
-#define WM8994_IM_IRQ_SHIFT 0 /* IM_IRQ */
-#define WM8994_IM_IRQ_WIDTH 1 /* IM_IRQ */
-
-/*
- * R1864 (0x748) - IRQ Debounce
- */
-#define WM8994_TEMP_WARN_DB 0x0020 /* TEMP_WARN_DB */
-#define WM8994_TEMP_WARN_DB_MASK 0x0020 /* TEMP_WARN_DB */
-#define WM8994_TEMP_WARN_DB_SHIFT 5 /* TEMP_WARN_DB */
-#define WM8994_TEMP_WARN_DB_WIDTH 1 /* TEMP_WARN_DB */
-#define WM8994_MIC2_SHRT_DB 0x0010 /* MIC2_SHRT_DB */
-#define WM8994_MIC2_SHRT_DB_MASK 0x0010 /* MIC2_SHRT_DB */
-#define WM8994_MIC2_SHRT_DB_SHIFT 4 /* MIC2_SHRT_DB */
-#define WM8994_MIC2_SHRT_DB_WIDTH 1 /* MIC2_SHRT_DB */
-#define WM8994_MIC2_DET_DB 0x0008 /* MIC2_DET_DB */
-#define WM8994_MIC2_DET_DB_MASK 0x0008 /* MIC2_DET_DB */
-#define WM8994_MIC2_DET_DB_SHIFT 3 /* MIC2_DET_DB */
-#define WM8994_MIC2_DET_DB_WIDTH 1 /* MIC2_DET_DB */
-#define WM8994_MIC1_SHRT_DB 0x0004 /* MIC1_SHRT_DB */
-#define WM8994_MIC1_SHRT_DB_MASK 0x0004 /* MIC1_SHRT_DB */
-#define WM8994_MIC1_SHRT_DB_SHIFT 2 /* MIC1_SHRT_DB */
-#define WM8994_MIC1_SHRT_DB_WIDTH 1 /* MIC1_SHRT_DB */
-#define WM8994_MIC1_DET_DB 0x0002 /* MIC1_DET_DB */
-#define WM8994_MIC1_DET_DB_MASK 0x0002 /* MIC1_DET_DB */
-#define WM8994_MIC1_DET_DB_SHIFT 1 /* MIC1_DET_DB */
-#define WM8994_MIC1_DET_DB_WIDTH 1 /* MIC1_DET_DB */
-#define WM8994_TEMP_SHUT_DB 0x0001 /* TEMP_SHUT_DB */
-#define WM8994_TEMP_SHUT_DB_MASK 0x0001 /* TEMP_SHUT_DB */
-#define WM8994_TEMP_SHUT_DB_SHIFT 0 /* TEMP_SHUT_DB */
-#define WM8994_TEMP_SHUT_DB_WIDTH 1 /* TEMP_SHUT_DB */
-
-/*
- * R2304 (0x900) - DSP2_Program
- */
-#define WM8958_DSP2_ENA 0x0001 /* DSP2_ENA */
-#define WM8958_DSP2_ENA_MASK 0x0001 /* DSP2_ENA */
-#define WM8958_DSP2_ENA_SHIFT 0 /* DSP2_ENA */
-#define WM8958_DSP2_ENA_WIDTH 1 /* DSP2_ENA */
-
-/*
- * R2305 (0x901) - DSP2_Config
- */
-#define WM8958_MBC_SEL_MASK 0x0030 /* MBC_SEL - [5:4] */
-#define WM8958_MBC_SEL_SHIFT 4 /* MBC_SEL - [5:4] */
-#define WM8958_MBC_SEL_WIDTH 2 /* MBC_SEL - [5:4] */
-#define WM8958_MBC_ENA 0x0001 /* MBC_ENA */
-#define WM8958_MBC_ENA_MASK 0x0001 /* MBC_ENA */
-#define WM8958_MBC_ENA_SHIFT 0 /* MBC_ENA */
-#define WM8958_MBC_ENA_WIDTH 1 /* MBC_ENA */
-
-/*
- * R2560 (0xA00) - DSP2_MagicNum
- */
-#define WM8958_DSP2_MAGIC_NUM_MASK 0xFFFF /* DSP2_MAGIC_NUM - [15:0] */
-#define WM8958_DSP2_MAGIC_NUM_SHIFT 0 /* DSP2_MAGIC_NUM - [15:0] */
-#define WM8958_DSP2_MAGIC_NUM_WIDTH 16 /* DSP2_MAGIC_NUM - [15:0] */
-
-/*
- * R2561 (0xA01) - DSP2_ReleaseYear
- */
-#define WM8958_DSP2_RELEASE_YEAR_MASK 0xFFFF /* DSP2_RELEASE_YEAR - [15:0] */
-#define WM8958_DSP2_RELEASE_YEAR_SHIFT 0 /* DSP2_RELEASE_YEAR - [15:0] */
-#define WM8958_DSP2_RELEASE_YEAR_WIDTH 16 /* DSP2_RELEASE_YEAR - [15:0] */
-
-/*
- * R2562 (0xA02) - DSP2_ReleaseMonthDay
- */
-#define WM8958_DSP2_RELEASE_MONTH_MASK 0xFF00 /* DSP2_RELEASE_MONTH - [15:8] */
-#define WM8958_DSP2_RELEASE_MONTH_SHIFT 8 /* DSP2_RELEASE_MONTH - [15:8] */
-#define WM8958_DSP2_RELEASE_MONTH_WIDTH 8 /* DSP2_RELEASE_MONTH - [15:8] */
-#define WM8958_DSP2_RELEASE_DAY_MASK 0x00FF /* DSP2_RELEASE_DAY - [7:0] */
-#define WM8958_DSP2_RELEASE_DAY_SHIFT 0 /* DSP2_RELEASE_DAY - [7:0] */
-#define WM8958_DSP2_RELEASE_DAY_WIDTH 8 /* DSP2_RELEASE_DAY - [7:0] */
-
-/*
- * R2563 (0xA03) - DSP2_ReleaseTime
- */
-#define WM8958_DSP2_RELEASE_HOURS_MASK 0xFF00 /* DSP2_RELEASE_HOURS - [15:8] */
-#define WM8958_DSP2_RELEASE_HOURS_SHIFT 8 /* DSP2_RELEASE_HOURS - [15:8] */
-#define WM8958_DSP2_RELEASE_HOURS_WIDTH 8 /* DSP2_RELEASE_HOURS - [15:8] */
-#define WM8958_DSP2_RELEASE_MINS_MASK 0x00FF /* DSP2_RELEASE_MINS - [7:0] */
-#define WM8958_DSP2_RELEASE_MINS_SHIFT 0 /* DSP2_RELEASE_MINS - [7:0] */
-#define WM8958_DSP2_RELEASE_MINS_WIDTH 8 /* DSP2_RELEASE_MINS - [7:0] */
-
-/*
- * R2564 (0xA04) - DSP2_VerMajMin
- */
-#define WM8958_DSP2_MAJOR_VER_MASK 0xFF00 /* DSP2_MAJOR_VER - [15:8] */
-#define WM8958_DSP2_MAJOR_VER_SHIFT 8 /* DSP2_MAJOR_VER - [15:8] */
-#define WM8958_DSP2_MAJOR_VER_WIDTH 8 /* DSP2_MAJOR_VER - [15:8] */
-#define WM8958_DSP2_MINOR_VER_MASK 0x00FF /* DSP2_MINOR_VER - [7:0] */
-#define WM8958_DSP2_MINOR_VER_SHIFT 0 /* DSP2_MINOR_VER - [7:0] */
-#define WM8958_DSP2_MINOR_VER_WIDTH 8 /* DSP2_MINOR_VER - [7:0] */
-
-/*
- * R2565 (0xA05) - DSP2_VerBuild
- */
-#define WM8958_DSP2_BUILD_VER_MASK 0xFFFF /* DSP2_BUILD_VER - [15:0] */
-#define WM8958_DSP2_BUILD_VER_SHIFT 0 /* DSP2_BUILD_VER - [15:0] */
-#define WM8958_DSP2_BUILD_VER_WIDTH 16 /* DSP2_BUILD_VER - [15:0] */
-
-/*
- * R2573 (0xA0D) - DSP2_ExecControl
- */
-#define WM8958_DSP2_STOPC 0x0020 /* DSP2_STOPC */
-#define WM8958_DSP2_STOPC_MASK 0x0020 /* DSP2_STOPC */
-#define WM8958_DSP2_STOPC_SHIFT 5 /* DSP2_STOPC */
-#define WM8958_DSP2_STOPC_WIDTH 1 /* DSP2_STOPC */
-#define WM8958_DSP2_STOPS 0x0010 /* DSP2_STOPS */
-#define WM8958_DSP2_STOPS_MASK 0x0010 /* DSP2_STOPS */
-#define WM8958_DSP2_STOPS_SHIFT 4 /* DSP2_STOPS */
-#define WM8958_DSP2_STOPS_WIDTH 1 /* DSP2_STOPS */
-#define WM8958_DSP2_STOPI 0x0008 /* DSP2_STOPI */
-#define WM8958_DSP2_STOPI_MASK 0x0008 /* DSP2_STOPI */
-#define WM8958_DSP2_STOPI_SHIFT 3 /* DSP2_STOPI */
-#define WM8958_DSP2_STOPI_WIDTH 1 /* DSP2_STOPI */
-#define WM8958_DSP2_STOP 0x0004 /* DSP2_STOP */
-#define WM8958_DSP2_STOP_MASK 0x0004 /* DSP2_STOP */
-#define WM8958_DSP2_STOP_SHIFT 2 /* DSP2_STOP */
-#define WM8958_DSP2_STOP_WIDTH 1 /* DSP2_STOP */
-#define WM8958_DSP2_RUNR 0x0002 /* DSP2_RUNR */
-#define WM8958_DSP2_RUNR_MASK 0x0002 /* DSP2_RUNR */
-#define WM8958_DSP2_RUNR_SHIFT 1 /* DSP2_RUNR */
-#define WM8958_DSP2_RUNR_WIDTH 1 /* DSP2_RUNR */
-#define WM8958_DSP2_RUN 0x0001 /* DSP2_RUN */
-#define WM8958_DSP2_RUN_MASK 0x0001 /* DSP2_RUN */
-#define WM8958_DSP2_RUN_SHIFT 0 /* DSP2_RUN */
-#define WM8958_DSP2_RUN_WIDTH 1 /* DSP2_RUN */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mg_disk.h b/ANDROID_3.4.5/include/linux/mg_disk.h
deleted file mode 100644
index e11f4d9f..00000000
--- a/ANDROID_3.4.5/include/linux/mg_disk.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * include/linux/mg_disk.c
- *
- * Private data for mflash platform driver
- *
- * (c) 2008 mGine Co.,LTD
- * (c) 2008 unsik Kim <donari75@gmail.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.
- */
-
-#ifndef __MG_DISK_H__
-#define __MG_DISK_H__
-
-/* name for platform device */
-#define MG_DEV_NAME "mg_disk"
-
-/* names of GPIO resource */
-#define MG_RST_PIN "mg_rst"
-/* except MG_BOOT_DEV, reset-out pin should be assigned */
-#define MG_RSTOUT_PIN "mg_rstout"
-
-/* device attribution */
-/* use mflash as boot device */
-#define MG_BOOT_DEV (1 << 0)
-/* use mflash as storage device */
-#define MG_STORAGE_DEV (1 << 1)
-/* same as MG_STORAGE_DEV, but bootloader already done reset sequence */
-#define MG_STORAGE_DEV_SKIP_RST (1 << 2)
-
-/* private driver data */
-struct mg_drv_data {
- /* disk resource */
- u32 use_polling;
-
- /* device attribution */
- u32 dev_attr;
-
- /* internally used */
- void *host;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/micrel_phy.h b/ANDROID_3.4.5/include/linux/micrel_phy.h
deleted file mode 100644
index dd8da342..00000000
--- a/ANDROID_3.4.5/include/linux/micrel_phy.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef _MICREL_PHY_H
-#define _MICREL_PHY_H
-
-#define MICREL_PHY_ID_MASK 0x00fffff0
-
-#define PHY_ID_KSZ9021 0x00221611
-#define PHY_ID_KS8737 0x00221720
-#define PHY_ID_KS8041 0x00221510
-#define PHY_ID_KS8051 0x00221550
-/* both for ks8001 Rev. A/B, and for ks8721 Rev 3. */
-#define PHY_ID_KS8001 0x0022161A
-
-/* struct phy_device dev_flags definitions */
-#define MICREL_PHY_50MHZ_CLK 0x00000001
-
-#endif /* _MICREL_PHY_H */
diff --git a/ANDROID_3.4.5/include/linux/migrate.h b/ANDROID_3.4.5/include/linux/migrate.h
deleted file mode 100644
index 855c337b..00000000
--- a/ANDROID_3.4.5/include/linux/migrate.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef _LINUX_MIGRATE_H
-#define _LINUX_MIGRATE_H
-
-#include <linux/mm.h>
-#include <linux/mempolicy.h>
-#include <linux/migrate_mode.h>
-
-typedef struct page *new_page_t(struct page *, unsigned long private, int **);
-
-#ifdef CONFIG_MIGRATION
-
-extern void putback_lru_pages(struct list_head *l);
-extern int migrate_page(struct address_space *,
- struct page *, struct page *, enum migrate_mode);
-extern int migrate_pages(struct list_head *l, new_page_t x,
- unsigned long private, bool offlining,
- enum migrate_mode mode);
-extern int migrate_huge_pages(struct list_head *l, new_page_t x,
- unsigned long private, bool offlining,
- enum migrate_mode mode);
-
-extern int fail_migrate_page(struct address_space *,
- struct page *, struct page *);
-
-extern int migrate_prep(void);
-extern int migrate_prep_local(void);
-extern int migrate_vmas(struct mm_struct *mm,
- const nodemask_t *from, const nodemask_t *to,
- unsigned long flags);
-extern void migrate_page_copy(struct page *newpage, struct page *page);
-extern int migrate_huge_page_move_mapping(struct address_space *mapping,
- struct page *newpage, struct page *page);
-#else
-
-static inline void putback_lru_pages(struct list_head *l) {}
-static inline int migrate_pages(struct list_head *l, new_page_t x,
- unsigned long private, bool offlining,
- enum migrate_mode mode) { return -ENOSYS; }
-static inline int migrate_huge_pages(struct list_head *l, new_page_t x,
- unsigned long private, bool offlining,
- enum migrate_mode mode) { return -ENOSYS; }
-
-static inline int migrate_prep(void) { return -ENOSYS; }
-static inline int migrate_prep_local(void) { return -ENOSYS; }
-
-static inline int migrate_vmas(struct mm_struct *mm,
- const nodemask_t *from, const nodemask_t *to,
- unsigned long flags)
-{
- return -ENOSYS;
-}
-
-static inline void migrate_page_copy(struct page *newpage,
- struct page *page) {}
-
-static inline int migrate_huge_page_move_mapping(struct address_space *mapping,
- struct page *newpage, struct page *page)
-{
- return -ENOSYS;
-}
-
-/* Possible settings for the migrate_page() method in address_operations */
-#define migrate_page NULL
-#define fail_migrate_page NULL
-
-#endif /* CONFIG_MIGRATION */
-#endif /* _LINUX_MIGRATE_H */
diff --git a/ANDROID_3.4.5/include/linux/migrate_mode.h b/ANDROID_3.4.5/include/linux/migrate_mode.h
deleted file mode 100644
index ebf3d89a..00000000
--- a/ANDROID_3.4.5/include/linux/migrate_mode.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef MIGRATE_MODE_H_INCLUDED
-#define MIGRATE_MODE_H_INCLUDED
-/*
- * MIGRATE_ASYNC means never block
- * MIGRATE_SYNC_LIGHT in the current implementation means to allow blocking
- * on most operations but not ->writepage as the potential stall time
- * is too significant
- * MIGRATE_SYNC will block when migrating pages
- */
-enum migrate_mode {
- MIGRATE_ASYNC,
- MIGRATE_SYNC_LIGHT,
- MIGRATE_SYNC,
-};
-
-#endif /* MIGRATE_MODE_H_INCLUDED */
diff --git a/ANDROID_3.4.5/include/linux/mii.h b/ANDROID_3.4.5/include/linux/mii.h
deleted file mode 100644
index 2783eca6..00000000
--- a/ANDROID_3.4.5/include/linux/mii.h
+++ /dev/null
@@ -1,482 +0,0 @@
-/*
- * linux/mii.h: definitions for MII-compatible transceivers
- * Originally drivers/net/sunhme.h.
- *
- * Copyright (C) 1996, 1999, 2001 David S. Miller (davem@redhat.com)
- */
-
-#ifndef __LINUX_MII_H__
-#define __LINUX_MII_H__
-
-#include <linux/types.h>
-#include <linux/ethtool.h>
-
-/* Generic MII registers. */
-#define MII_BMCR 0x00 /* Basic mode control register */
-#define MII_BMSR 0x01 /* Basic mode status register */
-#define MII_PHYSID1 0x02 /* PHYS ID 1 */
-#define MII_PHYSID2 0x03 /* PHYS ID 2 */
-#define MII_ADVERTISE 0x04 /* Advertisement control reg */
-#define MII_LPA 0x05 /* Link partner ability reg */
-#define MII_EXPANSION 0x06 /* Expansion register */
-#define MII_CTRL1000 0x09 /* 1000BASE-T control */
-#define MII_STAT1000 0x0a /* 1000BASE-T status */
-#define MII_ESTATUS 0x0f /* Extended Status */
-#define MII_DCOUNTER 0x12 /* Disconnect counter */
-#define MII_FCSCOUNTER 0x13 /* False carrier counter */
-#define MII_NWAYTEST 0x14 /* N-way auto-neg test reg */
-#define MII_RERRCOUNTER 0x15 /* Receive error counter */
-#define MII_SREVISION 0x16 /* Silicon revision */
-#define MII_RESV1 0x17 /* Reserved... */
-#define MII_LBRERROR 0x18 /* Lpback, rx, bypass error */
-#define MII_PHYADDR 0x19 /* PHY address */
-#define MII_RESV2 0x1a /* Reserved... */
-#define MII_TPISTATUS 0x1b /* TPI status for 10mbps */
-#define MII_NCONFIG 0x1c /* Network interface config */
-
-/* Basic mode control register. */
-#define BMCR_RESV 0x003f /* Unused... */
-#define BMCR_SPEED1000 0x0040 /* MSB of Speed (1000) */
-#define BMCR_CTST 0x0080 /* Collision test */
-#define BMCR_FULLDPLX 0x0100 /* Full duplex */
-#define BMCR_ANRESTART 0x0200 /* Auto negotiation restart */
-#define BMCR_ISOLATE 0x0400 /* Isolate data paths from MII */
-#define BMCR_PDOWN 0x0800 /* Enable low power state */
-#define BMCR_ANENABLE 0x1000 /* Enable auto negotiation */
-#define BMCR_SPEED100 0x2000 /* Select 100Mbps */
-#define BMCR_LOOPBACK 0x4000 /* TXD loopback bits */
-#define BMCR_RESET 0x8000 /* Reset to default state */
-
-/* Basic mode status register. */
-#define BMSR_ERCAP 0x0001 /* Ext-reg capability */
-#define BMSR_JCD 0x0002 /* Jabber detected */
-#define BMSR_LSTATUS 0x0004 /* Link status */
-#define BMSR_ANEGCAPABLE 0x0008 /* Able to do auto-negotiation */
-#define BMSR_RFAULT 0x0010 /* Remote fault detected */
-#define BMSR_ANEGCOMPLETE 0x0020 /* Auto-negotiation complete */
-#define BMSR_RESV 0x00c0 /* Unused... */
-#define BMSR_ESTATEN 0x0100 /* Extended Status in R15 */
-#define BMSR_100HALF2 0x0200 /* Can do 100BASE-T2 HDX */
-#define BMSR_100FULL2 0x0400 /* Can do 100BASE-T2 FDX */
-#define BMSR_10HALF 0x0800 /* Can do 10mbps, half-duplex */
-#define BMSR_10FULL 0x1000 /* Can do 10mbps, full-duplex */
-#define BMSR_100HALF 0x2000 /* Can do 100mbps, half-duplex */
-#define BMSR_100FULL 0x4000 /* Can do 100mbps, full-duplex */
-#define BMSR_100BASE4 0x8000 /* Can do 100mbps, 4k packets */
-
-/* Advertisement control register. */
-#define ADVERTISE_SLCT 0x001f /* Selector bits */
-#define ADVERTISE_CSMA 0x0001 /* Only selector supported */
-#define ADVERTISE_10HALF 0x0020 /* Try for 10mbps half-duplex */
-#define ADVERTISE_1000XFULL 0x0020 /* Try for 1000BASE-X full-duplex */
-#define ADVERTISE_10FULL 0x0040 /* Try for 10mbps full-duplex */
-#define ADVERTISE_1000XHALF 0x0040 /* Try for 1000BASE-X half-duplex */
-#define ADVERTISE_100HALF 0x0080 /* Try for 100mbps half-duplex */
-#define ADVERTISE_1000XPAUSE 0x0080 /* Try for 1000BASE-X pause */
-#define ADVERTISE_100FULL 0x0100 /* Try for 100mbps full-duplex */
-#define ADVERTISE_1000XPSE_ASYM 0x0100 /* Try for 1000BASE-X asym pause */
-#define ADVERTISE_100BASE4 0x0200 /* Try for 100mbps 4k packets */
-#define ADVERTISE_PAUSE_CAP 0x0400 /* Try for pause */
-#define ADVERTISE_PAUSE_ASYM 0x0800 /* Try for asymetric pause */
-#define ADVERTISE_RESV 0x1000 /* Unused... */
-#define ADVERTISE_RFAULT 0x2000 /* Say we can detect faults */
-#define ADVERTISE_LPACK 0x4000 /* Ack link partners response */
-#define ADVERTISE_NPAGE 0x8000 /* Next page bit */
-
-#define ADVERTISE_FULL (ADVERTISE_100FULL | ADVERTISE_10FULL | \
- ADVERTISE_CSMA)
-#define ADVERTISE_ALL (ADVERTISE_10HALF | ADVERTISE_10FULL | \
- ADVERTISE_100HALF | ADVERTISE_100FULL)
-
-/* Link partner ability register. */
-#define LPA_SLCT 0x001f /* Same as advertise selector */
-#define LPA_10HALF 0x0020 /* Can do 10mbps half-duplex */
-#define LPA_1000XFULL 0x0020 /* Can do 1000BASE-X full-duplex */
-#define LPA_10FULL 0x0040 /* Can do 10mbps full-duplex */
-#define LPA_1000XHALF 0x0040 /* Can do 1000BASE-X half-duplex */
-#define LPA_100HALF 0x0080 /* Can do 100mbps half-duplex */
-#define LPA_1000XPAUSE 0x0080 /* Can do 1000BASE-X pause */
-#define LPA_100FULL 0x0100 /* Can do 100mbps full-duplex */
-#define LPA_1000XPAUSE_ASYM 0x0100 /* Can do 1000BASE-X pause asym*/
-#define LPA_100BASE4 0x0200 /* Can do 100mbps 4k packets */
-#define LPA_PAUSE_CAP 0x0400 /* Can pause */
-#define LPA_PAUSE_ASYM 0x0800 /* Can pause asymetrically */
-#define LPA_RESV 0x1000 /* Unused... */
-#define LPA_RFAULT 0x2000 /* Link partner faulted */
-#define LPA_LPACK 0x4000 /* Link partner acked us */
-#define LPA_NPAGE 0x8000 /* Next page bit */
-
-#define LPA_DUPLEX (LPA_10FULL | LPA_100FULL)
-#define LPA_100 (LPA_100FULL | LPA_100HALF | LPA_100BASE4)
-
-/* Expansion register for auto-negotiation. */
-#define EXPANSION_NWAY 0x0001 /* Can do N-way auto-nego */
-#define EXPANSION_LCWP 0x0002 /* Got new RX page code word */
-#define EXPANSION_ENABLENPAGE 0x0004 /* This enables npage words */
-#define EXPANSION_NPCAPABLE 0x0008 /* Link partner supports npage */
-#define EXPANSION_MFAULTS 0x0010 /* Multiple faults detected */
-#define EXPANSION_RESV 0xffe0 /* Unused... */
-
-#define ESTATUS_1000_TFULL 0x2000 /* Can do 1000BT Full */
-#define ESTATUS_1000_THALF 0x1000 /* Can do 1000BT Half */
-
-/* N-way test register. */
-#define NWAYTEST_RESV1 0x00ff /* Unused... */
-#define NWAYTEST_LOOPBACK 0x0100 /* Enable loopback for N-way */
-#define NWAYTEST_RESV2 0xfe00 /* Unused... */
-
-/* 1000BASE-T Control register */
-#define ADVERTISE_1000FULL 0x0200 /* Advertise 1000BASE-T full duplex */
-#define ADVERTISE_1000HALF 0x0100 /* Advertise 1000BASE-T half duplex */
-#define CTL1000_AS_MASTER 0x0800
-#define CTL1000_ENABLE_MASTER 0x1000
-
-/* 1000BASE-T Status register */
-#define LPA_1000LOCALRXOK 0x2000 /* Link partner local receiver status */
-#define LPA_1000REMRXOK 0x1000 /* Link partner remote receiver status */
-#define LPA_1000FULL 0x0800 /* Link partner 1000BASE-T full duplex */
-#define LPA_1000HALF 0x0400 /* Link partner 1000BASE-T half duplex */
-
-/* Flow control flags */
-#define FLOW_CTRL_TX 0x01
-#define FLOW_CTRL_RX 0x02
-
-/* This structure is used in all SIOCxMIIxxx ioctl calls */
-struct mii_ioctl_data {
- __u16 phy_id;
- __u16 reg_num;
- __u16 val_in;
- __u16 val_out;
-};
-
-#ifdef __KERNEL__
-
-#include <linux/if.h>
-
-struct ethtool_cmd;
-
-struct mii_if_info {
- int phy_id;
- int advertising;
- int phy_id_mask;
- int reg_num_mask;
-
- unsigned int full_duplex : 1; /* is full duplex? */
- unsigned int force_media : 1; /* is autoneg. disabled? */
- unsigned int supports_gmii : 1; /* are GMII registers supported? */
-
- struct net_device *dev;
- int (*mdio_read) (struct net_device *dev, int phy_id, int location);
- void (*mdio_write) (struct net_device *dev, int phy_id, int location, int val);
-};
-
-extern int mii_link_ok (struct mii_if_info *mii);
-extern int mii_nway_restart (struct mii_if_info *mii);
-extern int mii_ethtool_gset(struct mii_if_info *mii, struct ethtool_cmd *ecmd);
-extern int mii_ethtool_sset(struct mii_if_info *mii, struct ethtool_cmd *ecmd);
-extern int mii_check_gmii_support(struct mii_if_info *mii);
-extern void mii_check_link (struct mii_if_info *mii);
-extern unsigned int mii_check_media (struct mii_if_info *mii,
- unsigned int ok_to_print,
- unsigned int init_media);
-extern int generic_mii_ioctl(struct mii_if_info *mii_if,
- struct mii_ioctl_data *mii_data, int cmd,
- unsigned int *duplex_changed);
-
-
-static inline struct mii_ioctl_data *if_mii(struct ifreq *rq)
-{
- return (struct mii_ioctl_data *) &rq->ifr_ifru;
-}
-
-/**
- * mii_nway_result
- * @negotiated: value of MII ANAR and'd with ANLPAR
- *
- * Given a set of MII abilities, check each bit and returns the
- * currently supported media, in the priority order defined by
- * IEEE 802.3u. We use LPA_xxx constants but note this is not the
- * value of LPA solely, as described above.
- *
- * The one exception to IEEE 802.3u is that 100baseT4 is placed
- * between 100T-full and 100T-half. If your phy does not support
- * 100T4 this is fine. If your phy places 100T4 elsewhere in the
- * priority order, you will need to roll your own function.
- */
-static inline unsigned int mii_nway_result (unsigned int negotiated)
-{
- unsigned int ret;
-
- if (negotiated & LPA_100FULL)
- ret = LPA_100FULL;
- else if (negotiated & LPA_100BASE4)
- ret = LPA_100BASE4;
- else if (negotiated & LPA_100HALF)
- ret = LPA_100HALF;
- else if (negotiated & LPA_10FULL)
- ret = LPA_10FULL;
- else
- ret = LPA_10HALF;
-
- return ret;
-}
-
-/**
- * mii_duplex
- * @duplex_lock: Non-zero if duplex is locked at full
- * @negotiated: value of MII ANAR and'd with ANLPAR
- *
- * A small helper function for a common case. Returns one
- * if the media is operating or locked at full duplex, and
- * returns zero otherwise.
- */
-static inline unsigned int mii_duplex (unsigned int duplex_lock,
- unsigned int negotiated)
-{
- if (duplex_lock)
- return 1;
- if (mii_nway_result(negotiated) & LPA_DUPLEX)
- return 1;
- return 0;
-}
-
-/**
- * ethtool_adv_to_mii_adv_t
- * @ethadv: the ethtool advertisement settings
- *
- * A small helper function that translates ethtool advertisement
- * settings to phy autonegotiation advertisements for the
- * MII_ADVERTISE register.
- */
-static inline u32 ethtool_adv_to_mii_adv_t(u32 ethadv)
-{
- u32 result = 0;
-
- if (ethadv & ADVERTISED_10baseT_Half)
- result |= ADVERTISE_10HALF;
- if (ethadv & ADVERTISED_10baseT_Full)
- result |= ADVERTISE_10FULL;
- if (ethadv & ADVERTISED_100baseT_Half)
- result |= ADVERTISE_100HALF;
- if (ethadv & ADVERTISED_100baseT_Full)
- result |= ADVERTISE_100FULL;
- if (ethadv & ADVERTISED_Pause)
- result |= ADVERTISE_PAUSE_CAP;
- if (ethadv & ADVERTISED_Asym_Pause)
- result |= ADVERTISE_PAUSE_ASYM;
-
- return result;
-}
-
-/**
- * mii_adv_to_ethtool_adv_t
- * @adv: value of the MII_ADVERTISE register
- *
- * A small helper function that translates MII_ADVERTISE bits
- * to ethtool advertisement settings.
- */
-static inline u32 mii_adv_to_ethtool_adv_t(u32 adv)
-{
- u32 result = 0;
-
- if (adv & ADVERTISE_10HALF)
- result |= ADVERTISED_10baseT_Half;
- if (adv & ADVERTISE_10FULL)
- result |= ADVERTISED_10baseT_Full;
- if (adv & ADVERTISE_100HALF)
- result |= ADVERTISED_100baseT_Half;
- if (adv & ADVERTISE_100FULL)
- result |= ADVERTISED_100baseT_Full;
- if (adv & ADVERTISE_PAUSE_CAP)
- result |= ADVERTISED_Pause;
- if (adv & ADVERTISE_PAUSE_ASYM)
- result |= ADVERTISED_Asym_Pause;
-
- return result;
-}
-
-/**
- * ethtool_adv_to_mii_ctrl1000_t
- * @ethadv: the ethtool advertisement settings
- *
- * A small helper function that translates ethtool advertisement
- * settings to phy autonegotiation advertisements for the
- * MII_CTRL1000 register when in 1000T mode.
- */
-static inline u32 ethtool_adv_to_mii_ctrl1000_t(u32 ethadv)
-{
- u32 result = 0;
-
- if (ethadv & ADVERTISED_1000baseT_Half)
- result |= ADVERTISE_1000HALF;
- if (ethadv & ADVERTISED_1000baseT_Full)
- result |= ADVERTISE_1000FULL;
-
- return result;
-}
-
-/**
- * mii_ctrl1000_to_ethtool_adv_t
- * @adv: value of the MII_CTRL1000 register
- *
- * A small helper function that translates MII_CTRL1000
- * bits, when in 1000Base-T mode, to ethtool
- * advertisement settings.
- */
-static inline u32 mii_ctrl1000_to_ethtool_adv_t(u32 adv)
-{
- u32 result = 0;
-
- if (adv & ADVERTISE_1000HALF)
- result |= ADVERTISED_1000baseT_Half;
- if (adv & ADVERTISE_1000FULL)
- result |= ADVERTISED_1000baseT_Full;
-
- return result;
-}
-
-/**
- * mii_lpa_to_ethtool_lpa_t
- * @adv: value of the MII_LPA register
- *
- * A small helper function that translates MII_LPA
- * bits, when in 1000Base-T mode, to ethtool
- * LP advertisement settings.
- */
-static inline u32 mii_lpa_to_ethtool_lpa_t(u32 lpa)
-{
- u32 result = 0;
-
- if (lpa & LPA_LPACK)
- result |= ADVERTISED_Autoneg;
-
- return result | mii_adv_to_ethtool_adv_t(lpa);
-}
-
-/**
- * mii_stat1000_to_ethtool_lpa_t
- * @adv: value of the MII_STAT1000 register
- *
- * A small helper function that translates MII_STAT1000
- * bits, when in 1000Base-T mode, to ethtool
- * advertisement settings.
- */
-static inline u32 mii_stat1000_to_ethtool_lpa_t(u32 lpa)
-{
- u32 result = 0;
-
- if (lpa & LPA_1000HALF)
- result |= ADVERTISED_1000baseT_Half;
- if (lpa & LPA_1000FULL)
- result |= ADVERTISED_1000baseT_Full;
-
- return result;
-}
-
-/**
- * ethtool_adv_to_mii_adv_x
- * @ethadv: the ethtool advertisement settings
- *
- * A small helper function that translates ethtool advertisement
- * settings to phy autonegotiation advertisements for the
- * MII_CTRL1000 register when in 1000Base-X mode.
- */
-static inline u32 ethtool_adv_to_mii_adv_x(u32 ethadv)
-{
- u32 result = 0;
-
- if (ethadv & ADVERTISED_1000baseT_Half)
- result |= ADVERTISE_1000XHALF;
- if (ethadv & ADVERTISED_1000baseT_Full)
- result |= ADVERTISE_1000XFULL;
- if (ethadv & ADVERTISED_Pause)
- result |= ADVERTISE_1000XPAUSE;
- if (ethadv & ADVERTISED_Asym_Pause)
- result |= ADVERTISE_1000XPSE_ASYM;
-
- return result;
-}
-
-/**
- * mii_adv_to_ethtool_adv_x
- * @adv: value of the MII_CTRL1000 register
- *
- * A small helper function that translates MII_CTRL1000
- * bits, when in 1000Base-X mode, to ethtool
- * advertisement settings.
- */
-static inline u32 mii_adv_to_ethtool_adv_x(u32 adv)
-{
- u32 result = 0;
-
- if (adv & ADVERTISE_1000XHALF)
- result |= ADVERTISED_1000baseT_Half;
- if (adv & ADVERTISE_1000XFULL)
- result |= ADVERTISED_1000baseT_Full;
- if (adv & ADVERTISE_1000XPAUSE)
- result |= ADVERTISED_Pause;
- if (adv & ADVERTISE_1000XPSE_ASYM)
- result |= ADVERTISED_Asym_Pause;
-
- return result;
-}
-
-/**
- * mii_lpa_to_ethtool_lpa_x
- * @adv: value of the MII_LPA register
- *
- * A small helper function that translates MII_LPA
- * bits, when in 1000Base-X mode, to ethtool
- * LP advertisement settings.
- */
-static inline u32 mii_lpa_to_ethtool_lpa_x(u32 lpa)
-{
- u32 result = 0;
-
- if (lpa & LPA_LPACK)
- result |= ADVERTISED_Autoneg;
-
- return result | mii_adv_to_ethtool_adv_x(lpa);
-}
-
-/**
- * mii_advertise_flowctrl - get flow control advertisement flags
- * @cap: Flow control capabilities (FLOW_CTRL_RX, FLOW_CTRL_TX or both)
- */
-static inline u16 mii_advertise_flowctrl(int cap)
-{
- u16 adv = 0;
-
- if (cap & FLOW_CTRL_RX)
- adv = ADVERTISE_PAUSE_CAP | ADVERTISE_PAUSE_ASYM;
- if (cap & FLOW_CTRL_TX)
- adv ^= ADVERTISE_PAUSE_ASYM;
-
- return adv;
-}
-
-/**
- * mii_resolve_flowctrl_fdx
- * @lcladv: value of MII ADVERTISE register
- * @rmtadv: value of MII LPA register
- *
- * Resolve full duplex flow control as per IEEE 802.3-2005 table 28B-3
- */
-static inline u8 mii_resolve_flowctrl_fdx(u16 lcladv, u16 rmtadv)
-{
- u8 cap = 0;
-
- if (lcladv & rmtadv & ADVERTISE_PAUSE_CAP) {
- cap = FLOW_CTRL_TX | FLOW_CTRL_RX;
- } else if (lcladv & rmtadv & ADVERTISE_PAUSE_ASYM) {
- if (lcladv & ADVERTISE_PAUSE_CAP)
- cap = FLOW_CTRL_RX;
- else if (rmtadv & ADVERTISE_PAUSE_CAP)
- cap = FLOW_CTRL_TX;
- }
-
- return cap;
-}
-
-#endif /* __KERNEL__ */
-#endif /* __LINUX_MII_H__ */
diff --git a/ANDROID_3.4.5/include/linux/minix_fs.h b/ANDROID_3.4.5/include/linux/minix_fs.h
deleted file mode 100644
index 13fe09e0..00000000
--- a/ANDROID_3.4.5/include/linux/minix_fs.h
+++ /dev/null
@@ -1,106 +0,0 @@
-#ifndef _LINUX_MINIX_FS_H
-#define _LINUX_MINIX_FS_H
-
-#include <linux/types.h>
-#include <linux/magic.h>
-
-/*
- * The minix filesystem constants/structures
- */
-
-/*
- * Thanks to Kees J Bot for sending me the definitions of the new
- * minix filesystem (aka V2) with bigger inodes and 32-bit block
- * pointers.
- */
-
-#define MINIX_ROOT_INO 1
-
-/* Not the same as the bogus LINK_MAX in <linux/limits.h>. Oh well. */
-#define MINIX_LINK_MAX 250
-#define MINIX2_LINK_MAX 65530
-
-#define MINIX_I_MAP_SLOTS 8
-#define MINIX_Z_MAP_SLOTS 64
-#define MINIX_VALID_FS 0x0001 /* Clean fs. */
-#define MINIX_ERROR_FS 0x0002 /* fs has errors. */
-
-#define MINIX_INODES_PER_BLOCK ((BLOCK_SIZE)/(sizeof (struct minix_inode)))
-
-/*
- * This is the original minix inode layout on disk.
- * Note the 8-bit gid and atime and ctime.
- */
-struct minix_inode {
- __u16 i_mode;
- __u16 i_uid;
- __u32 i_size;
- __u32 i_time;
- __u8 i_gid;
- __u8 i_nlinks;
- __u16 i_zone[9];
-};
-
-/*
- * The new minix inode has all the time entries, as well as
- * long block numbers and a third indirect block (7+1+1+1
- * instead of 7+1+1). Also, some previously 8-bit values are
- * now 16-bit. The inode is now 64 bytes instead of 32.
- */
-struct minix2_inode {
- __u16 i_mode;
- __u16 i_nlinks;
- __u16 i_uid;
- __u16 i_gid;
- __u32 i_size;
- __u32 i_atime;
- __u32 i_mtime;
- __u32 i_ctime;
- __u32 i_zone[10];
-};
-
-/*
- * minix super-block data on disk
- */
-struct minix_super_block {
- __u16 s_ninodes;
- __u16 s_nzones;
- __u16 s_imap_blocks;
- __u16 s_zmap_blocks;
- __u16 s_firstdatazone;
- __u16 s_log_zone_size;
- __u32 s_max_size;
- __u16 s_magic;
- __u16 s_state;
- __u32 s_zones;
-};
-
-/*
- * V3 minix super-block data on disk
- */
-struct minix3_super_block {
- __u32 s_ninodes;
- __u16 s_pad0;
- __u16 s_imap_blocks;
- __u16 s_zmap_blocks;
- __u16 s_firstdatazone;
- __u16 s_log_zone_size;
- __u16 s_pad1;
- __u32 s_max_size;
- __u32 s_zones;
- __u16 s_magic;
- __u16 s_pad2;
- __u16 s_blocksize;
- __u8 s_disk_version;
-};
-
-struct minix_dir_entry {
- __u16 inode;
- char name[0];
-};
-
-struct minix3_dir_entry {
- __u32 inode;
- char name[0];
-};
-#endif
diff --git a/ANDROID_3.4.5/include/linux/miscdevice.h b/ANDROID_3.4.5/include/linux/miscdevice.h
deleted file mode 100644
index 0549d211..00000000
--- a/ANDROID_3.4.5/include/linux/miscdevice.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef _LINUX_MISCDEVICE_H
-#define _LINUX_MISCDEVICE_H
-#include <linux/major.h>
-#include <linux/list.h>
-#include <linux/types.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
-/*#define AMIGAMOUSE_MINOR 4 FIXME OBSOLETE */
-#define ATARIMOUSE_MINOR 5
-#define SUN_MOUSE_MINOR 6
-#define APOLLO_MOUSE_MINOR 7
-#define PC110PAD_MINOR 9
-/*#define ADB_MOUSE_MINOR 10 FIXME OBSOLETE */
-#define WATCHDOG_MINOR 130 /* Watchdog timer */
-#define TEMP_MINOR 131 /* Temperature Sensor */
-#define RTC_MINOR 135
-#define EFI_RTC_MINOR 136 /* EFI Time services */
-#define SUN_OPENPROM_MINOR 139
-#define DMAPI_MINOR 140 /* DMAPI */
-#define NVRAM_MINOR 144
-#define SGI_MMTIMER 153
-#define STORE_QUEUE_MINOR 155
-#define I2O_MINOR 166
-#define MICROCODE_MINOR 184
-#define TUN_MINOR 200
-#define MWAVE_MINOR 219 /* ACP/Mwave Modem */
-#define MPT_MINOR 220
-#define MPT2SAS_MINOR 221
-#define UINPUT_MINOR 223
-#define HPET_MINOR 228
-#define FUSE_MINOR 229
-#define KVM_MINOR 232
-#define BTRFS_MINOR 234
-#define AUTOFS_MINOR 235
-#define MAPPER_CTRL_MINOR 236
-#define LOOP_CTRL_MINOR 237
-#define VHOST_NET_MINOR 238
-#define MISC_DYNAMIC_MINOR 255
-
-struct device;
-
-struct miscdevice {
- int minor;
- const char *name;
- const struct file_operations *fops;
- struct list_head list;
- struct device *parent;
- struct device *this_device;
- const char *nodename;
- umode_t mode;
-};
-
-extern int misc_register(struct miscdevice * misc);
-extern int misc_deregister(struct miscdevice *misc);
-
-#define MODULE_ALIAS_MISCDEV(minor) \
- MODULE_ALIAS("char-major-" __stringify(MISC_MAJOR) \
- "-" __stringify(minor))
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mlx4/cmd.h b/ANDROID_3.4.5/include/linux/mlx4/cmd.h
deleted file mode 100644
index 9958ff2c..00000000
--- a/ANDROID_3.4.5/include/linux/mlx4/cmd.h
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
- * Copyright (c) 2006 Cisco Systems, Inc. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#ifndef MLX4_CMD_H
-#define MLX4_CMD_H
-
-#include <linux/dma-mapping.h>
-
-enum {
- /* initialization and general commands */
- MLX4_CMD_SYS_EN = 0x1,
- MLX4_CMD_SYS_DIS = 0x2,
- MLX4_CMD_MAP_FA = 0xfff,
- MLX4_CMD_UNMAP_FA = 0xffe,
- MLX4_CMD_RUN_FW = 0xff6,
- MLX4_CMD_MOD_STAT_CFG = 0x34,
- MLX4_CMD_QUERY_DEV_CAP = 0x3,
- MLX4_CMD_QUERY_FW = 0x4,
- MLX4_CMD_ENABLE_LAM = 0xff8,
- MLX4_CMD_DISABLE_LAM = 0xff7,
- MLX4_CMD_QUERY_DDR = 0x5,
- MLX4_CMD_QUERY_ADAPTER = 0x6,
- MLX4_CMD_INIT_HCA = 0x7,
- MLX4_CMD_CLOSE_HCA = 0x8,
- MLX4_CMD_INIT_PORT = 0x9,
- MLX4_CMD_CLOSE_PORT = 0xa,
- MLX4_CMD_QUERY_HCA = 0xb,
- MLX4_CMD_QUERY_PORT = 0x43,
- MLX4_CMD_SENSE_PORT = 0x4d,
- MLX4_CMD_HW_HEALTH_CHECK = 0x50,
- MLX4_CMD_SET_PORT = 0xc,
- MLX4_CMD_SET_NODE = 0x5a,
- MLX4_CMD_QUERY_FUNC = 0x56,
- MLX4_CMD_ACCESS_DDR = 0x2e,
- MLX4_CMD_MAP_ICM = 0xffa,
- MLX4_CMD_UNMAP_ICM = 0xff9,
- MLX4_CMD_MAP_ICM_AUX = 0xffc,
- MLX4_CMD_UNMAP_ICM_AUX = 0xffb,
- MLX4_CMD_SET_ICM_SIZE = 0xffd,
- /*master notify fw on finish for slave's flr*/
- MLX4_CMD_INFORM_FLR_DONE = 0x5b,
-
- /* TPT commands */
- MLX4_CMD_SW2HW_MPT = 0xd,
- MLX4_CMD_QUERY_MPT = 0xe,
- MLX4_CMD_HW2SW_MPT = 0xf,
- MLX4_CMD_READ_MTT = 0x10,
- MLX4_CMD_WRITE_MTT = 0x11,
- MLX4_CMD_SYNC_TPT = 0x2f,
-
- /* EQ commands */
- MLX4_CMD_MAP_EQ = 0x12,
- MLX4_CMD_SW2HW_EQ = 0x13,
- MLX4_CMD_HW2SW_EQ = 0x14,
- MLX4_CMD_QUERY_EQ = 0x15,
-
- /* CQ commands */
- MLX4_CMD_SW2HW_CQ = 0x16,
- MLX4_CMD_HW2SW_CQ = 0x17,
- MLX4_CMD_QUERY_CQ = 0x18,
- MLX4_CMD_MODIFY_CQ = 0x2c,
-
- /* SRQ commands */
- MLX4_CMD_SW2HW_SRQ = 0x35,
- MLX4_CMD_HW2SW_SRQ = 0x36,
- MLX4_CMD_QUERY_SRQ = 0x37,
- MLX4_CMD_ARM_SRQ = 0x40,
-
- /* QP/EE commands */
- MLX4_CMD_RST2INIT_QP = 0x19,
- MLX4_CMD_INIT2RTR_QP = 0x1a,
- MLX4_CMD_RTR2RTS_QP = 0x1b,
- MLX4_CMD_RTS2RTS_QP = 0x1c,
- MLX4_CMD_SQERR2RTS_QP = 0x1d,
- MLX4_CMD_2ERR_QP = 0x1e,
- MLX4_CMD_RTS2SQD_QP = 0x1f,
- MLX4_CMD_SQD2SQD_QP = 0x38,
- MLX4_CMD_SQD2RTS_QP = 0x20,
- MLX4_CMD_2RST_QP = 0x21,
- MLX4_CMD_QUERY_QP = 0x22,
- MLX4_CMD_INIT2INIT_QP = 0x2d,
- MLX4_CMD_SUSPEND_QP = 0x32,
- MLX4_CMD_UNSUSPEND_QP = 0x33,
- /* special QP and management commands */
- MLX4_CMD_CONF_SPECIAL_QP = 0x23,
- MLX4_CMD_MAD_IFC = 0x24,
-
- /* multicast commands */
- MLX4_CMD_READ_MCG = 0x25,
- MLX4_CMD_WRITE_MCG = 0x26,
- MLX4_CMD_MGID_HASH = 0x27,
-
- /* miscellaneous commands */
- MLX4_CMD_DIAG_RPRT = 0x30,
- MLX4_CMD_NOP = 0x31,
- MLX4_CMD_ACCESS_MEM = 0x2e,
- MLX4_CMD_SET_VEP = 0x52,
-
- /* Ethernet specific commands */
- MLX4_CMD_SET_VLAN_FLTR = 0x47,
- MLX4_CMD_SET_MCAST_FLTR = 0x48,
- MLX4_CMD_DUMP_ETH_STATS = 0x49,
-
- /* Communication channel commands */
- MLX4_CMD_ARM_COMM_CHANNEL = 0x57,
- MLX4_CMD_GEN_EQE = 0x58,
-
- /* virtual commands */
- MLX4_CMD_ALLOC_RES = 0xf00,
- MLX4_CMD_FREE_RES = 0xf01,
- MLX4_CMD_MCAST_ATTACH = 0xf05,
- MLX4_CMD_UCAST_ATTACH = 0xf06,
- MLX4_CMD_PROMISC = 0xf08,
- MLX4_CMD_QUERY_FUNC_CAP = 0xf0a,
- MLX4_CMD_QP_ATTACH = 0xf0b,
-
- /* debug commands */
- MLX4_CMD_QUERY_DEBUG_MSG = 0x2a,
- MLX4_CMD_SET_DEBUG_MSG = 0x2b,
-
- /* statistics commands */
- MLX4_CMD_QUERY_IF_STAT = 0X54,
- MLX4_CMD_SET_IF_STAT = 0X55,
-};
-
-enum {
- MLX4_CMD_TIME_CLASS_A = 10000,
- MLX4_CMD_TIME_CLASS_B = 10000,
- MLX4_CMD_TIME_CLASS_C = 10000,
-};
-
-enum {
- MLX4_MAILBOX_SIZE = 4096,
- MLX4_ACCESS_MEM_ALIGN = 256,
-};
-
-enum {
- /* set port opcode modifiers */
- MLX4_SET_PORT_GENERAL = 0x0,
- MLX4_SET_PORT_RQP_CALC = 0x1,
- MLX4_SET_PORT_MAC_TABLE = 0x2,
- MLX4_SET_PORT_VLAN_TABLE = 0x3,
- MLX4_SET_PORT_PRIO_MAP = 0x4,
- MLX4_SET_PORT_GID_TABLE = 0x5,
-};
-
-enum {
- MLX4_CMD_WRAPPED,
- MLX4_CMD_NATIVE
-};
-
-struct mlx4_dev;
-
-struct mlx4_cmd_mailbox {
- void *buf;
- dma_addr_t dma;
-};
-
-int __mlx4_cmd(struct mlx4_dev *dev, u64 in_param, u64 *out_param,
- int out_is_imm, u32 in_modifier, u8 op_modifier,
- u16 op, unsigned long timeout, int native);
-
-/* Invoke a command with no output parameter */
-static inline int mlx4_cmd(struct mlx4_dev *dev, u64 in_param, u32 in_modifier,
- u8 op_modifier, u16 op, unsigned long timeout,
- int native)
-{
- return __mlx4_cmd(dev, in_param, NULL, 0, in_modifier,
- op_modifier, op, timeout, native);
-}
-
-/* Invoke a command with an output mailbox */
-static inline int mlx4_cmd_box(struct mlx4_dev *dev, u64 in_param, u64 out_param,
- u32 in_modifier, u8 op_modifier, u16 op,
- unsigned long timeout, int native)
-{
- return __mlx4_cmd(dev, in_param, &out_param, 0, in_modifier,
- op_modifier, op, timeout, native);
-}
-
-/*
- * Invoke a command with an immediate output parameter (and copy the
- * output into the caller's out_param pointer after the command
- * executes).
- */
-static inline int mlx4_cmd_imm(struct mlx4_dev *dev, u64 in_param, u64 *out_param,
- u32 in_modifier, u8 op_modifier, u16 op,
- unsigned long timeout, int native)
-{
- return __mlx4_cmd(dev, in_param, out_param, 1, in_modifier,
- op_modifier, op, timeout, native);
-}
-
-struct mlx4_cmd_mailbox *mlx4_alloc_cmd_mailbox(struct mlx4_dev *dev);
-void mlx4_free_cmd_mailbox(struct mlx4_dev *dev, struct mlx4_cmd_mailbox *mailbox);
-
-u32 mlx4_comm_get_version(void);
-
-#define MLX4_COMM_GET_IF_REV(cmd_chan_ver) (u8)((cmd_chan_ver) >> 8)
-
-#endif /* MLX4_CMD_H */
diff --git a/ANDROID_3.4.5/include/linux/mlx4/cq.h b/ANDROID_3.4.5/include/linux/mlx4/cq.h
deleted file mode 100644
index 6f65b2c8..00000000
--- a/ANDROID_3.4.5/include/linux/mlx4/cq.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Copyright (c) 2007 Cisco Systems, Inc. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#ifndef MLX4_CQ_H
-#define MLX4_CQ_H
-
-#include <linux/types.h>
-
-#include <linux/mlx4/device.h>
-#include <linux/mlx4/doorbell.h>
-
-struct mlx4_cqe {
- __be32 vlan_my_qpn;
- __be32 immed_rss_invalid;
- __be32 g_mlpath_rqpn;
- __be16 sl_vid;
- __be16 rlid;
- __be16 status;
- u8 ipv6_ext_mask;
- u8 badfcs_enc;
- __be32 byte_cnt;
- __be16 wqe_index;
- __be16 checksum;
- u8 reserved[3];
- u8 owner_sr_opcode;
-};
-
-struct mlx4_err_cqe {
- __be32 my_qpn;
- u32 reserved1[5];
- __be16 wqe_index;
- u8 vendor_err_syndrome;
- u8 syndrome;
- u8 reserved2[3];
- u8 owner_sr_opcode;
-};
-
-enum {
- MLX4_CQE_VLAN_PRESENT_MASK = 1 << 29,
- MLX4_CQE_QPN_MASK = 0xffffff,
-};
-
-enum {
- MLX4_CQE_OWNER_MASK = 0x80,
- MLX4_CQE_IS_SEND_MASK = 0x40,
- MLX4_CQE_OPCODE_MASK = 0x1f
-};
-
-enum {
- MLX4_CQE_SYNDROME_LOCAL_LENGTH_ERR = 0x01,
- MLX4_CQE_SYNDROME_LOCAL_QP_OP_ERR = 0x02,
- MLX4_CQE_SYNDROME_LOCAL_PROT_ERR = 0x04,
- MLX4_CQE_SYNDROME_WR_FLUSH_ERR = 0x05,
- MLX4_CQE_SYNDROME_MW_BIND_ERR = 0x06,
- MLX4_CQE_SYNDROME_BAD_RESP_ERR = 0x10,
- MLX4_CQE_SYNDROME_LOCAL_ACCESS_ERR = 0x11,
- MLX4_CQE_SYNDROME_REMOTE_INVAL_REQ_ERR = 0x12,
- MLX4_CQE_SYNDROME_REMOTE_ACCESS_ERR = 0x13,
- MLX4_CQE_SYNDROME_REMOTE_OP_ERR = 0x14,
- MLX4_CQE_SYNDROME_TRANSPORT_RETRY_EXC_ERR = 0x15,
- MLX4_CQE_SYNDROME_RNR_RETRY_EXC_ERR = 0x16,
- MLX4_CQE_SYNDROME_REMOTE_ABORTED_ERR = 0x22,
-};
-
-enum {
- MLX4_CQE_STATUS_IPV4 = 1 << 6,
- MLX4_CQE_STATUS_IPV4F = 1 << 7,
- MLX4_CQE_STATUS_IPV6 = 1 << 8,
- MLX4_CQE_STATUS_IPV4OPT = 1 << 9,
- MLX4_CQE_STATUS_TCP = 1 << 10,
- MLX4_CQE_STATUS_UDP = 1 << 11,
- MLX4_CQE_STATUS_IPOK = 1 << 12,
-};
-
-enum {
- MLX4_CQE_LLC = 1,
- MLX4_CQE_SNAP = 1 << 1,
- MLX4_CQE_BAD_FCS = 1 << 4,
-};
-
-static inline void mlx4_cq_arm(struct mlx4_cq *cq, u32 cmd,
- void __iomem *uar_page,
- spinlock_t *doorbell_lock)
-{
- __be32 doorbell[2];
- u32 sn;
- u32 ci;
-
- sn = cq->arm_sn & 3;
- ci = cq->cons_index & 0xffffff;
-
- *cq->arm_db = cpu_to_be32(sn << 28 | cmd | ci);
-
- /*
- * Make sure that the doorbell record in host memory is
- * written before ringing the doorbell via PCI MMIO.
- */
- wmb();
-
- doorbell[0] = cpu_to_be32(sn << 28 | cmd | cq->cqn);
- doorbell[1] = cpu_to_be32(ci);
-
- mlx4_write64(doorbell, uar_page + MLX4_CQ_DOORBELL, doorbell_lock);
-}
-
-static inline void mlx4_cq_set_ci(struct mlx4_cq *cq)
-{
- *cq->set_ci_db = cpu_to_be32(cq->cons_index & 0xffffff);
-}
-
-enum {
- MLX4_CQ_DB_REQ_NOT_SOL = 1 << 24,
- MLX4_CQ_DB_REQ_NOT = 2 << 24
-};
-
-int mlx4_cq_modify(struct mlx4_dev *dev, struct mlx4_cq *cq,
- u16 count, u16 period);
-int mlx4_cq_resize(struct mlx4_dev *dev, struct mlx4_cq *cq,
- int entries, struct mlx4_mtt *mtt);
-
-#endif /* MLX4_CQ_H */
diff --git a/ANDROID_3.4.5/include/linux/mlx4/device.h b/ANDROID_3.4.5/include/linux/mlx4/device.h
deleted file mode 100644
index 834c96c5..00000000
--- a/ANDROID_3.4.5/include/linux/mlx4/device.h
+++ /dev/null
@@ -1,654 +0,0 @@
-/*
- * Copyright (c) 2006, 2007 Cisco Systems, Inc. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#ifndef MLX4_DEVICE_H
-#define MLX4_DEVICE_H
-
-#include <linux/pci.h>
-#include <linux/completion.h>
-#include <linux/radix-tree.h>
-
-#include <linux/atomic.h>
-
-#define MAX_MSIX_P_PORT 17
-#define MAX_MSIX 64
-#define MSIX_LEGACY_SZ 4
-#define MIN_MSIX_P_PORT 5
-
-enum {
- MLX4_FLAG_MSI_X = 1 << 0,
- MLX4_FLAG_OLD_PORT_CMDS = 1 << 1,
- MLX4_FLAG_MASTER = 1 << 2,
- MLX4_FLAG_SLAVE = 1 << 3,
- MLX4_FLAG_SRIOV = 1 << 4,
-};
-
-enum {
- MLX4_MAX_PORTS = 2
-};
-
-enum {
- MLX4_BOARD_ID_LEN = 64
-};
-
-enum {
- MLX4_MAX_NUM_PF = 16,
- MLX4_MAX_NUM_VF = 64,
- MLX4_MFUNC_MAX = 80,
- MLX4_MFUNC_EQ_NUM = 4,
- MLX4_MFUNC_MAX_EQES = 8,
- MLX4_MFUNC_EQE_MASK = (MLX4_MFUNC_MAX_EQES - 1)
-};
-
-enum {
- MLX4_DEV_CAP_FLAG_RC = 1LL << 0,
- MLX4_DEV_CAP_FLAG_UC = 1LL << 1,
- MLX4_DEV_CAP_FLAG_UD = 1LL << 2,
- MLX4_DEV_CAP_FLAG_XRC = 1LL << 3,
- MLX4_DEV_CAP_FLAG_SRQ = 1LL << 6,
- MLX4_DEV_CAP_FLAG_IPOIB_CSUM = 1LL << 7,
- MLX4_DEV_CAP_FLAG_BAD_PKEY_CNTR = 1LL << 8,
- MLX4_DEV_CAP_FLAG_BAD_QKEY_CNTR = 1LL << 9,
- MLX4_DEV_CAP_FLAG_DPDP = 1LL << 12,
- MLX4_DEV_CAP_FLAG_BLH = 1LL << 15,
- MLX4_DEV_CAP_FLAG_MEM_WINDOW = 1LL << 16,
- MLX4_DEV_CAP_FLAG_APM = 1LL << 17,
- MLX4_DEV_CAP_FLAG_ATOMIC = 1LL << 18,
- MLX4_DEV_CAP_FLAG_RAW_MCAST = 1LL << 19,
- MLX4_DEV_CAP_FLAG_UD_AV_PORT = 1LL << 20,
- MLX4_DEV_CAP_FLAG_UD_MCAST = 1LL << 21,
- MLX4_DEV_CAP_FLAG_IBOE = 1LL << 30,
- MLX4_DEV_CAP_FLAG_UC_LOOPBACK = 1LL << 32,
- MLX4_DEV_CAP_FLAG_FCS_KEEP = 1LL << 34,
- MLX4_DEV_CAP_FLAG_WOL_PORT1 = 1LL << 37,
- MLX4_DEV_CAP_FLAG_WOL_PORT2 = 1LL << 38,
- MLX4_DEV_CAP_FLAG_UDP_RSS = 1LL << 40,
- MLX4_DEV_CAP_FLAG_VEP_UC_STEER = 1LL << 41,
- MLX4_DEV_CAP_FLAG_VEP_MC_STEER = 1LL << 42,
- MLX4_DEV_CAP_FLAG_COUNTERS = 1LL << 48,
- MLX4_DEV_CAP_FLAG_SENSE_SUPPORT = 1LL << 55
-};
-
-#define MLX4_ATTR_EXTENDED_PORT_INFO cpu_to_be16(0xff90)
-
-enum {
- MLX4_BMME_FLAG_LOCAL_INV = 1 << 6,
- MLX4_BMME_FLAG_REMOTE_INV = 1 << 7,
- MLX4_BMME_FLAG_TYPE_2_WIN = 1 << 9,
- MLX4_BMME_FLAG_RESERVED_LKEY = 1 << 10,
- MLX4_BMME_FLAG_FAST_REG_WR = 1 << 11,
-};
-
-enum mlx4_event {
- MLX4_EVENT_TYPE_COMP = 0x00,
- MLX4_EVENT_TYPE_PATH_MIG = 0x01,
- MLX4_EVENT_TYPE_COMM_EST = 0x02,
- MLX4_EVENT_TYPE_SQ_DRAINED = 0x03,
- MLX4_EVENT_TYPE_SRQ_QP_LAST_WQE = 0x13,
- MLX4_EVENT_TYPE_SRQ_LIMIT = 0x14,
- MLX4_EVENT_TYPE_CQ_ERROR = 0x04,
- MLX4_EVENT_TYPE_WQ_CATAS_ERROR = 0x05,
- MLX4_EVENT_TYPE_EEC_CATAS_ERROR = 0x06,
- MLX4_EVENT_TYPE_PATH_MIG_FAILED = 0x07,
- MLX4_EVENT_TYPE_WQ_INVAL_REQ_ERROR = 0x10,
- MLX4_EVENT_TYPE_WQ_ACCESS_ERROR = 0x11,
- MLX4_EVENT_TYPE_SRQ_CATAS_ERROR = 0x12,
- MLX4_EVENT_TYPE_LOCAL_CATAS_ERROR = 0x08,
- MLX4_EVENT_TYPE_PORT_CHANGE = 0x09,
- MLX4_EVENT_TYPE_EQ_OVERFLOW = 0x0f,
- MLX4_EVENT_TYPE_ECC_DETECT = 0x0e,
- MLX4_EVENT_TYPE_CMD = 0x0a,
- MLX4_EVENT_TYPE_VEP_UPDATE = 0x19,
- MLX4_EVENT_TYPE_COMM_CHANNEL = 0x18,
- MLX4_EVENT_TYPE_FATAL_WARNING = 0x1b,
- MLX4_EVENT_TYPE_FLR_EVENT = 0x1c,
- MLX4_EVENT_TYPE_NONE = 0xff,
-};
-
-enum {
- MLX4_PORT_CHANGE_SUBTYPE_DOWN = 1,
- MLX4_PORT_CHANGE_SUBTYPE_ACTIVE = 4
-};
-
-enum {
- MLX4_FATAL_WARNING_SUBTYPE_WARMING = 0,
-};
-
-enum {
- MLX4_PERM_LOCAL_READ = 1 << 10,
- MLX4_PERM_LOCAL_WRITE = 1 << 11,
- MLX4_PERM_REMOTE_READ = 1 << 12,
- MLX4_PERM_REMOTE_WRITE = 1 << 13,
- MLX4_PERM_ATOMIC = 1 << 14
-};
-
-enum {
- MLX4_OPCODE_NOP = 0x00,
- MLX4_OPCODE_SEND_INVAL = 0x01,
- MLX4_OPCODE_RDMA_WRITE = 0x08,
- MLX4_OPCODE_RDMA_WRITE_IMM = 0x09,
- MLX4_OPCODE_SEND = 0x0a,
- MLX4_OPCODE_SEND_IMM = 0x0b,
- MLX4_OPCODE_LSO = 0x0e,
- MLX4_OPCODE_RDMA_READ = 0x10,
- MLX4_OPCODE_ATOMIC_CS = 0x11,
- MLX4_OPCODE_ATOMIC_FA = 0x12,
- MLX4_OPCODE_MASKED_ATOMIC_CS = 0x14,
- MLX4_OPCODE_MASKED_ATOMIC_FA = 0x15,
- MLX4_OPCODE_BIND_MW = 0x18,
- MLX4_OPCODE_FMR = 0x19,
- MLX4_OPCODE_LOCAL_INVAL = 0x1b,
- MLX4_OPCODE_CONFIG_CMD = 0x1f,
-
- MLX4_RECV_OPCODE_RDMA_WRITE_IMM = 0x00,
- MLX4_RECV_OPCODE_SEND = 0x01,
- MLX4_RECV_OPCODE_SEND_IMM = 0x02,
- MLX4_RECV_OPCODE_SEND_INVAL = 0x03,
-
- MLX4_CQE_OPCODE_ERROR = 0x1e,
- MLX4_CQE_OPCODE_RESIZE = 0x16,
-};
-
-enum {
- MLX4_STAT_RATE_OFFSET = 5
-};
-
-enum mlx4_protocol {
- MLX4_PROT_IB_IPV6 = 0,
- MLX4_PROT_ETH,
- MLX4_PROT_IB_IPV4,
- MLX4_PROT_FCOE
-};
-
-enum {
- MLX4_MTT_FLAG_PRESENT = 1
-};
-
-enum mlx4_qp_region {
- MLX4_QP_REGION_FW = 0,
- MLX4_QP_REGION_ETH_ADDR,
- MLX4_QP_REGION_FC_ADDR,
- MLX4_QP_REGION_FC_EXCH,
- MLX4_NUM_QP_REGION
-};
-
-enum mlx4_port_type {
- MLX4_PORT_TYPE_NONE = 0,
- MLX4_PORT_TYPE_IB = 1,
- MLX4_PORT_TYPE_ETH = 2,
- MLX4_PORT_TYPE_AUTO = 3
-};
-
-enum mlx4_special_vlan_idx {
- MLX4_NO_VLAN_IDX = 0,
- MLX4_VLAN_MISS_IDX,
- MLX4_VLAN_REGULAR
-};
-
-enum mlx4_steer_type {
- MLX4_MC_STEER = 0,
- MLX4_UC_STEER,
- MLX4_NUM_STEERS
-};
-
-enum {
- MLX4_NUM_FEXCH = 64 * 1024,
-};
-
-enum {
- MLX4_MAX_FAST_REG_PAGES = 511,
-};
-
-static inline u64 mlx4_fw_ver(u64 major, u64 minor, u64 subminor)
-{
- return (major << 32) | (minor << 16) | subminor;
-}
-
-struct mlx4_caps {
- u64 fw_ver;
- u32 function;
- int num_ports;
- int vl_cap[MLX4_MAX_PORTS + 1];
- int ib_mtu_cap[MLX4_MAX_PORTS + 1];
- __be32 ib_port_def_cap[MLX4_MAX_PORTS + 1];
- u64 def_mac[MLX4_MAX_PORTS + 1];
- int eth_mtu_cap[MLX4_MAX_PORTS + 1];
- int gid_table_len[MLX4_MAX_PORTS + 1];
- int pkey_table_len[MLX4_MAX_PORTS + 1];
- int trans_type[MLX4_MAX_PORTS + 1];
- int vendor_oui[MLX4_MAX_PORTS + 1];
- int wavelength[MLX4_MAX_PORTS + 1];
- u64 trans_code[MLX4_MAX_PORTS + 1];
- int local_ca_ack_delay;
- int num_uars;
- u32 uar_page_size;
- int bf_reg_size;
- int bf_regs_per_page;
- int max_sq_sg;
- int max_rq_sg;
- int num_qps;
- int max_wqes;
- int max_sq_desc_sz;
- int max_rq_desc_sz;
- int max_qp_init_rdma;
- int max_qp_dest_rdma;
- int sqp_start;
- int num_srqs;
- int max_srq_wqes;
- int max_srq_sge;
- int reserved_srqs;
- int num_cqs;
- int max_cqes;
- int reserved_cqs;
- int num_eqs;
- int reserved_eqs;
- int num_comp_vectors;
- int comp_pool;
- int num_mpts;
- int max_fmr_maps;
- int num_mtts;
- int fmr_reserved_mtts;
- int reserved_mtts;
- int reserved_mrws;
- int reserved_uars;
- int num_mgms;
- int num_amgms;
- int reserved_mcgs;
- int num_qp_per_mgm;
- int num_pds;
- int reserved_pds;
- int max_xrcds;
- int reserved_xrcds;
- int mtt_entry_sz;
- u32 max_msg_sz;
- u32 page_size_cap;
- u64 flags;
- u32 bmme_flags;
- u32 reserved_lkey;
- u16 stat_rate_support;
- u8 port_width_cap[MLX4_MAX_PORTS + 1];
- int max_gso_sz;
- int reserved_qps_cnt[MLX4_NUM_QP_REGION];
- int reserved_qps;
- int reserved_qps_base[MLX4_NUM_QP_REGION];
- int log_num_macs;
- int log_num_vlans;
- int log_num_prios;
- enum mlx4_port_type port_type[MLX4_MAX_PORTS + 1];
- u8 supported_type[MLX4_MAX_PORTS + 1];
- u8 suggested_type[MLX4_MAX_PORTS + 1];
- u8 default_sense[MLX4_MAX_PORTS + 1];
- u32 port_mask[MLX4_MAX_PORTS + 1];
- enum mlx4_port_type possible_type[MLX4_MAX_PORTS + 1];
- u32 max_counters;
- u8 port_ib_mtu[MLX4_MAX_PORTS + 1];
-};
-
-struct mlx4_buf_list {
- void *buf;
- dma_addr_t map;
-};
-
-struct mlx4_buf {
- struct mlx4_buf_list direct;
- struct mlx4_buf_list *page_list;
- int nbufs;
- int npages;
- int page_shift;
-};
-
-struct mlx4_mtt {
- u32 offset;
- int order;
- int page_shift;
-};
-
-enum {
- MLX4_DB_PER_PAGE = PAGE_SIZE / 4
-};
-
-struct mlx4_db_pgdir {
- struct list_head list;
- DECLARE_BITMAP(order0, MLX4_DB_PER_PAGE);
- DECLARE_BITMAP(order1, MLX4_DB_PER_PAGE / 2);
- unsigned long *bits[2];
- __be32 *db_page;
- dma_addr_t db_dma;
-};
-
-struct mlx4_ib_user_db_page;
-
-struct mlx4_db {
- __be32 *db;
- union {
- struct mlx4_db_pgdir *pgdir;
- struct mlx4_ib_user_db_page *user_page;
- } u;
- dma_addr_t dma;
- int index;
- int order;
-};
-
-struct mlx4_hwq_resources {
- struct mlx4_db db;
- struct mlx4_mtt mtt;
- struct mlx4_buf buf;
-};
-
-struct mlx4_mr {
- struct mlx4_mtt mtt;
- u64 iova;
- u64 size;
- u32 key;
- u32 pd;
- u32 access;
- int enabled;
-};
-
-struct mlx4_fmr {
- struct mlx4_mr mr;
- struct mlx4_mpt_entry *mpt;
- __be64 *mtts;
- dma_addr_t dma_handle;
- int max_pages;
- int max_maps;
- int maps;
- u8 page_shift;
-};
-
-struct mlx4_uar {
- unsigned long pfn;
- int index;
- struct list_head bf_list;
- unsigned free_bf_bmap;
- void __iomem *map;
- void __iomem *bf_map;
-};
-
-struct mlx4_bf {
- unsigned long offset;
- int buf_size;
- struct mlx4_uar *uar;
- void __iomem *reg;
-};
-
-struct mlx4_cq {
- void (*comp) (struct mlx4_cq *);
- void (*event) (struct mlx4_cq *, enum mlx4_event);
-
- struct mlx4_uar *uar;
-
- u32 cons_index;
-
- __be32 *set_ci_db;
- __be32 *arm_db;
- int arm_sn;
-
- int cqn;
- unsigned vector;
-
- atomic_t refcount;
- struct completion free;
-};
-
-struct mlx4_qp {
- void (*event) (struct mlx4_qp *, enum mlx4_event);
-
- int qpn;
-
- atomic_t refcount;
- struct completion free;
-};
-
-struct mlx4_srq {
- void (*event) (struct mlx4_srq *, enum mlx4_event);
-
- int srqn;
- int max;
- int max_gs;
- int wqe_shift;
-
- atomic_t refcount;
- struct completion free;
-};
-
-struct mlx4_av {
- __be32 port_pd;
- u8 reserved1;
- u8 g_slid;
- __be16 dlid;
- u8 reserved2;
- u8 gid_index;
- u8 stat_rate;
- u8 hop_limit;
- __be32 sl_tclass_flowlabel;
- u8 dgid[16];
-};
-
-struct mlx4_eth_av {
- __be32 port_pd;
- u8 reserved1;
- u8 smac_idx;
- u16 reserved2;
- u8 reserved3;
- u8 gid_index;
- u8 stat_rate;
- u8 hop_limit;
- __be32 sl_tclass_flowlabel;
- u8 dgid[16];
- u32 reserved4[2];
- __be16 vlan;
- u8 mac[6];
-};
-
-union mlx4_ext_av {
- struct mlx4_av ib;
- struct mlx4_eth_av eth;
-};
-
-struct mlx4_counter {
- u8 reserved1[3];
- u8 counter_mode;
- __be32 num_ifc;
- u32 reserved2[2];
- __be64 rx_frames;
- __be64 rx_bytes;
- __be64 tx_frames;
- __be64 tx_bytes;
-};
-
-struct mlx4_dev {
- struct pci_dev *pdev;
- unsigned long flags;
- unsigned long num_slaves;
- struct mlx4_caps caps;
- struct radix_tree_root qp_table_tree;
- u8 rev_id;
- char board_id[MLX4_BOARD_ID_LEN];
- int num_vfs;
-};
-
-struct mlx4_init_port_param {
- int set_guid0;
- int set_node_guid;
- int set_si_guid;
- u16 mtu;
- int port_width_cap;
- u16 vl_cap;
- u16 max_gid;
- u16 max_pkey;
- u64 guid0;
- u64 node_guid;
- u64 si_guid;
-};
-
-#define mlx4_foreach_port(port, dev, type) \
- for ((port) = 1; (port) <= (dev)->caps.num_ports; (port)++) \
- if ((type) == (dev)->caps.port_mask[(port)])
-
-#define mlx4_foreach_ib_transport_port(port, dev) \
- for ((port) = 1; (port) <= (dev)->caps.num_ports; (port)++) \
- if (((dev)->caps.port_mask[port] == MLX4_PORT_TYPE_IB) || \
- ((dev)->caps.flags & MLX4_DEV_CAP_FLAG_IBOE))
-
-static inline int mlx4_is_master(struct mlx4_dev *dev)
-{
- return dev->flags & MLX4_FLAG_MASTER;
-}
-
-static inline int mlx4_is_qp_reserved(struct mlx4_dev *dev, u32 qpn)
-{
- return (qpn < dev->caps.sqp_start + 8);
-}
-
-static inline int mlx4_is_mfunc(struct mlx4_dev *dev)
-{
- return dev->flags & (MLX4_FLAG_SLAVE | MLX4_FLAG_MASTER);
-}
-
-static inline int mlx4_is_slave(struct mlx4_dev *dev)
-{
- return dev->flags & MLX4_FLAG_SLAVE;
-}
-
-int mlx4_buf_alloc(struct mlx4_dev *dev, int size, int max_direct,
- struct mlx4_buf *buf);
-void mlx4_buf_free(struct mlx4_dev *dev, int size, struct mlx4_buf *buf);
-static inline void *mlx4_buf_offset(struct mlx4_buf *buf, int offset)
-{
- if (BITS_PER_LONG == 64 || buf->nbufs == 1)
- return buf->direct.buf + offset;
- else
- return buf->page_list[offset >> PAGE_SHIFT].buf +
- (offset & (PAGE_SIZE - 1));
-}
-
-int mlx4_pd_alloc(struct mlx4_dev *dev, u32 *pdn);
-void mlx4_pd_free(struct mlx4_dev *dev, u32 pdn);
-int mlx4_xrcd_alloc(struct mlx4_dev *dev, u32 *xrcdn);
-void mlx4_xrcd_free(struct mlx4_dev *dev, u32 xrcdn);
-
-int mlx4_uar_alloc(struct mlx4_dev *dev, struct mlx4_uar *uar);
-void mlx4_uar_free(struct mlx4_dev *dev, struct mlx4_uar *uar);
-int mlx4_bf_alloc(struct mlx4_dev *dev, struct mlx4_bf *bf);
-void mlx4_bf_free(struct mlx4_dev *dev, struct mlx4_bf *bf);
-
-int mlx4_mtt_init(struct mlx4_dev *dev, int npages, int page_shift,
- struct mlx4_mtt *mtt);
-void mlx4_mtt_cleanup(struct mlx4_dev *dev, struct mlx4_mtt *mtt);
-u64 mlx4_mtt_addr(struct mlx4_dev *dev, struct mlx4_mtt *mtt);
-
-int mlx4_mr_alloc(struct mlx4_dev *dev, u32 pd, u64 iova, u64 size, u32 access,
- int npages, int page_shift, struct mlx4_mr *mr);
-void mlx4_mr_free(struct mlx4_dev *dev, struct mlx4_mr *mr);
-int mlx4_mr_enable(struct mlx4_dev *dev, struct mlx4_mr *mr);
-int mlx4_write_mtt(struct mlx4_dev *dev, struct mlx4_mtt *mtt,
- int start_index, int npages, u64 *page_list);
-int mlx4_buf_write_mtt(struct mlx4_dev *dev, struct mlx4_mtt *mtt,
- struct mlx4_buf *buf);
-
-int mlx4_db_alloc(struct mlx4_dev *dev, struct mlx4_db *db, int order);
-void mlx4_db_free(struct mlx4_dev *dev, struct mlx4_db *db);
-
-int mlx4_alloc_hwq_res(struct mlx4_dev *dev, struct mlx4_hwq_resources *wqres,
- int size, int max_direct);
-void mlx4_free_hwq_res(struct mlx4_dev *mdev, struct mlx4_hwq_resources *wqres,
- int size);
-
-int mlx4_cq_alloc(struct mlx4_dev *dev, int nent, struct mlx4_mtt *mtt,
- struct mlx4_uar *uar, u64 db_rec, struct mlx4_cq *cq,
- unsigned vector, int collapsed);
-void mlx4_cq_free(struct mlx4_dev *dev, struct mlx4_cq *cq);
-
-int mlx4_qp_reserve_range(struct mlx4_dev *dev, int cnt, int align, int *base);
-void mlx4_qp_release_range(struct mlx4_dev *dev, int base_qpn, int cnt);
-
-int mlx4_qp_alloc(struct mlx4_dev *dev, int qpn, struct mlx4_qp *qp);
-void mlx4_qp_free(struct mlx4_dev *dev, struct mlx4_qp *qp);
-
-int mlx4_srq_alloc(struct mlx4_dev *dev, u32 pdn, u32 cqn, u16 xrcdn,
- struct mlx4_mtt *mtt, u64 db_rec, struct mlx4_srq *srq);
-void mlx4_srq_free(struct mlx4_dev *dev, struct mlx4_srq *srq);
-int mlx4_srq_arm(struct mlx4_dev *dev, struct mlx4_srq *srq, int limit_watermark);
-int mlx4_srq_query(struct mlx4_dev *dev, struct mlx4_srq *srq, int *limit_watermark);
-
-int mlx4_INIT_PORT(struct mlx4_dev *dev, int port);
-int mlx4_CLOSE_PORT(struct mlx4_dev *dev, int port);
-
-int mlx4_unicast_attach(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16],
- int block_mcast_loopback, enum mlx4_protocol prot);
-int mlx4_unicast_detach(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16],
- enum mlx4_protocol prot);
-int mlx4_multicast_attach(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16],
- int block_mcast_loopback, enum mlx4_protocol protocol);
-int mlx4_multicast_detach(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16],
- enum mlx4_protocol protocol);
-int mlx4_multicast_promisc_add(struct mlx4_dev *dev, u32 qpn, u8 port);
-int mlx4_multicast_promisc_remove(struct mlx4_dev *dev, u32 qpn, u8 port);
-int mlx4_unicast_promisc_add(struct mlx4_dev *dev, u32 qpn, u8 port);
-int mlx4_unicast_promisc_remove(struct mlx4_dev *dev, u32 qpn, u8 port);
-int mlx4_SET_MCAST_FLTR(struct mlx4_dev *dev, u8 port, u64 mac, u64 clear, u8 mode);
-
-int mlx4_register_mac(struct mlx4_dev *dev, u8 port, u64 mac);
-void mlx4_unregister_mac(struct mlx4_dev *dev, u8 port, u64 mac);
-int mlx4_replace_mac(struct mlx4_dev *dev, u8 port, int qpn, u64 new_mac);
-int mlx4_get_eth_qp(struct mlx4_dev *dev, u8 port, u64 mac, int *qpn);
-void mlx4_put_eth_qp(struct mlx4_dev *dev, u8 port, u64 mac, int qpn);
-void mlx4_set_stats_bitmap(struct mlx4_dev *dev, u64 *stats_bitmap);
-int mlx4_SET_PORT_general(struct mlx4_dev *dev, u8 port, int mtu,
- u8 pptx, u8 pfctx, u8 pprx, u8 pfcrx);
-int mlx4_SET_PORT_qpn_calc(struct mlx4_dev *dev, u8 port, u32 base_qpn,
- u8 promisc);
-int mlx4_find_cached_vlan(struct mlx4_dev *dev, u8 port, u16 vid, int *idx);
-int mlx4_register_vlan(struct mlx4_dev *dev, u8 port, u16 vlan, int *index);
-void mlx4_unregister_vlan(struct mlx4_dev *dev, u8 port, int index);
-
-int mlx4_map_phys_fmr(struct mlx4_dev *dev, struct mlx4_fmr *fmr, u64 *page_list,
- int npages, u64 iova, u32 *lkey, u32 *rkey);
-int mlx4_fmr_alloc(struct mlx4_dev *dev, u32 pd, u32 access, int max_pages,
- int max_maps, u8 page_shift, struct mlx4_fmr *fmr);
-int mlx4_fmr_enable(struct mlx4_dev *dev, struct mlx4_fmr *fmr);
-void mlx4_fmr_unmap(struct mlx4_dev *dev, struct mlx4_fmr *fmr,
- u32 *lkey, u32 *rkey);
-int mlx4_fmr_free(struct mlx4_dev *dev, struct mlx4_fmr *fmr);
-int mlx4_SYNC_TPT(struct mlx4_dev *dev);
-int mlx4_test_interrupts(struct mlx4_dev *dev);
-int mlx4_assign_eq(struct mlx4_dev *dev, char* name , int* vector);
-void mlx4_release_eq(struct mlx4_dev *dev, int vec);
-
-int mlx4_wol_read(struct mlx4_dev *dev, u64 *config, int port);
-int mlx4_wol_write(struct mlx4_dev *dev, u64 config, int port);
-
-int mlx4_counter_alloc(struct mlx4_dev *dev, u32 *idx);
-void mlx4_counter_free(struct mlx4_dev *dev, u32 idx);
-
-#endif /* MLX4_DEVICE_H */
diff --git a/ANDROID_3.4.5/include/linux/mlx4/doorbell.h b/ANDROID_3.4.5/include/linux/mlx4/doorbell.h
deleted file mode 100644
index f31bba27..00000000
--- a/ANDROID_3.4.5/include/linux/mlx4/doorbell.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (c) 2004 Topspin Communications. All rights reserved.
- * Copyright (c) 2005 Sun Microsystems, Inc. All rights reserved.
- * Copyright (c) 2005 Mellanox Technologies. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#ifndef MLX4_DOORBELL_H
-#define MLX4_DOORBELL_H
-
-#include <linux/types.h>
-#include <linux/io.h>
-
-#define MLX4_SEND_DOORBELL 0x14
-#define MLX4_CQ_DOORBELL 0x20
-
-#if BITS_PER_LONG == 64
-/*
- * Assume that we can just write a 64-bit doorbell atomically. s390
- * actually doesn't have writeq() but S/390 systems don't even have
- * PCI so we won't worry about it.
- */
-
-#define MLX4_DECLARE_DOORBELL_LOCK(name)
-#define MLX4_INIT_DOORBELL_LOCK(ptr) do { } while (0)
-#define MLX4_GET_DOORBELL_LOCK(ptr) (NULL)
-
-static inline void mlx4_write64(__be32 val[2], void __iomem *dest,
- spinlock_t *doorbell_lock)
-{
- __raw_writeq(*(u64 *) val, dest);
-}
-
-#else
-
-/*
- * Just fall back to a spinlock to protect the doorbell if
- * BITS_PER_LONG is 32 -- there's no portable way to do atomic 64-bit
- * MMIO writes.
- */
-
-#define MLX4_DECLARE_DOORBELL_LOCK(name) spinlock_t name;
-#define MLX4_INIT_DOORBELL_LOCK(ptr) spin_lock_init(ptr)
-#define MLX4_GET_DOORBELL_LOCK(ptr) (ptr)
-
-static inline void mlx4_write64(__be32 val[2], void __iomem *dest,
- spinlock_t *doorbell_lock)
-{
- unsigned long flags;
-
- spin_lock_irqsave(doorbell_lock, flags);
- __raw_writel((__force u32) val[0], dest);
- __raw_writel((__force u32) val[1], dest + 4);
- spin_unlock_irqrestore(doorbell_lock, flags);
-}
-
-#endif
-
-#endif /* MLX4_DOORBELL_H */
diff --git a/ANDROID_3.4.5/include/linux/mlx4/driver.h b/ANDROID_3.4.5/include/linux/mlx4/driver.h
deleted file mode 100644
index 5f1298b1..00000000
--- a/ANDROID_3.4.5/include/linux/mlx4/driver.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (c) 2006 Cisco Systems, Inc. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#ifndef MLX4_DRIVER_H
-#define MLX4_DRIVER_H
-
-#include <linux/mlx4/device.h>
-
-struct mlx4_dev;
-
-enum mlx4_dev_event {
- MLX4_DEV_EVENT_CATASTROPHIC_ERROR,
- MLX4_DEV_EVENT_PORT_UP,
- MLX4_DEV_EVENT_PORT_DOWN,
- MLX4_DEV_EVENT_PORT_REINIT,
-};
-
-struct mlx4_interface {
- void * (*add) (struct mlx4_dev *dev);
- void (*remove)(struct mlx4_dev *dev, void *context);
- void (*event) (struct mlx4_dev *dev, void *context,
- enum mlx4_dev_event event, int port);
- void * (*get_dev)(struct mlx4_dev *dev, void *context, u8 port);
- struct list_head list;
- enum mlx4_protocol protocol;
-};
-
-int mlx4_register_interface(struct mlx4_interface *intf);
-void mlx4_unregister_interface(struct mlx4_interface *intf);
-
-void *mlx4_get_protocol_dev(struct mlx4_dev *dev, enum mlx4_protocol proto, int port);
-
-#endif /* MLX4_DRIVER_H */
diff --git a/ANDROID_3.4.5/include/linux/mlx4/qp.h b/ANDROID_3.4.5/include/linux/mlx4/qp.h
deleted file mode 100644
index 091f9e7d..00000000
--- a/ANDROID_3.4.5/include/linux/mlx4/qp.h
+++ /dev/null
@@ -1,364 +0,0 @@
-/*
- * Copyright (c) 2007 Cisco Systems, Inc. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#ifndef MLX4_QP_H
-#define MLX4_QP_H
-
-#include <linux/types.h>
-
-#include <linux/mlx4/device.h>
-
-#define MLX4_INVALID_LKEY 0x100
-
-enum mlx4_qp_optpar {
- MLX4_QP_OPTPAR_ALT_ADDR_PATH = 1 << 0,
- MLX4_QP_OPTPAR_RRE = 1 << 1,
- MLX4_QP_OPTPAR_RAE = 1 << 2,
- MLX4_QP_OPTPAR_RWE = 1 << 3,
- MLX4_QP_OPTPAR_PKEY_INDEX = 1 << 4,
- MLX4_QP_OPTPAR_Q_KEY = 1 << 5,
- MLX4_QP_OPTPAR_RNR_TIMEOUT = 1 << 6,
- MLX4_QP_OPTPAR_PRIMARY_ADDR_PATH = 1 << 7,
- MLX4_QP_OPTPAR_SRA_MAX = 1 << 8,
- MLX4_QP_OPTPAR_RRA_MAX = 1 << 9,
- MLX4_QP_OPTPAR_PM_STATE = 1 << 10,
- MLX4_QP_OPTPAR_RETRY_COUNT = 1 << 12,
- MLX4_QP_OPTPAR_RNR_RETRY = 1 << 13,
- MLX4_QP_OPTPAR_ACK_TIMEOUT = 1 << 14,
- MLX4_QP_OPTPAR_SCHED_QUEUE = 1 << 16,
- MLX4_QP_OPTPAR_COUNTER_INDEX = 1 << 20
-};
-
-enum mlx4_qp_state {
- MLX4_QP_STATE_RST = 0,
- MLX4_QP_STATE_INIT = 1,
- MLX4_QP_STATE_RTR = 2,
- MLX4_QP_STATE_RTS = 3,
- MLX4_QP_STATE_SQER = 4,
- MLX4_QP_STATE_SQD = 5,
- MLX4_QP_STATE_ERR = 6,
- MLX4_QP_STATE_SQ_DRAINING = 7,
- MLX4_QP_NUM_STATE
-};
-
-enum {
- MLX4_QP_ST_RC = 0x0,
- MLX4_QP_ST_UC = 0x1,
- MLX4_QP_ST_RD = 0x2,
- MLX4_QP_ST_UD = 0x3,
- MLX4_QP_ST_XRC = 0x6,
- MLX4_QP_ST_MLX = 0x7
-};
-
-enum {
- MLX4_QP_PM_MIGRATED = 0x3,
- MLX4_QP_PM_ARMED = 0x0,
- MLX4_QP_PM_REARM = 0x1
-};
-
-enum {
- /* params1 */
- MLX4_QP_BIT_SRE = 1 << 15,
- MLX4_QP_BIT_SWE = 1 << 14,
- MLX4_QP_BIT_SAE = 1 << 13,
- /* params2 */
- MLX4_QP_BIT_RRE = 1 << 15,
- MLX4_QP_BIT_RWE = 1 << 14,
- MLX4_QP_BIT_RAE = 1 << 13,
- MLX4_QP_BIT_RIC = 1 << 4,
-};
-
-enum {
- MLX4_RSS_HASH_XOR = 0,
- MLX4_RSS_HASH_TOP = 1,
-
- MLX4_RSS_UDP_IPV6 = 1 << 0,
- MLX4_RSS_UDP_IPV4 = 1 << 1,
- MLX4_RSS_TCP_IPV6 = 1 << 2,
- MLX4_RSS_IPV6 = 1 << 3,
- MLX4_RSS_TCP_IPV4 = 1 << 4,
- MLX4_RSS_IPV4 = 1 << 5,
-
- /* offset of mlx4_rss_context within mlx4_qp_context.pri_path */
- MLX4_RSS_OFFSET_IN_QPC_PRI_PATH = 0x24,
- /* offset of being RSS indirection QP within mlx4_qp_context.flags */
- MLX4_RSS_QPC_FLAG_OFFSET = 13,
-};
-
-struct mlx4_rss_context {
- __be32 base_qpn;
- __be32 default_qpn;
- u16 reserved;
- u8 hash_fn;
- u8 flags;
- __be32 rss_key[10];
- __be32 base_qpn_udp;
-};
-
-struct mlx4_qp_path {
- u8 fl;
- u8 reserved1[2];
- u8 pkey_index;
- u8 counter_index;
- u8 grh_mylmc;
- __be16 rlid;
- u8 ackto;
- u8 mgid_index;
- u8 static_rate;
- u8 hop_limit;
- __be32 tclass_flowlabel;
- u8 rgid[16];
- u8 sched_queue;
- u8 vlan_index;
- u8 reserved3[2];
- u8 reserved4[2];
- u8 dmac[6];
-};
-
-struct mlx4_qp_context {
- __be32 flags;
- __be32 pd;
- u8 mtu_msgmax;
- u8 rq_size_stride;
- u8 sq_size_stride;
- u8 rlkey;
- __be32 usr_page;
- __be32 local_qpn;
- __be32 remote_qpn;
- struct mlx4_qp_path pri_path;
- struct mlx4_qp_path alt_path;
- __be32 params1;
- u32 reserved1;
- __be32 next_send_psn;
- __be32 cqn_send;
- u32 reserved2[2];
- __be32 last_acked_psn;
- __be32 ssn;
- __be32 params2;
- __be32 rnr_nextrecvpsn;
- __be32 xrcd;
- __be32 cqn_recv;
- __be64 db_rec_addr;
- __be32 qkey;
- __be32 srqn;
- __be32 msn;
- __be16 rq_wqe_counter;
- __be16 sq_wqe_counter;
- u32 reserved3[2];
- __be32 param3;
- __be32 nummmcpeers_basemkey;
- u8 log_page_size;
- u8 reserved4[2];
- u8 mtt_base_addr_h;
- __be32 mtt_base_addr_l;
- u32 reserved5[10];
-};
-
-/* Which firmware version adds support for NEC (NoErrorCompletion) bit */
-#define MLX4_FW_VER_WQE_CTRL_NEC mlx4_fw_ver(2, 2, 232)
-
-enum {
- MLX4_WQE_CTRL_NEC = 1 << 29,
- MLX4_WQE_CTRL_FENCE = 1 << 6,
- MLX4_WQE_CTRL_CQ_UPDATE = 3 << 2,
- MLX4_WQE_CTRL_SOLICITED = 1 << 1,
- MLX4_WQE_CTRL_IP_CSUM = 1 << 4,
- MLX4_WQE_CTRL_TCP_UDP_CSUM = 1 << 5,
- MLX4_WQE_CTRL_INS_VLAN = 1 << 6,
- MLX4_WQE_CTRL_STRONG_ORDER = 1 << 7,
- MLX4_WQE_CTRL_FORCE_LOOPBACK = 1 << 0,
-};
-
-struct mlx4_wqe_ctrl_seg {
- __be32 owner_opcode;
- __be16 vlan_tag;
- u8 ins_vlan;
- u8 fence_size;
- /*
- * High 24 bits are SRC remote buffer; low 8 bits are flags:
- * [7] SO (strong ordering)
- * [5] TCP/UDP checksum
- * [4] IP checksum
- * [3:2] C (generate completion queue entry)
- * [1] SE (solicited event)
- * [0] FL (force loopback)
- */
- union {
- __be32 srcrb_flags;
- __be16 srcrb_flags16[2];
- };
- /*
- * imm is immediate data for send/RDMA write w/ immediate;
- * also invalidation key for send with invalidate; input
- * modifier for WQEs on CCQs.
- */
- __be32 imm;
-};
-
-enum {
- MLX4_WQE_MLX_VL15 = 1 << 17,
- MLX4_WQE_MLX_SLR = 1 << 16
-};
-
-struct mlx4_wqe_mlx_seg {
- u8 owner;
- u8 reserved1[2];
- u8 opcode;
- u8 reserved2[3];
- u8 size;
- /*
- * [17] VL15
- * [16] SLR
- * [15:12] static rate
- * [11:8] SL
- * [4] ICRC
- * [3:2] C
- * [0] FL (force loopback)
- */
- __be32 flags;
- __be16 rlid;
- u16 reserved3;
-};
-
-struct mlx4_wqe_datagram_seg {
- __be32 av[8];
- __be32 dqpn;
- __be32 qkey;
- __be16 vlan;
- u8 mac[6];
-};
-
-struct mlx4_wqe_lso_seg {
- __be32 mss_hdr_size;
- __be32 header[0];
-};
-
-struct mlx4_wqe_bind_seg {
- __be32 flags1;
- __be32 flags2;
- __be32 new_rkey;
- __be32 lkey;
- __be64 addr;
- __be64 length;
-};
-
-enum {
- MLX4_WQE_FMR_PERM_LOCAL_READ = 1 << 27,
- MLX4_WQE_FMR_PERM_LOCAL_WRITE = 1 << 28,
- MLX4_WQE_FMR_PERM_REMOTE_READ = 1 << 29,
- MLX4_WQE_FMR_PERM_REMOTE_WRITE = 1 << 30,
- MLX4_WQE_FMR_PERM_ATOMIC = 1 << 31
-};
-
-struct mlx4_wqe_fmr_seg {
- __be32 flags;
- __be32 mem_key;
- __be64 buf_list;
- __be64 start_addr;
- __be64 reg_len;
- __be32 offset;
- __be32 page_size;
- u32 reserved[2];
-};
-
-struct mlx4_wqe_fmr_ext_seg {
- u8 flags;
- u8 reserved;
- __be16 app_mask;
- __be16 wire_app_tag;
- __be16 mem_app_tag;
- __be32 wire_ref_tag_base;
- __be32 mem_ref_tag_base;
-};
-
-struct mlx4_wqe_local_inval_seg {
- __be32 flags;
- u32 reserved1;
- __be32 mem_key;
- u32 reserved2[2];
- __be32 guest_id;
- __be64 pa;
-};
-
-struct mlx4_wqe_raddr_seg {
- __be64 raddr;
- __be32 rkey;
- u32 reserved;
-};
-
-struct mlx4_wqe_atomic_seg {
- __be64 swap_add;
- __be64 compare;
-};
-
-struct mlx4_wqe_masked_atomic_seg {
- __be64 swap_add;
- __be64 compare;
- __be64 swap_add_mask;
- __be64 compare_mask;
-};
-
-struct mlx4_wqe_data_seg {
- __be32 byte_count;
- __be32 lkey;
- __be64 addr;
-};
-
-enum {
- MLX4_INLINE_ALIGN = 64,
- MLX4_INLINE_SEG = 1 << 31,
-};
-
-struct mlx4_wqe_inline_seg {
- __be32 byte_count;
-};
-
-int mlx4_qp_modify(struct mlx4_dev *dev, struct mlx4_mtt *mtt,
- enum mlx4_qp_state cur_state, enum mlx4_qp_state new_state,
- struct mlx4_qp_context *context, enum mlx4_qp_optpar optpar,
- int sqd_event, struct mlx4_qp *qp);
-
-int mlx4_qp_query(struct mlx4_dev *dev, struct mlx4_qp *qp,
- struct mlx4_qp_context *context);
-
-int mlx4_qp_to_ready(struct mlx4_dev *dev, struct mlx4_mtt *mtt,
- struct mlx4_qp_context *context,
- struct mlx4_qp *qp, enum mlx4_qp_state *qp_state);
-
-static inline struct mlx4_qp *__mlx4_qp_lookup(struct mlx4_dev *dev, u32 qpn)
-{
- return radix_tree_lookup(&dev->qp_table_tree, qpn & (dev->caps.num_qps - 1));
-}
-
-void mlx4_qp_remove(struct mlx4_dev *dev, struct mlx4_qp *qp);
-
-#endif /* MLX4_QP_H */
diff --git a/ANDROID_3.4.5/include/linux/mlx4/srq.h b/ANDROID_3.4.5/include/linux/mlx4/srq.h
deleted file mode 100644
index 799a0697..00000000
--- a/ANDROID_3.4.5/include/linux/mlx4/srq.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 2007 Cisco Systems, Inc. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#ifndef MLX4_SRQ_H
-#define MLX4_SRQ_H
-
-struct mlx4_wqe_srq_next_seg {
- u16 reserved1;
- __be16 next_wqe_index;
- u32 reserved2[3];
-};
-
-#endif /* MLX4_SRQ_H */
diff --git a/ANDROID_3.4.5/include/linux/mm.h b/ANDROID_3.4.5/include/linux/mm.h
deleted file mode 100644
index 3bf2f379..00000000
--- a/ANDROID_3.4.5/include/linux/mm.h
+++ /dev/null
@@ -1,1638 +0,0 @@
-#ifndef _LINUX_MM_H
-#define _LINUX_MM_H
-
-#include <linux/errno.h>
-
-#ifdef __KERNEL__
-
-#include <linux/gfp.h>
-#include <linux/bug.h>
-#include <linux/list.h>
-#include <linux/mmzone.h>
-#include <linux/rbtree.h>
-#include <linux/prio_tree.h>
-#include <linux/atomic.h>
-#include <linux/debug_locks.h>
-#include <linux/mm_types.h>
-#include <linux/range.h>
-#include <linux/pfn.h>
-#include <linux/bit_spinlock.h>
-#include <linux/shrinker.h>
-
-struct mempolicy;
-struct anon_vma;
-struct file_ra_state;
-struct user_struct;
-struct writeback_control;
-
-#ifndef CONFIG_DISCONTIGMEM /* Don't use mapnrs, do it properly */
-extern unsigned long max_mapnr;
-#endif
-
-extern unsigned long num_physpages;
-extern unsigned long totalram_pages;
-extern void * high_memory;
-extern int page_cluster;
-
-#ifdef CONFIG_SYSCTL
-extern int sysctl_legacy_va_layout;
-#else
-#define sysctl_legacy_va_layout 0
-#endif
-
-#include <asm/page.h>
-#include <asm/pgtable.h>
-#include <asm/processor.h>
-
-#define nth_page(page,n) pfn_to_page(page_to_pfn((page)) + (n))
-
-/* to align the pointer to the (next) page boundary */
-#define PAGE_ALIGN(addr) ALIGN(addr, PAGE_SIZE)
-
-/*
- * Linux kernel virtual memory manager primitives.
- * The idea being to have a "virtual" mm in the same way
- * we have a virtual fs - giving a cleaner interface to the
- * mm details, and allowing different kinds of memory mappings
- * (from shared memory to executable loading to arbitrary
- * mmap() functions).
- */
-
-extern struct kmem_cache *vm_area_cachep;
-
-#ifndef CONFIG_MMU
-extern struct rb_root nommu_region_tree;
-extern struct rw_semaphore nommu_region_sem;
-
-extern unsigned int kobjsize(const void *objp);
-#endif
-
-/*
- * vm_flags in vm_area_struct, see mm_types.h.
- */
-#define VM_READ 0x00000001 /* currently active flags */
-#define VM_WRITE 0x00000002
-#define VM_EXEC 0x00000004
-#define VM_SHARED 0x00000008
-
-/* mprotect() hardcodes VM_MAYREAD >> 4 == VM_READ, and so for r/w/x bits. */
-#define VM_MAYREAD 0x00000010 /* limits for mprotect() etc */
-#define VM_MAYWRITE 0x00000020
-#define VM_MAYEXEC 0x00000040
-#define VM_MAYSHARE 0x00000080
-
-#define VM_GROWSDOWN 0x00000100 /* general info on the segment */
-#if defined(CONFIG_STACK_GROWSUP) || defined(CONFIG_IA64)
-#define VM_GROWSUP 0x00000200
-#else
-#define VM_GROWSUP 0x00000000
-#define VM_NOHUGEPAGE 0x00000200 /* MADV_NOHUGEPAGE marked this vma */
-#endif
-#define VM_PFNMAP 0x00000400 /* Page-ranges managed without "struct page", just pure PFN */
-#define VM_DENYWRITE 0x00000800 /* ETXTBSY on write attempts.. */
-
-#define VM_EXECUTABLE 0x00001000
-#define VM_LOCKED 0x00002000
-#define VM_IO 0x00004000 /* Memory mapped I/O or similar */
-
- /* Used by sys_madvise() */
-#define VM_SEQ_READ 0x00008000 /* App will access data sequentially */
-#define VM_RAND_READ 0x00010000 /* App will not benefit from clustered reads */
-
-#define VM_DONTCOPY 0x00020000 /* Do not copy this vma on fork */
-#define VM_DONTEXPAND 0x00040000 /* Cannot expand with mremap() */
-#define VM_RESERVED 0x00080000 /* Count as reserved_vm like IO */
-#define VM_ACCOUNT 0x00100000 /* Is a VM accounted object */
-#define VM_NORESERVE 0x00200000 /* should the VM suppress accounting */
-#define VM_HUGETLB 0x00400000 /* Huge TLB Page VM */
-#define VM_NONLINEAR 0x00800000 /* Is non-linear (remap_file_pages) */
-#ifndef CONFIG_TRANSPARENT_HUGEPAGE
-#define VM_MAPPED_COPY 0x01000000 /* T if mapped copy of data (nommu mmap) */
-#else
-#define VM_HUGEPAGE 0x01000000 /* MADV_HUGEPAGE marked this vma */
-#endif
-#define VM_INSERTPAGE 0x02000000 /* The vma has had "vm_insert_page()" done on it */
-#define VM_NODUMP 0x04000000 /* Do not include in the core dump */
-
-#define VM_CAN_NONLINEAR 0x08000000 /* Has ->fault & does nonlinear pages */
-#define VM_MIXEDMAP 0x10000000 /* Can contain "struct page" and pure PFN pages */
-#define VM_SAO 0x20000000 /* Strong Access Ordering (powerpc) */
-#define VM_PFN_AT_MMAP 0x40000000 /* PFNMAP vma that is fully mapped at mmap time */
-#define VM_MERGEABLE 0x80000000 /* KSM may merge identical pages */
-
-/* Bits set in the VMA until the stack is in its final location */
-#define VM_STACK_INCOMPLETE_SETUP (VM_RAND_READ | VM_SEQ_READ)
-
-#ifndef VM_STACK_DEFAULT_FLAGS /* arch can override this */
-#define VM_STACK_DEFAULT_FLAGS VM_DATA_DEFAULT_FLAGS
-#endif
-
-#ifdef CONFIG_STACK_GROWSUP
-#define VM_STACK_FLAGS (VM_GROWSUP | VM_STACK_DEFAULT_FLAGS | VM_ACCOUNT)
-#else
-#define VM_STACK_FLAGS (VM_GROWSDOWN | VM_STACK_DEFAULT_FLAGS | VM_ACCOUNT)
-#endif
-
-#define VM_READHINTMASK (VM_SEQ_READ | VM_RAND_READ)
-#define VM_ClearReadHint(v) (v)->vm_flags &= ~VM_READHINTMASK
-#define VM_NormalReadHint(v) (!((v)->vm_flags & VM_READHINTMASK))
-#define VM_SequentialReadHint(v) ((v)->vm_flags & VM_SEQ_READ)
-#define VM_RandomReadHint(v) ((v)->vm_flags & VM_RAND_READ)
-
-/*
- * Special vmas that are non-mergable, non-mlock()able.
- * Note: mm/huge_memory.c VM_NO_THP depends on this definition.
- */
-#define VM_SPECIAL (VM_IO | VM_DONTEXPAND | VM_RESERVED | VM_PFNMAP)
-
-/*
- * mapping from the currently active vm_flags protection bits (the
- * low four bits) to a page protection mask..
- */
-extern pgprot_t protection_map[16];
-
-#define FAULT_FLAG_WRITE 0x01 /* Fault was a write access */
-#define FAULT_FLAG_NONLINEAR 0x02 /* Fault was via a nonlinear mapping */
-#define FAULT_FLAG_MKWRITE 0x04 /* Fault was mkwrite of existing pte */
-#define FAULT_FLAG_ALLOW_RETRY 0x08 /* Retry fault if blocking */
-#define FAULT_FLAG_RETRY_NOWAIT 0x10 /* Don't drop mmap_sem and wait when retrying */
-#define FAULT_FLAG_KILLABLE 0x20 /* The fault task is in SIGKILL killable region */
-
-/*
- * This interface is used by x86 PAT code to identify a pfn mapping that is
- * linear over entire vma. This is to optimize PAT code that deals with
- * marking the physical region with a particular prot. This is not for generic
- * mm use. Note also that this check will not work if the pfn mapping is
- * linear for a vma starting at physical address 0. In which case PAT code
- * falls back to slow path of reserving physical range page by page.
- */
-static inline int is_linear_pfn_mapping(struct vm_area_struct *vma)
-{
- return !!(vma->vm_flags & VM_PFN_AT_MMAP);
-}
-
-static inline int is_pfn_mapping(struct vm_area_struct *vma)
-{
- return !!(vma->vm_flags & VM_PFNMAP);
-}
-
-/*
- * vm_fault is filled by the the pagefault handler and passed to the vma's
- * ->fault function. The vma's ->fault is responsible for returning a bitmask
- * of VM_FAULT_xxx flags that give details about how the fault was handled.
- *
- * pgoff should be used in favour of virtual_address, if possible. If pgoff
- * is used, one may set VM_CAN_NONLINEAR in the vma->vm_flags to get nonlinear
- * mapping support.
- */
-struct vm_fault {
- unsigned int flags; /* FAULT_FLAG_xxx flags */
- pgoff_t pgoff; /* Logical page offset based on vma */
- void __user *virtual_address; /* Faulting virtual address */
-
- struct page *page; /* ->fault handlers should return a
- * page here, unless VM_FAULT_NOPAGE
- * is set (which is also implied by
- * VM_FAULT_ERROR).
- */
-};
-
-/*
- * These are the virtual MM functions - opening of an area, closing and
- * unmapping it (needed to keep files on disk up-to-date etc), pointer
- * to the functions called when a no-page or a wp-page exception occurs.
- */
-struct vm_operations_struct {
- void (*open)(struct vm_area_struct * area);
- void (*close)(struct vm_area_struct * area);
- int (*fault)(struct vm_area_struct *vma, struct vm_fault *vmf);
-
- /* notification that a previously read-only page is about to become
- * writable, if an error is returned it will cause a SIGBUS */
- int (*page_mkwrite)(struct vm_area_struct *vma, struct vm_fault *vmf);
-
- /* called by access_process_vm when get_user_pages() fails, typically
- * for use by special VMAs that can switch between memory and hardware
- */
- int (*access)(struct vm_area_struct *vma, unsigned long addr,
- void *buf, int len, int write);
-#ifdef CONFIG_NUMA
- /*
- * set_policy() op must add a reference to any non-NULL @new mempolicy
- * to hold the policy upon return. Caller should pass NULL @new to
- * remove a policy and fall back to surrounding context--i.e. do not
- * install a MPOL_DEFAULT policy, nor the task or system default
- * mempolicy.
- */
- int (*set_policy)(struct vm_area_struct *vma, struct mempolicy *new);
-
- /*
- * get_policy() op must add reference [mpol_get()] to any policy at
- * (vma,addr) marked as MPOL_SHARED. The shared policy infrastructure
- * in mm/mempolicy.c will do this automatically.
- * get_policy() must NOT add a ref if the policy at (vma,addr) is not
- * marked as MPOL_SHARED. vma policies are protected by the mmap_sem.
- * If no [shared/vma] mempolicy exists at the addr, get_policy() op
- * must return NULL--i.e., do not "fallback" to task or system default
- * policy.
- */
- struct mempolicy *(*get_policy)(struct vm_area_struct *vma,
- unsigned long addr);
- int (*migrate)(struct vm_area_struct *vma, const nodemask_t *from,
- const nodemask_t *to, unsigned long flags);
-#endif
-};
-
-struct mmu_gather;
-struct inode;
-
-#define page_private(page) ((page)->private)
-#define set_page_private(page, v) ((page)->private = (v))
-
-/*
- * FIXME: take this include out, include page-flags.h in
- * files which need it (119 of them)
- */
-#include <linux/page-flags.h>
-#include <linux/huge_mm.h>
-
-/*
- * Methods to modify the page usage count.
- *
- * What counts for a page usage:
- * - cache mapping (page->mapping)
- * - private data (page->private)
- * - page mapped in a task's page tables, each mapping
- * is counted separately
- *
- * Also, many kernel routines increase the page count before a critical
- * routine so they can be sure the page doesn't go away from under them.
- */
-
-/*
- * Drop a ref, return true if the refcount fell to zero (the page has no users)
- */
-static inline int put_page_testzero(struct page *page)
-{
- VM_BUG_ON(atomic_read(&page->_count) == 0);
- return atomic_dec_and_test(&page->_count);
-}
-
-/*
- * Try to grab a ref unless the page has a refcount of zero, return false if
- * that is the case.
- */
-static inline int get_page_unless_zero(struct page *page)
-{
- return atomic_inc_not_zero(&page->_count);
-}
-
-extern int page_is_ram(unsigned long pfn);
-
-/* Support for virtually mapped pages */
-struct page *vmalloc_to_page(const void *addr);
-unsigned long vmalloc_to_pfn(const void *addr);
-
-/*
- * Determine if an address is within the vmalloc range
- *
- * On nommu, vmalloc/vfree wrap through kmalloc/kfree directly, so there
- * is no special casing required.
- */
-static inline int is_vmalloc_addr(const void *x)
-{
-#ifdef CONFIG_MMU
- unsigned long addr = (unsigned long)x;
-
- return addr >= VMALLOC_START && addr < VMALLOC_END;
-#else
- return 0;
-#endif
-}
-#ifdef CONFIG_MMU
-extern int is_vmalloc_or_module_addr(const void *x);
-#else
-static inline int is_vmalloc_or_module_addr(const void *x)
-{
- return 0;
-}
-#endif
-
-static inline void compound_lock(struct page *page)
-{
-#ifdef CONFIG_TRANSPARENT_HUGEPAGE
- bit_spin_lock(PG_compound_lock, &page->flags);
-#endif
-}
-
-static inline void compound_unlock(struct page *page)
-{
-#ifdef CONFIG_TRANSPARENT_HUGEPAGE
- bit_spin_unlock(PG_compound_lock, &page->flags);
-#endif
-}
-
-static inline unsigned long compound_lock_irqsave(struct page *page)
-{
- unsigned long uninitialized_var(flags);
-#ifdef CONFIG_TRANSPARENT_HUGEPAGE
- local_irq_save(flags);
- compound_lock(page);
-#endif
- return flags;
-}
-
-static inline void compound_unlock_irqrestore(struct page *page,
- unsigned long flags)
-{
-#ifdef CONFIG_TRANSPARENT_HUGEPAGE
- compound_unlock(page);
- local_irq_restore(flags);
-#endif
-}
-
-static inline struct page *compound_head(struct page *page)
-{
- if (unlikely(PageTail(page)))
- return page->first_page;
- return page;
-}
-
-/*
- * The atomic page->_mapcount, starts from -1: so that transitions
- * both from it and to it can be tracked, using atomic_inc_and_test
- * and atomic_add_negative(-1).
- */
-static inline void reset_page_mapcount(struct page *page)
-{
- atomic_set(&(page)->_mapcount, -1);
-}
-
-static inline int page_mapcount(struct page *page)
-{
- return atomic_read(&(page)->_mapcount) + 1;
-}
-
-static inline int page_count(struct page *page)
-{
- return atomic_read(&compound_head(page)->_count);
-}
-
-static inline void get_huge_page_tail(struct page *page)
-{
- /*
- * __split_huge_page_refcount() cannot run
- * from under us.
- */
- VM_BUG_ON(page_mapcount(page) < 0);
- VM_BUG_ON(atomic_read(&page->_count) != 0);
- atomic_inc(&page->_mapcount);
-}
-
-extern bool __get_page_tail(struct page *page);
-
-static inline void get_page(struct page *page)
-{
- if (unlikely(PageTail(page)))
- if (likely(__get_page_tail(page)))
- return;
- /*
- * Getting a normal page or the head of a compound page
- * requires to already have an elevated page->_count.
- */
- VM_BUG_ON(atomic_read(&page->_count) <= 0);
- atomic_inc(&page->_count);
-}
-
-static inline struct page *virt_to_head_page(const void *x)
-{
- struct page *page = virt_to_page(x);
- return compound_head(page);
-}
-
-/*
- * Setup the page count before being freed into the page allocator for
- * the first time (boot or memory hotplug)
- */
-static inline void init_page_count(struct page *page)
-{
- atomic_set(&page->_count, 1);
-}
-
-/*
- * PageBuddy() indicate that the page is free and in the buddy system
- * (see mm/page_alloc.c).
- *
- * PAGE_BUDDY_MAPCOUNT_VALUE must be <= -2 but better not too close to
- * -2 so that an underflow of the page_mapcount() won't be mistaken
- * for a genuine PAGE_BUDDY_MAPCOUNT_VALUE. -128 can be created very
- * efficiently by most CPU architectures.
- */
-#define PAGE_BUDDY_MAPCOUNT_VALUE (-128)
-
-static inline int PageBuddy(struct page *page)
-{
- return atomic_read(&page->_mapcount) == PAGE_BUDDY_MAPCOUNT_VALUE;
-}
-
-static inline void __SetPageBuddy(struct page *page)
-{
- VM_BUG_ON(atomic_read(&page->_mapcount) != -1);
- atomic_set(&page->_mapcount, PAGE_BUDDY_MAPCOUNT_VALUE);
-}
-
-static inline void __ClearPageBuddy(struct page *page)
-{
- VM_BUG_ON(!PageBuddy(page));
- atomic_set(&page->_mapcount, -1);
-}
-
-void put_page(struct page *page);
-void put_pages_list(struct list_head *pages);
-
-void split_page(struct page *page, unsigned int order);
-int split_free_page(struct page *page);
-
-/*
- * Compound pages have a destructor function. Provide a
- * prototype for that function and accessor functions.
- * These are _only_ valid on the head of a PG_compound page.
- */
-typedef void compound_page_dtor(struct page *);
-
-static inline void set_compound_page_dtor(struct page *page,
- compound_page_dtor *dtor)
-{
- page[1].lru.next = (void *)dtor;
-}
-
-static inline compound_page_dtor *get_compound_page_dtor(struct page *page)
-{
- return (compound_page_dtor *)page[1].lru.next;
-}
-
-static inline int compound_order(struct page *page)
-{
- if (!PageHead(page))
- return 0;
- return (unsigned long)page[1].lru.prev;
-}
-
-static inline int compound_trans_order(struct page *page)
-{
- int order;
- unsigned long flags;
-
- if (!PageHead(page))
- return 0;
-
- flags = compound_lock_irqsave(page);
- order = compound_order(page);
- compound_unlock_irqrestore(page, flags);
- return order;
-}
-
-static inline void set_compound_order(struct page *page, unsigned long order)
-{
- page[1].lru.prev = (void *)order;
-}
-
-#ifdef CONFIG_MMU
-/*
- * Do pte_mkwrite, but only if the vma says VM_WRITE. We do this when
- * servicing faults for write access. In the normal case, do always want
- * pte_mkwrite. But get_user_pages can cause write faults for mappings
- * that do not have writing enabled, when used by access_process_vm.
- */
-static inline pte_t maybe_mkwrite(pte_t pte, struct vm_area_struct *vma)
-{
- if (likely(vma->vm_flags & VM_WRITE))
- pte = pte_mkwrite(pte);
- return pte;
-}
-#endif
-
-/*
- * Multiple processes may "see" the same page. E.g. for untouched
- * mappings of /dev/null, all processes see the same page full of
- * zeroes, and text pages of executables and shared libraries have
- * only one copy in memory, at most, normally.
- *
- * For the non-reserved pages, page_count(page) denotes a reference count.
- * page_count() == 0 means the page is free. page->lru is then used for
- * freelist management in the buddy allocator.
- * page_count() > 0 means the page has been allocated.
- *
- * Pages are allocated by the slab allocator in order to provide memory
- * to kmalloc and kmem_cache_alloc. In this case, the management of the
- * page, and the fields in 'struct page' are the responsibility of mm/slab.c
- * unless a particular usage is carefully commented. (the responsibility of
- * freeing the kmalloc memory is the caller's, of course).
- *
- * A page may be used by anyone else who does a __get_free_page().
- * In this case, page_count still tracks the references, and should only
- * be used through the normal accessor functions. The top bits of page->flags
- * and page->virtual store page management information, but all other fields
- * are unused and could be used privately, carefully. The management of this
- * page is the responsibility of the one who allocated it, and those who have
- * subsequently been given references to it.
- *
- * The other pages (we may call them "pagecache pages") are completely
- * managed by the Linux memory manager: I/O, buffers, swapping etc.
- * The following discussion applies only to them.
- *
- * A pagecache page contains an opaque `private' member, which belongs to the
- * page's address_space. Usually, this is the address of a circular list of
- * the page's disk buffers. PG_private must be set to tell the VM to call
- * into the filesystem to release these pages.
- *
- * A page may belong to an inode's memory mapping. In this case, page->mapping
- * is the pointer to the inode, and page->index is the file offset of the page,
- * in units of PAGE_CACHE_SIZE.
- *
- * If pagecache pages are not associated with an inode, they are said to be
- * anonymous pages. These may become associated with the swapcache, and in that
- * case PG_swapcache is set, and page->private is an offset into the swapcache.
- *
- * In either case (swapcache or inode backed), the pagecache itself holds one
- * reference to the page. Setting PG_private should also increment the
- * refcount. The each user mapping also has a reference to the page.
- *
- * The pagecache pages are stored in a per-mapping radix tree, which is
- * rooted at mapping->page_tree, and indexed by offset.
- * Where 2.4 and early 2.6 kernels kept dirty/clean pages in per-address_space
- * lists, we instead now tag pages as dirty/writeback in the radix tree.
- *
- * All pagecache pages may be subject to I/O:
- * - inode pages may need to be read from disk,
- * - inode pages which have been modified and are MAP_SHARED may need
- * to be written back to the inode on disk,
- * - anonymous pages (including MAP_PRIVATE file mappings) which have been
- * modified may need to be swapped out to swap space and (later) to be read
- * back into memory.
- */
-
-/*
- * The zone field is never updated after free_area_init_core()
- * sets it, so none of the operations on it need to be atomic.
- */
-
-
-/*
- * page->flags layout:
- *
- * There are three possibilities for how page->flags get
- * laid out. The first is for the normal case, without
- * sparsemem. The second is for sparsemem when there is
- * plenty of space for node and section. The last is when
- * we have run out of space and have to fall back to an
- * alternate (slower) way of determining the node.
- *
- * No sparsemem or sparsemem vmemmap: | NODE | ZONE | ... | FLAGS |
- * classic sparse with space for node:| SECTION | NODE | ZONE | ... | FLAGS |
- * classic sparse no space for node: | SECTION | ZONE | ... | FLAGS |
- */
-#if defined(CONFIG_SPARSEMEM) && !defined(CONFIG_SPARSEMEM_VMEMMAP)
-#define SECTIONS_WIDTH SECTIONS_SHIFT
-#else
-#define SECTIONS_WIDTH 0
-#endif
-
-#define ZONES_WIDTH ZONES_SHIFT
-
-#if SECTIONS_WIDTH+ZONES_WIDTH+NODES_SHIFT <= BITS_PER_LONG - NR_PAGEFLAGS
-#define NODES_WIDTH NODES_SHIFT
-#else
-#ifdef CONFIG_SPARSEMEM_VMEMMAP
-#error "Vmemmap: No space for nodes field in page flags"
-#endif
-#define NODES_WIDTH 0
-#endif
-
-/* Page flags: | [SECTION] | [NODE] | ZONE | ... | FLAGS | */
-#define SECTIONS_PGOFF ((sizeof(unsigned long)*8) - SECTIONS_WIDTH)
-#define NODES_PGOFF (SECTIONS_PGOFF - NODES_WIDTH)
-#define ZONES_PGOFF (NODES_PGOFF - ZONES_WIDTH)
-
-/*
- * We are going to use the flags for the page to node mapping if its in
- * there. This includes the case where there is no node, so it is implicit.
- */
-#if !(NODES_WIDTH > 0 || NODES_SHIFT == 0)
-#define NODE_NOT_IN_PAGE_FLAGS
-#endif
-
-/*
- * Define the bit shifts to access each section. For non-existent
- * sections we define the shift as 0; that plus a 0 mask ensures
- * the compiler will optimise away reference to them.
- */
-#define SECTIONS_PGSHIFT (SECTIONS_PGOFF * (SECTIONS_WIDTH != 0))
-#define NODES_PGSHIFT (NODES_PGOFF * (NODES_WIDTH != 0))
-#define ZONES_PGSHIFT (ZONES_PGOFF * (ZONES_WIDTH != 0))
-
-/* NODE:ZONE or SECTION:ZONE is used to ID a zone for the buddy allocator */
-#ifdef NODE_NOT_IN_PAGE_FLAGS
-#define ZONEID_SHIFT (SECTIONS_SHIFT + ZONES_SHIFT)
-#define ZONEID_PGOFF ((SECTIONS_PGOFF < ZONES_PGOFF)? \
- SECTIONS_PGOFF : ZONES_PGOFF)
-#else
-#define ZONEID_SHIFT (NODES_SHIFT + ZONES_SHIFT)
-#define ZONEID_PGOFF ((NODES_PGOFF < ZONES_PGOFF)? \
- NODES_PGOFF : ZONES_PGOFF)
-#endif
-
-#define ZONEID_PGSHIFT (ZONEID_PGOFF * (ZONEID_SHIFT != 0))
-
-#if SECTIONS_WIDTH+NODES_WIDTH+ZONES_WIDTH > BITS_PER_LONG - NR_PAGEFLAGS
-#error SECTIONS_WIDTH+NODES_WIDTH+ZONES_WIDTH > BITS_PER_LONG - NR_PAGEFLAGS
-#endif
-
-#define ZONES_MASK ((1UL << ZONES_WIDTH) - 1)
-#define NODES_MASK ((1UL << NODES_WIDTH) - 1)
-#define SECTIONS_MASK ((1UL << SECTIONS_WIDTH) - 1)
-#define ZONEID_MASK ((1UL << ZONEID_SHIFT) - 1)
-
-static inline enum zone_type page_zonenum(const struct page *page)
-{
- return (page->flags >> ZONES_PGSHIFT) & ZONES_MASK;
-}
-
-/*
- * The identification function is only used by the buddy allocator for
- * determining if two pages could be buddies. We are not really
- * identifying a zone since we could be using a the section number
- * id if we have not node id available in page flags.
- * We guarantee only that it will return the same value for two
- * combinable pages in a zone.
- */
-static inline int page_zone_id(struct page *page)
-{
- return (page->flags >> ZONEID_PGSHIFT) & ZONEID_MASK;
-}
-
-static inline int zone_to_nid(struct zone *zone)
-{
-#ifdef CONFIG_NUMA
- return zone->node;
-#else
- return 0;
-#endif
-}
-
-#ifdef NODE_NOT_IN_PAGE_FLAGS
-extern int page_to_nid(const struct page *page);
-#else
-static inline int page_to_nid(const struct page *page)
-{
- return (page->flags >> NODES_PGSHIFT) & NODES_MASK;
-}
-#endif
-
-static inline struct zone *page_zone(const struct page *page)
-{
- return &NODE_DATA(page_to_nid(page))->node_zones[page_zonenum(page)];
-}
-
-#if defined(CONFIG_SPARSEMEM) && !defined(CONFIG_SPARSEMEM_VMEMMAP)
-static inline void set_page_section(struct page *page, unsigned long section)
-{
- page->flags &= ~(SECTIONS_MASK << SECTIONS_PGSHIFT);
- page->flags |= (section & SECTIONS_MASK) << SECTIONS_PGSHIFT;
-}
-
-static inline unsigned long page_to_section(const struct page *page)
-{
- return (page->flags >> SECTIONS_PGSHIFT) & SECTIONS_MASK;
-}
-#endif
-
-static inline void set_page_zone(struct page *page, enum zone_type zone)
-{
- page->flags &= ~(ZONES_MASK << ZONES_PGSHIFT);
- page->flags |= (zone & ZONES_MASK) << ZONES_PGSHIFT;
-}
-
-static inline void set_page_node(struct page *page, unsigned long node)
-{
- page->flags &= ~(NODES_MASK << NODES_PGSHIFT);
- page->flags |= (node & NODES_MASK) << NODES_PGSHIFT;
-}
-
-static inline void set_page_links(struct page *page, enum zone_type zone,
- unsigned long node, unsigned long pfn)
-{
- set_page_zone(page, zone);
- set_page_node(page, node);
-#if defined(CONFIG_SPARSEMEM) && !defined(CONFIG_SPARSEMEM_VMEMMAP)
- set_page_section(page, pfn_to_section_nr(pfn));
-#endif
-}
-
-/*
- * Some inline functions in vmstat.h depend on page_zone()
- */
-#include <linux/vmstat.h>
-
-static __always_inline void *lowmem_page_address(const struct page *page)
-{
- return __va(PFN_PHYS(page_to_pfn(page)));
-}
-
-#if defined(CONFIG_HIGHMEM) && !defined(WANT_PAGE_VIRTUAL)
-#define HASHED_PAGE_VIRTUAL
-#endif
-
-#if defined(WANT_PAGE_VIRTUAL)
-#define page_address(page) ((page)->virtual)
-#define set_page_address(page, address) \
- do { \
- (page)->virtual = (address); \
- } while(0)
-#define page_address_init() do { } while(0)
-#endif
-
-#if defined(HASHED_PAGE_VIRTUAL)
-void *page_address(const struct page *page);
-void set_page_address(struct page *page, void *virtual);
-void page_address_init(void);
-#endif
-
-#if !defined(HASHED_PAGE_VIRTUAL) && !defined(WANT_PAGE_VIRTUAL)
-#define page_address(page) lowmem_page_address(page)
-#define set_page_address(page, address) do { } while(0)
-#define page_address_init() do { } while(0)
-#endif
-
-/*
- * On an anonymous page mapped into a user virtual memory area,
- * page->mapping points to its anon_vma, not to a struct address_space;
- * with the PAGE_MAPPING_ANON bit set to distinguish it. See rmap.h.
- *
- * On an anonymous page in a VM_MERGEABLE area, if CONFIG_KSM is enabled,
- * the PAGE_MAPPING_KSM bit may be set along with the PAGE_MAPPING_ANON bit;
- * and then page->mapping points, not to an anon_vma, but to a private
- * structure which KSM associates with that merged page. See ksm.h.
- *
- * PAGE_MAPPING_KSM without PAGE_MAPPING_ANON is currently never used.
- *
- * Please note that, confusingly, "page_mapping" refers to the inode
- * address_space which maps the page from disk; whereas "page_mapped"
- * refers to user virtual address space into which the page is mapped.
- */
-#define PAGE_MAPPING_ANON 1
-#define PAGE_MAPPING_KSM 2
-#define PAGE_MAPPING_FLAGS (PAGE_MAPPING_ANON | PAGE_MAPPING_KSM)
-
-extern struct address_space swapper_space;
-static inline struct address_space *page_mapping(struct page *page)
-{
- struct address_space *mapping = page->mapping;
-
- VM_BUG_ON(PageSlab(page));
- if (unlikely(PageSwapCache(page)))
- mapping = &swapper_space;
- else if ((unsigned long)mapping & PAGE_MAPPING_ANON)
- mapping = NULL;
- return mapping;
-}
-
-/* Neutral page->mapping pointer to address_space or anon_vma or other */
-static inline void *page_rmapping(struct page *page)
-{
- return (void *)((unsigned long)page->mapping & ~PAGE_MAPPING_FLAGS);
-}
-
-static inline int PageAnon(struct page *page)
-{
- return ((unsigned long)page->mapping & PAGE_MAPPING_ANON) != 0;
-}
-
-/*
- * Return the pagecache index of the passed page. Regular pagecache pages
- * use ->index whereas swapcache pages use ->private
- */
-static inline pgoff_t page_index(struct page *page)
-{
- if (unlikely(PageSwapCache(page)))
- return page_private(page);
- return page->index;
-}
-
-/*
- * Return true if this page is mapped into pagetables.
- */
-static inline int page_mapped(struct page *page)
-{
- return atomic_read(&(page)->_mapcount) >= 0;
-}
-
-/*
- * Different kinds of faults, as returned by handle_mm_fault().
- * Used to decide whether a process gets delivered SIGBUS or
- * just gets major/minor fault counters bumped up.
- */
-
-#define VM_FAULT_MINOR 0 /* For backwards compat. Remove me quickly. */
-
-#define VM_FAULT_OOM 0x0001
-#define VM_FAULT_SIGBUS 0x0002
-#define VM_FAULT_MAJOR 0x0004
-#define VM_FAULT_WRITE 0x0008 /* Special case for get_user_pages */
-#define VM_FAULT_HWPOISON 0x0010 /* Hit poisoned small page */
-#define VM_FAULT_HWPOISON_LARGE 0x0020 /* Hit poisoned large page. Index encoded in upper bits */
-
-#define VM_FAULT_NOPAGE 0x0100 /* ->fault installed the pte, not return page */
-#define VM_FAULT_LOCKED 0x0200 /* ->fault locked the returned page */
-#define VM_FAULT_RETRY 0x0400 /* ->fault blocked, must retry */
-
-#define VM_FAULT_HWPOISON_LARGE_MASK 0xf000 /* encodes hpage index for large hwpoison */
-
-#define VM_FAULT_ERROR (VM_FAULT_OOM | VM_FAULT_SIGBUS | VM_FAULT_HWPOISON | \
- VM_FAULT_HWPOISON_LARGE)
-
-/* Encode hstate index for a hwpoisoned large page */
-#define VM_FAULT_SET_HINDEX(x) ((x) << 12)
-#define VM_FAULT_GET_HINDEX(x) (((x) >> 12) & 0xf)
-
-/*
- * Can be called by the pagefault handler when it gets a VM_FAULT_OOM.
- */
-extern void pagefault_out_of_memory(void);
-
-#define offset_in_page(p) ((unsigned long)(p) & ~PAGE_MASK)
-
-/*
- * Flags passed to show_mem() and show_free_areas() to suppress output in
- * various contexts.
- */
-#define SHOW_MEM_FILTER_NODES (0x0001u) /* filter disallowed nodes */
-
-extern void show_free_areas(unsigned int flags);
-extern bool skip_free_areas_node(unsigned int flags, int nid);
-
-int shmem_lock(struct file *file, int lock, struct user_struct *user);
-struct file *shmem_file_setup(const char *name, loff_t size, unsigned long flags);
-void shmem_set_file(struct vm_area_struct *vma, struct file *file);
-int shmem_zero_setup(struct vm_area_struct *);
-
-extern int can_do_mlock(void);
-extern int user_shm_lock(size_t, struct user_struct *);
-extern void user_shm_unlock(size_t, struct user_struct *);
-
-/*
- * Parameter block passed down to zap_pte_range in exceptional cases.
- */
-struct zap_details {
- struct vm_area_struct *nonlinear_vma; /* Check page->index if set */
- struct address_space *check_mapping; /* Check page->mapping if set */
- pgoff_t first_index; /* Lowest page->index to unmap */
- pgoff_t last_index; /* Highest page->index to unmap */
-};
-
-struct page *vm_normal_page(struct vm_area_struct *vma, unsigned long addr,
- pte_t pte);
-
-int zap_vma_ptes(struct vm_area_struct *vma, unsigned long address,
- unsigned long size);
-void zap_page_range(struct vm_area_struct *vma, unsigned long address,
- unsigned long size, struct zap_details *);
-void unmap_vmas(struct mmu_gather *tlb,
- struct vm_area_struct *start_vma, unsigned long start_addr,
- unsigned long end_addr, unsigned long *nr_accounted,
- struct zap_details *);
-
-/**
- * mm_walk - callbacks for walk_page_range
- * @pgd_entry: if set, called for each non-empty PGD (top-level) entry
- * @pud_entry: if set, called for each non-empty PUD (2nd-level) entry
- * @pmd_entry: if set, called for each non-empty PMD (3rd-level) entry
- * this handler is required to be able to handle
- * pmd_trans_huge() pmds. They may simply choose to
- * split_huge_page() instead of handling it explicitly.
- * @pte_entry: if set, called for each non-empty PTE (4th-level) entry
- * @pte_hole: if set, called for each hole at all levels
- * @hugetlb_entry: if set, called for each hugetlb entry
- * *Caution*: The caller must hold mmap_sem() if @hugetlb_entry
- * is used.
- *
- * (see walk_page_range for more details)
- */
-struct mm_walk {
- int (*pgd_entry)(pgd_t *, unsigned long, unsigned long, struct mm_walk *);
- int (*pud_entry)(pud_t *, unsigned long, unsigned long, struct mm_walk *);
- int (*pmd_entry)(pmd_t *, unsigned long, unsigned long, struct mm_walk *);
- int (*pte_entry)(pte_t *, unsigned long, unsigned long, struct mm_walk *);
- int (*pte_hole)(unsigned long, unsigned long, struct mm_walk *);
- int (*hugetlb_entry)(pte_t *, unsigned long,
- unsigned long, unsigned long, struct mm_walk *);
- struct mm_struct *mm;
- void *private;
-};
-
-int walk_page_range(unsigned long addr, unsigned long end,
- struct mm_walk *walk);
-void free_pgd_range(struct mmu_gather *tlb, unsigned long addr,
- unsigned long end, unsigned long floor, unsigned long ceiling);
-int copy_page_range(struct mm_struct *dst, struct mm_struct *src,
- struct vm_area_struct *vma);
-void unmap_mapping_range(struct address_space *mapping,
- loff_t const holebegin, loff_t const holelen, int even_cows);
-int follow_pfn(struct vm_area_struct *vma, unsigned long address,
- unsigned long *pfn);
-int follow_phys(struct vm_area_struct *vma, unsigned long address,
- unsigned int flags, unsigned long *prot, resource_size_t *phys);
-int generic_access_phys(struct vm_area_struct *vma, unsigned long addr,
- void *buf, int len, int write);
-
-static inline void unmap_shared_mapping_range(struct address_space *mapping,
- loff_t const holebegin, loff_t const holelen)
-{
- unmap_mapping_range(mapping, holebegin, holelen, 0);
-}
-
-extern void truncate_pagecache(struct inode *inode, loff_t old, loff_t new);
-extern void truncate_setsize(struct inode *inode, loff_t newsize);
-extern int vmtruncate(struct inode *inode, loff_t offset);
-extern int vmtruncate_range(struct inode *inode, loff_t offset, loff_t end);
-void truncate_pagecache_range(struct inode *inode, loff_t offset, loff_t end);
-int truncate_inode_page(struct address_space *mapping, struct page *page);
-int generic_error_remove_page(struct address_space *mapping, struct page *page);
-
-int invalidate_inode_page(struct page *page);
-
-#ifdef CONFIG_MMU
-extern int handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma,
- unsigned long address, unsigned int flags);
-extern int fixup_user_fault(struct task_struct *tsk, struct mm_struct *mm,
- unsigned long address, unsigned int fault_flags);
-#else
-static inline int handle_mm_fault(struct mm_struct *mm,
- struct vm_area_struct *vma, unsigned long address,
- unsigned int flags)
-{
- /* should never happen if there's no MMU */
- BUG();
- return VM_FAULT_SIGBUS;
-}
-static inline int fixup_user_fault(struct task_struct *tsk,
- struct mm_struct *mm, unsigned long address,
- unsigned int fault_flags)
-{
- /* should never happen if there's no MMU */
- BUG();
- return -EFAULT;
-}
-#endif
-
-extern int make_pages_present(unsigned long addr, unsigned long end);
-extern int access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, int len, int write);
-extern int access_remote_vm(struct mm_struct *mm, unsigned long addr,
- void *buf, int len, int write);
-
-int __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
- unsigned long start, int len, unsigned int foll_flags,
- struct page **pages, struct vm_area_struct **vmas,
- int *nonblocking);
-int get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
- unsigned long start, int nr_pages, int write, int force,
- struct page **pages, struct vm_area_struct **vmas);
-int get_user_pages_fast(unsigned long start, int nr_pages, int write,
- struct page **pages);
-struct page *get_dump_page(unsigned long addr);
-
-extern int try_to_release_page(struct page * page, gfp_t gfp_mask);
-extern void do_invalidatepage(struct page *page, unsigned long offset);
-
-int __set_page_dirty_nobuffers(struct page *page);
-int __set_page_dirty_no_writeback(struct page *page);
-int redirty_page_for_writepage(struct writeback_control *wbc,
- struct page *page);
-void account_page_dirtied(struct page *page, struct address_space *mapping);
-void account_page_writeback(struct page *page);
-int set_page_dirty(struct page *page);
-int set_page_dirty_lock(struct page *page);
-int clear_page_dirty_for_io(struct page *page);
-
-/* Is the vma a continuation of the stack vma above it? */
-static inline int vma_growsdown(struct vm_area_struct *vma, unsigned long addr)
-{
- return vma && (vma->vm_end == addr) && (vma->vm_flags & VM_GROWSDOWN);
-}
-
-static inline int stack_guard_page_start(struct vm_area_struct *vma,
- unsigned long addr)
-{
- return (vma->vm_flags & VM_GROWSDOWN) &&
- (vma->vm_start == addr) &&
- !vma_growsdown(vma->vm_prev, addr);
-}
-
-/* Is the vma a continuation of the stack vma below it? */
-static inline int vma_growsup(struct vm_area_struct *vma, unsigned long addr)
-{
- return vma && (vma->vm_start == addr) && (vma->vm_flags & VM_GROWSUP);
-}
-
-static inline int stack_guard_page_end(struct vm_area_struct *vma,
- unsigned long addr)
-{
- return (vma->vm_flags & VM_GROWSUP) &&
- (vma->vm_end == addr) &&
- !vma_growsup(vma->vm_next, addr);
-}
-
-extern pid_t
-vm_is_stack(struct task_struct *task, struct vm_area_struct *vma, int in_group);
-
-extern unsigned long move_page_tables(struct vm_area_struct *vma,
- unsigned long old_addr, struct vm_area_struct *new_vma,
- unsigned long new_addr, unsigned long len);
-extern unsigned long do_mremap(unsigned long addr,
- unsigned long old_len, unsigned long new_len,
- unsigned long flags, unsigned long new_addr);
-extern int mprotect_fixup(struct vm_area_struct *vma,
- struct vm_area_struct **pprev, unsigned long start,
- unsigned long end, unsigned long newflags);
-
-/*
- * doesn't attempt to fault and will return short.
- */
-int __get_user_pages_fast(unsigned long start, int nr_pages, int write,
- struct page **pages);
-/*
- * per-process(per-mm_struct) statistics.
- */
-static inline unsigned long get_mm_counter(struct mm_struct *mm, int member)
-{
- long val = atomic_long_read(&mm->rss_stat.count[member]);
-
-#ifdef SPLIT_RSS_COUNTING
- /*
- * counter is updated in asynchronous manner and may go to minus.
- * But it's never be expected number for users.
- */
- if (val < 0)
- val = 0;
-#endif
- return (unsigned long)val;
-}
-
-static inline void add_mm_counter(struct mm_struct *mm, int member, long value)
-{
- atomic_long_add(value, &mm->rss_stat.count[member]);
-}
-
-static inline void inc_mm_counter(struct mm_struct *mm, int member)
-{
- atomic_long_inc(&mm->rss_stat.count[member]);
-}
-
-static inline void dec_mm_counter(struct mm_struct *mm, int member)
-{
- atomic_long_dec(&mm->rss_stat.count[member]);
-}
-
-static inline unsigned long get_mm_rss(struct mm_struct *mm)
-{
- return get_mm_counter(mm, MM_FILEPAGES) +
- get_mm_counter(mm, MM_ANONPAGES);
-}
-
-static inline unsigned long get_mm_hiwater_rss(struct mm_struct *mm)
-{
- return max(mm->hiwater_rss, get_mm_rss(mm));
-}
-
-static inline unsigned long get_mm_hiwater_vm(struct mm_struct *mm)
-{
- return max(mm->hiwater_vm, mm->total_vm);
-}
-
-static inline void update_hiwater_rss(struct mm_struct *mm)
-{
- unsigned long _rss = get_mm_rss(mm);
-
- if ((mm)->hiwater_rss < _rss)
- (mm)->hiwater_rss = _rss;
-}
-
-static inline void update_hiwater_vm(struct mm_struct *mm)
-{
- if (mm->hiwater_vm < mm->total_vm)
- mm->hiwater_vm = mm->total_vm;
-}
-
-static inline void setmax_mm_hiwater_rss(unsigned long *maxrss,
- struct mm_struct *mm)
-{
- unsigned long hiwater_rss = get_mm_hiwater_rss(mm);
-
- if (*maxrss < hiwater_rss)
- *maxrss = hiwater_rss;
-}
-
-#if defined(SPLIT_RSS_COUNTING)
-void sync_mm_rss(struct mm_struct *mm);
-#else
-static inline void sync_mm_rss(struct mm_struct *mm)
-{
-}
-#endif
-
-int vma_wants_writenotify(struct vm_area_struct *vma);
-
-extern pte_t *__get_locked_pte(struct mm_struct *mm, unsigned long addr,
- spinlock_t **ptl);
-static inline pte_t *get_locked_pte(struct mm_struct *mm, unsigned long addr,
- spinlock_t **ptl)
-{
- pte_t *ptep;
- __cond_lock(*ptl, ptep = __get_locked_pte(mm, addr, ptl));
- return ptep;
-}
-
-#ifdef __PAGETABLE_PUD_FOLDED
-static inline int __pud_alloc(struct mm_struct *mm, pgd_t *pgd,
- unsigned long address)
-{
- return 0;
-}
-#else
-int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address);
-#endif
-
-#ifdef __PAGETABLE_PMD_FOLDED
-static inline int __pmd_alloc(struct mm_struct *mm, pud_t *pud,
- unsigned long address)
-{
- return 0;
-}
-#else
-int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address);
-#endif
-
-int __pte_alloc(struct mm_struct *mm, struct vm_area_struct *vma,
- pmd_t *pmd, unsigned long address);
-int __pte_alloc_kernel(pmd_t *pmd, unsigned long address);
-
-/*
- * The following ifdef needed to get the 4level-fixup.h header to work.
- * Remove it when 4level-fixup.h has been removed.
- */
-#if defined(CONFIG_MMU) && !defined(__ARCH_HAS_4LEVEL_HACK)
-static inline pud_t *pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address)
-{
- return (unlikely(pgd_none(*pgd)) && __pud_alloc(mm, pgd, address))?
- NULL: pud_offset(pgd, address);
-}
-
-static inline pmd_t *pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address)
-{
- return (unlikely(pud_none(*pud)) && __pmd_alloc(mm, pud, address))?
- NULL: pmd_offset(pud, address);
-}
-#endif /* CONFIG_MMU && !__ARCH_HAS_4LEVEL_HACK */
-
-#if USE_SPLIT_PTLOCKS
-/*
- * We tuck a spinlock to guard each pagetable page into its struct page,
- * at page->private, with BUILD_BUG_ON to make sure that this will not
- * overflow into the next struct page (as it might with DEBUG_SPINLOCK).
- * When freeing, reset page->mapping so free_pages_check won't complain.
- */
-#define __pte_lockptr(page) &((page)->ptl)
-#define pte_lock_init(_page) do { \
- spin_lock_init(__pte_lockptr(_page)); \
-} while (0)
-#define pte_lock_deinit(page) ((page)->mapping = NULL)
-#define pte_lockptr(mm, pmd) ({(void)(mm); __pte_lockptr(pmd_page(*(pmd)));})
-#else /* !USE_SPLIT_PTLOCKS */
-/*
- * We use mm->page_table_lock to guard all pagetable pages of the mm.
- */
-#define pte_lock_init(page) do {} while (0)
-#define pte_lock_deinit(page) do {} while (0)
-#define pte_lockptr(mm, pmd) ({(void)(pmd); &(mm)->page_table_lock;})
-#endif /* USE_SPLIT_PTLOCKS */
-
-static inline void pgtable_page_ctor(struct page *page)
-{
- pte_lock_init(page);
- inc_zone_page_state(page, NR_PAGETABLE);
-}
-
-static inline void pgtable_page_dtor(struct page *page)
-{
- pte_lock_deinit(page);
- dec_zone_page_state(page, NR_PAGETABLE);
-}
-
-#define pte_offset_map_lock(mm, pmd, address, ptlp) \
-({ \
- spinlock_t *__ptl = pte_lockptr(mm, pmd); \
- pte_t *__pte = pte_offset_map(pmd, address); \
- *(ptlp) = __ptl; \
- spin_lock(__ptl); \
- __pte; \
-})
-
-#define pte_unmap_unlock(pte, ptl) do { \
- spin_unlock(ptl); \
- pte_unmap(pte); \
-} while (0)
-
-#define pte_alloc_map(mm, vma, pmd, address) \
- ((unlikely(pmd_none(*(pmd))) && __pte_alloc(mm, vma, \
- pmd, address))? \
- NULL: pte_offset_map(pmd, address))
-
-#define pte_alloc_map_lock(mm, pmd, address, ptlp) \
- ((unlikely(pmd_none(*(pmd))) && __pte_alloc(mm, NULL, \
- pmd, address))? \
- NULL: pte_offset_map_lock(mm, pmd, address, ptlp))
-
-#define pte_alloc_kernel(pmd, address) \
- ((unlikely(pmd_none(*(pmd))) && __pte_alloc_kernel(pmd, address))? \
- NULL: pte_offset_kernel(pmd, address))
-
-extern void free_area_init(unsigned long * zones_size);
-extern void free_area_init_node(int nid, unsigned long * zones_size,
- unsigned long zone_start_pfn, unsigned long *zholes_size);
-extern void free_initmem(void);
-
-#ifdef CONFIG_HAVE_MEMBLOCK_NODE_MAP
-/*
- * With CONFIG_HAVE_MEMBLOCK_NODE_MAP set, an architecture may initialise its
- * zones, allocate the backing mem_map and account for memory holes in a more
- * architecture independent manner. This is a substitute for creating the
- * zone_sizes[] and zholes_size[] arrays and passing them to
- * free_area_init_node()
- *
- * An architecture is expected to register range of page frames backed by
- * physical memory with memblock_add[_node]() before calling
- * free_area_init_nodes() passing in the PFN each zone ends at. At a basic
- * usage, an architecture is expected to do something like
- *
- * unsigned long max_zone_pfns[MAX_NR_ZONES] = {max_dma, max_normal_pfn,
- * max_highmem_pfn};
- * for_each_valid_physical_page_range()
- * memblock_add_node(base, size, nid)
- * free_area_init_nodes(max_zone_pfns);
- *
- * free_bootmem_with_active_regions() calls free_bootmem_node() for each
- * registered physical page range. Similarly
- * sparse_memory_present_with_active_regions() calls memory_present() for
- * each range when SPARSEMEM is enabled.
- *
- * See mm/page_alloc.c for more information on each function exposed by
- * CONFIG_HAVE_MEMBLOCK_NODE_MAP.
- */
-extern void free_area_init_nodes(unsigned long *max_zone_pfn);
-unsigned long node_map_pfn_alignment(void);
-unsigned long __absent_pages_in_range(int nid, unsigned long start_pfn,
- unsigned long end_pfn);
-extern unsigned long absent_pages_in_range(unsigned long start_pfn,
- unsigned long end_pfn);
-extern void get_pfn_range_for_nid(unsigned int nid,
- unsigned long *start_pfn, unsigned long *end_pfn);
-extern unsigned long find_min_pfn_with_active_regions(void);
-extern void free_bootmem_with_active_regions(int nid,
- unsigned long max_low_pfn);
-extern void sparse_memory_present_with_active_regions(int nid);
-
-#endif /* CONFIG_HAVE_MEMBLOCK_NODE_MAP */
-
-#if !defined(CONFIG_HAVE_MEMBLOCK_NODE_MAP) && \
- !defined(CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID)
-static inline int __early_pfn_to_nid(unsigned long pfn)
-{
- return 0;
-}
-#else
-/* please see mm/page_alloc.c */
-extern int __meminit early_pfn_to_nid(unsigned long pfn);
-#ifdef CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID
-/* there is a per-arch backend function. */
-extern int __meminit __early_pfn_to_nid(unsigned long pfn);
-#endif /* CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID */
-#endif
-
-extern void set_dma_reserve(unsigned long new_dma_reserve);
-extern void memmap_init_zone(unsigned long, int, unsigned long,
- unsigned long, enum memmap_context);
-extern void setup_per_zone_wmarks(void);
-extern int __meminit init_per_zone_wmark_min(void);
-extern void mem_init(void);
-extern void __init mmap_init(void);
-extern void show_mem(unsigned int flags);
-extern void si_meminfo(struct sysinfo * val);
-extern void si_meminfo_node(struct sysinfo *val, int nid);
-extern int after_bootmem;
-
-extern __printf(3, 4)
-void warn_alloc_failed(gfp_t gfp_mask, int order, const char *fmt, ...);
-
-extern void setup_per_cpu_pageset(void);
-
-extern void zone_pcp_update(struct zone *zone);
-
-/* nommu.c */
-extern atomic_long_t mmap_pages_allocated;
-extern int nommu_shrink_inode_mappings(struct inode *, size_t, size_t);
-
-/* prio_tree.c */
-void vma_prio_tree_add(struct vm_area_struct *, struct vm_area_struct *old);
-void vma_prio_tree_insert(struct vm_area_struct *, struct prio_tree_root *);
-void vma_prio_tree_remove(struct vm_area_struct *, struct prio_tree_root *);
-struct vm_area_struct *vma_prio_tree_next(struct vm_area_struct *vma,
- struct prio_tree_iter *iter);
-
-#define vma_prio_tree_foreach(vma, iter, root, begin, end) \
- for (prio_tree_iter_init(iter, root, begin, end), vma = NULL; \
- (vma = vma_prio_tree_next(vma, iter)); )
-
-static inline void vma_nonlinear_insert(struct vm_area_struct *vma,
- struct list_head *list)
-{
- vma->shared.vm_set.parent = NULL;
- list_add_tail(&vma->shared.vm_set.list, list);
-}
-
-/* mmap.c */
-extern int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sys_admin);
-extern int vma_adjust(struct vm_area_struct *vma, unsigned long start,
- unsigned long end, pgoff_t pgoff, struct vm_area_struct *insert);
-extern struct vm_area_struct *vma_merge(struct mm_struct *,
- struct vm_area_struct *prev, unsigned long addr, unsigned long end,
- unsigned long vm_flags, struct anon_vma *, struct file *, pgoff_t,
- struct mempolicy *);
-extern struct anon_vma *find_mergeable_anon_vma(struct vm_area_struct *);
-extern int split_vma(struct mm_struct *,
- struct vm_area_struct *, unsigned long addr, int new_below);
-extern int insert_vm_struct(struct mm_struct *, struct vm_area_struct *);
-extern void __vma_link_rb(struct mm_struct *, struct vm_area_struct *,
- struct rb_node **, struct rb_node *);
-extern void unlink_file_vma(struct vm_area_struct *);
-extern struct vm_area_struct *copy_vma(struct vm_area_struct **,
- unsigned long addr, unsigned long len, pgoff_t pgoff);
-extern void exit_mmap(struct mm_struct *);
-
-extern int mm_take_all_locks(struct mm_struct *mm);
-extern void mm_drop_all_locks(struct mm_struct *mm);
-
-/* From fs/proc/base.c. callers must _not_ hold the mm's exe_file_lock */
-extern void added_exe_file_vma(struct mm_struct *mm);
-extern void removed_exe_file_vma(struct mm_struct *mm);
-extern void set_mm_exe_file(struct mm_struct *mm, struct file *new_exe_file);
-extern struct file *get_mm_exe_file(struct mm_struct *mm);
-
-extern int may_expand_vm(struct mm_struct *mm, unsigned long npages);
-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 mmap_region(struct file *file, unsigned long addr,
- unsigned long len, unsigned long flags,
- vm_flags_t vm_flags, unsigned long pgoff);
-extern unsigned long do_mmap(struct file *, unsigned long,
- unsigned long, unsigned long,
- unsigned long, unsigned long);
-extern int do_munmap(struct mm_struct *, unsigned long, size_t);
-
-/* These take the mm semaphore themselves */
-extern unsigned long vm_brk(unsigned long, unsigned long);
-extern int vm_munmap(unsigned long, size_t);
-extern unsigned long vm_mmap(struct file *, unsigned long,
- unsigned long, unsigned long,
- unsigned long, unsigned long);
-
-/* truncate.c */
-extern void truncate_inode_pages(struct address_space *, loff_t);
-extern void truncate_inode_pages_range(struct address_space *,
- loff_t lstart, loff_t lend);
-
-/* generic vm_area_ops exported for stackable file systems */
-extern int filemap_fault(struct vm_area_struct *, struct vm_fault *);
-
-/* mm/page-writeback.c */
-int write_one_page(struct page *page, int wait);
-void task_dirty_inc(struct task_struct *tsk);
-
-/* readahead.c */
-#define VM_MAX_READAHEAD 128 /* kbytes */
-#define VM_MIN_READAHEAD 16 /* kbytes (includes current page) */
-
-int force_page_cache_readahead(struct address_space *mapping, struct file *filp,
- pgoff_t offset, unsigned long nr_to_read);
-
-void page_cache_sync_readahead(struct address_space *mapping,
- struct file_ra_state *ra,
- struct file *filp,
- pgoff_t offset,
- unsigned long size);
-
-void page_cache_async_readahead(struct address_space *mapping,
- struct file_ra_state *ra,
- struct file *filp,
- struct page *pg,
- pgoff_t offset,
- unsigned long size);
-
-unsigned long max_sane_readahead(unsigned long nr);
-unsigned long ra_submit(struct file_ra_state *ra,
- struct address_space *mapping,
- struct file *filp);
-
-/* Generic expand stack which grows the stack according to GROWS{UP,DOWN} */
-extern int expand_stack(struct vm_area_struct *vma, unsigned long address);
-
-/* CONFIG_STACK_GROWSUP still needs to to grow downwards at some places */
-extern int expand_downwards(struct vm_area_struct *vma,
- unsigned long address);
-#if VM_GROWSUP
-extern int expand_upwards(struct vm_area_struct *vma, unsigned long address);
-#else
- #define expand_upwards(vma, address) do { } while (0)
-#endif
-
-/* Look up the first VMA which satisfies addr < vm_end, NULL if none. */
-extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long addr);
-extern struct vm_area_struct * find_vma_prev(struct mm_struct * mm, unsigned long addr,
- struct vm_area_struct **pprev);
-
-/* Look up the first VMA which intersects the interval start_addr..end_addr-1,
- NULL if none. Assume start_addr < end_addr. */
-static inline struct vm_area_struct * find_vma_intersection(struct mm_struct * mm, unsigned long start_addr, unsigned long end_addr)
-{
- struct vm_area_struct * vma = find_vma(mm,start_addr);
-
- if (vma && end_addr <= vma->vm_start)
- vma = NULL;
- return vma;
-}
-
-static inline unsigned long vma_pages(struct vm_area_struct *vma)
-{
- return (vma->vm_end - vma->vm_start) >> PAGE_SHIFT;
-}
-
-/* Look up the first VMA which exactly match the interval vm_start ... vm_end */
-static inline struct vm_area_struct *find_exact_vma(struct mm_struct *mm,
- unsigned long vm_start, unsigned long vm_end)
-{
- struct vm_area_struct *vma = find_vma(mm, vm_start);
-
- if (vma && (vma->vm_start != vm_start || vma->vm_end != vm_end))
- vma = NULL;
-
- return vma;
-}
-
-#ifdef CONFIG_MMU
-pgprot_t vm_get_page_prot(unsigned long vm_flags);
-#else
-static inline pgprot_t vm_get_page_prot(unsigned long vm_flags)
-{
- return __pgprot(0);
-}
-#endif
-
-struct vm_area_struct *find_extend_vma(struct mm_struct *, unsigned long addr);
-int remap_pfn_range(struct vm_area_struct *, unsigned long addr,
- unsigned long pfn, unsigned long size, pgprot_t);
-int vm_insert_page(struct vm_area_struct *, unsigned long addr, struct page *);
-int vm_insert_pfn(struct vm_area_struct *vma, unsigned long addr,
- unsigned long pfn);
-int vm_insert_mixed(struct vm_area_struct *vma, unsigned long addr,
- unsigned long pfn);
-
-struct page *follow_page(struct vm_area_struct *, unsigned long address,
- unsigned int foll_flags);
-#define FOLL_WRITE 0x01 /* check pte is writable */
-#define FOLL_TOUCH 0x02 /* mark page accessed */
-#define FOLL_GET 0x04 /* do get_page on page */
-#define FOLL_DUMP 0x08 /* give error on hole if it would be zero */
-#define FOLL_FORCE 0x10 /* get_user_pages read/write w/o permission */
-#define FOLL_NOWAIT 0x20 /* if a disk transfer is needed, start the IO
- * and return without waiting upon it */
-#define FOLL_MLOCK 0x40 /* mark page as mlocked */
-#define FOLL_SPLIT 0x80 /* don't return transhuge pages, split them */
-#define FOLL_HWPOISON 0x100 /* check page is hwpoisoned */
-
-typedef int (*pte_fn_t)(pte_t *pte, pgtable_t token, unsigned long addr,
- void *data);
-extern int apply_to_page_range(struct mm_struct *mm, unsigned long address,
- unsigned long size, pte_fn_t fn, void *data);
-
-#ifdef CONFIG_PROC_FS
-void vm_stat_account(struct mm_struct *, unsigned long, struct file *, long);
-#else
-static inline void vm_stat_account(struct mm_struct *mm,
- unsigned long flags, struct file *file, long pages)
-{
-}
-#endif /* CONFIG_PROC_FS */
-
-#ifdef CONFIG_DEBUG_PAGEALLOC
-extern void kernel_map_pages(struct page *page, int numpages, int enable);
-#ifdef CONFIG_HIBERNATION
-extern bool kernel_page_present(struct page *page);
-#endif /* CONFIG_HIBERNATION */
-#else
-static inline void
-kernel_map_pages(struct page *page, int numpages, int enable) {}
-#ifdef CONFIG_HIBERNATION
-static inline bool kernel_page_present(struct page *page) { return true; }
-#endif /* CONFIG_HIBERNATION */
-#endif
-
-extern struct vm_area_struct *get_gate_vma(struct mm_struct *mm);
-#ifdef __HAVE_ARCH_GATE_AREA
-int in_gate_area_no_mm(unsigned long addr);
-int in_gate_area(struct mm_struct *mm, unsigned long addr);
-#else
-int in_gate_area_no_mm(unsigned long addr);
-#define in_gate_area(mm, addr) ({(void)mm; in_gate_area_no_mm(addr);})
-#endif /* __HAVE_ARCH_GATE_AREA */
-
-int drop_caches_sysctl_handler(struct ctl_table *, int,
- void __user *, size_t *, loff_t *);
-unsigned long shrink_slab(struct shrink_control *shrink,
- unsigned long nr_pages_scanned,
- unsigned long lru_pages);
-
-#ifndef CONFIG_MMU
-#define randomize_va_space 0
-#else
-extern int randomize_va_space;
-#endif
-
-const char * arch_vma_name(struct vm_area_struct *vma);
-void print_vma_addr(char *prefix, unsigned long rip);
-
-void sparse_mem_maps_populate_node(struct page **map_map,
- unsigned long pnum_begin,
- unsigned long pnum_end,
- unsigned long map_count,
- int nodeid);
-
-struct page *sparse_mem_map_populate(unsigned long pnum, int nid);
-pgd_t *vmemmap_pgd_populate(unsigned long addr, int node);
-pud_t *vmemmap_pud_populate(pgd_t *pgd, unsigned long addr, int node);
-pmd_t *vmemmap_pmd_populate(pud_t *pud, unsigned long addr, int node);
-pte_t *vmemmap_pte_populate(pmd_t *pmd, unsigned long addr, int node);
-void *vmemmap_alloc_block(unsigned long size, int node);
-void *vmemmap_alloc_block_buf(unsigned long size, int node);
-void vmemmap_verify(pte_t *, int, unsigned long, unsigned long);
-int vmemmap_populate_basepages(struct page *start_page,
- unsigned long pages, int node);
-int vmemmap_populate(struct page *start_page, unsigned long pages, int node);
-void vmemmap_populate_print_last(void);
-
-
-enum mf_flags {
- MF_COUNT_INCREASED = 1 << 0,
- MF_ACTION_REQUIRED = 1 << 1,
-};
-extern int memory_failure(unsigned long pfn, int trapno, int flags);
-extern void memory_failure_queue(unsigned long pfn, int trapno, int flags);
-extern int unpoison_memory(unsigned long pfn);
-extern int sysctl_memory_failure_early_kill;
-extern int sysctl_memory_failure_recovery;
-extern void shake_page(struct page *p, int access);
-extern atomic_long_t mce_bad_pages;
-extern int soft_offline_page(struct page *page, int flags);
-
-extern void dump_page(struct page *page);
-
-#if defined(CONFIG_TRANSPARENT_HUGEPAGE) || defined(CONFIG_HUGETLBFS)
-extern void clear_huge_page(struct page *page,
- unsigned long addr,
- unsigned int pages_per_huge_page);
-extern void copy_user_huge_page(struct page *dst, struct page *src,
- unsigned long addr, struct vm_area_struct *vma,
- unsigned int pages_per_huge_page);
-#endif /* CONFIG_TRANSPARENT_HUGEPAGE || CONFIG_HUGETLBFS */
-
-#ifdef CONFIG_DEBUG_PAGEALLOC
-extern unsigned int _debug_guardpage_minorder;
-
-static inline unsigned int debug_guardpage_minorder(void)
-{
- return _debug_guardpage_minorder;
-}
-
-static inline bool page_is_guard(struct page *page)
-{
- return test_bit(PAGE_DEBUG_FLAG_GUARD, &page->debug_flags);
-}
-#else
-static inline unsigned int debug_guardpage_minorder(void) { return 0; }
-static inline bool page_is_guard(struct page *page) { return false; }
-#endif /* CONFIG_DEBUG_PAGEALLOC */
-
-#endif /* __KERNEL__ */
-#endif /* _LINUX_MM_H */
diff --git a/ANDROID_3.4.5/include/linux/mm_inline.h b/ANDROID_3.4.5/include/linux/mm_inline.h
deleted file mode 100644
index 227fd3e9..00000000
--- a/ANDROID_3.4.5/include/linux/mm_inline.h
+++ /dev/null
@@ -1,102 +0,0 @@
-#ifndef LINUX_MM_INLINE_H
-#define LINUX_MM_INLINE_H
-
-#include <linux/huge_mm.h>
-
-/**
- * page_is_file_cache - should the page be on a file LRU or anon LRU?
- * @page: the page to test
- *
- * Returns 1 if @page is page cache page backed by a regular filesystem,
- * or 0 if @page is anonymous, tmpfs or otherwise ram or swap backed.
- * Used by functions that manipulate the LRU lists, to sort a page
- * onto the right LRU list.
- *
- * We would like to get this info without a page flag, but the state
- * needs to survive until the page is last deleted from the LRU, which
- * could be as far down as __page_cache_release.
- */
-static inline int page_is_file_cache(struct page *page)
-{
- return !PageSwapBacked(page);
-}
-
-static inline void
-add_page_to_lru_list(struct zone *zone, struct page *page, enum lru_list lru)
-{
- struct lruvec *lruvec;
-
- lruvec = mem_cgroup_lru_add_list(zone, page, lru);
- list_add(&page->lru, &lruvec->lists[lru]);
- __mod_zone_page_state(zone, NR_LRU_BASE + lru, hpage_nr_pages(page));
-}
-
-static inline void
-del_page_from_lru_list(struct zone *zone, struct page *page, enum lru_list lru)
-{
- mem_cgroup_lru_del_list(page, lru);
- list_del(&page->lru);
- __mod_zone_page_state(zone, NR_LRU_BASE + lru, -hpage_nr_pages(page));
-}
-
-/**
- * page_lru_base_type - which LRU list type should a page be on?
- * @page: the page to test
- *
- * Used for LRU list index arithmetic.
- *
- * Returns the base LRU type - file or anon - @page should be on.
- */
-static inline enum lru_list page_lru_base_type(struct page *page)
-{
- if (page_is_file_cache(page))
- return LRU_INACTIVE_FILE;
- return LRU_INACTIVE_ANON;
-}
-
-/**
- * page_off_lru - which LRU list was page on? clearing its lru flags.
- * @page: the page to test
- *
- * Returns the LRU list a page was on, as an index into the array of LRU
- * lists; and clears its Unevictable or Active flags, ready for freeing.
- */
-static inline enum lru_list page_off_lru(struct page *page)
-{
- enum lru_list lru;
-
- if (PageUnevictable(page)) {
- __ClearPageUnevictable(page);
- lru = LRU_UNEVICTABLE;
- } else {
- lru = page_lru_base_type(page);
- if (PageActive(page)) {
- __ClearPageActive(page);
- lru += LRU_ACTIVE;
- }
- }
- return lru;
-}
-
-/**
- * page_lru - which LRU list should a page be on?
- * @page: the page to test
- *
- * Returns the LRU list a page should be on, as an index
- * into the array of LRU lists.
- */
-static inline enum lru_list page_lru(struct page *page)
-{
- enum lru_list lru;
-
- if (PageUnevictable(page))
- lru = LRU_UNEVICTABLE;
- else {
- lru = page_lru_base_type(page);
- if (PageActive(page))
- lru += LRU_ACTIVE;
- }
- return lru;
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mm_types.h b/ANDROID_3.4.5/include/linux/mm_types.h
deleted file mode 100644
index b35752fb..00000000
--- a/ANDROID_3.4.5/include/linux/mm_types.h
+++ /dev/null
@@ -1,416 +0,0 @@
-#ifndef _LINUX_MM_TYPES_H
-#define _LINUX_MM_TYPES_H
-
-#include <linux/auxvec.h>
-#include <linux/types.h>
-#include <linux/threads.h>
-#include <linux/list.h>
-#include <linux/spinlock.h>
-#include <linux/prio_tree.h>
-#include <linux/rbtree.h>
-#include <linux/rwsem.h>
-#include <linux/completion.h>
-#include <linux/cpumask.h>
-#include <linux/page-debug-flags.h>
-#include <asm/page.h>
-#include <asm/mmu.h>
-
-#ifndef AT_VECTOR_SIZE_ARCH
-#define AT_VECTOR_SIZE_ARCH 0
-#endif
-#define AT_VECTOR_SIZE (2*(AT_VECTOR_SIZE_ARCH + AT_VECTOR_SIZE_BASE + 1))
-
-struct address_space;
-
-#define USE_SPLIT_PTLOCKS (NR_CPUS >= CONFIG_SPLIT_PTLOCK_CPUS)
-
-/*
- * Each physical page in the system has a struct page associated with
- * it to keep track of whatever it is we are using the page for at the
- * moment. Note that we have no way to track which tasks are using
- * a page, though if it is a pagecache page, rmap structures can tell us
- * who is mapping it.
- *
- * The objects in struct page are organized in double word blocks in
- * order to allows us to use atomic double word operations on portions
- * of struct page. That is currently only used by slub but the arrangement
- * allows the use of atomic double word operations on the flags/mapping
- * and lru list pointers also.
- */
-struct page {
- /* First double word block */
- unsigned long flags; /* Atomic flags, some possibly
- * updated asynchronously */
- struct address_space *mapping; /* If low bit clear, points to
- * inode address_space, or NULL.
- * If page mapped as anonymous
- * memory, low bit is set, and
- * it points to anon_vma object:
- * see PAGE_MAPPING_ANON below.
- */
- /* Second double word */
- struct {
- union {
- pgoff_t index; /* Our offset within mapping. */
- void *freelist; /* slub first free object */
- };
-
- union {
-#if defined(CONFIG_HAVE_CMPXCHG_DOUBLE) && \
- defined(CONFIG_HAVE_ALIGNED_STRUCT_PAGE)
- /* Used for cmpxchg_double in slub */
- unsigned long counters;
-#else
- /*
- * Keep _count separate from slub cmpxchg_double data.
- * As the rest of the double word is protected by
- * slab_lock but _count is not.
- */
- unsigned counters;
-#endif
-
- struct {
-
- union {
- /*
- * Count of ptes mapped in
- * mms, to show when page is
- * mapped & limit reverse map
- * searches.
- *
- * Used also for tail pages
- * refcounting instead of
- * _count. Tail pages cannot
- * be mapped and keeping the
- * tail page _count zero at
- * all times guarantees
- * get_page_unless_zero() will
- * never succeed on tail
- * pages.
- */
- atomic_t _mapcount;
-
- struct {
- unsigned inuse:16;
- unsigned objects:15;
- unsigned frozen:1;
- };
- };
- atomic_t _count; /* Usage count, see below. */
- };
- };
- };
-
- /* Third double word block */
- union {
- struct list_head lru; /* Pageout list, eg. active_list
- * protected by zone->lru_lock !
- */
- struct { /* slub per cpu partial pages */
- struct page *next; /* Next partial slab */
-#ifdef CONFIG_64BIT
- int pages; /* Nr of partial slabs left */
- int pobjects; /* Approximate # of objects */
-#else
- short int pages;
- short int pobjects;
-#endif
- };
- };
-
- /* Remainder is not double word aligned */
- union {
- unsigned long private; /* Mapping-private opaque data:
- * usually used for buffer_heads
- * if PagePrivate set; used for
- * swp_entry_t if PageSwapCache;
- * indicates order in the buddy
- * system if PG_buddy is set.
- */
-#if USE_SPLIT_PTLOCKS
- spinlock_t ptl;
-#endif
- struct kmem_cache *slab; /* SLUB: Pointer to slab */
- struct page *first_page; /* Compound tail pages */
- };
-
- /*
- * On machines where all RAM is mapped into kernel address space,
- * we can simply calculate the virtual address. On machines with
- * highmem some memory is mapped into kernel virtual memory
- * dynamically, so we need a place to store that address.
- * Note that this field could be 16 bits on x86 ... ;)
- *
- * Architectures with slow multiplication can define
- * WANT_PAGE_VIRTUAL in asm/page.h
- */
-#if defined(WANT_PAGE_VIRTUAL)
- void *virtual; /* Kernel virtual address (NULL if
- not kmapped, ie. highmem) */
-#endif /* WANT_PAGE_VIRTUAL */
-#ifdef CONFIG_WANT_PAGE_DEBUG_FLAGS
- unsigned long debug_flags; /* Use atomic bitops on this */
-#endif
-
-#ifdef CONFIG_KMEMCHECK
- /*
- * kmemcheck wants to track the status of each byte in a page; this
- * is a pointer to such a status block. NULL if not tracked.
- */
- void *shadow;
-#endif
-}
-/*
- * The struct page can be forced to be double word aligned so that atomic ops
- * on double words work. The SLUB allocator can make use of such a feature.
- */
-#ifdef CONFIG_HAVE_ALIGNED_STRUCT_PAGE
- __aligned(2 * sizeof(unsigned long))
-#endif
-;
-
-struct page_frag {
- struct page *page;
-#if (BITS_PER_LONG > 32) || (PAGE_SIZE >= 65536)
- __u32 offset;
- __u32 size;
-#else
- __u16 offset;
- __u16 size;
-#endif
-};
-
-typedef unsigned long __nocast vm_flags_t;
-
-/*
- * A region containing a mapping of a non-memory backed file under NOMMU
- * conditions. These are held in a global tree and are pinned by the VMAs that
- * map parts of them.
- */
-struct vm_region {
- struct rb_node vm_rb; /* link in global region tree */
- vm_flags_t vm_flags; /* VMA vm_flags */
- unsigned long vm_start; /* start address of region */
- unsigned long vm_end; /* region initialised to here */
- unsigned long vm_top; /* region allocated to here */
- unsigned long vm_pgoff; /* the offset in vm_file corresponding to vm_start */
- struct file *vm_file; /* the backing file or NULL */
-
- int vm_usage; /* region usage count (access under nommu_region_sem) */
- bool vm_icache_flushed : 1; /* true if the icache has been flushed for
- * this region */
-};
-
-/*
- * This struct defines a memory VMM memory area. There is one of these
- * per VM-area/task. A VM area is any part of the process virtual memory
- * space that has a special rule for the page-fault handlers (ie a shared
- * library, the executable area etc).
- */
-struct vm_area_struct {
- struct mm_struct * vm_mm; /* The address space we belong to. */
- unsigned long vm_start; /* Our start address within vm_mm. */
- unsigned long vm_end; /* The first byte after our end address
- within vm_mm. */
-
- /* linked list of VM areas per task, sorted by address */
- struct vm_area_struct *vm_next, *vm_prev;
-
- pgprot_t vm_page_prot; /* Access permissions of this VMA. */
- unsigned long vm_flags; /* Flags, see mm.h. */
-
- struct rb_node vm_rb;
-
- /*
- * For areas with an address space and backing store,
- * linkage into the address_space->i_mmap prio tree, or
- * linkage to the list of like vmas hanging off its node, or
- * linkage of vma in the address_space->i_mmap_nonlinear list.
- */
- union {
- struct {
- struct list_head list;
- void *parent; /* aligns with prio_tree_node parent */
- struct vm_area_struct *head;
- } vm_set;
-
- struct raw_prio_tree_node prio_tree_node;
- } shared;
-
- /*
- * A file's MAP_PRIVATE vma can be in both i_mmap tree and anon_vma
- * list, after a COW of one of the file pages. A MAP_SHARED vma
- * can only be in the i_mmap tree. An anonymous MAP_PRIVATE, stack
- * or brk vma (with NULL file) can only be in an anon_vma list.
- */
- struct list_head anon_vma_chain; /* Serialized by mmap_sem &
- * page_table_lock */
- struct anon_vma *anon_vma; /* Serialized by page_table_lock */
-
- /* Function pointers to deal with this struct. */
- const struct vm_operations_struct *vm_ops;
-
- /* Information about our backing store: */
- unsigned long vm_pgoff; /* Offset (within vm_file) in PAGE_SIZE
- units, *not* PAGE_CACHE_SIZE */
- struct file * vm_file; /* File we map to (can be NULL). */
- void * vm_private_data; /* was vm_pte (shared mem) */
-
-#ifndef CONFIG_MMU
- struct vm_region *vm_region; /* NOMMU mapping region */
-#endif
-#ifdef CONFIG_NUMA
- struct mempolicy *vm_policy; /* NUMA policy for the VMA */
-#endif
-};
-
-struct core_thread {
- struct task_struct *task;
- struct core_thread *next;
-};
-
-struct core_state {
- atomic_t nr_threads;
- struct core_thread dumper;
- struct completion startup;
-};
-
-enum {
- MM_FILEPAGES,
- MM_ANONPAGES,
- MM_SWAPENTS,
- NR_MM_COUNTERS
-};
-
-#if USE_SPLIT_PTLOCKS && defined(CONFIG_MMU)
-#define SPLIT_RSS_COUNTING
-/* per-thread cached information, */
-struct task_rss_stat {
- int events; /* for synchronization threshold */
- int count[NR_MM_COUNTERS];
-};
-#endif /* USE_SPLIT_PTLOCKS */
-
-struct mm_rss_stat {
- atomic_long_t count[NR_MM_COUNTERS];
-};
-
-struct mm_struct {
- struct vm_area_struct * mmap; /* list of VMAs */
- struct rb_root mm_rb;
- struct vm_area_struct * mmap_cache; /* last find_vma result */
-#ifdef CONFIG_MMU
- unsigned long (*get_unmapped_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 */
- unsigned long task_size; /* size of task vm space */
- unsigned long cached_hole_size; /* if non-zero, the largest hole below free_area_cache */
- unsigned long free_area_cache; /* first hole of size cached_hole_size or larger */
- pgd_t * pgd;
- atomic_t mm_users; /* How many users with user space? */
- atomic_t mm_count; /* How many references to "struct mm_struct" (users count as 1) */
- int map_count; /* number of VMAs */
-
- spinlock_t page_table_lock; /* Protects page tables and some counters */
- struct rw_semaphore mmap_sem;
-
- struct list_head mmlist; /* List of maybe swapped mm's. These are globally strung
- * together off init_mm.mmlist, and are protected
- * by mmlist_lock
- */
-
-
- unsigned long hiwater_rss; /* High-watermark of RSS usage */
- unsigned long hiwater_vm; /* High-water virtual memory usage */
-
- unsigned long total_vm; /* Total pages mapped */
- unsigned long locked_vm; /* Pages that have PG_mlocked set */
- unsigned long pinned_vm; /* Refcount permanently increased */
- unsigned long shared_vm; /* Shared pages (files) */
- unsigned long exec_vm; /* VM_EXEC & ~VM_WRITE */
- unsigned long stack_vm; /* VM_GROWSUP/DOWN */
- unsigned long reserved_vm; /* VM_RESERVED|VM_IO pages */
- unsigned long def_flags;
- unsigned long nr_ptes; /* Page table pages */
- unsigned long start_code, end_code, start_data, end_data;
- unsigned long start_brk, brk, start_stack;
- unsigned long arg_start, arg_end, env_start, env_end;
-
- unsigned long saved_auxv[AT_VECTOR_SIZE]; /* for /proc/PID/auxv */
-
- /*
- * Special counters, in some configurations protected by the
- * page_table_lock, in other configurations by being atomic.
- */
- struct mm_rss_stat rss_stat;
-
- struct linux_binfmt *binfmt;
-
- cpumask_var_t cpu_vm_mask_var;
-
- /* Architecture-specific MM context */
- mm_context_t context;
-
- /* Swap token stuff */
- /*
- * Last value of global fault stamp as seen by this process.
- * In other words, this value gives an indication of how long
- * it has been since this task got the token.
- * Look at mm/thrash.c
- */
- unsigned int faultstamp;
- unsigned int token_priority;
- unsigned int last_interval;
-
- unsigned long flags; /* Must use atomic bitops to access the bits */
-
- struct core_state *core_state; /* coredumping support */
-#ifdef CONFIG_AIO
- spinlock_t ioctx_lock;
- struct hlist_head ioctx_list;
-#endif
-#ifdef CONFIG_MM_OWNER
- /*
- * "owner" points to a task that is regarded as the canonical
- * user/owner of this mm. All of the following must be true in
- * order for it to be changed:
- *
- * current == mm->owner
- * current->mm != mm
- * new_owner->mm == mm
- * new_owner->alloc_lock is held
- */
- struct task_struct __rcu *owner;
-#endif
-
- /* store ref to file /proc/<pid>/exe symlink points to */
- struct file *exe_file;
- unsigned long num_exe_file_vmas;
-#ifdef CONFIG_MMU_NOTIFIER
- struct mmu_notifier_mm *mmu_notifier_mm;
-#endif
-#ifdef CONFIG_TRANSPARENT_HUGEPAGE
- pgtable_t pmd_huge_pte; /* protected by page_table_lock */
-#endif
-#ifdef CONFIG_CPUMASK_OFFSTACK
- struct cpumask cpumask_allocation;
-#endif
-};
-
-static inline void mm_init_cpumask(struct mm_struct *mm)
-{
-#ifdef CONFIG_CPUMASK_OFFSTACK
- mm->cpu_vm_mask_var = &mm->cpumask_allocation;
-#endif
-}
-
-/* Future-safe accessor for struct mm_struct's cpu_vm_mask. */
-static inline cpumask_t *mm_cpumask(struct mm_struct *mm)
-{
- return mm->cpu_vm_mask_var;
-}
-
-#endif /* _LINUX_MM_TYPES_H */
diff --git a/ANDROID_3.4.5/include/linux/mman.h b/ANDROID_3.4.5/include/linux/mman.h
deleted file mode 100644
index 8b74e9b1..00000000
--- a/ANDROID_3.4.5/include/linux/mman.h
+++ /dev/null
@@ -1,93 +0,0 @@
-#ifndef _LINUX_MMAN_H
-#define _LINUX_MMAN_H
-
-#include <asm/mman.h>
-
-#define MREMAP_MAYMOVE 1
-#define MREMAP_FIXED 2
-
-#define OVERCOMMIT_GUESS 0
-#define OVERCOMMIT_ALWAYS 1
-#define OVERCOMMIT_NEVER 2
-
-#ifdef __KERNEL__
-#include <linux/mm.h>
-#include <linux/percpu_counter.h>
-
-#include <linux/atomic.h>
-
-extern int sysctl_overcommit_memory;
-extern int sysctl_overcommit_ratio;
-extern struct percpu_counter vm_committed_as;
-
-static inline void vm_acct_memory(long pages)
-{
- percpu_counter_add(&vm_committed_as, pages);
-}
-
-static inline void vm_unacct_memory(long pages)
-{
- vm_acct_memory(-pages);
-}
-
-/*
- * Allow architectures to handle additional protection bits
- */
-
-#ifndef arch_calc_vm_prot_bits
-#define arch_calc_vm_prot_bits(prot) 0
-#endif
-
-#ifndef arch_vm_get_page_prot
-#define arch_vm_get_page_prot(vm_flags) __pgprot(0)
-#endif
-
-#ifndef arch_validate_prot
-/*
- * This is called from mprotect(). PROT_GROWSDOWN and PROT_GROWSUP have
- * already been masked out.
- *
- * Returns true if the prot flags are valid
- */
-static inline int arch_validate_prot(unsigned long prot)
-{
- return (prot & ~(PROT_READ | PROT_WRITE | PROT_EXEC | PROT_SEM)) == 0;
-}
-#define arch_validate_prot arch_validate_prot
-#endif
-
-/*
- * Optimisation macro. It is equivalent to:
- * (x & bit1) ? bit2 : 0
- * but this version is faster.
- * ("bit1" and "bit2" must be single bits)
- */
-#define _calc_vm_trans(x, bit1, bit2) \
- ((bit1) <= (bit2) ? ((x) & (bit1)) * ((bit2) / (bit1)) \
- : ((x) & (bit1)) / ((bit1) / (bit2)))
-
-/*
- * Combine the mmap "prot" argument into "vm_flags" used internally.
- */
-static inline unsigned long
-calc_vm_prot_bits(unsigned long prot)
-{
- return _calc_vm_trans(prot, PROT_READ, VM_READ ) |
- _calc_vm_trans(prot, PROT_WRITE, VM_WRITE) |
- _calc_vm_trans(prot, PROT_EXEC, VM_EXEC) |
- arch_calc_vm_prot_bits(prot);
-}
-
-/*
- * Combine the mmap "flags" argument into "vm_flags" used internally.
- */
-static inline unsigned long
-calc_vm_flag_bits(unsigned long flags)
-{
- return _calc_vm_trans(flags, MAP_GROWSDOWN, VM_GROWSDOWN ) |
- _calc_vm_trans(flags, MAP_DENYWRITE, VM_DENYWRITE ) |
- _calc_vm_trans(flags, MAP_EXECUTABLE, VM_EXECUTABLE) |
- _calc_vm_trans(flags, MAP_LOCKED, VM_LOCKED );
-}
-#endif /* __KERNEL__ */
-#endif /* _LINUX_MMAN_H */
diff --git a/ANDROID_3.4.5/include/linux/mmc/Kbuild b/ANDROID_3.4.5/include/linux/mmc/Kbuild
deleted file mode 100644
index 1fb26448..00000000
--- a/ANDROID_3.4.5/include/linux/mmc/Kbuild
+++ /dev/null
@@ -1 +0,0 @@
-header-y += ioctl.h
diff --git a/ANDROID_3.4.5/include/linux/mmc/boot.h b/ANDROID_3.4.5/include/linux/mmc/boot.h
deleted file mode 100644
index 23acc3ba..00000000
--- a/ANDROID_3.4.5/include/linux/mmc/boot.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef LINUX_MMC_BOOT_H
-#define LINUX_MMC_BOOT_H
-
-enum { MMC_PROGRESS_ENTER, MMC_PROGRESS_INIT,
- MMC_PROGRESS_LOAD, MMC_PROGRESS_DONE };
-
-#endif /* LINUX_MMC_BOOT_H */
diff --git a/ANDROID_3.4.5/include/linux/mmc/card.h b/ANDROID_3.4.5/include/linux/mmc/card.h
deleted file mode 100644
index 629b823f..00000000
--- a/ANDROID_3.4.5/include/linux/mmc/card.h
+++ /dev/null
@@ -1,494 +0,0 @@
-/*
- * linux/include/linux/mmc/card.h
- *
- * 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.
- *
- * Card driver specific definitions.
- */
-#ifndef LINUX_MMC_CARD_H
-#define LINUX_MMC_CARD_H
-
-#include <linux/device.h>
-#include <linux/mmc/core.h>
-#include <linux/mod_devicetable.h>
-
-struct mmc_cid {
- unsigned int manfid;
- char prod_name[8];
- unsigned int serial;
- unsigned short oemid;
- unsigned short year;
- unsigned char hwrev;
- unsigned char fwrev;
- unsigned char month;
-};
-
-struct mmc_csd {
- unsigned char structure;
- unsigned char mmca_vsn;
- unsigned short cmdclass;
- unsigned short tacc_clks;
- unsigned int tacc_ns;
- unsigned int c_size;
- unsigned int r2w_factor;
- unsigned int max_dtr;
- unsigned int erase_size; /* In sectors */
- unsigned int read_blkbits;
- unsigned int write_blkbits;
- unsigned int capacity;
- unsigned int read_partial:1,
- read_misalign:1,
- write_partial:1,
- write_misalign:1;
-};
-
-struct mmc_ext_csd {
- u8 rev;
- u8 erase_group_def;
- u8 sec_feature_support;
- u8 rel_sectors;
- u8 rel_param;
- u8 part_config;
- u8 cache_ctrl;
- u8 rst_n_function;
- unsigned int part_time; /* Units: ms */
- unsigned int sa_timeout; /* Units: 100ns */
- unsigned int generic_cmd6_time; /* Units: 10ms */
- unsigned int power_off_longtime; /* Units: ms */
- unsigned int hs_max_dtr;
- unsigned int sectors;
- unsigned int card_type;
- unsigned int hc_erase_size; /* In sectors */
- unsigned int hc_erase_timeout; /* In milliseconds */
- unsigned int sec_trim_mult; /* Secure trim multiplier */
- unsigned int sec_erase_mult; /* Secure erase multiplier */
- unsigned int trim_timeout; /* In milliseconds */
- bool enhanced_area_en; /* enable bit */
- unsigned long long enhanced_area_offset; /* Units: Byte */
- unsigned int enhanced_area_size; /* Units: KB */
- unsigned int cache_size; /* Units: KB */
- bool hpi_en; /* HPI enablebit */
- bool hpi; /* HPI support bit */
- unsigned int hpi_cmd; /* cmd used as HPI */
- unsigned int data_sector_size; /* 512 bytes or 4KB */
- unsigned int data_tag_unit_size; /* DATA TAG UNIT size */
- unsigned int boot_ro_lock; /* ro lock support */
- bool boot_ro_lockable;
- u8 raw_partition_support; /* 160 */
- u8 raw_erased_mem_count; /* 181 */
- u8 raw_ext_csd_structure; /* 194 */
- u8 raw_card_type; /* 196 */
- u8 out_of_int_time; /* 198 */
- u8 raw_s_a_timeout; /* 217 */
- u8 raw_hc_erase_gap_size; /* 221 */
- u8 raw_erase_timeout_mult; /* 223 */
- u8 raw_hc_erase_grp_size; /* 224 */
- u8 raw_sec_trim_mult; /* 229 */
- u8 raw_sec_erase_mult; /* 230 */
- u8 raw_sec_feature_support;/* 231 */
- u8 raw_trim_mult; /* 232 */
- u8 raw_sectors[4]; /* 212 - 4 bytes */
-
- unsigned int feature_support;
-#define MMC_DISCARD_FEATURE BIT(0) /* CMD38 feature */
-};
-
-struct sd_scr {
- unsigned char sda_vsn;
- unsigned char sda_spec3;
- unsigned char bus_widths;
-#define SD_SCR_BUS_WIDTH_1 (1<<0)
-#define SD_SCR_BUS_WIDTH_4 (1<<2)
- unsigned char cmds;
-#define SD_SCR_CMD20_SUPPORT (1<<0)
-#define SD_SCR_CMD23_SUPPORT (1<<1)
-};
-
-struct sd_ssr {
- unsigned int au; /* In sectors */
- unsigned int erase_timeout; /* In milliseconds */
- unsigned int erase_offset; /* In milliseconds */
-};
-
-struct sd_switch_caps {
- unsigned int hs_max_dtr;
- unsigned int uhs_max_dtr;
-#define HIGH_SPEED_MAX_DTR 50000000
-#define UHS_SDR104_MAX_DTR 208000000
-#define UHS_SDR50_MAX_DTR 100000000
-#define UHS_DDR50_MAX_DTR 50000000
-#define UHS_SDR25_MAX_DTR UHS_DDR50_MAX_DTR
-#define UHS_SDR12_MAX_DTR 25000000
- unsigned int sd3_bus_mode;
-#define UHS_SDR12_BUS_SPEED 0
-#define HIGH_SPEED_BUS_SPEED 1
-#define UHS_SDR25_BUS_SPEED 1
-#define UHS_SDR50_BUS_SPEED 2
-#define UHS_SDR104_BUS_SPEED 3
-#define UHS_DDR50_BUS_SPEED 4
-
-#define SD_MODE_HIGH_SPEED (1 << HIGH_SPEED_BUS_SPEED)
-#define SD_MODE_UHS_SDR12 (1 << UHS_SDR12_BUS_SPEED)
-#define SD_MODE_UHS_SDR25 (1 << UHS_SDR25_BUS_SPEED)
-#define SD_MODE_UHS_SDR50 (1 << UHS_SDR50_BUS_SPEED)
-#define SD_MODE_UHS_SDR104 (1 << UHS_SDR104_BUS_SPEED)
-#define SD_MODE_UHS_DDR50 (1 << UHS_DDR50_BUS_SPEED)
- unsigned int sd3_drv_type;
-#define SD_DRIVER_TYPE_B 0x01
-#define SD_DRIVER_TYPE_A 0x02
-#define SD_DRIVER_TYPE_C 0x04
-#define SD_DRIVER_TYPE_D 0x08
- unsigned int sd3_curr_limit;
-#define SD_SET_CURRENT_LIMIT_200 0
-#define SD_SET_CURRENT_LIMIT_400 1
-#define SD_SET_CURRENT_LIMIT_600 2
-#define SD_SET_CURRENT_LIMIT_800 3
-
-#define SD_MAX_CURRENT_200 (1 << SD_SET_CURRENT_LIMIT_200)
-#define SD_MAX_CURRENT_400 (1 << SD_SET_CURRENT_LIMIT_400)
-#define SD_MAX_CURRENT_600 (1 << SD_SET_CURRENT_LIMIT_600)
-#define SD_MAX_CURRENT_800 (1 << SD_SET_CURRENT_LIMIT_800)
-};
-
-struct sdio_cccr {
- unsigned int sdio_vsn;
- unsigned int sd_vsn;
- unsigned int multi_block:1,
- low_speed:1,
- wide_bus:1,
- high_power:1,
- high_speed:1,
- disable_cd:1;
-};
-
-struct sdio_cis {
- unsigned short vendor;
- unsigned short device;
- unsigned short blksize;
- unsigned int max_dtr;
-};
-
-struct mmc_host;
-struct sdio_func;
-struct sdio_func_tuple;
-
-#define SDIO_MAX_FUNCS 7
-
-/* The number of MMC physical partitions. These consist of:
- * boot partitions (2), general purpose partitions (4) in MMC v4.4.
- */
-#define MMC_NUM_BOOT_PARTITION 2
-#define MMC_NUM_GP_PARTITION 4
-#define MMC_NUM_PHY_PARTITION 6
-#define MAX_MMC_PART_NAME_LEN 20
-
-/*
- * MMC Physical partitions
- */
-struct mmc_part {
- unsigned int size; /* partition size (in bytes) */
- unsigned int part_cfg; /* partition type */
- char name[MAX_MMC_PART_NAME_LEN];
- bool force_ro; /* to make boot parts RO by default */
- unsigned int area_type;
-#define MMC_BLK_DATA_AREA_MAIN (1<<0)
-#define MMC_BLK_DATA_AREA_BOOT (1<<1)
-#define MMC_BLK_DATA_AREA_GP (1<<2)
-};
-
-/*
- * MMC device
- */
-struct mmc_card {
- struct mmc_host *host; /* the host this device belongs to */
- struct device dev; /* the device */
- unsigned int rca; /* relative card address of device */
- unsigned int type; /* card type */
-#define MMC_TYPE_MMC 0 /* MMC card */
-#define MMC_TYPE_SD 1 /* SD card */
-#define MMC_TYPE_SDIO 2 /* SDIO card */
-#define MMC_TYPE_SD_COMBO 3 /* SD combo (IO+mem) card */
- unsigned int state; /* (our) card state */
-#define MMC_STATE_PRESENT (1<<0) /* present in sysfs */
-#define MMC_STATE_READONLY (1<<1) /* card is read-only */
-#define MMC_STATE_HIGHSPEED (1<<2) /* card is in high speed mode */
-#define MMC_STATE_BLOCKADDR (1<<3) /* card uses block-addressing */
-#define MMC_STATE_HIGHSPEED_DDR (1<<4) /* card is in high speed mode */
-#define MMC_STATE_ULTRAHIGHSPEED (1<<5) /* card is in ultra high speed mode */
-#define MMC_CARD_SDXC (1<<6) /* card is SDXC */
-#define MMC_CARD_REMOVED (1<<7) /* card has been removed */
-#define MMC_STATE_HIGHSPEED_200 (1<<8) /* card is in HS200 mode */
-#define MMC_STATE_SLEEP (1<<9) /* card is in sleep state */
- unsigned int quirks; /* card quirks */
-#define MMC_QUIRK_LENIENT_FN0 (1<<0) /* allow SDIO FN0 writes outside of the VS CCCR range */
-#define MMC_QUIRK_BLKSZ_FOR_BYTE_MODE (1<<1) /* use func->cur_blksize */
- /* for byte mode */
-#define MMC_QUIRK_NONSTD_SDIO (1<<2) /* non-standard SDIO card attached */
- /* (missing CIA registers) */
-#define MMC_QUIRK_BROKEN_CLK_GATING (1<<3) /* clock gating the sdio bus will make card fail */
-#define MMC_QUIRK_NONSTD_FUNC_IF (1<<4) /* SDIO card has nonstd function interfaces */
-#define MMC_QUIRK_DISABLE_CD (1<<5) /* disconnect CD/DAT[3] resistor */
-#define MMC_QUIRK_INAND_CMD38 (1<<6) /* iNAND devices have broken CMD38 */
-#define MMC_QUIRK_BLK_NO_CMD23 (1<<7) /* Avoid CMD23 for regular multiblock */
-#define MMC_QUIRK_BROKEN_BYTE_MODE_512 (1<<8) /* Avoid sending 512 bytes in */
-#define MMC_QUIRK_LONG_READ_TIME (1<<9) /* Data read time > CSD says */
- /* byte mode */
- unsigned int poweroff_notify_state; /* eMMC4.5 notify feature */
-#define MMC_NO_POWER_NOTIFICATION 0
-#define MMC_POWERED_ON 1
-#define MMC_POWEROFF_SHORT 2
-#define MMC_POWEROFF_LONG 3
-
- unsigned int erase_size; /* erase size in sectors */
- unsigned int erase_shift; /* if erase unit is power 2 */
- unsigned int pref_erase; /* in sectors */
- u8 erased_byte; /* value of erased bytes */
-
- u32 raw_cid[4]; /* raw card CID */
- u32 raw_csd[4]; /* raw card CSD */
- u32 raw_scr[2]; /* raw card SCR */
- struct mmc_cid cid; /* card identification */
- struct mmc_csd csd; /* card specific */
- struct mmc_ext_csd ext_csd; /* mmc v4 extended card specific */
- struct sd_scr scr; /* extra SD information */
- struct sd_ssr ssr; /* yet more SD information */
- struct sd_switch_caps sw_caps; /* switch (CMD6) caps */
-
- unsigned int sdio_funcs; /* number of SDIO functions */
- struct sdio_cccr cccr; /* common card info */
- struct sdio_cis cis; /* common tuple info */
- struct sdio_func *sdio_func[SDIO_MAX_FUNCS]; /* SDIO functions (devices) */
- struct sdio_func *sdio_single_irq; /* SDIO function when only one IRQ active */
- unsigned num_info; /* number of info strings */
- const char **info; /* info strings */
- struct sdio_func_tuple *tuples; /* unknown common tuples */
-
- unsigned int sd_bus_speed; /* Bus Speed Mode set for the card */
-
- struct dentry *debugfs_root;
- struct mmc_part part[MMC_NUM_PHY_PARTITION]; /* physical partitions */
- unsigned int nr_parts;
-};
-
-/*
- * This function fill contents in mmc_part.
- */
-static inline void mmc_part_add(struct mmc_card *card, unsigned int size,
- unsigned int part_cfg, char *name, int idx, bool ro,
- int area_type)
-{
- card->part[card->nr_parts].size = size;
- card->part[card->nr_parts].part_cfg = part_cfg;
- sprintf(card->part[card->nr_parts].name, name, idx);
- card->part[card->nr_parts].force_ro = ro;
- card->part[card->nr_parts].area_type = area_type;
- card->nr_parts++;
-}
-
-/*
- * The world is not perfect and supplies us with broken mmc/sdio devices.
- * For at least some of these bugs we need a work-around.
- */
-
-struct mmc_fixup {
- /* CID-specific fields. */
- const char *name;
-
- /* Valid revision range */
- u64 rev_start, rev_end;
-
- unsigned int manfid;
- unsigned short oemid;
-
- /* SDIO-specfic fields. You can use SDIO_ANY_ID here of course */
- u16 cis_vendor, cis_device;
-
- void (*vendor_fixup)(struct mmc_card *card, int data);
- int data;
-};
-
-#define CID_MANFID_ANY (-1u)
-#define CID_OEMID_ANY ((unsigned short) -1)
-#define CID_NAME_ANY (NULL)
-
-#define END_FIXUP { 0 }
-
-#define _FIXUP_EXT(_name, _manfid, _oemid, _rev_start, _rev_end, \
- _cis_vendor, _cis_device, \
- _fixup, _data) \
- { \
- .name = (_name), \
- .manfid = (_manfid), \
- .oemid = (_oemid), \
- .rev_start = (_rev_start), \
- .rev_end = (_rev_end), \
- .cis_vendor = (_cis_vendor), \
- .cis_device = (_cis_device), \
- .vendor_fixup = (_fixup), \
- .data = (_data), \
- }
-
-#define MMC_FIXUP_REV(_name, _manfid, _oemid, _rev_start, _rev_end, \
- _fixup, _data) \
- _FIXUP_EXT(_name, _manfid, \
- _oemid, _rev_start, _rev_end, \
- SDIO_ANY_ID, SDIO_ANY_ID, \
- _fixup, _data) \
-
-#define MMC_FIXUP(_name, _manfid, _oemid, _fixup, _data) \
- MMC_FIXUP_REV(_name, _manfid, _oemid, 0, -1ull, _fixup, _data)
-
-#define SDIO_FIXUP(_vendor, _device, _fixup, _data) \
- _FIXUP_EXT(CID_NAME_ANY, CID_MANFID_ANY, \
- CID_OEMID_ANY, 0, -1ull, \
- _vendor, _device, \
- _fixup, _data) \
-
-#define cid_rev(hwrev, fwrev, year, month) \
- (((u64) hwrev) << 40 | \
- ((u64) fwrev) << 32 | \
- ((u64) year) << 16 | \
- ((u64) month))
-
-#define cid_rev_card(card) \
- cid_rev(card->cid.hwrev, \
- card->cid.fwrev, \
- card->cid.year, \
- card->cid.month)
-
-/*
- * Unconditionally quirk add/remove.
- */
-
-static inline void __maybe_unused add_quirk(struct mmc_card *card, int data)
-{
- card->quirks |= data;
-}
-
-static inline void __maybe_unused remove_quirk(struct mmc_card *card, int data)
-{
- card->quirks &= ~data;
-}
-
-#define mmc_card_mmc(c) ((c)->type == MMC_TYPE_MMC)
-#define mmc_card_sd(c) ((c)->type == MMC_TYPE_SD)
-#define mmc_card_sdio(c) ((c)->type == MMC_TYPE_SDIO)
-
-#define mmc_card_present(c) ((c)->state & MMC_STATE_PRESENT)
-#define mmc_card_readonly(c) ((c)->state & MMC_STATE_READONLY)
-#define mmc_card_highspeed(c) ((c)->state & MMC_STATE_HIGHSPEED)
-#define mmc_card_hs200(c) ((c)->state & MMC_STATE_HIGHSPEED_200)
-#define mmc_card_blockaddr(c) ((c)->state & MMC_STATE_BLOCKADDR)
-#define mmc_card_ddr_mode(c) ((c)->state & MMC_STATE_HIGHSPEED_DDR)
-#define mmc_card_uhs(c) ((c)->state & MMC_STATE_ULTRAHIGHSPEED)
-#define mmc_sd_card_uhs(c) ((c)->state & MMC_STATE_ULTRAHIGHSPEED)
-#define mmc_card_ext_capacity(c) ((c)->state & MMC_CARD_SDXC)
-#define mmc_card_removed(c) ((c) && ((c)->state & MMC_CARD_REMOVED))
-#define mmc_card_is_sleep(c) ((c)->state & MMC_STATE_SLEEP)
-
-#define mmc_card_set_present(c) ((c)->state |= MMC_STATE_PRESENT)
-#define mmc_card_set_readonly(c) ((c)->state |= MMC_STATE_READONLY)
-#define mmc_card_set_highspeed(c) ((c)->state |= MMC_STATE_HIGHSPEED)
-#define mmc_card_set_hs200(c) ((c)->state |= MMC_STATE_HIGHSPEED_200)
-#define mmc_card_set_blockaddr(c) ((c)->state |= MMC_STATE_BLOCKADDR)
-#define mmc_card_set_ddr_mode(c) ((c)->state |= MMC_STATE_HIGHSPEED_DDR)
-#define mmc_card_set_uhs(c) ((c)->state |= MMC_STATE_ULTRAHIGHSPEED)
-#define mmc_sd_card_set_uhs(c) ((c)->state |= MMC_STATE_ULTRAHIGHSPEED)
-#define mmc_card_set_ext_capacity(c) ((c)->state |= MMC_CARD_SDXC)
-#define mmc_card_set_removed(c) ((c)->state |= MMC_CARD_REMOVED)
-#define mmc_card_set_sleep(c) ((c)->state |= MMC_STATE_SLEEP)
-
-#define mmc_card_clr_sleep(c) ((c)->state &= ~MMC_STATE_SLEEP)
-/*
- * Quirk add/remove for MMC products.
- */
-
-static inline void __maybe_unused add_quirk_mmc(struct mmc_card *card, int data)
-{
- if (mmc_card_mmc(card))
- card->quirks |= data;
-}
-
-static inline void __maybe_unused remove_quirk_mmc(struct mmc_card *card,
- int data)
-{
- if (mmc_card_mmc(card))
- card->quirks &= ~data;
-}
-
-/*
- * Quirk add/remove for SD products.
- */
-
-static inline void __maybe_unused add_quirk_sd(struct mmc_card *card, int data)
-{
- if (mmc_card_sd(card))
- card->quirks |= data;
-}
-
-static inline void __maybe_unused remove_quirk_sd(struct mmc_card *card,
- int data)
-{
- if (mmc_card_sd(card))
- card->quirks &= ~data;
-}
-
-static inline int mmc_card_lenient_fn0(const struct mmc_card *c)
-{
- return c->quirks & MMC_QUIRK_LENIENT_FN0;
-}
-
-static inline int mmc_blksz_for_byte_mode(const struct mmc_card *c)
-{
- return c->quirks & MMC_QUIRK_BLKSZ_FOR_BYTE_MODE;
-}
-
-static inline int mmc_card_disable_cd(const struct mmc_card *c)
-{
- return c->quirks & MMC_QUIRK_DISABLE_CD;
-}
-
-static inline int mmc_card_nonstd_func_interface(const struct mmc_card *c)
-{
- return c->quirks & MMC_QUIRK_NONSTD_FUNC_IF;
-}
-
-static inline int mmc_card_broken_byte_mode_512(const struct mmc_card *c)
-{
- return c->quirks & MMC_QUIRK_BROKEN_BYTE_MODE_512;
-}
-
-static inline int mmc_card_long_read_time(const struct mmc_card *c)
-{
- return c->quirks & MMC_QUIRK_LONG_READ_TIME;
-}
-
-#define mmc_card_name(c) ((c)->cid.prod_name)
-#define mmc_card_id(c) (dev_name(&(c)->dev))
-
-#define mmc_dev_to_card(d) container_of(d, struct mmc_card, dev)
-
-#define mmc_list_to_card(l) container_of(l, struct mmc_card, node)
-#define mmc_get_drvdata(c) dev_get_drvdata(&(c)->dev)
-#define mmc_set_drvdata(c,d) dev_set_drvdata(&(c)->dev, d)
-
-/*
- * MMC device driver (e.g., Flash card, I/O card...)
- */
-struct mmc_driver {
- struct device_driver drv;
- int (*probe)(struct mmc_card *);
- void (*remove)(struct mmc_card *);
- int (*suspend)(struct mmc_card *);
- int (*resume)(struct mmc_card *);
-};
-
-extern int mmc_register_driver(struct mmc_driver *);
-extern void mmc_unregister_driver(struct mmc_driver *);
-
-extern void mmc_fixup_device(struct mmc_card *card,
- const struct mmc_fixup *table);
-
-#endif /* LINUX_MMC_CARD_H */
diff --git a/ANDROID_3.4.5/include/linux/mmc/cd-gpio.h b/ANDROID_3.4.5/include/linux/mmc/cd-gpio.h
deleted file mode 100644
index cefaba03..00000000
--- a/ANDROID_3.4.5/include/linux/mmc/cd-gpio.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Generic GPIO card-detect helper header
- *
- * Copyright (C) 2011, Guennadi Liakhovetski <g.liakhovetski@gmx.de>
- *
- * 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.
- */
-
-#ifndef MMC_CD_GPIO_H
-#define MMC_CD_GPIO_H
-
-struct mmc_host;
-int mmc_cd_gpio_request(struct mmc_host *host, unsigned int gpio);
-void mmc_cd_gpio_free(struct mmc_host *host);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mmc/core.h b/ANDROID_3.4.5/include/linux/mmc/core.h
deleted file mode 100644
index 1b431c72..00000000
--- a/ANDROID_3.4.5/include/linux/mmc/core.h
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
- * linux/include/linux/mmc/core.h
- *
- * 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.
- */
-#ifndef LINUX_MMC_CORE_H
-#define LINUX_MMC_CORE_H
-
-#include <linux/interrupt.h>
-#include <linux/completion.h>
-
-struct request;
-struct mmc_data;
-struct mmc_request;
-
-struct mmc_command {
- u32 opcode;
- u32 arg;
- u32 resp[4];
- unsigned int flags; /* expected response type */
-#define MMC_RSP_PRESENT (1 << 0)
-#define MMC_RSP_136 (1 << 1) /* 136 bit response */
-#define MMC_RSP_CRC (1 << 2) /* expect valid crc */
-#define MMC_RSP_BUSY (1 << 3) /* card may send busy */
-#define MMC_RSP_OPCODE (1 << 4) /* response contains opcode */
-
-#define MMC_CMD_MASK (3 << 5) /* non-SPI command type */
-#define MMC_CMD_AC (0 << 5)
-#define MMC_CMD_ADTC (1 << 5)
-#define MMC_CMD_BC (2 << 5)
-#define MMC_CMD_BCR (3 << 5)
-
-#define MMC_RSP_SPI_S1 (1 << 7) /* one status byte */
-#define MMC_RSP_SPI_S2 (1 << 8) /* second byte */
-#define MMC_RSP_SPI_B4 (1 << 9) /* four data bytes */
-#define MMC_RSP_SPI_BUSY (1 << 10) /* card may send busy */
-
-/*
- * These are the native response types, and correspond to valid bit
- * patterns of the above flags. One additional valid pattern
- * is all zeros, which means we don't expect a response.
- */
-#define MMC_RSP_NONE (0)
-#define MMC_RSP_R1 (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE)
-#define MMC_RSP_R1B (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE|MMC_RSP_BUSY)
-#define MMC_RSP_R2 (MMC_RSP_PRESENT|MMC_RSP_136|MMC_RSP_CRC)
-#define MMC_RSP_R3 (MMC_RSP_PRESENT)
-#define MMC_RSP_R4 (MMC_RSP_PRESENT)
-#define MMC_RSP_R5 (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE)
-#define MMC_RSP_R6 (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE)
-#define MMC_RSP_R7 (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE)
-
-#define mmc_resp_type(cmd) ((cmd)->flags & (MMC_RSP_PRESENT|MMC_RSP_136|MMC_RSP_CRC|MMC_RSP_BUSY|MMC_RSP_OPCODE))
-
-/*
- * These are the SPI response types for MMC, SD, and SDIO cards.
- * Commands return R1, with maybe more info. Zero is an error type;
- * callers must always provide the appropriate MMC_RSP_SPI_Rx flags.
- */
-#define MMC_RSP_SPI_R1 (MMC_RSP_SPI_S1)
-#define MMC_RSP_SPI_R1B (MMC_RSP_SPI_S1|MMC_RSP_SPI_BUSY)
-#define MMC_RSP_SPI_R2 (MMC_RSP_SPI_S1|MMC_RSP_SPI_S2)
-#define MMC_RSP_SPI_R3 (MMC_RSP_SPI_S1|MMC_RSP_SPI_B4)
-#define MMC_RSP_SPI_R4 (MMC_RSP_SPI_S1|MMC_RSP_SPI_B4)
-#define MMC_RSP_SPI_R5 (MMC_RSP_SPI_S1|MMC_RSP_SPI_S2)
-#define MMC_RSP_SPI_R7 (MMC_RSP_SPI_S1|MMC_RSP_SPI_B4)
-
-#define mmc_spi_resp_type(cmd) ((cmd)->flags & \
- (MMC_RSP_SPI_S1|MMC_RSP_SPI_BUSY|MMC_RSP_SPI_S2|MMC_RSP_SPI_B4))
-
-/*
- * These are the command types.
- */
-#define mmc_cmd_type(cmd) ((cmd)->flags & MMC_CMD_MASK)
-
- unsigned int retries; /* max number of retries */
- unsigned int error; /* command error */
-
-/*
- * Standard errno values are used for errors, but some have specific
- * meaning in the MMC layer:
- *
- * ETIMEDOUT Card took too long to respond
- * EILSEQ Basic format problem with the received or sent data
- * (e.g. CRC check failed, incorrect opcode in response
- * or bad end bit)
- * EINVAL Request cannot be performed because of restrictions
- * in hardware and/or the driver
- * ENOMEDIUM Host can determine that the slot is empty and is
- * actively failing requests
- */
-
- unsigned int cmd_timeout_ms; /* in milliseconds */
-
- struct mmc_data *data; /* data segment associated with cmd */
- struct mmc_request *mrq; /* associated request */
-};
-
-struct mmc_data {
- unsigned int timeout_ns; /* data timeout (in ns, max 80ms) */
- unsigned int timeout_clks; /* data timeout (in clocks) */
- unsigned int blksz; /* data block size */
- unsigned int blocks; /* number of blocks */
- unsigned int error; /* data error */
- unsigned int flags;
-
-#define MMC_DATA_WRITE (1 << 8)
-#define MMC_DATA_READ (1 << 9)
-#define MMC_DATA_STREAM (1 << 10)
-
- unsigned int bytes_xfered;
-
- struct mmc_command *stop; /* stop command */
- struct mmc_request *mrq; /* associated request */
-
- unsigned int sg_len; /* size of scatter list */
- struct scatterlist *sg; /* I/O scatter list */
- s32 host_cookie; /* host private data */
-};
-
-struct mmc_request {
- struct mmc_command *sbc; /* SET_BLOCK_COUNT for multiblock */
- struct mmc_command *cmd;
- struct mmc_data *data;
- struct mmc_command *stop;
-
- struct completion completion;
- void (*done)(struct mmc_request *);/* completion function */
-};
-
-struct mmc_host;
-struct mmc_card;
-struct mmc_async_req;
-
-extern struct mmc_async_req *mmc_start_req(struct mmc_host *,
- struct mmc_async_req *, int *);
-extern int mmc_interrupt_hpi(struct mmc_card *);
-extern void mmc_wait_for_req(struct mmc_host *, struct mmc_request *);
-extern int mmc_wait_for_cmd(struct mmc_host *, struct mmc_command *, int);
-extern int mmc_app_cmd(struct mmc_host *, struct mmc_card *);
-extern int mmc_wait_for_app_cmd(struct mmc_host *, struct mmc_card *,
- struct mmc_command *, int);
-extern int mmc_switch(struct mmc_card *, u8, u8, u8, unsigned int);
-
-#define MMC_ERASE_ARG 0x00000000
-#define MMC_SECURE_ERASE_ARG 0x80000000
-#define MMC_TRIM_ARG 0x00000001
-#define MMC_DISCARD_ARG 0x00000003
-#define MMC_SECURE_TRIM1_ARG 0x80000001
-#define MMC_SECURE_TRIM2_ARG 0x80008000
-
-#define MMC_SECURE_ARGS 0x80000000
-#define MMC_TRIM_ARGS 0x00008001
-
-extern int mmc_erase(struct mmc_card *card, unsigned int from, unsigned int nr,
- unsigned int arg);
-extern int mmc_can_erase(struct mmc_card *card);
-extern int mmc_can_trim(struct mmc_card *card);
-extern int mmc_can_discard(struct mmc_card *card);
-extern int mmc_can_sanitize(struct mmc_card *card);
-extern int mmc_can_secure_erase_trim(struct mmc_card *card);
-extern int mmc_erase_group_aligned(struct mmc_card *card, unsigned int from,
- unsigned int nr);
-extern unsigned int mmc_calc_max_discard(struct mmc_card *card);
-
-extern int mmc_set_blocklen(struct mmc_card *card, unsigned int blocklen);
-extern int mmc_hw_reset(struct mmc_host *host);
-extern int mmc_hw_reset_check(struct mmc_host *host);
-extern int mmc_can_reset(struct mmc_card *card);
-
-extern void mmc_set_data_timeout(struct mmc_data *, const struct mmc_card *);
-extern unsigned int mmc_align_data_size(struct mmc_card *, unsigned int);
-
-extern int __mmc_claim_host(struct mmc_host *host, atomic_t *abort);
-extern void mmc_release_host(struct mmc_host *host);
-extern int mmc_try_claim_host(struct mmc_host *host);
-
-extern int mmc_flush_cache(struct mmc_card *);
-
-extern int mmc_detect_card_removed(struct mmc_host *host);
-
-/**
- * mmc_claim_host - exclusively claim a host
- * @host: mmc host to claim
- *
- * Claim a host for a set of operations.
- */
-static inline void mmc_claim_host(struct mmc_host *host)
-{
- __mmc_claim_host(host, NULL);
-}
-
-extern u32 mmc_vddrange_to_ocrmask(int vdd_min, int vdd_max);
-
-#endif /* LINUX_MMC_CORE_H */
diff --git a/ANDROID_3.4.5/include/linux/mmc/dw_mmc.h b/ANDROID_3.4.5/include/linux/mmc/dw_mmc.h
deleted file mode 100644
index 8f66e28f..00000000
--- a/ANDROID_3.4.5/include/linux/mmc/dw_mmc.h
+++ /dev/null
@@ -1,253 +0,0 @@
-/*
- * Synopsys DesignWare Multimedia Card Interface driver
- * (Based on NXP driver for lpc 31xx)
- *
- * Copyright (C) 2009 NXP Semiconductors
- * Copyright (C) 2009, 2010 Imagination Technologies 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; either version 2 of the License, or
- * (at your option) any later version.
- */
-
-#ifndef LINUX_MMC_DW_MMC_H
-#define LINUX_MMC_DW_MMC_H
-
-#include <linux/scatterlist.h>
-
-#define MAX_MCI_SLOTS 2
-
-enum dw_mci_state {
- STATE_IDLE = 0,
- STATE_SENDING_CMD,
- STATE_SENDING_DATA,
- STATE_DATA_BUSY,
- STATE_SENDING_STOP,
- STATE_DATA_ERROR,
-};
-
-enum {
- EVENT_CMD_COMPLETE = 0,
- EVENT_XFER_COMPLETE,
- EVENT_DATA_COMPLETE,
- EVENT_DATA_ERROR,
- EVENT_XFER_ERROR
-};
-
-struct mmc_data;
-
-/**
- * struct dw_mci - MMC controller state shared between all slots
- * @lock: Spinlock protecting the queue and associated data.
- * @regs: Pointer to MMIO registers.
- * @sg: Scatterlist entry currently being processed by PIO code, if any.
- * @sg_miter: PIO mapping scatterlist iterator.
- * @cur_slot: The slot which is currently using the controller.
- * @mrq: The request currently being processed on @cur_slot,
- * or NULL if the controller is idle.
- * @cmd: The command currently being sent to the card, or NULL.
- * @data: The data currently being transferred, or NULL if no data
- * transfer is in progress.
- * @use_dma: Whether DMA channel is initialized or not.
- * @using_dma: Whether DMA is in use for the current transfer.
- * @sg_dma: Bus address of DMA buffer.
- * @sg_cpu: Virtual address of DMA buffer.
- * @dma_ops: Pointer to platform-specific DMA callbacks.
- * @cmd_status: Snapshot of SR taken upon completion of the current
- * command. Only valid when EVENT_CMD_COMPLETE is pending.
- * @data_status: Snapshot of SR taken upon completion of the current
- * data transfer. Only valid when EVENT_DATA_COMPLETE or
- * EVENT_DATA_ERROR is pending.
- * @stop_cmdr: Value to be loaded into CMDR when the stop command is
- * to be sent.
- * @dir_status: Direction of current transfer.
- * @tasklet: Tasklet running the request state machine.
- * @card_tasklet: Tasklet handling card detect.
- * @pending_events: Bitmask of events flagged by the interrupt handler
- * to be processed by the tasklet.
- * @completed_events: Bitmask of events which the state machine has
- * processed.
- * @state: Tasklet state.
- * @queue: List of slots waiting for access to the controller.
- * @bus_hz: The rate of @mck in Hz. This forms the basis for MMC bus
- * rate and timeout calculations.
- * @current_speed: Configured rate of the controller.
- * @num_slots: Number of slots available.
- * @verid: Denote Version ID.
- * @data_offset: Set the offset of DATA register according to VERID.
- * @dev: Device associated with the MMC controller.
- * @pdata: Platform data associated with the MMC controller.
- * @slot: Slots sharing this MMC controller.
- * @fifo_depth: depth of FIFO.
- * @data_shift: log2 of FIFO item size.
- * @part_buf_start: Start index in part_buf.
- * @part_buf_count: Bytes of partial data in part_buf.
- * @part_buf: Simple buffer for partial fifo reads/writes.
- * @push_data: Pointer to FIFO push function.
- * @pull_data: Pointer to FIFO pull function.
- * @quirks: Set of quirks that apply to specific versions of the IP.
- * @irq_flags: The flags to be passed to request_irq.
- * @irq: The irq value to be passed to request_irq.
- *
- * Locking
- * =======
- *
- * @lock is a softirq-safe spinlock protecting @queue as well as
- * @cur_slot, @mrq and @state. These must always be updated
- * at the same time while holding @lock.
- *
- * The @mrq field of struct dw_mci_slot is also protected by @lock,
- * and must always be written at the same time as the slot is added to
- * @queue.
- *
- * @pending_events and @completed_events are accessed using atomic bit
- * operations, so they don't need any locking.
- *
- * None of the fields touched by the interrupt handler need any
- * locking. However, ordering is important: Before EVENT_DATA_ERROR or
- * EVENT_DATA_COMPLETE is set in @pending_events, all data-related
- * interrupts must be disabled and @data_status updated with a
- * snapshot of SR. Similarly, before EVENT_CMD_COMPLETE is set, the
- * CMDRDY interrupt must be disabled and @cmd_status updated with a
- * snapshot of SR, and before EVENT_XFER_COMPLETE can be set, the
- * bytes_xfered field of @data must be written. This is ensured by
- * using barriers.
- */
-struct dw_mci {
- spinlock_t lock;
- void __iomem *regs;
-
- struct scatterlist *sg;
- struct sg_mapping_iter sg_miter;
-
- struct dw_mci_slot *cur_slot;
- struct mmc_request *mrq;
- struct mmc_command *cmd;
- struct mmc_data *data;
-
- /* DMA interface members*/
- int use_dma;
- int using_dma;
-
- dma_addr_t sg_dma;
- void *sg_cpu;
- struct dw_mci_dma_ops *dma_ops;
-#ifdef CONFIG_MMC_DW_IDMAC
- unsigned int ring_size;
-#else
- struct dw_mci_dma_data *dma_data;
-#endif
- u32 cmd_status;
- u32 data_status;
- u32 stop_cmdr;
- u32 dir_status;
- struct tasklet_struct tasklet;
- struct work_struct card_work;
- unsigned long pending_events;
- unsigned long completed_events;
- enum dw_mci_state state;
- struct list_head queue;
-
- u32 bus_hz;
- u32 current_speed;
- u32 num_slots;
- u32 fifoth_val;
- u16 verid;
- u16 data_offset;
- struct device dev;
- struct dw_mci_board *pdata;
- struct dw_mci_slot *slot[MAX_MCI_SLOTS];
-
- /* FIFO push and pull */
- int fifo_depth;
- int data_shift;
- u8 part_buf_start;
- u8 part_buf_count;
- union {
- u16 part_buf16;
- u32 part_buf32;
- u64 part_buf;
- };
- void (*push_data)(struct dw_mci *host, void *buf, int cnt);
- void (*pull_data)(struct dw_mci *host, void *buf, int cnt);
-
- /* Workaround flags */
- u32 quirks;
-
- struct regulator *vmmc; /* Power regulator */
- unsigned long irq_flags; /* IRQ flags */
- unsigned int irq;
-};
-
-/* DMA ops for Internal/External DMAC interface */
-struct dw_mci_dma_ops {
- /* DMA Ops */
- int (*init)(struct dw_mci *host);
- void (*start)(struct dw_mci *host, unsigned int sg_len);
- void (*complete)(struct dw_mci *host);
- void (*stop)(struct dw_mci *host);
- void (*cleanup)(struct dw_mci *host);
- void (*exit)(struct dw_mci *host);
-};
-
-/* IP Quirks/flags. */
-/* DTO fix for command transmission with IDMAC configured */
-#define DW_MCI_QUIRK_IDMAC_DTO BIT(0)
-/* delay needed between retries on some 2.11a implementations */
-#define DW_MCI_QUIRK_RETRY_DELAY BIT(1)
-/* High Speed Capable - Supports HS cards (up to 50MHz) */
-#define DW_MCI_QUIRK_HIGHSPEED BIT(2)
-/* Unreliable card detection */
-#define DW_MCI_QUIRK_BROKEN_CARD_DETECTION BIT(3)
-
-
-struct dma_pdata;
-
-struct block_settings {
- unsigned short max_segs; /* see blk_queue_max_segments */
- unsigned int max_blk_size; /* maximum size of one mmc block */
- unsigned int max_blk_count; /* maximum number of blocks in one req*/
- unsigned int max_req_size; /* maximum number of bytes in one req*/
- unsigned int max_seg_size; /* see blk_queue_max_segment_size */
-};
-
-/* Board platform data */
-struct dw_mci_board {
- u32 num_slots;
-
- u32 quirks; /* Workaround / Quirk flags */
- unsigned int bus_hz; /* Bus speed */
-
- unsigned int caps; /* Capabilities */
- unsigned int caps2; /* More capabilities */
- /*
- * Override fifo depth. If 0, autodetect it from the FIFOTH register,
- * but note that this may not be reliable after a bootloader has used
- * it.
- */
- unsigned int fifo_depth;
-
- /* delay in mS before detecting cards after interrupt */
- u32 detect_delay_ms;
-
- int (*init)(u32 slot_id, irq_handler_t , void *);
- int (*get_ro)(u32 slot_id);
- int (*get_cd)(u32 slot_id);
- int (*get_ocr)(u32 slot_id);
- int (*get_bus_wd)(u32 slot_id);
- /*
- * Enable power to selected slot and set voltage to desired level.
- * Voltage levels are specified using MMC_VDD_xxx defines defined
- * in linux/mmc/host.h file.
- */
- void (*setpower)(u32 slot_id, u32 volt);
- void (*exit)(u32 slot_id);
- void (*select_slot)(u32 slot_id);
-
- struct dw_mci_dma_ops *dma_ops;
- struct dma_pdata *data;
- struct block_settings *blk_settings;
-};
-
-#endif /* LINUX_MMC_DW_MMC_H */
diff --git a/ANDROID_3.4.5/include/linux/mmc/host.h b/ANDROID_3.4.5/include/linux/mmc/host.h
deleted file mode 100644
index 39c2def3..00000000
--- a/ANDROID_3.4.5/include/linux/mmc/host.h
+++ /dev/null
@@ -1,486 +0,0 @@
-/*
- * linux/include/linux/mmc/host.h
- *
- * 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.
- *
- * Host driver specific definitions.
- */
-#ifndef LINUX_MMC_HOST_H
-#define LINUX_MMC_HOST_H
-
-#include <linux/leds.h>
-#include <linux/sched.h>
-#include <linux/device.h>
-#include <linux/fault-inject.h>
-#include <linux/wakelock.h>
-#include <linux/semaphore.h>
-
-#include <linux/mmc/core.h>
-#include <linux/mmc/pm.h>
-
-struct mmc_ios {
- unsigned int clock; /* clock rate */
- unsigned short vdd;
-
-/* vdd stores the bit number of the selected voltage range from below. */
-
- unsigned char bus_mode; /* command output mode */
-
-#define MMC_BUSMODE_OPENDRAIN 1
-#define MMC_BUSMODE_PUSHPULL 2
-
- unsigned char chip_select; /* SPI chip select */
-
-#define MMC_CS_DONTCARE 0
-#define MMC_CS_HIGH 1
-#define MMC_CS_LOW 2
-
- unsigned char power_mode; /* power supply mode */
-
-#define MMC_POWER_OFF 0
-#define MMC_POWER_UP 1
-#define MMC_POWER_ON 2
-
- unsigned char bus_width; /* data bus width */
-
-#define MMC_BUS_WIDTH_1 0
-#define MMC_BUS_WIDTH_4 2
-#define MMC_BUS_WIDTH_8 3
-
- unsigned char timing; /* timing specification used */
-
-#define MMC_TIMING_LEGACY 0
-#define MMC_TIMING_MMC_HS 1
-#define MMC_TIMING_SD_HS 2
-#define MMC_TIMING_UHS_SDR12 MMC_TIMING_LEGACY
-#define MMC_TIMING_UHS_SDR25 MMC_TIMING_SD_HS
-#define MMC_TIMING_UHS_SDR50 3
-#define MMC_TIMING_UHS_SDR104 4
-#define MMC_TIMING_UHS_DDR50 5
-#define MMC_TIMING_MMC_HS200 6
-
-#define MMC_SDR_MODE 0
-#define MMC_1_2V_DDR_MODE 1
-#define MMC_1_8V_DDR_MODE 2
-#define MMC_1_2V_SDR_MODE 3
-#define MMC_1_8V_SDR_MODE 4
-
- unsigned char signal_voltage; /* signalling voltage (1.8V or 3.3V) */
-
-#define MMC_SIGNAL_VOLTAGE_330 0
-#define MMC_SIGNAL_VOLTAGE_180 1
-#define MMC_SIGNAL_VOLTAGE_120 2
-
- unsigned char drv_type; /* driver type (A, B, C, D) */
-
-#define MMC_SET_DRIVER_TYPE_B 0
-#define MMC_SET_DRIVER_TYPE_A 1
-#define MMC_SET_DRIVER_TYPE_C 2
-#define MMC_SET_DRIVER_TYPE_D 3
-};
-
-struct mmc_host_ops {
- /*
- * 'enable' is called when the host is claimed and 'disable' is called
- * when the host is released. 'enable' and 'disable' are deprecated.
- */
- int (*enable)(struct mmc_host *host);
- int (*disable)(struct mmc_host *host);
- /*
- * It is optional for the host to implement pre_req and post_req in
- * order to support double buffering of requests (prepare one
- * request while another request is active).
- * pre_req() must always be followed by a post_req().
- * To undo a call made to pre_req(), call post_req() with
- * a nonzero err condition.
- */
- void (*post_req)(struct mmc_host *host, struct mmc_request *req,
- int err);
- void (*pre_req)(struct mmc_host *host, struct mmc_request *req,
- bool is_first_req);
- void (*request)(struct mmc_host *host, struct mmc_request *req);
- /*
- * Avoid calling these three functions too often or in a "fast path",
- * since underlaying controller might implement them in an expensive
- * and/or slow way.
- *
- * Also note that these functions might sleep, so don't call them
- * in the atomic contexts!
- *
- * Return values for the get_ro callback should be:
- * 0 for a read/write card
- * 1 for a read-only card
- * -ENOSYS when not supported (equal to NULL callback)
- * or a negative errno value when something bad happened
- *
- * Return values for the get_cd callback should be:
- * 0 for a absent card
- * 1 for a present card
- * -ENOSYS when not supported (equal to NULL callback)
- * or a negative errno value when something bad happened
- */
- void (*set_ios)(struct mmc_host *host, struct mmc_ios *ios);
- int (*get_ro)(struct mmc_host *host);
- int (*get_cd)(struct mmc_host *host);
- int (*get_slot_status)(struct mmc_host *host);
- void (*dump_host_regs)(struct mmc_host *host);
-
- void (*enable_sdio_irq)(struct mmc_host *host, int enable);
-
- /* optional callback for HC quirks */
- void (*init_card)(struct mmc_host *host, struct mmc_card *card);
-
- int (*start_signal_voltage_switch)(struct mmc_host *host, struct mmc_ios *ios);
-
- /* The tuning command opcode value is different for SD and eMMC cards */
- int (*execute_tuning)(struct mmc_host *host, u32 opcode);
- void (*enable_preset_value)(struct mmc_host *host, bool enable);
- int (*select_drive_strength)(unsigned int max_dtr, int host_drv, int card_drv);
- void (*hw_reset)(struct mmc_host *host);
-};
-
-struct mmc_card;
-struct device;
-
-struct mmc_async_req {
- /* active mmc request */
- struct mmc_request *mrq;
- /*
- * Check error status of completed mmc request.
- * Returns 0 if success otherwise non zero.
- */
- int (*err_check) (struct mmc_card *, struct mmc_async_req *);
-};
-
-struct mmc_hotplug {
- unsigned int irq;
- void *handler_priv;
-};
-
-struct mmc_host {
- struct device *parent;
- struct device class_dev;
- int index;
- const struct mmc_host_ops *ops;
- unsigned int f_min;
- unsigned int f_max;
- unsigned int f_init;
- u32 ocr_avail;
- u32 ocr_avail_sdio; /* SDIO-specific OCR */
- u32 ocr_avail_sd; /* SD-specific OCR */
- u32 ocr_avail_mmc; /* MMC-specific OCR */
- struct notifier_block pm_notify;
-
-#define MMC_VDD_165_195 0x00000080 /* VDD voltage 1.65 - 1.95 */
-#define MMC_VDD_20_21 0x00000100 /* VDD voltage 2.0 ~ 2.1 */
-#define MMC_VDD_21_22 0x00000200 /* VDD voltage 2.1 ~ 2.2 */
-#define MMC_VDD_22_23 0x00000400 /* VDD voltage 2.2 ~ 2.3 */
-#define MMC_VDD_23_24 0x00000800 /* VDD voltage 2.3 ~ 2.4 */
-#define MMC_VDD_24_25 0x00001000 /* VDD voltage 2.4 ~ 2.5 */
-#define MMC_VDD_25_26 0x00002000 /* VDD voltage 2.5 ~ 2.6 */
-#define MMC_VDD_26_27 0x00004000 /* VDD voltage 2.6 ~ 2.7 */
-#define MMC_VDD_27_28 0x00008000 /* VDD voltage 2.7 ~ 2.8 */
-#define MMC_VDD_28_29 0x00010000 /* VDD voltage 2.8 ~ 2.9 */
-#define MMC_VDD_29_30 0x00020000 /* VDD voltage 2.9 ~ 3.0 */
-#define MMC_VDD_30_31 0x00040000 /* VDD voltage 3.0 ~ 3.1 */
-#define MMC_VDD_31_32 0x00080000 /* VDD voltage 3.1 ~ 3.2 */
-#define MMC_VDD_32_33 0x00100000 /* VDD voltage 3.2 ~ 3.3 */
-#define MMC_VDD_33_34 0x00200000 /* VDD voltage 3.3 ~ 3.4 */
-#define MMC_VDD_34_35 0x00400000 /* VDD voltage 3.4 ~ 3.5 */
-#define MMC_VDD_35_36 0x00800000 /* VDD voltage 3.5 ~ 3.6 */
-
- unsigned long caps; /* Host capabilities */
-
-#define MMC_CAP_4_BIT_DATA (1 << 0) /* Can the host do 4 bit transfers */
-#define MMC_CAP_MMC_HIGHSPEED (1 << 1) /* Can do MMC high-speed timing */
-#define MMC_CAP_SD_HIGHSPEED (1 << 2) /* Can do SD high-speed timing */
-#define MMC_CAP_SDIO_IRQ (1 << 3) /* Can signal pending SDIO IRQs */
-#define MMC_CAP_SPI (1 << 4) /* Talks only SPI protocols */
-#define MMC_CAP_NEEDS_POLL (1 << 5) /* Needs polling for card-detection */
-#define MMC_CAP_8_BIT_DATA (1 << 6) /* Can the host do 8 bit transfers */
-
-#define MMC_CAP_NONREMOVABLE (1 << 8) /* Nonremovable e.g. eMMC */
-#define MMC_CAP_WAIT_WHILE_BUSY (1 << 9) /* Waits while card is busy */
-#define MMC_CAP_ERASE (1 << 10) /* Allow erase/trim commands */
-#define MMC_CAP_1_8V_DDR (1 << 11) /* can support */
- /* DDR mode at 1.8V */
-#define MMC_CAP_1_2V_DDR (1 << 12) /* can support */
- /* DDR mode at 1.2V */
-#define MMC_CAP_POWER_OFF_CARD (1 << 13) /* Can power off after boot */
-#define MMC_CAP_BUS_WIDTH_TEST (1 << 14) /* CMD14/CMD19 bus width ok */
-#define MMC_CAP_UHS_SDR12 (1 << 15) /* Host supports UHS SDR12 mode */
-#define MMC_CAP_UHS_SDR25 (1 << 16) /* Host supports UHS SDR25 mode */
-#define MMC_CAP_UHS_SDR50 (1 << 17) /* Host supports UHS SDR50 mode */
-#define MMC_CAP_UHS_SDR104 (1 << 18) /* Host supports UHS SDR104 mode */
-#define MMC_CAP_UHS_DDR50 (1 << 19) /* Host supports UHS DDR50 mode */
-#define MMC_CAP_SET_XPC_330 (1 << 20) /* Host supports >150mA current at 3.3V */
-#define MMC_CAP_SET_XPC_300 (1 << 21) /* Host supports >150mA current at 3.0V */
-#define MMC_CAP_SET_XPC_180 (1 << 22) /* Host supports >150mA current at 1.8V */
-#define MMC_CAP_DRIVER_TYPE_A (1 << 23) /* Host supports Driver Type A */
-#define MMC_CAP_DRIVER_TYPE_C (1 << 24) /* Host supports Driver Type C */
-#define MMC_CAP_DRIVER_TYPE_D (1 << 25) /* Host supports Driver Type D */
-#define MMC_CAP_MAX_CURRENT_200 (1 << 26) /* Host max current limit is 200mA */
-#define MMC_CAP_MAX_CURRENT_400 (1 << 27) /* Host max current limit is 400mA */
-#define MMC_CAP_MAX_CURRENT_600 (1 << 28) /* Host max current limit is 600mA */
-#define MMC_CAP_MAX_CURRENT_800 (1 << 29) /* Host max current limit is 800mA */
-#define MMC_CAP_CMD23 (1 << 30) /* CMD23 supported. */
-#define MMC_CAP_HW_RESET (1 << 31) /* Hardware reset */
-
- unsigned int caps2; /* More host capabilities */
-
-#define MMC_CAP2_BOOTPART_NOACC (1 << 0) /* Boot partition no access */
-#define MMC_CAP2_CACHE_CTRL (1 << 1) /* Allow cache control */
-#define MMC_CAP2_POWEROFF_NOTIFY (1 << 2) /* Notify poweroff supported */
-#define MMC_CAP2_NO_MULTI_READ (1 << 3) /* Multiblock reads don't work */
-#define MMC_CAP2_NO_SLEEP_CMD (1 << 4) /* Don't allow sleep command */
-#define MMC_CAP2_HS200_1_8V_SDR (1 << 5) /* can support */
-#define MMC_CAP2_HS200_1_2V_SDR (1 << 6) /* can support */
-#define MMC_CAP2_HS200 (MMC_CAP2_HS200_1_8V_SDR | \
- MMC_CAP2_HS200_1_2V_SDR)
-#define MMC_CAP2_BROKEN_VOLTAGE (1 << 7) /* Use the broken voltage */
-#define MMC_CAP2_DETECT_ON_ERR (1 << 8) /* On I/O err check card removal */
-#define MMC_CAP2_HC_ERASE_SZ (1 << 9) /* High-capacity erase size */
-
- mmc_pm_flag_t pm_caps; /* supported pm features */
- unsigned int power_notify_type;
-#define MMC_HOST_PW_NOTIFY_NONE 0
-#define MMC_HOST_PW_NOTIFY_SHORT 1
-#define MMC_HOST_PW_NOTIFY_LONG 2
-
-#ifdef CONFIG_MMC_CLKGATE
- int clk_requests; /* internal reference counter */
- unsigned int clk_delay; /* number of MCI clk hold cycles */
- bool clk_gated; /* clock gated */
- struct delayed_work clk_gate_work; /* delayed clock gate */
- unsigned int clk_old; /* old clock value cache */
- spinlock_t clk_lock; /* lock for clk fields */
- struct mutex clk_gate_mutex; /* mutex for clock gating */
- struct device_attribute clkgate_delay_attr;
- unsigned long clkgate_delay;
-#endif
-
- /* host specific block data */
- unsigned int max_seg_size; /* see blk_queue_max_segment_size */
- unsigned short max_segs; /* see blk_queue_max_segments */
- unsigned short unused;
- unsigned int max_req_size; /* maximum number of bytes in one req */
- unsigned int max_blk_size; /* maximum size of one mmc block */
- unsigned int max_blk_count; /* maximum number of blocks in one req */
- unsigned int max_discard_to; /* max. discard timeout in ms */
-
- /* private data */
- spinlock_t lock; /* lock for claim and bus ops */
-
- struct mmc_ios ios; /* current io bus settings */
- u32 ocr; /* the current OCR setting */
-
- /* group bitfields together to minimize padding */
- unsigned int use_spi_crc:1;
- unsigned int claimed:1; /* host exclusively claimed */
- unsigned int bus_dead:1; /* bus has been released */
-#ifdef CONFIG_MMC_DEBUG
- unsigned int removed:1; /* host is being removed */
-#endif
-
- int rescan_disable; /* disable card detection */
-
- struct mmc_card *card; /* device attached to this host */
-
- wait_queue_head_t wq;
- struct task_struct *claimer; /* task that has host claimed */
- int claim_cnt; /* "claim" nesting count */
-
- struct delayed_work detect;
- struct wake_lock detect_wake_lock;
- int detect_change; /* card detect flag */
- struct mmc_hotplug hotplug;
-
- const struct mmc_bus_ops *bus_ops; /* current bus driver */
- unsigned int bus_refs; /* reference counter */
-
- unsigned int bus_resume_flags;
-#define MMC_BUSRESUME_MANUAL_RESUME (1 << 0)
-#define MMC_BUSRESUME_NEEDS_RESUME (1 << 1)
-
- unsigned int sdio_irqs;
- struct task_struct *sdio_irq_thread;
- bool sdio_irq_pending;
- atomic_t sdio_irq_thread_abort;
-
- mmc_pm_flag_t pm_flags; /* requested pm features */
-
-#ifdef CONFIG_LEDS_TRIGGERS
- struct led_trigger *led; /* activity led */
-#endif
-
-#ifdef CONFIG_REGULATOR
- bool regulator_enabled; /* regulator state */
-#endif
-
- struct dentry *debugfs_root;
-
- struct mmc_async_req *areq; /* active async req */
-
-#ifdef CONFIG_FAIL_MMC_REQUEST
- struct fault_attr fail_mmc_request;
-#endif
-
- unsigned int actual_clock; /* Actual HC clock rate */
-
-#ifdef CONFIG_MMC_EMBEDDED_SDIO
- struct {
- struct sdio_cis *cis;
- struct sdio_cccr *cccr;
- struct sdio_embedded_func *funcs;
- int num_funcs;
- } embedded_sdio_data;
-#endif
-
-#ifdef CONFIG_MMC_UNSAFE_RESUME
- /* Use to record if the card attath staus change in suspend mode*/
- int card_attath_status;
-
-#define card_attach_status_change 1
-#define card_attach_status_unchange 0
-#endif
- /*Use to enable scan retry when request or cmd fail*/
- int scan_retry;
- bool card_scan_status; /*use to record if the card scan have done and card init OK 0:fail 1:OK*/
- struct semaphore req_sema; /*use to handle request asynchronous, to prevent issue command in the same time*/
- int wmt_host_index; /*use to identify the host number*/
-
- unsigned long private[0] ____cacheline_aligned;
-};
-
-extern struct mmc_host *mmc_alloc_host(int extra, struct device *);
-extern int mmc_add_host(struct mmc_host *, bool);
-extern void mmc_remove_host(struct mmc_host *);
-extern void mmc_free_host(struct mmc_host *);
-
-#ifdef CONFIG_MMC_EMBEDDED_SDIO
-extern void mmc_set_embedded_sdio_data(struct mmc_host *host,
- struct sdio_cis *cis,
- struct sdio_cccr *cccr,
- struct sdio_embedded_func *funcs,
- int num_funcs);
-#endif
-
-static inline void *mmc_priv(struct mmc_host *host)
-{
- return (void *)host->private;
-}
-
-#define mmc_host_is_spi(host) ((host)->caps & MMC_CAP_SPI)
-
-#define mmc_dev(x) ((x)->parent)
-#define mmc_classdev(x) (&(x)->class_dev)
-#define mmc_hostname(x) (dev_name(&(x)->class_dev))
-#define mmc_bus_needs_resume(host) ((host)->bus_resume_flags & MMC_BUSRESUME_NEEDS_RESUME)
-#define mmc_bus_manual_resume(host) ((host)->bus_resume_flags & MMC_BUSRESUME_MANUAL_RESUME)
-
-static inline void mmc_set_bus_resume_policy(struct mmc_host *host, int manual)
-{
- if (manual)
- host->bus_resume_flags |= MMC_BUSRESUME_MANUAL_RESUME;
- else
- host->bus_resume_flags &= ~MMC_BUSRESUME_MANUAL_RESUME;
-}
-
-extern int mmc_resume_bus(struct mmc_host *host);
-
-extern int mmc_suspend_host(struct mmc_host *);
-extern int mmc_resume_host(struct mmc_host *);
-
-extern int mmc_power_save_host(struct mmc_host *host);
-extern int mmc_power_restore_host(struct mmc_host *host);
-
-extern void mmc_detect_change(struct mmc_host *, unsigned long delay);
-extern void mmc_request_done(struct mmc_host *, struct mmc_request *);
-extern void mmc_force_remove_card(struct mmc_host *host);
-
-extern int mmc_cache_ctrl(struct mmc_host *, u8);
-
-static inline void mmc_signal_sdio_irq(struct mmc_host *host)
-{
- host->ops->enable_sdio_irq(host, 0);
- host->sdio_irq_pending = true;
- wake_up_process(host->sdio_irq_thread);
-}
-
-struct regulator;
-
-#ifdef CONFIG_REGULATOR
-int mmc_regulator_get_ocrmask(struct regulator *supply);
-int mmc_regulator_set_ocr(struct mmc_host *mmc,
- struct regulator *supply,
- unsigned short vdd_bit);
-#else
-static inline int mmc_regulator_get_ocrmask(struct regulator *supply)
-{
- return 0;
-}
-
-static inline int mmc_regulator_set_ocr(struct mmc_host *mmc,
- struct regulator *supply,
- unsigned short vdd_bit)
-{
- return 0;
-}
-#endif
-
-int mmc_card_awake(struct mmc_host *host);
-int mmc_card_sleep(struct mmc_host *host);
-int mmc_card_can_sleep(struct mmc_host *host);
-
-int mmc_pm_notify(struct notifier_block *notify_block, unsigned long, void *);
-
-/* Module parameter */
-extern bool mmc_assume_removable;
-
-static inline int mmc_card_is_removable(struct mmc_host *host)
-{
- return !(host->caps & MMC_CAP_NONREMOVABLE) && mmc_assume_removable;
-}
-
-static inline int mmc_card_keep_power(struct mmc_host *host)
-{
- return host->pm_flags & MMC_PM_KEEP_POWER;
-}
-
-static inline int mmc_card_wake_sdio_irq(struct mmc_host *host)
-{
- return host->pm_flags & MMC_PM_WAKE_SDIO_IRQ;
-}
-
-static inline int mmc_host_cmd23(struct mmc_host *host)
-{
- return host->caps & MMC_CAP_CMD23;
-}
-
-static inline int mmc_boot_partition_access(struct mmc_host *host)
-{
- return !(host->caps2 & MMC_CAP2_BOOTPART_NOACC);
-}
-
-#ifdef CONFIG_MMC_CLKGATE
-void mmc_host_clk_hold(struct mmc_host *host);
-void mmc_host_clk_release(struct mmc_host *host);
-unsigned int mmc_host_clk_rate(struct mmc_host *host);
-
-#else
-static inline void mmc_host_clk_hold(struct mmc_host *host)
-{
-}
-
-static inline void mmc_host_clk_release(struct mmc_host *host)
-{
-}
-
-static inline unsigned int mmc_host_clk_rate(struct mmc_host *host)
-{
- return host->ios.clock;
-}
-#endif
-#endif /* LINUX_MMC_HOST_H */
diff --git a/ANDROID_3.4.5/include/linux/mmc/ioctl.h b/ANDROID_3.4.5/include/linux/mmc/ioctl.h
deleted file mode 100644
index 1f5e6892..00000000
--- a/ANDROID_3.4.5/include/linux/mmc/ioctl.h
+++ /dev/null
@@ -1,57 +0,0 @@
-#ifndef LINUX_MMC_IOCTL_H
-#define LINUX_MMC_IOCTL_H
-
-#include <linux/types.h>
-
-struct mmc_ioc_cmd {
- /* Implies direction of data. true = write, false = read */
- int write_flag;
-
- /* Application-specific command. true = precede with CMD55 */
- int is_acmd;
-
- __u32 opcode;
- __u32 arg;
- __u32 response[4]; /* CMD response */
- unsigned int flags;
- unsigned int blksz;
- unsigned int blocks;
-
- /*
- * Sleep at least postsleep_min_us useconds, and at most
- * postsleep_max_us useconds *after* issuing command. Needed for
- * some read commands for which cards have no other way of indicating
- * they're ready for the next command (i.e. there is no equivalent of
- * a "busy" indicator for read operations).
- */
- unsigned int postsleep_min_us;
- unsigned int postsleep_max_us;
-
- /*
- * Override driver-computed timeouts. Note the difference in units!
- */
- unsigned int data_timeout_ns;
- unsigned int cmd_timeout_ms;
-
- /*
- * For 64-bit machines, the next member, ``__u64 data_ptr``, wants to
- * be 8-byte aligned. Make sure this struct is the same size when
- * built for 32-bit.
- */
- __u32 __pad;
-
- /* DAT buffer */
- __u64 data_ptr;
-};
-#define mmc_ioc_cmd_set_data(ic, ptr) ic.data_ptr = (__u64)(unsigned long) ptr
-
-#define MMC_IOC_CMD _IOWR(MMC_BLOCK_MAJOR, 0, struct mmc_ioc_cmd)
-
-/*
- * Since this ioctl is only meant to enhance (and not replace) normal access
- * to the mmc bus device, an upper data transfer limit of MMC_IOC_MAX_BYTES
- * is enforced per ioctl call. For larger data transfers, use the normal
- * block device operations.
- */
-#define MMC_IOC_MAX_BYTES (512L * 256)
-#endif /* LINUX_MMC_IOCTL_H */
diff --git a/ANDROID_3.4.5/include/linux/mmc/mmc.h b/ANDROID_3.4.5/include/linux/mmc/mmc.h
deleted file mode 100644
index b822a2cb..00000000
--- a/ANDROID_3.4.5/include/linux/mmc/mmc.h
+++ /dev/null
@@ -1,449 +0,0 @@
-/*
- * Header for MultiMediaCard (MMC)
- *
- * Copyright 2002 Hewlett-Packard Company
- *
- * Use consistent with the GNU GPL is permitted,
- * provided that this copyright notice is
- * preserved in its entirety in all copies and derived works.
- *
- * HEWLETT-PACKARD COMPANY MAKES NO WARRANTIES, EXPRESSED OR IMPLIED,
- * AS TO THE USEFULNESS OR CORRECTNESS OF THIS CODE OR ITS
- * FITNESS FOR ANY PARTICULAR PURPOSE.
- *
- * Many thanks to Alessandro Rubini and Jonathan Corbet!
- *
- * Based strongly on code by:
- *
- * Author: Yong-iL Joh <tolkien@mizi.com>
- *
- * Author: Andrew Christian
- * 15 May 2002
- */
-
-#ifndef LINUX_MMC_MMC_H
-#define LINUX_MMC_MMC_H
-
-/* Standard MMC commands (4.1) type argument response */
- /* class 1 */
-#define MMC_GO_IDLE_STATE 0 /* bc */
-#define MMC_SEND_OP_COND 1 /* bcr [31:0] OCR R3 */
-#define MMC_ALL_SEND_CID 2 /* bcr R2 */
-#define MMC_SET_RELATIVE_ADDR 3 /* ac [31:16] RCA R1 */
-#define MMC_SET_DSR 4 /* bc [31:16] RCA */
-#define MMC_SLEEP_AWAKE 5 /* ac [31:16] RCA 15:flg R1b */
-#define MMC_SWITCH 6 /* ac [31:0] See below R1b */
-#define MMC_SELECT_CARD 7 /* ac [31:16] RCA R1 */
-#define MMC_SEND_EXT_CSD 8 /* adtc R1 */
-#define MMC_SEND_CSD 9 /* ac [31:16] RCA R2 */
-#define MMC_SEND_CID 10 /* ac [31:16] RCA R2 */
-#define MMC_READ_DAT_UNTIL_STOP 11 /* adtc [31:0] dadr R1 */
-#define MMC_STOP_TRANSMISSION 12 /* ac R1b */
-#define MMC_SEND_STATUS 13 /* ac [31:16] RCA R1 */
-#define MMC_BUS_TEST_R 14 /* adtc R1 */
-#define MMC_GO_INACTIVE_STATE 15 /* ac [31:16] RCA */
-#define MMC_BUS_TEST_W 19 /* adtc R1 */
-#define MMC_SPI_READ_OCR 58 /* spi spi_R3 */
-#define MMC_SPI_CRC_ON_OFF 59 /* spi [0:0] flag spi_R1 */
-
- /* class 2 */
-#define MMC_SET_BLOCKLEN 16 /* ac [31:0] block len R1 */
-#define MMC_READ_SINGLE_BLOCK 17 /* adtc [31:0] data addr R1 */
-#define MMC_READ_MULTIPLE_BLOCK 18 /* adtc [31:0] data addr R1 */
-#define MMC_SEND_TUNING_BLOCK 19 /* adtc R1 */
-#define MMC_SEND_TUNING_BLOCK_HS200 21 /* adtc R1 */
-
- /* class 3 */
-#define MMC_WRITE_DAT_UNTIL_STOP 20 /* adtc [31:0] data addr R1 */
-
- /* class 4 */
-#define MMC_SET_BLOCK_COUNT 23 /* adtc [31:0] data addr R1 */
-#define MMC_WRITE_BLOCK 24 /* adtc [31:0] data addr R1 */
-#define MMC_WRITE_MULTIPLE_BLOCK 25 /* adtc R1 */
-#define MMC_PROGRAM_CID 26 /* adtc R1 */
-#define MMC_PROGRAM_CSD 27 /* adtc R1 */
-
- /* class 6 */
-#define MMC_SET_WRITE_PROT 28 /* ac [31:0] data addr R1b */
-#define MMC_CLR_WRITE_PROT 29 /* ac [31:0] data addr R1b */
-#define MMC_SEND_WRITE_PROT 30 /* adtc [31:0] wpdata addr R1 */
-
- /* class 5 */
-#define MMC_ERASE_GROUP_START 35 /* ac [31:0] data addr R1 */
-#define MMC_ERASE_GROUP_END 36 /* ac [31:0] data addr R1 */
-#define MMC_ERASE 38 /* ac R1b */
-
- /* class 9 */
-#define MMC_FAST_IO 39 /* ac <Complex> R4 */
-#define MMC_GO_IRQ_STATE 40 /* bcr R5 */
-
- /* class 7 */
-#define MMC_LOCK_UNLOCK 42 /* adtc R1b */
-
- /* class 8 */
-#define MMC_APP_CMD 55 /* ac [31:16] RCA R1 */
-#define MMC_GEN_CMD 56 /* adtc [0] RD/WR R1 */
-
-static inline bool mmc_op_multi(u32 opcode)
-{
- return opcode == MMC_WRITE_MULTIPLE_BLOCK ||
- opcode == MMC_READ_MULTIPLE_BLOCK;
-}
-
-/*
- * MMC_SWITCH argument format:
- *
- * [31:26] Always 0
- * [25:24] Access Mode
- * [23:16] Location of target Byte in EXT_CSD
- * [15:08] Value Byte
- * [07:03] Always 0
- * [02:00] Command Set
- */
-
-/*
- MMC status in R1, for native mode (SPI bits are different)
- Type
- e : error bit
- s : status bit
- r : detected and set for the actual command response
- x : detected and set during command execution. the host must poll
- the card by sending status command in order to read these bits.
- Clear condition
- a : according to the card state
- b : always related to the previous command. Reception of
- a valid command will clear it (with a delay of one command)
- c : clear by read
- */
-
-#define R1_OUT_OF_RANGE (1 << 31) /* er, c */
-#define R1_ADDRESS_ERROR (1 << 30) /* erx, c */
-#define R1_BLOCK_LEN_ERROR (1 << 29) /* er, c */
-#define R1_ERASE_SEQ_ERROR (1 << 28) /* er, c */
-#define R1_ERASE_PARAM (1 << 27) /* ex, c */
-#define R1_WP_VIOLATION (1 << 26) /* erx, c */
-#define R1_CARD_IS_LOCKED (1 << 25) /* sx, a */
-#define R1_LOCK_UNLOCK_FAILED (1 << 24) /* erx, c */
-#define R1_COM_CRC_ERROR (1 << 23) /* er, b */
-#define R1_ILLEGAL_COMMAND (1 << 22) /* er, b */
-#define R1_CARD_ECC_FAILED (1 << 21) /* ex, c */
-#define R1_CC_ERROR (1 << 20) /* erx, c */
-#define R1_ERROR (1 << 19) /* erx, c */
-#define R1_UNDERRUN (1 << 18) /* ex, c */
-#define R1_OVERRUN (1 << 17) /* ex, c */
-#define R1_CID_CSD_OVERWRITE (1 << 16) /* erx, c, CID/CSD overwrite */
-#define R1_WP_ERASE_SKIP (1 << 15) /* sx, c */
-#define R1_CARD_ECC_DISABLED (1 << 14) /* sx, a */
-#define R1_ERASE_RESET (1 << 13) /* sr, c */
-#define R1_STATUS(x) (x & 0xFFFFE000)
-#define R1_CURRENT_STATE(x) ((x & 0x00001E00) >> 9) /* sx, b (4 bits) */
-#define R1_READY_FOR_DATA (1 << 8) /* sx, a */
-#define R1_SWITCH_ERROR (1 << 7) /* sx, c */
-#define R1_APP_CMD (1 << 5) /* sr, c */
-
-#define R1_STATE_IDLE 0
-#define R1_STATE_READY 1
-#define R1_STATE_IDENT 2
-#define R1_STATE_STBY 3
-#define R1_STATE_TRAN 4
-#define R1_STATE_DATA 5
-#define R1_STATE_RCV 6
-#define R1_STATE_PRG 7
-#define R1_STATE_DIS 8
-
-/*
- * MMC/SD in SPI mode reports R1 status always, and R2 for SEND_STATUS
- * R1 is the low order byte; R2 is the next highest byte, when present.
- */
-#define R1_SPI_IDLE (1 << 0)
-#define R1_SPI_ERASE_RESET (1 << 1)
-#define R1_SPI_ILLEGAL_COMMAND (1 << 2)
-#define R1_SPI_COM_CRC (1 << 3)
-#define R1_SPI_ERASE_SEQ (1 << 4)
-#define R1_SPI_ADDRESS (1 << 5)
-#define R1_SPI_PARAMETER (1 << 6)
-/* R1 bit 7 is always zero */
-#define R2_SPI_CARD_LOCKED (1 << 8)
-#define R2_SPI_WP_ERASE_SKIP (1 << 9) /* or lock/unlock fail */
-#define R2_SPI_LOCK_UNLOCK_FAIL R2_SPI_WP_ERASE_SKIP
-#define R2_SPI_ERROR (1 << 10)
-#define R2_SPI_CC_ERROR (1 << 11)
-#define R2_SPI_CARD_ECC_ERROR (1 << 12)
-#define R2_SPI_WP_VIOLATION (1 << 13)
-#define R2_SPI_ERASE_PARAM (1 << 14)
-#define R2_SPI_OUT_OF_RANGE (1 << 15) /* or CSD overwrite */
-#define R2_SPI_CSD_OVERWRITE R2_SPI_OUT_OF_RANGE
-
-/* These are unpacked versions of the actual responses */
-
-struct _mmc_csd {
- u8 csd_structure;
- u8 spec_vers;
- u8 taac;
- u8 nsac;
- u8 tran_speed;
- u16 ccc;
- u8 read_bl_len;
- u8 read_bl_partial;
- u8 write_blk_misalign;
- u8 read_blk_misalign;
- u8 dsr_imp;
- u16 c_size;
- u8 vdd_r_curr_min;
- u8 vdd_r_curr_max;
- u8 vdd_w_curr_min;
- u8 vdd_w_curr_max;
- u8 c_size_mult;
- union {
- struct { /* MMC system specification version 3.1 */
- u8 erase_grp_size;
- u8 erase_grp_mult;
- } v31;
- struct { /* MMC system specification version 2.2 */
- u8 sector_size;
- u8 erase_grp_size;
- } v22;
- } erase;
- u8 wp_grp_size;
- u8 wp_grp_enable;
- u8 default_ecc;
- u8 r2w_factor;
- u8 write_bl_len;
- u8 write_bl_partial;
- u8 file_format_grp;
- u8 copy;
- u8 perm_write_protect;
- u8 tmp_write_protect;
- u8 file_format;
- u8 ecc;
-};
-
-/*
- * OCR bits are mostly in host.h
- */
-#define MMC_CARD_BUSY 0x80000000 /* Card Power up status bit */
-
-/*
- * Card Command Classes (CCC)
- */
-#define CCC_BASIC (1<<0) /* (0) Basic protocol functions */
- /* (CMD0,1,2,3,4,7,9,10,12,13,15) */
- /* (and for SPI, CMD58,59) */
-#define CCC_STREAM_READ (1<<1) /* (1) Stream read commands */
- /* (CMD11) */
-#define CCC_BLOCK_READ (1<<2) /* (2) Block read commands */
- /* (CMD16,17,18) */
-#define CCC_STREAM_WRITE (1<<3) /* (3) Stream write commands */
- /* (CMD20) */
-#define CCC_BLOCK_WRITE (1<<4) /* (4) Block write commands */
- /* (CMD16,24,25,26,27) */
-#define CCC_ERASE (1<<5) /* (5) Ability to erase blocks */
- /* (CMD32,33,34,35,36,37,38,39) */
-#define CCC_WRITE_PROT (1<<6) /* (6) Able to write protect blocks */
- /* (CMD28,29,30) */
-#define CCC_LOCK_CARD (1<<7) /* (7) Able to lock down card */
- /* (CMD16,CMD42) */
-#define CCC_APP_SPEC (1<<8) /* (8) Application specific */
- /* (CMD55,56,57,ACMD*) */
-#define CCC_IO_MODE (1<<9) /* (9) I/O mode */
- /* (CMD5,39,40,52,53) */
-#define CCC_SWITCH (1<<10) /* (10) High speed switch */
- /* (CMD6,34,35,36,37,50) */
- /* (11) Reserved */
- /* (CMD?) */
-
-/*
- * CSD field definitions
- */
-
-#define CSD_STRUCT_VER_1_0 0 /* Valid for system specification 1.0 - 1.2 */
-#define CSD_STRUCT_VER_1_1 1 /* Valid for system specification 1.4 - 2.2 */
-#define CSD_STRUCT_VER_1_2 2 /* Valid for system specification 3.1 - 3.2 - 3.31 - 4.0 - 4.1 */
-#define CSD_STRUCT_EXT_CSD 3 /* Version is coded in CSD_STRUCTURE in EXT_CSD */
-
-#define CSD_SPEC_VER_0 0 /* Implements system specification 1.0 - 1.2 */
-#define CSD_SPEC_VER_1 1 /* Implements system specification 1.4 */
-#define CSD_SPEC_VER_2 2 /* Implements system specification 2.0 - 2.2 */
-#define CSD_SPEC_VER_3 3 /* Implements system specification 3.1 - 3.2 - 3.31 */
-#define CSD_SPEC_VER_4 4 /* Implements system specification 4.0 - 4.1 */
-
-/*
- * EXT_CSD fields
- */
-
-#define EXT_CSD_FLUSH_CACHE 32 /* W */
-#define EXT_CSD_CACHE_CTRL 33 /* R/W */
-#define EXT_CSD_POWER_OFF_NOTIFICATION 34 /* R/W */
-#define EXT_CSD_DATA_SECTOR_SIZE 61 /* R */
-#define EXT_CSD_GP_SIZE_MULT 143 /* R/W */
-#define EXT_CSD_PARTITION_ATTRIBUTE 156 /* R/W */
-#define EXT_CSD_PARTITION_SUPPORT 160 /* RO */
-#define EXT_CSD_HPI_MGMT 161 /* R/W */
-#define EXT_CSD_RST_N_FUNCTION 162 /* R/W */
-#define EXT_CSD_SANITIZE_START 165 /* W */
-#define EXT_CSD_WR_REL_PARAM 166 /* RO */
-#define EXT_CSD_BOOT_WP 173 /* R/W */
-#define EXT_CSD_ERASE_GROUP_DEF 175 /* R/W */
-#define EXT_CSD_PART_CONFIG 179 /* R/W */
-#define EXT_CSD_ERASED_MEM_CONT 181 /* RO */
-#define EXT_CSD_BUS_WIDTH 183 /* R/W */
-#define EXT_CSD_HS_TIMING 185 /* R/W */
-#define EXT_CSD_POWER_CLASS 187 /* R/W */
-#define EXT_CSD_REV 192 /* RO */
-#define EXT_CSD_STRUCTURE 194 /* RO */
-#define EXT_CSD_CARD_TYPE 196 /* RO */
-#define EXT_CSD_OUT_OF_INTERRUPT_TIME 198 /* RO */
-#define EXT_CSD_PART_SWITCH_TIME 199 /* RO */
-#define EXT_CSD_PWR_CL_52_195 200 /* RO */
-#define EXT_CSD_PWR_CL_26_195 201 /* RO */
-#define EXT_CSD_PWR_CL_52_360 202 /* RO */
-#define EXT_CSD_PWR_CL_26_360 203 /* RO */
-#define EXT_CSD_SEC_CNT 212 /* RO, 4 bytes */
-#define EXT_CSD_S_A_TIMEOUT 217 /* RO */
-#define EXT_CSD_REL_WR_SEC_C 222 /* RO */
-#define EXT_CSD_HC_WP_GRP_SIZE 221 /* RO */
-#define EXT_CSD_ERASE_TIMEOUT_MULT 223 /* RO */
-#define EXT_CSD_HC_ERASE_GRP_SIZE 224 /* RO */
-#define EXT_CSD_BOOT_MULT 226 /* RO */
-#define EXT_CSD_SEC_TRIM_MULT 229 /* RO */
-#define EXT_CSD_SEC_ERASE_MULT 230 /* RO */
-#define EXT_CSD_SEC_FEATURE_SUPPORT 231 /* RO */
-#define EXT_CSD_TRIM_MULT 232 /* RO */
-#define EXT_CSD_PWR_CL_200_195 236 /* RO */
-#define EXT_CSD_PWR_CL_200_360 237 /* RO */
-#define EXT_CSD_PWR_CL_DDR_52_195 238 /* RO */
-#define EXT_CSD_PWR_CL_DDR_52_360 239 /* RO */
-#define EXT_CSD_POWER_OFF_LONG_TIME 247 /* RO */
-#define EXT_CSD_GENERIC_CMD6_TIME 248 /* RO */
-#define EXT_CSD_CACHE_SIZE 249 /* RO, 4 bytes */
-#define EXT_CSD_TAG_UNIT_SIZE 498 /* RO */
-#define EXT_CSD_DATA_TAG_SUPPORT 499 /* RO */
-#define EXT_CSD_HPI_FEATURES 503 /* RO */
-
-/*
- * EXT_CSD field definitions
- */
-
-#define EXT_CSD_WR_REL_PARAM_EN (1<<2)
-
-#define EXT_CSD_BOOT_WP_B_PWR_WP_DIS (0x40)
-#define EXT_CSD_BOOT_WP_B_PERM_WP_DIS (0x10)
-#define EXT_CSD_BOOT_WP_B_PERM_WP_EN (0x04)
-#define EXT_CSD_BOOT_WP_B_PWR_WP_EN (0x01)
-
-#define EXT_CSD_PART_CONFIG_ACC_MASK (0x7)
-#define EXT_CSD_PART_CONFIG_ACC_BOOT0 (0x1)
-#define EXT_CSD_PART_CONFIG_ACC_GP0 (0x4)
-
-#define EXT_CSD_PART_SUPPORT_PART_EN (0x1)
-
-#define EXT_CSD_CMD_SET_NORMAL (1<<0)
-#define EXT_CSD_CMD_SET_SECURE (1<<1)
-#define EXT_CSD_CMD_SET_CPSECURE (1<<2)
-
-#define EXT_CSD_CARD_TYPE_26 (1<<0) /* Card can run at 26MHz */
-#define EXT_CSD_CARD_TYPE_52 (1<<1) /* Card can run at 52MHz */
-#define EXT_CSD_CARD_TYPE_MASK 0x3F /* Mask out reserved bits */
-#define EXT_CSD_CARD_TYPE_DDR_1_8V (1<<2) /* Card can run at 52MHz */
- /* DDR mode @1.8V or 3V I/O */
-#define EXT_CSD_CARD_TYPE_DDR_1_2V (1<<3) /* Card can run at 52MHz */
- /* DDR mode @1.2V I/O */
-#define EXT_CSD_CARD_TYPE_DDR_52 (EXT_CSD_CARD_TYPE_DDR_1_8V \
- | EXT_CSD_CARD_TYPE_DDR_1_2V)
-#define EXT_CSD_CARD_TYPE_SDR_1_8V (1<<4) /* Card can run at 200MHz */
-#define EXT_CSD_CARD_TYPE_SDR_1_2V (1<<5) /* Card can run at 200MHz */
- /* SDR mode @1.2V I/O */
-
-#define EXT_CSD_CARD_TYPE_SDR_200 (EXT_CSD_CARD_TYPE_SDR_1_8V | \
- EXT_CSD_CARD_TYPE_SDR_1_2V)
-
-#define EXT_CSD_CARD_TYPE_SDR_ALL (EXT_CSD_CARD_TYPE_SDR_200 | \
- EXT_CSD_CARD_TYPE_52 | \
- EXT_CSD_CARD_TYPE_26)
-
-#define EXT_CSD_CARD_TYPE_SDR_1_2V_ALL (EXT_CSD_CARD_TYPE_SDR_1_2V | \
- EXT_CSD_CARD_TYPE_52 | \
- EXT_CSD_CARD_TYPE_26)
-
-#define EXT_CSD_CARD_TYPE_SDR_1_8V_ALL (EXT_CSD_CARD_TYPE_SDR_1_8V | \
- EXT_CSD_CARD_TYPE_52 | \
- EXT_CSD_CARD_TYPE_26)
-
-#define EXT_CSD_CARD_TYPE_SDR_1_2V_DDR_1_8V (EXT_CSD_CARD_TYPE_SDR_1_2V | \
- EXT_CSD_CARD_TYPE_DDR_1_8V | \
- EXT_CSD_CARD_TYPE_52 | \
- EXT_CSD_CARD_TYPE_26)
-
-#define EXT_CSD_CARD_TYPE_SDR_1_8V_DDR_1_8V (EXT_CSD_CARD_TYPE_SDR_1_8V | \
- EXT_CSD_CARD_TYPE_DDR_1_8V | \
- EXT_CSD_CARD_TYPE_52 | \
- EXT_CSD_CARD_TYPE_26)
-
-#define EXT_CSD_CARD_TYPE_SDR_1_2V_DDR_1_2V (EXT_CSD_CARD_TYPE_SDR_1_2V | \
- EXT_CSD_CARD_TYPE_DDR_1_2V | \
- EXT_CSD_CARD_TYPE_52 | \
- EXT_CSD_CARD_TYPE_26)
-
-#define EXT_CSD_CARD_TYPE_SDR_1_8V_DDR_1_2V (EXT_CSD_CARD_TYPE_SDR_1_8V | \
- EXT_CSD_CARD_TYPE_DDR_1_2V | \
- EXT_CSD_CARD_TYPE_52 | \
- EXT_CSD_CARD_TYPE_26)
-
-#define EXT_CSD_CARD_TYPE_SDR_1_2V_DDR_52 (EXT_CSD_CARD_TYPE_SDR_1_2V | \
- EXT_CSD_CARD_TYPE_DDR_52 | \
- EXT_CSD_CARD_TYPE_52 | \
- EXT_CSD_CARD_TYPE_26)
-
-#define EXT_CSD_CARD_TYPE_SDR_1_8V_DDR_52 (EXT_CSD_CARD_TYPE_SDR_1_8V | \
- EXT_CSD_CARD_TYPE_DDR_52 | \
- EXT_CSD_CARD_TYPE_52 | \
- EXT_CSD_CARD_TYPE_26)
-
-#define EXT_CSD_CARD_TYPE_SDR_ALL_DDR_1_8V (EXT_CSD_CARD_TYPE_SDR_200 | \
- EXT_CSD_CARD_TYPE_DDR_1_8V | \
- EXT_CSD_CARD_TYPE_52 | \
- EXT_CSD_CARD_TYPE_26)
-
-#define EXT_CSD_CARD_TYPE_SDR_ALL_DDR_1_2V (EXT_CSD_CARD_TYPE_SDR_200 | \
- EXT_CSD_CARD_TYPE_DDR_1_2V | \
- EXT_CSD_CARD_TYPE_52 | \
- EXT_CSD_CARD_TYPE_26)
-
-#define EXT_CSD_CARD_TYPE_SDR_ALL_DDR_52 (EXT_CSD_CARD_TYPE_SDR_200 | \
- EXT_CSD_CARD_TYPE_DDR_52 | \
- EXT_CSD_CARD_TYPE_52 | \
- EXT_CSD_CARD_TYPE_26)
-
-#define EXT_CSD_BUS_WIDTH_1 0 /* Card is in 1 bit mode */
-#define EXT_CSD_BUS_WIDTH_4 1 /* Card is in 4 bit mode */
-#define EXT_CSD_BUS_WIDTH_8 2 /* Card is in 8 bit mode */
-#define EXT_CSD_DDR_BUS_WIDTH_4 5 /* Card is in 4 bit DDR mode */
-#define EXT_CSD_DDR_BUS_WIDTH_8 6 /* Card is in 8 bit DDR mode */
-
-#define EXT_CSD_SEC_ER_EN BIT(0)
-#define EXT_CSD_SEC_BD_BLK_EN BIT(2)
-#define EXT_CSD_SEC_GB_CL_EN BIT(4)
-#define EXT_CSD_SEC_SANITIZE BIT(6) /* v4.5 only */
-
-#define EXT_CSD_RST_N_EN_MASK 0x3
-#define EXT_CSD_RST_N_ENABLED 1 /* RST_n is enabled on card */
-
-#define EXT_CSD_NO_POWER_NOTIFICATION 0
-#define EXT_CSD_POWER_ON 1
-#define EXT_CSD_POWER_OFF_SHORT 2
-#define EXT_CSD_POWER_OFF_LONG 3
-
-#define EXT_CSD_PWR_CL_8BIT_MASK 0xF0 /* 8 bit PWR CLS */
-#define EXT_CSD_PWR_CL_4BIT_MASK 0x0F /* 8 bit PWR CLS */
-#define EXT_CSD_PWR_CL_8BIT_SHIFT 4
-#define EXT_CSD_PWR_CL_4BIT_SHIFT 0
-/*
- * MMC_SWITCH access modes
- */
-
-#define MMC_SWITCH_MODE_CMD_SET 0x00 /* Change the command set */
-#define MMC_SWITCH_MODE_SET_BITS 0x01 /* Set bits which are 1 in value */
-#define MMC_SWITCH_MODE_CLEAR_BITS 0x02 /* Clear bits which are 1 in value */
-#define MMC_SWITCH_MODE_WRITE_BYTE 0x03 /* Set target to value */
-
-#endif /* LINUX_MMC_MMC_H */
diff --git a/ANDROID_3.4.5/include/linux/mmc/pm.h b/ANDROID_3.4.5/include/linux/mmc/pm.h
deleted file mode 100644
index 6e2d6a13..00000000
--- a/ANDROID_3.4.5/include/linux/mmc/pm.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * linux/include/linux/mmc/pm.h
- *
- * Author: Nicolas Pitre
- * Copyright: (C) 2009 Marvell Technology Group 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.
- */
-
-#ifndef LINUX_MMC_PM_H
-#define LINUX_MMC_PM_H
-
-/*
- * These flags are used to describe power management features that
- * some cards (typically SDIO cards) might wish to benefit from when
- * the host system is being suspended. There are several layers of
- * abstractions involved, from the host controller driver, to the MMC core
- * code, to the SDIO core code, to finally get to the actual SDIO function
- * driver. This file is therefore used for common definitions shared across
- * all those layers.
- */
-
-typedef unsigned int mmc_pm_flag_t;
-
-#define MMC_PM_KEEP_POWER (1 << 0) /* preserve card power during suspend */
-#define MMC_PM_WAKE_SDIO_IRQ (1 << 1) /* wake up host system on SDIO IRQ assertion */
-#define MMC_PM_IGNORE_PM_NOTIFY (1 << 2) /* ignore mmc pm notify */
-
-#endif /* LINUX_MMC_PM_H */
diff --git a/ANDROID_3.4.5/include/linux/mmc/sd.h b/ANDROID_3.4.5/include/linux/mmc/sd.h
deleted file mode 100644
index 1ebcf9ba..00000000
--- a/ANDROID_3.4.5/include/linux/mmc/sd.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * include/linux/mmc/sd.h
- *
- * Copyright (C) 2005-2007 Pierre Ossman, 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.
- */
-
-#ifndef LINUX_MMC_SD_H
-#define LINUX_MMC_SD_H
-
-/* SD commands type argument response */
- /* class 0 */
-/* This is basically the same command as for MMC with some quirks. */
-#define SD_SEND_RELATIVE_ADDR 3 /* bcr R6 */
-#define SD_SEND_IF_COND 8 /* bcr [11:0] See below R7 */
-#define SD_SWITCH_VOLTAGE 11 /* ac R1 */
-
- /* class 10 */
-#define SD_SWITCH 6 /* adtc [31:0] See below R1 */
-
- /* class 5 */
-#define SD_ERASE_WR_BLK_START 32 /* ac [31:0] data addr R1 */
-#define SD_ERASE_WR_BLK_END 33 /* ac [31:0] data addr R1 */
-
- /* Application commands */
-#define SD_APP_SET_BUS_WIDTH 6 /* ac [1:0] bus width R1 */
-#define SD_APP_SD_STATUS 13 /* adtc R1 */
-#define SD_APP_SEND_NUM_WR_BLKS 22 /* adtc R1 */
-#define SD_APP_OP_COND 41 /* bcr [31:0] OCR R3 */
-#define SD_APP_SEND_SCR 51 /* adtc R1 */
-
-/* OCR bit definitions */
-#define SD_OCR_S18R (1 << 24) /* 1.8V switching request */
-#define SD_ROCR_S18A SD_OCR_S18R /* 1.8V switching accepted by card */
-#define SD_OCR_XPC (1 << 28) /* SDXC power control */
-#define SD_OCR_CCS (1 << 30) /* Card Capacity Status */
-
-/*
- * SD_SWITCH argument format:
- *
- * [31] Check (0) or switch (1)
- * [30:24] Reserved (0)
- * [23:20] Function group 6
- * [19:16] Function group 5
- * [15:12] Function group 4
- * [11:8] Function group 3
- * [7:4] Function group 2
- * [3:0] Function group 1
- */
-
-/*
- * SD_SEND_IF_COND argument format:
- *
- * [31:12] Reserved (0)
- * [11:8] Host Voltage Supply Flags
- * [7:0] Check Pattern (0xAA)
- */
-
-/*
- * SCR field definitions
- */
-
-#define SCR_SPEC_VER_0 0 /* Implements system specification 1.0 - 1.01 */
-#define SCR_SPEC_VER_1 1 /* Implements system specification 1.10 */
-#define SCR_SPEC_VER_2 2 /* Implements system specification 2.00-3.0X */
-
-/*
- * SD bus widths
- */
-#define SD_BUS_WIDTH_1 0
-#define SD_BUS_WIDTH_4 2
-
-/*
- * SD_SWITCH mode
- */
-#define SD_SWITCH_CHECK 0
-#define SD_SWITCH_SET 1
-
-/*
- * SD_SWITCH function groups
- */
-#define SD_SWITCH_GRP_ACCESS 0
-
-/*
- * SD_SWITCH access modes
- */
-#define SD_SWITCH_ACCESS_DEF 0
-#define SD_SWITCH_ACCESS_HS 1
-
-#endif /* LINUX_MMC_SD_H */
diff --git a/ANDROID_3.4.5/include/linux/mmc/sdhci-pci-data.h b/ANDROID_3.4.5/include/linux/mmc/sdhci-pci-data.h
deleted file mode 100644
index 8959604a..00000000
--- a/ANDROID_3.4.5/include/linux/mmc/sdhci-pci-data.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef LINUX_MMC_SDHCI_PCI_DATA_H
-#define LINUX_MMC_SDHCI_PCI_DATA_H
-
-struct pci_dev;
-
-struct sdhci_pci_data {
- struct pci_dev *pdev;
- int slotno;
- int rst_n_gpio; /* Set to -EINVAL if unused */
- int cd_gpio; /* Set to -EINVAL if unused */
- int (*setup)(struct sdhci_pci_data *data);
- void (*cleanup)(struct sdhci_pci_data *data);
-};
-
-extern struct sdhci_pci_data *(*sdhci_pci_get_data)(struct pci_dev *pdev,
- int slotno);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mmc/sdhci-spear.h b/ANDROID_3.4.5/include/linux/mmc/sdhci-spear.h
deleted file mode 100644
index 5cdc96da..00000000
--- a/ANDROID_3.4.5/include/linux/mmc/sdhci-spear.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * include/linux/mmc/sdhci-spear.h
- *
- * SDHCI declarations specific to ST SPEAr platform
- *
- * Copyright (C) 2010 ST Microelectronics
- * Viresh Kumar<viresh.kumar@st.com>
- *
- * This file is licensed under the terms of the GNU General Public
- * License version 2. This program is licensed "as is" without any
- * warranty of any kind, whether express or implied.
- */
-
-#ifndef LINUX_MMC_SDHCI_SPEAR_H
-#define LINUX_MMC_SDHCI_SPEAR_H
-
-#include <linux/platform_device.h>
-/*
- * struct sdhci_plat_data: spear sdhci platform data structure
- *
- * @card_power_gpio: gpio pin for enabling/disabling power to sdhci socket
- * @power_active_high: if set, enable power to sdhci socket by setting
- * card_power_gpio
- * @power_always_enb: If set, then enable power on probe, otherwise enable only
- * on card insertion and disable on card removal.
- * card_int_gpio: gpio pin used for card detection
- */
-struct sdhci_plat_data {
- int card_power_gpio;
- int power_active_high;
- int power_always_enb;
- int card_int_gpio;
-};
-
-/* This function is used to set platform_data field of pdev->dev */
-static inline void
-sdhci_set_plat_data(struct platform_device *pdev, struct sdhci_plat_data *data)
-{
- pdev->dev.platform_data = data;
-}
-
-#endif /* LINUX_MMC_SDHCI_SPEAR_H */
diff --git a/ANDROID_3.4.5/include/linux/mmc/sdhci.h b/ANDROID_3.4.5/include/linux/mmc/sdhci.h
deleted file mode 100644
index e9051e1c..00000000
--- a/ANDROID_3.4.5/include/linux/mmc/sdhci.h
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * linux/include/linux/mmc/sdhci.h - Secure Digital Host Controller Interface
- *
- * Copyright (C) 2005-2008 Pierre Ossman, 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.
- */
-#ifndef LINUX_MMC_SDHCI_H
-#define LINUX_MMC_SDHCI_H
-
-#include <linux/scatterlist.h>
-#include <linux/compiler.h>
-#include <linux/types.h>
-#include <linux/io.h>
-#include <linux/mmc/host.h>
-
-struct sdhci_host {
- /* Data set by hardware interface driver */
- const char *hw_name; /* Hardware bus name */
-
- unsigned int quirks; /* Deviations from spec. */
-
-/* Controller doesn't honor resets unless we touch the clock register */
-#define SDHCI_QUIRK_CLOCK_BEFORE_RESET (1<<0)
-/* Controller has bad caps bits, but really supports DMA */
-#define SDHCI_QUIRK_FORCE_DMA (1<<1)
-/* Controller doesn't like to be reset when there is no card inserted. */
-#define SDHCI_QUIRK_NO_CARD_NO_RESET (1<<2)
-/* Controller doesn't like clearing the power reg before a change */
-#define SDHCI_QUIRK_SINGLE_POWER_WRITE (1<<3)
-/* Controller has flaky internal state so reset it on each ios change */
-#define SDHCI_QUIRK_RESET_CMD_DATA_ON_IOS (1<<4)
-/* Controller has an unusable DMA engine */
-#define SDHCI_QUIRK_BROKEN_DMA (1<<5)
-/* Controller has an unusable ADMA engine */
-#define SDHCI_QUIRK_BROKEN_ADMA (1<<6)
-/* Controller can only DMA from 32-bit aligned addresses */
-#define SDHCI_QUIRK_32BIT_DMA_ADDR (1<<7)
-/* Controller can only DMA chunk sizes that are a multiple of 32 bits */
-#define SDHCI_QUIRK_32BIT_DMA_SIZE (1<<8)
-/* Controller can only ADMA chunks that are a multiple of 32 bits */
-#define SDHCI_QUIRK_32BIT_ADMA_SIZE (1<<9)
-/* Controller needs to be reset after each request to stay stable */
-#define SDHCI_QUIRK_RESET_AFTER_REQUEST (1<<10)
-/* Controller needs voltage and power writes to happen separately */
-#define SDHCI_QUIRK_NO_SIMULT_VDD_AND_POWER (1<<11)
-/* Controller provides an incorrect timeout value for transfers */
-#define SDHCI_QUIRK_BROKEN_TIMEOUT_VAL (1<<12)
-/* Controller has an issue with buffer bits for small transfers */
-#define SDHCI_QUIRK_BROKEN_SMALL_PIO (1<<13)
-/* Controller does not provide transfer-complete interrupt when not busy */
-#define SDHCI_QUIRK_NO_BUSY_IRQ (1<<14)
-/* Controller has unreliable card detection */
-#define SDHCI_QUIRK_BROKEN_CARD_DETECTION (1<<15)
-/* Controller reports inverted write-protect state */
-#define SDHCI_QUIRK_INVERTED_WRITE_PROTECT (1<<16)
-/* Controller has nonstandard clock management */
-#define SDHCI_QUIRK_NONSTANDARD_CLOCK (1<<17)
-/* Controller does not like fast PIO transfers */
-#define SDHCI_QUIRK_PIO_NEEDS_DELAY (1<<18)
-/* Controller losing signal/interrupt enable states after reset */
-#define SDHCI_QUIRK_RESTORE_IRQS_AFTER_RESET (1<<19)
-/* Controller has to be forced to use block size of 2048 bytes */
-#define SDHCI_QUIRK_FORCE_BLK_SZ_2048 (1<<20)
-/* Controller cannot do multi-block transfers */
-#define SDHCI_QUIRK_NO_MULTIBLOCK (1<<21)
-/* Controller can only handle 1-bit data transfers */
-#define SDHCI_QUIRK_FORCE_1_BIT_DATA (1<<22)
-/* Controller needs 10ms delay between applying power and clock */
-#define SDHCI_QUIRK_DELAY_AFTER_POWER (1<<23)
-/* Controller uses SDCLK instead of TMCLK for data timeouts */
-#define SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK (1<<24)
-/* Controller reports wrong base clock capability */
-#define SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN (1<<25)
-/* Controller cannot support End Attribute in NOP ADMA descriptor */
-#define SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC (1<<26)
-/* Controller is missing device caps. Use caps provided by host */
-#define SDHCI_QUIRK_MISSING_CAPS (1<<27)
-/* Controller uses Auto CMD12 command to stop the transfer */
-#define SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12 (1<<28)
-/* Controller doesn't have HISPD bit field in HI-SPEED SD card */
-#define SDHCI_QUIRK_NO_HISPD_BIT (1<<29)
-/* Controller treats ADMA descriptors with length 0000h incorrectly */
-#define SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC (1<<30)
-/* The read-only detection via SDHCI_PRESENT_STATE register is unstable */
-#define SDHCI_QUIRK_UNSTABLE_RO_DETECT (1<<31)
-
- unsigned int quirks2; /* More deviations from spec. */
-
-#define SDHCI_QUIRK2_HOST_OFF_CARD_ON (1<<0)
-
- int irq; /* Device IRQ */
- void __iomem *ioaddr; /* Mapped address */
-
- const struct sdhci_ops *ops; /* Low level hw interface */
-
- struct regulator *vmmc; /* Power regulator */
-
- /* Internal data */
- struct mmc_host *mmc; /* MMC structure */
- u64 dma_mask; /* custom DMA mask */
-
-#if defined(CONFIG_LEDS_CLASS) || defined(CONFIG_LEDS_CLASS_MODULE)
- struct led_classdev led; /* LED control */
- char led_name[32];
-#endif
-
- spinlock_t lock; /* Mutex */
-
- int flags; /* Host attributes */
-#define SDHCI_USE_SDMA (1<<0) /* Host is SDMA capable */
-#define SDHCI_USE_ADMA (1<<1) /* Host is ADMA capable */
-#define SDHCI_REQ_USE_DMA (1<<2) /* Use DMA for this req. */
-#define SDHCI_DEVICE_DEAD (1<<3) /* Device unresponsive */
-#define SDHCI_SDR50_NEEDS_TUNING (1<<4) /* SDR50 needs tuning */
-#define SDHCI_NEEDS_RETUNING (1<<5) /* Host needs retuning */
-#define SDHCI_AUTO_CMD12 (1<<6) /* Auto CMD12 support */
-#define SDHCI_AUTO_CMD23 (1<<7) /* Auto CMD23 support */
-#define SDHCI_PV_ENABLED (1<<8) /* Preset value enabled */
-#define SDHCI_SDIO_IRQ_ENABLED (1<<9) /* SDIO irq enabled */
-#define SDHCI_HS200_NEEDS_TUNING (1<<10) /* HS200 needs tuning */
-
- unsigned int version; /* SDHCI spec. version */
-
- unsigned int max_clk; /* Max possible freq (MHz) */
- unsigned int timeout_clk; /* Timeout freq (KHz) */
- unsigned int clk_mul; /* Clock Muliplier value */
-
- unsigned int clock; /* Current clock (MHz) */
- u8 pwr; /* Current voltage */
-
- bool runtime_suspended; /* Host is runtime suspended */
-
- struct mmc_request *mrq; /* Current request */
- struct mmc_command *cmd; /* Current command */
- struct mmc_data *data; /* Current data request */
- unsigned int data_early:1; /* Data finished before cmd */
-
- struct sg_mapping_iter sg_miter; /* SG state for PIO */
- unsigned int blocks; /* remaining PIO blocks */
-
- int sg_count; /* Mapped sg entries */
-
- u8 *adma_desc; /* ADMA descriptor table */
- u8 *align_buffer; /* Bounce buffer */
-
- dma_addr_t adma_addr; /* Mapped ADMA descr. table */
- dma_addr_t align_addr; /* Mapped bounce buffer */
-
- struct tasklet_struct card_tasklet; /* Tasklet structures */
- struct tasklet_struct finish_tasklet;
-
- struct timer_list timer; /* Timer for timeouts */
-
- unsigned int caps; /* Alternative capabilities */
-
- unsigned int ocr_avail_sdio; /* OCR bit masks */
- unsigned int ocr_avail_sd;
- unsigned int ocr_avail_mmc;
-
- wait_queue_head_t buf_ready_int; /* Waitqueue for Buffer Read Ready interrupt */
- unsigned int tuning_done; /* Condition flag set when CMD19 succeeds */
-
- unsigned int tuning_count; /* Timer count for re-tuning */
- unsigned int tuning_mode; /* Re-tuning mode supported by host */
-#define SDHCI_TUNING_MODE_1 0
- struct timer_list tuning_timer; /* Timer for tuning */
-
- unsigned long private[0] ____cacheline_aligned;
-};
-#endif /* LINUX_MMC_SDHCI_H */
diff --git a/ANDROID_3.4.5/include/linux/mmc/sdio.h b/ANDROID_3.4.5/include/linux/mmc/sdio.h
deleted file mode 100644
index c9fe66c5..00000000
--- a/ANDROID_3.4.5/include/linux/mmc/sdio.h
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * include/linux/mmc/sdio.h
- *
- * Copyright 2006-2007 Pierre Ossman
- *
- * 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_MMC_SDIO_H
-#define LINUX_MMC_SDIO_H
-
-/* SDIO commands type argument response */
-#define SD_IO_SEND_OP_COND 5 /* bcr [23:0] OCR R4 */
-#define SD_IO_RW_DIRECT 52 /* ac [31:0] See below R5 */
-#define SD_IO_RW_EXTENDED 53 /* adtc [31:0] See below R5 */
-
-/*
- * SD_IO_RW_DIRECT argument format:
- *
- * [31] R/W flag
- * [30:28] Function number
- * [27] RAW flag
- * [25:9] Register address
- * [7:0] Data
- */
-
-/*
- * SD_IO_RW_EXTENDED argument format:
- *
- * [31] R/W flag
- * [30:28] Function number
- * [27] Block mode
- * [26] Increment address
- * [25:9] Register address
- * [8:0] Byte/block count
- */
-
-#define R4_18V_PRESENT (1<<24)
-#define R4_MEMORY_PRESENT (1 << 27)
-
-/*
- SDIO status in R5
- Type
- e : error bit
- s : status bit
- r : detected and set for the actual command response
- x : detected and set during command execution. the host must poll
- the card by sending status command in order to read these bits.
- Clear condition
- a : according to the card state
- b : always related to the previous command. Reception of
- a valid command will clear it (with a delay of one command)
- c : clear by read
- */
-
-#define R5_COM_CRC_ERROR (1 << 15) /* er, b */
-#define R5_ILLEGAL_COMMAND (1 << 14) /* er, b */
-#define R5_ERROR (1 << 11) /* erx, c */
-#define R5_FUNCTION_NUMBER (1 << 9) /* er, c */
-#define R5_OUT_OF_RANGE (1 << 8) /* er, c */
-#define R5_STATUS(x) (x & 0xCB00)
-#define R5_IO_CURRENT_STATE(x) ((x & 0x3000) >> 12) /* s, b */
-
-/*
- * Card Common Control Registers (CCCR)
- */
-
-#define SDIO_CCCR_CCCR 0x00
-
-#define SDIO_CCCR_REV_1_00 0 /* CCCR/FBR Version 1.00 */
-#define SDIO_CCCR_REV_1_10 1 /* CCCR/FBR Version 1.10 */
-#define SDIO_CCCR_REV_1_20 2 /* CCCR/FBR Version 1.20 */
-#define SDIO_CCCR_REV_3_00 3 /* CCCR/FBR Version 3.00 */
-
-#define SDIO_SDIO_REV_1_00 0 /* SDIO Spec Version 1.00 */
-#define SDIO_SDIO_REV_1_10 1 /* SDIO Spec Version 1.10 */
-#define SDIO_SDIO_REV_1_20 2 /* SDIO Spec Version 1.20 */
-#define SDIO_SDIO_REV_2_00 3 /* SDIO Spec Version 2.00 */
-#define SDIO_SDIO_REV_3_00 4 /* SDIO Spec Version 3.00 */
-
-#define SDIO_CCCR_SD 0x01
-
-#define SDIO_SD_REV_1_01 0 /* SD Physical Spec Version 1.01 */
-#define SDIO_SD_REV_1_10 1 /* SD Physical Spec Version 1.10 */
-#define SDIO_SD_REV_2_00 2 /* SD Physical Spec Version 2.00 */
-#define SDIO_SD_REV_3_00 3 /* SD Physical Spev Version 3.00 */
-
-#define SDIO_CCCR_IOEx 0x02
-#define SDIO_CCCR_IORx 0x03
-
-#define SDIO_CCCR_IENx 0x04 /* Function/Master Interrupt Enable */
-#define SDIO_CCCR_INTx 0x05 /* Function Interrupt Pending */
-
-#define SDIO_CCCR_ABORT 0x06 /* function abort/card reset */
-
-#define SDIO_CCCR_IF 0x07 /* bus interface controls */
-
-#define SDIO_BUS_WIDTH_1BIT 0x00
-#define SDIO_BUS_WIDTH_4BIT 0x02
-#define SDIO_BUS_ECSI 0x20 /* Enable continuous SPI interrupt */
-#define SDIO_BUS_SCSI 0x40 /* Support continuous SPI interrupt */
-
-#define SDIO_BUS_ASYNC_INT 0x20
-
-#define SDIO_BUS_CD_DISABLE 0x80 /* disable pull-up on DAT3 (pin 1) */
-
-#define SDIO_CCCR_CAPS 0x08
-
-#define SDIO_CCCR_CAP_SDC 0x01 /* can do CMD52 while data transfer */
-#define SDIO_CCCR_CAP_SMB 0x02 /* can do multi-block xfers (CMD53) */
-#define SDIO_CCCR_CAP_SRW 0x04 /* supports read-wait protocol */
-#define SDIO_CCCR_CAP_SBS 0x08 /* supports suspend/resume */
-#define SDIO_CCCR_CAP_S4MI 0x10 /* interrupt during 4-bit CMD53 */
-#define SDIO_CCCR_CAP_E4MI 0x20 /* enable ints during 4-bit CMD53 */
-#define SDIO_CCCR_CAP_LSC 0x40 /* low speed card */
-#define SDIO_CCCR_CAP_4BLS 0x80 /* 4 bit low speed card */
-
-#define SDIO_CCCR_CIS 0x09 /* common CIS pointer (3 bytes) */
-
-/* Following 4 regs are valid only if SBS is set */
-#define SDIO_CCCR_SUSPEND 0x0c
-#define SDIO_CCCR_SELx 0x0d
-#define SDIO_CCCR_EXECx 0x0e
-#define SDIO_CCCR_READYx 0x0f
-
-#define SDIO_CCCR_BLKSIZE 0x10
-
-#define SDIO_CCCR_POWER 0x12
-
-#define SDIO_POWER_SMPC 0x01 /* Supports Master Power Control */
-#define SDIO_POWER_EMPC 0x02 /* Enable Master Power Control */
-
-#define SDIO_CCCR_SPEED 0x13
-
-#define SDIO_SPEED_SHS 0x01 /* Supports High-Speed mode */
-#define SDIO_SPEED_BSS_SHIFT 1
-#define SDIO_SPEED_BSS_MASK (7<<SDIO_SPEED_BSS_SHIFT)
-#define SDIO_SPEED_SDR12 (0<<SDIO_SPEED_BSS_SHIFT)
-#define SDIO_SPEED_SDR25 (1<<SDIO_SPEED_BSS_SHIFT)
-#define SDIO_SPEED_SDR50 (2<<SDIO_SPEED_BSS_SHIFT)
-#define SDIO_SPEED_SDR104 (3<<SDIO_SPEED_BSS_SHIFT)
-#define SDIO_SPEED_DDR50 (4<<SDIO_SPEED_BSS_SHIFT)
-#define SDIO_SPEED_EHS SDIO_SPEED_SDR25 /* Enable High-Speed */
-
-#define SDIO_CCCR_UHS 0x14
-#define SDIO_UHS_SDR50 0x01
-#define SDIO_UHS_SDR104 0x02
-#define SDIO_UHS_DDR50 0x04
-
-#define SDIO_CCCR_DRIVE_STRENGTH 0x15
-#define SDIO_SDTx_MASK 0x07
-#define SDIO_DRIVE_SDTA (1<<0)
-#define SDIO_DRIVE_SDTC (1<<1)
-#define SDIO_DRIVE_SDTD (1<<2)
-#define SDIO_DRIVE_DTSx_MASK 0x03
-#define SDIO_DRIVE_DTSx_SHIFT 4
-#define SDIO_DTSx_SET_TYPE_B (0 << SDIO_DRIVE_DTSx_SHIFT)
-#define SDIO_DTSx_SET_TYPE_A (1 << SDIO_DRIVE_DTSx_SHIFT)
-#define SDIO_DTSx_SET_TYPE_C (2 << SDIO_DRIVE_DTSx_SHIFT)
-#define SDIO_DTSx_SET_TYPE_D (3 << SDIO_DRIVE_DTSx_SHIFT)
-/*
- * Function Basic Registers (FBR)
- */
-
-#define SDIO_FBR_BASE(f) ((f) * 0x100) /* base of function f's FBRs */
-
-#define SDIO_FBR_STD_IF 0x00
-
-#define SDIO_FBR_SUPPORTS_CSA 0x40 /* supports Code Storage Area */
-#define SDIO_FBR_ENABLE_CSA 0x80 /* enable Code Storage Area */
-
-#define SDIO_FBR_STD_IF_EXT 0x01
-
-#define SDIO_FBR_POWER 0x02
-
-#define SDIO_FBR_POWER_SPS 0x01 /* Supports Power Selection */
-#define SDIO_FBR_POWER_EPS 0x02 /* Enable (low) Power Selection */
-
-#define SDIO_FBR_CIS 0x09 /* CIS pointer (3 bytes) */
-
-
-#define SDIO_FBR_CSA 0x0C /* CSA pointer (3 bytes) */
-
-#define SDIO_FBR_CSA_DATA 0x0F
-
-#define SDIO_FBR_BLKSIZE 0x10 /* block size (2 bytes) */
-
-#endif /* LINUX_MMC_SDIO_H */
diff --git a/ANDROID_3.4.5/include/linux/mmc/sdio_func.h b/ANDROID_3.4.5/include/linux/mmc/sdio_func.h
deleted file mode 100755
index dc680c4b..00000000
--- a/ANDROID_3.4.5/include/linux/mmc/sdio_func.h
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * include/linux/mmc/sdio_func.h
- *
- * Copyright 2007-2008 Pierre Ossman
- *
- * 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_MMC_SDIO_FUNC_H
-#define LINUX_MMC_SDIO_FUNC_H
-
-#include <linux/device.h>
-#include <linux/mod_devicetable.h>
-
-#include <linux/mmc/pm.h>
-
-struct mmc_card;
-struct sdio_func;
-
-typedef void (sdio_irq_handler_t)(struct sdio_func *);
-
-/*
- * Structure used to hold embedded SDIO device data from platform layer
- */
-struct sdio_embedded_func {
- uint8_t f_class;
- uint32_t f_maxblksize;
-};
-
-/*
- * SDIO function CIS tuple (unknown to the core)
- */
-struct sdio_func_tuple {
- struct sdio_func_tuple *next;
- unsigned char code;
- unsigned char size;
- unsigned char data[0];
-};
-
-/*
- * SDIO function devices
- */
-struct sdio_func {
- struct mmc_card *card; /* the card this device belongs to */
- struct device dev; /* the device */
- sdio_irq_handler_t *irq_handler; /* IRQ callback */
- unsigned int num; /* function number */
-
- unsigned char class; /* standard interface class */
- unsigned short vendor; /* vendor id */
- unsigned short device; /* device id */
-
- unsigned max_blksize; /* maximum block size */
- unsigned cur_blksize; /* current block size */
-
- unsigned enable_timeout; /* max enable timeout in msec */
-
- unsigned int state; /* function state */
-#define SDIO_STATE_PRESENT (1<<0) /* present in sysfs */
-
- u8 tmpbuf[4]; /* DMA:able scratch buffer */
-
- unsigned num_info; /* number of info strings */
- const char **info; /* info strings */
-
- struct sdio_func_tuple *tuples;
-};
-
-#define sdio_func_present(f) ((f)->state & SDIO_STATE_PRESENT)
-
-#define sdio_func_set_present(f) ((f)->state |= SDIO_STATE_PRESENT)
-
-#define sdio_func_id(f) (dev_name(&(f)->dev))
-
-#define sdio_get_drvdata(f) dev_get_drvdata(&(f)->dev)
-#define sdio_set_drvdata(f,d) dev_set_drvdata(&(f)->dev, d)
-#define dev_to_sdio_func(d) container_of(d, struct sdio_func, dev)
-
-/*
- * SDIO function device driver
- */
-struct sdio_driver {
- char *name;
- const struct sdio_device_id *id_table;
-
- int (*probe)(struct sdio_func *, const struct sdio_device_id *);
- void (*remove)(struct sdio_func *);
-
- struct device_driver drv;
-};
-
-#define to_sdio_driver(d) container_of(d, struct sdio_driver, drv)
-
-/**
- * SDIO_DEVICE - macro used to describe a specific SDIO device
- * @vend: the 16 bit manufacturer code
- * @dev: the 16 bit function id
- *
- * This macro is used to create a struct sdio_device_id that matches a
- * specific device. The class field will be set to SDIO_ANY_ID.
- */
-#define SDIO_DEVICE(vend,dev) \
- .class = SDIO_ANY_ID, \
- .vendor = (vend), .device = (dev)
-
-/**
- * SDIO_DEVICE_CLASS - macro used to describe a specific SDIO device class
- * @dev_class: the 8 bit standard interface code
- *
- * This macro is used to create a struct sdio_device_id that matches a
- * specific standard SDIO function type. The vendor and device fields will
- * be set to SDIO_ANY_ID.
- */
-#define SDIO_DEVICE_CLASS(dev_class) \
- .class = (dev_class), \
- .vendor = SDIO_ANY_ID, .device = SDIO_ANY_ID
-
-extern int sdio_register_driver(struct sdio_driver *);
-extern void sdio_unregister_driver(struct sdio_driver *);
-
-/*
- * SDIO I/O operations
- */
-extern void sdio_claim_host(struct sdio_func *func);
-extern void sdio_release_host(struct sdio_func *func);
-
-extern int sdio_enable_func(struct sdio_func *func);
-extern int sdio_disable_func(struct sdio_func *func);
-
-extern int sdio_set_block_size(struct sdio_func *func, unsigned blksz);
-
-extern int sdio_claim_irq(struct sdio_func *func, sdio_irq_handler_t *handler);
-extern int sdio_release_irq(struct sdio_func *func);
-
-extern unsigned int sdio_align_size(struct sdio_func *func, unsigned int sz);
-
-extern u8 sdio_readb(struct sdio_func *func, unsigned int addr, int *err_ret);
-extern u8 sdio_readb_ext(struct sdio_func *func, unsigned int addr, int *err_ret,
- unsigned in);
-extern u16 sdio_readw(struct sdio_func *func, unsigned int addr, int *err_ret);
-extern u32 sdio_readl(struct sdio_func *func, unsigned int addr, int *err_ret);
-
-extern int sdio_memcpy_fromio(struct sdio_func *func, void *dst,
- unsigned int addr, int count);
-extern int sdio_readsb(struct sdio_func *func, void *dst,
- unsigned int addr, int count);
-
-extern void sdio_writeb(struct sdio_func *func, u8 b,
- unsigned int addr, int *err_ret);
-extern void sdio_writew(struct sdio_func *func, u16 b,
- unsigned int addr, int *err_ret);
-extern void sdio_writel(struct sdio_func *func, u32 b,
- unsigned int addr, int *err_ret);
-
-extern u8 sdio_writeb_readb(struct sdio_func *func, u8 write_byte,
- unsigned int addr, int *err_ret);
-
-extern int sdio_memcpy_toio(struct sdio_func *func, unsigned int addr,
- void *src, int count);
-extern int sdio_writesb(struct sdio_func *func, unsigned int addr,
- void *src, int count);
-
-extern unsigned char sdio_f0_readb(struct sdio_func *func,
- unsigned int addr, int *err_ret);
-extern void sdio_f0_writeb(struct sdio_func *func, unsigned char b,
- unsigned int addr, int *err_ret);
-
-extern mmc_pm_flag_t sdio_get_host_pm_caps(struct sdio_func *func);
-extern int sdio_set_host_pm_flags(struct sdio_func *func, mmc_pm_flag_t flags);
-
-#endif /* LINUX_MMC_SDIO_FUNC_H */
diff --git a/ANDROID_3.4.5/include/linux/mmc/sdio_ids.h b/ANDROID_3.4.5/include/linux/mmc/sdio_ids.h
deleted file mode 100644
index 9f03feed..00000000
--- a/ANDROID_3.4.5/include/linux/mmc/sdio_ids.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * SDIO Classes, Interface Types, Manufacturer IDs, etc.
- */
-
-#ifndef LINUX_MMC_SDIO_IDS_H
-#define LINUX_MMC_SDIO_IDS_H
-
-/*
- * Standard SDIO Function Interfaces
- */
-
-#define SDIO_CLASS_NONE 0x00 /* Not a SDIO standard interface */
-#define SDIO_CLASS_UART 0x01 /* standard UART interface */
-#define SDIO_CLASS_BT_A 0x02 /* Type-A BlueTooth std interface */
-#define SDIO_CLASS_BT_B 0x03 /* Type-B BlueTooth std interface */
-#define SDIO_CLASS_GPS 0x04 /* GPS standard interface */
-#define SDIO_CLASS_CAMERA 0x05 /* Camera standard interface */
-#define SDIO_CLASS_PHS 0x06 /* PHS standard interface */
-#define SDIO_CLASS_WLAN 0x07 /* WLAN interface */
-#define SDIO_CLASS_ATA 0x08 /* Embedded SDIO-ATA std interface */
-#define SDIO_CLASS_BT_AMP 0x09 /* Type-A Bluetooth AMP interface */
-
-/*
- * Vendors and devices. Sort key: vendor first, device next.
- */
-#define SDIO_VENDOR_ID_INTEL 0x0089
-#define SDIO_DEVICE_ID_INTEL_IWMC3200WIMAX 0x1402
-#define SDIO_DEVICE_ID_INTEL_IWMC3200WIFI 0x1403
-#define SDIO_DEVICE_ID_INTEL_IWMC3200TOP 0x1404
-#define SDIO_DEVICE_ID_INTEL_IWMC3200GPS 0x1405
-#define SDIO_DEVICE_ID_INTEL_IWMC3200BT 0x1406
-#define SDIO_DEVICE_ID_INTEL_IWMC3200WIMAX_2G5 0x1407
-
-#define SDIO_VENDOR_ID_MARVELL 0x02df
-#define SDIO_DEVICE_ID_MARVELL_LIBERTAS 0x9103
-#define SDIO_DEVICE_ID_MARVELL_8688WLAN 0x9104
-#define SDIO_DEVICE_ID_MARVELL_8688BT 0x9105
-
-#define SDIO_VENDOR_ID_SIANO 0x039a
-#define SDIO_DEVICE_ID_SIANO_NOVA_B0 0x0201
-#define SDIO_DEVICE_ID_SIANO_NICE 0x0202
-#define SDIO_DEVICE_ID_SIANO_VEGA_A0 0x0300
-#define SDIO_DEVICE_ID_SIANO_VENICE 0x0301
-#define SDIO_DEVICE_ID_SIANO_NOVA_A0 0x1100
-#define SDIO_DEVICE_ID_SIANO_STELLAR 0x5347
-
-#endif /* LINUX_MMC_SDIO_IDS_H */
diff --git a/ANDROID_3.4.5/include/linux/mmc/sh_mmcif.h b/ANDROID_3.4.5/include/linux/mmc/sh_mmcif.h
deleted file mode 100644
index 05f0e3db..00000000
--- a/ANDROID_3.4.5/include/linux/mmc/sh_mmcif.h
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- * include/linux/mmc/sh_mmcif.h
- *
- * platform data for eMMC driver
- *
- * Copyright (C) 2010 Renesas Solutions Corp.
- *
- * 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.
- *
- */
-
-#ifndef LINUX_MMC_SH_MMCIF_H
-#define LINUX_MMC_SH_MMCIF_H
-
-#include <linux/io.h>
-#include <linux/platform_device.h>
-#include <linux/sh_dma.h>
-
-/*
- * MMCIF : CE_CLK_CTRL [19:16]
- * 1000 : Peripheral clock / 512
- * 0111 : Peripheral clock / 256
- * 0110 : Peripheral clock / 128
- * 0101 : Peripheral clock / 64
- * 0100 : Peripheral clock / 32
- * 0011 : Peripheral clock / 16
- * 0010 : Peripheral clock / 8
- * 0001 : Peripheral clock / 4
- * 0000 : Peripheral clock / 2
- * 1111 : Peripheral clock (sup_pclk set '1')
- */
-
-struct sh_mmcif_dma {
- struct sh_dmae_slave chan_priv_tx;
- struct sh_dmae_slave chan_priv_rx;
-};
-
-struct sh_mmcif_plat_data {
- void (*set_pwr)(struct platform_device *pdev, int state);
- void (*down_pwr)(struct platform_device *pdev);
- int (*get_cd)(struct platform_device *pdef);
- struct sh_mmcif_dma *dma; /* Deprecated. Instead */
- unsigned int slave_id_tx; /* use embedded slave_id_[tr]x */
- unsigned int slave_id_rx;
- u8 sup_pclk; /* 1 :SH7757, 0: SH7724/SH7372 */
- unsigned long caps;
- u32 ocr;
-};
-
-#define MMCIF_CE_CMD_SET 0x00000000
-#define MMCIF_CE_ARG 0x00000008
-#define MMCIF_CE_ARG_CMD12 0x0000000C
-#define MMCIF_CE_CMD_CTRL 0x00000010
-#define MMCIF_CE_BLOCK_SET 0x00000014
-#define MMCIF_CE_CLK_CTRL 0x00000018
-#define MMCIF_CE_BUF_ACC 0x0000001C
-#define MMCIF_CE_RESP3 0x00000020
-#define MMCIF_CE_RESP2 0x00000024
-#define MMCIF_CE_RESP1 0x00000028
-#define MMCIF_CE_RESP0 0x0000002C
-#define MMCIF_CE_RESP_CMD12 0x00000030
-#define MMCIF_CE_DATA 0x00000034
-#define MMCIF_CE_INT 0x00000040
-#define MMCIF_CE_INT_MASK 0x00000044
-#define MMCIF_CE_HOST_STS1 0x00000048
-#define MMCIF_CE_HOST_STS2 0x0000004C
-#define MMCIF_CE_VERSION 0x0000007C
-
-/* CE_BUF_ACC */
-#define BUF_ACC_DMAWEN (1 << 25)
-#define BUF_ACC_DMAREN (1 << 24)
-#define BUF_ACC_BUSW_32 (0 << 17)
-#define BUF_ACC_BUSW_16 (1 << 17)
-#define BUF_ACC_ATYP (1 << 16)
-
-/* CE_CLK_CTRL */
-#define CLK_ENABLE (1 << 24) /* 1: output mmc clock */
-#define CLK_CLEAR (0xf << 16)
-#define CLK_SUP_PCLK (0xf << 16)
-#define CLKDIV_4 (1 << 16) /* mmc clock frequency.
- * n: bus clock/(2^(n+1)) */
-#define CLKDIV_256 (7 << 16) /* mmc clock frequency. (see above) */
-#define SRSPTO_256 (2 << 12) /* resp timeout */
-#define SRBSYTO_29 (0xf << 8) /* resp busy timeout */
-#define SRWDTO_29 (0xf << 4) /* read/write timeout */
-#define SCCSTO_29 (0xf << 0) /* ccs timeout */
-
-/* CE_VERSION */
-#define SOFT_RST_ON (1 << 31)
-#define SOFT_RST_OFF 0
-
-static inline u32 sh_mmcif_readl(void __iomem *addr, int reg)
-{
- return __raw_readl(addr + reg);
-}
-
-static inline void sh_mmcif_writel(void __iomem *addr, int reg, u32 val)
-{
- __raw_writel(val, addr + reg);
-}
-
-#define SH_MMCIF_BBS 512 /* boot block size */
-
-static inline void sh_mmcif_boot_cmd_send(void __iomem *base,
- unsigned long cmd, unsigned long arg)
-{
- sh_mmcif_writel(base, MMCIF_CE_INT, 0);
- sh_mmcif_writel(base, MMCIF_CE_ARG, arg);
- sh_mmcif_writel(base, MMCIF_CE_CMD_SET, cmd);
-}
-
-static inline int sh_mmcif_boot_cmd_poll(void __iomem *base, unsigned long mask)
-{
- unsigned long tmp;
- int cnt;
-
- for (cnt = 0; cnt < 1000000; cnt++) {
- tmp = sh_mmcif_readl(base, MMCIF_CE_INT);
- if (tmp & mask) {
- sh_mmcif_writel(base, MMCIF_CE_INT, tmp & ~mask);
- return 0;
- }
- }
-
- return -1;
-}
-
-static inline int sh_mmcif_boot_cmd(void __iomem *base,
- unsigned long cmd, unsigned long arg)
-{
- sh_mmcif_boot_cmd_send(base, cmd, arg);
- return sh_mmcif_boot_cmd_poll(base, 0x00010000);
-}
-
-static inline int sh_mmcif_boot_do_read_single(void __iomem *base,
- unsigned int block_nr,
- unsigned long *buf)
-{
- int k;
-
- /* CMD13 - Status */
- sh_mmcif_boot_cmd(base, 0x0d400000, 0x00010000);
-
- if (sh_mmcif_readl(base, MMCIF_CE_RESP0) != 0x0900)
- return -1;
-
- /* CMD17 - Read */
- sh_mmcif_boot_cmd(base, 0x11480000, block_nr * SH_MMCIF_BBS);
- if (sh_mmcif_boot_cmd_poll(base, 0x00100000) < 0)
- return -1;
-
- for (k = 0; k < (SH_MMCIF_BBS / 4); k++)
- buf[k] = sh_mmcif_readl(base, MMCIF_CE_DATA);
-
- return 0;
-}
-
-static inline int sh_mmcif_boot_do_read(void __iomem *base,
- unsigned long first_block,
- unsigned long nr_blocks,
- void *buf)
-{
- unsigned long k;
- int ret = 0;
-
- /* In data transfer mode: Set clock to Bus clock/4 (about 20Mhz) */
- sh_mmcif_writel(base, MMCIF_CE_CLK_CTRL,
- CLK_ENABLE | CLKDIV_4 | SRSPTO_256 |
- SRBSYTO_29 | SRWDTO_29 | SCCSTO_29);
-
- /* CMD9 - Get CSD */
- sh_mmcif_boot_cmd(base, 0x09806000, 0x00010000);
-
- /* CMD7 - Select the card */
- sh_mmcif_boot_cmd(base, 0x07400000, 0x00010000);
-
- /* CMD16 - Set the block size */
- sh_mmcif_boot_cmd(base, 0x10400000, SH_MMCIF_BBS);
-
- for (k = 0; !ret && k < nr_blocks; k++)
- ret = sh_mmcif_boot_do_read_single(base, first_block + k,
- buf + (k * SH_MMCIF_BBS));
-
- return ret;
-}
-
-static inline void sh_mmcif_boot_init(void __iomem *base)
-{
- /* reset */
- sh_mmcif_writel(base, MMCIF_CE_VERSION, SOFT_RST_ON);
- sh_mmcif_writel(base, MMCIF_CE_VERSION, SOFT_RST_OFF);
-
- /* byte swap */
- sh_mmcif_writel(base, MMCIF_CE_BUF_ACC, BUF_ACC_ATYP);
-
- /* Set block size in MMCIF hardware */
- sh_mmcif_writel(base, MMCIF_CE_BLOCK_SET, SH_MMCIF_BBS);
-
- /* Enable the clock, set it to Bus clock/256 (about 325Khz). */
- sh_mmcif_writel(base, MMCIF_CE_CLK_CTRL,
- CLK_ENABLE | CLKDIV_256 | SRSPTO_256 |
- SRBSYTO_29 | SRWDTO_29 | SCCSTO_29);
-
- /* CMD0 */
- sh_mmcif_boot_cmd(base, 0x00000040, 0);
-
- /* CMD1 - Get OCR */
- do {
- sh_mmcif_boot_cmd(base, 0x01405040, 0x40300000); /* CMD1 */
- } while ((sh_mmcif_readl(base, MMCIF_CE_RESP0) & 0x80000000)
- != 0x80000000);
-
- /* CMD2 - Get CID */
- sh_mmcif_boot_cmd(base, 0x02806040, 0);
-
- /* CMD3 - Set card relative address */
- sh_mmcif_boot_cmd(base, 0x03400040, 0x00010000);
-}
-
-#endif /* LINUX_MMC_SH_MMCIF_H */
diff --git a/ANDROID_3.4.5/include/linux/mmc/sh_mobile_sdhi.h b/ANDROID_3.4.5/include/linux/mmc/sh_mobile_sdhi.h
deleted file mode 100644
index e94e620a..00000000
--- a/ANDROID_3.4.5/include/linux/mmc/sh_mobile_sdhi.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef LINUX_MMC_SH_MOBILE_SDHI_H
-#define LINUX_MMC_SH_MOBILE_SDHI_H
-
-#include <linux/types.h>
-
-struct platform_device;
-struct tmio_mmc_data;
-
-#define SH_MOBILE_SDHI_IRQ_CARD_DETECT "card_detect"
-#define SH_MOBILE_SDHI_IRQ_SDCARD "sdcard"
-#define SH_MOBILE_SDHI_IRQ_SDIO "sdio"
-
-/**
- * struct sh_mobile_sdhi_ops - SDHI driver callbacks
- * @cd_wakeup: trigger a card-detection run
- */
-struct sh_mobile_sdhi_ops {
- void (*cd_wakeup)(const struct platform_device *pdev);
-};
-
-struct sh_mobile_sdhi_info {
- int dma_slave_tx;
- int dma_slave_rx;
- unsigned long tmio_flags;
- unsigned long tmio_caps;
- u32 tmio_ocr_mask; /* available MMC voltages */
- unsigned int cd_gpio;
- struct tmio_mmc_data *pdata;
- void (*set_pwr)(struct platform_device *pdev, int state);
- int (*get_cd)(struct platform_device *pdev);
-
- /* callbacks for board specific setup code */
- int (*init)(struct platform_device *pdev,
- const struct sh_mobile_sdhi_ops *ops);
- void (*cleanup)(struct platform_device *pdev);
-};
-
-#endif /* LINUX_MMC_SH_MOBILE_SDHI_H */
diff --git a/ANDROID_3.4.5/include/linux/mmc/tmio.h b/ANDROID_3.4.5/include/linux/mmc/tmio.h
deleted file mode 100644
index a1c1f321..00000000
--- a/ANDROID_3.4.5/include/linux/mmc/tmio.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * include/linux/mmc/tmio.h
- *
- * Copyright (C) 2007 Ian Molton
- * Copyright (C) 2004 Ian Molton
- *
- * 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.
- *
- * Driver for the MMC / SD / SDIO cell found in:
- *
- * TC6393XB TC6391XB TC6387XB T7L66XB ASIC3
- */
-#ifndef LINUX_MMC_TMIO_H
-#define LINUX_MMC_TMIO_H
-
-#define CTL_SD_CMD 0x00
-#define CTL_ARG_REG 0x04
-#define CTL_STOP_INTERNAL_ACTION 0x08
-#define CTL_XFER_BLK_COUNT 0xa
-#define CTL_RESPONSE 0x0c
-#define CTL_STATUS 0x1c
-#define CTL_STATUS2 0x1e
-#define CTL_IRQ_MASK 0x20
-#define CTL_SD_CARD_CLK_CTL 0x24
-#define CTL_SD_XFER_LEN 0x26
-#define CTL_SD_MEM_CARD_OPT 0x28
-#define CTL_SD_ERROR_DETAIL_STATUS 0x2c
-#define CTL_SD_DATA_PORT 0x30
-#define CTL_TRANSACTION_CTL 0x34
-#define CTL_SDIO_STATUS 0x36
-#define CTL_SDIO_IRQ_MASK 0x38
-#define CTL_DMA_ENABLE 0xd8
-#define CTL_RESET_SD 0xe0
-#define CTL_SDIO_REGS 0x100
-#define CTL_CLK_AND_WAIT_CTL 0x138
-#define CTL_RESET_SDIO 0x1e0
-
-/* Definitions for values the CTRL_STATUS register can take. */
-#define TMIO_STAT_CMDRESPEND 0x00000001
-#define TMIO_STAT_DATAEND 0x00000004
-#define TMIO_STAT_CARD_REMOVE 0x00000008
-#define TMIO_STAT_CARD_INSERT 0x00000010
-#define TMIO_STAT_SIGSTATE 0x00000020
-#define TMIO_STAT_WRPROTECT 0x00000080
-#define TMIO_STAT_CARD_REMOVE_A 0x00000100
-#define TMIO_STAT_CARD_INSERT_A 0x00000200
-#define TMIO_STAT_SIGSTATE_A 0x00000400
-#define TMIO_STAT_CMD_IDX_ERR 0x00010000
-#define TMIO_STAT_CRCFAIL 0x00020000
-#define TMIO_STAT_STOPBIT_ERR 0x00040000
-#define TMIO_STAT_DATATIMEOUT 0x00080000
-#define TMIO_STAT_RXOVERFLOW 0x00100000
-#define TMIO_STAT_TXUNDERRUN 0x00200000
-#define TMIO_STAT_CMDTIMEOUT 0x00400000
-#define TMIO_STAT_RXRDY 0x01000000
-#define TMIO_STAT_TXRQ 0x02000000
-#define TMIO_STAT_ILL_FUNC 0x20000000
-#define TMIO_STAT_CMD_BUSY 0x40000000
-#define TMIO_STAT_ILL_ACCESS 0x80000000
-
-#define TMIO_BBS 512 /* Boot block size */
-
-#endif /* LINUX_MMC_TMIO_H */
diff --git a/ANDROID_3.4.5/include/linux/mmdebug.h b/ANDROID_3.4.5/include/linux/mmdebug.h
deleted file mode 100644
index c04ecfe0..00000000
--- a/ANDROID_3.4.5/include/linux/mmdebug.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef LINUX_MM_DEBUG_H
-#define LINUX_MM_DEBUG_H 1
-
-#ifdef CONFIG_DEBUG_VM
-#define VM_BUG_ON(cond) BUG_ON(cond)
-#else
-#define VM_BUG_ON(cond) do { (void)(cond); } while (0)
-#endif
-
-#ifdef CONFIG_DEBUG_VIRTUAL
-#define VIRTUAL_BUG_ON(cond) BUG_ON(cond)
-#else
-#define VIRTUAL_BUG_ON(cond) do { } while (0)
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mmiotrace.h b/ANDROID_3.4.5/include/linux/mmiotrace.h
deleted file mode 100644
index c5d52780..00000000
--- a/ANDROID_3.4.5/include/linux/mmiotrace.h
+++ /dev/null
@@ -1,111 +0,0 @@
-#ifndef _LINUX_MMIOTRACE_H
-#define _LINUX_MMIOTRACE_H
-
-#include <linux/types.h>
-#include <linux/list.h>
-
-struct kmmio_probe;
-struct pt_regs;
-
-typedef void (*kmmio_pre_handler_t)(struct kmmio_probe *,
- struct pt_regs *, unsigned long addr);
-typedef void (*kmmio_post_handler_t)(struct kmmio_probe *,
- unsigned long condition, struct pt_regs *);
-
-struct kmmio_probe {
- /* kmmio internal list: */
- struct list_head list;
- /* start location of the probe point: */
- unsigned long addr;
- /* length of the probe region: */
- unsigned long len;
- /* Called before addr is executed: */
- kmmio_pre_handler_t pre_handler;
- /* Called after addr is executed: */
- kmmio_post_handler_t post_handler;
- void *private;
-};
-
-extern unsigned int kmmio_count;
-
-extern int register_kmmio_probe(struct kmmio_probe *p);
-extern void unregister_kmmio_probe(struct kmmio_probe *p);
-extern int kmmio_init(void);
-extern void kmmio_cleanup(void);
-
-#ifdef CONFIG_MMIOTRACE
-/* kmmio is active by some kmmio_probes? */
-static inline int is_kmmio_active(void)
-{
- return kmmio_count;
-}
-
-/* Called from page fault handler. */
-extern int kmmio_handler(struct pt_regs *regs, unsigned long addr);
-
-/* Called from ioremap.c */
-extern void mmiotrace_ioremap(resource_size_t offset, unsigned long size,
- void __iomem *addr);
-extern void mmiotrace_iounmap(volatile void __iomem *addr);
-
-/* For anyone to insert markers. Remember trailing newline. */
-extern __printf(1, 2) int mmiotrace_printk(const char *fmt, ...);
-#else /* !CONFIG_MMIOTRACE: */
-static inline int is_kmmio_active(void)
-{
- return 0;
-}
-
-static inline int kmmio_handler(struct pt_regs *regs, unsigned long addr)
-{
- return 0;
-}
-
-static inline void mmiotrace_ioremap(resource_size_t offset,
- unsigned long size, void __iomem *addr)
-{
-}
-
-static inline void mmiotrace_iounmap(volatile void __iomem *addr)
-{
-}
-
-static inline __printf(1, 2) int mmiotrace_printk(const char *fmt, ...)
-{
- return 0;
-}
-#endif /* CONFIG_MMIOTRACE */
-
-enum mm_io_opcode {
- MMIO_READ = 0x1, /* struct mmiotrace_rw */
- MMIO_WRITE = 0x2, /* struct mmiotrace_rw */
- MMIO_PROBE = 0x3, /* struct mmiotrace_map */
- MMIO_UNPROBE = 0x4, /* struct mmiotrace_map */
- MMIO_UNKNOWN_OP = 0x5, /* struct mmiotrace_rw */
-};
-
-struct mmiotrace_rw {
- resource_size_t phys; /* PCI address of register */
- unsigned long value;
- unsigned long pc; /* optional program counter */
- int map_id;
- unsigned char opcode; /* one of MMIO_{READ,WRITE,UNKNOWN_OP} */
- unsigned char width; /* size of register access in bytes */
-};
-
-struct mmiotrace_map {
- resource_size_t phys; /* base address in PCI space */
- unsigned long virt; /* base virtual address */
- unsigned long len; /* mapping size */
- int map_id;
- unsigned char opcode; /* MMIO_PROBE or MMIO_UNPROBE */
-};
-
-/* in kernel/trace/trace_mmiotrace.c */
-extern void enable_mmiotrace(void);
-extern void disable_mmiotrace(void);
-extern void mmio_trace_rw(struct mmiotrace_rw *rw);
-extern void mmio_trace_mapping(struct mmiotrace_map *map);
-extern int mmio_trace_printk(const char *fmt, va_list args);
-
-#endif /* _LINUX_MMIOTRACE_H */
diff --git a/ANDROID_3.4.5/include/linux/mmtimer.h b/ANDROID_3.4.5/include/linux/mmtimer.h
deleted file mode 100644
index 884cabf1..00000000
--- a/ANDROID_3.4.5/include/linux/mmtimer.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Intel Multimedia Timer device interface
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (c) 2001-2004 Silicon Graphics, Inc. All rights reserved.
- *
- * This file should define an interface compatible with the IA-PC Multimedia
- * Timers Draft Specification (rev. 0.97) from Intel. Note that some
- * hardware may not be able to safely export its registers to userspace,
- * so the ioctl interface should support all necessary functionality.
- *
- * 11/01/01 - jbarnes - initial revision
- * 9/10/04 - Christoph Lameter - remove interrupt support
- * 9/17/04 - jbarnes - remove test program, move some #defines to the driver
- */
-
-#ifndef _LINUX_MMTIMER_H
-#define _LINUX_MMTIMER_H
-
-/*
- * Breakdown of the ioctl's available. An 'optional' next to the command
- * indicates that supporting this command is optional, while 'required'
- * commands must be implemented if conformance is desired.
- *
- * MMTIMER_GETOFFSET - optional
- * Should return the offset (relative to the start of the page where the
- * registers are mapped) for the counter in question.
- *
- * MMTIMER_GETRES - required
- * The resolution of the clock in femto (10^-15) seconds
- *
- * MMTIMER_GETFREQ - required
- * Frequency of the clock in Hz
- *
- * MMTIMER_GETBITS - required
- * Number of bits in the clock's counter
- *
- * MMTIMER_MMAPAVAIL - required
- * Returns nonzero if the registers can be mmap'd into userspace, 0 otherwise
- *
- * MMTIMER_GETCOUNTER - required
- * Gets the current value in the counter
- */
-#define MMTIMER_IOCTL_BASE 'm'
-
-#define MMTIMER_GETOFFSET _IO(MMTIMER_IOCTL_BASE, 0)
-#define MMTIMER_GETRES _IOR(MMTIMER_IOCTL_BASE, 1, unsigned long)
-#define MMTIMER_GETFREQ _IOR(MMTIMER_IOCTL_BASE, 2, unsigned long)
-#define MMTIMER_GETBITS _IO(MMTIMER_IOCTL_BASE, 4)
-#define MMTIMER_MMAPAVAIL _IO(MMTIMER_IOCTL_BASE, 6)
-#define MMTIMER_GETCOUNTER _IOR(MMTIMER_IOCTL_BASE, 9, unsigned long)
-
-#endif /* _LINUX_MMTIMER_H */
diff --git a/ANDROID_3.4.5/include/linux/mmu_context.h b/ANDROID_3.4.5/include/linux/mmu_context.h
deleted file mode 100644
index 70fffeba..00000000
--- a/ANDROID_3.4.5/include/linux/mmu_context.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef _LINUX_MMU_CONTEXT_H
-#define _LINUX_MMU_CONTEXT_H
-
-struct mm_struct;
-
-void use_mm(struct mm_struct *mm);
-void unuse_mm(struct mm_struct *mm);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mmu_notifier.h b/ANDROID_3.4.5/include/linux/mmu_notifier.h
deleted file mode 100644
index 1d1b1e13..00000000
--- a/ANDROID_3.4.5/include/linux/mmu_notifier.h
+++ /dev/null
@@ -1,379 +0,0 @@
-#ifndef _LINUX_MMU_NOTIFIER_H
-#define _LINUX_MMU_NOTIFIER_H
-
-#include <linux/list.h>
-#include <linux/spinlock.h>
-#include <linux/mm_types.h>
-
-struct mmu_notifier;
-struct mmu_notifier_ops;
-
-#ifdef CONFIG_MMU_NOTIFIER
-
-/*
- * The mmu notifier_mm structure is allocated and installed in
- * mm->mmu_notifier_mm inside the mm_take_all_locks() protected
- * critical section and it's released only when mm_count reaches zero
- * in mmdrop().
- */
-struct mmu_notifier_mm {
- /* all mmu notifiers registerd in this mm are queued in this list */
- struct hlist_head list;
- /* to serialize the list modifications and hlist_unhashed */
- spinlock_t lock;
-};
-
-struct mmu_notifier_ops {
- /*
- * Called either by mmu_notifier_unregister or when the mm is
- * being destroyed by exit_mmap, always before all pages are
- * freed. This can run concurrently with other mmu notifier
- * methods (the ones invoked outside the mm context) and it
- * should tear down all secondary mmu mappings and freeze the
- * secondary mmu. If this method isn't implemented you've to
- * be sure that nothing could possibly write to the pages
- * through the secondary mmu by the time the last thread with
- * tsk->mm == mm exits.
- *
- * As side note: the pages freed after ->release returns could
- * be immediately reallocated by the gart at an alias physical
- * address with a different cache model, so if ->release isn't
- * implemented because all _software_ driven memory accesses
- * through the secondary mmu are terminated by the time the
- * last thread of this mm quits, you've also to be sure that
- * speculative _hardware_ operations can't allocate dirty
- * cachelines in the cpu that could not be snooped and made
- * coherent with the other read and write operations happening
- * through the gart alias address, so leading to memory
- * corruption.
- */
- void (*release)(struct mmu_notifier *mn,
- struct mm_struct *mm);
-
- /*
- * clear_flush_young is called after the VM is
- * test-and-clearing the young/accessed bitflag in the
- * pte. This way the VM will provide proper aging to the
- * accesses to the page through the secondary MMUs and not
- * only to the ones through the Linux pte.
- */
- int (*clear_flush_young)(struct mmu_notifier *mn,
- struct mm_struct *mm,
- unsigned long address);
-
- /*
- * test_young is called to check the young/accessed bitflag in
- * the secondary pte. This is used to know if the page is
- * frequently used without actually clearing the flag or tearing
- * down the secondary mapping on the page.
- */
- int (*test_young)(struct mmu_notifier *mn,
- struct mm_struct *mm,
- unsigned long address);
-
- /*
- * change_pte is called in cases that pte mapping to page is changed:
- * for example, when ksm remaps pte to point to a new shared page.
- */
- void (*change_pte)(struct mmu_notifier *mn,
- struct mm_struct *mm,
- unsigned long address,
- pte_t pte);
-
- /*
- * Before this is invoked any secondary MMU is still ok to
- * read/write to the page previously pointed to by the Linux
- * pte because the page hasn't been freed yet and it won't be
- * freed until this returns. If required set_page_dirty has to
- * be called internally to this method.
- */
- void (*invalidate_page)(struct mmu_notifier *mn,
- struct mm_struct *mm,
- unsigned long address);
-
- /*
- * invalidate_range_start() and invalidate_range_end() must be
- * paired and are called only when the mmap_sem and/or the
- * locks protecting the reverse maps are held. The subsystem
- * must guarantee that no additional references are taken to
- * the pages in the range established between the call to
- * invalidate_range_start() and the matching call to
- * invalidate_range_end().
- *
- * Invalidation of multiple concurrent ranges may be
- * optionally permitted by the driver. Either way the
- * establishment of sptes is forbidden in the range passed to
- * invalidate_range_begin/end for the whole duration of the
- * invalidate_range_begin/end critical section.
- *
- * invalidate_range_start() is called when all pages in the
- * range are still mapped and have at least a refcount of one.
- *
- * invalidate_range_end() is called when all pages in the
- * range have been unmapped and the pages have been freed by
- * the VM.
- *
- * The VM will remove the page table entries and potentially
- * the page between invalidate_range_start() and
- * invalidate_range_end(). If the page must not be freed
- * because of pending I/O or other circumstances then the
- * invalidate_range_start() callback (or the initial mapping
- * by the driver) must make sure that the refcount is kept
- * elevated.
- *
- * If the driver increases the refcount when the pages are
- * initially mapped into an address space then either
- * invalidate_range_start() or invalidate_range_end() may
- * decrease the refcount. If the refcount is decreased on
- * invalidate_range_start() then the VM can free pages as page
- * table entries are removed. If the refcount is only
- * droppped on invalidate_range_end() then the driver itself
- * will drop the last refcount but it must take care to flush
- * any secondary tlb before doing the final free on the
- * page. Pages will no longer be referenced by the linux
- * address space but may still be referenced by sptes until
- * the last refcount is dropped.
- */
- void (*invalidate_range_start)(struct mmu_notifier *mn,
- struct mm_struct *mm,
- unsigned long start, unsigned long end);
- void (*invalidate_range_end)(struct mmu_notifier *mn,
- struct mm_struct *mm,
- unsigned long start, unsigned long end);
-};
-
-/*
- * The notifier chains are protected by mmap_sem and/or the reverse map
- * semaphores. Notifier chains are only changed when all reverse maps and
- * the mmap_sem locks are taken.
- *
- * Therefore notifier chains can only be traversed when either
- *
- * 1. mmap_sem is held.
- * 2. One of the reverse map locks is held (i_mmap_mutex or anon_vma->mutex).
- * 3. No other concurrent thread can access the list (release)
- */
-struct mmu_notifier {
- struct hlist_node hlist;
- const struct mmu_notifier_ops *ops;
-};
-
-static inline int mm_has_notifiers(struct mm_struct *mm)
-{
- return unlikely(mm->mmu_notifier_mm);
-}
-
-extern int mmu_notifier_register(struct mmu_notifier *mn,
- struct mm_struct *mm);
-extern int __mmu_notifier_register(struct mmu_notifier *mn,
- struct mm_struct *mm);
-extern void mmu_notifier_unregister(struct mmu_notifier *mn,
- struct mm_struct *mm);
-extern void __mmu_notifier_mm_destroy(struct mm_struct *mm);
-extern void __mmu_notifier_release(struct mm_struct *mm);
-extern int __mmu_notifier_clear_flush_young(struct mm_struct *mm,
- unsigned long address);
-extern int __mmu_notifier_test_young(struct mm_struct *mm,
- unsigned long address);
-extern void __mmu_notifier_change_pte(struct mm_struct *mm,
- unsigned long address, pte_t pte);
-extern void __mmu_notifier_invalidate_page(struct mm_struct *mm,
- unsigned long address);
-extern void __mmu_notifier_invalidate_range_start(struct mm_struct *mm,
- unsigned long start, unsigned long end);
-extern void __mmu_notifier_invalidate_range_end(struct mm_struct *mm,
- unsigned long start, unsigned long end);
-
-static inline void mmu_notifier_release(struct mm_struct *mm)
-{
- if (mm_has_notifiers(mm))
- __mmu_notifier_release(mm);
-}
-
-static inline int mmu_notifier_clear_flush_young(struct mm_struct *mm,
- unsigned long address)
-{
- if (mm_has_notifiers(mm))
- return __mmu_notifier_clear_flush_young(mm, address);
- return 0;
-}
-
-static inline int mmu_notifier_test_young(struct mm_struct *mm,
- unsigned long address)
-{
- if (mm_has_notifiers(mm))
- return __mmu_notifier_test_young(mm, address);
- return 0;
-}
-
-static inline void mmu_notifier_change_pte(struct mm_struct *mm,
- unsigned long address, pte_t pte)
-{
- if (mm_has_notifiers(mm))
- __mmu_notifier_change_pte(mm, address, pte);
-}
-
-static inline void mmu_notifier_invalidate_page(struct mm_struct *mm,
- unsigned long address)
-{
- if (mm_has_notifiers(mm))
- __mmu_notifier_invalidate_page(mm, address);
-}
-
-static inline void mmu_notifier_invalidate_range_start(struct mm_struct *mm,
- unsigned long start, unsigned long end)
-{
- if (mm_has_notifiers(mm))
- __mmu_notifier_invalidate_range_start(mm, start, end);
-}
-
-static inline void mmu_notifier_invalidate_range_end(struct mm_struct *mm,
- unsigned long start, unsigned long end)
-{
- if (mm_has_notifiers(mm))
- __mmu_notifier_invalidate_range_end(mm, start, end);
-}
-
-static inline void mmu_notifier_mm_init(struct mm_struct *mm)
-{
- mm->mmu_notifier_mm = NULL;
-}
-
-static inline void mmu_notifier_mm_destroy(struct mm_struct *mm)
-{
- if (mm_has_notifiers(mm))
- __mmu_notifier_mm_destroy(mm);
-}
-
-/*
- * These two macros will sometime replace ptep_clear_flush.
- * ptep_clear_flush is implemented as macro itself, so this also is
- * implemented as a macro until ptep_clear_flush will converted to an
- * inline function, to diminish the risk of compilation failure. The
- * invalidate_page method over time can be moved outside the PT lock
- * and these two macros can be later removed.
- */
-#define ptep_clear_flush_notify(__vma, __address, __ptep) \
-({ \
- pte_t __pte; \
- struct vm_area_struct *___vma = __vma; \
- unsigned long ___address = __address; \
- __pte = ptep_clear_flush(___vma, ___address, __ptep); \
- mmu_notifier_invalidate_page(___vma->vm_mm, ___address); \
- __pte; \
-})
-
-#define pmdp_clear_flush_notify(__vma, __address, __pmdp) \
-({ \
- pmd_t __pmd; \
- struct vm_area_struct *___vma = __vma; \
- unsigned long ___address = __address; \
- VM_BUG_ON(__address & ~HPAGE_PMD_MASK); \
- mmu_notifier_invalidate_range_start(___vma->vm_mm, ___address, \
- (__address)+HPAGE_PMD_SIZE);\
- __pmd = pmdp_clear_flush(___vma, ___address, __pmdp); \
- mmu_notifier_invalidate_range_end(___vma->vm_mm, ___address, \
- (__address)+HPAGE_PMD_SIZE); \
- __pmd; \
-})
-
-#define pmdp_splitting_flush_notify(__vma, __address, __pmdp) \
-({ \
- struct vm_area_struct *___vma = __vma; \
- unsigned long ___address = __address; \
- VM_BUG_ON(__address & ~HPAGE_PMD_MASK); \
- mmu_notifier_invalidate_range_start(___vma->vm_mm, ___address, \
- (__address)+HPAGE_PMD_SIZE);\
- pmdp_splitting_flush(___vma, ___address, __pmdp); \
- mmu_notifier_invalidate_range_end(___vma->vm_mm, ___address, \
- (__address)+HPAGE_PMD_SIZE); \
-})
-
-#define ptep_clear_flush_young_notify(__vma, __address, __ptep) \
-({ \
- int __young; \
- struct vm_area_struct *___vma = __vma; \
- unsigned long ___address = __address; \
- __young = ptep_clear_flush_young(___vma, ___address, __ptep); \
- __young |= mmu_notifier_clear_flush_young(___vma->vm_mm, \
- ___address); \
- __young; \
-})
-
-#define pmdp_clear_flush_young_notify(__vma, __address, __pmdp) \
-({ \
- int __young; \
- struct vm_area_struct *___vma = __vma; \
- unsigned long ___address = __address; \
- __young = pmdp_clear_flush_young(___vma, ___address, __pmdp); \
- __young |= mmu_notifier_clear_flush_young(___vma->vm_mm, \
- ___address); \
- __young; \
-})
-
-#define set_pte_at_notify(__mm, __address, __ptep, __pte) \
-({ \
- struct mm_struct *___mm = __mm; \
- unsigned long ___address = __address; \
- pte_t ___pte = __pte; \
- \
- set_pte_at(___mm, ___address, __ptep, ___pte); \
- mmu_notifier_change_pte(___mm, ___address, ___pte); \
-})
-
-#else /* CONFIG_MMU_NOTIFIER */
-
-static inline void mmu_notifier_release(struct mm_struct *mm)
-{
-}
-
-static inline int mmu_notifier_clear_flush_young(struct mm_struct *mm,
- unsigned long address)
-{
- return 0;
-}
-
-static inline int mmu_notifier_test_young(struct mm_struct *mm,
- unsigned long address)
-{
- return 0;
-}
-
-static inline void mmu_notifier_change_pte(struct mm_struct *mm,
- unsigned long address, pte_t pte)
-{
-}
-
-static inline void mmu_notifier_invalidate_page(struct mm_struct *mm,
- unsigned long address)
-{
-}
-
-static inline void mmu_notifier_invalidate_range_start(struct mm_struct *mm,
- unsigned long start, unsigned long end)
-{
-}
-
-static inline void mmu_notifier_invalidate_range_end(struct mm_struct *mm,
- unsigned long start, unsigned long end)
-{
-}
-
-static inline void mmu_notifier_mm_init(struct mm_struct *mm)
-{
-}
-
-static inline void mmu_notifier_mm_destroy(struct mm_struct *mm)
-{
-}
-
-#define ptep_clear_flush_young_notify ptep_clear_flush_young
-#define pmdp_clear_flush_young_notify pmdp_clear_flush_young
-#define ptep_clear_flush_notify ptep_clear_flush
-#define pmdp_clear_flush_notify pmdp_clear_flush
-#define pmdp_splitting_flush_notify pmdp_splitting_flush
-#define set_pte_at_notify set_pte_at
-
-#endif /* CONFIG_MMU_NOTIFIER */
-
-#endif /* _LINUX_MMU_NOTIFIER_H */
diff --git a/ANDROID_3.4.5/include/linux/mmzone.h b/ANDROID_3.4.5/include/linux/mmzone.h
deleted file mode 100644
index 5f6806bd..00000000
--- a/ANDROID_3.4.5/include/linux/mmzone.h
+++ /dev/null
@@ -1,1182 +0,0 @@
-#ifndef _LINUX_MMZONE_H
-#define _LINUX_MMZONE_H
-
-#ifndef __ASSEMBLY__
-#ifndef __GENERATING_BOUNDS_H
-
-#include <linux/spinlock.h>
-#include <linux/list.h>
-#include <linux/wait.h>
-#include <linux/bitops.h>
-#include <linux/cache.h>
-#include <linux/threads.h>
-#include <linux/numa.h>
-#include <linux/init.h>
-#include <linux/seqlock.h>
-#include <linux/nodemask.h>
-#include <linux/pageblock-flags.h>
-#include <generated/bounds.h>
-#include <linux/atomic.h>
-#include <asm/page.h>
-
-/* Free memory management - zoned buddy allocator. */
-#ifndef CONFIG_FORCE_MAX_ZONEORDER
-#define MAX_ORDER 11
-#else
-#define MAX_ORDER CONFIG_FORCE_MAX_ZONEORDER
-#endif
-#define MAX_ORDER_NR_PAGES (1 << (MAX_ORDER - 1))
-
-/*
- * PAGE_ALLOC_COSTLY_ORDER is the order at which allocations are deemed
- * costly to service. That is between allocation orders which should
- * coelesce naturally under reasonable reclaim pressure and those which
- * will not.
- */
-#define PAGE_ALLOC_COSTLY_ORDER 3
-
-#define MIGRATE_UNMOVABLE 0
-#define MIGRATE_RECLAIMABLE 1
-#define MIGRATE_MOVABLE 2
-#define MIGRATE_PCPTYPES 3 /* the number of types on the pcp lists */
-#define MIGRATE_RESERVE 3
-#define MIGRATE_ISOLATE 4 /* can't allocate from here */
-#define MIGRATE_TYPES 5
-
-#define for_each_migratetype_order(order, type) \
- for (order = 0; order < MAX_ORDER; order++) \
- for (type = 0; type < MIGRATE_TYPES; type++)
-
-extern int page_group_by_mobility_disabled;
-
-static inline int get_pageblock_migratetype(struct page *page)
-{
- return get_pageblock_flags_group(page, PB_migrate, PB_migrate_end);
-}
-
-struct free_area {
- struct list_head free_list[MIGRATE_TYPES];
- unsigned long nr_free;
-};
-
-struct pglist_data;
-
-/*
- * zone->lock and zone->lru_lock are two of the hottest locks in the kernel.
- * So add a wild amount of padding here to ensure that they fall into separate
- * cachelines. There are very few zone structures in the machine, so space
- * consumption is not a concern here.
- */
-#if defined(CONFIG_SMP)
-struct zone_padding {
- char x[0];
-} ____cacheline_internodealigned_in_smp;
-#define ZONE_PADDING(name) struct zone_padding name;
-#else
-#define ZONE_PADDING(name)
-#endif
-
-enum zone_stat_item {
- /* First 128 byte cacheline (assuming 64 bit words) */
- NR_FREE_PAGES,
- NR_LRU_BASE,
- NR_INACTIVE_ANON = NR_LRU_BASE, /* must match order of LRU_[IN]ACTIVE */
- NR_ACTIVE_ANON, /* " " " " " */
- NR_INACTIVE_FILE, /* " " " " " */
- NR_ACTIVE_FILE, /* " " " " " */
- NR_UNEVICTABLE, /* " " " " " */
- NR_MLOCK, /* mlock()ed pages found and moved off LRU */
- NR_ANON_PAGES, /* Mapped anonymous pages */
- NR_FILE_MAPPED, /* pagecache pages mapped into pagetables.
- only modified from process context */
- NR_FILE_PAGES,
- NR_FILE_DIRTY,
- NR_WRITEBACK,
- NR_SLAB_RECLAIMABLE,
- NR_SLAB_UNRECLAIMABLE,
- NR_PAGETABLE, /* used for pagetables */
- NR_KERNEL_STACK,
- /* Second 128 byte cacheline */
- NR_UNSTABLE_NFS, /* NFS unstable pages */
- NR_BOUNCE,
- NR_VMSCAN_WRITE,
- NR_VMSCAN_IMMEDIATE, /* Prioritise for reclaim when writeback ends */
- NR_WRITEBACK_TEMP, /* Writeback using temporary buffers */
- NR_ISOLATED_ANON, /* Temporary isolated pages from anon lru */
- NR_ISOLATED_FILE, /* Temporary isolated pages from file lru */
- NR_SHMEM, /* shmem pages (included tmpfs/GEM pages) */
- NR_DIRTIED, /* page dirtyings since bootup */
- NR_WRITTEN, /* page writings since bootup */
-#ifdef CONFIG_NUMA
- NUMA_HIT, /* allocated in intended node */
- NUMA_MISS, /* allocated in non intended node */
- NUMA_FOREIGN, /* was intended here, hit elsewhere */
- NUMA_INTERLEAVE_HIT, /* interleaver preferred this zone */
- NUMA_LOCAL, /* allocation from local node */
- NUMA_OTHER, /* allocation from other node */
-#endif
- NR_ANON_TRANSPARENT_HUGEPAGES,
- NR_VM_ZONE_STAT_ITEMS };
-
-/*
- * We do arithmetic on the LRU lists in various places in the code,
- * so it is important to keep the active lists LRU_ACTIVE higher in
- * the array than the corresponding inactive lists, and to keep
- * the *_FILE lists LRU_FILE higher than the corresponding _ANON lists.
- *
- * This has to be kept in sync with the statistics in zone_stat_item
- * above and the descriptions in vmstat_text in mm/vmstat.c
- */
-#define LRU_BASE 0
-#define LRU_ACTIVE 1
-#define LRU_FILE 2
-
-enum lru_list {
- LRU_INACTIVE_ANON = LRU_BASE,
- LRU_ACTIVE_ANON = LRU_BASE + LRU_ACTIVE,
- LRU_INACTIVE_FILE = LRU_BASE + LRU_FILE,
- LRU_ACTIVE_FILE = LRU_BASE + LRU_FILE + LRU_ACTIVE,
- LRU_UNEVICTABLE,
- NR_LRU_LISTS
-};
-
-#define for_each_lru(lru) for (lru = 0; lru < NR_LRU_LISTS; lru++)
-
-#define for_each_evictable_lru(lru) for (lru = 0; lru <= LRU_ACTIVE_FILE; lru++)
-
-static inline int is_file_lru(enum lru_list lru)
-{
- return (lru == LRU_INACTIVE_FILE || lru == LRU_ACTIVE_FILE);
-}
-
-static inline int is_active_lru(enum lru_list lru)
-{
- return (lru == LRU_ACTIVE_ANON || lru == LRU_ACTIVE_FILE);
-}
-
-static inline int is_unevictable_lru(enum lru_list lru)
-{
- return (lru == LRU_UNEVICTABLE);
-}
-
-struct lruvec {
- struct list_head lists[NR_LRU_LISTS];
-};
-
-/* Mask used at gathering information at once (see memcontrol.c) */
-#define LRU_ALL_FILE (BIT(LRU_INACTIVE_FILE) | BIT(LRU_ACTIVE_FILE))
-#define LRU_ALL_ANON (BIT(LRU_INACTIVE_ANON) | BIT(LRU_ACTIVE_ANON))
-#define LRU_ALL_EVICTABLE (LRU_ALL_FILE | LRU_ALL_ANON)
-#define LRU_ALL ((1 << NR_LRU_LISTS) - 1)
-
-/* Isolate inactive pages */
-#define ISOLATE_INACTIVE ((__force isolate_mode_t)0x1)
-/* Isolate active pages */
-#define ISOLATE_ACTIVE ((__force isolate_mode_t)0x2)
-/* Isolate clean file */
-#define ISOLATE_CLEAN ((__force isolate_mode_t)0x4)
-/* Isolate unmapped file */
-#define ISOLATE_UNMAPPED ((__force isolate_mode_t)0x8)
-/* Isolate for asynchronous migration */
-#define ISOLATE_ASYNC_MIGRATE ((__force isolate_mode_t)0x10)
-
-/* LRU Isolation modes. */
-typedef unsigned __bitwise__ isolate_mode_t;
-
-enum zone_watermarks {
- WMARK_MIN,
- WMARK_LOW,
- WMARK_HIGH,
- NR_WMARK
-};
-
-#define min_wmark_pages(z) (z->watermark[WMARK_MIN])
-#define low_wmark_pages(z) (z->watermark[WMARK_LOW])
-#define high_wmark_pages(z) (z->watermark[WMARK_HIGH])
-
-struct per_cpu_pages {
- int count; /* number of pages in the list */
- int high; /* high watermark, emptying needed */
- int batch; /* chunk size for buddy add/remove */
-
- /* Lists of pages, one per migrate type stored on the pcp-lists */
- struct list_head lists[MIGRATE_PCPTYPES];
-};
-
-struct per_cpu_pageset {
- struct per_cpu_pages pcp;
-#ifdef CONFIG_NUMA
- s8 expire;
-#endif
-#ifdef CONFIG_SMP
- s8 stat_threshold;
- s8 vm_stat_diff[NR_VM_ZONE_STAT_ITEMS];
-#endif
-};
-
-#endif /* !__GENERATING_BOUNDS.H */
-
-enum zone_type {
-#ifdef CONFIG_ZONE_DMA
- /*
- * ZONE_DMA is used when there are devices that are not able
- * to do DMA to all of addressable memory (ZONE_NORMAL). Then we
- * carve out the portion of memory that is needed for these devices.
- * The range is arch specific.
- *
- * Some examples
- *
- * Architecture Limit
- * ---------------------------
- * parisc, ia64, sparc <4G
- * s390 <2G
- * arm Various
- * alpha Unlimited or 0-16MB.
- *
- * i386, x86_64 and multiple other arches
- * <16M.
- */
- ZONE_DMA,
-#endif
-#ifdef CONFIG_ZONE_DMA32
- /*
- * x86_64 needs two ZONE_DMAs because it supports devices that are
- * only able to do DMA to the lower 16M but also 32 bit devices that
- * can only do DMA areas below 4G.
- */
- ZONE_DMA32,
-#endif
- /*
- * Normal addressable memory is in ZONE_NORMAL. DMA operations can be
- * performed on pages in ZONE_NORMAL if the DMA devices support
- * transfers to all addressable memory.
- */
- ZONE_NORMAL,
-#ifdef CONFIG_HIGHMEM
- /*
- * A memory area that is only addressable by the kernel through
- * mapping portions into its own address space. This is for example
- * used by i386 to allow the kernel to address the memory beyond
- * 900MB. The kernel will set up special mappings (page
- * table entries on i386) for each page that the kernel needs to
- * access.
- */
- ZONE_HIGHMEM,
-#endif
- ZONE_MOVABLE,
- __MAX_NR_ZONES
-};
-
-#ifndef __GENERATING_BOUNDS_H
-
-/*
- * When a memory allocation must conform to specific limitations (such
- * as being suitable for DMA) the caller will pass in hints to the
- * allocator in the gfp_mask, in the zone modifier bits. These bits
- * are used to select a priority ordered list of memory zones which
- * match the requested limits. See gfp_zone() in include/linux/gfp.h
- */
-
-#if MAX_NR_ZONES < 2
-#define ZONES_SHIFT 0
-#elif MAX_NR_ZONES <= 2
-#define ZONES_SHIFT 1
-#elif MAX_NR_ZONES <= 4
-#define ZONES_SHIFT 2
-#else
-#error ZONES_SHIFT -- too many zones configured adjust calculation
-#endif
-
-struct zone_reclaim_stat {
- /*
- * The pageout code in vmscan.c keeps track of how many of the
- * mem/swap backed and file backed pages are refeferenced.
- * The higher the rotated/scanned ratio, the more valuable
- * that cache is.
- *
- * The anon LRU stats live in [0], file LRU stats in [1]
- */
- unsigned long recent_rotated[2];
- unsigned long recent_scanned[2];
-};
-
-struct zone {
- /* Fields commonly accessed by the page allocator */
-
- /* zone watermarks, access with *_wmark_pages(zone) macros */
- unsigned long watermark[NR_WMARK];
-
- /*
- * When free pages are below this point, additional steps are taken
- * when reading the number of free pages to avoid per-cpu counter
- * drift allowing watermarks to be breached
- */
- unsigned long percpu_drift_mark;
-
- /*
- * We don't know if the memory that we're going to allocate will be freeable
- * or/and it will be released eventually, so to avoid totally wasting several
- * GB of ram we must reserve some of the lower zone memory (otherwise we risk
- * to run OOM on the lower zones despite there's tons of freeable ram
- * on the higher zones). This array is recalculated at runtime if the
- * sysctl_lowmem_reserve_ratio sysctl changes.
- */
- unsigned long lowmem_reserve[MAX_NR_ZONES];
-
- /*
- * This is a per-zone reserve of pages that should not be
- * considered dirtyable memory.
- */
- unsigned long dirty_balance_reserve;
-
-#ifdef CONFIG_NUMA
- int node;
- /*
- * zone reclaim becomes active if more unmapped pages exist.
- */
- unsigned long min_unmapped_pages;
- unsigned long min_slab_pages;
-#endif
- struct per_cpu_pageset __percpu *pageset;
- /*
- * free areas of different sizes
- */
- spinlock_t lock;
- int all_unreclaimable; /* All pages pinned */
-#ifdef CONFIG_MEMORY_HOTPLUG
- /* see spanned/present_pages for more description */
- seqlock_t span_seqlock;
-#endif
- struct free_area free_area[MAX_ORDER];
-
-#ifndef CONFIG_SPARSEMEM
- /*
- * Flags for a pageblock_nr_pages block. See pageblock-flags.h.
- * In SPARSEMEM, this map is stored in struct mem_section
- */
- unsigned long *pageblock_flags;
-#endif /* CONFIG_SPARSEMEM */
-
-#ifdef CONFIG_COMPACTION
- /*
- * On compaction failure, 1<<compact_defer_shift compactions
- * are skipped before trying again. The number attempted since
- * last failure is tracked with compact_considered.
- */
- unsigned int compact_considered;
- unsigned int compact_defer_shift;
- int compact_order_failed;
-#endif
-
- ZONE_PADDING(_pad1_)
-
- /* Fields commonly accessed by the page reclaim scanner */
- spinlock_t lru_lock;
- struct lruvec lruvec;
-
- struct zone_reclaim_stat reclaim_stat;
-
- unsigned long pages_scanned; /* since last reclaim */
- unsigned long flags; /* zone flags, see below */
-
- /* Zone statistics */
- atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS];
-
- /*
- * The target ratio of ACTIVE_ANON to INACTIVE_ANON pages on
- * this zone's LRU. Maintained by the pageout code.
- */
- unsigned int inactive_ratio;
-
-
- ZONE_PADDING(_pad2_)
- /* Rarely used or read-mostly fields */
-
- /*
- * wait_table -- the array holding the hash table
- * wait_table_hash_nr_entries -- the size of the hash table array
- * wait_table_bits -- wait_table_size == (1 << wait_table_bits)
- *
- * The purpose of all these is to keep track of the people
- * waiting for a page to become available and make them
- * runnable again when possible. The trouble is that this
- * consumes a lot of space, especially when so few things
- * wait on pages at a given time. So instead of using
- * per-page waitqueues, we use a waitqueue hash table.
- *
- * The bucket discipline is to sleep on the same queue when
- * colliding and wake all in that wait queue when removing.
- * When something wakes, it must check to be sure its page is
- * truly available, a la thundering herd. The cost of a
- * collision is great, but given the expected load of the
- * table, they should be so rare as to be outweighed by the
- * benefits from the saved space.
- *
- * __wait_on_page_locked() and unlock_page() in mm/filemap.c, are the
- * primary users of these fields, and in mm/page_alloc.c
- * free_area_init_core() performs the initialization of them.
- */
- wait_queue_head_t * wait_table;
- unsigned long wait_table_hash_nr_entries;
- unsigned long wait_table_bits;
-
- /*
- * Discontig memory support fields.
- */
- struct pglist_data *zone_pgdat;
- /* zone_start_pfn == zone_start_paddr >> PAGE_SHIFT */
- unsigned long zone_start_pfn;
-
- /*
- * zone_start_pfn, spanned_pages and present_pages are all
- * protected by span_seqlock. It is a seqlock because it has
- * to be read outside of zone->lock, and it is done in the main
- * allocator path. But, it is written quite infrequently.
- *
- * The lock is declared along with zone->lock because it is
- * frequently read in proximity to zone->lock. It's good to
- * give them a chance of being in the same cacheline.
- */
- unsigned long spanned_pages; /* total size, including holes */
- unsigned long present_pages; /* amount of memory (excluding holes) */
-
- /*
- * rarely used fields:
- */
- const char *name;
-} ____cacheline_internodealigned_in_smp;
-
-typedef enum {
- ZONE_RECLAIM_LOCKED, /* prevents concurrent reclaim */
- ZONE_OOM_LOCKED, /* zone is in OOM killer zonelist */
- ZONE_CONGESTED, /* zone has many dirty pages backed by
- * a congested BDI
- */
-} zone_flags_t;
-
-static inline void zone_set_flag(struct zone *zone, zone_flags_t flag)
-{
- set_bit(flag, &zone->flags);
-}
-
-static inline int zone_test_and_set_flag(struct zone *zone, zone_flags_t flag)
-{
- return test_and_set_bit(flag, &zone->flags);
-}
-
-static inline void zone_clear_flag(struct zone *zone, zone_flags_t flag)
-{
- clear_bit(flag, &zone->flags);
-}
-
-static inline int zone_is_reclaim_congested(const struct zone *zone)
-{
- return test_bit(ZONE_CONGESTED, &zone->flags);
-}
-
-static inline int zone_is_reclaim_locked(const struct zone *zone)
-{
- return test_bit(ZONE_RECLAIM_LOCKED, &zone->flags);
-}
-
-static inline int zone_is_oom_locked(const struct zone *zone)
-{
- return test_bit(ZONE_OOM_LOCKED, &zone->flags);
-}
-
-/*
- * The "priority" of VM scanning is how much of the queues we will scan in one
- * go. A value of 12 for DEF_PRIORITY implies that we will scan 1/4096th of the
- * queues ("queue_length >> 12") during an aging round.
- */
-#define DEF_PRIORITY 12
-
-/* Maximum number of zones on a zonelist */
-#define MAX_ZONES_PER_ZONELIST (MAX_NUMNODES * MAX_NR_ZONES)
-
-#ifdef CONFIG_NUMA
-
-/*
- * The NUMA zonelists are doubled because we need zonelists that restrict the
- * allocations to a single node for GFP_THISNODE.
- *
- * [0] : Zonelist with fallback
- * [1] : No fallback (GFP_THISNODE)
- */
-#define MAX_ZONELISTS 2
-
-
-/*
- * We cache key information from each zonelist for smaller cache
- * footprint when scanning for free pages in get_page_from_freelist().
- *
- * 1) The BITMAP fullzones tracks which zones in a zonelist have come
- * up short of free memory since the last time (last_fullzone_zap)
- * we zero'd fullzones.
- * 2) The array z_to_n[] maps each zone in the zonelist to its node
- * id, so that we can efficiently evaluate whether that node is
- * set in the current tasks mems_allowed.
- *
- * Both fullzones and z_to_n[] are one-to-one with the zonelist,
- * indexed by a zones offset in the zonelist zones[] array.
- *
- * The get_page_from_freelist() routine does two scans. During the
- * first scan, we skip zones whose corresponding bit in 'fullzones'
- * is set or whose corresponding node in current->mems_allowed (which
- * comes from cpusets) is not set. During the second scan, we bypass
- * this zonelist_cache, to ensure we look methodically at each zone.
- *
- * Once per second, we zero out (zap) fullzones, forcing us to
- * reconsider nodes that might have regained more free memory.
- * The field last_full_zap is the time we last zapped fullzones.
- *
- * This mechanism reduces the amount of time we waste repeatedly
- * reexaming zones for free memory when they just came up low on
- * memory momentarilly ago.
- *
- * The zonelist_cache struct members logically belong in struct
- * zonelist. However, the mempolicy zonelists constructed for
- * MPOL_BIND are intentionally variable length (and usually much
- * shorter). A general purpose mechanism for handling structs with
- * multiple variable length members is more mechanism than we want
- * here. We resort to some special case hackery instead.
- *
- * The MPOL_BIND zonelists don't need this zonelist_cache (in good
- * part because they are shorter), so we put the fixed length stuff
- * at the front of the zonelist struct, ending in a variable length
- * zones[], as is needed by MPOL_BIND.
- *
- * Then we put the optional zonelist cache on the end of the zonelist
- * struct. This optional stuff is found by a 'zlcache_ptr' pointer in
- * the fixed length portion at the front of the struct. This pointer
- * both enables us to find the zonelist cache, and in the case of
- * MPOL_BIND zonelists, (which will just set the zlcache_ptr to NULL)
- * to know that the zonelist cache is not there.
- *
- * The end result is that struct zonelists come in two flavors:
- * 1) The full, fixed length version, shown below, and
- * 2) The custom zonelists for MPOL_BIND.
- * The custom MPOL_BIND zonelists have a NULL zlcache_ptr and no zlcache.
- *
- * Even though there may be multiple CPU cores on a node modifying
- * fullzones or last_full_zap in the same zonelist_cache at the same
- * time, we don't lock it. This is just hint data - if it is wrong now
- * and then, the allocator will still function, perhaps a bit slower.
- */
-
-
-struct zonelist_cache {
- unsigned short z_to_n[MAX_ZONES_PER_ZONELIST]; /* zone->nid */
- DECLARE_BITMAP(fullzones, MAX_ZONES_PER_ZONELIST); /* zone full? */
- unsigned long last_full_zap; /* when last zap'd (jiffies) */
-};
-#else
-#define MAX_ZONELISTS 1
-struct zonelist_cache;
-#endif
-
-/*
- * This struct contains information about a zone in a zonelist. It is stored
- * here to avoid dereferences into large structures and lookups of tables
- */
-struct zoneref {
- struct zone *zone; /* Pointer to actual zone */
- int zone_idx; /* zone_idx(zoneref->zone) */
-};
-
-/*
- * One allocation request operates on a zonelist. A zonelist
- * is a list of zones, the first one is the 'goal' of the
- * allocation, the other zones are fallback zones, in decreasing
- * priority.
- *
- * If zlcache_ptr is not NULL, then it is just the address of zlcache,
- * as explained above. If zlcache_ptr is NULL, there is no zlcache.
- * *
- * To speed the reading of the zonelist, the zonerefs contain the zone index
- * of the entry being read. Helper functions to access information given
- * a struct zoneref are
- *
- * zonelist_zone() - Return the struct zone * for an entry in _zonerefs
- * zonelist_zone_idx() - Return the index of the zone for an entry
- * zonelist_node_idx() - Return the index of the node for an entry
- */
-struct zonelist {
- struct zonelist_cache *zlcache_ptr; // NULL or &zlcache
- struct zoneref _zonerefs[MAX_ZONES_PER_ZONELIST + 1];
-#ifdef CONFIG_NUMA
- struct zonelist_cache zlcache; // optional ...
-#endif
-};
-
-#ifdef CONFIG_HAVE_MEMBLOCK_NODE_MAP
-struct node_active_region {
- unsigned long start_pfn;
- unsigned long end_pfn;
- int nid;
-};
-#endif /* CONFIG_HAVE_MEMBLOCK_NODE_MAP */
-
-#ifndef CONFIG_DISCONTIGMEM
-/* The array of struct pages - for discontigmem use pgdat->lmem_map */
-extern struct page *mem_map;
-#endif
-
-/*
- * The pg_data_t structure is used in machines with CONFIG_DISCONTIGMEM
- * (mostly NUMA machines?) to denote a higher-level memory zone than the
- * zone denotes.
- *
- * On NUMA machines, each NUMA node would have a pg_data_t to describe
- * it's memory layout.
- *
- * Memory statistics and page replacement data structures are maintained on a
- * per-zone basis.
- */
-struct bootmem_data;
-typedef struct pglist_data {
- struct zone node_zones[MAX_NR_ZONES];
- struct zonelist node_zonelists[MAX_ZONELISTS];
- int nr_zones;
-#ifdef CONFIG_FLAT_NODE_MEM_MAP /* means !SPARSEMEM */
- struct page *node_mem_map;
-#ifdef CONFIG_CGROUP_MEM_RES_CTLR
- struct page_cgroup *node_page_cgroup;
-#endif
-#endif
-#ifndef CONFIG_NO_BOOTMEM
- struct bootmem_data *bdata;
-#endif
-#ifdef CONFIG_MEMORY_HOTPLUG
- /*
- * Must be held any time you expect node_start_pfn, node_present_pages
- * or node_spanned_pages stay constant. Holding this will also
- * guarantee that any pfn_valid() stays that way.
- *
- * Nests above zone->lock and zone->size_seqlock.
- */
- spinlock_t node_size_lock;
-#endif
- unsigned long node_start_pfn;
- unsigned long node_present_pages; /* total number of physical pages */
- unsigned long node_spanned_pages; /* total size of physical page
- range, including holes */
- int node_id;
- wait_queue_head_t kswapd_wait;
- struct task_struct *kswapd; /* Protected by lock_memory_hotplug() */
- int kswapd_max_order;
- enum zone_type classzone_idx;
-} pg_data_t;
-
-#define node_present_pages(nid) (NODE_DATA(nid)->node_present_pages)
-#define node_spanned_pages(nid) (NODE_DATA(nid)->node_spanned_pages)
-#ifdef CONFIG_FLAT_NODE_MEM_MAP
-#define pgdat_page_nr(pgdat, pagenr) ((pgdat)->node_mem_map + (pagenr))
-#else
-#define pgdat_page_nr(pgdat, pagenr) pfn_to_page((pgdat)->node_start_pfn + (pagenr))
-#endif
-#define nid_page_nr(nid, pagenr) pgdat_page_nr(NODE_DATA(nid),(pagenr))
-
-#define node_start_pfn(nid) (NODE_DATA(nid)->node_start_pfn)
-
-#define node_end_pfn(nid) ({\
- pg_data_t *__pgdat = NODE_DATA(nid);\
- __pgdat->node_start_pfn + __pgdat->node_spanned_pages;\
-})
-
-#include <linux/memory_hotplug.h>
-
-extern struct mutex zonelists_mutex;
-void build_all_zonelists(void *data);
-void wakeup_kswapd(struct zone *zone, int order, enum zone_type classzone_idx);
-bool zone_watermark_ok(struct zone *z, int order, unsigned long mark,
- int classzone_idx, int alloc_flags);
-bool zone_watermark_ok_safe(struct zone *z, int order, unsigned long mark,
- int classzone_idx, int alloc_flags);
-enum memmap_context {
- MEMMAP_EARLY,
- MEMMAP_HOTPLUG,
-};
-extern int init_currently_empty_zone(struct zone *zone, unsigned long start_pfn,
- unsigned long size,
- enum memmap_context context);
-
-#ifdef CONFIG_HAVE_MEMORY_PRESENT
-void memory_present(int nid, unsigned long start, unsigned long end);
-#else
-static inline void memory_present(int nid, unsigned long start, unsigned long end) {}
-#endif
-
-#ifdef CONFIG_HAVE_MEMORYLESS_NODES
-int local_memory_node(int node_id);
-#else
-static inline int local_memory_node(int node_id) { return node_id; };
-#endif
-
-#ifdef CONFIG_NEED_NODE_MEMMAP_SIZE
-unsigned long __init node_memmap_size_bytes(int, unsigned long, unsigned long);
-#endif
-
-/*
- * zone_idx() returns 0 for the ZONE_DMA zone, 1 for the ZONE_NORMAL zone, etc.
- */
-#define zone_idx(zone) ((zone) - (zone)->zone_pgdat->node_zones)
-
-static inline int populated_zone(struct zone *zone)
-{
- return (!!zone->present_pages);
-}
-
-extern int movable_zone;
-
-static inline int zone_movable_is_highmem(void)
-{
-#if defined(CONFIG_HIGHMEM) && defined(CONFIG_HAVE_MEMBLOCK_NODE)
- return movable_zone == ZONE_HIGHMEM;
-#else
- return 0;
-#endif
-}
-
-static inline int is_highmem_idx(enum zone_type idx)
-{
-#ifdef CONFIG_HIGHMEM
- return (idx == ZONE_HIGHMEM ||
- (idx == ZONE_MOVABLE && zone_movable_is_highmem()));
-#else
- return 0;
-#endif
-}
-
-static inline int is_normal_idx(enum zone_type idx)
-{
- return (idx == ZONE_NORMAL);
-}
-
-/**
- * is_highmem - helper function to quickly check if a struct zone is a
- * highmem zone or not. This is an attempt to keep references
- * to ZONE_{DMA/NORMAL/HIGHMEM/etc} in general code to a minimum.
- * @zone - pointer to struct zone variable
- */
-static inline int is_highmem(struct zone *zone)
-{
-#ifdef CONFIG_HIGHMEM
- int zone_off = (char *)zone - (char *)zone->zone_pgdat->node_zones;
- return zone_off == ZONE_HIGHMEM * sizeof(*zone) ||
- (zone_off == ZONE_MOVABLE * sizeof(*zone) &&
- zone_movable_is_highmem());
-#else
- return 0;
-#endif
-}
-
-static inline int is_normal(struct zone *zone)
-{
- return zone == zone->zone_pgdat->node_zones + ZONE_NORMAL;
-}
-
-static inline int is_dma32(struct zone *zone)
-{
-#ifdef CONFIG_ZONE_DMA32
- return zone == zone->zone_pgdat->node_zones + ZONE_DMA32;
-#else
- return 0;
-#endif
-}
-
-static inline int is_dma(struct zone *zone)
-{
-#ifdef CONFIG_ZONE_DMA
- return zone == zone->zone_pgdat->node_zones + ZONE_DMA;
-#else
- return 0;
-#endif
-}
-
-/* These two functions are used to setup the per zone pages min values */
-struct ctl_table;
-int min_free_kbytes_sysctl_handler(struct ctl_table *, int,
- void __user *, size_t *, loff_t *);
-extern int sysctl_lowmem_reserve_ratio[MAX_NR_ZONES-1];
-int lowmem_reserve_ratio_sysctl_handler(struct ctl_table *, int,
- void __user *, size_t *, loff_t *);
-int percpu_pagelist_fraction_sysctl_handler(struct ctl_table *, int,
- void __user *, size_t *, loff_t *);
-int sysctl_min_unmapped_ratio_sysctl_handler(struct ctl_table *, int,
- void __user *, size_t *, loff_t *);
-int sysctl_min_slab_ratio_sysctl_handler(struct ctl_table *, int,
- void __user *, size_t *, loff_t *);
-
-extern int numa_zonelist_order_handler(struct ctl_table *, int,
- void __user *, size_t *, loff_t *);
-extern char numa_zonelist_order[];
-#define NUMA_ZONELIST_ORDER_LEN 16 /* string buffer size */
-
-#ifndef CONFIG_NEED_MULTIPLE_NODES
-
-extern struct pglist_data contig_page_data;
-#define NODE_DATA(nid) (&contig_page_data)
-#define NODE_MEM_MAP(nid) mem_map
-
-#else /* CONFIG_NEED_MULTIPLE_NODES */
-
-#include <asm/mmzone.h>
-
-#endif /* !CONFIG_NEED_MULTIPLE_NODES */
-
-extern struct pglist_data *first_online_pgdat(void);
-extern struct pglist_data *next_online_pgdat(struct pglist_data *pgdat);
-extern struct zone *next_zone(struct zone *zone);
-
-/**
- * for_each_online_pgdat - helper macro to iterate over all online nodes
- * @pgdat - pointer to a pg_data_t variable
- */
-#define for_each_online_pgdat(pgdat) \
- for (pgdat = first_online_pgdat(); \
- pgdat; \
- pgdat = next_online_pgdat(pgdat))
-/**
- * for_each_zone - helper macro to iterate over all memory zones
- * @zone - pointer to struct zone variable
- *
- * The user only needs to declare the zone variable, for_each_zone
- * fills it in.
- */
-#define for_each_zone(zone) \
- for (zone = (first_online_pgdat())->node_zones; \
- zone; \
- zone = next_zone(zone))
-
-#define for_each_populated_zone(zone) \
- for (zone = (first_online_pgdat())->node_zones; \
- zone; \
- zone = next_zone(zone)) \
- if (!populated_zone(zone)) \
- ; /* do nothing */ \
- else
-
-static inline struct zone *zonelist_zone(struct zoneref *zoneref)
-{
- return zoneref->zone;
-}
-
-static inline int zonelist_zone_idx(struct zoneref *zoneref)
-{
- return zoneref->zone_idx;
-}
-
-static inline int zonelist_node_idx(struct zoneref *zoneref)
-{
-#ifdef CONFIG_NUMA
- /* zone_to_nid not available in this context */
- return zoneref->zone->node;
-#else
- return 0;
-#endif /* CONFIG_NUMA */
-}
-
-/**
- * next_zones_zonelist - Returns the next zone at or below highest_zoneidx within the allowed nodemask using a cursor within a zonelist as a starting point
- * @z - The cursor used as a starting point for the search
- * @highest_zoneidx - The zone index of the highest zone to return
- * @nodes - An optional nodemask to filter the zonelist with
- * @zone - The first suitable zone found is returned via this parameter
- *
- * This function returns the next zone at or below a given zone index that is
- * within the allowed nodemask using a cursor as the starting point for the
- * search. The zoneref returned is a cursor that represents the current zone
- * being examined. It should be advanced by one before calling
- * next_zones_zonelist again.
- */
-struct zoneref *next_zones_zonelist(struct zoneref *z,
- enum zone_type highest_zoneidx,
- nodemask_t *nodes,
- struct zone **zone);
-
-/**
- * first_zones_zonelist - Returns the first zone at or below highest_zoneidx within the allowed nodemask in a zonelist
- * @zonelist - The zonelist to search for a suitable zone
- * @highest_zoneidx - The zone index of the highest zone to return
- * @nodes - An optional nodemask to filter the zonelist with
- * @zone - The first suitable zone found is returned via this parameter
- *
- * This function returns the first zone at or below a given zone index that is
- * within the allowed nodemask. The zoneref returned is a cursor that can be
- * used to iterate the zonelist with next_zones_zonelist by advancing it by
- * one before calling.
- */
-static inline struct zoneref *first_zones_zonelist(struct zonelist *zonelist,
- enum zone_type highest_zoneidx,
- nodemask_t *nodes,
- struct zone **zone)
-{
- return next_zones_zonelist(zonelist->_zonerefs, highest_zoneidx, nodes,
- zone);
-}
-
-/**
- * for_each_zone_zonelist_nodemask - helper macro to iterate over valid zones in a zonelist at or below a given zone index and within a nodemask
- * @zone - The current zone in the iterator
- * @z - The current pointer within zonelist->zones being iterated
- * @zlist - The zonelist being iterated
- * @highidx - The zone index of the highest zone to return
- * @nodemask - Nodemask allowed by the allocator
- *
- * This iterator iterates though all zones at or below a given zone index and
- * within a given nodemask
- */
-#define for_each_zone_zonelist_nodemask(zone, z, zlist, highidx, nodemask) \
- for (z = first_zones_zonelist(zlist, highidx, nodemask, &zone); \
- zone; \
- z = next_zones_zonelist(++z, highidx, nodemask, &zone)) \
-
-/**
- * for_each_zone_zonelist - helper macro to iterate over valid zones in a zonelist at or below a given zone index
- * @zone - The current zone in the iterator
- * @z - The current pointer within zonelist->zones being iterated
- * @zlist - The zonelist being iterated
- * @highidx - The zone index of the highest zone to return
- *
- * This iterator iterates though all zones at or below a given zone index.
- */
-#define for_each_zone_zonelist(zone, z, zlist, highidx) \
- for_each_zone_zonelist_nodemask(zone, z, zlist, highidx, NULL)
-
-#ifdef CONFIG_SPARSEMEM
-#include <asm/sparsemem.h>
-#endif
-
-#if !defined(CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID) && \
- !defined(CONFIG_HAVE_MEMBLOCK_NODE_MAP)
-static inline unsigned long early_pfn_to_nid(unsigned long pfn)
-{
- return 0;
-}
-#endif
-
-#ifdef CONFIG_FLATMEM
-#define pfn_to_nid(pfn) (0)
-#endif
-
-#ifdef CONFIG_SPARSEMEM
-
-/*
- * SECTION_SHIFT #bits space required to store a section #
- *
- * PA_SECTION_SHIFT physical address to/from section number
- * PFN_SECTION_SHIFT pfn to/from section number
- */
-#define SECTIONS_SHIFT (MAX_PHYSMEM_BITS - SECTION_SIZE_BITS)
-
-#define PA_SECTION_SHIFT (SECTION_SIZE_BITS)
-#define PFN_SECTION_SHIFT (SECTION_SIZE_BITS - PAGE_SHIFT)
-
-#define NR_MEM_SECTIONS (1UL << SECTIONS_SHIFT)
-
-#define PAGES_PER_SECTION (1UL << PFN_SECTION_SHIFT)
-#define PAGE_SECTION_MASK (~(PAGES_PER_SECTION-1))
-
-#define SECTION_BLOCKFLAGS_BITS \
- ((1UL << (PFN_SECTION_SHIFT - pageblock_order)) * NR_PAGEBLOCK_BITS)
-
-#if (MAX_ORDER - 1 + PAGE_SHIFT) > SECTION_SIZE_BITS
-#error Allocator MAX_ORDER exceeds SECTION_SIZE
-#endif
-
-#define pfn_to_section_nr(pfn) ((pfn) >> PFN_SECTION_SHIFT)
-#define section_nr_to_pfn(sec) ((sec) << PFN_SECTION_SHIFT)
-
-#define SECTION_ALIGN_UP(pfn) (((pfn) + PAGES_PER_SECTION - 1) & PAGE_SECTION_MASK)
-#define SECTION_ALIGN_DOWN(pfn) ((pfn) & PAGE_SECTION_MASK)
-
-struct page;
-struct page_cgroup;
-struct mem_section {
- /*
- * This is, logically, a pointer to an array of struct
- * pages. However, it is stored with some other magic.
- * (see sparse.c::sparse_init_one_section())
- *
- * Additionally during early boot we encode node id of
- * the location of the section here to guide allocation.
- * (see sparse.c::memory_present())
- *
- * Making it a UL at least makes someone do a cast
- * before using it wrong.
- */
- unsigned long section_mem_map;
-
- /* See declaration of similar field in struct zone */
- unsigned long *pageblock_flags;
-#ifdef CONFIG_CGROUP_MEM_RES_CTLR
- /*
- * If !SPARSEMEM, pgdat doesn't have page_cgroup pointer. We use
- * section. (see memcontrol.h/page_cgroup.h about this.)
- */
- struct page_cgroup *page_cgroup;
- unsigned long pad;
-#endif
-};
-
-#ifdef CONFIG_SPARSEMEM_EXTREME
-#define SECTIONS_PER_ROOT (PAGE_SIZE / sizeof (struct mem_section))
-#else
-#define SECTIONS_PER_ROOT 1
-#endif
-
-#define SECTION_NR_TO_ROOT(sec) ((sec) / SECTIONS_PER_ROOT)
-#define NR_SECTION_ROOTS DIV_ROUND_UP(NR_MEM_SECTIONS, SECTIONS_PER_ROOT)
-#define SECTION_ROOT_MASK (SECTIONS_PER_ROOT - 1)
-
-#ifdef CONFIG_SPARSEMEM_EXTREME
-extern struct mem_section *mem_section[NR_SECTION_ROOTS];
-#else
-extern struct mem_section mem_section[NR_SECTION_ROOTS][SECTIONS_PER_ROOT];
-#endif
-
-static inline struct mem_section *__nr_to_section(unsigned long nr)
-{
- if (!mem_section[SECTION_NR_TO_ROOT(nr)])
- return NULL;
- return &mem_section[SECTION_NR_TO_ROOT(nr)][nr & SECTION_ROOT_MASK];
-}
-extern int __section_nr(struct mem_section* ms);
-extern unsigned long usemap_size(void);
-
-/*
- * We use the lower bits of the mem_map pointer to store
- * a little bit of information. There should be at least
- * 3 bits here due to 32-bit alignment.
- */
-#define SECTION_MARKED_PRESENT (1UL<<0)
-#define SECTION_HAS_MEM_MAP (1UL<<1)
-#define SECTION_MAP_LAST_BIT (1UL<<2)
-#define SECTION_MAP_MASK (~(SECTION_MAP_LAST_BIT-1))
-#define SECTION_NID_SHIFT 2
-
-static inline struct page *__section_mem_map_addr(struct mem_section *section)
-{
- unsigned long map = section->section_mem_map;
- map &= SECTION_MAP_MASK;
- return (struct page *)map;
-}
-
-static inline int present_section(struct mem_section *section)
-{
- return (section && (section->section_mem_map & SECTION_MARKED_PRESENT));
-}
-
-static inline int present_section_nr(unsigned long nr)
-{
- return present_section(__nr_to_section(nr));
-}
-
-static inline int valid_section(struct mem_section *section)
-{
- return (section && (section->section_mem_map & SECTION_HAS_MEM_MAP));
-}
-
-static inline int valid_section_nr(unsigned long nr)
-{
- return valid_section(__nr_to_section(nr));
-}
-
-static inline struct mem_section *__pfn_to_section(unsigned long pfn)
-{
- return __nr_to_section(pfn_to_section_nr(pfn));
-}
-
-#ifndef CONFIG_HAVE_ARCH_PFN_VALID
-static inline int pfn_valid(unsigned long pfn)
-{
- if (pfn_to_section_nr(pfn) >= NR_MEM_SECTIONS)
- return 0;
- return valid_section(__nr_to_section(pfn_to_section_nr(pfn)));
-}
-#endif
-
-static inline int pfn_present(unsigned long pfn)
-{
- if (pfn_to_section_nr(pfn) >= NR_MEM_SECTIONS)
- return 0;
- return present_section(__nr_to_section(pfn_to_section_nr(pfn)));
-}
-
-/*
- * These are _only_ used during initialisation, therefore they
- * can use __initdata ... They could have names to indicate
- * this restriction.
- */
-#ifdef CONFIG_NUMA
-#define pfn_to_nid(pfn) \
-({ \
- unsigned long __pfn_to_nid_pfn = (pfn); \
- page_to_nid(pfn_to_page(__pfn_to_nid_pfn)); \
-})
-#else
-#define pfn_to_nid(pfn) (0)
-#endif
-
-#define early_pfn_valid(pfn) pfn_valid(pfn)
-void sparse_init(void);
-#else
-#define sparse_init() do {} while (0)
-#define sparse_index_init(_sec, _nid) do {} while (0)
-#endif /* CONFIG_SPARSEMEM */
-
-#ifdef CONFIG_NODES_SPAN_OTHER_NODES
-bool early_pfn_in_nid(unsigned long pfn, int nid);
-#else
-#define early_pfn_in_nid(pfn, nid) (1)
-#endif
-
-#ifndef early_pfn_valid
-#define early_pfn_valid(pfn) (1)
-#endif
-
-void memory_present(int nid, unsigned long start, unsigned long end);
-unsigned long __init node_memmap_size_bytes(int, unsigned long, unsigned long);
-
-/*
- * If it is possible to have holes within a MAX_ORDER_NR_PAGES, then we
- * need to check pfn validility within that MAX_ORDER_NR_PAGES block.
- * pfn_valid_within() should be used in this case; we optimise this away
- * when we have no holes within a MAX_ORDER_NR_PAGES block.
- */
-#ifdef CONFIG_HOLES_IN_ZONE
-#define pfn_valid_within(pfn) pfn_valid(pfn)
-#else
-#define pfn_valid_within(pfn) (1)
-#endif
-
-#ifdef CONFIG_ARCH_HAS_HOLES_MEMORYMODEL
-/*
- * pfn_valid() is meant to be able to tell if a given PFN has valid memmap
- * associated with it or not. In FLATMEM, it is expected that holes always
- * have valid memmap as long as there is valid PFNs either side of the hole.
- * In SPARSEMEM, it is assumed that a valid section has a memmap for the
- * entire section.
- *
- * However, an ARM, and maybe other embedded architectures in the future
- * free memmap backing holes to save memory on the assumption the memmap is
- * never used. The page_zone linkages are then broken even though pfn_valid()
- * returns true. A walker of the full memmap must then do this additional
- * check to ensure the memmap they are looking at is sane by making sure
- * the zone and PFN linkages are still valid. This is expensive, but walkers
- * of the full memmap are extremely rare.
- */
-int memmap_valid_within(unsigned long pfn,
- struct page *page, struct zone *zone);
-#else
-static inline int memmap_valid_within(unsigned long pfn,
- struct page *page, struct zone *zone)
-{
- return 1;
-}
-#endif /* CONFIG_ARCH_HAS_HOLES_MEMORYMODEL */
-
-#endif /* !__GENERATING_BOUNDS.H */
-#endif /* !__ASSEMBLY__ */
-#endif /* _LINUX_MMZONE_H */
diff --git a/ANDROID_3.4.5/include/linux/mnt_namespace.h b/ANDROID_3.4.5/include/linux/mnt_namespace.h
deleted file mode 100644
index 5a8e3903..00000000
--- a/ANDROID_3.4.5/include/linux/mnt_namespace.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef _NAMESPACE_H_
-#define _NAMESPACE_H_
-#ifdef __KERNEL__
-
-struct mnt_namespace;
-struct fs_struct;
-
-extern struct mnt_namespace *copy_mnt_ns(unsigned long, struct mnt_namespace *,
- struct fs_struct *);
-extern void put_mnt_ns(struct mnt_namespace *ns);
-
-extern const struct file_operations proc_mounts_operations;
-extern const struct file_operations proc_mountinfo_operations;
-extern const struct file_operations proc_mountstats_operations;
-
-#endif
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mod_devicetable.h b/ANDROID_3.4.5/include/linux/mod_devicetable.h
deleted file mode 100644
index 501da4cb..00000000
--- a/ANDROID_3.4.5/include/linux/mod_devicetable.h
+++ /dev/null
@@ -1,593 +0,0 @@
-/*
- * Device tables which are exported to userspace via
- * scripts/mod/file2alias.c. You must keep that file in sync with this
- * header.
- */
-
-#ifndef LINUX_MOD_DEVICETABLE_H
-#define LINUX_MOD_DEVICETABLE_H
-
-#ifdef __KERNEL__
-#include <linux/types.h>
-typedef unsigned long kernel_ulong_t;
-#endif
-
-#define PCI_ANY_ID (~0)
-
-struct pci_device_id {
- __u32 vendor, device; /* Vendor and device ID or PCI_ANY_ID*/
- __u32 subvendor, subdevice; /* Subsystem ID's or PCI_ANY_ID */
- __u32 class, class_mask; /* (class,subclass,prog-if) triplet */
- kernel_ulong_t driver_data; /* Data private to the driver */
-};
-
-
-#define IEEE1394_MATCH_VENDOR_ID 0x0001
-#define IEEE1394_MATCH_MODEL_ID 0x0002
-#define IEEE1394_MATCH_SPECIFIER_ID 0x0004
-#define IEEE1394_MATCH_VERSION 0x0008
-
-struct ieee1394_device_id {
- __u32 match_flags;
- __u32 vendor_id;
- __u32 model_id;
- __u32 specifier_id;
- __u32 version;
- kernel_ulong_t driver_data
- __attribute__((aligned(sizeof(kernel_ulong_t))));
-};
-
-
-/*
- * Device table entry for "new style" table-driven USB drivers.
- * User mode code can read these tables to choose which modules to load.
- * Declare the table as a MODULE_DEVICE_TABLE.
- *
- * A probe() parameter will point to a matching entry from this table.
- * Use the driver_info field for each match to hold information tied
- * to that match: device quirks, etc.
- *
- * Terminate the driver's table with an all-zeroes entry.
- * Use the flag values to control which fields are compared.
- */
-
-/**
- * struct usb_device_id - identifies USB devices for probing and hotplugging
- * @match_flags: Bit mask controlling of the other fields are used to match
- * against new devices. Any field except for driver_info may be used,
- * although some only make sense in conjunction with other fields.
- * This is usually set by a USB_DEVICE_*() macro, which sets all
- * other fields in this structure except for driver_info.
- * @idVendor: USB vendor ID for a device; numbers are assigned
- * by the USB forum to its members.
- * @idProduct: Vendor-assigned product ID.
- * @bcdDevice_lo: Low end of range of vendor-assigned product version numbers.
- * This is also used to identify individual product versions, for
- * a range consisting of a single device.
- * @bcdDevice_hi: High end of version number range. The range of product
- * versions is inclusive.
- * @bDeviceClass: Class of device; numbers are assigned
- * by the USB forum. Products may choose to implement classes,
- * or be vendor-specific. Device classes specify behavior of all
- * the interfaces on a devices.
- * @bDeviceSubClass: Subclass of device; associated with bDeviceClass.
- * @bDeviceProtocol: Protocol of device; associated with bDeviceClass.
- * @bInterfaceClass: Class of interface; numbers are assigned
- * by the USB forum. Products may choose to implement classes,
- * or be vendor-specific. Interface classes specify behavior only
- * of a given interface; other interfaces may support other classes.
- * @bInterfaceSubClass: Subclass of interface; associated with bInterfaceClass.
- * @bInterfaceProtocol: Protocol of interface; associated with bInterfaceClass.
- * @driver_info: Holds information used by the driver. Usually it holds
- * a pointer to a descriptor understood by the driver, or perhaps
- * device flags.
- *
- * In most cases, drivers will create a table of device IDs by using
- * USB_DEVICE(), or similar macros designed for that purpose.
- * They will then export it to userspace using MODULE_DEVICE_TABLE(),
- * and provide it to the USB core through their usb_driver structure.
- *
- * See the usb_match_id() function for information about how matches are
- * performed. Briefly, you will normally use one of several macros to help
- * construct these entries. Each entry you provide will either identify
- * one or more specific products, or will identify a class of products
- * which have agreed to behave the same. You should put the more specific
- * matches towards the beginning of your table, so that driver_info can
- * record quirks of specific products.
- */
-struct usb_device_id {
- /* which fields to match against? */
- __u16 match_flags;
-
- /* Used for product specific matches; range is inclusive */
- __u16 idVendor;
- __u16 idProduct;
- __u16 bcdDevice_lo;
- __u16 bcdDevice_hi;
-
- /* Used for device class matches */
- __u8 bDeviceClass;
- __u8 bDeviceSubClass;
- __u8 bDeviceProtocol;
-
- /* Used for interface class matches */
- __u8 bInterfaceClass;
- __u8 bInterfaceSubClass;
- __u8 bInterfaceProtocol;
-
- /* not matched against */
- kernel_ulong_t driver_info;
-};
-
-/* Some useful macros to use to create struct usb_device_id */
-#define USB_DEVICE_ID_MATCH_VENDOR 0x0001
-#define USB_DEVICE_ID_MATCH_PRODUCT 0x0002
-#define USB_DEVICE_ID_MATCH_DEV_LO 0x0004
-#define USB_DEVICE_ID_MATCH_DEV_HI 0x0008
-#define USB_DEVICE_ID_MATCH_DEV_CLASS 0x0010
-#define USB_DEVICE_ID_MATCH_DEV_SUBCLASS 0x0020
-#define USB_DEVICE_ID_MATCH_DEV_PROTOCOL 0x0040
-#define USB_DEVICE_ID_MATCH_INT_CLASS 0x0080
-#define USB_DEVICE_ID_MATCH_INT_SUBCLASS 0x0100
-#define USB_DEVICE_ID_MATCH_INT_PROTOCOL 0x0200
-
-#define HID_ANY_ID (~0)
-
-struct hid_device_id {
- __u16 bus;
- __u16 pad1;
- __u32 vendor;
- __u32 product;
- kernel_ulong_t driver_data
- __attribute__((aligned(sizeof(kernel_ulong_t))));
-};
-
-/* s390 CCW devices */
-struct ccw_device_id {
- __u16 match_flags; /* which fields to match against */
-
- __u16 cu_type; /* control unit type */
- __u16 dev_type; /* device type */
- __u8 cu_model; /* control unit model */
- __u8 dev_model; /* device model */
-
- kernel_ulong_t driver_info;
-};
-
-#define CCW_DEVICE_ID_MATCH_CU_TYPE 0x01
-#define CCW_DEVICE_ID_MATCH_CU_MODEL 0x02
-#define CCW_DEVICE_ID_MATCH_DEVICE_TYPE 0x04
-#define CCW_DEVICE_ID_MATCH_DEVICE_MODEL 0x08
-
-/* s390 AP bus devices */
-struct ap_device_id {
- __u16 match_flags; /* which fields to match against */
- __u8 dev_type; /* device type */
- __u8 pad1;
- __u32 pad2;
- kernel_ulong_t driver_info;
-};
-
-#define AP_DEVICE_ID_MATCH_DEVICE_TYPE 0x01
-
-/* s390 css bus devices (subchannels) */
-struct css_device_id {
- __u8 match_flags;
- __u8 type; /* subchannel type */
- __u16 pad2;
- __u32 pad3;
- kernel_ulong_t driver_data;
-};
-
-#define ACPI_ID_LEN 16 /* only 9 bytes needed here, 16 bytes are used */
- /* to workaround crosscompile issues */
-
-struct acpi_device_id {
- __u8 id[ACPI_ID_LEN];
- kernel_ulong_t driver_data;
-};
-
-#define PNP_ID_LEN 8
-#define PNP_MAX_DEVICES 8
-
-struct pnp_device_id {
- __u8 id[PNP_ID_LEN];
- kernel_ulong_t driver_data;
-};
-
-struct pnp_card_device_id {
- __u8 id[PNP_ID_LEN];
- kernel_ulong_t driver_data;
- struct {
- __u8 id[PNP_ID_LEN];
- } devs[PNP_MAX_DEVICES];
-};
-
-
-#define SERIO_ANY 0xff
-
-struct serio_device_id {
- __u8 type;
- __u8 extra;
- __u8 id;
- __u8 proto;
-};
-
-/*
- * Struct used for matching a device
- */
-struct of_device_id
-{
- char name[32];
- char type[32];
- char compatible[128];
-#ifdef __KERNEL__
- void *data;
-#else
- kernel_ulong_t data;
-#endif
-};
-
-/* VIO */
-struct vio_device_id {
- char type[32];
- char compat[32];
-};
-
-/* PCMCIA */
-
-struct pcmcia_device_id {
- __u16 match_flags;
-
- __u16 manf_id;
- __u16 card_id;
-
- __u8 func_id;
-
- /* for real multi-function devices */
- __u8 function;
-
- /* for pseudo multi-function devices */
- __u8 device_no;
-
- __u32 prod_id_hash[4]
- __attribute__((aligned(sizeof(__u32))));
-
- /* not matched against in kernelspace*/
-#ifdef __KERNEL__
- const char * prod_id[4];
-#else
- kernel_ulong_t prod_id[4]
- __attribute__((aligned(sizeof(kernel_ulong_t))));
-#endif
-
- /* not matched against */
- kernel_ulong_t driver_info;
-#ifdef __KERNEL__
- char * cisfile;
-#else
- kernel_ulong_t cisfile;
-#endif
-};
-
-#define PCMCIA_DEV_ID_MATCH_MANF_ID 0x0001
-#define PCMCIA_DEV_ID_MATCH_CARD_ID 0x0002
-#define PCMCIA_DEV_ID_MATCH_FUNC_ID 0x0004
-#define PCMCIA_DEV_ID_MATCH_FUNCTION 0x0008
-#define PCMCIA_DEV_ID_MATCH_PROD_ID1 0x0010
-#define PCMCIA_DEV_ID_MATCH_PROD_ID2 0x0020
-#define PCMCIA_DEV_ID_MATCH_PROD_ID3 0x0040
-#define PCMCIA_DEV_ID_MATCH_PROD_ID4 0x0080
-#define PCMCIA_DEV_ID_MATCH_DEVICE_NO 0x0100
-#define PCMCIA_DEV_ID_MATCH_FAKE_CIS 0x0200
-#define PCMCIA_DEV_ID_MATCH_ANONYMOUS 0x0400
-
-/* Input */
-#define INPUT_DEVICE_ID_EV_MAX 0x1f
-#define INPUT_DEVICE_ID_KEY_MIN_INTERESTING 0x71
-#define INPUT_DEVICE_ID_KEY_MAX 0x2ff
-#define INPUT_DEVICE_ID_REL_MAX 0x0f
-#define INPUT_DEVICE_ID_ABS_MAX 0x3f
-#define INPUT_DEVICE_ID_MSC_MAX 0x07
-#define INPUT_DEVICE_ID_LED_MAX 0x0f
-#define INPUT_DEVICE_ID_SND_MAX 0x07
-#define INPUT_DEVICE_ID_FF_MAX 0x7f
-#define INPUT_DEVICE_ID_SW_MAX 0x0f
-
-#define INPUT_DEVICE_ID_MATCH_BUS 1
-#define INPUT_DEVICE_ID_MATCH_VENDOR 2
-#define INPUT_DEVICE_ID_MATCH_PRODUCT 4
-#define INPUT_DEVICE_ID_MATCH_VERSION 8
-
-#define INPUT_DEVICE_ID_MATCH_EVBIT 0x0010
-#define INPUT_DEVICE_ID_MATCH_KEYBIT 0x0020
-#define INPUT_DEVICE_ID_MATCH_RELBIT 0x0040
-#define INPUT_DEVICE_ID_MATCH_ABSBIT 0x0080
-#define INPUT_DEVICE_ID_MATCH_MSCIT 0x0100
-#define INPUT_DEVICE_ID_MATCH_LEDBIT 0x0200
-#define INPUT_DEVICE_ID_MATCH_SNDBIT 0x0400
-#define INPUT_DEVICE_ID_MATCH_FFBIT 0x0800
-#define INPUT_DEVICE_ID_MATCH_SWBIT 0x1000
-
-struct input_device_id {
-
- kernel_ulong_t flags;
-
- __u16 bustype;
- __u16 vendor;
- __u16 product;
- __u16 version;
-
- kernel_ulong_t evbit[INPUT_DEVICE_ID_EV_MAX / BITS_PER_LONG + 1];
- kernel_ulong_t keybit[INPUT_DEVICE_ID_KEY_MAX / BITS_PER_LONG + 1];
- kernel_ulong_t relbit[INPUT_DEVICE_ID_REL_MAX / BITS_PER_LONG + 1];
- kernel_ulong_t absbit[INPUT_DEVICE_ID_ABS_MAX / BITS_PER_LONG + 1];
- kernel_ulong_t mscbit[INPUT_DEVICE_ID_MSC_MAX / BITS_PER_LONG + 1];
- kernel_ulong_t ledbit[INPUT_DEVICE_ID_LED_MAX / BITS_PER_LONG + 1];
- kernel_ulong_t sndbit[INPUT_DEVICE_ID_SND_MAX / BITS_PER_LONG + 1];
- kernel_ulong_t ffbit[INPUT_DEVICE_ID_FF_MAX / BITS_PER_LONG + 1];
- kernel_ulong_t swbit[INPUT_DEVICE_ID_SW_MAX / BITS_PER_LONG + 1];
-
- kernel_ulong_t driver_info;
-};
-
-/* EISA */
-
-#define EISA_SIG_LEN 8
-
-/* The EISA signature, in ASCII form, null terminated */
-struct eisa_device_id {
- char sig[EISA_SIG_LEN];
- kernel_ulong_t driver_data;
-};
-
-#define EISA_DEVICE_MODALIAS_FMT "eisa:s%s"
-
-struct parisc_device_id {
- __u8 hw_type; /* 5 bits used */
- __u8 hversion_rev; /* 4 bits */
- __u16 hversion; /* 12 bits */
- __u32 sversion; /* 20 bits */
-};
-
-#define PA_HWTYPE_ANY_ID 0xff
-#define PA_HVERSION_REV_ANY_ID 0xff
-#define PA_HVERSION_ANY_ID 0xffff
-#define PA_SVERSION_ANY_ID 0xffffffff
-
-/* SDIO */
-
-#define SDIO_ANY_ID (~0)
-
-struct sdio_device_id {
- __u8 class; /* Standard interface or SDIO_ANY_ID */
- __u16 vendor; /* Vendor or SDIO_ANY_ID */
- __u16 device; /* Device ID or SDIO_ANY_ID */
- kernel_ulong_t driver_data /* Data private to the driver */
- __attribute__((aligned(sizeof(kernel_ulong_t))));
-};
-
-/* SSB core, see drivers/ssb/ */
-struct ssb_device_id {
- __u16 vendor;
- __u16 coreid;
- __u8 revision;
-};
-#define SSB_DEVICE(_vendor, _coreid, _revision) \
- { .vendor = _vendor, .coreid = _coreid, .revision = _revision, }
-#define SSB_DEVTABLE_END \
- { 0, },
-
-#define SSB_ANY_VENDOR 0xFFFF
-#define SSB_ANY_ID 0xFFFF
-#define SSB_ANY_REV 0xFF
-
-/* Broadcom's specific AMBA core, see drivers/bcma/ */
-struct bcma_device_id {
- __u16 manuf;
- __u16 id;
- __u8 rev;
- __u8 class;
-};
-#define BCMA_CORE(_manuf, _id, _rev, _class) \
- { .manuf = _manuf, .id = _id, .rev = _rev, .class = _class, }
-#define BCMA_CORETABLE_END \
- { 0, },
-
-#define BCMA_ANY_MANUF 0xFFFF
-#define BCMA_ANY_ID 0xFFFF
-#define BCMA_ANY_REV 0xFF
-#define BCMA_ANY_CLASS 0xFF
-
-struct virtio_device_id {
- __u32 device;
- __u32 vendor;
-};
-#define VIRTIO_DEV_ANY_ID 0xffffffff
-
-/*
- * For Hyper-V devices we use the device guid as the id.
- */
-struct hv_vmbus_device_id {
- __u8 guid[16];
- kernel_ulong_t driver_data /* Data private to the driver */
- __attribute__((aligned(sizeof(kernel_ulong_t))));
-};
-
-/* rpmsg */
-
-#define RPMSG_NAME_SIZE 32
-#define RPMSG_DEVICE_MODALIAS_FMT "rpmsg:%s"
-
-struct rpmsg_device_id {
- char name[RPMSG_NAME_SIZE];
-};
-
-/* i2c */
-
-#define I2C_NAME_SIZE 20
-#define I2C_MODULE_PREFIX "i2c:"
-
-struct i2c_device_id {
- char name[I2C_NAME_SIZE];
- kernel_ulong_t driver_data /* Data private to the driver */
- __attribute__((aligned(sizeof(kernel_ulong_t))));
-};
-
-/* spi */
-
-#define SPI_NAME_SIZE 32
-#define SPI_MODULE_PREFIX "spi:"
-
-struct spi_device_id {
- char name[SPI_NAME_SIZE];
- kernel_ulong_t driver_data /* Data private to the driver */
- __attribute__((aligned(sizeof(kernel_ulong_t))));
-};
-
-/* dmi */
-enum dmi_field {
- DMI_NONE,
- DMI_BIOS_VENDOR,
- DMI_BIOS_VERSION,
- DMI_BIOS_DATE,
- DMI_SYS_VENDOR,
- DMI_PRODUCT_NAME,
- DMI_PRODUCT_VERSION,
- DMI_PRODUCT_SERIAL,
- DMI_PRODUCT_UUID,
- DMI_BOARD_VENDOR,
- DMI_BOARD_NAME,
- DMI_BOARD_VERSION,
- DMI_BOARD_SERIAL,
- DMI_BOARD_ASSET_TAG,
- DMI_CHASSIS_VENDOR,
- DMI_CHASSIS_TYPE,
- DMI_CHASSIS_VERSION,
- DMI_CHASSIS_SERIAL,
- DMI_CHASSIS_ASSET_TAG,
- DMI_STRING_MAX,
-};
-
-struct dmi_strmatch {
- unsigned char slot;
- char substr[79];
-};
-
-#ifndef __KERNEL__
-struct dmi_system_id {
- kernel_ulong_t callback;
- kernel_ulong_t ident;
- struct dmi_strmatch matches[4];
- kernel_ulong_t driver_data
- __attribute__((aligned(sizeof(kernel_ulong_t))));
-};
-#else
-struct dmi_system_id {
- int (*callback)(const struct dmi_system_id *);
- const char *ident;
- struct dmi_strmatch matches[4];
- void *driver_data;
-};
-/*
- * struct dmi_device_id appears during expansion of
- * "MODULE_DEVICE_TABLE(dmi, x)". Compiler doesn't look inside it
- * but this is enough for gcc 3.4.6 to error out:
- * error: storage size of '__mod_dmi_device_table' isn't known
- */
-#define dmi_device_id dmi_system_id
-#endif
-
-#define DMI_MATCH(a, b) { a, b }
-
-#define PLATFORM_NAME_SIZE 20
-#define PLATFORM_MODULE_PREFIX "platform:"
-
-struct platform_device_id {
- char name[PLATFORM_NAME_SIZE];
- kernel_ulong_t driver_data
- __attribute__((aligned(sizeof(kernel_ulong_t))));
-};
-
-#define MDIO_MODULE_PREFIX "mdio:"
-
-#define MDIO_ID_FMT "%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d"
-#define MDIO_ID_ARGS(_id) \
- (_id)>>31, ((_id)>>30) & 1, ((_id)>>29) & 1, ((_id)>>28) & 1, \
- ((_id)>>27) & 1, ((_id)>>26) & 1, ((_id)>>25) & 1, ((_id)>>24) & 1, \
- ((_id)>>23) & 1, ((_id)>>22) & 1, ((_id)>>21) & 1, ((_id)>>20) & 1, \
- ((_id)>>19) & 1, ((_id)>>18) & 1, ((_id)>>17) & 1, ((_id)>>16) & 1, \
- ((_id)>>15) & 1, ((_id)>>14) & 1, ((_id)>>13) & 1, ((_id)>>12) & 1, \
- ((_id)>>11) & 1, ((_id)>>10) & 1, ((_id)>>9) & 1, ((_id)>>8) & 1, \
- ((_id)>>7) & 1, ((_id)>>6) & 1, ((_id)>>5) & 1, ((_id)>>4) & 1, \
- ((_id)>>3) & 1, ((_id)>>2) & 1, ((_id)>>1) & 1, (_id) & 1
-
-/**
- * struct mdio_device_id - identifies PHY devices on an MDIO/MII bus
- * @phy_id: The result of
- * (mdio_read(&MII_PHYSID1) << 16 | mdio_read(&PHYSID2)) & @phy_id_mask
- * for this PHY type
- * @phy_id_mask: Defines the significant bits of @phy_id. A value of 0
- * is used to terminate an array of struct mdio_device_id.
- */
-struct mdio_device_id {
- __u32 phy_id;
- __u32 phy_id_mask;
-};
-
-struct zorro_device_id {
- __u32 id; /* Device ID or ZORRO_WILDCARD */
- kernel_ulong_t driver_data; /* Data private to the driver */
-};
-
-#define ZORRO_WILDCARD (0xffffffff) /* not official */
-
-#define ZORRO_DEVICE_MODALIAS_FMT "zorro:i%08X"
-
-#define ISAPNP_ANY_ID 0xffff
-struct isapnp_device_id {
- unsigned short card_vendor, card_device;
- unsigned short vendor, function;
- kernel_ulong_t driver_data; /* data private to the driver */
-};
-
-/**
- * struct amba_id - identifies a device on an AMBA bus
- * @id: The significant bits if the hardware device ID
- * @mask: Bitmask specifying which bits of the id field are significant when
- * matching. A driver binds to a device when ((hardware device ID) & mask)
- * == id.
- * @data: Private data used by the driver.
- */
-struct amba_id {
- unsigned int id;
- unsigned int mask;
-#ifndef __KERNEL__
- kernel_ulong_t data;
-#else
- void *data;
-#endif
-};
-
-/*
- * Match x86 CPUs for CPU specific drivers.
- * See documentation of "x86_match_cpu" for details.
- */
-
-struct x86_cpu_id {
- __u16 vendor;
- __u16 family;
- __u16 model;
- __u16 feature; /* bit index */
- kernel_ulong_t driver_data;
-};
-
-#define X86_FEATURE_MATCH(x) \
- { X86_VENDOR_ANY, X86_FAMILY_ANY, X86_MODEL_ANY, x }
-
-#define X86_VENDOR_ANY 0xffff
-#define X86_FAMILY_ANY 0
-#define X86_MODEL_ANY 0
-#define X86_FEATURE_ANY 0 /* Same as FPU, you can't test for that */
-
-#endif /* LINUX_MOD_DEVICETABLE_H */
diff --git a/ANDROID_3.4.5/include/linux/module.h b/ANDROID_3.4.5/include/linux/module.h
deleted file mode 100644
index fbcafe2e..00000000
--- a/ANDROID_3.4.5/include/linux/module.h
+++ /dev/null
@@ -1,651 +0,0 @@
-#ifndef _LINUX_MODULE_H
-#define _LINUX_MODULE_H
-/*
- * Dynamic loading of modules into the kernel.
- *
- * Rewritten by Richard Henderson <rth@tamu.edu> Dec 1996
- * Rewritten again by Rusty Russell, 2002
- */
-#include <linux/list.h>
-#include <linux/stat.h>
-#include <linux/compiler.h>
-#include <linux/cache.h>
-#include <linux/kmod.h>
-#include <linux/elf.h>
-#include <linux/stringify.h>
-#include <linux/kobject.h>
-#include <linux/moduleparam.h>
-#include <linux/tracepoint.h>
-#include <linux/export.h>
-
-#include <linux/percpu.h>
-#include <asm/module.h>
-
-/* Not Yet Implemented */
-#define MODULE_SUPPORTED_DEVICE(name)
-
-#define MODULE_NAME_LEN MAX_PARAM_PREFIX_LEN
-
-struct modversion_info
-{
- unsigned long crc;
- char name[MODULE_NAME_LEN];
-};
-
-struct module;
-
-struct module_kobject {
- struct kobject kobj;
- struct module *mod;
- struct kobject *drivers_dir;
- struct module_param_attrs *mp;
-};
-
-struct module_attribute {
- struct attribute attr;
- ssize_t (*show)(struct module_attribute *, struct module_kobject *,
- char *);
- ssize_t (*store)(struct module_attribute *, struct module_kobject *,
- const char *, size_t count);
- void (*setup)(struct module *, const char *);
- int (*test)(struct module *);
- void (*free)(struct module *);
-};
-
-struct module_version_attribute {
- struct module_attribute mattr;
- const char *module_name;
- const char *version;
-} __attribute__ ((__aligned__(sizeof(void *))));
-
-extern ssize_t __modver_version_show(struct module_attribute *,
- struct module_kobject *, char *);
-
-extern struct module_attribute module_uevent;
-
-/* These are either module local, or the kernel's dummy ones. */
-extern int init_module(void);
-extern void cleanup_module(void);
-
-/* Archs provide a method of finding the correct exception table. */
-struct exception_table_entry;
-
-const struct exception_table_entry *
-search_extable(const struct exception_table_entry *first,
- const struct exception_table_entry *last,
- unsigned long value);
-void sort_extable(struct exception_table_entry *start,
- struct exception_table_entry *finish);
-void sort_main_extable(void);
-void trim_init_extable(struct module *m);
-
-#ifdef MODULE
-#define MODULE_GENERIC_TABLE(gtype,name) \
-extern const struct gtype##_id __mod_##gtype##_table \
- __attribute__ ((unused, alias(__stringify(name))))
-
-#else /* !MODULE */
-#define MODULE_GENERIC_TABLE(gtype,name)
-#endif
-
-/* Generic info of form tag = "info" */
-#define MODULE_INFO(tag, info) __MODULE_INFO(tag, tag, info)
-
-/* For userspace: you can also call me... */
-#define MODULE_ALIAS(_alias) MODULE_INFO(alias, _alias)
-
-/*
- * The following license idents are currently accepted as indicating free
- * software modules
- *
- * "GPL" [GNU Public License v2 or later]
- * "GPL v2" [GNU Public License v2]
- * "GPL and additional rights" [GNU Public License v2 rights and more]
- * "Dual BSD/GPL" [GNU Public License v2
- * or BSD license choice]
- * "Dual MIT/GPL" [GNU Public License v2
- * or MIT license choice]
- * "Dual MPL/GPL" [GNU Public License v2
- * or Mozilla license choice]
- *
- * The following other idents are available
- *
- * "Proprietary" [Non free products]
- *
- * There are dual licensed components, but when running with Linux it is the
- * GPL that is relevant so this is a non issue. Similarly LGPL linked with GPL
- * is a GPL combined work.
- *
- * This exists for several reasons
- * 1. So modinfo can show license info for users wanting to vet their setup
- * is free
- * 2. So the community can ignore bug reports including proprietary modules
- * 3. So vendors can do likewise based on their own policies
- */
-#define MODULE_LICENSE(_license) MODULE_INFO(license, _license)
-
-/*
- * Author(s), use "Name <email>" or just "Name", for multiple
- * authors use multiple MODULE_AUTHOR() statements/lines.
- */
-#define MODULE_AUTHOR(_author) MODULE_INFO(author, _author)
-
-/* What your module does. */
-#define MODULE_DESCRIPTION(_description) MODULE_INFO(description, _description)
-
-#define MODULE_DEVICE_TABLE(type,name) \
- MODULE_GENERIC_TABLE(type##_device,name)
-
-/* Version of form [<epoch>:]<version>[-<extra-version>].
- Or for CVS/RCS ID version, everything but the number is stripped.
- <epoch>: A (small) unsigned integer which allows you to start versions
- anew. If not mentioned, it's zero. eg. "2:1.0" is after
- "1:2.0".
- <version>: The <version> may contain only alphanumerics and the
- character `.'. Ordered by numeric sort for numeric parts,
- ascii sort for ascii parts (as per RPM or DEB algorithm).
- <extraversion>: Like <version>, but inserted for local
- customizations, eg "rh3" or "rusty1".
-
- Using this automatically adds a checksum of the .c files and the
- local headers in "srcversion".
-*/
-
-#if defined(MODULE) || !defined(CONFIG_SYSFS)
-#define MODULE_VERSION(_version) MODULE_INFO(version, _version)
-#else
-#define MODULE_VERSION(_version) \
- static struct module_version_attribute ___modver_attr = { \
- .mattr = { \
- .attr = { \
- .name = "version", \
- .mode = S_IRUGO, \
- }, \
- .show = __modver_version_show, \
- }, \
- .module_name = KBUILD_MODNAME, \
- .version = _version, \
- }; \
- static const struct module_version_attribute \
- __used __attribute__ ((__section__ ("__modver"))) \
- * __moduleparam_const __modver_attr = &___modver_attr
-#endif
-
-/* Optional firmware file (or files) needed by the module
- * format is simply firmware file name. Multiple firmware
- * files require multiple MODULE_FIRMWARE() specifiers */
-#define MODULE_FIRMWARE(_firmware) MODULE_INFO(firmware, _firmware)
-
-/* Given an address, look for it in the exception tables */
-const struct exception_table_entry *search_exception_tables(unsigned long add);
-
-struct notifier_block;
-
-#ifdef CONFIG_MODULES
-
-extern int modules_disabled; /* for sysctl */
-/* Get/put a kernel symbol (calls must be symmetric) */
-void *__symbol_get(const char *symbol);
-void *__symbol_get_gpl(const char *symbol);
-#define symbol_get(x) ((typeof(&x))(__symbol_get(MODULE_SYMBOL_PREFIX #x)))
-
-/* modules using other modules: kdb wants to see this. */
-struct module_use {
- struct list_head source_list;
- struct list_head target_list;
- struct module *source, *target;
-};
-
-enum module_state
-{
- MODULE_STATE_LIVE,
- MODULE_STATE_COMING,
- MODULE_STATE_GOING,
-};
-
-/**
- * struct module_ref - per cpu module reference counts
- * @incs: number of module get on this cpu
- * @decs: number of module put on this cpu
- *
- * We force an alignment on 8 or 16 bytes, so that alloc_percpu()
- * put @incs/@decs in same cache line, with no extra memory cost,
- * since alloc_percpu() is fine grained.
- */
-struct module_ref {
- unsigned long incs;
- unsigned long decs;
-} __attribute((aligned(2 * sizeof(unsigned long))));
-
-struct module
-{
- enum module_state state;
-
- /* Member of list of modules */
- struct list_head list;
-
- /* Unique handle for this module */
- char name[MODULE_NAME_LEN];
-
- /* Sysfs stuff. */
- struct module_kobject mkobj;
- struct module_attribute *modinfo_attrs;
- const char *version;
- const char *srcversion;
- struct kobject *holders_dir;
-
- /* Exported symbols */
- const struct kernel_symbol *syms;
- const unsigned long *crcs;
- unsigned int num_syms;
-
- /* Kernel parameters. */
- struct kernel_param *kp;
- unsigned int num_kp;
-
- /* GPL-only exported symbols. */
- unsigned int num_gpl_syms;
- const struct kernel_symbol *gpl_syms;
- const unsigned long *gpl_crcs;
-
-#ifdef CONFIG_UNUSED_SYMBOLS
- /* unused exported symbols. */
- const struct kernel_symbol *unused_syms;
- const unsigned long *unused_crcs;
- unsigned int num_unused_syms;
-
- /* GPL-only, unused exported symbols. */
- unsigned int num_unused_gpl_syms;
- const struct kernel_symbol *unused_gpl_syms;
- const unsigned long *unused_gpl_crcs;
-#endif
-
- /* symbols that will be GPL-only in the near future. */
- const struct kernel_symbol *gpl_future_syms;
- const unsigned long *gpl_future_crcs;
- unsigned int num_gpl_future_syms;
-
- /* Exception table */
- unsigned int num_exentries;
- struct exception_table_entry *extable;
-
- /* Startup function. */
- int (*init)(void);
-
- /* If this is non-NULL, vfree after init() returns */
- void *module_init;
-
- /* Here is the actual code + data, vfree'd on unload. */
- void *module_core;
-
- /* Here are the sizes of the init and core sections */
- unsigned int init_size, core_size;
-
- /* The size of the executable code in each section. */
- unsigned int init_text_size, core_text_size;
-
- /* Size of RO sections of the module (text+rodata) */
- unsigned int init_ro_size, core_ro_size;
-
- /* Arch-specific module values */
- struct mod_arch_specific arch;
-
- unsigned int taints; /* same bits as kernel:tainted */
-
-#ifdef CONFIG_GENERIC_BUG
- /* Support for BUG */
- unsigned num_bugs;
- struct list_head bug_list;
- struct bug_entry *bug_table;
-#endif
-
-#ifdef CONFIG_KALLSYMS
- /*
- * We keep the symbol and string tables for kallsyms.
- * The core_* fields below are temporary, loader-only (they
- * could really be discarded after module init).
- */
- Elf_Sym *symtab, *core_symtab;
- unsigned int num_symtab, core_num_syms;
- char *strtab, *core_strtab;
-
- /* Section attributes */
- struct module_sect_attrs *sect_attrs;
-
- /* Notes attributes */
- struct module_notes_attrs *notes_attrs;
-#endif
-
- /* The command line arguments (may be mangled). People like
- keeping pointers to this stuff */
- char *args;
-
-#ifdef CONFIG_SMP
- /* Per-cpu data. */
- void __percpu *percpu;
- unsigned int percpu_size;
-#endif
-
-#ifdef CONFIG_TRACEPOINTS
- unsigned int num_tracepoints;
- struct tracepoint * const *tracepoints_ptrs;
-#endif
-#ifdef HAVE_JUMP_LABEL
- struct jump_entry *jump_entries;
- unsigned int num_jump_entries;
-#endif
-#ifdef CONFIG_TRACING
- unsigned int num_trace_bprintk_fmt;
- const char **trace_bprintk_fmt_start;
-#endif
-#ifdef CONFIG_EVENT_TRACING
- struct ftrace_event_call **trace_events;
- unsigned int num_trace_events;
-#endif
-#ifdef CONFIG_FTRACE_MCOUNT_RECORD
- unsigned int num_ftrace_callsites;
- unsigned long *ftrace_callsites;
-#endif
-
-#ifdef CONFIG_MODULE_UNLOAD
- /* What modules depend on me? */
- struct list_head source_list;
- /* What modules do I depend on? */
- struct list_head target_list;
-
- /* Who is waiting for us to be unloaded */
- struct task_struct *waiter;
-
- /* Destruction function. */
- void (*exit)(void);
-
- struct module_ref __percpu *refptr;
-#endif
-
-#ifdef CONFIG_CONSTRUCTORS
- /* Constructor functions. */
- ctor_fn_t *ctors;
- unsigned int num_ctors;
-#endif
-};
-#ifndef MODULE_ARCH_INIT
-#define MODULE_ARCH_INIT {}
-#endif
-
-extern struct mutex module_mutex;
-
-/* FIXME: It'd be nice to isolate modules during init, too, so they
- aren't used before they (may) fail. But presently too much code
- (IDE & SCSI) require entry into the module during init.*/
-static inline int module_is_live(struct module *mod)
-{
- return mod->state != MODULE_STATE_GOING;
-}
-
-struct module *__module_text_address(unsigned long addr);
-struct module *__module_address(unsigned long addr);
-bool is_module_address(unsigned long addr);
-bool is_module_percpu_address(unsigned long addr);
-bool is_module_text_address(unsigned long addr);
-
-static inline int within_module_core(unsigned long addr, struct module *mod)
-{
- return (unsigned long)mod->module_core <= addr &&
- addr < (unsigned long)mod->module_core + mod->core_size;
-}
-
-static inline int within_module_init(unsigned long addr, struct module *mod)
-{
- return (unsigned long)mod->module_init <= addr &&
- addr < (unsigned long)mod->module_init + mod->init_size;
-}
-
-/* Search for module by name: must hold module_mutex. */
-struct module *find_module(const char *name);
-
-struct symsearch {
- const struct kernel_symbol *start, *stop;
- const unsigned long *crcs;
- enum {
- NOT_GPL_ONLY,
- GPL_ONLY,
- WILL_BE_GPL_ONLY,
- } licence;
- bool unused;
-};
-
-/* Search for an exported symbol by name. */
-const struct kernel_symbol *find_symbol(const char *name,
- struct module **owner,
- const unsigned long **crc,
- bool gplok,
- bool warn);
-
-/* Walk the exported symbol table */
-bool each_symbol_section(bool (*fn)(const struct symsearch *arr,
- struct module *owner,
- void *data), void *data);
-
-/* Returns 0 and fills in value, defined and namebuf, or -ERANGE if
- symnum out of range. */
-int module_get_kallsym(unsigned int symnum, unsigned long *value, char *type,
- char *name, char *module_name, int *exported);
-
-/* Look for this name: can be of form module:name. */
-unsigned long module_kallsyms_lookup_name(const char *name);
-
-int module_kallsyms_on_each_symbol(int (*fn)(void *, const char *,
- struct module *, unsigned long),
- void *data);
-
-extern void __module_put_and_exit(struct module *mod, long code)
- __attribute__((noreturn));
-#define module_put_and_exit(code) __module_put_and_exit(THIS_MODULE, code);
-
-#ifdef CONFIG_MODULE_UNLOAD
-unsigned long module_refcount(struct module *mod);
-void __symbol_put(const char *symbol);
-#define symbol_put(x) __symbol_put(MODULE_SYMBOL_PREFIX #x)
-void symbol_put_addr(void *addr);
-
-/* Sometimes we know we already have a refcount, and it's easier not
- to handle the error case (which only happens with rmmod --wait). */
-extern void __module_get(struct module *module);
-
-/* This is the Right Way to get a module: if it fails, it's being removed,
- * so pretend it's not there. */
-extern bool try_module_get(struct module *module);
-
-extern void module_put(struct module *module);
-
-#else /*!CONFIG_MODULE_UNLOAD*/
-static inline int try_module_get(struct module *module)
-{
- return !module || module_is_live(module);
-}
-static inline void module_put(struct module *module)
-{
-}
-static inline void __module_get(struct module *module)
-{
-}
-#define symbol_put(x) do { } while(0)
-#define symbol_put_addr(p) do { } while(0)
-
-#endif /* CONFIG_MODULE_UNLOAD */
-int ref_module(struct module *a, struct module *b);
-
-/* This is a #define so the string doesn't get put in every .o file */
-#define module_name(mod) \
-({ \
- struct module *__mod = (mod); \
- __mod ? __mod->name : "kernel"; \
-})
-
-/* For kallsyms to ask for address resolution. namebuf should be at
- * least KSYM_NAME_LEN long: a pointer to namebuf is returned if
- * found, otherwise NULL. */
-const char *module_address_lookup(unsigned long addr,
- unsigned long *symbolsize,
- unsigned long *offset,
- char **modname,
- char *namebuf);
-int lookup_module_symbol_name(unsigned long addr, char *symname);
-int lookup_module_symbol_attrs(unsigned long addr, unsigned long *size, unsigned long *offset, char *modname, char *name);
-
-/* For extable.c to search modules' exception tables. */
-const struct exception_table_entry *search_module_extables(unsigned long addr);
-
-int register_module_notifier(struct notifier_block * nb);
-int unregister_module_notifier(struct notifier_block * nb);
-
-extern void print_modules(void);
-
-#else /* !CONFIG_MODULES... */
-
-/* Given an address, look for it in the exception tables. */
-static inline const struct exception_table_entry *
-search_module_extables(unsigned long addr)
-{
- return NULL;
-}
-
-static inline struct module *__module_address(unsigned long addr)
-{
- return NULL;
-}
-
-static inline struct module *__module_text_address(unsigned long addr)
-{
- return NULL;
-}
-
-static inline bool is_module_address(unsigned long addr)
-{
- return false;
-}
-
-static inline bool is_module_percpu_address(unsigned long addr)
-{
- return false;
-}
-
-static inline bool is_module_text_address(unsigned long addr)
-{
- return false;
-}
-
-/* Get/put a kernel symbol (calls should be symmetric) */
-#define symbol_get(x) ({ extern typeof(x) x __attribute__((weak)); &(x); })
-#define symbol_put(x) do { } while(0)
-#define symbol_put_addr(x) do { } while(0)
-
-static inline void __module_get(struct module *module)
-{
-}
-
-static inline int try_module_get(struct module *module)
-{
- return 1;
-}
-
-static inline void module_put(struct module *module)
-{
-}
-
-#define module_name(mod) "kernel"
-
-/* For kallsyms to ask for address resolution. NULL means not found. */
-static inline const char *module_address_lookup(unsigned long addr,
- unsigned long *symbolsize,
- unsigned long *offset,
- char **modname,
- char *namebuf)
-{
- return NULL;
-}
-
-static inline int lookup_module_symbol_name(unsigned long addr, char *symname)
-{
- return -ERANGE;
-}
-
-static inline int lookup_module_symbol_attrs(unsigned long addr, unsigned long *size, unsigned long *offset, char *modname, char *name)
-{
- return -ERANGE;
-}
-
-static inline int module_get_kallsym(unsigned int symnum, unsigned long *value,
- char *type, char *name,
- char *module_name, int *exported)
-{
- return -ERANGE;
-}
-
-static inline unsigned long module_kallsyms_lookup_name(const char *name)
-{
- return 0;
-}
-
-static inline int module_kallsyms_on_each_symbol(int (*fn)(void *, const char *,
- struct module *,
- unsigned long),
- void *data)
-{
- return 0;
-}
-
-static inline int register_module_notifier(struct notifier_block * nb)
-{
- /* no events will happen anyway, so this can always succeed */
- return 0;
-}
-
-static inline int unregister_module_notifier(struct notifier_block * nb)
-{
- return 0;
-}
-
-#define module_put_and_exit(code) do_exit(code)
-
-static inline void print_modules(void)
-{
-}
-#endif /* CONFIG_MODULES */
-
-#ifdef CONFIG_SYSFS
-extern struct kset *module_kset;
-extern struct kobj_type module_ktype;
-extern int module_sysfs_initialized;
-#endif /* CONFIG_SYSFS */
-
-#define symbol_request(x) try_then_request_module(symbol_get(x), "symbol:" #x)
-
-/* BELOW HERE ALL THESE ARE OBSOLETE AND WILL VANISH */
-
-#define __MODULE_STRING(x) __stringify(x)
-
-#ifdef CONFIG_DEBUG_SET_MODULE_RONX
-extern void set_all_modules_text_rw(void);
-extern void set_all_modules_text_ro(void);
-#else
-static inline void set_all_modules_text_rw(void) { }
-static inline void set_all_modules_text_ro(void) { }
-#endif
-
-#ifdef CONFIG_GENERIC_BUG
-void module_bug_finalize(const Elf_Ehdr *, const Elf_Shdr *,
- struct module *);
-void module_bug_cleanup(struct module *);
-
-#else /* !CONFIG_GENERIC_BUG */
-
-static inline void module_bug_finalize(const Elf_Ehdr *hdr,
- const Elf_Shdr *sechdrs,
- struct module *mod)
-{
-}
-static inline void module_bug_cleanup(struct module *mod) {}
-#endif /* CONFIG_GENERIC_BUG */
-
-#endif /* _LINUX_MODULE_H */
diff --git a/ANDROID_3.4.5/include/linux/moduleloader.h b/ANDROID_3.4.5/include/linux/moduleloader.h
deleted file mode 100644
index b2be02eb..00000000
--- a/ANDROID_3.4.5/include/linux/moduleloader.h
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef _LINUX_MODULELOADER_H
-#define _LINUX_MODULELOADER_H
-/* The stuff needed for archs to support modules. */
-
-#include <linux/module.h>
-#include <linux/elf.h>
-
-/* These may be implemented by architectures that need to hook into the
- * module loader code. Architectures that don't need to do anything special
- * can just rely on the 'weak' default hooks defined in kernel/module.c.
- * Note, however, that at least one of apply_relocate or apply_relocate_add
- * must be implemented by each architecture.
- */
-
-/* Adjust arch-specific sections. Return 0 on success. */
-int module_frob_arch_sections(Elf_Ehdr *hdr,
- Elf_Shdr *sechdrs,
- char *secstrings,
- struct module *mod);
-
-/* Additional bytes needed by arch in front of individual sections */
-unsigned int arch_mod_section_prepend(struct module *mod, unsigned int section);
-
-/* Allocator used for allocating struct module, core sections and init
- sections. Returns NULL on failure. */
-void *module_alloc(unsigned long size);
-
-/* Free memory returned from module_alloc. */
-void module_free(struct module *mod, void *module_region);
-
-/* Apply the given relocation to the (simplified) ELF. Return -error
- or 0. */
-int apply_relocate(Elf_Shdr *sechdrs,
- const char *strtab,
- unsigned int symindex,
- unsigned int relsec,
- struct module *mod);
-
-/* Apply the given add relocation to the (simplified) ELF. Return
- -error or 0 */
-int apply_relocate_add(Elf_Shdr *sechdrs,
- const char *strtab,
- unsigned int symindex,
- unsigned int relsec,
- struct module *mod);
-
-/* Any final processing of module before access. Return -error or 0. */
-int module_finalize(const Elf_Ehdr *hdr,
- const Elf_Shdr *sechdrs,
- struct module *mod);
-
-/* Any cleanup needed when module leaves. */
-void module_arch_cleanup(struct module *mod);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/moduleparam.h b/ANDROID_3.4.5/include/linux/moduleparam.h
deleted file mode 100644
index 944bc186..00000000
--- a/ANDROID_3.4.5/include/linux/moduleparam.h
+++ /dev/null
@@ -1,465 +0,0 @@
-#ifndef _LINUX_MODULE_PARAMS_H
-#define _LINUX_MODULE_PARAMS_H
-/* (C) Copyright 2001, 2002 Rusty Russell IBM Corporation */
-#include <linux/init.h>
-#include <linux/stringify.h>
-#include <linux/kernel.h>
-
-/* You can override this manually, but generally this should match the
- module name. */
-#ifdef MODULE
-#define MODULE_PARAM_PREFIX /* empty */
-#else
-#define MODULE_PARAM_PREFIX KBUILD_MODNAME "."
-#endif
-
-/* Chosen so that structs with an unsigned long line up. */
-#define MAX_PARAM_PREFIX_LEN (64 - sizeof(unsigned long))
-
-#define ___module_cat(a,b) __mod_ ## a ## b
-#define __module_cat(a,b) ___module_cat(a,b)
-#ifdef MODULE
-#define __MODULE_INFO(tag, name, info) \
-static const char __module_cat(name,__LINE__)[] \
- __used __attribute__((section(".modinfo"), unused, aligned(1))) \
- = __stringify(tag) "=" info
-#else /* !MODULE */
-/* This struct is here for syntactic coherency, it is not used */
-#define __MODULE_INFO(tag, name, info) \
- struct __module_cat(name,__LINE__) {}
-#endif
-#define __MODULE_PARM_TYPE(name, _type) \
- __MODULE_INFO(parmtype, name##type, #name ":" _type)
-
-/* One for each parameter, describing how to use it. Some files do
- multiple of these per line, so can't just use MODULE_INFO. */
-#define MODULE_PARM_DESC(_parm, desc) \
- __MODULE_INFO(parm, _parm, #_parm ":" desc)
-
-struct kernel_param;
-
-struct kernel_param_ops {
- /* Returns 0, or -errno. arg is in kp->arg. */
- int (*set)(const char *val, const struct kernel_param *kp);
- /* Returns length written or -errno. Buffer is 4k (ie. be short!) */
- int (*get)(char *buffer, const struct kernel_param *kp);
- /* Optional function to free kp->arg when module unloaded. */
- void (*free)(void *arg);
-};
-
-struct kernel_param {
- const char *name;
- const struct kernel_param_ops *ops;
- u16 perm;
- s16 level;
- union {
- void *arg;
- const struct kparam_string *str;
- const struct kparam_array *arr;
- };
-};
-
-/* Special one for strings we want to copy into */
-struct kparam_string {
- unsigned int maxlen;
- char *string;
-};
-
-/* Special one for arrays */
-struct kparam_array
-{
- unsigned int max;
- unsigned int elemsize;
- unsigned int *num;
- const struct kernel_param_ops *ops;
- void *elem;
-};
-
-/**
- * module_param - typesafe helper for a module/cmdline parameter
- * @value: the variable to alter, and exposed parameter name.
- * @type: the type of the parameter
- * @perm: visibility in sysfs.
- *
- * @value becomes the module parameter, or (prefixed by KBUILD_MODNAME and a
- * ".") the kernel commandline parameter. Note that - is changed to _, so
- * the user can use "foo-bar=1" even for variable "foo_bar".
- *
- * @perm is 0 if the the variable is not to appear in sysfs, or 0444
- * for world-readable, 0644 for root-writable, etc. Note that if it
- * is writable, you may need to use kparam_block_sysfs_write() around
- * accesses (esp. charp, which can be kfreed when it changes).
- *
- * The @type is simply pasted to refer to a param_ops_##type and a
- * param_check_##type: for convenience many standard types are provided but
- * you can create your own by defining those variables.
- *
- * Standard types are:
- * byte, short, ushort, int, uint, long, ulong
- * charp: a character pointer
- * bool: a bool, values 0/1, y/n, Y/N.
- * invbool: the above, only sense-reversed (N = true).
- */
-#define module_param(name, type, perm) \
- module_param_named(name, name, type, perm)
-
-/**
- * module_param_named - typesafe helper for a renamed module/cmdline parameter
- * @name: a valid C identifier which is the parameter name.
- * @value: the actual lvalue to alter.
- * @type: the type of the parameter
- * @perm: visibility in sysfs.
- *
- * Usually it's a good idea to have variable names and user-exposed names the
- * same, but that's harder if the variable must be non-static or is inside a
- * structure. This allows exposure under a different name.
- */
-#define module_param_named(name, value, type, perm) \
- param_check_##type(name, &(value)); \
- module_param_cb(name, &param_ops_##type, &value, perm); \
- __MODULE_PARM_TYPE(name, #type)
-
-/**
- * module_param_cb - general callback for a module/cmdline parameter
- * @name: a valid C identifier which is the parameter name.
- * @ops: the set & get operations for this parameter.
- * @perm: visibility in sysfs.
- *
- * The ops can have NULL set or get functions.
- */
-#define module_param_cb(name, ops, arg, perm) \
- __module_param_call(MODULE_PARAM_PREFIX, name, ops, arg, perm, -1)
-
-/**
- * <level>_param_cb - general callback for a module/cmdline parameter
- * to be evaluated before certain initcall level
- * @name: a valid C identifier which is the parameter name.
- * @ops: the set & get operations for this parameter.
- * @perm: visibility in sysfs.
- *
- * The ops can have NULL set or get functions.
- */
-#define __level_param_cb(name, ops, arg, perm, level) \
- __module_param_call(MODULE_PARAM_PREFIX, name, ops, arg, perm, level)
-
-#define core_param_cb(name, ops, arg, perm) \
- __level_param_cb(name, ops, arg, perm, 1)
-
-#define postcore_param_cb(name, ops, arg, perm) \
- __level_param_cb(name, ops, arg, perm, 2)
-
-#define arch_param_cb(name, ops, arg, perm) \
- __level_param_cb(name, ops, arg, perm, 3)
-
-#define subsys_param_cb(name, ops, arg, perm) \
- __level_param_cb(name, ops, arg, perm, 4)
-
-#define fs_param_cb(name, ops, arg, perm) \
- __level_param_cb(name, ops, arg, perm, 5)
-
-#define device_param_cb(name, ops, arg, perm) \
- __level_param_cb(name, ops, arg, perm, 6)
-
-#define late_param_cb(name, ops, arg, perm) \
- __level_param_cb(name, ops, arg, perm, 7)
-
-/* On alpha, ia64 and ppc64 relocations to global data cannot go into
- read-only sections (which is part of respective UNIX ABI on these
- platforms). So 'const' makes no sense and even causes compile failures
- with some compilers. */
-#if defined(CONFIG_ALPHA) || defined(CONFIG_IA64) || defined(CONFIG_PPC64)
-#define __moduleparam_const
-#else
-#define __moduleparam_const const
-#endif
-
-/* This is the fundamental function for registering boot/module
- parameters. */
-#define __module_param_call(prefix, name, ops, arg, perm, level) \
- /* Default value instead of permissions? */ \
- static int __param_perm_check_##name __attribute__((unused)) = \
- BUILD_BUG_ON_ZERO((perm) < 0 || (perm) > 0777 || ((perm) & 2)) \
- + BUILD_BUG_ON_ZERO(sizeof(""prefix) > MAX_PARAM_PREFIX_LEN); \
- static const char __param_str_##name[] = prefix #name; \
- static struct kernel_param __moduleparam_const __param_##name \
- __used \
- __attribute__ ((unused,__section__ ("__param"),aligned(sizeof(void *)))) \
- = { __param_str_##name, ops, perm, level, { arg } }
-
-/* Obsolete - use module_param_cb() */
-#define module_param_call(name, set, get, arg, perm) \
- static struct kernel_param_ops __param_ops_##name = \
- { (void *)set, (void *)get }; \
- __module_param_call(MODULE_PARAM_PREFIX, \
- name, &__param_ops_##name, arg, \
- (perm) + sizeof(__check_old_set_param(set))*0, -1)
-
-/* We don't get oldget: it's often a new-style param_get_uint, etc. */
-static inline int
-__check_old_set_param(int (*oldset)(const char *, struct kernel_param *))
-{
- return 0;
-}
-
-/**
- * kparam_block_sysfs_write - make sure a parameter isn't written via sysfs.
- * @name: the name of the parameter
- *
- * There's no point blocking write on a paramter that isn't writable via sysfs!
- */
-#define kparam_block_sysfs_write(name) \
- do { \
- BUG_ON(!(__param_##name.perm & 0222)); \
- __kernel_param_lock(); \
- } while (0)
-
-/**
- * kparam_unblock_sysfs_write - allows sysfs to write to a parameter again.
- * @name: the name of the parameter
- */
-#define kparam_unblock_sysfs_write(name) \
- do { \
- BUG_ON(!(__param_##name.perm & 0222)); \
- __kernel_param_unlock(); \
- } while (0)
-
-/**
- * kparam_block_sysfs_read - make sure a parameter isn't read via sysfs.
- * @name: the name of the parameter
- *
- * This also blocks sysfs writes.
- */
-#define kparam_block_sysfs_read(name) \
- do { \
- BUG_ON(!(__param_##name.perm & 0444)); \
- __kernel_param_lock(); \
- } while (0)
-
-/**
- * kparam_unblock_sysfs_read - allows sysfs to read a parameter again.
- * @name: the name of the parameter
- */
-#define kparam_unblock_sysfs_read(name) \
- do { \
- BUG_ON(!(__param_##name.perm & 0444)); \
- __kernel_param_unlock(); \
- } while (0)
-
-#ifdef CONFIG_SYSFS
-extern void __kernel_param_lock(void);
-extern void __kernel_param_unlock(void);
-#else
-static inline void __kernel_param_lock(void)
-{
-}
-static inline void __kernel_param_unlock(void)
-{
-}
-#endif
-
-#ifndef MODULE
-/**
- * core_param - define a historical core kernel parameter.
- * @name: the name of the cmdline and sysfs parameter (often the same as var)
- * @var: the variable
- * @type: the type of the parameter
- * @perm: visibility in sysfs
- *
- * core_param is just like module_param(), but cannot be modular and
- * doesn't add a prefix (such as "printk."). This is for compatibility
- * with __setup(), and it makes sense as truly core parameters aren't
- * tied to the particular file they're in.
- */
-#define core_param(name, var, type, perm) \
- param_check_##type(name, &(var)); \
- __module_param_call("", name, &param_ops_##type, &var, perm, -1)
-#endif /* !MODULE */
-
-/**
- * module_param_string - a char array parameter
- * @name: the name of the parameter
- * @string: the string variable
- * @len: the maximum length of the string, incl. terminator
- * @perm: visibility in sysfs.
- *
- * This actually copies the string when it's set (unlike type charp).
- * @len is usually just sizeof(string).
- */
-#define module_param_string(name, string, len, perm) \
- static const struct kparam_string __param_string_##name \
- = { len, string }; \
- __module_param_call(MODULE_PARAM_PREFIX, name, \
- &param_ops_string, \
- .str = &__param_string_##name, perm, -1); \
- __MODULE_PARM_TYPE(name, "string")
-
-/**
- * parameq - checks if two parameter names match
- * @name1: parameter name 1
- * @name2: parameter name 2
- *
- * Returns true if the two parameter names are equal.
- * Dashes (-) are considered equal to underscores (_).
- */
-extern bool parameq(const char *name1, const char *name2);
-
-/**
- * parameqn - checks if two parameter names match
- * @name1: parameter name 1
- * @name2: parameter name 2
- * @n: the length to compare
- *
- * Similar to parameq(), except it compares @n characters.
- */
-extern bool parameqn(const char *name1, const char *name2, size_t n);
-
-/* Called on module insert or kernel boot */
-extern int parse_args(const char *name,
- char *args,
- const struct kernel_param *params,
- unsigned num,
- s16 level_min,
- s16 level_max,
- int (*unknown)(char *param, char *val));
-
-/* Called by module remove. */
-#ifdef CONFIG_SYSFS
-extern void destroy_params(const struct kernel_param *params, unsigned num);
-#else
-static inline void destroy_params(const struct kernel_param *params,
- unsigned num)
-{
-}
-#endif /* !CONFIG_SYSFS */
-
-/* All the helper functions */
-/* The macros to do compile-time type checking stolen from Jakub
- Jelinek, who IIRC came up with this idea for the 2.4 module init code. */
-#define __param_check(name, p, type) \
- static inline type *__check_##name(void) { return(p); }
-
-extern struct kernel_param_ops param_ops_byte;
-extern int param_set_byte(const char *val, const struct kernel_param *kp);
-extern int param_get_byte(char *buffer, const struct kernel_param *kp);
-#define param_check_byte(name, p) __param_check(name, p, unsigned char)
-
-extern struct kernel_param_ops param_ops_short;
-extern int param_set_short(const char *val, const struct kernel_param *kp);
-extern int param_get_short(char *buffer, const struct kernel_param *kp);
-#define param_check_short(name, p) __param_check(name, p, short)
-
-extern struct kernel_param_ops param_ops_ushort;
-extern int param_set_ushort(const char *val, const struct kernel_param *kp);
-extern int param_get_ushort(char *buffer, const struct kernel_param *kp);
-#define param_check_ushort(name, p) __param_check(name, p, unsigned short)
-
-extern struct kernel_param_ops param_ops_int;
-extern int param_set_int(const char *val, const struct kernel_param *kp);
-extern int param_get_int(char *buffer, const struct kernel_param *kp);
-#define param_check_int(name, p) __param_check(name, p, int)
-
-extern struct kernel_param_ops param_ops_uint;
-extern int param_set_uint(const char *val, const struct kernel_param *kp);
-extern int param_get_uint(char *buffer, const struct kernel_param *kp);
-#define param_check_uint(name, p) __param_check(name, p, unsigned int)
-
-extern struct kernel_param_ops param_ops_long;
-extern int param_set_long(const char *val, const struct kernel_param *kp);
-extern int param_get_long(char *buffer, const struct kernel_param *kp);
-#define param_check_long(name, p) __param_check(name, p, long)
-
-extern struct kernel_param_ops param_ops_ulong;
-extern int param_set_ulong(const char *val, const struct kernel_param *kp);
-extern int param_get_ulong(char *buffer, const struct kernel_param *kp);
-#define param_check_ulong(name, p) __param_check(name, p, unsigned long)
-
-extern struct kernel_param_ops param_ops_charp;
-extern int param_set_charp(const char *val, const struct kernel_param *kp);
-extern int param_get_charp(char *buffer, const struct kernel_param *kp);
-#define param_check_charp(name, p) __param_check(name, p, char *)
-
-/* We used to allow int as well as bool. We're taking that away! */
-extern struct kernel_param_ops param_ops_bool;
-extern int param_set_bool(const char *val, const struct kernel_param *kp);
-extern int param_get_bool(char *buffer, const struct kernel_param *kp);
-#define param_check_bool(name, p) __param_check(name, p, bool)
-
-extern struct kernel_param_ops param_ops_invbool;
-extern int param_set_invbool(const char *val, const struct kernel_param *kp);
-extern int param_get_invbool(char *buffer, const struct kernel_param *kp);
-#define param_check_invbool(name, p) __param_check(name, p, bool)
-
-/* An int, which can only be set like a bool (though it shows as an int). */
-extern struct kernel_param_ops param_ops_bint;
-extern int param_set_bint(const char *val, const struct kernel_param *kp);
-#define param_get_bint param_get_int
-#define param_check_bint param_check_int
-
-/**
- * module_param_array - a parameter which is an array of some type
- * @name: the name of the array variable
- * @type: the type, as per module_param()
- * @nump: optional pointer filled in with the number written
- * @perm: visibility in sysfs
- *
- * Input and output are as comma-separated values. Commas inside values
- * don't work properly (eg. an array of charp).
- *
- * ARRAY_SIZE(@name) is used to determine the number of elements in the
- * array, so the definition must be visible.
- */
-#define module_param_array(name, type, nump, perm) \
- module_param_array_named(name, name, type, nump, perm)
-
-/**
- * module_param_array_named - renamed parameter which is an array of some type
- * @name: a valid C identifier which is the parameter name
- * @array: the name of the array variable
- * @type: the type, as per module_param()
- * @nump: optional pointer filled in with the number written
- * @perm: visibility in sysfs
- *
- * This exposes a different name than the actual variable name. See
- * module_param_named() for why this might be necessary.
- */
-#define module_param_array_named(name, array, type, nump, perm) \
- param_check_##type(name, &(array)[0]); \
- static const struct kparam_array __param_arr_##name \
- = { .max = ARRAY_SIZE(array), .num = nump, \
- .ops = &param_ops_##type, \
- .elemsize = sizeof(array[0]), .elem = array }; \
- __module_param_call(MODULE_PARAM_PREFIX, name, \
- &param_array_ops, \
- .arr = &__param_arr_##name, \
- perm, -1); \
- __MODULE_PARM_TYPE(name, "array of " #type)
-
-extern struct kernel_param_ops param_array_ops;
-
-extern struct kernel_param_ops param_ops_string;
-extern int param_set_copystring(const char *val, const struct kernel_param *);
-extern int param_get_string(char *buffer, const struct kernel_param *kp);
-
-/* for exporting parameters in /sys/parameters */
-
-struct module;
-
-#if defined(CONFIG_SYSFS) && defined(CONFIG_MODULES)
-extern int module_param_sysfs_setup(struct module *mod,
- const struct kernel_param *kparam,
- unsigned int num_params);
-
-extern void module_param_sysfs_remove(struct module *mod);
-#else
-static inline int module_param_sysfs_setup(struct module *mod,
- const struct kernel_param *kparam,
- unsigned int num_params)
-{
- return 0;
-}
-
-static inline void module_param_sysfs_remove(struct module *mod)
-{ }
-#endif
-
-#endif /* _LINUX_MODULE_PARAMS_H */
diff --git a/ANDROID_3.4.5/include/linux/mount.h b/ANDROID_3.4.5/include/linux/mount.h
deleted file mode 100644
index d7029f4a..00000000
--- a/ANDROID_3.4.5/include/linux/mount.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- *
- * Definitions for mount interface. This describes the in the kernel build
- * linkedlist with mounted filesystems.
- *
- * Author: Marco van Wieringen <mvw@planets.elm.net>
- *
- */
-#ifndef _LINUX_MOUNT_H
-#define _LINUX_MOUNT_H
-
-#include <linux/types.h>
-#include <linux/list.h>
-#include <linux/nodemask.h>
-#include <linux/spinlock.h>
-#include <linux/seqlock.h>
-#include <linux/atomic.h>
-
-struct super_block;
-struct vfsmount;
-struct dentry;
-struct mnt_namespace;
-
-#define MNT_NOSUID 0x01
-#define MNT_NODEV 0x02
-#define MNT_NOEXEC 0x04
-#define MNT_NOATIME 0x08
-#define MNT_NODIRATIME 0x10
-#define MNT_RELATIME 0x20
-#define MNT_READONLY 0x40 /* does the user want this to be r/o? */
-
-#define MNT_SHRINKABLE 0x100
-#define MNT_WRITE_HOLD 0x200
-
-#define MNT_SHARED 0x1000 /* if the vfsmount is a shared mount */
-#define MNT_UNBINDABLE 0x2000 /* if the vfsmount is a unbindable mount */
-/*
- * MNT_SHARED_MASK is the set of flags that should be cleared when a
- * mount becomes shared. Currently, this is only the flag that says a
- * mount cannot be bind mounted, since this is how we create a mount
- * that shares events with another mount. If you add a new MNT_*
- * flag, consider how it interacts with shared mounts.
- */
-#define MNT_SHARED_MASK (MNT_UNBINDABLE)
-#define MNT_PROPAGATION_MASK (MNT_SHARED | MNT_UNBINDABLE)
-
-
-#define MNT_INTERNAL 0x4000
-
-struct vfsmount {
- struct dentry *mnt_root; /* root of the mounted tree */
- struct super_block *mnt_sb; /* pointer to superblock */
- int mnt_flags;
-};
-
-struct file; /* forward dec */
-
-extern int mnt_want_write(struct vfsmount *mnt);
-extern int mnt_want_write_file(struct file *file);
-extern int mnt_clone_write(struct vfsmount *mnt);
-extern void mnt_drop_write(struct vfsmount *mnt);
-extern void mnt_drop_write_file(struct file *file);
-extern void mntput(struct vfsmount *mnt);
-extern struct vfsmount *mntget(struct vfsmount *mnt);
-extern void mnt_pin(struct vfsmount *mnt);
-extern void mnt_unpin(struct vfsmount *mnt);
-extern int __mnt_is_readonly(struct vfsmount *mnt);
-
-struct file_system_type;
-extern struct vfsmount *vfs_kern_mount(struct file_system_type *type,
- int flags, const char *name,
- void *data);
-
-extern void mnt_set_expiry(struct vfsmount *mnt, struct list_head *expiry_list);
-extern void mark_mounts_for_expiry(struct list_head *mounts);
-
-extern dev_t name_to_dev_t(char *name);
-
-#endif /* _LINUX_MOUNT_H */
diff --git a/ANDROID_3.4.5/include/linux/mpage.h b/ANDROID_3.4.5/include/linux/mpage.h
deleted file mode 100644
index 068a0c99..00000000
--- a/ANDROID_3.4.5/include/linux/mpage.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * include/linux/mpage.h
- *
- * Contains declarations related to preparing and submitting BIOS which contain
- * multiple pagecache pages.
- */
-
-/*
- * (And no, it doesn't do the #ifdef __MPAGE_H thing, and it doesn't do
- * nested includes. Get it right in the .c file).
- */
-#ifdef CONFIG_BLOCK
-
-struct writeback_control;
-
-int mpage_readpages(struct address_space *mapping, struct list_head *pages,
- unsigned nr_pages, get_block_t get_block);
-int mpage_readpage(struct page *page, get_block_t get_block);
-int mpage_writepages(struct address_space *mapping,
- struct writeback_control *wbc, get_block_t get_block);
-int mpage_writepage(struct page *page, get_block_t *get_block,
- struct writeback_control *wbc);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mpi.h b/ANDROID_3.4.5/include/linux/mpi.h
deleted file mode 100644
index d02cca6c..00000000
--- a/ANDROID_3.4.5/include/linux/mpi.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/* mpi.h - Multi Precision Integers
- * Copyright (C) 1994, 1996, 1998, 1999,
- * 2000, 2001 Free Software Foundation, Inc.
- *
- * This file is part of GNUPG.
- *
- * GNUPG 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.
- *
- * GNUPG 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
- *
- * Note: This code is heavily based on the GNU MP Library.
- * Actually it's the same code with only minor changes in the
- * way the data is stored; this is to support the abstraction
- * of an optional secure memory allocation which may be used
- * to avoid revealing of sensitive data due to paging etc.
- * The GNU MP Library itself is published under the LGPL;
- * however I decided to publish this code under the plain GPL.
- */
-
-#ifndef G10_MPI_H
-#define G10_MPI_H
-
-#include <linux/types.h>
-
-/* DSI defines */
-
-#define SHA1_DIGEST_LENGTH 20
-
-/*end of DSI defines */
-
-#define BYTES_PER_MPI_LIMB (BITS_PER_LONG / 8)
-#define BITS_PER_MPI_LIMB BITS_PER_LONG
-
-typedef unsigned long int mpi_limb_t;
-typedef signed long int mpi_limb_signed_t;
-
-struct gcry_mpi {
- int alloced; /* array size (# of allocated limbs) */
- int nlimbs; /* number of valid limbs */
- int nbits; /* the real number of valid bits (info only) */
- int sign; /* indicates a negative number */
- unsigned flags; /* bit 0: array must be allocated in secure memory space */
- /* bit 1: not used */
- /* bit 2: the limb is a pointer to some m_alloced data */
- mpi_limb_t *d; /* array with the limbs */
-};
-
-typedef struct gcry_mpi *MPI;
-
-#define mpi_get_nlimbs(a) ((a)->nlimbs)
-#define mpi_is_neg(a) ((a)->sign)
-
-/*-- mpiutil.c --*/
-MPI mpi_alloc(unsigned nlimbs);
-MPI mpi_alloc_secure(unsigned nlimbs);
-MPI mpi_alloc_like(MPI a);
-void mpi_free(MPI a);
-int mpi_resize(MPI a, unsigned nlimbs);
-int mpi_copy(MPI *copy, const MPI a);
-void mpi_clear(MPI a);
-int mpi_set(MPI w, MPI u);
-int mpi_set_ui(MPI w, ulong u);
-MPI mpi_alloc_set_ui(unsigned long u);
-void mpi_m_check(MPI a);
-void mpi_swap(MPI a, MPI b);
-
-/*-- mpicoder.c --*/
-MPI do_encode_md(const void *sha_buffer, unsigned nbits);
-MPI mpi_read_from_buffer(const void *buffer, unsigned *ret_nread);
-int mpi_fromstr(MPI val, const char *str);
-u32 mpi_get_keyid(MPI a, u32 *keyid);
-void *mpi_get_buffer(MPI a, unsigned *nbytes, int *sign);
-void *mpi_get_secure_buffer(MPI a, unsigned *nbytes, int *sign);
-int mpi_set_buffer(MPI a, const void *buffer, unsigned nbytes, int sign);
-
-#define log_mpidump g10_log_mpidump
-
-/*-- mpi-add.c --*/
-int mpi_add_ui(MPI w, MPI u, ulong v);
-int mpi_add(MPI w, MPI u, MPI v);
-int mpi_addm(MPI w, MPI u, MPI v, MPI m);
-int mpi_sub_ui(MPI w, MPI u, ulong v);
-int mpi_sub(MPI w, MPI u, MPI v);
-int mpi_subm(MPI w, MPI u, MPI v, MPI m);
-
-/*-- mpi-mul.c --*/
-int mpi_mul_ui(MPI w, MPI u, ulong v);
-int mpi_mul_2exp(MPI w, MPI u, ulong cnt);
-int mpi_mul(MPI w, MPI u, MPI v);
-int mpi_mulm(MPI w, MPI u, MPI v, MPI m);
-
-/*-- mpi-div.c --*/
-ulong mpi_fdiv_r_ui(MPI rem, MPI dividend, ulong divisor);
-int mpi_fdiv_r(MPI rem, MPI dividend, MPI divisor);
-int mpi_fdiv_q(MPI quot, MPI dividend, MPI divisor);
-int mpi_fdiv_qr(MPI quot, MPI rem, MPI dividend, MPI divisor);
-int mpi_tdiv_r(MPI rem, MPI num, MPI den);
-int mpi_tdiv_qr(MPI quot, MPI rem, MPI num, MPI den);
-int mpi_tdiv_q_2exp(MPI w, MPI u, unsigned count);
-int mpi_divisible_ui(const MPI dividend, ulong divisor);
-
-/*-- mpi-gcd.c --*/
-int mpi_gcd(MPI g, const MPI a, const MPI b);
-
-/*-- mpi-pow.c --*/
-int mpi_pow(MPI w, MPI u, MPI v);
-int mpi_powm(MPI res, MPI base, MPI exp, MPI mod);
-
-/*-- mpi-mpow.c --*/
-int mpi_mulpowm(MPI res, MPI *basearray, MPI *exparray, MPI mod);
-
-/*-- mpi-cmp.c --*/
-int mpi_cmp_ui(MPI u, ulong v);
-int mpi_cmp(MPI u, MPI v);
-
-/*-- mpi-scan.c --*/
-int mpi_getbyte(MPI a, unsigned idx);
-void mpi_putbyte(MPI a, unsigned idx, int value);
-unsigned mpi_trailing_zeros(MPI a);
-
-/*-- mpi-bit.c --*/
-void mpi_normalize(MPI a);
-unsigned mpi_get_nbits(MPI a);
-int mpi_test_bit(MPI a, unsigned n);
-int mpi_set_bit(MPI a, unsigned n);
-int mpi_set_highbit(MPI a, unsigned n);
-void mpi_clear_highbit(MPI a, unsigned n);
-void mpi_clear_bit(MPI a, unsigned n);
-int mpi_rshift(MPI x, MPI a, unsigned n);
-
-/*-- mpi-inv.c --*/
-int mpi_invm(MPI x, MPI u, MPI v);
-
-#endif /*G10_MPI_H */
diff --git a/ANDROID_3.4.5/include/linux/mqueue.h b/ANDROID_3.4.5/include/linux/mqueue.h
deleted file mode 100644
index 8b5a7961..00000000
--- a/ANDROID_3.4.5/include/linux/mqueue.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Copyright (C) 2003 Krzysztof Benedyczak & Michal Wronski
-
- This program 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.
-
- It 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 software; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#ifndef _LINUX_MQUEUE_H
-#define _LINUX_MQUEUE_H
-
-#define MQ_PRIO_MAX 32768
-/* per-uid limit of kernel memory used by mqueue, in bytes */
-#define MQ_BYTES_MAX 819200
-
-struct mq_attr {
- long mq_flags; /* message queue flags */
- long mq_maxmsg; /* maximum number of messages */
- long mq_msgsize; /* maximum message size */
- long mq_curmsgs; /* number of messages currently queued */
- long __reserved[4]; /* ignored for input, zeroed for output */
-};
-
-/*
- * SIGEV_THREAD implementation:
- * SIGEV_THREAD must be implemented in user space. If SIGEV_THREAD is passed
- * to mq_notify, then
- * - sigev_signo must be the file descriptor of an AF_NETLINK socket. It's not
- * necessary that the socket is bound.
- * - sigev_value.sival_ptr must point to a cookie that is NOTIFY_COOKIE_LEN
- * bytes long.
- * If the notification is triggered, then the cookie is sent to the netlink
- * socket. The last byte of the cookie is replaced with the NOTIFY_?? codes:
- * NOTIFY_WOKENUP if the notification got triggered, NOTIFY_REMOVED if it was
- * removed, either due to a close() on the message queue fd or due to a
- * mq_notify() that removed the notification.
- */
-#define NOTIFY_NONE 0
-#define NOTIFY_WOKENUP 1
-#define NOTIFY_REMOVED 2
-
-#define NOTIFY_COOKIE_LEN 32
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mroute.h b/ANDROID_3.4.5/include/linux/mroute.h
deleted file mode 100644
index 46caaf44..00000000
--- a/ANDROID_3.4.5/include/linux/mroute.h
+++ /dev/null
@@ -1,251 +0,0 @@
-#ifndef __LINUX_MROUTE_H
-#define __LINUX_MROUTE_H
-
-#include <linux/sockios.h>
-#include <linux/types.h>
-#ifdef __KERNEL__
-#include <linux/in.h>
-#endif
-
-/*
- * Based on the MROUTING 3.5 defines primarily to keep
- * source compatibility with BSD.
- *
- * See the mrouted code for the original history.
- *
- * Protocol Independent Multicast (PIM) data structures included
- * Carlos Picoto (cap@di.fc.ul.pt)
- *
- */
-
-#define MRT_BASE 200
-#define MRT_INIT (MRT_BASE) /* Activate the kernel mroute code */
-#define MRT_DONE (MRT_BASE+1) /* Shutdown the kernel mroute */
-#define MRT_ADD_VIF (MRT_BASE+2) /* Add a virtual interface */
-#define MRT_DEL_VIF (MRT_BASE+3) /* Delete a virtual interface */
-#define MRT_ADD_MFC (MRT_BASE+4) /* Add a multicast forwarding entry */
-#define MRT_DEL_MFC (MRT_BASE+5) /* Delete a multicast forwarding entry */
-#define MRT_VERSION (MRT_BASE+6) /* Get the kernel multicast version */
-#define MRT_ASSERT (MRT_BASE+7) /* Activate PIM assert mode */
-#define MRT_PIM (MRT_BASE+8) /* enable PIM code */
-#define MRT_TABLE (MRT_BASE+9) /* Specify mroute table ID */
-
-#define SIOCGETVIFCNT SIOCPROTOPRIVATE /* IP protocol privates */
-#define SIOCGETSGCNT (SIOCPROTOPRIVATE+1)
-#define SIOCGETRPF (SIOCPROTOPRIVATE+2)
-
-#define MAXVIFS 32
-typedef unsigned long vifbitmap_t; /* User mode code depends on this lot */
-typedef unsigned short vifi_t;
-#define ALL_VIFS ((vifi_t)(-1))
-
-/*
- * Same idea as select
- */
-
-#define VIFM_SET(n,m) ((m)|=(1<<(n)))
-#define VIFM_CLR(n,m) ((m)&=~(1<<(n)))
-#define VIFM_ISSET(n,m) ((m)&(1<<(n)))
-#define VIFM_CLRALL(m) ((m)=0)
-#define VIFM_COPY(mfrom,mto) ((mto)=(mfrom))
-#define VIFM_SAME(m1,m2) ((m1)==(m2))
-
-/*
- * Passed by mrouted for an MRT_ADD_VIF - again we use the
- * mrouted 3.6 structures for compatibility
- */
-
-struct vifctl {
- vifi_t vifc_vifi; /* Index of VIF */
- unsigned char vifc_flags; /* VIFF_ flags */
- unsigned char vifc_threshold; /* ttl limit */
- unsigned int vifc_rate_limit; /* Rate limiter values (NI) */
- union {
- struct in_addr vifc_lcl_addr; /* Local interface address */
- int vifc_lcl_ifindex; /* Local interface index */
- };
- struct in_addr vifc_rmt_addr; /* IPIP tunnel addr */
-};
-
-#define VIFF_TUNNEL 0x1 /* IPIP tunnel */
-#define VIFF_SRCRT 0x2 /* NI */
-#define VIFF_REGISTER 0x4 /* register vif */
-#define VIFF_USE_IFINDEX 0x8 /* use vifc_lcl_ifindex instead of
- vifc_lcl_addr to find an interface */
-
-/*
- * Cache manipulation structures for mrouted and PIMd
- */
-
-struct mfcctl {
- struct in_addr mfcc_origin; /* Origin of mcast */
- struct in_addr mfcc_mcastgrp; /* Group in question */
- vifi_t mfcc_parent; /* Where it arrived */
- unsigned char mfcc_ttls[MAXVIFS]; /* Where it is going */
- unsigned int mfcc_pkt_cnt; /* pkt count for src-grp */
- unsigned int mfcc_byte_cnt;
- unsigned int mfcc_wrong_if;
- int mfcc_expire;
-};
-
-/*
- * Group count retrieval for mrouted
- */
-
-struct sioc_sg_req {
- struct in_addr src;
- struct in_addr grp;
- unsigned long pktcnt;
- unsigned long bytecnt;
- unsigned long wrong_if;
-};
-
-/*
- * To get vif packet counts
- */
-
-struct sioc_vif_req {
- vifi_t vifi; /* Which iface */
- unsigned long icount; /* In packets */
- unsigned long ocount; /* Out packets */
- unsigned long ibytes; /* In bytes */
- unsigned long obytes; /* Out bytes */
-};
-
-/*
- * This is the format the mroute daemon expects to see IGMP control
- * data. Magically happens to be like an IP packet as per the original
- */
-
-struct igmpmsg {
- __u32 unused1,unused2;
- unsigned char im_msgtype; /* What is this */
- unsigned char im_mbz; /* Must be zero */
- unsigned char im_vif; /* Interface (this ought to be a vifi_t!) */
- unsigned char unused3;
- struct in_addr im_src,im_dst;
-};
-
-/*
- * That's all usermode folks
- */
-
-#ifdef __KERNEL__
-#include <linux/pim.h>
-#include <net/sock.h>
-
-#ifdef CONFIG_IP_MROUTE
-static inline int ip_mroute_opt(int opt)
-{
- return (opt >= MRT_BASE) && (opt <= MRT_BASE + 10);
-}
-#else
-static inline int ip_mroute_opt(int opt)
-{
- return 0;
-}
-#endif
-
-#ifdef CONFIG_IP_MROUTE
-extern int ip_mroute_setsockopt(struct sock *, int, char __user *, unsigned int);
-extern int ip_mroute_getsockopt(struct sock *, int, char __user *, int __user *);
-extern int ipmr_ioctl(struct sock *sk, int cmd, void __user *arg);
-extern int ipmr_compat_ioctl(struct sock *sk, unsigned int cmd, void __user *arg);
-extern int ip_mr_init(void);
-#else
-static inline
-int ip_mroute_setsockopt(struct sock *sock,
- int optname, char __user *optval, unsigned int optlen)
-{
- return -ENOPROTOOPT;
-}
-
-static inline
-int ip_mroute_getsockopt(struct sock *sock,
- int optname, char __user *optval, int __user *optlen)
-{
- return -ENOPROTOOPT;
-}
-
-static inline
-int ipmr_ioctl(struct sock *sk, int cmd, void __user *arg)
-{
- return -ENOIOCTLCMD;
-}
-
-static inline int ip_mr_init(void)
-{
- return 0;
-}
-#endif
-
-struct vif_device {
- struct net_device *dev; /* Device we are using */
- unsigned long bytes_in,bytes_out;
- unsigned long pkt_in,pkt_out; /* Statistics */
- unsigned long rate_limit; /* Traffic shaping (NI) */
- unsigned char threshold; /* TTL threshold */
- unsigned short flags; /* Control flags */
- __be32 local,remote; /* Addresses(remote for tunnels)*/
- int link; /* Physical interface index */
-};
-
-#define VIFF_STATIC 0x8000
-
-struct mfc_cache {
- struct list_head list;
- __be32 mfc_mcastgrp; /* Group the entry belongs to */
- __be32 mfc_origin; /* Source of packet */
- vifi_t mfc_parent; /* Source interface */
- int mfc_flags; /* Flags on line */
-
- union {
- struct {
- unsigned long expires;
- struct sk_buff_head unresolved; /* Unresolved buffers */
- } unres;
- struct {
- unsigned long last_assert;
- int minvif;
- int maxvif;
- unsigned long bytes;
- unsigned long pkt;
- unsigned long wrong_if;
- unsigned char ttls[MAXVIFS]; /* TTL thresholds */
- } res;
- } mfc_un;
- struct rcu_head rcu;
-};
-
-#define MFC_STATIC 1
-#define MFC_NOTIFY 2
-
-#define MFC_LINES 64
-
-#ifdef __BIG_ENDIAN
-#define MFC_HASH(a,b) (((((__force u32)(__be32)a)>>24)^(((__force u32)(__be32)b)>>26))&(MFC_LINES-1))
-#else
-#define MFC_HASH(a,b) ((((__force u32)(__be32)a)^(((__force u32)(__be32)b)>>2))&(MFC_LINES-1))
-#endif
-
-#endif
-
-
-#define MFC_ASSERT_THRESH (3*HZ) /* Maximal freq. of asserts */
-
-/*
- * Pseudo messages used by mrouted
- */
-
-#define IGMPMSG_NOCACHE 1 /* Kern cache fill request to mrouted */
-#define IGMPMSG_WRONGVIF 2 /* For PIM assert processing (unused) */
-#define IGMPMSG_WHOLEPKT 3 /* For PIM Register processing */
-
-#ifdef __KERNEL__
-struct rtmsg;
-extern int ipmr_get_route(struct net *net, struct sk_buff *skb,
- __be32 saddr, __be32 daddr,
- struct rtmsg *rtm, int nowait);
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mroute6.h b/ANDROID_3.4.5/include/linux/mroute6.h
deleted file mode 100644
index 6d8c7251..00000000
--- a/ANDROID_3.4.5/include/linux/mroute6.h
+++ /dev/null
@@ -1,269 +0,0 @@
-#ifndef __LINUX_MROUTE6_H
-#define __LINUX_MROUTE6_H
-
-#include <linux/types.h>
-#include <linux/sockios.h>
-
-/*
- * Based on the MROUTING 3.5 defines primarily to keep
- * source compatibility with BSD.
- *
- * See the pim6sd code for the original history.
- *
- * Protocol Independent Multicast (PIM) data structures included
- * Carlos Picoto (cap@di.fc.ul.pt)
- *
- */
-
-#define MRT6_BASE 200
-#define MRT6_INIT (MRT6_BASE) /* Activate the kernel mroute code */
-#define MRT6_DONE (MRT6_BASE+1) /* Shutdown the kernel mroute */
-#define MRT6_ADD_MIF (MRT6_BASE+2) /* Add a virtual interface */
-#define MRT6_DEL_MIF (MRT6_BASE+3) /* Delete a virtual interface */
-#define MRT6_ADD_MFC (MRT6_BASE+4) /* Add a multicast forwarding entry */
-#define MRT6_DEL_MFC (MRT6_BASE+5) /* Delete a multicast forwarding entry */
-#define MRT6_VERSION (MRT6_BASE+6) /* Get the kernel multicast version */
-#define MRT6_ASSERT (MRT6_BASE+7) /* Activate PIM assert mode */
-#define MRT6_PIM (MRT6_BASE+8) /* enable PIM code */
-#define MRT6_TABLE (MRT6_BASE+9) /* Specify mroute table ID */
-
-#define SIOCGETMIFCNT_IN6 SIOCPROTOPRIVATE /* IP protocol privates */
-#define SIOCGETSGCNT_IN6 (SIOCPROTOPRIVATE+1)
-#define SIOCGETRPF (SIOCPROTOPRIVATE+2)
-
-#define MAXMIFS 32
-typedef unsigned long mifbitmap_t; /* User mode code depends on this lot */
-typedef unsigned short mifi_t;
-#define ALL_MIFS ((mifi_t)(-1))
-
-#ifndef IF_SETSIZE
-#define IF_SETSIZE 256
-#endif
-
-typedef __u32 if_mask;
-#define NIFBITS (sizeof(if_mask) * 8) /* bits per mask */
-
-#if !defined(__KERNEL__)
-#if !defined(DIV_ROUND_UP)
-#define DIV_ROUND_UP(x,y) (((x) + ((y) - 1)) / (y))
-#endif
-#endif
-
-typedef struct if_set {
- if_mask ifs_bits[DIV_ROUND_UP(IF_SETSIZE, NIFBITS)];
-} if_set;
-
-#define IF_SET(n, p) ((p)->ifs_bits[(n)/NIFBITS] |= (1 << ((n) % NIFBITS)))
-#define IF_CLR(n, p) ((p)->ifs_bits[(n)/NIFBITS] &= ~(1 << ((n) % NIFBITS)))
-#define IF_ISSET(n, p) ((p)->ifs_bits[(n)/NIFBITS] & (1 << ((n) % NIFBITS)))
-#define IF_COPY(f, t) bcopy(f, t, sizeof(*(f)))
-#define IF_ZERO(p) bzero(p, sizeof(*(p)))
-
-/*
- * Passed by mrouted for an MRT_ADD_MIF - again we use the
- * mrouted 3.6 structures for compatibility
- */
-
-struct mif6ctl {
- mifi_t mif6c_mifi; /* Index of MIF */
- unsigned char mif6c_flags; /* MIFF_ flags */
- unsigned char vifc_threshold; /* ttl limit */
- __u16 mif6c_pifi; /* the index of the physical IF */
- unsigned int vifc_rate_limit; /* Rate limiter values (NI) */
-};
-
-#define MIFF_REGISTER 0x1 /* register vif */
-
-/*
- * Cache manipulation structures for mrouted and PIMd
- */
-
-struct mf6cctl {
- struct sockaddr_in6 mf6cc_origin; /* Origin of mcast */
- struct sockaddr_in6 mf6cc_mcastgrp; /* Group in question */
- mifi_t mf6cc_parent; /* Where it arrived */
- struct if_set mf6cc_ifset; /* Where it is going */
-};
-
-/*
- * Group count retrieval for pim6sd
- */
-
-struct sioc_sg_req6 {
- struct sockaddr_in6 src;
- struct sockaddr_in6 grp;
- unsigned long pktcnt;
- unsigned long bytecnt;
- unsigned long wrong_if;
-};
-
-/*
- * To get vif packet counts
- */
-
-struct sioc_mif_req6 {
- mifi_t mifi; /* Which iface */
- unsigned long icount; /* In packets */
- unsigned long ocount; /* Out packets */
- unsigned long ibytes; /* In bytes */
- unsigned long obytes; /* Out bytes */
-};
-
-/*
- * That's all usermode folks
- */
-
-#ifdef __KERNEL__
-
-#include <linux/pim.h>
-#include <linux/skbuff.h> /* for struct sk_buff_head */
-#include <net/net_namespace.h>
-
-#ifdef CONFIG_IPV6_MROUTE
-static inline int ip6_mroute_opt(int opt)
-{
- return (opt >= MRT6_BASE) && (opt <= MRT6_BASE + 10);
-}
-#else
-static inline int ip6_mroute_opt(int opt)
-{
- return 0;
-}
-#endif
-
-struct sock;
-
-#ifdef CONFIG_IPV6_MROUTE
-extern int ip6_mroute_setsockopt(struct sock *, int, char __user *, unsigned int);
-extern int ip6_mroute_getsockopt(struct sock *, int, char __user *, int __user *);
-extern int ip6_mr_input(struct sk_buff *skb);
-extern int ip6mr_ioctl(struct sock *sk, int cmd, void __user *arg);
-extern int ip6mr_compat_ioctl(struct sock *sk, unsigned int cmd, void __user *arg);
-extern int ip6_mr_init(void);
-extern void ip6_mr_cleanup(void);
-#else
-static inline
-int ip6_mroute_setsockopt(struct sock *sock,
- int optname, char __user *optval, unsigned int optlen)
-{
- return -ENOPROTOOPT;
-}
-
-static inline
-int ip6_mroute_getsockopt(struct sock *sock,
- int optname, char __user *optval, int __user *optlen)
-{
- return -ENOPROTOOPT;
-}
-
-static inline
-int ip6mr_ioctl(struct sock *sk, int cmd, void __user *arg)
-{
- return -ENOIOCTLCMD;
-}
-
-static inline int ip6_mr_init(void)
-{
- return 0;
-}
-
-static inline void ip6_mr_cleanup(void)
-{
- return;
-}
-#endif
-
-struct mif_device {
- struct net_device *dev; /* Device we are using */
- unsigned long bytes_in,bytes_out;
- unsigned long pkt_in,pkt_out; /* Statistics */
- unsigned long rate_limit; /* Traffic shaping (NI) */
- unsigned char threshold; /* TTL threshold */
- unsigned short flags; /* Control flags */
- int link; /* Physical interface index */
-};
-
-#define VIFF_STATIC 0x8000
-
-struct mfc6_cache {
- struct list_head list;
- struct in6_addr mf6c_mcastgrp; /* Group the entry belongs to */
- struct in6_addr mf6c_origin; /* Source of packet */
- mifi_t mf6c_parent; /* Source interface */
- int mfc_flags; /* Flags on line */
-
- union {
- struct {
- unsigned long expires;
- struct sk_buff_head unresolved; /* Unresolved buffers */
- } unres;
- struct {
- unsigned long last_assert;
- int minvif;
- int maxvif;
- unsigned long bytes;
- unsigned long pkt;
- unsigned long wrong_if;
- unsigned char ttls[MAXMIFS]; /* TTL thresholds */
- } res;
- } mfc_un;
-};
-
-#define MFC_STATIC 1
-#define MFC_NOTIFY 2
-
-#define MFC6_LINES 64
-
-#define MFC6_HASH(a, g) (((__force u32)(a)->s6_addr32[0] ^ \
- (__force u32)(a)->s6_addr32[1] ^ \
- (__force u32)(a)->s6_addr32[2] ^ \
- (__force u32)(a)->s6_addr32[3] ^ \
- (__force u32)(g)->s6_addr32[0] ^ \
- (__force u32)(g)->s6_addr32[1] ^ \
- (__force u32)(g)->s6_addr32[2] ^ \
- (__force u32)(g)->s6_addr32[3]) % MFC6_LINES)
-
-#define MFC_ASSERT_THRESH (3*HZ) /* Maximal freq. of asserts */
-
-#endif
-
-#ifdef __KERNEL__
-struct rtmsg;
-extern int ip6mr_get_route(struct net *net, struct sk_buff *skb,
- struct rtmsg *rtm, int nowait);
-
-#ifdef CONFIG_IPV6_MROUTE
-extern struct sock *mroute6_socket(struct net *net, struct sk_buff *skb);
-extern int ip6mr_sk_done(struct sock *sk);
-#else
-static inline struct sock *mroute6_socket(struct net *net, struct sk_buff *skb)
-{
- return NULL;
-}
-static inline int ip6mr_sk_done(struct sock *sk)
-{
- return 0;
-}
-#endif
-#endif
-
-/*
- * Structure used to communicate from kernel to multicast router.
- * We'll overlay the structure onto an MLD header (not an IPv6 heder like igmpmsg{}
- * used for IPv4 implementation). This is because this structure will be passed via an
- * IPv6 raw socket, on which an application will only receiver the payload i.e the data after
- * the IPv6 header and all the extension headers. (See section 3 of RFC 3542)
- */
-
-struct mrt6msg {
-#define MRT6MSG_NOCACHE 1
-#define MRT6MSG_WRONGMIF 2
-#define MRT6MSG_WHOLEPKT 3 /* used for use level encap */
- __u8 im6_mbz; /* must be zero */
- __u8 im6_msgtype; /* what type of message */
- __u16 im6_mif; /* mif rec'd on */
- __u32 im6_pad; /* padding for 64 bit arch */
- struct in6_addr im6_src, im6_dst;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/msdos_fs.h b/ANDROID_3.4.5/include/linux/msdos_fs.h
deleted file mode 100644
index f38d4f0a..00000000
--- a/ANDROID_3.4.5/include/linux/msdos_fs.h
+++ /dev/null
@@ -1,185 +0,0 @@
-#ifndef _LINUX_MSDOS_FS_H
-#define _LINUX_MSDOS_FS_H
-
-#include <linux/types.h>
-#include <linux/magic.h>
-#include <asm/byteorder.h>
-
-/*
- * The MS-DOS filesystem constants/structures
- */
-
-#define SECTOR_SIZE 512 /* sector size (bytes) */
-#define SECTOR_BITS 9 /* log2(SECTOR_SIZE) */
-#define MSDOS_DPB (MSDOS_DPS) /* dir entries per block */
-#define MSDOS_DPB_BITS 4 /* log2(MSDOS_DPB) */
-#define MSDOS_DPS (SECTOR_SIZE / sizeof(struct msdos_dir_entry))
-#define MSDOS_DPS_BITS 4 /* log2(MSDOS_DPS) */
-#define MSDOS_LONGNAME 256 /* maximum name length */
-#define CF_LE_W(v) le16_to_cpu(v)
-#define CF_LE_L(v) le32_to_cpu(v)
-#define CT_LE_W(v) cpu_to_le16(v)
-#define CT_LE_L(v) cpu_to_le32(v)
-
-
-#define MSDOS_ROOT_INO 1 /* == MINIX_ROOT_INO */
-#define MSDOS_DIR_BITS 5 /* log2(sizeof(struct msdos_dir_entry)) */
-
-/* directory limit */
-#define FAT_MAX_DIR_ENTRIES (65536)
-#define FAT_MAX_DIR_SIZE (FAT_MAX_DIR_ENTRIES << MSDOS_DIR_BITS)
-
-#define ATTR_NONE 0 /* no attribute bits */
-#define ATTR_RO 1 /* read-only */
-#define ATTR_HIDDEN 2 /* hidden */
-#define ATTR_SYS 4 /* system */
-#define ATTR_VOLUME 8 /* volume label */
-#define ATTR_DIR 16 /* directory */
-#define ATTR_ARCH 32 /* archived */
-
-/* attribute bits that are copied "as is" */
-#define ATTR_UNUSED (ATTR_VOLUME | ATTR_ARCH | ATTR_SYS | ATTR_HIDDEN)
-/* bits that are used by the Windows 95/Windows NT extended FAT */
-#define ATTR_EXT (ATTR_RO | ATTR_HIDDEN | ATTR_SYS | ATTR_VOLUME)
-
-#define CASE_LOWER_BASE 8 /* base is lower case */
-#define CASE_LOWER_EXT 16 /* extension is lower case */
-
-#define DELETED_FLAG 0xe5 /* marks file as deleted when in name[0] */
-#define IS_FREE(n) (!*(n) || *(n) == DELETED_FLAG)
-
-#define FAT_LFN_LEN 255 /* maximum long name length */
-#define MSDOS_NAME 11 /* maximum name length */
-#define MSDOS_SLOTS 21 /* max # of slots for short and long names */
-#define MSDOS_DOT ". " /* ".", padded to MSDOS_NAME chars */
-#define MSDOS_DOTDOT ".. " /* "..", padded to MSDOS_NAME chars */
-
-#define FAT_FIRST_ENT(s, x) ((MSDOS_SB(s)->fat_bits == 32 ? 0x0FFFFF00 : \
- MSDOS_SB(s)->fat_bits == 16 ? 0xFF00 : 0xF00) | (x))
-
-/* start of data cluster's entry (number of reserved clusters) */
-#define FAT_START_ENT 2
-
-/* maximum number of clusters */
-#define MAX_FAT12 0xFF4
-#define MAX_FAT16 0xFFF4
-#define MAX_FAT32 0x0FFFFFF6
-#define MAX_FAT(s) (MSDOS_SB(s)->fat_bits == 32 ? MAX_FAT32 : \
- MSDOS_SB(s)->fat_bits == 16 ? MAX_FAT16 : MAX_FAT12)
-
-/* bad cluster mark */
-#define BAD_FAT12 0xFF7
-#define BAD_FAT16 0xFFF7
-#define BAD_FAT32 0x0FFFFFF7
-
-/* standard EOF */
-#define EOF_FAT12 0xFFF
-#define EOF_FAT16 0xFFFF
-#define EOF_FAT32 0x0FFFFFFF
-
-#define FAT_ENT_FREE (0)
-#define FAT_ENT_BAD (BAD_FAT32)
-#define FAT_ENT_EOF (EOF_FAT32)
-
-#define FAT_FSINFO_SIG1 0x41615252
-#define FAT_FSINFO_SIG2 0x61417272
-#define IS_FSINFO(x) (le32_to_cpu((x)->signature1) == FAT_FSINFO_SIG1 \
- && le32_to_cpu((x)->signature2) == FAT_FSINFO_SIG2)
-
-struct __fat_dirent {
- long d_ino;
- __kernel_off_t d_off;
- unsigned short d_reclen;
- char d_name[256]; /* We must not include limits.h! */
-};
-
-/*
- * ioctl commands
- */
-#define VFAT_IOCTL_READDIR_BOTH _IOR('r', 1, struct __fat_dirent[2])
-#define VFAT_IOCTL_READDIR_SHORT _IOR('r', 2, struct __fat_dirent[2])
-/* <linux/videotext.h> has used 0x72 ('r') in collision, so skip a few */
-#define FAT_IOCTL_GET_ATTRIBUTES _IOR('r', 0x10, __u32)
-#define FAT_IOCTL_SET_ATTRIBUTES _IOW('r', 0x11, __u32)
-#define VFAT_IOCTL_GET_VOLUME_ID _IOR('r', 0x12, __u32)
-
-struct fat_boot_sector {
- __u8 ignored[3]; /* Boot strap short or near jump */
- __u8 system_id[8]; /* Name - can be used to special case
- partition manager volumes */
- __u8 sector_size[2]; /* bytes per logical sector */
- __u8 sec_per_clus; /* sectors/cluster */
- __le16 reserved; /* reserved sectors */
- __u8 fats; /* number of FATs */
- __u8 dir_entries[2]; /* root directory entries */
- __u8 sectors[2]; /* number of sectors */
- __u8 media; /* media code */
- __le16 fat_length; /* sectors/FAT */
- __le16 secs_track; /* sectors per track */
- __le16 heads; /* number of heads */
- __le32 hidden; /* hidden sectors (unused) */
- __le32 total_sect; /* number of sectors (if sectors == 0) */
-
- /* The following fields are only used by FAT32 */
- __le32 fat32_length; /* sectors/FAT */
- __le16 flags; /* bit 8: fat mirroring, low 4: active fat */
- __u8 version[2]; /* major, minor filesystem version */
- __le32 root_cluster; /* first cluster in root directory */
- __le16 info_sector; /* filesystem info sector */
- __le16 backup_boot; /* backup boot sector */
- __le16 reserved2[6]; /* Unused */
-};
-
-struct fat_boot_fsinfo {
- __le32 signature1; /* 0x41615252L */
- __le32 reserved1[120]; /* Nothing as far as I can tell */
- __le32 signature2; /* 0x61417272L */
- __le32 free_clusters; /* Free cluster count. -1 if unknown */
- __le32 next_cluster; /* Most recently allocated cluster */
- __le32 reserved2[4];
-};
-
-struct fat_boot_bsx {
- __u8 drive; /* drive number */
- __u8 reserved1;
- __u8 signature; /* extended boot signature */
- __u8 vol_id[4]; /* volume ID */
- __u8 vol_label[11]; /* volume label */
- __u8 type[8]; /* file system type */
-};
-#define FAT16_BSX_OFFSET 36 /* offset of fat_boot_bsx in FAT12 and FAT16 */
-#define FAT32_BSX_OFFSET 64 /* offset of fat_boot_bsx in FAT32 */
-
-struct msdos_dir_entry {
- __u8 name[MSDOS_NAME];/* name and extension */
- __u8 attr; /* attribute bits */
- __u8 lcase; /* Case for base and extension */
- __u8 ctime_cs; /* Creation time, centiseconds (0-199) */
- __le16 ctime; /* Creation time */
- __le16 cdate; /* Creation date */
- __le16 adate; /* Last access date */
- __le16 starthi; /* High 16 bits of cluster in FAT32 */
- __le16 time,date,start;/* time, date and first cluster */
- __le32 size; /* file size (in bytes) */
-};
-
-/* Up to 13 characters of the name */
-struct msdos_dir_slot {
- __u8 id; /* sequence number for slot */
- __u8 name0_4[10]; /* first 5 characters in name */
- __u8 attr; /* attribute byte */
- __u8 reserved; /* always 0 */
- __u8 alias_checksum; /* checksum for 8.3 alias */
- __u8 name5_10[12]; /* 6 more characters in name */
- __le16 start; /* starting cluster number, 0 in long slots */
- __u8 name11_12[4]; /* last 2 characters in name */
-};
-
-#ifdef __KERNEL__
-/* media of boot sector */
-static inline int fat_valid_media(u8 media)
-{
- return 0xf8 <= media || media == 0xf0;
-}
-#endif /* !__KERNEL__ */
-#endif /* !_LINUX_MSDOS_FS_H */
diff --git a/ANDROID_3.4.5/include/linux/msg.h b/ANDROID_3.4.5/include/linux/msg.h
deleted file mode 100644
index 56abf155..00000000
--- a/ANDROID_3.4.5/include/linux/msg.h
+++ /dev/null
@@ -1,112 +0,0 @@
-#ifndef _LINUX_MSG_H
-#define _LINUX_MSG_H
-
-#include <linux/ipc.h>
-
-/* ipcs ctl commands */
-#define MSG_STAT 11
-#define MSG_INFO 12
-
-/* msgrcv options */
-#define MSG_NOERROR 010000 /* no error if message is too big */
-#define MSG_EXCEPT 020000 /* recv any msg except of specified type.*/
-
-/* Obsolete, used only for backwards compatibility and libc5 compiles */
-struct msqid_ds {
- struct ipc_perm msg_perm;
- struct msg *msg_first; /* first message on queue,unused */
- struct msg *msg_last; /* last message in queue,unused */
- __kernel_time_t msg_stime; /* last msgsnd time */
- __kernel_time_t msg_rtime; /* last msgrcv time */
- __kernel_time_t msg_ctime; /* last change time */
- unsigned long msg_lcbytes; /* Reuse junk fields for 32 bit */
- unsigned long msg_lqbytes; /* ditto */
- unsigned short msg_cbytes; /* current number of bytes on queue */
- unsigned short msg_qnum; /* number of messages in queue */
- unsigned short msg_qbytes; /* max number of bytes on queue */
- __kernel_ipc_pid_t msg_lspid; /* pid of last msgsnd */
- __kernel_ipc_pid_t msg_lrpid; /* last receive pid */
-};
-
-/* Include the definition of msqid64_ds */
-#include <asm/msgbuf.h>
-
-/* message buffer for msgsnd and msgrcv calls */
-struct msgbuf {
- long mtype; /* type of message */
- char mtext[1]; /* message text */
-};
-
-/* buffer for msgctl calls IPC_INFO, MSG_INFO */
-struct msginfo {
- int msgpool;
- int msgmap;
- int msgmax;
- int msgmnb;
- int msgmni;
- int msgssz;
- int msgtql;
- unsigned short msgseg;
-};
-
-/*
- * Scaling factor to compute msgmni:
- * the memory dedicated to msg queues (msgmni * msgmnb) should occupy
- * at most 1/MSG_MEM_SCALE of the lowmem (see the formula in ipc/msg.c):
- * up to 8MB : msgmni = 16 (MSGMNI)
- * 4 GB : msgmni = 8K
- * more than 16 GB : msgmni = 32K (IPCMNI)
- */
-#define MSG_MEM_SCALE 32
-
-#define MSGMNI 16 /* <= IPCMNI */ /* max # of msg queue identifiers */
-#define MSGMAX 8192 /* <= INT_MAX */ /* max size of message (bytes) */
-#define MSGMNB 16384 /* <= INT_MAX */ /* default max size of a message queue */
-
-/* unused */
-#define MSGPOOL (MSGMNI * MSGMNB / 1024) /* size in kbytes of message pool */
-#define MSGTQL MSGMNB /* number of system message headers */
-#define MSGMAP MSGMNB /* number of entries in message map */
-#define MSGSSZ 16 /* message segment size */
-#define __MSGSEG ((MSGPOOL * 1024) / MSGSSZ) /* max no. of segments */
-#define MSGSEG (__MSGSEG <= 0xffff ? __MSGSEG : 0xffff)
-
-#ifdef __KERNEL__
-#include <linux/list.h>
-
-/* one msg_msg structure for each message */
-struct msg_msg {
- struct list_head m_list;
- long m_type;
- int m_ts; /* message text size */
- struct msg_msgseg* next;
- void *security;
- /* the actual message follows immediately */
-};
-
-/* one msq_queue structure for each present queue on the system */
-struct msg_queue {
- struct kern_ipc_perm q_perm;
- time_t q_stime; /* last msgsnd time */
- time_t q_rtime; /* last msgrcv time */
- time_t q_ctime; /* last change time */
- unsigned long q_cbytes; /* current number of bytes on queue */
- unsigned long q_qnum; /* number of messages in queue */
- unsigned long q_qbytes; /* max number of bytes on queue */
- pid_t q_lspid; /* pid of last msgsnd */
- pid_t q_lrpid; /* last receive pid */
-
- struct list_head q_messages;
- struct list_head q_receivers;
- struct list_head q_senders;
-};
-
-/* Helper routines for sys_msgsnd and sys_msgrcv */
-extern long do_msgsnd(int msqid, long mtype, void __user *mtext,
- size_t msgsz, int msgflg);
-extern long do_msgrcv(int msqid, long *pmtype, void __user *mtext,
- size_t msgsz, long msgtyp, int msgflg);
-
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_MSG_H */
diff --git a/ANDROID_3.4.5/include/linux/msi.h b/ANDROID_3.4.5/include/linux/msi.h
deleted file mode 100644
index ce93a341..00000000
--- a/ANDROID_3.4.5/include/linux/msi.h
+++ /dev/null
@@ -1,62 +0,0 @@
-#ifndef LINUX_MSI_H
-#define LINUX_MSI_H
-
-#include <linux/kobject.h>
-#include <linux/list.h>
-
-struct msi_msg {
- u32 address_lo; /* low 32 bits of msi message address */
- u32 address_hi; /* high 32 bits of msi message address */
- u32 data; /* 16 bits of msi message data */
-};
-
-/* Helper functions */
-struct irq_data;
-struct msi_desc;
-extern void mask_msi_irq(struct irq_data *data);
-extern void unmask_msi_irq(struct irq_data *data);
-extern void __read_msi_msg(struct msi_desc *entry, struct msi_msg *msg);
-extern void __get_cached_msi_msg(struct msi_desc *entry, struct msi_msg *msg);
-extern void __write_msi_msg(struct msi_desc *entry, struct msi_msg *msg);
-extern void read_msi_msg(unsigned int irq, struct msi_msg *msg);
-extern void get_cached_msi_msg(unsigned int irq, struct msi_msg *msg);
-extern void write_msi_msg(unsigned int irq, struct msi_msg *msg);
-
-struct msi_desc {
- struct {
- __u8 is_msix : 1;
- __u8 multiple: 3; /* log2 number of messages */
- __u8 maskbit : 1; /* mask-pending bit supported ? */
- __u8 is_64 : 1; /* Address size: 0=32bit 1=64bit */
- __u8 pos; /* Location of the msi capability */
- __u16 entry_nr; /* specific enabled entry */
- unsigned default_irq; /* default pre-assigned irq */
- } msi_attrib;
-
- u32 masked; /* mask bits */
- unsigned int irq;
- struct list_head list;
-
- union {
- void __iomem *mask_base;
- u8 mask_pos;
- };
- struct pci_dev *dev;
-
- /* Last set MSI message */
- struct msi_msg msg;
-
- struct kobject kobj;
-};
-
-/*
- * The arch hook for setup up msi irqs
- */
-int arch_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc);
-void arch_teardown_msi_irq(unsigned int irq);
-extern int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type);
-extern void arch_teardown_msi_irqs(struct pci_dev *dev);
-extern int arch_msi_check_device(struct pci_dev* dev, int nvec, int type);
-
-
-#endif /* LINUX_MSI_H */
diff --git a/ANDROID_3.4.5/include/linux/msm_mdp.h b/ANDROID_3.4.5/include/linux/msm_mdp.h
deleted file mode 100644
index fe722c1f..00000000
--- a/ANDROID_3.4.5/include/linux/msm_mdp.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/* include/linux/msm_mdp.h
- *
- * Copyright (C) 2007 Google Incorporated
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
-#ifndef _MSM_MDP_H_
-#define _MSM_MDP_H_
-
-#include <linux/types.h>
-
-#define MSMFB_IOCTL_MAGIC 'm'
-#define MSMFB_GRP_DISP _IOW(MSMFB_IOCTL_MAGIC, 1, unsigned int)
-#define MSMFB_BLIT _IOW(MSMFB_IOCTL_MAGIC, 2, unsigned int)
-
-enum {
- MDP_RGB_565, /* RGB 565 planar */
- MDP_XRGB_8888, /* RGB 888 padded */
- MDP_Y_CBCR_H2V2, /* Y and CbCr, pseudo planar w/ Cb is in MSB */
- MDP_ARGB_8888, /* ARGB 888 */
- MDP_RGB_888, /* RGB 888 planar */
- MDP_Y_CRCB_H2V2, /* Y and CrCb, pseudo planar w/ Cr is in MSB */
- MDP_YCRYCB_H2V1, /* YCrYCb interleave */
- MDP_Y_CRCB_H2V1, /* Y and CrCb, pseduo planar w/ Cr is in MSB */
- MDP_Y_CBCR_H2V1, /* Y and CrCb, pseduo planar w/ Cr is in MSB */
- MDP_RGBA_8888, /* ARGB 888 */
- MDP_BGRA_8888, /* ABGR 888 */
- MDP_RGBX_8888, /* RGBX 888 */
- MDP_IMGTYPE_LIMIT /* Non valid image type after this enum */
-};
-
-enum {
- PMEM_IMG,
- FB_IMG,
-};
-
-/* flag values */
-#define MDP_ROT_NOP 0
-#define MDP_FLIP_LR 0x1
-#define MDP_FLIP_UD 0x2
-#define MDP_ROT_90 0x4
-#define MDP_ROT_180 (MDP_FLIP_UD|MDP_FLIP_LR)
-#define MDP_ROT_270 (MDP_ROT_90|MDP_FLIP_UD|MDP_FLIP_LR)
-#define MDP_DITHER 0x8
-#define MDP_BLUR 0x10
-
-#define MDP_TRANSP_NOP 0xffffffff
-#define MDP_ALPHA_NOP 0xff
-
-struct mdp_rect {
- u32 x, y, w, h;
-};
-
-struct mdp_img {
- u32 width, height, format, offset;
- int memory_id; /* the file descriptor */
-};
-
-struct mdp_blit_req {
- struct mdp_img src;
- struct mdp_img dst;
- struct mdp_rect src_rect;
- struct mdp_rect dst_rect;
- u32 alpha, transp_mask, flags;
-};
-
-struct mdp_blit_req_list {
- u32 count;
- struct mdp_blit_req req[];
-};
-
-#endif /* _MSM_MDP_H_ */
diff --git a/ANDROID_3.4.5/include/linux/mt5931_6622.h b/ANDROID_3.4.5/include/linux/mt5931_6622.h
deleted file mode 100755
index e7715119..00000000
--- a/ANDROID_3.4.5/include/linux/mt5931_6622.h
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-#ifndef __MT5931__H__
-#define __MT5931__H__
-
-struct mt5931_sdio_eint_platform_data {
- /* used for sdio eint. */
- int sdio_eint;
-};
-
-struct mtk_mt5931_platform_data {
- /* GPIO pin config */
- int pmu;
- int rst;
-};
-
-struct mtk_mt6622_platform_data {
- /* GPIO pin config */
- int pmu;
- int rst;
-
- /* used for bt eint. */
- int bt_eint;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mtd/bbm.h b/ANDROID_3.4.5/include/linux/mtd/bbm.h
deleted file mode 100644
index 5bc50e08..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/bbm.h
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * linux/include/linux/mtd/bbm.h
- *
- * NAND family Bad Block Management (BBM) header file
- * - Bad Block Table (BBT) implementation
- *
- * Copyright © 2005 Samsung Electronics
- * Kyungmin Park <kyungmin.park@samsung.com>
- *
- * Copyright © 2000-2005
- * Thomas Gleixner <tglx@linuxtronix.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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-#ifndef __LINUX_MTD_BBM_H
-#define __LINUX_MTD_BBM_H
-
-/* The maximum number of NAND chips in an array */
-#define NAND_MAX_CHIPS 8
-
-/**
- * struct nand_bbt_descr - bad block table descriptor
- * @options: options for this descriptor
- * @pages: the page(s) where we find the bbt, used with option BBT_ABSPAGE
- * when bbt is searched, then we store the found bbts pages here.
- * Its an array and supports up to 8 chips now
- * @offs: offset of the pattern in the oob area of the page
- * @veroffs: offset of the bbt version counter in the oob are of the page
- * @version: version read from the bbt page during scan
- * @len: length of the pattern, if 0 no pattern check is performed
- * @maxblocks: maximum number of blocks to search for a bbt. This number of
- * blocks is reserved at the end of the device where the tables are
- * written.
- * @reserved_block_code: if non-0, this pattern denotes a reserved (rather than
- * bad) block in the stored bbt
- * @pattern: pattern to identify bad block table or factory marked good /
- * bad blocks, can be NULL, if len = 0
- *
- * Descriptor for the bad block table marker and the descriptor for the
- * pattern which identifies good and bad blocks. The assumption is made
- * that the pattern and the version count are always located in the oob area
- * of the first block.
- */
-struct nand_bbt_descr {
- int options;
- int pages[NAND_MAX_CHIPS];
- int offs;
- int veroffs;
- uint8_t version[NAND_MAX_CHIPS];
- int len;
- int maxblocks;
- int reserved_block_code;
- uint8_t *pattern;
- int page_offset[2]; /* used to record bad block signature in which pages.*/
-};
-
-/* Options for the bad block table descriptors */
-
-/* The number of bits used per block in the bbt on the device */
-#define NAND_BBT_NRBITS_MSK 0x0000000F
-#define NAND_BBT_1BIT 0x00000001
-#define NAND_BBT_2BIT 0x00000002
-#define NAND_BBT_4BIT 0x00000004
-#define NAND_BBT_8BIT 0x00000008
-/* The bad block table is in the last good block of the device */
-#define NAND_BBT_LASTBLOCK 0x00000010
-/* The bbt is at the given page, else we must scan for the bbt */
-#define NAND_BBT_ABSPAGE 0x00000020
-/* The bbt is at the given page, else we must scan for the bbt */
-#define NAND_BBT_SEARCH 0x00000040
-/* bbt is stored per chip on multichip devices */
-#define NAND_BBT_PERCHIP 0x00000080
-/* bbt has a version counter at offset veroffs */
-#define NAND_BBT_VERSION 0x00000100
-/* Create a bbt if none exists */
-#define NAND_BBT_CREATE 0x00000200
-/*
- * Create an empty BBT with no vendor information. Vendor's information may be
- * unavailable, for example, if the NAND controller has a different data and OOB
- * layout or if this information is already purged. Must be used in conjunction
- * with NAND_BBT_CREATE.
- */
-#define NAND_BBT_CREATE_EMPTY 0x00000400
-/* Search good / bad pattern through all pages of a block */
-#define NAND_BBT_SCANALLPAGES 0x00000800
-/* Scan block empty during good / bad block scan */
-#define NAND_BBT_SCANEMPTY 0x00001000
-/* Write bbt if neccecary */
-#define NAND_BBT_WRITE 0x00002000
-/* Read and write back block contents when writing bbt */
-#define NAND_BBT_SAVECONTENT 0x00004000
-/* Search good / bad pattern on the first and the second page */
-#define NAND_BBT_SCAN2NDPAGE 0x00008000
-/* Search good / bad pattern on the last page of the eraseblock */
-#define NAND_BBT_SCANLASTPAGE 0x00010000
-/*
- * Use a flash based bad block table. By default, OOB identifier is saved in
- * OOB area. This option is passed to the default bad block table function.
- */
-#define NAND_BBT_USE_FLASH 0x00020000
-/* Do not store flash based bad block table in OOB area; store it in-band */
-#define NAND_BBT_NO_OOB 0x00040000
-/*
- * Do not write new bad block markers to OOB; useful, e.g., when ECC covers
- * entire spare area. Must be used with NAND_BBT_USE_FLASH.
- */
-#define NAND_BBT_NO_OOB_BBM 0x00080000
-
-/*
- * Flag set by nand_create_default_bbt_descr(), marking that the nand_bbt_descr
- * was allocated dynamicaly and must be freed in nand_release(). Has no meaning
- * in nand_chip.bbt_options.
- */
-#define NAND_BBT_DYNAMICSTRUCT 0x80000000
-
-/* The maximum number of blocks to scan for a bbt */
-#define NAND_BBT_SCAN_MAXBLOCKS 4
-
-/*
- * Constants for oob configuration
- */
-#define NAND_SMALL_BADBLOCK_POS 5
-#define NAND_LARGE_BADBLOCK_POS 0
-#define ONENAND_BADBLOCK_POS 0
-
-/*
- * Bad block scanning errors
- */
-#define ONENAND_BBT_READ_ERROR 1
-#define ONENAND_BBT_READ_ECC_ERROR 2
-#define ONENAND_BBT_READ_FATAL_ERROR 4
-
-/**
- * struct bbm_info - [GENERIC] Bad Block Table data structure
- * @bbt_erase_shift: [INTERN] number of address bits in a bbt entry
- * @badblockpos: [INTERN] position of the bad block marker in the oob area
- * @options: options for this descriptor
- * @bbt: [INTERN] bad block table pointer
- * @isbad_bbt: function to determine if a block is bad
- * @badblock_pattern: [REPLACEABLE] bad block scan pattern used for
- * initial bad block scan
- * @priv: [OPTIONAL] pointer to private bbm date
- */
-struct bbm_info {
- int bbt_erase_shift;
- int badblockpos;
- int options;
-
- uint8_t *bbt;
-
- int (*isbad_bbt)(struct mtd_info *mtd, loff_t ofs, int allowbbt);
-
- /* TODO Add more NAND specific fileds */
- struct nand_bbt_descr *badblock_pattern;
-
- void *priv;
-};
-
-/* OneNAND BBT interface */
-extern int onenand_scan_bbt(struct mtd_info *mtd, struct nand_bbt_descr *bd);
-extern int onenand_default_bbt(struct mtd_info *mtd);
-
-#endif /* __LINUX_MTD_BBM_H */
diff --git a/ANDROID_3.4.5/include/linux/mtd/blktrans.h b/ANDROID_3.4.5/include/linux/mtd/blktrans.h
deleted file mode 100644
index ed270bd2..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/blktrans.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright © 2003-2010 David Woodhouse <dwmw2@infradead.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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef __MTD_TRANS_H__
-#define __MTD_TRANS_H__
-
-#include <linux/mutex.h>
-#include <linux/kref.h>
-#include <linux/sysfs.h>
-
-struct hd_geometry;
-struct mtd_info;
-struct mtd_blktrans_ops;
-struct file;
-struct inode;
-
-struct mtd_blktrans_dev {
- struct mtd_blktrans_ops *tr;
- struct list_head list;
- struct mtd_info *mtd;
- struct mutex lock;
- int devnum;
- bool bg_stop;
- unsigned long size;
- int readonly;
- int open;
- struct kref ref;
- struct gendisk *disk;
- struct attribute_group *disk_attributes;
- struct task_struct *thread;
- struct request_queue *rq;
- spinlock_t queue_lock;
- void *priv;
- fmode_t file_mode;
-};
-
-struct mtd_blktrans_ops {
- char *name;
- int major;
- int part_bits;
- int blksize;
- int blkshift;
-
- /* Access functions */
- int (*readsect)(struct mtd_blktrans_dev *dev,
- unsigned long block, char *buffer);
- int (*writesect)(struct mtd_blktrans_dev *dev,
- unsigned long block, char *buffer);
- int (*discard)(struct mtd_blktrans_dev *dev,
- unsigned long block, unsigned nr_blocks);
- void (*background)(struct mtd_blktrans_dev *dev);
-
- /* Block layer ioctls */
- int (*getgeo)(struct mtd_blktrans_dev *dev, struct hd_geometry *geo);
- int (*flush)(struct mtd_blktrans_dev *dev);
-
- /* Called with mtd_table_mutex held; no race with add/remove */
- int (*open)(struct mtd_blktrans_dev *dev);
- int (*release)(struct mtd_blktrans_dev *dev);
-
- /* Called on {de,}registration and on subsequent addition/removal
- of devices, with mtd_table_mutex held. */
- void (*add_mtd)(struct mtd_blktrans_ops *tr, struct mtd_info *mtd);
- void (*remove_dev)(struct mtd_blktrans_dev *dev);
-
- struct list_head devs;
- struct list_head list;
- struct module *owner;
-};
-
-extern int register_mtd_blktrans(struct mtd_blktrans_ops *tr);
-extern int deregister_mtd_blktrans(struct mtd_blktrans_ops *tr);
-extern int add_mtd_blktrans_dev(struct mtd_blktrans_dev *dev);
-extern int del_mtd_blktrans_dev(struct mtd_blktrans_dev *dev);
-extern int mtd_blktrans_cease_background(struct mtd_blktrans_dev *dev);
-
-
-#endif /* __MTD_TRANS_H__ */
diff --git a/ANDROID_3.4.5/include/linux/mtd/cfi.h b/ANDROID_3.4.5/include/linux/mtd/cfi.h
deleted file mode 100644
index 37ef6b19..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/cfi.h
+++ /dev/null
@@ -1,564 +0,0 @@
-/*
- * Copyright © 2000-2010 David Woodhouse <dwmw2@infradead.org> et al.
- *
- * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef __MTD_CFI_H__
-#define __MTD_CFI_H__
-
-#include <linux/delay.h>
-#include <linux/types.h>
-#include <linux/bug.h>
-#include <linux/interrupt.h>
-#include <linux/mtd/flashchip.h>
-#include <linux/mtd/map.h>
-#include <linux/mtd/cfi_endian.h>
-#include <linux/mtd/xip.h>
-
-#ifdef CONFIG_MTD_CFI_I1
-#define cfi_interleave(cfi) 1
-#define cfi_interleave_is_1(cfi) (cfi_interleave(cfi) == 1)
-#else
-#define cfi_interleave_is_1(cfi) (0)
-#endif
-
-#ifdef CONFIG_MTD_CFI_I2
-# ifdef cfi_interleave
-# undef cfi_interleave
-# define cfi_interleave(cfi) ((cfi)->interleave)
-# else
-# define cfi_interleave(cfi) 2
-# endif
-#define cfi_interleave_is_2(cfi) (cfi_interleave(cfi) == 2)
-#else
-#define cfi_interleave_is_2(cfi) (0)
-#endif
-
-#ifdef CONFIG_MTD_CFI_I4
-# ifdef cfi_interleave
-# undef cfi_interleave
-# define cfi_interleave(cfi) ((cfi)->interleave)
-# else
-# define cfi_interleave(cfi) 4
-# endif
-#define cfi_interleave_is_4(cfi) (cfi_interleave(cfi) == 4)
-#else
-#define cfi_interleave_is_4(cfi) (0)
-#endif
-
-#ifdef CONFIG_MTD_CFI_I8
-# ifdef cfi_interleave
-# undef cfi_interleave
-# define cfi_interleave(cfi) ((cfi)->interleave)
-# else
-# define cfi_interleave(cfi) 8
-# endif
-#define cfi_interleave_is_8(cfi) (cfi_interleave(cfi) == 8)
-#else
-#define cfi_interleave_is_8(cfi) (0)
-#endif
-
-#ifndef cfi_interleave
-#warning No CONFIG_MTD_CFI_Ix selected. No NOR chip support can work.
-static inline int cfi_interleave(void *cfi)
-{
- BUG();
- return 0;
-}
-#endif
-
-static inline int cfi_interleave_supported(int i)
-{
- switch (i) {
-#ifdef CONFIG_MTD_CFI_I1
- case 1:
-#endif
-#ifdef CONFIG_MTD_CFI_I2
- case 2:
-#endif
-#ifdef CONFIG_MTD_CFI_I4
- case 4:
-#endif
-#ifdef CONFIG_MTD_CFI_I8
- case 8:
-#endif
- return 1;
-
- default:
- return 0;
- }
-}
-
-
-/* NB: these values must represents the number of bytes needed to meet the
- * device type (x8, x16, x32). Eg. a 32 bit device is 4 x 8 bytes.
- * These numbers are used in calculations.
- */
-#define CFI_DEVICETYPE_X8 (8 / 8)
-#define CFI_DEVICETYPE_X16 (16 / 8)
-#define CFI_DEVICETYPE_X32 (32 / 8)
-#define CFI_DEVICETYPE_X64 (64 / 8)
-
-
-/* Device Interface Code Assignments from the "Common Flash Memory Interface
- * Publication 100" dated December 1, 2001.
- */
-#define CFI_INTERFACE_X8_ASYNC 0x0000
-#define CFI_INTERFACE_X16_ASYNC 0x0001
-#define CFI_INTERFACE_X8_BY_X16_ASYNC 0x0002
-#define CFI_INTERFACE_X32_ASYNC 0x0003
-#define CFI_INTERFACE_X16_BY_X32_ASYNC 0x0005
-#define CFI_INTERFACE_NOT_ALLOWED 0xffff
-
-
-/* NB: We keep these structures in memory in HOST byteorder, except
- * where individually noted.
- */
-
-/* Basic Query Structure */
-struct cfi_ident {
- uint8_t qry[3];
- uint16_t P_ID;
- uint16_t P_ADR;
- uint16_t A_ID;
- uint16_t A_ADR;
- uint8_t VccMin;
- uint8_t VccMax;
- uint8_t VppMin;
- uint8_t VppMax;
- uint8_t WordWriteTimeoutTyp;
- uint8_t BufWriteTimeoutTyp;
- uint8_t BlockEraseTimeoutTyp;
- uint8_t ChipEraseTimeoutTyp;
- uint8_t WordWriteTimeoutMax;
- uint8_t BufWriteTimeoutMax;
- uint8_t BlockEraseTimeoutMax;
- uint8_t ChipEraseTimeoutMax;
- uint8_t DevSize;
- uint16_t InterfaceDesc;
- uint16_t MaxBufWriteSize;
- uint8_t NumEraseRegions;
- uint32_t EraseRegionInfo[0]; /* Not host ordered */
-} __attribute__((packed));
-
-/* Extended Query Structure for both PRI and ALT */
-
-struct cfi_extquery {
- uint8_t pri[3];
- uint8_t MajorVersion;
- uint8_t MinorVersion;
-} __attribute__((packed));
-
-/* Vendor-Specific PRI for Intel/Sharp Extended Command Set (0x0001) */
-
-struct cfi_pri_intelext {
- uint8_t pri[3];
- uint8_t MajorVersion;
- uint8_t MinorVersion;
- uint32_t FeatureSupport; /* if bit 31 is set then an additional uint32_t feature
- block follows - FIXME - not currently supported */
- uint8_t SuspendCmdSupport;
- uint16_t BlkStatusRegMask;
- uint8_t VccOptimal;
- uint8_t VppOptimal;
- uint8_t NumProtectionFields;
- uint16_t ProtRegAddr;
- uint8_t FactProtRegSize;
- uint8_t UserProtRegSize;
- uint8_t extra[0];
-} __attribute__((packed));
-
-struct cfi_intelext_otpinfo {
- uint32_t ProtRegAddr;
- uint16_t FactGroups;
- uint8_t FactProtRegSize;
- uint16_t UserGroups;
- uint8_t UserProtRegSize;
-} __attribute__((packed));
-
-struct cfi_intelext_blockinfo {
- uint16_t NumIdentBlocks;
- uint16_t BlockSize;
- uint16_t MinBlockEraseCycles;
- uint8_t BitsPerCell;
- uint8_t BlockCap;
-} __attribute__((packed));
-
-struct cfi_intelext_regioninfo {
- uint16_t NumIdentPartitions;
- uint8_t NumOpAllowed;
- uint8_t NumOpAllowedSimProgMode;
- uint8_t NumOpAllowedSimEraMode;
- uint8_t NumBlockTypes;
- struct cfi_intelext_blockinfo BlockTypes[1];
-} __attribute__((packed));
-
-struct cfi_intelext_programming_regioninfo {
- uint8_t ProgRegShift;
- uint8_t Reserved1;
- uint8_t ControlValid;
- uint8_t Reserved2;
- uint8_t ControlInvalid;
- uint8_t Reserved3;
-} __attribute__((packed));
-
-/* Vendor-Specific PRI for AMD/Fujitsu Extended Command Set (0x0002) */
-
-struct cfi_pri_amdstd {
- uint8_t pri[3];
- uint8_t MajorVersion;
- uint8_t MinorVersion;
- uint8_t SiliconRevision; /* bits 1-0: Address Sensitive Unlock */
- uint8_t EraseSuspend;
- uint8_t BlkProt;
- uint8_t TmpBlkUnprotect;
- uint8_t BlkProtUnprot;
- uint8_t SimultaneousOps;
- uint8_t BurstMode;
- uint8_t PageMode;
- uint8_t VppMin;
- uint8_t VppMax;
- uint8_t TopBottom;
-} __attribute__((packed));
-
-/* Vendor-Specific PRI for Atmel chips (command set 0x0002) */
-
-struct cfi_pri_atmel {
- uint8_t pri[3];
- uint8_t MajorVersion;
- uint8_t MinorVersion;
- uint8_t Features;
- uint8_t BottomBoot;
- uint8_t BurstMode;
- uint8_t PageMode;
-} __attribute__((packed));
-
-struct cfi_pri_query {
- uint8_t NumFields;
- uint32_t ProtField[1]; /* Not host ordered */
-} __attribute__((packed));
-
-struct cfi_bri_query {
- uint8_t PageModeReadCap;
- uint8_t NumFields;
- uint32_t ConfField[1]; /* Not host ordered */
-} __attribute__((packed));
-
-#define P_ID_NONE 0x0000
-#define P_ID_INTEL_EXT 0x0001
-#define P_ID_AMD_STD 0x0002
-#define P_ID_INTEL_STD 0x0003
-#define P_ID_AMD_EXT 0x0004
-#define P_ID_WINBOND 0x0006
-#define P_ID_ST_ADV 0x0020
-#define P_ID_MITSUBISHI_STD 0x0100
-#define P_ID_MITSUBISHI_EXT 0x0101
-#define P_ID_SST_PAGE 0x0102
-#define P_ID_SST_OLD 0x0701
-#define P_ID_INTEL_PERFORMANCE 0x0200
-#define P_ID_INTEL_DATA 0x0210
-#define P_ID_RESERVED 0xffff
-
-
-#define CFI_MODE_CFI 1
-#define CFI_MODE_JEDEC 0
-
-struct cfi_private {
- uint16_t cmdset;
- void *cmdset_priv;
- int interleave;
- int device_type;
- int cfi_mode; /* Are we a JEDEC device pretending to be CFI? */
- int addr_unlock1;
- int addr_unlock2;
- struct mtd_info *(*cmdset_setup)(struct map_info *);
- struct cfi_ident *cfiq; /* For now only one. We insist that all devs
- must be of the same type. */
- int mfr, id;
- int numchips;
- map_word sector_erase_cmd;
- unsigned long chipshift; /* Because they're of the same type */
- const char *im_name; /* inter_module name for cmdset_setup */
- struct flchip chips[0]; /* per-chip data structure for each chip */
-};
-
-/*
- * Returns the command address according to the given geometry.
- */
-static inline uint32_t cfi_build_cmd_addr(uint32_t cmd_ofs,
- struct map_info *map, struct cfi_private *cfi)
-{
- unsigned bankwidth = map_bankwidth(map);
- unsigned interleave = cfi_interleave(cfi);
- unsigned type = cfi->device_type;
- uint32_t addr;
-
- addr = (cmd_ofs * type) * interleave;
-
- /* Modify the unlock address if we are in compatibility mode.
- * For 16bit devices on 8 bit busses
- * and 32bit devices on 16 bit busses
- * set the low bit of the alternating bit sequence of the address.
- */
- if (((type * interleave) > bankwidth) && ((cmd_ofs & 0xff) == 0xaa))
- addr |= (type >> 1)*interleave;
-
- return addr;
-}
-
-/*
- * Transforms the CFI command for the given geometry (bus width & interleave).
- * It looks too long to be inline, but in the common case it should almost all
- * get optimised away.
- */
-static inline map_word cfi_build_cmd(u_long cmd, struct map_info *map, struct cfi_private *cfi)
-{
- map_word val = { {0} };
- int wordwidth, words_per_bus, chip_mode, chips_per_word;
- unsigned long onecmd;
- int i;
-
- /* We do it this way to give the compiler a fighting chance
- of optimising away all the crap for 'bankwidth' larger than
- an unsigned long, in the common case where that support is
- disabled */
- if (map_bankwidth_is_large(map)) {
- wordwidth = sizeof(unsigned long);
- words_per_bus = (map_bankwidth(map)) / wordwidth; // i.e. normally 1
- } else {
- wordwidth = map_bankwidth(map);
- words_per_bus = 1;
- }
-
- chip_mode = map_bankwidth(map) / cfi_interleave(cfi);
- chips_per_word = wordwidth * cfi_interleave(cfi) / map_bankwidth(map);
-
- /* First, determine what the bit-pattern should be for a single
- device, according to chip mode and endianness... */
- switch (chip_mode) {
- default: BUG();
- case 1:
- onecmd = cmd;
- break;
- case 2:
- onecmd = cpu_to_cfi16(map, cmd);
- break;
- case 4:
- onecmd = cpu_to_cfi32(map, cmd);
- break;
- }
-
- /* Now replicate it across the size of an unsigned long, or
- just to the bus width as appropriate */
- switch (chips_per_word) {
- default: BUG();
-#if BITS_PER_LONG >= 64
- case 8:
- onecmd |= (onecmd << (chip_mode * 32));
-#endif
- case 4:
- onecmd |= (onecmd << (chip_mode * 16));
- case 2:
- onecmd |= (onecmd << (chip_mode * 8));
- case 1:
- ;
- }
-
- /* And finally, for the multi-word case, replicate it
- in all words in the structure */
- for (i=0; i < words_per_bus; i++) {
- val.x[i] = onecmd;
- }
-
- return val;
-}
-#define CMD(x) cfi_build_cmd((x), map, cfi)
-
-
-static inline unsigned long cfi_merge_status(map_word val, struct map_info *map,
- struct cfi_private *cfi)
-{
- int wordwidth, words_per_bus, chip_mode, chips_per_word;
- unsigned long onestat, res = 0;
- int i;
-
- /* We do it this way to give the compiler a fighting chance
- of optimising away all the crap for 'bankwidth' larger than
- an unsigned long, in the common case where that support is
- disabled */
- if (map_bankwidth_is_large(map)) {
- wordwidth = sizeof(unsigned long);
- words_per_bus = (map_bankwidth(map)) / wordwidth; // i.e. normally 1
- } else {
- wordwidth = map_bankwidth(map);
- words_per_bus = 1;
- }
-
- chip_mode = map_bankwidth(map) / cfi_interleave(cfi);
- chips_per_word = wordwidth * cfi_interleave(cfi) / map_bankwidth(map);
-
- onestat = val.x[0];
- /* Or all status words together */
- for (i=1; i < words_per_bus; i++) {
- onestat |= val.x[i];
- }
-
- res = onestat;
- switch(chips_per_word) {
- default: BUG();
-#if BITS_PER_LONG >= 64
- case 8:
- res |= (onestat >> (chip_mode * 32));
-#endif
- case 4:
- res |= (onestat >> (chip_mode * 16));
- case 2:
- res |= (onestat >> (chip_mode * 8));
- case 1:
- ;
- }
-
- /* Last, determine what the bit-pattern should be for a single
- device, according to chip mode and endianness... */
- switch (chip_mode) {
- case 1:
- break;
- case 2:
- res = cfi16_to_cpu(map, res);
- break;
- case 4:
- res = cfi32_to_cpu(map, res);
- break;
- default: BUG();
- }
- return res;
-}
-
-#define MERGESTATUS(x) cfi_merge_status((x), map, cfi)
-
-
-/*
- * Sends a CFI command to a bank of flash for the given geometry.
- *
- * Returns the offset in flash where the command was written.
- * If prev_val is non-null, it will be set to the value at the command address,
- * before the command was written.
- */
-static inline uint32_t cfi_send_gen_cmd(u_char cmd, uint32_t cmd_addr, uint32_t base,
- struct map_info *map, struct cfi_private *cfi,
- int type, map_word *prev_val)
-{
- map_word val;
- uint32_t addr = base + cfi_build_cmd_addr(cmd_addr, map, cfi);
- val = cfi_build_cmd(cmd, map, cfi);
-
- if (prev_val)
- *prev_val = map_read(map, addr);
-
- map_write(map, val, addr);
-
- return addr - base;
-}
-
-static inline uint8_t cfi_read_query(struct map_info *map, uint32_t addr)
-{
- map_word val = map_read(map, addr);
-
- if (map_bankwidth_is_1(map)) {
- return val.x[0];
- } else if (map_bankwidth_is_2(map)) {
- return cfi16_to_cpu(map, val.x[0]);
- } else {
- /* No point in a 64-bit byteswap since that would just be
- swapping the responses from different chips, and we are
- only interested in one chip (a representative sample) */
- return cfi32_to_cpu(map, val.x[0]);
- }
-}
-
-static inline uint16_t cfi_read_query16(struct map_info *map, uint32_t addr)
-{
- map_word val = map_read(map, addr);
-
- if (map_bankwidth_is_1(map)) {
- return val.x[0] & 0xff;
- } else if (map_bankwidth_is_2(map)) {
- return cfi16_to_cpu(map, val.x[0]);
- } else {
- /* No point in a 64-bit byteswap since that would just be
- swapping the responses from different chips, and we are
- only interested in one chip (a representative sample) */
- return cfi32_to_cpu(map, val.x[0]);
- }
-}
-
-static inline void cfi_udelay(int us)
-{
- if (us >= 1000) {
- msleep((us+999)/1000);
- } else {
- udelay(us);
- cond_resched();
- }
-}
-
-int __xipram cfi_qry_present(struct map_info *map, __u32 base,
- struct cfi_private *cfi);
-int __xipram cfi_qry_mode_on(uint32_t base, struct map_info *map,
- struct cfi_private *cfi);
-void __xipram cfi_qry_mode_off(uint32_t base, struct map_info *map,
- struct cfi_private *cfi);
-
-struct cfi_extquery *cfi_read_pri(struct map_info *map, uint16_t adr, uint16_t size,
- const char* name);
-struct cfi_fixup {
- uint16_t mfr;
- uint16_t id;
- void (*fixup)(struct mtd_info *mtd);
-};
-
-#define CFI_MFR_ANY 0xFFFF
-#define CFI_ID_ANY 0xFFFF
-#define CFI_MFR_CONTINUATION 0x007F
-
-#define CFI_MFR_AMD 0x0001
-#define CFI_MFR_AMIC 0x0037
-#define CFI_MFR_ATMEL 0x001F
-#define CFI_MFR_EON 0x001C
-#define CFI_MFR_FUJITSU 0x0004
-#define CFI_MFR_HYUNDAI 0x00AD
-#define CFI_MFR_INTEL 0x0089
-#define CFI_MFR_MACRONIX 0x00C2
-#define CFI_MFR_NEC 0x0010
-#define CFI_MFR_PMC 0x009D
-#define CFI_MFR_SAMSUNG 0x00EC
-#define CFI_MFR_SHARP 0x00B0
-#define CFI_MFR_SST 0x00BF
-#define CFI_MFR_ST 0x0020 /* STMicroelectronics */
-#define CFI_MFR_TOSHIBA 0x0098
-#define CFI_MFR_WINBOND 0x00DA
-
-void cfi_fixup(struct mtd_info *mtd, struct cfi_fixup* fixups);
-
-typedef int (*varsize_frob_t)(struct map_info *map, struct flchip *chip,
- unsigned long adr, int len, void *thunk);
-
-int cfi_varsize_frob(struct mtd_info *mtd, varsize_frob_t frob,
- loff_t ofs, size_t len, void *thunk);
-
-
-#endif /* __MTD_CFI_H__ */
diff --git a/ANDROID_3.4.5/include/linux/mtd/cfi_endian.h b/ANDROID_3.4.5/include/linux/mtd/cfi_endian.h
deleted file mode 100644
index b97a6250..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/cfi_endian.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright © 2001-2010 David Woodhouse <dwmw2@infradead.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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#include <asm/byteorder.h>
-
-#define CFI_HOST_ENDIAN 1
-#define CFI_LITTLE_ENDIAN 2
-#define CFI_BIG_ENDIAN 3
-
-#if !defined(CONFIG_MTD_CFI_ADV_OPTIONS) || defined(CONFIG_MTD_CFI_NOSWAP)
-#define CFI_DEFAULT_ENDIAN CFI_HOST_ENDIAN
-#elif defined(CONFIG_MTD_CFI_LE_BYTE_SWAP)
-#define CFI_DEFAULT_ENDIAN CFI_LITTLE_ENDIAN
-#elif defined(CONFIG_MTD_CFI_BE_BYTE_SWAP)
-#define CFI_DEFAULT_ENDIAN CFI_BIG_ENDIAN
-#else
-#error No CFI endianness defined
-#endif
-
-#define cfi_default(s) ((s)?:CFI_DEFAULT_ENDIAN)
-#define cfi_be(s) (cfi_default(s) == CFI_BIG_ENDIAN)
-#define cfi_le(s) (cfi_default(s) == CFI_LITTLE_ENDIAN)
-#define cfi_host(s) (cfi_default(s) == CFI_HOST_ENDIAN)
-
-#define cpu_to_cfi8(map, x) (x)
-#define cfi8_to_cpu(map, x) (x)
-#define cpu_to_cfi16(map, x) _cpu_to_cfi(16, (map)->swap, (x))
-#define cpu_to_cfi32(map, x) _cpu_to_cfi(32, (map)->swap, (x))
-#define cpu_to_cfi64(map, x) _cpu_to_cfi(64, (map)->swap, (x))
-#define cfi16_to_cpu(map, x) _cfi_to_cpu(16, (map)->swap, (x))
-#define cfi32_to_cpu(map, x) _cfi_to_cpu(32, (map)->swap, (x))
-#define cfi64_to_cpu(map, x) _cfi_to_cpu(64, (map)->swap, (x))
-
-#define _cpu_to_cfi(w, s, x) (cfi_host(s)?(x):_swap_to_cfi(w, s, x))
-#define _cfi_to_cpu(w, s, x) (cfi_host(s)?(x):_swap_to_cpu(w, s, x))
-#define _swap_to_cfi(w, s, x) (cfi_be(s)?cpu_to_be##w(x):cpu_to_le##w(x))
-#define _swap_to_cpu(w, s, x) (cfi_be(s)?be##w##_to_cpu(x):le##w##_to_cpu(x))
diff --git a/ANDROID_3.4.5/include/linux/mtd/concat.h b/ANDROID_3.4.5/include/linux/mtd/concat.h
deleted file mode 100644
index ccdbe93a..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/concat.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * MTD device concatenation layer definitions
- *
- * Copyright © 2002 Robert Kaiser <rkaiser@sysgo.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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef MTD_CONCAT_H
-#define MTD_CONCAT_H
-
-
-struct mtd_info *mtd_concat_create(
- struct mtd_info *subdev[], /* subdevices to concatenate */
- int num_devs, /* number of subdevices */
- const char *name); /* name for the new device */
-
-void mtd_concat_destroy(struct mtd_info *mtd);
-
-#endif
-
diff --git a/ANDROID_3.4.5/include/linux/mtd/doc2000.h b/ANDROID_3.4.5/include/linux/mtd/doc2000.h
deleted file mode 100644
index 0f6fea73..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/doc2000.h
+++ /dev/null
@@ -1,206 +0,0 @@
-/*
- * Linux driver for Disk-On-Chip devices
- *
- * Copyright © 1999 Machine Vision Holdings, Inc.
- * Copyright © 1999-2010 David Woodhouse <dwmw2@infradead.org>
- * Copyright © 2002-2003 Greg Ungerer <gerg@snapgear.com>
- * Copyright © 2002-2003 SnapGear Inc
- *
- * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef __MTD_DOC2000_H__
-#define __MTD_DOC2000_H__
-
-#include <linux/mtd/mtd.h>
-#include <linux/mutex.h>
-
-#define DoC_Sig1 0
-#define DoC_Sig2 1
-
-#define DoC_ChipID 0x1000
-#define DoC_DOCStatus 0x1001
-#define DoC_DOCControl 0x1002
-#define DoC_FloorSelect 0x1003
-#define DoC_CDSNControl 0x1004
-#define DoC_CDSNDeviceSelect 0x1005
-#define DoC_ECCConf 0x1006
-#define DoC_2k_ECCStatus 0x1007
-
-#define DoC_CDSNSlowIO 0x100d
-#define DoC_ECCSyndrome0 0x1010
-#define DoC_ECCSyndrome1 0x1011
-#define DoC_ECCSyndrome2 0x1012
-#define DoC_ECCSyndrome3 0x1013
-#define DoC_ECCSyndrome4 0x1014
-#define DoC_ECCSyndrome5 0x1015
-#define DoC_AliasResolution 0x101b
-#define DoC_ConfigInput 0x101c
-#define DoC_ReadPipeInit 0x101d
-#define DoC_WritePipeTerm 0x101e
-#define DoC_LastDataRead 0x101f
-#define DoC_NOP 0x1020
-
-#define DoC_Mil_CDSN_IO 0x0800
-#define DoC_2k_CDSN_IO 0x1800
-
-#define DoC_Mplus_NOP 0x1002
-#define DoC_Mplus_AliasResolution 0x1004
-#define DoC_Mplus_DOCControl 0x1006
-#define DoC_Mplus_AccessStatus 0x1008
-#define DoC_Mplus_DeviceSelect 0x1008
-#define DoC_Mplus_Configuration 0x100a
-#define DoC_Mplus_OutputControl 0x100c
-#define DoC_Mplus_FlashControl 0x1020
-#define DoC_Mplus_FlashSelect 0x1022
-#define DoC_Mplus_FlashCmd 0x1024
-#define DoC_Mplus_FlashAddress 0x1026
-#define DoC_Mplus_FlashData0 0x1028
-#define DoC_Mplus_FlashData1 0x1029
-#define DoC_Mplus_ReadPipeInit 0x102a
-#define DoC_Mplus_LastDataRead 0x102c
-#define DoC_Mplus_LastDataRead1 0x102d
-#define DoC_Mplus_WritePipeTerm 0x102e
-#define DoC_Mplus_ECCSyndrome0 0x1040
-#define DoC_Mplus_ECCSyndrome1 0x1041
-#define DoC_Mplus_ECCSyndrome2 0x1042
-#define DoC_Mplus_ECCSyndrome3 0x1043
-#define DoC_Mplus_ECCSyndrome4 0x1044
-#define DoC_Mplus_ECCSyndrome5 0x1045
-#define DoC_Mplus_ECCConf 0x1046
-#define DoC_Mplus_Toggle 0x1046
-#define DoC_Mplus_DownloadStatus 0x1074
-#define DoC_Mplus_CtrlConfirm 0x1076
-#define DoC_Mplus_Power 0x1fff
-
-/* How to access the device?
- * On ARM, it'll be mmap'd directly with 32-bit wide accesses.
- * On PPC, it's mmap'd and 16-bit wide.
- * Others use readb/writeb
- */
-#if defined(__arm__)
-#define ReadDOC_(adr, reg) ((unsigned char)(*(volatile __u32 *)(((unsigned long)adr)+((reg)<<2))))
-#define WriteDOC_(d, adr, reg) do{ *(volatile __u32 *)(((unsigned long)adr)+((reg)<<2)) = (__u32)d; wmb();} while(0)
-#define DOC_IOREMAP_LEN 0x8000
-#elif defined(__ppc__)
-#define ReadDOC_(adr, reg) ((unsigned char)(*(volatile __u16 *)(((unsigned long)adr)+((reg)<<1))))
-#define WriteDOC_(d, adr, reg) do{ *(volatile __u16 *)(((unsigned long)adr)+((reg)<<1)) = (__u16)d; wmb();} while(0)
-#define DOC_IOREMAP_LEN 0x4000
-#else
-#define ReadDOC_(adr, reg) readb((void __iomem *)(adr) + (reg))
-#define WriteDOC_(d, adr, reg) writeb(d, (void __iomem *)(adr) + (reg))
-#define DOC_IOREMAP_LEN 0x2000
-
-#endif
-
-#if defined(__i386__) || defined(__x86_64__)
-#define USE_MEMCPY
-#endif
-
-/* These are provided to directly use the DoC_xxx defines */
-#define ReadDOC(adr, reg) ReadDOC_(adr,DoC_##reg)
-#define WriteDOC(d, adr, reg) WriteDOC_(d,adr,DoC_##reg)
-
-#define DOC_MODE_RESET 0
-#define DOC_MODE_NORMAL 1
-#define DOC_MODE_RESERVED1 2
-#define DOC_MODE_RESERVED2 3
-
-#define DOC_MODE_CLR_ERR 0x80
-#define DOC_MODE_RST_LAT 0x10
-#define DOC_MODE_BDECT 0x08
-#define DOC_MODE_MDWREN 0x04
-
-#define DOC_ChipID_Doc2k 0x20
-#define DOC_ChipID_Doc2kTSOP 0x21 /* internal number for MTD */
-#define DOC_ChipID_DocMil 0x30
-#define DOC_ChipID_DocMilPlus32 0x40
-#define DOC_ChipID_DocMilPlus16 0x41
-
-#define CDSN_CTRL_FR_B 0x80
-#define CDSN_CTRL_FR_B0 0x40
-#define CDSN_CTRL_FR_B1 0x80
-
-#define CDSN_CTRL_ECC_IO 0x20
-#define CDSN_CTRL_FLASH_IO 0x10
-#define CDSN_CTRL_WP 0x08
-#define CDSN_CTRL_ALE 0x04
-#define CDSN_CTRL_CLE 0x02
-#define CDSN_CTRL_CE 0x01
-
-#define DOC_ECC_RESET 0
-#define DOC_ECC_ERROR 0x80
-#define DOC_ECC_RW 0x20
-#define DOC_ECC__EN 0x08
-#define DOC_TOGGLE_BIT 0x04
-#define DOC_ECC_RESV 0x02
-#define DOC_ECC_IGNORE 0x01
-
-#define DOC_FLASH_CE 0x80
-#define DOC_FLASH_WP 0x40
-#define DOC_FLASH_BANK 0x02
-
-/* We have to also set the reserved bit 1 for enable */
-#define DOC_ECC_EN (DOC_ECC__EN | DOC_ECC_RESV)
-#define DOC_ECC_DIS (DOC_ECC_RESV)
-
-struct Nand {
- char floor, chip;
- unsigned long curadr;
- unsigned char curmode;
- /* Also some erase/write/pipeline info when we get that far */
-};
-
-#define MAX_FLOORS 4
-#define MAX_CHIPS 4
-
-#define MAX_FLOORS_MIL 1
-#define MAX_CHIPS_MIL 1
-
-#define MAX_FLOORS_MPLUS 2
-#define MAX_CHIPS_MPLUS 1
-
-#define ADDR_COLUMN 1
-#define ADDR_PAGE 2
-#define ADDR_COLUMN_PAGE 3
-
-struct DiskOnChip {
- unsigned long physadr;
- void __iomem *virtadr;
- unsigned long totlen;
- unsigned char ChipID; /* Type of DiskOnChip */
- int ioreg;
-
- unsigned long mfr; /* Flash IDs - only one type of flash per device */
- unsigned long id;
- int chipshift;
- char page256;
- char pageadrlen;
- char interleave; /* Internal interleaving - Millennium Plus style */
- unsigned long erasesize;
-
- int curfloor;
- int curchip;
-
- int numchips;
- struct Nand *chips;
- struct mtd_info *nextdoc;
- struct mutex lock;
-};
-
-int doc_decode_ecc(unsigned char sector[512], unsigned char ecc1[6]);
-
-#endif /* __MTD_DOC2000_H__ */
diff --git a/ANDROID_3.4.5/include/linux/mtd/flashchip.h b/ANDROID_3.4.5/include/linux/mtd/flashchip.h
deleted file mode 100644
index b63fa457..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/flashchip.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Copyright © 2000 Red Hat UK Limited
- * Copyright © 2000-2010 David Woodhouse <dwmw2@infradead.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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef __MTD_FLASHCHIP_H__
-#define __MTD_FLASHCHIP_H__
-
-/* For spinlocks. sched.h includes spinlock.h from whichever directory it
- * happens to be in - so we don't have to care whether we're on 2.2, which
- * has asm/spinlock.h, or 2.4, which has linux/spinlock.h
- */
-#include <linux/sched.h>
-#include <linux/mutex.h>
-
-typedef enum {
- FL_READY,
- FL_STATUS,
- FL_CFI_QUERY,
- FL_JEDEC_QUERY,
- FL_ERASING,
- FL_ERASE_SUSPENDING,
- FL_ERASE_SUSPENDED,
- FL_WRITING,
- FL_WRITING_TO_BUFFER,
- FL_OTP_WRITE,
- FL_WRITE_SUSPENDING,
- FL_WRITE_SUSPENDED,
- FL_PM_SUSPENDED,
- FL_SYNCING,
- FL_UNLOADING,
- FL_LOCKING,
- FL_UNLOCKING,
- FL_POINT,
- FL_XIP_WHILE_ERASING,
- FL_XIP_WHILE_WRITING,
- FL_SHUTDOWN,
- /* These 2 come from nand_state_t, which has been unified here */
- FL_READING,
- FL_CACHEDPRG,
- /* These 4 come from onenand_state_t, which has been unified here */
- FL_RESETING,
- FL_OTPING,
- FL_PREPARING_ERASE,
- FL_VERIFYING_ERASE,
-
- FL_UNKNOWN
-} flstate_t;
-
-
-
-/* NOTE: confusingly, this can be used to refer to more than one chip at a time,
- if they're interleaved. This can even refer to individual partitions on
- the same physical chip when present. */
-
-struct flchip {
- unsigned long start; /* Offset within the map */
- // unsigned long len;
- /* We omit len for now, because when we group them together
- we insist that they're all of the same size, and the chip size
- is held in the next level up. If we get more versatile later,
- it'll make it a damn sight harder to find which chip we want from
- a given offset, and we'll want to add the per-chip length field
- back in.
- */
- int ref_point_counter;
- flstate_t state;
- flstate_t oldstate;
-
- unsigned int write_suspended:1;
- unsigned int erase_suspended:1;
- unsigned long in_progress_block_addr;
-
- struct mutex mutex;
- wait_queue_head_t wq; /* Wait on here when we're waiting for the chip
- to be ready */
- int word_write_time;
- int buffer_write_time;
- int erase_time;
-
- int word_write_time_max;
- int buffer_write_time_max;
- int erase_time_max;
-
- void *priv;
-};
-
-/* This is used to handle contention on write/erase operations
- between partitions of the same physical chip. */
-struct flchip_shared {
- struct mutex lock;
- struct flchip *writing;
- struct flchip *erasing;
-};
-
-
-#endif /* __MTD_FLASHCHIP_H__ */
diff --git a/ANDROID_3.4.5/include/linux/mtd/fsmc.h b/ANDROID_3.4.5/include/linux/mtd/fsmc.h
deleted file mode 100644
index b2002922..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/fsmc.h
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * incude/mtd/fsmc.h
- *
- * ST Microelectronics
- * Flexible Static Memory Controller (FSMC)
- * platform data interface and header file
- *
- * Copyright © 2010 ST Microelectronics
- * Vipin Kumar <vipin.kumar@st.com>
- *
- * This file is licensed under the terms of the GNU General Public
- * License version 2. This program is licensed "as is" without any
- * warranty of any kind, whether express or implied.
- */
-
-#ifndef __MTD_FSMC_H
-#define __MTD_FSMC_H
-
-#include <linux/io.h>
-#include <linux/platform_device.h>
-#include <linux/mtd/physmap.h>
-#include <linux/types.h>
-#include <linux/mtd/partitions.h>
-#include <asm/param.h>
-
-#define FSMC_NAND_BW8 1
-#define FSMC_NAND_BW16 2
-
-#define FSMC_MAX_NOR_BANKS 4
-#define FSMC_MAX_NAND_BANKS 4
-
-#define FSMC_FLASH_WIDTH8 1
-#define FSMC_FLASH_WIDTH16 2
-
-/* fsmc controller registers for NOR flash */
-#define CTRL 0x0
- /* ctrl register definitions */
- #define BANK_ENABLE (1 << 0)
- #define MUXED (1 << 1)
- #define NOR_DEV (2 << 2)
- #define WIDTH_8 (0 << 4)
- #define WIDTH_16 (1 << 4)
- #define RSTPWRDWN (1 << 6)
- #define WPROT (1 << 7)
- #define WRT_ENABLE (1 << 12)
- #define WAIT_ENB (1 << 13)
-
-#define CTRL_TIM 0x4
- /* ctrl_tim register definitions */
-
-#define FSMC_NOR_BANK_SZ 0x8
-#define FSMC_NOR_REG_SIZE 0x40
-
-#define FSMC_NOR_REG(base, bank, reg) (base + \
- FSMC_NOR_BANK_SZ * (bank) + \
- reg)
-
-/* fsmc controller registers for NAND flash */
-#define PC 0x00
- /* pc register definitions */
- #define FSMC_RESET (1 << 0)
- #define FSMC_WAITON (1 << 1)
- #define FSMC_ENABLE (1 << 2)
- #define FSMC_DEVTYPE_NAND (1 << 3)
- #define FSMC_DEVWID_8 (0 << 4)
- #define FSMC_DEVWID_16 (1 << 4)
- #define FSMC_ECCEN (1 << 6)
- #define FSMC_ECCPLEN_512 (0 << 7)
- #define FSMC_ECCPLEN_256 (1 << 7)
- #define FSMC_TCLR_1 (1)
- #define FSMC_TCLR_SHIFT (9)
- #define FSMC_TCLR_MASK (0xF)
- #define FSMC_TAR_1 (1)
- #define FSMC_TAR_SHIFT (13)
- #define FSMC_TAR_MASK (0xF)
-#define STS 0x04
- /* sts register definitions */
- #define FSMC_CODE_RDY (1 << 15)
-#define COMM 0x08
- /* comm register definitions */
- #define FSMC_TSET_0 0
- #define FSMC_TSET_SHIFT 0
- #define FSMC_TSET_MASK 0xFF
- #define FSMC_TWAIT_6 6
- #define FSMC_TWAIT_SHIFT 8
- #define FSMC_TWAIT_MASK 0xFF
- #define FSMC_THOLD_4 4
- #define FSMC_THOLD_SHIFT 16
- #define FSMC_THOLD_MASK 0xFF
- #define FSMC_THIZ_1 1
- #define FSMC_THIZ_SHIFT 24
- #define FSMC_THIZ_MASK 0xFF
-#define ATTRIB 0x0C
-#define IOATA 0x10
-#define ECC1 0x14
-#define ECC2 0x18
-#define ECC3 0x1C
-#define FSMC_NAND_BANK_SZ 0x20
-
-#define FSMC_NAND_REG(base, bank, reg) (base + FSMC_NOR_REG_SIZE + \
- (FSMC_NAND_BANK_SZ * (bank)) + \
- reg)
-
-#define FSMC_BUSY_WAIT_TIMEOUT (1 * HZ)
-
-/*
- * There are 13 bytes of ecc for every 512 byte block in FSMC version 8
- * and it has to be read consecutively and immediately after the 512
- * byte data block for hardware to generate the error bit offsets
- * Managing the ecc bytes in the following way is easier. This way is
- * similar to oobfree structure maintained already in u-boot nand driver
- */
-#define MAX_ECCPLACE_ENTRIES 32
-
-struct fsmc_nand_eccplace {
- uint8_t offset;
- uint8_t length;
-};
-
-struct fsmc_eccplace {
- struct fsmc_nand_eccplace eccplace[MAX_ECCPLACE_ENTRIES];
-};
-
-struct fsmc_nand_timings {
- uint8_t tclr;
- uint8_t tar;
- uint8_t thiz;
- uint8_t thold;
- uint8_t twait;
- uint8_t tset;
-};
-
-enum access_mode {
- USE_DMA_ACCESS = 1,
- USE_WORD_ACCESS,
-};
-
-/**
- * fsmc_nand_platform_data - platform specific NAND controller config
- * @partitions: partition table for the platform, use a default fallback
- * if this is NULL
- * @nr_partitions: the number of partitions in the previous entry
- * @options: different options for the driver
- * @width: bus width
- * @bank: default bank
- * @select_bank: callback to select a certain bank, this is
- * platform-specific. If the controller only supports one bank
- * this may be set to NULL
- */
-struct fsmc_nand_platform_data {
- struct fsmc_nand_timings *nand_timings;
- struct mtd_partition *partitions;
- unsigned int nr_partitions;
- unsigned int options;
- unsigned int width;
- unsigned int bank;
-
- /* CLE, ALE offsets */
- unsigned int cle_off;
- unsigned int ale_off;
- enum access_mode mode;
-
- void (*select_bank)(uint32_t bank, uint32_t busw);
-
- /* priv structures for dma accesses */
- void *read_dma_priv;
- void *write_dma_priv;
-};
-
-extern int __init fsmc_nor_init(struct platform_device *pdev,
- unsigned long base, uint32_t bank, uint32_t width);
-extern void __init fsmc_init_board_info(struct platform_device *pdev,
- struct mtd_partition *partitions, unsigned int nr_partitions,
- unsigned int width);
-
-#endif /* __MTD_FSMC_H */
diff --git a/ANDROID_3.4.5/include/linux/mtd/ftl.h b/ANDROID_3.4.5/include/linux/mtd/ftl.h
deleted file mode 100644
index 0555f7a0..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/ftl.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Derived from (and probably identical to):
- * ftl.h 1.7 1999/10/25 20:23:17
- *
- * The contents of this file are subject to the Mozilla Public License
- * Version 1.1 (the "License"); you may not use this file except in
- * compliance with the License. You may obtain a copy of the License
- * at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS"
- * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
- * the License for the specific language governing rights and
- * limitations under the License.
- *
- * The initial developer of the original code is David A. Hinds
- * <dahinds@users.sourceforge.net>. Portions created by David A. Hinds
- * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
- *
- * Alternatively, the contents of this file may be used under the
- * terms of the GNU General Public License version 2 (the "GPL"), in
- * which case the provisions of the GPL are applicable instead of the
- * above. If you wish to allow the use of your version of this file
- * only under the terms of the GPL and not to allow others to use
- * your version of this file under the MPL, indicate your decision by
- * deleting the provisions above and replace them with the notice and
- * other provisions required by the GPL. If you do not delete the
- * provisions above, a recipient may use your version of this file
- * under either the MPL or the GPL.
- */
-
-#ifndef _LINUX_FTL_H
-#define _LINUX_FTL_H
-
-typedef struct erase_unit_header_t {
- uint8_t LinkTargetTuple[5];
- uint8_t DataOrgTuple[10];
- uint8_t NumTransferUnits;
- uint32_t EraseCount;
- uint16_t LogicalEUN;
- uint8_t BlockSize;
- uint8_t EraseUnitSize;
- uint16_t FirstPhysicalEUN;
- uint16_t NumEraseUnits;
- uint32_t FormattedSize;
- uint32_t FirstVMAddress;
- uint16_t NumVMPages;
- uint8_t Flags;
- uint8_t Code;
- uint32_t SerialNumber;
- uint32_t AltEUHOffset;
- uint32_t BAMOffset;
- uint8_t Reserved[12];
- uint8_t EndTuple[2];
-} erase_unit_header_t;
-
-/* Flags in erase_unit_header_t */
-#define HIDDEN_AREA 0x01
-#define REVERSE_POLARITY 0x02
-#define DOUBLE_BAI 0x04
-
-/* Definitions for block allocation information */
-
-#define BLOCK_FREE(b) ((b) == 0xffffffff)
-#define BLOCK_DELETED(b) (((b) == 0) || ((b) == 0xfffffffe))
-
-#define BLOCK_TYPE(b) ((b) & 0x7f)
-#define BLOCK_ADDRESS(b) ((b) & ~0x7f)
-#define BLOCK_NUMBER(b) ((b) >> 9)
-#define BLOCK_CONTROL 0x30
-#define BLOCK_DATA 0x40
-#define BLOCK_REPLACEMENT 0x60
-#define BLOCK_BAD 0x70
-
-#endif /* _LINUX_FTL_H */
diff --git a/ANDROID_3.4.5/include/linux/mtd/gen_probe.h b/ANDROID_3.4.5/include/linux/mtd/gen_probe.h
deleted file mode 100644
index 2c456054..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/gen_probe.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright © 2001 Red Hat UK Limited
- * Copyright © 2001-2010 David Woodhouse <dwmw2@infradead.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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef __LINUX_MTD_GEN_PROBE_H__
-#define __LINUX_MTD_GEN_PROBE_H__
-
-#include <linux/mtd/flashchip.h>
-#include <linux/mtd/map.h>
-#include <linux/mtd/cfi.h>
-#include <linux/bitops.h>
-
-struct chip_probe {
- char *name;
- int (*probe_chip)(struct map_info *map, __u32 base,
- unsigned long *chip_map, struct cfi_private *cfi);
-};
-
-struct mtd_info *mtd_do_chip_probe(struct map_info *map, struct chip_probe *cp);
-
-#endif /* __LINUX_MTD_GEN_PROBE_H__ */
diff --git a/ANDROID_3.4.5/include/linux/mtd/gpmi-nand.h b/ANDROID_3.4.5/include/linux/mtd/gpmi-nand.h
deleted file mode 100644
index 69b6dbf4..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/gpmi-nand.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (C) 2011 Freescale Semiconductor, Inc. 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.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#ifndef __MACH_MXS_GPMI_NAND_H__
-#define __MACH_MXS_GPMI_NAND_H__
-
-/* The size of the resources is fixed. */
-#define GPMI_NAND_RES_SIZE 6
-
-/* Resource names for the GPMI NAND driver. */
-#define GPMI_NAND_GPMI_REGS_ADDR_RES_NAME "GPMI NAND GPMI Registers"
-#define GPMI_NAND_GPMI_INTERRUPT_RES_NAME "GPMI NAND GPMI Interrupt"
-#define GPMI_NAND_BCH_REGS_ADDR_RES_NAME "GPMI NAND BCH Registers"
-#define GPMI_NAND_BCH_INTERRUPT_RES_NAME "GPMI NAND BCH Interrupt"
-#define GPMI_NAND_DMA_CHANNELS_RES_NAME "GPMI NAND DMA Channels"
-#define GPMI_NAND_DMA_INTERRUPT_RES_NAME "GPMI NAND DMA Interrupt"
-
-/**
- * struct gpmi_nand_platform_data - GPMI NAND driver platform data.
- *
- * This structure communicates platform-specific information to the GPMI NAND
- * driver that can't be expressed as resources.
- *
- * @platform_init: A pointer to a function the driver will call to
- * initialize the platform (e.g., set up the pin mux).
- * @min_prop_delay_in_ns: Minimum propagation delay of GPMI signals to and
- * from the NAND Flash device, in nanoseconds.
- * @max_prop_delay_in_ns: Maximum propagation delay of GPMI signals to and
- * from the NAND Flash device, in nanoseconds.
- * @max_chip_count: The maximum number of chips for which the driver
- * should configure the hardware. This value most
- * likely reflects the number of pins that are
- * connected to a NAND Flash device. If this is
- * greater than the SoC hardware can support, the
- * driver will print a message and fail to initialize.
- * @partitions: An optional pointer to an array of partition
- * descriptions.
- * @partition_count: The number of elements in the partitions array.
- */
-struct gpmi_nand_platform_data {
- /* SoC hardware information. */
- int (*platform_init)(void);
-
- /* NAND Flash information. */
- unsigned int min_prop_delay_in_ns;
- unsigned int max_prop_delay_in_ns;
- unsigned int max_chip_count;
-
- /* Medium information. */
- struct mtd_partition *partitions;
- unsigned partition_count;
-};
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mtd/inftl.h b/ANDROID_3.4.5/include/linux/mtd/inftl.h
deleted file mode 100644
index 02cd5f9b..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/inftl.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * inftl.h -- defines to support the Inverse NAND Flash Translation Layer
- *
- * (C) Copyright 2002, Greg Ungerer (gerg@snapgear.com)
- */
-
-#ifndef __MTD_INFTL_H__
-#define __MTD_INFTL_H__
-
-#ifndef __KERNEL__
-#error This is a kernel header. Perhaps include nftl-user.h instead?
-#endif
-
-#include <linux/mtd/blktrans.h>
-#include <linux/mtd/mtd.h>
-#include <linux/mtd/nftl.h>
-
-#include <mtd/inftl-user.h>
-
-#ifndef INFTL_MAJOR
-#define INFTL_MAJOR 96
-#endif
-#define INFTL_PARTN_BITS 4
-
-#ifdef __KERNEL__
-
-struct INFTLrecord {
- struct mtd_blktrans_dev mbd;
- __u16 MediaUnit;
- __u32 EraseSize;
- struct INFTLMediaHeader MediaHdr;
- int usecount;
- unsigned char heads;
- unsigned char sectors;
- unsigned short cylinders;
- __u16 numvunits;
- __u16 firstEUN;
- __u16 lastEUN;
- __u16 numfreeEUNs;
- __u16 LastFreeEUN; /* To speed up finding a free EUN */
- int head,sect,cyl;
- __u16 *PUtable; /* Physical Unit Table */
- __u16 *VUtable; /* Virtual Unit Table */
- unsigned int nb_blocks; /* number of physical blocks */
- unsigned int nb_boot_blocks; /* number of blocks used by the bios */
- struct erase_info instr;
- struct nand_ecclayout oobinfo;
-};
-
-int INFTL_mount(struct INFTLrecord *s);
-int INFTL_formatblock(struct INFTLrecord *s, int block);
-
-void INFTL_dumptables(struct INFTLrecord *s);
-void INFTL_dumpVUchains(struct INFTLrecord *s);
-
-int inftl_read_oob(struct mtd_info *mtd, loff_t offs, size_t len,
- size_t *retlen, uint8_t *buf);
-int inftl_write_oob(struct mtd_info *mtd, loff_t offs, size_t len,
- size_t *retlen, uint8_t *buf);
-
-#endif /* __KERNEL__ */
-
-#endif /* __MTD_INFTL_H__ */
diff --git a/ANDROID_3.4.5/include/linux/mtd/latch-addr-flash.h b/ANDROID_3.4.5/include/linux/mtd/latch-addr-flash.h
deleted file mode 100644
index e94b8e12..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/latch-addr-flash.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Interface for NOR flash driver whose high address lines are latched
- *
- * Copyright © 2008 MontaVista Software, Inc. <source@mvista.com>
- *
- * This file is licensed under the terms of the GNU General Public License
- * version 2. This program is licensed "as is" without any warranty of any
- * kind, whether express or implied.
- */
-#ifndef __LATCH_ADDR_FLASH__
-#define __LATCH_ADDR_FLASH__
-
-struct map_info;
-struct mtd_partition;
-
-struct latch_addr_flash_data {
- unsigned int width;
- unsigned int size;
-
- int (*init)(void *data, int cs);
- void (*done)(void *data);
- void (*set_window)(unsigned long offset, void *data);
- void *data;
-
- unsigned int nr_parts;
- struct mtd_partition *parts;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mtd/map.h b/ANDROID_3.4.5/include/linux/mtd/map.h
deleted file mode 100644
index 3595a023..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/map.h
+++ /dev/null
@@ -1,465 +0,0 @@
-/*
- * Copyright © 2000-2010 David Woodhouse <dwmw2@infradead.org> et al.
- *
- * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-/* Overhauled routines for dealing with different mmap regions of flash */
-
-#ifndef __LINUX_MTD_MAP_H__
-#define __LINUX_MTD_MAP_H__
-
-#include <linux/types.h>
-#include <linux/list.h>
-#include <linux/string.h>
-#include <linux/bug.h>
-#include <linux/kernel.h>
-
-#include <asm/unaligned.h>
-#include <asm/io.h>
-#include <asm/barrier.h>
-
-#ifdef CONFIG_MTD_MAP_BANK_WIDTH_1
-#define map_bankwidth(map) 1
-#define map_bankwidth_is_1(map) (map_bankwidth(map) == 1)
-#define map_bankwidth_is_large(map) (0)
-#define map_words(map) (1)
-#define MAX_MAP_BANKWIDTH 1
-#else
-#define map_bankwidth_is_1(map) (0)
-#endif
-
-#ifdef CONFIG_MTD_MAP_BANK_WIDTH_2
-# ifdef map_bankwidth
-# undef map_bankwidth
-# define map_bankwidth(map) ((map)->bankwidth)
-# else
-# define map_bankwidth(map) 2
-# define map_bankwidth_is_large(map) (0)
-# define map_words(map) (1)
-# endif
-#define map_bankwidth_is_2(map) (map_bankwidth(map) == 2)
-#undef MAX_MAP_BANKWIDTH
-#define MAX_MAP_BANKWIDTH 2
-#else
-#define map_bankwidth_is_2(map) (0)
-#endif
-
-#ifdef CONFIG_MTD_MAP_BANK_WIDTH_4
-# ifdef map_bankwidth
-# undef map_bankwidth
-# define map_bankwidth(map) ((map)->bankwidth)
-# else
-# define map_bankwidth(map) 4
-# define map_bankwidth_is_large(map) (0)
-# define map_words(map) (1)
-# endif
-#define map_bankwidth_is_4(map) (map_bankwidth(map) == 4)
-#undef MAX_MAP_BANKWIDTH
-#define MAX_MAP_BANKWIDTH 4
-#else
-#define map_bankwidth_is_4(map) (0)
-#endif
-
-/* ensure we never evaluate anything shorted than an unsigned long
- * to zero, and ensure we'll never miss the end of an comparison (bjd) */
-
-#define map_calc_words(map) ((map_bankwidth(map) + (sizeof(unsigned long)-1))/ sizeof(unsigned long))
-
-#ifdef CONFIG_MTD_MAP_BANK_WIDTH_8
-# ifdef map_bankwidth
-# undef map_bankwidth
-# define map_bankwidth(map) ((map)->bankwidth)
-# if BITS_PER_LONG < 64
-# undef map_bankwidth_is_large
-# define map_bankwidth_is_large(map) (map_bankwidth(map) > BITS_PER_LONG/8)
-# undef map_words
-# define map_words(map) map_calc_words(map)
-# endif
-# else
-# define map_bankwidth(map) 8
-# define map_bankwidth_is_large(map) (BITS_PER_LONG < 64)
-# define map_words(map) map_calc_words(map)
-# endif
-#define map_bankwidth_is_8(map) (map_bankwidth(map) == 8)
-#undef MAX_MAP_BANKWIDTH
-#define MAX_MAP_BANKWIDTH 8
-#else
-#define map_bankwidth_is_8(map) (0)
-#endif
-
-#ifdef CONFIG_MTD_MAP_BANK_WIDTH_16
-# ifdef map_bankwidth
-# undef map_bankwidth
-# define map_bankwidth(map) ((map)->bankwidth)
-# undef map_bankwidth_is_large
-# define map_bankwidth_is_large(map) (map_bankwidth(map) > BITS_PER_LONG/8)
-# undef map_words
-# define map_words(map) map_calc_words(map)
-# else
-# define map_bankwidth(map) 16
-# define map_bankwidth_is_large(map) (1)
-# define map_words(map) map_calc_words(map)
-# endif
-#define map_bankwidth_is_16(map) (map_bankwidth(map) == 16)
-#undef MAX_MAP_BANKWIDTH
-#define MAX_MAP_BANKWIDTH 16
-#else
-#define map_bankwidth_is_16(map) (0)
-#endif
-
-#ifdef CONFIG_MTD_MAP_BANK_WIDTH_32
-# ifdef map_bankwidth
-# undef map_bankwidth
-# define map_bankwidth(map) ((map)->bankwidth)
-# undef map_bankwidth_is_large
-# define map_bankwidth_is_large(map) (map_bankwidth(map) > BITS_PER_LONG/8)
-# undef map_words
-# define map_words(map) map_calc_words(map)
-# else
-# define map_bankwidth(map) 32
-# define map_bankwidth_is_large(map) (1)
-# define map_words(map) map_calc_words(map)
-# endif
-#define map_bankwidth_is_32(map) (map_bankwidth(map) == 32)
-#undef MAX_MAP_BANKWIDTH
-#define MAX_MAP_BANKWIDTH 32
-#else
-#define map_bankwidth_is_32(map) (0)
-#endif
-
-#ifndef map_bankwidth
-#warning "No CONFIG_MTD_MAP_BANK_WIDTH_xx selected. No NOR chip support can work"
-static inline int map_bankwidth(void *map)
-{
- BUG();
- return 0;
-}
-#define map_bankwidth_is_large(map) (0)
-#define map_words(map) (0)
-#define MAX_MAP_BANKWIDTH 1
-#endif
-
-static inline int map_bankwidth_supported(int w)
-{
- switch (w) {
-#ifdef CONFIG_MTD_MAP_BANK_WIDTH_1
- case 1:
-#endif
-#ifdef CONFIG_MTD_MAP_BANK_WIDTH_2
- case 2:
-#endif
-#ifdef CONFIG_MTD_MAP_BANK_WIDTH_4
- case 4:
-#endif
-#ifdef CONFIG_MTD_MAP_BANK_WIDTH_8
- case 8:
-#endif
-#ifdef CONFIG_MTD_MAP_BANK_WIDTH_16
- case 16:
-#endif
-#ifdef CONFIG_MTD_MAP_BANK_WIDTH_32
- case 32:
-#endif
- return 1;
-
- default:
- return 0;
- }
-}
-
-#define MAX_MAP_LONGS ( ((MAX_MAP_BANKWIDTH*8) + BITS_PER_LONG - 1) / BITS_PER_LONG )
-
-typedef union {
- unsigned long x[MAX_MAP_LONGS];
-} map_word;
-
-/* The map stuff is very simple. You fill in your struct map_info with
- a handful of routines for accessing the device, making sure they handle
- paging etc. correctly if your device needs it. Then you pass it off
- to a chip probe routine -- either JEDEC or CFI probe or both -- via
- do_map_probe(). If a chip is recognised, the probe code will invoke the
- appropriate chip driver (if present) and return a struct mtd_info.
- At which point, you fill in the mtd->module with your own module
- address, and register it with the MTD core code. Or you could partition
- it and register the partitions instead, or keep it for your own private
- use; whatever.
-
- The mtd->priv field will point to the struct map_info, and any further
- private data required by the chip driver is linked from the
- mtd->priv->fldrv_priv field. This allows the map driver to get at
- the destructor function map->fldrv_destroy() when it's tired
- of living.
-*/
-
-struct map_info {
- const char *name;
- unsigned long size;
- resource_size_t phys;
-#define NO_XIP (-1UL)
-
- void __iomem *virt;
- void *cached;
-
- int swap; /* this mapping's byte-swapping requirement */
- int bankwidth; /* in octets. This isn't necessarily the width
- of actual bus cycles -- it's the repeat interval
- in bytes, before you are talking to the first chip again.
- */
-
-#ifdef CONFIG_MTD_COMPLEX_MAPPINGS
- map_word (*read)(struct map_info *, unsigned long);
- void (*copy_from)(struct map_info *, void *, unsigned long, ssize_t);
-
- void (*write)(struct map_info *, const map_word, unsigned long);
- void (*copy_to)(struct map_info *, unsigned long, const void *, ssize_t);
-
- /* We can perhaps put in 'point' and 'unpoint' methods, if we really
- want to enable XIP for non-linear mappings. Not yet though. */
-#endif
- /* It's possible for the map driver to use cached memory in its
- copy_from implementation (and _only_ with copy_from). However,
- when the chip driver knows some flash area has changed contents,
- it will signal it to the map driver through this routine to let
- the map driver invalidate the corresponding cache as needed.
- If there is no cache to care about this can be set to NULL. */
- void (*inval_cache)(struct map_info *, unsigned long, ssize_t);
-
- /* set_vpp() must handle being reentered -- enable, enable, disable
- must leave it enabled. */
- void (*set_vpp)(struct map_info *, int);
-
- unsigned long pfow_base;
- unsigned long map_priv_1;
- unsigned long map_priv_2;
- void *fldrv_priv;
- struct mtd_chip_driver *fldrv;
-};
-
-struct mtd_chip_driver {
- struct mtd_info *(*probe)(struct map_info *map);
- void (*destroy)(struct mtd_info *);
- struct module *module;
- char *name;
- struct list_head list;
-};
-
-void register_mtd_chip_driver(struct mtd_chip_driver *);
-void unregister_mtd_chip_driver(struct mtd_chip_driver *);
-
-struct mtd_info *do_map_probe(const char *name, struct map_info *map);
-void map_destroy(struct mtd_info *mtd);
-
-#define ENABLE_VPP(map) do { if(map->set_vpp) map->set_vpp(map, 1); } while(0)
-#define DISABLE_VPP(map) do { if(map->set_vpp) map->set_vpp(map, 0); } while(0)
-
-#define INVALIDATE_CACHED_RANGE(map, from, size) \
- do { if(map->inval_cache) map->inval_cache(map, from, size); } while(0)
-
-
-static inline int map_word_equal(struct map_info *map, map_word val1, map_word val2)
-{
- int i;
- for (i=0; i<map_words(map); i++) {
- if (val1.x[i] != val2.x[i])
- return 0;
- }
- return 1;
-}
-
-static inline map_word map_word_and(struct map_info *map, map_word val1, map_word val2)
-{
- map_word r;
- int i;
-
- for (i=0; i<map_words(map); i++) {
- r.x[i] = val1.x[i] & val2.x[i];
- }
- return r;
-}
-
-static inline map_word map_word_clr(struct map_info *map, map_word val1, map_word val2)
-{
- map_word r;
- int i;
-
- for (i=0; i<map_words(map); i++) {
- r.x[i] = val1.x[i] & ~val2.x[i];
- }
- return r;
-}
-
-static inline map_word map_word_or(struct map_info *map, map_word val1, map_word val2)
-{
- map_word r;
- int i;
-
- for (i=0; i<map_words(map); i++) {
- r.x[i] = val1.x[i] | val2.x[i];
- }
- return r;
-}
-
-#define map_word_andequal(m, a, b, z) map_word_equal(m, z, map_word_and(m, a, b))
-
-static inline int map_word_bitsset(struct map_info *map, map_word val1, map_word val2)
-{
- int i;
-
- for (i=0; i<map_words(map); i++) {
- if (val1.x[i] & val2.x[i])
- return 1;
- }
- return 0;
-}
-
-static inline map_word map_word_load(struct map_info *map, const void *ptr)
-{
- map_word r;
-
- if (map_bankwidth_is_1(map))
- r.x[0] = *(unsigned char *)ptr;
- else if (map_bankwidth_is_2(map))
- r.x[0] = get_unaligned((uint16_t *)ptr);
- else if (map_bankwidth_is_4(map))
- r.x[0] = get_unaligned((uint32_t *)ptr);
-#if BITS_PER_LONG >= 64
- else if (map_bankwidth_is_8(map))
- r.x[0] = get_unaligned((uint64_t *)ptr);
-#endif
- else if (map_bankwidth_is_large(map))
- memcpy(r.x, ptr, map->bankwidth);
-
- return r;
-}
-
-static inline map_word map_word_load_partial(struct map_info *map, map_word orig, const unsigned char *buf, int start, int len)
-{
- int i;
-
- if (map_bankwidth_is_large(map)) {
- char *dest = (char *)&orig;
- memcpy(dest+start, buf, len);
- } else {
- for (i=start; i < start+len; i++) {
- int bitpos;
-#ifdef __LITTLE_ENDIAN
- bitpos = i*8;
-#else /* __BIG_ENDIAN */
- bitpos = (map_bankwidth(map)-1-i)*8;
-#endif
- orig.x[0] &= ~(0xff << bitpos);
- orig.x[0] |= buf[i-start] << bitpos;
- }
- }
- return orig;
-}
-
-#if BITS_PER_LONG < 64
-#define MAP_FF_LIMIT 4
-#else
-#define MAP_FF_LIMIT 8
-#endif
-
-static inline map_word map_word_ff(struct map_info *map)
-{
- map_word r;
- int i;
-
- if (map_bankwidth(map) < MAP_FF_LIMIT) {
- int bw = 8 * map_bankwidth(map);
- r.x[0] = (1 << bw) - 1;
- } else {
- for (i=0; i<map_words(map); i++)
- r.x[i] = ~0UL;
- }
- return r;
-}
-
-static inline map_word inline_map_read(struct map_info *map, unsigned long ofs)
-{
- map_word r;
-
- if (map_bankwidth_is_1(map))
- r.x[0] = __raw_readb(map->virt + ofs);
- else if (map_bankwidth_is_2(map))
- r.x[0] = __raw_readw(map->virt + ofs);
- else if (map_bankwidth_is_4(map))
- r.x[0] = __raw_readl(map->virt + ofs);
-#if BITS_PER_LONG >= 64
- else if (map_bankwidth_is_8(map))
- r.x[0] = __raw_readq(map->virt + ofs);
-#endif
- else if (map_bankwidth_is_large(map))
- memcpy_fromio(r.x, map->virt+ofs, map->bankwidth);
- else
- BUG();
-
- return r;
-}
-
-static inline void inline_map_write(struct map_info *map, const map_word datum, unsigned long ofs)
-{
- if (map_bankwidth_is_1(map))
- __raw_writeb(datum.x[0], map->virt + ofs);
- else if (map_bankwidth_is_2(map))
- __raw_writew(datum.x[0], map->virt + ofs);
- else if (map_bankwidth_is_4(map))
- __raw_writel(datum.x[0], map->virt + ofs);
-#if BITS_PER_LONG >= 64
- else if (map_bankwidth_is_8(map))
- __raw_writeq(datum.x[0], map->virt + ofs);
-#endif
- else if (map_bankwidth_is_large(map))
- memcpy_toio(map->virt+ofs, datum.x, map->bankwidth);
- mb();
-}
-
-static inline void inline_map_copy_from(struct map_info *map, void *to, unsigned long from, ssize_t len)
-{
- if (map->cached)
- memcpy(to, (char *)map->cached + from, len);
- else
- memcpy_fromio(to, map->virt + from, len);
-}
-
-static inline void inline_map_copy_to(struct map_info *map, unsigned long to, const void *from, ssize_t len)
-{
- memcpy_toio(map->virt + to, from, len);
-}
-
-#ifdef CONFIG_MTD_COMPLEX_MAPPINGS
-#define map_read(map, ofs) (map)->read(map, ofs)
-#define map_copy_from(map, to, from, len) (map)->copy_from(map, to, from, len)
-#define map_write(map, datum, ofs) (map)->write(map, datum, ofs)
-#define map_copy_to(map, to, from, len) (map)->copy_to(map, to, from, len)
-
-extern void simple_map_init(struct map_info *);
-#define map_is_linear(map) (map->phys != NO_XIP)
-
-#else
-#define map_read(map, ofs) inline_map_read(map, ofs)
-#define map_copy_from(map, to, from, len) inline_map_copy_from(map, to, from, len)
-#define map_write(map, datum, ofs) inline_map_write(map, datum, ofs)
-#define map_copy_to(map, to, from, len) inline_map_copy_to(map, to, from, len)
-
-
-#define simple_map_init(map) BUG_ON(!map_bankwidth_supported((map)->bankwidth))
-#define map_is_linear(map) ({ (void)(map); 1; })
-
-#endif /* !CONFIG_MTD_COMPLEX_MAPPINGS */
-
-#endif /* __LINUX_MTD_MAP_H__ */
diff --git a/ANDROID_3.4.5/include/linux/mtd/mtd.h b/ANDROID_3.4.5/include/linux/mtd/mtd.h
deleted file mode 100644
index 80affde5..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/mtd.h
+++ /dev/null
@@ -1,429 +0,0 @@
-/*
- * Copyright © 1999-2010 David Woodhouse <dwmw2@infradead.org> et al.
- *
- * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef __MTD_MTD_H__
-#define __MTD_MTD_H__
-
-#include <linux/types.h>
-#include <linux/uio.h>
-#include <linux/notifier.h>
-#include <linux/device.h>
-
-#include <mtd/mtd-abi.h>
-
-#include <asm/div64.h>
-
-#define MTD_CHAR_MAJOR 90
-#define MTD_BLOCK_MAJOR 31
-#define MAX_MTD_DEVICES 32
-
-#define MTD_ERASE_PENDING 0x01
-#define MTD_ERASING 0x02
-#define MTD_ERASE_SUSPEND 0x04
-#define MTD_ERASE_DONE 0x08
-#define MTD_ERASE_FAILED 0x10
-
-#define MTD_FAIL_ADDR_UNKNOWN -1LL
-
-/*
- * If the erase fails, fail_addr might indicate exactly which block failed. If
- * fail_addr = MTD_FAIL_ADDR_UNKNOWN, the failure was not at the device level
- * or was not specific to any particular block.
- */
-struct erase_info {
- struct mtd_info *mtd;
- uint64_t addr;
- uint64_t len;
- uint64_t fail_addr;
- u_long time;
- u_long retries;
- unsigned dev;
- unsigned cell;
- void (*callback) (struct erase_info *self);
- u_long priv;
- u_char state;
- struct erase_info *next;
-};
-
-struct mtd_erase_region_info {
- uint64_t offset; /* At which this region starts, from the beginning of the MTD */
- uint32_t erasesize; /* For this region */
- uint32_t numblocks; /* Number of blocks of erasesize in this region */
- unsigned long *lockmap; /* If keeping bitmap of locks */
-};
-
-/**
- * struct mtd_oob_ops - oob operation operands
- * @mode: operation mode
- *
- * @len: number of data bytes to write/read
- *
- * @retlen: number of data bytes written/read
- *
- * @ooblen: number of oob bytes to write/read
- * @oobretlen: number of oob bytes written/read
- * @ooboffs: offset of oob data in the oob area (only relevant when
- * mode = MTD_OPS_PLACE_OOB or MTD_OPS_RAW)
- * @datbuf: data buffer - if NULL only oob data are read/written
- * @oobbuf: oob data buffer
- *
- * Note, it is allowed to read more than one OOB area at one go, but not write.
- * The interface assumes that the OOB write requests program only one page's
- * OOB area.
- */
-struct mtd_oob_ops {
- unsigned int mode;
- size_t len;
- size_t retlen;
- size_t ooblen;
- size_t oobretlen;
- uint32_t ooboffs;
- uint8_t *datbuf;
- uint8_t *oobbuf;
-};
-
-#define MTD_MAX_OOBFREE_ENTRIES_LARGE 32
-#define MTD_MAX_ECCPOS_ENTRIES_LARGE 448
-/*
- * Internal ECC layout control structure. For historical reasons, there is a
- * similar, smaller struct nand_ecclayout_user (in mtd-abi.h) that is retained
- * for export to user-space via the ECCGETLAYOUT ioctl.
- * nand_ecclayout should be expandable in the future simply by the above macros.
- */
-struct nand_ecclayout {
- __u32 eccbytes;
- __u32 eccpos[MTD_MAX_ECCPOS_ENTRIES_LARGE];
- __u32 oobavail;
- struct nand_oobfree oobfree[MTD_MAX_OOBFREE_ENTRIES_LARGE];
-};
-
-struct module; /* only needed for owner field in mtd_info */
-
-struct mtd_info {
- u_char type;
- uint32_t flags;
- uint64_t size; // Total size of the MTD
-
- /* "Major" erase size for the device. Naïve users may take this
- * to be the only erase size available, or may use the more detailed
- * information below if they desire
- */
- uint32_t erasesize;
- /* Minimal writable flash unit size. In case of NOR flash it is 1 (even
- * though individual bits can be cleared), in case of NAND flash it is
- * one NAND page (or half, or one-fourths of it), in case of ECC-ed NOR
- * it is of ECC block size, etc. It is illegal to have writesize = 0.
- * Any driver registering a struct mtd_info must ensure a writesize of
- * 1 or larger.
- */
- uint32_t writesize;
-
- /*
- * Size of the write buffer used by the MTD. MTD devices having a write
- * buffer can write multiple writesize chunks at a time. E.g. while
- * writing 4 * writesize bytes to a device with 2 * writesize bytes
- * buffer the MTD driver can (but doesn't have to) do 2 writesize
- * operations, but not 4. Currently, all NANDs have writebufsize
- * equivalent to writesize (NAND page size). Some NOR flashes do have
- * writebufsize greater than writesize.
- */
- uint32_t writebufsize;
-
- uint32_t oobsize; // Amount of OOB data per block (e.g. 16)
- uint32_t oobavail; // Available OOB bytes per block
-
- uint32_t realerasesize; //dan_multi add for multi plane access
- uint32_t realwritesize;
- uint32_t realoobsize;
- int planenum;
-
- /*
- * If erasesize is a power of 2 then the shift is stored in
- * erasesize_shift otherwise erasesize_shift is zero. Ditto writesize.
- */
- unsigned int erasesize_shift;
- unsigned int writesize_shift;
- /* Masks based on erasesize_shift and writesize_shift */
- unsigned int erasesize_mask;
- unsigned int writesize_mask;
-
- // Kernel-only stuff starts here.
- const char *name;
- int index;
-
- /* ECC layout structure pointer - read only! */
- struct nand_ecclayout *ecclayout;
-
- /* max number of correctible bit errors per writesize */
- unsigned int ecc_strength;
-
- /* Data for variable erase regions. If numeraseregions is zero,
- * it means that the whole device has erasesize as given above.
- */
- int numeraseregions;
- struct mtd_erase_region_info *eraseregions;
-
- /*
- * Do not call via these pointers, use corresponding mtd_*()
- * wrappers instead.
- */
- int (*_erase) (struct mtd_info *mtd, struct erase_info *instr);
- int (*_point) (struct mtd_info *mtd, loff_t from, size_t len,
- size_t *retlen, void **virt, resource_size_t *phys);
- int (*_unpoint) (struct mtd_info *mtd, loff_t from, size_t len);
- unsigned long (*_get_unmapped_area) (struct mtd_info *mtd,
- unsigned long len,
- unsigned long offset,
- unsigned long flags);
- int (*_read) (struct mtd_info *mtd, loff_t from, size_t len,
- size_t *retlen, u_char *buf);
- int (*_write) (struct mtd_info *mtd, loff_t to, size_t len,
- size_t *retlen, const u_char *buf);
- int (*_panic_write) (struct mtd_info *mtd, loff_t to, size_t len,
- size_t *retlen, const u_char *buf);
- int (*_read_oob) (struct mtd_info *mtd, loff_t from,
- struct mtd_oob_ops *ops);
- int (*read_bbinfo_facmk) (struct mtd_info *mtd, loff_t from,
- struct mtd_oob_ops *ops); //Vincent 20090526
- int (*_write_oob) (struct mtd_info *mtd, loff_t to,
- struct mtd_oob_ops *ops);
- int (*_get_fact_prot_info) (struct mtd_info *mtd, struct otp_info *buf,
- size_t len);
- int (*get_para) (struct mtd_info *mtd, int chip);
- int (*_read_fact_prot_reg) (struct mtd_info *mtd, loff_t from,
- size_t len, size_t *retlen, u_char *buf);
- int (*_get_user_prot_info) (struct mtd_info *mtd, struct otp_info *buf,
- size_t len);
- int (*_read_user_prot_reg) (struct mtd_info *mtd, loff_t from,
- size_t len, size_t *retlen, u_char *buf);
- int (*_write_user_prot_reg) (struct mtd_info *mtd, loff_t to,
- size_t len, size_t *retlen, u_char *buf);
- int (*_lock_user_prot_reg) (struct mtd_info *mtd, loff_t from,
- size_t len);
- int (*_writev) (struct mtd_info *mtd, const struct kvec *vecs,
- unsigned long count, loff_t to, size_t *retlen);
- void (*_sync) (struct mtd_info *mtd);
- int (*_lock) (struct mtd_info *mtd, loff_t ofs, uint64_t len);
- int (*_unlock) (struct mtd_info *mtd, loff_t ofs, uint64_t len);
- int (*_is_locked) (struct mtd_info *mtd, loff_t ofs, uint64_t len);
- int (*_block_isbad) (struct mtd_info *mtd, loff_t ofs);
- int (*_block_markbad) (struct mtd_info *mtd, loff_t ofs);
- int (*_suspend) (struct mtd_info *mtd);
- void (*_resume) (struct mtd_info *mtd);
- /*
- * If the driver is something smart, like UBI, it may need to maintain
- * its own reference counting. The below functions are only for driver.
- */
- int (*_get_device) (struct mtd_info *mtd);
- void (*_put_device) (struct mtd_info *mtd);
-
- /* Backing device capabilities for this device
- * - provides mmap capabilities
- */
- struct backing_dev_info *backing_dev_info;
-
- struct notifier_block reboot_notifier; /* default mode before reboot */
-
- /* ECC status information */
- struct mtd_ecc_stats ecc_stats;
- /* Subpage shift (NAND) */
- int subpage_sft;
-
- void *priv;
-
- struct module *owner;
- struct device dev;
- int usecount;
- int blkcnt;
- int pagecnt;
- int dwECCBitNum;
- int dwRetry;
- int dwRdmz;
- int dwDDR;
- int id;
- int id2;
- unsigned int spec_clk;
- int spec_tadl;
- int bbt_sw_rdmz;
- uint32_t pageSizek;
- int ecc_err_cnt;
- int ecc_err_level;
-};
-
-int mtd_erase(struct mtd_info *mtd, struct erase_info *instr);
-int mtd_point(struct mtd_info *mtd, loff_t from, size_t len, size_t *retlen,
- void **virt, resource_size_t *phys);
-int mtd_unpoint(struct mtd_info *mtd, loff_t from, size_t len);
-unsigned long mtd_get_unmapped_area(struct mtd_info *mtd, unsigned long len,
- unsigned long offset, unsigned long flags);
-int mtd_read(struct mtd_info *mtd, loff_t from, size_t len, size_t *retlen,
- u_char *buf);
-int mtd_write(struct mtd_info *mtd, loff_t to, size_t len, size_t *retlen,
- const u_char *buf);
-int mtd_panic_write(struct mtd_info *mtd, loff_t to, size_t len, size_t *retlen,
- const u_char *buf);
-
-static inline int mtd_read_oob(struct mtd_info *mtd, loff_t from,
- struct mtd_oob_ops *ops)
-{
- ops->retlen = ops->oobretlen = 0;
- if (!mtd->_read_oob)
- return -EOPNOTSUPP;
- return mtd->_read_oob(mtd, from, ops);
-}
-
-static inline int mtd_write_oob(struct mtd_info *mtd, loff_t to,
- struct mtd_oob_ops *ops)
-{
- ops->retlen = ops->oobretlen = 0;
- if (!mtd->_write_oob)
- return -EOPNOTSUPP;
- if (!(mtd->flags & MTD_WRITEABLE))
- return -EROFS;
- return mtd->_write_oob(mtd, to, ops);
-}
-
-int mtd_get_fact_prot_info(struct mtd_info *mtd, struct otp_info *buf,
- size_t len);
-int mtd_read_fact_prot_reg(struct mtd_info *mtd, loff_t from, size_t len,
- size_t *retlen, u_char *buf);
-int mtd_get_user_prot_info(struct mtd_info *mtd, struct otp_info *buf,
- size_t len);
-int mtd_read_user_prot_reg(struct mtd_info *mtd, loff_t from, size_t len,
- size_t *retlen, u_char *buf);
-int mtd_write_user_prot_reg(struct mtd_info *mtd, loff_t to, size_t len,
- size_t *retlen, u_char *buf);
-int mtd_lock_user_prot_reg(struct mtd_info *mtd, loff_t from, size_t len);
-
-int mtd_writev(struct mtd_info *mtd, const struct kvec *vecs,
- unsigned long count, loff_t to, size_t *retlen);
-
-static inline void mtd_sync(struct mtd_info *mtd)
-{
- if (mtd->_sync)
- mtd->_sync(mtd);
-}
-
-int mtd_lock(struct mtd_info *mtd, loff_t ofs, uint64_t len);
-int mtd_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len);
-int mtd_is_locked(struct mtd_info *mtd, loff_t ofs, uint64_t len);
-int mtd_block_isbad(struct mtd_info *mtd, loff_t ofs);
-int mtd_block_markbad(struct mtd_info *mtd, loff_t ofs);
-
-static inline int mtd_suspend(struct mtd_info *mtd)
-{
- return mtd->_suspend ? mtd->_suspend(mtd) : 0;
-}
-
-static inline void mtd_resume(struct mtd_info *mtd)
-{
- if (mtd->_resume)
- mtd->_resume(mtd);
-}
-
-static inline uint32_t mtd_div_by_eb(uint64_t sz, struct mtd_info *mtd)
-{
- if (mtd->erasesize_shift)
- return sz >> mtd->erasesize_shift;
- do_div(sz, mtd->erasesize);
- return sz;
-}
-
-static inline uint32_t mtd_mod_by_eb(uint64_t sz, struct mtd_info *mtd)
-{
- if (mtd->erasesize_shift)
- return sz & mtd->erasesize_mask;
- return do_div(sz, mtd->erasesize);
-}
-
-static inline uint32_t mtd_div_by_ws(uint64_t sz, struct mtd_info *mtd)
-{
- if (mtd->writesize_shift)
- return sz >> mtd->writesize_shift;
- do_div(sz, mtd->writesize);
- return sz;
-}
-
-static inline uint32_t mtd_mod_by_ws(uint64_t sz, struct mtd_info *mtd)
-{
- if (mtd->writesize_shift)
- return sz & mtd->writesize_mask;
- return do_div(sz, mtd->writesize);
-}
-
-static inline int mtd_has_oob(const struct mtd_info *mtd)
-{
- return mtd->_read_oob && mtd->_write_oob;
-}
-
-static inline int mtd_can_have_bb(const struct mtd_info *mtd)
-{
- return !!mtd->_block_isbad;
-}
-
- /* Kernel-side ioctl definitions */
-
-struct mtd_partition;
-struct mtd_part_parser_data;
-extern int add_mtd_device(struct mtd_info *mtd);
-extern int del_mtd_device (struct mtd_info *mtd);
-
-extern int mtd_device_parse_register(struct mtd_info *mtd,
- const char **part_probe_types,
- struct mtd_part_parser_data *parser_data,
- const struct mtd_partition *defparts,
- int defnr_parts);
-#define mtd_device_register(master, parts, nr_parts) \
- mtd_device_parse_register(master, NULL, NULL, parts, nr_parts)
-extern int mtd_device_unregister(struct mtd_info *master);
-extern struct mtd_info *get_mtd_device(struct mtd_info *mtd, int num);
-extern int __get_mtd_device(struct mtd_info *mtd);
-extern void __put_mtd_device(struct mtd_info *mtd);
-extern struct mtd_info *get_mtd_device_nm(const char *name);
-extern void put_mtd_device(struct mtd_info *mtd);
-typedef int (*SF_FPTR)(int l);
-extern SF_FPTR wmt_sf_prot;
-
-
-struct mtd_notifier {
- void (*add)(struct mtd_info *mtd);
- void (*remove)(struct mtd_info *mtd);
- struct list_head list;
-};
-
-
-extern void register_mtd_user (struct mtd_notifier *new);
-extern int unregister_mtd_user (struct mtd_notifier *old);
-void *mtd_kmalloc_up_to(const struct mtd_info *mtd, size_t *size);
-
-void mtd_erase_callback(struct erase_info *instr);
-
-static inline int mtd_is_bitflip(int err) {
- return err == -EUCLEAN;
-}
-
-static inline int mtd_is_eccerr(int err) {
- return err == -EBADMSG;
-}
-
-static inline int mtd_is_bitflip_or_eccerr(int err) {
- return mtd_is_bitflip(err) || mtd_is_eccerr(err);
-}
-
-#endif /* __MTD_MTD_H__ */
diff --git a/ANDROID_3.4.5/include/linux/mtd/mtdram.h b/ANDROID_3.4.5/include/linux/mtd/mtdram.h
deleted file mode 100644
index 68891313..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/mtdram.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef __MTD_MTDRAM_H__
-#define __MTD_MTDRAM_H__
-
-#include <linux/mtd/mtd.h>
-int mtdram_init_device(struct mtd_info *mtd, void *mapped_address,
- unsigned long size, char *name);
-
-#endif /* __MTD_MTDRAM_H__ */
diff --git a/ANDROID_3.4.5/include/linux/mtd/nand-gpio.h b/ANDROID_3.4.5/include/linux/mtd/nand-gpio.h
deleted file mode 100644
index 51534e50..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/nand-gpio.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef __LINUX_MTD_NAND_GPIO_H
-#define __LINUX_MTD_NAND_GPIO_H
-
-#include <linux/mtd/nand.h>
-
-struct gpio_nand_platdata {
- int gpio_nce;
- int gpio_nwp;
- int gpio_cle;
- int gpio_ale;
- int gpio_rdy;
- void (*adjust_parts)(struct gpio_nand_platdata *, size_t);
- struct mtd_partition *parts;
- unsigned int num_parts;
- unsigned int options;
- int chip_delay;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mtd/nand.h b/ANDROID_3.4.5/include/linux/mtd/nand.h
deleted file mode 100644
index 19eb23c1..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/nand.h
+++ /dev/null
@@ -1,828 +0,0 @@
-/*
- * linux/include/linux/mtd/nand.h
- *
- * Copyright © 2000-2010 David Woodhouse <dwmw2@infradead.org>
- * Steven J. Hill <sjhill@realitydiluted.com>
- * Thomas Gleixner <tglx@linutronix.de>
- *
- * 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.
- *
- * Info:
- * Contains standard defines and IDs for NAND flash devices
- *
- * Changelog:
- * See git changelog.
- */
-#ifndef __LINUX_MTD_NAND_H
-#define __LINUX_MTD_NAND_H
-
-#include <linux/wait.h>
-#include <linux/spinlock.h>
-#include <linux/mtd/mtd.h>
-#include <linux/mtd/flashchip.h>
-#include <linux/mtd/bbm.h>
-
-struct mtd_info;
-struct nand_flash_dev;
-/* Scan and identify a NAND device */
-extern int nand_scan(struct mtd_info *mtd, int max_chips);
-/*
- * Separate phases of nand_scan(), allowing board driver to intervene
- * and override command or ECC setup according to flash type.
- */
-extern int nand_scan_ident(struct mtd_info *mtd, int max_chips,
- struct nand_flash_dev *table);
-extern int nand_scan_tail(struct mtd_info *mtd);
-
-/* Free resources held by the NAND device */
-extern void nand_release(struct mtd_info *mtd);
-
-/* Internal helper for board drivers which need to override command function */
-extern void nand_wait_ready(struct mtd_info *mtd);
-
-/* locks all blocks present in the device */
-extern int nand_lock(struct mtd_info *mtd, loff_t ofs, uint64_t len);
-
-/* unlocks specified locked blocks */
-extern int nand_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len);
-
-/* The maximum number of NAND chips in an array */
-#define NAND_MAX_CHIPS 8
-
-/*
- * This constant declares the max. oobsize / page, which
- * is supported now. If you add a chip with bigger oobsize/page
- * adjust this accordingly.
- */
-#define NAND_MAX_OOBSIZE 2560
-#define NAND_MAX_PAGESIZE 32768
-
-/*
- * Constants for hardware specific CLE/ALE/NCE function
- *
- * These are bits which can be or'ed to set/clear multiple
- * bits in one go.
- */
-/* Select the chip by setting nCE to low */
-#define NAND_NCE 0x01
-/* Select the command latch by setting CLE to high */
-#define NAND_CLE 0x02
-/* Select the address latch by setting ALE to high */
-#define NAND_ALE 0x04
-
-#define NAND_CTRL_CLE (NAND_NCE | NAND_CLE)
-#define NAND_CTRL_ALE (NAND_NCE | NAND_ALE)
-#define NAND_CTRL_CHANGE 0x80
-
-/*
- * Standard NAND flash commands
- */
-#define NAND_CMD_READ0 0
-#define NAND_CMD_READ1 1
-#define NAND_CMD_RNDOUT 5
-#define NAND_CMD_PAGEPROG 0x10
-#define NAND_CMD_READOOB 0x50
-#define NAND_CMD_ERASE1 0x60
-#define NAND_CMD_STATUS 0x70
-#define NAND_CMD_STATUS_MULTI 0x71
-#define NAND_CMD_SEQIN 0x80
-#define NAND_CMD_RNDIN 0x85
-#define NAND_CMD_READID 0x90
-#define NAND_CMD_ERASE2 0xd0
-#define NAND_CMD_ERASE3 0xd1
-#define NAND_CMD_PARAM 0xec
-#define NAND_CMD_RESET 0xff
-#define NAND_CMD_RESET_NO_STATUS_READ 0xFF1
-#define NAND_CMD_HYNIX_RETRY_END 0x38
-
-#define NAND_CMD_LOCK 0x2a
-#define NAND_CMD_UNLOCK1 0x23
-#define NAND_CMD_UNLOCK2 0x24
-
-/* Extended commands for large page devices */
-#define NAND_CMD_READSTART 0x30
-#define NAND_CMD_RNDOUTSTART 0xE0
-#define NAND_CMD_CACHEDPROG 0x15
-
-/* Extended commands for AG-AND device */
-/*
- * Note: the command for NAND_CMD_DEPLETE1 is really 0x00 but
- * there is no way to distinguish that from NAND_CMD_READ0
- * until the remaining sequence of commands has been completed
- * so add a high order bit and mask it off in the command.
- */
-#define NAND_CMD_DEPLETE1 0x100
-#define NAND_CMD_DEPLETE2 0x38
-#define NAND_CMD_STATUS_MULTI 0x71
-#define NAND_CMD_STATUS_ERROR 0x72
-/* multi-bank error status (banks 0-3) */
-#define NAND_CMD_STATUS_ERROR0 0x73
-#define NAND_CMD_STATUS_ERROR1 0x74
-#define NAND_CMD_STATUS_ERROR2 0x75
-#define NAND_CMD_STATUS_ERROR3 0x76
-#define NAND_CMD_STATUS_RESET 0x7f
-#define NAND_CMD_STATUS_CLEAR 0xff
-
-#define MULTI_READ_1CYCLE 0x200
-#define MULTI_READ_2CYCLE 0x201
-#define MULTI_COPY_1CYCLE 0x202
-#define MULTI_COPY_2CYCLE 0x203
-#define MULTI_COPY_3CYCLE 0x204
-#define COPY_BACK_1CYCLE 0x205
-#define COPY_BACK_2CYCLE 0x206
-
-
-/*
- * Support Nand special commands
- */
-#define CACHE_READ (1<<0)
-#define CACHE_PROG (1<<1)
-#define COPY_BACK (1<<2)
-#define INTEL_COPY_BACK (1<<3)
-#define RANDOM_INPUT (1<<4)
-#define RANDOM_OUTPUT (1<<5)
-#define PLANE2_READ (1<<6)
-#define PLANE2_PROG (1<<7)
-#define PLANE2_CACHE_READ (1<<8)
-#define PLANE2_CACHE_PROG (1<<9)
-#define PLANE2_COPY_BACK (1<<10)
-#define PLANE2_INTEL_COPY_BACK (1<<11)
-#define PLANE2_RANDOM_OUTPUT (1<<12)
-#define PLANE2_ERASE (1<<13)
-
-#define PLANE4_READ (1<<16)
-#define PLANE4_PROG (1<<17)
-#define PLANE4_CACHE_READ (1<<18)
-#define PLANE4_CACHE_PROG (1<<19)
-#define PLANE4_COPY_BACK (1<<20)
-#define PLANE4_INTEL_COPY_BACK (1<<21)
-#define PLANE4_RANDOM_OUTPUT (1<<22)
-#define PLANE4_ERASE (1<<23)
-
-
-#define NAND_CMD_NONE -1
-
-/* Status bits */
-#define NAND_STATUS_FAIL 0x01
-#define NAND_STATUS_FAIL_N1 0x02
-#define NAND_STATUS_TRUE_READY 0x20
-#define NAND_STATUS_READY 0x40
-#define NAND_STATUS_WP 0x80
-
-/*
- * Constants for ECC_MODES
- */
-typedef enum {
- NAND_ECC_NONE,
- NAND_ECC_SOFT,
- NAND_ECC_HW,
- NAND_ECC_HW_SYNDROME,
- NAND_ECC_HW_OOB_FIRST,
- NAND_ECC_SOFT_BCH,
-} nand_ecc_modes_t;
-
-/*
- * Constants for Hardware ECC
- */
-/* Reset Hardware ECC for read */
-#define NAND_ECC_READ 0
-/* Reset Hardware ECC for write */
-#define NAND_ECC_WRITE 1
-/* Enable Hardware ECC before syndrome is read back from flash */
-#define NAND_ECC_READSYN 2
-
-/* Bit mask for flags passed to do_nand_read_ecc */
-#define NAND_GET_DEVICE 0x80
-
-
-/*
- * Option constants for bizarre disfunctionality and real
- * features.
- */
-/* Chip can not auto increment pages */
-#define NAND_NO_AUTOINCR 0x00000001
-/* Buswidth is 16 bit */
-#define NAND_BUSWIDTH_16 0x00000002
-/* Device supports partial programming without padding */
-#define NAND_NO_PADDING 0x00000004
-/* Chip has cache program function */
-#define NAND_CACHEPRG 0x00000008
-/* Chip has copy back function */
-#define NAND_COPYBACK 0x00000010
-/*
- * AND Chip which has 4 banks and a confusing page / block
- * assignment. See Renesas datasheet for further information.
- */
-#define NAND_IS_AND 0x00000020
-/*
- * Chip has a array of 4 pages which can be read without
- * additional ready /busy waits.
- */
-#define NAND_4PAGE_ARRAY 0x00000040
-/*
- * Chip requires that BBT is periodically rewritten to prevent
- * bits from adjacent blocks from 'leaking' in altering data.
- * This happens with the Renesas AG-AND chips, possibly others.
- */
-#define BBT_AUTO_REFRESH 0x00000080
-/*
- * Chip does not require ready check on read. True
- * for all large page devices, as they do not support
- * autoincrement.
- */
-#define NAND_NO_READRDY 0x00000100
-/* Chip does not allow subpage writes */
-#define NAND_NO_SUBPAGE_WRITE 0x00000200
-
-/* Device is one of 'new' xD cards that expose fake nand command set */
-#define NAND_BROKEN_XD 0x00000400
-
-/* Device behaves just like nand, but is readonly */
-#define NAND_ROM 0x00000800
-
-/* Options valid for Samsung large page devices */
-#define NAND_SAMSUNG_LP_OPTIONS \
- (NAND_NO_PADDING | NAND_CACHEPRG | NAND_COPYBACK)
-
-/* Macros to identify the above */
-#define NAND_CANAUTOINCR(chip) (!(chip->options & NAND_NO_AUTOINCR))
-#define NAND_MUST_PAD(chip) (!(chip->options & NAND_NO_PADDING))
-#define NAND_HAS_CACHEPROG(chip) ((chip->options & NAND_CACHEPRG))
-#define NAND_HAS_COPYBACK(chip) ((chip->options & NAND_COPYBACK))
-/* Large page NAND with SOFT_ECC should support subpage reads */
-#define NAND_SUBPAGE_READ(chip) ((chip->ecc.mode == NAND_ECC_SOFT) \
- && (chip->page_shift > 9))
-
-/* Mask to zero out the chip options, which come from the id table */
-#define NAND_CHIPOPTIONS_MSK (0x0000ffff & ~NAND_NO_AUTOINCR)
-
-/* Non chip related options */
-/* This option skips the bbt scan during initialization. */
-#define NAND_SKIP_BBTSCAN 0x00010000
-/*
- * This option is defined if the board driver allocates its own buffers
- * (e.g. because it needs them DMA-coherent).
- */
-#define NAND_OWN_BUFFERS 0x00020000
-/* Chip may not exist, so silence any errors in scan */
-#define NAND_SCAN_SILENT_NODEV 0x00040000
-
-/* Options set by nand scan */
-/* Nand scan has allocated controller struct */
-#define NAND_CONTROLLER_ALLOC 0x80000000
-
-/* Cell info constants */
-#define NAND_CI_CHIPNR_MSK 0x03
-#define NAND_CI_CELLTYPE_MSK 0x0C
-
-/* Keep gcc happy */
-struct nand_chip;
-
-struct nand_onfi_params {
- /* rev info and features block */
- /* 'O' 'N' 'F' 'I' */
- u8 sig[4];
- __le16 revision;
- __le16 features;
- __le16 opt_cmd;
- u8 reserved[22];
-
- /* manufacturer information block */
- char manufacturer[12];
- char model[20];
- u8 jedec_id;
- __le16 date_code;
- u8 reserved2[13];
-
- /* memory organization block */
- __le32 byte_per_page;
- __le16 spare_bytes_per_page;
- __le32 data_bytes_per_ppage;
- __le16 spare_bytes_per_ppage;
- __le32 pages_per_block;
- __le32 blocks_per_lun;
- u8 lun_count;
- u8 addr_cycles;
- u8 bits_per_cell;
- __le16 bb_per_lun;
- __le16 block_endurance;
- u8 guaranteed_good_blocks;
- __le16 guaranteed_block_endurance;
- u8 programs_per_page;
- u8 ppage_attr;
- u8 ecc_bits;
- u8 interleaved_bits;
- u8 interleaved_ops;
- u8 reserved3[13];
-
- /* electrical parameter block */
- u8 io_pin_capacitance_max;
- __le16 async_timing_mode;
- __le16 program_cache_timing_mode;
- __le16 t_prog;
- __le16 t_bers;
- __le16 t_r;
- __le16 t_ccs;
- __le16 src_sync_timing_mode;
- __le16 src_ssync_features;
- __le16 clk_pin_capacitance_typ;
- __le16 io_pin_capacitance_typ;
- __le16 input_pin_capacitance_typ;
- u8 input_pin_capacitance_max;
- u8 driver_strenght_support;
- __le16 t_int_r;
- __le16 t_ald;
- u8 reserved4[7];
-
- /* vendor */
- u8 reserved5[90];
-
- __le16 crc;
-} __attribute__((packed));
-
-#define ONFI_CRC_BASE 0x4F4E
-
-/**
- * struct nand_hw_control - Control structure for hardware controller (e.g ECC generator) shared among independent devices
- * @lock: protection lock
- * @active: the mtd device which holds the controller currently
- * @wq: wait queue to sleep on if a NAND operation is in
- * progress used instead of the per chip wait queue
- * when a hw controller is available.
- */
-struct nand_hw_control {
- spinlock_t lock;
- struct nand_chip *active;
- wait_queue_head_t wq;
-};
-
-/**
- * struct nand_ecc_ctrl - Control structure for ECC
- * @mode: ECC mode
- * @steps: number of ECC steps per page
- * @size: data bytes per ECC step
- * @bytes: ECC bytes per step
- * @strength: max number of correctible bits per ECC step
- * @total: total number of ECC bytes per page
- * @prepad: padding information for syndrome based ECC generators
- * @postpad: padding information for syndrome based ECC generators
- * @layout: ECC layout control struct pointer
- * @priv: pointer to private ECC control data
- * @hwctl: function to control hardware ECC generator. Must only
- * be provided if an hardware ECC is available
- * @calculate: function for ECC calculation or readback from ECC hardware
- * @correct: function for ECC correction, matching to ECC generator (sw/hw)
- * @read_page_raw: function to read a raw page without ECC
- * @write_page_raw: function to write a raw page without ECC
- * @read_page: function to read a page according to the ECC generator
- * requirements.
- * @read_subpage: function to read parts of the page covered by ECC.
- * @write_page: function to write a page according to the ECC generator
- * requirements.
- * @write_oob_raw: function to write chip OOB data without ECC
- * @read_oob_raw: function to read chip OOB data without ECC
- * @read_oob: function to read chip OOB data
- * @write_oob: function to write chip OOB data
- */
-struct nand_ecc_ctrl {
- nand_ecc_modes_t mode;
- int steps;
- int size;
- int bytes;
- int total;
- int strength;
- int prepad;
- int postpad;
- struct nand_ecclayout *layout;
- void *priv;
- void (*hwctl)(struct mtd_info *mtd, int mode);
- int (*calculate)(struct mtd_info *mtd, const uint8_t *dat,
- uint8_t *ecc_code);
- int (*correct)(struct mtd_info *mtd, uint8_t *dat, uint8_t *read_ecc,
- uint8_t *calc_ecc);
- int (*read_page_raw)(struct mtd_info *mtd, struct nand_chip *chip,
- uint8_t *buf, int page);
- void (*write_page_raw)(struct mtd_info *mtd, struct nand_chip *chip,
- const uint8_t *buf);
- int (*read_page)(struct mtd_info *mtd, struct nand_chip *chip,
- uint8_t *buf, int page);
- int (*read_subpage)(struct mtd_info *mtd, struct nand_chip *chip,
- uint32_t offs, uint32_t len, uint8_t *buf);
- void (*write_page)(struct mtd_info *mtd, struct nand_chip *chip,
- const uint8_t *buf);
- int (*write_oob_raw)(struct mtd_info *mtd, struct nand_chip *chip,
- int page);
- int (*read_oob_raw)(struct mtd_info *mtd, struct nand_chip *chip,
- int page, int sndcmd);
- int (*read_oob)(struct mtd_info *mtd, struct nand_chip *chip, int page,
- int sndcmd);
- int (*write_oob)(struct mtd_info *mtd, struct nand_chip *chip,
- int page);
- int (*read_bb_oob)(struct mtd_info *mtd,
- struct nand_chip *chip,
- int page,
- int sndcmd);
-};
-
-/**
- * struct nand_buffers - buffer structure for read/write
- * @ecccalc: buffer for calculated ECC
- * @ecccode: buffer for ECC read from flash
- * @databuf: buffer for data - dynamically sized
- *
- * Do not change the order of buffers. databuf and oobrbuf must be in
- * consecutive order.
- */
-struct nand_buffers {
- uint8_t ecccalc[NAND_MAX_OOBSIZE];
- uint8_t ecccode[NAND_MAX_OOBSIZE];
- uint8_t databuf[NAND_MAX_PAGESIZE + NAND_MAX_OOBSIZE];
-};
-
-/**
- * struct nand_chip - NAND Private Flash Chip Data
- * @IO_ADDR_R: [BOARDSPECIFIC] address to read the 8 I/O lines of the
- * flash device
- * @IO_ADDR_W: [BOARDSPECIFIC] address to write the 8 I/O lines of the
- * flash device.
- * @read_byte: [REPLACEABLE] read one byte from the chip
- * @read_word: [REPLACEABLE] read one word from the chip
- * @write_buf: [REPLACEABLE] write data from the buffer to the chip
- * @read_buf: [REPLACEABLE] read data from the chip into the buffer
- * @verify_buf: [REPLACEABLE] verify buffer contents against the chip
- * data.
- * @select_chip: [REPLACEABLE] select chip nr
- * @block_bad: [REPLACEABLE] check, if the block is bad
- * @block_markbad: [REPLACEABLE] mark the block bad
- * @cmd_ctrl: [BOARDSPECIFIC] hardwarespecific function for controlling
- * ALE/CLE/nCE. Also used to write command and address
- * @init_size: [BOARDSPECIFIC] hardwarespecific function for setting
- * mtd->oobsize, mtd->writesize and so on.
- * @id_data contains the 8 bytes values of NAND_CMD_READID.
- * Return with the bus width.
- * @dev_ready: [BOARDSPECIFIC] hardwarespecific function for accessing
- * device ready/busy line. If set to NULL no access to
- * ready/busy is available and the ready/busy information
- * is read from the chip status register.
- * @cmdfunc: [REPLACEABLE] hardwarespecific function for writing
- * commands to the chip.
- * @waitfunc: [REPLACEABLE] hardwarespecific function for wait on
- * ready.
- * @ecc: [BOARDSPECIFIC] ECC control structure
- * @buffers: buffer structure for read/write
- * @hwcontrol: platform-specific hardware control structure
- * @erase_cmd: [INTERN] erase command write function, selectable due
- * to AND support.
- * @scan_bbt: [REPLACEABLE] function to scan bad block table
- * @chip_delay: [BOARDSPECIFIC] chip dependent delay for transferring
- * data from array to read regs (tR).
- * @state: [INTERN] the current state of the NAND device
- * @oob_poi: "poison value buffer," used for laying out OOB data
- * before writing
- * @page_shift: [INTERN] number of address bits in a page (column
- * address bits).
- * @phys_erase_shift: [INTERN] number of address bits in a physical eraseblock
- * @bbt_erase_shift: [INTERN] number of address bits in a bbt entry
- * @chip_shift: [INTERN] number of address bits in one chip
- * @options: [BOARDSPECIFIC] various chip options. They can partly
- * be set to inform nand_scan about special functionality.
- * See the defines for further explanation.
- * @bbt_options: [INTERN] bad block specific options. All options used
- * here must come from bbm.h. By default, these options
- * will be copied to the appropriate nand_bbt_descr's.
- * @badblockpos: [INTERN] position of the bad block marker in the oob
- * area.
- * @badblockbits: [INTERN] minimum number of set bits in a good block's
- * bad block marker position; i.e., BBM == 11110111b is
- * not bad when badblockbits == 7
- * @cellinfo: [INTERN] MLC/multichip data from chip ident
- * @numchips: [INTERN] number of physical chips
- * @chipsize: [INTERN] the size of one chip for multichip arrays
- * @pagemask: [INTERN] page number mask = number of (pages / chip) - 1
- * @pagebuf: [INTERN] holds the pagenumber which is currently in
- * data_buf.
- * @subpagesize: [INTERN] holds the subpagesize
- * @onfi_version: [INTERN] holds the chip ONFI version (BCD encoded),
- * non 0 if ONFI supported.
- * @onfi_params: [INTERN] holds the ONFI page parameter when ONFI is
- * supported, 0 otherwise.
- * @ecclayout: [REPLACEABLE] the default ECC placement scheme
- * @bbt: [INTERN] bad block table pointer
- * @bbt_td: [REPLACEABLE] bad block table descriptor for flash
- * lookup.
- * @bbt_md: [REPLACEABLE] bad block table mirror descriptor
- * @badblock_pattern: [REPLACEABLE] bad block scan pattern used for initial
- * bad block scan.
- * @controller: [REPLACEABLE] a pointer to a hardware controller
- * structure which is shared among multiple independent
- * devices.
- * @priv: [OPTIONAL] pointer to private chip data
- * @errstat: [OPTIONAL] hardware specific function to perform
- * additional error status checks (determine if errors are
- * correctable).
- * @write_page: [REPLACEABLE] High-level page write function
- */
-
-struct nand_chip {
- void __iomem *IO_ADDR_R;
- void __iomem *IO_ADDR_W;
-
- uint8_t (*read_byte)(struct mtd_info *mtd);
- u16 (*read_word)(struct mtd_info *mtd);
- void (*write_buf)(struct mtd_info *mtd, const uint8_t *buf, int len);
- void (*read_buf)(struct mtd_info *mtd, uint8_t *buf, int len);
- int (*verify_buf)(struct mtd_info *mtd, const uint8_t *buf, int len);
- void (*select_chip)(struct mtd_info *mtd, int chip);
- int (*block_bad)(struct mtd_info *mtd, loff_t ofs, int getchip);
- int (*block_markbad)(struct mtd_info *mtd, loff_t ofs, int type);
- void (*cmd_ctrl)(struct mtd_info *mtd, int dat, unsigned int ctrl);
- int (*init_size)(struct mtd_info *mtd, struct nand_chip *this,
- u8 *id_data);
- int (*dev_ready)(struct mtd_info *mtd);
- void (*cmdfunc)(struct mtd_info *mtd, unsigned command, int column,
- int page_addr);
- int(*waitfunc)(struct mtd_info *mtd, struct nand_chip *this);
- void (*erase_cmd)(struct mtd_info *mtd, int page);
- int (*scan_bbt)(struct mtd_info *mtd);
- int (*errstat)(struct mtd_info *mtd, struct nand_chip *this, int state,
- int status, int page);
- int (*write_page)(struct mtd_info *mtd, struct nand_chip *chip,
- const uint8_t *buf, int page, int cached, int raw);
- int (*get_para)(struct mtd_info *mtd, struct nand_chip *chip);
-
- int chip_delay;
- unsigned int options;
- unsigned int bbt_options;
-
- int page_shift;
- int pagecnt_shift;
- int phys_erase_shift;
- int bbt_erase_shift;
- int chip_shift;
- int numchips;
- uint64_t chipsize;
- int pagemask;
- int pagebuf;
- int subpagesize;
- uint8_t cellinfo;
- int badblockpos;
- int badblockbits;
-
- int onfi_version;
- struct nand_onfi_params onfi_params;
-
- flstate_t state;
-
- uint8_t *oob_poi;
- struct nand_hw_control *controller;
- struct nand_ecclayout *ecclayout;
-
- struct nand_ecc_ctrl ecc;
- struct nand_buffers *buffers;
- struct nand_hw_control hwcontrol;
-
- uint8_t *bbt;
- struct nand_bbt_descr *bbt_td;
- struct nand_bbt_descr *bbt_md;
-
- struct nand_bbt_descr *badblock_pattern;
- struct nand_bbt_descr *retry_pattern;
- int page_offset[2];
- struct nand_read_retry_param *cur_chip;
- int realplanenum;
- int bbt_plane[2];
- int status_plane[2];
-
- void *priv;
-};
-
-/*
- * NAND Flash Manufacturer ID Codes
- */
-#define NAND_MFR_TOSHIBA 0x98
-#define NAND_MFR_SAMSUNG 0xec
-#define NAND_MFR_FUJITSU 0x04
-#define NAND_MFR_NATIONAL 0x8f
-#define NAND_MFR_RENESAS 0x07
-#define NAND_MFR_STMICRO 0x20
-#define NAND_MFR_HYNIX 0xad
-#define NAND_MFR_MICRON 0x2c
-#define NAND_MFR_SANDISK 0x45
-#define NAND_MFR_AMD 0x01
-#define NAND_MFR_INTEL 0x89
-#define NAND_MFR_MXIC 0xc2
-#define NAND_MFR_MIRA 0x92
-#define NAND_MFR_MACRONIX 0xc2
-
-/**
- * struct nand_flash_dev - NAND Flash Device ID Structure
- * @name: Identify the device type
- * @id: device ID code
- * @pagesize: Pagesize in bytes. Either 256 or 512 or 0
- * If the pagesize is 0, then the real pagesize
- * and the eraseize are determined from the
- * extended id bytes in the chip
- * @erasesize: Size of an erase block in the flash device.
- * @chipsize: Total chipsize in Mega Bytes
- * @options: Bitfield to store chip relevant options
- */
-struct nand_flash_dev {
- char *name;
- int id;
- unsigned long pagesize;
- unsigned long chipsize;
- unsigned long erasesize;
- unsigned long options;
-};
-
-#define BOOT_MAGIC_SIZE 0x8
-struct nand_rdtry_param_hdr {
- unsigned char magic[BOOT_MAGIC_SIZE];
- unsigned int nand_id; //nand id
- unsigned int nand_id_5th; //nand 5th id
- unsigned int eslc_reg_cnt; // Enhanced SLC register count.
- unsigned int total_retry_cnt; // total retry count
- unsigned int retry_reg_cnt; // retry register count
- //unsigned char eslc[eslc_reg]; //eslc default data.
- //unsigned char retry_data[total_retry_cnt * retry_reg_cnt]; /* param data */
-};
-//All
-struct nand_read_retry_param {
- char magic[32];
- unsigned int nand_id;
- unsigned int nand_id_5th;
- unsigned int eslc_reg_num;
- unsigned char eslc_offset[32];
- unsigned char eslc_def_value[32];
- unsigned char eslc_set_value[32];
- unsigned int retry_reg_num;
- unsigned char retry_offset[32];
- unsigned char retry_def_value[32];
- unsigned char retry_value[256];
- unsigned int otp_len;
- unsigned char otp_offset[32];
- unsigned char otp_data[32];
- unsigned int total_try_times;
- int cur_try_times;
- int (*set_parameter)(struct mtd_info *mtd, int mode, int def_mode);
- int (*get_parameter)(struct mtd_info *mtd, int mode);
- int (*get_otp_table)(struct mtd_info *mtd, struct nand_chip *chip);
- int retry; //1: in retry mode
-};
-/* #define RETRY_DEBUG */
-
-
-/* DannierChen-2009-10-07 add for new nand flash support list */
-#ifndef DWORD
-#define DWORD unsigned int
-#endif
-#define MAX_PRODUCT_NAME_LENGTH 0x20
-struct WMT_nand_flash_dev {
- DWORD dwFlashID; //composed by 4 bytes of ID. For example:0xADF1801D
- DWORD dwBlockCount; //block count of one chip. For example: 1024
- DWORD dwPageSize; //page size. For example:2048(other value can be 512 or 4096)
- DWORD dwSpareSize; //spare area size. For example:16(almost all kinds of nand is 16)
- DWORD dwBlockSize; //block size = dwPageSize * PageCntPerBlock. For example:131072
- DWORD dwAddressCycle; //address cycle 4 or 5
- DWORD dwBI0Position; //BI0 page postion in block
- DWORD dwBI1Position; //BI1 page postion in block
- DWORD dwBIOffset; //BI offset in page
- DWORD dwDataWidth; //data with X8 or X16
- DWORD dwPageProgramLimit; //chip can program PAGE_PROGRAM_LIMIT times within the same page
- DWORD dwSeqRowReadSupport; //whether support sequential row read, 1 = support 0 = not support
- DWORD dwSeqPageProgram; //chip need sequential page program in a block. 1 = need
- DWORD dwNandType; //MLC or SLC
- DWORD dwECCBitNum; //ECC bit number needed
- DWORD dwRWTimming; //NFC Read Pulse width and Read hold time, write so does. default =0x12101210
- DWORD dwTadl; //NFC write TADL timeing config
- DWORD dwDDR; //NFC support toshia ddr(toggle) mode = 1 not support = 0
- DWORD dwRetry; //NFC Read Retry support = 1 not support = 0
- DWORD dwRdmz; //NFC Randomizer support = 1 not support = 0
- DWORD dwFlashID2; //composed by additional 2 bytes of ID from original 4 bytes.
- DWORD dwSpeedUpCmd; /* supprot speed up nand command ex: 2-plane cache read and so on.. */
- char ProductName[MAX_PRODUCT_NAME_LENGTH]; //product name. for example "HYNIX_NF_HY27UF081G2A"
- unsigned long options;
-};
-/**
- * struct nand_manufacturers - NAND Flash Manufacturer ID Structure
- * @name: Manufacturer name
- * @id: manufacturer ID code of device.
-*/
-struct nand_manufacturers {
- int id;
- char *name;
-};
-
-extern struct WMT_nand_flash_dev WMT_nand_flash_ids[];
-extern struct nand_flash_dev nand_flash_ids[];
-extern struct nand_manufacturers nand_manuf_ids[];
-
-extern int nand_scan_bbt(struct mtd_info *mtd, struct nand_bbt_descr *bd);
-extern int nand_update_bbt(struct mtd_info *mtd, loff_t offs);
-extern int nand_default_bbt(struct mtd_info *mtd);
-extern int nand_isbad_bbt(struct mtd_info *mtd, loff_t offs, int allowbbt, int allow_readfail);
-extern int nand_isbad_bbt_multi(struct mtd_info *mtd, loff_t offs, int allowbbt, int allow_readfail);
-extern int nand_erase_nand(struct mtd_info *mtd, struct erase_info *instr,
- int allowbbt);
-extern int nand_do_read(struct mtd_info *mtd, loff_t from, size_t len,
- size_t *retlen, uint8_t *buf);
-extern struct nand_read_retry_param chip_table[];
-extern int hynix_get_parameter(struct mtd_info *mtd, int mode);
-extern int hynix_set_parameter(struct mtd_info *mtd, int mode, int def_mode);
-extern int hynix_get_otp(struct mtd_info *mtd, struct nand_chip *chip);
-extern int toshiba_get_parameter(struct mtd_info *mtd, int mode);
-extern int toshiba_set_parameter(struct mtd_info *mtd, int mode, int def_mode);
-extern int samsung_get_parameter(struct mtd_info *mtd, int mode);
-extern int samsung_set_parameter(struct mtd_info *mtd, int mode, int def_mode);
-extern int sandisk_get_parameter(struct mtd_info *mtd, int mode);
-extern int sandisk_set_parameter(struct mtd_info *mtd, int mode, int def_mode);
-extern int micron_get_parameter(struct mtd_info *mtd, int mode);
-extern int micron_set_parameter(struct mtd_info *mtd, int mode, int def_mode);
-
-
-
-#ifndef ARRAY_SIZE
-#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
-#endif
-#define READ_RETRY_CHIP_NUM ARRAY_SIZE(chip_table)
-#define ESLC_MODE 0
-#define READ_RETRY_MODE 1
-#define TEST_MODE 2
-#define DEFAULT_VALUE 0
-#define ECC_ERROR_VALUE 1
-/**
- * struct platform_nand_chip - chip level device structure
- * @nr_chips: max. number of chips to scan for
- * @chip_offset: chip number offset
- * @nr_partitions: number of partitions pointed to by partitions (or zero)
- * @partitions: mtd partition list
- * @chip_delay: R/B delay value in us
- * @options: Option flags, e.g. 16bit buswidth
- * @bbt_options: BBT option flags, e.g. NAND_BBT_USE_FLASH
- * @ecclayout: ECC layout info structure
- * @part_probe_types: NULL-terminated array of probe types
- */
-struct platform_nand_chip {
- int nr_chips;
- int chip_offset;
- int nr_partitions;
- struct mtd_partition *partitions;
- struct nand_ecclayout *ecclayout;
- int chip_delay;
- unsigned int options;
- unsigned int bbt_options;
- const char **part_probe_types;
-};
-
-/* Keep gcc happy */
-struct platform_device;
-
-/**
- * struct platform_nand_ctrl - controller level device structure
- * @probe: platform specific function to probe/setup hardware
- * @remove: platform specific function to remove/teardown hardware
- * @hwcontrol: platform specific hardware control structure
- * @dev_ready: platform specific function to read ready/busy pin
- * @select_chip: platform specific chip select function
- * @cmd_ctrl: platform specific function for controlling
- * ALE/CLE/nCE. Also used to write command and address
- * @write_buf: platform specific function for write buffer
- * @read_buf: platform specific function for read buffer
- * @priv: private data to transport driver specific settings
- *
- * All fields are optional and depend on the hardware driver requirements
- */
-struct platform_nand_ctrl {
- int (*probe)(struct platform_device *pdev);
- void (*remove)(struct platform_device *pdev);
- void (*hwcontrol)(struct mtd_info *mtd, int cmd);
- int (*dev_ready)(struct mtd_info *mtd);
- void (*select_chip)(struct mtd_info *mtd, int chip);
- void (*cmd_ctrl)(struct mtd_info *mtd, int dat, unsigned int ctrl);
- void (*write_buf)(struct mtd_info *mtd, const uint8_t *buf, int len);
- void (*read_buf)(struct mtd_info *mtd, uint8_t *buf, int len);
- void *priv;
-};
-
-/**
- * struct platform_nand_data - container structure for platform-specific data
- * @chip: chip level chip structure
- * @ctrl: controller level device structure
- */
-struct platform_nand_data {
- struct platform_nand_chip chip;
- struct platform_nand_ctrl ctrl;
-};
-
-/* Some helpers to access the data structures */
-static inline
-struct platform_nand_chip *get_platform_nandchip(struct mtd_info *mtd)
-{
- struct nand_chip *chip = mtd->priv;
-
- return chip->priv;
-}
-
-#endif /* __LINUX_MTD_NAND_H */
diff --git a/ANDROID_3.4.5/include/linux/mtd/nand_bch.h b/ANDROID_3.4.5/include/linux/mtd/nand_bch.h
deleted file mode 100644
index 74acf536..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/nand_bch.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright © 2011 Ivan Djelic <ivan.djelic@parrot.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.
- *
- * This file is the header for the NAND BCH ECC implementation.
- */
-
-#ifndef __MTD_NAND_BCH_H__
-#define __MTD_NAND_BCH_H__
-
-struct mtd_info;
-struct nand_bch_control;
-
-#if defined(CONFIG_MTD_NAND_ECC_BCH)
-
-static inline int mtd_nand_has_bch(void) { return 1; }
-
-/*
- * Calculate BCH ecc code
- */
-int nand_bch_calculate_ecc(struct mtd_info *mtd, const u_char *dat,
- u_char *ecc_code);
-
-/*
- * Detect and correct bit errors
- */
-int nand_bch_correct_data(struct mtd_info *mtd, u_char *dat, u_char *read_ecc,
- u_char *calc_ecc);
-/*
- * Initialize BCH encoder/decoder
- */
-struct nand_bch_control *
-nand_bch_init(struct mtd_info *mtd, unsigned int eccsize,
- unsigned int eccbytes, struct nand_ecclayout **ecclayout);
-/*
- * Release BCH encoder/decoder resources
- */
-void nand_bch_free(struct nand_bch_control *nbc);
-
-#else /* !CONFIG_MTD_NAND_ECC_BCH */
-
-static inline int mtd_nand_has_bch(void) { return 0; }
-
-static inline int
-nand_bch_calculate_ecc(struct mtd_info *mtd, const u_char *dat,
- u_char *ecc_code)
-{
- return -1;
-}
-
-static inline int
-nand_bch_correct_data(struct mtd_info *mtd, unsigned char *buf,
- unsigned char *read_ecc, unsigned char *calc_ecc)
-{
- return -1;
-}
-
-static inline struct nand_bch_control *
-nand_bch_init(struct mtd_info *mtd, unsigned int eccsize,
- unsigned int eccbytes, struct nand_ecclayout **ecclayout)
-{
- return NULL;
-}
-
-static inline void nand_bch_free(struct nand_bch_control *nbc) {}
-
-#endif /* CONFIG_MTD_NAND_ECC_BCH */
-
-#endif /* __MTD_NAND_BCH_H__ */
diff --git a/ANDROID_3.4.5/include/linux/mtd/nand_ecc.h b/ANDROID_3.4.5/include/linux/mtd/nand_ecc.h
deleted file mode 100644
index 4d8406c8..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/nand_ecc.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * drivers/mtd/nand_ecc.h
- *
- * Copyright (C) 2000-2010 Steven J. Hill <sjhill@realitydiluted.com>
- * David Woodhouse <dwmw2@infradead.org>
- * Thomas Gleixner <tglx@linutronix.de>
- *
- * 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.
- *
- * This file is the header for the ECC algorithm.
- */
-
-#ifndef __MTD_NAND_ECC_H__
-#define __MTD_NAND_ECC_H__
-
-struct mtd_info;
-
-/*
- * Calculate 3 byte ECC code for eccsize byte block
- */
-void __nand_calculate_ecc(const u_char *dat, unsigned int eccsize,
- u_char *ecc_code);
-
-/*
- * Calculate 3 byte ECC code for 256/512 byte block
- */
-int nand_calculate_ecc(struct mtd_info *mtd, const u_char *dat, u_char *ecc_code);
-
-/*
- * Detect and correct a 1 bit error for eccsize byte block
- */
-int __nand_correct_data(u_char *dat, u_char *read_ecc, u_char *calc_ecc,
- unsigned int eccsize);
-
-/*
- * Detect and correct a 1 bit error for 256/512 byte block
- */
-int nand_correct_data(struct mtd_info *mtd, u_char *dat, u_char *read_ecc, u_char *calc_ecc);
-
-#endif /* __MTD_NAND_ECC_H__ */
diff --git a/ANDROID_3.4.5/include/linux/mtd/ndfc.h b/ANDROID_3.4.5/include/linux/mtd/ndfc.h
deleted file mode 100644
index d0558a98..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/ndfc.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * linux/include/linux/mtd/ndfc.h
- *
- * Copyright (c) 2006 Thomas Gleixner <tglx@linutronix.de>
- *
- * 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.
- *
- * Info:
- * Contains defines, datastructures for ndfc nand controller
- *
- */
-#ifndef __LINUX_MTD_NDFC_H
-#define __LINUX_MTD_NDFC_H
-
-/* NDFC Register definitions */
-#define NDFC_CMD 0x00
-#define NDFC_ALE 0x04
-#define NDFC_DATA 0x08
-#define NDFC_ECC 0x10
-#define NDFC_BCFG0 0x30
-#define NDFC_BCFG1 0x34
-#define NDFC_BCFG2 0x38
-#define NDFC_BCFG3 0x3c
-#define NDFC_CCR 0x40
-#define NDFC_STAT 0x44
-#define NDFC_HWCTL 0x48
-#define NDFC_REVID 0x50
-
-#define NDFC_STAT_IS_READY 0x01000000
-
-#define NDFC_CCR_RESET_CE 0x80000000 /* CE Reset */
-#define NDFC_CCR_RESET_ECC 0x40000000 /* ECC Reset */
-#define NDFC_CCR_RIE 0x20000000 /* Interrupt Enable on Device Rdy */
-#define NDFC_CCR_REN 0x10000000 /* Enable wait for Rdy in LinearR */
-#define NDFC_CCR_ROMEN 0x08000000 /* Enable ROM In LinearR */
-#define NDFC_CCR_ARE 0x04000000 /* Auto-Read Enable */
-#define NDFC_CCR_BS(x) (((x) & 0x3) << 24) /* Select Bank on CE[x] */
-#define NDFC_CCR_BS_MASK 0x03000000 /* Select Bank */
-#define NDFC_CCR_ARAC0 0x00000000 /* 3 Addr, 1 Col 2 Row 512b page */
-#define NDFC_CCR_ARAC1 0x00001000 /* 4 Addr, 1 Col 3 Row 512b page */
-#define NDFC_CCR_ARAC2 0x00002000 /* 4 Addr, 2 Col 2 Row 2K page */
-#define NDFC_CCR_ARAC3 0x00003000 /* 5 Addr, 2 Col 3 Row 2K page */
-#define NDFC_CCR_ARAC_MASK 0x00003000 /* Auto-Read mode Addr Cycles */
-#define NDFC_CCR_RPG 0x0000C000 /* Auto-Read Page */
-#define NDFC_CCR_EBCC 0x00000004 /* EBC Configuration Completed */
-#define NDFC_CCR_DHC 0x00000002 /* Direct Hardware Control Enable */
-
-#define NDFC_BxCFG_EN 0x80000000 /* Bank Enable */
-#define NDFC_BxCFG_CED 0x40000000 /* nCE Style */
-#define NDFC_BxCFG_SZ_MASK 0x08000000 /* Bank Size */
-#define NDFC_BxCFG_SZ_8BIT 0x00000000 /* 8bit */
-#define NDFC_BxCFG_SZ_16BIT 0x08000000 /* 16bit */
-
-#define NDFC_MAX_BANKS 4
-
-struct ndfc_controller_settings {
- uint32_t ccr_settings;
- uint64_t ndfc_erpn;
-};
-
-struct ndfc_chip_settings {
- uint32_t bank_settings;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mtd/nftl.h b/ANDROID_3.4.5/include/linux/mtd/nftl.h
deleted file mode 100644
index b059629e..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/nftl.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright © 1999-2010 David Woodhouse <dwmw2@infradead.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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef __MTD_NFTL_H__
-#define __MTD_NFTL_H__
-
-#include <linux/mtd/mtd.h>
-#include <linux/mtd/blktrans.h>
-
-#include <mtd/nftl-user.h>
-
-/* these info are used in ReplUnitTable */
-#define BLOCK_NIL 0xffff /* last block of a chain */
-#define BLOCK_FREE 0xfffe /* free block */
-#define BLOCK_NOTEXPLORED 0xfffd /* non explored block, only used during mounting */
-#define BLOCK_RESERVED 0xfffc /* bios block or bad block */
-
-struct NFTLrecord {
- struct mtd_blktrans_dev mbd;
- __u16 MediaUnit, SpareMediaUnit;
- __u32 EraseSize;
- struct NFTLMediaHeader MediaHdr;
- int usecount;
- unsigned char heads;
- unsigned char sectors;
- unsigned short cylinders;
- __u16 numvunits;
- __u16 lastEUN; /* should be suppressed */
- __u16 numfreeEUNs;
- __u16 LastFreeEUN; /* To speed up finding a free EUN */
- int head,sect,cyl;
- __u16 *EUNtable; /* [numvunits]: First EUN for each virtual unit */
- __u16 *ReplUnitTable; /* [numEUNs]: ReplUnitNumber for each */
- unsigned int nb_blocks; /* number of physical blocks */
- unsigned int nb_boot_blocks; /* number of blocks used by the bios */
- struct erase_info instr;
- struct nand_ecclayout oobinfo;
-};
-
-int NFTL_mount(struct NFTLrecord *s);
-int NFTL_formatblock(struct NFTLrecord *s, int block);
-
-int nftl_read_oob(struct mtd_info *mtd, loff_t offs, size_t len,
- size_t *retlen, uint8_t *buf);
-int nftl_write_oob(struct mtd_info *mtd, loff_t offs, size_t len,
- size_t *retlen, uint8_t *buf);
-
-#ifndef NFTL_MAJOR
-#define NFTL_MAJOR 93
-#endif
-
-#define MAX_NFTLS 16
-#define MAX_SECTORS_PER_UNIT 64
-#define NFTL_PARTN_BITS 4
-
-#endif /* __MTD_NFTL_H__ */
diff --git a/ANDROID_3.4.5/include/linux/mtd/onenand.h b/ANDROID_3.4.5/include/linux/mtd/onenand.h
deleted file mode 100644
index 4596503c..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/onenand.h
+++ /dev/null
@@ -1,242 +0,0 @@
-/*
- * linux/include/linux/mtd/onenand.h
- *
- * Copyright © 2005-2009 Samsung Electronics
- * Kyungmin Park <kyungmin.park@samsung.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.
- */
-
-#ifndef __LINUX_MTD_ONENAND_H
-#define __LINUX_MTD_ONENAND_H
-
-#include <linux/spinlock.h>
-#include <linux/completion.h>
-#include <linux/mtd/flashchip.h>
-#include <linux/mtd/onenand_regs.h>
-#include <linux/mtd/bbm.h>
-
-#define MAX_DIES 2
-#define MAX_BUFFERRAM 2
-
-/* Scan and identify a OneNAND device */
-extern int onenand_scan(struct mtd_info *mtd, int max_chips);
-/* Free resources held by the OneNAND device */
-extern void onenand_release(struct mtd_info *mtd);
-
-/**
- * struct onenand_bufferram - OneNAND BufferRAM Data
- * @blockpage: block & page address in BufferRAM
- */
-struct onenand_bufferram {
- int blockpage;
-};
-
-/**
- * struct onenand_chip - OneNAND Private Flash Chip Data
- * @base: [BOARDSPECIFIC] address to access OneNAND
- * @dies: [INTERN][FLEX-ONENAND] number of dies on chip
- * @boundary: [INTERN][FLEX-ONENAND] Boundary of the dies
- * @diesize: [INTERN][FLEX-ONENAND] Size of the dies
- * @chipsize: [INTERN] the size of one chip for multichip arrays
- * FIXME For Flex-OneNAND, chipsize holds maximum possible
- * device size ie when all blocks are considered MLC
- * @device_id: [INTERN] device ID
- * @density_mask: chip density, used for DDP devices
- * @verstion_id: [INTERN] version ID
- * @options: [BOARDSPECIFIC] various chip options. They can
- * partly be set to inform onenand_scan about
- * @erase_shift: [INTERN] number of address bits in a block
- * @page_shift: [INTERN] number of address bits in a page
- * @page_mask: [INTERN] a page per block mask
- * @writesize: [INTERN] a real page size
- * @bufferram_index: [INTERN] BufferRAM index
- * @bufferram: [INTERN] BufferRAM info
- * @readw: [REPLACEABLE] hardware specific function for read short
- * @writew: [REPLACEABLE] hardware specific function for write short
- * @command: [REPLACEABLE] hardware specific function for writing
- * commands to the chip
- * @wait: [REPLACEABLE] hardware specific function for wait on ready
- * @bbt_wait: [REPLACEABLE] hardware specific function for bbt wait on ready
- * @unlock_all: [REPLACEABLE] hardware specific function for unlock all
- * @read_bufferram: [REPLACEABLE] hardware specific function for BufferRAM Area
- * @write_bufferram: [REPLACEABLE] hardware specific function for BufferRAM Area
- * @read_word: [REPLACEABLE] hardware specific function for read
- * register of OneNAND
- * @write_word: [REPLACEABLE] hardware specific function for write
- * register of OneNAND
- * @mmcontrol: sync burst read function
- * @chip_probe: [REPLACEABLE] hardware specific function for chip probe
- * @block_markbad: function to mark a block as bad
- * @scan_bbt: [REPLACEALBE] hardware specific function for scanning
- * Bad block Table
- * @chip_lock: [INTERN] spinlock used to protect access to this
- * structure and the chip
- * @wq: [INTERN] wait queue to sleep on if a OneNAND
- * operation is in progress
- * @state: [INTERN] the current state of the OneNAND device
- * @page_buf: [INTERN] page main data buffer
- * @oob_buf: [INTERN] page oob data buffer
- * @subpagesize: [INTERN] holds the subpagesize
- * @ecclayout: [REPLACEABLE] the default ecc placement scheme
- * @bbm: [REPLACEABLE] pointer to Bad Block Management
- * @priv: [OPTIONAL] pointer to private chip date
- */
-struct onenand_chip {
- void __iomem *base;
- unsigned dies;
- unsigned boundary[MAX_DIES];
- loff_t diesize[MAX_DIES];
- unsigned int chipsize;
- unsigned int device_id;
- unsigned int version_id;
- unsigned int technology;
- unsigned int density_mask;
- unsigned int options;
-
- unsigned int erase_shift;
- unsigned int page_shift;
- unsigned int page_mask;
- unsigned int writesize;
-
- unsigned int bufferram_index;
- struct onenand_bufferram bufferram[MAX_BUFFERRAM];
-
- int (*command)(struct mtd_info *mtd, int cmd, loff_t address, size_t len);
- int (*wait)(struct mtd_info *mtd, int state);
- int (*bbt_wait)(struct mtd_info *mtd, int state);
- void (*unlock_all)(struct mtd_info *mtd);
- int (*read_bufferram)(struct mtd_info *mtd, int area,
- unsigned char *buffer, int offset, size_t count);
- int (*write_bufferram)(struct mtd_info *mtd, int area,
- const unsigned char *buffer, int offset, size_t count);
- unsigned short (*read_word)(void __iomem *addr);
- void (*write_word)(unsigned short value, void __iomem *addr);
- void (*mmcontrol)(struct mtd_info *mtd, int sync_read);
- int (*chip_probe)(struct mtd_info *mtd);
- int (*block_markbad)(struct mtd_info *mtd, loff_t ofs);
- int (*scan_bbt)(struct mtd_info *mtd);
- int (*enable)(struct mtd_info *mtd);
- int (*disable)(struct mtd_info *mtd);
-
- struct completion complete;
- int irq;
-
- spinlock_t chip_lock;
- wait_queue_head_t wq;
- flstate_t state;
- unsigned char *page_buf;
- unsigned char *oob_buf;
-#ifdef CONFIG_MTD_ONENAND_VERIFY_WRITE
- unsigned char *verify_buf;
-#endif
-
- int subpagesize;
- struct nand_ecclayout *ecclayout;
-
- void *bbm;
-
- void *priv;
-
- /*
- * Shows that the current operation is composed
- * of sequence of commands. For example, cache program.
- * Such command status OnGo bit is checked at the end of
- * sequence.
- */
- unsigned int ongoing;
-};
-
-/*
- * Helper macros
- */
-#define ONENAND_PAGES_PER_BLOCK (1<<6)
-
-#define ONENAND_CURRENT_BUFFERRAM(this) (this->bufferram_index)
-#define ONENAND_NEXT_BUFFERRAM(this) (this->bufferram_index ^ 1)
-#define ONENAND_SET_NEXT_BUFFERRAM(this) (this->bufferram_index ^= 1)
-#define ONENAND_SET_PREV_BUFFERRAM(this) (this->bufferram_index ^= 1)
-#define ONENAND_SET_BUFFERRAM0(this) (this->bufferram_index = 0)
-#define ONENAND_SET_BUFFERRAM1(this) (this->bufferram_index = 1)
-
-#define FLEXONENAND(this) \
- (this->device_id & DEVICE_IS_FLEXONENAND)
-#define ONENAND_GET_SYS_CFG1(this) \
- (this->read_word(this->base + ONENAND_REG_SYS_CFG1))
-#define ONENAND_SET_SYS_CFG1(v, this) \
- (this->write_word(v, this->base + ONENAND_REG_SYS_CFG1))
-
-#define ONENAND_IS_DDP(this) \
- (this->device_id & ONENAND_DEVICE_IS_DDP)
-
-#define ONENAND_IS_MLC(this) \
- (this->technology & ONENAND_TECHNOLOGY_IS_MLC)
-
-#ifdef CONFIG_MTD_ONENAND_2X_PROGRAM
-#define ONENAND_IS_2PLANE(this) \
- (this->options & ONENAND_HAS_2PLANE)
-#else
-#define ONENAND_IS_2PLANE(this) (0)
-#endif
-
-#define ONENAND_IS_CACHE_PROGRAM(this) \
- (this->options & ONENAND_HAS_CACHE_PROGRAM)
-
-#define ONENAND_IS_NOP_1(this) \
- (this->options & ONENAND_HAS_NOP_1)
-
-/* Check byte access in OneNAND */
-#define ONENAND_CHECK_BYTE_ACCESS(addr) (addr & 0x1)
-
-/*
- * Options bits
- */
-#define ONENAND_HAS_CONT_LOCK (0x0001)
-#define ONENAND_HAS_UNLOCK_ALL (0x0002)
-#define ONENAND_HAS_2PLANE (0x0004)
-#define ONENAND_HAS_4KB_PAGE (0x0008)
-#define ONENAND_HAS_CACHE_PROGRAM (0x0010)
-#define ONENAND_HAS_NOP_1 (0x0020)
-#define ONENAND_SKIP_UNLOCK_CHECK (0x0100)
-#define ONENAND_PAGEBUF_ALLOC (0x1000)
-#define ONENAND_OOBBUF_ALLOC (0x2000)
-#define ONENAND_SKIP_INITIAL_UNLOCKING (0x4000)
-
-#define ONENAND_IS_4KB_PAGE(this) \
- (this->options & ONENAND_HAS_4KB_PAGE)
-
-/*
- * OneNAND Flash Manufacturer ID Codes
- */
-#define ONENAND_MFR_SAMSUNG 0xec
-#define ONENAND_MFR_NUMONYX 0x20
-
-/**
- * struct onenand_manufacturers - NAND Flash Manufacturer ID Structure
- * @name: Manufacturer name
- * @id: manufacturer ID code of device.
-*/
-struct onenand_manufacturers {
- int id;
- char *name;
-};
-
-int onenand_bbt_read_oob(struct mtd_info *mtd, loff_t from,
- struct mtd_oob_ops *ops);
-unsigned onenand_block(struct onenand_chip *this, loff_t addr);
-loff_t onenand_addr(struct onenand_chip *this, int block);
-int flexonenand_region(struct mtd_info *mtd, loff_t addr);
-
-struct mtd_partition;
-
-struct onenand_platform_data {
- void (*mmcontrol)(struct mtd_info *mtd, int sync_read);
- int (*read_bufferram)(struct mtd_info *mtd, int area,
- unsigned char *buffer, int offset, size_t count);
- struct mtd_partition *parts;
- unsigned int nr_parts;
-};
-
-#endif /* __LINUX_MTD_ONENAND_H */
diff --git a/ANDROID_3.4.5/include/linux/mtd/onenand_regs.h b/ANDROID_3.4.5/include/linux/mtd/onenand_regs.h
deleted file mode 100644
index d60130f8..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/onenand_regs.h
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- * linux/include/linux/mtd/onenand_regs.h
- *
- * OneNAND Register header file
- *
- * Copyright (C) 2005-2007 Samsung Electronics
- * Kyungmin Park <kyungmin.park@samsung.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.
- */
-
-#ifndef __ONENAND_REG_H
-#define __ONENAND_REG_H
-
-/* Memory Address Map Translation (Word order) */
-#define ONENAND_MEMORY_MAP(x) ((x) << 1)
-
-/*
- * External BufferRAM area
- */
-#define ONENAND_BOOTRAM ONENAND_MEMORY_MAP(0x0000)
-#define ONENAND_DATARAM ONENAND_MEMORY_MAP(0x0200)
-#define ONENAND_SPARERAM ONENAND_MEMORY_MAP(0x8010)
-
-/*
- * OneNAND Registers
- */
-#define ONENAND_REG_MANUFACTURER_ID ONENAND_MEMORY_MAP(0xF000)
-#define ONENAND_REG_DEVICE_ID ONENAND_MEMORY_MAP(0xF001)
-#define ONENAND_REG_VERSION_ID ONENAND_MEMORY_MAP(0xF002)
-#define ONENAND_REG_DATA_BUFFER_SIZE ONENAND_MEMORY_MAP(0xF003)
-#define ONENAND_REG_BOOT_BUFFER_SIZE ONENAND_MEMORY_MAP(0xF004)
-#define ONENAND_REG_NUM_BUFFERS ONENAND_MEMORY_MAP(0xF005)
-#define ONENAND_REG_TECHNOLOGY ONENAND_MEMORY_MAP(0xF006)
-
-#define ONENAND_REG_START_ADDRESS1 ONENAND_MEMORY_MAP(0xF100)
-#define ONENAND_REG_START_ADDRESS2 ONENAND_MEMORY_MAP(0xF101)
-#define ONENAND_REG_START_ADDRESS3 ONENAND_MEMORY_MAP(0xF102)
-#define ONENAND_REG_START_ADDRESS4 ONENAND_MEMORY_MAP(0xF103)
-#define ONENAND_REG_START_ADDRESS5 ONENAND_MEMORY_MAP(0xF104)
-#define ONENAND_REG_START_ADDRESS6 ONENAND_MEMORY_MAP(0xF105)
-#define ONENAND_REG_START_ADDRESS7 ONENAND_MEMORY_MAP(0xF106)
-#define ONENAND_REG_START_ADDRESS8 ONENAND_MEMORY_MAP(0xF107)
-
-#define ONENAND_REG_START_BUFFER ONENAND_MEMORY_MAP(0xF200)
-#define ONENAND_REG_COMMAND ONENAND_MEMORY_MAP(0xF220)
-#define ONENAND_REG_SYS_CFG1 ONENAND_MEMORY_MAP(0xF221)
-#define ONENAND_REG_SYS_CFG2 ONENAND_MEMORY_MAP(0xF222)
-#define ONENAND_REG_CTRL_STATUS ONENAND_MEMORY_MAP(0xF240)
-#define ONENAND_REG_INTERRUPT ONENAND_MEMORY_MAP(0xF241)
-#define ONENAND_REG_START_BLOCK_ADDRESS ONENAND_MEMORY_MAP(0xF24C)
-#define ONENAND_REG_END_BLOCK_ADDRESS ONENAND_MEMORY_MAP(0xF24D)
-#define ONENAND_REG_WP_STATUS ONENAND_MEMORY_MAP(0xF24E)
-
-#define ONENAND_REG_ECC_STATUS ONENAND_MEMORY_MAP(0xFF00)
-#define ONENAND_REG_ECC_M0 ONENAND_MEMORY_MAP(0xFF01)
-#define ONENAND_REG_ECC_S0 ONENAND_MEMORY_MAP(0xFF02)
-#define ONENAND_REG_ECC_M1 ONENAND_MEMORY_MAP(0xFF03)
-#define ONENAND_REG_ECC_S1 ONENAND_MEMORY_MAP(0xFF04)
-#define ONENAND_REG_ECC_M2 ONENAND_MEMORY_MAP(0xFF05)
-#define ONENAND_REG_ECC_S2 ONENAND_MEMORY_MAP(0xFF06)
-#define ONENAND_REG_ECC_M3 ONENAND_MEMORY_MAP(0xFF07)
-#define ONENAND_REG_ECC_S3 ONENAND_MEMORY_MAP(0xFF08)
-
-/*
- * Device ID Register F001h (R)
- */
-#define DEVICE_IS_FLEXONENAND (1 << 9)
-#define FLEXONENAND_PI_MASK (0x3ff)
-#define FLEXONENAND_PI_UNLOCK_SHIFT (14)
-#define ONENAND_DEVICE_DENSITY_MASK (0xf)
-#define ONENAND_DEVICE_DENSITY_SHIFT (4)
-#define ONENAND_DEVICE_IS_DDP (1 << 3)
-#define ONENAND_DEVICE_IS_DEMUX (1 << 2)
-#define ONENAND_DEVICE_VCC_MASK (0x3)
-
-#define ONENAND_DEVICE_DENSITY_512Mb (0x002)
-#define ONENAND_DEVICE_DENSITY_1Gb (0x003)
-#define ONENAND_DEVICE_DENSITY_2Gb (0x004)
-#define ONENAND_DEVICE_DENSITY_4Gb (0x005)
-
-/*
- * Version ID Register F002h (R)
- */
-#define ONENAND_VERSION_PROCESS_SHIFT (8)
-
-/*
- * Technology Register F006h (R)
- */
-#define ONENAND_TECHNOLOGY_IS_MLC (1 << 0)
-
-/*
- * Start Address 1 F100h (R/W) & Start Address 2 F101h (R/W)
- */
-#define ONENAND_DDP_SHIFT (15)
-#define ONENAND_DDP_CHIP0 (0)
-#define ONENAND_DDP_CHIP1 (1 << ONENAND_DDP_SHIFT)
-
-/*
- * Start Address 8 F107h (R/W)
- */
-/* Note: It's actually 0x3f in case of SLC */
-#define ONENAND_FPA_MASK (0x7f)
-#define ONENAND_FPA_SHIFT (2)
-#define ONENAND_FSA_MASK (0x03)
-
-/*
- * Start Buffer Register F200h (R/W)
- */
-#define ONENAND_BSA_MASK (0x03)
-#define ONENAND_BSA_SHIFT (8)
-#define ONENAND_BSA_BOOTRAM (0 << 2)
-#define ONENAND_BSA_DATARAM0 (2 << 2)
-#define ONENAND_BSA_DATARAM1 (3 << 2)
-/* Note: It's actually 0x03 in case of SLC */
-#define ONENAND_BSC_MASK (0x07)
-
-/*
- * Command Register F220h (R/W)
- */
-#define ONENAND_CMD_READ (0x00)
-#define ONENAND_CMD_READOOB (0x13)
-#define ONENAND_CMD_PROG (0x80)
-#define ONENAND_CMD_PROGOOB (0x1A)
-#define ONENAND_CMD_2X_PROG (0x7D)
-#define ONENAND_CMD_2X_CACHE_PROG (0x7F)
-#define ONENAND_CMD_UNLOCK (0x23)
-#define ONENAND_CMD_LOCK (0x2A)
-#define ONENAND_CMD_LOCK_TIGHT (0x2C)
-#define ONENAND_CMD_UNLOCK_ALL (0x27)
-#define ONENAND_CMD_ERASE (0x94)
-#define ONENAND_CMD_MULTIBLOCK_ERASE (0x95)
-#define ONENAND_CMD_ERASE_VERIFY (0x71)
-#define ONENAND_CMD_RESET (0xF0)
-#define ONENAND_CMD_OTP_ACCESS (0x65)
-#define ONENAND_CMD_READID (0x90)
-#define FLEXONENAND_CMD_PI_UPDATE (0x05)
-#define FLEXONENAND_CMD_PI_ACCESS (0x66)
-#define FLEXONENAND_CMD_RECOVER_LSB (0x05)
-
-/* NOTE: Those are not *REAL* commands */
-#define ONENAND_CMD_BUFFERRAM (0x1978)
-#define FLEXONENAND_CMD_READ_PI (0x1985)
-
-/*
- * System Configuration 1 Register F221h (R, R/W)
- */
-#define ONENAND_SYS_CFG1_SYNC_READ (1 << 15)
-#define ONENAND_SYS_CFG1_BRL_7 (7 << 12)
-#define ONENAND_SYS_CFG1_BRL_6 (6 << 12)
-#define ONENAND_SYS_CFG1_BRL_5 (5 << 12)
-#define ONENAND_SYS_CFG1_BRL_4 (4 << 12)
-#define ONENAND_SYS_CFG1_BRL_3 (3 << 12)
-#define ONENAND_SYS_CFG1_BRL_10 (2 << 12)
-#define ONENAND_SYS_CFG1_BRL_9 (1 << 12)
-#define ONENAND_SYS_CFG1_BRL_8 (0 << 12)
-#define ONENAND_SYS_CFG1_BRL_SHIFT (12)
-#define ONENAND_SYS_CFG1_BL_32 (4 << 9)
-#define ONENAND_SYS_CFG1_BL_16 (3 << 9)
-#define ONENAND_SYS_CFG1_BL_8 (2 << 9)
-#define ONENAND_SYS_CFG1_BL_4 (1 << 9)
-#define ONENAND_SYS_CFG1_BL_CONT (0 << 9)
-#define ONENAND_SYS_CFG1_BL_SHIFT (9)
-#define ONENAND_SYS_CFG1_NO_ECC (1 << 8)
-#define ONENAND_SYS_CFG1_RDY (1 << 7)
-#define ONENAND_SYS_CFG1_INT (1 << 6)
-#define ONENAND_SYS_CFG1_IOBE (1 << 5)
-#define ONENAND_SYS_CFG1_RDY_CONF (1 << 4)
-#define ONENAND_SYS_CFG1_VHF (1 << 3)
-#define ONENAND_SYS_CFG1_HF (1 << 2)
-#define ONENAND_SYS_CFG1_SYNC_WRITE (1 << 1)
-
-/*
- * Controller Status Register F240h (R)
- */
-#define ONENAND_CTRL_ONGO (1 << 15)
-#define ONENAND_CTRL_LOCK (1 << 14)
-#define ONENAND_CTRL_LOAD (1 << 13)
-#define ONENAND_CTRL_PROGRAM (1 << 12)
-#define ONENAND_CTRL_ERASE (1 << 11)
-#define ONENAND_CTRL_ERROR (1 << 10)
-#define ONENAND_CTRL_RSTB (1 << 7)
-#define ONENAND_CTRL_OTP_L (1 << 6)
-#define ONENAND_CTRL_OTP_BL (1 << 5)
-
-/*
- * Interrupt Status Register F241h (R)
- */
-#define ONENAND_INT_MASTER (1 << 15)
-#define ONENAND_INT_READ (1 << 7)
-#define ONENAND_INT_WRITE (1 << 6)
-#define ONENAND_INT_ERASE (1 << 5)
-#define ONENAND_INT_RESET (1 << 4)
-#define ONENAND_INT_CLEAR (0 << 0)
-
-/*
- * NAND Flash Write Protection Status Register F24Eh (R)
- */
-#define ONENAND_WP_US (1 << 2)
-#define ONENAND_WP_LS (1 << 1)
-#define ONENAND_WP_LTS (1 << 0)
-
-/*
- * ECC Status Reigser FF00h (R)
- */
-#define ONENAND_ECC_1BIT (1 << 0)
-#define ONENAND_ECC_1BIT_ALL (0x5555)
-#define ONENAND_ECC_2BIT (1 << 1)
-#define ONENAND_ECC_2BIT_ALL (0xAAAA)
-#define FLEXONENAND_UNCORRECTABLE_ERROR (0x1010)
-#define ONENAND_ECC_3BIT (1 << 2)
-#define ONENAND_ECC_4BIT (1 << 3)
-#define ONENAND_ECC_4BIT_UNCORRECTABLE (0x1010)
-
-/*
- * One-Time Programmable (OTP)
- */
-#define FLEXONENAND_OTP_LOCK_OFFSET (2048)
-#define ONENAND_OTP_LOCK_OFFSET (14)
-
-#endif /* __ONENAND_REG_H */
diff --git a/ANDROID_3.4.5/include/linux/mtd/partitions.h b/ANDROID_3.4.5/include/linux/mtd/partitions.h
deleted file mode 100644
index e4f732ae..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/partitions.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * MTD partitioning layer definitions
- *
- * (C) 2000 Nicolas Pitre <nico@fluxnic.net>
- *
- * This code is GPL
- */
-
-#ifndef MTD_PARTITIONS_H
-#define MTD_PARTITIONS_H
-
-#include <linux/types.h>
-
-
-/*
- * Partition definition structure:
- *
- * An array of struct partition is passed along with a MTD object to
- * mtd_device_register() to create them.
- *
- * For each partition, these fields are available:
- * name: string that will be used to label the partition's MTD device.
- * size: the partition size; if defined as MTDPART_SIZ_FULL, the partition
- * will extend to the end of the master MTD device.
- * offset: absolute starting position within the master MTD device; if
- * defined as MTDPART_OFS_APPEND, the partition will start where the
- * previous one ended; if MTDPART_OFS_NXTBLK, at the next erase block;
- * if MTDPART_OFS_RETAIN, consume as much as possible, leaving size
- * after the end of partition.
- * mask_flags: contains flags that have to be masked (removed) from the
- * master MTD flag set for the corresponding MTD partition.
- * For example, to force a read-only partition, simply adding
- * MTD_WRITEABLE to the mask_flags will do the trick.
- *
- * Note: writeable partitions require their size and offset be
- * erasesize aligned (e.g. use MTDPART_OFS_NEXTBLK).
- */
-
-struct mtd_partition {
- char *name; /* identifier string */
- uint64_t size; /* partition size */
- uint64_t offset; /* offset within the master MTD space */
- uint32_t mask_flags; /* master MTD flags to mask out for this partition */
- struct nand_ecclayout *ecclayout; /* out of band layout for this partition (NAND only) */
-};
-
-#define MTDPART_OFS_RETAIN (-3)
-#define MTDPART_OFS_NXTBLK (-2)
-#define MTDPART_OFS_APPEND (-1)
-#define MTDPART_SIZ_FULL (0)
-
-
-struct mtd_info;
-struct device_node;
-
-/**
- * struct mtd_part_parser_data - used to pass data to MTD partition parsers.
- * @origin: for RedBoot, start address of MTD device
- * @of_node: for OF parsers, device node containing partitioning information
- */
-struct mtd_part_parser_data {
- unsigned long origin;
- struct device_node *of_node;
-};
-
-
-/*
- * Functions dealing with the various ways of partitioning the space
- */
-
-struct mtd_part_parser {
- struct list_head list;
- struct module *owner;
- const char *name;
- int (*parse_fn)(struct mtd_info *, struct mtd_partition **,
- struct mtd_part_parser_data *);
-};
-
-extern int register_mtd_parser(struct mtd_part_parser *parser);
-extern int deregister_mtd_parser(struct mtd_part_parser *parser);
-
-int mtd_is_partition(struct mtd_info *mtd);
-int mtd_add_partition(struct mtd_info *master, char *name,
- long long offset, long long length);
-int mtd_del_partition(struct mtd_info *master, int partno);
-uint64_t mtd_get_device_size(struct mtd_info *mtd);
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mtd/pfow.h b/ANDROID_3.4.5/include/linux/mtd/pfow.h
deleted file mode 100644
index b730d4f8..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/pfow.h
+++ /dev/null
@@ -1,159 +0,0 @@
-/* Primary function overlay window definitions
- * and service functions used by LPDDR chips
- */
-#ifndef __LINUX_MTD_PFOW_H
-#define __LINUX_MTD_PFOW_H
-
-#include <linux/mtd/qinfo.h>
-
-/* PFOW registers addressing */
-/* Address of symbol "P" */
-#define PFOW_QUERY_STRING_P 0x0000
-/* Address of symbol "F" */
-#define PFOW_QUERY_STRING_F 0x0002
-/* Address of symbol "O" */
-#define PFOW_QUERY_STRING_O 0x0004
-/* Address of symbol "W" */
-#define PFOW_QUERY_STRING_W 0x0006
-/* Identification info for LPDDR chip */
-#define PFOW_MANUFACTURER_ID 0x0020
-#define PFOW_DEVICE_ID 0x0022
-/* Address in PFOW where prog buffer can can be found */
-#define PFOW_PROGRAM_BUFFER_OFFSET 0x0040
-/* Size of program buffer in words */
-#define PFOW_PROGRAM_BUFFER_SIZE 0x0042
-/* Address command code register */
-#define PFOW_COMMAND_CODE 0x0080
-/* command data register */
-#define PFOW_COMMAND_DATA 0x0084
-/* command address register lower address bits */
-#define PFOW_COMMAND_ADDRESS_L 0x0088
-/* command address register upper address bits */
-#define PFOW_COMMAND_ADDRESS_H 0x008a
-/* number of bytes to be proggrammed lower address bits */
-#define PFOW_DATA_COUNT_L 0x0090
-/* number of bytes to be proggrammed higher address bits */
-#define PFOW_DATA_COUNT_H 0x0092
-/* command execution register, the only possible value is 0x01 */
-#define PFOW_COMMAND_EXECUTE 0x00c0
-/* 0x01 should be written at this address to clear buffer */
-#define PFOW_CLEAR_PROGRAM_BUFFER 0x00c4
-/* device program/erase suspend register */
-#define PFOW_PROGRAM_ERASE_SUSPEND 0x00c8
-/* device status register */
-#define PFOW_DSR 0x00cc
-
-/* LPDDR memory device command codes */
-/* They are possible values of PFOW command code register */
-#define LPDDR_WORD_PROGRAM 0x0041
-#define LPDDR_BUFF_PROGRAM 0x00E9
-#define LPDDR_BLOCK_ERASE 0x0020
-#define LPDDR_LOCK_BLOCK 0x0061
-#define LPDDR_UNLOCK_BLOCK 0x0062
-#define LPDDR_READ_BLOCK_LOCK_STATUS 0x0065
-#define LPDDR_INFO_QUERY 0x0098
-#define LPDDR_READ_OTP 0x0097
-#define LPDDR_PROG_OTP 0x00C0
-#define LPDDR_RESUME 0x00D0
-
-/* Defines possible value of PFOW command execution register */
-#define LPDDR_START_EXECUTION 0x0001
-
-/* Defines possible value of PFOW program/erase suspend register */
-#define LPDDR_SUSPEND 0x0001
-
-/* Possible values of PFOW device status register */
-/* access R - read; RC read & clearable */
-#define DSR_DPS (1<<1) /* RC; device protect status
- * 0 - not protected 1 - locked */
-#define DSR_PSS (1<<2) /* R; program suspend status;
- * 0-prog in progress/completed,
- * 1- prog suspended */
-#define DSR_VPPS (1<<3) /* RC; 0-Vpp OK, * 1-Vpp low */
-#define DSR_PROGRAM_STATUS (1<<4) /* RC; 0-successful, 1-error */
-#define DSR_ERASE_STATUS (1<<5) /* RC; erase or blank check status;
- * 0-success erase/blank check,
- * 1 blank check error */
-#define DSR_ESS (1<<6) /* R; erase suspend status;
- * 0-erase in progress/complete,
- * 1 erase suspended */
-#define DSR_READY_STATUS (1<<7) /* R; Device status
- * 0-busy,
- * 1-ready */
-#define DSR_RPS (0x3<<8) /* RC; region program status
- * 00 - Success,
- * 01-re-program attempt in region with
- * object mode data,
- * 10-object mode program w attempt in
- * region with control mode data
- * 11-attempt to program invalid half
- * with 0x41 command */
-#define DSR_AOS (1<<12) /* RC; 1- AO related failure */
-#define DSR_AVAILABLE (1<<15) /* R; Device availbility
- * 1 - Device available
- * 0 - not available */
-
-/* The superset of all possible error bits in DSR */
-#define DSR_ERR 0x133A
-
-static inline void send_pfow_command(struct map_info *map,
- unsigned long cmd_code, unsigned long adr,
- unsigned long len, map_word *datum)
-{
- int bits_per_chip = map_bankwidth(map) * 8;
- int chipnum;
- struct lpddr_private *lpddr = map->fldrv_priv;
- chipnum = adr >> lpddr->chipshift;
-
- map_write(map, CMD(cmd_code), map->pfow_base + PFOW_COMMAND_CODE);
- map_write(map, CMD(adr & ((1<<bits_per_chip) - 1)),
- map->pfow_base + PFOW_COMMAND_ADDRESS_L);
- map_write(map, CMD(adr>>bits_per_chip),
- map->pfow_base + PFOW_COMMAND_ADDRESS_H);
- if (len) {
- map_write(map, CMD(len & ((1<<bits_per_chip) - 1)),
- map->pfow_base + PFOW_DATA_COUNT_L);
- map_write(map, CMD(len>>bits_per_chip),
- map->pfow_base + PFOW_DATA_COUNT_H);
- }
- if (datum)
- map_write(map, *datum, map->pfow_base + PFOW_COMMAND_DATA);
-
- /* Command execution start */
- map_write(map, CMD(LPDDR_START_EXECUTION),
- map->pfow_base + PFOW_COMMAND_EXECUTE);
-}
-
-static inline void print_drs_error(unsigned dsr)
-{
- int prog_status = (dsr & DSR_RPS) >> 8;
-
- if (!(dsr & DSR_AVAILABLE))
- printk(KERN_NOTICE"DSR.15: (0) Device not Available\n");
- if (prog_status & 0x03)
- printk(KERN_NOTICE"DSR.9,8: (11) Attempt to program invalid "
- "half with 41h command\n");
- else if (prog_status & 0x02)
- printk(KERN_NOTICE"DSR.9,8: (10) Object Mode Program attempt "
- "in region with Control Mode data\n");
- else if (prog_status & 0x01)
- printk(KERN_NOTICE"DSR.9,8: (01) Program attempt in region "
- "with Object Mode data\n");
- if (!(dsr & DSR_READY_STATUS))
- printk(KERN_NOTICE"DSR.7: (0) Device is Busy\n");
- if (dsr & DSR_ESS)
- printk(KERN_NOTICE"DSR.6: (1) Erase Suspended\n");
- if (dsr & DSR_ERASE_STATUS)
- printk(KERN_NOTICE"DSR.5: (1) Erase/Blank check error\n");
- if (dsr & DSR_PROGRAM_STATUS)
- printk(KERN_NOTICE"DSR.4: (1) Program Error\n");
- if (dsr & DSR_VPPS)
- printk(KERN_NOTICE"DSR.3: (1) Vpp low detect, operation "
- "aborted\n");
- if (dsr & DSR_PSS)
- printk(KERN_NOTICE"DSR.2: (1) Program suspended\n");
- if (dsr & DSR_DPS)
- printk(KERN_NOTICE"DSR.1: (1) Aborted Erase/Program attempt "
- "on locked block\n");
-}
-#endif /* __LINUX_MTD_PFOW_H */
diff --git a/ANDROID_3.4.5/include/linux/mtd/physmap.h b/ANDROID_3.4.5/include/linux/mtd/physmap.h
deleted file mode 100644
index d2887e76..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/physmap.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * For boards with physically mapped flash and using
- * drivers/mtd/maps/physmap.c mapping driver.
- *
- * Copyright (C) 2003 MontaVista Software Inc.
- * Author: Jun Sun, jsun@mvista.com or jsun@junsun.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.
- *
- */
-
-#ifndef __LINUX_MTD_PHYSMAP__
-#define __LINUX_MTD_PHYSMAP__
-
-#include <linux/mtd/mtd.h>
-#include <linux/mtd/partitions.h>
-
-struct map_info;
-struct platform_device;
-
-struct physmap_flash_data {
- unsigned int width;
- int (*init)(struct platform_device *);
- void (*exit)(struct platform_device *);
- void (*set_vpp)(struct platform_device *, int);
- unsigned int nr_parts;
- unsigned int pfow_base;
- char *probe_type;
- struct mtd_partition *parts;
- const char **part_probe_types;
-};
-
-#endif /* __LINUX_MTD_PHYSMAP__ */
diff --git a/ANDROID_3.4.5/include/linux/mtd/pismo.h b/ANDROID_3.4.5/include/linux/mtd/pismo.h
deleted file mode 100644
index 8dfb7e14..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/pismo.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * PISMO memory driver - http://www.pismoworld.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.
- */
-#ifndef __LINUX_MTD_PISMO_H
-#define __LINUX_MTD_PISMO_H
-
-struct pismo_pdata {
- void (*set_vpp)(void *, int);
- void *vpp_data;
- phys_addr_t cs_addrs[5];
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mtd/plat-ram.h b/ANDROID_3.4.5/include/linux/mtd/plat-ram.h
deleted file mode 100644
index e07890af..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/plat-ram.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* linux/include/linux/mtd/plat-ram.h
- *
- * (c) 2004 Simtec Electronics
- * http://www.simtec.co.uk/products/SWLINUX/
- * Ben Dooks <ben@simtec.co.uk>
- *
- * Generic platform device based RAM map
- *
- * 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.
- *
- */
-
-#ifndef __LINUX_MTD_PLATRAM_H
-#define __LINUX_MTD_PLATRAM_H __FILE__
-
-#define PLATRAM_RO (0)
-#define PLATRAM_RW (1)
-
-struct platdata_mtd_ram {
- const char *mapname;
- const char **map_probes;
- const char **probes;
- struct mtd_partition *partitions;
- int nr_partitions;
- int bankwidth;
-
- /* control callbacks */
-
- void (*set_rw)(struct device *dev, int to);
-};
-
-#endif /* __LINUX_MTD_PLATRAM_H */
diff --git a/ANDROID_3.4.5/include/linux/mtd/qinfo.h b/ANDROID_3.4.5/include/linux/mtd/qinfo.h
deleted file mode 100644
index 7b3d487d..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/qinfo.h
+++ /dev/null
@@ -1,91 +0,0 @@
-#ifndef __LINUX_MTD_QINFO_H
-#define __LINUX_MTD_QINFO_H
-
-#include <linux/mtd/map.h>
-#include <linux/wait.h>
-#include <linux/spinlock.h>
-#include <linux/delay.h>
-#include <linux/mtd/mtd.h>
-#include <linux/mtd/flashchip.h>
-#include <linux/mtd/partitions.h>
-
-/* lpddr_private describes lpddr flash chip in memory map
- * @ManufactId - Chip Manufacture ID
- * @DevId - Chip Device ID
- * @qinfo - pointer to qinfo records describing the chip
- * @numchips - number of chips including virual RWW partitions
- * @chipshift - Chip/partiton size 2^chipshift
- * @chips - per-chip data structure
- */
-struct lpddr_private {
- uint16_t ManufactId;
- uint16_t DevId;
- struct qinfo_chip *qinfo;
- int numchips;
- unsigned long chipshift;
- struct flchip chips[0];
-};
-
-/* qinfo_query_info structure contains request information for
- * each qinfo record
- * @major - major number of qinfo record
- * @major - minor number of qinfo record
- * @id_str - descriptive string to access the record
- * @desc - detailed description for the qinfo record
- */
-struct qinfo_query_info {
- uint8_t major;
- uint8_t minor;
- char *id_str;
- char *desc;
-};
-
-/*
- * qinfo_chip structure contains necessary qinfo records data
- * @DevSizeShift - Device size 2^n bytes
- * @BufSizeShift - Program buffer size 2^n bytes
- * @TotalBlocksNum - Total number of blocks
- * @UniformBlockSizeShift - Uniform block size 2^UniformBlockSizeShift bytes
- * @HWPartsNum - Number of hardware partitions
- * @SuspEraseSupp - Suspend erase supported
- * @SingleWordProgTime - Single word program 2^SingleWordProgTime u-sec
- * @ProgBufferTime - Program buffer write 2^ProgBufferTime u-sec
- * @BlockEraseTime - Block erase 2^BlockEraseTime m-sec
- */
-struct qinfo_chip {
- /* General device info */
- uint16_t DevSizeShift;
- uint16_t BufSizeShift;
- /* Erase block information */
- uint16_t TotalBlocksNum;
- uint16_t UniformBlockSizeShift;
- /* Partition information */
- uint16_t HWPartsNum;
- /* Optional features */
- uint16_t SuspEraseSupp;
- /* Operation typical time */
- uint16_t SingleWordProgTime;
- uint16_t ProgBufferTime;
- uint16_t BlockEraseTime;
-};
-
-/* defines for fixup usage */
-#define LPDDR_MFR_ANY 0xffff
-#define LPDDR_ID_ANY 0xffff
-#define NUMONYX_MFGR_ID 0x0089
-#define R18_DEVICE_ID_1G 0x893c
-
-static inline map_word lpddr_build_cmd(u_long cmd, struct map_info *map)
-{
- map_word val = { {0} };
- val.x[0] = cmd;
- return val;
-}
-
-#define CMD(x) lpddr_build_cmd(x, map)
-#define CMDVAL(cmd) cmd.x[0]
-
-struct mtd_info *lpddr_cmdset(struct map_info *);
-
-#endif
-
diff --git a/ANDROID_3.4.5/include/linux/mtd/sh_flctl.h b/ANDROID_3.4.5/include/linux/mtd/sh_flctl.h
deleted file mode 100644
index a38e1fa8..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/sh_flctl.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * SuperH FLCTL nand controller
- *
- * Copyright © 2008 Renesas Solutions Corp.
- *
- * 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 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 __SH_FLCTL_H__
-#define __SH_FLCTL_H__
-
-#include <linux/mtd/mtd.h>
-#include <linux/mtd/nand.h>
-#include <linux/mtd/partitions.h>
-#include <linux/pm_qos.h>
-
-/* FLCTL registers */
-#define FLCMNCR(f) (f->reg + 0x0)
-#define FLCMDCR(f) (f->reg + 0x4)
-#define FLCMCDR(f) (f->reg + 0x8)
-#define FLADR(f) (f->reg + 0xC)
-#define FLADR2(f) (f->reg + 0x3C)
-#define FLDATAR(f) (f->reg + 0x10)
-#define FLDTCNTR(f) (f->reg + 0x14)
-#define FLINTDMACR(f) (f->reg + 0x18)
-#define FLBSYTMR(f) (f->reg + 0x1C)
-#define FLBSYCNT(f) (f->reg + 0x20)
-#define FLDTFIFO(f) (f->reg + 0x24)
-#define FLECFIFO(f) (f->reg + 0x28)
-#define FLTRCR(f) (f->reg + 0x2C)
-#define FLHOLDCR(f) (f->reg + 0x38)
-#define FL4ECCRESULT0(f) (f->reg + 0x80)
-#define FL4ECCRESULT1(f) (f->reg + 0x84)
-#define FL4ECCRESULT2(f) (f->reg + 0x88)
-#define FL4ECCRESULT3(f) (f->reg + 0x8C)
-#define FL4ECCCR(f) (f->reg + 0x90)
-#define FL4ECCCNT(f) (f->reg + 0x94)
-#define FLERRADR(f) (f->reg + 0x98)
-
-/* FLCMNCR control bits */
-#define ECCPOS2 (0x1 << 25)
-#define _4ECCCNTEN (0x1 << 24)
-#define _4ECCEN (0x1 << 23)
-#define _4ECCCORRECT (0x1 << 22)
-#define SHBUSSEL (0x1 << 20)
-#define SEL_16BIT (0x1 << 19)
-#define SNAND_E (0x1 << 18) /* SNAND (0=512 1=2048)*/
-#define QTSEL_E (0x1 << 17)
-#define ENDIAN (0x1 << 16) /* 1 = little endian */
-#define FCKSEL_E (0x1 << 15)
-#define ECCPOS_00 (0x00 << 12)
-#define ECCPOS_01 (0x01 << 12)
-#define ECCPOS_02 (0x02 << 12)
-#define ACM_SACCES_MODE (0x01 << 10)
-#define NANWF_E (0x1 << 9)
-#define SE_D (0x1 << 8) /* Spare area disable */
-#define CE1_ENABLE (0x1 << 4) /* Chip Enable 1 */
-#define CE0_ENABLE (0x1 << 3) /* Chip Enable 0 */
-#define TYPESEL_SET (0x1 << 0)
-
-/*
- * Clock settings using the PULSEx registers from FLCMNCR
- *
- * Some hardware uses bits called PULSEx instead of FCKSEL_E and QTSEL_E
- * to control the clock divider used between the High-Speed Peripheral Clock
- * and the FLCTL internal clock. If so, use CLK_8_BIT_xxx for connecting 8 bit
- * and CLK_16_BIT_xxx for connecting 16 bit bus bandwith NAND chips. For the 16
- * bit version the divider is seperate for the pulse width of high and low
- * signals.
- */
-#define PULSE3 (0x1 << 27)
-#define PULSE2 (0x1 << 17)
-#define PULSE1 (0x1 << 15)
-#define PULSE0 (0x1 << 9)
-#define CLK_8B_0_5 PULSE1
-#define CLK_8B_1 0x0
-#define CLK_8B_1_5 (PULSE1 | PULSE2)
-#define CLK_8B_2 PULSE0
-#define CLK_8B_3 (PULSE0 | PULSE1 | PULSE2)
-#define CLK_8B_4 (PULSE0 | PULSE2)
-#define CLK_16B_6L_2H PULSE0
-#define CLK_16B_9L_3H (PULSE0 | PULSE1 | PULSE2)
-#define CLK_16B_12L_4H (PULSE0 | PULSE2)
-
-/* FLCMDCR control bits */
-#define ADRCNT2_E (0x1 << 31) /* 5byte address enable */
-#define ADRMD_E (0x1 << 26) /* Sector address access */
-#define CDSRC_E (0x1 << 25) /* Data buffer selection */
-#define DOSR_E (0x1 << 24) /* Status read check */
-#define SELRW (0x1 << 21) /* 0:read 1:write */
-#define DOADR_E (0x1 << 20) /* Address stage execute */
-#define ADRCNT_1 (0x00 << 18) /* Address data bytes: 1byte */
-#define ADRCNT_2 (0x01 << 18) /* Address data bytes: 2byte */
-#define ADRCNT_3 (0x02 << 18) /* Address data bytes: 3byte */
-#define ADRCNT_4 (0x03 << 18) /* Address data bytes: 4byte */
-#define DOCMD2_E (0x1 << 17) /* 2nd cmd stage execute */
-#define DOCMD1_E (0x1 << 16) /* 1st cmd stage execute */
-
-/* FLTRCR control bits */
-#define TRSTRT (0x1 << 0) /* translation start */
-#define TREND (0x1 << 1) /* translation end */
-
-/*
- * FLHOLDCR control bits
- *
- * HOLDEN: Bus Occupancy Enable (inverted)
- * Enable this bit when the external bus might be used in between transfers.
- * If not set and the bus gets used by other modules, a deadlock occurs.
- */
-#define HOLDEN (0x1 << 0)
-
-/* FL4ECCCR control bits */
-#define _4ECCFA (0x1 << 2) /* 4 symbols correct fault */
-#define _4ECCEND (0x1 << 1) /* 4 symbols end */
-#define _4ECCEXST (0x1 << 0) /* 4 symbols exist */
-
-#define INIT_FL4ECCRESULT_VAL 0x03FF03FF
-#define LOOP_TIMEOUT_MAX 0x00010000
-
-struct sh_flctl {
- struct mtd_info mtd;
- struct nand_chip chip;
- struct platform_device *pdev;
- struct dev_pm_qos_request pm_qos;
- void __iomem *reg;
-
- uint8_t done_buff[2048 + 64]; /* max size 2048 + 64 */
- int read_bytes;
- int index;
- int seqin_column; /* column in SEQIN cmd */
- int seqin_page_addr; /* page_addr in SEQIN cmd */
- uint32_t seqin_read_cmd; /* read cmd in SEQIN cmd */
- int erase1_page_addr; /* page_addr in ERASE1 cmd */
- uint32_t erase_ADRCNT; /* bits of FLCMDCR in ERASE1 cmd */
- uint32_t rw_ADRCNT; /* bits of FLCMDCR in READ WRITE cmd */
- uint32_t flcmncr_base; /* base value of FLCMNCR */
-
- int hwecc_cant_correct[4];
-
- unsigned page_size:1; /* NAND page size (0 = 512, 1 = 2048) */
- unsigned hwecc:1; /* Hardware ECC (0 = disabled, 1 = enabled) */
- unsigned holden:1; /* Hardware has FLHOLDCR and HOLDEN is set */
- unsigned qos_request:1; /* QoS request to prevent deep power shutdown */
-};
-
-struct sh_flctl_platform_data {
- struct mtd_partition *parts;
- int nr_parts;
- unsigned long flcmncr_val;
-
- unsigned has_hwecc:1;
- unsigned use_holden:1;
-};
-
-static inline struct sh_flctl *mtd_to_flctl(struct mtd_info *mtdinfo)
-{
- return container_of(mtdinfo, struct sh_flctl, mtd);
-}
-
-#endif /* __SH_FLCTL_H__ */
diff --git a/ANDROID_3.4.5/include/linux/mtd/sharpsl.h b/ANDROID_3.4.5/include/linux/mtd/sharpsl.h
deleted file mode 100644
index 25f4d2a8..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/sharpsl.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * SharpSL NAND support
- *
- * Copyright (C) 2008 Dmitry Baryshkov
- *
- * 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/mtd/nand.h>
-#include <linux/mtd/nand_ecc.h>
-#include <linux/mtd/partitions.h>
-
-struct sharpsl_nand_platform_data {
- struct nand_bbt_descr *badblock_pattern;
- struct nand_ecclayout *ecc_layout;
- struct mtd_partition *partitions;
- unsigned int nr_partitions;
-};
diff --git a/ANDROID_3.4.5/include/linux/mtd/spear_smi.h b/ANDROID_3.4.5/include/linux/mtd/spear_smi.h
deleted file mode 100644
index 8ae17260..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/spear_smi.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright © 2010 ST Microelectronics
- * Shiraz Hashim <shiraz.hashim@st.com>
- *
- * This file is licensed under the terms of the GNU General Public
- * License version 2. This program is licensed "as is" without any
- * warranty of any kind, whether express or implied.
- */
-
-#ifndef __MTD_SPEAR_SMI_H
-#define __MTD_SPEAR_SMI_H
-
-#include <linux/types.h>
-#include <linux/mtd/mtd.h>
-#include <linux/mtd/partitions.h>
-#include <linux/platform_device.h>
-#include <linux/of.h>
-
-/* max possible slots for serial-nor flash chip in the SMI controller */
-#define MAX_NUM_FLASH_CHIP 4
-
-/* macro to define partitions for flash devices */
-#define DEFINE_PARTS(n, of, s) \
-{ \
- .name = n, \
- .offset = of, \
- .size = s, \
-}
-
-/**
- * struct spear_smi_flash_info - platform structure for passing flash
- * information
- *
- * name: name of the serial nor flash for identification
- * mem_base: the memory base on which the flash is mapped
- * size: size of the flash in bytes
- * partitions: parition details
- * nr_partitions: number of partitions
- * fast_mode: whether flash supports fast mode
- */
-
-struct spear_smi_flash_info {
- char *name;
- unsigned long mem_base;
- unsigned long size;
- struct mtd_partition *partitions;
- int nr_partitions;
- u8 fast_mode;
-};
-
-/**
- * struct spear_smi_plat_data - platform structure for configuring smi
- *
- * clk_rate: clk rate at which SMI must operate
- * num_flashes: number of flashes present on board
- * board_flash_info: specific details of each flash present on board
- */
-struct spear_smi_plat_data {
- unsigned long clk_rate;
- int num_flashes;
- struct spear_smi_flash_info *board_flash_info;
- struct device_node *np[MAX_NUM_FLASH_CHIP];
-};
-
-#endif /* __MTD_SPEAR_SMI_H */
diff --git a/ANDROID_3.4.5/include/linux/mtd/super.h b/ANDROID_3.4.5/include/linux/mtd/super.h
deleted file mode 100644
index f456230f..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/super.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* MTD-based superblock handling
- *
- * Copyright © 2006 Red Hat, Inc. All Rights Reserved.
- * Written by David Howells (dhowells@redhat.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 __MTD_SUPER_H__
-#define __MTD_SUPER_H__
-
-#ifdef __KERNEL__
-
-#include <linux/mtd/mtd.h>
-#include <linux/fs.h>
-#include <linux/mount.h>
-
-extern struct dentry *mount_mtd(struct file_system_type *fs_type, int flags,
- const char *dev_name, void *data,
- int (*fill_super)(struct super_block *, void *, int));
-extern void kill_mtd_super(struct super_block *sb);
-
-
-#endif /* __KERNEL__ */
-
-#endif /* __MTD_SUPER_H__ */
diff --git a/ANDROID_3.4.5/include/linux/mtd/ubi.h b/ANDROID_3.4.5/include/linux/mtd/ubi.h
deleted file mode 100644
index c2e92b36..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/ubi.h
+++ /dev/null
@@ -1,265 +0,0 @@
-/*
- * Copyright (c) International Business Machines Corp., 2006
- *
- * 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
- *
- * Author: Artem Bityutskiy (Битюцкий Артём)
- */
-
-#ifndef __LINUX_UBI_H__
-#define __LINUX_UBI_H__
-
-#include <linux/ioctl.h>
-#include <linux/types.h>
-#include <mtd/ubi-user.h>
-
-
-#define UBI_ALL -1
-/*
- * enum ubi_open_mode - UBI volume open mode constants.
- *
- * UBI_READONLY: read-only mode
- * UBI_READWRITE: read-write mode
- * UBI_EXCLUSIVE: exclusive mode
- */
-enum {
- UBI_READONLY = 1,
- UBI_READWRITE,
- UBI_EXCLUSIVE
-};
-
-/**
- * struct ubi_volume_info - UBI volume description data structure.
- * @vol_id: volume ID
- * @ubi_num: UBI device number this volume belongs to
- * @size: how many physical eraseblocks are reserved for this volume
- * @used_bytes: how many bytes of data this volume contains
- * @used_ebs: how many physical eraseblocks of this volume actually contain any
- * data
- * @vol_type: volume type (%UBI_DYNAMIC_VOLUME or %UBI_STATIC_VOLUME)
- * @corrupted: non-zero if the volume is corrupted (static volumes only)
- * @upd_marker: non-zero if the volume has update marker set
- * @alignment: volume alignment
- * @usable_leb_size: how many bytes are available in logical eraseblocks of
- * this volume
- * @name_len: volume name length
- * @name: volume name
- * @cdev: UBI volume character device major and minor numbers
- *
- * The @corrupted flag is only relevant to static volumes and is always zero
- * for dynamic ones. This is because UBI does not care about dynamic volume
- * data protection and only cares about protecting static volume data.
- *
- * The @upd_marker flag is set if the volume update operation was interrupted.
- * Before touching the volume data during the update operation, UBI first sets
- * the update marker flag for this volume. If the volume update operation was
- * further interrupted, the update marker indicates this. If the update marker
- * is set, the contents of the volume is certainly damaged and a new volume
- * update operation has to be started.
- *
- * To put it differently, @corrupted and @upd_marker fields have different
- * semantics:
- * o the @corrupted flag means that this static volume is corrupted for some
- * reasons, but not because an interrupted volume update
- * o the @upd_marker field means that the volume is damaged because of an
- * interrupted update operation.
- *
- * I.e., the @corrupted flag is never set if the @upd_marker flag is set.
- *
- * The @used_bytes and @used_ebs fields are only really needed for static
- * volumes and contain the number of bytes stored in this static volume and how
- * many eraseblock this data occupies. In case of dynamic volumes, the
- * @used_bytes field is equivalent to @size*@usable_leb_size, and the @used_ebs
- * field is equivalent to @size.
- *
- * In general, logical eraseblock size is a property of the UBI device, not
- * of the UBI volume. Indeed, the logical eraseblock size depends on the
- * physical eraseblock size and on how much bytes UBI headers consume. But
- * because of the volume alignment (@alignment), the usable size of logical
- * eraseblocks if a volume may be less. The following equation is true:
- * @usable_leb_size = LEB size - (LEB size mod @alignment),
- * where LEB size is the logical eraseblock size defined by the UBI device.
- *
- * The alignment is multiple to the minimal flash input/output unit size or %1
- * if all the available space is used.
- *
- * To put this differently, alignment may be considered is a way to change
- * volume logical eraseblock sizes.
- */
-struct ubi_volume_info {
- int ubi_num;
- int vol_id;
- int size;
- long long used_bytes;
- int used_ebs;
- int vol_type;
- int corrupted;
- int upd_marker;
- int alignment;
- int usable_leb_size;
- int name_len;
- const char *name;
- dev_t cdev;
-};
-
-/**
- * struct ubi_device_info - UBI device description data structure.
- * @ubi_num: ubi device number
- * @leb_size: logical eraseblock size on this UBI device
- * @leb_start: starting offset of logical eraseblocks within physical
- * eraseblocks
- * @min_io_size: minimal I/O unit size
- * @max_write_size: maximum amount of bytes the underlying flash can write at a
- * time (MTD write buffer size)
- * @ro_mode: if this device is in read-only mode
- * @cdev: UBI character device major and minor numbers
- *
- * Note, @leb_size is the logical eraseblock size offered by the UBI device.
- * Volumes of this UBI device may have smaller logical eraseblock size if their
- * alignment is not equivalent to %1.
- *
- * The @max_write_size field describes flash write maximum write unit. For
- * example, NOR flash allows for changing individual bytes, so @min_io_size is
- * %1. However, it does not mean than NOR flash has to write data byte-by-byte.
- * Instead, CFI NOR flashes have a write-buffer of, e.g., 64 bytes, and when
- * writing large chunks of data, they write 64-bytes at a time. Obviously, this
- * improves write throughput.
- *
- * Also, the MTD device may have N interleaved (striped) flash chips
- * underneath, in which case @min_io_size can be physical min. I/O size of
- * single flash chip, while @max_write_size can be N * @min_io_size.
- *
- * The @max_write_size field is always greater or equivalent to @min_io_size.
- * E.g., some NOR flashes may have (@min_io_size = 1, @max_write_size = 64). In
- * contrast, NAND flashes usually have @min_io_size = @max_write_size = NAND
- * page size.
- */
-struct ubi_device_info {
- int ubi_num;
- int leb_size;
- int leb_start;
- int min_io_size;
- int max_write_size;
- int ro_mode;
- dev_t cdev;
-};
-
-/*
- * Volume notification types.
- * @UBI_VOLUME_ADDED: a volume has been added (an UBI device was attached or a
- * volume was created)
- * @UBI_VOLUME_REMOVED: a volume has been removed (an UBI device was detached
- * or a volume was removed)
- * @UBI_VOLUME_RESIZED: a volume has been re-sized
- * @UBI_VOLUME_RENAMED: a volume has been re-named
- * @UBI_VOLUME_UPDATED: data has been written to a volume
- *
- * These constants define which type of event has happened when a volume
- * notification function is invoked.
- */
-enum {
- UBI_VOLUME_ADDED,
- UBI_VOLUME_REMOVED,
- UBI_VOLUME_RESIZED,
- UBI_VOLUME_RENAMED,
- UBI_VOLUME_UPDATED,
-};
-
-/*
- * struct ubi_notification - UBI notification description structure.
- * @di: UBI device description object
- * @vi: UBI volume description object
- *
- * UBI notifiers are called with a pointer to an object of this type. The
- * object describes the notification. Namely, it provides a description of the
- * UBI device and UBI volume the notification informs about.
- */
-struct ubi_notification {
- struct ubi_device_info di;
- struct ubi_volume_info vi;
-};
-
-/* UBI descriptor given to users when they open UBI volumes */
-struct ubi_volume_desc;
-
-int ubi_get_device_info(int ubi_num, struct ubi_device_info *di);
-void ubi_get_volume_info(struct ubi_volume_desc *desc,
- struct ubi_volume_info *vi);
-struct ubi_volume_desc *ubi_open_volume(int ubi_num, int vol_id, int mode);
-struct ubi_volume_desc *ubi_open_volume_nm(int ubi_num, const char *name,
- int mode);
-
-void ubi_update_volume(struct ubi_volume_desc *desc);
-
-struct ubi_volume_desc *ubi_open_volume_path(const char *pathname, int mode);
-
-int ubi_register_volume_notifier(struct notifier_block *nb,
- int ignore_existing);
-int ubi_unregister_volume_notifier(struct notifier_block *nb);
-
-void ubi_close_volume(struct ubi_volume_desc *desc);
-void ubi_set_volume(struct ubi_volume_desc *desc);
-
-int ubi_leb_read(struct ubi_volume_desc *desc, int lnum, char *buf, int offset,
- int len, int check);
-int ubi_leb_write(struct ubi_volume_desc *desc, int lnum, const void *buf,
- int offset, int len);
-
-int ubi_leb_read_oob(struct ubi_volume_desc *desc, int lnum, void *buf, int offset,
- int len, void *spare);
-
-int ubi_leb_write_oob(struct ubi_volume_desc *desc, int lnum, const void *buf, int offset,
- int len, void *spare, int dtype);
-
-int ubi_leb_change(struct ubi_volume_desc *desc, int lnum, const void *buf,
- int len);
-int ubi_leb_erase(struct ubi_volume_desc *desc, int lnum);
-int ubi_leb_unmap(struct ubi_volume_desc *desc, int lnum);
-int ubi_leb_map(struct ubi_volume_desc *desc, int lnum);
-int ubi_is_mapped(struct ubi_volume_desc *desc, int lnum);
-int ubi_sync(int ubi_num);
-int ubi_flush(int ubi_num, int vol_id, int lnum);
-
-/*
- * This function is the same as the 'ubi_leb_read()' function, but it does not
- * provide the checking capability.
- */
-static inline int ubi_read(struct ubi_volume_desc *desc, int lnum, char *buf,
- int offset, int len)
-{
- return ubi_leb_read(desc, lnum, buf, offset, len, 0);
-}
-
-/*
- * This function is the same as the 'ubi_leb_write()' functions, but it does
- * not have the data type argument.
- */
-static inline int ubi_write(struct ubi_volume_desc *desc, int lnum,
- const void *buf, int offset, int len)
-{
- return ubi_leb_write(desc, lnum, buf, offset, len);
-}
-
-/*
- * This function is the same as the 'ubi_leb_change()' functions, but it does
- * not have the data type argument.
- */
-static inline int ubi_change(struct ubi_volume_desc *desc, int lnum,
- const void *buf, int len)
-{
- return ubi_leb_change(desc, lnum, buf, len);
-}
-
-#endif /* !__LINUX_UBI_H__ */
diff --git a/ANDROID_3.4.5/include/linux/mtd/xip.h b/ANDROID_3.4.5/include/linux/mtd/xip.h
deleted file mode 100644
index abed4dec..00000000
--- a/ANDROID_3.4.5/include/linux/mtd/xip.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * MTD primitives for XIP support
- *
- * Author: Nicolas Pitre
- * Created: Nov 2, 2004
- * Copyright: (C) 2004 MontaVista Software, Inc.
- *
- * This XIP support for MTD has been loosely inspired
- * by an earlier patch authored by David Woodhouse.
- *
- * 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.
- */
-
-#ifndef __LINUX_MTD_XIP_H__
-#define __LINUX_MTD_XIP_H__
-
-
-#ifdef CONFIG_MTD_XIP
-
-/*
- * We really don't want gcc to guess anything.
- * We absolutely _need_ proper inlining.
- */
-#include <linux/compiler.h>
-
-/*
- * Function that are modifying the flash state away from array mode must
- * obviously not be running from flash. The __xipram is therefore marking
- * those functions so they get relocated to ram.
- */
-#define __xipram noinline __attribute__ ((__section__ (".data")))
-
-/*
- * Each architecture has to provide the following macros. They must access
- * the hardware directly and not rely on any other (XIP) functions since they
- * won't be available when used (flash not in array mode).
- *
- * xip_irqpending()
- *
- * return non zero when any hardware interrupt is pending.
- *
- * xip_currtime()
- *
- * return a platform specific time reference to be used with
- * xip_elapsed_since().
- *
- * xip_elapsed_since(x)
- *
- * return in usecs the elapsed timebetween now and the reference x as
- * returned by xip_currtime().
- *
- * note 1: conversion to usec can be approximated, as long as the
- * returned value is <= the real elapsed time.
- * note 2: this should be able to cope with a few seconds without
- * overflowing.
- *
- * xip_iprefetch()
- *
- * Macro to fill instruction prefetch
- * e.g. a series of nops: asm volatile (".rep 8; nop; .endr");
- */
-
-#include <asm/mtd-xip.h>
-
-#ifndef xip_irqpending
-
-#warning "missing IRQ and timer primitives for XIP MTD support"
-#warning "some of the XIP MTD support code will be disabled"
-#warning "your system will therefore be unresponsive when writing or erasing flash"
-
-#define xip_irqpending() (0)
-#define xip_currtime() (0)
-#define xip_elapsed_since(x) (0)
-
-#endif
-
-#ifndef xip_iprefetch
-#define xip_iprefetch() do { } while (0)
-#endif
-
-/*
- * xip_cpu_idle() is used when waiting for a delay equal or larger than
- * the system timer tick period. This should put the CPU into idle mode
- * to save power and to be woken up only when some interrupts are pending.
- * This should not rely upon standard kernel code.
- */
-#ifndef xip_cpu_idle
-#define xip_cpu_idle() do { } while (0)
-#endif
-
-#else
-
-#define __xipram
-
-#endif /* CONFIG_MTD_XIP */
-
-#endif /* __LINUX_MTD_XIP_H__ */
diff --git a/ANDROID_3.4.5/include/linux/mtio.h b/ANDROID_3.4.5/include/linux/mtio.h
deleted file mode 100644
index 18543e2d..00000000
--- a/ANDROID_3.4.5/include/linux/mtio.h
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- * linux/mtio.h header file for Linux. Written by H. Bergman
- *
- * Modified for special ioctls provided by zftape in September 1997
- * by C.-J. Heine.
- */
-
-#ifndef _LINUX_MTIO_H
-#define _LINUX_MTIO_H
-
-#include <linux/types.h>
-#include <linux/ioctl.h>
-
-/*
- * Structures and definitions for mag tape io control commands
- */
-
-/* structure for MTIOCTOP - mag tape op command */
-struct mtop {
- short mt_op; /* operations defined below */
- int mt_count; /* how many of them */
-};
-
-/* Magnetic Tape operations [Not all operations supported by all drivers]: */
-#define MTRESET 0 /* +reset drive in case of problems */
-#define MTFSF 1 /* forward space over FileMark,
- * position at first record of next file
- */
-#define MTBSF 2 /* backward space FileMark (position before FM) */
-#define MTFSR 3 /* forward space record */
-#define MTBSR 4 /* backward space record */
-#define MTWEOF 5 /* write an end-of-file record (mark) */
-#define MTREW 6 /* rewind */
-#define MTOFFL 7 /* rewind and put the drive offline (eject?) */
-#define MTNOP 8 /* no op, set status only (read with MTIOCGET) */
-#define MTRETEN 9 /* retension tape */
-#define MTBSFM 10 /* +backward space FileMark, position at FM */
-#define MTFSFM 11 /* +forward space FileMark, position at FM */
-#define MTEOM 12 /* goto end of recorded media (for appending files).
- * MTEOM positions after the last FM, ready for
- * appending another file.
- */
-#define MTERASE 13 /* erase tape -- be careful! */
-
-#define MTRAS1 14 /* run self test 1 (nondestructive) */
-#define MTRAS2 15 /* run self test 2 (destructive) */
-#define MTRAS3 16 /* reserved for self test 3 */
-
-#define MTSETBLK 20 /* set block length (SCSI) */
-#define MTSETDENSITY 21 /* set tape density (SCSI) */
-#define MTSEEK 22 /* seek to block (Tandberg, etc.) */
-#define MTTELL 23 /* tell block (Tandberg, etc.) */
-#define MTSETDRVBUFFER 24 /* set the drive buffering according to SCSI-2 */
- /* ordinary buffered operation with code 1 */
-#define MTFSS 25 /* space forward over setmarks */
-#define MTBSS 26 /* space backward over setmarks */
-#define MTWSM 27 /* write setmarks */
-
-#define MTLOCK 28 /* lock the drive door */
-#define MTUNLOCK 29 /* unlock the drive door */
-#define MTLOAD 30 /* execute the SCSI load command */
-#define MTUNLOAD 31 /* execute the SCSI unload command */
-#define MTCOMPRESSION 32/* control compression with SCSI mode page 15 */
-#define MTSETPART 33 /* Change the active tape partition */
-#define MTMKPART 34 /* Format the tape with one or two partitions */
-#define MTWEOFI 35 /* write an end-of-file record (mark) in immediate mode */
-
-/* structure for MTIOCGET - mag tape get status command */
-
-struct mtget {
- long mt_type; /* type of magtape device */
- long mt_resid; /* residual count: (not sure)
- * number of bytes ignored, or
- * number of files not skipped, or
- * number of records not skipped.
- */
- /* the following registers are device dependent */
- long mt_dsreg; /* status register */
- long mt_gstat; /* generic (device independent) status */
- long mt_erreg; /* error register */
- /* The next two fields are not always used */
- __kernel_daddr_t mt_fileno; /* number of current file on tape */
- __kernel_daddr_t mt_blkno; /* current block number */
-};
-
-
-
-/*
- * Constants for mt_type. Not all of these are supported,
- * and these are not all of the ones that are supported.
- */
-#define MT_ISUNKNOWN 0x01
-#define MT_ISQIC02 0x02 /* Generic QIC-02 tape streamer */
-#define MT_ISWT5150 0x03 /* Wangtek 5150EQ, QIC-150, QIC-02 */
-#define MT_ISARCHIVE_5945L2 0x04 /* Archive 5945L-2, QIC-24, QIC-02? */
-#define MT_ISCMSJ500 0x05 /* CMS Jumbo 500 (QIC-02?) */
-#define MT_ISTDC3610 0x06 /* Tandberg 6310, QIC-24 */
-#define MT_ISARCHIVE_VP60I 0x07 /* Archive VP60i, QIC-02 */
-#define MT_ISARCHIVE_2150L 0x08 /* Archive Viper 2150L */
-#define MT_ISARCHIVE_2060L 0x09 /* Archive Viper 2060L */
-#define MT_ISARCHIVESC499 0x0A /* Archive SC-499 QIC-36 controller */
-#define MT_ISQIC02_ALL_FEATURES 0x0F /* Generic QIC-02 with all features */
-#define MT_ISWT5099EEN24 0x11 /* Wangtek 5099-een24, 60MB, QIC-24 */
-#define MT_ISTEAC_MT2ST 0x12 /* Teac MT-2ST 155mb drive, Teac DC-1 card (Wangtek type) */
-#define MT_ISEVEREX_FT40A 0x32 /* Everex FT40A (QIC-40) */
-#define MT_ISDDS1 0x51 /* DDS device without partitions */
-#define MT_ISDDS2 0x52 /* DDS device with partitions */
-#define MT_ISONSTREAM_SC 0x61 /* OnStream SCSI tape drives (SC-x0)
- and SCSI emulated (DI, DP, USB) */
-#define MT_ISSCSI1 0x71 /* Generic ANSI SCSI-1 tape unit */
-#define MT_ISSCSI2 0x72 /* Generic ANSI SCSI-2 tape unit */
-
-/* QIC-40/80/3010/3020 ftape supported drives.
- * 20bit vendor ID + 0x800000 (see ftape-vendors.h)
- */
-#define MT_ISFTAPE_UNKNOWN 0x800000 /* obsolete */
-#define MT_ISFTAPE_FLAG 0x800000
-
-
-/* structure for MTIOCPOS - mag tape get position command */
-
-struct mtpos {
- long mt_blkno; /* current block number */
-};
-
-
-/* mag tape io control commands */
-#define MTIOCTOP _IOW('m', 1, struct mtop) /* do a mag tape op */
-#define MTIOCGET _IOR('m', 2, struct mtget) /* get tape status */
-#define MTIOCPOS _IOR('m', 3, struct mtpos) /* get tape position */
-
-
-/* Generic Mag Tape (device independent) status macros for examining
- * mt_gstat -- HP-UX compatible.
- * There is room for more generic status bits here, but I don't
- * know which of them are reserved. At least three or so should
- * be added to make this really useful.
- */
-#define GMT_EOF(x) ((x) & 0x80000000)
-#define GMT_BOT(x) ((x) & 0x40000000)
-#define GMT_EOT(x) ((x) & 0x20000000)
-#define GMT_SM(x) ((x) & 0x10000000) /* DDS setmark */
-#define GMT_EOD(x) ((x) & 0x08000000) /* DDS EOD */
-#define GMT_WR_PROT(x) ((x) & 0x04000000)
-/* #define GMT_ ? ((x) & 0x02000000) */
-#define GMT_ONLINE(x) ((x) & 0x01000000)
-#define GMT_D_6250(x) ((x) & 0x00800000)
-#define GMT_D_1600(x) ((x) & 0x00400000)
-#define GMT_D_800(x) ((x) & 0x00200000)
-/* #define GMT_ ? ((x) & 0x00100000) */
-/* #define GMT_ ? ((x) & 0x00080000) */
-#define GMT_DR_OPEN(x) ((x) & 0x00040000) /* door open (no tape) */
-/* #define GMT_ ? ((x) & 0x00020000) */
-#define GMT_IM_REP_EN(x) ((x) & 0x00010000) /* immediate report mode */
-#define GMT_CLN(x) ((x) & 0x00008000) /* cleaning requested */
-/* 15 generic status bits unused */
-
-
-/* SCSI-tape specific definitions */
-/* Bitfield shifts in the status */
-#define MT_ST_BLKSIZE_SHIFT 0
-#define MT_ST_BLKSIZE_MASK 0xffffff
-#define MT_ST_DENSITY_SHIFT 24
-#define MT_ST_DENSITY_MASK 0xff000000
-
-#define MT_ST_SOFTERR_SHIFT 0
-#define MT_ST_SOFTERR_MASK 0xffff
-
-/* Bitfields for the MTSETDRVBUFFER ioctl */
-#define MT_ST_OPTIONS 0xf0000000
-#define MT_ST_BOOLEANS 0x10000000
-#define MT_ST_SETBOOLEANS 0x30000000
-#define MT_ST_CLEARBOOLEANS 0x40000000
-#define MT_ST_WRITE_THRESHOLD 0x20000000
-#define MT_ST_DEF_BLKSIZE 0x50000000
-#define MT_ST_DEF_OPTIONS 0x60000000
-#define MT_ST_TIMEOUTS 0x70000000
-#define MT_ST_SET_TIMEOUT (MT_ST_TIMEOUTS | 0x000000)
-#define MT_ST_SET_LONG_TIMEOUT (MT_ST_TIMEOUTS | 0x100000)
-#define MT_ST_SET_CLN 0x80000000
-
-#define MT_ST_BUFFER_WRITES 0x1
-#define MT_ST_ASYNC_WRITES 0x2
-#define MT_ST_READ_AHEAD 0x4
-#define MT_ST_DEBUGGING 0x8
-#define MT_ST_TWO_FM 0x10
-#define MT_ST_FAST_MTEOM 0x20
-#define MT_ST_AUTO_LOCK 0x40
-#define MT_ST_DEF_WRITES 0x80
-#define MT_ST_CAN_BSR 0x100
-#define MT_ST_NO_BLKLIMS 0x200
-#define MT_ST_CAN_PARTITIONS 0x400
-#define MT_ST_SCSI2LOGICAL 0x800
-#define MT_ST_SYSV 0x1000
-#define MT_ST_NOWAIT 0x2000
-#define MT_ST_SILI 0x4000
-#define MT_ST_NOWAIT_EOF 0x8000
-
-/* The mode parameters to be controlled. Parameter chosen with bits 20-28 */
-#define MT_ST_CLEAR_DEFAULT 0xfffff
-#define MT_ST_DEF_DENSITY (MT_ST_DEF_OPTIONS | 0x100000)
-#define MT_ST_DEF_COMPRESSION (MT_ST_DEF_OPTIONS | 0x200000)
-#define MT_ST_DEF_DRVBUFFER (MT_ST_DEF_OPTIONS | 0x300000)
-
-/* The offset for the arguments for the special HP changer load command. */
-#define MT_ST_HPLOADER_OFFSET 10000
-
-#endif /* _LINUX_MTIO_H */
diff --git a/ANDROID_3.4.5/include/linux/mutex-debug.h b/ANDROID_3.4.5/include/linux/mutex-debug.h
deleted file mode 100644
index 731d77d6..00000000
--- a/ANDROID_3.4.5/include/linux/mutex-debug.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef __LINUX_MUTEX_DEBUG_H
-#define __LINUX_MUTEX_DEBUG_H
-
-#include <linux/linkage.h>
-#include <linux/lockdep.h>
-
-/*
- * Mutexes - debugging helpers:
- */
-
-#define __DEBUG_MUTEX_INITIALIZER(lockname) \
- , .magic = &lockname
-
-#define mutex_init(mutex) \
-do { \
- static struct lock_class_key __key; \
- \
- __mutex_init((mutex), #mutex, &__key); \
-} while (0)
-
-extern void mutex_destroy(struct mutex *lock);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mutex.h b/ANDROID_3.4.5/include/linux/mutex.h
deleted file mode 100644
index 9121595a..00000000
--- a/ANDROID_3.4.5/include/linux/mutex.h
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * Mutexes: blocking mutual exclusion locks
- *
- * started by Ingo Molnar:
- *
- * Copyright (C) 2004, 2005, 2006 Red Hat, Inc., Ingo Molnar <mingo@redhat.com>
- *
- * This file contains the main data structure and API definitions.
- */
-#ifndef __LINUX_MUTEX_H
-#define __LINUX_MUTEX_H
-
-#include <linux/list.h>
-#include <linux/spinlock_types.h>
-#include <linux/linkage.h>
-#include <linux/lockdep.h>
-
-#include <linux/atomic.h>
-
-/*
- * Simple, straightforward mutexes with strict semantics:
- *
- * - only one task can hold the mutex at a time
- * - only the owner can unlock the mutex
- * - multiple unlocks are not permitted
- * - recursive locking is not permitted
- * - a mutex object must be initialized via the API
- * - a mutex object must not be initialized via memset or copying
- * - task may not exit with mutex held
- * - memory areas where held locks reside must not be freed
- * - held mutexes must not be reinitialized
- * - mutexes may not be used in hardware or software interrupt
- * contexts such as tasklets and timers
- *
- * These semantics are fully enforced when DEBUG_MUTEXES is
- * enabled. Furthermore, besides enforcing the above rules, the mutex
- * debugging code also implements a number of additional features
- * that make lock debugging easier and faster:
- *
- * - uses symbolic names of mutexes, whenever they are printed in debug output
- * - point-of-acquire tracking, symbolic lookup of function names
- * - list of all locks held in the system, printout of them
- * - owner tracking
- * - detects self-recursing locks and prints out all relevant info
- * - detects multi-task circular deadlocks and prints out all affected
- * locks and tasks (and only those tasks)
- */
-struct mutex {
- /* 1: unlocked, 0: locked, negative: locked, possible waiters */
- atomic_t count;
- spinlock_t wait_lock;
- struct list_head wait_list;
-#if defined(CONFIG_DEBUG_MUTEXES) || defined(CONFIG_SMP)
- struct task_struct *owner;
-#endif
-#ifdef CONFIG_DEBUG_MUTEXES
- const char *name;
- void *magic;
-#endif
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
- struct lockdep_map dep_map;
-#endif
-};
-
-/*
- * This is the control structure for tasks blocked on mutex,
- * which resides on the blocked task's kernel stack:
- */
-struct mutex_waiter {
- struct list_head list;
- struct task_struct *task;
-#ifdef CONFIG_DEBUG_MUTEXES
- void *magic;
-#endif
-};
-
-#ifdef CONFIG_DEBUG_MUTEXES
-# include <linux/mutex-debug.h>
-#else
-# define __DEBUG_MUTEX_INITIALIZER(lockname)
-/**
- * mutex_init - initialize the mutex
- * @mutex: the mutex to be initialized
- *
- * Initialize the mutex to unlocked state.
- *
- * It is not allowed to initialize an already locked mutex.
- */
-# define mutex_init(mutex) \
-do { \
- static struct lock_class_key __key; \
- \
- __mutex_init((mutex), #mutex, &__key); \
-} while (0)
-static inline void mutex_destroy(struct mutex *lock) {}
-#endif
-
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
-# define __DEP_MAP_MUTEX_INITIALIZER(lockname) \
- , .dep_map = { .name = #lockname }
-#else
-# define __DEP_MAP_MUTEX_INITIALIZER(lockname)
-#endif
-
-#define __MUTEX_INITIALIZER(lockname) \
- { .count = ATOMIC_INIT(1) \
- , .wait_lock = __SPIN_LOCK_UNLOCKED(lockname.wait_lock) \
- , .wait_list = LIST_HEAD_INIT(lockname.wait_list) \
- __DEBUG_MUTEX_INITIALIZER(lockname) \
- __DEP_MAP_MUTEX_INITIALIZER(lockname) }
-
-#define DEFINE_MUTEX(mutexname) \
- struct mutex mutexname = __MUTEX_INITIALIZER(mutexname)
-
-extern void __mutex_init(struct mutex *lock, const char *name,
- struct lock_class_key *key);
-
-/**
- * mutex_is_locked - is the mutex locked
- * @lock: the mutex to be queried
- *
- * Returns 1 if the mutex is locked, 0 if unlocked.
- */
-static inline int mutex_is_locked(struct mutex *lock)
-{
- return atomic_read(&lock->count) != 1;
-}
-
-/*
- * See kernel/mutex.c for detailed documentation of these APIs.
- * Also see Documentation/mutex-design.txt.
- */
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
-extern void mutex_lock_nested(struct mutex *lock, unsigned int subclass);
-extern void _mutex_lock_nest_lock(struct mutex *lock, struct lockdep_map *nest_lock);
-extern int __must_check mutex_lock_interruptible_nested(struct mutex *lock,
- unsigned int subclass);
-extern int __must_check mutex_lock_killable_nested(struct mutex *lock,
- unsigned int subclass);
-
-#define mutex_lock(lock) mutex_lock_nested(lock, 0)
-#define mutex_lock_interruptible(lock) mutex_lock_interruptible_nested(lock, 0)
-#define mutex_lock_killable(lock) mutex_lock_killable_nested(lock, 0)
-
-#define mutex_lock_nest_lock(lock, nest_lock) \
-do { \
- typecheck(struct lockdep_map *, &(nest_lock)->dep_map); \
- _mutex_lock_nest_lock(lock, &(nest_lock)->dep_map); \
-} while (0)
-
-#else
-extern void mutex_lock(struct mutex *lock);
-extern int __must_check mutex_lock_interruptible(struct mutex *lock);
-extern int __must_check mutex_lock_killable(struct mutex *lock);
-
-# define mutex_lock_nested(lock, subclass) mutex_lock(lock)
-# define mutex_lock_interruptible_nested(lock, subclass) mutex_lock_interruptible(lock)
-# define mutex_lock_killable_nested(lock, subclass) mutex_lock_killable(lock)
-# define mutex_lock_nest_lock(lock, nest_lock) mutex_lock(lock)
-#endif
-
-/*
- * NOTE: mutex_trylock() follows the spin_trylock() convention,
- * not the down_trylock() convention!
- *
- * Returns 1 if the mutex has been acquired successfully, and 0 on contention.
- */
-extern int mutex_trylock(struct mutex *lock);
-extern void mutex_unlock(struct mutex *lock);
-extern int atomic_dec_and_mutex_lock(atomic_t *cnt, struct mutex *lock);
-
-#ifndef CONFIG_HAVE_ARCH_MUTEX_CPU_RELAX
-#define arch_mutex_cpu_relax() cpu_relax()
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mv643xx.h b/ANDROID_3.4.5/include/linux/mv643xx.h
deleted file mode 100644
index 69327b7b..00000000
--- a/ANDROID_3.4.5/include/linux/mv643xx.h
+++ /dev/null
@@ -1,979 +0,0 @@
-/*
- * mv643xx.h - MV-643XX Internal registers definition file.
- *
- * Copyright 2002 Momentum Computer, Inc.
- * Author: Matthew Dharm <mdharm@momenco.com>
- * Copyright 2002 GALILEO TECHNOLOGY, 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; either version 2 of the License, or (at your
- * option) any later version.
- */
-#ifndef __ASM_MV643XX_H
-#define __ASM_MV643XX_H
-
-#include <asm/types.h>
-#include <linux/mv643xx_eth.h>
-#include <linux/mv643xx_i2c.h>
-
-/****************************************/
-/* Processor Address Space */
-/****************************************/
-
-/* DDR SDRAM BAR and size registers */
-
-#define MV64340_CS_0_BASE_ADDR 0x008
-#define MV64340_CS_0_SIZE 0x010
-#define MV64340_CS_1_BASE_ADDR 0x208
-#define MV64340_CS_1_SIZE 0x210
-#define MV64340_CS_2_BASE_ADDR 0x018
-#define MV64340_CS_2_SIZE 0x020
-#define MV64340_CS_3_BASE_ADDR 0x218
-#define MV64340_CS_3_SIZE 0x220
-
-/* Devices BAR and size registers */
-
-#define MV64340_DEV_CS0_BASE_ADDR 0x028
-#define MV64340_DEV_CS0_SIZE 0x030
-#define MV64340_DEV_CS1_BASE_ADDR 0x228
-#define MV64340_DEV_CS1_SIZE 0x230
-#define MV64340_DEV_CS2_BASE_ADDR 0x248
-#define MV64340_DEV_CS2_SIZE 0x250
-#define MV64340_DEV_CS3_BASE_ADDR 0x038
-#define MV64340_DEV_CS3_SIZE 0x040
-#define MV64340_BOOTCS_BASE_ADDR 0x238
-#define MV64340_BOOTCS_SIZE 0x240
-
-/* PCI 0 BAR and size registers */
-
-#define MV64340_PCI_0_IO_BASE_ADDR 0x048
-#define MV64340_PCI_0_IO_SIZE 0x050
-#define MV64340_PCI_0_MEMORY0_BASE_ADDR 0x058
-#define MV64340_PCI_0_MEMORY0_SIZE 0x060
-#define MV64340_PCI_0_MEMORY1_BASE_ADDR 0x080
-#define MV64340_PCI_0_MEMORY1_SIZE 0x088
-#define MV64340_PCI_0_MEMORY2_BASE_ADDR 0x258
-#define MV64340_PCI_0_MEMORY2_SIZE 0x260
-#define MV64340_PCI_0_MEMORY3_BASE_ADDR 0x280
-#define MV64340_PCI_0_MEMORY3_SIZE 0x288
-
-/* PCI 1 BAR and size registers */
-#define MV64340_PCI_1_IO_BASE_ADDR 0x090
-#define MV64340_PCI_1_IO_SIZE 0x098
-#define MV64340_PCI_1_MEMORY0_BASE_ADDR 0x0a0
-#define MV64340_PCI_1_MEMORY0_SIZE 0x0a8
-#define MV64340_PCI_1_MEMORY1_BASE_ADDR 0x0b0
-#define MV64340_PCI_1_MEMORY1_SIZE 0x0b8
-#define MV64340_PCI_1_MEMORY2_BASE_ADDR 0x2a0
-#define MV64340_PCI_1_MEMORY2_SIZE 0x2a8
-#define MV64340_PCI_1_MEMORY3_BASE_ADDR 0x2b0
-#define MV64340_PCI_1_MEMORY3_SIZE 0x2b8
-
-/* SRAM base address */
-#define MV64340_INTEGRATED_SRAM_BASE_ADDR 0x268
-
-/* internal registers space base address */
-#define MV64340_INTERNAL_SPACE_BASE_ADDR 0x068
-
-/* Enables the CS , DEV_CS , PCI 0 and PCI 1
- windows above */
-#define MV64340_BASE_ADDR_ENABLE 0x278
-
-/****************************************/
-/* PCI remap registers */
-/****************************************/
- /* PCI 0 */
-#define MV64340_PCI_0_IO_ADDR_REMAP 0x0f0
-#define MV64340_PCI_0_MEMORY0_LOW_ADDR_REMAP 0x0f8
-#define MV64340_PCI_0_MEMORY0_HIGH_ADDR_REMAP 0x320
-#define MV64340_PCI_0_MEMORY1_LOW_ADDR_REMAP 0x100
-#define MV64340_PCI_0_MEMORY1_HIGH_ADDR_REMAP 0x328
-#define MV64340_PCI_0_MEMORY2_LOW_ADDR_REMAP 0x2f8
-#define MV64340_PCI_0_MEMORY2_HIGH_ADDR_REMAP 0x330
-#define MV64340_PCI_0_MEMORY3_LOW_ADDR_REMAP 0x300
-#define MV64340_PCI_0_MEMORY3_HIGH_ADDR_REMAP 0x338
- /* PCI 1 */
-#define MV64340_PCI_1_IO_ADDR_REMAP 0x108
-#define MV64340_PCI_1_MEMORY0_LOW_ADDR_REMAP 0x110
-#define MV64340_PCI_1_MEMORY0_HIGH_ADDR_REMAP 0x340
-#define MV64340_PCI_1_MEMORY1_LOW_ADDR_REMAP 0x118
-#define MV64340_PCI_1_MEMORY1_HIGH_ADDR_REMAP 0x348
-#define MV64340_PCI_1_MEMORY2_LOW_ADDR_REMAP 0x310
-#define MV64340_PCI_1_MEMORY2_HIGH_ADDR_REMAP 0x350
-#define MV64340_PCI_1_MEMORY3_LOW_ADDR_REMAP 0x318
-#define MV64340_PCI_1_MEMORY3_HIGH_ADDR_REMAP 0x358
-
-#define MV64340_CPU_PCI_0_HEADERS_RETARGET_CONTROL 0x3b0
-#define MV64340_CPU_PCI_0_HEADERS_RETARGET_BASE 0x3b8
-#define MV64340_CPU_PCI_1_HEADERS_RETARGET_CONTROL 0x3c0
-#define MV64340_CPU_PCI_1_HEADERS_RETARGET_BASE 0x3c8
-#define MV64340_CPU_GE_HEADERS_RETARGET_CONTROL 0x3d0
-#define MV64340_CPU_GE_HEADERS_RETARGET_BASE 0x3d8
-#define MV64340_CPU_IDMA_HEADERS_RETARGET_CONTROL 0x3e0
-#define MV64340_CPU_IDMA_HEADERS_RETARGET_BASE 0x3e8
-
-/****************************************/
-/* CPU Control Registers */
-/****************************************/
-
-#define MV64340_CPU_CONFIG 0x000
-#define MV64340_CPU_MODE 0x120
-#define MV64340_CPU_MASTER_CONTROL 0x160
-#define MV64340_CPU_CROSS_BAR_CONTROL_LOW 0x150
-#define MV64340_CPU_CROSS_BAR_CONTROL_HIGH 0x158
-#define MV64340_CPU_CROSS_BAR_TIMEOUT 0x168
-
-/****************************************/
-/* SMP RegisterS */
-/****************************************/
-
-#define MV64340_SMP_WHO_AM_I 0x200
-#define MV64340_SMP_CPU0_DOORBELL 0x214
-#define MV64340_SMP_CPU0_DOORBELL_CLEAR 0x21C
-#define MV64340_SMP_CPU1_DOORBELL 0x224
-#define MV64340_SMP_CPU1_DOORBELL_CLEAR 0x22C
-#define MV64340_SMP_CPU0_DOORBELL_MASK 0x234
-#define MV64340_SMP_CPU1_DOORBELL_MASK 0x23C
-#define MV64340_SMP_SEMAPHOR0 0x244
-#define MV64340_SMP_SEMAPHOR1 0x24c
-#define MV64340_SMP_SEMAPHOR2 0x254
-#define MV64340_SMP_SEMAPHOR3 0x25c
-#define MV64340_SMP_SEMAPHOR4 0x264
-#define MV64340_SMP_SEMAPHOR5 0x26c
-#define MV64340_SMP_SEMAPHOR6 0x274
-#define MV64340_SMP_SEMAPHOR7 0x27c
-
-/****************************************/
-/* CPU Sync Barrier Register */
-/****************************************/
-
-#define MV64340_CPU_0_SYNC_BARRIER_TRIGGER 0x0c0
-#define MV64340_CPU_0_SYNC_BARRIER_VIRTUAL 0x0c8
-#define MV64340_CPU_1_SYNC_BARRIER_TRIGGER 0x0d0
-#define MV64340_CPU_1_SYNC_BARRIER_VIRTUAL 0x0d8
-
-/****************************************/
-/* CPU Access Protect */
-/****************************************/
-
-#define MV64340_CPU_PROTECT_WINDOW_0_BASE_ADDR 0x180
-#define MV64340_CPU_PROTECT_WINDOW_0_SIZE 0x188
-#define MV64340_CPU_PROTECT_WINDOW_1_BASE_ADDR 0x190
-#define MV64340_CPU_PROTECT_WINDOW_1_SIZE 0x198
-#define MV64340_CPU_PROTECT_WINDOW_2_BASE_ADDR 0x1a0
-#define MV64340_CPU_PROTECT_WINDOW_2_SIZE 0x1a8
-#define MV64340_CPU_PROTECT_WINDOW_3_BASE_ADDR 0x1b0
-#define MV64340_CPU_PROTECT_WINDOW_3_SIZE 0x1b8
-
-
-/****************************************/
-/* CPU Error Report */
-/****************************************/
-
-#define MV64340_CPU_ERROR_ADDR_LOW 0x070
-#define MV64340_CPU_ERROR_ADDR_HIGH 0x078
-#define MV64340_CPU_ERROR_DATA_LOW 0x128
-#define MV64340_CPU_ERROR_DATA_HIGH 0x130
-#define MV64340_CPU_ERROR_PARITY 0x138
-#define MV64340_CPU_ERROR_CAUSE 0x140
-#define MV64340_CPU_ERROR_MASK 0x148
-
-/****************************************/
-/* CPU Interface Debug Registers */
-/****************************************/
-
-#define MV64340_PUNIT_SLAVE_DEBUG_LOW 0x360
-#define MV64340_PUNIT_SLAVE_DEBUG_HIGH 0x368
-#define MV64340_PUNIT_MASTER_DEBUG_LOW 0x370
-#define MV64340_PUNIT_MASTER_DEBUG_HIGH 0x378
-#define MV64340_PUNIT_MMASK 0x3e4
-
-/****************************************/
-/* Integrated SRAM Registers */
-/****************************************/
-
-#define MV64340_SRAM_CONFIG 0x380
-#define MV64340_SRAM_TEST_MODE 0X3F4
-#define MV64340_SRAM_ERROR_CAUSE 0x388
-#define MV64340_SRAM_ERROR_ADDR 0x390
-#define MV64340_SRAM_ERROR_ADDR_HIGH 0X3F8
-#define MV64340_SRAM_ERROR_DATA_LOW 0x398
-#define MV64340_SRAM_ERROR_DATA_HIGH 0x3a0
-#define MV64340_SRAM_ERROR_DATA_PARITY 0x3a8
-
-/****************************************/
-/* SDRAM Configuration */
-/****************************************/
-
-#define MV64340_SDRAM_CONFIG 0x1400
-#define MV64340_D_UNIT_CONTROL_LOW 0x1404
-#define MV64340_D_UNIT_CONTROL_HIGH 0x1424
-#define MV64340_SDRAM_TIMING_CONTROL_LOW 0x1408
-#define MV64340_SDRAM_TIMING_CONTROL_HIGH 0x140c
-#define MV64340_SDRAM_ADDR_CONTROL 0x1410
-#define MV64340_SDRAM_OPEN_PAGES_CONTROL 0x1414
-#define MV64340_SDRAM_OPERATION 0x1418
-#define MV64340_SDRAM_MODE 0x141c
-#define MV64340_EXTENDED_DRAM_MODE 0x1420
-#define MV64340_SDRAM_CROSS_BAR_CONTROL_LOW 0x1430
-#define MV64340_SDRAM_CROSS_BAR_CONTROL_HIGH 0x1434
-#define MV64340_SDRAM_CROSS_BAR_TIMEOUT 0x1438
-#define MV64340_SDRAM_ADDR_CTRL_PADS_CALIBRATION 0x14c0
-#define MV64340_SDRAM_DATA_PADS_CALIBRATION 0x14c4
-
-/****************************************/
-/* SDRAM Error Report */
-/****************************************/
-
-#define MV64340_SDRAM_ERROR_DATA_LOW 0x1444
-#define MV64340_SDRAM_ERROR_DATA_HIGH 0x1440
-#define MV64340_SDRAM_ERROR_ADDR 0x1450
-#define MV64340_SDRAM_RECEIVED_ECC 0x1448
-#define MV64340_SDRAM_CALCULATED_ECC 0x144c
-#define MV64340_SDRAM_ECC_CONTROL 0x1454
-#define MV64340_SDRAM_ECC_ERROR_COUNTER 0x1458
-
-/******************************************/
-/* Controlled Delay Line (CDL) Registers */
-/******************************************/
-
-#define MV64340_DFCDL_CONFIG0 0x1480
-#define MV64340_DFCDL_CONFIG1 0x1484
-#define MV64340_DLL_WRITE 0x1488
-#define MV64340_DLL_READ 0x148c
-#define MV64340_SRAM_ADDR 0x1490
-#define MV64340_SRAM_DATA0 0x1494
-#define MV64340_SRAM_DATA1 0x1498
-#define MV64340_SRAM_DATA2 0x149c
-#define MV64340_DFCL_PROBE 0x14a0
-
-/******************************************/
-/* Debug Registers */
-/******************************************/
-
-#define MV64340_DUNIT_DEBUG_LOW 0x1460
-#define MV64340_DUNIT_DEBUG_HIGH 0x1464
-#define MV64340_DUNIT_MMASK 0X1b40
-
-/****************************************/
-/* Device Parameters */
-/****************************************/
-
-#define MV64340_DEVICE_BANK0_PARAMETERS 0x45c
-#define MV64340_DEVICE_BANK1_PARAMETERS 0x460
-#define MV64340_DEVICE_BANK2_PARAMETERS 0x464
-#define MV64340_DEVICE_BANK3_PARAMETERS 0x468
-#define MV64340_DEVICE_BOOT_BANK_PARAMETERS 0x46c
-#define MV64340_DEVICE_INTERFACE_CONTROL 0x4c0
-#define MV64340_DEVICE_INTERFACE_CROSS_BAR_CONTROL_LOW 0x4c8
-#define MV64340_DEVICE_INTERFACE_CROSS_BAR_CONTROL_HIGH 0x4cc
-#define MV64340_DEVICE_INTERFACE_CROSS_BAR_TIMEOUT 0x4c4
-
-/****************************************/
-/* Device interrupt registers */
-/****************************************/
-
-#define MV64340_DEVICE_INTERRUPT_CAUSE 0x4d0
-#define MV64340_DEVICE_INTERRUPT_MASK 0x4d4
-#define MV64340_DEVICE_ERROR_ADDR 0x4d8
-#define MV64340_DEVICE_ERROR_DATA 0x4dc
-#define MV64340_DEVICE_ERROR_PARITY 0x4e0
-
-/****************************************/
-/* Device debug registers */
-/****************************************/
-
-#define MV64340_DEVICE_DEBUG_LOW 0x4e4
-#define MV64340_DEVICE_DEBUG_HIGH 0x4e8
-#define MV64340_RUNIT_MMASK 0x4f0
-
-/****************************************/
-/* PCI Slave Address Decoding registers */
-/****************************************/
-
-#define MV64340_PCI_0_CS_0_BANK_SIZE 0xc08
-#define MV64340_PCI_1_CS_0_BANK_SIZE 0xc88
-#define MV64340_PCI_0_CS_1_BANK_SIZE 0xd08
-#define MV64340_PCI_1_CS_1_BANK_SIZE 0xd88
-#define MV64340_PCI_0_CS_2_BANK_SIZE 0xc0c
-#define MV64340_PCI_1_CS_2_BANK_SIZE 0xc8c
-#define MV64340_PCI_0_CS_3_BANK_SIZE 0xd0c
-#define MV64340_PCI_1_CS_3_BANK_SIZE 0xd8c
-#define MV64340_PCI_0_DEVCS_0_BANK_SIZE 0xc10
-#define MV64340_PCI_1_DEVCS_0_BANK_SIZE 0xc90
-#define MV64340_PCI_0_DEVCS_1_BANK_SIZE 0xd10
-#define MV64340_PCI_1_DEVCS_1_BANK_SIZE 0xd90
-#define MV64340_PCI_0_DEVCS_2_BANK_SIZE 0xd18
-#define MV64340_PCI_1_DEVCS_2_BANK_SIZE 0xd98
-#define MV64340_PCI_0_DEVCS_3_BANK_SIZE 0xc14
-#define MV64340_PCI_1_DEVCS_3_BANK_SIZE 0xc94
-#define MV64340_PCI_0_DEVCS_BOOT_BANK_SIZE 0xd14
-#define MV64340_PCI_1_DEVCS_BOOT_BANK_SIZE 0xd94
-#define MV64340_PCI_0_P2P_MEM0_BAR_SIZE 0xd1c
-#define MV64340_PCI_1_P2P_MEM0_BAR_SIZE 0xd9c
-#define MV64340_PCI_0_P2P_MEM1_BAR_SIZE 0xd20
-#define MV64340_PCI_1_P2P_MEM1_BAR_SIZE 0xda0
-#define MV64340_PCI_0_P2P_I_O_BAR_SIZE 0xd24
-#define MV64340_PCI_1_P2P_I_O_BAR_SIZE 0xda4
-#define MV64340_PCI_0_CPU_BAR_SIZE 0xd28
-#define MV64340_PCI_1_CPU_BAR_SIZE 0xda8
-#define MV64340_PCI_0_INTERNAL_SRAM_BAR_SIZE 0xe00
-#define MV64340_PCI_1_INTERNAL_SRAM_BAR_SIZE 0xe80
-#define MV64340_PCI_0_EXPANSION_ROM_BAR_SIZE 0xd2c
-#define MV64340_PCI_1_EXPANSION_ROM_BAR_SIZE 0xd9c
-#define MV64340_PCI_0_BASE_ADDR_REG_ENABLE 0xc3c
-#define MV64340_PCI_1_BASE_ADDR_REG_ENABLE 0xcbc
-#define MV64340_PCI_0_CS_0_BASE_ADDR_REMAP 0xc48
-#define MV64340_PCI_1_CS_0_BASE_ADDR_REMAP 0xcc8
-#define MV64340_PCI_0_CS_1_BASE_ADDR_REMAP 0xd48
-#define MV64340_PCI_1_CS_1_BASE_ADDR_REMAP 0xdc8
-#define MV64340_PCI_0_CS_2_BASE_ADDR_REMAP 0xc4c
-#define MV64340_PCI_1_CS_2_BASE_ADDR_REMAP 0xccc
-#define MV64340_PCI_0_CS_3_BASE_ADDR_REMAP 0xd4c
-#define MV64340_PCI_1_CS_3_BASE_ADDR_REMAP 0xdcc
-#define MV64340_PCI_0_CS_0_BASE_HIGH_ADDR_REMAP 0xF04
-#define MV64340_PCI_1_CS_0_BASE_HIGH_ADDR_REMAP 0xF84
-#define MV64340_PCI_0_CS_1_BASE_HIGH_ADDR_REMAP 0xF08
-#define MV64340_PCI_1_CS_1_BASE_HIGH_ADDR_REMAP 0xF88
-#define MV64340_PCI_0_CS_2_BASE_HIGH_ADDR_REMAP 0xF0C
-#define MV64340_PCI_1_CS_2_BASE_HIGH_ADDR_REMAP 0xF8C
-#define MV64340_PCI_0_CS_3_BASE_HIGH_ADDR_REMAP 0xF10
-#define MV64340_PCI_1_CS_3_BASE_HIGH_ADDR_REMAP 0xF90
-#define MV64340_PCI_0_DEVCS_0_BASE_ADDR_REMAP 0xc50
-#define MV64340_PCI_1_DEVCS_0_BASE_ADDR_REMAP 0xcd0
-#define MV64340_PCI_0_DEVCS_1_BASE_ADDR_REMAP 0xd50
-#define MV64340_PCI_1_DEVCS_1_BASE_ADDR_REMAP 0xdd0
-#define MV64340_PCI_0_DEVCS_2_BASE_ADDR_REMAP 0xd58
-#define MV64340_PCI_1_DEVCS_2_BASE_ADDR_REMAP 0xdd8
-#define MV64340_PCI_0_DEVCS_3_BASE_ADDR_REMAP 0xc54
-#define MV64340_PCI_1_DEVCS_3_BASE_ADDR_REMAP 0xcd4
-#define MV64340_PCI_0_DEVCS_BOOTCS_BASE_ADDR_REMAP 0xd54
-#define MV64340_PCI_1_DEVCS_BOOTCS_BASE_ADDR_REMAP 0xdd4
-#define MV64340_PCI_0_P2P_MEM0_BASE_ADDR_REMAP_LOW 0xd5c
-#define MV64340_PCI_1_P2P_MEM0_BASE_ADDR_REMAP_LOW 0xddc
-#define MV64340_PCI_0_P2P_MEM0_BASE_ADDR_REMAP_HIGH 0xd60
-#define MV64340_PCI_1_P2P_MEM0_BASE_ADDR_REMAP_HIGH 0xde0
-#define MV64340_PCI_0_P2P_MEM1_BASE_ADDR_REMAP_LOW 0xd64
-#define MV64340_PCI_1_P2P_MEM1_BASE_ADDR_REMAP_LOW 0xde4
-#define MV64340_PCI_0_P2P_MEM1_BASE_ADDR_REMAP_HIGH 0xd68
-#define MV64340_PCI_1_P2P_MEM1_BASE_ADDR_REMAP_HIGH 0xde8
-#define MV64340_PCI_0_P2P_I_O_BASE_ADDR_REMAP 0xd6c
-#define MV64340_PCI_1_P2P_I_O_BASE_ADDR_REMAP 0xdec
-#define MV64340_PCI_0_CPU_BASE_ADDR_REMAP_LOW 0xd70
-#define MV64340_PCI_1_CPU_BASE_ADDR_REMAP_LOW 0xdf0
-#define MV64340_PCI_0_CPU_BASE_ADDR_REMAP_HIGH 0xd74
-#define MV64340_PCI_1_CPU_BASE_ADDR_REMAP_HIGH 0xdf4
-#define MV64340_PCI_0_INTEGRATED_SRAM_BASE_ADDR_REMAP 0xf00
-#define MV64340_PCI_1_INTEGRATED_SRAM_BASE_ADDR_REMAP 0xf80
-#define MV64340_PCI_0_EXPANSION_ROM_BASE_ADDR_REMAP 0xf38
-#define MV64340_PCI_1_EXPANSION_ROM_BASE_ADDR_REMAP 0xfb8
-#define MV64340_PCI_0_ADDR_DECODE_CONTROL 0xd3c
-#define MV64340_PCI_1_ADDR_DECODE_CONTROL 0xdbc
-#define MV64340_PCI_0_HEADERS_RETARGET_CONTROL 0xF40
-#define MV64340_PCI_1_HEADERS_RETARGET_CONTROL 0xFc0
-#define MV64340_PCI_0_HEADERS_RETARGET_BASE 0xF44
-#define MV64340_PCI_1_HEADERS_RETARGET_BASE 0xFc4
-#define MV64340_PCI_0_HEADERS_RETARGET_HIGH 0xF48
-#define MV64340_PCI_1_HEADERS_RETARGET_HIGH 0xFc8
-
-/***********************************/
-/* PCI Control Register Map */
-/***********************************/
-
-#define MV64340_PCI_0_DLL_STATUS_AND_COMMAND 0x1d20
-#define MV64340_PCI_1_DLL_STATUS_AND_COMMAND 0x1da0
-#define MV64340_PCI_0_MPP_PADS_DRIVE_CONTROL 0x1d1C
-#define MV64340_PCI_1_MPP_PADS_DRIVE_CONTROL 0x1d9C
-#define MV64340_PCI_0_COMMAND 0xc00
-#define MV64340_PCI_1_COMMAND 0xc80
-#define MV64340_PCI_0_MODE 0xd00
-#define MV64340_PCI_1_MODE 0xd80
-#define MV64340_PCI_0_RETRY 0xc04
-#define MV64340_PCI_1_RETRY 0xc84
-#define MV64340_PCI_0_READ_BUFFER_DISCARD_TIMER 0xd04
-#define MV64340_PCI_1_READ_BUFFER_DISCARD_TIMER 0xd84
-#define MV64340_PCI_0_MSI_TRIGGER_TIMER 0xc38
-#define MV64340_PCI_1_MSI_TRIGGER_TIMER 0xcb8
-#define MV64340_PCI_0_ARBITER_CONTROL 0x1d00
-#define MV64340_PCI_1_ARBITER_CONTROL 0x1d80
-#define MV64340_PCI_0_CROSS_BAR_CONTROL_LOW 0x1d08
-#define MV64340_PCI_1_CROSS_BAR_CONTROL_LOW 0x1d88
-#define MV64340_PCI_0_CROSS_BAR_CONTROL_HIGH 0x1d0c
-#define MV64340_PCI_1_CROSS_BAR_CONTROL_HIGH 0x1d8c
-#define MV64340_PCI_0_CROSS_BAR_TIMEOUT 0x1d04
-#define MV64340_PCI_1_CROSS_BAR_TIMEOUT 0x1d84
-#define MV64340_PCI_0_SYNC_BARRIER_TRIGGER_REG 0x1D18
-#define MV64340_PCI_1_SYNC_BARRIER_TRIGGER_REG 0x1D98
-#define MV64340_PCI_0_SYNC_BARRIER_VIRTUAL_REG 0x1d10
-#define MV64340_PCI_1_SYNC_BARRIER_VIRTUAL_REG 0x1d90
-#define MV64340_PCI_0_P2P_CONFIG 0x1d14
-#define MV64340_PCI_1_P2P_CONFIG 0x1d94
-
-#define MV64340_PCI_0_ACCESS_CONTROL_BASE_0_LOW 0x1e00
-#define MV64340_PCI_0_ACCESS_CONTROL_BASE_0_HIGH 0x1e04
-#define MV64340_PCI_0_ACCESS_CONTROL_SIZE_0 0x1e08
-#define MV64340_PCI_0_ACCESS_CONTROL_BASE_1_LOW 0x1e10
-#define MV64340_PCI_0_ACCESS_CONTROL_BASE_1_HIGH 0x1e14
-#define MV64340_PCI_0_ACCESS_CONTROL_SIZE_1 0x1e18
-#define MV64340_PCI_0_ACCESS_CONTROL_BASE_2_LOW 0x1e20
-#define MV64340_PCI_0_ACCESS_CONTROL_BASE_2_HIGH 0x1e24
-#define MV64340_PCI_0_ACCESS_CONTROL_SIZE_2 0x1e28
-#define MV64340_PCI_0_ACCESS_CONTROL_BASE_3_LOW 0x1e30
-#define MV64340_PCI_0_ACCESS_CONTROL_BASE_3_HIGH 0x1e34
-#define MV64340_PCI_0_ACCESS_CONTROL_SIZE_3 0x1e38
-#define MV64340_PCI_0_ACCESS_CONTROL_BASE_4_LOW 0x1e40
-#define MV64340_PCI_0_ACCESS_CONTROL_BASE_4_HIGH 0x1e44
-#define MV64340_PCI_0_ACCESS_CONTROL_SIZE_4 0x1e48
-#define MV64340_PCI_0_ACCESS_CONTROL_BASE_5_LOW 0x1e50
-#define MV64340_PCI_0_ACCESS_CONTROL_BASE_5_HIGH 0x1e54
-#define MV64340_PCI_0_ACCESS_CONTROL_SIZE_5 0x1e58
-
-#define MV64340_PCI_1_ACCESS_CONTROL_BASE_0_LOW 0x1e80
-#define MV64340_PCI_1_ACCESS_CONTROL_BASE_0_HIGH 0x1e84
-#define MV64340_PCI_1_ACCESS_CONTROL_SIZE_0 0x1e88
-#define MV64340_PCI_1_ACCESS_CONTROL_BASE_1_LOW 0x1e90
-#define MV64340_PCI_1_ACCESS_CONTROL_BASE_1_HIGH 0x1e94
-#define MV64340_PCI_1_ACCESS_CONTROL_SIZE_1 0x1e98
-#define MV64340_PCI_1_ACCESS_CONTROL_BASE_2_LOW 0x1ea0
-#define MV64340_PCI_1_ACCESS_CONTROL_BASE_2_HIGH 0x1ea4
-#define MV64340_PCI_1_ACCESS_CONTROL_SIZE_2 0x1ea8
-#define MV64340_PCI_1_ACCESS_CONTROL_BASE_3_LOW 0x1eb0
-#define MV64340_PCI_1_ACCESS_CONTROL_BASE_3_HIGH 0x1eb4
-#define MV64340_PCI_1_ACCESS_CONTROL_SIZE_3 0x1eb8
-#define MV64340_PCI_1_ACCESS_CONTROL_BASE_4_LOW 0x1ec0
-#define MV64340_PCI_1_ACCESS_CONTROL_BASE_4_HIGH 0x1ec4
-#define MV64340_PCI_1_ACCESS_CONTROL_SIZE_4 0x1ec8
-#define MV64340_PCI_1_ACCESS_CONTROL_BASE_5_LOW 0x1ed0
-#define MV64340_PCI_1_ACCESS_CONTROL_BASE_5_HIGH 0x1ed4
-#define MV64340_PCI_1_ACCESS_CONTROL_SIZE_5 0x1ed8
-
-/****************************************/
-/* PCI Configuration Access Registers */
-/****************************************/
-
-#define MV64340_PCI_0_CONFIG_ADDR 0xcf8
-#define MV64340_PCI_0_CONFIG_DATA_VIRTUAL_REG 0xcfc
-#define MV64340_PCI_1_CONFIG_ADDR 0xc78
-#define MV64340_PCI_1_CONFIG_DATA_VIRTUAL_REG 0xc7c
-#define MV64340_PCI_0_INTERRUPT_ACKNOWLEDGE_VIRTUAL_REG 0xc34
-#define MV64340_PCI_1_INTERRUPT_ACKNOWLEDGE_VIRTUAL_REG 0xcb4
-
-/****************************************/
-/* PCI Error Report Registers */
-/****************************************/
-
-#define MV64340_PCI_0_SERR_MASK 0xc28
-#define MV64340_PCI_1_SERR_MASK 0xca8
-#define MV64340_PCI_0_ERROR_ADDR_LOW 0x1d40
-#define MV64340_PCI_1_ERROR_ADDR_LOW 0x1dc0
-#define MV64340_PCI_0_ERROR_ADDR_HIGH 0x1d44
-#define MV64340_PCI_1_ERROR_ADDR_HIGH 0x1dc4
-#define MV64340_PCI_0_ERROR_ATTRIBUTE 0x1d48
-#define MV64340_PCI_1_ERROR_ATTRIBUTE 0x1dc8
-#define MV64340_PCI_0_ERROR_COMMAND 0x1d50
-#define MV64340_PCI_1_ERROR_COMMAND 0x1dd0
-#define MV64340_PCI_0_ERROR_CAUSE 0x1d58
-#define MV64340_PCI_1_ERROR_CAUSE 0x1dd8
-#define MV64340_PCI_0_ERROR_MASK 0x1d5c
-#define MV64340_PCI_1_ERROR_MASK 0x1ddc
-
-/****************************************/
-/* PCI Debug Registers */
-/****************************************/
-
-#define MV64340_PCI_0_MMASK 0X1D24
-#define MV64340_PCI_1_MMASK 0X1DA4
-
-/*********************************************/
-/* PCI Configuration, Function 0, Registers */
-/*********************************************/
-
-#define MV64340_PCI_DEVICE_AND_VENDOR_ID 0x000
-#define MV64340_PCI_STATUS_AND_COMMAND 0x004
-#define MV64340_PCI_CLASS_CODE_AND_REVISION_ID 0x008
-#define MV64340_PCI_BIST_HEADER_TYPE_LATENCY_TIMER_CACHE_LINE 0x00C
-
-#define MV64340_PCI_SCS_0_BASE_ADDR_LOW 0x010
-#define MV64340_PCI_SCS_0_BASE_ADDR_HIGH 0x014
-#define MV64340_PCI_SCS_1_BASE_ADDR_LOW 0x018
-#define MV64340_PCI_SCS_1_BASE_ADDR_HIGH 0x01C
-#define MV64340_PCI_INTERNAL_REG_MEM_MAPPED_BASE_ADDR_LOW 0x020
-#define MV64340_PCI_INTERNAL_REG_MEM_MAPPED_BASE_ADDR_HIGH 0x024
-#define MV64340_PCI_SUBSYSTEM_ID_AND_SUBSYSTEM_VENDOR_ID 0x02c
-#define MV64340_PCI_EXPANSION_ROM_BASE_ADDR_REG 0x030
-#define MV64340_PCI_CAPABILTY_LIST_POINTER 0x034
-#define MV64340_PCI_INTERRUPT_PIN_AND_LINE 0x03C
- /* capability list */
-#define MV64340_PCI_POWER_MANAGEMENT_CAPABILITY 0x040
-#define MV64340_PCI_POWER_MANAGEMENT_STATUS_AND_CONTROL 0x044
-#define MV64340_PCI_VPD_ADDR 0x048
-#define MV64340_PCI_VPD_DATA 0x04c
-#define MV64340_PCI_MSI_MESSAGE_CONTROL 0x050
-#define MV64340_PCI_MSI_MESSAGE_ADDR 0x054
-#define MV64340_PCI_MSI_MESSAGE_UPPER_ADDR 0x058
-#define MV64340_PCI_MSI_MESSAGE_DATA 0x05c
-#define MV64340_PCI_X_COMMAND 0x060
-#define MV64340_PCI_X_STATUS 0x064
-#define MV64340_PCI_COMPACT_PCI_HOT_SWAP 0x068
-
-/***********************************************/
-/* PCI Configuration, Function 1, Registers */
-/***********************************************/
-
-#define MV64340_PCI_SCS_2_BASE_ADDR_LOW 0x110
-#define MV64340_PCI_SCS_2_BASE_ADDR_HIGH 0x114
-#define MV64340_PCI_SCS_3_BASE_ADDR_LOW 0x118
-#define MV64340_PCI_SCS_3_BASE_ADDR_HIGH 0x11c
-#define MV64340_PCI_INTERNAL_SRAM_BASE_ADDR_LOW 0x120
-#define MV64340_PCI_INTERNAL_SRAM_BASE_ADDR_HIGH 0x124
-
-/***********************************************/
-/* PCI Configuration, Function 2, Registers */
-/***********************************************/
-
-#define MV64340_PCI_DEVCS_0_BASE_ADDR_LOW 0x210
-#define MV64340_PCI_DEVCS_0_BASE_ADDR_HIGH 0x214
-#define MV64340_PCI_DEVCS_1_BASE_ADDR_LOW 0x218
-#define MV64340_PCI_DEVCS_1_BASE_ADDR_HIGH 0x21c
-#define MV64340_PCI_DEVCS_2_BASE_ADDR_LOW 0x220
-#define MV64340_PCI_DEVCS_2_BASE_ADDR_HIGH 0x224
-
-/***********************************************/
-/* PCI Configuration, Function 3, Registers */
-/***********************************************/
-
-#define MV64340_PCI_DEVCS_3_BASE_ADDR_LOW 0x310
-#define MV64340_PCI_DEVCS_3_BASE_ADDR_HIGH 0x314
-#define MV64340_PCI_BOOT_CS_BASE_ADDR_LOW 0x318
-#define MV64340_PCI_BOOT_CS_BASE_ADDR_HIGH 0x31c
-#define MV64340_PCI_CPU_BASE_ADDR_LOW 0x220
-#define MV64340_PCI_CPU_BASE_ADDR_HIGH 0x224
-
-/***********************************************/
-/* PCI Configuration, Function 4, Registers */
-/***********************************************/
-
-#define MV64340_PCI_P2P_MEM0_BASE_ADDR_LOW 0x410
-#define MV64340_PCI_P2P_MEM0_BASE_ADDR_HIGH 0x414
-#define MV64340_PCI_P2P_MEM1_BASE_ADDR_LOW 0x418
-#define MV64340_PCI_P2P_MEM1_BASE_ADDR_HIGH 0x41c
-#define MV64340_PCI_P2P_I_O_BASE_ADDR 0x420
-#define MV64340_PCI_INTERNAL_REGS_I_O_MAPPED_BASE_ADDR 0x424
-
-/****************************************/
-/* Messaging Unit Registers (I20) */
-/****************************************/
-
-#define MV64340_I2O_INBOUND_MESSAGE_REG0_PCI_0_SIDE 0x010
-#define MV64340_I2O_INBOUND_MESSAGE_REG1_PCI_0_SIDE 0x014
-#define MV64340_I2O_OUTBOUND_MESSAGE_REG0_PCI_0_SIDE 0x018
-#define MV64340_I2O_OUTBOUND_MESSAGE_REG1_PCI_0_SIDE 0x01C
-#define MV64340_I2O_INBOUND_DOORBELL_REG_PCI_0_SIDE 0x020
-#define MV64340_I2O_INBOUND_INTERRUPT_CAUSE_REG_PCI_0_SIDE 0x024
-#define MV64340_I2O_INBOUND_INTERRUPT_MASK_REG_PCI_0_SIDE 0x028
-#define MV64340_I2O_OUTBOUND_DOORBELL_REG_PCI_0_SIDE 0x02C
-#define MV64340_I2O_OUTBOUND_INTERRUPT_CAUSE_REG_PCI_0_SIDE 0x030
-#define MV64340_I2O_OUTBOUND_INTERRUPT_MASK_REG_PCI_0_SIDE 0x034
-#define MV64340_I2O_INBOUND_QUEUE_PORT_VIRTUAL_REG_PCI_0_SIDE 0x040
-#define MV64340_I2O_OUTBOUND_QUEUE_PORT_VIRTUAL_REG_PCI_0_SIDE 0x044
-#define MV64340_I2O_QUEUE_CONTROL_REG_PCI_0_SIDE 0x050
-#define MV64340_I2O_QUEUE_BASE_ADDR_REG_PCI_0_SIDE 0x054
-#define MV64340_I2O_INBOUND_FREE_HEAD_POINTER_REG_PCI_0_SIDE 0x060
-#define MV64340_I2O_INBOUND_FREE_TAIL_POINTER_REG_PCI_0_SIDE 0x064
-#define MV64340_I2O_INBOUND_POST_HEAD_POINTER_REG_PCI_0_SIDE 0x068
-#define MV64340_I2O_INBOUND_POST_TAIL_POINTER_REG_PCI_0_SIDE 0x06C
-#define MV64340_I2O_OUTBOUND_FREE_HEAD_POINTER_REG_PCI_0_SIDE 0x070
-#define MV64340_I2O_OUTBOUND_FREE_TAIL_POINTER_REG_PCI_0_SIDE 0x074
-#define MV64340_I2O_OUTBOUND_POST_HEAD_POINTER_REG_PCI_0_SIDE 0x0F8
-#define MV64340_I2O_OUTBOUND_POST_TAIL_POINTER_REG_PCI_0_SIDE 0x0FC
-
-#define MV64340_I2O_INBOUND_MESSAGE_REG0_PCI_1_SIDE 0x090
-#define MV64340_I2O_INBOUND_MESSAGE_REG1_PCI_1_SIDE 0x094
-#define MV64340_I2O_OUTBOUND_MESSAGE_REG0_PCI_1_SIDE 0x098
-#define MV64340_I2O_OUTBOUND_MESSAGE_REG1_PCI_1_SIDE 0x09C
-#define MV64340_I2O_INBOUND_DOORBELL_REG_PCI_1_SIDE 0x0A0
-#define MV64340_I2O_INBOUND_INTERRUPT_CAUSE_REG_PCI_1_SIDE 0x0A4
-#define MV64340_I2O_INBOUND_INTERRUPT_MASK_REG_PCI_1_SIDE 0x0A8
-#define MV64340_I2O_OUTBOUND_DOORBELL_REG_PCI_1_SIDE 0x0AC
-#define MV64340_I2O_OUTBOUND_INTERRUPT_CAUSE_REG_PCI_1_SIDE 0x0B0
-#define MV64340_I2O_OUTBOUND_INTERRUPT_MASK_REG_PCI_1_SIDE 0x0B4
-#define MV64340_I2O_INBOUND_QUEUE_PORT_VIRTUAL_REG_PCI_1_SIDE 0x0C0
-#define MV64340_I2O_OUTBOUND_QUEUE_PORT_VIRTUAL_REG_PCI_1_SIDE 0x0C4
-#define MV64340_I2O_QUEUE_CONTROL_REG_PCI_1_SIDE 0x0D0
-#define MV64340_I2O_QUEUE_BASE_ADDR_REG_PCI_1_SIDE 0x0D4
-#define MV64340_I2O_INBOUND_FREE_HEAD_POINTER_REG_PCI_1_SIDE 0x0E0
-#define MV64340_I2O_INBOUND_FREE_TAIL_POINTER_REG_PCI_1_SIDE 0x0E4
-#define MV64340_I2O_INBOUND_POST_HEAD_POINTER_REG_PCI_1_SIDE 0x0E8
-#define MV64340_I2O_INBOUND_POST_TAIL_POINTER_REG_PCI_1_SIDE 0x0EC
-#define MV64340_I2O_OUTBOUND_FREE_HEAD_POINTER_REG_PCI_1_SIDE 0x0F0
-#define MV64340_I2O_OUTBOUND_FREE_TAIL_POINTER_REG_PCI_1_SIDE 0x0F4
-#define MV64340_I2O_OUTBOUND_POST_HEAD_POINTER_REG_PCI_1_SIDE 0x078
-#define MV64340_I2O_OUTBOUND_POST_TAIL_POINTER_REG_PCI_1_SIDE 0x07C
-
-#define MV64340_I2O_INBOUND_MESSAGE_REG0_CPU0_SIDE 0x1C10
-#define MV64340_I2O_INBOUND_MESSAGE_REG1_CPU0_SIDE 0x1C14
-#define MV64340_I2O_OUTBOUND_MESSAGE_REG0_CPU0_SIDE 0x1C18
-#define MV64340_I2O_OUTBOUND_MESSAGE_REG1_CPU0_SIDE 0x1C1C
-#define MV64340_I2O_INBOUND_DOORBELL_REG_CPU0_SIDE 0x1C20
-#define MV64340_I2O_INBOUND_INTERRUPT_CAUSE_REG_CPU0_SIDE 0x1C24
-#define MV64340_I2O_INBOUND_INTERRUPT_MASK_REG_CPU0_SIDE 0x1C28
-#define MV64340_I2O_OUTBOUND_DOORBELL_REG_CPU0_SIDE 0x1C2C
-#define MV64340_I2O_OUTBOUND_INTERRUPT_CAUSE_REG_CPU0_SIDE 0x1C30
-#define MV64340_I2O_OUTBOUND_INTERRUPT_MASK_REG_CPU0_SIDE 0x1C34
-#define MV64340_I2O_INBOUND_QUEUE_PORT_VIRTUAL_REG_CPU0_SIDE 0x1C40
-#define MV64340_I2O_OUTBOUND_QUEUE_PORT_VIRTUAL_REG_CPU0_SIDE 0x1C44
-#define MV64340_I2O_QUEUE_CONTROL_REG_CPU0_SIDE 0x1C50
-#define MV64340_I2O_QUEUE_BASE_ADDR_REG_CPU0_SIDE 0x1C54
-#define MV64340_I2O_INBOUND_FREE_HEAD_POINTER_REG_CPU0_SIDE 0x1C60
-#define MV64340_I2O_INBOUND_FREE_TAIL_POINTER_REG_CPU0_SIDE 0x1C64
-#define MV64340_I2O_INBOUND_POST_HEAD_POINTER_REG_CPU0_SIDE 0x1C68
-#define MV64340_I2O_INBOUND_POST_TAIL_POINTER_REG_CPU0_SIDE 0x1C6C
-#define MV64340_I2O_OUTBOUND_FREE_HEAD_POINTER_REG_CPU0_SIDE 0x1C70
-#define MV64340_I2O_OUTBOUND_FREE_TAIL_POINTER_REG_CPU0_SIDE 0x1C74
-#define MV64340_I2O_OUTBOUND_POST_HEAD_POINTER_REG_CPU0_SIDE 0x1CF8
-#define MV64340_I2O_OUTBOUND_POST_TAIL_POINTER_REG_CPU0_SIDE 0x1CFC
-#define MV64340_I2O_INBOUND_MESSAGE_REG0_CPU1_SIDE 0x1C90
-#define MV64340_I2O_INBOUND_MESSAGE_REG1_CPU1_SIDE 0x1C94
-#define MV64340_I2O_OUTBOUND_MESSAGE_REG0_CPU1_SIDE 0x1C98
-#define MV64340_I2O_OUTBOUND_MESSAGE_REG1_CPU1_SIDE 0x1C9C
-#define MV64340_I2O_INBOUND_DOORBELL_REG_CPU1_SIDE 0x1CA0
-#define MV64340_I2O_INBOUND_INTERRUPT_CAUSE_REG_CPU1_SIDE 0x1CA4
-#define MV64340_I2O_INBOUND_INTERRUPT_MASK_REG_CPU1_SIDE 0x1CA8
-#define MV64340_I2O_OUTBOUND_DOORBELL_REG_CPU1_SIDE 0x1CAC
-#define MV64340_I2O_OUTBOUND_INTERRUPT_CAUSE_REG_CPU1_SIDE 0x1CB0
-#define MV64340_I2O_OUTBOUND_INTERRUPT_MASK_REG_CPU1_SIDE 0x1CB4
-#define MV64340_I2O_INBOUND_QUEUE_PORT_VIRTUAL_REG_CPU1_SIDE 0x1CC0
-#define MV64340_I2O_OUTBOUND_QUEUE_PORT_VIRTUAL_REG_CPU1_SIDE 0x1CC4
-#define MV64340_I2O_QUEUE_CONTROL_REG_CPU1_SIDE 0x1CD0
-#define MV64340_I2O_QUEUE_BASE_ADDR_REG_CPU1_SIDE 0x1CD4
-#define MV64340_I2O_INBOUND_FREE_HEAD_POINTER_REG_CPU1_SIDE 0x1CE0
-#define MV64340_I2O_INBOUND_FREE_TAIL_POINTER_REG_CPU1_SIDE 0x1CE4
-#define MV64340_I2O_INBOUND_POST_HEAD_POINTER_REG_CPU1_SIDE 0x1CE8
-#define MV64340_I2O_INBOUND_POST_TAIL_POINTER_REG_CPU1_SIDE 0x1CEC
-#define MV64340_I2O_OUTBOUND_FREE_HEAD_POINTER_REG_CPU1_SIDE 0x1CF0
-#define MV64340_I2O_OUTBOUND_FREE_TAIL_POINTER_REG_CPU1_SIDE 0x1CF4
-#define MV64340_I2O_OUTBOUND_POST_HEAD_POINTER_REG_CPU1_SIDE 0x1C78
-#define MV64340_I2O_OUTBOUND_POST_TAIL_POINTER_REG_CPU1_SIDE 0x1C7C
-
-/****************************************/
-/* Ethernet Unit Registers */
-/****************************************/
-
-/*******************************************/
-/* CUNIT Registers */
-/*******************************************/
-
- /* Address Decoding Register Map */
-
-#define MV64340_CUNIT_BASE_ADDR_REG0 0xf200
-#define MV64340_CUNIT_BASE_ADDR_REG1 0xf208
-#define MV64340_CUNIT_BASE_ADDR_REG2 0xf210
-#define MV64340_CUNIT_BASE_ADDR_REG3 0xf218
-#define MV64340_CUNIT_SIZE0 0xf204
-#define MV64340_CUNIT_SIZE1 0xf20c
-#define MV64340_CUNIT_SIZE2 0xf214
-#define MV64340_CUNIT_SIZE3 0xf21c
-#define MV64340_CUNIT_HIGH_ADDR_REMAP_REG0 0xf240
-#define MV64340_CUNIT_HIGH_ADDR_REMAP_REG1 0xf244
-#define MV64340_CUNIT_BASE_ADDR_ENABLE_REG 0xf250
-#define MV64340_MPSC0_ACCESS_PROTECTION_REG 0xf254
-#define MV64340_MPSC1_ACCESS_PROTECTION_REG 0xf258
-#define MV64340_CUNIT_INTERNAL_SPACE_BASE_ADDR_REG 0xf25C
-
- /* Error Report Registers */
-
-#define MV64340_CUNIT_INTERRUPT_CAUSE_REG 0xf310
-#define MV64340_CUNIT_INTERRUPT_MASK_REG 0xf314
-#define MV64340_CUNIT_ERROR_ADDR 0xf318
-
- /* Cunit Control Registers */
-
-#define MV64340_CUNIT_ARBITER_CONTROL_REG 0xf300
-#define MV64340_CUNIT_CONFIG_REG 0xb40c
-#define MV64340_CUNIT_CRROSBAR_TIMEOUT_REG 0xf304
-
- /* Cunit Debug Registers */
-
-#define MV64340_CUNIT_DEBUG_LOW 0xf340
-#define MV64340_CUNIT_DEBUG_HIGH 0xf344
-#define MV64340_CUNIT_MMASK 0xf380
-
- /* MPSCs Clocks Routing Registers */
-
-#define MV64340_MPSC_ROUTING_REG 0xb400
-#define MV64340_MPSC_RX_CLOCK_ROUTING_REG 0xb404
-#define MV64340_MPSC_TX_CLOCK_ROUTING_REG 0xb408
-
- /* MPSCs Interrupts Registers */
-
-#define MV64340_MPSC_CAUSE_REG(port) (0xb804 + (port<<3))
-#define MV64340_MPSC_MASK_REG(port) (0xb884 + (port<<3))
-
-#define MV64340_MPSC_MAIN_CONFIG_LOW(port) (0x8000 + (port<<12))
-#define MV64340_MPSC_MAIN_CONFIG_HIGH(port) (0x8004 + (port<<12))
-#define MV64340_MPSC_PROTOCOL_CONFIG(port) (0x8008 + (port<<12))
-#define MV64340_MPSC_CHANNEL_REG1(port) (0x800c + (port<<12))
-#define MV64340_MPSC_CHANNEL_REG2(port) (0x8010 + (port<<12))
-#define MV64340_MPSC_CHANNEL_REG3(port) (0x8014 + (port<<12))
-#define MV64340_MPSC_CHANNEL_REG4(port) (0x8018 + (port<<12))
-#define MV64340_MPSC_CHANNEL_REG5(port) (0x801c + (port<<12))
-#define MV64340_MPSC_CHANNEL_REG6(port) (0x8020 + (port<<12))
-#define MV64340_MPSC_CHANNEL_REG7(port) (0x8024 + (port<<12))
-#define MV64340_MPSC_CHANNEL_REG8(port) (0x8028 + (port<<12))
-#define MV64340_MPSC_CHANNEL_REG9(port) (0x802c + (port<<12))
-#define MV64340_MPSC_CHANNEL_REG10(port) (0x8030 + (port<<12))
-
- /* MPSC0 Registers */
-
-
-/***************************************/
-/* SDMA Registers */
-/***************************************/
-
-#define MV64340_SDMA_CONFIG_REG(channel) (0x4000 + (channel<<13))
-#define MV64340_SDMA_COMMAND_REG(channel) (0x4008 + (channel<<13))
-#define MV64340_SDMA_CURRENT_RX_DESCRIPTOR_POINTER(channel) (0x4810 + (channel<<13))
-#define MV64340_SDMA_CURRENT_TX_DESCRIPTOR_POINTER(channel) (0x4c10 + (channel<<13))
-#define MV64340_SDMA_FIRST_TX_DESCRIPTOR_POINTER(channel) (0x4c14 + (channel<<13))
-
-#define MV64340_SDMA_CAUSE_REG 0xb800
-#define MV64340_SDMA_MASK_REG 0xb880
-
-/* BRG Interrupts */
-
-#define MV64340_BRG_CONFIG_REG(brg) (0xb200 + (brg<<3))
-#define MV64340_BRG_BAUDE_TUNING_REG(brg) (0xb208 + (brg<<3))
-#define MV64340_BRG_CAUSE_REG 0xb834
-#define MV64340_BRG_MASK_REG 0xb8b4
-
-/****************************************/
-/* DMA Channel Control */
-/****************************************/
-
-#define MV64340_DMA_CHANNEL0_CONTROL 0x840
-#define MV64340_DMA_CHANNEL0_CONTROL_HIGH 0x880
-#define MV64340_DMA_CHANNEL1_CONTROL 0x844
-#define MV64340_DMA_CHANNEL1_CONTROL_HIGH 0x884
-#define MV64340_DMA_CHANNEL2_CONTROL 0x848
-#define MV64340_DMA_CHANNEL2_CONTROL_HIGH 0x888
-#define MV64340_DMA_CHANNEL3_CONTROL 0x84C
-#define MV64340_DMA_CHANNEL3_CONTROL_HIGH 0x88C
-
-
-/****************************************/
-/* IDMA Registers */
-/****************************************/
-
-#define MV64340_DMA_CHANNEL0_BYTE_COUNT 0x800
-#define MV64340_DMA_CHANNEL1_BYTE_COUNT 0x804
-#define MV64340_DMA_CHANNEL2_BYTE_COUNT 0x808
-#define MV64340_DMA_CHANNEL3_BYTE_COUNT 0x80C
-#define MV64340_DMA_CHANNEL0_SOURCE_ADDR 0x810
-#define MV64340_DMA_CHANNEL1_SOURCE_ADDR 0x814
-#define MV64340_DMA_CHANNEL2_SOURCE_ADDR 0x818
-#define MV64340_DMA_CHANNEL3_SOURCE_ADDR 0x81c
-#define MV64340_DMA_CHANNEL0_DESTINATION_ADDR 0x820
-#define MV64340_DMA_CHANNEL1_DESTINATION_ADDR 0x824
-#define MV64340_DMA_CHANNEL2_DESTINATION_ADDR 0x828
-#define MV64340_DMA_CHANNEL3_DESTINATION_ADDR 0x82C
-#define MV64340_DMA_CHANNEL0_NEXT_DESCRIPTOR_POINTER 0x830
-#define MV64340_DMA_CHANNEL1_NEXT_DESCRIPTOR_POINTER 0x834
-#define MV64340_DMA_CHANNEL2_NEXT_DESCRIPTOR_POINTER 0x838
-#define MV64340_DMA_CHANNEL3_NEXT_DESCRIPTOR_POINTER 0x83C
-#define MV64340_DMA_CHANNEL0_CURRENT_DESCRIPTOR_POINTER 0x870
-#define MV64340_DMA_CHANNEL1_CURRENT_DESCRIPTOR_POINTER 0x874
-#define MV64340_DMA_CHANNEL2_CURRENT_DESCRIPTOR_POINTER 0x878
-#define MV64340_DMA_CHANNEL3_CURRENT_DESCRIPTOR_POINTER 0x87C
-
- /* IDMA Address Decoding Base Address Registers */
-
-#define MV64340_DMA_BASE_ADDR_REG0 0xa00
-#define MV64340_DMA_BASE_ADDR_REG1 0xa08
-#define MV64340_DMA_BASE_ADDR_REG2 0xa10
-#define MV64340_DMA_BASE_ADDR_REG3 0xa18
-#define MV64340_DMA_BASE_ADDR_REG4 0xa20
-#define MV64340_DMA_BASE_ADDR_REG5 0xa28
-#define MV64340_DMA_BASE_ADDR_REG6 0xa30
-#define MV64340_DMA_BASE_ADDR_REG7 0xa38
-
- /* IDMA Address Decoding Size Address Register */
-
-#define MV64340_DMA_SIZE_REG0 0xa04
-#define MV64340_DMA_SIZE_REG1 0xa0c
-#define MV64340_DMA_SIZE_REG2 0xa14
-#define MV64340_DMA_SIZE_REG3 0xa1c
-#define MV64340_DMA_SIZE_REG4 0xa24
-#define MV64340_DMA_SIZE_REG5 0xa2c
-#define MV64340_DMA_SIZE_REG6 0xa34
-#define MV64340_DMA_SIZE_REG7 0xa3C
-
- /* IDMA Address Decoding High Address Remap and Access
- Protection Registers */
-
-#define MV64340_DMA_HIGH_ADDR_REMAP_REG0 0xa60
-#define MV64340_DMA_HIGH_ADDR_REMAP_REG1 0xa64
-#define MV64340_DMA_HIGH_ADDR_REMAP_REG2 0xa68
-#define MV64340_DMA_HIGH_ADDR_REMAP_REG3 0xa6C
-#define MV64340_DMA_BASE_ADDR_ENABLE_REG 0xa80
-#define MV64340_DMA_CHANNEL0_ACCESS_PROTECTION_REG 0xa70
-#define MV64340_DMA_CHANNEL1_ACCESS_PROTECTION_REG 0xa74
-#define MV64340_DMA_CHANNEL2_ACCESS_PROTECTION_REG 0xa78
-#define MV64340_DMA_CHANNEL3_ACCESS_PROTECTION_REG 0xa7c
-#define MV64340_DMA_ARBITER_CONTROL 0x860
-#define MV64340_DMA_CROSS_BAR_TIMEOUT 0x8d0
-
- /* IDMA Headers Retarget Registers */
-
-#define MV64340_DMA_HEADERS_RETARGET_CONTROL 0xa84
-#define MV64340_DMA_HEADERS_RETARGET_BASE 0xa88
-
- /* IDMA Interrupt Register */
-
-#define MV64340_DMA_INTERRUPT_CAUSE_REG 0x8c0
-#define MV64340_DMA_INTERRUPT_CAUSE_MASK 0x8c4
-#define MV64340_DMA_ERROR_ADDR 0x8c8
-#define MV64340_DMA_ERROR_SELECT 0x8cc
-
- /* IDMA Debug Register ( for internal use ) */
-
-#define MV64340_DMA_DEBUG_LOW 0x8e0
-#define MV64340_DMA_DEBUG_HIGH 0x8e4
-#define MV64340_DMA_SPARE 0xA8C
-
-/****************************************/
-/* Timer_Counter */
-/****************************************/
-
-#define MV64340_TIMER_COUNTER0 0x850
-#define MV64340_TIMER_COUNTER1 0x854
-#define MV64340_TIMER_COUNTER2 0x858
-#define MV64340_TIMER_COUNTER3 0x85C
-#define MV64340_TIMER_COUNTER_0_3_CONTROL 0x864
-#define MV64340_TIMER_COUNTER_0_3_INTERRUPT_CAUSE 0x868
-#define MV64340_TIMER_COUNTER_0_3_INTERRUPT_MASK 0x86c
-
-/****************************************/
-/* Watchdog registers */
-/****************************************/
-
-#define MV64340_WATCHDOG_CONFIG_REG 0xb410
-#define MV64340_WATCHDOG_VALUE_REG 0xb414
-
-/****************************************/
-/* I2C Registers */
-/****************************************/
-
-#define MV64XXX_I2C_OFFSET 0xc000
-#define MV64XXX_I2C_REG_BLOCK_SIZE 0x0020
-
-/****************************************/
-/* GPP Interface Registers */
-/****************************************/
-
-#define MV64340_GPP_IO_CONTROL 0xf100
-#define MV64340_GPP_LEVEL_CONTROL 0xf110
-#define MV64340_GPP_VALUE 0xf104
-#define MV64340_GPP_INTERRUPT_CAUSE 0xf108
-#define MV64340_GPP_INTERRUPT_MASK0 0xf10c
-#define MV64340_GPP_INTERRUPT_MASK1 0xf114
-#define MV64340_GPP_VALUE_SET 0xf118
-#define MV64340_GPP_VALUE_CLEAR 0xf11c
-
-/****************************************/
-/* Interrupt Controller Registers */
-/****************************************/
-
-/****************************************/
-/* Interrupts */
-/****************************************/
-
-#define MV64340_MAIN_INTERRUPT_CAUSE_LOW 0x004
-#define MV64340_MAIN_INTERRUPT_CAUSE_HIGH 0x00c
-#define MV64340_CPU_INTERRUPT0_MASK_LOW 0x014
-#define MV64340_CPU_INTERRUPT0_MASK_HIGH 0x01c
-#define MV64340_CPU_INTERRUPT0_SELECT_CAUSE 0x024
-#define MV64340_CPU_INTERRUPT1_MASK_LOW 0x034
-#define MV64340_CPU_INTERRUPT1_MASK_HIGH 0x03c
-#define MV64340_CPU_INTERRUPT1_SELECT_CAUSE 0x044
-#define MV64340_INTERRUPT0_MASK_0_LOW 0x054
-#define MV64340_INTERRUPT0_MASK_0_HIGH 0x05c
-#define MV64340_INTERRUPT0_SELECT_CAUSE 0x064
-#define MV64340_INTERRUPT1_MASK_0_LOW 0x074
-#define MV64340_INTERRUPT1_MASK_0_HIGH 0x07c
-#define MV64340_INTERRUPT1_SELECT_CAUSE 0x084
-
-/****************************************/
-/* MPP Interface Registers */
-/****************************************/
-
-#define MV64340_MPP_CONTROL0 0xf000
-#define MV64340_MPP_CONTROL1 0xf004
-#define MV64340_MPP_CONTROL2 0xf008
-#define MV64340_MPP_CONTROL3 0xf00c
-
-/****************************************/
-/* Serial Initialization registers */
-/****************************************/
-
-#define MV64340_SERIAL_INIT_LAST_DATA 0xf324
-#define MV64340_SERIAL_INIT_CONTROL 0xf328
-#define MV64340_SERIAL_INIT_STATUS 0xf32c
-
-extern void mv64340_irq_init(unsigned int base);
-
-/* MPSC Platform Device, Driver Data (Shared register regions) */
-#define MPSC_SHARED_NAME "mpsc_shared"
-
-#define MPSC_ROUTING_BASE_ORDER 0
-#define MPSC_SDMA_INTR_BASE_ORDER 1
-
-#define MPSC_ROUTING_REG_BLOCK_SIZE 0x000c
-#define MPSC_SDMA_INTR_REG_BLOCK_SIZE 0x0084
-
-struct mpsc_shared_pdata {
- u32 mrr_val;
- u32 rcrr_val;
- u32 tcrr_val;
- u32 intr_cause_val;
- u32 intr_mask_val;
-};
-
-/* MPSC Platform Device, Driver Data */
-#define MPSC_CTLR_NAME "mpsc"
-
-#define MPSC_BASE_ORDER 0
-#define MPSC_SDMA_BASE_ORDER 1
-#define MPSC_BRG_BASE_ORDER 2
-
-#define MPSC_REG_BLOCK_SIZE 0x0038
-#define MPSC_SDMA_REG_BLOCK_SIZE 0x0c18
-#define MPSC_BRG_REG_BLOCK_SIZE 0x0008
-
-struct mpsc_pdata {
- u8 mirror_regs;
- u8 cache_mgmt;
- u8 max_idle;
- int default_baud;
- int default_bits;
- int default_parity;
- int default_flow;
- u32 chr_1_val;
- u32 chr_2_val;
- u32 chr_10_val;
- u32 mpcr_val;
- u32 bcr_val;
- u8 brg_can_tune;
- u8 brg_clk_src;
- u32 brg_clk_freq;
-};
-
-/* Watchdog Platform Device, Driver Data */
-#define MV64x60_WDT_NAME "mv64x60_wdt"
-
-struct mv64x60_wdt_pdata {
- int timeout; /* watchdog expiry in seconds, default 10 */
- int bus_clk; /* bus clock in MHz, default 133 */
-};
-
-#endif /* __ASM_MV643XX_H */
diff --git a/ANDROID_3.4.5/include/linux/mv643xx_eth.h b/ANDROID_3.4.5/include/linux/mv643xx_eth.h
deleted file mode 100644
index 30b0c4e7..00000000
--- a/ANDROID_3.4.5/include/linux/mv643xx_eth.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * MV-643XX ethernet platform device data definition file.
- */
-
-#ifndef __LINUX_MV643XX_ETH_H
-#define __LINUX_MV643XX_ETH_H
-
-#include <linux/mbus.h>
-
-#define MV643XX_ETH_SHARED_NAME "mv643xx_eth"
-#define MV643XX_ETH_NAME "mv643xx_eth_port"
-#define MV643XX_ETH_SHARED_REGS 0x2000
-#define MV643XX_ETH_SHARED_REGS_SIZE 0x2000
-#define MV643XX_ETH_BAR_4 0x2220
-#define MV643XX_ETH_SIZE_REG_4 0x2224
-#define MV643XX_ETH_BASE_ADDR_ENABLE_REG 0x2290
-
-struct mv643xx_eth_shared_platform_data {
- struct mbus_dram_target_info *dram;
- struct platform_device *shared_smi;
- unsigned int t_clk;
- /*
- * Max packet size for Tx IP/Layer 4 checksum, when set to 0, default
- * limit of 9KiB will be used.
- */
- int tx_csum_limit;
-};
-
-#define MV643XX_ETH_PHY_ADDR_DEFAULT 0
-#define MV643XX_ETH_PHY_ADDR(x) (0x80 | (x))
-#define MV643XX_ETH_PHY_NONE 0xff
-
-struct mv643xx_eth_platform_data {
- /*
- * Pointer back to our parent instance, and our port number.
- */
- struct platform_device *shared;
- int port_number;
-
- /*
- * Whether a PHY is present, and if yes, at which address.
- */
- int phy_addr;
-
- /*
- * Use this MAC address if it is valid, overriding the
- * address that is already in the hardware.
- */
- u8 mac_addr[6];
-
- /*
- * If speed is 0, autonegotiation is enabled.
- * Valid values for speed: 0, SPEED_10, SPEED_100, SPEED_1000.
- * Valid values for duplex: DUPLEX_HALF, DUPLEX_FULL.
- */
- int speed;
- int duplex;
-
- /*
- * How many RX/TX queues to use.
- */
- int rx_queue_count;
- int tx_queue_count;
-
- /*
- * Override default RX/TX queue sizes if nonzero.
- */
- int rx_queue_size;
- int tx_queue_size;
-
- /*
- * Use on-chip SRAM for RX/TX descriptors if size is nonzero
- * and sufficient to contain all descriptors for the requested
- * ring sizes.
- */
- unsigned long rx_sram_addr;
- int rx_sram_size;
- unsigned long tx_sram_addr;
- int tx_sram_size;
-};
-
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/mv643xx_i2c.h b/ANDROID_3.4.5/include/linux/mv643xx_i2c.h
deleted file mode 100644
index 5db5152e..00000000
--- a/ANDROID_3.4.5/include/linux/mv643xx_i2c.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * 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 _MV64XXX_I2C_H_
-#define _MV64XXX_I2C_H_
-
-#include <linux/types.h>
-
-#define MV64XXX_I2C_CTLR_NAME "mv64xxx_i2c"
-
-/* i2c Platform Device, Driver Data */
-struct mv64xxx_i2c_pdata {
- u32 freq_m;
- u32 freq_n;
- u32 timeout; /* In milliseconds */
-};
-
-#endif /*_MV64XXX_I2C_H_*/
diff --git a/ANDROID_3.4.5/include/linux/mxm-wmi.h b/ANDROID_3.4.5/include/linux/mxm-wmi.h
deleted file mode 100644
index 617a2950..00000000
--- a/ANDROID_3.4.5/include/linux/mxm-wmi.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * MXM WMI driver
- *
- * Copyright(C) 2010 Red Hat.
- *
- * 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
- */
-
-#ifndef MXM_WMI_H
-#define MXM_WMI_H
-
-/* discrete adapters */
-#define MXM_MXDS_ADAPTER_0 0x0
-#define MXM_MXDS_ADAPTER_1 0x0
-/* integrated adapter */
-#define MXM_MXDS_ADAPTER_IGD 0x10
-int mxm_wmi_call_mxds(int adapter);
-int mxm_wmi_call_mxmx(int adapter);
-bool mxm_wmi_supported(void);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/n_r3964.h b/ANDROID_3.4.5/include/linux/n_r3964.h
deleted file mode 100644
index 54b8e0d8..00000000
--- a/ANDROID_3.4.5/include/linux/n_r3964.h
+++ /dev/null
@@ -1,231 +0,0 @@
-/* r3964 linediscipline for linux
- *
- * -----------------------------------------------------------
- * Copyright by
- * Philips Automation Projects
- * Kassel (Germany)
- * -----------------------------------------------------------
- * This software may be used and distributed according to the terms of
- * the GNU General Public License, incorporated herein by reference.
- *
- * Author:
- * L. Haag
- *
- * $Log: r3964.h,v $
- * Revision 1.4 2005/12/21 19:54:24 Kurt Huwig <kurt huwig de>
- * Fixed HZ usage on 2.6 kernels
- * Removed unnecessary include
- *
- * Revision 1.3 2001/03/18 13:02:24 dwmw2
- * Fix timer usage, use spinlocks properly.
- *
- * Revision 1.2 2001/03/18 12:53:15 dwmw2
- * Merge changes in 2.4.2
- *
- * Revision 1.1.1.1 1998/10/13 16:43:14 dwmw2
- * This'll screw the version control
- *
- * Revision 1.6 1998/09/30 00:40:38 dwmw2
- * Updated to use kernel's N_R3964 if available
- *
- * Revision 1.4 1998/04/02 20:29:44 lhaag
- * select, blocking, ...
- *
- * Revision 1.3 1998/02/12 18:58:43 root
- * fixed some memory leaks
- * calculation of checksum characters
- *
- * Revision 1.2 1998/02/07 13:03:17 root
- * ioctl read_telegram
- *
- * Revision 1.1 1998/02/06 19:19:43 root
- * Initial revision
- *
- *
- */
-
-#ifndef __LINUX_N_R3964_H__
-#define __LINUX_N_R3964_H__
-
-/* line disciplines for r3964 protocol */
-
-#ifdef __KERNEL__
-
-#include <linux/param.h>
-
-/*
- * Common ascii handshake characters:
- */
-
-#define STX 0x02
-#define ETX 0x03
-#define DLE 0x10
-#define NAK 0x15
-
-/*
- * Timeouts (from milliseconds to jiffies)
- */
-
-#define R3964_TO_QVZ ((550)*HZ/1000)
-#define R3964_TO_ZVZ ((220)*HZ/1000)
-#define R3964_TO_NO_BUF ((400)*HZ/1000)
-#define R3964_NO_TX_ROOM ((100)*HZ/1000)
-#define R3964_TO_RX_PANIC ((4000)*HZ/1000)
-#define R3964_MAX_RETRIES 5
-
-#endif
-
-/*
- * Ioctl-commands
- */
-
-#define R3964_ENABLE_SIGNALS 0x5301
-#define R3964_SETPRIORITY 0x5302
-#define R3964_USE_BCC 0x5303
-#define R3964_READ_TELEGRAM 0x5304
-
-/* Options for R3964_SETPRIORITY */
-#define R3964_MASTER 0
-#define R3964_SLAVE 1
-
-/* Options for R3964_ENABLE_SIGNALS */
-#define R3964_SIG_ACK 0x0001
-#define R3964_SIG_DATA 0x0002
-#define R3964_SIG_ALL 0x000f
-#define R3964_SIG_NONE 0x0000
-#define R3964_USE_SIGIO 0x1000
-
-/*
- * r3964 operation states:
- */
-#ifdef __KERNEL__
-
-enum { R3964_IDLE,
- R3964_TX_REQUEST, R3964_TRANSMITTING,
- R3964_WAIT_ZVZ_BEFORE_TX_RETRY, R3964_WAIT_FOR_TX_ACK,
- R3964_WAIT_FOR_RX_BUF,
- R3964_RECEIVING, R3964_WAIT_FOR_BCC, R3964_WAIT_FOR_RX_REPEAT
- };
-
-/*
- * All open file-handles are 'clients' and are stored in a linked list:
- */
-
-struct r3964_message;
-
-struct r3964_client_info {
- spinlock_t lock;
- struct pid *pid;
- unsigned int sig_flags;
-
- struct r3964_client_info *next;
-
- struct r3964_message *first_msg;
- struct r3964_message *last_msg;
- struct r3964_block_header *next_block_to_read;
- int msg_count;
-};
-
-
-#endif
-
-/* types for msg_id: */
-enum {R3964_MSG_ACK=1, R3964_MSG_DATA };
-
-#define R3964_MAX_MSG_COUNT 32
-
-/* error codes for client messages */
-#define R3964_OK 0 /* no error. */
-#define R3964_TX_FAIL -1 /* transmission error, block NOT sent */
-#define R3964_OVERFLOW -2 /* msg queue overflow */
-
-/* the client gets this struct when calling read(fd,...): */
-struct r3964_client_message {
- int msg_id;
- int arg;
- int error_code;
-};
-
-#define R3964_MTU 256
-
-
-#ifdef __KERNEL__
-
-struct r3964_block_header;
-
-/* internal version of client_message: */
-struct r3964_message {
- int msg_id;
- int arg;
- int error_code;
- struct r3964_block_header *block;
- struct r3964_message *next;
-};
-
-/*
- * Header of received block in rx_buf/tx_buf:
- */
-
-struct r3964_block_header
-{
- unsigned int length; /* length in chars without header */
- unsigned char *data; /* usually data is located
- immediately behind this struct */
- unsigned int locks; /* only used in rx_buffer */
-
- struct r3964_block_header *next;
- struct r3964_client_info *owner; /* =NULL in rx_buffer */
-};
-
-/*
- * If rx_buf hasn't enough space to store R3964_MTU chars,
- * we will reject all incoming STX-requests by sending NAK.
- */
-
-#define RX_BUF_SIZE 4000
-#define TX_BUF_SIZE 4000
-#define R3964_MAX_BLOCKS_IN_RX_QUEUE 100
-
-#define R3964_PARITY 0x0001
-#define R3964_FRAME 0x0002
-#define R3964_OVERRUN 0x0004
-#define R3964_UNKNOWN 0x0008
-#define R3964_BREAK 0x0010
-#define R3964_CHECKSUM 0x0020
-#define R3964_ERROR 0x003f
-#define R3964_BCC 0x4000
-#define R3964_DEBUG 0x8000
-
-
-struct r3964_info {
- spinlock_t lock;
- struct tty_struct *tty;
- unsigned char priority;
- unsigned char *rx_buf; /* ring buffer */
- unsigned char *tx_buf;
-
- wait_queue_head_t read_wait;
- //struct wait_queue *read_wait;
-
- struct r3964_block_header *rx_first;
- struct r3964_block_header *rx_last;
- struct r3964_block_header *tx_first;
- struct r3964_block_header *tx_last;
- unsigned int tx_position;
- unsigned int rx_position;
- unsigned char last_rx;
- unsigned char bcc;
- unsigned int blocks_in_rx_queue;
-
-
- struct r3964_client_info *firstClient;
- unsigned int state;
- unsigned int flags;
-
- struct timer_list tmr;
- int nRetry;
-};
-
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/namei.h b/ANDROID_3.4.5/include/linux/namei.h
deleted file mode 100644
index ffc02135..00000000
--- a/ANDROID_3.4.5/include/linux/namei.h
+++ /dev/null
@@ -1,112 +0,0 @@
-#ifndef _LINUX_NAMEI_H
-#define _LINUX_NAMEI_H
-
-#include <linux/dcache.h>
-#include <linux/linkage.h>
-#include <linux/path.h>
-
-struct vfsmount;
-
-struct open_intent {
- int flags;
- int create_mode;
- struct file *file;
-};
-
-enum { MAX_NESTED_LINKS = 8 };
-
-struct nameidata {
- struct path path;
- struct qstr last;
- struct path root;
- struct inode *inode; /* path.dentry.d_inode */
- unsigned int flags;
- unsigned seq;
- int last_type;
- unsigned depth;
- char *saved_names[MAX_NESTED_LINKS + 1];
-
- /* Intent data */
- union {
- struct open_intent open;
- } intent;
-};
-
-/*
- * Type of the last component on LOOKUP_PARENT
- */
-enum {LAST_NORM, LAST_ROOT, LAST_DOT, LAST_DOTDOT, LAST_BIND};
-
-/*
- * The bitmask for a lookup event:
- * - follow links at the end
- * - require a directory
- * - ending slashes ok even for nonexistent files
- * - internal "there are more path components" flag
- * - dentry cache is untrusted; force a real lookup
- * - suppress terminal automount
- */
-#define LOOKUP_FOLLOW 0x0001
-#define LOOKUP_DIRECTORY 0x0002
-#define LOOKUP_AUTOMOUNT 0x0004
-
-#define LOOKUP_PARENT 0x0010
-#define LOOKUP_REVAL 0x0020
-#define LOOKUP_RCU 0x0040
-
-/*
- * Intent data
- */
-#define LOOKUP_OPEN 0x0100
-#define LOOKUP_CREATE 0x0200
-#define LOOKUP_EXCL 0x0400
-#define LOOKUP_RENAME_TARGET 0x0800
-
-#define LOOKUP_JUMPED 0x1000
-#define LOOKUP_ROOT 0x2000
-#define LOOKUP_EMPTY 0x4000
-
-extern int user_path_at(int, const char __user *, unsigned, struct path *);
-extern int user_path_at_empty(int, const char __user *, unsigned, struct path *, int *empty);
-
-#define user_path(name, path) user_path_at(AT_FDCWD, name, LOOKUP_FOLLOW, path)
-#define user_lpath(name, path) user_path_at(AT_FDCWD, name, 0, path)
-#define user_path_dir(name, path) \
- user_path_at(AT_FDCWD, name, LOOKUP_FOLLOW | LOOKUP_DIRECTORY, path)
-
-extern int kern_path(const char *, unsigned, struct path *);
-
-extern struct dentry *kern_path_create(int, const char *, struct path *, int);
-extern struct dentry *user_path_create(int, const char __user *, struct path *, int);
-extern int kern_path_parent(const char *, struct nameidata *);
-extern int vfs_path_lookup(struct dentry *, struct vfsmount *,
- const char *, unsigned int, struct path *);
-
-extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry,
- int (*open)(struct inode *, struct file *));
-
-extern struct dentry *lookup_one_len(const char *, struct dentry *, int);
-
-extern int follow_down_one(struct path *);
-extern int follow_down(struct path *);
-extern int follow_up(struct path *);
-
-extern struct dentry *lock_rename(struct dentry *, struct dentry *);
-extern void unlock_rename(struct dentry *, struct dentry *);
-
-static inline void nd_set_link(struct nameidata *nd, char *path)
-{
- nd->saved_names[nd->depth] = path;
-}
-
-static inline char *nd_get_link(struct nameidata *nd)
-{
- return nd->saved_names[nd->depth];
-}
-
-static inline void nd_terminate_link(void *name, size_t len, size_t maxlen)
-{
- ((char *) name)[min(len, maxlen)] = '\0';
-}
-
-#endif /* _LINUX_NAMEI_H */
diff --git a/ANDROID_3.4.5/include/linux/nbd.h b/ANDROID_3.4.5/include/linux/nbd.h
deleted file mode 100644
index d146ca10..00000000
--- a/ANDROID_3.4.5/include/linux/nbd.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * 1999 Copyright (C) Pavel Machek, pavel@ucw.cz. This code is GPL.
- * 1999/11/04 Copyright (C) 1999 VMware, Inc. (Regis "HPReg" Duchesne)
- * Made nbd_end_request() use the io_request_lock
- * 2001 Copyright (C) Steven Whitehouse
- * New nbd_end_request() for compatibility with new linux block
- * layer code.
- * 2003/06/24 Louis D. Langholtz <ldl@aros.net>
- * Removed unneeded blksize_bits field from nbd_device struct.
- * Cleanup PARANOIA usage & code.
- * 2004/02/19 Paul Clements
- * Removed PARANOIA, plus various cleanup and comments
- */
-
-#ifndef LINUX_NBD_H
-#define LINUX_NBD_H
-
-#include <linux/types.h>
-
-#define NBD_SET_SOCK _IO( 0xab, 0 )
-#define NBD_SET_BLKSIZE _IO( 0xab, 1 )
-#define NBD_SET_SIZE _IO( 0xab, 2 )
-#define NBD_DO_IT _IO( 0xab, 3 )
-#define NBD_CLEAR_SOCK _IO( 0xab, 4 )
-#define NBD_CLEAR_QUE _IO( 0xab, 5 )
-#define NBD_PRINT_DEBUG _IO( 0xab, 6 )
-#define NBD_SET_SIZE_BLOCKS _IO( 0xab, 7 )
-#define NBD_DISCONNECT _IO( 0xab, 8 )
-#define NBD_SET_TIMEOUT _IO( 0xab, 9 )
-
-enum {
- NBD_CMD_READ = 0,
- NBD_CMD_WRITE = 1,
- NBD_CMD_DISC = 2
-};
-
-#define nbd_cmd(req) ((req)->cmd[0])
-
-/* userspace doesn't need the nbd_device structure */
-#ifdef __KERNEL__
-
-#include <linux/wait.h>
-#include <linux/mutex.h>
-
-/* values for flags field */
-#define NBD_READ_ONLY 0x0001
-#define NBD_WRITE_NOCHK 0x0002
-
-struct request;
-
-struct nbd_device {
- int flags;
- int harderror; /* Code of hard error */
- struct socket * sock;
- struct file * file; /* If == NULL, device is not ready, yet */
- int magic;
-
- spinlock_t queue_lock;
- struct list_head queue_head; /* Requests waiting result */
- struct request *active_req;
- wait_queue_head_t active_wq;
- struct list_head waiting_queue; /* Requests to be sent */
- wait_queue_head_t waiting_wq;
-
- struct mutex tx_lock;
- struct gendisk *disk;
- int blksize;
- u64 bytesize;
- pid_t pid; /* pid of nbd-client, if attached */
- int xmit_timeout;
-};
-
-#endif
-
-/* These are sent over the network in the request/reply magic fields */
-
-#define NBD_REQUEST_MAGIC 0x25609513
-#define NBD_REPLY_MAGIC 0x67446698
-/* Do *not* use magics: 0x12560953 0x96744668. */
-
-/*
- * This is the packet used for communication between client and
- * server. All data are in network byte order.
- */
-struct nbd_request {
- __be32 magic;
- __be32 type; /* == READ || == WRITE */
- char handle[8];
- __be64 from;
- __be32 len;
-} __attribute__((packed));
-
-/*
- * This is the reply packet that nbd-server sends back to the client after
- * it has completed an I/O request (or an error occurs).
- */
-struct nbd_reply {
- __be32 magic;
- __be32 error; /* 0 = ok, else error */
- char handle[8]; /* handle you got from request */
-};
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ncp.h b/ANDROID_3.4.5/include/linux/ncp.h
deleted file mode 100644
index 99f0adee..00000000
--- a/ANDROID_3.4.5/include/linux/ncp.h
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- * ncp.h
- *
- * Copyright (C) 1995 by Volker Lendecke
- * Modified for sparc by J.F. Chadima
- * Modified for __constant_ntoh by Frank A. Vorstenbosch
- *
- */
-
-#ifndef _LINUX_NCP_H
-#define _LINUX_NCP_H
-
-#include <linux/types.h>
-
-#define NCP_PTYPE (0x11)
-#define NCP_PORT (0x0451)
-
-#define NCP_ALLOC_SLOT_REQUEST (0x1111)
-#define NCP_REQUEST (0x2222)
-#define NCP_DEALLOC_SLOT_REQUEST (0x5555)
-
-struct ncp_request_header {
- __u16 type;
- __u8 sequence;
- __u8 conn_low;
- __u8 task;
- __u8 conn_high;
- __u8 function;
- __u8 data[0];
-} __attribute__((packed));
-
-#define NCP_REPLY (0x3333)
-#define NCP_WATCHDOG (0x3E3E)
-#define NCP_POSITIVE_ACK (0x9999)
-
-struct ncp_reply_header {
- __u16 type;
- __u8 sequence;
- __u8 conn_low;
- __u8 task;
- __u8 conn_high;
- __u8 completion_code;
- __u8 connection_state;
- __u8 data[0];
-} __attribute__((packed));
-
-#define NCP_VOLNAME_LEN (16)
-#define NCP_NUMBER_OF_VOLUMES (256)
-struct ncp_volume_info {
- __u32 total_blocks;
- __u32 free_blocks;
- __u32 purgeable_blocks;
- __u32 not_yet_purgeable_blocks;
- __u32 total_dir_entries;
- __u32 available_dir_entries;
- __u8 sectors_per_block;
- char volume_name[NCP_VOLNAME_LEN + 1];
-};
-
-#define AR_READ (cpu_to_le16(1))
-#define AR_WRITE (cpu_to_le16(2))
-#define AR_EXCLUSIVE (cpu_to_le16(0x20))
-
-#define NCP_FILE_ID_LEN 6
-
-/* Defines for Name Spaces */
-#define NW_NS_DOS 0
-#define NW_NS_MAC 1
-#define NW_NS_NFS 2
-#define NW_NS_FTAM 3
-#define NW_NS_OS2 4
-
-/* Defines for ReturnInformationMask */
-#define RIM_NAME (cpu_to_le32(1))
-#define RIM_SPACE_ALLOCATED (cpu_to_le32(2))
-#define RIM_ATTRIBUTES (cpu_to_le32(4))
-#define RIM_DATA_SIZE (cpu_to_le32(8))
-#define RIM_TOTAL_SIZE (cpu_to_le32(0x10))
-#define RIM_EXT_ATTR_INFO (cpu_to_le32(0x20))
-#define RIM_ARCHIVE (cpu_to_le32(0x40))
-#define RIM_MODIFY (cpu_to_le32(0x80))
-#define RIM_CREATION (cpu_to_le32(0x100))
-#define RIM_OWNING_NAMESPACE (cpu_to_le32(0x200))
-#define RIM_DIRECTORY (cpu_to_le32(0x400))
-#define RIM_RIGHTS (cpu_to_le32(0x800))
-#define RIM_ALL (cpu_to_le32(0xFFF))
-#define RIM_COMPRESSED_INFO (cpu_to_le32(0x80000000))
-
-/* Defines for NSInfoBitMask */
-#define NSIBM_NFS_NAME 0x0001
-#define NSIBM_NFS_MODE 0x0002
-#define NSIBM_NFS_GID 0x0004
-#define NSIBM_NFS_NLINKS 0x0008
-#define NSIBM_NFS_RDEV 0x0010
-#define NSIBM_NFS_LINK 0x0020
-#define NSIBM_NFS_CREATED 0x0040
-#define NSIBM_NFS_UID 0x0080
-#define NSIBM_NFS_ACSFLAG 0x0100
-#define NSIBM_NFS_MYFLAG 0x0200
-
-/* open/create modes */
-#define OC_MODE_OPEN 0x01
-#define OC_MODE_TRUNCATE 0x02
-#define OC_MODE_REPLACE 0x02
-#define OC_MODE_CREATE 0x08
-
-/* open/create results */
-#define OC_ACTION_NONE 0x00
-#define OC_ACTION_OPEN 0x01
-#define OC_ACTION_CREATE 0x02
-#define OC_ACTION_TRUNCATE 0x04
-#define OC_ACTION_REPLACE 0x04
-
-/* access rights attributes */
-#ifndef AR_READ_ONLY
-#define AR_READ_ONLY 0x0001
-#define AR_WRITE_ONLY 0x0002
-#define AR_DENY_READ 0x0004
-#define AR_DENY_WRITE 0x0008
-#define AR_COMPATIBILITY 0x0010
-#define AR_WRITE_THROUGH 0x0040
-#define AR_OPEN_COMPRESSED 0x0100
-#endif
-
-struct nw_nfs_info {
- __u32 mode;
- __u32 rdev;
-};
-
-struct nw_info_struct {
- __u32 spaceAlloc;
- __le32 attributes;
- __u16 flags;
- __le32 dataStreamSize;
- __le32 totalStreamSize;
- __u16 numberOfStreams;
- __le16 creationTime;
- __le16 creationDate;
- __u32 creatorID;
- __le16 modifyTime;
- __le16 modifyDate;
- __u32 modifierID;
- __le16 lastAccessDate;
- __u16 archiveTime;
- __u16 archiveDate;
- __u32 archiverID;
- __u16 inheritedRightsMask;
- __le32 dirEntNum;
- __le32 DosDirNum;
- __u32 volNumber;
- __u32 EADataSize;
- __u32 EAKeyCount;
- __u32 EAKeySize;
- __u32 NSCreator;
- __u8 nameLen;
- __u8 entryName[256];
- /* libncp may depend on there being nothing after entryName */
-#ifdef __KERNEL__
- struct nw_nfs_info nfs;
-#endif
-} __attribute__((packed));
-
-/* modify mask - use with MODIFY_DOS_INFO structure */
-#define DM_ATTRIBUTES (cpu_to_le32(0x02))
-#define DM_CREATE_DATE (cpu_to_le32(0x04))
-#define DM_CREATE_TIME (cpu_to_le32(0x08))
-#define DM_CREATOR_ID (cpu_to_le32(0x10))
-#define DM_ARCHIVE_DATE (cpu_to_le32(0x20))
-#define DM_ARCHIVE_TIME (cpu_to_le32(0x40))
-#define DM_ARCHIVER_ID (cpu_to_le32(0x80))
-#define DM_MODIFY_DATE (cpu_to_le32(0x0100))
-#define DM_MODIFY_TIME (cpu_to_le32(0x0200))
-#define DM_MODIFIER_ID (cpu_to_le32(0x0400))
-#define DM_LAST_ACCESS_DATE (cpu_to_le32(0x0800))
-#define DM_INHERITED_RIGHTS_MASK (cpu_to_le32(0x1000))
-#define DM_MAXIMUM_SPACE (cpu_to_le32(0x2000))
-
-struct nw_modify_dos_info {
- __le32 attributes;
- __le16 creationDate;
- __le16 creationTime;
- __u32 creatorID;
- __le16 modifyDate;
- __le16 modifyTime;
- __u32 modifierID;
- __u16 archiveDate;
- __u16 archiveTime;
- __u32 archiverID;
- __le16 lastAccessDate;
- __u16 inheritanceGrantMask;
- __u16 inheritanceRevokeMask;
- __u32 maximumSpace;
-} __attribute__((packed));
-
-struct nw_search_sequence {
- __u8 volNumber;
- __u32 dirBase;
- __u32 sequence;
-} __attribute__((packed));
-
-#endif /* _LINUX_NCP_H */
diff --git a/ANDROID_3.4.5/include/linux/ncp_fs.h b/ANDROID_3.4.5/include/linux/ncp_fs.h
deleted file mode 100644
index e13eefef..00000000
--- a/ANDROID_3.4.5/include/linux/ncp_fs.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * ncp_fs.h
- *
- * Copyright (C) 1995, 1996 by Volker Lendecke
- *
- */
-
-#ifndef _LINUX_NCP_FS_H
-#define _LINUX_NCP_FS_H
-
-#include <linux/fs.h>
-#include <linux/in.h>
-#include <linux/types.h>
-#include <linux/magic.h>
-
-#include <linux/ipx.h>
-#include <linux/ncp_no.h>
-
-/*
- * ioctl commands
- */
-
-struct ncp_ioctl_request {
- unsigned int function;
- unsigned int size;
- char __user *data;
-};
-
-struct ncp_fs_info {
- int version;
- struct sockaddr_ipx addr;
- __kernel_uid_t mounted_uid;
- int connection; /* Connection number the server assigned us */
- int buffer_size; /* The negotiated buffer size, to be
- used for read/write requests! */
-
- int volume_number;
- __le32 directory_id;
-};
-
-struct ncp_fs_info_v2 {
- int version;
- unsigned long mounted_uid;
- unsigned int connection;
- unsigned int buffer_size;
-
- unsigned int volume_number;
- __le32 directory_id;
-
- __u32 dummy1;
- __u32 dummy2;
- __u32 dummy3;
-};
-
-struct ncp_sign_init
-{
- char sign_root[8];
- char sign_last[16];
-};
-
-struct ncp_lock_ioctl
-{
-#define NCP_LOCK_LOG 0
-#define NCP_LOCK_SH 1
-#define NCP_LOCK_EX 2
-#define NCP_LOCK_CLEAR 256
- int cmd;
- int origin;
- unsigned int offset;
- unsigned int length;
-#define NCP_LOCK_DEFAULT_TIMEOUT 18
-#define NCP_LOCK_MAX_TIMEOUT 180
- int timeout;
-};
-
-struct ncp_setroot_ioctl
-{
- int volNumber;
- int namespace;
- __le32 dirEntNum;
-};
-
-struct ncp_objectname_ioctl
-{
-#define NCP_AUTH_NONE 0x00
-#define NCP_AUTH_BIND 0x31
-#define NCP_AUTH_NDS 0x32
- int auth_type;
- size_t object_name_len;
- void __user * object_name; /* a userspace data, in most cases user name */
-};
-
-struct ncp_privatedata_ioctl
-{
- size_t len;
- void __user * data; /* ~1000 for NDS */
-};
-
-/* NLS charsets by ioctl */
-#define NCP_IOCSNAME_LEN 20
-struct ncp_nls_ioctl
-{
- unsigned char codepage[NCP_IOCSNAME_LEN+1];
- unsigned char iocharset[NCP_IOCSNAME_LEN+1];
-};
-
-#define NCP_IOC_NCPREQUEST _IOR('n', 1, struct ncp_ioctl_request)
-#define NCP_IOC_GETMOUNTUID _IOW('n', 2, __kernel_old_uid_t)
-#define NCP_IOC_GETMOUNTUID2 _IOW('n', 2, unsigned long)
-
-#define NCP_IOC_CONN_LOGGED_IN _IO('n', 3)
-
-#define NCP_GET_FS_INFO_VERSION (1)
-#define NCP_IOC_GET_FS_INFO _IOWR('n', 4, struct ncp_fs_info)
-#define NCP_GET_FS_INFO_VERSION_V2 (2)
-#define NCP_IOC_GET_FS_INFO_V2 _IOWR('n', 4, struct ncp_fs_info_v2)
-
-#define NCP_IOC_SIGN_INIT _IOR('n', 5, struct ncp_sign_init)
-#define NCP_IOC_SIGN_WANTED _IOR('n', 6, int)
-#define NCP_IOC_SET_SIGN_WANTED _IOW('n', 6, int)
-
-#define NCP_IOC_LOCKUNLOCK _IOR('n', 7, struct ncp_lock_ioctl)
-
-#define NCP_IOC_GETROOT _IOW('n', 8, struct ncp_setroot_ioctl)
-#define NCP_IOC_SETROOT _IOR('n', 8, struct ncp_setroot_ioctl)
-
-#define NCP_IOC_GETOBJECTNAME _IOWR('n', 9, struct ncp_objectname_ioctl)
-#define NCP_IOC_SETOBJECTNAME _IOR('n', 9, struct ncp_objectname_ioctl)
-#define NCP_IOC_GETPRIVATEDATA _IOWR('n', 10, struct ncp_privatedata_ioctl)
-#define NCP_IOC_SETPRIVATEDATA _IOR('n', 10, struct ncp_privatedata_ioctl)
-
-#define NCP_IOC_GETCHARSETS _IOWR('n', 11, struct ncp_nls_ioctl)
-#define NCP_IOC_SETCHARSETS _IOR('n', 11, struct ncp_nls_ioctl)
-
-#define NCP_IOC_GETDENTRYTTL _IOW('n', 12, __u32)
-#define NCP_IOC_SETDENTRYTTL _IOR('n', 12, __u32)
-
-/*
- * The packet size to allocate. One page should be enough.
- */
-#define NCP_PACKET_SIZE 4070
-
-#define NCP_MAXPATHLEN 255
-#define NCP_MAXNAMELEN 14
-
-#endif /* _LINUX_NCP_FS_H */
diff --git a/ANDROID_3.4.5/include/linux/ncp_mount.h b/ANDROID_3.4.5/include/linux/ncp_mount.h
deleted file mode 100644
index dfcbea2d..00000000
--- a/ANDROID_3.4.5/include/linux/ncp_mount.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * ncp_mount.h
- *
- * Copyright (C) 1995, 1996 by Volker Lendecke
- *
- */
-
-#ifndef _LINUX_NCP_MOUNT_H
-#define _LINUX_NCP_MOUNT_H
-
-#include <linux/types.h>
-#include <linux/ncp.h>
-
-#define NCP_MOUNT_VERSION 3 /* Binary */
-
-/* Values for flags */
-#define NCP_MOUNT_SOFT 0x0001
-#define NCP_MOUNT_INTR 0x0002
-#define NCP_MOUNT_STRONG 0x0004 /* enable delete/rename of r/o files */
-#define NCP_MOUNT_NO_OS2 0x0008 /* do not use OS/2 (LONG) namespace */
-#define NCP_MOUNT_NO_NFS 0x0010 /* do not use NFS namespace */
-#define NCP_MOUNT_EXTRAS 0x0020
-#define NCP_MOUNT_SYMLINKS 0x0040 /* enable symlinks */
-#define NCP_MOUNT_NFS_EXTRAS 0x0080 /* Enable use of NFS NS meta-info */
-
-struct ncp_mount_data {
- int version;
- unsigned int ncp_fd; /* The socket to the ncp port */
- __kernel_uid_t mounted_uid; /* Who may umount() this filesystem? */
- __kernel_pid_t wdog_pid; /* Who cares for our watchdog packets? */
-
- unsigned char mounted_vol[NCP_VOLNAME_LEN + 1];
- unsigned int time_out; /* How long should I wait after
- sending a NCP request? */
- unsigned int retry_count; /* And how often should I retry? */
- unsigned int flags;
-
- __kernel_uid_t uid;
- __kernel_gid_t gid;
- __kernel_mode_t file_mode;
- __kernel_mode_t dir_mode;
-};
-
-#define NCP_MOUNT_VERSION_V4 (4) /* Binary or text */
-
-struct ncp_mount_data_v4 {
- int version;
- unsigned long flags; /* NCP_MOUNT_* flags */
- /* MIPS uses long __kernel_uid_t, but... */
- /* we neever pass -1, so it is safe */
- unsigned long mounted_uid; /* Who may umount() this filesystem? */
- /* MIPS uses long __kernel_pid_t */
- long wdog_pid; /* Who cares for our watchdog packets? */
-
- unsigned int ncp_fd; /* The socket to the ncp port */
- unsigned int time_out; /* How long should I wait after
- sending a NCP request? */
- unsigned int retry_count; /* And how often should I retry? */
-
- /* MIPS uses long __kernel_uid_t... */
- /* we never pass -1, so it is safe */
- unsigned long uid;
- unsigned long gid;
- /* MIPS uses unsigned long __kernel_mode_t */
- unsigned long file_mode;
- unsigned long dir_mode;
-};
-
-#define NCP_MOUNT_VERSION_V5 (5) /* Text only */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ncp_no.h b/ANDROID_3.4.5/include/linux/ncp_no.h
deleted file mode 100644
index cddaa48f..00000000
--- a/ANDROID_3.4.5/include/linux/ncp_no.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef _NCP_NO
-#define _NCP_NO
-
-/* these define the attribute byte as seen by NCP */
-#define aRONLY (__cpu_to_le32(1))
-#define aHIDDEN (__cpu_to_le32(2))
-#define aSYSTEM (__cpu_to_le32(4))
-#define aEXECUTE (__cpu_to_le32(8))
-#define aDIR (__cpu_to_le32(0x10))
-#define aARCH (__cpu_to_le32(0x20))
-#define aSHARED (__cpu_to_le32(0x80))
-#define aDONTSUBALLOCATE (__cpu_to_le32(1L<<11))
-#define aTRANSACTIONAL (__cpu_to_le32(1L<<12))
-#define aPURGE (__cpu_to_le32(1L<<16))
-#define aRENAMEINHIBIT (__cpu_to_le32(1L<<17))
-#define aDELETEINHIBIT (__cpu_to_le32(1L<<18))
-#define aDONTCOMPRESS (__cpu_to_le32(1L<<27))
-
-#endif /* _NCP_NO */
diff --git a/ANDROID_3.4.5/include/linux/neighbour.h b/ANDROID_3.4.5/include/linux/neighbour.h
deleted file mode 100644
index b188f68a..00000000
--- a/ANDROID_3.4.5/include/linux/neighbour.h
+++ /dev/null
@@ -1,156 +0,0 @@
-#ifndef __LINUX_NEIGHBOUR_H
-#define __LINUX_NEIGHBOUR_H
-
-#include <linux/types.h>
-#include <linux/netlink.h>
-
-struct ndmsg {
- __u8 ndm_family;
- __u8 ndm_pad1;
- __u16 ndm_pad2;
- __s32 ndm_ifindex;
- __u16 ndm_state;
- __u8 ndm_flags;
- __u8 ndm_type;
-};
-
-enum {
- NDA_UNSPEC,
- NDA_DST,
- NDA_LLADDR,
- NDA_CACHEINFO,
- NDA_PROBES,
- __NDA_MAX
-};
-
-#define NDA_MAX (__NDA_MAX - 1)
-
-/*
- * Neighbor Cache Entry Flags
- */
-
-#define NTF_USE 0x01
-#define NTF_PROXY 0x08 /* == ATF_PUBL */
-#define NTF_ROUTER 0x80
-
-/*
- * Neighbor Cache Entry States.
- */
-
-#define NUD_INCOMPLETE 0x01
-#define NUD_REACHABLE 0x02
-#define NUD_STALE 0x04
-#define NUD_DELAY 0x08
-#define NUD_PROBE 0x10
-#define NUD_FAILED 0x20
-
-/* Dummy states */
-#define NUD_NOARP 0x40
-#define NUD_PERMANENT 0x80
-#define NUD_NONE 0x00
-
-/* NUD_NOARP & NUD_PERMANENT are pseudostates, they never change
- and make no address resolution or NUD.
- NUD_PERMANENT is also cannot be deleted by garbage collectors.
- */
-
-struct nda_cacheinfo {
- __u32 ndm_confirmed;
- __u32 ndm_used;
- __u32 ndm_updated;
- __u32 ndm_refcnt;
-};
-
-/*****************************************************************
- * Neighbour tables specific messages.
- *
- * To retrieve the neighbour tables send RTM_GETNEIGHTBL with the
- * NLM_F_DUMP flag set. Every neighbour table configuration is
- * spread over multiple messages to avoid running into message
- * size limits on systems with many interfaces. The first message
- * in the sequence transports all not device specific data such as
- * statistics, configuration, and the default parameter set.
- * This message is followed by 0..n messages carrying device
- * specific parameter sets.
- * Although the ordering should be sufficient, NDTA_NAME can be
- * used to identify sequences. The initial message can be identified
- * by checking for NDTA_CONFIG. The device specific messages do
- * not contain this TLV but have NDTPA_IFINDEX set to the
- * corresponding interface index.
- *
- * To change neighbour table attributes, send RTM_SETNEIGHTBL
- * with NDTA_NAME set. Changeable attribute include NDTA_THRESH[1-3],
- * NDTA_GC_INTERVAL, and all TLVs in NDTA_PARMS unless marked
- * otherwise. Device specific parameter sets can be changed by
- * setting NDTPA_IFINDEX to the interface index of the corresponding
- * device.
- ****/
-
-struct ndt_stats {
- __u64 ndts_allocs;
- __u64 ndts_destroys;
- __u64 ndts_hash_grows;
- __u64 ndts_res_failed;
- __u64 ndts_lookups;
- __u64 ndts_hits;
- __u64 ndts_rcv_probes_mcast;
- __u64 ndts_rcv_probes_ucast;
- __u64 ndts_periodic_gc_runs;
- __u64 ndts_forced_gc_runs;
-};
-
-enum {
- NDTPA_UNSPEC,
- NDTPA_IFINDEX, /* u32, unchangeable */
- NDTPA_REFCNT, /* u32, read-only */
- NDTPA_REACHABLE_TIME, /* u64, read-only, msecs */
- NDTPA_BASE_REACHABLE_TIME, /* u64, msecs */
- NDTPA_RETRANS_TIME, /* u64, msecs */
- NDTPA_GC_STALETIME, /* u64, msecs */
- NDTPA_DELAY_PROBE_TIME, /* u64, msecs */
- NDTPA_QUEUE_LEN, /* u32 */
- NDTPA_APP_PROBES, /* u32 */
- NDTPA_UCAST_PROBES, /* u32 */
- NDTPA_MCAST_PROBES, /* u32 */
- NDTPA_ANYCAST_DELAY, /* u64, msecs */
- NDTPA_PROXY_DELAY, /* u64, msecs */
- NDTPA_PROXY_QLEN, /* u32 */
- NDTPA_LOCKTIME, /* u64, msecs */
- NDTPA_QUEUE_LENBYTES, /* u32 */
- __NDTPA_MAX
-};
-#define NDTPA_MAX (__NDTPA_MAX - 1)
-
-struct ndtmsg {
- __u8 ndtm_family;
- __u8 ndtm_pad1;
- __u16 ndtm_pad2;
-};
-
-struct ndt_config {
- __u16 ndtc_key_len;
- __u16 ndtc_entry_size;
- __u32 ndtc_entries;
- __u32 ndtc_last_flush; /* delta to now in msecs */
- __u32 ndtc_last_rand; /* delta to now in msecs */
- __u32 ndtc_hash_rnd;
- __u32 ndtc_hash_mask;
- __u32 ndtc_hash_chain_gc;
- __u32 ndtc_proxy_qlen;
-};
-
-enum {
- NDTA_UNSPEC,
- NDTA_NAME, /* char *, unchangeable */
- NDTA_THRESH1, /* u32 */
- NDTA_THRESH2, /* u32 */
- NDTA_THRESH3, /* u32 */
- NDTA_CONFIG, /* struct ndt_config, read-only */
- NDTA_PARMS, /* nested TLV NDTPA_* */
- NDTA_STATS, /* struct ndt_stats, read-only */
- NDTA_GC_INTERVAL, /* u64, msecs */
- __NDTA_MAX
-};
-#define NDTA_MAX (__NDTA_MAX - 1)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/net.h b/ANDROID_3.4.5/include/linux/net.h
deleted file mode 100644
index be60c7f5..00000000
--- a/ANDROID_3.4.5/include/linux/net.h
+++ /dev/null
@@ -1,294 +0,0 @@
-/*
- * NET An implementation of the SOCKET network access protocol.
- * This is the master header file for the Linux NET layer,
- * or, in plain English: the networking handling part of the
- * kernel.
- *
- * Version: @(#)net.h 1.0.3 05/25/93
- *
- * Authors: Orest Zborowski, <obz@Kodak.COM>
- * Ross Biro
- * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.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.
- */
-#ifndef _LINUX_NET_H
-#define _LINUX_NET_H
-
-#include <linux/socket.h>
-#include <asm/socket.h>
-
-#define NPROTO AF_MAX
-
-#define SYS_SOCKET 1 /* sys_socket(2) */
-#define SYS_BIND 2 /* sys_bind(2) */
-#define SYS_CONNECT 3 /* sys_connect(2) */
-#define SYS_LISTEN 4 /* sys_listen(2) */
-#define SYS_ACCEPT 5 /* sys_accept(2) */
-#define SYS_GETSOCKNAME 6 /* sys_getsockname(2) */
-#define SYS_GETPEERNAME 7 /* sys_getpeername(2) */
-#define SYS_SOCKETPAIR 8 /* sys_socketpair(2) */
-#define SYS_SEND 9 /* sys_send(2) */
-#define SYS_RECV 10 /* sys_recv(2) */
-#define SYS_SENDTO 11 /* sys_sendto(2) */
-#define SYS_RECVFROM 12 /* sys_recvfrom(2) */
-#define SYS_SHUTDOWN 13 /* sys_shutdown(2) */
-#define SYS_SETSOCKOPT 14 /* sys_setsockopt(2) */
-#define SYS_GETSOCKOPT 15 /* sys_getsockopt(2) */
-#define SYS_SENDMSG 16 /* sys_sendmsg(2) */
-#define SYS_RECVMSG 17 /* sys_recvmsg(2) */
-#define SYS_ACCEPT4 18 /* sys_accept4(2) */
-#define SYS_RECVMMSG 19 /* sys_recvmmsg(2) */
-#define SYS_SENDMMSG 20 /* sys_sendmmsg(2) */
-
-typedef enum {
- SS_FREE = 0, /* not allocated */
- SS_UNCONNECTED, /* unconnected to any socket */
- SS_CONNECTING, /* in process of connecting */
- SS_CONNECTED, /* connected to socket */
- SS_DISCONNECTING /* in process of disconnecting */
-} socket_state;
-
-#define __SO_ACCEPTCON (1 << 16) /* performed a listen */
-
-#ifdef __KERNEL__
-#include <linux/stringify.h>
-#include <linux/random.h>
-#include <linux/wait.h>
-#include <linux/fcntl.h> /* For O_CLOEXEC and O_NONBLOCK */
-#include <linux/kmemcheck.h>
-#include <linux/rcupdate.h>
-
-struct poll_table_struct;
-struct pipe_inode_info;
-struct inode;
-struct net;
-
-#define SOCK_ASYNC_NOSPACE 0
-#define SOCK_ASYNC_WAITDATA 1
-#define SOCK_NOSPACE 2
-#define SOCK_PASSCRED 3
-#define SOCK_PASSSEC 4
-
-#ifndef ARCH_HAS_SOCKET_TYPES
-/**
- * enum sock_type - Socket types
- * @SOCK_STREAM: stream (connection) socket
- * @SOCK_DGRAM: datagram (conn.less) socket
- * @SOCK_RAW: raw socket
- * @SOCK_RDM: reliably-delivered message
- * @SOCK_SEQPACKET: sequential packet socket
- * @SOCK_DCCP: Datagram Congestion Control Protocol socket
- * @SOCK_PACKET: linux specific way of getting packets at the dev level.
- * For writing rarp and other similar things on the user level.
- *
- * When adding some new socket type please
- * grep ARCH_HAS_SOCKET_TYPE include/asm-* /socket.h, at least MIPS
- * overrides this enum for binary compat reasons.
- */
-enum sock_type {
- SOCK_STREAM = 1,
- SOCK_DGRAM = 2,
- SOCK_RAW = 3,
- SOCK_RDM = 4,
- SOCK_SEQPACKET = 5,
- SOCK_DCCP = 6,
- SOCK_PACKET = 10,
-};
-
-#define SOCK_MAX (SOCK_PACKET + 1)
-/* Mask which covers at least up to SOCK_MASK-1. The
- * remaining bits are used as flags. */
-#define SOCK_TYPE_MASK 0xf
-
-/* Flags for socket, socketpair, accept4 */
-#define SOCK_CLOEXEC O_CLOEXEC
-#ifndef SOCK_NONBLOCK
-#define SOCK_NONBLOCK O_NONBLOCK
-#endif
-
-#endif /* ARCH_HAS_SOCKET_TYPES */
-
-enum sock_shutdown_cmd {
- SHUT_RD = 0,
- SHUT_WR = 1,
- SHUT_RDWR = 2,
-};
-
-struct socket_wq {
- /* Note: wait MUST be first field of socket_wq */
- wait_queue_head_t wait;
- struct fasync_struct *fasync_list;
- struct rcu_head rcu;
-} ____cacheline_aligned_in_smp;
-
-/**
- * struct socket - general BSD socket
- * @state: socket state (%SS_CONNECTED, etc)
- * @type: socket type (%SOCK_STREAM, etc)
- * @flags: socket flags (%SOCK_ASYNC_NOSPACE, etc)
- * @ops: protocol specific socket operations
- * @file: File back pointer for gc
- * @sk: internal networking protocol agnostic socket representation
- * @wq: wait queue for several uses
- */
-struct socket {
- socket_state state;
-
- kmemcheck_bitfield_begin(type);
- short type;
- kmemcheck_bitfield_end(type);
-
- unsigned long flags;
-
- struct socket_wq __rcu *wq;
-
- struct file *file;
- struct sock *sk;
- const struct proto_ops *ops;
-};
-
-struct vm_area_struct;
-struct page;
-struct kiocb;
-struct sockaddr;
-struct msghdr;
-struct module;
-
-struct proto_ops {
- int family;
- struct module *owner;
- int (*release) (struct socket *sock);
- int (*bind) (struct socket *sock,
- struct sockaddr *myaddr,
- int sockaddr_len);
- int (*connect) (struct socket *sock,
- struct sockaddr *vaddr,
- int sockaddr_len, int flags);
- int (*socketpair)(struct socket *sock1,
- struct socket *sock2);
- int (*accept) (struct socket *sock,
- struct socket *newsock, int flags);
- int (*getname) (struct socket *sock,
- struct sockaddr *addr,
- int *sockaddr_len, int peer);
- unsigned int (*poll) (struct file *file, struct socket *sock,
- struct poll_table_struct *wait);
- int (*ioctl) (struct socket *sock, unsigned int cmd,
- unsigned long arg);
-#ifdef CONFIG_COMPAT
- int (*compat_ioctl) (struct socket *sock, unsigned int cmd,
- unsigned long arg);
-#endif
- int (*listen) (struct socket *sock, int len);
- int (*shutdown) (struct socket *sock, int flags);
- int (*setsockopt)(struct socket *sock, int level,
- int optname, char __user *optval, unsigned int optlen);
- int (*getsockopt)(struct socket *sock, int level,
- int optname, char __user *optval, int __user *optlen);
-#ifdef CONFIG_COMPAT
- int (*compat_setsockopt)(struct socket *sock, int level,
- int optname, char __user *optval, unsigned int optlen);
- int (*compat_getsockopt)(struct socket *sock, int level,
- int optname, char __user *optval, int __user *optlen);
-#endif
- int (*sendmsg) (struct kiocb *iocb, struct socket *sock,
- struct msghdr *m, size_t total_len);
- int (*recvmsg) (struct kiocb *iocb, struct socket *sock,
- struct msghdr *m, size_t total_len,
- int flags);
- int (*mmap) (struct file *file, struct socket *sock,
- struct vm_area_struct * vma);
- ssize_t (*sendpage) (struct socket *sock, struct page *page,
- int offset, size_t size, int flags);
- ssize_t (*splice_read)(struct socket *sock, loff_t *ppos,
- struct pipe_inode_info *pipe, size_t len, unsigned int flags);
- void (*set_peek_off)(struct sock *sk, int val);
-};
-
-#define DECLARE_SOCKADDR(type, dst, src) \
- type dst = ({ __sockaddr_check_size(sizeof(*dst)); (type) src; })
-
-struct net_proto_family {
- int family;
- int (*create)(struct net *net, struct socket *sock,
- int protocol, int kern);
- struct module *owner;
-};
-
-struct iovec;
-struct kvec;
-
-enum {
- SOCK_WAKE_IO,
- SOCK_WAKE_WAITD,
- SOCK_WAKE_SPACE,
- SOCK_WAKE_URG,
-};
-
-extern int sock_wake_async(struct socket *sk, int how, int band);
-extern int sock_register(const struct net_proto_family *fam);
-extern void sock_unregister(int family);
-extern int __sock_create(struct net *net, int family, int type, int proto,
- struct socket **res, int kern);
-extern int sock_create(int family, int type, int proto,
- struct socket **res);
-extern int sock_create_kern(int family, int type, int proto,
- struct socket **res);
-extern int sock_create_lite(int family, int type, int proto,
- struct socket **res);
-extern void sock_release(struct socket *sock);
-extern int sock_sendmsg(struct socket *sock, struct msghdr *msg,
- size_t len);
-extern int sock_recvmsg(struct socket *sock, struct msghdr *msg,
- size_t size, int flags);
-extern int sock_map_fd(struct socket *sock, int flags);
-extern struct socket *sockfd_lookup(int fd, int *err);
-#define sockfd_put(sock) fput(sock->file)
-extern int net_ratelimit(void);
-
-#define net_random() random32()
-#define net_srandom(seed) srandom32((__force u32)seed)
-
-extern int kernel_sendmsg(struct socket *sock, struct msghdr *msg,
- struct kvec *vec, size_t num, size_t len);
-extern int kernel_recvmsg(struct socket *sock, struct msghdr *msg,
- struct kvec *vec, size_t num,
- size_t len, int flags);
-
-extern int kernel_bind(struct socket *sock, struct sockaddr *addr,
- int addrlen);
-extern int kernel_listen(struct socket *sock, int backlog);
-extern int kernel_accept(struct socket *sock, struct socket **newsock,
- int flags);
-extern int kernel_connect(struct socket *sock, struct sockaddr *addr,
- int addrlen, int flags);
-extern int kernel_getsockname(struct socket *sock, struct sockaddr *addr,
- int *addrlen);
-extern int kernel_getpeername(struct socket *sock, struct sockaddr *addr,
- int *addrlen);
-extern int kernel_getsockopt(struct socket *sock, int level, int optname,
- char *optval, int *optlen);
-extern int kernel_setsockopt(struct socket *sock, int level, int optname,
- char *optval, unsigned int optlen);
-extern int kernel_sendpage(struct socket *sock, struct page *page, int offset,
- size_t size, int flags);
-extern int kernel_sock_ioctl(struct socket *sock, int cmd, unsigned long arg);
-extern int kernel_sock_shutdown(struct socket *sock,
- enum sock_shutdown_cmd how);
-
-#define MODULE_ALIAS_NETPROTO(proto) \
- MODULE_ALIAS("net-pf-" __stringify(proto))
-
-#define MODULE_ALIAS_NET_PF_PROTO(pf, proto) \
- MODULE_ALIAS("net-pf-" __stringify(pf) "-proto-" __stringify(proto))
-
-#define MODULE_ALIAS_NET_PF_PROTO_TYPE(pf, proto, type) \
- MODULE_ALIAS("net-pf-" __stringify(pf) "-proto-" __stringify(proto) \
- "-type-" __stringify(type))
-
-#endif /* __KERNEL__ */
-#endif /* _LINUX_NET_H */
diff --git a/ANDROID_3.4.5/include/linux/net_dropmon.h b/ANDROID_3.4.5/include/linux/net_dropmon.h
deleted file mode 100644
index 2a739462..00000000
--- a/ANDROID_3.4.5/include/linux/net_dropmon.h
+++ /dev/null
@@ -1,64 +0,0 @@
-#ifndef __NET_DROPMON_H
-#define __NET_DROPMON_H
-
-#include <linux/types.h>
-#include <linux/netlink.h>
-
-struct net_dm_drop_point {
- __u8 pc[8];
- __u32 count;
-};
-
-#define is_drop_point_hw(x) do {\
- int ____i, ____j;\
- for (____i = 0; ____i < 8; i ____i++)\
- ____j |= x[____i];\
- ____j;\
-} while (0)
-
-#define NET_DM_CFG_VERSION 0
-#define NET_DM_CFG_ALERT_COUNT 1
-#define NET_DM_CFG_ALERT_DELAY 2
-#define NET_DM_CFG_MAX 3
-
-struct net_dm_config_entry {
- __u32 type;
- __u64 data __attribute__((aligned(8)));
-};
-
-struct net_dm_config_msg {
- __u32 entries;
- struct net_dm_config_entry options[0];
-};
-
-struct net_dm_alert_msg {
- __u32 entries;
- struct net_dm_drop_point points[0];
-};
-
-struct net_dm_user_msg {
- union {
- struct net_dm_config_msg user;
- struct net_dm_alert_msg alert;
- } u;
-};
-
-
-/* These are the netlink message types for this protocol */
-
-enum {
- NET_DM_CMD_UNSPEC = 0,
- NET_DM_CMD_ALERT,
- NET_DM_CMD_CONFIG,
- NET_DM_CMD_START,
- NET_DM_CMD_STOP,
- _NET_DM_CMD_MAX,
-};
-
-#define NET_DM_CMD_MAX (_NET_DM_CMD_MAX - 1)
-
-/*
- * Our group identifiers
- */
-#define NET_DM_GRP_ALERT 1
-#endif
diff --git a/ANDROID_3.4.5/include/linux/net_tstamp.h b/ANDROID_3.4.5/include/linux/net_tstamp.h
deleted file mode 100644
index ae5df122..00000000
--- a/ANDROID_3.4.5/include/linux/net_tstamp.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Userspace API for hardware time stamping of network packets
- *
- * Copyright (C) 2008,2009 Intel Corporation
- * Author: Patrick Ohly <patrick.ohly@intel.com>
- *
- */
-
-#ifndef _NET_TIMESTAMPING_H
-#define _NET_TIMESTAMPING_H
-
-#include <linux/socket.h> /* for SO_TIMESTAMPING */
-
-/* SO_TIMESTAMPING gets an integer bit field comprised of these values */
-enum {
- SOF_TIMESTAMPING_TX_HARDWARE = (1<<0),
- SOF_TIMESTAMPING_TX_SOFTWARE = (1<<1),
- SOF_TIMESTAMPING_RX_HARDWARE = (1<<2),
- SOF_TIMESTAMPING_RX_SOFTWARE = (1<<3),
- SOF_TIMESTAMPING_SOFTWARE = (1<<4),
- SOF_TIMESTAMPING_SYS_HARDWARE = (1<<5),
- SOF_TIMESTAMPING_RAW_HARDWARE = (1<<6),
- SOF_TIMESTAMPING_MASK =
- (SOF_TIMESTAMPING_RAW_HARDWARE - 1) |
- SOF_TIMESTAMPING_RAW_HARDWARE
-};
-
-/**
- * struct hwtstamp_config - %SIOCSHWTSTAMP parameter
- *
- * @flags: no flags defined right now, must be zero
- * @tx_type: one of HWTSTAMP_TX_*
- * @rx_type: one of one of HWTSTAMP_FILTER_*
- *
- * %SIOCSHWTSTAMP expects a &struct ifreq with a ifr_data pointer to
- * this structure. dev_ifsioc() in the kernel takes care of the
- * translation between 32 bit userspace and 64 bit kernel. The
- * structure is intentionally chosen so that it has the same layout on
- * 32 and 64 bit systems, don't break this!
- */
-struct hwtstamp_config {
- int flags;
- int tx_type;
- int rx_filter;
-};
-
-/* possible values for hwtstamp_config->tx_type */
-enum hwtstamp_tx_types {
- /*
- * No outgoing packet will need hardware time stamping;
- * should a packet arrive which asks for it, no hardware
- * time stamping will be done.
- */
- HWTSTAMP_TX_OFF,
-
- /*
- * Enables hardware time stamping for outgoing packets;
- * the sender of the packet decides which are to be
- * time stamped by setting %SOF_TIMESTAMPING_TX_SOFTWARE
- * before sending the packet.
- */
- HWTSTAMP_TX_ON,
-
- /*
- * Enables time stamping for outgoing packets just as
- * HWTSTAMP_TX_ON does, but also enables time stamp insertion
- * directly into Sync packets. In this case, transmitted Sync
- * packets will not received a time stamp via the socket error
- * queue.
- */
- HWTSTAMP_TX_ONESTEP_SYNC,
-};
-
-/* possible values for hwtstamp_config->rx_filter */
-enum hwtstamp_rx_filters {
- /* time stamp no incoming packet at all */
- HWTSTAMP_FILTER_NONE,
-
- /* time stamp any incoming packet */
- HWTSTAMP_FILTER_ALL,
-
- /* return value: time stamp all packets requested plus some others */
- HWTSTAMP_FILTER_SOME,
-
- /* PTP v1, UDP, any kind of event packet */
- HWTSTAMP_FILTER_PTP_V1_L4_EVENT,
- /* PTP v1, UDP, Sync packet */
- HWTSTAMP_FILTER_PTP_V1_L4_SYNC,
- /* PTP v1, UDP, Delay_req packet */
- HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ,
- /* PTP v2, UDP, any kind of event packet */
- HWTSTAMP_FILTER_PTP_V2_L4_EVENT,
- /* PTP v2, UDP, Sync packet */
- HWTSTAMP_FILTER_PTP_V2_L4_SYNC,
- /* PTP v2, UDP, Delay_req packet */
- HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ,
-
- /* 802.AS1, Ethernet, any kind of event packet */
- HWTSTAMP_FILTER_PTP_V2_L2_EVENT,
- /* 802.AS1, Ethernet, Sync packet */
- HWTSTAMP_FILTER_PTP_V2_L2_SYNC,
- /* 802.AS1, Ethernet, Delay_req packet */
- HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ,
-
- /* PTP v2/802.AS1, any layer, any kind of event packet */
- HWTSTAMP_FILTER_PTP_V2_EVENT,
- /* PTP v2/802.AS1, any layer, Sync packet */
- HWTSTAMP_FILTER_PTP_V2_SYNC,
- /* PTP v2/802.AS1, any layer, Delay_req packet */
- HWTSTAMP_FILTER_PTP_V2_DELAY_REQ,
-};
-
-#endif /* _NET_TIMESTAMPING_H */
diff --git a/ANDROID_3.4.5/include/linux/netdev_features.h b/ANDROID_3.4.5/include/linux/netdev_features.h
deleted file mode 100644
index 5ac32123..00000000
--- a/ANDROID_3.4.5/include/linux/netdev_features.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Network device 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 of the License, or (at your option) any later version.
- */
-#ifndef _LINUX_NETDEV_FEATURES_H
-#define _LINUX_NETDEV_FEATURES_H
-
-#include <linux/types.h>
-
-typedef u64 netdev_features_t;
-
-enum {
- NETIF_F_SG_BIT, /* Scatter/gather IO. */
- NETIF_F_IP_CSUM_BIT, /* Can checksum TCP/UDP over IPv4. */
- __UNUSED_NETIF_F_1,
- NETIF_F_HW_CSUM_BIT, /* Can checksum all the packets. */
- NETIF_F_IPV6_CSUM_BIT, /* Can checksum TCP/UDP over IPV6 */
- NETIF_F_HIGHDMA_BIT, /* Can DMA to high memory. */
- NETIF_F_FRAGLIST_BIT, /* Scatter/gather IO. */
- NETIF_F_HW_VLAN_TX_BIT, /* Transmit VLAN hw acceleration */
- NETIF_F_HW_VLAN_RX_BIT, /* Receive VLAN hw acceleration */
- NETIF_F_HW_VLAN_FILTER_BIT, /* Receive filtering on VLAN */
- NETIF_F_VLAN_CHALLENGED_BIT, /* Device cannot handle VLAN packets */
- NETIF_F_GSO_BIT, /* Enable software GSO. */
- NETIF_F_LLTX_BIT, /* LockLess TX - deprecated. Please */
- /* do not use LLTX in new drivers */
- NETIF_F_NETNS_LOCAL_BIT, /* Does not change network namespaces */
- NETIF_F_GRO_BIT, /* Generic receive offload */
- NETIF_F_LRO_BIT, /* large receive offload */
-
- /**/NETIF_F_GSO_SHIFT, /* keep the order of SKB_GSO_* bits */
- NETIF_F_TSO_BIT /* ... TCPv4 segmentation */
- = NETIF_F_GSO_SHIFT,
- NETIF_F_UFO_BIT, /* ... UDPv4 fragmentation */
- NETIF_F_GSO_ROBUST_BIT, /* ... ->SKB_GSO_DODGY */
- NETIF_F_TSO_ECN_BIT, /* ... TCP ECN support */
- NETIF_F_TSO6_BIT, /* ... TCPv6 segmentation */
- NETIF_F_FSO_BIT, /* ... FCoE segmentation */
- NETIF_F_GSO_RESERVED1, /* ... free (fill GSO_MASK to 8 bits) */
- /**/NETIF_F_GSO_LAST, /* [can't be last bit, see GSO_MASK] */
- NETIF_F_GSO_RESERVED2 /* ... free (fill GSO_MASK to 8 bits) */
- = NETIF_F_GSO_LAST,
-
- NETIF_F_FCOE_CRC_BIT, /* FCoE CRC32 */
- NETIF_F_SCTP_CSUM_BIT, /* SCTP checksum offload */
- NETIF_F_FCOE_MTU_BIT, /* Supports max FCoE MTU, 2158 bytes*/
- NETIF_F_NTUPLE_BIT, /* N-tuple filters supported */
- NETIF_F_RXHASH_BIT, /* Receive hashing offload */
- NETIF_F_RXCSUM_BIT, /* Receive checksumming offload */
- NETIF_F_NOCACHE_COPY_BIT, /* Use no-cache copyfromuser */
- NETIF_F_LOOPBACK_BIT, /* Enable loopback */
- NETIF_F_RXFCS_BIT, /* Append FCS to skb pkt data */
- NETIF_F_RXALL_BIT, /* Receive errored frames too */
-
- /*
- * Add your fresh new feature above and remember to update
- * netdev_features_strings[] in net/core/ethtool.c and maybe
- * some feature mask #defines below. Please also describe it
- * in Documentation/networking/netdev-features.txt.
- */
-
- /**/NETDEV_FEATURE_COUNT
-};
-
-/* copy'n'paste compression ;) */
-#define __NETIF_F_BIT(bit) ((netdev_features_t)1 << (bit))
-#define __NETIF_F(name) __NETIF_F_BIT(NETIF_F_##name##_BIT)
-
-#define NETIF_F_FCOE_CRC __NETIF_F(FCOE_CRC)
-#define NETIF_F_FCOE_MTU __NETIF_F(FCOE_MTU)
-#define NETIF_F_FRAGLIST __NETIF_F(FRAGLIST)
-#define NETIF_F_FSO __NETIF_F(FSO)
-#define NETIF_F_GRO __NETIF_F(GRO)
-#define NETIF_F_GSO __NETIF_F(GSO)
-#define NETIF_F_GSO_ROBUST __NETIF_F(GSO_ROBUST)
-#define NETIF_F_HIGHDMA __NETIF_F(HIGHDMA)
-#define NETIF_F_HW_CSUM __NETIF_F(HW_CSUM)
-#define NETIF_F_HW_VLAN_FILTER __NETIF_F(HW_VLAN_FILTER)
-#define NETIF_F_HW_VLAN_RX __NETIF_F(HW_VLAN_RX)
-#define NETIF_F_HW_VLAN_TX __NETIF_F(HW_VLAN_TX)
-#define NETIF_F_IP_CSUM __NETIF_F(IP_CSUM)
-#define NETIF_F_IPV6_CSUM __NETIF_F(IPV6_CSUM)
-#define NETIF_F_LLTX __NETIF_F(LLTX)
-#define NETIF_F_LOOPBACK __NETIF_F(LOOPBACK)
-#define NETIF_F_LRO __NETIF_F(LRO)
-#define NETIF_F_NETNS_LOCAL __NETIF_F(NETNS_LOCAL)
-#define NETIF_F_NOCACHE_COPY __NETIF_F(NOCACHE_COPY)
-#define NETIF_F_NTUPLE __NETIF_F(NTUPLE)
-#define NETIF_F_RXCSUM __NETIF_F(RXCSUM)
-#define NETIF_F_RXHASH __NETIF_F(RXHASH)
-#define NETIF_F_SCTP_CSUM __NETIF_F(SCTP_CSUM)
-#define NETIF_F_SG __NETIF_F(SG)
-#define NETIF_F_TSO6 __NETIF_F(TSO6)
-#define NETIF_F_TSO_ECN __NETIF_F(TSO_ECN)
-#define NETIF_F_TSO __NETIF_F(TSO)
-#define NETIF_F_UFO __NETIF_F(UFO)
-#define NETIF_F_VLAN_CHALLENGED __NETIF_F(VLAN_CHALLENGED)
-#define NETIF_F_RXFCS __NETIF_F(RXFCS)
-#define NETIF_F_RXALL __NETIF_F(RXALL)
-
-/* Features valid for ethtool to change */
-/* = all defined minus driver/device-class-related */
-#define NETIF_F_NEVER_CHANGE (NETIF_F_VLAN_CHALLENGED | \
- NETIF_F_LLTX | NETIF_F_NETNS_LOCAL)
-
-/* remember that ((t)1 << t_BITS) is undefined in C99 */
-#define NETIF_F_ETHTOOL_BITS ((__NETIF_F_BIT(NETDEV_FEATURE_COUNT - 1) | \
- (__NETIF_F_BIT(NETDEV_FEATURE_COUNT - 1) - 1)) & \
- ~NETIF_F_NEVER_CHANGE)
-
-/* Segmentation offload feature mask */
-#define NETIF_F_GSO_MASK (__NETIF_F_BIT(NETIF_F_GSO_LAST + 1) - \
- __NETIF_F_BIT(NETIF_F_GSO_SHIFT))
-
-/* List of features with software fallbacks. */
-#define NETIF_F_GSO_SOFTWARE (NETIF_F_TSO | NETIF_F_TSO_ECN | \
- NETIF_F_TSO6 | NETIF_F_UFO)
-
-#define NETIF_F_GEN_CSUM NETIF_F_HW_CSUM
-#define NETIF_F_V4_CSUM (NETIF_F_GEN_CSUM | NETIF_F_IP_CSUM)
-#define NETIF_F_V6_CSUM (NETIF_F_GEN_CSUM | NETIF_F_IPV6_CSUM)
-#define NETIF_F_ALL_CSUM (NETIF_F_V4_CSUM | NETIF_F_V6_CSUM)
-
-#define NETIF_F_ALL_TSO (NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_TSO_ECN)
-
-#define NETIF_F_ALL_FCOE (NETIF_F_FCOE_CRC | NETIF_F_FCOE_MTU | \
- NETIF_F_FSO)
-
-/*
- * If one device supports one of these features, then enable them
- * for all in netdev_increment_features.
- */
-#define NETIF_F_ONE_FOR_ALL (NETIF_F_GSO_SOFTWARE | NETIF_F_GSO_ROBUST | \
- NETIF_F_SG | NETIF_F_HIGHDMA | \
- NETIF_F_FRAGLIST | NETIF_F_VLAN_CHALLENGED)
-/*
- * If one device doesn't support one of these features, then disable it
- * for all in netdev_increment_features.
- */
-#define NETIF_F_ALL_FOR_ALL (NETIF_F_NOCACHE_COPY | NETIF_F_FSO)
-
-/* changeable features with no special hardware requirements */
-#define NETIF_F_SOFT_FEATURES (NETIF_F_GSO | NETIF_F_GRO)
-
-#endif /* _LINUX_NETDEV_FEATURES_H */
diff --git a/ANDROID_3.4.5/include/linux/netdevice.h b/ANDROID_3.4.5/include/linux/netdevice.h
deleted file mode 100644
index 33900a53..00000000
--- a/ANDROID_3.4.5/include/linux/netdevice.h
+++ /dev/null
@@ -1,2804 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Definitions for the Interfaces handler.
- *
- * Version: @(#)dev.h 1.0.10 08/12/93
- *
- * Authors: Ross Biro
- * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
- * Corey Minyard <wf-rch!minyard@relay.EU.net>
- * Donald J. Becker, <becker@cesdis.gsfc.nasa.gov>
- * Alan Cox, <alan@lxorguk.ukuu.org.uk>
- * Bjorn Ekwall. <bj0rn@blox.se>
- * Pekka Riikonen <priikone@poseidon.pspt.fi>
- *
- * 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.
- *
- * Moved to /usr/include/linux for NET3
- */
-#ifndef _LINUX_NETDEVICE_H
-#define _LINUX_NETDEVICE_H
-
-#include <linux/if.h>
-#include <linux/if_ether.h>
-#include <linux/if_packet.h>
-#include <linux/if_link.h>
-
-#ifdef __KERNEL__
-#include <linux/pm_qos.h>
-#include <linux/timer.h>
-#include <linux/bug.h>
-#include <linux/delay.h>
-#include <linux/atomic.h>
-#include <asm/cache.h>
-#include <asm/byteorder.h>
-
-#include <linux/percpu.h>
-#include <linux/rculist.h>
-#include <linux/dmaengine.h>
-#include <linux/workqueue.h>
-#include <linux/dynamic_queue_limits.h>
-
-#include <linux/ethtool.h>
-#include <net/net_namespace.h>
-#include <net/dsa.h>
-#ifdef CONFIG_DCB
-#include <net/dcbnl.h>
-#endif
-#include <net/netprio_cgroup.h>
-
-#include <linux/netdev_features.h>
-
-struct netpoll_info;
-struct device;
-struct phy_device;
-/* 802.11 specific */
-struct wireless_dev;
- /* source back-compat hooks */
-#define SET_ETHTOOL_OPS(netdev,ops) \
- ( (netdev)->ethtool_ops = (ops) )
-
-/* hardware address assignment types */
-#define NET_ADDR_PERM 0 /* address is permanent (default) */
-#define NET_ADDR_RANDOM 1 /* address is generated randomly */
-#define NET_ADDR_STOLEN 2 /* address is stolen from other device */
-
-/* Backlog congestion levels */
-#define NET_RX_SUCCESS 0 /* keep 'em coming, baby */
-#define NET_RX_DROP 1 /* packet dropped */
-
-/*
- * Transmit return codes: transmit return codes originate from three different
- * namespaces:
- *
- * - qdisc return codes
- * - driver transmit return codes
- * - errno values
- *
- * Drivers are allowed to return any one of those in their hard_start_xmit()
- * function. Real network devices commonly used with qdiscs should only return
- * the driver transmit return codes though - when qdiscs are used, the actual
- * transmission happens asynchronously, so the value is not propagated to
- * higher layers. Virtual network devices transmit synchronously, in this case
- * the driver transmit return codes are consumed by dev_queue_xmit(), all
- * others are propagated to higher layers.
- */
-
-/* qdisc ->enqueue() return codes. */
-#define NET_XMIT_SUCCESS 0x00
-#define NET_XMIT_DROP 0x01 /* skb dropped */
-#define NET_XMIT_CN 0x02 /* congestion notification */
-#define NET_XMIT_POLICED 0x03 /* skb is shot by police */
-#define NET_XMIT_MASK 0x0f /* qdisc flags in net/sch_generic.h */
-
-/* NET_XMIT_CN is special. It does not guarantee that this packet is lost. It
- * indicates that the device will soon be dropping packets, or already drops
- * some packets of the same priority; prompting us to send less aggressively. */
-#define net_xmit_eval(e) ((e) == NET_XMIT_CN ? 0 : (e))
-#define net_xmit_errno(e) ((e) != NET_XMIT_CN ? -ENOBUFS : 0)
-
-/* Driver transmit return codes */
-#define NETDEV_TX_MASK 0xf0
-
-enum netdev_tx {
- __NETDEV_TX_MIN = INT_MIN, /* make sure enum is signed */
- NETDEV_TX_OK = 0x00, /* driver took care of packet */
- NETDEV_TX_BUSY = 0x10, /* driver tx path was busy*/
- NETDEV_TX_LOCKED = 0x20, /* driver tx lock was already taken */
-};
-typedef enum netdev_tx netdev_tx_t;
-
-/*
- * Current order: NETDEV_TX_MASK > NET_XMIT_MASK >= 0 is significant;
- * hard_start_xmit() return < NET_XMIT_MASK means skb was consumed.
- */
-static inline bool dev_xmit_complete(int rc)
-{
- /*
- * Positive cases with an skb consumed by a driver:
- * - successful transmission (rc == NETDEV_TX_OK)
- * - error while transmitting (rc < 0)
- * - error while queueing to a different device (rc & NET_XMIT_MASK)
- */
- if (likely(rc < NET_XMIT_MASK))
- return true;
-
- return false;
-}
-
-#endif
-
-#define MAX_ADDR_LEN 32 /* Largest hardware address length */
-
-/* Initial net device group. All devices belong to group 0 by default. */
-#define INIT_NETDEV_GROUP 0
-
-#ifdef __KERNEL__
-/*
- * Compute the worst case header length according to the protocols
- * used.
- */
-
-#if defined(CONFIG_WLAN) || IS_ENABLED(CONFIG_AX25)
-# if defined(CONFIG_MAC80211_MESH)
-# define LL_MAX_HEADER 128
-# else
-# define LL_MAX_HEADER 96
-# endif
-#elif IS_ENABLED(CONFIG_TR)
-# define LL_MAX_HEADER 48
-#else
-# define LL_MAX_HEADER 32
-#endif
-
-#if !IS_ENABLED(CONFIG_NET_IPIP) && !IS_ENABLED(CONFIG_NET_IPGRE) && \
- !IS_ENABLED(CONFIG_IPV6_SIT) && !IS_ENABLED(CONFIG_IPV6_TUNNEL)
-#define MAX_HEADER LL_MAX_HEADER
-#else
-#define MAX_HEADER (LL_MAX_HEADER + 48)
-#endif
-
-/*
- * Old network device statistics. Fields are native words
- * (unsigned long) so they can be read and written atomically.
- */
-
-struct net_device_stats {
- unsigned long rx_packets;
- unsigned long tx_packets;
- unsigned long rx_bytes;
- unsigned long tx_bytes;
- unsigned long rx_errors;
- unsigned long tx_errors;
- unsigned long rx_dropped;
- unsigned long tx_dropped;
- unsigned long multicast;
- unsigned long collisions;
- unsigned long rx_length_errors;
- unsigned long rx_over_errors;
- unsigned long rx_crc_errors;
- unsigned long rx_frame_errors;
- unsigned long rx_fifo_errors;
- unsigned long rx_missed_errors;
- unsigned long tx_aborted_errors;
- unsigned long tx_carrier_errors;
- unsigned long tx_fifo_errors;
- unsigned long tx_heartbeat_errors;
- unsigned long tx_window_errors;
- unsigned long rx_compressed;
- unsigned long tx_compressed;
-};
-
-#endif /* __KERNEL__ */
-
-
-/* Media selection options. */
-enum {
- IF_PORT_UNKNOWN = 0,
- IF_PORT_10BASE2,
- IF_PORT_10BASET,
- IF_PORT_AUI,
- IF_PORT_100BASET,
- IF_PORT_100BASETX,
- IF_PORT_100BASEFX
-};
-
-#ifdef __KERNEL__
-
-#include <linux/cache.h>
-#include <linux/skbuff.h>
-
-#ifdef CONFIG_RPS
-#include <linux/static_key.h>
-extern struct static_key rps_needed;
-#endif
-
-struct neighbour;
-struct neigh_parms;
-struct sk_buff;
-
-struct netdev_hw_addr {
- struct list_head list;
- unsigned char addr[MAX_ADDR_LEN];
- unsigned char type;
-#define NETDEV_HW_ADDR_T_LAN 1
-#define NETDEV_HW_ADDR_T_SAN 2
-#define NETDEV_HW_ADDR_T_SLAVE 3
-#define NETDEV_HW_ADDR_T_UNICAST 4
-#define NETDEV_HW_ADDR_T_MULTICAST 5
- bool synced;
- bool global_use;
- int refcount;
- struct rcu_head rcu_head;
-};
-
-struct netdev_hw_addr_list {
- struct list_head list;
- int count;
-};
-
-#define netdev_hw_addr_list_count(l) ((l)->count)
-#define netdev_hw_addr_list_empty(l) (netdev_hw_addr_list_count(l) == 0)
-#define netdev_hw_addr_list_for_each(ha, l) \
- list_for_each_entry(ha, &(l)->list, list)
-
-#define netdev_uc_count(dev) netdev_hw_addr_list_count(&(dev)->uc)
-#define netdev_uc_empty(dev) netdev_hw_addr_list_empty(&(dev)->uc)
-#define netdev_for_each_uc_addr(ha, dev) \
- netdev_hw_addr_list_for_each(ha, &(dev)->uc)
-
-#define netdev_mc_count(dev) netdev_hw_addr_list_count(&(dev)->mc)
-#define netdev_mc_empty(dev) netdev_hw_addr_list_empty(&(dev)->mc)
-#define netdev_for_each_mc_addr(ha, dev) \
- netdev_hw_addr_list_for_each(ha, &(dev)->mc)
-
-struct hh_cache {
- u16 hh_len;
- u16 __pad;
- seqlock_t hh_lock;
-
- /* cached hardware header; allow for machine alignment needs. */
-#define HH_DATA_MOD 16
-#define HH_DATA_OFF(__len) \
- (HH_DATA_MOD - (((__len - 1) & (HH_DATA_MOD - 1)) + 1))
-#define HH_DATA_ALIGN(__len) \
- (((__len)+(HH_DATA_MOD-1))&~(HH_DATA_MOD - 1))
- unsigned long hh_data[HH_DATA_ALIGN(LL_MAX_HEADER) / sizeof(long)];
-};
-
-/* Reserve HH_DATA_MOD byte aligned hard_header_len, but at least that much.
- * Alternative is:
- * dev->hard_header_len ? (dev->hard_header_len +
- * (HH_DATA_MOD - 1)) & ~(HH_DATA_MOD - 1) : 0
- *
- * We could use other alignment values, but we must maintain the
- * relationship HH alignment <= LL alignment.
- */
-#define LL_RESERVED_SPACE(dev) \
- ((((dev)->hard_header_len+(dev)->needed_headroom)&~(HH_DATA_MOD - 1)) + HH_DATA_MOD)
-#define LL_RESERVED_SPACE_EXTRA(dev,extra) \
- ((((dev)->hard_header_len+(dev)->needed_headroom+(extra))&~(HH_DATA_MOD - 1)) + HH_DATA_MOD)
-
-struct header_ops {
- int (*create) (struct sk_buff *skb, struct net_device *dev,
- unsigned short type, const void *daddr,
- const void *saddr, unsigned len);
- int (*parse)(const struct sk_buff *skb, unsigned char *haddr);
- int (*rebuild)(struct sk_buff *skb);
- int (*cache)(const struct neighbour *neigh, struct hh_cache *hh, __be16 type);
- void (*cache_update)(struct hh_cache *hh,
- const struct net_device *dev,
- const unsigned char *haddr);
-};
-
-/* These flag bits are private to the generic network queueing
- * layer, they may not be explicitly referenced by any other
- * code.
- */
-
-enum netdev_state_t {
- __LINK_STATE_START,
- __LINK_STATE_PRESENT,
- __LINK_STATE_NOCARRIER,
- __LINK_STATE_LINKWATCH_PENDING,
- __LINK_STATE_DORMANT,
-};
-
-
-/*
- * This structure holds at boot time configured netdevice settings. They
- * are then used in the device probing.
- */
-struct netdev_boot_setup {
- char name[IFNAMSIZ];
- struct ifmap map;
-};
-#define NETDEV_BOOT_SETUP_MAX 8
-
-extern int __init netdev_boot_setup(char *str);
-
-/*
- * Structure for NAPI scheduling similar to tasklet but with weighting
- */
-struct napi_struct {
- /* The poll_list must only be managed by the entity which
- * changes the state of the NAPI_STATE_SCHED bit. This means
- * whoever atomically sets that bit can add this napi_struct
- * to the per-cpu poll_list, and whoever clears that bit
- * can remove from the list right before clearing the bit.
- */
- struct list_head poll_list;
-
- unsigned long state;
- int weight;
- int (*poll)(struct napi_struct *, int);
-#ifdef CONFIG_NETPOLL
- spinlock_t poll_lock;
- int poll_owner;
-#endif
-
- unsigned int gro_count;
-
- struct net_device *dev;
- struct list_head dev_list;
- struct sk_buff *gro_list;
- struct sk_buff *skb;
-};
-
-enum {
- NAPI_STATE_SCHED, /* Poll is scheduled */
- NAPI_STATE_DISABLE, /* Disable pending */
- NAPI_STATE_NPSVC, /* Netpoll - don't dequeue from poll_list */
-};
-
-enum gro_result {
- GRO_MERGED,
- GRO_MERGED_FREE,
- GRO_HELD,
- GRO_NORMAL,
- GRO_DROP,
-};
-typedef enum gro_result gro_result_t;
-
-/*
- * enum rx_handler_result - Possible return values for rx_handlers.
- * @RX_HANDLER_CONSUMED: skb was consumed by rx_handler, do not process it
- * further.
- * @RX_HANDLER_ANOTHER: Do another round in receive path. This is indicated in
- * case skb->dev was changed by rx_handler.
- * @RX_HANDLER_EXACT: Force exact delivery, no wildcard.
- * @RX_HANDLER_PASS: Do nothing, passe the skb as if no rx_handler was called.
- *
- * rx_handlers are functions called from inside __netif_receive_skb(), to do
- * special processing of the skb, prior to delivery to protocol handlers.
- *
- * Currently, a net_device can only have a single rx_handler registered. Trying
- * to register a second rx_handler will return -EBUSY.
- *
- * To register a rx_handler on a net_device, use netdev_rx_handler_register().
- * To unregister a rx_handler on a net_device, use
- * netdev_rx_handler_unregister().
- *
- * Upon return, rx_handler is expected to tell __netif_receive_skb() what to
- * do with the skb.
- *
- * If the rx_handler consumed to skb in some way, it should return
- * RX_HANDLER_CONSUMED. This is appropriate when the rx_handler arranged for
- * the skb to be delivered in some other ways.
- *
- * If the rx_handler changed skb->dev, to divert the skb to another
- * net_device, it should return RX_HANDLER_ANOTHER. The rx_handler for the
- * new device will be called if it exists.
- *
- * If the rx_handler consider the skb should be ignored, it should return
- * RX_HANDLER_EXACT. The skb will only be delivered to protocol handlers that
- * are registred on exact device (ptype->dev == skb->dev).
- *
- * If the rx_handler didn't changed skb->dev, but want the skb to be normally
- * delivered, it should return RX_HANDLER_PASS.
- *
- * A device without a registered rx_handler will behave as if rx_handler
- * returned RX_HANDLER_PASS.
- */
-
-enum rx_handler_result {
- RX_HANDLER_CONSUMED,
- RX_HANDLER_ANOTHER,
- RX_HANDLER_EXACT,
- RX_HANDLER_PASS,
-};
-typedef enum rx_handler_result rx_handler_result_t;
-typedef rx_handler_result_t rx_handler_func_t(struct sk_buff **pskb);
-
-extern void __napi_schedule(struct napi_struct *n);
-
-static inline bool napi_disable_pending(struct napi_struct *n)
-{
- return test_bit(NAPI_STATE_DISABLE, &n->state);
-}
-
-/**
- * napi_schedule_prep - check if napi can be scheduled
- * @n: napi context
- *
- * Test if NAPI routine is already running, and if not mark
- * it as running. This is used as a condition variable
- * insure only one NAPI poll instance runs. We also make
- * sure there is no pending NAPI disable.
- */
-static inline bool napi_schedule_prep(struct napi_struct *n)
-{
- return !napi_disable_pending(n) &&
- !test_and_set_bit(NAPI_STATE_SCHED, &n->state);
-}
-
-/**
- * napi_schedule - schedule NAPI poll
- * @n: napi context
- *
- * Schedule NAPI poll routine to be called if it is not already
- * running.
- */
-static inline void napi_schedule(struct napi_struct *n)
-{
- if (napi_schedule_prep(n))
- __napi_schedule(n);
-}
-
-/* Try to reschedule poll. Called by dev->poll() after napi_complete(). */
-static inline bool napi_reschedule(struct napi_struct *napi)
-{
- if (napi_schedule_prep(napi)) {
- __napi_schedule(napi);
- return true;
- }
- return false;
-}
-
-/**
- * napi_complete - NAPI processing complete
- * @n: napi context
- *
- * Mark NAPI processing as complete.
- */
-extern void __napi_complete(struct napi_struct *n);
-extern void napi_complete(struct napi_struct *n);
-
-/**
- * napi_disable - prevent NAPI from scheduling
- * @n: napi context
- *
- * Stop NAPI from being scheduled on this context.
- * Waits till any outstanding processing completes.
- */
-static inline void napi_disable(struct napi_struct *n)
-{
- set_bit(NAPI_STATE_DISABLE, &n->state);
- while (test_and_set_bit(NAPI_STATE_SCHED, &n->state))
- msleep(1);
- clear_bit(NAPI_STATE_DISABLE, &n->state);
-}
-
-/**
- * napi_enable - enable NAPI scheduling
- * @n: napi context
- *
- * Resume NAPI from being scheduled on this context.
- * Must be paired with napi_disable.
- */
-static inline void napi_enable(struct napi_struct *n)
-{
- BUG_ON(!test_bit(NAPI_STATE_SCHED, &n->state));
- smp_mb__before_clear_bit();
- clear_bit(NAPI_STATE_SCHED, &n->state);
-}
-
-#ifdef CONFIG_SMP
-/**
- * napi_synchronize - wait until NAPI is not running
- * @n: napi context
- *
- * Wait until NAPI is done being scheduled on this context.
- * Waits till any outstanding processing completes but
- * does not disable future activations.
- */
-static inline void napi_synchronize(const struct napi_struct *n)
-{
- while (test_bit(NAPI_STATE_SCHED, &n->state))
- msleep(1);
-}
-#else
-# define napi_synchronize(n) barrier()
-#endif
-
-enum netdev_queue_state_t {
- __QUEUE_STATE_DRV_XOFF,
- __QUEUE_STATE_STACK_XOFF,
- __QUEUE_STATE_FROZEN,
-#define QUEUE_STATE_ANY_XOFF ((1 << __QUEUE_STATE_DRV_XOFF) | \
- (1 << __QUEUE_STATE_STACK_XOFF))
-#define QUEUE_STATE_ANY_XOFF_OR_FROZEN (QUEUE_STATE_ANY_XOFF | \
- (1 << __QUEUE_STATE_FROZEN))
-};
-/*
- * __QUEUE_STATE_DRV_XOFF is used by drivers to stop the transmit queue. The
- * netif_tx_* functions below are used to manipulate this flag. The
- * __QUEUE_STATE_STACK_XOFF flag is used by the stack to stop the transmit
- * queue independently. The netif_xmit_*stopped functions below are called
- * to check if the queue has been stopped by the driver or stack (either
- * of the XOFF bits are set in the state). Drivers should not need to call
- * netif_xmit*stopped functions, they should only be using netif_tx_*.
- */
-
-struct netdev_queue {
-/*
- * read mostly part
- */
- struct net_device *dev;
- struct Qdisc *qdisc;
- struct Qdisc *qdisc_sleeping;
-#ifdef CONFIG_SYSFS
- struct kobject kobj;
-#endif
-#if defined(CONFIG_XPS) && defined(CONFIG_NUMA)
- int numa_node;
-#endif
-/*
- * write mostly part
- */
- spinlock_t _xmit_lock ____cacheline_aligned_in_smp;
- int xmit_lock_owner;
- /*
- * please use this field instead of dev->trans_start
- */
- unsigned long trans_start;
-
- /*
- * Number of TX timeouts for this queue
- * (/sys/class/net/DEV/Q/trans_timeout)
- */
- unsigned long trans_timeout;
-
- unsigned long state;
-
-#ifdef CONFIG_BQL
- struct dql dql;
-#endif
-} ____cacheline_aligned_in_smp;
-
-static inline int netdev_queue_numa_node_read(const struct netdev_queue *q)
-{
-#if defined(CONFIG_XPS) && defined(CONFIG_NUMA)
- return q->numa_node;
-#else
- return NUMA_NO_NODE;
-#endif
-}
-
-static inline void netdev_queue_numa_node_write(struct netdev_queue *q, int node)
-{
-#if defined(CONFIG_XPS) && defined(CONFIG_NUMA)
- q->numa_node = node;
-#endif
-}
-
-#ifdef CONFIG_RPS
-/*
- * This structure holds an RPS map which can be of variable length. The
- * map is an array of CPUs.
- */
-struct rps_map {
- unsigned int len;
- struct rcu_head rcu;
- u16 cpus[0];
-};
-#define RPS_MAP_SIZE(_num) (sizeof(struct rps_map) + ((_num) * sizeof(u16)))
-
-/*
- * The rps_dev_flow structure contains the mapping of a flow to a CPU, the
- * tail pointer for that CPU's input queue at the time of last enqueue, and
- * a hardware filter index.
- */
-struct rps_dev_flow {
- u16 cpu;
- u16 filter;
- unsigned int last_qtail;
-};
-#define RPS_NO_FILTER 0xffff
-
-/*
- * The rps_dev_flow_table structure contains a table of flow mappings.
- */
-struct rps_dev_flow_table {
- unsigned int mask;
- struct rcu_head rcu;
- struct work_struct free_work;
- struct rps_dev_flow flows[0];
-};
-#define RPS_DEV_FLOW_TABLE_SIZE(_num) (sizeof(struct rps_dev_flow_table) + \
- ((_num) * sizeof(struct rps_dev_flow)))
-
-/*
- * The rps_sock_flow_table contains mappings of flows to the last CPU
- * on which they were processed by the application (set in recvmsg).
- */
-struct rps_sock_flow_table {
- unsigned int mask;
- u16 ents[0];
-};
-#define RPS_SOCK_FLOW_TABLE_SIZE(_num) (sizeof(struct rps_sock_flow_table) + \
- ((_num) * sizeof(u16)))
-
-#define RPS_NO_CPU 0xffff
-
-static inline void rps_record_sock_flow(struct rps_sock_flow_table *table,
- u32 hash)
-{
- if (table && hash) {
- unsigned int cpu, index = hash & table->mask;
-
- /* We only give a hint, preemption can change cpu under us */
- cpu = raw_smp_processor_id();
-
- if (table->ents[index] != cpu)
- table->ents[index] = cpu;
- }
-}
-
-static inline void rps_reset_sock_flow(struct rps_sock_flow_table *table,
- u32 hash)
-{
- if (table && hash)
- table->ents[hash & table->mask] = RPS_NO_CPU;
-}
-
-extern struct rps_sock_flow_table __rcu *rps_sock_flow_table;
-
-#ifdef CONFIG_RFS_ACCEL
-extern bool rps_may_expire_flow(struct net_device *dev, u16 rxq_index,
- u32 flow_id, u16 filter_id);
-#endif
-
-/* This structure contains an instance of an RX queue. */
-struct netdev_rx_queue {
- struct rps_map __rcu *rps_map;
- struct rps_dev_flow_table __rcu *rps_flow_table;
- struct kobject kobj;
- struct net_device *dev;
-} ____cacheline_aligned_in_smp;
-#endif /* CONFIG_RPS */
-
-#ifdef CONFIG_XPS
-/*
- * This structure holds an XPS map which can be of variable length. The
- * map is an array of queues.
- */
-struct xps_map {
- unsigned int len;
- unsigned int alloc_len;
- struct rcu_head rcu;
- u16 queues[0];
-};
-#define XPS_MAP_SIZE(_num) (sizeof(struct xps_map) + ((_num) * sizeof(u16)))
-#define XPS_MIN_MAP_ALLOC ((L1_CACHE_BYTES - sizeof(struct xps_map)) \
- / sizeof(u16))
-
-/*
- * This structure holds all XPS maps for device. Maps are indexed by CPU.
- */
-struct xps_dev_maps {
- struct rcu_head rcu;
- struct xps_map __rcu *cpu_map[0];
-};
-#define XPS_DEV_MAPS_SIZE (sizeof(struct xps_dev_maps) + \
- (nr_cpu_ids * sizeof(struct xps_map *)))
-#endif /* CONFIG_XPS */
-
-#define TC_MAX_QUEUE 16
-#define TC_BITMASK 15
-/* HW offloaded queuing disciplines txq count and offset maps */
-struct netdev_tc_txq {
- u16 count;
- u16 offset;
-};
-
-#if defined(CONFIG_FCOE) || defined(CONFIG_FCOE_MODULE)
-/*
- * This structure is to hold information about the device
- * configured to run FCoE protocol stack.
- */
-struct netdev_fcoe_hbainfo {
- char manufacturer[64];
- char serial_number[64];
- char hardware_version[64];
- char driver_version[64];
- char optionrom_version[64];
- char firmware_version[64];
- char model[256];
- char model_description[256];
-};
-#endif
-
-/*
- * This structure defines the management hooks for network devices.
- * The following hooks can be defined; unless noted otherwise, they are
- * optional and can be filled with a null pointer.
- *
- * int (*ndo_init)(struct net_device *dev);
- * This function is called once when network device is registered.
- * The network device can use this to any late stage initializaton
- * or semantic validattion. It can fail with an error code which will
- * be propogated back to register_netdev
- *
- * void (*ndo_uninit)(struct net_device *dev);
- * This function is called when device is unregistered or when registration
- * fails. It is not called if init fails.
- *
- * int (*ndo_open)(struct net_device *dev);
- * This function is called when network device transistions to the up
- * state.
- *
- * int (*ndo_stop)(struct net_device *dev);
- * This function is called when network device transistions to the down
- * state.
- *
- * netdev_tx_t (*ndo_start_xmit)(struct sk_buff *skb,
- * struct net_device *dev);
- * Called when a packet needs to be transmitted.
- * Must return NETDEV_TX_OK , NETDEV_TX_BUSY.
- * (can also return NETDEV_TX_LOCKED iff NETIF_F_LLTX)
- * Required can not be NULL.
- *
- * u16 (*ndo_select_queue)(struct net_device *dev, struct sk_buff *skb);
- * Called to decide which queue to when device supports multiple
- * transmit queues.
- *
- * void (*ndo_change_rx_flags)(struct net_device *dev, int flags);
- * This function is called to allow device receiver to make
- * changes to configuration when multicast or promiscious is enabled.
- *
- * void (*ndo_set_rx_mode)(struct net_device *dev);
- * This function is called device changes address list filtering.
- * If driver handles unicast address filtering, it should set
- * IFF_UNICAST_FLT to its priv_flags.
- *
- * int (*ndo_set_mac_address)(struct net_device *dev, void *addr);
- * This function is called when the Media Access Control address
- * needs to be changed. If this interface is not defined, the
- * mac address can not be changed.
- *
- * int (*ndo_validate_addr)(struct net_device *dev);
- * Test if Media Access Control address is valid for the device.
- *
- * int (*ndo_do_ioctl)(struct net_device *dev, struct ifreq *ifr, int cmd);
- * Called when a user request an ioctl which can't be handled by
- * the generic interface code. If not defined ioctl's return
- * not supported error code.
- *
- * int (*ndo_set_config)(struct net_device *dev, struct ifmap *map);
- * Used to set network devices bus interface parameters. This interface
- * is retained for legacy reason, new devices should use the bus
- * interface (PCI) for low level management.
- *
- * int (*ndo_change_mtu)(struct net_device *dev, int new_mtu);
- * Called when a user wants to change the Maximum Transfer Unit
- * of a device. If not defined, any request to change MTU will
- * will return an error.
- *
- * void (*ndo_tx_timeout)(struct net_device *dev);
- * Callback uses when the transmitter has not made any progress
- * for dev->watchdog ticks.
- *
- * struct rtnl_link_stats64* (*ndo_get_stats64)(struct net_device *dev,
- * struct rtnl_link_stats64 *storage);
- * struct net_device_stats* (*ndo_get_stats)(struct net_device *dev);
- * Called when a user wants to get the network device usage
- * statistics. Drivers must do one of the following:
- * 1. Define @ndo_get_stats64 to fill in a zero-initialised
- * rtnl_link_stats64 structure passed by the caller.
- * 2. Define @ndo_get_stats to update a net_device_stats structure
- * (which should normally be dev->stats) and return a pointer to
- * it. The structure may be changed asynchronously only if each
- * field is written atomically.
- * 3. Update dev->stats asynchronously and atomically, and define
- * neither operation.
- *
- * int (*ndo_vlan_rx_add_vid)(struct net_device *dev, unsigned short vid);
- * If device support VLAN filtering (dev->features & NETIF_F_HW_VLAN_FILTER)
- * this function is called when a VLAN id is registered.
- *
- * int (*ndo_vlan_rx_kill_vid)(struct net_device *dev, unsigned short vid);
- * If device support VLAN filtering (dev->features & NETIF_F_HW_VLAN_FILTER)
- * this function is called when a VLAN id is unregistered.
- *
- * void (*ndo_poll_controller)(struct net_device *dev);
- *
- * SR-IOV management functions.
- * int (*ndo_set_vf_mac)(struct net_device *dev, int vf, u8* mac);
- * int (*ndo_set_vf_vlan)(struct net_device *dev, int vf, u16 vlan, u8 qos);
- * int (*ndo_set_vf_tx_rate)(struct net_device *dev, int vf, int rate);
- * int (*ndo_set_vf_spoofchk)(struct net_device *dev, int vf, bool setting);
- * int (*ndo_get_vf_config)(struct net_device *dev,
- * int vf, struct ifla_vf_info *ivf);
- * int (*ndo_set_vf_port)(struct net_device *dev, int vf,
- * struct nlattr *port[]);
- * int (*ndo_get_vf_port)(struct net_device *dev, int vf, struct sk_buff *skb);
- * int (*ndo_setup_tc)(struct net_device *dev, u8 tc)
- * Called to setup 'tc' number of traffic classes in the net device. This
- * is always called from the stack with the rtnl lock held and netif tx
- * queues stopped. This allows the netdevice to perform queue management
- * safely.
- *
- * Fiber Channel over Ethernet (FCoE) offload functions.
- * int (*ndo_fcoe_enable)(struct net_device *dev);
- * Called when the FCoE protocol stack wants to start using LLD for FCoE
- * so the underlying device can perform whatever needed configuration or
- * initialization to support acceleration of FCoE traffic.
- *
- * int (*ndo_fcoe_disable)(struct net_device *dev);
- * Called when the FCoE protocol stack wants to stop using LLD for FCoE
- * so the underlying device can perform whatever needed clean-ups to
- * stop supporting acceleration of FCoE traffic.
- *
- * int (*ndo_fcoe_ddp_setup)(struct net_device *dev, u16 xid,
- * struct scatterlist *sgl, unsigned int sgc);
- * Called when the FCoE Initiator wants to initialize an I/O that
- * is a possible candidate for Direct Data Placement (DDP). The LLD can
- * perform necessary setup and returns 1 to indicate the device is set up
- * successfully to perform DDP on this I/O, otherwise this returns 0.
- *
- * int (*ndo_fcoe_ddp_done)(struct net_device *dev, u16 xid);
- * Called when the FCoE Initiator/Target is done with the DDPed I/O as
- * indicated by the FC exchange id 'xid', so the underlying device can
- * clean up and reuse resources for later DDP requests.
- *
- * int (*ndo_fcoe_ddp_target)(struct net_device *dev, u16 xid,
- * struct scatterlist *sgl, unsigned int sgc);
- * Called when the FCoE Target wants to initialize an I/O that
- * is a possible candidate for Direct Data Placement (DDP). The LLD can
- * perform necessary setup and returns 1 to indicate the device is set up
- * successfully to perform DDP on this I/O, otherwise this returns 0.
- *
- * int (*ndo_fcoe_get_hbainfo)(struct net_device *dev,
- * struct netdev_fcoe_hbainfo *hbainfo);
- * Called when the FCoE Protocol stack wants information on the underlying
- * device. This information is utilized by the FCoE protocol stack to
- * register attributes with Fiber Channel management service as per the
- * FC-GS Fabric Device Management Information(FDMI) specification.
- *
- * int (*ndo_fcoe_get_wwn)(struct net_device *dev, u64 *wwn, int type);
- * Called when the underlying device wants to override default World Wide
- * Name (WWN) generation mechanism in FCoE protocol stack to pass its own
- * World Wide Port Name (WWPN) or World Wide Node Name (WWNN) to the FCoE
- * protocol stack to use.
- *
- * RFS acceleration.
- * int (*ndo_rx_flow_steer)(struct net_device *dev, const struct sk_buff *skb,
- * u16 rxq_index, u32 flow_id);
- * Set hardware filter for RFS. rxq_index is the target queue index;
- * flow_id is a flow ID to be passed to rps_may_expire_flow() later.
- * Return the filter ID on success, or a negative error code.
- *
- * Slave management functions (for bridge, bonding, etc). User should
- * call netdev_set_master() to set dev->master properly.
- * int (*ndo_add_slave)(struct net_device *dev, struct net_device *slave_dev);
- * Called to make another netdev an underling.
- *
- * int (*ndo_del_slave)(struct net_device *dev, struct net_device *slave_dev);
- * Called to release previously enslaved netdev.
- *
- * Feature/offload setting functions.
- * netdev_features_t (*ndo_fix_features)(struct net_device *dev,
- * netdev_features_t features);
- * Adjusts the requested feature flags according to device-specific
- * constraints, and returns the resulting flags. Must not modify
- * the device state.
- *
- * int (*ndo_set_features)(struct net_device *dev, netdev_features_t features);
- * Called to update device configuration to new features. Passed
- * feature set might be less than what was returned by ndo_fix_features()).
- * Must return >0 or -errno if it changed dev->features itself.
- *
- */
-struct net_device_ops {
- int (*ndo_init)(struct net_device *dev);
- void (*ndo_uninit)(struct net_device *dev);
- int (*ndo_open)(struct net_device *dev);
- int (*ndo_stop)(struct net_device *dev);
- netdev_tx_t (*ndo_start_xmit) (struct sk_buff *skb,
- struct net_device *dev);
- u16 (*ndo_select_queue)(struct net_device *dev,
- struct sk_buff *skb);
- void (*ndo_change_rx_flags)(struct net_device *dev,
- int flags);
- void (*ndo_set_rx_mode)(struct net_device *dev);
- int (*ndo_set_mac_address)(struct net_device *dev,
- void *addr);
- int (*ndo_validate_addr)(struct net_device *dev);
- int (*ndo_do_ioctl)(struct net_device *dev,
- struct ifreq *ifr, int cmd);
- int (*ndo_set_config)(struct net_device *dev,
- struct ifmap *map);
- int (*ndo_change_mtu)(struct net_device *dev,
- int new_mtu);
- int (*ndo_neigh_setup)(struct net_device *dev,
- struct neigh_parms *);
- void (*ndo_tx_timeout) (struct net_device *dev);
-
- struct rtnl_link_stats64* (*ndo_get_stats64)(struct net_device *dev,
- struct rtnl_link_stats64 *storage);
- struct net_device_stats* (*ndo_get_stats)(struct net_device *dev);
-
- int (*ndo_vlan_rx_add_vid)(struct net_device *dev,
- unsigned short vid);
- int (*ndo_vlan_rx_kill_vid)(struct net_device *dev,
- unsigned short vid);
-#ifdef CONFIG_NET_POLL_CONTROLLER
- void (*ndo_poll_controller)(struct net_device *dev);
- int (*ndo_netpoll_setup)(struct net_device *dev,
- struct netpoll_info *info);
- void (*ndo_netpoll_cleanup)(struct net_device *dev);
-#endif
- int (*ndo_set_vf_mac)(struct net_device *dev,
- int queue, u8 *mac);
- int (*ndo_set_vf_vlan)(struct net_device *dev,
- int queue, u16 vlan, u8 qos);
- int (*ndo_set_vf_tx_rate)(struct net_device *dev,
- int vf, int rate);
- int (*ndo_set_vf_spoofchk)(struct net_device *dev,
- int vf, bool setting);
- int (*ndo_get_vf_config)(struct net_device *dev,
- int vf,
- struct ifla_vf_info *ivf);
- int (*ndo_set_vf_port)(struct net_device *dev,
- int vf,
- struct nlattr *port[]);
- int (*ndo_get_vf_port)(struct net_device *dev,
- int vf, struct sk_buff *skb);
- int (*ndo_setup_tc)(struct net_device *dev, u8 tc);
-#if IS_ENABLED(CONFIG_FCOE)
- int (*ndo_fcoe_enable)(struct net_device *dev);
- int (*ndo_fcoe_disable)(struct net_device *dev);
- int (*ndo_fcoe_ddp_setup)(struct net_device *dev,
- u16 xid,
- struct scatterlist *sgl,
- unsigned int sgc);
- int (*ndo_fcoe_ddp_done)(struct net_device *dev,
- u16 xid);
- int (*ndo_fcoe_ddp_target)(struct net_device *dev,
- u16 xid,
- struct scatterlist *sgl,
- unsigned int sgc);
- int (*ndo_fcoe_get_hbainfo)(struct net_device *dev,
- struct netdev_fcoe_hbainfo *hbainfo);
-#endif
-
-#if IS_ENABLED(CONFIG_LIBFCOE)
-#define NETDEV_FCOE_WWNN 0
-#define NETDEV_FCOE_WWPN 1
- int (*ndo_fcoe_get_wwn)(struct net_device *dev,
- u64 *wwn, int type);
-#endif
-
-#ifdef CONFIG_RFS_ACCEL
- int (*ndo_rx_flow_steer)(struct net_device *dev,
- const struct sk_buff *skb,
- u16 rxq_index,
- u32 flow_id);
-#endif
- int (*ndo_add_slave)(struct net_device *dev,
- struct net_device *slave_dev);
- int (*ndo_del_slave)(struct net_device *dev,
- struct net_device *slave_dev);
- netdev_features_t (*ndo_fix_features)(struct net_device *dev,
- netdev_features_t features);
- int (*ndo_set_features)(struct net_device *dev,
- netdev_features_t features);
- int (*ndo_neigh_construct)(struct neighbour *n);
- void (*ndo_neigh_destroy)(struct neighbour *n);
-};
-
-/*
- * The DEVICE structure.
- * Actually, this whole structure is a big mistake. It mixes I/O
- * data with strictly "high-level" data, and it has to know about
- * almost every data structure used in the INET module.
- *
- * FIXME: cleanup struct net_device such that network protocol info
- * moves out.
- */
-
-struct net_device {
-
- /*
- * This is the first field of the "visible" part of this structure
- * (i.e. as seen by users in the "Space.c" file). It is the name
- * of the interface.
- */
- char name[IFNAMSIZ];
-
- struct pm_qos_request pm_qos_req;
-
- /* device name hash chain */
- struct hlist_node name_hlist;
- /* snmp alias */
- char *ifalias;
-
- /*
- * I/O specific fields
- * FIXME: Merge these and struct ifmap into one
- */
- unsigned long mem_end; /* shared mem end */
- unsigned long mem_start; /* shared mem start */
- unsigned long base_addr; /* device I/O address */
- unsigned int irq; /* device IRQ number */
-
- /*
- * Some hardware also needs these fields, but they are not
- * part of the usual set specified in Space.c.
- */
-
- unsigned long state;
-
- struct list_head dev_list;
- struct list_head napi_list;
- struct list_head unreg_list;
-
- /* currently active device features */
- netdev_features_t features;
- /* user-changeable features */
- netdev_features_t hw_features;
- /* user-requested features */
- netdev_features_t wanted_features;
- /* mask of features inheritable by VLAN devices */
- netdev_features_t vlan_features;
-
- /* Interface index. Unique device identifier */
- int ifindex;
- int iflink;
-
- struct net_device_stats stats;
- atomic_long_t rx_dropped; /* dropped packets by core network
- * Do not use this in drivers.
- */
-
-#ifdef CONFIG_WIRELESS_EXT
- /* List of functions to handle Wireless Extensions (instead of ioctl).
- * See <net/iw_handler.h> for details. Jean II */
- const struct iw_handler_def * wireless_handlers;
- /* Instance data managed by the core of Wireless Extensions. */
- struct iw_public_data * wireless_data;
-#endif
- /* Management operations */
- const struct net_device_ops *netdev_ops;
- const struct ethtool_ops *ethtool_ops;
-
- /* Hardware header description */
- const struct header_ops *header_ops;
-
- unsigned int flags; /* interface flags (a la BSD) */
- unsigned int priv_flags; /* Like 'flags' but invisible to userspace.
- * See if.h for definitions. */
- unsigned short gflags;
- unsigned short padded; /* How much padding added by alloc_netdev() */
-
- unsigned char operstate; /* RFC2863 operstate */
- unsigned char link_mode; /* mapping policy to operstate */
-
- unsigned char if_port; /* Selectable AUI, TP,..*/
- unsigned char dma; /* DMA channel */
-
- unsigned int mtu; /* interface MTU value */
- unsigned short type; /* interface hardware type */
- unsigned short hard_header_len; /* hardware hdr length */
-
- /* extra head- and tailroom the hardware may need, but not in all cases
- * can this be guaranteed, especially tailroom. Some cases also use
- * LL_MAX_HEADER instead to allocate the skb.
- */
- unsigned short needed_headroom;
- unsigned short needed_tailroom;
-
- /* Interface address info. */
- unsigned char perm_addr[MAX_ADDR_LEN]; /* permanent hw address */
- unsigned char addr_assign_type; /* hw address assignment type */
- unsigned char addr_len; /* hardware address length */
- unsigned char neigh_priv_len;
- unsigned short dev_id; /* for shared network cards */
-
- spinlock_t addr_list_lock;
- struct netdev_hw_addr_list uc; /* Unicast mac addresses */
- struct netdev_hw_addr_list mc; /* Multicast mac addresses */
- bool uc_promisc;
- unsigned int promiscuity;
- unsigned int allmulti;
-
-
- /* Protocol specific pointers */
-
-#if IS_ENABLED(CONFIG_VLAN_8021Q)
- struct vlan_info __rcu *vlan_info; /* VLAN info */
-#endif
-#if IS_ENABLED(CONFIG_NET_DSA)
- struct dsa_switch_tree *dsa_ptr; /* dsa specific data */
-#endif
- void *atalk_ptr; /* AppleTalk link */
- struct in_device __rcu *ip_ptr; /* IPv4 specific data */
- struct dn_dev __rcu *dn_ptr; /* DECnet specific data */
- struct inet6_dev __rcu *ip6_ptr; /* IPv6 specific data */
- void *ec_ptr; /* Econet specific data */
- void *ax25_ptr; /* AX.25 specific data */
- struct wireless_dev *ieee80211_ptr; /* IEEE 802.11 specific data,
- assign before registering */
-
-/*
- * Cache lines mostly used on receive path (including eth_type_trans())
- */
- unsigned long last_rx; /* Time of last Rx
- * This should not be set in
- * drivers, unless really needed,
- * because network stack (bonding)
- * use it if/when necessary, to
- * avoid dirtying this cache line.
- */
-
- struct net_device *master; /* Pointer to master device of a group,
- * which this device is member of.
- */
-
- /* Interface address info used in eth_type_trans() */
- unsigned char *dev_addr; /* hw address, (before bcast
- because most packets are
- unicast) */
-
- struct netdev_hw_addr_list dev_addrs; /* list of device
- hw addresses */
-
- unsigned char broadcast[MAX_ADDR_LEN]; /* hw bcast add */
-
-#ifdef CONFIG_SYSFS
- struct kset *queues_kset;
-#endif
-
-#ifdef CONFIG_RPS
- struct netdev_rx_queue *_rx;
-
- /* Number of RX queues allocated at register_netdev() time */
- unsigned int num_rx_queues;
-
- /* Number of RX queues currently active in device */
- unsigned int real_num_rx_queues;
-
-#ifdef CONFIG_RFS_ACCEL
- /* CPU reverse-mapping for RX completion interrupts, indexed
- * by RX queue number. Assigned by driver. This must only be
- * set if the ndo_rx_flow_steer operation is defined. */
- struct cpu_rmap *rx_cpu_rmap;
-#endif
-#endif
-
- rx_handler_func_t __rcu *rx_handler;
- void __rcu *rx_handler_data;
-
- struct netdev_queue __rcu *ingress_queue;
-
-/*
- * Cache lines mostly used on transmit path
- */
- struct netdev_queue *_tx ____cacheline_aligned_in_smp;
-
- /* Number of TX queues allocated at alloc_netdev_mq() time */
- unsigned int num_tx_queues;
-
- /* Number of TX queues currently active in device */
- unsigned int real_num_tx_queues;
-
- /* root qdisc from userspace point of view */
- struct Qdisc *qdisc;
-
- unsigned long tx_queue_len; /* Max frames per queue allowed */
- spinlock_t tx_global_lock;
-
-#ifdef CONFIG_XPS
- struct xps_dev_maps __rcu *xps_maps;
-#endif
-
- /* These may be needed for future network-power-down code. */
-
- /*
- * trans_start here is expensive for high speed devices on SMP,
- * please use netdev_queue->trans_start instead.
- */
- unsigned long trans_start; /* Time (in jiffies) of last Tx */
-
- int watchdog_timeo; /* used by dev_watchdog() */
- struct timer_list watchdog_timer;
-
- /* Number of references to this device */
- int __percpu *pcpu_refcnt;
-
- /* delayed register/unregister */
- struct list_head todo_list;
- /* device index hash chain */
- struct hlist_node index_hlist;
-
- struct list_head link_watch_list;
-
- /* register/unregister state machine */
- enum { NETREG_UNINITIALIZED=0,
- NETREG_REGISTERED, /* completed register_netdevice */
- NETREG_UNREGISTERING, /* called unregister_netdevice */
- NETREG_UNREGISTERED, /* completed unregister todo */
- NETREG_RELEASED, /* called free_netdev */
- NETREG_DUMMY, /* dummy device for NAPI poll */
- } reg_state:8;
-
- bool dismantle; /* device is going do be freed */
-
- enum {
- RTNL_LINK_INITIALIZED,
- RTNL_LINK_INITIALIZING,
- } rtnl_link_state:16;
-
- /* Called from unregister, can be used to call free_netdev */
- void (*destructor)(struct net_device *dev);
-
-#ifdef CONFIG_NETPOLL
- struct netpoll_info *npinfo;
-#endif
-
-#ifdef CONFIG_NET_NS
- /* Network namespace this network device is inside */
- struct net *nd_net;
-#endif
-
- /* mid-layer private */
- union {
- void *ml_priv;
- struct pcpu_lstats __percpu *lstats; /* loopback stats */
- struct pcpu_tstats __percpu *tstats; /* tunnel stats */
- struct pcpu_dstats __percpu *dstats; /* dummy stats */
- };
- /* GARP */
- struct garp_port __rcu *garp_port;
-
- /* class/net/name entry */
- struct device dev;
- /* space for optional device, statistics, and wireless sysfs groups */
- const struct attribute_group *sysfs_groups[4];
-
- /* rtnetlink link ops */
- const struct rtnl_link_ops *rtnl_link_ops;
-
- /* for setting kernel sock attribute on TCP connection setup */
-#define GSO_MAX_SIZE 65536
- unsigned int gso_max_size;
-
-#ifdef CONFIG_DCB
- /* Data Center Bridging netlink ops */
- const struct dcbnl_rtnl_ops *dcbnl_ops;
-#endif
- u8 num_tc;
- struct netdev_tc_txq tc_to_txq[TC_MAX_QUEUE];
- u8 prio_tc_map[TC_BITMASK + 1];
-
-#if IS_ENABLED(CONFIG_FCOE)
- /* max exchange id for FCoE LRO by ddp */
- unsigned int fcoe_ddp_xid;
-#endif
-#if IS_ENABLED(CONFIG_NETPRIO_CGROUP)
- struct netprio_map __rcu *priomap;
-#endif
- /* phy device may attach itself for hardware timestamping */
- struct phy_device *phydev;
-
- /* group the device belongs to */
- int group;
-};
-#define to_net_dev(d) container_of(d, struct net_device, dev)
-
-#define NETDEV_ALIGN 32
-
-static inline
-int netdev_get_prio_tc_map(const struct net_device *dev, u32 prio)
-{
- return dev->prio_tc_map[prio & TC_BITMASK];
-}
-
-static inline
-int netdev_set_prio_tc_map(struct net_device *dev, u8 prio, u8 tc)
-{
- if (tc >= dev->num_tc)
- return -EINVAL;
-
- dev->prio_tc_map[prio & TC_BITMASK] = tc & TC_BITMASK;
- return 0;
-}
-
-static inline
-void netdev_reset_tc(struct net_device *dev)
-{
- dev->num_tc = 0;
- memset(dev->tc_to_txq, 0, sizeof(dev->tc_to_txq));
- memset(dev->prio_tc_map, 0, sizeof(dev->prio_tc_map));
-}
-
-static inline
-int netdev_set_tc_queue(struct net_device *dev, u8 tc, u16 count, u16 offset)
-{
- if (tc >= dev->num_tc)
- return -EINVAL;
-
- dev->tc_to_txq[tc].count = count;
- dev->tc_to_txq[tc].offset = offset;
- return 0;
-}
-
-static inline
-int netdev_set_num_tc(struct net_device *dev, u8 num_tc)
-{
- if (num_tc > TC_MAX_QUEUE)
- return -EINVAL;
-
- dev->num_tc = num_tc;
- return 0;
-}
-
-static inline
-int netdev_get_num_tc(struct net_device *dev)
-{
- return dev->num_tc;
-}
-
-static inline
-struct netdev_queue *netdev_get_tx_queue(const struct net_device *dev,
- unsigned int index)
-{
- return &dev->_tx[index];
-}
-
-static inline void netdev_for_each_tx_queue(struct net_device *dev,
- void (*f)(struct net_device *,
- struct netdev_queue *,
- void *),
- void *arg)
-{
- unsigned int i;
-
- for (i = 0; i < dev->num_tx_queues; i++)
- f(dev, &dev->_tx[i], arg);
-}
-
-/*
- * Net namespace inlines
- */
-static inline
-struct net *dev_net(const struct net_device *dev)
-{
- return read_pnet(&dev->nd_net);
-}
-
-static inline
-void dev_net_set(struct net_device *dev, struct net *net)
-{
-#ifdef CONFIG_NET_NS
- release_net(dev->nd_net);
- dev->nd_net = hold_net(net);
-#endif
-}
-
-static inline bool netdev_uses_dsa_tags(struct net_device *dev)
-{
-#ifdef CONFIG_NET_DSA_TAG_DSA
- if (dev->dsa_ptr != NULL)
- return dsa_uses_dsa_tags(dev->dsa_ptr);
-#endif
-
- return 0;
-}
-
-static inline bool netdev_uses_trailer_tags(struct net_device *dev)
-{
-#ifdef CONFIG_NET_DSA_TAG_TRAILER
- if (dev->dsa_ptr != NULL)
- return dsa_uses_trailer_tags(dev->dsa_ptr);
-#endif
-
- return 0;
-}
-
-/**
- * netdev_priv - access network device private data
- * @dev: network device
- *
- * Get network device private data
- */
-static inline void *netdev_priv(const struct net_device *dev)
-{
- return (char *)dev + ALIGN(sizeof(struct net_device), NETDEV_ALIGN);
-}
-
-/* Set the sysfs physical device reference for the network logical device
- * if set prior to registration will cause a symlink during initialization.
- */
-#define SET_NETDEV_DEV(net, pdev) ((net)->dev.parent = (pdev))
-
-/* Set the sysfs device type for the network logical device to allow
- * fin grained indentification of different network device types. For
- * example Ethernet, Wirelss LAN, Bluetooth, WiMAX etc.
- */
-#define SET_NETDEV_DEVTYPE(net, devtype) ((net)->dev.type = (devtype))
-
-/**
- * netif_napi_add - initialize a napi context
- * @dev: network device
- * @napi: napi context
- * @poll: polling function
- * @weight: default weight
- *
- * netif_napi_add() must be used to initialize a napi context prior to calling
- * *any* of the other napi related functions.
- */
-void netif_napi_add(struct net_device *dev, struct napi_struct *napi,
- int (*poll)(struct napi_struct *, int), int weight);
-
-/**
- * netif_napi_del - remove a napi context
- * @napi: napi context
- *
- * netif_napi_del() removes a napi context from the network device napi list
- */
-void netif_napi_del(struct napi_struct *napi);
-
-struct napi_gro_cb {
- /* Virtual address of skb_shinfo(skb)->frags[0].page + offset. */
- void *frag0;
-
- /* Length of frag0. */
- unsigned int frag0_len;
-
- /* This indicates where we are processing relative to skb->data. */
- int data_offset;
-
- /* This is non-zero if the packet may be of the same flow. */
- int same_flow;
-
- /* This is non-zero if the packet cannot be merged with the new skb. */
- int flush;
-
- /* Number of segments aggregated. */
- int count;
-
- /* Free the skb? */
- int free;
-};
-
-#define NAPI_GRO_CB(skb) ((struct napi_gro_cb *)(skb)->cb)
-
-struct packet_type {
- __be16 type; /* This is really htons(ether_type). */
- struct net_device *dev; /* NULL is wildcarded here */
- int (*func) (struct sk_buff *,
- struct net_device *,
- struct packet_type *,
- struct net_device *);
- struct sk_buff *(*gso_segment)(struct sk_buff *skb,
- netdev_features_t features);
- int (*gso_send_check)(struct sk_buff *skb);
- struct sk_buff **(*gro_receive)(struct sk_buff **head,
- struct sk_buff *skb);
- int (*gro_complete)(struct sk_buff *skb);
- void *af_packet_priv;
- struct list_head list;
-};
-
-#include <linux/notifier.h>
-
-/* netdevice notifier chain. Please remember to update the rtnetlink
- * notification exclusion list in rtnetlink_event() when adding new
- * types.
- */
-#define NETDEV_UP 0x0001 /* For now you can't veto a device up/down */
-#define NETDEV_DOWN 0x0002
-#define NETDEV_REBOOT 0x0003 /* Tell a protocol stack a network interface
- detected a hardware crash and restarted
- - we can use this eg to kick tcp sessions
- once done */
-#define NETDEV_CHANGE 0x0004 /* Notify device state change */
-#define NETDEV_REGISTER 0x0005
-#define NETDEV_UNREGISTER 0x0006
-#define NETDEV_CHANGEMTU 0x0007
-#define NETDEV_CHANGEADDR 0x0008
-#define NETDEV_GOING_DOWN 0x0009
-#define NETDEV_CHANGENAME 0x000A
-#define NETDEV_FEAT_CHANGE 0x000B
-#define NETDEV_BONDING_FAILOVER 0x000C
-#define NETDEV_PRE_UP 0x000D
-#define NETDEV_PRE_TYPE_CHANGE 0x000E
-#define NETDEV_POST_TYPE_CHANGE 0x000F
-#define NETDEV_POST_INIT 0x0010
-#define NETDEV_UNREGISTER_BATCH 0x0011
-#define NETDEV_RELEASE 0x0012
-#define NETDEV_NOTIFY_PEERS 0x0013
-#define NETDEV_JOIN 0x0014
-
-extern int register_netdevice_notifier(struct notifier_block *nb);
-extern int unregister_netdevice_notifier(struct notifier_block *nb);
-extern int call_netdevice_notifiers(unsigned long val, struct net_device *dev);
-
-
-extern rwlock_t dev_base_lock; /* Device list lock */
-
-
-#define for_each_netdev(net, d) \
- list_for_each_entry(d, &(net)->dev_base_head, dev_list)
-#define for_each_netdev_reverse(net, d) \
- list_for_each_entry_reverse(d, &(net)->dev_base_head, dev_list)
-#define for_each_netdev_rcu(net, d) \
- list_for_each_entry_rcu(d, &(net)->dev_base_head, dev_list)
-#define for_each_netdev_safe(net, d, n) \
- list_for_each_entry_safe(d, n, &(net)->dev_base_head, dev_list)
-#define for_each_netdev_continue(net, d) \
- list_for_each_entry_continue(d, &(net)->dev_base_head, dev_list)
-#define for_each_netdev_continue_rcu(net, d) \
- list_for_each_entry_continue_rcu(d, &(net)->dev_base_head, dev_list)
-#define net_device_entry(lh) list_entry(lh, struct net_device, dev_list)
-
-static inline struct net_device *next_net_device(struct net_device *dev)
-{
- struct list_head *lh;
- struct net *net;
-
- net = dev_net(dev);
- lh = dev->dev_list.next;
- return lh == &net->dev_base_head ? NULL : net_device_entry(lh);
-}
-
-static inline struct net_device *next_net_device_rcu(struct net_device *dev)
-{
- struct list_head *lh;
- struct net *net;
-
- net = dev_net(dev);
- lh = rcu_dereference(list_next_rcu(&dev->dev_list));
- return lh == &net->dev_base_head ? NULL : net_device_entry(lh);
-}
-
-static inline struct net_device *first_net_device(struct net *net)
-{
- return list_empty(&net->dev_base_head) ? NULL :
- net_device_entry(net->dev_base_head.next);
-}
-
-static inline struct net_device *first_net_device_rcu(struct net *net)
-{
- struct list_head *lh = rcu_dereference(list_next_rcu(&net->dev_base_head));
-
- return lh == &net->dev_base_head ? NULL : net_device_entry(lh);
-}
-
-extern int netdev_boot_setup_check(struct net_device *dev);
-extern unsigned long netdev_boot_base(const char *prefix, int unit);
-extern struct net_device *dev_getbyhwaddr_rcu(struct net *net, unsigned short type,
- const char *hwaddr);
-extern struct net_device *dev_getfirstbyhwtype(struct net *net, unsigned short type);
-extern struct net_device *__dev_getfirstbyhwtype(struct net *net, unsigned short type);
-extern void dev_add_pack(struct packet_type *pt);
-extern void dev_remove_pack(struct packet_type *pt);
-extern void __dev_remove_pack(struct packet_type *pt);
-
-extern struct net_device *dev_get_by_flags_rcu(struct net *net, unsigned short flags,
- unsigned short mask);
-extern struct net_device *dev_get_by_name(struct net *net, const char *name);
-extern struct net_device *dev_get_by_name_rcu(struct net *net, const char *name);
-extern struct net_device *__dev_get_by_name(struct net *net, const char *name);
-extern int dev_alloc_name(struct net_device *dev, const char *name);
-extern int dev_open(struct net_device *dev);
-extern int dev_close(struct net_device *dev);
-extern void dev_disable_lro(struct net_device *dev);
-extern int dev_queue_xmit(struct sk_buff *skb);
-extern int register_netdevice(struct net_device *dev);
-extern void unregister_netdevice_queue(struct net_device *dev,
- struct list_head *head);
-extern void unregister_netdevice_many(struct list_head *head);
-static inline void unregister_netdevice(struct net_device *dev)
-{
- unregister_netdevice_queue(dev, NULL);
-}
-
-extern int netdev_refcnt_read(const struct net_device *dev);
-extern void free_netdev(struct net_device *dev);
-extern void synchronize_net(void);
-extern int init_dummy_netdev(struct net_device *dev);
-extern void netdev_resync_ops(struct net_device *dev);
-
-extern struct net_device *dev_get_by_index(struct net *net, int ifindex);
-extern struct net_device *__dev_get_by_index(struct net *net, int ifindex);
-extern struct net_device *dev_get_by_index_rcu(struct net *net, int ifindex);
-extern int dev_restart(struct net_device *dev);
-#ifdef CONFIG_NETPOLL_TRAP
-extern int netpoll_trap(void);
-#endif
-extern int skb_gro_receive(struct sk_buff **head,
- struct sk_buff *skb);
-extern void skb_gro_reset_offset(struct sk_buff *skb);
-
-static inline unsigned int skb_gro_offset(const struct sk_buff *skb)
-{
- return NAPI_GRO_CB(skb)->data_offset;
-}
-
-static inline unsigned int skb_gro_len(const struct sk_buff *skb)
-{
- return skb->len - NAPI_GRO_CB(skb)->data_offset;
-}
-
-static inline void skb_gro_pull(struct sk_buff *skb, unsigned int len)
-{
- NAPI_GRO_CB(skb)->data_offset += len;
-}
-
-static inline void *skb_gro_header_fast(struct sk_buff *skb,
- unsigned int offset)
-{
- return NAPI_GRO_CB(skb)->frag0 + offset;
-}
-
-static inline int skb_gro_header_hard(struct sk_buff *skb, unsigned int hlen)
-{
- return NAPI_GRO_CB(skb)->frag0_len < hlen;
-}
-
-static inline void *skb_gro_header_slow(struct sk_buff *skb, unsigned int hlen,
- unsigned int offset)
-{
- if (!pskb_may_pull(skb, hlen))
- return NULL;
-
- NAPI_GRO_CB(skb)->frag0 = NULL;
- NAPI_GRO_CB(skb)->frag0_len = 0;
- return skb->data + offset;
-}
-
-static inline void *skb_gro_mac_header(struct sk_buff *skb)
-{
- return NAPI_GRO_CB(skb)->frag0 ?: skb_mac_header(skb);
-}
-
-static inline void *skb_gro_network_header(struct sk_buff *skb)
-{
- return (NAPI_GRO_CB(skb)->frag0 ?: skb->data) +
- skb_network_offset(skb);
-}
-
-static inline int dev_hard_header(struct sk_buff *skb, struct net_device *dev,
- unsigned short type,
- const void *daddr, const void *saddr,
- unsigned len)
-{
- if (!dev->header_ops || !dev->header_ops->create)
- return 0;
-
- return dev->header_ops->create(skb, dev, type, daddr, saddr, len);
-}
-
-static inline int dev_parse_header(const struct sk_buff *skb,
- unsigned char *haddr)
-{
- const struct net_device *dev = skb->dev;
-
- if (!dev->header_ops || !dev->header_ops->parse)
- return 0;
- return dev->header_ops->parse(skb, haddr);
-}
-
-typedef int gifconf_func_t(struct net_device * dev, char __user * bufptr, int len);
-extern int register_gifconf(unsigned int family, gifconf_func_t * gifconf);
-static inline int unregister_gifconf(unsigned int family)
-{
- return register_gifconf(family, NULL);
-}
-
-/*
- * Incoming packets are placed on per-cpu queues
- */
-struct softnet_data {
- struct Qdisc *output_queue;
- struct Qdisc **output_queue_tailp;
- struct list_head poll_list;
- struct sk_buff *completion_queue;
- struct sk_buff_head process_queue;
-
- /* stats */
- unsigned int processed;
- unsigned int time_squeeze;
- unsigned int cpu_collision;
- unsigned int received_rps;
-
-#ifdef CONFIG_RPS
- struct softnet_data *rps_ipi_list;
-
- /* Elements below can be accessed between CPUs for RPS */
- struct call_single_data csd ____cacheline_aligned_in_smp;
- struct softnet_data *rps_ipi_next;
- unsigned int cpu;
- unsigned int input_queue_head;
- unsigned int input_queue_tail;
-#endif
- unsigned dropped;
- struct sk_buff_head input_pkt_queue;
- struct napi_struct backlog;
-};
-
-static inline void input_queue_head_incr(struct softnet_data *sd)
-{
-#ifdef CONFIG_RPS
- sd->input_queue_head++;
-#endif
-}
-
-static inline void input_queue_tail_incr_save(struct softnet_data *sd,
- unsigned int *qtail)
-{
-#ifdef CONFIG_RPS
- *qtail = ++sd->input_queue_tail;
-#endif
-}
-
-DECLARE_PER_CPU_ALIGNED(struct softnet_data, softnet_data);
-
-extern void __netif_schedule(struct Qdisc *q);
-
-static inline void netif_schedule_queue(struct netdev_queue *txq)
-{
- if (!(txq->state & QUEUE_STATE_ANY_XOFF))
- __netif_schedule(txq->qdisc);
-}
-
-static inline void netif_tx_schedule_all(struct net_device *dev)
-{
- unsigned int i;
-
- for (i = 0; i < dev->num_tx_queues; i++)
- netif_schedule_queue(netdev_get_tx_queue(dev, i));
-}
-
-static inline void netif_tx_start_queue(struct netdev_queue *dev_queue)
-{
- clear_bit(__QUEUE_STATE_DRV_XOFF, &dev_queue->state);
-}
-
-/**
- * netif_start_queue - allow transmit
- * @dev: network device
- *
- * Allow upper layers to call the device hard_start_xmit routine.
- */
-static inline void netif_start_queue(struct net_device *dev)
-{
- netif_tx_start_queue(netdev_get_tx_queue(dev, 0));
-}
-
-static inline void netif_tx_start_all_queues(struct net_device *dev)
-{
- unsigned int i;
-
- for (i = 0; i < dev->num_tx_queues; i++) {
- struct netdev_queue *txq = netdev_get_tx_queue(dev, i);
- netif_tx_start_queue(txq);
- }
-}
-
-static inline void netif_tx_wake_queue(struct netdev_queue *dev_queue)
-{
-#ifdef CONFIG_NETPOLL_TRAP
- if (netpoll_trap()) {
- netif_tx_start_queue(dev_queue);
- return;
- }
-#endif
- if (test_and_clear_bit(__QUEUE_STATE_DRV_XOFF, &dev_queue->state))
- __netif_schedule(dev_queue->qdisc);
-}
-
-/**
- * netif_wake_queue - restart transmit
- * @dev: network device
- *
- * Allow upper layers to call the device hard_start_xmit routine.
- * Used for flow control when transmit resources are available.
- */
-static inline void netif_wake_queue(struct net_device *dev)
-{
- netif_tx_wake_queue(netdev_get_tx_queue(dev, 0));
-}
-
-static inline void netif_tx_wake_all_queues(struct net_device *dev)
-{
- unsigned int i;
-
- for (i = 0; i < dev->num_tx_queues; i++) {
- struct netdev_queue *txq = netdev_get_tx_queue(dev, i);
- netif_tx_wake_queue(txq);
- }
-}
-
-static inline void netif_tx_stop_queue(struct netdev_queue *dev_queue)
-{
- if (WARN_ON(!dev_queue)) {
- pr_info("netif_stop_queue() cannot be called before register_netdev()\n");
- return;
- }
- set_bit(__QUEUE_STATE_DRV_XOFF, &dev_queue->state);
-}
-
-/**
- * netif_stop_queue - stop transmitted packets
- * @dev: network device
- *
- * Stop upper layers calling the device hard_start_xmit routine.
- * Used for flow control when transmit resources are unavailable.
- */
-static inline void netif_stop_queue(struct net_device *dev)
-{
- netif_tx_stop_queue(netdev_get_tx_queue(dev, 0));
-}
-
-static inline void netif_tx_stop_all_queues(struct net_device *dev)
-{
- unsigned int i;
-
- for (i = 0; i < dev->num_tx_queues; i++) {
- struct netdev_queue *txq = netdev_get_tx_queue(dev, i);
- netif_tx_stop_queue(txq);
- }
-}
-
-static inline bool netif_tx_queue_stopped(const struct netdev_queue *dev_queue)
-{
- return test_bit(__QUEUE_STATE_DRV_XOFF, &dev_queue->state);
-}
-
-/**
- * netif_queue_stopped - test if transmit queue is flowblocked
- * @dev: network device
- *
- * Test if transmit queue on device is currently unable to send.
- */
-static inline bool netif_queue_stopped(const struct net_device *dev)
-{
- return netif_tx_queue_stopped(netdev_get_tx_queue(dev, 0));
-}
-
-static inline bool netif_xmit_stopped(const struct netdev_queue *dev_queue)
-{
- return dev_queue->state & QUEUE_STATE_ANY_XOFF;
-}
-
-static inline bool netif_xmit_frozen_or_stopped(const struct netdev_queue *dev_queue)
-{
- return dev_queue->state & QUEUE_STATE_ANY_XOFF_OR_FROZEN;
-}
-
-static inline void netdev_tx_sent_queue(struct netdev_queue *dev_queue,
- unsigned int bytes)
-{
-#ifdef CONFIG_BQL
- dql_queued(&dev_queue->dql, bytes);
-
- if (likely(dql_avail(&dev_queue->dql) >= 0))
- return;
-
- set_bit(__QUEUE_STATE_STACK_XOFF, &dev_queue->state);
-
- /*
- * The XOFF flag must be set before checking the dql_avail below,
- * because in netdev_tx_completed_queue we update the dql_completed
- * before checking the XOFF flag.
- */
- smp_mb();
-
- /* check again in case another CPU has just made room avail */
- if (unlikely(dql_avail(&dev_queue->dql) >= 0))
- clear_bit(__QUEUE_STATE_STACK_XOFF, &dev_queue->state);
-#endif
-}
-
-static inline void netdev_sent_queue(struct net_device *dev, unsigned int bytes)
-{
- netdev_tx_sent_queue(netdev_get_tx_queue(dev, 0), bytes);
-}
-
-static inline void netdev_tx_completed_queue(struct netdev_queue *dev_queue,
- unsigned pkts, unsigned bytes)
-{
-#ifdef CONFIG_BQL
- if (unlikely(!bytes))
- return;
-
- dql_completed(&dev_queue->dql, bytes);
-
- /*
- * Without the memory barrier there is a small possiblity that
- * netdev_tx_sent_queue will miss the update and cause the queue to
- * be stopped forever
- */
- smp_mb();
-
- if (dql_avail(&dev_queue->dql) < 0)
- return;
-
- if (test_and_clear_bit(__QUEUE_STATE_STACK_XOFF, &dev_queue->state))
- netif_schedule_queue(dev_queue);
-#endif
-}
-
-static inline void netdev_completed_queue(struct net_device *dev,
- unsigned pkts, unsigned bytes)
-{
- netdev_tx_completed_queue(netdev_get_tx_queue(dev, 0), pkts, bytes);
-}
-
-static inline void netdev_tx_reset_queue(struct netdev_queue *q)
-{
-#ifdef CONFIG_BQL
- clear_bit(__QUEUE_STATE_STACK_XOFF, &q->state);
- dql_reset(&q->dql);
-#endif
-}
-
-static inline void netdev_reset_queue(struct net_device *dev_queue)
-{
- netdev_tx_reset_queue(netdev_get_tx_queue(dev_queue, 0));
-}
-
-/**
- * netif_running - test if up
- * @dev: network device
- *
- * Test if the device has been brought up.
- */
-static inline bool netif_running(const struct net_device *dev)
-{
- return test_bit(__LINK_STATE_START, &dev->state);
-}
-
-/*
- * Routines to manage the subqueues on a device. We only need start
- * stop, and a check if it's stopped. All other device management is
- * done at the overall netdevice level.
- * Also test the device if we're multiqueue.
- */
-
-/**
- * netif_start_subqueue - allow sending packets on subqueue
- * @dev: network device
- * @queue_index: sub queue index
- *
- * Start individual transmit queue of a device with multiple transmit queues.
- */
-static inline void netif_start_subqueue(struct net_device *dev, u16 queue_index)
-{
- struct netdev_queue *txq = netdev_get_tx_queue(dev, queue_index);
-
- netif_tx_start_queue(txq);
-}
-
-/**
- * netif_stop_subqueue - stop sending packets on subqueue
- * @dev: network device
- * @queue_index: sub queue index
- *
- * Stop individual transmit queue of a device with multiple transmit queues.
- */
-static inline void netif_stop_subqueue(struct net_device *dev, u16 queue_index)
-{
- struct netdev_queue *txq = netdev_get_tx_queue(dev, queue_index);
-#ifdef CONFIG_NETPOLL_TRAP
- if (netpoll_trap())
- return;
-#endif
- netif_tx_stop_queue(txq);
-}
-
-/**
- * netif_subqueue_stopped - test status of subqueue
- * @dev: network device
- * @queue_index: sub queue index
- *
- * Check individual transmit queue of a device with multiple transmit queues.
- */
-static inline bool __netif_subqueue_stopped(const struct net_device *dev,
- u16 queue_index)
-{
- struct netdev_queue *txq = netdev_get_tx_queue(dev, queue_index);
-
- return netif_tx_queue_stopped(txq);
-}
-
-static inline bool netif_subqueue_stopped(const struct net_device *dev,
- struct sk_buff *skb)
-{
- return __netif_subqueue_stopped(dev, skb_get_queue_mapping(skb));
-}
-
-/**
- * netif_wake_subqueue - allow sending packets on subqueue
- * @dev: network device
- * @queue_index: sub queue index
- *
- * Resume individual transmit queue of a device with multiple transmit queues.
- */
-static inline void netif_wake_subqueue(struct net_device *dev, u16 queue_index)
-{
- struct netdev_queue *txq = netdev_get_tx_queue(dev, queue_index);
-#ifdef CONFIG_NETPOLL_TRAP
- if (netpoll_trap())
- return;
-#endif
- if (test_and_clear_bit(__QUEUE_STATE_DRV_XOFF, &txq->state))
- __netif_schedule(txq->qdisc);
-}
-
-/*
- * Returns a Tx hash for the given packet when dev->real_num_tx_queues is used
- * as a distribution range limit for the returned value.
- */
-static inline u16 skb_tx_hash(const struct net_device *dev,
- const struct sk_buff *skb)
-{
- return __skb_tx_hash(dev, skb, dev->real_num_tx_queues);
-}
-
-/**
- * netif_is_multiqueue - test if device has multiple transmit queues
- * @dev: network device
- *
- * Check if device has multiple transmit queues
- */
-static inline bool netif_is_multiqueue(const struct net_device *dev)
-{
- return dev->num_tx_queues > 1;
-}
-
-extern int netif_set_real_num_tx_queues(struct net_device *dev,
- unsigned int txq);
-
-#ifdef CONFIG_RPS
-extern int netif_set_real_num_rx_queues(struct net_device *dev,
- unsigned int rxq);
-#else
-static inline int netif_set_real_num_rx_queues(struct net_device *dev,
- unsigned int rxq)
-{
- return 0;
-}
-#endif
-
-static inline int netif_copy_real_num_queues(struct net_device *to_dev,
- const struct net_device *from_dev)
-{
- netif_set_real_num_tx_queues(to_dev, from_dev->real_num_tx_queues);
-#ifdef CONFIG_RPS
- return netif_set_real_num_rx_queues(to_dev,
- from_dev->real_num_rx_queues);
-#else
- return 0;
-#endif
-}
-
-/* Use this variant when it is known for sure that it
- * is executing from hardware interrupt context or with hardware interrupts
- * disabled.
- */
-extern void dev_kfree_skb_irq(struct sk_buff *skb);
-
-/* Use this variant in places where it could be invoked
- * from either hardware interrupt or other context, with hardware interrupts
- * either disabled or enabled.
- */
-extern void dev_kfree_skb_any(struct sk_buff *skb);
-
-extern int netif_rx(struct sk_buff *skb);
-extern int netif_rx_ni(struct sk_buff *skb);
-extern int netif_receive_skb(struct sk_buff *skb);
-extern gro_result_t dev_gro_receive(struct napi_struct *napi,
- struct sk_buff *skb);
-extern gro_result_t napi_skb_finish(gro_result_t ret, struct sk_buff *skb);
-extern gro_result_t napi_gro_receive(struct napi_struct *napi,
- struct sk_buff *skb);
-extern void napi_gro_flush(struct napi_struct *napi);
-extern struct sk_buff * napi_get_frags(struct napi_struct *napi);
-extern gro_result_t napi_frags_finish(struct napi_struct *napi,
- struct sk_buff *skb,
- gro_result_t ret);
-extern struct sk_buff * napi_frags_skb(struct napi_struct *napi);
-extern gro_result_t napi_gro_frags(struct napi_struct *napi);
-
-static inline void napi_free_frags(struct napi_struct *napi)
-{
- kfree_skb(napi->skb);
- napi->skb = NULL;
-}
-
-extern int netdev_rx_handler_register(struct net_device *dev,
- rx_handler_func_t *rx_handler,
- void *rx_handler_data);
-extern void netdev_rx_handler_unregister(struct net_device *dev);
-
-extern bool dev_valid_name(const char *name);
-extern int dev_ioctl(struct net *net, unsigned int cmd, void __user *);
-extern int dev_ethtool(struct net *net, struct ifreq *);
-extern unsigned dev_get_flags(const struct net_device *);
-extern int __dev_change_flags(struct net_device *, unsigned int flags);
-extern int dev_change_flags(struct net_device *, unsigned);
-extern void __dev_notify_flags(struct net_device *, unsigned int old_flags);
-extern int dev_change_name(struct net_device *, const char *);
-extern int dev_set_alias(struct net_device *, const char *, size_t);
-extern int dev_change_net_namespace(struct net_device *,
- struct net *, const char *);
-extern int dev_set_mtu(struct net_device *, int);
-extern void dev_set_group(struct net_device *, int);
-extern int dev_set_mac_address(struct net_device *,
- struct sockaddr *);
-extern int dev_hard_start_xmit(struct sk_buff *skb,
- struct net_device *dev,
- struct netdev_queue *txq);
-extern int dev_forward_skb(struct net_device *dev,
- struct sk_buff *skb);
-
-extern int netdev_budget;
-
-/* Called by rtnetlink.c:rtnl_unlock() */
-extern void netdev_run_todo(void);
-
-/**
- * dev_put - release reference to device
- * @dev: network device
- *
- * Release reference to device to allow it to be freed.
- */
-static inline void dev_put(struct net_device *dev)
-{
- this_cpu_dec(*dev->pcpu_refcnt);
-}
-
-/**
- * dev_hold - get reference to device
- * @dev: network device
- *
- * Hold reference to device to keep it from being freed.
- */
-static inline void dev_hold(struct net_device *dev)
-{
- this_cpu_inc(*dev->pcpu_refcnt);
-}
-
-/* Carrier loss detection, dial on demand. The functions netif_carrier_on
- * and _off may be called from IRQ context, but it is caller
- * who is responsible for serialization of these calls.
- *
- * The name carrier is inappropriate, these functions should really be
- * called netif_lowerlayer_*() because they represent the state of any
- * kind of lower layer not just hardware media.
- */
-
-extern void linkwatch_fire_event(struct net_device *dev);
-extern void linkwatch_forget_dev(struct net_device *dev);
-
-/**
- * netif_carrier_ok - test if carrier present
- * @dev: network device
- *
- * Check if carrier is present on device
- */
-static inline bool netif_carrier_ok(const struct net_device *dev)
-{
- return !test_bit(__LINK_STATE_NOCARRIER, &dev->state);
-}
-
-extern unsigned long dev_trans_start(struct net_device *dev);
-
-extern void __netdev_watchdog_up(struct net_device *dev);
-
-extern void netif_carrier_on(struct net_device *dev);
-
-extern void netif_carrier_off(struct net_device *dev);
-
-extern void netif_notify_peers(struct net_device *dev);
-
-/**
- * netif_dormant_on - mark device as dormant.
- * @dev: network device
- *
- * Mark device as dormant (as per RFC2863).
- *
- * The dormant state indicates that the relevant interface is not
- * actually in a condition to pass packets (i.e., it is not 'up') but is
- * in a "pending" state, waiting for some external event. For "on-
- * demand" interfaces, this new state identifies the situation where the
- * interface is waiting for events to place it in the up state.
- *
- */
-static inline void netif_dormant_on(struct net_device *dev)
-{
- if (!test_and_set_bit(__LINK_STATE_DORMANT, &dev->state))
- linkwatch_fire_event(dev);
-}
-
-/**
- * netif_dormant_off - set device as not dormant.
- * @dev: network device
- *
- * Device is not in dormant state.
- */
-static inline void netif_dormant_off(struct net_device *dev)
-{
- if (test_and_clear_bit(__LINK_STATE_DORMANT, &dev->state))
- linkwatch_fire_event(dev);
-}
-
-/**
- * netif_dormant - test if carrier present
- * @dev: network device
- *
- * Check if carrier is present on device
- */
-static inline bool netif_dormant(const struct net_device *dev)
-{
- return test_bit(__LINK_STATE_DORMANT, &dev->state);
-}
-
-
-/**
- * netif_oper_up - test if device is operational
- * @dev: network device
- *
- * Check if carrier is operational
- */
-static inline bool netif_oper_up(const struct net_device *dev)
-{
- return (dev->operstate == IF_OPER_UP ||
- dev->operstate == IF_OPER_UNKNOWN /* backward compat */);
-}
-
-/**
- * netif_device_present - is device available or removed
- * @dev: network device
- *
- * Check if device has not been removed from system.
- */
-static inline bool netif_device_present(struct net_device *dev)
-{
- return test_bit(__LINK_STATE_PRESENT, &dev->state);
-}
-
-extern void netif_device_detach(struct net_device *dev);
-
-extern void netif_device_attach(struct net_device *dev);
-
-/*
- * Network interface message level settings
- */
-
-enum {
- NETIF_MSG_DRV = 0x0001,
- NETIF_MSG_PROBE = 0x0002,
- NETIF_MSG_LINK = 0x0004,
- NETIF_MSG_TIMER = 0x0008,
- NETIF_MSG_IFDOWN = 0x0010,
- NETIF_MSG_IFUP = 0x0020,
- NETIF_MSG_RX_ERR = 0x0040,
- NETIF_MSG_TX_ERR = 0x0080,
- NETIF_MSG_TX_QUEUED = 0x0100,
- NETIF_MSG_INTR = 0x0200,
- NETIF_MSG_TX_DONE = 0x0400,
- NETIF_MSG_RX_STATUS = 0x0800,
- NETIF_MSG_PKTDATA = 0x1000,
- NETIF_MSG_HW = 0x2000,
- NETIF_MSG_WOL = 0x4000,
-};
-
-#define netif_msg_drv(p) ((p)->msg_enable & NETIF_MSG_DRV)
-#define netif_msg_probe(p) ((p)->msg_enable & NETIF_MSG_PROBE)
-#define netif_msg_link(p) ((p)->msg_enable & NETIF_MSG_LINK)
-#define netif_msg_timer(p) ((p)->msg_enable & NETIF_MSG_TIMER)
-#define netif_msg_ifdown(p) ((p)->msg_enable & NETIF_MSG_IFDOWN)
-#define netif_msg_ifup(p) ((p)->msg_enable & NETIF_MSG_IFUP)
-#define netif_msg_rx_err(p) ((p)->msg_enable & NETIF_MSG_RX_ERR)
-#define netif_msg_tx_err(p) ((p)->msg_enable & NETIF_MSG_TX_ERR)
-#define netif_msg_tx_queued(p) ((p)->msg_enable & NETIF_MSG_TX_QUEUED)
-#define netif_msg_intr(p) ((p)->msg_enable & NETIF_MSG_INTR)
-#define netif_msg_tx_done(p) ((p)->msg_enable & NETIF_MSG_TX_DONE)
-#define netif_msg_rx_status(p) ((p)->msg_enable & NETIF_MSG_RX_STATUS)
-#define netif_msg_pktdata(p) ((p)->msg_enable & NETIF_MSG_PKTDATA)
-#define netif_msg_hw(p) ((p)->msg_enable & NETIF_MSG_HW)
-#define netif_msg_wol(p) ((p)->msg_enable & NETIF_MSG_WOL)
-
-static inline u32 netif_msg_init(int debug_value, int default_msg_enable_bits)
-{
- /* use default */
- if (debug_value < 0 || debug_value >= (sizeof(u32) * 8))
- return default_msg_enable_bits;
- if (debug_value == 0) /* no output */
- return 0;
- /* set low N bits */
- return (1 << debug_value) - 1;
-}
-
-static inline void __netif_tx_lock(struct netdev_queue *txq, int cpu)
-{
- spin_lock(&txq->_xmit_lock);
- txq->xmit_lock_owner = cpu;
-}
-
-static inline void __netif_tx_lock_bh(struct netdev_queue *txq)
-{
- spin_lock_bh(&txq->_xmit_lock);
- txq->xmit_lock_owner = smp_processor_id();
-}
-
-static inline bool __netif_tx_trylock(struct netdev_queue *txq)
-{
- bool ok = spin_trylock(&txq->_xmit_lock);
- if (likely(ok))
- txq->xmit_lock_owner = smp_processor_id();
- return ok;
-}
-
-static inline void __netif_tx_unlock(struct netdev_queue *txq)
-{
- txq->xmit_lock_owner = -1;
- spin_unlock(&txq->_xmit_lock);
-}
-
-static inline void __netif_tx_unlock_bh(struct netdev_queue *txq)
-{
- txq->xmit_lock_owner = -1;
- spin_unlock_bh(&txq->_xmit_lock);
-}
-
-static inline void txq_trans_update(struct netdev_queue *txq)
-{
- if (txq->xmit_lock_owner != -1)
- txq->trans_start = jiffies;
-}
-
-/**
- * netif_tx_lock - grab network device transmit lock
- * @dev: network device
- *
- * Get network device transmit lock
- */
-static inline void netif_tx_lock(struct net_device *dev)
-{
- unsigned int i;
- int cpu;
-
- spin_lock(&dev->tx_global_lock);
- cpu = smp_processor_id();
- for (i = 0; i < dev->num_tx_queues; i++) {
- struct netdev_queue *txq = netdev_get_tx_queue(dev, i);
-
- /* We are the only thread of execution doing a
- * freeze, but we have to grab the _xmit_lock in
- * order to synchronize with threads which are in
- * the ->hard_start_xmit() handler and already
- * checked the frozen bit.
- */
- __netif_tx_lock(txq, cpu);
- set_bit(__QUEUE_STATE_FROZEN, &txq->state);
- __netif_tx_unlock(txq);
- }
-}
-
-static inline void netif_tx_lock_bh(struct net_device *dev)
-{
- local_bh_disable();
- netif_tx_lock(dev);
-}
-
-static inline void netif_tx_unlock(struct net_device *dev)
-{
- unsigned int i;
-
- for (i = 0; i < dev->num_tx_queues; i++) {
- struct netdev_queue *txq = netdev_get_tx_queue(dev, i);
-
- /* No need to grab the _xmit_lock here. If the
- * queue is not stopped for another reason, we
- * force a schedule.
- */
- clear_bit(__QUEUE_STATE_FROZEN, &txq->state);
- netif_schedule_queue(txq);
- }
- spin_unlock(&dev->tx_global_lock);
-}
-
-static inline void netif_tx_unlock_bh(struct net_device *dev)
-{
- netif_tx_unlock(dev);
- local_bh_enable();
-}
-
-#define HARD_TX_LOCK(dev, txq, cpu) { \
- if ((dev->features & NETIF_F_LLTX) == 0) { \
- __netif_tx_lock(txq, cpu); \
- } \
-}
-
-#define HARD_TX_UNLOCK(dev, txq) { \
- if ((dev->features & NETIF_F_LLTX) == 0) { \
- __netif_tx_unlock(txq); \
- } \
-}
-
-static inline void netif_tx_disable(struct net_device *dev)
-{
- unsigned int i;
- int cpu;
-
- local_bh_disable();
- cpu = smp_processor_id();
- for (i = 0; i < dev->num_tx_queues; i++) {
- struct netdev_queue *txq = netdev_get_tx_queue(dev, i);
-
- __netif_tx_lock(txq, cpu);
- netif_tx_stop_queue(txq);
- __netif_tx_unlock(txq);
- }
- local_bh_enable();
-}
-
-static inline void netif_addr_lock(struct net_device *dev)
-{
- spin_lock(&dev->addr_list_lock);
-}
-
-static inline void netif_addr_lock_nested(struct net_device *dev)
-{
- spin_lock_nested(&dev->addr_list_lock, SINGLE_DEPTH_NESTING);
-}
-
-static inline void netif_addr_lock_bh(struct net_device *dev)
-{
- spin_lock_bh(&dev->addr_list_lock);
-}
-
-static inline void netif_addr_unlock(struct net_device *dev)
-{
- spin_unlock(&dev->addr_list_lock);
-}
-
-static inline void netif_addr_unlock_bh(struct net_device *dev)
-{
- spin_unlock_bh(&dev->addr_list_lock);
-}
-
-/*
- * dev_addrs walker. Should be used only for read access. Call with
- * rcu_read_lock held.
- */
-#define for_each_dev_addr(dev, ha) \
- list_for_each_entry_rcu(ha, &dev->dev_addrs.list, list)
-
-/* These functions live elsewhere (drivers/net/net_init.c, but related) */
-
-extern void ether_setup(struct net_device *dev);
-
-/* Support for loadable net-drivers */
-extern struct net_device *alloc_netdev_mqs(int sizeof_priv, const char *name,
- void (*setup)(struct net_device *),
- unsigned int txqs, unsigned int rxqs);
-#define alloc_netdev(sizeof_priv, name, setup) \
- alloc_netdev_mqs(sizeof_priv, name, setup, 1, 1)
-
-#define alloc_netdev_mq(sizeof_priv, name, setup, count) \
- alloc_netdev_mqs(sizeof_priv, name, setup, count, count)
-
-extern int register_netdev(struct net_device *dev);
-extern void unregister_netdev(struct net_device *dev);
-
-/* General hardware address lists handling functions */
-extern int __hw_addr_add_multiple(struct netdev_hw_addr_list *to_list,
- struct netdev_hw_addr_list *from_list,
- int addr_len, unsigned char addr_type);
-extern void __hw_addr_del_multiple(struct netdev_hw_addr_list *to_list,
- struct netdev_hw_addr_list *from_list,
- int addr_len, unsigned char addr_type);
-extern int __hw_addr_sync(struct netdev_hw_addr_list *to_list,
- struct netdev_hw_addr_list *from_list,
- int addr_len);
-extern void __hw_addr_unsync(struct netdev_hw_addr_list *to_list,
- struct netdev_hw_addr_list *from_list,
- int addr_len);
-extern void __hw_addr_flush(struct netdev_hw_addr_list *list);
-extern void __hw_addr_init(struct netdev_hw_addr_list *list);
-
-/* Functions used for device addresses handling */
-extern int dev_addr_add(struct net_device *dev, unsigned char *addr,
- unsigned char addr_type);
-extern int dev_addr_del(struct net_device *dev, unsigned char *addr,
- unsigned char addr_type);
-extern int dev_addr_add_multiple(struct net_device *to_dev,
- struct net_device *from_dev,
- unsigned char addr_type);
-extern int dev_addr_del_multiple(struct net_device *to_dev,
- struct net_device *from_dev,
- unsigned char addr_type);
-extern void dev_addr_flush(struct net_device *dev);
-extern int dev_addr_init(struct net_device *dev);
-
-/* Functions used for unicast addresses handling */
-extern int dev_uc_add(struct net_device *dev, unsigned char *addr);
-extern int dev_uc_del(struct net_device *dev, unsigned char *addr);
-extern int dev_uc_sync(struct net_device *to, struct net_device *from);
-extern void dev_uc_unsync(struct net_device *to, struct net_device *from);
-extern void dev_uc_flush(struct net_device *dev);
-extern void dev_uc_init(struct net_device *dev);
-
-/* Functions used for multicast addresses handling */
-extern int dev_mc_add(struct net_device *dev, unsigned char *addr);
-extern int dev_mc_add_global(struct net_device *dev, unsigned char *addr);
-extern int dev_mc_del(struct net_device *dev, unsigned char *addr);
-extern int dev_mc_del_global(struct net_device *dev, unsigned char *addr);
-extern int dev_mc_sync(struct net_device *to, struct net_device *from);
-extern void dev_mc_unsync(struct net_device *to, struct net_device *from);
-extern void dev_mc_flush(struct net_device *dev);
-extern void dev_mc_init(struct net_device *dev);
-
-/* Functions used for secondary unicast and multicast support */
-extern void dev_set_rx_mode(struct net_device *dev);
-extern void __dev_set_rx_mode(struct net_device *dev);
-extern int dev_set_promiscuity(struct net_device *dev, int inc);
-extern int dev_set_allmulti(struct net_device *dev, int inc);
-extern void netdev_state_change(struct net_device *dev);
-extern int netdev_bonding_change(struct net_device *dev,
- unsigned long event);
-extern void netdev_features_change(struct net_device *dev);
-/* Load a device via the kmod */
-extern void dev_load(struct net *net, const char *name);
-extern void dev_mcast_init(void);
-extern struct rtnl_link_stats64 *dev_get_stats(struct net_device *dev,
- struct rtnl_link_stats64 *storage);
-extern void netdev_stats_to_stats64(struct rtnl_link_stats64 *stats64,
- const struct net_device_stats *netdev_stats);
-
-extern int netdev_max_backlog;
-extern int netdev_tstamp_prequeue;
-extern int weight_p;
-extern int bpf_jit_enable;
-extern int netdev_set_master(struct net_device *dev, struct net_device *master);
-extern int netdev_set_bond_master(struct net_device *dev,
- struct net_device *master);
-extern int skb_checksum_help(struct sk_buff *skb);
-extern struct sk_buff *skb_gso_segment(struct sk_buff *skb,
- netdev_features_t features);
-#ifdef CONFIG_BUG
-extern void netdev_rx_csum_fault(struct net_device *dev);
-#else
-static inline void netdev_rx_csum_fault(struct net_device *dev)
-{
-}
-#endif
-/* rx skb timestamps */
-extern void net_enable_timestamp(void);
-extern void net_disable_timestamp(void);
-
-#ifdef CONFIG_PROC_FS
-extern void *dev_seq_start(struct seq_file *seq, loff_t *pos);
-extern void *dev_seq_next(struct seq_file *seq, void *v, loff_t *pos);
-extern void dev_seq_stop(struct seq_file *seq, void *v);
-#endif
-
-extern int netdev_class_create_file(struct class_attribute *class_attr);
-extern void netdev_class_remove_file(struct class_attribute *class_attr);
-
-extern struct kobj_ns_type_operations net_ns_type_operations;
-
-extern const char *netdev_drivername(const struct net_device *dev);
-
-extern void linkwatch_run_queue(void);
-
-static inline netdev_features_t netdev_get_wanted_features(
- struct net_device *dev)
-{
- return (dev->features & ~dev->hw_features) | dev->wanted_features;
-}
-netdev_features_t netdev_increment_features(netdev_features_t all,
- netdev_features_t one, netdev_features_t mask);
-int __netdev_update_features(struct net_device *dev);
-void netdev_update_features(struct net_device *dev);
-void netdev_change_features(struct net_device *dev);
-
-void netif_stacked_transfer_operstate(const struct net_device *rootdev,
- struct net_device *dev);
-
-netdev_features_t netif_skb_features(struct sk_buff *skb);
-
-static inline bool net_gso_ok(netdev_features_t features, int gso_type)
-{
- netdev_features_t feature = gso_type << NETIF_F_GSO_SHIFT;
-
- /* check flags correspondence */
- BUILD_BUG_ON(SKB_GSO_TCPV4 != (NETIF_F_TSO >> NETIF_F_GSO_SHIFT));
- BUILD_BUG_ON(SKB_GSO_UDP != (NETIF_F_UFO >> NETIF_F_GSO_SHIFT));
- BUILD_BUG_ON(SKB_GSO_DODGY != (NETIF_F_GSO_ROBUST >> NETIF_F_GSO_SHIFT));
- BUILD_BUG_ON(SKB_GSO_TCP_ECN != (NETIF_F_TSO_ECN >> NETIF_F_GSO_SHIFT));
- BUILD_BUG_ON(SKB_GSO_TCPV6 != (NETIF_F_TSO6 >> NETIF_F_GSO_SHIFT));
- BUILD_BUG_ON(SKB_GSO_FCOE != (NETIF_F_FSO >> NETIF_F_GSO_SHIFT));
-
- return (features & feature) == feature;
-}
-
-static inline bool skb_gso_ok(struct sk_buff *skb, netdev_features_t features)
-{
- return net_gso_ok(features, skb_shinfo(skb)->gso_type) &&
- (!skb_has_frag_list(skb) || (features & NETIF_F_FRAGLIST));
-}
-
-static inline bool netif_needs_gso(struct sk_buff *skb,
- netdev_features_t features)
-{
- return skb_is_gso(skb) && (!skb_gso_ok(skb, features) ||
- unlikely((skb->ip_summed != CHECKSUM_PARTIAL) &&
- (skb->ip_summed != CHECKSUM_UNNECESSARY)));
-}
-
-static inline void netif_set_gso_max_size(struct net_device *dev,
- unsigned int size)
-{
- dev->gso_max_size = size;
-}
-
-static inline bool netif_is_bond_slave(struct net_device *dev)
-{
- return dev->flags & IFF_SLAVE && dev->priv_flags & IFF_BONDING;
-}
-
-static inline bool netif_supports_nofcs(struct net_device *dev)
-{
- return dev->priv_flags & IFF_SUPP_NOFCS;
-}
-
-extern struct pernet_operations __net_initdata loopback_net_ops;
-
-/* Logging, debugging and troubleshooting/diagnostic helpers. */
-
-/* netdev_printk helpers, similar to dev_printk */
-
-static inline const char *netdev_name(const struct net_device *dev)
-{
- if (dev->reg_state != NETREG_REGISTERED)
- return "(unregistered net_device)";
- return dev->name;
-}
-
-extern int __netdev_printk(const char *level, const struct net_device *dev,
- struct va_format *vaf);
-
-extern __printf(3, 4)
-int netdev_printk(const char *level, const struct net_device *dev,
- const char *format, ...);
-extern __printf(2, 3)
-int netdev_emerg(const struct net_device *dev, const char *format, ...);
-extern __printf(2, 3)
-int netdev_alert(const struct net_device *dev, const char *format, ...);
-extern __printf(2, 3)
-int netdev_crit(const struct net_device *dev, const char *format, ...);
-extern __printf(2, 3)
-int netdev_err(const struct net_device *dev, const char *format, ...);
-extern __printf(2, 3)
-int netdev_warn(const struct net_device *dev, const char *format, ...);
-extern __printf(2, 3)
-int netdev_notice(const struct net_device *dev, const char *format, ...);
-extern __printf(2, 3)
-int netdev_info(const struct net_device *dev, const char *format, ...);
-
-#define MODULE_ALIAS_NETDEV(device) \
- MODULE_ALIAS("netdev-" device)
-
-#if defined(CONFIG_DYNAMIC_DEBUG)
-#define netdev_dbg(__dev, format, args...) \
-do { \
- dynamic_netdev_dbg(__dev, format, ##args); \
-} while (0)
-#elif defined(DEBUG)
-#define netdev_dbg(__dev, format, args...) \
- netdev_printk(KERN_DEBUG, __dev, format, ##args)
-#else
-#define netdev_dbg(__dev, format, args...) \
-({ \
- if (0) \
- netdev_printk(KERN_DEBUG, __dev, format, ##args); \
- 0; \
-})
-#endif
-
-#if defined(VERBOSE_DEBUG)
-#define netdev_vdbg netdev_dbg
-#else
-
-#define netdev_vdbg(dev, format, args...) \
-({ \
- if (0) \
- netdev_printk(KERN_DEBUG, dev, format, ##args); \
- 0; \
-})
-#endif
-
-/*
- * netdev_WARN() acts like dev_printk(), but with the key difference
- * of using a WARN/WARN_ON to get the message out, including the
- * file/line information and a backtrace.
- */
-#define netdev_WARN(dev, format, args...) \
- WARN(1, "netdevice: %s\n" format, netdev_name(dev), ##args);
-
-/* netif printk helpers, similar to netdev_printk */
-
-#define netif_printk(priv, type, level, dev, fmt, args...) \
-do { \
- if (netif_msg_##type(priv)) \
- netdev_printk(level, (dev), fmt, ##args); \
-} while (0)
-
-#define netif_level(level, priv, type, dev, fmt, args...) \
-do { \
- if (netif_msg_##type(priv)) \
- netdev_##level(dev, fmt, ##args); \
-} while (0)
-
-#define netif_emerg(priv, type, dev, fmt, args...) \
- netif_level(emerg, priv, type, dev, fmt, ##args)
-#define netif_alert(priv, type, dev, fmt, args...) \
- netif_level(alert, priv, type, dev, fmt, ##args)
-#define netif_crit(priv, type, dev, fmt, args...) \
- netif_level(crit, priv, type, dev, fmt, ##args)
-#define netif_err(priv, type, dev, fmt, args...) \
- netif_level(err, priv, type, dev, fmt, ##args)
-#define netif_warn(priv, type, dev, fmt, args...) \
- netif_level(warn, priv, type, dev, fmt, ##args)
-#define netif_notice(priv, type, dev, fmt, args...) \
- netif_level(notice, priv, type, dev, fmt, ##args)
-#define netif_info(priv, type, dev, fmt, args...) \
- netif_level(info, priv, type, dev, fmt, ##args)
-
-#if defined(DEBUG)
-#define netif_dbg(priv, type, dev, format, args...) \
- netif_printk(priv, type, KERN_DEBUG, dev, format, ##args)
-#elif defined(CONFIG_DYNAMIC_DEBUG)
-#define netif_dbg(priv, type, netdev, format, args...) \
-do { \
- if (netif_msg_##type(priv)) \
- dynamic_netdev_dbg(netdev, format, ##args); \
-} while (0)
-#else
-#define netif_dbg(priv, type, dev, format, args...) \
-({ \
- if (0) \
- netif_printk(priv, type, KERN_DEBUG, dev, format, ##args); \
- 0; \
-})
-#endif
-
-#if defined(VERBOSE_DEBUG)
-#define netif_vdbg netif_dbg
-#else
-#define netif_vdbg(priv, type, dev, format, args...) \
-({ \
- if (0) \
- netif_printk(priv, type, KERN_DEBUG, dev, format, ##args); \
- 0; \
-})
-#endif
-
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_NETDEVICE_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter.h b/ANDROID_3.4.5/include/linux/netfilter.h
deleted file mode 100644
index 29734be3..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter.h
+++ /dev/null
@@ -1,397 +0,0 @@
-#ifndef __LINUX_NETFILTER_H
-#define __LINUX_NETFILTER_H
-
-#ifdef __KERNEL__
-#include <linux/init.h>
-#include <linux/skbuff.h>
-#include <linux/net.h>
-#include <linux/if.h>
-#include <linux/in.h>
-#include <linux/in6.h>
-#include <linux/wait.h>
-#include <linux/list.h>
-#endif
-#include <linux/types.h>
-#include <linux/compiler.h>
-#include <linux/sysctl.h>
-
-/* Responses from hook functions. */
-#define NF_DROP 0
-#define NF_ACCEPT 1
-#define NF_STOLEN 2
-#define NF_QUEUE 3
-#define NF_REPEAT 4
-#define NF_STOP 5
-#define NF_MAX_VERDICT NF_STOP
-
-/* we overload the higher bits for encoding auxiliary data such as the queue
- * number or errno values. Not nice, but better than additional function
- * arguments. */
-#define NF_VERDICT_MASK 0x000000ff
-
-/* extra verdict flags have mask 0x0000ff00 */
-#define NF_VERDICT_FLAG_QUEUE_BYPASS 0x00008000
-
-/* queue number (NF_QUEUE) or errno (NF_DROP) */
-#define NF_VERDICT_QMASK 0xffff0000
-#define NF_VERDICT_QBITS 16
-
-#define NF_QUEUE_NR(x) ((((x) << 16) & NF_VERDICT_QMASK) | NF_QUEUE)
-
-#define NF_DROP_ERR(x) (((-x) << 16) | NF_DROP)
-
-/* only for userspace compatibility */
-#ifndef __KERNEL__
-/* Generic cache responses from hook functions.
- <= 0x2000 is used for protocol-flags. */
-#define NFC_UNKNOWN 0x4000
-#define NFC_ALTERED 0x8000
-
-/* NF_VERDICT_BITS should be 8 now, but userspace might break if this changes */
-#define NF_VERDICT_BITS 16
-#endif
-
-enum nf_inet_hooks {
- NF_INET_PRE_ROUTING,
- NF_INET_LOCAL_IN,
- NF_INET_FORWARD,
- NF_INET_LOCAL_OUT,
- NF_INET_POST_ROUTING,
- NF_INET_NUMHOOKS
-};
-
-enum {
- NFPROTO_UNSPEC = 0,
- NFPROTO_IPV4 = 2,
- NFPROTO_ARP = 3,
- NFPROTO_BRIDGE = 7,
- NFPROTO_IPV6 = 10,
- NFPROTO_DECNET = 12,
- NFPROTO_NUMPROTO,
-};
-
-union nf_inet_addr {
- __u32 all[4];
- __be32 ip;
- __be32 ip6[4];
- struct in_addr in;
- struct in6_addr in6;
-};
-
-#ifdef __KERNEL__
-#ifdef CONFIG_NETFILTER
-static inline int NF_DROP_GETERR(int verdict)
-{
- return -(verdict >> NF_VERDICT_QBITS);
-}
-
-static inline int nf_inet_addr_cmp(const union nf_inet_addr *a1,
- const union nf_inet_addr *a2)
-{
- return a1->all[0] == a2->all[0] &&
- a1->all[1] == a2->all[1] &&
- a1->all[2] == a2->all[2] &&
- a1->all[3] == a2->all[3];
-}
-
-extern void netfilter_init(void);
-
-/* Largest hook number + 1 */
-#define NF_MAX_HOOKS 8
-
-struct sk_buff;
-
-typedef unsigned int nf_hookfn(unsigned int hooknum,
- struct sk_buff *skb,
- const struct net_device *in,
- const struct net_device *out,
- int (*okfn)(struct sk_buff *));
-
-struct nf_hook_ops {
- struct list_head list;
-
- /* User fills in from here down. */
- nf_hookfn *hook;
- struct module *owner;
- u_int8_t pf;
- unsigned int hooknum;
- /* Hooks are ordered in ascending priority. */
- int priority;
-};
-
-struct nf_sockopt_ops {
- struct list_head list;
-
- u_int8_t pf;
-
- /* Non-inclusive ranges: use 0/0/NULL to never get called. */
- int set_optmin;
- int set_optmax;
- int (*set)(struct sock *sk, int optval, void __user *user, unsigned int len);
-#ifdef CONFIG_COMPAT
- int (*compat_set)(struct sock *sk, int optval,
- void __user *user, unsigned int len);
-#endif
- int get_optmin;
- int get_optmax;
- int (*get)(struct sock *sk, int optval, void __user *user, int *len);
-#ifdef CONFIG_COMPAT
- int (*compat_get)(struct sock *sk, int optval,
- void __user *user, int *len);
-#endif
- /* Use the module struct to lock set/get code in place */
- struct module *owner;
-};
-
-/* Function to register/unregister hook points. */
-int nf_register_hook(struct nf_hook_ops *reg);
-void nf_unregister_hook(struct nf_hook_ops *reg);
-int nf_register_hooks(struct nf_hook_ops *reg, unsigned int n);
-void nf_unregister_hooks(struct nf_hook_ops *reg, unsigned int n);
-
-/* Functions to register get/setsockopt ranges (non-inclusive). You
- need to check permissions yourself! */
-int nf_register_sockopt(struct nf_sockopt_ops *reg);
-void nf_unregister_sockopt(struct nf_sockopt_ops *reg);
-
-#ifdef CONFIG_SYSCTL
-/* Sysctl registration */
-extern struct ctl_path nf_net_netfilter_sysctl_path[];
-extern struct ctl_path nf_net_ipv4_netfilter_sysctl_path[];
-#endif /* CONFIG_SYSCTL */
-
-extern struct list_head nf_hooks[NFPROTO_NUMPROTO][NF_MAX_HOOKS];
-
-#if defined(CONFIG_JUMP_LABEL)
-#include <linux/static_key.h>
-extern struct static_key nf_hooks_needed[NFPROTO_NUMPROTO][NF_MAX_HOOKS];
-static inline bool nf_hooks_active(u_int8_t pf, unsigned int hook)
-{
- if (__builtin_constant_p(pf) &&
- __builtin_constant_p(hook))
- return static_key_false(&nf_hooks_needed[pf][hook]);
-
- return !list_empty(&nf_hooks[pf][hook]);
-}
-#else
-static inline bool nf_hooks_active(u_int8_t pf, unsigned int hook)
-{
- return !list_empty(&nf_hooks[pf][hook]);
-}
-#endif
-
-int nf_hook_slow(u_int8_t pf, unsigned int hook, struct sk_buff *skb,
- struct net_device *indev, struct net_device *outdev,
- int (*okfn)(struct sk_buff *), int thresh);
-
-/**
- * nf_hook_thresh - call a netfilter hook
- *
- * Returns 1 if the hook has allowed the packet to pass. The function
- * okfn must be invoked by the caller in this case. Any other return
- * value indicates the packet has been consumed by the hook.
- */
-static inline int nf_hook_thresh(u_int8_t pf, unsigned int hook,
- struct sk_buff *skb,
- struct net_device *indev,
- struct net_device *outdev,
- int (*okfn)(struct sk_buff *), int thresh)
-{
- if (nf_hooks_active(pf, hook))
- return nf_hook_slow(pf, hook, skb, indev, outdev, okfn, thresh);
- return 1;
-}
-
-static inline int nf_hook(u_int8_t pf, unsigned int hook, struct sk_buff *skb,
- struct net_device *indev, struct net_device *outdev,
- int (*okfn)(struct sk_buff *))
-{
- return nf_hook_thresh(pf, hook, skb, indev, outdev, okfn, INT_MIN);
-}
-
-/* Activate hook; either okfn or kfree_skb called, unless a hook
- returns NF_STOLEN (in which case, it's up to the hook to deal with
- the consequences).
-
- Returns -ERRNO if packet dropped. Zero means queued, stolen or
- accepted.
-*/
-
-/* RR:
- > I don't want nf_hook to return anything because people might forget
- > about async and trust the return value to mean "packet was ok".
-
- AK:
- Just document it clearly, then you can expect some sense from kernel
- coders :)
-*/
-
-static inline int
-NF_HOOK_THRESH(uint8_t pf, unsigned int hook, struct sk_buff *skb,
- struct net_device *in, struct net_device *out,
- int (*okfn)(struct sk_buff *), int thresh)
-{
- int ret = nf_hook_thresh(pf, hook, skb, in, out, okfn, thresh);
- if (ret == 1)
- ret = okfn(skb);
- return ret;
-}
-
-static inline int
-NF_HOOK_COND(uint8_t pf, unsigned int hook, struct sk_buff *skb,
- struct net_device *in, struct net_device *out,
- int (*okfn)(struct sk_buff *), bool cond)
-{
- int ret;
-
- if (!cond ||
- ((ret = nf_hook_thresh(pf, hook, skb, in, out, okfn, INT_MIN)) == 1))
- ret = okfn(skb);
- return ret;
-}
-
-static inline int
-NF_HOOK(uint8_t pf, unsigned int hook, struct sk_buff *skb,
- struct net_device *in, struct net_device *out,
- int (*okfn)(struct sk_buff *))
-{
- return NF_HOOK_THRESH(pf, hook, skb, in, out, okfn, INT_MIN);
-}
-
-/* Call setsockopt() */
-int nf_setsockopt(struct sock *sk, u_int8_t pf, int optval, char __user *opt,
- unsigned int len);
-int nf_getsockopt(struct sock *sk, u_int8_t pf, int optval, char __user *opt,
- int *len);
-#ifdef CONFIG_COMPAT
-int compat_nf_setsockopt(struct sock *sk, u_int8_t pf, int optval,
- char __user *opt, unsigned int len);
-int compat_nf_getsockopt(struct sock *sk, u_int8_t pf, int optval,
- char __user *opt, int *len);
-#endif
-
-/* Call this before modifying an existing packet: ensures it is
- modifiable and linear to the point you care about (writable_len).
- Returns true or false. */
-extern int skb_make_writable(struct sk_buff *skb, unsigned int writable_len);
-
-struct flowi;
-struct nf_queue_entry;
-
-struct nf_afinfo {
- unsigned short family;
- __sum16 (*checksum)(struct sk_buff *skb, unsigned int hook,
- unsigned int dataoff, u_int8_t protocol);
- __sum16 (*checksum_partial)(struct sk_buff *skb,
- unsigned int hook,
- unsigned int dataoff,
- unsigned int len,
- u_int8_t protocol);
- int (*route)(struct net *net, struct dst_entry **dst,
- struct flowi *fl, bool strict);
- void (*saveroute)(const struct sk_buff *skb,
- struct nf_queue_entry *entry);
- int (*reroute)(struct sk_buff *skb,
- const struct nf_queue_entry *entry);
- int route_key_size;
-};
-
-extern const struct nf_afinfo __rcu *nf_afinfo[NFPROTO_NUMPROTO];
-static inline const struct nf_afinfo *nf_get_afinfo(unsigned short family)
-{
- return rcu_dereference(nf_afinfo[family]);
-}
-
-static inline __sum16
-nf_checksum(struct sk_buff *skb, unsigned int hook, unsigned int dataoff,
- u_int8_t protocol, unsigned short family)
-{
- const struct nf_afinfo *afinfo;
- __sum16 csum = 0;
-
- rcu_read_lock();
- afinfo = nf_get_afinfo(family);
- if (afinfo)
- csum = afinfo->checksum(skb, hook, dataoff, protocol);
- rcu_read_unlock();
- return csum;
-}
-
-static inline __sum16
-nf_checksum_partial(struct sk_buff *skb, unsigned int hook,
- unsigned int dataoff, unsigned int len,
- u_int8_t protocol, unsigned short family)
-{
- const struct nf_afinfo *afinfo;
- __sum16 csum = 0;
-
- rcu_read_lock();
- afinfo = nf_get_afinfo(family);
- if (afinfo)
- csum = afinfo->checksum_partial(skb, hook, dataoff, len,
- protocol);
- rcu_read_unlock();
- return csum;
-}
-
-extern int nf_register_afinfo(const struct nf_afinfo *afinfo);
-extern void nf_unregister_afinfo(const struct nf_afinfo *afinfo);
-
-#include <net/flow.h>
-extern void (*ip_nat_decode_session)(struct sk_buff *, struct flowi *);
-
-static inline void
-nf_nat_decode_session(struct sk_buff *skb, struct flowi *fl, u_int8_t family)
-{
-#ifdef CONFIG_NF_NAT_NEEDED
- void (*decodefn)(struct sk_buff *, struct flowi *);
-
- if (family == AF_INET) {
- rcu_read_lock();
- decodefn = rcu_dereference(ip_nat_decode_session);
- if (decodefn)
- decodefn(skb, fl);
- rcu_read_unlock();
- }
-#endif
-}
-
-#ifdef CONFIG_PROC_FS
-#include <linux/proc_fs.h>
-extern struct proc_dir_entry *proc_net_netfilter;
-#endif
-
-#else /* !CONFIG_NETFILTER */
-#define NF_HOOK(pf, hook, skb, indev, outdev, okfn) (okfn)(skb)
-#define NF_HOOK_COND(pf, hook, skb, indev, outdev, okfn, cond) (okfn)(skb)
-static inline int nf_hook_thresh(u_int8_t pf, unsigned int hook,
- struct sk_buff *skb,
- struct net_device *indev,
- struct net_device *outdev,
- int (*okfn)(struct sk_buff *), int thresh)
-{
- return okfn(skb);
-}
-static inline int nf_hook(u_int8_t pf, unsigned int hook, struct sk_buff *skb,
- struct net_device *indev, struct net_device *outdev,
- int (*okfn)(struct sk_buff *))
-{
- return 1;
-}
-struct flowi;
-static inline void
-nf_nat_decode_session(struct sk_buff *skb, struct flowi *fl, u_int8_t family)
-{
-}
-#endif /*CONFIG_NETFILTER*/
-
-#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
-extern void (*ip_ct_attach)(struct sk_buff *, struct sk_buff *) __rcu;
-extern void nf_ct_attach(struct sk_buff *, struct sk_buff *);
-extern void (*nf_ct_destroy)(struct nf_conntrack *) __rcu;
-#else
-static inline void nf_ct_attach(struct sk_buff *new, struct sk_buff *skb) {}
-#endif
-
-#endif /*__KERNEL__*/
-#endif /*__LINUX_NETFILTER_H*/
diff --git a/ANDROID_3.4.5/include/linux/netfilter/Kbuild b/ANDROID_3.4.5/include/linux/netfilter/Kbuild
deleted file mode 100644
index 16970363..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/Kbuild
+++ /dev/null
@@ -1,77 +0,0 @@
-header-y += ipset/
-
-header-y += nf_conntrack_common.h
-header-y += nf_conntrack_ftp.h
-header-y += nf_conntrack_sctp.h
-header-y += nf_conntrack_tcp.h
-header-y += nf_conntrack_tuple_common.h
-header-y += nf_nat.h
-header-y += nfnetlink.h
-header-y += nfnetlink_acct.h
-header-y += nfnetlink_compat.h
-header-y += nfnetlink_conntrack.h
-header-y += nfnetlink_cttimeout.h
-header-y += nfnetlink_log.h
-header-y += nfnetlink_queue.h
-header-y += x_tables.h
-header-y += xt_AUDIT.h
-header-y += xt_CHECKSUM.h
-header-y += xt_CLASSIFY.h
-header-y += xt_CONNMARK.h
-header-y += xt_CONNSECMARK.h
-header-y += xt_CT.h
-header-y += xt_DSCP.h
-header-y += xt_IDLETIMER.h
-header-y += xt_LED.h
-header-y += xt_LOG.h
-header-y += xt_MARK.h
-header-y += xt_nfacct.h
-header-y += xt_NFLOG.h
-header-y += xt_NFQUEUE.h
-header-y += xt_RATEEST.h
-header-y += xt_SECMARK.h
-header-y += xt_TCPMSS.h
-header-y += xt_TCPOPTSTRIP.h
-header-y += xt_TEE.h
-header-y += xt_TPROXY.h
-header-y += xt_addrtype.h
-header-y += xt_cluster.h
-header-y += xt_comment.h
-header-y += xt_connbytes.h
-header-y += xt_connlimit.h
-header-y += xt_connmark.h
-header-y += xt_conntrack.h
-header-y += xt_cpu.h
-header-y += xt_dccp.h
-header-y += xt_devgroup.h
-header-y += xt_dscp.h
-header-y += xt_ecn.h
-header-y += xt_esp.h
-header-y += xt_hashlimit.h
-header-y += xt_helper.h
-header-y += xt_iprange.h
-header-y += xt_ipvs.h
-header-y += xt_length.h
-header-y += xt_limit.h
-header-y += xt_mac.h
-header-y += xt_mark.h
-header-y += xt_multiport.h
-header-y += xt_osf.h
-header-y += xt_owner.h
-header-y += xt_physdev.h
-header-y += xt_pkttype.h
-header-y += xt_policy.h
-header-y += xt_quota.h
-header-y += xt_rateest.h
-header-y += xt_realm.h
-header-y += xt_recent.h
-header-y += xt_set.h
-header-y += xt_sctp.h
-header-y += xt_socket.h
-header-y += xt_state.h
-header-y += xt_statistic.h
-header-y += xt_string.h
-header-y += xt_tcpmss.h
-header-y += xt_tcpudp.h
-header-y += xt_time.h
-header-y += xt_u32.h
diff --git a/ANDROID_3.4.5/include/linux/netfilter/ipset/Kbuild b/ANDROID_3.4.5/include/linux/netfilter/ipset/Kbuild
deleted file mode 100644
index 601fe71d..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/ipset/Kbuild
+++ /dev/null
@@ -1,4 +0,0 @@
-header-y += ip_set.h
-header-y += ip_set_bitmap.h
-header-y += ip_set_hash.h
-header-y += ip_set_list.h
diff --git a/ANDROID_3.4.5/include/linux/netfilter/ipset/ip_set.h b/ANDROID_3.4.5/include/linux/netfilter/ipset/ip_set.h
deleted file mode 100644
index 2f8e18a2..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/ipset/ip_set.h
+++ /dev/null
@@ -1,489 +0,0 @@
-#ifndef _IP_SET_H
-#define _IP_SET_H
-
-/* Copyright (C) 2000-2002 Joakim Axelsson <gozem@linux.nu>
- * Patrick Schaaf <bof@bof.de>
- * Martin Josefsson <gandalf@wlug.westbo.se>
- * Copyright (C) 2003-2011 Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
- *
- * 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/types.h>
-
-/* The protocol version */
-#define IPSET_PROTOCOL 6
-
-/* The max length of strings including NUL: set and type identifiers */
-#define IPSET_MAXNAMELEN 32
-
-/* Message types and commands */
-enum ipset_cmd {
- IPSET_CMD_NONE,
- IPSET_CMD_PROTOCOL, /* 1: Return protocol version */
- IPSET_CMD_CREATE, /* 2: Create a new (empty) set */
- IPSET_CMD_DESTROY, /* 3: Destroy a (empty) set */
- IPSET_CMD_FLUSH, /* 4: Remove all elements from a set */
- IPSET_CMD_RENAME, /* 5: Rename a set */
- IPSET_CMD_SWAP, /* 6: Swap two sets */
- IPSET_CMD_LIST, /* 7: List sets */
- IPSET_CMD_SAVE, /* 8: Save sets */
- IPSET_CMD_ADD, /* 9: Add an element to a set */
- IPSET_CMD_DEL, /* 10: Delete an element from a set */
- IPSET_CMD_TEST, /* 11: Test an element in a set */
- IPSET_CMD_HEADER, /* 12: Get set header data only */
- IPSET_CMD_TYPE, /* 13: Get set type */
- IPSET_MSG_MAX, /* Netlink message commands */
-
- /* Commands in userspace: */
- IPSET_CMD_RESTORE = IPSET_MSG_MAX, /* 14: Enter restore mode */
- IPSET_CMD_HELP, /* 15: Get help */
- IPSET_CMD_VERSION, /* 16: Get program version */
- IPSET_CMD_QUIT, /* 17: Quit from interactive mode */
-
- IPSET_CMD_MAX,
-
- IPSET_CMD_COMMIT = IPSET_CMD_MAX, /* 18: Commit buffered commands */
-};
-
-/* Attributes at command level */
-enum {
- IPSET_ATTR_UNSPEC,
- IPSET_ATTR_PROTOCOL, /* 1: Protocol version */
- IPSET_ATTR_SETNAME, /* 2: Name of the set */
- IPSET_ATTR_TYPENAME, /* 3: Typename */
- IPSET_ATTR_SETNAME2 = IPSET_ATTR_TYPENAME, /* Setname at rename/swap */
- IPSET_ATTR_REVISION, /* 4: Settype revision */
- IPSET_ATTR_FAMILY, /* 5: Settype family */
- IPSET_ATTR_FLAGS, /* 6: Flags at command level */
- IPSET_ATTR_DATA, /* 7: Nested attributes */
- IPSET_ATTR_ADT, /* 8: Multiple data containers */
- IPSET_ATTR_LINENO, /* 9: Restore lineno */
- IPSET_ATTR_PROTOCOL_MIN, /* 10: Minimal supported version number */
- IPSET_ATTR_REVISION_MIN = IPSET_ATTR_PROTOCOL_MIN, /* type rev min */
- __IPSET_ATTR_CMD_MAX,
-};
-#define IPSET_ATTR_CMD_MAX (__IPSET_ATTR_CMD_MAX - 1)
-
-/* CADT specific attributes */
-enum {
- IPSET_ATTR_IP = IPSET_ATTR_UNSPEC + 1,
- IPSET_ATTR_IP_FROM = IPSET_ATTR_IP,
- IPSET_ATTR_IP_TO, /* 2 */
- IPSET_ATTR_CIDR, /* 3 */
- IPSET_ATTR_PORT, /* 4 */
- IPSET_ATTR_PORT_FROM = IPSET_ATTR_PORT,
- IPSET_ATTR_PORT_TO, /* 5 */
- IPSET_ATTR_TIMEOUT, /* 6 */
- IPSET_ATTR_PROTO, /* 7 */
- IPSET_ATTR_CADT_FLAGS, /* 8 */
- IPSET_ATTR_CADT_LINENO = IPSET_ATTR_LINENO, /* 9 */
- /* Reserve empty slots */
- IPSET_ATTR_CADT_MAX = 16,
- /* Create-only specific attributes */
- IPSET_ATTR_GC,
- IPSET_ATTR_HASHSIZE,
- IPSET_ATTR_MAXELEM,
- IPSET_ATTR_NETMASK,
- IPSET_ATTR_PROBES,
- IPSET_ATTR_RESIZE,
- IPSET_ATTR_SIZE,
- /* Kernel-only */
- IPSET_ATTR_ELEMENTS,
- IPSET_ATTR_REFERENCES,
- IPSET_ATTR_MEMSIZE,
-
- __IPSET_ATTR_CREATE_MAX,
-};
-#define IPSET_ATTR_CREATE_MAX (__IPSET_ATTR_CREATE_MAX - 1)
-
-/* ADT specific attributes */
-enum {
- IPSET_ATTR_ETHER = IPSET_ATTR_CADT_MAX + 1,
- IPSET_ATTR_NAME,
- IPSET_ATTR_NAMEREF,
- IPSET_ATTR_IP2,
- IPSET_ATTR_CIDR2,
- IPSET_ATTR_IP2_TO,
- IPSET_ATTR_IFACE,
- __IPSET_ATTR_ADT_MAX,
-};
-#define IPSET_ATTR_ADT_MAX (__IPSET_ATTR_ADT_MAX - 1)
-
-/* IP specific attributes */
-enum {
- IPSET_ATTR_IPADDR_IPV4 = IPSET_ATTR_UNSPEC + 1,
- IPSET_ATTR_IPADDR_IPV6,
- __IPSET_ATTR_IPADDR_MAX,
-};
-#define IPSET_ATTR_IPADDR_MAX (__IPSET_ATTR_IPADDR_MAX - 1)
-
-/* Error codes */
-enum ipset_errno {
- IPSET_ERR_PRIVATE = 4096,
- IPSET_ERR_PROTOCOL,
- IPSET_ERR_FIND_TYPE,
- IPSET_ERR_MAX_SETS,
- IPSET_ERR_BUSY,
- IPSET_ERR_EXIST_SETNAME2,
- IPSET_ERR_TYPE_MISMATCH,
- IPSET_ERR_EXIST,
- IPSET_ERR_INVALID_CIDR,
- IPSET_ERR_INVALID_NETMASK,
- IPSET_ERR_INVALID_FAMILY,
- IPSET_ERR_TIMEOUT,
- IPSET_ERR_REFERENCED,
- IPSET_ERR_IPADDR_IPV4,
- IPSET_ERR_IPADDR_IPV6,
-
- /* Type specific error codes */
- IPSET_ERR_TYPE_SPECIFIC = 4352,
-};
-
-/* Flags at command level */
-enum ipset_cmd_flags {
- IPSET_FLAG_BIT_EXIST = 0,
- IPSET_FLAG_EXIST = (1 << IPSET_FLAG_BIT_EXIST),
- IPSET_FLAG_BIT_LIST_SETNAME = 1,
- IPSET_FLAG_LIST_SETNAME = (1 << IPSET_FLAG_BIT_LIST_SETNAME),
- IPSET_FLAG_BIT_LIST_HEADER = 2,
- IPSET_FLAG_LIST_HEADER = (1 << IPSET_FLAG_BIT_LIST_HEADER),
- IPSET_FLAG_CMD_MAX = 15, /* Lower half */
-};
-
-/* Flags at CADT attribute level */
-enum ipset_cadt_flags {
- IPSET_FLAG_BIT_BEFORE = 0,
- IPSET_FLAG_BEFORE = (1 << IPSET_FLAG_BIT_BEFORE),
- IPSET_FLAG_BIT_PHYSDEV = 1,
- IPSET_FLAG_PHYSDEV = (1 << IPSET_FLAG_BIT_PHYSDEV),
- IPSET_FLAG_BIT_NOMATCH = 2,
- IPSET_FLAG_NOMATCH = (1 << IPSET_FLAG_BIT_NOMATCH),
- IPSET_FLAG_CADT_MAX = 15, /* Upper half */
-};
-
-/* Commands with settype-specific attributes */
-enum ipset_adt {
- IPSET_ADD,
- IPSET_DEL,
- IPSET_TEST,
- IPSET_ADT_MAX,
- IPSET_CREATE = IPSET_ADT_MAX,
- IPSET_CADT_MAX,
-};
-
-/* Sets are identified by an index in kernel space. Tweak with ip_set_id_t
- * and IPSET_INVALID_ID if you want to increase the max number of sets.
- */
-typedef __u16 ip_set_id_t;
-
-#define IPSET_INVALID_ID 65535
-
-enum ip_set_dim {
- IPSET_DIM_ZERO = 0,
- IPSET_DIM_ONE,
- IPSET_DIM_TWO,
- IPSET_DIM_THREE,
- /* Max dimension in elements.
- * If changed, new revision of iptables match/target is required.
- */
- IPSET_DIM_MAX = 6,
-};
-
-/* Option flags for kernel operations */
-enum ip_set_kopt {
- IPSET_INV_MATCH = (1 << IPSET_DIM_ZERO),
- IPSET_DIM_ONE_SRC = (1 << IPSET_DIM_ONE),
- IPSET_DIM_TWO_SRC = (1 << IPSET_DIM_TWO),
- IPSET_DIM_THREE_SRC = (1 << IPSET_DIM_THREE),
-};
-
-#ifdef __KERNEL__
-#include <linux/ip.h>
-#include <linux/ipv6.h>
-#include <linux/netlink.h>
-#include <linux/netfilter.h>
-#include <linux/netfilter/x_tables.h>
-#include <linux/vmalloc.h>
-#include <net/netlink.h>
-
-/* Set features */
-enum ip_set_feature {
- IPSET_TYPE_IP_FLAG = 0,
- IPSET_TYPE_IP = (1 << IPSET_TYPE_IP_FLAG),
- IPSET_TYPE_PORT_FLAG = 1,
- IPSET_TYPE_PORT = (1 << IPSET_TYPE_PORT_FLAG),
- IPSET_TYPE_MAC_FLAG = 2,
- IPSET_TYPE_MAC = (1 << IPSET_TYPE_MAC_FLAG),
- IPSET_TYPE_IP2_FLAG = 3,
- IPSET_TYPE_IP2 = (1 << IPSET_TYPE_IP2_FLAG),
- IPSET_TYPE_NAME_FLAG = 4,
- IPSET_TYPE_NAME = (1 << IPSET_TYPE_NAME_FLAG),
- IPSET_TYPE_IFACE_FLAG = 5,
- IPSET_TYPE_IFACE = (1 << IPSET_TYPE_IFACE_FLAG),
- /* Strictly speaking not a feature, but a flag for dumping:
- * this settype must be dumped last */
- IPSET_DUMP_LAST_FLAG = 7,
- IPSET_DUMP_LAST = (1 << IPSET_DUMP_LAST_FLAG),
-};
-
-struct ip_set;
-
-typedef int (*ipset_adtfn)(struct ip_set *set, void *value,
- u32 timeout, u32 flags);
-
-/* Kernel API function options */
-struct ip_set_adt_opt {
- u8 family; /* Actual protocol family */
- u8 dim; /* Dimension of match/target */
- u8 flags; /* Direction and negation flags */
- u32 cmdflags; /* Command-like flags */
- u32 timeout; /* Timeout value */
-};
-
-/* Set type, variant-specific part */
-struct ip_set_type_variant {
- /* Kernelspace: test/add/del entries
- * returns negative error code,
- * zero for no match/success to add/delete
- * positive for matching element */
- int (*kadt)(struct ip_set *set, const struct sk_buff * skb,
- const struct xt_action_param *par,
- enum ipset_adt adt, const struct ip_set_adt_opt *opt);
-
- /* Userspace: test/add/del entries
- * returns negative error code,
- * zero for no match/success to add/delete
- * positive for matching element */
- int (*uadt)(struct ip_set *set, struct nlattr *tb[],
- enum ipset_adt adt, u32 *lineno, u32 flags, bool retried);
-
- /* Low level add/del/test functions */
- ipset_adtfn adt[IPSET_ADT_MAX];
-
- /* When adding entries and set is full, try to resize the set */
- int (*resize)(struct ip_set *set, bool retried);
- /* Destroy the set */
- void (*destroy)(struct ip_set *set);
- /* Flush the elements */
- void (*flush)(struct ip_set *set);
- /* Expire entries before listing */
- void (*expire)(struct ip_set *set);
- /* List set header data */
- int (*head)(struct ip_set *set, struct sk_buff *skb);
- /* List elements */
- int (*list)(const struct ip_set *set, struct sk_buff *skb,
- struct netlink_callback *cb);
-
- /* Return true if "b" set is the same as "a"
- * according to the create set parameters */
- bool (*same_set)(const struct ip_set *a, const struct ip_set *b);
-};
-
-/* The core set type structure */
-struct ip_set_type {
- struct list_head list;
-
- /* Typename */
- char name[IPSET_MAXNAMELEN];
- /* Protocol version */
- u8 protocol;
- /* Set features to control swapping */
- u8 features;
- /* Set type dimension */
- u8 dimension;
- /*
- * Supported family: may be NFPROTO_UNSPEC for both
- * NFPROTO_IPV4/NFPROTO_IPV6.
- */
- u8 family;
- /* Type revisions */
- u8 revision_min, revision_max;
-
- /* Create set */
- int (*create)(struct ip_set *set, struct nlattr *tb[], u32 flags);
-
- /* Attribute policies */
- const struct nla_policy create_policy[IPSET_ATTR_CREATE_MAX + 1];
- const struct nla_policy adt_policy[IPSET_ATTR_ADT_MAX + 1];
-
- /* Set this to THIS_MODULE if you are a module, otherwise NULL */
- struct module *me;
-};
-
-/* register and unregister set type */
-extern int ip_set_type_register(struct ip_set_type *set_type);
-extern void ip_set_type_unregister(struct ip_set_type *set_type);
-
-/* A generic IP set */
-struct ip_set {
- /* The name of the set */
- char name[IPSET_MAXNAMELEN];
- /* Lock protecting the set data */
- rwlock_t lock;
- /* References to the set */
- u32 ref;
- /* The core set type */
- struct ip_set_type *type;
- /* The type variant doing the real job */
- const struct ip_set_type_variant *variant;
- /* The actual INET family of the set */
- u8 family;
- /* The type revision */
- u8 revision;
- /* The type specific data */
- void *data;
-};
-
-/* register and unregister set references */
-extern ip_set_id_t ip_set_get_byname(const char *name, struct ip_set **set);
-extern void ip_set_put_byindex(ip_set_id_t index);
-extern const char *ip_set_name_byindex(ip_set_id_t index);
-extern ip_set_id_t ip_set_nfnl_get(const char *name);
-extern ip_set_id_t ip_set_nfnl_get_byindex(ip_set_id_t index);
-extern void ip_set_nfnl_put(ip_set_id_t index);
-
-/* API for iptables set match, and SET target */
-
-extern int ip_set_add(ip_set_id_t id, const struct sk_buff *skb,
- const struct xt_action_param *par,
- const struct ip_set_adt_opt *opt);
-extern int ip_set_del(ip_set_id_t id, const struct sk_buff *skb,
- const struct xt_action_param *par,
- const struct ip_set_adt_opt *opt);
-extern int ip_set_test(ip_set_id_t id, const struct sk_buff *skb,
- const struct xt_action_param *par,
- const struct ip_set_adt_opt *opt);
-
-/* Utility functions */
-extern void *ip_set_alloc(size_t size);
-extern void ip_set_free(void *members);
-extern int ip_set_get_ipaddr4(struct nlattr *nla, __be32 *ipaddr);
-extern int ip_set_get_ipaddr6(struct nlattr *nla, union nf_inet_addr *ipaddr);
-
-static inline int
-ip_set_get_hostipaddr4(struct nlattr *nla, u32 *ipaddr)
-{
- __be32 ip;
- int ret = ip_set_get_ipaddr4(nla, &ip);
-
- if (ret)
- return ret;
- *ipaddr = ntohl(ip);
- return 0;
-}
-
-/* Ignore IPSET_ERR_EXIST errors if asked to do so? */
-static inline bool
-ip_set_eexist(int ret, u32 flags)
-{
- return ret == -IPSET_ERR_EXIST && (flags & IPSET_FLAG_EXIST);
-}
-
-/* Check the NLA_F_NET_BYTEORDER flag */
-static inline bool
-ip_set_attr_netorder(struct nlattr *tb[], int type)
-{
- return tb[type] && (tb[type]->nla_type & NLA_F_NET_BYTEORDER);
-}
-
-static inline bool
-ip_set_optattr_netorder(struct nlattr *tb[], int type)
-{
- return !tb[type] || (tb[type]->nla_type & NLA_F_NET_BYTEORDER);
-}
-
-/* Useful converters */
-static inline u32
-ip_set_get_h32(const struct nlattr *attr)
-{
- return ntohl(nla_get_be32(attr));
-}
-
-static inline u16
-ip_set_get_h16(const struct nlattr *attr)
-{
- return ntohs(nla_get_be16(attr));
-}
-
-#define ipset_nest_start(skb, attr) nla_nest_start(skb, attr | NLA_F_NESTED)
-#define ipset_nest_end(skb, start) nla_nest_end(skb, start)
-
-#define NLA_PUT_IPADDR4(skb, type, ipaddr) \
-do { \
- struct nlattr *__nested = ipset_nest_start(skb, type); \
- \
- if (!__nested) \
- goto nla_put_failure; \
- NLA_PUT_NET32(skb, IPSET_ATTR_IPADDR_IPV4, ipaddr); \
- ipset_nest_end(skb, __nested); \
-} while (0)
-
-#define NLA_PUT_IPADDR6(skb, type, ipaddrptr) \
-do { \
- struct nlattr *__nested = ipset_nest_start(skb, type); \
- \
- if (!__nested) \
- goto nla_put_failure; \
- NLA_PUT(skb, IPSET_ATTR_IPADDR_IPV6, \
- sizeof(struct in6_addr), ipaddrptr); \
- ipset_nest_end(skb, __nested); \
-} while (0)
-
-/* Get address from skbuff */
-static inline __be32
-ip4addr(const struct sk_buff *skb, bool src)
-{
- return src ? ip_hdr(skb)->saddr : ip_hdr(skb)->daddr;
-}
-
-static inline void
-ip4addrptr(const struct sk_buff *skb, bool src, __be32 *addr)
-{
- *addr = src ? ip_hdr(skb)->saddr : ip_hdr(skb)->daddr;
-}
-
-static inline void
-ip6addrptr(const struct sk_buff *skb, bool src, struct in6_addr *addr)
-{
- memcpy(addr, src ? &ipv6_hdr(skb)->saddr : &ipv6_hdr(skb)->daddr,
- sizeof(*addr));
-}
-
-/* Calculate the bytes required to store the inclusive range of a-b */
-static inline int
-bitmap_bytes(u32 a, u32 b)
-{
- return 4 * ((((b - a + 8) / 8) + 3) / 4);
-}
-
-#endif /* __KERNEL__ */
-
-/* Interface to iptables/ip6tables */
-
-#define SO_IP_SET 83
-
-union ip_set_name_index {
- char name[IPSET_MAXNAMELEN];
- ip_set_id_t index;
-};
-
-#define IP_SET_OP_GET_BYNAME 0x00000006 /* Get set index by name */
-struct ip_set_req_get_set {
- unsigned op;
- unsigned version;
- union ip_set_name_index set;
-};
-
-#define IP_SET_OP_GET_BYINDEX 0x00000007 /* Get set name by index */
-/* Uses ip_set_req_get_set */
-
-#define IP_SET_OP_VERSION 0x00000100 /* Ask kernel version */
-struct ip_set_req_version {
- unsigned op;
- unsigned version;
-};
-
-#endif /*_IP_SET_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/ipset/ip_set_ahash.h b/ANDROID_3.4.5/include/linux/netfilter/ipset/ip_set_ahash.h
deleted file mode 100644
index 230a290e..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/ipset/ip_set_ahash.h
+++ /dev/null
@@ -1,1214 +0,0 @@
-#ifndef _IP_SET_AHASH_H
-#define _IP_SET_AHASH_H
-
-#include <linux/rcupdate.h>
-#include <linux/jhash.h>
-#include <linux/netfilter/ipset/ip_set_timeout.h>
-
-#define CONCAT(a, b, c) a##b##c
-#define TOKEN(a, b, c) CONCAT(a, b, c)
-
-#define type_pf_next TOKEN(TYPE, PF, _elem)
-
-/* Hashing which uses arrays to resolve clashing. The hash table is resized
- * (doubled) when searching becomes too long.
- * Internally jhash is used with the assumption that the size of the
- * stored data is a multiple of sizeof(u32). If storage supports timeout,
- * the timeout field must be the last one in the data structure - that field
- * is ignored when computing the hash key.
- *
- * Readers and resizing
- *
- * Resizing can be triggered by userspace command only, and those
- * are serialized by the nfnl mutex. During resizing the set is
- * read-locked, so the only possible concurrent operations are
- * the kernel side readers. Those must be protected by proper RCU locking.
- */
-
-/* Number of elements to store in an initial array block */
-#define AHASH_INIT_SIZE 4
-/* Max number of elements to store in an array block */
-#define AHASH_MAX_SIZE (3*AHASH_INIT_SIZE)
-
-/* Max number of elements can be tuned */
-#ifdef IP_SET_HASH_WITH_MULTI
-#define AHASH_MAX(h) ((h)->ahash_max)
-
-static inline u8
-tune_ahash_max(u8 curr, u32 multi)
-{
- u32 n;
-
- if (multi < curr)
- return curr;
-
- n = curr + AHASH_INIT_SIZE;
- /* Currently, at listing one hash bucket must fit into a message.
- * Therefore we have a hard limit here.
- */
- return n > curr && n <= 64 ? n : curr;
-}
-#define TUNE_AHASH_MAX(h, multi) \
- ((h)->ahash_max = tune_ahash_max((h)->ahash_max, multi))
-#else
-#define AHASH_MAX(h) AHASH_MAX_SIZE
-#define TUNE_AHASH_MAX(h, multi)
-#endif
-
-/* A hash bucket */
-struct hbucket {
- void *value; /* the array of the values */
- u8 size; /* size of the array */
- u8 pos; /* position of the first free entry */
-};
-
-/* The hash table: the table size stored here in order to make resizing easy */
-struct htable {
- u8 htable_bits; /* size of hash table == 2^htable_bits */
- struct hbucket bucket[0]; /* hashtable buckets */
-};
-
-#define hbucket(h, i) (&((h)->bucket[i]))
-
-/* Book-keeping of the prefixes added to the set */
-struct ip_set_hash_nets {
- u8 cidr; /* the different cidr values in the set */
- u32 nets; /* number of elements per cidr */
-};
-
-/* The generic ip_set hash structure */
-struct ip_set_hash {
- struct htable *table; /* the hash table */
- u32 maxelem; /* max elements in the hash */
- u32 elements; /* current element (vs timeout) */
- u32 initval; /* random jhash init value */
- u32 timeout; /* timeout value, if enabled */
- struct timer_list gc; /* garbage collection when timeout enabled */
- struct type_pf_next next; /* temporary storage for uadd */
-#ifdef IP_SET_HASH_WITH_MULTI
- u8 ahash_max; /* max elements in an array block */
-#endif
-#ifdef IP_SET_HASH_WITH_NETMASK
- u8 netmask; /* netmask value for subnets to store */
-#endif
-#ifdef IP_SET_HASH_WITH_RBTREE
- struct rb_root rbtree;
-#endif
-#ifdef IP_SET_HASH_WITH_NETS
- struct ip_set_hash_nets nets[0]; /* book-keeping of prefixes */
-#endif
-};
-
-static size_t
-htable_size(u8 hbits)
-{
- size_t hsize;
-
- /* We must fit both into u32 in jhash and size_t */
- if (hbits > 31)
- return 0;
- hsize = jhash_size(hbits);
- if ((((size_t)-1) - sizeof(struct htable))/sizeof(struct hbucket)
- < hsize)
- return 0;
-
- return hsize * sizeof(struct hbucket) + sizeof(struct htable);
-}
-
-/* Compute htable_bits from the user input parameter hashsize */
-static u8
-htable_bits(u32 hashsize)
-{
- /* Assume that hashsize == 2^htable_bits */
- u8 bits = fls(hashsize - 1);
- if (jhash_size(bits) != hashsize)
- /* Round up to the first 2^n value */
- bits = fls(hashsize);
-
- return bits;
-}
-
-#ifdef IP_SET_HASH_WITH_NETS
-#ifdef IP_SET_HASH_WITH_NETS_PACKED
-/* When cidr is packed with nomatch, cidr - 1 is stored in the entry */
-#define CIDR(cidr) (cidr + 1)
-#else
-#define CIDR(cidr) (cidr)
-#endif
-
-#define SET_HOST_MASK(family) (family == AF_INET ? 32 : 128)
-
-/* Network cidr size book keeping when the hash stores different
- * sized networks */
-static void
-add_cidr(struct ip_set_hash *h, u8 cidr, u8 host_mask)
-{
- u8 i;
-
- ++h->nets[cidr-1].nets;
-
- pr_debug("add_cidr added %u: %u\n", cidr, h->nets[cidr-1].nets);
-
- if (h->nets[cidr-1].nets > 1)
- return;
-
- /* New cidr size */
- for (i = 0; i < host_mask && h->nets[i].cidr; i++) {
- /* Add in increasing prefix order, so larger cidr first */
- if (h->nets[i].cidr < cidr)
- swap(h->nets[i].cidr, cidr);
- }
- if (i < host_mask)
- h->nets[i].cidr = cidr;
-}
-
-static void
-del_cidr(struct ip_set_hash *h, u8 cidr, u8 host_mask)
-{
- u8 i;
-
- --h->nets[cidr-1].nets;
-
- pr_debug("del_cidr deleted %u: %u\n", cidr, h->nets[cidr-1].nets);
-
- if (h->nets[cidr-1].nets != 0)
- return;
-
- /* All entries with this cidr size deleted, so cleanup h->cidr[] */
- for (i = 0; i < host_mask - 1 && h->nets[i].cidr; i++) {
- if (h->nets[i].cidr == cidr)
- h->nets[i].cidr = cidr = h->nets[i+1].cidr;
- }
- h->nets[i - 1].cidr = 0;
-}
-#endif
-
-/* Destroy the hashtable part of the set */
-static void
-ahash_destroy(struct htable *t)
-{
- struct hbucket *n;
- u32 i;
-
- for (i = 0; i < jhash_size(t->htable_bits); i++) {
- n = hbucket(t, i);
- if (n->size)
- /* FIXME: use slab cache */
- kfree(n->value);
- }
-
- ip_set_free(t);
-}
-
-/* Calculate the actual memory size of the set data */
-static size_t
-ahash_memsize(const struct ip_set_hash *h, size_t dsize, u8 host_mask)
-{
- u32 i;
- struct htable *t = h->table;
- size_t memsize = sizeof(*h)
- + sizeof(*t)
-#ifdef IP_SET_HASH_WITH_NETS
- + sizeof(struct ip_set_hash_nets) * host_mask
-#endif
- + jhash_size(t->htable_bits) * sizeof(struct hbucket);
-
- for (i = 0; i < jhash_size(t->htable_bits); i++)
- memsize += t->bucket[i].size * dsize;
-
- return memsize;
-}
-
-/* Flush a hash type of set: destroy all elements */
-static void
-ip_set_hash_flush(struct ip_set *set)
-{
- struct ip_set_hash *h = set->data;
- struct htable *t = h->table;
- struct hbucket *n;
- u32 i;
-
- for (i = 0; i < jhash_size(t->htable_bits); i++) {
- n = hbucket(t, i);
- if (n->size) {
- n->size = n->pos = 0;
- /* FIXME: use slab cache */
- kfree(n->value);
- }
- }
-#ifdef IP_SET_HASH_WITH_NETS
- memset(h->nets, 0, sizeof(struct ip_set_hash_nets)
- * SET_HOST_MASK(set->family));
-#endif
- h->elements = 0;
-}
-
-/* Destroy a hash type of set */
-static void
-ip_set_hash_destroy(struct ip_set *set)
-{
- struct ip_set_hash *h = set->data;
-
- if (with_timeout(h->timeout))
- del_timer_sync(&h->gc);
-
- ahash_destroy(h->table);
-#ifdef IP_SET_HASH_WITH_RBTREE
- rbtree_destroy(&h->rbtree);
-#endif
- kfree(h);
-
- set->data = NULL;
-}
-
-#endif /* _IP_SET_AHASH_H */
-
-#ifndef HKEY_DATALEN
-#define HKEY_DATALEN sizeof(struct type_pf_elem)
-#endif
-
-#define HKEY(data, initval, htable_bits) \
-(jhash2((u32 *)(data), HKEY_DATALEN/sizeof(u32), initval) \
- & jhash_mask(htable_bits))
-
-#define CONCAT(a, b, c) a##b##c
-#define TOKEN(a, b, c) CONCAT(a, b, c)
-
-/* Type/family dependent function prototypes */
-
-#define type_pf_data_equal TOKEN(TYPE, PF, _data_equal)
-#define type_pf_data_isnull TOKEN(TYPE, PF, _data_isnull)
-#define type_pf_data_copy TOKEN(TYPE, PF, _data_copy)
-#define type_pf_data_zero_out TOKEN(TYPE, PF, _data_zero_out)
-#define type_pf_data_netmask TOKEN(TYPE, PF, _data_netmask)
-#define type_pf_data_list TOKEN(TYPE, PF, _data_list)
-#define type_pf_data_tlist TOKEN(TYPE, PF, _data_tlist)
-#define type_pf_data_next TOKEN(TYPE, PF, _data_next)
-#define type_pf_data_flags TOKEN(TYPE, PF, _data_flags)
-#ifdef IP_SET_HASH_WITH_NETS
-#define type_pf_data_match TOKEN(TYPE, PF, _data_match)
-#else
-#define type_pf_data_match(d) 1
-#endif
-
-#define type_pf_elem TOKEN(TYPE, PF, _elem)
-#define type_pf_telem TOKEN(TYPE, PF, _telem)
-#define type_pf_data_timeout TOKEN(TYPE, PF, _data_timeout)
-#define type_pf_data_expired TOKEN(TYPE, PF, _data_expired)
-#define type_pf_data_timeout_set TOKEN(TYPE, PF, _data_timeout_set)
-
-#define type_pf_elem_add TOKEN(TYPE, PF, _elem_add)
-#define type_pf_add TOKEN(TYPE, PF, _add)
-#define type_pf_del TOKEN(TYPE, PF, _del)
-#define type_pf_test_cidrs TOKEN(TYPE, PF, _test_cidrs)
-#define type_pf_test TOKEN(TYPE, PF, _test)
-
-#define type_pf_elem_tadd TOKEN(TYPE, PF, _elem_tadd)
-#define type_pf_del_telem TOKEN(TYPE, PF, _ahash_del_telem)
-#define type_pf_expire TOKEN(TYPE, PF, _expire)
-#define type_pf_tadd TOKEN(TYPE, PF, _tadd)
-#define type_pf_tdel TOKEN(TYPE, PF, _tdel)
-#define type_pf_ttest_cidrs TOKEN(TYPE, PF, _ahash_ttest_cidrs)
-#define type_pf_ttest TOKEN(TYPE, PF, _ahash_ttest)
-
-#define type_pf_resize TOKEN(TYPE, PF, _resize)
-#define type_pf_tresize TOKEN(TYPE, PF, _tresize)
-#define type_pf_flush ip_set_hash_flush
-#define type_pf_destroy ip_set_hash_destroy
-#define type_pf_head TOKEN(TYPE, PF, _head)
-#define type_pf_list TOKEN(TYPE, PF, _list)
-#define type_pf_tlist TOKEN(TYPE, PF, _tlist)
-#define type_pf_same_set TOKEN(TYPE, PF, _same_set)
-#define type_pf_kadt TOKEN(TYPE, PF, _kadt)
-#define type_pf_uadt TOKEN(TYPE, PF, _uadt)
-#define type_pf_gc TOKEN(TYPE, PF, _gc)
-#define type_pf_gc_init TOKEN(TYPE, PF, _gc_init)
-#define type_pf_variant TOKEN(TYPE, PF, _variant)
-#define type_pf_tvariant TOKEN(TYPE, PF, _tvariant)
-
-/* Flavour without timeout */
-
-/* Get the ith element from the array block n */
-#define ahash_data(n, i) \
- ((struct type_pf_elem *)((n)->value) + (i))
-
-/* Add an element to the hash table when resizing the set:
- * we spare the maintenance of the internal counters. */
-static int
-type_pf_elem_add(struct hbucket *n, const struct type_pf_elem *value,
- u8 ahash_max, u32 cadt_flags)
-{
- struct type_pf_elem *data;
-
- if (n->pos >= n->size) {
- void *tmp;
-
- if (n->size >= ahash_max)
- /* Trigger rehashing */
- return -EAGAIN;
-
- tmp = kzalloc((n->size + AHASH_INIT_SIZE)
- * sizeof(struct type_pf_elem),
- GFP_ATOMIC);
- if (!tmp)
- return -ENOMEM;
- if (n->size) {
- memcpy(tmp, n->value,
- sizeof(struct type_pf_elem) * n->size);
- kfree(n->value);
- }
- n->value = tmp;
- n->size += AHASH_INIT_SIZE;
- }
- data = ahash_data(n, n->pos++);
- type_pf_data_copy(data, value);
-#ifdef IP_SET_HASH_WITH_NETS
- /* Resizing won't overwrite stored flags */
- if (cadt_flags)
- type_pf_data_flags(data, cadt_flags);
-#endif
- return 0;
-}
-
-/* Resize a hash: create a new hash table with doubling the hashsize
- * and inserting the elements to it. Repeat until we succeed or
- * fail due to memory pressures. */
-static int
-type_pf_resize(struct ip_set *set, bool retried)
-{
- struct ip_set_hash *h = set->data;
- struct htable *t, *orig = h->table;
- u8 htable_bits = orig->htable_bits;
- const struct type_pf_elem *data;
- struct hbucket *n, *m;
- u32 i, j;
- int ret;
-
-retry:
- ret = 0;
- htable_bits++;
- pr_debug("attempt to resize set %s from %u to %u, t %p\n",
- set->name, orig->htable_bits, htable_bits, orig);
- if (!htable_bits) {
- /* In case we have plenty of memory :-) */
- pr_warning("Cannot increase the hashsize of set %s further\n",
- set->name);
- return -IPSET_ERR_HASH_FULL;
- }
- t = ip_set_alloc(sizeof(*t)
- + jhash_size(htable_bits) * sizeof(struct hbucket));
- if (!t)
- return -ENOMEM;
- t->htable_bits = htable_bits;
-
- read_lock_bh(&set->lock);
- for (i = 0; i < jhash_size(orig->htable_bits); i++) {
- n = hbucket(orig, i);
- for (j = 0; j < n->pos; j++) {
- data = ahash_data(n, j);
- m = hbucket(t, HKEY(data, h->initval, htable_bits));
- ret = type_pf_elem_add(m, data, AHASH_MAX(h), 0);
- if (ret < 0) {
- read_unlock_bh(&set->lock);
- ahash_destroy(t);
- if (ret == -EAGAIN)
- goto retry;
- return ret;
- }
- }
- }
-
- rcu_assign_pointer(h->table, t);
- read_unlock_bh(&set->lock);
-
- /* Give time to other readers of the set */
- synchronize_rcu_bh();
-
- pr_debug("set %s resized from %u (%p) to %u (%p)\n", set->name,
- orig->htable_bits, orig, t->htable_bits, t);
- ahash_destroy(orig);
-
- return 0;
-}
-
-static inline void
-type_pf_data_next(struct ip_set_hash *h, const struct type_pf_elem *d);
-
-/* Add an element to a hash and update the internal counters when succeeded,
- * otherwise report the proper error code. */
-static int
-type_pf_add(struct ip_set *set, void *value, u32 timeout, u32 flags)
-{
- struct ip_set_hash *h = set->data;
- struct htable *t;
- const struct type_pf_elem *d = value;
- struct hbucket *n;
- int i, ret = 0;
- u32 key, multi = 0;
- u32 cadt_flags = flags >> 16;
-
- if (h->elements >= h->maxelem) {
- if (net_ratelimit())
- pr_warning("Set %s is full, maxelem %u reached\n",
- set->name, h->maxelem);
- return -IPSET_ERR_HASH_FULL;
- }
-
- rcu_read_lock_bh();
- t = rcu_dereference_bh(h->table);
- key = HKEY(value, h->initval, t->htable_bits);
- n = hbucket(t, key);
- for (i = 0; i < n->pos; i++)
- if (type_pf_data_equal(ahash_data(n, i), d, &multi)) {
-#ifdef IP_SET_HASH_WITH_NETS
- if (flags & IPSET_FLAG_EXIST)
- /* Support overwriting just the flags */
- type_pf_data_flags(ahash_data(n, i),
- cadt_flags);
-#endif
- ret = -IPSET_ERR_EXIST;
- goto out;
- }
- TUNE_AHASH_MAX(h, multi);
- ret = type_pf_elem_add(n, value, AHASH_MAX(h), cadt_flags);
- if (ret != 0) {
- if (ret == -EAGAIN)
- type_pf_data_next(h, d);
- goto out;
- }
-
-#ifdef IP_SET_HASH_WITH_NETS
- add_cidr(h, CIDR(d->cidr), HOST_MASK);
-#endif
- h->elements++;
-out:
- rcu_read_unlock_bh();
- return ret;
-}
-
-/* Delete an element from the hash: swap it with the last element
- * and free up space if possible.
- */
-static int
-type_pf_del(struct ip_set *set, void *value, u32 timeout, u32 flags)
-{
- struct ip_set_hash *h = set->data;
- struct htable *t = h->table;
- const struct type_pf_elem *d = value;
- struct hbucket *n;
- int i;
- struct type_pf_elem *data;
- u32 key, multi = 0;
-
- key = HKEY(value, h->initval, t->htable_bits);
- n = hbucket(t, key);
- for (i = 0; i < n->pos; i++) {
- data = ahash_data(n, i);
- if (!type_pf_data_equal(data, d, &multi))
- continue;
- if (i != n->pos - 1)
- /* Not last one */
- type_pf_data_copy(data, ahash_data(n, n->pos - 1));
-
- n->pos--;
- h->elements--;
-#ifdef IP_SET_HASH_WITH_NETS
- del_cidr(h, CIDR(d->cidr), HOST_MASK);
-#endif
- if (n->pos + AHASH_INIT_SIZE < n->size) {
- void *tmp = kzalloc((n->size - AHASH_INIT_SIZE)
- * sizeof(struct type_pf_elem),
- GFP_ATOMIC);
- if (!tmp)
- return 0;
- n->size -= AHASH_INIT_SIZE;
- memcpy(tmp, n->value,
- n->size * sizeof(struct type_pf_elem));
- kfree(n->value);
- n->value = tmp;
- }
- return 0;
- }
-
- return -IPSET_ERR_EXIST;
-}
-
-#ifdef IP_SET_HASH_WITH_NETS
-
-/* Special test function which takes into account the different network
- * sizes added to the set */
-static int
-type_pf_test_cidrs(struct ip_set *set, struct type_pf_elem *d, u32 timeout)
-{
- struct ip_set_hash *h = set->data;
- struct htable *t = h->table;
- struct hbucket *n;
- const struct type_pf_elem *data;
- int i, j = 0;
- u32 key, multi = 0;
- u8 host_mask = SET_HOST_MASK(set->family);
-
- pr_debug("test by nets\n");
- for (; j < host_mask && h->nets[j].cidr && !multi; j++) {
- type_pf_data_netmask(d, h->nets[j].cidr);
- key = HKEY(d, h->initval, t->htable_bits);
- n = hbucket(t, key);
- for (i = 0; i < n->pos; i++) {
- data = ahash_data(n, i);
- if (type_pf_data_equal(data, d, &multi))
- return type_pf_data_match(data);
- }
- }
- return 0;
-}
-#endif
-
-/* Test whether the element is added to the set */
-static int
-type_pf_test(struct ip_set *set, void *value, u32 timeout, u32 flags)
-{
- struct ip_set_hash *h = set->data;
- struct htable *t = h->table;
- struct type_pf_elem *d = value;
- struct hbucket *n;
- const struct type_pf_elem *data;
- int i;
- u32 key, multi = 0;
-
-#ifdef IP_SET_HASH_WITH_NETS
- /* If we test an IP address and not a network address,
- * try all possible network sizes */
- if (CIDR(d->cidr) == SET_HOST_MASK(set->family))
- return type_pf_test_cidrs(set, d, timeout);
-#endif
-
- key = HKEY(d, h->initval, t->htable_bits);
- n = hbucket(t, key);
- for (i = 0; i < n->pos; i++) {
- data = ahash_data(n, i);
- if (type_pf_data_equal(data, d, &multi))
- return type_pf_data_match(data);
- }
- return 0;
-}
-
-/* Reply a HEADER request: fill out the header part of the set */
-static int
-type_pf_head(struct ip_set *set, struct sk_buff *skb)
-{
- const struct ip_set_hash *h = set->data;
- struct nlattr *nested;
- size_t memsize;
-
- read_lock_bh(&set->lock);
- memsize = ahash_memsize(h, with_timeout(h->timeout)
- ? sizeof(struct type_pf_telem)
- : sizeof(struct type_pf_elem),
- set->family == AF_INET ? 32 : 128);
- read_unlock_bh(&set->lock);
-
- nested = ipset_nest_start(skb, IPSET_ATTR_DATA);
- if (!nested)
- goto nla_put_failure;
- NLA_PUT_NET32(skb, IPSET_ATTR_HASHSIZE,
- htonl(jhash_size(h->table->htable_bits)));
- NLA_PUT_NET32(skb, IPSET_ATTR_MAXELEM, htonl(h->maxelem));
-#ifdef IP_SET_HASH_WITH_NETMASK
- if (h->netmask != HOST_MASK)
- NLA_PUT_U8(skb, IPSET_ATTR_NETMASK, h->netmask);
-#endif
- NLA_PUT_NET32(skb, IPSET_ATTR_REFERENCES, htonl(set->ref - 1));
- NLA_PUT_NET32(skb, IPSET_ATTR_MEMSIZE, htonl(memsize));
- if (with_timeout(h->timeout))
- NLA_PUT_NET32(skb, IPSET_ATTR_TIMEOUT, htonl(h->timeout));
- ipset_nest_end(skb, nested);
-
- return 0;
-nla_put_failure:
- return -EMSGSIZE;
-}
-
-/* Reply a LIST/SAVE request: dump the elements of the specified set */
-static int
-type_pf_list(const struct ip_set *set,
- struct sk_buff *skb, struct netlink_callback *cb)
-{
- const struct ip_set_hash *h = set->data;
- const struct htable *t = h->table;
- struct nlattr *atd, *nested;
- const struct hbucket *n;
- const struct type_pf_elem *data;
- u32 first = cb->args[2];
- /* We assume that one hash bucket fills into one page */
- void *incomplete;
- int i;
-
- atd = ipset_nest_start(skb, IPSET_ATTR_ADT);
- if (!atd)
- return -EMSGSIZE;
- pr_debug("list hash set %s\n", set->name);
- for (; cb->args[2] < jhash_size(t->htable_bits); cb->args[2]++) {
- incomplete = skb_tail_pointer(skb);
- n = hbucket(t, cb->args[2]);
- pr_debug("cb->args[2]: %lu, t %p n %p\n", cb->args[2], t, n);
- for (i = 0; i < n->pos; i++) {
- data = ahash_data(n, i);
- pr_debug("list hash %lu hbucket %p i %u, data %p\n",
- cb->args[2], n, i, data);
- nested = ipset_nest_start(skb, IPSET_ATTR_DATA);
- if (!nested) {
- if (cb->args[2] == first) {
- nla_nest_cancel(skb, atd);
- return -EMSGSIZE;
- } else
- goto nla_put_failure;
- }
- if (type_pf_data_list(skb, data))
- goto nla_put_failure;
- ipset_nest_end(skb, nested);
- }
- }
- ipset_nest_end(skb, atd);
- /* Set listing finished */
- cb->args[2] = 0;
-
- return 0;
-
-nla_put_failure:
- nlmsg_trim(skb, incomplete);
- ipset_nest_end(skb, atd);
- if (unlikely(first == cb->args[2])) {
- pr_warning("Can't list set %s: one bucket does not fit into "
- "a message. Please report it!\n", set->name);
- cb->args[2] = 0;
- return -EMSGSIZE;
- }
- return 0;
-}
-
-static int
-type_pf_kadt(struct ip_set *set, const struct sk_buff * skb,
- const struct xt_action_param *par,
- enum ipset_adt adt, const struct ip_set_adt_opt *opt);
-static int
-type_pf_uadt(struct ip_set *set, struct nlattr *tb[],
- enum ipset_adt adt, u32 *lineno, u32 flags, bool retried);
-
-static const struct ip_set_type_variant type_pf_variant = {
- .kadt = type_pf_kadt,
- .uadt = type_pf_uadt,
- .adt = {
- [IPSET_ADD] = type_pf_add,
- [IPSET_DEL] = type_pf_del,
- [IPSET_TEST] = type_pf_test,
- },
- .destroy = type_pf_destroy,
- .flush = type_pf_flush,
- .head = type_pf_head,
- .list = type_pf_list,
- .resize = type_pf_resize,
- .same_set = type_pf_same_set,
-};
-
-/* Flavour with timeout support */
-
-#define ahash_tdata(n, i) \
- (struct type_pf_elem *)((struct type_pf_telem *)((n)->value) + (i))
-
-static inline u32
-type_pf_data_timeout(const struct type_pf_elem *data)
-{
- const struct type_pf_telem *tdata =
- (const struct type_pf_telem *) data;
-
- return tdata->timeout;
-}
-
-static inline bool
-type_pf_data_expired(const struct type_pf_elem *data)
-{
- const struct type_pf_telem *tdata =
- (const struct type_pf_telem *) data;
-
- return ip_set_timeout_expired(tdata->timeout);
-}
-
-static inline void
-type_pf_data_timeout_set(struct type_pf_elem *data, u32 timeout)
-{
- struct type_pf_telem *tdata = (struct type_pf_telem *) data;
-
- tdata->timeout = ip_set_timeout_set(timeout);
-}
-
-static int
-type_pf_elem_tadd(struct hbucket *n, const struct type_pf_elem *value,
- u8 ahash_max, u32 cadt_flags, u32 timeout)
-{
- struct type_pf_elem *data;
-
- if (n->pos >= n->size) {
- void *tmp;
-
- if (n->size >= ahash_max)
- /* Trigger rehashing */
- return -EAGAIN;
-
- tmp = kzalloc((n->size + AHASH_INIT_SIZE)
- * sizeof(struct type_pf_telem),
- GFP_ATOMIC);
- if (!tmp)
- return -ENOMEM;
- if (n->size) {
- memcpy(tmp, n->value,
- sizeof(struct type_pf_telem) * n->size);
- kfree(n->value);
- }
- n->value = tmp;
- n->size += AHASH_INIT_SIZE;
- }
- data = ahash_tdata(n, n->pos++);
- type_pf_data_copy(data, value);
- type_pf_data_timeout_set(data, timeout);
-#ifdef IP_SET_HASH_WITH_NETS
- /* Resizing won't overwrite stored flags */
- if (cadt_flags)
- type_pf_data_flags(data, cadt_flags);
-#endif
- return 0;
-}
-
-/* Delete expired elements from the hashtable */
-static void
-type_pf_expire(struct ip_set_hash *h)
-{
- struct htable *t = h->table;
- struct hbucket *n;
- struct type_pf_elem *data;
- u32 i;
- int j;
-
- for (i = 0; i < jhash_size(t->htable_bits); i++) {
- n = hbucket(t, i);
- for (j = 0; j < n->pos; j++) {
- data = ahash_tdata(n, j);
- if (type_pf_data_expired(data)) {
- pr_debug("expired %u/%u\n", i, j);
-#ifdef IP_SET_HASH_WITH_NETS
- del_cidr(h, CIDR(data->cidr), HOST_MASK);
-#endif
- if (j != n->pos - 1)
- /* Not last one */
- type_pf_data_copy(data,
- ahash_tdata(n, n->pos - 1));
- n->pos--;
- h->elements--;
- }
- }
- if (n->pos + AHASH_INIT_SIZE < n->size) {
- void *tmp = kzalloc((n->size - AHASH_INIT_SIZE)
- * sizeof(struct type_pf_telem),
- GFP_ATOMIC);
- if (!tmp)
- /* Still try to delete expired elements */
- continue;
- n->size -= AHASH_INIT_SIZE;
- memcpy(tmp, n->value,
- n->size * sizeof(struct type_pf_telem));
- kfree(n->value);
- n->value = tmp;
- }
- }
-}
-
-static int
-type_pf_tresize(struct ip_set *set, bool retried)
-{
- struct ip_set_hash *h = set->data;
- struct htable *t, *orig = h->table;
- u8 htable_bits = orig->htable_bits;
- const struct type_pf_elem *data;
- struct hbucket *n, *m;
- u32 i, j;
- int ret;
-
- /* Try to cleanup once */
- if (!retried) {
- i = h->elements;
- write_lock_bh(&set->lock);
- type_pf_expire(set->data);
- write_unlock_bh(&set->lock);
- if (h->elements < i)
- return 0;
- }
-
-retry:
- ret = 0;
- htable_bits++;
- if (!htable_bits) {
- /* In case we have plenty of memory :-) */
- pr_warning("Cannot increase the hashsize of set %s further\n",
- set->name);
- return -IPSET_ERR_HASH_FULL;
- }
- t = ip_set_alloc(sizeof(*t)
- + jhash_size(htable_bits) * sizeof(struct hbucket));
- if (!t)
- return -ENOMEM;
- t->htable_bits = htable_bits;
-
- read_lock_bh(&set->lock);
- for (i = 0; i < jhash_size(orig->htable_bits); i++) {
- n = hbucket(orig, i);
- for (j = 0; j < n->pos; j++) {
- data = ahash_tdata(n, j);
- m = hbucket(t, HKEY(data, h->initval, htable_bits));
- ret = type_pf_elem_tadd(m, data, AHASH_MAX(h), 0,
- type_pf_data_timeout(data));
- if (ret < 0) {
- read_unlock_bh(&set->lock);
- ahash_destroy(t);
- if (ret == -EAGAIN)
- goto retry;
- return ret;
- }
- }
- }
-
- rcu_assign_pointer(h->table, t);
- read_unlock_bh(&set->lock);
-
- /* Give time to other readers of the set */
- synchronize_rcu_bh();
-
- ahash_destroy(orig);
-
- return 0;
-}
-
-static int
-type_pf_tadd(struct ip_set *set, void *value, u32 timeout, u32 flags)
-{
- struct ip_set_hash *h = set->data;
- struct htable *t = h->table;
- const struct type_pf_elem *d = value;
- struct hbucket *n;
- struct type_pf_elem *data;
- int ret = 0, i, j = AHASH_MAX(h) + 1;
- bool flag_exist = flags & IPSET_FLAG_EXIST;
- u32 key, multi = 0;
- u32 cadt_flags = flags >> 16;
-
- if (h->elements >= h->maxelem)
- /* FIXME: when set is full, we slow down here */
- type_pf_expire(h);
- if (h->elements >= h->maxelem) {
- if (net_ratelimit())
- pr_warning("Set %s is full, maxelem %u reached\n",
- set->name, h->maxelem);
- return -IPSET_ERR_HASH_FULL;
- }
-
- rcu_read_lock_bh();
- t = rcu_dereference_bh(h->table);
- key = HKEY(d, h->initval, t->htable_bits);
- n = hbucket(t, key);
- for (i = 0; i < n->pos; i++) {
- data = ahash_tdata(n, i);
- if (type_pf_data_equal(data, d, &multi)) {
- if (type_pf_data_expired(data) || flag_exist)
- /* Just timeout value may be updated */
- j = i;
- else {
- ret = -IPSET_ERR_EXIST;
- goto out;
- }
- } else if (j == AHASH_MAX(h) + 1 &&
- type_pf_data_expired(data))
- j = i;
- }
- if (j != AHASH_MAX(h) + 1) {
- data = ahash_tdata(n, j);
-#ifdef IP_SET_HASH_WITH_NETS
- del_cidr(h, CIDR(data->cidr), HOST_MASK);
- add_cidr(h, CIDR(d->cidr), HOST_MASK);
-#endif
- type_pf_data_copy(data, d);
- type_pf_data_timeout_set(data, timeout);
-#ifdef IP_SET_HASH_WITH_NETS
- type_pf_data_flags(data, cadt_flags);
-#endif
- goto out;
- }
- TUNE_AHASH_MAX(h, multi);
- ret = type_pf_elem_tadd(n, d, AHASH_MAX(h), cadt_flags, timeout);
- if (ret != 0) {
- if (ret == -EAGAIN)
- type_pf_data_next(h, d);
- goto out;
- }
-
-#ifdef IP_SET_HASH_WITH_NETS
- add_cidr(h, CIDR(d->cidr), HOST_MASK);
-#endif
- h->elements++;
-out:
- rcu_read_unlock_bh();
- return ret;
-}
-
-static int
-type_pf_tdel(struct ip_set *set, void *value, u32 timeout, u32 flags)
-{
- struct ip_set_hash *h = set->data;
- struct htable *t = h->table;
- const struct type_pf_elem *d = value;
- struct hbucket *n;
- int i;
- struct type_pf_elem *data;
- u32 key, multi = 0;
-
- key = HKEY(value, h->initval, t->htable_bits);
- n = hbucket(t, key);
- for (i = 0; i < n->pos; i++) {
- data = ahash_tdata(n, i);
- if (!type_pf_data_equal(data, d, &multi))
- continue;
- if (type_pf_data_expired(data))
- return -IPSET_ERR_EXIST;
- if (i != n->pos - 1)
- /* Not last one */
- type_pf_data_copy(data, ahash_tdata(n, n->pos - 1));
-
- n->pos--;
- h->elements--;
-#ifdef IP_SET_HASH_WITH_NETS
- del_cidr(h, CIDR(d->cidr), HOST_MASK);
-#endif
- if (n->pos + AHASH_INIT_SIZE < n->size) {
- void *tmp = kzalloc((n->size - AHASH_INIT_SIZE)
- * sizeof(struct type_pf_telem),
- GFP_ATOMIC);
- if (!tmp)
- return 0;
- n->size -= AHASH_INIT_SIZE;
- memcpy(tmp, n->value,
- n->size * sizeof(struct type_pf_telem));
- kfree(n->value);
- n->value = tmp;
- }
- return 0;
- }
-
- return -IPSET_ERR_EXIST;
-}
-
-#ifdef IP_SET_HASH_WITH_NETS
-static int
-type_pf_ttest_cidrs(struct ip_set *set, struct type_pf_elem *d, u32 timeout)
-{
- struct ip_set_hash *h = set->data;
- struct htable *t = h->table;
- struct type_pf_elem *data;
- struct hbucket *n;
- int i, j = 0;
- u32 key, multi = 0;
- u8 host_mask = SET_HOST_MASK(set->family);
-
- for (; j < host_mask && h->nets[j].cidr && !multi; j++) {
- type_pf_data_netmask(d, h->nets[j].cidr);
- key = HKEY(d, h->initval, t->htable_bits);
- n = hbucket(t, key);
- for (i = 0; i < n->pos; i++) {
- data = ahash_tdata(n, i);
-#ifdef IP_SET_HASH_WITH_MULTI
- if (type_pf_data_equal(data, d, &multi)) {
- if (!type_pf_data_expired(data))
- return type_pf_data_match(data);
- multi = 0;
- }
-#else
- if (type_pf_data_equal(data, d, &multi) &&
- !type_pf_data_expired(data))
- return type_pf_data_match(data);
-#endif
- }
- }
- return 0;
-}
-#endif
-
-static int
-type_pf_ttest(struct ip_set *set, void *value, u32 timeout, u32 flags)
-{
- struct ip_set_hash *h = set->data;
- struct htable *t = h->table;
- struct type_pf_elem *data, *d = value;
- struct hbucket *n;
- int i;
- u32 key, multi = 0;
-
-#ifdef IP_SET_HASH_WITH_NETS
- if (CIDR(d->cidr) == SET_HOST_MASK(set->family))
- return type_pf_ttest_cidrs(set, d, timeout);
-#endif
- key = HKEY(d, h->initval, t->htable_bits);
- n = hbucket(t, key);
- for (i = 0; i < n->pos; i++) {
- data = ahash_tdata(n, i);
- if (type_pf_data_equal(data, d, &multi) &&
- !type_pf_data_expired(data))
- return type_pf_data_match(data);
- }
- return 0;
-}
-
-static int
-type_pf_tlist(const struct ip_set *set,
- struct sk_buff *skb, struct netlink_callback *cb)
-{
- const struct ip_set_hash *h = set->data;
- const struct htable *t = h->table;
- struct nlattr *atd, *nested;
- const struct hbucket *n;
- const struct type_pf_elem *data;
- u32 first = cb->args[2];
- /* We assume that one hash bucket fills into one page */
- void *incomplete;
- int i;
-
- atd = ipset_nest_start(skb, IPSET_ATTR_ADT);
- if (!atd)
- return -EMSGSIZE;
- for (; cb->args[2] < jhash_size(t->htable_bits); cb->args[2]++) {
- incomplete = skb_tail_pointer(skb);
- n = hbucket(t, cb->args[2]);
- for (i = 0; i < n->pos; i++) {
- data = ahash_tdata(n, i);
- pr_debug("list %p %u\n", n, i);
- if (type_pf_data_expired(data))
- continue;
- pr_debug("do list %p %u\n", n, i);
- nested = ipset_nest_start(skb, IPSET_ATTR_DATA);
- if (!nested) {
- if (cb->args[2] == first) {
- nla_nest_cancel(skb, atd);
- return -EMSGSIZE;
- } else
- goto nla_put_failure;
- }
- if (type_pf_data_tlist(skb, data))
- goto nla_put_failure;
- ipset_nest_end(skb, nested);
- }
- }
- ipset_nest_end(skb, atd);
- /* Set listing finished */
- cb->args[2] = 0;
-
- return 0;
-
-nla_put_failure:
- nlmsg_trim(skb, incomplete);
- ipset_nest_end(skb, atd);
- if (unlikely(first == cb->args[2])) {
- pr_warning("Can't list set %s: one bucket does not fit into "
- "a message. Please report it!\n", set->name);
- cb->args[2] = 0;
- return -EMSGSIZE;
- }
- return 0;
-}
-
-static const struct ip_set_type_variant type_pf_tvariant = {
- .kadt = type_pf_kadt,
- .uadt = type_pf_uadt,
- .adt = {
- [IPSET_ADD] = type_pf_tadd,
- [IPSET_DEL] = type_pf_tdel,
- [IPSET_TEST] = type_pf_ttest,
- },
- .destroy = type_pf_destroy,
- .flush = type_pf_flush,
- .head = type_pf_head,
- .list = type_pf_tlist,
- .resize = type_pf_tresize,
- .same_set = type_pf_same_set,
-};
-
-static void
-type_pf_gc(unsigned long ul_set)
-{
- struct ip_set *set = (struct ip_set *) ul_set;
- struct ip_set_hash *h = set->data;
-
- pr_debug("called\n");
- write_lock_bh(&set->lock);
- type_pf_expire(h);
- write_unlock_bh(&set->lock);
-
- h->gc.expires = jiffies + IPSET_GC_PERIOD(h->timeout) * HZ;
- add_timer(&h->gc);
-}
-
-static void
-type_pf_gc_init(struct ip_set *set)
-{
- struct ip_set_hash *h = set->data;
-
- init_timer(&h->gc);
- h->gc.data = (unsigned long) set;
- h->gc.function = type_pf_gc;
- h->gc.expires = jiffies + IPSET_GC_PERIOD(h->timeout) * HZ;
- add_timer(&h->gc);
- pr_debug("gc initialized, run in every %u\n",
- IPSET_GC_PERIOD(h->timeout));
-}
-
-#undef HKEY_DATALEN
-#undef HKEY
-#undef type_pf_data_equal
-#undef type_pf_data_isnull
-#undef type_pf_data_copy
-#undef type_pf_data_zero_out
-#undef type_pf_data_netmask
-#undef type_pf_data_list
-#undef type_pf_data_tlist
-#undef type_pf_data_next
-#undef type_pf_data_flags
-#undef type_pf_data_match
-
-#undef type_pf_elem
-#undef type_pf_telem
-#undef type_pf_data_timeout
-#undef type_pf_data_expired
-#undef type_pf_data_timeout_set
-
-#undef type_pf_elem_add
-#undef type_pf_add
-#undef type_pf_del
-#undef type_pf_test_cidrs
-#undef type_pf_test
-
-#undef type_pf_elem_tadd
-#undef type_pf_del_telem
-#undef type_pf_expire
-#undef type_pf_tadd
-#undef type_pf_tdel
-#undef type_pf_ttest_cidrs
-#undef type_pf_ttest
-
-#undef type_pf_resize
-#undef type_pf_tresize
-#undef type_pf_flush
-#undef type_pf_destroy
-#undef type_pf_head
-#undef type_pf_list
-#undef type_pf_tlist
-#undef type_pf_same_set
-#undef type_pf_kadt
-#undef type_pf_uadt
-#undef type_pf_gc
-#undef type_pf_gc_init
-#undef type_pf_variant
-#undef type_pf_tvariant
diff --git a/ANDROID_3.4.5/include/linux/netfilter/ipset/ip_set_bitmap.h b/ANDROID_3.4.5/include/linux/netfilter/ipset/ip_set_bitmap.h
deleted file mode 100644
index 61a9e874..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/ipset/ip_set_bitmap.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef __IP_SET_BITMAP_H
-#define __IP_SET_BITMAP_H
-
-/* Bitmap type specific error codes */
-enum {
- /* The element is out of the range of the set */
- IPSET_ERR_BITMAP_RANGE = IPSET_ERR_TYPE_SPECIFIC,
- /* The range exceeds the size limit of the set type */
- IPSET_ERR_BITMAP_RANGE_SIZE,
-};
-
-#ifdef __KERNEL__
-#define IPSET_BITMAP_MAX_RANGE 0x0000FFFF
-
-/* Common functions */
-
-static inline u32
-range_to_mask(u32 from, u32 to, u8 *bits)
-{
- u32 mask = 0xFFFFFFFE;
-
- *bits = 32;
- while (--(*bits) > 0 && mask && (to & mask) != from)
- mask <<= 1;
-
- return mask;
-}
-
-#endif /* __KERNEL__ */
-
-#endif /* __IP_SET_BITMAP_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/ipset/ip_set_getport.h b/ANDROID_3.4.5/include/linux/netfilter/ipset/ip_set_getport.h
deleted file mode 100644
index 90d09300..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/ipset/ip_set_getport.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef _IP_SET_GETPORT_H
-#define _IP_SET_GETPORT_H
-
-extern bool ip_set_get_ip4_port(const struct sk_buff *skb, bool src,
- __be16 *port, u8 *proto);
-
-#if defined(CONFIG_IP6_NF_IPTABLES) || defined(CONFIG_IP6_NF_IPTABLES_MODULE)
-extern bool ip_set_get_ip6_port(const struct sk_buff *skb, bool src,
- __be16 *port, u8 *proto);
-#else
-static inline bool ip_set_get_ip6_port(const struct sk_buff *skb, bool src,
- __be16 *port, u8 *proto)
-{
- return false;
-}
-#endif
-
-extern bool ip_set_get_ip_port(const struct sk_buff *skb, u8 pf, bool src,
- __be16 *port);
-
-static inline bool ip_set_proto_with_ports(u8 proto)
-{
- switch (proto) {
- case IPPROTO_TCP:
- case IPPROTO_SCTP:
- case IPPROTO_UDP:
- case IPPROTO_UDPLITE:
- return true;
- }
- return false;
-}
-
-#endif /*_IP_SET_GETPORT_H*/
diff --git a/ANDROID_3.4.5/include/linux/netfilter/ipset/ip_set_hash.h b/ANDROID_3.4.5/include/linux/netfilter/ipset/ip_set_hash.h
deleted file mode 100644
index e2a9fae7..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/ipset/ip_set_hash.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef __IP_SET_HASH_H
-#define __IP_SET_HASH_H
-
-/* Hash type specific error codes */
-enum {
- /* Hash is full */
- IPSET_ERR_HASH_FULL = IPSET_ERR_TYPE_SPECIFIC,
- /* Null-valued element */
- IPSET_ERR_HASH_ELEM,
- /* Invalid protocol */
- IPSET_ERR_INVALID_PROTO,
- /* Protocol missing but must be specified */
- IPSET_ERR_MISSING_PROTO,
- /* Range not supported */
- IPSET_ERR_HASH_RANGE_UNSUPPORTED,
- /* Invalid range */
- IPSET_ERR_HASH_RANGE,
-};
-
-#ifdef __KERNEL__
-
-#define IPSET_DEFAULT_HASHSIZE 1024
-#define IPSET_MIMINAL_HASHSIZE 64
-#define IPSET_DEFAULT_MAXELEM 65536
-#define IPSET_DEFAULT_PROBES 4
-#define IPSET_DEFAULT_RESIZE 100
-
-#endif /* __KERNEL__ */
-
-#endif /* __IP_SET_HASH_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/ipset/ip_set_list.h b/ANDROID_3.4.5/include/linux/netfilter/ipset/ip_set_list.h
deleted file mode 100644
index 40a63f30..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/ipset/ip_set_list.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef __IP_SET_LIST_H
-#define __IP_SET_LIST_H
-
-/* List type specific error codes */
-enum {
- /* Set name to be added/deleted/tested does not exist. */
- IPSET_ERR_NAME = IPSET_ERR_TYPE_SPECIFIC,
- /* list:set type is not permitted to add */
- IPSET_ERR_LOOP,
- /* Missing reference set */
- IPSET_ERR_BEFORE,
- /* Reference set does not exist */
- IPSET_ERR_NAMEREF,
- /* Set is full */
- IPSET_ERR_LIST_FULL,
- /* Reference set is not added to the set */
- IPSET_ERR_REF_EXIST,
-};
-
-#ifdef __KERNEL__
-
-#define IP_SET_LIST_DEFAULT_SIZE 8
-#define IP_SET_LIST_MIN_SIZE 4
-
-#endif /* __KERNEL__ */
-
-#endif /* __IP_SET_LIST_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/ipset/ip_set_timeout.h b/ANDROID_3.4.5/include/linux/netfilter/ipset/ip_set_timeout.h
deleted file mode 100644
index 47923205..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/ipset/ip_set_timeout.h
+++ /dev/null
@@ -1,132 +0,0 @@
-#ifndef _IP_SET_TIMEOUT_H
-#define _IP_SET_TIMEOUT_H
-
-/* Copyright (C) 2003-2011 Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
- *
- * 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.
- */
-
-#ifdef __KERNEL__
-
-/* How often should the gc be run by default */
-#define IPSET_GC_TIME (3 * 60)
-
-/* Timeout period depending on the timeout value of the given set */
-#define IPSET_GC_PERIOD(timeout) \
- ((timeout/3) ? min_t(u32, (timeout)/3, IPSET_GC_TIME) : 1)
-
-/* Set is defined without timeout support: timeout value may be 0 */
-#define IPSET_NO_TIMEOUT UINT_MAX
-
-#define with_timeout(timeout) ((timeout) != IPSET_NO_TIMEOUT)
-
-#define opt_timeout(opt, map) \
- (with_timeout((opt)->timeout) ? (opt)->timeout : (map)->timeout)
-
-static inline unsigned int
-ip_set_timeout_uget(struct nlattr *tb)
-{
- unsigned int timeout = ip_set_get_h32(tb);
-
- /* Userspace supplied TIMEOUT parameter: adjust crazy size */
- return timeout == IPSET_NO_TIMEOUT ? IPSET_NO_TIMEOUT - 1 : timeout;
-}
-
-#ifdef IP_SET_BITMAP_TIMEOUT
-
-/* Bitmap specific timeout constants and macros for the entries */
-
-/* Bitmap entry is unset */
-#define IPSET_ELEM_UNSET 0
-/* Bitmap entry is set with no timeout value */
-#define IPSET_ELEM_PERMANENT (UINT_MAX/2)
-
-static inline bool
-ip_set_timeout_test(unsigned long timeout)
-{
- return timeout != IPSET_ELEM_UNSET &&
- (timeout == IPSET_ELEM_PERMANENT ||
- time_is_after_jiffies(timeout));
-}
-
-static inline bool
-ip_set_timeout_expired(unsigned long timeout)
-{
- return timeout != IPSET_ELEM_UNSET &&
- timeout != IPSET_ELEM_PERMANENT &&
- time_is_before_jiffies(timeout);
-}
-
-static inline unsigned long
-ip_set_timeout_set(u32 timeout)
-{
- unsigned long t;
-
- if (!timeout)
- return IPSET_ELEM_PERMANENT;
-
- t = msecs_to_jiffies(timeout * 1000) + jiffies;
- if (t == IPSET_ELEM_UNSET || t == IPSET_ELEM_PERMANENT)
- /* Bingo! */
- t++;
-
- return t;
-}
-
-static inline u32
-ip_set_timeout_get(unsigned long timeout)
-{
- return timeout == IPSET_ELEM_PERMANENT ? 0 :
- jiffies_to_msecs(timeout - jiffies)/1000;
-}
-
-#else
-
-/* Hash specific timeout constants and macros for the entries */
-
-/* Hash entry is set with no timeout value */
-#define IPSET_ELEM_PERMANENT 0
-
-static inline bool
-ip_set_timeout_test(unsigned long timeout)
-{
- return timeout == IPSET_ELEM_PERMANENT ||
- time_is_after_jiffies(timeout);
-}
-
-static inline bool
-ip_set_timeout_expired(unsigned long timeout)
-{
- return timeout != IPSET_ELEM_PERMANENT &&
- time_is_before_jiffies(timeout);
-}
-
-static inline unsigned long
-ip_set_timeout_set(u32 timeout)
-{
- unsigned long t;
-
- if (!timeout)
- return IPSET_ELEM_PERMANENT;
-
- t = msecs_to_jiffies(timeout * 1000) + jiffies;
- if (t == IPSET_ELEM_PERMANENT)
- /* Bingo! :-) */
- t++;
-
- return t;
-}
-
-static inline u32
-ip_set_timeout_get(unsigned long timeout)
-{
- return timeout == IPSET_ELEM_PERMANENT ? 0 :
- jiffies_to_msecs(timeout - jiffies)/1000;
-}
-#endif /* ! IP_SET_BITMAP_TIMEOUT */
-
-#endif /* __KERNEL__ */
-
-#endif /* _IP_SET_TIMEOUT_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/ipset/pfxlen.h b/ANDROID_3.4.5/include/linux/netfilter/ipset/pfxlen.h
deleted file mode 100644
index 199fd11f..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/ipset/pfxlen.h
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef _PFXLEN_H
-#define _PFXLEN_H
-
-#include <asm/byteorder.h>
-#include <linux/netfilter.h>
-#include <net/tcp.h>
-
-/* Prefixlen maps, by Jan Engelhardt */
-extern const union nf_inet_addr ip_set_netmask_map[];
-extern const union nf_inet_addr ip_set_hostmask_map[];
-
-static inline __be32
-ip_set_netmask(u8 pfxlen)
-{
- return ip_set_netmask_map[pfxlen].ip;
-}
-
-static inline const __be32 *
-ip_set_netmask6(u8 pfxlen)
-{
- return &ip_set_netmask_map[pfxlen].ip6[0];
-}
-
-static inline u32
-ip_set_hostmask(u8 pfxlen)
-{
- return (__force u32) ip_set_hostmask_map[pfxlen].ip;
-}
-
-static inline const __be32 *
-ip_set_hostmask6(u8 pfxlen)
-{
- return &ip_set_hostmask_map[pfxlen].ip6[0];
-}
-
-extern u32 ip_set_range_to_cidr(u32 from, u32 to, u8 *cidr);
-
-#define ip_set_mask_from_to(from, to, cidr) \
-do { \
- from &= ip_set_hostmask(cidr); \
- to = from | ~ip_set_hostmask(cidr); \
-} while (0)
-
-#endif /*_PFXLEN_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_amanda.h b/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_amanda.h
deleted file mode 100644
index 0bb5a697..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_amanda.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef _NF_CONNTRACK_AMANDA_H
-#define _NF_CONNTRACK_AMANDA_H
-/* AMANDA tracking. */
-
-extern unsigned int (*nf_nat_amanda_hook)(struct sk_buff *skb,
- enum ip_conntrack_info ctinfo,
- unsigned int matchoff,
- unsigned int matchlen,
- struct nf_conntrack_expect *exp);
-#endif /* _NF_CONNTRACK_AMANDA_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_common.h b/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_common.h
deleted file mode 100644
index 0d3dd663..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_common.h
+++ /dev/null
@@ -1,137 +0,0 @@
-#ifndef _NF_CONNTRACK_COMMON_H
-#define _NF_CONNTRACK_COMMON_H
-/* Connection state tracking for netfilter. This is separated from,
- but required by, the NAT layer; it can also be used by an iptables
- extension. */
-enum ip_conntrack_info {
- /* Part of an established connection (either direction). */
- IP_CT_ESTABLISHED,
-
- /* Like NEW, but related to an existing connection, or ICMP error
- (in either direction). */
- IP_CT_RELATED,
-
- /* Started a new connection to track (only
- IP_CT_DIR_ORIGINAL); may be a retransmission. */
- IP_CT_NEW,
-
- /* >= this indicates reply direction */
- IP_CT_IS_REPLY,
-
- IP_CT_ESTABLISHED_REPLY = IP_CT_ESTABLISHED + IP_CT_IS_REPLY,
- IP_CT_RELATED_REPLY = IP_CT_RELATED + IP_CT_IS_REPLY,
- IP_CT_NEW_REPLY = IP_CT_NEW + IP_CT_IS_REPLY,
- /* Number of distinct IP_CT types (no NEW in reply dirn). */
- IP_CT_NUMBER = IP_CT_IS_REPLY * 2 - 1
-};
-
-/* Bitset representing status of connection. */
-enum ip_conntrack_status {
- /* It's an expected connection: bit 0 set. This bit never changed */
- IPS_EXPECTED_BIT = 0,
- IPS_EXPECTED = (1 << IPS_EXPECTED_BIT),
-
- /* We've seen packets both ways: bit 1 set. Can be set, not unset. */
- IPS_SEEN_REPLY_BIT = 1,
- IPS_SEEN_REPLY = (1 << IPS_SEEN_REPLY_BIT),
-
- /* Conntrack should never be early-expired. */
- IPS_ASSURED_BIT = 2,
- IPS_ASSURED = (1 << IPS_ASSURED_BIT),
-
- /* Connection is confirmed: originating packet has left box */
- IPS_CONFIRMED_BIT = 3,
- IPS_CONFIRMED = (1 << IPS_CONFIRMED_BIT),
-
- /* Connection needs src nat in orig dir. This bit never changed. */
- IPS_SRC_NAT_BIT = 4,
- IPS_SRC_NAT = (1 << IPS_SRC_NAT_BIT),
-
- /* Connection needs dst nat in orig dir. This bit never changed. */
- IPS_DST_NAT_BIT = 5,
- IPS_DST_NAT = (1 << IPS_DST_NAT_BIT),
-
- /* Both together. */
- IPS_NAT_MASK = (IPS_DST_NAT | IPS_SRC_NAT),
-
- /* Connection needs TCP sequence adjusted. */
- IPS_SEQ_ADJUST_BIT = 6,
- IPS_SEQ_ADJUST = (1 << IPS_SEQ_ADJUST_BIT),
-
- /* NAT initialization bits. */
- IPS_SRC_NAT_DONE_BIT = 7,
- IPS_SRC_NAT_DONE = (1 << IPS_SRC_NAT_DONE_BIT),
-
- IPS_DST_NAT_DONE_BIT = 8,
- IPS_DST_NAT_DONE = (1 << IPS_DST_NAT_DONE_BIT),
-
- /* Both together */
- IPS_NAT_DONE_MASK = (IPS_DST_NAT_DONE | IPS_SRC_NAT_DONE),
-
- /* Connection is dying (removed from lists), can not be unset. */
- IPS_DYING_BIT = 9,
- IPS_DYING = (1 << IPS_DYING_BIT),
-
- /* Connection has fixed timeout. */
- IPS_FIXED_TIMEOUT_BIT = 10,
- IPS_FIXED_TIMEOUT = (1 << IPS_FIXED_TIMEOUT_BIT),
-
- /* Conntrack is a template */
- IPS_TEMPLATE_BIT = 11,
- IPS_TEMPLATE = (1 << IPS_TEMPLATE_BIT),
-
- /* Conntrack is a fake untracked entry */
- IPS_UNTRACKED_BIT = 12,
- IPS_UNTRACKED = (1 << IPS_UNTRACKED_BIT),
-};
-
-/* Connection tracking event types */
-enum ip_conntrack_events {
- IPCT_NEW, /* new conntrack */
- IPCT_RELATED, /* related conntrack */
- IPCT_DESTROY, /* destroyed conntrack */
- IPCT_REPLY, /* connection has seen two-way traffic */
- IPCT_ASSURED, /* connection status has changed to assured */
- IPCT_PROTOINFO, /* protocol information has changed */
- IPCT_HELPER, /* new helper has been set */
- IPCT_MARK, /* new mark has been set */
- IPCT_NATSEQADJ, /* NAT is doing sequence adjustment */
- IPCT_SECMARK, /* new security mark has been set */
-};
-
-enum ip_conntrack_expect_events {
- IPEXP_NEW, /* new expectation */
- IPEXP_DESTROY, /* destroyed expectation */
-};
-
-/* expectation flags */
-#define NF_CT_EXPECT_PERMANENT 0x1
-#define NF_CT_EXPECT_INACTIVE 0x2
-#define NF_CT_EXPECT_USERSPACE 0x4
-
-#ifdef __KERNEL__
-struct ip_conntrack_stat {
- unsigned int searched;
- unsigned int found;
- unsigned int new;
- unsigned int invalid;
- unsigned int ignore;
- unsigned int delete;
- unsigned int delete_list;
- unsigned int insert;
- unsigned int insert_failed;
- unsigned int drop;
- unsigned int early_drop;
- unsigned int error;
- unsigned int expect_new;
- unsigned int expect_create;
- unsigned int expect_delete;
- unsigned int search_restart;
-};
-
-/* call to create an explicit dependency on nf_conntrack. */
-extern void need_conntrack(void);
-
-#endif /* __KERNEL__ */
-
-#endif /* _NF_CONNTRACK_COMMON_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_dccp.h b/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_dccp.h
deleted file mode 100644
index 40dcc820..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_dccp.h
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef _NF_CONNTRACK_DCCP_H
-#define _NF_CONNTRACK_DCCP_H
-
-/* Exposed to userspace over nfnetlink */
-enum ct_dccp_states {
- CT_DCCP_NONE,
- CT_DCCP_REQUEST,
- CT_DCCP_RESPOND,
- CT_DCCP_PARTOPEN,
- CT_DCCP_OPEN,
- CT_DCCP_CLOSEREQ,
- CT_DCCP_CLOSING,
- CT_DCCP_TIMEWAIT,
- CT_DCCP_IGNORE,
- CT_DCCP_INVALID,
- __CT_DCCP_MAX
-};
-#define CT_DCCP_MAX (__CT_DCCP_MAX - 1)
-
-enum ct_dccp_roles {
- CT_DCCP_ROLE_CLIENT,
- CT_DCCP_ROLE_SERVER,
- __CT_DCCP_ROLE_MAX
-};
-#define CT_DCCP_ROLE_MAX (__CT_DCCP_ROLE_MAX - 1)
-
-#ifdef __KERNEL__
-#include <net/netfilter/nf_conntrack_tuple.h>
-
-struct nf_ct_dccp {
- u_int8_t role[IP_CT_DIR_MAX];
- u_int8_t state;
- u_int8_t last_pkt;
- u_int8_t last_dir;
- u_int64_t handshake_seq;
-};
-
-#endif /* __KERNEL__ */
-
-#endif /* _NF_CONNTRACK_DCCP_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_ftp.h b/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_ftp.h
deleted file mode 100644
index 3e3aa089..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_ftp.h
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef _NF_CONNTRACK_FTP_H
-#define _NF_CONNTRACK_FTP_H
-/* FTP tracking. */
-
-/* This enum is exposed to userspace */
-enum nf_ct_ftp_type {
- /* PORT command from client */
- NF_CT_FTP_PORT,
- /* PASV response from server */
- NF_CT_FTP_PASV,
- /* EPRT command from client */
- NF_CT_FTP_EPRT,
- /* EPSV response from server */
- NF_CT_FTP_EPSV,
-};
-
-#ifdef __KERNEL__
-
-#define FTP_PORT 21
-
-#define NUM_SEQ_TO_REMEMBER 2
-/* This structure exists only once per master */
-struct nf_ct_ftp_master {
- /* Valid seq positions for cmd matching after newline */
- u_int32_t seq_aft_nl[IP_CT_DIR_MAX][NUM_SEQ_TO_REMEMBER];
- /* 0 means seq_match_aft_nl not set */
- int seq_aft_nl_num[IP_CT_DIR_MAX];
-};
-
-struct nf_conntrack_expect;
-
-/* For NAT to hook in when we find a packet which describes what other
- * connection we should expect. */
-extern unsigned int (*nf_nat_ftp_hook)(struct sk_buff *skb,
- enum ip_conntrack_info ctinfo,
- enum nf_ct_ftp_type type,
- unsigned int matchoff,
- unsigned int matchlen,
- struct nf_conntrack_expect *exp);
-#endif /* __KERNEL__ */
-
-#endif /* _NF_CONNTRACK_FTP_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_h323.h b/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_h323.h
deleted file mode 100644
index 26f9226e..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_h323.h
+++ /dev/null
@@ -1,92 +0,0 @@
-#ifndef _NF_CONNTRACK_H323_H
-#define _NF_CONNTRACK_H323_H
-
-#ifdef __KERNEL__
-
-#include <linux/netfilter/nf_conntrack_h323_asn1.h>
-
-#define RAS_PORT 1719
-#define Q931_PORT 1720
-#define H323_RTP_CHANNEL_MAX 4 /* Audio, video, FAX and other */
-
-/* This structure exists only once per master */
-struct nf_ct_h323_master {
-
- /* Original and NATed Q.931 or H.245 signal ports */
- __be16 sig_port[IP_CT_DIR_MAX];
-
- /* Original and NATed RTP ports */
- __be16 rtp_port[H323_RTP_CHANNEL_MAX][IP_CT_DIR_MAX];
-
- union {
- /* RAS connection timeout */
- u_int32_t timeout;
-
- /* Next TPKT length (for separate TPKT header and data) */
- u_int16_t tpkt_len[IP_CT_DIR_MAX];
- };
-};
-
-struct nf_conn;
-
-extern int get_h225_addr(struct nf_conn *ct, unsigned char *data,
- TransportAddress *taddr,
- union nf_inet_addr *addr, __be16 *port);
-extern void nf_conntrack_h245_expect(struct nf_conn *new,
- struct nf_conntrack_expect *this);
-extern void nf_conntrack_q931_expect(struct nf_conn *new,
- struct nf_conntrack_expect *this);
-extern int (*set_h245_addr_hook) (struct sk_buff *skb,
- unsigned char **data, int dataoff,
- H245_TransportAddress *taddr,
- union nf_inet_addr *addr,
- __be16 port);
-extern int (*set_h225_addr_hook) (struct sk_buff *skb,
- unsigned char **data, int dataoff,
- TransportAddress *taddr,
- union nf_inet_addr *addr,
- __be16 port);
-extern int (*set_sig_addr_hook) (struct sk_buff *skb,
- struct nf_conn *ct,
- enum ip_conntrack_info ctinfo,
- unsigned char **data,
- TransportAddress *taddr, int count);
-extern int (*set_ras_addr_hook) (struct sk_buff *skb,
- struct nf_conn *ct,
- enum ip_conntrack_info ctinfo,
- unsigned char **data,
- TransportAddress *taddr, int count);
-extern int (*nat_rtp_rtcp_hook) (struct sk_buff *skb,
- struct nf_conn *ct,
- enum ip_conntrack_info ctinfo,
- unsigned char **data, int dataoff,
- H245_TransportAddress *taddr,
- __be16 port, __be16 rtp_port,
- struct nf_conntrack_expect *rtp_exp,
- struct nf_conntrack_expect *rtcp_exp);
-extern int (*nat_t120_hook) (struct sk_buff *skb, struct nf_conn *ct,
- enum ip_conntrack_info ctinfo,
- unsigned char **data, int dataoff,
- H245_TransportAddress *taddr, __be16 port,
- struct nf_conntrack_expect *exp);
-extern int (*nat_h245_hook) (struct sk_buff *skb, struct nf_conn *ct,
- enum ip_conntrack_info ctinfo,
- unsigned char **data, int dataoff,
- TransportAddress *taddr, __be16 port,
- struct nf_conntrack_expect *exp);
-extern int (*nat_callforwarding_hook) (struct sk_buff *skb,
- struct nf_conn *ct,
- enum ip_conntrack_info ctinfo,
- unsigned char **data, int dataoff,
- TransportAddress *taddr,
- __be16 port,
- struct nf_conntrack_expect *exp);
-extern int (*nat_q931_hook) (struct sk_buff *skb, struct nf_conn *ct,
- enum ip_conntrack_info ctinfo,
- unsigned char **data, TransportAddress *taddr,
- int idx, __be16 port,
- struct nf_conntrack_expect *exp);
-
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_h323_asn1.h b/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_h323_asn1.h
deleted file mode 100644
index 8dab5968..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_h323_asn1.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/****************************************************************************
- * ip_conntrack_h323_asn1.h - BER and PER decoding library for H.323
- * conntrack/NAT module.
- *
- * Copyright (c) 2006 by Jing Min Zhao <zhaojingmin@users.sourceforge.net>
- *
- * This source code is licensed under General Public License version 2.
- *
- *
- * This library is based on H.225 version 4, H.235 version 2 and H.245
- * version 7. It is extremely optimized to decode only the absolutely
- * necessary objects in a signal for Linux kernel NAT module use, so don't
- * expect it to be a full ASN.1 library.
- *
- * Features:
- *
- * 1. Small. The total size of code plus data is less than 20 KB (IA32).
- * 2. Fast. Decoding Netmeeting's Setup signal 1 million times on a PIII 866
- * takes only 3.9 seconds.
- * 3. No memory allocation. It uses a static object. No need to initialize or
- * cleanup.
- * 4. Thread safe.
- * 5. Support embedded architectures that has no misaligned memory access
- * support.
- *
- * Limitations:
- *
- * 1. At most 30 faststart entries. Actually this is limited by ethernet's MTU.
- * If a Setup signal contains more than 30 faststart, the packet size will
- * very likely exceed the MTU size, then the TPKT will be fragmented. I
- * don't know how to handle this in a Netfilter module. Anybody can help?
- * Although I think 30 is enough for most of the cases.
- * 2. IPv4 addresses only.
- *
- ****************************************************************************/
-
-#ifndef _NF_CONNTRACK_HELPER_H323_ASN1_H_
-#define _NF_CONNTRACK_HELPER_H323_ASN1_H_
-
-/*****************************************************************************
- * H.323 Types
- ****************************************************************************/
-#include "nf_conntrack_h323_types.h"
-
-typedef struct {
- enum {
- Q931_NationalEscape = 0x00,
- Q931_Alerting = 0x01,
- Q931_CallProceeding = 0x02,
- Q931_Connect = 0x07,
- Q931_ConnectAck = 0x0F,
- Q931_Progress = 0x03,
- Q931_Setup = 0x05,
- Q931_SetupAck = 0x0D,
- Q931_Resume = 0x26,
- Q931_ResumeAck = 0x2E,
- Q931_ResumeReject = 0x22,
- Q931_Suspend = 0x25,
- Q931_SuspendAck = 0x2D,
- Q931_SuspendReject = 0x21,
- Q931_UserInformation = 0x20,
- Q931_Disconnect = 0x45,
- Q931_Release = 0x4D,
- Q931_ReleaseComplete = 0x5A,
- Q931_Restart = 0x46,
- Q931_RestartAck = 0x4E,
- Q931_Segment = 0x60,
- Q931_CongestionCtrl = 0x79,
- Q931_Information = 0x7B,
- Q931_Notify = 0x6E,
- Q931_Status = 0x7D,
- Q931_StatusEnquiry = 0x75,
- Q931_Facility = 0x62
- } MessageType;
- H323_UserInformation UUIE;
-} Q931;
-
-/*****************************************************************************
- * Decode Functions Return Codes
- ****************************************************************************/
-
-#define H323_ERROR_NONE 0 /* Decoded successfully */
-#define H323_ERROR_STOP 1 /* Decoding stopped, not really an error */
-#define H323_ERROR_BOUND -1
-#define H323_ERROR_RANGE -2
-
-
-/*****************************************************************************
- * Decode Functions
- ****************************************************************************/
-
-int DecodeRasMessage(unsigned char *buf, size_t sz, RasMessage * ras);
-int DecodeQ931(unsigned char *buf, size_t sz, Q931 * q931);
-int DecodeMultimediaSystemControlMessage(unsigned char *buf, size_t sz,
- MultimediaSystemControlMessage *
- mscm);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_h323_types.h b/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_h323_types.h
deleted file mode 100644
index f35b6b48..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_h323_types.h
+++ /dev/null
@@ -1,934 +0,0 @@
-/* Generated by Jing Min Zhao's ASN.1 parser, May 16 2007
- *
- * Copyright (c) 2006 Jing Min Zhao <zhaojingmin@users.sourceforge.net>
- *
- * This source code is licensed under General Public License version 2.
- */
-
-typedef struct TransportAddress_ipAddress { /* SEQUENCE */
- int options; /* No use */
- unsigned ip;
-} TransportAddress_ipAddress;
-
-typedef struct TransportAddress_ip6Address { /* SEQUENCE */
- int options; /* No use */
- unsigned ip;
-} TransportAddress_ip6Address;
-
-typedef struct TransportAddress { /* CHOICE */
- enum {
- eTransportAddress_ipAddress,
- eTransportAddress_ipSourceRoute,
- eTransportAddress_ipxAddress,
- eTransportAddress_ip6Address,
- eTransportAddress_netBios,
- eTransportAddress_nsap,
- eTransportAddress_nonStandardAddress,
- } choice;
- union {
- TransportAddress_ipAddress ipAddress;
- TransportAddress_ip6Address ip6Address;
- };
-} TransportAddress;
-
-typedef struct DataProtocolCapability { /* CHOICE */
- enum {
- eDataProtocolCapability_nonStandard,
- eDataProtocolCapability_v14buffered,
- eDataProtocolCapability_v42lapm,
- eDataProtocolCapability_hdlcFrameTunnelling,
- eDataProtocolCapability_h310SeparateVCStack,
- eDataProtocolCapability_h310SingleVCStack,
- eDataProtocolCapability_transparent,
- eDataProtocolCapability_segmentationAndReassembly,
- eDataProtocolCapability_hdlcFrameTunnelingwSAR,
- eDataProtocolCapability_v120,
- eDataProtocolCapability_separateLANStack,
- eDataProtocolCapability_v76wCompression,
- eDataProtocolCapability_tcp,
- eDataProtocolCapability_udp,
- } choice;
-} DataProtocolCapability;
-
-typedef struct DataApplicationCapability_application { /* CHOICE */
- enum {
- eDataApplicationCapability_application_nonStandard,
- eDataApplicationCapability_application_t120,
- eDataApplicationCapability_application_dsm_cc,
- eDataApplicationCapability_application_userData,
- eDataApplicationCapability_application_t84,
- eDataApplicationCapability_application_t434,
- eDataApplicationCapability_application_h224,
- eDataApplicationCapability_application_nlpid,
- eDataApplicationCapability_application_dsvdControl,
- eDataApplicationCapability_application_h222DataPartitioning,
- eDataApplicationCapability_application_t30fax,
- eDataApplicationCapability_application_t140,
- eDataApplicationCapability_application_t38fax,
- eDataApplicationCapability_application_genericDataCapability,
- } choice;
- union {
- DataProtocolCapability t120;
- };
-} DataApplicationCapability_application;
-
-typedef struct DataApplicationCapability { /* SEQUENCE */
- int options; /* No use */
- DataApplicationCapability_application application;
-} DataApplicationCapability;
-
-typedef struct DataType { /* CHOICE */
- enum {
- eDataType_nonStandard,
- eDataType_nullData,
- eDataType_videoData,
- eDataType_audioData,
- eDataType_data,
- eDataType_encryptionData,
- eDataType_h235Control,
- eDataType_h235Media,
- eDataType_multiplexedStream,
- } choice;
- union {
- DataApplicationCapability data;
- };
-} DataType;
-
-typedef struct UnicastAddress_iPAddress { /* SEQUENCE */
- int options; /* No use */
- unsigned network;
-} UnicastAddress_iPAddress;
-
-typedef struct UnicastAddress_iP6Address { /* SEQUENCE */
- int options; /* No use */
- unsigned network;
-} UnicastAddress_iP6Address;
-
-typedef struct UnicastAddress { /* CHOICE */
- enum {
- eUnicastAddress_iPAddress,
- eUnicastAddress_iPXAddress,
- eUnicastAddress_iP6Address,
- eUnicastAddress_netBios,
- eUnicastAddress_iPSourceRouteAddress,
- eUnicastAddress_nsap,
- eUnicastAddress_nonStandardAddress,
- } choice;
- union {
- UnicastAddress_iPAddress iPAddress;
- UnicastAddress_iP6Address iP6Address;
- };
-} UnicastAddress;
-
-typedef struct H245_TransportAddress { /* CHOICE */
- enum {
- eH245_TransportAddress_unicastAddress,
- eH245_TransportAddress_multicastAddress,
- } choice;
- union {
- UnicastAddress unicastAddress;
- };
-} H245_TransportAddress;
-
-typedef struct H2250LogicalChannelParameters { /* SEQUENCE */
- enum {
- eH2250LogicalChannelParameters_nonStandard = (1 << 31),
- eH2250LogicalChannelParameters_associatedSessionID =
- (1 << 30),
- eH2250LogicalChannelParameters_mediaChannel = (1 << 29),
- eH2250LogicalChannelParameters_mediaGuaranteedDelivery =
- (1 << 28),
- eH2250LogicalChannelParameters_mediaControlChannel =
- (1 << 27),
- eH2250LogicalChannelParameters_mediaControlGuaranteedDelivery
- = (1 << 26),
- eH2250LogicalChannelParameters_silenceSuppression = (1 << 25),
- eH2250LogicalChannelParameters_destination = (1 << 24),
- eH2250LogicalChannelParameters_dynamicRTPPayloadType =
- (1 << 23),
- eH2250LogicalChannelParameters_mediaPacketization = (1 << 22),
- eH2250LogicalChannelParameters_transportCapability =
- (1 << 21),
- eH2250LogicalChannelParameters_redundancyEncoding = (1 << 20),
- eH2250LogicalChannelParameters_source = (1 << 19),
- } options;
- H245_TransportAddress mediaChannel;
- H245_TransportAddress mediaControlChannel;
-} H2250LogicalChannelParameters;
-
-typedef struct OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters { /* CHOICE */
- enum {
- eOpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_h222LogicalChannelParameters,
- eOpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_h223LogicalChannelParameters,
- eOpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_v76LogicalChannelParameters,
- eOpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_h2250LogicalChannelParameters,
- eOpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_none,
- } choice;
- union {
- H2250LogicalChannelParameters h2250LogicalChannelParameters;
- };
-} OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters;
-
-typedef struct OpenLogicalChannel_forwardLogicalChannelParameters { /* SEQUENCE */
- enum {
- eOpenLogicalChannel_forwardLogicalChannelParameters_portNumber
- = (1 << 31),
- eOpenLogicalChannel_forwardLogicalChannelParameters_forwardLogicalChannelDependency
- = (1 << 30),
- eOpenLogicalChannel_forwardLogicalChannelParameters_replacementFor
- = (1 << 29),
- } options;
- DataType dataType;
- OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters
- multiplexParameters;
-} OpenLogicalChannel_forwardLogicalChannelParameters;
-
-typedef struct OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters { /* CHOICE */
- enum {
- eOpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters_h223LogicalChannelParameters,
- eOpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters_v76LogicalChannelParameters,
- eOpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters_h2250LogicalChannelParameters,
- } choice;
- union {
- H2250LogicalChannelParameters h2250LogicalChannelParameters;
- };
-} OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters;
-
-typedef struct OpenLogicalChannel_reverseLogicalChannelParameters { /* SEQUENCE */
- enum {
- eOpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters
- = (1 << 31),
- eOpenLogicalChannel_reverseLogicalChannelParameters_reverseLogicalChannelDependency
- = (1 << 30),
- eOpenLogicalChannel_reverseLogicalChannelParameters_replacementFor
- = (1 << 29),
- } options;
- OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters
- multiplexParameters;
-} OpenLogicalChannel_reverseLogicalChannelParameters;
-
-typedef struct NetworkAccessParameters_networkAddress { /* CHOICE */
- enum {
- eNetworkAccessParameters_networkAddress_q2931Address,
- eNetworkAccessParameters_networkAddress_e164Address,
- eNetworkAccessParameters_networkAddress_localAreaAddress,
- } choice;
- union {
- H245_TransportAddress localAreaAddress;
- };
-} NetworkAccessParameters_networkAddress;
-
-typedef struct NetworkAccessParameters { /* SEQUENCE */
- enum {
- eNetworkAccessParameters_distribution = (1 << 31),
- eNetworkAccessParameters_externalReference = (1 << 30),
- eNetworkAccessParameters_t120SetupProcedure = (1 << 29),
- } options;
- NetworkAccessParameters_networkAddress networkAddress;
-} NetworkAccessParameters;
-
-typedef struct OpenLogicalChannel { /* SEQUENCE */
- enum {
- eOpenLogicalChannel_reverseLogicalChannelParameters =
- (1 << 31),
- eOpenLogicalChannel_separateStack = (1 << 30),
- eOpenLogicalChannel_encryptionSync = (1 << 29),
- } options;
- OpenLogicalChannel_forwardLogicalChannelParameters
- forwardLogicalChannelParameters;
- OpenLogicalChannel_reverseLogicalChannelParameters
- reverseLogicalChannelParameters;
- NetworkAccessParameters separateStack;
-} OpenLogicalChannel;
-
-typedef struct Setup_UUIE_fastStart { /* SEQUENCE OF */
- int count;
- OpenLogicalChannel item[30];
-} Setup_UUIE_fastStart;
-
-typedef struct Setup_UUIE { /* SEQUENCE */
- enum {
- eSetup_UUIE_h245Address = (1 << 31),
- eSetup_UUIE_sourceAddress = (1 << 30),
- eSetup_UUIE_destinationAddress = (1 << 29),
- eSetup_UUIE_destCallSignalAddress = (1 << 28),
- eSetup_UUIE_destExtraCallInfo = (1 << 27),
- eSetup_UUIE_destExtraCRV = (1 << 26),
- eSetup_UUIE_callServices = (1 << 25),
- eSetup_UUIE_sourceCallSignalAddress = (1 << 24),
- eSetup_UUIE_remoteExtensionAddress = (1 << 23),
- eSetup_UUIE_callIdentifier = (1 << 22),
- eSetup_UUIE_h245SecurityCapability = (1 << 21),
- eSetup_UUIE_tokens = (1 << 20),
- eSetup_UUIE_cryptoTokens = (1 << 19),
- eSetup_UUIE_fastStart = (1 << 18),
- eSetup_UUIE_mediaWaitForConnect = (1 << 17),
- eSetup_UUIE_canOverlapSend = (1 << 16),
- eSetup_UUIE_endpointIdentifier = (1 << 15),
- eSetup_UUIE_multipleCalls = (1 << 14),
- eSetup_UUIE_maintainConnection = (1 << 13),
- eSetup_UUIE_connectionParameters = (1 << 12),
- eSetup_UUIE_language = (1 << 11),
- eSetup_UUIE_presentationIndicator = (1 << 10),
- eSetup_UUIE_screeningIndicator = (1 << 9),
- eSetup_UUIE_serviceControl = (1 << 8),
- eSetup_UUIE_symmetricOperationRequired = (1 << 7),
- eSetup_UUIE_capacity = (1 << 6),
- eSetup_UUIE_circuitInfo = (1 << 5),
- eSetup_UUIE_desiredProtocols = (1 << 4),
- eSetup_UUIE_neededFeatures = (1 << 3),
- eSetup_UUIE_desiredFeatures = (1 << 2),
- eSetup_UUIE_supportedFeatures = (1 << 1),
- eSetup_UUIE_parallelH245Control = (1 << 0),
- } options;
- TransportAddress h245Address;
- TransportAddress destCallSignalAddress;
- TransportAddress sourceCallSignalAddress;
- Setup_UUIE_fastStart fastStart;
-} Setup_UUIE;
-
-typedef struct CallProceeding_UUIE_fastStart { /* SEQUENCE OF */
- int count;
- OpenLogicalChannel item[30];
-} CallProceeding_UUIE_fastStart;
-
-typedef struct CallProceeding_UUIE { /* SEQUENCE */
- enum {
- eCallProceeding_UUIE_h245Address = (1 << 31),
- eCallProceeding_UUIE_callIdentifier = (1 << 30),
- eCallProceeding_UUIE_h245SecurityMode = (1 << 29),
- eCallProceeding_UUIE_tokens = (1 << 28),
- eCallProceeding_UUIE_cryptoTokens = (1 << 27),
- eCallProceeding_UUIE_fastStart = (1 << 26),
- eCallProceeding_UUIE_multipleCalls = (1 << 25),
- eCallProceeding_UUIE_maintainConnection = (1 << 24),
- eCallProceeding_UUIE_fastConnectRefused = (1 << 23),
- eCallProceeding_UUIE_featureSet = (1 << 22),
- } options;
- TransportAddress h245Address;
- CallProceeding_UUIE_fastStart fastStart;
-} CallProceeding_UUIE;
-
-typedef struct Connect_UUIE_fastStart { /* SEQUENCE OF */
- int count;
- OpenLogicalChannel item[30];
-} Connect_UUIE_fastStart;
-
-typedef struct Connect_UUIE { /* SEQUENCE */
- enum {
- eConnect_UUIE_h245Address = (1 << 31),
- eConnect_UUIE_callIdentifier = (1 << 30),
- eConnect_UUIE_h245SecurityMode = (1 << 29),
- eConnect_UUIE_tokens = (1 << 28),
- eConnect_UUIE_cryptoTokens = (1 << 27),
- eConnect_UUIE_fastStart = (1 << 26),
- eConnect_UUIE_multipleCalls = (1 << 25),
- eConnect_UUIE_maintainConnection = (1 << 24),
- eConnect_UUIE_language = (1 << 23),
- eConnect_UUIE_connectedAddress = (1 << 22),
- eConnect_UUIE_presentationIndicator = (1 << 21),
- eConnect_UUIE_screeningIndicator = (1 << 20),
- eConnect_UUIE_fastConnectRefused = (1 << 19),
- eConnect_UUIE_serviceControl = (1 << 18),
- eConnect_UUIE_capacity = (1 << 17),
- eConnect_UUIE_featureSet = (1 << 16),
- } options;
- TransportAddress h245Address;
- Connect_UUIE_fastStart fastStart;
-} Connect_UUIE;
-
-typedef struct Alerting_UUIE_fastStart { /* SEQUENCE OF */
- int count;
- OpenLogicalChannel item[30];
-} Alerting_UUIE_fastStart;
-
-typedef struct Alerting_UUIE { /* SEQUENCE */
- enum {
- eAlerting_UUIE_h245Address = (1 << 31),
- eAlerting_UUIE_callIdentifier = (1 << 30),
- eAlerting_UUIE_h245SecurityMode = (1 << 29),
- eAlerting_UUIE_tokens = (1 << 28),
- eAlerting_UUIE_cryptoTokens = (1 << 27),
- eAlerting_UUIE_fastStart = (1 << 26),
- eAlerting_UUIE_multipleCalls = (1 << 25),
- eAlerting_UUIE_maintainConnection = (1 << 24),
- eAlerting_UUIE_alertingAddress = (1 << 23),
- eAlerting_UUIE_presentationIndicator = (1 << 22),
- eAlerting_UUIE_screeningIndicator = (1 << 21),
- eAlerting_UUIE_fastConnectRefused = (1 << 20),
- eAlerting_UUIE_serviceControl = (1 << 19),
- eAlerting_UUIE_capacity = (1 << 18),
- eAlerting_UUIE_featureSet = (1 << 17),
- } options;
- TransportAddress h245Address;
- Alerting_UUIE_fastStart fastStart;
-} Alerting_UUIE;
-
-typedef struct FacilityReason { /* CHOICE */
- enum {
- eFacilityReason_routeCallToGatekeeper,
- eFacilityReason_callForwarded,
- eFacilityReason_routeCallToMC,
- eFacilityReason_undefinedReason,
- eFacilityReason_conferenceListChoice,
- eFacilityReason_startH245,
- eFacilityReason_noH245,
- eFacilityReason_newTokens,
- eFacilityReason_featureSetUpdate,
- eFacilityReason_forwardedElements,
- eFacilityReason_transportedInformation,
- } choice;
-} FacilityReason;
-
-typedef struct Facility_UUIE_fastStart { /* SEQUENCE OF */
- int count;
- OpenLogicalChannel item[30];
-} Facility_UUIE_fastStart;
-
-typedef struct Facility_UUIE { /* SEQUENCE */
- enum {
- eFacility_UUIE_alternativeAddress = (1 << 31),
- eFacility_UUIE_alternativeAliasAddress = (1 << 30),
- eFacility_UUIE_conferenceID = (1 << 29),
- eFacility_UUIE_callIdentifier = (1 << 28),
- eFacility_UUIE_destExtraCallInfo = (1 << 27),
- eFacility_UUIE_remoteExtensionAddress = (1 << 26),
- eFacility_UUIE_tokens = (1 << 25),
- eFacility_UUIE_cryptoTokens = (1 << 24),
- eFacility_UUIE_conferences = (1 << 23),
- eFacility_UUIE_h245Address = (1 << 22),
- eFacility_UUIE_fastStart = (1 << 21),
- eFacility_UUIE_multipleCalls = (1 << 20),
- eFacility_UUIE_maintainConnection = (1 << 19),
- eFacility_UUIE_fastConnectRefused = (1 << 18),
- eFacility_UUIE_serviceControl = (1 << 17),
- eFacility_UUIE_circuitInfo = (1 << 16),
- eFacility_UUIE_featureSet = (1 << 15),
- eFacility_UUIE_destinationInfo = (1 << 14),
- eFacility_UUIE_h245SecurityMode = (1 << 13),
- } options;
- TransportAddress alternativeAddress;
- FacilityReason reason;
- TransportAddress h245Address;
- Facility_UUIE_fastStart fastStart;
-} Facility_UUIE;
-
-typedef struct Progress_UUIE_fastStart { /* SEQUENCE OF */
- int count;
- OpenLogicalChannel item[30];
-} Progress_UUIE_fastStart;
-
-typedef struct Progress_UUIE { /* SEQUENCE */
- enum {
- eProgress_UUIE_h245Address = (1 << 31),
- eProgress_UUIE_h245SecurityMode = (1 << 30),
- eProgress_UUIE_tokens = (1 << 29),
- eProgress_UUIE_cryptoTokens = (1 << 28),
- eProgress_UUIE_fastStart = (1 << 27),
- eProgress_UUIE_multipleCalls = (1 << 26),
- eProgress_UUIE_maintainConnection = (1 << 25),
- eProgress_UUIE_fastConnectRefused = (1 << 24),
- } options;
- TransportAddress h245Address;
- Progress_UUIE_fastStart fastStart;
-} Progress_UUIE;
-
-typedef struct H323_UU_PDU_h323_message_body { /* CHOICE */
- enum {
- eH323_UU_PDU_h323_message_body_setup,
- eH323_UU_PDU_h323_message_body_callProceeding,
- eH323_UU_PDU_h323_message_body_connect,
- eH323_UU_PDU_h323_message_body_alerting,
- eH323_UU_PDU_h323_message_body_information,
- eH323_UU_PDU_h323_message_body_releaseComplete,
- eH323_UU_PDU_h323_message_body_facility,
- eH323_UU_PDU_h323_message_body_progress,
- eH323_UU_PDU_h323_message_body_empty,
- eH323_UU_PDU_h323_message_body_status,
- eH323_UU_PDU_h323_message_body_statusInquiry,
- eH323_UU_PDU_h323_message_body_setupAcknowledge,
- eH323_UU_PDU_h323_message_body_notify,
- } choice;
- union {
- Setup_UUIE setup;
- CallProceeding_UUIE callProceeding;
- Connect_UUIE connect;
- Alerting_UUIE alerting;
- Facility_UUIE facility;
- Progress_UUIE progress;
- };
-} H323_UU_PDU_h323_message_body;
-
-typedef struct RequestMessage { /* CHOICE */
- enum {
- eRequestMessage_nonStandard,
- eRequestMessage_masterSlaveDetermination,
- eRequestMessage_terminalCapabilitySet,
- eRequestMessage_openLogicalChannel,
- eRequestMessage_closeLogicalChannel,
- eRequestMessage_requestChannelClose,
- eRequestMessage_multiplexEntrySend,
- eRequestMessage_requestMultiplexEntry,
- eRequestMessage_requestMode,
- eRequestMessage_roundTripDelayRequest,
- eRequestMessage_maintenanceLoopRequest,
- eRequestMessage_communicationModeRequest,
- eRequestMessage_conferenceRequest,
- eRequestMessage_multilinkRequest,
- eRequestMessage_logicalChannelRateRequest,
- } choice;
- union {
- OpenLogicalChannel openLogicalChannel;
- };
-} RequestMessage;
-
-typedef struct OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters { /* CHOICE */
- enum {
- eOpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters_h222LogicalChannelParameters,
- eOpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters_h2250LogicalChannelParameters,
- } choice;
- union {
- H2250LogicalChannelParameters h2250LogicalChannelParameters;
- };
-} OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters;
-
-typedef struct OpenLogicalChannelAck_reverseLogicalChannelParameters { /* SEQUENCE */
- enum {
- eOpenLogicalChannelAck_reverseLogicalChannelParameters_portNumber
- = (1 << 31),
- eOpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters
- = (1 << 30),
- eOpenLogicalChannelAck_reverseLogicalChannelParameters_replacementFor
- = (1 << 29),
- } options;
- OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters
- multiplexParameters;
-} OpenLogicalChannelAck_reverseLogicalChannelParameters;
-
-typedef struct H2250LogicalChannelAckParameters { /* SEQUENCE */
- enum {
- eH2250LogicalChannelAckParameters_nonStandard = (1 << 31),
- eH2250LogicalChannelAckParameters_sessionID = (1 << 30),
- eH2250LogicalChannelAckParameters_mediaChannel = (1 << 29),
- eH2250LogicalChannelAckParameters_mediaControlChannel =
- (1 << 28),
- eH2250LogicalChannelAckParameters_dynamicRTPPayloadType =
- (1 << 27),
- eH2250LogicalChannelAckParameters_flowControlToZero =
- (1 << 26),
- eH2250LogicalChannelAckParameters_portNumber = (1 << 25),
- } options;
- H245_TransportAddress mediaChannel;
- H245_TransportAddress mediaControlChannel;
-} H2250LogicalChannelAckParameters;
-
-typedef struct OpenLogicalChannelAck_forwardMultiplexAckParameters { /* CHOICE */
- enum {
- eOpenLogicalChannelAck_forwardMultiplexAckParameters_h2250LogicalChannelAckParameters,
- } choice;
- union {
- H2250LogicalChannelAckParameters
- h2250LogicalChannelAckParameters;
- };
-} OpenLogicalChannelAck_forwardMultiplexAckParameters;
-
-typedef struct OpenLogicalChannelAck { /* SEQUENCE */
- enum {
- eOpenLogicalChannelAck_reverseLogicalChannelParameters =
- (1 << 31),
- eOpenLogicalChannelAck_separateStack = (1 << 30),
- eOpenLogicalChannelAck_forwardMultiplexAckParameters =
- (1 << 29),
- eOpenLogicalChannelAck_encryptionSync = (1 << 28),
- } options;
- OpenLogicalChannelAck_reverseLogicalChannelParameters
- reverseLogicalChannelParameters;
- NetworkAccessParameters separateStack;
- OpenLogicalChannelAck_forwardMultiplexAckParameters
- forwardMultiplexAckParameters;
-} OpenLogicalChannelAck;
-
-typedef struct ResponseMessage { /* CHOICE */
- enum {
- eResponseMessage_nonStandard,
- eResponseMessage_masterSlaveDeterminationAck,
- eResponseMessage_masterSlaveDeterminationReject,
- eResponseMessage_terminalCapabilitySetAck,
- eResponseMessage_terminalCapabilitySetReject,
- eResponseMessage_openLogicalChannelAck,
- eResponseMessage_openLogicalChannelReject,
- eResponseMessage_closeLogicalChannelAck,
- eResponseMessage_requestChannelCloseAck,
- eResponseMessage_requestChannelCloseReject,
- eResponseMessage_multiplexEntrySendAck,
- eResponseMessage_multiplexEntrySendReject,
- eResponseMessage_requestMultiplexEntryAck,
- eResponseMessage_requestMultiplexEntryReject,
- eResponseMessage_requestModeAck,
- eResponseMessage_requestModeReject,
- eResponseMessage_roundTripDelayResponse,
- eResponseMessage_maintenanceLoopAck,
- eResponseMessage_maintenanceLoopReject,
- eResponseMessage_communicationModeResponse,
- eResponseMessage_conferenceResponse,
- eResponseMessage_multilinkResponse,
- eResponseMessage_logicalChannelRateAcknowledge,
- eResponseMessage_logicalChannelRateReject,
- } choice;
- union {
- OpenLogicalChannelAck openLogicalChannelAck;
- };
-} ResponseMessage;
-
-typedef struct MultimediaSystemControlMessage { /* CHOICE */
- enum {
- eMultimediaSystemControlMessage_request,
- eMultimediaSystemControlMessage_response,
- eMultimediaSystemControlMessage_command,
- eMultimediaSystemControlMessage_indication,
- } choice;
- union {
- RequestMessage request;
- ResponseMessage response;
- };
-} MultimediaSystemControlMessage;
-
-typedef struct H323_UU_PDU_h245Control { /* SEQUENCE OF */
- int count;
- MultimediaSystemControlMessage item[4];
-} H323_UU_PDU_h245Control;
-
-typedef struct H323_UU_PDU { /* SEQUENCE */
- enum {
- eH323_UU_PDU_nonStandardData = (1 << 31),
- eH323_UU_PDU_h4501SupplementaryService = (1 << 30),
- eH323_UU_PDU_h245Tunneling = (1 << 29),
- eH323_UU_PDU_h245Control = (1 << 28),
- eH323_UU_PDU_nonStandardControl = (1 << 27),
- eH323_UU_PDU_callLinkage = (1 << 26),
- eH323_UU_PDU_tunnelledSignallingMessage = (1 << 25),
- eH323_UU_PDU_provisionalRespToH245Tunneling = (1 << 24),
- eH323_UU_PDU_stimulusControl = (1 << 23),
- eH323_UU_PDU_genericData = (1 << 22),
- } options;
- H323_UU_PDU_h323_message_body h323_message_body;
- H323_UU_PDU_h245Control h245Control;
-} H323_UU_PDU;
-
-typedef struct H323_UserInformation { /* SEQUENCE */
- enum {
- eH323_UserInformation_user_data = (1 << 31),
- } options;
- H323_UU_PDU h323_uu_pdu;
-} H323_UserInformation;
-
-typedef struct GatekeeperRequest { /* SEQUENCE */
- enum {
- eGatekeeperRequest_nonStandardData = (1 << 31),
- eGatekeeperRequest_gatekeeperIdentifier = (1 << 30),
- eGatekeeperRequest_callServices = (1 << 29),
- eGatekeeperRequest_endpointAlias = (1 << 28),
- eGatekeeperRequest_alternateEndpoints = (1 << 27),
- eGatekeeperRequest_tokens = (1 << 26),
- eGatekeeperRequest_cryptoTokens = (1 << 25),
- eGatekeeperRequest_authenticationCapability = (1 << 24),
- eGatekeeperRequest_algorithmOIDs = (1 << 23),
- eGatekeeperRequest_integrity = (1 << 22),
- eGatekeeperRequest_integrityCheckValue = (1 << 21),
- eGatekeeperRequest_supportsAltGK = (1 << 20),
- eGatekeeperRequest_featureSet = (1 << 19),
- eGatekeeperRequest_genericData = (1 << 18),
- } options;
- TransportAddress rasAddress;
-} GatekeeperRequest;
-
-typedef struct GatekeeperConfirm { /* SEQUENCE */
- enum {
- eGatekeeperConfirm_nonStandardData = (1 << 31),
- eGatekeeperConfirm_gatekeeperIdentifier = (1 << 30),
- eGatekeeperConfirm_alternateGatekeeper = (1 << 29),
- eGatekeeperConfirm_authenticationMode = (1 << 28),
- eGatekeeperConfirm_tokens = (1 << 27),
- eGatekeeperConfirm_cryptoTokens = (1 << 26),
- eGatekeeperConfirm_algorithmOID = (1 << 25),
- eGatekeeperConfirm_integrity = (1 << 24),
- eGatekeeperConfirm_integrityCheckValue = (1 << 23),
- eGatekeeperConfirm_featureSet = (1 << 22),
- eGatekeeperConfirm_genericData = (1 << 21),
- } options;
- TransportAddress rasAddress;
-} GatekeeperConfirm;
-
-typedef struct RegistrationRequest_callSignalAddress { /* SEQUENCE OF */
- int count;
- TransportAddress item[10];
-} RegistrationRequest_callSignalAddress;
-
-typedef struct RegistrationRequest_rasAddress { /* SEQUENCE OF */
- int count;
- TransportAddress item[10];
-} RegistrationRequest_rasAddress;
-
-typedef struct RegistrationRequest { /* SEQUENCE */
- enum {
- eRegistrationRequest_nonStandardData = (1 << 31),
- eRegistrationRequest_terminalAlias = (1 << 30),
- eRegistrationRequest_gatekeeperIdentifier = (1 << 29),
- eRegistrationRequest_alternateEndpoints = (1 << 28),
- eRegistrationRequest_timeToLive = (1 << 27),
- eRegistrationRequest_tokens = (1 << 26),
- eRegistrationRequest_cryptoTokens = (1 << 25),
- eRegistrationRequest_integrityCheckValue = (1 << 24),
- eRegistrationRequest_keepAlive = (1 << 23),
- eRegistrationRequest_endpointIdentifier = (1 << 22),
- eRegistrationRequest_willSupplyUUIEs = (1 << 21),
- eRegistrationRequest_maintainConnection = (1 << 20),
- eRegistrationRequest_alternateTransportAddresses = (1 << 19),
- eRegistrationRequest_additiveRegistration = (1 << 18),
- eRegistrationRequest_terminalAliasPattern = (1 << 17),
- eRegistrationRequest_supportsAltGK = (1 << 16),
- eRegistrationRequest_usageReportingCapability = (1 << 15),
- eRegistrationRequest_multipleCalls = (1 << 14),
- eRegistrationRequest_supportedH248Packages = (1 << 13),
- eRegistrationRequest_callCreditCapability = (1 << 12),
- eRegistrationRequest_capacityReportingCapability = (1 << 11),
- eRegistrationRequest_capacity = (1 << 10),
- eRegistrationRequest_featureSet = (1 << 9),
- eRegistrationRequest_genericData = (1 << 8),
- } options;
- RegistrationRequest_callSignalAddress callSignalAddress;
- RegistrationRequest_rasAddress rasAddress;
- unsigned timeToLive;
-} RegistrationRequest;
-
-typedef struct RegistrationConfirm_callSignalAddress { /* SEQUENCE OF */
- int count;
- TransportAddress item[10];
-} RegistrationConfirm_callSignalAddress;
-
-typedef struct RegistrationConfirm { /* SEQUENCE */
- enum {
- eRegistrationConfirm_nonStandardData = (1 << 31),
- eRegistrationConfirm_terminalAlias = (1 << 30),
- eRegistrationConfirm_gatekeeperIdentifier = (1 << 29),
- eRegistrationConfirm_alternateGatekeeper = (1 << 28),
- eRegistrationConfirm_timeToLive = (1 << 27),
- eRegistrationConfirm_tokens = (1 << 26),
- eRegistrationConfirm_cryptoTokens = (1 << 25),
- eRegistrationConfirm_integrityCheckValue = (1 << 24),
- eRegistrationConfirm_willRespondToIRR = (1 << 23),
- eRegistrationConfirm_preGrantedARQ = (1 << 22),
- eRegistrationConfirm_maintainConnection = (1 << 21),
- eRegistrationConfirm_serviceControl = (1 << 20),
- eRegistrationConfirm_supportsAdditiveRegistration = (1 << 19),
- eRegistrationConfirm_terminalAliasPattern = (1 << 18),
- eRegistrationConfirm_supportedPrefixes = (1 << 17),
- eRegistrationConfirm_usageSpec = (1 << 16),
- eRegistrationConfirm_featureServerAlias = (1 << 15),
- eRegistrationConfirm_capacityReportingSpec = (1 << 14),
- eRegistrationConfirm_featureSet = (1 << 13),
- eRegistrationConfirm_genericData = (1 << 12),
- } options;
- RegistrationConfirm_callSignalAddress callSignalAddress;
- unsigned timeToLive;
-} RegistrationConfirm;
-
-typedef struct UnregistrationRequest_callSignalAddress { /* SEQUENCE OF */
- int count;
- TransportAddress item[10];
-} UnregistrationRequest_callSignalAddress;
-
-typedef struct UnregistrationRequest { /* SEQUENCE */
- enum {
- eUnregistrationRequest_endpointAlias = (1 << 31),
- eUnregistrationRequest_nonStandardData = (1 << 30),
- eUnregistrationRequest_endpointIdentifier = (1 << 29),
- eUnregistrationRequest_alternateEndpoints = (1 << 28),
- eUnregistrationRequest_gatekeeperIdentifier = (1 << 27),
- eUnregistrationRequest_tokens = (1 << 26),
- eUnregistrationRequest_cryptoTokens = (1 << 25),
- eUnregistrationRequest_integrityCheckValue = (1 << 24),
- eUnregistrationRequest_reason = (1 << 23),
- eUnregistrationRequest_endpointAliasPattern = (1 << 22),
- eUnregistrationRequest_supportedPrefixes = (1 << 21),
- eUnregistrationRequest_alternateGatekeeper = (1 << 20),
- eUnregistrationRequest_genericData = (1 << 19),
- } options;
- UnregistrationRequest_callSignalAddress callSignalAddress;
-} UnregistrationRequest;
-
-typedef struct AdmissionRequest { /* SEQUENCE */
- enum {
- eAdmissionRequest_callModel = (1 << 31),
- eAdmissionRequest_destinationInfo = (1 << 30),
- eAdmissionRequest_destCallSignalAddress = (1 << 29),
- eAdmissionRequest_destExtraCallInfo = (1 << 28),
- eAdmissionRequest_srcCallSignalAddress = (1 << 27),
- eAdmissionRequest_nonStandardData = (1 << 26),
- eAdmissionRequest_callServices = (1 << 25),
- eAdmissionRequest_canMapAlias = (1 << 24),
- eAdmissionRequest_callIdentifier = (1 << 23),
- eAdmissionRequest_srcAlternatives = (1 << 22),
- eAdmissionRequest_destAlternatives = (1 << 21),
- eAdmissionRequest_gatekeeperIdentifier = (1 << 20),
- eAdmissionRequest_tokens = (1 << 19),
- eAdmissionRequest_cryptoTokens = (1 << 18),
- eAdmissionRequest_integrityCheckValue = (1 << 17),
- eAdmissionRequest_transportQOS = (1 << 16),
- eAdmissionRequest_willSupplyUUIEs = (1 << 15),
- eAdmissionRequest_callLinkage = (1 << 14),
- eAdmissionRequest_gatewayDataRate = (1 << 13),
- eAdmissionRequest_capacity = (1 << 12),
- eAdmissionRequest_circuitInfo = (1 << 11),
- eAdmissionRequest_desiredProtocols = (1 << 10),
- eAdmissionRequest_desiredTunnelledProtocol = (1 << 9),
- eAdmissionRequest_featureSet = (1 << 8),
- eAdmissionRequest_genericData = (1 << 7),
- } options;
- TransportAddress destCallSignalAddress;
- TransportAddress srcCallSignalAddress;
-} AdmissionRequest;
-
-typedef struct AdmissionConfirm { /* SEQUENCE */
- enum {
- eAdmissionConfirm_irrFrequency = (1 << 31),
- eAdmissionConfirm_nonStandardData = (1 << 30),
- eAdmissionConfirm_destinationInfo = (1 << 29),
- eAdmissionConfirm_destExtraCallInfo = (1 << 28),
- eAdmissionConfirm_destinationType = (1 << 27),
- eAdmissionConfirm_remoteExtensionAddress = (1 << 26),
- eAdmissionConfirm_alternateEndpoints = (1 << 25),
- eAdmissionConfirm_tokens = (1 << 24),
- eAdmissionConfirm_cryptoTokens = (1 << 23),
- eAdmissionConfirm_integrityCheckValue = (1 << 22),
- eAdmissionConfirm_transportQOS = (1 << 21),
- eAdmissionConfirm_willRespondToIRR = (1 << 20),
- eAdmissionConfirm_uuiesRequested = (1 << 19),
- eAdmissionConfirm_language = (1 << 18),
- eAdmissionConfirm_alternateTransportAddresses = (1 << 17),
- eAdmissionConfirm_useSpecifiedTransport = (1 << 16),
- eAdmissionConfirm_circuitInfo = (1 << 15),
- eAdmissionConfirm_usageSpec = (1 << 14),
- eAdmissionConfirm_supportedProtocols = (1 << 13),
- eAdmissionConfirm_serviceControl = (1 << 12),
- eAdmissionConfirm_multipleCalls = (1 << 11),
- eAdmissionConfirm_featureSet = (1 << 10),
- eAdmissionConfirm_genericData = (1 << 9),
- } options;
- TransportAddress destCallSignalAddress;
-} AdmissionConfirm;
-
-typedef struct LocationRequest { /* SEQUENCE */
- enum {
- eLocationRequest_endpointIdentifier = (1 << 31),
- eLocationRequest_nonStandardData = (1 << 30),
- eLocationRequest_sourceInfo = (1 << 29),
- eLocationRequest_canMapAlias = (1 << 28),
- eLocationRequest_gatekeeperIdentifier = (1 << 27),
- eLocationRequest_tokens = (1 << 26),
- eLocationRequest_cryptoTokens = (1 << 25),
- eLocationRequest_integrityCheckValue = (1 << 24),
- eLocationRequest_desiredProtocols = (1 << 23),
- eLocationRequest_desiredTunnelledProtocol = (1 << 22),
- eLocationRequest_featureSet = (1 << 21),
- eLocationRequest_genericData = (1 << 20),
- eLocationRequest_hopCount = (1 << 19),
- eLocationRequest_circuitInfo = (1 << 18),
- } options;
- TransportAddress replyAddress;
-} LocationRequest;
-
-typedef struct LocationConfirm { /* SEQUENCE */
- enum {
- eLocationConfirm_nonStandardData = (1 << 31),
- eLocationConfirm_destinationInfo = (1 << 30),
- eLocationConfirm_destExtraCallInfo = (1 << 29),
- eLocationConfirm_destinationType = (1 << 28),
- eLocationConfirm_remoteExtensionAddress = (1 << 27),
- eLocationConfirm_alternateEndpoints = (1 << 26),
- eLocationConfirm_tokens = (1 << 25),
- eLocationConfirm_cryptoTokens = (1 << 24),
- eLocationConfirm_integrityCheckValue = (1 << 23),
- eLocationConfirm_alternateTransportAddresses = (1 << 22),
- eLocationConfirm_supportedProtocols = (1 << 21),
- eLocationConfirm_multipleCalls = (1 << 20),
- eLocationConfirm_featureSet = (1 << 19),
- eLocationConfirm_genericData = (1 << 18),
- eLocationConfirm_circuitInfo = (1 << 17),
- eLocationConfirm_serviceControl = (1 << 16),
- } options;
- TransportAddress callSignalAddress;
- TransportAddress rasAddress;
-} LocationConfirm;
-
-typedef struct InfoRequestResponse_callSignalAddress { /* SEQUENCE OF */
- int count;
- TransportAddress item[10];
-} InfoRequestResponse_callSignalAddress;
-
-typedef struct InfoRequestResponse { /* SEQUENCE */
- enum {
- eInfoRequestResponse_nonStandardData = (1 << 31),
- eInfoRequestResponse_endpointAlias = (1 << 30),
- eInfoRequestResponse_perCallInfo = (1 << 29),
- eInfoRequestResponse_tokens = (1 << 28),
- eInfoRequestResponse_cryptoTokens = (1 << 27),
- eInfoRequestResponse_integrityCheckValue = (1 << 26),
- eInfoRequestResponse_needResponse = (1 << 25),
- eInfoRequestResponse_capacity = (1 << 24),
- eInfoRequestResponse_irrStatus = (1 << 23),
- eInfoRequestResponse_unsolicited = (1 << 22),
- eInfoRequestResponse_genericData = (1 << 21),
- } options;
- TransportAddress rasAddress;
- InfoRequestResponse_callSignalAddress callSignalAddress;
-} InfoRequestResponse;
-
-typedef struct RasMessage { /* CHOICE */
- enum {
- eRasMessage_gatekeeperRequest,
- eRasMessage_gatekeeperConfirm,
- eRasMessage_gatekeeperReject,
- eRasMessage_registrationRequest,
- eRasMessage_registrationConfirm,
- eRasMessage_registrationReject,
- eRasMessage_unregistrationRequest,
- eRasMessage_unregistrationConfirm,
- eRasMessage_unregistrationReject,
- eRasMessage_admissionRequest,
- eRasMessage_admissionConfirm,
- eRasMessage_admissionReject,
- eRasMessage_bandwidthRequest,
- eRasMessage_bandwidthConfirm,
- eRasMessage_bandwidthReject,
- eRasMessage_disengageRequest,
- eRasMessage_disengageConfirm,
- eRasMessage_disengageReject,
- eRasMessage_locationRequest,
- eRasMessage_locationConfirm,
- eRasMessage_locationReject,
- eRasMessage_infoRequest,
- eRasMessage_infoRequestResponse,
- eRasMessage_nonStandardMessage,
- eRasMessage_unknownMessageResponse,
- eRasMessage_requestInProgress,
- eRasMessage_resourcesAvailableIndicate,
- eRasMessage_resourcesAvailableConfirm,
- eRasMessage_infoRequestAck,
- eRasMessage_infoRequestNak,
- eRasMessage_serviceControlIndication,
- eRasMessage_serviceControlResponse,
- } choice;
- union {
- GatekeeperRequest gatekeeperRequest;
- GatekeeperConfirm gatekeeperConfirm;
- RegistrationRequest registrationRequest;
- RegistrationConfirm registrationConfirm;
- UnregistrationRequest unregistrationRequest;
- AdmissionRequest admissionRequest;
- AdmissionConfirm admissionConfirm;
- LocationRequest locationRequest;
- LocationConfirm locationConfirm;
- InfoRequestResponse infoRequestResponse;
- };
-} RasMessage;
diff --git a/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_irc.h b/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_irc.h
deleted file mode 100644
index 36282bf7..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_irc.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef _NF_CONNTRACK_IRC_H
-#define _NF_CONNTRACK_IRC_H
-
-#ifdef __KERNEL__
-
-#define IRC_PORT 6667
-
-extern unsigned int (*nf_nat_irc_hook)(struct sk_buff *skb,
- enum ip_conntrack_info ctinfo,
- unsigned int matchoff,
- unsigned int matchlen,
- struct nf_conntrack_expect *exp);
-
-#endif /* __KERNEL__ */
-#endif /* _NF_CONNTRACK_IRC_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_pptp.h b/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_pptp.h
deleted file mode 100644
index 3bbde0c3..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_pptp.h
+++ /dev/null
@@ -1,324 +0,0 @@
-/* PPTP constants and structs */
-#ifndef _NF_CONNTRACK_PPTP_H
-#define _NF_CONNTRACK_PPTP_H
-
-#include <linux/netfilter/nf_conntrack_common.h>
-
-extern const char *const pptp_msg_name[];
-
-/* state of the control session */
-enum pptp_ctrlsess_state {
- PPTP_SESSION_NONE, /* no session present */
- PPTP_SESSION_ERROR, /* some session error */
- PPTP_SESSION_STOPREQ, /* stop_sess request seen */
- PPTP_SESSION_REQUESTED, /* start_sess request seen */
- PPTP_SESSION_CONFIRMED, /* session established */
-};
-
-/* state of the call inside the control session */
-enum pptp_ctrlcall_state {
- PPTP_CALL_NONE,
- PPTP_CALL_ERROR,
- PPTP_CALL_OUT_REQ,
- PPTP_CALL_OUT_CONF,
- PPTP_CALL_IN_REQ,
- PPTP_CALL_IN_REP,
- PPTP_CALL_IN_CONF,
- PPTP_CALL_CLEAR_REQ,
-};
-
-/* conntrack private data */
-struct nf_ct_pptp_master {
- enum pptp_ctrlsess_state sstate; /* session state */
- enum pptp_ctrlcall_state cstate; /* call state */
- __be16 pac_call_id; /* call id of PAC */
- __be16 pns_call_id; /* call id of PNS */
-
- /* in pre-2.6.11 this used to be per-expect. Now it is per-conntrack
- * and therefore imposes a fixed limit on the number of maps */
- struct nf_ct_gre_keymap *keymap[IP_CT_DIR_MAX];
-};
-
-struct nf_nat_pptp {
- __be16 pns_call_id; /* NAT'ed PNS call id */
- __be16 pac_call_id; /* NAT'ed PAC call id */
-};
-
-#ifdef __KERNEL__
-
-#define PPTP_CONTROL_PORT 1723
-
-#define PPTP_PACKET_CONTROL 1
-#define PPTP_PACKET_MGMT 2
-
-#define PPTP_MAGIC_COOKIE 0x1a2b3c4d
-
-struct pptp_pkt_hdr {
- __u16 packetLength;
- __be16 packetType;
- __be32 magicCookie;
-};
-
-/* PptpControlMessageType values */
-#define PPTP_START_SESSION_REQUEST 1
-#define PPTP_START_SESSION_REPLY 2
-#define PPTP_STOP_SESSION_REQUEST 3
-#define PPTP_STOP_SESSION_REPLY 4
-#define PPTP_ECHO_REQUEST 5
-#define PPTP_ECHO_REPLY 6
-#define PPTP_OUT_CALL_REQUEST 7
-#define PPTP_OUT_CALL_REPLY 8
-#define PPTP_IN_CALL_REQUEST 9
-#define PPTP_IN_CALL_REPLY 10
-#define PPTP_IN_CALL_CONNECT 11
-#define PPTP_CALL_CLEAR_REQUEST 12
-#define PPTP_CALL_DISCONNECT_NOTIFY 13
-#define PPTP_WAN_ERROR_NOTIFY 14
-#define PPTP_SET_LINK_INFO 15
-
-#define PPTP_MSG_MAX 15
-
-/* PptpGeneralError values */
-#define PPTP_ERROR_CODE_NONE 0
-#define PPTP_NOT_CONNECTED 1
-#define PPTP_BAD_FORMAT 2
-#define PPTP_BAD_VALUE 3
-#define PPTP_NO_RESOURCE 4
-#define PPTP_BAD_CALLID 5
-#define PPTP_REMOVE_DEVICE_ERROR 6
-
-struct PptpControlHeader {
- __be16 messageType;
- __u16 reserved;
-};
-
-/* FramingCapability Bitmap Values */
-#define PPTP_FRAME_CAP_ASYNC 0x1
-#define PPTP_FRAME_CAP_SYNC 0x2
-
-/* BearerCapability Bitmap Values */
-#define PPTP_BEARER_CAP_ANALOG 0x1
-#define PPTP_BEARER_CAP_DIGITAL 0x2
-
-struct PptpStartSessionRequest {
- __be16 protocolVersion;
- __u16 reserved1;
- __be32 framingCapability;
- __be32 bearerCapability;
- __be16 maxChannels;
- __be16 firmwareRevision;
- __u8 hostName[64];
- __u8 vendorString[64];
-};
-
-/* PptpStartSessionResultCode Values */
-#define PPTP_START_OK 1
-#define PPTP_START_GENERAL_ERROR 2
-#define PPTP_START_ALREADY_CONNECTED 3
-#define PPTP_START_NOT_AUTHORIZED 4
-#define PPTP_START_UNKNOWN_PROTOCOL 5
-
-struct PptpStartSessionReply {
- __be16 protocolVersion;
- __u8 resultCode;
- __u8 generalErrorCode;
- __be32 framingCapability;
- __be32 bearerCapability;
- __be16 maxChannels;
- __be16 firmwareRevision;
- __u8 hostName[64];
- __u8 vendorString[64];
-};
-
-/* PptpStopReasons */
-#define PPTP_STOP_NONE 1
-#define PPTP_STOP_PROTOCOL 2
-#define PPTP_STOP_LOCAL_SHUTDOWN 3
-
-struct PptpStopSessionRequest {
- __u8 reason;
- __u8 reserved1;
- __u16 reserved2;
-};
-
-/* PptpStopSessionResultCode */
-#define PPTP_STOP_OK 1
-#define PPTP_STOP_GENERAL_ERROR 2
-
-struct PptpStopSessionReply {
- __u8 resultCode;
- __u8 generalErrorCode;
- __u16 reserved1;
-};
-
-struct PptpEchoRequest {
- __be32 identNumber;
-};
-
-/* PptpEchoReplyResultCode */
-#define PPTP_ECHO_OK 1
-#define PPTP_ECHO_GENERAL_ERROR 2
-
-struct PptpEchoReply {
- __be32 identNumber;
- __u8 resultCode;
- __u8 generalErrorCode;
- __u16 reserved;
-};
-
-/* PptpFramingType */
-#define PPTP_ASYNC_FRAMING 1
-#define PPTP_SYNC_FRAMING 2
-#define PPTP_DONT_CARE_FRAMING 3
-
-/* PptpCallBearerType */
-#define PPTP_ANALOG_TYPE 1
-#define PPTP_DIGITAL_TYPE 2
-#define PPTP_DONT_CARE_BEARER_TYPE 3
-
-struct PptpOutCallRequest {
- __be16 callID;
- __be16 callSerialNumber;
- __be32 minBPS;
- __be32 maxBPS;
- __be32 bearerType;
- __be32 framingType;
- __be16 packetWindow;
- __be16 packetProcDelay;
- __be16 phoneNumberLength;
- __u16 reserved1;
- __u8 phoneNumber[64];
- __u8 subAddress[64];
-};
-
-/* PptpCallResultCode */
-#define PPTP_OUTCALL_CONNECT 1
-#define PPTP_OUTCALL_GENERAL_ERROR 2
-#define PPTP_OUTCALL_NO_CARRIER 3
-#define PPTP_OUTCALL_BUSY 4
-#define PPTP_OUTCALL_NO_DIAL_TONE 5
-#define PPTP_OUTCALL_TIMEOUT 6
-#define PPTP_OUTCALL_DONT_ACCEPT 7
-
-struct PptpOutCallReply {
- __be16 callID;
- __be16 peersCallID;
- __u8 resultCode;
- __u8 generalErrorCode;
- __be16 causeCode;
- __be32 connectSpeed;
- __be16 packetWindow;
- __be16 packetProcDelay;
- __be32 physChannelID;
-};
-
-struct PptpInCallRequest {
- __be16 callID;
- __be16 callSerialNumber;
- __be32 callBearerType;
- __be32 physChannelID;
- __be16 dialedNumberLength;
- __be16 dialingNumberLength;
- __u8 dialedNumber[64];
- __u8 dialingNumber[64];
- __u8 subAddress[64];
-};
-
-/* PptpInCallResultCode */
-#define PPTP_INCALL_ACCEPT 1
-#define PPTP_INCALL_GENERAL_ERROR 2
-#define PPTP_INCALL_DONT_ACCEPT 3
-
-struct PptpInCallReply {
- __be16 callID;
- __be16 peersCallID;
- __u8 resultCode;
- __u8 generalErrorCode;
- __be16 packetWindow;
- __be16 packetProcDelay;
- __u16 reserved;
-};
-
-struct PptpInCallConnected {
- __be16 peersCallID;
- __u16 reserved;
- __be32 connectSpeed;
- __be16 packetWindow;
- __be16 packetProcDelay;
- __be32 callFramingType;
-};
-
-struct PptpClearCallRequest {
- __be16 callID;
- __u16 reserved;
-};
-
-struct PptpCallDisconnectNotify {
- __be16 callID;
- __u8 resultCode;
- __u8 generalErrorCode;
- __be16 causeCode;
- __u16 reserved;
- __u8 callStatistics[128];
-};
-
-struct PptpWanErrorNotify {
- __be16 peersCallID;
- __u16 reserved;
- __be32 crcErrors;
- __be32 framingErrors;
- __be32 hardwareOverRuns;
- __be32 bufferOverRuns;
- __be32 timeoutErrors;
- __be32 alignmentErrors;
-};
-
-struct PptpSetLinkInfo {
- __be16 peersCallID;
- __u16 reserved;
- __be32 sendAccm;
- __be32 recvAccm;
-};
-
-union pptp_ctrl_union {
- struct PptpStartSessionRequest sreq;
- struct PptpStartSessionReply srep;
- struct PptpStopSessionRequest streq;
- struct PptpStopSessionReply strep;
- struct PptpOutCallRequest ocreq;
- struct PptpOutCallReply ocack;
- struct PptpInCallRequest icreq;
- struct PptpInCallReply icack;
- struct PptpInCallConnected iccon;
- struct PptpClearCallRequest clrreq;
- struct PptpCallDisconnectNotify disc;
- struct PptpWanErrorNotify wanerr;
- struct PptpSetLinkInfo setlink;
-};
-
-/* crap needed for nf_conntrack_compat.h */
-struct nf_conn;
-struct nf_conntrack_expect;
-
-extern int
-(*nf_nat_pptp_hook_outbound)(struct sk_buff *skb,
- struct nf_conn *ct, enum ip_conntrack_info ctinfo,
- struct PptpControlHeader *ctlh,
- union pptp_ctrl_union *pptpReq);
-
-extern int
-(*nf_nat_pptp_hook_inbound)(struct sk_buff *skb,
- struct nf_conn *ct, enum ip_conntrack_info ctinfo,
- struct PptpControlHeader *ctlh,
- union pptp_ctrl_union *pptpReq);
-
-extern void
-(*nf_nat_pptp_hook_exp_gre)(struct nf_conntrack_expect *exp_orig,
- struct nf_conntrack_expect *exp_reply);
-
-extern void
-(*nf_nat_pptp_hook_expectfn)(struct nf_conn *ct,
- struct nf_conntrack_expect *exp);
-
-#endif /* __KERNEL__ */
-#endif /* _NF_CONNTRACK_PPTP_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_proto_gre.h b/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_proto_gre.h
deleted file mode 100644
index 6a0664c0..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_proto_gre.h
+++ /dev/null
@@ -1,94 +0,0 @@
-#ifndef _CONNTRACK_PROTO_GRE_H
-#define _CONNTRACK_PROTO_GRE_H
-#include <asm/byteorder.h>
-
-/* GRE PROTOCOL HEADER */
-
-/* GRE Version field */
-#define GRE_VERSION_1701 0x0
-#define GRE_VERSION_PPTP 0x1
-
-/* GRE Protocol field */
-#define GRE_PROTOCOL_PPTP 0x880B
-
-/* GRE Flags */
-#define GRE_FLAG_C 0x80
-#define GRE_FLAG_R 0x40
-#define GRE_FLAG_K 0x20
-#define GRE_FLAG_S 0x10
-#define GRE_FLAG_A 0x80
-
-#define GRE_IS_C(f) ((f)&GRE_FLAG_C)
-#define GRE_IS_R(f) ((f)&GRE_FLAG_R)
-#define GRE_IS_K(f) ((f)&GRE_FLAG_K)
-#define GRE_IS_S(f) ((f)&GRE_FLAG_S)
-#define GRE_IS_A(f) ((f)&GRE_FLAG_A)
-
-/* GRE is a mess: Four different standards */
-struct gre_hdr {
-#if defined(__LITTLE_ENDIAN_BITFIELD)
- __u16 rec:3,
- srr:1,
- seq:1,
- key:1,
- routing:1,
- csum:1,
- version:3,
- reserved:4,
- ack:1;
-#elif defined(__BIG_ENDIAN_BITFIELD)
- __u16 csum:1,
- routing:1,
- key:1,
- seq:1,
- srr:1,
- rec:3,
- ack:1,
- reserved:4,
- version:3;
-#else
-#error "Adjust your <asm/byteorder.h> defines"
-#endif
- __be16 protocol;
-};
-
-/* modified GRE header for PPTP */
-struct gre_hdr_pptp {
- __u8 flags; /* bitfield */
- __u8 version; /* should be GRE_VERSION_PPTP */
- __be16 protocol; /* should be GRE_PROTOCOL_PPTP */
- __be16 payload_len; /* size of ppp payload, not inc. gre header */
- __be16 call_id; /* peer's call_id for this session */
- __be32 seq; /* sequence number. Present if S==1 */
- __be32 ack; /* seq number of highest packet received by */
- /* sender in this session */
-};
-
-struct nf_ct_gre {
- unsigned int stream_timeout;
- unsigned int timeout;
-};
-
-#ifdef __KERNEL__
-#include <net/netfilter/nf_conntrack_tuple.h>
-
-struct nf_conn;
-
-/* structure for original <-> reply keymap */
-struct nf_ct_gre_keymap {
- struct list_head list;
- struct nf_conntrack_tuple tuple;
-};
-
-/* add new tuple->key_reply pair to keymap */
-int nf_ct_gre_keymap_add(struct nf_conn *ct, enum ip_conntrack_dir dir,
- struct nf_conntrack_tuple *t);
-
-/* delete keymap entries */
-void nf_ct_gre_keymap_destroy(struct nf_conn *ct);
-
-extern void nf_ct_gre_keymap_flush(struct net *net);
-extern void nf_nat_need_gre(void);
-
-#endif /* __KERNEL__ */
-#endif /* _CONNTRACK_PROTO_GRE_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_sane.h b/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_sane.h
deleted file mode 100644
index 4767d6e2..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_sane.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef _NF_CONNTRACK_SANE_H
-#define _NF_CONNTRACK_SANE_H
-/* SANE tracking. */
-
-#ifdef __KERNEL__
-
-#define SANE_PORT 6566
-
-enum sane_state {
- SANE_STATE_NORMAL,
- SANE_STATE_START_REQUESTED,
-};
-
-/* This structure exists only once per master */
-struct nf_ct_sane_master {
- enum sane_state state;
-};
-
-#endif /* __KERNEL__ */
-
-#endif /* _NF_CONNTRACK_SANE_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_sctp.h b/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_sctp.h
deleted file mode 100644
index ceeefe66..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_sctp.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef _NF_CONNTRACK_SCTP_H
-#define _NF_CONNTRACK_SCTP_H
-/* SCTP tracking. */
-
-#include <linux/netfilter/nf_conntrack_tuple_common.h>
-
-enum sctp_conntrack {
- SCTP_CONNTRACK_NONE,
- SCTP_CONNTRACK_CLOSED,
- SCTP_CONNTRACK_COOKIE_WAIT,
- SCTP_CONNTRACK_COOKIE_ECHOED,
- SCTP_CONNTRACK_ESTABLISHED,
- SCTP_CONNTRACK_SHUTDOWN_SENT,
- SCTP_CONNTRACK_SHUTDOWN_RECD,
- SCTP_CONNTRACK_SHUTDOWN_ACK_SENT,
- SCTP_CONNTRACK_MAX
-};
-
-struct ip_ct_sctp {
- enum sctp_conntrack state;
-
- __be32 vtag[IP_CT_DIR_MAX];
-};
-
-#endif /* _NF_CONNTRACK_SCTP_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_sip.h b/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_sip.h
deleted file mode 100644
index 0ce91d56..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_sip.h
+++ /dev/null
@@ -1,179 +0,0 @@
-#ifndef __NF_CONNTRACK_SIP_H__
-#define __NF_CONNTRACK_SIP_H__
-#ifdef __KERNEL__
-
-#define SIP_PORT 5060
-#define SIP_TIMEOUT 3600
-
-struct nf_ct_sip_master {
- unsigned int register_cseq;
- unsigned int invite_cseq;
-};
-
-enum sip_expectation_classes {
- SIP_EXPECT_SIGNALLING,
- SIP_EXPECT_AUDIO,
- SIP_EXPECT_VIDEO,
- SIP_EXPECT_IMAGE,
- __SIP_EXPECT_MAX
-};
-#define SIP_EXPECT_MAX (__SIP_EXPECT_MAX - 1)
-
-struct sdp_media_type {
- const char *name;
- unsigned int len;
- enum sip_expectation_classes class;
-};
-
-#define SDP_MEDIA_TYPE(__name, __class) \
-{ \
- .name = (__name), \
- .len = sizeof(__name) - 1, \
- .class = (__class), \
-}
-
-struct sip_handler {
- const char *method;
- unsigned int len;
- int (*request)(struct sk_buff *skb, unsigned int dataoff,
- const char **dptr, unsigned int *datalen,
- unsigned int cseq);
- int (*response)(struct sk_buff *skb, unsigned int dataoff,
- const char **dptr, unsigned int *datalen,
- unsigned int cseq, unsigned int code);
-};
-
-#define SIP_HANDLER(__method, __request, __response) \
-{ \
- .method = (__method), \
- .len = sizeof(__method) - 1, \
- .request = (__request), \
- .response = (__response), \
-}
-
-struct sip_header {
- const char *name;
- const char *cname;
- const char *search;
- unsigned int len;
- unsigned int clen;
- unsigned int slen;
- int (*match_len)(const struct nf_conn *ct,
- const char *dptr, const char *limit,
- int *shift);
-};
-
-#define __SIP_HDR(__name, __cname, __search, __match) \
-{ \
- .name = (__name), \
- .len = sizeof(__name) - 1, \
- .cname = (__cname), \
- .clen = (__cname) ? sizeof(__cname) - 1 : 0, \
- .search = (__search), \
- .slen = (__search) ? sizeof(__search) - 1 : 0, \
- .match_len = (__match), \
-}
-
-#define SIP_HDR(__name, __cname, __search, __match) \
- __SIP_HDR(__name, __cname, __search, __match)
-
-#define SDP_HDR(__name, __search, __match) \
- __SIP_HDR(__name, NULL, __search, __match)
-
-enum sip_header_types {
- SIP_HDR_CSEQ,
- SIP_HDR_FROM,
- SIP_HDR_TO,
- SIP_HDR_CONTACT,
- SIP_HDR_VIA_UDP,
- SIP_HDR_VIA_TCP,
- SIP_HDR_EXPIRES,
- SIP_HDR_CONTENT_LENGTH,
- SIP_HDR_CALL_ID,
-};
-
-enum sdp_header_types {
- SDP_HDR_UNSPEC,
- SDP_HDR_VERSION,
- SDP_HDR_OWNER_IP4,
- SDP_HDR_CONNECTION_IP4,
- SDP_HDR_OWNER_IP6,
- SDP_HDR_CONNECTION_IP6,
- SDP_HDR_MEDIA,
-};
-
-extern unsigned int (*nf_nat_sip_hook)(struct sk_buff *skb,
- unsigned int dataoff,
- const char **dptr,
- unsigned int *datalen);
-extern void (*nf_nat_sip_seq_adjust_hook)(struct sk_buff *skb, s16 off);
-extern unsigned int (*nf_nat_sip_expect_hook)(struct sk_buff *skb,
- unsigned int dataoff,
- const char **dptr,
- unsigned int *datalen,
- struct nf_conntrack_expect *exp,
- unsigned int matchoff,
- unsigned int matchlen);
-extern unsigned int (*nf_nat_sdp_addr_hook)(struct sk_buff *skb,
- unsigned int dataoff,
- const char **dptr,
- unsigned int *datalen,
- unsigned int sdpoff,
- enum sdp_header_types type,
- enum sdp_header_types term,
- const union nf_inet_addr *addr);
-extern unsigned int (*nf_nat_sdp_port_hook)(struct sk_buff *skb,
- unsigned int dataoff,
- const char **dptr,
- unsigned int *datalen,
- unsigned int matchoff,
- unsigned int matchlen,
- u_int16_t port);
-extern unsigned int (*nf_nat_sdp_session_hook)(struct sk_buff *skb,
- unsigned int dataoff,
- const char **dptr,
- unsigned int *datalen,
- unsigned int sdpoff,
- const union nf_inet_addr *addr);
-extern unsigned int (*nf_nat_sdp_media_hook)(struct sk_buff *skb,
- unsigned int dataoff,
- const char **dptr,
- unsigned int *datalen,
- struct nf_conntrack_expect *rtp_exp,
- struct nf_conntrack_expect *rtcp_exp,
- unsigned int mediaoff,
- unsigned int medialen,
- union nf_inet_addr *rtp_addr);
-
-extern int ct_sip_parse_request(const struct nf_conn *ct,
- const char *dptr, unsigned int datalen,
- unsigned int *matchoff, unsigned int *matchlen,
- union nf_inet_addr *addr, __be16 *port);
-extern int ct_sip_get_header(const struct nf_conn *ct, const char *dptr,
- unsigned int dataoff, unsigned int datalen,
- enum sip_header_types type,
- unsigned int *matchoff, unsigned int *matchlen);
-extern int ct_sip_parse_header_uri(const struct nf_conn *ct, const char *dptr,
- unsigned int *dataoff, unsigned int datalen,
- enum sip_header_types type, int *in_header,
- unsigned int *matchoff, unsigned int *matchlen,
- union nf_inet_addr *addr, __be16 *port);
-extern int ct_sip_parse_address_param(const struct nf_conn *ct, const char *dptr,
- unsigned int dataoff, unsigned int datalen,
- const char *name,
- unsigned int *matchoff, unsigned int *matchlen,
- union nf_inet_addr *addr);
-extern int ct_sip_parse_numerical_param(const struct nf_conn *ct, const char *dptr,
- unsigned int off, unsigned int datalen,
- const char *name,
- unsigned int *matchoff, unsigned int *matchen,
- unsigned int *val);
-
-extern int ct_sip_get_sdp_header(const struct nf_conn *ct, const char *dptr,
- unsigned int dataoff, unsigned int datalen,
- enum sdp_header_types type,
- enum sdp_header_types term,
- unsigned int *matchoff, unsigned int *matchlen);
-
-#endif /* __KERNEL__ */
-#endif /* __NF_CONNTRACK_SIP_H__ */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_snmp.h b/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_snmp.h
deleted file mode 100644
index 064bc63a..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_snmp.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef _NF_CONNTRACK_SNMP_H
-#define _NF_CONNTRACK_SNMP_H
-
-extern int (*nf_nat_snmp_hook)(struct sk_buff *skb,
- unsigned int protoff,
- struct nf_conn *ct,
- enum ip_conntrack_info ctinfo);
-
-#endif /* _NF_CONNTRACK_SNMP_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_tcp.h b/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_tcp.h
deleted file mode 100644
index e59868ae..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_tcp.h
+++ /dev/null
@@ -1,79 +0,0 @@
-#ifndef _NF_CONNTRACK_TCP_H
-#define _NF_CONNTRACK_TCP_H
-/* TCP tracking. */
-
-#include <linux/types.h>
-
-/* This is exposed to userspace (ctnetlink) */
-enum tcp_conntrack {
- TCP_CONNTRACK_NONE,
- TCP_CONNTRACK_SYN_SENT,
- TCP_CONNTRACK_SYN_RECV,
- TCP_CONNTRACK_ESTABLISHED,
- TCP_CONNTRACK_FIN_WAIT,
- TCP_CONNTRACK_CLOSE_WAIT,
- TCP_CONNTRACK_LAST_ACK,
- TCP_CONNTRACK_TIME_WAIT,
- TCP_CONNTRACK_CLOSE,
- TCP_CONNTRACK_LISTEN, /* obsolete */
-#define TCP_CONNTRACK_SYN_SENT2 TCP_CONNTRACK_LISTEN
- TCP_CONNTRACK_MAX,
- TCP_CONNTRACK_IGNORE,
- TCP_CONNTRACK_RETRANS,
- TCP_CONNTRACK_UNACK,
- TCP_CONNTRACK_TIMEOUT_MAX
-};
-
-/* Window scaling is advertised by the sender */
-#define IP_CT_TCP_FLAG_WINDOW_SCALE 0x01
-
-/* SACK is permitted by the sender */
-#define IP_CT_TCP_FLAG_SACK_PERM 0x02
-
-/* This sender sent FIN first */
-#define IP_CT_TCP_FLAG_CLOSE_INIT 0x04
-
-/* Be liberal in window checking */
-#define IP_CT_TCP_FLAG_BE_LIBERAL 0x08
-
-/* Has unacknowledged data */
-#define IP_CT_TCP_FLAG_DATA_UNACKNOWLEDGED 0x10
-
-/* The field td_maxack has been set */
-#define IP_CT_TCP_FLAG_MAXACK_SET 0x20
-
-struct nf_ct_tcp_flags {
- __u8 flags;
- __u8 mask;
-};
-
-#ifdef __KERNEL__
-
-struct ip_ct_tcp_state {
- u_int32_t td_end; /* max of seq + len */
- u_int32_t td_maxend; /* max of ack + max(win, 1) */
- u_int32_t td_maxwin; /* max(win) */
- u_int32_t td_maxack; /* max of ack */
- u_int8_t td_scale; /* window scale factor */
- u_int8_t flags; /* per direction options */
-};
-
-struct ip_ct_tcp {
- struct ip_ct_tcp_state seen[2]; /* connection parameters per direction */
- u_int8_t state; /* state of the connection (enum tcp_conntrack) */
- /* For detecting stale connections */
- u_int8_t last_dir; /* Direction of the last packet (enum ip_conntrack_dir) */
- u_int8_t retrans; /* Number of retransmitted packets */
- u_int8_t last_index; /* Index of the last packet */
- u_int32_t last_seq; /* Last sequence number seen in dir */
- u_int32_t last_ack; /* Last sequence number seen in opposite dir */
- u_int32_t last_end; /* Last seq + len */
- u_int16_t last_win; /* Last window advertisement seen in dir */
- /* For SYN packets while we may be out-of-sync */
- u_int8_t last_wscale; /* Last window scaling factor seen */
- u_int8_t last_flags; /* Last flags set */
-};
-
-#endif /* __KERNEL__ */
-
-#endif /* _NF_CONNTRACK_TCP_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_tftp.h b/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_tftp.h
deleted file mode 100644
index c78d38fd..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_tftp.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef _NF_CONNTRACK_TFTP_H
-#define _NF_CONNTRACK_TFTP_H
-
-#define TFTP_PORT 69
-
-struct tftphdr {
- __be16 opcode;
-};
-
-#define TFTP_OPCODE_READ 1
-#define TFTP_OPCODE_WRITE 2
-#define TFTP_OPCODE_DATA 3
-#define TFTP_OPCODE_ACK 4
-#define TFTP_OPCODE_ERROR 5
-
-extern unsigned int (*nf_nat_tftp_hook)(struct sk_buff *skb,
- enum ip_conntrack_info ctinfo,
- struct nf_conntrack_expect *exp);
-
-#endif /* _NF_CONNTRACK_TFTP_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_tuple_common.h b/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_tuple_common.h
deleted file mode 100644
index 2f6bbc5b..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/nf_conntrack_tuple_common.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef _NF_CONNTRACK_TUPLE_COMMON_H
-#define _NF_CONNTRACK_TUPLE_COMMON_H
-
-enum ip_conntrack_dir {
- IP_CT_DIR_ORIGINAL,
- IP_CT_DIR_REPLY,
- IP_CT_DIR_MAX
-};
-
-/* The protocol-specific manipulable parts of the tuple: always in
- * network order
- */
-union nf_conntrack_man_proto {
- /* Add other protocols here. */
- __be16 all;
-
- struct {
- __be16 port;
- } tcp;
- struct {
- __be16 port;
- } udp;
- struct {
- __be16 id;
- } icmp;
- struct {
- __be16 port;
- } dccp;
- struct {
- __be16 port;
- } sctp;
- struct {
- __be16 key; /* GRE key is 32bit, PPtP only uses 16bit */
- } gre;
-};
-
-#define CTINFO2DIR(ctinfo) ((ctinfo) >= IP_CT_IS_REPLY ? IP_CT_DIR_REPLY : IP_CT_DIR_ORIGINAL)
-
-#endif /* _NF_CONNTRACK_TUPLE_COMMON_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/nf_nat.h b/ANDROID_3.4.5/include/linux/netfilter/nf_nat.h
deleted file mode 100644
index 8df2d137..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/nf_nat.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef _NETFILTER_NF_NAT_H
-#define _NETFILTER_NF_NAT_H
-
-#include <linux/netfilter.h>
-#include <linux/netfilter/nf_conntrack_tuple_common.h>
-
-#define NF_NAT_RANGE_MAP_IPS 1
-#define NF_NAT_RANGE_PROTO_SPECIFIED 2
-#define NF_NAT_RANGE_PROTO_RANDOM 4
-#define NF_NAT_RANGE_PERSISTENT 8
-
-struct nf_nat_ipv4_range {
- unsigned int flags;
- __be32 min_ip;
- __be32 max_ip;
- union nf_conntrack_man_proto min;
- union nf_conntrack_man_proto max;
-};
-
-struct nf_nat_ipv4_multi_range_compat {
- unsigned int rangesize;
- struct nf_nat_ipv4_range range[1];
-};
-
-#endif /* _NETFILTER_NF_NAT_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/nfnetlink.h b/ANDROID_3.4.5/include/linux/netfilter/nfnetlink.h
deleted file mode 100644
index 6fd1f0d0..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/nfnetlink.h
+++ /dev/null
@@ -1,95 +0,0 @@
-#ifndef _NFNETLINK_H
-#define _NFNETLINK_H
-#include <linux/types.h>
-#include <linux/netfilter/nfnetlink_compat.h>
-
-enum nfnetlink_groups {
- NFNLGRP_NONE,
-#define NFNLGRP_NONE NFNLGRP_NONE
- NFNLGRP_CONNTRACK_NEW,
-#define NFNLGRP_CONNTRACK_NEW NFNLGRP_CONNTRACK_NEW
- NFNLGRP_CONNTRACK_UPDATE,
-#define NFNLGRP_CONNTRACK_UPDATE NFNLGRP_CONNTRACK_UPDATE
- NFNLGRP_CONNTRACK_DESTROY,
-#define NFNLGRP_CONNTRACK_DESTROY NFNLGRP_CONNTRACK_DESTROY
- NFNLGRP_CONNTRACK_EXP_NEW,
-#define NFNLGRP_CONNTRACK_EXP_NEW NFNLGRP_CONNTRACK_EXP_NEW
- NFNLGRP_CONNTRACK_EXP_UPDATE,
-#define NFNLGRP_CONNTRACK_EXP_UPDATE NFNLGRP_CONNTRACK_EXP_UPDATE
- NFNLGRP_CONNTRACK_EXP_DESTROY,
-#define NFNLGRP_CONNTRACK_EXP_DESTROY NFNLGRP_CONNTRACK_EXP_DESTROY
- __NFNLGRP_MAX,
-};
-#define NFNLGRP_MAX (__NFNLGRP_MAX - 1)
-
-/* General form of address family dependent message.
- */
-struct nfgenmsg {
- __u8 nfgen_family; /* AF_xxx */
- __u8 version; /* nfnetlink version */
- __be16 res_id; /* resource id */
-};
-
-#define NFNETLINK_V0 0
-
-/* netfilter netlink message types are split in two pieces:
- * 8 bit subsystem, 8bit operation.
- */
-
-#define NFNL_SUBSYS_ID(x) ((x & 0xff00) >> 8)
-#define NFNL_MSG_TYPE(x) (x & 0x00ff)
-
-/* No enum here, otherwise __stringify() trick of MODULE_ALIAS_NFNL_SUBSYS()
- * won't work anymore */
-#define NFNL_SUBSYS_NONE 0
-#define NFNL_SUBSYS_CTNETLINK 1
-#define NFNL_SUBSYS_CTNETLINK_EXP 2
-#define NFNL_SUBSYS_QUEUE 3
-#define NFNL_SUBSYS_ULOG 4
-#define NFNL_SUBSYS_OSF 5
-#define NFNL_SUBSYS_IPSET 6
-#define NFNL_SUBSYS_ACCT 7
-#define NFNL_SUBSYS_CTNETLINK_TIMEOUT 8
-#define NFNL_SUBSYS_COUNT 9
-
-#ifdef __KERNEL__
-
-#include <linux/netlink.h>
-#include <linux/capability.h>
-#include <net/netlink.h>
-
-struct nfnl_callback {
- int (*call)(struct sock *nl, struct sk_buff *skb,
- const struct nlmsghdr *nlh,
- const struct nlattr * const cda[]);
- int (*call_rcu)(struct sock *nl, struct sk_buff *skb,
- const struct nlmsghdr *nlh,
- const struct nlattr * const cda[]);
- const struct nla_policy *policy; /* netlink attribute policy */
- const u_int16_t attr_count; /* number of nlattr's */
-};
-
-struct nfnetlink_subsystem {
- const char *name;
- __u8 subsys_id; /* nfnetlink subsystem ID */
- __u8 cb_count; /* number of callbacks */
- const struct nfnl_callback *cb; /* callback for individual types */
-};
-
-extern int nfnetlink_subsys_register(const struct nfnetlink_subsystem *n);
-extern int nfnetlink_subsys_unregister(const struct nfnetlink_subsystem *n);
-
-extern int nfnetlink_has_listeners(struct net *net, unsigned int group);
-extern int nfnetlink_send(struct sk_buff *skb, struct net *net, u32 pid, unsigned group,
- int echo, gfp_t flags);
-extern int nfnetlink_set_err(struct net *net, u32 pid, u32 group, int error);
-extern int nfnetlink_unicast(struct sk_buff *skb, struct net *net, u_int32_t pid, int flags);
-
-extern void nfnl_lock(void);
-extern void nfnl_unlock(void);
-
-#define MODULE_ALIAS_NFNL_SUBSYS(subsys) \
- MODULE_ALIAS("nfnetlink-subsys-" __stringify(subsys))
-
-#endif /* __KERNEL__ */
-#endif /* _NFNETLINK_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/nfnetlink_acct.h b/ANDROID_3.4.5/include/linux/netfilter/nfnetlink_acct.h
deleted file mode 100644
index 7c4279b4..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/nfnetlink_acct.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef _NFNL_ACCT_H_
-#define _NFNL_ACCT_H_
-
-#ifndef NFACCT_NAME_MAX
-#define NFACCT_NAME_MAX 32
-#endif
-
-enum nfnl_acct_msg_types {
- NFNL_MSG_ACCT_NEW,
- NFNL_MSG_ACCT_GET,
- NFNL_MSG_ACCT_GET_CTRZERO,
- NFNL_MSG_ACCT_DEL,
- NFNL_MSG_ACCT_MAX
-};
-
-enum nfnl_acct_type {
- NFACCT_UNSPEC,
- NFACCT_NAME,
- NFACCT_PKTS,
- NFACCT_BYTES,
- NFACCT_USE,
- __NFACCT_MAX
-};
-#define NFACCT_MAX (__NFACCT_MAX - 1)
-
-#ifdef __KERNEL__
-
-struct nf_acct;
-
-extern struct nf_acct *nfnl_acct_find_get(const char *filter_name);
-extern void nfnl_acct_put(struct nf_acct *acct);
-extern void nfnl_acct_update(const struct sk_buff *skb, struct nf_acct *nfacct);
-
-#endif /* __KERNEL__ */
-
-#endif /* _NFNL_ACCT_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/nfnetlink_compat.h b/ANDROID_3.4.5/include/linux/netfilter/nfnetlink_compat.h
deleted file mode 100644
index ffb95036..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/nfnetlink_compat.h
+++ /dev/null
@@ -1,63 +0,0 @@
-#ifndef _NFNETLINK_COMPAT_H
-#define _NFNETLINK_COMPAT_H
-
-#include <linux/types.h>
-
-#ifndef __KERNEL__
-/* Old nfnetlink macros for userspace */
-
-/* nfnetlink groups: Up to 32 maximum */
-#define NF_NETLINK_CONNTRACK_NEW 0x00000001
-#define NF_NETLINK_CONNTRACK_UPDATE 0x00000002
-#define NF_NETLINK_CONNTRACK_DESTROY 0x00000004
-#define NF_NETLINK_CONNTRACK_EXP_NEW 0x00000008
-#define NF_NETLINK_CONNTRACK_EXP_UPDATE 0x00000010
-#define NF_NETLINK_CONNTRACK_EXP_DESTROY 0x00000020
-
-/* Generic structure for encapsulation optional netfilter information.
- * It is reminiscent of sockaddr, but with sa_family replaced
- * with attribute type.
- * ! This should someday be put somewhere generic as now rtnetlink and
- * ! nfnetlink use the same attributes methods. - J. Schulist.
- */
-
-struct nfattr {
- __u16 nfa_len;
- __u16 nfa_type; /* we use 15 bits for the type, and the highest
- * bit to indicate whether the payload is nested */
-};
-
-/* FIXME: Apart from NFNL_NFA_NESTED shamelessly copy and pasted from
- * rtnetlink.h, it's time to put this in a generic file */
-
-#define NFNL_NFA_NEST 0x8000
-#define NFA_TYPE(attr) ((attr)->nfa_type & 0x7fff)
-
-#define NFA_ALIGNTO 4
-#define NFA_ALIGN(len) (((len) + NFA_ALIGNTO - 1) & ~(NFA_ALIGNTO - 1))
-#define NFA_OK(nfa,len) ((len) > 0 && (nfa)->nfa_len >= sizeof(struct nfattr) \
- && (nfa)->nfa_len <= (len))
-#define NFA_NEXT(nfa,attrlen) ((attrlen) -= NFA_ALIGN((nfa)->nfa_len), \
- (struct nfattr *)(((char *)(nfa)) + NFA_ALIGN((nfa)->nfa_len)))
-#define NFA_LENGTH(len) (NFA_ALIGN(sizeof(struct nfattr)) + (len))
-#define NFA_SPACE(len) NFA_ALIGN(NFA_LENGTH(len))
-#define NFA_DATA(nfa) ((void *)(((char *)(nfa)) + NFA_LENGTH(0)))
-#define NFA_PAYLOAD(nfa) ((int)((nfa)->nfa_len) - NFA_LENGTH(0))
-#define NFA_NEST(skb, type) \
-({ struct nfattr *__start = (struct nfattr *)skb_tail_pointer(skb); \
- NFA_PUT(skb, (NFNL_NFA_NEST | type), 0, NULL); \
- __start; })
-#define NFA_NEST_END(skb, start) \
-({ (start)->nfa_len = skb_tail_pointer(skb) - (unsigned char *)(start); \
- (skb)->len; })
-#define NFA_NEST_CANCEL(skb, start) \
-({ if (start) \
- skb_trim(skb, (unsigned char *) (start) - (skb)->data); \
- -1; })
-
-#define NFM_NFA(n) ((struct nfattr *)(((char *)(n)) \
- + NLMSG_ALIGN(sizeof(struct nfgenmsg))))
-#define NFM_PAYLOAD(n) NLMSG_PAYLOAD(n, sizeof(struct nfgenmsg))
-
-#endif /* ! __KERNEL__ */
-#endif /* _NFNETLINK_COMPAT_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/nfnetlink_conntrack.h b/ANDROID_3.4.5/include/linux/netfilter/nfnetlink_conntrack.h
deleted file mode 100644
index e58e4b93..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/nfnetlink_conntrack.h
+++ /dev/null
@@ -1,205 +0,0 @@
-#ifndef _IPCONNTRACK_NETLINK_H
-#define _IPCONNTRACK_NETLINK_H
-#include <linux/netfilter/nfnetlink.h>
-
-enum cntl_msg_types {
- IPCTNL_MSG_CT_NEW,
- IPCTNL_MSG_CT_GET,
- IPCTNL_MSG_CT_DELETE,
- IPCTNL_MSG_CT_GET_CTRZERO,
-
- IPCTNL_MSG_MAX
-};
-
-enum ctnl_exp_msg_types {
- IPCTNL_MSG_EXP_NEW,
- IPCTNL_MSG_EXP_GET,
- IPCTNL_MSG_EXP_DELETE,
-
- IPCTNL_MSG_EXP_MAX
-};
-
-
-enum ctattr_type {
- CTA_UNSPEC,
- CTA_TUPLE_ORIG,
- CTA_TUPLE_REPLY,
- CTA_STATUS,
- CTA_PROTOINFO,
- CTA_HELP,
- CTA_NAT_SRC,
-#define CTA_NAT CTA_NAT_SRC /* backwards compatibility */
- CTA_TIMEOUT,
- CTA_MARK,
- CTA_COUNTERS_ORIG,
- CTA_COUNTERS_REPLY,
- CTA_USE,
- CTA_ID,
- CTA_NAT_DST,
- CTA_TUPLE_MASTER,
- CTA_NAT_SEQ_ADJ_ORIG,
- CTA_NAT_SEQ_ADJ_REPLY,
- CTA_SECMARK, /* obsolete */
- CTA_ZONE,
- CTA_SECCTX,
- CTA_TIMESTAMP,
- CTA_MARK_MASK,
- __CTA_MAX
-};
-#define CTA_MAX (__CTA_MAX - 1)
-
-enum ctattr_tuple {
- CTA_TUPLE_UNSPEC,
- CTA_TUPLE_IP,
- CTA_TUPLE_PROTO,
- __CTA_TUPLE_MAX
-};
-#define CTA_TUPLE_MAX (__CTA_TUPLE_MAX - 1)
-
-enum ctattr_ip {
- CTA_IP_UNSPEC,
- CTA_IP_V4_SRC,
- CTA_IP_V4_DST,
- CTA_IP_V6_SRC,
- CTA_IP_V6_DST,
- __CTA_IP_MAX
-};
-#define CTA_IP_MAX (__CTA_IP_MAX - 1)
-
-enum ctattr_l4proto {
- CTA_PROTO_UNSPEC,
- CTA_PROTO_NUM,
- CTA_PROTO_SRC_PORT,
- CTA_PROTO_DST_PORT,
- CTA_PROTO_ICMP_ID,
- CTA_PROTO_ICMP_TYPE,
- CTA_PROTO_ICMP_CODE,
- CTA_PROTO_ICMPV6_ID,
- CTA_PROTO_ICMPV6_TYPE,
- CTA_PROTO_ICMPV6_CODE,
- __CTA_PROTO_MAX
-};
-#define CTA_PROTO_MAX (__CTA_PROTO_MAX - 1)
-
-enum ctattr_protoinfo {
- CTA_PROTOINFO_UNSPEC,
- CTA_PROTOINFO_TCP,
- CTA_PROTOINFO_DCCP,
- CTA_PROTOINFO_SCTP,
- __CTA_PROTOINFO_MAX
-};
-#define CTA_PROTOINFO_MAX (__CTA_PROTOINFO_MAX - 1)
-
-enum ctattr_protoinfo_tcp {
- CTA_PROTOINFO_TCP_UNSPEC,
- CTA_PROTOINFO_TCP_STATE,
- CTA_PROTOINFO_TCP_WSCALE_ORIGINAL,
- CTA_PROTOINFO_TCP_WSCALE_REPLY,
- CTA_PROTOINFO_TCP_FLAGS_ORIGINAL,
- CTA_PROTOINFO_TCP_FLAGS_REPLY,
- __CTA_PROTOINFO_TCP_MAX
-};
-#define CTA_PROTOINFO_TCP_MAX (__CTA_PROTOINFO_TCP_MAX - 1)
-
-enum ctattr_protoinfo_dccp {
- CTA_PROTOINFO_DCCP_UNSPEC,
- CTA_PROTOINFO_DCCP_STATE,
- CTA_PROTOINFO_DCCP_ROLE,
- CTA_PROTOINFO_DCCP_HANDSHAKE_SEQ,
- __CTA_PROTOINFO_DCCP_MAX,
-};
-#define CTA_PROTOINFO_DCCP_MAX (__CTA_PROTOINFO_DCCP_MAX - 1)
-
-enum ctattr_protoinfo_sctp {
- CTA_PROTOINFO_SCTP_UNSPEC,
- CTA_PROTOINFO_SCTP_STATE,
- CTA_PROTOINFO_SCTP_VTAG_ORIGINAL,
- CTA_PROTOINFO_SCTP_VTAG_REPLY,
- __CTA_PROTOINFO_SCTP_MAX
-};
-#define CTA_PROTOINFO_SCTP_MAX (__CTA_PROTOINFO_SCTP_MAX - 1)
-
-enum ctattr_counters {
- CTA_COUNTERS_UNSPEC,
- CTA_COUNTERS_PACKETS, /* 64bit counters */
- CTA_COUNTERS_BYTES, /* 64bit counters */
- CTA_COUNTERS32_PACKETS, /* old 32bit counters, unused */
- CTA_COUNTERS32_BYTES, /* old 32bit counters, unused */
- __CTA_COUNTERS_MAX
-};
-#define CTA_COUNTERS_MAX (__CTA_COUNTERS_MAX - 1)
-
-enum ctattr_tstamp {
- CTA_TIMESTAMP_UNSPEC,
- CTA_TIMESTAMP_START,
- CTA_TIMESTAMP_STOP,
- __CTA_TIMESTAMP_MAX
-};
-#define CTA_TIMESTAMP_MAX (__CTA_TIMESTAMP_MAX - 1)
-
-enum ctattr_nat {
- CTA_NAT_UNSPEC,
- CTA_NAT_MINIP,
- CTA_NAT_MAXIP,
- CTA_NAT_PROTO,
- __CTA_NAT_MAX
-};
-#define CTA_NAT_MAX (__CTA_NAT_MAX - 1)
-
-enum ctattr_protonat {
- CTA_PROTONAT_UNSPEC,
- CTA_PROTONAT_PORT_MIN,
- CTA_PROTONAT_PORT_MAX,
- __CTA_PROTONAT_MAX
-};
-#define CTA_PROTONAT_MAX (__CTA_PROTONAT_MAX - 1)
-
-enum ctattr_natseq {
- CTA_NAT_SEQ_UNSPEC,
- CTA_NAT_SEQ_CORRECTION_POS,
- CTA_NAT_SEQ_OFFSET_BEFORE,
- CTA_NAT_SEQ_OFFSET_AFTER,
- __CTA_NAT_SEQ_MAX
-};
-#define CTA_NAT_SEQ_MAX (__CTA_NAT_SEQ_MAX - 1)
-
-enum ctattr_expect {
- CTA_EXPECT_UNSPEC,
- CTA_EXPECT_MASTER,
- CTA_EXPECT_TUPLE,
- CTA_EXPECT_MASK,
- CTA_EXPECT_TIMEOUT,
- CTA_EXPECT_ID,
- CTA_EXPECT_HELP_NAME,
- CTA_EXPECT_ZONE,
- CTA_EXPECT_FLAGS,
- CTA_EXPECT_CLASS,
- CTA_EXPECT_NAT,
- CTA_EXPECT_FN,
- __CTA_EXPECT_MAX
-};
-#define CTA_EXPECT_MAX (__CTA_EXPECT_MAX - 1)
-
-enum ctattr_expect_nat {
- CTA_EXPECT_NAT_UNSPEC,
- CTA_EXPECT_NAT_DIR,
- CTA_EXPECT_NAT_TUPLE,
- __CTA_EXPECT_NAT_MAX
-};
-#define CTA_EXPECT_NAT_MAX (__CTA_EXPECT_NAT_MAX - 1)
-
-enum ctattr_help {
- CTA_HELP_UNSPEC,
- CTA_HELP_NAME,
- __CTA_HELP_MAX
-};
-#define CTA_HELP_MAX (__CTA_HELP_MAX - 1)
-
-enum ctattr_secctx {
- CTA_SECCTX_UNSPEC,
- CTA_SECCTX_NAME,
- __CTA_SECCTX_MAX
-};
-#define CTA_SECCTX_MAX (__CTA_SECCTX_MAX - 1)
-
-#endif /* _IPCONNTRACK_NETLINK_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/nfnetlink_cttimeout.h b/ANDROID_3.4.5/include/linux/netfilter/nfnetlink_cttimeout.h
deleted file mode 100644
index a2810a7c..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/nfnetlink_cttimeout.h
+++ /dev/null
@@ -1,114 +0,0 @@
-#ifndef _CTTIMEOUT_NETLINK_H
-#define _CTTIMEOUT_NETLINK_H
-#include <linux/netfilter/nfnetlink.h>
-
-enum ctnl_timeout_msg_types {
- IPCTNL_MSG_TIMEOUT_NEW,
- IPCTNL_MSG_TIMEOUT_GET,
- IPCTNL_MSG_TIMEOUT_DELETE,
-
- IPCTNL_MSG_TIMEOUT_MAX
-};
-
-enum ctattr_timeout {
- CTA_TIMEOUT_UNSPEC,
- CTA_TIMEOUT_NAME,
- CTA_TIMEOUT_L3PROTO,
- CTA_TIMEOUT_L4PROTO,
- CTA_TIMEOUT_DATA,
- CTA_TIMEOUT_USE,
- __CTA_TIMEOUT_MAX
-};
-#define CTA_TIMEOUT_MAX (__CTA_TIMEOUT_MAX - 1)
-
-enum ctattr_timeout_generic {
- CTA_TIMEOUT_GENERIC_UNSPEC,
- CTA_TIMEOUT_GENERIC_TIMEOUT,
- __CTA_TIMEOUT_GENERIC_MAX
-};
-#define CTA_TIMEOUT_GENERIC_MAX (__CTA_TIMEOUT_GENERIC_MAX - 1)
-
-enum ctattr_timeout_tcp {
- CTA_TIMEOUT_TCP_UNSPEC,
- CTA_TIMEOUT_TCP_SYN_SENT,
- CTA_TIMEOUT_TCP_SYN_RECV,
- CTA_TIMEOUT_TCP_ESTABLISHED,
- CTA_TIMEOUT_TCP_FIN_WAIT,
- CTA_TIMEOUT_TCP_CLOSE_WAIT,
- CTA_TIMEOUT_TCP_LAST_ACK,
- CTA_TIMEOUT_TCP_TIME_WAIT,
- CTA_TIMEOUT_TCP_CLOSE,
- CTA_TIMEOUT_TCP_SYN_SENT2,
- CTA_TIMEOUT_TCP_RETRANS,
- CTA_TIMEOUT_TCP_UNACK,
- __CTA_TIMEOUT_TCP_MAX
-};
-#define CTA_TIMEOUT_TCP_MAX (__CTA_TIMEOUT_TCP_MAX - 1)
-
-enum ctattr_timeout_udp {
- CTA_TIMEOUT_UDP_UNSPEC,
- CTA_TIMEOUT_UDP_UNREPLIED,
- CTA_TIMEOUT_UDP_REPLIED,
- __CTA_TIMEOUT_UDP_MAX
-};
-#define CTA_TIMEOUT_UDP_MAX (__CTA_TIMEOUT_UDP_MAX - 1)
-
-enum ctattr_timeout_udplite {
- CTA_TIMEOUT_UDPLITE_UNSPEC,
- CTA_TIMEOUT_UDPLITE_UNREPLIED,
- CTA_TIMEOUT_UDPLITE_REPLIED,
- __CTA_TIMEOUT_UDPLITE_MAX
-};
-#define CTA_TIMEOUT_UDPLITE_MAX (__CTA_TIMEOUT_UDPLITE_MAX - 1)
-
-enum ctattr_timeout_icmp {
- CTA_TIMEOUT_ICMP_UNSPEC,
- CTA_TIMEOUT_ICMP_TIMEOUT,
- __CTA_TIMEOUT_ICMP_MAX
-};
-#define CTA_TIMEOUT_ICMP_MAX (__CTA_TIMEOUT_ICMP_MAX - 1)
-
-enum ctattr_timeout_dccp {
- CTA_TIMEOUT_DCCP_UNSPEC,
- CTA_TIMEOUT_DCCP_REQUEST,
- CTA_TIMEOUT_DCCP_RESPOND,
- CTA_TIMEOUT_DCCP_PARTOPEN,
- CTA_TIMEOUT_DCCP_OPEN,
- CTA_TIMEOUT_DCCP_CLOSEREQ,
- CTA_TIMEOUT_DCCP_CLOSING,
- CTA_TIMEOUT_DCCP_TIMEWAIT,
- __CTA_TIMEOUT_DCCP_MAX
-};
-#define CTA_TIMEOUT_DCCP_MAX (__CTA_TIMEOUT_DCCP_MAX - 1)
-
-enum ctattr_timeout_sctp {
- CTA_TIMEOUT_SCTP_UNSPEC,
- CTA_TIMEOUT_SCTP_CLOSED,
- CTA_TIMEOUT_SCTP_COOKIE_WAIT,
- CTA_TIMEOUT_SCTP_COOKIE_ECHOED,
- CTA_TIMEOUT_SCTP_ESTABLISHED,
- CTA_TIMEOUT_SCTP_SHUTDOWN_SENT,
- CTA_TIMEOUT_SCTP_SHUTDOWN_RECD,
- CTA_TIMEOUT_SCTP_SHUTDOWN_ACK_SENT,
- __CTA_TIMEOUT_SCTP_MAX
-};
-#define CTA_TIMEOUT_SCTP_MAX (__CTA_TIMEOUT_SCTP_MAX - 1)
-
-enum ctattr_timeout_icmpv6 {
- CTA_TIMEOUT_ICMPV6_UNSPEC,
- CTA_TIMEOUT_ICMPV6_TIMEOUT,
- __CTA_TIMEOUT_ICMPV6_MAX
-};
-#define CTA_TIMEOUT_ICMPV6_MAX (__CTA_TIMEOUT_ICMPV6_MAX - 1)
-
-enum ctattr_timeout_gre {
- CTA_TIMEOUT_GRE_UNSPEC,
- CTA_TIMEOUT_GRE_UNREPLIED,
- CTA_TIMEOUT_GRE_REPLIED,
- __CTA_TIMEOUT_GRE_MAX
-};
-#define CTA_TIMEOUT_GRE_MAX (__CTA_TIMEOUT_GRE_MAX - 1)
-
-#define CTNL_TIMEOUT_NAME_MAX 32
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/netfilter/nfnetlink_log.h b/ANDROID_3.4.5/include/linux/netfilter/nfnetlink_log.h
deleted file mode 100644
index 90c2c957..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/nfnetlink_log.h
+++ /dev/null
@@ -1,97 +0,0 @@
-#ifndef _NFNETLINK_LOG_H
-#define _NFNETLINK_LOG_H
-
-/* This file describes the netlink messages (i.e. 'protocol packets'),
- * and not any kind of function definitions. It is shared between kernel and
- * userspace. Don't put kernel specific stuff in here */
-
-#include <linux/types.h>
-#include <linux/netfilter/nfnetlink.h>
-
-enum nfulnl_msg_types {
- NFULNL_MSG_PACKET, /* packet from kernel to userspace */
- NFULNL_MSG_CONFIG, /* connect to a particular queue */
-
- NFULNL_MSG_MAX
-};
-
-struct nfulnl_msg_packet_hdr {
- __be16 hw_protocol; /* hw protocol (network order) */
- __u8 hook; /* netfilter hook */
- __u8 _pad;
-};
-
-struct nfulnl_msg_packet_hw {
- __be16 hw_addrlen;
- __u16 _pad;
- __u8 hw_addr[8];
-};
-
-struct nfulnl_msg_packet_timestamp {
- __aligned_be64 sec;
- __aligned_be64 usec;
-};
-
-enum nfulnl_attr_type {
- NFULA_UNSPEC,
- NFULA_PACKET_HDR,
- NFULA_MARK, /* __u32 nfmark */
- NFULA_TIMESTAMP, /* nfulnl_msg_packet_timestamp */
- NFULA_IFINDEX_INDEV, /* __u32 ifindex */
- NFULA_IFINDEX_OUTDEV, /* __u32 ifindex */
- NFULA_IFINDEX_PHYSINDEV, /* __u32 ifindex */
- NFULA_IFINDEX_PHYSOUTDEV, /* __u32 ifindex */
- NFULA_HWADDR, /* nfulnl_msg_packet_hw */
- NFULA_PAYLOAD, /* opaque data payload */
- NFULA_PREFIX, /* string prefix */
- NFULA_UID, /* user id of socket */
- NFULA_SEQ, /* instance-local sequence number */
- NFULA_SEQ_GLOBAL, /* global sequence number */
- NFULA_GID, /* group id of socket */
- NFULA_HWTYPE, /* hardware type */
- NFULA_HWHEADER, /* hardware header */
- NFULA_HWLEN, /* hardware header length */
-
- __NFULA_MAX
-};
-#define NFULA_MAX (__NFULA_MAX - 1)
-
-enum nfulnl_msg_config_cmds {
- NFULNL_CFG_CMD_NONE,
- NFULNL_CFG_CMD_BIND,
- NFULNL_CFG_CMD_UNBIND,
- NFULNL_CFG_CMD_PF_BIND,
- NFULNL_CFG_CMD_PF_UNBIND,
-};
-
-struct nfulnl_msg_config_cmd {
- __u8 command; /* nfulnl_msg_config_cmds */
-} __attribute__ ((packed));
-
-struct nfulnl_msg_config_mode {
- __be32 copy_range;
- __u8 copy_mode;
- __u8 _pad;
-} __attribute__ ((packed));
-
-enum nfulnl_attr_config {
- NFULA_CFG_UNSPEC,
- NFULA_CFG_CMD, /* nfulnl_msg_config_cmd */
- NFULA_CFG_MODE, /* nfulnl_msg_config_mode */
- NFULA_CFG_NLBUFSIZ, /* __u32 buffer size */
- NFULA_CFG_TIMEOUT, /* __u32 in 1/100 s */
- NFULA_CFG_QTHRESH, /* __u32 */
- NFULA_CFG_FLAGS, /* __u16 */
- __NFULA_CFG_MAX
-};
-#define NFULA_CFG_MAX (__NFULA_CFG_MAX -1)
-
-#define NFULNL_COPY_NONE 0x00
-#define NFULNL_COPY_META 0x01
-#define NFULNL_COPY_PACKET 0x02
-/* 0xff is reserved, don't use it for new copy modes. */
-
-#define NFULNL_CFG_F_SEQ 0x0001
-#define NFULNL_CFG_F_SEQ_GLOBAL 0x0002
-
-#endif /* _NFNETLINK_LOG_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/nfnetlink_queue.h b/ANDROID_3.4.5/include/linux/netfilter/nfnetlink_queue.h
deleted file mode 100644
index 24b32e6c..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/nfnetlink_queue.h
+++ /dev/null
@@ -1,91 +0,0 @@
-#ifndef _NFNETLINK_QUEUE_H
-#define _NFNETLINK_QUEUE_H
-
-#include <linux/types.h>
-#include <linux/netfilter/nfnetlink.h>
-
-enum nfqnl_msg_types {
- NFQNL_MSG_PACKET, /* packet from kernel to userspace */
- NFQNL_MSG_VERDICT, /* verdict from userspace to kernel */
- NFQNL_MSG_CONFIG, /* connect to a particular queue */
- NFQNL_MSG_VERDICT_BATCH, /* batchv from userspace to kernel */
-
- NFQNL_MSG_MAX
-};
-
-struct nfqnl_msg_packet_hdr {
- __be32 packet_id; /* unique ID of packet in queue */
- __be16 hw_protocol; /* hw protocol (network order) */
- __u8 hook; /* netfilter hook */
-} __attribute__ ((packed));
-
-struct nfqnl_msg_packet_hw {
- __be16 hw_addrlen;
- __u16 _pad;
- __u8 hw_addr[8];
-};
-
-struct nfqnl_msg_packet_timestamp {
- __aligned_be64 sec;
- __aligned_be64 usec;
-};
-
-enum nfqnl_attr_type {
- NFQA_UNSPEC,
- NFQA_PACKET_HDR,
- NFQA_VERDICT_HDR, /* nfqnl_msg_verdict_hrd */
- NFQA_MARK, /* __u32 nfmark */
- NFQA_TIMESTAMP, /* nfqnl_msg_packet_timestamp */
- NFQA_IFINDEX_INDEV, /* __u32 ifindex */
- NFQA_IFINDEX_OUTDEV, /* __u32 ifindex */
- NFQA_IFINDEX_PHYSINDEV, /* __u32 ifindex */
- NFQA_IFINDEX_PHYSOUTDEV, /* __u32 ifindex */
- NFQA_HWADDR, /* nfqnl_msg_packet_hw */
- NFQA_PAYLOAD, /* opaque data payload */
-
- __NFQA_MAX
-};
-#define NFQA_MAX (__NFQA_MAX - 1)
-
-struct nfqnl_msg_verdict_hdr {
- __be32 verdict;
- __be32 id;
-};
-
-
-enum nfqnl_msg_config_cmds {
- NFQNL_CFG_CMD_NONE,
- NFQNL_CFG_CMD_BIND,
- NFQNL_CFG_CMD_UNBIND,
- NFQNL_CFG_CMD_PF_BIND,
- NFQNL_CFG_CMD_PF_UNBIND,
-};
-
-struct nfqnl_msg_config_cmd {
- __u8 command; /* nfqnl_msg_config_cmds */
- __u8 _pad;
- __be16 pf; /* AF_xxx for PF_[UN]BIND */
-};
-
-enum nfqnl_config_mode {
- NFQNL_COPY_NONE,
- NFQNL_COPY_META,
- NFQNL_COPY_PACKET,
-};
-
-struct nfqnl_msg_config_params {
- __be32 copy_range;
- __u8 copy_mode; /* enum nfqnl_config_mode */
-} __attribute__ ((packed));
-
-
-enum nfqnl_attr_config {
- NFQA_CFG_UNSPEC,
- NFQA_CFG_CMD, /* nfqnl_msg_config_cmd */
- NFQA_CFG_PARAMS, /* nfqnl_msg_config_params */
- NFQA_CFG_QUEUE_MAXLEN, /* __u32 */
- __NFQA_CFG_MAX
-};
-#define NFQA_CFG_MAX (__NFQA_CFG_MAX-1)
-
-#endif /* _NFNETLINK_QUEUE_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/x_tables.h b/ANDROID_3.4.5/include/linux/netfilter/x_tables.h
deleted file mode 100644
index 8d674a78..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/x_tables.h
+++ /dev/null
@@ -1,622 +0,0 @@
-#ifndef _X_TABLES_H
-#define _X_TABLES_H
-#include <linux/kernel.h>
-#include <linux/types.h>
-
-#define XT_FUNCTION_MAXNAMELEN 30
-#define XT_EXTENSION_MAXNAMELEN 29
-#define XT_TABLE_MAXNAMELEN 32
-
-struct xt_entry_match {
- union {
- struct {
- __u16 match_size;
-
- /* Used by userspace */
- char name[XT_EXTENSION_MAXNAMELEN];
- __u8 revision;
- } user;
- struct {
- __u16 match_size;
-
- /* Used inside the kernel */
- struct xt_match *match;
- } kernel;
-
- /* Total length */
- __u16 match_size;
- } u;
-
- unsigned char data[0];
-};
-
-struct xt_entry_target {
- union {
- struct {
- __u16 target_size;
-
- /* Used by userspace */
- char name[XT_EXTENSION_MAXNAMELEN];
- __u8 revision;
- } user;
- struct {
- __u16 target_size;
-
- /* Used inside the kernel */
- struct xt_target *target;
- } kernel;
-
- /* Total length */
- __u16 target_size;
- } u;
-
- unsigned char data[0];
-};
-
-#define XT_TARGET_INIT(__name, __size) \
-{ \
- .target.u.user = { \
- .target_size = XT_ALIGN(__size), \
- .name = __name, \
- }, \
-}
-
-struct xt_standard_target {
- struct xt_entry_target target;
- int verdict;
-};
-
-struct xt_error_target {
- struct xt_entry_target target;
- char errorname[XT_FUNCTION_MAXNAMELEN];
-};
-
-/* The argument to IPT_SO_GET_REVISION_*. Returns highest revision
- * kernel supports, if >= revision. */
-struct xt_get_revision {
- char name[XT_EXTENSION_MAXNAMELEN];
- __u8 revision;
-};
-
-/* CONTINUE verdict for targets */
-#define XT_CONTINUE 0xFFFFFFFF
-
-/* For standard target */
-#define XT_RETURN (-NF_REPEAT - 1)
-
-/* this is a dummy structure to find out the alignment requirement for a struct
- * containing all the fundamental data types that are used in ipt_entry,
- * ip6t_entry and arpt_entry. This sucks, and it is a hack. It will be my
- * personal pleasure to remove it -HW
- */
-struct _xt_align {
- __u8 u8;
- __u16 u16;
- __u32 u32;
- __u64 u64;
-};
-
-#define XT_ALIGN(s) __ALIGN_KERNEL((s), __alignof__(struct _xt_align))
-
-/* Standard return verdict, or do jump. */
-#define XT_STANDARD_TARGET ""
-/* Error verdict. */
-#define XT_ERROR_TARGET "ERROR"
-
-#define SET_COUNTER(c,b,p) do { (c).bcnt = (b); (c).pcnt = (p); } while(0)
-#define ADD_COUNTER(c,b,p) do { (c).bcnt += (b); (c).pcnt += (p); } while(0)
-
-struct xt_counters {
- __u64 pcnt, bcnt; /* Packet and byte counters */
-};
-
-/* The argument to IPT_SO_ADD_COUNTERS. */
-struct xt_counters_info {
- /* Which table. */
- char name[XT_TABLE_MAXNAMELEN];
-
- unsigned int num_counters;
-
- /* The counters (actually `number' of these). */
- struct xt_counters counters[0];
-};
-
-#define XT_INV_PROTO 0x40 /* Invert the sense of PROTO. */
-
-#ifndef __KERNEL__
-/* fn returns 0 to continue iteration */
-#define XT_MATCH_ITERATE(type, e, fn, args...) \
-({ \
- unsigned int __i; \
- int __ret = 0; \
- struct xt_entry_match *__m; \
- \
- for (__i = sizeof(type); \
- __i < (e)->target_offset; \
- __i += __m->u.match_size) { \
- __m = (void *)e + __i; \
- \
- __ret = fn(__m , ## args); \
- if (__ret != 0) \
- break; \
- } \
- __ret; \
-})
-
-/* fn returns 0 to continue iteration */
-#define XT_ENTRY_ITERATE_CONTINUE(type, entries, size, n, fn, args...) \
-({ \
- unsigned int __i, __n; \
- int __ret = 0; \
- type *__entry; \
- \
- for (__i = 0, __n = 0; __i < (size); \
- __i += __entry->next_offset, __n++) { \
- __entry = (void *)(entries) + __i; \
- if (__n < n) \
- continue; \
- \
- __ret = fn(__entry , ## args); \
- if (__ret != 0) \
- break; \
- } \
- __ret; \
-})
-
-/* fn returns 0 to continue iteration */
-#define XT_ENTRY_ITERATE(type, entries, size, fn, args...) \
- XT_ENTRY_ITERATE_CONTINUE(type, entries, size, 0, fn, args)
-
-#endif /* !__KERNEL__ */
-
-/* pos is normally a struct ipt_entry/ip6t_entry/etc. */
-#define xt_entry_foreach(pos, ehead, esize) \
- for ((pos) = (typeof(pos))(ehead); \
- (pos) < (typeof(pos))((char *)(ehead) + (esize)); \
- (pos) = (typeof(pos))((char *)(pos) + (pos)->next_offset))
-
-/* can only be xt_entry_match, so no use of typeof here */
-#define xt_ematch_foreach(pos, entry) \
- for ((pos) = (struct xt_entry_match *)entry->elems; \
- (pos) < (struct xt_entry_match *)((char *)(entry) + \
- (entry)->target_offset); \
- (pos) = (struct xt_entry_match *)((char *)(pos) + \
- (pos)->u.match_size))
-
-#ifdef __KERNEL__
-
-#include <linux/netdevice.h>
-
-/**
- * struct xt_action_param - parameters for matches/targets
- *
- * @match: the match extension
- * @target: the target extension
- * @matchinfo: per-match data
- * @targetinfo: per-target data
- * @in: input netdevice
- * @out: output netdevice
- * @fragoff: packet is a fragment, this is the data offset
- * @thoff: position of transport header relative to skb->data
- * @hook: hook number given packet came from
- * @family: Actual NFPROTO_* through which the function is invoked
- * (helpful when match->family == NFPROTO_UNSPEC)
- *
- * Fields written to by extensions:
- *
- * @hotdrop: drop packet if we had inspection problems
- * Network namespace obtainable using dev_net(in/out)
- */
-struct xt_action_param {
- union {
- const struct xt_match *match;
- const struct xt_target *target;
- };
- union {
- const void *matchinfo, *targinfo;
- };
- const struct net_device *in, *out;
- int fragoff;
- unsigned int thoff;
- unsigned int hooknum;
- u_int8_t family;
- bool hotdrop;
-};
-
-/**
- * struct xt_mtchk_param - parameters for match extensions'
- * checkentry functions
- *
- * @net: network namespace through which the check was invoked
- * @table: table the rule is tried to be inserted into
- * @entryinfo: the family-specific rule data
- * (struct ipt_ip, ip6t_ip, arpt_arp or (note) ebt_entry)
- * @match: struct xt_match through which this function was invoked
- * @matchinfo: per-match data
- * @hook_mask: via which hooks the new rule is reachable
- * Other fields as above.
- */
-struct xt_mtchk_param {
- struct net *net;
- const char *table;
- const void *entryinfo;
- const struct xt_match *match;
- void *matchinfo;
- unsigned int hook_mask;
- u_int8_t family;
-};
-
-/**
- * struct xt_mdtor_param - match destructor parameters
- * Fields as above.
- */
-struct xt_mtdtor_param {
- struct net *net;
- const struct xt_match *match;
- void *matchinfo;
- u_int8_t family;
-};
-
-/**
- * struct xt_tgchk_param - parameters for target extensions'
- * checkentry functions
- *
- * @entryinfo: the family-specific rule data
- * (struct ipt_entry, ip6t_entry, arpt_entry, ebt_entry)
- *
- * Other fields see above.
- */
-struct xt_tgchk_param {
- struct net *net;
- const char *table;
- const void *entryinfo;
- const struct xt_target *target;
- void *targinfo;
- unsigned int hook_mask;
- u_int8_t family;
-};
-
-/* Target destructor parameters */
-struct xt_tgdtor_param {
- struct net *net;
- const struct xt_target *target;
- void *targinfo;
- u_int8_t family;
-};
-
-struct xt_match {
- struct list_head list;
-
- const char name[XT_EXTENSION_MAXNAMELEN];
- u_int8_t revision;
-
- /* Return true or false: return FALSE and set *hotdrop = 1 to
- force immediate packet drop. */
- /* Arguments changed since 2.6.9, as this must now handle
- non-linear skb, using skb_header_pointer and
- skb_ip_make_writable. */
- bool (*match)(const struct sk_buff *skb,
- struct xt_action_param *);
-
- /* Called when user tries to insert an entry of this type. */
- int (*checkentry)(const struct xt_mtchk_param *);
-
- /* Called when entry of this type deleted. */
- void (*destroy)(const struct xt_mtdtor_param *);
-#ifdef CONFIG_COMPAT
- /* Called when userspace align differs from kernel space one */
- void (*compat_from_user)(void *dst, const void *src);
- int (*compat_to_user)(void __user *dst, const void *src);
-#endif
- /* Set this to THIS_MODULE if you are a module, otherwise NULL */
- struct module *me;
-
- const char *table;
- unsigned int matchsize;
-#ifdef CONFIG_COMPAT
- unsigned int compatsize;
-#endif
- unsigned int hooks;
- unsigned short proto;
-
- unsigned short family;
-};
-
-/* Registration hooks for targets. */
-struct xt_target {
- struct list_head list;
-
- const char name[XT_EXTENSION_MAXNAMELEN];
- u_int8_t revision;
-
- /* Returns verdict. Argument order changed since 2.6.9, as this
- must now handle non-linear skbs, using skb_copy_bits and
- skb_ip_make_writable. */
- unsigned int (*target)(struct sk_buff *skb,
- const struct xt_action_param *);
-
- /* Called when user tries to insert an entry of this type:
- hook_mask is a bitmask of hooks from which it can be
- called. */
- /* Should return 0 on success or an error code otherwise (-Exxxx). */
- int (*checkentry)(const struct xt_tgchk_param *);
-
- /* Called when entry of this type deleted. */
- void (*destroy)(const struct xt_tgdtor_param *);
-#ifdef CONFIG_COMPAT
- /* Called when userspace align differs from kernel space one */
- void (*compat_from_user)(void *dst, const void *src);
- int (*compat_to_user)(void __user *dst, const void *src);
-#endif
- /* Set this to THIS_MODULE if you are a module, otherwise NULL */
- struct module *me;
-
- const char *table;
- unsigned int targetsize;
-#ifdef CONFIG_COMPAT
- unsigned int compatsize;
-#endif
- unsigned int hooks;
- unsigned short proto;
-
- unsigned short family;
-};
-
-/* Furniture shopping... */
-struct xt_table {
- struct list_head list;
-
- /* What hooks you will enter on */
- unsigned int valid_hooks;
-
- /* Man behind the curtain... */
- struct xt_table_info *private;
-
- /* Set this to THIS_MODULE if you are a module, otherwise NULL */
- struct module *me;
-
- u_int8_t af; /* address/protocol family */
- int priority; /* hook order */
-
- /* A unique name... */
- const char name[XT_TABLE_MAXNAMELEN];
-};
-
-#include <linux/netfilter_ipv4.h>
-
-/* The table itself */
-struct xt_table_info {
- /* Size per table */
- unsigned int size;
- /* Number of entries: FIXME. --RR */
- unsigned int number;
- /* Initial number of entries. Needed for module usage count */
- unsigned int initial_entries;
-
- /* Entry points and underflows */
- unsigned int hook_entry[NF_INET_NUMHOOKS];
- unsigned int underflow[NF_INET_NUMHOOKS];
-
- /*
- * Number of user chains. Since tables cannot have loops, at most
- * @stacksize jumps (number of user chains) can possibly be made.
- */
- unsigned int stacksize;
- unsigned int __percpu *stackptr;
- void ***jumpstack;
- /* ipt_entry tables: one per CPU */
- /* Note : this field MUST be the last one, see XT_TABLE_INFO_SZ */
- void *entries[1];
-};
-
-#define XT_TABLE_INFO_SZ (offsetof(struct xt_table_info, entries) \
- + nr_cpu_ids * sizeof(char *))
-extern int xt_register_target(struct xt_target *target);
-extern void xt_unregister_target(struct xt_target *target);
-extern int xt_register_targets(struct xt_target *target, unsigned int n);
-extern void xt_unregister_targets(struct xt_target *target, unsigned int n);
-
-extern int xt_register_match(struct xt_match *target);
-extern void xt_unregister_match(struct xt_match *target);
-extern int xt_register_matches(struct xt_match *match, unsigned int n);
-extern void xt_unregister_matches(struct xt_match *match, unsigned int n);
-
-extern int xt_check_match(struct xt_mtchk_param *,
- unsigned int size, u_int8_t proto, bool inv_proto);
-extern int xt_check_target(struct xt_tgchk_param *,
- unsigned int size, u_int8_t proto, bool inv_proto);
-
-extern struct xt_table *xt_register_table(struct net *net,
- const struct xt_table *table,
- struct xt_table_info *bootstrap,
- struct xt_table_info *newinfo);
-extern void *xt_unregister_table(struct xt_table *table);
-
-extern struct xt_table_info *xt_replace_table(struct xt_table *table,
- unsigned int num_counters,
- struct xt_table_info *newinfo,
- int *error);
-
-extern struct xt_match *xt_find_match(u8 af, const char *name, u8 revision);
-extern struct xt_target *xt_find_target(u8 af, const char *name, u8 revision);
-extern struct xt_match *xt_request_find_match(u8 af, const char *name,
- u8 revision);
-extern struct xt_target *xt_request_find_target(u8 af, const char *name,
- u8 revision);
-extern int xt_find_revision(u8 af, const char *name, u8 revision,
- int target, int *err);
-
-extern struct xt_table *xt_find_table_lock(struct net *net, u_int8_t af,
- const char *name);
-extern void xt_table_unlock(struct xt_table *t);
-
-extern int xt_proto_init(struct net *net, u_int8_t af);
-extern void xt_proto_fini(struct net *net, u_int8_t af);
-
-extern struct xt_table_info *xt_alloc_table_info(unsigned int size);
-extern void xt_free_table_info(struct xt_table_info *info);
-
-/**
- * xt_recseq - recursive seqcount for netfilter use
- *
- * Packet processing changes the seqcount only if no recursion happened
- * get_counters() can use read_seqcount_begin()/read_seqcount_retry(),
- * because we use the normal seqcount convention :
- * Low order bit set to 1 if a writer is active.
- */
-DECLARE_PER_CPU(seqcount_t, xt_recseq);
-
-/**
- * xt_write_recseq_begin - start of a write section
- *
- * Begin packet processing : all readers must wait the end
- * 1) Must be called with preemption disabled
- * 2) softirqs must be disabled too (or we should use this_cpu_add())
- * Returns :
- * 1 if no recursion on this cpu
- * 0 if recursion detected
- */
-static inline unsigned int xt_write_recseq_begin(void)
-{
- unsigned int addend;
-
- /*
- * Low order bit of sequence is set if we already
- * called xt_write_recseq_begin().
- */
- addend = (__this_cpu_read(xt_recseq.sequence) + 1) & 1;
-
- /*
- * This is kind of a write_seqcount_begin(), but addend is 0 or 1
- * We dont check addend value to avoid a test and conditional jump,
- * since addend is most likely 1
- */
- __this_cpu_add(xt_recseq.sequence, addend);
- smp_wmb();
-
- return addend;
-}
-
-/**
- * xt_write_recseq_end - end of a write section
- * @addend: return value from previous xt_write_recseq_begin()
- *
- * End packet processing : all readers can proceed
- * 1) Must be called with preemption disabled
- * 2) softirqs must be disabled too (or we should use this_cpu_add())
- */
-static inline void xt_write_recseq_end(unsigned int addend)
-{
- /* this is kind of a write_seqcount_end(), but addend is 0 or 1 */
- smp_wmb();
- __this_cpu_add(xt_recseq.sequence, addend);
-}
-
-/*
- * This helper is performance critical and must be inlined
- */
-static inline unsigned long ifname_compare_aligned(const char *_a,
- const char *_b,
- const char *_mask)
-{
- const unsigned long *a = (const unsigned long *)_a;
- const unsigned long *b = (const unsigned long *)_b;
- const unsigned long *mask = (const unsigned long *)_mask;
- unsigned long ret;
-
- ret = (a[0] ^ b[0]) & mask[0];
- if (IFNAMSIZ > sizeof(unsigned long))
- ret |= (a[1] ^ b[1]) & mask[1];
- if (IFNAMSIZ > 2 * sizeof(unsigned long))
- ret |= (a[2] ^ b[2]) & mask[2];
- if (IFNAMSIZ > 3 * sizeof(unsigned long))
- ret |= (a[3] ^ b[3]) & mask[3];
- BUILD_BUG_ON(IFNAMSIZ > 4 * sizeof(unsigned long));
- return ret;
-}
-
-extern struct nf_hook_ops *xt_hook_link(const struct xt_table *, nf_hookfn *);
-extern void xt_hook_unlink(const struct xt_table *, struct nf_hook_ops *);
-
-#ifdef CONFIG_COMPAT
-#include <net/compat.h>
-
-struct compat_xt_entry_match {
- union {
- struct {
- u_int16_t match_size;
- char name[XT_FUNCTION_MAXNAMELEN - 1];
- u_int8_t revision;
- } user;
- struct {
- u_int16_t match_size;
- compat_uptr_t match;
- } kernel;
- u_int16_t match_size;
- } u;
- unsigned char data[0];
-};
-
-struct compat_xt_entry_target {
- union {
- struct {
- u_int16_t target_size;
- char name[XT_FUNCTION_MAXNAMELEN - 1];
- u_int8_t revision;
- } user;
- struct {
- u_int16_t target_size;
- compat_uptr_t target;
- } kernel;
- u_int16_t target_size;
- } u;
- unsigned char data[0];
-};
-
-/* FIXME: this works only on 32 bit tasks
- * need to change whole approach in order to calculate align as function of
- * current task alignment */
-
-struct compat_xt_counters {
- compat_u64 pcnt, bcnt; /* Packet and byte counters */
-};
-
-struct compat_xt_counters_info {
- char name[XT_TABLE_MAXNAMELEN];
- compat_uint_t num_counters;
- struct compat_xt_counters counters[0];
-};
-
-struct _compat_xt_align {
- __u8 u8;
- __u16 u16;
- __u32 u32;
- compat_u64 u64;
-};
-
-#define COMPAT_XT_ALIGN(s) __ALIGN_KERNEL((s), __alignof__(struct _compat_xt_align))
-
-extern void xt_compat_lock(u_int8_t af);
-extern void xt_compat_unlock(u_int8_t af);
-
-extern int xt_compat_add_offset(u_int8_t af, unsigned int offset, int delta);
-extern void xt_compat_flush_offsets(u_int8_t af);
-extern void xt_compat_init_offsets(u_int8_t af, unsigned int number);
-extern int xt_compat_calc_jump(u_int8_t af, unsigned int offset);
-
-extern int xt_compat_match_offset(const struct xt_match *match);
-extern int xt_compat_match_from_user(struct xt_entry_match *m,
- void **dstptr, unsigned int *size);
-extern int xt_compat_match_to_user(const struct xt_entry_match *m,
- void __user **dstptr, unsigned int *size);
-
-extern int xt_compat_target_offset(const struct xt_target *target);
-extern void xt_compat_target_from_user(struct xt_entry_target *t,
- void **dstptr, unsigned int *size);
-extern int xt_compat_target_to_user(const struct xt_entry_target *t,
- void __user **dstptr, unsigned int *size);
-
-#endif /* CONFIG_COMPAT */
-#endif /* __KERNEL__ */
-
-#endif /* _X_TABLES_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_AUDIT.h b/ANDROID_3.4.5/include/linux/netfilter/xt_AUDIT.h
deleted file mode 100644
index 38751d2e..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_AUDIT.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Header file for iptables xt_AUDIT target
- *
- * (C) 2010-2011 Thomas Graf <tgraf@redhat.com>
- * (C) 2010-2011 Red Hat, Inc.
- *
- * 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.
- */
-
-#ifndef _XT_AUDIT_TARGET_H
-#define _XT_AUDIT_TARGET_H
-
-#include <linux/types.h>
-
-enum {
- XT_AUDIT_TYPE_ACCEPT = 0,
- XT_AUDIT_TYPE_DROP,
- XT_AUDIT_TYPE_REJECT,
- __XT_AUDIT_TYPE_MAX,
-};
-
-#define XT_AUDIT_TYPE_MAX (__XT_AUDIT_TYPE_MAX - 1)
-
-struct xt_audit_info {
- __u8 type; /* XT_AUDIT_TYPE_* */
-};
-
-#endif /* _XT_AUDIT_TARGET_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_CHECKSUM.h b/ANDROID_3.4.5/include/linux/netfilter/xt_CHECKSUM.h
deleted file mode 100644
index 9a2e4661..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_CHECKSUM.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Header file for iptables ipt_CHECKSUM target
- *
- * (C) 2002 by Harald Welte <laforge@gnumonks.org>
- * (C) 2010 Red Hat Inc
- * Author: Michael S. Tsirkin <mst@redhat.com>
- *
- * This software is distributed under GNU GPL v2, 1991
-*/
-#ifndef _XT_CHECKSUM_TARGET_H
-#define _XT_CHECKSUM_TARGET_H
-
-#include <linux/types.h>
-
-#define XT_CHECKSUM_OP_FILL 0x01 /* fill in checksum in IP header */
-
-struct xt_CHECKSUM_info {
- __u8 operation; /* bitset of operations */
-};
-
-#endif /* _XT_CHECKSUM_TARGET_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_CLASSIFY.h b/ANDROID_3.4.5/include/linux/netfilter/xt_CLASSIFY.h
deleted file mode 100644
index a813bf14..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_CLASSIFY.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef _XT_CLASSIFY_H
-#define _XT_CLASSIFY_H
-
-#include <linux/types.h>
-
-struct xt_classify_target_info {
- __u32 priority;
-};
-
-#endif /*_XT_CLASSIFY_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_CONNMARK.h b/ANDROID_3.4.5/include/linux/netfilter/xt_CONNMARK.h
deleted file mode 100644
index 2f2e48ec..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_CONNMARK.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef _XT_CONNMARK_H_target
-#define _XT_CONNMARK_H_target
-
-#include <linux/netfilter/xt_connmark.h>
-
-#endif /*_XT_CONNMARK_H_target*/
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_CONNSECMARK.h b/ANDROID_3.4.5/include/linux/netfilter/xt_CONNSECMARK.h
deleted file mode 100644
index b973ff80..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_CONNSECMARK.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef _XT_CONNSECMARK_H_target
-#define _XT_CONNSECMARK_H_target
-
-#include <linux/types.h>
-
-enum {
- CONNSECMARK_SAVE = 1,
- CONNSECMARK_RESTORE,
-};
-
-struct xt_connsecmark_target_info {
- __u8 mode;
-};
-
-#endif /*_XT_CONNSECMARK_H_target */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_CT.h b/ANDROID_3.4.5/include/linux/netfilter/xt_CT.h
deleted file mode 100644
index a064b8af..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_CT.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef _XT_CT_H
-#define _XT_CT_H
-
-#include <linux/types.h>
-
-#define XT_CT_NOTRACK 0x1
-
-struct xt_ct_target_info {
- __u16 flags;
- __u16 zone;
- __u32 ct_events;
- __u32 exp_events;
- char helper[16];
-
- /* Used internally by the kernel */
- struct nf_conn *ct __attribute__((aligned(8)));
-};
-
-struct xt_ct_target_info_v1 {
- __u16 flags;
- __u16 zone;
- __u32 ct_events;
- __u32 exp_events;
- char helper[16];
- char timeout[32];
-
- /* Used internally by the kernel */
- struct nf_conn *ct __attribute__((aligned(8)));
-};
-
-#endif /* _XT_CT_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_DSCP.h b/ANDROID_3.4.5/include/linux/netfilter/xt_DSCP.h
deleted file mode 100644
index 648e0b3b..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_DSCP.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* x_tables module for setting the IPv4/IPv6 DSCP field
- *
- * (C) 2002 Harald Welte <laforge@gnumonks.org>
- * based on ipt_FTOS.c (C) 2000 by Matthew G. Marsh <mgm@paktronix.com>
- * This software is distributed under GNU GPL v2, 1991
- *
- * See RFC2474 for a description of the DSCP field within the IP Header.
- *
- * xt_DSCP.h,v 1.7 2002/03/14 12:03:13 laforge Exp
-*/
-#ifndef _XT_DSCP_TARGET_H
-#define _XT_DSCP_TARGET_H
-#include <linux/netfilter/xt_dscp.h>
-#include <linux/types.h>
-
-/* target info */
-struct xt_DSCP_info {
- __u8 dscp;
-};
-
-struct xt_tos_target_info {
- __u8 tos_value;
- __u8 tos_mask;
-};
-
-#endif /* _XT_DSCP_TARGET_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_IDLETIMER.h b/ANDROID_3.4.5/include/linux/netfilter/xt_IDLETIMER.h
deleted file mode 100644
index faaa28b3..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_IDLETIMER.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * linux/include/linux/netfilter/xt_IDLETIMER.h
- *
- * Header file for Xtables timer target module.
- *
- * Copyright (C) 2004, 2010 Nokia Corporation
- *
- * Written by Timo Teras <ext-timo.teras@nokia.com>
- *
- * Converted to x_tables and forward-ported to 2.6.34
- * by Luciano Coelho <luciano.coelho@nokia.com>
- *
- * Contact: Luciano Coelho <luciano.coelho@nokia.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.
- *
- * 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 _XT_IDLETIMER_H
-#define _XT_IDLETIMER_H
-
-#include <linux/types.h>
-
-#define MAX_IDLETIMER_LABEL_SIZE 28
-#define NLMSG_MAX_SIZE 64
-
-#define NL_EVENT_TYPE_INACTIVE 0
-#define NL_EVENT_TYPE_ACTIVE 1
-
-struct idletimer_tg_info {
- __u32 timeout;
-
- char label[MAX_IDLETIMER_LABEL_SIZE];
-
- /* Use netlink messages for notification in addition to sysfs */
- __u8 send_nl_msg;
-
- /* for kernel module internal use only */
- struct idletimer_tg *timer __attribute__((aligned(8)));
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_LED.h b/ANDROID_3.4.5/include/linux/netfilter/xt_LED.h
deleted file mode 100644
index f5509e75..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_LED.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef _XT_LED_H
-#define _XT_LED_H
-
-#include <linux/types.h>
-
-struct xt_led_info {
- char id[27]; /* Unique ID for this trigger in the LED class */
- __u8 always_blink; /* Blink even if the LED is already on */
- __u32 delay; /* Delay until LED is switched off after trigger */
-
- /* Kernel data used in the module */
- void *internal_data __attribute__((aligned(8)));
-};
-
-#endif /* _XT_LED_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_LOG.h b/ANDROID_3.4.5/include/linux/netfilter/xt_LOG.h
deleted file mode 100644
index cac07909..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_LOG.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef _XT_LOG_H
-#define _XT_LOG_H
-
-/* make sure not to change this without changing nf_log.h:NF_LOG_* (!) */
-#define XT_LOG_TCPSEQ 0x01 /* Log TCP sequence numbers */
-#define XT_LOG_TCPOPT 0x02 /* Log TCP options */
-#define XT_LOG_IPOPT 0x04 /* Log IP options */
-#define XT_LOG_UID 0x08 /* Log UID owning local socket */
-#define XT_LOG_NFLOG 0x10 /* Unsupported, don't reuse */
-#define XT_LOG_MACDECODE 0x20 /* Decode MAC header */
-#define XT_LOG_MASK 0x2f
-
-struct xt_log_info {
- unsigned char level;
- unsigned char logflags;
- char prefix[30];
-};
-
-#endif /* _XT_LOG_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_MARK.h b/ANDROID_3.4.5/include/linux/netfilter/xt_MARK.h
deleted file mode 100644
index 41c456de..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_MARK.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef _XT_MARK_H_target
-#define _XT_MARK_H_target
-
-#include <linux/netfilter/xt_mark.h>
-
-#endif /*_XT_MARK_H_target */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_NFLOG.h b/ANDROID_3.4.5/include/linux/netfilter/xt_NFLOG.h
deleted file mode 100644
index 87b58311..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_NFLOG.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef _XT_NFLOG_TARGET
-#define _XT_NFLOG_TARGET
-
-#include <linux/types.h>
-
-#define XT_NFLOG_DEFAULT_GROUP 0x1
-#define XT_NFLOG_DEFAULT_THRESHOLD 0
-
-#define XT_NFLOG_MASK 0x0
-
-struct xt_nflog_info {
- __u32 len;
- __u16 group;
- __u16 threshold;
- __u16 flags;
- __u16 pad;
- char prefix[64];
-};
-
-#endif /* _XT_NFLOG_TARGET */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_NFQUEUE.h b/ANDROID_3.4.5/include/linux/netfilter/xt_NFQUEUE.h
deleted file mode 100644
index 9eafdbbb..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_NFQUEUE.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* iptables module for using NFQUEUE mechanism
- *
- * (C) 2005 Harald Welte <laforge@netfilter.org>
- *
- * This software is distributed under GNU GPL v2, 1991
- *
-*/
-#ifndef _XT_NFQ_TARGET_H
-#define _XT_NFQ_TARGET_H
-
-#include <linux/types.h>
-
-/* target info */
-struct xt_NFQ_info {
- __u16 queuenum;
-};
-
-struct xt_NFQ_info_v1 {
- __u16 queuenum;
- __u16 queues_total;
-};
-
-struct xt_NFQ_info_v2 {
- __u16 queuenum;
- __u16 queues_total;
- __u16 bypass;
-};
-
-#endif /* _XT_NFQ_TARGET_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_RATEEST.h b/ANDROID_3.4.5/include/linux/netfilter/xt_RATEEST.h
deleted file mode 100644
index 6605e20a..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_RATEEST.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef _XT_RATEEST_TARGET_H
-#define _XT_RATEEST_TARGET_H
-
-#include <linux/types.h>
-
-struct xt_rateest_target_info {
- char name[IFNAMSIZ];
- __s8 interval;
- __u8 ewma_log;
-
- /* Used internally by the kernel */
- struct xt_rateest *est __attribute__((aligned(8)));
-};
-
-#endif /* _XT_RATEEST_TARGET_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_SECMARK.h b/ANDROID_3.4.5/include/linux/netfilter/xt_SECMARK.h
deleted file mode 100644
index 989092bd..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_SECMARK.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef _XT_SECMARK_H_target
-#define _XT_SECMARK_H_target
-
-#include <linux/types.h>
-
-/*
- * This is intended for use by various security subsystems (but not
- * at the same time).
- *
- * 'mode' refers to the specific security subsystem which the
- * packets are being marked for.
- */
-#define SECMARK_MODE_SEL 0x01 /* SELinux */
-#define SECMARK_SECCTX_MAX 256
-
-struct xt_secmark_target_info {
- __u8 mode;
- __u32 secid;
- char secctx[SECMARK_SECCTX_MAX];
-};
-
-#endif /*_XT_SECMARK_H_target */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_TCPMSS.h b/ANDROID_3.4.5/include/linux/netfilter/xt_TCPMSS.h
deleted file mode 100644
index 9a6960af..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_TCPMSS.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef _XT_TCPMSS_H
-#define _XT_TCPMSS_H
-
-#include <linux/types.h>
-
-struct xt_tcpmss_info {
- __u16 mss;
-};
-
-#define XT_TCPMSS_CLAMP_PMTU 0xffff
-
-#endif /* _XT_TCPMSS_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_TCPOPTSTRIP.h b/ANDROID_3.4.5/include/linux/netfilter/xt_TCPOPTSTRIP.h
deleted file mode 100644
index 71573184..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_TCPOPTSTRIP.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef _XT_TCPOPTSTRIP_H
-#define _XT_TCPOPTSTRIP_H
-
-#include <linux/types.h>
-
-#define tcpoptstrip_set_bit(bmap, idx) \
- (bmap[(idx) >> 5] |= 1U << (idx & 31))
-#define tcpoptstrip_test_bit(bmap, idx) \
- (((1U << (idx & 31)) & bmap[(idx) >> 5]) != 0)
-
-struct xt_tcpoptstrip_target_info {
- __u32 strip_bmap[8];
-};
-
-#endif /* _XT_TCPOPTSTRIP_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_TEE.h b/ANDROID_3.4.5/include/linux/netfilter/xt_TEE.h
deleted file mode 100644
index 5c21d5c8..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_TEE.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef _XT_TEE_TARGET_H
-#define _XT_TEE_TARGET_H
-
-struct xt_tee_tginfo {
- union nf_inet_addr gw;
- char oif[16];
-
- /* used internally by the kernel */
- struct xt_tee_priv *priv __attribute__((aligned(8)));
-};
-
-#endif /* _XT_TEE_TARGET_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_TPROXY.h b/ANDROID_3.4.5/include/linux/netfilter/xt_TPROXY.h
deleted file mode 100644
index 902043c2..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_TPROXY.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef _XT_TPROXY_H
-#define _XT_TPROXY_H
-
-#include <linux/types.h>
-
-/* TPROXY target is capable of marking the packet to perform
- * redirection. We can get rid of that whenever we get support for
- * mutliple targets in the same rule. */
-struct xt_tproxy_target_info {
- __u32 mark_mask;
- __u32 mark_value;
- __be32 laddr;
- __be16 lport;
-};
-
-struct xt_tproxy_target_info_v1 {
- __u32 mark_mask;
- __u32 mark_value;
- union nf_inet_addr laddr;
- __be16 lport;
-};
-
-#endif /* _XT_TPROXY_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_addrtype.h b/ANDROID_3.4.5/include/linux/netfilter/xt_addrtype.h
deleted file mode 100644
index b156baa9..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_addrtype.h
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef _XT_ADDRTYPE_H
-#define _XT_ADDRTYPE_H
-
-#include <linux/types.h>
-
-enum {
- XT_ADDRTYPE_INVERT_SOURCE = 0x0001,
- XT_ADDRTYPE_INVERT_DEST = 0x0002,
- XT_ADDRTYPE_LIMIT_IFACE_IN = 0x0004,
- XT_ADDRTYPE_LIMIT_IFACE_OUT = 0x0008,
-};
-
-
-/* rtn_type enum values from rtnetlink.h, but shifted */
-enum {
- XT_ADDRTYPE_UNSPEC = 1 << 0,
- XT_ADDRTYPE_UNICAST = 1 << 1, /* 1 << RTN_UNICAST */
- XT_ADDRTYPE_LOCAL = 1 << 2, /* 1 << RTN_LOCAL, etc */
- XT_ADDRTYPE_BROADCAST = 1 << 3,
- XT_ADDRTYPE_ANYCAST = 1 << 4,
- XT_ADDRTYPE_MULTICAST = 1 << 5,
- XT_ADDRTYPE_BLACKHOLE = 1 << 6,
- XT_ADDRTYPE_UNREACHABLE = 1 << 7,
- XT_ADDRTYPE_PROHIBIT = 1 << 8,
- XT_ADDRTYPE_THROW = 1 << 9,
- XT_ADDRTYPE_NAT = 1 << 10,
- XT_ADDRTYPE_XRESOLVE = 1 << 11,
-};
-
-struct xt_addrtype_info_v1 {
- __u16 source; /* source-type mask */
- __u16 dest; /* dest-type mask */
- __u32 flags;
-};
-
-/* revision 0 */
-struct xt_addrtype_info {
- __u16 source; /* source-type mask */
- __u16 dest; /* dest-type mask */
- __u32 invert_source;
- __u32 invert_dest;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_cluster.h b/ANDROID_3.4.5/include/linux/netfilter/xt_cluster.h
deleted file mode 100644
index 9b883c8f..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_cluster.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef _XT_CLUSTER_MATCH_H
-#define _XT_CLUSTER_MATCH_H
-
-#include <linux/types.h>
-
-enum xt_cluster_flags {
- XT_CLUSTER_F_INV = (1 << 0)
-};
-
-struct xt_cluster_match_info {
- __u32 total_nodes;
- __u32 node_mask;
- __u32 hash_seed;
- __u32 flags;
-};
-
-#define XT_CLUSTER_NODES_MAX 32
-
-#endif /* _XT_CLUSTER_MATCH_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_comment.h b/ANDROID_3.4.5/include/linux/netfilter/xt_comment.h
deleted file mode 100644
index 0ea5e79f..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_comment.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef _XT_COMMENT_H
-#define _XT_COMMENT_H
-
-#define XT_MAX_COMMENT_LEN 256
-
-struct xt_comment_info {
- char comment[XT_MAX_COMMENT_LEN];
-};
-
-#endif /* XT_COMMENT_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_connbytes.h b/ANDROID_3.4.5/include/linux/netfilter/xt_connbytes.h
deleted file mode 100644
index f1d6c15b..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_connbytes.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef _XT_CONNBYTES_H
-#define _XT_CONNBYTES_H
-
-#include <linux/types.h>
-
-enum xt_connbytes_what {
- XT_CONNBYTES_PKTS,
- XT_CONNBYTES_BYTES,
- XT_CONNBYTES_AVGPKT,
-};
-
-enum xt_connbytes_direction {
- XT_CONNBYTES_DIR_ORIGINAL,
- XT_CONNBYTES_DIR_REPLY,
- XT_CONNBYTES_DIR_BOTH,
-};
-
-struct xt_connbytes_info {
- struct {
- __aligned_u64 from; /* count to be matched */
- __aligned_u64 to; /* count to be matched */
- } count;
- __u8 what; /* ipt_connbytes_what */
- __u8 direction; /* ipt_connbytes_direction */
-};
-#endif
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_connlimit.h b/ANDROID_3.4.5/include/linux/netfilter/xt_connlimit.h
deleted file mode 100644
index d1366f05..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_connlimit.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef _XT_CONNLIMIT_H
-#define _XT_CONNLIMIT_H
-
-#include <linux/types.h>
-#include <linux/netfilter.h>
-
-struct xt_connlimit_data;
-
-enum {
- XT_CONNLIMIT_INVERT = 1 << 0,
- XT_CONNLIMIT_DADDR = 1 << 1,
-};
-
-struct xt_connlimit_info {
- union {
- union nf_inet_addr mask;
-#ifndef __KERNEL__
- union {
- __be32 v4_mask;
- __be32 v6_mask[4];
- };
-#endif
- };
- unsigned int limit;
- union {
- /* revision 0 */
- unsigned int inverse;
-
- /* revision 1 */
- __u32 flags;
- };
-
- /* Used internally by the kernel */
- struct xt_connlimit_data *data __attribute__((aligned(8)));
-};
-
-#endif /* _XT_CONNLIMIT_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_connmark.h b/ANDROID_3.4.5/include/linux/netfilter/xt_connmark.h
deleted file mode 100644
index efc17a83..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_connmark.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef _XT_CONNMARK_H
-#define _XT_CONNMARK_H
-
-#include <linux/types.h>
-
-/* Copyright (C) 2002,2004 MARA Systems AB <http://www.marasystems.com>
- * by Henrik Nordstrom <hno@marasystems.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.
- */
-
-enum {
- XT_CONNMARK_SET = 0,
- XT_CONNMARK_SAVE,
- XT_CONNMARK_RESTORE
-};
-
-struct xt_connmark_tginfo1 {
- __u32 ctmark, ctmask, nfmask;
- __u8 mode;
-};
-
-struct xt_connmark_mtinfo1 {
- __u32 mark, mask;
- __u8 invert;
-};
-
-#endif /*_XT_CONNMARK_H*/
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_conntrack.h b/ANDROID_3.4.5/include/linux/netfilter/xt_conntrack.h
deleted file mode 100644
index e3c041d5..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_conntrack.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/* Header file for kernel module to match connection tracking information.
- * GPL (C) 2001 Marc Boucher (marc@mbsi.ca).
- */
-
-#ifndef _XT_CONNTRACK_H
-#define _XT_CONNTRACK_H
-
-#include <linux/types.h>
-#include <linux/netfilter.h>
-#include <linux/netfilter/nf_conntrack_tuple_common.h>
-
-#define XT_CONNTRACK_STATE_BIT(ctinfo) (1 << ((ctinfo)%IP_CT_IS_REPLY+1))
-#define XT_CONNTRACK_STATE_INVALID (1 << 0)
-
-#define XT_CONNTRACK_STATE_SNAT (1 << (IP_CT_NUMBER + 1))
-#define XT_CONNTRACK_STATE_DNAT (1 << (IP_CT_NUMBER + 2))
-#define XT_CONNTRACK_STATE_UNTRACKED (1 << (IP_CT_NUMBER + 3))
-
-/* flags, invflags: */
-enum {
- XT_CONNTRACK_STATE = 1 << 0,
- XT_CONNTRACK_PROTO = 1 << 1,
- XT_CONNTRACK_ORIGSRC = 1 << 2,
- XT_CONNTRACK_ORIGDST = 1 << 3,
- XT_CONNTRACK_REPLSRC = 1 << 4,
- XT_CONNTRACK_REPLDST = 1 << 5,
- XT_CONNTRACK_STATUS = 1 << 6,
- XT_CONNTRACK_EXPIRES = 1 << 7,
- XT_CONNTRACK_ORIGSRC_PORT = 1 << 8,
- XT_CONNTRACK_ORIGDST_PORT = 1 << 9,
- XT_CONNTRACK_REPLSRC_PORT = 1 << 10,
- XT_CONNTRACK_REPLDST_PORT = 1 << 11,
- XT_CONNTRACK_DIRECTION = 1 << 12,
-};
-
-struct xt_conntrack_mtinfo1 {
- union nf_inet_addr origsrc_addr, origsrc_mask;
- union nf_inet_addr origdst_addr, origdst_mask;
- union nf_inet_addr replsrc_addr, replsrc_mask;
- union nf_inet_addr repldst_addr, repldst_mask;
- __u32 expires_min, expires_max;
- __u16 l4proto;
- __be16 origsrc_port, origdst_port;
- __be16 replsrc_port, repldst_port;
- __u16 match_flags, invert_flags;
- __u8 state_mask, status_mask;
-};
-
-struct xt_conntrack_mtinfo2 {
- union nf_inet_addr origsrc_addr, origsrc_mask;
- union nf_inet_addr origdst_addr, origdst_mask;
- union nf_inet_addr replsrc_addr, replsrc_mask;
- union nf_inet_addr repldst_addr, repldst_mask;
- __u32 expires_min, expires_max;
- __u16 l4proto;
- __be16 origsrc_port, origdst_port;
- __be16 replsrc_port, repldst_port;
- __u16 match_flags, invert_flags;
- __u16 state_mask, status_mask;
-};
-
-struct xt_conntrack_mtinfo3 {
- union nf_inet_addr origsrc_addr, origsrc_mask;
- union nf_inet_addr origdst_addr, origdst_mask;
- union nf_inet_addr replsrc_addr, replsrc_mask;
- union nf_inet_addr repldst_addr, repldst_mask;
- __u32 expires_min, expires_max;
- __u16 l4proto;
- __u16 origsrc_port, origdst_port;
- __u16 replsrc_port, repldst_port;
- __u16 match_flags, invert_flags;
- __u16 state_mask, status_mask;
- __u16 origsrc_port_high, origdst_port_high;
- __u16 replsrc_port_high, repldst_port_high;
-};
-
-#endif /*_XT_CONNTRACK_H*/
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_cpu.h b/ANDROID_3.4.5/include/linux/netfilter/xt_cpu.h
deleted file mode 100644
index 93c7f11d..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_cpu.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef _XT_CPU_H
-#define _XT_CPU_H
-
-#include <linux/types.h>
-
-struct xt_cpu_info {
- __u32 cpu;
- __u32 invert;
-};
-
-#endif /*_XT_CPU_H*/
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_dccp.h b/ANDROID_3.4.5/include/linux/netfilter/xt_dccp.h
deleted file mode 100644
index a579e1b6..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_dccp.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef _XT_DCCP_H_
-#define _XT_DCCP_H_
-
-#include <linux/types.h>
-
-#define XT_DCCP_SRC_PORTS 0x01
-#define XT_DCCP_DEST_PORTS 0x02
-#define XT_DCCP_TYPE 0x04
-#define XT_DCCP_OPTION 0x08
-
-#define XT_DCCP_VALID_FLAGS 0x0f
-
-struct xt_dccp_info {
- __u16 dpts[2]; /* Min, Max */
- __u16 spts[2]; /* Min, Max */
-
- __u16 flags;
- __u16 invflags;
-
- __u16 typemask;
- __u8 option;
-};
-
-#endif /* _XT_DCCP_H_ */
-
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_devgroup.h b/ANDROID_3.4.5/include/linux/netfilter/xt_devgroup.h
deleted file mode 100644
index 1babde0e..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_devgroup.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef _XT_DEVGROUP_H
-#define _XT_DEVGROUP_H
-
-#include <linux/types.h>
-
-enum xt_devgroup_flags {
- XT_DEVGROUP_MATCH_SRC = 0x1,
- XT_DEVGROUP_INVERT_SRC = 0x2,
- XT_DEVGROUP_MATCH_DST = 0x4,
- XT_DEVGROUP_INVERT_DST = 0x8,
-};
-
-struct xt_devgroup_info {
- __u32 flags;
- __u32 src_group;
- __u32 src_mask;
- __u32 dst_group;
- __u32 dst_mask;
-};
-
-#endif /* _XT_DEVGROUP_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_dscp.h b/ANDROID_3.4.5/include/linux/netfilter/xt_dscp.h
deleted file mode 100644
index 15f8932a..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_dscp.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* x_tables module for matching the IPv4/IPv6 DSCP field
- *
- * (C) 2002 Harald Welte <laforge@gnumonks.org>
- * This software is distributed under GNU GPL v2, 1991
- *
- * See RFC2474 for a description of the DSCP field within the IP Header.
- *
- * xt_dscp.h,v 1.3 2002/08/05 19:00:21 laforge Exp
-*/
-#ifndef _XT_DSCP_H
-#define _XT_DSCP_H
-
-#include <linux/types.h>
-
-#define XT_DSCP_MASK 0xfc /* 11111100 */
-#define XT_DSCP_SHIFT 2
-#define XT_DSCP_MAX 0x3f /* 00111111 */
-
-/* match info */
-struct xt_dscp_info {
- __u8 dscp;
- __u8 invert;
-};
-
-struct xt_tos_match_info {
- __u8 tos_mask;
- __u8 tos_value;
- __u8 invert;
-};
-
-#endif /* _XT_DSCP_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_ecn.h b/ANDROID_3.4.5/include/linux/netfilter/xt_ecn.h
deleted file mode 100644
index 7158fca3..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_ecn.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* iptables module for matching the ECN header in IPv4 and TCP header
- *
- * (C) 2002 Harald Welte <laforge@gnumonks.org>
- *
- * This software is distributed under GNU GPL v2, 1991
- *
- * ipt_ecn.h,v 1.4 2002/08/05 19:39:00 laforge Exp
-*/
-#ifndef _XT_ECN_H
-#define _XT_ECN_H
-
-#include <linux/types.h>
-#include <linux/netfilter/xt_dscp.h>
-
-#define XT_ECN_IP_MASK (~XT_DSCP_MASK)
-
-#define XT_ECN_OP_MATCH_IP 0x01
-#define XT_ECN_OP_MATCH_ECE 0x10
-#define XT_ECN_OP_MATCH_CWR 0x20
-
-#define XT_ECN_OP_MATCH_MASK 0xce
-
-/* match info */
-struct xt_ecn_info {
- __u8 operation;
- __u8 invert;
- __u8 ip_ect;
- union {
- struct {
- __u8 ect;
- } tcp;
- } proto;
-};
-
-#endif /* _XT_ECN_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_esp.h b/ANDROID_3.4.5/include/linux/netfilter/xt_esp.h
deleted file mode 100644
index ee688240..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_esp.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef _XT_ESP_H
-#define _XT_ESP_H
-
-#include <linux/types.h>
-
-struct xt_esp {
- __u32 spis[2]; /* Security Parameter Index */
- __u8 invflags; /* Inverse flags */
-};
-
-/* Values for "invflags" field in struct xt_esp. */
-#define XT_ESP_INV_SPI 0x01 /* Invert the sense of spi. */
-#define XT_ESP_INV_MASK 0x01 /* All possible flags. */
-
-#endif /*_XT_ESP_H*/
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_hashlimit.h b/ANDROID_3.4.5/include/linux/netfilter/xt_hashlimit.h
deleted file mode 100644
index b1925b59..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_hashlimit.h
+++ /dev/null
@@ -1,68 +0,0 @@
-#ifndef _XT_HASHLIMIT_H
-#define _XT_HASHLIMIT_H
-
-#include <linux/types.h>
-
-/* timings are in milliseconds. */
-#define XT_HASHLIMIT_SCALE 10000
-/* 1/10,000 sec period => max of 10,000/sec. Min rate is then 429490
- seconds, or one every 59 hours. */
-
-/* details of this structure hidden by the implementation */
-struct xt_hashlimit_htable;
-
-enum {
- XT_HASHLIMIT_HASH_DIP = 1 << 0,
- XT_HASHLIMIT_HASH_DPT = 1 << 1,
- XT_HASHLIMIT_HASH_SIP = 1 << 2,
- XT_HASHLIMIT_HASH_SPT = 1 << 3,
- XT_HASHLIMIT_INVERT = 1 << 4,
-};
-
-struct hashlimit_cfg {
- __u32 mode; /* bitmask of XT_HASHLIMIT_HASH_* */
- __u32 avg; /* Average secs between packets * scale */
- __u32 burst; /* Period multiplier for upper limit. */
-
- /* user specified */
- __u32 size; /* how many buckets */
- __u32 max; /* max number of entries */
- __u32 gc_interval; /* gc interval */
- __u32 expire; /* when do entries expire? */
-};
-
-struct xt_hashlimit_info {
- char name [IFNAMSIZ]; /* name */
- struct hashlimit_cfg cfg;
-
- /* Used internally by the kernel */
- struct xt_hashlimit_htable *hinfo;
- union {
- void *ptr;
- struct xt_hashlimit_info *master;
- } u;
-};
-
-struct hashlimit_cfg1 {
- __u32 mode; /* bitmask of XT_HASHLIMIT_HASH_* */
- __u32 avg; /* Average secs between packets * scale */
- __u32 burst; /* Period multiplier for upper limit. */
-
- /* user specified */
- __u32 size; /* how many buckets */
- __u32 max; /* max number of entries */
- __u32 gc_interval; /* gc interval */
- __u32 expire; /* when do entries expire? */
-
- __u8 srcmask, dstmask;
-};
-
-struct xt_hashlimit_mtinfo1 {
- char name[IFNAMSIZ];
- struct hashlimit_cfg1 cfg;
-
- /* Used internally by the kernel */
- struct xt_hashlimit_htable *hinfo __attribute__((aligned(8)));
-};
-
-#endif /*_XT_HASHLIMIT_H*/
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_helper.h b/ANDROID_3.4.5/include/linux/netfilter/xt_helper.h
deleted file mode 100644
index 6b42763f..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_helper.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef _XT_HELPER_H
-#define _XT_HELPER_H
-
-struct xt_helper_info {
- int invert;
- char name[30];
-};
-#endif /* _XT_HELPER_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_iprange.h b/ANDROID_3.4.5/include/linux/netfilter/xt_iprange.h
deleted file mode 100644
index 25fd7cf8..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_iprange.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef _LINUX_NETFILTER_XT_IPRANGE_H
-#define _LINUX_NETFILTER_XT_IPRANGE_H 1
-
-#include <linux/types.h>
-#include <linux/netfilter.h>
-
-enum {
- IPRANGE_SRC = 1 << 0, /* match source IP address */
- IPRANGE_DST = 1 << 1, /* match destination IP address */
- IPRANGE_SRC_INV = 1 << 4, /* negate the condition */
- IPRANGE_DST_INV = 1 << 5, /* -"- */
-};
-
-struct xt_iprange_mtinfo {
- union nf_inet_addr src_min, src_max;
- union nf_inet_addr dst_min, dst_max;
- __u8 flags;
-};
-
-#endif /* _LINUX_NETFILTER_XT_IPRANGE_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_ipvs.h b/ANDROID_3.4.5/include/linux/netfilter/xt_ipvs.h
deleted file mode 100644
index eff34ac1..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_ipvs.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef _XT_IPVS_H
-#define _XT_IPVS_H
-
-#include <linux/types.h>
-
-enum {
- XT_IPVS_IPVS_PROPERTY = 1 << 0, /* all other options imply this one */
- XT_IPVS_PROTO = 1 << 1,
- XT_IPVS_VADDR = 1 << 2,
- XT_IPVS_VPORT = 1 << 3,
- XT_IPVS_DIR = 1 << 4,
- XT_IPVS_METHOD = 1 << 5,
- XT_IPVS_VPORTCTL = 1 << 6,
- XT_IPVS_MASK = (1 << 7) - 1,
- XT_IPVS_ONCE_MASK = XT_IPVS_MASK & ~XT_IPVS_IPVS_PROPERTY
-};
-
-struct xt_ipvs_mtinfo {
- union nf_inet_addr vaddr, vmask;
- __be16 vport;
- __u8 l4proto;
- __u8 fwd_method;
- __be16 vportctl;
-
- __u8 invert;
- __u8 bitmask;
-};
-
-#endif /* _XT_IPVS_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_length.h b/ANDROID_3.4.5/include/linux/netfilter/xt_length.h
deleted file mode 100644
index b82ed7c4..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_length.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef _XT_LENGTH_H
-#define _XT_LENGTH_H
-
-#include <linux/types.h>
-
-struct xt_length_info {
- __u16 min, max;
- __u8 invert;
-};
-
-#endif /*_XT_LENGTH_H*/
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_limit.h b/ANDROID_3.4.5/include/linux/netfilter/xt_limit.h
deleted file mode 100644
index bb47fc4d..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_limit.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef _XT_RATE_H
-#define _XT_RATE_H
-
-#include <linux/types.h>
-
-/* timings are in milliseconds. */
-#define XT_LIMIT_SCALE 10000
-
-struct xt_limit_priv;
-
-/* 1/10,000 sec period => max of 10,000/sec. Min rate is then 429490
- seconds, or one every 59 hours. */
-struct xt_rateinfo {
- __u32 avg; /* Average secs between packets * scale */
- __u32 burst; /* Period multiplier for upper limit. */
-
- /* Used internally by the kernel */
- unsigned long prev; /* moved to xt_limit_priv */
- __u32 credit; /* moved to xt_limit_priv */
- __u32 credit_cap, cost;
-
- struct xt_limit_priv *master;
-};
-#endif /*_XT_RATE_H*/
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_mac.h b/ANDROID_3.4.5/include/linux/netfilter/xt_mac.h
deleted file mode 100644
index b892cdc6..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_mac.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef _XT_MAC_H
-#define _XT_MAC_H
-
-struct xt_mac_info {
- unsigned char srcaddr[ETH_ALEN];
- int invert;
-};
-#endif /*_XT_MAC_H*/
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_mark.h b/ANDROID_3.4.5/include/linux/netfilter/xt_mark.h
deleted file mode 100644
index ecadc40d..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_mark.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef _XT_MARK_H
-#define _XT_MARK_H
-
-#include <linux/types.h>
-
-struct xt_mark_tginfo2 {
- __u32 mark, mask;
-};
-
-struct xt_mark_mtinfo1 {
- __u32 mark, mask;
- __u8 invert;
-};
-
-#endif /*_XT_MARK_H*/
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_multiport.h b/ANDROID_3.4.5/include/linux/netfilter/xt_multiport.h
deleted file mode 100644
index 5b7e72df..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_multiport.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef _XT_MULTIPORT_H
-#define _XT_MULTIPORT_H
-
-#include <linux/types.h>
-
-enum xt_multiport_flags {
- XT_MULTIPORT_SOURCE,
- XT_MULTIPORT_DESTINATION,
- XT_MULTIPORT_EITHER
-};
-
-#define XT_MULTI_PORTS 15
-
-/* Must fit inside union xt_matchinfo: 16 bytes */
-struct xt_multiport {
- __u8 flags; /* Type of comparison */
- __u8 count; /* Number of ports */
- __u16 ports[XT_MULTI_PORTS]; /* Ports */
-};
-
-struct xt_multiport_v1 {
- __u8 flags; /* Type of comparison */
- __u8 count; /* Number of ports */
- __u16 ports[XT_MULTI_PORTS]; /* Ports */
- __u8 pflags[XT_MULTI_PORTS]; /* Port flags */
- __u8 invert; /* Invert flag */
-};
-
-#endif /*_XT_MULTIPORT_H*/
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_nfacct.h b/ANDROID_3.4.5/include/linux/netfilter/xt_nfacct.h
deleted file mode 100644
index 3e19c8a8..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_nfacct.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef _XT_NFACCT_MATCH_H
-#define _XT_NFACCT_MATCH_H
-
-#include <linux/netfilter/nfnetlink_acct.h>
-
-struct nf_acct;
-
-struct xt_nfacct_match_info {
- char name[NFACCT_NAME_MAX];
- struct nf_acct *nfacct;
-};
-
-#endif /* _XT_NFACCT_MATCH_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_osf.h b/ANDROID_3.4.5/include/linux/netfilter/xt_osf.h
deleted file mode 100644
index 18afa495..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_osf.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright (c) 2003+ Evgeniy Polyakov <johnpol@2ka.mxt.ru>
- *
- *
- * 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
- */
-
-#ifndef _XT_OSF_H
-#define _XT_OSF_H
-
-#include <linux/types.h>
-
-#define MAXGENRELEN 32
-
-#define XT_OSF_GENRE (1<<0)
-#define XT_OSF_TTL (1<<1)
-#define XT_OSF_LOG (1<<2)
-#define XT_OSF_INVERT (1<<3)
-
-#define XT_OSF_LOGLEVEL_ALL 0 /* log all matched fingerprints */
-#define XT_OSF_LOGLEVEL_FIRST 1 /* log only the first matced fingerprint */
-#define XT_OSF_LOGLEVEL_ALL_KNOWN 2 /* do not log unknown packets */
-
-#define XT_OSF_TTL_TRUE 0 /* True ip and fingerprint TTL comparison */
-#define XT_OSF_TTL_LESS 1 /* Check if ip TTL is less than fingerprint one */
-#define XT_OSF_TTL_NOCHECK 2 /* Do not compare ip and fingerprint TTL at all */
-
-struct xt_osf_info {
- char genre[MAXGENRELEN];
- __u32 len;
- __u32 flags;
- __u32 loglevel;
- __u32 ttl;
-};
-
-/*
- * Wildcard MSS (kind of).
- * It is used to implement a state machine for the different wildcard values
- * of the MSS and window sizes.
- */
-struct xt_osf_wc {
- __u32 wc;
- __u32 val;
-};
-
-/*
- * This struct represents IANA options
- * http://www.iana.org/assignments/tcp-parameters
- */
-struct xt_osf_opt {
- __u16 kind, length;
- struct xt_osf_wc wc;
-};
-
-struct xt_osf_user_finger {
- struct xt_osf_wc wss;
-
- __u8 ttl, df;
- __u16 ss, mss;
- __u16 opt_num;
-
- char genre[MAXGENRELEN];
- char version[MAXGENRELEN];
- char subtype[MAXGENRELEN];
-
- /* MAX_IPOPTLEN is maximum if all options are NOPs or EOLs */
- struct xt_osf_opt opt[MAX_IPOPTLEN];
-};
-
-struct xt_osf_nlmsg {
- struct xt_osf_user_finger f;
- struct iphdr ip;
- struct tcphdr tcp;
-};
-
-/* Defines for IANA option kinds */
-
-enum iana_options {
- OSFOPT_EOL = 0, /* End of options */
- OSFOPT_NOP, /* NOP */
- OSFOPT_MSS, /* Maximum segment size */
- OSFOPT_WSO, /* Window scale option */
- OSFOPT_SACKP, /* SACK permitted */
- OSFOPT_SACK, /* SACK */
- OSFOPT_ECHO,
- OSFOPT_ECHOREPLY,
- OSFOPT_TS, /* Timestamp option */
- OSFOPT_POCP, /* Partial Order Connection Permitted */
- OSFOPT_POSP, /* Partial Order Service Profile */
-
- /* Others are not used in the current OSF */
- OSFOPT_EMPTY = 255,
-};
-
-/*
- * Initial window size option state machine: multiple of mss, mtu or
- * plain numeric value. Can also be made as plain numeric value which
- * is not a multiple of specified value.
- */
-enum xt_osf_window_size_options {
- OSF_WSS_PLAIN = 0,
- OSF_WSS_MSS,
- OSF_WSS_MTU,
- OSF_WSS_MODULO,
- OSF_WSS_MAX,
-};
-
-/*
- * Add/remove fingerprint from the kernel.
- */
-enum xt_osf_msg_types {
- OSF_MSG_ADD,
- OSF_MSG_REMOVE,
- OSF_MSG_MAX,
-};
-
-enum xt_osf_attr_type {
- OSF_ATTR_UNSPEC,
- OSF_ATTR_FINGER,
- OSF_ATTR_MAX,
-};
-
-#endif /* _XT_OSF_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_owner.h b/ANDROID_3.4.5/include/linux/netfilter/xt_owner.h
deleted file mode 100644
index 20817617..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_owner.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef _XT_OWNER_MATCH_H
-#define _XT_OWNER_MATCH_H
-
-#include <linux/types.h>
-
-enum {
- XT_OWNER_UID = 1 << 0,
- XT_OWNER_GID = 1 << 1,
- XT_OWNER_SOCKET = 1 << 2,
-};
-
-struct xt_owner_match_info {
- __u32 uid_min, uid_max;
- __u32 gid_min, gid_max;
- __u8 match, invert;
-};
-
-#endif /* _XT_OWNER_MATCH_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_physdev.h b/ANDROID_3.4.5/include/linux/netfilter/xt_physdev.h
deleted file mode 100644
index 8555e399..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_physdev.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef _XT_PHYSDEV_H
-#define _XT_PHYSDEV_H
-
-#include <linux/types.h>
-
-#ifdef __KERNEL__
-#include <linux/if.h>
-#endif
-
-#define XT_PHYSDEV_OP_IN 0x01
-#define XT_PHYSDEV_OP_OUT 0x02
-#define XT_PHYSDEV_OP_BRIDGED 0x04
-#define XT_PHYSDEV_OP_ISIN 0x08
-#define XT_PHYSDEV_OP_ISOUT 0x10
-#define XT_PHYSDEV_OP_MASK (0x20 - 1)
-
-struct xt_physdev_info {
- char physindev[IFNAMSIZ];
- char in_mask[IFNAMSIZ];
- char physoutdev[IFNAMSIZ];
- char out_mask[IFNAMSIZ];
- __u8 invert;
- __u8 bitmask;
-};
-
-#endif /*_XT_PHYSDEV_H*/
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_pkttype.h b/ANDROID_3.4.5/include/linux/netfilter/xt_pkttype.h
deleted file mode 100644
index f265cf52..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_pkttype.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef _XT_PKTTYPE_H
-#define _XT_PKTTYPE_H
-
-struct xt_pkttype_info {
- int pkttype;
- int invert;
-};
-#endif /*_XT_PKTTYPE_H*/
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_policy.h b/ANDROID_3.4.5/include/linux/netfilter/xt_policy.h
deleted file mode 100644
index be8ead05..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_policy.h
+++ /dev/null
@@ -1,69 +0,0 @@
-#ifndef _XT_POLICY_H
-#define _XT_POLICY_H
-
-#include <linux/types.h>
-
-#define XT_POLICY_MAX_ELEM 4
-
-enum xt_policy_flags {
- XT_POLICY_MATCH_IN = 0x1,
- XT_POLICY_MATCH_OUT = 0x2,
- XT_POLICY_MATCH_NONE = 0x4,
- XT_POLICY_MATCH_STRICT = 0x8,
-};
-
-enum xt_policy_modes {
- XT_POLICY_MODE_TRANSPORT,
- XT_POLICY_MODE_TUNNEL
-};
-
-struct xt_policy_spec {
- __u8 saddr:1,
- daddr:1,
- proto:1,
- mode:1,
- spi:1,
- reqid:1;
-};
-
-#ifndef __KERNEL__
-union xt_policy_addr {
- struct in_addr a4;
- struct in6_addr a6;
-};
-#endif
-
-struct xt_policy_elem {
- union {
-#ifdef __KERNEL__
- struct {
- union nf_inet_addr saddr;
- union nf_inet_addr smask;
- union nf_inet_addr daddr;
- union nf_inet_addr dmask;
- };
-#else
- struct {
- union xt_policy_addr saddr;
- union xt_policy_addr smask;
- union xt_policy_addr daddr;
- union xt_policy_addr dmask;
- };
-#endif
- };
- __be32 spi;
- __u32 reqid;
- __u8 proto;
- __u8 mode;
-
- struct xt_policy_spec match;
- struct xt_policy_spec invert;
-};
-
-struct xt_policy_info {
- struct xt_policy_elem pol[XT_POLICY_MAX_ELEM];
- __u16 flags;
- __u16 len;
-};
-
-#endif /* _XT_POLICY_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_qtaguid.h b/ANDROID_3.4.5/include/linux/netfilter/xt_qtaguid.h
deleted file mode 100644
index ca60fbde..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_qtaguid.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef _XT_QTAGUID_MATCH_H
-#define _XT_QTAGUID_MATCH_H
-
-/* For now we just replace the xt_owner.
- * FIXME: make iptables aware of qtaguid. */
-#include <linux/netfilter/xt_owner.h>
-
-#define XT_QTAGUID_UID XT_OWNER_UID
-#define XT_QTAGUID_GID XT_OWNER_GID
-#define XT_QTAGUID_SOCKET XT_OWNER_SOCKET
-#define xt_qtaguid_match_info xt_owner_match_info
-
-#endif /* _XT_QTAGUID_MATCH_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_quota.h b/ANDROID_3.4.5/include/linux/netfilter/xt_quota.h
deleted file mode 100644
index 9314723f..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_quota.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef _XT_QUOTA_H
-#define _XT_QUOTA_H
-
-#include <linux/types.h>
-
-enum xt_quota_flags {
- XT_QUOTA_INVERT = 0x1,
-};
-#define XT_QUOTA_MASK 0x1
-
-struct xt_quota_priv;
-
-struct xt_quota_info {
- __u32 flags;
- __u32 pad;
- __aligned_u64 quota;
-
- /* Used internally by the kernel */
- struct xt_quota_priv *master;
-};
-
-#endif /* _XT_QUOTA_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_quota2.h b/ANDROID_3.4.5/include/linux/netfilter/xt_quota2.h
deleted file mode 100644
index eadc6903..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_quota2.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef _XT_QUOTA_H
-#define _XT_QUOTA_H
-
-enum xt_quota_flags {
- XT_QUOTA_INVERT = 1 << 0,
- XT_QUOTA_GROW = 1 << 1,
- XT_QUOTA_PACKET = 1 << 2,
- XT_QUOTA_NO_CHANGE = 1 << 3,
- XT_QUOTA_MASK = 0x0F,
-};
-
-struct xt_quota_counter;
-
-struct xt_quota_mtinfo2 {
- char name[15];
- u_int8_t flags;
-
- /* Comparison-invariant */
- aligned_u64 quota;
-
- /* Used internally by the kernel */
- struct xt_quota_counter *master __attribute__((aligned(8)));
-};
-
-#endif /* _XT_QUOTA_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_rateest.h b/ANDROID_3.4.5/include/linux/netfilter/xt_rateest.h
deleted file mode 100644
index d40a6196..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_rateest.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef _XT_RATEEST_MATCH_H
-#define _XT_RATEEST_MATCH_H
-
-#include <linux/types.h>
-
-enum xt_rateest_match_flags {
- XT_RATEEST_MATCH_INVERT = 1<<0,
- XT_RATEEST_MATCH_ABS = 1<<1,
- XT_RATEEST_MATCH_REL = 1<<2,
- XT_RATEEST_MATCH_DELTA = 1<<3,
- XT_RATEEST_MATCH_BPS = 1<<4,
- XT_RATEEST_MATCH_PPS = 1<<5,
-};
-
-enum xt_rateest_match_mode {
- XT_RATEEST_MATCH_NONE,
- XT_RATEEST_MATCH_EQ,
- XT_RATEEST_MATCH_LT,
- XT_RATEEST_MATCH_GT,
-};
-
-struct xt_rateest_match_info {
- char name1[IFNAMSIZ];
- char name2[IFNAMSIZ];
- __u16 flags;
- __u16 mode;
- __u32 bps1;
- __u32 pps1;
- __u32 bps2;
- __u32 pps2;
-
- /* Used internally by the kernel */
- struct xt_rateest *est1 __attribute__((aligned(8)));
- struct xt_rateest *est2 __attribute__((aligned(8)));
-};
-
-#endif /* _XT_RATEEST_MATCH_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_realm.h b/ANDROID_3.4.5/include/linux/netfilter/xt_realm.h
deleted file mode 100644
index d4a82ee5..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_realm.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef _XT_REALM_H
-#define _XT_REALM_H
-
-#include <linux/types.h>
-
-struct xt_realm_info {
- __u32 id;
- __u32 mask;
- __u8 invert;
-};
-
-#endif /* _XT_REALM_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_recent.h b/ANDROID_3.4.5/include/linux/netfilter/xt_recent.h
deleted file mode 100644
index 83318e01..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_recent.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#ifndef _LINUX_NETFILTER_XT_RECENT_H
-#define _LINUX_NETFILTER_XT_RECENT_H 1
-
-#include <linux/types.h>
-
-enum {
- XT_RECENT_CHECK = 1 << 0,
- XT_RECENT_SET = 1 << 1,
- XT_RECENT_UPDATE = 1 << 2,
- XT_RECENT_REMOVE = 1 << 3,
- XT_RECENT_TTL = 1 << 4,
- XT_RECENT_REAP = 1 << 5,
-
- XT_RECENT_SOURCE = 0,
- XT_RECENT_DEST = 1,
-
- XT_RECENT_NAME_LEN = 200,
-};
-
-/* Only allowed with --rcheck and --update */
-#define XT_RECENT_MODIFIERS (XT_RECENT_TTL|XT_RECENT_REAP)
-
-#define XT_RECENT_VALID_FLAGS (XT_RECENT_CHECK|XT_RECENT_SET|XT_RECENT_UPDATE|\
- XT_RECENT_REMOVE|XT_RECENT_TTL|XT_RECENT_REAP)
-
-struct xt_recent_mtinfo {
- __u32 seconds;
- __u32 hit_count;
- __u8 check_set;
- __u8 invert;
- char name[XT_RECENT_NAME_LEN];
- __u8 side;
-};
-
-#endif /* _LINUX_NETFILTER_XT_RECENT_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_rpfilter.h b/ANDROID_3.4.5/include/linux/netfilter/xt_rpfilter.h
deleted file mode 100644
index 8358d4f7..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_rpfilter.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef _XT_RPATH_H
-#define _XT_RPATH_H
-
-#include <linux/types.h>
-
-enum {
- XT_RPFILTER_LOOSE = 1 << 0,
- XT_RPFILTER_VALID_MARK = 1 << 1,
- XT_RPFILTER_ACCEPT_LOCAL = 1 << 2,
- XT_RPFILTER_INVERT = 1 << 3,
-#ifdef __KERNEL__
- XT_RPFILTER_OPTION_MASK = XT_RPFILTER_LOOSE |
- XT_RPFILTER_VALID_MARK |
- XT_RPFILTER_ACCEPT_LOCAL |
- XT_RPFILTER_INVERT,
-#endif
-};
-
-struct xt_rpfilter_info {
- __u8 flags;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_sctp.h b/ANDROID_3.4.5/include/linux/netfilter/xt_sctp.h
deleted file mode 100644
index 29287be6..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_sctp.h
+++ /dev/null
@@ -1,92 +0,0 @@
-#ifndef _XT_SCTP_H_
-#define _XT_SCTP_H_
-
-#include <linux/types.h>
-
-#define XT_SCTP_SRC_PORTS 0x01
-#define XT_SCTP_DEST_PORTS 0x02
-#define XT_SCTP_CHUNK_TYPES 0x04
-
-#define XT_SCTP_VALID_FLAGS 0x07
-
-struct xt_sctp_flag_info {
- __u8 chunktype;
- __u8 flag;
- __u8 flag_mask;
-};
-
-#define XT_NUM_SCTP_FLAGS 4
-
-struct xt_sctp_info {
- __u16 dpts[2]; /* Min, Max */
- __u16 spts[2]; /* Min, Max */
-
- __u32 chunkmap[256 / sizeof (__u32)]; /* Bit mask of chunks to be matched according to RFC 2960 */
-
-#define SCTP_CHUNK_MATCH_ANY 0x01 /* Match if any of the chunk types are present */
-#define SCTP_CHUNK_MATCH_ALL 0x02 /* Match if all of the chunk types are present */
-#define SCTP_CHUNK_MATCH_ONLY 0x04 /* Match if these are the only chunk types present */
-
- __u32 chunk_match_type;
- struct xt_sctp_flag_info flag_info[XT_NUM_SCTP_FLAGS];
- int flag_count;
-
- __u32 flags;
- __u32 invflags;
-};
-
-#define bytes(type) (sizeof(type) * 8)
-
-#define SCTP_CHUNKMAP_SET(chunkmap, type) \
- do { \
- (chunkmap)[type / bytes(__u32)] |= \
- 1 << (type % bytes(__u32)); \
- } while (0)
-
-#define SCTP_CHUNKMAP_CLEAR(chunkmap, type) \
- do { \
- (chunkmap)[type / bytes(__u32)] &= \
- ~(1 << (type % bytes(__u32))); \
- } while (0)
-
-#define SCTP_CHUNKMAP_IS_SET(chunkmap, type) \
-({ \
- ((chunkmap)[type / bytes (__u32)] & \
- (1 << (type % bytes (__u32)))) ? 1: 0; \
-})
-
-#define SCTP_CHUNKMAP_RESET(chunkmap) \
- memset((chunkmap), 0, sizeof(chunkmap))
-
-#define SCTP_CHUNKMAP_SET_ALL(chunkmap) \
- memset((chunkmap), ~0U, sizeof(chunkmap))
-
-#define SCTP_CHUNKMAP_COPY(destmap, srcmap) \
- memcpy((destmap), (srcmap), sizeof(srcmap))
-
-#define SCTP_CHUNKMAP_IS_CLEAR(chunkmap) \
- __sctp_chunkmap_is_clear((chunkmap), ARRAY_SIZE(chunkmap))
-static inline bool
-__sctp_chunkmap_is_clear(const __u32 *chunkmap, unsigned int n)
-{
- unsigned int i;
- for (i = 0; i < n; ++i)
- if (chunkmap[i])
- return false;
- return true;
-}
-
-#define SCTP_CHUNKMAP_IS_ALL_SET(chunkmap) \
- __sctp_chunkmap_is_all_set((chunkmap), ARRAY_SIZE(chunkmap))
-static inline bool
-__sctp_chunkmap_is_all_set(const __u32 *chunkmap, unsigned int n)
-{
- unsigned int i;
- for (i = 0; i < n; ++i)
- if (chunkmap[i] != ~0U)
- return false;
- return true;
-}
-
-#endif /* _XT_SCTP_H_ */
-
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_set.h b/ANDROID_3.4.5/include/linux/netfilter/xt_set.h
deleted file mode 100644
index e3a9978f..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_set.h
+++ /dev/null
@@ -1,65 +0,0 @@
-#ifndef _XT_SET_H
-#define _XT_SET_H
-
-#include <linux/types.h>
-#include <linux/netfilter/ipset/ip_set.h>
-
-/* Revision 0 interface: backward compatible with netfilter/iptables */
-
-/*
- * Option flags for kernel operations (xt_set_info_v0)
- */
-#define IPSET_SRC 0x01 /* Source match/add */
-#define IPSET_DST 0x02 /* Destination match/add */
-#define IPSET_MATCH_INV 0x04 /* Inverse matching */
-
-struct xt_set_info_v0 {
- ip_set_id_t index;
- union {
- __u32 flags[IPSET_DIM_MAX + 1];
- struct {
- __u32 __flags[IPSET_DIM_MAX];
- __u8 dim;
- __u8 flags;
- } compat;
- } u;
-};
-
-/* match and target infos */
-struct xt_set_info_match_v0 {
- struct xt_set_info_v0 match_set;
-};
-
-struct xt_set_info_target_v0 {
- struct xt_set_info_v0 add_set;
- struct xt_set_info_v0 del_set;
-};
-
-/* Revision 1 match and target */
-
-struct xt_set_info {
- ip_set_id_t index;
- __u8 dim;
- __u8 flags;
-};
-
-/* match and target infos */
-struct xt_set_info_match_v1 {
- struct xt_set_info match_set;
-};
-
-struct xt_set_info_target_v1 {
- struct xt_set_info add_set;
- struct xt_set_info del_set;
-};
-
-/* Revision 2 target */
-
-struct xt_set_info_target_v2 {
- struct xt_set_info add_set;
- struct xt_set_info del_set;
- __u32 flags;
- __u32 timeout;
-};
-
-#endif /*_XT_SET_H*/
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_socket.h b/ANDROID_3.4.5/include/linux/netfilter/xt_socket.h
deleted file mode 100644
index 63594564..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_socket.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef _XT_SOCKET_H
-#define _XT_SOCKET_H
-
-#include <linux/types.h>
-
-enum {
- XT_SOCKET_TRANSPARENT = 1 << 0,
-};
-
-struct xt_socket_mtinfo1 {
- __u8 flags;
-};
-
-void xt_socket_put_sk(struct sock *sk);
-struct sock *xt_socket_get4_sk(const struct sk_buff *skb,
- struct xt_action_param *par);
-struct sock *xt_socket_get6_sk(const struct sk_buff *skb,
- struct xt_action_param *par);
-
-#endif /* _XT_SOCKET_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_state.h b/ANDROID_3.4.5/include/linux/netfilter/xt_state.h
deleted file mode 100644
index 7b32de88..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_state.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef _XT_STATE_H
-#define _XT_STATE_H
-
-#define XT_STATE_BIT(ctinfo) (1 << ((ctinfo)%IP_CT_IS_REPLY+1))
-#define XT_STATE_INVALID (1 << 0)
-
-#define XT_STATE_UNTRACKED (1 << (IP_CT_NUMBER + 1))
-
-struct xt_state_info {
- unsigned int statemask;
-};
-#endif /*_XT_STATE_H*/
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_statistic.h b/ANDROID_3.4.5/include/linux/netfilter/xt_statistic.h
deleted file mode 100644
index 4e983ef0..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_statistic.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef _XT_STATISTIC_H
-#define _XT_STATISTIC_H
-
-#include <linux/types.h>
-
-enum xt_statistic_mode {
- XT_STATISTIC_MODE_RANDOM,
- XT_STATISTIC_MODE_NTH,
- __XT_STATISTIC_MODE_MAX
-};
-#define XT_STATISTIC_MODE_MAX (__XT_STATISTIC_MODE_MAX - 1)
-
-enum xt_statistic_flags {
- XT_STATISTIC_INVERT = 0x1,
-};
-#define XT_STATISTIC_MASK 0x1
-
-struct xt_statistic_priv;
-
-struct xt_statistic_info {
- __u16 mode;
- __u16 flags;
- union {
- struct {
- __u32 probability;
- } random;
- struct {
- __u32 every;
- __u32 packet;
- __u32 count; /* unused */
- } nth;
- } u;
- struct xt_statistic_priv *master __attribute__((aligned(8)));
-};
-
-#endif /* _XT_STATISTIC_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_string.h b/ANDROID_3.4.5/include/linux/netfilter/xt_string.h
deleted file mode 100644
index 235347c0..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_string.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef _XT_STRING_H
-#define _XT_STRING_H
-
-#include <linux/types.h>
-
-#define XT_STRING_MAX_PATTERN_SIZE 128
-#define XT_STRING_MAX_ALGO_NAME_SIZE 16
-
-enum {
- XT_STRING_FLAG_INVERT = 0x01,
- XT_STRING_FLAG_IGNORECASE = 0x02
-};
-
-struct xt_string_info {
- __u16 from_offset;
- __u16 to_offset;
- char algo[XT_STRING_MAX_ALGO_NAME_SIZE];
- char pattern[XT_STRING_MAX_PATTERN_SIZE];
- __u8 patlen;
- union {
- struct {
- __u8 invert;
- } v0;
-
- struct {
- __u8 flags;
- } v1;
- } u;
-
- /* Used internally by the kernel */
- struct ts_config __attribute__((aligned(8))) *config;
-};
-
-#endif /*_XT_STRING_H*/
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_tcpmss.h b/ANDROID_3.4.5/include/linux/netfilter/xt_tcpmss.h
deleted file mode 100644
index fbac56b9..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_tcpmss.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef _XT_TCPMSS_MATCH_H
-#define _XT_TCPMSS_MATCH_H
-
-#include <linux/types.h>
-
-struct xt_tcpmss_match_info {
- __u16 mss_min, mss_max;
- __u8 invert;
-};
-
-#endif /*_XT_TCPMSS_MATCH_H*/
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_tcpudp.h b/ANDROID_3.4.5/include/linux/netfilter/xt_tcpudp.h
deleted file mode 100644
index 38aa7b39..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_tcpudp.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef _XT_TCPUDP_H
-#define _XT_TCPUDP_H
-
-#include <linux/types.h>
-
-/* TCP matching stuff */
-struct xt_tcp {
- __u16 spts[2]; /* Source port range. */
- __u16 dpts[2]; /* Destination port range. */
- __u8 option; /* TCP Option iff non-zero*/
- __u8 flg_mask; /* TCP flags mask byte */
- __u8 flg_cmp; /* TCP flags compare byte */
- __u8 invflags; /* Inverse flags */
-};
-
-/* Values for "inv" field in struct ipt_tcp. */
-#define XT_TCP_INV_SRCPT 0x01 /* Invert the sense of source ports. */
-#define XT_TCP_INV_DSTPT 0x02 /* Invert the sense of dest ports. */
-#define XT_TCP_INV_FLAGS 0x04 /* Invert the sense of TCP flags. */
-#define XT_TCP_INV_OPTION 0x08 /* Invert the sense of option test. */
-#define XT_TCP_INV_MASK 0x0F /* All possible flags. */
-
-/* UDP matching stuff */
-struct xt_udp {
- __u16 spts[2]; /* Source port range. */
- __u16 dpts[2]; /* Destination port range. */
- __u8 invflags; /* Inverse flags */
-};
-
-/* Values for "invflags" field in struct ipt_udp. */
-#define XT_UDP_INV_SRCPT 0x01 /* Invert the sense of source ports. */
-#define XT_UDP_INV_DSTPT 0x02 /* Invert the sense of dest ports. */
-#define XT_UDP_INV_MASK 0x03 /* All possible flags. */
-
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_time.h b/ANDROID_3.4.5/include/linux/netfilter/xt_time.h
deleted file mode 100644
index 7c37fac5..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_time.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef _XT_TIME_H
-#define _XT_TIME_H 1
-
-#include <linux/types.h>
-
-struct xt_time_info {
- __u32 date_start;
- __u32 date_stop;
- __u32 daytime_start;
- __u32 daytime_stop;
- __u32 monthdays_match;
- __u8 weekdays_match;
- __u8 flags;
-};
-
-enum {
- /* Match against local time (instead of UTC) */
- XT_TIME_LOCAL_TZ = 1 << 0,
-
- /* Shortcuts */
- XT_TIME_ALL_MONTHDAYS = 0xFFFFFFFE,
- XT_TIME_ALL_WEEKDAYS = 0xFE,
- XT_TIME_MIN_DAYTIME = 0,
- XT_TIME_MAX_DAYTIME = 24 * 60 * 60 - 1,
-};
-
-#endif /* _XT_TIME_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter/xt_u32.h b/ANDROID_3.4.5/include/linux/netfilter/xt_u32.h
deleted file mode 100644
index 04d1bfea..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter/xt_u32.h
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef _XT_U32_H
-#define _XT_U32_H 1
-
-#include <linux/types.h>
-
-enum xt_u32_ops {
- XT_U32_AND,
- XT_U32_LEFTSH,
- XT_U32_RIGHTSH,
- XT_U32_AT,
-};
-
-struct xt_u32_location_element {
- __u32 number;
- __u8 nextop;
-};
-
-struct xt_u32_value_element {
- __u32 min;
- __u32 max;
-};
-
-/*
- * Any way to allow for an arbitrary number of elements?
- * For now, I settle with a limit of 10 each.
- */
-#define XT_U32_MAXSIZE 10
-
-struct xt_u32_test {
- struct xt_u32_location_element location[XT_U32_MAXSIZE+1];
- struct xt_u32_value_element value[XT_U32_MAXSIZE+1];
- __u8 nnums;
- __u8 nvalues;
-};
-
-struct xt_u32 {
- struct xt_u32_test tests[XT_U32_MAXSIZE+1];
- __u8 ntests;
- __u8 invert;
-};
-
-#endif /* _XT_U32_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter_arp.h b/ANDROID_3.4.5/include/linux/netfilter_arp.h
deleted file mode 100644
index 92bc6ddc..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_arp.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef __LINUX_ARP_NETFILTER_H
-#define __LINUX_ARP_NETFILTER_H
-
-/* ARP-specific defines for netfilter.
- * (C)2002 Rusty Russell IBM -- This code is GPL.
- */
-
-#include <linux/netfilter.h>
-
-/* There is no PF_ARP. */
-#define NF_ARP 0
-
-/* ARP Hooks */
-#define NF_ARP_IN 0
-#define NF_ARP_OUT 1
-#define NF_ARP_FORWARD 2
-#define NF_ARP_NUMHOOKS 3
-
-#endif /* __LINUX_ARP_NETFILTER_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter_arp/Kbuild b/ANDROID_3.4.5/include/linux/netfilter_arp/Kbuild
deleted file mode 100644
index b27439c7..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_arp/Kbuild
+++ /dev/null
@@ -1,2 +0,0 @@
-header-y += arp_tables.h
-header-y += arpt_mangle.h
diff --git a/ANDROID_3.4.5/include/linux/netfilter_arp/arp_tables.h b/ANDROID_3.4.5/include/linux/netfilter_arp/arp_tables.h
deleted file mode 100644
index e08565d4..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_arp/arp_tables.h
+++ /dev/null
@@ -1,278 +0,0 @@
-/*
- * Format of an ARP firewall descriptor
- *
- * src, tgt, src_mask, tgt_mask, arpop, arpop_mask are always stored in
- * network byte order.
- * flags are stored in host byte order (of course).
- */
-
-#ifndef _ARPTABLES_H
-#define _ARPTABLES_H
-
-#ifdef __KERNEL__
-#include <linux/if.h>
-#include <linux/in.h>
-#include <linux/if_arp.h>
-#include <linux/skbuff.h>
-#endif
-#include <linux/types.h>
-#include <linux/compiler.h>
-#include <linux/netfilter_arp.h>
-
-#include <linux/netfilter/x_tables.h>
-
-#ifndef __KERNEL__
-#define ARPT_FUNCTION_MAXNAMELEN XT_FUNCTION_MAXNAMELEN
-#define ARPT_TABLE_MAXNAMELEN XT_TABLE_MAXNAMELEN
-#define arpt_entry_target xt_entry_target
-#define arpt_standard_target xt_standard_target
-#define arpt_error_target xt_error_target
-#define ARPT_CONTINUE XT_CONTINUE
-#define ARPT_RETURN XT_RETURN
-#define arpt_counters_info xt_counters_info
-#define arpt_counters xt_counters
-#define ARPT_STANDARD_TARGET XT_STANDARD_TARGET
-#define ARPT_ERROR_TARGET XT_ERROR_TARGET
-#define ARPT_ENTRY_ITERATE(entries, size, fn, args...) \
- XT_ENTRY_ITERATE(struct arpt_entry, entries, size, fn, ## args)
-#endif
-
-#define ARPT_DEV_ADDR_LEN_MAX 16
-
-struct arpt_devaddr_info {
- char addr[ARPT_DEV_ADDR_LEN_MAX];
- char mask[ARPT_DEV_ADDR_LEN_MAX];
-};
-
-/* Yes, Virginia, you have to zero the padding. */
-struct arpt_arp {
- /* Source and target IP addr */
- struct in_addr src, tgt;
- /* Mask for src and target IP addr */
- struct in_addr smsk, tmsk;
-
- /* Device hw address length, src+target device addresses */
- __u8 arhln, arhln_mask;
- struct arpt_devaddr_info src_devaddr;
- struct arpt_devaddr_info tgt_devaddr;
-
- /* ARP operation code. */
- __be16 arpop, arpop_mask;
-
- /* ARP hardware address and protocol address format. */
- __be16 arhrd, arhrd_mask;
- __be16 arpro, arpro_mask;
-
- /* The protocol address length is only accepted if it is 4
- * so there is no use in offering a way to do filtering on it.
- */
-
- char iniface[IFNAMSIZ], outiface[IFNAMSIZ];
- unsigned char iniface_mask[IFNAMSIZ], outiface_mask[IFNAMSIZ];
-
- /* Flags word */
- __u8 flags;
- /* Inverse flags */
- __u16 invflags;
-};
-
-/* Values for "flag" field in struct arpt_ip (general arp structure).
- * No flags defined yet.
- */
-#define ARPT_F_MASK 0x00 /* All possible flag bits mask. */
-
-/* Values for "inv" field in struct arpt_arp. */
-#define ARPT_INV_VIA_IN 0x0001 /* Invert the sense of IN IFACE. */
-#define ARPT_INV_VIA_OUT 0x0002 /* Invert the sense of OUT IFACE */
-#define ARPT_INV_SRCIP 0x0004 /* Invert the sense of SRC IP. */
-#define ARPT_INV_TGTIP 0x0008 /* Invert the sense of TGT IP. */
-#define ARPT_INV_SRCDEVADDR 0x0010 /* Invert the sense of SRC DEV ADDR. */
-#define ARPT_INV_TGTDEVADDR 0x0020 /* Invert the sense of TGT DEV ADDR. */
-#define ARPT_INV_ARPOP 0x0040 /* Invert the sense of ARP OP. */
-#define ARPT_INV_ARPHRD 0x0080 /* Invert the sense of ARP HRD. */
-#define ARPT_INV_ARPPRO 0x0100 /* Invert the sense of ARP PRO. */
-#define ARPT_INV_ARPHLN 0x0200 /* Invert the sense of ARP HLN. */
-#define ARPT_INV_MASK 0x03FF /* All possible flag bits mask. */
-
-/* This structure defines each of the firewall rules. Consists of 3
- parts which are 1) general ARP header stuff 2) match specific
- stuff 3) the target to perform if the rule matches */
-struct arpt_entry
-{
- struct arpt_arp arp;
-
- /* Size of arpt_entry + matches */
- __u16 target_offset;
- /* Size of arpt_entry + matches + target */
- __u16 next_offset;
-
- /* Back pointer */
- unsigned int comefrom;
-
- /* Packet and byte counters. */
- struct xt_counters counters;
-
- /* The matches (if any), then the target. */
- unsigned char elems[0];
-};
-
-/*
- * New IP firewall options for [gs]etsockopt at the RAW IP level.
- * Unlike BSD Linux inherits IP options so you don't have to use a raw
- * socket for this. Instead we check rights in the calls.
- *
- * ATTENTION: check linux/in.h before adding new number here.
- */
-#define ARPT_BASE_CTL 96
-
-#define ARPT_SO_SET_REPLACE (ARPT_BASE_CTL)
-#define ARPT_SO_SET_ADD_COUNTERS (ARPT_BASE_CTL + 1)
-#define ARPT_SO_SET_MAX ARPT_SO_SET_ADD_COUNTERS
-
-#define ARPT_SO_GET_INFO (ARPT_BASE_CTL)
-#define ARPT_SO_GET_ENTRIES (ARPT_BASE_CTL + 1)
-/* #define ARPT_SO_GET_REVISION_MATCH (APRT_BASE_CTL + 2) */
-#define ARPT_SO_GET_REVISION_TARGET (ARPT_BASE_CTL + 3)
-#define ARPT_SO_GET_MAX (ARPT_SO_GET_REVISION_TARGET)
-
-/* The argument to ARPT_SO_GET_INFO */
-struct arpt_getinfo {
- /* Which table: caller fills this in. */
- char name[XT_TABLE_MAXNAMELEN];
-
- /* Kernel fills these in. */
- /* Which hook entry points are valid: bitmask */
- unsigned int valid_hooks;
-
- /* Hook entry points: one per netfilter hook. */
- unsigned int hook_entry[NF_ARP_NUMHOOKS];
-
- /* Underflow points. */
- unsigned int underflow[NF_ARP_NUMHOOKS];
-
- /* Number of entries */
- unsigned int num_entries;
-
- /* Size of entries. */
- unsigned int size;
-};
-
-/* The argument to ARPT_SO_SET_REPLACE. */
-struct arpt_replace {
- /* Which table. */
- char name[XT_TABLE_MAXNAMELEN];
-
- /* Which hook entry points are valid: bitmask. You can't
- change this. */
- unsigned int valid_hooks;
-
- /* Number of entries */
- unsigned int num_entries;
-
- /* Total size of new entries */
- unsigned int size;
-
- /* Hook entry points. */
- unsigned int hook_entry[NF_ARP_NUMHOOKS];
-
- /* Underflow points. */
- unsigned int underflow[NF_ARP_NUMHOOKS];
-
- /* Information about old entries: */
- /* Number of counters (must be equal to current number of entries). */
- unsigned int num_counters;
- /* The old entries' counters. */
- struct xt_counters __user *counters;
-
- /* The entries (hang off end: not really an array). */
- struct arpt_entry entries[0];
-};
-
-/* The argument to ARPT_SO_GET_ENTRIES. */
-struct arpt_get_entries {
- /* Which table: user fills this in. */
- char name[XT_TABLE_MAXNAMELEN];
-
- /* User fills this in: total entry size. */
- unsigned int size;
-
- /* The entries. */
- struct arpt_entry entrytable[0];
-};
-
-/* Helper functions */
-static __inline__ struct xt_entry_target *arpt_get_target(struct arpt_entry *e)
-{
- return (void *)e + e->target_offset;
-}
-
-/*
- * Main firewall chains definitions and global var's definitions.
- */
-#ifdef __KERNEL__
-
-/* Standard entry. */
-struct arpt_standard {
- struct arpt_entry entry;
- struct xt_standard_target target;
-};
-
-struct arpt_error {
- struct arpt_entry entry;
- struct xt_error_target target;
-};
-
-#define ARPT_ENTRY_INIT(__size) \
-{ \
- .target_offset = sizeof(struct arpt_entry), \
- .next_offset = (__size), \
-}
-
-#define ARPT_STANDARD_INIT(__verdict) \
-{ \
- .entry = ARPT_ENTRY_INIT(sizeof(struct arpt_standard)), \
- .target = XT_TARGET_INIT(XT_STANDARD_TARGET, \
- sizeof(struct xt_standard_target)), \
- .target.verdict = -(__verdict) - 1, \
-}
-
-#define ARPT_ERROR_INIT \
-{ \
- .entry = ARPT_ENTRY_INIT(sizeof(struct arpt_error)), \
- .target = XT_TARGET_INIT(XT_ERROR_TARGET, \
- sizeof(struct xt_error_target)), \
- .target.errorname = "ERROR", \
-}
-
-extern void *arpt_alloc_initial_table(const struct xt_table *);
-extern struct xt_table *arpt_register_table(struct net *net,
- const struct xt_table *table,
- const struct arpt_replace *repl);
-extern void arpt_unregister_table(struct xt_table *table);
-extern unsigned int arpt_do_table(struct sk_buff *skb,
- unsigned int hook,
- const struct net_device *in,
- const struct net_device *out,
- struct xt_table *table);
-
-#ifdef CONFIG_COMPAT
-#include <net/compat.h>
-
-struct compat_arpt_entry {
- struct arpt_arp arp;
- __u16 target_offset;
- __u16 next_offset;
- compat_uint_t comefrom;
- struct compat_xt_counters counters;
- unsigned char elems[0];
-};
-
-static inline struct xt_entry_target *
-compat_arpt_get_target(struct compat_arpt_entry *e)
-{
- return (void *)e + e->target_offset;
-}
-
-#endif /* CONFIG_COMPAT */
-#endif /*__KERNEL__*/
-#endif /* _ARPTABLES_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter_arp/arpt_mangle.h b/ANDROID_3.4.5/include/linux/netfilter_arp/arpt_mangle.h
deleted file mode 100644
index 250f5029..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_arp/arpt_mangle.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef _ARPT_MANGLE_H
-#define _ARPT_MANGLE_H
-#include <linux/netfilter_arp/arp_tables.h>
-
-#define ARPT_MANGLE_ADDR_LEN_MAX sizeof(struct in_addr)
-struct arpt_mangle
-{
- char src_devaddr[ARPT_DEV_ADDR_LEN_MAX];
- char tgt_devaddr[ARPT_DEV_ADDR_LEN_MAX];
- union {
- struct in_addr src_ip;
- } u_s;
- union {
- struct in_addr tgt_ip;
- } u_t;
- u_int8_t flags;
- int target;
-};
-
-#define ARPT_MANGLE_SDEV 0x01
-#define ARPT_MANGLE_TDEV 0x02
-#define ARPT_MANGLE_SIP 0x04
-#define ARPT_MANGLE_TIP 0x08
-#define ARPT_MANGLE_MASK 0x0f
-
-#endif /* _ARPT_MANGLE_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter_bridge.h b/ANDROID_3.4.5/include/linux/netfilter_bridge.h
deleted file mode 100644
index 31d2844e..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_bridge.h
+++ /dev/null
@@ -1,122 +0,0 @@
-#ifndef __LINUX_BRIDGE_NETFILTER_H
-#define __LINUX_BRIDGE_NETFILTER_H
-
-/* bridge-specific defines for netfilter.
- */
-
-#include <linux/netfilter.h>
-#include <linux/if_ether.h>
-#include <linux/if_vlan.h>
-#include <linux/if_pppox.h>
-
-/* Bridge Hooks */
-/* After promisc drops, checksum checks. */
-#define NF_BR_PRE_ROUTING 0
-/* If the packet is destined for this box. */
-#define NF_BR_LOCAL_IN 1
-/* If the packet is destined for another interface. */
-#define NF_BR_FORWARD 2
-/* Packets coming from a local process. */
-#define NF_BR_LOCAL_OUT 3
-/* Packets about to hit the wire. */
-#define NF_BR_POST_ROUTING 4
-/* Not really a hook, but used for the ebtables broute table */
-#define NF_BR_BROUTING 5
-#define NF_BR_NUMHOOKS 6
-
-#ifdef __KERNEL__
-
-enum nf_br_hook_priorities {
- NF_BR_PRI_FIRST = INT_MIN,
- NF_BR_PRI_NAT_DST_BRIDGED = -300,
- NF_BR_PRI_FILTER_BRIDGED = -200,
- NF_BR_PRI_BRNF = 0,
- NF_BR_PRI_NAT_DST_OTHER = 100,
- NF_BR_PRI_FILTER_OTHER = 200,
- NF_BR_PRI_NAT_SRC = 300,
- NF_BR_PRI_LAST = INT_MAX,
-};
-
-#ifdef CONFIG_BRIDGE_NETFILTER
-
-#define BRNF_PKT_TYPE 0x01
-#define BRNF_BRIDGED_DNAT 0x02
-#define BRNF_BRIDGED 0x04
-#define BRNF_NF_BRIDGE_PREROUTING 0x08
-#define BRNF_8021Q 0x10
-#define BRNF_PPPoE 0x20
-
-/* Only used in br_forward.c */
-extern int nf_bridge_copy_header(struct sk_buff *skb);
-static inline int nf_bridge_maybe_copy_header(struct sk_buff *skb)
-{
- if (skb->nf_bridge &&
- skb->nf_bridge->mask & (BRNF_BRIDGED | BRNF_BRIDGED_DNAT))
- return nf_bridge_copy_header(skb);
- return 0;
-}
-
-static inline unsigned int nf_bridge_encap_header_len(const struct sk_buff *skb)
-{
- switch (skb->protocol) {
- case __cpu_to_be16(ETH_P_8021Q):
- return VLAN_HLEN;
- case __cpu_to_be16(ETH_P_PPP_SES):
- return PPPOE_SES_HLEN;
- default:
- return 0;
- }
-}
-
-static inline unsigned int nf_bridge_mtu_reduction(const struct sk_buff *skb)
-{
- if (unlikely(skb->nf_bridge->mask & BRNF_PPPoE))
- return PPPOE_SES_HLEN;
- return 0;
-}
-
-extern int br_handle_frame_finish(struct sk_buff *skb);
-/* Only used in br_device.c */
-static inline int br_nf_pre_routing_finish_bridge_slow(struct sk_buff *skb)
-{
- struct nf_bridge_info *nf_bridge = skb->nf_bridge;
-
- skb_pull(skb, ETH_HLEN);
- nf_bridge->mask ^= BRNF_BRIDGED_DNAT;
- skb_copy_to_linear_data_offset(skb, -(ETH_HLEN-ETH_ALEN),
- skb->nf_bridge->data, ETH_HLEN-ETH_ALEN);
- skb->dev = nf_bridge->physindev;
- return br_handle_frame_finish(skb);
-}
-
-/* This is called by the IP fragmenting code and it ensures there is
- * enough room for the encapsulating header (if there is one). */
-static inline unsigned int nf_bridge_pad(const struct sk_buff *skb)
-{
- if (skb->nf_bridge)
- return nf_bridge_encap_header_len(skb);
- return 0;
-}
-
-struct bridge_skb_cb {
- union {
- __be32 ipv4;
- } daddr;
-};
-
-static inline void br_drop_fake_rtable(struct sk_buff *skb)
-{
- struct dst_entry *dst = skb_dst(skb);
-
- if (dst && (dst->flags & DST_FAKE_RTABLE))
- skb_dst_drop(skb);
-}
-
-#else
-#define nf_bridge_maybe_copy_header(skb) (0)
-#define nf_bridge_pad(skb) (0)
-#define br_drop_fake_rtable(skb) do { } while (0)
-#endif /* CONFIG_BRIDGE_NETFILTER */
-
-#endif /* __KERNEL__ */
-#endif
diff --git a/ANDROID_3.4.5/include/linux/netfilter_bridge/Kbuild b/ANDROID_3.4.5/include/linux/netfilter_bridge/Kbuild
deleted file mode 100644
index e48f1a3f..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_bridge/Kbuild
+++ /dev/null
@@ -1,18 +0,0 @@
-header-y += ebt_802_3.h
-header-y += ebt_among.h
-header-y += ebt_arp.h
-header-y += ebt_arpreply.h
-header-y += ebt_ip.h
-header-y += ebt_ip6.h
-header-y += ebt_limit.h
-header-y += ebt_log.h
-header-y += ebt_mark_m.h
-header-y += ebt_mark_t.h
-header-y += ebt_nat.h
-header-y += ebt_nflog.h
-header-y += ebt_pkttype.h
-header-y += ebt_redirect.h
-header-y += ebt_stp.h
-header-y += ebt_ulog.h
-header-y += ebt_vlan.h
-header-y += ebtables.h
diff --git a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_802_3.h b/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_802_3.h
deleted file mode 100644
index be5be157..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_802_3.h
+++ /dev/null
@@ -1,70 +0,0 @@
-#ifndef __LINUX_BRIDGE_EBT_802_3_H
-#define __LINUX_BRIDGE_EBT_802_3_H
-
-#include <linux/types.h>
-
-#define EBT_802_3_SAP 0x01
-#define EBT_802_3_TYPE 0x02
-
-#define EBT_802_3_MATCH "802_3"
-
-/*
- * If frame has DSAP/SSAP value 0xaa you must check the SNAP type
- * to discover what kind of packet we're carrying.
- */
-#define CHECK_TYPE 0xaa
-
-/*
- * Control field may be one or two bytes. If the first byte has
- * the value 0x03 then the entire length is one byte, otherwise it is two.
- * One byte controls are used in Unnumbered Information frames.
- * Two byte controls are used in Numbered Information frames.
- */
-#define IS_UI 0x03
-
-#define EBT_802_3_MASK (EBT_802_3_SAP | EBT_802_3_TYPE | EBT_802_3)
-
-/* ui has one byte ctrl, ni has two */
-struct hdr_ui {
- __u8 dsap;
- __u8 ssap;
- __u8 ctrl;
- __u8 orig[3];
- __be16 type;
-};
-
-struct hdr_ni {
- __u8 dsap;
- __u8 ssap;
- __be16 ctrl;
- __u8 orig[3];
- __be16 type;
-};
-
-struct ebt_802_3_hdr {
- __u8 daddr[6];
- __u8 saddr[6];
- __be16 len;
- union {
- struct hdr_ui ui;
- struct hdr_ni ni;
- } llc;
-};
-
-#ifdef __KERNEL__
-#include <linux/skbuff.h>
-
-static inline struct ebt_802_3_hdr *ebt_802_3_hdr(const struct sk_buff *skb)
-{
- return (struct ebt_802_3_hdr *)skb_mac_header(skb);
-}
-#endif
-
-struct ebt_802_3_info {
- __u8 sap;
- __be16 type;
- __u8 bitmask;
- __u8 invflags;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_among.h b/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_among.h
deleted file mode 100644
index bd4e3ad0..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_among.h
+++ /dev/null
@@ -1,64 +0,0 @@
-#ifndef __LINUX_BRIDGE_EBT_AMONG_H
-#define __LINUX_BRIDGE_EBT_AMONG_H
-
-#include <linux/types.h>
-
-#define EBT_AMONG_DST 0x01
-#define EBT_AMONG_SRC 0x02
-
-/* Grzegorz Borowiak <grzes@gnu.univ.gda.pl> 2003
- *
- * Write-once-read-many hash table, used for checking if a given
- * MAC address belongs to a set or not and possibly for checking
- * if it is related with a given IPv4 address.
- *
- * The hash value of an address is its last byte.
- *
- * In real-world ethernet addresses, values of the last byte are
- * evenly distributed and there is no need to consider other bytes.
- * It would only slow the routines down.
- *
- * For MAC address comparison speedup reasons, we introduce a trick.
- * MAC address is mapped onto an array of two 32-bit integers.
- * This pair of integers is compared with MAC addresses in the
- * hash table, which are stored also in form of pairs of integers
- * (in `cmp' array). This is quick as it requires only two elementary
- * number comparisons in worst case. Further, we take advantage of
- * fact that entropy of 3 last bytes of address is larger than entropy
- * of 3 first bytes. So first we compare 4 last bytes of addresses and
- * if they are the same we compare 2 first.
- *
- * Yes, it is a memory overhead, but in 2003 AD, who cares?
- */
-
-struct ebt_mac_wormhash_tuple {
- __u32 cmp[2];
- __be32 ip;
-};
-
-struct ebt_mac_wormhash {
- int table[257];
- int poolsize;
- struct ebt_mac_wormhash_tuple pool[0];
-};
-
-#define ebt_mac_wormhash_size(x) ((x) ? sizeof(struct ebt_mac_wormhash) \
- + (x)->poolsize * sizeof(struct ebt_mac_wormhash_tuple) : 0)
-
-struct ebt_among_info {
- int wh_dst_ofs;
- int wh_src_ofs;
- int bitmask;
-};
-
-#define EBT_AMONG_DST_NEG 0x1
-#define EBT_AMONG_SRC_NEG 0x2
-
-#define ebt_among_wh_dst(x) ((x)->wh_dst_ofs ? \
- (struct ebt_mac_wormhash*)((char*)(x) + (x)->wh_dst_ofs) : NULL)
-#define ebt_among_wh_src(x) ((x)->wh_src_ofs ? \
- (struct ebt_mac_wormhash*)((char*)(x) + (x)->wh_src_ofs) : NULL)
-
-#define EBT_AMONG_MATCH "among"
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_arp.h b/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_arp.h
deleted file mode 100644
index 522f3e42..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_arp.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef __LINUX_BRIDGE_EBT_ARP_H
-#define __LINUX_BRIDGE_EBT_ARP_H
-
-#include <linux/types.h>
-
-#define EBT_ARP_OPCODE 0x01
-#define EBT_ARP_HTYPE 0x02
-#define EBT_ARP_PTYPE 0x04
-#define EBT_ARP_SRC_IP 0x08
-#define EBT_ARP_DST_IP 0x10
-#define EBT_ARP_SRC_MAC 0x20
-#define EBT_ARP_DST_MAC 0x40
-#define EBT_ARP_GRAT 0x80
-#define EBT_ARP_MASK (EBT_ARP_OPCODE | EBT_ARP_HTYPE | EBT_ARP_PTYPE | \
- EBT_ARP_SRC_IP | EBT_ARP_DST_IP | EBT_ARP_SRC_MAC | EBT_ARP_DST_MAC | \
- EBT_ARP_GRAT)
-#define EBT_ARP_MATCH "arp"
-
-struct ebt_arp_info
-{
- __be16 htype;
- __be16 ptype;
- __be16 opcode;
- __be32 saddr;
- __be32 smsk;
- __be32 daddr;
- __be32 dmsk;
- unsigned char smaddr[ETH_ALEN];
- unsigned char smmsk[ETH_ALEN];
- unsigned char dmaddr[ETH_ALEN];
- unsigned char dmmsk[ETH_ALEN];
- __u8 bitmask;
- __u8 invflags;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_arpreply.h b/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_arpreply.h
deleted file mode 100644
index 7e77896e..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_arpreply.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef __LINUX_BRIDGE_EBT_ARPREPLY_H
-#define __LINUX_BRIDGE_EBT_ARPREPLY_H
-
-struct ebt_arpreply_info {
- unsigned char mac[ETH_ALEN];
- int target;
-};
-#define EBT_ARPREPLY_TARGET "arpreply"
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_ip.h b/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_ip.h
deleted file mode 100644
index c4bbc41b..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_ip.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * ebt_ip
- *
- * Authors:
- * Bart De Schuymer <bart.de.schuymer@pandora.be>
- *
- * April, 2002
- *
- * Changes:
- * added ip-sport and ip-dport
- * Innominate Security Technologies AG <mhopf@innominate.com>
- * September, 2002
- */
-
-#ifndef __LINUX_BRIDGE_EBT_IP_H
-#define __LINUX_BRIDGE_EBT_IP_H
-
-#include <linux/types.h>
-
-#define EBT_IP_SOURCE 0x01
-#define EBT_IP_DEST 0x02
-#define EBT_IP_TOS 0x04
-#define EBT_IP_PROTO 0x08
-#define EBT_IP_SPORT 0x10
-#define EBT_IP_DPORT 0x20
-#define EBT_IP_MASK (EBT_IP_SOURCE | EBT_IP_DEST | EBT_IP_TOS | EBT_IP_PROTO |\
- EBT_IP_SPORT | EBT_IP_DPORT )
-#define EBT_IP_MATCH "ip"
-
-/* the same values are used for the invflags */
-struct ebt_ip_info {
- __be32 saddr;
- __be32 daddr;
- __be32 smsk;
- __be32 dmsk;
- __u8 tos;
- __u8 protocol;
- __u8 bitmask;
- __u8 invflags;
- __u16 sport[2];
- __u16 dport[2];
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_ip6.h b/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_ip6.h
deleted file mode 100644
index 42b88968..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_ip6.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * ebt_ip6
- *
- * Authors:
- * Kuo-Lang Tseng <kuo-lang.tseng@intel.com>
- * Manohar Castelino <manohar.r.castelino@intel.com>
- *
- * Jan 11, 2008
- *
- */
-
-#ifndef __LINUX_BRIDGE_EBT_IP6_H
-#define __LINUX_BRIDGE_EBT_IP6_H
-
-#include <linux/types.h>
-
-#define EBT_IP6_SOURCE 0x01
-#define EBT_IP6_DEST 0x02
-#define EBT_IP6_TCLASS 0x04
-#define EBT_IP6_PROTO 0x08
-#define EBT_IP6_SPORT 0x10
-#define EBT_IP6_DPORT 0x20
-#define EBT_IP6_ICMP6 0x40
-
-#define EBT_IP6_MASK (EBT_IP6_SOURCE | EBT_IP6_DEST | EBT_IP6_TCLASS |\
- EBT_IP6_PROTO | EBT_IP6_SPORT | EBT_IP6_DPORT | \
- EBT_IP6_ICMP6)
-#define EBT_IP6_MATCH "ip6"
-
-/* the same values are used for the invflags */
-struct ebt_ip6_info {
- struct in6_addr saddr;
- struct in6_addr daddr;
- struct in6_addr smsk;
- struct in6_addr dmsk;
- __u8 tclass;
- __u8 protocol;
- __u8 bitmask;
- __u8 invflags;
- union {
- __u16 sport[2];
- __u8 icmpv6_type[2];
- };
- union {
- __u16 dport[2];
- __u8 icmpv6_code[2];
- };
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_limit.h b/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_limit.h
deleted file mode 100644
index 66d80b30..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_limit.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef __LINUX_BRIDGE_EBT_LIMIT_H
-#define __LINUX_BRIDGE_EBT_LIMIT_H
-
-#include <linux/types.h>
-
-#define EBT_LIMIT_MATCH "limit"
-
-/* timings are in milliseconds. */
-#define EBT_LIMIT_SCALE 10000
-
-/* 1/10,000 sec period => max of 10,000/sec. Min rate is then 429490
- seconds, or one every 59 hours. */
-
-struct ebt_limit_info {
- __u32 avg; /* Average secs between packets * scale */
- __u32 burst; /* Period multiplier for upper limit. */
-
- /* Used internally by the kernel */
- unsigned long prev;
- __u32 credit;
- __u32 credit_cap, cost;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_log.h b/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_log.h
deleted file mode 100644
index 7e7f1d1f..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_log.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef __LINUX_BRIDGE_EBT_LOG_H
-#define __LINUX_BRIDGE_EBT_LOG_H
-
-#include <linux/types.h>
-
-#define EBT_LOG_IP 0x01 /* if the frame is made by ip, log the ip information */
-#define EBT_LOG_ARP 0x02
-#define EBT_LOG_NFLOG 0x04
-#define EBT_LOG_IP6 0x08
-#define EBT_LOG_MASK (EBT_LOG_IP | EBT_LOG_ARP | EBT_LOG_IP6)
-#define EBT_LOG_PREFIX_SIZE 30
-#define EBT_LOG_WATCHER "log"
-
-struct ebt_log_info {
- __u8 loglevel;
- __u8 prefix[EBT_LOG_PREFIX_SIZE];
- __u32 bitmask;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_mark_m.h b/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_mark_m.h
deleted file mode 100644
index 410f9e5a..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_mark_m.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef __LINUX_BRIDGE_EBT_MARK_M_H
-#define __LINUX_BRIDGE_EBT_MARK_M_H
-
-#include <linux/types.h>
-
-#define EBT_MARK_AND 0x01
-#define EBT_MARK_OR 0x02
-#define EBT_MARK_MASK (EBT_MARK_AND | EBT_MARK_OR)
-struct ebt_mark_m_info {
- unsigned long mark, mask;
- __u8 invert;
- __u8 bitmask;
-};
-#define EBT_MARK_MATCH "mark_m"
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_mark_t.h b/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_mark_t.h
deleted file mode 100644
index 7d5a268a..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_mark_t.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef __LINUX_BRIDGE_EBT_MARK_T_H
-#define __LINUX_BRIDGE_EBT_MARK_T_H
-
-/* The target member is reused for adding new actions, the
- * value of the real target is -1 to -NUM_STANDARD_TARGETS.
- * For backward compatibility, the 4 lsb (2 would be enough,
- * but let's play it safe) are kept to designate this target.
- * The remaining bits designate the action. By making the set
- * action 0xfffffff0, the result will look ok for older
- * versions. [September 2006] */
-#define MARK_SET_VALUE (0xfffffff0)
-#define MARK_OR_VALUE (0xffffffe0)
-#define MARK_AND_VALUE (0xffffffd0)
-#define MARK_XOR_VALUE (0xffffffc0)
-
-struct ebt_mark_t_info {
- unsigned long mark;
- /* EBT_ACCEPT, EBT_DROP, EBT_CONTINUE or EBT_RETURN */
- int target;
-};
-#define EBT_MARK_TARGET "mark"
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_nat.h b/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_nat.h
deleted file mode 100644
index 5e74e3b0..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_nat.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef __LINUX_BRIDGE_EBT_NAT_H
-#define __LINUX_BRIDGE_EBT_NAT_H
-
-#define NAT_ARP_BIT (0x00000010)
-struct ebt_nat_info {
- unsigned char mac[ETH_ALEN];
- /* EBT_ACCEPT, EBT_DROP, EBT_CONTINUE or EBT_RETURN */
- int target;
-};
-#define EBT_SNAT_TARGET "snat"
-#define EBT_DNAT_TARGET "dnat"
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_nflog.h b/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_nflog.h
deleted file mode 100644
index df829fce..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_nflog.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef __LINUX_BRIDGE_EBT_NFLOG_H
-#define __LINUX_BRIDGE_EBT_NFLOG_H
-
-#include <linux/types.h>
-
-#define EBT_NFLOG_MASK 0x0
-
-#define EBT_NFLOG_PREFIX_SIZE 64
-#define EBT_NFLOG_WATCHER "nflog"
-
-#define EBT_NFLOG_DEFAULT_GROUP 0x1
-#define EBT_NFLOG_DEFAULT_THRESHOLD 1
-
-struct ebt_nflog_info {
- __u32 len;
- __u16 group;
- __u16 threshold;
- __u16 flags;
- __u16 pad;
- char prefix[EBT_NFLOG_PREFIX_SIZE];
-};
-
-#endif /* __LINUX_BRIDGE_EBT_NFLOG_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_pkttype.h b/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_pkttype.h
deleted file mode 100644
index c241badc..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_pkttype.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef __LINUX_BRIDGE_EBT_PKTTYPE_H
-#define __LINUX_BRIDGE_EBT_PKTTYPE_H
-
-#include <linux/types.h>
-
-struct ebt_pkttype_info {
- __u8 pkt_type;
- __u8 invert;
-};
-#define EBT_PKTTYPE_MATCH "pkttype"
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_redirect.h b/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_redirect.h
deleted file mode 100644
index dd9622ce..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_redirect.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef __LINUX_BRIDGE_EBT_REDIRECT_H
-#define __LINUX_BRIDGE_EBT_REDIRECT_H
-
-struct ebt_redirect_info {
- /* EBT_ACCEPT, EBT_DROP, EBT_CONTINUE or EBT_RETURN */
- int target;
-};
-#define EBT_REDIRECT_TARGET "redirect"
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_stp.h b/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_stp.h
deleted file mode 100644
index 1025b9f5..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_stp.h
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef __LINUX_BRIDGE_EBT_STP_H
-#define __LINUX_BRIDGE_EBT_STP_H
-
-#include <linux/types.h>
-
-#define EBT_STP_TYPE 0x0001
-
-#define EBT_STP_FLAGS 0x0002
-#define EBT_STP_ROOTPRIO 0x0004
-#define EBT_STP_ROOTADDR 0x0008
-#define EBT_STP_ROOTCOST 0x0010
-#define EBT_STP_SENDERPRIO 0x0020
-#define EBT_STP_SENDERADDR 0x0040
-#define EBT_STP_PORT 0x0080
-#define EBT_STP_MSGAGE 0x0100
-#define EBT_STP_MAXAGE 0x0200
-#define EBT_STP_HELLOTIME 0x0400
-#define EBT_STP_FWDD 0x0800
-
-#define EBT_STP_MASK 0x0fff
-#define EBT_STP_CONFIG_MASK 0x0ffe
-
-#define EBT_STP_MATCH "stp"
-
-struct ebt_stp_config_info {
- __u8 flags;
- __u16 root_priol, root_priou;
- char root_addr[6], root_addrmsk[6];
- __u32 root_costl, root_costu;
- __u16 sender_priol, sender_priou;
- char sender_addr[6], sender_addrmsk[6];
- __u16 portl, portu;
- __u16 msg_agel, msg_ageu;
- __u16 max_agel, max_ageu;
- __u16 hello_timel, hello_timeu;
- __u16 forward_delayl, forward_delayu;
-};
-
-struct ebt_stp_info {
- __u8 type;
- struct ebt_stp_config_info config;
- __u16 bitmask;
- __u16 invflags;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_ulog.h b/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_ulog.h
deleted file mode 100644
index 89a6becb..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_ulog.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef _EBT_ULOG_H
-#define _EBT_ULOG_H
-
-#include <linux/types.h>
-
-#define EBT_ULOG_DEFAULT_NLGROUP 0
-#define EBT_ULOG_DEFAULT_QTHRESHOLD 1
-#define EBT_ULOG_MAXNLGROUPS 32 /* hardcoded netlink max */
-#define EBT_ULOG_PREFIX_LEN 32
-#define EBT_ULOG_MAX_QLEN 50
-#define EBT_ULOG_WATCHER "ulog"
-#define EBT_ULOG_VERSION 1
-
-struct ebt_ulog_info {
- __u32 nlgroup;
- unsigned int cprange;
- unsigned int qthreshold;
- char prefix[EBT_ULOG_PREFIX_LEN];
-};
-
-typedef struct ebt_ulog_packet_msg {
- int version;
- char indev[IFNAMSIZ];
- char outdev[IFNAMSIZ];
- char physindev[IFNAMSIZ];
- char physoutdev[IFNAMSIZ];
- char prefix[EBT_ULOG_PREFIX_LEN];
- struct timeval stamp;
- unsigned long mark;
- unsigned int hook;
- size_t data_len;
- /* The complete packet, including Ethernet header and perhaps
- * the VLAN header is appended */
- unsigned char data[0] __attribute__
- ((aligned (__alignof__(struct ebt_ulog_info))));
-} ebt_ulog_packet_msg_t;
-
-#endif /* _EBT_ULOG_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_vlan.h b/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_vlan.h
deleted file mode 100644
index 967d1d5c..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebt_vlan.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef __LINUX_BRIDGE_EBT_VLAN_H
-#define __LINUX_BRIDGE_EBT_VLAN_H
-
-#include <linux/types.h>
-
-#define EBT_VLAN_ID 0x01
-#define EBT_VLAN_PRIO 0x02
-#define EBT_VLAN_ENCAP 0x04
-#define EBT_VLAN_MASK (EBT_VLAN_ID | EBT_VLAN_PRIO | EBT_VLAN_ENCAP)
-#define EBT_VLAN_MATCH "vlan"
-
-struct ebt_vlan_info {
- __u16 id; /* VLAN ID {1-4095} */
- __u8 prio; /* VLAN User Priority {0-7} */
- __be16 encap; /* VLAN Encapsulated frame code {0-65535} */
- __u8 bitmask; /* Args bitmask bit 1=1 - ID arg,
- bit 2=1 User-Priority arg, bit 3=1 encap*/
- __u8 invflags; /* Inverse bitmask bit 1=1 - inversed ID arg,
- bit 2=1 - inversed Pirority arg */
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebtables.h b/ANDROID_3.4.5/include/linux/netfilter_bridge/ebtables.h
deleted file mode 100644
index 4dd5bd69..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_bridge/ebtables.h
+++ /dev/null
@@ -1,380 +0,0 @@
-/*
- * ebtables
- *
- * Authors:
- * Bart De Schuymer <bdschuym@pandora.be>
- *
- * ebtables.c,v 2.0, April, 2002
- *
- * This code is stongly inspired on the iptables code which is
- * Copyright (C) 1999 Paul `Rusty' Russell & Michael J. Neuling
- */
-
-#ifndef __LINUX_BRIDGE_EFF_H
-#define __LINUX_BRIDGE_EFF_H
-#include <linux/if.h>
-#include <linux/netfilter_bridge.h>
-#include <linux/if_ether.h>
-
-#define EBT_TABLE_MAXNAMELEN 32
-#define EBT_CHAIN_MAXNAMELEN EBT_TABLE_MAXNAMELEN
-#define EBT_FUNCTION_MAXNAMELEN EBT_TABLE_MAXNAMELEN
-
-/* verdicts >0 are "branches" */
-#define EBT_ACCEPT -1
-#define EBT_DROP -2
-#define EBT_CONTINUE -3
-#define EBT_RETURN -4
-#define NUM_STANDARD_TARGETS 4
-/* ebtables target modules store the verdict inside an int. We can
- * reclaim a part of this int for backwards compatible extensions.
- * The 4 lsb are more than enough to store the verdict. */
-#define EBT_VERDICT_BITS 0x0000000F
-
-struct xt_match;
-struct xt_target;
-
-struct ebt_counter {
- uint64_t pcnt;
- uint64_t bcnt;
-};
-
-struct ebt_replace {
- char name[EBT_TABLE_MAXNAMELEN];
- unsigned int valid_hooks;
- /* nr of rules in the table */
- unsigned int nentries;
- /* total size of the entries */
- unsigned int entries_size;
- /* start of the chains */
- struct ebt_entries __user *hook_entry[NF_BR_NUMHOOKS];
- /* nr of counters userspace expects back */
- unsigned int num_counters;
- /* where the kernel will put the old counters */
- struct ebt_counter __user *counters;
- char __user *entries;
-};
-
-struct ebt_replace_kernel {
- char name[EBT_TABLE_MAXNAMELEN];
- unsigned int valid_hooks;
- /* nr of rules in the table */
- unsigned int nentries;
- /* total size of the entries */
- unsigned int entries_size;
- /* start of the chains */
- struct ebt_entries *hook_entry[NF_BR_NUMHOOKS];
- /* nr of counters userspace expects back */
- unsigned int num_counters;
- /* where the kernel will put the old counters */
- struct ebt_counter *counters;
- char *entries;
-};
-
-struct ebt_entries {
- /* this field is always set to zero
- * See EBT_ENTRY_OR_ENTRIES.
- * Must be same size as ebt_entry.bitmask */
- unsigned int distinguisher;
- /* the chain name */
- char name[EBT_CHAIN_MAXNAMELEN];
- /* counter offset for this chain */
- unsigned int counter_offset;
- /* one standard (accept, drop, return) per hook */
- int policy;
- /* nr. of entries */
- unsigned int nentries;
- /* entry list */
- char data[0] __attribute__ ((aligned (__alignof__(struct ebt_replace))));
-};
-
-/* used for the bitmask of struct ebt_entry */
-
-/* This is a hack to make a difference between an ebt_entry struct and an
- * ebt_entries struct when traversing the entries from start to end.
- * Using this simplifies the code a lot, while still being able to use
- * ebt_entries.
- * Contrary, iptables doesn't use something like ebt_entries and therefore uses
- * different techniques for naming the policy and such. So, iptables doesn't
- * need a hack like this.
- */
-#define EBT_ENTRY_OR_ENTRIES 0x01
-/* these are the normal masks */
-#define EBT_NOPROTO 0x02
-#define EBT_802_3 0x04
-#define EBT_SOURCEMAC 0x08
-#define EBT_DESTMAC 0x10
-#define EBT_F_MASK (EBT_NOPROTO | EBT_802_3 | EBT_SOURCEMAC | EBT_DESTMAC \
- | EBT_ENTRY_OR_ENTRIES)
-
-#define EBT_IPROTO 0x01
-#define EBT_IIN 0x02
-#define EBT_IOUT 0x04
-#define EBT_ISOURCE 0x8
-#define EBT_IDEST 0x10
-#define EBT_ILOGICALIN 0x20
-#define EBT_ILOGICALOUT 0x40
-#define EBT_INV_MASK (EBT_IPROTO | EBT_IIN | EBT_IOUT | EBT_ILOGICALIN \
- | EBT_ILOGICALOUT | EBT_ISOURCE | EBT_IDEST)
-
-struct ebt_entry_match {
- union {
- char name[EBT_FUNCTION_MAXNAMELEN];
- struct xt_match *match;
- } u;
- /* size of data */
- unsigned int match_size;
- unsigned char data[0] __attribute__ ((aligned (__alignof__(struct ebt_replace))));
-};
-
-struct ebt_entry_watcher {
- union {
- char name[EBT_FUNCTION_MAXNAMELEN];
- struct xt_target *watcher;
- } u;
- /* size of data */
- unsigned int watcher_size;
- unsigned char data[0] __attribute__ ((aligned (__alignof__(struct ebt_replace))));
-};
-
-struct ebt_entry_target {
- union {
- char name[EBT_FUNCTION_MAXNAMELEN];
- struct xt_target *target;
- } u;
- /* size of data */
- unsigned int target_size;
- unsigned char data[0] __attribute__ ((aligned (__alignof__(struct ebt_replace))));
-};
-
-#define EBT_STANDARD_TARGET "standard"
-struct ebt_standard_target {
- struct ebt_entry_target target;
- int verdict;
-};
-
-/* one entry */
-struct ebt_entry {
- /* this needs to be the first field */
- unsigned int bitmask;
- unsigned int invflags;
- __be16 ethproto;
- /* the physical in-dev */
- char in[IFNAMSIZ];
- /* the logical in-dev */
- char logical_in[IFNAMSIZ];
- /* the physical out-dev */
- char out[IFNAMSIZ];
- /* the logical out-dev */
- char logical_out[IFNAMSIZ];
- unsigned char sourcemac[ETH_ALEN];
- unsigned char sourcemsk[ETH_ALEN];
- unsigned char destmac[ETH_ALEN];
- unsigned char destmsk[ETH_ALEN];
- /* sizeof ebt_entry + matches */
- unsigned int watchers_offset;
- /* sizeof ebt_entry + matches + watchers */
- unsigned int target_offset;
- /* sizeof ebt_entry + matches + watchers + target */
- unsigned int next_offset;
- unsigned char elems[0] __attribute__ ((aligned (__alignof__(struct ebt_replace))));
-};
-
-/* {g,s}etsockopt numbers */
-#define EBT_BASE_CTL 128
-
-#define EBT_SO_SET_ENTRIES (EBT_BASE_CTL)
-#define EBT_SO_SET_COUNTERS (EBT_SO_SET_ENTRIES+1)
-#define EBT_SO_SET_MAX (EBT_SO_SET_COUNTERS+1)
-
-#define EBT_SO_GET_INFO (EBT_BASE_CTL)
-#define EBT_SO_GET_ENTRIES (EBT_SO_GET_INFO+1)
-#define EBT_SO_GET_INIT_INFO (EBT_SO_GET_ENTRIES+1)
-#define EBT_SO_GET_INIT_ENTRIES (EBT_SO_GET_INIT_INFO+1)
-#define EBT_SO_GET_MAX (EBT_SO_GET_INIT_ENTRIES+1)
-
-#ifdef __KERNEL__
-
-/* return values for match() functions */
-#define EBT_MATCH 0
-#define EBT_NOMATCH 1
-
-struct ebt_match {
- struct list_head list;
- const char name[EBT_FUNCTION_MAXNAMELEN];
- bool (*match)(const struct sk_buff *skb, const struct net_device *in,
- const struct net_device *out, const struct xt_match *match,
- const void *matchinfo, int offset, unsigned int protoff,
- bool *hotdrop);
- bool (*checkentry)(const char *table, const void *entry,
- const struct xt_match *match, void *matchinfo,
- unsigned int hook_mask);
- void (*destroy)(const struct xt_match *match, void *matchinfo);
- unsigned int matchsize;
- u_int8_t revision;
- u_int8_t family;
- struct module *me;
-};
-
-struct ebt_watcher {
- struct list_head list;
- const char name[EBT_FUNCTION_MAXNAMELEN];
- unsigned int (*target)(struct sk_buff *skb,
- const struct net_device *in, const struct net_device *out,
- unsigned int hook_num, const struct xt_target *target,
- const void *targinfo);
- bool (*checkentry)(const char *table, const void *entry,
- const struct xt_target *target, void *targinfo,
- unsigned int hook_mask);
- void (*destroy)(const struct xt_target *target, void *targinfo);
- unsigned int targetsize;
- u_int8_t revision;
- u_int8_t family;
- struct module *me;
-};
-
-struct ebt_target {
- struct list_head list;
- const char name[EBT_FUNCTION_MAXNAMELEN];
- /* returns one of the standard EBT_* verdicts */
- unsigned int (*target)(struct sk_buff *skb,
- const struct net_device *in, const struct net_device *out,
- unsigned int hook_num, const struct xt_target *target,
- const void *targinfo);
- bool (*checkentry)(const char *table, const void *entry,
- const struct xt_target *target, void *targinfo,
- unsigned int hook_mask);
- void (*destroy)(const struct xt_target *target, void *targinfo);
- unsigned int targetsize;
- u_int8_t revision;
- u_int8_t family;
- struct module *me;
-};
-
-/* used for jumping from and into user defined chains (udc) */
-struct ebt_chainstack {
- struct ebt_entries *chaininfo; /* pointer to chain data */
- struct ebt_entry *e; /* pointer to entry data */
- unsigned int n; /* n'th entry */
-};
-
-struct ebt_table_info {
- /* total size of the entries */
- unsigned int entries_size;
- unsigned int nentries;
- /* pointers to the start of the chains */
- struct ebt_entries *hook_entry[NF_BR_NUMHOOKS];
- /* room to maintain the stack used for jumping from and into udc */
- struct ebt_chainstack **chainstack;
- char *entries;
- struct ebt_counter counters[0] ____cacheline_aligned;
-};
-
-struct ebt_table {
- struct list_head list;
- char name[EBT_TABLE_MAXNAMELEN];
- struct ebt_replace_kernel *table;
- unsigned int valid_hooks;
- rwlock_t lock;
- /* e.g. could be the table explicitly only allows certain
- * matches, targets, ... 0 == let it in */
- int (*check)(const struct ebt_table_info *info,
- unsigned int valid_hooks);
- /* the data used by the kernel */
- struct ebt_table_info *private;
- struct module *me;
-};
-
-#define EBT_ALIGN(s) (((s) + (__alignof__(struct _xt_align)-1)) & \
- ~(__alignof__(struct _xt_align)-1))
-extern struct ebt_table *ebt_register_table(struct net *net,
- const struct ebt_table *table);
-extern void ebt_unregister_table(struct net *net, struct ebt_table *table);
-extern unsigned int ebt_do_table(unsigned int hook, struct sk_buff *skb,
- const struct net_device *in, const struct net_device *out,
- struct ebt_table *table);
-
-/* Used in the kernel match() functions */
-#define FWINV(bool,invflg) ((bool) ^ !!(info->invflags & invflg))
-/* True if the hook mask denotes that the rule is in a base chain,
- * used in the check() functions */
-#define BASE_CHAIN (par->hook_mask & (1 << NF_BR_NUMHOOKS))
-/* Clear the bit in the hook mask that tells if the rule is on a base chain */
-#define CLEAR_BASE_CHAIN_BIT (par->hook_mask &= ~(1 << NF_BR_NUMHOOKS))
-/* True if the target is not a standard target */
-#define INVALID_TARGET (info->target < -NUM_STANDARD_TARGETS || info->target >= 0)
-
-#endif /* __KERNEL__ */
-
-/* blatently stolen from ip_tables.h
- * fn returns 0 to continue iteration */
-#define EBT_MATCH_ITERATE(e, fn, args...) \
-({ \
- unsigned int __i; \
- int __ret = 0; \
- struct ebt_entry_match *__match; \
- \
- for (__i = sizeof(struct ebt_entry); \
- __i < (e)->watchers_offset; \
- __i += __match->match_size + \
- sizeof(struct ebt_entry_match)) { \
- __match = (void *)(e) + __i; \
- \
- __ret = fn(__match , ## args); \
- if (__ret != 0) \
- break; \
- } \
- if (__ret == 0) { \
- if (__i != (e)->watchers_offset) \
- __ret = -EINVAL; \
- } \
- __ret; \
-})
-
-#define EBT_WATCHER_ITERATE(e, fn, args...) \
-({ \
- unsigned int __i; \
- int __ret = 0; \
- struct ebt_entry_watcher *__watcher; \
- \
- for (__i = e->watchers_offset; \
- __i < (e)->target_offset; \
- __i += __watcher->watcher_size + \
- sizeof(struct ebt_entry_watcher)) { \
- __watcher = (void *)(e) + __i; \
- \
- __ret = fn(__watcher , ## args); \
- if (__ret != 0) \
- break; \
- } \
- if (__ret == 0) { \
- if (__i != (e)->target_offset) \
- __ret = -EINVAL; \
- } \
- __ret; \
-})
-
-#define EBT_ENTRY_ITERATE(entries, size, fn, args...) \
-({ \
- unsigned int __i; \
- int __ret = 0; \
- struct ebt_entry *__entry; \
- \
- for (__i = 0; __i < (size);) { \
- __entry = (void *)(entries) + __i; \
- __ret = fn(__entry , ## args); \
- if (__ret != 0) \
- break; \
- if (__entry->bitmask != 0) \
- __i += __entry->next_offset; \
- else \
- __i += sizeof(struct ebt_entries); \
- } \
- if (__ret == 0) { \
- if (__i != (size)) \
- __ret = -EINVAL; \
- } \
- __ret; \
-})
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/netfilter_decnet.h b/ANDROID_3.4.5/include/linux/netfilter_decnet.h
deleted file mode 100644
index 0b09732a..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_decnet.h
+++ /dev/null
@@ -1,79 +0,0 @@
-#ifndef __LINUX_DECNET_NETFILTER_H
-#define __LINUX_DECNET_NETFILTER_H
-
-/* DECnet-specific defines for netfilter.
- * This file (C) Steve Whitehouse 1999 derived from the
- * ipv4 netfilter header file which is
- * (C)1998 Rusty Russell -- This code is GPL.
- */
-
-#include <linux/netfilter.h>
-
-/* only for userspace compatibility */
-#ifndef __KERNEL__
-
-#include <limits.h> /* for INT_MIN, INT_MAX */
-
-/* IP Cache bits. */
-/* Src IP address. */
-#define NFC_DN_SRC 0x0001
-/* Dest IP address. */
-#define NFC_DN_DST 0x0002
-/* Input device. */
-#define NFC_DN_IF_IN 0x0004
-/* Output device. */
-#define NFC_DN_IF_OUT 0x0008
-#endif /* ! __KERNEL__ */
-
-/* DECnet Hooks */
-/* After promisc drops, checksum checks. */
-#define NF_DN_PRE_ROUTING 0
-/* If the packet is destined for this box. */
-#define NF_DN_LOCAL_IN 1
-/* If the packet is destined for another interface. */
-#define NF_DN_FORWARD 2
-/* Packets coming from a local process. */
-#define NF_DN_LOCAL_OUT 3
-/* Packets about to hit the wire. */
-#define NF_DN_POST_ROUTING 4
-/* Input Hello Packets */
-#define NF_DN_HELLO 5
-/* Input Routing Packets */
-#define NF_DN_ROUTE 6
-#define NF_DN_NUMHOOKS 7
-
-enum nf_dn_hook_priorities {
- NF_DN_PRI_FIRST = INT_MIN,
- NF_DN_PRI_CONNTRACK = -200,
- NF_DN_PRI_MANGLE = -150,
- NF_DN_PRI_NAT_DST = -100,
- NF_DN_PRI_FILTER = 0,
- NF_DN_PRI_NAT_SRC = 100,
- NF_DN_PRI_DNRTMSG = 200,
- NF_DN_PRI_LAST = INT_MAX,
-};
-
-struct nf_dn_rtmsg {
- int nfdn_ifindex;
-};
-
-#define NFDN_RTMSG(r) ((unsigned char *)(r) + NLMSG_ALIGN(sizeof(struct nf_dn_rtmsg)))
-
-#ifndef __KERNEL__
-/* backwards compatibility for userspace */
-#define DNRMG_L1_GROUP 0x01
-#define DNRMG_L2_GROUP 0x02
-#endif
-
-enum {
- DNRNG_NLGRP_NONE,
-#define DNRNG_NLGRP_NONE DNRNG_NLGRP_NONE
- DNRNG_NLGRP_L1,
-#define DNRNG_NLGRP_L1 DNRNG_NLGRP_L1
- DNRNG_NLGRP_L2,
-#define DNRNG_NLGRP_L2 DNRNG_NLGRP_L2
- __DNRNG_NLGRP_MAX
-};
-#define DNRNG_NLGRP_MAX (__DNRNG_NLGRP_MAX - 1)
-
-#endif /*__LINUX_DECNET_NETFILTER_H*/
diff --git a/ANDROID_3.4.5/include/linux/netfilter_ipv4.h b/ANDROID_3.4.5/include/linux/netfilter_ipv4.h
deleted file mode 100644
index fa0946c5..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_ipv4.h
+++ /dev/null
@@ -1,86 +0,0 @@
-#ifndef __LINUX_IP_NETFILTER_H
-#define __LINUX_IP_NETFILTER_H
-
-/* IPv4-specific defines for netfilter.
- * (C)1998 Rusty Russell -- This code is GPL.
- */
-
-#include <linux/netfilter.h>
-
-/* only for userspace compatibility */
-#ifndef __KERNEL__
-
-#include <limits.h> /* for INT_MIN, INT_MAX */
-
-/* IP Cache bits. */
-/* Src IP address. */
-#define NFC_IP_SRC 0x0001
-/* Dest IP address. */
-#define NFC_IP_DST 0x0002
-/* Input device. */
-#define NFC_IP_IF_IN 0x0004
-/* Output device. */
-#define NFC_IP_IF_OUT 0x0008
-/* TOS. */
-#define NFC_IP_TOS 0x0010
-/* Protocol. */
-#define NFC_IP_PROTO 0x0020
-/* IP options. */
-#define NFC_IP_OPTIONS 0x0040
-/* Frag & flags. */
-#define NFC_IP_FRAG 0x0080
-
-/* Per-protocol information: only matters if proto match. */
-/* TCP flags. */
-#define NFC_IP_TCPFLAGS 0x0100
-/* Source port. */
-#define NFC_IP_SRC_PT 0x0200
-/* Dest port. */
-#define NFC_IP_DST_PT 0x0400
-/* Something else about the proto */
-#define NFC_IP_PROTO_UNKNOWN 0x2000
-
-/* IP Hooks */
-/* After promisc drops, checksum checks. */
-#define NF_IP_PRE_ROUTING 0
-/* If the packet is destined for this box. */
-#define NF_IP_LOCAL_IN 1
-/* If the packet is destined for another interface. */
-#define NF_IP_FORWARD 2
-/* Packets coming from a local process. */
-#define NF_IP_LOCAL_OUT 3
-/* Packets about to hit the wire. */
-#define NF_IP_POST_ROUTING 4
-#define NF_IP_NUMHOOKS 5
-#endif /* ! __KERNEL__ */
-
-enum nf_ip_hook_priorities {
- NF_IP_PRI_FIRST = INT_MIN,
- NF_IP_PRI_CONNTRACK_DEFRAG = -400,
- NF_IP_PRI_RAW = -300,
- NF_IP_PRI_SELINUX_FIRST = -225,
- NF_IP_PRI_CONNTRACK = -200,
- NF_IP_PRI_MANGLE = -150,
- NF_IP_PRI_NAT_DST = -100,
- NF_IP_PRI_FILTER = 0,
- NF_IP_PRI_SECURITY = 50,
- NF_IP_PRI_NAT_SRC = 100,
- NF_IP_PRI_SELINUX_LAST = 225,
- NF_IP_PRI_CONNTRACK_CONFIRM = INT_MAX,
- NF_IP_PRI_LAST = INT_MAX,
-};
-
-/* Arguments for setsockopt SOL_IP: */
-/* 2.0 firewalling went from 64 through 71 (and +256, +512, etc). */
-/* 2.2 firewalling (+ masq) went from 64 through 76 */
-/* 2.4 firewalling went 64 through 67. */
-#define SO_ORIGINAL_DST 80
-
-#ifdef __KERNEL__
-extern int ip_route_me_harder(struct sk_buff *skb, unsigned addr_type);
-extern int ip_xfrm_me_harder(struct sk_buff *skb);
-extern __sum16 nf_ip_checksum(struct sk_buff *skb, unsigned int hook,
- unsigned int dataoff, u_int8_t protocol);
-#endif /*__KERNEL__*/
-
-#endif /*__LINUX_IP_NETFILTER_H*/
diff --git a/ANDROID_3.4.5/include/linux/netfilter_ipv4/Kbuild b/ANDROID_3.4.5/include/linux/netfilter_ipv4/Kbuild
deleted file mode 100644
index 31f8bec9..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_ipv4/Kbuild
+++ /dev/null
@@ -1,12 +0,0 @@
-header-y += ip_queue.h
-header-y += ip_tables.h
-header-y += ipt_CLUSTERIP.h
-header-y += ipt_ECN.h
-header-y += ipt_LOG.h
-header-y += ipt_REJECT.h
-header-y += ipt_TTL.h
-header-y += ipt_ULOG.h
-header-y += ipt_addrtype.h
-header-y += ipt_ah.h
-header-y += ipt_ecn.h
-header-y += ipt_ttl.h
diff --git a/ANDROID_3.4.5/include/linux/netfilter_ipv4/ip_queue.h b/ANDROID_3.4.5/include/linux/netfilter_ipv4/ip_queue.h
deleted file mode 100644
index a03507f4..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_ipv4/ip_queue.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * This is a module which is used for queueing IPv4 packets and
- * communicating with userspace via netlink.
- *
- * (C) 2000 James Morris, this code is GPL.
- */
-#ifndef _IP_QUEUE_H
-#define _IP_QUEUE_H
-
-#ifdef __KERNEL__
-#ifdef DEBUG_IPQ
-#define QDEBUG(x...) printk(KERN_DEBUG ## x)
-#else
-#define QDEBUG(x...)
-#endif /* DEBUG_IPQ */
-#else
-#include <net/if.h>
-#endif /* ! __KERNEL__ */
-
-/* Messages sent from kernel */
-typedef struct ipq_packet_msg {
- unsigned long packet_id; /* ID of queued packet */
- unsigned long mark; /* Netfilter mark value */
- long timestamp_sec; /* Packet arrival time (seconds) */
- long timestamp_usec; /* Packet arrvial time (+useconds) */
- unsigned int hook; /* Netfilter hook we rode in on */
- char indev_name[IFNAMSIZ]; /* Name of incoming interface */
- char outdev_name[IFNAMSIZ]; /* Name of outgoing interface */
- __be16 hw_protocol; /* Hardware protocol (network order) */
- unsigned short hw_type; /* Hardware type */
- unsigned char hw_addrlen; /* Hardware address length */
- unsigned char hw_addr[8]; /* Hardware address */
- size_t data_len; /* Length of packet data */
- unsigned char payload[0]; /* Optional packet data */
-} ipq_packet_msg_t;
-
-/* Messages sent from userspace */
-typedef struct ipq_mode_msg {
- unsigned char value; /* Requested mode */
- size_t range; /* Optional range of packet requested */
-} ipq_mode_msg_t;
-
-typedef struct ipq_verdict_msg {
- unsigned int value; /* Verdict to hand to netfilter */
- unsigned long id; /* Packet ID for this verdict */
- size_t data_len; /* Length of replacement data */
- unsigned char payload[0]; /* Optional replacement packet */
-} ipq_verdict_msg_t;
-
-typedef struct ipq_peer_msg {
- union {
- ipq_verdict_msg_t verdict;
- ipq_mode_msg_t mode;
- } msg;
-} ipq_peer_msg_t;
-
-/* Packet delivery modes */
-enum {
- IPQ_COPY_NONE, /* Initial mode, packets are dropped */
- IPQ_COPY_META, /* Copy metadata */
- IPQ_COPY_PACKET /* Copy metadata + packet (range) */
-};
-#define IPQ_COPY_MAX IPQ_COPY_PACKET
-
-/* Types of messages */
-#define IPQM_BASE 0x10 /* standard netlink messages below this */
-#define IPQM_MODE (IPQM_BASE + 1) /* Mode request from peer */
-#define IPQM_VERDICT (IPQM_BASE + 2) /* Verdict from peer */
-#define IPQM_PACKET (IPQM_BASE + 3) /* Packet from kernel */
-#define IPQM_MAX (IPQM_BASE + 4)
-
-#endif /*_IP_QUEUE_H*/
diff --git a/ANDROID_3.4.5/include/linux/netfilter_ipv4/ip_tables.h b/ANDROID_3.4.5/include/linux/netfilter_ipv4/ip_tables.h
deleted file mode 100644
index db792319..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_ipv4/ip_tables.h
+++ /dev/null
@@ -1,307 +0,0 @@
-/*
- * 25-Jul-1998 Major changes to allow for ip chain table
- *
- * 3-Jan-2000 Named tables to allow packet selection for different uses.
- */
-
-/*
- * Format of an IP firewall descriptor
- *
- * src, dst, src_mask, dst_mask are always stored in network byte order.
- * flags are stored in host byte order (of course).
- * Port numbers are stored in HOST byte order.
- */
-
-#ifndef _IPTABLES_H
-#define _IPTABLES_H
-
-#ifdef __KERNEL__
-#include <linux/if.h>
-#include <linux/in.h>
-#include <linux/ip.h>
-#include <linux/skbuff.h>
-#endif
-#include <linux/types.h>
-#include <linux/compiler.h>
-#include <linux/netfilter_ipv4.h>
-
-#include <linux/netfilter/x_tables.h>
-
-#ifndef __KERNEL__
-#define IPT_FUNCTION_MAXNAMELEN XT_FUNCTION_MAXNAMELEN
-#define IPT_TABLE_MAXNAMELEN XT_TABLE_MAXNAMELEN
-#define ipt_match xt_match
-#define ipt_target xt_target
-#define ipt_table xt_table
-#define ipt_get_revision xt_get_revision
-#define ipt_entry_match xt_entry_match
-#define ipt_entry_target xt_entry_target
-#define ipt_standard_target xt_standard_target
-#define ipt_error_target xt_error_target
-#define ipt_counters xt_counters
-#define IPT_CONTINUE XT_CONTINUE
-#define IPT_RETURN XT_RETURN
-
-/* This group is older than old (iptables < v1.4.0-rc1~89) */
-#include <linux/netfilter/xt_tcpudp.h>
-#define ipt_udp xt_udp
-#define ipt_tcp xt_tcp
-#define IPT_TCP_INV_SRCPT XT_TCP_INV_SRCPT
-#define IPT_TCP_INV_DSTPT XT_TCP_INV_DSTPT
-#define IPT_TCP_INV_FLAGS XT_TCP_INV_FLAGS
-#define IPT_TCP_INV_OPTION XT_TCP_INV_OPTION
-#define IPT_TCP_INV_MASK XT_TCP_INV_MASK
-#define IPT_UDP_INV_SRCPT XT_UDP_INV_SRCPT
-#define IPT_UDP_INV_DSTPT XT_UDP_INV_DSTPT
-#define IPT_UDP_INV_MASK XT_UDP_INV_MASK
-
-/* The argument to IPT_SO_ADD_COUNTERS. */
-#define ipt_counters_info xt_counters_info
-/* Standard return verdict, or do jump. */
-#define IPT_STANDARD_TARGET XT_STANDARD_TARGET
-/* Error verdict. */
-#define IPT_ERROR_TARGET XT_ERROR_TARGET
-
-/* fn returns 0 to continue iteration */
-#define IPT_MATCH_ITERATE(e, fn, args...) \
- XT_MATCH_ITERATE(struct ipt_entry, e, fn, ## args)
-
-/* fn returns 0 to continue iteration */
-#define IPT_ENTRY_ITERATE(entries, size, fn, args...) \
- XT_ENTRY_ITERATE(struct ipt_entry, entries, size, fn, ## args)
-#endif
-
-/* Yes, Virginia, you have to zero the padding. */
-struct ipt_ip {
- /* Source and destination IP addr */
- struct in_addr src, dst;
- /* Mask for src and dest IP addr */
- struct in_addr smsk, dmsk;
- char iniface[IFNAMSIZ], outiface[IFNAMSIZ];
- unsigned char iniface_mask[IFNAMSIZ], outiface_mask[IFNAMSIZ];
-
- /* Protocol, 0 = ANY */
- __u16 proto;
-
- /* Flags word */
- __u8 flags;
- /* Inverse flags */
- __u8 invflags;
-};
-
-/* Values for "flag" field in struct ipt_ip (general ip structure). */
-#define IPT_F_FRAG 0x01 /* Set if rule is a fragment rule */
-#define IPT_F_GOTO 0x02 /* Set if jump is a goto */
-#define IPT_F_MASK 0x03 /* All possible flag bits mask. */
-
-/* Values for "inv" field in struct ipt_ip. */
-#define IPT_INV_VIA_IN 0x01 /* Invert the sense of IN IFACE. */
-#define IPT_INV_VIA_OUT 0x02 /* Invert the sense of OUT IFACE */
-#define IPT_INV_TOS 0x04 /* Invert the sense of TOS. */
-#define IPT_INV_SRCIP 0x08 /* Invert the sense of SRC IP. */
-#define IPT_INV_DSTIP 0x10 /* Invert the sense of DST OP. */
-#define IPT_INV_FRAG 0x20 /* Invert the sense of FRAG. */
-#define IPT_INV_PROTO XT_INV_PROTO
-#define IPT_INV_MASK 0x7F /* All possible flag bits mask. */
-
-/* This structure defines each of the firewall rules. Consists of 3
- parts which are 1) general IP header stuff 2) match specific
- stuff 3) the target to perform if the rule matches */
-struct ipt_entry {
- struct ipt_ip ip;
-
- /* Mark with fields that we care about. */
- unsigned int nfcache;
-
- /* Size of ipt_entry + matches */
- __u16 target_offset;
- /* Size of ipt_entry + matches + target */
- __u16 next_offset;
-
- /* Back pointer */
- unsigned int comefrom;
-
- /* Packet and byte counters. */
- struct xt_counters counters;
-
- /* The matches (if any), then the target. */
- unsigned char elems[0];
-};
-
-/*
- * New IP firewall options for [gs]etsockopt at the RAW IP level.
- * Unlike BSD Linux inherits IP options so you don't have to use a raw
- * socket for this. Instead we check rights in the calls.
- *
- * ATTENTION: check linux/in.h before adding new number here.
- */
-#define IPT_BASE_CTL 64
-
-#define IPT_SO_SET_REPLACE (IPT_BASE_CTL)
-#define IPT_SO_SET_ADD_COUNTERS (IPT_BASE_CTL + 1)
-#define IPT_SO_SET_MAX IPT_SO_SET_ADD_COUNTERS
-
-#define IPT_SO_GET_INFO (IPT_BASE_CTL)
-#define IPT_SO_GET_ENTRIES (IPT_BASE_CTL + 1)
-#define IPT_SO_GET_REVISION_MATCH (IPT_BASE_CTL + 2)
-#define IPT_SO_GET_REVISION_TARGET (IPT_BASE_CTL + 3)
-#define IPT_SO_GET_MAX IPT_SO_GET_REVISION_TARGET
-
-/* ICMP matching stuff */
-struct ipt_icmp {
- __u8 type; /* type to match */
- __u8 code[2]; /* range of code */
- __u8 invflags; /* Inverse flags */
-};
-
-/* Values for "inv" field for struct ipt_icmp. */
-#define IPT_ICMP_INV 0x01 /* Invert the sense of type/code test */
-
-/* The argument to IPT_SO_GET_INFO */
-struct ipt_getinfo {
- /* Which table: caller fills this in. */
- char name[XT_TABLE_MAXNAMELEN];
-
- /* Kernel fills these in. */
- /* Which hook entry points are valid: bitmask */
- unsigned int valid_hooks;
-
- /* Hook entry points: one per netfilter hook. */
- unsigned int hook_entry[NF_INET_NUMHOOKS];
-
- /* Underflow points. */
- unsigned int underflow[NF_INET_NUMHOOKS];
-
- /* Number of entries */
- unsigned int num_entries;
-
- /* Size of entries. */
- unsigned int size;
-};
-
-/* The argument to IPT_SO_SET_REPLACE. */
-struct ipt_replace {
- /* Which table. */
- char name[XT_TABLE_MAXNAMELEN];
-
- /* Which hook entry points are valid: bitmask. You can't
- change this. */
- unsigned int valid_hooks;
-
- /* Number of entries */
- unsigned int num_entries;
-
- /* Total size of new entries */
- unsigned int size;
-
- /* Hook entry points. */
- unsigned int hook_entry[NF_INET_NUMHOOKS];
-
- /* Underflow points. */
- unsigned int underflow[NF_INET_NUMHOOKS];
-
- /* Information about old entries: */
- /* Number of counters (must be equal to current number of entries). */
- unsigned int num_counters;
- /* The old entries' counters. */
- struct xt_counters __user *counters;
-
- /* The entries (hang off end: not really an array). */
- struct ipt_entry entries[0];
-};
-
-/* The argument to IPT_SO_GET_ENTRIES. */
-struct ipt_get_entries {
- /* Which table: user fills this in. */
- char name[XT_TABLE_MAXNAMELEN];
-
- /* User fills this in: total entry size. */
- unsigned int size;
-
- /* The entries. */
- struct ipt_entry entrytable[0];
-};
-
-/* Helper functions */
-static __inline__ struct xt_entry_target *
-ipt_get_target(struct ipt_entry *e)
-{
- return (void *)e + e->target_offset;
-}
-
-/*
- * Main firewall chains definitions and global var's definitions.
- */
-#ifdef __KERNEL__
-
-#include <linux/init.h>
-extern void ipt_init(void) __init;
-
-extern struct xt_table *ipt_register_table(struct net *net,
- const struct xt_table *table,
- const struct ipt_replace *repl);
-extern void ipt_unregister_table(struct net *net, struct xt_table *table);
-
-/* Standard entry. */
-struct ipt_standard {
- struct ipt_entry entry;
- struct xt_standard_target target;
-};
-
-struct ipt_error {
- struct ipt_entry entry;
- struct xt_error_target target;
-};
-
-#define IPT_ENTRY_INIT(__size) \
-{ \
- .target_offset = sizeof(struct ipt_entry), \
- .next_offset = (__size), \
-}
-
-#define IPT_STANDARD_INIT(__verdict) \
-{ \
- .entry = IPT_ENTRY_INIT(sizeof(struct ipt_standard)), \
- .target = XT_TARGET_INIT(XT_STANDARD_TARGET, \
- sizeof(struct xt_standard_target)), \
- .target.verdict = -(__verdict) - 1, \
-}
-
-#define IPT_ERROR_INIT \
-{ \
- .entry = IPT_ENTRY_INIT(sizeof(struct ipt_error)), \
- .target = XT_TARGET_INIT(XT_ERROR_TARGET, \
- sizeof(struct xt_error_target)), \
- .target.errorname = "ERROR", \
-}
-
-extern void *ipt_alloc_initial_table(const struct xt_table *);
-extern unsigned int ipt_do_table(struct sk_buff *skb,
- unsigned int hook,
- const struct net_device *in,
- const struct net_device *out,
- struct xt_table *table);
-
-#ifdef CONFIG_COMPAT
-#include <net/compat.h>
-
-struct compat_ipt_entry {
- struct ipt_ip ip;
- compat_uint_t nfcache;
- __u16 target_offset;
- __u16 next_offset;
- compat_uint_t comefrom;
- struct compat_xt_counters counters;
- unsigned char elems[0];
-};
-
-/* Helper functions */
-static inline struct xt_entry_target *
-compat_ipt_get_target(struct compat_ipt_entry *e)
-{
- return (void *)e + e->target_offset;
-}
-
-#endif /* CONFIG_COMPAT */
-#endif /*__KERNEL__*/
-#endif /* _IPTABLES_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h b/ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h
deleted file mode 100644
index c6a204c9..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef _IPT_CLUSTERIP_H_target
-#define _IPT_CLUSTERIP_H_target
-
-#include <linux/types.h>
-
-enum clusterip_hashmode {
- CLUSTERIP_HASHMODE_SIP = 0,
- CLUSTERIP_HASHMODE_SIP_SPT,
- CLUSTERIP_HASHMODE_SIP_SPT_DPT,
-};
-
-#define CLUSTERIP_HASHMODE_MAX CLUSTERIP_HASHMODE_SIP_SPT_DPT
-
-#define CLUSTERIP_MAX_NODES 16
-
-#define CLUSTERIP_FLAG_NEW 0x00000001
-
-struct clusterip_config;
-
-struct ipt_clusterip_tgt_info {
-
- __u32 flags;
-
- /* only relevant for new ones */
- __u8 clustermac[6];
- __u16 num_total_nodes;
- __u16 num_local_nodes;
- __u16 local_nodes[CLUSTERIP_MAX_NODES];
- __u32 hash_mode;
- __u32 hash_initval;
-
- /* Used internally by the kernel */
- struct clusterip_config *config;
-};
-
-#endif /*_IPT_CLUSTERIP_H_target*/
diff --git a/ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_ECN.h b/ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_ECN.h
deleted file mode 100644
index bb88d531..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_ECN.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Header file for iptables ipt_ECN target
- *
- * (C) 2002 by Harald Welte <laforge@gnumonks.org>
- *
- * This software is distributed under GNU GPL v2, 1991
- *
- * ipt_ECN.h,v 1.3 2002/05/29 12:17:40 laforge Exp
-*/
-#ifndef _IPT_ECN_TARGET_H
-#define _IPT_ECN_TARGET_H
-
-#include <linux/types.h>
-#include <linux/netfilter/xt_DSCP.h>
-
-#define IPT_ECN_IP_MASK (~XT_DSCP_MASK)
-
-#define IPT_ECN_OP_SET_IP 0x01 /* set ECN bits of IPv4 header */
-#define IPT_ECN_OP_SET_ECE 0x10 /* set ECE bit of TCP header */
-#define IPT_ECN_OP_SET_CWR 0x20 /* set CWR bit of TCP header */
-
-#define IPT_ECN_OP_MASK 0xce
-
-struct ipt_ECN_info {
- __u8 operation; /* bitset of operations */
- __u8 ip_ect; /* ECT codepoint of IPv4 header, pre-shifted */
- union {
- struct {
- __u8 ece:1, cwr:1; /* TCP ECT bits */
- } tcp;
- } proto;
-};
-
-#endif /* _IPT_ECN_TARGET_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_LOG.h b/ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_LOG.h
deleted file mode 100644
index 5d815207..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_LOG.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef _IPT_LOG_H
-#define _IPT_LOG_H
-
-#warning "Please update iptables, this file will be removed soon!"
-
-/* make sure not to change this without changing netfilter.h:NF_LOG_* (!) */
-#define IPT_LOG_TCPSEQ 0x01 /* Log TCP sequence numbers */
-#define IPT_LOG_TCPOPT 0x02 /* Log TCP options */
-#define IPT_LOG_IPOPT 0x04 /* Log IP options */
-#define IPT_LOG_UID 0x08 /* Log UID owning local socket */
-#define IPT_LOG_NFLOG 0x10 /* Unsupported, don't reuse */
-#define IPT_LOG_MACDECODE 0x20 /* Decode MAC header */
-#define IPT_LOG_MASK 0x2f
-
-struct ipt_log_info {
- unsigned char level;
- unsigned char logflags;
- char prefix[30];
-};
-
-#endif /*_IPT_LOG_H*/
diff --git a/ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_REJECT.h b/ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_REJECT.h
deleted file mode 100644
index 4293a1ad..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_REJECT.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef _IPT_REJECT_H
-#define _IPT_REJECT_H
-
-enum ipt_reject_with {
- IPT_ICMP_NET_UNREACHABLE,
- IPT_ICMP_HOST_UNREACHABLE,
- IPT_ICMP_PROT_UNREACHABLE,
- IPT_ICMP_PORT_UNREACHABLE,
- IPT_ICMP_ECHOREPLY,
- IPT_ICMP_NET_PROHIBITED,
- IPT_ICMP_HOST_PROHIBITED,
- IPT_TCP_RESET,
- IPT_ICMP_ADMIN_PROHIBITED
-};
-
-struct ipt_reject_info {
- enum ipt_reject_with with; /* reject type */
-};
-
-#endif /*_IPT_REJECT_H*/
diff --git a/ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_TTL.h b/ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_TTL.h
deleted file mode 100644
index f6ac169d..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_TTL.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* TTL modification module for IP tables
- * (C) 2000 by Harald Welte <laforge@netfilter.org> */
-
-#ifndef _IPT_TTL_H
-#define _IPT_TTL_H
-
-#include <linux/types.h>
-
-enum {
- IPT_TTL_SET = 0,
- IPT_TTL_INC,
- IPT_TTL_DEC
-};
-
-#define IPT_TTL_MAXMODE IPT_TTL_DEC
-
-struct ipt_TTL_info {
- __u8 mode;
- __u8 ttl;
-};
-
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_ULOG.h b/ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_ULOG.h
deleted file mode 100644
index 417aad28..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_ULOG.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Header file for IP tables userspace logging, Version 1.8
- *
- * (C) 2000-2002 by Harald Welte <laforge@gnumonks.org>
- *
- * Distributed under the terms of GNU GPL */
-
-#ifndef _IPT_ULOG_H
-#define _IPT_ULOG_H
-
-#ifndef NETLINK_NFLOG
-#define NETLINK_NFLOG 5
-#endif
-
-#define ULOG_DEFAULT_NLGROUP 1
-#define ULOG_DEFAULT_QTHRESHOLD 1
-
-#define ULOG_MAC_LEN 80
-#define ULOG_PREFIX_LEN 32
-
-#define ULOG_MAX_QLEN 50
-/* Why 50? Well... there is a limit imposed by the slab cache 131000
- * bytes. So the multipart netlink-message has to be < 131000 bytes.
- * Assuming a standard ethernet-mtu of 1500, we could define this up
- * to 80... but even 50 seems to be big enough. */
-
-/* private data structure for each rule with a ULOG target */
-struct ipt_ulog_info {
- unsigned int nl_group;
- size_t copy_range;
- size_t qthreshold;
- char prefix[ULOG_PREFIX_LEN];
-};
-
-/* Format of the ULOG packets passed through netlink */
-typedef struct ulog_packet_msg {
- unsigned long mark;
- long timestamp_sec;
- long timestamp_usec;
- unsigned int hook;
- char indev_name[IFNAMSIZ];
- char outdev_name[IFNAMSIZ];
- size_t data_len;
- char prefix[ULOG_PREFIX_LEN];
- unsigned char mac_len;
- unsigned char mac[ULOG_MAC_LEN];
- unsigned char payload[0];
-} ulog_packet_msg_t;
-
-#endif /*_IPT_ULOG_H*/
diff --git a/ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_addrtype.h b/ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_addrtype.h
deleted file mode 100644
index 0da42237..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_addrtype.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef _IPT_ADDRTYPE_H
-#define _IPT_ADDRTYPE_H
-
-#include <linux/types.h>
-
-enum {
- IPT_ADDRTYPE_INVERT_SOURCE = 0x0001,
- IPT_ADDRTYPE_INVERT_DEST = 0x0002,
- IPT_ADDRTYPE_LIMIT_IFACE_IN = 0x0004,
- IPT_ADDRTYPE_LIMIT_IFACE_OUT = 0x0008,
-};
-
-struct ipt_addrtype_info_v1 {
- __u16 source; /* source-type mask */
- __u16 dest; /* dest-type mask */
- __u32 flags;
-};
-
-/* revision 0 */
-struct ipt_addrtype_info {
- __u16 source; /* source-type mask */
- __u16 dest; /* dest-type mask */
- __u32 invert_source;
- __u32 invert_dest;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_ah.h b/ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_ah.h
deleted file mode 100644
index 4e02bb01..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_ah.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef _IPT_AH_H
-#define _IPT_AH_H
-
-#include <linux/types.h>
-
-struct ipt_ah {
- __u32 spis[2]; /* Security Parameter Index */
- __u8 invflags; /* Inverse flags */
-};
-
-
-
-/* Values for "invflags" field in struct ipt_ah. */
-#define IPT_AH_INV_SPI 0x01 /* Invert the sense of spi. */
-#define IPT_AH_INV_MASK 0x01 /* All possible flags. */
-
-#endif /*_IPT_AH_H*/
diff --git a/ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_ecn.h b/ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_ecn.h
deleted file mode 100644
index 0e0c063d..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_ecn.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef _IPT_ECN_H
-#define _IPT_ECN_H
-
-#include <linux/netfilter/xt_ecn.h>
-#define ipt_ecn_info xt_ecn_info
-
-enum {
- IPT_ECN_IP_MASK = XT_ECN_IP_MASK,
- IPT_ECN_OP_MATCH_IP = XT_ECN_OP_MATCH_IP,
- IPT_ECN_OP_MATCH_ECE = XT_ECN_OP_MATCH_ECE,
- IPT_ECN_OP_MATCH_CWR = XT_ECN_OP_MATCH_CWR,
- IPT_ECN_OP_MATCH_MASK = XT_ECN_OP_MATCH_MASK,
-};
-
-#endif /* IPT_ECN_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_ttl.h b/ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_ttl.h
deleted file mode 100644
index 37bee444..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_ipv4/ipt_ttl.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* IP tables module for matching the value of the TTL
- * (C) 2000 by Harald Welte <laforge@gnumonks.org> */
-
-#ifndef _IPT_TTL_H
-#define _IPT_TTL_H
-
-#include <linux/types.h>
-
-enum {
- IPT_TTL_EQ = 0, /* equals */
- IPT_TTL_NE, /* not equals */
- IPT_TTL_LT, /* less than */
- IPT_TTL_GT, /* greater than */
-};
-
-
-struct ipt_ttl_info {
- __u8 mode;
- __u8 ttl;
-};
-
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/netfilter_ipv6.h b/ANDROID_3.4.5/include/linux/netfilter_ipv6.h
deleted file mode 100644
index 57c02512..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_ipv6.h
+++ /dev/null
@@ -1,93 +0,0 @@
-#ifndef __LINUX_IP6_NETFILTER_H
-#define __LINUX_IP6_NETFILTER_H
-
-/* IPv6-specific defines for netfilter.
- * (C)1998 Rusty Russell -- This code is GPL.
- * (C)1999 David Jeffery
- * this header was blatantly ripped from netfilter_ipv4.h
- * it's amazing what adding a bunch of 6s can do =8^)
- */
-
-#include <linux/netfilter.h>
-
-/* only for userspace compatibility */
-#ifndef __KERNEL__
-
-#include <limits.h> /* for INT_MIN, INT_MAX */
-
-/* IP Cache bits. */
-/* Src IP address. */
-#define NFC_IP6_SRC 0x0001
-/* Dest IP address. */
-#define NFC_IP6_DST 0x0002
-/* Input device. */
-#define NFC_IP6_IF_IN 0x0004
-/* Output device. */
-#define NFC_IP6_IF_OUT 0x0008
-/* TOS. */
-#define NFC_IP6_TOS 0x0010
-/* Protocol. */
-#define NFC_IP6_PROTO 0x0020
-/* IP options. */
-#define NFC_IP6_OPTIONS 0x0040
-/* Frag & flags. */
-#define NFC_IP6_FRAG 0x0080
-
-
-/* Per-protocol information: only matters if proto match. */
-/* TCP flags. */
-#define NFC_IP6_TCPFLAGS 0x0100
-/* Source port. */
-#define NFC_IP6_SRC_PT 0x0200
-/* Dest port. */
-#define NFC_IP6_DST_PT 0x0400
-/* Something else about the proto */
-#define NFC_IP6_PROTO_UNKNOWN 0x2000
-
-/* IP6 Hooks */
-/* After promisc drops, checksum checks. */
-#define NF_IP6_PRE_ROUTING 0
-/* If the packet is destined for this box. */
-#define NF_IP6_LOCAL_IN 1
-/* If the packet is destined for another interface. */
-#define NF_IP6_FORWARD 2
-/* Packets coming from a local process. */
-#define NF_IP6_LOCAL_OUT 3
-/* Packets about to hit the wire. */
-#define NF_IP6_POST_ROUTING 4
-#define NF_IP6_NUMHOOKS 5
-#endif /* ! __KERNEL__ */
-
-
-enum nf_ip6_hook_priorities {
- NF_IP6_PRI_FIRST = INT_MIN,
- NF_IP6_PRI_CONNTRACK_DEFRAG = -400,
- NF_IP6_PRI_RAW = -300,
- NF_IP6_PRI_SELINUX_FIRST = -225,
- NF_IP6_PRI_CONNTRACK = -200,
- NF_IP6_PRI_MANGLE = -150,
- NF_IP6_PRI_NAT_DST = -100,
- NF_IP6_PRI_FILTER = 0,
- NF_IP6_PRI_SECURITY = 50,
- NF_IP6_PRI_NAT_SRC = 100,
- NF_IP6_PRI_SELINUX_LAST = 225,
- NF_IP6_PRI_LAST = INT_MAX,
-};
-
-#ifdef __KERNEL__
-
-#ifdef CONFIG_NETFILTER
-extern int ip6_route_me_harder(struct sk_buff *skb);
-extern __sum16 nf_ip6_checksum(struct sk_buff *skb, unsigned int hook,
- unsigned int dataoff, u_int8_t protocol);
-
-extern int ipv6_netfilter_init(void);
-extern void ipv6_netfilter_fini(void);
-#else /* CONFIG_NETFILTER */
-static inline int ipv6_netfilter_init(void) { return 0; }
-static inline void ipv6_netfilter_fini(void) { return; }
-#endif /* CONFIG_NETFILTER */
-
-#endif /* __KERNEL__ */
-
-#endif /*__LINUX_IP6_NETFILTER_H*/
diff --git a/ANDROID_3.4.5/include/linux/netfilter_ipv6/Kbuild b/ANDROID_3.4.5/include/linux/netfilter_ipv6/Kbuild
deleted file mode 100644
index bd095bc0..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_ipv6/Kbuild
+++ /dev/null
@@ -1,11 +0,0 @@
-header-y += ip6_tables.h
-header-y += ip6t_HL.h
-header-y += ip6t_LOG.h
-header-y += ip6t_REJECT.h
-header-y += ip6t_ah.h
-header-y += ip6t_frag.h
-header-y += ip6t_hl.h
-header-y += ip6t_ipv6header.h
-header-y += ip6t_mh.h
-header-y += ip6t_opts.h
-header-y += ip6t_rt.h
diff --git a/ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6_tables.h b/ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6_tables.h
deleted file mode 100644
index 1bc898b1..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6_tables.h
+++ /dev/null
@@ -1,326 +0,0 @@
-/*
- * 25-Jul-1998 Major changes to allow for ip chain table
- *
- * 3-Jan-2000 Named tables to allow packet selection for different uses.
- */
-
-/*
- * Format of an IP6 firewall descriptor
- *
- * src, dst, src_mask, dst_mask are always stored in network byte order.
- * flags are stored in host byte order (of course).
- * Port numbers are stored in HOST byte order.
- */
-
-#ifndef _IP6_TABLES_H
-#define _IP6_TABLES_H
-
-#ifdef __KERNEL__
-#include <linux/if.h>
-#include <linux/in6.h>
-#include <linux/ipv6.h>
-#include <linux/skbuff.h>
-#endif
-#include <linux/types.h>
-#include <linux/compiler.h>
-#include <linux/netfilter_ipv6.h>
-
-#include <linux/netfilter/x_tables.h>
-
-#ifndef __KERNEL__
-#define IP6T_FUNCTION_MAXNAMELEN XT_FUNCTION_MAXNAMELEN
-#define IP6T_TABLE_MAXNAMELEN XT_TABLE_MAXNAMELEN
-#define ip6t_match xt_match
-#define ip6t_target xt_target
-#define ip6t_table xt_table
-#define ip6t_get_revision xt_get_revision
-#define ip6t_entry_match xt_entry_match
-#define ip6t_entry_target xt_entry_target
-#define ip6t_standard_target xt_standard_target
-#define ip6t_error_target xt_error_target
-#define ip6t_counters xt_counters
-#define IP6T_CONTINUE XT_CONTINUE
-#define IP6T_RETURN XT_RETURN
-
-/* Pre-iptables-1.4.0 */
-#include <linux/netfilter/xt_tcpudp.h>
-#define ip6t_tcp xt_tcp
-#define ip6t_udp xt_udp
-#define IP6T_TCP_INV_SRCPT XT_TCP_INV_SRCPT
-#define IP6T_TCP_INV_DSTPT XT_TCP_INV_DSTPT
-#define IP6T_TCP_INV_FLAGS XT_TCP_INV_FLAGS
-#define IP6T_TCP_INV_OPTION XT_TCP_INV_OPTION
-#define IP6T_TCP_INV_MASK XT_TCP_INV_MASK
-#define IP6T_UDP_INV_SRCPT XT_UDP_INV_SRCPT
-#define IP6T_UDP_INV_DSTPT XT_UDP_INV_DSTPT
-#define IP6T_UDP_INV_MASK XT_UDP_INV_MASK
-
-#define ip6t_counters_info xt_counters_info
-#define IP6T_STANDARD_TARGET XT_STANDARD_TARGET
-#define IP6T_ERROR_TARGET XT_ERROR_TARGET
-#define IP6T_MATCH_ITERATE(e, fn, args...) \
- XT_MATCH_ITERATE(struct ip6t_entry, e, fn, ## args)
-#define IP6T_ENTRY_ITERATE(entries, size, fn, args...) \
- XT_ENTRY_ITERATE(struct ip6t_entry, entries, size, fn, ## args)
-#endif
-
-/* Yes, Virginia, you have to zero the padding. */
-struct ip6t_ip6 {
- /* Source and destination IP6 addr */
- struct in6_addr src, dst;
- /* Mask for src and dest IP6 addr */
- struct in6_addr smsk, dmsk;
- char iniface[IFNAMSIZ], outiface[IFNAMSIZ];
- unsigned char iniface_mask[IFNAMSIZ], outiface_mask[IFNAMSIZ];
-
- /* Upper protocol number
- * - The allowed value is 0 (any) or protocol number of last parsable
- * header, which is 50 (ESP), 59 (No Next Header), 135 (MH), or
- * the non IPv6 extension headers.
- * - The protocol numbers of IPv6 extension headers except of ESP and
- * MH do not match any packets.
- * - You also need to set IP6T_FLAGS_PROTO to "flags" to check protocol.
- */
- __u16 proto;
- /* TOS to match iff flags & IP6T_F_TOS */
- __u8 tos;
-
- /* Flags word */
- __u8 flags;
- /* Inverse flags */
- __u8 invflags;
-};
-
-/* Values for "flag" field in struct ip6t_ip6 (general ip6 structure). */
-#define IP6T_F_PROTO 0x01 /* Set if rule cares about upper
- protocols */
-#define IP6T_F_TOS 0x02 /* Match the TOS. */
-#define IP6T_F_GOTO 0x04 /* Set if jump is a goto */
-#define IP6T_F_MASK 0x07 /* All possible flag bits mask. */
-
-/* Values for "inv" field in struct ip6t_ip6. */
-#define IP6T_INV_VIA_IN 0x01 /* Invert the sense of IN IFACE. */
-#define IP6T_INV_VIA_OUT 0x02 /* Invert the sense of OUT IFACE */
-#define IP6T_INV_TOS 0x04 /* Invert the sense of TOS. */
-#define IP6T_INV_SRCIP 0x08 /* Invert the sense of SRC IP. */
-#define IP6T_INV_DSTIP 0x10 /* Invert the sense of DST OP. */
-#define IP6T_INV_FRAG 0x20 /* Invert the sense of FRAG. */
-#define IP6T_INV_PROTO XT_INV_PROTO
-#define IP6T_INV_MASK 0x7F /* All possible flag bits mask. */
-
-/* This structure defines each of the firewall rules. Consists of 3
- parts which are 1) general IP header stuff 2) match specific
- stuff 3) the target to perform if the rule matches */
-struct ip6t_entry {
- struct ip6t_ip6 ipv6;
-
- /* Mark with fields that we care about. */
- unsigned int nfcache;
-
- /* Size of ipt_entry + matches */
- __u16 target_offset;
- /* Size of ipt_entry + matches + target */
- __u16 next_offset;
-
- /* Back pointer */
- unsigned int comefrom;
-
- /* Packet and byte counters. */
- struct xt_counters counters;
-
- /* The matches (if any), then the target. */
- unsigned char elems[0];
-};
-
-/* Standard entry */
-struct ip6t_standard {
- struct ip6t_entry entry;
- struct xt_standard_target target;
-};
-
-struct ip6t_error {
- struct ip6t_entry entry;
- struct xt_error_target target;
-};
-
-#define IP6T_ENTRY_INIT(__size) \
-{ \
- .target_offset = sizeof(struct ip6t_entry), \
- .next_offset = (__size), \
-}
-
-#define IP6T_STANDARD_INIT(__verdict) \
-{ \
- .entry = IP6T_ENTRY_INIT(sizeof(struct ip6t_standard)), \
- .target = XT_TARGET_INIT(XT_STANDARD_TARGET, \
- sizeof(struct xt_standard_target)), \
- .target.verdict = -(__verdict) - 1, \
-}
-
-#define IP6T_ERROR_INIT \
-{ \
- .entry = IP6T_ENTRY_INIT(sizeof(struct ip6t_error)), \
- .target = XT_TARGET_INIT(XT_ERROR_TARGET, \
- sizeof(struct xt_error_target)), \
- .target.errorname = "ERROR", \
-}
-
-/*
- * New IP firewall options for [gs]etsockopt at the RAW IP level.
- * Unlike BSD Linux inherits IP options so you don't have to use
- * a raw socket for this. Instead we check rights in the calls.
- *
- * ATTENTION: check linux/in6.h before adding new number here.
- */
-#define IP6T_BASE_CTL 64
-
-#define IP6T_SO_SET_REPLACE (IP6T_BASE_CTL)
-#define IP6T_SO_SET_ADD_COUNTERS (IP6T_BASE_CTL + 1)
-#define IP6T_SO_SET_MAX IP6T_SO_SET_ADD_COUNTERS
-
-#define IP6T_SO_GET_INFO (IP6T_BASE_CTL)
-#define IP6T_SO_GET_ENTRIES (IP6T_BASE_CTL + 1)
-#define IP6T_SO_GET_REVISION_MATCH (IP6T_BASE_CTL + 4)
-#define IP6T_SO_GET_REVISION_TARGET (IP6T_BASE_CTL + 5)
-#define IP6T_SO_GET_MAX IP6T_SO_GET_REVISION_TARGET
-
-/* ICMP matching stuff */
-struct ip6t_icmp {
- __u8 type; /* type to match */
- __u8 code[2]; /* range of code */
- __u8 invflags; /* Inverse flags */
-};
-
-/* Values for "inv" field for struct ipt_icmp. */
-#define IP6T_ICMP_INV 0x01 /* Invert the sense of type/code test */
-
-/* The argument to IP6T_SO_GET_INFO */
-struct ip6t_getinfo {
- /* Which table: caller fills this in. */
- char name[XT_TABLE_MAXNAMELEN];
-
- /* Kernel fills these in. */
- /* Which hook entry points are valid: bitmask */
- unsigned int valid_hooks;
-
- /* Hook entry points: one per netfilter hook. */
- unsigned int hook_entry[NF_INET_NUMHOOKS];
-
- /* Underflow points. */
- unsigned int underflow[NF_INET_NUMHOOKS];
-
- /* Number of entries */
- unsigned int num_entries;
-
- /* Size of entries. */
- unsigned int size;
-};
-
-/* The argument to IP6T_SO_SET_REPLACE. */
-struct ip6t_replace {
- /* Which table. */
- char name[XT_TABLE_MAXNAMELEN];
-
- /* Which hook entry points are valid: bitmask. You can't
- change this. */
- unsigned int valid_hooks;
-
- /* Number of entries */
- unsigned int num_entries;
-
- /* Total size of new entries */
- unsigned int size;
-
- /* Hook entry points. */
- unsigned int hook_entry[NF_INET_NUMHOOKS];
-
- /* Underflow points. */
- unsigned int underflow[NF_INET_NUMHOOKS];
-
- /* Information about old entries: */
- /* Number of counters (must be equal to current number of entries). */
- unsigned int num_counters;
- /* The old entries' counters. */
- struct xt_counters __user *counters;
-
- /* The entries (hang off end: not really an array). */
- struct ip6t_entry entries[0];
-};
-
-/* The argument to IP6T_SO_GET_ENTRIES. */
-struct ip6t_get_entries {
- /* Which table: user fills this in. */
- char name[XT_TABLE_MAXNAMELEN];
-
- /* User fills this in: total entry size. */
- unsigned int size;
-
- /* The entries. */
- struct ip6t_entry entrytable[0];
-};
-
-/* Helper functions */
-static __inline__ struct xt_entry_target *
-ip6t_get_target(struct ip6t_entry *e)
-{
- return (void *)e + e->target_offset;
-}
-
-/*
- * Main firewall chains definitions and global var's definitions.
- */
-
-#ifdef __KERNEL__
-
-#include <linux/init.h>
-extern void ip6t_init(void) __init;
-
-extern void *ip6t_alloc_initial_table(const struct xt_table *);
-extern struct xt_table *ip6t_register_table(struct net *net,
- const struct xt_table *table,
- const struct ip6t_replace *repl);
-extern void ip6t_unregister_table(struct net *net, struct xt_table *table);
-extern unsigned int ip6t_do_table(struct sk_buff *skb,
- unsigned int hook,
- const struct net_device *in,
- const struct net_device *out,
- struct xt_table *table);
-
-/* Check for an extension */
-static inline int
-ip6t_ext_hdr(u8 nexthdr)
-{ return (nexthdr == IPPROTO_HOPOPTS) ||
- (nexthdr == IPPROTO_ROUTING) ||
- (nexthdr == IPPROTO_FRAGMENT) ||
- (nexthdr == IPPROTO_ESP) ||
- (nexthdr == IPPROTO_AH) ||
- (nexthdr == IPPROTO_NONE) ||
- (nexthdr == IPPROTO_DSTOPTS);
-}
-
-/* find specified header and get offset to it */
-extern int ipv6_find_hdr(const struct sk_buff *skb, unsigned int *offset,
- int target, unsigned short *fragoff);
-
-#ifdef CONFIG_COMPAT
-#include <net/compat.h>
-
-struct compat_ip6t_entry {
- struct ip6t_ip6 ipv6;
- compat_uint_t nfcache;
- __u16 target_offset;
- __u16 next_offset;
- compat_uint_t comefrom;
- struct compat_xt_counters counters;
- unsigned char elems[0];
-};
-
-static inline struct xt_entry_target *
-compat_ip6t_get_target(struct compat_ip6t_entry *e)
-{
- return (void *)e + e->target_offset;
-}
-
-#endif /* CONFIG_COMPAT */
-#endif /*__KERNEL__*/
-#endif /* _IP6_TABLES_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_HL.h b/ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_HL.h
deleted file mode 100644
index ebd8ead1..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_HL.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Hop Limit modification module for ip6tables
- * Maciej Soltysiak <solt@dns.toxicfilms.tv>
- * Based on HW's TTL module */
-
-#ifndef _IP6T_HL_H
-#define _IP6T_HL_H
-
-#include <linux/types.h>
-
-enum {
- IP6T_HL_SET = 0,
- IP6T_HL_INC,
- IP6T_HL_DEC
-};
-
-#define IP6T_HL_MAXMODE IP6T_HL_DEC
-
-struct ip6t_HL_info {
- __u8 mode;
- __u8 hop_limit;
-};
-
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_LOG.h b/ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_LOG.h
deleted file mode 100644
index 3dd0bc4e..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_LOG.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef _IP6T_LOG_H
-#define _IP6T_LOG_H
-
-#warning "Please update iptables, this file will be removed soon!"
-
-/* make sure not to change this without changing netfilter.h:NF_LOG_* (!) */
-#define IP6T_LOG_TCPSEQ 0x01 /* Log TCP sequence numbers */
-#define IP6T_LOG_TCPOPT 0x02 /* Log TCP options */
-#define IP6T_LOG_IPOPT 0x04 /* Log IP options */
-#define IP6T_LOG_UID 0x08 /* Log UID owning local socket */
-#define IP6T_LOG_NFLOG 0x10 /* Unsupported, don't use */
-#define IP6T_LOG_MACDECODE 0x20 /* Decode MAC header */
-#define IP6T_LOG_MASK 0x2f
-
-struct ip6t_log_info {
- unsigned char level;
- unsigned char logflags;
- char prefix[30];
-};
-
-#endif /*_IPT_LOG_H*/
diff --git a/ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_REJECT.h b/ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_REJECT.h
deleted file mode 100644
index 205ed62e..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_REJECT.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef _IP6T_REJECT_H
-#define _IP6T_REJECT_H
-
-#include <linux/types.h>
-
-enum ip6t_reject_with {
- IP6T_ICMP6_NO_ROUTE,
- IP6T_ICMP6_ADM_PROHIBITED,
- IP6T_ICMP6_NOT_NEIGHBOUR,
- IP6T_ICMP6_ADDR_UNREACH,
- IP6T_ICMP6_PORT_UNREACH,
- IP6T_ICMP6_ECHOREPLY,
- IP6T_TCP_RESET
-};
-
-struct ip6t_reject_info {
- __u32 with; /* reject type */
-};
-
-#endif /*_IP6T_REJECT_H*/
diff --git a/ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_ah.h b/ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_ah.h
deleted file mode 100644
index 5da2b65c..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_ah.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef _IP6T_AH_H
-#define _IP6T_AH_H
-
-#include <linux/types.h>
-
-struct ip6t_ah {
- __u32 spis[2]; /* Security Parameter Index */
- __u32 hdrlen; /* Header Length */
- __u8 hdrres; /* Test of the Reserved Filed */
- __u8 invflags; /* Inverse flags */
-};
-
-#define IP6T_AH_SPI 0x01
-#define IP6T_AH_LEN 0x02
-#define IP6T_AH_RES 0x04
-
-/* Values for "invflags" field in struct ip6t_ah. */
-#define IP6T_AH_INV_SPI 0x01 /* Invert the sense of spi. */
-#define IP6T_AH_INV_LEN 0x02 /* Invert the sense of length. */
-#define IP6T_AH_INV_MASK 0x03 /* All possible flags. */
-
-#endif /*_IP6T_AH_H*/
diff --git a/ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_frag.h b/ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_frag.h
deleted file mode 100644
index b47f61b9..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_frag.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef _IP6T_FRAG_H
-#define _IP6T_FRAG_H
-
-#include <linux/types.h>
-
-struct ip6t_frag {
- __u32 ids[2]; /* Security Parameter Index */
- __u32 hdrlen; /* Header Length */
- __u8 flags; /* */
- __u8 invflags; /* Inverse flags */
-};
-
-#define IP6T_FRAG_IDS 0x01
-#define IP6T_FRAG_LEN 0x02
-#define IP6T_FRAG_RES 0x04
-#define IP6T_FRAG_FST 0x08
-#define IP6T_FRAG_MF 0x10
-#define IP6T_FRAG_NMF 0x20
-
-/* Values for "invflags" field in struct ip6t_frag. */
-#define IP6T_FRAG_INV_IDS 0x01 /* Invert the sense of ids. */
-#define IP6T_FRAG_INV_LEN 0x02 /* Invert the sense of length. */
-#define IP6T_FRAG_INV_MASK 0x03 /* All possible flags. */
-
-#endif /*_IP6T_FRAG_H*/
diff --git a/ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_hl.h b/ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_hl.h
deleted file mode 100644
index 6e76dbc6..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_hl.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* ip6tables module for matching the Hop Limit value
- * Maciej Soltysiak <solt@dns.toxicfilms.tv>
- * Based on HW's ttl module */
-
-#ifndef _IP6T_HL_H
-#define _IP6T_HL_H
-
-#include <linux/types.h>
-
-enum {
- IP6T_HL_EQ = 0, /* equals */
- IP6T_HL_NE, /* not equals */
- IP6T_HL_LT, /* less than */
- IP6T_HL_GT, /* greater than */
-};
-
-
-struct ip6t_hl_info {
- __u8 mode;
- __u8 hop_limit;
-};
-
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_ipv6header.h b/ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_ipv6header.h
deleted file mode 100644
index efae3a20..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_ipv6header.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* ipv6header match - matches IPv6 packets based
-on whether they contain certain headers */
-
-/* Original idea: Brad Chapman
- * Rewritten by: Andras Kis-Szabo <kisza@sch.bme.hu> */
-
-
-#ifndef __IPV6HEADER_H
-#define __IPV6HEADER_H
-
-#include <linux/types.h>
-
-struct ip6t_ipv6header_info {
- __u8 matchflags;
- __u8 invflags;
- __u8 modeflag;
-};
-
-#define MASK_HOPOPTS 128
-#define MASK_DSTOPTS 64
-#define MASK_ROUTING 32
-#define MASK_FRAGMENT 16
-#define MASK_AH 8
-#define MASK_ESP 4
-#define MASK_NONE 2
-#define MASK_PROTO 1
-
-#endif /* __IPV6HEADER_H */
diff --git a/ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_mh.h b/ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_mh.h
deleted file mode 100644
index a7729a50..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_mh.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef _IP6T_MH_H
-#define _IP6T_MH_H
-
-#include <linux/types.h>
-
-/* MH matching stuff */
-struct ip6t_mh {
- __u8 types[2]; /* MH type range */
- __u8 invflags; /* Inverse flags */
-};
-
-/* Values for "invflags" field in struct ip6t_mh. */
-#define IP6T_MH_INV_TYPE 0x01 /* Invert the sense of type. */
-#define IP6T_MH_INV_MASK 0x01 /* All possible flags. */
-
-#endif /*_IP6T_MH_H*/
diff --git a/ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_opts.h b/ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_opts.h
deleted file mode 100644
index 17d419a8..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_opts.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef _IP6T_OPTS_H
-#define _IP6T_OPTS_H
-
-#include <linux/types.h>
-
-#define IP6T_OPTS_OPTSNR 16
-
-struct ip6t_opts {
- __u32 hdrlen; /* Header Length */
- __u8 flags; /* */
- __u8 invflags; /* Inverse flags */
- __u16 opts[IP6T_OPTS_OPTSNR]; /* opts */
- __u8 optsnr; /* Nr of OPts */
-};
-
-#define IP6T_OPTS_LEN 0x01
-#define IP6T_OPTS_OPTS 0x02
-#define IP6T_OPTS_NSTRICT 0x04
-
-/* Values for "invflags" field in struct ip6t_rt. */
-#define IP6T_OPTS_INV_LEN 0x01 /* Invert the sense of length. */
-#define IP6T_OPTS_INV_MASK 0x01 /* All possible flags. */
-
-#endif /*_IP6T_OPTS_H*/
diff --git a/ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_rt.h b/ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_rt.h
deleted file mode 100644
index 7605a5ff..00000000
--- a/ANDROID_3.4.5/include/linux/netfilter_ipv6/ip6t_rt.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef _IP6T_RT_H
-#define _IP6T_RT_H
-
-#include <linux/types.h>
-/*#include <linux/in6.h>*/
-
-#define IP6T_RT_HOPS 16
-
-struct ip6t_rt {
- __u32 rt_type; /* Routing Type */
- __u32 segsleft[2]; /* Segments Left */
- __u32 hdrlen; /* Header Length */
- __u8 flags; /* */
- __u8 invflags; /* Inverse flags */
- struct in6_addr addrs[IP6T_RT_HOPS]; /* Hops */
- __u8 addrnr; /* Nr of Addresses */
-};
-
-#define IP6T_RT_TYP 0x01
-#define IP6T_RT_SGS 0x02
-#define IP6T_RT_LEN 0x04
-#define IP6T_RT_RES 0x08
-#define IP6T_RT_FST_MASK 0x30
-#define IP6T_RT_FST 0x10
-#define IP6T_RT_FST_NSTRICT 0x20
-
-/* Values for "invflags" field in struct ip6t_rt. */
-#define IP6T_RT_INV_TYP 0x01 /* Invert the sense of type. */
-#define IP6T_RT_INV_SGS 0x02 /* Invert the sense of Segments. */
-#define IP6T_RT_INV_LEN 0x04 /* Invert the sense of length. */
-#define IP6T_RT_INV_MASK 0x07 /* All possible flags. */
-
-#endif /*_IP6T_RT_H*/
diff --git a/ANDROID_3.4.5/include/linux/netlink.h b/ANDROID_3.4.5/include/linux/netlink.h
deleted file mode 100644
index a2092f58..00000000
--- a/ANDROID_3.4.5/include/linux/netlink.h
+++ /dev/null
@@ -1,270 +0,0 @@
-#ifndef __LINUX_NETLINK_H
-#define __LINUX_NETLINK_H
-
-#include <linux/socket.h> /* for __kernel_sa_family_t */
-#include <linux/types.h>
-
-#define NETLINK_ROUTE 0 /* Routing/device hook */
-#define NETLINK_UNUSED 1 /* Unused number */
-#define NETLINK_USERSOCK 2 /* Reserved for user mode socket protocols */
-#define NETLINK_FIREWALL 3 /* Firewalling hook */
-#define NETLINK_SOCK_DIAG 4 /* socket monitoring */
-#define NETLINK_NFLOG 5 /* netfilter/iptables ULOG */
-#define NETLINK_XFRM 6 /* ipsec */
-#define NETLINK_SELINUX 7 /* SELinux event notifications */
-#define NETLINK_ISCSI 8 /* Open-iSCSI */
-#define NETLINK_AUDIT 9 /* auditing */
-#define NETLINK_FIB_LOOKUP 10
-#define NETLINK_CONNECTOR 11
-#define NETLINK_NETFILTER 12 /* netfilter subsystem */
-#define NETLINK_IP6_FW 13
-#define NETLINK_DNRTMSG 14 /* DECnet routing messages */
-#define NETLINK_KOBJECT_UEVENT 15 /* Kernel messages to userspace */
-#define NETLINK_GENERIC 16
-/* leave room for NETLINK_DM (DM Events) */
-#define NETLINK_SCSITRANSPORT 18 /* SCSI Transports */
-#define NETLINK_ECRYPTFS 19
-#define NETLINK_RDMA 20
-#define NETLINK_CRYPTO 21 /* Crypto layer */
-
-#define NETLINK_INET_DIAG NETLINK_SOCK_DIAG
-
-#define MAX_LINKS 32
-
-struct sockaddr_nl {
- __kernel_sa_family_t nl_family; /* AF_NETLINK */
- unsigned short nl_pad; /* zero */
- __u32 nl_pid; /* port ID */
- __u32 nl_groups; /* multicast groups mask */
-};
-
-struct nlmsghdr {
- __u32 nlmsg_len; /* Length of message including header */
- __u16 nlmsg_type; /* Message content */
- __u16 nlmsg_flags; /* Additional flags */
- __u32 nlmsg_seq; /* Sequence number */
- __u32 nlmsg_pid; /* Sending process port ID */
-};
-
-/* Flags values */
-
-#define NLM_F_REQUEST 1 /* It is request message. */
-#define NLM_F_MULTI 2 /* Multipart message, terminated by NLMSG_DONE */
-#define NLM_F_ACK 4 /* Reply with ack, with zero or error code */
-#define NLM_F_ECHO 8 /* Echo this request */
-#define NLM_F_DUMP_INTR 16 /* Dump was inconsistent due to sequence change */
-
-/* Modifiers to GET request */
-#define NLM_F_ROOT 0x100 /* specify tree root */
-#define NLM_F_MATCH 0x200 /* return all matching */
-#define NLM_F_ATOMIC 0x400 /* atomic GET */
-#define NLM_F_DUMP (NLM_F_ROOT|NLM_F_MATCH)
-
-/* Modifiers to NEW request */
-#define NLM_F_REPLACE 0x100 /* Override existing */
-#define NLM_F_EXCL 0x200 /* Do not touch, if it exists */
-#define NLM_F_CREATE 0x400 /* Create, if it does not exist */
-#define NLM_F_APPEND 0x800 /* Add to end of list */
-
-/*
- 4.4BSD ADD NLM_F_CREATE|NLM_F_EXCL
- 4.4BSD CHANGE NLM_F_REPLACE
-
- True CHANGE NLM_F_CREATE|NLM_F_REPLACE
- Append NLM_F_CREATE
- Check NLM_F_EXCL
- */
-
-#define NLMSG_ALIGNTO 4U
-#define NLMSG_ALIGN(len) ( ((len)+NLMSG_ALIGNTO-1) & ~(NLMSG_ALIGNTO-1) )
-#define NLMSG_HDRLEN ((int) NLMSG_ALIGN(sizeof(struct nlmsghdr)))
-#define NLMSG_LENGTH(len) ((len)+NLMSG_ALIGN(NLMSG_HDRLEN))
-#define NLMSG_SPACE(len) NLMSG_ALIGN(NLMSG_LENGTH(len))
-#define NLMSG_DATA(nlh) ((void*)(((char*)nlh) + NLMSG_LENGTH(0)))
-#define NLMSG_NEXT(nlh,len) ((len) -= NLMSG_ALIGN((nlh)->nlmsg_len), \
- (struct nlmsghdr*)(((char*)(nlh)) + NLMSG_ALIGN((nlh)->nlmsg_len)))
-#define NLMSG_OK(nlh,len) ((len) >= (int)sizeof(struct nlmsghdr) && \
- (nlh)->nlmsg_len >= sizeof(struct nlmsghdr) && \
- (nlh)->nlmsg_len <= (len))
-#define NLMSG_PAYLOAD(nlh,len) ((nlh)->nlmsg_len - NLMSG_SPACE((len)))
-
-#define NLMSG_NOOP 0x1 /* Nothing. */
-#define NLMSG_ERROR 0x2 /* Error */
-#define NLMSG_DONE 0x3 /* End of a dump */
-#define NLMSG_OVERRUN 0x4 /* Data lost */
-
-#define NLMSG_MIN_TYPE 0x10 /* < 0x10: reserved control messages */
-
-struct nlmsgerr {
- int error;
- struct nlmsghdr msg;
-};
-
-#define NETLINK_ADD_MEMBERSHIP 1
-#define NETLINK_DROP_MEMBERSHIP 2
-#define NETLINK_PKTINFO 3
-#define NETLINK_BROADCAST_ERROR 4
-#define NETLINK_NO_ENOBUFS 5
-
-struct nl_pktinfo {
- __u32 group;
-};
-
-#define NET_MAJOR 36 /* Major 36 is reserved for networking */
-
-enum {
- NETLINK_UNCONNECTED = 0,
- NETLINK_CONNECTED,
-};
-
-/*
- * <------- NLA_HDRLEN ------> <-- NLA_ALIGN(payload)-->
- * +---------------------+- - -+- - - - - - - - - -+- - -+
- * | Header | Pad | Payload | Pad |
- * | (struct nlattr) | ing | | ing |
- * +---------------------+- - -+- - - - - - - - - -+- - -+
- * <-------------- nlattr->nla_len -------------->
- */
-
-struct nlattr {
- __u16 nla_len;
- __u16 nla_type;
-};
-
-/*
- * nla_type (16 bits)
- * +---+---+-------------------------------+
- * | N | O | Attribute Type |
- * +---+---+-------------------------------+
- * N := Carries nested attributes
- * O := Payload stored in network byte order
- *
- * Note: The N and O flag are mutually exclusive.
- */
-#define NLA_F_NESTED (1 << 15)
-#define NLA_F_NET_BYTEORDER (1 << 14)
-#define NLA_TYPE_MASK ~(NLA_F_NESTED | NLA_F_NET_BYTEORDER)
-
-#define NLA_ALIGNTO 4
-#define NLA_ALIGN(len) (((len) + NLA_ALIGNTO - 1) & ~(NLA_ALIGNTO - 1))
-#define NLA_HDRLEN ((int) NLA_ALIGN(sizeof(struct nlattr)))
-
-#ifdef __KERNEL__
-
-#include <linux/capability.h>
-#include <linux/skbuff.h>
-
-struct net;
-
-static inline struct nlmsghdr *nlmsg_hdr(const struct sk_buff *skb)
-{
- return (struct nlmsghdr *)skb->data;
-}
-
-struct netlink_skb_parms {
- struct ucred creds; /* Skb credentials */
- __u32 pid;
- __u32 dst_group;
-};
-
-#define NETLINK_CB(skb) (*(struct netlink_skb_parms*)&((skb)->cb))
-#define NETLINK_CREDS(skb) (&NETLINK_CB((skb)).creds)
-
-
-extern void netlink_table_grab(void);
-extern void netlink_table_ungrab(void);
-
-extern struct sock *netlink_kernel_create(struct net *net,
- int unit,unsigned int groups,
- void (*input)(struct sk_buff *skb),
- struct mutex *cb_mutex,
- struct module *module);
-extern void netlink_kernel_release(struct sock *sk);
-extern int __netlink_change_ngroups(struct sock *sk, unsigned int groups);
-extern int netlink_change_ngroups(struct sock *sk, unsigned int groups);
-extern void __netlink_clear_multicast_users(struct sock *sk, unsigned int group);
-extern void netlink_clear_multicast_users(struct sock *sk, unsigned int group);
-extern void netlink_ack(struct sk_buff *in_skb, struct nlmsghdr *nlh, int err);
-extern int netlink_has_listeners(struct sock *sk, unsigned int group);
-extern int netlink_unicast(struct sock *ssk, struct sk_buff *skb, __u32 pid, int nonblock);
-extern int netlink_broadcast(struct sock *ssk, struct sk_buff *skb, __u32 pid,
- __u32 group, gfp_t allocation);
-extern int netlink_broadcast_filtered(struct sock *ssk, struct sk_buff *skb,
- __u32 pid, __u32 group, gfp_t allocation,
- int (*filter)(struct sock *dsk, struct sk_buff *skb, void *data),
- void *filter_data);
-extern int netlink_set_err(struct sock *ssk, __u32 pid, __u32 group, int code);
-extern int netlink_register_notifier(struct notifier_block *nb);
-extern int netlink_unregister_notifier(struct notifier_block *nb);
-
-/* finegrained unicast helpers: */
-struct sock *netlink_getsockbyfilp(struct file *filp);
-int netlink_attachskb(struct sock *sk, struct sk_buff *skb,
- long *timeo, struct sock *ssk);
-void netlink_detachskb(struct sock *sk, struct sk_buff *skb);
-int netlink_sendskb(struct sock *sk, struct sk_buff *skb);
-
-/*
- * skb should fit one page. This choice is good for headerless malloc.
- * But we should limit to 8K so that userspace does not have to
- * use enormous buffer sizes on recvmsg() calls just to avoid
- * MSG_TRUNC when PAGE_SIZE is very large.
- */
-#if PAGE_SIZE < 8192UL
-#define NLMSG_GOODSIZE SKB_WITH_OVERHEAD(PAGE_SIZE)
-#else
-#define NLMSG_GOODSIZE SKB_WITH_OVERHEAD(8192UL)
-#endif
-
-#define NLMSG_DEFAULT_SIZE (NLMSG_GOODSIZE - NLMSG_HDRLEN)
-
-
-struct netlink_callback {
- struct sk_buff *skb;
- const struct nlmsghdr *nlh;
- int (*dump)(struct sk_buff * skb,
- struct netlink_callback *cb);
- int (*done)(struct netlink_callback *cb);
- void *data;
- u16 family;
- u16 min_dump_alloc;
- unsigned int prev_seq, seq;
- long args[6];
-};
-
-struct netlink_notify {
- struct net *net;
- int pid;
- int protocol;
-};
-
-struct nlmsghdr *
-__nlmsg_put(struct sk_buff *skb, u32 pid, u32 seq, int type, int len, int flags);
-
-#define NLMSG_NEW(skb, pid, seq, type, len, flags) \
-({ if (unlikely(skb_tailroom(skb) < (int)NLMSG_SPACE(len))) \
- goto nlmsg_failure; \
- __nlmsg_put(skb, pid, seq, type, len, flags); })
-
-#define NLMSG_PUT(skb, pid, seq, type, len) \
- NLMSG_NEW(skb, pid, seq, type, len, 0)
-
-struct netlink_dump_control {
- int (*dump)(struct sk_buff *skb, struct netlink_callback *);
- int (*done)(struct netlink_callback*);
- void *data;
- u16 min_dump_alloc;
-};
-
-extern int netlink_dump_start(struct sock *ssk, struct sk_buff *skb,
- const struct nlmsghdr *nlh,
- struct netlink_dump_control *control);
-
-
-#define NL_NONROOT_RECV 0x1
-#define NL_NONROOT_SEND 0x2
-extern void netlink_set_nonroot(int protocol, unsigned flag);
-
-#endif /* __KERNEL__ */
-
-#endif /* __LINUX_NETLINK_H */
diff --git a/ANDROID_3.4.5/include/linux/netpoll.h b/ANDROID_3.4.5/include/linux/netpoll.h
deleted file mode 100644
index 5dfa091c..00000000
--- a/ANDROID_3.4.5/include/linux/netpoll.h
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Common code for low-level network console, dump, and debugger code
- *
- * Derived from netconsole, kgdb-over-ethernet, and netdump patches
- */
-
-#ifndef _LINUX_NETPOLL_H
-#define _LINUX_NETPOLL_H
-
-#include <linux/netdevice.h>
-#include <linux/interrupt.h>
-#include <linux/rcupdate.h>
-#include <linux/list.h>
-
-struct netpoll {
- struct net_device *dev;
- char dev_name[IFNAMSIZ];
- const char *name;
- void (*rx_hook)(struct netpoll *, int, char *, int);
-
- __be32 local_ip, remote_ip;
- u16 local_port, remote_port;
- u8 remote_mac[ETH_ALEN];
-
- struct list_head rx; /* rx_np list element */
-};
-
-struct netpoll_info {
- atomic_t refcnt;
-
- int rx_flags;
- spinlock_t rx_lock;
- struct list_head rx_np; /* netpolls that registered an rx_hook */
-
- struct sk_buff_head arp_tx; /* list of arp requests to reply to */
- struct sk_buff_head txq;
-
- struct delayed_work tx_work;
-
- struct netpoll *netpoll;
-};
-
-void netpoll_send_udp(struct netpoll *np, const char *msg, int len);
-void netpoll_print_options(struct netpoll *np);
-int netpoll_parse_options(struct netpoll *np, char *opt);
-int __netpoll_setup(struct netpoll *np);
-int netpoll_setup(struct netpoll *np);
-int netpoll_trap(void);
-void netpoll_set_trap(int trap);
-void __netpoll_cleanup(struct netpoll *np);
-void netpoll_cleanup(struct netpoll *np);
-int __netpoll_rx(struct sk_buff *skb);
-void netpoll_send_skb_on_dev(struct netpoll *np, struct sk_buff *skb,
- struct net_device *dev);
-static inline void netpoll_send_skb(struct netpoll *np, struct sk_buff *skb)
-{
- netpoll_send_skb_on_dev(np, skb, np->dev);
-}
-
-
-
-#ifdef CONFIG_NETPOLL
-static inline bool netpoll_rx(struct sk_buff *skb)
-{
- struct netpoll_info *npinfo;
- unsigned long flags;
- bool ret = false;
-
- local_irq_save(flags);
- npinfo = rcu_dereference_bh(skb->dev->npinfo);
-
- if (!npinfo || (list_empty(&npinfo->rx_np) && !npinfo->rx_flags))
- goto out;
-
- spin_lock(&npinfo->rx_lock);
- /* check rx_flags again with the lock held */
- if (npinfo->rx_flags && __netpoll_rx(skb))
- ret = true;
- spin_unlock(&npinfo->rx_lock);
-
-out:
- local_irq_restore(flags);
- return ret;
-}
-
-static inline int netpoll_rx_on(struct sk_buff *skb)
-{
- struct netpoll_info *npinfo = rcu_dereference_bh(skb->dev->npinfo);
-
- return npinfo && (!list_empty(&npinfo->rx_np) || npinfo->rx_flags);
-}
-
-static inline int netpoll_receive_skb(struct sk_buff *skb)
-{
- if (!list_empty(&skb->dev->napi_list))
- return netpoll_rx(skb);
- return 0;
-}
-
-static inline void *netpoll_poll_lock(struct napi_struct *napi)
-{
- struct net_device *dev = napi->dev;
-
- if (dev && dev->npinfo) {
- spin_lock(&napi->poll_lock);
- napi->poll_owner = smp_processor_id();
- return napi;
- }
- return NULL;
-}
-
-static inline void netpoll_poll_unlock(void *have)
-{
- struct napi_struct *napi = have;
-
- if (napi) {
- napi->poll_owner = -1;
- spin_unlock(&napi->poll_lock);
- }
-}
-
-static inline int netpoll_tx_running(struct net_device *dev)
-{
- return irqs_disabled();
-}
-
-#else
-static inline bool netpoll_rx(struct sk_buff *skb)
-{
- return 0;
-}
-static inline int netpoll_rx_on(struct sk_buff *skb)
-{
- return 0;
-}
-static inline int netpoll_receive_skb(struct sk_buff *skb)
-{
- return 0;
-}
-static inline void *netpoll_poll_lock(struct napi_struct *napi)
-{
- return NULL;
-}
-static inline void netpoll_poll_unlock(void *have)
-{
-}
-static inline void netpoll_netdev_init(struct net_device *dev)
-{
-}
-static inline int netpoll_tx_running(struct net_device *dev)
-{
- return 0;
-}
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/netrom.h b/ANDROID_3.4.5/include/linux/netrom.h
deleted file mode 100644
index af7313cc..00000000
--- a/ANDROID_3.4.5/include/linux/netrom.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * These are the public elements of the Linux kernel NET/ROM implementation.
- * For kernel AX.25 see the file ax25.h. This file requires ax25.h for the
- * definition of the ax25_address structure.
- */
-
-#ifndef NETROM_KERNEL_H
-#define NETROM_KERNEL_H
-
-#include <linux/ax25.h>
-
-#define NETROM_MTU 236
-
-#define NETROM_T1 1
-#define NETROM_T2 2
-#define NETROM_N2 3
-#define NETROM_T4 6
-#define NETROM_IDLE 7
-
-#define SIOCNRDECOBS (SIOCPROTOPRIVATE+2)
-
-struct nr_route_struct {
-#define NETROM_NEIGH 0
-#define NETROM_NODE 1
- int type;
- ax25_address callsign;
- char device[16];
- unsigned int quality;
- char mnemonic[7];
- ax25_address neighbour;
- unsigned int obs_count;
- unsigned int ndigis;
- ax25_address digipeaters[AX25_MAX_DIGIS];
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/nfc.h b/ANDROID_3.4.5/include/linux/nfc.h
deleted file mode 100644
index 39c1fcf0..00000000
--- a/ANDROID_3.4.5/include/linux/nfc.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (C) 2011 Instituto Nokia de Tecnologia
- *
- * Authors:
- * Lauro Ramos Venancio <lauro.venancio@openbossa.org>
- * Aloisio Almeida Jr <aloisio.almeida@openbossa.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.
- */
-
-#ifndef __LINUX_NFC_H
-#define __LINUX_NFC_H
-
-#include <linux/types.h>
-#include <linux/socket.h>
-
-#define NFC_GENL_NAME "nfc"
-#define NFC_GENL_VERSION 1
-
-#define NFC_GENL_MCAST_EVENT_NAME "events"
-
-/**
- * enum nfc_commands - supported nfc commands
- *
- * @NFC_CMD_UNSPEC: unspecified command
- *
- * @NFC_CMD_GET_DEVICE: request information about a device (requires
- * %NFC_ATTR_DEVICE_INDEX) or dump request to get a list of all nfc devices
- * @NFC_CMD_DEV_UP: turn on the nfc device
- * (requires %NFC_ATTR_DEVICE_INDEX)
- * @NFC_CMD_DEV_DOWN: turn off the nfc device
- * (requires %NFC_ATTR_DEVICE_INDEX)
- * @NFC_CMD_START_POLL: start polling for targets using the given protocols
- * (requires %NFC_ATTR_DEVICE_INDEX and %NFC_ATTR_PROTOCOLS)
- * @NFC_CMD_STOP_POLL: stop polling for targets (requires
- * %NFC_ATTR_DEVICE_INDEX)
- * @NFC_CMD_GET_TARGET: dump all targets found by the previous poll (requires
- * %NFC_ATTR_DEVICE_INDEX)
- * @NFC_EVENT_TARGETS_FOUND: event emitted when a new target is found
- * (it sends %NFC_ATTR_DEVICE_INDEX)
- * @NFC_EVENT_DEVICE_ADDED: event emitted when a new device is registred
- * (it sends %NFC_ATTR_DEVICE_NAME, %NFC_ATTR_DEVICE_INDEX and
- * %NFC_ATTR_PROTOCOLS)
- * @NFC_EVENT_DEVICE_REMOVED: event emitted when a device is removed
- * (it sends %NFC_ATTR_DEVICE_INDEX)
- */
-enum nfc_commands {
- NFC_CMD_UNSPEC,
- NFC_CMD_GET_DEVICE,
- NFC_CMD_DEV_UP,
- NFC_CMD_DEV_DOWN,
- NFC_CMD_DEP_LINK_UP,
- NFC_CMD_DEP_LINK_DOWN,
- NFC_CMD_START_POLL,
- NFC_CMD_STOP_POLL,
- NFC_CMD_GET_TARGET,
- NFC_EVENT_TARGETS_FOUND,
- NFC_EVENT_DEVICE_ADDED,
- NFC_EVENT_DEVICE_REMOVED,
-/* private: internal use only */
- __NFC_CMD_AFTER_LAST
-};
-#define NFC_CMD_MAX (__NFC_CMD_AFTER_LAST - 1)
-
-/**
- * enum nfc_attrs - supported nfc attributes
- *
- * @NFC_ATTR_UNSPEC: unspecified attribute
- *
- * @NFC_ATTR_DEVICE_INDEX: index of nfc device
- * @NFC_ATTR_DEVICE_NAME: device name, max 8 chars
- * @NFC_ATTR_PROTOCOLS: nfc protocols - bitwise or-ed combination from
- * NFC_PROTO_*_MASK constants
- * @NFC_ATTR_TARGET_INDEX: index of the nfc target
- * @NFC_ATTR_TARGET_SENS_RES: NFC-A targets extra information such as NFCID
- * @NFC_ATTR_TARGET_SEL_RES: NFC-A targets extra information (useful if the
- * target is not NFC-Forum compliant)
- * @NFC_ATTR_TARGET_NFCID1: NFC-A targets identifier, max 10 bytes
- * @NFC_ATTR_TARGET_SENSB_RES: NFC-B targets extra information, max 12 bytes
- * @NFC_ATTR_TARGET_SENSF_RES: NFC-F targets extra information, max 18 bytes
- * @NFC_ATTR_COMM_MODE: Passive or active mode
- * @NFC_ATTR_RF_MODE: Initiator or target
- */
-enum nfc_attrs {
- NFC_ATTR_UNSPEC,
- NFC_ATTR_DEVICE_INDEX,
- NFC_ATTR_DEVICE_NAME,
- NFC_ATTR_PROTOCOLS,
- NFC_ATTR_TARGET_INDEX,
- NFC_ATTR_TARGET_SENS_RES,
- NFC_ATTR_TARGET_SEL_RES,
- NFC_ATTR_TARGET_NFCID1,
- NFC_ATTR_TARGET_SENSB_RES,
- NFC_ATTR_TARGET_SENSF_RES,
- NFC_ATTR_COMM_MODE,
- NFC_ATTR_RF_MODE,
- NFC_ATTR_DEVICE_POWERED,
-/* private: internal use only */
- __NFC_ATTR_AFTER_LAST
-};
-#define NFC_ATTR_MAX (__NFC_ATTR_AFTER_LAST - 1)
-
-#define NFC_DEVICE_NAME_MAXSIZE 8
-#define NFC_NFCID1_MAXSIZE 10
-#define NFC_SENSB_RES_MAXSIZE 12
-#define NFC_SENSF_RES_MAXSIZE 18
-
-/* NFC protocols */
-#define NFC_PROTO_JEWEL 1
-#define NFC_PROTO_MIFARE 2
-#define NFC_PROTO_FELICA 3
-#define NFC_PROTO_ISO14443 4
-#define NFC_PROTO_NFC_DEP 5
-
-#define NFC_PROTO_MAX 6
-
-/* NFC communication modes */
-#define NFC_COMM_ACTIVE 0
-#define NFC_COMM_PASSIVE 1
-
-/* NFC RF modes */
-#define NFC_RF_INITIATOR 0
-#define NFC_RF_TARGET 1
-
-/* NFC protocols masks used in bitsets */
-#define NFC_PROTO_JEWEL_MASK (1 << NFC_PROTO_JEWEL)
-#define NFC_PROTO_MIFARE_MASK (1 << NFC_PROTO_MIFARE)
-#define NFC_PROTO_FELICA_MASK (1 << NFC_PROTO_FELICA)
-#define NFC_PROTO_ISO14443_MASK (1 << NFC_PROTO_ISO14443)
-#define NFC_PROTO_NFC_DEP_MASK (1 << NFC_PROTO_NFC_DEP)
-
-struct sockaddr_nfc {
- sa_family_t sa_family;
- __u32 dev_idx;
- __u32 target_idx;
- __u32 nfc_protocol;
-};
-
-#define NFC_LLCP_MAX_SERVICE_NAME 63
-struct sockaddr_nfc_llcp {
- sa_family_t sa_family;
- __u32 dev_idx;
- __u32 target_idx;
- __u32 nfc_protocol;
- __u8 dsap; /* Destination SAP, if known */
- __u8 ssap; /* Source SAP to be bound to */
- char service_name[NFC_LLCP_MAX_SERVICE_NAME]; /* Service name URI */;
- size_t service_name_len;
-};
-
-/* NFC socket protocols */
-#define NFC_SOCKPROTO_RAW 0
-#define NFC_SOCKPROTO_LLCP 1
-#define NFC_SOCKPROTO_MAX 2
-
-#define NFC_HEADER_SIZE 1
-
-#endif /*__LINUX_NFC_H */
diff --git a/ANDROID_3.4.5/include/linux/nfc/bcm2079x.h b/ANDROID_3.4.5/include/linux/nfc/bcm2079x.h
deleted file mode 100644
index 689757aa..00000000
--- a/ANDROID_3.4.5/include/linux/nfc/bcm2079x.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (C) 2012 Broadcom Corporation.
- *
- * 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
- */
-
-#ifndef _BCM2079X_H
-#define _BCM2079X_H
-
-#define BCMNFC_MAGIC 0xFA
-
-/*
- * BCMNFC power control via ioctl
- * BCMNFC_POWER_CTL(0): power off
- * BCMNFC_POWER_CTL(1): power on
- * BCMNFC_WAKE_CTL(0): wake off
- * BCMNFC_WAKE_CTL(1): wake on
- */
-#define BCMNFC_POWER_CTL _IO(BCMNFC_MAGIC, 0x01)
-#define BCMNFC_CHANGE_ADDR _IO(BCMNFC_MAGIC, 0x02)
-#define BCMNFC_READ_FULL_PACKET _IO(BCMNFC_MAGIC, 0x03)
-#define BCMNFC_SET_WAKE_ACTIVE_STATE _IO(BCMNFC_MAGIC, 0x04)
-#define BCMNFC_WAKE_CTL _IO(BCMNFC_MAGIC, 0x05)
-#define BCMNFC_READ_MULTI_PACKETS _IO(BCMNFC_MAGIC, 0x06)
-
-struct bcm2079x_platform_data {
- unsigned int irq_gpio;
- unsigned int irq_no;
- unsigned int en_gpio;
- int wake_gpio;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/nfc/pn544.h b/ANDROID_3.4.5/include/linux/nfc/pn544.h
deleted file mode 100644
index 11eb2236..00000000
--- a/ANDROID_3.4.5/include/linux/nfc/pn544.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Driver include for the PN544 NFC chip.
- *
- * Copyright (C) Nokia Corporation
- *
- * Author: Jari Vanhala <ext-jari.vanhala@nokia.com>
- * Contact: Matti Aaltoenn <matti.j.aaltonen@nokia.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.
- *
- * 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
- */
-
-#ifndef _PN544_H_
-#define _PN544_H_
-
-#include <linux/i2c.h>
-
-#define PN544_DRIVER_NAME "pn544"
-#define PN544_MAXWINDOW_SIZE 7
-#define PN544_WINDOW_SIZE 4
-#define PN544_RETRIES 10
-#define PN544_MAX_I2C_TRANSFER 0x0400
-#define PN544_MSG_MAX_SIZE 0x21 /* at normal HCI mode */
-
-
-#define PN544_MAGIC 0xE9
-
-/*
- * PN544 power control via ioctl
- * PN544_SET_PWR(0): power off
- * PN544_SET_PWR(1): power on
- * PN544_SET_PWR(2): reset and power on with firmware download enabled
- */
-#define PN544_SET_PWR _IOW(PN544_MAGIC, 0x01, unsigned int)
-
-
-/* ioctl */
-#define PN544_CHAR_BASE 'P'
-#define PN544_IOR(num, dtype) _IOR(PN544_CHAR_BASE, num, dtype)
-#define PN544_IOW(num, dtype) _IOW(PN544_CHAR_BASE, num, dtype)
-#define PN544_GET_FW_MODE PN544_IOW(1, unsigned int)
-#define PN544_SET_FW_MODE PN544_IOW(2, unsigned int)
-#define PN544_GET_DEBUG PN544_IOW(3, unsigned int)
-#define PN544_SET_DEBUG PN544_IOW(4, unsigned int)
-
-//#define PN544_SET_PWR PN544_IOW(5, unsigned int) //add 2014-7-10
-/* Timing restrictions (ms) */
-#define PN544_RESETVEN_TIME 30 /* 7 */
-#define PN544_PVDDVEN_TIME 0
-#define PN544_VBATVEN_TIME 0
-#define PN544_GPIO4VEN_TIME 0
-#define PN544_WAKEUP_ACK 5
-#define PN544_WAKEUP_GUARD (PN544_WAKEUP_ACK + 1)
-#define PN544_INACTIVITY_TIME 1000
-#define PN544_INTERFRAME_DELAY 200 /* us */
-#define PN544_BAUDRATE_CHANGE 150 /* us */
-
-/* Debug bits */
-#define PN544_DEBUG_BUF 0x01
-#define PN544_DEBUG_READ 0x02
-#define PN544_DEBUG_WRITE 0x04
-#define PN544_DEBUG_IRQ 0x08
-#define PN544_DEBUG_CALLS 0x10
-#define PN544_DEBUG_MODE 0x20
-
-/* Normal (HCI) mode */
-#define PN544_LLC_HCI_OVERHEAD 3 /* header + crc (to length) */
-#define PN544_LLC_MIN_SIZE (1 + PN544_LLC_HCI_OVERHEAD) /* length + */
-#define PN544_LLC_MAX_DATA (PN544_MSG_MAX_SIZE - 2)
-#define PN544_LLC_MAX_HCI_SIZE (PN544_LLC_MAX_DATA - 2)
-
-struct pn544_llc_packet {
- unsigned char length; /* of rest of packet */
- unsigned char header;
- unsigned char data[PN544_LLC_MAX_DATA]; /* includes crc-ccitt */
-};
-
-/* Firmware upgrade mode */
-#define PN544_FW_HEADER_SIZE 3
-/* max fw transfer is 1024bytes, but I2C limits it to 0xC0 */
-#define PN544_MAX_FW_DATA (PN544_MAX_I2C_TRANSFER - PN544_FW_HEADER_SIZE)
-
-struct pn544_fw_packet {
- unsigned char command; /* status in answer */
- unsigned char length[2]; /* big-endian order (msf) */
- unsigned char data[PN544_MAX_FW_DATA];
-};
-
-#ifdef __KERNEL__
-/* board config */
-struct pn544_nfc_platform_data {
- int (*request_resources) (struct i2c_client *client);
- void (*free_resources) (void);
- void (*enable) (int fw);
- int (*test) (void);
- void (*disable) (void);
- int irq_gpio, ven_gpio, firm_gpio;
- //int irq_enable, ven_enable, firm_enable;
- int irq_active, ven_active, firm_active;
-
-};
-#endif /* __KERNEL__ */
-
-#endif /* _PN544_H_ */
diff --git a/ANDROID_3.4.5/include/linux/nfs.h b/ANDROID_3.4.5/include/linux/nfs.h
deleted file mode 100644
index 6d1fb63f..00000000
--- a/ANDROID_3.4.5/include/linux/nfs.h
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * NFS protocol definitions
- *
- * This file contains constants mostly for Version 2 of the protocol,
- * but also has a couple of NFSv3 bits in (notably the error codes).
- */
-#ifndef _LINUX_NFS_H
-#define _LINUX_NFS_H
-
-#define NFS_PROGRAM 100003
-#define NFS_PORT 2049
-#define NFS_MAXDATA 8192
-#define NFS_MAXPATHLEN 1024
-#define NFS_MAXNAMLEN 255
-#define NFS_MAXGROUPS 16
-#define NFS_FHSIZE 32
-#define NFS_COOKIESIZE 4
-#define NFS_FIFO_DEV (-1)
-#define NFSMODE_FMT 0170000
-#define NFSMODE_DIR 0040000
-#define NFSMODE_CHR 0020000
-#define NFSMODE_BLK 0060000
-#define NFSMODE_REG 0100000
-#define NFSMODE_LNK 0120000
-#define NFSMODE_SOCK 0140000
-#define NFSMODE_FIFO 0010000
-
-#define NFS_MNT_PROGRAM 100005
-#define NFS_MNT_VERSION 1
-#define NFS_MNT3_VERSION 3
-
-#define NFS_PIPE_DIRNAME "nfs"
-
-/*
- * NFS stats. The good thing with these values is that NFSv3 errors are
- * a superset of NFSv2 errors (with the exception of NFSERR_WFLUSH which
- * no-one uses anyway), so we can happily mix code as long as we make sure
- * no NFSv3 errors are returned to NFSv2 clients.
- * Error codes that have a `--' in the v2 column are not part of the
- * standard, but seem to be widely used nevertheless.
- */
- enum nfs_stat {
- NFS_OK = 0, /* v2 v3 v4 */
- NFSERR_PERM = 1, /* v2 v3 v4 */
- NFSERR_NOENT = 2, /* v2 v3 v4 */
- NFSERR_IO = 5, /* v2 v3 v4 */
- NFSERR_NXIO = 6, /* v2 v3 v4 */
- NFSERR_EAGAIN = 11, /* v2 v3 */
- NFSERR_ACCES = 13, /* v2 v3 v4 */
- NFSERR_EXIST = 17, /* v2 v3 v4 */
- NFSERR_XDEV = 18, /* v3 v4 */
- NFSERR_NODEV = 19, /* v2 v3 v4 */
- NFSERR_NOTDIR = 20, /* v2 v3 v4 */
- NFSERR_ISDIR = 21, /* v2 v3 v4 */
- NFSERR_INVAL = 22, /* v2 v3 v4 */
- NFSERR_FBIG = 27, /* v2 v3 v4 */
- NFSERR_NOSPC = 28, /* v2 v3 v4 */
- NFSERR_ROFS = 30, /* v2 v3 v4 */
- NFSERR_MLINK = 31, /* v3 v4 */
- NFSERR_OPNOTSUPP = 45, /* v2 v3 */
- NFSERR_NAMETOOLONG = 63, /* v2 v3 v4 */
- NFSERR_NOTEMPTY = 66, /* v2 v3 v4 */
- NFSERR_DQUOT = 69, /* v2 v3 v4 */
- NFSERR_STALE = 70, /* v2 v3 v4 */
- NFSERR_REMOTE = 71, /* v2 v3 */
- NFSERR_WFLUSH = 99, /* v2 */
- NFSERR_BADHANDLE = 10001, /* v3 v4 */
- NFSERR_NOT_SYNC = 10002, /* v3 */
- NFSERR_BAD_COOKIE = 10003, /* v3 v4 */
- NFSERR_NOTSUPP = 10004, /* v3 v4 */
- NFSERR_TOOSMALL = 10005, /* v3 v4 */
- NFSERR_SERVERFAULT = 10006, /* v3 v4 */
- NFSERR_BADTYPE = 10007, /* v3 v4 */
- NFSERR_JUKEBOX = 10008, /* v3 v4 */
- NFSERR_SAME = 10009, /* v4 */
- NFSERR_DENIED = 10010, /* v4 */
- NFSERR_EXPIRED = 10011, /* v4 */
- NFSERR_LOCKED = 10012, /* v4 */
- NFSERR_GRACE = 10013, /* v4 */
- NFSERR_FHEXPIRED = 10014, /* v4 */
- NFSERR_SHARE_DENIED = 10015, /* v4 */
- NFSERR_WRONGSEC = 10016, /* v4 */
- NFSERR_CLID_INUSE = 10017, /* v4 */
- NFSERR_RESOURCE = 10018, /* v4 */
- NFSERR_MOVED = 10019, /* v4 */
- NFSERR_NOFILEHANDLE = 10020, /* v4 */
- NFSERR_MINOR_VERS_MISMATCH = 10021, /* v4 */
- NFSERR_STALE_CLIENTID = 10022, /* v4 */
- NFSERR_STALE_STATEID = 10023, /* v4 */
- NFSERR_OLD_STATEID = 10024, /* v4 */
- NFSERR_BAD_STATEID = 10025, /* v4 */
- NFSERR_BAD_SEQID = 10026, /* v4 */
- NFSERR_NOT_SAME = 10027, /* v4 */
- NFSERR_LOCK_RANGE = 10028, /* v4 */
- NFSERR_SYMLINK = 10029, /* v4 */
- NFSERR_RESTOREFH = 10030, /* v4 */
- NFSERR_LEASE_MOVED = 10031, /* v4 */
- NFSERR_ATTRNOTSUPP = 10032, /* v4 */
- NFSERR_NO_GRACE = 10033, /* v4 */
- NFSERR_RECLAIM_BAD = 10034, /* v4 */
- NFSERR_RECLAIM_CONFLICT = 10035,/* v4 */
- NFSERR_BAD_XDR = 10036, /* v4 */
- NFSERR_LOCKS_HELD = 10037, /* v4 */
- NFSERR_OPENMODE = 10038, /* v4 */
- NFSERR_BADOWNER = 10039, /* v4 */
- NFSERR_BADCHAR = 10040, /* v4 */
- NFSERR_BADNAME = 10041, /* v4 */
- NFSERR_BAD_RANGE = 10042, /* v4 */
- NFSERR_LOCK_NOTSUPP = 10043, /* v4 */
- NFSERR_OP_ILLEGAL = 10044, /* v4 */
- NFSERR_DEADLOCK = 10045, /* v4 */
- NFSERR_FILE_OPEN = 10046, /* v4 */
- NFSERR_ADMIN_REVOKED = 10047, /* v4 */
- NFSERR_CB_PATH_DOWN = 10048, /* v4 */
-};
-
-/* NFSv2 file types - beware, these are not the same in NFSv3 */
-
-enum nfs_ftype {
- NFNON = 0,
- NFREG = 1,
- NFDIR = 2,
- NFBLK = 3,
- NFCHR = 4,
- NFLNK = 5,
- NFSOCK = 6,
- NFBAD = 7,
- NFFIFO = 8
-};
-
-#ifdef __KERNEL__
-#include <linux/sunrpc/msg_prot.h>
-#include <linux/string.h>
-
-/*
- * This is the kernel NFS client file handle representation
- */
-#define NFS_MAXFHSIZE 128
-struct nfs_fh {
- unsigned short size;
- unsigned char data[NFS_MAXFHSIZE];
-};
-
-/*
- * Returns a zero iff the size and data fields match.
- * Checks only "size" bytes in the data field.
- */
-static inline int nfs_compare_fh(const struct nfs_fh *a, const struct nfs_fh *b)
-{
- return a->size != b->size || memcmp(a->data, b->data, a->size) != 0;
-}
-
-static inline void nfs_copy_fh(struct nfs_fh *target, const struct nfs_fh *source)
-{
- target->size = source->size;
- memcpy(target->data, source->data, source->size);
-}
-
-
-/*
- * This is really a general kernel constant, but since nothing like
- * this is defined in the kernel headers, I have to do it here.
- */
-#define NFS_OFFSET_MAX ((__s64)((~(__u64)0) >> 1))
-
-
-enum nfs3_stable_how {
- NFS_UNSTABLE = 0,
- NFS_DATA_SYNC = 1,
- NFS_FILE_SYNC = 2
-};
-#endif /* __KERNEL__ */
-#endif /* _LINUX_NFS_H */
diff --git a/ANDROID_3.4.5/include/linux/nfs2.h b/ANDROID_3.4.5/include/linux/nfs2.h
deleted file mode 100644
index fde24b30..00000000
--- a/ANDROID_3.4.5/include/linux/nfs2.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * NFS protocol definitions
- *
- * This file contains constants for Version 2 of the protocol.
- */
-#ifndef _LINUX_NFS2_H
-#define _LINUX_NFS2_H
-
-#define NFS2_PORT 2049
-#define NFS2_MAXDATA 8192
-#define NFS2_MAXPATHLEN 1024
-#define NFS2_MAXNAMLEN 255
-#define NFS2_MAXGROUPS 16
-#define NFS2_FHSIZE 32
-#define NFS2_COOKIESIZE 4
-#define NFS2_FIFO_DEV (-1)
-#define NFS2MODE_FMT 0170000
-#define NFS2MODE_DIR 0040000
-#define NFS2MODE_CHR 0020000
-#define NFS2MODE_BLK 0060000
-#define NFS2MODE_REG 0100000
-#define NFS2MODE_LNK 0120000
-#define NFS2MODE_SOCK 0140000
-#define NFS2MODE_FIFO 0010000
-
-
-/* NFSv2 file types - beware, these are not the same in NFSv3 */
-enum nfs2_ftype {
- NF2NON = 0,
- NF2REG = 1,
- NF2DIR = 2,
- NF2BLK = 3,
- NF2CHR = 4,
- NF2LNK = 5,
- NF2SOCK = 6,
- NF2BAD = 7,
- NF2FIFO = 8
-};
-
-struct nfs2_fh {
- char data[NFS2_FHSIZE];
-};
-
-/*
- * Procedure numbers for NFSv2
- */
-#define NFS2_VERSION 2
-#define NFSPROC_NULL 0
-#define NFSPROC_GETATTR 1
-#define NFSPROC_SETATTR 2
-#define NFSPROC_ROOT 3
-#define NFSPROC_LOOKUP 4
-#define NFSPROC_READLINK 5
-#define NFSPROC_READ 6
-#define NFSPROC_WRITECACHE 7
-#define NFSPROC_WRITE 8
-#define NFSPROC_CREATE 9
-#define NFSPROC_REMOVE 10
-#define NFSPROC_RENAME 11
-#define NFSPROC_LINK 12
-#define NFSPROC_SYMLINK 13
-#define NFSPROC_MKDIR 14
-#define NFSPROC_RMDIR 15
-#define NFSPROC_READDIR 16
-#define NFSPROC_STATFS 17
-
-#endif /* _LINUX_NFS2_H */
diff --git a/ANDROID_3.4.5/include/linux/nfs3.h b/ANDROID_3.4.5/include/linux/nfs3.h
deleted file mode 100644
index 6ccfe3b6..00000000
--- a/ANDROID_3.4.5/include/linux/nfs3.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * NFSv3 protocol definitions
- */
-#ifndef _LINUX_NFS3_H
-#define _LINUX_NFS3_H
-
-#define NFS3_PORT 2049
-#define NFS3_MAXDATA 32768
-#define NFS3_MAXPATHLEN PATH_MAX
-#define NFS3_MAXNAMLEN NAME_MAX
-#define NFS3_MAXGROUPS 16
-#define NFS3_FHSIZE 64
-#define NFS3_COOKIESIZE 4
-#define NFS3_CREATEVERFSIZE 8
-#define NFS3_COOKIEVERFSIZE 8
-#define NFS3_WRITEVERFSIZE 8
-#define NFS3_FIFO_DEV (-1)
-#define NFS3MODE_FMT 0170000
-#define NFS3MODE_DIR 0040000
-#define NFS3MODE_CHR 0020000
-#define NFS3MODE_BLK 0060000
-#define NFS3MODE_REG 0100000
-#define NFS3MODE_LNK 0120000
-#define NFS3MODE_SOCK 0140000
-#define NFS3MODE_FIFO 0010000
-
-/* Flags for access() call */
-#define NFS3_ACCESS_READ 0x0001
-#define NFS3_ACCESS_LOOKUP 0x0002
-#define NFS3_ACCESS_MODIFY 0x0004
-#define NFS3_ACCESS_EXTEND 0x0008
-#define NFS3_ACCESS_DELETE 0x0010
-#define NFS3_ACCESS_EXECUTE 0x0020
-#define NFS3_ACCESS_FULL 0x003f
-
-/* Flags for create mode */
-enum nfs3_createmode {
- NFS3_CREATE_UNCHECKED = 0,
- NFS3_CREATE_GUARDED = 1,
- NFS3_CREATE_EXCLUSIVE = 2
-};
-
-/* NFSv3 file system properties */
-#define NFS3_FSF_LINK 0x0001
-#define NFS3_FSF_SYMLINK 0x0002
-#define NFS3_FSF_HOMOGENEOUS 0x0008
-#define NFS3_FSF_CANSETTIME 0x0010
-/* Some shorthands. See fs/nfsd/nfs3proc.c */
-#define NFS3_FSF_DEFAULT 0x001B
-#define NFS3_FSF_BILLYBOY 0x0018
-#define NFS3_FSF_READONLY 0x0008
-
-enum nfs3_ftype {
- NF3NON = 0,
- NF3REG = 1,
- NF3DIR = 2,
- NF3BLK = 3,
- NF3CHR = 4,
- NF3LNK = 5,
- NF3SOCK = 6,
- NF3FIFO = 7, /* changed from NFSv2 (was 8) */
- NF3BAD = 8
-};
-
-struct nfs3_fh {
- unsigned short size;
- unsigned char data[NFS3_FHSIZE];
-};
-
-#define NFS3_VERSION 3
-#define NFS3PROC_NULL 0
-#define NFS3PROC_GETATTR 1
-#define NFS3PROC_SETATTR 2
-#define NFS3PROC_LOOKUP 3
-#define NFS3PROC_ACCESS 4
-#define NFS3PROC_READLINK 5
-#define NFS3PROC_READ 6
-#define NFS3PROC_WRITE 7
-#define NFS3PROC_CREATE 8
-#define NFS3PROC_MKDIR 9
-#define NFS3PROC_SYMLINK 10
-#define NFS3PROC_MKNOD 11
-#define NFS3PROC_REMOVE 12
-#define NFS3PROC_RMDIR 13
-#define NFS3PROC_RENAME 14
-#define NFS3PROC_LINK 15
-#define NFS3PROC_READDIR 16
-#define NFS3PROC_READDIRPLUS 17
-#define NFS3PROC_FSSTAT 18
-#define NFS3PROC_FSINFO 19
-#define NFS3PROC_PATHCONF 20
-#define NFS3PROC_COMMIT 21
-
-#define NFS_MNT3_VERSION 3
-
-
-#if defined(__KERNEL__)
-
-/* Number of 32bit words in post_op_attr */
-#define NFS3_POST_OP_ATTR_WORDS 22
-
-#endif /* __KERNEL__ */
-#endif /* _LINUX_NFS3_H */
diff --git a/ANDROID_3.4.5/include/linux/nfs4.h b/ANDROID_3.4.5/include/linux/nfs4.h
deleted file mode 100644
index 0987146b..00000000
--- a/ANDROID_3.4.5/include/linux/nfs4.h
+++ /dev/null
@@ -1,669 +0,0 @@
-/*
- * include/linux/nfs4.h
- *
- * NFSv4 protocol definitions.
- *
- * Copyright (c) 2002 The Regents of the University of Michigan.
- * All rights reserved.
- *
- * Kendrick Smith <kmsmith@umich.edu>
- * Andy Adamson <andros@umich.edu>
- */
-
-#ifndef _LINUX_NFS4_H
-#define _LINUX_NFS4_H
-
-#include <linux/types.h>
-
-#define NFS4_BITMAP_SIZE 2
-#define NFS4_VERIFIER_SIZE 8
-#define NFS4_STATEID_SEQID_SIZE 4
-#define NFS4_STATEID_OTHER_SIZE 12
-#define NFS4_STATEID_SIZE (NFS4_STATEID_SEQID_SIZE + NFS4_STATEID_OTHER_SIZE)
-#define NFS4_FHSIZE 128
-#define NFS4_MAXPATHLEN PATH_MAX
-#define NFS4_MAXNAMLEN NAME_MAX
-#define NFS4_OPAQUE_LIMIT 1024
-#define NFS4_MAX_SESSIONID_LEN 16
-
-#define NFS4_ACCESS_READ 0x0001
-#define NFS4_ACCESS_LOOKUP 0x0002
-#define NFS4_ACCESS_MODIFY 0x0004
-#define NFS4_ACCESS_EXTEND 0x0008
-#define NFS4_ACCESS_DELETE 0x0010
-#define NFS4_ACCESS_EXECUTE 0x0020
-
-#define NFS4_FH_PERSISTENT 0x0000
-#define NFS4_FH_NOEXPIRE_WITH_OPEN 0x0001
-#define NFS4_FH_VOLATILE_ANY 0x0002
-#define NFS4_FH_VOL_MIGRATION 0x0004
-#define NFS4_FH_VOL_RENAME 0x0008
-
-#define NFS4_OPEN_RESULT_CONFIRM 0x0002
-#define NFS4_OPEN_RESULT_LOCKTYPE_POSIX 0x0004
-
-#define NFS4_SHARE_ACCESS_MASK 0x000F
-#define NFS4_SHARE_ACCESS_READ 0x0001
-#define NFS4_SHARE_ACCESS_WRITE 0x0002
-#define NFS4_SHARE_ACCESS_BOTH 0x0003
-#define NFS4_SHARE_DENY_READ 0x0001
-#define NFS4_SHARE_DENY_WRITE 0x0002
-#define NFS4_SHARE_DENY_BOTH 0x0003
-
-/* nfs41 */
-#define NFS4_SHARE_WANT_MASK 0xFF00
-#define NFS4_SHARE_WANT_NO_PREFERENCE 0x0000
-#define NFS4_SHARE_WANT_READ_DELEG 0x0100
-#define NFS4_SHARE_WANT_WRITE_DELEG 0x0200
-#define NFS4_SHARE_WANT_ANY_DELEG 0x0300
-#define NFS4_SHARE_WANT_NO_DELEG 0x0400
-#define NFS4_SHARE_WANT_CANCEL 0x0500
-
-#define NFS4_SHARE_WHEN_MASK 0xF0000
-#define NFS4_SHARE_SIGNAL_DELEG_WHEN_RESRC_AVAIL 0x10000
-#define NFS4_SHARE_PUSH_DELEG_WHEN_UNCONTENDED 0x20000
-
-#define NFS4_CDFC4_FORE 0x1
-#define NFS4_CDFC4_BACK 0x2
-#define NFS4_CDFC4_BOTH 0x3
-#define NFS4_CDFC4_FORE_OR_BOTH 0x3
-#define NFS4_CDFC4_BACK_OR_BOTH 0x7
-
-#define NFS4_SET_TO_SERVER_TIME 0
-#define NFS4_SET_TO_CLIENT_TIME 1
-
-#define NFS4_ACE_ACCESS_ALLOWED_ACE_TYPE 0
-#define NFS4_ACE_ACCESS_DENIED_ACE_TYPE 1
-#define NFS4_ACE_SYSTEM_AUDIT_ACE_TYPE 2
-#define NFS4_ACE_SYSTEM_ALARM_ACE_TYPE 3
-
-#define ACL4_SUPPORT_ALLOW_ACL 0x01
-#define ACL4_SUPPORT_DENY_ACL 0x02
-#define ACL4_SUPPORT_AUDIT_ACL 0x04
-#define ACL4_SUPPORT_ALARM_ACL 0x08
-
-#define NFS4_ACE_FILE_INHERIT_ACE 0x00000001
-#define NFS4_ACE_DIRECTORY_INHERIT_ACE 0x00000002
-#define NFS4_ACE_NO_PROPAGATE_INHERIT_ACE 0x00000004
-#define NFS4_ACE_INHERIT_ONLY_ACE 0x00000008
-#define NFS4_ACE_SUCCESSFUL_ACCESS_ACE_FLAG 0x00000010
-#define NFS4_ACE_FAILED_ACCESS_ACE_FLAG 0x00000020
-#define NFS4_ACE_IDENTIFIER_GROUP 0x00000040
-
-#define NFS4_ACE_READ_DATA 0x00000001
-#define NFS4_ACE_LIST_DIRECTORY 0x00000001
-#define NFS4_ACE_WRITE_DATA 0x00000002
-#define NFS4_ACE_ADD_FILE 0x00000002
-#define NFS4_ACE_APPEND_DATA 0x00000004
-#define NFS4_ACE_ADD_SUBDIRECTORY 0x00000004
-#define NFS4_ACE_READ_NAMED_ATTRS 0x00000008
-#define NFS4_ACE_WRITE_NAMED_ATTRS 0x00000010
-#define NFS4_ACE_EXECUTE 0x00000020
-#define NFS4_ACE_DELETE_CHILD 0x00000040
-#define NFS4_ACE_READ_ATTRIBUTES 0x00000080
-#define NFS4_ACE_WRITE_ATTRIBUTES 0x00000100
-#define NFS4_ACE_DELETE 0x00010000
-#define NFS4_ACE_READ_ACL 0x00020000
-#define NFS4_ACE_WRITE_ACL 0x00040000
-#define NFS4_ACE_WRITE_OWNER 0x00080000
-#define NFS4_ACE_SYNCHRONIZE 0x00100000
-#define NFS4_ACE_GENERIC_READ 0x00120081
-#define NFS4_ACE_GENERIC_WRITE 0x00160106
-#define NFS4_ACE_GENERIC_EXECUTE 0x001200A0
-#define NFS4_ACE_MASK_ALL 0x001F01FF
-
-#define EXCHGID4_FLAG_SUPP_MOVED_REFER 0x00000001
-#define EXCHGID4_FLAG_SUPP_MOVED_MIGR 0x00000002
-#define EXCHGID4_FLAG_BIND_PRINC_STATEID 0x00000100
-
-#define EXCHGID4_FLAG_USE_NON_PNFS 0x00010000
-#define EXCHGID4_FLAG_USE_PNFS_MDS 0x00020000
-#define EXCHGID4_FLAG_USE_PNFS_DS 0x00040000
-#define EXCHGID4_FLAG_MASK_PNFS 0x00070000
-
-#define EXCHGID4_FLAG_UPD_CONFIRMED_REC_A 0x40000000
-#define EXCHGID4_FLAG_CONFIRMED_R 0x80000000
-/*
- * Since the validity of these bits depends on whether
- * they're set in the argument or response, have separate
- * invalid flag masks for arg (_A) and resp (_R).
- */
-#define EXCHGID4_FLAG_MASK_A 0x40070103
-#define EXCHGID4_FLAG_MASK_R 0x80070103
-
-#define SEQ4_STATUS_CB_PATH_DOWN 0x00000001
-#define SEQ4_STATUS_CB_GSS_CONTEXTS_EXPIRING 0x00000002
-#define SEQ4_STATUS_CB_GSS_CONTEXTS_EXPIRED 0x00000004
-#define SEQ4_STATUS_EXPIRED_ALL_STATE_REVOKED 0x00000008
-#define SEQ4_STATUS_EXPIRED_SOME_STATE_REVOKED 0x00000010
-#define SEQ4_STATUS_ADMIN_STATE_REVOKED 0x00000020
-#define SEQ4_STATUS_RECALLABLE_STATE_REVOKED 0x00000040
-#define SEQ4_STATUS_LEASE_MOVED 0x00000080
-#define SEQ4_STATUS_RESTART_RECLAIM_NEEDED 0x00000100
-#define SEQ4_STATUS_CB_PATH_DOWN_SESSION 0x00000200
-#define SEQ4_STATUS_BACKCHANNEL_FAULT 0x00000400
-
-#define NFS4_SECINFO_STYLE4_CURRENT_FH 0
-#define NFS4_SECINFO_STYLE4_PARENT 1
-
-#define NFS4_MAX_UINT64 (~(u64)0)
-
-/* An NFS4 sessions server must support at least NFS4_MAX_OPS operations.
- * If a compound requires more operations, adjust NFS4_MAX_OPS accordingly.
- */
-#define NFS4_MAX_OPS 8
-
-/* Our NFS4 client back channel server only wants the cb_sequene and the
- * actual operation per compound
- */
-#define NFS4_MAX_BACK_CHANNEL_OPS 2
-
-enum nfs4_acl_whotype {
- NFS4_ACL_WHO_NAMED = 0,
- NFS4_ACL_WHO_OWNER,
- NFS4_ACL_WHO_GROUP,
- NFS4_ACL_WHO_EVERYONE,
-};
-
-#ifdef __KERNEL__
-#include <linux/list.h>
-
-struct nfs4_ace {
- uint32_t type;
- uint32_t flag;
- uint32_t access_mask;
- int whotype;
- uid_t who;
-};
-
-struct nfs4_acl {
- uint32_t naces;
- struct nfs4_ace aces[0];
-};
-
-typedef struct { char data[NFS4_VERIFIER_SIZE]; } nfs4_verifier;
-
-struct nfs_stateid4 {
- __be32 seqid;
- char other[NFS4_STATEID_OTHER_SIZE];
-} __attribute__ ((packed));
-
-typedef struct nfs_stateid4 nfs4_stateid;
-
-enum nfs_opnum4 {
- OP_ACCESS = 3,
- OP_CLOSE = 4,
- OP_COMMIT = 5,
- OP_CREATE = 6,
- OP_DELEGPURGE = 7,
- OP_DELEGRETURN = 8,
- OP_GETATTR = 9,
- OP_GETFH = 10,
- OP_LINK = 11,
- OP_LOCK = 12,
- OP_LOCKT = 13,
- OP_LOCKU = 14,
- OP_LOOKUP = 15,
- OP_LOOKUPP = 16,
- OP_NVERIFY = 17,
- OP_OPEN = 18,
- OP_OPENATTR = 19,
- OP_OPEN_CONFIRM = 20,
- OP_OPEN_DOWNGRADE = 21,
- OP_PUTFH = 22,
- OP_PUTPUBFH = 23,
- OP_PUTROOTFH = 24,
- OP_READ = 25,
- OP_READDIR = 26,
- OP_READLINK = 27,
- OP_REMOVE = 28,
- OP_RENAME = 29,
- OP_RENEW = 30,
- OP_RESTOREFH = 31,
- OP_SAVEFH = 32,
- OP_SECINFO = 33,
- OP_SETATTR = 34,
- OP_SETCLIENTID = 35,
- OP_SETCLIENTID_CONFIRM = 36,
- OP_VERIFY = 37,
- OP_WRITE = 38,
- OP_RELEASE_LOCKOWNER = 39,
-
- /* nfs41 */
- OP_BACKCHANNEL_CTL = 40,
- OP_BIND_CONN_TO_SESSION = 41,
- OP_EXCHANGE_ID = 42,
- OP_CREATE_SESSION = 43,
- OP_DESTROY_SESSION = 44,
- OP_FREE_STATEID = 45,
- OP_GET_DIR_DELEGATION = 46,
- OP_GETDEVICEINFO = 47,
- OP_GETDEVICELIST = 48,
- OP_LAYOUTCOMMIT = 49,
- OP_LAYOUTGET = 50,
- OP_LAYOUTRETURN = 51,
- OP_SECINFO_NO_NAME = 52,
- OP_SEQUENCE = 53,
- OP_SET_SSV = 54,
- OP_TEST_STATEID = 55,
- OP_WANT_DELEGATION = 56,
- OP_DESTROY_CLIENTID = 57,
- OP_RECLAIM_COMPLETE = 58,
-
- OP_ILLEGAL = 10044,
-};
-
-/*Defining first and last NFS4 operations implemented.
-Needs to be updated if more operations are defined in future.*/
-
-#define FIRST_NFS4_OP OP_ACCESS
-#define LAST_NFS4_OP OP_RECLAIM_COMPLETE
-
-enum nfsstat4 {
- NFS4_OK = 0,
- NFS4ERR_PERM = 1,
- NFS4ERR_NOENT = 2,
- NFS4ERR_IO = 5,
- NFS4ERR_NXIO = 6,
- NFS4ERR_ACCESS = 13,
- NFS4ERR_EXIST = 17,
- NFS4ERR_XDEV = 18,
- /* Unused/reserved 19 */
- NFS4ERR_NOTDIR = 20,
- NFS4ERR_ISDIR = 21,
- NFS4ERR_INVAL = 22,
- NFS4ERR_FBIG = 27,
- NFS4ERR_NOSPC = 28,
- NFS4ERR_ROFS = 30,
- NFS4ERR_MLINK = 31,
- NFS4ERR_NAMETOOLONG = 63,
- NFS4ERR_NOTEMPTY = 66,
- NFS4ERR_DQUOT = 69,
- NFS4ERR_STALE = 70,
- NFS4ERR_BADHANDLE = 10001,
- NFS4ERR_BAD_COOKIE = 10003,
- NFS4ERR_NOTSUPP = 10004,
- NFS4ERR_TOOSMALL = 10005,
- NFS4ERR_SERVERFAULT = 10006,
- NFS4ERR_BADTYPE = 10007,
- NFS4ERR_DELAY = 10008,
- NFS4ERR_SAME = 10009,
- NFS4ERR_DENIED = 10010,
- NFS4ERR_EXPIRED = 10011,
- NFS4ERR_LOCKED = 10012,
- NFS4ERR_GRACE = 10013,
- NFS4ERR_FHEXPIRED = 10014,
- NFS4ERR_SHARE_DENIED = 10015,
- NFS4ERR_WRONGSEC = 10016,
- NFS4ERR_CLID_INUSE = 10017,
- NFS4ERR_RESOURCE = 10018,
- NFS4ERR_MOVED = 10019,
- NFS4ERR_NOFILEHANDLE = 10020,
- NFS4ERR_MINOR_VERS_MISMATCH = 10021,
- NFS4ERR_STALE_CLIENTID = 10022,
- NFS4ERR_STALE_STATEID = 10023,
- NFS4ERR_OLD_STATEID = 10024,
- NFS4ERR_BAD_STATEID = 10025,
- NFS4ERR_BAD_SEQID = 10026,
- NFS4ERR_NOT_SAME = 10027,
- NFS4ERR_LOCK_RANGE = 10028,
- NFS4ERR_SYMLINK = 10029,
- NFS4ERR_RESTOREFH = 10030,
- NFS4ERR_LEASE_MOVED = 10031,
- NFS4ERR_ATTRNOTSUPP = 10032,
- NFS4ERR_NO_GRACE = 10033,
- NFS4ERR_RECLAIM_BAD = 10034,
- NFS4ERR_RECLAIM_CONFLICT = 10035,
- NFS4ERR_BADXDR = 10036,
- NFS4ERR_LOCKS_HELD = 10037,
- NFS4ERR_OPENMODE = 10038,
- NFS4ERR_BADOWNER = 10039,
- NFS4ERR_BADCHAR = 10040,
- NFS4ERR_BADNAME = 10041,
- NFS4ERR_BAD_RANGE = 10042,
- NFS4ERR_LOCK_NOTSUPP = 10043,
- NFS4ERR_OP_ILLEGAL = 10044,
- NFS4ERR_DEADLOCK = 10045,
- NFS4ERR_FILE_OPEN = 10046,
- NFS4ERR_ADMIN_REVOKED = 10047,
- NFS4ERR_CB_PATH_DOWN = 10048,
-
- /* nfs41 */
- NFS4ERR_BADIOMODE = 10049,
- NFS4ERR_BADLAYOUT = 10050,
- NFS4ERR_BAD_SESSION_DIGEST = 10051,
- NFS4ERR_BADSESSION = 10052,
- NFS4ERR_BADSLOT = 10053,
- NFS4ERR_COMPLETE_ALREADY = 10054,
- NFS4ERR_CONN_NOT_BOUND_TO_SESSION = 10055,
- NFS4ERR_DELEG_ALREADY_WANTED = 10056,
- NFS4ERR_BACK_CHAN_BUSY = 10057, /* backchan reqs outstanding */
- NFS4ERR_LAYOUTTRYLATER = 10058,
- NFS4ERR_LAYOUTUNAVAILABLE = 10059,
- NFS4ERR_NOMATCHING_LAYOUT = 10060,
- NFS4ERR_RECALLCONFLICT = 10061,
- NFS4ERR_UNKNOWN_LAYOUTTYPE = 10062,
- NFS4ERR_SEQ_MISORDERED = 10063, /* unexpected seq.id in req */
- NFS4ERR_SEQUENCE_POS = 10064, /* [CB_]SEQ. op not 1st op */
- NFS4ERR_REQ_TOO_BIG = 10065, /* request too big */
- NFS4ERR_REP_TOO_BIG = 10066, /* reply too big */
- NFS4ERR_REP_TOO_BIG_TO_CACHE = 10067, /* rep. not all cached */
- NFS4ERR_RETRY_UNCACHED_REP = 10068, /* retry & rep. uncached */
- NFS4ERR_UNSAFE_COMPOUND = 10069, /* retry/recovery too hard */
- NFS4ERR_TOO_MANY_OPS = 10070, /* too many ops in [CB_]COMP */
- NFS4ERR_OP_NOT_IN_SESSION = 10071, /* op needs [CB_]SEQ. op */
- NFS4ERR_HASH_ALG_UNSUPP = 10072, /* hash alg. not supp. */
- /* Error 10073 is unused. */
- NFS4ERR_CLIENTID_BUSY = 10074, /* clientid has state */
- NFS4ERR_PNFS_IO_HOLE = 10075, /* IO to _SPARSE file hole */
- NFS4ERR_SEQ_FALSE_RETRY = 10076, /* retry not original */
- NFS4ERR_BAD_HIGH_SLOT = 10077, /* sequence arg bad */
- NFS4ERR_DEADSESSION = 10078, /* persistent session dead */
- NFS4ERR_ENCR_ALG_UNSUPP = 10079, /* SSV alg mismatch */
- NFS4ERR_PNFS_NO_LAYOUT = 10080, /* direct I/O with no layout */
- NFS4ERR_NOT_ONLY_OP = 10081, /* bad compound */
- NFS4ERR_WRONG_CRED = 10082, /* permissions:state change */
- NFS4ERR_WRONG_TYPE = 10083, /* current operation mismatch */
- NFS4ERR_DIRDELEG_UNAVAIL = 10084, /* no directory delegation */
- NFS4ERR_REJECT_DELEG = 10085, /* on callback */
- NFS4ERR_RETURNCONFLICT = 10086, /* outstanding layoutreturn */
- NFS4ERR_DELEG_REVOKED = 10087, /* deleg./layout revoked */
-};
-
-static inline bool seqid_mutating_err(u32 err)
-{
- /* rfc 3530 section 8.1.5: */
- switch (err) {
- case NFS4ERR_STALE_CLIENTID:
- case NFS4ERR_STALE_STATEID:
- case NFS4ERR_BAD_STATEID:
- case NFS4ERR_BAD_SEQID:
- case NFS4ERR_BADXDR:
- case NFS4ERR_RESOURCE:
- case NFS4ERR_NOFILEHANDLE:
- return false;
- };
- return true;
-}
-
-/*
- * Note: NF4BAD is not actually part of the protocol; it is just used
- * internally by nfsd.
- */
-enum nfs_ftype4 {
- NF4BAD = 0,
- NF4REG = 1, /* Regular File */
- NF4DIR = 2, /* Directory */
- NF4BLK = 3, /* Special File - block device */
- NF4CHR = 4, /* Special File - character device */
- NF4LNK = 5, /* Symbolic Link */
- NF4SOCK = 6, /* Special File - socket */
- NF4FIFO = 7, /* Special File - fifo */
- NF4ATTRDIR = 8, /* Attribute Directory */
- NF4NAMEDATTR = 9 /* Named Attribute */
-};
-
-enum open_claim_type4 {
- NFS4_OPEN_CLAIM_NULL = 0,
- NFS4_OPEN_CLAIM_PREVIOUS = 1,
- NFS4_OPEN_CLAIM_DELEGATE_CUR = 2,
- NFS4_OPEN_CLAIM_DELEGATE_PREV = 3,
- NFS4_OPEN_CLAIM_FH = 4, /* 4.1 */
- NFS4_OPEN_CLAIM_DELEG_CUR_FH = 5, /* 4.1 */
- NFS4_OPEN_CLAIM_DELEG_PREV_FH = 6, /* 4.1 */
-};
-
-enum opentype4 {
- NFS4_OPEN_NOCREATE = 0,
- NFS4_OPEN_CREATE = 1
-};
-
-enum createmode4 {
- NFS4_CREATE_UNCHECKED = 0,
- NFS4_CREATE_GUARDED = 1,
- NFS4_CREATE_EXCLUSIVE = 2,
- /*
- * New to NFSv4.1. If session is persistent,
- * GUARDED4 MUST be used. Otherwise, use
- * EXCLUSIVE4_1 instead of EXCLUSIVE4.
- */
- NFS4_CREATE_EXCLUSIVE4_1 = 3
-};
-
-enum limit_by4 {
- NFS4_LIMIT_SIZE = 1,
- NFS4_LIMIT_BLOCKS = 2
-};
-
-enum open_delegation_type4 {
- NFS4_OPEN_DELEGATE_NONE = 0,
- NFS4_OPEN_DELEGATE_READ = 1,
- NFS4_OPEN_DELEGATE_WRITE = 2,
- NFS4_OPEN_DELEGATE_NONE_EXT = 3, /* 4.1 */
-};
-
-enum why_no_delegation4 { /* new to v4.1 */
- WND4_NOT_WANTED = 0,
- WND4_CONTENTION = 1,
- WND4_RESOURCE = 2,
- WND4_NOT_SUPP_FTYPE = 3,
- WND4_WRITE_DELEG_NOT_SUPP_FTYPE = 4,
- WND4_NOT_SUPP_UPGRADE = 5,
- WND4_NOT_SUPP_DOWNGRADE = 6,
- WND4_CANCELLED = 7,
- WND4_IS_DIR = 8,
-};
-
-enum lock_type4 {
- NFS4_UNLOCK_LT = 0,
- NFS4_READ_LT = 1,
- NFS4_WRITE_LT = 2,
- NFS4_READW_LT = 3,
- NFS4_WRITEW_LT = 4
-};
-
-
-/* Mandatory Attributes */
-#define FATTR4_WORD0_SUPPORTED_ATTRS (1UL << 0)
-#define FATTR4_WORD0_TYPE (1UL << 1)
-#define FATTR4_WORD0_FH_EXPIRE_TYPE (1UL << 2)
-#define FATTR4_WORD0_CHANGE (1UL << 3)
-#define FATTR4_WORD0_SIZE (1UL << 4)
-#define FATTR4_WORD0_LINK_SUPPORT (1UL << 5)
-#define FATTR4_WORD0_SYMLINK_SUPPORT (1UL << 6)
-#define FATTR4_WORD0_NAMED_ATTR (1UL << 7)
-#define FATTR4_WORD0_FSID (1UL << 8)
-#define FATTR4_WORD0_UNIQUE_HANDLES (1UL << 9)
-#define FATTR4_WORD0_LEASE_TIME (1UL << 10)
-#define FATTR4_WORD0_RDATTR_ERROR (1UL << 11)
-/* Mandatory in NFSv4.1 */
-#define FATTR4_WORD2_SUPPATTR_EXCLCREAT (1UL << 11)
-
-/* Recommended Attributes */
-#define FATTR4_WORD0_ACL (1UL << 12)
-#define FATTR4_WORD0_ACLSUPPORT (1UL << 13)
-#define FATTR4_WORD0_ARCHIVE (1UL << 14)
-#define FATTR4_WORD0_CANSETTIME (1UL << 15)
-#define FATTR4_WORD0_CASE_INSENSITIVE (1UL << 16)
-#define FATTR4_WORD0_CASE_PRESERVING (1UL << 17)
-#define FATTR4_WORD0_CHOWN_RESTRICTED (1UL << 18)
-#define FATTR4_WORD0_FILEHANDLE (1UL << 19)
-#define FATTR4_WORD0_FILEID (1UL << 20)
-#define FATTR4_WORD0_FILES_AVAIL (1UL << 21)
-#define FATTR4_WORD0_FILES_FREE (1UL << 22)
-#define FATTR4_WORD0_FILES_TOTAL (1UL << 23)
-#define FATTR4_WORD0_FS_LOCATIONS (1UL << 24)
-#define FATTR4_WORD0_HIDDEN (1UL << 25)
-#define FATTR4_WORD0_HOMOGENEOUS (1UL << 26)
-#define FATTR4_WORD0_MAXFILESIZE (1UL << 27)
-#define FATTR4_WORD0_MAXLINK (1UL << 28)
-#define FATTR4_WORD0_MAXNAME (1UL << 29)
-#define FATTR4_WORD0_MAXREAD (1UL << 30)
-#define FATTR4_WORD0_MAXWRITE (1UL << 31)
-#define FATTR4_WORD1_MIMETYPE (1UL << 0)
-#define FATTR4_WORD1_MODE (1UL << 1)
-#define FATTR4_WORD1_NO_TRUNC (1UL << 2)
-#define FATTR4_WORD1_NUMLINKS (1UL << 3)
-#define FATTR4_WORD1_OWNER (1UL << 4)
-#define FATTR4_WORD1_OWNER_GROUP (1UL << 5)
-#define FATTR4_WORD1_QUOTA_HARD (1UL << 6)
-#define FATTR4_WORD1_QUOTA_SOFT (1UL << 7)
-#define FATTR4_WORD1_QUOTA_USED (1UL << 8)
-#define FATTR4_WORD1_RAWDEV (1UL << 9)
-#define FATTR4_WORD1_SPACE_AVAIL (1UL << 10)
-#define FATTR4_WORD1_SPACE_FREE (1UL << 11)
-#define FATTR4_WORD1_SPACE_TOTAL (1UL << 12)
-#define FATTR4_WORD1_SPACE_USED (1UL << 13)
-#define FATTR4_WORD1_SYSTEM (1UL << 14)
-#define FATTR4_WORD1_TIME_ACCESS (1UL << 15)
-#define FATTR4_WORD1_TIME_ACCESS_SET (1UL << 16)
-#define FATTR4_WORD1_TIME_BACKUP (1UL << 17)
-#define FATTR4_WORD1_TIME_CREATE (1UL << 18)
-#define FATTR4_WORD1_TIME_DELTA (1UL << 19)
-#define FATTR4_WORD1_TIME_METADATA (1UL << 20)
-#define FATTR4_WORD1_TIME_MODIFY (1UL << 21)
-#define FATTR4_WORD1_TIME_MODIFY_SET (1UL << 22)
-#define FATTR4_WORD1_MOUNTED_ON_FILEID (1UL << 23)
-#define FATTR4_WORD1_FS_LAYOUT_TYPES (1UL << 30)
-#define FATTR4_WORD2_LAYOUT_BLKSIZE (1UL << 1)
-
-#define NFSPROC4_NULL 0
-#define NFSPROC4_COMPOUND 1
-#define NFS4_VERSION 4
-#define NFS4_MINOR_VERSION 0
-
-#if defined(CONFIG_NFS_V4_1)
-#define NFS4_MAX_MINOR_VERSION 1
-#else
-#define NFS4_MAX_MINOR_VERSION 0
-#endif /* CONFIG_NFS_V4_1 */
-
-#define NFS4_DEBUG 1
-
-/* Index of predefined Linux client operations */
-
-enum {
- NFSPROC4_CLNT_NULL = 0, /* Unused */
- NFSPROC4_CLNT_READ,
- NFSPROC4_CLNT_WRITE,
- NFSPROC4_CLNT_COMMIT,
- NFSPROC4_CLNT_OPEN,
- NFSPROC4_CLNT_OPEN_CONFIRM,
- NFSPROC4_CLNT_OPEN_NOATTR,
- NFSPROC4_CLNT_OPEN_DOWNGRADE,
- NFSPROC4_CLNT_CLOSE,
- NFSPROC4_CLNT_SETATTR,
- NFSPROC4_CLNT_FSINFO,
- NFSPROC4_CLNT_RENEW,
- NFSPROC4_CLNT_SETCLIENTID,
- NFSPROC4_CLNT_SETCLIENTID_CONFIRM,
- NFSPROC4_CLNT_LOCK,
- NFSPROC4_CLNT_LOCKT,
- NFSPROC4_CLNT_LOCKU,
- NFSPROC4_CLNT_ACCESS,
- NFSPROC4_CLNT_GETATTR,
- NFSPROC4_CLNT_LOOKUP,
- NFSPROC4_CLNT_LOOKUP_ROOT,
- NFSPROC4_CLNT_REMOVE,
- NFSPROC4_CLNT_RENAME,
- NFSPROC4_CLNT_LINK,
- NFSPROC4_CLNT_SYMLINK,
- NFSPROC4_CLNT_CREATE,
- NFSPROC4_CLNT_PATHCONF,
- NFSPROC4_CLNT_STATFS,
- NFSPROC4_CLNT_READLINK,
- NFSPROC4_CLNT_READDIR,
- NFSPROC4_CLNT_SERVER_CAPS,
- NFSPROC4_CLNT_DELEGRETURN,
- NFSPROC4_CLNT_GETACL,
- NFSPROC4_CLNT_SETACL,
- NFSPROC4_CLNT_FS_LOCATIONS,
- NFSPROC4_CLNT_RELEASE_LOCKOWNER,
- NFSPROC4_CLNT_SECINFO,
-
- /* nfs41 */
- NFSPROC4_CLNT_EXCHANGE_ID,
- NFSPROC4_CLNT_CREATE_SESSION,
- NFSPROC4_CLNT_DESTROY_SESSION,
- NFSPROC4_CLNT_SEQUENCE,
- NFSPROC4_CLNT_GET_LEASE_TIME,
- NFSPROC4_CLNT_RECLAIM_COMPLETE,
- NFSPROC4_CLNT_LAYOUTGET,
- NFSPROC4_CLNT_GETDEVICEINFO,
- NFSPROC4_CLNT_LAYOUTCOMMIT,
- NFSPROC4_CLNT_LAYOUTRETURN,
- NFSPROC4_CLNT_SECINFO_NO_NAME,
- NFSPROC4_CLNT_TEST_STATEID,
- NFSPROC4_CLNT_FREE_STATEID,
- NFSPROC4_CLNT_GETDEVICELIST,
-};
-
-/* nfs41 types */
-struct nfs4_sessionid {
- unsigned char data[NFS4_MAX_SESSIONID_LEN];
-};
-
-/* Create Session Flags */
-#define SESSION4_PERSIST 0x001
-#define SESSION4_BACK_CHAN 0x002
-#define SESSION4_RDMA 0x004
-
-#define SESSION4_FLAG_MASK_A 0x007
-
-enum state_protect_how4 {
- SP4_NONE = 0,
- SP4_MACH_CRED = 1,
- SP4_SSV = 2
-};
-
-enum pnfs_layouttype {
- LAYOUT_NFSV4_1_FILES = 1,
- LAYOUT_OSD2_OBJECTS = 2,
- LAYOUT_BLOCK_VOLUME = 3,
-};
-
-/* used for both layout return and recall */
-enum pnfs_layoutreturn_type {
- RETURN_FILE = 1,
- RETURN_FSID = 2,
- RETURN_ALL = 3
-};
-
-enum pnfs_iomode {
- IOMODE_READ = 1,
- IOMODE_RW = 2,
- IOMODE_ANY = 3,
-};
-
-enum pnfs_notify_deviceid_type4 {
- NOTIFY_DEVICEID4_CHANGE = 1 << 1,
- NOTIFY_DEVICEID4_DELETE = 1 << 2,
-};
-
-#define NFL4_UFLG_MASK 0x0000003F
-#define NFL4_UFLG_DENSE 0x00000001
-#define NFL4_UFLG_COMMIT_THRU_MDS 0x00000002
-#define NFL4_UFLG_STRIPE_UNIT_SIZE_MASK 0xFFFFFFC0
-
-/* Encoded in the loh_body field of type layouthint4 */
-enum filelayout_hint_care4 {
- NFLH4_CARE_DENSE = NFL4_UFLG_DENSE,
- NFLH4_CARE_COMMIT_THRU_MDS = NFL4_UFLG_COMMIT_THRU_MDS,
- NFLH4_CARE_STRIPE_UNIT_SIZE = 0x00000040,
- NFLH4_CARE_STRIPE_COUNT = 0x00000080
-};
-
-#define NFS4_DEVICEID4_SIZE 16
-
-struct nfs4_deviceid {
- char data[NFS4_DEVICEID4_SIZE];
-};
-
-#endif
-#endif
-
-/*
- * Local variables:
- * c-basic-offset: 8
- * End:
- */
diff --git a/ANDROID_3.4.5/include/linux/nfs4_mount.h b/ANDROID_3.4.5/include/linux/nfs4_mount.h
deleted file mode 100644
index a0dcf665..00000000
--- a/ANDROID_3.4.5/include/linux/nfs4_mount.h
+++ /dev/null
@@ -1,71 +0,0 @@
-#ifndef _LINUX_NFS4_MOUNT_H
-#define _LINUX_NFS4_MOUNT_H
-
-/*
- * linux/include/linux/nfs4_mount.h
- *
- * Copyright (C) 2002 Trond Myklebust
- *
- * structure passed from user-space to kernel-space during an nfsv4 mount
- */
-
-/*
- * WARNING! Do not delete or change the order of these fields. If
- * a new field is required then add it to the end. The version field
- * tracks which fields are present. This will ensure some measure of
- * mount-to-kernel version compatibility. Some of these aren't used yet
- * but here they are anyway.
- */
-#define NFS4_MOUNT_VERSION 1
-
-struct nfs_string {
- unsigned int len;
- const char __user * data;
-};
-
-struct nfs4_mount_data {
- int version; /* 1 */
- int flags; /* 1 */
- int rsize; /* 1 */
- int wsize; /* 1 */
- int timeo; /* 1 */
- int retrans; /* 1 */
- int acregmin; /* 1 */
- int acregmax; /* 1 */
- int acdirmin; /* 1 */
- int acdirmax; /* 1 */
-
- /* see the definition of 'struct clientaddr4' in RFC3010 */
- struct nfs_string client_addr; /* 1 */
-
- /* Mount path */
- struct nfs_string mnt_path; /* 1 */
-
- /* Server details */
- struct nfs_string hostname; /* 1 */
- /* Server IP address */
- unsigned int host_addrlen; /* 1 */
- struct sockaddr __user * host_addr; /* 1 */
-
- /* Transport protocol to use */
- int proto; /* 1 */
-
- /* Pseudo-flavours to use for authentication. See RFC2623 */
- int auth_flavourlen; /* 1 */
- int __user *auth_flavours; /* 1 */
-};
-
-/* bits in the flags field */
-/* Note: the fields that correspond to existing NFSv2/v3 mount options
- * should mirror the values from include/linux/nfs_mount.h
- */
-
-#define NFS4_MOUNT_SOFT 0x0001 /* 1 */
-#define NFS4_MOUNT_INTR 0x0002 /* 1 */
-#define NFS4_MOUNT_NOCTO 0x0010 /* 1 */
-#define NFS4_MOUNT_NOAC 0x0020 /* 1 */
-#define NFS4_MOUNT_STRICTLOCK 0x1000 /* 1 */
-#define NFS4_MOUNT_UNSHARED 0x8000 /* 1 */
-#define NFS4_MOUNT_FLAGMASK 0x9033
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/nfs_fs.h b/ANDROID_3.4.5/include/linux/nfs_fs.h
deleted file mode 100644
index 52a1bdb4..00000000
--- a/ANDROID_3.4.5/include/linux/nfs_fs.h
+++ /dev/null
@@ -1,671 +0,0 @@
-/*
- * linux/include/linux/nfs_fs.h
- *
- * Copyright (C) 1992 Rick Sladkey
- *
- * OS-specific nfs filesystem definitions and declarations
- */
-
-#ifndef _LINUX_NFS_FS_H
-#define _LINUX_NFS_FS_H
-
-#include <linux/magic.h>
-
-/* Default timeout values */
-#define NFS_DEF_UDP_TIMEO (11)
-#define NFS_DEF_UDP_RETRANS (3)
-#define NFS_DEF_TCP_TIMEO (600)
-#define NFS_DEF_TCP_RETRANS (2)
-
-#define NFS_MAX_UDP_TIMEOUT (60*HZ)
-#define NFS_MAX_TCP_TIMEOUT (600*HZ)
-
-#define NFS_DEF_ACREGMIN (3)
-#define NFS_DEF_ACREGMAX (60)
-#define NFS_DEF_ACDIRMIN (30)
-#define NFS_DEF_ACDIRMAX (60)
-
-/*
- * When flushing a cluster of dirty pages, there can be different
- * strategies:
- */
-#define FLUSH_SYNC 1 /* file being synced, or contention */
-#define FLUSH_STABLE 4 /* commit to stable storage */
-#define FLUSH_LOWPRI 8 /* low priority background flush */
-#define FLUSH_HIGHPRI 16 /* high priority memory reclaim flush */
-#define FLUSH_COND_STABLE 32 /* conditional stable write - only stable
- * if everything fits in one RPC */
-
-#ifdef __KERNEL__
-
-/*
- * Enable dprintk() debugging support for nfs client.
- */
-#ifdef CONFIG_NFS_DEBUG
-# define NFS_DEBUG
-#endif
-
-#include <linux/in.h>
-#include <linux/mm.h>
-#include <linux/pagemap.h>
-#include <linux/rbtree.h>
-#include <linux/rwsem.h>
-#include <linux/wait.h>
-
-#include <linux/sunrpc/debug.h>
-#include <linux/sunrpc/auth.h>
-#include <linux/sunrpc/clnt.h>
-
-#include <linux/nfs.h>
-#include <linux/nfs2.h>
-#include <linux/nfs3.h>
-#include <linux/nfs4.h>
-#include <linux/nfs_xdr.h>
-#include <linux/nfs_fs_sb.h>
-
-#include <linux/mempool.h>
-
-/*
- * These are the default flags for swap requests
- */
-#define NFS_RPC_SWAPFLAGS (RPC_TASK_SWAPPER|RPC_TASK_ROOTCREDS)
-
-/*
- * NFSv3/v4 Access mode cache entry
- */
-struct nfs_access_entry {
- struct rb_node rb_node;
- struct list_head lru;
- unsigned long jiffies;
- struct rpc_cred * cred;
- int mask;
-};
-
-struct nfs_lock_context {
- atomic_t count;
- struct list_head list;
- struct nfs_open_context *open_context;
- fl_owner_t lockowner;
- pid_t pid;
-};
-
-struct nfs4_state;
-struct nfs_open_context {
- struct nfs_lock_context lock_context;
- struct dentry *dentry;
- struct rpc_cred *cred;
- struct nfs4_state *state;
- fmode_t mode;
-
- unsigned long flags;
-#define NFS_CONTEXT_ERROR_WRITE (0)
- int error;
-
- struct list_head list;
-};
-
-struct nfs_open_dir_context {
- struct rpc_cred *cred;
- unsigned long attr_gencount;
- __u64 dir_cookie;
- __u64 dup_cookie;
- signed char duped;
-};
-
-/*
- * NFSv4 delegation
- */
-struct nfs_delegation;
-
-struct posix_acl;
-
-/*
- * nfs fs inode data in memory
- */
-struct nfs_inode {
- /*
- * The 64bit 'inode number'
- */
- __u64 fileid;
-
- /*
- * NFS file handle
- */
- struct nfs_fh fh;
-
- /*
- * Various flags
- */
- unsigned long flags; /* atomic bit ops */
- unsigned long cache_validity; /* bit mask */
-
- /*
- * read_cache_jiffies is when we started read-caching this inode.
- * attrtimeo is for how long the cached information is assumed
- * to be valid. A successful attribute revalidation doubles
- * attrtimeo (up to acregmax/acdirmax), a failure resets it to
- * acregmin/acdirmin.
- *
- * We need to revalidate the cached attrs for this inode if
- *
- * jiffies - read_cache_jiffies >= attrtimeo
- *
- * Please note the comparison is greater than or equal
- * so that zero timeout values can be specified.
- */
- unsigned long read_cache_jiffies;
- unsigned long attrtimeo;
- unsigned long attrtimeo_timestamp;
-
- unsigned long attr_gencount;
- /* "Generation counter" for the attribute cache. This is
- * bumped whenever we update the metadata on the
- * server.
- */
- unsigned long cache_change_attribute;
-
- struct rb_root access_cache;
- struct list_head access_cache_entry_lru;
- struct list_head access_cache_inode_lru;
-#ifdef CONFIG_NFS_V3_ACL
- struct posix_acl *acl_access;
- struct posix_acl *acl_default;
-#endif
-
- /*
- * This is the cookie verifier used for NFSv3 readdir
- * operations
- */
- __be32 cookieverf[2];
-
- unsigned long npages;
- unsigned long ncommit;
- struct list_head commit_list;
-
- /* Open contexts for shared mmap writes */
- struct list_head open_files;
-
- /* Number of in-flight sillydelete RPC calls */
- atomic_t silly_count;
- /* List of deferred sillydelete requests */
- struct hlist_head silly_list;
- wait_queue_head_t waitqueue;
-
-#ifdef CONFIG_NFS_V4
- struct nfs4_cached_acl *nfs4_acl;
- /* NFSv4 state */
- struct list_head open_states;
- struct nfs_delegation __rcu *delegation;
- fmode_t delegation_state;
- struct rw_semaphore rwsem;
-
- /* pNFS layout information */
- struct pnfs_layout_hdr *layout;
- atomic_t commits_outstanding;
-#endif /* CONFIG_NFS_V4*/
-#ifdef CONFIG_NFS_FSCACHE
- struct fscache_cookie *fscache;
-#endif
- struct inode vfs_inode;
-};
-
-/*
- * Cache validity bit flags
- */
-#define NFS_INO_INVALID_ATTR 0x0001 /* cached attrs are invalid */
-#define NFS_INO_INVALID_DATA 0x0002 /* cached data is invalid */
-#define NFS_INO_INVALID_ATIME 0x0004 /* cached atime is invalid */
-#define NFS_INO_INVALID_ACCESS 0x0008 /* cached access cred invalid */
-#define NFS_INO_INVALID_ACL 0x0010 /* cached acls are invalid */
-#define NFS_INO_REVAL_PAGECACHE 0x0020 /* must revalidate pagecache */
-#define NFS_INO_REVAL_FORCED 0x0040 /* force revalidation ignoring a delegation */
-
-/*
- * Bit offsets in flags field
- */
-#define NFS_INO_ADVISE_RDPLUS (0) /* advise readdirplus */
-#define NFS_INO_STALE (1) /* possible stale inode */
-#define NFS_INO_ACL_LRU_SET (2) /* Inode is on the LRU list */
-#define NFS_INO_FLUSHING (4) /* inode is flushing out data */
-#define NFS_INO_FSCACHE (5) /* inode can be cached by FS-Cache */
-#define NFS_INO_FSCACHE_LOCK (6) /* FS-Cache cookie management lock */
-#define NFS_INO_COMMIT (7) /* inode is committing unstable writes */
-#define NFS_INO_PNFS_COMMIT (8) /* use pnfs code for commit */
-#define NFS_INO_LAYOUTCOMMIT (9) /* layoutcommit required */
-#define NFS_INO_LAYOUTCOMMITTING (10) /* layoutcommit inflight */
-
-static inline struct nfs_inode *NFS_I(const struct inode *inode)
-{
- return container_of(inode, struct nfs_inode, vfs_inode);
-}
-
-static inline struct nfs_server *NFS_SB(const struct super_block *s)
-{
- return (struct nfs_server *)(s->s_fs_info);
-}
-
-static inline struct nfs_fh *NFS_FH(const struct inode *inode)
-{
- return &NFS_I(inode)->fh;
-}
-
-static inline struct nfs_server *NFS_SERVER(const struct inode *inode)
-{
- return NFS_SB(inode->i_sb);
-}
-
-static inline struct rpc_clnt *NFS_CLIENT(const struct inode *inode)
-{
- return NFS_SERVER(inode)->client;
-}
-
-static inline const struct nfs_rpc_ops *NFS_PROTO(const struct inode *inode)
-{
- return NFS_SERVER(inode)->nfs_client->rpc_ops;
-}
-
-static inline __be32 *NFS_COOKIEVERF(const struct inode *inode)
-{
- return NFS_I(inode)->cookieverf;
-}
-
-static inline unsigned NFS_MINATTRTIMEO(const struct inode *inode)
-{
- struct nfs_server *nfss = NFS_SERVER(inode);
- return S_ISDIR(inode->i_mode) ? nfss->acdirmin : nfss->acregmin;
-}
-
-static inline unsigned NFS_MAXATTRTIMEO(const struct inode *inode)
-{
- struct nfs_server *nfss = NFS_SERVER(inode);
- return S_ISDIR(inode->i_mode) ? nfss->acdirmax : nfss->acregmax;
-}
-
-static inline int NFS_STALE(const struct inode *inode)
-{
- return test_bit(NFS_INO_STALE, &NFS_I(inode)->flags);
-}
-
-static inline int NFS_FSCACHE(const struct inode *inode)
-{
- return test_bit(NFS_INO_FSCACHE, &NFS_I(inode)->flags);
-}
-
-static inline __u64 NFS_FILEID(const struct inode *inode)
-{
- return NFS_I(inode)->fileid;
-}
-
-static inline void set_nfs_fileid(struct inode *inode, __u64 fileid)
-{
- NFS_I(inode)->fileid = fileid;
-}
-
-static inline void nfs_mark_for_revalidate(struct inode *inode)
-{
- struct nfs_inode *nfsi = NFS_I(inode);
-
- spin_lock(&inode->i_lock);
- nfsi->cache_validity |= NFS_INO_INVALID_ATTR|NFS_INO_INVALID_ACCESS;
- if (S_ISDIR(inode->i_mode))
- nfsi->cache_validity |= NFS_INO_REVAL_PAGECACHE|NFS_INO_INVALID_DATA;
- spin_unlock(&inode->i_lock);
-}
-
-static inline int nfs_server_capable(struct inode *inode, int cap)
-{
- return NFS_SERVER(inode)->caps & cap;
-}
-
-static inline int NFS_USE_READDIRPLUS(struct inode *inode)
-{
- return test_bit(NFS_INO_ADVISE_RDPLUS, &NFS_I(inode)->flags);
-}
-
-static inline void nfs_set_verifier(struct dentry * dentry, unsigned long verf)
-{
- dentry->d_time = verf;
-}
-
-/**
- * nfs_save_change_attribute - Returns the inode attribute change cookie
- * @dir - pointer to parent directory inode
- * The "change attribute" is updated every time we finish an operation
- * that will result in a metadata change on the server.
- */
-static inline unsigned long nfs_save_change_attribute(struct inode *dir)
-{
- return NFS_I(dir)->cache_change_attribute;
-}
-
-/**
- * nfs_verify_change_attribute - Detects NFS remote directory changes
- * @dir - pointer to parent directory inode
- * @chattr - previously saved change attribute
- * Return "false" if the verifiers doesn't match the change attribute.
- * This would usually indicate that the directory contents have changed on
- * the server, and that any dentries need revalidating.
- */
-static inline int nfs_verify_change_attribute(struct inode *dir, unsigned long chattr)
-{
- return chattr == NFS_I(dir)->cache_change_attribute;
-}
-
-/*
- * linux/fs/nfs/inode.c
- */
-extern int nfs_sync_mapping(struct address_space *mapping);
-extern void nfs_zap_mapping(struct inode *inode, struct address_space *mapping);
-extern void nfs_zap_caches(struct inode *);
-extern void nfs_invalidate_atime(struct inode *);
-extern struct inode *nfs_fhget(struct super_block *, struct nfs_fh *,
- struct nfs_fattr *);
-extern int nfs_refresh_inode(struct inode *, struct nfs_fattr *);
-extern int nfs_post_op_update_inode(struct inode *inode, struct nfs_fattr *fattr);
-extern int nfs_post_op_update_inode_force_wcc(struct inode *inode, struct nfs_fattr *fattr);
-extern int nfs_getattr(struct vfsmount *, struct dentry *, struct kstat *);
-extern int nfs_permission(struct inode *, int);
-extern int nfs_open(struct inode *, struct file *);
-extern int nfs_release(struct inode *, struct file *);
-extern int nfs_attribute_timeout(struct inode *inode);
-extern int nfs_revalidate_inode(struct nfs_server *server, struct inode *inode);
-extern int __nfs_revalidate_inode(struct nfs_server *, struct inode *);
-extern int nfs_revalidate_mapping(struct inode *inode, struct address_space *mapping);
-extern int nfs_setattr(struct dentry *, struct iattr *);
-extern void nfs_setattr_update_inode(struct inode *inode, struct iattr *attr);
-extern struct nfs_open_context *get_nfs_open_context(struct nfs_open_context *ctx);
-extern void put_nfs_open_context(struct nfs_open_context *ctx);
-extern struct nfs_open_context *nfs_find_open_context(struct inode *inode, struct rpc_cred *cred, fmode_t mode);
-extern struct nfs_open_context *alloc_nfs_open_context(struct dentry *dentry, fmode_t f_mode);
-extern void nfs_file_set_open_context(struct file *filp, struct nfs_open_context *ctx);
-extern struct nfs_lock_context *nfs_get_lock_context(struct nfs_open_context *ctx);
-extern void nfs_put_lock_context(struct nfs_lock_context *l_ctx);
-extern u64 nfs_compat_user_ino64(u64 fileid);
-extern void nfs_fattr_init(struct nfs_fattr *fattr);
-extern unsigned long nfs_inc_attr_generation_counter(void);
-
-extern struct nfs_fattr *nfs_alloc_fattr(void);
-
-static inline void nfs_free_fattr(const struct nfs_fattr *fattr)
-{
- kfree(fattr);
-}
-
-extern struct nfs_fh *nfs_alloc_fhandle(void);
-
-static inline void nfs_free_fhandle(const struct nfs_fh *fh)
-{
- kfree(fh);
-}
-
-#ifdef NFS_DEBUG
-extern u32 _nfs_display_fhandle_hash(const struct nfs_fh *fh);
-static inline u32 nfs_display_fhandle_hash(const struct nfs_fh *fh)
-{
- return _nfs_display_fhandle_hash(fh);
-}
-extern void _nfs_display_fhandle(const struct nfs_fh *fh, const char *caption);
-#define nfs_display_fhandle(fh, caption) \
- do { \
- if (unlikely(nfs_debug & NFSDBG_FACILITY)) \
- _nfs_display_fhandle(fh, caption); \
- } while (0)
-#else
-static inline u32 nfs_display_fhandle_hash(const struct nfs_fh *fh)
-{
- return 0;
-}
-static inline void nfs_display_fhandle(const struct nfs_fh *fh,
- const char *caption)
-{
-}
-#endif
-
-/*
- * linux/fs/nfs/nfsroot.c
- */
-extern int nfs_root_data(char **root_device, char **root_data); /*__init*/
-/* linux/net/ipv4/ipconfig.c: trims ip addr off front of name, too. */
-extern __be32 root_nfs_parse_addr(char *name); /*__init*/
-
-/*
- * linux/fs/nfs/file.c
- */
-extern const struct inode_operations nfs_file_inode_operations;
-#ifdef CONFIG_NFS_V3
-extern const struct inode_operations nfs3_file_inode_operations;
-#endif /* CONFIG_NFS_V3 */
-extern const struct file_operations nfs_file_operations;
-#ifdef CONFIG_NFS_V4
-extern const struct file_operations nfs4_file_operations;
-#endif /* CONFIG_NFS_V4 */
-extern const struct address_space_operations nfs_file_aops;
-extern const struct address_space_operations nfs_dir_aops;
-
-static inline struct nfs_open_context *nfs_file_open_context(struct file *filp)
-{
- return filp->private_data;
-}
-
-static inline struct rpc_cred *nfs_file_cred(struct file *file)
-{
- if (file != NULL) {
- struct nfs_open_context *ctx =
- nfs_file_open_context(file);
- if (ctx)
- return ctx->cred;
- }
- return NULL;
-}
-
-/*
- * linux/fs/nfs/xattr.c
- */
-#ifdef CONFIG_NFS_V3_ACL
-extern ssize_t nfs3_listxattr(struct dentry *, char *, size_t);
-extern ssize_t nfs3_getxattr(struct dentry *, const char *, void *, size_t);
-extern int nfs3_setxattr(struct dentry *, const char *,
- const void *, size_t, int);
-extern int nfs3_removexattr (struct dentry *, const char *name);
-#else
-# define nfs3_listxattr NULL
-# define nfs3_getxattr NULL
-# define nfs3_setxattr NULL
-# define nfs3_removexattr NULL
-#endif
-
-/*
- * linux/fs/nfs/direct.c
- */
-extern ssize_t nfs_direct_IO(int, struct kiocb *, const struct iovec *, loff_t,
- unsigned long);
-extern ssize_t nfs_file_direct_read(struct kiocb *iocb,
- const struct iovec *iov, unsigned long nr_segs,
- loff_t pos);
-extern ssize_t nfs_file_direct_write(struct kiocb *iocb,
- const struct iovec *iov, unsigned long nr_segs,
- loff_t pos);
-
-/*
- * linux/fs/nfs/dir.c
- */
-extern const struct inode_operations nfs_dir_inode_operations;
-#ifdef CONFIG_NFS_V3
-extern const struct inode_operations nfs3_dir_inode_operations;
-#endif /* CONFIG_NFS_V3 */
-extern const struct file_operations nfs_dir_operations;
-extern const struct dentry_operations nfs_dentry_operations;
-
-extern void nfs_force_lookup_revalidate(struct inode *dir);
-extern int nfs_instantiate(struct dentry *dentry, struct nfs_fh *fh, struct nfs_fattr *fattr);
-extern int nfs_may_open(struct inode *inode, struct rpc_cred *cred, int openflags);
-extern void nfs_access_zap_cache(struct inode *inode);
-
-/*
- * linux/fs/nfs/symlink.c
- */
-extern const struct inode_operations nfs_symlink_inode_operations;
-
-/*
- * linux/fs/nfs/sysctl.c
- */
-#ifdef CONFIG_SYSCTL
-extern int nfs_register_sysctl(void);
-extern void nfs_unregister_sysctl(void);
-#else
-#define nfs_register_sysctl() 0
-#define nfs_unregister_sysctl() do { } while(0)
-#endif
-
-/*
- * linux/fs/nfs/namespace.c
- */
-extern const struct inode_operations nfs_mountpoint_inode_operations;
-extern const struct inode_operations nfs_referral_inode_operations;
-extern int nfs_mountpoint_expiry_timeout;
-extern void nfs_release_automount_timer(void);
-
-/*
- * linux/fs/nfs/unlink.c
- */
-extern void nfs_complete_unlink(struct dentry *dentry, struct inode *);
-extern void nfs_block_sillyrename(struct dentry *dentry);
-extern void nfs_unblock_sillyrename(struct dentry *dentry);
-extern int nfs_sillyrename(struct inode *dir, struct dentry *dentry);
-
-/*
- * linux/fs/nfs/write.c
- */
-extern int nfs_congestion_kb;
-extern int nfs_writepage(struct page *page, struct writeback_control *wbc);
-extern int nfs_writepages(struct address_space *, struct writeback_control *);
-extern int nfs_flush_incompatible(struct file *file, struct page *page);
-extern int nfs_updatepage(struct file *, struct page *, unsigned int, unsigned int);
-extern void nfs_writeback_done(struct rpc_task *, struct nfs_write_data *);
-
-/*
- * Try to write back everything synchronously (but check the
- * return value!)
- */
-extern int nfs_wb_all(struct inode *inode);
-extern int nfs_wb_page(struct inode *inode, struct page* page);
-extern int nfs_wb_page_cancel(struct inode *inode, struct page* page);
-#if defined(CONFIG_NFS_V3) || defined(CONFIG_NFS_V4)
-extern int nfs_commit_inode(struct inode *, int);
-extern struct nfs_write_data *nfs_commitdata_alloc(void);
-extern void nfs_commit_free(struct nfs_write_data *wdata);
-#else
-static inline int
-nfs_commit_inode(struct inode *inode, int how)
-{
- return 0;
-}
-#endif
-
-static inline int
-nfs_have_writebacks(struct inode *inode)
-{
- return NFS_I(inode)->npages != 0;
-}
-
-/*
- * Allocate nfs_write_data structures
- */
-extern struct nfs_write_data *nfs_writedata_alloc(unsigned int npages);
-extern void nfs_writedata_free(struct nfs_write_data *);
-
-/*
- * linux/fs/nfs/read.c
- */
-extern int nfs_readpage(struct file *, struct page *);
-extern int nfs_readpages(struct file *, struct address_space *,
- struct list_head *, unsigned);
-extern int nfs_readpage_result(struct rpc_task *, struct nfs_read_data *);
-extern int nfs_readpage_async(struct nfs_open_context *, struct inode *,
- struct page *);
-
-/*
- * Allocate nfs_read_data structures
- */
-extern struct nfs_read_data *nfs_readdata_alloc(unsigned int npages);
-extern void nfs_readdata_free(struct nfs_read_data *);
-
-/*
- * linux/fs/nfs3proc.c
- */
-#ifdef CONFIG_NFS_V3_ACL
-extern struct posix_acl *nfs3_proc_getacl(struct inode *inode, int type);
-extern int nfs3_proc_setacl(struct inode *inode, int type,
- struct posix_acl *acl);
-extern int nfs3_proc_set_default_acl(struct inode *dir, struct inode *inode,
- umode_t mode);
-extern void nfs3_forget_cached_acls(struct inode *inode);
-#else
-static inline int nfs3_proc_set_default_acl(struct inode *dir,
- struct inode *inode,
- umode_t mode)
-{
- return 0;
-}
-
-static inline void nfs3_forget_cached_acls(struct inode *inode)
-{
-}
-#endif /* CONFIG_NFS_V3_ACL */
-
-/*
- * inline functions
- */
-
-static inline loff_t nfs_size_to_loff_t(__u64 size)
-{
- if (size > (__u64) OFFSET_MAX - 1)
- return OFFSET_MAX - 1;
- return (loff_t) size;
-}
-
-static inline ino_t
-nfs_fileid_to_ino_t(u64 fileid)
-{
- ino_t ino = (ino_t) fileid;
- if (sizeof(ino_t) < sizeof(u64))
- ino ^= fileid >> (sizeof(u64)-sizeof(ino_t)) * 8;
- return ino;
-}
-
-#define NFS_JUKEBOX_RETRY_TIME (5 * HZ)
-
-#endif /* __KERNEL__ */
-
-/*
- * NFS debug flags
- */
-#define NFSDBG_VFS 0x0001
-#define NFSDBG_DIRCACHE 0x0002
-#define NFSDBG_LOOKUPCACHE 0x0004
-#define NFSDBG_PAGECACHE 0x0008
-#define NFSDBG_PROC 0x0010
-#define NFSDBG_XDR 0x0020
-#define NFSDBG_FILE 0x0040
-#define NFSDBG_ROOT 0x0080
-#define NFSDBG_CALLBACK 0x0100
-#define NFSDBG_CLIENT 0x0200
-#define NFSDBG_MOUNT 0x0400
-#define NFSDBG_FSCACHE 0x0800
-#define NFSDBG_PNFS 0x1000
-#define NFSDBG_PNFS_LD 0x2000
-#define NFSDBG_ALL 0xFFFF
-
-#ifdef __KERNEL__
-
-# undef ifdebug
-# ifdef NFS_DEBUG
-# define ifdebug(fac) if (unlikely(nfs_debug & NFSDBG_##fac))
-# define NFS_IFDEBUG(x) x
-# else
-# define ifdebug(fac) if (0)
-# define NFS_IFDEBUG(x)
-# endif
-#endif /* __KERNEL */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/nfs_fs_i.h b/ANDROID_3.4.5/include/linux/nfs_fs_i.h
deleted file mode 100644
index a5c50d97..00000000
--- a/ANDROID_3.4.5/include/linux/nfs_fs_i.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef _NFS_FS_I
-#define _NFS_FS_I
-
-struct nlm_lockowner;
-
-/*
- * NFS lock info
- */
-struct nfs_lock_info {
- u32 state;
- struct nlm_lockowner *owner;
- struct list_head list;
-};
-
-struct nfs4_lock_state;
-struct nfs4_lock_info {
- struct nfs4_lock_state *owner;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/nfs_fs_sb.h b/ANDROID_3.4.5/include/linux/nfs_fs_sb.h
deleted file mode 100644
index 7073fc74..00000000
--- a/ANDROID_3.4.5/include/linux/nfs_fs_sb.h
+++ /dev/null
@@ -1,243 +0,0 @@
-#ifndef _NFS_FS_SB
-#define _NFS_FS_SB
-
-#include <linux/list.h>
-#include <linux/backing-dev.h>
-#include <linux/idr.h>
-#include <linux/wait.h>
-#include <linux/nfs_xdr.h>
-#include <linux/sunrpc/xprt.h>
-
-#include <linux/atomic.h>
-
-struct nfs4_session;
-struct nfs_iostats;
-struct nlm_host;
-struct nfs4_sequence_args;
-struct nfs4_sequence_res;
-struct nfs_server;
-struct nfs4_minor_version_ops;
-struct server_scope;
-struct nfs41_impl_id;
-
-/*
- * The nfs_client identifies our client state to the server.
- */
-struct nfs_client {
- atomic_t cl_count;
- int cl_cons_state; /* current construction state (-ve: init error) */
-#define NFS_CS_READY 0 /* ready to be used */
-#define NFS_CS_INITING 1 /* busy initialising */
-#define NFS_CS_SESSION_INITING 2 /* busy initialising session */
- unsigned long cl_res_state; /* NFS resources state */
-#define NFS_CS_CALLBACK 1 /* - callback started */
-#define NFS_CS_IDMAP 2 /* - idmap started */
-#define NFS_CS_RENEWD 3 /* - renewd started */
-#define NFS_CS_STOP_RENEW 4 /* no more state to renew */
-#define NFS_CS_CHECK_LEASE_TIME 5 /* need to check lease time */
- struct sockaddr_storage cl_addr; /* server identifier */
- size_t cl_addrlen;
- char * cl_hostname; /* hostname of server */
- struct list_head cl_share_link; /* link in global client list */
- struct list_head cl_superblocks; /* List of nfs_server structs */
-
- struct rpc_clnt * cl_rpcclient;
- const struct nfs_rpc_ops *rpc_ops; /* NFS protocol vector */
- int cl_proto; /* Network transport protocol */
-
- u32 cl_minorversion;/* NFSv4 minorversion */
- struct rpc_cred *cl_machine_cred;
-
-#ifdef CONFIG_NFS_V4
- u64 cl_clientid; /* constant */
- nfs4_verifier cl_confirm; /* Clientid verifier */
- unsigned long cl_state;
-
- spinlock_t cl_lock;
-
- unsigned long cl_lease_time;
- unsigned long cl_last_renewal;
- struct delayed_work cl_renewd;
-
- struct rpc_wait_queue cl_rpcwaitq;
-
- /* used for the setclientid verifier */
- struct timespec cl_boot_time;
-
- /* idmapper */
- struct idmap * cl_idmap;
-
- /* Our own IP address, as a null-terminated string.
- * This is used to generate the clientid, and the callback address.
- */
- char cl_ipaddr[48];
- unsigned char cl_id_uniquifier;
- u32 cl_cb_ident; /* v4.0 callback identifier */
- const struct nfs4_minor_version_ops *cl_mvops;
-
- /* The sequence id to use for the next CREATE_SESSION */
- u32 cl_seqid;
- /* The flags used for obtaining the clientid during EXCHANGE_ID */
- u32 cl_exchange_flags;
- struct nfs4_session *cl_session; /* sharred session */
-#endif /* CONFIG_NFS_V4 */
-
-#ifdef CONFIG_NFS_FSCACHE
- struct fscache_cookie *fscache; /* client index cache cookie */
-#endif
-
- struct server_scope *server_scope; /* from exchange_id */
- struct nfs41_impl_id *impl_id; /* from exchange_id */
- struct net *net;
-};
-
-/*
- * NFS client parameters stored in the superblock.
- */
-struct nfs_server {
- struct nfs_client * nfs_client; /* shared client and NFS4 state */
- struct list_head client_link; /* List of other nfs_server structs
- * that share the same client
- */
- struct list_head master_link; /* link in master servers list */
- struct rpc_clnt * client; /* RPC client handle */
- struct rpc_clnt * client_acl; /* ACL RPC client handle */
- struct nlm_host *nlm_host; /* NLM client handle */
- struct nfs_iostats __percpu *io_stats; /* I/O statistics */
- struct backing_dev_info backing_dev_info;
- atomic_long_t writeback; /* number of writeback pages */
- int flags; /* various flags */
- unsigned int caps; /* server capabilities */
- unsigned int rsize; /* read size */
- unsigned int rpages; /* read size (in pages) */
- unsigned int wsize; /* write size */
- unsigned int wpages; /* write size (in pages) */
- unsigned int wtmult; /* server disk block size */
- unsigned int dtsize; /* readdir size */
- unsigned short port; /* "port=" setting */
- unsigned int bsize; /* server block size */
- unsigned int acregmin; /* attr cache timeouts */
- unsigned int acregmax;
- unsigned int acdirmin;
- unsigned int acdirmax;
- unsigned int namelen;
- unsigned int options; /* extra options enabled by mount */
-#define NFS_OPTION_FSCACHE 0x00000001 /* - local caching enabled */
-
- struct nfs_fsid fsid;
- __u64 maxfilesize; /* maximum file size */
- struct timespec time_delta; /* smallest time granularity */
- unsigned long mount_time; /* when this fs was mounted */
- dev_t s_dev; /* superblock dev numbers */
-
-#ifdef CONFIG_NFS_FSCACHE
- struct nfs_fscache_key *fscache_key; /* unique key for superblock */
- struct fscache_cookie *fscache; /* superblock cookie */
-#endif
-
- u32 pnfs_blksize; /* layout_blksize attr */
-#ifdef CONFIG_NFS_V4
- u32 attr_bitmask[3];/* V4 bitmask representing the set
- of attributes supported on this
- filesystem */
- u32 cache_consistency_bitmask[2];
- /* V4 bitmask representing the subset
- of change attribute, size, ctime
- and mtime attributes supported by
- the server */
- u32 acl_bitmask; /* V4 bitmask representing the ACEs
- that are supported on this
- filesystem */
- u32 fh_expire_type; /* V4 bitmask representing file
- handle volatility type for
- this filesystem */
- struct pnfs_layoutdriver_type *pnfs_curr_ld; /* Active layout driver */
- struct rpc_wait_queue roc_rpcwaitq;
- void *pnfs_ld_data; /* per mount point data */
-
- /* the following fields are protected by nfs_client->cl_lock */
- struct rb_root state_owners;
-#endif
- struct ida openowner_id;
- struct ida lockowner_id;
- struct list_head state_owners_lru;
- struct list_head layouts;
- struct list_head delegations;
- void (*destroy)(struct nfs_server *);
-
- atomic_t active; /* Keep trace of any activity to this server */
-
- /* mountd-related mount options */
- struct sockaddr_storage mountd_address;
- size_t mountd_addrlen;
- u32 mountd_version;
- unsigned short mountd_port;
- unsigned short mountd_protocol;
-};
-
-/* Server capabilities */
-#define NFS_CAP_READDIRPLUS (1U << 0)
-#define NFS_CAP_HARDLINKS (1U << 1)
-#define NFS_CAP_SYMLINKS (1U << 2)
-#define NFS_CAP_ACLS (1U << 3)
-#define NFS_CAP_ATOMIC_OPEN (1U << 4)
-#define NFS_CAP_CHANGE_ATTR (1U << 5)
-#define NFS_CAP_FILEID (1U << 6)
-#define NFS_CAP_MODE (1U << 7)
-#define NFS_CAP_NLINK (1U << 8)
-#define NFS_CAP_OWNER (1U << 9)
-#define NFS_CAP_OWNER_GROUP (1U << 10)
-#define NFS_CAP_ATIME (1U << 11)
-#define NFS_CAP_CTIME (1U << 12)
-#define NFS_CAP_MTIME (1U << 13)
-#define NFS_CAP_POSIX_LOCK (1U << 14)
-#define NFS_CAP_UIDGID_NOMAP (1U << 15)
-
-
-/* maximum number of slots to use */
-#define NFS4_DEF_SLOT_TABLE_SIZE (16U)
-#define NFS4_MAX_SLOT_TABLE (256U)
-#define NFS4_NO_SLOT ((u32)-1)
-
-#if defined(CONFIG_NFS_V4)
-
-/* Sessions */
-#define SLOT_TABLE_SZ DIV_ROUND_UP(NFS4_MAX_SLOT_TABLE, 8*sizeof(long))
-struct nfs4_slot_table {
- struct nfs4_slot *slots; /* seqid per slot */
- unsigned long used_slots[SLOT_TABLE_SZ]; /* used/unused bitmap */
- spinlock_t slot_tbl_lock;
- struct rpc_wait_queue slot_tbl_waitq; /* allocators may wait here */
- u32 max_slots; /* # slots in table */
- u32 highest_used_slotid; /* sent to server on each SEQ.
- * op for dynamic resizing */
- u32 target_max_slots; /* Set by CB_RECALL_SLOT as
- * the new max_slots */
- struct completion complete;
-};
-
-static inline int slot_idx(struct nfs4_slot_table *tbl, struct nfs4_slot *sp)
-{
- return sp - tbl->slots;
-}
-
-/*
- * Session related parameters
- */
-struct nfs4_session {
- struct nfs4_sessionid sess_id;
- u32 flags;
- unsigned long session_state;
- u32 hash_alg;
- u32 ssv_len;
-
- /* The fore and back channel */
- struct nfs4_channel_attrs fc_attrs;
- struct nfs4_slot_table fc_slot_table;
- struct nfs4_channel_attrs bc_attrs;
- struct nfs4_slot_table bc_slot_table;
- struct nfs_client *clp;
-};
-
-#endif /* CONFIG_NFS_V4 */
-#endif
diff --git a/ANDROID_3.4.5/include/linux/nfs_idmap.h b/ANDROID_3.4.5/include/linux/nfs_idmap.h
deleted file mode 100644
index 7eed2012..00000000
--- a/ANDROID_3.4.5/include/linux/nfs_idmap.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * include/linux/nfs_idmap.h
- *
- * UID and GID to name mapping for clients.
- *
- * Copyright (c) 2002 The Regents of the University of Michigan.
- * All rights reserved.
- *
- * Marius Aamodt Eriksen <marius@umich.edu>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its
- * contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef NFS_IDMAP_H
-#define NFS_IDMAP_H
-
-#include <linux/types.h>
-
-/* XXX from bits/utmp.h */
-#define IDMAP_NAMESZ 128
-
-#define IDMAP_TYPE_USER 0
-#define IDMAP_TYPE_GROUP 1
-
-#define IDMAP_CONV_IDTONAME 0
-#define IDMAP_CONV_NAMETOID 1
-
-#define IDMAP_STATUS_INVALIDMSG 0x01
-#define IDMAP_STATUS_AGAIN 0x02
-#define IDMAP_STATUS_LOOKUPFAIL 0x04
-#define IDMAP_STATUS_SUCCESS 0x08
-
-struct idmap_msg {
- __u8 im_type;
- __u8 im_conv;
- char im_name[IDMAP_NAMESZ];
- __u32 im_id;
- __u8 im_status;
-};
-
-#ifdef __KERNEL__
-
-/* Forward declaration to make this header independent of others */
-struct nfs_client;
-struct nfs_server;
-struct nfs_fattr;
-struct nfs4_string;
-
-#ifdef CONFIG_NFS_V4
-int nfs_idmap_init(void);
-void nfs_idmap_quit(void);
-#else
-static inline int nfs_idmap_init(void)
-{
- return 0;
-}
-
-static inline void nfs_idmap_quit(void)
-{}
-#endif
-
-int nfs_idmap_new(struct nfs_client *);
-void nfs_idmap_delete(struct nfs_client *);
-
-void nfs_fattr_init_names(struct nfs_fattr *fattr,
- struct nfs4_string *owner_name,
- struct nfs4_string *group_name);
-void nfs_fattr_free_names(struct nfs_fattr *);
-void nfs_fattr_map_and_free_names(struct nfs_server *, struct nfs_fattr *);
-
-int nfs_map_name_to_uid(const struct nfs_server *, const char *, size_t, __u32 *);
-int nfs_map_group_to_gid(const struct nfs_server *, const char *, size_t, __u32 *);
-int nfs_map_uid_to_name(const struct nfs_server *, __u32, char *, size_t);
-int nfs_map_gid_to_group(const struct nfs_server *, __u32, char *, size_t);
-
-extern unsigned int nfs_idmap_cache_timeout;
-#endif /* __KERNEL__ */
-
-#endif /* NFS_IDMAP_H */
diff --git a/ANDROID_3.4.5/include/linux/nfs_iostat.h b/ANDROID_3.4.5/include/linux/nfs_iostat.h
deleted file mode 100644
index 9dcbbe9a..00000000
--- a/ANDROID_3.4.5/include/linux/nfs_iostat.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * User-space visible declarations for NFS client per-mount
- * point statistics
- *
- * Copyright (C) 2005, 2006 Chuck Lever <cel@netapp.com>
- *
- * NFS client per-mount statistics provide information about the
- * health of the NFS client and the health of each NFS mount point.
- * Generally these are not for detailed problem diagnosis, but
- * simply to indicate that there is a problem.
- *
- * These counters are not meant to be human-readable, but are meant
- * to be integrated into system monitoring tools such as "sar" and
- * "iostat". As such, the counters are sampled by the tools over
- * time, and are never zeroed after a file system is mounted.
- * Moving averages can be computed by the tools by taking the
- * difference between two instantaneous samples and dividing that
- * by the time between the samples.
- */
-
-#ifndef _LINUX_NFS_IOSTAT
-#define _LINUX_NFS_IOSTAT
-
-#define NFS_IOSTAT_VERS "1.1"
-
-/*
- * NFS byte counters
- *
- * 1. SERVER - the number of payload bytes read from or written
- * to the server by the NFS client via an NFS READ or WRITE
- * request.
- *
- * 2. NORMAL - the number of bytes read or written by applications
- * via the read(2) and write(2) system call interfaces.
- *
- * 3. DIRECT - the number of bytes read or written from files
- * opened with the O_DIRECT flag.
- *
- * These counters give a view of the data throughput into and out
- * of the NFS client. Comparing the number of bytes requested by
- * an application with the number of bytes the client requests from
- * the server can provide an indication of client efficiency
- * (per-op, cache hits, etc).
- *
- * These counters can also help characterize which access methods
- * are in use. DIRECT by itself shows whether there is any O_DIRECT
- * traffic. NORMAL + DIRECT shows how much data is going through
- * the system call interface. A large amount of SERVER traffic
- * without much NORMAL or DIRECT traffic shows that applications
- * are using mapped files.
- *
- * NFS page counters
- *
- * These count the number of pages read or written via nfs_readpage(),
- * nfs_readpages(), or their write equivalents.
- *
- * NB: When adding new byte counters, please include the measured
- * units in the name of each byte counter to help users of this
- * interface determine what exactly is being counted.
- */
-enum nfs_stat_bytecounters {
- NFSIOS_NORMALREADBYTES = 0,
- NFSIOS_NORMALWRITTENBYTES,
- NFSIOS_DIRECTREADBYTES,
- NFSIOS_DIRECTWRITTENBYTES,
- NFSIOS_SERVERREADBYTES,
- NFSIOS_SERVERWRITTENBYTES,
- NFSIOS_READPAGES,
- NFSIOS_WRITEPAGES,
- __NFSIOS_BYTESMAX,
-};
-
-/*
- * NFS event counters
- *
- * These counters provide a low-overhead way of monitoring client
- * activity without enabling NFS trace debugging. The counters
- * show the rate at which VFS requests are made, and how often the
- * client invalidates its data and attribute caches. This allows
- * system administrators to monitor such things as how close-to-open
- * is working, and answer questions such as "why are there so many
- * GETATTR requests on the wire?"
- *
- * They also count anamolous events such as short reads and writes,
- * silly renames due to close-after-delete, and operations that
- * change the size of a file (such operations can often be the
- * source of data corruption if applications aren't using file
- * locking properly).
- */
-enum nfs_stat_eventcounters {
- NFSIOS_INODEREVALIDATE = 0,
- NFSIOS_DENTRYREVALIDATE,
- NFSIOS_DATAINVALIDATE,
- NFSIOS_ATTRINVALIDATE,
- NFSIOS_VFSOPEN,
- NFSIOS_VFSLOOKUP,
- NFSIOS_VFSACCESS,
- NFSIOS_VFSUPDATEPAGE,
- NFSIOS_VFSREADPAGE,
- NFSIOS_VFSREADPAGES,
- NFSIOS_VFSWRITEPAGE,
- NFSIOS_VFSWRITEPAGES,
- NFSIOS_VFSGETDENTS,
- NFSIOS_VFSSETATTR,
- NFSIOS_VFSFLUSH,
- NFSIOS_VFSFSYNC,
- NFSIOS_VFSLOCK,
- NFSIOS_VFSRELEASE,
- NFSIOS_CONGESTIONWAIT,
- NFSIOS_SETATTRTRUNC,
- NFSIOS_EXTENDWRITE,
- NFSIOS_SILLYRENAME,
- NFSIOS_SHORTREAD,
- NFSIOS_SHORTWRITE,
- NFSIOS_DELAY,
- NFSIOS_PNFS_READ,
- NFSIOS_PNFS_WRITE,
- __NFSIOS_COUNTSMAX,
-};
-
-/*
- * NFS local caching servicing counters
- */
-enum nfs_stat_fscachecounters {
- NFSIOS_FSCACHE_PAGES_READ_OK,
- NFSIOS_FSCACHE_PAGES_READ_FAIL,
- NFSIOS_FSCACHE_PAGES_WRITTEN_OK,
- NFSIOS_FSCACHE_PAGES_WRITTEN_FAIL,
- NFSIOS_FSCACHE_PAGES_UNCACHED,
- __NFSIOS_FSCACHEMAX,
-};
-
-#endif /* _LINUX_NFS_IOSTAT */
diff --git a/ANDROID_3.4.5/include/linux/nfs_mount.h b/ANDROID_3.4.5/include/linux/nfs_mount.h
deleted file mode 100644
index 576bddd7..00000000
--- a/ANDROID_3.4.5/include/linux/nfs_mount.h
+++ /dev/null
@@ -1,77 +0,0 @@
-#ifndef _LINUX_NFS_MOUNT_H
-#define _LINUX_NFS_MOUNT_H
-
-/*
- * linux/include/linux/nfs_mount.h
- *
- * Copyright (C) 1992 Rick Sladkey
- *
- * structure passed from user-space to kernel-space during an nfs mount
- */
-#include <linux/in.h>
-#include <linux/nfs.h>
-#include <linux/nfs2.h>
-#include <linux/nfs3.h>
-
-/*
- * WARNING! Do not delete or change the order of these fields. If
- * a new field is required then add it to the end. The version field
- * tracks which fields are present. This will ensure some measure of
- * mount-to-kernel version compatibility. Some of these aren't used yet
- * but here they are anyway.
- */
-#define NFS_MOUNT_VERSION 6
-#define NFS_MAX_CONTEXT_LEN 256
-
-struct nfs_mount_data {
- int version; /* 1 */
- int fd; /* 1 */
- struct nfs2_fh old_root; /* 1 */
- int flags; /* 1 */
- int rsize; /* 1 */
- int wsize; /* 1 */
- int timeo; /* 1 */
- int retrans; /* 1 */
- int acregmin; /* 1 */
- int acregmax; /* 1 */
- int acdirmin; /* 1 */
- int acdirmax; /* 1 */
- struct sockaddr_in addr; /* 1 */
- char hostname[NFS_MAXNAMLEN + 1]; /* 1 */
- int namlen; /* 2 */
- unsigned int bsize; /* 3 */
- struct nfs3_fh root; /* 4 */
- int pseudoflavor; /* 5 */
- char context[NFS_MAX_CONTEXT_LEN + 1]; /* 6 */
-};
-
-/* bits in the flags field visible to user space */
-
-#define NFS_MOUNT_SOFT 0x0001 /* 1 */
-#define NFS_MOUNT_INTR 0x0002 /* 1 */ /* now unused, but ABI */
-#define NFS_MOUNT_SECURE 0x0004 /* 1 */
-#define NFS_MOUNT_POSIX 0x0008 /* 1 */
-#define NFS_MOUNT_NOCTO 0x0010 /* 1 */
-#define NFS_MOUNT_NOAC 0x0020 /* 1 */
-#define NFS_MOUNT_TCP 0x0040 /* 2 */
-#define NFS_MOUNT_VER3 0x0080 /* 3 */
-#define NFS_MOUNT_KERBEROS 0x0100 /* 3 */
-#define NFS_MOUNT_NONLM 0x0200 /* 3 */
-#define NFS_MOUNT_BROKEN_SUID 0x0400 /* 4 */
-#define NFS_MOUNT_NOACL 0x0800 /* 4 */
-#define NFS_MOUNT_STRICTLOCK 0x1000 /* reserved for NFSv4 */
-#define NFS_MOUNT_SECFLAVOUR 0x2000 /* 5 */
-#define NFS_MOUNT_NORDIRPLUS 0x4000 /* 5 */
-#define NFS_MOUNT_UNSHARED 0x8000 /* 5 */
-#define NFS_MOUNT_FLAGMASK 0xFFFF
-
-/* The following are for internal use only */
-#define NFS_MOUNT_LOOKUP_CACHE_NONEG 0x10000
-#define NFS_MOUNT_LOOKUP_CACHE_NONE 0x20000
-#define NFS_MOUNT_NORESVPORT 0x40000
-#define NFS_MOUNT_LEGACY_INTERFACE 0x80000
-
-#define NFS_MOUNT_LOCAL_FLOCK 0x100000
-#define NFS_MOUNT_LOCAL_FCNTL 0x200000
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/nfs_page.h b/ANDROID_3.4.5/include/linux/nfs_page.h
deleted file mode 100644
index eac30d6b..00000000
--- a/ANDROID_3.4.5/include/linux/nfs_page.h
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * linux/include/linux/nfs_page.h
- *
- * Copyright (C) 2000 Trond Myklebust
- *
- * NFS page cache wrapper.
- */
-
-#ifndef _LINUX_NFS_PAGE_H
-#define _LINUX_NFS_PAGE_H
-
-
-#include <linux/list.h>
-#include <linux/pagemap.h>
-#include <linux/wait.h>
-#include <linux/sunrpc/auth.h>
-#include <linux/nfs_xdr.h>
-
-#include <linux/kref.h>
-
-/*
- * Valid flags for a dirty buffer
- */
-enum {
- PG_BUSY = 0,
- PG_MAPPED,
- PG_CLEAN,
- PG_NEED_COMMIT,
- PG_NEED_RESCHED,
- PG_PARTIAL_READ_FAILED,
- PG_COMMIT_TO_DS,
-};
-
-struct nfs_inode;
-struct nfs_page {
- struct list_head wb_list; /* Defines state of page: */
- struct page *wb_page; /* page to read in/write out */
- struct nfs_open_context *wb_context; /* File state context info */
- struct nfs_lock_context *wb_lock_context; /* lock context info */
- atomic_t wb_complete; /* i/os we're waiting for */
- pgoff_t wb_index; /* Offset >> PAGE_CACHE_SHIFT */
- unsigned int wb_offset, /* Offset & ~PAGE_CACHE_MASK */
- wb_pgbase, /* Start of page data */
- wb_bytes; /* Length of request */
- struct kref wb_kref; /* reference count */
- unsigned long wb_flags;
- struct nfs_writeverf wb_verf; /* Commit cookie */
-};
-
-struct nfs_pageio_descriptor;
-struct nfs_pageio_ops {
- void (*pg_init)(struct nfs_pageio_descriptor *, struct nfs_page *);
- bool (*pg_test)(struct nfs_pageio_descriptor *, struct nfs_page *, struct nfs_page *);
- int (*pg_doio)(struct nfs_pageio_descriptor *);
-};
-
-struct nfs_pageio_descriptor {
- struct list_head pg_list;
- unsigned long pg_bytes_written;
- size_t pg_count;
- size_t pg_bsize;
- unsigned int pg_base;
- unsigned char pg_moreio : 1,
- pg_recoalesce : 1;
-
- struct inode *pg_inode;
- const struct nfs_pageio_ops *pg_ops;
- int pg_ioflags;
- int pg_error;
- const struct rpc_call_ops *pg_rpc_callops;
- struct pnfs_layout_segment *pg_lseg;
-};
-
-#define NFS_WBACK_BUSY(req) (test_bit(PG_BUSY,&(req)->wb_flags))
-
-extern struct nfs_page *nfs_create_request(struct nfs_open_context *ctx,
- struct inode *inode,
- struct page *page,
- unsigned int offset,
- unsigned int count);
-extern void nfs_release_request(struct nfs_page *req);
-
-
-extern void nfs_pageio_init(struct nfs_pageio_descriptor *desc,
- struct inode *inode,
- const struct nfs_pageio_ops *pg_ops,
- size_t bsize,
- int how);
-extern int nfs_pageio_add_request(struct nfs_pageio_descriptor *,
- struct nfs_page *);
-extern void nfs_pageio_complete(struct nfs_pageio_descriptor *desc);
-extern void nfs_pageio_cond_complete(struct nfs_pageio_descriptor *, pgoff_t);
-extern bool nfs_generic_pg_test(struct nfs_pageio_descriptor *desc,
- struct nfs_page *prev,
- struct nfs_page *req);
-extern int nfs_wait_on_request(struct nfs_page *);
-extern void nfs_unlock_request(struct nfs_page *req);
-
-/*
- * Lock the page of an asynchronous request without getting a new reference
- */
-static inline int
-nfs_lock_request_dontget(struct nfs_page *req)
-{
- return !test_and_set_bit(PG_BUSY, &req->wb_flags);
-}
-
-static inline int
-nfs_lock_request(struct nfs_page *req)
-{
- if (test_and_set_bit(PG_BUSY, &req->wb_flags))
- return 0;
- kref_get(&req->wb_kref);
- return 1;
-}
-
-
-/**
- * nfs_list_add_request - Insert a request into a list
- * @req: request
- * @head: head of list into which to insert the request.
- */
-static inline void
-nfs_list_add_request(struct nfs_page *req, struct list_head *head)
-{
- list_add_tail(&req->wb_list, head);
-}
-
-
-/**
- * nfs_list_remove_request - Remove a request from its wb_list
- * @req: request
- */
-static inline void
-nfs_list_remove_request(struct nfs_page *req)
-{
- if (list_empty(&req->wb_list))
- return;
- list_del_init(&req->wb_list);
-}
-
-static inline struct nfs_page *
-nfs_list_entry(struct list_head *head)
-{
- return list_entry(head, struct nfs_page, wb_list);
-}
-
-static inline
-loff_t req_offset(struct nfs_page *req)
-{
- return (((loff_t)req->wb_index) << PAGE_CACHE_SHIFT) + req->wb_offset;
-}
-
-#endif /* _LINUX_NFS_PAGE_H */
diff --git a/ANDROID_3.4.5/include/linux/nfs_xdr.h b/ANDROID_3.4.5/include/linux/nfs_xdr.h
deleted file mode 100644
index 7ba3551a..00000000
--- a/ANDROID_3.4.5/include/linux/nfs_xdr.h
+++ /dev/null
@@ -1,1315 +0,0 @@
-#ifndef _LINUX_NFS_XDR_H
-#define _LINUX_NFS_XDR_H
-
-#include <linux/nfsacl.h>
-#include <linux/sunrpc/gss_api.h>
-
-/*
- * To change the maximum rsize and wsize supported by the NFS client, adjust
- * NFS_MAX_FILE_IO_SIZE. 64KB is a typical maximum, but some servers can
- * support a megabyte or more. The default is left at 4096 bytes, which is
- * reasonable for NFS over UDP.
- */
-#define NFS_MAX_FILE_IO_SIZE (1048576U)
-#define NFS_DEF_FILE_IO_SIZE (4096U)
-#define NFS_MIN_FILE_IO_SIZE (1024U)
-
-/* Forward declaration for NFS v3 */
-struct nfs4_secinfo_flavors;
-
-struct nfs4_string {
- unsigned int len;
- char *data;
-};
-
-struct nfs_fsid {
- uint64_t major;
- uint64_t minor;
-};
-
-/*
- * Helper for checking equality between 2 fsids.
- */
-static inline int nfs_fsid_equal(const struct nfs_fsid *a, const struct nfs_fsid *b)
-{
- return a->major == b->major && a->minor == b->minor;
-}
-
-struct nfs_fattr {
- unsigned int valid; /* which fields are valid */
- umode_t mode;
- __u32 nlink;
- __u32 uid;
- __u32 gid;
- dev_t rdev;
- __u64 size;
- union {
- struct {
- __u32 blocksize;
- __u32 blocks;
- } nfs2;
- struct {
- __u64 used;
- } nfs3;
- } du;
- struct nfs_fsid fsid;
- __u64 fileid;
- __u64 mounted_on_fileid;
- struct timespec atime;
- struct timespec mtime;
- struct timespec ctime;
- __u64 change_attr; /* NFSv4 change attribute */
- __u64 pre_change_attr;/* pre-op NFSv4 change attribute */
- __u64 pre_size; /* pre_op_attr.size */
- struct timespec pre_mtime; /* pre_op_attr.mtime */
- struct timespec pre_ctime; /* pre_op_attr.ctime */
- unsigned long time_start;
- unsigned long gencount;
- struct nfs4_string *owner_name;
- struct nfs4_string *group_name;
-};
-
-#define NFS_ATTR_FATTR_TYPE (1U << 0)
-#define NFS_ATTR_FATTR_MODE (1U << 1)
-#define NFS_ATTR_FATTR_NLINK (1U << 2)
-#define NFS_ATTR_FATTR_OWNER (1U << 3)
-#define NFS_ATTR_FATTR_GROUP (1U << 4)
-#define NFS_ATTR_FATTR_RDEV (1U << 5)
-#define NFS_ATTR_FATTR_SIZE (1U << 6)
-#define NFS_ATTR_FATTR_PRESIZE (1U << 7)
-#define NFS_ATTR_FATTR_BLOCKS_USED (1U << 8)
-#define NFS_ATTR_FATTR_SPACE_USED (1U << 9)
-#define NFS_ATTR_FATTR_FSID (1U << 10)
-#define NFS_ATTR_FATTR_FILEID (1U << 11)
-#define NFS_ATTR_FATTR_ATIME (1U << 12)
-#define NFS_ATTR_FATTR_MTIME (1U << 13)
-#define NFS_ATTR_FATTR_CTIME (1U << 14)
-#define NFS_ATTR_FATTR_PREMTIME (1U << 15)
-#define NFS_ATTR_FATTR_PRECTIME (1U << 16)
-#define NFS_ATTR_FATTR_CHANGE (1U << 17)
-#define NFS_ATTR_FATTR_PRECHANGE (1U << 18)
-#define NFS_ATTR_FATTR_V4_LOCATIONS (1U << 19)
-#define NFS_ATTR_FATTR_V4_REFERRAL (1U << 20)
-#define NFS_ATTR_FATTR_MOUNTPOINT (1U << 21)
-#define NFS_ATTR_FATTR_MOUNTED_ON_FILEID (1U << 22)
-#define NFS_ATTR_FATTR_OWNER_NAME (1U << 23)
-#define NFS_ATTR_FATTR_GROUP_NAME (1U << 24)
-
-#define NFS_ATTR_FATTR (NFS_ATTR_FATTR_TYPE \
- | NFS_ATTR_FATTR_MODE \
- | NFS_ATTR_FATTR_NLINK \
- | NFS_ATTR_FATTR_OWNER \
- | NFS_ATTR_FATTR_GROUP \
- | NFS_ATTR_FATTR_RDEV \
- | NFS_ATTR_FATTR_SIZE \
- | NFS_ATTR_FATTR_FSID \
- | NFS_ATTR_FATTR_FILEID \
- | NFS_ATTR_FATTR_ATIME \
- | NFS_ATTR_FATTR_MTIME \
- | NFS_ATTR_FATTR_CTIME)
-#define NFS_ATTR_FATTR_V2 (NFS_ATTR_FATTR \
- | NFS_ATTR_FATTR_BLOCKS_USED)
-#define NFS_ATTR_FATTR_V3 (NFS_ATTR_FATTR \
- | NFS_ATTR_FATTR_SPACE_USED)
-#define NFS_ATTR_FATTR_V4 (NFS_ATTR_FATTR \
- | NFS_ATTR_FATTR_SPACE_USED \
- | NFS_ATTR_FATTR_CHANGE)
-
-/*
- * Info on the file system
- */
-struct nfs_fsinfo {
- struct nfs_fattr *fattr; /* Post-op attributes */
- __u32 rtmax; /* max. read transfer size */
- __u32 rtpref; /* pref. read transfer size */
- __u32 rtmult; /* reads should be multiple of this */
- __u32 wtmax; /* max. write transfer size */
- __u32 wtpref; /* pref. write transfer size */
- __u32 wtmult; /* writes should be multiple of this */
- __u32 dtpref; /* pref. readdir transfer size */
- __u64 maxfilesize;
- struct timespec time_delta; /* server time granularity */
- __u32 lease_time; /* in seconds */
- __u32 layouttype; /* supported pnfs layout driver */
- __u32 blksize; /* preferred pnfs io block size */
-};
-
-struct nfs_fsstat {
- struct nfs_fattr *fattr; /* Post-op attributes */
- __u64 tbytes; /* total size in bytes */
- __u64 fbytes; /* # of free bytes */
- __u64 abytes; /* # of bytes available to user */
- __u64 tfiles; /* # of files */
- __u64 ffiles; /* # of free files */
- __u64 afiles; /* # of files available to user */
-};
-
-struct nfs2_fsstat {
- __u32 tsize; /* Server transfer size */
- __u32 bsize; /* Filesystem block size */
- __u32 blocks; /* No. of "bsize" blocks on filesystem */
- __u32 bfree; /* No. of free "bsize" blocks */
- __u32 bavail; /* No. of available "bsize" blocks */
-};
-
-struct nfs_pathconf {
- struct nfs_fattr *fattr; /* Post-op attributes */
- __u32 max_link; /* max # of hard links */
- __u32 max_namelen; /* max name length */
-};
-
-struct nfs4_change_info {
- u32 atomic;
- u64 before;
- u64 after;
-};
-
-struct nfs_seqid;
-
-/* nfs41 sessions channel attributes */
-struct nfs4_channel_attrs {
- u32 max_rqst_sz;
- u32 max_resp_sz;
- u32 max_resp_sz_cached;
- u32 max_ops;
- u32 max_reqs;
-};
-
-/* nfs41 sessions slot seqid */
-struct nfs4_slot {
- u32 seq_nr;
-};
-
-struct nfs4_sequence_args {
- struct nfs4_session *sa_session;
- u32 sa_slotid;
- u8 sa_cache_this;
-};
-
-struct nfs4_sequence_res {
- struct nfs4_session *sr_session;
- struct nfs4_slot *sr_slot; /* slot used to send request */
- int sr_status; /* sequence operation status */
- unsigned long sr_renewal_time;
- u32 sr_status_flags;
-};
-
-struct nfs4_get_lease_time_args {
- struct nfs4_sequence_args la_seq_args;
-};
-
-struct nfs4_get_lease_time_res {
- struct nfs_fsinfo *lr_fsinfo;
- struct nfs4_sequence_res lr_seq_res;
-};
-
-#define PNFS_LAYOUT_MAXSIZE 4096
-
-struct nfs4_layoutdriver_data {
- struct page **pages;
- __u32 pglen;
- __u32 len;
-};
-
-struct pnfs_layout_range {
- u32 iomode;
- u64 offset;
- u64 length;
-};
-
-struct nfs4_layoutget_args {
- __u32 type;
- struct pnfs_layout_range range;
- __u64 minlength;
- __u32 maxcount;
- struct inode *inode;
- struct nfs_open_context *ctx;
- struct nfs4_sequence_args seq_args;
- nfs4_stateid stateid;
- struct nfs4_layoutdriver_data layout;
-};
-
-struct nfs4_layoutget_res {
- __u32 return_on_close;
- struct pnfs_layout_range range;
- __u32 type;
- nfs4_stateid stateid;
- struct nfs4_sequence_res seq_res;
- struct nfs4_layoutdriver_data *layoutp;
-};
-
-struct nfs4_layoutget {
- struct nfs4_layoutget_args args;
- struct nfs4_layoutget_res res;
- struct pnfs_layout_segment **lsegpp;
- gfp_t gfp_flags;
-};
-
-struct nfs4_getdevicelist_args {
- const struct nfs_fh *fh;
- u32 layoutclass;
- struct nfs4_sequence_args seq_args;
-};
-
-struct nfs4_getdevicelist_res {
- struct pnfs_devicelist *devlist;
- struct nfs4_sequence_res seq_res;
-};
-
-struct nfs4_getdeviceinfo_args {
- struct pnfs_device *pdev;
- struct nfs4_sequence_args seq_args;
-};
-
-struct nfs4_getdeviceinfo_res {
- struct pnfs_device *pdev;
- struct nfs4_sequence_res seq_res;
-};
-
-struct nfs4_layoutcommit_args {
- nfs4_stateid stateid;
- __u64 lastbytewritten;
- struct inode *inode;
- const u32 *bitmask;
- struct nfs4_sequence_args seq_args;
-};
-
-struct nfs4_layoutcommit_res {
- struct nfs_fattr *fattr;
- const struct nfs_server *server;
- struct nfs4_sequence_res seq_res;
- int status;
-};
-
-struct nfs4_layoutcommit_data {
- struct rpc_task task;
- struct nfs_fattr fattr;
- struct list_head lseg_list;
- struct rpc_cred *cred;
- struct nfs4_layoutcommit_args args;
- struct nfs4_layoutcommit_res res;
-};
-
-struct nfs4_layoutreturn_args {
- struct pnfs_layout_hdr *layout;
- struct inode *inode;
- nfs4_stateid stateid;
- __u32 layout_type;
- struct nfs4_sequence_args seq_args;
-};
-
-struct nfs4_layoutreturn_res {
- struct nfs4_sequence_res seq_res;
- u32 lrs_present;
- nfs4_stateid stateid;
-};
-
-struct nfs4_layoutreturn {
- struct nfs4_layoutreturn_args args;
- struct nfs4_layoutreturn_res res;
- struct rpc_cred *cred;
- struct nfs_client *clp;
- int rpc_status;
-};
-
-struct stateowner_id {
- __u64 create_time;
- __u32 uniquifier;
-};
-
-/*
- * Arguments to the open call.
- */
-struct nfs_openargs {
- const struct nfs_fh * fh;
- struct nfs_seqid * seqid;
- int open_flags;
- fmode_t fmode;
- __u64 clientid;
- struct stateowner_id id;
- union {
- struct {
- struct iattr * attrs; /* UNCHECKED, GUARDED */
- nfs4_verifier verifier; /* EXCLUSIVE */
- };
- nfs4_stateid delegation; /* CLAIM_DELEGATE_CUR */
- fmode_t delegation_type; /* CLAIM_PREVIOUS */
- } u;
- const struct qstr * name;
- const struct nfs_server *server; /* Needed for ID mapping */
- const u32 * bitmask;
- const u32 * dir_bitmask;
- __u32 claim;
- struct nfs4_sequence_args seq_args;
-};
-
-struct nfs_openres {
- nfs4_stateid stateid;
- struct nfs_fh fh;
- struct nfs4_change_info cinfo;
- __u32 rflags;
- struct nfs_fattr * f_attr;
- struct nfs_fattr * dir_attr;
- struct nfs_seqid * seqid;
- const struct nfs_server *server;
- fmode_t delegation_type;
- nfs4_stateid delegation;
- __u32 do_recall;
- __u64 maxsize;
- __u32 attrset[NFS4_BITMAP_SIZE];
- struct nfs4_string *owner;
- struct nfs4_string *group_owner;
- struct nfs4_sequence_res seq_res;
-};
-
-/*
- * Arguments to the open_confirm call.
- */
-struct nfs_open_confirmargs {
- const struct nfs_fh * fh;
- nfs4_stateid * stateid;
- struct nfs_seqid * seqid;
-};
-
-struct nfs_open_confirmres {
- nfs4_stateid stateid;
- struct nfs_seqid * seqid;
-};
-
-/*
- * Arguments to the close call.
- */
-struct nfs_closeargs {
- struct nfs_fh * fh;
- nfs4_stateid * stateid;
- struct nfs_seqid * seqid;
- fmode_t fmode;
- const u32 * bitmask;
- struct nfs4_sequence_args seq_args;
-};
-
-struct nfs_closeres {
- nfs4_stateid stateid;
- struct nfs_fattr * fattr;
- struct nfs_seqid * seqid;
- const struct nfs_server *server;
- struct nfs4_sequence_res seq_res;
-};
-/*
- * * Arguments to the lock,lockt, and locku call.
- * */
-struct nfs_lowner {
- __u64 clientid;
- __u64 id;
- dev_t s_dev;
-};
-
-struct nfs_lock_args {
- struct nfs_fh * fh;
- struct file_lock * fl;
- struct nfs_seqid * lock_seqid;
- nfs4_stateid * lock_stateid;
- struct nfs_seqid * open_seqid;
- nfs4_stateid * open_stateid;
- struct nfs_lowner lock_owner;
- unsigned char block : 1;
- unsigned char reclaim : 1;
- unsigned char new_lock_owner : 1;
- struct nfs4_sequence_args seq_args;
-};
-
-struct nfs_lock_res {
- nfs4_stateid stateid;
- struct nfs_seqid * lock_seqid;
- struct nfs_seqid * open_seqid;
- struct nfs4_sequence_res seq_res;
-};
-
-struct nfs_locku_args {
- struct nfs_fh * fh;
- struct file_lock * fl;
- struct nfs_seqid * seqid;
- nfs4_stateid * stateid;
- struct nfs4_sequence_args seq_args;
-};
-
-struct nfs_locku_res {
- nfs4_stateid stateid;
- struct nfs_seqid * seqid;
- struct nfs4_sequence_res seq_res;
-};
-
-struct nfs_lockt_args {
- struct nfs_fh * fh;
- struct file_lock * fl;
- struct nfs_lowner lock_owner;
- struct nfs4_sequence_args seq_args;
-};
-
-struct nfs_lockt_res {
- struct file_lock * denied; /* LOCK, LOCKT failed */
- struct nfs4_sequence_res seq_res;
-};
-
-struct nfs_release_lockowner_args {
- struct nfs_lowner lock_owner;
-};
-
-struct nfs4_delegreturnargs {
- const struct nfs_fh *fhandle;
- const nfs4_stateid *stateid;
- const u32 * bitmask;
- struct nfs4_sequence_args seq_args;
-};
-
-struct nfs4_delegreturnres {
- struct nfs_fattr * fattr;
- const struct nfs_server *server;
- struct nfs4_sequence_res seq_res;
-};
-
-/*
- * Arguments to the read call.
- */
-struct nfs_readargs {
- struct nfs_fh * fh;
- struct nfs_open_context *context;
- struct nfs_lock_context *lock_context;
- __u64 offset;
- __u32 count;
- unsigned int pgbase;
- struct page ** pages;
- struct nfs4_sequence_args seq_args;
-};
-
-struct nfs_readres {
- struct nfs_fattr * fattr;
- __u32 count;
- int eof;
- struct nfs4_sequence_res seq_res;
-};
-
-/*
- * Arguments to the write call.
- */
-struct nfs_writeargs {
- struct nfs_fh * fh;
- struct nfs_open_context *context;
- struct nfs_lock_context *lock_context;
- __u64 offset;
- __u32 count;
- enum nfs3_stable_how stable;
- unsigned int pgbase;
- struct page ** pages;
- const u32 * bitmask;
- struct nfs4_sequence_args seq_args;
-};
-
-struct nfs_writeverf {
- enum nfs3_stable_how committed;
- __be32 verifier[2];
-};
-
-struct nfs_writeres {
- struct nfs_fattr * fattr;
- struct nfs_writeverf * verf;
- __u32 count;
- const struct nfs_server *server;
- struct nfs4_sequence_res seq_res;
-};
-
-/*
- * Common arguments to the unlink call
- */
-struct nfs_removeargs {
- const struct nfs_fh *fh;
- struct qstr name;
- const u32 * bitmask;
- struct nfs4_sequence_args seq_args;
-};
-
-struct nfs_removeres {
- const struct nfs_server *server;
- struct nfs_fattr *dir_attr;
- struct nfs4_change_info cinfo;
- struct nfs4_sequence_res seq_res;
-};
-
-/*
- * Common arguments to the rename call
- */
-struct nfs_renameargs {
- const struct nfs_fh *old_dir;
- const struct nfs_fh *new_dir;
- const struct qstr *old_name;
- const struct qstr *new_name;
- const u32 *bitmask;
- struct nfs4_sequence_args seq_args;
-};
-
-struct nfs_renameres {
- const struct nfs_server *server;
- struct nfs4_change_info old_cinfo;
- struct nfs_fattr *old_fattr;
- struct nfs4_change_info new_cinfo;
- struct nfs_fattr *new_fattr;
- struct nfs4_sequence_res seq_res;
-};
-
-/*
- * Argument struct for decode_entry function
- */
-struct nfs_entry {
- __u64 ino;
- __u64 cookie,
- prev_cookie;
- const char * name;
- unsigned int len;
- int eof;
- struct nfs_fh * fh;
- struct nfs_fattr * fattr;
- unsigned char d_type;
- struct nfs_server * server;
-};
-
-/*
- * The following types are for NFSv2 only.
- */
-struct nfs_sattrargs {
- struct nfs_fh * fh;
- struct iattr * sattr;
-};
-
-struct nfs_diropargs {
- struct nfs_fh * fh;
- const char * name;
- unsigned int len;
-};
-
-struct nfs_createargs {
- struct nfs_fh * fh;
- const char * name;
- unsigned int len;
- struct iattr * sattr;
-};
-
-struct nfs_setattrargs {
- struct nfs_fh * fh;
- nfs4_stateid stateid;
- struct iattr * iap;
- const struct nfs_server * server; /* Needed for name mapping */
- const u32 * bitmask;
- struct nfs4_sequence_args seq_args;
-};
-
-struct nfs_setaclargs {
- struct nfs_fh * fh;
- size_t acl_len;
- unsigned int acl_pgbase;
- struct page ** acl_pages;
- struct nfs4_sequence_args seq_args;
-};
-
-struct nfs_setaclres {
- struct nfs4_sequence_res seq_res;
-};
-
-struct nfs_getaclargs {
- struct nfs_fh * fh;
- size_t acl_len;
- unsigned int acl_pgbase;
- struct page ** acl_pages;
- struct nfs4_sequence_args seq_args;
-};
-
-/* getxattr ACL interface flags */
-#define NFS4_ACL_LEN_REQUEST 0x0001 /* zero length getxattr buffer */
-struct nfs_getaclres {
- size_t acl_len;
- size_t acl_data_offset;
- int acl_flags;
- struct page * acl_scratch;
- struct nfs4_sequence_res seq_res;
-};
-
-struct nfs_setattrres {
- struct nfs_fattr * fattr;
- const struct nfs_server * server;
- struct nfs4_sequence_res seq_res;
-};
-
-struct nfs_linkargs {
- struct nfs_fh * fromfh;
- struct nfs_fh * tofh;
- const char * toname;
- unsigned int tolen;
-};
-
-struct nfs_symlinkargs {
- struct nfs_fh * fromfh;
- const char * fromname;
- unsigned int fromlen;
- struct page ** pages;
- unsigned int pathlen;
- struct iattr * sattr;
-};
-
-struct nfs_readdirargs {
- struct nfs_fh * fh;
- __u32 cookie;
- unsigned int count;
- struct page ** pages;
-};
-
-struct nfs3_getaclargs {
- struct nfs_fh * fh;
- int mask;
- struct page ** pages;
-};
-
-struct nfs3_setaclargs {
- struct inode * inode;
- int mask;
- struct posix_acl * acl_access;
- struct posix_acl * acl_default;
- size_t len;
- unsigned int npages;
- struct page ** pages;
-};
-
-struct nfs_diropok {
- struct nfs_fh * fh;
- struct nfs_fattr * fattr;
-};
-
-struct nfs_readlinkargs {
- struct nfs_fh * fh;
- unsigned int pgbase;
- unsigned int pglen;
- struct page ** pages;
-};
-
-struct nfs3_sattrargs {
- struct nfs_fh * fh;
- struct iattr * sattr;
- unsigned int guard;
- struct timespec guardtime;
-};
-
-struct nfs3_diropargs {
- struct nfs_fh * fh;
- const char * name;
- unsigned int len;
-};
-
-struct nfs3_accessargs {
- struct nfs_fh * fh;
- __u32 access;
-};
-
-struct nfs3_createargs {
- struct nfs_fh * fh;
- const char * name;
- unsigned int len;
- struct iattr * sattr;
- enum nfs3_createmode createmode;
- __be32 verifier[2];
-};
-
-struct nfs3_mkdirargs {
- struct nfs_fh * fh;
- const char * name;
- unsigned int len;
- struct iattr * sattr;
-};
-
-struct nfs3_symlinkargs {
- struct nfs_fh * fromfh;
- const char * fromname;
- unsigned int fromlen;
- struct page ** pages;
- unsigned int pathlen;
- struct iattr * sattr;
-};
-
-struct nfs3_mknodargs {
- struct nfs_fh * fh;
- const char * name;
- unsigned int len;
- enum nfs3_ftype type;
- struct iattr * sattr;
- dev_t rdev;
-};
-
-struct nfs3_linkargs {
- struct nfs_fh * fromfh;
- struct nfs_fh * tofh;
- const char * toname;
- unsigned int tolen;
-};
-
-struct nfs3_readdirargs {
- struct nfs_fh * fh;
- __u64 cookie;
- __be32 verf[2];
- int plus;
- unsigned int count;
- struct page ** pages;
-};
-
-struct nfs3_diropres {
- struct nfs_fattr * dir_attr;
- struct nfs_fh * fh;
- struct nfs_fattr * fattr;
-};
-
-struct nfs3_accessres {
- struct nfs_fattr * fattr;
- __u32 access;
-};
-
-struct nfs3_readlinkargs {
- struct nfs_fh * fh;
- unsigned int pgbase;
- unsigned int pglen;
- struct page ** pages;
-};
-
-struct nfs3_linkres {
- struct nfs_fattr * dir_attr;
- struct nfs_fattr * fattr;
-};
-
-struct nfs3_readdirres {
- struct nfs_fattr * dir_attr;
- __be32 * verf;
- int plus;
-};
-
-struct nfs3_getaclres {
- struct nfs_fattr * fattr;
- int mask;
- unsigned int acl_access_count;
- unsigned int acl_default_count;
- struct posix_acl * acl_access;
- struct posix_acl * acl_default;
-};
-
-#ifdef CONFIG_NFS_V4
-
-typedef u64 clientid4;
-
-struct nfs4_accessargs {
- const struct nfs_fh * fh;
- const u32 * bitmask;
- u32 access;
- struct nfs4_sequence_args seq_args;
-};
-
-struct nfs4_accessres {
- const struct nfs_server * server;
- struct nfs_fattr * fattr;
- u32 supported;
- u32 access;
- struct nfs4_sequence_res seq_res;
-};
-
-struct nfs4_create_arg {
- u32 ftype;
- union {
- struct {
- struct page ** pages;
- unsigned int len;
- } symlink; /* NF4LNK */
- struct {
- u32 specdata1;
- u32 specdata2;
- } device; /* NF4BLK, NF4CHR */
- } u;
- const struct qstr * name;
- const struct nfs_server * server;
- const struct iattr * attrs;
- const struct nfs_fh * dir_fh;
- const u32 * bitmask;
- struct nfs4_sequence_args seq_args;
-};
-
-struct nfs4_create_res {
- const struct nfs_server * server;
- struct nfs_fh * fh;
- struct nfs_fattr * fattr;
- struct nfs4_change_info dir_cinfo;
- struct nfs_fattr * dir_fattr;
- struct nfs4_sequence_res seq_res;
-};
-
-struct nfs4_fsinfo_arg {
- const struct nfs_fh * fh;
- const u32 * bitmask;
- struct nfs4_sequence_args seq_args;
-};
-
-struct nfs4_fsinfo_res {
- struct nfs_fsinfo *fsinfo;
- struct nfs4_sequence_res seq_res;
-};
-
-struct nfs4_getattr_arg {
- const struct nfs_fh * fh;
- const u32 * bitmask;
- struct nfs4_sequence_args seq_args;
-};
-
-struct nfs4_getattr_res {
- const struct nfs_server * server;
- struct nfs_fattr * fattr;
- struct nfs4_sequence_res seq_res;
-};
-
-struct nfs4_link_arg {
- const struct nfs_fh * fh;
- const struct nfs_fh * dir_fh;
- const struct qstr * name;
- const u32 * bitmask;
- struct nfs4_sequence_args seq_args;
-};
-
-struct nfs4_link_res {
- const struct nfs_server * server;
- struct nfs_fattr * fattr;
- struct nfs4_change_info cinfo;
- struct nfs_fattr * dir_attr;
- struct nfs4_sequence_res seq_res;
-};
-
-
-struct nfs4_lookup_arg {
- const struct nfs_fh * dir_fh;
- const struct qstr * name;
- const u32 * bitmask;
- struct nfs4_sequence_args seq_args;
-};
-
-struct nfs4_lookup_res {
- const struct nfs_server * server;
- struct nfs_fattr * fattr;
- struct nfs_fh * fh;
- struct nfs4_sequence_res seq_res;
-};
-
-struct nfs4_lookup_root_arg {
- const u32 * bitmask;
- struct nfs4_sequence_args seq_args;
-};
-
-struct nfs4_pathconf_arg {
- const struct nfs_fh * fh;
- const u32 * bitmask;
- struct nfs4_sequence_args seq_args;
-};
-
-struct nfs4_pathconf_res {
- struct nfs_pathconf *pathconf;
- struct nfs4_sequence_res seq_res;
-};
-
-struct nfs4_readdir_arg {
- const struct nfs_fh * fh;
- u64 cookie;
- nfs4_verifier verifier;
- u32 count;
- struct page ** pages; /* zero-copy data */
- unsigned int pgbase; /* zero-copy data */
- const u32 * bitmask;
- int plus;
- struct nfs4_sequence_args seq_args;
-};
-
-struct nfs4_readdir_res {
- nfs4_verifier verifier;
- unsigned int pgbase;
- struct nfs4_sequence_res seq_res;
-};
-
-struct nfs4_readlink {
- const struct nfs_fh * fh;
- unsigned int pgbase;
- unsigned int pglen; /* zero-copy data */
- struct page ** pages; /* zero-copy data */
- struct nfs4_sequence_args seq_args;
-};
-
-struct nfs4_readlink_res {
- struct nfs4_sequence_res seq_res;
-};
-
-#define NFS4_SETCLIENTID_NAMELEN (127)
-struct nfs4_setclientid {
- const nfs4_verifier * sc_verifier;
- unsigned int sc_name_len;
- char sc_name[NFS4_SETCLIENTID_NAMELEN + 1];
- u32 sc_prog;
- unsigned int sc_netid_len;
- char sc_netid[RPCBIND_MAXNETIDLEN + 1];
- unsigned int sc_uaddr_len;
- char sc_uaddr[RPCBIND_MAXUADDRLEN + 1];
- u32 sc_cb_ident;
-};
-
-struct nfs4_setclientid_res {
- u64 clientid;
- nfs4_verifier confirm;
-};
-
-struct nfs4_statfs_arg {
- const struct nfs_fh * fh;
- const u32 * bitmask;
- struct nfs4_sequence_args seq_args;
-};
-
-struct nfs4_statfs_res {
- struct nfs_fsstat *fsstat;
- struct nfs4_sequence_res seq_res;
-};
-
-struct nfs4_server_caps_arg {
- struct nfs_fh *fhandle;
- struct nfs4_sequence_args seq_args;
-};
-
-struct nfs4_server_caps_res {
- u32 attr_bitmask[3];
- u32 acl_bitmask;
- u32 has_links;
- u32 has_symlinks;
- u32 fh_expire_type;
- struct nfs4_sequence_res seq_res;
-};
-
-#define NFS4_PATHNAME_MAXCOMPONENTS 512
-struct nfs4_pathname {
- unsigned int ncomponents;
- struct nfs4_string components[NFS4_PATHNAME_MAXCOMPONENTS];
-};
-
-#define NFS4_FS_LOCATION_MAXSERVERS 10
-struct nfs4_fs_location {
- unsigned int nservers;
- struct nfs4_string servers[NFS4_FS_LOCATION_MAXSERVERS];
- struct nfs4_pathname rootpath;
-};
-
-#define NFS4_FS_LOCATIONS_MAXENTRIES 10
-struct nfs4_fs_locations {
- struct nfs_fattr fattr;
- const struct nfs_server *server;
- struct nfs4_pathname fs_path;
- int nlocations;
- struct nfs4_fs_location locations[NFS4_FS_LOCATIONS_MAXENTRIES];
-};
-
-struct nfs4_fs_locations_arg {
- const struct nfs_fh *dir_fh;
- const struct qstr *name;
- struct page *page;
- const u32 *bitmask;
- struct nfs4_sequence_args seq_args;
-};
-
-struct nfs4_fs_locations_res {
- struct nfs4_fs_locations *fs_locations;
- struct nfs4_sequence_res seq_res;
-};
-
-struct nfs4_secinfo_oid {
- unsigned int len;
- char data[GSS_OID_MAX_LEN];
-};
-
-struct nfs4_secinfo_gss {
- struct nfs4_secinfo_oid sec_oid4;
- unsigned int qop4;
- unsigned int service;
-};
-
-struct nfs4_secinfo_flavor {
- unsigned int flavor;
- struct nfs4_secinfo_gss gss;
-};
-
-struct nfs4_secinfo_flavors {
- unsigned int num_flavors;
- struct nfs4_secinfo_flavor flavors[0];
-};
-
-struct nfs4_secinfo_arg {
- const struct nfs_fh *dir_fh;
- const struct qstr *name;
- struct nfs4_sequence_args seq_args;
-};
-
-struct nfs4_secinfo_res {
- struct nfs4_secinfo_flavors *flavors;
- struct nfs4_sequence_res seq_res;
-};
-
-#endif /* CONFIG_NFS_V4 */
-
-struct nfstime4 {
- u64 seconds;
- u32 nseconds;
-};
-
-#ifdef CONFIG_NFS_V4_1
-#define NFS4_EXCHANGE_ID_LEN (48)
-struct nfs41_exchange_id_args {
- struct nfs_client *client;
- nfs4_verifier *verifier;
- unsigned int id_len;
- char id[NFS4_EXCHANGE_ID_LEN];
- u32 flags;
-};
-
-struct server_owner {
- uint64_t minor_id;
- uint32_t major_id_sz;
- char major_id[NFS4_OPAQUE_LIMIT];
-};
-
-struct server_scope {
- uint32_t server_scope_sz;
- char server_scope[NFS4_OPAQUE_LIMIT];
-};
-
-struct nfs41_impl_id {
- char domain[NFS4_OPAQUE_LIMIT + 1];
- char name[NFS4_OPAQUE_LIMIT + 1];
- struct nfstime4 date;
-};
-
-struct nfs41_exchange_id_res {
- struct nfs_client *client;
- u32 flags;
- struct server_scope *server_scope;
- struct nfs41_impl_id *impl_id;
-};
-
-struct nfs41_create_session_args {
- struct nfs_client *client;
- uint32_t flags;
- uint32_t cb_program;
- struct nfs4_channel_attrs fc_attrs; /* Fore Channel */
- struct nfs4_channel_attrs bc_attrs; /* Back Channel */
-};
-
-struct nfs41_create_session_res {
- struct nfs_client *client;
-};
-
-struct nfs41_reclaim_complete_args {
- /* In the future extend to include curr_fh for use with migration */
- unsigned char one_fs:1;
- struct nfs4_sequence_args seq_args;
-};
-
-struct nfs41_reclaim_complete_res {
- struct nfs4_sequence_res seq_res;
-};
-
-#define SECINFO_STYLE_CURRENT_FH 0
-#define SECINFO_STYLE_PARENT 1
-struct nfs41_secinfo_no_name_args {
- int style;
- struct nfs4_sequence_args seq_args;
-};
-
-struct nfs41_test_stateid_args {
- nfs4_stateid *stateid;
- struct nfs4_sequence_args seq_args;
-};
-
-struct nfs41_test_stateid_res {
- unsigned int status;
- struct nfs4_sequence_res seq_res;
-};
-
-struct nfs41_free_stateid_args {
- nfs4_stateid *stateid;
- struct nfs4_sequence_args seq_args;
-};
-
-struct nfs41_free_stateid_res {
- unsigned int status;
- struct nfs4_sequence_res seq_res;
-};
-
-#endif /* CONFIG_NFS_V4_1 */
-
-struct nfs_page;
-
-#define NFS_PAGEVEC_SIZE (8U)
-
-struct nfs_read_data {
- struct rpc_task task;
- struct inode *inode;
- struct rpc_cred *cred;
- struct nfs_fattr fattr; /* fattr storage */
- struct list_head pages; /* Coalesced read requests */
- struct list_head list; /* lists of struct nfs_read_data */
- struct nfs_page *req; /* multi ops per nfs_page */
- struct page **pagevec;
- unsigned int npages; /* Max length of pagevec */
- struct nfs_readargs args;
- struct nfs_readres res;
- unsigned long timestamp; /* For lease renewal */
- struct pnfs_layout_segment *lseg;
- struct nfs_client *ds_clp; /* pNFS data server */
- const struct rpc_call_ops *mds_ops;
- int (*read_done_cb) (struct rpc_task *task, struct nfs_read_data *data);
- __u64 mds_offset;
- int pnfs_error;
- struct page *page_array[NFS_PAGEVEC_SIZE];
-};
-
-struct nfs_write_data {
- struct rpc_task task;
- struct inode *inode;
- struct rpc_cred *cred;
- struct nfs_fattr fattr;
- struct nfs_writeverf verf;
- struct list_head pages; /* Coalesced requests we wish to flush */
- struct list_head list; /* lists of struct nfs_write_data */
- struct nfs_page *req; /* multi ops per nfs_page */
- struct page **pagevec;
- unsigned int npages; /* Max length of pagevec */
- struct nfs_writeargs args; /* argument struct */
- struct nfs_writeres res; /* result struct */
- struct pnfs_layout_segment *lseg;
- struct nfs_client *ds_clp; /* pNFS data server */
- int ds_commit_index;
- const struct rpc_call_ops *mds_ops;
- int (*write_done_cb) (struct rpc_task *task, struct nfs_write_data *data);
-#ifdef CONFIG_NFS_V4
- unsigned long timestamp; /* For lease renewal */
-#endif
- __u64 mds_offset; /* Filelayout dense stripe */
- int pnfs_error;
- struct page *page_array[NFS_PAGEVEC_SIZE];
-};
-
-struct nfs_unlinkdata {
- struct hlist_node list;
- struct nfs_removeargs args;
- struct nfs_removeres res;
- struct inode *dir;
- struct rpc_cred *cred;
- struct nfs_fattr dir_attr;
-};
-
-struct nfs_renamedata {
- struct nfs_renameargs args;
- struct nfs_renameres res;
- struct rpc_cred *cred;
- struct inode *old_dir;
- struct dentry *old_dentry;
- struct nfs_fattr old_fattr;
- struct inode *new_dir;
- struct dentry *new_dentry;
- struct nfs_fattr new_fattr;
-};
-
-struct nfs_access_entry;
-struct nfs_client;
-struct rpc_timeout;
-
-/*
- * RPC procedure vector for NFSv2/NFSv3 demuxing
- */
-struct nfs_rpc_ops {
- u32 version; /* Protocol version */
- const struct dentry_operations *dentry_ops;
- const struct inode_operations *dir_inode_ops;
- const struct inode_operations *file_inode_ops;
- const struct file_operations *file_ops;
-
- int (*getroot) (struct nfs_server *, struct nfs_fh *,
- struct nfs_fsinfo *);
- int (*getattr) (struct nfs_server *, struct nfs_fh *,
- struct nfs_fattr *);
- int (*setattr) (struct dentry *, struct nfs_fattr *,
- struct iattr *);
- int (*lookup) (struct rpc_clnt *clnt, struct inode *, struct qstr *,
- struct nfs_fh *, struct nfs_fattr *);
- int (*access) (struct inode *, struct nfs_access_entry *);
- int (*readlink)(struct inode *, struct page *, unsigned int,
- unsigned int);
- int (*create) (struct inode *, struct dentry *,
- struct iattr *, int, struct nfs_open_context *);
- int (*remove) (struct inode *, struct qstr *);
- void (*unlink_setup) (struct rpc_message *, struct inode *dir);
- void (*unlink_rpc_prepare) (struct rpc_task *, struct nfs_unlinkdata *);
- int (*unlink_done) (struct rpc_task *, struct inode *);
- int (*rename) (struct inode *, struct qstr *,
- struct inode *, struct qstr *);
- void (*rename_setup) (struct rpc_message *msg, struct inode *dir);
- void (*rename_rpc_prepare)(struct rpc_task *task, struct nfs_renamedata *);
- int (*rename_done) (struct rpc_task *task, struct inode *old_dir, struct inode *new_dir);
- int (*link) (struct inode *, struct inode *, struct qstr *);
- int (*symlink) (struct inode *, struct dentry *, struct page *,
- unsigned int, struct iattr *);
- int (*mkdir) (struct inode *, struct dentry *, struct iattr *);
- int (*rmdir) (struct inode *, struct qstr *);
- int (*readdir) (struct dentry *, struct rpc_cred *,
- u64, struct page **, unsigned int, int);
- int (*mknod) (struct inode *, struct dentry *, struct iattr *,
- dev_t);
- int (*statfs) (struct nfs_server *, struct nfs_fh *,
- struct nfs_fsstat *);
- int (*fsinfo) (struct nfs_server *, struct nfs_fh *,
- struct nfs_fsinfo *);
- int (*pathconf) (struct nfs_server *, struct nfs_fh *,
- struct nfs_pathconf *);
- int (*set_capabilities)(struct nfs_server *, struct nfs_fh *);
- int (*decode_dirent)(struct xdr_stream *, struct nfs_entry *, int);
- void (*read_setup) (struct nfs_read_data *, struct rpc_message *);
- void (*read_rpc_prepare)(struct rpc_task *, struct nfs_read_data *);
- int (*read_done) (struct rpc_task *, struct nfs_read_data *);
- void (*write_setup) (struct nfs_write_data *, struct rpc_message *);
- void (*write_rpc_prepare)(struct rpc_task *, struct nfs_write_data *);
- int (*write_done) (struct rpc_task *, struct nfs_write_data *);
- void (*commit_setup) (struct nfs_write_data *, struct rpc_message *);
- int (*commit_done) (struct rpc_task *, struct nfs_write_data *);
- int (*lock)(struct file *, int, struct file_lock *);
- int (*lock_check_bounds)(const struct file_lock *);
- void (*clear_acl_cache)(struct inode *);
- void (*close_context)(struct nfs_open_context *ctx, int);
- struct inode * (*open_context) (struct inode *dir,
- struct nfs_open_context *ctx,
- int open_flags,
- struct iattr *iattr);
- int (*init_client) (struct nfs_client *, const struct rpc_timeout *,
- const char *, rpc_authflavor_t, int);
- int (*secinfo)(struct inode *, const struct qstr *, struct nfs4_secinfo_flavors *);
-};
-
-/*
- * NFS_CALL(getattr, inode, (fattr));
- * into
- * NFS_PROTO(inode)->getattr(fattr);
- */
-#define NFS_CALL(op, inode, args) NFS_PROTO(inode)->op args
-
-/*
- * Function vectors etc. for the NFS client
- */
-extern const struct nfs_rpc_ops nfs_v2_clientops;
-extern const struct nfs_rpc_ops nfs_v3_clientops;
-extern const struct nfs_rpc_ops nfs_v4_clientops;
-extern const struct rpc_version nfs_version2;
-extern const struct rpc_version nfs_version3;
-extern const struct rpc_version nfs_version4;
-
-extern const struct rpc_version nfsacl_version3;
-extern const struct rpc_program nfsacl_program;
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/nfsacl.h b/ANDROID_3.4.5/include/linux/nfsacl.h
deleted file mode 100644
index fabcb1e5..00000000
--- a/ANDROID_3.4.5/include/linux/nfsacl.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * File: linux/nfsacl.h
- *
- * (C) 2003 Andreas Gruenbacher <agruen@suse.de>
- */
-#ifndef __LINUX_NFSACL_H
-#define __LINUX_NFSACL_H
-
-#define NFS_ACL_PROGRAM 100227
-
-#define ACLPROC2_GETACL 1
-#define ACLPROC2_SETACL 2
-#define ACLPROC2_GETATTR 3
-#define ACLPROC2_ACCESS 4
-
-#define ACLPROC3_GETACL 1
-#define ACLPROC3_SETACL 2
-
-
-/* Flags for the getacl/setacl mode */
-#define NFS_ACL 0x0001
-#define NFS_ACLCNT 0x0002
-#define NFS_DFACL 0x0004
-#define NFS_DFACLCNT 0x0008
-
-/* Flag for Default ACL entries */
-#define NFS_ACL_DEFAULT 0x1000
-
-#ifdef __KERNEL__
-
-#include <linux/posix_acl.h>
-#include <linux/sunrpc/xdr.h>
-
-/* Maximum number of ACL entries over NFS */
-#define NFS_ACL_MAX_ENTRIES 1024
-
-#define NFSACL_MAXWORDS (2*(2+3*NFS_ACL_MAX_ENTRIES))
-#define NFSACL_MAXPAGES ((2*(8+12*NFS_ACL_MAX_ENTRIES) + PAGE_SIZE-1) \
- >> PAGE_SHIFT)
-
-#define NFS_ACL_MAX_ENTRIES_INLINE (5)
-#define NFS_ACL_INLINE_BUFSIZE ((2*(2+3*NFS_ACL_MAX_ENTRIES_INLINE)) << 2)
-
-static inline unsigned int
-nfsacl_size(struct posix_acl *acl_access, struct posix_acl *acl_default)
-{
- unsigned int w = 16;
- w += max(acl_access ? (int)acl_access->a_count : 3, 4) * 12;
- if (acl_default)
- w += max((int)acl_default->a_count, 4) * 12;
- return w;
-}
-
-extern int
-nfsacl_encode(struct xdr_buf *buf, unsigned int base, struct inode *inode,
- struct posix_acl *acl, int encode_entries, int typeflag);
-extern int
-nfsacl_decode(struct xdr_buf *buf, unsigned int base, unsigned int *aclcnt,
- struct posix_acl **pacl);
-
-#endif /* __KERNEL__ */
-#endif /* __LINUX_NFSACL_H */
diff --git a/ANDROID_3.4.5/include/linux/nfsd/Kbuild b/ANDROID_3.4.5/include/linux/nfsd/Kbuild
deleted file mode 100644
index 5b7d84ac..00000000
--- a/ANDROID_3.4.5/include/linux/nfsd/Kbuild
+++ /dev/null
@@ -1,5 +0,0 @@
-header-y += cld.h
-header-y += debug.h
-header-y += export.h
-header-y += nfsfh.h
-header-y += stats.h
diff --git a/ANDROID_3.4.5/include/linux/nfsd/cld.h b/ANDROID_3.4.5/include/linux/nfsd/cld.h
deleted file mode 100644
index f14a9ab0..00000000
--- a/ANDROID_3.4.5/include/linux/nfsd/cld.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Upcall description for nfsdcld communication
- *
- * Copyright (c) 2012 Red Hat, Inc.
- * Author(s): Jeff Layton <jlayton@redhat.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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef _NFSD_CLD_H
-#define _NFSD_CLD_H
-
-/* latest upcall version available */
-#define CLD_UPCALL_VERSION 1
-
-/* defined by RFC3530 */
-#define NFS4_OPAQUE_LIMIT 1024
-
-enum cld_command {
- Cld_Create, /* create a record for this cm_id */
- Cld_Remove, /* remove record of this cm_id */
- Cld_Check, /* is this cm_id allowed? */
- Cld_GraceDone, /* grace period is complete */
-};
-
-/* representation of long-form NFSv4 client ID */
-struct cld_name {
- uint16_t cn_len; /* length of cm_id */
- unsigned char cn_id[NFS4_OPAQUE_LIMIT]; /* client-provided */
-} __attribute__((packed));
-
-/* message struct for communication with userspace */
-struct cld_msg {
- uint8_t cm_vers; /* upcall version */
- uint8_t cm_cmd; /* upcall command */
- int16_t cm_status; /* return code */
- uint32_t cm_xid; /* transaction id */
- union {
- int64_t cm_gracetime; /* grace period start time */
- struct cld_name cm_name;
- } __attribute__((packed)) cm_u;
-} __attribute__((packed));
-
-#endif /* !_NFSD_CLD_H */
diff --git a/ANDROID_3.4.5/include/linux/nfsd/debug.h b/ANDROID_3.4.5/include/linux/nfsd/debug.h
deleted file mode 100644
index ee4aa917..00000000
--- a/ANDROID_3.4.5/include/linux/nfsd/debug.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * linux/include/linux/nfsd/debug.h
- *
- * Debugging-related stuff for nfsd
- *
- * Copyright (C) 1995 Olaf Kirch <okir@monad.swb.de>
- */
-
-#ifndef LINUX_NFSD_DEBUG_H
-#define LINUX_NFSD_DEBUG_H
-
-#include <linux/sunrpc/debug.h>
-
-/*
- * Enable debugging for nfsd.
- * Requires RPC_DEBUG.
- */
-#ifdef RPC_DEBUG
-# define NFSD_DEBUG 1
-#endif
-
-/*
- * knfsd debug flags
- */
-#define NFSDDBG_SOCK 0x0001
-#define NFSDDBG_FH 0x0002
-#define NFSDDBG_EXPORT 0x0004
-#define NFSDDBG_SVC 0x0008
-#define NFSDDBG_PROC 0x0010
-#define NFSDDBG_FILEOP 0x0020
-#define NFSDDBG_AUTH 0x0040
-#define NFSDDBG_REPCACHE 0x0080
-#define NFSDDBG_XDR 0x0100
-#define NFSDDBG_LOCKD 0x0200
-#define NFSDDBG_ALL 0x7FFF
-#define NFSDDBG_NOCHANGE 0xFFFF
-
-
-#ifdef __KERNEL__
-# undef ifdebug
-# ifdef NFSD_DEBUG
-# define ifdebug(flag) if (nfsd_debug & NFSDDBG_##flag)
-# else
-# define ifdebug(flag) if (0)
-# endif
-#endif /* __KERNEL__ */
-
-#endif /* LINUX_NFSD_DEBUG_H */
diff --git a/ANDROID_3.4.5/include/linux/nfsd/export.h b/ANDROID_3.4.5/include/linux/nfsd/export.h
deleted file mode 100644
index f85308e6..00000000
--- a/ANDROID_3.4.5/include/linux/nfsd/export.h
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * include/linux/nfsd/export.h
- *
- * Public declarations for NFS exports. The definitions for the
- * syscall interface are in nfsctl.h
- *
- * Copyright (C) 1995-1997 Olaf Kirch <okir@monad.swb.de>
- */
-
-#ifndef NFSD_EXPORT_H
-#define NFSD_EXPORT_H
-
-# include <linux/types.h>
-#ifdef __KERNEL__
-# include <linux/nfsd/nfsfh.h>
-#endif
-
-/*
- * Important limits for the exports stuff.
- */
-#define NFSCLNT_IDMAX 1024
-#define NFSCLNT_ADDRMAX 16
-#define NFSCLNT_KEYMAX 32
-
-/*
- * Export flags.
- */
-#define NFSEXP_READONLY 0x0001
-#define NFSEXP_INSECURE_PORT 0x0002
-#define NFSEXP_ROOTSQUASH 0x0004
-#define NFSEXP_ALLSQUASH 0x0008
-#define NFSEXP_ASYNC 0x0010
-#define NFSEXP_GATHERED_WRITES 0x0020
-/* 40 80 100 currently unused */
-#define NFSEXP_NOHIDE 0x0200
-#define NFSEXP_NOSUBTREECHECK 0x0400
-#define NFSEXP_NOAUTHNLM 0x0800 /* Don't authenticate NLM requests - just trust */
-#define NFSEXP_MSNFS 0x1000 /* do silly things that MS clients expect; no longer supported */
-#define NFSEXP_FSID 0x2000
-#define NFSEXP_CROSSMOUNT 0x4000
-#define NFSEXP_NOACL 0x8000 /* reserved for possible ACL related use */
-/*
- * The NFSEXP_V4ROOT flag causes the kernel to give access only to NFSv4
- * clients, and only to the single directory that is the root of the
- * export; further lookup and readdir operations are treated as if every
- * subdirectory was a mountpoint, and ignored if they are not themselves
- * exported. This is used by nfsd and mountd to construct the NFSv4
- * pseudofilesystem, which provides access only to paths leading to each
- * exported filesystem.
- */
-#define NFSEXP_V4ROOT 0x10000
-/* All flags that we claim to support. (Note we don't support NOACL.) */
-#define NFSEXP_ALLFLAGS 0x17E3F
-
-/* The flags that may vary depending on security flavor: */
-#define NFSEXP_SECINFO_FLAGS (NFSEXP_READONLY | NFSEXP_ROOTSQUASH \
- | NFSEXP_ALLSQUASH \
- | NFSEXP_INSECURE_PORT)
-
-#ifdef __KERNEL__
-
-/*
- * FS Locations
- */
-
-#define MAX_FS_LOCATIONS 128
-
-struct nfsd4_fs_location {
- char *hosts; /* colon separated list of hosts */
- char *path; /* slash separated list of path components */
-};
-
-struct nfsd4_fs_locations {
- uint32_t locations_count;
- struct nfsd4_fs_location *locations;
-/* If we're not actually serving this data ourselves (only providing a
- * list of replicas that do serve it) then we set "migrated": */
- int migrated;
-};
-
-/*
- * We keep an array of pseudoflavors with the export, in order from most
- * to least preferred. For the foreseeable future, we don't expect more
- * than the eight pseudoflavors null, unix, krb5, krb5i, krb5p, skpm3,
- * spkm3i, and spkm3p (and using all 8 at once should be rare).
- */
-#define MAX_SECINFO_LIST 8
-
-struct exp_flavor_info {
- u32 pseudoflavor;
- u32 flags;
-};
-
-struct svc_export {
- struct cache_head h;
- struct auth_domain * ex_client;
- int ex_flags;
- struct path ex_path;
- uid_t ex_anon_uid;
- gid_t ex_anon_gid;
- int ex_fsid;
- unsigned char * ex_uuid; /* 16 byte fsid */
- struct nfsd4_fs_locations ex_fslocs;
- int ex_nflavors;
- struct exp_flavor_info ex_flavors[MAX_SECINFO_LIST];
-};
-
-/* an "export key" (expkey) maps a filehandlefragement to an
- * svc_export for a given client. There can be several per export,
- * for the different fsid types.
- */
-struct svc_expkey {
- struct cache_head h;
-
- struct auth_domain * ek_client;
- int ek_fsidtype;
- u32 ek_fsid[6];
-
- struct path ek_path;
-};
-
-#define EX_ISSYNC(exp) (!((exp)->ex_flags & NFSEXP_ASYNC))
-#define EX_NOHIDE(exp) ((exp)->ex_flags & NFSEXP_NOHIDE)
-#define EX_WGATHER(exp) ((exp)->ex_flags & NFSEXP_GATHERED_WRITES)
-
-int nfsexp_flags(struct svc_rqst *rqstp, struct svc_export *exp);
-__be32 check_nfsd_access(struct svc_export *exp, struct svc_rqst *rqstp);
-
-/*
- * Function declarations
- */
-int nfsd_export_init(void);
-void nfsd_export_shutdown(void);
-void nfsd_export_flush(void);
-struct svc_export * rqst_exp_get_by_name(struct svc_rqst *,
- struct path *);
-struct svc_export * rqst_exp_parent(struct svc_rqst *,
- struct path *);
-struct svc_export * rqst_find_fsidzero_export(struct svc_rqst *);
-int exp_rootfh(struct auth_domain *,
- char *path, struct knfsd_fh *, int maxsize);
-__be32 exp_pseudoroot(struct svc_rqst *, struct svc_fh *);
-__be32 nfserrno(int errno);
-
-extern struct cache_detail svc_export_cache;
-
-static inline void exp_put(struct svc_export *exp)
-{
- cache_put(&exp->h, &svc_export_cache);
-}
-
-static inline void exp_get(struct svc_export *exp)
-{
- cache_get(&exp->h);
-}
-struct svc_export * rqst_exp_find(struct svc_rqst *, int, u32 *);
-
-#endif /* __KERNEL__ */
-
-#endif /* NFSD_EXPORT_H */
-
diff --git a/ANDROID_3.4.5/include/linux/nfsd/nfsfh.h b/ANDROID_3.4.5/include/linux/nfsd/nfsfh.h
deleted file mode 100644
index ce4743a2..00000000
--- a/ANDROID_3.4.5/include/linux/nfsd/nfsfh.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * include/linux/nfsd/nfsfh.h
- *
- * This file describes the layout of the file handles as passed
- * over the wire.
- *
- * Earlier versions of knfsd used to sign file handles using keyed MD5
- * or SHA. I've removed this code, because it doesn't give you more
- * security than blocking external access to port 2049 on your firewall.
- *
- * Copyright (C) 1995, 1996, 1997 Olaf Kirch <okir@monad.swb.de>
- */
-
-#ifndef _LINUX_NFSD_FH_H
-#define _LINUX_NFSD_FH_H
-
-#include <linux/types.h>
-#include <linux/nfs.h>
-#include <linux/nfs2.h>
-#include <linux/nfs3.h>
-#include <linux/nfs4.h>
-#ifdef __KERNEL__
-# include <linux/sunrpc/svc.h>
-#endif
-
-/*
- * This is the old "dentry style" Linux NFSv2 file handle.
- *
- * The xino and xdev fields are currently used to transport the
- * ino/dev of the exported inode.
- */
-struct nfs_fhbase_old {
- __u32 fb_dcookie; /* dentry cookie - always 0xfeebbaca */
- __u32 fb_ino; /* our inode number */
- __u32 fb_dirino; /* dir inode number, 0 for directories */
- __u32 fb_dev; /* our device */
- __u32 fb_xdev;
- __u32 fb_xino;
- __u32 fb_generation;
-};
-
-/*
- * This is the new flexible, extensible style NFSv2/v3 file handle.
- * by Neil Brown <neilb@cse.unsw.edu.au> - March 2000
- *
- * The file handle starts with a sequence of four-byte words.
- * The first word contains a version number (1) and three descriptor bytes
- * that tell how the remaining 3 variable length fields should be handled.
- * These three bytes are auth_type, fsid_type and fileid_type.
- *
- * All four-byte values are in host-byte-order.
- *
- * The auth_type field specifies how the filehandle can be authenticated
- * This might allow a file to be confirmed to be in a writable part of a
- * filetree without checking the path from it up to the root.
- * Current values:
- * 0 - No authentication. fb_auth is 0 bytes long
- * Possible future values:
- * 1 - 4 bytes taken from MD5 hash of the remainer of the file handle
- * prefixed by a secret and with the important export flags.
- *
- * The fsid_type identifies how the filesystem (or export point) is
- * encoded.
- * Current values:
- * 0 - 4 byte device id (ms-2-bytes major, ls-2-bytes minor), 4byte inode number
- * NOTE: we cannot use the kdev_t device id value, because kdev_t.h
- * says we mustn't. We must break it up and reassemble.
- * 1 - 4 byte user specified identifier
- * 2 - 4 byte major, 4 byte minor, 4 byte inode number - DEPRECATED
- * 3 - 4 byte device id, encoded for user-space, 4 byte inode number
- * 4 - 4 byte inode number and 4 byte uuid
- * 5 - 8 byte uuid
- * 6 - 16 byte uuid
- * 7 - 8 byte inode number and 16 byte uuid
- *
- * The fileid_type identified how the file within the filesystem is encoded.
- * This is (will be) passed to, and set by, the underlying filesystem if it supports
- * filehandle operations. The filesystem must not use the value '0' or '0xff' and may
- * only use the values 1 and 2 as defined below:
- * Current values:
- * 0 - The root, or export point, of the filesystem. fb_fileid is 0 bytes.
- * 1 - 32bit inode number, 32 bit generation number.
- * 2 - 32bit inode number, 32 bit generation number, 32 bit parent directory inode number.
- *
- */
-struct nfs_fhbase_new {
- __u8 fb_version; /* == 1, even => nfs_fhbase_old */
- __u8 fb_auth_type;
- __u8 fb_fsid_type;
- __u8 fb_fileid_type;
- __u32 fb_auth[1];
-/* __u32 fb_fsid[0]; floating */
-/* __u32 fb_fileid[0]; floating */
-};
-
-struct knfsd_fh {
- unsigned int fh_size; /* significant for NFSv3.
- * Points to the current size while building
- * a new file handle
- */
- union {
- struct nfs_fhbase_old fh_old;
- __u32 fh_pad[NFS4_FHSIZE/4];
- struct nfs_fhbase_new fh_new;
- } fh_base;
-};
-
-#define ofh_dcookie fh_base.fh_old.fb_dcookie
-#define ofh_ino fh_base.fh_old.fb_ino
-#define ofh_dirino fh_base.fh_old.fb_dirino
-#define ofh_dev fh_base.fh_old.fb_dev
-#define ofh_xdev fh_base.fh_old.fb_xdev
-#define ofh_xino fh_base.fh_old.fb_xino
-#define ofh_generation fh_base.fh_old.fb_generation
-
-#define fh_version fh_base.fh_new.fb_version
-#define fh_fsid_type fh_base.fh_new.fb_fsid_type
-#define fh_auth_type fh_base.fh_new.fb_auth_type
-#define fh_fileid_type fh_base.fh_new.fb_fileid_type
-#define fh_auth fh_base.fh_new.fb_auth
-#define fh_fsid fh_base.fh_new.fb_auth
-
-#ifdef __KERNEL__
-
-static inline __u32 ino_t_to_u32(ino_t ino)
-{
- return (__u32) ino;
-}
-
-static inline ino_t u32_to_ino_t(__u32 uino)
-{
- return (ino_t) uino;
-}
-
-/*
- * This is the internal representation of an NFS handle used in knfsd.
- * pre_mtime/post_version will be used to support wcc_attr's in NFSv3.
- */
-typedef struct svc_fh {
- struct knfsd_fh fh_handle; /* FH data */
- struct dentry * fh_dentry; /* validated dentry */
- struct svc_export * fh_export; /* export pointer */
- int fh_maxsize; /* max size for fh_handle */
-
- unsigned char fh_locked; /* inode locked by us */
-
-#ifdef CONFIG_NFSD_V3
- unsigned char fh_post_saved; /* post-op attrs saved */
- unsigned char fh_pre_saved; /* pre-op attrs saved */
-
- /* Pre-op attributes saved during fh_lock */
- __u64 fh_pre_size; /* size before operation */
- struct timespec fh_pre_mtime; /* mtime before oper */
- struct timespec fh_pre_ctime; /* ctime before oper */
- /*
- * pre-op nfsv4 change attr: note must check IS_I_VERSION(inode)
- * to find out if it is valid.
- */
- u64 fh_pre_change;
-
- /* Post-op attributes saved in fh_unlock */
- struct kstat fh_post_attr; /* full attrs after operation */
- u64 fh_post_change; /* nfsv4 change; see above */
-#endif /* CONFIG_NFSD_V3 */
-
-} svc_fh;
-
-#endif /* __KERNEL__ */
-
-
-#endif /* _LINUX_NFSD_FH_H */
diff --git a/ANDROID_3.4.5/include/linux/nfsd/stats.h b/ANDROID_3.4.5/include/linux/nfsd/stats.h
deleted file mode 100644
index 2693ef64..00000000
--- a/ANDROID_3.4.5/include/linux/nfsd/stats.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * linux/include/linux/nfsd/stats.h
- *
- * Statistics for NFS server.
- *
- * Copyright (C) 1995, 1996 Olaf Kirch <okir@monad.swb.de>
- */
-
-#ifndef LINUX_NFSD_STATS_H
-#define LINUX_NFSD_STATS_H
-
-#include <linux/nfs4.h>
-
-/* thread usage wraps very million seconds (approx one fortnight) */
-#define NFSD_USAGE_WRAP (HZ*1000000)
-
-#ifdef __KERNEL__
-
-struct nfsd_stats {
- unsigned int rchits; /* repcache hits */
- unsigned int rcmisses; /* repcache hits */
- unsigned int rcnocache; /* uncached reqs */
- unsigned int fh_stale; /* FH stale error */
- unsigned int fh_lookup; /* dentry cached */
- unsigned int fh_anon; /* anon file dentry returned */
- unsigned int fh_nocache_dir; /* filehandle not found in dcache */
- unsigned int fh_nocache_nondir; /* filehandle not found in dcache */
- unsigned int io_read; /* bytes returned to read requests */
- unsigned int io_write; /* bytes passed in write requests */
- unsigned int th_cnt; /* number of available threads */
- unsigned int th_usage[10]; /* number of ticks during which n perdeciles
- * of available threads were in use */
- unsigned int th_fullcnt; /* number of times last free thread was used */
- unsigned int ra_size; /* size of ra cache */
- unsigned int ra_depth[11]; /* number of times ra entry was found that deep
- * in the cache (10percentiles). [10] = not found */
-#ifdef CONFIG_NFSD_V4
- unsigned int nfs4_opcount[LAST_NFS4_OP + 1]; /* count of individual nfsv4 operations */
-#endif
-
-};
-
-
-extern struct nfsd_stats nfsdstats;
-extern struct svc_stat nfsd_svcstats;
-
-void nfsd_stat_init(void);
-void nfsd_stat_shutdown(void);
-
-#endif /* __KERNEL__ */
-#endif /* LINUX_NFSD_STATS_H */
diff --git a/ANDROID_3.4.5/include/linux/nilfs2_fs.h b/ANDROID_3.4.5/include/linux/nilfs2_fs.h
deleted file mode 100644
index 89bd4a4d..00000000
--- a/ANDROID_3.4.5/include/linux/nilfs2_fs.h
+++ /dev/null
@@ -1,852 +0,0 @@
-/*
- * nilfs2_fs.h - NILFS2 on-disk structures and common declarations.
- *
- * Copyright (C) 2005-2008 Nippon Telegraph and Telephone Corporation.
- *
- * This program 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 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 Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser 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
- *
- * Written by Koji Sato <koji@osrg.net>
- * Ryusuke Konishi <ryusuke@osrg.net>
- */
-/*
- * linux/include/linux/ext2_fs.h
- *
- * Copyright (C) 1992, 1993, 1994, 1995
- * Remy Card (card@masi.ibp.fr)
- * Laboratoire MASI - Institut Blaise Pascal
- * Universite Pierre et Marie Curie (Paris VI)
- *
- * from
- *
- * linux/include/linux/minix_fs.h
- *
- * Copyright (C) 1991, 1992 Linus Torvalds
- */
-
-#ifndef _LINUX_NILFS_FS_H
-#define _LINUX_NILFS_FS_H
-
-#include <linux/types.h>
-#include <linux/ioctl.h>
-#include <linux/magic.h>
-#include <linux/bug.h>
-
-
-#define NILFS_INODE_BMAP_SIZE 7
-/**
- * struct nilfs_inode - structure of an inode on disk
- * @i_blocks: blocks count
- * @i_size: size in bytes
- * @i_ctime: creation time (seconds)
- * @i_mtime: modification time (seconds)
- * @i_ctime_nsec: creation time (nano seconds)
- * @i_mtime_nsec: modification time (nano seconds)
- * @i_uid: user id
- * @i_gid: group id
- * @i_mode: file mode
- * @i_links_count: links count
- * @i_flags: file flags
- * @i_bmap: block mapping
- * @i_xattr: extended attributes
- * @i_generation: file generation (for NFS)
- * @i_pad: padding
- */
-struct nilfs_inode {
- __le64 i_blocks;
- __le64 i_size;
- __le64 i_ctime;
- __le64 i_mtime;
- __le32 i_ctime_nsec;
- __le32 i_mtime_nsec;
- __le32 i_uid;
- __le32 i_gid;
- __le16 i_mode;
- __le16 i_links_count;
- __le32 i_flags;
- __le64 i_bmap[NILFS_INODE_BMAP_SIZE];
-#define i_device_code i_bmap[0]
- __le64 i_xattr;
- __le32 i_generation;
- __le32 i_pad;
-};
-
-/**
- * struct nilfs_super_root - structure of super root
- * @sr_sum: check sum
- * @sr_bytes: byte count of the structure
- * @sr_flags: flags (reserved)
- * @sr_nongc_ctime: write time of the last segment not for cleaner operation
- * @sr_dat: DAT file inode
- * @sr_cpfile: checkpoint file inode
- * @sr_sufile: segment usage file inode
- */
-struct nilfs_super_root {
- __le32 sr_sum;
- __le16 sr_bytes;
- __le16 sr_flags;
- __le64 sr_nongc_ctime;
- struct nilfs_inode sr_dat;
- struct nilfs_inode sr_cpfile;
- struct nilfs_inode sr_sufile;
-};
-
-#define NILFS_SR_MDT_OFFSET(inode_size, i) \
- ((unsigned long)&((struct nilfs_super_root *)0)->sr_dat + \
- (inode_size) * (i))
-#define NILFS_SR_DAT_OFFSET(inode_size) NILFS_SR_MDT_OFFSET(inode_size, 0)
-#define NILFS_SR_CPFILE_OFFSET(inode_size) NILFS_SR_MDT_OFFSET(inode_size, 1)
-#define NILFS_SR_SUFILE_OFFSET(inode_size) NILFS_SR_MDT_OFFSET(inode_size, 2)
-#define NILFS_SR_BYTES(inode_size) NILFS_SR_MDT_OFFSET(inode_size, 3)
-
-/*
- * Maximal mount counts
- */
-#define NILFS_DFL_MAX_MNT_COUNT 50 /* 50 mounts */
-
-/*
- * File system states (sbp->s_state, nilfs->ns_mount_state)
- */
-#define NILFS_VALID_FS 0x0001 /* Unmounted cleanly */
-#define NILFS_ERROR_FS 0x0002 /* Errors detected */
-#define NILFS_RESIZE_FS 0x0004 /* Resize required */
-
-/*
- * Mount flags (sbi->s_mount_opt)
- */
-#define NILFS_MOUNT_ERROR_MODE 0x0070 /* Error mode mask */
-#define NILFS_MOUNT_ERRORS_CONT 0x0010 /* Continue on errors */
-#define NILFS_MOUNT_ERRORS_RO 0x0020 /* Remount fs ro on errors */
-#define NILFS_MOUNT_ERRORS_PANIC 0x0040 /* Panic on errors */
-#define NILFS_MOUNT_BARRIER 0x1000 /* Use block barriers */
-#define NILFS_MOUNT_STRICT_ORDER 0x2000 /* Apply strict in-order
- semantics also for data */
-#define NILFS_MOUNT_NORECOVERY 0x4000 /* Disable write access during
- mount-time recovery */
-#define NILFS_MOUNT_DISCARD 0x8000 /* Issue DISCARD requests */
-
-
-/**
- * struct nilfs_super_block - structure of super block on disk
- */
-struct nilfs_super_block {
-/*00*/ __le32 s_rev_level; /* Revision level */
- __le16 s_minor_rev_level; /* minor revision level */
- __le16 s_magic; /* Magic signature */
-
- __le16 s_bytes; /* Bytes count of CRC calculation
- for this structure. s_reserved
- is excluded. */
- __le16 s_flags; /* flags */
- __le32 s_crc_seed; /* Seed value of CRC calculation */
-/*10*/ __le32 s_sum; /* Check sum of super block */
-
- __le32 s_log_block_size; /* Block size represented as follows
- blocksize =
- 1 << (s_log_block_size + 10) */
- __le64 s_nsegments; /* Number of segments in filesystem */
-/*20*/ __le64 s_dev_size; /* block device size in bytes */
- __le64 s_first_data_block; /* 1st seg disk block number */
-/*30*/ __le32 s_blocks_per_segment; /* number of blocks per full segment */
- __le32 s_r_segments_percentage; /* Reserved segments percentage */
-
- __le64 s_last_cno; /* Last checkpoint number */
-/*40*/ __le64 s_last_pseg; /* disk block addr pseg written last */
- __le64 s_last_seq; /* seq. number of seg written last */
-/*50*/ __le64 s_free_blocks_count; /* Free blocks count */
-
- __le64 s_ctime; /* Creation time (execution time of
- newfs) */
-/*60*/ __le64 s_mtime; /* Mount time */
- __le64 s_wtime; /* Write time */
-/*70*/ __le16 s_mnt_count; /* Mount count */
- __le16 s_max_mnt_count; /* Maximal mount count */
- __le16 s_state; /* File system state */
- __le16 s_errors; /* Behaviour when detecting errors */
- __le64 s_lastcheck; /* time of last check */
-
-/*80*/ __le32 s_checkinterval; /* max. time between checks */
- __le32 s_creator_os; /* OS */
- __le16 s_def_resuid; /* Default uid for reserved blocks */
- __le16 s_def_resgid; /* Default gid for reserved blocks */
- __le32 s_first_ino; /* First non-reserved inode */
-
-/*90*/ __le16 s_inode_size; /* Size of an inode */
- __le16 s_dat_entry_size; /* Size of a dat entry */
- __le16 s_checkpoint_size; /* Size of a checkpoint */
- __le16 s_segment_usage_size; /* Size of a segment usage */
-
-/*98*/ __u8 s_uuid[16]; /* 128-bit uuid for volume */
-/*A8*/ char s_volume_name[80]; /* volume name */
-
-/*F8*/ __le32 s_c_interval; /* Commit interval of segment */
- __le32 s_c_block_max; /* Threshold of data amount for
- the segment construction */
-/*100*/ __le64 s_feature_compat; /* Compatible feature set */
- __le64 s_feature_compat_ro; /* Read-only compatible feature set */
- __le64 s_feature_incompat; /* Incompatible feature set */
- __u32 s_reserved[186]; /* padding to the end of the block */
-};
-
-/*
- * Codes for operating systems
- */
-#define NILFS_OS_LINUX 0
-/* Codes from 1 to 4 are reserved to keep compatibility with ext2 creator-OS */
-
-/*
- * Revision levels
- */
-#define NILFS_CURRENT_REV 2 /* current major revision */
-#define NILFS_MINOR_REV 0 /* minor revision */
-#define NILFS_MIN_SUPP_REV 2 /* minimum supported revision */
-
-/*
- * Feature set definitions
- *
- * If there is a bit set in the incompatible feature set that the kernel
- * doesn't know about, it should refuse to mount the filesystem.
- */
-#define NILFS_FEATURE_COMPAT_RO_BLOCK_COUNT 0x00000001ULL
-
-#define NILFS_FEATURE_COMPAT_SUPP 0ULL
-#define NILFS_FEATURE_COMPAT_RO_SUPP NILFS_FEATURE_COMPAT_RO_BLOCK_COUNT
-#define NILFS_FEATURE_INCOMPAT_SUPP 0ULL
-
-/*
- * Bytes count of super_block for CRC-calculation
- */
-#define NILFS_SB_BYTES \
- ((long)&((struct nilfs_super_block *)0)->s_reserved)
-
-/*
- * Special inode number
- */
-#define NILFS_ROOT_INO 2 /* Root file inode */
-#define NILFS_DAT_INO 3 /* DAT file */
-#define NILFS_CPFILE_INO 4 /* checkpoint file */
-#define NILFS_SUFILE_INO 5 /* segment usage file */
-#define NILFS_IFILE_INO 6 /* ifile */
-#define NILFS_ATIME_INO 7 /* Atime file (reserved) */
-#define NILFS_XATTR_INO 8 /* Xattribute file (reserved) */
-#define NILFS_SKETCH_INO 10 /* Sketch file */
-#define NILFS_USER_INO 11 /* Fisrt user's file inode number */
-
-#define NILFS_SB_OFFSET_BYTES 1024 /* byte offset of nilfs superblock */
-
-#define NILFS_SEG_MIN_BLOCKS 16 /* Minimum number of blocks in
- a full segment */
-#define NILFS_PSEG_MIN_BLOCKS 2 /* Minimum number of blocks in
- a partial segment */
-#define NILFS_MIN_NRSVSEGS 8 /* Minimum number of reserved
- segments */
-
-/*
- * We call DAT, cpfile, and sufile root metadata files. Inodes of
- * these files are written in super root block instead of ifile, and
- * garbage collector doesn't keep any past versions of these files.
- */
-#define NILFS_ROOT_METADATA_FILE(ino) \
- ((ino) >= NILFS_DAT_INO && (ino) <= NILFS_SUFILE_INO)
-
-/*
- * bytes offset of secondary super block
- */
-#define NILFS_SB2_OFFSET_BYTES(devsize) ((((devsize) >> 12) - 1) << 12)
-
-/*
- * Maximal count of links to a file
- */
-#define NILFS_LINK_MAX 32000
-
-/*
- * Structure of a directory entry
- * (Same as ext2)
- */
-
-#define NILFS_NAME_LEN 255
-
-/*
- * Block size limitations
- */
-#define NILFS_MIN_BLOCK_SIZE 1024
-#define NILFS_MAX_BLOCK_SIZE 65536
-
-/*
- * The new version of the directory entry. Since V0 structures are
- * stored in intel byte order, and the name_len field could never be
- * bigger than 255 chars, it's safe to reclaim the extra byte for the
- * file_type field.
- */
-struct nilfs_dir_entry {
- __le64 inode; /* Inode number */
- __le16 rec_len; /* Directory entry length */
- __u8 name_len; /* Name length */
- __u8 file_type;
- char name[NILFS_NAME_LEN]; /* File name */
- char pad;
-};
-
-/*
- * NILFS directory file types. Only the low 3 bits are used. The
- * other bits are reserved for now.
- */
-enum {
- NILFS_FT_UNKNOWN,
- NILFS_FT_REG_FILE,
- NILFS_FT_DIR,
- NILFS_FT_CHRDEV,
- NILFS_FT_BLKDEV,
- NILFS_FT_FIFO,
- NILFS_FT_SOCK,
- NILFS_FT_SYMLINK,
- NILFS_FT_MAX
-};
-
-/*
- * NILFS_DIR_PAD defines the directory entries boundaries
- *
- * NOTE: It must be a multiple of 8
- */
-#define NILFS_DIR_PAD 8
-#define NILFS_DIR_ROUND (NILFS_DIR_PAD - 1)
-#define NILFS_DIR_REC_LEN(name_len) (((name_len) + 12 + NILFS_DIR_ROUND) & \
- ~NILFS_DIR_ROUND)
-#define NILFS_MAX_REC_LEN ((1<<16)-1)
-
-static inline unsigned nilfs_rec_len_from_disk(__le16 dlen)
-{
- unsigned len = le16_to_cpu(dlen);
-
-#if !defined(__KERNEL__) || (PAGE_CACHE_SIZE >= 65536)
- if (len == NILFS_MAX_REC_LEN)
- return 1 << 16;
-#endif
- return len;
-}
-
-static inline __le16 nilfs_rec_len_to_disk(unsigned len)
-{
-#if !defined(__KERNEL__) || (PAGE_CACHE_SIZE >= 65536)
- if (len == (1 << 16))
- return cpu_to_le16(NILFS_MAX_REC_LEN);
- else if (len > (1 << 16))
- BUG();
-#endif
- return cpu_to_le16(len);
-}
-
-/**
- * struct nilfs_finfo - file information
- * @fi_ino: inode number
- * @fi_cno: checkpoint number
- * @fi_nblocks: number of blocks (including intermediate blocks)
- * @fi_ndatablk: number of file data blocks
- */
-struct nilfs_finfo {
- __le64 fi_ino;
- __le64 fi_cno;
- __le32 fi_nblocks;
- __le32 fi_ndatablk;
- /* array of virtual block numbers */
-};
-
-/**
- * struct nilfs_binfo_v - information for the block to which a virtual block number is assigned
- * @bi_vblocknr: virtual block number
- * @bi_blkoff: block offset
- */
-struct nilfs_binfo_v {
- __le64 bi_vblocknr;
- __le64 bi_blkoff;
-};
-
-/**
- * struct nilfs_binfo_dat - information for the block which belongs to the DAT file
- * @bi_blkoff: block offset
- * @bi_level: level
- * @bi_pad: padding
- */
-struct nilfs_binfo_dat {
- __le64 bi_blkoff;
- __u8 bi_level;
- __u8 bi_pad[7];
-};
-
-/**
- * union nilfs_binfo: block information
- * @bi_v: nilfs_binfo_v structure
- * @bi_dat: nilfs_binfo_dat structure
- */
-union nilfs_binfo {
- struct nilfs_binfo_v bi_v;
- struct nilfs_binfo_dat bi_dat;
-};
-
-/**
- * struct nilfs_segment_summary - segment summary
- * @ss_datasum: checksum of data
- * @ss_sumsum: checksum of segment summary
- * @ss_magic: magic number
- * @ss_bytes: size of this structure in bytes
- * @ss_flags: flags
- * @ss_seq: sequence number
- * @ss_create: creation timestamp
- * @ss_next: next segment
- * @ss_nblocks: number of blocks
- * @ss_nfinfo: number of finfo structures
- * @ss_sumbytes: total size of segment summary in bytes
- * @ss_pad: padding
- * @ss_cno: checkpoint number
- */
-struct nilfs_segment_summary {
- __le32 ss_datasum;
- __le32 ss_sumsum;
- __le32 ss_magic;
- __le16 ss_bytes;
- __le16 ss_flags;
- __le64 ss_seq;
- __le64 ss_create;
- __le64 ss_next;
- __le32 ss_nblocks;
- __le32 ss_nfinfo;
- __le32 ss_sumbytes;
- __le32 ss_pad;
- __le64 ss_cno;
- /* array of finfo structures */
-};
-
-#define NILFS_SEGSUM_MAGIC 0x1eaffa11 /* segment summary magic number */
-
-/*
- * Segment summary flags
- */
-#define NILFS_SS_LOGBGN 0x0001 /* begins a logical segment */
-#define NILFS_SS_LOGEND 0x0002 /* ends a logical segment */
-#define NILFS_SS_SR 0x0004 /* has super root */
-#define NILFS_SS_SYNDT 0x0008 /* includes data only updates */
-#define NILFS_SS_GC 0x0010 /* segment written for cleaner operation */
-
-/**
- * struct nilfs_btree_node - B-tree node
- * @bn_flags: flags
- * @bn_level: level
- * @bn_nchildren: number of children
- * @bn_pad: padding
- */
-struct nilfs_btree_node {
- __u8 bn_flags;
- __u8 bn_level;
- __le16 bn_nchildren;
- __le32 bn_pad;
-};
-
-/* flags */
-#define NILFS_BTREE_NODE_ROOT 0x01
-
-/* level */
-#define NILFS_BTREE_LEVEL_DATA 0
-#define NILFS_BTREE_LEVEL_NODE_MIN (NILFS_BTREE_LEVEL_DATA + 1)
-#define NILFS_BTREE_LEVEL_MAX 14
-
-/**
- * struct nilfs_palloc_group_desc - block group descriptor
- * @pg_nfrees: number of free entries in block group
- */
-struct nilfs_palloc_group_desc {
- __le32 pg_nfrees;
-};
-
-/**
- * struct nilfs_dat_entry - disk address translation entry
- * @de_blocknr: block number
- * @de_start: start checkpoint number
- * @de_end: end checkpoint number
- * @de_rsv: reserved for future use
- */
-struct nilfs_dat_entry {
- __le64 de_blocknr;
- __le64 de_start;
- __le64 de_end;
- __le64 de_rsv;
-};
-
-/**
- * struct nilfs_snapshot_list - snapshot list
- * @ssl_next: next checkpoint number on snapshot list
- * @ssl_prev: previous checkpoint number on snapshot list
- */
-struct nilfs_snapshot_list {
- __le64 ssl_next;
- __le64 ssl_prev;
-};
-
-/**
- * struct nilfs_checkpoint - checkpoint structure
- * @cp_flags: flags
- * @cp_checkpoints_count: checkpoints count in a block
- * @cp_snapshot_list: snapshot list
- * @cp_cno: checkpoint number
- * @cp_create: creation timestamp
- * @cp_nblk_inc: number of blocks incremented by this checkpoint
- * @cp_inodes_count: inodes count
- * @cp_blocks_count: blocks count
- * @cp_ifile_inode: inode of ifile
- */
-struct nilfs_checkpoint {
- __le32 cp_flags;
- __le32 cp_checkpoints_count;
- struct nilfs_snapshot_list cp_snapshot_list;
- __le64 cp_cno;
- __le64 cp_create;
- __le64 cp_nblk_inc;
- __le64 cp_inodes_count;
- __le64 cp_blocks_count;
-
- /* Do not change the byte offset of ifile inode.
- To keep the compatibility of the disk format,
- additional fields should be added behind cp_ifile_inode. */
- struct nilfs_inode cp_ifile_inode;
-};
-
-/* checkpoint flags */
-enum {
- NILFS_CHECKPOINT_SNAPSHOT,
- NILFS_CHECKPOINT_INVALID,
- NILFS_CHECKPOINT_SKETCH,
- NILFS_CHECKPOINT_MINOR,
-};
-
-#define NILFS_CHECKPOINT_FNS(flag, name) \
-static inline void \
-nilfs_checkpoint_set_##name(struct nilfs_checkpoint *cp) \
-{ \
- cp->cp_flags = cpu_to_le32(le32_to_cpu(cp->cp_flags) | \
- (1UL << NILFS_CHECKPOINT_##flag)); \
-} \
-static inline void \
-nilfs_checkpoint_clear_##name(struct nilfs_checkpoint *cp) \
-{ \
- cp->cp_flags = cpu_to_le32(le32_to_cpu(cp->cp_flags) & \
- ~(1UL << NILFS_CHECKPOINT_##flag)); \
-} \
-static inline int \
-nilfs_checkpoint_##name(const struct nilfs_checkpoint *cp) \
-{ \
- return !!(le32_to_cpu(cp->cp_flags) & \
- (1UL << NILFS_CHECKPOINT_##flag)); \
-}
-
-NILFS_CHECKPOINT_FNS(SNAPSHOT, snapshot)
-NILFS_CHECKPOINT_FNS(INVALID, invalid)
-NILFS_CHECKPOINT_FNS(MINOR, minor)
-
-/**
- * struct nilfs_cpinfo - checkpoint information
- * @ci_flags: flags
- * @ci_pad: padding
- * @ci_cno: checkpoint number
- * @ci_create: creation timestamp
- * @ci_nblk_inc: number of blocks incremented by this checkpoint
- * @ci_inodes_count: inodes count
- * @ci_blocks_count: blocks count
- * @ci_next: next checkpoint number in snapshot list
- */
-struct nilfs_cpinfo {
- __u32 ci_flags;
- __u32 ci_pad;
- __u64 ci_cno;
- __u64 ci_create;
- __u64 ci_nblk_inc;
- __u64 ci_inodes_count;
- __u64 ci_blocks_count;
- __u64 ci_next;
-};
-
-#define NILFS_CPINFO_FNS(flag, name) \
-static inline int \
-nilfs_cpinfo_##name(const struct nilfs_cpinfo *cpinfo) \
-{ \
- return !!(cpinfo->ci_flags & (1UL << NILFS_CHECKPOINT_##flag)); \
-}
-
-NILFS_CPINFO_FNS(SNAPSHOT, snapshot)
-NILFS_CPINFO_FNS(INVALID, invalid)
-NILFS_CPINFO_FNS(MINOR, minor)
-
-
-/**
- * struct nilfs_cpfile_header - checkpoint file header
- * @ch_ncheckpoints: number of checkpoints
- * @ch_nsnapshots: number of snapshots
- * @ch_snapshot_list: snapshot list
- */
-struct nilfs_cpfile_header {
- __le64 ch_ncheckpoints;
- __le64 ch_nsnapshots;
- struct nilfs_snapshot_list ch_snapshot_list;
-};
-
-#define NILFS_CPFILE_FIRST_CHECKPOINT_OFFSET \
- ((sizeof(struct nilfs_cpfile_header) + \
- sizeof(struct nilfs_checkpoint) - 1) / \
- sizeof(struct nilfs_checkpoint))
-
-/**
- * struct nilfs_segment_usage - segment usage
- * @su_lastmod: last modified timestamp
- * @su_nblocks: number of blocks in segment
- * @su_flags: flags
- */
-struct nilfs_segment_usage {
- __le64 su_lastmod;
- __le32 su_nblocks;
- __le32 su_flags;
-};
-
-/* segment usage flag */
-enum {
- NILFS_SEGMENT_USAGE_ACTIVE,
- NILFS_SEGMENT_USAGE_DIRTY,
- NILFS_SEGMENT_USAGE_ERROR,
-
- /* ... */
-};
-
-#define NILFS_SEGMENT_USAGE_FNS(flag, name) \
-static inline void \
-nilfs_segment_usage_set_##name(struct nilfs_segment_usage *su) \
-{ \
- su->su_flags = cpu_to_le32(le32_to_cpu(su->su_flags) | \
- (1UL << NILFS_SEGMENT_USAGE_##flag));\
-} \
-static inline void \
-nilfs_segment_usage_clear_##name(struct nilfs_segment_usage *su) \
-{ \
- su->su_flags = \
- cpu_to_le32(le32_to_cpu(su->su_flags) & \
- ~(1UL << NILFS_SEGMENT_USAGE_##flag)); \
-} \
-static inline int \
-nilfs_segment_usage_##name(const struct nilfs_segment_usage *su) \
-{ \
- return !!(le32_to_cpu(su->su_flags) & \
- (1UL << NILFS_SEGMENT_USAGE_##flag)); \
-}
-
-NILFS_SEGMENT_USAGE_FNS(ACTIVE, active)
-NILFS_SEGMENT_USAGE_FNS(DIRTY, dirty)
-NILFS_SEGMENT_USAGE_FNS(ERROR, error)
-
-static inline void
-nilfs_segment_usage_set_clean(struct nilfs_segment_usage *su)
-{
- su->su_lastmod = cpu_to_le64(0);
- su->su_nblocks = cpu_to_le32(0);
- su->su_flags = cpu_to_le32(0);
-}
-
-static inline int
-nilfs_segment_usage_clean(const struct nilfs_segment_usage *su)
-{
- return !le32_to_cpu(su->su_flags);
-}
-
-/**
- * struct nilfs_sufile_header - segment usage file header
- * @sh_ncleansegs: number of clean segments
- * @sh_ndirtysegs: number of dirty segments
- * @sh_last_alloc: last allocated segment number
- */
-struct nilfs_sufile_header {
- __le64 sh_ncleansegs;
- __le64 sh_ndirtysegs;
- __le64 sh_last_alloc;
- /* ... */
-};
-
-#define NILFS_SUFILE_FIRST_SEGMENT_USAGE_OFFSET \
- ((sizeof(struct nilfs_sufile_header) + \
- sizeof(struct nilfs_segment_usage) - 1) / \
- sizeof(struct nilfs_segment_usage))
-
-/**
- * nilfs_suinfo - segment usage information
- * @sui_lastmod:
- * @sui_nblocks:
- * @sui_flags:
- */
-struct nilfs_suinfo {
- __u64 sui_lastmod;
- __u32 sui_nblocks;
- __u32 sui_flags;
-};
-
-#define NILFS_SUINFO_FNS(flag, name) \
-static inline int \
-nilfs_suinfo_##name(const struct nilfs_suinfo *si) \
-{ \
- return si->sui_flags & (1UL << NILFS_SEGMENT_USAGE_##flag); \
-}
-
-NILFS_SUINFO_FNS(ACTIVE, active)
-NILFS_SUINFO_FNS(DIRTY, dirty)
-NILFS_SUINFO_FNS(ERROR, error)
-
-static inline int nilfs_suinfo_clean(const struct nilfs_suinfo *si)
-{
- return !si->sui_flags;
-}
-
-/* ioctl */
-enum {
- NILFS_CHECKPOINT,
- NILFS_SNAPSHOT,
-};
-
-/**
- * struct nilfs_cpmode -
- * @cc_cno:
- * @cc_mode:
- */
-struct nilfs_cpmode {
- __u64 cm_cno;
- __u32 cm_mode;
- __u32 cm_pad;
-};
-
-/**
- * struct nilfs_argv - argument vector
- * @v_base:
- * @v_nmembs:
- * @v_size:
- * @v_flags:
- * @v_index:
- */
-struct nilfs_argv {
- __u64 v_base;
- __u32 v_nmembs; /* number of members */
- __u16 v_size; /* size of members */
- __u16 v_flags;
- __u64 v_index;
-};
-
-/**
- * struct nilfs_period -
- * @p_start:
- * @p_end:
- */
-struct nilfs_period {
- __u64 p_start;
- __u64 p_end;
-};
-
-/**
- * struct nilfs_cpstat -
- * @cs_cno: checkpoint number
- * @cs_ncps: number of checkpoints
- * @cs_nsss: number of snapshots
- */
-struct nilfs_cpstat {
- __u64 cs_cno;
- __u64 cs_ncps;
- __u64 cs_nsss;
-};
-
-/**
- * struct nilfs_sustat -
- * @ss_nsegs: number of segments
- * @ss_ncleansegs: number of clean segments
- * @ss_ndirtysegs: number of dirty segments
- * @ss_ctime: creation time of the last segment
- * @ss_nongc_ctime: creation time of the last segment not for GC
- * @ss_prot_seq: least sequence number of segments which must not be reclaimed
- */
-struct nilfs_sustat {
- __u64 ss_nsegs;
- __u64 ss_ncleansegs;
- __u64 ss_ndirtysegs;
- __u64 ss_ctime;
- __u64 ss_nongc_ctime;
- __u64 ss_prot_seq;
-};
-
-/**
- * struct nilfs_vinfo - virtual block number information
- * @vi_vblocknr:
- * @vi_start:
- * @vi_end:
- * @vi_blocknr:
- */
-struct nilfs_vinfo {
- __u64 vi_vblocknr;
- __u64 vi_start;
- __u64 vi_end;
- __u64 vi_blocknr;
-};
-
-/**
- * struct nilfs_vdesc -
- */
-struct nilfs_vdesc {
- __u64 vd_ino;
- __u64 vd_cno;
- __u64 vd_vblocknr;
- struct nilfs_period vd_period;
- __u64 vd_blocknr;
- __u64 vd_offset;
- __u32 vd_flags;
- __u32 vd_pad;
-};
-
-/**
- * struct nilfs_bdesc -
- */
-struct nilfs_bdesc {
- __u64 bd_ino;
- __u64 bd_oblocknr;
- __u64 bd_blocknr;
- __u64 bd_offset;
- __u32 bd_level;
- __u32 bd_pad;
-};
-
-#define NILFS_IOCTL_IDENT 'n'
-
-#define NILFS_IOCTL_CHANGE_CPMODE \
- _IOW(NILFS_IOCTL_IDENT, 0x80, struct nilfs_cpmode)
-#define NILFS_IOCTL_DELETE_CHECKPOINT \
- _IOW(NILFS_IOCTL_IDENT, 0x81, __u64)
-#define NILFS_IOCTL_GET_CPINFO \
- _IOR(NILFS_IOCTL_IDENT, 0x82, struct nilfs_argv)
-#define NILFS_IOCTL_GET_CPSTAT \
- _IOR(NILFS_IOCTL_IDENT, 0x83, struct nilfs_cpstat)
-#define NILFS_IOCTL_GET_SUINFO \
- _IOR(NILFS_IOCTL_IDENT, 0x84, struct nilfs_argv)
-#define NILFS_IOCTL_GET_SUSTAT \
- _IOR(NILFS_IOCTL_IDENT, 0x85, struct nilfs_sustat)
-#define NILFS_IOCTL_GET_VINFO \
- _IOWR(NILFS_IOCTL_IDENT, 0x86, struct nilfs_argv)
-#define NILFS_IOCTL_GET_BDESCS \
- _IOWR(NILFS_IOCTL_IDENT, 0x87, struct nilfs_argv)
-#define NILFS_IOCTL_CLEAN_SEGMENTS \
- _IOW(NILFS_IOCTL_IDENT, 0x88, struct nilfs_argv[5])
-#define NILFS_IOCTL_SYNC \
- _IOR(NILFS_IOCTL_IDENT, 0x8A, __u64)
-#define NILFS_IOCTL_RESIZE \
- _IOW(NILFS_IOCTL_IDENT, 0x8B, __u64)
-#define NILFS_IOCTL_SET_ALLOC_RANGE \
- _IOW(NILFS_IOCTL_IDENT, 0x8C, __u64[2])
-
-#endif /* _LINUX_NILFS_FS_H */
diff --git a/ANDROID_3.4.5/include/linux/nl80211.h b/ANDROID_3.4.5/include/linux/nl80211.h
deleted file mode 100644
index e474f6e7..00000000
--- a/ANDROID_3.4.5/include/linux/nl80211.h
+++ /dev/null
@@ -1,2866 +0,0 @@
-#ifndef __LINUX_NL80211_H
-#define __LINUX_NL80211_H
-/*
- * 802.11 netlink interface public header
- *
- * Copyright 2006-2010 Johannes Berg <johannes@sipsolutions.net>
- * Copyright 2008 Michael Wu <flamingice@sourmilk.net>
- * Copyright 2008 Luis Carlos Cobo <luisca@cozybit.com>
- * Copyright 2008 Michael Buesch <m@bues.ch>
- * Copyright 2008, 2009 Luis R. Rodriguez <lrodriguez@atheros.com>
- * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com>
- * Copyright 2008 Colin McCabe <colin@cozybit.com>
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- */
-
-#include <linux/types.h>
-
-/**
- * DOC: Station handling
- *
- * Stations are added per interface, but a special case exists with VLAN
- * interfaces. When a station is bound to an AP interface, it may be moved
- * into a VLAN identified by a VLAN interface index (%NL80211_ATTR_STA_VLAN).
- * The station is still assumed to belong to the AP interface it was added
- * to.
- *
- * TODO: need more info?
- */
-
-/**
- * DOC: Frame transmission/registration support
- *
- * Frame transmission and registration support exists to allow userspace
- * management entities such as wpa_supplicant react to management frames
- * that are not being handled by the kernel. This includes, for example,
- * certain classes of action frames that cannot be handled in the kernel
- * for various reasons.
- *
- * Frame registration is done on a per-interface basis and registrations
- * cannot be removed other than by closing the socket. It is possible to
- * specify a registration filter to register, for example, only for a
- * certain type of action frame. In particular with action frames, those
- * that userspace registers for will not be returned as unhandled by the
- * driver, so that the registered application has to take responsibility
- * for doing that.
- *
- * The type of frame that can be registered for is also dependent on the
- * driver and interface type. The frame types are advertised in wiphy
- * attributes so applications know what to expect.
- *
- * NOTE: When an interface changes type while registrations are active,
- * these registrations are ignored until the interface type is
- * changed again. This means that changing the interface type can
- * lead to a situation that couldn't otherwise be produced, but
- * any such registrations will be dormant in the sense that they
- * will not be serviced, i.e. they will not receive any frames.
- *
- * Frame transmission allows userspace to send for example the required
- * responses to action frames. It is subject to some sanity checking,
- * but many frames can be transmitted. When a frame was transmitted, its
- * status is indicated to the sending socket.
- *
- * For more technical details, see the corresponding command descriptions
- * below.
- */
-
-/**
- * DOC: Virtual interface / concurrency capabilities
- *
- * Some devices are able to operate with virtual MACs, they can have
- * more than one virtual interface. The capability handling for this
- * is a bit complex though, as there may be a number of restrictions
- * on the types of concurrency that are supported.
- *
- * To start with, each device supports the interface types listed in
- * the %NL80211_ATTR_SUPPORTED_IFTYPES attribute, but by listing the
- * types there no concurrency is implied.
- *
- * Once concurrency is desired, more attributes must be observed:
- * To start with, since some interface types are purely managed in
- * software, like the AP-VLAN type in mac80211 for example, there's
- * an additional list of these, they can be added at any time and
- * are only restricted by some semantic restrictions (e.g. AP-VLAN
- * cannot be added without a corresponding AP interface). This list
- * is exported in the %NL80211_ATTR_SOFTWARE_IFTYPES attribute.
- *
- * Further, the list of supported combinations is exported. This is
- * in the %NL80211_ATTR_INTERFACE_COMBINATIONS attribute. Basically,
- * it exports a list of "groups", and at any point in time the
- * interfaces that are currently active must fall into any one of
- * the advertised groups. Within each group, there are restrictions
- * on the number of interfaces of different types that are supported
- * and also the number of different channels, along with potentially
- * some other restrictions. See &enum nl80211_if_combination_attrs.
- *
- * All together, these attributes define the concurrency of virtual
- * interfaces that a given device supports.
- */
-
-/**
- * enum nl80211_commands - supported nl80211 commands
- *
- * @NL80211_CMD_UNSPEC: unspecified command to catch errors
- *
- * @NL80211_CMD_GET_WIPHY: request information about a wiphy or dump request
- * to get a list of all present wiphys.
- * @NL80211_CMD_SET_WIPHY: set wiphy parameters, needs %NL80211_ATTR_WIPHY or
- * %NL80211_ATTR_IFINDEX; can be used to set %NL80211_ATTR_WIPHY_NAME,
- * %NL80211_ATTR_WIPHY_TXQ_PARAMS, %NL80211_ATTR_WIPHY_FREQ,
- * %NL80211_ATTR_WIPHY_CHANNEL_TYPE, %NL80211_ATTR_WIPHY_RETRY_SHORT,
- * %NL80211_ATTR_WIPHY_RETRY_LONG, %NL80211_ATTR_WIPHY_FRAG_THRESHOLD,
- * and/or %NL80211_ATTR_WIPHY_RTS_THRESHOLD.
- * However, for setting the channel, see %NL80211_CMD_SET_CHANNEL
- * instead, the support here is for backward compatibility only.
- * @NL80211_CMD_NEW_WIPHY: Newly created wiphy, response to get request
- * or rename notification. Has attributes %NL80211_ATTR_WIPHY and
- * %NL80211_ATTR_WIPHY_NAME.
- * @NL80211_CMD_DEL_WIPHY: Wiphy deleted. Has attributes
- * %NL80211_ATTR_WIPHY and %NL80211_ATTR_WIPHY_NAME.
- *
- * @NL80211_CMD_GET_INTERFACE: Request an interface's configuration;
- * either a dump request on a %NL80211_ATTR_WIPHY or a specific get
- * on an %NL80211_ATTR_IFINDEX is supported.
- * @NL80211_CMD_SET_INTERFACE: Set type of a virtual interface, requires
- * %NL80211_ATTR_IFINDEX and %NL80211_ATTR_IFTYPE.
- * @NL80211_CMD_NEW_INTERFACE: Newly created virtual interface or response
- * to %NL80211_CMD_GET_INTERFACE. Has %NL80211_ATTR_IFINDEX,
- * %NL80211_ATTR_WIPHY and %NL80211_ATTR_IFTYPE attributes. Can also
- * be sent from userspace to request creation of a new virtual interface,
- * then requires attributes %NL80211_ATTR_WIPHY, %NL80211_ATTR_IFTYPE and
- * %NL80211_ATTR_IFNAME.
- * @NL80211_CMD_DEL_INTERFACE: Virtual interface was deleted, has attributes
- * %NL80211_ATTR_IFINDEX and %NL80211_ATTR_WIPHY. Can also be sent from
- * userspace to request deletion of a virtual interface, then requires
- * attribute %NL80211_ATTR_IFINDEX.
- *
- * @NL80211_CMD_GET_KEY: Get sequence counter information for a key specified
- * by %NL80211_ATTR_KEY_IDX and/or %NL80211_ATTR_MAC.
- * @NL80211_CMD_SET_KEY: Set key attributes %NL80211_ATTR_KEY_DEFAULT,
- * %NL80211_ATTR_KEY_DEFAULT_MGMT, or %NL80211_ATTR_KEY_THRESHOLD.
- * @NL80211_CMD_NEW_KEY: add a key with given %NL80211_ATTR_KEY_DATA,
- * %NL80211_ATTR_KEY_IDX, %NL80211_ATTR_MAC, %NL80211_ATTR_KEY_CIPHER,
- * and %NL80211_ATTR_KEY_SEQ attributes.
- * @NL80211_CMD_DEL_KEY: delete a key identified by %NL80211_ATTR_KEY_IDX
- * or %NL80211_ATTR_MAC.
- *
- * @NL80211_CMD_GET_BEACON: (not used)
- * @NL80211_CMD_SET_BEACON: change the beacon on an access point interface
- * using the %NL80211_ATTR_BEACON_HEAD and %NL80211_ATTR_BEACON_TAIL
- * attributes. For drivers that generate the beacon and probe responses
- * internally, the following attributes must be provided: %NL80211_ATTR_IE,
- * %NL80211_ATTR_IE_PROBE_RESP and %NL80211_ATTR_IE_ASSOC_RESP.
- * @NL80211_CMD_START_AP: Start AP operation on an AP interface, parameters
- * are like for %NL80211_CMD_SET_BEACON, and additionally parameters that
- * do not change are used, these include %NL80211_ATTR_BEACON_INTERVAL,
- * %NL80211_ATTR_DTIM_PERIOD, %NL80211_ATTR_SSID,
- * %NL80211_ATTR_HIDDEN_SSID, %NL80211_ATTR_CIPHERS_PAIRWISE,
- * %NL80211_ATTR_CIPHER_GROUP, %NL80211_ATTR_WPA_VERSIONS,
- * %NL80211_ATTR_AKM_SUITES, %NL80211_ATTR_PRIVACY,
- * %NL80211_ATTR_AUTH_TYPE and %NL80211_ATTR_INACTIVITY_TIMEOUT.
- * @NL80211_CMD_NEW_BEACON: old alias for %NL80211_CMD_START_AP
- * @NL80211_CMD_STOP_AP: Stop AP operation on the given interface
- * @NL80211_CMD_DEL_BEACON: old alias for %NL80211_CMD_STOP_AP
- *
- * @NL80211_CMD_GET_STATION: Get station attributes for station identified by
- * %NL80211_ATTR_MAC on the interface identified by %NL80211_ATTR_IFINDEX.
- * @NL80211_CMD_SET_STATION: Set station attributes for station identified by
- * %NL80211_ATTR_MAC on the interface identified by %NL80211_ATTR_IFINDEX.
- * @NL80211_CMD_NEW_STATION: Add a station with given attributes to the
- * the interface identified by %NL80211_ATTR_IFINDEX.
- * @NL80211_CMD_DEL_STATION: Remove a station identified by %NL80211_ATTR_MAC
- * or, if no MAC address given, all stations, on the interface identified
- * by %NL80211_ATTR_IFINDEX.
- *
- * @NL80211_CMD_GET_MPATH: Get mesh path attributes for mesh path to
- * destination %NL80211_ATTR_MAC on the interface identified by
- * %NL80211_ATTR_IFINDEX.
- * @NL80211_CMD_SET_MPATH: Set mesh path attributes for mesh path to
- * destination %NL80211_ATTR_MAC on the interface identified by
- * %NL80211_ATTR_IFINDEX.
- * @NL80211_CMD_NEW_MPATH: Create a new mesh path for the destination given by
- * %NL80211_ATTR_MAC via %NL80211_ATTR_MPATH_NEXT_HOP.
- * @NL80211_CMD_DEL_MPATH: Delete a mesh path to the destination given by
- * %NL80211_ATTR_MAC.
- * @NL80211_CMD_NEW_PATH: Add a mesh path with given attributes to the
- * the interface identified by %NL80211_ATTR_IFINDEX.
- * @NL80211_CMD_DEL_PATH: Remove a mesh path identified by %NL80211_ATTR_MAC
- * or, if no MAC address given, all mesh paths, on the interface identified
- * by %NL80211_ATTR_IFINDEX.
- * @NL80211_CMD_SET_BSS: Set BSS attributes for BSS identified by
- * %NL80211_ATTR_IFINDEX.
- *
- * @NL80211_CMD_GET_REG: ask the wireless core to send us its currently set
- * regulatory domain.
- * @NL80211_CMD_SET_REG: Set current regulatory domain. CRDA sends this command
- * after being queried by the kernel. CRDA replies by sending a regulatory
- * domain structure which consists of %NL80211_ATTR_REG_ALPHA set to our
- * current alpha2 if it found a match. It also provides
- * NL80211_ATTR_REG_RULE_FLAGS, and a set of regulatory rules. Each
- * regulatory rule is a nested set of attributes given by
- * %NL80211_ATTR_REG_RULE_FREQ_[START|END] and
- * %NL80211_ATTR_FREQ_RANGE_MAX_BW with an attached power rule given by
- * %NL80211_ATTR_REG_RULE_POWER_MAX_ANT_GAIN and
- * %NL80211_ATTR_REG_RULE_POWER_MAX_EIRP.
- * @NL80211_CMD_REQ_SET_REG: ask the wireless core to set the regulatory domain
- * to the specified ISO/IEC 3166-1 alpha2 country code. The core will
- * store this as a valid request and then query userspace for it.
- *
- * @NL80211_CMD_GET_MESH_CONFIG: Get mesh networking properties for the
- * interface identified by %NL80211_ATTR_IFINDEX
- *
- * @NL80211_CMD_SET_MESH_CONFIG: Set mesh networking properties for the
- * interface identified by %NL80211_ATTR_IFINDEX
- *
- * @NL80211_CMD_SET_MGMT_EXTRA_IE: Set extra IEs for management frames. The
- * interface is identified with %NL80211_ATTR_IFINDEX and the management
- * frame subtype with %NL80211_ATTR_MGMT_SUBTYPE. The extra IE data to be
- * added to the end of the specified management frame is specified with
- * %NL80211_ATTR_IE. If the command succeeds, the requested data will be
- * added to all specified management frames generated by
- * kernel/firmware/driver.
- * Note: This command has been removed and it is only reserved at this
- * point to avoid re-using existing command number. The functionality this
- * command was planned for has been provided with cleaner design with the
- * option to specify additional IEs in NL80211_CMD_TRIGGER_SCAN,
- * NL80211_CMD_AUTHENTICATE, NL80211_CMD_ASSOCIATE,
- * NL80211_CMD_DEAUTHENTICATE, and NL80211_CMD_DISASSOCIATE.
- *
- * @NL80211_CMD_GET_SCAN: get scan results
- * @NL80211_CMD_TRIGGER_SCAN: trigger a new scan with the given parameters
- * %NL80211_ATTR_TX_NO_CCK_RATE is used to decide whether to send the
- * probe requests at CCK rate or not.
- * @NL80211_CMD_NEW_SCAN_RESULTS: scan notification (as a reply to
- * NL80211_CMD_GET_SCAN and on the "scan" multicast group)
- * @NL80211_CMD_SCAN_ABORTED: scan was aborted, for unspecified reasons,
- * partial scan results may be available
- *
- * @NL80211_CMD_START_SCHED_SCAN: start a scheduled scan at certain
- * intervals, as specified by %NL80211_ATTR_SCHED_SCAN_INTERVAL.
- * Like with normal scans, if SSIDs (%NL80211_ATTR_SCAN_SSIDS)
- * are passed, they are used in the probe requests. For
- * broadcast, a broadcast SSID must be passed (ie. an empty
- * string). If no SSID is passed, no probe requests are sent and
- * a passive scan is performed. %NL80211_ATTR_SCAN_FREQUENCIES,
- * if passed, define which channels should be scanned; if not
- * passed, all channels allowed for the current regulatory domain
- * are used. Extra IEs can also be passed from the userspace by
- * using the %NL80211_ATTR_IE attribute.
- * @NL80211_CMD_STOP_SCHED_SCAN: stop a scheduled scan. Returns -ENOENT
- * if scheduled scan is not running.
- * @NL80211_CMD_SCHED_SCAN_RESULTS: indicates that there are scheduled scan
- * results available.
- * @NL80211_CMD_SCHED_SCAN_STOPPED: indicates that the scheduled scan has
- * stopped. The driver may issue this event at any time during a
- * scheduled scan. One reason for stopping the scan is if the hardware
- * does not support starting an association or a normal scan while running
- * a scheduled scan. This event is also sent when the
- * %NL80211_CMD_STOP_SCHED_SCAN command is received or when the interface
- * is brought down while a scheduled scan was running.
- *
- * @NL80211_CMD_GET_SURVEY: get survey resuls, e.g. channel occupation
- * or noise level
- * @NL80211_CMD_NEW_SURVEY_RESULTS: survey data notification (as a reply to
- * NL80211_CMD_GET_SURVEY and on the "scan" multicast group)
- *
- * @NL80211_CMD_REG_CHANGE: indicates to userspace the regulatory domain
- * has been changed and provides details of the request information
- * that caused the change such as who initiated the regulatory request
- * (%NL80211_ATTR_REG_INITIATOR), the wiphy_idx
- * (%NL80211_ATTR_REG_ALPHA2) on which the request was made from if
- * the initiator was %NL80211_REGDOM_SET_BY_COUNTRY_IE or
- * %NL80211_REGDOM_SET_BY_DRIVER, the type of regulatory domain
- * set (%NL80211_ATTR_REG_TYPE), if the type of regulatory domain is
- * %NL80211_REG_TYPE_COUNTRY the alpha2 to which we have moved on
- * to (%NL80211_ATTR_REG_ALPHA2).
- * @NL80211_CMD_REG_BEACON_HINT: indicates to userspace that an AP beacon
- * has been found while world roaming thus enabling active scan or
- * any mode of operation that initiates TX (beacons) on a channel
- * where we would not have been able to do either before. As an example
- * if you are world roaming (regulatory domain set to world or if your
- * driver is using a custom world roaming regulatory domain) and while
- * doing a passive scan on the 5 GHz band you find an AP there (if not
- * on a DFS channel) you will now be able to actively scan for that AP
- * or use AP mode on your card on that same channel. Note that this will
- * never be used for channels 1-11 on the 2 GHz band as they are always
- * enabled world wide. This beacon hint is only sent if your device had
- * either disabled active scanning or beaconing on a channel. We send to
- * userspace the wiphy on which we removed a restriction from
- * (%NL80211_ATTR_WIPHY) and the channel on which this occurred
- * before (%NL80211_ATTR_FREQ_BEFORE) and after (%NL80211_ATTR_FREQ_AFTER)
- * the beacon hint was processed.
- *
- * @NL80211_CMD_AUTHENTICATE: authentication request and notification.
- * This command is used both as a command (request to authenticate) and
- * as an event on the "mlme" multicast group indicating completion of the
- * authentication process.
- * When used as a command, %NL80211_ATTR_IFINDEX is used to identify the
- * interface. %NL80211_ATTR_MAC is used to specify PeerSTAAddress (and
- * BSSID in case of station mode). %NL80211_ATTR_SSID is used to specify
- * the SSID (mainly for association, but is included in authentication
- * request, too, to help BSS selection. %NL80211_ATTR_WIPHY_FREQ is used
- * to specify the frequence of the channel in MHz. %NL80211_ATTR_AUTH_TYPE
- * is used to specify the authentication type. %NL80211_ATTR_IE is used to
- * define IEs (VendorSpecificInfo, but also including RSN IE and FT IEs)
- * to be added to the frame.
- * When used as an event, this reports reception of an Authentication
- * frame in station and IBSS modes when the local MLME processed the
- * frame, i.e., it was for the local STA and was received in correct
- * state. This is similar to MLME-AUTHENTICATE.confirm primitive in the
- * MLME SAP interface (kernel providing MLME, userspace SME). The
- * included %NL80211_ATTR_FRAME attribute contains the management frame
- * (including both the header and frame body, but not FCS). This event is
- * also used to indicate if the authentication attempt timed out. In that
- * case the %NL80211_ATTR_FRAME attribute is replaced with a
- * %NL80211_ATTR_TIMED_OUT flag (and %NL80211_ATTR_MAC to indicate which
- * pending authentication timed out).
- * @NL80211_CMD_ASSOCIATE: association request and notification; like
- * NL80211_CMD_AUTHENTICATE but for Association and Reassociation
- * (similar to MLME-ASSOCIATE.request, MLME-REASSOCIATE.request,
- * MLME-ASSOCIATE.confirm or MLME-REASSOCIATE.confirm primitives).
- * @NL80211_CMD_DEAUTHENTICATE: deauthentication request and notification; like
- * NL80211_CMD_AUTHENTICATE but for Deauthentication frames (similar to
- * MLME-DEAUTHENTICATION.request and MLME-DEAUTHENTICATE.indication
- * primitives).
- * @NL80211_CMD_DISASSOCIATE: disassociation request and notification; like
- * NL80211_CMD_AUTHENTICATE but for Disassociation frames (similar to
- * MLME-DISASSOCIATE.request and MLME-DISASSOCIATE.indication primitives).
- *
- * @NL80211_CMD_MICHAEL_MIC_FAILURE: notification of a locally detected Michael
- * MIC (part of TKIP) failure; sent on the "mlme" multicast group; the
- * event includes %NL80211_ATTR_MAC to describe the source MAC address of
- * the frame with invalid MIC, %NL80211_ATTR_KEY_TYPE to show the key
- * type, %NL80211_ATTR_KEY_IDX to indicate the key identifier, and
- * %NL80211_ATTR_KEY_SEQ to indicate the TSC value of the frame; this
- * event matches with MLME-MICHAELMICFAILURE.indication() primitive
- *
- * @NL80211_CMD_JOIN_IBSS: Join a new IBSS -- given at least an SSID and a
- * FREQ attribute (for the initial frequency if no peer can be found)
- * and optionally a MAC (as BSSID) and FREQ_FIXED attribute if those
- * should be fixed rather than automatically determined. Can only be
- * executed on a network interface that is UP, and fixed BSSID/FREQ
- * may be rejected. Another optional parameter is the beacon interval,
- * given in the %NL80211_ATTR_BEACON_INTERVAL attribute, which if not
- * given defaults to 100 TU (102.4ms).
- * @NL80211_CMD_LEAVE_IBSS: Leave the IBSS -- no special arguments, the IBSS is
- * determined by the network interface.
- *
- * @NL80211_CMD_TESTMODE: testmode command, takes a wiphy (or ifindex) attribute
- * to identify the device, and the TESTDATA blob attribute to pass through
- * to the driver.
- *
- * @NL80211_CMD_CONNECT: connection request and notification; this command
- * requests to connect to a specified network but without separating
- * auth and assoc steps. For this, you need to specify the SSID in a
- * %NL80211_ATTR_SSID attribute, and can optionally specify the association
- * IEs in %NL80211_ATTR_IE, %NL80211_ATTR_AUTH_TYPE, %NL80211_ATTR_MAC,
- * %NL80211_ATTR_WIPHY_FREQ, %NL80211_ATTR_CONTROL_PORT,
- * %NL80211_ATTR_CONTROL_PORT_ETHERTYPE and
- * %NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT.
- * Background scan period can optionally be
- * specified in %NL80211_ATTR_BG_SCAN_PERIOD,
- * if not specified default background scan configuration
- * in driver is used and if period value is 0, bg scan will be disabled.
- * This attribute is ignored if driver does not support roam scan.
- * It is also sent as an event, with the BSSID and response IEs when the
- * connection is established or failed to be established. This can be
- * determined by the STATUS_CODE attribute.
- * @NL80211_CMD_ROAM: request that the card roam (currently not implemented),
- * sent as an event when the card/driver roamed by itself.
- * @NL80211_CMD_DISCONNECT: drop a given connection; also used to notify
- * userspace that a connection was dropped by the AP or due to other
- * reasons, for this the %NL80211_ATTR_DISCONNECTED_BY_AP and
- * %NL80211_ATTR_REASON_CODE attributes are used.
- *
- * @NL80211_CMD_SET_WIPHY_NETNS: Set a wiphy's netns. Note that all devices
- * associated with this wiphy must be down and will follow.
- *
- * @NL80211_CMD_REMAIN_ON_CHANNEL: Request to remain awake on the specified
- * channel for the specified amount of time. This can be used to do
- * off-channel operations like transmit a Public Action frame and wait for
- * a response while being associated to an AP on another channel.
- * %NL80211_ATTR_IFINDEX is used to specify which interface (and thus
- * radio) is used. %NL80211_ATTR_WIPHY_FREQ is used to specify the
- * frequency for the operation and %NL80211_ATTR_WIPHY_CHANNEL_TYPE may be
- * optionally used to specify additional channel parameters.
- * %NL80211_ATTR_DURATION is used to specify the duration in milliseconds
- * to remain on the channel. This command is also used as an event to
- * notify when the requested duration starts (it may take a while for the
- * driver to schedule this time due to other concurrent needs for the
- * radio).
- * When called, this operation returns a cookie (%NL80211_ATTR_COOKIE)
- * that will be included with any events pertaining to this request;
- * the cookie is also used to cancel the request.
- * @NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL: This command can be used to cancel a
- * pending remain-on-channel duration if the desired operation has been
- * completed prior to expiration of the originally requested duration.
- * %NL80211_ATTR_WIPHY or %NL80211_ATTR_IFINDEX is used to specify the
- * radio. The %NL80211_ATTR_COOKIE attribute must be given as well to
- * uniquely identify the request.
- * This command is also used as an event to notify when a requested
- * remain-on-channel duration has expired.
- *
- * @NL80211_CMD_SET_TX_BITRATE_MASK: Set the mask of rates to be used in TX
- * rate selection. %NL80211_ATTR_IFINDEX is used to specify the interface
- * and @NL80211_ATTR_TX_RATES the set of allowed rates.
- *
- * @NL80211_CMD_REGISTER_FRAME: Register for receiving certain mgmt frames
- * (via @NL80211_CMD_FRAME) for processing in userspace. This command
- * requires an interface index, a frame type attribute (optional for
- * backward compatibility reasons, if not given assumes action frames)
- * and a match attribute containing the first few bytes of the frame
- * that should match, e.g. a single byte for only a category match or
- * four bytes for vendor frames including the OUI. The registration
- * cannot be dropped, but is removed automatically when the netlink
- * socket is closed. Multiple registrations can be made.
- * @NL80211_CMD_REGISTER_ACTION: Alias for @NL80211_CMD_REGISTER_FRAME for
- * backward compatibility
- * @NL80211_CMD_FRAME: Management frame TX request and RX notification. This
- * command is used both as a request to transmit a management frame and
- * as an event indicating reception of a frame that was not processed in
- * kernel code, but is for us (i.e., which may need to be processed in a
- * user space application). %NL80211_ATTR_FRAME is used to specify the
- * frame contents (including header). %NL80211_ATTR_WIPHY_FREQ (and
- * optionally %NL80211_ATTR_WIPHY_CHANNEL_TYPE) is used to indicate on
- * which channel the frame is to be transmitted or was received. If this
- * channel is not the current channel (remain-on-channel or the
- * operational channel) the device will switch to the given channel and
- * transmit the frame, optionally waiting for a response for the time
- * specified using %NL80211_ATTR_DURATION. When called, this operation
- * returns a cookie (%NL80211_ATTR_COOKIE) that will be included with the
- * TX status event pertaining to the TX request.
- * %NL80211_ATTR_TX_NO_CCK_RATE is used to decide whether to send the
- * management frames at CCK rate or not in 2GHz band.
- * @NL80211_CMD_FRAME_WAIT_CANCEL: When an off-channel TX was requested, this
- * command may be used with the corresponding cookie to cancel the wait
- * time if it is known that it is no longer necessary.
- * @NL80211_CMD_ACTION: Alias for @NL80211_CMD_FRAME for backward compatibility.
- * @NL80211_CMD_FRAME_TX_STATUS: Report TX status of a management frame
- * transmitted with %NL80211_CMD_FRAME. %NL80211_ATTR_COOKIE identifies
- * the TX command and %NL80211_ATTR_FRAME includes the contents of the
- * frame. %NL80211_ATTR_ACK flag is included if the recipient acknowledged
- * the frame.
- * @NL80211_CMD_ACTION_TX_STATUS: Alias for @NL80211_CMD_FRAME_TX_STATUS for
- * backward compatibility.
- * @NL80211_CMD_SET_CQM: Connection quality monitor configuration. This command
- * is used to configure connection quality monitoring notification trigger
- * levels.
- * @NL80211_CMD_NOTIFY_CQM: Connection quality monitor notification. This
- * command is used as an event to indicate the that a trigger level was
- * reached.
- * @NL80211_CMD_SET_CHANNEL: Set the channel (using %NL80211_ATTR_WIPHY_FREQ
- * and %NL80211_ATTR_WIPHY_CHANNEL_TYPE) the given interface (identifed
- * by %NL80211_ATTR_IFINDEX) shall operate on.
- * In case multiple channels are supported by the device, the mechanism
- * with which it switches channels is implementation-defined.
- * When a monitor interface is given, it can only switch channel while
- * no other interfaces are operating to avoid disturbing the operation
- * of any other interfaces, and other interfaces will again take
- * precedence when they are used.
- *
- * @NL80211_CMD_SET_WDS_PEER: Set the MAC address of the peer on a WDS interface.
- *
- * @NL80211_CMD_JOIN_MESH: Join a mesh. The mesh ID must be given, and initial
- * mesh config parameters may be given.
- * @NL80211_CMD_LEAVE_MESH: Leave the mesh network -- no special arguments, the
- * network is determined by the network interface.
- *
- * @NL80211_CMD_UNPROT_DEAUTHENTICATE: Unprotected deauthentication frame
- * notification. This event is used to indicate that an unprotected
- * deauthentication frame was dropped when MFP is in use.
- * @NL80211_CMD_UNPROT_DISASSOCIATE: Unprotected disassociation frame
- * notification. This event is used to indicate that an unprotected
- * disassociation frame was dropped when MFP is in use.
- *
- * @NL80211_CMD_NEW_PEER_CANDIDATE: Notification on the reception of a
- * beacon or probe response from a compatible mesh peer. This is only
- * sent while no station information (sta_info) exists for the new peer
- * candidate and when @NL80211_MESH_SETUP_USERSPACE_AUTH is set. On
- * reception of this notification, userspace may decide to create a new
- * station (@NL80211_CMD_NEW_STATION). To stop this notification from
- * reoccurring, the userspace authentication daemon may want to create the
- * new station with the AUTHENTICATED flag unset and maybe change it later
- * depending on the authentication result.
- *
- * @NL80211_CMD_GET_WOWLAN: get Wake-on-Wireless-LAN (WoWLAN) settings.
- * @NL80211_CMD_SET_WOWLAN: set Wake-on-Wireless-LAN (WoWLAN) settings.
- * Since wireless is more complex than wired ethernet, it supports
- * various triggers. These triggers can be configured through this
- * command with the %NL80211_ATTR_WOWLAN_TRIGGERS attribute. For
- * more background information, see
- * http://wireless.kernel.org/en/users/Documentation/WoWLAN.
- *
- * @NL80211_CMD_SET_REKEY_OFFLOAD: This command is used give the driver
- * the necessary information for supporting GTK rekey offload. This
- * feature is typically used during WoWLAN. The configuration data
- * is contained in %NL80211_ATTR_REKEY_DATA (which is nested and
- * contains the data in sub-attributes). After rekeying happened,
- * this command may also be sent by the driver as an MLME event to
- * inform userspace of the new replay counter.
- *
- * @NL80211_CMD_PMKSA_CANDIDATE: This is used as an event to inform userspace
- * of PMKSA caching dandidates.
- *
- * @NL80211_CMD_TDLS_OPER: Perform a high-level TDLS command (e.g. link setup).
- * @NL80211_CMD_TDLS_MGMT: Send a TDLS management frame.
- *
- * @NL80211_CMD_UNEXPECTED_FRAME: Used by an application controlling an AP
- * (or GO) interface (i.e. hostapd) to ask for unexpected frames to
- * implement sending deauth to stations that send unexpected class 3
- * frames. Also used as the event sent by the kernel when such a frame
- * is received.
- * For the event, the %NL80211_ATTR_MAC attribute carries the TA and
- * other attributes like the interface index are present.
- * If used as the command it must have an interface index and you can
- * only unsubscribe from the event by closing the socket. Subscription
- * is also for %NL80211_CMD_UNEXPECTED_4ADDR_FRAME events.
- *
- * @NL80211_CMD_UNEXPECTED_4ADDR_FRAME: Sent as an event indicating that the
- * associated station identified by %NL80211_ATTR_MAC sent a 4addr frame
- * and wasn't already in a 4-addr VLAN. The event will be sent similarly
- * to the %NL80211_CMD_UNEXPECTED_FRAME event, to the same listener.
- *
- * @NL80211_CMD_PROBE_CLIENT: Probe an associated station on an AP interface
- * by sending a null data frame to it and reporting when the frame is
- * acknowleged. This is used to allow timing out inactive clients. Uses
- * %NL80211_ATTR_IFINDEX and %NL80211_ATTR_MAC. The command returns a
- * direct reply with an %NL80211_ATTR_COOKIE that is later used to match
- * up the event with the request. The event includes the same data and
- * has %NL80211_ATTR_ACK set if the frame was ACKed.
- *
- * @NL80211_CMD_REGISTER_BEACONS: Register this socket to receive beacons from
- * other BSSes when any interfaces are in AP mode. This helps implement
- * OLBC handling in hostapd. Beacons are reported in %NL80211_CMD_FRAME
- * messages. Note that per PHY only one application may register.
- *
- * @NL80211_CMD_SET_NOACK_MAP: sets a bitmap for the individual TIDs whether
- * No Acknowledgement Policy should be applied.
- *
- * @NL80211_CMD_MAX: highest used command number
- * @__NL80211_CMD_AFTER_LAST: internal use
- */
-enum nl80211_commands {
-/* don't change the order or add anything between, this is ABI! */
- NL80211_CMD_UNSPEC,
-
- NL80211_CMD_GET_WIPHY, /* can dump */
- NL80211_CMD_SET_WIPHY,
- NL80211_CMD_NEW_WIPHY,
- NL80211_CMD_DEL_WIPHY,
-
- NL80211_CMD_GET_INTERFACE, /* can dump */
- NL80211_CMD_SET_INTERFACE,
- NL80211_CMD_NEW_INTERFACE,
- NL80211_CMD_DEL_INTERFACE,
-
- NL80211_CMD_GET_KEY,
- NL80211_CMD_SET_KEY,
- NL80211_CMD_NEW_KEY,
- NL80211_CMD_DEL_KEY,
-
- NL80211_CMD_GET_BEACON,
- NL80211_CMD_SET_BEACON,
- NL80211_CMD_START_AP,
- NL80211_CMD_NEW_BEACON = NL80211_CMD_START_AP,
- NL80211_CMD_STOP_AP,
- NL80211_CMD_DEL_BEACON = NL80211_CMD_STOP_AP,
-
- NL80211_CMD_GET_STATION,
- NL80211_CMD_SET_STATION,
- NL80211_CMD_NEW_STATION,
- NL80211_CMD_DEL_STATION,
-
- NL80211_CMD_GET_MPATH,
- NL80211_CMD_SET_MPATH,
- NL80211_CMD_NEW_MPATH,
- NL80211_CMD_DEL_MPATH,
-
- NL80211_CMD_SET_BSS,
-
- NL80211_CMD_SET_REG,
- NL80211_CMD_REQ_SET_REG,
-
- NL80211_CMD_GET_MESH_CONFIG,
- NL80211_CMD_SET_MESH_CONFIG,
-
- NL80211_CMD_SET_MGMT_EXTRA_IE /* reserved; not used */,
-
- NL80211_CMD_GET_REG,
-
- NL80211_CMD_GET_SCAN,
- NL80211_CMD_TRIGGER_SCAN,
- NL80211_CMD_NEW_SCAN_RESULTS,
- NL80211_CMD_SCAN_ABORTED,
-
- NL80211_CMD_REG_CHANGE,
-
- NL80211_CMD_AUTHENTICATE,
- NL80211_CMD_ASSOCIATE,
- NL80211_CMD_DEAUTHENTICATE,
- NL80211_CMD_DISASSOCIATE,
-
- NL80211_CMD_MICHAEL_MIC_FAILURE,
-
- NL80211_CMD_REG_BEACON_HINT,
-
- NL80211_CMD_JOIN_IBSS,
- NL80211_CMD_LEAVE_IBSS,
-
- NL80211_CMD_TESTMODE,
-
- NL80211_CMD_CONNECT,
- NL80211_CMD_ROAM,
- NL80211_CMD_DISCONNECT,
-
- NL80211_CMD_SET_WIPHY_NETNS,
-
- NL80211_CMD_GET_SURVEY,
- NL80211_CMD_NEW_SURVEY_RESULTS,
-
- NL80211_CMD_SET_PMKSA,
- NL80211_CMD_DEL_PMKSA,
- NL80211_CMD_FLUSH_PMKSA,
-
- NL80211_CMD_REMAIN_ON_CHANNEL,
- NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL,
-
- NL80211_CMD_SET_TX_BITRATE_MASK,
-
- NL80211_CMD_REGISTER_FRAME,
- NL80211_CMD_REGISTER_ACTION = NL80211_CMD_REGISTER_FRAME,
- NL80211_CMD_FRAME,
- NL80211_CMD_ACTION = NL80211_CMD_FRAME,
- NL80211_CMD_FRAME_TX_STATUS,
- NL80211_CMD_ACTION_TX_STATUS = NL80211_CMD_FRAME_TX_STATUS,
-
- NL80211_CMD_SET_POWER_SAVE,
- NL80211_CMD_GET_POWER_SAVE,
-
- NL80211_CMD_SET_CQM,
- NL80211_CMD_NOTIFY_CQM,
-
- NL80211_CMD_SET_CHANNEL,
- NL80211_CMD_SET_WDS_PEER,
-
- NL80211_CMD_FRAME_WAIT_CANCEL,
-
- NL80211_CMD_JOIN_MESH,
- NL80211_CMD_LEAVE_MESH,
-
- NL80211_CMD_UNPROT_DEAUTHENTICATE,
- NL80211_CMD_UNPROT_DISASSOCIATE,
-
- NL80211_CMD_NEW_PEER_CANDIDATE,
-
- NL80211_CMD_GET_WOWLAN,
- NL80211_CMD_SET_WOWLAN,
-
- NL80211_CMD_START_SCHED_SCAN,
- NL80211_CMD_STOP_SCHED_SCAN,
- NL80211_CMD_SCHED_SCAN_RESULTS,
- NL80211_CMD_SCHED_SCAN_STOPPED,
-
- NL80211_CMD_SET_REKEY_OFFLOAD,
-
- NL80211_CMD_PMKSA_CANDIDATE,
-
- NL80211_CMD_TDLS_OPER,
- NL80211_CMD_TDLS_MGMT,
-
- NL80211_CMD_UNEXPECTED_FRAME,
-
- NL80211_CMD_PROBE_CLIENT,
-
- NL80211_CMD_REGISTER_BEACONS,
-
- NL80211_CMD_UNEXPECTED_4ADDR_FRAME,
-
- NL80211_CMD_SET_NOACK_MAP,
-
- /* add new commands above here */
-
- /* used to define NL80211_CMD_MAX below */
- __NL80211_CMD_AFTER_LAST,
- NL80211_CMD_MAX = __NL80211_CMD_AFTER_LAST - 1
-};
-
-/*
- * Allow user space programs to use #ifdef on new commands by defining them
- * here
- */
-#define NL80211_CMD_SET_BSS NL80211_CMD_SET_BSS
-#define NL80211_CMD_SET_MGMT_EXTRA_IE NL80211_CMD_SET_MGMT_EXTRA_IE
-#define NL80211_CMD_REG_CHANGE NL80211_CMD_REG_CHANGE
-#define NL80211_CMD_AUTHENTICATE NL80211_CMD_AUTHENTICATE
-#define NL80211_CMD_ASSOCIATE NL80211_CMD_ASSOCIATE
-#define NL80211_CMD_DEAUTHENTICATE NL80211_CMD_DEAUTHENTICATE
-#define NL80211_CMD_DISASSOCIATE NL80211_CMD_DISASSOCIATE
-#define NL80211_CMD_REG_BEACON_HINT NL80211_CMD_REG_BEACON_HINT
-
-#define NL80211_ATTR_FEATURE_FLAGS NL80211_ATTR_FEATURE_FLAGS
-
-/* source-level API compatibility */
-#define NL80211_CMD_GET_MESH_PARAMS NL80211_CMD_GET_MESH_CONFIG
-#define NL80211_CMD_SET_MESH_PARAMS NL80211_CMD_SET_MESH_CONFIG
-#define NL80211_MESH_SETUP_VENDOR_PATH_SEL_IE NL80211_MESH_SETUP_IE
-
-/**
- * enum nl80211_attrs - nl80211 netlink attributes
- *
- * @NL80211_ATTR_UNSPEC: unspecified attribute to catch errors
- *
- * @NL80211_ATTR_WIPHY: index of wiphy to operate on, cf.
- * /sys/class/ieee80211/<phyname>/index
- * @NL80211_ATTR_WIPHY_NAME: wiphy name (used for renaming)
- * @NL80211_ATTR_WIPHY_TXQ_PARAMS: a nested array of TX queue parameters
- * @NL80211_ATTR_WIPHY_FREQ: frequency of the selected channel in MHz
- * @NL80211_ATTR_WIPHY_CHANNEL_TYPE: included with NL80211_ATTR_WIPHY_FREQ
- * if HT20 or HT40 are allowed (i.e., 802.11n disabled if not included):
- * NL80211_CHAN_NO_HT = HT not allowed (i.e., same as not including
- * this attribute)
- * NL80211_CHAN_HT20 = HT20 only
- * NL80211_CHAN_HT40MINUS = secondary channel is below the primary channel
- * NL80211_CHAN_HT40PLUS = secondary channel is above the primary channel
- * @NL80211_ATTR_WIPHY_RETRY_SHORT: TX retry limit for frames whose length is
- * less than or equal to the RTS threshold; allowed range: 1..255;
- * dot11ShortRetryLimit; u8
- * @NL80211_ATTR_WIPHY_RETRY_LONG: TX retry limit for frames whose length is
- * greater than the RTS threshold; allowed range: 1..255;
- * dot11ShortLongLimit; u8
- * @NL80211_ATTR_WIPHY_FRAG_THRESHOLD: fragmentation threshold, i.e., maximum
- * length in octets for frames; allowed range: 256..8000, disable
- * fragmentation with (u32)-1; dot11FragmentationThreshold; u32
- * @NL80211_ATTR_WIPHY_RTS_THRESHOLD: RTS threshold (TX frames with length
- * larger than or equal to this use RTS/CTS handshake); allowed range:
- * 0..65536, disable with (u32)-1; dot11RTSThreshold; u32
- * @NL80211_ATTR_WIPHY_COVERAGE_CLASS: Coverage Class as defined by IEEE 802.11
- * section 7.3.2.9; dot11CoverageClass; u8
- *
- * @NL80211_ATTR_IFINDEX: network interface index of the device to operate on
- * @NL80211_ATTR_IFNAME: network interface name
- * @NL80211_ATTR_IFTYPE: type of virtual interface, see &enum nl80211_iftype
- *
- * @NL80211_ATTR_MAC: MAC address (various uses)
- *
- * @NL80211_ATTR_KEY_DATA: (temporal) key data; for TKIP this consists of
- * 16 bytes encryption key followed by 8 bytes each for TX and RX MIC
- * keys
- * @NL80211_ATTR_KEY_IDX: key ID (u8, 0-3)
- * @NL80211_ATTR_KEY_CIPHER: key cipher suite (u32, as defined by IEEE 802.11
- * section 7.3.2.25.1, e.g. 0x000FAC04)
- * @NL80211_ATTR_KEY_SEQ: transmit key sequence number (IV/PN) for TKIP and
- * CCMP keys, each six bytes in little endian
- *
- * @NL80211_ATTR_BEACON_INTERVAL: beacon interval in TU
- * @NL80211_ATTR_DTIM_PERIOD: DTIM period for beaconing
- * @NL80211_ATTR_BEACON_HEAD: portion of the beacon before the TIM IE
- * @NL80211_ATTR_BEACON_TAIL: portion of the beacon after the TIM IE
- *
- * @NL80211_ATTR_STA_AID: Association ID for the station (u16)
- * @NL80211_ATTR_STA_FLAGS: flags, nested element with NLA_FLAG attributes of
- * &enum nl80211_sta_flags (deprecated, use %NL80211_ATTR_STA_FLAGS2)
- * @NL80211_ATTR_STA_LISTEN_INTERVAL: listen interval as defined by
- * IEEE 802.11 7.3.1.6 (u16).
- * @NL80211_ATTR_STA_SUPPORTED_RATES: supported rates, array of supported
- * rates as defined by IEEE 802.11 7.3.2.2 but without the length
- * restriction (at most %NL80211_MAX_SUPP_RATES).
- * @NL80211_ATTR_STA_VLAN: interface index of VLAN interface to move station
- * to, or the AP interface the station was originally added to to.
- * @NL80211_ATTR_STA_INFO: information about a station, part of station info
- * given for %NL80211_CMD_GET_STATION, nested attribute containing
- * info as possible, see &enum nl80211_sta_info.
- *
- * @NL80211_ATTR_WIPHY_BANDS: Information about an operating bands,
- * consisting of a nested array.
- *
- * @NL80211_ATTR_MESH_ID: mesh id (1-32 bytes).
- * @NL80211_ATTR_STA_PLINK_ACTION: action to perform on the mesh peer link.
- * @NL80211_ATTR_MPATH_NEXT_HOP: MAC address of the next hop for a mesh path.
- * @NL80211_ATTR_MPATH_INFO: information about a mesh_path, part of mesh path
- * info given for %NL80211_CMD_GET_MPATH, nested attribute described at
- * &enum nl80211_mpath_info.
- *
- * @NL80211_ATTR_MNTR_FLAGS: flags, nested element with NLA_FLAG attributes of
- * &enum nl80211_mntr_flags.
- *
- * @NL80211_ATTR_REG_ALPHA2: an ISO-3166-alpha2 country code for which the
- * current regulatory domain should be set to or is already set to.
- * For example, 'CR', for Costa Rica. This attribute is used by the kernel
- * to query the CRDA to retrieve one regulatory domain. This attribute can
- * also be used by userspace to query the kernel for the currently set
- * regulatory domain. We chose an alpha2 as that is also used by the
- * IEEE-802.11d country information element to identify a country.
- * Users can also simply ask the wireless core to set regulatory domain
- * to a specific alpha2.
- * @NL80211_ATTR_REG_RULES: a nested array of regulatory domain regulatory
- * rules.
- *
- * @NL80211_ATTR_BSS_CTS_PROT: whether CTS protection is enabled (u8, 0 or 1)
- * @NL80211_ATTR_BSS_SHORT_PREAMBLE: whether short preamble is enabled
- * (u8, 0 or 1)
- * @NL80211_ATTR_BSS_SHORT_SLOT_TIME: whether short slot time enabled
- * (u8, 0 or 1)
- * @NL80211_ATTR_BSS_BASIC_RATES: basic rates, array of basic
- * rates in format defined by IEEE 802.11 7.3.2.2 but without the length
- * restriction (at most %NL80211_MAX_SUPP_RATES).
- *
- * @NL80211_ATTR_HT_CAPABILITY: HT Capability information element (from
- * association request when used with NL80211_CMD_NEW_STATION)
- *
- * @NL80211_ATTR_SUPPORTED_IFTYPES: nested attribute containing all
- * supported interface types, each a flag attribute with the number
- * of the interface mode.
- *
- * @NL80211_ATTR_MGMT_SUBTYPE: Management frame subtype for
- * %NL80211_CMD_SET_MGMT_EXTRA_IE.
- *
- * @NL80211_ATTR_IE: Information element(s) data (used, e.g., with
- * %NL80211_CMD_SET_MGMT_EXTRA_IE).
- *
- * @NL80211_ATTR_MAX_NUM_SCAN_SSIDS: number of SSIDs you can scan with
- * a single scan request, a wiphy attribute.
- * @NL80211_ATTR_MAX_NUM_SCHED_SCAN_SSIDS: number of SSIDs you can
- * scan with a single scheduled scan request, a wiphy attribute.
- * @NL80211_ATTR_MAX_SCAN_IE_LEN: maximum length of information elements
- * that can be added to a scan request
- * @NL80211_ATTR_MAX_SCHED_SCAN_IE_LEN: maximum length of information
- * elements that can be added to a scheduled scan request
- * @NL80211_ATTR_MAX_MATCH_SETS: maximum number of sets that can be
- * used with @NL80211_ATTR_SCHED_SCAN_MATCH, a wiphy attribute.
- *
- * @NL80211_ATTR_SCAN_FREQUENCIES: nested attribute with frequencies (in MHz)
- * @NL80211_ATTR_SCAN_SSIDS: nested attribute with SSIDs, leave out for passive
- * scanning and include a zero-length SSID (wildcard) for wildcard scan
- * @NL80211_ATTR_BSS: scan result BSS
- *
- * @NL80211_ATTR_REG_INITIATOR: indicates who requested the regulatory domain
- * currently in effect. This could be any of the %NL80211_REGDOM_SET_BY_*
- * @NL80211_ATTR_REG_TYPE: indicates the type of the regulatory domain currently
- * set. This can be one of the nl80211_reg_type (%NL80211_REGDOM_TYPE_*)
- *
- * @NL80211_ATTR_SUPPORTED_COMMANDS: wiphy attribute that specifies
- * an array of command numbers (i.e. a mapping index to command number)
- * that the driver for the given wiphy supports.
- *
- * @NL80211_ATTR_FRAME: frame data (binary attribute), including frame header
- * and body, but not FCS; used, e.g., with NL80211_CMD_AUTHENTICATE and
- * NL80211_CMD_ASSOCIATE events
- * @NL80211_ATTR_SSID: SSID (binary attribute, 0..32 octets)
- * @NL80211_ATTR_AUTH_TYPE: AuthenticationType, see &enum nl80211_auth_type,
- * represented as a u32
- * @NL80211_ATTR_REASON_CODE: ReasonCode for %NL80211_CMD_DEAUTHENTICATE and
- * %NL80211_CMD_DISASSOCIATE, u16
- *
- * @NL80211_ATTR_KEY_TYPE: Key Type, see &enum nl80211_key_type, represented as
- * a u32
- *
- * @NL80211_ATTR_FREQ_BEFORE: A channel which has suffered a regulatory change
- * due to considerations from a beacon hint. This attribute reflects
- * the state of the channel _before_ the beacon hint processing. This
- * attributes consists of a nested attribute containing
- * NL80211_FREQUENCY_ATTR_*
- * @NL80211_ATTR_FREQ_AFTER: A channel which has suffered a regulatory change
- * due to considerations from a beacon hint. This attribute reflects
- * the state of the channel _after_ the beacon hint processing. This
- * attributes consists of a nested attribute containing
- * NL80211_FREQUENCY_ATTR_*
- *
- * @NL80211_ATTR_CIPHER_SUITES: a set of u32 values indicating the supported
- * cipher suites
- *
- * @NL80211_ATTR_FREQ_FIXED: a flag indicating the IBSS should not try to look
- * for other networks on different channels
- *
- * @NL80211_ATTR_TIMED_OUT: a flag indicating than an operation timed out; this
- * is used, e.g., with %NL80211_CMD_AUTHENTICATE event
- *
- * @NL80211_ATTR_USE_MFP: Whether management frame protection (IEEE 802.11w) is
- * used for the association (&enum nl80211_mfp, represented as a u32);
- * this attribute can be used
- * with %NL80211_CMD_ASSOCIATE request
- *
- * @NL80211_ATTR_STA_FLAGS2: Attribute containing a
- * &struct nl80211_sta_flag_update.
- *
- * @NL80211_ATTR_CONTROL_PORT: A flag indicating whether user space controls
- * IEEE 802.1X port, i.e., sets/clears %NL80211_STA_FLAG_AUTHORIZED, in
- * station mode. If the flag is included in %NL80211_CMD_ASSOCIATE
- * request, the driver will assume that the port is unauthorized until
- * authorized by user space. Otherwise, port is marked authorized by
- * default in station mode.
- * @NL80211_ATTR_CONTROL_PORT_ETHERTYPE: A 16-bit value indicating the
- * ethertype that will be used for key negotiation. It can be
- * specified with the associate and connect commands. If it is not
- * specified, the value defaults to 0x888E (PAE, 802.1X). This
- * attribute is also used as a flag in the wiphy information to
- * indicate that protocols other than PAE are supported.
- * @NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT: When included along with
- * %NL80211_ATTR_CONTROL_PORT_ETHERTYPE, indicates that the custom
- * ethertype frames used for key negotiation must not be encrypted.
- *
- * @NL80211_ATTR_TESTDATA: Testmode data blob, passed through to the driver.
- * We recommend using nested, driver-specific attributes within this.
- *
- * @NL80211_ATTR_DISCONNECTED_BY_AP: A flag indicating that the DISCONNECT
- * event was due to the AP disconnecting the station, and not due to
- * a local disconnect request.
- * @NL80211_ATTR_STATUS_CODE: StatusCode for the %NL80211_CMD_CONNECT
- * event (u16)
- * @NL80211_ATTR_PRIVACY: Flag attribute, used with connect(), indicating
- * that protected APs should be used. This is also used with NEW_BEACON to
- * indicate that the BSS is to use protection.
- *
- * @NL80211_ATTR_CIPHERS_PAIRWISE: Used with CONNECT, ASSOCIATE, and NEW_BEACON
- * to indicate which unicast key ciphers will be used with the connection
- * (an array of u32).
- * @NL80211_ATTR_CIPHER_GROUP: Used with CONNECT, ASSOCIATE, and NEW_BEACON to
- * indicate which group key cipher will be used with the connection (a
- * u32).
- * @NL80211_ATTR_WPA_VERSIONS: Used with CONNECT, ASSOCIATE, and NEW_BEACON to
- * indicate which WPA version(s) the AP we want to associate with is using
- * (a u32 with flags from &enum nl80211_wpa_versions).
- * @NL80211_ATTR_AKM_SUITES: Used with CONNECT, ASSOCIATE, and NEW_BEACON to
- * indicate which key management algorithm(s) to use (an array of u32).
- *
- * @NL80211_ATTR_REQ_IE: (Re)association request information elements as
- * sent out by the card, for ROAM and successful CONNECT events.
- * @NL80211_ATTR_RESP_IE: (Re)association response information elements as
- * sent by peer, for ROAM and successful CONNECT events.
- *
- * @NL80211_ATTR_PREV_BSSID: previous BSSID, to be used by in ASSOCIATE
- * commands to specify using a reassociate frame
- *
- * @NL80211_ATTR_KEY: key information in a nested attribute with
- * %NL80211_KEY_* sub-attributes
- * @NL80211_ATTR_KEYS: array of keys for static WEP keys for connect()
- * and join_ibss(), key information is in a nested attribute each
- * with %NL80211_KEY_* sub-attributes
- *
- * @NL80211_ATTR_PID: Process ID of a network namespace.
- *
- * @NL80211_ATTR_GENERATION: Used to indicate consistent snapshots for
- * dumps. This number increases whenever the object list being
- * dumped changes, and as such userspace can verify that it has
- * obtained a complete and consistent snapshot by verifying that
- * all dump messages contain the same generation number. If it
- * changed then the list changed and the dump should be repeated
- * completely from scratch.
- *
- * @NL80211_ATTR_4ADDR: Use 4-address frames on a virtual interface
- *
- * @NL80211_ATTR_SURVEY_INFO: survey information about a channel, part of
- * the survey response for %NL80211_CMD_GET_SURVEY, nested attribute
- * containing info as possible, see &enum survey_info.
- *
- * @NL80211_ATTR_PMKID: PMK material for PMKSA caching.
- * @NL80211_ATTR_MAX_NUM_PMKIDS: maximum number of PMKIDs a firmware can
- * cache, a wiphy attribute.
- *
- * @NL80211_ATTR_DURATION: Duration of an operation in milliseconds, u32.
- * @NL80211_ATTR_MAX_REMAIN_ON_CHANNEL_DURATION: Device attribute that
- * specifies the maximum duration that can be requested with the
- * remain-on-channel operation, in milliseconds, u32.
- *
- * @NL80211_ATTR_COOKIE: Generic 64-bit cookie to identify objects.
- *
- * @NL80211_ATTR_TX_RATES: Nested set of attributes
- * (enum nl80211_tx_rate_attributes) describing TX rates per band. The
- * enum nl80211_band value is used as the index (nla_type() of the nested
- * data. If a band is not included, it will be configured to allow all
- * rates based on negotiated supported rates information. This attribute
- * is used with %NL80211_CMD_SET_TX_BITRATE_MASK.
- *
- * @NL80211_ATTR_FRAME_MATCH: A binary attribute which typically must contain
- * at least one byte, currently used with @NL80211_CMD_REGISTER_FRAME.
- * @NL80211_ATTR_FRAME_TYPE: A u16 indicating the frame type/subtype for the
- * @NL80211_CMD_REGISTER_FRAME command.
- * @NL80211_ATTR_TX_FRAME_TYPES: wiphy capability attribute, which is a
- * nested attribute of %NL80211_ATTR_FRAME_TYPE attributes, containing
- * information about which frame types can be transmitted with
- * %NL80211_CMD_FRAME.
- * @NL80211_ATTR_RX_FRAME_TYPES: wiphy capability attribute, which is a
- * nested attribute of %NL80211_ATTR_FRAME_TYPE attributes, containing
- * information about which frame types can be registered for RX.
- *
- * @NL80211_ATTR_ACK: Flag attribute indicating that the frame was
- * acknowledged by the recipient.
- *
- * @NL80211_ATTR_CQM: connection quality monitor configuration in a
- * nested attribute with %NL80211_ATTR_CQM_* sub-attributes.
- *
- * @NL80211_ATTR_LOCAL_STATE_CHANGE: Flag attribute to indicate that a command
- * is requesting a local authentication/association state change without
- * invoking actual management frame exchange. This can be used with
- * NL80211_CMD_AUTHENTICATE, NL80211_CMD_DEAUTHENTICATE,
- * NL80211_CMD_DISASSOCIATE.
- *
- * @NL80211_ATTR_AP_ISOLATE: (AP mode) Do not forward traffic between stations
- * connected to this BSS.
- *
- * @NL80211_ATTR_WIPHY_TX_POWER_SETTING: Transmit power setting type. See
- * &enum nl80211_tx_power_setting for possible values.
- * @NL80211_ATTR_WIPHY_TX_POWER_LEVEL: Transmit power level in signed mBm units.
- * This is used in association with @NL80211_ATTR_WIPHY_TX_POWER_SETTING
- * for non-automatic settings.
- *
- * @NL80211_ATTR_SUPPORT_IBSS_RSN: The device supports IBSS RSN, which mostly
- * means support for per-station GTKs.
- *
- * @NL80211_ATTR_WIPHY_ANTENNA_TX: Bitmap of allowed antennas for transmitting.
- * This can be used to mask out antennas which are not attached or should
- * not be used for transmitting. If an antenna is not selected in this
- * bitmap the hardware is not allowed to transmit on this antenna.
- *
- * Each bit represents one antenna, starting with antenna 1 at the first
- * bit. Depending on which antennas are selected in the bitmap, 802.11n
- * drivers can derive which chainmasks to use (if all antennas belonging to
- * a particular chain are disabled this chain should be disabled) and if
- * a chain has diversity antennas wether diversity should be used or not.
- * HT capabilities (STBC, TX Beamforming, Antenna selection) can be
- * derived from the available chains after applying the antenna mask.
- * Non-802.11n drivers can derive wether to use diversity or not.
- * Drivers may reject configurations or RX/TX mask combinations they cannot
- * support by returning -EINVAL.
- *
- * @NL80211_ATTR_WIPHY_ANTENNA_RX: Bitmap of allowed antennas for receiving.
- * This can be used to mask out antennas which are not attached or should
- * not be used for receiving. If an antenna is not selected in this bitmap
- * the hardware should not be configured to receive on this antenna.
- * For a more detailed description see @NL80211_ATTR_WIPHY_ANTENNA_TX.
- *
- * @NL80211_ATTR_WIPHY_ANTENNA_AVAIL_TX: Bitmap of antennas which are available
- * for configuration as TX antennas via the above parameters.
- *
- * @NL80211_ATTR_WIPHY_ANTENNA_AVAIL_RX: Bitmap of antennas which are available
- * for configuration as RX antennas via the above parameters.
- *
- * @NL80211_ATTR_MCAST_RATE: Multicast tx rate (in 100 kbps) for IBSS
- *
- * @NL80211_ATTR_OFFCHANNEL_TX_OK: For management frame TX, the frame may be
- * transmitted on another channel when the channel given doesn't match
- * the current channel. If the current channel doesn't match and this
- * flag isn't set, the frame will be rejected. This is also used as an
- * nl80211 capability flag.
- *
- * @NL80211_ATTR_BSS_HTOPMODE: HT operation mode (u16)
- *
- * @NL80211_ATTR_KEY_DEFAULT_TYPES: A nested attribute containing flags
- * attributes, specifying what a key should be set as default as.
- * See &enum nl80211_key_default_types.
- *
- * @NL80211_ATTR_MESH_SETUP: Optional mesh setup parameters. These cannot be
- * changed once the mesh is active.
- * @NL80211_ATTR_MESH_CONFIG: Mesh configuration parameters, a nested attribute
- * containing attributes from &enum nl80211_meshconf_params.
- * @NL80211_ATTR_SUPPORT_MESH_AUTH: Currently, this means the underlying driver
- * allows auth frames in a mesh to be passed to userspace for processing via
- * the @NL80211_MESH_SETUP_USERSPACE_AUTH flag.
- * @NL80211_ATTR_STA_PLINK_STATE: The state of a mesh peer link as
- * defined in &enum nl80211_plink_state. Used when userspace is
- * driving the peer link management state machine.
- * @NL80211_MESH_SETUP_USERSPACE_AMPE must be enabled.
- *
- * @NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED: indicates, as part of the wiphy
- * capabilities, the supported WoWLAN triggers
- * @NL80211_ATTR_WOWLAN_TRIGGERS: used by %NL80211_CMD_SET_WOWLAN to
- * indicate which WoW triggers should be enabled. This is also
- * used by %NL80211_CMD_GET_WOWLAN to get the currently enabled WoWLAN
- * triggers.
-
- * @NL80211_ATTR_SCHED_SCAN_INTERVAL: Interval between scheduled scan
- * cycles, in msecs.
-
- * @NL80211_ATTR_SCHED_SCAN_MATCH: Nested attribute with one or more
- * sets of attributes to match during scheduled scans. Only BSSs
- * that match any of the sets will be reported. These are
- * pass-thru filter rules.
- * For a match to succeed, the BSS must match all attributes of a
- * set. Since not every hardware supports matching all types of
- * attributes, there is no guarantee that the reported BSSs are
- * fully complying with the match sets and userspace needs to be
- * able to ignore them by itself.
- * Thus, the implementation is somewhat hardware-dependent, but
- * this is only an optimization and the userspace application
- * needs to handle all the non-filtered results anyway.
- * If the match attributes don't make sense when combined with
- * the values passed in @NL80211_ATTR_SCAN_SSIDS (eg. if an SSID
- * is included in the probe request, but the match attributes
- * will never let it go through), -EINVAL may be returned.
- * If ommited, no filtering is done.
- *
- * @NL80211_ATTR_INTERFACE_COMBINATIONS: Nested attribute listing the supported
- * interface combinations. In each nested item, it contains attributes
- * defined in &enum nl80211_if_combination_attrs.
- * @NL80211_ATTR_SOFTWARE_IFTYPES: Nested attribute (just like
- * %NL80211_ATTR_SUPPORTED_IFTYPES) containing the interface types that
- * are managed in software: interfaces of these types aren't subject to
- * any restrictions in their number or combinations.
- *
- * @%NL80211_ATTR_REKEY_DATA: nested attribute containing the information
- * necessary for GTK rekeying in the device, see &enum nl80211_rekey_data.
- *
- * @NL80211_ATTR_SCAN_SUPP_RATES: rates per to be advertised as supported in scan,
- * nested array attribute containing an entry for each band, with the entry
- * being a list of supported rates as defined by IEEE 802.11 7.3.2.2 but
- * without the length restriction (at most %NL80211_MAX_SUPP_RATES).
- *
- * @NL80211_ATTR_HIDDEN_SSID: indicates whether SSID is to be hidden from Beacon
- * and Probe Response (when response to wildcard Probe Request); see
- * &enum nl80211_hidden_ssid, represented as a u32
- *
- * @NL80211_ATTR_IE_PROBE_RESP: Information element(s) for Probe Response frame.
- * This is used with %NL80211_CMD_NEW_BEACON and %NL80211_CMD_SET_BEACON to
- * provide extra IEs (e.g., WPS/P2P IE) into Probe Response frames when the
- * driver (or firmware) replies to Probe Request frames.
- * @NL80211_ATTR_IE_ASSOC_RESP: Information element(s) for (Re)Association
- * Response frames. This is used with %NL80211_CMD_NEW_BEACON and
- * %NL80211_CMD_SET_BEACON to provide extra IEs (e.g., WPS/P2P IE) into
- * (Re)Association Response frames when the driver (or firmware) replies to
- * (Re)Association Request frames.
- *
- * @NL80211_ATTR_STA_WME: Nested attribute containing the wme configuration
- * of the station, see &enum nl80211_sta_wme_attr.
- * @NL80211_ATTR_SUPPORT_AP_UAPSD: the device supports uapsd when working
- * as AP.
- *
- * @NL80211_ATTR_ROAM_SUPPORT: Indicates whether the firmware is capable of
- * roaming to another AP in the same ESS if the signal lever is low.
- *
- * @NL80211_ATTR_PMKSA_CANDIDATE: Nested attribute containing the PMKSA caching
- * candidate information, see &enum nl80211_pmksa_candidate_attr.
- *
- * @NL80211_ATTR_TX_NO_CCK_RATE: Indicates whether to use CCK rate or not
- * for management frames transmission. In order to avoid p2p probe/action
- * frames are being transmitted at CCK rate in 2GHz band, the user space
- * applications use this attribute.
- * This attribute is used with %NL80211_CMD_TRIGGER_SCAN and
- * %NL80211_CMD_FRAME commands.
- *
- * @NL80211_ATTR_TDLS_ACTION: Low level TDLS action code (e.g. link setup
- * request, link setup confirm, link teardown, etc.). Values are
- * described in the TDLS (802.11z) specification.
- * @NL80211_ATTR_TDLS_DIALOG_TOKEN: Non-zero token for uniquely identifying a
- * TDLS conversation between two devices.
- * @NL80211_ATTR_TDLS_OPERATION: High level TDLS operation; see
- * &enum nl80211_tdls_operation, represented as a u8.
- * @NL80211_ATTR_TDLS_SUPPORT: A flag indicating the device can operate
- * as a TDLS peer sta.
- * @NL80211_ATTR_TDLS_EXTERNAL_SETUP: The TDLS discovery/setup and teardown
- * procedures should be performed by sending TDLS packets via
- * %NL80211_CMD_TDLS_MGMT. Otherwise %NL80211_CMD_TDLS_OPER should be
- * used for asking the driver to perform a TDLS operation.
- *
- * @NL80211_ATTR_DEVICE_AP_SME: This u32 attribute may be listed for devices
- * that have AP support to indicate that they have the AP SME integrated
- * with support for the features listed in this attribute, see
- * &enum nl80211_ap_sme_features.
- *
- * @NL80211_ATTR_DONT_WAIT_FOR_ACK: Used with %NL80211_CMD_FRAME, this tells
- * the driver to not wait for an acknowledgement. Note that due to this,
- * it will also not give a status callback nor return a cookie. This is
- * mostly useful for probe responses to save airtime.
- *
- * @NL80211_ATTR_FEATURE_FLAGS: This u32 attribute contains flags from
- * &enum nl80211_feature_flags and is advertised in wiphy information.
- * @NL80211_ATTR_PROBE_RESP_OFFLOAD: Indicates that the HW responds to probe
- *
- * requests while operating in AP-mode.
- * This attribute holds a bitmap of the supported protocols for
- * offloading (see &enum nl80211_probe_resp_offload_support_attr).
- *
- * @NL80211_ATTR_PROBE_RESP: Probe Response template data. Contains the entire
- * probe-response frame. The DA field in the 802.11 header is zero-ed out,
- * to be filled by the FW.
- * @NL80211_ATTR_DISABLE_HT: Force HT capable interfaces to disable
- * this feature. Currently, only supported in mac80211 drivers.
- * @NL80211_ATTR_HT_CAPABILITY_MASK: Specify which bits of the
- * ATTR_HT_CAPABILITY to which attention should be paid.
- * Currently, only mac80211 NICs support this feature.
- * The values that may be configured are:
- * MCS rates, MAX-AMSDU, HT-20-40 and HT_CAP_SGI_40
- * AMPDU density and AMPDU factor.
- * All values are treated as suggestions and may be ignored
- * by the driver as required. The actual values may be seen in
- * the station debugfs ht_caps file.
- *
- * @NL80211_ATTR_DFS_REGION: region for regulatory rules which this country
- * abides to when initiating radiation on DFS channels. A country maps
- * to one DFS region.
- *
- * @NL80211_ATTR_NOACK_MAP: This u16 bitmap contains the No Ack Policy of
- * up to 16 TIDs.
- *
- * @NL80211_ATTR_INACTIVITY_TIMEOUT: timeout value in seconds, this can be
- * used by the drivers which has MLME in firmware and does not have support
- * to report per station tx/rx activity to free up the staion entry from
- * the list. This needs to be used when the driver advertises the
- * capability to timeout the stations.
- *
- * @NL80211_ATTR_RX_SIGNAL_DBM: signal strength in dBm (as a 32-bit int);
- * this attribute is (depending on the driver capabilities) added to
- * received frames indicated with %NL80211_CMD_FRAME.
- *
- * @NL80211_ATTR_BG_SCAN_PERIOD: Background scan period in seconds
- * or 0 to disable background scan.
- *
- * @NL80211_ATTR_MAX: highest attribute number currently defined
- * @__NL80211_ATTR_AFTER_LAST: internal use
- */
-enum nl80211_attrs {
-/* don't change the order or add anything between, this is ABI! */
- NL80211_ATTR_UNSPEC,
-
- NL80211_ATTR_WIPHY,
- NL80211_ATTR_WIPHY_NAME,
-
- NL80211_ATTR_IFINDEX,
- NL80211_ATTR_IFNAME,
- NL80211_ATTR_IFTYPE,
-
- NL80211_ATTR_MAC,
-
- NL80211_ATTR_KEY_DATA,
- NL80211_ATTR_KEY_IDX,
- NL80211_ATTR_KEY_CIPHER,
- NL80211_ATTR_KEY_SEQ,
- NL80211_ATTR_KEY_DEFAULT,
-
- NL80211_ATTR_BEACON_INTERVAL,
- NL80211_ATTR_DTIM_PERIOD,
- NL80211_ATTR_BEACON_HEAD,
- NL80211_ATTR_BEACON_TAIL,
-
- NL80211_ATTR_STA_AID,
- NL80211_ATTR_STA_FLAGS,
- NL80211_ATTR_STA_LISTEN_INTERVAL,
- NL80211_ATTR_STA_SUPPORTED_RATES,
- NL80211_ATTR_STA_VLAN,
- NL80211_ATTR_STA_INFO,
-
- NL80211_ATTR_WIPHY_BANDS,
-
- NL80211_ATTR_MNTR_FLAGS,
-
- NL80211_ATTR_MESH_ID,
- NL80211_ATTR_STA_PLINK_ACTION,
- NL80211_ATTR_MPATH_NEXT_HOP,
- NL80211_ATTR_MPATH_INFO,
-
- NL80211_ATTR_BSS_CTS_PROT,
- NL80211_ATTR_BSS_SHORT_PREAMBLE,
- NL80211_ATTR_BSS_SHORT_SLOT_TIME,
-
- NL80211_ATTR_HT_CAPABILITY,
-
- NL80211_ATTR_SUPPORTED_IFTYPES,
-
- NL80211_ATTR_REG_ALPHA2,
- NL80211_ATTR_REG_RULES,
-
- NL80211_ATTR_MESH_CONFIG,
-
- NL80211_ATTR_BSS_BASIC_RATES,
-
- NL80211_ATTR_WIPHY_TXQ_PARAMS,
- NL80211_ATTR_WIPHY_FREQ,
- NL80211_ATTR_WIPHY_CHANNEL_TYPE,
-
- NL80211_ATTR_KEY_DEFAULT_MGMT,
-
- NL80211_ATTR_MGMT_SUBTYPE,
- NL80211_ATTR_IE,
-
- NL80211_ATTR_MAX_NUM_SCAN_SSIDS,
-
- NL80211_ATTR_SCAN_FREQUENCIES,
- NL80211_ATTR_SCAN_SSIDS,
- NL80211_ATTR_GENERATION, /* replaces old SCAN_GENERATION */
- NL80211_ATTR_BSS,
-
- NL80211_ATTR_REG_INITIATOR,
- NL80211_ATTR_REG_TYPE,
-
- NL80211_ATTR_SUPPORTED_COMMANDS,
-
- NL80211_ATTR_FRAME,
- NL80211_ATTR_SSID,
- NL80211_ATTR_AUTH_TYPE,
- NL80211_ATTR_REASON_CODE,
-
- NL80211_ATTR_KEY_TYPE,
-
- NL80211_ATTR_MAX_SCAN_IE_LEN,
- NL80211_ATTR_CIPHER_SUITES,
-
- NL80211_ATTR_FREQ_BEFORE,
- NL80211_ATTR_FREQ_AFTER,
-
- NL80211_ATTR_FREQ_FIXED,
-
-
- NL80211_ATTR_WIPHY_RETRY_SHORT,
- NL80211_ATTR_WIPHY_RETRY_LONG,
- NL80211_ATTR_WIPHY_FRAG_THRESHOLD,
- NL80211_ATTR_WIPHY_RTS_THRESHOLD,
-
- NL80211_ATTR_TIMED_OUT,
-
- NL80211_ATTR_USE_MFP,
-
- NL80211_ATTR_STA_FLAGS2,
-
- NL80211_ATTR_CONTROL_PORT,
-
- NL80211_ATTR_TESTDATA,
-
- NL80211_ATTR_PRIVACY,
-
- NL80211_ATTR_DISCONNECTED_BY_AP,
- NL80211_ATTR_STATUS_CODE,
-
- NL80211_ATTR_CIPHER_SUITES_PAIRWISE,
- NL80211_ATTR_CIPHER_SUITE_GROUP,
- NL80211_ATTR_WPA_VERSIONS,
- NL80211_ATTR_AKM_SUITES,
-
- NL80211_ATTR_REQ_IE,
- NL80211_ATTR_RESP_IE,
-
- NL80211_ATTR_PREV_BSSID,
-
- NL80211_ATTR_KEY,
- NL80211_ATTR_KEYS,
-
- NL80211_ATTR_PID,
-
- NL80211_ATTR_4ADDR,
-
- NL80211_ATTR_SURVEY_INFO,
-
- NL80211_ATTR_PMKID,
- NL80211_ATTR_MAX_NUM_PMKIDS,
-
- NL80211_ATTR_DURATION,
-
- NL80211_ATTR_COOKIE,
-
- NL80211_ATTR_WIPHY_COVERAGE_CLASS,
-
- NL80211_ATTR_TX_RATES,
-
- NL80211_ATTR_FRAME_MATCH,
-
- NL80211_ATTR_ACK,
-
- NL80211_ATTR_PS_STATE,
-
- NL80211_ATTR_CQM,
-
- NL80211_ATTR_LOCAL_STATE_CHANGE,
-
- NL80211_ATTR_AP_ISOLATE,
-
- NL80211_ATTR_WIPHY_TX_POWER_SETTING,
- NL80211_ATTR_WIPHY_TX_POWER_LEVEL,
-
- NL80211_ATTR_TX_FRAME_TYPES,
- NL80211_ATTR_RX_FRAME_TYPES,
- NL80211_ATTR_FRAME_TYPE,
-
- NL80211_ATTR_CONTROL_PORT_ETHERTYPE,
- NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT,
-
- NL80211_ATTR_SUPPORT_IBSS_RSN,
-
- NL80211_ATTR_WIPHY_ANTENNA_TX,
- NL80211_ATTR_WIPHY_ANTENNA_RX,
-
- NL80211_ATTR_MCAST_RATE,
-
- NL80211_ATTR_OFFCHANNEL_TX_OK,
-
- NL80211_ATTR_BSS_HT_OPMODE,
-
- NL80211_ATTR_KEY_DEFAULT_TYPES,
-
- NL80211_ATTR_MAX_REMAIN_ON_CHANNEL_DURATION,
-
- NL80211_ATTR_MESH_SETUP,
-
- NL80211_ATTR_WIPHY_ANTENNA_AVAIL_TX,
- NL80211_ATTR_WIPHY_ANTENNA_AVAIL_RX,
-
- NL80211_ATTR_SUPPORT_MESH_AUTH,
- NL80211_ATTR_STA_PLINK_STATE,
-
- NL80211_ATTR_WOWLAN_TRIGGERS,
- NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED,
-
- NL80211_ATTR_SCHED_SCAN_INTERVAL,
-
- NL80211_ATTR_INTERFACE_COMBINATIONS,
- NL80211_ATTR_SOFTWARE_IFTYPES,
-
- NL80211_ATTR_REKEY_DATA,
-
- NL80211_ATTR_MAX_NUM_SCHED_SCAN_SSIDS,
- NL80211_ATTR_MAX_SCHED_SCAN_IE_LEN,
-
- NL80211_ATTR_SCAN_SUPP_RATES,
-
- NL80211_ATTR_HIDDEN_SSID,
-
- NL80211_ATTR_IE_PROBE_RESP,
- NL80211_ATTR_IE_ASSOC_RESP,
-
- NL80211_ATTR_STA_WME,
- NL80211_ATTR_SUPPORT_AP_UAPSD,
-
- NL80211_ATTR_ROAM_SUPPORT,
-
- NL80211_ATTR_SCHED_SCAN_MATCH,
- NL80211_ATTR_MAX_MATCH_SETS,
-
- NL80211_ATTR_PMKSA_CANDIDATE,
-
- NL80211_ATTR_TX_NO_CCK_RATE,
-
- NL80211_ATTR_TDLS_ACTION,
- NL80211_ATTR_TDLS_DIALOG_TOKEN,
- NL80211_ATTR_TDLS_OPERATION,
- NL80211_ATTR_TDLS_SUPPORT,
- NL80211_ATTR_TDLS_EXTERNAL_SETUP,
-
- NL80211_ATTR_DEVICE_AP_SME,
-
- NL80211_ATTR_DONT_WAIT_FOR_ACK,
-
- NL80211_ATTR_FEATURE_FLAGS,
-
- NL80211_ATTR_PROBE_RESP_OFFLOAD,
-
- NL80211_ATTR_PROBE_RESP,
-
- NL80211_ATTR_DFS_REGION,
-
- NL80211_ATTR_DISABLE_HT,
- NL80211_ATTR_HT_CAPABILITY_MASK,
-
- NL80211_ATTR_NOACK_MAP,
-
- NL80211_ATTR_INACTIVITY_TIMEOUT,
-
- NL80211_ATTR_RX_SIGNAL_DBM,
-
- NL80211_ATTR_BG_SCAN_PERIOD,
-
- /* add attributes here, update the policy in nl80211.c */
-
- __NL80211_ATTR_AFTER_LAST,
- NL80211_ATTR_MAX = __NL80211_ATTR_AFTER_LAST - 1
-};
-
-/* source-level API compatibility */
-#define NL80211_ATTR_SCAN_GENERATION NL80211_ATTR_GENERATION
-#define NL80211_ATTR_MESH_PARAMS NL80211_ATTR_MESH_CONFIG
-
-/*
- * Allow user space programs to use #ifdef on new attributes by defining them
- * here
- */
-#define NL80211_CMD_CONNECT NL80211_CMD_CONNECT
-#define NL80211_ATTR_HT_CAPABILITY NL80211_ATTR_HT_CAPABILITY
-#define NL80211_ATTR_BSS_BASIC_RATES NL80211_ATTR_BSS_BASIC_RATES
-#define NL80211_ATTR_WIPHY_TXQ_PARAMS NL80211_ATTR_WIPHY_TXQ_PARAMS
-#define NL80211_ATTR_WIPHY_FREQ NL80211_ATTR_WIPHY_FREQ
-#define NL80211_ATTR_WIPHY_CHANNEL_TYPE NL80211_ATTR_WIPHY_CHANNEL_TYPE
-#define NL80211_ATTR_MGMT_SUBTYPE NL80211_ATTR_MGMT_SUBTYPE
-#define NL80211_ATTR_IE NL80211_ATTR_IE
-#define NL80211_ATTR_REG_INITIATOR NL80211_ATTR_REG_INITIATOR
-#define NL80211_ATTR_REG_TYPE NL80211_ATTR_REG_TYPE
-#define NL80211_ATTR_FRAME NL80211_ATTR_FRAME
-#define NL80211_ATTR_SSID NL80211_ATTR_SSID
-#define NL80211_ATTR_AUTH_TYPE NL80211_ATTR_AUTH_TYPE
-#define NL80211_ATTR_REASON_CODE NL80211_ATTR_REASON_CODE
-#define NL80211_ATTR_CIPHER_SUITES_PAIRWISE NL80211_ATTR_CIPHER_SUITES_PAIRWISE
-#define NL80211_ATTR_CIPHER_SUITE_GROUP NL80211_ATTR_CIPHER_SUITE_GROUP
-#define NL80211_ATTR_WPA_VERSIONS NL80211_ATTR_WPA_VERSIONS
-#define NL80211_ATTR_AKM_SUITES NL80211_ATTR_AKM_SUITES
-#define NL80211_ATTR_KEY NL80211_ATTR_KEY
-#define NL80211_ATTR_KEYS NL80211_ATTR_KEYS
-#define NL80211_ATTR_FEATURE_FLAGS NL80211_ATTR_FEATURE_FLAGS
-
-#define NL80211_MAX_SUPP_RATES 32
-#define NL80211_MAX_SUPP_HT_RATES 77
-#define NL80211_MAX_SUPP_REG_RULES 32
-#define NL80211_TKIP_DATA_OFFSET_ENCR_KEY 0
-#define NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY 16
-#define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY 24
-#define NL80211_HT_CAPABILITY_LEN 26
-
-#define NL80211_MAX_NR_CIPHER_SUITES 5
-#define NL80211_MAX_NR_AKM_SUITES 2
-
-/**
- * enum nl80211_iftype - (virtual) interface types
- *
- * @NL80211_IFTYPE_UNSPECIFIED: unspecified type, driver decides
- * @NL80211_IFTYPE_ADHOC: independent BSS member
- * @NL80211_IFTYPE_STATION: managed BSS member
- * @NL80211_IFTYPE_AP: access point
- * @NL80211_IFTYPE_AP_VLAN: VLAN interface for access points; VLAN interfaces
- * are a bit special in that they must always be tied to a pre-existing
- * AP type interface.
- * @NL80211_IFTYPE_WDS: wireless distribution interface
- * @NL80211_IFTYPE_MONITOR: monitor interface receiving all frames
- * @NL80211_IFTYPE_MESH_POINT: mesh point
- * @NL80211_IFTYPE_P2P_CLIENT: P2P client
- * @NL80211_IFTYPE_P2P_GO: P2P group owner
- * @NL80211_IFTYPE_MAX: highest interface type number currently defined
- * @NUM_NL80211_IFTYPES: number of defined interface types
- *
- * These values are used with the %NL80211_ATTR_IFTYPE
- * to set the type of an interface.
- *
- */
-enum nl80211_iftype {
- NL80211_IFTYPE_UNSPECIFIED,
- NL80211_IFTYPE_ADHOC,
- NL80211_IFTYPE_STATION,
- NL80211_IFTYPE_AP,
- NL80211_IFTYPE_AP_VLAN,
- NL80211_IFTYPE_WDS,
- NL80211_IFTYPE_MONITOR,
- NL80211_IFTYPE_MESH_POINT,
- NL80211_IFTYPE_P2P_CLIENT,
- NL80211_IFTYPE_P2P_GO,
-
- /* keep last */
- NUM_NL80211_IFTYPES,
- NL80211_IFTYPE_MAX = NUM_NL80211_IFTYPES - 1
-};
-
-/**
- * enum nl80211_sta_flags - station flags
- *
- * Station flags. When a station is added to an AP interface, it is
- * assumed to be already associated (and hence authenticated.)
- *
- * @__NL80211_STA_FLAG_INVALID: attribute number 0 is reserved
- * @NL80211_STA_FLAG_AUTHORIZED: station is authorized (802.1X)
- * @NL80211_STA_FLAG_SHORT_PREAMBLE: station is capable of receiving frames
- * with short barker preamble
- * @NL80211_STA_FLAG_WME: station is WME/QoS capable
- * @NL80211_STA_FLAG_MFP: station uses management frame protection
- * @NL80211_STA_FLAG_AUTHENTICATED: station is authenticated
- * @NL80211_STA_FLAG_TDLS_PEER: station is a TDLS peer -- this flag should
- * only be used in managed mode (even in the flags mask). Note that the
- * flag can't be changed, it is only valid while adding a station, and
- * attempts to change it will silently be ignored (rather than rejected
- * as errors.)
- * @NL80211_STA_FLAG_MAX: highest station flag number currently defined
- * @__NL80211_STA_FLAG_AFTER_LAST: internal use
- */
-enum nl80211_sta_flags {
- __NL80211_STA_FLAG_INVALID,
- NL80211_STA_FLAG_AUTHORIZED,
- NL80211_STA_FLAG_SHORT_PREAMBLE,
- NL80211_STA_FLAG_WME,
- NL80211_STA_FLAG_MFP,
- NL80211_STA_FLAG_AUTHENTICATED,
- NL80211_STA_FLAG_TDLS_PEER,
-
- /* keep last */
- __NL80211_STA_FLAG_AFTER_LAST,
- NL80211_STA_FLAG_MAX = __NL80211_STA_FLAG_AFTER_LAST - 1
-};
-
-/**
- * struct nl80211_sta_flag_update - station flags mask/set
- * @mask: mask of station flags to set
- * @set: which values to set them to
- *
- * Both mask and set contain bits as per &enum nl80211_sta_flags.
- */
-struct nl80211_sta_flag_update {
- __u32 mask;
- __u32 set;
-} __attribute__((packed));
-
-/**
- * enum nl80211_rate_info - bitrate information
- *
- * These attribute types are used with %NL80211_STA_INFO_TXRATE
- * when getting information about the bitrate of a station.
- *
- * @__NL80211_RATE_INFO_INVALID: attribute number 0 is reserved
- * @NL80211_RATE_INFO_BITRATE: total bitrate (u16, 100kbit/s)
- * @NL80211_RATE_INFO_MCS: mcs index for 802.11n (u8)
- * @NL80211_RATE_INFO_40_MHZ_WIDTH: 40 Mhz dualchannel bitrate
- * @NL80211_RATE_INFO_SHORT_GI: 400ns guard interval
- * @NL80211_RATE_INFO_MAX: highest rate_info number currently defined
- * @__NL80211_RATE_INFO_AFTER_LAST: internal use
- */
-enum nl80211_rate_info {
- __NL80211_RATE_INFO_INVALID,
- NL80211_RATE_INFO_BITRATE,
- NL80211_RATE_INFO_MCS,
- NL80211_RATE_INFO_40_MHZ_WIDTH,
- NL80211_RATE_INFO_SHORT_GI,
-
- /* keep last */
- __NL80211_RATE_INFO_AFTER_LAST,
- NL80211_RATE_INFO_MAX = __NL80211_RATE_INFO_AFTER_LAST - 1
-};
-
-/**
- * enum nl80211_sta_bss_param - BSS information collected by STA
- *
- * These attribute types are used with %NL80211_STA_INFO_BSS_PARAM
- * when getting information about the bitrate of a station.
- *
- * @__NL80211_STA_BSS_PARAM_INVALID: attribute number 0 is reserved
- * @NL80211_STA_BSS_PARAM_CTS_PROT: whether CTS protection is enabled (flag)
- * @NL80211_STA_BSS_PARAM_SHORT_PREAMBLE: whether short preamble is enabled
- * (flag)
- * @NL80211_STA_BSS_PARAM_SHORT_SLOT_TIME: whether short slot time is enabled
- * (flag)
- * @NL80211_STA_BSS_PARAM_DTIM_PERIOD: DTIM period for beaconing (u8)
- * @NL80211_STA_BSS_PARAM_BEACON_INTERVAL: Beacon interval (u16)
- * @NL80211_STA_BSS_PARAM_MAX: highest sta_bss_param number currently defined
- * @__NL80211_STA_BSS_PARAM_AFTER_LAST: internal use
- */
-enum nl80211_sta_bss_param {
- __NL80211_STA_BSS_PARAM_INVALID,
- NL80211_STA_BSS_PARAM_CTS_PROT,
- NL80211_STA_BSS_PARAM_SHORT_PREAMBLE,
- NL80211_STA_BSS_PARAM_SHORT_SLOT_TIME,
- NL80211_STA_BSS_PARAM_DTIM_PERIOD,
- NL80211_STA_BSS_PARAM_BEACON_INTERVAL,
-
- /* keep last */
- __NL80211_STA_BSS_PARAM_AFTER_LAST,
- NL80211_STA_BSS_PARAM_MAX = __NL80211_STA_BSS_PARAM_AFTER_LAST - 1
-};
-
-/**
- * enum nl80211_sta_info - station information
- *
- * These attribute types are used with %NL80211_ATTR_STA_INFO
- * when getting information about a station.
- *
- * @__NL80211_STA_INFO_INVALID: attribute number 0 is reserved
- * @NL80211_STA_INFO_INACTIVE_TIME: time since last activity (u32, msecs)
- * @NL80211_STA_INFO_RX_BYTES: total received bytes (u32, from this station)
- * @NL80211_STA_INFO_TX_BYTES: total transmitted bytes (u32, to this station)
- * @NL80211_STA_INFO_SIGNAL: signal strength of last received PPDU (u8, dBm)
- * @NL80211_STA_INFO_TX_BITRATE: current unicast tx rate, nested attribute
- * containing info as possible, see &enum nl80211_rate_info
- * @NL80211_STA_INFO_RX_PACKETS: total received packet (u32, from this station)
- * @NL80211_STA_INFO_TX_PACKETS: total transmitted packets (u32, to this
- * station)
- * @NL80211_STA_INFO_TX_RETRIES: total retries (u32, to this station)
- * @NL80211_STA_INFO_TX_FAILED: total failed packets (u32, to this station)
- * @NL80211_STA_INFO_SIGNAL_AVG: signal strength average (u8, dBm)
- * @NL80211_STA_INFO_LLID: the station's mesh LLID
- * @NL80211_STA_INFO_PLID: the station's mesh PLID
- * @NL80211_STA_INFO_PLINK_STATE: peer link state for the station
- * (see %enum nl80211_plink_state)
- * @NL80211_STA_INFO_RX_BITRATE: last unicast data frame rx rate, nested
- * attribute, like NL80211_STA_INFO_TX_BITRATE.
- * @NL80211_STA_INFO_BSS_PARAM: current station's view of BSS, nested attribute
- * containing info as possible, see &enum nl80211_sta_bss_param
- * @NL80211_STA_INFO_CONNECTED_TIME: time since the station is last connected
- * @NL80211_STA_INFO_STA_FLAGS: Contains a struct nl80211_sta_flag_update.
- * @NL80211_STA_INFO_BEACON_LOSS: count of times beacon loss was detected (u32)
- * @__NL80211_STA_INFO_AFTER_LAST: internal
- * @NL80211_STA_INFO_MAX: highest possible station info attribute
- */
-enum nl80211_sta_info {
- __NL80211_STA_INFO_INVALID,
- NL80211_STA_INFO_INACTIVE_TIME,
- NL80211_STA_INFO_RX_BYTES,
- NL80211_STA_INFO_TX_BYTES,
- NL80211_STA_INFO_LLID,
- NL80211_STA_INFO_PLID,
- NL80211_STA_INFO_PLINK_STATE,
- NL80211_STA_INFO_SIGNAL,
- NL80211_STA_INFO_TX_BITRATE,
- NL80211_STA_INFO_RX_PACKETS,
- NL80211_STA_INFO_TX_PACKETS,
- NL80211_STA_INFO_TX_RETRIES,
- NL80211_STA_INFO_TX_FAILED,
- NL80211_STA_INFO_SIGNAL_AVG,
- NL80211_STA_INFO_RX_BITRATE,
- NL80211_STA_INFO_BSS_PARAM,
- NL80211_STA_INFO_CONNECTED_TIME,
- NL80211_STA_INFO_STA_FLAGS,
- NL80211_STA_INFO_BEACON_LOSS,
-
- /* keep last */
- __NL80211_STA_INFO_AFTER_LAST,
- NL80211_STA_INFO_MAX = __NL80211_STA_INFO_AFTER_LAST - 1
-};
-
-/**
- * enum nl80211_mpath_flags - nl80211 mesh path flags
- *
- * @NL80211_MPATH_FLAG_ACTIVE: the mesh path is active
- * @NL80211_MPATH_FLAG_RESOLVING: the mesh path discovery process is running
- * @NL80211_MPATH_FLAG_SN_VALID: the mesh path contains a valid SN
- * @NL80211_MPATH_FLAG_FIXED: the mesh path has been manually set
- * @NL80211_MPATH_FLAG_RESOLVED: the mesh path discovery process succeeded
- */
-enum nl80211_mpath_flags {
- NL80211_MPATH_FLAG_ACTIVE = 1<<0,
- NL80211_MPATH_FLAG_RESOLVING = 1<<1,
- NL80211_MPATH_FLAG_SN_VALID = 1<<2,
- NL80211_MPATH_FLAG_FIXED = 1<<3,
- NL80211_MPATH_FLAG_RESOLVED = 1<<4,
-};
-
-/**
- * enum nl80211_mpath_info - mesh path information
- *
- * These attribute types are used with %NL80211_ATTR_MPATH_INFO when getting
- * information about a mesh path.
- *
- * @__NL80211_MPATH_INFO_INVALID: attribute number 0 is reserved
- * @NL80211_MPATH_INFO_FRAME_QLEN: number of queued frames for this destination
- * @NL80211_MPATH_INFO_SN: destination sequence number
- * @NL80211_MPATH_INFO_METRIC: metric (cost) of this mesh path
- * @NL80211_MPATH_INFO_EXPTIME: expiration time for the path, in msec from now
- * @NL80211_MPATH_INFO_FLAGS: mesh path flags, enumerated in
- * &enum nl80211_mpath_flags;
- * @NL80211_MPATH_INFO_DISCOVERY_TIMEOUT: total path discovery timeout, in msec
- * @NL80211_MPATH_INFO_DISCOVERY_RETRIES: mesh path discovery retries
- * @NL80211_MPATH_INFO_MAX: highest mesh path information attribute number
- * currently defind
- * @__NL80211_MPATH_INFO_AFTER_LAST: internal use
- */
-enum nl80211_mpath_info {
- __NL80211_MPATH_INFO_INVALID,
- NL80211_MPATH_INFO_FRAME_QLEN,
- NL80211_MPATH_INFO_SN,
- NL80211_MPATH_INFO_METRIC,
- NL80211_MPATH_INFO_EXPTIME,
- NL80211_MPATH_INFO_FLAGS,
- NL80211_MPATH_INFO_DISCOVERY_TIMEOUT,
- NL80211_MPATH_INFO_DISCOVERY_RETRIES,
-
- /* keep last */
- __NL80211_MPATH_INFO_AFTER_LAST,
- NL80211_MPATH_INFO_MAX = __NL80211_MPATH_INFO_AFTER_LAST - 1
-};
-
-/**
- * enum nl80211_band_attr - band attributes
- * @__NL80211_BAND_ATTR_INVALID: attribute number 0 is reserved
- * @NL80211_BAND_ATTR_FREQS: supported frequencies in this band,
- * an array of nested frequency attributes
- * @NL80211_BAND_ATTR_RATES: supported bitrates in this band,
- * an array of nested bitrate attributes
- * @NL80211_BAND_ATTR_HT_MCS_SET: 16-byte attribute containing the MCS set as
- * defined in 802.11n
- * @NL80211_BAND_ATTR_HT_CAPA: HT capabilities, as in the HT information IE
- * @NL80211_BAND_ATTR_HT_AMPDU_FACTOR: A-MPDU factor, as in 11n
- * @NL80211_BAND_ATTR_HT_AMPDU_DENSITY: A-MPDU density, as in 11n
- * @NL80211_BAND_ATTR_MAX: highest band attribute currently defined
- * @__NL80211_BAND_ATTR_AFTER_LAST: internal use
- */
-enum nl80211_band_attr {
- __NL80211_BAND_ATTR_INVALID,
- NL80211_BAND_ATTR_FREQS,
- NL80211_BAND_ATTR_RATES,
-
- NL80211_BAND_ATTR_HT_MCS_SET,
- NL80211_BAND_ATTR_HT_CAPA,
- NL80211_BAND_ATTR_HT_AMPDU_FACTOR,
- NL80211_BAND_ATTR_HT_AMPDU_DENSITY,
-
- /* keep last */
- __NL80211_BAND_ATTR_AFTER_LAST,
- NL80211_BAND_ATTR_MAX = __NL80211_BAND_ATTR_AFTER_LAST - 1
-};
-
-#define NL80211_BAND_ATTR_HT_CAPA NL80211_BAND_ATTR_HT_CAPA
-
-/**
- * enum nl80211_frequency_attr - frequency attributes
- * @__NL80211_FREQUENCY_ATTR_INVALID: attribute number 0 is reserved
- * @NL80211_FREQUENCY_ATTR_FREQ: Frequency in MHz
- * @NL80211_FREQUENCY_ATTR_DISABLED: Channel is disabled in current
- * regulatory domain.
- * @NL80211_FREQUENCY_ATTR_PASSIVE_SCAN: Only passive scanning is
- * permitted on this channel in current regulatory domain.
- * @NL80211_FREQUENCY_ATTR_NO_IBSS: IBSS networks are not permitted
- * on this channel in current regulatory domain.
- * @NL80211_FREQUENCY_ATTR_RADAR: Radar detection is mandatory
- * on this channel in current regulatory domain.
- * @NL80211_FREQUENCY_ATTR_MAX_TX_POWER: Maximum transmission power in mBm
- * (100 * dBm).
- * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number
- * currently defined
- * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use
- */
-enum nl80211_frequency_attr {
- __NL80211_FREQUENCY_ATTR_INVALID,
- NL80211_FREQUENCY_ATTR_FREQ,
- NL80211_FREQUENCY_ATTR_DISABLED,
- NL80211_FREQUENCY_ATTR_PASSIVE_SCAN,
- NL80211_FREQUENCY_ATTR_NO_IBSS,
- NL80211_FREQUENCY_ATTR_RADAR,
- NL80211_FREQUENCY_ATTR_MAX_TX_POWER,
-
- /* keep last */
- __NL80211_FREQUENCY_ATTR_AFTER_LAST,
- NL80211_FREQUENCY_ATTR_MAX = __NL80211_FREQUENCY_ATTR_AFTER_LAST - 1
-};
-
-#define NL80211_FREQUENCY_ATTR_MAX_TX_POWER NL80211_FREQUENCY_ATTR_MAX_TX_POWER
-
-/**
- * enum nl80211_bitrate_attr - bitrate attributes
- * @__NL80211_BITRATE_ATTR_INVALID: attribute number 0 is reserved
- * @NL80211_BITRATE_ATTR_RATE: Bitrate in units of 100 kbps
- * @NL80211_BITRATE_ATTR_2GHZ_SHORTPREAMBLE: Short preamble supported
- * in 2.4 GHz band.
- * @NL80211_BITRATE_ATTR_MAX: highest bitrate attribute number
- * currently defined
- * @__NL80211_BITRATE_ATTR_AFTER_LAST: internal use
- */
-enum nl80211_bitrate_attr {
- __NL80211_BITRATE_ATTR_INVALID,
- NL80211_BITRATE_ATTR_RATE,
- NL80211_BITRATE_ATTR_2GHZ_SHORTPREAMBLE,
-
- /* keep last */
- __NL80211_BITRATE_ATTR_AFTER_LAST,
- NL80211_BITRATE_ATTR_MAX = __NL80211_BITRATE_ATTR_AFTER_LAST - 1
-};
-
-/**
- * enum nl80211_initiator - Indicates the initiator of a reg domain request
- * @NL80211_REGDOM_SET_BY_CORE: Core queried CRDA for a dynamic world
- * regulatory domain.
- * @NL80211_REGDOM_SET_BY_USER: User asked the wireless core to set the
- * regulatory domain.
- * @NL80211_REGDOM_SET_BY_DRIVER: a wireless drivers has hinted to the
- * wireless core it thinks its knows the regulatory domain we should be in.
- * @NL80211_REGDOM_SET_BY_COUNTRY_IE: the wireless core has received an
- * 802.11 country information element with regulatory information it
- * thinks we should consider. cfg80211 only processes the country
- * code from the IE, and relies on the regulatory domain information
- * structure passed by userspace (CRDA) from our wireless-regdb.
- * If a channel is enabled but the country code indicates it should
- * be disabled we disable the channel and re-enable it upon disassociation.
- */
-enum nl80211_reg_initiator {
- NL80211_REGDOM_SET_BY_CORE,
- NL80211_REGDOM_SET_BY_USER,
- NL80211_REGDOM_SET_BY_DRIVER,
- NL80211_REGDOM_SET_BY_COUNTRY_IE,
-};
-
-/**
- * enum nl80211_reg_type - specifies the type of regulatory domain
- * @NL80211_REGDOM_TYPE_COUNTRY: the regulatory domain set is one that pertains
- * to a specific country. When this is set you can count on the
- * ISO / IEC 3166 alpha2 country code being valid.
- * @NL80211_REGDOM_TYPE_WORLD: the regulatory set domain is the world regulatory
- * domain.
- * @NL80211_REGDOM_TYPE_CUSTOM_WORLD: the regulatory domain set is a custom
- * driver specific world regulatory domain. These do not apply system-wide
- * and are only applicable to the individual devices which have requested
- * them to be applied.
- * @NL80211_REGDOM_TYPE_INTERSECTION: the regulatory domain set is the product
- * of an intersection between two regulatory domains -- the previously
- * set regulatory domain on the system and the last accepted regulatory
- * domain request to be processed.
- */
-enum nl80211_reg_type {
- NL80211_REGDOM_TYPE_COUNTRY,
- NL80211_REGDOM_TYPE_WORLD,
- NL80211_REGDOM_TYPE_CUSTOM_WORLD,
- NL80211_REGDOM_TYPE_INTERSECTION,
-};
-
-/**
- * enum nl80211_reg_rule_attr - regulatory rule attributes
- * @__NL80211_REG_RULE_ATTR_INVALID: attribute number 0 is reserved
- * @NL80211_ATTR_REG_RULE_FLAGS: a set of flags which specify additional
- * considerations for a given frequency range. These are the
- * &enum nl80211_reg_rule_flags.
- * @NL80211_ATTR_FREQ_RANGE_START: starting frequencry for the regulatory
- * rule in KHz. This is not a center of frequency but an actual regulatory
- * band edge.
- * @NL80211_ATTR_FREQ_RANGE_END: ending frequency for the regulatory rule
- * in KHz. This is not a center a frequency but an actual regulatory
- * band edge.
- * @NL80211_ATTR_FREQ_RANGE_MAX_BW: maximum allowed bandwidth for this
- * frequency range, in KHz.
- * @NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN: the maximum allowed antenna gain
- * for a given frequency range. The value is in mBi (100 * dBi).
- * If you don't have one then don't send this.
- * @NL80211_ATTR_POWER_RULE_MAX_EIRP: the maximum allowed EIRP for
- * a given frequency range. The value is in mBm (100 * dBm).
- * @NL80211_REG_RULE_ATTR_MAX: highest regulatory rule attribute number
- * currently defined
- * @__NL80211_REG_RULE_ATTR_AFTER_LAST: internal use
- */
-enum nl80211_reg_rule_attr {
- __NL80211_REG_RULE_ATTR_INVALID,
- NL80211_ATTR_REG_RULE_FLAGS,
-
- NL80211_ATTR_FREQ_RANGE_START,
- NL80211_ATTR_FREQ_RANGE_END,
- NL80211_ATTR_FREQ_RANGE_MAX_BW,
-
- NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN,
- NL80211_ATTR_POWER_RULE_MAX_EIRP,
-
- /* keep last */
- __NL80211_REG_RULE_ATTR_AFTER_LAST,
- NL80211_REG_RULE_ATTR_MAX = __NL80211_REG_RULE_ATTR_AFTER_LAST - 1
-};
-
-/**
- * enum nl80211_sched_scan_match_attr - scheduled scan match attributes
- * @__NL80211_SCHED_SCAN_MATCH_ATTR_INVALID: attribute number 0 is reserved
- * @NL80211_SCHED_SCAN_MATCH_ATTR_SSID: SSID to be used for matching,
- * only report BSS with matching SSID.
- * @NL80211_SCHED_SCAN_MATCH_ATTR_MAX: highest scheduled scan filter
- * attribute number currently defined
- * @__NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST: internal use
- */
-enum nl80211_sched_scan_match_attr {
- __NL80211_SCHED_SCAN_MATCH_ATTR_INVALID,
-
- NL80211_ATTR_SCHED_SCAN_MATCH_SSID,
-
- /* keep last */
- __NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST,
- NL80211_SCHED_SCAN_MATCH_ATTR_MAX =
- __NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST - 1
-};
-
-/**
- * enum nl80211_reg_rule_flags - regulatory rule flags
- *
- * @NL80211_RRF_NO_OFDM: OFDM modulation not allowed
- * @NL80211_RRF_NO_CCK: CCK modulation not allowed
- * @NL80211_RRF_NO_INDOOR: indoor operation not allowed
- * @NL80211_RRF_NO_OUTDOOR: outdoor operation not allowed
- * @NL80211_RRF_DFS: DFS support is required to be used
- * @NL80211_RRF_PTP_ONLY: this is only for Point To Point links
- * @NL80211_RRF_PTMP_ONLY: this is only for Point To Multi Point links
- * @NL80211_RRF_PASSIVE_SCAN: passive scan is required
- * @NL80211_RRF_NO_IBSS: no IBSS is allowed
- */
-enum nl80211_reg_rule_flags {
- NL80211_RRF_NO_OFDM = 1<<0,
- NL80211_RRF_NO_CCK = 1<<1,
- NL80211_RRF_NO_INDOOR = 1<<2,
- NL80211_RRF_NO_OUTDOOR = 1<<3,
- NL80211_RRF_DFS = 1<<4,
- NL80211_RRF_PTP_ONLY = 1<<5,
- NL80211_RRF_PTMP_ONLY = 1<<6,
- NL80211_RRF_PASSIVE_SCAN = 1<<7,
- NL80211_RRF_NO_IBSS = 1<<8,
-};
-
-/**
- * enum nl80211_dfs_regions - regulatory DFS regions
- *
- * @NL80211_DFS_UNSET: Country has no DFS master region specified
- * @NL80211_DFS_FCC_: Country follows DFS master rules from FCC
- * @NL80211_DFS_FCC_: Country follows DFS master rules from ETSI
- * @NL80211_DFS_JP_: Country follows DFS master rules from JP/MKK/Telec
- */
-enum nl80211_dfs_regions {
- NL80211_DFS_UNSET = 0,
- NL80211_DFS_FCC = 1,
- NL80211_DFS_ETSI = 2,
- NL80211_DFS_JP = 3,
-};
-
-/**
- * enum nl80211_survey_info - survey information
- *
- * These attribute types are used with %NL80211_ATTR_SURVEY_INFO
- * when getting information about a survey.
- *
- * @__NL80211_SURVEY_INFO_INVALID: attribute number 0 is reserved
- * @NL80211_SURVEY_INFO_FREQUENCY: center frequency of channel
- * @NL80211_SURVEY_INFO_NOISE: noise level of channel (u8, dBm)
- * @NL80211_SURVEY_INFO_IN_USE: channel is currently being used
- * @NL80211_SURVEY_INFO_CHANNEL_TIME: amount of time (in ms) that the radio
- * spent on this channel
- * @NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY: amount of the time the primary
- * channel was sensed busy (either due to activity or energy detect)
- * @NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY: amount of time the extension
- * channel was sensed busy
- * @NL80211_SURVEY_INFO_CHANNEL_TIME_RX: amount of time the radio spent
- * receiving data
- * @NL80211_SURVEY_INFO_CHANNEL_TIME_TX: amount of time the radio spent
- * transmitting data
- * @NL80211_SURVEY_INFO_MAX: highest survey info attribute number
- * currently defined
- * @__NL80211_SURVEY_INFO_AFTER_LAST: internal use
- */
-enum nl80211_survey_info {
- __NL80211_SURVEY_INFO_INVALID,
- NL80211_SURVEY_INFO_FREQUENCY,
- NL80211_SURVEY_INFO_NOISE,
- NL80211_SURVEY_INFO_IN_USE,
- NL80211_SURVEY_INFO_CHANNEL_TIME,
- NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY,
- NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY,
- NL80211_SURVEY_INFO_CHANNEL_TIME_RX,
- NL80211_SURVEY_INFO_CHANNEL_TIME_TX,
-
- /* keep last */
- __NL80211_SURVEY_INFO_AFTER_LAST,
- NL80211_SURVEY_INFO_MAX = __NL80211_SURVEY_INFO_AFTER_LAST - 1
-};
-
-/**
- * enum nl80211_mntr_flags - monitor configuration flags
- *
- * Monitor configuration flags.
- *
- * @__NL80211_MNTR_FLAG_INVALID: reserved
- *
- * @NL80211_MNTR_FLAG_FCSFAIL: pass frames with bad FCS
- * @NL80211_MNTR_FLAG_PLCPFAIL: pass frames with bad PLCP
- * @NL80211_MNTR_FLAG_CONTROL: pass control frames
- * @NL80211_MNTR_FLAG_OTHER_BSS: disable BSSID filtering
- * @NL80211_MNTR_FLAG_COOK_FRAMES: report frames after processing.
- * overrides all other flags.
- *
- * @__NL80211_MNTR_FLAG_AFTER_LAST: internal use
- * @NL80211_MNTR_FLAG_MAX: highest possible monitor flag
- */
-enum nl80211_mntr_flags {
- __NL80211_MNTR_FLAG_INVALID,
- NL80211_MNTR_FLAG_FCSFAIL,
- NL80211_MNTR_FLAG_PLCPFAIL,
- NL80211_MNTR_FLAG_CONTROL,
- NL80211_MNTR_FLAG_OTHER_BSS,
- NL80211_MNTR_FLAG_COOK_FRAMES,
-
- /* keep last */
- __NL80211_MNTR_FLAG_AFTER_LAST,
- NL80211_MNTR_FLAG_MAX = __NL80211_MNTR_FLAG_AFTER_LAST - 1
-};
-
-/**
- * enum nl80211_meshconf_params - mesh configuration parameters
- *
- * Mesh configuration parameters. These can be changed while the mesh is
- * active.
- *
- * @__NL80211_MESHCONF_INVALID: internal use
- *
- * @NL80211_MESHCONF_RETRY_TIMEOUT: specifies the initial retry timeout in
- * millisecond units, used by the Peer Link Open message
- *
- * @NL80211_MESHCONF_CONFIRM_TIMEOUT: specifies the initial confirm timeout, in
- * millisecond units, used by the peer link management to close a peer link
- *
- * @NL80211_MESHCONF_HOLDING_TIMEOUT: specifies the holding timeout, in
- * millisecond units
- *
- * @NL80211_MESHCONF_MAX_PEER_LINKS: maximum number of peer links allowed
- * on this mesh interface
- *
- * @NL80211_MESHCONF_MAX_RETRIES: specifies the maximum number of peer link
- * open retries that can be sent to establish a new peer link instance in a
- * mesh
- *
- * @NL80211_MESHCONF_TTL: specifies the value of TTL field set at a source mesh
- * point.
- *
- * @NL80211_MESHCONF_AUTO_OPEN_PLINKS: whether we should automatically
- * open peer links when we detect compatible mesh peers.
- *
- * @NL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES: the number of action frames
- * containing a PREQ that an MP can send to a particular destination (path
- * target)
- *
- * @NL80211_MESHCONF_PATH_REFRESH_TIME: how frequently to refresh mesh paths
- * (in milliseconds)
- *
- * @NL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT: minimum length of time to wait
- * until giving up on a path discovery (in milliseconds)
- *
- * @NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT: The time (in TUs) for which mesh
- * points receiving a PREQ shall consider the forwarding information from the
- * root to be valid. (TU = time unit)
- *
- * @NL80211_MESHCONF_HWMP_PREQ_MIN_INTERVAL: The minimum interval of time (in
- * TUs) during which an MP can send only one action frame containing a PREQ
- * reference element
- *
- * @NL80211_MESHCONF_HWMP_NET_DIAM_TRVS_TIME: The interval of time (in TUs)
- * that it takes for an HWMP information element to propagate across the mesh
- *
- * @NL80211_MESHCONF_HWMP_ROOTMODE: whether root mode is enabled or not
- *
- * @NL80211_MESHCONF_ELEMENT_TTL: specifies the value of TTL field set at a
- * source mesh point for path selection elements.
- *
- * @NL80211_MESHCONF_HWMP_RANN_INTERVAL: The interval of time (in TUs) between
- * root announcements are transmitted.
- *
- * @NL80211_MESHCONF_GATE_ANNOUNCEMENTS: Advertise that this mesh station has
- * access to a broader network beyond the MBSS. This is done via Root
- * Announcement frames.
- *
- * @NL80211_MESHCONF_HWMP_PERR_MIN_INTERVAL: The minimum interval of time (in
- * TUs) during which a mesh STA can send only one Action frame containing a
- * PERR element.
- *
- * @NL80211_MESHCONF_FORWARDING: set Mesh STA as forwarding or non-forwarding
- * or forwarding entity (default is TRUE - forwarding entity)
- *
- * @NL80211_MESHCONF_RSSI_THRESHOLD: RSSI threshold in dBm. This specifies the
- * threshold for average signal strength of candidate station to establish
- * a peer link.
- *
- * @NL80211_MESHCONF_ATTR_MAX: highest possible mesh configuration attribute
- *
- * @__NL80211_MESHCONF_ATTR_AFTER_LAST: internal use
- */
-enum nl80211_meshconf_params {
- __NL80211_MESHCONF_INVALID,
- NL80211_MESHCONF_RETRY_TIMEOUT,
- NL80211_MESHCONF_CONFIRM_TIMEOUT,
- NL80211_MESHCONF_HOLDING_TIMEOUT,
- NL80211_MESHCONF_MAX_PEER_LINKS,
- NL80211_MESHCONF_MAX_RETRIES,
- NL80211_MESHCONF_TTL,
- NL80211_MESHCONF_AUTO_OPEN_PLINKS,
- NL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES,
- NL80211_MESHCONF_PATH_REFRESH_TIME,
- NL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT,
- NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT,
- NL80211_MESHCONF_HWMP_PREQ_MIN_INTERVAL,
- NL80211_MESHCONF_HWMP_NET_DIAM_TRVS_TIME,
- NL80211_MESHCONF_HWMP_ROOTMODE,
- NL80211_MESHCONF_ELEMENT_TTL,
- NL80211_MESHCONF_HWMP_RANN_INTERVAL,
- NL80211_MESHCONF_GATE_ANNOUNCEMENTS,
- NL80211_MESHCONF_HWMP_PERR_MIN_INTERVAL,
- NL80211_MESHCONF_FORWARDING,
- NL80211_MESHCONF_RSSI_THRESHOLD,
-
- /* keep last */
- __NL80211_MESHCONF_ATTR_AFTER_LAST,
- NL80211_MESHCONF_ATTR_MAX = __NL80211_MESHCONF_ATTR_AFTER_LAST - 1
-};
-
-/**
- * enum nl80211_mesh_setup_params - mesh setup parameters
- *
- * Mesh setup parameters. These are used to start/join a mesh and cannot be
- * changed while the mesh is active.
- *
- * @__NL80211_MESH_SETUP_INVALID: Internal use
- *
- * @NL80211_MESH_SETUP_ENABLE_VENDOR_PATH_SEL: Enable this option to use a
- * vendor specific path selection algorithm or disable it to use the default
- * HWMP.
- *
- * @NL80211_MESH_SETUP_ENABLE_VENDOR_METRIC: Enable this option to use a
- * vendor specific path metric or disable it to use the default Airtime
- * metric.
- *
- * @NL80211_MESH_SETUP_IE: Information elements for this mesh, for instance, a
- * robust security network ie, or a vendor specific information element that
- * vendors will use to identify the path selection methods and metrics in use.
- *
- * @NL80211_MESH_SETUP_USERSPACE_AUTH: Enable this option if an authentication
- * daemon will be authenticating mesh candidates.
- *
- * @NL80211_MESH_SETUP_USERSPACE_AMPE: Enable this option if an authentication
- * daemon will be securing peer link frames. AMPE is a secured version of Mesh
- * Peering Management (MPM) and is implemented with the assistance of a
- * userspace daemon. When this flag is set, the kernel will send peer
- * management frames to a userspace daemon that will implement AMPE
- * functionality (security capabilities selection, key confirmation, and key
- * management). When the flag is unset (default), the kernel can autonomously
- * complete (unsecured) mesh peering without the need of a userspace daemon.
- *
- * @NL80211_MESH_SETUP_ATTR_MAX: highest possible mesh setup attribute number
- * @__NL80211_MESH_SETUP_ATTR_AFTER_LAST: Internal use
- */
-enum nl80211_mesh_setup_params {
- __NL80211_MESH_SETUP_INVALID,
- NL80211_MESH_SETUP_ENABLE_VENDOR_PATH_SEL,
- NL80211_MESH_SETUP_ENABLE_VENDOR_METRIC,
- NL80211_MESH_SETUP_IE,
- NL80211_MESH_SETUP_USERSPACE_AUTH,
- NL80211_MESH_SETUP_USERSPACE_AMPE,
-
- /* keep last */
- __NL80211_MESH_SETUP_ATTR_AFTER_LAST,
- NL80211_MESH_SETUP_ATTR_MAX = __NL80211_MESH_SETUP_ATTR_AFTER_LAST - 1
-};
-
-/**
- * enum nl80211_txq_attr - TX queue parameter attributes
- * @__NL80211_TXQ_ATTR_INVALID: Attribute number 0 is reserved
- * @NL80211_TXQ_ATTR_QUEUE: TX queue identifier (NL80211_TXQ_Q_*)
- * @NL80211_TXQ_ATTR_TXOP: Maximum burst time in units of 32 usecs, 0 meaning
- * disabled
- * @NL80211_TXQ_ATTR_CWMIN: Minimum contention window [a value of the form
- * 2^n-1 in the range 1..32767]
- * @NL80211_TXQ_ATTR_CWMAX: Maximum contention window [a value of the form
- * 2^n-1 in the range 1..32767]
- * @NL80211_TXQ_ATTR_AIFS: Arbitration interframe space [0..255]
- * @__NL80211_TXQ_ATTR_AFTER_LAST: Internal
- * @NL80211_TXQ_ATTR_MAX: Maximum TXQ attribute number
- */
-enum nl80211_txq_attr {
- __NL80211_TXQ_ATTR_INVALID,
- NL80211_TXQ_ATTR_QUEUE,
- NL80211_TXQ_ATTR_TXOP,
- NL80211_TXQ_ATTR_CWMIN,
- NL80211_TXQ_ATTR_CWMAX,
- NL80211_TXQ_ATTR_AIFS,
-
- /* keep last */
- __NL80211_TXQ_ATTR_AFTER_LAST,
- NL80211_TXQ_ATTR_MAX = __NL80211_TXQ_ATTR_AFTER_LAST - 1
-};
-
-enum nl80211_txq_q {
- NL80211_TXQ_Q_VO,
- NL80211_TXQ_Q_VI,
- NL80211_TXQ_Q_BE,
- NL80211_TXQ_Q_BK
-};
-
-enum nl80211_channel_type {
- NL80211_CHAN_NO_HT,
- NL80211_CHAN_HT20,
- NL80211_CHAN_HT40MINUS,
- NL80211_CHAN_HT40PLUS
-};
-
-/**
- * enum nl80211_bss - netlink attributes for a BSS
- *
- * @__NL80211_BSS_INVALID: invalid
- * @NL80211_BSS_BSSID: BSSID of the BSS (6 octets)
- * @NL80211_BSS_FREQUENCY: frequency in MHz (u32)
- * @NL80211_BSS_TSF: TSF of the received probe response/beacon (u64)
- * @NL80211_BSS_BEACON_INTERVAL: beacon interval of the (I)BSS (u16)
- * @NL80211_BSS_CAPABILITY: capability field (CPU order, u16)
- * @NL80211_BSS_INFORMATION_ELEMENTS: binary attribute containing the
- * raw information elements from the probe response/beacon (bin);
- * if the %NL80211_BSS_BEACON_IES attribute is present, the IEs here are
- * from a Probe Response frame; otherwise they are from a Beacon frame.
- * However, if the driver does not indicate the source of the IEs, these
- * IEs may be from either frame subtype.
- * @NL80211_BSS_SIGNAL_MBM: signal strength of probe response/beacon
- * in mBm (100 * dBm) (s32)
- * @NL80211_BSS_SIGNAL_UNSPEC: signal strength of the probe response/beacon
- * in unspecified units, scaled to 0..100 (u8)
- * @NL80211_BSS_STATUS: status, if this BSS is "used"
- * @NL80211_BSS_SEEN_MS_AGO: age of this BSS entry in ms
- * @NL80211_BSS_BEACON_IES: binary attribute containing the raw information
- * elements from a Beacon frame (bin); not present if no Beacon frame has
- * yet been received
- * @__NL80211_BSS_AFTER_LAST: internal
- * @NL80211_BSS_MAX: highest BSS attribute
- */
-enum nl80211_bss {
- __NL80211_BSS_INVALID,
- NL80211_BSS_BSSID,
- NL80211_BSS_FREQUENCY,
- NL80211_BSS_TSF,
- NL80211_BSS_BEACON_INTERVAL,
- NL80211_BSS_CAPABILITY,
- NL80211_BSS_INFORMATION_ELEMENTS,
- NL80211_BSS_SIGNAL_MBM,
- NL80211_BSS_SIGNAL_UNSPEC,
- NL80211_BSS_STATUS,
- NL80211_BSS_SEEN_MS_AGO,
- NL80211_BSS_BEACON_IES,
-
- /* keep last */
- __NL80211_BSS_AFTER_LAST,
- NL80211_BSS_MAX = __NL80211_BSS_AFTER_LAST - 1
-};
-
-/**
- * enum nl80211_bss_status - BSS "status"
- * @NL80211_BSS_STATUS_AUTHENTICATED: Authenticated with this BSS.
- * @NL80211_BSS_STATUS_ASSOCIATED: Associated with this BSS.
- * @NL80211_BSS_STATUS_IBSS_JOINED: Joined to this IBSS.
- *
- * The BSS status is a BSS attribute in scan dumps, which
- * indicates the status the interface has wrt. this BSS.
- */
-enum nl80211_bss_status {
- NL80211_BSS_STATUS_AUTHENTICATED,
- NL80211_BSS_STATUS_ASSOCIATED,
- NL80211_BSS_STATUS_IBSS_JOINED,
-};
-
-/**
- * enum nl80211_auth_type - AuthenticationType
- *
- * @NL80211_AUTHTYPE_OPEN_SYSTEM: Open System authentication
- * @NL80211_AUTHTYPE_SHARED_KEY: Shared Key authentication (WEP only)
- * @NL80211_AUTHTYPE_FT: Fast BSS Transition (IEEE 802.11r)
- * @NL80211_AUTHTYPE_NETWORK_EAP: Network EAP (some Cisco APs and mainly LEAP)
- * @__NL80211_AUTHTYPE_NUM: internal
- * @NL80211_AUTHTYPE_MAX: maximum valid auth algorithm
- * @NL80211_AUTHTYPE_AUTOMATIC: determine automatically (if necessary by
- * trying multiple times); this is invalid in netlink -- leave out
- * the attribute for this on CONNECT commands.
- */
-enum nl80211_auth_type {
- NL80211_AUTHTYPE_OPEN_SYSTEM,
- NL80211_AUTHTYPE_SHARED_KEY,
- NL80211_AUTHTYPE_FT,
- NL80211_AUTHTYPE_NETWORK_EAP,
-
- /* keep last */
- __NL80211_AUTHTYPE_NUM,
- NL80211_AUTHTYPE_MAX = __NL80211_AUTHTYPE_NUM - 1,
- NL80211_AUTHTYPE_AUTOMATIC
-};
-
-/**
- * enum nl80211_key_type - Key Type
- * @NL80211_KEYTYPE_GROUP: Group (broadcast/multicast) key
- * @NL80211_KEYTYPE_PAIRWISE: Pairwise (unicast/individual) key
- * @NL80211_KEYTYPE_PEERKEY: PeerKey (DLS)
- * @NUM_NL80211_KEYTYPES: number of defined key types
- */
-enum nl80211_key_type {
- NL80211_KEYTYPE_GROUP,
- NL80211_KEYTYPE_PAIRWISE,
- NL80211_KEYTYPE_PEERKEY,
-
- NUM_NL80211_KEYTYPES
-};
-
-/**
- * enum nl80211_mfp - Management frame protection state
- * @NL80211_MFP_NO: Management frame protection not used
- * @NL80211_MFP_REQUIRED: Management frame protection required
- */
-enum nl80211_mfp {
- NL80211_MFP_NO,
- NL80211_MFP_REQUIRED,
-};
-
-enum nl80211_wpa_versions {
- NL80211_WPA_VERSION_1 = 1 << 0,
- NL80211_WPA_VERSION_2 = 1 << 1,
-};
-
-/**
- * enum nl80211_key_default_types - key default types
- * @__NL80211_KEY_DEFAULT_TYPE_INVALID: invalid
- * @NL80211_KEY_DEFAULT_TYPE_UNICAST: key should be used as default
- * unicast key
- * @NL80211_KEY_DEFAULT_TYPE_MULTICAST: key should be used as default
- * multicast key
- * @NUM_NL80211_KEY_DEFAULT_TYPES: number of default types
- */
-enum nl80211_key_default_types {
- __NL80211_KEY_DEFAULT_TYPE_INVALID,
- NL80211_KEY_DEFAULT_TYPE_UNICAST,
- NL80211_KEY_DEFAULT_TYPE_MULTICAST,
-
- NUM_NL80211_KEY_DEFAULT_TYPES
-};
-
-/**
- * enum nl80211_key_attributes - key attributes
- * @__NL80211_KEY_INVALID: invalid
- * @NL80211_KEY_DATA: (temporal) key data; for TKIP this consists of
- * 16 bytes encryption key followed by 8 bytes each for TX and RX MIC
- * keys
- * @NL80211_KEY_IDX: key ID (u8, 0-3)
- * @NL80211_KEY_CIPHER: key cipher suite (u32, as defined by IEEE 802.11
- * section 7.3.2.25.1, e.g. 0x000FAC04)
- * @NL80211_KEY_SEQ: transmit key sequence number (IV/PN) for TKIP and
- * CCMP keys, each six bytes in little endian
- * @NL80211_KEY_DEFAULT: flag indicating default key
- * @NL80211_KEY_DEFAULT_MGMT: flag indicating default management key
- * @NL80211_KEY_TYPE: the key type from enum nl80211_key_type, if not
- * specified the default depends on whether a MAC address was
- * given with the command using the key or not (u32)
- * @NL80211_KEY_DEFAULT_TYPES: A nested attribute containing flags
- * attributes, specifying what a key should be set as default as.
- * See &enum nl80211_key_default_types.
- * @__NL80211_KEY_AFTER_LAST: internal
- * @NL80211_KEY_MAX: highest key attribute
- */
-enum nl80211_key_attributes {
- __NL80211_KEY_INVALID,
- NL80211_KEY_DATA,
- NL80211_KEY_IDX,
- NL80211_KEY_CIPHER,
- NL80211_KEY_SEQ,
- NL80211_KEY_DEFAULT,
- NL80211_KEY_DEFAULT_MGMT,
- NL80211_KEY_TYPE,
- NL80211_KEY_DEFAULT_TYPES,
-
- /* keep last */
- __NL80211_KEY_AFTER_LAST,
- NL80211_KEY_MAX = __NL80211_KEY_AFTER_LAST - 1
-};
-
-/**
- * enum nl80211_tx_rate_attributes - TX rate set attributes
- * @__NL80211_TXRATE_INVALID: invalid
- * @NL80211_TXRATE_LEGACY: Legacy (non-MCS) rates allowed for TX rate selection
- * in an array of rates as defined in IEEE 802.11 7.3.2.2 (u8 values with
- * 1 = 500 kbps) but without the IE length restriction (at most
- * %NL80211_MAX_SUPP_RATES in a single array).
- * @NL80211_TXRATE_MCS: HT (MCS) rates allowed for TX rate selection
- * in an array of MCS numbers.
- * @__NL80211_TXRATE_AFTER_LAST: internal
- * @NL80211_TXRATE_MAX: highest TX rate attribute
- */
-enum nl80211_tx_rate_attributes {
- __NL80211_TXRATE_INVALID,
- NL80211_TXRATE_LEGACY,
- NL80211_TXRATE_MCS,
-
- /* keep last */
- __NL80211_TXRATE_AFTER_LAST,
- NL80211_TXRATE_MAX = __NL80211_TXRATE_AFTER_LAST - 1
-};
-
-/**
- * enum nl80211_band - Frequency band
- * @NL80211_BAND_2GHZ: 2.4 GHz ISM band
- * @NL80211_BAND_5GHZ: around 5 GHz band (4.9 - 5.7 GHz)
- */
-enum nl80211_band {
- NL80211_BAND_2GHZ,
- NL80211_BAND_5GHZ,
-};
-
-enum nl80211_ps_state {
- NL80211_PS_DISABLED,
- NL80211_PS_ENABLED,
-};
-
-/**
- * enum nl80211_attr_cqm - connection quality monitor attributes
- * @__NL80211_ATTR_CQM_INVALID: invalid
- * @NL80211_ATTR_CQM_RSSI_THOLD: RSSI threshold in dBm. This value specifies
- * the threshold for the RSSI level at which an event will be sent. Zero
- * to disable.
- * @NL80211_ATTR_CQM_RSSI_HYST: RSSI hysteresis in dBm. This value specifies
- * the minimum amount the RSSI level must change after an event before a
- * new event may be issued (to reduce effects of RSSI oscillation).
- * @NL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT: RSSI threshold event
- * @NL80211_ATTR_CQM_PKT_LOSS_EVENT: a u32 value indicating that this many
- * consecutive packets were not acknowledged by the peer
- * @__NL80211_ATTR_CQM_AFTER_LAST: internal
- * @NL80211_ATTR_CQM_MAX: highest key attribute
- */
-enum nl80211_attr_cqm {
- __NL80211_ATTR_CQM_INVALID,
- NL80211_ATTR_CQM_RSSI_THOLD,
- NL80211_ATTR_CQM_RSSI_HYST,
- NL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT,
- NL80211_ATTR_CQM_PKT_LOSS_EVENT,
-
- /* keep last */
- __NL80211_ATTR_CQM_AFTER_LAST,
- NL80211_ATTR_CQM_MAX = __NL80211_ATTR_CQM_AFTER_LAST - 1
-};
-
-/**
- * enum nl80211_cqm_rssi_threshold_event - RSSI threshold event
- * @NL80211_CQM_RSSI_THRESHOLD_EVENT_LOW: The RSSI level is lower than the
- * configured threshold
- * @NL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH: The RSSI is higher than the
- * configured threshold
- */
-enum nl80211_cqm_rssi_threshold_event {
- NL80211_CQM_RSSI_THRESHOLD_EVENT_LOW,
- NL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH,
-};
-
-
-/**
- * enum nl80211_tx_power_setting - TX power adjustment
- * @NL80211_TX_POWER_AUTOMATIC: automatically determine transmit power
- * @NL80211_TX_POWER_LIMITED: limit TX power by the mBm parameter
- * @NL80211_TX_POWER_FIXED: fix TX power to the mBm parameter
- */
-enum nl80211_tx_power_setting {
- NL80211_TX_POWER_AUTOMATIC,
- NL80211_TX_POWER_LIMITED,
- NL80211_TX_POWER_FIXED,
-};
-
-/**
- * enum nl80211_wowlan_packet_pattern_attr - WoWLAN packet pattern attribute
- * @__NL80211_WOWLAN_PKTPAT_INVALID: invalid number for nested attribute
- * @NL80211_WOWLAN_PKTPAT_PATTERN: the pattern, values where the mask has
- * a zero bit are ignored
- * @NL80211_WOWLAN_PKTPAT_MASK: pattern mask, must be long enough to have
- * a bit for each byte in the pattern. The lowest-order bit corresponds
- * to the first byte of the pattern, but the bytes of the pattern are
- * in a little-endian-like format, i.e. the 9th byte of the pattern
- * corresponds to the lowest-order bit in the second byte of the mask.
- * For example: The match 00:xx:00:00:xx:00:00:00:00:xx:xx:xx (where
- * xx indicates "don't care") would be represented by a pattern of
- * twelve zero bytes, and a mask of "0xed,0x07".
- * Note that the pattern matching is done as though frames were not
- * 802.11 frames but 802.3 frames, i.e. the frame is fully unpacked
- * first (including SNAP header unpacking) and then matched.
- * @NUM_NL80211_WOWLAN_PKTPAT: number of attributes
- * @MAX_NL80211_WOWLAN_PKTPAT: max attribute number
- */
-enum nl80211_wowlan_packet_pattern_attr {
- __NL80211_WOWLAN_PKTPAT_INVALID,
- NL80211_WOWLAN_PKTPAT_MASK,
- NL80211_WOWLAN_PKTPAT_PATTERN,
-
- NUM_NL80211_WOWLAN_PKTPAT,
- MAX_NL80211_WOWLAN_PKTPAT = NUM_NL80211_WOWLAN_PKTPAT - 1,
-};
-
-/**
- * struct nl80211_wowlan_pattern_support - pattern support information
- * @max_patterns: maximum number of patterns supported
- * @min_pattern_len: minimum length of each pattern
- * @max_pattern_len: maximum length of each pattern
- *
- * This struct is carried in %NL80211_WOWLAN_TRIG_PKT_PATTERN when
- * that is part of %NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED in the
- * capability information given by the kernel to userspace.
- */
-struct nl80211_wowlan_pattern_support {
- __u32 max_patterns;
- __u32 min_pattern_len;
- __u32 max_pattern_len;
-} __attribute__((packed));
-
-/**
- * enum nl80211_wowlan_triggers - WoWLAN trigger definitions
- * @__NL80211_WOWLAN_TRIG_INVALID: invalid number for nested attributes
- * @NL80211_WOWLAN_TRIG_ANY: wake up on any activity, do not really put
- * the chip into a special state -- works best with chips that have
- * support for low-power operation already (flag)
- * @NL80211_WOWLAN_TRIG_DISCONNECT: wake up on disconnect, the way disconnect
- * is detected is implementation-specific (flag)
- * @NL80211_WOWLAN_TRIG_MAGIC_PKT: wake up on magic packet (6x 0xff, followed
- * by 16 repetitions of MAC addr, anywhere in payload) (flag)
- * @NL80211_WOWLAN_TRIG_PKT_PATTERN: wake up on the specified packet patterns
- * which are passed in an array of nested attributes, each nested attribute
- * defining a with attributes from &struct nl80211_wowlan_trig_pkt_pattern.
- * Each pattern defines a wakeup packet. The matching is done on the MSDU,
- * i.e. as though the packet was an 802.3 packet, so the pattern matching
- * is done after the packet is converted to the MSDU.
- *
- * In %NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED, it is a binary attribute
- * carrying a &struct nl80211_wowlan_pattern_support.
- * @NL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED: Not a real trigger, and cannot be
- * used when setting, used only to indicate that GTK rekeying is supported
- * by the device (flag)
- * @NL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE: wake up on GTK rekey failure (if
- * done by the device) (flag)
- * @NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST: wake up on EAP Identity Request
- * packet (flag)
- * @NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE: wake up on 4-way handshake (flag)
- * @NL80211_WOWLAN_TRIG_RFKILL_RELEASE: wake up when rfkill is released
- * (on devices that have rfkill in the device) (flag)
- * @NUM_NL80211_WOWLAN_TRIG: number of wake on wireless triggers
- * @MAX_NL80211_WOWLAN_TRIG: highest wowlan trigger attribute number
- */
-enum nl80211_wowlan_triggers {
- __NL80211_WOWLAN_TRIG_INVALID,
- NL80211_WOWLAN_TRIG_ANY,
- NL80211_WOWLAN_TRIG_DISCONNECT,
- NL80211_WOWLAN_TRIG_MAGIC_PKT,
- NL80211_WOWLAN_TRIG_PKT_PATTERN,
- NL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED,
- NL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE,
- NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST,
- NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE,
- NL80211_WOWLAN_TRIG_RFKILL_RELEASE,
-
- /* keep last */
- NUM_NL80211_WOWLAN_TRIG,
- MAX_NL80211_WOWLAN_TRIG = NUM_NL80211_WOWLAN_TRIG - 1
-};
-
-/**
- * enum nl80211_iface_limit_attrs - limit attributes
- * @NL80211_IFACE_LIMIT_UNSPEC: (reserved)
- * @NL80211_IFACE_LIMIT_MAX: maximum number of interfaces that
- * can be chosen from this set of interface types (u32)
- * @NL80211_IFACE_LIMIT_TYPES: nested attribute containing a
- * flag attribute for each interface type in this set
- * @NUM_NL80211_IFACE_LIMIT: number of attributes
- * @MAX_NL80211_IFACE_LIMIT: highest attribute number
- */
-enum nl80211_iface_limit_attrs {
- NL80211_IFACE_LIMIT_UNSPEC,
- NL80211_IFACE_LIMIT_MAX,
- NL80211_IFACE_LIMIT_TYPES,
-
- /* keep last */
- NUM_NL80211_IFACE_LIMIT,
- MAX_NL80211_IFACE_LIMIT = NUM_NL80211_IFACE_LIMIT - 1
-};
-
-/**
- * enum nl80211_if_combination_attrs -- interface combination attributes
- *
- * @NL80211_IFACE_COMB_UNSPEC: (reserved)
- * @NL80211_IFACE_COMB_LIMITS: Nested attributes containing the limits
- * for given interface types, see &enum nl80211_iface_limit_attrs.
- * @NL80211_IFACE_COMB_MAXNUM: u32 attribute giving the total number of
- * interfaces that can be created in this group. This number doesn't
- * apply to interfaces purely managed in software, which are listed
- * in a separate attribute %NL80211_ATTR_INTERFACES_SOFTWARE.
- * @NL80211_IFACE_COMB_STA_AP_BI_MATCH: flag attribute specifying that
- * beacon intervals within this group must be all the same even for
- * infrastructure and AP/GO combinations, i.e. the GO(s) must adopt
- * the infrastructure network's beacon interval.
- * @NL80211_IFACE_COMB_NUM_CHANNELS: u32 attribute specifying how many
- * different channels may be used within this group.
- * @NUM_NL80211_IFACE_COMB: number of attributes
- * @MAX_NL80211_IFACE_COMB: highest attribute number
- *
- * Examples:
- * limits = [ #{STA} <= 1, #{AP} <= 1 ], matching BI, channels = 1, max = 2
- * => allows an AP and a STA that must match BIs
- *
- * numbers = [ #{AP, P2P-GO} <= 8 ], channels = 1, max = 8
- * => allows 8 of AP/GO
- *
- * numbers = [ #{STA} <= 2 ], channels = 2, max = 2
- * => allows two STAs on different channels
- *
- * numbers = [ #{STA} <= 1, #{P2P-client,P2P-GO} <= 3 ], max = 4
- * => allows a STA plus three P2P interfaces
- *
- * The list of these four possiblities could completely be contained
- * within the %NL80211_ATTR_INTERFACE_COMBINATIONS attribute to indicate
- * that any of these groups must match.
- *
- * "Combinations" of just a single interface will not be listed here,
- * a single interface of any valid interface type is assumed to always
- * be possible by itself. This means that implicitly, for each valid
- * interface type, the following group always exists:
- * numbers = [ #{<type>} <= 1 ], channels = 1, max = 1
- */
-enum nl80211_if_combination_attrs {
- NL80211_IFACE_COMB_UNSPEC,
- NL80211_IFACE_COMB_LIMITS,
- NL80211_IFACE_COMB_MAXNUM,
- NL80211_IFACE_COMB_STA_AP_BI_MATCH,
- NL80211_IFACE_COMB_NUM_CHANNELS,
-
- /* keep last */
- NUM_NL80211_IFACE_COMB,
- MAX_NL80211_IFACE_COMB = NUM_NL80211_IFACE_COMB - 1
-};
-
-
-/**
- * enum nl80211_plink_state - state of a mesh peer link finite state machine
- *
- * @NL80211_PLINK_LISTEN: initial state, considered the implicit
- * state of non existant mesh peer links
- * @NL80211_PLINK_OPN_SNT: mesh plink open frame has been sent to
- * this mesh peer
- * @NL80211_PLINK_OPN_RCVD: mesh plink open frame has been received
- * from this mesh peer
- * @NL80211_PLINK_CNF_RCVD: mesh plink confirm frame has been
- * received from this mesh peer
- * @NL80211_PLINK_ESTAB: mesh peer link is established
- * @NL80211_PLINK_HOLDING: mesh peer link is being closed or cancelled
- * @NL80211_PLINK_BLOCKED: all frames transmitted from this mesh
- * plink are discarded
- * @NUM_NL80211_PLINK_STATES: number of peer link states
- * @MAX_NL80211_PLINK_STATES: highest numerical value of plink states
- */
-enum nl80211_plink_state {
- NL80211_PLINK_LISTEN,
- NL80211_PLINK_OPN_SNT,
- NL80211_PLINK_OPN_RCVD,
- NL80211_PLINK_CNF_RCVD,
- NL80211_PLINK_ESTAB,
- NL80211_PLINK_HOLDING,
- NL80211_PLINK_BLOCKED,
-
- /* keep last */
- NUM_NL80211_PLINK_STATES,
- MAX_NL80211_PLINK_STATES = NUM_NL80211_PLINK_STATES - 1
-};
-
-#define NL80211_KCK_LEN 16
-#define NL80211_KEK_LEN 16
-#define NL80211_REPLAY_CTR_LEN 8
-
-/**
- * enum nl80211_rekey_data - attributes for GTK rekey offload
- * @__NL80211_REKEY_DATA_INVALID: invalid number for nested attributes
- * @NL80211_REKEY_DATA_KEK: key encryption key (binary)
- * @NL80211_REKEY_DATA_KCK: key confirmation key (binary)
- * @NL80211_REKEY_DATA_REPLAY_CTR: replay counter (binary)
- * @NUM_NL80211_REKEY_DATA: number of rekey attributes (internal)
- * @MAX_NL80211_REKEY_DATA: highest rekey attribute (internal)
- */
-enum nl80211_rekey_data {
- __NL80211_REKEY_DATA_INVALID,
- NL80211_REKEY_DATA_KEK,
- NL80211_REKEY_DATA_KCK,
- NL80211_REKEY_DATA_REPLAY_CTR,
-
- /* keep last */
- NUM_NL80211_REKEY_DATA,
- MAX_NL80211_REKEY_DATA = NUM_NL80211_REKEY_DATA - 1
-};
-
-/**
- * enum nl80211_hidden_ssid - values for %NL80211_ATTR_HIDDEN_SSID
- * @NL80211_HIDDEN_SSID_NOT_IN_USE: do not hide SSID (i.e., broadcast it in
- * Beacon frames)
- * @NL80211_HIDDEN_SSID_ZERO_LEN: hide SSID by using zero-length SSID element
- * in Beacon frames
- * @NL80211_HIDDEN_SSID_ZERO_CONTENTS: hide SSID by using correct length of SSID
- * element in Beacon frames but zero out each byte in the SSID
- */
-enum nl80211_hidden_ssid {
- NL80211_HIDDEN_SSID_NOT_IN_USE,
- NL80211_HIDDEN_SSID_ZERO_LEN,
- NL80211_HIDDEN_SSID_ZERO_CONTENTS
-};
-
-/**
- * enum nl80211_sta_wme_attr - station WME attributes
- * @__NL80211_STA_WME_INVALID: invalid number for nested attribute
- * @NL80211_STA_WME_UAPSD_QUEUES: bitmap of uapsd queues. the format
- * is the same as the AC bitmap in the QoS info field.
- * @NL80211_STA_WME_MAX_SP: max service period. the format is the same
- * as the MAX_SP field in the QoS info field (but already shifted down).
- * @__NL80211_STA_WME_AFTER_LAST: internal
- * @NL80211_STA_WME_MAX: highest station WME attribute
- */
-enum nl80211_sta_wme_attr {
- __NL80211_STA_WME_INVALID,
- NL80211_STA_WME_UAPSD_QUEUES,
- NL80211_STA_WME_MAX_SP,
-
- /* keep last */
- __NL80211_STA_WME_AFTER_LAST,
- NL80211_STA_WME_MAX = __NL80211_STA_WME_AFTER_LAST - 1
-};
-
-/**
- * enum nl80211_pmksa_candidate_attr - attributes for PMKSA caching candidates
- * @__NL80211_PMKSA_CANDIDATE_INVALID: invalid number for nested attributes
- * @NL80211_PMKSA_CANDIDATE_INDEX: candidate index (u32; the smaller, the higher
- * priority)
- * @NL80211_PMKSA_CANDIDATE_BSSID: candidate BSSID (6 octets)
- * @NL80211_PMKSA_CANDIDATE_PREAUTH: RSN pre-authentication supported (flag)
- * @NUM_NL80211_PMKSA_CANDIDATE: number of PMKSA caching candidate attributes
- * (internal)
- * @MAX_NL80211_PMKSA_CANDIDATE: highest PMKSA caching candidate attribute
- * (internal)
- */
-enum nl80211_pmksa_candidate_attr {
- __NL80211_PMKSA_CANDIDATE_INVALID,
- NL80211_PMKSA_CANDIDATE_INDEX,
- NL80211_PMKSA_CANDIDATE_BSSID,
- NL80211_PMKSA_CANDIDATE_PREAUTH,
-
- /* keep last */
- NUM_NL80211_PMKSA_CANDIDATE,
- MAX_NL80211_PMKSA_CANDIDATE = NUM_NL80211_PMKSA_CANDIDATE - 1
-};
-
-/**
- * enum nl80211_tdls_operation - values for %NL80211_ATTR_TDLS_OPERATION
- * @NL80211_TDLS_DISCOVERY_REQ: Send a TDLS discovery request
- * @NL80211_TDLS_SETUP: Setup TDLS link
- * @NL80211_TDLS_TEARDOWN: Teardown a TDLS link which is already established
- * @NL80211_TDLS_ENABLE_LINK: Enable TDLS link
- * @NL80211_TDLS_DISABLE_LINK: Disable TDLS link
- */
-enum nl80211_tdls_operation {
- NL80211_TDLS_DISCOVERY_REQ,
- NL80211_TDLS_SETUP,
- NL80211_TDLS_TEARDOWN,
- NL80211_TDLS_ENABLE_LINK,
- NL80211_TDLS_DISABLE_LINK,
-};
-
-/*
- * enum nl80211_ap_sme_features - device-integrated AP features
- * Reserved for future use, no bits are defined in
- * NL80211_ATTR_DEVICE_AP_SME yet.
-enum nl80211_ap_sme_features {
-};
- */
-
-/**
- * enum nl80211_feature_flags - device/driver features
- * @NL80211_FEATURE_SK_TX_STATUS: This driver supports reflecting back
- * TX status to the socket error queue when requested with the
- * socket option.
- * @NL80211_FEATURE_HT_IBSS: This driver supports IBSS with HT datarates.
- * @NL80211_FEATURE_INACTIVITY_TIMER: This driver takes care of freeing up
- * the connected inactive stations in AP mode.
- */
-enum nl80211_feature_flags {
- NL80211_FEATURE_SK_TX_STATUS = 1 << 0,
- NL80211_FEATURE_HT_IBSS = 1 << 1,
- NL80211_FEATURE_INACTIVITY_TIMER = 1 << 2,
-};
-
-/**
- * enum nl80211_probe_resp_offload_support_attr - optional supported
- * protocols for probe-response offloading by the driver/FW.
- * To be used with the %NL80211_ATTR_PROBE_RESP_OFFLOAD attribute.
- * Each enum value represents a bit in the bitmap of supported
- * protocols. Typically a subset of probe-requests belonging to a
- * supported protocol will be excluded from offload and uploaded
- * to the host.
- *
- * @NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS: Support for WPS ver. 1
- * @NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS2: Support for WPS ver. 2
- * @NL80211_PROBE_RESP_OFFLOAD_SUPPORT_P2P: Support for P2P
- * @NL80211_PROBE_RESP_OFFLOAD_SUPPORT_80211U: Support for 802.11u
- */
-enum nl80211_probe_resp_offload_support_attr {
- NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS = 1<<0,
- NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS2 = 1<<1,
- NL80211_PROBE_RESP_OFFLOAD_SUPPORT_P2P = 1<<2,
- NL80211_PROBE_RESP_OFFLOAD_SUPPORT_80211U = 1<<3,
-};
-
-#endif /* __LINUX_NL80211_H */
diff --git a/ANDROID_3.4.5/include/linux/nl802154.h b/ANDROID_3.4.5/include/linux/nl802154.h
deleted file mode 100644
index 33d9f517..00000000
--- a/ANDROID_3.4.5/include/linux/nl802154.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * nl802154.h
- *
- * Copyright (C) 2007, 2008, 2009 Siemens AG
- *
- * 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.
- *
- * 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-1301 USA.
- *
- */
-
-#ifndef NL802154_H
-#define NL802154_H
-
-#define IEEE802154_NL_NAME "802.15.4 MAC"
-#define IEEE802154_MCAST_COORD_NAME "coordinator"
-#define IEEE802154_MCAST_BEACON_NAME "beacon"
-
-enum {
- __IEEE802154_ATTR_INVALID,
-
- IEEE802154_ATTR_DEV_NAME,
- IEEE802154_ATTR_DEV_INDEX,
-
- IEEE802154_ATTR_STATUS,
-
- IEEE802154_ATTR_SHORT_ADDR,
- IEEE802154_ATTR_HW_ADDR,
- IEEE802154_ATTR_PAN_ID,
-
- IEEE802154_ATTR_CHANNEL,
-
- IEEE802154_ATTR_COORD_SHORT_ADDR,
- IEEE802154_ATTR_COORD_HW_ADDR,
- IEEE802154_ATTR_COORD_PAN_ID,
-
- IEEE802154_ATTR_SRC_SHORT_ADDR,
- IEEE802154_ATTR_SRC_HW_ADDR,
- IEEE802154_ATTR_SRC_PAN_ID,
-
- IEEE802154_ATTR_DEST_SHORT_ADDR,
- IEEE802154_ATTR_DEST_HW_ADDR,
- IEEE802154_ATTR_DEST_PAN_ID,
-
- IEEE802154_ATTR_CAPABILITY,
- IEEE802154_ATTR_REASON,
- IEEE802154_ATTR_SCAN_TYPE,
- IEEE802154_ATTR_CHANNELS,
- IEEE802154_ATTR_DURATION,
- IEEE802154_ATTR_ED_LIST,
- IEEE802154_ATTR_BCN_ORD,
- IEEE802154_ATTR_SF_ORD,
- IEEE802154_ATTR_PAN_COORD,
- IEEE802154_ATTR_BAT_EXT,
- IEEE802154_ATTR_COORD_REALIGN,
- IEEE802154_ATTR_SEC,
-
- IEEE802154_ATTR_PAGE,
- IEEE802154_ATTR_CHANNEL_PAGE_LIST,
-
- IEEE802154_ATTR_PHY_NAME,
-
- __IEEE802154_ATTR_MAX,
-};
-
-#define IEEE802154_ATTR_MAX (__IEEE802154_ATTR_MAX - 1)
-
-extern const struct nla_policy ieee802154_policy[];
-
-/* commands */
-/* REQ should be responded with CONF
- * and INDIC with RESP
- */
-enum {
- __IEEE802154_COMMAND_INVALID,
-
- IEEE802154_ASSOCIATE_REQ,
- IEEE802154_ASSOCIATE_CONF,
- IEEE802154_DISASSOCIATE_REQ,
- IEEE802154_DISASSOCIATE_CONF,
- IEEE802154_GET_REQ,
- IEEE802154_GET_CONF,
- IEEE802154_RESET_REQ,
- IEEE802154_RESET_CONF,
- IEEE802154_SCAN_REQ,
- IEEE802154_SCAN_CONF,
- IEEE802154_SET_REQ,
- IEEE802154_SET_CONF,
- IEEE802154_START_REQ,
- IEEE802154_START_CONF,
- IEEE802154_SYNC_REQ,
- IEEE802154_POLL_REQ,
- IEEE802154_POLL_CONF,
-
- IEEE802154_ASSOCIATE_INDIC,
- IEEE802154_ASSOCIATE_RESP,
- IEEE802154_DISASSOCIATE_INDIC,
- IEEE802154_BEACON_NOTIFY_INDIC,
- IEEE802154_ORPHAN_INDIC,
- IEEE802154_ORPHAN_RESP,
- IEEE802154_COMM_STATUS_INDIC,
- IEEE802154_SYNC_LOSS_INDIC,
-
- IEEE802154_GTS_REQ, /* Not supported yet */
- IEEE802154_GTS_INDIC, /* Not supported yet */
- IEEE802154_GTS_CONF, /* Not supported yet */
- IEEE802154_RX_ENABLE_REQ, /* Not supported yet */
- IEEE802154_RX_ENABLE_CONF, /* Not supported yet */
-
- IEEE802154_LIST_IFACE,
- IEEE802154_LIST_PHY,
- IEEE802154_ADD_IFACE,
- IEEE802154_DEL_IFACE,
-
- __IEEE802154_CMD_MAX,
-};
-
-#define IEEE802154_CMD_MAX (__IEEE802154_CMD_MAX - 1)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/nls.h b/ANDROID_3.4.5/include/linux/nls.h
deleted file mode 100644
index 5dc635f8..00000000
--- a/ANDROID_3.4.5/include/linux/nls.h
+++ /dev/null
@@ -1,107 +0,0 @@
-#ifndef _LINUX_NLS_H
-#define _LINUX_NLS_H
-
-#include <linux/init.h>
-
-/* Unicode has changed over the years. Unicode code points no longer
- * fit into 16 bits; as of Unicode 5 valid code points range from 0
- * to 0x10ffff (17 planes, where each plane holds 65536 code points).
- *
- * The original decision to represent Unicode characters as 16-bit
- * wchar_t values is now outdated. But plane 0 still includes the
- * most commonly used characters, so we will retain it. The newer
- * 32-bit unicode_t type can be used when it is necessary to
- * represent the full Unicode character set.
- */
-
-/* Plane-0 Unicode character */
-typedef u16 wchar_t;
-#define MAX_WCHAR_T 0xffff
-
-/* Arbitrary Unicode character */
-typedef u32 unicode_t;
-
-struct nls_table {
- const char *charset;
- const char *alias;
- int (*uni2char) (wchar_t uni, unsigned char *out, int boundlen);
- int (*char2uni) (const unsigned char *rawstring, int boundlen,
- wchar_t *uni);
- const unsigned char *charset2lower;
- const unsigned char *charset2upper;
- struct module *owner;
- struct nls_table *next;
-};
-
-/* this value hold the maximum octet of charset */
-#define NLS_MAX_CHARSET_SIZE 6 /* for UTF-8 */
-
-/* Byte order for UTF-16 strings */
-enum utf16_endian {
- UTF16_HOST_ENDIAN,
- UTF16_LITTLE_ENDIAN,
- UTF16_BIG_ENDIAN
-};
-
-/* nls_base.c */
-extern int register_nls(struct nls_table *);
-extern int unregister_nls(struct nls_table *);
-extern struct nls_table *load_nls(char *);
-extern void unload_nls(struct nls_table *);
-extern struct nls_table *load_nls_default(void);
-
-extern int utf8_to_utf32(const u8 *s, int len, unicode_t *pu);
-extern int utf32_to_utf8(unicode_t u, u8 *s, int maxlen);
-extern int utf8s_to_utf16s(const u8 *s, int len,
- enum utf16_endian endian, wchar_t *pwcs, int maxlen);
-extern int utf16s_to_utf8s(const wchar_t *pwcs, int len,
- enum utf16_endian endian, u8 *s, int maxlen);
-
-static inline unsigned char nls_tolower(struct nls_table *t, unsigned char c)
-{
- unsigned char nc = t->charset2lower[c];
-
- return nc ? nc : c;
-}
-
-static inline unsigned char nls_toupper(struct nls_table *t, unsigned char c)
-{
- unsigned char nc = t->charset2upper[c];
-
- return nc ? nc : c;
-}
-
-static inline int nls_strnicmp(struct nls_table *t, const unsigned char *s1,
- const unsigned char *s2, int len)
-{
- while (len--) {
- if (nls_tolower(t, *s1++) != nls_tolower(t, *s2++))
- return 1;
- }
-
- return 0;
-}
-
-/*
- * nls_nullsize - return length of null character for codepage
- * @codepage - codepage for which to return length of NULL terminator
- *
- * Since we can't guarantee that the null terminator will be a particular
- * length, we have to check against the codepage. If there's a problem
- * determining it, assume a single-byte NULL terminator.
- */
-static inline int
-nls_nullsize(const struct nls_table *codepage)
-{
- int charlen;
- char tmp[NLS_MAX_CHARSET_SIZE];
-
- charlen = codepage->uni2char(0, tmp, NLS_MAX_CHARSET_SIZE);
-
- return charlen > 0 ? charlen : 1;
-}
-
-#define MODULE_ALIAS_NLS(name) MODULE_ALIAS("nls_" __stringify(name))
-
-#endif /* _LINUX_NLS_H */
-
diff --git a/ANDROID_3.4.5/include/linux/nmi.h b/ANDROID_3.4.5/include/linux/nmi.h
deleted file mode 100644
index db50840e..00000000
--- a/ANDROID_3.4.5/include/linux/nmi.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * linux/include/linux/nmi.h
- */
-#ifndef LINUX_NMI_H
-#define LINUX_NMI_H
-
-#include <linux/sched.h>
-#include <asm/irq.h>
-
-/**
- * touch_nmi_watchdog - restart NMI watchdog timeout.
- *
- * If the architecture supports the NMI watchdog, touch_nmi_watchdog()
- * may be used to reset the timeout - for code which intentionally
- * disables interrupts for a long time. This call is stateless.
- */
-#if defined(CONFIG_HAVE_NMI_WATCHDOG) || defined(CONFIG_HARDLOCKUP_DETECTOR)
-#include <asm/nmi.h>
-extern void touch_nmi_watchdog(void);
-#else
-static inline void touch_nmi_watchdog(void)
-{
- touch_softlockup_watchdog();
-}
-#endif
-
-/*
- * Create trigger_all_cpu_backtrace() out of the arch-provided
- * base function. Return whether such support was available,
- * to allow calling code to fall back to some other mechanism:
- */
-#ifdef arch_trigger_all_cpu_backtrace
-static inline bool trigger_all_cpu_backtrace(void)
-{
- arch_trigger_all_cpu_backtrace();
-
- return true;
-}
-#else
-static inline bool trigger_all_cpu_backtrace(void)
-{
- return false;
-}
-#endif
-
-#ifdef CONFIG_LOCKUP_DETECTOR
-int hw_nmi_is_cpu_stuck(struct pt_regs *);
-u64 hw_nmi_get_sample_period(int watchdog_thresh);
-extern int watchdog_enabled;
-extern int watchdog_thresh;
-struct ctl_table;
-extern int proc_dowatchdog(struct ctl_table *, int ,
- void __user *, size_t *, loff_t *);
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/node.h b/ANDROID_3.4.5/include/linux/node.h
deleted file mode 100644
index 624e53ce..00000000
--- a/ANDROID_3.4.5/include/linux/node.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * include/linux/node.h - generic node definition
- *
- * This is mainly for topological representation. We define the
- * basic 'struct node' here, which can be embedded in per-arch
- * definitions of processors.
- *
- * Basic handling of the devices is done in drivers/base/node.c
- * and system devices are handled in drivers/base/sys.c.
- *
- * Nodes are exported via driverfs in the class/node/devices/
- * directory.
- */
-#ifndef _LINUX_NODE_H_
-#define _LINUX_NODE_H_
-
-#include <linux/device.h>
-#include <linux/cpumask.h>
-#include <linux/workqueue.h>
-
-struct node {
- struct device dev;
-
-#if defined(CONFIG_MEMORY_HOTPLUG_SPARSE) && defined(CONFIG_HUGETLBFS)
- struct work_struct node_work;
-#endif
-};
-
-struct memory_block;
-extern struct node node_devices[];
-typedef void (*node_registration_func_t)(struct node *);
-
-extern int register_node(struct node *, int, struct node *);
-extern void unregister_node(struct node *node);
-#ifdef CONFIG_NUMA
-extern int register_one_node(int nid);
-extern void unregister_one_node(int nid);
-extern int register_cpu_under_node(unsigned int cpu, unsigned int nid);
-extern int unregister_cpu_under_node(unsigned int cpu, unsigned int nid);
-extern int register_mem_sect_under_node(struct memory_block *mem_blk,
- int nid);
-extern int unregister_mem_sect_under_nodes(struct memory_block *mem_blk,
- unsigned long phys_index);
-
-#ifdef CONFIG_HUGETLBFS
-extern void register_hugetlbfs_with_node(node_registration_func_t doregister,
- node_registration_func_t unregister);
-#endif
-#else
-static inline int register_one_node(int nid)
-{
- return 0;
-}
-static inline int unregister_one_node(int nid)
-{
- return 0;
-}
-static inline int register_cpu_under_node(unsigned int cpu, unsigned int nid)
-{
- return 0;
-}
-static inline int unregister_cpu_under_node(unsigned int cpu, unsigned int nid)
-{
- return 0;
-}
-static inline int register_mem_sect_under_node(struct memory_block *mem_blk,
- int nid)
-{
- return 0;
-}
-static inline int unregister_mem_sect_under_nodes(struct memory_block *mem_blk,
- unsigned long phys_index)
-{
- return 0;
-}
-
-static inline void register_hugetlbfs_with_node(node_registration_func_t reg,
- node_registration_func_t unreg)
-{
-}
-#endif
-
-#define to_node(device) container_of(device, struct node, dev)
-
-#endif /* _LINUX_NODE_H_ */
diff --git a/ANDROID_3.4.5/include/linux/nodemask.h b/ANDROID_3.4.5/include/linux/nodemask.h
deleted file mode 100644
index 7afc3633..00000000
--- a/ANDROID_3.4.5/include/linux/nodemask.h
+++ /dev/null
@@ -1,515 +0,0 @@
-#ifndef __LINUX_NODEMASK_H
-#define __LINUX_NODEMASK_H
-
-/*
- * Nodemasks provide a bitmap suitable for representing the
- * set of Node's in a system, one bit position per Node number.
- *
- * See detailed comments in the file linux/bitmap.h describing the
- * data type on which these nodemasks are based.
- *
- * For details of nodemask_scnprintf() and nodemask_parse_user(),
- * see bitmap_scnprintf() and bitmap_parse_user() in lib/bitmap.c.
- * For details of nodelist_scnprintf() and nodelist_parse(), see
- * bitmap_scnlistprintf() and bitmap_parselist(), also in bitmap.c.
- * For details of node_remap(), see bitmap_bitremap in lib/bitmap.c.
- * For details of nodes_remap(), see bitmap_remap in lib/bitmap.c.
- * For details of nodes_onto(), see bitmap_onto in lib/bitmap.c.
- * For details of nodes_fold(), see bitmap_fold in lib/bitmap.c.
- *
- * The available nodemask operations are:
- *
- * void node_set(node, mask) turn on bit 'node' in mask
- * void node_clear(node, mask) turn off bit 'node' in mask
- * void nodes_setall(mask) set all bits
- * void nodes_clear(mask) clear all bits
- * int node_isset(node, mask) true iff bit 'node' set in mask
- * int node_test_and_set(node, mask) test and set bit 'node' in mask
- *
- * void nodes_and(dst, src1, src2) dst = src1 & src2 [intersection]
- * void nodes_or(dst, src1, src2) dst = src1 | src2 [union]
- * void nodes_xor(dst, src1, src2) dst = src1 ^ src2
- * void nodes_andnot(dst, src1, src2) dst = src1 & ~src2
- * void nodes_complement(dst, src) dst = ~src
- *
- * int nodes_equal(mask1, mask2) Does mask1 == mask2?
- * int nodes_intersects(mask1, mask2) Do mask1 and mask2 intersect?
- * int nodes_subset(mask1, mask2) Is mask1 a subset of mask2?
- * int nodes_empty(mask) Is mask empty (no bits sets)?
- * int nodes_full(mask) Is mask full (all bits sets)?
- * int nodes_weight(mask) Hamming weight - number of set bits
- *
- * void nodes_shift_right(dst, src, n) Shift right
- * void nodes_shift_left(dst, src, n) Shift left
- *
- * int first_node(mask) Number lowest set bit, or MAX_NUMNODES
- * int next_node(node, mask) Next node past 'node', or MAX_NUMNODES
- * int first_unset_node(mask) First node not set in mask, or
- * MAX_NUMNODES.
- *
- * nodemask_t nodemask_of_node(node) Return nodemask with bit 'node' set
- * NODE_MASK_ALL Initializer - all bits set
- * NODE_MASK_NONE Initializer - no bits set
- * unsigned long *nodes_addr(mask) Array of unsigned long's in mask
- *
- * int nodemask_scnprintf(buf, len, mask) Format nodemask for printing
- * int nodemask_parse_user(ubuf, ulen, mask) Parse ascii string as nodemask
- * int nodelist_scnprintf(buf, len, mask) Format nodemask as list for printing
- * int nodelist_parse(buf, map) Parse ascii string as nodelist
- * int node_remap(oldbit, old, new) newbit = map(old, new)(oldbit)
- * void nodes_remap(dst, src, old, new) *dst = map(old, new)(src)
- * void nodes_onto(dst, orig, relmap) *dst = orig relative to relmap
- * void nodes_fold(dst, orig, sz) dst bits = orig bits mod sz
- *
- * for_each_node_mask(node, mask) for-loop node over mask
- *
- * int num_online_nodes() Number of online Nodes
- * int num_possible_nodes() Number of all possible Nodes
- *
- * int node_random(mask) Random node with set bit in mask
- *
- * int node_online(node) Is some node online?
- * int node_possible(node) Is some node possible?
- *
- * node_set_online(node) set bit 'node' in node_online_map
- * node_set_offline(node) clear bit 'node' in node_online_map
- *
- * for_each_node(node) for-loop node over node_possible_map
- * for_each_online_node(node) for-loop node over node_online_map
- *
- * Subtlety:
- * 1) The 'type-checked' form of node_isset() causes gcc (3.3.2, anyway)
- * to generate slightly worse code. So use a simple one-line #define
- * for node_isset(), instead of wrapping an inline inside a macro, the
- * way we do the other calls.
- *
- * NODEMASK_SCRATCH
- * When doing above logical AND, OR, XOR, Remap operations the callers tend to
- * need temporary nodemask_t's on the stack. But if NODES_SHIFT is large,
- * nodemask_t's consume too much stack space. NODEMASK_SCRATCH is a helper
- * for such situations. See below and CPUMASK_ALLOC also.
- */
-
-#include <linux/kernel.h>
-#include <linux/threads.h>
-#include <linux/bitmap.h>
-#include <linux/numa.h>
-
-typedef struct { DECLARE_BITMAP(bits, MAX_NUMNODES); } nodemask_t;
-extern nodemask_t _unused_nodemask_arg_;
-
-#define node_set(node, dst) __node_set((node), &(dst))
-static inline void __node_set(int node, volatile nodemask_t *dstp)
-{
- set_bit(node, dstp->bits);
-}
-
-#define node_clear(node, dst) __node_clear((node), &(dst))
-static inline void __node_clear(int node, volatile nodemask_t *dstp)
-{
- clear_bit(node, dstp->bits);
-}
-
-#define nodes_setall(dst) __nodes_setall(&(dst), MAX_NUMNODES)
-static inline void __nodes_setall(nodemask_t *dstp, int nbits)
-{
- bitmap_fill(dstp->bits, nbits);
-}
-
-#define nodes_clear(dst) __nodes_clear(&(dst), MAX_NUMNODES)
-static inline void __nodes_clear(nodemask_t *dstp, int nbits)
-{
- bitmap_zero(dstp->bits, nbits);
-}
-
-/* No static inline type checking - see Subtlety (1) above. */
-#define node_isset(node, nodemask) test_bit((node), (nodemask).bits)
-
-#define node_test_and_set(node, nodemask) \
- __node_test_and_set((node), &(nodemask))
-static inline int __node_test_and_set(int node, nodemask_t *addr)
-{
- return test_and_set_bit(node, addr->bits);
-}
-
-#define nodes_and(dst, src1, src2) \
- __nodes_and(&(dst), &(src1), &(src2), MAX_NUMNODES)
-static inline void __nodes_and(nodemask_t *dstp, const nodemask_t *src1p,
- const nodemask_t *src2p, int nbits)
-{
- bitmap_and(dstp->bits, src1p->bits, src2p->bits, nbits);
-}
-
-#define nodes_or(dst, src1, src2) \
- __nodes_or(&(dst), &(src1), &(src2), MAX_NUMNODES)
-static inline void __nodes_or(nodemask_t *dstp, const nodemask_t *src1p,
- const nodemask_t *src2p, int nbits)
-{
- bitmap_or(dstp->bits, src1p->bits, src2p->bits, nbits);
-}
-
-#define nodes_xor(dst, src1, src2) \
- __nodes_xor(&(dst), &(src1), &(src2), MAX_NUMNODES)
-static inline void __nodes_xor(nodemask_t *dstp, const nodemask_t *src1p,
- const nodemask_t *src2p, int nbits)
-{
- bitmap_xor(dstp->bits, src1p->bits, src2p->bits, nbits);
-}
-
-#define nodes_andnot(dst, src1, src2) \
- __nodes_andnot(&(dst), &(src1), &(src2), MAX_NUMNODES)
-static inline void __nodes_andnot(nodemask_t *dstp, const nodemask_t *src1p,
- const nodemask_t *src2p, int nbits)
-{
- bitmap_andnot(dstp->bits, src1p->bits, src2p->bits, nbits);
-}
-
-#define nodes_complement(dst, src) \
- __nodes_complement(&(dst), &(src), MAX_NUMNODES)
-static inline void __nodes_complement(nodemask_t *dstp,
- const nodemask_t *srcp, int nbits)
-{
- bitmap_complement(dstp->bits, srcp->bits, nbits);
-}
-
-#define nodes_equal(src1, src2) \
- __nodes_equal(&(src1), &(src2), MAX_NUMNODES)
-static inline int __nodes_equal(const nodemask_t *src1p,
- const nodemask_t *src2p, int nbits)
-{
- return bitmap_equal(src1p->bits, src2p->bits, nbits);
-}
-
-#define nodes_intersects(src1, src2) \
- __nodes_intersects(&(src1), &(src2), MAX_NUMNODES)
-static inline int __nodes_intersects(const nodemask_t *src1p,
- const nodemask_t *src2p, int nbits)
-{
- return bitmap_intersects(src1p->bits, src2p->bits, nbits);
-}
-
-#define nodes_subset(src1, src2) \
- __nodes_subset(&(src1), &(src2), MAX_NUMNODES)
-static inline int __nodes_subset(const nodemask_t *src1p,
- const nodemask_t *src2p, int nbits)
-{
- return bitmap_subset(src1p->bits, src2p->bits, nbits);
-}
-
-#define nodes_empty(src) __nodes_empty(&(src), MAX_NUMNODES)
-static inline int __nodes_empty(const nodemask_t *srcp, int nbits)
-{
- return bitmap_empty(srcp->bits, nbits);
-}
-
-#define nodes_full(nodemask) __nodes_full(&(nodemask), MAX_NUMNODES)
-static inline int __nodes_full(const nodemask_t *srcp, int nbits)
-{
- return bitmap_full(srcp->bits, nbits);
-}
-
-#define nodes_weight(nodemask) __nodes_weight(&(nodemask), MAX_NUMNODES)
-static inline int __nodes_weight(const nodemask_t *srcp, int nbits)
-{
- return bitmap_weight(srcp->bits, nbits);
-}
-
-#define nodes_shift_right(dst, src, n) \
- __nodes_shift_right(&(dst), &(src), (n), MAX_NUMNODES)
-static inline void __nodes_shift_right(nodemask_t *dstp,
- const nodemask_t *srcp, int n, int nbits)
-{
- bitmap_shift_right(dstp->bits, srcp->bits, n, nbits);
-}
-
-#define nodes_shift_left(dst, src, n) \
- __nodes_shift_left(&(dst), &(src), (n), MAX_NUMNODES)
-static inline void __nodes_shift_left(nodemask_t *dstp,
- const nodemask_t *srcp, int n, int nbits)
-{
- bitmap_shift_left(dstp->bits, srcp->bits, n, nbits);
-}
-
-/* FIXME: better would be to fix all architectures to never return
- > MAX_NUMNODES, then the silly min_ts could be dropped. */
-
-#define first_node(src) __first_node(&(src))
-static inline int __first_node(const nodemask_t *srcp)
-{
- return min_t(int, MAX_NUMNODES, find_first_bit(srcp->bits, MAX_NUMNODES));
-}
-
-#define next_node(n, src) __next_node((n), &(src))
-static inline int __next_node(int n, const nodemask_t *srcp)
-{
- return min_t(int,MAX_NUMNODES,find_next_bit(srcp->bits, MAX_NUMNODES, n+1));
-}
-
-static inline void init_nodemask_of_node(nodemask_t *mask, int node)
-{
- nodes_clear(*mask);
- node_set(node, *mask);
-}
-
-#define nodemask_of_node(node) \
-({ \
- typeof(_unused_nodemask_arg_) m; \
- if (sizeof(m) == sizeof(unsigned long)) { \
- m.bits[0] = 1UL << (node); \
- } else { \
- init_nodemask_of_node(&m, (node)); \
- } \
- m; \
-})
-
-#define first_unset_node(mask) __first_unset_node(&(mask))
-static inline int __first_unset_node(const nodemask_t *maskp)
-{
- return min_t(int,MAX_NUMNODES,
- find_first_zero_bit(maskp->bits, MAX_NUMNODES));
-}
-
-#define NODE_MASK_LAST_WORD BITMAP_LAST_WORD_MASK(MAX_NUMNODES)
-
-#if MAX_NUMNODES <= BITS_PER_LONG
-
-#define NODE_MASK_ALL \
-((nodemask_t) { { \
- [BITS_TO_LONGS(MAX_NUMNODES)-1] = NODE_MASK_LAST_WORD \
-} })
-
-#else
-
-#define NODE_MASK_ALL \
-((nodemask_t) { { \
- [0 ... BITS_TO_LONGS(MAX_NUMNODES)-2] = ~0UL, \
- [BITS_TO_LONGS(MAX_NUMNODES)-1] = NODE_MASK_LAST_WORD \
-} })
-
-#endif
-
-#define NODE_MASK_NONE \
-((nodemask_t) { { \
- [0 ... BITS_TO_LONGS(MAX_NUMNODES)-1] = 0UL \
-} })
-
-#define nodes_addr(src) ((src).bits)
-
-#define nodemask_scnprintf(buf, len, src) \
- __nodemask_scnprintf((buf), (len), &(src), MAX_NUMNODES)
-static inline int __nodemask_scnprintf(char *buf, int len,
- const nodemask_t *srcp, int nbits)
-{
- return bitmap_scnprintf(buf, len, srcp->bits, nbits);
-}
-
-#define nodemask_parse_user(ubuf, ulen, dst) \
- __nodemask_parse_user((ubuf), (ulen), &(dst), MAX_NUMNODES)
-static inline int __nodemask_parse_user(const char __user *buf, int len,
- nodemask_t *dstp, int nbits)
-{
- return bitmap_parse_user(buf, len, dstp->bits, nbits);
-}
-
-#define nodelist_scnprintf(buf, len, src) \
- __nodelist_scnprintf((buf), (len), &(src), MAX_NUMNODES)
-static inline int __nodelist_scnprintf(char *buf, int len,
- const nodemask_t *srcp, int nbits)
-{
- return bitmap_scnlistprintf(buf, len, srcp->bits, nbits);
-}
-
-#define nodelist_parse(buf, dst) __nodelist_parse((buf), &(dst), MAX_NUMNODES)
-static inline int __nodelist_parse(const char *buf, nodemask_t *dstp, int nbits)
-{
- return bitmap_parselist(buf, dstp->bits, nbits);
-}
-
-#define node_remap(oldbit, old, new) \
- __node_remap((oldbit), &(old), &(new), MAX_NUMNODES)
-static inline int __node_remap(int oldbit,
- const nodemask_t *oldp, const nodemask_t *newp, int nbits)
-{
- return bitmap_bitremap(oldbit, oldp->bits, newp->bits, nbits);
-}
-
-#define nodes_remap(dst, src, old, new) \
- __nodes_remap(&(dst), &(src), &(old), &(new), MAX_NUMNODES)
-static inline void __nodes_remap(nodemask_t *dstp, const nodemask_t *srcp,
- const nodemask_t *oldp, const nodemask_t *newp, int nbits)
-{
- bitmap_remap(dstp->bits, srcp->bits, oldp->bits, newp->bits, nbits);
-}
-
-#define nodes_onto(dst, orig, relmap) \
- __nodes_onto(&(dst), &(orig), &(relmap), MAX_NUMNODES)
-static inline void __nodes_onto(nodemask_t *dstp, const nodemask_t *origp,
- const nodemask_t *relmapp, int nbits)
-{
- bitmap_onto(dstp->bits, origp->bits, relmapp->bits, nbits);
-}
-
-#define nodes_fold(dst, orig, sz) \
- __nodes_fold(&(dst), &(orig), sz, MAX_NUMNODES)
-static inline void __nodes_fold(nodemask_t *dstp, const nodemask_t *origp,
- int sz, int nbits)
-{
- bitmap_fold(dstp->bits, origp->bits, sz, nbits);
-}
-
-#if MAX_NUMNODES > 1
-#define for_each_node_mask(node, mask) \
- for ((node) = first_node(mask); \
- (node) < MAX_NUMNODES; \
- (node) = next_node((node), (mask)))
-#else /* MAX_NUMNODES == 1 */
-#define for_each_node_mask(node, mask) \
- if (!nodes_empty(mask)) \
- for ((node) = 0; (node) < 1; (node)++)
-#endif /* MAX_NUMNODES */
-
-/*
- * Bitmasks that are kept for all the nodes.
- */
-enum node_states {
- N_POSSIBLE, /* The node could become online at some point */
- N_ONLINE, /* The node is online */
- N_NORMAL_MEMORY, /* The node has regular memory */
-#ifdef CONFIG_HIGHMEM
- N_HIGH_MEMORY, /* The node has regular or high memory */
-#else
- N_HIGH_MEMORY = N_NORMAL_MEMORY,
-#endif
- N_CPU, /* The node has one or more cpus */
- NR_NODE_STATES
-};
-
-/*
- * The following particular system nodemasks and operations
- * on them manage all possible and online nodes.
- */
-
-extern nodemask_t node_states[NR_NODE_STATES];
-
-#if MAX_NUMNODES > 1
-static inline int node_state(int node, enum node_states state)
-{
- return node_isset(node, node_states[state]);
-}
-
-static inline void node_set_state(int node, enum node_states state)
-{
- __node_set(node, &node_states[state]);
-}
-
-static inline void node_clear_state(int node, enum node_states state)
-{
- __node_clear(node, &node_states[state]);
-}
-
-static inline int num_node_state(enum node_states state)
-{
- return nodes_weight(node_states[state]);
-}
-
-#define for_each_node_state(__node, __state) \
- for_each_node_mask((__node), node_states[__state])
-
-#define first_online_node first_node(node_states[N_ONLINE])
-#define next_online_node(nid) next_node((nid), node_states[N_ONLINE])
-
-extern int nr_node_ids;
-extern int nr_online_nodes;
-
-static inline void node_set_online(int nid)
-{
- node_set_state(nid, N_ONLINE);
- nr_online_nodes = num_node_state(N_ONLINE);
-}
-
-static inline void node_set_offline(int nid)
-{
- node_clear_state(nid, N_ONLINE);
- nr_online_nodes = num_node_state(N_ONLINE);
-}
-
-#else
-
-static inline int node_state(int node, enum node_states state)
-{
- return node == 0;
-}
-
-static inline void node_set_state(int node, enum node_states state)
-{
-}
-
-static inline void node_clear_state(int node, enum node_states state)
-{
-}
-
-static inline int num_node_state(enum node_states state)
-{
- return 1;
-}
-
-#define for_each_node_state(node, __state) \
- for ( (node) = 0; (node) == 0; (node) = 1)
-
-#define first_online_node 0
-#define next_online_node(nid) (MAX_NUMNODES)
-#define nr_node_ids 1
-#define nr_online_nodes 1
-
-#define node_set_online(node) node_set_state((node), N_ONLINE)
-#define node_set_offline(node) node_clear_state((node), N_ONLINE)
-
-#endif
-
-#if defined(CONFIG_NUMA) && (MAX_NUMNODES > 1)
-extern int node_random(const nodemask_t *maskp);
-#else
-static inline int node_random(const nodemask_t *mask)
-{
- return 0;
-}
-#endif
-
-#define node_online_map node_states[N_ONLINE]
-#define node_possible_map node_states[N_POSSIBLE]
-
-#define num_online_nodes() num_node_state(N_ONLINE)
-#define num_possible_nodes() num_node_state(N_POSSIBLE)
-#define node_online(node) node_state((node), N_ONLINE)
-#define node_possible(node) node_state((node), N_POSSIBLE)
-
-#define for_each_node(node) for_each_node_state(node, N_POSSIBLE)
-#define for_each_online_node(node) for_each_node_state(node, N_ONLINE)
-
-/*
- * For nodemask scrach area.
- * NODEMASK_ALLOC(type, name) allocates an object with a specified type and
- * name.
- */
-#if NODES_SHIFT > 8 /* nodemask_t > 256 bytes */
-#define NODEMASK_ALLOC(type, name, gfp_flags) \
- type *name = kmalloc(sizeof(*name), gfp_flags)
-#define NODEMASK_FREE(m) kfree(m)
-#else
-#define NODEMASK_ALLOC(type, name, gfp_flags) type _##name, *name = &_##name
-#define NODEMASK_FREE(m) do {} while (0)
-#endif
-
-/* A example struture for using NODEMASK_ALLOC, used in mempolicy. */
-struct nodemask_scratch {
- nodemask_t mask1;
- nodemask_t mask2;
-};
-
-#define NODEMASK_SCRATCH(x) \
- NODEMASK_ALLOC(struct nodemask_scratch, x, \
- GFP_KERNEL | __GFP_NORETRY)
-#define NODEMASK_SCRATCH_FREE(x) NODEMASK_FREE(x)
-
-
-#endif /* __LINUX_NODEMASK_H */
diff --git a/ANDROID_3.4.5/include/linux/notifier.h b/ANDROID_3.4.5/include/linux/notifier.h
deleted file mode 100644
index d65746ef..00000000
--- a/ANDROID_3.4.5/include/linux/notifier.h
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- * Routines to manage notifier chains for passing status changes to any
- * interested routines. We need this instead of hard coded call lists so
- * that modules can poke their nose into the innards. The network devices
- * needed them so here they are for the rest of you.
- *
- * Alan Cox <Alan.Cox@linux.org>
- */
-
-#ifndef _LINUX_NOTIFIER_H
-#define _LINUX_NOTIFIER_H
-#include <linux/errno.h>
-#include <linux/mutex.h>
-#include <linux/rwsem.h>
-#include <linux/srcu.h>
-
-/*
- * Notifier chains are of four types:
- *
- * Atomic notifier chains: Chain callbacks run in interrupt/atomic
- * context. Callouts are not allowed to block.
- * Blocking notifier chains: Chain callbacks run in process context.
- * Callouts are allowed to block.
- * Raw notifier chains: There are no restrictions on callbacks,
- * registration, or unregistration. All locking and protection
- * must be provided by the caller.
- * SRCU notifier chains: A variant of blocking notifier chains, with
- * the same restrictions.
- *
- * atomic_notifier_chain_register() may be called from an atomic context,
- * but blocking_notifier_chain_register() and srcu_notifier_chain_register()
- * must be called from a process context. Ditto for the corresponding
- * _unregister() routines.
- *
- * atomic_notifier_chain_unregister(), blocking_notifier_chain_unregister(),
- * and srcu_notifier_chain_unregister() _must not_ be called from within
- * the call chain.
- *
- * SRCU notifier chains are an alternative form of blocking notifier chains.
- * They use SRCU (Sleepable Read-Copy Update) instead of rw-semaphores for
- * protection of the chain links. This means there is _very_ low overhead
- * in srcu_notifier_call_chain(): no cache bounces and no memory barriers.
- * As compensation, srcu_notifier_chain_unregister() is rather expensive.
- * SRCU notifier chains should be used when the chain will be called very
- * often but notifier_blocks will seldom be removed. Also, SRCU notifier
- * chains are slightly more difficult to use because they require special
- * runtime initialization.
- */
-
-struct notifier_block {
- int (*notifier_call)(struct notifier_block *, unsigned long, void *);
- struct notifier_block __rcu *next;
- int priority;
-};
-
-struct atomic_notifier_head {
- spinlock_t lock;
- struct notifier_block __rcu *head;
-};
-
-struct blocking_notifier_head {
- struct rw_semaphore rwsem;
- struct notifier_block __rcu *head;
-};
-
-struct raw_notifier_head {
- struct notifier_block __rcu *head;
-};
-
-struct srcu_notifier_head {
- struct mutex mutex;
- struct srcu_struct srcu;
- struct notifier_block __rcu *head;
-};
-
-#define ATOMIC_INIT_NOTIFIER_HEAD(name) do { \
- spin_lock_init(&(name)->lock); \
- (name)->head = NULL; \
- } while (0)
-#define BLOCKING_INIT_NOTIFIER_HEAD(name) do { \
- init_rwsem(&(name)->rwsem); \
- (name)->head = NULL; \
- } while (0)
-#define RAW_INIT_NOTIFIER_HEAD(name) do { \
- (name)->head = NULL; \
- } while (0)
-
-/* srcu_notifier_heads must be initialized and cleaned up dynamically */
-extern void srcu_init_notifier_head(struct srcu_notifier_head *nh);
-#define srcu_cleanup_notifier_head(name) \
- cleanup_srcu_struct(&(name)->srcu);
-
-#define ATOMIC_NOTIFIER_INIT(name) { \
- .lock = __SPIN_LOCK_UNLOCKED(name.lock), \
- .head = NULL }
-#define BLOCKING_NOTIFIER_INIT(name) { \
- .rwsem = __RWSEM_INITIALIZER((name).rwsem), \
- .head = NULL }
-#define RAW_NOTIFIER_INIT(name) { \
- .head = NULL }
-/* srcu_notifier_heads cannot be initialized statically */
-
-#define ATOMIC_NOTIFIER_HEAD(name) \
- struct atomic_notifier_head name = \
- ATOMIC_NOTIFIER_INIT(name)
-#define BLOCKING_NOTIFIER_HEAD(name) \
- struct blocking_notifier_head name = \
- BLOCKING_NOTIFIER_INIT(name)
-#define RAW_NOTIFIER_HEAD(name) \
- struct raw_notifier_head name = \
- RAW_NOTIFIER_INIT(name)
-
-#ifdef __KERNEL__
-
-extern int atomic_notifier_chain_register(struct atomic_notifier_head *nh,
- struct notifier_block *nb);
-extern int blocking_notifier_chain_register(struct blocking_notifier_head *nh,
- struct notifier_block *nb);
-extern int raw_notifier_chain_register(struct raw_notifier_head *nh,
- struct notifier_block *nb);
-extern int srcu_notifier_chain_register(struct srcu_notifier_head *nh,
- struct notifier_block *nb);
-
-extern int blocking_notifier_chain_cond_register(
- struct blocking_notifier_head *nh,
- struct notifier_block *nb);
-
-extern int atomic_notifier_chain_unregister(struct atomic_notifier_head *nh,
- struct notifier_block *nb);
-extern int blocking_notifier_chain_unregister(struct blocking_notifier_head *nh,
- struct notifier_block *nb);
-extern int raw_notifier_chain_unregister(struct raw_notifier_head *nh,
- struct notifier_block *nb);
-extern int srcu_notifier_chain_unregister(struct srcu_notifier_head *nh,
- struct notifier_block *nb);
-
-extern int atomic_notifier_call_chain(struct atomic_notifier_head *nh,
- unsigned long val, void *v);
-extern int __atomic_notifier_call_chain(struct atomic_notifier_head *nh,
- unsigned long val, void *v, int nr_to_call, int *nr_calls);
-extern int blocking_notifier_call_chain(struct blocking_notifier_head *nh,
- unsigned long val, void *v);
-extern int __blocking_notifier_call_chain(struct blocking_notifier_head *nh,
- unsigned long val, void *v, int nr_to_call, int *nr_calls);
-extern int raw_notifier_call_chain(struct raw_notifier_head *nh,
- unsigned long val, void *v);
-extern int __raw_notifier_call_chain(struct raw_notifier_head *nh,
- unsigned long val, void *v, int nr_to_call, int *nr_calls);
-extern int srcu_notifier_call_chain(struct srcu_notifier_head *nh,
- unsigned long val, void *v);
-extern int __srcu_notifier_call_chain(struct srcu_notifier_head *nh,
- unsigned long val, void *v, int nr_to_call, int *nr_calls);
-
-#define NOTIFY_DONE 0x0000 /* Don't care */
-#define NOTIFY_OK 0x0001 /* Suits me */
-#define NOTIFY_STOP_MASK 0x8000 /* Don't call further */
-#define NOTIFY_BAD (NOTIFY_STOP_MASK|0x0002)
- /* Bad/Veto action */
-/*
- * Clean way to return from the notifier and stop further calls.
- */
-#define NOTIFY_STOP (NOTIFY_OK|NOTIFY_STOP_MASK)
-
-/* Encapsulate (negative) errno value (in particular, NOTIFY_BAD <=> EPERM). */
-static inline int notifier_from_errno(int err)
-{
- if (err)
- return NOTIFY_STOP_MASK | (NOTIFY_OK - err);
-
- return NOTIFY_OK;
-}
-
-/* Restore (negative) errno value from notify return value. */
-static inline int notifier_to_errno(int ret)
-{
- ret &= ~NOTIFY_STOP_MASK;
- return ret > NOTIFY_OK ? NOTIFY_OK - ret : 0;
-}
-
-/*
- * Declared notifiers so far. I can imagine quite a few more chains
- * over time (eg laptop power reset chains, reboot chain (to clean
- * device units up), device [un]mount chain, module load/unload chain,
- * low memory chain, screenblank chain (for plug in modular screenblankers)
- * VC switch chains (for loadable kernel svgalib VC switch helpers) etc...
- */
-
-/* CPU notfiers are defined in include/linux/cpu.h. */
-
-/* netdevice notifiers are defined in include/linux/netdevice.h */
-
-/* reboot notifiers are defined in include/linux/reboot.h. */
-
-/* Hibernation and suspend events are defined in include/linux/suspend.h. */
-
-/* Virtual Terminal events are defined in include/linux/vt.h. */
-
-#define NETLINK_URELEASE 0x0001 /* Unicast netlink socket released */
-
-/* Console keyboard events.
- * Note: KBD_KEYCODE is always sent before KBD_UNBOUND_KEYCODE, KBD_UNICODE and
- * KBD_KEYSYM. */
-#define KBD_KEYCODE 0x0001 /* Keyboard keycode, called before any other */
-#define KBD_UNBOUND_KEYCODE 0x0002 /* Keyboard keycode which is not bound to any other */
-#define KBD_UNICODE 0x0003 /* Keyboard unicode */
-#define KBD_KEYSYM 0x0004 /* Keyboard keysym */
-#define KBD_POST_KEYSYM 0x0005 /* Called after keyboard keysym interpretation */
-
-extern struct blocking_notifier_head reboot_notifier_list;
-
-#endif /* __KERNEL__ */
-#endif /* _LINUX_NOTIFIER_H */
diff --git a/ANDROID_3.4.5/include/linux/nsc_gpio.h b/ANDROID_3.4.5/include/linux/nsc_gpio.h
deleted file mode 100644
index 7da0cf37..00000000
--- a/ANDROID_3.4.5/include/linux/nsc_gpio.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- nsc_gpio.c
-
- National Semiconductor GPIO common access methods.
-
- struct nsc_gpio_ops abstracts the low-level access
- operations for the GPIO units on 2 NSC chip families; the GEODE
- integrated CPU, and the PC-8736[03456] integrated PC-peripheral
- chips.
-
- The GPIO units on these chips have the same pin architecture, but
- the access methods differ. Thus, scx200_gpio and pc8736x_gpio
- implement their own versions of these routines; and use the common
- file-operations routines implemented in nsc_gpio module.
-
- Copyright (c) 2005 Jim Cromie <jim.cromie@gmail.com>
-
- NB: this work was tested on the Geode SC-1100 and PC-87366 chips.
- NSC sold the GEODE line to AMD, and the PC-8736x line to Winbond.
-*/
-
-struct nsc_gpio_ops {
- struct module* owner;
- u32 (*gpio_config) (unsigned iminor, u32 mask, u32 bits);
- void (*gpio_dump) (struct nsc_gpio_ops *amp, unsigned iminor);
- int (*gpio_get) (unsigned iminor);
- void (*gpio_set) (unsigned iminor, int state);
- void (*gpio_change) (unsigned iminor);
- int (*gpio_current) (unsigned iminor);
- struct device* dev; /* for dev_dbg() support, set in init */
-};
-
-extern ssize_t nsc_gpio_write(struct file *file, const char __user *data,
- size_t len, loff_t *ppos);
-
-extern ssize_t nsc_gpio_read(struct file *file, char __user *buf,
- size_t len, loff_t *ppos);
-
-extern void nsc_gpio_dump(struct nsc_gpio_ops *amp, unsigned index);
-
diff --git a/ANDROID_3.4.5/include/linux/nsproxy.h b/ANDROID_3.4.5/include/linux/nsproxy.h
deleted file mode 100644
index cc37a55a..00000000
--- a/ANDROID_3.4.5/include/linux/nsproxy.h
+++ /dev/null
@@ -1,85 +0,0 @@
-#ifndef _LINUX_NSPROXY_H
-#define _LINUX_NSPROXY_H
-
-#include <linux/spinlock.h>
-#include <linux/sched.h>
-
-struct mnt_namespace;
-struct uts_namespace;
-struct ipc_namespace;
-struct pid_namespace;
-struct fs_struct;
-
-/*
- * A structure to contain pointers to all per-process
- * namespaces - fs (mount), uts, network, sysvipc, etc.
- *
- * 'count' is the number of tasks holding a reference.
- * The count for each namespace, then, will be the number
- * of nsproxies pointing to it, not the number of tasks.
- *
- * The nsproxy is shared by tasks which share all namespaces.
- * As soon as a single namespace is cloned or unshared, the
- * nsproxy is copied.
- */
-struct nsproxy {
- atomic_t count;
- struct uts_namespace *uts_ns;
- struct ipc_namespace *ipc_ns;
- struct mnt_namespace *mnt_ns;
- struct pid_namespace *pid_ns;
- struct net *net_ns;
-};
-extern struct nsproxy init_nsproxy;
-
-/*
- * the namespaces access rules are:
- *
- * 1. only current task is allowed to change tsk->nsproxy pointer or
- * any pointer on the nsproxy itself
- *
- * 2. when accessing (i.e. reading) current task's namespaces - no
- * precautions should be taken - just dereference the pointers
- *
- * 3. the access to other task namespaces is performed like this
- * rcu_read_lock();
- * nsproxy = task_nsproxy(tsk);
- * if (nsproxy != NULL) {
- * / *
- * * work with the namespaces here
- * * e.g. get the reference on one of them
- * * /
- * } / *
- * * NULL task_nsproxy() means that this task is
- * * almost dead (zombie)
- * * /
- * rcu_read_unlock();
- *
- */
-
-static inline struct nsproxy *task_nsproxy(struct task_struct *tsk)
-{
- return rcu_dereference(tsk->nsproxy);
-}
-
-int copy_namespaces(unsigned long flags, struct task_struct *tsk);
-void exit_task_namespaces(struct task_struct *tsk);
-void switch_task_namespaces(struct task_struct *tsk, struct nsproxy *new);
-void free_nsproxy(struct nsproxy *ns);
-int unshare_nsproxy_namespaces(unsigned long, struct nsproxy **,
- struct fs_struct *);
-int __init nsproxy_cache_init(void);
-
-static inline void put_nsproxy(struct nsproxy *ns)
-{
- if (atomic_dec_and_test(&ns->count)) {
- free_nsproxy(ns);
- }
-}
-
-static inline void get_nsproxy(struct nsproxy *ns)
-{
- atomic_inc(&ns->count);
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/nubus.h b/ANDROID_3.4.5/include/linux/nubus.h
deleted file mode 100644
index e137b3c4..00000000
--- a/ANDROID_3.4.5/include/linux/nubus.h
+++ /dev/null
@@ -1,363 +0,0 @@
-/*
- nubus.h: various definitions and prototypes for NuBus drivers to use.
-
- Originally written by Alan Cox.
-
- Hacked to death by C. Scott Ananian and David Huggins-Daines.
-
- Some of the constants in here are from the corresponding
- NetBSD/OpenBSD header file, by Allen Briggs. We figured out the
- rest of them on our own. */
-
-#ifndef LINUX_NUBUS_H
-#define LINUX_NUBUS_H
-
-#include <linux/types.h>
-#ifdef __KERNEL__
-#include <asm/nubus.h>
-#endif
-
-enum nubus_category {
- NUBUS_CAT_BOARD = 0x0001,
- NUBUS_CAT_DISPLAY = 0x0003,
- NUBUS_CAT_NETWORK = 0x0004,
- NUBUS_CAT_COMMUNICATIONS = 0x0006,
- NUBUS_CAT_FONT = 0x0009,
- NUBUS_CAT_CPU = 0x000A,
- /* For lack of a better name */
- NUBUS_CAT_DUODOCK = 0x0020
-};
-
-enum nubus_type_network {
- NUBUS_TYPE_ETHERNET = 0x0001,
- NUBUS_TYPE_RS232 = 0x0002
-};
-
-enum nubus_type_display {
- NUBUS_TYPE_VIDEO = 0x0001
-};
-
-enum nubus_type_cpu {
- NUBUS_TYPE_68020 = 0x0003,
- NUBUS_TYPE_68030 = 0x0004,
- NUBUS_TYPE_68040 = 0x0005
-};
-
-/* Known <Cat,Type,SW,HW> tuples: (according to TattleTech and Slots)
- * 68030 motherboards: <10,4,0,24>
- * 68040 motherboards: <10,5,0,24>
- * DuoDock Plus: <32,1,1,2>
- *
- * Toby Frame Buffer card: <3,1,1,1>
- * RBV built-in video (IIci): <3,1,1,24>
- * Valkyrie built-in video (Q630): <3,1,1,46>
- * Macintosh Display Card: <3,1,1,25>
- * Sonora built-in video (P460): <3,1,1,34>
- * Jet framebuffer (DuoDock Plus): <3,1,1,41>
- *
- * SONIC comm-slot/on-board and DuoDock Ethernet: <4,1,1,272>
- * SONIC LC-PDS Ethernet (Dayna, but like Apple 16-bit, sort of): <4,1,1,271>
- * Apple SONIC LC-PDS Ethernet ("Apple Ethernet LC Twisted-Pair Card"): <4,1,0,281>
- * Sonic Systems Ethernet A-Series Card: <4,1,268,256>
- * Asante MacCon NuBus-A: <4,1,260,256> (alpha-1.0,1.1 revision)
- * ROM on the above card: <2,1,0,0>
- * Cabletron ethernet card: <4,1,1,265>
- * Farallon ethernet card: <4,1,268,256> (identical to Sonic Systems card)
- * Kinetics EtherPort IIN: <4,1,259,262>
- * API Engineering EtherRun_LCa PDS enet card: <4,1,282,256>
- *
- * Add your devices to the list! You can obtain the "Slots" utility
- * from Apple's FTP site at:
- * ftp://dev.apple.com/devworld/Tool_Chest/Devices_-_Hardware/NuBus_Slot_Manager/
- *
- * Alternately, TattleTech can be found at any Info-Mac mirror site.
- * or from its distribution site: ftp://ftp.decismkr.com/dms
- */
-
-/* DrSW: Uniquely identifies the software interface to a board. This
- is usually the one you want to look at when writing a driver. It's
- not as useful as you think, though, because as we should know by
- now (duh), "Apple Compatible" can mean a lot of things... */
-
-/* Add known DrSW values here */
-enum nubus_drsw {
- /* NUBUS_CAT_DISPLAY */
- NUBUS_DRSW_APPLE = 0x0001,
- NUBUS_DRSW_APPLE_HIRES = 0x0013, /* MacII HiRes card driver */
-
- /* NUBUS_CAT_NETWORK */
- NUBUS_DRSW_3COM = 0x0000,
- NUBUS_DRSW_CABLETRON = 0x0001,
- NUBUS_DRSW_SONIC_LC = 0x0001,
- NUBUS_DRSW_KINETICS = 0x0103,
- NUBUS_DRSW_ASANTE = 0x0104,
- NUBUS_DRSW_TECHWORKS = 0x0109,
- NUBUS_DRSW_DAYNA = 0x010b,
- NUBUS_DRSW_FARALLON = 0x010c,
- NUBUS_DRSW_APPLE_SN = 0x010f,
- NUBUS_DRSW_DAYNA2 = 0x0115,
- NUBUS_DRSW_FOCUS = 0x011a,
- NUBUS_DRSW_ASANTE_CS = 0x011d, /* use asante SMC9194 driver */
- NUBUS_DRSW_DAYNA_LC = 0x011e,
-
- /* NUBUS_CAT_CPU */
- NUBUS_DRSW_NONE = 0x0000,
-};
-
-/* DrHW: Uniquely identifies the hardware interface to a board (or at
- least, it should... some video cards are known to incorrectly
- identify themselves as Toby cards) */
-
-/* Add known DrHW values here */
-enum nubus_drhw {
- /* NUBUS_CAT_DISPLAY */
- NUBUS_DRHW_APPLE_TFB = 0x0001, /* Toby frame buffer card */
- NUBUS_DRHW_APPLE_WVC = 0x0006, /* Apple Workstation Video Card */
- NUBUS_DRHW_SIGMA_CLRMAX = 0x0007, /* Sigma Design ColorMax */
- NUBUS_DRHW_APPLE_SE30 = 0x0009, /* Apple SE/30 video */
- NUBUS_DRHW_APPLE_HRVC = 0x0013, /* Mac II High-Res Video Card */
- NUBUS_DRHW_APPLE_PVC = 0x0017, /* Mac II Portrait Video Card */
- NUBUS_DRHW_APPLE_RBV1 = 0x0018, /* IIci RBV video */
- NUBUS_DRHW_APPLE_MDC = 0x0019, /* Macintosh Display Card */
- NUBUS_DRHW_APPLE_SONORA = 0x0022, /* Sonora built-in video */
- NUBUS_DRHW_APPLE_24AC = 0x002b, /* Mac 24AC Video Card */
- NUBUS_DRHW_APPLE_VALKYRIE = 0x002e,
- NUBUS_DRHW_APPLE_JET = 0x0029, /* Jet framebuffer (DuoDock) */
- NUBUS_DRHW_SMAC_GFX = 0x0105, /* SuperMac GFX */
- NUBUS_DRHW_RASTER_CB264 = 0x013B, /* RasterOps ColorBoard 264 */
- NUBUS_DRHW_MICRON_XCEED = 0x0146, /* Micron Exceed color */
- NUBUS_DRHW_RDIUS_GSC = 0x0153, /* Radius GS/C */
- NUBUS_DRHW_SMAC_SPEC8 = 0x017B, /* SuperMac Spectrum/8 */
- NUBUS_DRHW_SMAC_SPEC24 = 0x017C, /* SuperMac Spectrum/24 */
- NUBUS_DRHW_RASTER_CB364 = 0x026F, /* RasterOps ColorBoard 364 */
- NUBUS_DRHW_RDIUS_DCGX = 0x027C, /* Radius DirectColor/GX */
- NUBUS_DRHW_RDIUS_PC8 = 0x0291, /* Radius PrecisionColor 8 */
- NUBUS_DRHW_LAPIS_PCS8 = 0x0292, /* Lapis ProColorServer 8 */
- NUBUS_DRHW_RASTER_24XLI = 0x02A0, /* RasterOps 8/24 XLi */
- NUBUS_DRHW_RASTER_PBPGT = 0x02A5, /* RasterOps PaintBoard Prism GT */
- NUBUS_DRHW_EMACH_FSX = 0x02AE, /* E-Machines Futura SX */
- NUBUS_DRHW_RASTER_24XLTV = 0x02B7, /* RasterOps 24XLTV */
- NUBUS_DRHW_SMAC_THUND24 = 0x02CB, /* SuperMac Thunder/24 */
- NUBUS_DRHW_SMAC_THUNDLGHT = 0x03D9, /* SuperMac ThunderLight */
- NUBUS_DRHW_RDIUS_PC24XP = 0x0406, /* Radius PrecisionColor 24Xp */
- NUBUS_DRHW_RDIUS_PC24X = 0x040A, /* Radius PrecisionColor 24X */
- NUBUS_DRHW_RDIUS_PC8XJ = 0x040B, /* Radius PrecisionColor 8XJ */
-
- /* NUBUS_CAT_NETWORK */
- NUBUS_DRHW_INTERLAN = 0x0100,
- NUBUS_DRHW_SMC9194 = 0x0101,
- NUBUS_DRHW_KINETICS = 0x0106,
- NUBUS_DRHW_CABLETRON = 0x0109,
- NUBUS_DRHW_ASANTE_LC = 0x010f,
- NUBUS_DRHW_SONIC = 0x0110,
- NUBUS_DRHW_TECHWORKS = 0x0112,
- NUBUS_DRHW_APPLE_SONIC_NB = 0x0118,
- NUBUS_DRHW_APPLE_SONIC_LC = 0x0119,
- NUBUS_DRHW_FOCUS = 0x011c,
- NUBUS_DRHW_SONNET = 0x011d,
-};
-
-/* Resource IDs: These are the identifiers for the various weird and
- wonderful tidbits of information that may or may not reside in the
- NuBus ROM directory. */
-enum nubus_res_id {
- NUBUS_RESID_TYPE = 0x0001,
- NUBUS_RESID_NAME = 0x0002,
- NUBUS_RESID_ICON = 0x0003,
- NUBUS_RESID_DRVRDIR = 0x0004,
- NUBUS_RESID_LOADREC = 0x0005,
- NUBUS_RESID_BOOTREC = 0x0006,
- NUBUS_RESID_FLAGS = 0x0007,
- NUBUS_RESID_HWDEVID = 0x0008,
- NUBUS_RESID_MINOR_BASEOS = 0x000a,
- NUBUS_RESID_MINOR_LENGTH = 0x000b,
- NUBUS_RESID_MAJOR_BASEOS = 0x000c,
- NUBUS_RESID_MAJOR_LENGTH = 0x000d,
- NUBUS_RESID_CICN = 0x000f,
- NUBUS_RESID_ICL8 = 0x0010,
- NUBUS_RESID_ICL4 = 0x0011,
-};
-
-/* Category-specific resources. */
-enum nubus_board_res_id {
- NUBUS_RESID_BOARDID = 0x0020,
- NUBUS_RESID_PRAMINITDATA = 0x0021,
- NUBUS_RESID_PRIMARYINIT = 0x0022,
- NUBUS_RESID_TIMEOUTCONST = 0x0023,
- NUBUS_RESID_VENDORINFO = 0x0024,
- NUBUS_RESID_BOARDFLAGS = 0x0025,
- NUBUS_RESID_SECONDINIT = 0x0026,
-
- /* Not sure why Apple put these next two in here */
- NUBUS_RESID_VIDNAMES = 0x0041,
- NUBUS_RESID_VIDMODES = 0x007e
-};
-
-/* Fields within the vendor info directory */
-enum nubus_vendor_res_id {
- NUBUS_RESID_VEND_ID = 0x0001,
- NUBUS_RESID_VEND_SERIAL = 0x0002,
- NUBUS_RESID_VEND_REV = 0x0003,
- NUBUS_RESID_VEND_PART = 0x0004,
- NUBUS_RESID_VEND_DATE = 0x0005
-};
-
-enum nubus_net_res_id {
- NUBUS_RESID_MAC_ADDRESS = 0x0080
-};
-
-enum nubus_cpu_res_id {
- NUBUS_RESID_MEMINFO = 0x0081,
- NUBUS_RESID_ROMINFO = 0x0082
-};
-
-enum nubus_display_res_id {
- NUBUS_RESID_GAMMADIR = 0x0040,
- NUBUS_RESID_FIRSTMODE = 0x0080,
- NUBUS_RESID_SECONDMODE = 0x0081,
- NUBUS_RESID_THIRDMODE = 0x0082,
- NUBUS_RESID_FOURTHMODE = 0x0083,
- NUBUS_RESID_FIFTHMODE = 0x0084,
- NUBUS_RESID_SIXTHMODE = 0x0085
-};
-
-struct nubus_dir
-{
- unsigned char *base;
- unsigned char *ptr;
- int done;
- int mask;
-};
-
-struct nubus_dirent
-{
- unsigned char *base;
- unsigned char type;
- __u32 data; /* Actually 24bits used */
- int mask;
-};
-
-#ifdef __KERNEL__
-struct nubus_board {
- struct nubus_board* next;
- struct nubus_dev* first_dev;
-
- /* Only 9-E actually exist, though 0-8 are also theoretically
- possible, and 0 is a special case which represents the
- motherboard and onboard peripherals (Ethernet, video) */
- int slot;
- /* For slot 0, this is bogus. */
- char name[64];
-
- /* Format block */
- unsigned char* fblock;
- /* Root directory (does *not* always equal fblock + doffset!) */
- unsigned char* directory;
-
- unsigned long slot_addr;
- /* Offset to root directory (sometimes) */
- unsigned long doffset;
- /* Length over which to compute the crc */
- unsigned long rom_length;
- /* Completely useless most of the time */
- unsigned long crc;
- unsigned char rev;
- unsigned char format;
- unsigned char lanes;
-};
-
-struct nubus_dev {
- /* Next link in device list */
- struct nubus_dev* next;
- /* Directory entry in /proc/bus/nubus */
- struct proc_dir_entry* procdir;
-
- /* The functional resource ID of this device */
- unsigned char resid;
- /* These are mostly here for convenience; we could always read
- them from the ROMs if we wanted to */
- unsigned short category;
- unsigned short type;
- unsigned short dr_sw;
- unsigned short dr_hw;
- /* This is the device's name rather than the board's.
- Sometimes they are different. Usually the board name is
- more correct. */
- char name[64];
- /* MacOS driver (I kid you not) */
- unsigned char* driver;
- /* Actually this is an offset */
- unsigned long iobase;
- unsigned long iosize;
- unsigned char flags, hwdevid;
-
- /* Functional directory */
- unsigned char* directory;
- /* Much of our info comes from here */
- struct nubus_board* board;
-};
-
-/* This is all NuBus devices (used to find devices later on) */
-extern struct nubus_dev* nubus_devices;
-/* This is all NuBus cards */
-extern struct nubus_board* nubus_boards;
-
-/* Generic NuBus interface functions, modelled after the PCI interface */
-void nubus_scan_bus(void);
-extern void nubus_proc_init(void);
-int get_nubus_list(char *buf);
-int nubus_proc_attach_device(struct nubus_dev *dev);
-int nubus_proc_detach_device(struct nubus_dev *dev);
-/* If we need more precision we can add some more of these */
-struct nubus_dev* nubus_find_device(unsigned short category,
- unsigned short type,
- unsigned short dr_hw,
- unsigned short dr_sw,
- const struct nubus_dev* from);
-struct nubus_dev* nubus_find_type(unsigned short category,
- unsigned short type,
- const struct nubus_dev* from);
-/* Might have more than one device in a slot, you know... */
-struct nubus_dev* nubus_find_slot(unsigned int slot,
- const struct nubus_dev* from);
-
-/* These are somewhat more NuBus-specific. They all return 0 for
- success and -1 for failure, as you'd expect. */
-
-/* The root directory which contains the board and functional
- directories */
-int nubus_get_root_dir(const struct nubus_board* board,
- struct nubus_dir* dir);
-/* The board directory */
-int nubus_get_board_dir(const struct nubus_board* board,
- struct nubus_dir* dir);
-/* The functional directory */
-int nubus_get_func_dir(const struct nubus_dev* dev,
- struct nubus_dir* dir);
-
-/* These work on any directory gotten via the above */
-int nubus_readdir(struct nubus_dir* dir,
- struct nubus_dirent* ent);
-int nubus_find_rsrc(struct nubus_dir* dir,
- unsigned char rsrc_type,
- struct nubus_dirent* ent);
-int nubus_rewinddir(struct nubus_dir* dir);
-
-/* Things to do with directory entries */
-int nubus_get_subdir(const struct nubus_dirent* ent,
- struct nubus_dir* dir);
-void nubus_get_rsrc_mem(void* dest,
- const struct nubus_dirent *dirent,
- int len);
-void nubus_get_rsrc_str(void* dest,
- const struct nubus_dirent *dirent,
- int maxlen);
-#endif /* __KERNEL__ */
-
-/* We'd like to get rid of this eventually. Only daynaport.c uses it now. */
-static inline void *nubus_slot_addr(int slot)
-{
- return (void *)(0xF0000000|(slot<<24));
-}
-
-#endif /* LINUX_NUBUS_H */
diff --git a/ANDROID_3.4.5/include/linux/numa.h b/ANDROID_3.4.5/include/linux/numa.h
deleted file mode 100644
index 3aaa3160..00000000
--- a/ANDROID_3.4.5/include/linux/numa.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef _LINUX_NUMA_H
-#define _LINUX_NUMA_H
-
-
-#ifdef CONFIG_NODES_SHIFT
-#define NODES_SHIFT CONFIG_NODES_SHIFT
-#else
-#define NODES_SHIFT 0
-#endif
-
-#define MAX_NUMNODES (1 << NODES_SHIFT)
-
-#define NUMA_NO_NODE (-1)
-
-#endif /* _LINUX_NUMA_H */
diff --git a/ANDROID_3.4.5/include/linux/nvme.h b/ANDROID_3.4.5/include/linux/nvme.h
deleted file mode 100644
index 9490a005..00000000
--- a/ANDROID_3.4.5/include/linux/nvme.h
+++ /dev/null
@@ -1,434 +0,0 @@
-/*
- * Definitions for the NVM Express interface
- * Copyright (c) 2011, Intel Corporation.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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 _LINUX_NVME_H
-#define _LINUX_NVME_H
-
-#include <linux/types.h>
-
-struct nvme_bar {
- __u64 cap; /* Controller Capabilities */
- __u32 vs; /* Version */
- __u32 intms; /* Interrupt Mask Set */
- __u32 intmc; /* Interrupt Mask Clear */
- __u32 cc; /* Controller Configuration */
- __u32 rsvd1; /* Reserved */
- __u32 csts; /* Controller Status */
- __u32 rsvd2; /* Reserved */
- __u32 aqa; /* Admin Queue Attributes */
- __u64 asq; /* Admin SQ Base Address */
- __u64 acq; /* Admin CQ Base Address */
-};
-
-#define NVME_CAP_TIMEOUT(cap) (((cap) >> 24) & 0xff)
-#define NVME_CAP_STRIDE(cap) (((cap) >> 32) & 0xf)
-
-enum {
- NVME_CC_ENABLE = 1 << 0,
- NVME_CC_CSS_NVM = 0 << 4,
- NVME_CC_MPS_SHIFT = 7,
- NVME_CC_ARB_RR = 0 << 11,
- NVME_CC_ARB_WRRU = 1 << 11,
- NVME_CC_ARB_VS = 7 << 11,
- NVME_CC_SHN_NONE = 0 << 14,
- NVME_CC_SHN_NORMAL = 1 << 14,
- NVME_CC_SHN_ABRUPT = 2 << 14,
- NVME_CC_IOSQES = 6 << 16,
- NVME_CC_IOCQES = 4 << 20,
- NVME_CSTS_RDY = 1 << 0,
- NVME_CSTS_CFS = 1 << 1,
- NVME_CSTS_SHST_NORMAL = 0 << 2,
- NVME_CSTS_SHST_OCCUR = 1 << 2,
- NVME_CSTS_SHST_CMPLT = 2 << 2,
-};
-
-struct nvme_id_power_state {
- __le16 max_power; /* centiwatts */
- __u16 rsvd2;
- __le32 entry_lat; /* microseconds */
- __le32 exit_lat; /* microseconds */
- __u8 read_tput;
- __u8 read_lat;
- __u8 write_tput;
- __u8 write_lat;
- __u8 rsvd16[16];
-};
-
-#define NVME_VS(major, minor) (major << 16 | minor)
-
-struct nvme_id_ctrl {
- __le16 vid;
- __le16 ssvid;
- char sn[20];
- char mn[40];
- char fr[8];
- __u8 rab;
- __u8 ieee[3];
- __u8 mic;
- __u8 mdts;
- __u8 rsvd78[178];
- __le16 oacs;
- __u8 acl;
- __u8 aerl;
- __u8 frmw;
- __u8 lpa;
- __u8 elpe;
- __u8 npss;
- __u8 rsvd264[248];
- __u8 sqes;
- __u8 cqes;
- __u8 rsvd514[2];
- __le32 nn;
- __le16 oncs;
- __le16 fuses;
- __u8 fna;
- __u8 vwc;
- __le16 awun;
- __le16 awupf;
- __u8 rsvd530[1518];
- struct nvme_id_power_state psd[32];
- __u8 vs[1024];
-};
-
-struct nvme_lbaf {
- __le16 ms;
- __u8 ds;
- __u8 rp;
-};
-
-struct nvme_id_ns {
- __le64 nsze;
- __le64 ncap;
- __le64 nuse;
- __u8 nsfeat;
- __u8 nlbaf;
- __u8 flbas;
- __u8 mc;
- __u8 dpc;
- __u8 dps;
- __u8 rsvd30[98];
- struct nvme_lbaf lbaf[16];
- __u8 rsvd192[192];
- __u8 vs[3712];
-};
-
-enum {
- NVME_NS_FEAT_THIN = 1 << 0,
- NVME_LBAF_RP_BEST = 0,
- NVME_LBAF_RP_BETTER = 1,
- NVME_LBAF_RP_GOOD = 2,
- NVME_LBAF_RP_DEGRADED = 3,
-};
-
-struct nvme_lba_range_type {
- __u8 type;
- __u8 attributes;
- __u8 rsvd2[14];
- __u64 slba;
- __u64 nlb;
- __u8 guid[16];
- __u8 rsvd48[16];
-};
-
-enum {
- NVME_LBART_TYPE_FS = 0x01,
- NVME_LBART_TYPE_RAID = 0x02,
- NVME_LBART_TYPE_CACHE = 0x03,
- NVME_LBART_TYPE_SWAP = 0x04,
-
- NVME_LBART_ATTRIB_TEMP = 1 << 0,
- NVME_LBART_ATTRIB_HIDE = 1 << 1,
-};
-
-/* I/O commands */
-
-enum nvme_opcode {
- nvme_cmd_flush = 0x00,
- nvme_cmd_write = 0x01,
- nvme_cmd_read = 0x02,
- nvme_cmd_write_uncor = 0x04,
- nvme_cmd_compare = 0x05,
- nvme_cmd_dsm = 0x09,
-};
-
-struct nvme_common_command {
- __u8 opcode;
- __u8 flags;
- __u16 command_id;
- __le32 nsid;
- __u32 cdw2[2];
- __le64 metadata;
- __le64 prp1;
- __le64 prp2;
- __u32 cdw10[6];
-};
-
-struct nvme_rw_command {
- __u8 opcode;
- __u8 flags;
- __u16 command_id;
- __le32 nsid;
- __u64 rsvd2;
- __le64 metadata;
- __le64 prp1;
- __le64 prp2;
- __le64 slba;
- __le16 length;
- __le16 control;
- __le32 dsmgmt;
- __le32 reftag;
- __le16 apptag;
- __le16 appmask;
-};
-
-enum {
- NVME_RW_LR = 1 << 15,
- NVME_RW_FUA = 1 << 14,
- NVME_RW_DSM_FREQ_UNSPEC = 0,
- NVME_RW_DSM_FREQ_TYPICAL = 1,
- NVME_RW_DSM_FREQ_RARE = 2,
- NVME_RW_DSM_FREQ_READS = 3,
- NVME_RW_DSM_FREQ_WRITES = 4,
- NVME_RW_DSM_FREQ_RW = 5,
- NVME_RW_DSM_FREQ_ONCE = 6,
- NVME_RW_DSM_FREQ_PREFETCH = 7,
- NVME_RW_DSM_FREQ_TEMP = 8,
- NVME_RW_DSM_LATENCY_NONE = 0 << 4,
- NVME_RW_DSM_LATENCY_IDLE = 1 << 4,
- NVME_RW_DSM_LATENCY_NORM = 2 << 4,
- NVME_RW_DSM_LATENCY_LOW = 3 << 4,
- NVME_RW_DSM_SEQ_REQ = 1 << 6,
- NVME_RW_DSM_COMPRESSED = 1 << 7,
-};
-
-/* Admin commands */
-
-enum nvme_admin_opcode {
- nvme_admin_delete_sq = 0x00,
- nvme_admin_create_sq = 0x01,
- nvme_admin_get_log_page = 0x02,
- nvme_admin_delete_cq = 0x04,
- nvme_admin_create_cq = 0x05,
- nvme_admin_identify = 0x06,
- nvme_admin_abort_cmd = 0x08,
- nvme_admin_set_features = 0x09,
- nvme_admin_get_features = 0x0a,
- nvme_admin_async_event = 0x0c,
- nvme_admin_activate_fw = 0x10,
- nvme_admin_download_fw = 0x11,
- nvme_admin_format_nvm = 0x80,
- nvme_admin_security_send = 0x81,
- nvme_admin_security_recv = 0x82,
-};
-
-enum {
- NVME_QUEUE_PHYS_CONTIG = (1 << 0),
- NVME_CQ_IRQ_ENABLED = (1 << 1),
- NVME_SQ_PRIO_URGENT = (0 << 1),
- NVME_SQ_PRIO_HIGH = (1 << 1),
- NVME_SQ_PRIO_MEDIUM = (2 << 1),
- NVME_SQ_PRIO_LOW = (3 << 1),
- NVME_FEAT_ARBITRATION = 0x01,
- NVME_FEAT_POWER_MGMT = 0x02,
- NVME_FEAT_LBA_RANGE = 0x03,
- NVME_FEAT_TEMP_THRESH = 0x04,
- NVME_FEAT_ERR_RECOVERY = 0x05,
- NVME_FEAT_VOLATILE_WC = 0x06,
- NVME_FEAT_NUM_QUEUES = 0x07,
- NVME_FEAT_IRQ_COALESCE = 0x08,
- NVME_FEAT_IRQ_CONFIG = 0x09,
- NVME_FEAT_WRITE_ATOMIC = 0x0a,
- NVME_FEAT_ASYNC_EVENT = 0x0b,
- NVME_FEAT_SW_PROGRESS = 0x0c,
-};
-
-struct nvme_identify {
- __u8 opcode;
- __u8 flags;
- __u16 command_id;
- __le32 nsid;
- __u64 rsvd2[2];
- __le64 prp1;
- __le64 prp2;
- __le32 cns;
- __u32 rsvd11[5];
-};
-
-struct nvme_features {
- __u8 opcode;
- __u8 flags;
- __u16 command_id;
- __le32 nsid;
- __u64 rsvd2[2];
- __le64 prp1;
- __le64 prp2;
- __le32 fid;
- __le32 dword11;
- __u32 rsvd12[4];
-};
-
-struct nvme_create_cq {
- __u8 opcode;
- __u8 flags;
- __u16 command_id;
- __u32 rsvd1[5];
- __le64 prp1;
- __u64 rsvd8;
- __le16 cqid;
- __le16 qsize;
- __le16 cq_flags;
- __le16 irq_vector;
- __u32 rsvd12[4];
-};
-
-struct nvme_create_sq {
- __u8 opcode;
- __u8 flags;
- __u16 command_id;
- __u32 rsvd1[5];
- __le64 prp1;
- __u64 rsvd8;
- __le16 sqid;
- __le16 qsize;
- __le16 sq_flags;
- __le16 cqid;
- __u32 rsvd12[4];
-};
-
-struct nvme_delete_queue {
- __u8 opcode;
- __u8 flags;
- __u16 command_id;
- __u32 rsvd1[9];
- __le16 qid;
- __u16 rsvd10;
- __u32 rsvd11[5];
-};
-
-struct nvme_download_firmware {
- __u8 opcode;
- __u8 flags;
- __u16 command_id;
- __u32 rsvd1[5];
- __le64 prp1;
- __le64 prp2;
- __le32 numd;
- __le32 offset;
- __u32 rsvd12[4];
-};
-
-struct nvme_command {
- union {
- struct nvme_common_command common;
- struct nvme_rw_command rw;
- struct nvme_identify identify;
- struct nvme_features features;
- struct nvme_create_cq create_cq;
- struct nvme_create_sq create_sq;
- struct nvme_delete_queue delete_queue;
- struct nvme_download_firmware dlfw;
- };
-};
-
-enum {
- NVME_SC_SUCCESS = 0x0,
- NVME_SC_INVALID_OPCODE = 0x1,
- NVME_SC_INVALID_FIELD = 0x2,
- NVME_SC_CMDID_CONFLICT = 0x3,
- NVME_SC_DATA_XFER_ERROR = 0x4,
- NVME_SC_POWER_LOSS = 0x5,
- NVME_SC_INTERNAL = 0x6,
- NVME_SC_ABORT_REQ = 0x7,
- NVME_SC_ABORT_QUEUE = 0x8,
- NVME_SC_FUSED_FAIL = 0x9,
- NVME_SC_FUSED_MISSING = 0xa,
- NVME_SC_INVALID_NS = 0xb,
- NVME_SC_LBA_RANGE = 0x80,
- NVME_SC_CAP_EXCEEDED = 0x81,
- NVME_SC_NS_NOT_READY = 0x82,
- NVME_SC_CQ_INVALID = 0x100,
- NVME_SC_QID_INVALID = 0x101,
- NVME_SC_QUEUE_SIZE = 0x102,
- NVME_SC_ABORT_LIMIT = 0x103,
- NVME_SC_ABORT_MISSING = 0x104,
- NVME_SC_ASYNC_LIMIT = 0x105,
- NVME_SC_FIRMWARE_SLOT = 0x106,
- NVME_SC_FIRMWARE_IMAGE = 0x107,
- NVME_SC_INVALID_VECTOR = 0x108,
- NVME_SC_INVALID_LOG_PAGE = 0x109,
- NVME_SC_INVALID_FORMAT = 0x10a,
- NVME_SC_BAD_ATTRIBUTES = 0x180,
- NVME_SC_WRITE_FAULT = 0x280,
- NVME_SC_READ_ERROR = 0x281,
- NVME_SC_GUARD_CHECK = 0x282,
- NVME_SC_APPTAG_CHECK = 0x283,
- NVME_SC_REFTAG_CHECK = 0x284,
- NVME_SC_COMPARE_FAILED = 0x285,
- NVME_SC_ACCESS_DENIED = 0x286,
-};
-
-struct nvme_completion {
- __le32 result; /* Used by admin commands to return data */
- __u32 rsvd;
- __le16 sq_head; /* how much of this queue may be reclaimed */
- __le16 sq_id; /* submission queue that generated this entry */
- __u16 command_id; /* of the command which completed */
- __le16 status; /* did the command fail, and if so, why? */
-};
-
-struct nvme_user_io {
- __u8 opcode;
- __u8 flags;
- __u16 control;
- __u16 nblocks;
- __u16 rsvd;
- __u64 metadata;
- __u64 addr;
- __u64 slba;
- __u32 dsmgmt;
- __u32 reftag;
- __u16 apptag;
- __u16 appmask;
-};
-
-struct nvme_admin_cmd {
- __u8 opcode;
- __u8 flags;
- __u16 rsvd1;
- __u32 nsid;
- __u32 cdw2;
- __u32 cdw3;
- __u64 metadata;
- __u64 addr;
- __u32 metadata_len;
- __u32 data_len;
- __u32 cdw10;
- __u32 cdw11;
- __u32 cdw12;
- __u32 cdw13;
- __u32 cdw14;
- __u32 cdw15;
- __u32 timeout_ms;
- __u32 result;
-};
-
-#define NVME_IOCTL_ID _IO('N', 0x40)
-#define NVME_IOCTL_ADMIN_CMD _IOWR('N', 0x41, struct nvme_admin_cmd)
-#define NVME_IOCTL_SUBMIT_IO _IOW('N', 0x42, struct nvme_user_io)
-
-#endif /* _LINUX_NVME_H */
diff --git a/ANDROID_3.4.5/include/linux/nvram.h b/ANDROID_3.4.5/include/linux/nvram.h
deleted file mode 100644
index 9189829c..00000000
--- a/ANDROID_3.4.5/include/linux/nvram.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef _LINUX_NVRAM_H
-#define _LINUX_NVRAM_H
-
-#include <linux/ioctl.h>
-
-/* /dev/nvram ioctls */
-#define NVRAM_INIT _IO('p', 0x40) /* initialize NVRAM and set checksum */
-#define NVRAM_SETCKS _IO('p', 0x41) /* recalculate checksum */
-
-/* for all current systems, this is where NVRAM starts */
-#define NVRAM_FIRST_BYTE 14
-/* all these functions expect an NVRAM offset, not an absolute */
-#define NVRAM_OFFSET(x) ((x)-NVRAM_FIRST_BYTE)
-
-#ifdef __KERNEL__
-/* __foo is foo without grabbing the rtc_lock - get it yourself */
-extern unsigned char __nvram_read_byte(int i);
-extern unsigned char nvram_read_byte(int i);
-extern void __nvram_write_byte(unsigned char c, int i);
-extern void nvram_write_byte(unsigned char c, int i);
-extern int __nvram_check_checksum(void);
-extern int nvram_check_checksum(void);
-#endif
-
-#endif /* _LINUX_NVRAM_H */
diff --git a/ANDROID_3.4.5/include/linux/nwpserial.h b/ANDROID_3.4.5/include/linux/nwpserial.h
deleted file mode 100644
index 9acb2157..00000000
--- a/ANDROID_3.4.5/include/linux/nwpserial.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Serial Port driver for a NWP uart device
- *
- * Copyright (C) 2008 IBM Corp., Benjamin Krill <ben@codiert.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.
- *
- */
-#ifndef _NWPSERIAL_H
-#define _NWPSERIAL_H
-
-int nwpserial_register_port(struct uart_port *port);
-void nwpserial_unregister_port(int line);
-
-#endif /* _NWPSERIAL_H */
diff --git a/ANDROID_3.4.5/include/linux/of.h b/ANDROID_3.4.5/include/linux/of.h
deleted file mode 100644
index fa7fb1d9..00000000
--- a/ANDROID_3.4.5/include/linux/of.h
+++ /dev/null
@@ -1,377 +0,0 @@
-#ifndef _LINUX_OF_H
-#define _LINUX_OF_H
-/*
- * Definitions for talking to the Open Firmware PROM on
- * Power Macintosh and other computers.
- *
- * Copyright (C) 1996-2005 Paul Mackerras.
- *
- * Updates for PPC64 by Peter Bergner & David Engebretsen, IBM Corp.
- * Updates for SPARC64 by David S. Miller
- * Derived from PowerPC and Sparc prom.h files by Stephen Rothwell, IBM Corp.
- *
- * 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 <linux/bitops.h>
-#include <linux/errno.h>
-#include <linux/kref.h>
-#include <linux/mod_devicetable.h>
-#include <linux/spinlock.h>
-
-#include <asm/byteorder.h>
-#include <asm/errno.h>
-
-typedef u32 phandle;
-typedef u32 ihandle;
-
-struct property {
- char *name;
- int length;
- void *value;
- struct property *next;
- unsigned long _flags;
- unsigned int unique_id;
-};
-
-#if defined(CONFIG_SPARC)
-struct of_irq_controller;
-#endif
-
-struct device_node {
- const char *name;
- const char *type;
- phandle phandle;
- char *full_name;
-
- struct property *properties;
- struct property *deadprops; /* removed properties */
- struct device_node *parent;
- struct device_node *child;
- struct device_node *sibling;
- struct device_node *next; /* next device of same type */
- struct device_node *allnext; /* next in list of all nodes */
- struct proc_dir_entry *pde; /* this node's proc directory */
- struct kref kref;
- unsigned long _flags;
- void *data;
-#if defined(CONFIG_SPARC)
- char *path_component_name;
- unsigned int unique_id;
- struct of_irq_controller *irq_trans;
-#endif
-};
-
-#define MAX_PHANDLE_ARGS 8
-struct of_phandle_args {
- struct device_node *np;
- int args_count;
- uint32_t args[MAX_PHANDLE_ARGS];
-};
-
-#ifdef CONFIG_OF_DYNAMIC
-extern struct device_node *of_node_get(struct device_node *node);
-extern void of_node_put(struct device_node *node);
-#else /* CONFIG_OF_DYNAMIC */
-/* Dummy ref counting routines - to be implemented later */
-static inline struct device_node *of_node_get(struct device_node *node)
-{
- return node;
-}
-static inline void of_node_put(struct device_node *node) { }
-#endif /* !CONFIG_OF_DYNAMIC */
-
-#ifdef CONFIG_OF
-
-/* Pointer for first entry in chain of all nodes. */
-extern struct device_node *allnodes;
-extern struct device_node *of_chosen;
-extern struct device_node *of_aliases;
-extern rwlock_t devtree_lock;
-
-static inline bool of_have_populated_dt(void)
-{
- return allnodes != NULL;
-}
-
-static inline bool of_node_is_root(const struct device_node *node)
-{
- return node && (node->parent == NULL);
-}
-
-static inline int of_node_check_flag(struct device_node *n, unsigned long flag)
-{
- return test_bit(flag, &n->_flags);
-}
-
-static inline void of_node_set_flag(struct device_node *n, unsigned long flag)
-{
- set_bit(flag, &n->_flags);
-}
-
-extern struct device_node *of_find_all_nodes(struct device_node *prev);
-
-/*
- * OF address retrieval & translation
- */
-
-/* Helper to read a big number; size is in cells (not bytes) */
-static inline u64 of_read_number(const __be32 *cell, int size)
-{
- u64 r = 0;
- while (size--)
- r = (r << 32) | be32_to_cpu(*(cell++));
- return r;
-}
-
-/* Like of_read_number, but we want an unsigned long result */
-static inline unsigned long of_read_ulong(const __be32 *cell, int size)
-{
- /* toss away upper bits if unsigned long is smaller than u64 */
- return of_read_number(cell, size);
-}
-
-#include <asm/prom.h>
-
-/* Default #address and #size cells. Allow arch asm/prom.h to override */
-#if !defined(OF_ROOT_NODE_ADDR_CELLS_DEFAULT)
-#define OF_ROOT_NODE_ADDR_CELLS_DEFAULT 1
-#define OF_ROOT_NODE_SIZE_CELLS_DEFAULT 1
-#endif
-
-/* Default string compare functions, Allow arch asm/prom.h to override */
-#if !defined(of_compat_cmp)
-#define of_compat_cmp(s1, s2, l) strcasecmp((s1), (s2))
-#define of_prop_cmp(s1, s2) strcmp((s1), (s2))
-#define of_node_cmp(s1, s2) strcasecmp((s1), (s2))
-#endif
-
-/* flag descriptions */
-#define OF_DYNAMIC 1 /* node and properties were allocated via kmalloc */
-#define OF_DETACHED 2 /* node has been detached from the device tree */
-
-#define OF_IS_DYNAMIC(x) test_bit(OF_DYNAMIC, &x->_flags)
-#define OF_MARK_DYNAMIC(x) set_bit(OF_DYNAMIC, &x->_flags)
-
-#define OF_BAD_ADDR ((u64)-1)
-
-#ifndef of_node_to_nid
-static inline int of_node_to_nid(struct device_node *np) { return -1; }
-#define of_node_to_nid of_node_to_nid
-#endif
-
-extern struct device_node *of_find_node_by_name(struct device_node *from,
- const char *name);
-#define for_each_node_by_name(dn, name) \
- for (dn = of_find_node_by_name(NULL, name); dn; \
- dn = of_find_node_by_name(dn, name))
-extern struct device_node *of_find_node_by_type(struct device_node *from,
- const char *type);
-#define for_each_node_by_type(dn, type) \
- for (dn = of_find_node_by_type(NULL, type); dn; \
- dn = of_find_node_by_type(dn, type))
-extern struct device_node *of_find_compatible_node(struct device_node *from,
- const char *type, const char *compat);
-#define for_each_compatible_node(dn, type, compatible) \
- for (dn = of_find_compatible_node(NULL, type, compatible); dn; \
- dn = of_find_compatible_node(dn, type, compatible))
-extern struct device_node *of_find_matching_node(struct device_node *from,
- const struct of_device_id *matches);
-#define for_each_matching_node(dn, matches) \
- for (dn = of_find_matching_node(NULL, matches); dn; \
- dn = of_find_matching_node(dn, matches))
-extern struct device_node *of_find_node_by_path(const char *path);
-extern struct device_node *of_find_node_by_phandle(phandle handle);
-extern struct device_node *of_get_parent(const struct device_node *node);
-extern struct device_node *of_get_next_parent(struct device_node *node);
-extern struct device_node *of_get_next_child(const struct device_node *node,
- struct device_node *prev);
-#define for_each_child_of_node(parent, child) \
- for (child = of_get_next_child(parent, NULL); child != NULL; \
- child = of_get_next_child(parent, child))
-
-extern struct device_node *of_find_node_with_property(
- struct device_node *from, const char *prop_name);
-#define for_each_node_with_property(dn, prop_name) \
- for (dn = of_find_node_with_property(NULL, prop_name); dn; \
- dn = of_find_node_with_property(dn, prop_name))
-
-extern struct property *of_find_property(const struct device_node *np,
- const char *name,
- int *lenp);
-extern int of_property_read_u32_array(const struct device_node *np,
- const char *propname,
- u32 *out_values,
- size_t sz);
-extern int of_property_read_u64(const struct device_node *np,
- const char *propname, u64 *out_value);
-
-extern int of_property_read_string(struct device_node *np,
- const char *propname,
- const char **out_string);
-extern int of_property_read_string_index(struct device_node *np,
- const char *propname,
- int index, const char **output);
-extern int of_property_match_string(struct device_node *np,
- const char *propname,
- const char *string);
-extern int of_property_count_strings(struct device_node *np,
- const char *propname);
-extern int of_device_is_compatible(const struct device_node *device,
- const char *);
-extern int of_device_is_available(const struct device_node *device);
-extern const void *of_get_property(const struct device_node *node,
- const char *name,
- int *lenp);
-#define for_each_property_of_node(dn, pp) \
- for (pp = dn->properties; pp != NULL; pp = pp->next)
-
-extern int of_n_addr_cells(struct device_node *np);
-extern int of_n_size_cells(struct device_node *np);
-extern const struct of_device_id *of_match_node(
- const struct of_device_id *matches, const struct device_node *node);
-extern int of_modalias_node(struct device_node *node, char *modalias, int len);
-extern struct device_node *of_parse_phandle(struct device_node *np,
- const char *phandle_name,
- int index);
-extern int of_parse_phandle_with_args(struct device_node *np,
- const char *list_name, const char *cells_name, int index,
- struct of_phandle_args *out_args);
-
-extern void of_alias_scan(void * (*dt_alloc)(u64 size, u64 align));
-extern int of_alias_get_id(struct device_node *np, const char *stem);
-
-extern int of_machine_is_compatible(const char *compat);
-
-extern int prom_add_property(struct device_node* np, struct property* prop);
-extern int prom_remove_property(struct device_node *np, struct property *prop);
-extern int prom_update_property(struct device_node *np,
- struct property *newprop,
- struct property *oldprop);
-
-#if defined(CONFIG_OF_DYNAMIC)
-/* For updating the device tree at runtime */
-extern void of_attach_node(struct device_node *);
-extern void of_detach_node(struct device_node *);
-#endif
-
-#define of_match_ptr(_ptr) (_ptr)
-#else /* CONFIG_OF */
-
-static inline bool of_have_populated_dt(void)
-{
- return false;
-}
-
-#define for_each_child_of_node(parent, child) \
- while (0)
-
-static inline int of_device_is_compatible(const struct device_node *device,
- const char *name)
-{
- return 0;
-}
-
-static inline struct property *of_find_property(const struct device_node *np,
- const char *name,
- int *lenp)
-{
- return NULL;
-}
-
-static inline struct device_node *of_find_compatible_node(
- struct device_node *from,
- const char *type,
- const char *compat)
-{
- return NULL;
-}
-
-static inline int of_property_read_u32_array(const struct device_node *np,
- const char *propname,
- u32 *out_values, size_t sz)
-{
- return -ENOSYS;
-}
-
-static inline int of_property_read_string(struct device_node *np,
- const char *propname,
- const char **out_string)
-{
- return -ENOSYS;
-}
-
-static inline int of_property_read_string_index(struct device_node *np,
- const char *propname, int index,
- const char **out_string)
-{
- return -ENOSYS;
-}
-
-static inline int of_property_count_strings(struct device_node *np,
- const char *propname)
-{
- return -ENOSYS;
-}
-
-static inline const void *of_get_property(const struct device_node *node,
- const char *name,
- int *lenp)
-{
- return NULL;
-}
-
-static inline int of_property_read_u64(const struct device_node *np,
- const char *propname, u64 *out_value)
-{
- return -ENOSYS;
-}
-
-static inline struct device_node *of_parse_phandle(struct device_node *np,
- const char *phandle_name,
- int index)
-{
- return NULL;
-}
-
-static inline int of_alias_get_id(struct device_node *np, const char *stem)
-{
- return -ENOSYS;
-}
-
-static inline int of_machine_is_compatible(const char *compat)
-{
- return 0;
-}
-
-#define of_match_ptr(_ptr) NULL
-#define of_match_node(_matches, _node) NULL
-#endif /* CONFIG_OF */
-
-/**
- * of_property_read_bool - Findfrom a property
- * @np: device node from which the property value is to be read.
- * @propname: name of the property to be searched.
- *
- * Search for a property in a device node.
- * Returns true if the property exist false otherwise.
- */
-static inline bool of_property_read_bool(const struct device_node *np,
- const char *propname)
-{
- struct property *prop = of_find_property(np, propname, NULL);
-
- return prop ? true : false;
-}
-
-static inline int of_property_read_u32(const struct device_node *np,
- const char *propname,
- u32 *out_value)
-{
- return of_property_read_u32_array(np, propname, out_value, 1);
-}
-
-#endif /* _LINUX_OF_H */
diff --git a/ANDROID_3.4.5/include/linux/of_address.h b/ANDROID_3.4.5/include/linux/of_address.h
deleted file mode 100644
index 01b925ad..00000000
--- a/ANDROID_3.4.5/include/linux/of_address.h
+++ /dev/null
@@ -1,74 +0,0 @@
-#ifndef __OF_ADDRESS_H
-#define __OF_ADDRESS_H
-#include <linux/ioport.h>
-#include <linux/errno.h>
-#include <linux/of.h>
-
-#ifdef CONFIG_OF_ADDRESS
-extern u64 of_translate_address(struct device_node *np, const __be32 *addr);
-extern int of_address_to_resource(struct device_node *dev, int index,
- struct resource *r);
-extern struct device_node *of_find_matching_node_by_address(
- struct device_node *from,
- const struct of_device_id *matches,
- u64 base_address);
-extern void __iomem *of_iomap(struct device_node *device, int index);
-
-/* Extract an address from a device, returns the region size and
- * the address space flags too. The PCI version uses a BAR number
- * instead of an absolute index
- */
-extern const u32 *of_get_address(struct device_node *dev, int index,
- u64 *size, unsigned int *flags);
-
-#ifndef pci_address_to_pio
-static inline unsigned long pci_address_to_pio(phys_addr_t addr) { return -1; }
-#define pci_address_to_pio pci_address_to_pio
-#endif
-
-#else /* CONFIG_OF_ADDRESS */
-static inline int of_address_to_resource(struct device_node *dev, int index,
- struct resource *r)
-{
- return -EINVAL;
-}
-static inline struct device_node *of_find_matching_node_by_address(
- struct device_node *from,
- const struct of_device_id *matches,
- u64 base_address)
-{
- return NULL;
-}
-static inline void __iomem *of_iomap(struct device_node *device, int index)
-{
- return NULL;
-}
-static inline const u32 *of_get_address(struct device_node *dev, int index,
- u64 *size, unsigned int *flags)
-{
- return NULL;
-}
-#endif /* CONFIG_OF_ADDRESS */
-
-
-#if defined(CONFIG_OF_ADDRESS) && defined(CONFIG_PCI)
-extern const __be32 *of_get_pci_address(struct device_node *dev, int bar_no,
- u64 *size, unsigned int *flags);
-extern int of_pci_address_to_resource(struct device_node *dev, int bar,
- struct resource *r);
-#else /* CONFIG_OF_ADDRESS && CONFIG_PCI */
-static inline int of_pci_address_to_resource(struct device_node *dev, int bar,
- struct resource *r)
-{
- return -ENOSYS;
-}
-
-static inline const __be32 *of_get_pci_address(struct device_node *dev,
- int bar_no, u64 *size, unsigned int *flags)
-{
- return NULL;
-}
-#endif /* CONFIG_OF_ADDRESS && CONFIG_PCI */
-
-#endif /* __OF_ADDRESS_H */
-
diff --git a/ANDROID_3.4.5/include/linux/of_device.h b/ANDROID_3.4.5/include/linux/of_device.h
deleted file mode 100644
index 901b7435..00000000
--- a/ANDROID_3.4.5/include/linux/of_device.h
+++ /dev/null
@@ -1,72 +0,0 @@
-#ifndef _LINUX_OF_DEVICE_H
-#define _LINUX_OF_DEVICE_H
-
-#include <linux/platform_device.h>
-#include <linux/of_platform.h> /* temporary until merge */
-
-#ifdef CONFIG_OF_DEVICE
-#include <linux/of.h>
-#include <linux/mod_devicetable.h>
-
-struct device;
-
-extern const struct of_device_id *of_match_device(
- const struct of_device_id *matches, const struct device *dev);
-extern void of_device_make_bus_id(struct device *dev);
-
-/**
- * of_driver_match_device - Tell if a driver's of_match_table matches a device.
- * @drv: the device_driver structure to test
- * @dev: the device structure to match against
- */
-static inline int of_driver_match_device(struct device *dev,
- const struct device_driver *drv)
-{
- return of_match_device(drv->of_match_table, dev) != NULL;
-}
-
-extern struct platform_device *of_dev_get(struct platform_device *dev);
-extern void of_dev_put(struct platform_device *dev);
-
-extern int of_device_add(struct platform_device *pdev);
-extern int of_device_register(struct platform_device *ofdev);
-extern void of_device_unregister(struct platform_device *ofdev);
-
-extern ssize_t of_device_get_modalias(struct device *dev,
- char *str, ssize_t len);
-
-extern void of_device_uevent(struct device *dev, struct kobj_uevent_env *env);
-extern int of_device_uevent_modalias(struct device *dev, struct kobj_uevent_env *env);
-
-static inline void of_device_node_put(struct device *dev)
-{
- of_node_put(dev->of_node);
-}
-
-#else /* CONFIG_OF_DEVICE */
-
-static inline int of_driver_match_device(struct device *dev,
- struct device_driver *drv)
-{
- return 0;
-}
-
-static inline void of_device_uevent(struct device *dev,
- struct kobj_uevent_env *env) { }
-
-static inline int of_device_uevent_modalias(struct device *dev,
- struct kobj_uevent_env *env)
-{
- return -ENODEV;
-}
-
-static inline void of_device_node_put(struct device *dev) { }
-
-static inline const struct of_device_id *of_match_device(
- const struct of_device_id *matches, const struct device *dev)
-{
- return NULL;
-}
-#endif /* CONFIG_OF_DEVICE */
-
-#endif /* _LINUX_OF_DEVICE_H */
diff --git a/ANDROID_3.4.5/include/linux/of_fdt.h b/ANDROID_3.4.5/include/linux/of_fdt.h
deleted file mode 100644
index ed136ad6..00000000
--- a/ANDROID_3.4.5/include/linux/of_fdt.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Definitions for working with the Flattened Device Tree data format
- *
- * Copyright 2009 Benjamin Herrenschmidt, IBM Corp
- * benh@kernel.crashing.org
- *
- * 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.
- */
-
-#ifndef _LINUX_OF_FDT_H
-#define _LINUX_OF_FDT_H
-
-#include <linux/types.h>
-#include <linux/init.h>
-
-/* Definitions used by the flattened device tree */
-#define OF_DT_HEADER 0xd00dfeed /* marker */
-#define OF_DT_BEGIN_NODE 0x1 /* Start of node, full name */
-#define OF_DT_END_NODE 0x2 /* End node */
-#define OF_DT_PROP 0x3 /* Property: name off, size,
- * content */
-#define OF_DT_NOP 0x4 /* nop */
-#define OF_DT_END 0x9
-
-#define OF_DT_VERSION 0x10
-
-#ifndef __ASSEMBLY__
-/*
- * This is what gets passed to the kernel by prom_init or kexec
- *
- * The dt struct contains the device tree structure, full pathes and
- * property contents. The dt strings contain a separate block with just
- * the strings for the property names, and is fully page aligned and
- * self contained in a page, so that it can be kept around by the kernel,
- * each property name appears only once in this page (cheap compression)
- *
- * the mem_rsvmap contains a map of reserved ranges of physical memory,
- * passing it here instead of in the device-tree itself greatly simplifies
- * the job of everybody. It's just a list of u64 pairs (base/size) that
- * ends when size is 0
- */
-struct boot_param_header {
- __be32 magic; /* magic word OF_DT_HEADER */
- __be32 totalsize; /* total size of DT block */
- __be32 off_dt_struct; /* offset to structure */
- __be32 off_dt_strings; /* offset to strings */
- __be32 off_mem_rsvmap; /* offset to memory reserve map */
- __be32 version; /* format version */
- __be32 last_comp_version; /* last compatible version */
- /* version 2 fields below */
- __be32 boot_cpuid_phys; /* Physical CPU id we're booting on */
- /* version 3 fields below */
- __be32 dt_strings_size; /* size of the DT strings block */
- /* version 17 fields below */
- __be32 dt_struct_size; /* size of the DT structure block */
-};
-
-#if defined(CONFIG_OF_FLATTREE)
-
-struct device_node;
-
-/* For scanning an arbitrary device-tree at any time */
-extern char *of_fdt_get_string(struct boot_param_header *blob, u32 offset);
-extern void *of_fdt_get_property(struct boot_param_header *blob,
- unsigned long node,
- const char *name,
- unsigned long *size);
-extern int of_fdt_is_compatible(struct boot_param_header *blob,
- unsigned long node,
- const char *compat);
-extern int of_fdt_match(struct boot_param_header *blob, unsigned long node,
- const char *const *compat);
-extern void of_fdt_unflatten_tree(unsigned long *blob,
- struct device_node **mynodes);
-
-/* TBD: Temporary export of fdt globals - remove when code fully merged */
-extern int __initdata dt_root_addr_cells;
-extern int __initdata dt_root_size_cells;
-extern struct boot_param_header *initial_boot_params;
-
-/* For scanning the flat device-tree at boot time */
-extern char *find_flat_dt_string(u32 offset);
-extern int of_scan_flat_dt(int (*it)(unsigned long node, const char *uname,
- int depth, void *data),
- void *data);
-extern void *of_get_flat_dt_prop(unsigned long node, const char *name,
- unsigned long *size);
-extern int of_flat_dt_is_compatible(unsigned long node, const char *name);
-extern int of_flat_dt_match(unsigned long node, const char *const *matches);
-extern unsigned long of_get_flat_dt_root(void);
-
-extern int early_init_dt_scan_chosen(unsigned long node, const char *uname,
- int depth, void *data);
-extern void early_init_dt_check_for_initrd(unsigned long node);
-extern int early_init_dt_scan_memory(unsigned long node, const char *uname,
- int depth, void *data);
-extern void early_init_dt_add_memory_arch(u64 base, u64 size);
-extern void * early_init_dt_alloc_memory_arch(u64 size, u64 align);
-extern u64 dt_mem_next_cell(int s, __be32 **cellp);
-
-/*
- * If BLK_DEV_INITRD, the fdt early init code will call this function,
- * to be provided by the arch code. start and end are specified as
- * physical addresses.
- */
-#ifdef CONFIG_BLK_DEV_INITRD
-extern void early_init_dt_setup_initrd_arch(unsigned long start,
- unsigned long end);
-#endif
-
-/* Early flat tree scan hooks */
-extern int early_init_dt_scan_root(unsigned long node, const char *uname,
- int depth, void *data);
-
-/* Other Prototypes */
-extern void unflatten_device_tree(void);
-extern void early_init_devtree(void *);
-#else /* CONFIG_OF_FLATTREE */
-static inline void unflatten_device_tree(void) {}
-#endif /* CONFIG_OF_FLATTREE */
-
-#endif /* __ASSEMBLY__ */
-#endif /* _LINUX_OF_FDT_H */
diff --git a/ANDROID_3.4.5/include/linux/of_gpio.h b/ANDROID_3.4.5/include/linux/of_gpio.h
deleted file mode 100644
index 81733d12..00000000
--- a/ANDROID_3.4.5/include/linux/of_gpio.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * OF helpers for the GPIO API
- *
- * Copyright (c) 2007-2008 MontaVista Software, Inc.
- *
- * Author: Anton Vorontsov <avorontsov@ru.mvista.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 __LINUX_OF_GPIO_H
-#define __LINUX_OF_GPIO_H
-
-#include <linux/compiler.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/gpio.h>
-#include <linux/of.h>
-
-struct device_node;
-
-/*
- * This is Linux-specific flags. By default controllers' and Linux' mapping
- * match, but GPIO controllers are free to translate their own flags to
- * Linux-specific in their .xlate callback. Though, 1:1 mapping is recommended.
- */
-enum of_gpio_flags {
- OF_GPIO_ACTIVE_LOW = 0x1,
-};
-
-#ifdef CONFIG_OF_GPIO
-
-/*
- * OF GPIO chip for memory mapped banks
- */
-struct of_mm_gpio_chip {
- struct gpio_chip gc;
- void (*save_regs)(struct of_mm_gpio_chip *mm_gc);
- void __iomem *regs;
-};
-
-static inline struct of_mm_gpio_chip *to_of_mm_gpio_chip(struct gpio_chip *gc)
-{
- return container_of(gc, struct of_mm_gpio_chip, gc);
-}
-
-extern int of_get_named_gpio_flags(struct device_node *np,
- const char *list_name, int index, enum of_gpio_flags *flags);
-
-extern unsigned int of_gpio_named_count(struct device_node *np,
- const char* propname);
-
-extern int of_mm_gpiochip_add(struct device_node *np,
- struct of_mm_gpio_chip *mm_gc);
-
-extern void of_gpiochip_add(struct gpio_chip *gc);
-extern void of_gpiochip_remove(struct gpio_chip *gc);
-extern struct gpio_chip *of_node_to_gpiochip(struct device_node *np);
-extern int of_gpio_simple_xlate(struct gpio_chip *gc,
- const struct of_phandle_args *gpiospec,
- u32 *flags);
-
-#else /* CONFIG_OF_GPIO */
-
-/* Drivers may not strictly depend on the GPIO support, so let them link. */
-static inline int of_get_named_gpio_flags(struct device_node *np,
- const char *list_name, int index, enum of_gpio_flags *flags)
-{
- return -ENOSYS;
-}
-
-static inline unsigned int of_gpio_named_count(struct device_node *np,
- const char* propname)
-{
- return 0;
-}
-
-static inline int of_gpio_simple_xlate(struct gpio_chip *gc,
- const struct of_phandle_args *gpiospec,
- u32 *flags)
-{
- return -ENOSYS;
-}
-
-static inline void of_gpiochip_add(struct gpio_chip *gc) { }
-static inline void of_gpiochip_remove(struct gpio_chip *gc) { }
-
-#endif /* CONFIG_OF_GPIO */
-
-/**
- * of_gpio_count - Count GPIOs for a device
- * @np: device node to count GPIOs for
- *
- * The function returns the count of GPIOs specified for a node.
- *
- * Note that the empty GPIO specifiers counts too. For example,
- *
- * gpios = <0
- * &pio1 1 2
- * 0
- * &pio2 3 4>;
- *
- * defines four GPIOs (so this function will return 4), two of which
- * are not specified.
- */
-static inline unsigned int of_gpio_count(struct device_node *np)
-{
- return of_gpio_named_count(np, "gpios");
-}
-
-/**
- * of_get_gpio_flags() - Get a GPIO number and flags to use with GPIO API
- * @np: device node to get GPIO from
- * @index: index of the GPIO
- * @flags: a flags pointer to fill in
- *
- * Returns GPIO number to use with Linux generic GPIO API, or one of the errno
- * value on the error condition. If @flags is not NULL the function also fills
- * in flags for the GPIO.
- */
-static inline int of_get_gpio_flags(struct device_node *np, int index,
- enum of_gpio_flags *flags)
-{
- return of_get_named_gpio_flags(np, "gpios", index, flags);
-}
-
-/**
- * of_get_named_gpio() - Get a GPIO number to use with GPIO API
- * @np: device node to get GPIO from
- * @propname: Name of property containing gpio specifier(s)
- * @index: index of the GPIO
- *
- * Returns GPIO number to use with Linux generic GPIO API, or one of the errno
- * value on the error condition.
- */
-static inline int of_get_named_gpio(struct device_node *np,
- const char *propname, int index)
-{
- return of_get_named_gpio_flags(np, propname, index, NULL);
-}
-
-/**
- * of_get_gpio() - Get a GPIO number to use with GPIO API
- * @np: device node to get GPIO from
- * @index: index of the GPIO
- *
- * Returns GPIO number to use with Linux generic GPIO API, or one of the errno
- * value on the error condition.
- */
-static inline int of_get_gpio(struct device_node *np, int index)
-{
- return of_get_gpio_flags(np, index, NULL);
-}
-
-#endif /* __LINUX_OF_GPIO_H */
diff --git a/ANDROID_3.4.5/include/linux/of_i2c.h b/ANDROID_3.4.5/include/linux/of_i2c.h
deleted file mode 100644
index 0efe8d46..00000000
--- a/ANDROID_3.4.5/include/linux/of_i2c.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Generic I2C API implementation for PowerPC.
- *
- * Copyright (c) 2008 Jochen Friedrich <jochen@scram.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.
- */
-
-#ifndef __LINUX_OF_I2C_H
-#define __LINUX_OF_I2C_H
-
-#if defined(CONFIG_OF_I2C) || defined(CONFIG_OF_I2C_MODULE)
-#include <linux/i2c.h>
-
-extern void of_i2c_register_devices(struct i2c_adapter *adap);
-
-/* must call put_device() when done with returned i2c_client device */
-extern struct i2c_client *of_find_i2c_device_by_node(struct device_node *node);
-
-#else
-static inline void of_i2c_register_devices(struct i2c_adapter *adap)
-{
- return;
-}
-#endif /* CONFIG_OF_I2C */
-
-#endif /* __LINUX_OF_I2C_H */
diff --git a/ANDROID_3.4.5/include/linux/of_irq.h b/ANDROID_3.4.5/include/linux/of_irq.h
deleted file mode 100644
index d229ad3e..00000000
--- a/ANDROID_3.4.5/include/linux/of_irq.h
+++ /dev/null
@@ -1,80 +0,0 @@
-#ifndef __OF_IRQ_H
-#define __OF_IRQ_H
-
-#if defined(CONFIG_OF)
-struct of_irq;
-#include <linux/types.h>
-#include <linux/errno.h>
-#include <linux/irq.h>
-#include <linux/irqdomain.h>
-#include <linux/ioport.h>
-#include <linux/of.h>
-
-/*
- * irq_of_parse_and_map() is used ba all OF enabled platforms; but SPARC
- * implements it differently. However, the prototype is the same for all,
- * so declare it here regardless of the CONFIG_OF_IRQ setting.
- */
-extern unsigned int irq_of_parse_and_map(struct device_node *node, int index);
-
-#if defined(CONFIG_OF_IRQ)
-/**
- * of_irq - container for device_node/irq_specifier pair for an irq controller
- * @controller: pointer to interrupt controller device tree node
- * @size: size of interrupt specifier
- * @specifier: array of cells @size long specifing the specific interrupt
- *
- * This structure is returned when an interrupt is mapped. The controller
- * field needs to be put() after use
- */
-#define OF_MAX_IRQ_SPEC 4 /* We handle specifiers of at most 4 cells */
-struct of_irq {
- struct device_node *controller; /* Interrupt controller node */
- u32 size; /* Specifier size */
- u32 specifier[OF_MAX_IRQ_SPEC]; /* Specifier copy */
-};
-
-typedef int (*of_irq_init_cb_t)(struct device_node *, struct device_node *);
-
-/*
- * Workarounds only applied to 32bit powermac machines
- */
-#define OF_IMAP_OLDWORLD_MAC 0x00000001
-#define OF_IMAP_NO_PHANDLE 0x00000002
-
-#if defined(CONFIG_PPC32) && defined(CONFIG_PPC_PMAC)
-extern unsigned int of_irq_workarounds;
-extern struct device_node *of_irq_dflt_pic;
-extern int of_irq_map_oldworld(struct device_node *device, int index,
- struct of_irq *out_irq);
-#else /* CONFIG_PPC32 && CONFIG_PPC_PMAC */
-#define of_irq_workarounds (0)
-#define of_irq_dflt_pic (NULL)
-static inline int of_irq_map_oldworld(struct device_node *device, int index,
- struct of_irq *out_irq)
-{
- return -EINVAL;
-}
-#endif /* CONFIG_PPC32 && CONFIG_PPC_PMAC */
-
-
-extern int of_irq_map_raw(struct device_node *parent, const u32 *intspec,
- u32 ointsize, const u32 *addr,
- struct of_irq *out_irq);
-extern int of_irq_map_one(struct device_node *device, int index,
- struct of_irq *out_irq);
-extern unsigned int irq_create_of_mapping(struct device_node *controller,
- const u32 *intspec,
- unsigned int intsize);
-extern int of_irq_to_resource(struct device_node *dev, int index,
- struct resource *r);
-extern int of_irq_count(struct device_node *dev);
-extern int of_irq_to_resource_table(struct device_node *dev,
- struct resource *res, int nr_irqs);
-extern struct device_node *of_irq_find_parent(struct device_node *child);
-
-extern void of_irq_init(const struct of_device_id *matches);
-
-#endif /* CONFIG_OF_IRQ */
-#endif /* CONFIG_OF */
-#endif /* __OF_IRQ_H */
diff --git a/ANDROID_3.4.5/include/linux/of_mdio.h b/ANDROID_3.4.5/include/linux/of_mdio.h
deleted file mode 100644
index 53b94e02..00000000
--- a/ANDROID_3.4.5/include/linux/of_mdio.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * OF helpers for the MDIO (Ethernet PHY) API
- *
- * Copyright (c) 2009 Secret Lab Technologies, Ltd.
- *
- * This file is released under the GPLv2
- */
-
-#ifndef __LINUX_OF_MDIO_H
-#define __LINUX_OF_MDIO_H
-
-#include <linux/phy.h>
-#include <linux/of.h>
-
-extern int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np);
-extern struct phy_device *of_phy_find_device(struct device_node *phy_np);
-extern struct phy_device *of_phy_connect(struct net_device *dev,
- struct device_node *phy_np,
- void (*hndlr)(struct net_device *),
- u32 flags, phy_interface_t iface);
-extern struct phy_device *of_phy_connect_fixed_link(struct net_device *dev,
- void (*hndlr)(struct net_device *),
- phy_interface_t iface);
-
-#endif /* __LINUX_OF_MDIO_H */
diff --git a/ANDROID_3.4.5/include/linux/of_mtd.h b/ANDROID_3.4.5/include/linux/of_mtd.h
deleted file mode 100644
index bae1b609..00000000
--- a/ANDROID_3.4.5/include/linux/of_mtd.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * Copyright 2012 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
- *
- * OF helpers for mtd.
- *
- * This file is released under the GPLv2
- */
-
-#ifndef __LINUX_OF_MTD_H
-#define __LINUX_OF_NET_H
-
-#ifdef CONFIG_OF_MTD
-#include <linux/of.h>
-extern const int of_get_nand_ecc_mode(struct device_node *np);
-int of_get_nand_bus_width(struct device_node *np);
-bool of_get_nand_on_flash_bbt(struct device_node *np);
-#endif
-
-#endif /* __LINUX_OF_MTD_H */
diff --git a/ANDROID_3.4.5/include/linux/of_net.h b/ANDROID_3.4.5/include/linux/of_net.h
deleted file mode 100644
index f4746418..00000000
--- a/ANDROID_3.4.5/include/linux/of_net.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * OF helpers for network devices.
- *
- * This file is released under the GPLv2
- */
-
-#ifndef __LINUX_OF_NET_H
-#define __LINUX_OF_NET_H
-
-#ifdef CONFIG_OF_NET
-#include <linux/of.h>
-extern const int of_get_phy_mode(struct device_node *np);
-extern const void *of_get_mac_address(struct device_node *np);
-#endif
-
-#endif /* __LINUX_OF_NET_H */
diff --git a/ANDROID_3.4.5/include/linux/of_pci.h b/ANDROID_3.4.5/include/linux/of_pci.h
deleted file mode 100644
index f93e2170..00000000
--- a/ANDROID_3.4.5/include/linux/of_pci.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef __OF_PCI_H
-#define __OF_PCI_H
-
-#include <linux/pci.h>
-
-struct pci_dev;
-struct of_irq;
-int of_irq_map_pci(struct pci_dev *pdev, struct of_irq *out_irq);
-
-struct device_node;
-struct device_node *of_pci_find_child_device(struct device_node *parent,
- unsigned int devfn);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/of_pdt.h b/ANDROID_3.4.5/include/linux/of_pdt.h
deleted file mode 100644
index c65a18a0..00000000
--- a/ANDROID_3.4.5/include/linux/of_pdt.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Definitions for building a device tree by calling into the
- * Open Firmware PROM.
- *
- * Copyright (C) 2010 Andres Salomon <dilinger@queued.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.
- */
-
-#ifndef _LINUX_OF_PDT_H
-#define _LINUX_OF_PDT_H
-
-/* overridable operations for calling into the PROM */
-struct of_pdt_ops {
- /*
- * buf should be 32 bytes; return 0 on success.
- * If prev is NULL, the first property will be returned.
- */
- int (*nextprop)(phandle node, char *prev, char *buf);
-
- /* for both functions, return proplen on success; -1 on error */
- int (*getproplen)(phandle node, const char *prop);
- int (*getproperty)(phandle node, const char *prop, char *buf,
- int bufsize);
-
- /* phandles are 0 if no child or sibling exists */
- phandle (*getchild)(phandle parent);
- phandle (*getsibling)(phandle node);
-
- /* return 0 on success; fill in 'len' with number of bytes in path */
- int (*pkg2path)(phandle node, char *buf, const int buflen, int *len);
-};
-
-extern void *prom_early_alloc(unsigned long size);
-
-/* for building the device tree */
-extern void of_pdt_build_devicetree(phandle root_node, struct of_pdt_ops *ops);
-
-extern void (*of_pdt_build_more)(struct device_node *dp,
- struct device_node ***nextp);
-
-#endif /* _LINUX_OF_PDT_H */
diff --git a/ANDROID_3.4.5/include/linux/of_platform.h b/ANDROID_3.4.5/include/linux/of_platform.h
deleted file mode 100644
index b47d2040..00000000
--- a/ANDROID_3.4.5/include/linux/of_platform.h
+++ /dev/null
@@ -1,112 +0,0 @@
-#ifndef _LINUX_OF_PLATFORM_H
-#define _LINUX_OF_PLATFORM_H
-/*
- * Copyright (C) 2006 Benjamin Herrenschmidt, IBM Corp.
- * <benh@kernel.crashing.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.
- *
- */
-
-#ifdef CONFIG_OF_DEVICE
-#include <linux/device.h>
-#include <linux/mod_devicetable.h>
-#include <linux/pm.h>
-#include <linux/of_device.h>
-#include <linux/platform_device.h>
-
-/**
- * struct of_dev_auxdata - lookup table entry for device names & platform_data
- * @compatible: compatible value of node to match against node
- * @phys_addr: Start address of registers to match against node
- * @name: Name to assign for matching nodes
- * @platform_data: platform_data to assign for matching nodes
- *
- * This lookup table allows the caller of of_platform_populate() to override
- * the names of devices when creating devices from the device tree. The table
- * should be terminated with an empty entry. It also allows the platform_data
- * pointer to be set.
- *
- * The reason for this functionality is that some Linux infrastructure uses
- * the device name to look up a specific device, but the Linux-specific names
- * are not encoded into the device tree, so the kernel needs to provide specific
- * values.
- *
- * Note: Using an auxdata lookup table should be considered a last resort when
- * converting a platform to use the DT. Normally the automatically generated
- * device name will not matter, and drivers should obtain data from the device
- * node instead of from an anonymouns platform_data pointer.
- */
-struct of_dev_auxdata {
- char *compatible;
- resource_size_t phys_addr;
- char *name;
- void *platform_data;
-};
-
-/* Macro to simplify populating a lookup table */
-#define OF_DEV_AUXDATA(_compat,_phys,_name,_pdata) \
- { .compatible = _compat, .phys_addr = _phys, .name = _name, \
- .platform_data = _pdata }
-
-/**
- * of_platform_driver - Legacy of-aware driver for platform devices.
- *
- * An of_platform_driver driver is attached to a basic platform_device on
- * the ibm ebus (ibmebus_bus_type).
- */
-struct of_platform_driver
-{
- int (*probe)(struct platform_device* dev,
- const struct of_device_id *match);
- int (*remove)(struct platform_device* dev);
-
- int (*suspend)(struct platform_device* dev, pm_message_t state);
- int (*resume)(struct platform_device* dev);
- int (*shutdown)(struct platform_device* dev);
-
- struct device_driver driver;
-};
-#define to_of_platform_driver(drv) \
- container_of(drv,struct of_platform_driver, driver)
-
-extern const struct of_device_id of_default_bus_match_table[];
-
-/* Platform drivers register/unregister */
-extern struct platform_device *of_device_alloc(struct device_node *np,
- const char *bus_id,
- struct device *parent);
-extern struct platform_device *of_find_device_by_node(struct device_node *np);
-
-#ifdef CONFIG_OF_ADDRESS /* device reg helpers depend on OF_ADDRESS */
-/* Platform devices and busses creation */
-extern struct platform_device *of_platform_device_create(struct device_node *np,
- const char *bus_id,
- struct device *parent);
-
-extern int of_platform_bus_probe(struct device_node *root,
- const struct of_device_id *matches,
- struct device *parent);
-extern int of_platform_populate(struct device_node *root,
- const struct of_device_id *matches,
- const struct of_dev_auxdata *lookup,
- struct device *parent);
-#endif /* CONFIG_OF_ADDRESS */
-
-#endif /* CONFIG_OF_DEVICE */
-
-#if !defined(CONFIG_OF_ADDRESS)
-struct of_dev_auxdata;
-static inline int of_platform_populate(struct device_node *root,
- const struct of_device_id *matches,
- const struct of_dev_auxdata *lookup,
- struct device *parent)
-{
- return -ENODEV;
-}
-#endif /* !CONFIG_OF_ADDRESS */
-
-#endif /* _LINUX_OF_PLATFORM_H */
diff --git a/ANDROID_3.4.5/include/linux/of_spi.h b/ANDROID_3.4.5/include/linux/of_spi.h
deleted file mode 100644
index 9e3e70f7..00000000
--- a/ANDROID_3.4.5/include/linux/of_spi.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * OpenFirmware SPI support routines
- * Copyright (C) 2008 Secret Lab Technologies Ltd.
- *
- * Support routines for deriving SPI device attachments from the device
- * tree.
- */
-
-#ifndef __LINUX_OF_SPI_H
-#define __LINUX_OF_SPI_H
-
-#include <linux/spi/spi.h>
-
-#if defined(CONFIG_OF_SPI) || defined(CONFIG_OF_SPI_MODULE)
-extern void of_register_spi_devices(struct spi_master *master);
-#else
-static inline void of_register_spi_devices(struct spi_master *master)
-{
- return;
-}
-#endif /* CONFIG_OF_SPI */
-
-#endif /* __LINUX_OF_SPI */
diff --git a/ANDROID_3.4.5/include/linux/omap3isp.h b/ANDROID_3.4.5/include/linux/omap3isp.h
deleted file mode 100644
index c73a34c3..00000000
--- a/ANDROID_3.4.5/include/linux/omap3isp.h
+++ /dev/null
@@ -1,644 +0,0 @@
-/*
- * omap3isp.h
- *
- * TI OMAP3 ISP - User-space API
- *
- * Copyright (C) 2010 Nokia Corporation
- * Copyright (C) 2009 Texas Instruments, Inc.
- *
- * Contacts: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
- * Sakari Ailus <sakari.ailus@iki.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.
- *
- * 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 OMAP3_ISP_USER_H
-#define OMAP3_ISP_USER_H
-
-#include <linux/types.h>
-
-/*
- * Private IOCTLs
- *
- * VIDIOC_OMAP3ISP_CCDC_CFG: Set CCDC configuration
- * VIDIOC_OMAP3ISP_PRV_CFG: Set preview engine configuration
- * VIDIOC_OMAP3ISP_AEWB_CFG: Set AEWB module configuration
- * VIDIOC_OMAP3ISP_HIST_CFG: Set histogram module configuration
- * VIDIOC_OMAP3ISP_AF_CFG: Set auto-focus module configuration
- * VIDIOC_OMAP3ISP_STAT_REQ: Read statistics (AEWB/AF/histogram) data
- * VIDIOC_OMAP3ISP_STAT_EN: Enable/disable a statistics module
- */
-
-#define VIDIOC_OMAP3ISP_CCDC_CFG \
- _IOWR('V', BASE_VIDIOC_PRIVATE + 1, struct omap3isp_ccdc_update_config)
-#define VIDIOC_OMAP3ISP_PRV_CFG \
- _IOWR('V', BASE_VIDIOC_PRIVATE + 2, struct omap3isp_prev_update_config)
-#define VIDIOC_OMAP3ISP_AEWB_CFG \
- _IOWR('V', BASE_VIDIOC_PRIVATE + 3, struct omap3isp_h3a_aewb_config)
-#define VIDIOC_OMAP3ISP_HIST_CFG \
- _IOWR('V', BASE_VIDIOC_PRIVATE + 4, struct omap3isp_hist_config)
-#define VIDIOC_OMAP3ISP_AF_CFG \
- _IOWR('V', BASE_VIDIOC_PRIVATE + 5, struct omap3isp_h3a_af_config)
-#define VIDIOC_OMAP3ISP_STAT_REQ \
- _IOWR('V', BASE_VIDIOC_PRIVATE + 6, struct omap3isp_stat_data)
-#define VIDIOC_OMAP3ISP_STAT_EN \
- _IOWR('V', BASE_VIDIOC_PRIVATE + 7, unsigned long)
-
-/*
- * Events
- *
- * V4L2_EVENT_OMAP3ISP_AEWB: AEWB statistics data ready
- * V4L2_EVENT_OMAP3ISP_AF: AF statistics data ready
- * V4L2_EVENT_OMAP3ISP_HIST: Histogram statistics data ready
- */
-
-#define V4L2_EVENT_OMAP3ISP_CLASS (V4L2_EVENT_PRIVATE_START | 0x100)
-#define V4L2_EVENT_OMAP3ISP_AEWB (V4L2_EVENT_OMAP3ISP_CLASS | 0x1)
-#define V4L2_EVENT_OMAP3ISP_AF (V4L2_EVENT_OMAP3ISP_CLASS | 0x2)
-#define V4L2_EVENT_OMAP3ISP_HIST (V4L2_EVENT_OMAP3ISP_CLASS | 0x3)
-
-struct omap3isp_stat_event_status {
- __u32 frame_number;
- __u16 config_counter;
- __u8 buf_err;
-};
-
-/* AE/AWB related structures and flags*/
-
-/* H3A Range Constants */
-#define OMAP3ISP_AEWB_MAX_SATURATION_LIM 1023
-#define OMAP3ISP_AEWB_MIN_WIN_H 2
-#define OMAP3ISP_AEWB_MAX_WIN_H 256
-#define OMAP3ISP_AEWB_MIN_WIN_W 6
-#define OMAP3ISP_AEWB_MAX_WIN_W 256
-#define OMAP3ISP_AEWB_MIN_WINVC 1
-#define OMAP3ISP_AEWB_MIN_WINHC 1
-#define OMAP3ISP_AEWB_MAX_WINVC 128
-#define OMAP3ISP_AEWB_MAX_WINHC 36
-#define OMAP3ISP_AEWB_MAX_WINSTART 4095
-#define OMAP3ISP_AEWB_MIN_SUB_INC 2
-#define OMAP3ISP_AEWB_MAX_SUB_INC 32
-#define OMAP3ISP_AEWB_MAX_BUF_SIZE 83600
-
-#define OMAP3ISP_AF_IIRSH_MIN 0
-#define OMAP3ISP_AF_IIRSH_MAX 4095
-#define OMAP3ISP_AF_PAXEL_HORIZONTAL_COUNT_MIN 1
-#define OMAP3ISP_AF_PAXEL_HORIZONTAL_COUNT_MAX 36
-#define OMAP3ISP_AF_PAXEL_VERTICAL_COUNT_MIN 1
-#define OMAP3ISP_AF_PAXEL_VERTICAL_COUNT_MAX 128
-#define OMAP3ISP_AF_PAXEL_INCREMENT_MIN 2
-#define OMAP3ISP_AF_PAXEL_INCREMENT_MAX 32
-#define OMAP3ISP_AF_PAXEL_HEIGHT_MIN 2
-#define OMAP3ISP_AF_PAXEL_HEIGHT_MAX 256
-#define OMAP3ISP_AF_PAXEL_WIDTH_MIN 16
-#define OMAP3ISP_AF_PAXEL_WIDTH_MAX 256
-#define OMAP3ISP_AF_PAXEL_HZSTART_MIN 1
-#define OMAP3ISP_AF_PAXEL_HZSTART_MAX 4095
-#define OMAP3ISP_AF_PAXEL_VTSTART_MIN 0
-#define OMAP3ISP_AF_PAXEL_VTSTART_MAX 4095
-#define OMAP3ISP_AF_THRESHOLD_MAX 255
-#define OMAP3ISP_AF_COEF_MAX 4095
-#define OMAP3ISP_AF_PAXEL_SIZE 48
-#define OMAP3ISP_AF_MAX_BUF_SIZE 221184
-
-/**
- * struct omap3isp_h3a_aewb_config - AE AWB configuration reset values
- * saturation_limit: Saturation limit.
- * @win_height: Window Height. Range 2 - 256, even values only.
- * @win_width: Window Width. Range 6 - 256, even values only.
- * @ver_win_count: Vertical Window Count. Range 1 - 128.
- * @hor_win_count: Horizontal Window Count. Range 1 - 36.
- * @ver_win_start: Vertical Window Start. Range 0 - 4095.
- * @hor_win_start: Horizontal Window Start. Range 0 - 4095.
- * @blk_ver_win_start: Black Vertical Windows Start. Range 0 - 4095.
- * @blk_win_height: Black Window Height. Range 2 - 256, even values only.
- * @subsample_ver_inc: Subsample Vertical points increment Range 2 - 32, even
- * values only.
- * @subsample_hor_inc: Subsample Horizontal points increment Range 2 - 32, even
- * values only.
- * @alaw_enable: AEW ALAW EN flag.
- */
-struct omap3isp_h3a_aewb_config {
- /*
- * Common fields.
- * They should be the first ones and must be in the same order as in
- * ispstat_generic_config struct.
- */
- __u32 buf_size;
- __u16 config_counter;
-
- /* Private fields */
- __u16 saturation_limit;
- __u16 win_height;
- __u16 win_width;
- __u16 ver_win_count;
- __u16 hor_win_count;
- __u16 ver_win_start;
- __u16 hor_win_start;
- __u16 blk_ver_win_start;
- __u16 blk_win_height;
- __u16 subsample_ver_inc;
- __u16 subsample_hor_inc;
- __u8 alaw_enable;
-};
-
-/**
- * struct omap3isp_stat_data - Statistic data sent to or received from user
- * @ts: Timestamp of returned framestats.
- * @buf: Pointer to pass to user.
- * @frame_number: Frame number of requested stats.
- * @cur_frame: Current frame number being processed.
- * @config_counter: Number of the configuration associated with the data.
- */
-struct omap3isp_stat_data {
- struct timeval ts;
- void __user *buf;
- __u32 buf_size;
- __u16 frame_number;
- __u16 cur_frame;
- __u16 config_counter;
-};
-
-
-/* Histogram related structs */
-
-/* Flags for number of bins */
-#define OMAP3ISP_HIST_BINS_32 0
-#define OMAP3ISP_HIST_BINS_64 1
-#define OMAP3ISP_HIST_BINS_128 2
-#define OMAP3ISP_HIST_BINS_256 3
-
-/* Number of bins * 4 colors * 4-bytes word */
-#define OMAP3ISP_HIST_MEM_SIZE_BINS(n) ((1 << ((n)+5))*4*4)
-
-#define OMAP3ISP_HIST_MEM_SIZE 1024
-#define OMAP3ISP_HIST_MIN_REGIONS 1
-#define OMAP3ISP_HIST_MAX_REGIONS 4
-#define OMAP3ISP_HIST_MAX_WB_GAIN 255
-#define OMAP3ISP_HIST_MIN_WB_GAIN 0
-#define OMAP3ISP_HIST_MAX_BIT_WIDTH 14
-#define OMAP3ISP_HIST_MIN_BIT_WIDTH 8
-#define OMAP3ISP_HIST_MAX_WG 4
-#define OMAP3ISP_HIST_MAX_BUF_SIZE 4096
-
-/* Source */
-#define OMAP3ISP_HIST_SOURCE_CCDC 0
-#define OMAP3ISP_HIST_SOURCE_MEM 1
-
-/* CFA pattern */
-#define OMAP3ISP_HIST_CFA_BAYER 0
-#define OMAP3ISP_HIST_CFA_FOVEONX3 1
-
-struct omap3isp_hist_region {
- __u16 h_start;
- __u16 h_end;
- __u16 v_start;
- __u16 v_end;
-};
-
-struct omap3isp_hist_config {
- /*
- * Common fields.
- * They should be the first ones and must be in the same order as in
- * ispstat_generic_config struct.
- */
- __u32 buf_size;
- __u16 config_counter;
-
- __u8 num_acc_frames; /* Num of image frames to be processed and
- accumulated for each histogram frame */
- __u16 hist_bins; /* number of bins: 32, 64, 128, or 256 */
- __u8 cfa; /* BAYER or FOVEON X3 */
- __u8 wg[OMAP3ISP_HIST_MAX_WG]; /* White Balance Gain */
- __u8 num_regions; /* number of regions to be configured */
- struct omap3isp_hist_region region[OMAP3ISP_HIST_MAX_REGIONS];
-};
-
-/* Auto Focus related structs */
-
-#define OMAP3ISP_AF_NUM_COEF 11
-
-enum omap3isp_h3a_af_fvmode {
- OMAP3ISP_AF_MODE_SUMMED = 0,
- OMAP3ISP_AF_MODE_PEAK = 1
-};
-
-/* Red, Green, and blue pixel location in the AF windows */
-enum omap3isp_h3a_af_rgbpos {
- OMAP3ISP_AF_GR_GB_BAYER = 0, /* GR and GB as Bayer pattern */
- OMAP3ISP_AF_RG_GB_BAYER = 1, /* RG and GB as Bayer pattern */
- OMAP3ISP_AF_GR_BG_BAYER = 2, /* GR and BG as Bayer pattern */
- OMAP3ISP_AF_RG_BG_BAYER = 3, /* RG and BG as Bayer pattern */
- OMAP3ISP_AF_GG_RB_CUSTOM = 4, /* GG and RB as custom pattern */
- OMAP3ISP_AF_RB_GG_CUSTOM = 5 /* RB and GG as custom pattern */
-};
-
-/* Contains the information regarding the Horizontal Median Filter */
-struct omap3isp_h3a_af_hmf {
- __u8 enable; /* Status of Horizontal Median Filter */
- __u8 threshold; /* Threshold Value for Horizontal Median Filter */
-};
-
-/* Contains the information regarding the IIR Filters */
-struct omap3isp_h3a_af_iir {
- __u16 h_start; /* IIR horizontal start */
- __u16 coeff_set0[OMAP3ISP_AF_NUM_COEF]; /* Filter coefficient, set 0 */
- __u16 coeff_set1[OMAP3ISP_AF_NUM_COEF]; /* Filter coefficient, set 1 */
-};
-
-/* Contains the information regarding the Paxels Structure in AF Engine */
-struct omap3isp_h3a_af_paxel {
- __u16 h_start; /* Horizontal Start Position */
- __u16 v_start; /* Vertical Start Position */
- __u8 width; /* Width of the Paxel */
- __u8 height; /* Height of the Paxel */
- __u8 h_cnt; /* Horizontal Count */
- __u8 v_cnt; /* vertical Count */
- __u8 line_inc; /* Line Increment */
-};
-
-/* Contains the parameters required for hardware set up of AF Engine */
-struct omap3isp_h3a_af_config {
- /*
- * Common fields.
- * They should be the first ones and must be in the same order as in
- * ispstat_generic_config struct.
- */
- __u32 buf_size;
- __u16 config_counter;
-
- struct omap3isp_h3a_af_hmf hmf; /* HMF configurations */
- struct omap3isp_h3a_af_iir iir; /* IIR filter configurations */
- struct omap3isp_h3a_af_paxel paxel; /* Paxel parameters */
- enum omap3isp_h3a_af_rgbpos rgb_pos; /* RGB Positions */
- enum omap3isp_h3a_af_fvmode fvmode; /* Accumulator mode */
- __u8 alaw_enable; /* AF ALAW status */
-};
-
-/* ISP CCDC structs */
-
-/* Abstraction layer CCDC configurations */
-#define OMAP3ISP_CCDC_ALAW (1 << 0)
-#define OMAP3ISP_CCDC_LPF (1 << 1)
-#define OMAP3ISP_CCDC_BLCLAMP (1 << 2)
-#define OMAP3ISP_CCDC_BCOMP (1 << 3)
-#define OMAP3ISP_CCDC_FPC (1 << 4)
-#define OMAP3ISP_CCDC_CULL (1 << 5)
-#define OMAP3ISP_CCDC_CONFIG_LSC (1 << 7)
-#define OMAP3ISP_CCDC_TBL_LSC (1 << 8)
-
-#define OMAP3ISP_RGB_MAX 3
-
-/* Enumeration constants for Alaw input width */
-enum omap3isp_alaw_ipwidth {
- OMAP3ISP_ALAW_BIT12_3 = 0x3,
- OMAP3ISP_ALAW_BIT11_2 = 0x4,
- OMAP3ISP_ALAW_BIT10_1 = 0x5,
- OMAP3ISP_ALAW_BIT9_0 = 0x6
-};
-
-/**
- * struct omap3isp_ccdc_lsc_config - LSC configuration
- * @offset: Table Offset of the gain table.
- * @gain_mode_n: Vertical dimension of a paxel in LSC configuration.
- * @gain_mode_m: Horizontal dimension of a paxel in LSC configuration.
- * @gain_format: Gain table format.
- * @fmtsph: Start pixel horizontal from start of the HS sync pulse.
- * @fmtlnh: Number of pixels in horizontal direction to use for the data
- * reformatter.
- * @fmtslv: Start line from start of VS sync pulse for the data reformatter.
- * @fmtlnv: Number of lines in vertical direction for the data reformatter.
- * @initial_x: X position, in pixels, of the first active pixel in reference
- * to the first active paxel. Must be an even number.
- * @initial_y: Y position, in pixels, of the first active pixel in reference
- * to the first active paxel. Must be an even number.
- * @size: Size of LSC gain table. Filled when loaded from userspace.
- */
-struct omap3isp_ccdc_lsc_config {
- __u16 offset;
- __u8 gain_mode_n;
- __u8 gain_mode_m;
- __u8 gain_format;
- __u16 fmtsph;
- __u16 fmtlnh;
- __u16 fmtslv;
- __u16 fmtlnv;
- __u8 initial_x;
- __u8 initial_y;
- __u32 size;
-};
-
-/**
- * struct omap3isp_ccdc_bclamp - Optical & Digital black clamp subtract
- * @obgain: Optical black average gain.
- * @obstpixel: Start Pixel w.r.t. HS pulse in Optical black sample.
- * @oblines: Optical Black Sample lines.
- * @oblen: Optical Black Sample Length.
- * @dcsubval: Digital Black Clamp subtract value.
- */
-struct omap3isp_ccdc_bclamp {
- __u8 obgain;
- __u8 obstpixel;
- __u8 oblines;
- __u8 oblen;
- __u16 dcsubval;
-};
-
-/**
- * struct omap3isp_ccdc_fpc - Faulty Pixels Correction
- * @fpnum: Number of faulty pixels to be corrected in the frame.
- * @fpcaddr: Memory address of the FPC Table
- */
-struct omap3isp_ccdc_fpc {
- __u16 fpnum;
- __u32 fpcaddr;
-};
-
-/**
- * struct omap3isp_ccdc_blcomp - Black Level Compensation parameters
- * @b_mg: B/Mg pixels. 2's complement. -128 to +127.
- * @gb_g: Gb/G pixels. 2's complement. -128 to +127.
- * @gr_cy: Gr/Cy pixels. 2's complement. -128 to +127.
- * @r_ye: R/Ye pixels. 2's complement. -128 to +127.
- */
-struct omap3isp_ccdc_blcomp {
- __u8 b_mg;
- __u8 gb_g;
- __u8 gr_cy;
- __u8 r_ye;
-};
-
-/**
- * omap3isp_ccdc_culling - Culling parameters
- * @v_pattern: Vertical culling pattern.
- * @h_odd: Horizontal Culling pattern for odd lines.
- * @h_even: Horizontal Culling pattern for even lines.
- */
-struct omap3isp_ccdc_culling {
- __u8 v_pattern;
- __u16 h_odd;
- __u16 h_even;
-};
-
-/**
- * omap3isp_ccdc_update_config - CCDC configuration
- * @update: Specifies which CCDC registers should be updated.
- * @flag: Specifies which CCDC functions should be enabled.
- * @alawip: Enable/Disable A-Law compression.
- * @bclamp: Black clamp control register.
- * @blcomp: Black level compensation value for RGrGbB Pixels. 2's complement.
- * @fpc: Number of faulty pixels corrected in the frame, address of FPC table.
- * @cull: Cull control register.
- * @lsc: Pointer to LSC gain table.
- */
-struct omap3isp_ccdc_update_config {
- __u16 update;
- __u16 flag;
- enum omap3isp_alaw_ipwidth alawip;
- struct omap3isp_ccdc_bclamp __user *bclamp;
- struct omap3isp_ccdc_blcomp __user *blcomp;
- struct omap3isp_ccdc_fpc __user *fpc;
- struct omap3isp_ccdc_lsc_config __user *lsc_cfg;
- struct omap3isp_ccdc_culling __user *cull;
- __u8 __user *lsc;
-};
-
-/* Preview configurations */
-#define OMAP3ISP_PREV_LUMAENH (1 << 0)
-#define OMAP3ISP_PREV_INVALAW (1 << 1)
-#define OMAP3ISP_PREV_HRZ_MED (1 << 2)
-#define OMAP3ISP_PREV_CFA (1 << 3)
-#define OMAP3ISP_PREV_CHROMA_SUPP (1 << 4)
-#define OMAP3ISP_PREV_WB (1 << 5)
-#define OMAP3ISP_PREV_BLKADJ (1 << 6)
-#define OMAP3ISP_PREV_RGB2RGB (1 << 7)
-#define OMAP3ISP_PREV_COLOR_CONV (1 << 8)
-#define OMAP3ISP_PREV_YC_LIMIT (1 << 9)
-#define OMAP3ISP_PREV_DEFECT_COR (1 << 10)
-#define OMAP3ISP_PREV_GAMMABYPASS (1 << 11)
-#define OMAP3ISP_PREV_DRK_FRM_CAPTURE (1 << 12)
-#define OMAP3ISP_PREV_DRK_FRM_SUBTRACT (1 << 13)
-#define OMAP3ISP_PREV_LENS_SHADING (1 << 14)
-#define OMAP3ISP_PREV_NF (1 << 15)
-#define OMAP3ISP_PREV_GAMMA (1 << 16)
-
-#define OMAP3ISP_PREV_NF_TBL_SIZE 64
-#define OMAP3ISP_PREV_CFA_TBL_SIZE 576
-#define OMAP3ISP_PREV_GAMMA_TBL_SIZE 1024
-#define OMAP3ISP_PREV_YENH_TBL_SIZE 128
-
-#define OMAP3ISP_PREV_DETECT_CORRECT_CHANNELS 4
-
-/**
- * struct omap3isp_prev_hmed - Horizontal Median Filter
- * @odddist: Distance between consecutive pixels of same color in the odd line.
- * @evendist: Distance between consecutive pixels of same color in the even
- * line.
- * @thres: Horizontal median filter threshold.
- */
-struct omap3isp_prev_hmed {
- __u8 odddist;
- __u8 evendist;
- __u8 thres;
-};
-
-/*
- * Enumeration for CFA Formats supported by preview
- */
-enum omap3isp_cfa_fmt {
- OMAP3ISP_CFAFMT_BAYER,
- OMAP3ISP_CFAFMT_SONYVGA,
- OMAP3ISP_CFAFMT_RGBFOVEON,
- OMAP3ISP_CFAFMT_DNSPL,
- OMAP3ISP_CFAFMT_HONEYCOMB,
- OMAP3ISP_CFAFMT_RRGGBBFOVEON
-};
-
-/**
- * struct omap3isp_prev_cfa - CFA Interpolation
- * @format: CFA Format Enum value supported by preview.
- * @gradthrs_vert: CFA Gradient Threshold - Vertical.
- * @gradthrs_horz: CFA Gradient Threshold - Horizontal.
- * @table: Pointer to the CFA table.
- */
-struct omap3isp_prev_cfa {
- enum omap3isp_cfa_fmt format;
- __u8 gradthrs_vert;
- __u8 gradthrs_horz;
- __u32 table[OMAP3ISP_PREV_CFA_TBL_SIZE];
-};
-
-/**
- * struct omap3isp_prev_csup - Chrominance Suppression
- * @gain: Gain.
- * @thres: Threshold.
- * @hypf_en: Flag to enable/disable the High Pass Filter.
- */
-struct omap3isp_prev_csup {
- __u8 gain;
- __u8 thres;
- __u8 hypf_en;
-};
-
-/**
- * struct omap3isp_prev_wbal - White Balance
- * @dgain: Digital gain (U10Q8).
- * @coef3: White balance gain - COEF 3 (U8Q5).
- * @coef2: White balance gain - COEF 2 (U8Q5).
- * @coef1: White balance gain - COEF 1 (U8Q5).
- * @coef0: White balance gain - COEF 0 (U8Q5).
- */
-struct omap3isp_prev_wbal {
- __u16 dgain;
- __u8 coef3;
- __u8 coef2;
- __u8 coef1;
- __u8 coef0;
-};
-
-/**
- * struct omap3isp_prev_blkadj - Black Level Adjustment
- * @red: Black level offset adjustment for Red in 2's complement format
- * @green: Black level offset adjustment for Green in 2's complement format
- * @blue: Black level offset adjustment for Blue in 2's complement format
- */
-struct omap3isp_prev_blkadj {
- /*Black level offset adjustment for Red in 2's complement format */
- __u8 red;
- /*Black level offset adjustment for Green in 2's complement format */
- __u8 green;
- /* Black level offset adjustment for Blue in 2's complement format */
- __u8 blue;
-};
-
-/**
- * struct omap3isp_prev_rgbtorgb - RGB to RGB Blending
- * @matrix: Blending values(S12Q8 format)
- * [RR] [GR] [BR]
- * [RG] [GG] [BG]
- * [RB] [GB] [BB]
- * @offset: Blending offset value for R,G,B in 2's complement integer format.
- */
-struct omap3isp_prev_rgbtorgb {
- __u16 matrix[OMAP3ISP_RGB_MAX][OMAP3ISP_RGB_MAX];
- __u16 offset[OMAP3ISP_RGB_MAX];
-};
-
-/**
- * struct omap3isp_prev_csc - Color Space Conversion from RGB-YCbYCr
- * @matrix: Color space conversion coefficients(S10Q8)
- * [CSCRY] [CSCGY] [CSCBY]
- * [CSCRCB] [CSCGCB] [CSCBCB]
- * [CSCRCR] [CSCGCR] [CSCBCR]
- * @offset: CSC offset values for Y offset, CB offset and CR offset respectively
- */
-struct omap3isp_prev_csc {
- __u16 matrix[OMAP3ISP_RGB_MAX][OMAP3ISP_RGB_MAX];
- __s16 offset[OMAP3ISP_RGB_MAX];
-};
-
-/**
- * struct omap3isp_prev_yclimit - Y, C Value Limit
- * @minC: Minimum C value
- * @maxC: Maximum C value
- * @minY: Minimum Y value
- * @maxY: Maximum Y value
- */
-struct omap3isp_prev_yclimit {
- __u8 minC;
- __u8 maxC;
- __u8 minY;
- __u8 maxY;
-};
-
-/**
- * struct omap3isp_prev_dcor - Defect correction
- * @couplet_mode_en: Flag to enable or disable the couplet dc Correction in NF
- * @detect_correct: Thresholds for correction bit 0:10 detect 16:25 correct
- */
-struct omap3isp_prev_dcor {
- __u8 couplet_mode_en;
- __u32 detect_correct[OMAP3ISP_PREV_DETECT_CORRECT_CHANNELS];
-};
-
-/**
- * struct omap3isp_prev_nf - Noise Filter
- * @spread: Spread value to be used in Noise Filter
- * @table: Pointer to the Noise Filter table
- */
-struct omap3isp_prev_nf {
- __u8 spread;
- __u32 table[OMAP3ISP_PREV_NF_TBL_SIZE];
-};
-
-/**
- * struct omap3isp_prev_gtables - Gamma correction tables
- * @red: Array for red gamma table.
- * @green: Array for green gamma table.
- * @blue: Array for blue gamma table.
- */
-struct omap3isp_prev_gtables {
- __u32 red[OMAP3ISP_PREV_GAMMA_TBL_SIZE];
- __u32 green[OMAP3ISP_PREV_GAMMA_TBL_SIZE];
- __u32 blue[OMAP3ISP_PREV_GAMMA_TBL_SIZE];
-};
-
-/**
- * struct omap3isp_prev_luma - Luma enhancement
- * @table: Array for luma enhancement table.
- */
-struct omap3isp_prev_luma {
- __u32 table[OMAP3ISP_PREV_YENH_TBL_SIZE];
-};
-
-/**
- * struct omap3isp_prev_update_config - Preview engine configuration (user)
- * @update: Specifies which ISP Preview registers should be updated.
- * @flag: Specifies which ISP Preview functions should be enabled.
- * @shading_shift: 3bit value of shift used in shading compensation.
- * @luma: Pointer to luma enhancement structure.
- * @hmed: Pointer to structure containing the odd and even distance.
- * between the pixels in the image along with the filter threshold.
- * @cfa: Pointer to structure containing the CFA interpolation table, CFA.
- * format in the image, vertical and horizontal gradient threshold.
- * @csup: Pointer to Structure for Chrominance Suppression coefficients.
- * @wbal: Pointer to structure for White Balance.
- * @blkadj: Pointer to structure for Black Adjustment.
- * @rgb2rgb: Pointer to structure for RGB to RGB Blending.
- * @csc: Pointer to structure for Color Space Conversion from RGB-YCbYCr.
- * @yclimit: Pointer to structure for Y, C Value Limit.
- * @dcor: Pointer to structure for defect correction.
- * @nf: Pointer to structure for Noise Filter
- * @gamma: Pointer to gamma structure.
- */
-struct omap3isp_prev_update_config {
- __u32 update;
- __u32 flag;
- __u32 shading_shift;
- struct omap3isp_prev_luma __user *luma;
- struct omap3isp_prev_hmed __user *hmed;
- struct omap3isp_prev_cfa __user *cfa;
- struct omap3isp_prev_csup __user *csup;
- struct omap3isp_prev_wbal __user *wbal;
- struct omap3isp_prev_blkadj __user *blkadj;
- struct omap3isp_prev_rgbtorgb __user *rgb2rgb;
- struct omap3isp_prev_csc __user *csc;
- struct omap3isp_prev_yclimit __user *yclimit;
- struct omap3isp_prev_dcor __user *dcor;
- struct omap3isp_prev_nf __user *nf;
- struct omap3isp_prev_gtables __user *gamma;
-};
-
-#endif /* OMAP3_ISP_USER_H */
diff --git a/ANDROID_3.4.5/include/linux/omapfb.h b/ANDROID_3.4.5/include/linux/omapfb.h
deleted file mode 100644
index 4ff57e81..00000000
--- a/ANDROID_3.4.5/include/linux/omapfb.h
+++ /dev/null
@@ -1,233 +0,0 @@
-/*
- * File: include/linux/omapfb.h
- *
- * Framebuffer driver for TI OMAP boards
- *
- * Copyright (C) 2004 Nokia Corporation
- * Author: Imre Deak <imre.deak@nokia.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.
- */
-
-#ifndef __LINUX_OMAPFB_H__
-#define __LINUX_OMAPFB_H__
-
-#include <linux/fb.h>
-#include <linux/ioctl.h>
-#include <linux/types.h>
-
-/* IOCTL commands. */
-
-#define OMAP_IOW(num, dtype) _IOW('O', num, dtype)
-#define OMAP_IOR(num, dtype) _IOR('O', num, dtype)
-#define OMAP_IOWR(num, dtype) _IOWR('O', num, dtype)
-#define OMAP_IO(num) _IO('O', num)
-
-#define OMAPFB_MIRROR OMAP_IOW(31, int)
-#define OMAPFB_SYNC_GFX OMAP_IO(37)
-#define OMAPFB_VSYNC OMAP_IO(38)
-#define OMAPFB_SET_UPDATE_MODE OMAP_IOW(40, int)
-#define OMAPFB_GET_CAPS OMAP_IOR(42, struct omapfb_caps)
-#define OMAPFB_GET_UPDATE_MODE OMAP_IOW(43, int)
-#define OMAPFB_LCD_TEST OMAP_IOW(45, int)
-#define OMAPFB_CTRL_TEST OMAP_IOW(46, int)
-#define OMAPFB_UPDATE_WINDOW_OLD OMAP_IOW(47, struct omapfb_update_window_old)
-#define OMAPFB_SET_COLOR_KEY OMAP_IOW(50, struct omapfb_color_key)
-#define OMAPFB_GET_COLOR_KEY OMAP_IOW(51, struct omapfb_color_key)
-#define OMAPFB_SETUP_PLANE OMAP_IOW(52, struct omapfb_plane_info)
-#define OMAPFB_QUERY_PLANE OMAP_IOW(53, struct omapfb_plane_info)
-#define OMAPFB_UPDATE_WINDOW OMAP_IOW(54, struct omapfb_update_window)
-#define OMAPFB_SETUP_MEM OMAP_IOW(55, struct omapfb_mem_info)
-#define OMAPFB_QUERY_MEM OMAP_IOW(56, struct omapfb_mem_info)
-#define OMAPFB_WAITFORVSYNC OMAP_IO(57)
-#define OMAPFB_MEMORY_READ OMAP_IOR(58, struct omapfb_memory_read)
-#define OMAPFB_GET_OVERLAY_COLORMODE OMAP_IOR(59, struct omapfb_ovl_colormode)
-#define OMAPFB_WAITFORGO OMAP_IO(60)
-#define OMAPFB_GET_VRAM_INFO OMAP_IOR(61, struct omapfb_vram_info)
-#define OMAPFB_SET_TEARSYNC OMAP_IOW(62, struct omapfb_tearsync_info)
-#define OMAPFB_GET_DISPLAY_INFO OMAP_IOR(63, struct omapfb_display_info)
-
-#define OMAPFB_CAPS_GENERIC_MASK 0x00000fff
-#define OMAPFB_CAPS_LCDC_MASK 0x00fff000
-#define OMAPFB_CAPS_PANEL_MASK 0xff000000
-
-#define OMAPFB_CAPS_MANUAL_UPDATE 0x00001000
-#define OMAPFB_CAPS_TEARSYNC 0x00002000
-#define OMAPFB_CAPS_PLANE_RELOCATE_MEM 0x00004000
-#define OMAPFB_CAPS_PLANE_SCALE 0x00008000
-#define OMAPFB_CAPS_WINDOW_PIXEL_DOUBLE 0x00010000
-#define OMAPFB_CAPS_WINDOW_SCALE 0x00020000
-#define OMAPFB_CAPS_WINDOW_OVERLAY 0x00040000
-#define OMAPFB_CAPS_WINDOW_ROTATE 0x00080000
-#define OMAPFB_CAPS_SET_BACKLIGHT 0x01000000
-
-/* Values from DSP must map to lower 16-bits */
-#define OMAPFB_FORMAT_MASK 0x00ff
-#define OMAPFB_FORMAT_FLAG_DOUBLE 0x0100
-#define OMAPFB_FORMAT_FLAG_TEARSYNC 0x0200
-#define OMAPFB_FORMAT_FLAG_FORCE_VSYNC 0x0400
-#define OMAPFB_FORMAT_FLAG_ENABLE_OVERLAY 0x0800
-#define OMAPFB_FORMAT_FLAG_DISABLE_OVERLAY 0x1000
-
-#define OMAPFB_MEMTYPE_SDRAM 0
-#define OMAPFB_MEMTYPE_SRAM 1
-#define OMAPFB_MEMTYPE_MAX 1
-
-#define OMAPFB_MEM_IDX_ENABLED 0x80
-#define OMAPFB_MEM_IDX_MASK 0x7f
-
-enum omapfb_color_format {
- OMAPFB_COLOR_RGB565 = 0,
- OMAPFB_COLOR_YUV422,
- OMAPFB_COLOR_YUV420,
- OMAPFB_COLOR_CLUT_8BPP,
- OMAPFB_COLOR_CLUT_4BPP,
- OMAPFB_COLOR_CLUT_2BPP,
- OMAPFB_COLOR_CLUT_1BPP,
- OMAPFB_COLOR_RGB444,
- OMAPFB_COLOR_YUY422,
-
- OMAPFB_COLOR_ARGB16,
- OMAPFB_COLOR_RGB24U, /* RGB24, 32-bit container */
- OMAPFB_COLOR_RGB24P, /* RGB24, 24-bit container */
- OMAPFB_COLOR_ARGB32,
- OMAPFB_COLOR_RGBA32,
- OMAPFB_COLOR_RGBX32,
-};
-
-struct omapfb_update_window {
- __u32 x, y;
- __u32 width, height;
- __u32 format;
- __u32 out_x, out_y;
- __u32 out_width, out_height;
- __u32 reserved[8];
-};
-
-struct omapfb_update_window_old {
- __u32 x, y;
- __u32 width, height;
- __u32 format;
-};
-
-enum omapfb_plane {
- OMAPFB_PLANE_GFX = 0,
- OMAPFB_PLANE_VID1,
- OMAPFB_PLANE_VID2,
-};
-
-enum omapfb_channel_out {
- OMAPFB_CHANNEL_OUT_LCD = 0,
- OMAPFB_CHANNEL_OUT_DIGIT,
-};
-
-struct omapfb_plane_info {
- __u32 pos_x;
- __u32 pos_y;
- __u8 enabled;
- __u8 channel_out;
- __u8 mirror;
- __u8 mem_idx;
- __u32 out_width;
- __u32 out_height;
- __u32 reserved2[12];
-};
-
-struct omapfb_mem_info {
- __u32 size;
- __u8 type;
- __u8 reserved[3];
-};
-
-struct omapfb_caps {
- __u32 ctrl;
- __u32 plane_color;
- __u32 wnd_color;
-};
-
-enum omapfb_color_key_type {
- OMAPFB_COLOR_KEY_DISABLED = 0,
- OMAPFB_COLOR_KEY_GFX_DST,
- OMAPFB_COLOR_KEY_VID_SRC,
-};
-
-struct omapfb_color_key {
- __u8 channel_out;
- __u32 background;
- __u32 trans_key;
- __u8 key_type;
-};
-
-enum omapfb_update_mode {
- OMAPFB_UPDATE_DISABLED = 0,
- OMAPFB_AUTO_UPDATE,
- OMAPFB_MANUAL_UPDATE
-};
-
-struct omapfb_memory_read {
- __u16 x;
- __u16 y;
- __u16 w;
- __u16 h;
- size_t buffer_size;
- void __user *buffer;
-};
-
-struct omapfb_ovl_colormode {
- __u8 overlay_idx;
- __u8 mode_idx;
- __u32 bits_per_pixel;
- __u32 nonstd;
- struct fb_bitfield red;
- struct fb_bitfield green;
- struct fb_bitfield blue;
- struct fb_bitfield transp;
-};
-
-struct omapfb_vram_info {
- __u32 total;
- __u32 free;
- __u32 largest_free_block;
- __u32 reserved[5];
-};
-
-struct omapfb_tearsync_info {
- __u8 enabled;
- __u8 reserved1[3];
- __u16 line;
- __u16 reserved2;
-};
-
-struct omapfb_display_info {
- __u16 xres;
- __u16 yres;
- __u32 width; /* phys width of the display in micrometers */
- __u32 height; /* phys height of the display in micrometers */
- __u32 reserved[5];
-};
-
-#ifdef __KERNEL__
-
-#include <plat/board.h>
-
-struct omapfb_platform_data {
- struct omap_lcd_config lcd;
-};
-
-void __init omapfb_set_lcd_config(const struct omap_lcd_config *config);
-
-#endif
-
-#endif /* __OMAPFB_H */
diff --git a/ANDROID_3.4.5/include/linux/oom.h b/ANDROID_3.4.5/include/linux/oom.h
deleted file mode 100644
index 3d764753..00000000
--- a/ANDROID_3.4.5/include/linux/oom.h
+++ /dev/null
@@ -1,75 +0,0 @@
-#ifndef __INCLUDE_LINUX_OOM_H
-#define __INCLUDE_LINUX_OOM_H
-
-/*
- * /proc/<pid>/oom_adj is deprecated, see
- * Documentation/feature-removal-schedule.txt.
- *
- * /proc/<pid>/oom_adj set to -17 protects from the oom-killer
- */
-#define OOM_DISABLE (-17)
-/* inclusive */
-#define OOM_ADJUST_MIN (-16)
-#define OOM_ADJUST_MAX 15
-
-/*
- * /proc/<pid>/oom_score_adj set to OOM_SCORE_ADJ_MIN disables oom killing for
- * pid.
- */
-#define OOM_SCORE_ADJ_MIN (-1000)
-#define OOM_SCORE_ADJ_MAX 1000
-
-#ifdef __KERNEL__
-
-#include <linux/sched.h>
-#include <linux/types.h>
-#include <linux/nodemask.h>
-
-struct zonelist;
-struct notifier_block;
-struct mem_cgroup;
-struct task_struct;
-
-/*
- * Types of limitations to the nodes from which allocations may occur
- */
-enum oom_constraint {
- CONSTRAINT_NONE,
- CONSTRAINT_CPUSET,
- CONSTRAINT_MEMORY_POLICY,
- CONSTRAINT_MEMCG,
-};
-
-extern void compare_swap_oom_score_adj(int old_val, int new_val);
-extern int test_set_oom_score_adj(int new_val);
-
-extern unsigned int oom_badness(struct task_struct *p, struct mem_cgroup *memcg,
- const nodemask_t *nodemask, unsigned long totalpages);
-extern int try_set_zonelist_oom(struct zonelist *zonelist, gfp_t gfp_flags);
-extern void clear_zonelist_oom(struct zonelist *zonelist, gfp_t gfp_flags);
-
-extern void out_of_memory(struct zonelist *zonelist, gfp_t gfp_mask,
- int order, nodemask_t *mask, bool force_kill);
-extern int register_oom_notifier(struct notifier_block *nb);
-extern int unregister_oom_notifier(struct notifier_block *nb);
-
-extern bool oom_killer_disabled;
-
-static inline void oom_killer_disable(void)
-{
- oom_killer_disabled = true;
-}
-
-static inline void oom_killer_enable(void)
-{
- oom_killer_disabled = false;
-}
-
-extern struct task_struct *find_lock_task_mm(struct task_struct *p);
-
-/* sysctls */
-extern int sysctl_oom_dump_tasks;
-extern int sysctl_oom_kill_allocating_task;
-extern int sysctl_panic_on_oom;
-#endif /* __KERNEL__*/
-#endif /* _INCLUDE_LINUX_OOM_H */
diff --git a/ANDROID_3.4.5/include/linux/openvswitch.h b/ANDROID_3.4.5/include/linux/openvswitch.h
deleted file mode 100644
index eb1efa54..00000000
--- a/ANDROID_3.4.5/include/linux/openvswitch.h
+++ /dev/null
@@ -1,452 +0,0 @@
-/*
- * Copyright (c) 2007-2011 Nicira Networks.
- *
- * 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-1301, USA
- */
-
-#ifndef _LINUX_OPENVSWITCH_H
-#define _LINUX_OPENVSWITCH_H 1
-
-#include <linux/types.h>
-
-/**
- * struct ovs_header - header for OVS Generic Netlink messages.
- * @dp_ifindex: ifindex of local port for datapath (0 to make a request not
- * specific to a datapath).
- *
- * Attributes following the header are specific to a particular OVS Generic
- * Netlink family, but all of the OVS families use this header.
- */
-
-struct ovs_header {
- int dp_ifindex;
-};
-
-/* Datapaths. */
-
-#define OVS_DATAPATH_FAMILY "ovs_datapath"
-#define OVS_DATAPATH_MCGROUP "ovs_datapath"
-#define OVS_DATAPATH_VERSION 0x1
-
-enum ovs_datapath_cmd {
- OVS_DP_CMD_UNSPEC,
- OVS_DP_CMD_NEW,
- OVS_DP_CMD_DEL,
- OVS_DP_CMD_GET,
- OVS_DP_CMD_SET
-};
-
-/**
- * enum ovs_datapath_attr - attributes for %OVS_DP_* commands.
- * @OVS_DP_ATTR_NAME: Name of the network device that serves as the "local
- * port". This is the name of the network device whose dp_ifindex is given in
- * the &struct ovs_header. Always present in notifications. Required in
- * %OVS_DP_NEW requests. May be used as an alternative to specifying
- * dp_ifindex in other requests (with a dp_ifindex of 0).
- * @OVS_DP_ATTR_UPCALL_PID: The Netlink socket in userspace that is initially
- * set on the datapath port (for OVS_ACTION_ATTR_MISS). Only valid on
- * %OVS_DP_CMD_NEW requests. A value of zero indicates that upcalls should
- * not be sent.
- * @OVS_DP_ATTR_STATS: Statistics about packets that have passed through the
- * datapath. Always present in notifications.
- *
- * These attributes follow the &struct ovs_header within the Generic Netlink
- * payload for %OVS_DP_* commands.
- */
-enum ovs_datapath_attr {
- OVS_DP_ATTR_UNSPEC,
- OVS_DP_ATTR_NAME, /* name of dp_ifindex netdev */
- OVS_DP_ATTR_UPCALL_PID, /* Netlink PID to receive upcalls */
- OVS_DP_ATTR_STATS, /* struct ovs_dp_stats */
- __OVS_DP_ATTR_MAX
-};
-
-#define OVS_DP_ATTR_MAX (__OVS_DP_ATTR_MAX - 1)
-
-struct ovs_dp_stats {
- __u64 n_hit; /* Number of flow table matches. */
- __u64 n_missed; /* Number of flow table misses. */
- __u64 n_lost; /* Number of misses not sent to userspace. */
- __u64 n_flows; /* Number of flows present */
-};
-
-struct ovs_vport_stats {
- __u64 rx_packets; /* total packets received */
- __u64 tx_packets; /* total packets transmitted */
- __u64 rx_bytes; /* total bytes received */
- __u64 tx_bytes; /* total bytes transmitted */
- __u64 rx_errors; /* bad packets received */
- __u64 tx_errors; /* packet transmit problems */
- __u64 rx_dropped; /* no space in linux buffers */
- __u64 tx_dropped; /* no space available in linux */
-};
-
-/* Fixed logical ports. */
-#define OVSP_LOCAL ((__u16)0)
-
-/* Packet transfer. */
-
-#define OVS_PACKET_FAMILY "ovs_packet"
-#define OVS_PACKET_VERSION 0x1
-
-enum ovs_packet_cmd {
- OVS_PACKET_CMD_UNSPEC,
-
- /* Kernel-to-user notifications. */
- OVS_PACKET_CMD_MISS, /* Flow table miss. */
- OVS_PACKET_CMD_ACTION, /* OVS_ACTION_ATTR_USERSPACE action. */
-
- /* Userspace commands. */
- OVS_PACKET_CMD_EXECUTE /* Apply actions to a packet. */
-};
-
-/**
- * enum ovs_packet_attr - attributes for %OVS_PACKET_* commands.
- * @OVS_PACKET_ATTR_PACKET: Present for all notifications. Contains the entire
- * packet as received, from the start of the Ethernet header onward. For
- * %OVS_PACKET_CMD_ACTION, %OVS_PACKET_ATTR_PACKET reflects changes made by
- * actions preceding %OVS_ACTION_ATTR_USERSPACE, but %OVS_PACKET_ATTR_KEY is
- * the flow key extracted from the packet as originally received.
- * @OVS_PACKET_ATTR_KEY: Present for all notifications. Contains the flow key
- * extracted from the packet as nested %OVS_KEY_ATTR_* attributes. This allows
- * userspace to adapt its flow setup strategy by comparing its notion of the
- * flow key against the kernel's.
- * @OVS_PACKET_ATTR_ACTIONS: Contains actions for the packet. Used
- * for %OVS_PACKET_CMD_EXECUTE. It has nested %OVS_ACTION_ATTR_* attributes.
- * @OVS_PACKET_ATTR_USERDATA: Present for an %OVS_PACKET_CMD_ACTION
- * notification if the %OVS_ACTION_ATTR_USERSPACE action specified an
- * %OVS_USERSPACE_ATTR_USERDATA attribute.
- *
- * These attributes follow the &struct ovs_header within the Generic Netlink
- * payload for %OVS_PACKET_* commands.
- */
-enum ovs_packet_attr {
- OVS_PACKET_ATTR_UNSPEC,
- OVS_PACKET_ATTR_PACKET, /* Packet data. */
- OVS_PACKET_ATTR_KEY, /* Nested OVS_KEY_ATTR_* attributes. */
- OVS_PACKET_ATTR_ACTIONS, /* Nested OVS_ACTION_ATTR_* attributes. */
- OVS_PACKET_ATTR_USERDATA, /* u64 OVS_ACTION_ATTR_USERSPACE arg. */
- __OVS_PACKET_ATTR_MAX
-};
-
-#define OVS_PACKET_ATTR_MAX (__OVS_PACKET_ATTR_MAX - 1)
-
-/* Virtual ports. */
-
-#define OVS_VPORT_FAMILY "ovs_vport"
-#define OVS_VPORT_MCGROUP "ovs_vport"
-#define OVS_VPORT_VERSION 0x1
-
-enum ovs_vport_cmd {
- OVS_VPORT_CMD_UNSPEC,
- OVS_VPORT_CMD_NEW,
- OVS_VPORT_CMD_DEL,
- OVS_VPORT_CMD_GET,
- OVS_VPORT_CMD_SET
-};
-
-enum ovs_vport_type {
- OVS_VPORT_TYPE_UNSPEC,
- OVS_VPORT_TYPE_NETDEV, /* network device */
- OVS_VPORT_TYPE_INTERNAL, /* network device implemented by datapath */
- __OVS_VPORT_TYPE_MAX
-};
-
-#define OVS_VPORT_TYPE_MAX (__OVS_VPORT_TYPE_MAX - 1)
-
-/**
- * enum ovs_vport_attr - attributes for %OVS_VPORT_* commands.
- * @OVS_VPORT_ATTR_PORT_NO: 32-bit port number within datapath.
- * @OVS_VPORT_ATTR_TYPE: 32-bit %OVS_VPORT_TYPE_* constant describing the type
- * of vport.
- * @OVS_VPORT_ATTR_NAME: Name of vport. For a vport based on a network device
- * this is the name of the network device. Maximum length %IFNAMSIZ-1 bytes
- * plus a null terminator.
- * @OVS_VPORT_ATTR_OPTIONS: Vport-specific configuration information.
- * @OVS_VPORT_ATTR_UPCALL_PID: The Netlink socket in userspace that
- * OVS_PACKET_CMD_MISS upcalls will be directed to for packets received on
- * this port. A value of zero indicates that upcalls should not be sent.
- * @OVS_VPORT_ATTR_STATS: A &struct ovs_vport_stats giving statistics for
- * packets sent or received through the vport.
- *
- * These attributes follow the &struct ovs_header within the Generic Netlink
- * payload for %OVS_VPORT_* commands.
- *
- * For %OVS_VPORT_CMD_NEW requests, the %OVS_VPORT_ATTR_TYPE and
- * %OVS_VPORT_ATTR_NAME attributes are required. %OVS_VPORT_ATTR_PORT_NO is
- * optional; if not specified a free port number is automatically selected.
- * Whether %OVS_VPORT_ATTR_OPTIONS is required or optional depends on the type
- * of vport.
- * and other attributes are ignored.
- *
- * For other requests, if %OVS_VPORT_ATTR_NAME is specified then it is used to
- * look up the vport to operate on; otherwise dp_idx from the &struct
- * ovs_header plus %OVS_VPORT_ATTR_PORT_NO determine the vport.
- */
-enum ovs_vport_attr {
- OVS_VPORT_ATTR_UNSPEC,
- OVS_VPORT_ATTR_PORT_NO, /* u32 port number within datapath */
- OVS_VPORT_ATTR_TYPE, /* u32 OVS_VPORT_TYPE_* constant. */
- OVS_VPORT_ATTR_NAME, /* string name, up to IFNAMSIZ bytes long */
- OVS_VPORT_ATTR_OPTIONS, /* nested attributes, varies by vport type */
- OVS_VPORT_ATTR_UPCALL_PID, /* u32 Netlink PID to receive upcalls */
- OVS_VPORT_ATTR_STATS, /* struct ovs_vport_stats */
- __OVS_VPORT_ATTR_MAX
-};
-
-#define OVS_VPORT_ATTR_MAX (__OVS_VPORT_ATTR_MAX - 1)
-
-/* Flows. */
-
-#define OVS_FLOW_FAMILY "ovs_flow"
-#define OVS_FLOW_MCGROUP "ovs_flow"
-#define OVS_FLOW_VERSION 0x1
-
-enum ovs_flow_cmd {
- OVS_FLOW_CMD_UNSPEC,
- OVS_FLOW_CMD_NEW,
- OVS_FLOW_CMD_DEL,
- OVS_FLOW_CMD_GET,
- OVS_FLOW_CMD_SET
-};
-
-struct ovs_flow_stats {
- __u64 n_packets; /* Number of matched packets. */
- __u64 n_bytes; /* Number of matched bytes. */
-};
-
-enum ovs_key_attr {
- OVS_KEY_ATTR_UNSPEC,
- OVS_KEY_ATTR_ENCAP, /* Nested set of encapsulated attributes. */
- OVS_KEY_ATTR_PRIORITY, /* u32 skb->priority */
- OVS_KEY_ATTR_IN_PORT, /* u32 OVS dp port number */
- OVS_KEY_ATTR_ETHERNET, /* struct ovs_key_ethernet */
- OVS_KEY_ATTR_VLAN, /* be16 VLAN TCI */
- OVS_KEY_ATTR_ETHERTYPE, /* be16 Ethernet type */
- OVS_KEY_ATTR_IPV4, /* struct ovs_key_ipv4 */
- OVS_KEY_ATTR_IPV6, /* struct ovs_key_ipv6 */
- OVS_KEY_ATTR_TCP, /* struct ovs_key_tcp */
- OVS_KEY_ATTR_UDP, /* struct ovs_key_udp */
- OVS_KEY_ATTR_ICMP, /* struct ovs_key_icmp */
- OVS_KEY_ATTR_ICMPV6, /* struct ovs_key_icmpv6 */
- OVS_KEY_ATTR_ARP, /* struct ovs_key_arp */
- OVS_KEY_ATTR_ND, /* struct ovs_key_nd */
- __OVS_KEY_ATTR_MAX
-};
-
-#define OVS_KEY_ATTR_MAX (__OVS_KEY_ATTR_MAX - 1)
-
-/**
- * enum ovs_frag_type - IPv4 and IPv6 fragment type
- * @OVS_FRAG_TYPE_NONE: Packet is not a fragment.
- * @OVS_FRAG_TYPE_FIRST: Packet is a fragment with offset 0.
- * @OVS_FRAG_TYPE_LATER: Packet is a fragment with nonzero offset.
- *
- * Used as the @ipv4_frag in &struct ovs_key_ipv4 and as @ipv6_frag &struct
- * ovs_key_ipv6.
- */
-enum ovs_frag_type {
- OVS_FRAG_TYPE_NONE,
- OVS_FRAG_TYPE_FIRST,
- OVS_FRAG_TYPE_LATER,
- __OVS_FRAG_TYPE_MAX
-};
-
-#define OVS_FRAG_TYPE_MAX (__OVS_FRAG_TYPE_MAX - 1)
-
-struct ovs_key_ethernet {
- __u8 eth_src[6];
- __u8 eth_dst[6];
-};
-
-struct ovs_key_ipv4 {
- __be32 ipv4_src;
- __be32 ipv4_dst;
- __u8 ipv4_proto;
- __u8 ipv4_tos;
- __u8 ipv4_ttl;
- __u8 ipv4_frag; /* One of OVS_FRAG_TYPE_*. */
-};
-
-struct ovs_key_ipv6 {
- __be32 ipv6_src[4];
- __be32 ipv6_dst[4];
- __be32 ipv6_label; /* 20-bits in least-significant bits. */
- __u8 ipv6_proto;
- __u8 ipv6_tclass;
- __u8 ipv6_hlimit;
- __u8 ipv6_frag; /* One of OVS_FRAG_TYPE_*. */
-};
-
-struct ovs_key_tcp {
- __be16 tcp_src;
- __be16 tcp_dst;
-};
-
-struct ovs_key_udp {
- __be16 udp_src;
- __be16 udp_dst;
-};
-
-struct ovs_key_icmp {
- __u8 icmp_type;
- __u8 icmp_code;
-};
-
-struct ovs_key_icmpv6 {
- __u8 icmpv6_type;
- __u8 icmpv6_code;
-};
-
-struct ovs_key_arp {
- __be32 arp_sip;
- __be32 arp_tip;
- __be16 arp_op;
- __u8 arp_sha[6];
- __u8 arp_tha[6];
-};
-
-struct ovs_key_nd {
- __u32 nd_target[4];
- __u8 nd_sll[6];
- __u8 nd_tll[6];
-};
-
-/**
- * enum ovs_flow_attr - attributes for %OVS_FLOW_* commands.
- * @OVS_FLOW_ATTR_KEY: Nested %OVS_KEY_ATTR_* attributes specifying the flow
- * key. Always present in notifications. Required for all requests (except
- * dumps).
- * @OVS_FLOW_ATTR_ACTIONS: Nested %OVS_ACTION_ATTR_* attributes specifying
- * the actions to take for packets that match the key. Always present in
- * notifications. Required for %OVS_FLOW_CMD_NEW requests, optional for
- * %OVS_FLOW_CMD_SET requests.
- * @OVS_FLOW_ATTR_STATS: &struct ovs_flow_stats giving statistics for this
- * flow. Present in notifications if the stats would be nonzero. Ignored in
- * requests.
- * @OVS_FLOW_ATTR_TCP_FLAGS: An 8-bit value giving the OR'd value of all of the
- * TCP flags seen on packets in this flow. Only present in notifications for
- * TCP flows, and only if it would be nonzero. Ignored in requests.
- * @OVS_FLOW_ATTR_USED: A 64-bit integer giving the time, in milliseconds on
- * the system monotonic clock, at which a packet was last processed for this
- * flow. Only present in notifications if a packet has been processed for this
- * flow. Ignored in requests.
- * @OVS_FLOW_ATTR_CLEAR: If present in a %OVS_FLOW_CMD_SET request, clears the
- * last-used time, accumulated TCP flags, and statistics for this flow.
- * Otherwise ignored in requests. Never present in notifications.
- *
- * These attributes follow the &struct ovs_header within the Generic Netlink
- * payload for %OVS_FLOW_* commands.
- */
-enum ovs_flow_attr {
- OVS_FLOW_ATTR_UNSPEC,
- OVS_FLOW_ATTR_KEY, /* Sequence of OVS_KEY_ATTR_* attributes. */
- OVS_FLOW_ATTR_ACTIONS, /* Nested OVS_ACTION_ATTR_* attributes. */
- OVS_FLOW_ATTR_STATS, /* struct ovs_flow_stats. */
- OVS_FLOW_ATTR_TCP_FLAGS, /* 8-bit OR'd TCP flags. */
- OVS_FLOW_ATTR_USED, /* u64 msecs last used in monotonic time. */
- OVS_FLOW_ATTR_CLEAR, /* Flag to clear stats, tcp_flags, used. */
- __OVS_FLOW_ATTR_MAX
-};
-
-#define OVS_FLOW_ATTR_MAX (__OVS_FLOW_ATTR_MAX - 1)
-
-/**
- * enum ovs_sample_attr - Attributes for %OVS_ACTION_ATTR_SAMPLE action.
- * @OVS_SAMPLE_ATTR_PROBABILITY: 32-bit fraction of packets to sample with
- * @OVS_ACTION_ATTR_SAMPLE. A value of 0 samples no packets, a value of
- * %UINT32_MAX samples all packets and intermediate values sample intermediate
- * fractions of packets.
- * @OVS_SAMPLE_ATTR_ACTIONS: Set of actions to execute in sampling event.
- * Actions are passed as nested attributes.
- *
- * Executes the specified actions with the given probability on a per-packet
- * basis.
- */
-enum ovs_sample_attr {
- OVS_SAMPLE_ATTR_UNSPEC,
- OVS_SAMPLE_ATTR_PROBABILITY, /* u32 number */
- OVS_SAMPLE_ATTR_ACTIONS, /* Nested OVS_ACTION_ATTR_* attributes. */
- __OVS_SAMPLE_ATTR_MAX,
-};
-
-#define OVS_SAMPLE_ATTR_MAX (__OVS_SAMPLE_ATTR_MAX - 1)
-
-/**
- * enum ovs_userspace_attr - Attributes for %OVS_ACTION_ATTR_USERSPACE action.
- * @OVS_USERSPACE_ATTR_PID: u32 Netlink PID to which the %OVS_PACKET_CMD_ACTION
- * message should be sent. Required.
- * @OVS_USERSPACE_ATTR_USERDATA: If present, its u64 argument is copied to the
- * %OVS_PACKET_CMD_ACTION message as %OVS_PACKET_ATTR_USERDATA,
- */
-enum ovs_userspace_attr {
- OVS_USERSPACE_ATTR_UNSPEC,
- OVS_USERSPACE_ATTR_PID, /* u32 Netlink PID to receive upcalls. */
- OVS_USERSPACE_ATTR_USERDATA, /* u64 optional user-specified cookie. */
- __OVS_USERSPACE_ATTR_MAX
-};
-
-#define OVS_USERSPACE_ATTR_MAX (__OVS_USERSPACE_ATTR_MAX - 1)
-
-/**
- * struct ovs_action_push_vlan - %OVS_ACTION_ATTR_PUSH_VLAN action argument.
- * @vlan_tpid: Tag protocol identifier (TPID) to push.
- * @vlan_tci: Tag control identifier (TCI) to push. The CFI bit must be set
- * (but it will not be set in the 802.1Q header that is pushed).
- *
- * The @vlan_tpid value is typically %ETH_P_8021Q. The only acceptable TPID
- * values are those that the kernel module also parses as 802.1Q headers, to
- * prevent %OVS_ACTION_ATTR_PUSH_VLAN followed by %OVS_ACTION_ATTR_POP_VLAN
- * from having surprising results.
- */
-struct ovs_action_push_vlan {
- __be16 vlan_tpid; /* 802.1Q TPID. */
- __be16 vlan_tci; /* 802.1Q TCI (VLAN ID and priority). */
-};
-
-/**
- * enum ovs_action_attr - Action types.
- *
- * @OVS_ACTION_ATTR_OUTPUT: Output packet to port.
- * @OVS_ACTION_ATTR_USERSPACE: Send packet to userspace according to nested
- * %OVS_USERSPACE_ATTR_* attributes.
- * @OVS_ACTION_ATTR_SET: Replaces the contents of an existing header. The
- * single nested %OVS_KEY_ATTR_* attribute specifies a header to modify and its
- * value.
- * @OVS_ACTION_ATTR_PUSH_VLAN: Push a new outermost 802.1Q header onto the
- * packet.
- * @OVS_ACTION_ATTR_POP_VLAN: Pop the outermost 802.1Q header off the packet.
- * @OVS_ACTION_ATTR_SAMPLE: Probabilitically executes actions, as specified in
- * the nested %OVS_SAMPLE_ATTR_* attributes.
- *
- * Only a single header can be set with a single %OVS_ACTION_ATTR_SET. Not all
- * fields within a header are modifiable, e.g. the IPv4 protocol and fragment
- * type may not be changed.
- */
-
-enum ovs_action_attr {
- OVS_ACTION_ATTR_UNSPEC,
- OVS_ACTION_ATTR_OUTPUT, /* u32 port number. */
- OVS_ACTION_ATTR_USERSPACE, /* Nested OVS_USERSPACE_ATTR_*. */
- OVS_ACTION_ATTR_SET, /* One nested OVS_KEY_ATTR_*. */
- OVS_ACTION_ATTR_PUSH_VLAN, /* struct ovs_action_push_vlan. */
- OVS_ACTION_ATTR_POP_VLAN, /* No argument. */
- OVS_ACTION_ATTR_SAMPLE, /* Nested OVS_SAMPLE_ATTR_*. */
- __OVS_ACTION_ATTR_MAX
-};
-
-#define OVS_ACTION_ATTR_MAX (__OVS_ACTION_ATTR_MAX - 1)
-
-#endif /* _LINUX_OPENVSWITCH_H */
diff --git a/ANDROID_3.4.5/include/linux/opp.h b/ANDROID_3.4.5/include/linux/opp.h
deleted file mode 100644
index 2a4e5fae..00000000
--- a/ANDROID_3.4.5/include/linux/opp.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * Generic OPP Interface
- *
- * Copyright (C) 2009-2010 Texas Instruments Incorporated.
- * Nishanth Menon
- * Romit Dasgupta
- * Kevin Hilman
- *
- * 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.
- */
-
-#ifndef __LINUX_OPP_H__
-#define __LINUX_OPP_H__
-
-#include <linux/err.h>
-#include <linux/cpufreq.h>
-#include <linux/notifier.h>
-
-struct opp;
-struct device;
-
-enum opp_event {
- OPP_EVENT_ADD, OPP_EVENT_ENABLE, OPP_EVENT_DISABLE,
-};
-
-#if defined(CONFIG_PM_OPP)
-
-unsigned long opp_get_voltage(struct opp *opp);
-
-unsigned long opp_get_freq(struct opp *opp);
-
-int opp_get_opp_count(struct device *dev);
-
-struct opp *opp_find_freq_exact(struct device *dev, unsigned long freq,
- bool available);
-
-struct opp *opp_find_freq_floor(struct device *dev, unsigned long *freq);
-
-struct opp *opp_find_freq_ceil(struct device *dev, unsigned long *freq);
-
-int opp_add(struct device *dev, unsigned long freq, unsigned long u_volt);
-
-int opp_enable(struct device *dev, unsigned long freq);
-
-int opp_disable(struct device *dev, unsigned long freq);
-
-struct srcu_notifier_head *opp_get_notifier(struct device *dev);
-
-#else
-static inline unsigned long opp_get_voltage(struct opp *opp)
-{
- return 0;
-}
-
-static inline unsigned long opp_get_freq(struct opp *opp)
-{
- return 0;
-}
-
-static inline int opp_get_opp_count(struct device *dev)
-{
- return 0;
-}
-
-static inline struct opp *opp_find_freq_exact(struct device *dev,
- unsigned long freq, bool available)
-{
- return ERR_PTR(-EINVAL);
-}
-
-static inline struct opp *opp_find_freq_floor(struct device *dev,
- unsigned long *freq)
-{
- return ERR_PTR(-EINVAL);
-}
-
-static inline struct opp *opp_find_freq_ceil(struct device *dev,
- unsigned long *freq)
-{
- return ERR_PTR(-EINVAL);
-}
-
-static inline int opp_add(struct device *dev, unsigned long freq,
- unsigned long u_volt)
-{
- return -EINVAL;
-}
-
-static inline int opp_enable(struct device *dev, unsigned long freq)
-{
- return 0;
-}
-
-static inline int opp_disable(struct device *dev, unsigned long freq)
-{
- return 0;
-}
-
-static inline struct srcu_notifier_head *opp_get_notifier(struct device *dev)
-{
- return ERR_PTR(-EINVAL);
-}
-#endif /* CONFIG_PM_OPP */
-
-#if defined(CONFIG_CPU_FREQ) && defined(CONFIG_PM_OPP)
-int opp_init_cpufreq_table(struct device *dev,
- struct cpufreq_frequency_table **table);
-void opp_free_cpufreq_table(struct device *dev,
- struct cpufreq_frequency_table **table);
-#else
-static inline int opp_init_cpufreq_table(struct device *dev,
- struct cpufreq_frequency_table **table)
-{
- return -EINVAL;
-}
-
-static inline
-void opp_free_cpufreq_table(struct device *dev,
- struct cpufreq_frequency_table **table)
-{
-}
-#endif /* CONFIG_CPU_FREQ */
-
-#endif /* __LINUX_OPP_H__ */
diff --git a/ANDROID_3.4.5/include/linux/oprofile.h b/ANDROID_3.4.5/include/linux/oprofile.h
deleted file mode 100644
index a4c56245..00000000
--- a/ANDROID_3.4.5/include/linux/oprofile.h
+++ /dev/null
@@ -1,211 +0,0 @@
-/**
- * @file oprofile.h
- *
- * API for machine-specific interrupts to interface
- * to oprofile.
- *
- * @remark Copyright 2002 OProfile authors
- * @remark Read the file COPYING
- *
- * @author John Levon <levon@movementarian.org>
- */
-
-#ifndef OPROFILE_H
-#define OPROFILE_H
-
-#include <linux/types.h>
-#include <linux/spinlock.h>
-#include <linux/init.h>
-#include <linux/errno.h>
-#include <linux/printk.h>
-#include <linux/atomic.h>
-
-/* Each escaped entry is prefixed by ESCAPE_CODE
- * then one of the following codes, then the
- * relevant data.
- * These #defines live in this file so that arch-specific
- * buffer sync'ing code can access them.
- */
-#define ESCAPE_CODE ~0UL
-#define CTX_SWITCH_CODE 1
-#define CPU_SWITCH_CODE 2
-#define COOKIE_SWITCH_CODE 3
-#define KERNEL_ENTER_SWITCH_CODE 4
-#define KERNEL_EXIT_SWITCH_CODE 5
-#define MODULE_LOADED_CODE 6
-#define CTX_TGID_CODE 7
-#define TRACE_BEGIN_CODE 8
-#define TRACE_END_CODE 9
-#define XEN_ENTER_SWITCH_CODE 10
-#define SPU_PROFILING_CODE 11
-#define SPU_CTX_SWITCH_CODE 12
-#define IBS_FETCH_CODE 13
-#define IBS_OP_CODE 14
-
-struct super_block;
-struct dentry;
-struct file_operations;
-struct pt_regs;
-
-/* Operations structure to be filled in */
-struct oprofile_operations {
- /* create any necessary configuration files in the oprofile fs.
- * Optional. */
- int (*create_files)(struct super_block * sb, struct dentry * root);
- /* Do any necessary interrupt setup. Optional. */
- int (*setup)(void);
- /* Do any necessary interrupt shutdown. Optional. */
- void (*shutdown)(void);
- /* Start delivering interrupts. */
- int (*start)(void);
- /* Stop delivering interrupts. */
- void (*stop)(void);
- /* Arch-specific buffer sync functions.
- * Return value = 0: Success
- * Return value = -1: Failure
- * Return value = 1: Run generic sync function
- */
- int (*sync_start)(void);
- int (*sync_stop)(void);
-
- /* Initiate a stack backtrace. Optional. */
- void (*backtrace)(struct pt_regs * const regs, unsigned int depth);
-
- /* Multiplex between different events. Optional. */
- int (*switch_events)(void);
- /* CPU identification string. */
- char * cpu_type;
-};
-
-/**
- * One-time initialisation. *ops must be set to a filled-in
- * operations structure. This is called even in timer interrupt
- * mode so an arch can set a backtrace callback.
- *
- * If an error occurs, the fields should be left untouched.
- */
-int oprofile_arch_init(struct oprofile_operations * ops);
-
-/**
- * One-time exit/cleanup for the arch.
- */
-void oprofile_arch_exit(void);
-
-/**
- * Add a sample. This may be called from any context.
- */
-void oprofile_add_sample(struct pt_regs * const regs, unsigned long event);
-
-/**
- * Add an extended sample. Use this when the PC is not from the regs, and
- * we cannot determine if we're in kernel mode from the regs.
- *
- * This function does perform a backtrace.
- *
- */
-void oprofile_add_ext_sample(unsigned long pc, struct pt_regs * const regs,
- unsigned long event, int is_kernel);
-
-/**
- * Add an hardware sample.
- */
-void oprofile_add_ext_hw_sample(unsigned long pc, struct pt_regs * const regs,
- unsigned long event, int is_kernel,
- struct task_struct *task);
-
-/* Use this instead when the PC value is not from the regs. Doesn't
- * backtrace. */
-void oprofile_add_pc(unsigned long pc, int is_kernel, unsigned long event);
-
-/* add a backtrace entry, to be called from the ->backtrace callback */
-void oprofile_add_trace(unsigned long eip);
-
-
-/**
- * Create a file of the given name as a child of the given root, with
- * the specified file operations.
- */
-int oprofilefs_create_file(struct super_block * sb, struct dentry * root,
- char const * name, const struct file_operations * fops);
-
-int oprofilefs_create_file_perm(struct super_block * sb, struct dentry * root,
- char const * name, const struct file_operations * fops, int perm);
-
-/** Create a file for read/write access to an unsigned long. */
-int oprofilefs_create_ulong(struct super_block * sb, struct dentry * root,
- char const * name, ulong * val);
-
-/** Create a file for read-only access to an unsigned long. */
-int oprofilefs_create_ro_ulong(struct super_block * sb, struct dentry * root,
- char const * name, ulong * val);
-
-/** Create a file for read-only access to an atomic_t. */
-int oprofilefs_create_ro_atomic(struct super_block * sb, struct dentry * root,
- char const * name, atomic_t * val);
-
-/** create a directory */
-struct dentry * oprofilefs_mkdir(struct super_block * sb, struct dentry * root,
- char const * name);
-
-/**
- * Write the given asciz string to the given user buffer @buf, updating *offset
- * appropriately. Returns bytes written or -EFAULT.
- */
-ssize_t oprofilefs_str_to_user(char const * str, char __user * buf, size_t count, loff_t * offset);
-
-/**
- * Convert an unsigned long value into ASCII and copy it to the user buffer @buf,
- * updating *offset appropriately. Returns bytes written or -EFAULT.
- */
-ssize_t oprofilefs_ulong_to_user(unsigned long val, char __user * buf, size_t count, loff_t * offset);
-
-/**
- * Read an ASCII string for a number from a userspace buffer and fill *val on success.
- * Returns 0 on success, < 0 on error.
- */
-int oprofilefs_ulong_from_user(unsigned long * val, char const __user * buf, size_t count);
-
-/** lock for read/write safety */
-extern raw_spinlock_t oprofilefs_lock;
-
-/**
- * Add the contents of a circular buffer to the event buffer.
- */
-void oprofile_put_buff(unsigned long *buf, unsigned int start,
- unsigned int stop, unsigned int max);
-
-unsigned long oprofile_get_cpu_buffer_size(void);
-void oprofile_cpu_buffer_inc_smpl_lost(void);
-
-/* cpu buffer functions */
-
-struct op_sample;
-
-struct op_entry {
- struct ring_buffer_event *event;
- struct op_sample *sample;
- unsigned long size;
- unsigned long *data;
-};
-
-void oprofile_write_reserve(struct op_entry *entry,
- struct pt_regs * const regs,
- unsigned long pc, int code, int size);
-int oprofile_add_data(struct op_entry *entry, unsigned long val);
-int oprofile_add_data64(struct op_entry *entry, u64 val);
-int oprofile_write_commit(struct op_entry *entry);
-
-#ifdef CONFIG_HW_PERF_EVENTS
-int __init oprofile_perf_init(struct oprofile_operations *ops);
-void oprofile_perf_exit(void);
-char *op_name_from_perf_id(void);
-#else
-static inline int __init oprofile_perf_init(struct oprofile_operations *ops)
-{
- pr_info("oprofile: hardware counters not available\n");
- return -ENODEV;
-}
-static inline void oprofile_perf_exit(void) { }
-#endif /* CONFIG_HW_PERF_EVENTS */
-
-#endif /* OPROFILE_H */
diff --git a/ANDROID_3.4.5/include/linux/oxu210hp.h b/ANDROID_3.4.5/include/linux/oxu210hp.h
deleted file mode 100644
index 0bf96eae..00000000
--- a/ANDROID_3.4.5/include/linux/oxu210hp.h
+++ /dev/null
@@ -1,7 +0,0 @@
-/* platform data for the OXU210HP HCD */
-
-struct oxu210hp_platform_data {
- unsigned int bus16:1;
- unsigned int use_hcd_otg:1;
- unsigned int use_hcd_sph:1;
-};
diff --git a/ANDROID_3.4.5/include/linux/padata.h b/ANDROID_3.4.5/include/linux/padata.h
deleted file mode 100644
index 86292bee..00000000
--- a/ANDROID_3.4.5/include/linux/padata.h
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- * padata.h - header for the padata parallelization interface
- *
- * Copyright (C) 2008, 2009 secunet Security Networks AG
- * Copyright (C) 2008, 2009 Steffen Klassert <steffen.klassert@secunet.com>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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 PADATA_H
-#define PADATA_H
-
-#include <linux/workqueue.h>
-#include <linux/spinlock.h>
-#include <linux/list.h>
-#include <linux/timer.h>
-#include <linux/notifier.h>
-#include <linux/kobject.h>
-
-#define PADATA_CPU_SERIAL 0x01
-#define PADATA_CPU_PARALLEL 0x02
-
-/**
- * struct padata_priv - Embedded to the users data structure.
- *
- * @list: List entry, to attach to the padata lists.
- * @pd: Pointer to the internal control structure.
- * @cb_cpu: Callback cpu for serializatioon.
- * @seq_nr: Sequence number of the parallelized data object.
- * @info: Used to pass information from the parallel to the serial function.
- * @parallel: Parallel execution function.
- * @serial: Serial complete function.
- */
-struct padata_priv {
- struct list_head list;
- struct parallel_data *pd;
- int cb_cpu;
- int info;
- void (*parallel)(struct padata_priv *padata);
- void (*serial)(struct padata_priv *padata);
-};
-
-/**
- * struct padata_list
- *
- * @list: List head.
- * @lock: List lock.
- */
-struct padata_list {
- struct list_head list;
- spinlock_t lock;
-};
-
-/**
-* struct padata_serial_queue - The percpu padata serial queue
-*
-* @serial: List to wait for serialization after reordering.
-* @work: work struct for serialization.
-* @pd: Backpointer to the internal control structure.
-*/
-struct padata_serial_queue {
- struct padata_list serial;
- struct work_struct work;
- struct parallel_data *pd;
-};
-
-/**
- * struct padata_parallel_queue - The percpu padata parallel queue
- *
- * @parallel: List to wait for parallelization.
- * @reorder: List to wait for reordering after parallel processing.
- * @serial: List to wait for serialization after reordering.
- * @pwork: work struct for parallelization.
- * @swork: work struct for serialization.
- * @pd: Backpointer to the internal control structure.
- * @work: work struct for parallelization.
- * @num_obj: Number of objects that are processed by this cpu.
- * @cpu_index: Index of the cpu.
- */
-struct padata_parallel_queue {
- struct padata_list parallel;
- struct padata_list reorder;
- struct parallel_data *pd;
- struct work_struct work;
- atomic_t num_obj;
- int cpu_index;
-};
-
-/**
- * struct padata_cpumask - The cpumasks for the parallel/serial workers
- *
- * @pcpu: cpumask for the parallel workers.
- * @cbcpu: cpumask for the serial (callback) workers.
- */
-struct padata_cpumask {
- cpumask_var_t pcpu;
- cpumask_var_t cbcpu;
-};
-
-/**
- * struct parallel_data - Internal control structure, covers everything
- * that depends on the cpumask in use.
- *
- * @pinst: padata instance.
- * @pqueue: percpu padata queues used for parallelization.
- * @squeue: percpu padata queues used for serialuzation.
- * @reorder_objects: Number of objects waiting in the reorder queues.
- * @refcnt: Number of objects holding a reference on this parallel_data.
- * @max_seq_nr: Maximal used sequence number.
- * @cpumask: The cpumasks in use for parallel and serial workers.
- * @lock: Reorder lock.
- * @processed: Number of already processed objects.
- * @timer: Reorder timer.
- */
-struct parallel_data {
- struct padata_instance *pinst;
- struct padata_parallel_queue __percpu *pqueue;
- struct padata_serial_queue __percpu *squeue;
- atomic_t reorder_objects;
- atomic_t refcnt;
- struct padata_cpumask cpumask;
- spinlock_t lock ____cacheline_aligned;
- spinlock_t seq_lock;
- unsigned int seq_nr;
- unsigned int processed;
- struct timer_list timer;
-};
-
-/**
- * struct padata_instance - The overall control structure.
- *
- * @cpu_notifier: cpu hotplug notifier.
- * @wq: The workqueue in use.
- * @pd: The internal control structure.
- * @cpumask: User supplied cpumasks for parallel and serial works.
- * @cpumask_change_notifier: Notifiers chain for user-defined notify
- * callbacks that will be called when either @pcpu or @cbcpu
- * or both cpumasks change.
- * @kobj: padata instance kernel object.
- * @lock: padata instance lock.
- * @flags: padata flags.
- */
-struct padata_instance {
- struct notifier_block cpu_notifier;
- struct workqueue_struct *wq;
- struct parallel_data *pd;
- struct padata_cpumask cpumask;
- struct blocking_notifier_head cpumask_change_notifier;
- struct kobject kobj;
- struct mutex lock;
- u8 flags;
-#define PADATA_INIT 1
-#define PADATA_RESET 2
-#define PADATA_INVALID 4
-};
-
-extern struct padata_instance *padata_alloc_possible(
- struct workqueue_struct *wq);
-extern struct padata_instance *padata_alloc(struct workqueue_struct *wq,
- const struct cpumask *pcpumask,
- const struct cpumask *cbcpumask);
-extern void padata_free(struct padata_instance *pinst);
-extern int padata_do_parallel(struct padata_instance *pinst,
- struct padata_priv *padata, int cb_cpu);
-extern void padata_do_serial(struct padata_priv *padata);
-extern int padata_set_cpumask(struct padata_instance *pinst, int cpumask_type,
- cpumask_var_t cpumask);
-extern int padata_set_cpumasks(struct padata_instance *pinst,
- cpumask_var_t pcpumask,
- cpumask_var_t cbcpumask);
-extern int padata_add_cpu(struct padata_instance *pinst, int cpu, int mask);
-extern int padata_remove_cpu(struct padata_instance *pinst, int cpu, int mask);
-extern int padata_start(struct padata_instance *pinst);
-extern void padata_stop(struct padata_instance *pinst);
-extern int padata_register_cpumask_notifier(struct padata_instance *pinst,
- struct notifier_block *nblock);
-extern int padata_unregister_cpumask_notifier(struct padata_instance *pinst,
- struct notifier_block *nblock);
-#endif
diff --git a/ANDROID_3.4.5/include/linux/page-debug-flags.h b/ANDROID_3.4.5/include/linux/page-debug-flags.h
deleted file mode 100644
index 22691f61..00000000
--- a/ANDROID_3.4.5/include/linux/page-debug-flags.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef LINUX_PAGE_DEBUG_FLAGS_H
-#define LINUX_PAGE_DEBUG_FLAGS_H
-
-/*
- * page->debug_flags bits:
- *
- * PAGE_DEBUG_FLAG_POISON is set for poisoned pages. This is used to
- * implement generic debug pagealloc feature. The pages are filled with
- * poison patterns and set this flag after free_pages(). The poisoned
- * pages are verified whether the patterns are not corrupted and clear
- * the flag before alloc_pages().
- */
-
-enum page_debug_flags {
- PAGE_DEBUG_FLAG_POISON, /* Page is poisoned */
- PAGE_DEBUG_FLAG_GUARD,
-};
-
-/*
- * Ensure that CONFIG_WANT_PAGE_DEBUG_FLAGS reliably
- * gets turned off when no debug features are enabling it!
- */
-
-#ifdef CONFIG_WANT_PAGE_DEBUG_FLAGS
-#if !defined(CONFIG_PAGE_POISONING) && \
- !defined(CONFIG_PAGE_GUARD) \
-/* && !defined(CONFIG_PAGE_DEBUG_SOMETHING_ELSE) && ... */
-#error WANT_PAGE_DEBUG_FLAGS is turned on with no debug features!
-#endif
-#endif /* CONFIG_WANT_PAGE_DEBUG_FLAGS */
-
-#endif /* LINUX_PAGE_DEBUG_FLAGS_H */
diff --git a/ANDROID_3.4.5/include/linux/page-flags.h b/ANDROID_3.4.5/include/linux/page-flags.h
deleted file mode 100644
index c88d2a94..00000000
--- a/ANDROID_3.4.5/include/linux/page-flags.h
+++ /dev/null
@@ -1,503 +0,0 @@
-/*
- * Macros for manipulating and testing page->flags
- */
-
-#ifndef PAGE_FLAGS_H
-#define PAGE_FLAGS_H
-
-#include <linux/types.h>
-#include <linux/bug.h>
-#ifndef __GENERATING_BOUNDS_H
-#include <linux/mm_types.h>
-#include <generated/bounds.h>
-#endif /* !__GENERATING_BOUNDS_H */
-
-/*
- * Various page->flags bits:
- *
- * PG_reserved is set for special pages, which can never be swapped out. Some
- * of them might not even exist (eg empty_bad_page)...
- *
- * The PG_private bitflag is set on pagecache pages if they contain filesystem
- * specific data (which is normally at page->private). It can be used by
- * private allocations for its own usage.
- *
- * During initiation of disk I/O, PG_locked is set. This bit is set before I/O
- * and cleared when writeback _starts_ or when read _completes_. PG_writeback
- * is set before writeback starts and cleared when it finishes.
- *
- * PG_locked also pins a page in pagecache, and blocks truncation of the file
- * while it is held.
- *
- * page_waitqueue(page) is a wait queue of all tasks waiting for the page
- * to become unlocked.
- *
- * PG_uptodate tells whether the page's contents is valid. When a read
- * completes, the page becomes uptodate, unless a disk I/O error happened.
- *
- * PG_referenced, PG_reclaim are used for page reclaim for anonymous and
- * file-backed pagecache (see mm/vmscan.c).
- *
- * PG_error is set to indicate that an I/O error occurred on this page.
- *
- * PG_arch_1 is an architecture specific page state bit. The generic code
- * guarantees that this bit is cleared for a page when it first is entered into
- * the page cache.
- *
- * PG_highmem pages are not permanently mapped into the kernel virtual address
- * space, they need to be kmapped separately for doing IO on the pages. The
- * struct page (these bits with information) are always mapped into kernel
- * address space...
- *
- * PG_hwpoison indicates that a page got corrupted in hardware and contains
- * data with incorrect ECC bits that triggered a machine check. Accessing is
- * not safe since it may cause another machine check. Don't touch!
- */
-
-/*
- * Don't use the *_dontuse flags. Use the macros. Otherwise you'll break
- * locked- and dirty-page accounting.
- *
- * The page flags field is split into two parts, the main flags area
- * which extends from the low bits upwards, and the fields area which
- * extends from the high bits downwards.
- *
- * | FIELD | ... | FLAGS |
- * N-1 ^ 0
- * (NR_PAGEFLAGS)
- *
- * The fields area is reserved for fields mapping zone, node (for NUMA) and
- * SPARSEMEM section (for variants of SPARSEMEM that require section ids like
- * SPARSEMEM_EXTREME with !SPARSEMEM_VMEMMAP).
- */
-enum pageflags {
- PG_locked, /* Page is locked. Don't touch. */
- PG_error,
- PG_referenced,
- PG_uptodate,
- PG_dirty,
- PG_lru,
- PG_active,
- PG_slab,
- PG_owner_priv_1, /* Owner use. If pagecache, fs may use*/
- PG_arch_1,
- PG_reserved,
- PG_private, /* If pagecache, has fs-private data */
- PG_private_2, /* If pagecache, has fs aux data */
- PG_writeback, /* Page is under writeback */
-#ifdef CONFIG_PAGEFLAGS_EXTENDED
- PG_head, /* A head page */
- PG_tail, /* A tail page */
-#else
- PG_compound, /* A compound page */
-#endif
- PG_swapcache, /* Swap page: swp_entry_t in private */
- PG_mappedtodisk, /* Has blocks allocated on-disk */
- PG_reclaim, /* To be reclaimed asap */
- PG_swapbacked, /* Page is backed by RAM/swap */
- PG_unevictable, /* Page is "unevictable" */
-#ifdef CONFIG_MMU
- PG_mlocked, /* Page is vma mlocked */
-#endif
-#ifdef CONFIG_ARCH_USES_PG_UNCACHED
- PG_uncached, /* Page has been mapped as uncached */
-#endif
-#ifdef CONFIG_MEMORY_FAILURE
- PG_hwpoison, /* hardware poisoned page. Don't touch */
-#endif
-#ifdef CONFIG_TRANSPARENT_HUGEPAGE
- PG_compound_lock,
-#endif
- __NR_PAGEFLAGS,
-
- /* Filesystems */
- PG_checked = PG_owner_priv_1,
-
- /* Two page bits are conscripted by FS-Cache to maintain local caching
- * state. These bits are set on pages belonging to the netfs's inodes
- * when those inodes are being locally cached.
- */
- PG_fscache = PG_private_2, /* page backed by cache */
-
- /* XEN */
- PG_pinned = PG_owner_priv_1,
- PG_savepinned = PG_dirty,
-
- /* SLOB */
- PG_slob_free = PG_private,
-};
-
-#ifndef __GENERATING_BOUNDS_H
-
-/*
- * Macros to create function definitions for page flags
- */
-#define TESTPAGEFLAG(uname, lname) \
-static inline int Page##uname(const struct page *page) \
- { return test_bit(PG_##lname, &page->flags); }
-
-#define SETPAGEFLAG(uname, lname) \
-static inline void SetPage##uname(struct page *page) \
- { set_bit(PG_##lname, &page->flags); }
-
-#define CLEARPAGEFLAG(uname, lname) \
-static inline void ClearPage##uname(struct page *page) \
- { clear_bit(PG_##lname, &page->flags); }
-
-#define __SETPAGEFLAG(uname, lname) \
-static inline void __SetPage##uname(struct page *page) \
- { __set_bit(PG_##lname, &page->flags); }
-
-#define __CLEARPAGEFLAG(uname, lname) \
-static inline void __ClearPage##uname(struct page *page) \
- { __clear_bit(PG_##lname, &page->flags); }
-
-#define TESTSETFLAG(uname, lname) \
-static inline int TestSetPage##uname(struct page *page) \
- { return test_and_set_bit(PG_##lname, &page->flags); }
-
-#define TESTCLEARFLAG(uname, lname) \
-static inline int TestClearPage##uname(struct page *page) \
- { return test_and_clear_bit(PG_##lname, &page->flags); }
-
-#define __TESTCLEARFLAG(uname, lname) \
-static inline int __TestClearPage##uname(struct page *page) \
- { return __test_and_clear_bit(PG_##lname, &page->flags); }
-
-#define PAGEFLAG(uname, lname) TESTPAGEFLAG(uname, lname) \
- SETPAGEFLAG(uname, lname) CLEARPAGEFLAG(uname, lname)
-
-#define __PAGEFLAG(uname, lname) TESTPAGEFLAG(uname, lname) \
- __SETPAGEFLAG(uname, lname) __CLEARPAGEFLAG(uname, lname)
-
-#define PAGEFLAG_FALSE(uname) \
-static inline int Page##uname(const struct page *page) \
- { return 0; }
-
-#define TESTSCFLAG(uname, lname) \
- TESTSETFLAG(uname, lname) TESTCLEARFLAG(uname, lname)
-
-#define SETPAGEFLAG_NOOP(uname) \
-static inline void SetPage##uname(struct page *page) { }
-
-#define CLEARPAGEFLAG_NOOP(uname) \
-static inline void ClearPage##uname(struct page *page) { }
-
-#define __CLEARPAGEFLAG_NOOP(uname) \
-static inline void __ClearPage##uname(struct page *page) { }
-
-#define TESTCLEARFLAG_FALSE(uname) \
-static inline int TestClearPage##uname(struct page *page) { return 0; }
-
-#define __TESTCLEARFLAG_FALSE(uname) \
-static inline int __TestClearPage##uname(struct page *page) { return 0; }
-
-struct page; /* forward declaration */
-
-TESTPAGEFLAG(Locked, locked)
-PAGEFLAG(Error, error) TESTCLEARFLAG(Error, error)
-PAGEFLAG(Referenced, referenced) TESTCLEARFLAG(Referenced, referenced)
-PAGEFLAG(Dirty, dirty) TESTSCFLAG(Dirty, dirty) __CLEARPAGEFLAG(Dirty, dirty)
-PAGEFLAG(LRU, lru) __CLEARPAGEFLAG(LRU, lru)
-PAGEFLAG(Active, active) __CLEARPAGEFLAG(Active, active)
- TESTCLEARFLAG(Active, active)
-__PAGEFLAG(Slab, slab)
-PAGEFLAG(Checked, checked) /* Used by some filesystems */
-PAGEFLAG(Pinned, pinned) TESTSCFLAG(Pinned, pinned) /* Xen */
-PAGEFLAG(SavePinned, savepinned); /* Xen */
-PAGEFLAG(Reserved, reserved) __CLEARPAGEFLAG(Reserved, reserved)
-PAGEFLAG(SwapBacked, swapbacked) __CLEARPAGEFLAG(SwapBacked, swapbacked)
-
-__PAGEFLAG(SlobFree, slob_free)
-
-/*
- * Private page markings that may be used by the filesystem that owns the page
- * for its own purposes.
- * - PG_private and PG_private_2 cause releasepage() and co to be invoked
- */
-PAGEFLAG(Private, private) __SETPAGEFLAG(Private, private)
- __CLEARPAGEFLAG(Private, private)
-PAGEFLAG(Private2, private_2) TESTSCFLAG(Private2, private_2)
-PAGEFLAG(OwnerPriv1, owner_priv_1) TESTCLEARFLAG(OwnerPriv1, owner_priv_1)
-
-/*
- * Only test-and-set exist for PG_writeback. The unconditional operators are
- * risky: they bypass page accounting.
- */
-TESTPAGEFLAG(Writeback, writeback) TESTSCFLAG(Writeback, writeback)
-PAGEFLAG(MappedToDisk, mappedtodisk)
-
-/* PG_readahead is only used for file reads; PG_reclaim is only for writes */
-PAGEFLAG(Reclaim, reclaim) TESTCLEARFLAG(Reclaim, reclaim)
-PAGEFLAG(Readahead, reclaim) /* Reminder to do async read-ahead */
-
-#ifdef CONFIG_HIGHMEM
-/*
- * Must use a macro here due to header dependency issues. page_zone() is not
- * available at this point.
- */
-#define PageHighMem(__p) is_highmem(page_zone(__p))
-#else
-PAGEFLAG_FALSE(HighMem)
-#endif
-
-#ifdef CONFIG_SWAP
-PAGEFLAG(SwapCache, swapcache)
-#else
-PAGEFLAG_FALSE(SwapCache)
- SETPAGEFLAG_NOOP(SwapCache) CLEARPAGEFLAG_NOOP(SwapCache)
-#endif
-
-PAGEFLAG(Unevictable, unevictable) __CLEARPAGEFLAG(Unevictable, unevictable)
- TESTCLEARFLAG(Unevictable, unevictable)
-
-#ifdef CONFIG_MMU
-PAGEFLAG(Mlocked, mlocked) __CLEARPAGEFLAG(Mlocked, mlocked)
- TESTSCFLAG(Mlocked, mlocked) __TESTCLEARFLAG(Mlocked, mlocked)
-#else
-PAGEFLAG_FALSE(Mlocked) SETPAGEFLAG_NOOP(Mlocked)
- TESTCLEARFLAG_FALSE(Mlocked) __TESTCLEARFLAG_FALSE(Mlocked)
-#endif
-
-#ifdef CONFIG_ARCH_USES_PG_UNCACHED
-PAGEFLAG(Uncached, uncached)
-#else
-PAGEFLAG_FALSE(Uncached)
-#endif
-
-#ifdef CONFIG_MEMORY_FAILURE
-PAGEFLAG(HWPoison, hwpoison)
-TESTSCFLAG(HWPoison, hwpoison)
-#define __PG_HWPOISON (1UL << PG_hwpoison)
-#else
-PAGEFLAG_FALSE(HWPoison)
-#define __PG_HWPOISON 0
-#endif
-
-u64 stable_page_flags(struct page *page);
-
-static inline int PageUptodate(struct page *page)
-{
- int ret = test_bit(PG_uptodate, &(page)->flags);
-
- /*
- * Must ensure that the data we read out of the page is loaded
- * _after_ we've loaded page->flags to check for PageUptodate.
- * We can skip the barrier if the page is not uptodate, because
- * we wouldn't be reading anything from it.
- *
- * See SetPageUptodate() for the other side of the story.
- */
- if (ret)
- smp_rmb();
-
- return ret;
-}
-
-static inline void __SetPageUptodate(struct page *page)
-{
- smp_wmb();
- __set_bit(PG_uptodate, &(page)->flags);
-}
-
-static inline void SetPageUptodate(struct page *page)
-{
-#ifdef CONFIG_S390
- if (!test_and_set_bit(PG_uptodate, &page->flags))
- page_set_storage_key(page_to_phys(page), PAGE_DEFAULT_KEY, 0);
-#else
- /*
- * Memory barrier must be issued before setting the PG_uptodate bit,
- * so that all previous stores issued in order to bring the page
- * uptodate are actually visible before PageUptodate becomes true.
- *
- * s390 doesn't need an explicit smp_wmb here because the test and
- * set bit already provides full barriers.
- */
- smp_wmb();
- set_bit(PG_uptodate, &(page)->flags);
-#endif
-}
-
-CLEARPAGEFLAG(Uptodate, uptodate)
-
-extern void cancel_dirty_page(struct page *page, unsigned int account_size);
-
-int test_clear_page_writeback(struct page *page);
-int test_set_page_writeback(struct page *page);
-
-static inline void set_page_writeback(struct page *page)
-{
- test_set_page_writeback(page);
-}
-
-#ifdef CONFIG_PAGEFLAGS_EXTENDED
-/*
- * System with lots of page flags available. This allows separate
- * flags for PageHead() and PageTail() checks of compound pages so that bit
- * tests can be used in performance sensitive paths. PageCompound is
- * generally not used in hot code paths.
- */
-__PAGEFLAG(Head, head) CLEARPAGEFLAG(Head, head)
-__PAGEFLAG(Tail, tail)
-
-static inline int PageCompound(struct page *page)
-{
- return page->flags & ((1L << PG_head) | (1L << PG_tail));
-
-}
-#ifdef CONFIG_TRANSPARENT_HUGEPAGE
-static inline void ClearPageCompound(struct page *page)
-{
- BUG_ON(!PageHead(page));
- ClearPageHead(page);
-}
-#endif
-#else
-/*
- * Reduce page flag use as much as possible by overlapping
- * compound page flags with the flags used for page cache pages. Possible
- * because PageCompound is always set for compound pages and not for
- * pages on the LRU and/or pagecache.
- */
-TESTPAGEFLAG(Compound, compound)
-__PAGEFLAG(Head, compound)
-
-/*
- * PG_reclaim is used in combination with PG_compound to mark the
- * head and tail of a compound page. This saves one page flag
- * but makes it impossible to use compound pages for the page cache.
- * The PG_reclaim bit would have to be used for reclaim or readahead
- * if compound pages enter the page cache.
- *
- * PG_compound & PG_reclaim => Tail page
- * PG_compound & ~PG_reclaim => Head page
- */
-#define PG_head_tail_mask ((1L << PG_compound) | (1L << PG_reclaim))
-
-static inline int PageTail(struct page *page)
-{
- return ((page->flags & PG_head_tail_mask) == PG_head_tail_mask);
-}
-
-static inline void __SetPageTail(struct page *page)
-{
- page->flags |= PG_head_tail_mask;
-}
-
-static inline void __ClearPageTail(struct page *page)
-{
- page->flags &= ~PG_head_tail_mask;
-}
-
-#ifdef CONFIG_TRANSPARENT_HUGEPAGE
-static inline void ClearPageCompound(struct page *page)
-{
- BUG_ON((page->flags & PG_head_tail_mask) != (1 << PG_compound));
- clear_bit(PG_compound, &page->flags);
-}
-#endif
-
-#endif /* !PAGEFLAGS_EXTENDED */
-
-#ifdef CONFIG_TRANSPARENT_HUGEPAGE
-/*
- * PageHuge() only returns true for hugetlbfs pages, but not for
- * normal or transparent huge pages.
- *
- * PageTransHuge() returns true for both transparent huge and
- * hugetlbfs pages, but not normal pages. PageTransHuge() can only be
- * called only in the core VM paths where hugetlbfs pages can't exist.
- */
-static inline int PageTransHuge(struct page *page)
-{
- VM_BUG_ON(PageTail(page));
- return PageHead(page);
-}
-
-/*
- * PageTransCompound returns true for both transparent huge pages
- * and hugetlbfs pages, so it should only be called when it's known
- * that hugetlbfs pages aren't involved.
- */
-static inline int PageTransCompound(struct page *page)
-{
- return PageCompound(page);
-}
-
-/*
- * PageTransTail returns true for both transparent huge pages
- * and hugetlbfs pages, so it should only be called when it's known
- * that hugetlbfs pages aren't involved.
- */
-static inline int PageTransTail(struct page *page)
-{
- return PageTail(page);
-}
-
-#else
-
-static inline int PageTransHuge(struct page *page)
-{
- return 0;
-}
-
-static inline int PageTransCompound(struct page *page)
-{
- return 0;
-}
-
-static inline int PageTransTail(struct page *page)
-{
- return 0;
-}
-#endif
-
-#ifdef CONFIG_MMU
-#define __PG_MLOCKED (1 << PG_mlocked)
-#else
-#define __PG_MLOCKED 0
-#endif
-
-#ifdef CONFIG_TRANSPARENT_HUGEPAGE
-#define __PG_COMPOUND_LOCK (1 << PG_compound_lock)
-#else
-#define __PG_COMPOUND_LOCK 0
-#endif
-
-/*
- * Flags checked when a page is freed. Pages being freed should not have
- * these flags set. It they are, there is a problem.
- */
-#define PAGE_FLAGS_CHECK_AT_FREE \
- (1 << PG_lru | 1 << PG_locked | \
- 1 << PG_private | 1 << PG_private_2 | \
- 1 << PG_writeback | 1 << PG_reserved | \
- 1 << PG_slab | 1 << PG_swapcache | 1 << PG_active | \
- 1 << PG_unevictable | __PG_MLOCKED | __PG_HWPOISON | \
- __PG_COMPOUND_LOCK)
-
-/*
- * Flags checked when a page is prepped for return by the page allocator.
- * Pages being prepped should not have any flags set. It they are set,
- * there has been a kernel bug or struct page corruption.
- */
-#define PAGE_FLAGS_CHECK_AT_PREP ((1 << NR_PAGEFLAGS) - 1)
-
-#define PAGE_FLAGS_PRIVATE \
- (1 << PG_private | 1 << PG_private_2)
-/**
- * page_has_private - Determine if page has private stuff
- * @page: The page to be checked
- *
- * Determine if a page has private stuff, indicating that release routines
- * should be invoked upon it.
- */
-static inline int page_has_private(struct page *page)
-{
- return !!(page->flags & PAGE_FLAGS_PRIVATE);
-}
-
-#endif /* !__GENERATING_BOUNDS_H */
-
-#endif /* PAGE_FLAGS_H */
diff --git a/ANDROID_3.4.5/include/linux/page-isolation.h b/ANDROID_3.4.5/include/linux/page-isolation.h
deleted file mode 100644
index 051c1b1e..00000000
--- a/ANDROID_3.4.5/include/linux/page-isolation.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef __LINUX_PAGEISOLATION_H
-#define __LINUX_PAGEISOLATION_H
-
-/*
- * Changes migrate type in [start_pfn, end_pfn) to be MIGRATE_ISOLATE.
- * If specified range includes migrate types other than MOVABLE,
- * this will fail with -EBUSY.
- *
- * For isolating all pages in the range finally, the caller have to
- * free all pages in the range. test_page_isolated() can be used for
- * test it.
- */
-extern int
-start_isolate_page_range(unsigned long start_pfn, unsigned long end_pfn);
-
-/*
- * Changes MIGRATE_ISOLATE to MIGRATE_MOVABLE.
- * target range is [start_pfn, end_pfn)
- */
-extern int
-undo_isolate_page_range(unsigned long start_pfn, unsigned long end_pfn);
-
-/*
- * test all pages in [start_pfn, end_pfn)are isolated or not.
- */
-extern int
-test_pages_isolated(unsigned long start_pfn, unsigned long end_pfn);
-
-/*
- * Internal funcs.Changes pageblock's migrate type.
- * Please use make_pagetype_isolated()/make_pagetype_movable().
- */
-extern int set_migratetype_isolate(struct page *page);
-extern void unset_migratetype_isolate(struct page *page);
-
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/page_cgroup.h b/ANDROID_3.4.5/include/linux/page_cgroup.h
deleted file mode 100644
index a88cdba2..00000000
--- a/ANDROID_3.4.5/include/linux/page_cgroup.h
+++ /dev/null
@@ -1,145 +0,0 @@
-#ifndef __LINUX_PAGE_CGROUP_H
-#define __LINUX_PAGE_CGROUP_H
-
-enum {
- /* flags for mem_cgroup */
- PCG_LOCK, /* Lock for pc->mem_cgroup and following bits. */
- PCG_USED, /* this object is in use. */
- PCG_MIGRATION, /* under page migration */
- __NR_PCG_FLAGS,
-};
-
-#ifndef __GENERATING_BOUNDS_H
-#include <generated/bounds.h>
-
-#ifdef CONFIG_CGROUP_MEM_RES_CTLR
-#include <linux/bit_spinlock.h>
-
-/*
- * Page Cgroup can be considered as an extended mem_map.
- * A page_cgroup page is associated with every page descriptor. The
- * page_cgroup helps us identify information about the cgroup
- * All page cgroups are allocated at boot or memory hotplug event,
- * then the page cgroup for pfn always exists.
- */
-struct page_cgroup {
- unsigned long flags;
- struct mem_cgroup *mem_cgroup;
-};
-
-void __meminit pgdat_page_cgroup_init(struct pglist_data *pgdat);
-
-#ifdef CONFIG_SPARSEMEM
-static inline void __init page_cgroup_init_flatmem(void)
-{
-}
-extern void __init page_cgroup_init(void);
-#else
-void __init page_cgroup_init_flatmem(void);
-static inline void __init page_cgroup_init(void)
-{
-}
-#endif
-
-struct page_cgroup *lookup_page_cgroup(struct page *page);
-struct page *lookup_cgroup_page(struct page_cgroup *pc);
-
-#define TESTPCGFLAG(uname, lname) \
-static inline int PageCgroup##uname(struct page_cgroup *pc) \
- { return test_bit(PCG_##lname, &pc->flags); }
-
-#define SETPCGFLAG(uname, lname) \
-static inline void SetPageCgroup##uname(struct page_cgroup *pc)\
- { set_bit(PCG_##lname, &pc->flags); }
-
-#define CLEARPCGFLAG(uname, lname) \
-static inline void ClearPageCgroup##uname(struct page_cgroup *pc) \
- { clear_bit(PCG_##lname, &pc->flags); }
-
-#define TESTCLEARPCGFLAG(uname, lname) \
-static inline int TestClearPageCgroup##uname(struct page_cgroup *pc) \
- { return test_and_clear_bit(PCG_##lname, &pc->flags); }
-
-TESTPCGFLAG(Used, USED)
-CLEARPCGFLAG(Used, USED)
-SETPCGFLAG(Used, USED)
-
-SETPCGFLAG(Migration, MIGRATION)
-CLEARPCGFLAG(Migration, MIGRATION)
-TESTPCGFLAG(Migration, MIGRATION)
-
-static inline void lock_page_cgroup(struct page_cgroup *pc)
-{
- /*
- * Don't take this lock in IRQ context.
- * This lock is for pc->mem_cgroup, USED, MIGRATION
- */
- bit_spin_lock(PCG_LOCK, &pc->flags);
-}
-
-static inline void unlock_page_cgroup(struct page_cgroup *pc)
-{
- bit_spin_unlock(PCG_LOCK, &pc->flags);
-}
-
-#else /* CONFIG_CGROUP_MEM_RES_CTLR */
-struct page_cgroup;
-
-static inline void __meminit pgdat_page_cgroup_init(struct pglist_data *pgdat)
-{
-}
-
-static inline struct page_cgroup *lookup_page_cgroup(struct page *page)
-{
- return NULL;
-}
-
-static inline void page_cgroup_init(void)
-{
-}
-
-static inline void __init page_cgroup_init_flatmem(void)
-{
-}
-
-#endif /* CONFIG_CGROUP_MEM_RES_CTLR */
-
-#include <linux/swap.h>
-
-#ifdef CONFIG_CGROUP_MEM_RES_CTLR_SWAP
-extern unsigned short swap_cgroup_cmpxchg(swp_entry_t ent,
- unsigned short old, unsigned short new);
-extern unsigned short swap_cgroup_record(swp_entry_t ent, unsigned short id);
-extern unsigned short lookup_swap_cgroup_id(swp_entry_t ent);
-extern int swap_cgroup_swapon(int type, unsigned long max_pages);
-extern void swap_cgroup_swapoff(int type);
-#else
-
-static inline
-unsigned short swap_cgroup_record(swp_entry_t ent, unsigned short id)
-{
- return 0;
-}
-
-static inline
-unsigned short lookup_swap_cgroup_id(swp_entry_t ent)
-{
- return 0;
-}
-
-static inline int
-swap_cgroup_swapon(int type, unsigned long max_pages)
-{
- return 0;
-}
-
-static inline void swap_cgroup_swapoff(int type)
-{
- return;
-}
-
-#endif /* CONFIG_CGROUP_MEM_RES_CTLR_SWAP */
-
-#endif /* !__GENERATING_BOUNDS_H */
-
-#endif /* __LINUX_PAGE_CGROUP_H */
diff --git a/ANDROID_3.4.5/include/linux/pageblock-flags.h b/ANDROID_3.4.5/include/linux/pageblock-flags.h
deleted file mode 100644
index 19ef95d2..00000000
--- a/ANDROID_3.4.5/include/linux/pageblock-flags.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Macros for manipulating and testing flags related to a
- * pageblock_nr_pages number of pages.
- *
- * 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 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.
- *
- * Copyright (C) IBM Corporation, 2006
- *
- * Original author, Mel Gorman
- * Major cleanups and reduction of bit operations, Andy Whitcroft
- */
-#ifndef PAGEBLOCK_FLAGS_H
-#define PAGEBLOCK_FLAGS_H
-
-#include <linux/types.h>
-
-/* Bit indices that affect a whole block of pages */
-enum pageblock_bits {
- PB_migrate,
- PB_migrate_end = PB_migrate + 3 - 1,
- /* 3 bits required for migrate types */
- NR_PAGEBLOCK_BITS
-};
-
-#ifdef CONFIG_HUGETLB_PAGE
-
-#ifdef CONFIG_HUGETLB_PAGE_SIZE_VARIABLE
-
-/* Huge page sizes are variable */
-extern int pageblock_order;
-
-#else /* CONFIG_HUGETLB_PAGE_SIZE_VARIABLE */
-
-/* Huge pages are a constant size */
-#define pageblock_order HUGETLB_PAGE_ORDER
-
-#endif /* CONFIG_HUGETLB_PAGE_SIZE_VARIABLE */
-
-#else /* CONFIG_HUGETLB_PAGE */
-
-/* If huge pages are not used, group by MAX_ORDER_NR_PAGES */
-#define pageblock_order (MAX_ORDER-1)
-
-#endif /* CONFIG_HUGETLB_PAGE */
-
-#define pageblock_nr_pages (1UL << pageblock_order)
-
-/* Forward declaration */
-struct page;
-
-/* Declarations for getting and setting flags. See mm/page_alloc.c */
-unsigned long get_pageblock_flags_group(struct page *page,
- int start_bitidx, int end_bitidx);
-void set_pageblock_flags_group(struct page *page, unsigned long flags,
- int start_bitidx, int end_bitidx);
-
-#define get_pageblock_flags(page) \
- get_pageblock_flags_group(page, 0, NR_PAGEBLOCK_BITS-1)
-#define set_pageblock_flags(page, flags) \
- set_pageblock_flags_group(page, flags, \
- 0, NR_PAGEBLOCK_BITS-1)
-
-#endif /* PAGEBLOCK_FLAGS_H */
diff --git a/ANDROID_3.4.5/include/linux/pagemap.h b/ANDROID_3.4.5/include/linux/pagemap.h
deleted file mode 100644
index cfaaa694..00000000
--- a/ANDROID_3.4.5/include/linux/pagemap.h
+++ /dev/null
@@ -1,479 +0,0 @@
-#ifndef _LINUX_PAGEMAP_H
-#define _LINUX_PAGEMAP_H
-
-/*
- * Copyright 1995 Linus Torvalds
- */
-#include <linux/mm.h>
-#include <linux/fs.h>
-#include <linux/list.h>
-#include <linux/highmem.h>
-#include <linux/compiler.h>
-#include <asm/uaccess.h>
-#include <linux/gfp.h>
-#include <linux/bitops.h>
-#include <linux/hardirq.h> /* for in_interrupt() */
-#include <linux/hugetlb_inline.h>
-
-/*
- * Bits in mapping->flags. The lower __GFP_BITS_SHIFT bits are the page
- * allocation mode flags.
- */
-enum mapping_flags {
- AS_EIO = __GFP_BITS_SHIFT + 0, /* IO error on async write */
- AS_ENOSPC = __GFP_BITS_SHIFT + 1, /* ENOSPC on async write */
- AS_MM_ALL_LOCKS = __GFP_BITS_SHIFT + 2, /* under mm_take_all_locks() */
- AS_UNEVICTABLE = __GFP_BITS_SHIFT + 3, /* e.g., ramdisk, SHM_LOCK */
-};
-
-static inline void mapping_set_error(struct address_space *mapping, int error)
-{
- if (unlikely(error)) {
- if (error == -ENOSPC)
- set_bit(AS_ENOSPC, &mapping->flags);
- else
- set_bit(AS_EIO, &mapping->flags);
- }
-}
-
-static inline void mapping_set_unevictable(struct address_space *mapping)
-{
- set_bit(AS_UNEVICTABLE, &mapping->flags);
-}
-
-static inline void mapping_clear_unevictable(struct address_space *mapping)
-{
- clear_bit(AS_UNEVICTABLE, &mapping->flags);
-}
-
-static inline int mapping_unevictable(struct address_space *mapping)
-{
- if (mapping)
- return test_bit(AS_UNEVICTABLE, &mapping->flags);
- return !!mapping;
-}
-
-static inline gfp_t mapping_gfp_mask(struct address_space * mapping)
-{
- return (__force gfp_t)mapping->flags & __GFP_BITS_MASK;
-}
-
-/*
- * This is non-atomic. Only to be used before the mapping is activated.
- * Probably needs a barrier...
- */
-static inline void mapping_set_gfp_mask(struct address_space *m, gfp_t mask)
-{
- m->flags = (m->flags & ~(__force unsigned long)__GFP_BITS_MASK) |
- (__force unsigned long)mask;
-}
-
-/*
- * The page cache can done in larger chunks than
- * one page, because it allows for more efficient
- * throughput (it can then be mapped into user
- * space in smaller chunks for same flexibility).
- *
- * Or rather, it _will_ be done in larger chunks.
- */
-#define PAGE_CACHE_SHIFT PAGE_SHIFT
-#define PAGE_CACHE_SIZE PAGE_SIZE
-#define PAGE_CACHE_MASK PAGE_MASK
-#define PAGE_CACHE_ALIGN(addr) (((addr)+PAGE_CACHE_SIZE-1)&PAGE_CACHE_MASK)
-
-#define page_cache_get(page) get_page(page)
-#define page_cache_release(page) put_page(page)
-void release_pages(struct page **pages, int nr, int cold);
-
-/*
- * speculatively take a reference to a page.
- * If the page is free (_count == 0), then _count is untouched, and 0
- * is returned. Otherwise, _count is incremented by 1 and 1 is returned.
- *
- * This function must be called inside the same rcu_read_lock() section as has
- * been used to lookup the page in the pagecache radix-tree (or page table):
- * this allows allocators to use a synchronize_rcu() to stabilize _count.
- *
- * Unless an RCU grace period has passed, the count of all pages coming out
- * of the allocator must be considered unstable. page_count may return higher
- * than expected, and put_page must be able to do the right thing when the
- * page has been finished with, no matter what it is subsequently allocated
- * for (because put_page is what is used here to drop an invalid speculative
- * reference).
- *
- * This is the interesting part of the lockless pagecache (and lockless
- * get_user_pages) locking protocol, where the lookup-side (eg. find_get_page)
- * has the following pattern:
- * 1. find page in radix tree
- * 2. conditionally increment refcount
- * 3. check the page is still in pagecache (if no, goto 1)
- *
- * Remove-side that cares about stability of _count (eg. reclaim) has the
- * following (with tree_lock held for write):
- * A. atomically check refcount is correct and set it to 0 (atomic_cmpxchg)
- * B. remove page from pagecache
- * C. free the page
- *
- * There are 2 critical interleavings that matter:
- * - 2 runs before A: in this case, A sees elevated refcount and bails out
- * - A runs before 2: in this case, 2 sees zero refcount and retries;
- * subsequently, B will complete and 1 will find no page, causing the
- * lookup to return NULL.
- *
- * It is possible that between 1 and 2, the page is removed then the exact same
- * page is inserted into the same position in pagecache. That's OK: the
- * old find_get_page using tree_lock could equally have run before or after
- * such a re-insertion, depending on order that locks are granted.
- *
- * Lookups racing against pagecache insertion isn't a big problem: either 1
- * will find the page or it will not. Likewise, the old find_get_page could run
- * either before the insertion or afterwards, depending on timing.
- */
-static inline int page_cache_get_speculative(struct page *page)
-{
- VM_BUG_ON(in_interrupt());
-
-#if !defined(CONFIG_SMP) && defined(CONFIG_TREE_RCU)
-# ifdef CONFIG_PREEMPT_COUNT
- VM_BUG_ON(!in_atomic());
-# endif
- /*
- * Preempt must be disabled here - we rely on rcu_read_lock doing
- * this for us.
- *
- * Pagecache won't be truncated from interrupt context, so if we have
- * found a page in the radix tree here, we have pinned its refcount by
- * disabling preempt, and hence no need for the "speculative get" that
- * SMP requires.
- */
- VM_BUG_ON(page_count(page) == 0);
- atomic_inc(&page->_count);
-
-#else
- if (unlikely(!get_page_unless_zero(page))) {
- /*
- * Either the page has been freed, or will be freed.
- * In either case, retry here and the caller should
- * do the right thing (see comments above).
- */
- return 0;
- }
-#endif
- VM_BUG_ON(PageTail(page));
-
- return 1;
-}
-
-/*
- * Same as above, but add instead of inc (could just be merged)
- */
-static inline int page_cache_add_speculative(struct page *page, int count)
-{
- VM_BUG_ON(in_interrupt());
-
-#if !defined(CONFIG_SMP) && defined(CONFIG_TREE_RCU)
-# ifdef CONFIG_PREEMPT_COUNT
- VM_BUG_ON(!in_atomic());
-# endif
- VM_BUG_ON(page_count(page) == 0);
- atomic_add(count, &page->_count);
-
-#else
- if (unlikely(!atomic_add_unless(&page->_count, count, 0)))
- return 0;
-#endif
- VM_BUG_ON(PageCompound(page) && page != compound_head(page));
-
- return 1;
-}
-
-static inline int page_freeze_refs(struct page *page, int count)
-{
- return likely(atomic_cmpxchg(&page->_count, count, 0) == count);
-}
-
-static inline void page_unfreeze_refs(struct page *page, int count)
-{
- VM_BUG_ON(page_count(page) != 0);
- VM_BUG_ON(count == 0);
-
- atomic_set(&page->_count, count);
-}
-
-#ifdef CONFIG_NUMA
-extern struct page *__page_cache_alloc(gfp_t gfp);
-#else
-static inline struct page *__page_cache_alloc(gfp_t gfp)
-{
- return alloc_pages(gfp, 0);
-}
-#endif
-
-static inline struct page *page_cache_alloc(struct address_space *x)
-{
- return __page_cache_alloc(mapping_gfp_mask(x));
-}
-
-static inline struct page *page_cache_alloc_cold(struct address_space *x)
-{
- return __page_cache_alloc(mapping_gfp_mask(x)|__GFP_COLD);
-}
-
-static inline struct page *page_cache_alloc_readahead(struct address_space *x)
-{
- return __page_cache_alloc(mapping_gfp_mask(x) |
- __GFP_COLD | __GFP_NORETRY | __GFP_NOWARN);
-}
-
-typedef int filler_t(void *, struct page *);
-
-extern struct page * find_get_page(struct address_space *mapping,
- pgoff_t index);
-extern struct page * find_lock_page(struct address_space *mapping,
- pgoff_t index);
-extern struct page * find_or_create_page(struct address_space *mapping,
- pgoff_t index, gfp_t gfp_mask);
-unsigned find_get_pages(struct address_space *mapping, pgoff_t start,
- unsigned int nr_pages, struct page **pages);
-unsigned find_get_pages_contig(struct address_space *mapping, pgoff_t start,
- unsigned int nr_pages, struct page **pages);
-unsigned find_get_pages_tag(struct address_space *mapping, pgoff_t *index,
- int tag, unsigned int nr_pages, struct page **pages);
-
-struct page *grab_cache_page_write_begin(struct address_space *mapping,
- pgoff_t index, unsigned flags);
-
-/*
- * Returns locked page at given index in given cache, creating it if needed.
- */
-static inline struct page *grab_cache_page(struct address_space *mapping,
- pgoff_t index)
-{
- return find_or_create_page(mapping, index, mapping_gfp_mask(mapping));
-}
-
-extern struct page * grab_cache_page_nowait(struct address_space *mapping,
- pgoff_t index);
-extern struct page * read_cache_page_async(struct address_space *mapping,
- pgoff_t index, filler_t *filler, void *data);
-extern struct page * read_cache_page(struct address_space *mapping,
- pgoff_t index, filler_t *filler, void *data);
-extern struct page * read_cache_page_gfp(struct address_space *mapping,
- pgoff_t index, gfp_t gfp_mask);
-extern int read_cache_pages(struct address_space *mapping,
- struct list_head *pages, filler_t *filler, void *data);
-
-static inline struct page *read_mapping_page_async(
- struct address_space *mapping,
- pgoff_t index, void *data)
-{
- filler_t *filler = (filler_t *)mapping->a_ops->readpage;
- return read_cache_page_async(mapping, index, filler, data);
-}
-
-static inline struct page *read_mapping_page(struct address_space *mapping,
- pgoff_t index, void *data)
-{
- filler_t *filler = (filler_t *)mapping->a_ops->readpage;
- return read_cache_page(mapping, index, filler, data);
-}
-
-/*
- * Return byte-offset into filesystem object for page.
- */
-static inline loff_t page_offset(struct page *page)
-{
- return ((loff_t)page->index) << PAGE_CACHE_SHIFT;
-}
-
-extern pgoff_t linear_hugepage_index(struct vm_area_struct *vma,
- unsigned long address);
-
-static inline pgoff_t linear_page_index(struct vm_area_struct *vma,
- unsigned long address)
-{
- pgoff_t pgoff;
- if (unlikely(is_vm_hugetlb_page(vma)))
- return linear_hugepage_index(vma, address);
- pgoff = (address - vma->vm_start) >> PAGE_SHIFT;
- pgoff += vma->vm_pgoff;
- return pgoff >> (PAGE_CACHE_SHIFT - PAGE_SHIFT);
-}
-
-extern void __lock_page(struct page *page);
-extern int __lock_page_killable(struct page *page);
-extern int __lock_page_or_retry(struct page *page, struct mm_struct *mm,
- unsigned int flags);
-extern void unlock_page(struct page *page);
-
-static inline void __set_page_locked(struct page *page)
-{
- __set_bit(PG_locked, &page->flags);
-}
-
-static inline void __clear_page_locked(struct page *page)
-{
- __clear_bit(PG_locked, &page->flags);
-}
-
-static inline int trylock_page(struct page *page)
-{
- return (likely(!test_and_set_bit_lock(PG_locked, &page->flags)));
-}
-
-/*
- * lock_page may only be called if we have the page's inode pinned.
- */
-static inline void lock_page(struct page *page)
-{
- might_sleep();
- if (!trylock_page(page))
- __lock_page(page);
-}
-
-/*
- * lock_page_killable is like lock_page but can be interrupted by fatal
- * signals. It returns 0 if it locked the page and -EINTR if it was
- * killed while waiting.
- */
-static inline int lock_page_killable(struct page *page)
-{
- might_sleep();
- if (!trylock_page(page))
- return __lock_page_killable(page);
- return 0;
-}
-
-/*
- * lock_page_or_retry - Lock the page, unless this would block and the
- * caller indicated that it can handle a retry.
- */
-static inline int lock_page_or_retry(struct page *page, struct mm_struct *mm,
- unsigned int flags)
-{
- might_sleep();
- return trylock_page(page) || __lock_page_or_retry(page, mm, flags);
-}
-
-/*
- * This is exported only for wait_on_page_locked/wait_on_page_writeback.
- * Never use this directly!
- */
-extern void wait_on_page_bit(struct page *page, int bit_nr);
-
-extern int wait_on_page_bit_killable(struct page *page, int bit_nr);
-
-static inline int wait_on_page_locked_killable(struct page *page)
-{
- if (PageLocked(page))
- return wait_on_page_bit_killable(page, PG_locked);
- return 0;
-}
-
-/*
- * Wait for a page to be unlocked.
- *
- * This must be called with the caller "holding" the page,
- * ie with increased "page->count" so that the page won't
- * go away during the wait..
- */
-static inline void wait_on_page_locked(struct page *page)
-{
- if (PageLocked(page))
- wait_on_page_bit(page, PG_locked);
-}
-
-/*
- * Wait for a page to complete writeback
- */
-static inline void wait_on_page_writeback(struct page *page)
-{
- if (PageWriteback(page))
- wait_on_page_bit(page, PG_writeback);
-}
-
-extern void end_page_writeback(struct page *page);
-
-/*
- * Add an arbitrary waiter to a page's wait queue
- */
-extern void add_page_wait_queue(struct page *page, wait_queue_t *waiter);
-
-/*
- * Fault a userspace page into pagetables. Return non-zero on a fault.
- *
- * This assumes that two userspace pages are always sufficient. That's
- * not true if PAGE_CACHE_SIZE > PAGE_SIZE.
- */
-static inline int fault_in_pages_writeable(char __user *uaddr, int size)
-{
- int ret;
-
- if (unlikely(size == 0))
- return 0;
-
- /*
- * Writing zeroes into userspace here is OK, because we know that if
- * the zero gets there, we'll be overwriting it.
- */
- ret = __put_user(0, uaddr);
- if (ret == 0) {
- char __user *end = uaddr + size - 1;
-
- /*
- * If the page was already mapped, this will get a cache miss
- * for sure, so try to avoid doing it.
- */
- if (((unsigned long)uaddr & PAGE_MASK) !=
- ((unsigned long)end & PAGE_MASK))
- ret = __put_user(0, end);
- }
- return ret;
-}
-
-static inline int fault_in_pages_readable(const char __user *uaddr, int size)
-{
- volatile char c;
- int ret;
-
- if (unlikely(size == 0))
- return 0;
-
- ret = __get_user(c, uaddr);
- if (ret == 0) {
- const char __user *end = uaddr + size - 1;
-
- if (((unsigned long)uaddr & PAGE_MASK) !=
- ((unsigned long)end & PAGE_MASK)) {
- ret = __get_user(c, end);
- (void)c;
- }
- }
- return ret;
-}
-
-int add_to_page_cache_locked(struct page *page, struct address_space *mapping,
- pgoff_t index, gfp_t gfp_mask);
-int add_to_page_cache_lru(struct page *page, struct address_space *mapping,
- pgoff_t index, gfp_t gfp_mask);
-extern void delete_from_page_cache(struct page *page);
-extern void __delete_from_page_cache(struct page *page);
-int replace_page_cache_page(struct page *old, struct page *new, gfp_t gfp_mask);
-
-/*
- * Like add_to_page_cache_locked, but used to add newly allocated pages:
- * the page is new, so we can just run __set_page_locked() against it.
- */
-static inline int add_to_page_cache(struct page *page,
- struct address_space *mapping, pgoff_t offset, gfp_t gfp_mask)
-{
- int error;
-
- __set_page_locked(page);
- error = add_to_page_cache_locked(page, mapping, offset, gfp_mask);
- if (unlikely(error))
- __clear_page_locked(page);
- return error;
-}
-
-#endif /* _LINUX_PAGEMAP_H */
diff --git a/ANDROID_3.4.5/include/linux/pagevec.h b/ANDROID_3.4.5/include/linux/pagevec.h
deleted file mode 100644
index 2aa12b84..00000000
--- a/ANDROID_3.4.5/include/linux/pagevec.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * include/linux/pagevec.h
- *
- * In many places it is efficient to batch an operation up against multiple
- * pages. A pagevec is a multipage container which is used for that.
- */
-
-#ifndef _LINUX_PAGEVEC_H
-#define _LINUX_PAGEVEC_H
-
-/* 14 pointers + two long's align the pagevec structure to a power of two */
-#define PAGEVEC_SIZE 14
-
-struct page;
-struct address_space;
-
-struct pagevec {
- unsigned long nr;
- unsigned long cold;
- struct page *pages[PAGEVEC_SIZE];
-};
-
-void __pagevec_release(struct pagevec *pvec);
-void __pagevec_lru_add(struct pagevec *pvec, enum lru_list lru);
-unsigned pagevec_lookup(struct pagevec *pvec, struct address_space *mapping,
- pgoff_t start, unsigned nr_pages);
-unsigned pagevec_lookup_tag(struct pagevec *pvec,
- struct address_space *mapping, pgoff_t *index, int tag,
- unsigned nr_pages);
-
-static inline void pagevec_init(struct pagevec *pvec, int cold)
-{
- pvec->nr = 0;
- pvec->cold = cold;
-}
-
-static inline void pagevec_reinit(struct pagevec *pvec)
-{
- pvec->nr = 0;
-}
-
-static inline unsigned pagevec_count(struct pagevec *pvec)
-{
- return pvec->nr;
-}
-
-static inline unsigned pagevec_space(struct pagevec *pvec)
-{
- return PAGEVEC_SIZE - pvec->nr;
-}
-
-/*
- * Add a page to a pagevec. Returns the number of slots still available.
- */
-static inline unsigned pagevec_add(struct pagevec *pvec, struct page *page)
-{
- pvec->pages[pvec->nr++] = page;
- return pagevec_space(pvec);
-}
-
-static inline void pagevec_release(struct pagevec *pvec)
-{
- if (pagevec_count(pvec))
- __pagevec_release(pvec);
-}
-
-static inline void __pagevec_lru_add_anon(struct pagevec *pvec)
-{
- __pagevec_lru_add(pvec, LRU_INACTIVE_ANON);
-}
-
-static inline void __pagevec_lru_add_active_anon(struct pagevec *pvec)
-{
- __pagevec_lru_add(pvec, LRU_ACTIVE_ANON);
-}
-
-static inline void __pagevec_lru_add_file(struct pagevec *pvec)
-{
- __pagevec_lru_add(pvec, LRU_INACTIVE_FILE);
-}
-
-static inline void __pagevec_lru_add_active_file(struct pagevec *pvec)
-{
- __pagevec_lru_add(pvec, LRU_ACTIVE_FILE);
-}
-
-static inline void pagevec_lru_add_file(struct pagevec *pvec)
-{
- if (pagevec_count(pvec))
- __pagevec_lru_add_file(pvec);
-}
-
-static inline void pagevec_lru_add_anon(struct pagevec *pvec)
-{
- if (pagevec_count(pvec))
- __pagevec_lru_add_anon(pvec);
-}
-
-#endif /* _LINUX_PAGEVEC_H */
diff --git a/ANDROID_3.4.5/include/linux/param.h b/ANDROID_3.4.5/include/linux/param.h
deleted file mode 100644
index 092e92f6..00000000
--- a/ANDROID_3.4.5/include/linux/param.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef _LINUX_PARAM_H
-#define _LINUX_PARAM_H
-
-#include <asm/param.h>
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/parport.h b/ANDROID_3.4.5/include/linux/parport.h
deleted file mode 100644
index 106c2ca9..00000000
--- a/ANDROID_3.4.5/include/linux/parport.h
+++ /dev/null
@@ -1,568 +0,0 @@
-/*
- * Any part of this program may be used in documents licensed under
- * the GNU Free Documentation License, Version 1.1 or any later version
- * published by the Free Software Foundation.
- */
-
-#ifndef _PARPORT_H_
-#define _PARPORT_H_
-
-/* Start off with user-visible constants */
-
-/* Maximum of 16 ports per machine */
-#define PARPORT_MAX 16
-
-/* Magic numbers */
-#define PARPORT_IRQ_NONE -1
-#define PARPORT_DMA_NONE -1
-#define PARPORT_IRQ_AUTO -2
-#define PARPORT_DMA_AUTO -2
-#define PARPORT_DMA_NOFIFO -3
-#define PARPORT_DISABLE -2
-#define PARPORT_IRQ_PROBEONLY -3
-#define PARPORT_IOHI_AUTO -1
-
-#define PARPORT_CONTROL_STROBE 0x1
-#define PARPORT_CONTROL_AUTOFD 0x2
-#define PARPORT_CONTROL_INIT 0x4
-#define PARPORT_CONTROL_SELECT 0x8
-
-#define PARPORT_STATUS_ERROR 0x8
-#define PARPORT_STATUS_SELECT 0x10
-#define PARPORT_STATUS_PAPEROUT 0x20
-#define PARPORT_STATUS_ACK 0x40
-#define PARPORT_STATUS_BUSY 0x80
-
-/* Type classes for Plug-and-Play probe. */
-typedef enum {
- PARPORT_CLASS_LEGACY = 0, /* Non-IEEE1284 device */
- PARPORT_CLASS_PRINTER,
- PARPORT_CLASS_MODEM,
- PARPORT_CLASS_NET,
- PARPORT_CLASS_HDC, /* Hard disk controller */
- PARPORT_CLASS_PCMCIA,
- PARPORT_CLASS_MEDIA, /* Multimedia device */
- PARPORT_CLASS_FDC, /* Floppy disk controller */
- PARPORT_CLASS_PORTS,
- PARPORT_CLASS_SCANNER,
- PARPORT_CLASS_DIGCAM,
- PARPORT_CLASS_OTHER, /* Anything else */
- PARPORT_CLASS_UNSPEC, /* No CLS field in ID */
- PARPORT_CLASS_SCSIADAPTER
-} parport_device_class;
-
-/* The "modes" entry in parport is a bit field representing the
- capabilities of the hardware. */
-#define PARPORT_MODE_PCSPP (1<<0) /* IBM PC registers available. */
-#define PARPORT_MODE_TRISTATE (1<<1) /* Can tristate. */
-#define PARPORT_MODE_EPP (1<<2) /* Hardware EPP. */
-#define PARPORT_MODE_ECP (1<<3) /* Hardware ECP. */
-#define PARPORT_MODE_COMPAT (1<<4) /* Hardware 'printer protocol'. */
-#define PARPORT_MODE_DMA (1<<5) /* Hardware can DMA. */
-#define PARPORT_MODE_SAFEININT (1<<6) /* SPP registers accessible in IRQ. */
-
-/* IEEE1284 modes:
- Nibble mode, byte mode, ECP, ECPRLE and EPP are their own
- 'extensibility request' values. Others are special.
- 'Real' ECP modes must have the IEEE1284_MODE_ECP bit set. */
-#define IEEE1284_MODE_NIBBLE 0
-#define IEEE1284_MODE_BYTE (1<<0)
-#define IEEE1284_MODE_COMPAT (1<<8)
-#define IEEE1284_MODE_BECP (1<<9) /* Bounded ECP mode */
-#define IEEE1284_MODE_ECP (1<<4)
-#define IEEE1284_MODE_ECPRLE (IEEE1284_MODE_ECP | (1<<5))
-#define IEEE1284_MODE_ECPSWE (1<<10) /* Software-emulated */
-#define IEEE1284_MODE_EPP (1<<6)
-#define IEEE1284_MODE_EPPSL (1<<11) /* EPP 1.7 */
-#define IEEE1284_MODE_EPPSWE (1<<12) /* Software-emulated */
-#define IEEE1284_DEVICEID (1<<2) /* This is a flag */
-#define IEEE1284_EXT_LINK (1<<14) /* This flag causes the
- * extensibility link to
- * be requested, using
- * bits 0-6. */
-
-/* For the benefit of parport_read/write, you can use these with
- * parport_negotiate to use address operations. They have no effect
- * other than to make parport_read/write use address transfers. */
-#define IEEE1284_ADDR (1<<13) /* This is a flag */
-#define IEEE1284_DATA 0 /* So is this */
-
-/* Flags for block transfer operations. */
-#define PARPORT_EPP_FAST (1<<0) /* Unreliable counts. */
-#define PARPORT_W91284PIC (1<<1) /* have a Warp9 w91284pic in the device */
-
-/* The rest is for the kernel only */
-#ifdef __KERNEL__
-
-#include <linux/jiffies.h>
-#include <linux/proc_fs.h>
-#include <linux/spinlock.h>
-#include <linux/wait.h>
-#include <linux/irqreturn.h>
-#include <linux/semaphore.h>
-#include <asm/ptrace.h>
-
-/* Define this later. */
-struct parport;
-struct pardevice;
-
-struct pc_parport_state {
- unsigned int ctr;
- unsigned int ecr;
-};
-
-struct ax_parport_state {
- unsigned int ctr;
- unsigned int ecr;
- unsigned int dcsr;
-};
-
-/* used by both parport_amiga and parport_mfc3 */
-struct amiga_parport_state {
- unsigned char data; /* ciaa.prb */
- unsigned char datadir; /* ciaa.ddrb */
- unsigned char status; /* ciab.pra & 7 */
- unsigned char statusdir;/* ciab.ddrb & 7 */
-};
-
-struct ax88796_parport_state {
- unsigned char cpr;
-};
-
-struct ip32_parport_state {
- unsigned int dcr;
- unsigned int ecr;
-};
-
-struct parport_state {
- union {
- struct pc_parport_state pc;
- /* ARC has no state. */
- struct ax_parport_state ax;
- struct amiga_parport_state amiga;
- struct ax88796_parport_state ax88796;
- /* Atari has not state. */
- struct ip32_parport_state ip32;
- void *misc;
- } u;
-};
-
-struct parport_operations {
- /* IBM PC-style virtual registers. */
- void (*write_data)(struct parport *, unsigned char);
- unsigned char (*read_data)(struct parport *);
-
- void (*write_control)(struct parport *, unsigned char);
- unsigned char (*read_control)(struct parport *);
- unsigned char (*frob_control)(struct parport *, unsigned char mask,
- unsigned char val);
-
- unsigned char (*read_status)(struct parport *);
-
- /* IRQs. */
- void (*enable_irq)(struct parport *);
- void (*disable_irq)(struct parport *);
-
- /* Data direction. */
- void (*data_forward) (struct parport *);
- void (*data_reverse) (struct parport *);
-
- /* For core parport code. */
- void (*init_state)(struct pardevice *, struct parport_state *);
- void (*save_state)(struct parport *, struct parport_state *);
- void (*restore_state)(struct parport *, struct parport_state *);
-
- /* Block read/write */
- size_t (*epp_write_data) (struct parport *port, const void *buf,
- size_t len, int flags);
- size_t (*epp_read_data) (struct parport *port, void *buf, size_t len,
- int flags);
- size_t (*epp_write_addr) (struct parport *port, const void *buf,
- size_t len, int flags);
- size_t (*epp_read_addr) (struct parport *port, void *buf, size_t len,
- int flags);
-
- size_t (*ecp_write_data) (struct parport *port, const void *buf,
- size_t len, int flags);
- size_t (*ecp_read_data) (struct parport *port, void *buf, size_t len,
- int flags);
- size_t (*ecp_write_addr) (struct parport *port, const void *buf,
- size_t len, int flags);
-
- size_t (*compat_write_data) (struct parport *port, const void *buf,
- size_t len, int flags);
- size_t (*nibble_read_data) (struct parport *port, void *buf,
- size_t len, int flags);
- size_t (*byte_read_data) (struct parport *port, void *buf,
- size_t len, int flags);
- struct module *owner;
-};
-
-struct parport_device_info {
- parport_device_class class;
- const char *class_name;
- const char *mfr;
- const char *model;
- const char *cmdset;
- const char *description;
-};
-
-/* Each device can have two callback functions:
- * 1) a preemption function, called by the resource manager to request
- * that the driver relinquish control of the port. The driver should
- * return zero if it agrees to release the port, and nonzero if it
- * refuses. Do not call parport_release() - the kernel will do this
- * implicitly.
- *
- * 2) a wake-up function, called by the resource manager to tell drivers
- * that the port is available to be claimed. If a driver wants to use
- * the port, it should call parport_claim() here.
- */
-
-/* A parallel port device */
-struct pardevice {
- const char *name;
- struct parport *port;
- int daisy;
- int (*preempt)(void *);
- void (*wakeup)(void *);
- void *private;
- void (*irq_func)(void *);
- unsigned int flags;
- struct pardevice *next;
- struct pardevice *prev;
- struct parport_state *state; /* saved status over preemption */
- wait_queue_head_t wait_q;
- unsigned long int time;
- unsigned long int timeslice;
- volatile long int timeout;
- unsigned long waiting; /* long req'd for set_bit --RR */
- struct pardevice *waitprev;
- struct pardevice *waitnext;
- void * sysctl_table;
-};
-
-/* IEEE1284 information */
-
-/* IEEE1284 phases. These are exposed to userland through ppdev IOCTL
- * PP[GS]ETPHASE, so do not change existing values. */
-enum ieee1284_phase {
- IEEE1284_PH_FWD_DATA,
- IEEE1284_PH_FWD_IDLE,
- IEEE1284_PH_TERMINATE,
- IEEE1284_PH_NEGOTIATION,
- IEEE1284_PH_HBUSY_DNA,
- IEEE1284_PH_REV_IDLE,
- IEEE1284_PH_HBUSY_DAVAIL,
- IEEE1284_PH_REV_DATA,
- IEEE1284_PH_ECP_SETUP,
- IEEE1284_PH_ECP_FWD_TO_REV,
- IEEE1284_PH_ECP_REV_TO_FWD,
- IEEE1284_PH_ECP_DIR_UNKNOWN,
-};
-struct ieee1284_info {
- int mode;
- volatile enum ieee1284_phase phase;
- struct semaphore irq;
-};
-
-/* A parallel port */
-struct parport {
- unsigned long base; /* base address */
- unsigned long base_hi; /* base address (hi - ECR) */
- unsigned int size; /* IO extent */
- const char *name;
- unsigned int modes;
- int irq; /* interrupt (or -1 for none) */
- int dma;
- int muxport; /* which muxport (if any) this is */
- int portnum; /* which physical parallel port (not mux) */
- struct device *dev; /* Physical device associated with IO/DMA.
- * This may unfortulately be null if the
- * port has a legacy driver.
- */
-
- struct parport *physport;
- /* If this is a non-default mux
- parport, i.e. we're a clone of a real
- physical port, this is a pointer to that
- port. The locking is only done in the
- real port. For a clone port, the
- following structure members are
- meaningless: devices, cad, muxsel,
- waithead, waittail, flags, pdir,
- dev, ieee1284, *_lock.
-
- It this is a default mux parport, or
- there is no mux involved, this points to
- ourself. */
-
- struct pardevice *devices;
- struct pardevice *cad; /* port owner */
- int daisy; /* currently selected daisy addr */
- int muxsel; /* currently selected mux port */
-
- struct pardevice *waithead;
- struct pardevice *waittail;
-
- struct list_head list;
- unsigned int flags;
-
- void *sysctl_table;
- struct parport_device_info probe_info[5]; /* 0-3 + non-IEEE1284.3 */
- struct ieee1284_info ieee1284;
-
- struct parport_operations *ops;
- void *private_data; /* for lowlevel driver */
-
- int number; /* port index - the `n' in `parportn' */
- spinlock_t pardevice_lock;
- spinlock_t waitlist_lock;
- rwlock_t cad_lock;
-
- int spintime;
- atomic_t ref_count;
-
- unsigned long devflags;
-#define PARPORT_DEVPROC_REGISTERED 0
- struct pardevice *proc_device; /* Currently register proc device */
-
- struct list_head full_list;
- struct parport *slaves[3];
-};
-
-#define DEFAULT_SPIN_TIME 500 /* us */
-
-struct parport_driver {
- const char *name;
- void (*attach) (struct parport *);
- void (*detach) (struct parport *);
- struct list_head list;
-};
-
-/* parport_register_port registers a new parallel port at the given
- address (if one does not already exist) and returns a pointer to it.
- This entails claiming the I/O region, IRQ and DMA. NULL is returned
- if initialisation fails. */
-struct parport *parport_register_port(unsigned long base, int irq, int dma,
- struct parport_operations *ops);
-
-/* Once a registered port is ready for high-level drivers to use, the
- low-level driver that registered it should announce it. This will
- call the high-level drivers' attach() functions (after things like
- determining the IEEE 1284.3 topology of the port and collecting
- DeviceIDs). */
-void parport_announce_port (struct parport *port);
-
-/* Unregister a port. */
-extern void parport_remove_port(struct parport *port);
-
-/* Register a new high-level driver. */
-extern int parport_register_driver (struct parport_driver *);
-
-/* Unregister a high-level driver. */
-extern void parport_unregister_driver (struct parport_driver *);
-
-/* If parport_register_driver doesn't fit your needs, perhaps
- * parport_find_xxx does. */
-extern struct parport *parport_find_number (int);
-extern struct parport *parport_find_base (unsigned long);
-
-/* generic irq handler, if it suits your needs */
-extern irqreturn_t parport_irq_handler(int irq, void *dev_id);
-
-/* Reference counting for ports. */
-extern struct parport *parport_get_port (struct parport *);
-extern void parport_put_port (struct parport *);
-
-/* parport_register_device declares that a device is connected to a
- port, and tells the kernel all it needs to know.
- - pf is the preemption function (may be NULL for no callback)
- - kf is the wake-up function (may be NULL for no callback)
- - irq_func is the interrupt handler (may be NULL for no interrupts)
- - handle is a user pointer that gets handed to callback functions. */
-struct pardevice *parport_register_device(struct parport *port,
- const char *name,
- int (*pf)(void *), void (*kf)(void *),
- void (*irq_func)(void *),
- int flags, void *handle);
-
-/* parport_unregister unlinks a device from the chain. */
-extern void parport_unregister_device(struct pardevice *dev);
-
-/* parport_claim tries to gain ownership of the port for a particular
- driver. This may fail (return non-zero) if another driver is busy.
- If this driver has registered an interrupt handler, it will be
- enabled. */
-extern int parport_claim(struct pardevice *dev);
-
-/* parport_claim_or_block is the same, but sleeps if the port cannot
- be claimed. Return value is 1 if it slept, 0 normally and -errno
- on error. */
-extern int parport_claim_or_block(struct pardevice *dev);
-
-/* parport_release reverses a previous parport_claim. This can never
- fail, though the effects are undefined (except that they are bad)
- if you didn't previously own the port. Once you have released the
- port you should make sure that neither your code nor the hardware
- on the port tries to initiate any communication without first
- re-claiming the port. If you mess with the port state (enabling
- ECP for example) you should clean up before releasing the port. */
-
-extern void parport_release(struct pardevice *dev);
-
-/**
- * parport_yield - relinquish a parallel port temporarily
- * @dev: a device on the parallel port
- *
- * This function relinquishes the port if it would be helpful to other
- * drivers to do so. Afterwards it tries to reclaim the port using
- * parport_claim(), and the return value is the same as for
- * parport_claim(). If it fails, the port is left unclaimed and it is
- * the driver's responsibility to reclaim the port.
- *
- * The parport_yield() and parport_yield_blocking() functions are for
- * marking points in the driver at which other drivers may claim the
- * port and use their devices. Yielding the port is similar to
- * releasing it and reclaiming it, but is more efficient because no
- * action is taken if there are no other devices needing the port. In
- * fact, nothing is done even if there are other devices waiting but
- * the current device is still within its "timeslice". The default
- * timeslice is half a second, but it can be adjusted via the /proc
- * interface.
- **/
-static __inline__ int parport_yield(struct pardevice *dev)
-{
- unsigned long int timeslip = (jiffies - dev->time);
- if ((dev->port->waithead == NULL) || (timeslip < dev->timeslice))
- return 0;
- parport_release(dev);
- return parport_claim(dev);
-}
-
-/**
- * parport_yield_blocking - relinquish a parallel port temporarily
- * @dev: a device on the parallel port
- *
- * This function relinquishes the port if it would be helpful to other
- * drivers to do so. Afterwards it tries to reclaim the port using
- * parport_claim_or_block(), and the return value is the same as for
- * parport_claim_or_block().
- **/
-static __inline__ int parport_yield_blocking(struct pardevice *dev)
-{
- unsigned long int timeslip = (jiffies - dev->time);
- if ((dev->port->waithead == NULL) || (timeslip < dev->timeslice))
- return 0;
- parport_release(dev);
- return parport_claim_or_block(dev);
-}
-
-/* Flags used to identify what a device does. */
-#define PARPORT_DEV_TRAN 0 /* WARNING !! DEPRECATED !! */
-#define PARPORT_DEV_LURK (1<<0) /* WARNING !! DEPRECATED !! */
-#define PARPORT_DEV_EXCL (1<<1) /* Need exclusive access. */
-
-#define PARPORT_FLAG_EXCL (1<<1) /* EXCL driver registered. */
-
-/* IEEE1284 functions */
-extern void parport_ieee1284_interrupt (void *);
-extern int parport_negotiate (struct parport *, int mode);
-extern ssize_t parport_write (struct parport *, const void *buf, size_t len);
-extern ssize_t parport_read (struct parport *, void *buf, size_t len);
-
-#define PARPORT_INACTIVITY_O_NONBLOCK 1
-extern long parport_set_timeout (struct pardevice *, long inactivity);
-
-extern int parport_wait_event (struct parport *, long timeout);
-extern int parport_wait_peripheral (struct parport *port,
- unsigned char mask,
- unsigned char val);
-extern int parport_poll_peripheral (struct parport *port,
- unsigned char mask,
- unsigned char val,
- int usec);
-
-/* For architectural drivers */
-extern size_t parport_ieee1284_write_compat (struct parport *,
- const void *, size_t, int);
-extern size_t parport_ieee1284_read_nibble (struct parport *,
- void *, size_t, int);
-extern size_t parport_ieee1284_read_byte (struct parport *,
- void *, size_t, int);
-extern size_t parport_ieee1284_ecp_read_data (struct parport *,
- void *, size_t, int);
-extern size_t parport_ieee1284_ecp_write_data (struct parport *,
- const void *, size_t, int);
-extern size_t parport_ieee1284_ecp_write_addr (struct parport *,
- const void *, size_t, int);
-extern size_t parport_ieee1284_epp_write_data (struct parport *,
- const void *, size_t, int);
-extern size_t parport_ieee1284_epp_read_data (struct parport *,
- void *, size_t, int);
-extern size_t parport_ieee1284_epp_write_addr (struct parport *,
- const void *, size_t, int);
-extern size_t parport_ieee1284_epp_read_addr (struct parport *,
- void *, size_t, int);
-
-/* IEEE1284.3 functions */
-extern int parport_daisy_init (struct parport *port);
-extern void parport_daisy_fini (struct parport *port);
-extern struct pardevice *parport_open (int devnum, const char *name);
-extern void parport_close (struct pardevice *dev);
-extern ssize_t parport_device_id (int devnum, char *buffer, size_t len);
-extern void parport_daisy_deselect_all (struct parport *port);
-extern int parport_daisy_select (struct parport *port, int daisy, int mode);
-
-/* Lowlevel drivers _can_ call this support function to handle irqs. */
-static inline void parport_generic_irq(struct parport *port)
-{
- parport_ieee1284_interrupt (port);
- read_lock(&port->cad_lock);
- if (port->cad && port->cad->irq_func)
- port->cad->irq_func(port->cad->private);
- read_unlock(&port->cad_lock);
-}
-
-/* Prototypes from parport_procfs */
-extern int parport_proc_register(struct parport *pp);
-extern int parport_proc_unregister(struct parport *pp);
-extern int parport_device_proc_register(struct pardevice *device);
-extern int parport_device_proc_unregister(struct pardevice *device);
-
-/* If PC hardware is the only type supported, we can optimise a bit. */
-#if !defined(CONFIG_PARPORT_NOT_PC)
-
-#include <linux/parport_pc.h>
-#define parport_write_data(p,x) parport_pc_write_data(p,x)
-#define parport_read_data(p) parport_pc_read_data(p)
-#define parport_write_control(p,x) parport_pc_write_control(p,x)
-#define parport_read_control(p) parport_pc_read_control(p)
-#define parport_frob_control(p,m,v) parport_pc_frob_control(p,m,v)
-#define parport_read_status(p) parport_pc_read_status(p)
-#define parport_enable_irq(p) parport_pc_enable_irq(p)
-#define parport_disable_irq(p) parport_pc_disable_irq(p)
-#define parport_data_forward(p) parport_pc_data_forward(p)
-#define parport_data_reverse(p) parport_pc_data_reverse(p)
-
-#else /* !CONFIG_PARPORT_NOT_PC */
-
-/* Generic operations vector through the dispatch table. */
-#define parport_write_data(p,x) (p)->ops->write_data(p,x)
-#define parport_read_data(p) (p)->ops->read_data(p)
-#define parport_write_control(p,x) (p)->ops->write_control(p,x)
-#define parport_read_control(p) (p)->ops->read_control(p)
-#define parport_frob_control(p,m,v) (p)->ops->frob_control(p,m,v)
-#define parport_read_status(p) (p)->ops->read_status(p)
-#define parport_enable_irq(p) (p)->ops->enable_irq(p)
-#define parport_disable_irq(p) (p)->ops->disable_irq(p)
-#define parport_data_forward(p) (p)->ops->data_forward(p)
-#define parport_data_reverse(p) (p)->ops->data_reverse(p)
-
-#endif /* !CONFIG_PARPORT_NOT_PC */
-
-extern unsigned long parport_default_timeslice;
-extern int parport_default_spintime;
-
-#endif /* __KERNEL__ */
-#endif /* _PARPORT_H_ */
diff --git a/ANDROID_3.4.5/include/linux/parport_pc.h b/ANDROID_3.4.5/include/linux/parport_pc.h
deleted file mode 100644
index cc1767f5..00000000
--- a/ANDROID_3.4.5/include/linux/parport_pc.h
+++ /dev/null
@@ -1,238 +0,0 @@
-#ifndef __LINUX_PARPORT_PC_H
-#define __LINUX_PARPORT_PC_H
-
-#include <asm/io.h>
-
-/* --- register definitions ------------------------------- */
-
-#define ECONTROL(p) ((p)->base_hi + 0x2)
-#define CONFIGB(p) ((p)->base_hi + 0x1)
-#define CONFIGA(p) ((p)->base_hi + 0x0)
-#define FIFO(p) ((p)->base_hi + 0x0)
-#define EPPDATA(p) ((p)->base + 0x4)
-#define EPPADDR(p) ((p)->base + 0x3)
-#define CONTROL(p) ((p)->base + 0x2)
-#define STATUS(p) ((p)->base + 0x1)
-#define DATA(p) ((p)->base + 0x0)
-
-struct parport_pc_private {
- /* Contents of CTR. */
- unsigned char ctr;
-
- /* Bitmask of writable CTR bits. */
- unsigned char ctr_writable;
-
- /* Whether or not there's an ECR. */
- int ecr;
-
- /* Number of PWords that FIFO will hold. */
- int fifo_depth;
-
- /* Number of bytes per portword. */
- int pword;
-
- /* Not used yet. */
- int readIntrThreshold;
- int writeIntrThreshold;
-
- /* buffer suitable for DMA, if DMA enabled */
- char *dma_buf;
- dma_addr_t dma_handle;
- struct list_head list;
- struct parport *port;
-};
-
-struct parport_pc_via_data
-{
- /* ISA PnP IRQ routing register 1 */
- u8 via_pci_parport_irq_reg;
- /* ISA PnP DMA request routing register */
- u8 via_pci_parport_dma_reg;
- /* Register and value to enable SuperIO configuration access */
- u8 via_pci_superio_config_reg;
- u8 via_pci_superio_config_data;
- /* SuperIO function register number */
- u8 viacfg_function;
- /* parallel port control register number */
- u8 viacfg_parport_control;
- /* Parallel port base address register */
- u8 viacfg_parport_base;
-};
-
-static __inline__ void parport_pc_write_data(struct parport *p, unsigned char d)
-{
-#ifdef DEBUG_PARPORT
- printk (KERN_DEBUG "parport_pc_write_data(%p,0x%02x)\n", p, d);
-#endif
- outb(d, DATA(p));
-}
-
-static __inline__ unsigned char parport_pc_read_data(struct parport *p)
-{
- unsigned char val = inb (DATA (p));
-#ifdef DEBUG_PARPORT
- printk (KERN_DEBUG "parport_pc_read_data(%p) = 0x%02x\n",
- p, val);
-#endif
- return val;
-}
-
-#ifdef DEBUG_PARPORT
-static inline void dump_parport_state (char *str, struct parport *p)
-{
- /* here's hoping that reading these ports won't side-effect anything underneath */
- unsigned char ecr = inb (ECONTROL (p));
- unsigned char dcr = inb (CONTROL (p));
- unsigned char dsr = inb (STATUS (p));
- static const char *const ecr_modes[] = {"SPP", "PS2", "PPFIFO", "ECP", "xXx", "yYy", "TST", "CFG"};
- const struct parport_pc_private *priv = p->physport->private_data;
- int i;
-
- printk (KERN_DEBUG "*** parport state (%s): ecr=[%s", str, ecr_modes[(ecr & 0xe0) >> 5]);
- if (ecr & 0x10) printk (",nErrIntrEn");
- if (ecr & 0x08) printk (",dmaEn");
- if (ecr & 0x04) printk (",serviceIntr");
- if (ecr & 0x02) printk (",f_full");
- if (ecr & 0x01) printk (",f_empty");
- for (i=0; i<2; i++) {
- printk ("] dcr(%s)=[", i ? "soft" : "hard");
- dcr = i ? priv->ctr : inb (CONTROL (p));
-
- if (dcr & 0x20) {
- printk ("rev");
- } else {
- printk ("fwd");
- }
- if (dcr & 0x10) printk (",ackIntEn");
- if (!(dcr & 0x08)) printk (",N-SELECT-IN");
- if (dcr & 0x04) printk (",N-INIT");
- if (!(dcr & 0x02)) printk (",N-AUTOFD");
- if (!(dcr & 0x01)) printk (",N-STROBE");
- }
- printk ("] dsr=[");
- if (!(dsr & 0x80)) printk ("BUSY");
- if (dsr & 0x40) printk (",N-ACK");
- if (dsr & 0x20) printk (",PERROR");
- if (dsr & 0x10) printk (",SELECT");
- if (dsr & 0x08) printk (",N-FAULT");
- printk ("]\n");
- return;
-}
-#else /* !DEBUG_PARPORT */
-#define dump_parport_state(args...)
-#endif /* !DEBUG_PARPORT */
-
-/* __parport_pc_frob_control differs from parport_pc_frob_control in that
- * it doesn't do any extra masking. */
-static __inline__ unsigned char __parport_pc_frob_control (struct parport *p,
- unsigned char mask,
- unsigned char val)
-{
- struct parport_pc_private *priv = p->physport->private_data;
- unsigned char ctr = priv->ctr;
-#ifdef DEBUG_PARPORT
- printk (KERN_DEBUG
- "__parport_pc_frob_control(%02x,%02x): %02x -> %02x\n",
- mask, val, ctr, ((ctr & ~mask) ^ val) & priv->ctr_writable);
-#endif
- ctr = (ctr & ~mask) ^ val;
- ctr &= priv->ctr_writable; /* only write writable bits. */
- outb (ctr, CONTROL (p));
- priv->ctr = ctr; /* Update soft copy */
- return ctr;
-}
-
-static __inline__ void parport_pc_data_reverse (struct parport *p)
-{
- __parport_pc_frob_control (p, 0x20, 0x20);
-}
-
-static __inline__ void parport_pc_data_forward (struct parport *p)
-{
- __parport_pc_frob_control (p, 0x20, 0x00);
-}
-
-static __inline__ void parport_pc_write_control (struct parport *p,
- unsigned char d)
-{
- const unsigned char wm = (PARPORT_CONTROL_STROBE |
- PARPORT_CONTROL_AUTOFD |
- PARPORT_CONTROL_INIT |
- PARPORT_CONTROL_SELECT);
-
- /* Take this out when drivers have adapted to newer interface. */
- if (d & 0x20) {
- printk (KERN_DEBUG "%s (%s): use data_reverse for this!\n",
- p->name, p->cad->name);
- parport_pc_data_reverse (p);
- }
-
- __parport_pc_frob_control (p, wm, d & wm);
-}
-
-static __inline__ unsigned char parport_pc_read_control(struct parport *p)
-{
- const unsigned char rm = (PARPORT_CONTROL_STROBE |
- PARPORT_CONTROL_AUTOFD |
- PARPORT_CONTROL_INIT |
- PARPORT_CONTROL_SELECT);
- const struct parport_pc_private *priv = p->physport->private_data;
- return priv->ctr & rm; /* Use soft copy */
-}
-
-static __inline__ unsigned char parport_pc_frob_control (struct parport *p,
- unsigned char mask,
- unsigned char val)
-{
- const unsigned char wm = (PARPORT_CONTROL_STROBE |
- PARPORT_CONTROL_AUTOFD |
- PARPORT_CONTROL_INIT |
- PARPORT_CONTROL_SELECT);
-
- /* Take this out when drivers have adapted to newer interface. */
- if (mask & 0x20) {
- printk (KERN_DEBUG "%s (%s): use data_%s for this!\n",
- p->name, p->cad->name,
- (val & 0x20) ? "reverse" : "forward");
- if (val & 0x20)
- parport_pc_data_reverse (p);
- else
- parport_pc_data_forward (p);
- }
-
- /* Restrict mask and val to control lines. */
- mask &= wm;
- val &= wm;
-
- return __parport_pc_frob_control (p, mask, val);
-}
-
-static __inline__ unsigned char parport_pc_read_status(struct parport *p)
-{
- return inb(STATUS(p));
-}
-
-
-static __inline__ void parport_pc_disable_irq(struct parport *p)
-{
- __parport_pc_frob_control (p, 0x10, 0x00);
-}
-
-static __inline__ void parport_pc_enable_irq(struct parport *p)
-{
- __parport_pc_frob_control (p, 0x10, 0x10);
-}
-
-extern void parport_pc_release_resources(struct parport *p);
-
-extern int parport_pc_claim_resources(struct parport *p);
-
-/* PCMCIA code will want to get us to look at a port. Provide a mechanism. */
-extern struct parport *parport_pc_probe_port(unsigned long base,
- unsigned long base_hi,
- int irq, int dma,
- struct device *dev,
- int irqflags);
-extern void parport_pc_unregister_port(struct parport *p);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/parser.h b/ANDROID_3.4.5/include/linux/parser.h
deleted file mode 100644
index ea2281e7..00000000
--- a/ANDROID_3.4.5/include/linux/parser.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * linux/include/linux/parser.h
- *
- * Header for lib/parser.c
- * Intended use of these functions is parsing filesystem argument lists,
- * but could potentially be used anywhere else that simple option=arg
- * parsing is required.
- */
-
-
-/* associates an integer enumerator with a pattern string. */
-struct match_token {
- int token;
- const char *pattern;
-};
-
-typedef struct match_token match_table_t[];
-
-/* Maximum number of arguments that match_token will find in a pattern */
-enum {MAX_OPT_ARGS = 3};
-
-/* Describe the location within a string of a substring */
-typedef struct {
- char *from;
- char *to;
-} substring_t;
-
-int match_token(char *, const match_table_t table, substring_t args[]);
-int match_int(substring_t *, int *result);
-int match_octal(substring_t *, int *result);
-int match_hex(substring_t *, int *result);
-size_t match_strlcpy(char *, const substring_t *, size_t);
-char *match_strdup(const substring_t *);
diff --git a/ANDROID_3.4.5/include/linux/pata_arasan_cf_data.h b/ANDROID_3.4.5/include/linux/pata_arasan_cf_data.h
deleted file mode 100644
index a6ee9aa8..00000000
--- a/ANDROID_3.4.5/include/linux/pata_arasan_cf_data.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * include/linux/pata_arasan_cf_data.h
- *
- * Arasan Compact Flash host controller platform data header file
- *
- * Copyright (C) 2011 ST Microelectronics
- * Viresh Kumar <viresh.kumar@st.com>
- *
- * This file is licensed under the terms of the GNU General Public
- * License version 2. This program is licensed "as is" without any
- * warranty of any kind, whether express or implied.
- */
-
-#ifndef _PATA_ARASAN_CF_DATA_H
-#define _PATA_ARASAN_CF_DATA_H
-
-#include <linux/platform_device.h>
-
-struct arasan_cf_pdata {
- u8 cf_if_clk;
- #define CF_IF_CLK_100M (0x0)
- #define CF_IF_CLK_75M (0x1)
- #define CF_IF_CLK_66M (0x2)
- #define CF_IF_CLK_50M (0x3)
- #define CF_IF_CLK_40M (0x4)
- #define CF_IF_CLK_33M (0x5)
- #define CF_IF_CLK_25M (0x6)
- #define CF_IF_CLK_125M (0x7)
- #define CF_IF_CLK_150M (0x8)
- #define CF_IF_CLK_166M (0x9)
- #define CF_IF_CLK_200M (0xA)
- /*
- * Platform specific incapabilities of CF controller is handled via
- * quirks
- */
- u32 quirk;
- #define CF_BROKEN_PIO (1)
- #define CF_BROKEN_MWDMA (1 << 1)
- #define CF_BROKEN_UDMA (1 << 2)
- /* This is platform specific data for the DMA controller */
- void *dma_priv;
-};
-
-static inline void
-set_arasan_cf_pdata(struct platform_device *pdev, struct arasan_cf_pdata *data)
-{
- pdev->dev.platform_data = data;
-}
-#endif /* _PATA_ARASAN_CF_DATA_H */
diff --git a/ANDROID_3.4.5/include/linux/patchkey.h b/ANDROID_3.4.5/include/linux/patchkey.h
deleted file mode 100644
index aefda0ec..00000000
--- a/ANDROID_3.4.5/include/linux/patchkey.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * <linux/patchkey.h> -- definition of _PATCHKEY macro
- *
- * Copyright (C) 2005 Stuart Brady
- *
- * This exists because awe_voice.h defined its own _PATCHKEY and it wasn't
- * clear whether removing this would break anything in userspace.
- *
- * Do not include this file directly. Please use <sys/soundcard.h> instead.
- * For kernel code, use <linux/soundcard.h>
- */
-
-#ifndef _LINUX_PATCHKEY_H_INDIRECT
-#error "patchkey.h included directly"
-#endif
-
-#ifndef _LINUX_PATCHKEY_H
-#define _LINUX_PATCHKEY_H
-
-/* Endian macros. */
-#ifdef __KERNEL__
-# include <asm/byteorder.h>
-#else
-# include <endian.h>
-#endif
-
-#if defined(__KERNEL__)
-# if defined(__BIG_ENDIAN)
-# define _PATCHKEY(id) (0xfd00|id)
-# elif defined(__LITTLE_ENDIAN)
-# define _PATCHKEY(id) ((id<<8)|0x00fd)
-# else
-# error "could not determine byte order"
-# endif
-#else
-#if defined(__BYTE_ORDER)
-# if __BYTE_ORDER == __BIG_ENDIAN
-# define _PATCHKEY(id) (0xfd00|id)
-# elif __BYTE_ORDER == __LITTLE_ENDIAN
-# define _PATCHKEY(id) ((id<<8)|0x00fd)
-# else
-# error "could not determine byte order"
-# endif
-#endif
-#endif
-
-#endif /* _LINUX_PATCHKEY_H */
diff --git a/ANDROID_3.4.5/include/linux/path.h b/ANDROID_3.4.5/include/linux/path.h
deleted file mode 100644
index edc98dec..00000000
--- a/ANDROID_3.4.5/include/linux/path.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef _LINUX_PATH_H
-#define _LINUX_PATH_H
-
-struct dentry;
-struct vfsmount;
-
-struct path {
- struct vfsmount *mnt;
- struct dentry *dentry;
-};
-
-extern void path_get(struct path *);
-extern void path_put(struct path *);
-
-static inline int path_equal(const struct path *path1, const struct path *path2)
-{
- return path1->mnt == path2->mnt && path1->dentry == path2->dentry;
-}
-
-#endif /* _LINUX_PATH_H */
diff --git a/ANDROID_3.4.5/include/linux/pch_dma.h b/ANDROID_3.4.5/include/linux/pch_dma.h
deleted file mode 100644
index fdafe529..00000000
--- a/ANDROID_3.4.5/include/linux/pch_dma.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2010 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.
- *
- * 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.
- */
-
-#ifndef PCH_DMA_H
-#define PCH_DMA_H
-
-#include <linux/dmaengine.h>
-
-enum pch_dma_width {
- PCH_DMA_WIDTH_1_BYTE,
- PCH_DMA_WIDTH_2_BYTES,
- PCH_DMA_WIDTH_4_BYTES,
-};
-
-struct pch_dma_slave {
- struct device *dma_dev;
- unsigned int chan_id;
- dma_addr_t tx_reg;
- dma_addr_t rx_reg;
- enum pch_dma_width width;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/pci-acpi.h b/ANDROID_3.4.5/include/linux/pci-acpi.h
deleted file mode 100644
index 44623500..00000000
--- a/ANDROID_3.4.5/include/linux/pci-acpi.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * File pci-acpi.h
- *
- * Copyright (C) 2004 Intel
- * Copyright (C) Tom Long Nguyen (tom.l.nguyen@intel.com)
- */
-
-#ifndef _PCI_ACPI_H_
-#define _PCI_ACPI_H_
-
-#include <linux/acpi.h>
-
-#ifdef CONFIG_ACPI
-extern acpi_status pci_acpi_add_bus_pm_notifier(struct acpi_device *dev,
- struct pci_bus *pci_bus);
-extern acpi_status pci_acpi_remove_bus_pm_notifier(struct acpi_device *dev);
-extern acpi_status pci_acpi_add_pm_notifier(struct acpi_device *dev,
- struct pci_dev *pci_dev);
-extern acpi_status pci_acpi_remove_pm_notifier(struct acpi_device *dev);
-
-static inline acpi_handle acpi_find_root_bridge_handle(struct pci_dev *pdev)
-{
- struct pci_bus *pbus = pdev->bus;
- /* Find a PCI root bus */
- while (!pci_is_root_bus(pbus))
- pbus = pbus->parent;
- return acpi_get_pci_rootbridge_handle(pci_domain_nr(pbus),
- pbus->number);
-}
-
-static inline acpi_handle acpi_pci_get_bridge_handle(struct pci_bus *pbus)
-{
- if (!pci_is_root_bus(pbus))
- return DEVICE_ACPI_HANDLE(&(pbus->self->dev));
- return acpi_get_pci_rootbridge_handle(pci_domain_nr(pbus),
- pbus->number);
-}
-#endif
-
-#ifdef CONFIG_ACPI_APEI
-extern bool aer_acpi_firmware_first(void);
-#else
-static inline bool aer_acpi_firmware_first(void) { return false; }
-#endif
-
-#endif /* _PCI_ACPI_H_ */
diff --git a/ANDROID_3.4.5/include/linux/pci-aspm.h b/ANDROID_3.4.5/include/linux/pci-aspm.h
deleted file mode 100644
index c8320144..00000000
--- a/ANDROID_3.4.5/include/linux/pci-aspm.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * aspm.h
- *
- * PCI Express ASPM defines and function prototypes
- *
- * Copyright (C) 2007 Intel Corp.
- * Zhang Yanmin (yanmin.zhang@intel.com)
- * Shaohua Li (shaohua.li@intel.com)
- *
- * For more information, please consult the following manuals (look at
- * http://www.pcisig.com/ for how to get them):
- *
- * PCI Express Specification
- */
-
-#ifndef LINUX_ASPM_H
-#define LINUX_ASPM_H
-
-#include <linux/pci.h>
-
-#define PCIE_LINK_STATE_L0S 1
-#define PCIE_LINK_STATE_L1 2
-#define PCIE_LINK_STATE_CLKPM 4
-
-#ifdef CONFIG_PCIEASPM
-extern void pcie_aspm_init_link_state(struct pci_dev *pdev);
-extern void pcie_aspm_exit_link_state(struct pci_dev *pdev);
-extern void pcie_aspm_pm_state_change(struct pci_dev *pdev);
-extern void pcie_aspm_powersave_config_link(struct pci_dev *pdev);
-extern void pci_disable_link_state(struct pci_dev *pdev, int state);
-extern void pci_disable_link_state_locked(struct pci_dev *pdev, int state);
-extern void pcie_clear_aspm(struct pci_bus *bus);
-extern void pcie_no_aspm(void);
-#else
-static inline void pcie_aspm_init_link_state(struct pci_dev *pdev)
-{
-}
-static inline void pcie_aspm_exit_link_state(struct pci_dev *pdev)
-{
-}
-static inline void pcie_aspm_pm_state_change(struct pci_dev *pdev)
-{
-}
-static inline void pcie_aspm_powersave_config_link(struct pci_dev *pdev)
-{
-}
-static inline void pci_disable_link_state(struct pci_dev *pdev, int state)
-{
-}
-static inline void pcie_clear_aspm(struct pci_bus *bus)
-{
-}
-static inline void pcie_no_aspm(void)
-{
-}
-#endif
-
-#ifdef CONFIG_PCIEASPM_DEBUG /* this depends on CONFIG_PCIEASPM */
-extern void pcie_aspm_create_sysfs_dev_files(struct pci_dev *pdev);
-extern void pcie_aspm_remove_sysfs_dev_files(struct pci_dev *pdev);
-#else
-static inline void pcie_aspm_create_sysfs_dev_files(struct pci_dev *pdev)
-{
-}
-static inline void pcie_aspm_remove_sysfs_dev_files(struct pci_dev *pdev)
-{
-}
-#endif
-#endif /* LINUX_ASPM_H */
diff --git a/ANDROID_3.4.5/include/linux/pci-ats.h b/ANDROID_3.4.5/include/linux/pci-ats.h
deleted file mode 100644
index 7ef68724..00000000
--- a/ANDROID_3.4.5/include/linux/pci-ats.h
+++ /dev/null
@@ -1,127 +0,0 @@
-#ifndef LINUX_PCI_ATS_H
-#define LINUX_PCI_ATS_H
-
-#include <linux/pci.h>
-
-/* Address Translation Service */
-struct pci_ats {
- int pos; /* capability position */
- int stu; /* Smallest Translation Unit */
- int qdep; /* Invalidate Queue Depth */
- int ref_cnt; /* Physical Function reference count */
- unsigned int is_enabled:1; /* Enable bit is set */
-};
-
-#ifdef CONFIG_PCI_ATS
-
-extern int pci_enable_ats(struct pci_dev *dev, int ps);
-extern void pci_disable_ats(struct pci_dev *dev);
-extern int pci_ats_queue_depth(struct pci_dev *dev);
-
-/**
- * pci_ats_enabled - query the ATS status
- * @dev: the PCI device
- *
- * Returns 1 if ATS capability is enabled, or 0 if not.
- */
-static inline int pci_ats_enabled(struct pci_dev *dev)
-{
- return dev->ats && dev->ats->is_enabled;
-}
-
-#else /* CONFIG_PCI_ATS */
-
-static inline int pci_enable_ats(struct pci_dev *dev, int ps)
-{
- return -ENODEV;
-}
-
-static inline void pci_disable_ats(struct pci_dev *dev)
-{
-}
-
-static inline int pci_ats_queue_depth(struct pci_dev *dev)
-{
- return -ENODEV;
-}
-
-static inline int pci_ats_enabled(struct pci_dev *dev)
-{
- return 0;
-}
-
-#endif /* CONFIG_PCI_ATS */
-
-#ifdef CONFIG_PCI_PRI
-
-extern int pci_enable_pri(struct pci_dev *pdev, u32 reqs);
-extern void pci_disable_pri(struct pci_dev *pdev);
-extern bool pci_pri_enabled(struct pci_dev *pdev);
-extern int pci_reset_pri(struct pci_dev *pdev);
-extern bool pci_pri_stopped(struct pci_dev *pdev);
-extern int pci_pri_status(struct pci_dev *pdev);
-
-#else /* CONFIG_PCI_PRI */
-
-static inline int pci_enable_pri(struct pci_dev *pdev, u32 reqs)
-{
- return -ENODEV;
-}
-
-static inline void pci_disable_pri(struct pci_dev *pdev)
-{
-}
-
-static inline bool pci_pri_enabled(struct pci_dev *pdev)
-{
- return false;
-}
-
-static inline int pci_reset_pri(struct pci_dev *pdev)
-{
- return -ENODEV;
-}
-
-static inline bool pci_pri_stopped(struct pci_dev *pdev)
-{
- return true;
-}
-
-static inline int pci_pri_status(struct pci_dev *pdev)
-{
- return -ENODEV;
-}
-#endif /* CONFIG_PCI_PRI */
-
-#ifdef CONFIG_PCI_PASID
-
-extern int pci_enable_pasid(struct pci_dev *pdev, int features);
-extern void pci_disable_pasid(struct pci_dev *pdev);
-extern int pci_pasid_features(struct pci_dev *pdev);
-extern int pci_max_pasids(struct pci_dev *pdev);
-
-#else /* CONFIG_PCI_PASID */
-
-static inline int pci_enable_pasid(struct pci_dev *pdev, int features)
-{
- return -EINVAL;
-}
-
-static inline void pci_disable_pasid(struct pci_dev *pdev)
-{
-}
-
-static inline int pci_pasid_features(struct pci_dev *pdev)
-{
- return -EINVAL;
-}
-
-static inline int pci_max_pasids(struct pci_dev *pdev)
-{
- return -EINVAL;
-}
-
-#endif /* CONFIG_PCI_PASID */
-
-
-#endif /* LINUX_PCI_ATS_H*/
diff --git a/ANDROID_3.4.5/include/linux/pci-dma.h b/ANDROID_3.4.5/include/linux/pci-dma.h
deleted file mode 100644
index 549a041f..00000000
--- a/ANDROID_3.4.5/include/linux/pci-dma.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef _LINUX_PCI_DMA_H
-#define _LINUX_PCI_DMA_H
-
-#define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) DEFINE_DMA_UNMAP_ADDR(ADDR_NAME);
-#define DECLARE_PCI_UNMAP_LEN(LEN_NAME) DEFINE_DMA_UNMAP_LEN(LEN_NAME);
-#define pci_unmap_addr dma_unmap_addr
-#define pci_unmap_addr_set dma_unmap_addr_set
-#define pci_unmap_len dma_unmap_len
-#define pci_unmap_len_set dma_unmap_len_set
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/pci.h b/ANDROID_3.4.5/include/linux/pci.h
deleted file mode 100644
index e444f5b4..00000000
--- a/ANDROID_3.4.5/include/linux/pci.h
+++ /dev/null
@@ -1,1724 +0,0 @@
-/*
- * pci.h
- *
- * PCI defines and function prototypes
- * Copyright 1994, Drew Eckhardt
- * Copyright 1997--1999 Martin Mares <mj@ucw.cz>
- *
- * For more information, please consult the following manuals (look at
- * http://www.pcisig.com/ for how to get them):
- *
- * PCI BIOS Specification
- * PCI Local Bus Specification
- * PCI to PCI Bridge Specification
- * PCI System Design Guide
- */
-
-#ifndef LINUX_PCI_H
-#define LINUX_PCI_H
-
-#include <linux/pci_regs.h> /* The pci register defines */
-
-/*
- * The PCI interface treats multi-function devices as independent
- * devices. The slot/function address of each device is encoded
- * in a single byte as follows:
- *
- * 7:3 = slot
- * 2:0 = function
- */
-#define PCI_DEVFN(slot, func) ((((slot) & 0x1f) << 3) | ((func) & 0x07))
-#define PCI_SLOT(devfn) (((devfn) >> 3) & 0x1f)
-#define PCI_FUNC(devfn) ((devfn) & 0x07)
-
-/* Ioctls for /proc/bus/pci/X/Y nodes. */
-#define PCIIOC_BASE ('P' << 24 | 'C' << 16 | 'I' << 8)
-#define PCIIOC_CONTROLLER (PCIIOC_BASE | 0x00) /* Get controller for PCI device. */
-#define PCIIOC_MMAP_IS_IO (PCIIOC_BASE | 0x01) /* Set mmap state to I/O space. */
-#define PCIIOC_MMAP_IS_MEM (PCIIOC_BASE | 0x02) /* Set mmap state to MEM space. */
-#define PCIIOC_WRITE_COMBINE (PCIIOC_BASE | 0x03) /* Enable/disable write-combining. */
-
-#ifdef __KERNEL__
-
-#include <linux/mod_devicetable.h>
-
-#include <linux/types.h>
-#include <linux/init.h>
-#include <linux/ioport.h>
-#include <linux/list.h>
-#include <linux/compiler.h>
-#include <linux/errno.h>
-#include <linux/kobject.h>
-#include <linux/atomic.h>
-#include <linux/device.h>
-#include <linux/io.h>
-#include <linux/irqreturn.h>
-
-/* Include the ID list */
-#include <linux/pci_ids.h>
-
-/* pci_slot represents a physical slot */
-struct pci_slot {
- struct pci_bus *bus; /* The bus this slot is on */
- struct list_head list; /* node in list of slots on this bus */
- struct hotplug_slot *hotplug; /* Hotplug info (migrate over time) */
- unsigned char number; /* PCI_SLOT(pci_dev->devfn) */
- struct kobject kobj;
-};
-
-static inline const char *pci_slot_name(const struct pci_slot *slot)
-{
- return kobject_name(&slot->kobj);
-}
-
-/* File state for mmap()s on /proc/bus/pci/X/Y */
-enum pci_mmap_state {
- pci_mmap_io,
- pci_mmap_mem
-};
-
-/* This defines the direction arg to the DMA mapping routines. */
-#define PCI_DMA_BIDIRECTIONAL 0
-#define PCI_DMA_TODEVICE 1
-#define PCI_DMA_FROMDEVICE 2
-#define PCI_DMA_NONE 3
-
-/*
- * For PCI devices, the region numbers are assigned this way:
- */
-enum {
- /* #0-5: standard PCI resources */
- PCI_STD_RESOURCES,
- PCI_STD_RESOURCE_END = 5,
-
- /* #6: expansion ROM resource */
- PCI_ROM_RESOURCE,
-
- /* device specific resources */
-#ifdef CONFIG_PCI_IOV
- PCI_IOV_RESOURCES,
- PCI_IOV_RESOURCE_END = PCI_IOV_RESOURCES + PCI_SRIOV_NUM_BARS - 1,
-#endif
-
- /* resources assigned to buses behind the bridge */
-#define PCI_BRIDGE_RESOURCE_NUM 4
-
- PCI_BRIDGE_RESOURCES,
- PCI_BRIDGE_RESOURCE_END = PCI_BRIDGE_RESOURCES +
- PCI_BRIDGE_RESOURCE_NUM - 1,
-
- /* total resources associated with a PCI device */
- PCI_NUM_RESOURCES,
-
- /* preserve this for compatibility */
- DEVICE_COUNT_RESOURCE = PCI_NUM_RESOURCES,
-};
-
-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)
-
-/* Remember to update this when the list above changes! */
-extern const char *pci_power_names[];
-
-static inline const char *pci_power_name(pci_power_t state)
-{
- return pci_power_names[1 + (int) state];
-}
-
-#define PCI_PM_D2_DELAY 200
-#define PCI_PM_D3_WAIT 10
-#define PCI_PM_BUS_WAIT 50
-
-/** The pci_channel state describes connectivity between the CPU and
- * the pci device. If some PCI bus between here and the pci device
- * has crashed or locked up, this info is reflected here.
- */
-typedef unsigned int __bitwise pci_channel_state_t;
-
-enum pci_channel_state {
- /* I/O channel is in normal state */
- pci_channel_io_normal = (__force pci_channel_state_t) 1,
-
- /* I/O to channel is blocked */
- pci_channel_io_frozen = (__force pci_channel_state_t) 2,
-
- /* PCI card is dead */
- pci_channel_io_perm_failure = (__force pci_channel_state_t) 3,
-};
-
-typedef unsigned int __bitwise pcie_reset_state_t;
-
-enum pcie_reset_state {
- /* Reset is NOT asserted (Use to deassert reset) */
- pcie_deassert_reset = (__force pcie_reset_state_t) 1,
-
- /* Use #PERST to reset PCI-E device */
- pcie_warm_reset = (__force pcie_reset_state_t) 2,
-
- /* Use PCI-E Hot Reset to reset device */
- pcie_hot_reset = (__force pcie_reset_state_t) 3
-};
-
-typedef unsigned short __bitwise pci_dev_flags_t;
-enum pci_dev_flags {
- /* INTX_DISABLE in PCI_COMMAND register disables MSI
- * generation too.
- */
- PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG = (__force pci_dev_flags_t) 1,
- /* Device configuration is irrevocably lost if disabled into D3 */
- PCI_DEV_FLAGS_NO_D3 = (__force pci_dev_flags_t) 2,
- /* Provide indication device is assigned by a Virtual Machine Manager */
- PCI_DEV_FLAGS_ASSIGNED = (__force pci_dev_flags_t) 4,
-};
-
-enum pci_irq_reroute_variant {
- INTEL_IRQ_REROUTE_VARIANT = 1,
- MAX_IRQ_REROUTE_VARIANTS = 3
-};
-
-typedef unsigned short __bitwise pci_bus_flags_t;
-enum pci_bus_flags {
- PCI_BUS_FLAGS_NO_MSI = (__force pci_bus_flags_t) 1,
- PCI_BUS_FLAGS_NO_MMRBC = (__force pci_bus_flags_t) 2,
-};
-
-/* Based on the PCI Hotplug Spec, but some values are made up by us */
-enum pci_bus_speed {
- PCI_SPEED_33MHz = 0x00,
- PCI_SPEED_66MHz = 0x01,
- PCI_SPEED_66MHz_PCIX = 0x02,
- PCI_SPEED_100MHz_PCIX = 0x03,
- PCI_SPEED_133MHz_PCIX = 0x04,
- PCI_SPEED_66MHz_PCIX_ECC = 0x05,
- PCI_SPEED_100MHz_PCIX_ECC = 0x06,
- PCI_SPEED_133MHz_PCIX_ECC = 0x07,
- PCI_SPEED_66MHz_PCIX_266 = 0x09,
- PCI_SPEED_100MHz_PCIX_266 = 0x0a,
- PCI_SPEED_133MHz_PCIX_266 = 0x0b,
- AGP_UNKNOWN = 0x0c,
- AGP_1X = 0x0d,
- AGP_2X = 0x0e,
- AGP_4X = 0x0f,
- AGP_8X = 0x10,
- PCI_SPEED_66MHz_PCIX_533 = 0x11,
- PCI_SPEED_100MHz_PCIX_533 = 0x12,
- PCI_SPEED_133MHz_PCIX_533 = 0x13,
- PCIE_SPEED_2_5GT = 0x14,
- PCIE_SPEED_5_0GT = 0x15,
- PCIE_SPEED_8_0GT = 0x16,
- PCI_SPEED_UNKNOWN = 0xff,
-};
-
-struct pci_cap_saved_data {
- char cap_nr;
- unsigned int size;
- u32 data[0];
-};
-
-struct pci_cap_saved_state {
- struct hlist_node next;
- struct pci_cap_saved_data cap;
-};
-
-struct pcie_link_state;
-struct pci_vpd;
-struct pci_sriov;
-struct pci_ats;
-
-/*
- * The pci_dev structure is used to describe PCI devices.
- */
-struct pci_dev {
- struct list_head bus_list; /* node in per-bus list */
- struct pci_bus *bus; /* bus this device is on */
- struct pci_bus *subordinate; /* bus this device bridges to */
-
- void *sysdata; /* hook for sys-specific extension */
- struct proc_dir_entry *procent; /* device entry in /proc/bus/pci */
- struct pci_slot *slot; /* Physical slot this device is in */
-
- unsigned int devfn; /* encoded device & function index */
- unsigned short vendor;
- unsigned short device;
- unsigned short subsystem_vendor;
- unsigned short subsystem_device;
- unsigned int class; /* 3 bytes: (base,sub,prog-if) */
- u8 revision; /* PCI revision, low byte of class word */
- u8 hdr_type; /* PCI header type (`multi' flag masked out) */
- u8 pcie_cap; /* PCI-E capability offset */
- u8 pcie_type:4; /* PCI-E device/port type */
- u8 pcie_mpss:3; /* PCI-E Max Payload Size Supported */
- u8 rom_base_reg; /* which config register controls the ROM */
- u8 pin; /* which interrupt pin this device uses */
-
- struct pci_driver *driver; /* which driver has allocated this device */
- u64 dma_mask; /* Mask of the bits of bus address this
- device implements. Normally this is
- 0xffffffff. You only need to change
- this if your device has broken DMA
- or supports 64-bit transfers. */
-
- struct device_dma_parameters dma_parms;
-
- pci_power_t current_state; /* Current operating state. In ACPI-speak,
- this is D0-D3, D0 being fully functional,
- and D3 being off. */
- int pm_cap; /* PM capability offset in the
- configuration space */
- unsigned int pme_support:5; /* Bitmask of states from which PME#
- can be generated */
- unsigned int pme_interrupt:1;
- unsigned int pme_poll:1; /* Poll device's PME status bit */
- unsigned int d1_support:1; /* Low power state D1 is supported */
- unsigned int d2_support:1; /* Low power state D2 is supported */
- unsigned int no_d1d2:1; /* Only allow D0 and D3 */
- unsigned int mmio_always_on:1; /* disallow turning off io/mem
- decoding during bar sizing */
- unsigned int wakeup_prepared:1;
- unsigned int d3_delay; /* D3->D0 transition time in ms */
-
-#ifdef CONFIG_PCIEASPM
- struct pcie_link_state *link_state; /* ASPM link state. */
-#endif
-
- pci_channel_state_t error_state; /* current connectivity state */
- struct device dev; /* Generic device interface */
-
- int cfg_size; /* Size of configuration space */
-
- /*
- * Instead of touching interrupt line and base address registers
- * directly, use the values stored here. They might be different!
- */
- unsigned int irq;
- struct resource resource[DEVICE_COUNT_RESOURCE]; /* I/O and memory regions + expansion ROMs */
-
- /* These fields are used by common fixups */
- unsigned int transparent:1; /* Transparent PCI bridge */
- unsigned int multifunction:1;/* Part of multi-function device */
- /* keep track of device state */
- unsigned int is_added:1;
- unsigned int is_busmaster:1; /* device is busmaster */
- unsigned int no_msi:1; /* device may not use msi */
- unsigned int block_cfg_access:1; /* config space access is blocked */
- unsigned int broken_parity_status:1; /* Device generates false positive parity */
- unsigned int irq_reroute_variant:2; /* device needs IRQ rerouting variant */
- unsigned int msi_enabled:1;
- unsigned int msix_enabled:1;
- unsigned int ari_enabled:1; /* ARI forwarding */
- unsigned int is_managed:1;
- unsigned int is_pcie:1; /* Obsolete. Will be removed.
- Use pci_is_pcie() instead */
- unsigned int needs_freset:1; /* Dev requires fundamental reset */
- unsigned int state_saved:1;
- unsigned int is_physfn:1;
- unsigned int is_virtfn:1;
- unsigned int reset_fn:1;
- unsigned int is_hotplug_bridge:1;
- unsigned int __aer_firmware_first_valid:1;
- unsigned int __aer_firmware_first:1;
- pci_dev_flags_t dev_flags;
- atomic_t enable_cnt; /* pci_enable_device has been called */
-
- u32 saved_config_space[16]; /* config space saved at suspend time */
- struct hlist_head saved_cap_space;
- struct bin_attribute *rom_attr; /* attribute descriptor for sysfs ROM entry */
- int rom_attr_enabled; /* has display of the rom attribute been enabled? */
- struct bin_attribute *res_attr[DEVICE_COUNT_RESOURCE]; /* sysfs file for resources */
- struct bin_attribute *res_attr_wc[DEVICE_COUNT_RESOURCE]; /* sysfs file for WC mapping of resources */
-#ifdef CONFIG_PCI_MSI
- struct list_head msi_list;
- struct kset *msi_kset;
-#endif
- struct pci_vpd *vpd;
-#ifdef CONFIG_PCI_ATS
- union {
- struct pci_sriov *sriov; /* SR-IOV capability related */
- struct pci_dev *physfn; /* the PF this VF is associated with */
- };
- struct pci_ats *ats; /* Address Translation Service */
-#endif
-};
-
-static inline struct pci_dev *pci_physfn(struct pci_dev *dev)
-{
-#ifdef CONFIG_PCI_IOV
- if (dev->is_virtfn)
- dev = dev->physfn;
-#endif
-
- return dev;
-}
-
-extern struct pci_dev *alloc_pci_dev(void);
-
-#define pci_dev_b(n) list_entry(n, struct pci_dev, bus_list)
-#define to_pci_dev(n) container_of(n, struct pci_dev, dev)
-#define for_each_pci_dev(d) while ((d = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, d)) != NULL)
-
-static inline int pci_channel_offline(struct pci_dev *pdev)
-{
- return (pdev->error_state != pci_channel_io_normal);
-}
-
-struct pci_host_bridge_window {
- struct list_head list;
- struct resource *res; /* host bridge aperture (CPU address) */
- resource_size_t offset; /* bus address + offset = CPU address */
-};
-
-struct pci_host_bridge {
- struct list_head list;
- struct pci_bus *bus; /* root bus */
- struct list_head windows; /* pci_host_bridge_windows */
-};
-
-/*
- * The first PCI_BRIDGE_RESOURCE_NUM PCI bus resources (those that correspond
- * to P2P or CardBus bridge windows) go in a table. Additional ones (for
- * buses below host bridges or subtractive decode bridges) go in the list.
- * Use pci_bus_for_each_resource() to iterate through all the resources.
- */
-
-/*
- * PCI_SUBTRACTIVE_DECODE means the bridge forwards the window implicitly
- * and there's no way to program the bridge with the details of the window.
- * This does not apply to ACPI _CRS windows, even with the _DEC subtractive-
- * decode bit set, because they are explicit and can be programmed with _SRS.
- */
-#define PCI_SUBTRACTIVE_DECODE 0x1
-
-struct pci_bus_resource {
- struct list_head list;
- struct resource *res;
- unsigned int flags;
-};
-
-#define PCI_REGION_FLAG_MASK 0x0fU /* These bits of resource flags tell us the PCI region flags */
-
-struct pci_bus {
- struct list_head node; /* node in list of buses */
- struct pci_bus *parent; /* parent bus this bridge is on */
- struct list_head children; /* list of child buses */
- struct list_head devices; /* list of devices on this bus */
- struct pci_dev *self; /* bridge device as seen by parent */
- struct list_head slots; /* list of slots on this bus */
- struct resource *resource[PCI_BRIDGE_RESOURCE_NUM];
- struct list_head resources; /* address space routed to this bus */
-
- struct pci_ops *ops; /* configuration access functions */
- void *sysdata; /* hook for sys-specific extension */
- struct proc_dir_entry *procdir; /* directory entry in /proc/bus/pci */
-
- unsigned char number; /* bus number */
- unsigned char primary; /* number of primary bridge */
- unsigned char secondary; /* number of secondary bridge */
- unsigned char subordinate; /* max number of subordinate buses */
- unsigned char max_bus_speed; /* enum pci_bus_speed */
- unsigned char cur_bus_speed; /* enum pci_bus_speed */
-
- char name[48];
-
- unsigned short bridge_ctl; /* manage NO_ISA/FBB/et al behaviors */
- pci_bus_flags_t bus_flags; /* Inherited by child busses */
- struct device *bridge;
- struct device dev;
- struct bin_attribute *legacy_io; /* legacy I/O for this bus */
- struct bin_attribute *legacy_mem; /* legacy mem */
- unsigned int is_added:1;
-};
-
-#define pci_bus_b(n) list_entry(n, struct pci_bus, node)
-#define to_pci_bus(n) container_of(n, struct pci_bus, dev)
-
-/*
- * Returns true if the pci bus is root (behind host-pci bridge),
- * false otherwise
- */
-static inline bool pci_is_root_bus(struct pci_bus *pbus)
-{
- return !(pbus->parent);
-}
-
-#ifdef CONFIG_PCI_MSI
-static inline bool pci_dev_msi_enabled(struct pci_dev *pci_dev)
-{
- return pci_dev->msi_enabled || pci_dev->msix_enabled;
-}
-#else
-static inline bool pci_dev_msi_enabled(struct pci_dev *pci_dev) { return false; }
-#endif
-
-/*
- * Error values that may be returned by PCI functions.
- */
-#define PCIBIOS_SUCCESSFUL 0x00
-#define PCIBIOS_FUNC_NOT_SUPPORTED 0x81
-#define PCIBIOS_BAD_VENDOR_ID 0x83
-#define PCIBIOS_DEVICE_NOT_FOUND 0x86
-#define PCIBIOS_BAD_REGISTER_NUMBER 0x87
-#define PCIBIOS_SET_FAILED 0x88
-#define PCIBIOS_BUFFER_TOO_SMALL 0x89
-
-/* Low-level architecture-dependent routines */
-
-struct pci_ops {
- int (*read)(struct pci_bus *bus, unsigned int devfn, int where, int size, u32 *val);
- int (*write)(struct pci_bus *bus, unsigned int devfn, int where, int size, u32 val);
-};
-
-/*
- * ACPI needs to be able to access PCI config space before we've done a
- * PCI bus scan and created pci_bus structures.
- */
-extern int raw_pci_read(unsigned int domain, unsigned int bus,
- unsigned int devfn, int reg, int len, u32 *val);
-extern int raw_pci_write(unsigned int domain, unsigned int bus,
- unsigned int devfn, int reg, int len, u32 val);
-
-struct pci_bus_region {
- resource_size_t start;
- resource_size_t end;
-};
-
-struct pci_dynids {
- spinlock_t lock; /* protects list, index */
- struct list_head list; /* for IDs added at runtime */
-};
-
-/* ---------------------------------------------------------------- */
-/** PCI Error Recovery System (PCI-ERS). If a PCI device driver provides
- * a set of callbacks in struct pci_error_handlers, then that device driver
- * will be notified of PCI bus errors, and will be driven to recovery
- * when an error occurs.
- */
-
-typedef unsigned int __bitwise pci_ers_result_t;
-
-enum pci_ers_result {
- /* no result/none/not supported in device driver */
- PCI_ERS_RESULT_NONE = (__force pci_ers_result_t) 1,
-
- /* Device driver can recover without slot reset */
- PCI_ERS_RESULT_CAN_RECOVER = (__force pci_ers_result_t) 2,
-
- /* Device driver wants slot to be reset. */
- PCI_ERS_RESULT_NEED_RESET = (__force pci_ers_result_t) 3,
-
- /* Device has completely failed, is unrecoverable */
- PCI_ERS_RESULT_DISCONNECT = (__force pci_ers_result_t) 4,
-
- /* Device driver is fully recovered and operational */
- PCI_ERS_RESULT_RECOVERED = (__force pci_ers_result_t) 5,
-};
-
-/* PCI bus error event callbacks */
-struct pci_error_handlers {
- /* PCI bus error detected on this device */
- pci_ers_result_t (*error_detected)(struct pci_dev *dev,
- enum pci_channel_state error);
-
- /* MMIO has been re-enabled, but not DMA */
- pci_ers_result_t (*mmio_enabled)(struct pci_dev *dev);
-
- /* PCI Express link has been reset */
- pci_ers_result_t (*link_reset)(struct pci_dev *dev);
-
- /* PCI slot has been reset */
- pci_ers_result_t (*slot_reset)(struct pci_dev *dev);
-
- /* Device driver may resume normal operations */
- void (*resume)(struct pci_dev *dev);
-};
-
-/* ---------------------------------------------------------------- */
-
-struct module;
-struct pci_driver {
- struct list_head node;
- const char *name;
- const struct pci_device_id *id_table; /* must be non-NULL for probe to be called */
- int (*probe) (struct pci_dev *dev, const struct pci_device_id *id); /* New device inserted */
- void (*remove) (struct pci_dev *dev); /* Device removed (NULL if not a hot-plug capable driver) */
- int (*suspend) (struct pci_dev *dev, pm_message_t state); /* Device suspended */
- int (*suspend_late) (struct pci_dev *dev, pm_message_t state);
- int (*resume_early) (struct pci_dev *dev);
- int (*resume) (struct pci_dev *dev); /* Device woken up */
- void (*shutdown) (struct pci_dev *dev);
- struct pci_error_handlers *err_handler;
- struct device_driver driver;
- struct pci_dynids dynids;
-};
-
-#define to_pci_driver(drv) container_of(drv, struct pci_driver, driver)
-
-/**
- * DEFINE_PCI_DEVICE_TABLE - macro used to describe a pci device table
- * @_table: device table name
- *
- * This macro is used to create a struct pci_device_id array (a device table)
- * in a generic manner.
- */
-#define DEFINE_PCI_DEVICE_TABLE(_table) \
- const struct pci_device_id _table[] __devinitconst
-
-/**
- * PCI_DEVICE - macro used to describe a specific pci device
- * @vend: the 16 bit PCI Vendor ID
- * @dev: the 16 bit PCI Device ID
- *
- * This macro is used to create a struct pci_device_id that matches a
- * specific device. The subvendor and subdevice fields will be set to
- * PCI_ANY_ID.
- */
-#define PCI_DEVICE(vend,dev) \
- .vendor = (vend), .device = (dev), \
- .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID
-
-/**
- * PCI_DEVICE_CLASS - macro used to describe a specific pci device class
- * @dev_class: the class, subclass, prog-if triple for this device
- * @dev_class_mask: the class mask for this device
- *
- * This macro is used to create a struct pci_device_id that matches a
- * specific PCI class. The vendor, device, subvendor, and subdevice
- * fields will be set to PCI_ANY_ID.
- */
-#define PCI_DEVICE_CLASS(dev_class,dev_class_mask) \
- .class = (dev_class), .class_mask = (dev_class_mask), \
- .vendor = PCI_ANY_ID, .device = PCI_ANY_ID, \
- .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID
-
-/**
- * PCI_VDEVICE - macro used to describe a specific pci device in short form
- * @vendor: the vendor name
- * @device: the 16 bit PCI Device ID
- *
- * This macro is used to create a struct pci_device_id that matches a
- * specific PCI device. The subvendor, and subdevice fields will be set
- * to PCI_ANY_ID. The macro allows the next field to follow as the device
- * private data.
- */
-
-#define PCI_VDEVICE(vendor, device) \
- PCI_VENDOR_ID_##vendor, (device), \
- PCI_ANY_ID, PCI_ANY_ID, 0, 0
-
-/* these external functions are only available when PCI support is enabled */
-#ifdef CONFIG_PCI
-
-extern void pcie_bus_configure_settings(struct pci_bus *bus, u8 smpss);
-
-enum pcie_bus_config_types {
- PCIE_BUS_TUNE_OFF,
- PCIE_BUS_SAFE,
- PCIE_BUS_PERFORMANCE,
- PCIE_BUS_PEER2PEER,
-};
-
-extern enum pcie_bus_config_types pcie_bus_config;
-
-extern struct bus_type pci_bus_type;
-
-/* Do NOT directly access these two variables, unless you are arch specific pci
- * code, or pci core code. */
-extern struct list_head pci_root_buses; /* list of all known PCI buses */
-/* Some device drivers need know if pci is initiated */
-extern int no_pci_devices(void);
-
-void pcibios_fixup_bus(struct pci_bus *);
-int __must_check pcibios_enable_device(struct pci_dev *, int mask);
-char *pcibios_setup(char *str);
-
-/* Used only when drivers/pci/setup.c is used */
-resource_size_t pcibios_align_resource(void *, const struct resource *,
- resource_size_t,
- resource_size_t);
-void pcibios_update_irq(struct pci_dev *, int irq);
-
-/* Weak but can be overriden by arch */
-void pci_fixup_cardbus(struct pci_bus *);
-
-/* Generic PCI functions used internally */
-
-void pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region,
- struct resource *res);
-void pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res,
- struct pci_bus_region *region);
-void pcibios_scan_specific_bus(int busn);
-extern struct pci_bus *pci_find_bus(int domain, int busnr);
-void pci_bus_add_devices(const struct pci_bus *bus);
-struct pci_bus *pci_scan_bus_parented(struct device *parent, int bus,
- struct pci_ops *ops, void *sysdata);
-struct pci_bus *pci_scan_bus(int bus, struct pci_ops *ops, void *sysdata);
-struct pci_bus *pci_create_root_bus(struct device *parent, int bus,
- struct pci_ops *ops, void *sysdata,
- struct list_head *resources);
-struct pci_bus * __devinit pci_scan_root_bus(struct device *parent, int bus,
- struct pci_ops *ops, void *sysdata,
- struct list_head *resources);
-struct pci_bus *pci_add_new_bus(struct pci_bus *parent, struct pci_dev *dev,
- int busnr);
-void pcie_update_link_speed(struct pci_bus *bus, u16 link_status);
-struct pci_slot *pci_create_slot(struct pci_bus *parent, int slot_nr,
- const char *name,
- struct hotplug_slot *hotplug);
-void pci_destroy_slot(struct pci_slot *slot);
-void pci_renumber_slot(struct pci_slot *slot, int slot_nr);
-int pci_scan_slot(struct pci_bus *bus, int devfn);
-struct pci_dev *pci_scan_single_device(struct pci_bus *bus, int devfn);
-void pci_device_add(struct pci_dev *dev, struct pci_bus *bus);
-unsigned int pci_scan_child_bus(struct pci_bus *bus);
-int __must_check pci_bus_add_device(struct pci_dev *dev);
-void pci_read_bridge_bases(struct pci_bus *child);
-struct resource *pci_find_parent_resource(const struct pci_dev *dev,
- struct resource *res);
-u8 pci_swizzle_interrupt_pin(struct pci_dev *dev, u8 pin);
-int pci_get_interrupt_pin(struct pci_dev *dev, struct pci_dev **bridge);
-u8 pci_common_swizzle(struct pci_dev *dev, u8 *pinp);
-extern struct pci_dev *pci_dev_get(struct pci_dev *dev);
-extern void pci_dev_put(struct pci_dev *dev);
-extern void pci_remove_bus(struct pci_bus *b);
-extern void __pci_remove_bus_device(struct pci_dev *dev);
-extern void pci_stop_and_remove_bus_device(struct pci_dev *dev);
-extern void pci_stop_bus_device(struct pci_dev *dev);
-void pci_setup_cardbus(struct pci_bus *bus);
-extern void pci_sort_breadthfirst(void);
-#define dev_is_pci(d) ((d)->bus == &pci_bus_type)
-#define dev_is_pf(d) ((dev_is_pci(d) ? to_pci_dev(d)->is_physfn : false))
-#define dev_num_vf(d) ((dev_is_pci(d) ? pci_num_vf(to_pci_dev(d)) : 0))
-
-/* Generic PCI functions exported to card drivers */
-
-enum pci_lost_interrupt_reason {
- PCI_LOST_IRQ_NO_INFORMATION = 0,
- PCI_LOST_IRQ_DISABLE_MSI,
- PCI_LOST_IRQ_DISABLE_MSIX,
- PCI_LOST_IRQ_DISABLE_ACPI,
-};
-enum pci_lost_interrupt_reason pci_lost_interrupt(struct pci_dev *dev);
-int pci_find_capability(struct pci_dev *dev, int cap);
-int pci_find_next_capability(struct pci_dev *dev, u8 pos, int cap);
-int pci_find_ext_capability(struct pci_dev *dev, int cap);
-int pci_bus_find_ext_capability(struct pci_bus *bus, unsigned int devfn,
- int cap);
-int pci_find_ht_capability(struct pci_dev *dev, int ht_cap);
-int pci_find_next_ht_capability(struct pci_dev *dev, int pos, int ht_cap);
-struct pci_bus *pci_find_next_bus(const struct pci_bus *from);
-
-struct pci_dev *pci_get_device(unsigned int vendor, unsigned int device,
- struct pci_dev *from);
-struct pci_dev *pci_get_subsys(unsigned int vendor, unsigned int device,
- unsigned int ss_vendor, unsigned int ss_device,
- struct pci_dev *from);
-struct pci_dev *pci_get_slot(struct pci_bus *bus, unsigned int devfn);
-struct pci_dev *pci_get_domain_bus_and_slot(int domain, unsigned int bus,
- unsigned int devfn);
-static inline struct pci_dev *pci_get_bus_and_slot(unsigned int bus,
- unsigned int devfn)
-{
- return pci_get_domain_bus_and_slot(0, bus, devfn);
-}
-struct pci_dev *pci_get_class(unsigned int class, struct pci_dev *from);
-int pci_dev_present(const struct pci_device_id *ids);
-
-int pci_bus_read_config_byte(struct pci_bus *bus, unsigned int devfn,
- int where, u8 *val);
-int pci_bus_read_config_word(struct pci_bus *bus, unsigned int devfn,
- int where, u16 *val);
-int pci_bus_read_config_dword(struct pci_bus *bus, unsigned int devfn,
- int where, u32 *val);
-int pci_bus_write_config_byte(struct pci_bus *bus, unsigned int devfn,
- int where, u8 val);
-int pci_bus_write_config_word(struct pci_bus *bus, unsigned int devfn,
- int where, u16 val);
-int pci_bus_write_config_dword(struct pci_bus *bus, unsigned int devfn,
- int where, u32 val);
-struct pci_ops *pci_bus_set_ops(struct pci_bus *bus, struct pci_ops *ops);
-
-static inline int pci_read_config_byte(const struct pci_dev *dev, int where, u8 *val)
-{
- return pci_bus_read_config_byte(dev->bus, dev->devfn, where, val);
-}
-static inline int pci_read_config_word(const struct pci_dev *dev, int where, u16 *val)
-{
- return pci_bus_read_config_word(dev->bus, dev->devfn, where, val);
-}
-static inline int pci_read_config_dword(const struct pci_dev *dev, int where,
- u32 *val)
-{
- return pci_bus_read_config_dword(dev->bus, dev->devfn, where, val);
-}
-static inline int pci_write_config_byte(const struct pci_dev *dev, int where, u8 val)
-{
- return pci_bus_write_config_byte(dev->bus, dev->devfn, where, val);
-}
-static inline int pci_write_config_word(const struct pci_dev *dev, int where, u16 val)
-{
- return pci_bus_write_config_word(dev->bus, dev->devfn, where, val);
-}
-static inline int pci_write_config_dword(const struct pci_dev *dev, int where,
- u32 val)
-{
- return pci_bus_write_config_dword(dev->bus, dev->devfn, where, val);
-}
-
-int __must_check pci_enable_device(struct pci_dev *dev);
-int __must_check pci_enable_device_io(struct pci_dev *dev);
-int __must_check pci_enable_device_mem(struct pci_dev *dev);
-int __must_check pci_reenable_device(struct pci_dev *);
-int __must_check pcim_enable_device(struct pci_dev *pdev);
-void pcim_pin_device(struct pci_dev *pdev);
-
-static inline int pci_is_enabled(struct pci_dev *pdev)
-{
- return (atomic_read(&pdev->enable_cnt) > 0);
-}
-
-static inline int pci_is_managed(struct pci_dev *pdev)
-{
- return pdev->is_managed;
-}
-
-void pci_disable_device(struct pci_dev *dev);
-
-extern unsigned int pcibios_max_latency;
-void pci_set_master(struct pci_dev *dev);
-void pci_clear_master(struct pci_dev *dev);
-
-int pci_set_pcie_reset_state(struct pci_dev *dev, enum pcie_reset_state state);
-int pci_set_cacheline_size(struct pci_dev *dev);
-#define HAVE_PCI_SET_MWI
-int __must_check pci_set_mwi(struct pci_dev *dev);
-int pci_try_set_mwi(struct pci_dev *dev);
-void pci_clear_mwi(struct pci_dev *dev);
-void pci_intx(struct pci_dev *dev, int enable);
-bool pci_intx_mask_supported(struct pci_dev *dev);
-bool pci_check_and_mask_intx(struct pci_dev *dev);
-bool pci_check_and_unmask_intx(struct pci_dev *dev);
-void pci_msi_off(struct pci_dev *dev);
-int pci_set_dma_max_seg_size(struct pci_dev *dev, unsigned int size);
-int pci_set_dma_seg_boundary(struct pci_dev *dev, unsigned long mask);
-int pcix_get_max_mmrbc(struct pci_dev *dev);
-int pcix_get_mmrbc(struct pci_dev *dev);
-int pcix_set_mmrbc(struct pci_dev *dev, int mmrbc);
-int pcie_get_readrq(struct pci_dev *dev);
-int pcie_set_readrq(struct pci_dev *dev, int rq);
-int pcie_get_mps(struct pci_dev *dev);
-int pcie_set_mps(struct pci_dev *dev, int mps);
-int __pci_reset_function(struct pci_dev *dev);
-int __pci_reset_function_locked(struct pci_dev *dev);
-int pci_reset_function(struct pci_dev *dev);
-void pci_update_resource(struct pci_dev *dev, int resno);
-int __must_check pci_assign_resource(struct pci_dev *dev, int i);
-int __must_check pci_reassign_resource(struct pci_dev *dev, int i, resource_size_t add_size, resource_size_t align);
-int pci_select_bars(struct pci_dev *dev, unsigned long flags);
-
-/* ROM control related routines */
-int pci_enable_rom(struct pci_dev *pdev);
-void pci_disable_rom(struct pci_dev *pdev);
-void __iomem __must_check *pci_map_rom(struct pci_dev *pdev, size_t *size);
-void pci_unmap_rom(struct pci_dev *pdev, void __iomem *rom);
-size_t pci_get_rom_size(struct pci_dev *pdev, void __iomem *rom, size_t size);
-
-/* Power management related routines */
-int pci_save_state(struct pci_dev *dev);
-void pci_restore_state(struct pci_dev *dev);
-struct pci_saved_state *pci_store_saved_state(struct pci_dev *dev);
-int pci_load_saved_state(struct pci_dev *dev, struct pci_saved_state *state);
-int pci_load_and_free_saved_state(struct pci_dev *dev,
- struct pci_saved_state **state);
-int __pci_complete_power_transition(struct pci_dev *dev, pci_power_t state);
-int pci_set_power_state(struct pci_dev *dev, pci_power_t state);
-pci_power_t pci_choose_state(struct pci_dev *dev, pm_message_t state);
-bool pci_pme_capable(struct pci_dev *dev, pci_power_t state);
-void pci_pme_active(struct pci_dev *dev, bool enable);
-int __pci_enable_wake(struct pci_dev *dev, pci_power_t state,
- bool runtime, bool enable);
-int pci_wake_from_d3(struct pci_dev *dev, bool enable);
-pci_power_t pci_target_state(struct pci_dev *dev);
-int pci_prepare_to_sleep(struct pci_dev *dev);
-int pci_back_from_sleep(struct pci_dev *dev);
-bool pci_dev_run_wake(struct pci_dev *dev);
-bool pci_check_pme_status(struct pci_dev *dev);
-void pci_pme_wakeup_bus(struct pci_bus *bus);
-
-static inline int pci_enable_wake(struct pci_dev *dev, pci_power_t state,
- bool enable)
-{
- return __pci_enable_wake(dev, state, false, enable);
-}
-
-#define PCI_EXP_IDO_REQUEST (1<<0)
-#define PCI_EXP_IDO_COMPLETION (1<<1)
-void pci_enable_ido(struct pci_dev *dev, unsigned long type);
-void pci_disable_ido(struct pci_dev *dev, unsigned long type);
-
-enum pci_obff_signal_type {
- PCI_EXP_OBFF_SIGNAL_L0 = 0,
- PCI_EXP_OBFF_SIGNAL_ALWAYS = 1,
-};
-int pci_enable_obff(struct pci_dev *dev, enum pci_obff_signal_type);
-void pci_disable_obff(struct pci_dev *dev);
-
-bool pci_ltr_supported(struct pci_dev *dev);
-int pci_enable_ltr(struct pci_dev *dev);
-void pci_disable_ltr(struct pci_dev *dev);
-int pci_set_ltr(struct pci_dev *dev, int snoop_lat_ns, int nosnoop_lat_ns);
-
-/* For use by arch with custom probe code */
-void set_pcie_port_type(struct pci_dev *pdev);
-void set_pcie_hotplug_bridge(struct pci_dev *pdev);
-
-/* Functions for PCI Hotplug drivers to use */
-int pci_bus_find_capability(struct pci_bus *bus, unsigned int devfn, int cap);
-#ifdef CONFIG_HOTPLUG
-unsigned int pci_rescan_bus_bridge_resize(struct pci_dev *bridge);
-unsigned int pci_rescan_bus(struct pci_bus *bus);
-#endif
-
-/* Vital product data routines */
-ssize_t pci_read_vpd(struct pci_dev *dev, loff_t pos, size_t count, void *buf);
-ssize_t pci_write_vpd(struct pci_dev *dev, loff_t pos, size_t count, const void *buf);
-int pci_vpd_truncate(struct pci_dev *dev, size_t size);
-
-/* Helper functions for low-level code (drivers/pci/setup-[bus,res].c) */
-resource_size_t pcibios_retrieve_fw_addr(struct pci_dev *dev, int idx);
-void pci_bus_assign_resources(const struct pci_bus *bus);
-void pci_bus_size_bridges(struct pci_bus *bus);
-int pci_claim_resource(struct pci_dev *, int);
-void pci_assign_unassigned_resources(void);
-void pci_assign_unassigned_bridge_resources(struct pci_dev *bridge);
-void pdev_enable_device(struct pci_dev *);
-int pci_enable_resources(struct pci_dev *, int mask);
-void pci_fixup_irqs(u8 (*)(struct pci_dev *, u8 *),
- int (*)(const struct pci_dev *, u8, u8));
-#define HAVE_PCI_REQ_REGIONS 2
-int __must_check pci_request_regions(struct pci_dev *, const char *);
-int __must_check pci_request_regions_exclusive(struct pci_dev *, const char *);
-void pci_release_regions(struct pci_dev *);
-int __must_check pci_request_region(struct pci_dev *, int, const char *);
-int __must_check pci_request_region_exclusive(struct pci_dev *, int, const char *);
-void pci_release_region(struct pci_dev *, int);
-int pci_request_selected_regions(struct pci_dev *, int, const char *);
-int pci_request_selected_regions_exclusive(struct pci_dev *, int, const char *);
-void pci_release_selected_regions(struct pci_dev *, int);
-
-/* drivers/pci/bus.c */
-void pci_add_resource(struct list_head *resources, struct resource *res);
-void pci_add_resource_offset(struct list_head *resources, struct resource *res,
- resource_size_t offset);
-void pci_free_resource_list(struct list_head *resources);
-void pci_bus_add_resource(struct pci_bus *bus, struct resource *res, unsigned int flags);
-struct resource *pci_bus_resource_n(const struct pci_bus *bus, int n);
-void pci_bus_remove_resources(struct pci_bus *bus);
-
-#define pci_bus_for_each_resource(bus, res, i) \
- for (i = 0; \
- (res = pci_bus_resource_n(bus, i)) || i < PCI_BRIDGE_RESOURCE_NUM; \
- i++)
-
-int __must_check pci_bus_alloc_resource(struct pci_bus *bus,
- struct resource *res, resource_size_t size,
- resource_size_t align, resource_size_t min,
- unsigned int type_mask,
- resource_size_t (*alignf)(void *,
- const struct resource *,
- resource_size_t,
- resource_size_t),
- void *alignf_data);
-void pci_enable_bridges(struct pci_bus *bus);
-
-/* Proper probing supporting hot-pluggable devices */
-int __must_check __pci_register_driver(struct pci_driver *, struct module *,
- const char *mod_name);
-
-/*
- * pci_register_driver must be a macro so that KBUILD_MODNAME can be expanded
- */
-#define pci_register_driver(driver) \
- __pci_register_driver(driver, THIS_MODULE, KBUILD_MODNAME)
-
-void pci_unregister_driver(struct pci_driver *dev);
-
-/**
- * module_pci_driver() - Helper macro for registering a PCI driver
- * @__pci_driver: pci_driver struct
- *
- * Helper macro for PCI drivers which do not do anything special in module
- * init/exit. This eliminates a lot of boilerplate. Each module may only
- * use this macro once, and calling it replaces module_init() and module_exit()
- */
-#define module_pci_driver(__pci_driver) \
- module_driver(__pci_driver, pci_register_driver, \
- pci_unregister_driver)
-
-void pci_stop_and_remove_behind_bridge(struct pci_dev *dev);
-struct pci_driver *pci_dev_driver(const struct pci_dev *dev);
-int pci_add_dynid(struct pci_driver *drv,
- unsigned int vendor, unsigned int device,
- unsigned int subvendor, unsigned int subdevice,
- unsigned int class, unsigned int class_mask,
- unsigned long driver_data);
-const struct pci_device_id *pci_match_id(const struct pci_device_id *ids,
- struct pci_dev *dev);
-int pci_scan_bridge(struct pci_bus *bus, struct pci_dev *dev, int max,
- int pass);
-
-void pci_walk_bus(struct pci_bus *top, int (*cb)(struct pci_dev *, void *),
- void *userdata);
-int pci_cfg_space_size_ext(struct pci_dev *dev);
-int pci_cfg_space_size(struct pci_dev *dev);
-unsigned char pci_bus_max_busnr(struct pci_bus *bus);
-void pci_setup_bridge(struct pci_bus *bus);
-
-#define PCI_VGA_STATE_CHANGE_BRIDGE (1 << 0)
-#define PCI_VGA_STATE_CHANGE_DECODES (1 << 1)
-
-int pci_set_vga_state(struct pci_dev *pdev, bool decode,
- unsigned int command_bits, u32 flags);
-/* kmem_cache style wrapper around pci_alloc_consistent() */
-
-#include <linux/pci-dma.h>
-#include <linux/dmapool.h>
-
-#define pci_pool dma_pool
-#define pci_pool_create(name, pdev, size, align, allocation) \
- dma_pool_create(name, &pdev->dev, size, align, allocation)
-#define pci_pool_destroy(pool) dma_pool_destroy(pool)
-#define pci_pool_alloc(pool, flags, handle) dma_pool_alloc(pool, flags, handle)
-#define pci_pool_free(pool, vaddr, addr) dma_pool_free(pool, vaddr, addr)
-
-enum pci_dma_burst_strategy {
- PCI_DMA_BURST_INFINITY, /* make bursts as large as possible,
- strategy_parameter is N/A */
- PCI_DMA_BURST_BOUNDARY, /* disconnect at every strategy_parameter
- byte boundaries */
- PCI_DMA_BURST_MULTIPLE, /* disconnect at some multiple of
- strategy_parameter byte boundaries */
-};
-
-struct msix_entry {
- u32 vector; /* kernel uses to write allocated vector */
- u16 entry; /* driver uses to specify entry, OS writes */
-};
-
-
-#ifndef CONFIG_PCI_MSI
-static inline int pci_enable_msi_block(struct pci_dev *dev, unsigned int nvec)
-{
- return -1;
-}
-
-static inline void pci_msi_shutdown(struct pci_dev *dev)
-{ }
-static inline void pci_disable_msi(struct pci_dev *dev)
-{ }
-
-static inline int pci_msix_table_size(struct pci_dev *dev)
-{
- return 0;
-}
-static inline int pci_enable_msix(struct pci_dev *dev,
- struct msix_entry *entries, int nvec)
-{
- return -1;
-}
-
-static inline void pci_msix_shutdown(struct pci_dev *dev)
-{ }
-static inline void pci_disable_msix(struct pci_dev *dev)
-{ }
-
-static inline void msi_remove_pci_irq_vectors(struct pci_dev *dev)
-{ }
-
-static inline void pci_restore_msi_state(struct pci_dev *dev)
-{ }
-static inline int pci_msi_enabled(void)
-{
- return 0;
-}
-#else
-extern int pci_enable_msi_block(struct pci_dev *dev, unsigned int nvec);
-extern void pci_msi_shutdown(struct pci_dev *dev);
-extern void pci_disable_msi(struct pci_dev *dev);
-extern int pci_msix_table_size(struct pci_dev *dev);
-extern int pci_enable_msix(struct pci_dev *dev,
- struct msix_entry *entries, int nvec);
-extern void pci_msix_shutdown(struct pci_dev *dev);
-extern void pci_disable_msix(struct pci_dev *dev);
-extern void msi_remove_pci_irq_vectors(struct pci_dev *dev);
-extern void pci_restore_msi_state(struct pci_dev *dev);
-extern int pci_msi_enabled(void);
-#endif
-
-#ifdef CONFIG_PCIEPORTBUS
-extern bool pcie_ports_disabled;
-extern bool pcie_ports_auto;
-#else
-#define pcie_ports_disabled true
-#define pcie_ports_auto false
-#endif
-
-#ifndef CONFIG_PCIEASPM
-static inline int pcie_aspm_enabled(void) { return 0; }
-static inline bool pcie_aspm_support_enabled(void) { return false; }
-#else
-extern int pcie_aspm_enabled(void);
-extern bool pcie_aspm_support_enabled(void);
-#endif
-
-#ifdef CONFIG_PCIEAER
-void pci_no_aer(void);
-bool pci_aer_available(void);
-#else
-static inline void pci_no_aer(void) { }
-static inline bool pci_aer_available(void) { return false; }
-#endif
-
-#ifndef CONFIG_PCIE_ECRC
-static inline void pcie_set_ecrc_checking(struct pci_dev *dev)
-{
- return;
-}
-static inline void pcie_ecrc_get_policy(char *str) {};
-#else
-extern void pcie_set_ecrc_checking(struct pci_dev *dev);
-extern void pcie_ecrc_get_policy(char *str);
-#endif
-
-#define pci_enable_msi(pdev) pci_enable_msi_block(pdev, 1)
-
-#ifdef CONFIG_HT_IRQ
-/* The functions a driver should call */
-int ht_create_irq(struct pci_dev *dev, int idx);
-void ht_destroy_irq(unsigned int irq);
-#endif /* CONFIG_HT_IRQ */
-
-extern void pci_cfg_access_lock(struct pci_dev *dev);
-extern bool pci_cfg_access_trylock(struct pci_dev *dev);
-extern void pci_cfg_access_unlock(struct pci_dev *dev);
-
-/*
- * PCI domain support. Sometimes called PCI segment (eg by ACPI),
- * a PCI domain is defined to be a set of PCI busses which share
- * configuration space.
- */
-#ifdef CONFIG_PCI_DOMAINS
-extern int pci_domains_supported;
-#else
-enum { pci_domains_supported = 0 };
-static inline int pci_domain_nr(struct pci_bus *bus)
-{
- return 0;
-}
-
-static inline int pci_proc_domain(struct pci_bus *bus)
-{
- return 0;
-}
-#endif /* CONFIG_PCI_DOMAINS */
-
-/* some architectures require additional setup to direct VGA traffic */
-typedef int (*arch_set_vga_state_t)(struct pci_dev *pdev, bool decode,
- unsigned int command_bits, u32 flags);
-extern void pci_register_set_vga_state(arch_set_vga_state_t func);
-
-#else /* CONFIG_PCI is not enabled */
-
-/*
- * If the system does not have PCI, clearly these return errors. Define
- * these as simple inline functions to avoid hair in drivers.
- */
-
-#define _PCI_NOP(o, s, t) \
- static inline int pci_##o##_config_##s(struct pci_dev *dev, \
- int where, t val) \
- { return PCIBIOS_FUNC_NOT_SUPPORTED; }
-
-#define _PCI_NOP_ALL(o, x) _PCI_NOP(o, byte, u8 x) \
- _PCI_NOP(o, word, u16 x) \
- _PCI_NOP(o, dword, u32 x)
-_PCI_NOP_ALL(read, *)
-_PCI_NOP_ALL(write,)
-
-static inline struct pci_dev *pci_get_device(unsigned int vendor,
- unsigned int device,
- struct pci_dev *from)
-{
- return NULL;
-}
-
-static inline struct pci_dev *pci_get_subsys(unsigned int vendor,
- unsigned int device,
- unsigned int ss_vendor,
- unsigned int ss_device,
- struct pci_dev *from)
-{
- return NULL;
-}
-
-static inline struct pci_dev *pci_get_class(unsigned int class,
- struct pci_dev *from)
-{
- return NULL;
-}
-
-#define pci_dev_present(ids) (0)
-#define no_pci_devices() (1)
-#define pci_dev_put(dev) do { } while (0)
-
-static inline void pci_set_master(struct pci_dev *dev)
-{ }
-
-static inline int pci_enable_device(struct pci_dev *dev)
-{
- return -EIO;
-}
-
-static inline void pci_disable_device(struct pci_dev *dev)
-{ }
-
-static inline int pci_set_dma_mask(struct pci_dev *dev, u64 mask)
-{
- return -EIO;
-}
-
-static inline int pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask)
-{
- return -EIO;
-}
-
-static inline int pci_set_dma_max_seg_size(struct pci_dev *dev,
- unsigned int size)
-{
- return -EIO;
-}
-
-static inline int pci_set_dma_seg_boundary(struct pci_dev *dev,
- unsigned long mask)
-{
- return -EIO;
-}
-
-static inline int pci_assign_resource(struct pci_dev *dev, int i)
-{
- return -EBUSY;
-}
-
-static inline int __pci_register_driver(struct pci_driver *drv,
- struct module *owner)
-{
- return 0;
-}
-
-static inline int pci_register_driver(struct pci_driver *drv)
-{
- return 0;
-}
-
-static inline void pci_unregister_driver(struct pci_driver *drv)
-{ }
-
-static inline int pci_find_capability(struct pci_dev *dev, int cap)
-{
- return 0;
-}
-
-static inline int pci_find_next_capability(struct pci_dev *dev, u8 post,
- int cap)
-{
- return 0;
-}
-
-static inline int pci_find_ext_capability(struct pci_dev *dev, int cap)
-{
- return 0;
-}
-
-/* Power management related routines */
-static inline int pci_save_state(struct pci_dev *dev)
-{
- return 0;
-}
-
-static inline void pci_restore_state(struct pci_dev *dev)
-{ }
-
-static inline int pci_set_power_state(struct pci_dev *dev, pci_power_t state)
-{
- return 0;
-}
-
-static inline int pci_wake_from_d3(struct pci_dev *dev, bool enable)
-{
- return 0;
-}
-
-static inline pci_power_t pci_choose_state(struct pci_dev *dev,
- pm_message_t state)
-{
- return PCI_D0;
-}
-
-static inline int pci_enable_wake(struct pci_dev *dev, pci_power_t state,
- int enable)
-{
- return 0;
-}
-
-static inline void pci_enable_ido(struct pci_dev *dev, unsigned long type)
-{
-}
-
-static inline void pci_disable_ido(struct pci_dev *dev, unsigned long type)
-{
-}
-
-static inline int pci_enable_obff(struct pci_dev *dev, unsigned long type)
-{
- return 0;
-}
-
-static inline void pci_disable_obff(struct pci_dev *dev)
-{
-}
-
-static inline int pci_request_regions(struct pci_dev *dev, const char *res_name)
-{
- return -EIO;
-}
-
-static inline void pci_release_regions(struct pci_dev *dev)
-{ }
-
-#define pci_dma_burst_advice(pdev, strat, strategy_parameter) do { } while (0)
-
-static inline void pci_block_cfg_access(struct pci_dev *dev)
-{ }
-
-static inline int pci_block_cfg_access_in_atomic(struct pci_dev *dev)
-{ return 0; }
-
-static inline void pci_unblock_cfg_access(struct pci_dev *dev)
-{ }
-
-static inline struct pci_bus *pci_find_next_bus(const struct pci_bus *from)
-{ return NULL; }
-
-static inline struct pci_dev *pci_get_slot(struct pci_bus *bus,
- unsigned int devfn)
-{ return NULL; }
-
-static inline struct pci_dev *pci_get_bus_and_slot(unsigned int bus,
- unsigned int devfn)
-{ return NULL; }
-
-static inline int pci_domain_nr(struct pci_bus *bus)
-{ return 0; }
-
-#define dev_is_pci(d) (false)
-#define dev_is_pf(d) (false)
-#define dev_num_vf(d) (0)
-#endif /* CONFIG_PCI */
-
-/* Include architecture-dependent settings and functions */
-
-#include <asm/pci.h>
-
-#ifndef PCIBIOS_MAX_MEM_32
-#define PCIBIOS_MAX_MEM_32 (-1)
-#endif
-
-/* these helpers provide future and backwards compatibility
- * for accessing popular PCI BAR info */
-#define pci_resource_start(dev, bar) ((dev)->resource[(bar)].start)
-#define pci_resource_end(dev, bar) ((dev)->resource[(bar)].end)
-#define pci_resource_flags(dev, bar) ((dev)->resource[(bar)].flags)
-#define pci_resource_len(dev,bar) \
- ((pci_resource_start((dev), (bar)) == 0 && \
- pci_resource_end((dev), (bar)) == \
- pci_resource_start((dev), (bar))) ? 0 : \
- \
- (pci_resource_end((dev), (bar)) - \
- pci_resource_start((dev), (bar)) + 1))
-
-/* Similar to the helpers above, these manipulate per-pci_dev
- * driver-specific data. They are really just a wrapper around
- * the generic device structure functions of these calls.
- */
-static inline void *pci_get_drvdata(struct pci_dev *pdev)
-{
- return dev_get_drvdata(&pdev->dev);
-}
-
-static inline void pci_set_drvdata(struct pci_dev *pdev, void *data)
-{
- dev_set_drvdata(&pdev->dev, data);
-}
-
-/* If you want to know what to call your pci_dev, ask this function.
- * Again, it's a wrapper around the generic device.
- */
-static inline const char *pci_name(const struct pci_dev *pdev)
-{
- return dev_name(&pdev->dev);
-}
-
-
-/* Some archs don't want to expose struct resource to userland as-is
- * in sysfs and /proc
- */
-#ifndef HAVE_ARCH_PCI_RESOURCE_TO_USER
-static inline void pci_resource_to_user(const struct pci_dev *dev, int bar,
- const struct resource *rsrc, resource_size_t *start,
- resource_size_t *end)
-{
- *start = rsrc->start;
- *end = rsrc->end;
-}
-#endif /* HAVE_ARCH_PCI_RESOURCE_TO_USER */
-
-
-/*
- * The world is not perfect and supplies us with broken PCI devices.
- * For at least a part of these bugs we need a work-around, so both
- * generic (drivers/pci/quirks.c) and per-architecture code can define
- * fixup hooks to be called for particular buggy devices.
- */
-
-struct pci_fixup {
- u16 vendor; /* You can use PCI_ANY_ID here of course */
- u16 device; /* You can use PCI_ANY_ID here of course */
- u32 class; /* You can use PCI_ANY_ID here too */
- unsigned int class_shift; /* should be 0, 8, 16 */
- void (*hook)(struct pci_dev *dev);
-};
-
-enum pci_fixup_pass {
- pci_fixup_early, /* Before probing BARs */
- pci_fixup_header, /* After reading configuration header */
- pci_fixup_final, /* Final phase of device fixups */
- pci_fixup_enable, /* pci_enable_device() time */
- pci_fixup_resume, /* pci_device_resume() */
- pci_fixup_suspend, /* pci_device_suspend */
- pci_fixup_resume_early, /* pci_device_resume_early() */
-};
-
-/* Anonymous variables would be nice... */
-#define DECLARE_PCI_FIXUP_SECTION(section, name, vendor, device, class, \
- class_shift, hook) \
- static const struct pci_fixup const __pci_fixup_##name __used \
- __attribute__((__section__(#section), aligned((sizeof(void *))))) \
- = { vendor, device, class, class_shift, hook };
-
-#define DECLARE_PCI_FIXUP_CLASS_EARLY(vendor, device, class, \
- class_shift, hook) \
- DECLARE_PCI_FIXUP_SECTION(.pci_fixup_early, \
- vendor##device##hook, vendor, device, class, class_shift, hook)
-#define DECLARE_PCI_FIXUP_CLASS_HEADER(vendor, device, class, \
- class_shift, hook) \
- DECLARE_PCI_FIXUP_SECTION(.pci_fixup_header, \
- vendor##device##hook, vendor, device, class, class_shift, hook)
-#define DECLARE_PCI_FIXUP_CLASS_FINAL(vendor, device, class, \
- class_shift, hook) \
- DECLARE_PCI_FIXUP_SECTION(.pci_fixup_final, \
- vendor##device##hook, vendor, device, class, class_shift, hook)
-#define DECLARE_PCI_FIXUP_CLASS_ENABLE(vendor, device, class, \
- class_shift, hook) \
- DECLARE_PCI_FIXUP_SECTION(.pci_fixup_enable, \
- vendor##device##hook, vendor, device, class, class_shift, hook)
-#define DECLARE_PCI_FIXUP_CLASS_RESUME(vendor, device, class, \
- class_shift, hook) \
- DECLARE_PCI_FIXUP_SECTION(.pci_fixup_resume, \
- resume##vendor##device##hook, vendor, device, class, \
- class_shift, hook)
-#define DECLARE_PCI_FIXUP_CLASS_RESUME_EARLY(vendor, device, class, \
- class_shift, hook) \
- DECLARE_PCI_FIXUP_SECTION(.pci_fixup_resume_early, \
- resume_early##vendor##device##hook, vendor, device, \
- class, class_shift, hook)
-#define DECLARE_PCI_FIXUP_CLASS_SUSPEND(vendor, device, class, \
- class_shift, hook) \
- DECLARE_PCI_FIXUP_SECTION(.pci_fixup_suspend, \
- suspend##vendor##device##hook, vendor, device, class, \
- class_shift, hook)
-
-#define DECLARE_PCI_FIXUP_EARLY(vendor, device, hook) \
- DECLARE_PCI_FIXUP_SECTION(.pci_fixup_early, \
- vendor##device##hook, vendor, device, PCI_ANY_ID, 0, hook)
-#define DECLARE_PCI_FIXUP_HEADER(vendor, device, hook) \
- DECLARE_PCI_FIXUP_SECTION(.pci_fixup_header, \
- vendor##device##hook, vendor, device, PCI_ANY_ID, 0, hook)
-#define DECLARE_PCI_FIXUP_FINAL(vendor, device, hook) \
- DECLARE_PCI_FIXUP_SECTION(.pci_fixup_final, \
- vendor##device##hook, vendor, device, PCI_ANY_ID, 0, hook)
-#define DECLARE_PCI_FIXUP_ENABLE(vendor, device, hook) \
- DECLARE_PCI_FIXUP_SECTION(.pci_fixup_enable, \
- vendor##device##hook, vendor, device, PCI_ANY_ID, 0, hook)
-#define DECLARE_PCI_FIXUP_RESUME(vendor, device, hook) \
- DECLARE_PCI_FIXUP_SECTION(.pci_fixup_resume, \
- resume##vendor##device##hook, vendor, device, \
- PCI_ANY_ID, 0, hook)
-#define DECLARE_PCI_FIXUP_RESUME_EARLY(vendor, device, hook) \
- DECLARE_PCI_FIXUP_SECTION(.pci_fixup_resume_early, \
- resume_early##vendor##device##hook, vendor, device, \
- PCI_ANY_ID, 0, hook)
-#define DECLARE_PCI_FIXUP_SUSPEND(vendor, device, hook) \
- DECLARE_PCI_FIXUP_SECTION(.pci_fixup_suspend, \
- suspend##vendor##device##hook, vendor, device, \
- PCI_ANY_ID, 0, hook)
-
-#ifdef CONFIG_PCI_QUIRKS
-void pci_fixup_device(enum pci_fixup_pass pass, struct pci_dev *dev);
-#else
-static inline void pci_fixup_device(enum pci_fixup_pass pass,
- struct pci_dev *dev) {}
-#endif
-
-void __iomem *pcim_iomap(struct pci_dev *pdev, int bar, unsigned long maxlen);
-void pcim_iounmap(struct pci_dev *pdev, void __iomem *addr);
-void __iomem * const *pcim_iomap_table(struct pci_dev *pdev);
-int pcim_iomap_regions(struct pci_dev *pdev, int mask, const char *name);
-int pcim_iomap_regions_request_all(struct pci_dev *pdev, int mask,
- const char *name);
-void pcim_iounmap_regions(struct pci_dev *pdev, int mask);
-
-extern int pci_pci_problems;
-#define PCIPCI_FAIL 1 /* No PCI PCI DMA */
-#define PCIPCI_TRITON 2
-#define PCIPCI_NATOMA 4
-#define PCIPCI_VIAETBF 8
-#define PCIPCI_VSFX 16
-#define PCIPCI_ALIMAGIK 32 /* Need low latency setting */
-#define PCIAGP_FAIL 64 /* No PCI to AGP DMA */
-
-extern unsigned long pci_cardbus_io_size;
-extern unsigned long pci_cardbus_mem_size;
-extern u8 __devinitdata pci_dfl_cache_line_size;
-extern u8 pci_cache_line_size;
-
-extern unsigned long pci_hotplug_io_size;
-extern unsigned long pci_hotplug_mem_size;
-
-/* Architecture specific versions may override these (weak) */
-int pcibios_add_platform_entries(struct pci_dev *dev);
-void pcibios_disable_device(struct pci_dev *dev);
-void pcibios_set_master(struct pci_dev *dev);
-int pcibios_set_pcie_reset_state(struct pci_dev *dev,
- enum pcie_reset_state state);
-
-#ifdef CONFIG_PCI_MMCONFIG
-extern void __init pci_mmcfg_early_init(void);
-extern void __init pci_mmcfg_late_init(void);
-#else
-static inline void pci_mmcfg_early_init(void) { }
-static inline void pci_mmcfg_late_init(void) { }
-#endif
-
-int pci_ext_cfg_avail(struct pci_dev *dev);
-
-void __iomem *pci_ioremap_bar(struct pci_dev *pdev, int bar);
-
-#ifdef CONFIG_PCI_IOV
-extern int pci_enable_sriov(struct pci_dev *dev, int nr_virtfn);
-extern void pci_disable_sriov(struct pci_dev *dev);
-extern irqreturn_t pci_sriov_migration(struct pci_dev *dev);
-extern int pci_num_vf(struct pci_dev *dev);
-#else
-static inline int pci_enable_sriov(struct pci_dev *dev, int nr_virtfn)
-{
- return -ENODEV;
-}
-static inline void pci_disable_sriov(struct pci_dev *dev)
-{
-}
-static inline irqreturn_t pci_sriov_migration(struct pci_dev *dev)
-{
- return IRQ_NONE;
-}
-static inline int pci_num_vf(struct pci_dev *dev)
-{
- return 0;
-}
-#endif
-
-#if defined(CONFIG_HOTPLUG_PCI) || defined(CONFIG_HOTPLUG_PCI_MODULE)
-extern void pci_hp_create_module_link(struct pci_slot *pci_slot);
-extern void pci_hp_remove_module_link(struct pci_slot *pci_slot);
-#endif
-
-/**
- * pci_pcie_cap - get the saved PCIe capability offset
- * @dev: PCI device
- *
- * PCIe capability offset is calculated at PCI device initialization
- * time and saved in the data structure. This function returns saved
- * PCIe capability offset. Using this instead of pci_find_capability()
- * reduces unnecessary search in the PCI configuration space. If you
- * need to calculate PCIe capability offset from raw device for some
- * reasons, please use pci_find_capability() instead.
- */
-static inline int pci_pcie_cap(struct pci_dev *dev)
-{
- return dev->pcie_cap;
-}
-
-/**
- * pci_is_pcie - check if the PCI device is PCI Express capable
- * @dev: PCI device
- *
- * Retrun true if the PCI device is PCI Express capable, false otherwise.
- */
-static inline bool pci_is_pcie(struct pci_dev *dev)
-{
- return !!pci_pcie_cap(dev);
-}
-
-void pci_request_acs(void);
-
-
-#define PCI_VPD_LRDT 0x80 /* Large Resource Data Type */
-#define PCI_VPD_LRDT_ID(x) (x | PCI_VPD_LRDT)
-
-/* Large Resource Data Type Tag Item Names */
-#define PCI_VPD_LTIN_ID_STRING 0x02 /* Identifier String */
-#define PCI_VPD_LTIN_RO_DATA 0x10 /* Read-Only Data */
-#define PCI_VPD_LTIN_RW_DATA 0x11 /* Read-Write Data */
-
-#define PCI_VPD_LRDT_ID_STRING PCI_VPD_LRDT_ID(PCI_VPD_LTIN_ID_STRING)
-#define PCI_VPD_LRDT_RO_DATA PCI_VPD_LRDT_ID(PCI_VPD_LTIN_RO_DATA)
-#define PCI_VPD_LRDT_RW_DATA PCI_VPD_LRDT_ID(PCI_VPD_LTIN_RW_DATA)
-
-/* Small Resource Data Type Tag Item Names */
-#define PCI_VPD_STIN_END 0x78 /* End */
-
-#define PCI_VPD_SRDT_END PCI_VPD_STIN_END
-
-#define PCI_VPD_SRDT_TIN_MASK 0x78
-#define PCI_VPD_SRDT_LEN_MASK 0x07
-
-#define PCI_VPD_LRDT_TAG_SIZE 3
-#define PCI_VPD_SRDT_TAG_SIZE 1
-
-#define PCI_VPD_INFO_FLD_HDR_SIZE 3
-
-#define PCI_VPD_RO_KEYWORD_PARTNO "PN"
-#define PCI_VPD_RO_KEYWORD_MFR_ID "MN"
-#define PCI_VPD_RO_KEYWORD_VENDOR0 "V0"
-#define PCI_VPD_RO_KEYWORD_CHKSUM "RV"
-
-/**
- * pci_vpd_lrdt_size - Extracts the Large Resource Data Type length
- * @lrdt: Pointer to the beginning of the Large Resource Data Type tag
- *
- * Returns the extracted Large Resource Data Type length.
- */
-static inline u16 pci_vpd_lrdt_size(const u8 *lrdt)
-{
- return (u16)lrdt[1] + ((u16)lrdt[2] << 8);
-}
-
-/**
- * pci_vpd_srdt_size - Extracts the Small Resource Data Type length
- * @lrdt: Pointer to the beginning of the Small Resource Data Type tag
- *
- * Returns the extracted Small Resource Data Type length.
- */
-static inline u8 pci_vpd_srdt_size(const u8 *srdt)
-{
- return (*srdt) & PCI_VPD_SRDT_LEN_MASK;
-}
-
-/**
- * pci_vpd_info_field_size - Extracts the information field length
- * @lrdt: Pointer to the beginning of an information field header
- *
- * Returns the extracted information field length.
- */
-static inline u8 pci_vpd_info_field_size(const u8 *info_field)
-{
- return info_field[2];
-}
-
-/**
- * pci_vpd_find_tag - Locates the Resource Data Type tag provided
- * @buf: Pointer to buffered vpd data
- * @off: The offset into the buffer at which to begin the search
- * @len: The length of the vpd buffer
- * @rdt: The Resource Data Type to search for
- *
- * Returns the index where the Resource Data Type was found or
- * -ENOENT otherwise.
- */
-int pci_vpd_find_tag(const u8 *buf, unsigned int off, unsigned int len, u8 rdt);
-
-/**
- * pci_vpd_find_info_keyword - Locates an information field keyword in the VPD
- * @buf: Pointer to buffered vpd data
- * @off: The offset into the buffer at which to begin the search
- * @len: The length of the buffer area, relative to off, in which to search
- * @kw: The keyword to search for
- *
- * Returns the index where the information field keyword was found or
- * -ENOENT otherwise.
- */
-int pci_vpd_find_info_keyword(const u8 *buf, unsigned int off,
- unsigned int len, const char *kw);
-
-/* PCI <-> OF binding helpers */
-#ifdef CONFIG_OF
-struct device_node;
-extern void pci_set_of_node(struct pci_dev *dev);
-extern void pci_release_of_node(struct pci_dev *dev);
-extern void pci_set_bus_of_node(struct pci_bus *bus);
-extern void pci_release_bus_of_node(struct pci_bus *bus);
-
-/* Arch may override this (weak) */
-extern struct device_node * __weak pcibios_get_phb_of_node(struct pci_bus *bus);
-
-static inline struct device_node *pci_device_to_OF_node(struct pci_dev *pdev)
-{
- return pdev ? pdev->dev.of_node : NULL;
-}
-
-static inline struct device_node *pci_bus_to_OF_node(struct pci_bus *bus)
-{
- return bus ? bus->dev.of_node : NULL;
-}
-
-#else /* CONFIG_OF */
-static inline void pci_set_of_node(struct pci_dev *dev) { }
-static inline void pci_release_of_node(struct pci_dev *dev) { }
-static inline void pci_set_bus_of_node(struct pci_bus *bus) { }
-static inline void pci_release_bus_of_node(struct pci_bus *bus) { }
-#endif /* CONFIG_OF */
-
-#ifdef CONFIG_EEH
-static inline struct eeh_dev *pci_dev_to_eeh_dev(struct pci_dev *pdev)
-{
- return pdev->dev.archdata.edev;
-}
-#endif
-
-/**
- * pci_find_upstream_pcie_bridge - find upstream PCIe-to-PCI bridge of a device
- * @pdev: the PCI device
- *
- * if the device is PCIE, return NULL
- * if the device isn't connected to a PCIe bridge (that is its parent is a
- * legacy PCI bridge and the bridge is directly connected to bus 0), return its
- * parent
- */
-struct pci_dev *pci_find_upstream_pcie_bridge(struct pci_dev *pdev);
-
-#endif /* __KERNEL__ */
-#endif /* LINUX_PCI_H */
diff --git a/ANDROID_3.4.5/include/linux/pci_hotplug.h b/ANDROID_3.4.5/include/linux/pci_hotplug.h
deleted file mode 100644
index 45fc162c..00000000
--- a/ANDROID_3.4.5/include/linux/pci_hotplug.h
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * PCI HotPlug Core Functions
- *
- * Copyright (C) 1995,2001 Compaq Computer Corporation
- * Copyright (C) 2001 Greg Kroah-Hartman (greg@kroah.com)
- * Copyright (C) 2001 IBM Corp.
- *
- * 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, GOOD TITLE or
- * NON INFRINGEMENT. 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.
- *
- * Send feedback to <kristen.c.accardi@intel.com>
- *
- */
-#ifndef _PCI_HOTPLUG_H
-#define _PCI_HOTPLUG_H
-
-/* These values come from the PCI Express Spec */
-enum pcie_link_width {
- PCIE_LNK_WIDTH_RESRV = 0x00,
- PCIE_LNK_X1 = 0x01,
- PCIE_LNK_X2 = 0x02,
- PCIE_LNK_X4 = 0x04,
- PCIE_LNK_X8 = 0x08,
- PCIE_LNK_X12 = 0x0C,
- PCIE_LNK_X16 = 0x10,
- PCIE_LNK_X32 = 0x20,
- PCIE_LNK_WIDTH_UNKNOWN = 0xFF,
-};
-
-/**
- * struct hotplug_slot_ops -the callbacks that the hotplug pci core can use
- * @owner: The module owner of this structure
- * @mod_name: The module name (KBUILD_MODNAME) of this structure
- * @enable_slot: Called when the user wants to enable a specific pci slot
- * @disable_slot: Called when the user wants to disable a specific pci slot
- * @set_attention_status: Called to set the specific slot's attention LED to
- * the specified value
- * @hardware_test: Called to run a specified hardware test on the specified
- * slot.
- * @get_power_status: Called to get the current power status of a slot.
- * If this field is NULL, the value passed in the struct hotplug_slot_info
- * will be used when this value is requested by a user.
- * @get_attention_status: Called to get the current attention status of a slot.
- * If this field is NULL, the value passed in the struct hotplug_slot_info
- * will be used when this value is requested by a user.
- * @get_latch_status: Called to get the current latch status of a slot.
- * If this field is NULL, the value passed in the struct hotplug_slot_info
- * will be used when this value is requested by a user.
- * @get_adapter_status: Called to get see if an adapter is present in the slot or not.
- * If this field is NULL, the value passed in the struct hotplug_slot_info
- * will be used when this value is requested by a user.
- *
- * The table of function pointers that is passed to the hotplug pci core by a
- * hotplug pci driver. These functions are called by the hotplug pci core when
- * the user wants to do something to a specific slot (query it for information,
- * set an LED, enable / disable power, etc.)
- */
-struct hotplug_slot_ops {
- struct module *owner;
- const char *mod_name;
- int (*enable_slot) (struct hotplug_slot *slot);
- int (*disable_slot) (struct hotplug_slot *slot);
- int (*set_attention_status) (struct hotplug_slot *slot, u8 value);
- int (*hardware_test) (struct hotplug_slot *slot, u32 value);
- int (*get_power_status) (struct hotplug_slot *slot, u8 *value);
- int (*get_attention_status) (struct hotplug_slot *slot, u8 *value);
- int (*get_latch_status) (struct hotplug_slot *slot, u8 *value);
- int (*get_adapter_status) (struct hotplug_slot *slot, u8 *value);
-};
-
-/**
- * struct hotplug_slot_info - used to notify the hotplug pci core of the state of the slot
- * @power_status: if power is enabled or not (1/0)
- * @attention_status: if the attention light is enabled or not (1/0)
- * @latch_status: if the latch (if any) is open or closed (1/0)
- * @adapter_status: if there is a pci board present in the slot or not (1/0)
- *
- * Used to notify the hotplug pci core of the status of a specific slot.
- */
-struct hotplug_slot_info {
- u8 power_status;
- u8 attention_status;
- u8 latch_status;
- u8 adapter_status;
-};
-
-/**
- * struct hotplug_slot - used to register a physical slot with the hotplug pci core
- * @ops: pointer to the &struct hotplug_slot_ops to be used for this slot
- * @info: pointer to the &struct hotplug_slot_info for the initial values for
- * this slot.
- * @release: called during pci_hp_deregister to free memory allocated in a
- * hotplug_slot structure.
- * @private: used by the hotplug pci controller driver to store whatever it
- * needs.
- */
-struct hotplug_slot {
- struct hotplug_slot_ops *ops;
- struct hotplug_slot_info *info;
- void (*release) (struct hotplug_slot *slot);
- void *private;
-
- /* Variables below this are for use only by the hotplug pci core. */
- struct list_head slot_list;
- struct pci_slot *pci_slot;
-};
-#define to_hotplug_slot(n) container_of(n, struct hotplug_slot, kobj)
-
-static inline const char *hotplug_slot_name(const struct hotplug_slot *slot)
-{
- return pci_slot_name(slot->pci_slot);
-}
-
-extern int __pci_hp_register(struct hotplug_slot *slot, struct pci_bus *pbus,
- int nr, const char *name,
- struct module *owner, const char *mod_name);
-extern int pci_hp_deregister(struct hotplug_slot *slot);
-extern int __must_check pci_hp_change_slot_info (struct hotplug_slot *slot,
- struct hotplug_slot_info *info);
-
-/* use a define to avoid include chaining to get THIS_MODULE & friends */
-#define pci_hp_register(slot, pbus, devnr, name) \
- __pci_hp_register(slot, pbus, devnr, name, THIS_MODULE, KBUILD_MODNAME)
-
-/* PCI Setting Record (Type 0) */
-struct hpp_type0 {
- u32 revision;
- u8 cache_line_size;
- u8 latency_timer;
- u8 enable_serr;
- u8 enable_perr;
-};
-
-/* PCI-X Setting Record (Type 1) */
-struct hpp_type1 {
- u32 revision;
- u8 max_mem_read;
- u8 avg_max_split;
- u16 tot_max_split;
-};
-
-/* PCI Express Setting Record (Type 2) */
-struct hpp_type2 {
- u32 revision;
- u32 unc_err_mask_and;
- u32 unc_err_mask_or;
- u32 unc_err_sever_and;
- u32 unc_err_sever_or;
- u32 cor_err_mask_and;
- u32 cor_err_mask_or;
- u32 adv_err_cap_and;
- u32 adv_err_cap_or;
- u16 pci_exp_devctl_and;
- u16 pci_exp_devctl_or;
- u16 pci_exp_lnkctl_and;
- u16 pci_exp_lnkctl_or;
- u32 sec_unc_err_sever_and;
- u32 sec_unc_err_sever_or;
- u32 sec_unc_err_mask_and;
- u32 sec_unc_err_mask_or;
-};
-
-struct hotplug_params {
- struct hpp_type0 *t0; /* Type0: NULL if not available */
- struct hpp_type1 *t1; /* Type1: NULL if not available */
- struct hpp_type2 *t2; /* Type2: NULL if not available */
- struct hpp_type0 type0_data;
- struct hpp_type1 type1_data;
- struct hpp_type2 type2_data;
-};
-
-#ifdef CONFIG_ACPI
-#include <acpi/acpi.h>
-#include <acpi/acpi_bus.h>
-int pci_get_hp_params(struct pci_dev *dev, struct hotplug_params *hpp);
-int acpi_get_hp_hw_control_from_firmware(struct pci_dev *dev, u32 flags);
-int acpi_pci_check_ejectable(struct pci_bus *pbus, acpi_handle handle);
-int acpi_pci_detect_ejectable(acpi_handle handle);
-#else
-static inline int pci_get_hp_params(struct pci_dev *dev,
- struct hotplug_params *hpp)
-{
- return -ENODEV;
-}
-#endif
-
-void pci_configure_slot(struct pci_dev *dev);
-#endif
-
diff --git a/ANDROID_3.4.5/include/linux/pci_ids.h b/ANDROID_3.4.5/include/linux/pci_ids.h
deleted file mode 100644
index 3329965e..00000000
--- a/ANDROID_3.4.5/include/linux/pci_ids.h
+++ /dev/null
@@ -1,2907 +0,0 @@
-/*
- * PCI Class, Vendor and Device IDs
- *
- * Please keep sorted.
- *
- * Do not add new entries to this file unless the definitions
- * are shared between multiple drivers.
- */
-
-/* Device classes and subclasses */
-
-#define PCI_CLASS_NOT_DEFINED 0x0000
-#define PCI_CLASS_NOT_DEFINED_VGA 0x0001
-
-#define PCI_BASE_CLASS_STORAGE 0x01
-#define PCI_CLASS_STORAGE_SCSI 0x0100
-#define PCI_CLASS_STORAGE_IDE 0x0101
-#define PCI_CLASS_STORAGE_FLOPPY 0x0102
-#define PCI_CLASS_STORAGE_IPI 0x0103
-#define PCI_CLASS_STORAGE_RAID 0x0104
-#define PCI_CLASS_STORAGE_SATA 0x0106
-#define PCI_CLASS_STORAGE_SATA_AHCI 0x010601
-#define PCI_CLASS_STORAGE_SAS 0x0107
-#define PCI_CLASS_STORAGE_OTHER 0x0180
-
-#define PCI_BASE_CLASS_NETWORK 0x02
-#define PCI_CLASS_NETWORK_ETHERNET 0x0200
-#define PCI_CLASS_NETWORK_TOKEN_RING 0x0201
-#define PCI_CLASS_NETWORK_FDDI 0x0202
-#define PCI_CLASS_NETWORK_ATM 0x0203
-#define PCI_CLASS_NETWORK_OTHER 0x0280
-
-#define PCI_BASE_CLASS_DISPLAY 0x03
-#define PCI_CLASS_DISPLAY_VGA 0x0300
-#define PCI_CLASS_DISPLAY_XGA 0x0301
-#define PCI_CLASS_DISPLAY_3D 0x0302
-#define PCI_CLASS_DISPLAY_OTHER 0x0380
-
-#define PCI_BASE_CLASS_MULTIMEDIA 0x04
-#define PCI_CLASS_MULTIMEDIA_VIDEO 0x0400
-#define PCI_CLASS_MULTIMEDIA_AUDIO 0x0401
-#define PCI_CLASS_MULTIMEDIA_PHONE 0x0402
-#define PCI_CLASS_MULTIMEDIA_OTHER 0x0480
-
-#define PCI_BASE_CLASS_MEMORY 0x05
-#define PCI_CLASS_MEMORY_RAM 0x0500
-#define PCI_CLASS_MEMORY_FLASH 0x0501
-#define PCI_CLASS_MEMORY_OTHER 0x0580
-
-#define PCI_BASE_CLASS_BRIDGE 0x06
-#define PCI_CLASS_BRIDGE_HOST 0x0600
-#define PCI_CLASS_BRIDGE_ISA 0x0601
-#define PCI_CLASS_BRIDGE_EISA 0x0602
-#define PCI_CLASS_BRIDGE_MC 0x0603
-#define PCI_CLASS_BRIDGE_PCI 0x0604
-#define PCI_CLASS_BRIDGE_PCMCIA 0x0605
-#define PCI_CLASS_BRIDGE_NUBUS 0x0606
-#define PCI_CLASS_BRIDGE_CARDBUS 0x0607
-#define PCI_CLASS_BRIDGE_RACEWAY 0x0608
-#define PCI_CLASS_BRIDGE_OTHER 0x0680
-
-#define PCI_BASE_CLASS_COMMUNICATION 0x07
-#define PCI_CLASS_COMMUNICATION_SERIAL 0x0700
-#define PCI_CLASS_COMMUNICATION_PARALLEL 0x0701
-#define PCI_CLASS_COMMUNICATION_MULTISERIAL 0x0702
-#define PCI_CLASS_COMMUNICATION_MODEM 0x0703
-#define PCI_CLASS_COMMUNICATION_OTHER 0x0780
-
-#define PCI_BASE_CLASS_SYSTEM 0x08
-#define PCI_CLASS_SYSTEM_PIC 0x0800
-#define PCI_CLASS_SYSTEM_PIC_IOAPIC 0x080010
-#define PCI_CLASS_SYSTEM_PIC_IOXAPIC 0x080020
-#define PCI_CLASS_SYSTEM_DMA 0x0801
-#define PCI_CLASS_SYSTEM_TIMER 0x0802
-#define PCI_CLASS_SYSTEM_RTC 0x0803
-#define PCI_CLASS_SYSTEM_PCI_HOTPLUG 0x0804
-#define PCI_CLASS_SYSTEM_SDHCI 0x0805
-#define PCI_CLASS_SYSTEM_OTHER 0x0880
-
-#define PCI_BASE_CLASS_INPUT 0x09
-#define PCI_CLASS_INPUT_KEYBOARD 0x0900
-#define PCI_CLASS_INPUT_PEN 0x0901
-#define PCI_CLASS_INPUT_MOUSE 0x0902
-#define PCI_CLASS_INPUT_SCANNER 0x0903
-#define PCI_CLASS_INPUT_GAMEPORT 0x0904
-#define PCI_CLASS_INPUT_OTHER 0x0980
-
-#define PCI_BASE_CLASS_DOCKING 0x0a
-#define PCI_CLASS_DOCKING_GENERIC 0x0a00
-#define PCI_CLASS_DOCKING_OTHER 0x0a80
-
-#define PCI_BASE_CLASS_PROCESSOR 0x0b
-#define PCI_CLASS_PROCESSOR_386 0x0b00
-#define PCI_CLASS_PROCESSOR_486 0x0b01
-#define PCI_CLASS_PROCESSOR_PENTIUM 0x0b02
-#define PCI_CLASS_PROCESSOR_ALPHA 0x0b10
-#define PCI_CLASS_PROCESSOR_POWERPC 0x0b20
-#define PCI_CLASS_PROCESSOR_MIPS 0x0b30
-#define PCI_CLASS_PROCESSOR_CO 0x0b40
-
-#define PCI_BASE_CLASS_SERIAL 0x0c
-#define PCI_CLASS_SERIAL_FIREWIRE 0x0c00
-#define PCI_CLASS_SERIAL_FIREWIRE_OHCI 0x0c0010
-#define PCI_CLASS_SERIAL_ACCESS 0x0c01
-#define PCI_CLASS_SERIAL_SSA 0x0c02
-#define PCI_CLASS_SERIAL_USB 0x0c03
-#define PCI_CLASS_SERIAL_USB_UHCI 0x0c0300
-#define PCI_CLASS_SERIAL_USB_OHCI 0x0c0310
-#define PCI_CLASS_SERIAL_USB_EHCI 0x0c0320
-#define PCI_CLASS_SERIAL_USB_XHCI 0x0c0330
-#define PCI_CLASS_SERIAL_FIBER 0x0c04
-#define PCI_CLASS_SERIAL_SMBUS 0x0c05
-
-#define PCI_BASE_CLASS_WIRELESS 0x0d
-#define PCI_CLASS_WIRELESS_RF_CONTROLLER 0x0d10
-#define PCI_CLASS_WIRELESS_WHCI 0x0d1010
-
-#define PCI_BASE_CLASS_INTELLIGENT 0x0e
-#define PCI_CLASS_INTELLIGENT_I2O 0x0e00
-
-#define PCI_BASE_CLASS_SATELLITE 0x0f
-#define PCI_CLASS_SATELLITE_TV 0x0f00
-#define PCI_CLASS_SATELLITE_AUDIO 0x0f01
-#define PCI_CLASS_SATELLITE_VOICE 0x0f03
-#define PCI_CLASS_SATELLITE_DATA 0x0f04
-
-#define PCI_BASE_CLASS_CRYPT 0x10
-#define PCI_CLASS_CRYPT_NETWORK 0x1000
-#define PCI_CLASS_CRYPT_ENTERTAINMENT 0x1001
-#define PCI_CLASS_CRYPT_OTHER 0x1080
-
-#define PCI_BASE_CLASS_SIGNAL_PROCESSING 0x11
-#define PCI_CLASS_SP_DPIO 0x1100
-#define PCI_CLASS_SP_OTHER 0x1180
-
-#define PCI_CLASS_OTHERS 0xff
-
-/* Vendors and devices. Sort key: vendor first, device next. */
-
-#define PCI_VENDOR_ID_TTTECH 0x0357
-#define PCI_DEVICE_ID_TTTECH_MC322 0x000a
-
-#define PCI_VENDOR_ID_DYNALINK 0x0675
-#define PCI_DEVICE_ID_DYNALINK_IS64PH 0x1702
-
-#define PCI_VENDOR_ID_BERKOM 0x0871
-#define PCI_DEVICE_ID_BERKOM_A1T 0xffa1
-#define PCI_DEVICE_ID_BERKOM_T_CONCEPT 0xffa2
-#define PCI_DEVICE_ID_BERKOM_A4T 0xffa4
-#define PCI_DEVICE_ID_BERKOM_SCITEL_QUADRO 0xffa8
-
-#define PCI_VENDOR_ID_COMPAQ 0x0e11
-#define PCI_DEVICE_ID_COMPAQ_TOKENRING 0x0508
-#define PCI_DEVICE_ID_COMPAQ_TACHYON 0xa0fc
-#define PCI_DEVICE_ID_COMPAQ_SMART2P 0xae10
-#define PCI_DEVICE_ID_COMPAQ_NETEL100 0xae32
-#define PCI_DEVICE_ID_COMPAQ_NETEL10 0xae34
-#define PCI_DEVICE_ID_COMPAQ_TRIFLEX_IDE 0xae33
-#define PCI_DEVICE_ID_COMPAQ_NETFLEX3I 0xae35
-#define PCI_DEVICE_ID_COMPAQ_NETEL100D 0xae40
-#define PCI_DEVICE_ID_COMPAQ_NETEL100PI 0xae43
-#define PCI_DEVICE_ID_COMPAQ_NETEL100I 0xb011
-#define PCI_DEVICE_ID_COMPAQ_CISS 0xb060
-#define PCI_DEVICE_ID_COMPAQ_CISSB 0xb178
-#define PCI_DEVICE_ID_COMPAQ_CISSC 0x46
-#define PCI_DEVICE_ID_COMPAQ_THUNDER 0xf130
-#define PCI_DEVICE_ID_COMPAQ_NETFLEX3B 0xf150
-
-#define PCI_VENDOR_ID_NCR 0x1000
-#define PCI_VENDOR_ID_LSI_LOGIC 0x1000
-#define PCI_DEVICE_ID_NCR_53C810 0x0001
-#define PCI_DEVICE_ID_NCR_53C820 0x0002
-#define PCI_DEVICE_ID_NCR_53C825 0x0003
-#define PCI_DEVICE_ID_NCR_53C815 0x0004
-#define PCI_DEVICE_ID_LSI_53C810AP 0x0005
-#define PCI_DEVICE_ID_NCR_53C860 0x0006
-#define PCI_DEVICE_ID_LSI_53C1510 0x000a
-#define PCI_DEVICE_ID_NCR_53C896 0x000b
-#define PCI_DEVICE_ID_NCR_53C895 0x000c
-#define PCI_DEVICE_ID_NCR_53C885 0x000d
-#define PCI_DEVICE_ID_NCR_53C875 0x000f
-#define PCI_DEVICE_ID_NCR_53C1510 0x0010
-#define PCI_DEVICE_ID_LSI_53C895A 0x0012
-#define PCI_DEVICE_ID_LSI_53C875A 0x0013
-#define PCI_DEVICE_ID_LSI_53C1010_33 0x0020
-#define PCI_DEVICE_ID_LSI_53C1010_66 0x0021
-#define PCI_DEVICE_ID_LSI_53C1030 0x0030
-#define PCI_DEVICE_ID_LSI_1030_53C1035 0x0032
-#define PCI_DEVICE_ID_LSI_53C1035 0x0040
-#define PCI_DEVICE_ID_NCR_53C875J 0x008f
-#define PCI_DEVICE_ID_LSI_FC909 0x0621
-#define PCI_DEVICE_ID_LSI_FC929 0x0622
-#define PCI_DEVICE_ID_LSI_FC929_LAN 0x0623
-#define PCI_DEVICE_ID_LSI_FC919 0x0624
-#define PCI_DEVICE_ID_LSI_FC919_LAN 0x0625
-#define PCI_DEVICE_ID_LSI_FC929X 0x0626
-#define PCI_DEVICE_ID_LSI_FC939X 0x0642
-#define PCI_DEVICE_ID_LSI_FC949X 0x0640
-#define PCI_DEVICE_ID_LSI_FC949ES 0x0646
-#define PCI_DEVICE_ID_LSI_FC919X 0x0628
-#define PCI_DEVICE_ID_NCR_YELLOWFIN 0x0701
-#define PCI_DEVICE_ID_LSI_61C102 0x0901
-#define PCI_DEVICE_ID_LSI_63C815 0x1000
-#define PCI_DEVICE_ID_LSI_SAS1064 0x0050
-#define PCI_DEVICE_ID_LSI_SAS1064R 0x0411
-#define PCI_DEVICE_ID_LSI_SAS1066 0x005E
-#define PCI_DEVICE_ID_LSI_SAS1068 0x0054
-#define PCI_DEVICE_ID_LSI_SAS1064A 0x005C
-#define PCI_DEVICE_ID_LSI_SAS1064E 0x0056
-#define PCI_DEVICE_ID_LSI_SAS1066E 0x005A
-#define PCI_DEVICE_ID_LSI_SAS1068E 0x0058
-#define PCI_DEVICE_ID_LSI_SAS1078 0x0060
-
-#define PCI_VENDOR_ID_ATI 0x1002
-/* Mach64 */
-#define PCI_DEVICE_ID_ATI_68800 0x4158
-#define PCI_DEVICE_ID_ATI_215CT222 0x4354
-#define PCI_DEVICE_ID_ATI_210888CX 0x4358
-#define PCI_DEVICE_ID_ATI_215ET222 0x4554
-/* Mach64 / Rage */
-#define PCI_DEVICE_ID_ATI_215GB 0x4742
-#define PCI_DEVICE_ID_ATI_215GD 0x4744
-#define PCI_DEVICE_ID_ATI_215GI 0x4749
-#define PCI_DEVICE_ID_ATI_215GP 0x4750
-#define PCI_DEVICE_ID_ATI_215GQ 0x4751
-#define PCI_DEVICE_ID_ATI_215XL 0x4752
-#define PCI_DEVICE_ID_ATI_215GT 0x4754
-#define PCI_DEVICE_ID_ATI_215GTB 0x4755
-#define PCI_DEVICE_ID_ATI_215_IV 0x4756
-#define PCI_DEVICE_ID_ATI_215_IW 0x4757
-#define PCI_DEVICE_ID_ATI_215_IZ 0x475A
-#define PCI_DEVICE_ID_ATI_210888GX 0x4758
-#define PCI_DEVICE_ID_ATI_215_LB 0x4c42
-#define PCI_DEVICE_ID_ATI_215_LD 0x4c44
-#define PCI_DEVICE_ID_ATI_215_LG 0x4c47
-#define PCI_DEVICE_ID_ATI_215_LI 0x4c49
-#define PCI_DEVICE_ID_ATI_215_LM 0x4c4D
-#define PCI_DEVICE_ID_ATI_215_LN 0x4c4E
-#define PCI_DEVICE_ID_ATI_215_LR 0x4c52
-#define PCI_DEVICE_ID_ATI_215_LS 0x4c53
-#define PCI_DEVICE_ID_ATI_264_LT 0x4c54
-/* Mach64 VT */
-#define PCI_DEVICE_ID_ATI_264VT 0x5654
-#define PCI_DEVICE_ID_ATI_264VU 0x5655
-#define PCI_DEVICE_ID_ATI_264VV 0x5656
-/* Rage128 GL */
-#define PCI_DEVICE_ID_ATI_RAGE128_RE 0x5245
-#define PCI_DEVICE_ID_ATI_RAGE128_RF 0x5246
-#define PCI_DEVICE_ID_ATI_RAGE128_RG 0x5247
-/* Rage128 VR */
-#define PCI_DEVICE_ID_ATI_RAGE128_RK 0x524b
-#define PCI_DEVICE_ID_ATI_RAGE128_RL 0x524c
-#define PCI_DEVICE_ID_ATI_RAGE128_SE 0x5345
-#define PCI_DEVICE_ID_ATI_RAGE128_SF 0x5346
-#define PCI_DEVICE_ID_ATI_RAGE128_SG 0x5347
-#define PCI_DEVICE_ID_ATI_RAGE128_SH 0x5348
-#define PCI_DEVICE_ID_ATI_RAGE128_SK 0x534b
-#define PCI_DEVICE_ID_ATI_RAGE128_SL 0x534c
-#define PCI_DEVICE_ID_ATI_RAGE128_SM 0x534d
-#define PCI_DEVICE_ID_ATI_RAGE128_SN 0x534e
-/* Rage128 Ultra */
-#define PCI_DEVICE_ID_ATI_RAGE128_TF 0x5446
-#define PCI_DEVICE_ID_ATI_RAGE128_TL 0x544c
-#define PCI_DEVICE_ID_ATI_RAGE128_TR 0x5452
-#define PCI_DEVICE_ID_ATI_RAGE128_TS 0x5453
-#define PCI_DEVICE_ID_ATI_RAGE128_TT 0x5454
-#define PCI_DEVICE_ID_ATI_RAGE128_TU 0x5455
-/* Rage128 M3 */
-#define PCI_DEVICE_ID_ATI_RAGE128_LE 0x4c45
-#define PCI_DEVICE_ID_ATI_RAGE128_LF 0x4c46
-/* Rage128 M4 */
-#define PCI_DEVICE_ID_ATI_RAGE128_MF 0x4d46
-#define PCI_DEVICE_ID_ATI_RAGE128_ML 0x4d4c
-/* Rage128 Pro GL */
-#define PCI_DEVICE_ID_ATI_RAGE128_PA 0x5041
-#define PCI_DEVICE_ID_ATI_RAGE128_PB 0x5042
-#define PCI_DEVICE_ID_ATI_RAGE128_PC 0x5043
-#define PCI_DEVICE_ID_ATI_RAGE128_PD 0x5044
-#define PCI_DEVICE_ID_ATI_RAGE128_PE 0x5045
-#define PCI_DEVICE_ID_ATI_RAGE128_PF 0x5046
-/* Rage128 Pro VR */
-#define PCI_DEVICE_ID_ATI_RAGE128_PG 0x5047
-#define PCI_DEVICE_ID_ATI_RAGE128_PH 0x5048
-#define PCI_DEVICE_ID_ATI_RAGE128_PI 0x5049
-#define PCI_DEVICE_ID_ATI_RAGE128_PJ 0x504A
-#define PCI_DEVICE_ID_ATI_RAGE128_PK 0x504B
-#define PCI_DEVICE_ID_ATI_RAGE128_PL 0x504C
-#define PCI_DEVICE_ID_ATI_RAGE128_PM 0x504D
-#define PCI_DEVICE_ID_ATI_RAGE128_PN 0x504E
-#define PCI_DEVICE_ID_ATI_RAGE128_PO 0x504F
-#define PCI_DEVICE_ID_ATI_RAGE128_PP 0x5050
-#define PCI_DEVICE_ID_ATI_RAGE128_PQ 0x5051
-#define PCI_DEVICE_ID_ATI_RAGE128_PR 0x5052
-#define PCI_DEVICE_ID_ATI_RAGE128_PS 0x5053
-#define PCI_DEVICE_ID_ATI_RAGE128_PT 0x5054
-#define PCI_DEVICE_ID_ATI_RAGE128_PU 0x5055
-#define PCI_DEVICE_ID_ATI_RAGE128_PV 0x5056
-#define PCI_DEVICE_ID_ATI_RAGE128_PW 0x5057
-#define PCI_DEVICE_ID_ATI_RAGE128_PX 0x5058
-/* Rage128 M4 */
-/* Radeon R100 */
-#define PCI_DEVICE_ID_ATI_RADEON_QD 0x5144
-#define PCI_DEVICE_ID_ATI_RADEON_QE 0x5145
-#define PCI_DEVICE_ID_ATI_RADEON_QF 0x5146
-#define PCI_DEVICE_ID_ATI_RADEON_QG 0x5147
-/* Radeon RV100 (VE) */
-#define PCI_DEVICE_ID_ATI_RADEON_QY 0x5159
-#define PCI_DEVICE_ID_ATI_RADEON_QZ 0x515a
-/* Radeon R200 (8500) */
-#define PCI_DEVICE_ID_ATI_RADEON_QL 0x514c
-#define PCI_DEVICE_ID_ATI_RADEON_QN 0x514e
-#define PCI_DEVICE_ID_ATI_RADEON_QO 0x514f
-#define PCI_DEVICE_ID_ATI_RADEON_Ql 0x516c
-#define PCI_DEVICE_ID_ATI_RADEON_BB 0x4242
-/* Radeon R200 (9100) */
-#define PCI_DEVICE_ID_ATI_RADEON_QM 0x514d
-/* Radeon RV200 (7500) */
-#define PCI_DEVICE_ID_ATI_RADEON_QW 0x5157
-#define PCI_DEVICE_ID_ATI_RADEON_QX 0x5158
-/* Radeon NV-100 */
-/* Radeon RV250 (9000) */
-#define PCI_DEVICE_ID_ATI_RADEON_Id 0x4964
-#define PCI_DEVICE_ID_ATI_RADEON_Ie 0x4965
-#define PCI_DEVICE_ID_ATI_RADEON_If 0x4966
-#define PCI_DEVICE_ID_ATI_RADEON_Ig 0x4967
-/* Radeon RV280 (9200) */
-#define PCI_DEVICE_ID_ATI_RADEON_Ya 0x5961
-#define PCI_DEVICE_ID_ATI_RADEON_Yd 0x5964
-/* Radeon R300 (9500) */
-/* Radeon R300 (9700) */
-#define PCI_DEVICE_ID_ATI_RADEON_ND 0x4e44
-#define PCI_DEVICE_ID_ATI_RADEON_NE 0x4e45
-#define PCI_DEVICE_ID_ATI_RADEON_NF 0x4e46
-#define PCI_DEVICE_ID_ATI_RADEON_NG 0x4e47
-/* Radeon R350 (9800) */
-/* Radeon RV350 (9600) */
-/* Radeon M6 */
-#define PCI_DEVICE_ID_ATI_RADEON_LY 0x4c59
-#define PCI_DEVICE_ID_ATI_RADEON_LZ 0x4c5a
-/* Radeon M7 */
-#define PCI_DEVICE_ID_ATI_RADEON_LW 0x4c57
-#define PCI_DEVICE_ID_ATI_RADEON_LX 0x4c58
-/* Radeon M9 */
-#define PCI_DEVICE_ID_ATI_RADEON_Ld 0x4c64
-#define PCI_DEVICE_ID_ATI_RADEON_Le 0x4c65
-#define PCI_DEVICE_ID_ATI_RADEON_Lf 0x4c66
-#define PCI_DEVICE_ID_ATI_RADEON_Lg 0x4c67
-/* Radeon */
-/* RadeonIGP */
-#define PCI_DEVICE_ID_ATI_RS100 0xcab0
-#define PCI_DEVICE_ID_ATI_RS200 0xcab2
-#define PCI_DEVICE_ID_ATI_RS200_B 0xcbb2
-#define PCI_DEVICE_ID_ATI_RS250 0xcab3
-#define PCI_DEVICE_ID_ATI_RS300_100 0x5830
-#define PCI_DEVICE_ID_ATI_RS300_133 0x5831
-#define PCI_DEVICE_ID_ATI_RS300_166 0x5832
-#define PCI_DEVICE_ID_ATI_RS300_200 0x5833
-#define PCI_DEVICE_ID_ATI_RS350_100 0x7830
-#define PCI_DEVICE_ID_ATI_RS350_133 0x7831
-#define PCI_DEVICE_ID_ATI_RS350_166 0x7832
-#define PCI_DEVICE_ID_ATI_RS350_200 0x7833
-#define PCI_DEVICE_ID_ATI_RS400_100 0x5a30
-#define PCI_DEVICE_ID_ATI_RS400_133 0x5a31
-#define PCI_DEVICE_ID_ATI_RS400_166 0x5a32
-#define PCI_DEVICE_ID_ATI_RS400_200 0x5a33
-#define PCI_DEVICE_ID_ATI_RS480 0x5950
-/* ATI IXP Chipset */
-#define PCI_DEVICE_ID_ATI_IXP200_IDE 0x4349
-#define PCI_DEVICE_ID_ATI_IXP200_SMBUS 0x4353
-#define PCI_DEVICE_ID_ATI_IXP300_SMBUS 0x4363
-#define PCI_DEVICE_ID_ATI_IXP300_IDE 0x4369
-#define PCI_DEVICE_ID_ATI_IXP300_SATA 0x436e
-#define PCI_DEVICE_ID_ATI_IXP400_SMBUS 0x4372
-#define PCI_DEVICE_ID_ATI_IXP400_IDE 0x4376
-#define PCI_DEVICE_ID_ATI_IXP400_SATA 0x4379
-#define PCI_DEVICE_ID_ATI_IXP400_SATA2 0x437a
-#define PCI_DEVICE_ID_ATI_IXP600_SATA 0x4380
-#define PCI_DEVICE_ID_ATI_SBX00_SMBUS 0x4385
-#define PCI_DEVICE_ID_ATI_IXP600_IDE 0x438c
-#define PCI_DEVICE_ID_ATI_IXP700_SATA 0x4390
-#define PCI_DEVICE_ID_ATI_IXP700_IDE 0x439c
-
-#define PCI_VENDOR_ID_VLSI 0x1004
-#define PCI_DEVICE_ID_VLSI_82C592 0x0005
-#define PCI_DEVICE_ID_VLSI_82C593 0x0006
-#define PCI_DEVICE_ID_VLSI_82C594 0x0007
-#define PCI_DEVICE_ID_VLSI_82C597 0x0009
-#define PCI_DEVICE_ID_VLSI_82C541 0x000c
-#define PCI_DEVICE_ID_VLSI_82C543 0x000d
-#define PCI_DEVICE_ID_VLSI_82C532 0x0101
-#define PCI_DEVICE_ID_VLSI_82C534 0x0102
-#define PCI_DEVICE_ID_VLSI_82C535 0x0104
-#define PCI_DEVICE_ID_VLSI_82C147 0x0105
-#define PCI_DEVICE_ID_VLSI_VAS96011 0x0702
-
-/* AMD RD890 Chipset */
-#define PCI_DEVICE_ID_RD890_IOMMU 0x5a23
-
-#define PCI_VENDOR_ID_ADL 0x1005
-#define PCI_DEVICE_ID_ADL_2301 0x2301
-
-#define PCI_VENDOR_ID_NS 0x100b
-#define PCI_DEVICE_ID_NS_87415 0x0002
-#define PCI_DEVICE_ID_NS_87560_LIO 0x000e
-#define PCI_DEVICE_ID_NS_87560_USB 0x0012
-#define PCI_DEVICE_ID_NS_83815 0x0020
-#define PCI_DEVICE_ID_NS_83820 0x0022
-#define PCI_DEVICE_ID_NS_CS5535_ISA 0x002b
-#define PCI_DEVICE_ID_NS_CS5535_IDE 0x002d
-#define PCI_DEVICE_ID_NS_CS5535_AUDIO 0x002e
-#define PCI_DEVICE_ID_NS_CS5535_USB 0x002f
-#define PCI_DEVICE_ID_NS_GX_VIDEO 0x0030
-#define PCI_DEVICE_ID_NS_SATURN 0x0035
-#define PCI_DEVICE_ID_NS_SCx200_BRIDGE 0x0500
-#define PCI_DEVICE_ID_NS_SCx200_SMI 0x0501
-#define PCI_DEVICE_ID_NS_SCx200_IDE 0x0502
-#define PCI_DEVICE_ID_NS_SCx200_AUDIO 0x0503
-#define PCI_DEVICE_ID_NS_SCx200_VIDEO 0x0504
-#define PCI_DEVICE_ID_NS_SCx200_XBUS 0x0505
-#define PCI_DEVICE_ID_NS_SC1100_BRIDGE 0x0510
-#define PCI_DEVICE_ID_NS_SC1100_SMI 0x0511
-#define PCI_DEVICE_ID_NS_SC1100_XBUS 0x0515
-#define PCI_DEVICE_ID_NS_87410 0xd001
-
-#define PCI_DEVICE_ID_NS_GX_HOST_BRIDGE 0x0028
-
-#define PCI_VENDOR_ID_TSENG 0x100c
-#define PCI_DEVICE_ID_TSENG_W32P_2 0x3202
-#define PCI_DEVICE_ID_TSENG_W32P_b 0x3205
-#define PCI_DEVICE_ID_TSENG_W32P_c 0x3206
-#define PCI_DEVICE_ID_TSENG_W32P_d 0x3207
-#define PCI_DEVICE_ID_TSENG_ET6000 0x3208
-
-#define PCI_VENDOR_ID_WEITEK 0x100e
-#define PCI_DEVICE_ID_WEITEK_P9000 0x9001
-#define PCI_DEVICE_ID_WEITEK_P9100 0x9100
-
-#define PCI_VENDOR_ID_DEC 0x1011
-#define PCI_DEVICE_ID_DEC_BRD 0x0001
-#define PCI_DEVICE_ID_DEC_TULIP 0x0002
-#define PCI_DEVICE_ID_DEC_TGA 0x0004
-#define PCI_DEVICE_ID_DEC_TULIP_FAST 0x0009
-#define PCI_DEVICE_ID_DEC_TGA2 0x000D
-#define PCI_DEVICE_ID_DEC_FDDI 0x000F
-#define PCI_DEVICE_ID_DEC_TULIP_PLUS 0x0014
-#define PCI_DEVICE_ID_DEC_21142 0x0019
-#define PCI_DEVICE_ID_DEC_21052 0x0021
-#define PCI_DEVICE_ID_DEC_21150 0x0022
-#define PCI_DEVICE_ID_DEC_21152 0x0024
-#define PCI_DEVICE_ID_DEC_21153 0x0025
-#define PCI_DEVICE_ID_DEC_21154 0x0026
-#define PCI_DEVICE_ID_DEC_21285 0x1065
-#define PCI_DEVICE_ID_COMPAQ_42XX 0x0046
-
-#define PCI_VENDOR_ID_CIRRUS 0x1013
-#define PCI_DEVICE_ID_CIRRUS_7548 0x0038
-#define PCI_DEVICE_ID_CIRRUS_5430 0x00a0
-#define PCI_DEVICE_ID_CIRRUS_5434_4 0x00a4
-#define PCI_DEVICE_ID_CIRRUS_5434_8 0x00a8
-#define PCI_DEVICE_ID_CIRRUS_5436 0x00ac
-#define PCI_DEVICE_ID_CIRRUS_5446 0x00b8
-#define PCI_DEVICE_ID_CIRRUS_5480 0x00bc
-#define PCI_DEVICE_ID_CIRRUS_5462 0x00d0
-#define PCI_DEVICE_ID_CIRRUS_5464 0x00d4
-#define PCI_DEVICE_ID_CIRRUS_5465 0x00d6
-#define PCI_DEVICE_ID_CIRRUS_6729 0x1100
-#define PCI_DEVICE_ID_CIRRUS_6832 0x1110
-#define PCI_DEVICE_ID_CIRRUS_7543 0x1202
-#define PCI_DEVICE_ID_CIRRUS_4610 0x6001
-#define PCI_DEVICE_ID_CIRRUS_4612 0x6003
-#define PCI_DEVICE_ID_CIRRUS_4615 0x6004
-
-#define PCI_VENDOR_ID_IBM 0x1014
-#define PCI_DEVICE_ID_IBM_TR 0x0018
-#define PCI_DEVICE_ID_IBM_TR_WAKE 0x003e
-#define PCI_DEVICE_ID_IBM_CPC710_PCI64 0x00fc
-#define PCI_DEVICE_ID_IBM_SNIPE 0x0180
-#define PCI_DEVICE_ID_IBM_CITRINE 0x028C
-#define PCI_DEVICE_ID_IBM_GEMSTONE 0xB166
-#define PCI_DEVICE_ID_IBM_OBSIDIAN 0x02BD
-#define PCI_DEVICE_ID_IBM_ICOM_DEV_ID_1 0x0031
-#define PCI_DEVICE_ID_IBM_ICOM_DEV_ID_2 0x0219
-#define PCI_DEVICE_ID_IBM_ICOM_V2_TWO_PORTS_RVX 0x021A
-#define PCI_DEVICE_ID_IBM_ICOM_V2_ONE_PORT_RVX_ONE_PORT_MDM 0x0251
-#define PCI_DEVICE_ID_IBM_ICOM_V2_ONE_PORT_RVX_ONE_PORT_MDM_PCIE 0x0361
-#define PCI_DEVICE_ID_IBM_ICOM_FOUR_PORT_MODEL 0x252
-
-#define PCI_SUBVENDOR_ID_IBM 0x1014
-#define PCI_SUBDEVICE_ID_IBM_SATURN_SERIAL_ONE_PORT 0x03d4
-
-#define PCI_VENDOR_ID_UNISYS 0x1018
-#define PCI_DEVICE_ID_UNISYS_DMA_DIRECTOR 0x001C
-
-#define PCI_VENDOR_ID_COMPEX2 0x101a /* pci.ids says "AT&T GIS (NCR)" */
-#define PCI_DEVICE_ID_COMPEX2_100VG 0x0005
-
-#define PCI_VENDOR_ID_WD 0x101c
-#define PCI_DEVICE_ID_WD_90C 0xc24a
-
-#define PCI_VENDOR_ID_AMI 0x101e
-#define PCI_DEVICE_ID_AMI_MEGARAID3 0x1960
-#define PCI_DEVICE_ID_AMI_MEGARAID 0x9010
-#define PCI_DEVICE_ID_AMI_MEGARAID2 0x9060
-
-#define PCI_VENDOR_ID_AMD 0x1022
-#define PCI_DEVICE_ID_AMD_K8_NB 0x1100
-#define PCI_DEVICE_ID_AMD_K8_NB_ADDRMAP 0x1101
-#define PCI_DEVICE_ID_AMD_K8_NB_MEMCTL 0x1102
-#define PCI_DEVICE_ID_AMD_K8_NB_MISC 0x1103
-#define PCI_DEVICE_ID_AMD_10H_NB_HT 0x1200
-#define PCI_DEVICE_ID_AMD_10H_NB_MAP 0x1201
-#define PCI_DEVICE_ID_AMD_10H_NB_DRAM 0x1202
-#define PCI_DEVICE_ID_AMD_10H_NB_MISC 0x1203
-#define PCI_DEVICE_ID_AMD_10H_NB_LINK 0x1204
-#define PCI_DEVICE_ID_AMD_11H_NB_HT 0x1300
-#define PCI_DEVICE_ID_AMD_11H_NB_MAP 0x1301
-#define PCI_DEVICE_ID_AMD_11H_NB_DRAM 0x1302
-#define PCI_DEVICE_ID_AMD_11H_NB_MISC 0x1303
-#define PCI_DEVICE_ID_AMD_11H_NB_LINK 0x1304
-#define PCI_DEVICE_ID_AMD_15H_NB_F0 0x1600
-#define PCI_DEVICE_ID_AMD_15H_NB_F1 0x1601
-#define PCI_DEVICE_ID_AMD_15H_NB_F2 0x1602
-#define PCI_DEVICE_ID_AMD_15H_NB_F3 0x1603
-#define PCI_DEVICE_ID_AMD_15H_NB_F4 0x1604
-#define PCI_DEVICE_ID_AMD_15H_NB_F5 0x1605
-#define PCI_DEVICE_ID_AMD_CNB17H_F3 0x1703
-#define PCI_DEVICE_ID_AMD_LANCE 0x2000
-#define PCI_DEVICE_ID_AMD_LANCE_HOME 0x2001
-#define PCI_DEVICE_ID_AMD_SCSI 0x2020
-#define PCI_DEVICE_ID_AMD_SERENADE 0x36c0
-#define PCI_DEVICE_ID_AMD_FE_GATE_7006 0x7006
-#define PCI_DEVICE_ID_AMD_FE_GATE_7007 0x7007
-#define PCI_DEVICE_ID_AMD_FE_GATE_700C 0x700C
-#define PCI_DEVICE_ID_AMD_FE_GATE_700E 0x700E
-#define PCI_DEVICE_ID_AMD_COBRA_7401 0x7401
-#define PCI_DEVICE_ID_AMD_VIPER_7409 0x7409
-#define PCI_DEVICE_ID_AMD_VIPER_740B 0x740B
-#define PCI_DEVICE_ID_AMD_VIPER_7410 0x7410
-#define PCI_DEVICE_ID_AMD_VIPER_7411 0x7411
-#define PCI_DEVICE_ID_AMD_VIPER_7413 0x7413
-#define PCI_DEVICE_ID_AMD_VIPER_7440 0x7440
-#define PCI_DEVICE_ID_AMD_OPUS_7441 0x7441
-#define PCI_DEVICE_ID_AMD_OPUS_7443 0x7443
-#define PCI_DEVICE_ID_AMD_VIPER_7443 0x7443
-#define PCI_DEVICE_ID_AMD_OPUS_7445 0x7445
-#define PCI_DEVICE_ID_AMD_8111_PCI 0x7460
-#define PCI_DEVICE_ID_AMD_8111_LPC 0x7468
-#define PCI_DEVICE_ID_AMD_8111_IDE 0x7469
-#define PCI_DEVICE_ID_AMD_8111_SMBUS2 0x746a
-#define PCI_DEVICE_ID_AMD_8111_SMBUS 0x746b
-#define PCI_DEVICE_ID_AMD_8111_AUDIO 0x746d
-#define PCI_DEVICE_ID_AMD_8151_0 0x7454
-#define PCI_DEVICE_ID_AMD_8131_BRIDGE 0x7450
-#define PCI_DEVICE_ID_AMD_8131_APIC 0x7451
-#define PCI_DEVICE_ID_AMD_8132_BRIDGE 0x7458
-#define PCI_DEVICE_ID_AMD_HUDSON2_SMBUS 0x780b
-#define PCI_DEVICE_ID_AMD_CS5535_IDE 0x208F
-#define PCI_DEVICE_ID_AMD_CS5536_ISA 0x2090
-#define PCI_DEVICE_ID_AMD_CS5536_FLASH 0x2091
-#define PCI_DEVICE_ID_AMD_CS5536_AUDIO 0x2093
-#define PCI_DEVICE_ID_AMD_CS5536_OHC 0x2094
-#define PCI_DEVICE_ID_AMD_CS5536_EHC 0x2095
-#define PCI_DEVICE_ID_AMD_CS5536_UDC 0x2096
-#define PCI_DEVICE_ID_AMD_CS5536_UOC 0x2097
-#define PCI_DEVICE_ID_AMD_CS5536_IDE 0x209A
-#define PCI_DEVICE_ID_AMD_LX_VIDEO 0x2081
-#define PCI_DEVICE_ID_AMD_LX_AES 0x2082
-#define PCI_DEVICE_ID_AMD_HUDSON2_IDE 0x780c
-#define PCI_DEVICE_ID_AMD_HUDSON2_SATA_IDE 0x7800
-
-#define PCI_VENDOR_ID_TRIDENT 0x1023
-#define PCI_DEVICE_ID_TRIDENT_4DWAVE_DX 0x2000
-#define PCI_DEVICE_ID_TRIDENT_4DWAVE_NX 0x2001
-#define PCI_DEVICE_ID_TRIDENT_9320 0x9320
-#define PCI_DEVICE_ID_TRIDENT_9388 0x9388
-#define PCI_DEVICE_ID_TRIDENT_9397 0x9397
-#define PCI_DEVICE_ID_TRIDENT_939A 0x939A
-#define PCI_DEVICE_ID_TRIDENT_9520 0x9520
-#define PCI_DEVICE_ID_TRIDENT_9525 0x9525
-#define PCI_DEVICE_ID_TRIDENT_9420 0x9420
-#define PCI_DEVICE_ID_TRIDENT_9440 0x9440
-#define PCI_DEVICE_ID_TRIDENT_9660 0x9660
-#define PCI_DEVICE_ID_TRIDENT_9750 0x9750
-#define PCI_DEVICE_ID_TRIDENT_9850 0x9850
-#define PCI_DEVICE_ID_TRIDENT_9880 0x9880
-#define PCI_DEVICE_ID_TRIDENT_8400 0x8400
-#define PCI_DEVICE_ID_TRIDENT_8420 0x8420
-#define PCI_DEVICE_ID_TRIDENT_8500 0x8500
-
-#define PCI_VENDOR_ID_AI 0x1025
-#define PCI_DEVICE_ID_AI_M1435 0x1435
-
-#define PCI_VENDOR_ID_DELL 0x1028
-#define PCI_DEVICE_ID_DELL_RACIII 0x0008
-#define PCI_DEVICE_ID_DELL_RAC4 0x0012
-#define PCI_DEVICE_ID_DELL_PERC5 0x0015
-
-#define PCI_VENDOR_ID_MATROX 0x102B
-#define PCI_DEVICE_ID_MATROX_MGA_2 0x0518
-#define PCI_DEVICE_ID_MATROX_MIL 0x0519
-#define PCI_DEVICE_ID_MATROX_MYS 0x051A
-#define PCI_DEVICE_ID_MATROX_MIL_2 0x051b
-#define PCI_DEVICE_ID_MATROX_MYS_AGP 0x051e
-#define PCI_DEVICE_ID_MATROX_MIL_2_AGP 0x051f
-#define PCI_DEVICE_ID_MATROX_MGA_IMP 0x0d10
-#define PCI_DEVICE_ID_MATROX_G100_MM 0x1000
-#define PCI_DEVICE_ID_MATROX_G100_AGP 0x1001
-#define PCI_DEVICE_ID_MATROX_G200_PCI 0x0520
-#define PCI_DEVICE_ID_MATROX_G200_AGP 0x0521
-#define PCI_DEVICE_ID_MATROX_G400 0x0525
-#define PCI_DEVICE_ID_MATROX_G200EV_PCI 0x0530
-#define PCI_DEVICE_ID_MATROX_G550 0x2527
-#define PCI_DEVICE_ID_MATROX_VIA 0x4536
-
-#define PCI_VENDOR_ID_MOBILITY_ELECTRONICS 0x14f2
-
-#define PCI_VENDOR_ID_CT 0x102c
-#define PCI_DEVICE_ID_CT_69000 0x00c0
-#define PCI_DEVICE_ID_CT_65545 0x00d8
-#define PCI_DEVICE_ID_CT_65548 0x00dc
-#define PCI_DEVICE_ID_CT_65550 0x00e0
-#define PCI_DEVICE_ID_CT_65554 0x00e4
-#define PCI_DEVICE_ID_CT_65555 0x00e5
-
-#define PCI_VENDOR_ID_MIRO 0x1031
-#define PCI_DEVICE_ID_MIRO_36050 0x5601
-#define PCI_DEVICE_ID_MIRO_DC10PLUS 0x7efe
-#define PCI_DEVICE_ID_MIRO_DC30PLUS 0xd801
-
-#define PCI_VENDOR_ID_NEC 0x1033
-#define PCI_DEVICE_ID_NEC_CBUS_1 0x0001 /* PCI-Cbus Bridge */
-#define PCI_DEVICE_ID_NEC_LOCAL 0x0002 /* Local Bridge */
-#define PCI_DEVICE_ID_NEC_ATM 0x0003 /* ATM LAN Controller */
-#define PCI_DEVICE_ID_NEC_R4000 0x0004 /* R4000 Bridge */
-#define PCI_DEVICE_ID_NEC_486 0x0005 /* 486 Like Peripheral Bus Bridge */
-#define PCI_DEVICE_ID_NEC_ACCEL_1 0x0006 /* Graphic Accelerator */
-#define PCI_DEVICE_ID_NEC_UXBUS 0x0007 /* UX-Bus Bridge */
-#define PCI_DEVICE_ID_NEC_ACCEL_2 0x0008 /* Graphic Accelerator */
-#define PCI_DEVICE_ID_NEC_GRAPH 0x0009 /* PCI-CoreGraph Bridge */
-#define PCI_DEVICE_ID_NEC_VL 0x0016 /* PCI-VL Bridge */
-#define PCI_DEVICE_ID_NEC_STARALPHA2 0x002c /* STAR ALPHA2 */
-#define PCI_DEVICE_ID_NEC_CBUS_2 0x002d /* PCI-Cbus Bridge */
-#define PCI_DEVICE_ID_NEC_USB 0x0035 /* PCI-USB Host */
-#define PCI_DEVICE_ID_NEC_CBUS_3 0x003b
-#define PCI_DEVICE_ID_NEC_NAPCCARD 0x003e
-#define PCI_DEVICE_ID_NEC_PCX2 0x0046 /* PowerVR */
-#define PCI_DEVICE_ID_NEC_VRC5476 0x009b
-#define PCI_DEVICE_ID_NEC_VRC4173 0x00a5
-#define PCI_DEVICE_ID_NEC_VRC5477_AC97 0x00a6
-#define PCI_DEVICE_ID_NEC_PC9821CS01 0x800c /* PC-9821-CS01 */
-#define PCI_DEVICE_ID_NEC_PC9821NRB06 0x800d /* PC-9821NR-B06 */
-
-#define PCI_VENDOR_ID_FD 0x1036
-#define PCI_DEVICE_ID_FD_36C70 0x0000
-
-#define PCI_VENDOR_ID_SI 0x1039
-#define PCI_DEVICE_ID_SI_5591_AGP 0x0001
-#define PCI_DEVICE_ID_SI_6202 0x0002
-#define PCI_DEVICE_ID_SI_503 0x0008
-#define PCI_DEVICE_ID_SI_ACPI 0x0009
-#define PCI_DEVICE_ID_SI_SMBUS 0x0016
-#define PCI_DEVICE_ID_SI_LPC 0x0018
-#define PCI_DEVICE_ID_SI_5597_VGA 0x0200
-#define PCI_DEVICE_ID_SI_6205 0x0205
-#define PCI_DEVICE_ID_SI_501 0x0406
-#define PCI_DEVICE_ID_SI_496 0x0496
-#define PCI_DEVICE_ID_SI_300 0x0300
-#define PCI_DEVICE_ID_SI_315H 0x0310
-#define PCI_DEVICE_ID_SI_315 0x0315
-#define PCI_DEVICE_ID_SI_315PRO 0x0325
-#define PCI_DEVICE_ID_SI_530 0x0530
-#define PCI_DEVICE_ID_SI_540 0x0540
-#define PCI_DEVICE_ID_SI_550 0x0550
-#define PCI_DEVICE_ID_SI_540_VGA 0x5300
-#define PCI_DEVICE_ID_SI_550_VGA 0x5315
-#define PCI_DEVICE_ID_SI_620 0x0620
-#define PCI_DEVICE_ID_SI_630 0x0630
-#define PCI_DEVICE_ID_SI_633 0x0633
-#define PCI_DEVICE_ID_SI_635 0x0635
-#define PCI_DEVICE_ID_SI_640 0x0640
-#define PCI_DEVICE_ID_SI_645 0x0645
-#define PCI_DEVICE_ID_SI_646 0x0646
-#define PCI_DEVICE_ID_SI_648 0x0648
-#define PCI_DEVICE_ID_SI_650 0x0650
-#define PCI_DEVICE_ID_SI_651 0x0651
-#define PCI_DEVICE_ID_SI_655 0x0655
-#define PCI_DEVICE_ID_SI_661 0x0661
-#define PCI_DEVICE_ID_SI_730 0x0730
-#define PCI_DEVICE_ID_SI_733 0x0733
-#define PCI_DEVICE_ID_SI_630_VGA 0x6300
-#define PCI_DEVICE_ID_SI_735 0x0735
-#define PCI_DEVICE_ID_SI_740 0x0740
-#define PCI_DEVICE_ID_SI_741 0x0741
-#define PCI_DEVICE_ID_SI_745 0x0745
-#define PCI_DEVICE_ID_SI_746 0x0746
-#define PCI_DEVICE_ID_SI_755 0x0755
-#define PCI_DEVICE_ID_SI_760 0x0760
-#define PCI_DEVICE_ID_SI_900 0x0900
-#define PCI_DEVICE_ID_SI_961 0x0961
-#define PCI_DEVICE_ID_SI_962 0x0962
-#define PCI_DEVICE_ID_SI_963 0x0963
-#define PCI_DEVICE_ID_SI_965 0x0965
-#define PCI_DEVICE_ID_SI_966 0x0966
-#define PCI_DEVICE_ID_SI_968 0x0968
-#define PCI_DEVICE_ID_SI_1180 0x1180
-#define PCI_DEVICE_ID_SI_5511 0x5511
-#define PCI_DEVICE_ID_SI_5513 0x5513
-#define PCI_DEVICE_ID_SI_5517 0x5517
-#define PCI_DEVICE_ID_SI_5518 0x5518
-#define PCI_DEVICE_ID_SI_5571 0x5571
-#define PCI_DEVICE_ID_SI_5581 0x5581
-#define PCI_DEVICE_ID_SI_5582 0x5582
-#define PCI_DEVICE_ID_SI_5591 0x5591
-#define PCI_DEVICE_ID_SI_5596 0x5596
-#define PCI_DEVICE_ID_SI_5597 0x5597
-#define PCI_DEVICE_ID_SI_5598 0x5598
-#define PCI_DEVICE_ID_SI_5600 0x5600
-#define PCI_DEVICE_ID_SI_7012 0x7012
-#define PCI_DEVICE_ID_SI_7013 0x7013
-#define PCI_DEVICE_ID_SI_7016 0x7016
-#define PCI_DEVICE_ID_SI_7018 0x7018
-
-#define PCI_VENDOR_ID_HP 0x103c
-#define PCI_DEVICE_ID_HP_VISUALIZE_EG 0x1005
-#define PCI_DEVICE_ID_HP_VISUALIZE_FX6 0x1006
-#define PCI_DEVICE_ID_HP_VISUALIZE_FX4 0x1008
-#define PCI_DEVICE_ID_HP_VISUALIZE_FX2 0x100a
-#define PCI_DEVICE_ID_HP_TACHYON 0x1028
-#define PCI_DEVICE_ID_HP_TACHLITE 0x1029
-#define PCI_DEVICE_ID_HP_J2585A 0x1030
-#define PCI_DEVICE_ID_HP_J2585B 0x1031
-#define PCI_DEVICE_ID_HP_J2973A 0x1040
-#define PCI_DEVICE_ID_HP_J2970A 0x1042
-#define PCI_DEVICE_ID_HP_DIVA 0x1048
-#define PCI_DEVICE_ID_HP_DIVA_TOSCA1 0x1049
-#define PCI_DEVICE_ID_HP_DIVA_TOSCA2 0x104A
-#define PCI_DEVICE_ID_HP_DIVA_MAESTRO 0x104B
-#define PCI_DEVICE_ID_HP_REO_IOC 0x10f1
-#define PCI_DEVICE_ID_HP_VISUALIZE_FXE 0x108b
-#define PCI_DEVICE_ID_HP_DIVA_HALFDOME 0x1223
-#define PCI_DEVICE_ID_HP_DIVA_KEYSTONE 0x1226
-#define PCI_DEVICE_ID_HP_DIVA_POWERBAR 0x1227
-#define PCI_DEVICE_ID_HP_ZX1_IOC 0x122a
-#define PCI_DEVICE_ID_HP_PCIX_LBA 0x122e
-#define PCI_DEVICE_ID_HP_SX1000_IOC 0x127c
-#define PCI_DEVICE_ID_HP_DIVA_EVEREST 0x1282
-#define PCI_DEVICE_ID_HP_DIVA_AUX 0x1290
-#define PCI_DEVICE_ID_HP_DIVA_RMP3 0x1301
-#define PCI_DEVICE_ID_HP_DIVA_HURRICANE 0x132a
-#define PCI_DEVICE_ID_HP_CISSA 0x3220
-#define PCI_DEVICE_ID_HP_CISSC 0x3230
-#define PCI_DEVICE_ID_HP_CISSD 0x3238
-#define PCI_DEVICE_ID_HP_CISSE 0x323a
-#define PCI_DEVICE_ID_HP_CISSF 0x323b
-#define PCI_DEVICE_ID_HP_ZX2_IOC 0x4031
-
-#define PCI_VENDOR_ID_PCTECH 0x1042
-#define PCI_DEVICE_ID_PCTECH_RZ1000 0x1000
-#define PCI_DEVICE_ID_PCTECH_RZ1001 0x1001
-#define PCI_DEVICE_ID_PCTECH_SAMURAI_IDE 0x3020
-
-#define PCI_VENDOR_ID_ASUSTEK 0x1043
-#define PCI_DEVICE_ID_ASUSTEK_0675 0x0675
-
-#define PCI_VENDOR_ID_DPT 0x1044
-#define PCI_DEVICE_ID_DPT 0xa400
-
-#define PCI_VENDOR_ID_OPTI 0x1045
-#define PCI_DEVICE_ID_OPTI_82C558 0xc558
-#define PCI_DEVICE_ID_OPTI_82C621 0xc621
-#define PCI_DEVICE_ID_OPTI_82C700 0xc700
-#define PCI_DEVICE_ID_OPTI_82C825 0xd568
-
-#define PCI_VENDOR_ID_ELSA 0x1048
-#define PCI_DEVICE_ID_ELSA_MICROLINK 0x1000
-#define PCI_DEVICE_ID_ELSA_QS3000 0x3000
-
-#define PCI_VENDOR_ID_STMICRO 0x104A
-#define PCI_DEVICE_ID_STMICRO_USB_HOST 0xCC00
-#define PCI_DEVICE_ID_STMICRO_USB_OHCI 0xCC01
-#define PCI_DEVICE_ID_STMICRO_USB_OTG 0xCC02
-#define PCI_DEVICE_ID_STMICRO_UART_HWFC 0xCC03
-#define PCI_DEVICE_ID_STMICRO_UART_NO_HWFC 0xCC04
-#define PCI_DEVICE_ID_STMICRO_SOC_DMA 0xCC05
-#define PCI_DEVICE_ID_STMICRO_SATA 0xCC06
-#define PCI_DEVICE_ID_STMICRO_I2C 0xCC07
-#define PCI_DEVICE_ID_STMICRO_SPI_HS 0xCC08
-#define PCI_DEVICE_ID_STMICRO_MAC 0xCC09
-#define PCI_DEVICE_ID_STMICRO_SDIO_EMMC 0xCC0A
-#define PCI_DEVICE_ID_STMICRO_SDIO 0xCC0B
-#define PCI_DEVICE_ID_STMICRO_GPIO 0xCC0C
-#define PCI_DEVICE_ID_STMICRO_VIP 0xCC0D
-#define PCI_DEVICE_ID_STMICRO_AUDIO_ROUTER_DMA 0xCC0E
-#define PCI_DEVICE_ID_STMICRO_AUDIO_ROUTER_SRCS 0xCC0F
-#define PCI_DEVICE_ID_STMICRO_AUDIO_ROUTER_MSPS 0xCC10
-#define PCI_DEVICE_ID_STMICRO_CAN 0xCC11
-#define PCI_DEVICE_ID_STMICRO_MLB 0xCC12
-#define PCI_DEVICE_ID_STMICRO_DBP 0xCC13
-#define PCI_DEVICE_ID_STMICRO_SATA_PHY 0xCC14
-#define PCI_DEVICE_ID_STMICRO_ESRAM 0xCC15
-#define PCI_DEVICE_ID_STMICRO_VIC 0xCC16
-
-#define PCI_VENDOR_ID_BUSLOGIC 0x104B
-#define PCI_DEVICE_ID_BUSLOGIC_MULTIMASTER_NC 0x0140
-#define PCI_DEVICE_ID_BUSLOGIC_MULTIMASTER 0x1040
-#define PCI_DEVICE_ID_BUSLOGIC_FLASHPOINT 0x8130
-
-#define PCI_VENDOR_ID_TI 0x104c
-#define PCI_DEVICE_ID_TI_TVP4020 0x3d07
-#define PCI_DEVICE_ID_TI_4450 0x8011
-#define PCI_DEVICE_ID_TI_XX21_XX11 0x8031
-#define PCI_DEVICE_ID_TI_XX21_XX11_FM 0x8033
-#define PCI_DEVICE_ID_TI_XX21_XX11_SD 0x8034
-#define PCI_DEVICE_ID_TI_X515 0x8036
-#define PCI_DEVICE_ID_TI_XX12 0x8039
-#define PCI_DEVICE_ID_TI_XX12_FM 0x803b
-#define PCI_DEVICE_ID_TI_XIO2000A 0x8231
-#define PCI_DEVICE_ID_TI_1130 0xac12
-#define PCI_DEVICE_ID_TI_1031 0xac13
-#define PCI_DEVICE_ID_TI_1131 0xac15
-#define PCI_DEVICE_ID_TI_1250 0xac16
-#define PCI_DEVICE_ID_TI_1220 0xac17
-#define PCI_DEVICE_ID_TI_1221 0xac19
-#define PCI_DEVICE_ID_TI_1210 0xac1a
-#define PCI_DEVICE_ID_TI_1450 0xac1b
-#define PCI_DEVICE_ID_TI_1225 0xac1c
-#define PCI_DEVICE_ID_TI_1251A 0xac1d
-#define PCI_DEVICE_ID_TI_1211 0xac1e
-#define PCI_DEVICE_ID_TI_1251B 0xac1f
-#define PCI_DEVICE_ID_TI_4410 0xac41
-#define PCI_DEVICE_ID_TI_4451 0xac42
-#define PCI_DEVICE_ID_TI_4510 0xac44
-#define PCI_DEVICE_ID_TI_4520 0xac46
-#define PCI_DEVICE_ID_TI_7510 0xac47
-#define PCI_DEVICE_ID_TI_7610 0xac48
-#define PCI_DEVICE_ID_TI_7410 0xac49
-#define PCI_DEVICE_ID_TI_1410 0xac50
-#define PCI_DEVICE_ID_TI_1420 0xac51
-#define PCI_DEVICE_ID_TI_1451A 0xac52
-#define PCI_DEVICE_ID_TI_1620 0xac54
-#define PCI_DEVICE_ID_TI_1520 0xac55
-#define PCI_DEVICE_ID_TI_1510 0xac56
-#define PCI_DEVICE_ID_TI_X620 0xac8d
-#define PCI_DEVICE_ID_TI_X420 0xac8e
-#define PCI_DEVICE_ID_TI_XX20_FM 0xac8f
-
-#define PCI_VENDOR_ID_SONY 0x104d
-
-/* Winbond have two vendor IDs! See 0x10ad as well */
-#define PCI_VENDOR_ID_WINBOND2 0x1050
-#define PCI_DEVICE_ID_WINBOND2_89C940F 0x5a5a
-#define PCI_DEVICE_ID_WINBOND2_6692 0x6692
-
-#define PCI_VENDOR_ID_ANIGMA 0x1051
-#define PCI_DEVICE_ID_ANIGMA_MC145575 0x0100
-
-#define PCI_VENDOR_ID_EFAR 0x1055
-#define PCI_DEVICE_ID_EFAR_SLC90E66_1 0x9130
-#define PCI_DEVICE_ID_EFAR_SLC90E66_3 0x9463
-
-#define PCI_VENDOR_ID_MOTOROLA 0x1057
-#define PCI_DEVICE_ID_MOTOROLA_MPC105 0x0001
-#define PCI_DEVICE_ID_MOTOROLA_MPC106 0x0002
-#define PCI_DEVICE_ID_MOTOROLA_MPC107 0x0004
-#define PCI_DEVICE_ID_MOTOROLA_RAVEN 0x4801
-#define PCI_DEVICE_ID_MOTOROLA_FALCON 0x4802
-#define PCI_DEVICE_ID_MOTOROLA_HAWK 0x4803
-#define PCI_DEVICE_ID_MOTOROLA_HARRIER 0x480b
-#define PCI_DEVICE_ID_MOTOROLA_MPC5200 0x5803
-#define PCI_DEVICE_ID_MOTOROLA_MPC5200B 0x5809
-
-#define PCI_VENDOR_ID_PROMISE 0x105a
-#define PCI_DEVICE_ID_PROMISE_20265 0x0d30
-#define PCI_DEVICE_ID_PROMISE_20267 0x4d30
-#define PCI_DEVICE_ID_PROMISE_20246 0x4d33
-#define PCI_DEVICE_ID_PROMISE_20262 0x4d38
-#define PCI_DEVICE_ID_PROMISE_20263 0x0D38
-#define PCI_DEVICE_ID_PROMISE_20268 0x4d68
-#define PCI_DEVICE_ID_PROMISE_20269 0x4d69
-#define PCI_DEVICE_ID_PROMISE_20270 0x6268
-#define PCI_DEVICE_ID_PROMISE_20271 0x6269
-#define PCI_DEVICE_ID_PROMISE_20275 0x1275
-#define PCI_DEVICE_ID_PROMISE_20276 0x5275
-#define PCI_DEVICE_ID_PROMISE_20277 0x7275
-
-#define PCI_VENDOR_ID_FOXCONN 0x105b
-
-#define PCI_VENDOR_ID_UMC 0x1060
-#define PCI_DEVICE_ID_UMC_UM8673F 0x0101
-#define PCI_DEVICE_ID_UMC_UM8886BF 0x673a
-#define PCI_DEVICE_ID_UMC_UM8886A 0x886a
-
-#define PCI_VENDOR_ID_PICOPOWER 0x1066
-#define PCI_DEVICE_ID_PICOPOWER_PT86C523 0x0002
-#define PCI_DEVICE_ID_PICOPOWER_PT86C523BBP 0x8002
-
-#define PCI_VENDOR_ID_MYLEX 0x1069
-#define PCI_DEVICE_ID_MYLEX_DAC960_P 0x0001
-#define PCI_DEVICE_ID_MYLEX_DAC960_PD 0x0002
-#define PCI_DEVICE_ID_MYLEX_DAC960_PG 0x0010
-#define PCI_DEVICE_ID_MYLEX_DAC960_LA 0x0020
-#define PCI_DEVICE_ID_MYLEX_DAC960_LP 0x0050
-#define PCI_DEVICE_ID_MYLEX_DAC960_BA 0xBA56
-#define PCI_DEVICE_ID_MYLEX_DAC960_GEM 0xB166
-
-#define PCI_VENDOR_ID_APPLE 0x106b
-#define PCI_DEVICE_ID_APPLE_BANDIT 0x0001
-#define PCI_DEVICE_ID_APPLE_HYDRA 0x000e
-#define PCI_DEVICE_ID_APPLE_UNI_N_FW 0x0018
-#define PCI_DEVICE_ID_APPLE_UNI_N_AGP 0x0020
-#define PCI_DEVICE_ID_APPLE_UNI_N_GMAC 0x0021
-#define PCI_DEVICE_ID_APPLE_UNI_N_GMACP 0x0024
-#define PCI_DEVICE_ID_APPLE_UNI_N_AGP_P 0x0027
-#define PCI_DEVICE_ID_APPLE_UNI_N_AGP15 0x002d
-#define PCI_DEVICE_ID_APPLE_UNI_N_PCI15 0x002e
-#define PCI_DEVICE_ID_APPLE_UNI_N_GMAC2 0x0032
-#define PCI_DEVICE_ID_APPLE_UNI_N_ATA 0x0033
-#define PCI_DEVICE_ID_APPLE_UNI_N_AGP2 0x0034
-#define PCI_DEVICE_ID_APPLE_IPID_ATA100 0x003b
-#define PCI_DEVICE_ID_APPLE_K2_ATA100 0x0043
-#define PCI_DEVICE_ID_APPLE_U3_AGP 0x004b
-#define PCI_DEVICE_ID_APPLE_K2_GMAC 0x004c
-#define PCI_DEVICE_ID_APPLE_SH_ATA 0x0050
-#define PCI_DEVICE_ID_APPLE_SH_SUNGEM 0x0051
-#define PCI_DEVICE_ID_APPLE_U3L_AGP 0x0058
-#define PCI_DEVICE_ID_APPLE_U3H_AGP 0x0059
-#define PCI_DEVICE_ID_APPLE_U4_PCIE 0x005b
-#define PCI_DEVICE_ID_APPLE_IPID2_AGP 0x0066
-#define PCI_DEVICE_ID_APPLE_IPID2_ATA 0x0069
-#define PCI_DEVICE_ID_APPLE_IPID2_FW 0x006a
-#define PCI_DEVICE_ID_APPLE_IPID2_GMAC 0x006b
-#define PCI_DEVICE_ID_APPLE_TIGON3 0x1645
-
-#define PCI_VENDOR_ID_YAMAHA 0x1073
-#define PCI_DEVICE_ID_YAMAHA_724 0x0004
-#define PCI_DEVICE_ID_YAMAHA_724F 0x000d
-#define PCI_DEVICE_ID_YAMAHA_740 0x000a
-#define PCI_DEVICE_ID_YAMAHA_740C 0x000c
-#define PCI_DEVICE_ID_YAMAHA_744 0x0010
-#define PCI_DEVICE_ID_YAMAHA_754 0x0012
-
-#define PCI_VENDOR_ID_QLOGIC 0x1077
-#define PCI_DEVICE_ID_QLOGIC_ISP10160 0x1016
-#define PCI_DEVICE_ID_QLOGIC_ISP1020 0x1020
-#define PCI_DEVICE_ID_QLOGIC_ISP1080 0x1080
-#define PCI_DEVICE_ID_QLOGIC_ISP12160 0x1216
-#define PCI_DEVICE_ID_QLOGIC_ISP1240 0x1240
-#define PCI_DEVICE_ID_QLOGIC_ISP1280 0x1280
-#define PCI_DEVICE_ID_QLOGIC_ISP2100 0x2100
-#define PCI_DEVICE_ID_QLOGIC_ISP2200 0x2200
-#define PCI_DEVICE_ID_QLOGIC_ISP2300 0x2300
-#define PCI_DEVICE_ID_QLOGIC_ISP2312 0x2312
-#define PCI_DEVICE_ID_QLOGIC_ISP2322 0x2322
-#define PCI_DEVICE_ID_QLOGIC_ISP6312 0x6312
-#define PCI_DEVICE_ID_QLOGIC_ISP6322 0x6322
-#define PCI_DEVICE_ID_QLOGIC_ISP2422 0x2422
-#define PCI_DEVICE_ID_QLOGIC_ISP2432 0x2432
-#define PCI_DEVICE_ID_QLOGIC_ISP2512 0x2512
-#define PCI_DEVICE_ID_QLOGIC_ISP2522 0x2522
-#define PCI_DEVICE_ID_QLOGIC_ISP5422 0x5422
-#define PCI_DEVICE_ID_QLOGIC_ISP5432 0x5432
-
-#define PCI_VENDOR_ID_CYRIX 0x1078
-#define PCI_DEVICE_ID_CYRIX_5510 0x0000
-#define PCI_DEVICE_ID_CYRIX_PCI_MASTER 0x0001
-#define PCI_DEVICE_ID_CYRIX_5520 0x0002
-#define PCI_DEVICE_ID_CYRIX_5530_LEGACY 0x0100
-#define PCI_DEVICE_ID_CYRIX_5530_IDE 0x0102
-#define PCI_DEVICE_ID_CYRIX_5530_AUDIO 0x0103
-#define PCI_DEVICE_ID_CYRIX_5530_VIDEO 0x0104
-
-#define PCI_VENDOR_ID_CONTAQ 0x1080
-#define PCI_DEVICE_ID_CONTAQ_82C693 0xc693
-
-#define PCI_VENDOR_ID_OLICOM 0x108d
-#define PCI_DEVICE_ID_OLICOM_OC2325 0x0012
-#define PCI_DEVICE_ID_OLICOM_OC2183 0x0013
-#define PCI_DEVICE_ID_OLICOM_OC2326 0x0014
-
-#define PCI_VENDOR_ID_SUN 0x108e
-#define PCI_DEVICE_ID_SUN_EBUS 0x1000
-#define PCI_DEVICE_ID_SUN_HAPPYMEAL 0x1001
-#define PCI_DEVICE_ID_SUN_RIO_EBUS 0x1100
-#define PCI_DEVICE_ID_SUN_RIO_GEM 0x1101
-#define PCI_DEVICE_ID_SUN_RIO_1394 0x1102
-#define PCI_DEVICE_ID_SUN_RIO_USB 0x1103
-#define PCI_DEVICE_ID_SUN_GEM 0x2bad
-#define PCI_DEVICE_ID_SUN_SIMBA 0x5000
-#define PCI_DEVICE_ID_SUN_PBM 0x8000
-#define PCI_DEVICE_ID_SUN_SCHIZO 0x8001
-#define PCI_DEVICE_ID_SUN_SABRE 0xa000
-#define PCI_DEVICE_ID_SUN_HUMMINGBIRD 0xa001
-#define PCI_DEVICE_ID_SUN_TOMATILLO 0xa801
-#define PCI_DEVICE_ID_SUN_CASSINI 0xabba
-
-#define PCI_VENDOR_ID_NI 0x1093
-#define PCI_DEVICE_ID_NI_PCI2322 0xd130
-#define PCI_DEVICE_ID_NI_PCI2324 0xd140
-#define PCI_DEVICE_ID_NI_PCI2328 0xd150
-#define PCI_DEVICE_ID_NI_PXI8422_2322 0xd190
-#define PCI_DEVICE_ID_NI_PXI8422_2324 0xd1a0
-#define PCI_DEVICE_ID_NI_PXI8420_2322 0xd1d0
-#define PCI_DEVICE_ID_NI_PXI8420_2324 0xd1e0
-#define PCI_DEVICE_ID_NI_PXI8420_2328 0xd1f0
-#define PCI_DEVICE_ID_NI_PXI8420_23216 0xd1f1
-#define PCI_DEVICE_ID_NI_PCI2322I 0xd250
-#define PCI_DEVICE_ID_NI_PCI2324I 0xd270
-#define PCI_DEVICE_ID_NI_PCI23216 0xd2b0
-#define PCI_DEVICE_ID_NI_PXI8430_2322 0x7080
-#define PCI_DEVICE_ID_NI_PCI8430_2322 0x70db
-#define PCI_DEVICE_ID_NI_PXI8430_2324 0x70dd
-#define PCI_DEVICE_ID_NI_PCI8430_2324 0x70df
-#define PCI_DEVICE_ID_NI_PXI8430_2328 0x70e2
-#define PCI_DEVICE_ID_NI_PCI8430_2328 0x70e4
-#define PCI_DEVICE_ID_NI_PXI8430_23216 0x70e6
-#define PCI_DEVICE_ID_NI_PCI8430_23216 0x70e7
-#define PCI_DEVICE_ID_NI_PXI8432_2322 0x70e8
-#define PCI_DEVICE_ID_NI_PCI8432_2322 0x70ea
-#define PCI_DEVICE_ID_NI_PXI8432_2324 0x70ec
-#define PCI_DEVICE_ID_NI_PCI8432_2324 0x70ee
-
-#define PCI_VENDOR_ID_CMD 0x1095
-#define PCI_DEVICE_ID_CMD_643 0x0643
-#define PCI_DEVICE_ID_CMD_646 0x0646
-#define PCI_DEVICE_ID_CMD_648 0x0648
-#define PCI_DEVICE_ID_CMD_649 0x0649
-
-#define PCI_DEVICE_ID_SII_680 0x0680
-#define PCI_DEVICE_ID_SII_3112 0x3112
-#define PCI_DEVICE_ID_SII_1210SA 0x0240
-
-#define PCI_VENDOR_ID_BROOKTREE 0x109e
-#define PCI_DEVICE_ID_BROOKTREE_878 0x0878
-#define PCI_DEVICE_ID_BROOKTREE_879 0x0879
-
-#define PCI_VENDOR_ID_SGI 0x10a9
-#define PCI_DEVICE_ID_SGI_IOC3 0x0003
-#define PCI_DEVICE_ID_SGI_LITHIUM 0x1002
-#define PCI_DEVICE_ID_SGI_IOC4 0x100a
-
-#define PCI_VENDOR_ID_WINBOND 0x10ad
-#define PCI_DEVICE_ID_WINBOND_82C105 0x0105
-#define PCI_DEVICE_ID_WINBOND_83C553 0x0565
-
-#define PCI_VENDOR_ID_PLX 0x10b5
-#define PCI_DEVICE_ID_PLX_R685 0x1030
-#define PCI_DEVICE_ID_PLX_ROMULUS 0x106a
-#define PCI_DEVICE_ID_PLX_SPCOM800 0x1076
-#define PCI_DEVICE_ID_PLX_1077 0x1077
-#define PCI_DEVICE_ID_PLX_SPCOM200 0x1103
-#define PCI_DEVICE_ID_PLX_DJINN_ITOO 0x1151
-#define PCI_DEVICE_ID_PLX_R753 0x1152
-#define PCI_DEVICE_ID_PLX_OLITEC 0x1187
-#define PCI_DEVICE_ID_PLX_PCI200SYN 0x3196
-#define PCI_DEVICE_ID_PLX_9030 0x9030
-#define PCI_DEVICE_ID_PLX_9050 0x9050
-#define PCI_DEVICE_ID_PLX_9056 0x9056
-#define PCI_DEVICE_ID_PLX_9080 0x9080
-#define PCI_DEVICE_ID_PLX_GTEK_SERIAL2 0xa001
-
-#define PCI_VENDOR_ID_MADGE 0x10b6
-#define PCI_DEVICE_ID_MADGE_MK2 0x0002
-
-#define PCI_VENDOR_ID_3COM 0x10b7
-#define PCI_DEVICE_ID_3COM_3C985 0x0001
-#define PCI_DEVICE_ID_3COM_3C940 0x1700
-#define PCI_DEVICE_ID_3COM_3C339 0x3390
-#define PCI_DEVICE_ID_3COM_3C359 0x3590
-#define PCI_DEVICE_ID_3COM_3C940B 0x80eb
-#define PCI_DEVICE_ID_3COM_3CR990 0x9900
-#define PCI_DEVICE_ID_3COM_3CR990_TX_95 0x9902
-#define PCI_DEVICE_ID_3COM_3CR990_TX_97 0x9903
-#define PCI_DEVICE_ID_3COM_3CR990B 0x9904
-#define PCI_DEVICE_ID_3COM_3CR990_FX 0x9905
-#define PCI_DEVICE_ID_3COM_3CR990SVR95 0x9908
-#define PCI_DEVICE_ID_3COM_3CR990SVR97 0x9909
-#define PCI_DEVICE_ID_3COM_3CR990SVR 0x990a
-
-#define PCI_VENDOR_ID_AL 0x10b9
-#define PCI_DEVICE_ID_AL_M1533 0x1533
-#define PCI_DEVICE_ID_AL_M1535 0x1535
-#define PCI_DEVICE_ID_AL_M1541 0x1541
-#define PCI_DEVICE_ID_AL_M1563 0x1563
-#define PCI_DEVICE_ID_AL_M1621 0x1621
-#define PCI_DEVICE_ID_AL_M1631 0x1631
-#define PCI_DEVICE_ID_AL_M1632 0x1632
-#define PCI_DEVICE_ID_AL_M1641 0x1641
-#define PCI_DEVICE_ID_AL_M1644 0x1644
-#define PCI_DEVICE_ID_AL_M1647 0x1647
-#define PCI_DEVICE_ID_AL_M1651 0x1651
-#define PCI_DEVICE_ID_AL_M1671 0x1671
-#define PCI_DEVICE_ID_AL_M1681 0x1681
-#define PCI_DEVICE_ID_AL_M1683 0x1683
-#define PCI_DEVICE_ID_AL_M1689 0x1689
-#define PCI_DEVICE_ID_AL_M5219 0x5219
-#define PCI_DEVICE_ID_AL_M5228 0x5228
-#define PCI_DEVICE_ID_AL_M5229 0x5229
-#define PCI_DEVICE_ID_AL_M5451 0x5451
-#define PCI_DEVICE_ID_AL_M7101 0x7101
-
-#define PCI_VENDOR_ID_NEOMAGIC 0x10c8
-#define PCI_DEVICE_ID_NEOMAGIC_NM256AV_AUDIO 0x8005
-#define PCI_DEVICE_ID_NEOMAGIC_NM256ZX_AUDIO 0x8006
-#define PCI_DEVICE_ID_NEOMAGIC_NM256XL_PLUS_AUDIO 0x8016
-
-#define PCI_VENDOR_ID_TCONRAD 0x10da
-#define PCI_DEVICE_ID_TCONRAD_TOKENRING 0x0508
-
-#define PCI_VENDOR_ID_NVIDIA 0x10de
-#define PCI_DEVICE_ID_NVIDIA_TNT 0x0020
-#define PCI_DEVICE_ID_NVIDIA_TNT2 0x0028
-#define PCI_DEVICE_ID_NVIDIA_UTNT2 0x0029
-#define PCI_DEVICE_ID_NVIDIA_TNT_UNKNOWN 0x002a
-#define PCI_DEVICE_ID_NVIDIA_VTNT2 0x002C
-#define PCI_DEVICE_ID_NVIDIA_UVTNT2 0x002D
-#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SMBUS 0x0034
-#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_IDE 0x0035
-#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SATA 0x0036
-#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SATA2 0x003e
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_6800_ULTRA 0x0040
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_6800 0x0041
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_6800_LE 0x0042
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_6800_GT 0x0045
-#define PCI_DEVICE_ID_NVIDIA_QUADRO_FX_4000 0x004E
-#define PCI_DEVICE_ID_NVIDIA_NFORCE4_SMBUS 0x0052
-#define PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_IDE 0x0053
-#define PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_SATA 0x0054
-#define PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_SATA2 0x0055
-#define PCI_DEVICE_ID_NVIDIA_CK804_AUDIO 0x0059
-#define PCI_DEVICE_ID_NVIDIA_CK804_PCIE 0x005d
-#define PCI_DEVICE_ID_NVIDIA_NFORCE2_SMBUS 0x0064
-#define PCI_DEVICE_ID_NVIDIA_NFORCE2_IDE 0x0065
-#define PCI_DEVICE_ID_NVIDIA_MCP2_MODEM 0x0069
-#define PCI_DEVICE_ID_NVIDIA_MCP2_AUDIO 0x006a
-#define PCI_DEVICE_ID_NVIDIA_NFORCE2S_SMBUS 0x0084
-#define PCI_DEVICE_ID_NVIDIA_NFORCE2S_IDE 0x0085
-#define PCI_DEVICE_ID_NVIDIA_MCP2S_MODEM 0x0089
-#define PCI_DEVICE_ID_NVIDIA_CK8_AUDIO 0x008a
-#define PCI_DEVICE_ID_NVIDIA_NFORCE2S_SATA 0x008e
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_7800_GT 0x0090
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_7800_GTX 0x0091
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_GO_7800 0x0098
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_GO_7800_GTX 0x0099
-#define PCI_DEVICE_ID_NVIDIA_ITNT2 0x00A0
-#define PCI_DEVICE_ID_GEFORCE_6800A 0x00c1
-#define PCI_DEVICE_ID_GEFORCE_6800A_LE 0x00c2
-#define PCI_DEVICE_ID_GEFORCE_GO_6800 0x00c8
-#define PCI_DEVICE_ID_GEFORCE_GO_6800_ULTRA 0x00c9
-#define PCI_DEVICE_ID_QUADRO_FX_GO1400 0x00cc
-#define PCI_DEVICE_ID_QUADRO_FX_1400 0x00ce
-#define PCI_DEVICE_ID_NVIDIA_NFORCE3 0x00d1
-#define PCI_DEVICE_ID_NVIDIA_NFORCE3_SMBUS 0x00d4
-#define PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE 0x00d5
-#define PCI_DEVICE_ID_NVIDIA_MCP3_MODEM 0x00d9
-#define PCI_DEVICE_ID_NVIDIA_MCP3_AUDIO 0x00da
-#define PCI_DEVICE_ID_NVIDIA_NFORCE3S 0x00e1
-#define PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA 0x00e3
-#define PCI_DEVICE_ID_NVIDIA_NFORCE3S_SMBUS 0x00e4
-#define PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE 0x00e5
-#define PCI_DEVICE_ID_NVIDIA_CK8S_AUDIO 0x00ea
-#define PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2 0x00ee
-#define PCIE_DEVICE_ID_NVIDIA_GEFORCE_6800_ALT1 0x00f0
-#define PCIE_DEVICE_ID_NVIDIA_GEFORCE_6600_ALT1 0x00f1
-#define PCIE_DEVICE_ID_NVIDIA_GEFORCE_6600_ALT2 0x00f2
-#define PCIE_DEVICE_ID_NVIDIA_GEFORCE_6200_ALT1 0x00f3
-#define PCIE_DEVICE_ID_NVIDIA_GEFORCE_6800_GT 0x00f9
-#define PCIE_DEVICE_ID_NVIDIA_QUADRO_NVS280 0x00fd
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_SDR 0x0100
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_DDR 0x0101
-#define PCI_DEVICE_ID_NVIDIA_QUADRO 0x0103
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE2_MX 0x0110
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE2_MX2 0x0111
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE2_GO 0x0112
-#define PCI_DEVICE_ID_NVIDIA_QUADRO2_MXR 0x0113
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_6600_GT 0x0140
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_6600 0x0141
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_6610_XL 0x0145
-#define PCI_DEVICE_ID_NVIDIA_QUADRO_FX_540 0x014E
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_6200 0x014F
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE2_GTS 0x0150
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE2_GTS2 0x0151
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE2_ULTRA 0x0152
-#define PCI_DEVICE_ID_NVIDIA_QUADRO2_PRO 0x0153
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_6200_TURBOCACHE 0x0161
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_GO_6200 0x0164
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_GO_6250 0x0166
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_GO_6200_1 0x0167
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_GO_6250_1 0x0168
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_MX_460 0x0170
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_MX_440 0x0171
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_MX_420 0x0172
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_MX_440_SE 0x0173
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_440_GO 0x0174
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_420_GO 0x0175
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_420_GO_M32 0x0176
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_460_GO 0x0177
-#define PCI_DEVICE_ID_NVIDIA_QUADRO4_500XGL 0x0178
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_440_GO_M64 0x0179
-#define PCI_DEVICE_ID_NVIDIA_QUADRO4_200 0x017A
-#define PCI_DEVICE_ID_NVIDIA_QUADRO4_550XGL 0x017B
-#define PCI_DEVICE_ID_NVIDIA_QUADRO4_500_GOGL 0x017C
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_410_GO_M16 0x017D
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_MX_440_8X 0x0181
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_MX_440SE_8X 0x0182
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_MX_420_8X 0x0183
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_MX_4000 0x0185
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_448_GO 0x0186
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_488_GO 0x0187
-#define PCI_DEVICE_ID_NVIDIA_QUADRO4_580_XGL 0x0188
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_MX_MAC 0x0189
-#define PCI_DEVICE_ID_NVIDIA_QUADRO4_280_NVS 0x018A
-#define PCI_DEVICE_ID_NVIDIA_QUADRO4_380_XGL 0x018B
-#define PCI_DEVICE_ID_NVIDIA_IGEFORCE2 0x01a0
-#define PCI_DEVICE_ID_NVIDIA_NFORCE 0x01a4
-#define PCI_DEVICE_ID_NVIDIA_MCP1_AUDIO 0x01b1
-#define PCI_DEVICE_ID_NVIDIA_NFORCE_SMBUS 0x01b4
-#define PCI_DEVICE_ID_NVIDIA_NFORCE_IDE 0x01bc
-#define PCI_DEVICE_ID_NVIDIA_MCP1_MODEM 0x01c1
-#define PCI_DEVICE_ID_NVIDIA_NFORCE2 0x01e0
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE3 0x0200
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE3_1 0x0201
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE3_2 0x0202
-#define PCI_DEVICE_ID_NVIDIA_QUADRO_DDC 0x0203
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_6800B 0x0211
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_6800B_LE 0x0212
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_6800B_GT 0x0215
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_TI_4600 0x0250
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_TI_4400 0x0251
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_TI_4200 0x0253
-#define PCI_DEVICE_ID_NVIDIA_QUADRO4_900XGL 0x0258
-#define PCI_DEVICE_ID_NVIDIA_QUADRO4_750XGL 0x0259
-#define PCI_DEVICE_ID_NVIDIA_QUADRO4_700XGL 0x025B
-#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_SMBUS 0x0264
-#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_IDE 0x0265
-#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_SATA 0x0266
-#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_SATA2 0x0267
-#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SMBUS 0x0368
-#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_IDE 0x036E
-#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SATA 0x037E
-#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SATA2 0x037F
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_TI_4800 0x0280
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_TI_4800_8X 0x0281
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_TI_4800SE 0x0282
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_4200_GO 0x0286
-#define PCI_DEVICE_ID_NVIDIA_QUADRO4_980_XGL 0x0288
-#define PCI_DEVICE_ID_NVIDIA_QUADRO4_780_XGL 0x0289
-#define PCI_DEVICE_ID_NVIDIA_QUADRO4_700_GOGL 0x028C
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_5800_ULTRA 0x0301
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_5800 0x0302
-#define PCI_DEVICE_ID_NVIDIA_QUADRO_FX_2000 0x0308
-#define PCI_DEVICE_ID_NVIDIA_QUADRO_FX_1000 0x0309
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_5600_ULTRA 0x0311
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_5600 0x0312
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_5600SE 0x0314
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_GO5600 0x031A
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_GO5650 0x031B
-#define PCI_DEVICE_ID_NVIDIA_QUADRO_FX_GO700 0x031C
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_5200 0x0320
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_5200_ULTRA 0x0321
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_5200_1 0x0322
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_5200SE 0x0323
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_GO5200 0x0324
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_GO5250 0x0325
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_5500 0x0326
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_5100 0x0327
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_GO5250_32 0x0328
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_GO_5200 0x0329
-#define PCI_DEVICE_ID_NVIDIA_QUADRO_NVS_280_PCI 0x032A
-#define PCI_DEVICE_ID_NVIDIA_QUADRO_FX_500 0x032B
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_GO5300 0x032C
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_GO5100 0x032D
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_5900_ULTRA 0x0330
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_5900 0x0331
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_5900XT 0x0332
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_5950_ULTRA 0x0333
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_5900ZT 0x0334
-#define PCI_DEVICE_ID_NVIDIA_QUADRO_FX_3000 0x0338
-#define PCI_DEVICE_ID_NVIDIA_QUADRO_FX_700 0x033F
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_5700_ULTRA 0x0341
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_5700 0x0342
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_5700LE 0x0343
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_5700VE 0x0344
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_GO5700_1 0x0347
-#define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_GO5700_2 0x0348
-#define PCI_DEVICE_ID_NVIDIA_QUADRO_FX_GO1000 0x034C
-#define PCI_DEVICE_ID_NVIDIA_QUADRO_FX_1100 0x034E
-#define PCI_DEVICE_ID_NVIDIA_MCP55_BRIDGE_V0 0x0360
-#define PCI_DEVICE_ID_NVIDIA_MCP55_BRIDGE_V4 0x0364
-#define PCI_DEVICE_ID_NVIDIA_NVENET_15 0x0373
-#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA 0x03E7
-#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SMBUS 0x03EB
-#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_IDE 0x03EC
-#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA2 0x03F6
-#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA3 0x03F7
-#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP65_SMBUS 0x0446
-#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP65_IDE 0x0448
-#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP67_SMBUS 0x0542
-#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP67_IDE 0x0560
-#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP73_IDE 0x056C
-#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP78S_SMBUS 0x0752
-#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP77_IDE 0x0759
-#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP73_SMBUS 0x07D8
-#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP79_SMBUS 0x0AA2
-#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP89_SATA 0x0D85
-
-#define PCI_VENDOR_ID_IMS 0x10e0
-#define PCI_DEVICE_ID_IMS_TT128 0x9128
-#define PCI_DEVICE_ID_IMS_TT3D 0x9135
-
-#define PCI_VENDOR_ID_INTERG 0x10ea
-#define PCI_DEVICE_ID_INTERG_1682 0x1682
-#define PCI_DEVICE_ID_INTERG_2000 0x2000
-#define PCI_DEVICE_ID_INTERG_2010 0x2010
-#define PCI_DEVICE_ID_INTERG_5000 0x5000
-#define PCI_DEVICE_ID_INTERG_5050 0x5050
-
-#define PCI_VENDOR_ID_REALTEK 0x10ec
-#define PCI_DEVICE_ID_REALTEK_8139 0x8139
-
-#define PCI_VENDOR_ID_XILINX 0x10ee
-#define PCI_DEVICE_ID_RME_DIGI96 0x3fc0
-#define PCI_DEVICE_ID_RME_DIGI96_8 0x3fc1
-#define PCI_DEVICE_ID_RME_DIGI96_8_PRO 0x3fc2
-#define PCI_DEVICE_ID_RME_DIGI96_8_PAD_OR_PST 0x3fc3
-#define PCI_DEVICE_ID_XILINX_HAMMERFALL_DSP 0x3fc5
-#define PCI_DEVICE_ID_XILINX_HAMMERFALL_DSP_MADI 0x3fc6
-
-#define PCI_VENDOR_ID_INIT 0x1101
-
-#define PCI_VENDOR_ID_CREATIVE 0x1102 /* duplicate: ECTIVA */
-#define PCI_DEVICE_ID_CREATIVE_EMU10K1 0x0002
-#define PCI_DEVICE_ID_CREATIVE_20K1 0x0005
-#define PCI_DEVICE_ID_CREATIVE_20K2 0x000b
-#define PCI_SUBDEVICE_ID_CREATIVE_SB0760 0x0024
-#define PCI_SUBDEVICE_ID_CREATIVE_SB08801 0x0041
-#define PCI_SUBDEVICE_ID_CREATIVE_SB08802 0x0042
-#define PCI_SUBDEVICE_ID_CREATIVE_SB08803 0x0043
-#define PCI_SUBDEVICE_ID_CREATIVE_SB1270 0x0062
-#define PCI_SUBDEVICE_ID_CREATIVE_HENDRIX 0x6000
-
-#define PCI_VENDOR_ID_ECTIVA 0x1102 /* duplicate: CREATIVE */
-#define PCI_DEVICE_ID_ECTIVA_EV1938 0x8938
-
-#define PCI_VENDOR_ID_TTI 0x1103
-#define PCI_DEVICE_ID_TTI_HPT343 0x0003
-#define PCI_DEVICE_ID_TTI_HPT366 0x0004
-#define PCI_DEVICE_ID_TTI_HPT372 0x0005
-#define PCI_DEVICE_ID_TTI_HPT302 0x0006
-#define PCI_DEVICE_ID_TTI_HPT371 0x0007
-#define PCI_DEVICE_ID_TTI_HPT374 0x0008
-#define PCI_DEVICE_ID_TTI_HPT372N 0x0009 /* apparently a 372N variant? */
-
-#define PCI_VENDOR_ID_VIA 0x1106
-#define PCI_DEVICE_ID_VIA_8763_0 0x0198
-#define PCI_DEVICE_ID_VIA_8380_0 0x0204
-#define PCI_DEVICE_ID_VIA_3238_0 0x0238
-#define PCI_DEVICE_ID_VIA_PT880 0x0258
-#define PCI_DEVICE_ID_VIA_PT880ULTRA 0x0308
-#define PCI_DEVICE_ID_VIA_PX8X0_0 0x0259
-#define PCI_DEVICE_ID_VIA_3269_0 0x0269
-#define PCI_DEVICE_ID_VIA_K8T800PRO_0 0x0282
-#define PCI_DEVICE_ID_VIA_3296_0 0x0296
-#define PCI_DEVICE_ID_VIA_8363_0 0x0305
-#define PCI_DEVICE_ID_VIA_P4M800CE 0x0314
-#define PCI_DEVICE_ID_VIA_P4M890 0x0327
-#define PCI_DEVICE_ID_VIA_VT3324 0x0324
-#define PCI_DEVICE_ID_VIA_VT3336 0x0336
-#define PCI_DEVICE_ID_VIA_VT3351 0x0351
-#define PCI_DEVICE_ID_VIA_VT3364 0x0364
-#define PCI_DEVICE_ID_VIA_8371_0 0x0391
-#define PCI_DEVICE_ID_VIA_6415 0x0415
-#define PCI_DEVICE_ID_VIA_8501_0 0x0501
-#define PCI_DEVICE_ID_VIA_82C561 0x0561
-#define PCI_DEVICE_ID_VIA_82C586_1 0x0571
-#define PCI_DEVICE_ID_VIA_82C576 0x0576
-#define PCI_DEVICE_ID_VIA_82C586_0 0x0586
-#define PCI_DEVICE_ID_VIA_82C596 0x0596
-#define PCI_DEVICE_ID_VIA_82C597_0 0x0597
-#define PCI_DEVICE_ID_VIA_82C598_0 0x0598
-#define PCI_DEVICE_ID_VIA_8601_0 0x0601
-#define PCI_DEVICE_ID_VIA_8605_0 0x0605
-#define PCI_DEVICE_ID_VIA_82C686 0x0686
-#define PCI_DEVICE_ID_VIA_82C691_0 0x0691
-#define PCI_DEVICE_ID_VIA_82C576_1 0x1571
-#define PCI_DEVICE_ID_VIA_82C586_2 0x3038
-#define PCI_DEVICE_ID_VIA_82C586_3 0x3040
-#define PCI_DEVICE_ID_VIA_82C596_3 0x3050
-#define PCI_DEVICE_ID_VIA_82C596B_3 0x3051
-#define PCI_DEVICE_ID_VIA_82C686_4 0x3057
-#define PCI_DEVICE_ID_VIA_82C686_5 0x3058
-#define PCI_DEVICE_ID_VIA_8233_5 0x3059
-#define PCI_DEVICE_ID_VIA_8233_0 0x3074
-#define PCI_DEVICE_ID_VIA_8633_0 0x3091
-#define PCI_DEVICE_ID_VIA_8367_0 0x3099
-#define PCI_DEVICE_ID_VIA_8653_0 0x3101
-#define PCI_DEVICE_ID_VIA_8622 0x3102
-#define PCI_DEVICE_ID_VIA_8235_USB_2 0x3104
-#define PCI_DEVICE_ID_VIA_8233C_0 0x3109
-#define PCI_DEVICE_ID_VIA_8361 0x3112
-#define PCI_DEVICE_ID_VIA_XM266 0x3116
-#define PCI_DEVICE_ID_VIA_612X 0x3119
-#define PCI_DEVICE_ID_VIA_862X_0 0x3123
-#define PCI_DEVICE_ID_VIA_8753_0 0x3128
-#define PCI_DEVICE_ID_VIA_8233A 0x3147
-#define PCI_DEVICE_ID_VIA_8703_51_0 0x3148
-#define PCI_DEVICE_ID_VIA_8237_SATA 0x3149
-#define PCI_DEVICE_ID_VIA_XN266 0x3156
-#define PCI_DEVICE_ID_VIA_6410 0x3164
-#define PCI_DEVICE_ID_VIA_8754C_0 0x3168
-#define PCI_DEVICE_ID_VIA_8235 0x3177
-#define PCI_DEVICE_ID_VIA_8385_0 0x3188
-#define PCI_DEVICE_ID_VIA_8377_0 0x3189
-#define PCI_DEVICE_ID_VIA_8378_0 0x3205
-#define PCI_DEVICE_ID_VIA_8783_0 0x3208
-#define PCI_DEVICE_ID_VIA_8237 0x3227
-#define PCI_DEVICE_ID_VIA_8251 0x3287
-#define PCI_DEVICE_ID_VIA_8261 0x3402
-#define PCI_DEVICE_ID_VIA_8237A 0x3337
-#define PCI_DEVICE_ID_VIA_8237S 0x3372
-#define PCI_DEVICE_ID_VIA_SATA_EIDE 0x5324
-#define PCI_DEVICE_ID_VIA_8231 0x8231
-#define PCI_DEVICE_ID_VIA_8231_4 0x8235
-#define PCI_DEVICE_ID_VIA_8365_1 0x8305
-#define PCI_DEVICE_ID_VIA_CX700 0x8324
-#define PCI_DEVICE_ID_VIA_CX700_IDE 0x0581
-#define PCI_DEVICE_ID_VIA_VX800 0x8353
-#define PCI_DEVICE_ID_VIA_VX855 0x8409
-#define PCI_DEVICE_ID_VIA_8371_1 0x8391
-#define PCI_DEVICE_ID_VIA_82C598_1 0x8598
-#define PCI_DEVICE_ID_VIA_838X_1 0xB188
-#define PCI_DEVICE_ID_VIA_83_87XX_1 0xB198
-#define PCI_DEVICE_ID_VIA_VX855_IDE 0xC409
-#define PCI_DEVICE_ID_VIA_ANON 0xFFFF
-
-#define PCI_VENDOR_ID_SIEMENS 0x110A
-#define PCI_DEVICE_ID_SIEMENS_DSCC4 0x2102
-
-#define PCI_VENDOR_ID_VORTEX 0x1119
-#define PCI_DEVICE_ID_VORTEX_GDT60x0 0x0000
-#define PCI_DEVICE_ID_VORTEX_GDT6000B 0x0001
-#define PCI_DEVICE_ID_VORTEX_GDT6x10 0x0002
-#define PCI_DEVICE_ID_VORTEX_GDT6x20 0x0003
-#define PCI_DEVICE_ID_VORTEX_GDT6530 0x0004
-#define PCI_DEVICE_ID_VORTEX_GDT6550 0x0005
-#define PCI_DEVICE_ID_VORTEX_GDT6x17 0x0006
-#define PCI_DEVICE_ID_VORTEX_GDT6x27 0x0007
-#define PCI_DEVICE_ID_VORTEX_GDT6537 0x0008
-#define PCI_DEVICE_ID_VORTEX_GDT6557 0x0009
-#define PCI_DEVICE_ID_VORTEX_GDT6x15 0x000a
-#define PCI_DEVICE_ID_VORTEX_GDT6x25 0x000b
-#define PCI_DEVICE_ID_VORTEX_GDT6535 0x000c
-#define PCI_DEVICE_ID_VORTEX_GDT6555 0x000d
-#define PCI_DEVICE_ID_VORTEX_GDT6x17RP 0x0100
-#define PCI_DEVICE_ID_VORTEX_GDT6x27RP 0x0101
-#define PCI_DEVICE_ID_VORTEX_GDT6537RP 0x0102
-#define PCI_DEVICE_ID_VORTEX_GDT6557RP 0x0103
-#define PCI_DEVICE_ID_VORTEX_GDT6x11RP 0x0104
-#define PCI_DEVICE_ID_VORTEX_GDT6x21RP 0x0105
-
-#define PCI_VENDOR_ID_EF 0x111a
-#define PCI_DEVICE_ID_EF_ATM_FPGA 0x0000
-#define PCI_DEVICE_ID_EF_ATM_ASIC 0x0002
-#define PCI_DEVICE_ID_EF_ATM_LANAI2 0x0003
-#define PCI_DEVICE_ID_EF_ATM_LANAIHB 0x0005
-
-#define PCI_VENDOR_ID_IDT 0x111d
-#define PCI_DEVICE_ID_IDT_IDT77201 0x0001
-
-#define PCI_VENDOR_ID_FORE 0x1127
-#define PCI_DEVICE_ID_FORE_PCA200E 0x0300
-
-#define PCI_VENDOR_ID_PHILIPS 0x1131
-#define PCI_DEVICE_ID_PHILIPS_SAA7146 0x7146
-#define PCI_DEVICE_ID_PHILIPS_SAA9730 0x9730
-
-#define PCI_VENDOR_ID_EICON 0x1133
-#define PCI_DEVICE_ID_EICON_DIVA20 0xe002
-#define PCI_DEVICE_ID_EICON_DIVA20_U 0xe004
-#define PCI_DEVICE_ID_EICON_DIVA201 0xe005
-#define PCI_DEVICE_ID_EICON_DIVA202 0xe00b
-#define PCI_DEVICE_ID_EICON_MAESTRA 0xe010
-#define PCI_DEVICE_ID_EICON_MAESTRAQ 0xe012
-#define PCI_DEVICE_ID_EICON_MAESTRAQ_U 0xe013
-#define PCI_DEVICE_ID_EICON_MAESTRAP 0xe014
-
-#define PCI_VENDOR_ID_CISCO 0x1137
-
-#define PCI_VENDOR_ID_ZIATECH 0x1138
-#define PCI_DEVICE_ID_ZIATECH_5550_HC 0x5550
-
-
-#define PCI_VENDOR_ID_SYSKONNECT 0x1148
-#define PCI_DEVICE_ID_SYSKONNECT_TR 0x4200
-#define PCI_DEVICE_ID_SYSKONNECT_GE 0x4300
-#define PCI_DEVICE_ID_SYSKONNECT_YU 0x4320
-#define PCI_DEVICE_ID_SYSKONNECT_9DXX 0x4400
-#define PCI_DEVICE_ID_SYSKONNECT_9MXX 0x4500
-
-#define PCI_VENDOR_ID_DIGI 0x114f
-#define PCI_DEVICE_ID_DIGI_DF_M_IOM2_E 0x0070
-#define PCI_DEVICE_ID_DIGI_DF_M_E 0x0071
-#define PCI_DEVICE_ID_DIGI_DF_M_IOM2_A 0x0072
-#define PCI_DEVICE_ID_DIGI_DF_M_A 0x0073
-#define PCI_DEVICE_ID_DIGI_NEO_8 0x00B1
-#define PCI_DEVICE_ID_NEO_2DB9 0x00C8
-#define PCI_DEVICE_ID_NEO_2DB9PRI 0x00C9
-#define PCI_DEVICE_ID_NEO_2RJ45 0x00CA
-#define PCI_DEVICE_ID_NEO_2RJ45PRI 0x00CB
-#define PCIE_DEVICE_ID_NEO_4_IBM 0x00F4
-
-#define PCI_VENDOR_ID_XIRCOM 0x115d
-#define PCI_DEVICE_ID_XIRCOM_RBM56G 0x0101
-#define PCI_DEVICE_ID_XIRCOM_X3201_MDM 0x0103
-
-#define PCI_VENDOR_ID_SERVERWORKS 0x1166
-#define PCI_DEVICE_ID_SERVERWORKS_HE 0x0008
-#define PCI_DEVICE_ID_SERVERWORKS_LE 0x0009
-#define PCI_DEVICE_ID_SERVERWORKS_GCNB_LE 0x0017
-#define PCI_DEVICE_ID_SERVERWORKS_HT1000_PXB 0x0036
-#define PCI_DEVICE_ID_SERVERWORKS_EPB 0x0103
-#define PCI_DEVICE_ID_SERVERWORKS_HT2000_PCIE 0x0132
-#define PCI_DEVICE_ID_SERVERWORKS_OSB4 0x0200
-#define PCI_DEVICE_ID_SERVERWORKS_CSB5 0x0201
-#define PCI_DEVICE_ID_SERVERWORKS_CSB6 0x0203
-#define PCI_DEVICE_ID_SERVERWORKS_HT1000SB 0x0205
-#define PCI_DEVICE_ID_SERVERWORKS_OSB4IDE 0x0211
-#define PCI_DEVICE_ID_SERVERWORKS_CSB5IDE 0x0212
-#define PCI_DEVICE_ID_SERVERWORKS_CSB6IDE 0x0213
-#define PCI_DEVICE_ID_SERVERWORKS_HT1000IDE 0x0214
-#define PCI_DEVICE_ID_SERVERWORKS_CSB6IDE2 0x0217
-#define PCI_DEVICE_ID_SERVERWORKS_CSB6LPC 0x0227
-#define PCI_DEVICE_ID_SERVERWORKS_HT1100LD 0x0408
-
-#define PCI_VENDOR_ID_SBE 0x1176
-#define PCI_DEVICE_ID_SBE_WANXL100 0x0301
-#define PCI_DEVICE_ID_SBE_WANXL200 0x0302
-#define PCI_DEVICE_ID_SBE_WANXL400 0x0104
-#define PCI_SUBDEVICE_ID_SBE_T3E3 0x0009
-#define PCI_SUBDEVICE_ID_SBE_2T3E3_P0 0x0901
-#define PCI_SUBDEVICE_ID_SBE_2T3E3_P1 0x0902
-
-#define PCI_VENDOR_ID_TOSHIBA 0x1179
-#define PCI_DEVICE_ID_TOSHIBA_PICCOLO_1 0x0101
-#define PCI_DEVICE_ID_TOSHIBA_PICCOLO_2 0x0102
-#define PCI_DEVICE_ID_TOSHIBA_PICCOLO_3 0x0103
-#define PCI_DEVICE_ID_TOSHIBA_PICCOLO_5 0x0105
-#define PCI_DEVICE_ID_TOSHIBA_TOPIC95 0x060a
-#define PCI_DEVICE_ID_TOSHIBA_TOPIC97 0x060f
-#define PCI_DEVICE_ID_TOSHIBA_TOPIC100 0x0617
-
-#define PCI_VENDOR_ID_TOSHIBA_2 0x102f
-#define PCI_DEVICE_ID_TOSHIBA_TC35815CF 0x0030
-#define PCI_DEVICE_ID_TOSHIBA_TC35815_NWU 0x0031
-#define PCI_DEVICE_ID_TOSHIBA_TC35815_TX4939 0x0032
-#define PCI_DEVICE_ID_TOSHIBA_TC86C001_IDE 0x0105
-#define PCI_DEVICE_ID_TOSHIBA_TC86C001_MISC 0x0108
-#define PCI_DEVICE_ID_TOSHIBA_SPIDER_NET 0x01b3
-
-#define PCI_VENDOR_ID_ATTO 0x117c
-
-#define PCI_VENDOR_ID_RICOH 0x1180
-#define PCI_DEVICE_ID_RICOH_RL5C465 0x0465
-#define PCI_DEVICE_ID_RICOH_RL5C466 0x0466
-#define PCI_DEVICE_ID_RICOH_RL5C475 0x0475
-#define PCI_DEVICE_ID_RICOH_RL5C476 0x0476
-#define PCI_DEVICE_ID_RICOH_RL5C478 0x0478
-#define PCI_DEVICE_ID_RICOH_R5C822 0x0822
-#define PCI_DEVICE_ID_RICOH_R5CE823 0xe823
-#define PCI_DEVICE_ID_RICOH_R5C832 0x0832
-#define PCI_DEVICE_ID_RICOH_R5C843 0x0843
-
-#define PCI_VENDOR_ID_DLINK 0x1186
-#define PCI_DEVICE_ID_DLINK_DGE510T 0x4c00
-
-#define PCI_VENDOR_ID_ARTOP 0x1191
-#define PCI_DEVICE_ID_ARTOP_ATP850UF 0x0005
-#define PCI_DEVICE_ID_ARTOP_ATP860 0x0006
-#define PCI_DEVICE_ID_ARTOP_ATP860R 0x0007
-#define PCI_DEVICE_ID_ARTOP_ATP865 0x0008
-#define PCI_DEVICE_ID_ARTOP_ATP865R 0x0009
-#define PCI_DEVICE_ID_ARTOP_ATP867A 0x000A
-#define PCI_DEVICE_ID_ARTOP_ATP867B 0x000B
-#define PCI_DEVICE_ID_ARTOP_AEC7610 0x8002
-#define PCI_DEVICE_ID_ARTOP_AEC7612UW 0x8010
-#define PCI_DEVICE_ID_ARTOP_AEC7612U 0x8020
-#define PCI_DEVICE_ID_ARTOP_AEC7612S 0x8030
-#define PCI_DEVICE_ID_ARTOP_AEC7612D 0x8040
-#define PCI_DEVICE_ID_ARTOP_AEC7612SUW 0x8050
-#define PCI_DEVICE_ID_ARTOP_8060 0x8060
-
-#define PCI_VENDOR_ID_ZEITNET 0x1193
-#define PCI_DEVICE_ID_ZEITNET_1221 0x0001
-#define PCI_DEVICE_ID_ZEITNET_1225 0x0002
-
-#define PCI_VENDOR_ID_FUJITSU_ME 0x119e
-#define PCI_DEVICE_ID_FUJITSU_FS155 0x0001
-#define PCI_DEVICE_ID_FUJITSU_FS50 0x0003
-
-#define PCI_SUBVENDOR_ID_KEYSPAN 0x11a9
-#define PCI_SUBDEVICE_ID_KEYSPAN_SX2 0x5334
-
-#define PCI_VENDOR_ID_MARVELL 0x11ab
-#define PCI_DEVICE_ID_MARVELL_GT64111 0x4146
-#define PCI_DEVICE_ID_MARVELL_GT64260 0x6430
-#define PCI_DEVICE_ID_MARVELL_MV64360 0x6460
-#define PCI_DEVICE_ID_MARVELL_MV64460 0x6480
-#define PCI_DEVICE_ID_MARVELL_88ALP01_NAND 0x4100
-#define PCI_DEVICE_ID_MARVELL_88ALP01_SD 0x4101
-#define PCI_DEVICE_ID_MARVELL_88ALP01_CCIC 0x4102
-
-#define PCI_VENDOR_ID_V3 0x11b0
-#define PCI_DEVICE_ID_V3_V960 0x0001
-#define PCI_DEVICE_ID_V3_V351 0x0002
-
-#define PCI_VENDOR_ID_ATT 0x11c1
-#define PCI_DEVICE_ID_ATT_VENUS_MODEM 0x480
-
-#define PCI_VENDOR_ID_SPECIALIX 0x11cb
-#define PCI_DEVICE_ID_SPECIALIX_IO8 0x2000
-#define PCI_DEVICE_ID_SPECIALIX_RIO 0x8000
-#define PCI_SUBDEVICE_ID_SPECIALIX_SPEED4 0xa004
-
-#define PCI_VENDOR_ID_ANALOG_DEVICES 0x11d4
-#define PCI_DEVICE_ID_AD1889JS 0x1889
-
-#define PCI_DEVICE_ID_SEGA_BBA 0x1234
-
-#define PCI_VENDOR_ID_ZORAN 0x11de
-#define PCI_DEVICE_ID_ZORAN_36057 0x6057
-#define PCI_DEVICE_ID_ZORAN_36120 0x6120
-
-#define PCI_VENDOR_ID_COMPEX 0x11f6
-#define PCI_DEVICE_ID_COMPEX_ENET100VG4 0x0112
-
-#define PCI_VENDOR_ID_PMC_Sierra 0x11f8
-
-#define PCI_VENDOR_ID_RP 0x11fe
-#define PCI_DEVICE_ID_RP32INTF 0x0001
-#define PCI_DEVICE_ID_RP8INTF 0x0002
-#define PCI_DEVICE_ID_RP16INTF 0x0003
-#define PCI_DEVICE_ID_RP4QUAD 0x0004
-#define PCI_DEVICE_ID_RP8OCTA 0x0005
-#define PCI_DEVICE_ID_RP8J 0x0006
-#define PCI_DEVICE_ID_RP4J 0x0007
-#define PCI_DEVICE_ID_RP8SNI 0x0008
-#define PCI_DEVICE_ID_RP16SNI 0x0009
-#define PCI_DEVICE_ID_RPP4 0x000A
-#define PCI_DEVICE_ID_RPP8 0x000B
-#define PCI_DEVICE_ID_RP4M 0x000D
-#define PCI_DEVICE_ID_RP2_232 0x000E
-#define PCI_DEVICE_ID_RP2_422 0x000F
-#define PCI_DEVICE_ID_URP32INTF 0x0801
-#define PCI_DEVICE_ID_URP8INTF 0x0802
-#define PCI_DEVICE_ID_URP16INTF 0x0803
-#define PCI_DEVICE_ID_URP8OCTA 0x0805
-#define PCI_DEVICE_ID_UPCI_RM3_8PORT 0x080C
-#define PCI_DEVICE_ID_UPCI_RM3_4PORT 0x080D
-#define PCI_DEVICE_ID_CRP16INTF 0x0903
-
-#define PCI_VENDOR_ID_CYCLADES 0x120e
-#define PCI_DEVICE_ID_CYCLOM_Y_Lo 0x0100
-#define PCI_DEVICE_ID_CYCLOM_Y_Hi 0x0101
-#define PCI_DEVICE_ID_CYCLOM_4Y_Lo 0x0102
-#define PCI_DEVICE_ID_CYCLOM_4Y_Hi 0x0103
-#define PCI_DEVICE_ID_CYCLOM_8Y_Lo 0x0104
-#define PCI_DEVICE_ID_CYCLOM_8Y_Hi 0x0105
-#define PCI_DEVICE_ID_CYCLOM_Z_Lo 0x0200
-#define PCI_DEVICE_ID_CYCLOM_Z_Hi 0x0201
-#define PCI_DEVICE_ID_PC300_RX_2 0x0300
-#define PCI_DEVICE_ID_PC300_RX_1 0x0301
-#define PCI_DEVICE_ID_PC300_TE_2 0x0310
-#define PCI_DEVICE_ID_PC300_TE_1 0x0311
-#define PCI_DEVICE_ID_PC300_TE_M_2 0x0320
-#define PCI_DEVICE_ID_PC300_TE_M_1 0x0321
-
-#define PCI_VENDOR_ID_ESSENTIAL 0x120f
-#define PCI_DEVICE_ID_ESSENTIAL_ROADRUNNER 0x0001
-
-#define PCI_VENDOR_ID_O2 0x1217
-#define PCI_DEVICE_ID_O2_6729 0x6729
-#define PCI_DEVICE_ID_O2_6730 0x673a
-#define PCI_DEVICE_ID_O2_6832 0x6832
-#define PCI_DEVICE_ID_O2_6836 0x6836
-#define PCI_DEVICE_ID_O2_6812 0x6872
-#define PCI_DEVICE_ID_O2_6933 0x6933
-#define PCI_DEVICE_ID_O2_8120 0x8120
-#define PCI_DEVICE_ID_O2_8220 0x8220
-#define PCI_DEVICE_ID_O2_8221 0x8221
-#define PCI_DEVICE_ID_O2_8320 0x8320
-#define PCI_DEVICE_ID_O2_8321 0x8321
-
-#define PCI_VENDOR_ID_3DFX 0x121a
-#define PCI_DEVICE_ID_3DFX_VOODOO 0x0001
-#define PCI_DEVICE_ID_3DFX_VOODOO2 0x0002
-#define PCI_DEVICE_ID_3DFX_BANSHEE 0x0003
-#define PCI_DEVICE_ID_3DFX_VOODOO3 0x0005
-#define PCI_DEVICE_ID_3DFX_VOODOO5 0x0009
-
-#define PCI_VENDOR_ID_AVM 0x1244
-#define PCI_DEVICE_ID_AVM_B1 0x0700
-#define PCI_DEVICE_ID_AVM_C4 0x0800
-#define PCI_DEVICE_ID_AVM_A1 0x0a00
-#define PCI_DEVICE_ID_AVM_A1_V2 0x0e00
-#define PCI_DEVICE_ID_AVM_C2 0x1100
-#define PCI_DEVICE_ID_AVM_T1 0x1200
-
-#define PCI_VENDOR_ID_STALLION 0x124d
-
-/* Allied Telesyn */
-#define PCI_VENDOR_ID_AT 0x1259
-#define PCI_SUBDEVICE_ID_AT_2700FX 0x2701
-#define PCI_SUBDEVICE_ID_AT_2701FX 0x2703
-
-#define PCI_VENDOR_ID_ESS 0x125d
-#define PCI_DEVICE_ID_ESS_ESS1968 0x1968
-#define PCI_DEVICE_ID_ESS_ESS1978 0x1978
-#define PCI_DEVICE_ID_ESS_ALLEGRO_1 0x1988
-#define PCI_DEVICE_ID_ESS_ALLEGRO 0x1989
-#define PCI_DEVICE_ID_ESS_CANYON3D_2LE 0x1990
-#define PCI_DEVICE_ID_ESS_CANYON3D_2 0x1992
-#define PCI_DEVICE_ID_ESS_MAESTRO3 0x1998
-#define PCI_DEVICE_ID_ESS_MAESTRO3_1 0x1999
-#define PCI_DEVICE_ID_ESS_MAESTRO3_HW 0x199a
-#define PCI_DEVICE_ID_ESS_MAESTRO3_2 0x199b
-
-#define PCI_VENDOR_ID_SATSAGEM 0x1267
-#define PCI_DEVICE_ID_SATSAGEM_NICCY 0x1016
-
-#define PCI_VENDOR_ID_ENSONIQ 0x1274
-#define PCI_DEVICE_ID_ENSONIQ_CT5880 0x5880
-#define PCI_DEVICE_ID_ENSONIQ_ES1370 0x5000
-#define PCI_DEVICE_ID_ENSONIQ_ES1371 0x1371
-
-#define PCI_VENDOR_ID_TRANSMETA 0x1279
-#define PCI_DEVICE_ID_EFFICEON 0x0060
-
-#define PCI_VENDOR_ID_ROCKWELL 0x127A
-
-#define PCI_VENDOR_ID_ITE 0x1283
-#define PCI_DEVICE_ID_ITE_8172 0x8172
-#define PCI_DEVICE_ID_ITE_8211 0x8211
-#define PCI_DEVICE_ID_ITE_8212 0x8212
-#define PCI_DEVICE_ID_ITE_8213 0x8213
-#define PCI_DEVICE_ID_ITE_8152 0x8152
-#define PCI_DEVICE_ID_ITE_8872 0x8872
-#define PCI_DEVICE_ID_ITE_IT8330G_0 0xe886
-
-/* formerly Platform Tech */
-#define PCI_DEVICE_ID_ESS_ESS0100 0x0100
-
-#define PCI_VENDOR_ID_ALTEON 0x12ae
-
-#define PCI_SUBVENDOR_ID_CONNECT_TECH 0x12c4
-#define PCI_SUBDEVICE_ID_CONNECT_TECH_BH8_232 0x0001
-#define PCI_SUBDEVICE_ID_CONNECT_TECH_BH4_232 0x0002
-#define PCI_SUBDEVICE_ID_CONNECT_TECH_BH2_232 0x0003
-#define PCI_SUBDEVICE_ID_CONNECT_TECH_BH8_485 0x0004
-#define PCI_SUBDEVICE_ID_CONNECT_TECH_BH8_485_4_4 0x0005
-#define PCI_SUBDEVICE_ID_CONNECT_TECH_BH4_485 0x0006
-#define PCI_SUBDEVICE_ID_CONNECT_TECH_BH4_485_2_2 0x0007
-#define PCI_SUBDEVICE_ID_CONNECT_TECH_BH2_485 0x0008
-#define PCI_SUBDEVICE_ID_CONNECT_TECH_BH8_485_2_6 0x0009
-#define PCI_SUBDEVICE_ID_CONNECT_TECH_BH081101V1 0x000A
-#define PCI_SUBDEVICE_ID_CONNECT_TECH_BH041101V1 0x000B
-#define PCI_SUBDEVICE_ID_CONNECT_TECH_BH2_20MHZ 0x000C
-#define PCI_SUBDEVICE_ID_CONNECT_TECH_BH2_PTM 0x000D
-#define PCI_SUBDEVICE_ID_CONNECT_TECH_NT960PCI 0x0100
-#define PCI_SUBDEVICE_ID_CONNECT_TECH_TITAN_2 0x0201
-#define PCI_SUBDEVICE_ID_CONNECT_TECH_TITAN_4 0x0202
-#define PCI_SUBDEVICE_ID_CONNECT_TECH_PCI_UART_2_232 0x0300
-#define PCI_SUBDEVICE_ID_CONNECT_TECH_PCI_UART_4_232 0x0301
-#define PCI_SUBDEVICE_ID_CONNECT_TECH_PCI_UART_8_232 0x0302
-#define PCI_SUBDEVICE_ID_CONNECT_TECH_PCI_UART_1_1 0x0310
-#define PCI_SUBDEVICE_ID_CONNECT_TECH_PCI_UART_2_2 0x0311
-#define PCI_SUBDEVICE_ID_CONNECT_TECH_PCI_UART_4_4 0x0312
-#define PCI_SUBDEVICE_ID_CONNECT_TECH_PCI_UART_2 0x0320
-#define PCI_SUBDEVICE_ID_CONNECT_TECH_PCI_UART_4 0x0321
-#define PCI_SUBDEVICE_ID_CONNECT_TECH_PCI_UART_8 0x0322
-#define PCI_SUBDEVICE_ID_CONNECT_TECH_PCI_UART_2_485 0x0330
-#define PCI_SUBDEVICE_ID_CONNECT_TECH_PCI_UART_4_485 0x0331
-#define PCI_SUBDEVICE_ID_CONNECT_TECH_PCI_UART_8_485 0x0332
-
-#define PCI_VENDOR_ID_NVIDIA_SGS 0x12d2
-#define PCI_DEVICE_ID_NVIDIA_SGS_RIVA128 0x0018
-
-#define PCI_SUBVENDOR_ID_CHASE_PCIFAST 0x12E0
-#define PCI_SUBDEVICE_ID_CHASE_PCIFAST4 0x0031
-#define PCI_SUBDEVICE_ID_CHASE_PCIFAST8 0x0021
-#define PCI_SUBDEVICE_ID_CHASE_PCIFAST16 0x0011
-#define PCI_SUBDEVICE_ID_CHASE_PCIFAST16FMC 0x0041
-#define PCI_SUBVENDOR_ID_CHASE_PCIRAS 0x124D
-#define PCI_SUBDEVICE_ID_CHASE_PCIRAS4 0xF001
-#define PCI_SUBDEVICE_ID_CHASE_PCIRAS8 0xF010
-
-#define PCI_VENDOR_ID_AUREAL 0x12eb
-#define PCI_DEVICE_ID_AUREAL_VORTEX_1 0x0001
-#define PCI_DEVICE_ID_AUREAL_VORTEX_2 0x0002
-#define PCI_DEVICE_ID_AUREAL_ADVANTAGE 0x0003
-
-#define PCI_VENDOR_ID_ELECTRONICDESIGNGMBH 0x12f8
-#define PCI_DEVICE_ID_LML_33R10 0x8a02
-
-#define PCI_VENDOR_ID_ESDGMBH 0x12fe
-#define PCI_DEVICE_ID_ESDGMBH_CPCIASIO4 0x0111
-
-#define PCI_VENDOR_ID_SIIG 0x131f
-#define PCI_SUBVENDOR_ID_SIIG 0x131f
-#define PCI_DEVICE_ID_SIIG_1S_10x_550 0x1000
-#define PCI_DEVICE_ID_SIIG_1S_10x_650 0x1001
-#define PCI_DEVICE_ID_SIIG_1S_10x_850 0x1002
-#define PCI_DEVICE_ID_SIIG_1S1P_10x_550 0x1010
-#define PCI_DEVICE_ID_SIIG_1S1P_10x_650 0x1011
-#define PCI_DEVICE_ID_SIIG_1S1P_10x_850 0x1012
-#define PCI_DEVICE_ID_SIIG_1P_10x 0x1020
-#define PCI_DEVICE_ID_SIIG_2P_10x 0x1021
-#define PCI_DEVICE_ID_SIIG_2S_10x_550 0x1030
-#define PCI_DEVICE_ID_SIIG_2S_10x_650 0x1031
-#define PCI_DEVICE_ID_SIIG_2S_10x_850 0x1032
-#define PCI_DEVICE_ID_SIIG_2S1P_10x_550 0x1034
-#define PCI_DEVICE_ID_SIIG_2S1P_10x_650 0x1035
-#define PCI_DEVICE_ID_SIIG_2S1P_10x_850 0x1036
-#define PCI_DEVICE_ID_SIIG_4S_10x_550 0x1050
-#define PCI_DEVICE_ID_SIIG_4S_10x_650 0x1051
-#define PCI_DEVICE_ID_SIIG_4S_10x_850 0x1052
-#define PCI_DEVICE_ID_SIIG_1S_20x_550 0x2000
-#define PCI_DEVICE_ID_SIIG_1S_20x_650 0x2001
-#define PCI_DEVICE_ID_SIIG_1S_20x_850 0x2002
-#define PCI_DEVICE_ID_SIIG_1P_20x 0x2020
-#define PCI_DEVICE_ID_SIIG_2P_20x 0x2021
-#define PCI_DEVICE_ID_SIIG_2S_20x_550 0x2030
-#define PCI_DEVICE_ID_SIIG_2S_20x_650 0x2031
-#define PCI_DEVICE_ID_SIIG_2S_20x_850 0x2032
-#define PCI_DEVICE_ID_SIIG_2P1S_20x_550 0x2040
-#define PCI_DEVICE_ID_SIIG_2P1S_20x_650 0x2041
-#define PCI_DEVICE_ID_SIIG_2P1S_20x_850 0x2042
-#define PCI_DEVICE_ID_SIIG_1S1P_20x_550 0x2010
-#define PCI_DEVICE_ID_SIIG_1S1P_20x_650 0x2011
-#define PCI_DEVICE_ID_SIIG_1S1P_20x_850 0x2012
-#define PCI_DEVICE_ID_SIIG_4S_20x_550 0x2050
-#define PCI_DEVICE_ID_SIIG_4S_20x_650 0x2051
-#define PCI_DEVICE_ID_SIIG_4S_20x_850 0x2052
-#define PCI_DEVICE_ID_SIIG_2S1P_20x_550 0x2060
-#define PCI_DEVICE_ID_SIIG_2S1P_20x_650 0x2061
-#define PCI_DEVICE_ID_SIIG_2S1P_20x_850 0x2062
-#define PCI_DEVICE_ID_SIIG_8S_20x_550 0x2080
-#define PCI_DEVICE_ID_SIIG_8S_20x_650 0x2081
-#define PCI_DEVICE_ID_SIIG_8S_20x_850 0x2082
-#define PCI_SUBDEVICE_ID_SIIG_QUARTET_SERIAL 0x2050
-#define PCI_SUBDEVICE_ID_SIIG_DUAL_SERIAL 0x2530
-
-#define PCI_VENDOR_ID_RADISYS 0x1331
-
-#define PCI_VENDOR_ID_MICRO_MEMORY 0x1332
-#define PCI_DEVICE_ID_MICRO_MEMORY_5415CN 0x5415
-#define PCI_DEVICE_ID_MICRO_MEMORY_5425CN 0x5425
-#define PCI_DEVICE_ID_MICRO_MEMORY_6155 0x6155
-
-#define PCI_VENDOR_ID_DOMEX 0x134a
-#define PCI_DEVICE_ID_DOMEX_DMX3191D 0x0001
-
-#define PCI_VENDOR_ID_INTASHIELD 0x135a
-#define PCI_DEVICE_ID_INTASHIELD_IS200 0x0d80
-#define PCI_DEVICE_ID_INTASHIELD_IS400 0x0dc0
-
-#define PCI_VENDOR_ID_QUATECH 0x135C
-#define PCI_DEVICE_ID_QUATECH_QSC100 0x0010
-#define PCI_DEVICE_ID_QUATECH_DSC100 0x0020
-#define PCI_DEVICE_ID_QUATECH_ESC100D 0x0050
-#define PCI_DEVICE_ID_QUATECH_ESC100M 0x0060
-#define PCI_DEVICE_ID_QUATECH_SPPXP_100 0x0278
-
-#define PCI_VENDOR_ID_SEALEVEL 0x135e
-#define PCI_DEVICE_ID_SEALEVEL_U530 0x7101
-#define PCI_DEVICE_ID_SEALEVEL_UCOMM2 0x7201
-#define PCI_DEVICE_ID_SEALEVEL_UCOMM422 0x7402
-#define PCI_DEVICE_ID_SEALEVEL_UCOMM232 0x7202
-#define PCI_DEVICE_ID_SEALEVEL_COMM4 0x7401
-#define PCI_DEVICE_ID_SEALEVEL_COMM8 0x7801
-#define PCI_DEVICE_ID_SEALEVEL_7803 0x7803
-#define PCI_DEVICE_ID_SEALEVEL_UCOMM8 0x7804
-
-#define PCI_VENDOR_ID_HYPERCOPE 0x1365
-#define PCI_DEVICE_ID_HYPERCOPE_PLX 0x9050
-#define PCI_SUBDEVICE_ID_HYPERCOPE_OLD_ERGO 0x0104
-#define PCI_SUBDEVICE_ID_HYPERCOPE_ERGO 0x0106
-#define PCI_SUBDEVICE_ID_HYPERCOPE_METRO 0x0107
-#define PCI_SUBDEVICE_ID_HYPERCOPE_CHAMP2 0x0108
-
-#define PCI_VENDOR_ID_DIGIGRAM 0x1369
-#define PCI_SUBDEVICE_ID_DIGIGRAM_LX6464ES_SERIAL_SUBSYSTEM 0xc001
-#define PCI_SUBDEVICE_ID_DIGIGRAM_LX6464ES_CAE_SERIAL_SUBSYSTEM 0xc002
-
-#define PCI_VENDOR_ID_KAWASAKI 0x136b
-#define PCI_DEVICE_ID_MCHIP_KL5A72002 0xff01
-
-#define PCI_VENDOR_ID_CNET 0x1371
-#define PCI_DEVICE_ID_CNET_GIGACARD 0x434e
-
-#define PCI_VENDOR_ID_LMC 0x1376
-#define PCI_DEVICE_ID_LMC_HSSI 0x0003
-#define PCI_DEVICE_ID_LMC_DS3 0x0004
-#define PCI_DEVICE_ID_LMC_SSI 0x0005
-#define PCI_DEVICE_ID_LMC_T1 0x0006
-
-#define PCI_VENDOR_ID_NETGEAR 0x1385
-#define PCI_DEVICE_ID_NETGEAR_GA620 0x620a
-
-#define PCI_VENDOR_ID_APPLICOM 0x1389
-#define PCI_DEVICE_ID_APPLICOM_PCIGENERIC 0x0001
-#define PCI_DEVICE_ID_APPLICOM_PCI2000IBS_CAN 0x0002
-#define PCI_DEVICE_ID_APPLICOM_PCI2000PFB 0x0003
-
-#define PCI_VENDOR_ID_MOXA 0x1393
-#define PCI_DEVICE_ID_MOXA_RC7000 0x0001
-#define PCI_DEVICE_ID_MOXA_CP102 0x1020
-#define PCI_DEVICE_ID_MOXA_CP102UL 0x1021
-#define PCI_DEVICE_ID_MOXA_CP102U 0x1022
-#define PCI_DEVICE_ID_MOXA_C104 0x1040
-#define PCI_DEVICE_ID_MOXA_CP104U 0x1041
-#define PCI_DEVICE_ID_MOXA_CP104JU 0x1042
-#define PCI_DEVICE_ID_MOXA_CP104EL 0x1043
-#define PCI_DEVICE_ID_MOXA_CT114 0x1140
-#define PCI_DEVICE_ID_MOXA_CP114 0x1141
-#define PCI_DEVICE_ID_MOXA_CP118U 0x1180
-#define PCI_DEVICE_ID_MOXA_CP118EL 0x1181
-#define PCI_DEVICE_ID_MOXA_CP132 0x1320
-#define PCI_DEVICE_ID_MOXA_CP132U 0x1321
-#define PCI_DEVICE_ID_MOXA_CP134U 0x1340
-#define PCI_DEVICE_ID_MOXA_C168 0x1680
-#define PCI_DEVICE_ID_MOXA_CP168U 0x1681
-#define PCI_DEVICE_ID_MOXA_CP168EL 0x1682
-#define PCI_DEVICE_ID_MOXA_CP204J 0x2040
-#define PCI_DEVICE_ID_MOXA_C218 0x2180
-#define PCI_DEVICE_ID_MOXA_C320 0x3200
-
-#define PCI_VENDOR_ID_CCD 0x1397
-#define PCI_DEVICE_ID_CCD_HFC4S 0x08B4
-#define PCI_SUBDEVICE_ID_CCD_PMX2S 0x1234
-#define PCI_DEVICE_ID_CCD_HFC8S 0x16B8
-#define PCI_DEVICE_ID_CCD_2BD0 0x2bd0
-#define PCI_DEVICE_ID_CCD_HFCE1 0x30B1
-#define PCI_SUBDEVICE_ID_CCD_SPD4S 0x3136
-#define PCI_SUBDEVICE_ID_CCD_SPDE1 0x3137
-#define PCI_DEVICE_ID_CCD_B000 0xb000
-#define PCI_DEVICE_ID_CCD_B006 0xb006
-#define PCI_DEVICE_ID_CCD_B007 0xb007
-#define PCI_DEVICE_ID_CCD_B008 0xb008
-#define PCI_DEVICE_ID_CCD_B009 0xb009
-#define PCI_DEVICE_ID_CCD_B00A 0xb00a
-#define PCI_DEVICE_ID_CCD_B00B 0xb00b
-#define PCI_DEVICE_ID_CCD_B00C 0xb00c
-#define PCI_DEVICE_ID_CCD_B100 0xb100
-#define PCI_SUBDEVICE_ID_CCD_IOB4ST 0xB520
-#define PCI_SUBDEVICE_ID_CCD_IOB8STR 0xB521
-#define PCI_SUBDEVICE_ID_CCD_IOB8ST 0xB522
-#define PCI_SUBDEVICE_ID_CCD_IOB1E1 0xB523
-#define PCI_SUBDEVICE_ID_CCD_SWYX4S 0xB540
-#define PCI_SUBDEVICE_ID_CCD_JH4S20 0xB550
-#define PCI_SUBDEVICE_ID_CCD_IOB8ST_1 0xB552
-#define PCI_SUBDEVICE_ID_CCD_JHSE1 0xB553
-#define PCI_SUBDEVICE_ID_CCD_JH8S 0xB55B
-#define PCI_SUBDEVICE_ID_CCD_BN4S 0xB560
-#define PCI_SUBDEVICE_ID_CCD_BN8S 0xB562
-#define PCI_SUBDEVICE_ID_CCD_BNE1 0xB563
-#define PCI_SUBDEVICE_ID_CCD_BNE1D 0xB564
-#define PCI_SUBDEVICE_ID_CCD_BNE1DP 0xB565
-#define PCI_SUBDEVICE_ID_CCD_BN2S 0xB566
-#define PCI_SUBDEVICE_ID_CCD_BN1SM 0xB567
-#define PCI_SUBDEVICE_ID_CCD_BN4SM 0xB568
-#define PCI_SUBDEVICE_ID_CCD_BN2SM 0xB569
-#define PCI_SUBDEVICE_ID_CCD_BNE1M 0xB56A
-#define PCI_SUBDEVICE_ID_CCD_BN8SP 0xB56B
-#define PCI_SUBDEVICE_ID_CCD_HFC4S 0xB620
-#define PCI_SUBDEVICE_ID_CCD_HFC8S 0xB622
-#define PCI_DEVICE_ID_CCD_B700 0xb700
-#define PCI_DEVICE_ID_CCD_B701 0xb701
-#define PCI_SUBDEVICE_ID_CCD_HFCE1 0xC523
-#define PCI_SUBDEVICE_ID_CCD_OV2S 0xE884
-#define PCI_SUBDEVICE_ID_CCD_OV4S 0xE888
-#define PCI_SUBDEVICE_ID_CCD_OV8S 0xE998
-
-#define PCI_VENDOR_ID_EXAR 0x13a8
-#define PCI_DEVICE_ID_EXAR_XR17C152 0x0152
-#define PCI_DEVICE_ID_EXAR_XR17C154 0x0154
-#define PCI_DEVICE_ID_EXAR_XR17C158 0x0158
-
-#define PCI_VENDOR_ID_MICROGATE 0x13c0
-#define PCI_DEVICE_ID_MICROGATE_USC 0x0010
-#define PCI_DEVICE_ID_MICROGATE_SCA 0x0030
-
-#define PCI_VENDOR_ID_3WARE 0x13C1
-#define PCI_DEVICE_ID_3WARE_1000 0x1000
-#define PCI_DEVICE_ID_3WARE_7000 0x1001
-#define PCI_DEVICE_ID_3WARE_9000 0x1002
-
-#define PCI_VENDOR_ID_IOMEGA 0x13ca
-#define PCI_DEVICE_ID_IOMEGA_BUZ 0x4231
-
-#define PCI_VENDOR_ID_ABOCOM 0x13D1
-#define PCI_DEVICE_ID_ABOCOM_2BD1 0x2BD1
-
-#define PCI_VENDOR_ID_SUNDANCE 0x13f0
-
-#define PCI_VENDOR_ID_CMEDIA 0x13f6
-#define PCI_DEVICE_ID_CMEDIA_CM8338A 0x0100
-#define PCI_DEVICE_ID_CMEDIA_CM8338B 0x0101
-#define PCI_DEVICE_ID_CMEDIA_CM8738 0x0111
-#define PCI_DEVICE_ID_CMEDIA_CM8738B 0x0112
-
-#define PCI_VENDOR_ID_LAVA 0x1407
-#define PCI_DEVICE_ID_LAVA_DSERIAL 0x0100 /* 2x 16550 */
-#define PCI_DEVICE_ID_LAVA_QUATRO_A 0x0101 /* 2x 16550, half of 4 port */
-#define PCI_DEVICE_ID_LAVA_QUATRO_B 0x0102 /* 2x 16550, half of 4 port */
-#define PCI_DEVICE_ID_LAVA_QUATTRO_A 0x0120 /* 2x 16550A, half of 4 port */
-#define PCI_DEVICE_ID_LAVA_QUATTRO_B 0x0121 /* 2x 16550A, half of 4 port */
-#define PCI_DEVICE_ID_LAVA_OCTO_A 0x0180 /* 4x 16550A, half of 8 port */
-#define PCI_DEVICE_ID_LAVA_OCTO_B 0x0181 /* 4x 16550A, half of 8 port */
-#define PCI_DEVICE_ID_LAVA_PORT_PLUS 0x0200 /* 2x 16650 */
-#define PCI_DEVICE_ID_LAVA_QUAD_A 0x0201 /* 2x 16650, half of 4 port */
-#define PCI_DEVICE_ID_LAVA_QUAD_B 0x0202 /* 2x 16650, half of 4 port */
-#define PCI_DEVICE_ID_LAVA_SSERIAL 0x0500 /* 1x 16550 */
-#define PCI_DEVICE_ID_LAVA_PORT_650 0x0600 /* 1x 16650 */
-#define PCI_DEVICE_ID_LAVA_PARALLEL 0x8000
-#define PCI_DEVICE_ID_LAVA_DUAL_PAR_A 0x8002 /* The Lava Dual Parallel is */
-#define PCI_DEVICE_ID_LAVA_DUAL_PAR_B 0x8003 /* two PCI devices on a card */
-#define PCI_DEVICE_ID_LAVA_BOCA_IOPPAR 0x8800
-
-#define PCI_VENDOR_ID_TIMEDIA 0x1409
-#define PCI_DEVICE_ID_TIMEDIA_1889 0x7168
-
-#define PCI_VENDOR_ID_ICE 0x1412
-#define PCI_DEVICE_ID_ICE_1712 0x1712
-#define PCI_DEVICE_ID_VT1724 0x1724
-
-#define PCI_VENDOR_ID_OXSEMI 0x1415
-#define PCI_DEVICE_ID_OXSEMI_12PCI840 0x8403
-#define PCI_DEVICE_ID_OXSEMI_PCIe840 0xC000
-#define PCI_DEVICE_ID_OXSEMI_PCIe840_G 0xC004
-#define PCI_DEVICE_ID_OXSEMI_PCIe952_0 0xC100
-#define PCI_DEVICE_ID_OXSEMI_PCIe952_0_G 0xC104
-#define PCI_DEVICE_ID_OXSEMI_PCIe952_1 0xC110
-#define PCI_DEVICE_ID_OXSEMI_PCIe952_1_G 0xC114
-#define PCI_DEVICE_ID_OXSEMI_PCIe952_1_U 0xC118
-#define PCI_DEVICE_ID_OXSEMI_PCIe952_1_GU 0xC11C
-#define PCI_DEVICE_ID_OXSEMI_16PCI954 0x9501
-#define PCI_DEVICE_ID_OXSEMI_C950 0x950B
-#define PCI_DEVICE_ID_OXSEMI_16PCI95N 0x9511
-#define PCI_DEVICE_ID_OXSEMI_16PCI954PP 0x9513
-#define PCI_DEVICE_ID_OXSEMI_16PCI952 0x9521
-#define PCI_DEVICE_ID_OXSEMI_16PCI952PP 0x9523
-#define PCI_SUBDEVICE_ID_OXSEMI_C950 0x0001
-
-#define PCI_VENDOR_ID_CHELSIO 0x1425
-
-#define PCI_VENDOR_ID_SAMSUNG 0x144d
-
-#define PCI_VENDOR_ID_GIGABYTE 0x1458
-
-#define PCI_VENDOR_ID_AMBIT 0x1468
-
-#define PCI_VENDOR_ID_MYRICOM 0x14c1
-
-#define PCI_VENDOR_ID_TITAN 0x14D2
-#define PCI_DEVICE_ID_TITAN_010L 0x8001
-#define PCI_DEVICE_ID_TITAN_100L 0x8010
-#define PCI_DEVICE_ID_TITAN_110L 0x8011
-#define PCI_DEVICE_ID_TITAN_200L 0x8020
-#define PCI_DEVICE_ID_TITAN_210L 0x8021
-#define PCI_DEVICE_ID_TITAN_400L 0x8040
-#define PCI_DEVICE_ID_TITAN_800L 0x8080
-#define PCI_DEVICE_ID_TITAN_100 0xA001
-#define PCI_DEVICE_ID_TITAN_200 0xA005
-#define PCI_DEVICE_ID_TITAN_400 0xA003
-#define PCI_DEVICE_ID_TITAN_800B 0xA004
-
-#define PCI_VENDOR_ID_PANACOM 0x14d4
-#define PCI_DEVICE_ID_PANACOM_QUADMODEM 0x0400
-#define PCI_DEVICE_ID_PANACOM_DUALMODEM 0x0402
-
-#define PCI_VENDOR_ID_SIPACKETS 0x14d9
-#define PCI_DEVICE_ID_SP1011 0x0010
-
-#define PCI_VENDOR_ID_AFAVLAB 0x14db
-#define PCI_DEVICE_ID_AFAVLAB_P028 0x2180
-#define PCI_DEVICE_ID_AFAVLAB_P030 0x2182
-#define PCI_SUBDEVICE_ID_AFAVLAB_P061 0x2150
-
-#define PCI_VENDOR_ID_BCM_GVC 0x14a4
-#define PCI_VENDOR_ID_BROADCOM 0x14e4
-#define PCI_DEVICE_ID_TIGON3_5752 0x1600
-#define PCI_DEVICE_ID_TIGON3_5752M 0x1601
-#define PCI_DEVICE_ID_NX2_5709 0x1639
-#define PCI_DEVICE_ID_NX2_5709S 0x163a
-#define PCI_DEVICE_ID_TIGON3_5700 0x1644
-#define PCI_DEVICE_ID_TIGON3_5701 0x1645
-#define PCI_DEVICE_ID_TIGON3_5702 0x1646
-#define PCI_DEVICE_ID_TIGON3_5703 0x1647
-#define PCI_DEVICE_ID_TIGON3_5704 0x1648
-#define PCI_DEVICE_ID_TIGON3_5704S_2 0x1649
-#define PCI_DEVICE_ID_NX2_5706 0x164a
-#define PCI_DEVICE_ID_NX2_5708 0x164c
-#define PCI_DEVICE_ID_TIGON3_5702FE 0x164d
-#define PCI_DEVICE_ID_NX2_57710 0x164e
-#define PCI_DEVICE_ID_NX2_57711 0x164f
-#define PCI_DEVICE_ID_NX2_57711E 0x1650
-#define PCI_DEVICE_ID_TIGON3_5705 0x1653
-#define PCI_DEVICE_ID_TIGON3_5705_2 0x1654
-#define PCI_DEVICE_ID_TIGON3_5719 0x1657
-#define PCI_DEVICE_ID_TIGON3_5721 0x1659
-#define PCI_DEVICE_ID_TIGON3_5722 0x165a
-#define PCI_DEVICE_ID_TIGON3_5723 0x165b
-#define PCI_DEVICE_ID_TIGON3_5705M 0x165d
-#define PCI_DEVICE_ID_TIGON3_5705M_2 0x165e
-#define PCI_DEVICE_ID_NX2_57712 0x1662
-#define PCI_DEVICE_ID_NX2_57712E 0x1663
-#define PCI_DEVICE_ID_TIGON3_5714 0x1668
-#define PCI_DEVICE_ID_TIGON3_5714S 0x1669
-#define PCI_DEVICE_ID_TIGON3_5780 0x166a
-#define PCI_DEVICE_ID_TIGON3_5780S 0x166b
-#define PCI_DEVICE_ID_TIGON3_5705F 0x166e
-#define PCI_DEVICE_ID_TIGON3_5754M 0x1672
-#define PCI_DEVICE_ID_TIGON3_5755M 0x1673
-#define PCI_DEVICE_ID_TIGON3_5756 0x1674
-#define PCI_DEVICE_ID_TIGON3_5751 0x1677
-#define PCI_DEVICE_ID_TIGON3_5715 0x1678
-#define PCI_DEVICE_ID_TIGON3_5715S 0x1679
-#define PCI_DEVICE_ID_TIGON3_5754 0x167a
-#define PCI_DEVICE_ID_TIGON3_5755 0x167b
-#define PCI_DEVICE_ID_TIGON3_5751M 0x167d
-#define PCI_DEVICE_ID_TIGON3_5751F 0x167e
-#define PCI_DEVICE_ID_TIGON3_5787F 0x167f
-#define PCI_DEVICE_ID_TIGON3_5761E 0x1680
-#define PCI_DEVICE_ID_TIGON3_5761 0x1681
-#define PCI_DEVICE_ID_TIGON3_5764 0x1684
-#define PCI_DEVICE_ID_NX2_57800 0x168a
-#define PCI_DEVICE_ID_NX2_57840 0x168d
-#define PCI_DEVICE_ID_NX2_57810 0x168e
-#define PCI_DEVICE_ID_TIGON3_5787M 0x1693
-#define PCI_DEVICE_ID_TIGON3_5782 0x1696
-#define PCI_DEVICE_ID_TIGON3_5784 0x1698
-#define PCI_DEVICE_ID_TIGON3_5786 0x169a
-#define PCI_DEVICE_ID_TIGON3_5787 0x169b
-#define PCI_DEVICE_ID_TIGON3_5788 0x169c
-#define PCI_DEVICE_ID_TIGON3_5789 0x169d
-#define PCI_DEVICE_ID_NX2_57800_MF 0x16a5
-#define PCI_DEVICE_ID_TIGON3_5702X 0x16a6
-#define PCI_DEVICE_ID_TIGON3_5703X 0x16a7
-#define PCI_DEVICE_ID_TIGON3_5704S 0x16a8
-#define PCI_DEVICE_ID_NX2_57800_VF 0x16a9
-#define PCI_DEVICE_ID_NX2_5706S 0x16aa
-#define PCI_DEVICE_ID_NX2_57840_MF 0x16ab
-#define PCI_DEVICE_ID_NX2_5708S 0x16ac
-#define PCI_DEVICE_ID_NX2_57840_VF 0x16ad
-#define PCI_DEVICE_ID_NX2_57810_MF 0x16ae
-#define PCI_DEVICE_ID_NX2_57810_VF 0x16af
-#define PCI_DEVICE_ID_TIGON3_5702A3 0x16c6
-#define PCI_DEVICE_ID_TIGON3_5703A3 0x16c7
-#define PCI_DEVICE_ID_TIGON3_5781 0x16dd
-#define PCI_DEVICE_ID_TIGON3_5753 0x16f7
-#define PCI_DEVICE_ID_TIGON3_5753M 0x16fd
-#define PCI_DEVICE_ID_TIGON3_5753F 0x16fe
-#define PCI_DEVICE_ID_TIGON3_5901 0x170d
-#define PCI_DEVICE_ID_BCM4401B1 0x170c
-#define PCI_DEVICE_ID_TIGON3_5901_2 0x170e
-#define PCI_DEVICE_ID_TIGON3_5906 0x1712
-#define PCI_DEVICE_ID_TIGON3_5906M 0x1713
-#define PCI_DEVICE_ID_BCM4401 0x4401
-#define PCI_DEVICE_ID_BCM4401B0 0x4402
-
-#define PCI_VENDOR_ID_TOPIC 0x151f
-#define PCI_DEVICE_ID_TOPIC_TP560 0x0000
-
-#define PCI_VENDOR_ID_MAINPINE 0x1522
-#define PCI_DEVICE_ID_MAINPINE_PBRIDGE 0x0100
-#define PCI_VENDOR_ID_ENE 0x1524
-#define PCI_DEVICE_ID_ENE_CB710_FLASH 0x0510
-#define PCI_DEVICE_ID_ENE_CB712_SD 0x0550
-#define PCI_DEVICE_ID_ENE_CB712_SD_2 0x0551
-#define PCI_DEVICE_ID_ENE_CB714_SD 0x0750
-#define PCI_DEVICE_ID_ENE_CB714_SD_2 0x0751
-#define PCI_DEVICE_ID_ENE_1211 0x1211
-#define PCI_DEVICE_ID_ENE_1225 0x1225
-#define PCI_DEVICE_ID_ENE_1410 0x1410
-#define PCI_DEVICE_ID_ENE_710 0x1411
-#define PCI_DEVICE_ID_ENE_712 0x1412
-#define PCI_DEVICE_ID_ENE_1420 0x1420
-#define PCI_DEVICE_ID_ENE_720 0x1421
-#define PCI_DEVICE_ID_ENE_722 0x1422
-
-#define PCI_SUBVENDOR_ID_PERLE 0x155f
-#define PCI_SUBDEVICE_ID_PCI_RAS4 0xf001
-#define PCI_SUBDEVICE_ID_PCI_RAS8 0xf010
-
-#define PCI_VENDOR_ID_SYBA 0x1592
-#define PCI_DEVICE_ID_SYBA_2P_EPP 0x0782
-#define PCI_DEVICE_ID_SYBA_1P_ECP 0x0783
-
-#define PCI_VENDOR_ID_MORETON 0x15aa
-#define PCI_DEVICE_ID_RASTEL_2PORT 0x2000
-
-#define PCI_VENDOR_ID_ZOLTRIX 0x15b0
-#define PCI_DEVICE_ID_ZOLTRIX_2BD0 0x2bd0
-
-#define PCI_VENDOR_ID_MELLANOX 0x15b3
-#define PCI_DEVICE_ID_MELLANOX_TAVOR 0x5a44
-#define PCI_DEVICE_ID_MELLANOX_TAVOR_BRIDGE 0x5a46
-#define PCI_DEVICE_ID_MELLANOX_ARBEL_COMPAT 0x6278
-#define PCI_DEVICE_ID_MELLANOX_ARBEL 0x6282
-#define PCI_DEVICE_ID_MELLANOX_SINAI_OLD 0x5e8c
-#define PCI_DEVICE_ID_MELLANOX_SINAI 0x6274
-
-#define PCI_VENDOR_ID_DFI 0x15bd
-
-#define PCI_VENDOR_ID_QUICKNET 0x15e2
-#define PCI_DEVICE_ID_QUICKNET_XJ 0x0500
-
-/*
- * ADDI-DATA GmbH communication cards <info@addi-data.com>
- */
-#define PCI_VENDOR_ID_ADDIDATA_OLD 0x10E8
-#define PCI_VENDOR_ID_ADDIDATA 0x15B8
-#define PCI_DEVICE_ID_ADDIDATA_APCI7500 0x7000
-#define PCI_DEVICE_ID_ADDIDATA_APCI7420 0x7001
-#define PCI_DEVICE_ID_ADDIDATA_APCI7300 0x7002
-#define PCI_DEVICE_ID_ADDIDATA_APCI7800 0x818E
-#define PCI_DEVICE_ID_ADDIDATA_APCI7500_2 0x7009
-#define PCI_DEVICE_ID_ADDIDATA_APCI7420_2 0x700A
-#define PCI_DEVICE_ID_ADDIDATA_APCI7300_2 0x700B
-#define PCI_DEVICE_ID_ADDIDATA_APCI7500_3 0x700C
-#define PCI_DEVICE_ID_ADDIDATA_APCI7420_3 0x700D
-#define PCI_DEVICE_ID_ADDIDATA_APCI7300_3 0x700E
-#define PCI_DEVICE_ID_ADDIDATA_APCI7800_3 0x700F
-#define PCI_DEVICE_ID_ADDIDATA_APCIe7300 0x7010
-#define PCI_DEVICE_ID_ADDIDATA_APCIe7420 0x7011
-#define PCI_DEVICE_ID_ADDIDATA_APCIe7500 0x7012
-#define PCI_DEVICE_ID_ADDIDATA_APCIe7800 0x7013
-
-#define PCI_VENDOR_ID_PDC 0x15e9
-
-#define PCI_VENDOR_ID_FARSITE 0x1619
-#define PCI_DEVICE_ID_FARSITE_T2P 0x0400
-#define PCI_DEVICE_ID_FARSITE_T4P 0x0440
-#define PCI_DEVICE_ID_FARSITE_T1U 0x0610
-#define PCI_DEVICE_ID_FARSITE_T2U 0x0620
-#define PCI_DEVICE_ID_FARSITE_T4U 0x0640
-#define PCI_DEVICE_ID_FARSITE_TE1 0x1610
-#define PCI_DEVICE_ID_FARSITE_TE1C 0x1612
-
-#define PCI_VENDOR_ID_ARIMA 0x161f
-
-#define PCI_VENDOR_ID_BROCADE 0x1657
-#define PCI_DEVICE_ID_BROCADE_CT 0x0014
-#define PCI_DEVICE_ID_BROCADE_FC_8G1P 0x0017
-#define PCI_DEVICE_ID_BROCADE_CT_FC 0x0021
-
-#define PCI_VENDOR_ID_SIBYTE 0x166d
-#define PCI_DEVICE_ID_BCM1250_PCI 0x0001
-#define PCI_DEVICE_ID_BCM1250_HT 0x0002
-
-#define PCI_VENDOR_ID_ATHEROS 0x168c
-
-#define PCI_VENDOR_ID_NETCELL 0x169c
-#define PCI_DEVICE_ID_REVOLUTION 0x0044
-
-#define PCI_VENDOR_ID_CENATEK 0x16CA
-#define PCI_DEVICE_ID_CENATEK_IDE 0x0001
-
-#define PCI_VENDOR_ID_VITESSE 0x1725
-#define PCI_DEVICE_ID_VITESSE_VSC7174 0x7174
-
-#define PCI_VENDOR_ID_LINKSYS 0x1737
-#define PCI_DEVICE_ID_LINKSYS_EG1064 0x1064
-
-#define PCI_VENDOR_ID_ALTIMA 0x173b
-#define PCI_DEVICE_ID_ALTIMA_AC1000 0x03e8
-#define PCI_DEVICE_ID_ALTIMA_AC1001 0x03e9
-#define PCI_DEVICE_ID_ALTIMA_AC9100 0x03ea
-#define PCI_DEVICE_ID_ALTIMA_AC1003 0x03eb
-
-#define PCI_VENDOR_ID_BELKIN 0x1799
-#define PCI_DEVICE_ID_BELKIN_F5D7010V7 0x701f
-
-#define PCI_VENDOR_ID_RDC 0x17f3
-#define PCI_DEVICE_ID_RDC_R6020 0x6020
-#define PCI_DEVICE_ID_RDC_R6030 0x6030
-#define PCI_DEVICE_ID_RDC_R6040 0x6040
-#define PCI_DEVICE_ID_RDC_R6060 0x6060
-#define PCI_DEVICE_ID_RDC_R6061 0x6061
-#define PCI_DEVICE_ID_RDC_D1010 0x1010
-
-#define PCI_VENDOR_ID_LENOVO 0x17aa
-
-#define PCI_VENDOR_ID_ARECA 0x17d3
-#define PCI_DEVICE_ID_ARECA_1110 0x1110
-#define PCI_DEVICE_ID_ARECA_1120 0x1120
-#define PCI_DEVICE_ID_ARECA_1130 0x1130
-#define PCI_DEVICE_ID_ARECA_1160 0x1160
-#define PCI_DEVICE_ID_ARECA_1170 0x1170
-#define PCI_DEVICE_ID_ARECA_1200 0x1200
-#define PCI_DEVICE_ID_ARECA_1201 0x1201
-#define PCI_DEVICE_ID_ARECA_1202 0x1202
-#define PCI_DEVICE_ID_ARECA_1210 0x1210
-#define PCI_DEVICE_ID_ARECA_1220 0x1220
-#define PCI_DEVICE_ID_ARECA_1230 0x1230
-#define PCI_DEVICE_ID_ARECA_1260 0x1260
-#define PCI_DEVICE_ID_ARECA_1270 0x1270
-#define PCI_DEVICE_ID_ARECA_1280 0x1280
-#define PCI_DEVICE_ID_ARECA_1380 0x1380
-#define PCI_DEVICE_ID_ARECA_1381 0x1381
-#define PCI_DEVICE_ID_ARECA_1680 0x1680
-#define PCI_DEVICE_ID_ARECA_1681 0x1681
-
-#define PCI_VENDOR_ID_S2IO 0x17d5
-#define PCI_DEVICE_ID_S2IO_WIN 0x5731
-#define PCI_DEVICE_ID_S2IO_UNI 0x5831
-#define PCI_DEVICE_ID_HERC_WIN 0x5732
-#define PCI_DEVICE_ID_HERC_UNI 0x5832
-
-#define PCI_VENDOR_ID_SITECOM 0x182d
-#define PCI_DEVICE_ID_SITECOM_DC105V2 0x3069
-
-#define PCI_VENDOR_ID_TOPSPIN 0x1867
-
-#define PCI_VENDOR_ID_SILAN 0x1904
-
-#define PCI_VENDOR_ID_RENESAS 0x1912
-#define PCI_DEVICE_ID_RENESAS_SH7781 0x0001
-#define PCI_DEVICE_ID_RENESAS_SH7780 0x0002
-#define PCI_DEVICE_ID_RENESAS_SH7763 0x0004
-#define PCI_DEVICE_ID_RENESAS_SH7785 0x0007
-#define PCI_DEVICE_ID_RENESAS_SH7786 0x0010
-
-#define PCI_VENDOR_ID_SOLARFLARE 0x1924
-#define PCI_DEVICE_ID_SOLARFLARE_SFC4000A_0 0x0703
-#define PCI_DEVICE_ID_SOLARFLARE_SFC4000A_1 0x6703
-#define PCI_DEVICE_ID_SOLARFLARE_SFC4000B 0x0710
-
-#define PCI_VENDOR_ID_TDI 0x192E
-#define PCI_DEVICE_ID_TDI_EHCI 0x0101
-
-#define PCI_VENDOR_ID_FREESCALE 0x1957
-#define PCI_DEVICE_ID_MPC8308 0xc006
-#define PCI_DEVICE_ID_MPC8315E 0x00b4
-#define PCI_DEVICE_ID_MPC8315 0x00b5
-#define PCI_DEVICE_ID_MPC8314E 0x00b6
-#define PCI_DEVICE_ID_MPC8314 0x00b7
-#define PCI_DEVICE_ID_MPC8378E 0x00c4
-#define PCI_DEVICE_ID_MPC8378 0x00c5
-#define PCI_DEVICE_ID_MPC8377E 0x00c6
-#define PCI_DEVICE_ID_MPC8377 0x00c7
-#define PCI_DEVICE_ID_MPC8548E 0x0012
-#define PCI_DEVICE_ID_MPC8548 0x0013
-#define PCI_DEVICE_ID_MPC8543E 0x0014
-#define PCI_DEVICE_ID_MPC8543 0x0015
-#define PCI_DEVICE_ID_MPC8547E 0x0018
-#define PCI_DEVICE_ID_MPC8545E 0x0019
-#define PCI_DEVICE_ID_MPC8545 0x001a
-#define PCI_DEVICE_ID_MPC8569E 0x0061
-#define PCI_DEVICE_ID_MPC8569 0x0060
-#define PCI_DEVICE_ID_MPC8568E 0x0020
-#define PCI_DEVICE_ID_MPC8568 0x0021
-#define PCI_DEVICE_ID_MPC8567E 0x0022
-#define PCI_DEVICE_ID_MPC8567 0x0023
-#define PCI_DEVICE_ID_MPC8533E 0x0030
-#define PCI_DEVICE_ID_MPC8533 0x0031
-#define PCI_DEVICE_ID_MPC8544E 0x0032
-#define PCI_DEVICE_ID_MPC8544 0x0033
-#define PCI_DEVICE_ID_MPC8572E 0x0040
-#define PCI_DEVICE_ID_MPC8572 0x0041
-#define PCI_DEVICE_ID_MPC8536E 0x0050
-#define PCI_DEVICE_ID_MPC8536 0x0051
-#define PCI_DEVICE_ID_P2020E 0x0070
-#define PCI_DEVICE_ID_P2020 0x0071
-#define PCI_DEVICE_ID_P2010E 0x0078
-#define PCI_DEVICE_ID_P2010 0x0079
-#define PCI_DEVICE_ID_P1020E 0x0100
-#define PCI_DEVICE_ID_P1020 0x0101
-#define PCI_DEVICE_ID_P1021E 0x0102
-#define PCI_DEVICE_ID_P1021 0x0103
-#define PCI_DEVICE_ID_P1011E 0x0108
-#define PCI_DEVICE_ID_P1011 0x0109
-#define PCI_DEVICE_ID_P1022E 0x0110
-#define PCI_DEVICE_ID_P1022 0x0111
-#define PCI_DEVICE_ID_P1013E 0x0118
-#define PCI_DEVICE_ID_P1013 0x0119
-#define PCI_DEVICE_ID_P4080E 0x0400
-#define PCI_DEVICE_ID_P4080 0x0401
-#define PCI_DEVICE_ID_P4040E 0x0408
-#define PCI_DEVICE_ID_P4040 0x0409
-#define PCI_DEVICE_ID_P2040E 0x0410
-#define PCI_DEVICE_ID_P2040 0x0411
-#define PCI_DEVICE_ID_P3041E 0x041E
-#define PCI_DEVICE_ID_P3041 0x041F
-#define PCI_DEVICE_ID_P5020E 0x0420
-#define PCI_DEVICE_ID_P5020 0x0421
-#define PCI_DEVICE_ID_P5010E 0x0428
-#define PCI_DEVICE_ID_P5010 0x0429
-#define PCI_DEVICE_ID_MPC8641 0x7010
-#define PCI_DEVICE_ID_MPC8641D 0x7011
-#define PCI_DEVICE_ID_MPC8610 0x7018
-
-#define PCI_VENDOR_ID_PASEMI 0x1959
-
-#define PCI_VENDOR_ID_ATTANSIC 0x1969
-#define PCI_DEVICE_ID_ATTANSIC_L1 0x1048
-#define PCI_DEVICE_ID_ATTANSIC_L2 0x2048
-
-#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_JMB364 0x2364
-#define PCI_DEVICE_ID_JMICRON_JMB365 0x2365
-#define PCI_DEVICE_ID_JMICRON_JMB366 0x2366
-#define PCI_DEVICE_ID_JMICRON_JMB368 0x2368
-#define PCI_DEVICE_ID_JMICRON_JMB369 0x2369
-#define PCI_DEVICE_ID_JMICRON_JMB38X_SD 0x2381
-#define PCI_DEVICE_ID_JMICRON_JMB38X_MMC 0x2382
-#define PCI_DEVICE_ID_JMICRON_JMB38X_MS 0x2383
-#define PCI_DEVICE_ID_JMICRON_JMB385_MS 0x2388
-#define PCI_DEVICE_ID_JMICRON_JMB388_SD 0x2391
-#define PCI_DEVICE_ID_JMICRON_JMB388_ESD 0x2392
-#define PCI_DEVICE_ID_JMICRON_JMB390_MS 0x2393
-
-#define PCI_VENDOR_ID_KORENIX 0x1982
-#define PCI_DEVICE_ID_KORENIX_JETCARDF0 0x1600
-#define PCI_DEVICE_ID_KORENIX_JETCARDF1 0x16ff
-#define PCI_DEVICE_ID_KORENIX_JETCARDF2 0x1700
-#define PCI_DEVICE_ID_KORENIX_JETCARDF3 0x17ff
-
-#define PCI_VENDOR_ID_QMI 0x1a32
-
-#define PCI_VENDOR_ID_AZWAVE 0x1a3b
-
-#define PCI_VENDOR_ID_ASMEDIA 0x1b21
-
-#define PCI_VENDOR_ID_TEKRAM 0x1de1
-#define PCI_DEVICE_ID_TEKRAM_DC290 0xdc29
-
-#define PCI_VENDOR_ID_TEHUTI 0x1fc9
-#define PCI_DEVICE_ID_TEHUTI_3009 0x3009
-#define PCI_DEVICE_ID_TEHUTI_3010 0x3010
-#define PCI_DEVICE_ID_TEHUTI_3014 0x3014
-
-#define PCI_VENDOR_ID_HINT 0x3388
-#define PCI_DEVICE_ID_HINT_VXPROII_IDE 0x8013
-
-#define PCI_VENDOR_ID_3DLABS 0x3d3d
-#define PCI_DEVICE_ID_3DLABS_PERMEDIA2 0x0007
-#define PCI_DEVICE_ID_3DLABS_PERMEDIA2V 0x0009
-
-#define PCI_VENDOR_ID_NETXEN 0x4040
-#define PCI_DEVICE_ID_NX2031_10GXSR 0x0001
-#define PCI_DEVICE_ID_NX2031_10GCX4 0x0002
-#define PCI_DEVICE_ID_NX2031_4GCU 0x0003
-#define PCI_DEVICE_ID_NX2031_IMEZ 0x0004
-#define PCI_DEVICE_ID_NX2031_HMEZ 0x0005
-#define PCI_DEVICE_ID_NX2031_XG_MGMT 0x0024
-#define PCI_DEVICE_ID_NX2031_XG_MGMT2 0x0025
-#define PCI_DEVICE_ID_NX3031 0x0100
-
-#define PCI_VENDOR_ID_AKS 0x416c
-#define PCI_DEVICE_ID_AKS_ALADDINCARD 0x0100
-
-#define PCI_VENDOR_ID_ACCESSIO 0x494f
-#define PCI_DEVICE_ID_ACCESSIO_WDG_CSM 0x22c0
-
-#define PCI_VENDOR_ID_S3 0x5333
-#define PCI_DEVICE_ID_S3_TRIO 0x8811
-#define PCI_DEVICE_ID_S3_868 0x8880
-#define PCI_DEVICE_ID_S3_968 0x88f0
-#define PCI_DEVICE_ID_S3_SAVAGE4 0x8a25
-#define PCI_DEVICE_ID_S3_PROSAVAGE8 0x8d04
-#define PCI_DEVICE_ID_S3_SONICVIBES 0xca00
-
-#define PCI_VENDOR_ID_DUNORD 0x5544
-#define PCI_DEVICE_ID_DUNORD_I3000 0x0001
-
-#define PCI_VENDOR_ID_DCI 0x6666
-#define PCI_DEVICE_ID_DCI_PCCOM4 0x0001
-#define PCI_DEVICE_ID_DCI_PCCOM8 0x0002
-#define PCI_DEVICE_ID_DCI_PCCOM2 0x0004
-
-#define PCI_VENDOR_ID_INTEL 0x8086
-#define PCI_DEVICE_ID_INTEL_EESSC 0x0008
-#define PCI_DEVICE_ID_INTEL_PXHD_0 0x0320
-#define PCI_DEVICE_ID_INTEL_PXHD_1 0x0321
-#define PCI_DEVICE_ID_INTEL_PXH_0 0x0329
-#define PCI_DEVICE_ID_INTEL_PXH_1 0x032A
-#define PCI_DEVICE_ID_INTEL_PXHV 0x032C
-#define PCI_DEVICE_ID_INTEL_80332_0 0x0330
-#define PCI_DEVICE_ID_INTEL_80332_1 0x0332
-#define PCI_DEVICE_ID_INTEL_80333_0 0x0370
-#define PCI_DEVICE_ID_INTEL_80333_1 0x0372
-#define PCI_DEVICE_ID_INTEL_82375 0x0482
-#define PCI_DEVICE_ID_INTEL_82424 0x0483
-#define PCI_DEVICE_ID_INTEL_82378 0x0484
-#define PCI_DEVICE_ID_INTEL_MRST_SD0 0x0807
-#define PCI_DEVICE_ID_INTEL_MRST_SD1 0x0808
-#define PCI_DEVICE_ID_INTEL_MFD_SD 0x0820
-#define PCI_DEVICE_ID_INTEL_MFD_SDIO1 0x0821
-#define PCI_DEVICE_ID_INTEL_MFD_SDIO2 0x0822
-#define PCI_DEVICE_ID_INTEL_MFD_EMMC0 0x0823
-#define PCI_DEVICE_ID_INTEL_MFD_EMMC1 0x0824
-#define PCI_DEVICE_ID_INTEL_MRST_SD2 0x084F
-#define PCI_DEVICE_ID_INTEL_I960 0x0960
-#define PCI_DEVICE_ID_INTEL_I960RM 0x0962
-#define PCI_DEVICE_ID_INTEL_8257X_SOL 0x1062
-#define PCI_DEVICE_ID_INTEL_82573E_SOL 0x1085
-#define PCI_DEVICE_ID_INTEL_82573L_SOL 0x108F
-#define PCI_DEVICE_ID_INTEL_82815_MC 0x1130
-#define PCI_DEVICE_ID_INTEL_82815_CGC 0x1132
-#define PCI_DEVICE_ID_INTEL_82092AA_0 0x1221
-#define PCI_DEVICE_ID_INTEL_7505_0 0x2550
-#define PCI_DEVICE_ID_INTEL_7205_0 0x255d
-#define PCI_DEVICE_ID_INTEL_82437 0x122d
-#define PCI_DEVICE_ID_INTEL_82371FB_0 0x122e
-#define PCI_DEVICE_ID_INTEL_82371FB_1 0x1230
-#define PCI_DEVICE_ID_INTEL_82371MX 0x1234
-#define PCI_DEVICE_ID_INTEL_82441 0x1237
-#define PCI_DEVICE_ID_INTEL_82380FB 0x124b
-#define PCI_DEVICE_ID_INTEL_82439 0x1250
-#define PCI_DEVICE_ID_INTEL_80960_RP 0x1960
-#define PCI_DEVICE_ID_INTEL_82840_HB 0x1a21
-#define PCI_DEVICE_ID_INTEL_82845_HB 0x1a30
-#define PCI_DEVICE_ID_INTEL_IOAT 0x1a38
-#define PCI_DEVICE_ID_INTEL_COUGARPOINT_LPC_MIN 0x1c41
-#define PCI_DEVICE_ID_INTEL_COUGARPOINT_LPC_MAX 0x1c5f
-#define PCI_DEVICE_ID_INTEL_PATSBURG_LPC_0 0x1d40
-#define PCI_DEVICE_ID_INTEL_PATSBURG_LPC_1 0x1d41
-#define PCI_DEVICE_ID_INTEL_PANTHERPOINT_XHCI 0x1e31
-#define PCI_DEVICE_ID_INTEL_PANTHERPOINT_LPC_MIN 0x1e40
-#define PCI_DEVICE_ID_INTEL_PANTHERPOINT_LPC_MAX 0x1e5f
-#define PCI_DEVICE_ID_INTEL_DH89XXCC_LPC_MIN 0x2310
-#define PCI_DEVICE_ID_INTEL_DH89XXCC_LPC_MAX 0x231f
-#define PCI_DEVICE_ID_INTEL_82801AA_0 0x2410
-#define PCI_DEVICE_ID_INTEL_82801AA_1 0x2411
-#define PCI_DEVICE_ID_INTEL_82801AA_3 0x2413
-#define PCI_DEVICE_ID_INTEL_82801AA_5 0x2415
-#define PCI_DEVICE_ID_INTEL_82801AA_6 0x2416
-#define PCI_DEVICE_ID_INTEL_82801AA_8 0x2418
-#define PCI_DEVICE_ID_INTEL_82801AB_0 0x2420
-#define PCI_DEVICE_ID_INTEL_82801AB_1 0x2421
-#define PCI_DEVICE_ID_INTEL_82801AB_3 0x2423
-#define PCI_DEVICE_ID_INTEL_82801AB_5 0x2425
-#define PCI_DEVICE_ID_INTEL_82801AB_6 0x2426
-#define PCI_DEVICE_ID_INTEL_82801AB_8 0x2428
-#define PCI_DEVICE_ID_INTEL_82801BA_0 0x2440
-#define PCI_DEVICE_ID_INTEL_82801BA_2 0x2443
-#define PCI_DEVICE_ID_INTEL_82801BA_4 0x2445
-#define PCI_DEVICE_ID_INTEL_82801BA_6 0x2448
-#define PCI_DEVICE_ID_INTEL_82801BA_8 0x244a
-#define PCI_DEVICE_ID_INTEL_82801BA_9 0x244b
-#define PCI_DEVICE_ID_INTEL_82801BA_10 0x244c
-#define PCI_DEVICE_ID_INTEL_82801BA_11 0x244e
-#define PCI_DEVICE_ID_INTEL_82801E_0 0x2450
-#define PCI_DEVICE_ID_INTEL_82801E_11 0x245b
-#define PCI_DEVICE_ID_INTEL_82801CA_0 0x2480
-#define PCI_DEVICE_ID_INTEL_82801CA_3 0x2483
-#define PCI_DEVICE_ID_INTEL_82801CA_5 0x2485
-#define PCI_DEVICE_ID_INTEL_82801CA_6 0x2486
-#define PCI_DEVICE_ID_INTEL_82801CA_10 0x248a
-#define PCI_DEVICE_ID_INTEL_82801CA_11 0x248b
-#define PCI_DEVICE_ID_INTEL_82801CA_12 0x248c
-#define PCI_DEVICE_ID_INTEL_82801DB_0 0x24c0
-#define PCI_DEVICE_ID_INTEL_82801DB_1 0x24c1
-#define PCI_DEVICE_ID_INTEL_82801DB_2 0x24c2
-#define PCI_DEVICE_ID_INTEL_82801DB_3 0x24c3
-#define PCI_DEVICE_ID_INTEL_82801DB_5 0x24c5
-#define PCI_DEVICE_ID_INTEL_82801DB_6 0x24c6
-#define PCI_DEVICE_ID_INTEL_82801DB_9 0x24c9
-#define PCI_DEVICE_ID_INTEL_82801DB_10 0x24ca
-#define PCI_DEVICE_ID_INTEL_82801DB_11 0x24cb
-#define PCI_DEVICE_ID_INTEL_82801DB_12 0x24cc
-#define PCI_DEVICE_ID_INTEL_82801EB_0 0x24d0
-#define PCI_DEVICE_ID_INTEL_82801EB_1 0x24d1
-#define PCI_DEVICE_ID_INTEL_82801EB_3 0x24d3
-#define PCI_DEVICE_ID_INTEL_82801EB_5 0x24d5
-#define PCI_DEVICE_ID_INTEL_82801EB_6 0x24d6
-#define PCI_DEVICE_ID_INTEL_82801EB_11 0x24db
-#define PCI_DEVICE_ID_INTEL_82801EB_12 0x24dc
-#define PCI_DEVICE_ID_INTEL_82801EB_13 0x24dd
-#define PCI_DEVICE_ID_INTEL_ESB_1 0x25a1
-#define PCI_DEVICE_ID_INTEL_ESB_2 0x25a2
-#define PCI_DEVICE_ID_INTEL_ESB_4 0x25a4
-#define PCI_DEVICE_ID_INTEL_ESB_5 0x25a6
-#define PCI_DEVICE_ID_INTEL_ESB_9 0x25ab
-#define PCI_DEVICE_ID_INTEL_ESB_10 0x25ac
-#define PCI_DEVICE_ID_INTEL_82820_HB 0x2500
-#define PCI_DEVICE_ID_INTEL_82820_UP_HB 0x2501
-#define PCI_DEVICE_ID_INTEL_82850_HB 0x2530
-#define PCI_DEVICE_ID_INTEL_82860_HB 0x2531
-#define PCI_DEVICE_ID_INTEL_E7501_MCH 0x254c
-#define PCI_DEVICE_ID_INTEL_82845G_HB 0x2560
-#define PCI_DEVICE_ID_INTEL_82845G_IG 0x2562
-#define PCI_DEVICE_ID_INTEL_82865_HB 0x2570
-#define PCI_DEVICE_ID_INTEL_82865_IG 0x2572
-#define PCI_DEVICE_ID_INTEL_82875_HB 0x2578
-#define PCI_DEVICE_ID_INTEL_82915G_HB 0x2580
-#define PCI_DEVICE_ID_INTEL_82915G_IG 0x2582
-#define PCI_DEVICE_ID_INTEL_82915GM_HB 0x2590
-#define PCI_DEVICE_ID_INTEL_82915GM_IG 0x2592
-#define PCI_DEVICE_ID_INTEL_5000_ERR 0x25F0
-#define PCI_DEVICE_ID_INTEL_5000_FBD0 0x25F5
-#define PCI_DEVICE_ID_INTEL_5000_FBD1 0x25F6
-#define PCI_DEVICE_ID_INTEL_82945G_HB 0x2770
-#define PCI_DEVICE_ID_INTEL_82945G_IG 0x2772
-#define PCI_DEVICE_ID_INTEL_3000_HB 0x2778
-#define PCI_DEVICE_ID_INTEL_82945GM_HB 0x27A0
-#define PCI_DEVICE_ID_INTEL_82945GM_IG 0x27A2
-#define PCI_DEVICE_ID_INTEL_ICH6_0 0x2640
-#define PCI_DEVICE_ID_INTEL_ICH6_1 0x2641
-#define PCI_DEVICE_ID_INTEL_ICH6_2 0x2642
-#define PCI_DEVICE_ID_INTEL_ICH6_16 0x266a
-#define PCI_DEVICE_ID_INTEL_ICH6_17 0x266d
-#define PCI_DEVICE_ID_INTEL_ICH6_18 0x266e
-#define PCI_DEVICE_ID_INTEL_ICH6_19 0x266f
-#define PCI_DEVICE_ID_INTEL_ESB2_0 0x2670
-#define PCI_DEVICE_ID_INTEL_ESB2_14 0x2698
-#define PCI_DEVICE_ID_INTEL_ESB2_17 0x269b
-#define PCI_DEVICE_ID_INTEL_ESB2_18 0x269e
-#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_TGP_LPC 0x27bc
-#define PCI_DEVICE_ID_INTEL_ICH7_31 0x27bd
-#define PCI_DEVICE_ID_INTEL_ICH7_17 0x27da
-#define PCI_DEVICE_ID_INTEL_ICH7_19 0x27dd
-#define PCI_DEVICE_ID_INTEL_ICH7_20 0x27de
-#define PCI_DEVICE_ID_INTEL_ICH7_21 0x27df
-#define PCI_DEVICE_ID_INTEL_ICH8_0 0x2810
-#define PCI_DEVICE_ID_INTEL_ICH8_1 0x2811
-#define PCI_DEVICE_ID_INTEL_ICH8_2 0x2812
-#define PCI_DEVICE_ID_INTEL_ICH8_3 0x2814
-#define PCI_DEVICE_ID_INTEL_ICH8_4 0x2815
-#define PCI_DEVICE_ID_INTEL_ICH8_5 0x283e
-#define PCI_DEVICE_ID_INTEL_ICH8_6 0x2850
-#define PCI_DEVICE_ID_INTEL_ICH9_0 0x2910
-#define PCI_DEVICE_ID_INTEL_ICH9_1 0x2917
-#define PCI_DEVICE_ID_INTEL_ICH9_2 0x2912
-#define PCI_DEVICE_ID_INTEL_ICH9_3 0x2913
-#define PCI_DEVICE_ID_INTEL_ICH9_4 0x2914
-#define PCI_DEVICE_ID_INTEL_ICH9_5 0x2919
-#define PCI_DEVICE_ID_INTEL_ICH9_6 0x2930
-#define PCI_DEVICE_ID_INTEL_ICH9_7 0x2916
-#define PCI_DEVICE_ID_INTEL_ICH9_8 0x2918
-#define PCI_DEVICE_ID_INTEL_I7_MCR 0x2c18
-#define PCI_DEVICE_ID_INTEL_I7_MC_TAD 0x2c19
-#define PCI_DEVICE_ID_INTEL_I7_MC_RAS 0x2c1a
-#define PCI_DEVICE_ID_INTEL_I7_MC_TEST 0x2c1c
-#define PCI_DEVICE_ID_INTEL_I7_MC_CH0_CTRL 0x2c20
-#define PCI_DEVICE_ID_INTEL_I7_MC_CH0_ADDR 0x2c21
-#define PCI_DEVICE_ID_INTEL_I7_MC_CH0_RANK 0x2c22
-#define PCI_DEVICE_ID_INTEL_I7_MC_CH0_TC 0x2c23
-#define PCI_DEVICE_ID_INTEL_I7_MC_CH1_CTRL 0x2c28
-#define PCI_DEVICE_ID_INTEL_I7_MC_CH1_ADDR 0x2c29
-#define PCI_DEVICE_ID_INTEL_I7_MC_CH1_RANK 0x2c2a
-#define PCI_DEVICE_ID_INTEL_I7_MC_CH1_TC 0x2c2b
-#define PCI_DEVICE_ID_INTEL_I7_MC_CH2_CTRL 0x2c30
-#define PCI_DEVICE_ID_INTEL_I7_MC_CH2_ADDR 0x2c31
-#define PCI_DEVICE_ID_INTEL_I7_MC_CH2_RANK 0x2c32
-#define PCI_DEVICE_ID_INTEL_I7_MC_CH2_TC 0x2c33
-#define PCI_DEVICE_ID_INTEL_I7_NONCORE 0x2c41
-#define PCI_DEVICE_ID_INTEL_I7_NONCORE_ALT 0x2c40
-#define PCI_DEVICE_ID_INTEL_LYNNFIELD_NONCORE 0x2c50
-#define PCI_DEVICE_ID_INTEL_LYNNFIELD_NONCORE_ALT 0x2c51
-#define PCI_DEVICE_ID_INTEL_LYNNFIELD_NONCORE_REV2 0x2c70
-#define PCI_DEVICE_ID_INTEL_LYNNFIELD_SAD 0x2c81
-#define PCI_DEVICE_ID_INTEL_LYNNFIELD_QPI_LINK0 0x2c90
-#define PCI_DEVICE_ID_INTEL_LYNNFIELD_QPI_PHY0 0x2c91
-#define PCI_DEVICE_ID_INTEL_LYNNFIELD_MCR 0x2c98
-#define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_TAD 0x2c99
-#define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_TEST 0x2c9C
-#define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH0_CTRL 0x2ca0
-#define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH0_ADDR 0x2ca1
-#define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH0_RANK 0x2ca2
-#define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH0_TC 0x2ca3
-#define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH1_CTRL 0x2ca8
-#define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH1_ADDR 0x2ca9
-#define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH1_RANK 0x2caa
-#define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH1_TC 0x2cab
-#define PCI_DEVICE_ID_INTEL_LYNNFIELD_MCR_REV2 0x2d98
-#define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_TAD_REV2 0x2d99
-#define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_RAS_REV2 0x2d9a
-#define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_TEST_REV2 0x2d9c
-#define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH0_CTRL_REV2 0x2da0
-#define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH0_ADDR_REV2 0x2da1
-#define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH0_RANK_REV2 0x2da2
-#define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH0_TC_REV2 0x2da3
-#define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH1_CTRL_REV2 0x2da8
-#define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH1_ADDR_REV2 0x2da9
-#define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH1_RANK_REV2 0x2daa
-#define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH1_TC_REV2 0x2dab
-#define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH2_CTRL_REV2 0x2db0
-#define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH2_ADDR_REV2 0x2db1
-#define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH2_RANK_REV2 0x2db2
-#define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH2_TC_REV2 0x2db3
-#define PCI_DEVICE_ID_INTEL_82855PM_HB 0x3340
-#define PCI_DEVICE_ID_INTEL_IOAT_TBG4 0x3429
-#define PCI_DEVICE_ID_INTEL_IOAT_TBG5 0x342a
-#define PCI_DEVICE_ID_INTEL_IOAT_TBG6 0x342b
-#define PCI_DEVICE_ID_INTEL_IOAT_TBG7 0x342c
-#define PCI_DEVICE_ID_INTEL_X58_HUB_MGMT 0x342e
-#define PCI_DEVICE_ID_INTEL_IOAT_TBG0 0x3430
-#define PCI_DEVICE_ID_INTEL_IOAT_TBG1 0x3431
-#define PCI_DEVICE_ID_INTEL_IOAT_TBG2 0x3432
-#define PCI_DEVICE_ID_INTEL_IOAT_TBG3 0x3433
-#define PCI_DEVICE_ID_INTEL_82830_HB 0x3575
-#define PCI_DEVICE_ID_INTEL_82830_CGC 0x3577
-#define PCI_DEVICE_ID_INTEL_82854_HB 0x358c
-#define PCI_DEVICE_ID_INTEL_82854_IG 0x358e
-#define PCI_DEVICE_ID_INTEL_82855GM_HB 0x3580
-#define PCI_DEVICE_ID_INTEL_82855GM_IG 0x3582
-#define PCI_DEVICE_ID_INTEL_E7520_MCH 0x3590
-#define PCI_DEVICE_ID_INTEL_E7320_MCH 0x3592
-#define PCI_DEVICE_ID_INTEL_MCH_PA 0x3595
-#define PCI_DEVICE_ID_INTEL_MCH_PA1 0x3596
-#define PCI_DEVICE_ID_INTEL_MCH_PB 0x3597
-#define PCI_DEVICE_ID_INTEL_MCH_PB1 0x3598
-#define PCI_DEVICE_ID_INTEL_MCH_PC 0x3599
-#define PCI_DEVICE_ID_INTEL_MCH_PC1 0x359a
-#define PCI_DEVICE_ID_INTEL_E7525_MCH 0x359e
-#define PCI_DEVICE_ID_INTEL_I7300_MCH_ERR 0x360c
-#define PCI_DEVICE_ID_INTEL_I7300_MCH_FB0 0x360f
-#define PCI_DEVICE_ID_INTEL_I7300_MCH_FB1 0x3610
-#define PCI_DEVICE_ID_INTEL_IOAT_CNB 0x360b
-#define PCI_DEVICE_ID_INTEL_FBD_CNB 0x360c
-#define PCI_DEVICE_ID_INTEL_IOAT_JSF0 0x3710
-#define PCI_DEVICE_ID_INTEL_IOAT_JSF1 0x3711
-#define PCI_DEVICE_ID_INTEL_IOAT_JSF2 0x3712
-#define PCI_DEVICE_ID_INTEL_IOAT_JSF3 0x3713
-#define PCI_DEVICE_ID_INTEL_IOAT_JSF4 0x3714
-#define PCI_DEVICE_ID_INTEL_IOAT_JSF5 0x3715
-#define PCI_DEVICE_ID_INTEL_IOAT_JSF6 0x3716
-#define PCI_DEVICE_ID_INTEL_IOAT_JSF7 0x3717
-#define PCI_DEVICE_ID_INTEL_IOAT_JSF8 0x3718
-#define PCI_DEVICE_ID_INTEL_IOAT_JSF9 0x3719
-#define PCI_DEVICE_ID_INTEL_ICH10_0 0x3a14
-#define PCI_DEVICE_ID_INTEL_ICH10_1 0x3a16
-#define PCI_DEVICE_ID_INTEL_ICH10_2 0x3a18
-#define PCI_DEVICE_ID_INTEL_ICH10_3 0x3a1a
-#define PCI_DEVICE_ID_INTEL_ICH10_4 0x3a30
-#define PCI_DEVICE_ID_INTEL_ICH10_5 0x3a60
-#define PCI_DEVICE_ID_INTEL_5_3400_SERIES_LPC_MIN 0x3b00
-#define PCI_DEVICE_ID_INTEL_5_3400_SERIES_LPC_MAX 0x3b1f
-#define PCI_DEVICE_ID_INTEL_IOAT_SNB0 0x3c20
-#define PCI_DEVICE_ID_INTEL_IOAT_SNB1 0x3c21
-#define PCI_DEVICE_ID_INTEL_IOAT_SNB2 0x3c22
-#define PCI_DEVICE_ID_INTEL_IOAT_SNB3 0x3c23
-#define PCI_DEVICE_ID_INTEL_IOAT_SNB4 0x3c24
-#define PCI_DEVICE_ID_INTEL_IOAT_SNB5 0x3c25
-#define PCI_DEVICE_ID_INTEL_IOAT_SNB6 0x3c26
-#define PCI_DEVICE_ID_INTEL_IOAT_SNB7 0x3c27
-#define PCI_DEVICE_ID_INTEL_IOAT_SNB8 0x3c2e
-#define PCI_DEVICE_ID_INTEL_IOAT_SNB9 0x3c2f
-#define PCI_DEVICE_ID_INTEL_IOAT_SNB 0x402f
-#define PCI_DEVICE_ID_INTEL_5100_16 0x65f0
-#define PCI_DEVICE_ID_INTEL_5100_21 0x65f5
-#define PCI_DEVICE_ID_INTEL_5100_22 0x65f6
-#define PCI_DEVICE_ID_INTEL_5400_ERR 0x4030
-#define PCI_DEVICE_ID_INTEL_5400_FBD0 0x4035
-#define PCI_DEVICE_ID_INTEL_5400_FBD1 0x4036
-#define PCI_DEVICE_ID_INTEL_IOAT_SCNB 0x65ff
-#define PCI_DEVICE_ID_INTEL_EP80579_0 0x5031
-#define PCI_DEVICE_ID_INTEL_EP80579_1 0x5032
-#define PCI_DEVICE_ID_INTEL_82371SB_0 0x7000
-#define PCI_DEVICE_ID_INTEL_82371SB_1 0x7010
-#define PCI_DEVICE_ID_INTEL_82371SB_2 0x7020
-#define PCI_DEVICE_ID_INTEL_82437VX 0x7030
-#define PCI_DEVICE_ID_INTEL_82439TX 0x7100
-#define PCI_DEVICE_ID_INTEL_82371AB_0 0x7110
-#define PCI_DEVICE_ID_INTEL_82371AB 0x7111
-#define PCI_DEVICE_ID_INTEL_82371AB_2 0x7112
-#define PCI_DEVICE_ID_INTEL_82371AB_3 0x7113
-#define PCI_DEVICE_ID_INTEL_82810_MC1 0x7120
-#define PCI_DEVICE_ID_INTEL_82810_IG1 0x7121
-#define PCI_DEVICE_ID_INTEL_82810_MC3 0x7122
-#define PCI_DEVICE_ID_INTEL_82810_IG3 0x7123
-#define PCI_DEVICE_ID_INTEL_82810E_MC 0x7124
-#define PCI_DEVICE_ID_INTEL_82810E_IG 0x7125
-#define PCI_DEVICE_ID_INTEL_82443LX_0 0x7180
-#define PCI_DEVICE_ID_INTEL_82443LX_1 0x7181
-#define PCI_DEVICE_ID_INTEL_82443BX_0 0x7190
-#define PCI_DEVICE_ID_INTEL_82443BX_1 0x7191
-#define PCI_DEVICE_ID_INTEL_82443BX_2 0x7192
-#define PCI_DEVICE_ID_INTEL_440MX 0x7195
-#define PCI_DEVICE_ID_INTEL_440MX_6 0x7196
-#define PCI_DEVICE_ID_INTEL_82443MX_0 0x7198
-#define PCI_DEVICE_ID_INTEL_82443MX_1 0x7199
-#define PCI_DEVICE_ID_INTEL_82443MX_3 0x719b
-#define PCI_DEVICE_ID_INTEL_82443GX_0 0x71a0
-#define PCI_DEVICE_ID_INTEL_82443GX_2 0x71a2
-#define PCI_DEVICE_ID_INTEL_82372FB_1 0x7601
-#define PCI_DEVICE_ID_INTEL_SCH_LPC 0x8119
-#define PCI_DEVICE_ID_INTEL_SCH_IDE 0x811a
-#define PCI_DEVICE_ID_INTEL_ITC_LPC 0x8186
-#define PCI_DEVICE_ID_INTEL_82454GX 0x84c4
-#define PCI_DEVICE_ID_INTEL_82450GX 0x84c5
-#define PCI_DEVICE_ID_INTEL_82451NX 0x84ca
-#define PCI_DEVICE_ID_INTEL_82454NX 0x84cb
-#define PCI_DEVICE_ID_INTEL_84460GX 0x84ea
-#define PCI_DEVICE_ID_INTEL_IXP4XX 0x8500
-#define PCI_DEVICE_ID_INTEL_IXP2800 0x9004
-#define PCI_DEVICE_ID_INTEL_S21152BB 0xb152
-
-#define PCI_VENDOR_ID_SCALEMP 0x8686
-#define PCI_DEVICE_ID_SCALEMP_VSMP_CTL 0x1010
-
-#define PCI_VENDOR_ID_COMPUTONE 0x8e0e
-#define PCI_DEVICE_ID_COMPUTONE_IP2EX 0x0291
-#define PCI_DEVICE_ID_COMPUTONE_PG 0x0302
-#define PCI_SUBVENDOR_ID_COMPUTONE 0x8e0e
-#define PCI_SUBDEVICE_ID_COMPUTONE_PG4 0x0001
-#define PCI_SUBDEVICE_ID_COMPUTONE_PG8 0x0002
-#define PCI_SUBDEVICE_ID_COMPUTONE_PG6 0x0003
-
-#define PCI_VENDOR_ID_KTI 0x8e2e
-
-#define PCI_VENDOR_ID_ADAPTEC 0x9004
-#define PCI_DEVICE_ID_ADAPTEC_7810 0x1078
-#define PCI_DEVICE_ID_ADAPTEC_7821 0x2178
-#define PCI_DEVICE_ID_ADAPTEC_38602 0x3860
-#define PCI_DEVICE_ID_ADAPTEC_7850 0x5078
-#define PCI_DEVICE_ID_ADAPTEC_7855 0x5578
-#define PCI_DEVICE_ID_ADAPTEC_3860 0x6038
-#define PCI_DEVICE_ID_ADAPTEC_1480A 0x6075
-#define PCI_DEVICE_ID_ADAPTEC_7860 0x6078
-#define PCI_DEVICE_ID_ADAPTEC_7861 0x6178
-#define PCI_DEVICE_ID_ADAPTEC_7870 0x7078
-#define PCI_DEVICE_ID_ADAPTEC_7871 0x7178
-#define PCI_DEVICE_ID_ADAPTEC_7872 0x7278
-#define PCI_DEVICE_ID_ADAPTEC_7873 0x7378
-#define PCI_DEVICE_ID_ADAPTEC_7874 0x7478
-#define PCI_DEVICE_ID_ADAPTEC_7895 0x7895
-#define PCI_DEVICE_ID_ADAPTEC_7880 0x8078
-#define PCI_DEVICE_ID_ADAPTEC_7881 0x8178
-#define PCI_DEVICE_ID_ADAPTEC_7882 0x8278
-#define PCI_DEVICE_ID_ADAPTEC_7883 0x8378
-#define PCI_DEVICE_ID_ADAPTEC_7884 0x8478
-#define PCI_DEVICE_ID_ADAPTEC_7885 0x8578
-#define PCI_DEVICE_ID_ADAPTEC_7886 0x8678
-#define PCI_DEVICE_ID_ADAPTEC_7887 0x8778
-#define PCI_DEVICE_ID_ADAPTEC_7888 0x8878
-
-#define PCI_VENDOR_ID_ADAPTEC2 0x9005
-#define PCI_DEVICE_ID_ADAPTEC2_2940U2 0x0010
-#define PCI_DEVICE_ID_ADAPTEC2_2930U2 0x0011
-#define PCI_DEVICE_ID_ADAPTEC2_7890B 0x0013
-#define PCI_DEVICE_ID_ADAPTEC2_7890 0x001f
-#define PCI_DEVICE_ID_ADAPTEC2_3940U2 0x0050
-#define PCI_DEVICE_ID_ADAPTEC2_3950U2D 0x0051
-#define PCI_DEVICE_ID_ADAPTEC2_7896 0x005f
-#define PCI_DEVICE_ID_ADAPTEC2_7892A 0x0080
-#define PCI_DEVICE_ID_ADAPTEC2_7892B 0x0081
-#define PCI_DEVICE_ID_ADAPTEC2_7892D 0x0083
-#define PCI_DEVICE_ID_ADAPTEC2_7892P 0x008f
-#define PCI_DEVICE_ID_ADAPTEC2_7899A 0x00c0
-#define PCI_DEVICE_ID_ADAPTEC2_7899B 0x00c1
-#define PCI_DEVICE_ID_ADAPTEC2_7899D 0x00c3
-#define PCI_DEVICE_ID_ADAPTEC2_7899P 0x00cf
-#define PCI_DEVICE_ID_ADAPTEC2_OBSIDIAN 0x0500
-#define PCI_DEVICE_ID_ADAPTEC2_SCAMP 0x0503
-
-#define PCI_VENDOR_ID_HOLTEK 0x9412
-#define PCI_DEVICE_ID_HOLTEK_6565 0x6565
-
-#define PCI_VENDOR_ID_NETMOS 0x9710
-#define PCI_DEVICE_ID_NETMOS_9705 0x9705
-#define PCI_DEVICE_ID_NETMOS_9715 0x9715
-#define PCI_DEVICE_ID_NETMOS_9735 0x9735
-#define PCI_DEVICE_ID_NETMOS_9745 0x9745
-#define PCI_DEVICE_ID_NETMOS_9755 0x9755
-#define PCI_DEVICE_ID_NETMOS_9805 0x9805
-#define PCI_DEVICE_ID_NETMOS_9815 0x9815
-#define PCI_DEVICE_ID_NETMOS_9835 0x9835
-#define PCI_DEVICE_ID_NETMOS_9845 0x9845
-#define PCI_DEVICE_ID_NETMOS_9855 0x9855
-#define PCI_DEVICE_ID_NETMOS_9865 0x9865
-#define PCI_DEVICE_ID_NETMOS_9900 0x9900
-#define PCI_DEVICE_ID_NETMOS_9901 0x9901
-#define PCI_DEVICE_ID_NETMOS_9904 0x9904
-#define PCI_DEVICE_ID_NETMOS_9912 0x9912
-#define PCI_DEVICE_ID_NETMOS_9922 0x9922
-
-#define PCI_VENDOR_ID_3COM_2 0xa727
-
-#define PCI_VENDOR_ID_DIGIUM 0xd161
-#define PCI_DEVICE_ID_DIGIUM_HFC4S 0xb410
-
-#define PCI_SUBVENDOR_ID_EXSYS 0xd84d
-#define PCI_SUBDEVICE_ID_EXSYS_4014 0x4014
-#define PCI_SUBDEVICE_ID_EXSYS_4055 0x4055
-
-#define PCI_VENDOR_ID_TIGERJET 0xe159
-#define PCI_DEVICE_ID_TIGERJET_300 0x0001
-#define PCI_DEVICE_ID_TIGERJET_100 0x0002
-
-#define PCI_VENDOR_ID_XILINX_RME 0xea60
-#define PCI_DEVICE_ID_RME_DIGI32 0x9896
-#define PCI_DEVICE_ID_RME_DIGI32_PRO 0x9897
-#define PCI_DEVICE_ID_RME_DIGI32_8 0x9898
-
-#define PCI_VENDOR_ID_XEN 0x5853
-#define PCI_DEVICE_ID_XEN_PLATFORM 0x0001
-
-#define PCI_VENDOR_ID_OCZ 0x1b85
diff --git a/ANDROID_3.4.5/include/linux/pci_regs.h b/ANDROID_3.4.5/include/linux/pci_regs.h
deleted file mode 100644
index 4b608f54..00000000
--- a/ANDROID_3.4.5/include/linux/pci_regs.h
+++ /dev/null
@@ -1,738 +0,0 @@
-/*
- * pci_regs.h
- *
- * PCI standard defines
- * Copyright 1994, Drew Eckhardt
- * Copyright 1997--1999 Martin Mares <mj@ucw.cz>
- *
- * For more information, please consult the following manuals (look at
- * http://www.pcisig.com/ for how to get them):
- *
- * PCI BIOS Specification
- * PCI Local Bus Specification
- * PCI to PCI Bridge Specification
- * PCI System Design Guide
- *
- * For hypertransport information, please consult the following manuals
- * from http://www.hypertransport.org
- *
- * The Hypertransport I/O Link Specification
- */
-
-#ifndef LINUX_PCI_REGS_H
-#define LINUX_PCI_REGS_H
-
-/*
- * Under PCI, each device has 256 bytes of configuration address space,
- * of which the first 64 bytes are standardized as follows:
- */
-#define PCI_VENDOR_ID 0x00 /* 16 bits */
-#define PCI_DEVICE_ID 0x02 /* 16 bits */
-#define PCI_COMMAND 0x04 /* 16 bits */
-#define PCI_COMMAND_IO 0x1 /* Enable response in I/O space */
-#define PCI_COMMAND_MEMORY 0x2 /* Enable response in Memory space */
-#define PCI_COMMAND_MASTER 0x4 /* Enable bus mastering */
-#define PCI_COMMAND_SPECIAL 0x8 /* Enable response to special cycles */
-#define PCI_COMMAND_INVALIDATE 0x10 /* Use memory write and invalidate */
-#define PCI_COMMAND_VGA_PALETTE 0x20 /* Enable palette snooping */
-#define PCI_COMMAND_PARITY 0x40 /* Enable parity checking */
-#define PCI_COMMAND_WAIT 0x80 /* Enable address/data stepping */
-#define PCI_COMMAND_SERR 0x100 /* Enable SERR */
-#define PCI_COMMAND_FAST_BACK 0x200 /* Enable back-to-back writes */
-#define PCI_COMMAND_INTX_DISABLE 0x400 /* INTx Emulation Disable */
-
-#define PCI_STATUS 0x06 /* 16 bits */
-#define PCI_STATUS_INTERRUPT 0x08 /* Interrupt status */
-#define PCI_STATUS_CAP_LIST 0x10 /* Support Capability List */
-#define PCI_STATUS_66MHZ 0x20 /* Support 66 Mhz PCI 2.1 bus */
-#define PCI_STATUS_UDF 0x40 /* Support User Definable Features [obsolete] */
-#define PCI_STATUS_FAST_BACK 0x80 /* Accept fast-back to back */
-#define PCI_STATUS_PARITY 0x100 /* Detected parity error */
-#define PCI_STATUS_DEVSEL_MASK 0x600 /* DEVSEL timing */
-#define PCI_STATUS_DEVSEL_FAST 0x000
-#define PCI_STATUS_DEVSEL_MEDIUM 0x200
-#define PCI_STATUS_DEVSEL_SLOW 0x400
-#define PCI_STATUS_SIG_TARGET_ABORT 0x800 /* Set on target abort */
-#define PCI_STATUS_REC_TARGET_ABORT 0x1000 /* Master ack of " */
-#define PCI_STATUS_REC_MASTER_ABORT 0x2000 /* Set on master abort */
-#define PCI_STATUS_SIG_SYSTEM_ERROR 0x4000 /* Set when we drive SERR */
-#define PCI_STATUS_DETECTED_PARITY 0x8000 /* Set on parity error */
-
-#define PCI_CLASS_REVISION 0x08 /* High 24 bits are class, low 8 revision */
-#define PCI_REVISION_ID 0x08 /* Revision ID */
-#define PCI_CLASS_PROG 0x09 /* Reg. Level Programming Interface */
-#define PCI_CLASS_DEVICE 0x0a /* Device class */
-
-#define PCI_CACHE_LINE_SIZE 0x0c /* 8 bits */
-#define PCI_LATENCY_TIMER 0x0d /* 8 bits */
-#define PCI_HEADER_TYPE 0x0e /* 8 bits */
-#define PCI_HEADER_TYPE_NORMAL 0
-#define PCI_HEADER_TYPE_BRIDGE 1
-#define PCI_HEADER_TYPE_CARDBUS 2
-
-#define PCI_BIST 0x0f /* 8 bits */
-#define PCI_BIST_CODE_MASK 0x0f /* Return result */
-#define PCI_BIST_START 0x40 /* 1 to start BIST, 2 secs or less */
-#define PCI_BIST_CAPABLE 0x80 /* 1 if BIST capable */
-
-/*
- * Base addresses specify locations in memory or I/O space.
- * Decoded size can be determined by writing a value of
- * 0xffffffff to the register, and reading it back. Only
- * 1 bits are decoded.
- */
-#define PCI_BASE_ADDRESS_0 0x10 /* 32 bits */
-#define PCI_BASE_ADDRESS_1 0x14 /* 32 bits [htype 0,1 only] */
-#define PCI_BASE_ADDRESS_2 0x18 /* 32 bits [htype 0 only] */
-#define PCI_BASE_ADDRESS_3 0x1c /* 32 bits */
-#define PCI_BASE_ADDRESS_4 0x20 /* 32 bits */
-#define PCI_BASE_ADDRESS_5 0x24 /* 32 bits */
-#define PCI_BASE_ADDRESS_SPACE 0x01 /* 0 = memory, 1 = I/O */
-#define PCI_BASE_ADDRESS_SPACE_IO 0x01
-#define PCI_BASE_ADDRESS_SPACE_MEMORY 0x00
-#define PCI_BASE_ADDRESS_MEM_TYPE_MASK 0x06
-#define PCI_BASE_ADDRESS_MEM_TYPE_32 0x00 /* 32 bit address */
-#define PCI_BASE_ADDRESS_MEM_TYPE_1M 0x02 /* Below 1M [obsolete] */
-#define PCI_BASE_ADDRESS_MEM_TYPE_64 0x04 /* 64 bit address */
-#define PCI_BASE_ADDRESS_MEM_PREFETCH 0x08 /* prefetchable? */
-#define PCI_BASE_ADDRESS_MEM_MASK (~0x0fUL)
-#define PCI_BASE_ADDRESS_IO_MASK (~0x03UL)
-/* bit 1 is reserved if address_space = 1 */
-
-/* Header type 0 (normal devices) */
-#define PCI_CARDBUS_CIS 0x28
-#define PCI_SUBSYSTEM_VENDOR_ID 0x2c
-#define PCI_SUBSYSTEM_ID 0x2e
-#define PCI_ROM_ADDRESS 0x30 /* Bits 31..11 are address, 10..1 reserved */
-#define PCI_ROM_ADDRESS_ENABLE 0x01
-#define PCI_ROM_ADDRESS_MASK (~0x7ffUL)
-
-#define PCI_CAPABILITY_LIST 0x34 /* Offset of first capability list entry */
-
-/* 0x35-0x3b are reserved */
-#define PCI_INTERRUPT_LINE 0x3c /* 8 bits */
-#define PCI_INTERRUPT_PIN 0x3d /* 8 bits */
-#define PCI_MIN_GNT 0x3e /* 8 bits */
-#define PCI_MAX_LAT 0x3f /* 8 bits */
-
-/* Header type 1 (PCI-to-PCI bridges) */
-#define PCI_PRIMARY_BUS 0x18 /* Primary bus number */
-#define PCI_SECONDARY_BUS 0x19 /* Secondary bus number */
-#define PCI_SUBORDINATE_BUS 0x1a /* Highest bus number behind the bridge */
-#define PCI_SEC_LATENCY_TIMER 0x1b /* Latency timer for secondary interface */
-#define PCI_IO_BASE 0x1c /* I/O range behind the bridge */
-#define PCI_IO_LIMIT 0x1d
-#define PCI_IO_RANGE_TYPE_MASK 0x0fUL /* I/O bridging type */
-#define PCI_IO_RANGE_TYPE_16 0x00
-#define PCI_IO_RANGE_TYPE_32 0x01
-#define PCI_IO_RANGE_MASK (~0x0fUL)
-#define PCI_SEC_STATUS 0x1e /* Secondary status register, only bit 14 used */
-#define PCI_MEMORY_BASE 0x20 /* Memory range behind */
-#define PCI_MEMORY_LIMIT 0x22
-#define PCI_MEMORY_RANGE_TYPE_MASK 0x0fUL
-#define PCI_MEMORY_RANGE_MASK (~0x0fUL)
-#define PCI_PREF_MEMORY_BASE 0x24 /* Prefetchable memory range behind */
-#define PCI_PREF_MEMORY_LIMIT 0x26
-#define PCI_PREF_RANGE_TYPE_MASK 0x0fUL
-#define PCI_PREF_RANGE_TYPE_32 0x00
-#define PCI_PREF_RANGE_TYPE_64 0x01
-#define PCI_PREF_RANGE_MASK (~0x0fUL)
-#define PCI_PREF_BASE_UPPER32 0x28 /* Upper half of prefetchable memory range */
-#define PCI_PREF_LIMIT_UPPER32 0x2c
-#define PCI_IO_BASE_UPPER16 0x30 /* Upper half of I/O addresses */
-#define PCI_IO_LIMIT_UPPER16 0x32
-/* 0x34 same as for htype 0 */
-/* 0x35-0x3b is reserved */
-#define PCI_ROM_ADDRESS1 0x38 /* Same as PCI_ROM_ADDRESS, but for htype 1 */
-/* 0x3c-0x3d are same as for htype 0 */
-#define PCI_BRIDGE_CONTROL 0x3e
-#define PCI_BRIDGE_CTL_PARITY 0x01 /* Enable parity detection on secondary interface */
-#define PCI_BRIDGE_CTL_SERR 0x02 /* The same for SERR forwarding */
-#define PCI_BRIDGE_CTL_ISA 0x04 /* Enable ISA mode */
-#define PCI_BRIDGE_CTL_VGA 0x08 /* Forward VGA addresses */
-#define PCI_BRIDGE_CTL_MASTER_ABORT 0x20 /* Report master aborts */
-#define PCI_BRIDGE_CTL_BUS_RESET 0x40 /* Secondary bus reset */
-#define PCI_BRIDGE_CTL_FAST_BACK 0x80 /* Fast Back2Back enabled on secondary interface */
-
-/* Header type 2 (CardBus bridges) */
-#define PCI_CB_CAPABILITY_LIST 0x14
-/* 0x15 reserved */
-#define PCI_CB_SEC_STATUS 0x16 /* Secondary status */
-#define PCI_CB_PRIMARY_BUS 0x18 /* PCI bus number */
-#define PCI_CB_CARD_BUS 0x19 /* CardBus bus number */
-#define PCI_CB_SUBORDINATE_BUS 0x1a /* Subordinate bus number */
-#define PCI_CB_LATENCY_TIMER 0x1b /* CardBus latency timer */
-#define PCI_CB_MEMORY_BASE_0 0x1c
-#define PCI_CB_MEMORY_LIMIT_0 0x20
-#define PCI_CB_MEMORY_BASE_1 0x24
-#define PCI_CB_MEMORY_LIMIT_1 0x28
-#define PCI_CB_IO_BASE_0 0x2c
-#define PCI_CB_IO_BASE_0_HI 0x2e
-#define PCI_CB_IO_LIMIT_0 0x30
-#define PCI_CB_IO_LIMIT_0_HI 0x32
-#define PCI_CB_IO_BASE_1 0x34
-#define PCI_CB_IO_BASE_1_HI 0x36
-#define PCI_CB_IO_LIMIT_1 0x38
-#define PCI_CB_IO_LIMIT_1_HI 0x3a
-#define PCI_CB_IO_RANGE_MASK (~0x03UL)
-/* 0x3c-0x3d are same as for htype 0 */
-#define PCI_CB_BRIDGE_CONTROL 0x3e
-#define PCI_CB_BRIDGE_CTL_PARITY 0x01 /* Similar to standard bridge control register */
-#define PCI_CB_BRIDGE_CTL_SERR 0x02
-#define PCI_CB_BRIDGE_CTL_ISA 0x04
-#define PCI_CB_BRIDGE_CTL_VGA 0x08
-#define PCI_CB_BRIDGE_CTL_MASTER_ABORT 0x20
-#define PCI_CB_BRIDGE_CTL_CB_RESET 0x40 /* CardBus reset */
-#define PCI_CB_BRIDGE_CTL_16BIT_INT 0x80 /* Enable interrupt for 16-bit cards */
-#define PCI_CB_BRIDGE_CTL_PREFETCH_MEM0 0x100 /* Prefetch enable for both memory regions */
-#define PCI_CB_BRIDGE_CTL_PREFETCH_MEM1 0x200
-#define PCI_CB_BRIDGE_CTL_POST_WRITES 0x400
-#define PCI_CB_SUBSYSTEM_VENDOR_ID 0x40
-#define PCI_CB_SUBSYSTEM_ID 0x42
-#define PCI_CB_LEGACY_MODE_BASE 0x44 /* 16-bit PC Card legacy mode base address (ExCa) */
-/* 0x48-0x7f reserved */
-
-/* Capability lists */
-
-#define PCI_CAP_LIST_ID 0 /* Capability ID */
-#define PCI_CAP_ID_PM 0x01 /* Power Management */
-#define PCI_CAP_ID_AGP 0x02 /* Accelerated Graphics Port */
-#define PCI_CAP_ID_VPD 0x03 /* Vital Product Data */
-#define PCI_CAP_ID_SLOTID 0x04 /* Slot Identification */
-#define PCI_CAP_ID_MSI 0x05 /* Message Signalled Interrupts */
-#define PCI_CAP_ID_CHSWP 0x06 /* CompactPCI HotSwap */
-#define PCI_CAP_ID_PCIX 0x07 /* PCI-X */
-#define PCI_CAP_ID_HT 0x08 /* HyperTransport */
-#define PCI_CAP_ID_VNDR 0x09 /* Vendor specific */
-#define PCI_CAP_ID_DBG 0x0A /* Debug port */
-#define PCI_CAP_ID_CCRC 0x0B /* CompactPCI Central Resource Control */
-#define PCI_CAP_ID_SHPC 0x0C /* PCI Standard Hot-Plug Controller */
-#define PCI_CAP_ID_SSVID 0x0D /* Bridge subsystem vendor/device ID */
-#define PCI_CAP_ID_AGP3 0x0E /* AGP Target PCI-PCI bridge */
-#define PCI_CAP_ID_EXP 0x10 /* PCI Express */
-#define PCI_CAP_ID_MSIX 0x11 /* MSI-X */
-#define PCI_CAP_ID_AF 0x13 /* PCI Advanced Features */
-#define PCI_CAP_LIST_NEXT 1 /* Next capability in the list */
-#define PCI_CAP_FLAGS 2 /* Capability defined flags (16 bits) */
-#define PCI_CAP_SIZEOF 4
-
-/* Power Management Registers */
-
-#define PCI_PM_PMC 2 /* PM Capabilities Register */
-#define PCI_PM_CAP_VER_MASK 0x0007 /* Version */
-#define PCI_PM_CAP_PME_CLOCK 0x0008 /* PME clock required */
-#define PCI_PM_CAP_RESERVED 0x0010 /* Reserved field */
-#define PCI_PM_CAP_DSI 0x0020 /* Device specific initialization */
-#define PCI_PM_CAP_AUX_POWER 0x01C0 /* Auxiliary power support mask */
-#define PCI_PM_CAP_D1 0x0200 /* D1 power state support */
-#define PCI_PM_CAP_D2 0x0400 /* D2 power state support */
-#define PCI_PM_CAP_PME 0x0800 /* PME pin supported */
-#define PCI_PM_CAP_PME_MASK 0xF800 /* PME Mask of all supported states */
-#define PCI_PM_CAP_PME_D0 0x0800 /* PME# from D0 */
-#define PCI_PM_CAP_PME_D1 0x1000 /* PME# from D1 */
-#define PCI_PM_CAP_PME_D2 0x2000 /* PME# from D2 */
-#define PCI_PM_CAP_PME_D3 0x4000 /* PME# from D3 (hot) */
-#define PCI_PM_CAP_PME_D3cold 0x8000 /* PME# from D3 (cold) */
-#define PCI_PM_CAP_PME_SHIFT 11 /* Start of the PME Mask in PMC */
-#define PCI_PM_CTRL 4 /* PM control and status register */
-#define PCI_PM_CTRL_STATE_MASK 0x0003 /* Current power state (D0 to D3) */
-#define PCI_PM_CTRL_NO_SOFT_RESET 0x0008 /* No reset for D3hot->D0 */
-#define PCI_PM_CTRL_PME_ENABLE 0x0100 /* PME pin enable */
-#define PCI_PM_CTRL_DATA_SEL_MASK 0x1e00 /* Data select (??) */
-#define PCI_PM_CTRL_DATA_SCALE_MASK 0x6000 /* Data scale (??) */
-#define PCI_PM_CTRL_PME_STATUS 0x8000 /* PME pin status */
-#define PCI_PM_PPB_EXTENSIONS 6 /* PPB support extensions (??) */
-#define PCI_PM_PPB_B2_B3 0x40 /* Stop clock when in D3hot (??) */
-#define PCI_PM_BPCC_ENABLE 0x80 /* Bus power/clock control enable (??) */
-#define PCI_PM_DATA_REGISTER 7 /* (??) */
-#define PCI_PM_SIZEOF 8
-
-/* AGP registers */
-
-#define PCI_AGP_VERSION 2 /* BCD version number */
-#define PCI_AGP_RFU 3 /* Rest of capability flags */
-#define PCI_AGP_STATUS 4 /* Status register */
-#define PCI_AGP_STATUS_RQ_MASK 0xff000000 /* Maximum number of requests - 1 */
-#define PCI_AGP_STATUS_SBA 0x0200 /* Sideband addressing supported */
-#define PCI_AGP_STATUS_64BIT 0x0020 /* 64-bit addressing supported */
-#define PCI_AGP_STATUS_FW 0x0010 /* FW transfers supported */
-#define PCI_AGP_STATUS_RATE4 0x0004 /* 4x transfer rate supported */
-#define PCI_AGP_STATUS_RATE2 0x0002 /* 2x transfer rate supported */
-#define PCI_AGP_STATUS_RATE1 0x0001 /* 1x transfer rate supported */
-#define PCI_AGP_COMMAND 8 /* Control register */
-#define PCI_AGP_COMMAND_RQ_MASK 0xff000000 /* Master: Maximum number of requests */
-#define PCI_AGP_COMMAND_SBA 0x0200 /* Sideband addressing enabled */
-#define PCI_AGP_COMMAND_AGP 0x0100 /* Allow processing of AGP transactions */
-#define PCI_AGP_COMMAND_64BIT 0x0020 /* Allow processing of 64-bit addresses */
-#define PCI_AGP_COMMAND_FW 0x0010 /* Force FW transfers */
-#define PCI_AGP_COMMAND_RATE4 0x0004 /* Use 4x rate */
-#define PCI_AGP_COMMAND_RATE2 0x0002 /* Use 2x rate */
-#define PCI_AGP_COMMAND_RATE1 0x0001 /* Use 1x rate */
-#define PCI_AGP_SIZEOF 12
-
-/* Vital Product Data */
-
-#define PCI_VPD_ADDR 2 /* Address to access (15 bits!) */
-#define PCI_VPD_ADDR_MASK 0x7fff /* Address mask */
-#define PCI_VPD_ADDR_F 0x8000 /* Write 0, 1 indicates completion */
-#define PCI_VPD_DATA 4 /* 32-bits of data returned here */
-
-/* Slot Identification */
-
-#define PCI_SID_ESR 2 /* Expansion Slot Register */
-#define PCI_SID_ESR_NSLOTS 0x1f /* Number of expansion slots available */
-#define PCI_SID_ESR_FIC 0x20 /* First In Chassis Flag */
-#define PCI_SID_CHASSIS_NR 3 /* Chassis Number */
-
-/* Message Signalled Interrupts registers */
-
-#define PCI_MSI_FLAGS 2 /* Various flags */
-#define PCI_MSI_FLAGS_64BIT 0x80 /* 64-bit addresses allowed */
-#define PCI_MSI_FLAGS_QSIZE 0x70 /* Message queue size configured */
-#define PCI_MSI_FLAGS_QMASK 0x0e /* Maximum queue size available */
-#define PCI_MSI_FLAGS_ENABLE 0x01 /* MSI feature enabled */
-#define PCI_MSI_FLAGS_MASKBIT 0x100 /* 64-bit mask bits allowed */
-#define PCI_MSI_RFU 3 /* Rest of capability flags */
-#define PCI_MSI_ADDRESS_LO 4 /* Lower 32 bits */
-#define PCI_MSI_ADDRESS_HI 8 /* Upper 32 bits (if PCI_MSI_FLAGS_64BIT set) */
-#define PCI_MSI_DATA_32 8 /* 16 bits of data for 32-bit devices */
-#define PCI_MSI_MASK_32 12 /* Mask bits register for 32-bit devices */
-#define PCI_MSI_DATA_64 12 /* 16 bits of data for 64-bit devices */
-#define PCI_MSI_MASK_64 16 /* Mask bits register for 64-bit devices */
-
-/* MSI-X registers */
-#define PCI_MSIX_FLAGS 2
-#define PCI_MSIX_FLAGS_QSIZE 0x7FF
-#define PCI_MSIX_FLAGS_ENABLE (1 << 15)
-#define PCI_MSIX_FLAGS_MASKALL (1 << 14)
-#define PCI_MSIX_TABLE 4
-#define PCI_MSIX_PBA 8
-#define PCI_MSIX_FLAGS_BIRMASK (7 << 0)
-
-/* MSI-X entry's format */
-#define PCI_MSIX_ENTRY_SIZE 16
-#define PCI_MSIX_ENTRY_LOWER_ADDR 0
-#define PCI_MSIX_ENTRY_UPPER_ADDR 4
-#define PCI_MSIX_ENTRY_DATA 8
-#define PCI_MSIX_ENTRY_VECTOR_CTRL 12
-#define PCI_MSIX_ENTRY_CTRL_MASKBIT 1
-
-/* CompactPCI Hotswap Register */
-
-#define PCI_CHSWP_CSR 2 /* Control and Status Register */
-#define PCI_CHSWP_DHA 0x01 /* Device Hiding Arm */
-#define PCI_CHSWP_EIM 0x02 /* ENUM# Signal Mask */
-#define PCI_CHSWP_PIE 0x04 /* Pending Insert or Extract */
-#define PCI_CHSWP_LOO 0x08 /* LED On / Off */
-#define PCI_CHSWP_PI 0x30 /* Programming Interface */
-#define PCI_CHSWP_EXT 0x40 /* ENUM# status - extraction */
-#define PCI_CHSWP_INS 0x80 /* ENUM# status - insertion */
-
-/* PCI Advanced Feature registers */
-
-#define PCI_AF_LENGTH 2
-#define PCI_AF_CAP 3
-#define PCI_AF_CAP_TP 0x01
-#define PCI_AF_CAP_FLR 0x02
-#define PCI_AF_CTRL 4
-#define PCI_AF_CTRL_FLR 0x01
-#define PCI_AF_STATUS 5
-#define PCI_AF_STATUS_TP 0x01
-
-/* PCI-X registers */
-
-#define PCI_X_CMD 2 /* Modes & Features */
-#define PCI_X_CMD_DPERR_E 0x0001 /* Data Parity Error Recovery Enable */
-#define PCI_X_CMD_ERO 0x0002 /* Enable Relaxed Ordering */
-#define PCI_X_CMD_READ_512 0x0000 /* 512 byte maximum read byte count */
-#define PCI_X_CMD_READ_1K 0x0004 /* 1Kbyte maximum read byte count */
-#define PCI_X_CMD_READ_2K 0x0008 /* 2Kbyte maximum read byte count */
-#define PCI_X_CMD_READ_4K 0x000c /* 4Kbyte maximum read byte count */
-#define PCI_X_CMD_MAX_READ 0x000c /* Max Memory Read Byte Count */
- /* Max # of outstanding split transactions */
-#define PCI_X_CMD_SPLIT_1 0x0000 /* Max 1 */
-#define PCI_X_CMD_SPLIT_2 0x0010 /* Max 2 */
-#define PCI_X_CMD_SPLIT_3 0x0020 /* Max 3 */
-#define PCI_X_CMD_SPLIT_4 0x0030 /* Max 4 */
-#define PCI_X_CMD_SPLIT_8 0x0040 /* Max 8 */
-#define PCI_X_CMD_SPLIT_12 0x0050 /* Max 12 */
-#define PCI_X_CMD_SPLIT_16 0x0060 /* Max 16 */
-#define PCI_X_CMD_SPLIT_32 0x0070 /* Max 32 */
-#define PCI_X_CMD_MAX_SPLIT 0x0070 /* Max Outstanding Split Transactions */
-#define PCI_X_CMD_VERSION(x) (((x) >> 12) & 3) /* Version */
-#define PCI_X_STATUS 4 /* PCI-X capabilities */
-#define PCI_X_STATUS_DEVFN 0x000000ff /* A copy of devfn */
-#define PCI_X_STATUS_BUS 0x0000ff00 /* A copy of bus nr */
-#define PCI_X_STATUS_64BIT 0x00010000 /* 64-bit device */
-#define PCI_X_STATUS_133MHZ 0x00020000 /* 133 MHz capable */
-#define PCI_X_STATUS_SPL_DISC 0x00040000 /* Split Completion Discarded */
-#define PCI_X_STATUS_UNX_SPL 0x00080000 /* Unexpected Split Completion */
-#define PCI_X_STATUS_COMPLEX 0x00100000 /* Device Complexity */
-#define PCI_X_STATUS_MAX_READ 0x00600000 /* Designed Max Memory Read Count */
-#define PCI_X_STATUS_MAX_SPLIT 0x03800000 /* Designed Max Outstanding Split Transactions */
-#define PCI_X_STATUS_MAX_CUM 0x1c000000 /* Designed Max Cumulative Read Size */
-#define PCI_X_STATUS_SPL_ERR 0x20000000 /* Rcvd Split Completion Error Msg */
-#define PCI_X_STATUS_266MHZ 0x40000000 /* 266 MHz capable */
-#define PCI_X_STATUS_533MHZ 0x80000000 /* 533 MHz capable */
-
-/* PCI Bridge Subsystem ID registers */
-
-#define PCI_SSVID_VENDOR_ID 4 /* PCI-Bridge subsystem vendor id register */
-#define PCI_SSVID_DEVICE_ID 6 /* PCI-Bridge subsystem device id register */
-
-/* PCI Express capability registers */
-
-#define PCI_EXP_FLAGS 2 /* Capabilities register */
-#define PCI_EXP_FLAGS_VERS 0x000f /* Capability version */
-#define PCI_EXP_FLAGS_TYPE 0x00f0 /* Device/Port type */
-#define PCI_EXP_TYPE_ENDPOINT 0x0 /* Express Endpoint */
-#define PCI_EXP_TYPE_LEG_END 0x1 /* Legacy Endpoint */
-#define PCI_EXP_TYPE_ROOT_PORT 0x4 /* Root Port */
-#define PCI_EXP_TYPE_UPSTREAM 0x5 /* Upstream Port */
-#define PCI_EXP_TYPE_DOWNSTREAM 0x6 /* Downstream Port */
-#define PCI_EXP_TYPE_PCI_BRIDGE 0x7 /* PCI/PCI-X Bridge */
-#define PCI_EXP_TYPE_PCIE_BRIDGE 0x8 /* PCI/PCI-X to PCIE Bridge */
-#define PCI_EXP_TYPE_RC_END 0x9 /* Root Complex Integrated Endpoint */
-#define PCI_EXP_TYPE_RC_EC 0xa /* Root Complex Event Collector */
-#define PCI_EXP_FLAGS_SLOT 0x0100 /* Slot implemented */
-#define PCI_EXP_FLAGS_IRQ 0x3e00 /* Interrupt message number */
-#define PCI_EXP_DEVCAP 4 /* Device capabilities */
-#define PCI_EXP_DEVCAP_PAYLOAD 0x07 /* Max_Payload_Size */
-#define PCI_EXP_DEVCAP_PHANTOM 0x18 /* Phantom functions */
-#define PCI_EXP_DEVCAP_EXT_TAG 0x20 /* Extended tags */
-#define PCI_EXP_DEVCAP_L0S 0x1c0 /* L0s Acceptable Latency */
-#define PCI_EXP_DEVCAP_L1 0xe00 /* L1 Acceptable Latency */
-#define PCI_EXP_DEVCAP_ATN_BUT 0x1000 /* Attention Button Present */
-#define PCI_EXP_DEVCAP_ATN_IND 0x2000 /* Attention Indicator Present */
-#define PCI_EXP_DEVCAP_PWR_IND 0x4000 /* Power Indicator Present */
-#define PCI_EXP_DEVCAP_RBER 0x8000 /* Role-Based Error Reporting */
-#define PCI_EXP_DEVCAP_PWR_VAL 0x3fc0000 /* Slot Power Limit Value */
-#define PCI_EXP_DEVCAP_PWR_SCL 0xc000000 /* Slot Power Limit Scale */
-#define PCI_EXP_DEVCAP_FLR 0x10000000 /* Function Level Reset */
-#define PCI_EXP_DEVCTL 8 /* Device Control */
-#define PCI_EXP_DEVCTL_CERE 0x0001 /* Correctable Error Reporting En. */
-#define PCI_EXP_DEVCTL_NFERE 0x0002 /* Non-Fatal Error Reporting Enable */
-#define PCI_EXP_DEVCTL_FERE 0x0004 /* Fatal Error Reporting Enable */
-#define PCI_EXP_DEVCTL_URRE 0x0008 /* Unsupported Request Reporting En. */
-#define PCI_EXP_DEVCTL_RELAX_EN 0x0010 /* Enable relaxed ordering */
-#define PCI_EXP_DEVCTL_PAYLOAD 0x00e0 /* Max_Payload_Size */
-#define PCI_EXP_DEVCTL_EXT_TAG 0x0100 /* Extended Tag Field Enable */
-#define PCI_EXP_DEVCTL_PHANTOM 0x0200 /* Phantom Functions Enable */
-#define PCI_EXP_DEVCTL_AUX_PME 0x0400 /* Auxiliary Power PM Enable */
-#define PCI_EXP_DEVCTL_NOSNOOP_EN 0x0800 /* Enable No Snoop */
-#define PCI_EXP_DEVCTL_READRQ 0x7000 /* Max_Read_Request_Size */
-#define PCI_EXP_DEVCTL_BCR_FLR 0x8000 /* Bridge Configuration Retry / FLR */
-#define PCI_EXP_DEVSTA 10 /* Device Status */
-#define PCI_EXP_DEVSTA_CED 0x01 /* Correctable Error Detected */
-#define PCI_EXP_DEVSTA_NFED 0x02 /* Non-Fatal Error Detected */
-#define PCI_EXP_DEVSTA_FED 0x04 /* Fatal Error Detected */
-#define PCI_EXP_DEVSTA_URD 0x08 /* Unsupported Request Detected */
-#define PCI_EXP_DEVSTA_AUXPD 0x10 /* AUX Power Detected */
-#define PCI_EXP_DEVSTA_TRPND 0x20 /* Transactions Pending */
-#define PCI_EXP_LNKCAP 12 /* Link Capabilities */
-#define PCI_EXP_LNKCAP_SLS 0x0000000f /* Supported Link Speeds */
-#define PCI_EXP_LNKCAP_MLW 0x000003f0 /* Maximum Link Width */
-#define PCI_EXP_LNKCAP_ASPMS 0x00000c00 /* ASPM Support */
-#define PCI_EXP_LNKCAP_L0SEL 0x00007000 /* L0s Exit Latency */
-#define PCI_EXP_LNKCAP_L1EL 0x00038000 /* L1 Exit Latency */
-#define PCI_EXP_LNKCAP_CLKPM 0x00040000 /* L1 Clock Power Management */
-#define PCI_EXP_LNKCAP_SDERC 0x00080000 /* Surprise Down Error Reporting Capable */
-#define PCI_EXP_LNKCAP_DLLLARC 0x00100000 /* Data Link Layer Link Active Reporting Capable */
-#define PCI_EXP_LNKCAP_LBNC 0x00200000 /* Link Bandwidth Notification Capability */
-#define PCI_EXP_LNKCAP_PN 0xff000000 /* Port Number */
-#define PCI_EXP_LNKCTL 16 /* Link Control */
-#define PCI_EXP_LNKCTL_ASPMC 0x0003 /* ASPM Control */
-#define PCI_EXP_LNKCTL_RCB 0x0008 /* Read Completion Boundary */
-#define PCI_EXP_LNKCTL_LD 0x0010 /* Link Disable */
-#define PCI_EXP_LNKCTL_RL 0x0020 /* Retrain Link */
-#define PCI_EXP_LNKCTL_CCC 0x0040 /* Common Clock Configuration */
-#define PCI_EXP_LNKCTL_ES 0x0080 /* Extended Synch */
-#define PCI_EXP_LNKCTL_CLKREQ_EN 0x100 /* Enable clkreq */
-#define PCI_EXP_LNKCTL_HAWD 0x0200 /* Hardware Autonomous Width Disable */
-#define PCI_EXP_LNKCTL_LBMIE 0x0400 /* Link Bandwidth Management Interrupt Enable */
-#define PCI_EXP_LNKCTL_LABIE 0x0800 /* Lnk Autonomous Bandwidth Interrupt Enable */
-#define PCI_EXP_LNKSTA 18 /* Link Status */
-#define PCI_EXP_LNKSTA_CLS 0x000f /* Current Link Speed */
-#define PCI_EXP_LNKSTA_CLS_2_5GB 0x01 /* Current Link Speed 2.5GT/s */
-#define PCI_EXP_LNKSTA_CLS_5_0GB 0x02 /* Current Link Speed 5.0GT/s */
-#define PCI_EXP_LNKSTA_NLW 0x03f0 /* Nogotiated Link Width */
-#define PCI_EXP_LNKSTA_NLW_SHIFT 4 /* start of NLW mask in link status */
-#define PCI_EXP_LNKSTA_LT 0x0800 /* Link Training */
-#define PCI_EXP_LNKSTA_SLC 0x1000 /* Slot Clock Configuration */
-#define PCI_EXP_LNKSTA_DLLLA 0x2000 /* Data Link Layer Link Active */
-#define PCI_EXP_LNKSTA_LBMS 0x4000 /* Link Bandwidth Management Status */
-#define PCI_EXP_LNKSTA_LABS 0x8000 /* Link Autonomous Bandwidth Status */
-#define PCI_EXP_SLTCAP 20 /* Slot Capabilities */
-#define PCI_EXP_SLTCAP_ABP 0x00000001 /* Attention Button Present */
-#define PCI_EXP_SLTCAP_PCP 0x00000002 /* Power Controller Present */
-#define PCI_EXP_SLTCAP_MRLSP 0x00000004 /* MRL Sensor Present */
-#define PCI_EXP_SLTCAP_AIP 0x00000008 /* Attention Indicator Present */
-#define PCI_EXP_SLTCAP_PIP 0x00000010 /* Power Indicator Present */
-#define PCI_EXP_SLTCAP_HPS 0x00000020 /* Hot-Plug Surprise */
-#define PCI_EXP_SLTCAP_HPC 0x00000040 /* Hot-Plug Capable */
-#define PCI_EXP_SLTCAP_SPLV 0x00007f80 /* Slot Power Limit Value */
-#define PCI_EXP_SLTCAP_SPLS 0x00018000 /* Slot Power Limit Scale */
-#define PCI_EXP_SLTCAP_EIP 0x00020000 /* Electromechanical Interlock Present */
-#define PCI_EXP_SLTCAP_NCCS 0x00040000 /* No Command Completed Support */
-#define PCI_EXP_SLTCAP_PSN 0xfff80000 /* Physical Slot Number */
-#define PCI_EXP_SLTCTL 24 /* Slot Control */
-#define PCI_EXP_SLTCTL_ABPE 0x0001 /* Attention Button Pressed Enable */
-#define PCI_EXP_SLTCTL_PFDE 0x0002 /* Power Fault Detected Enable */
-#define PCI_EXP_SLTCTL_MRLSCE 0x0004 /* MRL Sensor Changed Enable */
-#define PCI_EXP_SLTCTL_PDCE 0x0008 /* Presence Detect Changed Enable */
-#define PCI_EXP_SLTCTL_CCIE 0x0010 /* Command Completed Interrupt Enable */
-#define PCI_EXP_SLTCTL_HPIE 0x0020 /* Hot-Plug Interrupt Enable */
-#define PCI_EXP_SLTCTL_AIC 0x00c0 /* Attention Indicator Control */
-#define PCI_EXP_SLTCTL_PIC 0x0300 /* Power Indicator Control */
-#define PCI_EXP_SLTCTL_PCC 0x0400 /* Power Controller Control */
-#define PCI_EXP_SLTCTL_EIC 0x0800 /* Electromechanical Interlock Control */
-#define PCI_EXP_SLTCTL_DLLSCE 0x1000 /* Data Link Layer State Changed Enable */
-#define PCI_EXP_SLTSTA 26 /* Slot Status */
-#define PCI_EXP_SLTSTA_ABP 0x0001 /* Attention Button Pressed */
-#define PCI_EXP_SLTSTA_PFD 0x0002 /* Power Fault Detected */
-#define PCI_EXP_SLTSTA_MRLSC 0x0004 /* MRL Sensor Changed */
-#define PCI_EXP_SLTSTA_PDC 0x0008 /* Presence Detect Changed */
-#define PCI_EXP_SLTSTA_CC 0x0010 /* Command Completed */
-#define PCI_EXP_SLTSTA_MRLSS 0x0020 /* MRL Sensor State */
-#define PCI_EXP_SLTSTA_PDS 0x0040 /* Presence Detect State */
-#define PCI_EXP_SLTSTA_EIS 0x0080 /* Electromechanical Interlock Status */
-#define PCI_EXP_SLTSTA_DLLSC 0x0100 /* Data Link Layer State Changed */
-#define PCI_EXP_RTCTL 28 /* Root Control */
-#define PCI_EXP_RTCTL_SECEE 0x01 /* System Error on Correctable Error */
-#define PCI_EXP_RTCTL_SENFEE 0x02 /* System Error on Non-Fatal Error */
-#define PCI_EXP_RTCTL_SEFEE 0x04 /* System Error on Fatal Error */
-#define PCI_EXP_RTCTL_PMEIE 0x08 /* PME Interrupt Enable */
-#define PCI_EXP_RTCTL_CRSSVE 0x10 /* CRS Software Visibility Enable */
-#define PCI_EXP_RTCAP 30 /* Root Capabilities */
-#define PCI_EXP_RTSTA 32 /* Root Status */
-#define PCI_EXP_RTSTA_PME 0x10000 /* PME status */
-#define PCI_EXP_RTSTA_PENDING 0x20000 /* PME pending */
-#define PCI_EXP_DEVCAP2 36 /* Device Capabilities 2 */
-#define PCI_EXP_DEVCAP2_ARI 0x20 /* Alternative Routing-ID */
-#define PCI_EXP_DEVCAP2_LTR 0x800 /* Latency tolerance reporting */
-#define PCI_EXP_OBFF_MASK 0xc0000 /* OBFF support mechanism */
-#define PCI_EXP_OBFF_MSG 0x40000 /* New message signaling */
-#define PCI_EXP_OBFF_WAKE 0x80000 /* Re-use WAKE# for OBFF */
-#define PCI_EXP_DEVCTL2 40 /* Device Control 2 */
-#define PCI_EXP_DEVCTL2_ARI 0x20 /* Alternative Routing-ID */
-#define PCI_EXP_IDO_REQ_EN 0x100 /* ID-based ordering request enable */
-#define PCI_EXP_IDO_CMP_EN 0x200 /* ID-based ordering completion enable */
-#define PCI_EXP_LTR_EN 0x400 /* Latency tolerance reporting */
-#define PCI_EXP_OBFF_MSGA_EN 0x2000 /* OBFF enable with Message type A */
-#define PCI_EXP_OBFF_MSGB_EN 0x4000 /* OBFF enable with Message type B */
-#define PCI_EXP_OBFF_WAKE_EN 0x6000 /* OBFF using WAKE# signaling */
-#define PCI_EXP_LNKCTL2 48 /* Link Control 2 */
-#define PCI_EXP_SLTCTL2 56 /* Slot Control 2 */
-
-/* Extended Capabilities (PCI-X 2.0 and Express) */
-#define PCI_EXT_CAP_ID(header) (header & 0x0000ffff)
-#define PCI_EXT_CAP_VER(header) ((header >> 16) & 0xf)
-#define PCI_EXT_CAP_NEXT(header) ((header >> 20) & 0xffc)
-
-#define PCI_EXT_CAP_ID_ERR 1
-#define PCI_EXT_CAP_ID_VC 2
-#define PCI_EXT_CAP_ID_DSN 3
-#define PCI_EXT_CAP_ID_PWR 4
-#define PCI_EXT_CAP_ID_VNDR 11
-#define PCI_EXT_CAP_ID_ACS 13
-#define PCI_EXT_CAP_ID_ARI 14
-#define PCI_EXT_CAP_ID_ATS 15
-#define PCI_EXT_CAP_ID_SRIOV 16
-#define PCI_EXT_CAP_ID_PRI 19
-#define PCI_EXT_CAP_ID_LTR 24
-#define PCI_EXT_CAP_ID_PASID 27
-
-/* Advanced Error Reporting */
-#define PCI_ERR_UNCOR_STATUS 4 /* Uncorrectable Error Status */
-#define PCI_ERR_UNC_TRAIN 0x00000001 /* Training */
-#define PCI_ERR_UNC_DLP 0x00000010 /* Data Link Protocol */
-#define PCI_ERR_UNC_POISON_TLP 0x00001000 /* Poisoned TLP */
-#define PCI_ERR_UNC_FCP 0x00002000 /* Flow Control Protocol */
-#define PCI_ERR_UNC_COMP_TIME 0x00004000 /* Completion Timeout */
-#define PCI_ERR_UNC_COMP_ABORT 0x00008000 /* Completer Abort */
-#define PCI_ERR_UNC_UNX_COMP 0x00010000 /* Unexpected Completion */
-#define PCI_ERR_UNC_RX_OVER 0x00020000 /* Receiver Overflow */
-#define PCI_ERR_UNC_MALF_TLP 0x00040000 /* Malformed TLP */
-#define PCI_ERR_UNC_ECRC 0x00080000 /* ECRC Error Status */
-#define PCI_ERR_UNC_UNSUP 0x00100000 /* Unsupported Request */
-#define PCI_ERR_UNCOR_MASK 8 /* Uncorrectable Error Mask */
- /* Same bits as above */
-#define PCI_ERR_UNCOR_SEVER 12 /* Uncorrectable Error Severity */
- /* Same bits as above */
-#define PCI_ERR_COR_STATUS 16 /* Correctable Error Status */
-#define PCI_ERR_COR_RCVR 0x00000001 /* Receiver Error Status */
-#define PCI_ERR_COR_BAD_TLP 0x00000040 /* Bad TLP Status */
-#define PCI_ERR_COR_BAD_DLLP 0x00000080 /* Bad DLLP Status */
-#define PCI_ERR_COR_REP_ROLL 0x00000100 /* REPLAY_NUM Rollover */
-#define PCI_ERR_COR_REP_TIMER 0x00001000 /* Replay Timer Timeout */
-#define PCI_ERR_COR_MASK 20 /* Correctable Error Mask */
- /* Same bits as above */
-#define PCI_ERR_CAP 24 /* Advanced Error Capabilities */
-#define PCI_ERR_CAP_FEP(x) ((x) & 31) /* First Error Pointer */
-#define PCI_ERR_CAP_ECRC_GENC 0x00000020 /* ECRC Generation Capable */
-#define PCI_ERR_CAP_ECRC_GENE 0x00000040 /* ECRC Generation Enable */
-#define PCI_ERR_CAP_ECRC_CHKC 0x00000080 /* ECRC Check Capable */
-#define PCI_ERR_CAP_ECRC_CHKE 0x00000100 /* ECRC Check Enable */
-#define PCI_ERR_HEADER_LOG 28 /* Header Log Register (16 bytes) */
-#define PCI_ERR_ROOT_COMMAND 44 /* Root Error Command */
-/* Correctable Err Reporting Enable */
-#define PCI_ERR_ROOT_CMD_COR_EN 0x00000001
-/* Non-fatal Err Reporting Enable */
-#define PCI_ERR_ROOT_CMD_NONFATAL_EN 0x00000002
-/* Fatal Err Reporting Enable */
-#define PCI_ERR_ROOT_CMD_FATAL_EN 0x00000004
-#define PCI_ERR_ROOT_STATUS 48
-#define PCI_ERR_ROOT_COR_RCV 0x00000001 /* ERR_COR Received */
-/* Multi ERR_COR Received */
-#define PCI_ERR_ROOT_MULTI_COR_RCV 0x00000002
-/* ERR_FATAL/NONFATAL Recevied */
-#define PCI_ERR_ROOT_UNCOR_RCV 0x00000004
-/* Multi ERR_FATAL/NONFATAL Recevied */
-#define PCI_ERR_ROOT_MULTI_UNCOR_RCV 0x00000008
-#define PCI_ERR_ROOT_FIRST_FATAL 0x00000010 /* First Fatal */
-#define PCI_ERR_ROOT_NONFATAL_RCV 0x00000020 /* Non-Fatal Received */
-#define PCI_ERR_ROOT_FATAL_RCV 0x00000040 /* Fatal Received */
-#define PCI_ERR_ROOT_ERR_SRC 52 /* Error Source Identification */
-
-/* Virtual Channel */
-#define PCI_VC_PORT_REG1 4
-#define PCI_VC_PORT_REG2 8
-#define PCI_VC_PORT_CTRL 12
-#define PCI_VC_PORT_STATUS 14
-#define PCI_VC_RES_CAP 16
-#define PCI_VC_RES_CTRL 20
-#define PCI_VC_RES_STATUS 26
-
-/* Power Budgeting */
-#define PCI_PWR_DSR 4 /* Data Select Register */
-#define PCI_PWR_DATA 8 /* Data Register */
-#define PCI_PWR_DATA_BASE(x) ((x) & 0xff) /* Base Power */
-#define PCI_PWR_DATA_SCALE(x) (((x) >> 8) & 3) /* Data Scale */
-#define PCI_PWR_DATA_PM_SUB(x) (((x) >> 10) & 7) /* PM Sub State */
-#define PCI_PWR_DATA_PM_STATE(x) (((x) >> 13) & 3) /* PM State */
-#define PCI_PWR_DATA_TYPE(x) (((x) >> 15) & 7) /* Type */
-#define PCI_PWR_DATA_RAIL(x) (((x) >> 18) & 7) /* Power Rail */
-#define PCI_PWR_CAP 12 /* Capability */
-#define PCI_PWR_CAP_BUDGET(x) ((x) & 1) /* Included in system budget */
-
-/*
- * Hypertransport sub capability types
- *
- * Unfortunately there are both 3 bit and 5 bit capability types defined
- * in the HT spec, catering for that is a little messy. You probably don't
- * want to use these directly, just use pci_find_ht_capability() and it
- * will do the right thing for you.
- */
-#define HT_3BIT_CAP_MASK 0xE0
-#define HT_CAPTYPE_SLAVE 0x00 /* Slave/Primary link configuration */
-#define HT_CAPTYPE_HOST 0x20 /* Host/Secondary link configuration */
-
-#define HT_5BIT_CAP_MASK 0xF8
-#define HT_CAPTYPE_IRQ 0x80 /* IRQ Configuration */
-#define HT_CAPTYPE_REMAPPING_40 0xA0 /* 40 bit address remapping */
-#define HT_CAPTYPE_REMAPPING_64 0xA2 /* 64 bit address remapping */
-#define HT_CAPTYPE_UNITID_CLUMP 0x90 /* Unit ID clumping */
-#define HT_CAPTYPE_EXTCONF 0x98 /* Extended Configuration Space Access */
-#define HT_CAPTYPE_MSI_MAPPING 0xA8 /* MSI Mapping Capability */
-#define HT_MSI_FLAGS 0x02 /* Offset to flags */
-#define HT_MSI_FLAGS_ENABLE 0x1 /* Mapping enable */
-#define HT_MSI_FLAGS_FIXED 0x2 /* Fixed mapping only */
-#define HT_MSI_FIXED_ADDR 0x00000000FEE00000ULL /* Fixed addr */
-#define HT_MSI_ADDR_LO 0x04 /* Offset to low addr bits */
-#define HT_MSI_ADDR_LO_MASK 0xFFF00000 /* Low address bit mask */
-#define HT_MSI_ADDR_HI 0x08 /* Offset to high addr bits */
-#define HT_CAPTYPE_DIRECT_ROUTE 0xB0 /* Direct routing configuration */
-#define HT_CAPTYPE_VCSET 0xB8 /* Virtual Channel configuration */
-#define HT_CAPTYPE_ERROR_RETRY 0xC0 /* Retry on error configuration */
-#define HT_CAPTYPE_GEN3 0xD0 /* Generation 3 hypertransport configuration */
-#define HT_CAPTYPE_PM 0xE0 /* Hypertransport powermanagement configuration */
-
-/* Alternative Routing-ID Interpretation */
-#define PCI_ARI_CAP 0x04 /* ARI Capability Register */
-#define PCI_ARI_CAP_MFVC 0x0001 /* MFVC Function Groups Capability */
-#define PCI_ARI_CAP_ACS 0x0002 /* ACS Function Groups Capability */
-#define PCI_ARI_CAP_NFN(x) (((x) >> 8) & 0xff) /* Next Function Number */
-#define PCI_ARI_CTRL 0x06 /* ARI Control Register */
-#define PCI_ARI_CTRL_MFVC 0x0001 /* MFVC Function Groups Enable */
-#define PCI_ARI_CTRL_ACS 0x0002 /* ACS Function Groups Enable */
-#define PCI_ARI_CTRL_FG(x) (((x) >> 4) & 7) /* Function Group */
-
-/* Address Translation Service */
-#define PCI_ATS_CAP 0x04 /* ATS Capability Register */
-#define PCI_ATS_CAP_QDEP(x) ((x) & 0x1f) /* Invalidate Queue Depth */
-#define PCI_ATS_MAX_QDEP 32 /* Max Invalidate Queue Depth */
-#define PCI_ATS_CTRL 0x06 /* ATS Control Register */
-#define PCI_ATS_CTRL_ENABLE 0x8000 /* ATS Enable */
-#define PCI_ATS_CTRL_STU(x) ((x) & 0x1f) /* Smallest Translation Unit */
-#define PCI_ATS_MIN_STU 12 /* shift of minimum STU block */
-
-/* Page Request Interface */
-#define PCI_PRI_CTRL 0x04 /* PRI control register */
-#define PCI_PRI_CTRL_ENABLE 0x01 /* Enable */
-#define PCI_PRI_CTRL_RESET 0x02 /* Reset */
-#define PCI_PRI_STATUS 0x06 /* PRI status register */
-#define PCI_PRI_STATUS_RF 0x001 /* Response Failure */
-#define PCI_PRI_STATUS_UPRGI 0x002 /* Unexpected PRG index */
-#define PCI_PRI_STATUS_STOPPED 0x100 /* PRI Stopped */
-#define PCI_PRI_MAX_REQ 0x08 /* PRI max reqs supported */
-#define PCI_PRI_ALLOC_REQ 0x0c /* PRI max reqs allowed */
-
-/* PASID capability */
-#define PCI_PASID_CAP 0x04 /* PASID feature register */
-#define PCI_PASID_CAP_EXEC 0x02 /* Exec permissions Supported */
-#define PCI_PASID_CAP_PRIV 0x04 /* Priviledge Mode Supported */
-#define PCI_PASID_CTRL 0x06 /* PASID control register */
-#define PCI_PASID_CTRL_ENABLE 0x01 /* Enable bit */
-#define PCI_PASID_CTRL_EXEC 0x02 /* Exec permissions Enable */
-#define PCI_PASID_CTRL_PRIV 0x04 /* Priviledge Mode Enable */
-
-/* Single Root I/O Virtualization */
-#define PCI_SRIOV_CAP 0x04 /* SR-IOV Capabilities */
-#define PCI_SRIOV_CAP_VFM 0x01 /* VF Migration Capable */
-#define PCI_SRIOV_CAP_INTR(x) ((x) >> 21) /* Interrupt Message Number */
-#define PCI_SRIOV_CTRL 0x08 /* SR-IOV Control */
-#define PCI_SRIOV_CTRL_VFE 0x01 /* VF Enable */
-#define PCI_SRIOV_CTRL_VFM 0x02 /* VF Migration Enable */
-#define PCI_SRIOV_CTRL_INTR 0x04 /* VF Migration Interrupt Enable */
-#define PCI_SRIOV_CTRL_MSE 0x08 /* VF Memory Space Enable */
-#define PCI_SRIOV_CTRL_ARI 0x10 /* ARI Capable Hierarchy */
-#define PCI_SRIOV_STATUS 0x0a /* SR-IOV Status */
-#define PCI_SRIOV_STATUS_VFM 0x01 /* VF Migration Status */
-#define PCI_SRIOV_INITIAL_VF 0x0c /* Initial VFs */
-#define PCI_SRIOV_TOTAL_VF 0x0e /* Total VFs */
-#define PCI_SRIOV_NUM_VF 0x10 /* Number of VFs */
-#define PCI_SRIOV_FUNC_LINK 0x12 /* Function Dependency Link */
-#define PCI_SRIOV_VF_OFFSET 0x14 /* First VF Offset */
-#define PCI_SRIOV_VF_STRIDE 0x16 /* Following VF Stride */
-#define PCI_SRIOV_VF_DID 0x1a /* VF Device ID */
-#define PCI_SRIOV_SUP_PGSIZE 0x1c /* Supported Page Sizes */
-#define PCI_SRIOV_SYS_PGSIZE 0x20 /* System Page Size */
-#define PCI_SRIOV_BAR 0x24 /* VF BAR0 */
-#define PCI_SRIOV_NUM_BARS 6 /* Number of VF BARs */
-#define PCI_SRIOV_VFM 0x3c /* VF Migration State Array Offset*/
-#define PCI_SRIOV_VFM_BIR(x) ((x) & 7) /* State BIR */
-#define PCI_SRIOV_VFM_OFFSET(x) ((x) & ~7) /* State Offset */
-#define PCI_SRIOV_VFM_UA 0x0 /* Inactive.Unavailable */
-#define PCI_SRIOV_VFM_MI 0x1 /* Dormant.MigrateIn */
-#define PCI_SRIOV_VFM_MO 0x2 /* Active.MigrateOut */
-#define PCI_SRIOV_VFM_AV 0x3 /* Active.Available */
-
-#define PCI_LTR_MAX_SNOOP_LAT 0x4
-#define PCI_LTR_MAX_NOSNOOP_LAT 0x6
-#define PCI_LTR_VALUE_MASK 0x000003ff
-#define PCI_LTR_SCALE_MASK 0x00001c00
-#define PCI_LTR_SCALE_SHIFT 10
-
-/* Access Control Service */
-#define PCI_ACS_CAP 0x04 /* ACS Capability Register */
-#define PCI_ACS_SV 0x01 /* Source Validation */
-#define PCI_ACS_TB 0x02 /* Translation Blocking */
-#define PCI_ACS_RR 0x04 /* P2P Request Redirect */
-#define PCI_ACS_CR 0x08 /* P2P Completion Redirect */
-#define PCI_ACS_UF 0x10 /* Upstream Forwarding */
-#define PCI_ACS_EC 0x20 /* P2P Egress Control */
-#define PCI_ACS_DT 0x40 /* Direct Translated P2P */
-#define PCI_ACS_CTRL 0x06 /* ACS Control Register */
-#define PCI_ACS_EGRESS_CTL_V 0x08 /* ACS Egress Control Vector */
-
-#endif /* LINUX_PCI_REGS_H */
diff --git a/ANDROID_3.4.5/include/linux/pcieport_if.h b/ANDROID_3.4.5/include/linux/pcieport_if.h
deleted file mode 100644
index 6775532b..00000000
--- a/ANDROID_3.4.5/include/linux/pcieport_if.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * File: pcieport_if.h
- * Purpose: PCI Express Port Bus Driver's IF Data Structure
- *
- * Copyright (C) 2004 Intel
- * Copyright (C) Tom Long Nguyen (tom.l.nguyen@intel.com)
- */
-
-#ifndef _PCIEPORT_IF_H_
-#define _PCIEPORT_IF_H_
-
-/* Port Type */
-#define PCIE_ANY_PORT (~0)
-
-/* Service Type */
-#define PCIE_PORT_SERVICE_PME_SHIFT 0 /* Power Management Event */
-#define PCIE_PORT_SERVICE_PME (1 << PCIE_PORT_SERVICE_PME_SHIFT)
-#define PCIE_PORT_SERVICE_AER_SHIFT 1 /* Advanced Error Reporting */
-#define PCIE_PORT_SERVICE_AER (1 << PCIE_PORT_SERVICE_AER_SHIFT)
-#define PCIE_PORT_SERVICE_HP_SHIFT 2 /* Native Hotplug */
-#define PCIE_PORT_SERVICE_HP (1 << PCIE_PORT_SERVICE_HP_SHIFT)
-#define PCIE_PORT_SERVICE_VC_SHIFT 3 /* Virtual Channel */
-#define PCIE_PORT_SERVICE_VC (1 << PCIE_PORT_SERVICE_VC_SHIFT)
-
-struct pcie_device {
- int irq; /* Service IRQ/MSI/MSI-X Vector */
- struct pci_dev *port; /* Root/Upstream/Downstream Port */
- u32 service; /* Port service this device represents */
- void *priv_data; /* Service Private Data */
- struct device device; /* Generic Device Interface */
-};
-#define to_pcie_device(d) container_of(d, struct pcie_device, device)
-
-static inline void set_service_data(struct pcie_device *dev, void *data)
-{
- dev->priv_data = data;
-}
-
-static inline void* get_service_data(struct pcie_device *dev)
-{
- return dev->priv_data;
-}
-
-struct pcie_port_service_driver {
- const char *name;
- int (*probe) (struct pcie_device *dev);
- void (*remove) (struct pcie_device *dev);
- int (*suspend) (struct pcie_device *dev);
- int (*resume) (struct pcie_device *dev);
-
- /* Service Error Recovery Handler */
- struct pci_error_handlers *err_handler;
-
- /* Link Reset Capability - AER service driver specific */
- pci_ers_result_t (*reset_link) (struct pci_dev *dev);
-
- int port_type; /* Type of the port this driver can handle */
- u32 service; /* Port service this device represents */
-
- struct device_driver driver;
-};
-#define to_service_driver(d) \
- container_of(d, struct pcie_port_service_driver, driver)
-
-extern int pcie_port_service_register(struct pcie_port_service_driver *new);
-extern void pcie_port_service_unregister(struct pcie_port_service_driver *new);
-
-#endif /* _PCIEPORT_IF_H_ */
diff --git a/ANDROID_3.4.5/include/linux/pda_power.h b/ANDROID_3.4.5/include/linux/pda_power.h
deleted file mode 100644
index 2bb62bf2..00000000
--- a/ANDROID_3.4.5/include/linux/pda_power.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Common power driver for PDAs and phones with one or two external
- * power supplies (AC/USB) connected to main and backup batteries,
- * and optional builtin charger.
- *
- * Copyright © 2007 Anton Vorontsov <cbou@mail.ru>
- *
- * 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.
- */
-
-#ifndef __PDA_POWER_H__
-#define __PDA_POWER_H__
-
-#define PDA_POWER_CHARGE_AC (1 << 0)
-#define PDA_POWER_CHARGE_USB (1 << 1)
-
-struct device;
-
-struct pda_power_pdata {
- int (*init)(struct device *dev);
- int (*is_ac_online)(void);
- int (*is_usb_online)(void);
- void (*set_charge)(int flags);
- void (*exit)(struct device *dev);
- int (*suspend)(pm_message_t state);
- int (*resume)(void);
-
- char **supplied_to;
- size_t num_supplicants;
-
- unsigned int wait_for_status; /* msecs, default is 500 */
- unsigned int wait_for_charger; /* msecs, default is 500 */
- unsigned int polling_interval; /* msecs, default is 2000 */
-
- unsigned long ac_max_uA; /* current to draw when on AC */
-
- bool use_otg_notifier;
-};
-
-#endif /* __PDA_POWER_H__ */
diff --git a/ANDROID_3.4.5/include/linux/percpu-defs.h b/ANDROID_3.4.5/include/linux/percpu-defs.h
deleted file mode 100644
index 27ef6b19..00000000
--- a/ANDROID_3.4.5/include/linux/percpu-defs.h
+++ /dev/null
@@ -1,163 +0,0 @@
-#ifndef _LINUX_PERCPU_DEFS_H
-#define _LINUX_PERCPU_DEFS_H
-
-/*
- * Base implementations of per-CPU variable declarations and definitions, where
- * the section in which the variable is to be placed is provided by the
- * 'sec' argument. This may be used to affect the parameters governing the
- * variable's storage.
- *
- * NOTE! The sections for the DECLARE and for the DEFINE must match, lest
- * linkage errors occur due the compiler generating the wrong code to access
- * that section.
- */
-#define __PCPU_ATTRS(sec) \
- __percpu __attribute__((section(PER_CPU_BASE_SECTION sec))) \
- PER_CPU_ATTRIBUTES
-
-#define __PCPU_DUMMY_ATTRS \
- __attribute__((section(".discard"), unused))
-
-/*
- * Macro which verifies @ptr is a percpu pointer without evaluating
- * @ptr. This is to be used in percpu accessors to verify that the
- * input parameter is a percpu pointer.
- */
-#define __verify_pcpu_ptr(ptr) do { \
- const void __percpu *__vpp_verify = (typeof(ptr))NULL; \
- (void)__vpp_verify; \
-} while (0)
-
-/*
- * s390 and alpha modules require percpu variables to be defined as
- * weak to force the compiler to generate GOT based external
- * references for them. This is necessary because percpu sections
- * will be located outside of the usually addressable area.
- *
- * This definition puts the following two extra restrictions when
- * defining percpu variables.
- *
- * 1. The symbol must be globally unique, even the static ones.
- * 2. Static percpu variables cannot be defined inside a function.
- *
- * Archs which need weak percpu definitions should define
- * ARCH_NEEDS_WEAK_PER_CPU in asm/percpu.h when necessary.
- *
- * To ensure that the generic code observes the above two
- * restrictions, if CONFIG_DEBUG_FORCE_WEAK_PER_CPU is set weak
- * definition is used for all cases.
- */
-#if defined(ARCH_NEEDS_WEAK_PER_CPU) || defined(CONFIG_DEBUG_FORCE_WEAK_PER_CPU)
-/*
- * __pcpu_scope_* dummy variable is used to enforce scope. It
- * receives the static modifier when it's used in front of
- * DEFINE_PER_CPU() and will trigger build failure if
- * DECLARE_PER_CPU() is used for the same variable.
- *
- * __pcpu_unique_* dummy variable is used to enforce symbol uniqueness
- * such that hidden weak symbol collision, which will cause unrelated
- * variables to share the same address, can be detected during build.
- */
-#define DECLARE_PER_CPU_SECTION(type, name, sec) \
- extern __PCPU_DUMMY_ATTRS char __pcpu_scope_##name; \
- extern __PCPU_ATTRS(sec) __typeof__(type) name
-
-#define DEFINE_PER_CPU_SECTION(type, name, sec) \
- __PCPU_DUMMY_ATTRS char __pcpu_scope_##name; \
- extern __PCPU_DUMMY_ATTRS char __pcpu_unique_##name; \
- __PCPU_DUMMY_ATTRS char __pcpu_unique_##name; \
- __PCPU_ATTRS(sec) PER_CPU_DEF_ATTRIBUTES __weak \
- __typeof__(type) name
-#else
-/*
- * Normal declaration and definition macros.
- */
-#define DECLARE_PER_CPU_SECTION(type, name, sec) \
- extern __PCPU_ATTRS(sec) __typeof__(type) name
-
-#define DEFINE_PER_CPU_SECTION(type, name, sec) \
- __PCPU_ATTRS(sec) PER_CPU_DEF_ATTRIBUTES \
- __typeof__(type) name
-#endif
-
-/*
- * Variant on the per-CPU variable declaration/definition theme used for
- * ordinary per-CPU variables.
- */
-#define DECLARE_PER_CPU(type, name) \
- DECLARE_PER_CPU_SECTION(type, name, "")
-
-#define DEFINE_PER_CPU(type, name) \
- DEFINE_PER_CPU_SECTION(type, name, "")
-
-/*
- * Declaration/definition used for per-CPU variables that must come first in
- * the set of variables.
- */
-#define DECLARE_PER_CPU_FIRST(type, name) \
- DECLARE_PER_CPU_SECTION(type, name, PER_CPU_FIRST_SECTION)
-
-#define DEFINE_PER_CPU_FIRST(type, name) \
- DEFINE_PER_CPU_SECTION(type, name, PER_CPU_FIRST_SECTION)
-
-/*
- * Declaration/definition used for per-CPU variables that must be cacheline
- * aligned under SMP conditions so that, whilst a particular instance of the
- * data corresponds to a particular CPU, inefficiencies due to direct access by
- * other CPUs are reduced by preventing the data from unnecessarily spanning
- * cachelines.
- *
- * An example of this would be statistical data, where each CPU's set of data
- * is updated by that CPU alone, but the data from across all CPUs is collated
- * by a CPU processing a read from a proc file.
- */
-#define DECLARE_PER_CPU_SHARED_ALIGNED(type, name) \
- DECLARE_PER_CPU_SECTION(type, name, PER_CPU_SHARED_ALIGNED_SECTION) \
- ____cacheline_aligned_in_smp
-
-#define DEFINE_PER_CPU_SHARED_ALIGNED(type, name) \
- DEFINE_PER_CPU_SECTION(type, name, PER_CPU_SHARED_ALIGNED_SECTION) \
- ____cacheline_aligned_in_smp
-
-#define DECLARE_PER_CPU_ALIGNED(type, name) \
- DECLARE_PER_CPU_SECTION(type, name, PER_CPU_ALIGNED_SECTION) \
- ____cacheline_aligned
-
-#define DEFINE_PER_CPU_ALIGNED(type, name) \
- DEFINE_PER_CPU_SECTION(type, name, PER_CPU_ALIGNED_SECTION) \
- ____cacheline_aligned
-
-/*
- * Declaration/definition used for per-CPU variables that must be page aligned.
- */
-#define DECLARE_PER_CPU_PAGE_ALIGNED(type, name) \
- DECLARE_PER_CPU_SECTION(type, name, "..page_aligned") \
- __aligned(PAGE_SIZE)
-
-#define DEFINE_PER_CPU_PAGE_ALIGNED(type, name) \
- DEFINE_PER_CPU_SECTION(type, name, "..page_aligned") \
- __aligned(PAGE_SIZE)
-
-/*
- * Declaration/definition used for per-CPU variables that must be read mostly.
- */
-#define DECLARE_PER_CPU_READ_MOSTLY(type, name) \
- DECLARE_PER_CPU_SECTION(type, name, "..readmostly")
-
-#define DEFINE_PER_CPU_READ_MOSTLY(type, name) \
- DEFINE_PER_CPU_SECTION(type, name, "..readmostly")
-
-/*
- * Intermodule exports for per-CPU variables. sparse forgets about
- * address space across EXPORT_SYMBOL(), change EXPORT_SYMBOL() to
- * noop if __CHECKER__.
- */
-#ifndef __CHECKER__
-#define EXPORT_PER_CPU_SYMBOL(var) EXPORT_SYMBOL(var)
-#define EXPORT_PER_CPU_SYMBOL_GPL(var) EXPORT_SYMBOL_GPL(var)
-#else
-#define EXPORT_PER_CPU_SYMBOL(var)
-#define EXPORT_PER_CPU_SYMBOL_GPL(var)
-#endif
-
-#endif /* _LINUX_PERCPU_DEFS_H */
diff --git a/ANDROID_3.4.5/include/linux/percpu.h b/ANDROID_3.4.5/include/linux/percpu.h
deleted file mode 100644
index 21638ae1..00000000
--- a/ANDROID_3.4.5/include/linux/percpu.h
+++ /dev/null
@@ -1,812 +0,0 @@
-#ifndef __LINUX_PERCPU_H
-#define __LINUX_PERCPU_H
-
-#include <linux/preempt.h>
-#include <linux/smp.h>
-#include <linux/cpumask.h>
-#include <linux/pfn.h>
-#include <linux/init.h>
-
-#include <asm/percpu.h>
-
-/* enough to cover all DEFINE_PER_CPUs in modules */
-#ifdef CONFIG_MODULES
-#define PERCPU_MODULE_RESERVE (8 << 10)
-#else
-#define PERCPU_MODULE_RESERVE 0
-#endif
-
-#ifndef PERCPU_ENOUGH_ROOM
-#define PERCPU_ENOUGH_ROOM \
- (ALIGN(__per_cpu_end - __per_cpu_start, SMP_CACHE_BYTES) + \
- PERCPU_MODULE_RESERVE)
-#endif
-
-/*
- * Must be an lvalue. Since @var must be a simple identifier,
- * we force a syntax error here if it isn't.
- */
-#define get_cpu_var(var) (*({ \
- preempt_disable(); \
- &__get_cpu_var(var); }))
-
-/*
- * The weird & is necessary because sparse considers (void)(var) to be
- * a direct dereference of percpu variable (var).
- */
-#define put_cpu_var(var) do { \
- (void)&(var); \
- preempt_enable(); \
-} while (0)
-
-#define get_cpu_ptr(var) ({ \
- preempt_disable(); \
- this_cpu_ptr(var); })
-
-#define put_cpu_ptr(var) do { \
- (void)(var); \
- preempt_enable(); \
-} while (0)
-
-/* minimum unit size, also is the maximum supported allocation size */
-#define PCPU_MIN_UNIT_SIZE PFN_ALIGN(32 << 10)
-
-/*
- * Percpu allocator can serve percpu allocations before slab is
- * initialized which allows slab to depend on the percpu allocator.
- * The following two parameters decide how much resource to
- * preallocate for this. Keep PERCPU_DYNAMIC_RESERVE equal to or
- * larger than PERCPU_DYNAMIC_EARLY_SIZE.
- */
-#define PERCPU_DYNAMIC_EARLY_SLOTS 128
-#define PERCPU_DYNAMIC_EARLY_SIZE (12 << 10)
-
-/*
- * PERCPU_DYNAMIC_RESERVE indicates the amount of free area to piggy
- * back on the first chunk for dynamic percpu allocation if arch is
- * manually allocating and mapping it for faster access (as a part of
- * large page mapping for example).
- *
- * The following values give between one and two pages of free space
- * after typical minimal boot (2-way SMP, single disk and NIC) with
- * both defconfig and a distro config on x86_64 and 32. More
- * intelligent way to determine this would be nice.
- */
-#if BITS_PER_LONG > 32
-#define PERCPU_DYNAMIC_RESERVE (20 << 10)
-#else
-#define PERCPU_DYNAMIC_RESERVE (12 << 10)
-#endif
-
-extern void *pcpu_base_addr;
-extern const unsigned long *pcpu_unit_offsets;
-
-struct pcpu_group_info {
- int nr_units; /* aligned # of units */
- unsigned long base_offset; /* base address offset */
- unsigned int *cpu_map; /* unit->cpu map, empty
- * entries contain NR_CPUS */
-};
-
-struct pcpu_alloc_info {
- size_t static_size;
- size_t reserved_size;
- size_t dyn_size;
- size_t unit_size;
- size_t atom_size;
- size_t alloc_size;
- size_t __ai_size; /* internal, don't use */
- int nr_groups; /* 0 if grouping unnecessary */
- struct pcpu_group_info groups[];
-};
-
-enum pcpu_fc {
- PCPU_FC_AUTO,
- PCPU_FC_EMBED,
- PCPU_FC_PAGE,
-
- PCPU_FC_NR,
-};
-extern const char *pcpu_fc_names[PCPU_FC_NR];
-
-extern enum pcpu_fc pcpu_chosen_fc;
-
-typedef void * (*pcpu_fc_alloc_fn_t)(unsigned int cpu, size_t size,
- size_t align);
-typedef void (*pcpu_fc_free_fn_t)(void *ptr, size_t size);
-typedef void (*pcpu_fc_populate_pte_fn_t)(unsigned long addr);
-typedef int (pcpu_fc_cpu_distance_fn_t)(unsigned int from, unsigned int to);
-
-extern struct pcpu_alloc_info * __init pcpu_alloc_alloc_info(int nr_groups,
- int nr_units);
-extern void __init pcpu_free_alloc_info(struct pcpu_alloc_info *ai);
-
-extern int __init pcpu_setup_first_chunk(const struct pcpu_alloc_info *ai,
- void *base_addr);
-
-#ifdef CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK
-extern int __init pcpu_embed_first_chunk(size_t reserved_size, size_t dyn_size,
- size_t atom_size,
- pcpu_fc_cpu_distance_fn_t cpu_distance_fn,
- pcpu_fc_alloc_fn_t alloc_fn,
- pcpu_fc_free_fn_t free_fn);
-#endif
-
-#ifdef CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK
-extern int __init pcpu_page_first_chunk(size_t reserved_size,
- pcpu_fc_alloc_fn_t alloc_fn,
- pcpu_fc_free_fn_t free_fn,
- pcpu_fc_populate_pte_fn_t populate_pte_fn);
-#endif
-
-/*
- * Use this to get to a cpu's version of the per-cpu object
- * dynamically allocated. Non-atomic access to the current CPU's
- * version should probably be combined with get_cpu()/put_cpu().
- */
-#ifdef CONFIG_SMP
-#define per_cpu_ptr(ptr, cpu) SHIFT_PERCPU_PTR((ptr), per_cpu_offset((cpu)))
-#else
-#define per_cpu_ptr(ptr, cpu) ({ (void)(cpu); VERIFY_PERCPU_PTR((ptr)); })
-#endif
-
-extern void __percpu *__alloc_reserved_percpu(size_t size, size_t align);
-extern bool is_kernel_percpu_address(unsigned long addr);
-
-#if !defined(CONFIG_SMP) || !defined(CONFIG_HAVE_SETUP_PER_CPU_AREA)
-extern void __init setup_per_cpu_areas(void);
-#endif
-extern void __init percpu_init_late(void);
-
-extern void __percpu *__alloc_percpu(size_t size, size_t align);
-extern void free_percpu(void __percpu *__pdata);
-extern phys_addr_t per_cpu_ptr_to_phys(void *addr);
-
-#define alloc_percpu(type) \
- (typeof(type) __percpu *)__alloc_percpu(sizeof(type), __alignof__(type))
-
-/*
- * Optional methods for optimized non-lvalue per-cpu variable access.
- *
- * @var can be a percpu variable or a field of it and its size should
- * equal char, int or long. percpu_read() evaluates to a lvalue and
- * all others to void.
- *
- * These operations are guaranteed to be atomic.
- * The generic versions disable interrupts. Archs are
- * encouraged to implement single-instruction alternatives which don't
- * require protection.
- */
-#ifndef percpu_read
-# define percpu_read(var) \
- ({ \
- typeof(var) *pr_ptr__ = &(var); \
- typeof(var) pr_ret__; \
- pr_ret__ = get_cpu_var(*pr_ptr__); \
- put_cpu_var(*pr_ptr__); \
- pr_ret__; \
- })
-#endif
-
-#define __percpu_generic_to_op(var, val, op) \
-do { \
- typeof(var) *pgto_ptr__ = &(var); \
- get_cpu_var(*pgto_ptr__) op val; \
- put_cpu_var(*pgto_ptr__); \
-} while (0)
-
-#ifndef percpu_write
-# define percpu_write(var, val) __percpu_generic_to_op(var, (val), =)
-#endif
-
-#ifndef percpu_add
-# define percpu_add(var, val) __percpu_generic_to_op(var, (val), +=)
-#endif
-
-#ifndef percpu_sub
-# define percpu_sub(var, val) __percpu_generic_to_op(var, (val), -=)
-#endif
-
-#ifndef percpu_and
-# define percpu_and(var, val) __percpu_generic_to_op(var, (val), &=)
-#endif
-
-#ifndef percpu_or
-# define percpu_or(var, val) __percpu_generic_to_op(var, (val), |=)
-#endif
-
-#ifndef percpu_xor
-# define percpu_xor(var, val) __percpu_generic_to_op(var, (val), ^=)
-#endif
-
-/*
- * Branching function to split up a function into a set of functions that
- * are called for different scalar sizes of the objects handled.
- */
-
-extern void __bad_size_call_parameter(void);
-
-#define __pcpu_size_call_return(stem, variable) \
-({ typeof(variable) pscr_ret__; \
- __verify_pcpu_ptr(&(variable)); \
- switch(sizeof(variable)) { \
- case 1: pscr_ret__ = stem##1(variable);break; \
- case 2: pscr_ret__ = stem##2(variable);break; \
- case 4: pscr_ret__ = stem##4(variable);break; \
- case 8: pscr_ret__ = stem##8(variable);break; \
- default: \
- __bad_size_call_parameter();break; \
- } \
- pscr_ret__; \
-})
-
-#define __pcpu_size_call_return2(stem, variable, ...) \
-({ \
- typeof(variable) pscr2_ret__; \
- __verify_pcpu_ptr(&(variable)); \
- switch(sizeof(variable)) { \
- case 1: pscr2_ret__ = stem##1(variable, __VA_ARGS__); break; \
- case 2: pscr2_ret__ = stem##2(variable, __VA_ARGS__); break; \
- case 4: pscr2_ret__ = stem##4(variable, __VA_ARGS__); break; \
- case 8: pscr2_ret__ = stem##8(variable, __VA_ARGS__); break; \
- default: \
- __bad_size_call_parameter(); break; \
- } \
- pscr2_ret__; \
-})
-
-/*
- * Special handling for cmpxchg_double. cmpxchg_double is passed two
- * percpu variables. The first has to be aligned to a double word
- * boundary and the second has to follow directly thereafter.
- * We enforce this on all architectures even if they don't support
- * a double cmpxchg instruction, since it's a cheap requirement, and it
- * avoids breaking the requirement for architectures with the instruction.
- */
-#define __pcpu_double_call_return_bool(stem, pcp1, pcp2, ...) \
-({ \
- bool pdcrb_ret__; \
- __verify_pcpu_ptr(&pcp1); \
- BUILD_BUG_ON(sizeof(pcp1) != sizeof(pcp2)); \
- VM_BUG_ON((unsigned long)(&pcp1) % (2 * sizeof(pcp1))); \
- VM_BUG_ON((unsigned long)(&pcp2) != \
- (unsigned long)(&pcp1) + sizeof(pcp1)); \
- switch(sizeof(pcp1)) { \
- case 1: pdcrb_ret__ = stem##1(pcp1, pcp2, __VA_ARGS__); break; \
- case 2: pdcrb_ret__ = stem##2(pcp1, pcp2, __VA_ARGS__); break; \
- case 4: pdcrb_ret__ = stem##4(pcp1, pcp2, __VA_ARGS__); break; \
- case 8: pdcrb_ret__ = stem##8(pcp1, pcp2, __VA_ARGS__); break; \
- default: \
- __bad_size_call_parameter(); break; \
- } \
- pdcrb_ret__; \
-})
-
-#define __pcpu_size_call(stem, variable, ...) \
-do { \
- __verify_pcpu_ptr(&(variable)); \
- switch(sizeof(variable)) { \
- case 1: stem##1(variable, __VA_ARGS__);break; \
- case 2: stem##2(variable, __VA_ARGS__);break; \
- case 4: stem##4(variable, __VA_ARGS__);break; \
- case 8: stem##8(variable, __VA_ARGS__);break; \
- default: \
- __bad_size_call_parameter();break; \
- } \
-} while (0)
-
-/*
- * Optimized manipulation for memory allocated through the per cpu
- * allocator or for addresses of per cpu variables.
- *
- * These operation guarantee exclusivity of access for other operations
- * on the *same* processor. The assumption is that per cpu data is only
- * accessed by a single processor instance (the current one).
- *
- * The first group is used for accesses that must be done in a
- * preemption safe way since we know that the context is not preempt
- * safe. Interrupts may occur. If the interrupt modifies the variable
- * too then RMW actions will not be reliable.
- *
- * The arch code can provide optimized functions in two ways:
- *
- * 1. Override the function completely. F.e. define this_cpu_add().
- * The arch must then ensure that the various scalar format passed
- * are handled correctly.
- *
- * 2. Provide functions for certain scalar sizes. F.e. provide
- * this_cpu_add_2() to provide per cpu atomic operations for 2 byte
- * sized RMW actions. If arch code does not provide operations for
- * a scalar size then the fallback in the generic code will be
- * used.
- */
-
-#define _this_cpu_generic_read(pcp) \
-({ typeof(pcp) ret__; \
- preempt_disable(); \
- ret__ = *this_cpu_ptr(&(pcp)); \
- preempt_enable(); \
- ret__; \
-})
-
-#ifndef this_cpu_read
-# ifndef this_cpu_read_1
-# define this_cpu_read_1(pcp) _this_cpu_generic_read(pcp)
-# endif
-# ifndef this_cpu_read_2
-# define this_cpu_read_2(pcp) _this_cpu_generic_read(pcp)
-# endif
-# ifndef this_cpu_read_4
-# define this_cpu_read_4(pcp) _this_cpu_generic_read(pcp)
-# endif
-# ifndef this_cpu_read_8
-# define this_cpu_read_8(pcp) _this_cpu_generic_read(pcp)
-# endif
-# define this_cpu_read(pcp) __pcpu_size_call_return(this_cpu_read_, (pcp))
-#endif
-
-#define _this_cpu_generic_to_op(pcp, val, op) \
-do { \
- unsigned long flags; \
- raw_local_irq_save(flags); \
- *__this_cpu_ptr(&(pcp)) op val; \
- raw_local_irq_restore(flags); \
-} while (0)
-
-#ifndef this_cpu_write
-# ifndef this_cpu_write_1
-# define this_cpu_write_1(pcp, val) _this_cpu_generic_to_op((pcp), (val), =)
-# endif
-# ifndef this_cpu_write_2
-# define this_cpu_write_2(pcp, val) _this_cpu_generic_to_op((pcp), (val), =)
-# endif
-# ifndef this_cpu_write_4
-# define this_cpu_write_4(pcp, val) _this_cpu_generic_to_op((pcp), (val), =)
-# endif
-# ifndef this_cpu_write_8
-# define this_cpu_write_8(pcp, val) _this_cpu_generic_to_op((pcp), (val), =)
-# endif
-# define this_cpu_write(pcp, val) __pcpu_size_call(this_cpu_write_, (pcp), (val))
-#endif
-
-#ifndef this_cpu_add
-# ifndef this_cpu_add_1
-# define this_cpu_add_1(pcp, val) _this_cpu_generic_to_op((pcp), (val), +=)
-# endif
-# ifndef this_cpu_add_2
-# define this_cpu_add_2(pcp, val) _this_cpu_generic_to_op((pcp), (val), +=)
-# endif
-# ifndef this_cpu_add_4
-# define this_cpu_add_4(pcp, val) _this_cpu_generic_to_op((pcp), (val), +=)
-# endif
-# ifndef this_cpu_add_8
-# define this_cpu_add_8(pcp, val) _this_cpu_generic_to_op((pcp), (val), +=)
-# endif
-# define this_cpu_add(pcp, val) __pcpu_size_call(this_cpu_add_, (pcp), (val))
-#endif
-
-#ifndef this_cpu_sub
-# define this_cpu_sub(pcp, val) this_cpu_add((pcp), -(val))
-#endif
-
-#ifndef this_cpu_inc
-# define this_cpu_inc(pcp) this_cpu_add((pcp), 1)
-#endif
-
-#ifndef this_cpu_dec
-# define this_cpu_dec(pcp) this_cpu_sub((pcp), 1)
-#endif
-
-#ifndef this_cpu_and
-# ifndef this_cpu_and_1
-# define this_cpu_and_1(pcp, val) _this_cpu_generic_to_op((pcp), (val), &=)
-# endif
-# ifndef this_cpu_and_2
-# define this_cpu_and_2(pcp, val) _this_cpu_generic_to_op((pcp), (val), &=)
-# endif
-# ifndef this_cpu_and_4
-# define this_cpu_and_4(pcp, val) _this_cpu_generic_to_op((pcp), (val), &=)
-# endif
-# ifndef this_cpu_and_8
-# define this_cpu_and_8(pcp, val) _this_cpu_generic_to_op((pcp), (val), &=)
-# endif
-# define this_cpu_and(pcp, val) __pcpu_size_call(this_cpu_and_, (pcp), (val))
-#endif
-
-#ifndef this_cpu_or
-# ifndef this_cpu_or_1
-# define this_cpu_or_1(pcp, val) _this_cpu_generic_to_op((pcp), (val), |=)
-# endif
-# ifndef this_cpu_or_2
-# define this_cpu_or_2(pcp, val) _this_cpu_generic_to_op((pcp), (val), |=)
-# endif
-# ifndef this_cpu_or_4
-# define this_cpu_or_4(pcp, val) _this_cpu_generic_to_op((pcp), (val), |=)
-# endif
-# ifndef this_cpu_or_8
-# define this_cpu_or_8(pcp, val) _this_cpu_generic_to_op((pcp), (val), |=)
-# endif
-# define this_cpu_or(pcp, val) __pcpu_size_call(this_cpu_or_, (pcp), (val))
-#endif
-
-#ifndef this_cpu_xor
-# ifndef this_cpu_xor_1
-# define this_cpu_xor_1(pcp, val) _this_cpu_generic_to_op((pcp), (val), ^=)
-# endif
-# ifndef this_cpu_xor_2
-# define this_cpu_xor_2(pcp, val) _this_cpu_generic_to_op((pcp), (val), ^=)
-# endif
-# ifndef this_cpu_xor_4
-# define this_cpu_xor_4(pcp, val) _this_cpu_generic_to_op((pcp), (val), ^=)
-# endif
-# ifndef this_cpu_xor_8
-# define this_cpu_xor_8(pcp, val) _this_cpu_generic_to_op((pcp), (val), ^=)
-# endif
-# define this_cpu_xor(pcp, val) __pcpu_size_call(this_cpu_or_, (pcp), (val))
-#endif
-
-#define _this_cpu_generic_add_return(pcp, val) \
-({ \
- typeof(pcp) ret__; \
- unsigned long flags; \
- raw_local_irq_save(flags); \
- __this_cpu_add(pcp, val); \
- ret__ = __this_cpu_read(pcp); \
- raw_local_irq_restore(flags); \
- ret__; \
-})
-
-#ifndef this_cpu_add_return
-# ifndef this_cpu_add_return_1
-# define this_cpu_add_return_1(pcp, val) _this_cpu_generic_add_return(pcp, val)
-# endif
-# ifndef this_cpu_add_return_2
-# define this_cpu_add_return_2(pcp, val) _this_cpu_generic_add_return(pcp, val)
-# endif
-# ifndef this_cpu_add_return_4
-# define this_cpu_add_return_4(pcp, val) _this_cpu_generic_add_return(pcp, val)
-# endif
-# ifndef this_cpu_add_return_8
-# define this_cpu_add_return_8(pcp, val) _this_cpu_generic_add_return(pcp, val)
-# endif
-# define this_cpu_add_return(pcp, val) __pcpu_size_call_return2(this_cpu_add_return_, pcp, val)
-#endif
-
-#define this_cpu_sub_return(pcp, val) this_cpu_add_return(pcp, -(val))
-#define this_cpu_inc_return(pcp) this_cpu_add_return(pcp, 1)
-#define this_cpu_dec_return(pcp) this_cpu_add_return(pcp, -1)
-
-#define _this_cpu_generic_xchg(pcp, nval) \
-({ typeof(pcp) ret__; \
- unsigned long flags; \
- raw_local_irq_save(flags); \
- ret__ = __this_cpu_read(pcp); \
- __this_cpu_write(pcp, nval); \
- raw_local_irq_restore(flags); \
- ret__; \
-})
-
-#ifndef this_cpu_xchg
-# ifndef this_cpu_xchg_1
-# define this_cpu_xchg_1(pcp, nval) _this_cpu_generic_xchg(pcp, nval)
-# endif
-# ifndef this_cpu_xchg_2
-# define this_cpu_xchg_2(pcp, nval) _this_cpu_generic_xchg(pcp, nval)
-# endif
-# ifndef this_cpu_xchg_4
-# define this_cpu_xchg_4(pcp, nval) _this_cpu_generic_xchg(pcp, nval)
-# endif
-# ifndef this_cpu_xchg_8
-# define this_cpu_xchg_8(pcp, nval) _this_cpu_generic_xchg(pcp, nval)
-# endif
-# define this_cpu_xchg(pcp, nval) \
- __pcpu_size_call_return2(this_cpu_xchg_, (pcp), nval)
-#endif
-
-#define _this_cpu_generic_cmpxchg(pcp, oval, nval) \
-({ \
- typeof(pcp) ret__; \
- unsigned long flags; \
- raw_local_irq_save(flags); \
- ret__ = __this_cpu_read(pcp); \
- if (ret__ == (oval)) \
- __this_cpu_write(pcp, nval); \
- raw_local_irq_restore(flags); \
- ret__; \
-})
-
-#ifndef this_cpu_cmpxchg
-# ifndef this_cpu_cmpxchg_1
-# define this_cpu_cmpxchg_1(pcp, oval, nval) _this_cpu_generic_cmpxchg(pcp, oval, nval)
-# endif
-# ifndef this_cpu_cmpxchg_2
-# define this_cpu_cmpxchg_2(pcp, oval, nval) _this_cpu_generic_cmpxchg(pcp, oval, nval)
-# endif
-# ifndef this_cpu_cmpxchg_4
-# define this_cpu_cmpxchg_4(pcp, oval, nval) _this_cpu_generic_cmpxchg(pcp, oval, nval)
-# endif
-# ifndef this_cpu_cmpxchg_8
-# define this_cpu_cmpxchg_8(pcp, oval, nval) _this_cpu_generic_cmpxchg(pcp, oval, nval)
-# endif
-# define this_cpu_cmpxchg(pcp, oval, nval) \
- __pcpu_size_call_return2(this_cpu_cmpxchg_, pcp, oval, nval)
-#endif
-
-/*
- * cmpxchg_double replaces two adjacent scalars at once. The first
- * two parameters are per cpu variables which have to be of the same
- * size. A truth value is returned to indicate success or failure
- * (since a double register result is difficult to handle). There is
- * very limited hardware support for these operations, so only certain
- * sizes may work.
- */
-#define _this_cpu_generic_cmpxchg_double(pcp1, pcp2, oval1, oval2, nval1, nval2) \
-({ \
- int ret__; \
- unsigned long flags; \
- raw_local_irq_save(flags); \
- ret__ = __this_cpu_generic_cmpxchg_double(pcp1, pcp2, \
- oval1, oval2, nval1, nval2); \
- raw_local_irq_restore(flags); \
- ret__; \
-})
-
-#ifndef this_cpu_cmpxchg_double
-# ifndef this_cpu_cmpxchg_double_1
-# define this_cpu_cmpxchg_double_1(pcp1, pcp2, oval1, oval2, nval1, nval2) \
- _this_cpu_generic_cmpxchg_double(pcp1, pcp2, oval1, oval2, nval1, nval2)
-# endif
-# ifndef this_cpu_cmpxchg_double_2
-# define this_cpu_cmpxchg_double_2(pcp1, pcp2, oval1, oval2, nval1, nval2) \
- _this_cpu_generic_cmpxchg_double(pcp1, pcp2, oval1, oval2, nval1, nval2)
-# endif
-# ifndef this_cpu_cmpxchg_double_4
-# define this_cpu_cmpxchg_double_4(pcp1, pcp2, oval1, oval2, nval1, nval2) \
- _this_cpu_generic_cmpxchg_double(pcp1, pcp2, oval1, oval2, nval1, nval2)
-# endif
-# ifndef this_cpu_cmpxchg_double_8
-# define this_cpu_cmpxchg_double_8(pcp1, pcp2, oval1, oval2, nval1, nval2) \
- _this_cpu_generic_cmpxchg_double(pcp1, pcp2, oval1, oval2, nval1, nval2)
-# endif
-# define this_cpu_cmpxchg_double(pcp1, pcp2, oval1, oval2, nval1, nval2) \
- __pcpu_double_call_return_bool(this_cpu_cmpxchg_double_, (pcp1), (pcp2), (oval1), (oval2), (nval1), (nval2))
-#endif
-
-/*
- * Generic percpu operations for context that are safe from preemption/interrupts.
- * Either we do not care about races or the caller has the
- * responsibility of handling preemption/interrupt issues. Arch code can still
- * override these instructions since the arch per cpu code may be more
- * efficient and may actually get race freeness for free (that is the
- * case for x86 for example).
- *
- * If there is no other protection through preempt disable and/or
- * disabling interupts then one of these RMW operations can show unexpected
- * behavior because the execution thread was rescheduled on another processor
- * or an interrupt occurred and the same percpu variable was modified from
- * the interrupt context.
- */
-#ifndef __this_cpu_read
-# ifndef __this_cpu_read_1
-# define __this_cpu_read_1(pcp) (*__this_cpu_ptr(&(pcp)))
-# endif
-# ifndef __this_cpu_read_2
-# define __this_cpu_read_2(pcp) (*__this_cpu_ptr(&(pcp)))
-# endif
-# ifndef __this_cpu_read_4
-# define __this_cpu_read_4(pcp) (*__this_cpu_ptr(&(pcp)))
-# endif
-# ifndef __this_cpu_read_8
-# define __this_cpu_read_8(pcp) (*__this_cpu_ptr(&(pcp)))
-# endif
-# define __this_cpu_read(pcp) __pcpu_size_call_return(__this_cpu_read_, (pcp))
-#endif
-
-#define __this_cpu_generic_to_op(pcp, val, op) \
-do { \
- *__this_cpu_ptr(&(pcp)) op val; \
-} while (0)
-
-#ifndef __this_cpu_write
-# ifndef __this_cpu_write_1
-# define __this_cpu_write_1(pcp, val) __this_cpu_generic_to_op((pcp), (val), =)
-# endif
-# ifndef __this_cpu_write_2
-# define __this_cpu_write_2(pcp, val) __this_cpu_generic_to_op((pcp), (val), =)
-# endif
-# ifndef __this_cpu_write_4
-# define __this_cpu_write_4(pcp, val) __this_cpu_generic_to_op((pcp), (val), =)
-# endif
-# ifndef __this_cpu_write_8
-# define __this_cpu_write_8(pcp, val) __this_cpu_generic_to_op((pcp), (val), =)
-# endif
-# define __this_cpu_write(pcp, val) __pcpu_size_call(__this_cpu_write_, (pcp), (val))
-#endif
-
-#ifndef __this_cpu_add
-# ifndef __this_cpu_add_1
-# define __this_cpu_add_1(pcp, val) __this_cpu_generic_to_op((pcp), (val), +=)
-# endif
-# ifndef __this_cpu_add_2
-# define __this_cpu_add_2(pcp, val) __this_cpu_generic_to_op((pcp), (val), +=)
-# endif
-# ifndef __this_cpu_add_4
-# define __this_cpu_add_4(pcp, val) __this_cpu_generic_to_op((pcp), (val), +=)
-# endif
-# ifndef __this_cpu_add_8
-# define __this_cpu_add_8(pcp, val) __this_cpu_generic_to_op((pcp), (val), +=)
-# endif
-# define __this_cpu_add(pcp, val) __pcpu_size_call(__this_cpu_add_, (pcp), (val))
-#endif
-
-#ifndef __this_cpu_sub
-# define __this_cpu_sub(pcp, val) __this_cpu_add((pcp), -(val))
-#endif
-
-#ifndef __this_cpu_inc
-# define __this_cpu_inc(pcp) __this_cpu_add((pcp), 1)
-#endif
-
-#ifndef __this_cpu_dec
-# define __this_cpu_dec(pcp) __this_cpu_sub((pcp), 1)
-#endif
-
-#ifndef __this_cpu_and
-# ifndef __this_cpu_and_1
-# define __this_cpu_and_1(pcp, val) __this_cpu_generic_to_op((pcp), (val), &=)
-# endif
-# ifndef __this_cpu_and_2
-# define __this_cpu_and_2(pcp, val) __this_cpu_generic_to_op((pcp), (val), &=)
-# endif
-# ifndef __this_cpu_and_4
-# define __this_cpu_and_4(pcp, val) __this_cpu_generic_to_op((pcp), (val), &=)
-# endif
-# ifndef __this_cpu_and_8
-# define __this_cpu_and_8(pcp, val) __this_cpu_generic_to_op((pcp), (val), &=)
-# endif
-# define __this_cpu_and(pcp, val) __pcpu_size_call(__this_cpu_and_, (pcp), (val))
-#endif
-
-#ifndef __this_cpu_or
-# ifndef __this_cpu_or_1
-# define __this_cpu_or_1(pcp, val) __this_cpu_generic_to_op((pcp), (val), |=)
-# endif
-# ifndef __this_cpu_or_2
-# define __this_cpu_or_2(pcp, val) __this_cpu_generic_to_op((pcp), (val), |=)
-# endif
-# ifndef __this_cpu_or_4
-# define __this_cpu_or_4(pcp, val) __this_cpu_generic_to_op((pcp), (val), |=)
-# endif
-# ifndef __this_cpu_or_8
-# define __this_cpu_or_8(pcp, val) __this_cpu_generic_to_op((pcp), (val), |=)
-# endif
-# define __this_cpu_or(pcp, val) __pcpu_size_call(__this_cpu_or_, (pcp), (val))
-#endif
-
-#ifndef __this_cpu_xor
-# ifndef __this_cpu_xor_1
-# define __this_cpu_xor_1(pcp, val) __this_cpu_generic_to_op((pcp), (val), ^=)
-# endif
-# ifndef __this_cpu_xor_2
-# define __this_cpu_xor_2(pcp, val) __this_cpu_generic_to_op((pcp), (val), ^=)
-# endif
-# ifndef __this_cpu_xor_4
-# define __this_cpu_xor_4(pcp, val) __this_cpu_generic_to_op((pcp), (val), ^=)
-# endif
-# ifndef __this_cpu_xor_8
-# define __this_cpu_xor_8(pcp, val) __this_cpu_generic_to_op((pcp), (val), ^=)
-# endif
-# define __this_cpu_xor(pcp, val) __pcpu_size_call(__this_cpu_xor_, (pcp), (val))
-#endif
-
-#define __this_cpu_generic_add_return(pcp, val) \
-({ \
- __this_cpu_add(pcp, val); \
- __this_cpu_read(pcp); \
-})
-
-#ifndef __this_cpu_add_return
-# ifndef __this_cpu_add_return_1
-# define __this_cpu_add_return_1(pcp, val) __this_cpu_generic_add_return(pcp, val)
-# endif
-# ifndef __this_cpu_add_return_2
-# define __this_cpu_add_return_2(pcp, val) __this_cpu_generic_add_return(pcp, val)
-# endif
-# ifndef __this_cpu_add_return_4
-# define __this_cpu_add_return_4(pcp, val) __this_cpu_generic_add_return(pcp, val)
-# endif
-# ifndef __this_cpu_add_return_8
-# define __this_cpu_add_return_8(pcp, val) __this_cpu_generic_add_return(pcp, val)
-# endif
-# define __this_cpu_add_return(pcp, val) \
- __pcpu_size_call_return2(__this_cpu_add_return_, pcp, val)
-#endif
-
-#define __this_cpu_sub_return(pcp, val) __this_cpu_add_return(pcp, -(val))
-#define __this_cpu_inc_return(pcp) __this_cpu_add_return(pcp, 1)
-#define __this_cpu_dec_return(pcp) __this_cpu_add_return(pcp, -1)
-
-#define __this_cpu_generic_xchg(pcp, nval) \
-({ typeof(pcp) ret__; \
- ret__ = __this_cpu_read(pcp); \
- __this_cpu_write(pcp, nval); \
- ret__; \
-})
-
-#ifndef __this_cpu_xchg
-# ifndef __this_cpu_xchg_1
-# define __this_cpu_xchg_1(pcp, nval) __this_cpu_generic_xchg(pcp, nval)
-# endif
-# ifndef __this_cpu_xchg_2
-# define __this_cpu_xchg_2(pcp, nval) __this_cpu_generic_xchg(pcp, nval)
-# endif
-# ifndef __this_cpu_xchg_4
-# define __this_cpu_xchg_4(pcp, nval) __this_cpu_generic_xchg(pcp, nval)
-# endif
-# ifndef __this_cpu_xchg_8
-# define __this_cpu_xchg_8(pcp, nval) __this_cpu_generic_xchg(pcp, nval)
-# endif
-# define __this_cpu_xchg(pcp, nval) \
- __pcpu_size_call_return2(__this_cpu_xchg_, (pcp), nval)
-#endif
-
-#define __this_cpu_generic_cmpxchg(pcp, oval, nval) \
-({ \
- typeof(pcp) ret__; \
- ret__ = __this_cpu_read(pcp); \
- if (ret__ == (oval)) \
- __this_cpu_write(pcp, nval); \
- ret__; \
-})
-
-#ifndef __this_cpu_cmpxchg
-# ifndef __this_cpu_cmpxchg_1
-# define __this_cpu_cmpxchg_1(pcp, oval, nval) __this_cpu_generic_cmpxchg(pcp, oval, nval)
-# endif
-# ifndef __this_cpu_cmpxchg_2
-# define __this_cpu_cmpxchg_2(pcp, oval, nval) __this_cpu_generic_cmpxchg(pcp, oval, nval)
-# endif
-# ifndef __this_cpu_cmpxchg_4
-# define __this_cpu_cmpxchg_4(pcp, oval, nval) __this_cpu_generic_cmpxchg(pcp, oval, nval)
-# endif
-# ifndef __this_cpu_cmpxchg_8
-# define __this_cpu_cmpxchg_8(pcp, oval, nval) __this_cpu_generic_cmpxchg(pcp, oval, nval)
-# endif
-# define __this_cpu_cmpxchg(pcp, oval, nval) \
- __pcpu_size_call_return2(__this_cpu_cmpxchg_, pcp, oval, nval)
-#endif
-
-#define __this_cpu_generic_cmpxchg_double(pcp1, pcp2, oval1, oval2, nval1, nval2) \
-({ \
- int __ret = 0; \
- if (__this_cpu_read(pcp1) == (oval1) && \
- __this_cpu_read(pcp2) == (oval2)) { \
- __this_cpu_write(pcp1, (nval1)); \
- __this_cpu_write(pcp2, (nval2)); \
- __ret = 1; \
- } \
- (__ret); \
-})
-
-#ifndef __this_cpu_cmpxchg_double
-# ifndef __this_cpu_cmpxchg_double_1
-# define __this_cpu_cmpxchg_double_1(pcp1, pcp2, oval1, oval2, nval1, nval2) \
- __this_cpu_generic_cmpxchg_double(pcp1, pcp2, oval1, oval2, nval1, nval2)
-# endif
-# ifndef __this_cpu_cmpxchg_double_2
-# define __this_cpu_cmpxchg_double_2(pcp1, pcp2, oval1, oval2, nval1, nval2) \
- __this_cpu_generic_cmpxchg_double(pcp1, pcp2, oval1, oval2, nval1, nval2)
-# endif
-# ifndef __this_cpu_cmpxchg_double_4
-# define __this_cpu_cmpxchg_double_4(pcp1, pcp2, oval1, oval2, nval1, nval2) \
- __this_cpu_generic_cmpxchg_double(pcp1, pcp2, oval1, oval2, nval1, nval2)
-# endif
-# ifndef __this_cpu_cmpxchg_double_8
-# define __this_cpu_cmpxchg_double_8(pcp1, pcp2, oval1, oval2, nval1, nval2) \
- __this_cpu_generic_cmpxchg_double(pcp1, pcp2, oval1, oval2, nval1, nval2)
-# endif
-# define __this_cpu_cmpxchg_double(pcp1, pcp2, oval1, oval2, nval1, nval2) \
- __pcpu_double_call_return_bool(__this_cpu_cmpxchg_double_, (pcp1), (pcp2), (oval1), (oval2), (nval1), (nval2))
-#endif
-
-#endif /* __LINUX_PERCPU_H */
diff --git a/ANDROID_3.4.5/include/linux/percpu_counter.h b/ANDROID_3.4.5/include/linux/percpu_counter.h
deleted file mode 100644
index b9df9ed1..00000000
--- a/ANDROID_3.4.5/include/linux/percpu_counter.h
+++ /dev/null
@@ -1,177 +0,0 @@
-#ifndef _LINUX_PERCPU_COUNTER_H
-#define _LINUX_PERCPU_COUNTER_H
-/*
- * A simple "approximate counter" for use in ext2 and ext3 superblocks.
- *
- * WARNING: these things are HUGE. 4 kbytes per counter on 32-way P4.
- */
-
-#include <linux/spinlock.h>
-#include <linux/smp.h>
-#include <linux/list.h>
-#include <linux/threads.h>
-#include <linux/percpu.h>
-#include <linux/types.h>
-
-#ifdef CONFIG_SMP
-
-struct percpu_counter {
- raw_spinlock_t lock;
- s64 count;
-#ifdef CONFIG_HOTPLUG_CPU
- struct list_head list; /* All percpu_counters are on a list */
-#endif
- s32 __percpu *counters;
-};
-
-extern int percpu_counter_batch;
-
-int __percpu_counter_init(struct percpu_counter *fbc, s64 amount,
- struct lock_class_key *key);
-
-#define percpu_counter_init(fbc, value) \
- ({ \
- static struct lock_class_key __key; \
- \
- __percpu_counter_init(fbc, value, &__key); \
- })
-
-void percpu_counter_destroy(struct percpu_counter *fbc);
-void percpu_counter_set(struct percpu_counter *fbc, s64 amount);
-void __percpu_counter_add(struct percpu_counter *fbc, s64 amount, s32 batch);
-s64 __percpu_counter_sum(struct percpu_counter *fbc);
-int percpu_counter_compare(struct percpu_counter *fbc, s64 rhs);
-
-static inline void percpu_counter_add(struct percpu_counter *fbc, s64 amount)
-{
- __percpu_counter_add(fbc, amount, percpu_counter_batch);
-}
-
-static inline s64 percpu_counter_sum_positive(struct percpu_counter *fbc)
-{
- s64 ret = __percpu_counter_sum(fbc);
- return ret < 0 ? 0 : ret;
-}
-
-static inline s64 percpu_counter_sum(struct percpu_counter *fbc)
-{
- return __percpu_counter_sum(fbc);
-}
-
-static inline s64 percpu_counter_read(struct percpu_counter *fbc)
-{
- return fbc->count;
-}
-
-/*
- * It is possible for the percpu_counter_read() to return a small negative
- * number for some counter which should never be negative.
- *
- */
-static inline s64 percpu_counter_read_positive(struct percpu_counter *fbc)
-{
- s64 ret = fbc->count;
-
- barrier(); /* Prevent reloads of fbc->count */
- if (ret >= 0)
- return ret;
- return 0;
-}
-
-static inline int percpu_counter_initialized(struct percpu_counter *fbc)
-{
- return (fbc->counters != NULL);
-}
-
-#else
-
-struct percpu_counter {
- s64 count;
-};
-
-static inline int percpu_counter_init(struct percpu_counter *fbc, s64 amount)
-{
- fbc->count = amount;
- return 0;
-}
-
-static inline void percpu_counter_destroy(struct percpu_counter *fbc)
-{
-}
-
-static inline void percpu_counter_set(struct percpu_counter *fbc, s64 amount)
-{
- fbc->count = amount;
-}
-
-static inline int percpu_counter_compare(struct percpu_counter *fbc, s64 rhs)
-{
- if (fbc->count > rhs)
- return 1;
- else if (fbc->count < rhs)
- return -1;
- else
- return 0;
-}
-
-static inline void
-percpu_counter_add(struct percpu_counter *fbc, s64 amount)
-{
- preempt_disable();
- fbc->count += amount;
- preempt_enable();
-}
-
-static inline void
-__percpu_counter_add(struct percpu_counter *fbc, s64 amount, s32 batch)
-{
- percpu_counter_add(fbc, amount);
-}
-
-static inline s64 percpu_counter_read(struct percpu_counter *fbc)
-{
- return fbc->count;
-}
-
-/*
- * percpu_counter is intended to track positive numbers. In the UP case the
- * number should never be negative.
- */
-static inline s64 percpu_counter_read_positive(struct percpu_counter *fbc)
-{
- return fbc->count;
-}
-
-static inline s64 percpu_counter_sum_positive(struct percpu_counter *fbc)
-{
- return percpu_counter_read_positive(fbc);
-}
-
-static inline s64 percpu_counter_sum(struct percpu_counter *fbc)
-{
- return percpu_counter_read(fbc);
-}
-
-static inline int percpu_counter_initialized(struct percpu_counter *fbc)
-{
- return 1;
-}
-
-#endif /* CONFIG_SMP */
-
-static inline void percpu_counter_inc(struct percpu_counter *fbc)
-{
- percpu_counter_add(fbc, 1);
-}
-
-static inline void percpu_counter_dec(struct percpu_counter *fbc)
-{
- percpu_counter_add(fbc, -1);
-}
-
-static inline void percpu_counter_sub(struct percpu_counter *fbc, s64 amount)
-{
- percpu_counter_add(fbc, -amount);
-}
-
-#endif /* _LINUX_PERCPU_COUNTER_H */
diff --git a/ANDROID_3.4.5/include/linux/perf_event.h b/ANDROID_3.4.5/include/linux/perf_event.h
deleted file mode 100644
index ddbb6a90..00000000
--- a/ANDROID_3.4.5/include/linux/perf_event.h
+++ /dev/null
@@ -1,1365 +0,0 @@
-/*
- * Performance events:
- *
- * Copyright (C) 2008-2009, Thomas Gleixner <tglx@linutronix.de>
- * Copyright (C) 2008-2011, Red Hat, Inc., Ingo Molnar
- * Copyright (C) 2008-2011, Red Hat, Inc., Peter Zijlstra
- *
- * Data type definitions, declarations, prototypes.
- *
- * Started by: Thomas Gleixner and Ingo Molnar
- *
- * For licencing details see kernel-base/COPYING
- */
-#ifndef _LINUX_PERF_EVENT_H
-#define _LINUX_PERF_EVENT_H
-
-#include <linux/types.h>
-#include <linux/ioctl.h>
-#include <asm/byteorder.h>
-
-/*
- * User-space ABI bits:
- */
-
-/*
- * attr.type
- */
-enum perf_type_id {
- PERF_TYPE_HARDWARE = 0,
- PERF_TYPE_SOFTWARE = 1,
- PERF_TYPE_TRACEPOINT = 2,
- PERF_TYPE_HW_CACHE = 3,
- PERF_TYPE_RAW = 4,
- PERF_TYPE_BREAKPOINT = 5,
-
- PERF_TYPE_MAX, /* non-ABI */
-};
-
-/*
- * Generalized performance event event_id types, used by the
- * attr.event_id parameter of the sys_perf_event_open()
- * syscall:
- */
-enum perf_hw_id {
- /*
- * Common hardware events, generalized by the kernel:
- */
- PERF_COUNT_HW_CPU_CYCLES = 0,
- PERF_COUNT_HW_INSTRUCTIONS = 1,
- PERF_COUNT_HW_CACHE_REFERENCES = 2,
- PERF_COUNT_HW_CACHE_MISSES = 3,
- PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 4,
- PERF_COUNT_HW_BRANCH_MISSES = 5,
- PERF_COUNT_HW_BUS_CYCLES = 6,
- PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 7,
- PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 8,
- PERF_COUNT_HW_REF_CPU_CYCLES = 9,
-
- PERF_COUNT_HW_MAX, /* non-ABI */
-};
-
-/*
- * Generalized hardware cache events:
- *
- * { L1-D, L1-I, LLC, ITLB, DTLB, BPU, NODE } x
- * { read, write, prefetch } x
- * { accesses, misses }
- */
-enum perf_hw_cache_id {
- PERF_COUNT_HW_CACHE_L1D = 0,
- PERF_COUNT_HW_CACHE_L1I = 1,
- PERF_COUNT_HW_CACHE_LL = 2,
- PERF_COUNT_HW_CACHE_DTLB = 3,
- PERF_COUNT_HW_CACHE_ITLB = 4,
- PERF_COUNT_HW_CACHE_BPU = 5,
- PERF_COUNT_HW_CACHE_NODE = 6,
-
- PERF_COUNT_HW_CACHE_MAX, /* non-ABI */
-};
-
-enum perf_hw_cache_op_id {
- PERF_COUNT_HW_CACHE_OP_READ = 0,
- PERF_COUNT_HW_CACHE_OP_WRITE = 1,
- PERF_COUNT_HW_CACHE_OP_PREFETCH = 2,
-
- PERF_COUNT_HW_CACHE_OP_MAX, /* non-ABI */
-};
-
-enum perf_hw_cache_op_result_id {
- PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0,
- PERF_COUNT_HW_CACHE_RESULT_MISS = 1,
-
- PERF_COUNT_HW_CACHE_RESULT_MAX, /* non-ABI */
-};
-
-/*
- * Special "software" events provided by the kernel, even if the hardware
- * does not support performance events. These events measure various
- * physical and sw events of the kernel (and allow the profiling of them as
- * well):
- */
-enum perf_sw_ids {
- PERF_COUNT_SW_CPU_CLOCK = 0,
- PERF_COUNT_SW_TASK_CLOCK = 1,
- PERF_COUNT_SW_PAGE_FAULTS = 2,
- PERF_COUNT_SW_CONTEXT_SWITCHES = 3,
- PERF_COUNT_SW_CPU_MIGRATIONS = 4,
- PERF_COUNT_SW_PAGE_FAULTS_MIN = 5,
- PERF_COUNT_SW_PAGE_FAULTS_MAJ = 6,
- PERF_COUNT_SW_ALIGNMENT_FAULTS = 7,
- PERF_COUNT_SW_EMULATION_FAULTS = 8,
-
- PERF_COUNT_SW_MAX, /* non-ABI */
-};
-
-/*
- * Bits that can be set in attr.sample_type to request information
- * in the overflow packets.
- */
-enum perf_event_sample_format {
- PERF_SAMPLE_IP = 1U << 0,
- PERF_SAMPLE_TID = 1U << 1,
- PERF_SAMPLE_TIME = 1U << 2,
- PERF_SAMPLE_ADDR = 1U << 3,
- PERF_SAMPLE_READ = 1U << 4,
- PERF_SAMPLE_CALLCHAIN = 1U << 5,
- PERF_SAMPLE_ID = 1U << 6,
- PERF_SAMPLE_CPU = 1U << 7,
- PERF_SAMPLE_PERIOD = 1U << 8,
- PERF_SAMPLE_STREAM_ID = 1U << 9,
- PERF_SAMPLE_RAW = 1U << 10,
- PERF_SAMPLE_BRANCH_STACK = 1U << 11,
-
- PERF_SAMPLE_MAX = 1U << 12, /* non-ABI */
-};
-
-/*
- * values to program into branch_sample_type when PERF_SAMPLE_BRANCH is set
- *
- * If the user does not pass priv level information via branch_sample_type,
- * the kernel uses the event's priv level. Branch and event priv levels do
- * not have to match. Branch priv level is checked for permissions.
- *
- * The branch types can be combined, however BRANCH_ANY covers all types
- * of branches and therefore it supersedes all the other types.
- */
-enum perf_branch_sample_type {
- PERF_SAMPLE_BRANCH_USER = 1U << 0, /* user branches */
- PERF_SAMPLE_BRANCH_KERNEL = 1U << 1, /* kernel branches */
- PERF_SAMPLE_BRANCH_HV = 1U << 2, /* hypervisor branches */
-
- PERF_SAMPLE_BRANCH_ANY = 1U << 3, /* any branch types */
- PERF_SAMPLE_BRANCH_ANY_CALL = 1U << 4, /* any call branch */
- PERF_SAMPLE_BRANCH_ANY_RETURN = 1U << 5, /* any return branch */
- PERF_SAMPLE_BRANCH_IND_CALL = 1U << 6, /* indirect calls */
-
- PERF_SAMPLE_BRANCH_MAX = 1U << 7, /* non-ABI */
-};
-
-#define PERF_SAMPLE_BRANCH_PLM_ALL \
- (PERF_SAMPLE_BRANCH_USER|\
- PERF_SAMPLE_BRANCH_KERNEL|\
- PERF_SAMPLE_BRANCH_HV)
-
-/*
- * The format of the data returned by read() on a perf event fd,
- * as specified by attr.read_format:
- *
- * struct read_format {
- * { u64 value;
- * { u64 time_enabled; } && PERF_FORMAT_TOTAL_TIME_ENABLED
- * { u64 time_running; } && PERF_FORMAT_TOTAL_TIME_RUNNING
- * { u64 id; } && PERF_FORMAT_ID
- * } && !PERF_FORMAT_GROUP
- *
- * { u64 nr;
- * { u64 time_enabled; } && PERF_FORMAT_TOTAL_TIME_ENABLED
- * { u64 time_running; } && PERF_FORMAT_TOTAL_TIME_RUNNING
- * { u64 value;
- * { u64 id; } && PERF_FORMAT_ID
- * } cntr[nr];
- * } && PERF_FORMAT_GROUP
- * };
- */
-enum perf_event_read_format {
- PERF_FORMAT_TOTAL_TIME_ENABLED = 1U << 0,
- PERF_FORMAT_TOTAL_TIME_RUNNING = 1U << 1,
- PERF_FORMAT_ID = 1U << 2,
- PERF_FORMAT_GROUP = 1U << 3,
-
- PERF_FORMAT_MAX = 1U << 4, /* non-ABI */
-};
-
-#define PERF_ATTR_SIZE_VER0 64 /* sizeof first published struct */
-#define PERF_ATTR_SIZE_VER1 72 /* add: config2 */
-#define PERF_ATTR_SIZE_VER2 80 /* add: branch_sample_type */
-
-/*
- * Hardware event_id to monitor via a performance monitoring event:
- */
-struct perf_event_attr {
-
- /*
- * Major type: hardware/software/tracepoint/etc.
- */
- __u32 type;
-
- /*
- * Size of the attr structure, for fwd/bwd compat.
- */
- __u32 size;
-
- /*
- * Type specific configuration information.
- */
- __u64 config;
-
- union {
- __u64 sample_period;
- __u64 sample_freq;
- };
-
- __u64 sample_type;
- __u64 read_format;
-
- __u64 disabled : 1, /* off by default */
- inherit : 1, /* children inherit it */
- pinned : 1, /* must always be on PMU */
- exclusive : 1, /* only group on PMU */
- exclude_user : 1, /* don't count user */
- exclude_kernel : 1, /* ditto kernel */
- exclude_hv : 1, /* ditto hypervisor */
- exclude_idle : 1, /* don't count when idle */
- mmap : 1, /* include mmap data */
- comm : 1, /* include comm data */
- freq : 1, /* use freq, not period */
- inherit_stat : 1, /* per task counts */
- enable_on_exec : 1, /* next exec enables */
- task : 1, /* trace fork/exit */
- watermark : 1, /* wakeup_watermark */
- /*
- * precise_ip:
- *
- * 0 - SAMPLE_IP can have arbitrary skid
- * 1 - SAMPLE_IP must have constant skid
- * 2 - SAMPLE_IP requested to have 0 skid
- * 3 - SAMPLE_IP must have 0 skid
- *
- * See also PERF_RECORD_MISC_EXACT_IP
- */
- precise_ip : 2, /* skid constraint */
- mmap_data : 1, /* non-exec mmap data */
- sample_id_all : 1, /* sample_type all events */
-
- exclude_host : 1, /* don't count in host */
- exclude_guest : 1, /* don't count in guest */
-
- __reserved_1 : 43;
-
- union {
- __u32 wakeup_events; /* wakeup every n events */
- __u32 wakeup_watermark; /* bytes before wakeup */
- };
-
- __u32 bp_type;
- union {
- __u64 bp_addr;
- __u64 config1; /* extension of config */
- };
- union {
- __u64 bp_len;
- __u64 config2; /* extension of config1 */
- };
- __u64 branch_sample_type; /* enum branch_sample_type */
-};
-
-/*
- * Ioctls that can be done on a perf event fd:
- */
-#define PERF_EVENT_IOC_ENABLE _IO ('$', 0)
-#define PERF_EVENT_IOC_DISABLE _IO ('$', 1)
-#define PERF_EVENT_IOC_REFRESH _IO ('$', 2)
-#define PERF_EVENT_IOC_RESET _IO ('$', 3)
-#define PERF_EVENT_IOC_PERIOD _IOW('$', 4, __u64)
-#define PERF_EVENT_IOC_SET_OUTPUT _IO ('$', 5)
-#define PERF_EVENT_IOC_SET_FILTER _IOW('$', 6, char *)
-
-enum perf_event_ioc_flags {
- PERF_IOC_FLAG_GROUP = 1U << 0,
-};
-
-/*
- * Structure of the page that can be mapped via mmap
- */
-struct perf_event_mmap_page {
- __u32 version; /* version number of this structure */
- __u32 compat_version; /* lowest version this is compat with */
-
- /*
- * Bits needed to read the hw events in user-space.
- *
- * u32 seq, time_mult, time_shift, idx, width;
- * u64 count, enabled, running;
- * u64 cyc, time_offset;
- * s64 pmc = 0;
- *
- * do {
- * seq = pc->lock;
- * barrier()
- *
- * enabled = pc->time_enabled;
- * running = pc->time_running;
- *
- * if (pc->cap_usr_time && enabled != running) {
- * cyc = rdtsc();
- * time_offset = pc->time_offset;
- * time_mult = pc->time_mult;
- * time_shift = pc->time_shift;
- * }
- *
- * idx = pc->index;
- * count = pc->offset;
- * if (pc->cap_usr_rdpmc && idx) {
- * width = pc->pmc_width;
- * pmc = rdpmc(idx - 1);
- * }
- *
- * barrier();
- * } while (pc->lock != seq);
- *
- * NOTE: for obvious reason this only works on self-monitoring
- * processes.
- */
- __u32 lock; /* seqlock for synchronization */
- __u32 index; /* hardware event identifier */
- __s64 offset; /* add to hardware event value */
- __u64 time_enabled; /* time event active */
- __u64 time_running; /* time event on cpu */
- union {
- __u64 capabilities;
- __u64 cap_usr_time : 1,
- cap_usr_rdpmc : 1,
- cap_____res : 62;
- };
-
- /*
- * If cap_usr_rdpmc this field provides the bit-width of the value
- * read using the rdpmc() or equivalent instruction. This can be used
- * to sign extend the result like:
- *
- * pmc <<= 64 - width;
- * pmc >>= 64 - width; // signed shift right
- * count += pmc;
- */
- __u16 pmc_width;
-
- /*
- * If cap_usr_time the below fields can be used to compute the time
- * delta since time_enabled (in ns) using rdtsc or similar.
- *
- * u64 quot, rem;
- * u64 delta;
- *
- * quot = (cyc >> time_shift);
- * rem = cyc & ((1 << time_shift) - 1);
- * delta = time_offset + quot * time_mult +
- * ((rem * time_mult) >> time_shift);
- *
- * Where time_offset,time_mult,time_shift and cyc are read in the
- * seqcount loop described above. This delta can then be added to
- * enabled and possible running (if idx), improving the scaling:
- *
- * enabled += delta;
- * if (idx)
- * running += delta;
- *
- * quot = count / running;
- * rem = count % running;
- * count = quot * enabled + (rem * enabled) / running;
- */
- __u16 time_shift;
- __u32 time_mult;
- __u64 time_offset;
-
- /*
- * Hole for extension of the self monitor capabilities
- */
-
- __u64 __reserved[120]; /* align to 1k */
-
- /*
- * Control data for the mmap() data buffer.
- *
- * User-space reading the @data_head value should issue an rmb(), on
- * SMP capable platforms, after reading this value -- see
- * perf_event_wakeup().
- *
- * When the mapping is PROT_WRITE the @data_tail value should be
- * written by userspace to reflect the last read data. In this case
- * the kernel will not over-write unread data.
- */
- __u64 data_head; /* head in the data section */
- __u64 data_tail; /* user-space written tail */
-};
-
-#define PERF_RECORD_MISC_CPUMODE_MASK (7 << 0)
-#define PERF_RECORD_MISC_CPUMODE_UNKNOWN (0 << 0)
-#define PERF_RECORD_MISC_KERNEL (1 << 0)
-#define PERF_RECORD_MISC_USER (2 << 0)
-#define PERF_RECORD_MISC_HYPERVISOR (3 << 0)
-#define PERF_RECORD_MISC_GUEST_KERNEL (4 << 0)
-#define PERF_RECORD_MISC_GUEST_USER (5 << 0)
-
-/*
- * Indicates that the content of PERF_SAMPLE_IP points to
- * the actual instruction that triggered the event. See also
- * perf_event_attr::precise_ip.
- */
-#define PERF_RECORD_MISC_EXACT_IP (1 << 14)
-/*
- * Reserve the last bit to indicate some extended misc field
- */
-#define PERF_RECORD_MISC_EXT_RESERVED (1 << 15)
-
-struct perf_event_header {
- __u32 type;
- __u16 misc;
- __u16 size;
-};
-
-enum perf_event_type {
-
- /*
- * If perf_event_attr.sample_id_all is set then all event types will
- * have the sample_type selected fields related to where/when
- * (identity) an event took place (TID, TIME, ID, CPU, STREAM_ID)
- * described in PERF_RECORD_SAMPLE below, it will be stashed just after
- * the perf_event_header and the fields already present for the existing
- * fields, i.e. at the end of the payload. That way a newer perf.data
- * file will be supported by older perf tools, with these new optional
- * fields being ignored.
- *
- * The MMAP events record the PROT_EXEC mappings so that we can
- * correlate userspace IPs to code. They have the following structure:
- *
- * struct {
- * struct perf_event_header header;
- *
- * u32 pid, tid;
- * u64 addr;
- * u64 len;
- * u64 pgoff;
- * char filename[];
- * };
- */
- PERF_RECORD_MMAP = 1,
-
- /*
- * struct {
- * struct perf_event_header header;
- * u64 id;
- * u64 lost;
- * };
- */
- PERF_RECORD_LOST = 2,
-
- /*
- * struct {
- * struct perf_event_header header;
- *
- * u32 pid, tid;
- * char comm[];
- * };
- */
- PERF_RECORD_COMM = 3,
-
- /*
- * struct {
- * struct perf_event_header header;
- * u32 pid, ppid;
- * u32 tid, ptid;
- * u64 time;
- * };
- */
- PERF_RECORD_EXIT = 4,
-
- /*
- * struct {
- * struct perf_event_header header;
- * u64 time;
- * u64 id;
- * u64 stream_id;
- * };
- */
- PERF_RECORD_THROTTLE = 5,
- PERF_RECORD_UNTHROTTLE = 6,
-
- /*
- * struct {
- * struct perf_event_header header;
- * u32 pid, ppid;
- * u32 tid, ptid;
- * u64 time;
- * };
- */
- PERF_RECORD_FORK = 7,
-
- /*
- * struct {
- * struct perf_event_header header;
- * u32 pid, tid;
- *
- * struct read_format values;
- * };
- */
- PERF_RECORD_READ = 8,
-
- /*
- * struct {
- * struct perf_event_header header;
- *
- * { u64 ip; } && PERF_SAMPLE_IP
- * { u32 pid, tid; } && PERF_SAMPLE_TID
- * { u64 time; } && PERF_SAMPLE_TIME
- * { u64 addr; } && PERF_SAMPLE_ADDR
- * { u64 id; } && PERF_SAMPLE_ID
- * { u64 stream_id;} && PERF_SAMPLE_STREAM_ID
- * { u32 cpu, res; } && PERF_SAMPLE_CPU
- * { u64 period; } && PERF_SAMPLE_PERIOD
- *
- * { struct read_format values; } && PERF_SAMPLE_READ
- *
- * { u64 nr,
- * u64 ips[nr]; } && PERF_SAMPLE_CALLCHAIN
- *
- * #
- * # The RAW record below is opaque data wrt the ABI
- * #
- * # That is, the ABI doesn't make any promises wrt to
- * # the stability of its content, it may vary depending
- * # on event, hardware, kernel version and phase of
- * # the moon.
- * #
- * # In other words, PERF_SAMPLE_RAW contents are not an ABI.
- * #
- *
- * { u32 size;
- * char data[size];}&& PERF_SAMPLE_RAW
- *
- * { u64 from, to, flags } lbr[nr];} && PERF_SAMPLE_BRANCH_STACK
- * };
- */
- PERF_RECORD_SAMPLE = 9,
-
- PERF_RECORD_MAX, /* non-ABI */
-};
-
-enum perf_callchain_context {
- PERF_CONTEXT_HV = (__u64)-32,
- PERF_CONTEXT_KERNEL = (__u64)-128,
- PERF_CONTEXT_USER = (__u64)-512,
-
- PERF_CONTEXT_GUEST = (__u64)-2048,
- PERF_CONTEXT_GUEST_KERNEL = (__u64)-2176,
- PERF_CONTEXT_GUEST_USER = (__u64)-2560,
-
- PERF_CONTEXT_MAX = (__u64)-4095,
-};
-
-#define PERF_FLAG_FD_NO_GROUP (1U << 0)
-#define PERF_FLAG_FD_OUTPUT (1U << 1)
-#define PERF_FLAG_PID_CGROUP (1U << 2) /* pid=cgroup id, per-cpu mode only */
-
-#ifdef __KERNEL__
-/*
- * Kernel-internal data types and definitions:
- */
-
-#ifdef CONFIG_PERF_EVENTS
-# include <linux/cgroup.h>
-# include <asm/perf_event.h>
-# include <asm/local64.h>
-#endif
-
-struct perf_guest_info_callbacks {
- int (*is_in_guest)(void);
- int (*is_user_mode)(void);
- unsigned long (*get_guest_ip)(void);
-};
-
-#ifdef CONFIG_HAVE_HW_BREAKPOINT
-#include <asm/hw_breakpoint.h>
-#endif
-
-#include <linux/list.h>
-#include <linux/mutex.h>
-#include <linux/rculist.h>
-#include <linux/rcupdate.h>
-#include <linux/spinlock.h>
-#include <linux/hrtimer.h>
-#include <linux/fs.h>
-#include <linux/pid_namespace.h>
-#include <linux/workqueue.h>
-#include <linux/ftrace.h>
-#include <linux/cpu.h>
-#include <linux/irq_work.h>
-#include <linux/static_key.h>
-#include <linux/atomic.h>
-#include <linux/sysfs.h>
-#include <asm/local.h>
-
-#define PERF_MAX_STACK_DEPTH 255
-
-struct perf_callchain_entry {
- __u64 nr;
- __u64 ip[PERF_MAX_STACK_DEPTH];
-};
-
-struct perf_raw_record {
- u32 size;
- void *data;
-};
-
-/*
- * single taken branch record layout:
- *
- * from: source instruction (may not always be a branch insn)
- * to: branch target
- * mispred: branch target was mispredicted
- * predicted: branch target was predicted
- *
- * support for mispred, predicted is optional. In case it
- * is not supported mispred = predicted = 0.
- */
-struct perf_branch_entry {
- __u64 from;
- __u64 to;
- __u64 mispred:1, /* target mispredicted */
- predicted:1,/* target predicted */
- reserved:62;
-};
-
-/*
- * branch stack layout:
- * nr: number of taken branches stored in entries[]
- *
- * Note that nr can vary from sample to sample
- * branches (to, from) are stored from most recent
- * to least recent, i.e., entries[0] contains the most
- * recent branch.
- */
-struct perf_branch_stack {
- __u64 nr;
- struct perf_branch_entry entries[0];
-};
-
-struct task_struct;
-
-/*
- * extra PMU register associated with an event
- */
-struct hw_perf_event_extra {
- u64 config; /* register value */
- unsigned int reg; /* register address or index */
- int alloc; /* extra register already allocated */
- int idx; /* index in shared_regs->regs[] */
-};
-
-/**
- * struct hw_perf_event - performance event hardware details:
- */
-struct hw_perf_event {
-#ifdef CONFIG_PERF_EVENTS
- union {
- struct { /* hardware */
- u64 config;
- u64 last_tag;
- unsigned long config_base;
- unsigned long event_base;
- int idx;
- int last_cpu;
-
- struct hw_perf_event_extra extra_reg;
- struct hw_perf_event_extra branch_reg;
- };
- struct { /* software */
- struct hrtimer hrtimer;
- };
-#ifdef CONFIG_HAVE_HW_BREAKPOINT
- struct { /* breakpoint */
- struct arch_hw_breakpoint info;
- struct list_head bp_list;
- /*
- * Crufty hack to avoid the chicken and egg
- * problem hw_breakpoint has with context
- * creation and event initalization.
- */
- struct task_struct *bp_target;
- };
-#endif
- };
- int state;
- local64_t prev_count;
- u64 sample_period;
- u64 last_period;
- local64_t period_left;
- u64 interrupts_seq;
- u64 interrupts;
-
- u64 freq_time_stamp;
- u64 freq_count_stamp;
-#endif
-};
-
-/*
- * hw_perf_event::state flags
- */
-#define PERF_HES_STOPPED 0x01 /* the counter is stopped */
-#define PERF_HES_UPTODATE 0x02 /* event->count up-to-date */
-#define PERF_HES_ARCH 0x04
-
-struct perf_event;
-
-/*
- * Common implementation detail of pmu::{start,commit,cancel}_txn
- */
-#define PERF_EVENT_TXN 0x1
-
-/**
- * struct pmu - generic performance monitoring unit
- */
-struct pmu {
- struct list_head entry;
-
- struct device *dev;
- const struct attribute_group **attr_groups;
- char *name;
- int type;
-
- int * __percpu pmu_disable_count;
- struct perf_cpu_context * __percpu pmu_cpu_context;
- int task_ctx_nr;
-
- /*
- * Fully disable/enable this PMU, can be used to protect from the PMI
- * as well as for lazy/batch writing of the MSRs.
- */
- void (*pmu_enable) (struct pmu *pmu); /* optional */
- void (*pmu_disable) (struct pmu *pmu); /* optional */
-
- /*
- * Try and initialize the event for this PMU.
- * Should return -ENOENT when the @event doesn't match this PMU.
- */
- int (*event_init) (struct perf_event *event);
-
-#define PERF_EF_START 0x01 /* start the counter when adding */
-#define PERF_EF_RELOAD 0x02 /* reload the counter when starting */
-#define PERF_EF_UPDATE 0x04 /* update the counter when stopping */
-
- /*
- * Adds/Removes a counter to/from the PMU, can be done inside
- * a transaction, see the ->*_txn() methods.
- */
- int (*add) (struct perf_event *event, int flags);
- void (*del) (struct perf_event *event, int flags);
-
- /*
- * Starts/Stops a counter present on the PMU. The PMI handler
- * should stop the counter when perf_event_overflow() returns
- * !0. ->start() will be used to continue.
- */
- void (*start) (struct perf_event *event, int flags);
- void (*stop) (struct perf_event *event, int flags);
-
- /*
- * Updates the counter value of the event.
- */
- void (*read) (struct perf_event *event);
-
- /*
- * Group events scheduling is treated as a transaction, add
- * group events as a whole and perform one schedulability test.
- * If the test fails, roll back the whole group
- *
- * Start the transaction, after this ->add() doesn't need to
- * do schedulability tests.
- */
- void (*start_txn) (struct pmu *pmu); /* optional */
- /*
- * If ->start_txn() disabled the ->add() schedulability test
- * then ->commit_txn() is required to perform one. On success
- * the transaction is closed. On error the transaction is kept
- * open until ->cancel_txn() is called.
- */
- int (*commit_txn) (struct pmu *pmu); /* optional */
- /*
- * Will cancel the transaction, assumes ->del() is called
- * for each successful ->add() during the transaction.
- */
- void (*cancel_txn) (struct pmu *pmu); /* optional */
-
- /*
- * Will return the value for perf_event_mmap_page::index for this event,
- * if no implementation is provided it will default to: event->hw.idx + 1.
- */
- int (*event_idx) (struct perf_event *event); /*optional */
-
- /*
- * flush branch stack on context-switches (needed in cpu-wide mode)
- */
- void (*flush_branch_stack) (void);
-};
-
-/**
- * enum perf_event_active_state - the states of a event
- */
-enum perf_event_active_state {
- PERF_EVENT_STATE_ERROR = -2,
- PERF_EVENT_STATE_OFF = -1,
- PERF_EVENT_STATE_INACTIVE = 0,
- PERF_EVENT_STATE_ACTIVE = 1,
-};
-
-struct file;
-struct perf_sample_data;
-
-typedef void (*perf_overflow_handler_t)(struct perf_event *,
- struct perf_sample_data *,
- struct pt_regs *regs);
-
-enum perf_group_flag {
- PERF_GROUP_SOFTWARE = 0x1,
-};
-
-#define SWEVENT_HLIST_BITS 8
-#define SWEVENT_HLIST_SIZE (1 << SWEVENT_HLIST_BITS)
-
-struct swevent_hlist {
- struct hlist_head heads[SWEVENT_HLIST_SIZE];
- struct rcu_head rcu_head;
-};
-
-#define PERF_ATTACH_CONTEXT 0x01
-#define PERF_ATTACH_GROUP 0x02
-#define PERF_ATTACH_TASK 0x04
-
-#ifdef CONFIG_CGROUP_PERF
-/*
- * perf_cgroup_info keeps track of time_enabled for a cgroup.
- * This is a per-cpu dynamically allocated data structure.
- */
-struct perf_cgroup_info {
- u64 time;
- u64 timestamp;
-};
-
-struct perf_cgroup {
- struct cgroup_subsys_state css;
- struct perf_cgroup_info *info; /* timing info, one per cpu */
-};
-#endif
-
-struct ring_buffer;
-
-/**
- * struct perf_event - performance event kernel representation:
- */
-struct perf_event {
-#ifdef CONFIG_PERF_EVENTS
- struct list_head group_entry;
- struct list_head event_entry;
- struct list_head sibling_list;
- struct hlist_node hlist_entry;
- int nr_siblings;
- int group_flags;
- struct perf_event *group_leader;
- struct pmu *pmu;
-
- enum perf_event_active_state state;
- unsigned int attach_state;
- local64_t count;
- atomic64_t child_count;
-
- /*
- * These are the total time in nanoseconds that the event
- * has been enabled (i.e. eligible to run, and the task has
- * been scheduled in, if this is a per-task event)
- * and running (scheduled onto the CPU), respectively.
- *
- * They are computed from tstamp_enabled, tstamp_running and
- * tstamp_stopped when the event is in INACTIVE or ACTIVE state.
- */
- u64 total_time_enabled;
- u64 total_time_running;
-
- /*
- * These are timestamps used for computing total_time_enabled
- * and total_time_running when the event is in INACTIVE or
- * ACTIVE state, measured in nanoseconds from an arbitrary point
- * in time.
- * tstamp_enabled: the notional time when the event was enabled
- * tstamp_running: the notional time when the event was scheduled on
- * tstamp_stopped: in INACTIVE state, the notional time when the
- * event was scheduled off.
- */
- u64 tstamp_enabled;
- u64 tstamp_running;
- u64 tstamp_stopped;
-
- /*
- * timestamp shadows the actual context timing but it can
- * be safely used in NMI interrupt context. It reflects the
- * context time as it was when the event was last scheduled in.
- *
- * ctx_time already accounts for ctx->timestamp. Therefore to
- * compute ctx_time for a sample, simply add perf_clock().
- */
- u64 shadow_ctx_time;
-
- struct perf_event_attr attr;
- u16 header_size;
- u16 id_header_size;
- u16 read_size;
- struct hw_perf_event hw;
-
- struct perf_event_context *ctx;
- struct file *filp;
-
- /*
- * These accumulate total time (in nanoseconds) that children
- * events have been enabled and running, respectively.
- */
- atomic64_t child_total_time_enabled;
- atomic64_t child_total_time_running;
-
- /*
- * Protect attach/detach and child_list:
- */
- struct mutex child_mutex;
- struct list_head child_list;
- struct perf_event *parent;
-
- int oncpu;
- int cpu;
-
- struct list_head owner_entry;
- struct task_struct *owner;
-
- /* mmap bits */
- struct mutex mmap_mutex;
- atomic_t mmap_count;
- int mmap_locked;
- struct user_struct *mmap_user;
- struct ring_buffer *rb;
- struct list_head rb_entry;
-
- /* poll related */
- wait_queue_head_t waitq;
- struct fasync_struct *fasync;
-
- /* delayed work for NMIs and such */
- int pending_wakeup;
- int pending_kill;
- int pending_disable;
- struct irq_work pending;
-
- atomic_t event_limit;
-
- void (*destroy)(struct perf_event *);
- struct rcu_head rcu_head;
-
- struct pid_namespace *ns;
- u64 id;
-
- perf_overflow_handler_t overflow_handler;
- void *overflow_handler_context;
-
-#ifdef CONFIG_EVENT_TRACING
- struct ftrace_event_call *tp_event;
- struct event_filter *filter;
-#ifdef CONFIG_FUNCTION_TRACER
- struct ftrace_ops ftrace_ops;
-#endif
-#endif
-
-#ifdef CONFIG_CGROUP_PERF
- struct perf_cgroup *cgrp; /* cgroup event is attach to */
- int cgrp_defer_enabled;
-#endif
-
-#endif /* CONFIG_PERF_EVENTS */
-};
-
-enum perf_event_context_type {
- task_context,
- cpu_context,
-};
-
-/**
- * struct perf_event_context - event context structure
- *
- * Used as a container for task events and CPU events as well:
- */
-struct perf_event_context {
- struct pmu *pmu;
- enum perf_event_context_type type;
- /*
- * Protect the states of the events in the list,
- * nr_active, and the list:
- */
- raw_spinlock_t lock;
- /*
- * Protect the list of events. Locking either mutex or lock
- * is sufficient to ensure the list doesn't change; to change
- * the list you need to lock both the mutex and the spinlock.
- */
- struct mutex mutex;
-
- struct list_head pinned_groups;
- struct list_head flexible_groups;
- struct list_head event_list;
- int nr_events;
- int nr_active;
- int is_active;
- int nr_stat;
- int nr_freq;
- int rotate_disable;
- atomic_t refcount;
- struct task_struct *task;
-
- /*
- * Context clock, runs when context enabled.
- */
- u64 time;
- u64 timestamp;
-
- /*
- * These fields let us detect when two contexts have both
- * been cloned (inherited) from a common ancestor.
- */
- struct perf_event_context *parent_ctx;
- u64 parent_gen;
- u64 generation;
- int pin_count;
- int nr_cgroups; /* cgroup evts */
- int nr_branch_stack; /* branch_stack evt */
- struct rcu_head rcu_head;
-};
-
-/*
- * Number of contexts where an event can trigger:
- * task, softirq, hardirq, nmi.
- */
-#define PERF_NR_CONTEXTS 4
-
-/**
- * struct perf_event_cpu_context - per cpu event context structure
- */
-struct perf_cpu_context {
- struct perf_event_context ctx;
- struct perf_event_context *task_ctx;
- int active_oncpu;
- int exclusive;
- struct list_head rotation_list;
- int jiffies_interval;
- struct pmu *active_pmu;
- struct perf_cgroup *cgrp;
-};
-
-struct perf_output_handle {
- struct perf_event *event;
- struct ring_buffer *rb;
- unsigned long wakeup;
- unsigned long size;
- void *addr;
- int page;
-};
-
-#ifdef CONFIG_PERF_EVENTS
-
-extern int perf_pmu_register(struct pmu *pmu, char *name, int type);
-extern void perf_pmu_unregister(struct pmu *pmu);
-
-extern int perf_num_counters(void);
-extern const char *perf_pmu_name(void);
-extern void __perf_event_task_sched_in(struct task_struct *prev,
- struct task_struct *task);
-extern void __perf_event_task_sched_out(struct task_struct *prev,
- struct task_struct *next);
-extern int perf_event_init_task(struct task_struct *child);
-extern void perf_event_exit_task(struct task_struct *child);
-extern void perf_event_free_task(struct task_struct *task);
-extern void perf_event_delayed_put(struct task_struct *task);
-extern void perf_event_print_debug(void);
-extern void perf_pmu_disable(struct pmu *pmu);
-extern void perf_pmu_enable(struct pmu *pmu);
-extern int perf_event_task_disable(void);
-extern int perf_event_task_enable(void);
-extern int perf_event_refresh(struct perf_event *event, int refresh);
-extern void perf_event_update_userpage(struct perf_event *event);
-extern int perf_event_release_kernel(struct perf_event *event);
-extern struct perf_event *
-perf_event_create_kernel_counter(struct perf_event_attr *attr,
- int cpu,
- struct task_struct *task,
- perf_overflow_handler_t callback,
- void *context);
-extern u64 perf_event_read_value(struct perf_event *event,
- u64 *enabled, u64 *running);
-
-
-struct perf_sample_data {
- u64 type;
-
- u64 ip;
- struct {
- u32 pid;
- u32 tid;
- } tid_entry;
- u64 time;
- u64 addr;
- u64 id;
- u64 stream_id;
- struct {
- u32 cpu;
- u32 reserved;
- } cpu_entry;
- u64 period;
- struct perf_callchain_entry *callchain;
- struct perf_raw_record *raw;
- struct perf_branch_stack *br_stack;
-};
-
-static inline void perf_sample_data_init(struct perf_sample_data *data, u64 addr)
-{
- data->addr = addr;
- data->raw = NULL;
- data->br_stack = NULL;
-}
-
-extern void perf_output_sample(struct perf_output_handle *handle,
- struct perf_event_header *header,
- struct perf_sample_data *data,
- struct perf_event *event);
-extern void perf_prepare_sample(struct perf_event_header *header,
- struct perf_sample_data *data,
- struct perf_event *event,
- struct pt_regs *regs);
-
-extern int perf_event_overflow(struct perf_event *event,
- struct perf_sample_data *data,
- struct pt_regs *regs);
-
-static inline bool is_sampling_event(struct perf_event *event)
-{
- return event->attr.sample_period != 0;
-}
-
-/*
- * Return 1 for a software event, 0 for a hardware event
- */
-static inline int is_software_event(struct perf_event *event)
-{
- return event->pmu->task_ctx_nr == perf_sw_context;
-}
-
-extern struct static_key perf_swevent_enabled[PERF_COUNT_SW_MAX];
-
-extern void __perf_sw_event(u32, u64, struct pt_regs *, u64);
-
-#ifndef perf_arch_fetch_caller_regs
-static inline void perf_arch_fetch_caller_regs(struct pt_regs *regs, unsigned long ip) { }
-#endif
-
-/*
- * Take a snapshot of the regs. Skip ip and frame pointer to
- * the nth caller. We only need a few of the regs:
- * - ip for PERF_SAMPLE_IP
- * - cs for user_mode() tests
- * - bp for callchains
- * - eflags, for future purposes, just in case
- */
-static inline void perf_fetch_caller_regs(struct pt_regs *regs)
-{
- memset(regs, 0, sizeof(*regs));
-
- perf_arch_fetch_caller_regs(regs, CALLER_ADDR0);
-}
-
-static __always_inline void
-perf_sw_event(u32 event_id, u64 nr, struct pt_regs *regs, u64 addr)
-{
- struct pt_regs hot_regs;
-
- if (static_key_false(&perf_swevent_enabled[event_id])) {
- if (!regs) {
- perf_fetch_caller_regs(&hot_regs);
- regs = &hot_regs;
- }
- __perf_sw_event(event_id, nr, regs, addr);
- }
-}
-
-extern struct static_key_deferred perf_sched_events;
-
-static inline void perf_event_task_sched_in(struct task_struct *prev,
- struct task_struct *task)
-{
- if (static_key_false(&perf_sched_events.key))
- __perf_event_task_sched_in(prev, task);
-}
-
-static inline void perf_event_task_sched_out(struct task_struct *prev,
- struct task_struct *next)
-{
- perf_sw_event(PERF_COUNT_SW_CONTEXT_SWITCHES, 1, NULL, 0);
-
- if (static_key_false(&perf_sched_events.key))
- __perf_event_task_sched_out(prev, next);
-}
-
-extern void perf_event_mmap(struct vm_area_struct *vma);
-extern struct perf_guest_info_callbacks *perf_guest_cbs;
-extern int perf_register_guest_info_callbacks(struct perf_guest_info_callbacks *callbacks);
-extern int perf_unregister_guest_info_callbacks(struct perf_guest_info_callbacks *callbacks);
-
-extern void perf_event_comm(struct task_struct *tsk);
-extern void perf_event_fork(struct task_struct *tsk);
-
-/* Callchains */
-DECLARE_PER_CPU(struct perf_callchain_entry, perf_callchain_entry);
-
-extern void perf_callchain_user(struct perf_callchain_entry *entry, struct pt_regs *regs);
-extern void perf_callchain_kernel(struct perf_callchain_entry *entry, struct pt_regs *regs);
-
-static inline void perf_callchain_store(struct perf_callchain_entry *entry, u64 ip)
-{
- if (entry->nr < PERF_MAX_STACK_DEPTH)
- entry->ip[entry->nr++] = ip;
-}
-
-extern int sysctl_perf_event_paranoid;
-extern int sysctl_perf_event_mlock;
-extern int sysctl_perf_event_sample_rate;
-
-extern int perf_proc_update_handler(struct ctl_table *table, int write,
- void __user *buffer, size_t *lenp,
- loff_t *ppos);
-
-static inline bool perf_paranoid_tracepoint_raw(void)
-{
- return sysctl_perf_event_paranoid > -1;
-}
-
-static inline bool perf_paranoid_cpu(void)
-{
- return sysctl_perf_event_paranoid > 0;
-}
-
-static inline bool perf_paranoid_kernel(void)
-{
- return sysctl_perf_event_paranoid > 1;
-}
-
-extern void perf_event_init(void);
-extern void perf_tp_event(u64 addr, u64 count, void *record,
- int entry_size, struct pt_regs *regs,
- struct hlist_head *head, int rctx);
-extern void perf_bp_event(struct perf_event *event, void *data);
-
-#ifndef perf_misc_flags
-# define perf_misc_flags(regs) \
- (user_mode(regs) ? PERF_RECORD_MISC_USER : PERF_RECORD_MISC_KERNEL)
-# define perf_instruction_pointer(regs) instruction_pointer(regs)
-#endif
-
-static inline bool has_branch_stack(struct perf_event *event)
-{
- return event->attr.sample_type & PERF_SAMPLE_BRANCH_STACK;
-}
-
-extern int perf_output_begin(struct perf_output_handle *handle,
- struct perf_event *event, unsigned int size);
-extern void perf_output_end(struct perf_output_handle *handle);
-extern void perf_output_copy(struct perf_output_handle *handle,
- const void *buf, unsigned int len);
-extern int perf_swevent_get_recursion_context(void);
-extern void perf_swevent_put_recursion_context(int rctx);
-extern void perf_event_enable(struct perf_event *event);
-extern void perf_event_disable(struct perf_event *event);
-extern void perf_event_task_tick(void);
-#else
-static inline void
-perf_event_task_sched_in(struct task_struct *prev,
- struct task_struct *task) { }
-static inline void
-perf_event_task_sched_out(struct task_struct *prev,
- struct task_struct *next) { }
-static inline int perf_event_init_task(struct task_struct *child) { return 0; }
-static inline void perf_event_exit_task(struct task_struct *child) { }
-static inline void perf_event_free_task(struct task_struct *task) { }
-static inline void perf_event_delayed_put(struct task_struct *task) { }
-static inline void perf_event_print_debug(void) { }
-static inline int perf_event_task_disable(void) { return -EINVAL; }
-static inline int perf_event_task_enable(void) { return -EINVAL; }
-static inline int perf_event_refresh(struct perf_event *event, int refresh)
-{
- return -EINVAL;
-}
-
-static inline void
-perf_sw_event(u32 event_id, u64 nr, struct pt_regs *regs, u64 addr) { }
-static inline void
-perf_bp_event(struct perf_event *event, void *data) { }
-
-static inline int perf_register_guest_info_callbacks
-(struct perf_guest_info_callbacks *callbacks) { return 0; }
-static inline int perf_unregister_guest_info_callbacks
-(struct perf_guest_info_callbacks *callbacks) { return 0; }
-
-static inline void perf_event_mmap(struct vm_area_struct *vma) { }
-static inline void perf_event_comm(struct task_struct *tsk) { }
-static inline void perf_event_fork(struct task_struct *tsk) { }
-static inline void perf_event_init(void) { }
-static inline int perf_swevent_get_recursion_context(void) { return -1; }
-static inline void perf_swevent_put_recursion_context(int rctx) { }
-static inline void perf_event_enable(struct perf_event *event) { }
-static inline void perf_event_disable(struct perf_event *event) { }
-static inline void perf_event_task_tick(void) { }
-#endif
-
-#define perf_output_put(handle, x) perf_output_copy((handle), &(x), sizeof(x))
-
-/*
- * This has to have a higher priority than migration_notifier in sched.c.
- */
-#define perf_cpu_notifier(fn) \
-do { \
- static struct notifier_block fn##_nb __cpuinitdata = \
- { .notifier_call = fn, .priority = CPU_PRI_PERF }; \
- fn(&fn##_nb, (unsigned long)CPU_UP_PREPARE, \
- (void *)(unsigned long)smp_processor_id()); \
- fn(&fn##_nb, (unsigned long)CPU_STARTING, \
- (void *)(unsigned long)smp_processor_id()); \
- fn(&fn##_nb, (unsigned long)CPU_ONLINE, \
- (void *)(unsigned long)smp_processor_id()); \
- register_cpu_notifier(&fn##_nb); \
-} while (0)
-
-
-#define PMU_FORMAT_ATTR(_name, _format) \
-static ssize_t \
-_name##_show(struct device *dev, \
- struct device_attribute *attr, \
- char *page) \
-{ \
- BUILD_BUG_ON(sizeof(_format) >= PAGE_SIZE); \
- return sprintf(page, _format "\n"); \
-} \
- \
-static struct device_attribute format_attr_##_name = __ATTR_RO(_name)
-
-#endif /* __KERNEL__ */
-#endif /* _LINUX_PERF_EVENT_H */
diff --git a/ANDROID_3.4.5/include/linux/persistent_ram.h b/ANDROID_3.4.5/include/linux/persistent_ram.h
deleted file mode 100644
index 22422171..00000000
--- a/ANDROID_3.4.5/include/linux/persistent_ram.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 2011 Google, Inc.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#ifndef __LINUX_PERSISTENT_RAM_H__
-#define __LINUX_PERSISTENT_RAM_H__
-
-#include <linux/device.h>
-#include <linux/kernel.h>
-#include <linux/list.h>
-#include <linux/types.h>
-
-struct persistent_ram_buffer;
-
-struct persistent_ram_descriptor {
- const char *name;
- phys_addr_t size;
-};
-
-struct persistent_ram {
- phys_addr_t start;
- phys_addr_t size;
-
- int ecc_block_size;
- int ecc_size;
- int ecc_symsize;
- int ecc_poly;
-
- int num_descs;
- struct persistent_ram_descriptor *descs;
-
- struct list_head node;
-};
-
-struct persistent_ram_zone {
- struct list_head node;
- void *vaddr;
- struct persistent_ram_buffer *buffer;
- size_t buffer_size;
-
- /* ECC correction */
- bool ecc;
- char *par_buffer;
- char *par_header;
- struct rs_control *rs_decoder;
- int corrected_bytes;
- int bad_blocks;
- int ecc_block_size;
- int ecc_size;
- int ecc_symsize;
- int ecc_poly;
-
- char *old_log;
- size_t old_log_size;
- size_t old_log_footer_size;
- bool early;
-};
-
-int persistent_ram_early_init(struct persistent_ram *ram);
-
-struct persistent_ram_zone *persistent_ram_init_ringbuffer(struct device *dev,
- bool ecc);
-
-int persistent_ram_write(struct persistent_ram_zone *prz, const void *s,
- unsigned int count);
-
-size_t persistent_ram_old_size(struct persistent_ram_zone *prz);
-void *persistent_ram_old(struct persistent_ram_zone *prz);
-void persistent_ram_free_old(struct persistent_ram_zone *prz);
-ssize_t persistent_ram_ecc_string(struct persistent_ram_zone *prz,
- char *str, size_t len);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/personality.h b/ANDROID_3.4.5/include/linux/personality.h
deleted file mode 100644
index 8fc7dd1a..00000000
--- a/ANDROID_3.4.5/include/linux/personality.h
+++ /dev/null
@@ -1,121 +0,0 @@
-#ifndef _LINUX_PERSONALITY_H
-#define _LINUX_PERSONALITY_H
-
-#ifdef __KERNEL__
-
-/*
- * Handling of different ABIs (personalities).
- */
-
-struct exec_domain;
-struct pt_regs;
-
-extern int register_exec_domain(struct exec_domain *);
-extern int unregister_exec_domain(struct exec_domain *);
-extern int __set_personality(unsigned int);
-
-#endif /* __KERNEL__ */
-
-/*
- * Flags for bug emulation.
- *
- * These occupy the top three bytes.
- */
-enum {
- UNAME26 = 0x0020000,
- ADDR_NO_RANDOMIZE = 0x0040000, /* disable randomization of VA space */
- FDPIC_FUNCPTRS = 0x0080000, /* userspace function ptrs point to descriptors
- * (signal handling)
- */
- MMAP_PAGE_ZERO = 0x0100000,
- ADDR_COMPAT_LAYOUT = 0x0200000,
- READ_IMPLIES_EXEC = 0x0400000,
- ADDR_LIMIT_32BIT = 0x0800000,
- SHORT_INODE = 0x1000000,
- WHOLE_SECONDS = 0x2000000,
- STICKY_TIMEOUTS = 0x4000000,
- ADDR_LIMIT_3GB = 0x8000000,
-};
-
-/*
- * Security-relevant compatibility flags that must be
- * cleared upon setuid or setgid exec:
- */
-#define PER_CLEAR_ON_SETID (READ_IMPLIES_EXEC | \
- ADDR_NO_RANDOMIZE | \
- ADDR_COMPAT_LAYOUT | \
- MMAP_PAGE_ZERO)
-
-/*
- * Personality types.
- *
- * These go in the low byte. Avoid using the top bit, it will
- * conflict with error returns.
- */
-enum {
- PER_LINUX = 0x0000,
- PER_LINUX_32BIT = 0x0000 | ADDR_LIMIT_32BIT,
- PER_LINUX_FDPIC = 0x0000 | FDPIC_FUNCPTRS,
- PER_SVR4 = 0x0001 | STICKY_TIMEOUTS | MMAP_PAGE_ZERO,
- PER_SVR3 = 0x0002 | STICKY_TIMEOUTS | SHORT_INODE,
- PER_SCOSVR3 = 0x0003 | STICKY_TIMEOUTS |
- WHOLE_SECONDS | SHORT_INODE,
- PER_OSR5 = 0x0003 | STICKY_TIMEOUTS | WHOLE_SECONDS,
- PER_WYSEV386 = 0x0004 | STICKY_TIMEOUTS | SHORT_INODE,
- PER_ISCR4 = 0x0005 | STICKY_TIMEOUTS,
- PER_BSD = 0x0006,
- PER_SUNOS = 0x0006 | STICKY_TIMEOUTS,
- PER_XENIX = 0x0007 | STICKY_TIMEOUTS | SHORT_INODE,
- PER_LINUX32 = 0x0008,
- PER_LINUX32_3GB = 0x0008 | ADDR_LIMIT_3GB,
- PER_IRIX32 = 0x0009 | STICKY_TIMEOUTS,/* IRIX5 32-bit */
- PER_IRIXN32 = 0x000a | STICKY_TIMEOUTS,/* IRIX6 new 32-bit */
- PER_IRIX64 = 0x000b | STICKY_TIMEOUTS,/* IRIX6 64-bit */
- PER_RISCOS = 0x000c,
- PER_SOLARIS = 0x000d | STICKY_TIMEOUTS,
- PER_UW7 = 0x000e | STICKY_TIMEOUTS | MMAP_PAGE_ZERO,
- PER_OSF4 = 0x000f, /* OSF/1 v4 */
- PER_HPUX = 0x0010,
- PER_MASK = 0x00ff,
-};
-
-#ifdef __KERNEL__
-
-/*
- * Description of an execution domain.
- *
- * The first two members are refernced from assembly source
- * and should stay where they are unless explicitly needed.
- */
-typedef void (*handler_t)(int, struct pt_regs *);
-
-struct exec_domain {
- const char *name; /* name of the execdomain */
- handler_t handler; /* handler for syscalls */
- unsigned char pers_low; /* lowest personality */
- unsigned char pers_high; /* highest personality */
- unsigned long *signal_map; /* signal mapping */
- unsigned long *signal_invmap; /* reverse signal mapping */
- struct map_segment *err_map; /* error mapping */
- struct map_segment *socktype_map; /* socket type mapping */
- struct map_segment *sockopt_map; /* socket option mapping */
- struct map_segment *af_map; /* address family mapping */
- struct module *module; /* module context of the ed. */
- struct exec_domain *next; /* linked list (internal) */
-};
-
-/*
- * Return the base personality without flags.
- */
-#define personality(pers) (pers & PER_MASK)
-
-
-/*
- * Change personality of the currently running process.
- */
-#define set_personality(pers) \
- ((current->personality == (pers)) ? 0 : __set_personality(pers))
-
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_PERSONALITY_H */
diff --git a/ANDROID_3.4.5/include/linux/pfkeyv2.h b/ANDROID_3.4.5/include/linux/pfkeyv2.h
deleted file mode 100644
index 0b80c806..00000000
--- a/ANDROID_3.4.5/include/linux/pfkeyv2.h
+++ /dev/null
@@ -1,370 +0,0 @@
-/* PF_KEY user interface, this is defined by rfc2367 so
- * do not make arbitrary modifications or else this header
- * file will not be compliant.
- */
-
-#ifndef _LINUX_PFKEY2_H
-#define _LINUX_PFKEY2_H
-
-#include <linux/types.h>
-
-#define PF_KEY_V2 2
-#define PFKEYV2_REVISION 199806L
-
-struct sadb_msg {
- __u8 sadb_msg_version;
- __u8 sadb_msg_type;
- __u8 sadb_msg_errno;
- __u8 sadb_msg_satype;
- __u16 sadb_msg_len;
- __u16 sadb_msg_reserved;
- __u32 sadb_msg_seq;
- __u32 sadb_msg_pid;
-} __attribute__((packed));
-/* sizeof(struct sadb_msg) == 16 */
-
-struct sadb_ext {
- __u16 sadb_ext_len;
- __u16 sadb_ext_type;
-} __attribute__((packed));
-/* sizeof(struct sadb_ext) == 4 */
-
-struct sadb_sa {
- __u16 sadb_sa_len;
- __u16 sadb_sa_exttype;
- __be32 sadb_sa_spi;
- __u8 sadb_sa_replay;
- __u8 sadb_sa_state;
- __u8 sadb_sa_auth;
- __u8 sadb_sa_encrypt;
- __u32 sadb_sa_flags;
-} __attribute__((packed));
-/* sizeof(struct sadb_sa) == 16 */
-
-struct sadb_lifetime {
- __u16 sadb_lifetime_len;
- __u16 sadb_lifetime_exttype;
- __u32 sadb_lifetime_allocations;
- __u64 sadb_lifetime_bytes;
- __u64 sadb_lifetime_addtime;
- __u64 sadb_lifetime_usetime;
-} __attribute__((packed));
-/* sizeof(struct sadb_lifetime) == 32 */
-
-struct sadb_address {
- __u16 sadb_address_len;
- __u16 sadb_address_exttype;
- __u8 sadb_address_proto;
- __u8 sadb_address_prefixlen;
- __u16 sadb_address_reserved;
-} __attribute__((packed));
-/* sizeof(struct sadb_address) == 8 */
-
-struct sadb_key {
- __u16 sadb_key_len;
- __u16 sadb_key_exttype;
- __u16 sadb_key_bits;
- __u16 sadb_key_reserved;
-} __attribute__((packed));
-/* sizeof(struct sadb_key) == 8 */
-
-struct sadb_ident {
- __u16 sadb_ident_len;
- __u16 sadb_ident_exttype;
- __u16 sadb_ident_type;
- __u16 sadb_ident_reserved;
- __u64 sadb_ident_id;
-} __attribute__((packed));
-/* sizeof(struct sadb_ident) == 16 */
-
-struct sadb_sens {
- __u16 sadb_sens_len;
- __u16 sadb_sens_exttype;
- __u32 sadb_sens_dpd;
- __u8 sadb_sens_sens_level;
- __u8 sadb_sens_sens_len;
- __u8 sadb_sens_integ_level;
- __u8 sadb_sens_integ_len;
- __u32 sadb_sens_reserved;
-} __attribute__((packed));
-/* sizeof(struct sadb_sens) == 16 */
-
-/* followed by:
- __u64 sadb_sens_bitmap[sens_len];
- __u64 sadb_integ_bitmap[integ_len]; */
-
-struct sadb_prop {
- __u16 sadb_prop_len;
- __u16 sadb_prop_exttype;
- __u8 sadb_prop_replay;
- __u8 sadb_prop_reserved[3];
-} __attribute__((packed));
-/* sizeof(struct sadb_prop) == 8 */
-
-/* followed by:
- struct sadb_comb sadb_combs[(sadb_prop_len +
- sizeof(__u64) - sizeof(struct sadb_prop)) /
- sizeof(struct sadb_comb)]; */
-
-struct sadb_comb {
- __u8 sadb_comb_auth;
- __u8 sadb_comb_encrypt;
- __u16 sadb_comb_flags;
- __u16 sadb_comb_auth_minbits;
- __u16 sadb_comb_auth_maxbits;
- __u16 sadb_comb_encrypt_minbits;
- __u16 sadb_comb_encrypt_maxbits;
- __u32 sadb_comb_reserved;
- __u32 sadb_comb_soft_allocations;
- __u32 sadb_comb_hard_allocations;
- __u64 sadb_comb_soft_bytes;
- __u64 sadb_comb_hard_bytes;
- __u64 sadb_comb_soft_addtime;
- __u64 sadb_comb_hard_addtime;
- __u64 sadb_comb_soft_usetime;
- __u64 sadb_comb_hard_usetime;
-} __attribute__((packed));
-/* sizeof(struct sadb_comb) == 72 */
-
-struct sadb_supported {
- __u16 sadb_supported_len;
- __u16 sadb_supported_exttype;
- __u32 sadb_supported_reserved;
-} __attribute__((packed));
-/* sizeof(struct sadb_supported) == 8 */
-
-/* followed by:
- struct sadb_alg sadb_algs[(sadb_supported_len +
- sizeof(__u64) - sizeof(struct sadb_supported)) /
- sizeof(struct sadb_alg)]; */
-
-struct sadb_alg {
- __u8 sadb_alg_id;
- __u8 sadb_alg_ivlen;
- __u16 sadb_alg_minbits;
- __u16 sadb_alg_maxbits;
- __u16 sadb_alg_reserved;
-} __attribute__((packed));
-/* sizeof(struct sadb_alg) == 8 */
-
-struct sadb_spirange {
- __u16 sadb_spirange_len;
- __u16 sadb_spirange_exttype;
- __u32 sadb_spirange_min;
- __u32 sadb_spirange_max;
- __u32 sadb_spirange_reserved;
-} __attribute__((packed));
-/* sizeof(struct sadb_spirange) == 16 */
-
-struct sadb_x_kmprivate {
- __u16 sadb_x_kmprivate_len;
- __u16 sadb_x_kmprivate_exttype;
- __u32 sadb_x_kmprivate_reserved;
-} __attribute__((packed));
-/* sizeof(struct sadb_x_kmprivate) == 8 */
-
-struct sadb_x_sa2 {
- __u16 sadb_x_sa2_len;
- __u16 sadb_x_sa2_exttype;
- __u8 sadb_x_sa2_mode;
- __u8 sadb_x_sa2_reserved1;
- __u16 sadb_x_sa2_reserved2;
- __u32 sadb_x_sa2_sequence;
- __u32 sadb_x_sa2_reqid;
-} __attribute__((packed));
-/* sizeof(struct sadb_x_sa2) == 16 */
-
-struct sadb_x_policy {
- __u16 sadb_x_policy_len;
- __u16 sadb_x_policy_exttype;
- __u16 sadb_x_policy_type;
- __u8 sadb_x_policy_dir;
- __u8 sadb_x_policy_reserved;
- __u32 sadb_x_policy_id;
- __u32 sadb_x_policy_priority;
-} __attribute__((packed));
-/* sizeof(struct sadb_x_policy) == 16 */
-
-struct sadb_x_ipsecrequest {
- __u16 sadb_x_ipsecrequest_len;
- __u16 sadb_x_ipsecrequest_proto;
- __u8 sadb_x_ipsecrequest_mode;
- __u8 sadb_x_ipsecrequest_level;
- __u16 sadb_x_ipsecrequest_reserved1;
- __u32 sadb_x_ipsecrequest_reqid;
- __u32 sadb_x_ipsecrequest_reserved2;
-} __attribute__((packed));
-/* sizeof(struct sadb_x_ipsecrequest) == 16 */
-
-/* This defines the TYPE of Nat Traversal in use. Currently only one
- * type of NAT-T is supported, draft-ietf-ipsec-udp-encaps-06
- */
-struct sadb_x_nat_t_type {
- __u16 sadb_x_nat_t_type_len;
- __u16 sadb_x_nat_t_type_exttype;
- __u8 sadb_x_nat_t_type_type;
- __u8 sadb_x_nat_t_type_reserved[3];
-} __attribute__((packed));
-/* sizeof(struct sadb_x_nat_t_type) == 8 */
-
-/* Pass a NAT Traversal port (Source or Dest port) */
-struct sadb_x_nat_t_port {
- __u16 sadb_x_nat_t_port_len;
- __u16 sadb_x_nat_t_port_exttype;
- __be16 sadb_x_nat_t_port_port;
- __u16 sadb_x_nat_t_port_reserved;
-} __attribute__((packed));
-/* sizeof(struct sadb_x_nat_t_port) == 8 */
-
-/* Generic LSM security context */
-struct sadb_x_sec_ctx {
- __u16 sadb_x_sec_len;
- __u16 sadb_x_sec_exttype;
- __u8 sadb_x_ctx_alg; /* LSMs: e.g., selinux == 1 */
- __u8 sadb_x_ctx_doi;
- __u16 sadb_x_ctx_len;
-} __attribute__((packed));
-/* sizeof(struct sadb_sec_ctx) = 8 */
-
-/* Used by MIGRATE to pass addresses IKE will use to perform
- * negotiation with the peer */
-struct sadb_x_kmaddress {
- __u16 sadb_x_kmaddress_len;
- __u16 sadb_x_kmaddress_exttype;
- __u32 sadb_x_kmaddress_reserved;
-} __attribute__((packed));
-/* sizeof(struct sadb_x_kmaddress) == 8 */
-
-/* Message types */
-#define SADB_RESERVED 0
-#define SADB_GETSPI 1
-#define SADB_UPDATE 2
-#define SADB_ADD 3
-#define SADB_DELETE 4
-#define SADB_GET 5
-#define SADB_ACQUIRE 6
-#define SADB_REGISTER 7
-#define SADB_EXPIRE 8
-#define SADB_FLUSH 9
-#define SADB_DUMP 10
-#define SADB_X_PROMISC 11
-#define SADB_X_PCHANGE 12
-#define SADB_X_SPDUPDATE 13
-#define SADB_X_SPDADD 14
-#define SADB_X_SPDDELETE 15
-#define SADB_X_SPDGET 16
-#define SADB_X_SPDACQUIRE 17
-#define SADB_X_SPDDUMP 18
-#define SADB_X_SPDFLUSH 19
-#define SADB_X_SPDSETIDX 20
-#define SADB_X_SPDEXPIRE 21
-#define SADB_X_SPDDELETE2 22
-#define SADB_X_NAT_T_NEW_MAPPING 23
-#define SADB_X_MIGRATE 24
-#define SADB_MAX 24
-
-/* Security Association flags */
-#define SADB_SAFLAGS_PFS 1
-#define SADB_SAFLAGS_NOPMTUDISC 0x20000000
-#define SADB_SAFLAGS_DECAP_DSCP 0x40000000
-#define SADB_SAFLAGS_NOECN 0x80000000
-
-/* Security Association states */
-#define SADB_SASTATE_LARVAL 0
-#define SADB_SASTATE_MATURE 1
-#define SADB_SASTATE_DYING 2
-#define SADB_SASTATE_DEAD 3
-#define SADB_SASTATE_MAX 3
-
-/* Security Association types */
-#define SADB_SATYPE_UNSPEC 0
-#define SADB_SATYPE_AH 2
-#define SADB_SATYPE_ESP 3
-#define SADB_SATYPE_RSVP 5
-#define SADB_SATYPE_OSPFV2 6
-#define SADB_SATYPE_RIPV2 7
-#define SADB_SATYPE_MIP 8
-#define SADB_X_SATYPE_IPCOMP 9
-#define SADB_SATYPE_MAX 9
-
-/* Authentication algorithms */
-#define SADB_AALG_NONE 0
-#define SADB_AALG_MD5HMAC 2
-#define SADB_AALG_SHA1HMAC 3
-#define SADB_X_AALG_SHA2_256HMAC 5
-#define SADB_X_AALG_SHA2_384HMAC 6
-#define SADB_X_AALG_SHA2_512HMAC 7
-#define SADB_X_AALG_RIPEMD160HMAC 8
-#define SADB_X_AALG_AES_XCBC_MAC 9
-#define SADB_X_AALG_NULL 251 /* kame */
-#define SADB_AALG_MAX 251
-
-/* Encryption algorithms */
-#define SADB_EALG_NONE 0
-#define SADB_EALG_DESCBC 2
-#define SADB_EALG_3DESCBC 3
-#define SADB_X_EALG_CASTCBC 6
-#define SADB_X_EALG_BLOWFISHCBC 7
-#define SADB_EALG_NULL 11
-#define SADB_X_EALG_AESCBC 12
-#define SADB_X_EALG_AESCTR 13
-#define SADB_X_EALG_AES_CCM_ICV8 14
-#define SADB_X_EALG_AES_CCM_ICV12 15
-#define SADB_X_EALG_AES_CCM_ICV16 16
-#define SADB_X_EALG_AES_GCM_ICV8 18
-#define SADB_X_EALG_AES_GCM_ICV12 19
-#define SADB_X_EALG_AES_GCM_ICV16 20
-#define SADB_X_EALG_CAMELLIACBC 22
-#define SADB_X_EALG_NULL_AES_GMAC 23
-#define SADB_EALG_MAX 253 /* last EALG */
-/* private allocations should use 249-255 (RFC2407) */
-#define SADB_X_EALG_SERPENTCBC 252 /* draft-ietf-ipsec-ciph-aes-cbc-00 */
-#define SADB_X_EALG_TWOFISHCBC 253 /* draft-ietf-ipsec-ciph-aes-cbc-00 */
-
-/* Compression algorithms */
-#define SADB_X_CALG_NONE 0
-#define SADB_X_CALG_OUI 1
-#define SADB_X_CALG_DEFLATE 2
-#define SADB_X_CALG_LZS 3
-#define SADB_X_CALG_LZJH 4
-#define SADB_X_CALG_MAX 4
-
-/* Extension Header values */
-#define SADB_EXT_RESERVED 0
-#define SADB_EXT_SA 1
-#define SADB_EXT_LIFETIME_CURRENT 2
-#define SADB_EXT_LIFETIME_HARD 3
-#define SADB_EXT_LIFETIME_SOFT 4
-#define SADB_EXT_ADDRESS_SRC 5
-#define SADB_EXT_ADDRESS_DST 6
-#define SADB_EXT_ADDRESS_PROXY 7
-#define SADB_EXT_KEY_AUTH 8
-#define SADB_EXT_KEY_ENCRYPT 9
-#define SADB_EXT_IDENTITY_SRC 10
-#define SADB_EXT_IDENTITY_DST 11
-#define SADB_EXT_SENSITIVITY 12
-#define SADB_EXT_PROPOSAL 13
-#define SADB_EXT_SUPPORTED_AUTH 14
-#define SADB_EXT_SUPPORTED_ENCRYPT 15
-#define SADB_EXT_SPIRANGE 16
-#define SADB_X_EXT_KMPRIVATE 17
-#define SADB_X_EXT_POLICY 18
-#define SADB_X_EXT_SA2 19
-/* The next four entries are for setting up NAT Traversal */
-#define SADB_X_EXT_NAT_T_TYPE 20
-#define SADB_X_EXT_NAT_T_SPORT 21
-#define SADB_X_EXT_NAT_T_DPORT 22
-#define SADB_X_EXT_NAT_T_OA 23
-#define SADB_X_EXT_SEC_CTX 24
-/* Used with MIGRATE to pass @ to IKE for negotiation */
-#define SADB_X_EXT_KMADDRESS 25
-#define SADB_EXT_MAX 25
-
-/* Identity Extension values */
-#define SADB_IDENTTYPE_RESERVED 0
-#define SADB_IDENTTYPE_PREFIX 1
-#define SADB_IDENTTYPE_FQDN 2
-#define SADB_IDENTTYPE_USERFQDN 3
-#define SADB_IDENTTYPE_MAX 3
-
-#endif /* !(_LINUX_PFKEY2_H) */
diff --git a/ANDROID_3.4.5/include/linux/pfn.h b/ANDROID_3.4.5/include/linux/pfn.h
deleted file mode 100644
index 76466372..00000000
--- a/ANDROID_3.4.5/include/linux/pfn.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef _LINUX_PFN_H_
-#define _LINUX_PFN_H_
-
-#ifndef __ASSEMBLY__
-#include <linux/types.h>
-#endif
-
-#define PFN_ALIGN(x) (((unsigned long)(x) + (PAGE_SIZE - 1)) & PAGE_MASK)
-#define PFN_UP(x) (((x) + PAGE_SIZE-1) >> PAGE_SHIFT)
-#define PFN_DOWN(x) ((x) >> PAGE_SHIFT)
-#define PFN_PHYS(x) ((phys_addr_t)(x) << PAGE_SHIFT)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/pg.h b/ANDROID_3.4.5/include/linux/pg.h
deleted file mode 100644
index db994bb0..00000000
--- a/ANDROID_3.4.5/include/linux/pg.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* pg.h (c) 1998 Grant R. Guenther <grant@torque.net>
- Under the terms of the GNU General Public License
-
-
- pg.h defines the user interface to the generic ATAPI packet
- command driver for parallel port ATAPI devices (pg). The
- driver is loosely modelled after the generic SCSI driver, sg,
- although the actual interface is different.
-
- The pg driver provides a simple character device interface for
- sending ATAPI commands to a device. With the exception of the
- ATAPI reset operation, all operations are performed by a pair
- of read and write operations to the appropriate /dev/pgN device.
- A write operation delivers a command and any outbound data in
- a single buffer. Normally, the write will succeed unless the
- device is offline or malfunctioning, or there is already another
- command pending. If the write succeeds, it should be followed
- immediately by a read operation, to obtain any returned data and
- status information. A read will fail if there is no operation
- in progress.
-
- As a special case, the device can be reset with a write operation,
- and in this case, no following read is expected, or permitted.
-
- There are no ioctl() operations. Any single operation
- may transfer at most PG_MAX_DATA bytes. Note that the driver must
- copy the data through an internal buffer. In keeping with all
- current ATAPI devices, command packets are assumed to be exactly
- 12 bytes in length.
-
- To permit future changes to this interface, the headers in the
- read and write buffers contain a single character "magic" flag.
- Currently this flag must be the character "P".
-
-*/
-
-#define PG_MAGIC 'P'
-#define PG_RESET 'Z'
-#define PG_COMMAND 'C'
-
-#define PG_MAX_DATA 32768
-
-struct pg_write_hdr {
-
- char magic; /* == PG_MAGIC */
- char func; /* PG_RESET or PG_COMMAND */
- int dlen; /* number of bytes expected to transfer */
- int timeout; /* number of seconds before timeout */
- char packet[12]; /* packet command */
-
-};
-
-struct pg_read_hdr {
-
- char magic; /* == PG_MAGIC */
- char scsi; /* "scsi" status == sense key */
- int dlen; /* size of device transfer request */
- int duration; /* time in seconds command took */
- char pad[12]; /* not used */
-
-};
-
-/* end of pg.h */
diff --git a/ANDROID_3.4.5/include/linux/phantom.h b/ANDROID_3.4.5/include/linux/phantom.h
deleted file mode 100644
index 94dd6645..00000000
--- a/ANDROID_3.4.5/include/linux/phantom.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2005-2007 Jiri Slaby <jirislaby@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.
- */
-
-#ifndef __PHANTOM_H
-#define __PHANTOM_H
-
-#include <linux/types.h>
-
-/* PHN_(G/S)ET_REG param */
-struct phm_reg {
- __u32 reg;
- __u32 value;
-};
-
-/* PHN_(G/S)ET_REGS param */
-struct phm_regs {
- __u32 count;
- __u32 mask;
- __u32 values[8];
-};
-
-#define PH_IOC_MAGIC 'p'
-#define PHN_GET_REG _IOWR(PH_IOC_MAGIC, 0, struct phm_reg *)
-#define PHN_SET_REG _IOW(PH_IOC_MAGIC, 1, struct phm_reg *)
-#define PHN_GET_REGS _IOWR(PH_IOC_MAGIC, 2, struct phm_regs *)
-#define PHN_SET_REGS _IOW(PH_IOC_MAGIC, 3, struct phm_regs *)
-/* this ioctl tells the driver, that the caller is not OpenHaptics and might
- * use improved registers update (no more phantom switchoffs when using
- * libphantom) */
-#define PHN_NOT_OH _IO(PH_IOC_MAGIC, 4)
-#define PHN_GETREG _IOWR(PH_IOC_MAGIC, 5, struct phm_reg)
-#define PHN_SETREG _IOW(PH_IOC_MAGIC, 6, struct phm_reg)
-#define PHN_GETREGS _IOWR(PH_IOC_MAGIC, 7, struct phm_regs)
-#define PHN_SETREGS _IOW(PH_IOC_MAGIC, 8, struct phm_regs)
-
-#define PHN_CONTROL 0x6 /* control byte in iaddr space */
-#define PHN_CTL_AMP 0x1 /* switch after torques change */
-#define PHN_CTL_BUT 0x2 /* is button switched */
-#define PHN_CTL_IRQ 0x10 /* is irq enabled */
-
-#define PHN_ZERO_FORCE 2048 /* zero torque on motor */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/phonedev.h b/ANDROID_3.4.5/include/linux/phonedev.h
deleted file mode 100644
index 4269de99..00000000
--- a/ANDROID_3.4.5/include/linux/phonedev.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef __LINUX_PHONEDEV_H
-#define __LINUX_PHONEDEV_H
-
-#include <linux/types.h>
-
-#ifdef __KERNEL__
-
-#include <linux/poll.h>
-
-struct phone_device {
- struct phone_device *next;
- const struct file_operations *f_op;
- int (*open) (struct phone_device *, struct file *);
- int board; /* Device private index */
- int minor;
-};
-
-extern int phonedev_init(void);
-#define PHONE_MAJOR 100
-extern int phone_register_device(struct phone_device *, int unit);
-#define PHONE_UNIT_ANY -1
-extern void phone_unregister_device(struct phone_device *);
-
-#endif
-#endif
diff --git a/ANDROID_3.4.5/include/linux/phonet.h b/ANDROID_3.4.5/include/linux/phonet.h
deleted file mode 100644
index f48bfc80..00000000
--- a/ANDROID_3.4.5/include/linux/phonet.h
+++ /dev/null
@@ -1,200 +0,0 @@
-/**
- * file phonet.h
- *
- * Phonet sockets kernel interface
- *
- * Copyright (C) 2008 Nokia Corporation. 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
- * version 2 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 St, Fifth Floor, Boston, MA
- * 02110-1301 USA
- */
-
-#ifndef LINUX_PHONET_H
-#define LINUX_PHONET_H
-
-#include <linux/types.h>
-#include <linux/socket.h>
-
-/* Automatic protocol selection */
-#define PN_PROTO_TRANSPORT 0
-/* Phonet datagram socket */
-#define PN_PROTO_PHONET 1
-/* Phonet pipe */
-#define PN_PROTO_PIPE 2
-#define PHONET_NPROTO 3
-
-/* Socket options for SOL_PNPIPE level */
-#define PNPIPE_ENCAP 1
-#define PNPIPE_IFINDEX 2
-#define PNPIPE_HANDLE 3
-#define PNPIPE_INITSTATE 4
-
-#define PNADDR_ANY 0
-#define PNADDR_BROADCAST 0xFC
-#define PNPORT_RESOURCE_ROUTING 0
-
-/* Values for PNPIPE_ENCAP option */
-#define PNPIPE_ENCAP_NONE 0
-#define PNPIPE_ENCAP_IP 1
-
-/* ioctls */
-#define SIOCPNGETOBJECT (SIOCPROTOPRIVATE + 0)
-#define SIOCPNENABLEPIPE (SIOCPROTOPRIVATE + 13)
-#define SIOCPNADDRESOURCE (SIOCPROTOPRIVATE + 14)
-#define SIOCPNDELRESOURCE (SIOCPROTOPRIVATE + 15)
-
-/* Phonet protocol header */
-struct phonethdr {
- __u8 pn_rdev;
- __u8 pn_sdev;
- __u8 pn_res;
- __be16 pn_length;
- __u8 pn_robj;
- __u8 pn_sobj;
-} __attribute__((packed));
-
-/* Common Phonet payload header */
-struct phonetmsg {
- __u8 pn_trans_id; /* transaction ID */
- __u8 pn_msg_id; /* message type */
- union {
- struct {
- __u8 pn_submsg_id; /* message subtype */
- __u8 pn_data[5];
- } base;
- struct {
- __u16 pn_e_res_id; /* extended resource ID */
- __u8 pn_e_submsg_id; /* message subtype */
- __u8 pn_e_data[3];
- } ext;
- } pn_msg_u;
-};
-#define PN_COMMON_MESSAGE 0xF0
-#define PN_COMMGR 0x10
-#define PN_PREFIX 0xE0 /* resource for extended messages */
-#define pn_submsg_id pn_msg_u.base.pn_submsg_id
-#define pn_e_submsg_id pn_msg_u.ext.pn_e_submsg_id
-#define pn_e_res_id pn_msg_u.ext.pn_e_res_id
-#define pn_data pn_msg_u.base.pn_data
-#define pn_e_data pn_msg_u.ext.pn_e_data
-
-/* data for unreachable errors */
-#define PN_COMM_SERVICE_NOT_IDENTIFIED_RESP 0x01
-#define PN_COMM_ISA_ENTITY_NOT_REACHABLE_RESP 0x14
-#define pn_orig_msg_id pn_data[0]
-#define pn_status pn_data[1]
-#define pn_e_orig_msg_id pn_e_data[0]
-#define pn_e_status pn_e_data[1]
-
-/* Phonet socket address structure */
-struct sockaddr_pn {
- __kernel_sa_family_t spn_family;
- __u8 spn_obj;
- __u8 spn_dev;
- __u8 spn_resource;
- __u8 spn_zero[sizeof(struct sockaddr) - sizeof(__kernel_sa_family_t) - 3];
-} __attribute__((packed));
-
-/* Well known address */
-#define PN_DEV_PC 0x10
-
-static inline __u16 pn_object(__u8 addr, __u16 port)
-{
- return (addr << 8) | (port & 0x3ff);
-}
-
-static inline __u8 pn_obj(__u16 handle)
-{
- return handle & 0xff;
-}
-
-static inline __u8 pn_dev(__u16 handle)
-{
- return handle >> 8;
-}
-
-static inline __u16 pn_port(__u16 handle)
-{
- return handle & 0x3ff;
-}
-
-static inline __u8 pn_addr(__u16 handle)
-{
- return (handle >> 8) & 0xfc;
-}
-
-static inline void pn_sockaddr_set_addr(struct sockaddr_pn *spn, __u8 addr)
-{
- spn->spn_dev &= 0x03;
- spn->spn_dev |= addr & 0xfc;
-}
-
-static inline void pn_sockaddr_set_port(struct sockaddr_pn *spn, __u16 port)
-{
- spn->spn_dev &= 0xfc;
- spn->spn_dev |= (port >> 8) & 0x03;
- spn->spn_obj = port & 0xff;
-}
-
-static inline void pn_sockaddr_set_object(struct sockaddr_pn *spn,
- __u16 handle)
-{
- spn->spn_dev = pn_dev(handle);
- spn->spn_obj = pn_obj(handle);
-}
-
-static inline void pn_sockaddr_set_resource(struct sockaddr_pn *spn,
- __u8 resource)
-{
- spn->spn_resource = resource;
-}
-
-static inline __u8 pn_sockaddr_get_addr(const struct sockaddr_pn *spn)
-{
- return spn->spn_dev & 0xfc;
-}
-
-static inline __u16 pn_sockaddr_get_port(const struct sockaddr_pn *spn)
-{
- return ((spn->spn_dev & 0x03) << 8) | spn->spn_obj;
-}
-
-static inline __u16 pn_sockaddr_get_object(const struct sockaddr_pn *spn)
-{
- return pn_object(spn->spn_dev, spn->spn_obj);
-}
-
-static inline __u8 pn_sockaddr_get_resource(const struct sockaddr_pn *spn)
-{
- return spn->spn_resource;
-}
-
-/* Phonet device ioctl requests */
-#ifdef __KERNEL__
-#define SIOCPNGAUTOCONF (SIOCDEVPRIVATE + 0)
-
-struct if_phonet_autoconf {
- uint8_t device;
-};
-
-struct if_phonet_req {
- char ifr_phonet_name[16];
- union {
- struct if_phonet_autoconf ifru_phonet_autoconf;
- } ifr_ifru;
-};
-#define ifr_phonet_autoconf ifr_ifru.ifru_phonet_autoconf
-#endif /* __KERNEL__ */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/phy.h b/ANDROID_3.4.5/include/linux/phy.h
deleted file mode 100644
index 6fe0a37d..00000000
--- a/ANDROID_3.4.5/include/linux/phy.h
+++ /dev/null
@@ -1,537 +0,0 @@
-/*
- * include/linux/phy.h
- *
- * Framework and drivers for configuring and reading different PHYs
- * Based on code in sungem_phy.c and gianfar_phy.c
- *
- * Author: Andy Fleming
- *
- * Copyright (c) 2004 Freescale Semiconductor, Inc.
- *
- * 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 __PHY_H
-#define __PHY_H
-
-#include <linux/spinlock.h>
-#include <linux/ethtool.h>
-#include <linux/mii.h>
-#include <linux/timer.h>
-#include <linux/workqueue.h>
-#include <linux/mod_devicetable.h>
-
-#include <linux/atomic.h>
-
-#define PHY_BASIC_FEATURES (SUPPORTED_10baseT_Half | \
- SUPPORTED_10baseT_Full | \
- SUPPORTED_100baseT_Half | \
- SUPPORTED_100baseT_Full | \
- SUPPORTED_Autoneg | \
- SUPPORTED_TP | \
- SUPPORTED_MII)
-
-#define PHY_GBIT_FEATURES (PHY_BASIC_FEATURES | \
- SUPPORTED_1000baseT_Half | \
- SUPPORTED_1000baseT_Full)
-
-/*
- * Set phydev->irq to PHY_POLL if interrupts are not supported,
- * or not desired for this PHY. Set to PHY_IGNORE_INTERRUPT if
- * the attached driver handles the interrupt
- */
-#define PHY_POLL -1
-#define PHY_IGNORE_INTERRUPT -2
-
-#define PHY_HAS_INTERRUPT 0x00000001
-#define PHY_HAS_MAGICANEG 0x00000002
-
-/* Interface Mode definitions */
-typedef enum {
- PHY_INTERFACE_MODE_NA,
- PHY_INTERFACE_MODE_MII,
- PHY_INTERFACE_MODE_GMII,
- PHY_INTERFACE_MODE_SGMII,
- PHY_INTERFACE_MODE_TBI,
- PHY_INTERFACE_MODE_RMII,
- PHY_INTERFACE_MODE_RGMII,
- PHY_INTERFACE_MODE_RGMII_ID,
- PHY_INTERFACE_MODE_RGMII_RXID,
- PHY_INTERFACE_MODE_RGMII_TXID,
- PHY_INTERFACE_MODE_RTBI,
- PHY_INTERFACE_MODE_SMII,
-} phy_interface_t;
-
-
-#define PHY_INIT_TIMEOUT 100000
-#define PHY_STATE_TIME 1
-#define PHY_FORCE_TIMEOUT 10
-#define PHY_AN_TIMEOUT 10
-
-#define PHY_MAX_ADDR 32
-
-/* Used when trying to connect to a specific phy (mii bus id:phy device id) */
-#define PHY_ID_FMT "%s:%02x"
-
-/*
- * Need to be a little smaller than phydev->dev.bus_id to leave room
- * for the ":%02x"
- */
-#define MII_BUS_ID_SIZE (20 - 3)
-
-/* Or MII_ADDR_C45 into regnum for read/write on mii_bus to enable the 21 bit
- IEEE 802.3ae clause 45 addressing mode used by 10GIGE phy chips. */
-#define MII_ADDR_C45 (1<<30)
-
-struct device;
-struct sk_buff;
-
-/*
- * The Bus class for PHYs. Devices which provide access to
- * PHYs should register using this structure
- */
-struct mii_bus {
- const char *name;
- char id[MII_BUS_ID_SIZE];
- void *priv;
- int (*read)(struct mii_bus *bus, int phy_id, int regnum);
- int (*write)(struct mii_bus *bus, int phy_id, int regnum, u16 val);
- int (*reset)(struct mii_bus *bus);
-
- /*
- * A lock to ensure that only one thing can read/write
- * the MDIO bus at a time
- */
- struct mutex mdio_lock;
-
- struct device *parent;
- enum {
- MDIOBUS_ALLOCATED = 1,
- MDIOBUS_REGISTERED,
- MDIOBUS_UNREGISTERED,
- MDIOBUS_RELEASED,
- } state;
- struct device dev;
-
- /* list of all PHYs on bus */
- struct phy_device *phy_map[PHY_MAX_ADDR];
-
- /* PHY addresses to be ignored when probing */
- u32 phy_mask;
-
- /*
- * Pointer to an array of interrupts, each PHY's
- * interrupt at the index matching its address
- */
- int *irq;
-};
-#define to_mii_bus(d) container_of(d, struct mii_bus, dev)
-
-struct mii_bus *mdiobus_alloc_size(size_t);
-static inline struct mii_bus *mdiobus_alloc(void)
-{
- return mdiobus_alloc_size(0);
-}
-
-int mdiobus_register(struct mii_bus *bus);
-void mdiobus_unregister(struct mii_bus *bus);
-void mdiobus_free(struct mii_bus *bus);
-struct phy_device *mdiobus_scan(struct mii_bus *bus, int addr);
-int mdiobus_read(struct mii_bus *bus, int addr, u32 regnum);
-int mdiobus_write(struct mii_bus *bus, int addr, u32 regnum, u16 val);
-
-
-#define PHY_INTERRUPT_DISABLED 0x0
-#define PHY_INTERRUPT_ENABLED 0x80000000
-
-/* PHY state machine states:
- *
- * DOWN: PHY device and driver are not ready for anything. probe
- * should be called if and only if the PHY is in this state,
- * given that the PHY device exists.
- * - PHY driver probe function will, depending on the PHY, set
- * the state to STARTING or READY
- *
- * STARTING: PHY device is coming up, and the ethernet driver is
- * not ready. PHY drivers may set this in the probe function.
- * If they do, they are responsible for making sure the state is
- * eventually set to indicate whether the PHY is UP or READY,
- * depending on the state when the PHY is done starting up.
- * - PHY driver will set the state to READY
- * - start will set the state to PENDING
- *
- * READY: PHY is ready to send and receive packets, but the
- * controller is not. By default, PHYs which do not implement
- * probe will be set to this state by phy_probe(). If the PHY
- * driver knows the PHY is ready, and the PHY state is STARTING,
- * then it sets this STATE.
- * - start will set the state to UP
- *
- * PENDING: PHY device is coming up, but the ethernet driver is
- * ready. phy_start will set this state if the PHY state is
- * STARTING.
- * - PHY driver will set the state to UP when the PHY is ready
- *
- * UP: The PHY and attached device are ready to do work.
- * Interrupts should be started here.
- * - timer moves to AN
- *
- * AN: The PHY is currently negotiating the link state. Link is
- * therefore down for now. phy_timer will set this state when it
- * detects the state is UP. config_aneg will set this state
- * whenever called with phydev->autoneg set to AUTONEG_ENABLE.
- * - If autonegotiation finishes, but there's no link, it sets
- * the state to NOLINK.
- * - If aneg finishes with link, it sets the state to RUNNING,
- * and calls adjust_link
- * - If autonegotiation did not finish after an arbitrary amount
- * of time, autonegotiation should be tried again if the PHY
- * supports "magic" autonegotiation (back to AN)
- * - If it didn't finish, and no magic_aneg, move to FORCING.
- *
- * NOLINK: PHY is up, but not currently plugged in.
- * - If the timer notes that the link comes back, we move to RUNNING
- * - config_aneg moves to AN
- * - phy_stop moves to HALTED
- *
- * FORCING: PHY is being configured with forced settings
- * - if link is up, move to RUNNING
- * - If link is down, we drop to the next highest setting, and
- * retry (FORCING) after a timeout
- * - phy_stop moves to HALTED
- *
- * RUNNING: PHY is currently up, running, and possibly sending
- * and/or receiving packets
- * - timer will set CHANGELINK if we're polling (this ensures the
- * link state is polled every other cycle of this state machine,
- * which makes it every other second)
- * - irq will set CHANGELINK
- * - config_aneg will set AN
- * - phy_stop moves to HALTED
- *
- * CHANGELINK: PHY experienced a change in link state
- * - timer moves to RUNNING if link
- * - timer moves to NOLINK if the link is down
- * - phy_stop moves to HALTED
- *
- * HALTED: PHY is up, but no polling or interrupts are done. Or
- * PHY is in an error state.
- *
- * - phy_start moves to RESUMING
- *
- * RESUMING: PHY was halted, but now wants to run again.
- * - If we are forcing, or aneg is done, timer moves to RUNNING
- * - If aneg is not done, timer moves to AN
- * - phy_stop moves to HALTED
- */
-enum phy_state {
- PHY_DOWN=0,
- PHY_STARTING,
- PHY_READY,
- PHY_PENDING,
- PHY_UP,
- PHY_AN,
- PHY_RUNNING,
- PHY_NOLINK,
- PHY_FORCING,
- PHY_CHANGELINK,
- PHY_HALTED,
- PHY_RESUMING
-};
-
-
-/* phy_device: An instance of a PHY
- *
- * drv: Pointer to the driver for this PHY instance
- * bus: Pointer to the bus this PHY is on
- * dev: driver model device structure for this PHY
- * phy_id: UID for this device found during discovery
- * state: state of the PHY for management purposes
- * dev_flags: Device-specific flags used by the PHY driver.
- * addr: Bus address of PHY
- * link_timeout: The number of timer firings to wait before the
- * giving up on the current attempt at acquiring a link
- * irq: IRQ number of the PHY's interrupt (-1 if none)
- * phy_timer: The timer for handling the state machine
- * phy_queue: A work_queue for the interrupt
- * attached_dev: The attached enet driver's device instance ptr
- * adjust_link: Callback for the enet controller to respond to
- * changes in the link state.
- * adjust_state: Callback for the enet driver to respond to
- * changes in the state machine.
- *
- * speed, duplex, pause, supported, advertising, and
- * autoneg are used like in mii_if_info
- *
- * interrupts currently only supports enabled or disabled,
- * but could be changed in the future to support enabling
- * and disabling specific interrupts
- *
- * Contains some infrastructure for polling and interrupt
- * handling, as well as handling shifts in PHY hardware state
- */
-struct phy_device {
- /* Information about the PHY type */
- /* And management functions */
- struct phy_driver *drv;
-
- struct mii_bus *bus;
-
- struct device dev;
-
- u32 phy_id;
-
- enum phy_state state;
-
- u32 dev_flags;
-
- phy_interface_t interface;
-
- /* Bus address of the PHY (0-31) */
- int addr;
-
- /*
- * forced speed & duplex (no autoneg)
- * partner speed & duplex & pause (autoneg)
- */
- int speed;
- int duplex;
- int pause;
- int asym_pause;
-
- /* The most recently read link state */
- int link;
-
- /* Enabled Interrupts */
- u32 interrupts;
-
- /* Union of PHY and Attached devices' supported modes */
- /* See mii.h for more info */
- u32 supported;
- u32 advertising;
-
- int autoneg;
-
- int link_timeout;
-
- /*
- * Interrupt number for this PHY
- * -1 means no interrupt
- */
- int irq;
-
- /* private data pointer */
- /* For use by PHYs to maintain extra state */
- void *priv;
-
- /* Interrupt and Polling infrastructure */
- struct work_struct phy_queue;
- struct delayed_work state_queue;
- atomic_t irq_disable;
-
- struct mutex lock;
-
- struct net_device *attached_dev;
-
- void (*adjust_link)(struct net_device *dev);
-
- void (*adjust_state)(struct net_device *dev);
-};
-#define to_phy_device(d) container_of(d, struct phy_device, dev)
-
-/* struct phy_driver: Driver structure for a particular PHY type
- *
- * phy_id: The result of reading the UID registers of this PHY
- * type, and ANDing them with the phy_id_mask. This driver
- * only works for PHYs with IDs which match this field
- * name: The friendly name of this PHY type
- * phy_id_mask: Defines the important bits of the phy_id
- * features: A list of features (speed, duplex, etc) supported
- * by this PHY
- * flags: A bitfield defining certain other features this PHY
- * supports (like interrupts)
- *
- * The drivers must implement config_aneg and read_status. All
- * other functions are optional. Note that none of these
- * functions should be called from interrupt time. The goal is
- * for the bus read/write functions to be able to block when the
- * bus transaction is happening, and be freed up by an interrupt
- * (The MPC85xx has this ability, though it is not currently
- * supported in the driver).
- */
-struct phy_driver {
- u32 phy_id;
- char *name;
- unsigned int phy_id_mask;
- u32 features;
- u32 flags;
-
- /*
- * Called to initialize the PHY,
- * including after a reset
- */
- int (*config_init)(struct phy_device *phydev);
-
- /*
- * Called during discovery. Used to set
- * up device-specific structures, if any
- */
- int (*probe)(struct phy_device *phydev);
-
- /* PHY Power Management */
- int (*suspend)(struct phy_device *phydev);
- int (*resume)(struct phy_device *phydev);
-
- /*
- * Configures the advertisement and resets
- * autonegotiation if phydev->autoneg is on,
- * forces the speed to the current settings in phydev
- * if phydev->autoneg is off
- */
- int (*config_aneg)(struct phy_device *phydev);
-
- /* Determines the negotiated speed and duplex */
- int (*read_status)(struct phy_device *phydev);
-
- /* Clears any pending interrupts */
- int (*ack_interrupt)(struct phy_device *phydev);
-
- /* Enables or disables interrupts */
- int (*config_intr)(struct phy_device *phydev);
-
- /*
- * Checks if the PHY generated an interrupt.
- * For multi-PHY devices with shared PHY interrupt pin
- */
- int (*did_interrupt)(struct phy_device *phydev);
-
- /* Clears up any memory if needed */
- void (*remove)(struct phy_device *phydev);
-
- /* Handles SIOCSHWTSTAMP ioctl for hardware time stamping. */
- int (*hwtstamp)(struct phy_device *phydev, struct ifreq *ifr);
-
- /*
- * Requests a Rx timestamp for 'skb'. If the skb is accepted,
- * the phy driver promises to deliver it using netif_rx() as
- * soon as a timestamp becomes available. One of the
- * PTP_CLASS_ values is passed in 'type'. The function must
- * return true if the skb is accepted for delivery.
- */
- bool (*rxtstamp)(struct phy_device *dev, struct sk_buff *skb, int type);
-
- /*
- * Requests a Tx timestamp for 'skb'. The phy driver promises
- * to deliver it using skb_complete_tx_timestamp() as soon as a
- * timestamp becomes available. One of the PTP_CLASS_ values
- * is passed in 'type'.
- */
- void (*txtstamp)(struct phy_device *dev, struct sk_buff *skb, int type);
-
- struct device_driver driver;
-};
-#define to_phy_driver(d) container_of(d, struct phy_driver, driver)
-
-#define PHY_ANY_ID "MATCH ANY PHY"
-#define PHY_ANY_UID 0xffffffff
-
-/* A Structure for boards to register fixups with the PHY Lib */
-struct phy_fixup {
- struct list_head list;
- char bus_id[20];
- u32 phy_uid;
- u32 phy_uid_mask;
- int (*run)(struct phy_device *phydev);
-};
-
-/**
- * phy_read - Convenience function for reading a given PHY register
- * @phydev: the phy_device struct
- * @regnum: register number to read
- *
- * NOTE: MUST NOT be called from interrupt context,
- * because the bus read/write functions may wait for an interrupt
- * to conclude the operation.
- */
-static inline int phy_read(struct phy_device *phydev, u32 regnum)
-{
- return mdiobus_read(phydev->bus, phydev->addr, regnum);
-}
-
-/**
- * phy_write - Convenience function for writing a given PHY register
- * @phydev: the phy_device struct
- * @regnum: register number to write
- * @val: value to write to @regnum
- *
- * NOTE: MUST NOT be called from interrupt context,
- * because the bus read/write functions may wait for an interrupt
- * to conclude the operation.
- */
-static inline int phy_write(struct phy_device *phydev, u32 regnum, u16 val)
-{
- return mdiobus_write(phydev->bus, phydev->addr, regnum, val);
-}
-
-int get_phy_id(struct mii_bus *bus, int addr, u32 *phy_id);
-struct phy_device* get_phy_device(struct mii_bus *bus, int addr);
-int phy_device_register(struct phy_device *phy);
-int phy_init_hw(struct phy_device *phydev);
-struct phy_device * phy_attach(struct net_device *dev,
- const char *bus_id, u32 flags, phy_interface_t interface);
-struct phy_device *phy_find_first(struct mii_bus *bus);
-int phy_connect_direct(struct net_device *dev, struct phy_device *phydev,
- void (*handler)(struct net_device *), u32 flags,
- phy_interface_t interface);
-struct phy_device * phy_connect(struct net_device *dev, const char *bus_id,
- void (*handler)(struct net_device *), u32 flags,
- phy_interface_t interface);
-void phy_disconnect(struct phy_device *phydev);
-void phy_detach(struct phy_device *phydev);
-void phy_start(struct phy_device *phydev);
-void phy_stop(struct phy_device *phydev);
-int phy_start_aneg(struct phy_device *phydev);
-
-int phy_stop_interrupts(struct phy_device *phydev);
-
-static inline int phy_read_status(struct phy_device *phydev) {
- return phydev->drv->read_status(phydev);
-}
-
-int genphy_restart_aneg(struct phy_device *phydev);
-int genphy_config_aneg(struct phy_device *phydev);
-int genphy_update_link(struct phy_device *phydev);
-int genphy_read_status(struct phy_device *phydev);
-int genphy_suspend(struct phy_device *phydev);
-int genphy_resume(struct phy_device *phydev);
-void phy_driver_unregister(struct phy_driver *drv);
-int phy_driver_register(struct phy_driver *new_driver);
-void phy_state_machine(struct work_struct *work);
-void phy_start_machine(struct phy_device *phydev,
- void (*handler)(struct net_device *));
-void phy_stop_machine(struct phy_device *phydev);
-int phy_ethtool_sset(struct phy_device *phydev, struct ethtool_cmd *cmd);
-int phy_ethtool_gset(struct phy_device *phydev, struct ethtool_cmd *cmd);
-int phy_mii_ioctl(struct phy_device *phydev,
- struct ifreq *ifr, int cmd);
-int phy_start_interrupts(struct phy_device *phydev);
-void phy_print_status(struct phy_device *phydev);
-void phy_device_free(struct phy_device *phydev);
-
-int phy_register_fixup(const char *bus_id, u32 phy_uid, u32 phy_uid_mask,
- int (*run)(struct phy_device *));
-int phy_register_fixup_for_id(const char *bus_id,
- int (*run)(struct phy_device *));
-int phy_register_fixup_for_uid(u32 phy_uid, u32 phy_uid_mask,
- int (*run)(struct phy_device *));
-int phy_scan_fixups(struct phy_device *phydev);
-
-int __init mdio_bus_init(void);
-void mdio_bus_exit(void);
-
-extern struct bus_type mdio_bus_type;
-#endif /* __PHY_H */
diff --git a/ANDROID_3.4.5/include/linux/phy_fixed.h b/ANDROID_3.4.5/include/linux/phy_fixed.h
deleted file mode 100644
index 509d8f5f..00000000
--- a/ANDROID_3.4.5/include/linux/phy_fixed.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef __PHY_FIXED_H
-#define __PHY_FIXED_H
-
-struct fixed_phy_status {
- int link;
- int speed;
- int duplex;
- int pause;
- int asym_pause;
-};
-
-#ifdef CONFIG_FIXED_PHY
-extern int fixed_phy_add(unsigned int irq, int phy_id,
- struct fixed_phy_status *status);
-#else
-static inline int fixed_phy_add(unsigned int irq, int phy_id,
- struct fixed_phy_status *status)
-{
- return -ENODEV;
-}
-#endif /* CONFIG_FIXED_PHY */
-
-/*
- * This function issued only by fixed_phy-aware drivers, no need
- * protect it with #ifdef
- */
-extern int fixed_phy_set_link_update(struct phy_device *phydev,
- int (*link_update)(struct net_device *,
- struct fixed_phy_status *));
-
-#endif /* __PHY_FIXED_H */
diff --git a/ANDROID_3.4.5/include/linux/pid.h b/ANDROID_3.4.5/include/linux/pid.h
deleted file mode 100644
index b152d44f..00000000
--- a/ANDROID_3.4.5/include/linux/pid.h
+++ /dev/null
@@ -1,202 +0,0 @@
-#ifndef _LINUX_PID_H
-#define _LINUX_PID_H
-
-#include <linux/rcupdate.h>
-
-enum pid_type
-{
- PIDTYPE_PID,
- PIDTYPE_PGID,
- PIDTYPE_SID,
- PIDTYPE_MAX
-};
-
-/*
- * What is struct pid?
- *
- * A struct pid is the kernel's internal notion of a process identifier.
- * It refers to individual tasks, process groups, and sessions. While
- * there are processes attached to it the struct pid lives in a hash
- * table, so it and then the processes that it refers to can be found
- * quickly from the numeric pid value. The attached processes may be
- * quickly accessed by following pointers from struct pid.
- *
- * Storing pid_t values in the kernel and referring to them later has a
- * problem. The process originally with that pid may have exited and the
- * pid allocator wrapped, and another process could have come along
- * and been assigned that pid.
- *
- * Referring to user space processes by holding a reference to struct
- * task_struct has a problem. When the user space process exits
- * the now useless task_struct is still kept. A task_struct plus a
- * stack consumes around 10K of low kernel memory. More precisely
- * this is THREAD_SIZE + sizeof(struct task_struct). By comparison
- * a struct pid is about 64 bytes.
- *
- * Holding a reference to struct pid solves both of these problems.
- * It is small so holding a reference does not consume a lot of
- * resources, and since a new struct pid is allocated when the numeric pid
- * value is reused (when pids wrap around) we don't mistakenly refer to new
- * processes.
- */
-
-
-/*
- * struct upid is used to get the id of the struct pid, as it is
- * seen in particular namespace. Later the struct pid is found with
- * find_pid_ns() using the int nr and struct pid_namespace *ns.
- */
-
-struct upid {
- /* Try to keep pid_chain in the same cacheline as nr for find_vpid */
- int nr;
- struct pid_namespace *ns;
- struct hlist_node pid_chain;
-};
-
-struct pid
-{
- atomic_t count;
- unsigned int level;
- /* lists of tasks that use this pid */
- struct hlist_head tasks[PIDTYPE_MAX];
- struct rcu_head rcu;
- struct upid numbers[1];
-};
-
-extern struct pid init_struct_pid;
-
-struct pid_link
-{
- struct hlist_node node;
- struct pid *pid;
-};
-
-static inline struct pid *get_pid(struct pid *pid)
-{
- if (pid)
- atomic_inc(&pid->count);
- return pid;
-}
-
-extern void put_pid(struct pid *pid);
-extern struct task_struct *pid_task(struct pid *pid, enum pid_type);
-extern struct task_struct *get_pid_task(struct pid *pid, enum pid_type);
-
-extern struct pid *get_task_pid(struct task_struct *task, enum pid_type type);
-
-/*
- * attach_pid() and detach_pid() must be called with the tasklist_lock
- * write-held.
- */
-extern void attach_pid(struct task_struct *task, enum pid_type type,
- struct pid *pid);
-extern void detach_pid(struct task_struct *task, enum pid_type);
-extern void change_pid(struct task_struct *task, enum pid_type,
- struct pid *pid);
-extern void transfer_pid(struct task_struct *old, struct task_struct *new,
- enum pid_type);
-
-struct pid_namespace;
-extern struct pid_namespace init_pid_ns;
-
-/*
- * look up a PID in the hash table. Must be called with the tasklist_lock
- * or rcu_read_lock() held.
- *
- * find_pid_ns() finds the pid in the namespace specified
- * find_vpid() finds the pid by its virtual id, i.e. in the current namespace
- *
- * see also find_task_by_vpid() set in include/linux/sched.h
- */
-extern struct pid *find_pid_ns(int nr, struct pid_namespace *ns);
-extern struct pid *find_vpid(int nr);
-
-/*
- * Lookup a PID in the hash table, and return with it's count elevated.
- */
-extern struct pid *find_get_pid(int nr);
-extern struct pid *find_ge_pid(int nr, struct pid_namespace *);
-int next_pidmap(struct pid_namespace *pid_ns, unsigned int last);
-
-extern struct pid *alloc_pid(struct pid_namespace *ns);
-extern void free_pid(struct pid *pid);
-
-/*
- * ns_of_pid() returns the pid namespace in which the specified pid was
- * allocated.
- *
- * NOTE:
- * ns_of_pid() is expected to be called for a process (task) that has
- * an attached 'struct pid' (see attach_pid(), detach_pid()) i.e @pid
- * is expected to be non-NULL. If @pid is NULL, caller should handle
- * the resulting NULL pid-ns.
- */
-static inline struct pid_namespace *ns_of_pid(struct pid *pid)
-{
- struct pid_namespace *ns = NULL;
- if (pid)
- ns = pid->numbers[pid->level].ns;
- return ns;
-}
-
-/*
- * is_child_reaper returns true if the pid is the init process
- * of the current namespace. As this one could be checked before
- * pid_ns->child_reaper is assigned in copy_process, we check
- * with the pid number.
- */
-static inline bool is_child_reaper(struct pid *pid)
-{
- return pid->numbers[pid->level].nr == 1;
-}
-
-/*
- * the helpers to get the pid's id seen from different namespaces
- *
- * pid_nr() : global id, i.e. the id seen from the init namespace;
- * pid_vnr() : virtual id, i.e. the id seen from the pid namespace of
- * current.
- * pid_nr_ns() : id seen from the ns specified.
- *
- * see also task_xid_nr() etc in include/linux/sched.h
- */
-
-static inline pid_t pid_nr(struct pid *pid)
-{
- pid_t nr = 0;
- if (pid)
- nr = pid->numbers[0].nr;
- return nr;
-}
-
-pid_t pid_nr_ns(struct pid *pid, struct pid_namespace *ns);
-pid_t pid_vnr(struct pid *pid);
-
-#define do_each_pid_task(pid, type, task) \
- do { \
- struct hlist_node *pos___; \
- if ((pid) != NULL) \
- hlist_for_each_entry_rcu((task), pos___, \
- &(pid)->tasks[type], pids[type].node) {
-
- /*
- * Both old and new leaders may be attached to
- * the same pid in the middle of de_thread().
- */
-#define while_each_pid_task(pid, type, task) \
- if (type == PIDTYPE_PID) \
- break; \
- } \
- } while (0)
-
-#define do_each_pid_thread(pid, type, task) \
- do_each_pid_task(pid, type, task) { \
- struct task_struct *tg___ = task; \
- do {
-
-#define while_each_pid_thread(pid, type, task) \
- } while_each_thread(tg___, task); \
- task = tg___; \
- } while_each_pid_task(pid, type, task)
-#endif /* _LINUX_PID_H */
diff --git a/ANDROID_3.4.5/include/linux/pid_namespace.h b/ANDROID_3.4.5/include/linux/pid_namespace.h
deleted file mode 100644
index b067bd8c..00000000
--- a/ANDROID_3.4.5/include/linux/pid_namespace.h
+++ /dev/null
@@ -1,95 +0,0 @@
-#ifndef _LINUX_PID_NS_H
-#define _LINUX_PID_NS_H
-
-#include <linux/sched.h>
-#include <linux/bug.h>
-#include <linux/mm.h>
-#include <linux/threads.h>
-#include <linux/nsproxy.h>
-#include <linux/kref.h>
-
-struct pidmap {
- atomic_t nr_free;
- void *page;
-};
-
-#define PIDMAP_ENTRIES ((PID_MAX_LIMIT + 8*PAGE_SIZE - 1)/PAGE_SIZE/8)
-
-struct bsd_acct_struct;
-
-struct pid_namespace {
- struct kref kref;
- struct pidmap pidmap[PIDMAP_ENTRIES];
- int last_pid;
- struct task_struct *child_reaper;
- struct kmem_cache *pid_cachep;
- unsigned int level;
- struct pid_namespace *parent;
-#ifdef CONFIG_PROC_FS
- struct vfsmount *proc_mnt;
-#endif
-#ifdef CONFIG_BSD_PROCESS_ACCT
- struct bsd_acct_struct *bacct;
-#endif
- gid_t pid_gid;
- int hide_pid;
- int reboot; /* group exit code if this pidns was rebooted */
-};
-
-extern struct pid_namespace init_pid_ns;
-
-#ifdef CONFIG_PID_NS
-static inline struct pid_namespace *get_pid_ns(struct pid_namespace *ns)
-{
- if (ns != &init_pid_ns)
- kref_get(&ns->kref);
- return ns;
-}
-
-extern struct pid_namespace *copy_pid_ns(unsigned long flags, struct pid_namespace *ns);
-extern void free_pid_ns(struct kref *kref);
-extern void zap_pid_ns_processes(struct pid_namespace *pid_ns);
-extern int reboot_pid_ns(struct pid_namespace *pid_ns, int cmd);
-
-static inline void put_pid_ns(struct pid_namespace *ns)
-{
- if (ns != &init_pid_ns)
- kref_put(&ns->kref, free_pid_ns);
-}
-
-#else /* !CONFIG_PID_NS */
-#include <linux/err.h>
-
-static inline struct pid_namespace *get_pid_ns(struct pid_namespace *ns)
-{
- return ns;
-}
-
-static inline struct pid_namespace *
-copy_pid_ns(unsigned long flags, struct pid_namespace *ns)
-{
- if (flags & CLONE_NEWPID)
- ns = ERR_PTR(-EINVAL);
- return ns;
-}
-
-static inline void put_pid_ns(struct pid_namespace *ns)
-{
-}
-
-static inline void zap_pid_ns_processes(struct pid_namespace *ns)
-{
- BUG();
-}
-
-static inline int reboot_pid_ns(struct pid_namespace *pid_ns, int cmd)
-{
- return 0;
-}
-#endif /* CONFIG_PID_NS */
-
-extern struct pid_namespace *task_active_pid_ns(struct task_struct *tsk);
-void pidhash_init(void);
-void pidmap_init(void);
-
-#endif /* _LINUX_PID_NS_H */
diff --git a/ANDROID_3.4.5/include/linux/pim.h b/ANDROID_3.4.5/include/linux/pim.h
deleted file mode 100644
index 252bf664..00000000
--- a/ANDROID_3.4.5/include/linux/pim.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef __LINUX_PIM_H
-#define __LINUX_PIM_H
-
-#include <asm/byteorder.h>
-
-/* Message types - V1 */
-#define PIM_V1_VERSION cpu_to_be32(0x10000000)
-#define PIM_V1_REGISTER 1
-
-/* Message types - V2 */
-#define PIM_VERSION 2
-#define PIM_REGISTER 1
-
-#define PIM_NULL_REGISTER cpu_to_be32(0x40000000)
-
-/* PIMv2 register message header layout (ietf-draft-idmr-pimvsm-v2-00.ps */
-struct pimreghdr
-{
- __u8 type;
- __u8 reserved;
- __be16 csum;
- __be32 flags;
-};
-
-struct sk_buff;
-extern int pim_rcv_v1(struct sk_buff *);
-#endif
diff --git a/ANDROID_3.4.5/include/linux/pinctrl/consumer.h b/ANDROID_3.4.5/include/linux/pinctrl/consumer.h
deleted file mode 100644
index 191e7268..00000000
--- a/ANDROID_3.4.5/include/linux/pinctrl/consumer.h
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * Consumer interface the pin control subsystem
- *
- * Copyright (C) 2012 ST-Ericsson SA
- * Written on behalf of Linaro for ST-Ericsson
- * Based on bits of regulator core, gpio core and clk core
- *
- * Author: Linus Walleij <linus.walleij@linaro.org>
- *
- * License terms: GNU General Public License (GPL) version 2
- */
-#ifndef __LINUX_PINCTRL_CONSUMER_H
-#define __LINUX_PINCTRL_CONSUMER_H
-
-#include <linux/err.h>
-#include <linux/list.h>
-#include <linux/seq_file.h>
-#include "pinctrl-state.h"
-
-/* This struct is private to the core and should be regarded as a cookie */
-struct pinctrl;
-struct pinctrl_state;
-
-#ifdef CONFIG_PINCTRL
-
-/* External interface to pin control */
-extern int pinctrl_request_gpio(unsigned gpio);
-extern void pinctrl_free_gpio(unsigned gpio);
-extern int pinctrl_gpio_direction_input(unsigned gpio);
-extern int pinctrl_gpio_direction_output(unsigned gpio);
-
-extern struct pinctrl * __must_check pinctrl_get(struct device *dev);
-extern void pinctrl_put(struct pinctrl *p);
-extern struct pinctrl_state * __must_check pinctrl_lookup_state(
- struct pinctrl *p,
- const char *name);
-extern int pinctrl_select_state(struct pinctrl *p, struct pinctrl_state *s);
-
-#else /* !CONFIG_PINCTRL */
-
-static inline int pinctrl_request_gpio(unsigned gpio)
-{
- return 0;
-}
-
-static inline void pinctrl_free_gpio(unsigned gpio)
-{
-}
-
-static inline int pinctrl_gpio_direction_input(unsigned gpio)
-{
- return 0;
-}
-
-static inline int pinctrl_gpio_direction_output(unsigned gpio)
-{
- return 0;
-}
-
-static inline struct pinctrl * __must_check pinctrl_get(struct device *dev)
-{
- return NULL;
-}
-
-static inline void pinctrl_put(struct pinctrl *p)
-{
-}
-
-static inline struct pinctrl_state * __must_check pinctrl_lookup_state(
- struct pinctrl *p,
- const char *name)
-{
- return NULL;
-}
-
-static inline int pinctrl_select_state(struct pinctrl *p,
- struct pinctrl_state *s)
-{
- return 0;
-}
-
-#endif /* CONFIG_PINCTRL */
-
-static inline struct pinctrl * __must_check pinctrl_get_select(
- struct device *dev, const char *name)
-{
- struct pinctrl *p;
- struct pinctrl_state *s;
- int ret;
-
- p = pinctrl_get(dev);
- if (IS_ERR(p))
- return p;
-
- s = pinctrl_lookup_state(p, name);
- if (IS_ERR(s)) {
- pinctrl_put(p);
- return ERR_PTR(PTR_ERR(s));
- }
-
- ret = pinctrl_select_state(p, s);
- if (ret < 0) {
- pinctrl_put(p);
- return ERR_PTR(ret);
- }
-
- return p;
-}
-
-static inline struct pinctrl * __must_check pinctrl_get_select_default(
- struct device *dev)
-{
- return pinctrl_get_select(dev, PINCTRL_STATE_DEFAULT);
-}
-
-#ifdef CONFIG_PINCONF
-
-extern int pin_config_get(const char *dev_name, const char *name,
- unsigned long *config);
-extern int pin_config_set(const char *dev_name, const char *name,
- unsigned long config);
-extern int pin_config_group_get(const char *dev_name,
- const char *pin_group,
- unsigned long *config);
-extern int pin_config_group_set(const char *dev_name,
- const char *pin_group,
- unsigned long config);
-
-#else
-
-static inline int pin_config_get(const char *dev_name, const char *name,
- unsigned long *config)
-{
- return 0;
-}
-
-static inline int pin_config_set(const char *dev_name, const char *name,
- unsigned long config)
-{
- return 0;
-}
-
-static inline int pin_config_group_get(const char *dev_name,
- const char *pin_group,
- unsigned long *config)
-{
- return 0;
-}
-
-static inline int pin_config_group_set(const char *dev_name,
- const char *pin_group,
- unsigned long config)
-{
- return 0;
-}
-
-#endif
-
-#endif /* __LINUX_PINCTRL_CONSUMER_H */
diff --git a/ANDROID_3.4.5/include/linux/pinctrl/machine.h b/ANDROID_3.4.5/include/linux/pinctrl/machine.h
deleted file mode 100644
index e4d1de74..00000000
--- a/ANDROID_3.4.5/include/linux/pinctrl/machine.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * Machine interface for the pinctrl subsystem.
- *
- * Copyright (C) 2011 ST-Ericsson SA
- * Written on behalf of Linaro for ST-Ericsson
- * Based on bits of regulator core, gpio core and clk core
- *
- * Author: Linus Walleij <linus.walleij@linaro.org>
- *
- * License terms: GNU General Public License (GPL) version 2
- */
-#ifndef __LINUX_PINCTRL_MACHINE_H
-#define __LINUX_PINCTRL_MACHINE_H
-
-#include <linux/bug.h>
-
-#include "pinctrl-state.h"
-
-enum pinctrl_map_type {
- PIN_MAP_TYPE_INVALID,
- PIN_MAP_TYPE_DUMMY_STATE,
- PIN_MAP_TYPE_MUX_GROUP,
- PIN_MAP_TYPE_CONFIGS_PIN,
- PIN_MAP_TYPE_CONFIGS_GROUP,
-};
-
-/**
- * struct pinctrl_map_mux - mapping table content for MAP_TYPE_MUX_GROUP
- * @group: the name of the group whose mux function is to be configured. This
- * field may be left NULL, and the first applicable group for the function
- * will be used.
- * @function: the mux function to select for the group
- */
-struct pinctrl_map_mux {
- const char *group;
- const char *function;
-};
-
-/**
- * struct pinctrl_map_configs - mapping table content for MAP_TYPE_CONFIGS_*
- * @group_or_pin: the name of the pin or group whose configuration parameters
- * are to be configured.
- * @configs: a pointer to an array of config parameters/values to program into
- * hardware. Each individual pin controller defines the format and meaning
- * of config parameters.
- * @num_configs: the number of entries in array @configs
- */
-struct pinctrl_map_configs {
- const char *group_or_pin;
- unsigned long *configs;
- unsigned num_configs;
-};
-
-/**
- * struct pinctrl_map - boards/machines shall provide this map for devices
- * @dev_name: the name of the device using this specific mapping, the name
- * must be the same as in your struct device*. If this name is set to the
- * same name as the pin controllers own dev_name(), the map entry will be
- * hogged by the driver itself upon registration
- * @name: the name of this specific map entry for the particular machine.
- * This is the parameter passed to pinmux_lookup_state()
- * @type: the type of mapping table entry
- * @ctrl_dev_name: the name of the device controlling this specific mapping,
- * the name must be the same as in your struct device*. This field is not
- * used for PIN_MAP_TYPE_DUMMY_STATE
- * @data: Data specific to the mapping type
- */
-struct pinctrl_map {
- const char *dev_name;
- const char *name;
- enum pinctrl_map_type type;
- const char *ctrl_dev_name;
- union {
- struct pinctrl_map_mux mux;
- struct pinctrl_map_configs configs;
- } data;
-};
-
-/* Convenience macros to create mapping table entries */
-
-#define PIN_MAP_DUMMY_STATE(dev, state) \
- { \
- .dev_name = dev, \
- .name = state, \
- .type = PIN_MAP_TYPE_DUMMY_STATE, \
- }
-
-#define PIN_MAP_MUX_GROUP(dev, state, pinctrl, grp, func) \
- { \
- .dev_name = dev, \
- .name = state, \
- .type = PIN_MAP_TYPE_MUX_GROUP, \
- .ctrl_dev_name = pinctrl, \
- .data.mux = { \
- .group = grp, \
- .function = func, \
- }, \
- }
-
-#define PIN_MAP_MUX_GROUP_DEFAULT(dev, pinctrl, grp, func) \
- PIN_MAP_MUX_GROUP(dev, PINCTRL_STATE_DEFAULT, pinctrl, grp, func)
-
-#define PIN_MAP_MUX_GROUP_HOG(dev, state, grp, func) \
- PIN_MAP_MUX_GROUP(dev, state, dev, grp, func)
-
-#define PIN_MAP_MUX_GROUP_HOG_DEFAULT(dev, grp, func) \
- PIN_MAP_MUX_GROUP(dev, PINCTRL_STATE_DEFAULT, dev, grp, func)
-
-#define PIN_MAP_CONFIGS_PIN(dev, state, pinctrl, pin, cfgs) \
- { \
- .dev_name = dev, \
- .name = state, \
- .type = PIN_MAP_TYPE_CONFIGS_PIN, \
- .ctrl_dev_name = pinctrl, \
- .data.configs = { \
- .group_or_pin = pin, \
- .configs = cfgs, \
- .num_configs = ARRAY_SIZE(cfgs), \
- }, \
- }
-
-#define PIN_MAP_CONFIGS_PIN_DEFAULT(dev, pinctrl, pin, cfgs) \
- PIN_MAP_CONFIGS_PIN(dev, PINCTRL_STATE_DEFAULT, pinctrl, pin, cfgs)
-
-#define PIN_MAP_CONFIGS_PIN_HOG(dev, state, pin, cfgs) \
- PIN_MAP_CONFIGS_PIN(dev, state, dev, pin, cfgs)
-
-#define PIN_MAP_CONFIGS_PIN_HOG_DEFAULT(dev, pin, cfgs) \
- PIN_MAP_CONFIGS_PIN(dev, PINCTRL_STATE_DEFAULT, dev, pin, cfgs)
-
-#define PIN_MAP_CONFIGS_GROUP(dev, state, pinctrl, grp, cfgs) \
- { \
- .dev_name = dev, \
- .name = state, \
- .type = PIN_MAP_TYPE_CONFIGS_GROUP, \
- .ctrl_dev_name = pinctrl, \
- .data.configs = { \
- .group_or_pin = grp, \
- .configs = cfgs, \
- .num_configs = ARRAY_SIZE(cfgs), \
- }, \
- }
-
-#define PIN_MAP_CONFIGS_GROUP_DEFAULT(dev, pinctrl, grp, cfgs) \
- PIN_MAP_CONFIGS_GROUP(dev, PINCTRL_STATE_DEFAULT, pinctrl, grp, cfgs)
-
-#define PIN_MAP_CONFIGS_GROUP_HOG(dev, state, grp, cfgs) \
- PIN_MAP_CONFIGS_GROUP(dev, state, dev, grp, cfgs)
-
-#define PIN_MAP_CONFIGS_GROUP_HOG_DEFAULT(dev, grp, cfgs) \
- PIN_MAP_CONFIGS_GROUP(dev, PINCTRL_STATE_DEFAULT, dev, grp, cfgs)
-
-#ifdef CONFIG_PINCTRL
-
-extern int pinctrl_register_mappings(struct pinctrl_map const *map,
- unsigned num_maps);
-
-#else
-
-static inline int pinctrl_register_mappings(struct pinctrl_map const *map,
- unsigned num_maps)
-{
- return 0;
-}
-
-#endif /* !CONFIG_PINMUX */
-#endif
diff --git a/ANDROID_3.4.5/include/linux/pinctrl/pinconf-generic.h b/ANDROID_3.4.5/include/linux/pinctrl/pinconf-generic.h
deleted file mode 100644
index 4f0abb9f..00000000
--- a/ANDROID_3.4.5/include/linux/pinctrl/pinconf-generic.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Interface the generic pinconfig portions of the pinctrl subsystem
- *
- * Copyright (C) 2011 ST-Ericsson SA
- * Written on behalf of Linaro for ST-Ericsson
- * This interface is used in the core to keep track of pins.
- *
- * Author: Linus Walleij <linus.walleij@linaro.org>
- *
- * License terms: GNU General Public License (GPL) version 2
- */
-#ifndef __LINUX_PINCTRL_PINCONF_GENERIC_H
-#define __LINUX_PINCTRL_PINCONF_GENERIC_H
-
-/*
- * You shouldn't even be able to compile with these enums etc unless you're
- * using generic pin config. That is why this is defined out.
- */
-#ifdef CONFIG_GENERIC_PINCONF
-
-/**
- * enum pin_config_param - possible pin configuration parameters
- * @PIN_CONFIG_BIAS_DISABLE: disable any pin bias on the pin, a
- * transition from say pull-up to pull-down implies that you disable
- * pull-up in the process, this setting disables all biasing.
- * @PIN_CONFIG_BIAS_HIGH_IMPEDANCE: the pin will be set to a high impedance
- * mode, also know as "third-state" (tristate) or "high-Z" or "floating".
- * On output pins this effectively disconnects the pin, which is useful
- * if for example some other pin is going to drive the signal connected
- * to it for a while. Pins used for input are usually always high
- * impedance.
- * @PIN_CONFIG_BIAS_PULL_UP: the pin will be pulled up (usually with high
- * impedance to VDD). If the argument is != 0 pull-up is enabled,
- * if it is 0, pull-up is disabled.
- * @PIN_CONFIG_BIAS_PULL_DOWN: the pin will be pulled down (usually with high
- * impedance to GROUND). If the argument is != 0 pull-down is enabled,
- * if it is 0, pull-down is disabled.
- * @PIN_CONFIG_DRIVE_PUSH_PULL: the pin will be driven actively high and
- * low, this is the most typical case and is typically achieved with two
- * active transistors on the output. Sending this config will enabale
- * push-pull mode, the argument is ignored.
- * @PIN_CONFIG_DRIVE_OPEN_DRAIN: the pin will be driven with open drain (open
- * collector) which means it is usually wired with other output ports
- * which are then pulled up with an external resistor. Sending this
- * config will enabale open drain mode, the argument is ignored.
- * @PIN_CONFIG_DRIVE_OPEN_SOURCE: the pin will be driven with open source
- * (open emitter). Sending this config will enabale open drain mode, the
- * argument is ignored.
- * @PIN_CONFIG_INPUT_SCHMITT: this will configure an input pin to run in
- * schmitt-trigger mode. If the schmitt-trigger has adjustable hysteresis,
- * the threshold value is given on a custom format as argument when
- * setting pins to this mode. The argument zero turns the schmitt trigger
- * off.
- * @PIN_CONFIG_INPUT_DEBOUNCE: this will configure the pin to debounce mode,
- * which means it will wait for signals to settle when reading inputs. The
- * argument gives the debounce time on a custom format. Setting the
- * argument to zero turns debouncing off.
- * @PIN_CONFIG_POWER_SOURCE: if the pin can select between different power
- * supplies, the argument to this parameter (on a custom format) tells
- * the driver which alternative power source to use.
- * @PIN_CONFIG_LOW_POWER_MODE: this will configure the pin for low power
- * operation, if several modes of operation are supported these can be
- * passed in the argument on a custom form, else just use argument 1
- * to indicate low power mode, argument 0 turns low power mode off.
- * @PIN_CONFIG_END: this is the last enumerator for pin configurations, if
- * you need to pass in custom configurations to the pin controller, use
- * PIN_CONFIG_END+1 as the base offset.
- */
-enum pin_config_param {
- PIN_CONFIG_BIAS_DISABLE,
- PIN_CONFIG_BIAS_HIGH_IMPEDANCE,
- PIN_CONFIG_BIAS_PULL_UP,
- PIN_CONFIG_BIAS_PULL_DOWN,
- PIN_CONFIG_DRIVE_PUSH_PULL,
- PIN_CONFIG_DRIVE_OPEN_DRAIN,
- PIN_CONFIG_DRIVE_OPEN_SOURCE,
- PIN_CONFIG_INPUT_SCHMITT,
- PIN_CONFIG_INPUT_DEBOUNCE,
- PIN_CONFIG_POWER_SOURCE,
- PIN_CONFIG_LOW_POWER_MODE,
- PIN_CONFIG_END = 0x7FFF,
-};
-
-/*
- * Helpful configuration macro to be used in tables etc.
- */
-#define PIN_CONF_PACKED(p, a) ((a << 16) | ((unsigned long) p & 0xffffUL))
-
-/*
- * The following inlines stuffs a configuration parameter and data value
- * into and out of an unsigned long argument, as used by the generic pin config
- * system. We put the parameter in the lower 16 bits and the argument in the
- * upper 16 bits.
- */
-
-static inline enum pin_config_param pinconf_to_config_param(unsigned long config)
-{
- return (enum pin_config_param) (config & 0xffffUL);
-}
-
-static inline u16 pinconf_to_config_argument(unsigned long config)
-{
- return (enum pin_config_param) ((config >> 16) & 0xffffUL);
-}
-
-static inline unsigned long pinconf_to_config_packed(enum pin_config_param param,
- u16 argument)
-{
- return PIN_CONF_PACKED(param, argument);
-}
-
-#endif /* CONFIG_GENERIC_PINCONF */
-
-#endif /* __LINUX_PINCTRL_PINCONF_GENERIC_H */
diff --git a/ANDROID_3.4.5/include/linux/pinctrl/pinconf.h b/ANDROID_3.4.5/include/linux/pinctrl/pinconf.h
deleted file mode 100644
index ec431f03..00000000
--- a/ANDROID_3.4.5/include/linux/pinctrl/pinconf.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Interface the pinconfig portions of the pinctrl subsystem
- *
- * Copyright (C) 2011 ST-Ericsson SA
- * Written on behalf of Linaro for ST-Ericsson
- * This interface is used in the core to keep track of pins.
- *
- * Author: Linus Walleij <linus.walleij@linaro.org>
- *
- * License terms: GNU General Public License (GPL) version 2
- */
-#ifndef __LINUX_PINCTRL_PINCONF_H
-#define __LINUX_PINCTRL_PINCONF_H
-
-#ifdef CONFIG_PINCONF
-
-struct pinctrl_dev;
-struct seq_file;
-
-/**
- * struct pinconf_ops - pin config operations, to be implemented by
- * pin configuration capable drivers.
- * @is_generic: for pin controllers that want to use the generic interface,
- * this flag tells the framework that it's generic.
- * @pin_config_get: get the config of a certain pin, if the requested config
- * is not available on this controller this should return -ENOTSUPP
- * and if it is available but disabled it should return -EINVAL
- * @pin_config_get: get the config of a certain pin
- * @pin_config_set: configure an individual pin
- * @pin_config_group_get: get configurations for an entire pin group
- * @pin_config_group_set: configure all pins in a group
- * @pin_config_dbg_show: optional debugfs display hook that will provide
- * per-device info for a certain pin in debugfs
- * @pin_config_group_dbg_show: optional debugfs display hook that will provide
- * per-device info for a certain group in debugfs
- */
-struct pinconf_ops {
-#ifdef CONFIG_GENERIC_PINCONF
- bool is_generic;
-#endif
- int (*pin_config_get) (struct pinctrl_dev *pctldev,
- unsigned pin,
- unsigned long *config);
- int (*pin_config_set) (struct pinctrl_dev *pctldev,
- unsigned pin,
- unsigned long config);
- int (*pin_config_group_get) (struct pinctrl_dev *pctldev,
- unsigned selector,
- unsigned long *config);
- int (*pin_config_group_set) (struct pinctrl_dev *pctldev,
- unsigned selector,
- unsigned long config);
- void (*pin_config_dbg_show) (struct pinctrl_dev *pctldev,
- struct seq_file *s,
- unsigned offset);
- void (*pin_config_group_dbg_show) (struct pinctrl_dev *pctldev,
- struct seq_file *s,
- unsigned selector);
-};
-
-#endif
-
-#endif /* __LINUX_PINCTRL_PINCONF_H */
diff --git a/ANDROID_3.4.5/include/linux/pinctrl/pinctrl-state.h b/ANDROID_3.4.5/include/linux/pinctrl/pinctrl-state.h
deleted file mode 100644
index 3920e28b..00000000
--- a/ANDROID_3.4.5/include/linux/pinctrl/pinctrl-state.h
+++ /dev/null
@@ -1,6 +0,0 @@
-/*
- * Standard pin control state definitions
- */
-
-#define PINCTRL_STATE_DEFAULT "default"
-#define PINCTRL_STATE_IDLE "idle"
diff --git a/ANDROID_3.4.5/include/linux/pinctrl/pinctrl.h b/ANDROID_3.4.5/include/linux/pinctrl/pinctrl.h
deleted file mode 100644
index 4e9f0788..00000000
--- a/ANDROID_3.4.5/include/linux/pinctrl/pinctrl.h
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Interface the pinctrl subsystem
- *
- * Copyright (C) 2011 ST-Ericsson SA
- * Written on behalf of Linaro for ST-Ericsson
- * This interface is used in the core to keep track of pins.
- *
- * Author: Linus Walleij <linus.walleij@linaro.org>
- *
- * License terms: GNU General Public License (GPL) version 2
- */
-#ifndef __LINUX_PINCTRL_PINCTRL_H
-#define __LINUX_PINCTRL_PINCTRL_H
-
-#ifdef CONFIG_PINCTRL
-
-#include <linux/radix-tree.h>
-#include <linux/list.h>
-#include <linux/seq_file.h>
-#include "pinctrl-state.h"
-
-struct device;
-struct pinctrl_dev;
-struct pinmux_ops;
-struct pinconf_ops;
-struct gpio_chip;
-
-/**
- * struct pinctrl_pin_desc - boards/machines provide information on their
- * pins, pads or other muxable units in this struct
- * @number: unique pin number from the global pin number space
- * @name: a name for this pin
- */
-struct pinctrl_pin_desc {
- unsigned number;
- const char *name;
-};
-
-/* Convenience macro to define a single named or anonymous pin descriptor */
-#define PINCTRL_PIN(a, b) { .number = a, .name = b }
-#define PINCTRL_PIN_ANON(a) { .number = a }
-
-/**
- * struct pinctrl_gpio_range - each pin controller can provide subranges of
- * the GPIO number space to be handled by the controller
- * @node: list node for internal use
- * @name: a name for the chip in this range
- * @id: an ID number for the chip in this range
- * @base: base offset of the GPIO range
- * @pin_base: base pin number of the GPIO range
- * @npins: number of pins in the GPIO range, including the base number
- * @gc: an optional pointer to a gpio_chip
- */
-struct pinctrl_gpio_range {
- struct list_head node;
- const char *name;
- unsigned int id;
- unsigned int base;
- unsigned int pin_base;
- unsigned int npins;
- struct gpio_chip *gc;
-};
-
-/**
- * struct pinctrl_ops - global pin control operations, to be implemented by
- * pin controller drivers.
- * @list_groups: list the number of selectable named groups available
- * in this pinmux driver, the core will begin on 0 and call this
- * repeatedly as long as it returns >= 0 to enumerate the groups
- * @get_group_name: return the group name of the pin group
- * @get_group_pins: return an array of pins corresponding to a certain
- * group selector @pins, and the size of the array in @num_pins
- * @pin_dbg_show: optional debugfs display hook that will provide per-device
- * info for a certain pin in debugfs
- */
-struct pinctrl_ops {
- int (*list_groups) (struct pinctrl_dev *pctldev, unsigned selector);
- const char *(*get_group_name) (struct pinctrl_dev *pctldev,
- unsigned selector);
- int (*get_group_pins) (struct pinctrl_dev *pctldev,
- unsigned selector,
- const unsigned **pins,
- unsigned *num_pins);
- void (*pin_dbg_show) (struct pinctrl_dev *pctldev, struct seq_file *s,
- unsigned offset);
-};
-
-/**
- * struct pinctrl_desc - pin controller descriptor, register this to pin
- * control subsystem
- * @name: name for the pin controller
- * @pins: an array of pin descriptors describing all the pins handled by
- * this pin controller
- * @npins: number of descriptors in the array, usually just ARRAY_SIZE()
- * of the pins field above
- * @pctlops: pin control operation vtable, to support global concepts like
- * grouping of pins, this is optional.
- * @pmxops: pinmux operations vtable, if you support pinmuxing in your driver
- * @confops: pin config operations vtable, if you support pin configuration in
- * your driver
- * @owner: module providing the pin controller, used for refcounting
- */
-struct pinctrl_desc {
- const char *name;
- struct pinctrl_pin_desc const *pins;
- unsigned int npins;
- struct pinctrl_ops *pctlops;
- struct pinmux_ops *pmxops;
- struct pinconf_ops *confops;
- struct module *owner;
-};
-
-/* External interface to pin controller */
-extern struct pinctrl_dev *pinctrl_register(struct pinctrl_desc *pctldesc,
- struct device *dev, void *driver_data);
-extern void pinctrl_unregister(struct pinctrl_dev *pctldev);
-extern bool pin_is_valid(struct pinctrl_dev *pctldev, int pin);
-extern void pinctrl_add_gpio_range(struct pinctrl_dev *pctldev,
- struct pinctrl_gpio_range *range);
-extern void pinctrl_remove_gpio_range(struct pinctrl_dev *pctldev,
- struct pinctrl_gpio_range *range);
-extern const char *pinctrl_dev_get_name(struct pinctrl_dev *pctldev);
-extern void *pinctrl_dev_get_drvdata(struct pinctrl_dev *pctldev);
-#else
-
-struct pinctrl_dev;
-
-/* Sufficiently stupid default functions when pinctrl is not in use */
-static inline bool pin_is_valid(struct pinctrl_dev *pctldev, int pin)
-{
- return pin >= 0;
-}
-
-#endif /* !CONFIG_PINCTRL */
-
-#endif /* __LINUX_PINCTRL_PINCTRL_H */
diff --git a/ANDROID_3.4.5/include/linux/pinctrl/pinmux.h b/ANDROID_3.4.5/include/linux/pinctrl/pinmux.h
deleted file mode 100644
index 47e9237e..00000000
--- a/ANDROID_3.4.5/include/linux/pinctrl/pinmux.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Interface the pinmux subsystem
- *
- * Copyright (C) 2011 ST-Ericsson SA
- * Written on behalf of Linaro for ST-Ericsson
- * Based on bits of regulator core, gpio core and clk core
- *
- * Author: Linus Walleij <linus.walleij@linaro.org>
- *
- * License terms: GNU General Public License (GPL) version 2
- */
-#ifndef __LINUX_PINCTRL_PINMUX_H
-#define __LINUX_PINCTRL_PINMUX_H
-
-#include <linux/list.h>
-#include <linux/seq_file.h>
-#include "pinctrl.h"
-
-#ifdef CONFIG_PINMUX
-
-struct pinctrl_dev;
-
-/**
- * struct pinmux_ops - pinmux operations, to be implemented by pin controller
- * drivers that support pinmuxing
- * @request: called by the core to see if a certain pin can be made available
- * available for muxing. This is called by the core to acquire the pins
- * before selecting any actual mux setting across a function. The driver
- * is allowed to answer "no" by returning a negative error code
- * @free: the reverse function of the request() callback, frees a pin after
- * being requested
- * @list_functions: list the number of selectable named functions available
- * in this pinmux driver, the core will begin on 0 and call this
- * repeatedly as long as it returns >= 0 to enumerate mux settings
- * @get_function_name: return the function name of the muxing selector,
- * called by the core to figure out which mux setting it shall map a
- * certain device to
- * @get_function_groups: return an array of groups names (in turn
- * referencing pins) connected to a certain function selector. The group
- * name can be used with the generic @pinctrl_ops to retrieve the
- * actual pins affected. The applicable groups will be returned in
- * @groups and the number of groups in @num_groups
- * @enable: enable a certain muxing function with a certain pin group. The
- * driver does not need to figure out whether enabling this function
- * conflicts some other use of the pins in that group, such collisions
- * are handled by the pinmux subsystem. The @func_selector selects a
- * certain function whereas @group_selector selects a certain set of pins
- * to be used. On simple controllers the latter argument may be ignored
- * @disable: disable a certain muxing selector with a certain pin group
- * @gpio_request_enable: requests and enables GPIO on a certain pin.
- * Implement this only if you can mux every pin individually as GPIO. The
- * affected GPIO range is passed along with an offset(pin number) into that
- * specific GPIO range - function selectors and pin groups are orthogonal
- * to this, the core will however make sure the pins do not collide.
- * @gpio_disable_free: free up GPIO muxing on a certain pin, the reverse of
- * @gpio_request_enable
- * @gpio_set_direction: Since controllers may need different configurations
- * depending on whether the GPIO is configured as input or output,
- * a direction selector function may be implemented as a backing
- * to the GPIO controllers that need pin muxing.
- */
-struct pinmux_ops {
- int (*request) (struct pinctrl_dev *pctldev, unsigned offset);
- int (*free) (struct pinctrl_dev *pctldev, unsigned offset);
- int (*list_functions) (struct pinctrl_dev *pctldev, unsigned selector);
- const char *(*get_function_name) (struct pinctrl_dev *pctldev,
- unsigned selector);
- int (*get_function_groups) (struct pinctrl_dev *pctldev,
- unsigned selector,
- const char * const **groups,
- unsigned * const num_groups);
- int (*enable) (struct pinctrl_dev *pctldev, unsigned func_selector,
- unsigned group_selector);
- void (*disable) (struct pinctrl_dev *pctldev, unsigned func_selector,
- unsigned group_selector);
- int (*gpio_request_enable) (struct pinctrl_dev *pctldev,
- struct pinctrl_gpio_range *range,
- unsigned offset);
- void (*gpio_disable_free) (struct pinctrl_dev *pctldev,
- struct pinctrl_gpio_range *range,
- unsigned offset);
- int (*gpio_set_direction) (struct pinctrl_dev *pctldev,
- struct pinctrl_gpio_range *range,
- unsigned offset,
- bool input);
-};
-
-#endif /* CONFIG_PINMUX */
-
-#endif /* __LINUX_PINCTRL_PINMUX_H */
diff --git a/ANDROID_3.4.5/include/linux/pipe_fs_i.h b/ANDROID_3.4.5/include/linux/pipe_fs_i.h
deleted file mode 100644
index e1ac1ce1..00000000
--- a/ANDROID_3.4.5/include/linux/pipe_fs_i.h
+++ /dev/null
@@ -1,165 +0,0 @@
-#ifndef _LINUX_PIPE_FS_I_H
-#define _LINUX_PIPE_FS_I_H
-
-#define PIPE_DEF_BUFFERS 16
-
-#define PIPE_BUF_FLAG_LRU 0x01 /* page is on the LRU */
-#define PIPE_BUF_FLAG_ATOMIC 0x02 /* was atomically mapped */
-#define PIPE_BUF_FLAG_GIFT 0x04 /* page is a gift */
-#define PIPE_BUF_FLAG_PACKET 0x08 /* read() as a packet */
-
-/**
- * struct pipe_buffer - a linux kernel pipe buffer
- * @page: the page containing the data for the pipe buffer
- * @offset: offset of data inside the @page
- * @len: length of data inside the @page
- * @ops: operations associated with this buffer. See @pipe_buf_operations.
- * @flags: pipe buffer flags. See above.
- * @private: private data owned by the ops.
- **/
-struct pipe_buffer {
- struct page *page;
- unsigned int offset, len;
- const struct pipe_buf_operations *ops;
- unsigned int flags;
- unsigned long private;
-};
-
-/**
- * struct pipe_inode_info - a linux kernel pipe
- * @wait: reader/writer wait point in case of empty/full pipe
- * @nrbufs: the number of non-empty pipe buffers in this pipe
- * @buffers: total number of buffers (should be a power of 2)
- * @curbuf: the current pipe buffer entry
- * @tmp_page: cached released page
- * @readers: number of current readers of this pipe
- * @writers: number of current writers of this pipe
- * @waiting_writers: number of writers blocked waiting for room
- * @r_counter: reader counter
- * @w_counter: writer counter
- * @fasync_readers: reader side fasync
- * @fasync_writers: writer side fasync
- * @inode: inode this pipe is attached to
- * @bufs: the circular array of pipe buffers
- **/
-struct pipe_inode_info {
- wait_queue_head_t wait;
- unsigned int nrbufs, curbuf, buffers;
- unsigned int readers;
- unsigned int writers;
- unsigned int waiting_writers;
- unsigned int r_counter;
- unsigned int w_counter;
- struct page *tmp_page;
- struct fasync_struct *fasync_readers;
- struct fasync_struct *fasync_writers;
- struct inode *inode;
- struct pipe_buffer *bufs;
-};
-
-/*
- * Note on the nesting of these functions:
- *
- * ->confirm()
- * ->steal()
- * ...
- * ->map()
- * ...
- * ->unmap()
- *
- * That is, ->map() must be called on a confirmed buffer,
- * same goes for ->steal(). See below for the meaning of each
- * operation. Also see kerneldoc in fs/pipe.c for the pipe
- * and generic variants of these hooks.
- */
-struct pipe_buf_operations {
- /*
- * This is set to 1, if the generic pipe read/write may coalesce
- * data into an existing buffer. If this is set to 0, a new pipe
- * page segment is always used for new data.
- */
- int can_merge;
-
- /*
- * ->map() returns a virtual address mapping of the pipe buffer.
- * The last integer flag reflects whether this should be an atomic
- * mapping or not. The atomic map is faster, however you can't take
- * page faults before calling ->unmap() again. So if you need to eg
- * access user data through copy_to/from_user(), then you must get
- * a non-atomic map. ->map() uses the KM_USER0 atomic slot for
- * atomic maps, so you can't map more than one pipe_buffer at once
- * and you have to be careful if mapping another page as source
- * or destination for a copy (IOW, it has to use something else
- * than KM_USER0).
- */
- void * (*map)(struct pipe_inode_info *, struct pipe_buffer *, int);
-
- /*
- * Undoes ->map(), finishes the virtual mapping of the pipe buffer.
- */
- void (*unmap)(struct pipe_inode_info *, struct pipe_buffer *, void *);
-
- /*
- * ->confirm() verifies that the data in the pipe buffer is there
- * and that the contents are good. If the pages in the pipe belong
- * to a file system, we may need to wait for IO completion in this
- * hook. Returns 0 for good, or a negative error value in case of
- * error.
- */
- int (*confirm)(struct pipe_inode_info *, struct pipe_buffer *);
-
- /*
- * When the contents of this pipe buffer has been completely
- * consumed by a reader, ->release() is called.
- */
- void (*release)(struct pipe_inode_info *, struct pipe_buffer *);
-
- /*
- * Attempt to take ownership of the pipe buffer and its contents.
- * ->steal() returns 0 for success, in which case the contents
- * of the pipe (the buf->page) is locked and now completely owned
- * by the caller. The page may then be transferred to a different
- * mapping, the most often used case is insertion into different
- * file address space cache.
- */
- int (*steal)(struct pipe_inode_info *, struct pipe_buffer *);
-
- /*
- * Get a reference to the pipe buffer.
- */
- void (*get)(struct pipe_inode_info *, struct pipe_buffer *);
-};
-
-/* Differs from PIPE_BUF in that PIPE_SIZE is the length of the actual
- memory allocation, whereas PIPE_BUF makes atomicity guarantees. */
-#define PIPE_SIZE PAGE_SIZE
-
-/* Pipe lock and unlock operations */
-void pipe_lock(struct pipe_inode_info *);
-void pipe_unlock(struct pipe_inode_info *);
-void pipe_double_lock(struct pipe_inode_info *, struct pipe_inode_info *);
-
-extern unsigned int pipe_max_size, pipe_min_size;
-int pipe_proc_fn(struct ctl_table *, int, void __user *, size_t *, loff_t *);
-
-
-/* Drop the inode semaphore and wait for a pipe event, atomically */
-void pipe_wait(struct pipe_inode_info *pipe);
-
-struct pipe_inode_info * alloc_pipe_info(struct inode * inode);
-void free_pipe_info(struct inode * inode);
-void __free_pipe_info(struct pipe_inode_info *);
-
-/* Generic pipe buffer ops functions */
-void *generic_pipe_buf_map(struct pipe_inode_info *, struct pipe_buffer *, int);
-void generic_pipe_buf_unmap(struct pipe_inode_info *, struct pipe_buffer *, void *);
-void generic_pipe_buf_get(struct pipe_inode_info *, struct pipe_buffer *);
-int generic_pipe_buf_confirm(struct pipe_inode_info *, struct pipe_buffer *);
-int generic_pipe_buf_steal(struct pipe_inode_info *, struct pipe_buffer *);
-void generic_pipe_buf_release(struct pipe_inode_info *, struct pipe_buffer *);
-
-/* for F_SETPIPE_SZ and F_GETPIPE_SZ */
-long pipe_fcntl(struct file *, unsigned int, unsigned long arg);
-struct pipe_inode_info *get_pipe_info(struct file *file);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/pkt_cls.h b/ANDROID_3.4.5/include/linux/pkt_cls.h
deleted file mode 100644
index defbde20..00000000
--- a/ANDROID_3.4.5/include/linux/pkt_cls.h
+++ /dev/null
@@ -1,467 +0,0 @@
-#ifndef __LINUX_PKT_CLS_H
-#define __LINUX_PKT_CLS_H
-
-#include <linux/types.h>
-#include <linux/pkt_sched.h>
-
-/* I think i could have done better macros ; for now this is stolen from
- * some arch/mips code - jhs
-*/
-#define _TC_MAKE32(x) ((x))
-
-#define _TC_MAKEMASK1(n) (_TC_MAKE32(1) << _TC_MAKE32(n))
-#define _TC_MAKEMASK(v,n) (_TC_MAKE32((_TC_MAKE32(1)<<(v))-1) << _TC_MAKE32(n))
-#define _TC_MAKEVALUE(v,n) (_TC_MAKE32(v) << _TC_MAKE32(n))
-#define _TC_GETVALUE(v,n,m) ((_TC_MAKE32(v) & _TC_MAKE32(m)) >> _TC_MAKE32(n))
-
-/* verdict bit breakdown
- *
-bit 0: when set -> this packet has been munged already
-
-bit 1: when set -> It is ok to munge this packet
-
-bit 2,3,4,5: Reclassify counter - sort of reverse TTL - if exceeded
-assume loop
-
-bit 6,7: Where this packet was last seen
-0: Above the transmit example at the socket level
-1: on the Ingress
-2: on the Egress
-
-bit 8: when set --> Request not to classify on ingress.
-
-bits 9,10,11: redirect counter - redirect TTL. Loop avoidance
-
- *
- * */
-
-#define TC_MUNGED _TC_MAKEMASK1(0)
-#define SET_TC_MUNGED(v) ( TC_MUNGED | (v & ~TC_MUNGED))
-#define CLR_TC_MUNGED(v) ( v & ~TC_MUNGED)
-
-#define TC_OK2MUNGE _TC_MAKEMASK1(1)
-#define SET_TC_OK2MUNGE(v) ( TC_OK2MUNGE | (v & ~TC_OK2MUNGE))
-#define CLR_TC_OK2MUNGE(v) ( v & ~TC_OK2MUNGE)
-
-#define S_TC_VERD _TC_MAKE32(2)
-#define M_TC_VERD _TC_MAKEMASK(4,S_TC_VERD)
-#define G_TC_VERD(x) _TC_GETVALUE(x,S_TC_VERD,M_TC_VERD)
-#define V_TC_VERD(x) _TC_MAKEVALUE(x,S_TC_VERD)
-#define SET_TC_VERD(v,n) ((V_TC_VERD(n)) | (v & ~M_TC_VERD))
-
-#define S_TC_FROM _TC_MAKE32(6)
-#define M_TC_FROM _TC_MAKEMASK(2,S_TC_FROM)
-#define G_TC_FROM(x) _TC_GETVALUE(x,S_TC_FROM,M_TC_FROM)
-#define V_TC_FROM(x) _TC_MAKEVALUE(x,S_TC_FROM)
-#define SET_TC_FROM(v,n) ((V_TC_FROM(n)) | (v & ~M_TC_FROM))
-#define AT_STACK 0x0
-#define AT_INGRESS 0x1
-#define AT_EGRESS 0x2
-
-#define TC_NCLS _TC_MAKEMASK1(8)
-#define SET_TC_NCLS(v) ( TC_NCLS | (v & ~TC_NCLS))
-#define CLR_TC_NCLS(v) ( v & ~TC_NCLS)
-
-#define S_TC_RTTL _TC_MAKE32(9)
-#define M_TC_RTTL _TC_MAKEMASK(3,S_TC_RTTL)
-#define G_TC_RTTL(x) _TC_GETVALUE(x,S_TC_RTTL,M_TC_RTTL)
-#define V_TC_RTTL(x) _TC_MAKEVALUE(x,S_TC_RTTL)
-#define SET_TC_RTTL(v,n) ((V_TC_RTTL(n)) | (v & ~M_TC_RTTL))
-
-#define S_TC_AT _TC_MAKE32(12)
-#define M_TC_AT _TC_MAKEMASK(2,S_TC_AT)
-#define G_TC_AT(x) _TC_GETVALUE(x,S_TC_AT,M_TC_AT)
-#define V_TC_AT(x) _TC_MAKEVALUE(x,S_TC_AT)
-#define SET_TC_AT(v,n) ((V_TC_AT(n)) | (v & ~M_TC_AT))
-
-/* Action attributes */
-enum {
- TCA_ACT_UNSPEC,
- TCA_ACT_KIND,
- TCA_ACT_OPTIONS,
- TCA_ACT_INDEX,
- TCA_ACT_STATS,
- __TCA_ACT_MAX
-};
-
-#define TCA_ACT_MAX __TCA_ACT_MAX
-#define TCA_OLD_COMPAT (TCA_ACT_MAX+1)
-#define TCA_ACT_MAX_PRIO 32
-#define TCA_ACT_BIND 1
-#define TCA_ACT_NOBIND 0
-#define TCA_ACT_UNBIND 1
-#define TCA_ACT_NOUNBIND 0
-#define TCA_ACT_REPLACE 1
-#define TCA_ACT_NOREPLACE 0
-#define MAX_REC_LOOP 4
-#define MAX_RED_LOOP 4
-
-#define TC_ACT_UNSPEC (-1)
-#define TC_ACT_OK 0
-#define TC_ACT_RECLASSIFY 1
-#define TC_ACT_SHOT 2
-#define TC_ACT_PIPE 3
-#define TC_ACT_STOLEN 4
-#define TC_ACT_QUEUED 5
-#define TC_ACT_REPEAT 6
-#define TC_ACT_JUMP 0x10000000
-
-/* Action type identifiers*/
-enum {
- TCA_ID_UNSPEC=0,
- TCA_ID_POLICE=1,
- /* other actions go here */
- __TCA_ID_MAX=255
-};
-
-#define TCA_ID_MAX __TCA_ID_MAX
-
-struct tc_police {
- __u32 index;
- int action;
-#define TC_POLICE_UNSPEC TC_ACT_UNSPEC
-#define TC_POLICE_OK TC_ACT_OK
-#define TC_POLICE_RECLASSIFY TC_ACT_RECLASSIFY
-#define TC_POLICE_SHOT TC_ACT_SHOT
-#define TC_POLICE_PIPE TC_ACT_PIPE
-
- __u32 limit;
- __u32 burst;
- __u32 mtu;
- struct tc_ratespec rate;
- struct tc_ratespec peakrate;
- int refcnt;
- int bindcnt;
- __u32 capab;
-};
-
-struct tcf_t {
- __u64 install;
- __u64 lastuse;
- __u64 expires;
-};
-
-struct tc_cnt {
- int refcnt;
- int bindcnt;
-};
-
-#define tc_gen \
- __u32 index; \
- __u32 capab; \
- int action; \
- int refcnt; \
- int bindcnt
-
-enum {
- TCA_POLICE_UNSPEC,
- TCA_POLICE_TBF,
- TCA_POLICE_RATE,
- TCA_POLICE_PEAKRATE,
- TCA_POLICE_AVRATE,
- TCA_POLICE_RESULT,
- __TCA_POLICE_MAX
-#define TCA_POLICE_RESULT TCA_POLICE_RESULT
-};
-
-#define TCA_POLICE_MAX (__TCA_POLICE_MAX - 1)
-
-/* U32 filters */
-
-#define TC_U32_HTID(h) ((h)&0xFFF00000)
-#define TC_U32_USERHTID(h) (TC_U32_HTID(h)>>20)
-#define TC_U32_HASH(h) (((h)>>12)&0xFF)
-#define TC_U32_NODE(h) ((h)&0xFFF)
-#define TC_U32_KEY(h) ((h)&0xFFFFF)
-#define TC_U32_UNSPEC 0
-#define TC_U32_ROOT (0xFFF00000)
-
-enum {
- TCA_U32_UNSPEC,
- TCA_U32_CLASSID,
- TCA_U32_HASH,
- TCA_U32_LINK,
- TCA_U32_DIVISOR,
- TCA_U32_SEL,
- TCA_U32_POLICE,
- TCA_U32_ACT,
- TCA_U32_INDEV,
- TCA_U32_PCNT,
- TCA_U32_MARK,
- __TCA_U32_MAX
-};
-
-#define TCA_U32_MAX (__TCA_U32_MAX - 1)
-
-struct tc_u32_key {
- __be32 mask;
- __be32 val;
- int off;
- int offmask;
-};
-
-struct tc_u32_sel {
- unsigned char flags;
- unsigned char offshift;
- unsigned char nkeys;
-
- __be16 offmask;
- __u16 off;
- short offoff;
-
- short hoff;
- __be32 hmask;
- struct tc_u32_key keys[0];
-};
-
-struct tc_u32_mark {
- __u32 val;
- __u32 mask;
- __u32 success;
-};
-
-struct tc_u32_pcnt {
- __u64 rcnt;
- __u64 rhit;
- __u64 kcnts[0];
-};
-
-/* Flags */
-
-#define TC_U32_TERMINAL 1
-#define TC_U32_OFFSET 2
-#define TC_U32_VAROFFSET 4
-#define TC_U32_EAT 8
-
-#define TC_U32_MAXDEPTH 8
-
-
-/* RSVP filter */
-
-enum {
- TCA_RSVP_UNSPEC,
- TCA_RSVP_CLASSID,
- TCA_RSVP_DST,
- TCA_RSVP_SRC,
- TCA_RSVP_PINFO,
- TCA_RSVP_POLICE,
- TCA_RSVP_ACT,
- __TCA_RSVP_MAX
-};
-
-#define TCA_RSVP_MAX (__TCA_RSVP_MAX - 1 )
-
-struct tc_rsvp_gpi {
- __u32 key;
- __u32 mask;
- int offset;
-};
-
-struct tc_rsvp_pinfo {
- struct tc_rsvp_gpi dpi;
- struct tc_rsvp_gpi spi;
- __u8 protocol;
- __u8 tunnelid;
- __u8 tunnelhdr;
- __u8 pad;
-};
-
-/* ROUTE filter */
-
-enum {
- TCA_ROUTE4_UNSPEC,
- TCA_ROUTE4_CLASSID,
- TCA_ROUTE4_TO,
- TCA_ROUTE4_FROM,
- TCA_ROUTE4_IIF,
- TCA_ROUTE4_POLICE,
- TCA_ROUTE4_ACT,
- __TCA_ROUTE4_MAX
-};
-
-#define TCA_ROUTE4_MAX (__TCA_ROUTE4_MAX - 1)
-
-
-/* FW filter */
-
-enum {
- TCA_FW_UNSPEC,
- TCA_FW_CLASSID,
- TCA_FW_POLICE,
- TCA_FW_INDEV, /* used by CONFIG_NET_CLS_IND */
- TCA_FW_ACT, /* used by CONFIG_NET_CLS_ACT */
- TCA_FW_MASK,
- __TCA_FW_MAX
-};
-
-#define TCA_FW_MAX (__TCA_FW_MAX - 1)
-
-/* TC index filter */
-
-enum {
- TCA_TCINDEX_UNSPEC,
- TCA_TCINDEX_HASH,
- TCA_TCINDEX_MASK,
- TCA_TCINDEX_SHIFT,
- TCA_TCINDEX_FALL_THROUGH,
- TCA_TCINDEX_CLASSID,
- TCA_TCINDEX_POLICE,
- TCA_TCINDEX_ACT,
- __TCA_TCINDEX_MAX
-};
-
-#define TCA_TCINDEX_MAX (__TCA_TCINDEX_MAX - 1)
-
-/* Flow filter */
-
-enum {
- FLOW_KEY_SRC,
- FLOW_KEY_DST,
- FLOW_KEY_PROTO,
- FLOW_KEY_PROTO_SRC,
- FLOW_KEY_PROTO_DST,
- FLOW_KEY_IIF,
- FLOW_KEY_PRIORITY,
- FLOW_KEY_MARK,
- FLOW_KEY_NFCT,
- FLOW_KEY_NFCT_SRC,
- FLOW_KEY_NFCT_DST,
- FLOW_KEY_NFCT_PROTO_SRC,
- FLOW_KEY_NFCT_PROTO_DST,
- FLOW_KEY_RTCLASSID,
- FLOW_KEY_SKUID,
- FLOW_KEY_SKGID,
- FLOW_KEY_VLAN_TAG,
- FLOW_KEY_RXHASH,
- __FLOW_KEY_MAX,
-};
-
-#define FLOW_KEY_MAX (__FLOW_KEY_MAX - 1)
-
-enum {
- FLOW_MODE_MAP,
- FLOW_MODE_HASH,
-};
-
-enum {
- TCA_FLOW_UNSPEC,
- TCA_FLOW_KEYS,
- TCA_FLOW_MODE,
- TCA_FLOW_BASECLASS,
- TCA_FLOW_RSHIFT,
- TCA_FLOW_ADDEND,
- TCA_FLOW_MASK,
- TCA_FLOW_XOR,
- TCA_FLOW_DIVISOR,
- TCA_FLOW_ACT,
- TCA_FLOW_POLICE,
- TCA_FLOW_EMATCHES,
- TCA_FLOW_PERTURB,
- __TCA_FLOW_MAX
-};
-
-#define TCA_FLOW_MAX (__TCA_FLOW_MAX - 1)
-
-/* Basic filter */
-
-enum {
- TCA_BASIC_UNSPEC,
- TCA_BASIC_CLASSID,
- TCA_BASIC_EMATCHES,
- TCA_BASIC_ACT,
- TCA_BASIC_POLICE,
- __TCA_BASIC_MAX
-};
-
-#define TCA_BASIC_MAX (__TCA_BASIC_MAX - 1)
-
-
-/* Cgroup classifier */
-
-enum {
- TCA_CGROUP_UNSPEC,
- TCA_CGROUP_ACT,
- TCA_CGROUP_POLICE,
- TCA_CGROUP_EMATCHES,
- __TCA_CGROUP_MAX,
-};
-
-#define TCA_CGROUP_MAX (__TCA_CGROUP_MAX - 1)
-
-/* Extended Matches */
-
-struct tcf_ematch_tree_hdr {
- __u16 nmatches;
- __u16 progid;
-};
-
-enum {
- TCA_EMATCH_TREE_UNSPEC,
- TCA_EMATCH_TREE_HDR,
- TCA_EMATCH_TREE_LIST,
- __TCA_EMATCH_TREE_MAX
-};
-#define TCA_EMATCH_TREE_MAX (__TCA_EMATCH_TREE_MAX - 1)
-
-struct tcf_ematch_hdr {
- __u16 matchid;
- __u16 kind;
- __u16 flags;
- __u16 pad; /* currently unused */
-};
-
-/* 0 1
- * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
- * +-----------------------+-+-+---+
- * | Unused |S|I| R |
- * +-----------------------+-+-+---+
- *
- * R(2) ::= relation to next ematch
- * where: 0 0 END (last ematch)
- * 0 1 AND
- * 1 0 OR
- * 1 1 Unused (invalid)
- * I(1) ::= invert result
- * S(1) ::= simple payload
- */
-#define TCF_EM_REL_END 0
-#define TCF_EM_REL_AND (1<<0)
-#define TCF_EM_REL_OR (1<<1)
-#define TCF_EM_INVERT (1<<2)
-#define TCF_EM_SIMPLE (1<<3)
-
-#define TCF_EM_REL_MASK 3
-#define TCF_EM_REL_VALID(v) (((v) & TCF_EM_REL_MASK) != TCF_EM_REL_MASK)
-
-enum {
- TCF_LAYER_LINK,
- TCF_LAYER_NETWORK,
- TCF_LAYER_TRANSPORT,
- __TCF_LAYER_MAX
-};
-#define TCF_LAYER_MAX (__TCF_LAYER_MAX - 1)
-
-/* Ematch type assignments
- * 1..32767 Reserved for ematches inside kernel tree
- * 32768..65535 Free to use, not reliable
- */
-#define TCF_EM_CONTAINER 0
-#define TCF_EM_CMP 1
-#define TCF_EM_NBYTE 2
-#define TCF_EM_U32 3
-#define TCF_EM_META 4
-#define TCF_EM_TEXT 5
-#define TCF_EM_VLAN 6
-#define TCF_EM_MAX 6
-
-enum {
- TCF_EM_PROG_TC
-};
-
-enum {
- TCF_EM_OPND_EQ,
- TCF_EM_OPND_GT,
- TCF_EM_OPND_LT
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/pkt_sched.h b/ANDROID_3.4.5/include/linux/pkt_sched.h
deleted file mode 100644
index 410b33d0..00000000
--- a/ANDROID_3.4.5/include/linux/pkt_sched.h
+++ /dev/null
@@ -1,657 +0,0 @@
-#ifndef __LINUX_PKT_SCHED_H
-#define __LINUX_PKT_SCHED_H
-
-#include <linux/types.h>
-
-/* Logical priority bands not depending on specific packet scheduler.
- Every scheduler will map them to real traffic classes, if it has
- no more precise mechanism to classify packets.
-
- These numbers have no special meaning, though their coincidence
- with obsolete IPv6 values is not occasional :-). New IPv6 drafts
- preferred full anarchy inspired by diffserv group.
-
- Note: TC_PRIO_BESTEFFORT does not mean that it is the most unhappy
- class, actually, as rule it will be handled with more care than
- filler or even bulk.
- */
-
-#define TC_PRIO_BESTEFFORT 0
-#define TC_PRIO_FILLER 1
-#define TC_PRIO_BULK 2
-#define TC_PRIO_INTERACTIVE_BULK 4
-#define TC_PRIO_INTERACTIVE 6
-#define TC_PRIO_CONTROL 7
-
-#define TC_PRIO_MAX 15
-
-/* Generic queue statistics, available for all the elements.
- Particular schedulers may have also their private records.
- */
-
-struct tc_stats {
- __u64 bytes; /* Number of enqueued bytes */
- __u32 packets; /* Number of enqueued packets */
- __u32 drops; /* Packets dropped because of lack of resources */
- __u32 overlimits; /* Number of throttle events when this
- * flow goes out of allocated bandwidth */
- __u32 bps; /* Current flow byte rate */
- __u32 pps; /* Current flow packet rate */
- __u32 qlen;
- __u32 backlog;
-};
-
-struct tc_estimator {
- signed char interval;
- unsigned char ewma_log;
-};
-
-/* "Handles"
- ---------
-
- All the traffic control objects have 32bit identifiers, or "handles".
-
- They can be considered as opaque numbers from user API viewpoint,
- but actually they always consist of two fields: major and
- minor numbers, which are interpreted by kernel specially,
- that may be used by applications, though not recommended.
-
- F.e. qdisc handles always have minor number equal to zero,
- classes (or flows) have major equal to parent qdisc major, and
- minor uniquely identifying class inside qdisc.
-
- Macros to manipulate handles:
- */
-
-#define TC_H_MAJ_MASK (0xFFFF0000U)
-#define TC_H_MIN_MASK (0x0000FFFFU)
-#define TC_H_MAJ(h) ((h)&TC_H_MAJ_MASK)
-#define TC_H_MIN(h) ((h)&TC_H_MIN_MASK)
-#define TC_H_MAKE(maj,min) (((maj)&TC_H_MAJ_MASK)|((min)&TC_H_MIN_MASK))
-
-#define TC_H_UNSPEC (0U)
-#define TC_H_ROOT (0xFFFFFFFFU)
-#define TC_H_INGRESS (0xFFFFFFF1U)
-
-struct tc_ratespec {
- unsigned char cell_log;
- unsigned char __reserved;
- unsigned short overhead;
- short cell_align;
- unsigned short mpu;
- __u32 rate;
-};
-
-#define TC_RTAB_SIZE 1024
-
-struct tc_sizespec {
- unsigned char cell_log;
- unsigned char size_log;
- short cell_align;
- int overhead;
- unsigned int linklayer;
- unsigned int mpu;
- unsigned int mtu;
- unsigned int tsize;
-};
-
-enum {
- TCA_STAB_UNSPEC,
- TCA_STAB_BASE,
- TCA_STAB_DATA,
- __TCA_STAB_MAX
-};
-
-#define TCA_STAB_MAX (__TCA_STAB_MAX - 1)
-
-/* FIFO section */
-
-struct tc_fifo_qopt {
- __u32 limit; /* Queue length: bytes for bfifo, packets for pfifo */
-};
-
-/* PRIO section */
-
-#define TCQ_PRIO_BANDS 16
-#define TCQ_MIN_PRIO_BANDS 2
-
-struct tc_prio_qopt {
- int bands; /* Number of bands */
- __u8 priomap[TC_PRIO_MAX+1]; /* Map: logical priority -> PRIO band */
-};
-
-/* MULTIQ section */
-
-struct tc_multiq_qopt {
- __u16 bands; /* Number of bands */
- __u16 max_bands; /* Maximum number of queues */
-};
-
-/* PLUG section */
-
-#define TCQ_PLUG_BUFFER 0
-#define TCQ_PLUG_RELEASE_ONE 1
-#define TCQ_PLUG_RELEASE_INDEFINITE 2
-#define TCQ_PLUG_LIMIT 3
-
-struct tc_plug_qopt {
- /* TCQ_PLUG_BUFFER: Inset a plug into the queue and
- * buffer any incoming packets
- * TCQ_PLUG_RELEASE_ONE: Dequeue packets from queue head
- * to beginning of the next plug.
- * TCQ_PLUG_RELEASE_INDEFINITE: Dequeue all packets from queue.
- * Stop buffering packets until the next TCQ_PLUG_BUFFER
- * command is received (just act as a pass-thru queue).
- * TCQ_PLUG_LIMIT: Increase/decrease queue size
- */
- int action;
- __u32 limit;
-};
-
-/* TBF section */
-
-struct tc_tbf_qopt {
- struct tc_ratespec rate;
- struct tc_ratespec peakrate;
- __u32 limit;
- __u32 buffer;
- __u32 mtu;
-};
-
-enum {
- TCA_TBF_UNSPEC,
- TCA_TBF_PARMS,
- TCA_TBF_RTAB,
- TCA_TBF_PTAB,
- __TCA_TBF_MAX,
-};
-
-#define TCA_TBF_MAX (__TCA_TBF_MAX - 1)
-
-
-/* TEQL section */
-
-/* TEQL does not require any parameters */
-
-/* SFQ section */
-
-struct tc_sfq_qopt {
- unsigned quantum; /* Bytes per round allocated to flow */
- int perturb_period; /* Period of hash perturbation */
- __u32 limit; /* Maximal packets in queue */
- unsigned divisor; /* Hash divisor */
- unsigned flows; /* Maximal number of flows */
-};
-
-struct tc_sfqred_stats {
- __u32 prob_drop; /* Early drops, below max threshold */
- __u32 forced_drop; /* Early drops, after max threshold */
- __u32 prob_mark; /* Marked packets, below max threshold */
- __u32 forced_mark; /* Marked packets, after max threshold */
- __u32 prob_mark_head; /* Marked packets, below max threshold */
- __u32 forced_mark_head;/* Marked packets, after max threshold */
-};
-
-struct tc_sfq_qopt_v1 {
- struct tc_sfq_qopt v0;
- unsigned int depth; /* max number of packets per flow */
- unsigned int headdrop;
-/* SFQRED parameters */
- __u32 limit; /* HARD maximal flow queue length (bytes) */
- __u32 qth_min; /* Min average length threshold (bytes) */
- __u32 qth_max; /* Max average length threshold (bytes) */
- unsigned char Wlog; /* log(W) */
- unsigned char Plog; /* log(P_max/(qth_max-qth_min)) */
- unsigned char Scell_log; /* cell size for idle damping */
- unsigned char flags;
- __u32 max_P; /* probability, high resolution */
-/* SFQRED stats */
- struct tc_sfqred_stats stats;
-};
-
-
-struct tc_sfq_xstats {
- __s32 allot;
-};
-
-/* RED section */
-
-enum {
- TCA_RED_UNSPEC,
- TCA_RED_PARMS,
- TCA_RED_STAB,
- TCA_RED_MAX_P,
- __TCA_RED_MAX,
-};
-
-#define TCA_RED_MAX (__TCA_RED_MAX - 1)
-
-struct tc_red_qopt {
- __u32 limit; /* HARD maximal queue length (bytes) */
- __u32 qth_min; /* Min average length threshold (bytes) */
- __u32 qth_max; /* Max average length threshold (bytes) */
- unsigned char Wlog; /* log(W) */
- unsigned char Plog; /* log(P_max/(qth_max-qth_min)) */
- unsigned char Scell_log; /* cell size for idle damping */
- unsigned char flags;
-#define TC_RED_ECN 1
-#define TC_RED_HARDDROP 2
-#define TC_RED_ADAPTATIVE 4
-};
-
-struct tc_red_xstats {
- __u32 early; /* Early drops */
- __u32 pdrop; /* Drops due to queue limits */
- __u32 other; /* Drops due to drop() calls */
- __u32 marked; /* Marked packets */
-};
-
-/* GRED section */
-
-#define MAX_DPs 16
-
-enum {
- TCA_GRED_UNSPEC,
- TCA_GRED_PARMS,
- TCA_GRED_STAB,
- TCA_GRED_DPS,
- TCA_GRED_MAX_P,
- __TCA_GRED_MAX,
-};
-
-#define TCA_GRED_MAX (__TCA_GRED_MAX - 1)
-
-struct tc_gred_qopt {
- __u32 limit; /* HARD maximal queue length (bytes) */
- __u32 qth_min; /* Min average length threshold (bytes) */
- __u32 qth_max; /* Max average length threshold (bytes) */
- __u32 DP; /* up to 2^32 DPs */
- __u32 backlog;
- __u32 qave;
- __u32 forced;
- __u32 early;
- __u32 other;
- __u32 pdrop;
- __u8 Wlog; /* log(W) */
- __u8 Plog; /* log(P_max/(qth_max-qth_min)) */
- __u8 Scell_log; /* cell size for idle damping */
- __u8 prio; /* prio of this VQ */
- __u32 packets;
- __u32 bytesin;
-};
-
-/* gred setup */
-struct tc_gred_sopt {
- __u32 DPs;
- __u32 def_DP;
- __u8 grio;
- __u8 flags;
- __u16 pad1;
-};
-
-/* CHOKe section */
-
-enum {
- TCA_CHOKE_UNSPEC,
- TCA_CHOKE_PARMS,
- TCA_CHOKE_STAB,
- TCA_CHOKE_MAX_P,
- __TCA_CHOKE_MAX,
-};
-
-#define TCA_CHOKE_MAX (__TCA_CHOKE_MAX - 1)
-
-struct tc_choke_qopt {
- __u32 limit; /* Hard queue length (packets) */
- __u32 qth_min; /* Min average threshold (packets) */
- __u32 qth_max; /* Max average threshold (packets) */
- unsigned char Wlog; /* log(W) */
- unsigned char Plog; /* log(P_max/(qth_max-qth_min)) */
- unsigned char Scell_log; /* cell size for idle damping */
- unsigned char flags; /* see RED flags */
-};
-
-struct tc_choke_xstats {
- __u32 early; /* Early drops */
- __u32 pdrop; /* Drops due to queue limits */
- __u32 other; /* Drops due to drop() calls */
- __u32 marked; /* Marked packets */
- __u32 matched; /* Drops due to flow match */
-};
-
-/* HTB section */
-#define TC_HTB_NUMPRIO 8
-#define TC_HTB_MAXDEPTH 8
-#define TC_HTB_PROTOVER 3 /* the same as HTB and TC's major */
-
-struct tc_htb_opt {
- struct tc_ratespec rate;
- struct tc_ratespec ceil;
- __u32 buffer;
- __u32 cbuffer;
- __u32 quantum;
- __u32 level; /* out only */
- __u32 prio;
-};
-struct tc_htb_glob {
- __u32 version; /* to match HTB/TC */
- __u32 rate2quantum; /* bps->quantum divisor */
- __u32 defcls; /* default class number */
- __u32 debug; /* debug flags */
-
- /* stats */
- __u32 direct_pkts; /* count of non shaped packets */
-};
-enum {
- TCA_HTB_UNSPEC,
- TCA_HTB_PARMS,
- TCA_HTB_INIT,
- TCA_HTB_CTAB,
- TCA_HTB_RTAB,
- __TCA_HTB_MAX,
-};
-
-#define TCA_HTB_MAX (__TCA_HTB_MAX - 1)
-
-struct tc_htb_xstats {
- __u32 lends;
- __u32 borrows;
- __u32 giants; /* too big packets (rate will not be accurate) */
- __u32 tokens;
- __u32 ctokens;
-};
-
-/* HFSC section */
-
-struct tc_hfsc_qopt {
- __u16 defcls; /* default class */
-};
-
-struct tc_service_curve {
- __u32 m1; /* slope of the first segment in bps */
- __u32 d; /* x-projection of the first segment in us */
- __u32 m2; /* slope of the second segment in bps */
-};
-
-struct tc_hfsc_stats {
- __u64 work; /* total work done */
- __u64 rtwork; /* work done by real-time criteria */
- __u32 period; /* current period */
- __u32 level; /* class level in hierarchy */
-};
-
-enum {
- TCA_HFSC_UNSPEC,
- TCA_HFSC_RSC,
- TCA_HFSC_FSC,
- TCA_HFSC_USC,
- __TCA_HFSC_MAX,
-};
-
-#define TCA_HFSC_MAX (__TCA_HFSC_MAX - 1)
-
-
-/* CBQ section */
-
-#define TC_CBQ_MAXPRIO 8
-#define TC_CBQ_MAXLEVEL 8
-#define TC_CBQ_DEF_EWMA 5
-
-struct tc_cbq_lssopt {
- unsigned char change;
- unsigned char flags;
-#define TCF_CBQ_LSS_BOUNDED 1
-#define TCF_CBQ_LSS_ISOLATED 2
- unsigned char ewma_log;
- unsigned char level;
-#define TCF_CBQ_LSS_FLAGS 1
-#define TCF_CBQ_LSS_EWMA 2
-#define TCF_CBQ_LSS_MAXIDLE 4
-#define TCF_CBQ_LSS_MINIDLE 8
-#define TCF_CBQ_LSS_OFFTIME 0x10
-#define TCF_CBQ_LSS_AVPKT 0x20
- __u32 maxidle;
- __u32 minidle;
- __u32 offtime;
- __u32 avpkt;
-};
-
-struct tc_cbq_wrropt {
- unsigned char flags;
- unsigned char priority;
- unsigned char cpriority;
- unsigned char __reserved;
- __u32 allot;
- __u32 weight;
-};
-
-struct tc_cbq_ovl {
- unsigned char strategy;
-#define TC_CBQ_OVL_CLASSIC 0
-#define TC_CBQ_OVL_DELAY 1
-#define TC_CBQ_OVL_LOWPRIO 2
-#define TC_CBQ_OVL_DROP 3
-#define TC_CBQ_OVL_RCLASSIC 4
- unsigned char priority2;
- __u16 pad;
- __u32 penalty;
-};
-
-struct tc_cbq_police {
- unsigned char police;
- unsigned char __res1;
- unsigned short __res2;
-};
-
-struct tc_cbq_fopt {
- __u32 split;
- __u32 defmap;
- __u32 defchange;
-};
-
-struct tc_cbq_xstats {
- __u32 borrows;
- __u32 overactions;
- __s32 avgidle;
- __s32 undertime;
-};
-
-enum {
- TCA_CBQ_UNSPEC,
- TCA_CBQ_LSSOPT,
- TCA_CBQ_WRROPT,
- TCA_CBQ_FOPT,
- TCA_CBQ_OVL_STRATEGY,
- TCA_CBQ_RATE,
- TCA_CBQ_RTAB,
- TCA_CBQ_POLICE,
- __TCA_CBQ_MAX,
-};
-
-#define TCA_CBQ_MAX (__TCA_CBQ_MAX - 1)
-
-/* dsmark section */
-
-enum {
- TCA_DSMARK_UNSPEC,
- TCA_DSMARK_INDICES,
- TCA_DSMARK_DEFAULT_INDEX,
- TCA_DSMARK_SET_TC_INDEX,
- TCA_DSMARK_MASK,
- TCA_DSMARK_VALUE,
- __TCA_DSMARK_MAX,
-};
-
-#define TCA_DSMARK_MAX (__TCA_DSMARK_MAX - 1)
-
-/* ATM section */
-
-enum {
- TCA_ATM_UNSPEC,
- TCA_ATM_FD, /* file/socket descriptor */
- TCA_ATM_PTR, /* pointer to descriptor - later */
- TCA_ATM_HDR, /* LL header */
- TCA_ATM_EXCESS, /* excess traffic class (0 for CLP) */
- TCA_ATM_ADDR, /* PVC address (for output only) */
- TCA_ATM_STATE, /* VC state (ATM_VS_*; for output only) */
- __TCA_ATM_MAX,
-};
-
-#define TCA_ATM_MAX (__TCA_ATM_MAX - 1)
-
-/* Network emulator */
-
-enum {
- TCA_NETEM_UNSPEC,
- TCA_NETEM_CORR,
- TCA_NETEM_DELAY_DIST,
- TCA_NETEM_REORDER,
- TCA_NETEM_CORRUPT,
- TCA_NETEM_LOSS,
- TCA_NETEM_RATE,
- __TCA_NETEM_MAX,
-};
-
-#define TCA_NETEM_MAX (__TCA_NETEM_MAX - 1)
-
-struct tc_netem_qopt {
- __u32 latency; /* added delay (us) */
- __u32 limit; /* fifo limit (packets) */
- __u32 loss; /* random packet loss (0=none ~0=100%) */
- __u32 gap; /* re-ordering gap (0 for none) */
- __u32 duplicate; /* random packet dup (0=none ~0=100%) */
- __u32 jitter; /* random jitter in latency (us) */
-};
-
-struct tc_netem_corr {
- __u32 delay_corr; /* delay correlation */
- __u32 loss_corr; /* packet loss correlation */
- __u32 dup_corr; /* duplicate correlation */
-};
-
-struct tc_netem_reorder {
- __u32 probability;
- __u32 correlation;
-};
-
-struct tc_netem_corrupt {
- __u32 probability;
- __u32 correlation;
-};
-
-struct tc_netem_rate {
- __u32 rate; /* byte/s */
- __s32 packet_overhead;
- __u32 cell_size;
- __s32 cell_overhead;
-};
-
-enum {
- NETEM_LOSS_UNSPEC,
- NETEM_LOSS_GI, /* General Intuitive - 4 state model */
- NETEM_LOSS_GE, /* Gilbert Elliot models */
- __NETEM_LOSS_MAX
-};
-#define NETEM_LOSS_MAX (__NETEM_LOSS_MAX - 1)
-
-/* State transition probabilities for 4 state model */
-struct tc_netem_gimodel {
- __u32 p13;
- __u32 p31;
- __u32 p32;
- __u32 p14;
- __u32 p23;
-};
-
-/* Gilbert-Elliot models */
-struct tc_netem_gemodel {
- __u32 p;
- __u32 r;
- __u32 h;
- __u32 k1;
-};
-
-#define NETEM_DIST_SCALE 8192
-#define NETEM_DIST_MAX 16384
-
-/* DRR */
-
-enum {
- TCA_DRR_UNSPEC,
- TCA_DRR_QUANTUM,
- __TCA_DRR_MAX
-};
-
-#define TCA_DRR_MAX (__TCA_DRR_MAX - 1)
-
-struct tc_drr_stats {
- __u32 deficit;
-};
-
-/* MQPRIO */
-#define TC_QOPT_BITMASK 15
-#define TC_QOPT_MAX_QUEUE 16
-
-struct tc_mqprio_qopt {
- __u8 num_tc;
- __u8 prio_tc_map[TC_QOPT_BITMASK + 1];
- __u8 hw;
- __u16 count[TC_QOPT_MAX_QUEUE];
- __u16 offset[TC_QOPT_MAX_QUEUE];
-};
-
-/* SFB */
-
-enum {
- TCA_SFB_UNSPEC,
- TCA_SFB_PARMS,
- __TCA_SFB_MAX,
-};
-
-#define TCA_SFB_MAX (__TCA_SFB_MAX - 1)
-
-/*
- * Note: increment, decrement are Q0.16 fixed-point values.
- */
-struct tc_sfb_qopt {
- __u32 rehash_interval; /* delay between hash move, in ms */
- __u32 warmup_time; /* double buffering warmup time in ms (warmup_time < rehash_interval) */
- __u32 max; /* max len of qlen_min */
- __u32 bin_size; /* maximum queue length per bin */
- __u32 increment; /* probability increment, (d1 in Blue) */
- __u32 decrement; /* probability decrement, (d2 in Blue) */
- __u32 limit; /* max SFB queue length */
- __u32 penalty_rate; /* inelastic flows are rate limited to 'rate' pps */
- __u32 penalty_burst;
-};
-
-struct tc_sfb_xstats {
- __u32 earlydrop;
- __u32 penaltydrop;
- __u32 bucketdrop;
- __u32 queuedrop;
- __u32 childdrop; /* drops in child qdisc */
- __u32 marked;
- __u32 maxqlen;
- __u32 maxprob;
- __u32 avgprob;
-};
-
-#define SFB_MAX_PROB 0xFFFF
-
-/* QFQ */
-enum {
- TCA_QFQ_UNSPEC,
- TCA_QFQ_WEIGHT,
- TCA_QFQ_LMAX,
- __TCA_QFQ_MAX
-};
-
-#define TCA_QFQ_MAX (__TCA_QFQ_MAX - 1)
-
-struct tc_qfq_stats {
- __u32 weight;
- __u32 lmax;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/pktcdvd.h b/ANDROID_3.4.5/include/linux/pktcdvd.h
deleted file mode 100644
index 721301b0..00000000
--- a/ANDROID_3.4.5/include/linux/pktcdvd.h
+++ /dev/null
@@ -1,302 +0,0 @@
-/*
- * Copyright (C) 2000 Jens Axboe <axboe@suse.de>
- * Copyright (C) 2001-2004 Peter Osterlund <petero2@telia.com>
- *
- * May be copied or modified under the terms of the GNU General Public
- * License. See linux/COPYING for more information.
- *
- * Packet writing layer for ATAPI and SCSI CD-R, CD-RW, DVD-R, and
- * DVD-RW devices.
- *
- */
-#ifndef __PKTCDVD_H
-#define __PKTCDVD_H
-
-#include <linux/types.h>
-
-/*
- * 1 for normal debug messages, 2 is very verbose. 0 to turn it off.
- */
-#define PACKET_DEBUG 1
-
-#define MAX_WRITERS 8
-
-#define PKT_RB_POOL_SIZE 512
-
-/*
- * How long we should hold a non-full packet before starting data gathering.
- */
-#define PACKET_WAIT_TIME (HZ * 5 / 1000)
-
-/*
- * use drive write caching -- we need deferred error handling to be
- * able to successfully recover with this option (drive will return good
- * status as soon as the cdb is validated).
- */
-#if defined(CONFIG_CDROM_PKTCDVD_WCACHE)
-#define USE_WCACHING 1
-#else
-#define USE_WCACHING 0
-#endif
-
-/*
- * No user-servicable parts beyond this point ->
- */
-
-/*
- * device types
- */
-#define PACKET_CDR 1
-#define PACKET_CDRW 2
-#define PACKET_DVDR 3
-#define PACKET_DVDRW 4
-
-/*
- * flags
- */
-#define PACKET_WRITABLE 1 /* pd is writable */
-#define PACKET_NWA_VALID 2 /* next writable address valid */
-#define PACKET_LRA_VALID 3 /* last recorded address valid */
-#define PACKET_MERGE_SEGS 4 /* perform segment merging to keep */
- /* underlying cdrom device happy */
-
-/*
- * Disc status -- from READ_DISC_INFO
- */
-#define PACKET_DISC_EMPTY 0
-#define PACKET_DISC_INCOMPLETE 1
-#define PACKET_DISC_COMPLETE 2
-#define PACKET_DISC_OTHER 3
-
-/*
- * write type, and corresponding data block type
- */
-#define PACKET_MODE1 1
-#define PACKET_MODE2 2
-#define PACKET_BLOCK_MODE1 8
-#define PACKET_BLOCK_MODE2 10
-
-/*
- * Last session/border status
- */
-#define PACKET_SESSION_EMPTY 0
-#define PACKET_SESSION_INCOMPLETE 1
-#define PACKET_SESSION_RESERVED 2
-#define PACKET_SESSION_COMPLETE 3
-
-#define PACKET_MCN "4a656e734178626f65323030300000"
-
-#undef PACKET_USE_LS
-
-#define PKT_CTRL_CMD_SETUP 0
-#define PKT_CTRL_CMD_TEARDOWN 1
-#define PKT_CTRL_CMD_STATUS 2
-
-struct pkt_ctrl_command {
- __u32 command; /* in: Setup, teardown, status */
- __u32 dev_index; /* in/out: Device index */
- __u32 dev; /* in/out: Device nr for cdrw device */
- __u32 pkt_dev; /* in/out: Device nr for packet device */
- __u32 num_devices; /* out: Largest device index + 1 */
- __u32 padding; /* Not used */
-};
-
-/*
- * packet ioctls
- */
-#define PACKET_IOCTL_MAGIC ('X')
-#define PACKET_CTRL_CMD _IOWR(PACKET_IOCTL_MAGIC, 1, struct pkt_ctrl_command)
-
-#ifdef __KERNEL__
-#include <linux/blkdev.h>
-#include <linux/completion.h>
-#include <linux/cdrom.h>
-#include <linux/kobject.h>
-#include <linux/sysfs.h>
-#include <linux/mempool.h>
-
-/* default bio write queue congestion marks */
-#define PKT_WRITE_CONGESTION_ON 10000
-#define PKT_WRITE_CONGESTION_OFF 9000
-
-
-struct packet_settings
-{
- __u32 size; /* packet size in (512 byte) sectors */
- __u8 fp; /* fixed packets */
- __u8 link_loss; /* the rest is specified
- * as per Mt Fuji */
- __u8 write_type;
- __u8 track_mode;
- __u8 block_mode;
-};
-
-/*
- * Very crude stats for now
- */
-struct packet_stats
-{
- unsigned long pkt_started;
- unsigned long pkt_ended;
- unsigned long secs_w;
- unsigned long secs_rg;
- unsigned long secs_r;
-};
-
-struct packet_cdrw
-{
- struct list_head pkt_free_list;
- struct list_head pkt_active_list;
- spinlock_t active_list_lock; /* Serialize access to pkt_active_list */
- struct task_struct *thread;
- atomic_t pending_bios;
-};
-
-/*
- * Switch to high speed reading after reading this many kilobytes
- * with no interspersed writes.
- */
-#define HI_SPEED_SWITCH 512
-
-struct packet_iosched
-{
- atomic_t attention; /* Set to non-zero when queue processing is needed */
- int writing; /* Non-zero when writing, zero when reading */
- spinlock_t lock; /* Protecting read/write queue manipulations */
- struct bio_list read_queue;
- struct bio_list write_queue;
- sector_t last_write; /* The sector where the last write ended */
- int successive_reads;
-};
-
-/*
- * 32 buffers of 2048 bytes
- */
-#if (PAGE_SIZE % CD_FRAMESIZE) != 0
-#error "PAGE_SIZE must be a multiple of CD_FRAMESIZE"
-#endif
-#define PACKET_MAX_SIZE 128
-#define FRAMES_PER_PAGE (PAGE_SIZE / CD_FRAMESIZE)
-#define PACKET_MAX_SECTORS (PACKET_MAX_SIZE * CD_FRAMESIZE >> 9)
-
-enum packet_data_state {
- PACKET_IDLE_STATE, /* Not used at the moment */
- PACKET_WAITING_STATE, /* Waiting for more bios to arrive, so */
- /* we don't have to do as much */
- /* data gathering */
- PACKET_READ_WAIT_STATE, /* Waiting for reads to fill in holes */
- PACKET_WRITE_WAIT_STATE, /* Waiting for the write to complete */
- PACKET_RECOVERY_STATE, /* Recover after read/write errors */
- PACKET_FINISHED_STATE, /* After write has finished */
-
- PACKET_NUM_STATES /* Number of possible states */
-};
-
-/*
- * Information needed for writing a single packet
- */
-struct pktcdvd_device;
-
-struct packet_data
-{
- struct list_head list;
-
- spinlock_t lock; /* Lock protecting state transitions and */
- /* orig_bios list */
-
- struct bio_list orig_bios; /* Original bios passed to pkt_make_request */
- /* that will be handled by this packet */
- int write_size; /* Total size of all bios in the orig_bios */
- /* list, measured in number of frames */
-
- struct bio *w_bio; /* The bio we will send to the real CD */
- /* device once we have all data for the */
- /* packet we are going to write */
- sector_t sector; /* First sector in this packet */
- int frames; /* Number of frames in this packet */
-
- enum packet_data_state state; /* Current state */
- atomic_t run_sm; /* Incremented whenever the state */
- /* machine needs to be run */
- long sleep_time; /* Set this to non-zero to make the state */
- /* machine run after this many jiffies. */
-
- atomic_t io_wait; /* Number of pending IO operations */
- atomic_t io_errors; /* Number of read/write errors during IO */
-
- struct bio *r_bios[PACKET_MAX_SIZE]; /* bios to use during data gathering */
- struct page *pages[PACKET_MAX_SIZE / FRAMES_PER_PAGE];
-
- int cache_valid; /* If non-zero, the data for the zone defined */
- /* by the sector variable is completely cached */
- /* in the pages[] vector. */
-
- int id; /* ID number for debugging */
- struct pktcdvd_device *pd;
-};
-
-struct pkt_rb_node {
- struct rb_node rb_node;
- struct bio *bio;
-};
-
-struct packet_stacked_data
-{
- struct bio *bio; /* Original read request bio */
- struct pktcdvd_device *pd;
-};
-#define PSD_POOL_SIZE 64
-
-struct pktcdvd_kobj
-{
- struct kobject kobj;
- struct pktcdvd_device *pd;
-};
-#define to_pktcdvdkobj(_k) \
- ((struct pktcdvd_kobj*)container_of(_k,struct pktcdvd_kobj,kobj))
-
-struct pktcdvd_device
-{
- struct block_device *bdev; /* dev attached */
- dev_t pkt_dev; /* our dev */
- char name[20];
- struct packet_settings settings;
- struct packet_stats stats;
- int refcnt; /* Open count */
- int write_speed; /* current write speed, kB/s */
- int read_speed; /* current read speed, kB/s */
- unsigned long offset; /* start offset */
- __u8 mode_offset; /* 0 / 8 */
- __u8 type;
- unsigned long flags;
- __u16 mmc3_profile;
- __u32 nwa; /* next writable address */
- __u32 lra; /* last recorded address */
- struct packet_cdrw cdrw;
- wait_queue_head_t wqueue;
-
- spinlock_t lock; /* Serialize access to bio_queue */
- struct rb_root bio_queue; /* Work queue of bios we need to handle */
- int bio_queue_size; /* Number of nodes in bio_queue */
- sector_t current_sector; /* Keep track of where the elevator is */
- atomic_t scan_queue; /* Set to non-zero when pkt_handle_queue */
- /* needs to be run. */
- mempool_t *rb_pool; /* mempool for pkt_rb_node allocations */
-
- struct packet_iosched iosched;
- struct gendisk *disk;
-
- int write_congestion_off;
- int write_congestion_on;
-
- struct device *dev; /* sysfs pktcdvd[0-7] dev */
- struct pktcdvd_kobj *kobj_stat; /* sysfs pktcdvd[0-7]/stat/ */
- struct pktcdvd_kobj *kobj_wqueue; /* sysfs pktcdvd[0-7]/write_queue/ */
-
- struct dentry *dfs_d_root; /* debugfs: devname directory */
- struct dentry *dfs_f_info; /* debugfs: info file */
-};
-
-#endif /* __KERNEL__ */
-
-#endif /* __PKTCDVD_H */
diff --git a/ANDROID_3.4.5/include/linux/platform_data/android_battery.h b/ANDROID_3.4.5/include/linux/platform_data/android_battery.h
deleted file mode 100644
index f6c8298f..00000000
--- a/ANDROID_3.4.5/include/linux/platform_data/android_battery.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * android_battery.h
- *
- * Copyright (C) 2012 Samsung Electronics
- *
- * 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.
- */
-
-#ifndef _LINUX_ANDROID_BATTERY_H
-#define _LINUX_ANDROID_BATTERY_H
-
-enum {
- CHARGE_SOURCE_NONE = 0,
- CHARGE_SOURCE_AC,
- CHARGE_SOURCE_USB,
-};
-
-struct android_bat_callbacks {
- void (*charge_source_changed)
- (struct android_bat_callbacks *, int);
- void (*battery_set_full)(struct android_bat_callbacks *);
-};
-
-struct android_bat_platform_data {
- void (*register_callbacks)(struct android_bat_callbacks *);
- void (*unregister_callbacks)(void);
- void (*set_charging_current) (int);
- void (*set_charging_enable) (int);
- int (*poll_charge_source) (void);
- int (*get_capacity) (void);
- int (*get_temperature) (int *);
- int (*get_voltage_now)(void);
- int (*get_current_now)(int *);
-
- int temp_high_threshold;
- int temp_high_recovery;
- int temp_low_recovery;
- int temp_low_threshold;
-
- unsigned long full_charging_time;
- unsigned long recharging_time;
- unsigned int recharging_voltage;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/platform_data/atmel.h b/ANDROID_3.4.5/include/linux/platform_data/atmel.h
deleted file mode 100644
index b0f2c56a..00000000
--- a/ANDROID_3.4.5/include/linux/platform_data/atmel.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * atmel platform data
- *
- * GPL v2 Only
- */
-
-#ifndef __ATMEL_H__
-#define __ATMEL_H__
-
-#include <linux/mtd/nand.h>
-
- /* NAND / SmartMedia */
-struct atmel_nand_data {
- int enable_pin; /* chip enable */
- int det_pin; /* card detect */
- int rdy_pin; /* ready/busy */
- u8 rdy_pin_active_low; /* rdy_pin value is inverted */
- u8 ale; /* address line number connected to ALE */
- u8 cle; /* address line number connected to CLE */
- u8 bus_width_16; /* buswidth is 16 bit */
- u8 ecc_mode; /* ecc mode */
- u8 on_flash_bbt; /* bbt on flash */
- struct mtd_partition *parts;
- unsigned int num_parts;
-};
-
-#endif /* __ATMEL_H__ */
diff --git a/ANDROID_3.4.5/include/linux/platform_data/cpsw.h b/ANDROID_3.4.5/include/linux/platform_data/cpsw.h
deleted file mode 100644
index c4e23d02..00000000
--- a/ANDROID_3.4.5/include/linux/platform_data/cpsw.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Texas Instruments Ethernet Switch Driver
- *
- * Copyright (C) 2012 Texas Instruments
- *
- * 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.
- *
- * This program is distributed "as is" WITHOUT ANY WARRANTY of any
- * kind, whether express or implied; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
-#ifndef __CPSW_H__
-#define __CPSW_H__
-
-#include <linux/if_ether.h>
-
-struct cpsw_slave_data {
- u32 slave_reg_ofs;
- u32 sliver_reg_ofs;
- const char *phy_id;
- int phy_if;
- u8 mac_addr[ETH_ALEN];
-};
-
-struct cpsw_platform_data {
- u32 ss_reg_ofs; /* Subsystem control register offset */
- u32 channels; /* number of cpdma channels (symmetric) */
- u32 cpdma_reg_ofs; /* cpdma register offset */
- u32 cpdma_sram_ofs; /* cpdma sram offset */
-
- u32 slaves; /* number of slave cpgmac ports */
- struct cpsw_slave_data *slave_data;
-
- u32 ale_reg_ofs; /* address lookup engine reg offset */
- u32 ale_entries; /* ale table size */
-
- u32 host_port_reg_ofs; /* cpsw cpdma host port registers */
- u32 host_port_num; /* The port number for the host port */
-
- u32 hw_stats_reg_ofs; /* cpsw hardware statistics counters */
-
- u32 bd_ram_ofs; /* embedded buffer descriptor RAM offset*/
- u32 bd_ram_size; /*buffer descriptor ram size */
- u32 hw_ram_addr; /*if the HW address for BD RAM is different */
- bool no_bd_ram; /* no embedded BD ram*/
-
- u32 rx_descs; /* Number of Rx Descriptios */
-
- u32 mac_control; /* Mac control register */
-};
-
-#endif /* __CPSW_H__ */
diff --git a/ANDROID_3.4.5/include/linux/platform_data/ds2482.h b/ANDROID_3.4.5/include/linux/platform_data/ds2482.h
deleted file mode 100644
index 5a6879e2..00000000
--- a/ANDROID_3.4.5/include/linux/platform_data/ds2482.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright (C) 2012 Google, Inc.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
-
-#ifndef __PLATFORM_DATA_DS2482__
-#define __PLATFORM_DATA_DS2482__
-
-struct ds2482_platform_data {
- int slpz_gpio;
-};
-
-#endif /* __PLATFORM_DATA_DS2482__ */
diff --git a/ANDROID_3.4.5/include/linux/platform_data/dwc3-exynos.h b/ANDROID_3.4.5/include/linux/platform_data/dwc3-exynos.h
deleted file mode 100644
index 5eb7da9b..00000000
--- a/ANDROID_3.4.5/include/linux/platform_data/dwc3-exynos.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * dwc3-exynos.h - Samsung EXYNOS DWC3 Specific Glue layer, header.
- *
- * Copyright (c) 2012 Samsung Electronics Co., Ltd.
- * http://www.samsung.com
- *
- * Author: Anton Tikhomirov <av.tikhomirov@samsung.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 _DWC3_EXYNOS_H_
-#define _DWC3_EXYNOS_H_
-
-struct dwc3_exynos_data {
- int phy_type;
- int (*phy_init)(struct platform_device *pdev, int type);
- int (*phy_exit)(struct platform_device *pdev, int type);
-};
-
-#endif /* _DWC3_EXYNOS_H_ */
diff --git a/ANDROID_3.4.5/include/linux/platform_data/dwc3-omap.h b/ANDROID_3.4.5/include/linux/platform_data/dwc3-omap.h
deleted file mode 100644
index ada40124..00000000
--- a/ANDROID_3.4.5/include/linux/platform_data/dwc3-omap.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- * dwc3-omap.h - OMAP Specific Glue layer, header.
- *
- * Copyright (C) 2010-2011 Texas Instruments Incorporated - http://www.ti.com
- * All rights reserved.
- *
- * Author: Felipe Balbi <balbi@ti.com>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions, and the following disclaimer,
- * without modification.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. The names of the above-listed copyright holders may not be used
- * to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * ALTERNATIVELY, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") version 2, as published by the Free
- * Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-enum dwc3_omap_utmi_mode {
- DWC3_OMAP_UTMI_MODE_UNKNOWN = 0,
- DWC3_OMAP_UTMI_MODE_HW,
- DWC3_OMAP_UTMI_MODE_SW,
-};
-
-struct dwc3_omap_data {
- enum dwc3_omap_utmi_mode utmi_mode;
-};
diff --git a/ANDROID_3.4.5/include/linux/platform_data/efm32-uart.h b/ANDROID_3.4.5/include/linux/platform_data/efm32-uart.h
deleted file mode 100644
index ed0e975b..00000000
--- a/ANDROID_3.4.5/include/linux/platform_data/efm32-uart.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- *
- *
- */
-#ifndef __LINUX_PLATFORM_DATA_EFM32_UART_H__
-#define __LINUX_PLATFORM_DATA_EFM32_UART_H__
-
-#include <linux/types.h>
-
-/**
- * struct efm32_uart_pdata
- * @location: pinmux location for the I/O pins (to be written to the ROUTE
- * register)
- */
-struct efm32_uart_pdata {
- u8 location;
-};
-#endif /* ifndef __LINUX_PLATFORM_DATA_EFM32_UART_H__ */
diff --git a/ANDROID_3.4.5/include/linux/platform_data/exynos4_tmu.h b/ANDROID_3.4.5/include/linux/platform_data/exynos4_tmu.h
deleted file mode 100644
index 39e038cc..00000000
--- a/ANDROID_3.4.5/include/linux/platform_data/exynos4_tmu.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * exynos4_tmu.h - Samsung EXYNOS4 TMU (Thermal Management Unit)
- *
- * Copyright (C) 2011 Samsung Electronics
- * Donggeun Kim <dg77.kim@samsung.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
- */
-
-#ifndef _LINUX_EXYNOS4_TMU_H
-#define _LINUX_EXYNOS4_TMU_H
-
-enum calibration_type {
- TYPE_ONE_POINT_TRIMMING,
- TYPE_TWO_POINT_TRIMMING,
- TYPE_NONE,
-};
-
-/**
- * struct exynos4_tmu_platform_data
- * @threshold: basic temperature for generating interrupt
- * 25 <= threshold <= 125 [unit: degree Celsius]
- * @trigger_levels: array for each interrupt levels
- * [unit: degree Celsius]
- * 0: temperature for trigger_level0 interrupt
- * condition for trigger_level0 interrupt:
- * current temperature > threshold + trigger_levels[0]
- * 1: temperature for trigger_level1 interrupt
- * condition for trigger_level1 interrupt:
- * current temperature > threshold + trigger_levels[1]
- * 2: temperature for trigger_level2 interrupt
- * condition for trigger_level2 interrupt:
- * current temperature > threshold + trigger_levels[2]
- * 3: temperature for trigger_level3 interrupt
- * condition for trigger_level3 interrupt:
- * current temperature > threshold + trigger_levels[3]
- * @trigger_level0_en:
- * 1 = enable trigger_level0 interrupt,
- * 0 = disable trigger_level0 interrupt
- * @trigger_level1_en:
- * 1 = enable trigger_level1 interrupt,
- * 0 = disable trigger_level1 interrupt
- * @trigger_level2_en:
- * 1 = enable trigger_level2 interrupt,
- * 0 = disable trigger_level2 interrupt
- * @trigger_level3_en:
- * 1 = enable trigger_level3 interrupt,
- * 0 = disable trigger_level3 interrupt
- * @gain: gain of amplifier in the positive-TC generator block
- * 0 <= gain <= 15
- * @reference_voltage: reference voltage of amplifier
- * in the positive-TC generator block
- * 0 <= reference_voltage <= 31
- * @cal_type: calibration type for temperature
- *
- * This structure is required for configuration of exynos4_tmu driver.
- */
-struct exynos4_tmu_platform_data {
- u8 threshold;
- u8 trigger_levels[4];
- bool trigger_level0_en;
- bool trigger_level1_en;
- bool trigger_level2_en;
- bool trigger_level3_en;
-
- u8 gain;
- u8 reference_voltage;
-
- enum calibration_type cal_type;
-};
-#endif /* _LINUX_EXYNOS4_TMU_H */
diff --git a/ANDROID_3.4.5/include/linux/platform_data/fsa9480.h b/ANDROID_3.4.5/include/linux/platform_data/fsa9480.h
deleted file mode 100644
index 72dddcb4..00000000
--- a/ANDROID_3.4.5/include/linux/platform_data/fsa9480.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (C) 2010 Samsung Electronics
- * Minkyu Kang <mk7.kang@samsung.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.
- */
-
-#ifndef _FSA9480_H_
-#define _FSA9480_H_
-
-#define FSA9480_ATTACHED 1
-#define FSA9480_DETACHED 0
-
-struct fsa9480_platform_data {
- void (*cfg_gpio) (void);
- void (*usb_cb) (u8 attached);
- void (*uart_cb) (u8 attached);
- void (*charger_cb) (u8 attached);
- void (*jig_cb) (u8 attached);
- void (*reset_cb) (void);
- void (*usb_power) (u8 on);
- int wakeup;
-};
-
-#endif /* _FSA9480_H_ */
diff --git a/ANDROID_3.4.5/include/linux/platform_data/leds-renesas-tpu.h b/ANDROID_3.4.5/include/linux/platform_data/leds-renesas-tpu.h
deleted file mode 100644
index 05538708..00000000
--- a/ANDROID_3.4.5/include/linux/platform_data/leds-renesas-tpu.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef __LEDS_RENESAS_TPU_H__
-#define __LEDS_RENESAS_TPU_H__
-
-struct led_renesas_tpu_config {
- char *name;
- unsigned pin_gpio_fn;
- unsigned pin_gpio;
- unsigned int channel_offset;
- unsigned int timer_bit;
- unsigned int max_brightness;
- unsigned int refresh_rate;
-};
-
-#endif /* __LEDS_RENESAS_TPU_H__ */
diff --git a/ANDROID_3.4.5/include/linux/platform_data/macb.h b/ANDROID_3.4.5/include/linux/platform_data/macb.h
deleted file mode 100644
index b081c724..00000000
--- a/ANDROID_3.4.5/include/linux/platform_data/macb.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel 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.
- */
-#ifndef __MACB_PDATA_H__
-#define __MACB_PDATA_H__
-
-struct macb_platform_data {
- u32 phy_mask;
- int phy_irq_pin; /* PHY IRQ */
- u8 is_rmii; /* using RMII interface? */
-};
-
-#endif /* __MACB_PDATA_H__ */
diff --git a/ANDROID_3.4.5/include/linux/platform_data/msm_serial_hs.h b/ANDROID_3.4.5/include/linux/platform_data/msm_serial_hs.h
deleted file mode 100644
index 98a2046f..00000000
--- a/ANDROID_3.4.5/include/linux/platform_data/msm_serial_hs.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2008 Google, Inc.
- * Author: Nick Pelly <npelly@google.com>
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
-
-#ifndef __ASM_ARCH_MSM_SERIAL_HS_H
-#define __ASM_ARCH_MSM_SERIAL_HS_H
-
-#include <linux/serial_core.h>
-
-/* API to request the uart clock off or on for low power management
- * Clients should call request_clock_off() when no uart data is expected,
- * and must call request_clock_on() before any further uart data can be
- * received. */
-extern void msm_hs_request_clock_off(struct uart_port *uport);
-extern void msm_hs_request_clock_on(struct uart_port *uport);
-
-/**
- * struct msm_serial_hs_platform_data
- * @rx_wakeup_irq: Rx activity irq
- * @rx_to_inject: extra character to be inserted to Rx tty on wakeup
- * @inject_rx: 1 = insert rx_to_inject. 0 = do not insert extra character
- * @exit_lpm_cb: function called before every Tx transaction
- *
- * This is an optional structure required for UART Rx GPIO IRQ based
- * wakeup from low power state. UART wakeup can be triggered by RX activity
- * (using a wakeup GPIO on the UART RX pin). This should only be used if
- * there is not a wakeup GPIO on the UART CTS, and the first RX byte is
- * known (eg., with the Bluetooth Texas Instruments HCILL protocol),
- * since the first RX byte will always be lost. RTS will be asserted even
- * while the UART is clocked off in this mode of operation.
- */
-struct msm_serial_hs_platform_data {
- int rx_wakeup_irq;
- unsigned char inject_rx_on_wakeup;
- char rx_to_inject;
- void (*exit_lpm_cb)(struct uart_port *);
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/platform_data/mv_usb.h b/ANDROID_3.4.5/include/linux/platform_data/mv_usb.h
deleted file mode 100644
index d94804ac..00000000
--- a/ANDROID_3.4.5/include/linux/platform_data/mv_usb.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (C) 2011 Marvell International Ltd. 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.
- */
-
-#ifndef __MV_PLATFORM_USB_H
-#define __MV_PLATFORM_USB_H
-
-enum pxa_ehci_type {
- EHCI_UNDEFINED = 0,
- PXA_U2OEHCI, /* pxa 168, 9xx */
- PXA_SPH, /* pxa 168, 9xx SPH */
- MMP3_HSIC, /* mmp3 hsic */
- MMP3_FSIC, /* mmp3 fsic */
-};
-
-enum {
- MV_USB_MODE_OTG,
- MV_USB_MODE_HOST,
-};
-
-enum {
- VBUS_LOW = 0,
- VBUS_HIGH = 1 << 0,
-};
-
-struct mv_usb_addon_irq {
- unsigned int irq;
- int (*poll)(void);
-};
-
-struct mv_usb_platform_data {
- unsigned int clknum;
- char **clkname;
- struct mv_usb_addon_irq *id; /* Only valid for OTG. ID pin change*/
- struct mv_usb_addon_irq *vbus; /* valid for OTG/UDC. VBUS change*/
-
- /* only valid for HCD. OTG or Host only*/
- unsigned int mode;
-
- /* This flag is used for that needs id pin checked by otg */
- unsigned int disable_otg_clock_gating:1;
- /* Force a_bus_req to be asserted */
- unsigned int otg_force_a_bus_req:1;
-
- int (*phy_init)(void __iomem *regbase);
- void (*phy_deinit)(void __iomem *regbase);
- int (*set_vbus)(unsigned int vbus);
- int (*private_init)(void __iomem *opregs, void __iomem *phyregs);
-};
-
-#ifndef CONFIG_HAVE_CLK
-/* Dummy stub for clk framework */
-#define clk_get(dev, id) NULL
-#define clk_put(clock) do {} while (0)
-#define clk_enable(clock) do {} while (0)
-#define clk_disable(clock) do {} while (0)
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/platform_data/ntc_thermistor.h b/ANDROID_3.4.5/include/linux/platform_data/ntc_thermistor.h
deleted file mode 100644
index 88734e87..00000000
--- a/ANDROID_3.4.5/include/linux/platform_data/ntc_thermistor.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * ntc_thermistor.h - NTC Thermistors
- *
- * Copyright (C) 2010 Samsung Electronics
- * MyungJoo Ham <myungjoo.ham@samsung.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
- */
-#ifndef _LINUX_NTC_H
-#define _LINUX_NTC_H
-
-enum ntc_thermistor_type {
- TYPE_NCPXXWB473,
- TYPE_NCPXXWL333,
-};
-
-struct ntc_thermistor_platform_data {
- /*
- * One (not both) of read_uV and read_ohm should be provided and only
- * one of the two should be provided.
- * Both functions should return negative value for an error case.
- *
- * pullup_uV, pullup_ohm, pulldown_ohm, and connect are required to use
- * read_uV()
- *
- * How to setup pullup_ohm, pulldown_ohm, and connect is
- * described at Documentation/hwmon/ntc_thermistor
- *
- * pullup/down_ohm: 0 for infinite / not-connected
- */
- int (*read_uV)(void);
- unsigned int pullup_uV;
-
- unsigned int pullup_ohm;
- unsigned int pulldown_ohm;
- enum { NTC_CONNECTED_POSITIVE, NTC_CONNECTED_GROUND } connect;
-
- int (*read_ohm)(void);
-};
-
-#endif /* _LINUX_NTC_H */
diff --git a/ANDROID_3.4.5/include/linux/platform_data/omap-abe-twl6040.h b/ANDROID_3.4.5/include/linux/platform_data/omap-abe-twl6040.h
deleted file mode 100644
index 5d298ac1..00000000
--- a/ANDROID_3.4.5/include/linux/platform_data/omap-abe-twl6040.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- * omap-abe-twl6040.h - ASoC machine driver OMAP4+ devices, header.
- *
- * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com
- * All rights reserved.
- *
- * Author: Peter Ujfalusi <peter.ujfalusi@ti.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.
- *
- * 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 _OMAP_ABE_TWL6040_H_
-#define _OMAP_ABE_TWL6040_H_
-
-/* To select if only one channel is connected in a stereo port */
-#define ABE_TWL6040_LEFT (1 << 0)
-#define ABE_TWL6040_RIGHT (1 << 1)
-
-struct omap_abe_twl6040_data {
- char *card_name;
- /* Feature flags for connected audio pins */
- u8 has_hs;
- u8 has_hf;
- bool has_ep;
- u8 has_aux;
- u8 has_vibra;
- bool has_dmic;
- bool has_hsmic;
- bool has_mainmic;
- bool has_submic;
- u8 has_afm;
- /* Other features */
- bool jack_detection; /* board can detect jack events */
- int mclk_freq; /* MCLK frequency speed for twl6040 */
-};
-
-#endif /* _OMAP_ABE_TWL6040_H_ */
diff --git a/ANDROID_3.4.5/include/linux/platform_data/omap4-keypad.h b/ANDROID_3.4.5/include/linux/platform_data/omap4-keypad.h
deleted file mode 100644
index 4eef5fb0..00000000
--- a/ANDROID_3.4.5/include/linux/platform_data/omap4-keypad.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef __LINUX_INPUT_OMAP4_KEYPAD_H
-#define __LINUX_INPUT_OMAP4_KEYPAD_H
-
-#include <linux/input/matrix_keypad.h>
-
-struct omap4_keypad_platform_data {
- const struct matrix_keymap_data *keymap_data;
-
- u8 rows;
- u8 cols;
-};
-
-#endif /* __LINUX_INPUT_OMAP4_KEYPAD_H */
diff --git a/ANDROID_3.4.5/include/linux/platform_data/pxa_sdhci.h b/ANDROID_3.4.5/include/linux/platform_data/pxa_sdhci.h
deleted file mode 100644
index 51ad0995..00000000
--- a/ANDROID_3.4.5/include/linux/platform_data/pxa_sdhci.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * include/linux/platform_data/pxa_sdhci.h
- *
- * Copyright 2010 Marvell
- * Zhangfei Gao <zhangfei.gao@marvell.com>
- *
- * PXA Platform - SDHCI platform data definitions
- *
- * 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.
- */
-
-#ifndef _PXA_SDHCI_H_
-#define _PXA_SDHCI_H_
-
-/* pxa specific flag */
-/* Require clock free running */
-#define PXA_FLAG_ENABLE_CLOCK_GATING (1<<0)
-/* card always wired to host, like on-chip emmc */
-#define PXA_FLAG_CARD_PERMANENT (1<<1)
-/* Board design supports 8-bit data on SD/SDIO BUS */
-#define PXA_FLAG_SD_8_BIT_CAPABLE_SLOT (1<<2)
-
-/*
- * struct pxa_sdhci_platdata() - Platform device data for PXA SDHCI
- * @flags: flags for platform requirement
- * @clk_delay_cycles:
- * mmp2: each step is roughly 100ps, 5bits width
- * pxa910: each step is 1ns, 4bits width
- * @clk_delay_sel: select clk_delay, used on pxa910
- * 0: choose feedback clk
- * 1: choose feedback clk + delay value
- * 2: choose internal clk
- * @clk_delay_enable: enable clk_delay or not, used on pxa910
- * @ext_cd_gpio: gpio pin used for external CD line
- * @ext_cd_gpio_invert: invert values for external CD gpio line
- * @max_speed: the maximum speed supported
- * @host_caps: Standard MMC host capabilities bit field.
- * @quirks: quirks of platfrom
- * @pm_caps: pm_caps of platfrom
- */
-struct sdhci_pxa_platdata {
- unsigned int flags;
- unsigned int clk_delay_cycles;
- unsigned int clk_delay_sel;
- bool clk_delay_enable;
- unsigned int ext_cd_gpio;
- bool ext_cd_gpio_invert;
- unsigned int max_speed;
- unsigned int host_caps;
- unsigned int quirks;
- unsigned int pm_caps;
-};
-
-struct sdhci_pxa {
- u8 clk_enable;
- u8 power_mode;
-};
-#endif /* _PXA_SDHCI_H_ */
diff --git a/ANDROID_3.4.5/include/linux/platform_data/s3c-hsudc.h b/ANDROID_3.4.5/include/linux/platform_data/s3c-hsudc.h
deleted file mode 100644
index 6fa10933..00000000
--- a/ANDROID_3.4.5/include/linux/platform_data/s3c-hsudc.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * S3C24XX USB 2.0 High-speed USB controller gadget driver
- *
- * Copyright (c) 2010 Samsung Electronics Co., Ltd.
- * http://www.samsung.com/
- *
- * The S3C24XX USB 2.0 high-speed USB controller supports upto 9 endpoints.
- * Each endpoint can be configured as either in or out endpoint. Endpoints
- * can be configured for Bulk or Interrupt transfer mode.
- *
- * 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.
-*/
-
-#ifndef __LINUX_USB_S3C_HSUDC_H
-#define __LINUX_USB_S3C_HSUDC_H
-
-/**
- * s3c24xx_hsudc_platdata - Platform data for USB High-Speed gadget controller.
- * @epnum: Number of endpoints to be instantiated by the controller driver.
- * @gpio_init: Platform specific USB related GPIO initialization.
- * @gpio_uninit: Platform specific USB releted GPIO uninitialzation.
- *
- * Representation of platform data for the S3C24XX USB 2.0 High Speed gadget
- * controllers.
- */
-struct s3c24xx_hsudc_platdata {
- unsigned int epnum;
- void (*gpio_init)(void);
- void (*gpio_uninit)(void);
-};
-
-#endif /* __LINUX_USB_S3C_HSUDC_H */
diff --git a/ANDROID_3.4.5/include/linux/platform_data/spear_thermal.h b/ANDROID_3.4.5/include/linux/platform_data/spear_thermal.h
deleted file mode 100644
index 724f2e1c..00000000
--- a/ANDROID_3.4.5/include/linux/platform_data/spear_thermal.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * SPEAr thermal driver platform data.
- *
- * Copyright (C) 2011-2012 ST Microelectronics
- * Author: Vincenzo Frascino <vincenzo.frascino@st.com>
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-#ifndef SPEAR_THERMAL_H
-#define SPEAR_THERMAL_H
-
-/* SPEAr Thermal Sensor Platform Data */
-struct spear_thermal_pdata {
- /* flags used to enable thermal sensor */
- unsigned int thermal_flags;
-};
-
-#endif /* SPEAR_THERMAL_H */
diff --git a/ANDROID_3.4.5/include/linux/platform_data/tegra_emc.h b/ANDROID_3.4.5/include/linux/platform_data/tegra_emc.h
deleted file mode 100644
index df67505e..00000000
--- a/ANDROID_3.4.5/include/linux/platform_data/tegra_emc.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2011 Google, Inc.
- *
- * Author:
- * Colin Cross <ccross@android.com>
- * Olof Johansson <olof@lixom.net>
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#ifndef __TEGRA_EMC_H_
-#define __TEGRA_EMC_H_
-
-#define TEGRA_EMC_NUM_REGS 46
-
-struct tegra_emc_table {
- unsigned long rate;
- u32 regs[TEGRA_EMC_NUM_REGS];
-};
-
-struct tegra_emc_pdata {
- int num_tables;
- struct tegra_emc_table *tables;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/platform_data/tegra_usb.h b/ANDROID_3.4.5/include/linux/platform_data/tegra_usb.h
deleted file mode 100644
index 6bca5b56..00000000
--- a/ANDROID_3.4.5/include/linux/platform_data/tegra_usb.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2010 Google, Inc.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#ifndef _TEGRA_USB_H_
-#define _TEGRA_USB_H_
-
-enum tegra_usb_operating_modes {
- TEGRA_USB_DEVICE,
- TEGRA_USB_HOST,
- TEGRA_USB_OTG,
-};
-
-struct tegra_ehci_platform_data {
- enum tegra_usb_operating_modes operating_mode;
- /* power down the phy on bus suspend */
- int power_down_on_bus_suspend;
- void *phy_config;
-};
-
-#endif /* _TEGRA_USB_H_ */
diff --git a/ANDROID_3.4.5/include/linux/platform_data/uio_pruss.h b/ANDROID_3.4.5/include/linux/platform_data/uio_pruss.h
deleted file mode 100644
index f39140aa..00000000
--- a/ANDROID_3.4.5/include/linux/platform_data/uio_pruss.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * include/linux/platform_data/uio_pruss.h
- *
- * Platform data for uio_pruss driver
- *
- * Copyright (C) 2010-11 Texas Instruments Incorporated - http://www.ti.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 version 2.
- *
- * This program is distributed "as is" WITHOUT ANY WARRANTY of any
- * kind, whether express or implied; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
-
-#ifndef _UIO_PRUSS_H_
-#define _UIO_PRUSS_H_
-
-/* To configure the PRUSS INTC base offset for UIO driver */
-struct uio_pruss_pdata {
- u32 pintc_base;
-};
-#endif /* _UIO_PRUSS_H_ */
diff --git a/ANDROID_3.4.5/include/linux/platform_device.h b/ANDROID_3.4.5/include/linux/platform_device.h
deleted file mode 100644
index 60e9994e..00000000
--- a/ANDROID_3.4.5/include/linux/platform_device.h
+++ /dev/null
@@ -1,291 +0,0 @@
-/*
- * platform_device.h - generic, centralized driver model
- *
- * Copyright (c) 2001-2003 Patrick Mochel <mochel@osdl.org>
- *
- * This file is released under the GPLv2
- *
- * See Documentation/driver-model/ for more information.
- */
-
-#ifndef _PLATFORM_DEVICE_H_
-#define _PLATFORM_DEVICE_H_
-
-#include <linux/device.h>
-#include <linux/mod_devicetable.h>
-
-struct mfd_cell;
-
-struct platform_device {
- const char * name;
- int id;
- struct device dev;
- u32 num_resources;
- struct resource * resource;
-
- const struct platform_device_id *id_entry;
-
- /* MFD cell pointer */
- struct mfd_cell *mfd_cell;
-
- /* arch specific additions */
- struct pdev_archdata archdata;
-};
-
-#define platform_get_device_id(pdev) ((pdev)->id_entry)
-
-#define to_platform_device(x) container_of((x), struct platform_device, dev)
-
-extern int platform_device_register(struct platform_device *);
-extern void platform_device_unregister(struct platform_device *);
-
-extern struct bus_type platform_bus_type;
-extern struct device platform_bus;
-
-extern void arch_setup_pdev_archdata(struct platform_device *);
-extern struct resource *platform_get_resource(struct platform_device *, unsigned int, unsigned int);
-extern int platform_get_irq(struct platform_device *, unsigned int);
-extern struct resource *platform_get_resource_byname(struct platform_device *, unsigned int, const char *);
-extern int platform_get_irq_byname(struct platform_device *, const char *);
-extern int platform_add_devices(struct platform_device **, int);
-
-struct platform_device_info {
- struct device *parent;
-
- const char *name;
- int id;
-
- const struct resource *res;
- unsigned int num_res;
-
- const void *data;
- size_t size_data;
- u64 dma_mask;
-};
-extern struct platform_device *platform_device_register_full(
- const struct platform_device_info *pdevinfo);
-
-/**
- * platform_device_register_resndata - add a platform-level device with
- * resources and platform-specific data
- *
- * @parent: parent device for the device we're adding
- * @name: base name of the device we're adding
- * @id: instance id
- * @res: set of resources that needs to be allocated for the device
- * @num: number of resources
- * @data: platform specific data for this platform device
- * @size: size of platform specific data
- *
- * Returns &struct platform_device pointer on success, or ERR_PTR() on error.
- */
-static inline struct platform_device *platform_device_register_resndata(
- struct device *parent, const char *name, int id,
- const struct resource *res, unsigned int num,
- const void *data, size_t size) {
-
- struct platform_device_info pdevinfo = {
- .parent = parent,
- .name = name,
- .id = id,
- .res = res,
- .num_res = num,
- .data = data,
- .size_data = size,
- .dma_mask = 0,
- };
-
- return platform_device_register_full(&pdevinfo);
-}
-
-/**
- * platform_device_register_simple - add a platform-level device and its resources
- * @name: base name of the device we're adding
- * @id: instance id
- * @res: set of resources that needs to be allocated for the device
- * @num: number of resources
- *
- * This function creates a simple platform device that requires minimal
- * resource and memory management. Canned release function freeing memory
- * allocated for the device allows drivers using such devices to be
- * unloaded without waiting for the last reference to the device to be
- * dropped.
- *
- * This interface is primarily intended for use with legacy drivers which
- * probe hardware directly. Because such drivers create sysfs device nodes
- * themselves, rather than letting system infrastructure handle such device
- * enumeration tasks, they don't fully conform to the Linux driver model.
- * In particular, when such drivers are built as modules, they can't be
- * "hotplugged".
- *
- * Returns &struct platform_device pointer on success, or ERR_PTR() on error.
- */
-static inline struct platform_device *platform_device_register_simple(
- const char *name, int id,
- const struct resource *res, unsigned int num)
-{
- return platform_device_register_resndata(NULL, name, id,
- res, num, NULL, 0);
-}
-
-/**
- * platform_device_register_data - add a platform-level device with platform-specific data
- * @parent: parent device for the device we're adding
- * @name: base name of the device we're adding
- * @id: instance id
- * @data: platform specific data for this platform device
- * @size: size of platform specific data
- *
- * This function creates a simple platform device that requires minimal
- * resource and memory management. Canned release function freeing memory
- * allocated for the device allows drivers using such devices to be
- * unloaded without waiting for the last reference to the device to be
- * dropped.
- *
- * Returns &struct platform_device pointer on success, or ERR_PTR() on error.
- */
-static inline struct platform_device *platform_device_register_data(
- struct device *parent, const char *name, int id,
- const void *data, size_t size)
-{
- return platform_device_register_resndata(parent, name, id,
- NULL, 0, data, size);
-}
-
-extern struct platform_device *platform_device_alloc(const char *name, int id);
-extern int platform_device_add_resources(struct platform_device *pdev,
- const struct resource *res,
- unsigned int num);
-extern int platform_device_add_data(struct platform_device *pdev, const void *data, size_t size);
-extern int platform_device_add(struct platform_device *pdev);
-extern void platform_device_del(struct platform_device *pdev);
-extern void platform_device_put(struct platform_device *pdev);
-
-struct platform_driver {
- int (*probe)(struct platform_device *);
- int (*remove)(struct platform_device *);
- void (*shutdown)(struct platform_device *);
- int (*suspend)(struct platform_device *, pm_message_t state);
- int (*resume)(struct platform_device *);
- struct device_driver driver;
- const struct platform_device_id *id_table;
-};
-
-extern int platform_driver_register(struct platform_driver *);
-extern void platform_driver_unregister(struct platform_driver *);
-
-/* non-hotpluggable platform devices may use this so that probe() and
- * its support may live in __init sections, conserving runtime memory.
- */
-extern int platform_driver_probe(struct platform_driver *driver,
- int (*probe)(struct platform_device *));
-
-static inline void *platform_get_drvdata(const struct platform_device *pdev)
-{
- return dev_get_drvdata(&pdev->dev);
-}
-
-static inline void platform_set_drvdata(struct platform_device *pdev, void *data)
-{
- dev_set_drvdata(&pdev->dev, data);
-}
-
-/* module_platform_driver() - Helper macro for drivers that don't do
- * anything special in module init/exit. This eliminates a lot of
- * boilerplate. Each module may only use this macro once, and
- * calling it replaces module_init() and module_exit()
- */
-#define module_platform_driver(__platform_driver) \
- module_driver(__platform_driver, platform_driver_register, \
- platform_driver_unregister)
-
-extern struct platform_device *platform_create_bundle(struct platform_driver *driver,
- int (*probe)(struct platform_device *),
- struct resource *res, unsigned int n_res,
- const void *data, size_t size);
-
-/* early platform driver interface */
-struct early_platform_driver {
- const char *class_str;
- struct platform_driver *pdrv;
- struct list_head list;
- int requested_id;
- char *buffer;
- int bufsize;
-};
-
-#define EARLY_PLATFORM_ID_UNSET -2
-#define EARLY_PLATFORM_ID_ERROR -3
-
-extern int early_platform_driver_register(struct early_platform_driver *epdrv,
- char *buf);
-extern void early_platform_add_devices(struct platform_device **devs, int num);
-
-static inline int is_early_platform_device(struct platform_device *pdev)
-{
- return !pdev->dev.driver;
-}
-
-extern void early_platform_driver_register_all(char *class_str);
-extern int early_platform_driver_probe(char *class_str,
- int nr_probe, int user_only);
-extern void early_platform_cleanup(void);
-
-#define early_platform_init(class_string, platdrv) \
- early_platform_init_buffer(class_string, platdrv, NULL, 0)
-
-#ifndef MODULE
-#define early_platform_init_buffer(class_string, platdrv, buf, bufsiz) \
-static __initdata struct early_platform_driver early_driver = { \
- .class_str = class_string, \
- .buffer = buf, \
- .bufsize = bufsiz, \
- .pdrv = platdrv, \
- .requested_id = EARLY_PLATFORM_ID_UNSET, \
-}; \
-static int __init early_platform_driver_setup_func(char *buffer) \
-{ \
- return early_platform_driver_register(&early_driver, buffer); \
-} \
-early_param(class_string, early_platform_driver_setup_func)
-#else /* MODULE */
-#define early_platform_init_buffer(class_string, platdrv, buf, bufsiz) \
-static inline char *early_platform_driver_setup_func(void) \
-{ \
- return bufsiz ? buf : NULL; \
-}
-#endif /* MODULE */
-
-#ifdef CONFIG_SUSPEND
-extern int platform_pm_suspend(struct device *dev);
-extern int platform_pm_resume(struct device *dev);
-#else
-#define platform_pm_suspend NULL
-#define platform_pm_resume NULL
-#endif
-
-#ifdef CONFIG_HIBERNATE_CALLBACKS
-extern int platform_pm_freeze(struct device *dev);
-extern int platform_pm_thaw(struct device *dev);
-extern int platform_pm_poweroff(struct device *dev);
-extern int platform_pm_restore(struct device *dev);
-#else
-#define platform_pm_freeze NULL
-#define platform_pm_thaw NULL
-#define platform_pm_poweroff NULL
-#define platform_pm_restore NULL
-#endif
-
-#ifdef CONFIG_PM_SLEEP
-#define USE_PLATFORM_PM_SLEEP_OPS \
- .suspend = platform_pm_suspend, \
- .resume = platform_pm_resume, \
- .freeze = platform_pm_freeze, \
- .thaw = platform_pm_thaw, \
- .poweroff = platform_pm_poweroff, \
- .restore = platform_pm_restore,
-#else
-#define USE_PLATFORM_PM_SLEEP_OPS
-#endif
-
-#endif /* _PLATFORM_DEVICE_H_ */
diff --git a/ANDROID_3.4.5/include/linux/plist.h b/ANDROID_3.4.5/include/linux/plist.h
deleted file mode 100644
index aa0fb390..00000000
--- a/ANDROID_3.4.5/include/linux/plist.h
+++ /dev/null
@@ -1,255 +0,0 @@
-/*
- * Descending-priority-sorted double-linked list
- *
- * (C) 2002-2003 Intel Corp
- * Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>.
- *
- * 2001-2005 (c) MontaVista Software, Inc.
- * Daniel Walker <dwalker@mvista.com>
- *
- * (C) 2005 Thomas Gleixner <tglx@linutronix.de>
- *
- * Simplifications of the original code by
- * Oleg Nesterov <oleg@tv-sign.ru>
- *
- * Licensed under the FSF's GNU Public License v2 or later.
- *
- * Based on simple lists (include/linux/list.h).
- *
- * This is a priority-sorted list of nodes; each node has a
- * priority from INT_MIN (highest) to INT_MAX (lowest).
- *
- * Addition is O(K), removal is O(1), change of priority of a node is
- * O(K) and K is the number of RT priority levels used in the system.
- * (1 <= K <= 99)
- *
- * This list is really a list of lists:
- *
- * - The tier 1 list is the prio_list, different priority nodes.
- *
- * - The tier 2 list is the node_list, serialized nodes.
- *
- * Simple ASCII art explanation:
- *
- * pl:prio_list (only for plist_node)
- * nl:node_list
- * HEAD| NODE(S)
- * |
- * ||------------------------------------|
- * ||->|pl|<->|pl|<--------------->|pl|<-|
- * | |10| |21| |21| |21| |40| (prio)
- * | | | | | | | | | | |
- * | | | | | | | | | | |
- * |->|nl|<->|nl|<->|nl|<->|nl|<->|nl|<->|nl|<-|
- * |-------------------------------------------|
- *
- * The nodes on the prio_list list are sorted by priority to simplify
- * the insertion of new nodes. There are no nodes with duplicate
- * priorites on the list.
- *
- * The nodes on the node_list are ordered by priority and can contain
- * entries which have the same priority. Those entries are ordered
- * FIFO
- *
- * Addition means: look for the prio_list node in the prio_list
- * for the priority of the node and insert it before the node_list
- * entry of the next prio_list node. If it is the first node of
- * that priority, add it to the prio_list in the right position and
- * insert it into the serialized node_list list
- *
- * Removal means remove it from the node_list and remove it from
- * the prio_list if the node_list list_head is non empty. In case
- * of removal from the prio_list it must be checked whether other
- * entries of the same priority are on the list or not. If there
- * is another entry of the same priority then this entry has to
- * replace the removed entry on the prio_list. If the entry which
- * is removed is the only entry of this priority then a simple
- * remove from both list is sufficient.
- *
- * INT_MIN is the highest priority, 0 is the medium highest, INT_MAX
- * is lowest priority.
- *
- * No locking is done, up to the caller.
- *
- */
-#ifndef _LINUX_PLIST_H_
-#define _LINUX_PLIST_H_
-
-#include <linux/kernel.h>
-#include <linux/list.h>
-
-struct plist_head {
- struct list_head node_list;
-};
-
-struct plist_node {
- int prio;
- struct list_head prio_list;
- struct list_head node_list;
-};
-
-/**
- * PLIST_HEAD_INIT - static struct plist_head initializer
- * @head: struct plist_head variable name
- */
-#define PLIST_HEAD_INIT(head) \
-{ \
- .node_list = LIST_HEAD_INIT((head).node_list) \
-}
-
-/**
- * PLIST_NODE_INIT - static struct plist_node initializer
- * @node: struct plist_node variable name
- * @__prio: initial node priority
- */
-#define PLIST_NODE_INIT(node, __prio) \
-{ \
- .prio = (__prio), \
- .prio_list = LIST_HEAD_INIT((node).prio_list), \
- .node_list = LIST_HEAD_INIT((node).node_list), \
-}
-
-/**
- * plist_head_init - dynamic struct plist_head initializer
- * @head: &struct plist_head pointer
- */
-static inline void
-plist_head_init(struct plist_head *head)
-{
- INIT_LIST_HEAD(&head->node_list);
-}
-
-/**
- * plist_node_init - Dynamic struct plist_node initializer
- * @node: &struct plist_node pointer
- * @prio: initial node priority
- */
-static inline void plist_node_init(struct plist_node *node, int prio)
-{
- node->prio = prio;
- INIT_LIST_HEAD(&node->prio_list);
- INIT_LIST_HEAD(&node->node_list);
-}
-
-extern void plist_add(struct plist_node *node, struct plist_head *head);
-extern void plist_del(struct plist_node *node, struct plist_head *head);
-
-/**
- * plist_for_each - iterate over the plist
- * @pos: the type * to use as a loop counter
- * @head: the head for your list
- */
-#define plist_for_each(pos, head) \
- list_for_each_entry(pos, &(head)->node_list, node_list)
-
-/**
- * plist_for_each_safe - iterate safely over a plist of given type
- * @pos: the type * to use as a loop counter
- * @n: another type * to use as temporary storage
- * @head: the head for your list
- *
- * Iterate over a plist of given type, safe against removal of list entry.
- */
-#define plist_for_each_safe(pos, n, head) \
- list_for_each_entry_safe(pos, n, &(head)->node_list, node_list)
-
-/**
- * plist_for_each_entry - iterate over list of given type
- * @pos: the type * to use as a loop counter
- * @head: the head for your list
- * @mem: the name of the list_struct within the struct
- */
-#define plist_for_each_entry(pos, head, mem) \
- list_for_each_entry(pos, &(head)->node_list, mem.node_list)
-
-/**
- * plist_for_each_entry_safe - iterate safely over list of given type
- * @pos: the type * to use as a loop counter
- * @n: another type * to use as temporary storage
- * @head: the head for your list
- * @m: the name of the list_struct within the struct
- *
- * Iterate over list of given type, safe against removal of list entry.
- */
-#define plist_for_each_entry_safe(pos, n, head, m) \
- list_for_each_entry_safe(pos, n, &(head)->node_list, m.node_list)
-
-/**
- * plist_head_empty - return !0 if a plist_head is empty
- * @head: &struct plist_head pointer
- */
-static inline int plist_head_empty(const struct plist_head *head)
-{
- return list_empty(&head->node_list);
-}
-
-/**
- * plist_node_empty - return !0 if plist_node is not on a list
- * @node: &struct plist_node pointer
- */
-static inline int plist_node_empty(const struct plist_node *node)
-{
- return list_empty(&node->node_list);
-}
-
-/* All functions below assume the plist_head is not empty. */
-
-/**
- * plist_first_entry - get the struct for the first entry
- * @head: the &struct plist_head pointer
- * @type: the type of the struct this is embedded in
- * @member: the name of the list_struct within the struct
- */
-#ifdef CONFIG_DEBUG_PI_LIST
-# define plist_first_entry(head, type, member) \
-({ \
- WARN_ON(plist_head_empty(head)); \
- container_of(plist_first(head), type, member); \
-})
-#else
-# define plist_first_entry(head, type, member) \
- container_of(plist_first(head), type, member)
-#endif
-
-/**
- * plist_last_entry - get the struct for the last entry
- * @head: the &struct plist_head pointer
- * @type: the type of the struct this is embedded in
- * @member: the name of the list_struct within the struct
- */
-#ifdef CONFIG_DEBUG_PI_LIST
-# define plist_last_entry(head, type, member) \
-({ \
- WARN_ON(plist_head_empty(head)); \
- container_of(plist_last(head), type, member); \
-})
-#else
-# define plist_last_entry(head, type, member) \
- container_of(plist_last(head), type, member)
-#endif
-
-/**
- * plist_first - return the first node (and thus, highest priority)
- * @head: the &struct plist_head pointer
- *
- * Assumes the plist is _not_ empty.
- */
-static inline struct plist_node *plist_first(const struct plist_head *head)
-{
- return list_entry(head->node_list.next,
- struct plist_node, node_list);
-}
-
-/**
- * plist_last - return the last node (and thus, lowest priority)
- * @head: the &struct plist_head pointer
- *
- * Assumes the plist is _not_ empty.
- */
-static inline struct plist_node *plist_last(const struct plist_head *head)
-{
- return list_entry(head->node_list.prev,
- struct plist_node, node_list);
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/pm.h b/ANDROID_3.4.5/include/linux/pm.h
deleted file mode 100644
index f067e60a..00000000
--- a/ANDROID_3.4.5/include/linux/pm.h
+++ /dev/null
@@ -1,698 +0,0 @@
-/*
- * pm.h - Power management interface
- *
- * Copyright (C) 2000 Andrew Henroid
- *
- * 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
- */
-
-#ifndef _LINUX_PM_H
-#define _LINUX_PM_H
-
-#include <linux/list.h>
-#include <linux/workqueue.h>
-#include <linux/spinlock.h>
-#include <linux/wait.h>
-#include <linux/timer.h>
-#include <linux/completion.h>
-
-/*
- * Callbacks for platform drivers to implement.
- */
-extern void (*pm_idle)(void);
-extern void (*pm_power_off)(void);
-extern void (*pm_power_off_prepare)(void);
-
-/*
- * Device power management
- */
-
-struct device;
-
-#ifdef CONFIG_PM
-extern const char power_group_name[]; /* = "power" */
-#else
-#define power_group_name NULL
-#endif
-
-typedef struct pm_message {
- int event;
-} pm_message_t;
-
-/**
- * struct dev_pm_ops - device PM callbacks
- *
- * Several device power state transitions are externally visible, affecting
- * the state of pending I/O queues and (for drivers that touch hardware)
- * interrupts, wakeups, DMA, and other hardware state. There may also be
- * internal transitions to various low-power modes which are transparent
- * to the rest of the driver stack (such as a driver that's ON gating off
- * clocks which are not in active use).
- *
- * The externally visible transitions are handled with the help of callbacks
- * included in this structure in such a way that two levels of callbacks are
- * involved. First, the PM core executes callbacks provided by PM domains,
- * device types, classes and bus types. They are the subsystem-level callbacks
- * supposed to execute callbacks provided by device drivers, although they may
- * choose not to do that. If the driver callbacks are executed, they have to
- * collaborate with the subsystem-level callbacks to achieve the goals
- * appropriate for the given system transition, given transition phase and the
- * subsystem the device belongs to.
- *
- * @prepare: The principal role of this callback is to prevent new children of
- * the device from being registered after it has returned (the driver's
- * subsystem and generally the rest of the kernel is supposed to prevent
- * new calls to the probe method from being made too once @prepare() has
- * succeeded). If @prepare() detects a situation it cannot handle (e.g.
- * registration of a child already in progress), it may return -EAGAIN, so
- * that the PM core can execute it once again (e.g. after a new child has
- * been registered) to recover from the race condition.
- * This method is executed for all kinds of suspend transitions and is
- * followed by one of the suspend callbacks: @suspend(), @freeze(), or
- * @poweroff(). The PM core executes subsystem-level @prepare() for all
- * devices before starting to invoke suspend callbacks for any of them, so
- * generally devices may be assumed to be functional or to respond to
- * runtime resume requests while @prepare() is being executed. However,
- * device drivers may NOT assume anything about the availability of user
- * space at that time and it is NOT valid to request firmware from within
- * @prepare() (it's too late to do that). It also is NOT valid to allocate
- * substantial amounts of memory from @prepare() in the GFP_KERNEL mode.
- * [To work around these limitations, drivers may register suspend and
- * hibernation notifiers to be executed before the freezing of tasks.]
- *
- * @complete: Undo the changes made by @prepare(). This method is executed for
- * all kinds of resume transitions, following one of the resume callbacks:
- * @resume(), @thaw(), @restore(). Also called if the state transition
- * fails before the driver's suspend callback: @suspend(), @freeze() or
- * @poweroff(), can be executed (e.g. if the suspend callback fails for one
- * of the other devices that the PM core has unsuccessfully attempted to
- * suspend earlier).
- * The PM core executes subsystem-level @complete() after it has executed
- * the appropriate resume callbacks for all devices.
- *
- * @suspend: Executed before putting the system into a sleep state in which the
- * contents of main memory are preserved. The exact action to perform
- * depends on the device's subsystem (PM domain, device type, class or bus
- * type), but generally the device must be quiescent after subsystem-level
- * @suspend() has returned, so that it doesn't do any I/O or DMA.
- * Subsystem-level @suspend() is executed for all devices after invoking
- * subsystem-level @prepare() for all of them.
- *
- * @suspend_late: Continue operations started by @suspend(). For a number of
- * devices @suspend_late() may point to the same callback routine as the
- * runtime suspend callback.
- *
- * @resume: Executed after waking the system up from a sleep state in which the
- * contents of main memory were preserved. The exact action to perform
- * depends on the device's subsystem, but generally the driver is expected
- * to start working again, responding to hardware events and software
- * requests (the device itself may be left in a low-power state, waiting
- * for a runtime resume to occur). The state of the device at the time its
- * driver's @resume() callback is run depends on the platform and subsystem
- * the device belongs to. On most platforms, there are no restrictions on
- * availability of resources like clocks during @resume().
- * Subsystem-level @resume() is executed for all devices after invoking
- * subsystem-level @resume_noirq() for all of them.
- *
- * @resume_early: Prepare to execute @resume(). For a number of devices
- * @resume_early() may point to the same callback routine as the runtime
- * resume callback.
- *
- * @freeze: Hibernation-specific, executed before creating a hibernation image.
- * Analogous to @suspend(), but it should not enable the device to signal
- * wakeup events or change its power state. The majority of subsystems
- * (with the notable exception of the PCI bus type) expect the driver-level
- * @freeze() to save the device settings in memory to be used by @restore()
- * during the subsequent resume from hibernation.
- * Subsystem-level @freeze() is executed for all devices after invoking
- * subsystem-level @prepare() for all of them.
- *
- * @freeze_late: Continue operations started by @freeze(). Analogous to
- * @suspend_late(), but it should not enable the device to signal wakeup
- * events or change its power state.
- *
- * @thaw: Hibernation-specific, executed after creating a hibernation image OR
- * if the creation of an image has failed. Also executed after a failing
- * attempt to restore the contents of main memory from such an image.
- * Undo the changes made by the preceding @freeze(), so the device can be
- * operated in the same way as immediately before the call to @freeze().
- * Subsystem-level @thaw() is executed for all devices after invoking
- * subsystem-level @thaw_noirq() for all of them. It also may be executed
- * directly after @freeze() in case of a transition error.
- *
- * @thaw_early: Prepare to execute @thaw(). Undo the changes made by the
- * preceding @freeze_late().
- *
- * @poweroff: Hibernation-specific, executed after saving a hibernation image.
- * Analogous to @suspend(), but it need not save the device's settings in
- * memory.
- * Subsystem-level @poweroff() is executed for all devices after invoking
- * subsystem-level @prepare() for all of them.
- *
- * @poweroff_late: Continue operations started by @poweroff(). Analogous to
- * @suspend_late(), but it need not save the device's settings in memory.
- *
- * @restore: Hibernation-specific, executed after restoring the contents of main
- * memory from a hibernation image, analogous to @resume().
- *
- * @restore_early: Prepare to execute @restore(), analogous to @resume_early().
- *
- * @suspend_noirq: Complete the actions started by @suspend(). Carry out any
- * additional operations required for suspending the device that might be
- * racing with its driver's interrupt handler, which is guaranteed not to
- * run while @suspend_noirq() is being executed.
- * It generally is expected that the device will be in a low-power state
- * (appropriate for the target system sleep state) after subsystem-level
- * @suspend_noirq() has returned successfully. If the device can generate
- * system wakeup signals and is enabled to wake up the system, it should be
- * configured to do so at that time. However, depending on the platform
- * and device's subsystem, @suspend() or @suspend_late() may be allowed to
- * put the device into the low-power state and configure it to generate
- * wakeup signals, in which case it generally is not necessary to define
- * @suspend_noirq().
- *
- * @resume_noirq: Prepare for the execution of @resume() by carrying out any
- * operations required for resuming the device that might be racing with
- * its driver's interrupt handler, which is guaranteed not to run while
- * @resume_noirq() is being executed.
- *
- * @freeze_noirq: Complete the actions started by @freeze(). Carry out any
- * additional operations required for freezing the device that might be
- * racing with its driver's interrupt handler, which is guaranteed not to
- * run while @freeze_noirq() is being executed.
- * The power state of the device should not be changed by either @freeze(),
- * or @freeze_late(), or @freeze_noirq() and it should not be configured to
- * signal system wakeup by any of these callbacks.
- *
- * @thaw_noirq: Prepare for the execution of @thaw() by carrying out any
- * operations required for thawing the device that might be racing with its
- * driver's interrupt handler, which is guaranteed not to run while
- * @thaw_noirq() is being executed.
- *
- * @poweroff_noirq: Complete the actions started by @poweroff(). Analogous to
- * @suspend_noirq(), but it need not save the device's settings in memory.
- *
- * @restore_noirq: Prepare for the execution of @restore() by carrying out any
- * operations required for thawing the device that might be racing with its
- * driver's interrupt handler, which is guaranteed not to run while
- * @restore_noirq() is being executed. Analogous to @resume_noirq().
- *
- * All of the above callbacks, except for @complete(), return error codes.
- * However, the error codes returned by the resume operations, @resume(),
- * @thaw(), @restore(), @resume_noirq(), @thaw_noirq(), and @restore_noirq(), do
- * not cause the PM core to abort the resume transition during which they are
- * returned. The error codes returned in those cases are only printed by the PM
- * core to the system logs for debugging purposes. Still, it is recommended
- * that drivers only return error codes from their resume methods in case of an
- * unrecoverable failure (i.e. when the device being handled refuses to resume
- * and becomes unusable) to allow us to modify the PM core in the future, so
- * that it can avoid attempting to handle devices that failed to resume and
- * their children.
- *
- * It is allowed to unregister devices while the above callbacks are being
- * executed. However, a callback routine must NOT try to unregister the device
- * it was called for, although it may unregister children of that device (for
- * example, if it detects that a child was unplugged while the system was
- * asleep).
- *
- * Refer to Documentation/power/devices.txt for more information about the role
- * of the above callbacks in the system suspend process.
- *
- * There also are callbacks related to runtime power management of devices.
- * Again, these callbacks are executed by the PM core only for subsystems
- * (PM domains, device types, classes and bus types) and the subsystem-level
- * callbacks are supposed to invoke the driver callbacks. Moreover, the exact
- * actions to be performed by a device driver's callbacks generally depend on
- * the platform and subsystem the device belongs to.
- *
- * @runtime_suspend: Prepare the device for a condition in which it won't be
- * able to communicate with the CPU(s) and RAM due to power management.
- * This need not mean that the device should be put into a low-power state.
- * For example, if the device is behind a link which is about to be turned
- * off, the device may remain at full power. If the device does go to low
- * power and is capable of generating runtime wakeup events, remote wakeup
- * (i.e., a hardware mechanism allowing the device to request a change of
- * its power state via an interrupt) should be enabled for it.
- *
- * @runtime_resume: Put the device into the fully active state in response to a
- * wakeup event generated by hardware or at the request of software. If
- * necessary, put the device into the full-power state and restore its
- * registers, so that it is fully operational.
- *
- * @runtime_idle: Device appears to be inactive and it might be put into a
- * low-power state if all of the necessary conditions are satisfied. Check
- * these conditions and handle the device as appropriate, possibly queueing
- * a suspend request for it. The return value is ignored by the PM core.
- *
- * Refer to Documentation/power/runtime_pm.txt for more information about the
- * role of the above callbacks in device runtime power management.
- *
- */
-
-struct dev_pm_ops {
- int (*prepare)(struct device *dev);
- void (*complete)(struct device *dev);
- int (*suspend)(struct device *dev);
- int (*resume)(struct device *dev);
- int (*freeze)(struct device *dev);
- int (*thaw)(struct device *dev);
- int (*poweroff)(struct device *dev);
- int (*restore)(struct device *dev);
- int (*suspend_late)(struct device *dev);
- int (*resume_early)(struct device *dev);
- int (*freeze_late)(struct device *dev);
- int (*thaw_early)(struct device *dev);
- int (*poweroff_late)(struct device *dev);
- int (*restore_early)(struct device *dev);
- int (*suspend_noirq)(struct device *dev);
- int (*resume_noirq)(struct device *dev);
- int (*freeze_noirq)(struct device *dev);
- int (*thaw_noirq)(struct device *dev);
- int (*poweroff_noirq)(struct device *dev);
- int (*restore_noirq)(struct device *dev);
- int (*runtime_suspend)(struct device *dev);
- int (*runtime_resume)(struct device *dev);
- int (*runtime_idle)(struct device *dev);
-};
-
-#ifdef CONFIG_PM_SLEEP
-#define SET_SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn) \
- .suspend = suspend_fn, \
- .resume = resume_fn, \
- .freeze = suspend_fn, \
- .thaw = resume_fn, \
- .poweroff = suspend_fn, \
- .restore = resume_fn,
-#else
-#define SET_SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn)
-#endif
-
-#ifdef CONFIG_PM_RUNTIME
-#define SET_RUNTIME_PM_OPS(suspend_fn, resume_fn, idle_fn) \
- .runtime_suspend = suspend_fn, \
- .runtime_resume = resume_fn, \
- .runtime_idle = idle_fn,
-#else
-#define SET_RUNTIME_PM_OPS(suspend_fn, resume_fn, idle_fn)
-#endif
-
-/*
- * Use this if you want to use the same suspend and resume callbacks for suspend
- * to RAM and hibernation.
- */
-#define SIMPLE_DEV_PM_OPS(name, suspend_fn, resume_fn) \
-const struct dev_pm_ops name = { \
- SET_SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn) \
-}
-
-/*
- * Use this for defining a set of PM operations to be used in all situations
- * (sustem suspend, hibernation or runtime PM).
- * NOTE: In general, system suspend callbacks, .suspend() and .resume(), should
- * be different from the corresponding runtime PM callbacks, .runtime_suspend(),
- * and .runtime_resume(), because .runtime_suspend() always works on an already
- * quiescent device, while .suspend() should assume that the device may be doing
- * something when it is called (it should ensure that the device will be
- * quiescent after it has returned). Therefore it's better to point the "late"
- * suspend and "early" resume callback pointers, .suspend_late() and
- * .resume_early(), to the same routines as .runtime_suspend() and
- * .runtime_resume(), respectively (and analogously for hibernation).
- */
-#define UNIVERSAL_DEV_PM_OPS(name, suspend_fn, resume_fn, idle_fn) \
-const struct dev_pm_ops name = { \
- SET_SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn) \
- SET_RUNTIME_PM_OPS(suspend_fn, resume_fn, idle_fn) \
-}
-
-/**
- * PM_EVENT_ messages
- *
- * The following PM_EVENT_ messages are defined for the internal use of the PM
- * core, in order to provide a mechanism allowing the high level suspend and
- * hibernation code to convey the necessary information to the device PM core
- * code:
- *
- * ON No transition.
- *
- * FREEZE System is going to hibernate, call ->prepare() and ->freeze()
- * for all devices.
- *
- * SUSPEND System is going to suspend, call ->prepare() and ->suspend()
- * for all devices.
- *
- * HIBERNATE Hibernation image has been saved, call ->prepare() and
- * ->poweroff() for all devices.
- *
- * QUIESCE Contents of main memory are going to be restored from a (loaded)
- * hibernation image, call ->prepare() and ->freeze() for all
- * devices.
- *
- * RESUME System is resuming, call ->resume() and ->complete() for all
- * devices.
- *
- * THAW Hibernation image has been created, call ->thaw() and
- * ->complete() for all devices.
- *
- * RESTORE Contents of main memory have been restored from a hibernation
- * image, call ->restore() and ->complete() for all devices.
- *
- * RECOVER Creation of a hibernation image or restoration of the main
- * memory contents from a hibernation image has failed, call
- * ->thaw() and ->complete() for all devices.
- *
- * The following PM_EVENT_ messages are defined for internal use by
- * kernel subsystems. They are never issued by the PM core.
- *
- * USER_SUSPEND Manual selective suspend was issued by userspace.
- *
- * USER_RESUME Manual selective resume was issued by userspace.
- *
- * REMOTE_WAKEUP Remote-wakeup request was received from the device.
- *
- * AUTO_SUSPEND Automatic (device idle) runtime suspend was
- * initiated by the subsystem.
- *
- * AUTO_RESUME Automatic (device needed) runtime resume was
- * requested by a driver.
- */
-
-#define PM_EVENT_INVALID (-1)
-#define PM_EVENT_ON 0x0000
-#define PM_EVENT_FREEZE 0x0001
-#define PM_EVENT_SUSPEND 0x0002
-#define PM_EVENT_HIBERNATE 0x0004
-#define PM_EVENT_QUIESCE 0x0008
-#define PM_EVENT_RESUME 0x0010
-#define PM_EVENT_THAW 0x0020
-#define PM_EVENT_RESTORE 0x0040
-#define PM_EVENT_RECOVER 0x0080
-#define PM_EVENT_USER 0x0100
-#define PM_EVENT_REMOTE 0x0200
-#define PM_EVENT_AUTO 0x0400
-
-#define PM_EVENT_SLEEP (PM_EVENT_SUSPEND | PM_EVENT_HIBERNATE)
-#define PM_EVENT_USER_SUSPEND (PM_EVENT_USER | PM_EVENT_SUSPEND)
-#define PM_EVENT_USER_RESUME (PM_EVENT_USER | PM_EVENT_RESUME)
-#define PM_EVENT_REMOTE_RESUME (PM_EVENT_REMOTE | PM_EVENT_RESUME)
-#define PM_EVENT_AUTO_SUSPEND (PM_EVENT_AUTO | PM_EVENT_SUSPEND)
-#define PM_EVENT_AUTO_RESUME (PM_EVENT_AUTO | PM_EVENT_RESUME)
-
-#define PMSG_INVALID ((struct pm_message){ .event = PM_EVENT_INVALID, })
-#define PMSG_ON ((struct pm_message){ .event = PM_EVENT_ON, })
-#define PMSG_FREEZE ((struct pm_message){ .event = PM_EVENT_FREEZE, })
-#define PMSG_QUIESCE ((struct pm_message){ .event = PM_EVENT_QUIESCE, })
-#define PMSG_SUSPEND ((struct pm_message){ .event = PM_EVENT_SUSPEND, })
-#define PMSG_HIBERNATE ((struct pm_message){ .event = PM_EVENT_HIBERNATE, })
-#define PMSG_RESUME ((struct pm_message){ .event = PM_EVENT_RESUME, })
-#define PMSG_THAW ((struct pm_message){ .event = PM_EVENT_THAW, })
-#define PMSG_RESTORE ((struct pm_message){ .event = PM_EVENT_RESTORE, })
-#define PMSG_RECOVER ((struct pm_message){ .event = PM_EVENT_RECOVER, })
-#define PMSG_USER_SUSPEND ((struct pm_message) \
- { .event = PM_EVENT_USER_SUSPEND, })
-#define PMSG_USER_RESUME ((struct pm_message) \
- { .event = PM_EVENT_USER_RESUME, })
-#define PMSG_REMOTE_RESUME ((struct pm_message) \
- { .event = PM_EVENT_REMOTE_RESUME, })
-#define PMSG_AUTO_SUSPEND ((struct pm_message) \
- { .event = PM_EVENT_AUTO_SUSPEND, })
-#define PMSG_AUTO_RESUME ((struct pm_message) \
- { .event = PM_EVENT_AUTO_RESUME, })
-
-#define PMSG_IS_AUTO(msg) (((msg).event & PM_EVENT_AUTO) != 0)
-
-/**
- * Device run-time power management status.
- *
- * These status labels are used internally by the PM core to indicate the
- * current status of a device with respect to the PM core operations. They do
- * not reflect the actual power state of the device or its status as seen by the
- * driver.
- *
- * RPM_ACTIVE Device is fully operational. Indicates that the device
- * bus type's ->runtime_resume() callback has completed
- * successfully.
- *
- * RPM_SUSPENDED Device bus type's ->runtime_suspend() callback has
- * completed successfully. The device is regarded as
- * suspended.
- *
- * RPM_RESUMING Device bus type's ->runtime_resume() callback is being
- * executed.
- *
- * RPM_SUSPENDING Device bus type's ->runtime_suspend() callback is being
- * executed.
- */
-
-enum rpm_status {
- RPM_ACTIVE = 0,
- RPM_RESUMING,
- RPM_SUSPENDED,
- RPM_SUSPENDING,
-};
-
-/**
- * Device run-time power management request types.
- *
- * RPM_REQ_NONE Do nothing.
- *
- * RPM_REQ_IDLE Run the device bus type's ->runtime_idle() callback
- *
- * RPM_REQ_SUSPEND Run the device bus type's ->runtime_suspend() callback
- *
- * RPM_REQ_AUTOSUSPEND Same as RPM_REQ_SUSPEND, but not until the device has
- * been inactive for as long as power.autosuspend_delay
- *
- * RPM_REQ_RESUME Run the device bus type's ->runtime_resume() callback
- */
-
-enum rpm_request {
- RPM_REQ_NONE = 0,
- RPM_REQ_IDLE,
- RPM_REQ_SUSPEND,
- RPM_REQ_AUTOSUSPEND,
- RPM_REQ_RESUME,
-};
-
-struct wakeup_source;
-
-struct pm_domain_data {
- struct list_head list_node;
- struct device *dev;
-};
-
-struct pm_subsys_data {
- spinlock_t lock;
- unsigned int refcount;
-#ifdef CONFIG_PM_CLK
- struct list_head clock_list;
-#endif
-#ifdef CONFIG_PM_GENERIC_DOMAINS
- struct pm_domain_data *domain_data;
-#endif
-};
-
-struct dev_pm_info {
- pm_message_t power_state;
- unsigned int can_wakeup:1;
- unsigned int async_suspend:1;
- bool is_prepared:1; /* Owned by the PM core */
- bool is_suspended:1; /* Ditto */
- bool ignore_children:1;
- spinlock_t lock;
-#ifdef CONFIG_PM_SLEEP
- struct list_head entry;
- struct completion completion;
- struct wakeup_source *wakeup;
- bool wakeup_path:1;
-#else
- unsigned int should_wakeup:1;
-#endif
-#ifdef CONFIG_PM_RUNTIME
- struct timer_list suspend_timer;
- unsigned long timer_expires;
- struct work_struct work;
- wait_queue_head_t wait_queue;
- atomic_t usage_count;
- atomic_t child_count;
- unsigned int disable_depth:3;
- unsigned int idle_notification:1;
- unsigned int request_pending:1;
- unsigned int deferred_resume:1;
- unsigned int run_wake:1;
- unsigned int runtime_auto:1;
- unsigned int no_callbacks:1;
- unsigned int irq_safe:1;
- unsigned int use_autosuspend:1;
- unsigned int timer_autosuspends:1;
- enum rpm_request request;
- enum rpm_status runtime_status;
- int runtime_error;
- int autosuspend_delay;
- unsigned long last_busy;
- unsigned long active_jiffies;
- unsigned long suspended_jiffies;
- unsigned long accounting_timestamp;
- struct dev_pm_qos_request *pq_req;
-#endif
- struct pm_subsys_data *subsys_data; /* Owned by the subsystem. */
- struct pm_qos_constraints *constraints;
-};
-
-extern void update_pm_runtime_accounting(struct device *dev);
-extern int dev_pm_get_subsys_data(struct device *dev);
-extern int dev_pm_put_subsys_data(struct device *dev);
-
-/*
- * Power domains provide callbacks that are executed during system suspend,
- * hibernation, system resume and during runtime PM transitions along with
- * subsystem-level and driver-level callbacks.
- */
-struct dev_pm_domain {
- struct dev_pm_ops ops;
-};
-
-/*
- * The PM_EVENT_ messages are also used by drivers implementing the legacy
- * suspend framework, based on the ->suspend() and ->resume() callbacks common
- * for suspend and hibernation transitions, according to the rules below.
- */
-
-/* Necessary, because several drivers use PM_EVENT_PRETHAW */
-#define PM_EVENT_PRETHAW PM_EVENT_QUIESCE
-
-/*
- * One transition is triggered by resume(), after a suspend() call; the
- * message is implicit:
- *
- * ON Driver starts working again, responding to hardware events
- * and software requests. The hardware may have gone through
- * a power-off reset, or it may have maintained state from the
- * previous suspend() which the driver will rely on while
- * resuming. On most platforms, there are no restrictions on
- * availability of resources like clocks during resume().
- *
- * Other transitions are triggered by messages sent using suspend(). All
- * these transitions quiesce the driver, so that I/O queues are inactive.
- * That commonly entails turning off IRQs and DMA; there may be rules
- * about how to quiesce that are specific to the bus or the device's type.
- * (For example, network drivers mark the link state.) Other details may
- * differ according to the message:
- *
- * SUSPEND Quiesce, enter a low power device state appropriate for
- * the upcoming system state (such as PCI_D3hot), and enable
- * wakeup events as appropriate.
- *
- * HIBERNATE Enter a low power device state appropriate for the hibernation
- * state (eg. ACPI S4) and enable wakeup events as appropriate.
- *
- * FREEZE Quiesce operations so that a consistent image can be saved;
- * but do NOT otherwise enter a low power device state, and do
- * NOT emit system wakeup events.
- *
- * PRETHAW Quiesce as if for FREEZE; additionally, prepare for restoring
- * the system from a snapshot taken after an earlier FREEZE.
- * Some drivers will need to reset their hardware state instead
- * of preserving it, to ensure that it's never mistaken for the
- * state which that earlier snapshot had set up.
- *
- * A minimally power-aware driver treats all messages as SUSPEND, fully
- * reinitializes its device during resume() -- whether or not it was reset
- * during the suspend/resume cycle -- and can't issue wakeup events.
- *
- * More power-aware drivers may also use low power states at runtime as
- * well as during system sleep states like PM_SUSPEND_STANDBY. They may
- * be able to use wakeup events to exit from runtime low-power states,
- * or from system low-power states such as standby or suspend-to-RAM.
- */
-
-#ifdef CONFIG_PM_SLEEP
-extern void device_pm_lock(void);
-extern void dpm_resume_start(pm_message_t state);
-extern void dpm_resume_end(pm_message_t state);
-extern void dpm_resume(pm_message_t state);
-extern void dpm_complete(pm_message_t state);
-
-extern void device_pm_unlock(void);
-extern int dpm_suspend_end(pm_message_t state);
-extern int dpm_suspend_start(pm_message_t state);
-extern int dpm_suspend(pm_message_t state);
-extern int dpm_prepare(pm_message_t state);
-
-extern void __suspend_report_result(const char *function, void *fn, int ret);
-
-#define suspend_report_result(fn, ret) \
- do { \
- __suspend_report_result(__func__, fn, ret); \
- } while (0)
-
-extern int device_pm_wait_for_dev(struct device *sub, struct device *dev);
-
-extern int pm_generic_prepare(struct device *dev);
-extern int pm_generic_suspend_late(struct device *dev);
-extern int pm_generic_suspend_noirq(struct device *dev);
-extern int pm_generic_suspend(struct device *dev);
-extern int pm_generic_resume_early(struct device *dev);
-extern int pm_generic_resume_noirq(struct device *dev);
-extern int pm_generic_resume(struct device *dev);
-extern int pm_generic_freeze_noirq(struct device *dev);
-extern int pm_generic_freeze_late(struct device *dev);
-extern int pm_generic_freeze(struct device *dev);
-extern int pm_generic_thaw_noirq(struct device *dev);
-extern int pm_generic_thaw_early(struct device *dev);
-extern int pm_generic_thaw(struct device *dev);
-extern int pm_generic_restore_noirq(struct device *dev);
-extern int pm_generic_restore_early(struct device *dev);
-extern int pm_generic_restore(struct device *dev);
-extern int pm_generic_poweroff_noirq(struct device *dev);
-extern int pm_generic_poweroff_late(struct device *dev);
-extern int pm_generic_poweroff(struct device *dev);
-extern void pm_generic_complete(struct device *dev);
-
-#else /* !CONFIG_PM_SLEEP */
-
-#define device_pm_lock() do {} while (0)
-#define device_pm_unlock() do {} while (0)
-
-static inline int dpm_suspend_start(pm_message_t state)
-{
- return 0;
-}
-
-#define suspend_report_result(fn, ret) do {} while (0)
-
-static inline int device_pm_wait_for_dev(struct device *a, struct device *b)
-{
- return 0;
-}
-
-#define pm_generic_prepare NULL
-#define pm_generic_suspend NULL
-#define pm_generic_resume NULL
-#define pm_generic_freeze NULL
-#define pm_generic_thaw NULL
-#define pm_generic_restore NULL
-#define pm_generic_poweroff NULL
-#define pm_generic_complete NULL
-#endif /* !CONFIG_PM_SLEEP */
-
-/* How to reorder dpm_list after device_move() */
-enum dpm_order {
- DPM_ORDER_NONE,
- DPM_ORDER_DEV_AFTER_PARENT,
- DPM_ORDER_PARENT_BEFORE_DEV,
- DPM_ORDER_DEV_LAST,
-};
-
-#endif /* _LINUX_PM_H */
diff --git a/ANDROID_3.4.5/include/linux/pm_clock.h b/ANDROID_3.4.5/include/linux/pm_clock.h
deleted file mode 100644
index 8348866e..00000000
--- a/ANDROID_3.4.5/include/linux/pm_clock.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * pm_clock.h - Definitions and headers related to device clocks.
- *
- * Copyright (C) 2011 Rafael J. Wysocki <rjw@sisk.pl>, Renesas Electronics Corp.
- *
- * This file is released under the GPLv2.
- */
-
-#ifndef _LINUX_PM_CLOCK_H
-#define _LINUX_PM_CLOCK_H
-
-#include <linux/device.h>
-#include <linux/notifier.h>
-
-struct pm_clk_notifier_block {
- struct notifier_block nb;
- struct dev_pm_domain *pm_domain;
- char *con_ids[];
-};
-
-#ifdef CONFIG_PM_CLK
-static inline bool pm_clk_no_clocks(struct device *dev)
-{
- return dev && dev->power.subsys_data
- && list_empty(&dev->power.subsys_data->clock_list);
-}
-
-extern void pm_clk_init(struct device *dev);
-extern int pm_clk_create(struct device *dev);
-extern void pm_clk_destroy(struct device *dev);
-extern int pm_clk_add(struct device *dev, const char *con_id);
-extern void pm_clk_remove(struct device *dev, const char *con_id);
-extern int pm_clk_suspend(struct device *dev);
-extern int pm_clk_resume(struct device *dev);
-#else
-static inline bool pm_clk_no_clocks(struct device *dev)
-{
- return true;
-}
-static inline void pm_clk_init(struct device *dev)
-{
-}
-static inline int pm_clk_create(struct device *dev)
-{
- return -EINVAL;
-}
-static inline void pm_clk_destroy(struct device *dev)
-{
-}
-static inline int pm_clk_add(struct device *dev, const char *con_id)
-{
- return -EINVAL;
-}
-static inline void pm_clk_remove(struct device *dev, const char *con_id)
-{
-}
-#define pm_clk_suspend NULL
-#define pm_clk_resume NULL
-#endif
-
-#ifdef CONFIG_HAVE_CLK
-extern void pm_clk_add_notifier(struct bus_type *bus,
- struct pm_clk_notifier_block *clknb);
-#else
-static inline void pm_clk_add_notifier(struct bus_type *bus,
- struct pm_clk_notifier_block *clknb)
-{
-}
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/pm_domain.h b/ANDROID_3.4.5/include/linux/pm_domain.h
deleted file mode 100644
index 30f794eb..00000000
--- a/ANDROID_3.4.5/include/linux/pm_domain.h
+++ /dev/null
@@ -1,243 +0,0 @@
-/*
- * pm_domain.h - Definitions and headers related to device power domains.
- *
- * Copyright (C) 2011 Rafael J. Wysocki <rjw@sisk.pl>, Renesas Electronics Corp.
- *
- * This file is released under the GPLv2.
- */
-
-#ifndef _LINUX_PM_DOMAIN_H
-#define _LINUX_PM_DOMAIN_H
-
-#include <linux/device.h>
-#include <linux/mutex.h>
-#include <linux/pm.h>
-#include <linux/err.h>
-#include <linux/of.h>
-#include <linux/notifier.h>
-
-enum gpd_status {
- GPD_STATE_ACTIVE = 0, /* PM domain is active */
- GPD_STATE_WAIT_MASTER, /* PM domain's master is being waited for */
- GPD_STATE_BUSY, /* Something is happening to the PM domain */
- GPD_STATE_REPEAT, /* Power off in progress, to be repeated */
- GPD_STATE_POWER_OFF, /* PM domain is off */
-};
-
-struct dev_power_governor {
- bool (*power_down_ok)(struct dev_pm_domain *domain);
- bool (*stop_ok)(struct device *dev);
-};
-
-struct gpd_dev_ops {
- int (*start)(struct device *dev);
- int (*stop)(struct device *dev);
- int (*save_state)(struct device *dev);
- int (*restore_state)(struct device *dev);
- int (*suspend)(struct device *dev);
- int (*suspend_late)(struct device *dev);
- int (*resume_early)(struct device *dev);
- int (*resume)(struct device *dev);
- int (*freeze)(struct device *dev);
- int (*freeze_late)(struct device *dev);
- int (*thaw_early)(struct device *dev);
- int (*thaw)(struct device *dev);
- bool (*active_wakeup)(struct device *dev);
-};
-
-struct generic_pm_domain {
- struct dev_pm_domain domain; /* PM domain operations */
- struct list_head gpd_list_node; /* Node in the global PM domains list */
- struct list_head master_links; /* Links with PM domain as a master */
- struct list_head slave_links; /* Links with PM domain as a slave */
- struct list_head dev_list; /* List of devices */
- struct mutex lock;
- struct dev_power_governor *gov;
- struct work_struct power_off_work;
- char *name;
- unsigned int in_progress; /* Number of devices being suspended now */
- atomic_t sd_count; /* Number of subdomains with power "on" */
- enum gpd_status status; /* Current state of the domain */
- wait_queue_head_t status_wait_queue;
- struct task_struct *poweroff_task; /* Powering off task */
- unsigned int resume_count; /* Number of devices being resumed */
- unsigned int device_count; /* Number of devices */
- unsigned int suspended_count; /* System suspend device counter */
- unsigned int prepared_count; /* Suspend counter of prepared devices */
- bool suspend_power_off; /* Power status before system suspend */
- bool dev_irq_safe; /* Device callbacks are IRQ-safe */
- int (*power_off)(struct generic_pm_domain *domain);
- s64 power_off_latency_ns;
- int (*power_on)(struct generic_pm_domain *domain);
- s64 power_on_latency_ns;
- struct gpd_dev_ops dev_ops;
- s64 max_off_time_ns; /* Maximum allowed "suspended" time. */
- bool max_off_time_changed;
- bool cached_power_down_ok;
- struct device_node *of_node; /* Node in device tree */
-};
-
-static inline struct generic_pm_domain *pd_to_genpd(struct dev_pm_domain *pd)
-{
- return container_of(pd, struct generic_pm_domain, domain);
-}
-
-struct gpd_link {
- struct generic_pm_domain *master;
- struct list_head master_node;
- struct generic_pm_domain *slave;
- struct list_head slave_node;
-};
-
-struct gpd_timing_data {
- s64 stop_latency_ns;
- s64 start_latency_ns;
- s64 save_state_latency_ns;
- s64 restore_state_latency_ns;
- s64 effective_constraint_ns;
- bool constraint_changed;
- bool cached_stop_ok;
-};
-
-struct generic_pm_domain_data {
- struct pm_domain_data base;
- struct gpd_dev_ops ops;
- struct gpd_timing_data td;
- struct notifier_block nb;
- struct mutex lock;
- bool need_restore;
- bool always_on;
-};
-
-#ifdef CONFIG_PM_GENERIC_DOMAINS
-static inline struct generic_pm_domain_data *to_gpd_data(struct pm_domain_data *pdd)
-{
- return container_of(pdd, struct generic_pm_domain_data, base);
-}
-
-static inline struct generic_pm_domain_data *dev_gpd_data(struct device *dev)
-{
- return to_gpd_data(dev->power.subsys_data->domain_data);
-}
-
-extern struct dev_power_governor simple_qos_governor;
-
-extern struct generic_pm_domain *dev_to_genpd(struct device *dev);
-extern int __pm_genpd_add_device(struct generic_pm_domain *genpd,
- struct device *dev,
- struct gpd_timing_data *td);
-
-extern int __pm_genpd_of_add_device(struct device_node *genpd_node,
- struct device *dev,
- struct gpd_timing_data *td);
-
-static inline int pm_genpd_add_device(struct generic_pm_domain *genpd,
- struct device *dev)
-{
- return __pm_genpd_add_device(genpd, dev, NULL);
-}
-
-static inline int pm_genpd_of_add_device(struct device_node *genpd_node,
- struct device *dev)
-{
- return __pm_genpd_of_add_device(genpd_node, dev, NULL);
-}
-
-extern int pm_genpd_remove_device(struct generic_pm_domain *genpd,
- struct device *dev);
-extern void pm_genpd_dev_always_on(struct device *dev, bool val);
-extern void pm_genpd_dev_need_restore(struct device *dev, bool val);
-extern int pm_genpd_add_subdomain(struct generic_pm_domain *genpd,
- struct generic_pm_domain *new_subdomain);
-extern int pm_genpd_remove_subdomain(struct generic_pm_domain *genpd,
- struct generic_pm_domain *target);
-extern int pm_genpd_add_callbacks(struct device *dev,
- struct gpd_dev_ops *ops,
- struct gpd_timing_data *td);
-extern int __pm_genpd_remove_callbacks(struct device *dev, bool clear_td);
-extern void pm_genpd_init(struct generic_pm_domain *genpd,
- struct dev_power_governor *gov, bool is_off);
-
-extern int pm_genpd_poweron(struct generic_pm_domain *genpd);
-
-extern bool default_stop_ok(struct device *dev);
-
-extern struct dev_power_governor pm_domain_always_on_gov;
-#else
-
-static inline struct generic_pm_domain_data *dev_gpd_data(struct device *dev)
-{
- return ERR_PTR(-ENOSYS);
-}
-static inline struct generic_pm_domain *dev_to_genpd(struct device *dev)
-{
- return ERR_PTR(-ENOSYS);
-}
-static inline int __pm_genpd_add_device(struct generic_pm_domain *genpd,
- struct device *dev,
- struct gpd_timing_data *td)
-{
- return -ENOSYS;
-}
-static inline int pm_genpd_add_device(struct generic_pm_domain *genpd,
- struct device *dev)
-{
- return -ENOSYS;
-}
-static inline int pm_genpd_remove_device(struct generic_pm_domain *genpd,
- struct device *dev)
-{
- return -ENOSYS;
-}
-static inline void pm_genpd_dev_always_on(struct device *dev, bool val) {}
-static inline void pm_genpd_dev_need_restore(struct device *dev, bool val) {}
-static inline int pm_genpd_add_subdomain(struct generic_pm_domain *genpd,
- struct generic_pm_domain *new_sd)
-{
- return -ENOSYS;
-}
-static inline int pm_genpd_remove_subdomain(struct generic_pm_domain *genpd,
- struct generic_pm_domain *target)
-{
- return -ENOSYS;
-}
-static inline int pm_genpd_add_callbacks(struct device *dev,
- struct gpd_dev_ops *ops,
- struct gpd_timing_data *td)
-{
- return -ENOSYS;
-}
-static inline int __pm_genpd_remove_callbacks(struct device *dev, bool clear_td)
-{
- return -ENOSYS;
-}
-static inline void pm_genpd_init(struct generic_pm_domain *genpd,
- struct dev_power_governor *gov, bool is_off)
-{
-}
-static inline int pm_genpd_poweron(struct generic_pm_domain *genpd)
-{
- return -ENOSYS;
-}
-static inline bool default_stop_ok(struct device *dev)
-{
- return false;
-}
-#define simple_qos_governor NULL
-#define pm_domain_always_on_gov NULL
-#endif
-
-static inline int pm_genpd_remove_callbacks(struct device *dev)
-{
- return __pm_genpd_remove_callbacks(dev, true);
-}
-
-#ifdef CONFIG_PM_GENERIC_DOMAINS_RUNTIME
-extern void genpd_queue_power_off_work(struct generic_pm_domain *genpd);
-extern void pm_genpd_poweroff_unused(void);
-#else
-static inline void genpd_queue_power_off_work(struct generic_pm_domain *gpd) {}
-static inline void pm_genpd_poweroff_unused(void) {}
-#endif
-
-#endif /* _LINUX_PM_DOMAIN_H */
diff --git a/ANDROID_3.4.5/include/linux/pm_qos.h b/ANDROID_3.4.5/include/linux/pm_qos.h
deleted file mode 100644
index 233149cb..00000000
--- a/ANDROID_3.4.5/include/linux/pm_qos.h
+++ /dev/null
@@ -1,153 +0,0 @@
-#ifndef _LINUX_PM_QOS_H
-#define _LINUX_PM_QOS_H
-/* interface for the pm_qos_power infrastructure of the linux kernel.
- *
- * Mark Gross <mgross@linux.intel.com>
- */
-#include <linux/plist.h>
-#include <linux/notifier.h>
-#include <linux/miscdevice.h>
-#include <linux/device.h>
-#include <linux/workqueue.h>
-
-enum {
- PM_QOS_RESERVED = 0,
- PM_QOS_CPU_DMA_LATENCY,
- PM_QOS_NETWORK_LATENCY,
- PM_QOS_NETWORK_THROUGHPUT,
-
- /* insert new class ID */
- PM_QOS_NUM_CLASSES,
-};
-
-#define PM_QOS_DEFAULT_VALUE -1
-
-#define PM_QOS_CPU_DMA_LAT_DEFAULT_VALUE (2000 * USEC_PER_SEC)
-#define PM_QOS_NETWORK_LAT_DEFAULT_VALUE (2000 * USEC_PER_SEC)
-#define PM_QOS_NETWORK_THROUGHPUT_DEFAULT_VALUE 0
-#define PM_QOS_DEV_LAT_DEFAULT_VALUE 0
-
-struct pm_qos_request {
- struct plist_node node;
- int pm_qos_class;
- struct delayed_work work; /* for pm_qos_update_request_timeout */
-};
-
-struct dev_pm_qos_request {
- struct plist_node node;
- struct device *dev;
-};
-
-enum pm_qos_type {
- PM_QOS_UNITIALIZED,
- PM_QOS_MAX, /* return the largest value */
- PM_QOS_MIN /* return the smallest value */
-};
-
-/*
- * Note: The lockless read path depends on the CPU accessing
- * target_value atomically. Atomic access is only guaranteed on all CPU
- * types linux supports for 32 bit quantites
- */
-struct pm_qos_constraints {
- struct plist_head list;
- s32 target_value; /* Do not change to 64 bit */
- s32 default_value;
- enum pm_qos_type type;
- struct blocking_notifier_head *notifiers;
-};
-
-/* Action requested to pm_qos_update_target */
-enum pm_qos_req_action {
- PM_QOS_ADD_REQ, /* Add a new request */
- PM_QOS_UPDATE_REQ, /* Update an existing request */
- PM_QOS_REMOVE_REQ /* Remove an existing request */
-};
-
-static inline int dev_pm_qos_request_active(struct dev_pm_qos_request *req)
-{
- return req->dev != 0;
-}
-
-int pm_qos_update_target(struct pm_qos_constraints *c, struct plist_node *node,
- enum pm_qos_req_action action, int value);
-void pm_qos_add_request(struct pm_qos_request *req, int pm_qos_class,
- s32 value);
-void pm_qos_update_request(struct pm_qos_request *req,
- s32 new_value);
-void pm_qos_update_request_timeout(struct pm_qos_request *req,
- s32 new_value, unsigned long timeout_us);
-void pm_qos_remove_request(struct pm_qos_request *req);
-
-int pm_qos_request(int pm_qos_class);
-int pm_qos_add_notifier(int pm_qos_class, struct notifier_block *notifier);
-int pm_qos_remove_notifier(int pm_qos_class, struct notifier_block *notifier);
-int pm_qos_request_active(struct pm_qos_request *req);
-s32 pm_qos_read_value(struct pm_qos_constraints *c);
-
-#ifdef CONFIG_PM
-s32 __dev_pm_qos_read_value(struct device *dev);
-s32 dev_pm_qos_read_value(struct device *dev);
-int dev_pm_qos_add_request(struct device *dev, struct dev_pm_qos_request *req,
- s32 value);
-int dev_pm_qos_update_request(struct dev_pm_qos_request *req, s32 new_value);
-int dev_pm_qos_remove_request(struct dev_pm_qos_request *req);
-int dev_pm_qos_add_notifier(struct device *dev,
- struct notifier_block *notifier);
-int dev_pm_qos_remove_notifier(struct device *dev,
- struct notifier_block *notifier);
-int dev_pm_qos_add_global_notifier(struct notifier_block *notifier);
-int dev_pm_qos_remove_global_notifier(struct notifier_block *notifier);
-void dev_pm_qos_constraints_init(struct device *dev);
-void dev_pm_qos_constraints_destroy(struct device *dev);
-int dev_pm_qos_add_ancestor_request(struct device *dev,
- struct dev_pm_qos_request *req, s32 value);
-#else
-static inline s32 __dev_pm_qos_read_value(struct device *dev)
- { return 0; }
-static inline s32 dev_pm_qos_read_value(struct device *dev)
- { return 0; }
-static inline int dev_pm_qos_add_request(struct device *dev,
- struct dev_pm_qos_request *req,
- s32 value)
- { return 0; }
-static inline int dev_pm_qos_update_request(struct dev_pm_qos_request *req,
- s32 new_value)
- { return 0; }
-static inline int dev_pm_qos_remove_request(struct dev_pm_qos_request *req)
- { return 0; }
-static inline int dev_pm_qos_add_notifier(struct device *dev,
- struct notifier_block *notifier)
- { return 0; }
-static inline int dev_pm_qos_remove_notifier(struct device *dev,
- struct notifier_block *notifier)
- { return 0; }
-static inline int dev_pm_qos_add_global_notifier(
- struct notifier_block *notifier)
- { return 0; }
-static inline int dev_pm_qos_remove_global_notifier(
- struct notifier_block *notifier)
- { return 0; }
-static inline void dev_pm_qos_constraints_init(struct device *dev)
-{
- dev->power.power_state = PMSG_ON;
-}
-static inline void dev_pm_qos_constraints_destroy(struct device *dev)
-{
- dev->power.power_state = PMSG_INVALID;
-}
-static inline int dev_pm_qos_add_ancestor_request(struct device *dev,
- struct dev_pm_qos_request *req, s32 value)
- { return 0; }
-#endif
-
-#ifdef CONFIG_PM_RUNTIME
-int dev_pm_qos_expose_latency_limit(struct device *dev, s32 value);
-void dev_pm_qos_hide_latency_limit(struct device *dev);
-#else
-static inline int dev_pm_qos_expose_latency_limit(struct device *dev, s32 value)
- { return 0; }
-static inline void dev_pm_qos_hide_latency_limit(struct device *dev) {}
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/pm_runtime.h b/ANDROID_3.4.5/include/linux/pm_runtime.h
deleted file mode 100644
index f271860c..00000000
--- a/ANDROID_3.4.5/include/linux/pm_runtime.h
+++ /dev/null
@@ -1,251 +0,0 @@
-/*
- * pm_runtime.h - Device run-time power management helper functions.
- *
- * Copyright (C) 2009 Rafael J. Wysocki <rjw@sisk.pl>
- *
- * This file is released under the GPLv2.
- */
-
-#ifndef _LINUX_PM_RUNTIME_H
-#define _LINUX_PM_RUNTIME_H
-
-#include <linux/device.h>
-#include <linux/notifier.h>
-#include <linux/pm.h>
-
-#include <linux/jiffies.h>
-
-/* Runtime PM flag argument bits */
-#define RPM_ASYNC 0x01 /* Request is asynchronous */
-#define RPM_NOWAIT 0x02 /* Don't wait for concurrent
- state change */
-#define RPM_GET_PUT 0x04 /* Increment/decrement the
- usage_count */
-#define RPM_AUTO 0x08 /* Use autosuspend_delay */
-
-#ifdef CONFIG_PM_RUNTIME
-
-extern struct workqueue_struct *pm_wq;
-
-extern int __pm_runtime_idle(struct device *dev, int rpmflags);
-extern int __pm_runtime_suspend(struct device *dev, int rpmflags);
-extern int __pm_runtime_resume(struct device *dev, int rpmflags);
-extern int pm_schedule_suspend(struct device *dev, unsigned int delay);
-extern int __pm_runtime_set_status(struct device *dev, unsigned int status);
-extern int pm_runtime_barrier(struct device *dev);
-extern void pm_runtime_enable(struct device *dev);
-extern void __pm_runtime_disable(struct device *dev, bool check_resume);
-extern void pm_runtime_allow(struct device *dev);
-extern void pm_runtime_forbid(struct device *dev);
-extern int pm_generic_runtime_idle(struct device *dev);
-extern int pm_generic_runtime_suspend(struct device *dev);
-extern int pm_generic_runtime_resume(struct device *dev);
-extern void pm_runtime_no_callbacks(struct device *dev);
-extern void pm_runtime_irq_safe(struct device *dev);
-extern void __pm_runtime_use_autosuspend(struct device *dev, bool use);
-extern void pm_runtime_set_autosuspend_delay(struct device *dev, int delay);
-extern unsigned long pm_runtime_autosuspend_expiration(struct device *dev);
-extern void pm_runtime_update_max_time_suspended(struct device *dev,
- s64 delta_ns);
-
-static inline bool pm_children_suspended(struct device *dev)
-{
- return dev->power.ignore_children
- || !atomic_read(&dev->power.child_count);
-}
-
-static inline void pm_runtime_get_noresume(struct device *dev)
-{
- atomic_inc(&dev->power.usage_count);
-}
-
-static inline void pm_runtime_put_noidle(struct device *dev)
-{
- atomic_add_unless(&dev->power.usage_count, -1, 0);
-}
-
-static inline bool device_run_wake(struct device *dev)
-{
- return dev->power.run_wake;
-}
-
-static inline void device_set_run_wake(struct device *dev, bool enable)
-{
- dev->power.run_wake = enable;
-}
-
-static inline bool pm_runtime_suspended(struct device *dev)
-{
- return dev->power.runtime_status == RPM_SUSPENDED
- && !dev->power.disable_depth;
-}
-
-static inline bool pm_runtime_status_suspended(struct device *dev)
-{
- return dev->power.runtime_status == RPM_SUSPENDED;
-}
-
-static inline bool pm_runtime_enabled(struct device *dev)
-{
- return !dev->power.disable_depth;
-}
-
-static inline bool pm_runtime_callbacks_present(struct device *dev)
-{
- return !dev->power.no_callbacks;
-}
-
-static inline void pm_runtime_mark_last_busy(struct device *dev)
-{
- ACCESS_ONCE(dev->power.last_busy) = jiffies;
-}
-
-#else /* !CONFIG_PM_RUNTIME */
-
-static inline int __pm_runtime_idle(struct device *dev, int rpmflags)
-{
- return -ENOSYS;
-}
-static inline int __pm_runtime_suspend(struct device *dev, int rpmflags)
-{
- return -ENOSYS;
-}
-static inline int __pm_runtime_resume(struct device *dev, int rpmflags)
-{
- return 1;
-}
-static inline int pm_schedule_suspend(struct device *dev, unsigned int delay)
-{
- return -ENOSYS;
-}
-static inline int __pm_runtime_set_status(struct device *dev,
- unsigned int status) { return 0; }
-static inline int pm_runtime_barrier(struct device *dev) { return 0; }
-static inline void pm_runtime_enable(struct device *dev) {}
-static inline void __pm_runtime_disable(struct device *dev, bool c) {}
-static inline void pm_runtime_allow(struct device *dev) {}
-static inline void pm_runtime_forbid(struct device *dev) {}
-
-static inline bool pm_children_suspended(struct device *dev) { return false; }
-static inline void pm_runtime_get_noresume(struct device *dev) {}
-static inline void pm_runtime_put_noidle(struct device *dev) {}
-static inline bool device_run_wake(struct device *dev) { return false; }
-static inline void device_set_run_wake(struct device *dev, bool enable) {}
-static inline bool pm_runtime_suspended(struct device *dev) { return false; }
-static inline bool pm_runtime_status_suspended(struct device *dev) { return false; }
-static inline bool pm_runtime_enabled(struct device *dev) { return false; }
-
-static inline int pm_generic_runtime_idle(struct device *dev) { return 0; }
-static inline int pm_generic_runtime_suspend(struct device *dev) { return 0; }
-static inline int pm_generic_runtime_resume(struct device *dev) { return 0; }
-static inline void pm_runtime_no_callbacks(struct device *dev) {}
-static inline void pm_runtime_irq_safe(struct device *dev) {}
-
-static inline bool pm_runtime_callbacks_present(struct device *dev) { return false; }
-static inline void pm_runtime_mark_last_busy(struct device *dev) {}
-static inline void __pm_runtime_use_autosuspend(struct device *dev,
- bool use) {}
-static inline void pm_runtime_set_autosuspend_delay(struct device *dev,
- int delay) {}
-static inline unsigned long pm_runtime_autosuspend_expiration(
- struct device *dev) { return 0; }
-
-#endif /* !CONFIG_PM_RUNTIME */
-
-static inline int pm_runtime_idle(struct device *dev)
-{
- return __pm_runtime_idle(dev, 0);
-}
-
-static inline int pm_runtime_suspend(struct device *dev)
-{
- return __pm_runtime_suspend(dev, 0);
-}
-
-static inline int pm_runtime_autosuspend(struct device *dev)
-{
- return __pm_runtime_suspend(dev, RPM_AUTO);
-}
-
-static inline int pm_runtime_resume(struct device *dev)
-{
- return __pm_runtime_resume(dev, 0);
-}
-
-static inline int pm_request_idle(struct device *dev)
-{
- return __pm_runtime_idle(dev, RPM_ASYNC);
-}
-
-static inline int pm_request_resume(struct device *dev)
-{
- return __pm_runtime_resume(dev, RPM_ASYNC);
-}
-
-static inline int pm_request_autosuspend(struct device *dev)
-{
- return __pm_runtime_suspend(dev, RPM_ASYNC | RPM_AUTO);
-}
-
-static inline int pm_runtime_get(struct device *dev)
-{
- return __pm_runtime_resume(dev, RPM_GET_PUT | RPM_ASYNC);
-}
-
-static inline int pm_runtime_get_sync(struct device *dev)
-{
- return __pm_runtime_resume(dev, RPM_GET_PUT);
-}
-
-static inline int pm_runtime_put(struct device *dev)
-{
- return __pm_runtime_idle(dev, RPM_GET_PUT | RPM_ASYNC);
-}
-
-static inline int pm_runtime_put_autosuspend(struct device *dev)
-{
- return __pm_runtime_suspend(dev,
- RPM_GET_PUT | RPM_ASYNC | RPM_AUTO);
-}
-
-static inline int pm_runtime_put_sync(struct device *dev)
-{
- return __pm_runtime_idle(dev, RPM_GET_PUT);
-}
-
-static inline int pm_runtime_put_sync_suspend(struct device *dev)
-{
- return __pm_runtime_suspend(dev, RPM_GET_PUT);
-}
-
-static inline int pm_runtime_put_sync_autosuspend(struct device *dev)
-{
- return __pm_runtime_suspend(dev, RPM_GET_PUT | RPM_AUTO);
-}
-
-static inline int pm_runtime_set_active(struct device *dev)
-{
- return __pm_runtime_set_status(dev, RPM_ACTIVE);
-}
-
-static inline void pm_runtime_set_suspended(struct device *dev)
-{
- __pm_runtime_set_status(dev, RPM_SUSPENDED);
-}
-
-static inline void pm_runtime_disable(struct device *dev)
-{
- __pm_runtime_disable(dev, true);
-}
-
-static inline void pm_runtime_use_autosuspend(struct device *dev)
-{
- __pm_runtime_use_autosuspend(dev, true);
-}
-
-static inline void pm_runtime_dont_use_autosuspend(struct device *dev)
-{
- __pm_runtime_use_autosuspend(dev, false);
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/pm_wakeup.h b/ANDROID_3.4.5/include/linux/pm_wakeup.h
deleted file mode 100644
index 569781fa..00000000
--- a/ANDROID_3.4.5/include/linux/pm_wakeup.h
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
- * pm_wakeup.h - Power management wakeup interface
- *
- * Copyright (C) 2008 Alan Stern
- * Copyright (C) 2010 Rafael J. Wysocki, Novell Inc.
- *
- * 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
- */
-
-#ifndef _LINUX_PM_WAKEUP_H
-#define _LINUX_PM_WAKEUP_H
-
-#ifndef _DEVICE_H_
-# error "please don't include this file directly"
-#endif
-
-#include <linux/types.h>
-
-/**
- * struct wakeup_source - Representation of wakeup sources
- *
- * @total_time: Total time this wakeup source has been active.
- * @max_time: Maximum time this wakeup source has been continuously active.
- * @last_time: Monotonic clock when the wakeup source's was touched last time.
- * @prevent_sleep_time: Total time this source has been preventing autosleep.
- * @event_count: Number of signaled wakeup events.
- * @active_count: Number of times the wakeup sorce was activated.
- * @relax_count: Number of times the wakeup sorce was deactivated.
- * @expire_count: Number of times the wakeup source's timeout has expired.
- * @wakeup_count: Number of times the wakeup source might abort suspend.
- * @active: Status of the wakeup source.
- * @has_timeout: The wakeup source has been activated with a timeout.
- */
-struct wakeup_source {
- const char *name;
- struct list_head entry;
- spinlock_t lock;
- struct timer_list timer;
- unsigned long timer_expires;
- ktime_t total_time;
- ktime_t max_time;
- ktime_t last_time;
- ktime_t start_prevent_time;
- ktime_t prevent_sleep_time;
- unsigned long event_count;
- unsigned long active_count;
- unsigned long relax_count;
- unsigned long expire_count;
- unsigned long wakeup_count;
- bool active:1;
- bool autosleep_enabled:1;
-};
-
-#ifdef CONFIG_PM_SLEEP
-
-/*
- * Changes to device_may_wakeup take effect on the next pm state change.
- */
-
-static inline bool device_can_wakeup(struct device *dev)
-{
- return dev->power.can_wakeup;
-}
-
-static inline bool device_may_wakeup(struct device *dev)
-{
- return dev->power.can_wakeup && !!dev->power.wakeup;
-}
-
-/* drivers/base/power/wakeup.c */
-extern void wakeup_source_prepare(struct wakeup_source *ws, const char *name);
-extern struct wakeup_source *wakeup_source_create(const char *name);
-extern void wakeup_source_drop(struct wakeup_source *ws);
-extern void wakeup_source_destroy(struct wakeup_source *ws);
-extern void wakeup_source_add(struct wakeup_source *ws);
-extern void wakeup_source_remove(struct wakeup_source *ws);
-extern struct wakeup_source *wakeup_source_register(const char *name);
-extern void wakeup_source_unregister(struct wakeup_source *ws);
-extern int device_wakeup_enable(struct device *dev);
-extern int device_wakeup_disable(struct device *dev);
-extern void device_set_wakeup_capable(struct device *dev, bool capable);
-extern int device_init_wakeup(struct device *dev, bool val);
-extern int device_set_wakeup_enable(struct device *dev, bool enable);
-extern void __pm_stay_awake(struct wakeup_source *ws);
-extern void pm_stay_awake(struct device *dev);
-extern void __pm_relax(struct wakeup_source *ws);
-extern void pm_relax(struct device *dev);
-extern void __pm_wakeup_event(struct wakeup_source *ws, unsigned int msec);
-extern void pm_wakeup_event(struct device *dev, unsigned int msec);
-
-#else /* !CONFIG_PM_SLEEP */
-
-static inline void device_set_wakeup_capable(struct device *dev, bool capable)
-{
- dev->power.can_wakeup = capable;
-}
-
-static inline bool device_can_wakeup(struct device *dev)
-{
- return dev->power.can_wakeup;
-}
-
-static inline void wakeup_source_prepare(struct wakeup_source *ws,
- const char *name) {}
-
-static inline struct wakeup_source *wakeup_source_create(const char *name)
-{
- return NULL;
-}
-
-static inline void wakeup_source_drop(struct wakeup_source *ws) {}
-
-static inline void wakeup_source_destroy(struct wakeup_source *ws) {}
-
-static inline void wakeup_source_add(struct wakeup_source *ws) {}
-
-static inline void wakeup_source_remove(struct wakeup_source *ws) {}
-
-static inline struct wakeup_source *wakeup_source_register(const char *name)
-{
- return NULL;
-}
-
-static inline void wakeup_source_unregister(struct wakeup_source *ws) {}
-
-static inline int device_wakeup_enable(struct device *dev)
-{
- dev->power.should_wakeup = true;
- return 0;
-}
-
-static inline int device_wakeup_disable(struct device *dev)
-{
- dev->power.should_wakeup = false;
- return 0;
-}
-
-static inline int device_set_wakeup_enable(struct device *dev, bool enable)
-{
- dev->power.should_wakeup = enable;
- return 0;
-}
-
-static inline int device_init_wakeup(struct device *dev, bool val)
-{
- device_set_wakeup_capable(dev, val);
- device_set_wakeup_enable(dev, val);
- return 0;
-}
-
-static inline bool device_may_wakeup(struct device *dev)
-{
- return dev->power.can_wakeup && dev->power.should_wakeup;
-}
-
-static inline void __pm_stay_awake(struct wakeup_source *ws) {}
-
-static inline void pm_stay_awake(struct device *dev) {}
-
-static inline void __pm_relax(struct wakeup_source *ws) {}
-
-static inline void pm_relax(struct device *dev) {}
-
-static inline void __pm_wakeup_event(struct wakeup_source *ws, unsigned int msec) {}
-
-static inline void pm_wakeup_event(struct device *dev, unsigned int msec) {}
-
-#endif /* !CONFIG_PM_SLEEP */
-
-static inline void wakeup_source_init(struct wakeup_source *ws,
- const char *name)
-{
- wakeup_source_prepare(ws, name);
- wakeup_source_add(ws);
-}
-
-static inline void wakeup_source_trash(struct wakeup_source *ws)
-{
- wakeup_source_remove(ws);
- wakeup_source_drop(ws);
-}
-
-#endif /* _LINUX_PM_WAKEUP_H */
diff --git a/ANDROID_3.4.5/include/linux/pmu.h b/ANDROID_3.4.5/include/linux/pmu.h
deleted file mode 100644
index 84e6a55a..00000000
--- a/ANDROID_3.4.5/include/linux/pmu.h
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
- * Definitions for talking to the PMU. The PMU is a microcontroller
- * which controls battery charging and system power on PowerBook 3400
- * and 2400 models as well as the RTC and various other things.
- *
- * Copyright (C) 1998 Paul Mackerras.
- */
-
-#ifndef _LINUX_PMU_H
-#define _LINUX_PMU_H
-
-#define PMU_DRIVER_VERSION 2
-
-/*
- * PMU commands
- */
-#define PMU_POWER_CTRL0 0x10 /* control power of some devices */
-#define PMU_POWER_CTRL 0x11 /* control power of some devices */
-#define PMU_ADB_CMD 0x20 /* send ADB packet */
-#define PMU_ADB_POLL_OFF 0x21 /* disable ADB auto-poll */
-#define PMU_WRITE_NVRAM 0x33 /* write non-volatile RAM */
-#define PMU_READ_NVRAM 0x3b /* read non-volatile RAM */
-#define PMU_SET_RTC 0x30 /* set real-time clock */
-#define PMU_READ_RTC 0x38 /* read real-time clock */
-#define PMU_SET_VOLBUTTON 0x40 /* set volume up/down position */
-#define PMU_BACKLIGHT_BRIGHT 0x41 /* set backlight brightness */
-#define PMU_GET_VOLBUTTON 0x48 /* get volume up/down position */
-#define PMU_PCEJECT 0x4c /* eject PC-card from slot */
-#define PMU_BATTERY_STATE 0x6b /* report battery state etc. */
-#define PMU_SMART_BATTERY_STATE 0x6f /* report battery state (new way) */
-#define PMU_SET_INTR_MASK 0x70 /* set PMU interrupt mask */
-#define PMU_INT_ACK 0x78 /* read interrupt bits */
-#define PMU_SHUTDOWN 0x7e /* turn power off */
-#define PMU_CPU_SPEED 0x7d /* control CPU speed on some models */
-#define PMU_SLEEP 0x7f /* put CPU to sleep */
-#define PMU_POWER_EVENTS 0x8f /* Send power-event commands to PMU */
-#define PMU_I2C_CMD 0x9a /* I2C operations */
-#define PMU_RESET 0xd0 /* reset CPU */
-#define PMU_GET_BRIGHTBUTTON 0xd9 /* report brightness up/down pos */
-#define PMU_GET_COVER 0xdc /* report cover open/closed */
-#define PMU_SYSTEM_READY 0xdf /* tell PMU we are awake */
-#define PMU_GET_VERSION 0xea /* read the PMU version */
-
-/* Bits to use with the PMU_POWER_CTRL0 command */
-#define PMU_POW0_ON 0x80 /* OR this to power ON the device */
-#define PMU_POW0_OFF 0x00 /* leave bit 7 to 0 to power it OFF */
-#define PMU_POW0_HARD_DRIVE 0x04 /* Hard drive power (on wallstreet/lombard ?) */
-
-/* Bits to use with the PMU_POWER_CTRL command */
-#define PMU_POW_ON 0x80 /* OR this to power ON the device */
-#define PMU_POW_OFF 0x00 /* leave bit 7 to 0 to power it OFF */
-#define PMU_POW_BACKLIGHT 0x01 /* backlight power */
-#define PMU_POW_CHARGER 0x02 /* battery charger power */
-#define PMU_POW_IRLED 0x04 /* IR led power (on wallstreet) */
-#define PMU_POW_MEDIABAY 0x08 /* media bay power (wallstreet/lombard ?) */
-
-/* Bits in PMU interrupt and interrupt mask bytes */
-#define PMU_INT_PCEJECT 0x04 /* PC-card eject buttons */
-#define PMU_INT_SNDBRT 0x08 /* sound/brightness up/down buttons */
-#define PMU_INT_ADB 0x10 /* ADB autopoll or reply data */
-#define PMU_INT_BATTERY 0x20 /* Battery state change */
-#define PMU_INT_ENVIRONMENT 0x40 /* Environment interrupts */
-#define PMU_INT_TICK 0x80 /* 1-second tick interrupt */
-
-/* Other bits in PMU interrupt valid when PMU_INT_ADB is set */
-#define PMU_INT_ADB_AUTO 0x04 /* ADB autopoll, when PMU_INT_ADB */
-#define PMU_INT_WAITING_CHARGER 0x01 /* ??? */
-#define PMU_INT_AUTO_SRQ_POLL 0x02 /* ??? */
-
-/* Bits in the environement message (either obtained via PMU_GET_COVER,
- * or via PMU_INT_ENVIRONMENT on core99 */
-#define PMU_ENV_LID_CLOSED 0x01 /* The lid is closed */
-
-/* I2C related definitions */
-#define PMU_I2C_MODE_SIMPLE 0
-#define PMU_I2C_MODE_STDSUB 1
-#define PMU_I2C_MODE_COMBINED 2
-
-#define PMU_I2C_BUS_STATUS 0
-#define PMU_I2C_BUS_SYSCLK 1
-#define PMU_I2C_BUS_POWER 2
-
-#define PMU_I2C_STATUS_OK 0
-#define PMU_I2C_STATUS_DATAREAD 1
-#define PMU_I2C_STATUS_BUSY 0xfe
-
-
-/* Kind of PMU (model) */
-enum {
- PMU_UNKNOWN,
- PMU_OHARE_BASED, /* 2400, 3400, 3500 (old G3 powerbook) */
- PMU_HEATHROW_BASED, /* PowerBook G3 series */
- PMU_PADDINGTON_BASED, /* 1999 PowerBook G3 */
- PMU_KEYLARGO_BASED, /* Core99 motherboard (PMU99) */
- PMU_68K_V1, /* 68K PMU, version 1 */
- PMU_68K_V2, /* 68K PMU, version 2 */
-};
-
-/* PMU PMU_POWER_EVENTS commands */
-enum {
- PMU_PWR_GET_POWERUP_EVENTS = 0x00,
- PMU_PWR_SET_POWERUP_EVENTS = 0x01,
- PMU_PWR_CLR_POWERUP_EVENTS = 0x02,
- PMU_PWR_GET_WAKEUP_EVENTS = 0x03,
- PMU_PWR_SET_WAKEUP_EVENTS = 0x04,
- PMU_PWR_CLR_WAKEUP_EVENTS = 0x05,
-};
-
-/* Power events wakeup bits */
-enum {
- PMU_PWR_WAKEUP_KEY = 0x01, /* Wake on key press */
- PMU_PWR_WAKEUP_AC_INSERT = 0x02, /* Wake on AC adapter plug */
- PMU_PWR_WAKEUP_AC_CHANGE = 0x04,
- PMU_PWR_WAKEUP_LID_OPEN = 0x08,
- PMU_PWR_WAKEUP_RING = 0x10,
-};
-
-/*
- * Ioctl commands for the /dev/pmu device
- */
-#include <linux/ioctl.h>
-
-/* no param */
-#define PMU_IOC_SLEEP _IO('B', 0)
-/* out param: u32* backlight value: 0 to 15 */
-#define PMU_IOC_GET_BACKLIGHT _IOR('B', 1, size_t)
-/* in param: u32 backlight value: 0 to 15 */
-#define PMU_IOC_SET_BACKLIGHT _IOW('B', 2, size_t)
-/* out param: u32* PMU model */
-#define PMU_IOC_GET_MODEL _IOR('B', 3, size_t)
-/* out param: u32* has_adb: 0 or 1 */
-#define PMU_IOC_HAS_ADB _IOR('B', 4, size_t)
-/* out param: u32* can_sleep: 0 or 1 */
-#define PMU_IOC_CAN_SLEEP _IOR('B', 5, size_t)
-/* no param, but historically was _IOR('B', 6, 0), meaning 4 bytes */
-#define PMU_IOC_GRAB_BACKLIGHT _IOR('B', 6, size_t)
-
-#ifdef __KERNEL__
-
-extern int find_via_pmu(void);
-
-extern int pmu_request(struct adb_request *req,
- void (*done)(struct adb_request *), int nbytes, ...);
-extern int pmu_queue_request(struct adb_request *req);
-extern void pmu_poll(void);
-extern void pmu_poll_adb(void); /* For use by xmon */
-extern void pmu_wait_complete(struct adb_request *req);
-
-/* For use before switching interrupts off for a long time;
- * warning: not stackable
- */
-#if defined(CONFIG_ADB_PMU)
-extern void pmu_suspend(void);
-extern void pmu_resume(void);
-#else
-static inline void pmu_suspend(void)
-{}
-static inline void pmu_resume(void)
-{}
-#endif
-
-extern void pmu_enable_irled(int on);
-
-extern void pmu_restart(void);
-extern void pmu_shutdown(void);
-extern void pmu_unlock(void);
-
-extern int pmu_present(void);
-extern int pmu_get_model(void);
-
-extern void pmu_backlight_set_sleep(int sleep);
-
-#define PMU_MAX_BATTERIES 2
-
-/* values for pmu_power_flags */
-#define PMU_PWR_AC_PRESENT 0x00000001
-
-/* values for pmu_battery_info.flags */
-#define PMU_BATT_PRESENT 0x00000001
-#define PMU_BATT_CHARGING 0x00000002
-#define PMU_BATT_TYPE_MASK 0x000000f0
-#define PMU_BATT_TYPE_SMART 0x00000010 /* Smart battery */
-#define PMU_BATT_TYPE_HOOPER 0x00000020 /* 3400/3500 */
-#define PMU_BATT_TYPE_COMET 0x00000030 /* 2400 */
-
-struct pmu_battery_info
-{
- unsigned int flags;
- unsigned int charge; /* current charge */
- unsigned int max_charge; /* maximum charge */
- signed int amperage; /* current, positive if charging */
- unsigned int voltage; /* voltage */
- unsigned int time_remaining; /* remaining time */
-};
-
-extern int pmu_battery_count;
-extern struct pmu_battery_info pmu_batteries[PMU_MAX_BATTERIES];
-extern unsigned int pmu_power_flags;
-
-/* Backlight */
-extern void pmu_backlight_init(void);
-
-/* some code needs to know if the PMU was suspended for hibernation */
-#if defined(CONFIG_SUSPEND) && defined(CONFIG_PPC32)
-extern int pmu_sys_suspended;
-#else
-/* if power management is not configured it can't be suspended */
-#define pmu_sys_suspended 0
-#endif
-
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_PMU_H */
diff --git a/ANDROID_3.4.5/include/linux/pnfs_osd_xdr.h b/ANDROID_3.4.5/include/linux/pnfs_osd_xdr.h
deleted file mode 100644
index 435dd5fa..00000000
--- a/ANDROID_3.4.5/include/linux/pnfs_osd_xdr.h
+++ /dev/null
@@ -1,318 +0,0 @@
-/*
- * pNFS-osd on-the-wire data structures
- *
- * Copyright (C) 2007 Panasas Inc. [year of first publication]
- * All rights reserved.
- *
- * Benny Halevy <bhalevy@panasas.com>
- * Boaz Harrosh <bharrosh@panasas.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
- * See the file COPYING included with this distribution for more details.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the Panasas company nor the names of its
- * contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#ifndef __PNFS_OSD_XDR_H__
-#define __PNFS_OSD_XDR_H__
-
-#include <linux/nfs_fs.h>
-#include <linux/nfs_page.h>
-
-/*
- * draft-ietf-nfsv4-minorversion-22
- * draft-ietf-nfsv4-pnfs-obj-12
- */
-
-/* Layout Structure */
-
-enum pnfs_osd_raid_algorithm4 {
- PNFS_OSD_RAID_0 = 1,
- PNFS_OSD_RAID_4 = 2,
- PNFS_OSD_RAID_5 = 3,
- PNFS_OSD_RAID_PQ = 4 /* Reed-Solomon P+Q */
-};
-
-/* struct pnfs_osd_data_map4 {
- * uint32_t odm_num_comps;
- * length4 odm_stripe_unit;
- * uint32_t odm_group_width;
- * uint32_t odm_group_depth;
- * uint32_t odm_mirror_cnt;
- * pnfs_osd_raid_algorithm4 odm_raid_algorithm;
- * };
- */
-struct pnfs_osd_data_map {
- u32 odm_num_comps;
- u64 odm_stripe_unit;
- u32 odm_group_width;
- u32 odm_group_depth;
- u32 odm_mirror_cnt;
- u32 odm_raid_algorithm;
-};
-
-/* struct pnfs_osd_objid4 {
- * deviceid4 oid_device_id;
- * uint64_t oid_partition_id;
- * uint64_t oid_object_id;
- * };
- */
-struct pnfs_osd_objid {
- struct nfs4_deviceid oid_device_id;
- u64 oid_partition_id;
- u64 oid_object_id;
-};
-
-/* For printout. I use:
- * kprint("dev(%llx:%llx)", _DEVID_LO(pointer), _DEVID_HI(pointer));
- * BE style
- */
-#define _DEVID_LO(oid_device_id) \
- (unsigned long long)be64_to_cpup((__be64 *)(oid_device_id)->data)
-
-#define _DEVID_HI(oid_device_id) \
- (unsigned long long)be64_to_cpup(((__be64 *)(oid_device_id)->data) + 1)
-
-enum pnfs_osd_version {
- PNFS_OSD_MISSING = 0,
- PNFS_OSD_VERSION_1 = 1,
- PNFS_OSD_VERSION_2 = 2
-};
-
-struct pnfs_osd_opaque_cred {
- u32 cred_len;
- void *cred;
-};
-
-enum pnfs_osd_cap_key_sec {
- PNFS_OSD_CAP_KEY_SEC_NONE = 0,
- PNFS_OSD_CAP_KEY_SEC_SSV = 1,
-};
-
-/* struct pnfs_osd_object_cred4 {
- * pnfs_osd_objid4 oc_object_id;
- * pnfs_osd_version4 oc_osd_version;
- * pnfs_osd_cap_key_sec4 oc_cap_key_sec;
- * opaque oc_capability_key<>;
- * opaque oc_capability<>;
- * };
- */
-struct pnfs_osd_object_cred {
- struct pnfs_osd_objid oc_object_id;
- u32 oc_osd_version;
- u32 oc_cap_key_sec;
- struct pnfs_osd_opaque_cred oc_cap_key;
- struct pnfs_osd_opaque_cred oc_cap;
-};
-
-/* struct pnfs_osd_layout4 {
- * pnfs_osd_data_map4 olo_map;
- * uint32_t olo_comps_index;
- * pnfs_osd_object_cred4 olo_components<>;
- * };
- */
-struct pnfs_osd_layout {
- struct pnfs_osd_data_map olo_map;
- u32 olo_comps_index;
- u32 olo_num_comps;
- struct pnfs_osd_object_cred *olo_comps;
-};
-
-/* Device Address */
-enum pnfs_osd_targetid_type {
- OBJ_TARGET_ANON = 1,
- OBJ_TARGET_SCSI_NAME = 2,
- OBJ_TARGET_SCSI_DEVICE_ID = 3,
-};
-
-/* union pnfs_osd_targetid4 switch (pnfs_osd_targetid_type4 oti_type) {
- * case OBJ_TARGET_SCSI_NAME:
- * string oti_scsi_name<>;
- *
- * case OBJ_TARGET_SCSI_DEVICE_ID:
- * opaque oti_scsi_device_id<>;
- *
- * default:
- * void;
- * };
- *
- * union pnfs_osd_targetaddr4 switch (bool ota_available) {
- * case TRUE:
- * netaddr4 ota_netaddr;
- * case FALSE:
- * void;
- * };
- *
- * struct pnfs_osd_deviceaddr4 {
- * pnfs_osd_targetid4 oda_targetid;
- * pnfs_osd_targetaddr4 oda_targetaddr;
- * uint64_t oda_lun;
- * opaque oda_systemid<>;
- * pnfs_osd_object_cred4 oda_root_obj_cred;
- * opaque oda_osdname<>;
- * };
- */
-struct pnfs_osd_targetid {
- u32 oti_type;
- struct nfs4_string oti_scsi_device_id;
-};
-
-/* struct netaddr4 {
- * // see struct rpcb in RFC1833
- * string r_netid<>; // network id
- * string r_addr<>; // universal address
- * };
- */
-struct pnfs_osd_net_addr {
- struct nfs4_string r_netid;
- struct nfs4_string r_addr;
-};
-
-struct pnfs_osd_targetaddr {
- u32 ota_available;
- struct pnfs_osd_net_addr ota_netaddr;
-};
-
-struct pnfs_osd_deviceaddr {
- struct pnfs_osd_targetid oda_targetid;
- struct pnfs_osd_targetaddr oda_targetaddr;
- u8 oda_lun[8];
- struct nfs4_string oda_systemid;
- struct pnfs_osd_object_cred oda_root_obj_cred;
- struct nfs4_string oda_osdname;
-};
-
-/* LAYOUTCOMMIT: layoutupdate */
-
-/* union pnfs_osd_deltaspaceused4 switch (bool dsu_valid) {
- * case TRUE:
- * int64_t dsu_delta;
- * case FALSE:
- * void;
- * };
- *
- * struct pnfs_osd_layoutupdate4 {
- * pnfs_osd_deltaspaceused4 olu_delta_space_used;
- * bool olu_ioerr_flag;
- * };
- */
-struct pnfs_osd_layoutupdate {
- u32 dsu_valid;
- s64 dsu_delta;
- u32 olu_ioerr_flag;
-};
-
-/* LAYOUTRETURN: I/O Rrror Report */
-
-enum pnfs_osd_errno {
- PNFS_OSD_ERR_EIO = 1,
- PNFS_OSD_ERR_NOT_FOUND = 2,
- PNFS_OSD_ERR_NO_SPACE = 3,
- PNFS_OSD_ERR_BAD_CRED = 4,
- PNFS_OSD_ERR_NO_ACCESS = 5,
- PNFS_OSD_ERR_UNREACHABLE = 6,
- PNFS_OSD_ERR_RESOURCE = 7
-};
-
-/* struct pnfs_osd_ioerr4 {
- * pnfs_osd_objid4 oer_component;
- * length4 oer_comp_offset;
- * length4 oer_comp_length;
- * bool oer_iswrite;
- * pnfs_osd_errno4 oer_errno;
- * };
- */
-struct pnfs_osd_ioerr {
- struct pnfs_osd_objid oer_component;
- u64 oer_comp_offset;
- u64 oer_comp_length;
- u32 oer_iswrite;
- u32 oer_errno;
-};
-
-/* OSD XDR Client API */
-/* Layout helpers */
-/* Layout decoding is done in two parts:
- * 1. First Call pnfs_osd_xdr_decode_layout_map to read in only the header part
- * of the layout. @iter members need not be initialized.
- * Returned:
- * @layout members are set. (@layout->olo_comps set to NULL).
- *
- * Zero on success, or negative error if passed xdr is broken.
- *
- * 2. 2nd Call pnfs_osd_xdr_decode_layout_comp() in a loop until it returns
- * false, to decode the next component.
- * Returned:
- * true if there is more to decode or false if we are done or error.
- *
- * Example:
- * struct pnfs_osd_xdr_decode_layout_iter iter;
- * struct pnfs_osd_layout layout;
- * struct pnfs_osd_object_cred comp;
- * int status;
- *
- * status = pnfs_osd_xdr_decode_layout_map(&layout, &iter, xdr);
- * if (unlikely(status))
- * goto err;
- * while(pnfs_osd_xdr_decode_layout_comp(&comp, &iter, xdr, &status)) {
- * // All of @comp strings point to inside the xdr_buffer
- * // or scrach buffer. Copy them out to user memory eg.
- * copy_single_comp(dest_comp++, &comp);
- * }
- * if (unlikely(status))
- * goto err;
- */
-
-struct pnfs_osd_xdr_decode_layout_iter {
- unsigned total_comps;
- unsigned decoded_comps;
-};
-
-extern int pnfs_osd_xdr_decode_layout_map(struct pnfs_osd_layout *layout,
- struct pnfs_osd_xdr_decode_layout_iter *iter, struct xdr_stream *xdr);
-
-extern bool pnfs_osd_xdr_decode_layout_comp(struct pnfs_osd_object_cred *comp,
- struct pnfs_osd_xdr_decode_layout_iter *iter, struct xdr_stream *xdr,
- int *err);
-
-/* Device Info helpers */
-
-/* Note: All strings inside @deviceaddr point to space inside @p.
- * @p should stay valid while @deviceaddr is in use.
- */
-extern void pnfs_osd_xdr_decode_deviceaddr(
- struct pnfs_osd_deviceaddr *deviceaddr, __be32 *p);
-
-/* layoutupdate (layout_commit) xdr helpers */
-extern int
-pnfs_osd_xdr_encode_layoutupdate(struct xdr_stream *xdr,
- struct pnfs_osd_layoutupdate *lou);
-
-/* osd_ioerror encoding (layout_return) */
-extern __be32 *pnfs_osd_xdr_ioerr_reserve_space(struct xdr_stream *xdr);
-extern void pnfs_osd_xdr_encode_ioerr(__be32 *p, struct pnfs_osd_ioerr *ioerr);
-
-#endif /* __PNFS_OSD_XDR_H__ */
diff --git a/ANDROID_3.4.5/include/linux/pnp.h b/ANDROID_3.4.5/include/linux/pnp.h
deleted file mode 100644
index 195aafc6..00000000
--- a/ANDROID_3.4.5/include/linux/pnp.h
+++ /dev/null
@@ -1,505 +0,0 @@
-/*
- * Linux Plug and Play Support
- * Copyright by Adam Belay <ambx1@neo.rr.com>
- * Copyright (C) 2008 Hewlett-Packard Development Company, L.P.
- * Bjorn Helgaas <bjorn.helgaas@hp.com>
- */
-
-#ifndef _LINUX_PNP_H
-#define _LINUX_PNP_H
-
-#include <linux/device.h>
-#include <linux/list.h>
-#include <linux/errno.h>
-#include <linux/mod_devicetable.h>
-
-#define PNP_NAME_LEN 50
-
-struct pnp_protocol;
-struct pnp_dev;
-
-/*
- * Resource Management
- */
-#ifdef CONFIG_PNP
-struct resource *pnp_get_resource(struct pnp_dev *dev, unsigned long type,
- unsigned int num);
-#else
-static inline struct resource *pnp_get_resource(struct pnp_dev *dev,
- unsigned long type, unsigned int num)
-{
- return NULL;
-}
-#endif
-
-static inline int pnp_resource_valid(struct resource *res)
-{
- if (res)
- return 1;
- return 0;
-}
-
-static inline int pnp_resource_enabled(struct resource *res)
-{
- if (res && !(res->flags & IORESOURCE_DISABLED))
- return 1;
- return 0;
-}
-
-static inline resource_size_t pnp_resource_len(struct resource *res)
-{
- if (res->start == 0 && res->end == 0)
- return 0;
- return resource_size(res);
-}
-
-
-static inline resource_size_t pnp_port_start(struct pnp_dev *dev,
- unsigned int bar)
-{
- struct resource *res = pnp_get_resource(dev, IORESOURCE_IO, bar);
-
- if (pnp_resource_valid(res))
- return res->start;
- return 0;
-}
-
-static inline resource_size_t pnp_port_end(struct pnp_dev *dev,
- unsigned int bar)
-{
- struct resource *res = pnp_get_resource(dev, IORESOURCE_IO, bar);
-
- if (pnp_resource_valid(res))
- return res->end;
- return 0;
-}
-
-static inline unsigned long pnp_port_flags(struct pnp_dev *dev,
- unsigned int bar)
-{
- struct resource *res = pnp_get_resource(dev, IORESOURCE_IO, bar);
-
- if (pnp_resource_valid(res))
- return res->flags;
- return IORESOURCE_IO | IORESOURCE_AUTO;
-}
-
-static inline int pnp_port_valid(struct pnp_dev *dev, unsigned int bar)
-{
- return pnp_resource_valid(pnp_get_resource(dev, IORESOURCE_IO, bar));
-}
-
-static inline resource_size_t pnp_port_len(struct pnp_dev *dev,
- unsigned int bar)
-{
- struct resource *res = pnp_get_resource(dev, IORESOURCE_IO, bar);
-
- if (pnp_resource_valid(res))
- return pnp_resource_len(res);
- return 0;
-}
-
-
-static inline resource_size_t pnp_mem_start(struct pnp_dev *dev,
- unsigned int bar)
-{
- struct resource *res = pnp_get_resource(dev, IORESOURCE_MEM, bar);
-
- if (pnp_resource_valid(res))
- return res->start;
- return 0;
-}
-
-static inline resource_size_t pnp_mem_end(struct pnp_dev *dev,
- unsigned int bar)
-{
- struct resource *res = pnp_get_resource(dev, IORESOURCE_MEM, bar);
-
- if (pnp_resource_valid(res))
- return res->end;
- return 0;
-}
-
-static inline unsigned long pnp_mem_flags(struct pnp_dev *dev, unsigned int bar)
-{
- struct resource *res = pnp_get_resource(dev, IORESOURCE_MEM, bar);
-
- if (pnp_resource_valid(res))
- return res->flags;
- return IORESOURCE_MEM | IORESOURCE_AUTO;
-}
-
-static inline int pnp_mem_valid(struct pnp_dev *dev, unsigned int bar)
-{
- return pnp_resource_valid(pnp_get_resource(dev, IORESOURCE_MEM, bar));
-}
-
-static inline resource_size_t pnp_mem_len(struct pnp_dev *dev,
- unsigned int bar)
-{
- struct resource *res = pnp_get_resource(dev, IORESOURCE_MEM, bar);
-
- if (pnp_resource_valid(res))
- return pnp_resource_len(res);
- return 0;
-}
-
-
-static inline resource_size_t pnp_irq(struct pnp_dev *dev, unsigned int bar)
-{
- struct resource *res = pnp_get_resource(dev, IORESOURCE_IRQ, bar);
-
- if (pnp_resource_valid(res))
- return res->start;
- return -1;
-}
-
-static inline unsigned long pnp_irq_flags(struct pnp_dev *dev, unsigned int bar)
-{
- struct resource *res = pnp_get_resource(dev, IORESOURCE_IRQ, bar);
-
- if (pnp_resource_valid(res))
- return res->flags;
- return IORESOURCE_IRQ | IORESOURCE_AUTO;
-}
-
-static inline int pnp_irq_valid(struct pnp_dev *dev, unsigned int bar)
-{
- return pnp_resource_valid(pnp_get_resource(dev, IORESOURCE_IRQ, bar));
-}
-
-
-static inline resource_size_t pnp_dma(struct pnp_dev *dev, unsigned int bar)
-{
- struct resource *res = pnp_get_resource(dev, IORESOURCE_DMA, bar);
-
- if (pnp_resource_valid(res))
- return res->start;
- return -1;
-}
-
-static inline unsigned long pnp_dma_flags(struct pnp_dev *dev, unsigned int bar)
-{
- struct resource *res = pnp_get_resource(dev, IORESOURCE_DMA, bar);
-
- if (pnp_resource_valid(res))
- return res->flags;
- return IORESOURCE_DMA | IORESOURCE_AUTO;
-}
-
-static inline int pnp_dma_valid(struct pnp_dev *dev, unsigned int bar)
-{
- return pnp_resource_valid(pnp_get_resource(dev, IORESOURCE_DMA, bar));
-}
-
-
-/*
- * Device Management
- */
-
-struct pnp_card {
- struct device dev; /* Driver Model device interface */
- unsigned char number; /* used as an index, must be unique */
- struct list_head global_list; /* node in global list of cards */
- struct list_head protocol_list; /* node in protocol's list of cards */
- struct list_head devices; /* devices attached to the card */
-
- struct pnp_protocol *protocol;
- struct pnp_id *id; /* contains supported EISA IDs */
-
- char name[PNP_NAME_LEN]; /* contains a human-readable name */
- unsigned char pnpver; /* Plug & Play version */
- unsigned char productver; /* product version */
- unsigned int serial; /* serial number */
- unsigned char checksum; /* if zero - checksum passed */
- struct proc_dir_entry *procdir; /* directory entry in /proc/bus/isapnp */
-};
-
-#define global_to_pnp_card(n) list_entry(n, struct pnp_card, global_list)
-#define protocol_to_pnp_card(n) list_entry(n, struct pnp_card, protocol_list)
-#define to_pnp_card(n) container_of(n, struct pnp_card, dev)
-#define pnp_for_each_card(card) \
- for((card) = global_to_pnp_card(pnp_cards.next); \
- (card) != global_to_pnp_card(&pnp_cards); \
- (card) = global_to_pnp_card((card)->global_list.next))
-
-struct pnp_card_link {
- struct pnp_card *card;
- struct pnp_card_driver *driver;
- void *driver_data;
- pm_message_t pm_state;
-};
-
-static inline void *pnp_get_card_drvdata(struct pnp_card_link *pcard)
-{
- return pcard->driver_data;
-}
-
-static inline void pnp_set_card_drvdata(struct pnp_card_link *pcard, void *data)
-{
- pcard->driver_data = data;
-}
-
-struct pnp_dev {
- struct device dev; /* Driver Model device interface */
- u64 dma_mask;
- unsigned int number; /* used as an index, must be unique */
- int status;
-
- struct list_head global_list; /* node in global list of devices */
- struct list_head protocol_list; /* node in list of device's protocol */
- struct list_head card_list; /* node in card's list of devices */
- struct list_head rdev_list; /* node in cards list of requested devices */
-
- struct pnp_protocol *protocol;
- struct pnp_card *card; /* card the device is attached to, none if NULL */
- struct pnp_driver *driver;
- struct pnp_card_link *card_link;
-
- struct pnp_id *id; /* supported EISA IDs */
-
- int active;
- int capabilities;
- unsigned int num_dependent_sets;
- struct list_head resources;
- struct list_head options;
-
- char name[PNP_NAME_LEN]; /* contains a human-readable name */
- int flags; /* used by protocols */
- struct proc_dir_entry *procent; /* device entry in /proc/bus/isapnp */
- void *data;
-};
-
-#define global_to_pnp_dev(n) list_entry(n, struct pnp_dev, global_list)
-#define card_to_pnp_dev(n) list_entry(n, struct pnp_dev, card_list)
-#define protocol_to_pnp_dev(n) list_entry(n, struct pnp_dev, protocol_list)
-#define to_pnp_dev(n) container_of(n, struct pnp_dev, dev)
-#define pnp_for_each_dev(dev) \
- for((dev) = global_to_pnp_dev(pnp_global.next); \
- (dev) != global_to_pnp_dev(&pnp_global); \
- (dev) = global_to_pnp_dev((dev)->global_list.next))
-#define card_for_each_dev(card,dev) \
- for((dev) = card_to_pnp_dev((card)->devices.next); \
- (dev) != card_to_pnp_dev(&(card)->devices); \
- (dev) = card_to_pnp_dev((dev)->card_list.next))
-#define pnp_dev_name(dev) (dev)->name
-
-static inline void *pnp_get_drvdata(struct pnp_dev *pdev)
-{
- return dev_get_drvdata(&pdev->dev);
-}
-
-static inline void pnp_set_drvdata(struct pnp_dev *pdev, void *data)
-{
- dev_set_drvdata(&pdev->dev, data);
-}
-
-struct pnp_fixup {
- char id[7];
- void (*quirk_function) (struct pnp_dev * dev); /* fixup function */
-};
-
-/* config parameters */
-#define PNP_CONFIG_NORMAL 0x0001
-#define PNP_CONFIG_FORCE 0x0002 /* disables validity checking */
-
-/* capabilities */
-#define PNP_READ 0x0001
-#define PNP_WRITE 0x0002
-#define PNP_DISABLE 0x0004
-#define PNP_CONFIGURABLE 0x0008
-#define PNP_REMOVABLE 0x0010
-
-#define pnp_can_read(dev) (((dev)->protocol->get) && \
- ((dev)->capabilities & PNP_READ))
-#define pnp_can_write(dev) (((dev)->protocol->set) && \
- ((dev)->capabilities & PNP_WRITE))
-#define pnp_can_disable(dev) (((dev)->protocol->disable) && \
- ((dev)->capabilities & PNP_DISABLE))
-#define pnp_can_configure(dev) ((!(dev)->active) && \
- ((dev)->capabilities & PNP_CONFIGURABLE))
-
-#ifdef CONFIG_ISAPNP
-extern struct pnp_protocol isapnp_protocol;
-#define pnp_device_is_isapnp(dev) ((dev)->protocol == (&isapnp_protocol))
-#else
-#define pnp_device_is_isapnp(dev) 0
-#endif
-extern struct mutex pnp_res_mutex;
-
-#ifdef CONFIG_PNPBIOS
-extern struct pnp_protocol pnpbios_protocol;
-#define pnp_device_is_pnpbios(dev) ((dev)->protocol == (&pnpbios_protocol))
-#else
-#define pnp_device_is_pnpbios(dev) 0
-#endif
-
-#ifdef CONFIG_PNPACPI
-extern struct pnp_protocol pnpacpi_protocol;
-
-static inline struct acpi_device *pnp_acpi_device(struct pnp_dev *dev)
-{
- if (dev->protocol == &pnpacpi_protocol)
- return dev->data;
- return NULL;
-}
-#else
-#define pnp_acpi_device(dev) 0
-#endif
-
-/* status */
-#define PNP_READY 0x0000
-#define PNP_ATTACHED 0x0001
-#define PNP_BUSY 0x0002
-#define PNP_FAULTY 0x0004
-
-/* isapnp specific macros */
-
-#define isapnp_card_number(dev) ((dev)->card ? (dev)->card->number : -1)
-#define isapnp_csn_number(dev) ((dev)->number)
-
-/*
- * Driver Management
- */
-
-struct pnp_id {
- char id[PNP_ID_LEN];
- struct pnp_id *next;
-};
-
-struct pnp_driver {
- char *name;
- const struct pnp_device_id *id_table;
- unsigned int flags;
- int (*probe) (struct pnp_dev *dev, const struct pnp_device_id *dev_id);
- void (*remove) (struct pnp_dev *dev);
- void (*shutdown) (struct pnp_dev *dev);
- int (*suspend) (struct pnp_dev *dev, pm_message_t state);
- int (*resume) (struct pnp_dev *dev);
- struct device_driver driver;
-};
-
-#define to_pnp_driver(drv) container_of(drv, struct pnp_driver, driver)
-
-struct pnp_card_driver {
- struct list_head global_list;
- char *name;
- const struct pnp_card_device_id *id_table;
- unsigned int flags;
- int (*probe) (struct pnp_card_link *card,
- const struct pnp_card_device_id *card_id);
- void (*remove) (struct pnp_card_link *card);
- int (*suspend) (struct pnp_card_link *card, pm_message_t state);
- int (*resume) (struct pnp_card_link *card);
- struct pnp_driver link;
-};
-
-#define to_pnp_card_driver(drv) container_of(drv, struct pnp_card_driver, link)
-
-/* pnp driver flags */
-#define PNP_DRIVER_RES_DO_NOT_CHANGE 0x0001 /* do not change the state of the device */
-#define PNP_DRIVER_RES_DISABLE 0x0003 /* ensure the device is disabled */
-
-/*
- * Protocol Management
- */
-
-struct pnp_protocol {
- struct list_head protocol_list;
- char *name;
-
- /* resource control functions */
- int (*get) (struct pnp_dev *dev);
- int (*set) (struct pnp_dev *dev);
- int (*disable) (struct pnp_dev *dev);
-
- /* protocol specific suspend/resume */
- bool (*can_wakeup) (struct pnp_dev *dev);
- int (*suspend) (struct pnp_dev * dev, pm_message_t state);
- int (*resume) (struct pnp_dev * dev);
-
- /* used by pnp layer only (look but don't touch) */
- unsigned char number; /* protocol number */
- struct device dev; /* link to driver model */
- struct list_head cards;
- struct list_head devices;
-};
-
-#define to_pnp_protocol(n) list_entry(n, struct pnp_protocol, protocol_list)
-#define protocol_for_each_card(protocol,card) \
- for((card) = protocol_to_pnp_card((protocol)->cards.next); \
- (card) != protocol_to_pnp_card(&(protocol)->cards); \
- (card) = protocol_to_pnp_card((card)->protocol_list.next))
-#define protocol_for_each_dev(protocol,dev) \
- for((dev) = protocol_to_pnp_dev((protocol)->devices.next); \
- (dev) != protocol_to_pnp_dev(&(protocol)->devices); \
- (dev) = protocol_to_pnp_dev((dev)->protocol_list.next))
-
-extern struct bus_type pnp_bus_type;
-
-#if defined(CONFIG_PNP)
-
-/* device management */
-int pnp_device_attach(struct pnp_dev *pnp_dev);
-void pnp_device_detach(struct pnp_dev *pnp_dev);
-extern struct list_head pnp_global;
-extern int pnp_platform_devices;
-
-/* multidevice card support */
-struct pnp_dev *pnp_request_card_device(struct pnp_card_link *clink,
- const char *id, struct pnp_dev *from);
-void pnp_release_card_device(struct pnp_dev *dev);
-int pnp_register_card_driver(struct pnp_card_driver *drv);
-void pnp_unregister_card_driver(struct pnp_card_driver *drv);
-extern struct list_head pnp_cards;
-
-/* resource management */
-int pnp_possible_config(struct pnp_dev *dev, int type, resource_size_t base,
- resource_size_t size);
-int pnp_auto_config_dev(struct pnp_dev *dev);
-int pnp_start_dev(struct pnp_dev *dev);
-int pnp_stop_dev(struct pnp_dev *dev);
-int pnp_activate_dev(struct pnp_dev *dev);
-int pnp_disable_dev(struct pnp_dev *dev);
-int pnp_range_reserved(resource_size_t start, resource_size_t end);
-
-/* protocol helpers */
-int pnp_is_active(struct pnp_dev *dev);
-int compare_pnp_id(struct pnp_id *pos, const char *id);
-int pnp_register_driver(struct pnp_driver *drv);
-void pnp_unregister_driver(struct pnp_driver *drv);
-
-#else
-
-/* device management */
-static inline int pnp_device_attach(struct pnp_dev *pnp_dev) { return -ENODEV; }
-static inline void pnp_device_detach(struct pnp_dev *pnp_dev) { }
-
-#define pnp_platform_devices 0
-
-/* multidevice card support */
-static inline struct pnp_dev *pnp_request_card_device(struct pnp_card_link *clink, const char *id, struct pnp_dev *from) { return NULL; }
-static inline void pnp_release_card_device(struct pnp_dev *dev) { }
-static inline int pnp_register_card_driver(struct pnp_card_driver *drv) { return -ENODEV; }
-static inline void pnp_unregister_card_driver(struct pnp_card_driver *drv) { }
-
-/* resource management */
-static inline int pnp_possible_config(struct pnp_dev *dev, int type,
- resource_size_t base,
- resource_size_t size) { return 0; }
-static inline int pnp_auto_config_dev(struct pnp_dev *dev) { return -ENODEV; }
-static inline int pnp_start_dev(struct pnp_dev *dev) { return -ENODEV; }
-static inline int pnp_stop_dev(struct pnp_dev *dev) { return -ENODEV; }
-static inline int pnp_activate_dev(struct pnp_dev *dev) { return -ENODEV; }
-static inline int pnp_disable_dev(struct pnp_dev *dev) { return -ENODEV; }
-static inline int pnp_range_reserved(resource_size_t start, resource_size_t end) { return 0;}
-
-/* protocol helpers */
-static inline int pnp_is_active(struct pnp_dev *dev) { return 0; }
-static inline int compare_pnp_id(struct pnp_id *pos, const char *id) { return -ENODEV; }
-static inline int pnp_register_driver(struct pnp_driver *drv) { return -ENODEV; }
-static inline void pnp_unregister_driver(struct pnp_driver *drv) { }
-
-#endif /* CONFIG_PNP */
-
-#endif /* _LINUX_PNP_H */
diff --git a/ANDROID_3.4.5/include/linux/poison.h b/ANDROID_3.4.5/include/linux/poison.h
deleted file mode 100644
index 2110a81c..00000000
--- a/ANDROID_3.4.5/include/linux/poison.h
+++ /dev/null
@@ -1,89 +0,0 @@
-#ifndef _LINUX_POISON_H
-#define _LINUX_POISON_H
-
-/********** include/linux/list.h **********/
-
-/*
- * Architectures might want to move the poison pointer offset
- * into some well-recognized area such as 0xdead000000000000,
- * that is also not mappable by user-space exploits:
- */
-#ifdef CONFIG_ILLEGAL_POINTER_VALUE
-# define POISON_POINTER_DELTA _AC(CONFIG_ILLEGAL_POINTER_VALUE, UL)
-#else
-# define POISON_POINTER_DELTA 0
-#endif
-
-/*
- * These are non-NULL pointers that will result in page faults
- * under normal circumstances, used to verify that nobody uses
- * non-initialized list entries.
- */
-#define LIST_POISON1 ((void *) 0x00100100 + POISON_POINTER_DELTA)
-#define LIST_POISON2 ((void *) 0x00200200 + POISON_POINTER_DELTA)
-
-/********** include/linux/timer.h **********/
-/*
- * Magic number "tsta" to indicate a static timer initializer
- * for the object debugging code.
- */
-#define TIMER_ENTRY_STATIC ((void *) 0x74737461)
-
-/********** mm/debug-pagealloc.c **********/
-#define PAGE_POISON 0xaa
-
-/********** mm/slab.c **********/
-/*
- * Magic nums for obj red zoning.
- * Placed in the first word before and the first word after an obj.
- */
-#define RED_INACTIVE 0x09F911029D74E35BULL /* when obj is inactive */
-#define RED_ACTIVE 0xD84156C5635688C0ULL /* when obj is active */
-
-#define SLUB_RED_INACTIVE 0xbb
-#define SLUB_RED_ACTIVE 0xcc
-
-/* ...and for poisoning */
-#define POISON_INUSE 0x5a /* for use-uninitialised poisoning */
-#define POISON_FREE 0x6b /* for use-after-free poisoning */
-#define POISON_END 0xa5 /* end-byte of poisoning */
-
-/********** arch/$ARCH/mm/init.c **********/
-#define POISON_FREE_INITMEM 0xcc
-
-/********** arch/ia64/hp/common/sba_iommu.c **********/
-/*
- * arch/ia64/hp/common/sba_iommu.c uses a 16-byte poison string with a
- * value of "SBAIOMMU POISON\0" for spill-over poisoning.
- */
-
-/********** fs/jbd/journal.c **********/
-#define JBD_POISON_FREE 0x5b
-#define JBD2_POISON_FREE 0x5c
-
-/********** drivers/base/dmapool.c **********/
-#define POOL_POISON_FREED 0xa7 /* !inuse */
-#define POOL_POISON_ALLOCATED 0xa9 /* !initted */
-
-/********** drivers/atm/ **********/
-#define ATM_POISON_FREE 0x12
-#define ATM_POISON 0xdeadbeef
-
-/********** net/ **********/
-#define NEIGHBOR_DEAD 0xdeadbeef
-#define NETFILTER_LINK_POISON 0xdead57ac
-
-/********** kernel/mutexes **********/
-#define MUTEX_DEBUG_INIT 0x11
-#define MUTEX_DEBUG_FREE 0x22
-
-/********** lib/flex_array.c **********/
-#define FLEX_ARRAY_FREE 0x6c /* for use-after-free poisoning */
-
-/********** security/ **********/
-#define KEY_DESTROY 0xbd
-
-/********** sound/oss/ **********/
-#define OSS_POISON_FREE 0xAB
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/poll.h b/ANDROID_3.4.5/include/linux/poll.h
deleted file mode 100644
index 48fe8bc3..00000000
--- a/ANDROID_3.4.5/include/linux/poll.h
+++ /dev/null
@@ -1,168 +0,0 @@
-#ifndef _LINUX_POLL_H
-#define _LINUX_POLL_H
-
-#include <asm/poll.h>
-
-#ifdef __KERNEL__
-
-#include <linux/compiler.h>
-#include <linux/ktime.h>
-#include <linux/wait.h>
-#include <linux/string.h>
-#include <linux/fs.h>
-#include <linux/sysctl.h>
-#include <asm/uaccess.h>
-
-extern struct ctl_table epoll_table[]; /* for sysctl */
-/* ~832 bytes of stack space used max in sys_select/sys_poll before allocating
- additional memory. */
-#define MAX_STACK_ALLOC 832
-#define FRONTEND_STACK_ALLOC 256
-#define SELECT_STACK_ALLOC FRONTEND_STACK_ALLOC
-#define POLL_STACK_ALLOC FRONTEND_STACK_ALLOC
-#define WQUEUES_STACK_ALLOC (MAX_STACK_ALLOC - FRONTEND_STACK_ALLOC)
-#define N_INLINE_POLL_ENTRIES (WQUEUES_STACK_ALLOC / sizeof(struct poll_table_entry))
-
-#define DEFAULT_POLLMASK (POLLIN | POLLOUT | POLLRDNORM | POLLWRNORM)
-
-struct poll_table_struct;
-
-/*
- * structures and helpers for f_op->poll implementations
- */
-typedef void (*poll_queue_proc)(struct file *, wait_queue_head_t *, struct poll_table_struct *);
-
-/*
- * Do not touch the structure directly, use the access functions
- * poll_does_not_wait() and poll_requested_events() instead.
- */
-typedef struct poll_table_struct {
- poll_queue_proc _qproc;
- unsigned long _key;
-} poll_table;
-
-static inline void poll_wait(struct file * filp, wait_queue_head_t * wait_address, poll_table *p)
-{
- if (p && p->_qproc && wait_address)
- p->_qproc(filp, wait_address, p);
-}
-
-/*
- * Return true if it is guaranteed that poll will not wait. This is the case
- * if the poll() of another file descriptor in the set got an event, so there
- * is no need for waiting.
- */
-static inline bool poll_does_not_wait(const poll_table *p)
-{
- return p == NULL || p->_qproc == NULL;
-}
-
-/*
- * Return the set of events that the application wants to poll for.
- * This is useful for drivers that need to know whether a DMA transfer has
- * to be started implicitly on poll(). You typically only want to do that
- * if the application is actually polling for POLLIN and/or POLLOUT.
- */
-static inline unsigned long poll_requested_events(const poll_table *p)
-{
- return p ? p->_key : ~0UL;
-}
-
-static inline void init_poll_funcptr(poll_table *pt, poll_queue_proc qproc)
-{
- pt->_qproc = qproc;
- pt->_key = ~0UL; /* all events enabled */
-}
-
-struct poll_table_entry {
- struct file *filp;
- unsigned long key;
- wait_queue_t wait;
- wait_queue_head_t *wait_address;
-};
-
-/*
- * Structures and helpers for select/poll syscall
- */
-struct poll_wqueues {
- poll_table pt;
- struct poll_table_page *table;
- struct task_struct *polling_task;
- int triggered;
- int error;
- int inline_index;
- struct poll_table_entry inline_entries[N_INLINE_POLL_ENTRIES];
-};
-
-extern void poll_initwait(struct poll_wqueues *pwq);
-extern void poll_freewait(struct poll_wqueues *pwq);
-extern int poll_schedule_timeout(struct poll_wqueues *pwq, int state,
- ktime_t *expires, unsigned long slack);
-extern long select_estimate_accuracy(struct timespec *tv);
-
-
-static inline int poll_schedule(struct poll_wqueues *pwq, int state)
-{
- return poll_schedule_timeout(pwq, state, NULL, 0);
-}
-
-/*
- * Scalable version of the fd_set.
- */
-
-typedef struct {
- unsigned long *in, *out, *ex;
- unsigned long *res_in, *res_out, *res_ex;
-} fd_set_bits;
-
-/*
- * How many longwords for "nr" bits?
- */
-#define FDS_BITPERLONG (8*sizeof(long))
-#define FDS_LONGS(nr) (((nr)+FDS_BITPERLONG-1)/FDS_BITPERLONG)
-#define FDS_BYTES(nr) (FDS_LONGS(nr)*sizeof(long))
-
-/*
- * We do a VERIFY_WRITE here even though we are only reading this time:
- * we'll write to it eventually..
- *
- * Use "unsigned long" accesses to let user-mode fd_set's be long-aligned.
- */
-static inline
-int get_fd_set(unsigned long nr, void __user *ufdset, unsigned long *fdset)
-{
- nr = FDS_BYTES(nr);
- if (ufdset)
- return copy_from_user(fdset, ufdset, nr) ? -EFAULT : 0;
-
- memset(fdset, 0, nr);
- return 0;
-}
-
-static inline unsigned long __must_check
-set_fd_set(unsigned long nr, void __user *ufdset, unsigned long *fdset)
-{
- if (ufdset)
- return __copy_to_user(ufdset, fdset, FDS_BYTES(nr));
- return 0;
-}
-
-static inline
-void zero_fd_set(unsigned long nr, unsigned long *fdset)
-{
- memset(fdset, 0, FDS_BYTES(nr));
-}
-
-#define MAX_INT64_SECONDS (((s64)(~((u64)0)>>1)/HZ)-1)
-
-extern int do_select(int n, fd_set_bits *fds, struct timespec *end_time);
-extern int do_sys_poll(struct pollfd __user * ufds, unsigned int nfds,
- struct timespec *end_time);
-extern int core_sys_select(int n, fd_set __user *inp, fd_set __user *outp,
- fd_set __user *exp, struct timespec *end_time);
-
-extern int poll_select_set_timeout(struct timespec *to, long sec, long nsec);
-
-#endif /* KERNEL */
-
-#endif /* _LINUX_POLL_H */
diff --git a/ANDROID_3.4.5/include/linux/posix-clock.h b/ANDROID_3.4.5/include/linux/posix-clock.h
deleted file mode 100644
index 34c4498b..00000000
--- a/ANDROID_3.4.5/include/linux/posix-clock.h
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * posix-clock.h - support for dynamic clock devices
- *
- * Copyright (C) 2010 OMICRON electronics GmbH
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-#ifndef _LINUX_POSIX_CLOCK_H_
-#define _LINUX_POSIX_CLOCK_H_
-
-#include <linux/cdev.h>
-#include <linux/fs.h>
-#include <linux/poll.h>
-#include <linux/posix-timers.h>
-#include <linux/rwsem.h>
-
-struct posix_clock;
-
-/**
- * struct posix_clock_operations - functional interface to the clock
- *
- * Every posix clock is represented by a character device. Drivers may
- * optionally offer extended capabilities by implementing the
- * character device methods. The character device file operations are
- * first handled by the clock device layer, then passed on to the
- * driver by calling these functions.
- *
- * @owner: The clock driver should set to THIS_MODULE
- * @clock_adjtime: Adjust the clock
- * @clock_gettime: Read the current time
- * @clock_getres: Get the clock resolution
- * @clock_settime: Set the current time value
- * @timer_create: Create a new timer
- * @timer_delete: Remove a previously created timer
- * @timer_gettime: Get remaining time and interval of a timer
- * @timer_settime: Set a timer's initial expiration and interval
- * @fasync: Optional character device fasync method
- * @mmap: Optional character device mmap method
- * @open: Optional character device open method
- * @release: Optional character device release method
- * @ioctl: Optional character device ioctl method
- * @read: Optional character device read method
- * @poll: Optional character device poll method
- */
-struct posix_clock_operations {
- struct module *owner;
-
- int (*clock_adjtime)(struct posix_clock *pc, struct timex *tx);
-
- int (*clock_gettime)(struct posix_clock *pc, struct timespec *ts);
-
- int (*clock_getres) (struct posix_clock *pc, struct timespec *ts);
-
- int (*clock_settime)(struct posix_clock *pc,
- const struct timespec *ts);
-
- int (*timer_create) (struct posix_clock *pc, struct k_itimer *kit);
-
- int (*timer_delete) (struct posix_clock *pc, struct k_itimer *kit);
-
- void (*timer_gettime)(struct posix_clock *pc,
- struct k_itimer *kit, struct itimerspec *tsp);
-
- int (*timer_settime)(struct posix_clock *pc,
- struct k_itimer *kit, int flags,
- struct itimerspec *tsp, struct itimerspec *old);
- /*
- * Optional character device methods:
- */
- int (*fasync) (struct posix_clock *pc,
- int fd, struct file *file, int on);
-
- long (*ioctl) (struct posix_clock *pc,
- unsigned int cmd, unsigned long arg);
-
- int (*mmap) (struct posix_clock *pc,
- struct vm_area_struct *vma);
-
- int (*open) (struct posix_clock *pc, fmode_t f_mode);
-
- uint (*poll) (struct posix_clock *pc,
- struct file *file, poll_table *wait);
-
- int (*release) (struct posix_clock *pc);
-
- ssize_t (*read) (struct posix_clock *pc,
- uint flags, char __user *buf, size_t cnt);
-};
-
-/**
- * struct posix_clock - represents a dynamic posix clock
- *
- * @ops: Functional interface to the clock
- * @cdev: Character device instance for this clock
- * @kref: Reference count.
- * @rwsem: Protects the 'zombie' field from concurrent access.
- * @zombie: If 'zombie' is true, then the hardware has disappeared.
- * @release: A function to free the structure when the reference count reaches
- * zero. May be NULL if structure is statically allocated.
- *
- * Drivers should embed their struct posix_clock within a private
- * structure, obtaining a reference to it during callbacks using
- * container_of().
- */
-struct posix_clock {
- struct posix_clock_operations ops;
- struct cdev cdev;
- struct kref kref;
- struct rw_semaphore rwsem;
- bool zombie;
- void (*release)(struct posix_clock *clk);
-};
-
-/**
- * posix_clock_register() - register a new clock
- * @clk: Pointer to the clock. Caller must provide 'ops' and 'release'
- * @devid: Allocated device id
- *
- * A clock driver calls this function to register itself with the
- * clock device subsystem. If 'clk' points to dynamically allocated
- * memory, then the caller must provide a 'release' function to free
- * that memory.
- *
- * Returns zero on success, non-zero otherwise.
- */
-int posix_clock_register(struct posix_clock *clk, dev_t devid);
-
-/**
- * posix_clock_unregister() - unregister a clock
- * @clk: Clock instance previously registered via posix_clock_register()
- *
- * A clock driver calls this function to remove itself from the clock
- * device subsystem. The posix_clock itself will remain (in an
- * inactive state) until its reference count drops to zero, at which
- * point it will be deallocated with its 'release' method.
- */
-void posix_clock_unregister(struct posix_clock *clk);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/posix-timers.h b/ANDROID_3.4.5/include/linux/posix-timers.h
deleted file mode 100644
index 042058fd..00000000
--- a/ANDROID_3.4.5/include/linux/posix-timers.h
+++ /dev/null
@@ -1,132 +0,0 @@
-#ifndef _linux_POSIX_TIMERS_H
-#define _linux_POSIX_TIMERS_H
-
-#include <linux/spinlock.h>
-#include <linux/list.h>
-#include <linux/sched.h>
-#include <linux/timex.h>
-#include <linux/alarmtimer.h>
-
-union cpu_time_count {
- cputime_t cpu;
- unsigned long long sched;
-};
-
-struct cpu_timer_list {
- struct list_head entry;
- union cpu_time_count expires, incr;
- struct task_struct *task;
- int firing;
-};
-
-/*
- * Bit fields within a clockid:
- *
- * The most significant 29 bits hold either a pid or a file descriptor.
- *
- * Bit 2 indicates whether a cpu clock refers to a thread or a process.
- *
- * Bits 1 and 0 give the type: PROF=0, VIRT=1, SCHED=2, or FD=3.
- *
- * A clockid is invalid if bits 2, 1, and 0 are all set.
- */
-#define CPUCLOCK_PID(clock) ((pid_t) ~((clock) >> 3))
-#define CPUCLOCK_PERTHREAD(clock) \
- (((clock) & (clockid_t) CPUCLOCK_PERTHREAD_MASK) != 0)
-
-#define CPUCLOCK_PERTHREAD_MASK 4
-#define CPUCLOCK_WHICH(clock) ((clock) & (clockid_t) CPUCLOCK_CLOCK_MASK)
-#define CPUCLOCK_CLOCK_MASK 3
-#define CPUCLOCK_PROF 0
-#define CPUCLOCK_VIRT 1
-#define CPUCLOCK_SCHED 2
-#define CPUCLOCK_MAX 3
-#define CLOCKFD CPUCLOCK_MAX
-#define CLOCKFD_MASK (CPUCLOCK_PERTHREAD_MASK|CPUCLOCK_CLOCK_MASK)
-
-#define MAKE_PROCESS_CPUCLOCK(pid, clock) \
- ((~(clockid_t) (pid) << 3) | (clockid_t) (clock))
-#define MAKE_THREAD_CPUCLOCK(tid, clock) \
- MAKE_PROCESS_CPUCLOCK((tid), (clock) | CPUCLOCK_PERTHREAD_MASK)
-
-#define FD_TO_CLOCKID(fd) ((~(clockid_t) (fd) << 3) | CLOCKFD)
-#define CLOCKID_TO_FD(clk) ((unsigned int) ~((clk) >> 3))
-
-/* POSIX.1b interval timer structure. */
-struct k_itimer {
- struct list_head list; /* free/ allocate list */
- spinlock_t it_lock;
- clockid_t it_clock; /* which timer type */
- timer_t it_id; /* timer id */
- int it_overrun; /* overrun on pending signal */
- int it_overrun_last; /* overrun on last delivered signal */
- int it_requeue_pending; /* waiting to requeue this timer */
-#define REQUEUE_PENDING 1
- int it_sigev_notify; /* notify word of sigevent struct */
- struct signal_struct *it_signal;
- union {
- struct pid *it_pid; /* pid of process to send signal to */
- struct task_struct *it_process; /* for clock_nanosleep */
- };
- struct sigqueue *sigq; /* signal queue entry. */
- union {
- struct {
- struct hrtimer timer;
- ktime_t interval;
- } real;
- struct cpu_timer_list cpu;
- struct {
- unsigned int clock;
- unsigned int node;
- unsigned long incr;
- unsigned long expires;
- } mmtimer;
- struct {
- struct alarm alarmtimer;
- ktime_t interval;
- } alarm;
- struct rcu_head rcu;
- } it;
-};
-
-struct k_clock {
- int (*clock_getres) (const clockid_t which_clock, struct timespec *tp);
- int (*clock_set) (const clockid_t which_clock,
- const struct timespec *tp);
- int (*clock_get) (const clockid_t which_clock, struct timespec * tp);
- int (*clock_adj) (const clockid_t which_clock, struct timex *tx);
- int (*timer_create) (struct k_itimer *timer);
- int (*nsleep) (const clockid_t which_clock, int flags,
- struct timespec *, struct timespec __user *);
- long (*nsleep_restart) (struct restart_block *restart_block);
- int (*timer_set) (struct k_itimer * timr, int flags,
- struct itimerspec * new_setting,
- struct itimerspec * old_setting);
- int (*timer_del) (struct k_itimer * timr);
-#define TIMER_RETRY 1
- void (*timer_get) (struct k_itimer * timr,
- struct itimerspec * cur_setting);
-};
-
-extern struct k_clock clock_posix_cpu;
-extern struct k_clock clock_posix_dynamic;
-
-void posix_timers_register_clock(const clockid_t clock_id, struct k_clock *new_clock);
-
-/* function to call to trigger timer event */
-int posix_timer_event(struct k_itimer *timr, int si_private);
-
-void posix_cpu_timer_schedule(struct k_itimer *timer);
-
-void run_posix_cpu_timers(struct task_struct *task);
-void posix_cpu_timers_exit(struct task_struct *task);
-void posix_cpu_timers_exit_group(struct task_struct *task);
-
-void set_process_cpu_timer(struct task_struct *task, unsigned int clock_idx,
- cputime_t *newval, cputime_t *oldval);
-
-long clock_nanosleep_restart(struct restart_block *restart_block);
-
-void update_rlimit_cpu(struct task_struct *task, unsigned long rlim_new);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/posix_acl.h b/ANDROID_3.4.5/include/linux/posix_acl.h
deleted file mode 100644
index 11bad91c..00000000
--- a/ANDROID_3.4.5/include/linux/posix_acl.h
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- File: linux/posix_acl.h
-
- (C) 2002 Andreas Gruenbacher, <a.gruenbacher@computer.org>
-*/
-
-
-#ifndef __LINUX_POSIX_ACL_H
-#define __LINUX_POSIX_ACL_H
-
-#include <linux/bug.h>
-#include <linux/slab.h>
-#include <linux/rcupdate.h>
-
-#define ACL_UNDEFINED_ID (-1)
-
-/* a_type field in acl_user_posix_entry_t */
-#define ACL_TYPE_ACCESS (0x8000)
-#define ACL_TYPE_DEFAULT (0x4000)
-
-/* e_tag entry in struct posix_acl_entry */
-#define ACL_USER_OBJ (0x01)
-#define ACL_USER (0x02)
-#define ACL_GROUP_OBJ (0x04)
-#define ACL_GROUP (0x08)
-#define ACL_MASK (0x10)
-#define ACL_OTHER (0x20)
-
-/* permissions in the e_perm field */
-#define ACL_READ (0x04)
-#define ACL_WRITE (0x02)
-#define ACL_EXECUTE (0x01)
-//#define ACL_ADD (0x08)
-//#define ACL_DELETE (0x10)
-
-struct posix_acl_entry {
- short e_tag;
- unsigned short e_perm;
- unsigned int e_id;
-};
-
-struct posix_acl {
- union {
- atomic_t a_refcount;
- struct rcu_head a_rcu;
- };
- unsigned int a_count;
- struct posix_acl_entry a_entries[0];
-};
-
-#define FOREACH_ACL_ENTRY(pa, acl, pe) \
- for(pa=(acl)->a_entries, pe=pa+(acl)->a_count; pa<pe; pa++)
-
-
-/*
- * Duplicate an ACL handle.
- */
-static inline struct posix_acl *
-posix_acl_dup(struct posix_acl *acl)
-{
- if (acl)
- atomic_inc(&acl->a_refcount);
- return acl;
-}
-
-/*
- * Free an ACL handle.
- */
-static inline void
-posix_acl_release(struct posix_acl *acl)
-{
- if (acl && atomic_dec_and_test(&acl->a_refcount))
- kfree_rcu(acl, a_rcu);
-}
-
-
-/* posix_acl.c */
-
-extern void posix_acl_init(struct posix_acl *, int);
-extern struct posix_acl *posix_acl_alloc(int, gfp_t);
-extern int posix_acl_valid(const struct posix_acl *);
-extern int posix_acl_permission(struct inode *, const struct posix_acl *, int);
-extern struct posix_acl *posix_acl_from_mode(umode_t, gfp_t);
-extern int posix_acl_equiv_mode(const struct posix_acl *, umode_t *);
-extern int posix_acl_create(struct posix_acl **, gfp_t, umode_t *);
-extern int posix_acl_chmod(struct posix_acl **, gfp_t, umode_t);
-
-extern struct posix_acl *get_posix_acl(struct inode *, int);
-extern int set_posix_acl(struct inode *, int, struct posix_acl *);
-
-#ifdef CONFIG_FS_POSIX_ACL
-static inline struct posix_acl **acl_by_type(struct inode *inode, int type)
-{
- switch (type) {
- case ACL_TYPE_ACCESS:
- return &inode->i_acl;
- case ACL_TYPE_DEFAULT:
- return &inode->i_default_acl;
- default:
- BUG();
- }
-}
-
-static inline struct posix_acl *get_cached_acl(struct inode *inode, int type)
-{
- struct posix_acl **p = acl_by_type(inode, type);
- struct posix_acl *acl = ACCESS_ONCE(*p);
- if (acl) {
- spin_lock(&inode->i_lock);
- acl = *p;
- if (acl != ACL_NOT_CACHED)
- acl = posix_acl_dup(acl);
- spin_unlock(&inode->i_lock);
- }
- return acl;
-}
-
-static inline struct posix_acl *get_cached_acl_rcu(struct inode *inode, int type)
-{
- return rcu_dereference(*acl_by_type(inode, type));
-}
-
-static inline void set_cached_acl(struct inode *inode,
- int type,
- struct posix_acl *acl)
-{
- struct posix_acl **p = acl_by_type(inode, type);
- struct posix_acl *old;
- spin_lock(&inode->i_lock);
- old = *p;
- rcu_assign_pointer(*p, posix_acl_dup(acl));
- spin_unlock(&inode->i_lock);
- if (old != ACL_NOT_CACHED)
- posix_acl_release(old);
-}
-
-static inline void forget_cached_acl(struct inode *inode, int type)
-{
- struct posix_acl **p = acl_by_type(inode, type);
- struct posix_acl *old;
- spin_lock(&inode->i_lock);
- old = *p;
- *p = ACL_NOT_CACHED;
- spin_unlock(&inode->i_lock);
- if (old != ACL_NOT_CACHED)
- posix_acl_release(old);
-}
-
-static inline void forget_all_cached_acls(struct inode *inode)
-{
- struct posix_acl *old_access, *old_default;
- spin_lock(&inode->i_lock);
- old_access = inode->i_acl;
- old_default = inode->i_default_acl;
- inode->i_acl = inode->i_default_acl = ACL_NOT_CACHED;
- spin_unlock(&inode->i_lock);
- if (old_access != ACL_NOT_CACHED)
- posix_acl_release(old_access);
- if (old_default != ACL_NOT_CACHED)
- posix_acl_release(old_default);
-}
-#endif
-
-static inline void cache_no_acl(struct inode *inode)
-{
-#ifdef CONFIG_FS_POSIX_ACL
- inode->i_acl = NULL;
- inode->i_default_acl = NULL;
-#endif
-}
-
-#endif /* __LINUX_POSIX_ACL_H */
diff --git a/ANDROID_3.4.5/include/linux/posix_acl_xattr.h b/ANDROID_3.4.5/include/linux/posix_acl_xattr.h
deleted file mode 100644
index 6e53c340..00000000
--- a/ANDROID_3.4.5/include/linux/posix_acl_xattr.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- File: linux/posix_acl_xattr.h
-
- Extended attribute system call representation of Access Control Lists.
-
- Copyright (C) 2000 by Andreas Gruenbacher <a.gruenbacher@computer.org>
- Copyright (C) 2002 SGI - Silicon Graphics, Inc <linux-xfs@oss.sgi.com>
- */
-#ifndef _POSIX_ACL_XATTR_H
-#define _POSIX_ACL_XATTR_H
-
-#include <linux/posix_acl.h>
-
-/* Extended attribute names */
-#define POSIX_ACL_XATTR_ACCESS "system.posix_acl_access"
-#define POSIX_ACL_XATTR_DEFAULT "system.posix_acl_default"
-
-/* Supported ACL a_version fields */
-#define POSIX_ACL_XATTR_VERSION 0x0002
-
-
-/* An undefined entry e_id value */
-#define ACL_UNDEFINED_ID (-1)
-
-typedef struct {
- __le16 e_tag;
- __le16 e_perm;
- __le32 e_id;
-} posix_acl_xattr_entry;
-
-typedef struct {
- __le32 a_version;
- posix_acl_xattr_entry a_entries[0];
-} posix_acl_xattr_header;
-
-
-static inline size_t
-posix_acl_xattr_size(int count)
-{
- return (sizeof(posix_acl_xattr_header) +
- (count * sizeof(posix_acl_xattr_entry)));
-}
-
-static inline int
-posix_acl_xattr_count(size_t size)
-{
- if (size < sizeof(posix_acl_xattr_header))
- return -1;
- size -= sizeof(posix_acl_xattr_header);
- if (size % sizeof(posix_acl_xattr_entry))
- return -1;
- return size / sizeof(posix_acl_xattr_entry);
-}
-
-struct posix_acl *posix_acl_from_xattr(const void *value, size_t size);
-int posix_acl_to_xattr(const struct posix_acl *acl, void *buffer, size_t size);
-
-#endif /* _POSIX_ACL_XATTR_H */
diff --git a/ANDROID_3.4.5/include/linux/posix_types.h b/ANDROID_3.4.5/include/linux/posix_types.h
deleted file mode 100644
index f04c98cf..00000000
--- a/ANDROID_3.4.5/include/linux/posix_types.h
+++ /dev/null
@@ -1,49 +0,0 @@
-#ifndef _LINUX_POSIX_TYPES_H
-#define _LINUX_POSIX_TYPES_H
-
-#include <linux/stddef.h>
-
-/*
- * This allows for 1024 file descriptors: if NR_OPEN is ever grown
- * beyond that you'll have to change this too. But 1024 fd's seem to be
- * enough even for such "real" unices like OSF/1, so hopefully this is
- * one limit that doesn't have to be changed [again].
- *
- * Note that POSIX wants the FD_CLEAR(fd,fdsetp) defines to be in
- * <sys/time.h> (and thus <linux/time.h>) - but this is a more logical
- * place for them. Solved by having dummy defines in <sys/time.h>.
- */
-
-/*
- * Those macros may have been defined in <gnu/types.h>. But we always
- * use the ones here.
- */
-#undef __NFDBITS
-#define __NFDBITS (8 * sizeof(unsigned long))
-
-#undef __FD_SETSIZE
-#define __FD_SETSIZE 1024
-
-#undef __FDSET_LONGS
-#define __FDSET_LONGS (__FD_SETSIZE/__NFDBITS)
-
-#undef __FDELT
-#define __FDELT(d) ((d) / __NFDBITS)
-
-#undef __FDMASK
-#define __FDMASK(d) (1UL << ((d) % __NFDBITS))
-
-typedef struct {
- unsigned long fds_bits [__FDSET_LONGS];
-} __kernel_fd_set;
-
-/* Type of a signal handler. */
-typedef void (*__kernel_sighandler_t)(int);
-
-/* Type of a SYSV IPC key. */
-typedef int __kernel_key_t;
-typedef int __kernel_mqd_t;
-
-#include <asm/posix_types.h>
-
-#endif /* _LINUX_POSIX_TYPES_H */
diff --git a/ANDROID_3.4.5/include/linux/power/bq27x00_battery.h b/ANDROID_3.4.5/include/linux/power/bq27x00_battery.h
deleted file mode 100644
index a857f719..00000000
--- a/ANDROID_3.4.5/include/linux/power/bq27x00_battery.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef __LINUX_BQ27X00_BATTERY_H__
-#define __LINUX_BQ27X00_BATTERY_H__
-
-/**
- * struct bq27000_plaform_data - Platform data for bq27000 devices
- * @name: Name of the battery. If NULL the driver will fallback to "bq27000".
- * @read: HDQ read callback.
- * This function should provide access to the HDQ bus the battery is
- * connected to.
- * The first parameter is a pointer to the battery device, the second the
- * register to be read. The return value should either be the content of
- * the passed register or an error value.
- */
-struct bq27000_platform_data {
- const char *name;
- int (*read)(struct device *dev, unsigned int);
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/power/charger-manager.h b/ANDROID_3.4.5/include/linux/power/charger-manager.h
deleted file mode 100644
index 4f75e531..00000000
--- a/ANDROID_3.4.5/include/linux/power/charger-manager.h
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * Copyright (C) 2011 Samsung Electronics Co., Ltd.
- * MyungJoo.Ham <myungjoo.ham@samsung.com>
- *
- * Charger Manager.
- * This framework enables to control and multiple chargers and to
- * monitor charging even in the context of suspend-to-RAM with
- * an interface combining the chargers.
- *
- * 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.
-**/
-
-#ifndef _CHARGER_MANAGER_H
-#define _CHARGER_MANAGER_H
-
-#include <linux/power_supply.h>
-
-enum data_source {
- CM_FUEL_GAUGE,
- CM_CHARGER_STAT,
-};
-
-enum polling_modes {
- CM_POLL_DISABLE = 0,
- CM_POLL_ALWAYS,
- CM_POLL_EXTERNAL_POWER_ONLY,
- CM_POLL_CHARGING_ONLY,
-};
-
-/**
- * struct charger_global_desc
- * @rtc_name: the name of RTC used to wake up the system from suspend.
- * @rtc_only_wakeup:
- * If the system is woken up by waekup-sources other than the RTC or
- * callbacks, Charger Manager should recognize with
- * rtc_only_wakeup() returning false.
- * If the RTC given to CM is the only wakeup reason,
- * rtc_only_wakeup should return true.
- */
-struct charger_global_desc {
- char *rtc_name;
-
- bool (*rtc_only_wakeup)(void);
-};
-
-/**
- * struct charger_desc
- * @psy_name: the name of power-supply-class for charger manager
- * @polling_mode:
- * Determine which polling mode will be used
- * @fullbatt_uV: voltage in microvolt
- * If it is not being charged and VBATT >= fullbatt_uV,
- * it is assumed to be full.
- * @polling_interval_ms: interval in millisecond at which
- * charger manager will monitor battery health
- * @battery_present:
- * Specify where information for existance of battery can be obtained
- * @psy_charger_stat: the names of power-supply for chargers
- * @num_charger_regulator: the number of entries in charger_regulators
- * @charger_regulators: array of regulator_bulk_data for chargers
- * @psy_fuel_gauge: the name of power-supply for fuel gauge
- * @temperature_out_of_range:
- * Determine whether the status is overheat or cold or normal.
- * return_value > 0: overheat
- * return_value == 0: normal
- * return_value < 0: cold
- * @measure_battery_temp:
- * true: measure battery temperature
- * false: measure ambient temperature
- */
-struct charger_desc {
- char *psy_name;
-
- enum polling_modes polling_mode;
- unsigned int polling_interval_ms;
-
- unsigned int fullbatt_uV;
-
- enum data_source battery_present;
-
- char **psy_charger_stat;
-
- int num_charger_regulators;
- struct regulator_bulk_data *charger_regulators;
-
- char *psy_fuel_gauge;
-
- int (*temperature_out_of_range)(int *mC);
- bool measure_battery_temp;
-};
-
-#define PSY_NAME_MAX 30
-
-/**
- * struct charger_manager
- * @entry: entry for list
- * @dev: device pointer
- * @desc: instance of charger_desc
- * @fuel_gauge: power_supply for fuel gauge
- * @charger_stat: array of power_supply for chargers
- * @charger_enabled: the state of charger
- * @emergency_stop:
- * When setting true, stop charging
- * @last_temp_mC: the measured temperature in milli-Celsius
- * @psy_name_buf: the name of power-supply-class for charger manager
- * @charger_psy: power_supply for charger manager
- * @status_save_ext_pwr_inserted:
- * saved status of external power before entering suspend-to-RAM
- * @status_save_batt:
- * saved status of battery before entering suspend-to-RAM
- */
-struct charger_manager {
- struct list_head entry;
- struct device *dev;
- struct charger_desc *desc;
-
- struct power_supply *fuel_gauge;
- struct power_supply **charger_stat;
-
- bool charger_enabled;
-
- int emergency_stop;
- int last_temp_mC;
-
- char psy_name_buf[PSY_NAME_MAX + 1];
- struct power_supply charger_psy;
-
- bool status_save_ext_pwr_inserted;
- bool status_save_batt;
-};
-
-#ifdef CONFIG_CHARGER_MANAGER
-extern int setup_charger_manager(struct charger_global_desc *gd);
-extern bool cm_suspend_again(void);
-#else
-static void __maybe_unused setup_charger_manager(struct charger_global_desc *gd)
-{ }
-
-static bool __maybe_unused cm_suspend_again(void)
-{
- return false;
-}
-#endif
-
-#endif /* _CHARGER_MANAGER_H */
diff --git a/ANDROID_3.4.5/include/linux/power/gpio-charger.h b/ANDROID_3.4.5/include/linux/power/gpio-charger.h
deleted file mode 100644
index de1dfe09..00000000
--- a/ANDROID_3.4.5/include/linux/power/gpio-charger.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2010, Lars-Peter Clausen <lars@metafoo.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.
- *
- * 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.
- *
- */
-
-#ifndef __LINUX_POWER_GPIO_CHARGER_H__
-#define __LINUX_POWER_GPIO_CHARGER_H__
-
-#include <linux/power_supply.h>
-#include <linux/types.h>
-
-/**
- * struct gpio_charger_platform_data - platform_data for gpio_charger devices
- * @name: Name for the chargers power_supply device
- * @type: Type of the charger
- * @gpio: GPIO which is used to indicate the chargers status
- * @gpio_active_low: Should be set to 1 if the GPIO is active low otherwise 0
- * @supplied_to: Array of battery names to which this chargers supplies power
- * @num_supplicants: Number of entries in the supplied_to array
- */
-struct gpio_charger_platform_data {
- const char *name;
- enum power_supply_type type;
-
- int gpio;
- int gpio_active_low;
-
- char **supplied_to;
- size_t num_supplicants;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/power/isp1704_charger.h b/ANDROID_3.4.5/include/linux/power/isp1704_charger.h
deleted file mode 100644
index 68096a6a..00000000
--- a/ANDROID_3.4.5/include/linux/power/isp1704_charger.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * ISP1704 USB Charger Detection driver
- *
- * Copyright (C) 2011 Nokia Corporation
- *
- * 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
- */
-
-
-#ifndef __ISP1704_CHARGER_H
-#define __ISP1704_CHARGER_H
-
-struct isp1704_charger_data {
- void (*set_power)(bool on);
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/power/jz4740-battery.h b/ANDROID_3.4.5/include/linux/power/jz4740-battery.h
deleted file mode 100644
index 19c9610c..00000000
--- a/ANDROID_3.4.5/include/linux/power/jz4740-battery.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright (C) 2009, Jiejing Zhang <kzjeef@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.
- *
- * 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.
- *
- */
-
-#ifndef __JZ4740_BATTERY_H
-#define __JZ4740_BATTERY_H
-
-struct jz_battery_platform_data {
- struct power_supply_info info;
- int gpio_charge; /* GPIO port of Charger state */
- int gpio_charge_active_low;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/power/max17042_battery.h b/ANDROID_3.4.5/include/linux/power/max17042_battery.h
deleted file mode 100644
index e01b167e..00000000
--- a/ANDROID_3.4.5/include/linux/power/max17042_battery.h
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * Fuel gauge driver for Maxim 17042 / 8966 / 8997
- * Note that Maxim 8966 and 8997 are mfd and this is its subdevice.
- *
- * Copyright (C) 2011 Samsung Electronics
- * MyungJoo Ham <myungjoo.ham@samsung.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
- */
-
-#ifndef __MAX17042_BATTERY_H_
-#define __MAX17042_BATTERY_H_
-
-#define MAX17042_STATUS_BattAbsent (1 << 3)
-#define MAX17042_BATTERY_FULL (100)
-#define MAX17042_DEFAULT_SNS_RESISTOR (10000)
-
-#define MAX17042_CHARACTERIZATION_DATA_SIZE 48
-
-enum max17042_register {
- MAX17042_STATUS = 0x00,
- MAX17042_VALRT_Th = 0x01,
- MAX17042_TALRT_Th = 0x02,
- MAX17042_SALRT_Th = 0x03,
- MAX17042_AtRate = 0x04,
- MAX17042_RepCap = 0x05,
- MAX17042_RepSOC = 0x06,
- MAX17042_Age = 0x07,
- MAX17042_TEMP = 0x08,
- MAX17042_VCELL = 0x09,
- MAX17042_Current = 0x0A,
- MAX17042_AvgCurrent = 0x0B,
-
- MAX17042_SOC = 0x0D,
- MAX17042_AvSOC = 0x0E,
- MAX17042_RemCap = 0x0F,
- MAX17042_FullCAP = 0x10,
- MAX17042_TTE = 0x11,
- MAX17042_V_empty = 0x12,
-
- MAX17042_RSLOW = 0x14,
-
- MAX17042_AvgTA = 0x16,
- MAX17042_Cycles = 0x17,
- MAX17042_DesignCap = 0x18,
- MAX17042_AvgVCELL = 0x19,
- MAX17042_MinMaxTemp = 0x1A,
- MAX17042_MinMaxVolt = 0x1B,
- MAX17042_MinMaxCurr = 0x1C,
- MAX17042_CONFIG = 0x1D,
- MAX17042_ICHGTerm = 0x1E,
- MAX17042_AvCap = 0x1F,
- MAX17042_ManName = 0x20,
- MAX17042_DevName = 0x21,
-
- MAX17042_FullCAPNom = 0x23,
- MAX17042_TempNom = 0x24,
- MAX17042_TempLim = 0x25,
- MAX17042_TempHot = 0x26,
- MAX17042_AIN = 0x27,
- MAX17042_LearnCFG = 0x28,
- MAX17042_FilterCFG = 0x29,
- MAX17042_RelaxCFG = 0x2A,
- MAX17042_MiscCFG = 0x2B,
- MAX17042_TGAIN = 0x2C,
- MAx17042_TOFF = 0x2D,
- MAX17042_CGAIN = 0x2E,
- MAX17042_COFF = 0x2F,
-
- MAX17042_MaskSOC = 0x32,
- MAX17042_SOC_empty = 0x33,
- MAX17042_T_empty = 0x34,
-
- MAX17042_FullCAP0 = 0x35,
- MAX17042_LAvg_empty = 0x36,
- MAX17042_FCTC = 0x37,
- MAX17042_RCOMP0 = 0x38,
- MAX17042_TempCo = 0x39,
- MAX17042_EmptyTempCo = 0x3A,
- MAX17042_K_empty0 = 0x3B,
- MAX17042_TaskPeriod = 0x3C,
- MAX17042_FSTAT = 0x3D,
-
- MAX17042_SHDNTIMER = 0x3F,
-
- MAX17042_dQacc = 0x45,
- MAX17042_dPacc = 0x46,
-
- MAX17042_VFSOC0 = 0x48,
-
- MAX17042_QH = 0x4D,
- MAX17042_QL = 0x4E,
-
- MAX17042_VFSOC0Enable = 0x60,
- MAX17042_MLOCKReg1 = 0x62,
- MAX17042_MLOCKReg2 = 0x63,
-
- MAX17042_MODELChrTbl = 0x80,
-
- MAX17042_OCV = 0xEE,
-
- MAX17042_OCVInternal = 0xFB,
-
- MAX17042_VFSOC = 0xFF,
-};
-
-/*
- * used for setting a register to a desired value
- * addr : address for a register
- * data : setting value for the register
- */
-struct max17042_reg_data {
- u8 addr;
- u16 data;
-};
-
-struct max17042_config_data {
- /* External current sense resistor value in milli-ohms */
- u32 cur_sense_val;
-
- /* A/D measurement */
- u16 tgain; /* 0x2C */
- u16 toff; /* 0x2D */
- u16 cgain; /* 0x2E */
- u16 coff; /* 0x2F */
-
- /* Alert / Status */
- u16 valrt_thresh; /* 0x01 */
- u16 talrt_thresh; /* 0x02 */
- u16 soc_alrt_thresh; /* 0x03 */
- u16 config; /* 0x01D */
- u16 shdntimer; /* 0x03F */
-
- /* App data */
- u16 design_cap; /* 0x18 */
- u16 ichgt_term; /* 0x1E */
-
- /* MG3 config */
- u16 at_rate; /* 0x04 */
- u16 learn_cfg; /* 0x28 */
- u16 filter_cfg; /* 0x29 */
- u16 relax_cfg; /* 0x2A */
- u16 misc_cfg; /* 0x2B */
- u16 masksoc; /* 0x32 */
-
- /* MG3 save and restore */
- u16 fullcap; /* 0x10 */
- u16 fullcapnom; /* 0x23 */
- u16 socempty; /* 0x33 */
- u16 lavg_empty; /* 0x36 */
- u16 dqacc; /* 0x45 */
- u16 dpacc; /* 0x46 */
-
- /* Cell technology from power_supply.h */
- u16 cell_technology;
-
- /* Cell Data */
- u16 vempty; /* 0x12 */
- u16 temp_nom; /* 0x24 */
- u16 temp_lim; /* 0x25 */
- u16 fctc; /* 0x37 */
- u16 rcomp0; /* 0x38 */
- u16 tcompc0; /* 0x39 */
- u16 empty_tempco; /* 0x3A */
- u16 kempty0; /* 0x3B */
- u16 cell_char_tbl[MAX17042_CHARACTERIZATION_DATA_SIZE];
-} __packed;
-
-struct max17042_platform_data {
- struct max17042_reg_data *init_data;
- struct max17042_config_data *config_data;
- int num_init_data; /* Number of enties in init_data array */
- bool enable_current_sense;
- bool enable_por_init; /* Use POR init from Maxim appnote */
-
- /*
- * R_sns in micro-ohms.
- * default 10000 (if r_sns = 0) as it is the recommended value by
- * the datasheet although it can be changed by board designers.
- */
- unsigned int r_sns;
-};
-
-#endif /* __MAX17042_BATTERY_H_ */
diff --git a/ANDROID_3.4.5/include/linux/power/max8903_charger.h b/ANDROID_3.4.5/include/linux/power/max8903_charger.h
deleted file mode 100644
index 24f51db8..00000000
--- a/ANDROID_3.4.5/include/linux/power/max8903_charger.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * max8903_charger.h - Maxim 8903 USB/Adapter Charger Driver
- *
- * Copyright (C) 2011 Samsung Electronics
- * MyungJoo Ham <myungjoo.ham@samsung.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
- *
- */
-
-#ifndef __MAX8903_CHARGER_H__
-#define __MAX8903_CHARGER_H__
-
-struct max8903_pdata {
- /*
- * GPIOs
- * cen, chg, flt, and usus are optional.
- * dok, dcm, and uok are not optional depending on the status of
- * dc_valid and usb_valid.
- */
- int cen; /* Charger Enable input */
- int dok; /* DC(Adapter) Power OK output */
- int uok; /* USB Power OK output */
- int chg; /* Charger status output */
- int flt; /* Fault output */
- int dcm; /* Current-Limit Mode input (1: DC, 2: USB) */
- int usus; /* USB Suspend Input (1: suspended) */
-
- /*
- * DC(Adapter/TA) is wired
- * When dc_valid is true,
- * dok and dcm should be valid.
- *
- * At least one of dc_valid or usb_valid should be true.
- */
- bool dc_valid;
- /*
- * USB is wired
- * When usb_valid is true,
- * uok should be valid.
- */
- bool usb_valid;
-};
-
-#endif /* __MAX8903_CHARGER_H__ */
diff --git a/ANDROID_3.4.5/include/linux/power/sbs-battery.h b/ANDROID_3.4.5/include/linux/power/sbs-battery.h
deleted file mode 100644
index 2b0a9d9f..00000000
--- a/ANDROID_3.4.5/include/linux/power/sbs-battery.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Gas Gauge driver for SBS Compliant Gas Gauges
- *
- * Copyright (c) 2010, NVIDIA Corporation.
- *
- * 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.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef __LINUX_POWER_SBS_BATTERY_H_
-#define __LINUX_POWER_SBS_BATTERY_H_
-
-#include <linux/power_supply.h>
-#include <linux/types.h>
-
-/**
- * struct sbs_platform_data - platform data for sbs devices
- * @battery_detect: GPIO which is used to detect battery presence
- * @battery_detect_present: gpio state when battery is present (0 / 1)
- * @i2c_retry_count: # of times to retry on i2c IO failure
- * @poll_retry_count: # of times to retry looking for new status after
- * external change notification
- */
-struct sbs_platform_data {
- int battery_detect;
- int battery_detect_present;
- int i2c_retry_count;
- int poll_retry_count;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/power/smb347-charger.h b/ANDROID_3.4.5/include/linux/power/smb347-charger.h
deleted file mode 100644
index e9aab944..00000000
--- a/ANDROID_3.4.5/include/linux/power/smb347-charger.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Summit Microelectronics SMB347 Battery Charger Driver
- *
- * Copyright (C) 2011, Intel Corporation
- *
- * Authors: Bruce E. Robertson <bruce.e.robertson@intel.com>
- * Mika Westerberg <mika.westerberg@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.
- */
-
-#ifndef SMB347_CHARGER_H
-#define SMB347_CHARGER_H
-
-#include <linux/types.h>
-#include <linux/power_supply.h>
-
-enum {
- /* use the default compensation method */
- SMB347_SOFT_TEMP_COMPENSATE_DEFAULT = -1,
-
- SMB347_SOFT_TEMP_COMPENSATE_NONE,
- SMB347_SOFT_TEMP_COMPENSATE_CURRENT,
- SMB347_SOFT_TEMP_COMPENSATE_VOLTAGE,
-};
-
-/* Use default factory programmed value for hard/soft temperature limit */
-#define SMB347_TEMP_USE_DEFAULT -273
-
-/*
- * Charging enable can be controlled by software (via i2c) by
- * smb347-charger driver or by EN pin (active low/high).
- */
-enum smb347_chg_enable {
- SMB347_CHG_ENABLE_SW,
- SMB347_CHG_ENABLE_PIN_ACTIVE_LOW,
- SMB347_CHG_ENABLE_PIN_ACTIVE_HIGH,
-};
-
-/**
- * struct smb347_charger_platform_data - platform data for SMB347 charger
- * @battery_info: Information about the battery
- * @max_charge_current: maximum current (in uA) the battery can be charged
- * @max_charge_voltage: maximum voltage (in uV) the battery can be charged
- * @pre_charge_current: current (in uA) to use in pre-charging phase
- * @termination_current: current (in uA) used to determine when the
- * charging cycle terminates
- * @pre_to_fast_voltage: voltage (in uV) treshold used for transitioning to
- * pre-charge to fast charge mode
- * @mains_current_limit: maximum input current drawn from AC/DC input (in uA)
- * @usb_hc_current_limit: maximum input high current (in uA) drawn from USB
- * input
- * @chip_temp_threshold: die temperature where device starts limiting charge
- * current [%100 - %130] (in degree C)
- * @soft_cold_temp_limit: soft cold temperature limit [%0 - %15] (in degree C),
- * granularity is 5 deg C.
- * @soft_hot_temp_limit: soft hot temperature limit [%40 - %55] (in degree C),
- * granularity is 5 deg C.
- * @hard_cold_temp_limit: hard cold temperature limit [%-5 - %10] (in degree C),
- * granularity is 5 deg C.
- * @hard_hot_temp_limit: hard hot temperature limit [%50 - %65] (in degree C),
- * granularity is 5 deg C.
- * @suspend_on_hard_temp_limit: suspend charging when hard limit is hit
- * @soft_temp_limit_compensation: compensation method when soft temperature
- * limit is hit
- * @charge_current_compensation: current (in uA) for charging compensation
- * current when temperature hits soft limits
- * @use_mains: AC/DC input can be used
- * @use_usb: USB input can be used
- * @use_usb_otg: USB OTG output can be used (not implemented yet)
- * @irq_gpio: GPIO number used for interrupts (%-1 if not used)
- * @enable_control: how charging enable/disable is controlled
- * (driver/pin controls)
- *
- * @use_main, @use_usb, and @use_usb_otg are means to enable/disable
- * hardware support for these. This is useful when we want to have for
- * example OTG charging controlled via OTG transceiver driver and not by
- * the SMB347 hardware.
- *
- * Hard and soft temperature limit values are given as described in the
- * device data sheet and assuming NTC beta value is %3750. Even if this is
- * not the case, these values should be used. They can be mapped to the
- * corresponding NTC beta values with the help of table %2 in the data
- * sheet. So for example if NTC beta is %3375 and we want to program hard
- * hot limit to be %53 deg C, @hard_hot_temp_limit should be set to %50.
- *
- * If zero value is given in any of the current and voltage values, the
- * factory programmed default will be used. For soft/hard temperature
- * values, pass in %SMB347_TEMP_USE_DEFAULT instead.
- */
-struct smb347_charger_platform_data {
- struct power_supply_info battery_info;
- unsigned int max_charge_current;
- unsigned int max_charge_voltage;
- unsigned int pre_charge_current;
- unsigned int termination_current;
- unsigned int pre_to_fast_voltage;
- unsigned int mains_current_limit;
- unsigned int usb_hc_current_limit;
- unsigned int chip_temp_threshold;
- int soft_cold_temp_limit;
- int soft_hot_temp_limit;
- int hard_cold_temp_limit;
- int hard_hot_temp_limit;
- bool suspend_on_hard_temp_limit;
- unsigned int soft_temp_limit_compensation;
- unsigned int charge_current_compensation;
- bool use_mains;
- bool use_usb;
- bool use_usb_otg;
- bool disable_automatic_recharge;
- int irq_gpio;
- bool disable_stat_interrupts;
- enum smb347_chg_enable enable_control;
- bool usb_mode_pin_ctrl;
- char **supplied_to;
- size_t num_supplicants;
- int en_gpio;
-};
-
-#endif /* SMB347_CHARGER_H */
diff --git a/ANDROID_3.4.5/include/linux/power/wmt_battery.h b/ANDROID_3.4.5/include/linux/power/wmt_battery.h
deleted file mode 100755
index e721fa5e..00000000
--- a/ANDROID_3.4.5/include/linux/power/wmt_battery.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright (C) 2013 WonderMedia Technologies, Inc.
- *
- * 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.
- *
- * 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.
- */
-
-#ifndef __LINUX_POWER_WMT_BATTERY_H__
-#define __LINUX_POWER_WMT_BATTERY_H__
-
-static inline int prefixcmp(const char *str, const char *prefix)
-{
- for (; ; str++, prefix++)
- if (!*prefix)
- return 0;
- else if (*str != *prefix)
- return (unsigned char)*prefix - (unsigned char)*str;
-}
-
-#include <linux/power_supply.h>
-#include <mach/hardware.h>
-
-enum cable_type {
- CABLE_TYPE_DC,
- CABLE_TYPE_USB,
- CABLE_TYPE_UNKNOWN,
-};
-
-enum {
- CURRENT_SWITCH_DYNAMIC,
- CURRENT_SWITCH_SLEEP,
-};
-
-enum {
- PC_CONNECTED_NOT_CHARGING,
- PC_CONNECTED_CHARGING,
-};
-
-#define USB_BASE_ADD (0xD8007800+WMT_MMAP_OFFSET)
-
-static inline int wmt_is_otg_plugin(void)
-{
- return !(REG8_VAL(USB_BASE_ADD + 0x7F2) & BIT0);
-}
-
-static inline int wmt_is_dc_plugin(void)
-{
- return (REG8_VAL(PM_CTRL_BASE_ADDR + 0x005d) & 0x01);
-}
-
-static inline void wmt_dcdet_irq_enable(void)
-{
- uint32_t val;
- // dcdet wakeup interrupt
- PMTC_VAL |= BIT27;
- val = PMWTC_VAL;
- val &= ~(0xf << 12);
- val |= 0x04 << 12;
- PMWTC_VAL = val;
- PMWE_VAL |= BIT27;
-
- // dcdet interrupt
- /* Register dcdet interrupt, edge trigger */
- PMCIE_VAL |= BIT27;
- WK_TRG_EN_VAL |= BIT27;
- pmc_enable_wakeup_isr(WKS_DCDET, 4);
-}
-
-static inline void wmt_dcdet_irq_disable(void)
-{
- pmc_disable_wakeup_isr(WKS_DCDET);
-}
-
-static inline int charger_get_status(void)
-{
- struct power_supply *charger;
- union power_supply_propval val;
-
- charger = power_supply_get_by_name("ac");
- if (!charger) {
- pr_err("get ac power supply failed\n");
- return -ENODEV;
- }
-
- charger->get_property(charger, POWER_SUPPLY_PROP_STATUS, &val);
- return val.intval;
-}
-
-static inline int charger_is_full(void)
-{
- return charger_get_status() == POWER_SUPPLY_STATUS_FULL;
-}
-
-static inline int wmt_charger_is_dc_plugin(void)
-{
- return power_supply_is_system_supplied();
-}
-
-extern int wmt_is_pc_connected(void);
-extern void wmt_do_pc_connected(void);
-
-extern int parse_charger_led(void);
-extern void led_power_enable(int enable);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/power_supply.h b/ANDROID_3.4.5/include/linux/power_supply.h
deleted file mode 100644
index e1f54479..00000000
--- a/ANDROID_3.4.5/include/linux/power_supply.h
+++ /dev/null
@@ -1,279 +0,0 @@
-/*
- * Universal power supply monitor class
- *
- * Copyright © 2007 Anton Vorontsov <cbou@mail.ru>
- * Copyright © 2004 Szabolcs Gyurko
- * Copyright © 2003 Ian Molton <spyro@f2s.com>
- *
- * Modified: 2004, Oct Szabolcs Gyurko
- *
- * You may use this code as per GPL version 2
- */
-
-#ifndef __LINUX_POWER_SUPPLY_H__
-#define __LINUX_POWER_SUPPLY_H__
-
-#include <linux/workqueue.h>
-#include <linux/leds.h>
-
-struct device;
-
-/*
- * All voltages, currents, charges, energies, time and temperatures in uV,
- * µA, µAh, µWh, seconds and tenths of degree Celsius unless otherwise
- * stated. It's driver's job to convert its raw values to units in which
- * this class operates.
- */
-
-/*
- * For systems where the charger determines the maximum battery capacity
- * the min and max fields should be used to present these values to user
- * space. Unused/unknown fields will not appear in sysfs.
- */
-
-enum {
- POWER_SUPPLY_STATUS_UNKNOWN = 0,
- POWER_SUPPLY_STATUS_CHARGING,
- POWER_SUPPLY_STATUS_DISCHARGING,
- POWER_SUPPLY_STATUS_NOT_CHARGING,
- POWER_SUPPLY_STATUS_FULL,
-};
-
-enum {
- POWER_SUPPLY_CHARGE_TYPE_UNKNOWN = 0,
- POWER_SUPPLY_CHARGE_TYPE_NONE,
- POWER_SUPPLY_CHARGE_TYPE_TRICKLE,
- POWER_SUPPLY_CHARGE_TYPE_FAST,
-};
-
-enum {
- POWER_SUPPLY_HEALTH_UNKNOWN = 0,
- POWER_SUPPLY_HEALTH_GOOD,
- POWER_SUPPLY_HEALTH_OVERHEAT,
- POWER_SUPPLY_HEALTH_DEAD,
- POWER_SUPPLY_HEALTH_OVERVOLTAGE,
- POWER_SUPPLY_HEALTH_UNSPEC_FAILURE,
- POWER_SUPPLY_HEALTH_COLD,
-};
-
-enum {
- POWER_SUPPLY_TECHNOLOGY_UNKNOWN = 0,
- POWER_SUPPLY_TECHNOLOGY_NiMH,
- POWER_SUPPLY_TECHNOLOGY_LION,
- POWER_SUPPLY_TECHNOLOGY_LIPO,
- POWER_SUPPLY_TECHNOLOGY_LiFe,
- POWER_SUPPLY_TECHNOLOGY_NiCd,
- POWER_SUPPLY_TECHNOLOGY_LiMn,
-};
-
-enum {
- POWER_SUPPLY_CAPACITY_LEVEL_UNKNOWN = 0,
- POWER_SUPPLY_CAPACITY_LEVEL_CRITICAL,
- POWER_SUPPLY_CAPACITY_LEVEL_LOW,
- POWER_SUPPLY_CAPACITY_LEVEL_NORMAL,
- POWER_SUPPLY_CAPACITY_LEVEL_HIGH,
- POWER_SUPPLY_CAPACITY_LEVEL_FULL,
-};
-
-enum {
- POWER_SUPPLY_SCOPE_UNKNOWN = 0,
- POWER_SUPPLY_SCOPE_SYSTEM,
- POWER_SUPPLY_SCOPE_DEVICE,
-};
-
-enum power_supply_property {
- /* Properties of type `int' */
- POWER_SUPPLY_PROP_STATUS = 0,
- POWER_SUPPLY_PROP_CHARGE_TYPE,
- POWER_SUPPLY_PROP_HEALTH,
- POWER_SUPPLY_PROP_PRESENT,
- POWER_SUPPLY_PROP_ONLINE,
- POWER_SUPPLY_PROP_TECHNOLOGY,
- POWER_SUPPLY_PROP_CYCLE_COUNT,
- POWER_SUPPLY_PROP_VOLTAGE_MAX,
- POWER_SUPPLY_PROP_VOLTAGE_MIN,
- POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN,
- POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN,
- POWER_SUPPLY_PROP_VOLTAGE_NOW,
- POWER_SUPPLY_PROP_VOLTAGE_AVG,
- POWER_SUPPLY_PROP_CURRENT_MAX,
- POWER_SUPPLY_PROP_CURRENT_NOW,
- POWER_SUPPLY_PROP_CURRENT_AVG,
- POWER_SUPPLY_PROP_POWER_NOW,
- POWER_SUPPLY_PROP_POWER_AVG,
- POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN,
- POWER_SUPPLY_PROP_CHARGE_EMPTY_DESIGN,
- POWER_SUPPLY_PROP_CHARGE_FULL,
- POWER_SUPPLY_PROP_CHARGE_EMPTY,
- POWER_SUPPLY_PROP_CHARGE_NOW,
- POWER_SUPPLY_PROP_CHARGE_AVG,
- POWER_SUPPLY_PROP_CHARGE_COUNTER,
- POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN,
- POWER_SUPPLY_PROP_ENERGY_EMPTY_DESIGN,
- POWER_SUPPLY_PROP_ENERGY_FULL,
- POWER_SUPPLY_PROP_ENERGY_EMPTY,
- POWER_SUPPLY_PROP_ENERGY_NOW,
- POWER_SUPPLY_PROP_ENERGY_AVG,
- POWER_SUPPLY_PROP_CAPACITY, /* in percents! */
- POWER_SUPPLY_PROP_CAPACITY_LEVEL,
- POWER_SUPPLY_PROP_TEMP,
- POWER_SUPPLY_PROP_TEMP_AMBIENT,
- POWER_SUPPLY_PROP_TIME_TO_EMPTY_NOW,
- POWER_SUPPLY_PROP_TIME_TO_EMPTY_AVG,
- POWER_SUPPLY_PROP_TIME_TO_FULL_NOW,
- POWER_SUPPLY_PROP_TIME_TO_FULL_AVG,
- POWER_SUPPLY_PROP_TYPE, /* use power_supply.type instead */
- POWER_SUPPLY_PROP_SCOPE,
- /* Local extensions */
- POWER_SUPPLY_PROP_USB_HC,
- POWER_SUPPLY_PROP_USB_OTG,
- POWER_SUPPLY_PROP_CHARGE_ENABLED,
- /* Properties of type `const char *' */
- POWER_SUPPLY_PROP_MODEL_NAME,
- POWER_SUPPLY_PROP_MANUFACTURER,
- POWER_SUPPLY_PROP_SERIAL_NUMBER,
-};
-
-enum power_supply_type {
- POWER_SUPPLY_TYPE_UNKNOWN = 0,
- POWER_SUPPLY_TYPE_BATTERY,
- POWER_SUPPLY_TYPE_UPS,
- POWER_SUPPLY_TYPE_MAINS,
- POWER_SUPPLY_TYPE_USB, /* Standard Downstream Port */
- POWER_SUPPLY_TYPE_USB_DCP, /* Dedicated Charging Port */
- POWER_SUPPLY_TYPE_USB_CDP, /* Charging Downstream Port */
- POWER_SUPPLY_TYPE_USB_ACA, /* Accessory Charger Adapters */
-};
-
-union power_supply_propval {
- int intval;
- const char *strval;
-};
-
-struct power_supply {
- const char *name;
- enum power_supply_type type;
- enum power_supply_property *properties;
- size_t num_properties;
-
- char **supplied_to;
- size_t num_supplicants;
-
- int (*get_property)(struct power_supply *psy,
- enum power_supply_property psp,
- union power_supply_propval *val);
- int (*set_property)(struct power_supply *psy,
- enum power_supply_property psp,
- const union power_supply_propval *val);
- int (*property_is_writeable)(struct power_supply *psy,
- enum power_supply_property psp);
- void (*external_power_changed)(struct power_supply *psy);
- void (*set_charged)(struct power_supply *psy);
-
- /* For APM emulation, think legacy userspace. */
- int use_for_apm;
-
- /* private */
- struct device *dev;
- struct work_struct changed_work;
- spinlock_t changed_lock;
- bool changed;
-
-#ifdef CONFIG_LEDS_TRIGGERS
- struct led_trigger *charging_full_trig;
- char *charging_full_trig_name;
- struct led_trigger *charging_trig;
- char *charging_trig_name;
- struct led_trigger *full_trig;
- char *full_trig_name;
- struct led_trigger *online_trig;
- char *online_trig_name;
- struct led_trigger *charging_blink_full_solid_trig;
- char *charging_blink_full_solid_trig_name;
-#endif
-};
-
-/*
- * This is recommended structure to specify static power supply parameters.
- * Generic one, parametrizable for different power supplies. Power supply
- * class itself does not use it, but that's what implementing most platform
- * drivers, should try reuse for consistency.
- */
-
-struct power_supply_info {
- const char *name;
- int technology;
- int voltage_max_design;
- int voltage_min_design;
- int charge_full_design;
- int charge_empty_design;
- int energy_full_design;
- int energy_empty_design;
- int use_for_apm;
-};
-
-extern struct power_supply *power_supply_get_by_name(char *name);
-extern void power_supply_changed(struct power_supply *psy);
-extern int power_supply_am_i_supplied(struct power_supply *psy);
-extern int power_supply_set_battery_charged(struct power_supply *psy);
-
-#if defined(CONFIG_POWER_SUPPLY) || defined(CONFIG_POWER_SUPPLY_MODULE)
-extern int power_supply_is_system_supplied(void);
-#else
-static inline int power_supply_is_system_supplied(void) { return -ENOSYS; }
-#endif
-
-extern int power_supply_register(struct device *parent,
- struct power_supply *psy);
-extern void power_supply_unregister(struct power_supply *psy);
-extern int power_supply_powers(struct power_supply *psy, struct device *dev);
-
-/* For APM emulation, think legacy userspace. */
-extern struct class *power_supply_class;
-
-static inline bool power_supply_is_amp_property(enum power_supply_property psp)
-{
- switch (psp) {
- case POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN:
- case POWER_SUPPLY_PROP_CHARGE_EMPTY_DESIGN:
- case POWER_SUPPLY_PROP_CHARGE_FULL:
- case POWER_SUPPLY_PROP_CHARGE_EMPTY:
- case POWER_SUPPLY_PROP_CHARGE_NOW:
- case POWER_SUPPLY_PROP_CHARGE_AVG:
- case POWER_SUPPLY_PROP_CHARGE_COUNTER:
- case POWER_SUPPLY_PROP_CURRENT_MAX:
- case POWER_SUPPLY_PROP_CURRENT_NOW:
- case POWER_SUPPLY_PROP_CURRENT_AVG:
- return 1;
- default:
- break;
- }
-
- return 0;
-}
-
-static inline bool power_supply_is_watt_property(enum power_supply_property psp)
-{
- switch (psp) {
- case POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN:
- case POWER_SUPPLY_PROP_ENERGY_EMPTY_DESIGN:
- case POWER_SUPPLY_PROP_ENERGY_FULL:
- case POWER_SUPPLY_PROP_ENERGY_EMPTY:
- case POWER_SUPPLY_PROP_ENERGY_NOW:
- case POWER_SUPPLY_PROP_ENERGY_AVG:
- case POWER_SUPPLY_PROP_VOLTAGE_MAX:
- case POWER_SUPPLY_PROP_VOLTAGE_MIN:
- case POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN:
- case POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN:
- case POWER_SUPPLY_PROP_VOLTAGE_NOW:
- case POWER_SUPPLY_PROP_VOLTAGE_AVG:
- case POWER_SUPPLY_PROP_POWER_NOW:
- return 1;
- default:
- break;
- }
-
- return 0;
-}
-
-#endif /* __LINUX_POWER_SUPPLY_H__ */
diff --git a/ANDROID_3.4.5/include/linux/ppdev.h b/ANDROID_3.4.5/include/linux/ppdev.h
deleted file mode 100644
index dc18c5d2..00000000
--- a/ANDROID_3.4.5/include/linux/ppdev.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * linux/include/linux/ppdev.h
- *
- * User-space parallel port device driver (header file).
- *
- * Copyright (C) 1998-9 Tim Waugh <tim@cyberelk.demon.co.uk>
- *
- * 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.
- *
- * Added PPGETTIME/PPSETTIME, Fred Barnes, 1999
- * Added PPGETMODES/PPGETMODE/PPGETPHASE, Fred Barnes <frmb2@ukc.ac.uk>, 03/01/2001
- */
-
-#define PP_IOCTL 'p'
-
-/* Set mode for read/write (e.g. IEEE1284_MODE_EPP) */
-#define PPSETMODE _IOW(PP_IOCTL, 0x80, int)
-
-/* Read status */
-#define PPRSTATUS _IOR(PP_IOCTL, 0x81, unsigned char)
-#define PPWSTATUS OBSOLETE__IOW(PP_IOCTL, 0x82, unsigned char)
-
-/* Read/write control */
-#define PPRCONTROL _IOR(PP_IOCTL, 0x83, unsigned char)
-#define PPWCONTROL _IOW(PP_IOCTL, 0x84, unsigned char)
-
-struct ppdev_frob_struct {
- unsigned char mask;
- unsigned char val;
-};
-#define PPFCONTROL _IOW(PP_IOCTL, 0x8e, struct ppdev_frob_struct)
-
-/* Read/write data */
-#define PPRDATA _IOR(PP_IOCTL, 0x85, unsigned char)
-#define PPWDATA _IOW(PP_IOCTL, 0x86, unsigned char)
-
-/* Read/write econtrol (not used) */
-#define PPRECONTROL OBSOLETE__IOR(PP_IOCTL, 0x87, unsigned char)
-#define PPWECONTROL OBSOLETE__IOW(PP_IOCTL, 0x88, unsigned char)
-
-/* Read/write FIFO (not used) */
-#define PPRFIFO OBSOLETE__IOR(PP_IOCTL, 0x89, unsigned char)
-#define PPWFIFO OBSOLETE__IOW(PP_IOCTL, 0x8a, unsigned char)
-
-/* Claim the port to start using it */
-#define PPCLAIM _IO(PP_IOCTL, 0x8b)
-
-/* Release the port when you aren't using it */
-#define PPRELEASE _IO(PP_IOCTL, 0x8c)
-
-/* Yield the port (release it if another driver is waiting,
- * then reclaim) */
-#define PPYIELD _IO(PP_IOCTL, 0x8d)
-
-/* Register device exclusively (must be before PPCLAIM). */
-#define PPEXCL _IO(PP_IOCTL, 0x8f)
-
-/* Data line direction: non-zero for input mode. */
-#define PPDATADIR _IOW(PP_IOCTL, 0x90, int)
-
-/* Negotiate a particular IEEE 1284 mode. */
-#define PPNEGOT _IOW(PP_IOCTL, 0x91, int)
-
-/* Set control lines when an interrupt occurs. */
-#define PPWCTLONIRQ _IOW(PP_IOCTL, 0x92, unsigned char)
-
-/* Clear (and return) interrupt count. */
-#define PPCLRIRQ _IOR(PP_IOCTL, 0x93, int)
-
-/* Set the IEEE 1284 phase that we're in (e.g. IEEE1284_PH_FWD_IDLE) */
-#define PPSETPHASE _IOW(PP_IOCTL, 0x94, int)
-
-/* Set and get port timeout (struct timeval's) */
-#define PPGETTIME _IOR(PP_IOCTL, 0x95, struct timeval)
-#define PPSETTIME _IOW(PP_IOCTL, 0x96, struct timeval)
-
-/* Get available modes (what the hardware can do) */
-#define PPGETMODES _IOR(PP_IOCTL, 0x97, unsigned int)
-
-/* Get the current mode and phaze */
-#define PPGETMODE _IOR(PP_IOCTL, 0x98, int)
-#define PPGETPHASE _IOR(PP_IOCTL, 0x99, int)
-
-/* get/set flags */
-#define PPGETFLAGS _IOR(PP_IOCTL, 0x9a, int)
-#define PPSETFLAGS _IOW(PP_IOCTL, 0x9b, int)
-
-/* flags visible to the world */
-#define PP_FASTWRITE (1<<2)
-#define PP_FASTREAD (1<<3)
-#define PP_W91284PIC (1<<4)
-
-/* only masks user-visible flags */
-#define PP_FLAGMASK (PP_FASTWRITE | PP_FASTREAD | PP_W91284PIC)
-
-
diff --git a/ANDROID_3.4.5/include/linux/ppp-comp.h b/ANDROID_3.4.5/include/linux/ppp-comp.h
deleted file mode 100644
index e53ff659..00000000
--- a/ANDROID_3.4.5/include/linux/ppp-comp.h
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * ppp-comp.h - Definitions for doing PPP packet compression.
- *
- * Copyright 1994-1998 Paul Mackerras.
- *
- * 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.
- */
-#ifndef _NET_PPP_COMP_H
-#define _NET_PPP_COMP_H
-
-struct module;
-
-/*
- * The following symbols control whether we include code for
- * various compression methods.
- */
-
-#ifndef DO_BSD_COMPRESS
-#define DO_BSD_COMPRESS 1 /* by default, include BSD-Compress */
-#endif
-#ifndef DO_DEFLATE
-#define DO_DEFLATE 1 /* by default, include Deflate */
-#endif
-#define DO_PREDICTOR_1 0
-#define DO_PREDICTOR_2 0
-
-/*
- * Structure giving methods for compression/decompression.
- */
-
-struct compressor {
- int compress_proto; /* CCP compression protocol number */
-
- /* Allocate space for a compressor (transmit side) */
- void *(*comp_alloc) (unsigned char *options, int opt_len);
-
- /* Free space used by a compressor */
- void (*comp_free) (void *state);
-
- /* Initialize a compressor */
- int (*comp_init) (void *state, unsigned char *options,
- int opt_len, int unit, int opthdr, int debug);
-
- /* Reset a compressor */
- void (*comp_reset) (void *state);
-
- /* Compress a packet */
- int (*compress) (void *state, unsigned char *rptr,
- unsigned char *obuf, int isize, int osize);
-
- /* Return compression statistics */
- void (*comp_stat) (void *state, struct compstat *stats);
-
- /* Allocate space for a decompressor (receive side) */
- void *(*decomp_alloc) (unsigned char *options, int opt_len);
-
- /* Free space used by a decompressor */
- void (*decomp_free) (void *state);
-
- /* Initialize a decompressor */
- int (*decomp_init) (void *state, unsigned char *options,
- int opt_len, int unit, int opthdr, int mru,
- int debug);
-
- /* Reset a decompressor */
- void (*decomp_reset) (void *state);
-
- /* Decompress a packet. */
- int (*decompress) (void *state, unsigned char *ibuf, int isize,
- unsigned char *obuf, int osize);
-
- /* Update state for an incompressible packet received */
- void (*incomp) (void *state, unsigned char *ibuf, int icnt);
-
- /* Return decompression statistics */
- void (*decomp_stat) (void *state, struct compstat *stats);
-
- /* Used in locking compressor modules */
- struct module *owner;
- /* Extra skb space needed by the compressor algorithm */
- unsigned int comp_extra;
-};
-
-/*
- * The return value from decompress routine is the length of the
- * decompressed packet if successful, otherwise DECOMP_ERROR
- * or DECOMP_FATALERROR if an error occurred.
- *
- * We need to make this distinction so that we can disable certain
- * useful functionality, namely sending a CCP reset-request as a result
- * of an error detected after decompression. This is to avoid infringing
- * a patent held by Motorola.
- * Don't you just lurve software patents.
- */
-
-#define DECOMP_ERROR -1 /* error detected before decomp. */
-#define DECOMP_FATALERROR -2 /* error detected after decomp. */
-
-/*
- * CCP codes.
- */
-
-#define CCP_CONFREQ 1
-#define CCP_CONFACK 2
-#define CCP_TERMREQ 5
-#define CCP_TERMACK 6
-#define CCP_RESETREQ 14
-#define CCP_RESETACK 15
-
-/*
- * Max # bytes for a CCP option
- */
-
-#define CCP_MAX_OPTION_LENGTH 32
-
-/*
- * Parts of a CCP packet.
- */
-
-#define CCP_CODE(dp) ((dp)[0])
-#define CCP_ID(dp) ((dp)[1])
-#define CCP_LENGTH(dp) (((dp)[2] << 8) + (dp)[3])
-#define CCP_HDRLEN 4
-
-#define CCP_OPT_CODE(dp) ((dp)[0])
-#define CCP_OPT_LENGTH(dp) ((dp)[1])
-#define CCP_OPT_MINLEN 2
-
-/*
- * Definitions for BSD-Compress.
- */
-
-#define CI_BSD_COMPRESS 21 /* config. option for BSD-Compress */
-#define CILEN_BSD_COMPRESS 3 /* length of config. option */
-
-/* Macros for handling the 3rd byte of the BSD-Compress config option. */
-#define BSD_NBITS(x) ((x) & 0x1F) /* number of bits requested */
-#define BSD_VERSION(x) ((x) >> 5) /* version of option format */
-#define BSD_CURRENT_VERSION 1 /* current version number */
-#define BSD_MAKE_OPT(v, n) (((v) << 5) | (n))
-
-#define BSD_MIN_BITS 9 /* smallest code size supported */
-#define BSD_MAX_BITS 15 /* largest code size supported */
-
-/*
- * Definitions for Deflate.
- */
-
-#define CI_DEFLATE 26 /* config option for Deflate */
-#define CI_DEFLATE_DRAFT 24 /* value used in original draft RFC */
-#define CILEN_DEFLATE 4 /* length of its config option */
-
-#define DEFLATE_MIN_SIZE 9
-#define DEFLATE_MAX_SIZE 15
-#define DEFLATE_METHOD_VAL 8
-#define DEFLATE_SIZE(x) (((x) >> 4) + 8)
-#define DEFLATE_METHOD(x) ((x) & 0x0F)
-#define DEFLATE_MAKE_OPT(w) ((((w) - 8) << 4) + DEFLATE_METHOD_VAL)
-#define DEFLATE_CHK_SEQUENCE 0
-
-/*
- * Definitions for MPPE.
- */
-
-#define CI_MPPE 18 /* config option for MPPE */
-#define CILEN_MPPE 6 /* length of config option */
-
-/*
- * Definitions for other, as yet unsupported, compression methods.
- */
-
-#define CI_PREDICTOR_1 1 /* config option for Predictor-1 */
-#define CILEN_PREDICTOR_1 2 /* length of its config option */
-#define CI_PREDICTOR_2 2 /* config option for Predictor-2 */
-#define CILEN_PREDICTOR_2 2 /* length of its config option */
-
-#ifdef __KERNEL__
-extern int ppp_register_compressor(struct compressor *);
-extern void ppp_unregister_compressor(struct compressor *);
-#endif /* __KERNEL__ */
-
-#endif /* _NET_PPP_COMP_H */
diff --git a/ANDROID_3.4.5/include/linux/ppp-ioctl.h b/ANDROID_3.4.5/include/linux/ppp-ioctl.h
deleted file mode 100644
index 2d9a8859..00000000
--- a/ANDROID_3.4.5/include/linux/ppp-ioctl.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * ppp-ioctl.h - PPP ioctl definitions.
- *
- * Copyright 1999-2002 Paul Mackerras.
- *
- * 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.
- */
-#ifndef _PPP_IOCTL_H
-#define _PPP_IOCTL_H
-
-#include <linux/types.h>
-#include <linux/compiler.h>
-
-/*
- * Bit definitions for flags argument to PPPIOCGFLAGS/PPPIOCSFLAGS.
- */
-#define SC_COMP_PROT 0x00000001 /* protocol compression (output) */
-#define SC_COMP_AC 0x00000002 /* header compression (output) */
-#define SC_COMP_TCP 0x00000004 /* TCP (VJ) compression (output) */
-#define SC_NO_TCP_CCID 0x00000008 /* disable VJ connection-id comp. */
-#define SC_REJ_COMP_AC 0x00000010 /* reject adrs/ctrl comp. on input */
-#define SC_REJ_COMP_TCP 0x00000020 /* reject TCP (VJ) comp. on input */
-#define SC_CCP_OPEN 0x00000040 /* Look at CCP packets */
-#define SC_CCP_UP 0x00000080 /* May send/recv compressed packets */
-#define SC_ENABLE_IP 0x00000100 /* IP packets may be exchanged */
-#define SC_LOOP_TRAFFIC 0x00000200 /* send traffic to pppd */
-#define SC_MULTILINK 0x00000400 /* do multilink encapsulation */
-#define SC_MP_SHORTSEQ 0x00000800 /* use short MP sequence numbers */
-#define SC_COMP_RUN 0x00001000 /* compressor has been inited */
-#define SC_DECOMP_RUN 0x00002000 /* decompressor has been inited */
-#define SC_MP_XSHORTSEQ 0x00004000 /* transmit short MP seq numbers */
-#define SC_DEBUG 0x00010000 /* enable debug messages */
-#define SC_LOG_INPKT 0x00020000 /* log contents of good pkts recvd */
-#define SC_LOG_OUTPKT 0x00040000 /* log contents of pkts sent */
-#define SC_LOG_RAWIN 0x00080000 /* log all chars received */
-#define SC_LOG_FLUSH 0x00100000 /* log all chars flushed */
-#define SC_SYNC 0x00200000 /* synchronous serial mode */
-#define SC_MUST_COMP 0x00400000 /* no uncompressed packets may be sent or received */
-#define SC_MASK 0x0f600fff /* bits that user can change */
-
-/* state bits */
-#define SC_XMIT_BUSY 0x10000000 /* (used by isdn_ppp?) */
-#define SC_RCV_ODDP 0x08000000 /* have rcvd char with odd parity */
-#define SC_RCV_EVNP 0x04000000 /* have rcvd char with even parity */
-#define SC_RCV_B7_1 0x02000000 /* have rcvd char with bit 7 = 1 */
-#define SC_RCV_B7_0 0x01000000 /* have rcvd char with bit 7 = 0 */
-#define SC_DC_FERROR 0x00800000 /* fatal decomp error detected */
-#define SC_DC_ERROR 0x00400000 /* non-fatal decomp error detected */
-
-/* Used with PPPIOCGNPMODE/PPPIOCSNPMODE */
-struct npioctl {
- int protocol; /* PPP protocol, e.g. PPP_IP */
- enum NPmode mode;
-};
-
-/* Structure describing a CCP configuration option, for PPPIOCSCOMPRESS */
-struct ppp_option_data {
- __u8 __user *ptr;
- __u32 length;
- int transmit;
-};
-
-/* For PPPIOCGL2TPSTATS */
-struct pppol2tp_ioc_stats {
- __u16 tunnel_id; /* redundant */
- __u16 session_id; /* if zero, get tunnel stats */
- __u32 using_ipsec:1; /* valid only for session_id == 0 */
- __aligned_u64 tx_packets;
- __aligned_u64 tx_bytes;
- __aligned_u64 tx_errors;
- __aligned_u64 rx_packets;
- __aligned_u64 rx_bytes;
- __aligned_u64 rx_seq_discards;
- __aligned_u64 rx_oos_packets;
- __aligned_u64 rx_errors;
-};
-
-/*
- * Ioctl definitions.
- */
-
-#define PPPIOCGFLAGS _IOR('t', 90, int) /* get configuration flags */
-#define PPPIOCSFLAGS _IOW('t', 89, int) /* set configuration flags */
-#define PPPIOCGASYNCMAP _IOR('t', 88, int) /* get async map */
-#define PPPIOCSASYNCMAP _IOW('t', 87, int) /* set async map */
-#define PPPIOCGUNIT _IOR('t', 86, int) /* get ppp unit number */
-#define PPPIOCGRASYNCMAP _IOR('t', 85, int) /* get receive async map */
-#define PPPIOCSRASYNCMAP _IOW('t', 84, int) /* set receive async map */
-#define PPPIOCGMRU _IOR('t', 83, int) /* get max receive unit */
-#define PPPIOCSMRU _IOW('t', 82, int) /* set max receive unit */
-#define PPPIOCSMAXCID _IOW('t', 81, int) /* set VJ max slot ID */
-#define PPPIOCGXASYNCMAP _IOR('t', 80, ext_accm) /* get extended ACCM */
-#define PPPIOCSXASYNCMAP _IOW('t', 79, ext_accm) /* set extended ACCM */
-#define PPPIOCXFERUNIT _IO('t', 78) /* transfer PPP unit */
-#define PPPIOCSCOMPRESS _IOW('t', 77, struct ppp_option_data)
-#define PPPIOCGNPMODE _IOWR('t', 76, struct npioctl) /* get NP mode */
-#define PPPIOCSNPMODE _IOW('t', 75, struct npioctl) /* set NP mode */
-#define PPPIOCSPASS _IOW('t', 71, struct sock_fprog) /* set pass filter */
-#define PPPIOCSACTIVE _IOW('t', 70, struct sock_fprog) /* set active filt */
-#define PPPIOCGDEBUG _IOR('t', 65, int) /* Read debug level */
-#define PPPIOCSDEBUG _IOW('t', 64, int) /* Set debug level */
-#define PPPIOCGIDLE _IOR('t', 63, struct ppp_idle) /* get idle time */
-#define PPPIOCNEWUNIT _IOWR('t', 62, int) /* create new ppp unit */
-#define PPPIOCATTACH _IOW('t', 61, int) /* attach to ppp unit */
-#define PPPIOCDETACH _IOW('t', 60, int) /* detach from ppp unit/chan */
-#define PPPIOCSMRRU _IOW('t', 59, int) /* set multilink MRU */
-#define PPPIOCCONNECT _IOW('t', 58, int) /* connect channel to unit */
-#define PPPIOCDISCONN _IO('t', 57) /* disconnect channel */
-#define PPPIOCATTCHAN _IOW('t', 56, int) /* attach to ppp channel */
-#define PPPIOCGCHAN _IOR('t', 55, int) /* get ppp channel number */
-#define PPPIOCGL2TPSTATS _IOR('t', 54, struct pppol2tp_ioc_stats)
-
-#define SIOCGPPPSTATS (SIOCDEVPRIVATE + 0)
-#define SIOCGPPPVER (SIOCDEVPRIVATE + 1) /* NEVER change this!! */
-#define SIOCGPPPCSTATS (SIOCDEVPRIVATE + 2)
-
-#endif /* _PPP_IOCTL_H */
diff --git a/ANDROID_3.4.5/include/linux/ppp_channel.h b/ANDROID_3.4.5/include/linux/ppp_channel.h
deleted file mode 100644
index 5d87f810..00000000
--- a/ANDROID_3.4.5/include/linux/ppp_channel.h
+++ /dev/null
@@ -1,88 +0,0 @@
-#ifndef _PPP_CHANNEL_H_
-#define _PPP_CHANNEL_H_
-/*
- * Definitions for the interface between the generic PPP code
- * and a PPP channel.
- *
- * A PPP channel provides a way for the generic PPP code to send
- * and receive packets over some sort of communications medium.
- * Packets are stored in sk_buffs and have the 2-byte PPP protocol
- * number at the start, but not the address and control bytes.
- *
- * Copyright 1999 Paul Mackerras.
- *
- * 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.
- *
- * ==FILEVERSION 20000322==
- */
-
-#include <linux/list.h>
-#include <linux/skbuff.h>
-#include <linux/poll.h>
-#include <net/net_namespace.h>
-
-struct ppp_channel;
-
-struct ppp_channel_ops {
- /* Send a packet (or multilink fragment) on this channel.
- Returns 1 if it was accepted, 0 if not. */
- int (*start_xmit)(struct ppp_channel *, struct sk_buff *);
- /* Handle an ioctl call that has come in via /dev/ppp. */
- int (*ioctl)(struct ppp_channel *, unsigned int, unsigned long);
-};
-
-struct ppp_channel {
- void *private; /* channel private data */
- const struct ppp_channel_ops *ops; /* operations for this channel */
- int mtu; /* max transmit packet size */
- int hdrlen; /* amount of headroom channel needs */
- void *ppp; /* opaque to channel */
- int speed; /* transfer rate (bytes/second) */
- /* the following is not used at present */
- int latency; /* overhead time in milliseconds */
-};
-
-#ifdef __KERNEL__
-/* Called by the channel when it can send some more data. */
-extern void ppp_output_wakeup(struct ppp_channel *);
-
-/* Called by the channel to process a received PPP packet.
- The packet should have just the 2-byte PPP protocol header. */
-extern void ppp_input(struct ppp_channel *, struct sk_buff *);
-
-/* Called by the channel when an input error occurs, indicating
- that we may have missed a packet. */
-extern void ppp_input_error(struct ppp_channel *, int code);
-
-/* Attach a channel to a given PPP unit in specified net. */
-extern int ppp_register_net_channel(struct net *, struct ppp_channel *);
-
-/* Attach a channel to a given PPP unit. */
-extern int ppp_register_channel(struct ppp_channel *);
-
-/* Detach a channel from its PPP unit (e.g. on hangup). */
-extern void ppp_unregister_channel(struct ppp_channel *);
-
-/* Get the channel number for a channel */
-extern int ppp_channel_index(struct ppp_channel *);
-
-/* Get the unit number associated with a channel, or -1 if none */
-extern int ppp_unit_number(struct ppp_channel *);
-
-/* Get the device name associated with a channel, or NULL if none */
-extern char *ppp_dev_name(struct ppp_channel *);
-
-/*
- * SMP locking notes:
- * The channel code must ensure that when it calls ppp_unregister_channel,
- * nothing is executing in any of the procedures above, for that
- * channel. The generic layer will ensure that nothing is executing
- * in the start_xmit and ioctl routines for the channel by the time
- * that ppp_unregister_channel returns.
- */
-
-#endif /* __KERNEL__ */
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ppp_defs.h b/ANDROID_3.4.5/include/linux/ppp_defs.h
deleted file mode 100644
index ba416f67..00000000
--- a/ANDROID_3.4.5/include/linux/ppp_defs.h
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * ppp_defs.h - PPP definitions.
- *
- * Copyright 1994-2000 Paul Mackerras.
- *
- * 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/types.h>
-
-#ifndef _PPP_DEFS_H_
-#define _PPP_DEFS_H_
-
-/*
- * The basic PPP frame.
- */
-#define PPP_HDRLEN 4 /* octets for standard ppp header */
-#define PPP_FCSLEN 2 /* octets for FCS */
-#define PPP_MRU 1500 /* default MRU = max length of info field */
-
-#define PPP_ADDRESS(p) (((__u8 *)(p))[0])
-#define PPP_CONTROL(p) (((__u8 *)(p))[1])
-#define PPP_PROTOCOL(p) ((((__u8 *)(p))[2] << 8) + ((__u8 *)(p))[3])
-
-/*
- * Significant octet values.
- */
-#define PPP_ALLSTATIONS 0xff /* All-Stations broadcast address */
-#define PPP_UI 0x03 /* Unnumbered Information */
-#define PPP_FLAG 0x7e /* Flag Sequence */
-#define PPP_ESCAPE 0x7d /* Asynchronous Control Escape */
-#define PPP_TRANS 0x20 /* Asynchronous transparency modifier */
-
-/*
- * Protocol field values.
- */
-#define PPP_IP 0x21 /* Internet Protocol */
-#define PPP_AT 0x29 /* AppleTalk Protocol */
-#define PPP_IPX 0x2b /* IPX protocol */
-#define PPP_VJC_COMP 0x2d /* VJ compressed TCP */
-#define PPP_VJC_UNCOMP 0x2f /* VJ uncompressed TCP */
-#define PPP_MP 0x3d /* Multilink protocol */
-#define PPP_IPV6 0x57 /* Internet Protocol Version 6 */
-#define PPP_COMPFRAG 0xfb /* fragment compressed below bundle */
-#define PPP_COMP 0xfd /* compressed packet */
-#define PPP_MPLS_UC 0x0281 /* Multi Protocol Label Switching - Unicast */
-#define PPP_MPLS_MC 0x0283 /* Multi Protocol Label Switching - Multicast */
-#define PPP_IPCP 0x8021 /* IP Control Protocol */
-#define PPP_ATCP 0x8029 /* AppleTalk Control Protocol */
-#define PPP_IPXCP 0x802b /* IPX Control Protocol */
-#define PPP_IPV6CP 0x8057 /* IPv6 Control Protocol */
-#define PPP_CCPFRAG 0x80fb /* CCP at link level (below MP bundle) */
-#define PPP_CCP 0x80fd /* Compression Control Protocol */
-#define PPP_MPLSCP 0x80fd /* MPLS Control Protocol */
-#define PPP_LCP 0xc021 /* Link Control Protocol */
-#define PPP_PAP 0xc023 /* Password Authentication Protocol */
-#define PPP_LQR 0xc025 /* Link Quality Report protocol */
-#define PPP_CHAP 0xc223 /* Cryptographic Handshake Auth. Protocol */
-#define PPP_CBCP 0xc029 /* Callback Control Protocol */
-
-/*
- * Values for FCS calculations.
- */
-
-#define PPP_INITFCS 0xffff /* Initial FCS value */
-#define PPP_GOODFCS 0xf0b8 /* Good final FCS value */
-
-#ifdef __KERNEL__
-#include <linux/crc-ccitt.h>
-#define PPP_FCS(fcs, c) crc_ccitt_byte(fcs, c)
-#endif
-
-/*
- * Extended asyncmap - allows any character to be escaped.
- */
-
-typedef __u32 ext_accm[8];
-
-/*
- * What to do with network protocol (NP) packets.
- */
-enum NPmode {
- NPMODE_PASS, /* pass the packet through */
- NPMODE_DROP, /* silently drop the packet */
- NPMODE_ERROR, /* return an error */
- NPMODE_QUEUE /* save it up for later. */
-};
-
-/*
- * Statistics for LQRP and pppstats
- */
-struct pppstat {
- __u32 ppp_discards; /* # frames discarded */
-
- __u32 ppp_ibytes; /* bytes received */
- __u32 ppp_ioctects; /* bytes received not in error */
- __u32 ppp_ipackets; /* packets received */
- __u32 ppp_ierrors; /* receive errors */
- __u32 ppp_ilqrs; /* # LQR frames received */
-
- __u32 ppp_obytes; /* raw bytes sent */
- __u32 ppp_ooctects; /* frame bytes sent */
- __u32 ppp_opackets; /* packets sent */
- __u32 ppp_oerrors; /* transmit errors */
- __u32 ppp_olqrs; /* # LQR frames sent */
-};
-
-struct vjstat {
- __u32 vjs_packets; /* outbound packets */
- __u32 vjs_compressed; /* outbound compressed packets */
- __u32 vjs_searches; /* searches for connection state */
- __u32 vjs_misses; /* times couldn't find conn. state */
- __u32 vjs_uncompressedin; /* inbound uncompressed packets */
- __u32 vjs_compressedin; /* inbound compressed packets */
- __u32 vjs_errorin; /* inbound unknown type packets */
- __u32 vjs_tossed; /* inbound packets tossed because of error */
-};
-
-struct compstat {
- __u32 unc_bytes; /* total uncompressed bytes */
- __u32 unc_packets; /* total uncompressed packets */
- __u32 comp_bytes; /* compressed bytes */
- __u32 comp_packets; /* compressed packets */
- __u32 inc_bytes; /* incompressible bytes */
- __u32 inc_packets; /* incompressible packets */
-
- /* the compression ratio is defined as in_count / bytes_out */
- __u32 in_count; /* Bytes received */
- __u32 bytes_out; /* Bytes transmitted */
-
- double ratio; /* not computed in kernel. */
-};
-
-struct ppp_stats {
- struct pppstat p; /* basic PPP statistics */
- struct vjstat vj; /* VJ header compression statistics */
-};
-
-struct ppp_comp_stats {
- struct compstat c; /* packet compression statistics */
- struct compstat d; /* packet decompression statistics */
-};
-
-/*
- * The following structure records the time in seconds since
- * the last NP packet was sent or received.
- */
-struct ppp_idle {
- __kernel_time_t xmit_idle; /* time since last NP packet sent */
- __kernel_time_t recv_idle; /* time since last NP packet received */
-};
-
-#endif /* _PPP_DEFS_H_ */
diff --git a/ANDROID_3.4.5/include/linux/pps-gpio.h b/ANDROID_3.4.5/include/linux/pps-gpio.h
deleted file mode 100644
index 0035abe4..00000000
--- a/ANDROID_3.4.5/include/linux/pps-gpio.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * pps-gpio.h -- PPS client for GPIOs
- *
- *
- * Copyright (C) 2011 James Nuss <jamesnuss@nanometrics.ca>
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef _PPS_GPIO_H
-#define _PPS_GPIO_H
-
-struct pps_gpio_platform_data {
- bool assert_falling_edge;
- bool capture_clear;
- unsigned int gpio_pin;
- const char *gpio_label;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/pps.h b/ANDROID_3.4.5/include/linux/pps.h
deleted file mode 100644
index a9bb1d93..00000000
--- a/ANDROID_3.4.5/include/linux/pps.h
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * PPS API header
- *
- * Copyright (C) 2005-2009 Rodolfo Giometti <giometti@linux.it>
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#ifndef _PPS_H_
-#define _PPS_H_
-
-#include <linux/types.h>
-
-#define PPS_VERSION "5.3.6"
-#define PPS_MAX_SOURCES 16 /* should be enough... */
-
-/* Implementation note: the logical states ``assert'' and ``clear''
- * are implemented in terms of the chip register, i.e. ``assert''
- * means the bit is set. */
-
-/*
- * 3.2 New data structures
- */
-
-#define PPS_API_VERS_1 1
-#define PPS_API_VERS PPS_API_VERS_1 /* we use API version 1 */
-#define PPS_MAX_NAME_LEN 32
-
-/* 32-bit vs. 64-bit compatibility.
- *
- * 0n i386, the alignment of a uint64_t is only 4 bytes, while on most other
- * architectures it's 8 bytes. On i386, there will be no padding between the
- * two consecutive 'struct pps_ktime' members of struct pps_kinfo and struct
- * pps_kparams. But on most platforms there will be padding to ensure correct
- * alignment.
- *
- * The simple fix is probably to add an explicit padding.
- * [David Woodhouse]
- */
-struct pps_ktime {
- __s64 sec;
- __s32 nsec;
- __u32 flags;
-};
-#define PPS_TIME_INVALID (1<<0) /* used to specify timeout==NULL */
-
-struct pps_kinfo {
- __u32 assert_sequence; /* seq. num. of assert event */
- __u32 clear_sequence; /* seq. num. of clear event */
- struct pps_ktime assert_tu; /* time of assert event */
- struct pps_ktime clear_tu; /* time of clear event */
- int current_mode; /* current mode bits */
-};
-
-struct pps_kparams {
- int api_version; /* API version # */
- int mode; /* mode bits */
- struct pps_ktime assert_off_tu; /* offset compensation for assert */
- struct pps_ktime clear_off_tu; /* offset compensation for clear */
-};
-
-/*
- * 3.3 Mode bit definitions
- */
-
-/* Device/implementation parameters */
-#define PPS_CAPTUREASSERT 0x01 /* capture assert events */
-#define PPS_CAPTURECLEAR 0x02 /* capture clear events */
-#define PPS_CAPTUREBOTH 0x03 /* capture assert and clear events */
-
-#define PPS_OFFSETASSERT 0x10 /* apply compensation for assert ev. */
-#define PPS_OFFSETCLEAR 0x20 /* apply compensation for clear ev. */
-
-#define PPS_CANWAIT 0x100 /* can we wait for an event? */
-#define PPS_CANPOLL 0x200 /* bit reserved for future use */
-
-/* Kernel actions */
-#define PPS_ECHOASSERT 0x40 /* feed back assert event to output */
-#define PPS_ECHOCLEAR 0x80 /* feed back clear event to output */
-
-/* Timestamp formats */
-#define PPS_TSFMT_TSPEC 0x1000 /* select timespec format */
-#define PPS_TSFMT_NTPFP 0x2000 /* select NTP format */
-
-/*
- * 3.4.4 New functions: disciplining the kernel timebase
- */
-
-/* Kernel consumers */
-#define PPS_KC_HARDPPS 0 /* hardpps() (or equivalent) */
-#define PPS_KC_HARDPPS_PLL 1 /* hardpps() constrained to
- use a phase-locked loop */
-#define PPS_KC_HARDPPS_FLL 2 /* hardpps() constrained to
- use a frequency-locked loop */
-/*
- * Here begins the implementation-specific part!
- */
-
-struct pps_fdata {
- struct pps_kinfo info;
- struct pps_ktime timeout;
-};
-
-struct pps_bind_args {
- int tsformat; /* format of time stamps */
- int edge; /* selected event type */
- int consumer; /* selected kernel consumer */
-};
-
-#include <linux/ioctl.h>
-
-#define PPS_GETPARAMS _IOR('p', 0xa1, struct pps_kparams *)
-#define PPS_SETPARAMS _IOW('p', 0xa2, struct pps_kparams *)
-#define PPS_GETCAP _IOR('p', 0xa3, int *)
-#define PPS_FETCH _IOWR('p', 0xa4, struct pps_fdata *)
-#define PPS_KC_BIND _IOW('p', 0xa5, struct pps_bind_args *)
-
-#endif /* _PPS_H_ */
diff --git a/ANDROID_3.4.5/include/linux/pps_kernel.h b/ANDROID_3.4.5/include/linux/pps_kernel.h
deleted file mode 100644
index 94048547..00000000
--- a/ANDROID_3.4.5/include/linux/pps_kernel.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * PPS API kernel header
- *
- * Copyright (C) 2009 Rodolfo Giometti <giometti@linux.it>
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef LINUX_PPS_KERNEL_H
-#define LINUX_PPS_KERNEL_H
-
-#include <linux/pps.h>
-
-#include <linux/cdev.h>
-#include <linux/device.h>
-#include <linux/time.h>
-
-/*
- * Global defines
- */
-
-struct pps_device;
-
-/* The specific PPS source info */
-struct pps_source_info {
- char name[PPS_MAX_NAME_LEN]; /* simbolic name */
- char path[PPS_MAX_NAME_LEN]; /* path of connected device */
- int mode; /* PPS's allowed mode */
-
- void (*echo)(struct pps_device *pps,
- int event, void *data); /* PPS echo function */
-
- struct module *owner;
- struct device *dev;
-};
-
-struct pps_event_time {
-#ifdef CONFIG_NTP_PPS
- struct timespec ts_raw;
-#endif /* CONFIG_NTP_PPS */
- struct timespec ts_real;
-};
-
-/* The main struct */
-struct pps_device {
- struct pps_source_info info; /* PSS source info */
-
- struct pps_kparams params; /* PPS's current params */
-
- __u32 assert_sequence; /* PPS' assert event seq # */
- __u32 clear_sequence; /* PPS' clear event seq # */
- struct pps_ktime assert_tu;
- struct pps_ktime clear_tu;
- int current_mode; /* PPS mode at event time */
-
- unsigned int last_ev; /* last PPS event id */
- wait_queue_head_t queue; /* PPS event queue */
-
- unsigned int id; /* PPS source unique ID */
- struct cdev cdev;
- struct device *dev;
- struct fasync_struct *async_queue; /* fasync method */
- spinlock_t lock;
-};
-
-/*
- * Global variables
- */
-
-extern struct device_attribute pps_attrs[];
-
-/*
- * Exported functions
- */
-
-extern struct pps_device *pps_register_source(
- struct pps_source_info *info, int default_params);
-extern void pps_unregister_source(struct pps_device *pps);
-extern int pps_register_cdev(struct pps_device *pps);
-extern void pps_unregister_cdev(struct pps_device *pps);
-extern void pps_event(struct pps_device *pps,
- struct pps_event_time *ts, int event, void *data);
-
-static inline void timespec_to_pps_ktime(struct pps_ktime *kt,
- struct timespec ts)
-{
- kt->sec = ts.tv_sec;
- kt->nsec = ts.tv_nsec;
-}
-
-#ifdef CONFIG_NTP_PPS
-
-static inline void pps_get_ts(struct pps_event_time *ts)
-{
- getnstime_raw_and_real(&ts->ts_raw, &ts->ts_real);
-}
-
-#else /* CONFIG_NTP_PPS */
-
-static inline void pps_get_ts(struct pps_event_time *ts)
-{
- getnstimeofday(&ts->ts_real);
-}
-
-#endif /* CONFIG_NTP_PPS */
-
-#endif /* LINUX_PPS_KERNEL_H */
-
diff --git a/ANDROID_3.4.5/include/linux/prctl.h b/ANDROID_3.4.5/include/linux/prctl.h
deleted file mode 100644
index e0cfec24..00000000
--- a/ANDROID_3.4.5/include/linux/prctl.h
+++ /dev/null
@@ -1,127 +0,0 @@
-#ifndef _LINUX_PRCTL_H
-#define _LINUX_PRCTL_H
-
-/* Values to pass as first argument to prctl() */
-
-#define PR_SET_PDEATHSIG 1 /* Second arg is a signal */
-#define PR_GET_PDEATHSIG 2 /* Second arg is a ptr to return the signal */
-
-/* Get/set current->mm->dumpable */
-#define PR_GET_DUMPABLE 3
-#define PR_SET_DUMPABLE 4
-
-/* Get/set unaligned access control bits (if meaningful) */
-#define PR_GET_UNALIGN 5
-#define PR_SET_UNALIGN 6
-# define PR_UNALIGN_NOPRINT 1 /* silently fix up unaligned user accesses */
-# define PR_UNALIGN_SIGBUS 2 /* generate SIGBUS on unaligned user access */
-
-/* Get/set whether or not to drop capabilities on setuid() away from
- * uid 0 (as per security/commoncap.c) */
-#define PR_GET_KEEPCAPS 7
-#define PR_SET_KEEPCAPS 8
-
-/* Get/set floating-point emulation control bits (if meaningful) */
-#define PR_GET_FPEMU 9
-#define PR_SET_FPEMU 10
-# define PR_FPEMU_NOPRINT 1 /* silently emulate fp operations accesses */
-# define PR_FPEMU_SIGFPE 2 /* don't emulate fp operations, send SIGFPE instead */
-
-/* Get/set floating-point exception mode (if meaningful) */
-#define PR_GET_FPEXC 11
-#define PR_SET_FPEXC 12
-# define PR_FP_EXC_SW_ENABLE 0x80 /* Use FPEXC for FP exception enables */
-# define PR_FP_EXC_DIV 0x010000 /* floating point divide by zero */
-# define PR_FP_EXC_OVF 0x020000 /* floating point overflow */
-# define PR_FP_EXC_UND 0x040000 /* floating point underflow */
-# define PR_FP_EXC_RES 0x080000 /* floating point inexact result */
-# define PR_FP_EXC_INV 0x100000 /* floating point invalid operation */
-# define PR_FP_EXC_DISABLED 0 /* FP exceptions disabled */
-# define PR_FP_EXC_NONRECOV 1 /* async non-recoverable exc. mode */
-# define PR_FP_EXC_ASYNC 2 /* async recoverable exception mode */
-# define PR_FP_EXC_PRECISE 3 /* precise exception mode */
-
-/* Get/set whether we use statistical process timing or accurate timestamp
- * based process timing */
-#define PR_GET_TIMING 13
-#define PR_SET_TIMING 14
-# define PR_TIMING_STATISTICAL 0 /* Normal, traditional,
- statistical process timing */
-# define PR_TIMING_TIMESTAMP 1 /* Accurate timestamp based
- process timing */
-
-#define PR_SET_NAME 15 /* Set process name */
-#define PR_GET_NAME 16 /* Get process name */
-
-/* Get/set process endian */
-#define PR_GET_ENDIAN 19
-#define PR_SET_ENDIAN 20
-# define PR_ENDIAN_BIG 0
-# define PR_ENDIAN_LITTLE 1 /* True little endian mode */
-# define PR_ENDIAN_PPC_LITTLE 2 /* "PowerPC" pseudo little endian */
-
-/* Get/set process seccomp mode */
-#define PR_GET_SECCOMP 21
-#define PR_SET_SECCOMP 22
-
-/* Get/set the capability bounding set (as per security/commoncap.c) */
-#define PR_CAPBSET_READ 23
-#define PR_CAPBSET_DROP 24
-
-/* Get/set the process' ability to use the timestamp counter instruction */
-#define PR_GET_TSC 25
-#define PR_SET_TSC 26
-# define PR_TSC_ENABLE 1 /* allow the use of the timestamp counter */
-# define PR_TSC_SIGSEGV 2 /* throw a SIGSEGV instead of reading the TSC */
-
-/* Get/set securebits (as per security/commoncap.c) */
-#define PR_GET_SECUREBITS 27
-#define PR_SET_SECUREBITS 28
-
-/*
- * Get/set the timerslack as used by poll/select/nanosleep
- * A value of 0 means "use default"
- */
-#define PR_SET_TIMERSLACK 29
-#define PR_GET_TIMERSLACK 30
-
-#define PR_TASK_PERF_EVENTS_DISABLE 31
-#define PR_TASK_PERF_EVENTS_ENABLE 32
-
-/*
- * Set early/late kill mode for hwpoison memory corruption.
- * This influences when the process gets killed on a memory corruption.
- */
-#define PR_MCE_KILL 33
-# define PR_MCE_KILL_CLEAR 0
-# define PR_MCE_KILL_SET 1
-
-# define PR_MCE_KILL_LATE 0
-# define PR_MCE_KILL_EARLY 1
-# define PR_MCE_KILL_DEFAULT 2
-
-#define PR_MCE_KILL_GET 34
-
-/*
- * Tune up process memory map specifics.
- */
-#define PR_SET_MM 35
-# define PR_SET_MM_START_CODE 1
-# define PR_SET_MM_END_CODE 2
-# define PR_SET_MM_START_DATA 3
-# define PR_SET_MM_END_DATA 4
-# define PR_SET_MM_START_STACK 5
-# define PR_SET_MM_START_BRK 6
-# define PR_SET_MM_BRK 7
-
-/*
- * Set specific pid that is allowed to ptrace the current task.
- * A value of 0 mean "no process".
- */
-#define PR_SET_PTRACER 0x59616d61
-# define PR_SET_PTRACER_ANY ((unsigned long)-1)
-
-#define PR_SET_CHILD_SUBREAPER 36
-#define PR_GET_CHILD_SUBREAPER 37
-
-#endif /* _LINUX_PRCTL_H */
diff --git a/ANDROID_3.4.5/include/linux/preempt.h b/ANDROID_3.4.5/include/linux/preempt.h
deleted file mode 100644
index 5a710b9c..00000000
--- a/ANDROID_3.4.5/include/linux/preempt.h
+++ /dev/null
@@ -1,155 +0,0 @@
-#ifndef __LINUX_PREEMPT_H
-#define __LINUX_PREEMPT_H
-
-/*
- * include/linux/preempt.h - macros for accessing and manipulating
- * preempt_count (used for kernel preemption, interrupt count, etc.)
- */
-
-#include <linux/thread_info.h>
-#include <linux/linkage.h>
-#include <linux/list.h>
-
-#if defined(CONFIG_DEBUG_PREEMPT) || defined(CONFIG_PREEMPT_TRACER)
- extern void add_preempt_count(int val);
- extern void sub_preempt_count(int val);
-#else
-# define add_preempt_count(val) do { preempt_count() += (val); } while (0)
-# define sub_preempt_count(val) do { preempt_count() -= (val); } while (0)
-#endif
-
-#define inc_preempt_count() add_preempt_count(1)
-#define dec_preempt_count() sub_preempt_count(1)
-
-#define preempt_count() (current_thread_info()->preempt_count)
-
-#ifdef CONFIG_PREEMPT
-
-asmlinkage void preempt_schedule(void);
-
-#define preempt_check_resched() \
-do { \
- if (unlikely(test_thread_flag(TIF_NEED_RESCHED))) \
- preempt_schedule(); \
-} while (0)
-
-#else /* !CONFIG_PREEMPT */
-
-#define preempt_check_resched() do { } while (0)
-
-#endif /* CONFIG_PREEMPT */
-
-
-#ifdef CONFIG_PREEMPT_COUNT
-
-#define preempt_disable() \
-do { \
- inc_preempt_count(); \
- barrier(); \
-} while (0)
-
-#define sched_preempt_enable_no_resched() \
-do { \
- barrier(); \
- dec_preempt_count(); \
-} while (0)
-
-#define preempt_enable_no_resched() sched_preempt_enable_no_resched()
-
-#define preempt_enable() \
-do { \
- preempt_enable_no_resched(); \
- barrier(); \
- preempt_check_resched(); \
-} while (0)
-
-/* For debugging and tracer internals only! */
-#define add_preempt_count_notrace(val) \
- do { preempt_count() += (val); } while (0)
-#define sub_preempt_count_notrace(val) \
- do { preempt_count() -= (val); } while (0)
-#define inc_preempt_count_notrace() add_preempt_count_notrace(1)
-#define dec_preempt_count_notrace() sub_preempt_count_notrace(1)
-
-#define preempt_disable_notrace() \
-do { \
- inc_preempt_count_notrace(); \
- barrier(); \
-} while (0)
-
-#define preempt_enable_no_resched_notrace() \
-do { \
- barrier(); \
- dec_preempt_count_notrace(); \
-} while (0)
-
-/* preempt_check_resched is OK to trace */
-#define preempt_enable_notrace() \
-do { \
- preempt_enable_no_resched_notrace(); \
- barrier(); \
- preempt_check_resched(); \
-} while (0)
-
-#else /* !CONFIG_PREEMPT_COUNT */
-
-#define preempt_disable() do { } while (0)
-#define sched_preempt_enable_no_resched() do { } while (0)
-#define preempt_enable_no_resched() do { } while (0)
-#define preempt_enable() do { } while (0)
-
-#define preempt_disable_notrace() do { } while (0)
-#define preempt_enable_no_resched_notrace() do { } while (0)
-#define preempt_enable_notrace() do { } while (0)
-
-#endif /* CONFIG_PREEMPT_COUNT */
-
-#ifdef CONFIG_PREEMPT_NOTIFIERS
-
-struct preempt_notifier;
-
-/**
- * preempt_ops - notifiers called when a task is preempted and rescheduled
- * @sched_in: we're about to be rescheduled:
- * notifier: struct preempt_notifier for the task being scheduled
- * cpu: cpu we're scheduled on
- * @sched_out: we've just been preempted
- * notifier: struct preempt_notifier for the task being preempted
- * next: the task that's kicking us out
- *
- * Please note that sched_in and out are called under different
- * contexts. sched_out is called with rq lock held and irq disabled
- * while sched_in is called without rq lock and irq enabled. This
- * difference is intentional and depended upon by its users.
- */
-struct preempt_ops {
- void (*sched_in)(struct preempt_notifier *notifier, int cpu);
- void (*sched_out)(struct preempt_notifier *notifier,
- struct task_struct *next);
-};
-
-/**
- * preempt_notifier - key for installing preemption notifiers
- * @link: internal use
- * @ops: defines the notifier functions to be called
- *
- * Usually used in conjunction with container_of().
- */
-struct preempt_notifier {
- struct hlist_node link;
- struct preempt_ops *ops;
-};
-
-void preempt_notifier_register(struct preempt_notifier *notifier);
-void preempt_notifier_unregister(struct preempt_notifier *notifier);
-
-static inline void preempt_notifier_init(struct preempt_notifier *notifier,
- struct preempt_ops *ops)
-{
- INIT_HLIST_NODE(&notifier->link);
- notifier->ops = ops;
-}
-
-#endif
-
-#endif /* __LINUX_PREEMPT_H */
diff --git a/ANDROID_3.4.5/include/linux/prefetch.h b/ANDROID_3.4.5/include/linux/prefetch.h
deleted file mode 100644
index a3bfbdf6..00000000
--- a/ANDROID_3.4.5/include/linux/prefetch.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Generic cache management functions. Everything is arch-specific,
- * but this header exists to make sure the defines/functions can be
- * used in a generic way.
- *
- * 2000-11-13 Arjan van de Ven <arjan@fenrus.demon.nl>
- *
- */
-
-#ifndef _LINUX_PREFETCH_H
-#define _LINUX_PREFETCH_H
-
-#include <linux/types.h>
-#include <asm/processor.h>
-#include <asm/cache.h>
-
-/*
- prefetch(x) attempts to pre-emptively get the memory pointed to
- by address "x" into the CPU L1 cache.
- prefetch(x) should not cause any kind of exception, prefetch(0) is
- specifically ok.
-
- prefetch() should be defined by the architecture, if not, the
- #define below provides a no-op define.
-
- There are 3 prefetch() macros:
-
- prefetch(x) - prefetches the cacheline at "x" for read
- prefetchw(x) - prefetches the cacheline at "x" for write
- spin_lock_prefetch(x) - prefetches the spinlock *x for taking
-
- there is also PREFETCH_STRIDE which is the architecure-preferred
- "lookahead" size for prefetching streamed operations.
-
-*/
-
-#ifndef ARCH_HAS_PREFETCH
-#define prefetch(x) __builtin_prefetch(x)
-#endif
-
-#ifndef ARCH_HAS_PREFETCHW
-#define prefetchw(x) __builtin_prefetch(x,1)
-#endif
-
-#ifndef ARCH_HAS_SPINLOCK_PREFETCH
-#define spin_lock_prefetch(x) prefetchw(x)
-#endif
-
-#ifndef PREFETCH_STRIDE
-#define PREFETCH_STRIDE (4*L1_CACHE_BYTES)
-#endif
-
-static inline void prefetch_range(void *addr, size_t len)
-{
-#ifdef ARCH_HAS_PREFETCH
- char *cp;
- char *end = addr + len;
-
- for (cp = addr; cp < end; cp += PREFETCH_STRIDE)
- prefetch(cp);
-#endif
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/printk.h b/ANDROID_3.4.5/include/linux/printk.h
deleted file mode 100644
index 0525927f..00000000
--- a/ANDROID_3.4.5/include/linux/printk.h
+++ /dev/null
@@ -1,319 +0,0 @@
-#ifndef __KERNEL_PRINTK__
-#define __KERNEL_PRINTK__
-
-#include <linux/init.h>
-
-extern const char linux_banner[];
-extern const char linux_proc_banner[];
-
-#define KERN_EMERG "<0>" /* system is unusable */
-#define KERN_ALERT "<1>" /* action must be taken immediately */
-#define KERN_CRIT "<2>" /* critical conditions */
-#define KERN_ERR "<3>" /* error conditions */
-#define KERN_WARNING "<4>" /* warning conditions */
-#define KERN_NOTICE "<5>" /* normal but significant condition */
-#define KERN_INFO "<6>" /* informational */
-#define KERN_DEBUG "<7>" /* debug-level messages */
-
-/* Use the default kernel loglevel */
-#define KERN_DEFAULT "<d>"
-/*
- * Annotation for a "continued" line of log printout (only done after a
- * line that had no enclosing \n). Only to be used by core/arch code
- * during early bootup (a continued line is not SMP-safe otherwise).
- */
-#define KERN_CONT "<c>"
-
-extern int console_printk[];
-
-#define console_loglevel (console_printk[0])
-#define default_message_loglevel (console_printk[1])
-#define minimum_console_loglevel (console_printk[2])
-#define default_console_loglevel (console_printk[3])
-
-static inline void console_silent(void)
-{
- console_loglevel = 0;
-}
-
-static inline void console_verbose(void)
-{
- if (console_loglevel)
- console_loglevel = 15;
-}
-
-struct va_format {
- const char *fmt;
- va_list *va;
-};
-
-/*
- * FW_BUG
- * Add this to a message where you are sure the firmware is buggy or behaves
- * really stupid or out of spec. Be aware that the responsible BIOS developer
- * should be able to fix this issue or at least get a concrete idea of the
- * problem by reading your message without the need of looking at the kernel
- * code.
- *
- * Use it for definite and high priority BIOS bugs.
- *
- * FW_WARN
- * Use it for not that clear (e.g. could the kernel messed up things already?)
- * and medium priority BIOS bugs.
- *
- * FW_INFO
- * Use this one if you want to tell the user or vendor about something
- * suspicious, but generally harmless related to the firmware.
- *
- * Use it for information or very low priority BIOS bugs.
- */
-#define FW_BUG "[Firmware Bug]: "
-#define FW_WARN "[Firmware Warn]: "
-#define FW_INFO "[Firmware Info]: "
-
-/*
- * HW_ERR
- * Add this to a message for hardware errors, so that user can report
- * it to hardware vendor instead of LKML or software vendor.
- */
-#define HW_ERR "[Hardware Error]: "
-
-/*
- * Dummy printk for disabled debugging statements to use whilst maintaining
- * gcc's format and side-effect checking.
- */
-static inline __printf(1, 2)
-int no_printk(const char *fmt, ...)
-{
- return 0;
-}
-
-extern asmlinkage __printf(1, 2)
-void early_printk(const char *fmt, ...);
-
-extern int printk_needs_cpu(int cpu);
-extern void printk_tick(void);
-
-#ifdef CONFIG_PRINTK
-asmlinkage __printf(1, 0)
-int vprintk(const char *fmt, va_list args);
-asmlinkage __printf(1, 2) __cold
-int printk(const char *fmt, ...);
-
-/*
- * Special printk facility for scheduler use only, _DO_NOT_USE_ !
- */
-__printf(1, 2) __cold int printk_sched(const char *fmt, ...);
-
-/*
- * Please don't use printk_ratelimit(), because it shares ratelimiting state
- * with all other unrelated printk_ratelimit() callsites. Instead use
- * printk_ratelimited() or plain old __ratelimit().
- */
-extern int __printk_ratelimit(const char *func);
-#define printk_ratelimit() __printk_ratelimit(__func__)
-extern bool printk_timed_ratelimit(unsigned long *caller_jiffies,
- unsigned int interval_msec);
-
-extern int printk_delay_msec;
-extern int dmesg_restrict;
-extern int kptr_restrict;
-
-void log_buf_kexec_setup(void);
-void __init setup_log_buf(int early);
-#else
-static inline __printf(1, 0)
-int vprintk(const char *s, va_list args)
-{
- return 0;
-}
-static inline __printf(1, 2) __cold
-int printk(const char *s, ...)
-{
- return 0;
-}
-static inline __printf(1, 2) __cold
-int printk_sched(const char *s, ...)
-{
- return 0;
-}
-static inline int printk_ratelimit(void)
-{
- return 0;
-}
-static inline bool printk_timed_ratelimit(unsigned long *caller_jiffies,
- unsigned int interval_msec)
-{
- return false;
-}
-
-static inline void log_buf_kexec_setup(void)
-{
-}
-
-static inline void setup_log_buf(int early)
-{
-}
-#endif
-
-extern void dump_stack(void) __cold;
-
-#ifndef pr_fmt
-#define pr_fmt(fmt) fmt
-#endif
-
-#define pr_emerg(fmt, ...) \
- printk(KERN_EMERG pr_fmt(fmt), ##__VA_ARGS__)
-#define pr_alert(fmt, ...) \
- printk(KERN_ALERT pr_fmt(fmt), ##__VA_ARGS__)
-#define pr_crit(fmt, ...) \
- printk(KERN_CRIT pr_fmt(fmt), ##__VA_ARGS__)
-#define pr_err(fmt, ...) \
- printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
-#define pr_warning(fmt, ...) \
- printk(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
-#define pr_warn pr_warning
-#define pr_notice(fmt, ...) \
- printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__)
-#define pr_info(fmt, ...) \
- printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
-#define pr_cont(fmt, ...) \
- printk(KERN_CONT fmt, ##__VA_ARGS__)
-
-/* pr_devel() should produce zero code unless DEBUG is defined */
-#ifdef DEBUG
-#define pr_devel(fmt, ...) \
- printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
-#else
-#define pr_devel(fmt, ...) \
- no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
-#endif
-
-/* If you are writing a driver, please use dev_dbg instead */
-#if defined(CONFIG_DYNAMIC_DEBUG)
-/* dynamic_pr_debug() uses pr_fmt() internally so we don't need it here */
-#define pr_debug(fmt, ...) \
- dynamic_pr_debug(fmt, ##__VA_ARGS__)
-#elif defined(DEBUG)
-#define pr_debug(fmt, ...) \
- printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
-#else
-#define pr_debug(fmt, ...) \
- no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
-#endif
-
-/*
- * Print a one-time message (analogous to WARN_ONCE() et al):
- */
-
-#ifdef CONFIG_PRINTK
-#define printk_once(fmt, ...) \
-({ \
- static bool __print_once; \
- \
- if (!__print_once) { \
- __print_once = true; \
- printk(fmt, ##__VA_ARGS__); \
- } \
-})
-#else
-#define printk_once(fmt, ...) \
- no_printk(fmt, ##__VA_ARGS__)
-#endif
-
-#define pr_emerg_once(fmt, ...) \
- printk_once(KERN_EMERG pr_fmt(fmt), ##__VA_ARGS__)
-#define pr_alert_once(fmt, ...) \
- printk_once(KERN_ALERT pr_fmt(fmt), ##__VA_ARGS__)
-#define pr_crit_once(fmt, ...) \
- printk_once(KERN_CRIT pr_fmt(fmt), ##__VA_ARGS__)
-#define pr_err_once(fmt, ...) \
- printk_once(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
-#define pr_warn_once(fmt, ...) \
- printk_once(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
-#define pr_notice_once(fmt, ...) \
- printk_once(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__)
-#define pr_info_once(fmt, ...) \
- printk_once(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
-#define pr_cont_once(fmt, ...) \
- printk_once(KERN_CONT pr_fmt(fmt), ##__VA_ARGS__)
-/* If you are writing a driver, please use dev_dbg instead */
-#if defined(DEBUG)
-#define pr_debug_once(fmt, ...) \
- printk_once(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
-#else
-#define pr_debug_once(fmt, ...) \
- no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
-#endif
-
-/*
- * ratelimited messages with local ratelimit_state,
- * no local ratelimit_state used in the !PRINTK case
- */
-#ifdef CONFIG_PRINTK
-#define printk_ratelimited(fmt, ...) \
-({ \
- static DEFINE_RATELIMIT_STATE(_rs, \
- DEFAULT_RATELIMIT_INTERVAL, \
- DEFAULT_RATELIMIT_BURST); \
- \
- if (__ratelimit(&_rs)) \
- printk(fmt, ##__VA_ARGS__); \
-})
-#else
-#define printk_ratelimited(fmt, ...) \
- no_printk(fmt, ##__VA_ARGS__)
-#endif
-
-#define pr_emerg_ratelimited(fmt, ...) \
- printk_ratelimited(KERN_EMERG pr_fmt(fmt), ##__VA_ARGS__)
-#define pr_alert_ratelimited(fmt, ...) \
- printk_ratelimited(KERN_ALERT pr_fmt(fmt), ##__VA_ARGS__)
-#define pr_crit_ratelimited(fmt, ...) \
- printk_ratelimited(KERN_CRIT pr_fmt(fmt), ##__VA_ARGS__)
-#define pr_err_ratelimited(fmt, ...) \
- printk_ratelimited(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
-#define pr_warn_ratelimited(fmt, ...) \
- printk_ratelimited(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
-#define pr_notice_ratelimited(fmt, ...) \
- printk_ratelimited(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__)
-#define pr_info_ratelimited(fmt, ...) \
- printk_ratelimited(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
-/* no pr_cont_ratelimited, don't do that... */
-/* If you are writing a driver, please use dev_dbg instead */
-#if defined(DEBUG)
-#define pr_debug_ratelimited(fmt, ...) \
- printk_ratelimited(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
-#else
-#define pr_debug_ratelimited(fmt, ...) \
- no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
-#endif
-
-enum {
- DUMP_PREFIX_NONE,
- DUMP_PREFIX_ADDRESS,
- DUMP_PREFIX_OFFSET
-};
-extern void hex_dump_to_buffer(const void *buf, size_t len,
- int rowsize, int groupsize,
- char *linebuf, size_t linebuflen, bool ascii);
-#ifdef CONFIG_PRINTK
-extern void print_hex_dump(const char *level, const char *prefix_str,
- int prefix_type, int rowsize, int groupsize,
- const void *buf, size_t len, bool ascii);
-extern void print_hex_dump_bytes(const char *prefix_str, int prefix_type,
- const void *buf, size_t len);
-#else
-static inline void print_hex_dump(const char *level, const char *prefix_str,
- int prefix_type, int rowsize, int groupsize,
- const void *buf, size_t len, bool ascii)
-{
-}
-static inline void print_hex_dump_bytes(const char *prefix_str, int prefix_type,
- const void *buf, size_t len)
-{
-}
-
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/prio_heap.h b/ANDROID_3.4.5/include/linux/prio_heap.h
deleted file mode 100644
index 08094350..00000000
--- a/ANDROID_3.4.5/include/linux/prio_heap.h
+++ /dev/null
@@ -1,58 +0,0 @@
-#ifndef _LINUX_PRIO_HEAP_H
-#define _LINUX_PRIO_HEAP_H
-
-/*
- * Simple insertion-only static-sized priority heap containing
- * pointers, based on CLR, chapter 7
- */
-
-#include <linux/gfp.h>
-
-/**
- * struct ptr_heap - simple static-sized priority heap
- * @ptrs - pointer to data area
- * @max - max number of elements that can be stored in @ptrs
- * @size - current number of valid elements in @ptrs (in the range 0..@size-1
- * @gt: comparison operator, which should implement "greater than"
- */
-struct ptr_heap {
- void **ptrs;
- int max;
- int size;
- int (*gt)(void *, void *);
-};
-
-/**
- * heap_init - initialize an empty heap with a given memory size
- * @heap: the heap structure to be initialized
- * @size: amount of memory to use in bytes
- * @gfp_mask: mask to pass to kmalloc()
- * @gt: comparison operator, which should implement "greater than"
- */
-extern int heap_init(struct ptr_heap *heap, size_t size, gfp_t gfp_mask,
- int (*gt)(void *, void *));
-
-/**
- * heap_free - release a heap's storage
- * @heap: the heap structure whose data should be released
- */
-void heap_free(struct ptr_heap *heap);
-
-/**
- * heap_insert - insert a value into the heap and return any overflowed value
- * @heap: the heap to be operated on
- * @p: the pointer to be inserted
- *
- * Attempts to insert the given value into the priority heap. If the
- * heap is full prior to the insertion, then the resulting heap will
- * consist of the smallest @max elements of the original heap and the
- * new element; the greatest element will be removed from the heap and
- * returned. Note that the returned element will be the new element
- * (i.e. no change to the heap) if the new element is greater than all
- * elements currently in the heap.
- */
-extern void *heap_insert(struct ptr_heap *heap, void *p);
-
-
-
-#endif /* _LINUX_PRIO_HEAP_H */
diff --git a/ANDROID_3.4.5/include/linux/prio_tree.h b/ANDROID_3.4.5/include/linux/prio_tree.h
deleted file mode 100644
index db04abb5..00000000
--- a/ANDROID_3.4.5/include/linux/prio_tree.h
+++ /dev/null
@@ -1,120 +0,0 @@
-#ifndef _LINUX_PRIO_TREE_H
-#define _LINUX_PRIO_TREE_H
-
-/*
- * K&R 2nd ed. A8.3 somewhat obliquely hints that initial sequences of struct
- * fields with identical types should end up at the same location. We'll use
- * this until we can scrap struct raw_prio_tree_node.
- *
- * Note: all this could be done more elegantly by using unnamed union/struct
- * fields. However, gcc 2.95.3 and apparently also gcc 3.0.4 don't support this
- * language extension.
- */
-
-struct raw_prio_tree_node {
- struct prio_tree_node *left;
- struct prio_tree_node *right;
- struct prio_tree_node *parent;
-};
-
-struct prio_tree_node {
- struct prio_tree_node *left;
- struct prio_tree_node *right;
- struct prio_tree_node *parent;
- unsigned long start;
- unsigned long last; /* last location _in_ interval */
-};
-
-struct prio_tree_root {
- struct prio_tree_node *prio_tree_node;
- unsigned short index_bits;
- unsigned short raw;
- /*
- * 0: nodes are of type struct prio_tree_node
- * 1: nodes are of type raw_prio_tree_node
- */
-};
-
-struct prio_tree_iter {
- struct prio_tree_node *cur;
- unsigned long mask;
- unsigned long value;
- int size_level;
-
- struct prio_tree_root *root;
- pgoff_t r_index;
- pgoff_t h_index;
-};
-
-static inline void prio_tree_iter_init(struct prio_tree_iter *iter,
- struct prio_tree_root *root, pgoff_t r_index, pgoff_t h_index)
-{
- iter->root = root;
- iter->r_index = r_index;
- iter->h_index = h_index;
- iter->cur = NULL;
-}
-
-#define __INIT_PRIO_TREE_ROOT(ptr, _raw) \
-do { \
- (ptr)->prio_tree_node = NULL; \
- (ptr)->index_bits = 1; \
- (ptr)->raw = (_raw); \
-} while (0)
-
-#define INIT_PRIO_TREE_ROOT(ptr) __INIT_PRIO_TREE_ROOT(ptr, 0)
-#define INIT_RAW_PRIO_TREE_ROOT(ptr) __INIT_PRIO_TREE_ROOT(ptr, 1)
-
-#define INIT_PRIO_TREE_NODE(ptr) \
-do { \
- (ptr)->left = (ptr)->right = (ptr)->parent = (ptr); \
-} while (0)
-
-#define INIT_PRIO_TREE_ITER(ptr) \
-do { \
- (ptr)->cur = NULL; \
- (ptr)->mask = 0UL; \
- (ptr)->value = 0UL; \
- (ptr)->size_level = 0; \
-} while (0)
-
-#define prio_tree_entry(ptr, type, member) \
- ((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member)))
-
-static inline int prio_tree_empty(const struct prio_tree_root *root)
-{
- return root->prio_tree_node == NULL;
-}
-
-static inline int prio_tree_root(const struct prio_tree_node *node)
-{
- return node->parent == node;
-}
-
-static inline int prio_tree_left_empty(const struct prio_tree_node *node)
-{
- return node->left == node;
-}
-
-static inline int prio_tree_right_empty(const struct prio_tree_node *node)
-{
- return node->right == node;
-}
-
-
-struct prio_tree_node *prio_tree_replace(struct prio_tree_root *root,
- struct prio_tree_node *old, struct prio_tree_node *node);
-struct prio_tree_node *prio_tree_insert(struct prio_tree_root *root,
- struct prio_tree_node *node);
-void prio_tree_remove(struct prio_tree_root *root, struct prio_tree_node *node);
-struct prio_tree_node *prio_tree_next(struct prio_tree_iter *iter);
-
-#define raw_prio_tree_replace(root, old, node) \
- prio_tree_replace(root, (struct prio_tree_node *) (old), \
- (struct prio_tree_node *) (node))
-#define raw_prio_tree_insert(root, node) \
- prio_tree_insert(root, (struct prio_tree_node *) (node))
-#define raw_prio_tree_remove(root, node) \
- prio_tree_remove(root, (struct prio_tree_node *) (node))
-
-#endif /* _LINUX_PRIO_TREE_H */
diff --git a/ANDROID_3.4.5/include/linux/proc_fs.h b/ANDROID_3.4.5/include/linux/proc_fs.h
deleted file mode 100644
index 85c50730..00000000
--- a/ANDROID_3.4.5/include/linux/proc_fs.h
+++ /dev/null
@@ -1,293 +0,0 @@
-#ifndef _LINUX_PROC_FS_H
-#define _LINUX_PROC_FS_H
-
-#include <linux/slab.h>
-#include <linux/fs.h>
-#include <linux/spinlock.h>
-#include <linux/magic.h>
-#include <linux/atomic.h>
-
-struct net;
-struct completion;
-struct mm_struct;
-
-/*
- * The proc filesystem constants/structures
- */
-
-/*
- * Offset of the first process in the /proc root directory..
- */
-#define FIRST_PROCESS_ENTRY 256
-
-/* Worst case buffer size needed for holding an integer. */
-#define PROC_NUMBUF 13
-
-/*
- * We always define these enumerators
- */
-
-enum {
- PROC_ROOT_INO = 1,
-};
-
-/*
- * This is not completely implemented yet. The idea is to
- * create an in-memory tree (like the actual /proc filesystem
- * tree) of these proc_dir_entries, so that we can dynamically
- * add new files to /proc.
- *
- * The "next" pointer creates a linked list of one /proc directory,
- * while parent/subdir create the directory structure (every
- * /proc file has a parent, but "subdir" is NULL for all
- * non-directory entries).
- */
-
-typedef int (read_proc_t)(char *page, char **start, off_t off,
- int count, int *eof, void *data);
-typedef int (write_proc_t)(struct file *file, const char __user *buffer,
- unsigned long count, void *data);
-
-struct proc_dir_entry {
- unsigned int low_ino;
- umode_t mode;
- nlink_t nlink;
- uid_t uid;
- gid_t gid;
- loff_t size;
- const struct inode_operations *proc_iops;
- /*
- * NULL ->proc_fops means "PDE is going away RSN" or
- * "PDE is just created". In either case, e.g. ->read_proc won't be
- * called because it's too late or too early, respectively.
- *
- * If you're allocating ->proc_fops dynamically, save a pointer
- * somewhere.
- */
- const struct file_operations *proc_fops;
- struct proc_dir_entry *next, *parent, *subdir;
- void *data;
- read_proc_t *read_proc;
- write_proc_t *write_proc;
- atomic_t count; /* use count */
- int pde_users; /* number of callers into module in progress */
- struct completion *pde_unload_completion;
- struct list_head pde_openers; /* who did ->open, but not ->release */
- spinlock_t pde_unload_lock; /* proc_fops checks and pde_users bumps */
- u8 namelen;
- char name[];
-};
-
-enum kcore_type {
- KCORE_TEXT,
- KCORE_VMALLOC,
- KCORE_RAM,
- KCORE_VMEMMAP,
- KCORE_OTHER,
-};
-
-struct kcore_list {
- struct list_head list;
- unsigned long addr;
- size_t size;
- int type;
-};
-
-struct vmcore {
- struct list_head list;
- unsigned long long paddr;
- unsigned long long size;
- loff_t offset;
-};
-
-#ifdef CONFIG_PROC_FS
-
-extern void proc_root_init(void);
-
-void proc_flush_task(struct task_struct *task);
-
-extern struct proc_dir_entry *create_proc_entry(const char *name, umode_t mode,
- struct proc_dir_entry *parent);
-struct proc_dir_entry *proc_create_data(const char *name, umode_t mode,
- struct proc_dir_entry *parent,
- const struct file_operations *proc_fops,
- void *data);
-extern void remove_proc_entry(const char *name, struct proc_dir_entry *parent);
-
-struct pid_namespace;
-
-extern int pid_ns_prepare_proc(struct pid_namespace *ns);
-extern void pid_ns_release_proc(struct pid_namespace *ns);
-
-/*
- * proc_tty.c
- */
-struct tty_driver;
-extern void proc_tty_init(void);
-extern void proc_tty_register_driver(struct tty_driver *driver);
-extern void proc_tty_unregister_driver(struct tty_driver *driver);
-
-/*
- * proc_devtree.c
- */
-#ifdef CONFIG_PROC_DEVICETREE
-struct device_node;
-struct property;
-extern void proc_device_tree_init(void);
-extern void proc_device_tree_add_node(struct device_node *, struct proc_dir_entry *);
-extern void proc_device_tree_add_prop(struct proc_dir_entry *pde, struct property *prop);
-extern void proc_device_tree_remove_prop(struct proc_dir_entry *pde,
- struct property *prop);
-extern void proc_device_tree_update_prop(struct proc_dir_entry *pde,
- struct property *newprop,
- struct property *oldprop);
-#endif /* CONFIG_PROC_DEVICETREE */
-
-extern struct proc_dir_entry *proc_symlink(const char *,
- struct proc_dir_entry *, const char *);
-extern struct proc_dir_entry *proc_mkdir(const char *,struct proc_dir_entry *);
-extern struct proc_dir_entry *proc_mkdir_mode(const char *name, umode_t mode,
- struct proc_dir_entry *parent);
-
-static inline struct proc_dir_entry *proc_create(const char *name, umode_t mode,
- struct proc_dir_entry *parent, const struct file_operations *proc_fops)
-{
- return proc_create_data(name, mode, parent, proc_fops, NULL);
-}
-
-static inline struct proc_dir_entry *create_proc_read_entry(const char *name,
- umode_t mode, struct proc_dir_entry *base,
- read_proc_t *read_proc, void * data)
-{
- struct proc_dir_entry *res=create_proc_entry(name,mode,base);
- if (res) {
- res->read_proc=read_proc;
- res->data=data;
- }
- return res;
-}
-
-extern struct proc_dir_entry *proc_net_fops_create(struct net *net,
- const char *name, umode_t mode, const struct file_operations *fops);
-extern void proc_net_remove(struct net *net, const char *name);
-extern struct proc_dir_entry *proc_net_mkdir(struct net *net, const char *name,
- struct proc_dir_entry *parent);
-
-extern struct file *proc_ns_fget(int fd);
-
-#else
-
-#define proc_net_fops_create(net, name, mode, fops) ({ (void)(mode), NULL; })
-static inline void proc_net_remove(struct net *net, const char *name) {}
-
-static inline void proc_flush_task(struct task_struct *task)
-{
-}
-
-static inline struct proc_dir_entry *create_proc_entry(const char *name,
- umode_t mode, struct proc_dir_entry *parent) { return NULL; }
-static inline struct proc_dir_entry *proc_create(const char *name,
- umode_t mode, struct proc_dir_entry *parent,
- const struct file_operations *proc_fops)
-{
- return NULL;
-}
-static inline struct proc_dir_entry *proc_create_data(const char *name,
- umode_t mode, struct proc_dir_entry *parent,
- const struct file_operations *proc_fops, void *data)
-{
- return NULL;
-}
-#define remove_proc_entry(name, parent) do {} while (0)
-
-static inline struct proc_dir_entry *proc_symlink(const char *name,
- struct proc_dir_entry *parent,const char *dest) {return NULL;}
-static inline struct proc_dir_entry *proc_mkdir(const char *name,
- struct proc_dir_entry *parent) {return NULL;}
-static inline struct proc_dir_entry *proc_mkdir_mode(const char *name,
- umode_t mode, struct proc_dir_entry *parent) { return NULL; }
-
-static inline struct proc_dir_entry *create_proc_read_entry(const char *name,
- umode_t mode, struct proc_dir_entry *base,
- read_proc_t *read_proc, void * data) { return NULL; }
-
-struct tty_driver;
-static inline void proc_tty_register_driver(struct tty_driver *driver) {};
-static inline void proc_tty_unregister_driver(struct tty_driver *driver) {};
-
-static inline int pid_ns_prepare_proc(struct pid_namespace *ns)
-{
- return 0;
-}
-
-static inline void pid_ns_release_proc(struct pid_namespace *ns)
-{
-}
-
-static inline struct file *proc_ns_fget(int fd)
-{
- return ERR_PTR(-EINVAL);
-}
-
-#endif /* CONFIG_PROC_FS */
-
-#if !defined(CONFIG_PROC_KCORE)
-static inline void
-kclist_add(struct kcore_list *new, void *addr, size_t size, int type)
-{
-}
-#else
-extern void kclist_add(struct kcore_list *, void *, size_t, int type);
-#endif
-
-struct nsproxy;
-struct proc_ns_operations {
- const char *name;
- int type;
- void *(*get)(struct task_struct *task);
- void (*put)(void *ns);
- int (*install)(struct nsproxy *nsproxy, void *ns);
-};
-extern const struct proc_ns_operations netns_operations;
-extern const struct proc_ns_operations utsns_operations;
-extern const struct proc_ns_operations ipcns_operations;
-
-union proc_op {
- int (*proc_get_link)(struct dentry *, struct path *);
- int (*proc_read)(struct task_struct *task, char *page);
- int (*proc_show)(struct seq_file *m,
- struct pid_namespace *ns, struct pid *pid,
- struct task_struct *task);
-};
-
-struct ctl_table_header;
-struct ctl_table;
-
-struct proc_inode {
- struct pid *pid;
- int fd;
- union proc_op op;
- struct proc_dir_entry *pde;
- struct ctl_table_header *sysctl;
- struct ctl_table *sysctl_entry;
- void *ns;
- const struct proc_ns_operations *ns_ops;
- struct inode vfs_inode;
-};
-
-static inline struct proc_inode *PROC_I(const struct inode *inode)
-{
- return container_of(inode, struct proc_inode, vfs_inode);
-}
-
-static inline struct proc_dir_entry *PDE(const struct inode *inode)
-{
- return PROC_I(inode)->pde;
-}
-
-static inline struct net *PDE_NET(struct proc_dir_entry *pde)
-{
- return pde->parent->data;
-}
-
-#endif /* _LINUX_PROC_FS_H */
diff --git a/ANDROID_3.4.5/include/linux/profile.h b/ANDROID_3.4.5/include/linux/profile.h
deleted file mode 100644
index a0fc3227..00000000
--- a/ANDROID_3.4.5/include/linux/profile.h
+++ /dev/null
@@ -1,150 +0,0 @@
-#ifndef _LINUX_PROFILE_H
-#define _LINUX_PROFILE_H
-
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/cpumask.h>
-#include <linux/cache.h>
-
-#include <asm/errno.h>
-
-#define CPU_PROFILING 1
-#define SCHED_PROFILING 2
-#define SLEEP_PROFILING 3
-#define KVM_PROFILING 4
-
-struct proc_dir_entry;
-struct pt_regs;
-struct notifier_block;
-
-#if defined(CONFIG_PROFILING) && defined(CONFIG_PROC_FS)
-void create_prof_cpu_mask(struct proc_dir_entry *de);
-int create_proc_profile(void);
-#else
-static inline void create_prof_cpu_mask(struct proc_dir_entry *de)
-{
-}
-
-static inline int create_proc_profile(void)
-{
- return 0;
-}
-#endif
-
-enum profile_type {
- PROFILE_TASK_EXIT,
- PROFILE_MUNMAP
-};
-
-#ifdef CONFIG_PROFILING
-
-extern int prof_on __read_mostly;
-
-/* init basic kernel profiler */
-int profile_init(void);
-int profile_setup(char *str);
-void profile_tick(int type);
-
-/*
- * Add multiple profiler hits to a given address:
- */
-void profile_hits(int type, void *ip, unsigned int nr_hits);
-
-/*
- * Single profiler hit:
- */
-static inline void profile_hit(int type, void *ip)
-{
- /*
- * Speedup for the common (no profiling enabled) case:
- */
- if (unlikely(prof_on == type))
- profile_hits(type, ip, 1);
-}
-
-struct task_struct;
-struct mm_struct;
-
-/* task is in do_exit() */
-void profile_task_exit(struct task_struct * task);
-
-/* task is dead, free task struct ? Returns 1 if
- * the task was taken, 0 if the task should be freed.
- */
-int profile_handoff_task(struct task_struct * task);
-
-/* sys_munmap */
-void profile_munmap(unsigned long addr);
-
-int task_handoff_register(struct notifier_block * n);
-int task_handoff_unregister(struct notifier_block * n);
-
-int profile_event_register(enum profile_type, struct notifier_block * n);
-int profile_event_unregister(enum profile_type, struct notifier_block * n);
-
-int register_timer_hook(int (*hook)(struct pt_regs *));
-void unregister_timer_hook(int (*hook)(struct pt_regs *));
-
-struct pt_regs;
-
-#else
-
-#define prof_on 0
-
-static inline int profile_init(void)
-{
- return 0;
-}
-
-static inline void profile_tick(int type)
-{
- return;
-}
-
-static inline void profile_hits(int type, void *ip, unsigned int nr_hits)
-{
- return;
-}
-
-static inline void profile_hit(int type, void *ip)
-{
- return;
-}
-
-static inline int task_handoff_register(struct notifier_block * n)
-{
- return -ENOSYS;
-}
-
-static inline int task_handoff_unregister(struct notifier_block * n)
-{
- return -ENOSYS;
-}
-
-static inline int profile_event_register(enum profile_type t, struct notifier_block * n)
-{
- return -ENOSYS;
-}
-
-static inline int profile_event_unregister(enum profile_type t, struct notifier_block * n)
-{
- return -ENOSYS;
-}
-
-#define profile_task_exit(a) do { } while (0)
-#define profile_handoff_task(a) (0)
-#define profile_munmap(a) do { } while (0)
-
-static inline int register_timer_hook(int (*hook)(struct pt_regs *))
-{
- return -ENOSYS;
-}
-
-static inline void unregister_timer_hook(int (*hook)(struct pt_regs *))
-{
- return;
-}
-
-#endif /* CONFIG_PROFILING */
-
-#endif /* _LINUX_PROFILE_H */
diff --git a/ANDROID_3.4.5/include/linux/proportions.h b/ANDROID_3.4.5/include/linux/proportions.h
deleted file mode 100644
index 26a8a4ed..00000000
--- a/ANDROID_3.4.5/include/linux/proportions.h
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * FLoating proportions
- *
- * Copyright (C) 2007 Red Hat, Inc., Peter Zijlstra <pzijlstr@redhat.com>
- *
- * This file contains the public data structure and API definitions.
- */
-
-#ifndef _LINUX_PROPORTIONS_H
-#define _LINUX_PROPORTIONS_H
-
-#include <linux/percpu_counter.h>
-#include <linux/spinlock.h>
-#include <linux/mutex.h>
-
-struct prop_global {
- /*
- * The period over which we differentiate
- *
- * period = 2^shift
- */
- int shift;
- /*
- * The total event counter aka 'time'.
- *
- * Treated as an unsigned long; the lower 'shift - 1' bits are the
- * counter bits, the remaining upper bits the period counter.
- */
- struct percpu_counter events;
-};
-
-/*
- * global proportion descriptor
- *
- * this is needed to consitently flip prop_global structures.
- */
-struct prop_descriptor {
- int index;
- struct prop_global pg[2];
- struct mutex mutex; /* serialize the prop_global switch */
-};
-
-int prop_descriptor_init(struct prop_descriptor *pd, int shift);
-void prop_change_shift(struct prop_descriptor *pd, int new_shift);
-
-/*
- * ----- PERCPU ------
- */
-
-struct prop_local_percpu {
- /*
- * the local events counter
- */
- struct percpu_counter events;
-
- /*
- * snapshot of the last seen global state
- */
- int shift;
- unsigned long period;
- raw_spinlock_t lock; /* protect the snapshot state */
-};
-
-int prop_local_init_percpu(struct prop_local_percpu *pl);
-void prop_local_destroy_percpu(struct prop_local_percpu *pl);
-void __prop_inc_percpu(struct prop_descriptor *pd, struct prop_local_percpu *pl);
-void prop_fraction_percpu(struct prop_descriptor *pd, struct prop_local_percpu *pl,
- long *numerator, long *denominator);
-
-static inline
-void prop_inc_percpu(struct prop_descriptor *pd, struct prop_local_percpu *pl)
-{
- unsigned long flags;
-
- local_irq_save(flags);
- __prop_inc_percpu(pd, pl);
- local_irq_restore(flags);
-}
-
-/*
- * Limit the time part in order to ensure there are some bits left for the
- * cycle counter and fraction multiply.
- */
-#if BITS_PER_LONG == 32
-#define PROP_MAX_SHIFT (3*BITS_PER_LONG/4)
-#else
-#define PROP_MAX_SHIFT (BITS_PER_LONG/2)
-#endif
-
-#define PROP_FRAC_SHIFT (BITS_PER_LONG - PROP_MAX_SHIFT - 1)
-#define PROP_FRAC_BASE (1UL << PROP_FRAC_SHIFT)
-
-void __prop_inc_percpu_max(struct prop_descriptor *pd,
- struct prop_local_percpu *pl, long frac);
-
-
-/*
- * ----- SINGLE ------
- */
-
-struct prop_local_single {
- /*
- * the local events counter
- */
- unsigned long events;
-
- /*
- * snapshot of the last seen global state
- * and a lock protecting this state
- */
- unsigned long period;
- int shift;
- raw_spinlock_t lock; /* protect the snapshot state */
-};
-
-#define INIT_PROP_LOCAL_SINGLE(name) \
-{ .lock = __RAW_SPIN_LOCK_UNLOCKED(name.lock), \
-}
-
-int prop_local_init_single(struct prop_local_single *pl);
-void prop_local_destroy_single(struct prop_local_single *pl);
-void __prop_inc_single(struct prop_descriptor *pd, struct prop_local_single *pl);
-void prop_fraction_single(struct prop_descriptor *pd, struct prop_local_single *pl,
- long *numerator, long *denominator);
-
-static inline
-void prop_inc_single(struct prop_descriptor *pd, struct prop_local_single *pl)
-{
- unsigned long flags;
-
- local_irq_save(flags);
- __prop_inc_single(pd, pl);
- local_irq_restore(flags);
-}
-
-#endif /* _LINUX_PROPORTIONS_H */
diff --git a/ANDROID_3.4.5/include/linux/pstore.h b/ANDROID_3.4.5/include/linux/pstore.h
deleted file mode 100644
index e1461e14..00000000
--- a/ANDROID_3.4.5/include/linux/pstore.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Persistent Storage - pstore.h
- *
- * Copyright (C) 2010 Intel Corporation <tony.luck@intel.com>
- *
- * This code is the generic layer to export data records from platform
- * level persistent storage via a file system.
- *
- * 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.
- *
- * 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
- */
-#ifndef _LINUX_PSTORE_H
-#define _LINUX_PSTORE_H
-
-#include <linux/time.h>
-#include <linux/kmsg_dump.h>
-
-/* types */
-enum pstore_type_id {
- PSTORE_TYPE_DMESG = 0,
- PSTORE_TYPE_MCE = 1,
- PSTORE_TYPE_UNKNOWN = 255
-};
-
-struct pstore_info {
- struct module *owner;
- char *name;
- spinlock_t buf_lock; /* serialize access to 'buf' */
- char *buf;
- size_t bufsize;
- struct mutex read_mutex; /* serialize open/read/close */
- int (*open)(struct pstore_info *psi);
- int (*close)(struct pstore_info *psi);
- ssize_t (*read)(u64 *id, enum pstore_type_id *type,
- struct timespec *time, char **buf,
- struct pstore_info *psi);
- int (*write)(enum pstore_type_id type,
- enum kmsg_dump_reason reason, u64 *id,
- unsigned int part, size_t size, struct pstore_info *psi);
- int (*erase)(enum pstore_type_id type, u64 id,
- struct pstore_info *psi);
- void *data;
-};
-
-#ifdef CONFIG_PSTORE
-extern int pstore_register(struct pstore_info *);
-#else
-static inline int
-pstore_register(struct pstore_info *psi)
-{
- return -ENODEV;
-}
-#endif
-
-#endif /*_LINUX_PSTORE_H*/
diff --git a/ANDROID_3.4.5/include/linux/pti.h b/ANDROID_3.4.5/include/linux/pti.h
deleted file mode 100644
index b3ea01a3..00000000
--- a/ANDROID_3.4.5/include/linux/pti.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) Intel 2011
- *
- * 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.
- *
- * 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.
- *
- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- *
- * The PTI (Parallel Trace Interface) driver directs trace data routed from
- * various parts in the system out through the Intel Penwell PTI port and
- * out of the mobile device for analysis with a debugging tool
- * (Lauterbach, Fido). This is part of a solution for the MIPI P1149.7,
- * compact JTAG, standard.
- *
- * This header file will allow other parts of the OS to use the
- * interface to write out it's contents for debugging a mobile system.
- */
-
-#ifndef PTI_H_
-#define PTI_H_
-
-/* offset for last dword of any PTI message. Part of MIPI P1149.7 */
-#define PTI_LASTDWORD_DTS 0x30
-
-/* basic structure used as a write address to the PTI HW */
-struct pti_masterchannel {
- u8 master;
- u8 channel;
-};
-
-/* the following functions are defined in misc/pti.c */
-void pti_writedata(struct pti_masterchannel *mc, u8 *buf, int count);
-struct pti_masterchannel *pti_request_masterchannel(u8 type,
- const char *thread_name);
-void pti_release_masterchannel(struct pti_masterchannel *mc);
-
-#endif /*PTI_H_*/
diff --git a/ANDROID_3.4.5/include/linux/ptp_classify.h b/ANDROID_3.4.5/include/linux/ptp_classify.h
deleted file mode 100644
index 1dc420ba..00000000
--- a/ANDROID_3.4.5/include/linux/ptp_classify.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * PTP 1588 support
- *
- * This file implements a BPF that recognizes PTP event messages.
- *
- * Copyright (C) 2010 OMICRON electronics GmbH
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef _PTP_CLASSIFY_H_
-#define _PTP_CLASSIFY_H_
-
-#include <linux/if_ether.h>
-#include <linux/if_vlan.h>
-#include <linux/ip.h>
-#include <linux/filter.h>
-#ifdef __KERNEL__
-#include <linux/in.h>
-#else
-#include <netinet/in.h>
-#endif
-
-#define PTP_CLASS_NONE 0x00 /* not a PTP event message */
-#define PTP_CLASS_V1 0x01 /* protocol version 1 */
-#define PTP_CLASS_V2 0x02 /* protocol version 2 */
-#define PTP_CLASS_VMASK 0x0f /* max protocol version is 15 */
-#define PTP_CLASS_IPV4 0x10 /* event in an IPV4 UDP packet */
-#define PTP_CLASS_IPV6 0x20 /* event in an IPV6 UDP packet */
-#define PTP_CLASS_L2 0x30 /* event in a L2 packet */
-#define PTP_CLASS_VLAN 0x40 /* event in a VLAN tagged L2 packet */
-#define PTP_CLASS_PMASK 0xf0 /* mask for the packet type field */
-
-#define PTP_CLASS_V1_IPV4 (PTP_CLASS_V1 | PTP_CLASS_IPV4)
-#define PTP_CLASS_V1_IPV6 (PTP_CLASS_V1 | PTP_CLASS_IPV6) /*probably DNE*/
-#define PTP_CLASS_V2_IPV4 (PTP_CLASS_V2 | PTP_CLASS_IPV4)
-#define PTP_CLASS_V2_IPV6 (PTP_CLASS_V2 | PTP_CLASS_IPV6)
-#define PTP_CLASS_V2_L2 (PTP_CLASS_V2 | PTP_CLASS_L2)
-#define PTP_CLASS_V2_VLAN (PTP_CLASS_V2 | PTP_CLASS_VLAN)
-
-#define PTP_EV_PORT 319
-#define PTP_GEN_BIT 0x08 /* indicates general message, if set in message type */
-
-#define OFF_ETYPE 12
-#define OFF_IHL 14
-#define OFF_FRAG 20
-#define OFF_PROTO4 23
-#define OFF_NEXT 6
-#define OFF_UDP_DST 2
-
-#define OFF_PTP_SOURCE_UUID 22 /* PTPv1 only */
-#define OFF_PTP_SEQUENCE_ID 30
-#define OFF_PTP_CONTROL 32 /* PTPv1 only */
-
-#define IPV4_HLEN(data) (((struct iphdr *)(data + OFF_IHL))->ihl << 2)
-
-#define IP6_HLEN 40
-#define UDP_HLEN 8
-
-#define RELOFF_DST4 (ETH_HLEN + OFF_UDP_DST)
-#define OFF_DST6 (ETH_HLEN + IP6_HLEN + OFF_UDP_DST)
-#define OFF_PTP6 (ETH_HLEN + IP6_HLEN + UDP_HLEN)
-
-#define OP_AND (BPF_ALU | BPF_AND | BPF_K)
-#define OP_JEQ (BPF_JMP | BPF_JEQ | BPF_K)
-#define OP_JSET (BPF_JMP | BPF_JSET | BPF_K)
-#define OP_LDB (BPF_LD | BPF_B | BPF_ABS)
-#define OP_LDH (BPF_LD | BPF_H | BPF_ABS)
-#define OP_LDHI (BPF_LD | BPF_H | BPF_IND)
-#define OP_LDX (BPF_LDX | BPF_B | BPF_MSH)
-#define OP_OR (BPF_ALU | BPF_OR | BPF_K)
-#define OP_RETA (BPF_RET | BPF_A)
-#define OP_RETK (BPF_RET | BPF_K)
-
-static inline int ptp_filter_init(struct sock_filter *f, int len)
-{
- if (OP_LDH == f[0].code)
- return sk_chk_filter(f, len);
- else
- return 0;
-}
-
-#define PTP_FILTER \
- {OP_LDH, 0, 0, OFF_ETYPE }, /* */ \
- {OP_JEQ, 0, 12, ETH_P_IP }, /* f goto L20 */ \
- {OP_LDB, 0, 0, OFF_PROTO4 }, /* */ \
- {OP_JEQ, 0, 9, IPPROTO_UDP }, /* f goto L10 */ \
- {OP_LDH, 0, 0, OFF_FRAG }, /* */ \
- {OP_JSET, 7, 0, 0x1fff }, /* t goto L11 */ \
- {OP_LDX, 0, 0, OFF_IHL }, /* */ \
- {OP_LDHI, 0, 0, RELOFF_DST4 }, /* */ \
- {OP_JEQ, 0, 4, PTP_EV_PORT }, /* f goto L12 */ \
- {OP_LDHI, 0, 0, ETH_HLEN + UDP_HLEN }, /* */ \
- {OP_AND, 0, 0, PTP_CLASS_VMASK }, /* */ \
- {OP_OR, 0, 0, PTP_CLASS_IPV4 }, /* */ \
- {OP_RETA, 0, 0, 0 }, /* */ \
-/*L1x*/ {OP_RETK, 0, 0, PTP_CLASS_NONE }, /* */ \
-/*L20*/ {OP_JEQ, 0, 9, ETH_P_IPV6 }, /* f goto L40 */ \
- {OP_LDB, 0, 0, ETH_HLEN + OFF_NEXT }, /* */ \
- {OP_JEQ, 0, 6, IPPROTO_UDP }, /* f goto L30 */ \
- {OP_LDH, 0, 0, OFF_DST6 }, /* */ \
- {OP_JEQ, 0, 4, PTP_EV_PORT }, /* f goto L31 */ \
- {OP_LDH, 0, 0, OFF_PTP6 }, /* */ \
- {OP_AND, 0, 0, PTP_CLASS_VMASK }, /* */ \
- {OP_OR, 0, 0, PTP_CLASS_IPV6 }, /* */ \
- {OP_RETA, 0, 0, 0 }, /* */ \
-/*L3x*/ {OP_RETK, 0, 0, PTP_CLASS_NONE }, /* */ \
-/*L40*/ {OP_JEQ, 0, 9, ETH_P_8021Q }, /* f goto L50 */ \
- {OP_LDH, 0, 0, OFF_ETYPE + 4 }, /* */ \
- {OP_JEQ, 0, 15, ETH_P_1588 }, /* f goto L60 */ \
- {OP_LDB, 0, 0, ETH_HLEN + VLAN_HLEN }, /* */ \
- {OP_AND, 0, 0, PTP_GEN_BIT }, /* */ \
- {OP_JEQ, 0, 12, 0 }, /* f goto L6x */ \
- {OP_LDH, 0, 0, ETH_HLEN + VLAN_HLEN }, /* */ \
- {OP_AND, 0, 0, PTP_CLASS_VMASK }, /* */ \
- {OP_OR, 0, 0, PTP_CLASS_VLAN }, /* */ \
- {OP_RETA, 0, 0, 0 }, /* */ \
-/*L50*/ {OP_JEQ, 0, 7, ETH_P_1588 }, /* f goto L61 */ \
- {OP_LDB, 0, 0, ETH_HLEN }, /* */ \
- {OP_AND, 0, 0, PTP_GEN_BIT }, /* */ \
- {OP_JEQ, 0, 4, 0 }, /* f goto L6x */ \
- {OP_LDH, 0, 0, ETH_HLEN }, /* */ \
- {OP_AND, 0, 0, PTP_CLASS_VMASK }, /* */ \
- {OP_OR, 0, 0, PTP_CLASS_L2 }, /* */ \
- {OP_RETA, 0, 0, 0 }, /* */ \
-/*L6x*/ {OP_RETK, 0, 0, PTP_CLASS_NONE },
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ptp_clock.h b/ANDROID_3.4.5/include/linux/ptp_clock.h
deleted file mode 100644
index 94e981f8..00000000
--- a/ANDROID_3.4.5/include/linux/ptp_clock.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * PTP 1588 clock support - user space interface
- *
- * Copyright (C) 2010 OMICRON electronics GmbH
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef _PTP_CLOCK_H_
-#define _PTP_CLOCK_H_
-
-#include <linux/ioctl.h>
-#include <linux/types.h>
-
-/* PTP_xxx bits, for the flags field within the request structures. */
-#define PTP_ENABLE_FEATURE (1<<0)
-#define PTP_RISING_EDGE (1<<1)
-#define PTP_FALLING_EDGE (1<<2)
-
-/*
- * struct ptp_clock_time - represents a time value
- *
- * The sign of the seconds field applies to the whole value. The
- * nanoseconds field is always unsigned. The reserved field is
- * included for sub-nanosecond resolution, should the demand for
- * this ever appear.
- *
- */
-struct ptp_clock_time {
- __s64 sec; /* seconds */
- __u32 nsec; /* nanoseconds */
- __u32 reserved;
-};
-
-struct ptp_clock_caps {
- int max_adj; /* Maximum frequency adjustment in parts per billon. */
- int n_alarm; /* Number of programmable alarms. */
- int n_ext_ts; /* Number of external time stamp channels. */
- int n_per_out; /* Number of programmable periodic signals. */
- int pps; /* Whether the clock supports a PPS callback. */
- int rsv[15]; /* Reserved for future use. */
-};
-
-struct ptp_extts_request {
- unsigned int index; /* Which channel to configure. */
- unsigned int flags; /* Bit field for PTP_xxx flags. */
- unsigned int rsv[2]; /* Reserved for future use. */
-};
-
-struct ptp_perout_request {
- struct ptp_clock_time start; /* Absolute start time. */
- struct ptp_clock_time period; /* Desired period, zero means disable. */
- unsigned int index; /* Which channel to configure. */
- unsigned int flags; /* Reserved for future use. */
- unsigned int rsv[4]; /* Reserved for future use. */
-};
-
-#define PTP_CLK_MAGIC '='
-
-#define PTP_CLOCK_GETCAPS _IOR(PTP_CLK_MAGIC, 1, struct ptp_clock_caps)
-#define PTP_EXTTS_REQUEST _IOW(PTP_CLK_MAGIC, 2, struct ptp_extts_request)
-#define PTP_PEROUT_REQUEST _IOW(PTP_CLK_MAGIC, 3, struct ptp_perout_request)
-#define PTP_ENABLE_PPS _IOW(PTP_CLK_MAGIC, 4, int)
-
-struct ptp_extts_event {
- struct ptp_clock_time t; /* Time event occured. */
- unsigned int index; /* Which channel produced the event. */
- unsigned int flags; /* Reserved for future use. */
- unsigned int rsv[2]; /* Reserved for future use. */
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ptp_clock_kernel.h b/ANDROID_3.4.5/include/linux/ptp_clock_kernel.h
deleted file mode 100644
index dd2e44fb..00000000
--- a/ANDROID_3.4.5/include/linux/ptp_clock_kernel.h
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * PTP 1588 clock support
- *
- * Copyright (C) 2010 OMICRON electronics GmbH
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef _PTP_CLOCK_KERNEL_H_
-#define _PTP_CLOCK_KERNEL_H_
-
-#include <linux/ptp_clock.h>
-
-
-struct ptp_clock_request {
- enum {
- PTP_CLK_REQ_EXTTS,
- PTP_CLK_REQ_PEROUT,
- PTP_CLK_REQ_PPS,
- } type;
- union {
- struct ptp_extts_request extts;
- struct ptp_perout_request perout;
- };
-};
-
-/**
- * struct ptp_clock_info - decribes a PTP hardware clock
- *
- * @owner: The clock driver should set to THIS_MODULE.
- * @name: A short name to identify the clock.
- * @max_adj: The maximum possible frequency adjustment, in parts per billon.
- * @n_alarm: The number of programmable alarms.
- * @n_ext_ts: The number of external time stamp channels.
- * @n_per_out: The number of programmable periodic signals.
- * @pps: Indicates whether the clock supports a PPS callback.
- *
- * clock operations
- *
- * @adjfreq: Adjusts the frequency of the hardware clock.
- * parameter delta: Desired period change in parts per billion.
- *
- * @adjtime: Shifts the time of the hardware clock.
- * parameter delta: Desired change in nanoseconds.
- *
- * @gettime: Reads the current time from the hardware clock.
- * parameter ts: Holds the result.
- *
- * @settime: Set the current time on the hardware clock.
- * parameter ts: Time value to set.
- *
- * @enable: Request driver to enable or disable an ancillary feature.
- * parameter request: Desired resource to enable or disable.
- * parameter on: Caller passes one to enable or zero to disable.
- *
- * Drivers should embed their ptp_clock_info within a private
- * structure, obtaining a reference to it using container_of().
- *
- * The callbacks must all return zero on success, non-zero otherwise.
- */
-
-struct ptp_clock_info {
- struct module *owner;
- char name[16];
- s32 max_adj;
- int n_alarm;
- int n_ext_ts;
- int n_per_out;
- int pps;
- int (*adjfreq)(struct ptp_clock_info *ptp, s32 delta);
- int (*adjtime)(struct ptp_clock_info *ptp, s64 delta);
- int (*gettime)(struct ptp_clock_info *ptp, struct timespec *ts);
- int (*settime)(struct ptp_clock_info *ptp, const struct timespec *ts);
- int (*enable)(struct ptp_clock_info *ptp,
- struct ptp_clock_request *request, int on);
-};
-
-struct ptp_clock;
-
-/**
- * ptp_clock_register() - register a PTP hardware clock driver
- *
- * @info: Structure describing the new clock.
- */
-
-extern struct ptp_clock *ptp_clock_register(struct ptp_clock_info *info);
-
-/**
- * ptp_clock_unregister() - unregister a PTP hardware clock driver
- *
- * @ptp: The clock to remove from service.
- */
-
-extern int ptp_clock_unregister(struct ptp_clock *ptp);
-
-
-enum ptp_clock_events {
- PTP_CLOCK_ALARM,
- PTP_CLOCK_EXTTS,
- PTP_CLOCK_PPS,
-};
-
-/**
- * struct ptp_clock_event - decribes a PTP hardware clock event
- *
- * @type: One of the ptp_clock_events enumeration values.
- * @index: Identifies the source of the event.
- * @timestamp: When the event occured.
- */
-
-struct ptp_clock_event {
- int type;
- int index;
- u64 timestamp;
-};
-
-/**
- * ptp_clock_event() - notify the PTP layer about an event
- *
- * @ptp: The clock obtained from ptp_clock_register().
- * @event: Message structure describing the event.
- */
-
-extern void ptp_clock_event(struct ptp_clock *ptp,
- struct ptp_clock_event *event);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ptrace.h b/ANDROID_3.4.5/include/linux/ptrace.h
deleted file mode 100644
index 5c719627..00000000
--- a/ANDROID_3.4.5/include/linux/ptrace.h
+++ /dev/null
@@ -1,416 +0,0 @@
-#ifndef _LINUX_PTRACE_H
-#define _LINUX_PTRACE_H
-/* ptrace.h */
-/* structs and defines to help the user use the ptrace system call. */
-
-/* has the defines to get at the registers. */
-
-#define PTRACE_TRACEME 0
-#define PTRACE_PEEKTEXT 1
-#define PTRACE_PEEKDATA 2
-#define PTRACE_PEEKUSR 3
-#define PTRACE_POKETEXT 4
-#define PTRACE_POKEDATA 5
-#define PTRACE_POKEUSR 6
-#define PTRACE_CONT 7
-#define PTRACE_KILL 8
-#define PTRACE_SINGLESTEP 9
-
-#define PTRACE_ATTACH 16
-#define PTRACE_DETACH 17
-
-#define PTRACE_SYSCALL 24
-
-/* 0x4200-0x4300 are reserved for architecture-independent additions. */
-#define PTRACE_SETOPTIONS 0x4200
-#define PTRACE_GETEVENTMSG 0x4201
-#define PTRACE_GETSIGINFO 0x4202
-#define PTRACE_SETSIGINFO 0x4203
-
-/*
- * Generic ptrace interface that exports the architecture specific regsets
- * using the corresponding NT_* types (which are also used in the core dump).
- * Please note that the NT_PRSTATUS note type in a core dump contains a full
- * 'struct elf_prstatus'. But the user_regset for NT_PRSTATUS contains just the
- * elf_gregset_t that is the pr_reg field of 'struct elf_prstatus'. For all the
- * other user_regset flavors, the user_regset layout and the ELF core dump note
- * payload are exactly the same layout.
- *
- * This interface usage is as follows:
- * struct iovec iov = { buf, len};
- *
- * ret = ptrace(PTRACE_GETREGSET/PTRACE_SETREGSET, pid, NT_XXX_TYPE, &iov);
- *
- * On the successful completion, iov.len will be updated by the kernel,
- * specifying how much the kernel has written/read to/from the user's iov.buf.
- */
-#define PTRACE_GETREGSET 0x4204
-#define PTRACE_SETREGSET 0x4205
-
-#define PTRACE_SEIZE 0x4206
-#define PTRACE_INTERRUPT 0x4207
-#define PTRACE_LISTEN 0x4208
-
-/* Wait extended result codes for the above trace options. */
-#define PTRACE_EVENT_FORK 1
-#define PTRACE_EVENT_VFORK 2
-#define PTRACE_EVENT_CLONE 3
-#define PTRACE_EVENT_EXEC 4
-#define PTRACE_EVENT_VFORK_DONE 5
-#define PTRACE_EVENT_EXIT 6
-/* Extended result codes which enabled by means other than options. */
-#define PTRACE_EVENT_STOP 128
-
-/* Options set using PTRACE_SETOPTIONS or using PTRACE_SEIZE @data param */
-#define PTRACE_O_TRACESYSGOOD 1
-#define PTRACE_O_TRACEFORK (1 << PTRACE_EVENT_FORK)
-#define PTRACE_O_TRACEVFORK (1 << PTRACE_EVENT_VFORK)
-#define PTRACE_O_TRACECLONE (1 << PTRACE_EVENT_CLONE)
-#define PTRACE_O_TRACEEXEC (1 << PTRACE_EVENT_EXEC)
-#define PTRACE_O_TRACEVFORKDONE (1 << PTRACE_EVENT_VFORK_DONE)
-#define PTRACE_O_TRACEEXIT (1 << PTRACE_EVENT_EXIT)
-
-#define PTRACE_O_MASK 0x0000007f
-
-#include <asm/ptrace.h>
-
-#ifdef __KERNEL__
-/*
- * Ptrace flags
- *
- * The owner ship rules for task->ptrace which holds the ptrace
- * flags is simple. When a task is running it owns it's task->ptrace
- * flags. When the a task is stopped the ptracer owns task->ptrace.
- */
-
-#define PT_SEIZED 0x00010000 /* SEIZE used, enable new behavior */
-#define PT_PTRACED 0x00000001
-#define PT_DTRACE 0x00000002 /* delayed trace (used on m68k, i386) */
-#define PT_PTRACE_CAP 0x00000004 /* ptracer can follow suid-exec */
-
-#define PT_OPT_FLAG_SHIFT 3
-/* PT_TRACE_* event enable flags */
-#define PT_EVENT_FLAG(event) (1 << (PT_OPT_FLAG_SHIFT + (event)))
-#define PT_TRACESYSGOOD PT_EVENT_FLAG(0)
-#define PT_TRACE_FORK PT_EVENT_FLAG(PTRACE_EVENT_FORK)
-#define PT_TRACE_VFORK PT_EVENT_FLAG(PTRACE_EVENT_VFORK)
-#define PT_TRACE_CLONE PT_EVENT_FLAG(PTRACE_EVENT_CLONE)
-#define PT_TRACE_EXEC PT_EVENT_FLAG(PTRACE_EVENT_EXEC)
-#define PT_TRACE_VFORK_DONE PT_EVENT_FLAG(PTRACE_EVENT_VFORK_DONE)
-#define PT_TRACE_EXIT PT_EVENT_FLAG(PTRACE_EVENT_EXIT)
-
-/* single stepping state bits (used on ARM and PA-RISC) */
-#define PT_SINGLESTEP_BIT 31
-#define PT_SINGLESTEP (1<<PT_SINGLESTEP_BIT)
-#define PT_BLOCKSTEP_BIT 30
-#define PT_BLOCKSTEP (1<<PT_BLOCKSTEP_BIT)
-
-#include <linux/compiler.h> /* For unlikely. */
-#include <linux/sched.h> /* For struct task_struct. */
-#include <linux/err.h> /* for IS_ERR_VALUE */
-#include <linux/bug.h> /* For BUG_ON. */
-
-
-extern long arch_ptrace(struct task_struct *child, long request,
- unsigned long addr, unsigned long data);
-extern int ptrace_readdata(struct task_struct *tsk, unsigned long src, char __user *dst, int len);
-extern int ptrace_writedata(struct task_struct *tsk, char __user *src, unsigned long dst, int len);
-extern void ptrace_disable(struct task_struct *);
-extern int ptrace_check_attach(struct task_struct *task, bool ignore_state);
-extern int ptrace_request(struct task_struct *child, long request,
- unsigned long addr, unsigned long data);
-extern void ptrace_notify(int exit_code);
-extern void __ptrace_link(struct task_struct *child,
- struct task_struct *new_parent);
-extern void __ptrace_unlink(struct task_struct *child);
-extern void exit_ptrace(struct task_struct *tracer);
-#define PTRACE_MODE_READ 0x01
-#define PTRACE_MODE_ATTACH 0x02
-#define PTRACE_MODE_NOAUDIT 0x04
-/* Returns 0 on success, -errno on denial. */
-extern int __ptrace_may_access(struct task_struct *task, unsigned int mode);
-/* Returns true on success, false on denial. */
-extern bool ptrace_may_access(struct task_struct *task, unsigned int mode);
-
-static inline int ptrace_reparented(struct task_struct *child)
-{
- return !same_thread_group(child->real_parent, child->parent);
-}
-
-static inline void ptrace_unlink(struct task_struct *child)
-{
- if (unlikely(child->ptrace))
- __ptrace_unlink(child);
-}
-
-int generic_ptrace_peekdata(struct task_struct *tsk, unsigned long addr,
- unsigned long data);
-int generic_ptrace_pokedata(struct task_struct *tsk, unsigned long addr,
- unsigned long data);
-
-/**
- * ptrace_parent - return the task that is tracing the given task
- * @task: task to consider
- *
- * Returns %NULL if no one is tracing @task, or the &struct task_struct
- * pointer to its tracer.
- *
- * Must called under rcu_read_lock(). The pointer returned might be kept
- * live only by RCU. During exec, this may be called with task_lock() held
- * on @task, still held from when check_unsafe_exec() was called.
- */
-static inline struct task_struct *ptrace_parent(struct task_struct *task)
-{
- if (unlikely(task->ptrace))
- return rcu_dereference(task->parent);
- return NULL;
-}
-
-/**
- * ptrace_event_enabled - test whether a ptrace event is enabled
- * @task: ptracee of interest
- * @event: %PTRACE_EVENT_* to test
- *
- * Test whether @event is enabled for ptracee @task.
- *
- * Returns %true if @event is enabled, %false otherwise.
- */
-static inline bool ptrace_event_enabled(struct task_struct *task, int event)
-{
- return task->ptrace & PT_EVENT_FLAG(event);
-}
-
-/**
- * ptrace_event - possibly stop for a ptrace event notification
- * @event: %PTRACE_EVENT_* value to report
- * @message: value for %PTRACE_GETEVENTMSG to return
- *
- * Check whether @event is enabled and, if so, report @event and @message
- * to the ptrace parent.
- *
- * Called without locks.
- */
-static inline void ptrace_event(int event, unsigned long message)
-{
- if (unlikely(ptrace_event_enabled(current, event))) {
- current->ptrace_message = message;
- ptrace_notify((event << 8) | SIGTRAP);
- } else if (event == PTRACE_EVENT_EXEC) {
- /* legacy EXEC report via SIGTRAP */
- if ((current->ptrace & (PT_PTRACED|PT_SEIZED)) == PT_PTRACED)
- send_sig(SIGTRAP, current, 0);
- }
-}
-
-/**
- * ptrace_init_task - initialize ptrace state for a new child
- * @child: new child task
- * @ptrace: true if child should be ptrace'd by parent's tracer
- *
- * This is called immediately after adding @child to its parent's children
- * list. @ptrace is false in the normal case, and true to ptrace @child.
- *
- * Called with current's siglock and write_lock_irq(&tasklist_lock) held.
- */
-static inline void ptrace_init_task(struct task_struct *child, bool ptrace)
-{
- INIT_LIST_HEAD(&child->ptrace_entry);
- INIT_LIST_HEAD(&child->ptraced);
-#ifdef CONFIG_HAVE_HW_BREAKPOINT
- atomic_set(&child->ptrace_bp_refcnt, 1);
-#endif
- child->jobctl = 0;
- child->ptrace = 0;
- child->parent = child->real_parent;
-
- if (unlikely(ptrace) && current->ptrace) {
- child->ptrace = current->ptrace;
- __ptrace_link(child, current->parent);
-
- if (child->ptrace & PT_SEIZED)
- task_set_jobctl_pending(child, JOBCTL_TRAP_STOP);
- else
- sigaddset(&child->pending.signal, SIGSTOP);
-
- set_tsk_thread_flag(child, TIF_SIGPENDING);
- }
-}
-
-/**
- * ptrace_release_task - final ptrace-related cleanup of a zombie being reaped
- * @task: task in %EXIT_DEAD state
- *
- * Called with write_lock(&tasklist_lock) held.
- */
-static inline void ptrace_release_task(struct task_struct *task)
-{
- BUG_ON(!list_empty(&task->ptraced));
- ptrace_unlink(task);
- BUG_ON(!list_empty(&task->ptrace_entry));
-}
-
-#ifndef force_successful_syscall_return
-/*
- * System call handlers that, upon successful completion, need to return a
- * negative value should call force_successful_syscall_return() right before
- * returning. On architectures where the syscall convention provides for a
- * separate error flag (e.g., alpha, ia64, ppc{,64}, sparc{,64}, possibly
- * others), this macro can be used to ensure that the error flag will not get
- * set. On architectures which do not support a separate error flag, the macro
- * is a no-op and the spurious error condition needs to be filtered out by some
- * other means (e.g., in user-level, by passing an extra argument to the
- * syscall handler, or something along those lines).
- */
-#define force_successful_syscall_return() do { } while (0)
-#endif
-
-#ifndef is_syscall_success
-/*
- * On most systems we can tell if a syscall is a success based on if the retval
- * is an error value. On some systems like ia64 and powerpc they have different
- * indicators of success/failure and must define their own.
- */
-#define is_syscall_success(regs) (!IS_ERR_VALUE((unsigned long)(regs_return_value(regs))))
-#endif
-
-/*
- * <asm/ptrace.h> should define the following things inside #ifdef __KERNEL__.
- *
- * These do-nothing inlines are used when the arch does not
- * implement single-step. The kerneldoc comments are here
- * to document the interface for all arch definitions.
- */
-
-#ifndef arch_has_single_step
-/**
- * arch_has_single_step - does this CPU support user-mode single-step?
- *
- * If this is defined, then there must be function declarations or
- * inlines for user_enable_single_step() and user_disable_single_step().
- * arch_has_single_step() should evaluate to nonzero iff the machine
- * supports instruction single-step for user mode.
- * It can be a constant or it can test a CPU feature bit.
- */
-#define arch_has_single_step() (0)
-
-/**
- * user_enable_single_step - single-step in user-mode task
- * @task: either current or a task stopped in %TASK_TRACED
- *
- * This can only be called when arch_has_single_step() has returned nonzero.
- * Set @task so that when it returns to user mode, it will trap after the
- * next single instruction executes. If arch_has_block_step() is defined,
- * this must clear the effects of user_enable_block_step() too.
- */
-static inline void user_enable_single_step(struct task_struct *task)
-{
- BUG(); /* This can never be called. */
-}
-
-/**
- * user_disable_single_step - cancel user-mode single-step
- * @task: either current or a task stopped in %TASK_TRACED
- *
- * Clear @task of the effects of user_enable_single_step() and
- * user_enable_block_step(). This can be called whether or not either
- * of those was ever called on @task, and even if arch_has_single_step()
- * returned zero.
- */
-static inline void user_disable_single_step(struct task_struct *task)
-{
-}
-#else
-extern void user_enable_single_step(struct task_struct *);
-extern void user_disable_single_step(struct task_struct *);
-#endif /* arch_has_single_step */
-
-#ifndef arch_has_block_step
-/**
- * arch_has_block_step - does this CPU support user-mode block-step?
- *
- * If this is defined, then there must be a function declaration or inline
- * for user_enable_block_step(), and arch_has_single_step() must be defined
- * too. arch_has_block_step() should evaluate to nonzero iff the machine
- * supports step-until-branch for user mode. It can be a constant or it
- * can test a CPU feature bit.
- */
-#define arch_has_block_step() (0)
-
-/**
- * user_enable_block_step - step until branch in user-mode task
- * @task: either current or a task stopped in %TASK_TRACED
- *
- * This can only be called when arch_has_block_step() has returned nonzero,
- * and will never be called when single-instruction stepping is being used.
- * Set @task so that when it returns to user mode, it will trap after the
- * next branch or trap taken.
- */
-static inline void user_enable_block_step(struct task_struct *task)
-{
- BUG(); /* This can never be called. */
-}
-#else
-extern void user_enable_block_step(struct task_struct *);
-#endif /* arch_has_block_step */
-
-#ifdef ARCH_HAS_USER_SINGLE_STEP_INFO
-extern void user_single_step_siginfo(struct task_struct *tsk,
- struct pt_regs *regs, siginfo_t *info);
-#else
-static inline void user_single_step_siginfo(struct task_struct *tsk,
- struct pt_regs *regs, siginfo_t *info)
-{
- memset(info, 0, sizeof(*info));
- info->si_signo = SIGTRAP;
-}
-#endif
-
-#ifndef arch_ptrace_stop_needed
-/**
- * arch_ptrace_stop_needed - Decide whether arch_ptrace_stop() should be called
- * @code: current->exit_code value ptrace will stop with
- * @info: siginfo_t pointer (or %NULL) for signal ptrace will stop with
- *
- * This is called with the siglock held, to decide whether or not it's
- * necessary to release the siglock and call arch_ptrace_stop() with the
- * same @code and @info arguments. It can be defined to a constant if
- * arch_ptrace_stop() is never required, or always is. On machines where
- * this makes sense, it should be defined to a quick test to optimize out
- * calling arch_ptrace_stop() when it would be superfluous. For example,
- * if the thread has not been back to user mode since the last stop, the
- * thread state might indicate that nothing needs to be done.
- */
-#define arch_ptrace_stop_needed(code, info) (0)
-#endif
-
-#ifndef arch_ptrace_stop
-/**
- * arch_ptrace_stop - Do machine-specific work before stopping for ptrace
- * @code: current->exit_code value ptrace will stop with
- * @info: siginfo_t pointer (or %NULL) for signal ptrace will stop with
- *
- * This is called with no locks held when arch_ptrace_stop_needed() has
- * just returned nonzero. It is allowed to block, e.g. for user memory
- * access. The arch can have machine-specific work to be done before
- * ptrace stops. On ia64, register backing store gets written back to user
- * memory here. Since this can be costly (requires dropping the siglock),
- * we only do it when the arch requires it for this particular stop, as
- * indicated by arch_ptrace_stop_needed().
- */
-#define arch_ptrace_stop(code, info) do { } while (0)
-#endif
-
-extern int task_current_syscall(struct task_struct *target, long *callno,
- unsigned long args[6], unsigned int maxargs,
- unsigned long *sp, unsigned long *pc);
-
-#ifdef CONFIG_HAVE_HW_BREAKPOINT
-extern int ptrace_get_breakpoints(struct task_struct *tsk);
-extern void ptrace_put_breakpoints(struct task_struct *tsk);
-#else
-static inline void ptrace_put_breakpoints(struct task_struct *tsk) { }
-#endif /* CONFIG_HAVE_HW_BREAKPOINT */
-
-#endif /* __KERNEL */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/pwm.h b/ANDROID_3.4.5/include/linux/pwm.h
deleted file mode 100644
index 7c775751..00000000
--- a/ANDROID_3.4.5/include/linux/pwm.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef __LINUX_PWM_H
-#define __LINUX_PWM_H
-
-struct pwm_device;
-
-/*
- * pwm_request - request a PWM device
- */
-struct pwm_device *pwm_request(int pwm_id, const char *label);
-
-/*
- * pwm_free - free a PWM device
- */
-void pwm_free(struct pwm_device *pwm);
-
-/*
- * pwm_config - change a PWM device configuration
- */
-int pwm_config(struct pwm_device *pwm, int duty_ns, int period_ns);
-
-/*
- * pwm_enable - start a PWM output toggling
- */
-int pwm_enable(struct pwm_device *pwm);
-
-/*
- * pwm_disable - stop a PWM output toggling
- */
-void pwm_disable(struct pwm_device *pwm);
-
-#endif /* __LINUX_PWM_H */
diff --git a/ANDROID_3.4.5/include/linux/pwm_backlight.h b/ANDROID_3.4.5/include/linux/pwm_backlight.h
deleted file mode 100644
index 412b70c7..00000000
--- a/ANDROID_3.4.5/include/linux/pwm_backlight.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Generic PWM backlight driver data - see drivers/video/backlight/pwm_bl.c
- */
-#ifndef __LINUX_PWM_BACKLIGHT_H
-#define __LINUX_PWM_BACKLIGHT_H
-
-#include <linux/backlight.h>
-
-struct platform_pwm_backlight_data {
- int pwm_id;
- int invert;
- unsigned int max_brightness;
- unsigned int dft_brightness;
- unsigned int lth_brightness;
- unsigned int hth_brightness;
- unsigned int pwm_period_ns;
- int (*init)(struct device *dev);
- int (*notify)(struct device *dev, int brightness);
- void (*notify_after)(struct device *dev, int brightness);
- void (*exit)(struct device *dev);
- int (*check_fb)(struct device *dev, struct fb_info *info);
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/pxa168_eth.h b/ANDROID_3.4.5/include/linux/pxa168_eth.h
deleted file mode 100644
index 18d75e79..00000000
--- a/ANDROID_3.4.5/include/linux/pxa168_eth.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- *pxa168 ethernet platform device data definition file.
- */
-#ifndef __LINUX_PXA168_ETH_H
-#define __LINUX_PXA168_ETH_H
-
-struct pxa168_eth_platform_data {
- int port_number;
- int phy_addr;
-
- /*
- * If speed is 0, then speed and duplex are autonegotiated.
- */
- int speed; /* 0, SPEED_10, SPEED_100 */
- int duplex; /* DUPLEX_HALF or DUPLEX_FULL */
-
- /*
- * Override default RX/TX queue sizes if nonzero.
- */
- int rx_queue_size;
- int tx_queue_size;
-
- /*
- * init callback is used for board specific initialization
- * e.g on Aspenite its used to initialize the PHY transceiver.
- */
- int (*init)(void);
-};
-
-#endif /* __LINUX_PXA168_ETH_H */
diff --git a/ANDROID_3.4.5/include/linux/pxa2xx_ssp.h b/ANDROID_3.4.5/include/linux/pxa2xx_ssp.h
deleted file mode 100644
index 44835fb3..00000000
--- a/ANDROID_3.4.5/include/linux/pxa2xx_ssp.h
+++ /dev/null
@@ -1,209 +0,0 @@
-/*
- * pxa2xx_ssp.h
- *
- * Copyright (C) 2003 Russell King, 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 version 2 as
- * published by the Free Software Foundation.
- *
- * This driver supports the following PXA CPU/SSP ports:-
- *
- * PXA250 SSP
- * PXA255 SSP, NSSP
- * PXA26x SSP, NSSP, ASSP
- * PXA27x SSP1, SSP2, SSP3
- * PXA3xx SSP1, SSP2, SSP3, SSP4
- */
-
-#ifndef __LINUX_SSP_H
-#define __LINUX_SSP_H
-
-#include <linux/list.h>
-#include <linux/io.h>
-
-/*
- * SSP Serial Port Registers
- * PXA250, PXA255, PXA26x and PXA27x SSP controllers are all slightly different.
- * PXA255, PXA26x and PXA27x have extra ports, registers and bits.
- */
-
-#define SSCR0 (0x00) /* SSP Control Register 0 */
-#define SSCR1 (0x04) /* SSP Control Register 1 */
-#define SSSR (0x08) /* SSP Status Register */
-#define SSITR (0x0C) /* SSP Interrupt Test Register */
-#define SSDR (0x10) /* SSP Data Write/Data Read Register */
-
-#define SSTO (0x28) /* SSP Time Out Register */
-#define SSPSP (0x2C) /* SSP Programmable Serial Protocol */
-#define SSTSA (0x30) /* SSP Tx Timeslot Active */
-#define SSRSA (0x34) /* SSP Rx Timeslot Active */
-#define SSTSS (0x38) /* SSP Timeslot Status */
-#define SSACD (0x3C) /* SSP Audio Clock Divider */
-#define SSACDD (0x40) /* SSP Audio Clock Dither Divider */
-
-/* Common PXA2xx bits first */
-#define SSCR0_DSS (0x0000000f) /* Data Size Select (mask) */
-#define SSCR0_DataSize(x) ((x) - 1) /* Data Size Select [4..16] */
-#define SSCR0_FRF (0x00000030) /* FRame Format (mask) */
-#define SSCR0_Motorola (0x0 << 4) /* Motorola's Serial Peripheral Interface (SPI) */
-#define SSCR0_TI (0x1 << 4) /* Texas Instruments' Synchronous Serial Protocol (SSP) */
-#define SSCR0_National (0x2 << 4) /* National Microwire */
-#define SSCR0_ECS (1 << 6) /* External clock select */
-#define SSCR0_SSE (1 << 7) /* Synchronous Serial Port Enable */
-#define SSCR0_SCR(x) ((x) << 8) /* Serial Clock Rate (mask) */
-
-/* PXA27x, PXA3xx */
-#define SSCR0_EDSS (1 << 20) /* Extended data size select */
-#define SSCR0_NCS (1 << 21) /* Network clock select */
-#define SSCR0_RIM (1 << 22) /* Receive FIFO overrrun interrupt mask */
-#define SSCR0_TUM (1 << 23) /* Transmit FIFO underrun interrupt mask */
-#define SSCR0_FRDC (0x07000000) /* Frame rate divider control (mask) */
-#define SSCR0_SlotsPerFrm(x) (((x) - 1) << 24) /* Time slots per frame [1..8] */
-#define SSCR0_FPCKE (1 << 29) /* FIFO packing enable */
-#define SSCR0_ACS (1 << 30) /* Audio clock select */
-#define SSCR0_MOD (1 << 31) /* Mode (normal or network) */
-
-
-#define SSCR1_RIE (1 << 0) /* Receive FIFO Interrupt Enable */
-#define SSCR1_TIE (1 << 1) /* Transmit FIFO Interrupt Enable */
-#define SSCR1_LBM (1 << 2) /* Loop-Back Mode */
-#define SSCR1_SPO (1 << 3) /* Motorola SPI SSPSCLK polarity setting */
-#define SSCR1_SPH (1 << 4) /* Motorola SPI SSPSCLK phase setting */
-#define SSCR1_MWDS (1 << 5) /* Microwire Transmit Data Size */
-
-#define SSSR_ALT_FRM_MASK 3 /* Masks the SFRM signal number */
-#define SSSR_TNF (1 << 2) /* Transmit FIFO Not Full */
-#define SSSR_RNE (1 << 3) /* Receive FIFO Not Empty */
-#define SSSR_BSY (1 << 4) /* SSP Busy */
-#define SSSR_TFS (1 << 5) /* Transmit FIFO Service Request */
-#define SSSR_RFS (1 << 6) /* Receive FIFO Service Request */
-#define SSSR_ROR (1 << 7) /* Receive FIFO Overrun */
-
-#ifdef CONFIG_ARCH_PXA
-#define RX_THRESH_DFLT 8
-#define TX_THRESH_DFLT 8
-
-#define SSSR_TFL_MASK (0xf << 8) /* Transmit FIFO Level mask */
-#define SSSR_RFL_MASK (0xf << 12) /* Receive FIFO Level mask */
-
-#define SSCR1_TFT (0x000003c0) /* Transmit FIFO Threshold (mask) */
-#define SSCR1_TxTresh(x) (((x) - 1) << 6) /* level [1..16] */
-#define SSCR1_RFT (0x00003c00) /* Receive FIFO Threshold (mask) */
-#define SSCR1_RxTresh(x) (((x) - 1) << 10) /* level [1..16] */
-
-#else
-
-#define RX_THRESH_DFLT 2
-#define TX_THRESH_DFLT 2
-
-#define SSSR_TFL_MASK (0x3 << 8) /* Transmit FIFO Level mask */
-#define SSSR_RFL_MASK (0x3 << 12) /* Receive FIFO Level mask */
-
-#define SSCR1_TFT (0x000000c0) /* Transmit FIFO Threshold (mask) */
-#define SSCR1_TxTresh(x) (((x) - 1) << 6) /* level [1..4] */
-#define SSCR1_RFT (0x00000c00) /* Receive FIFO Threshold (mask) */
-#define SSCR1_RxTresh(x) (((x) - 1) << 10) /* level [1..4] */
-#endif
-
-/* extra bits in PXA255, PXA26x and PXA27x SSP ports */
-#define SSCR0_TISSP (1 << 4) /* TI Sync Serial Protocol */
-#define SSCR0_PSP (3 << 4) /* PSP - Programmable Serial Protocol */
-#define SSCR1_TTELP (1 << 31) /* TXD Tristate Enable Last Phase */
-#define SSCR1_TTE (1 << 30) /* TXD Tristate Enable */
-#define SSCR1_EBCEI (1 << 29) /* Enable Bit Count Error interrupt */
-#define SSCR1_SCFR (1 << 28) /* Slave Clock free Running */
-#define SSCR1_ECRA (1 << 27) /* Enable Clock Request A */
-#define SSCR1_ECRB (1 << 26) /* Enable Clock request B */
-#define SSCR1_SCLKDIR (1 << 25) /* Serial Bit Rate Clock Direction */
-#define SSCR1_SFRMDIR (1 << 24) /* Frame Direction */
-#define SSCR1_RWOT (1 << 23) /* Receive Without Transmit */
-#define SSCR1_TRAIL (1 << 22) /* Trailing Byte */
-#define SSCR1_TSRE (1 << 21) /* Transmit Service Request Enable */
-#define SSCR1_RSRE (1 << 20) /* Receive Service Request Enable */
-#define SSCR1_TINTE (1 << 19) /* Receiver Time-out Interrupt enable */
-#define SSCR1_PINTE (1 << 18) /* Peripheral Trailing Byte Interrupt Enable */
-#define SSCR1_IFS (1 << 16) /* Invert Frame Signal */
-#define SSCR1_STRF (1 << 15) /* Select FIFO or EFWR */
-#define SSCR1_EFWR (1 << 14) /* Enable FIFO Write/Read */
-
-#define SSSR_BCE (1 << 23) /* Bit Count Error */
-#define SSSR_CSS (1 << 22) /* Clock Synchronisation Status */
-#define SSSR_TUR (1 << 21) /* Transmit FIFO Under Run */
-#define SSSR_EOC (1 << 20) /* End Of Chain */
-#define SSSR_TINT (1 << 19) /* Receiver Time-out Interrupt */
-#define SSSR_PINT (1 << 18) /* Peripheral Trailing Byte Interrupt */
-
-
-#define SSPSP_SCMODE(x) ((x) << 0) /* Serial Bit Rate Clock Mode */
-#define SSPSP_SFRMP (1 << 2) /* Serial Frame Polarity */
-#define SSPSP_ETDS (1 << 3) /* End of Transfer data State */
-#define SSPSP_STRTDLY(x) ((x) << 4) /* Start Delay */
-#define SSPSP_DMYSTRT(x) ((x) << 7) /* Dummy Start */
-#define SSPSP_SFRMDLY(x) ((x) << 9) /* Serial Frame Delay */
-#define SSPSP_SFRMWDTH(x) ((x) << 16) /* Serial Frame Width */
-#define SSPSP_DMYSTOP(x) ((x) << 23) /* Dummy Stop */
-#define SSPSP_FSRT (1 << 25) /* Frame Sync Relative Timing */
-
-/* PXA3xx */
-#define SSPSP_EDMYSTRT(x) ((x) << 26) /* Extended Dummy Start */
-#define SSPSP_EDMYSTOP(x) ((x) << 28) /* Extended Dummy Stop */
-#define SSPSP_TIMING_MASK (0x7f8001f0)
-
-#define SSACD_SCDB (1 << 3) /* SSPSYSCLK Divider Bypass */
-#define SSACD_ACPS(x) ((x) << 4) /* Audio clock PLL select */
-#define SSACD_ACDS(x) ((x) << 0) /* Audio clock divider select */
-#define SSACD_SCDX8 (1 << 7) /* SYSCLK division ratio select */
-
-enum pxa_ssp_type {
- SSP_UNDEFINED = 0,
- PXA25x_SSP, /* pxa 210, 250, 255, 26x */
- PXA25x_NSSP, /* pxa 255, 26x (including ASSP) */
- PXA27x_SSP,
- PXA168_SSP,
- CE4100_SSP,
-};
-
-struct ssp_device {
- struct platform_device *pdev;
- struct list_head node;
-
- struct clk *clk;
- void __iomem *mmio_base;
- unsigned long phys_base;
-
- const char *label;
- int port_id;
- int type;
- int use_count;
- int irq;
- int drcmr_rx;
- int drcmr_tx;
-};
-
-/**
- * pxa_ssp_write_reg - Write to a SSP register
- *
- * @dev: SSP device to access
- * @reg: Register to write to
- * @val: Value to be written.
- */
-static inline void pxa_ssp_write_reg(struct ssp_device *dev, u32 reg, u32 val)
-{
- __raw_writel(val, dev->mmio_base + reg);
-}
-
-/**
- * pxa_ssp_read_reg - Read from a SSP register
- *
- * @dev: SSP device to access
- * @reg: Register to read from
- */
-static inline u32 pxa_ssp_read_reg(struct ssp_device *dev, u32 reg)
-{
- return __raw_readl(dev->mmio_base + reg);
-}
-
-struct ssp_device *pxa_ssp_request(int port, const char *label);
-void pxa_ssp_free(struct ssp_device *);
-#endif
diff --git a/ANDROID_3.4.5/include/linux/qnx4_fs.h b/ANDROID_3.4.5/include/linux/qnx4_fs.h
deleted file mode 100644
index 8b9aee1a..00000000
--- a/ANDROID_3.4.5/include/linux/qnx4_fs.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Name : qnx4_fs.h
- * Author : Richard Frowijn
- * Function : qnx4 global filesystem definitions
- * History : 23-03-1998 created
- */
-#ifndef _LINUX_QNX4_FS_H
-#define _LINUX_QNX4_FS_H
-
-#include <linux/types.h>
-#include <linux/qnxtypes.h>
-#include <linux/magic.h>
-
-#define QNX4_ROOT_INO 1
-
-#define QNX4_MAX_XTNTS_PER_XBLK 60
-/* for di_status */
-#define QNX4_FILE_USED 0x01
-#define QNX4_FILE_MODIFIED 0x02
-#define QNX4_FILE_BUSY 0x04
-#define QNX4_FILE_LINK 0x08
-#define QNX4_FILE_INODE 0x10
-#define QNX4_FILE_FSYSCLEAN 0x20
-
-#define QNX4_I_MAP_SLOTS 8
-#define QNX4_Z_MAP_SLOTS 64
-#define QNX4_VALID_FS 0x0001 /* Clean fs. */
-#define QNX4_ERROR_FS 0x0002 /* fs has errors. */
-#define QNX4_BLOCK_SIZE 0x200 /* blocksize of 512 bytes */
-#define QNX4_BLOCK_SIZE_BITS 9 /* blocksize shift */
-#define QNX4_DIR_ENTRY_SIZE 0x040 /* dir entry size of 64 bytes */
-#define QNX4_DIR_ENTRY_SIZE_BITS 6 /* dir entry size shift */
-#define QNX4_XBLK_ENTRY_SIZE 0x200 /* xblk entry size */
-#define QNX4_INODES_PER_BLOCK 0x08 /* 512 / 64 */
-
-/* for filenames */
-#define QNX4_SHORT_NAME_MAX 16
-#define QNX4_NAME_MAX 48
-
-/*
- * This is the original qnx4 inode layout on disk.
- */
-struct qnx4_inode_entry {
- char di_fname[QNX4_SHORT_NAME_MAX];
- qnx4_off_t di_size;
- qnx4_xtnt_t di_first_xtnt;
- __le32 di_xblk;
- __le32 di_ftime;
- __le32 di_mtime;
- __le32 di_atime;
- __le32 di_ctime;
- qnx4_nxtnt_t di_num_xtnts;
- qnx4_mode_t di_mode;
- qnx4_muid_t di_uid;
- qnx4_mgid_t di_gid;
- qnx4_nlink_t di_nlink;
- __u8 di_zero[4];
- qnx4_ftype_t di_type;
- __u8 di_status;
-};
-
-struct qnx4_link_info {
- char dl_fname[QNX4_NAME_MAX];
- __le32 dl_inode_blk;
- __u8 dl_inode_ndx;
- __u8 dl_spare[10];
- __u8 dl_status;
-};
-
-struct qnx4_xblk {
- __le32 xblk_next_xblk;
- __le32 xblk_prev_xblk;
- __u8 xblk_num_xtnts;
- __u8 xblk_spare[3];
- __le32 xblk_num_blocks;
- qnx4_xtnt_t xblk_xtnts[QNX4_MAX_XTNTS_PER_XBLK];
- char xblk_signature[8];
- qnx4_xtnt_t xblk_first_xtnt;
-};
-
-struct qnx4_super_block {
- struct qnx4_inode_entry RootDir;
- struct qnx4_inode_entry Inode;
- struct qnx4_inode_entry Boot;
- struct qnx4_inode_entry AltBoot;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/qnx6_fs.h b/ANDROID_3.4.5/include/linux/qnx6_fs.h
deleted file mode 100644
index 26049eab..00000000
--- a/ANDROID_3.4.5/include/linux/qnx6_fs.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Name : qnx6_fs.h
- * Author : Kai Bankett
- * Function : qnx6 global filesystem definitions
- * History : 17-01-2012 created
- */
-#ifndef _LINUX_QNX6_FS_H
-#define _LINUX_QNX6_FS_H
-
-#include <linux/types.h>
-#include <linux/magic.h>
-
-#define QNX6_ROOT_INO 1
-
-/* for di_status */
-#define QNX6_FILE_DIRECTORY 0x01
-#define QNX6_FILE_DELETED 0x02
-#define QNX6_FILE_NORMAL 0x03
-
-#define QNX6_SUPERBLOCK_SIZE 0x200 /* superblock always is 512 bytes */
-#define QNX6_SUPERBLOCK_AREA 0x1000 /* area reserved for superblock */
-#define QNX6_BOOTBLOCK_SIZE 0x2000 /* heading bootblock area */
-#define QNX6_DIR_ENTRY_SIZE 0x20 /* dir entry size of 32 bytes */
-#define QNX6_INODE_SIZE 0x80 /* each inode is 128 bytes */
-#define QNX6_INODE_SIZE_BITS 7 /* inode entry size shift */
-
-#define QNX6_NO_DIRECT_POINTERS 16 /* 16 blockptrs in sbl/inode */
-#define QNX6_PTR_MAX_LEVELS 5 /* maximum indirect levels */
-
-/* for filenames */
-#define QNX6_SHORT_NAME_MAX 27
-#define QNX6_LONG_NAME_MAX 510
-
-/* list of mount options */
-#define QNX6_MOUNT_MMI_FS 0x010000 /* mount as Audi MMI 3G fs */
-
-/*
- * This is the original qnx6 inode layout on disk.
- * Each inode is 128 byte long.
- */
-struct qnx6_inode_entry {
- __fs64 di_size;
- __fs32 di_uid;
- __fs32 di_gid;
- __fs32 di_ftime;
- __fs32 di_mtime;
- __fs32 di_atime;
- __fs32 di_ctime;
- __fs16 di_mode;
- __fs16 di_ext_mode;
- __fs32 di_block_ptr[QNX6_NO_DIRECT_POINTERS];
- __u8 di_filelevels;
- __u8 di_status;
- __u8 di_unknown2[2];
- __fs32 di_zero2[6];
-};
-
-/*
- * Each directory entry is maximum 32 bytes long.
- * If more characters or special characters required it is stored
- * in the longfilenames structure.
- */
-struct qnx6_dir_entry {
- __fs32 de_inode;
- __u8 de_size;
- char de_fname[QNX6_SHORT_NAME_MAX];
-};
-
-/*
- * Longfilename direntries have a different structure
- */
-struct qnx6_long_dir_entry {
- __fs32 de_inode;
- __u8 de_size;
- __u8 de_unknown[3];
- __fs32 de_long_inode;
- __fs32 de_checksum;
-};
-
-struct qnx6_long_filename {
- __fs16 lf_size;
- __u8 lf_fname[QNX6_LONG_NAME_MAX];
-};
-
-struct qnx6_root_node {
- __fs64 size;
- __fs32 ptr[QNX6_NO_DIRECT_POINTERS];
- __u8 levels;
- __u8 mode;
- __u8 spare[6];
-};
-
-struct qnx6_super_block {
- __fs32 sb_magic;
- __fs32 sb_checksum;
- __fs64 sb_serial;
- __fs32 sb_ctime; /* time the fs was created */
- __fs32 sb_atime; /* last access time */
- __fs32 sb_flags;
- __fs16 sb_version1; /* filesystem version information */
- __fs16 sb_version2; /* filesystem version information */
- __u8 sb_volumeid[16];
- __fs32 sb_blocksize;
- __fs32 sb_num_inodes;
- __fs32 sb_free_inodes;
- __fs32 sb_num_blocks;
- __fs32 sb_free_blocks;
- __fs32 sb_allocgroup;
- struct qnx6_root_node Inode;
- struct qnx6_root_node Bitmap;
- struct qnx6_root_node Longfile;
- struct qnx6_root_node Unknown;
-};
-
-/* Audi MMI 3G superblock layout is different to plain qnx6 */
-struct qnx6_mmi_super_block {
- __fs32 sb_magic;
- __fs32 sb_checksum;
- __fs64 sb_serial;
- __u8 sb_spare0[12];
- __u8 sb_id[12];
- __fs32 sb_blocksize;
- __fs32 sb_num_inodes;
- __fs32 sb_free_inodes;
- __fs32 sb_num_blocks;
- __fs32 sb_free_blocks;
- __u8 sb_spare1[4];
- struct qnx6_root_node Inode;
- struct qnx6_root_node Bitmap;
- struct qnx6_root_node Longfile;
- struct qnx6_root_node Unknown;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/qnxtypes.h b/ANDROID_3.4.5/include/linux/qnxtypes.h
deleted file mode 100644
index bebbe5cc..00000000
--- a/ANDROID_3.4.5/include/linux/qnxtypes.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Name : qnxtypes.h
- * Author : Richard Frowijn
- * Function : standard qnx types
- * History : 22-03-1998 created
- *
- */
-
-#ifndef _QNX4TYPES_H
-#define _QNX4TYPES_H
-
-#include <linux/types.h>
-
-typedef __le16 qnx4_nxtnt_t;
-typedef __u8 qnx4_ftype_t;
-
-typedef struct {
- __le32 xtnt_blk;
- __le32 xtnt_size;
-} qnx4_xtnt_t;
-
-typedef __le16 qnx4_mode_t;
-typedef __le16 qnx4_muid_t;
-typedef __le16 qnx4_mgid_t;
-typedef __le32 qnx4_off_t;
-typedef __le16 qnx4_nlink_t;
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/quicklist.h b/ANDROID_3.4.5/include/linux/quicklist.h
deleted file mode 100644
index bd466439..00000000
--- a/ANDROID_3.4.5/include/linux/quicklist.h
+++ /dev/null
@@ -1,93 +0,0 @@
-#ifndef LINUX_QUICKLIST_H
-#define LINUX_QUICKLIST_H
-/*
- * Fast allocations and disposal of pages. Pages must be in the condition
- * as needed after allocation when they are freed. Per cpu lists of pages
- * are kept that only contain node local pages.
- *
- * (C) 2007, SGI. Christoph Lameter <clameter@sgi.com>
- */
-#include <linux/kernel.h>
-#include <linux/gfp.h>
-#include <linux/percpu.h>
-
-#ifdef CONFIG_QUICKLIST
-
-struct quicklist {
- void *page;
- int nr_pages;
-};
-
-DECLARE_PER_CPU(struct quicklist, quicklist)[CONFIG_NR_QUICK];
-
-/*
- * The two key functions quicklist_alloc and quicklist_free are inline so
- * that they may be custom compiled for the platform.
- * Specifying a NULL ctor can remove constructor support. Specifying
- * a constant quicklist allows the determination of the exact address
- * in the per cpu area.
- *
- * The fast patch in quicklist_alloc touched only a per cpu cacheline and
- * the first cacheline of the page itself. There is minmal overhead involved.
- */
-static inline void *quicklist_alloc(int nr, gfp_t flags, void (*ctor)(void *))
-{
- struct quicklist *q;
- void **p = NULL;
-
- q =&get_cpu_var(quicklist)[nr];
- p = q->page;
- if (likely(p)) {
- q->page = p[0];
- p[0] = NULL;
- q->nr_pages--;
- }
- put_cpu_var(quicklist);
- if (likely(p))
- return p;
-
- p = (void *)__get_free_page(flags | __GFP_ZERO);
- if (ctor && p)
- ctor(p);
- return p;
-}
-
-static inline void __quicklist_free(int nr, void (*dtor)(void *), void *p,
- struct page *page)
-{
- struct quicklist *q;
-
- q = &get_cpu_var(quicklist)[nr];
- *(void **)p = q->page;
- q->page = p;
- q->nr_pages++;
- put_cpu_var(quicklist);
-}
-
-static inline void quicklist_free(int nr, void (*dtor)(void *), void *pp)
-{
- __quicklist_free(nr, dtor, pp, virt_to_page(pp));
-}
-
-static inline void quicklist_free_page(int nr, void (*dtor)(void *),
- struct page *page)
-{
- __quicklist_free(nr, dtor, page_address(page), page);
-}
-
-void quicklist_trim(int nr, void (*dtor)(void *),
- unsigned long min_pages, unsigned long max_free);
-
-unsigned long quicklist_total_size(void);
-
-#else
-
-static inline unsigned long quicklist_total_size(void)
-{
- return 0;
-}
-
-#endif
-
-#endif /* LINUX_QUICKLIST_H */
-
diff --git a/ANDROID_3.4.5/include/linux/quota.h b/ANDROID_3.4.5/include/linux/quota.h
deleted file mode 100644
index c09fa042..00000000
--- a/ANDROID_3.4.5/include/linux/quota.h
+++ /dev/null
@@ -1,423 +0,0 @@
-/*
- * Copyright (c) 1982, 1986 Regents of the University of California.
- * All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * Robert Elz at The University of Melbourne.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef _LINUX_QUOTA_
-#define _LINUX_QUOTA_
-
-#include <linux/errno.h>
-#include <linux/types.h>
-
-#define __DQUOT_VERSION__ "dquot_6.5.2"
-
-#define MAXQUOTAS 2
-#define USRQUOTA 0 /* element used for user quotas */
-#define GRPQUOTA 1 /* element used for group quotas */
-
-/*
- * Definitions for the default names of the quotas files.
- */
-#define INITQFNAMES { \
- "user", /* USRQUOTA */ \
- "group", /* GRPQUOTA */ \
- "undefined", \
-};
-
-/*
- * Command definitions for the 'quotactl' system call.
- * The commands are broken into a main command defined below
- * and a subcommand that is used to convey the type of
- * quota that is being manipulated (see above).
- */
-#define SUBCMDMASK 0x00ff
-#define SUBCMDSHIFT 8
-#define QCMD(cmd, type) (((cmd) << SUBCMDSHIFT) | ((type) & SUBCMDMASK))
-
-#define Q_SYNC 0x800001 /* sync disk copy of a filesystems quotas */
-#define Q_QUOTAON 0x800002 /* turn quotas on */
-#define Q_QUOTAOFF 0x800003 /* turn quotas off */
-#define Q_GETFMT 0x800004 /* get quota format used on given filesystem */
-#define Q_GETINFO 0x800005 /* get information about quota files */
-#define Q_SETINFO 0x800006 /* set information about quota files */
-#define Q_GETQUOTA 0x800007 /* get user quota structure */
-#define Q_SETQUOTA 0x800008 /* set user quota structure */
-
-/* Quota format type IDs */
-#define QFMT_VFS_OLD 1
-#define QFMT_VFS_V0 2
-#define QFMT_OCFS2 3
-#define QFMT_VFS_V1 4
-
-/* Size of block in which space limits are passed through the quota
- * interface */
-#define QIF_DQBLKSIZE_BITS 10
-#define QIF_DQBLKSIZE (1 << QIF_DQBLKSIZE_BITS)
-
-/*
- * Quota structure used for communication with userspace via quotactl
- * Following flags are used to specify which fields are valid
- */
-enum {
- QIF_BLIMITS_B = 0,
- QIF_SPACE_B,
- QIF_ILIMITS_B,
- QIF_INODES_B,
- QIF_BTIME_B,
- QIF_ITIME_B,
-};
-
-#define QIF_BLIMITS (1 << QIF_BLIMITS_B)
-#define QIF_SPACE (1 << QIF_SPACE_B)
-#define QIF_ILIMITS (1 << QIF_ILIMITS_B)
-#define QIF_INODES (1 << QIF_INODES_B)
-#define QIF_BTIME (1 << QIF_BTIME_B)
-#define QIF_ITIME (1 << QIF_ITIME_B)
-#define QIF_LIMITS (QIF_BLIMITS | QIF_ILIMITS)
-#define QIF_USAGE (QIF_SPACE | QIF_INODES)
-#define QIF_TIMES (QIF_BTIME | QIF_ITIME)
-#define QIF_ALL (QIF_LIMITS | QIF_USAGE | QIF_TIMES)
-
-struct if_dqblk {
- __u64 dqb_bhardlimit;
- __u64 dqb_bsoftlimit;
- __u64 dqb_curspace;
- __u64 dqb_ihardlimit;
- __u64 dqb_isoftlimit;
- __u64 dqb_curinodes;
- __u64 dqb_btime;
- __u64 dqb_itime;
- __u32 dqb_valid;
-};
-
-/*
- * Structure used for setting quota information about file via quotactl
- * Following flags are used to specify which fields are valid
- */
-#define IIF_BGRACE 1
-#define IIF_IGRACE 2
-#define IIF_FLAGS 4
-#define IIF_ALL (IIF_BGRACE | IIF_IGRACE | IIF_FLAGS)
-
-struct if_dqinfo {
- __u64 dqi_bgrace;
- __u64 dqi_igrace;
- __u32 dqi_flags;
- __u32 dqi_valid;
-};
-
-/*
- * Definitions for quota netlink interface
- */
-#define QUOTA_NL_NOWARN 0
-#define QUOTA_NL_IHARDWARN 1 /* Inode hardlimit reached */
-#define QUOTA_NL_ISOFTLONGWARN 2 /* Inode grace time expired */
-#define QUOTA_NL_ISOFTWARN 3 /* Inode softlimit reached */
-#define QUOTA_NL_BHARDWARN 4 /* Block hardlimit reached */
-#define QUOTA_NL_BSOFTLONGWARN 5 /* Block grace time expired */
-#define QUOTA_NL_BSOFTWARN 6 /* Block softlimit reached */
-#define QUOTA_NL_IHARDBELOW 7 /* Usage got below inode hardlimit */
-#define QUOTA_NL_ISOFTBELOW 8 /* Usage got below inode softlimit */
-#define QUOTA_NL_BHARDBELOW 9 /* Usage got below block hardlimit */
-#define QUOTA_NL_BSOFTBELOW 10 /* Usage got below block softlimit */
-
-enum {
- QUOTA_NL_C_UNSPEC,
- QUOTA_NL_C_WARNING,
- __QUOTA_NL_C_MAX,
-};
-#define QUOTA_NL_C_MAX (__QUOTA_NL_C_MAX - 1)
-
-enum {
- QUOTA_NL_A_UNSPEC,
- QUOTA_NL_A_QTYPE,
- QUOTA_NL_A_EXCESS_ID,
- QUOTA_NL_A_WARNING,
- QUOTA_NL_A_DEV_MAJOR,
- QUOTA_NL_A_DEV_MINOR,
- QUOTA_NL_A_CAUSED_ID,
- __QUOTA_NL_A_MAX,
-};
-#define QUOTA_NL_A_MAX (__QUOTA_NL_A_MAX - 1)
-
-
-#ifdef __KERNEL__
-#include <linux/list.h>
-#include <linux/mutex.h>
-#include <linux/rwsem.h>
-#include <linux/spinlock.h>
-#include <linux/wait.h>
-#include <linux/percpu_counter.h>
-
-#include <linux/dqblk_xfs.h>
-#include <linux/dqblk_v1.h>
-#include <linux/dqblk_v2.h>
-
-#include <linux/atomic.h>
-
-typedef __kernel_uid32_t qid_t; /* Type in which we store ids in memory */
-typedef long long qsize_t; /* Type in which we store sizes */
-
-extern spinlock_t dq_data_lock;
-
-/* Maximal numbers of writes for quota operation (insert/delete/update)
- * (over VFS all formats) */
-#define DQUOT_INIT_ALLOC max(V1_INIT_ALLOC, V2_INIT_ALLOC)
-#define DQUOT_INIT_REWRITE max(V1_INIT_REWRITE, V2_INIT_REWRITE)
-#define DQUOT_DEL_ALLOC max(V1_DEL_ALLOC, V2_DEL_ALLOC)
-#define DQUOT_DEL_REWRITE max(V1_DEL_REWRITE, V2_DEL_REWRITE)
-
-/*
- * Data for one user/group kept in memory
- */
-struct mem_dqblk {
- qsize_t dqb_bhardlimit; /* absolute limit on disk blks alloc */
- qsize_t dqb_bsoftlimit; /* preferred limit on disk blks */
- qsize_t dqb_curspace; /* current used space */
- qsize_t dqb_rsvspace; /* current reserved space for delalloc*/
- qsize_t dqb_ihardlimit; /* absolute limit on allocated inodes */
- qsize_t dqb_isoftlimit; /* preferred inode limit */
- qsize_t dqb_curinodes; /* current # allocated inodes */
- time_t dqb_btime; /* time limit for excessive disk use */
- time_t dqb_itime; /* time limit for excessive inode use */
-};
-
-/*
- * Data for one quotafile kept in memory
- */
-struct quota_format_type;
-
-struct mem_dqinfo {
- struct quota_format_type *dqi_format;
- int dqi_fmt_id; /* Id of the dqi_format - used when turning
- * quotas on after remount RW */
- struct list_head dqi_dirty_list; /* List of dirty dquots */
- unsigned long dqi_flags;
- unsigned int dqi_bgrace;
- unsigned int dqi_igrace;
- qsize_t dqi_maxblimit;
- qsize_t dqi_maxilimit;
- void *dqi_priv;
-};
-
-struct super_block;
-
-#define DQF_MASK 0xffff /* Mask for format specific flags */
-#define DQF_GETINFO_MASK 0x1ffff /* Mask for flags passed to userspace */
-#define DQF_SETINFO_MASK 0xffff /* Mask for flags modifiable from userspace */
-#define DQF_SYS_FILE_B 16
-#define DQF_SYS_FILE (1 << DQF_SYS_FILE_B) /* Quota file stored as system file */
-#define DQF_INFO_DIRTY_B 31
-#define DQF_INFO_DIRTY (1 << DQF_INFO_DIRTY_B) /* Is info dirty? */
-
-extern void mark_info_dirty(struct super_block *sb, int type);
-static inline int info_dirty(struct mem_dqinfo *info)
-{
- return test_bit(DQF_INFO_DIRTY_B, &info->dqi_flags);
-}
-
-enum {
- DQST_LOOKUPS,
- DQST_DROPS,
- DQST_READS,
- DQST_WRITES,
- DQST_CACHE_HITS,
- DQST_ALLOC_DQUOTS,
- DQST_FREE_DQUOTS,
- DQST_SYNCS,
- _DQST_DQSTAT_LAST
-};
-
-struct dqstats {
- int stat[_DQST_DQSTAT_LAST];
- struct percpu_counter counter[_DQST_DQSTAT_LAST];
-};
-
-extern struct dqstats *dqstats_pcpu;
-extern struct dqstats dqstats;
-
-static inline void dqstats_inc(unsigned int type)
-{
- percpu_counter_inc(&dqstats.counter[type]);
-}
-
-static inline void dqstats_dec(unsigned int type)
-{
- percpu_counter_dec(&dqstats.counter[type]);
-}
-
-#define DQ_MOD_B 0 /* dquot modified since read */
-#define DQ_BLKS_B 1 /* uid/gid has been warned about blk limit */
-#define DQ_INODES_B 2 /* uid/gid has been warned about inode limit */
-#define DQ_FAKE_B 3 /* no limits only usage */
-#define DQ_READ_B 4 /* dquot was read into memory */
-#define DQ_ACTIVE_B 5 /* dquot is active (dquot_release not called) */
-#define DQ_LASTSET_B 6 /* Following 6 bits (see QIF_) are reserved\
- * for the mask of entries set via SETQUOTA\
- * quotactl. They are set under dq_data_lock\
- * and the quota format handling dquot can\
- * clear them when it sees fit. */
-
-struct dquot {
- struct hlist_node dq_hash; /* Hash list in memory */
- struct list_head dq_inuse; /* List of all quotas */
- struct list_head dq_free; /* Free list element */
- struct list_head dq_dirty; /* List of dirty dquots */
- struct mutex dq_lock; /* dquot IO lock */
- atomic_t dq_count; /* Use count */
- wait_queue_head_t dq_wait_unused; /* Wait queue for dquot to become unused */
- struct super_block *dq_sb; /* superblock this applies to */
- unsigned int dq_id; /* ID this applies to (uid, gid) */
- loff_t dq_off; /* Offset of dquot on disk */
- unsigned long dq_flags; /* See DQ_* */
- short dq_type; /* Type of quota */
- struct mem_dqblk dq_dqb; /* Diskquota usage */
-};
-
-/* Operations which must be implemented by each quota format */
-struct quota_format_ops {
- int (*check_quota_file)(struct super_block *sb, int type); /* Detect whether file is in our format */
- int (*read_file_info)(struct super_block *sb, int type); /* Read main info about file - called on quotaon() */
- int (*write_file_info)(struct super_block *sb, int type); /* Write main info about file */
- int (*free_file_info)(struct super_block *sb, int type); /* Called on quotaoff() */
- int (*read_dqblk)(struct dquot *dquot); /* Read structure for one user */
- int (*commit_dqblk)(struct dquot *dquot); /* Write structure for one user */
- int (*release_dqblk)(struct dquot *dquot); /* Called when last reference to dquot is being dropped */
-};
-
-/* Operations working with dquots */
-struct dquot_operations {
- int (*write_dquot) (struct dquot *); /* Ordinary dquot write */
- struct dquot *(*alloc_dquot)(struct super_block *, int); /* Allocate memory for new dquot */
- void (*destroy_dquot)(struct dquot *); /* Free memory for dquot */
- int (*acquire_dquot) (struct dquot *); /* Quota is going to be created on disk */
- int (*release_dquot) (struct dquot *); /* Quota is going to be deleted from disk */
- int (*mark_dirty) (struct dquot *); /* Dquot is marked dirty */
- int (*write_info) (struct super_block *, int); /* Write of quota "superblock" */
- /* get reserved quota for delayed alloc, value returned is managed by
- * quota code only */
- qsize_t *(*get_reserved_space) (struct inode *);
-};
-
-struct path;
-
-/* Operations handling requests from userspace */
-struct quotactl_ops {
- int (*quota_on)(struct super_block *, int, int, struct path *);
- int (*quota_on_meta)(struct super_block *, int, int);
- int (*quota_off)(struct super_block *, int);
- int (*quota_sync)(struct super_block *, int, int);
- int (*get_info)(struct super_block *, int, struct if_dqinfo *);
- int (*set_info)(struct super_block *, int, struct if_dqinfo *);
- int (*get_dqblk)(struct super_block *, int, qid_t, struct fs_disk_quota *);
- int (*set_dqblk)(struct super_block *, int, qid_t, struct fs_disk_quota *);
- int (*get_xstate)(struct super_block *, struct fs_quota_stat *);
- int (*set_xstate)(struct super_block *, unsigned int, int);
-};
-
-struct quota_format_type {
- int qf_fmt_id; /* Quota format id */
- const struct quota_format_ops *qf_ops; /* Operations of format */
- struct module *qf_owner; /* Module implementing quota format */
- struct quota_format_type *qf_next;
-};
-
-/* Quota state flags - they actually come in two flavors - for users and groups */
-enum {
- _DQUOT_USAGE_ENABLED = 0, /* Track disk usage for users */
- _DQUOT_LIMITS_ENABLED, /* Enforce quota limits for users */
- _DQUOT_SUSPENDED, /* User diskquotas are off, but
- * we have necessary info in
- * memory to turn them on */
- _DQUOT_STATE_FLAGS
-};
-#define DQUOT_USAGE_ENABLED (1 << _DQUOT_USAGE_ENABLED)
-#define DQUOT_LIMITS_ENABLED (1 << _DQUOT_LIMITS_ENABLED)
-#define DQUOT_SUSPENDED (1 << _DQUOT_SUSPENDED)
-#define DQUOT_STATE_FLAGS (DQUOT_USAGE_ENABLED | DQUOT_LIMITS_ENABLED | \
- DQUOT_SUSPENDED)
-/* Other quota flags */
-#define DQUOT_STATE_LAST (_DQUOT_STATE_FLAGS * MAXQUOTAS)
-#define DQUOT_QUOTA_SYS_FILE (1 << DQUOT_STATE_LAST)
- /* Quota file is a special
- * system file and user cannot
- * touch it. Filesystem is
- * responsible for setting
- * S_NOQUOTA, S_NOATIME flags
- */
-#define DQUOT_NEGATIVE_USAGE (1 << (DQUOT_STATE_LAST + 1))
- /* Allow negative quota usage */
-
-static inline unsigned int dquot_state_flag(unsigned int flags, int type)
-{
- return flags << _DQUOT_STATE_FLAGS * type;
-}
-
-static inline unsigned int dquot_generic_flag(unsigned int flags, int type)
-{
- return (flags >> _DQUOT_STATE_FLAGS * type) & DQUOT_STATE_FLAGS;
-}
-
-#ifdef CONFIG_QUOTA_NETLINK_INTERFACE
-extern void quota_send_warning(short type, unsigned int id, dev_t dev,
- const char warntype);
-#else
-static inline void quota_send_warning(short type, unsigned int id, dev_t dev,
- const char warntype)
-{
- return;
-}
-#endif /* CONFIG_QUOTA_NETLINK_INTERFACE */
-
-struct quota_info {
- unsigned int flags; /* Flags for diskquotas on this device */
- struct mutex dqio_mutex; /* lock device while I/O in progress */
- struct mutex dqonoff_mutex; /* Serialize quotaon & quotaoff */
- struct rw_semaphore dqptr_sem; /* serialize ops using quota_info struct, pointers from inode to dquots */
- struct inode *files[MAXQUOTAS]; /* inodes of quotafiles */
- struct mem_dqinfo info[MAXQUOTAS]; /* Information for each quota type */
- const struct quota_format_ops *ops[MAXQUOTAS]; /* Operations for each type */
-};
-
-int register_quota_format(struct quota_format_type *fmt);
-void unregister_quota_format(struct quota_format_type *fmt);
-
-struct quota_module_name {
- int qm_fmt_id;
- char *qm_mod_name;
-};
-
-#define INIT_QUOTA_MODULE_NAMES {\
- {QFMT_VFS_OLD, "quota_v1"},\
- {QFMT_VFS_V0, "quota_v2"},\
- {0, NULL}}
-
-#endif /* __KERNEL__ */
-#endif /* _QUOTA_ */
diff --git a/ANDROID_3.4.5/include/linux/quotaops.h b/ANDROID_3.4.5/include/linux/quotaops.h
deleted file mode 100644
index d93f95e6..00000000
--- a/ANDROID_3.4.5/include/linux/quotaops.h
+++ /dev/null
@@ -1,360 +0,0 @@
-/*
- * Definitions for diskquota-operations. When diskquota is configured these
- * macros expand to the right source-code.
- *
- * Author: Marco van Wieringen <mvw@planets.elm.net>
- */
-#ifndef _LINUX_QUOTAOPS_
-#define _LINUX_QUOTAOPS_
-
-#include <linux/fs.h>
-
-#define DQUOT_SPACE_WARN 0x1
-#define DQUOT_SPACE_RESERVE 0x2
-#define DQUOT_SPACE_NOFAIL 0x4
-
-static inline struct quota_info *sb_dqopt(struct super_block *sb)
-{
- return &sb->s_dquot;
-}
-
-/* i_mutex must being held */
-static inline bool is_quota_modification(struct inode *inode, struct iattr *ia)
-{
- return (ia->ia_valid & ATTR_SIZE && ia->ia_size != inode->i_size) ||
- (ia->ia_valid & ATTR_UID && ia->ia_uid != inode->i_uid) ||
- (ia->ia_valid & ATTR_GID && ia->ia_gid != inode->i_gid);
-}
-
-#if defined(CONFIG_QUOTA)
-
-#define quota_error(sb, fmt, args...) \
- __quota_error((sb), __func__, fmt , ## args)
-
-extern __printf(3, 4)
-void __quota_error(struct super_block *sb, const char *func,
- const char *fmt, ...);
-
-/*
- * declaration of quota_function calls in kernel.
- */
-void inode_add_rsv_space(struct inode *inode, qsize_t number);
-void inode_claim_rsv_space(struct inode *inode, qsize_t number);
-void inode_sub_rsv_space(struct inode *inode, qsize_t number);
-
-void dquot_initialize(struct inode *inode);
-void dquot_drop(struct inode *inode);
-struct dquot *dqget(struct super_block *sb, unsigned int id, int type);
-void dqput(struct dquot *dquot);
-int dquot_scan_active(struct super_block *sb,
- int (*fn)(struct dquot *dquot, unsigned long priv),
- unsigned long priv);
-struct dquot *dquot_alloc(struct super_block *sb, int type);
-void dquot_destroy(struct dquot *dquot);
-
-int __dquot_alloc_space(struct inode *inode, qsize_t number, int flags);
-void __dquot_free_space(struct inode *inode, qsize_t number, int flags);
-
-int dquot_alloc_inode(const struct inode *inode);
-
-int dquot_claim_space_nodirty(struct inode *inode, qsize_t number);
-void dquot_free_inode(const struct inode *inode);
-
-int dquot_disable(struct super_block *sb, int type, unsigned int flags);
-/* Suspend quotas on remount RO */
-static inline int dquot_suspend(struct super_block *sb, int type)
-{
- return dquot_disable(sb, type, DQUOT_SUSPENDED);
-}
-int dquot_resume(struct super_block *sb, int type);
-
-int dquot_commit(struct dquot *dquot);
-int dquot_acquire(struct dquot *dquot);
-int dquot_release(struct dquot *dquot);
-int dquot_commit_info(struct super_block *sb, int type);
-int dquot_mark_dquot_dirty(struct dquot *dquot);
-
-int dquot_file_open(struct inode *inode, struct file *file);
-
-int dquot_enable(struct inode *inode, int type, int format_id,
- unsigned int flags);
-int dquot_quota_on(struct super_block *sb, int type, int format_id,
- struct path *path);
-int dquot_quota_on_mount(struct super_block *sb, char *qf_name,
- int format_id, int type);
-int dquot_quota_off(struct super_block *sb, int type);
-int dquot_quota_sync(struct super_block *sb, int type, int wait);
-int dquot_get_dqinfo(struct super_block *sb, int type, struct if_dqinfo *ii);
-int dquot_set_dqinfo(struct super_block *sb, int type, struct if_dqinfo *ii);
-int dquot_get_dqblk(struct super_block *sb, int type, qid_t id,
- struct fs_disk_quota *di);
-int dquot_set_dqblk(struct super_block *sb, int type, qid_t id,
- struct fs_disk_quota *di);
-
-int __dquot_transfer(struct inode *inode, struct dquot **transfer_to);
-int dquot_transfer(struct inode *inode, struct iattr *iattr);
-
-static inline struct mem_dqinfo *sb_dqinfo(struct super_block *sb, int type)
-{
- return sb_dqopt(sb)->info + type;
-}
-
-/*
- * Functions for checking status of quota
- */
-
-static inline bool sb_has_quota_usage_enabled(struct super_block *sb, int type)
-{
- return sb_dqopt(sb)->flags &
- dquot_state_flag(DQUOT_USAGE_ENABLED, type);
-}
-
-static inline bool sb_has_quota_limits_enabled(struct super_block *sb, int type)
-{
- return sb_dqopt(sb)->flags &
- dquot_state_flag(DQUOT_LIMITS_ENABLED, type);
-}
-
-static inline bool sb_has_quota_suspended(struct super_block *sb, int type)
-{
- return sb_dqopt(sb)->flags &
- dquot_state_flag(DQUOT_SUSPENDED, type);
-}
-
-static inline unsigned sb_any_quota_suspended(struct super_block *sb)
-{
- unsigned type, tmsk = 0;
- for (type = 0; type < MAXQUOTAS; type++)
- tmsk |= sb_has_quota_suspended(sb, type) << type;
- return tmsk;
-}
-
-/* Does kernel know about any quota information for given sb + type? */
-static inline bool sb_has_quota_loaded(struct super_block *sb, int type)
-{
- /* Currently if anything is on, then quota usage is on as well */
- return sb_has_quota_usage_enabled(sb, type);
-}
-
-static inline unsigned sb_any_quota_loaded(struct super_block *sb)
-{
- unsigned type, tmsk = 0;
- for (type = 0; type < MAXQUOTAS; type++)
- tmsk |= sb_has_quota_loaded(sb, type) << type;
- return tmsk;
-}
-
-static inline bool sb_has_quota_active(struct super_block *sb, int type)
-{
- return sb_has_quota_loaded(sb, type) &&
- !sb_has_quota_suspended(sb, type);
-}
-
-/*
- * Operations supported for diskquotas.
- */
-extern const struct dquot_operations dquot_operations;
-extern const struct quotactl_ops dquot_quotactl_ops;
-
-#else
-
-static inline int sb_has_quota_usage_enabled(struct super_block *sb, int type)
-{
- return 0;
-}
-
-static inline int sb_has_quota_limits_enabled(struct super_block *sb, int type)
-{
- return 0;
-}
-
-static inline int sb_has_quota_suspended(struct super_block *sb, int type)
-{
- return 0;
-}
-
-static inline int sb_any_quota_suspended(struct super_block *sb)
-{
- return 0;
-}
-
-/* Does kernel know about any quota information for given sb + type? */
-static inline int sb_has_quota_loaded(struct super_block *sb, int type)
-{
- return 0;
-}
-
-static inline int sb_any_quota_loaded(struct super_block *sb)
-{
- return 0;
-}
-
-static inline int sb_has_quota_active(struct super_block *sb, int type)
-{
- return 0;
-}
-
-static inline void dquot_initialize(struct inode *inode)
-{
-}
-
-static inline void dquot_drop(struct inode *inode)
-{
-}
-
-static inline int dquot_alloc_inode(const struct inode *inode)
-{
- return 0;
-}
-
-static inline void dquot_free_inode(const struct inode *inode)
-{
-}
-
-static inline int dquot_transfer(struct inode *inode, struct iattr *iattr)
-{
- return 0;
-}
-
-static inline int __dquot_alloc_space(struct inode *inode, qsize_t number,
- int flags)
-{
- if (!(flags & DQUOT_SPACE_RESERVE))
- inode_add_bytes(inode, number);
- return 0;
-}
-
-static inline void __dquot_free_space(struct inode *inode, qsize_t number,
- int flags)
-{
- if (!(flags & DQUOT_SPACE_RESERVE))
- inode_sub_bytes(inode, number);
-}
-
-static inline int dquot_claim_space_nodirty(struct inode *inode, qsize_t number)
-{
- inode_add_bytes(inode, number);
- return 0;
-}
-
-static inline int dquot_disable(struct super_block *sb, int type,
- unsigned int flags)
-{
- return 0;
-}
-
-static inline int dquot_suspend(struct super_block *sb, int type)
-{
- return 0;
-}
-
-static inline int dquot_resume(struct super_block *sb, int type)
-{
- return 0;
-}
-
-#define dquot_file_open generic_file_open
-
-#endif /* CONFIG_QUOTA */
-
-static inline int dquot_alloc_space_nodirty(struct inode *inode, qsize_t nr)
-{
- return __dquot_alloc_space(inode, nr, DQUOT_SPACE_WARN);
-}
-
-static inline void dquot_alloc_space_nofail(struct inode *inode, qsize_t nr)
-{
- __dquot_alloc_space(inode, nr, DQUOT_SPACE_WARN|DQUOT_SPACE_NOFAIL);
- mark_inode_dirty_sync(inode);
-}
-
-static inline int dquot_alloc_space(struct inode *inode, qsize_t nr)
-{
- int ret;
-
- ret = dquot_alloc_space_nodirty(inode, nr);
- if (!ret) {
- /*
- * Mark inode fully dirty. Since we are allocating blocks, inode
- * would become fully dirty soon anyway and it reportedly
- * reduces lock contention.
- */
- mark_inode_dirty(inode);
- }
- return ret;
-}
-
-static inline int dquot_alloc_block_nodirty(struct inode *inode, qsize_t nr)
-{
- return dquot_alloc_space_nodirty(inode, nr << inode->i_blkbits);
-}
-
-static inline void dquot_alloc_block_nofail(struct inode *inode, qsize_t nr)
-{
- dquot_alloc_space_nofail(inode, nr << inode->i_blkbits);
-}
-
-static inline int dquot_alloc_block(struct inode *inode, qsize_t nr)
-{
- return dquot_alloc_space(inode, nr << inode->i_blkbits);
-}
-
-static inline int dquot_prealloc_block_nodirty(struct inode *inode, qsize_t nr)
-{
- return __dquot_alloc_space(inode, nr << inode->i_blkbits, 0);
-}
-
-static inline int dquot_prealloc_block(struct inode *inode, qsize_t nr)
-{
- int ret;
-
- ret = dquot_prealloc_block_nodirty(inode, nr);
- if (!ret)
- mark_inode_dirty_sync(inode);
- return ret;
-}
-
-static inline int dquot_reserve_block(struct inode *inode, qsize_t nr)
-{
- return __dquot_alloc_space(inode, nr << inode->i_blkbits,
- DQUOT_SPACE_WARN|DQUOT_SPACE_RESERVE);
-}
-
-static inline int dquot_claim_block(struct inode *inode, qsize_t nr)
-{
- int ret;
-
- ret = dquot_claim_space_nodirty(inode, nr << inode->i_blkbits);
- if (!ret)
- mark_inode_dirty_sync(inode);
- return ret;
-}
-
-static inline void dquot_free_space_nodirty(struct inode *inode, qsize_t nr)
-{
- __dquot_free_space(inode, nr, 0);
-}
-
-static inline void dquot_free_space(struct inode *inode, qsize_t nr)
-{
- dquot_free_space_nodirty(inode, nr);
- mark_inode_dirty_sync(inode);
-}
-
-static inline void dquot_free_block_nodirty(struct inode *inode, qsize_t nr)
-{
- dquot_free_space_nodirty(inode, nr << inode->i_blkbits);
-}
-
-static inline void dquot_free_block(struct inode *inode, qsize_t nr)
-{
- dquot_free_space(inode, nr << inode->i_blkbits);
-}
-
-static inline void dquot_release_reservation_block(struct inode *inode,
- qsize_t nr)
-{
- __dquot_free_space(inode, nr << inode->i_blkbits, DQUOT_SPACE_RESERVE);
-}
-
-#endif /* _LINUX_QUOTAOPS_ */
diff --git a/ANDROID_3.4.5/include/linux/radeonfb.h b/ANDROID_3.4.5/include/linux/radeonfb.h
deleted file mode 100644
index 8c4bbdec..00000000
--- a/ANDROID_3.4.5/include/linux/radeonfb.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef __LINUX_RADEONFB_H__
-#define __LINUX_RADEONFB_H__
-
-#include <asm/ioctl.h>
-#include <linux/types.h>
-
-#define ATY_RADEON_LCD_ON 0x00000001
-#define ATY_RADEON_CRT_ON 0x00000002
-
-
-#define FBIO_RADEON_GET_MIRROR _IOR('@', 3, size_t)
-#define FBIO_RADEON_SET_MIRROR _IOW('@', 4, size_t)
-
-#endif
-
diff --git a/ANDROID_3.4.5/include/linux/radix-tree.h b/ANDROID_3.4.5/include/linux/radix-tree.h
deleted file mode 100644
index ffc444c3..00000000
--- a/ANDROID_3.4.5/include/linux/radix-tree.h
+++ /dev/null
@@ -1,459 +0,0 @@
-/*
- * Copyright (C) 2001 Momchil Velikov
- * Portions Copyright (C) 2001 Christoph Hellwig
- * Copyright (C) 2006 Nick Piggin
- * Copyright (C) 2012 Konstantin Khlebnikov
- *
- * 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.
- *
- * 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.
- */
-#ifndef _LINUX_RADIX_TREE_H
-#define _LINUX_RADIX_TREE_H
-
-#include <linux/preempt.h>
-#include <linux/types.h>
-#include <linux/bug.h>
-#include <linux/kernel.h>
-#include <linux/rcupdate.h>
-
-/*
- * An indirect pointer (root->rnode pointing to a radix_tree_node, rather
- * than a data item) is signalled by the low bit set in the root->rnode
- * pointer.
- *
- * In this case root->height is > 0, but the indirect pointer tests are
- * needed for RCU lookups (because root->height is unreliable). The only
- * time callers need worry about this is when doing a lookup_slot under
- * RCU.
- *
- * Indirect pointer in fact is also used to tag the last pointer of a node
- * when it is shrunk, before we rcu free the node. See shrink code for
- * details.
- */
-#define RADIX_TREE_INDIRECT_PTR 1
-/*
- * A common use of the radix tree is to store pointers to struct pages;
- * but shmem/tmpfs needs also to store swap entries in the same tree:
- * those are marked as exceptional entries to distinguish them.
- * EXCEPTIONAL_ENTRY tests the bit, EXCEPTIONAL_SHIFT shifts content past it.
- */
-#define RADIX_TREE_EXCEPTIONAL_ENTRY 2
-#define RADIX_TREE_EXCEPTIONAL_SHIFT 2
-
-static inline int radix_tree_is_indirect_ptr(void *ptr)
-{
- return (int)((unsigned long)ptr & RADIX_TREE_INDIRECT_PTR);
-}
-
-/*** radix-tree API starts here ***/
-
-#define RADIX_TREE_MAX_TAGS 3
-
-/* root tags are stored in gfp_mask, shifted by __GFP_BITS_SHIFT */
-struct radix_tree_root {
- unsigned int height;
- gfp_t gfp_mask;
- struct radix_tree_node __rcu *rnode;
-};
-
-#define RADIX_TREE_INIT(mask) { \
- .height = 0, \
- .gfp_mask = (mask), \
- .rnode = NULL, \
-}
-
-#define RADIX_TREE(name, mask) \
- struct radix_tree_root name = RADIX_TREE_INIT(mask)
-
-#define INIT_RADIX_TREE(root, mask) \
-do { \
- (root)->height = 0; \
- (root)->gfp_mask = (mask); \
- (root)->rnode = NULL; \
-} while (0)
-
-/**
- * Radix-tree synchronization
- *
- * The radix-tree API requires that users provide all synchronisation (with
- * specific exceptions, noted below).
- *
- * Synchronization of access to the data items being stored in the tree, and
- * management of their lifetimes must be completely managed by API users.
- *
- * For API usage, in general,
- * - any function _modifying_ the tree or tags (inserting or deleting
- * items, setting or clearing tags) must exclude other modifications, and
- * exclude any functions reading the tree.
- * - any function _reading_ the tree or tags (looking up items or tags,
- * gang lookups) must exclude modifications to the tree, but may occur
- * concurrently with other readers.
- *
- * The notable exceptions to this rule are the following functions:
- * radix_tree_lookup
- * radix_tree_lookup_slot
- * radix_tree_tag_get
- * radix_tree_gang_lookup
- * radix_tree_gang_lookup_slot
- * radix_tree_gang_lookup_tag
- * radix_tree_gang_lookup_tag_slot
- * radix_tree_tagged
- *
- * The first 7 functions are able to be called locklessly, using RCU. The
- * caller must ensure calls to these functions are made within rcu_read_lock()
- * regions. Other readers (lock-free or otherwise) and modifications may be
- * running concurrently.
- *
- * It is still required that the caller manage the synchronization and lifetimes
- * of the items. So if RCU lock-free lookups are used, typically this would mean
- * that the items have their own locks, or are amenable to lock-free access; and
- * that the items are freed by RCU (or only freed after having been deleted from
- * the radix tree *and* a synchronize_rcu() grace period).
- *
- * (Note, rcu_assign_pointer and rcu_dereference are not needed to control
- * access to data items when inserting into or looking up from the radix tree)
- *
- * Note that the value returned by radix_tree_tag_get() may not be relied upon
- * if only the RCU read lock is held. Functions to set/clear tags and to
- * delete nodes running concurrently with it may affect its result such that
- * two consecutive reads in the same locked section may return different
- * values. If reliability is required, modification functions must also be
- * excluded from concurrency.
- *
- * radix_tree_tagged is able to be called without locking or RCU.
- */
-
-/**
- * radix_tree_deref_slot - dereference a slot
- * @pslot: pointer to slot, returned by radix_tree_lookup_slot
- * Returns: item that was stored in that slot with any direct pointer flag
- * removed.
- *
- * For use with radix_tree_lookup_slot(). Caller must hold tree at least read
- * locked across slot lookup and dereference. Not required if write lock is
- * held (ie. items cannot be concurrently inserted).
- *
- * radix_tree_deref_retry must be used to confirm validity of the pointer if
- * only the read lock is held.
- */
-static inline void *radix_tree_deref_slot(void **pslot)
-{
- return rcu_dereference(*pslot);
-}
-
-/**
- * radix_tree_deref_slot_protected - dereference a slot without RCU lock but with tree lock held
- * @pslot: pointer to slot, returned by radix_tree_lookup_slot
- * Returns: item that was stored in that slot with any direct pointer flag
- * removed.
- *
- * Similar to radix_tree_deref_slot but only used during migration when a pages
- * mapping is being moved. The caller does not hold the RCU read lock but it
- * must hold the tree lock to prevent parallel updates.
- */
-static inline void *radix_tree_deref_slot_protected(void **pslot,
- spinlock_t *treelock)
-{
- return rcu_dereference_protected(*pslot, lockdep_is_held(treelock));
-}
-
-/**
- * radix_tree_deref_retry - check radix_tree_deref_slot
- * @arg: pointer returned by radix_tree_deref_slot
- * Returns: 0 if retry is not required, otherwise retry is required
- *
- * radix_tree_deref_retry must be used with radix_tree_deref_slot.
- */
-static inline int radix_tree_deref_retry(void *arg)
-{
- return unlikely((unsigned long)arg & RADIX_TREE_INDIRECT_PTR);
-}
-
-/**
- * radix_tree_exceptional_entry - radix_tree_deref_slot gave exceptional entry?
- * @arg: value returned by radix_tree_deref_slot
- * Returns: 0 if well-aligned pointer, non-0 if exceptional entry.
- */
-static inline int radix_tree_exceptional_entry(void *arg)
-{
- /* Not unlikely because radix_tree_exception often tested first */
- return (unsigned long)arg & RADIX_TREE_EXCEPTIONAL_ENTRY;
-}
-
-/**
- * radix_tree_exception - radix_tree_deref_slot returned either exception?
- * @arg: value returned by radix_tree_deref_slot
- * Returns: 0 if well-aligned pointer, non-0 if either kind of exception.
- */
-static inline int radix_tree_exception(void *arg)
-{
- return unlikely((unsigned long)arg &
- (RADIX_TREE_INDIRECT_PTR | RADIX_TREE_EXCEPTIONAL_ENTRY));
-}
-
-/**
- * radix_tree_replace_slot - replace item in a slot
- * @pslot: pointer to slot, returned by radix_tree_lookup_slot
- * @item: new item to store in the slot.
- *
- * For use with radix_tree_lookup_slot(). Caller must hold tree write locked
- * across slot lookup and replacement.
- */
-static inline void radix_tree_replace_slot(void **pslot, void *item)
-{
- BUG_ON(radix_tree_is_indirect_ptr(item));
- rcu_assign_pointer(*pslot, item);
-}
-
-int radix_tree_insert(struct radix_tree_root *, unsigned long, void *);
-void *radix_tree_lookup(struct radix_tree_root *, unsigned long);
-void **radix_tree_lookup_slot(struct radix_tree_root *, unsigned long);
-void *radix_tree_delete(struct radix_tree_root *, unsigned long);
-unsigned int
-radix_tree_gang_lookup(struct radix_tree_root *root, void **results,
- unsigned long first_index, unsigned int max_items);
-unsigned int radix_tree_gang_lookup_slot(struct radix_tree_root *root,
- void ***results, unsigned long *indices,
- unsigned long first_index, unsigned int max_items);
-unsigned long radix_tree_next_hole(struct radix_tree_root *root,
- unsigned long index, unsigned long max_scan);
-unsigned long radix_tree_prev_hole(struct radix_tree_root *root,
- unsigned long index, unsigned long max_scan);
-int radix_tree_preload(gfp_t gfp_mask);
-void radix_tree_init(void);
-void *radix_tree_tag_set(struct radix_tree_root *root,
- unsigned long index, unsigned int tag);
-void *radix_tree_tag_clear(struct radix_tree_root *root,
- unsigned long index, unsigned int tag);
-int radix_tree_tag_get(struct radix_tree_root *root,
- unsigned long index, unsigned int tag);
-unsigned int
-radix_tree_gang_lookup_tag(struct radix_tree_root *root, void **results,
- unsigned long first_index, unsigned int max_items,
- unsigned int tag);
-unsigned int
-radix_tree_gang_lookup_tag_slot(struct radix_tree_root *root, void ***results,
- unsigned long first_index, unsigned int max_items,
- unsigned int tag);
-unsigned long radix_tree_range_tag_if_tagged(struct radix_tree_root *root,
- unsigned long *first_indexp, unsigned long last_index,
- unsigned long nr_to_tag,
- unsigned int fromtag, unsigned int totag);
-int radix_tree_tagged(struct radix_tree_root *root, unsigned int tag);
-unsigned long radix_tree_locate_item(struct radix_tree_root *root, void *item);
-
-static inline void radix_tree_preload_end(void)
-{
- preempt_enable();
-}
-
-/**
- * struct radix_tree_iter - radix tree iterator state
- *
- * @index: index of current slot
- * @next_index: next-to-last index for this chunk
- * @tags: bit-mask for tag-iterating
- *
- * This radix tree iterator works in terms of "chunks" of slots. A chunk is a
- * subinterval of slots contained within one radix tree leaf node. It is
- * described by a pointer to its first slot and a struct radix_tree_iter
- * which holds the chunk's position in the tree and its size. For tagged
- * iteration radix_tree_iter also holds the slots' bit-mask for one chosen
- * radix tree tag.
- */
-struct radix_tree_iter {
- unsigned long index;
- unsigned long next_index;
- unsigned long tags;
-};
-
-#define RADIX_TREE_ITER_TAG_MASK 0x00FF /* tag index in lower byte */
-#define RADIX_TREE_ITER_TAGGED 0x0100 /* lookup tagged slots */
-#define RADIX_TREE_ITER_CONTIG 0x0200 /* stop at first hole */
-
-/**
- * radix_tree_iter_init - initialize radix tree iterator
- *
- * @iter: pointer to iterator state
- * @start: iteration starting index
- * Returns: NULL
- */
-static __always_inline void **
-radix_tree_iter_init(struct radix_tree_iter *iter, unsigned long start)
-{
- /*
- * Leave iter->tags uninitialized. radix_tree_next_chunk() will fill it
- * in the case of a successful tagged chunk lookup. If the lookup was
- * unsuccessful or non-tagged then nobody cares about ->tags.
- *
- * Set index to zero to bypass next_index overflow protection.
- * See the comment in radix_tree_next_chunk() for details.
- */
- iter->index = 0;
- iter->next_index = start;
- return NULL;
-}
-
-/**
- * radix_tree_next_chunk - find next chunk of slots for iteration
- *
- * @root: radix tree root
- * @iter: iterator state
- * @flags: RADIX_TREE_ITER_* flags and tag index
- * Returns: pointer to chunk first slot, or NULL if there no more left
- *
- * This function looks up the next chunk in the radix tree starting from
- * @iter->next_index. It returns a pointer to the chunk's first slot.
- * Also it fills @iter with data about chunk: position in the tree (index),
- * its end (next_index), and constructs a bit mask for tagged iterating (tags).
- */
-void **radix_tree_next_chunk(struct radix_tree_root *root,
- struct radix_tree_iter *iter, unsigned flags);
-
-/**
- * radix_tree_chunk_size - get current chunk size
- *
- * @iter: pointer to radix tree iterator
- * Returns: current chunk size
- */
-static __always_inline unsigned
-radix_tree_chunk_size(struct radix_tree_iter *iter)
-{
- return iter->next_index - iter->index;
-}
-
-/**
- * radix_tree_next_slot - find next slot in chunk
- *
- * @slot: pointer to current slot
- * @iter: pointer to interator state
- * @flags: RADIX_TREE_ITER_*, should be constant
- * Returns: pointer to next slot, or NULL if there no more left
- *
- * This function updates @iter->index in the case of a successful lookup.
- * For tagged lookup it also eats @iter->tags.
- */
-static __always_inline void **
-radix_tree_next_slot(void **slot, struct radix_tree_iter *iter, unsigned flags)
-{
- if (flags & RADIX_TREE_ITER_TAGGED) {
- iter->tags >>= 1;
- if (likely(iter->tags & 1ul)) {
- iter->index++;
- return slot + 1;
- }
- if (!(flags & RADIX_TREE_ITER_CONTIG) && likely(iter->tags)) {
- unsigned offset = __ffs(iter->tags);
-
- iter->tags >>= offset;
- iter->index += offset + 1;
- return slot + offset + 1;
- }
- } else {
- unsigned size = radix_tree_chunk_size(iter) - 1;
-
- while (size--) {
- slot++;
- iter->index++;
- if (likely(*slot))
- return slot;
- if (flags & RADIX_TREE_ITER_CONTIG) {
- /* forbid switching to the next chunk */
- iter->next_index = 0;
- break;
- }
- }
- }
- return NULL;
-}
-
-/**
- * radix_tree_for_each_chunk - iterate over chunks
- *
- * @slot: the void** variable for pointer to chunk first slot
- * @root: the struct radix_tree_root pointer
- * @iter: the struct radix_tree_iter pointer
- * @start: iteration starting index
- * @flags: RADIX_TREE_ITER_* and tag index
- *
- * Locks can be released and reacquired between iterations.
- */
-#define radix_tree_for_each_chunk(slot, root, iter, start, flags) \
- for (slot = radix_tree_iter_init(iter, start) ; \
- (slot = radix_tree_next_chunk(root, iter, flags)) ;)
-
-/**
- * radix_tree_for_each_chunk_slot - iterate over slots in one chunk
- *
- * @slot: the void** variable, at the beginning points to chunk first slot
- * @iter: the struct radix_tree_iter pointer
- * @flags: RADIX_TREE_ITER_*, should be constant
- *
- * This macro is designed to be nested inside radix_tree_for_each_chunk().
- * @slot points to the radix tree slot, @iter->index contains its index.
- */
-#define radix_tree_for_each_chunk_slot(slot, iter, flags) \
- for (; slot ; slot = radix_tree_next_slot(slot, iter, flags))
-
-/**
- * radix_tree_for_each_slot - iterate over non-empty slots
- *
- * @slot: the void** variable for pointer to slot
- * @root: the struct radix_tree_root pointer
- * @iter: the struct radix_tree_iter pointer
- * @start: iteration starting index
- *
- * @slot points to radix tree slot, @iter->index contains its index.
- */
-#define radix_tree_for_each_slot(slot, root, iter, start) \
- for (slot = radix_tree_iter_init(iter, start) ; \
- slot || (slot = radix_tree_next_chunk(root, iter, 0)) ; \
- slot = radix_tree_next_slot(slot, iter, 0))
-
-/**
- * radix_tree_for_each_contig - iterate over contiguous slots
- *
- * @slot: the void** variable for pointer to slot
- * @root: the struct radix_tree_root pointer
- * @iter: the struct radix_tree_iter pointer
- * @start: iteration starting index
- *
- * @slot points to radix tree slot, @iter->index contains its index.
- */
-#define radix_tree_for_each_contig(slot, root, iter, start) \
- for (slot = radix_tree_iter_init(iter, start) ; \
- slot || (slot = radix_tree_next_chunk(root, iter, \
- RADIX_TREE_ITER_CONTIG)) ; \
- slot = radix_tree_next_slot(slot, iter, \
- RADIX_TREE_ITER_CONTIG))
-
-/**
- * radix_tree_for_each_tagged - iterate over tagged slots
- *
- * @slot: the void** variable for pointer to slot
- * @root: the struct radix_tree_root pointer
- * @iter: the struct radix_tree_iter pointer
- * @start: iteration starting index
- * @tag: tag index
- *
- * @slot points to radix tree slot, @iter->index contains its index.
- */
-#define radix_tree_for_each_tagged(slot, root, iter, start, tag) \
- for (slot = radix_tree_iter_init(iter, start) ; \
- slot || (slot = radix_tree_next_chunk(root, iter, \
- RADIX_TREE_ITER_TAGGED | tag)) ; \
- slot = radix_tree_next_slot(slot, iter, \
- RADIX_TREE_ITER_TAGGED))
-
-#endif /* _LINUX_RADIX_TREE_H */
diff --git a/ANDROID_3.4.5/include/linux/raid/Kbuild b/ANDROID_3.4.5/include/linux/raid/Kbuild
deleted file mode 100644
index 2415a64c..00000000
--- a/ANDROID_3.4.5/include/linux/raid/Kbuild
+++ /dev/null
@@ -1,2 +0,0 @@
-header-y += md_p.h
-header-y += md_u.h
diff --git a/ANDROID_3.4.5/include/linux/raid/md_p.h b/ANDROID_3.4.5/include/linux/raid/md_p.h
deleted file mode 100644
index 8c0a3adc..00000000
--- a/ANDROID_3.4.5/include/linux/raid/md_p.h
+++ /dev/null
@@ -1,290 +0,0 @@
-/*
- md_p.h : physical layout of Linux RAID devices
- Copyright (C) 1996-98 Ingo Molnar, Gadi Oxman
-
- 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.
-
- You should have received a copy of the GNU General Public License
- (for example /usr/src/linux/COPYING); if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
-
-#ifndef _MD_P_H
-#define _MD_P_H
-
-#include <linux/types.h>
-
-/*
- * RAID superblock.
- *
- * The RAID superblock maintains some statistics on each RAID configuration.
- * Each real device in the RAID set contains it near the end of the device.
- * Some of the ideas are copied from the ext2fs implementation.
- *
- * We currently use 4096 bytes as follows:
- *
- * word offset function
- *
- * 0 - 31 Constant generic RAID device information.
- * 32 - 63 Generic state information.
- * 64 - 127 Personality specific information.
- * 128 - 511 12 32-words descriptors of the disks in the raid set.
- * 512 - 911 Reserved.
- * 912 - 1023 Disk specific descriptor.
- */
-
-/*
- * If x is the real device size in bytes, we return an apparent size of:
- *
- * y = (x & ~(MD_RESERVED_BYTES - 1)) - MD_RESERVED_BYTES
- *
- * and place the 4kB superblock at offset y.
- */
-#define MD_RESERVED_BYTES (64 * 1024)
-#define MD_RESERVED_SECTORS (MD_RESERVED_BYTES / 512)
-
-#define MD_NEW_SIZE_SECTORS(x) ((x & ~(MD_RESERVED_SECTORS - 1)) - MD_RESERVED_SECTORS)
-
-#define MD_SB_BYTES 4096
-#define MD_SB_WORDS (MD_SB_BYTES / 4)
-#define MD_SB_SECTORS (MD_SB_BYTES / 512)
-
-/*
- * The following are counted in 32-bit words
- */
-#define MD_SB_GENERIC_OFFSET 0
-#define MD_SB_PERSONALITY_OFFSET 64
-#define MD_SB_DISKS_OFFSET 128
-#define MD_SB_DESCRIPTOR_OFFSET 992
-
-#define MD_SB_GENERIC_CONSTANT_WORDS 32
-#define MD_SB_GENERIC_STATE_WORDS 32
-#define MD_SB_GENERIC_WORDS (MD_SB_GENERIC_CONSTANT_WORDS + MD_SB_GENERIC_STATE_WORDS)
-#define MD_SB_PERSONALITY_WORDS 64
-#define MD_SB_DESCRIPTOR_WORDS 32
-#define MD_SB_DISKS 27
-#define MD_SB_DISKS_WORDS (MD_SB_DISKS*MD_SB_DESCRIPTOR_WORDS)
-#define MD_SB_RESERVED_WORDS (1024 - MD_SB_GENERIC_WORDS - MD_SB_PERSONALITY_WORDS - MD_SB_DISKS_WORDS - MD_SB_DESCRIPTOR_WORDS)
-#define MD_SB_EQUAL_WORDS (MD_SB_GENERIC_WORDS + MD_SB_PERSONALITY_WORDS + MD_SB_DISKS_WORDS)
-
-/*
- * Device "operational" state bits
- */
-#define MD_DISK_FAULTY 0 /* disk is faulty / operational */
-#define MD_DISK_ACTIVE 1 /* disk is running or spare disk */
-#define MD_DISK_SYNC 2 /* disk is in sync with the raid set */
-#define MD_DISK_REMOVED 3 /* disk is in sync with the raid set */
-
-#define MD_DISK_WRITEMOSTLY 9 /* disk is "write-mostly" is RAID1 config.
- * read requests will only be sent here in
- * dire need
- */
-
-typedef struct mdp_device_descriptor_s {
- __u32 number; /* 0 Device number in the entire set */
- __u32 major; /* 1 Device major number */
- __u32 minor; /* 2 Device minor number */
- __u32 raid_disk; /* 3 The role of the device in the raid set */
- __u32 state; /* 4 Operational state */
- __u32 reserved[MD_SB_DESCRIPTOR_WORDS - 5];
-} mdp_disk_t;
-
-#define MD_SB_MAGIC 0xa92b4efc
-
-/*
- * Superblock state bits
- */
-#define MD_SB_CLEAN 0
-#define MD_SB_ERRORS 1
-
-#define MD_SB_BITMAP_PRESENT 8 /* bitmap may be present nearby */
-
-/*
- * Notes:
- * - if an array is being reshaped (restriped) in order to change the
- * the number of active devices in the array, 'raid_disks' will be
- * the larger of the old and new numbers. 'delta_disks' will
- * be the "new - old". So if +ve, raid_disks is the new value, and
- * "raid_disks-delta_disks" is the old. If -ve, raid_disks is the
- * old value and "raid_disks+delta_disks" is the new (smaller) value.
- */
-
-
-typedef struct mdp_superblock_s {
- /*
- * Constant generic information
- */
- __u32 md_magic; /* 0 MD identifier */
- __u32 major_version; /* 1 major version to which the set conforms */
- __u32 minor_version; /* 2 minor version ... */
- __u32 patch_version; /* 3 patchlevel version ... */
- __u32 gvalid_words; /* 4 Number of used words in this section */
- __u32 set_uuid0; /* 5 Raid set identifier */
- __u32 ctime; /* 6 Creation time */
- __u32 level; /* 7 Raid personality */
- __u32 size; /* 8 Apparent size of each individual disk */
- __u32 nr_disks; /* 9 total disks in the raid set */
- __u32 raid_disks; /* 10 disks in a fully functional raid set */
- __u32 md_minor; /* 11 preferred MD minor device number */
- __u32 not_persistent; /* 12 does it have a persistent superblock */
- __u32 set_uuid1; /* 13 Raid set identifier #2 */
- __u32 set_uuid2; /* 14 Raid set identifier #3 */
- __u32 set_uuid3; /* 15 Raid set identifier #4 */
- __u32 gstate_creserved[MD_SB_GENERIC_CONSTANT_WORDS - 16];
-
- /*
- * Generic state information
- */
- __u32 utime; /* 0 Superblock update time */
- __u32 state; /* 1 State bits (clean, ...) */
- __u32 active_disks; /* 2 Number of currently active disks */
- __u32 working_disks; /* 3 Number of working disks */
- __u32 failed_disks; /* 4 Number of failed disks */
- __u32 spare_disks; /* 5 Number of spare disks */
- __u32 sb_csum; /* 6 checksum of the whole superblock */
-#ifdef __BIG_ENDIAN
- __u32 events_hi; /* 7 high-order of superblock update count */
- __u32 events_lo; /* 8 low-order of superblock update count */
- __u32 cp_events_hi; /* 9 high-order of checkpoint update count */
- __u32 cp_events_lo; /* 10 low-order of checkpoint update count */
-#else
- __u32 events_lo; /* 7 low-order of superblock update count */
- __u32 events_hi; /* 8 high-order of superblock update count */
- __u32 cp_events_lo; /* 9 low-order of checkpoint update count */
- __u32 cp_events_hi; /* 10 high-order of checkpoint update count */
-#endif
- __u32 recovery_cp; /* 11 recovery checkpoint sector count */
- /* There are only valid for minor_version > 90 */
- __u64 reshape_position; /* 12,13 next address in array-space for reshape */
- __u32 new_level; /* 14 new level we are reshaping to */
- __u32 delta_disks; /* 15 change in number of raid_disks */
- __u32 new_layout; /* 16 new layout */
- __u32 new_chunk; /* 17 new chunk size (bytes) */
- __u32 gstate_sreserved[MD_SB_GENERIC_STATE_WORDS - 18];
-
- /*
- * Personality information
- */
- __u32 layout; /* 0 the array's physical layout */
- __u32 chunk_size; /* 1 chunk size in bytes */
- __u32 root_pv; /* 2 LV root PV */
- __u32 root_block; /* 3 LV root block */
- __u32 pstate_reserved[MD_SB_PERSONALITY_WORDS - 4];
-
- /*
- * Disks information
- */
- mdp_disk_t disks[MD_SB_DISKS];
-
- /*
- * Reserved
- */
- __u32 reserved[MD_SB_RESERVED_WORDS];
-
- /*
- * Active descriptor
- */
- mdp_disk_t this_disk;
-
-} mdp_super_t;
-
-static inline __u64 md_event(mdp_super_t *sb) {
- __u64 ev = sb->events_hi;
- return (ev<<32)| sb->events_lo;
-}
-
-#define MD_SUPERBLOCK_1_TIME_SEC_MASK ((1ULL<<40) - 1)
-
-/*
- * The version-1 superblock :
- * All numeric fields are little-endian.
- *
- * total size: 256 bytes plus 2 per device.
- * 1K allows 384 devices.
- */
-struct mdp_superblock_1 {
- /* constant array information - 128 bytes */
- __le32 magic; /* MD_SB_MAGIC: 0xa92b4efc - little endian */
- __le32 major_version; /* 1 */
- __le32 feature_map; /* bit 0 set if 'bitmap_offset' is meaningful */
- __le32 pad0; /* always set to 0 when writing */
-
- __u8 set_uuid[16]; /* user-space generated. */
- char set_name[32]; /* set and interpreted by user-space */
-
- __le64 ctime; /* lo 40 bits are seconds, top 24 are microseconds or 0*/
- __le32 level; /* -4 (multipath), -1 (linear), 0,1,4,5 */
- __le32 layout; /* only for raid5 and raid10 currently */
- __le64 size; /* used size of component devices, in 512byte sectors */
-
- __le32 chunksize; /* in 512byte sectors */
- __le32 raid_disks;
- __le32 bitmap_offset; /* sectors after start of superblock that bitmap starts
- * NOTE: signed, so bitmap can be before superblock
- * only meaningful of feature_map[0] is set.
- */
-
- /* These are only valid with feature bit '4' */
- __le32 new_level; /* new level we are reshaping to */
- __le64 reshape_position; /* next address in array-space for reshape */
- __le32 delta_disks; /* change in number of raid_disks */
- __le32 new_layout; /* new layout */
- __le32 new_chunk; /* new chunk size (512byte sectors) */
- __u8 pad1[128-124]; /* set to 0 when written */
-
- /* constant this-device information - 64 bytes */
- __le64 data_offset; /* sector start of data, often 0 */
- __le64 data_size; /* sectors in this device that can be used for data */
- __le64 super_offset; /* sector start of this superblock */
- __le64 recovery_offset;/* sectors before this offset (from data_offset) have been recovered */
- __le32 dev_number; /* permanent identifier of this device - not role in raid */
- __le32 cnt_corrected_read; /* number of read errors that were corrected by re-writing */
- __u8 device_uuid[16]; /* user-space setable, ignored by kernel */
- __u8 devflags; /* per-device flags. Only one defined...*/
-#define WriteMostly1 1 /* mask for writemostly flag in above */
- /* Bad block log. If there are any bad blocks the feature flag is set.
- * If offset and size are non-zero, that space is reserved and available
- */
- __u8 bblog_shift; /* shift from sectors to block size */
- __le16 bblog_size; /* number of sectors reserved for list */
- __le32 bblog_offset; /* sector offset from superblock to bblog,
- * signed - not unsigned */
-
- /* array state information - 64 bytes */
- __le64 utime; /* 40 bits second, 24 bits microseconds */
- __le64 events; /* incremented when superblock updated */
- __le64 resync_offset; /* data before this offset (from data_offset) known to be in sync */
- __le32 sb_csum; /* checksum up to devs[max_dev] */
- __le32 max_dev; /* size of devs[] array to consider */
- __u8 pad3[64-32]; /* set to 0 when writing */
-
- /* device state information. Indexed by dev_number.
- * 2 bytes per device
- * Note there are no per-device state flags. State information is rolled
- * into the 'roles' value. If a device is spare or faulty, then it doesn't
- * have a meaningful role.
- */
- __le16 dev_roles[0]; /* role in array, or 0xffff for a spare, or 0xfffe for faulty */
-};
-
-/* feature_map bits */
-#define MD_FEATURE_BITMAP_OFFSET 1
-#define MD_FEATURE_RECOVERY_OFFSET 2 /* recovery_offset is present and
- * must be honoured
- */
-#define MD_FEATURE_RESHAPE_ACTIVE 4
-#define MD_FEATURE_BAD_BLOCKS 8 /* badblock list is not empty */
-#define MD_FEATURE_REPLACEMENT 16 /* This device is replacing an
- * active device with same 'role'.
- * 'recovery_offset' is also set.
- */
-#define MD_FEATURE_ALL (MD_FEATURE_BITMAP_OFFSET \
- |MD_FEATURE_RECOVERY_OFFSET \
- |MD_FEATURE_RESHAPE_ACTIVE \
- |MD_FEATURE_BAD_BLOCKS \
- |MD_FEATURE_REPLACEMENT)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/raid/md_u.h b/ANDROID_3.4.5/include/linux/raid/md_u.h
deleted file mode 100644
index fb1abb33..00000000
--- a/ANDROID_3.4.5/include/linux/raid/md_u.h
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- md_u.h : user <=> kernel API between Linux raidtools and RAID drivers
- Copyright (C) 1998 Ingo Molnar
-
- 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.
-
- You should have received a copy of the GNU General Public License
- (for example /usr/src/linux/COPYING); if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
-
-#ifndef _MD_U_H
-#define _MD_U_H
-
-/*
- * Different major versions are not compatible.
- * Different minor versions are only downward compatible.
- * Different patchlevel versions are downward and upward compatible.
- */
-#define MD_MAJOR_VERSION 0
-#define MD_MINOR_VERSION 90
-/*
- * MD_PATCHLEVEL_VERSION indicates kernel functionality.
- * >=1 means different superblock formats are selectable using SET_ARRAY_INFO
- * and major_version/minor_version accordingly
- * >=2 means that Internal bitmaps are supported by setting MD_SB_BITMAP_PRESENT
- * in the super status byte
- * >=3 means that bitmap superblock version 4 is supported, which uses
- * little-ending representation rather than host-endian
- */
-#define MD_PATCHLEVEL_VERSION 3
-
-/* ioctls */
-
-/* status */
-#define RAID_VERSION _IOR (MD_MAJOR, 0x10, mdu_version_t)
-#define GET_ARRAY_INFO _IOR (MD_MAJOR, 0x11, mdu_array_info_t)
-#define GET_DISK_INFO _IOR (MD_MAJOR, 0x12, mdu_disk_info_t)
-#define PRINT_RAID_DEBUG _IO (MD_MAJOR, 0x13)
-#define RAID_AUTORUN _IO (MD_MAJOR, 0x14)
-#define GET_BITMAP_FILE _IOR (MD_MAJOR, 0x15, mdu_bitmap_file_t)
-
-/* configuration */
-#define CLEAR_ARRAY _IO (MD_MAJOR, 0x20)
-#define ADD_NEW_DISK _IOW (MD_MAJOR, 0x21, mdu_disk_info_t)
-#define HOT_REMOVE_DISK _IO (MD_MAJOR, 0x22)
-#define SET_ARRAY_INFO _IOW (MD_MAJOR, 0x23, mdu_array_info_t)
-#define SET_DISK_INFO _IO (MD_MAJOR, 0x24)
-#define WRITE_RAID_INFO _IO (MD_MAJOR, 0x25)
-#define UNPROTECT_ARRAY _IO (MD_MAJOR, 0x26)
-#define PROTECT_ARRAY _IO (MD_MAJOR, 0x27)
-#define HOT_ADD_DISK _IO (MD_MAJOR, 0x28)
-#define SET_DISK_FAULTY _IO (MD_MAJOR, 0x29)
-#define HOT_GENERATE_ERROR _IO (MD_MAJOR, 0x2a)
-#define SET_BITMAP_FILE _IOW (MD_MAJOR, 0x2b, int)
-
-/* usage */
-#define RUN_ARRAY _IOW (MD_MAJOR, 0x30, mdu_param_t)
-/* 0x31 was START_ARRAY */
-#define STOP_ARRAY _IO (MD_MAJOR, 0x32)
-#define STOP_ARRAY_RO _IO (MD_MAJOR, 0x33)
-#define RESTART_ARRAY_RW _IO (MD_MAJOR, 0x34)
-
-/* 63 partitions with the alternate major number (mdp) */
-#define MdpMinorShift 6
-#ifdef __KERNEL__
-extern int mdp_major;
-#endif
-
-typedef struct mdu_version_s {
- int major;
- int minor;
- int patchlevel;
-} mdu_version_t;
-
-typedef struct mdu_array_info_s {
- /*
- * Generic constant information
- */
- int major_version;
- int minor_version;
- int patch_version;
- int ctime;
- int level;
- int size;
- int nr_disks;
- int raid_disks;
- int md_minor;
- int not_persistent;
-
- /*
- * Generic state information
- */
- int utime; /* 0 Superblock update time */
- int state; /* 1 State bits (clean, ...) */
- int active_disks; /* 2 Number of currently active disks */
- int working_disks; /* 3 Number of working disks */
- int failed_disks; /* 4 Number of failed disks */
- int spare_disks; /* 5 Number of spare disks */
-
- /*
- * Personality information
- */
- int layout; /* 0 the array's physical layout */
- int chunk_size; /* 1 chunk size in bytes */
-
-} mdu_array_info_t;
-
-/* non-obvious values for 'level' */
-#define LEVEL_MULTIPATH (-4)
-#define LEVEL_LINEAR (-1)
-#define LEVEL_FAULTY (-5)
-
-/* we need a value for 'no level specified' and 0
- * means 'raid0', so we need something else. This is
- * for internal use only
- */
-#define LEVEL_NONE (-1000000)
-
-typedef struct mdu_disk_info_s {
- /*
- * configuration/status of one particular disk
- */
- int number;
- int major;
- int minor;
- int raid_disk;
- int state;
-
-} mdu_disk_info_t;
-
-typedef struct mdu_start_info_s {
- /*
- * configuration/status of one particular disk
- */
- int major;
- int minor;
- int raid_disk;
- int state;
-
-} mdu_start_info_t;
-
-typedef struct mdu_bitmap_file_s
-{
- char pathname[4096];
-} mdu_bitmap_file_t;
-
-typedef struct mdu_param_s
-{
- int personality; /* 1,2,3,4 */
- int chunk_size; /* in bytes */
- int max_fault; /* unused for now */
-} mdu_param_t;
-
-#endif
-
diff --git a/ANDROID_3.4.5/include/linux/raid/pq.h b/ANDROID_3.4.5/include/linux/raid/pq.h
deleted file mode 100644
index 53272e98..00000000
--- a/ANDROID_3.4.5/include/linux/raid/pq.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/* -*- linux-c -*- ------------------------------------------------------- *
- *
- * Copyright 2003 H. Peter Anvin - 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, Inc., 53 Temple Place Ste 330,
- * Boston MA 02111-1307, USA; either version 2 of the License, or
- * (at your option) any later version; incorporated herein by reference.
- *
- * ----------------------------------------------------------------------- */
-
-#ifndef LINUX_RAID_RAID6_H
-#define LINUX_RAID_RAID6_H
-
-#ifdef __KERNEL__
-
-/* Set to 1 to use kernel-wide empty_zero_page */
-#define RAID6_USE_EMPTY_ZERO_PAGE 0
-#include <linux/blkdev.h>
-
-/* We need a pre-zeroed page... if we don't want to use the kernel-provided
- one define it here */
-#if RAID6_USE_EMPTY_ZERO_PAGE
-# define raid6_empty_zero_page empty_zero_page
-#else
-extern const char raid6_empty_zero_page[PAGE_SIZE];
-#endif
-
-#else /* ! __KERNEL__ */
-/* Used for testing in user space */
-
-#include <errno.h>
-#include <inttypes.h>
-#include <limits.h>
-#include <stddef.h>
-#include <sys/mman.h>
-#include <sys/types.h>
-
-/* Not standard, but glibc defines it */
-#define BITS_PER_LONG __WORDSIZE
-
-typedef uint8_t u8;
-typedef uint16_t u16;
-typedef uint32_t u32;
-typedef uint64_t u64;
-
-#ifndef PAGE_SIZE
-# define PAGE_SIZE 4096
-#endif
-extern const char raid6_empty_zero_page[PAGE_SIZE];
-
-#define __init
-#define __exit
-#define __attribute_const__ __attribute__((const))
-#define noinline __attribute__((noinline))
-
-#define preempt_enable()
-#define preempt_disable()
-#define cpu_has_feature(x) 1
-#define enable_kernel_altivec()
-#define disable_kernel_altivec()
-
-#define EXPORT_SYMBOL(sym)
-#define EXPORT_SYMBOL_GPL(sym)
-#define MODULE_LICENSE(licence)
-#define MODULE_DESCRIPTION(desc)
-#define subsys_initcall(x)
-#define module_exit(x)
-#endif /* __KERNEL__ */
-
-/* Routine choices */
-struct raid6_calls {
- void (*gen_syndrome)(int, size_t, void **);
- int (*valid)(void); /* Returns 1 if this routine set is usable */
- const char *name; /* Name of this routine set */
- int prefer; /* Has special performance attribute */
-};
-
-/* Selected algorithm */
-extern struct raid6_calls raid6_call;
-
-/* Various routine sets */
-extern const struct raid6_calls raid6_intx1;
-extern const struct raid6_calls raid6_intx2;
-extern const struct raid6_calls raid6_intx4;
-extern const struct raid6_calls raid6_intx8;
-extern const struct raid6_calls raid6_intx16;
-extern const struct raid6_calls raid6_intx32;
-extern const struct raid6_calls raid6_mmxx1;
-extern const struct raid6_calls raid6_mmxx2;
-extern const struct raid6_calls raid6_sse1x1;
-extern const struct raid6_calls raid6_sse1x2;
-extern const struct raid6_calls raid6_sse2x1;
-extern const struct raid6_calls raid6_sse2x2;
-extern const struct raid6_calls raid6_sse2x4;
-extern const struct raid6_calls raid6_altivec1;
-extern const struct raid6_calls raid6_altivec2;
-extern const struct raid6_calls raid6_altivec4;
-extern const struct raid6_calls raid6_altivec8;
-
-/* Algorithm list */
-extern const struct raid6_calls * const raid6_algos[];
-int raid6_select_algo(void);
-
-/* Return values from chk_syndrome */
-#define RAID6_OK 0
-#define RAID6_P_BAD 1
-#define RAID6_Q_BAD 2
-#define RAID6_PQ_BAD 3
-
-/* Galois field tables */
-extern const u8 raid6_gfmul[256][256] __attribute__((aligned(256)));
-extern const u8 raid6_gfexp[256] __attribute__((aligned(256)));
-extern const u8 raid6_gfinv[256] __attribute__((aligned(256)));
-extern const u8 raid6_gfexi[256] __attribute__((aligned(256)));
-
-/* Recovery routines */
-void raid6_2data_recov(int disks, size_t bytes, int faila, int failb,
- void **ptrs);
-void raid6_datap_recov(int disks, size_t bytes, int faila, void **ptrs);
-void raid6_dual_recov(int disks, size_t bytes, int faila, int failb,
- void **ptrs);
-
-/* Some definitions to allow code to be compiled for testing in userspace */
-#ifndef __KERNEL__
-
-# define jiffies raid6_jiffies()
-# define printk printf
-# define GFP_KERNEL 0
-# define __get_free_pages(x, y) ((unsigned long)mmap(NULL, PAGE_SIZE << (y), \
- PROT_READ|PROT_WRITE, \
- MAP_PRIVATE|MAP_ANONYMOUS,\
- 0, 0))
-# define free_pages(x, y) munmap((void *)(x), PAGE_SIZE << (y))
-
-static inline void cpu_relax(void)
-{
- /* Nothing */
-}
-
-#undef HZ
-#define HZ 1000
-static inline uint32_t raid6_jiffies(void)
-{
- struct timeval tv;
- gettimeofday(&tv, NULL);
- return tv.tv_sec*1000 + tv.tv_usec/1000;
-}
-
-#endif /* ! __KERNEL__ */
-
-#endif /* LINUX_RAID_RAID6_H */
diff --git a/ANDROID_3.4.5/include/linux/raid/xor.h b/ANDROID_3.4.5/include/linux/raid/xor.h
deleted file mode 100644
index 5a210959..00000000
--- a/ANDROID_3.4.5/include/linux/raid/xor.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef _XOR_H
-#define _XOR_H
-
-#define MAX_XOR_BLOCKS 4
-
-extern void xor_blocks(unsigned int count, unsigned int bytes,
- void *dest, void **srcs);
-
-struct xor_block_template {
- struct xor_block_template *next;
- const char *name;
- int speed;
- void (*do_2)(unsigned long, unsigned long *, unsigned long *);
- void (*do_3)(unsigned long, unsigned long *, unsigned long *,
- unsigned long *);
- void (*do_4)(unsigned long, unsigned long *, unsigned long *,
- unsigned long *, unsigned long *);
- void (*do_5)(unsigned long, unsigned long *, unsigned long *,
- unsigned long *, unsigned long *, unsigned long *);
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/raid_class.h b/ANDROID_3.4.5/include/linux/raid_class.h
deleted file mode 100644
index 31e1ff69..00000000
--- a/ANDROID_3.4.5/include/linux/raid_class.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * raid_class.h - a generic raid visualisation class
- *
- * Copyright (c) 2005 - James Bottomley <James.Bottomley@steeleye.com>
- *
- * This file is licensed under GPLv2
- */
-#include <linux/transport_class.h>
-
-struct raid_template {
- struct transport_container raid_attrs;
-};
-
-struct raid_function_template {
- void *cookie;
- int (*is_raid)(struct device *);
- void (*get_resync)(struct device *);
- void (*get_state)(struct device *);
-};
-
-enum raid_state {
- RAID_STATE_UNKNOWN = 0,
- RAID_STATE_ACTIVE,
- RAID_STATE_DEGRADED,
- RAID_STATE_RESYNCING,
- RAID_STATE_OFFLINE,
-};
-
-enum raid_level {
- RAID_LEVEL_UNKNOWN = 0,
- RAID_LEVEL_LINEAR,
- RAID_LEVEL_0,
- RAID_LEVEL_1,
- RAID_LEVEL_10,
- RAID_LEVEL_1E,
- RAID_LEVEL_3,
- RAID_LEVEL_4,
- RAID_LEVEL_5,
- RAID_LEVEL_50,
- RAID_LEVEL_6,
-};
-
-struct raid_data {
- struct list_head component_list;
- int component_count;
- enum raid_level level;
- enum raid_state state;
- int resync;
-};
-
-/* resync complete goes from 0 to this */
-#define RAID_MAX_RESYNC (10000)
-
-#define DEFINE_RAID_ATTRIBUTE(type, attr) \
-static inline void \
-raid_set_##attr(struct raid_template *r, struct device *dev, type value) { \
- struct device *device = \
- attribute_container_find_class_device(&r->raid_attrs.ac, dev);\
- struct raid_data *rd; \
- BUG_ON(!device); \
- rd = dev_get_drvdata(device); \
- rd->attr = value; \
-} \
-static inline type \
-raid_get_##attr(struct raid_template *r, struct device *dev) { \
- struct device *device = \
- attribute_container_find_class_device(&r->raid_attrs.ac, dev);\
- struct raid_data *rd; \
- BUG_ON(!device); \
- rd = dev_get_drvdata(device); \
- return rd->attr; \
-}
-
-DEFINE_RAID_ATTRIBUTE(enum raid_level, level)
-DEFINE_RAID_ATTRIBUTE(int, resync)
-DEFINE_RAID_ATTRIBUTE(enum raid_state, state)
-
-struct raid_template *raid_class_attach(struct raid_function_template *);
-void raid_class_release(struct raid_template *);
-
-int __must_check raid_component_add(struct raid_template *, struct device *,
- struct device *);
-
diff --git a/ANDROID_3.4.5/include/linux/ramfs.h b/ANDROID_3.4.5/include/linux/ramfs.h
deleted file mode 100644
index 5bf5500d..00000000
--- a/ANDROID_3.4.5/include/linux/ramfs.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef _LINUX_RAMFS_H
-#define _LINUX_RAMFS_H
-
-struct inode *ramfs_get_inode(struct super_block *sb, const struct inode *dir,
- umode_t mode, dev_t dev);
-extern struct dentry *ramfs_mount(struct file_system_type *fs_type,
- int flags, const char *dev_name, void *data);
-
-#ifndef CONFIG_MMU
-extern int ramfs_nommu_expand_for_mapping(struct inode *inode, size_t newsize);
-extern unsigned long ramfs_nommu_get_unmapped_area(struct file *file,
- unsigned long addr,
- unsigned long len,
- unsigned long pgoff,
- unsigned long flags);
-
-extern int ramfs_nommu_mmap(struct file *file, struct vm_area_struct *vma);
-#endif
-
-extern const struct file_operations ramfs_file_operations;
-extern const struct vm_operations_struct generic_file_vm_ops;
-extern int __init init_rootfs(void);
-
-int ramfs_fill_super(struct super_block *sb, void *data, int silent);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ramoops.h b/ANDROID_3.4.5/include/linux/ramoops.h
deleted file mode 100644
index 484fef81..00000000
--- a/ANDROID_3.4.5/include/linux/ramoops.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef __RAMOOPS_H
-#define __RAMOOPS_H
-
-/*
- * Ramoops platform data
- * @mem_size memory size for ramoops
- * @mem_address physical memory address to contain ramoops
- */
-
-struct ramoops_platform_data {
- unsigned long mem_size;
- unsigned long mem_address;
- unsigned long record_size;
- int dump_oops;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/random.h b/ANDROID_3.4.5/include/linux/random.h
deleted file mode 100644
index 8f74538c..00000000
--- a/ANDROID_3.4.5/include/linux/random.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * include/linux/random.h
- *
- * Include file for the random number generator.
- */
-
-#ifndef _LINUX_RANDOM_H
-#define _LINUX_RANDOM_H
-
-#include <linux/types.h>
-#include <linux/ioctl.h>
-#include <linux/irqnr.h>
-
-/* ioctl()'s for the random number generator */
-
-/* Get the entropy count. */
-#define RNDGETENTCNT _IOR( 'R', 0x00, int )
-
-/* Add to (or subtract from) the entropy count. (Superuser only.) */
-#define RNDADDTOENTCNT _IOW( 'R', 0x01, int )
-
-/* Get the contents of the entropy pool. (Superuser only.) */
-#define RNDGETPOOL _IOR( 'R', 0x02, int [2] )
-
-/*
- * Write bytes into the entropy pool and add to the entropy count.
- * (Superuser only.)
- */
-#define RNDADDENTROPY _IOW( 'R', 0x03, int [2] )
-
-/* Clear entropy count to 0. (Superuser only.) */
-#define RNDZAPENTCNT _IO( 'R', 0x04 )
-
-/* Clear the entropy pool and associated counters. (Superuser only.) */
-#define RNDCLEARPOOL _IO( 'R', 0x06 )
-
-struct rand_pool_info {
- int entropy_count;
- int buf_size;
- __u32 buf[0];
-};
-
-struct rnd_state {
- __u32 s1, s2, s3;
-};
-
-/* Exported functions */
-
-#ifdef __KERNEL__
-
-extern void rand_initialize_irq(int irq);
-
-extern void add_input_randomness(unsigned int type, unsigned int code,
- unsigned int value);
-extern void add_interrupt_randomness(int irq);
-
-extern void get_random_bytes(void *buf, int nbytes);
-void generate_random_uuid(unsigned char uuid_out[16]);
-
-#ifndef MODULE
-extern const struct file_operations random_fops, urandom_fops;
-#endif
-
-unsigned int get_random_int(void);
-unsigned long randomize_range(unsigned long start, unsigned long end, unsigned long len);
-
-u32 random32(void);
-void srandom32(u32 seed);
-
-u32 prandom32(struct rnd_state *);
-
-/*
- * Handle minimum values for seeds
- */
-static inline u32 __seed(u32 x, u32 m)
-{
- return (x < m) ? x + m : x;
-}
-
-/**
- * prandom32_seed - set seed for prandom32().
- * @state: pointer to state structure to receive the seed.
- * @seed: arbitrary 64-bit value to use as a seed.
- */
-static inline void prandom32_seed(struct rnd_state *state, u64 seed)
-{
- u32 i = (seed >> 32) ^ (seed << 10) ^ seed;
-
- state->s1 = __seed(i, 1);
- state->s2 = __seed(i, 7);
- state->s3 = __seed(i, 15);
-}
-
-#ifdef CONFIG_ARCH_RANDOM
-# include <asm/archrandom.h>
-#else
-static inline int arch_get_random_long(unsigned long *v)
-{
- return 0;
-}
-static inline int arch_get_random_int(unsigned int *v)
-{
- return 0;
-}
-#endif
-
-#endif /* __KERNEL___ */
-
-#endif /* _LINUX_RANDOM_H */
diff --git a/ANDROID_3.4.5/include/linux/range.h b/ANDROID_3.4.5/include/linux/range.h
deleted file mode 100644
index bd184a5d..00000000
--- a/ANDROID_3.4.5/include/linux/range.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef _LINUX_RANGE_H
-#define _LINUX_RANGE_H
-
-struct range {
- u64 start;
- u64 end;
-};
-
-int add_range(struct range *range, int az, int nr_range,
- u64 start, u64 end);
-
-
-int add_range_with_merge(struct range *range, int az, int nr_range,
- u64 start, u64 end);
-
-void subtract_range(struct range *range, int az, u64 start, u64 end);
-
-int clean_sort_range(struct range *range, int az);
-
-void sort_range(struct range *range, int nr_range);
-
-#define MAX_RESOURCE ((resource_size_t)~0)
-static inline resource_size_t cap_resource(u64 val)
-{
- if (val > MAX_RESOURCE)
- return MAX_RESOURCE;
-
- return val;
-}
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ratelimit.h b/ANDROID_3.4.5/include/linux/ratelimit.h
deleted file mode 100644
index e11ccb4c..00000000
--- a/ANDROID_3.4.5/include/linux/ratelimit.h
+++ /dev/null
@@ -1,84 +0,0 @@
-#ifndef _LINUX_RATELIMIT_H
-#define _LINUX_RATELIMIT_H
-
-#include <linux/param.h>
-#include <linux/spinlock.h>
-
-#define DEFAULT_RATELIMIT_INTERVAL (5 * HZ)
-#define DEFAULT_RATELIMIT_BURST 10
-
-struct ratelimit_state {
- raw_spinlock_t lock; /* protect the state */
-
- int interval;
- int burst;
- int printed;
- int missed;
- unsigned long begin;
-};
-
-#define DEFINE_RATELIMIT_STATE(name, interval_init, burst_init) \
- \
- struct ratelimit_state name = { \
- .lock = __RAW_SPIN_LOCK_UNLOCKED(name.lock), \
- .interval = interval_init, \
- .burst = burst_init, \
- }
-
-static inline void ratelimit_state_init(struct ratelimit_state *rs,
- int interval, int burst)
-{
- raw_spin_lock_init(&rs->lock);
- rs->interval = interval;
- rs->burst = burst;
- rs->printed = 0;
- rs->missed = 0;
- rs->begin = 0;
-}
-
-extern struct ratelimit_state printk_ratelimit_state;
-
-extern int ___ratelimit(struct ratelimit_state *rs, const char *func);
-#define __ratelimit(state) ___ratelimit(state, __func__)
-
-#ifdef CONFIG_PRINTK
-
-#define WARN_ON_RATELIMIT(condition, state) \
- WARN_ON((condition) && __ratelimit(state))
-
-#define __WARN_RATELIMIT(condition, state, format...) \
-({ \
- int rtn = 0; \
- if (unlikely(__ratelimit(state))) \
- rtn = WARN(condition, format); \
- rtn; \
-})
-
-#define WARN_RATELIMIT(condition, format...) \
-({ \
- static DEFINE_RATELIMIT_STATE(_rs, \
- DEFAULT_RATELIMIT_INTERVAL, \
- DEFAULT_RATELIMIT_BURST); \
- __WARN_RATELIMIT(condition, &_rs, format); \
-})
-
-#else
-
-#define WARN_ON_RATELIMIT(condition, state) \
- WARN_ON(condition)
-
-#define __WARN_RATELIMIT(condition, state, format...) \
-({ \
- int rtn = WARN(condition, format); \
- rtn; \
-})
-
-#define WARN_RATELIMIT(condition, format...) \
-({ \
- int rtn = WARN(condition, format); \
- rtn; \
-})
-
-#endif
-
-#endif /* _LINUX_RATELIMIT_H */
diff --git a/ANDROID_3.4.5/include/linux/rational.h b/ANDROID_3.4.5/include/linux/rational.h
deleted file mode 100644
index 4f532fcd..00000000
--- a/ANDROID_3.4.5/include/linux/rational.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * rational fractions
- *
- * Copyright (C) 2009 emlix GmbH, Oskar Schirmer <os@emlix.com>
- *
- * helper functions when coping with rational numbers,
- * e.g. when calculating optimum numerator/denominator pairs for
- * pll configuration taking into account restricted register size
- */
-
-#ifndef _LINUX_RATIONAL_H
-#define _LINUX_RATIONAL_H
-
-void rational_best_approximation(
- unsigned long given_numerator, unsigned long given_denominator,
- unsigned long max_numerator, unsigned long max_denominator,
- unsigned long *best_numerator, unsigned long *best_denominator);
-
-#endif /* _LINUX_RATIONAL_H */
diff --git a/ANDROID_3.4.5/include/linux/raw.h b/ANDROID_3.4.5/include/linux/raw.h
deleted file mode 100644
index 62d543e7..00000000
--- a/ANDROID_3.4.5/include/linux/raw.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
-
-#include <linux/types.h>
-
-#define RAW_SETBIND _IO( 0xac, 0 )
-#define RAW_GETBIND _IO( 0xac, 1 )
-
-struct raw_config_request
-{
- int raw_minor;
- __u64 block_major;
- __u64 block_minor;
-};
-
-#define MAX_RAW_MINORS CONFIG_MAX_RAW_DEVS
-
-#endif /* __LINUX_RAW_H */
diff --git a/ANDROID_3.4.5/include/linux/rbtree.h b/ANDROID_3.4.5/include/linux/rbtree.h
deleted file mode 100644
index 033b507b..00000000
--- a/ANDROID_3.4.5/include/linux/rbtree.h
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- Red Black Trees
- (C) 1999 Andrea Arcangeli <andrea@suse.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
-
- linux/include/linux/rbtree.h
-
- To use rbtrees you'll have to implement your own insert and search cores.
- This will avoid us to use callbacks and to drop drammatically performances.
- I know it's not the cleaner way, but in C (not in C++) to get
- performances and genericity...
-
- Some example of insert and search follows here. The search is a plain
- normal search over an ordered tree. The insert instead must be implemented
- in two steps: First, the code must insert the element in order as a red leaf
- in the tree, and then the support library function rb_insert_color() must
- be called. Such function will do the not trivial work to rebalance the
- rbtree, if necessary.
-
------------------------------------------------------------------------
-static inline struct page * rb_search_page_cache(struct inode * inode,
- unsigned long offset)
-{
- struct rb_node * n = inode->i_rb_page_cache.rb_node;
- struct page * page;
-
- while (n)
- {
- page = rb_entry(n, struct page, rb_page_cache);
-
- if (offset < page->offset)
- n = n->rb_left;
- else if (offset > page->offset)
- n = n->rb_right;
- else
- return page;
- }
- return NULL;
-}
-
-static inline struct page * __rb_insert_page_cache(struct inode * inode,
- unsigned long offset,
- struct rb_node * node)
-{
- struct rb_node ** p = &inode->i_rb_page_cache.rb_node;
- struct rb_node * parent = NULL;
- struct page * page;
-
- while (*p)
- {
- parent = *p;
- page = rb_entry(parent, struct page, rb_page_cache);
-
- if (offset < page->offset)
- p = &(*p)->rb_left;
- else if (offset > page->offset)
- p = &(*p)->rb_right;
- else
- return page;
- }
-
- rb_link_node(node, parent, p);
-
- return NULL;
-}
-
-static inline struct page * rb_insert_page_cache(struct inode * inode,
- unsigned long offset,
- struct rb_node * node)
-{
- struct page * ret;
- if ((ret = __rb_insert_page_cache(inode, offset, node)))
- goto out;
- rb_insert_color(node, &inode->i_rb_page_cache);
- out:
- return ret;
-}
------------------------------------------------------------------------
-*/
-
-#ifndef _LINUX_RBTREE_H
-#define _LINUX_RBTREE_H
-
-#include <linux/kernel.h>
-#include <linux/stddef.h>
-
-struct rb_node
-{
- unsigned long rb_parent_color;
-#define RB_RED 0
-#define RB_BLACK 1
- struct rb_node *rb_right;
- struct rb_node *rb_left;
-} __attribute__((aligned(sizeof(long))));
- /* The alignment might seem pointless, but allegedly CRIS needs it */
-
-struct rb_root
-{
- struct rb_node *rb_node;
-};
-
-
-#define rb_parent(r) ((struct rb_node *)((r)->rb_parent_color & ~3))
-#define rb_color(r) ((r)->rb_parent_color & 1)
-#define rb_is_red(r) (!rb_color(r))
-#define rb_is_black(r) rb_color(r)
-#define rb_set_red(r) do { (r)->rb_parent_color &= ~1; } while (0)
-#define rb_set_black(r) do { (r)->rb_parent_color |= 1; } while (0)
-
-static inline void rb_set_parent(struct rb_node *rb, struct rb_node *p)
-{
- rb->rb_parent_color = (rb->rb_parent_color & 3) | (unsigned long)p;
-}
-static inline void rb_set_color(struct rb_node *rb, int color)
-{
- rb->rb_parent_color = (rb->rb_parent_color & ~1) | color;
-}
-
-#define RB_ROOT (struct rb_root) { NULL, }
-#define rb_entry(ptr, type, member) container_of(ptr, type, member)
-
-#define RB_EMPTY_ROOT(root) ((root)->rb_node == NULL)
-#define RB_EMPTY_NODE(node) (rb_parent(node) == node)
-#define RB_CLEAR_NODE(node) (rb_set_parent(node, node))
-
-static inline void rb_init_node(struct rb_node *rb)
-{
- rb->rb_parent_color = 0;
- rb->rb_right = NULL;
- rb->rb_left = NULL;
- RB_CLEAR_NODE(rb);
-}
-
-extern void rb_insert_color(struct rb_node *, struct rb_root *);
-extern void rb_erase(struct rb_node *, struct rb_root *);
-
-typedef void (*rb_augment_f)(struct rb_node *node, void *data);
-
-extern void rb_augment_insert(struct rb_node *node,
- rb_augment_f func, void *data);
-extern struct rb_node *rb_augment_erase_begin(struct rb_node *node);
-extern void rb_augment_erase_end(struct rb_node *node,
- rb_augment_f func, void *data);
-
-/* Find logical next and previous nodes in a tree */
-extern struct rb_node *rb_next(const struct rb_node *);
-extern struct rb_node *rb_prev(const struct rb_node *);
-extern struct rb_node *rb_first(const struct rb_root *);
-extern struct rb_node *rb_last(const struct rb_root *);
-
-/* Fast replacement of a single node without remove/rebalance/add/rebalance */
-extern void rb_replace_node(struct rb_node *victim, struct rb_node *new,
- struct rb_root *root);
-
-static inline void rb_link_node(struct rb_node * node, struct rb_node * parent,
- struct rb_node ** rb_link)
-{
- node->rb_parent_color = (unsigned long )parent;
- node->rb_left = node->rb_right = NULL;
-
- *rb_link = node;
-}
-
-#endif /* _LINUX_RBTREE_H */
diff --git a/ANDROID_3.4.5/include/linux/rculist.h b/ANDROID_3.4.5/include/linux/rculist.h
deleted file mode 100644
index d0792908..00000000
--- a/ANDROID_3.4.5/include/linux/rculist.h
+++ /dev/null
@@ -1,493 +0,0 @@
-#ifndef _LINUX_RCULIST_H
-#define _LINUX_RCULIST_H
-
-#ifdef __KERNEL__
-
-/*
- * RCU-protected list version
- */
-#include <linux/list.h>
-#include <linux/rcupdate.h>
-
-/*
- * Why is there no list_empty_rcu()? Because list_empty() serves this
- * purpose. The list_empty() function fetches the RCU-protected pointer
- * and compares it to the address of the list head, but neither dereferences
- * this pointer itself nor provides this pointer to the caller. Therefore,
- * it is not necessary to use rcu_dereference(), so that list_empty() can
- * be used anywhere you would want to use a list_empty_rcu().
- */
-
-/*
- * return the ->next pointer of a list_head in an rcu safe
- * way, we must not access it directly
- */
-#define list_next_rcu(list) (*((struct list_head __rcu **)(&(list)->next)))
-
-/*
- * Insert a new entry between two known consecutive entries.
- *
- * This is only for internal list manipulation where we know
- * the prev/next entries already!
- */
-static inline void __list_add_rcu(struct list_head *new,
- struct list_head *prev, struct list_head *next)
-{
- new->next = next;
- new->prev = prev;
- rcu_assign_pointer(list_next_rcu(prev), new);
- next->prev = new;
-}
-
-/**
- * list_add_rcu - add a new entry to rcu-protected list
- * @new: new entry to be added
- * @head: list head to add it after
- *
- * Insert a new entry after the specified head.
- * This is good for implementing stacks.
- *
- * The caller must take whatever precautions are necessary
- * (such as holding appropriate locks) to avoid racing
- * with another list-mutation primitive, such as list_add_rcu()
- * or list_del_rcu(), running on this same list.
- * However, it is perfectly legal to run concurrently with
- * the _rcu list-traversal primitives, such as
- * list_for_each_entry_rcu().
- */
-static inline void list_add_rcu(struct list_head *new, struct list_head *head)
-{
- __list_add_rcu(new, head, head->next);
-}
-
-/**
- * list_add_tail_rcu - add a new entry to rcu-protected list
- * @new: new entry to be added
- * @head: list head to add it before
- *
- * Insert a new entry before the specified head.
- * This is useful for implementing queues.
- *
- * The caller must take whatever precautions are necessary
- * (such as holding appropriate locks) to avoid racing
- * with another list-mutation primitive, such as list_add_tail_rcu()
- * or list_del_rcu(), running on this same list.
- * However, it is perfectly legal to run concurrently with
- * the _rcu list-traversal primitives, such as
- * list_for_each_entry_rcu().
- */
-static inline void list_add_tail_rcu(struct list_head *new,
- struct list_head *head)
-{
- __list_add_rcu(new, head->prev, head);
-}
-
-/**
- * list_del_rcu - deletes entry from list without re-initialization
- * @entry: the element to delete from the list.
- *
- * Note: list_empty() on entry does not return true after this,
- * the entry is in an undefined state. It is useful for RCU based
- * lockfree traversal.
- *
- * In particular, it means that we can not poison the forward
- * pointers that may still be used for walking the list.
- *
- * The caller must take whatever precautions are necessary
- * (such as holding appropriate locks) to avoid racing
- * with another list-mutation primitive, such as list_del_rcu()
- * or list_add_rcu(), running on this same list.
- * However, it is perfectly legal to run concurrently with
- * the _rcu list-traversal primitives, such as
- * list_for_each_entry_rcu().
- *
- * Note that the caller is not permitted to immediately free
- * the newly deleted entry. Instead, either synchronize_rcu()
- * or call_rcu() must be used to defer freeing until an RCU
- * grace period has elapsed.
- */
-static inline void list_del_rcu(struct list_head *entry)
-{
- __list_del(entry->prev, entry->next);
- entry->prev = LIST_POISON2;
-}
-
-/**
- * hlist_del_init_rcu - deletes entry from hash list with re-initialization
- * @n: the element to delete from the hash list.
- *
- * Note: list_unhashed() on the node return true after this. It is
- * useful for RCU based read lockfree traversal if the writer side
- * must know if the list entry is still hashed or already unhashed.
- *
- * In particular, it means that we can not poison the forward pointers
- * that may still be used for walking the hash list and we can only
- * zero the pprev pointer so list_unhashed() will return true after
- * this.
- *
- * The caller must take whatever precautions are necessary (such as
- * holding appropriate locks) to avoid racing with another
- * list-mutation primitive, such as hlist_add_head_rcu() or
- * hlist_del_rcu(), running on this same list. However, it is
- * perfectly legal to run concurrently with the _rcu list-traversal
- * primitives, such as hlist_for_each_entry_rcu().
- */
-static inline void hlist_del_init_rcu(struct hlist_node *n)
-{
- if (!hlist_unhashed(n)) {
- __hlist_del(n);
- n->pprev = NULL;
- }
-}
-
-/**
- * list_replace_rcu - replace old entry by new one
- * @old : the element to be replaced
- * @new : the new element to insert
- *
- * The @old entry will be replaced with the @new entry atomically.
- * Note: @old should not be empty.
- */
-static inline void list_replace_rcu(struct list_head *old,
- struct list_head *new)
-{
- new->next = old->next;
- new->prev = old->prev;
- rcu_assign_pointer(list_next_rcu(new->prev), new);
- new->next->prev = new;
- old->prev = LIST_POISON2;
-}
-
-/**
- * list_splice_init_rcu - splice an RCU-protected list into an existing list.
- * @list: the RCU-protected list to splice
- * @head: the place in the list to splice the first list into
- * @sync: function to sync: synchronize_rcu(), synchronize_sched(), ...
- *
- * @head can be RCU-read traversed concurrently with this function.
- *
- * Note that this function blocks.
- *
- * Important note: the caller must take whatever action is necessary to
- * prevent any other updates to @head. In principle, it is possible
- * to modify the list as soon as sync() begins execution.
- * If this sort of thing becomes necessary, an alternative version
- * based on call_rcu() could be created. But only if -really-
- * needed -- there is no shortage of RCU API members.
- */
-static inline void list_splice_init_rcu(struct list_head *list,
- struct list_head *head,
- void (*sync)(void))
-{
- struct list_head *first = list->next;
- struct list_head *last = list->prev;
- struct list_head *at = head->next;
-
- if (list_empty(list))
- return;
-
- /* "first" and "last" tracking list, so initialize it. */
-
- INIT_LIST_HEAD(list);
-
- /*
- * At this point, the list body still points to the source list.
- * Wait for any readers to finish using the list before splicing
- * the list body into the new list. Any new readers will see
- * an empty list.
- */
-
- sync();
-
- /*
- * Readers are finished with the source list, so perform splice.
- * The order is important if the new list is global and accessible
- * to concurrent RCU readers. Note that RCU readers are not
- * permitted to traverse the prev pointers without excluding
- * this function.
- */
-
- last->next = at;
- rcu_assign_pointer(list_next_rcu(head), first);
- first->prev = head;
- at->prev = last;
-}
-
-/**
- * list_entry_rcu - get the struct for this entry
- * @ptr: the &struct list_head pointer.
- * @type: the type of the struct this is embedded in.
- * @member: the name of the list_struct within the struct.
- *
- * This primitive may safely run concurrently with the _rcu list-mutation
- * primitives such as list_add_rcu() as long as it's guarded by rcu_read_lock().
- */
-#define list_entry_rcu(ptr, type, member) \
- ({typeof (*ptr) __rcu *__ptr = (typeof (*ptr) __rcu __force *)ptr; \
- container_of((typeof(ptr))rcu_dereference_raw(__ptr), type, member); \
- })
-
-/**
- * list_first_entry_rcu - get the first element from a list
- * @ptr: the list head to take the element from.
- * @type: the type of the struct this is embedded in.
- * @member: the name of the list_struct within the struct.
- *
- * Note, that list is expected to be not empty.
- *
- * This primitive may safely run concurrently with the _rcu list-mutation
- * primitives such as list_add_rcu() as long as it's guarded by rcu_read_lock().
- */
-#define list_first_entry_rcu(ptr, type, member) \
- list_entry_rcu((ptr)->next, type, member)
-
-/**
- * list_for_each_entry_rcu - iterate over rcu list of given type
- * @pos: the type * to use as a loop cursor.
- * @head: the head for your list.
- * @member: the name of the list_struct within the struct.
- *
- * This list-traversal primitive may safely run concurrently with
- * the _rcu list-mutation primitives such as list_add_rcu()
- * as long as the traversal is guarded by rcu_read_lock().
- */
-#define list_for_each_entry_rcu(pos, head, member) \
- for (pos = list_entry_rcu((head)->next, typeof(*pos), member); \
- &pos->member != (head); \
- pos = list_entry_rcu(pos->member.next, typeof(*pos), member))
-
-
-/**
- * list_for_each_continue_rcu
- * @pos: the &struct list_head to use as a loop cursor.
- * @head: the head for your list.
- *
- * Iterate over an rcu-protected list, continuing after current point.
- *
- * This list-traversal primitive may safely run concurrently with
- * the _rcu list-mutation primitives such as list_add_rcu()
- * as long as the traversal is guarded by rcu_read_lock().
- */
-#define list_for_each_continue_rcu(pos, head) \
- for ((pos) = rcu_dereference_raw(list_next_rcu(pos)); \
- (pos) != (head); \
- (pos) = rcu_dereference_raw(list_next_rcu(pos)))
-
-/**
- * list_for_each_entry_continue_rcu - continue iteration over list of given type
- * @pos: the type * to use as a loop cursor.
- * @head: the head for your list.
- * @member: the name of the list_struct within the struct.
- *
- * Continue to iterate over list of given type, continuing after
- * the current position.
- */
-#define list_for_each_entry_continue_rcu(pos, head, member) \
- for (pos = list_entry_rcu(pos->member.next, typeof(*pos), member); \
- &pos->member != (head); \
- pos = list_entry_rcu(pos->member.next, typeof(*pos), member))
-
-/**
- * hlist_del_rcu - deletes entry from hash list without re-initialization
- * @n: the element to delete from the hash list.
- *
- * Note: list_unhashed() on entry does not return true after this,
- * the entry is in an undefined state. It is useful for RCU based
- * lockfree traversal.
- *
- * In particular, it means that we can not poison the forward
- * pointers that may still be used for walking the hash list.
- *
- * The caller must take whatever precautions are necessary
- * (such as holding appropriate locks) to avoid racing
- * with another list-mutation primitive, such as hlist_add_head_rcu()
- * or hlist_del_rcu(), running on this same list.
- * However, it is perfectly legal to run concurrently with
- * the _rcu list-traversal primitives, such as
- * hlist_for_each_entry().
- */
-static inline void hlist_del_rcu(struct hlist_node *n)
-{
- __hlist_del(n);
- n->pprev = LIST_POISON2;
-}
-
-/**
- * hlist_replace_rcu - replace old entry by new one
- * @old : the element to be replaced
- * @new : the new element to insert
- *
- * The @old entry will be replaced with the @new entry atomically.
- */
-static inline void hlist_replace_rcu(struct hlist_node *old,
- struct hlist_node *new)
-{
- struct hlist_node *next = old->next;
-
- new->next = next;
- new->pprev = old->pprev;
- rcu_assign_pointer(*(struct hlist_node __rcu **)new->pprev, new);
- if (next)
- new->next->pprev = &new->next;
- old->pprev = LIST_POISON2;
-}
-
-/*
- * return the first or the next element in an RCU protected hlist
- */
-#define hlist_first_rcu(head) (*((struct hlist_node __rcu **)(&(head)->first)))
-#define hlist_next_rcu(node) (*((struct hlist_node __rcu **)(&(node)->next)))
-#define hlist_pprev_rcu(node) (*((struct hlist_node __rcu **)((node)->pprev)))
-
-/**
- * hlist_add_head_rcu
- * @n: the element to add to the hash list.
- * @h: the list to add to.
- *
- * Description:
- * Adds the specified element to the specified hlist,
- * while permitting racing traversals.
- *
- * The caller must take whatever precautions are necessary
- * (such as holding appropriate locks) to avoid racing
- * with another list-mutation primitive, such as hlist_add_head_rcu()
- * or hlist_del_rcu(), running on this same list.
- * However, it is perfectly legal to run concurrently with
- * the _rcu list-traversal primitives, such as
- * hlist_for_each_entry_rcu(), used to prevent memory-consistency
- * problems on Alpha CPUs. Regardless of the type of CPU, the
- * list-traversal primitive must be guarded by rcu_read_lock().
- */
-static inline void hlist_add_head_rcu(struct hlist_node *n,
- struct hlist_head *h)
-{
- struct hlist_node *first = h->first;
-
- n->next = first;
- n->pprev = &h->first;
- rcu_assign_pointer(hlist_first_rcu(h), n);
- if (first)
- first->pprev = &n->next;
-}
-
-/**
- * hlist_add_before_rcu
- * @n: the new element to add to the hash list.
- * @next: the existing element to add the new element before.
- *
- * Description:
- * Adds the specified element to the specified hlist
- * before the specified node while permitting racing traversals.
- *
- * The caller must take whatever precautions are necessary
- * (such as holding appropriate locks) to avoid racing
- * with another list-mutation primitive, such as hlist_add_head_rcu()
- * or hlist_del_rcu(), running on this same list.
- * However, it is perfectly legal to run concurrently with
- * the _rcu list-traversal primitives, such as
- * hlist_for_each_entry_rcu(), used to prevent memory-consistency
- * problems on Alpha CPUs.
- */
-static inline void hlist_add_before_rcu(struct hlist_node *n,
- struct hlist_node *next)
-{
- n->pprev = next->pprev;
- n->next = next;
- rcu_assign_pointer(hlist_pprev_rcu(n), n);
- next->pprev = &n->next;
-}
-
-/**
- * hlist_add_after_rcu
- * @prev: the existing element to add the new element after.
- * @n: the new element to add to the hash list.
- *
- * Description:
- * Adds the specified element to the specified hlist
- * after the specified node while permitting racing traversals.
- *
- * The caller must take whatever precautions are necessary
- * (such as holding appropriate locks) to avoid racing
- * with another list-mutation primitive, such as hlist_add_head_rcu()
- * or hlist_del_rcu(), running on this same list.
- * However, it is perfectly legal to run concurrently with
- * the _rcu list-traversal primitives, such as
- * hlist_for_each_entry_rcu(), used to prevent memory-consistency
- * problems on Alpha CPUs.
- */
-static inline void hlist_add_after_rcu(struct hlist_node *prev,
- struct hlist_node *n)
-{
- n->next = prev->next;
- n->pprev = &prev->next;
- rcu_assign_pointer(hlist_next_rcu(prev), n);
- if (n->next)
- n->next->pprev = &n->next;
-}
-
-#define __hlist_for_each_rcu(pos, head) \
- for (pos = rcu_dereference(hlist_first_rcu(head)); \
- pos; \
- pos = rcu_dereference(hlist_next_rcu(pos)))
-
-/**
- * hlist_for_each_entry_rcu - iterate over rcu list of given type
- * @tpos: the type * to use as a loop cursor.
- * @pos: the &struct hlist_node to use as a loop cursor.
- * @head: the head for your list.
- * @member: the name of the hlist_node within the struct.
- *
- * This list-traversal primitive may safely run concurrently with
- * the _rcu list-mutation primitives such as hlist_add_head_rcu()
- * as long as the traversal is guarded by rcu_read_lock().
- */
-#define hlist_for_each_entry_rcu(tpos, pos, head, member) \
- for (pos = rcu_dereference_raw(hlist_first_rcu(head)); \
- pos && \
- ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1; }); \
- pos = rcu_dereference_raw(hlist_next_rcu(pos)))
-
-/**
- * hlist_for_each_entry_rcu_bh - iterate over rcu list of given type
- * @tpos: the type * to use as a loop cursor.
- * @pos: the &struct hlist_node to use as a loop cursor.
- * @head: the head for your list.
- * @member: the name of the hlist_node within the struct.
- *
- * This list-traversal primitive may safely run concurrently with
- * the _rcu list-mutation primitives such as hlist_add_head_rcu()
- * as long as the traversal is guarded by rcu_read_lock().
- */
-#define hlist_for_each_entry_rcu_bh(tpos, pos, head, member) \
- for (pos = rcu_dereference_bh((head)->first); \
- pos && \
- ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1; }); \
- pos = rcu_dereference_bh(pos->next))
-
-/**
- * hlist_for_each_entry_continue_rcu - iterate over a hlist continuing after current point
- * @tpos: the type * to use as a loop cursor.
- * @pos: the &struct hlist_node to use as a loop cursor.
- * @member: the name of the hlist_node within the struct.
- */
-#define hlist_for_each_entry_continue_rcu(tpos, pos, member) \
- for (pos = rcu_dereference((pos)->next); \
- pos && \
- ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1; }); \
- pos = rcu_dereference(pos->next))
-
-/**
- * hlist_for_each_entry_continue_rcu_bh - iterate over a hlist continuing after current point
- * @tpos: the type * to use as a loop cursor.
- * @pos: the &struct hlist_node to use as a loop cursor.
- * @member: the name of the hlist_node within the struct.
- */
-#define hlist_for_each_entry_continue_rcu_bh(tpos, pos, member) \
- for (pos = rcu_dereference_bh((pos)->next); \
- pos && \
- ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1; }); \
- pos = rcu_dereference_bh(pos->next))
-
-
-#endif /* __KERNEL__ */
-#endif
diff --git a/ANDROID_3.4.5/include/linux/rculist_bl.h b/ANDROID_3.4.5/include/linux/rculist_bl.h
deleted file mode 100644
index cf1244fb..00000000
--- a/ANDROID_3.4.5/include/linux/rculist_bl.h
+++ /dev/null
@@ -1,128 +0,0 @@
-#ifndef _LINUX_RCULIST_BL_H
-#define _LINUX_RCULIST_BL_H
-
-/*
- * RCU-protected bl list version. See include/linux/list_bl.h.
- */
-#include <linux/list_bl.h>
-#include <linux/rcupdate.h>
-
-static inline void hlist_bl_set_first_rcu(struct hlist_bl_head *h,
- struct hlist_bl_node *n)
-{
- LIST_BL_BUG_ON((unsigned long)n & LIST_BL_LOCKMASK);
- LIST_BL_BUG_ON(((unsigned long)h->first & LIST_BL_LOCKMASK) !=
- LIST_BL_LOCKMASK);
- rcu_assign_pointer(h->first,
- (struct hlist_bl_node *)((unsigned long)n | LIST_BL_LOCKMASK));
-}
-
-static inline struct hlist_bl_node *hlist_bl_first_rcu(struct hlist_bl_head *h)
-{
- return (struct hlist_bl_node *)
- ((unsigned long)rcu_dereference(h->first) & ~LIST_BL_LOCKMASK);
-}
-
-/**
- * hlist_bl_del_init_rcu - deletes entry from hash list with re-initialization
- * @n: the element to delete from the hash list.
- *
- * Note: hlist_bl_unhashed() on the node returns true after this. It is
- * useful for RCU based read lockfree traversal if the writer side
- * must know if the list entry is still hashed or already unhashed.
- *
- * In particular, it means that we can not poison the forward pointers
- * that may still be used for walking the hash list and we can only
- * zero the pprev pointer so list_unhashed() will return true after
- * this.
- *
- * The caller must take whatever precautions are necessary (such as
- * holding appropriate locks) to avoid racing with another
- * list-mutation primitive, such as hlist_bl_add_head_rcu() or
- * hlist_bl_del_rcu(), running on this same list. However, it is
- * perfectly legal to run concurrently with the _rcu list-traversal
- * primitives, such as hlist_bl_for_each_entry_rcu().
- */
-static inline void hlist_bl_del_init_rcu(struct hlist_bl_node *n)
-{
- if (!hlist_bl_unhashed(n)) {
- __hlist_bl_del(n);
- n->pprev = NULL;
- }
-}
-
-/**
- * hlist_bl_del_rcu - deletes entry from hash list without re-initialization
- * @n: the element to delete from the hash list.
- *
- * Note: hlist_bl_unhashed() on entry does not return true after this,
- * the entry is in an undefined state. It is useful for RCU based
- * lockfree traversal.
- *
- * In particular, it means that we can not poison the forward
- * pointers that may still be used for walking the hash list.
- *
- * The caller must take whatever precautions are necessary
- * (such as holding appropriate locks) to avoid racing
- * with another list-mutation primitive, such as hlist_bl_add_head_rcu()
- * or hlist_bl_del_rcu(), running on this same list.
- * However, it is perfectly legal to run concurrently with
- * the _rcu list-traversal primitives, such as
- * hlist_bl_for_each_entry().
- */
-static inline void hlist_bl_del_rcu(struct hlist_bl_node *n)
-{
- __hlist_bl_del(n);
- n->pprev = LIST_POISON2;
-}
-
-/**
- * hlist_bl_add_head_rcu
- * @n: the element to add to the hash list.
- * @h: the list to add to.
- *
- * Description:
- * Adds the specified element to the specified hlist_bl,
- * while permitting racing traversals.
- *
- * The caller must take whatever precautions are necessary
- * (such as holding appropriate locks) to avoid racing
- * with another list-mutation primitive, such as hlist_bl_add_head_rcu()
- * or hlist_bl_del_rcu(), running on this same list.
- * However, it is perfectly legal to run concurrently with
- * the _rcu list-traversal primitives, such as
- * hlist_bl_for_each_entry_rcu(), used to prevent memory-consistency
- * problems on Alpha CPUs. Regardless of the type of CPU, the
- * list-traversal primitive must be guarded by rcu_read_lock().
- */
-static inline void hlist_bl_add_head_rcu(struct hlist_bl_node *n,
- struct hlist_bl_head *h)
-{
- struct hlist_bl_node *first;
-
- /* don't need hlist_bl_first_rcu because we're under lock */
- first = hlist_bl_first(h);
-
- n->next = first;
- if (first)
- first->pprev = &n->next;
- n->pprev = &h->first;
-
- /* need _rcu because we can have concurrent lock free readers */
- hlist_bl_set_first_rcu(h, n);
-}
-/**
- * hlist_bl_for_each_entry_rcu - iterate over rcu list of given type
- * @tpos: the type * to use as a loop cursor.
- * @pos: the &struct hlist_bl_node to use as a loop cursor.
- * @head: the head for your list.
- * @member: the name of the hlist_bl_node within the struct.
- *
- */
-#define hlist_bl_for_each_entry_rcu(tpos, pos, head, member) \
- for (pos = hlist_bl_first_rcu(head); \
- pos && \
- ({ tpos = hlist_bl_entry(pos, typeof(*tpos), member); 1; }); \
- pos = rcu_dereference_raw(pos->next))
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/rculist_nulls.h b/ANDROID_3.4.5/include/linux/rculist_nulls.h
deleted file mode 100644
index 2ae13714..00000000
--- a/ANDROID_3.4.5/include/linux/rculist_nulls.h
+++ /dev/null
@@ -1,116 +0,0 @@
-#ifndef _LINUX_RCULIST_NULLS_H
-#define _LINUX_RCULIST_NULLS_H
-
-#ifdef __KERNEL__
-
-/*
- * RCU-protected list version
- */
-#include <linux/list_nulls.h>
-#include <linux/rcupdate.h>
-
-/**
- * hlist_nulls_del_init_rcu - deletes entry from hash list with re-initialization
- * @n: the element to delete from the hash list.
- *
- * Note: hlist_nulls_unhashed() on the node return true after this. It is
- * useful for RCU based read lockfree traversal if the writer side
- * must know if the list entry is still hashed or already unhashed.
- *
- * In particular, it means that we can not poison the forward pointers
- * that may still be used for walking the hash list and we can only
- * zero the pprev pointer so list_unhashed() will return true after
- * this.
- *
- * The caller must take whatever precautions are necessary (such as
- * holding appropriate locks) to avoid racing with another
- * list-mutation primitive, such as hlist_nulls_add_head_rcu() or
- * hlist_nulls_del_rcu(), running on this same list. However, it is
- * perfectly legal to run concurrently with the _rcu list-traversal
- * primitives, such as hlist_nulls_for_each_entry_rcu().
- */
-static inline void hlist_nulls_del_init_rcu(struct hlist_nulls_node *n)
-{
- if (!hlist_nulls_unhashed(n)) {
- __hlist_nulls_del(n);
- n->pprev = NULL;
- }
-}
-
-#define hlist_nulls_first_rcu(head) \
- (*((struct hlist_nulls_node __rcu __force **)&(head)->first))
-
-#define hlist_nulls_next_rcu(node) \
- (*((struct hlist_nulls_node __rcu __force **)&(node)->next))
-
-/**
- * hlist_nulls_del_rcu - deletes entry from hash list without re-initialization
- * @n: the element to delete from the hash list.
- *
- * Note: hlist_nulls_unhashed() on entry does not return true after this,
- * the entry is in an undefined state. It is useful for RCU based
- * lockfree traversal.
- *
- * In particular, it means that we can not poison the forward
- * pointers that may still be used for walking the hash list.
- *
- * The caller must take whatever precautions are necessary
- * (such as holding appropriate locks) to avoid racing
- * with another list-mutation primitive, such as hlist_nulls_add_head_rcu()
- * or hlist_nulls_del_rcu(), running on this same list.
- * However, it is perfectly legal to run concurrently with
- * the _rcu list-traversal primitives, such as
- * hlist_nulls_for_each_entry().
- */
-static inline void hlist_nulls_del_rcu(struct hlist_nulls_node *n)
-{
- __hlist_nulls_del(n);
- n->pprev = LIST_POISON2;
-}
-
-/**
- * hlist_nulls_add_head_rcu
- * @n: the element to add to the hash list.
- * @h: the list to add to.
- *
- * Description:
- * Adds the specified element to the specified hlist_nulls,
- * while permitting racing traversals.
- *
- * The caller must take whatever precautions are necessary
- * (such as holding appropriate locks) to avoid racing
- * with another list-mutation primitive, such as hlist_nulls_add_head_rcu()
- * or hlist_nulls_del_rcu(), running on this same list.
- * However, it is perfectly legal to run concurrently with
- * the _rcu list-traversal primitives, such as
- * hlist_nulls_for_each_entry_rcu(), used to prevent memory-consistency
- * problems on Alpha CPUs. Regardless of the type of CPU, the
- * list-traversal primitive must be guarded by rcu_read_lock().
- */
-static inline void hlist_nulls_add_head_rcu(struct hlist_nulls_node *n,
- struct hlist_nulls_head *h)
-{
- struct hlist_nulls_node *first = h->first;
-
- n->next = first;
- n->pprev = &h->first;
- rcu_assign_pointer(hlist_nulls_first_rcu(h), n);
- if (!is_a_nulls(first))
- first->pprev = &n->next;
-}
-/**
- * hlist_nulls_for_each_entry_rcu - iterate over rcu list of given type
- * @tpos: the type * to use as a loop cursor.
- * @pos: the &struct hlist_nulls_node to use as a loop cursor.
- * @head: the head for your list.
- * @member: the name of the hlist_nulls_node within the struct.
- *
- */
-#define hlist_nulls_for_each_entry_rcu(tpos, pos, head, member) \
- for (pos = rcu_dereference_raw(hlist_nulls_first_rcu(head)); \
- (!is_a_nulls(pos)) && \
- ({ tpos = hlist_nulls_entry(pos, typeof(*tpos), member); 1; }); \
- pos = rcu_dereference_raw(hlist_nulls_next_rcu(pos)))
-
-#endif
-#endif
diff --git a/ANDROID_3.4.5/include/linux/rcupdate.h b/ANDROID_3.4.5/include/linux/rcupdate.h
deleted file mode 100644
index 20fb776a..00000000
--- a/ANDROID_3.4.5/include/linux/rcupdate.h
+++ /dev/null
@@ -1,951 +0,0 @@
-/*
- * Read-Copy Update mechanism for mutual exclusion
- *
- * 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.
- *
- * Copyright IBM Corporation, 2001
- *
- * Author: Dipankar Sarma <dipankar@in.ibm.com>
- *
- * Based on the original work by Paul McKenney <paulmck@us.ibm.com>
- * and inputs from Rusty Russell, Andrea Arcangeli and Andi Kleen.
- * Papers:
- * http://www.rdrop.com/users/paulmck/paper/rclockpdcsproof.pdf
- * http://lse.sourceforge.net/locking/rclock_OLS.2001.05.01c.sc.pdf (OLS2001)
- *
- * For detailed explanation of Read-Copy Update mechanism see -
- * http://lse.sourceforge.net/locking/rcupdate.html
- *
- */
-
-#ifndef __LINUX_RCUPDATE_H
-#define __LINUX_RCUPDATE_H
-
-#include <linux/types.h>
-#include <linux/cache.h>
-#include <linux/spinlock.h>
-#include <linux/threads.h>
-#include <linux/cpumask.h>
-#include <linux/seqlock.h>
-#include <linux/lockdep.h>
-#include <linux/completion.h>
-#include <linux/debugobjects.h>
-#include <linux/bug.h>
-#include <linux/compiler.h>
-
-#ifdef CONFIG_RCU_TORTURE_TEST
-extern int rcutorture_runnable; /* for sysctl */
-#endif /* #ifdef CONFIG_RCU_TORTURE_TEST */
-
-#if defined(CONFIG_TREE_RCU) || defined(CONFIG_TREE_PREEMPT_RCU)
-extern void rcutorture_record_test_transition(void);
-extern void rcutorture_record_progress(unsigned long vernum);
-extern void do_trace_rcu_torture_read(char *rcutorturename,
- struct rcu_head *rhp);
-#else
-static inline void rcutorture_record_test_transition(void)
-{
-}
-static inline void rcutorture_record_progress(unsigned long vernum)
-{
-}
-#ifdef CONFIG_RCU_TRACE
-extern void do_trace_rcu_torture_read(char *rcutorturename,
- struct rcu_head *rhp);
-#else
-#define do_trace_rcu_torture_read(rcutorturename, rhp) do { } while (0)
-#endif
-#endif
-
-#define UINT_CMP_GE(a, b) (UINT_MAX / 2 >= (a) - (b))
-#define UINT_CMP_LT(a, b) (UINT_MAX / 2 < (a) - (b))
-#define ULONG_CMP_GE(a, b) (ULONG_MAX / 2 >= (a) - (b))
-#define ULONG_CMP_LT(a, b) (ULONG_MAX / 2 < (a) - (b))
-
-/* Exported common interfaces */
-
-#ifdef CONFIG_PREEMPT_RCU
-
-/**
- * call_rcu() - Queue an RCU callback for invocation after a grace period.
- * @head: structure to be used for queueing the RCU updates.
- * @func: actual callback function to be invoked after the grace period
- *
- * The callback function will be invoked some time after a full grace
- * period elapses, in other words after all pre-existing RCU read-side
- * critical sections have completed. However, the callback function
- * might well execute concurrently with RCU read-side critical sections
- * that started after call_rcu() was invoked. RCU read-side critical
- * sections are delimited by rcu_read_lock() and rcu_read_unlock(),
- * and may be nested.
- */
-extern void call_rcu(struct rcu_head *head,
- void (*func)(struct rcu_head *head));
-
-#else /* #ifdef CONFIG_PREEMPT_RCU */
-
-/* In classic RCU, call_rcu() is just call_rcu_sched(). */
-#define call_rcu call_rcu_sched
-
-#endif /* #else #ifdef CONFIG_PREEMPT_RCU */
-
-/**
- * call_rcu_bh() - Queue an RCU for invocation after a quicker grace period.
- * @head: structure to be used for queueing the RCU updates.
- * @func: actual callback function to be invoked after the grace period
- *
- * The callback function will be invoked some time after a full grace
- * period elapses, in other words after all currently executing RCU
- * read-side critical sections have completed. call_rcu_bh() assumes
- * that the read-side critical sections end on completion of a softirq
- * handler. This means that read-side critical sections in process
- * context must not be interrupted by softirqs. This interface is to be
- * used when most of the read-side critical sections are in softirq context.
- * RCU read-side critical sections are delimited by :
- * - rcu_read_lock() and rcu_read_unlock(), if in interrupt context.
- * OR
- * - rcu_read_lock_bh() and rcu_read_unlock_bh(), if in process context.
- * These may be nested.
- */
-extern void call_rcu_bh(struct rcu_head *head,
- void (*func)(struct rcu_head *head));
-
-/**
- * call_rcu_sched() - Queue an RCU for invocation after sched grace period.
- * @head: structure to be used for queueing the RCU updates.
- * @func: actual callback function to be invoked after the grace period
- *
- * The callback function will be invoked some time after a full grace
- * period elapses, in other words after all currently executing RCU
- * read-side critical sections have completed. call_rcu_sched() assumes
- * that the read-side critical sections end on enabling of preemption
- * or on voluntary preemption.
- * RCU read-side critical sections are delimited by :
- * - rcu_read_lock_sched() and rcu_read_unlock_sched(),
- * OR
- * anything that disables preemption.
- * These may be nested.
- */
-extern void call_rcu_sched(struct rcu_head *head,
- void (*func)(struct rcu_head *rcu));
-
-extern void synchronize_sched(void);
-
-#ifdef CONFIG_PREEMPT_RCU
-
-extern void __rcu_read_lock(void);
-extern void __rcu_read_unlock(void);
-void synchronize_rcu(void);
-
-/*
- * Defined as a macro as it is a very low level header included from
- * areas that don't even know about current. This gives the rcu_read_lock()
- * nesting depth, but makes sense only if CONFIG_PREEMPT_RCU -- in other
- * types of kernel builds, the rcu_read_lock() nesting depth is unknowable.
- */
-#define rcu_preempt_depth() (current->rcu_read_lock_nesting)
-
-#else /* #ifdef CONFIG_PREEMPT_RCU */
-
-static inline void __rcu_read_lock(void)
-{
- preempt_disable();
-}
-
-static inline void __rcu_read_unlock(void)
-{
- preempt_enable();
-}
-
-static inline void synchronize_rcu(void)
-{
- synchronize_sched();
-}
-
-static inline int rcu_preempt_depth(void)
-{
- return 0;
-}
-
-#endif /* #else #ifdef CONFIG_PREEMPT_RCU */
-
-/* Internal to kernel */
-extern void rcu_sched_qs(int cpu);
-extern void rcu_bh_qs(int cpu);
-extern void rcu_check_callbacks(int cpu, int user);
-struct notifier_block;
-extern void rcu_idle_enter(void);
-extern void rcu_idle_exit(void);
-extern void rcu_irq_enter(void);
-extern void rcu_irq_exit(void);
-
-/**
- * RCU_NONIDLE - Indicate idle-loop code that needs RCU readers
- * @a: Code that RCU needs to pay attention to.
- *
- * RCU, RCU-bh, and RCU-sched read-side critical sections are forbidden
- * in the inner idle loop, that is, between the rcu_idle_enter() and
- * the rcu_idle_exit() -- RCU will happily ignore any such read-side
- * critical sections. However, things like powertop need tracepoints
- * in the inner idle loop.
- *
- * This macro provides the way out: RCU_NONIDLE(do_something_with_RCU())
- * will tell RCU that it needs to pay attending, invoke its argument
- * (in this example, a call to the do_something_with_RCU() function),
- * and then tell RCU to go back to ignoring this CPU. It is permissible
- * to nest RCU_NONIDLE() wrappers, but the nesting level is currently
- * quite limited. If deeper nesting is required, it will be necessary
- * to adjust DYNTICK_TASK_NESTING_VALUE accordingly.
- *
- * This macro may be used from process-level code only.
- */
-#define RCU_NONIDLE(a) \
- do { \
- rcu_idle_exit(); \
- do { a; } while (0); \
- rcu_idle_enter(); \
- } while (0)
-
-/*
- * Infrastructure to implement the synchronize_() primitives in
- * TREE_RCU and rcu_barrier_() primitives in TINY_RCU.
- */
-
-typedef void call_rcu_func_t(struct rcu_head *head,
- void (*func)(struct rcu_head *head));
-void wait_rcu_gp(call_rcu_func_t crf);
-
-#if defined(CONFIG_TREE_RCU) || defined(CONFIG_TREE_PREEMPT_RCU)
-#include <linux/rcutree.h>
-#elif defined(CONFIG_TINY_RCU) || defined(CONFIG_TINY_PREEMPT_RCU)
-#include <linux/rcutiny.h>
-#else
-#error "Unknown RCU implementation specified to kernel configuration"
-#endif
-
-/*
- * init_rcu_head_on_stack()/destroy_rcu_head_on_stack() are needed for dynamic
- * initialization and destruction of rcu_head on the stack. rcu_head structures
- * allocated dynamically in the heap or defined statically don't need any
- * initialization.
- */
-#ifdef CONFIG_DEBUG_OBJECTS_RCU_HEAD
-extern void init_rcu_head_on_stack(struct rcu_head *head);
-extern void destroy_rcu_head_on_stack(struct rcu_head *head);
-#else /* !CONFIG_DEBUG_OBJECTS_RCU_HEAD */
-static inline void init_rcu_head_on_stack(struct rcu_head *head)
-{
-}
-
-static inline void destroy_rcu_head_on_stack(struct rcu_head *head)
-{
-}
-#endif /* #else !CONFIG_DEBUG_OBJECTS_RCU_HEAD */
-
-#if defined(CONFIG_HOTPLUG_CPU) && defined(CONFIG_PROVE_RCU)
-bool rcu_lockdep_current_cpu_online(void);
-#else /* #if defined(CONFIG_HOTPLUG_CPU) && defined(CONFIG_PROVE_RCU) */
-static inline bool rcu_lockdep_current_cpu_online(void)
-{
- return 1;
-}
-#endif /* #else #if defined(CONFIG_HOTPLUG_CPU) && defined(CONFIG_PROVE_RCU) */
-
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
-
-#ifdef CONFIG_PROVE_RCU
-extern int rcu_is_cpu_idle(void);
-#else /* !CONFIG_PROVE_RCU */
-static inline int rcu_is_cpu_idle(void)
-{
- return 0;
-}
-#endif /* else !CONFIG_PROVE_RCU */
-
-static inline void rcu_lock_acquire(struct lockdep_map *map)
-{
- lock_acquire(map, 0, 0, 2, 1, NULL, _THIS_IP_);
-}
-
-static inline void rcu_lock_release(struct lockdep_map *map)
-{
- lock_release(map, 1, _THIS_IP_);
-}
-
-extern struct lockdep_map rcu_lock_map;
-extern struct lockdep_map rcu_bh_lock_map;
-extern struct lockdep_map rcu_sched_lock_map;
-extern int debug_lockdep_rcu_enabled(void);
-
-/**
- * rcu_read_lock_held() - might we be in RCU read-side critical section?
- *
- * If CONFIG_DEBUG_LOCK_ALLOC is selected, returns nonzero iff in an RCU
- * read-side critical section. In absence of CONFIG_DEBUG_LOCK_ALLOC,
- * this assumes we are in an RCU read-side critical section unless it can
- * prove otherwise. This is useful for debug checks in functions that
- * require that they be called within an RCU read-side critical section.
- *
- * Checks debug_lockdep_rcu_enabled() to prevent false positives during boot
- * and while lockdep is disabled.
- *
- * Note that rcu_read_lock() and the matching rcu_read_unlock() must
- * occur in the same context, for example, it is illegal to invoke
- * rcu_read_unlock() in process context if the matching rcu_read_lock()
- * was invoked from within an irq handler.
- *
- * Note that rcu_read_lock() is disallowed if the CPU is either idle or
- * offline from an RCU perspective, so check for those as well.
- */
-static inline int rcu_read_lock_held(void)
-{
- if (!debug_lockdep_rcu_enabled())
- return 1;
- if (rcu_is_cpu_idle())
- return 0;
- if (!rcu_lockdep_current_cpu_online())
- return 0;
- return lock_is_held(&rcu_lock_map);
-}
-
-/*
- * rcu_read_lock_bh_held() is defined out of line to avoid #include-file
- * hell.
- */
-extern int rcu_read_lock_bh_held(void);
-
-/**
- * rcu_read_lock_sched_held() - might we be in RCU-sched read-side critical section?
- *
- * If CONFIG_DEBUG_LOCK_ALLOC is selected, returns nonzero iff in an
- * RCU-sched read-side critical section. In absence of
- * CONFIG_DEBUG_LOCK_ALLOC, this assumes we are in an RCU-sched read-side
- * critical section unless it can prove otherwise. Note that disabling
- * of preemption (including disabling irqs) counts as an RCU-sched
- * read-side critical section. This is useful for debug checks in functions
- * that required that they be called within an RCU-sched read-side
- * critical section.
- *
- * Check debug_lockdep_rcu_enabled() to prevent false positives during boot
- * and while lockdep is disabled.
- *
- * Note that if the CPU is in the idle loop from an RCU point of
- * view (ie: that we are in the section between rcu_idle_enter() and
- * rcu_idle_exit()) then rcu_read_lock_held() returns false even if the CPU
- * did an rcu_read_lock(). The reason for this is that RCU ignores CPUs
- * that are in such a section, considering these as in extended quiescent
- * state, so such a CPU is effectively never in an RCU read-side critical
- * section regardless of what RCU primitives it invokes. This state of
- * affairs is required --- we need to keep an RCU-free window in idle
- * where the CPU may possibly enter into low power mode. This way we can
- * notice an extended quiescent state to other CPUs that started a grace
- * period. Otherwise we would delay any grace period as long as we run in
- * the idle task.
- *
- * Similarly, we avoid claiming an SRCU read lock held if the current
- * CPU is offline.
- */
-#ifdef CONFIG_PREEMPT_COUNT
-static inline int rcu_read_lock_sched_held(void)
-{
- int lockdep_opinion = 0;
-
- if (!debug_lockdep_rcu_enabled())
- return 1;
- if (rcu_is_cpu_idle())
- return 0;
- if (!rcu_lockdep_current_cpu_online())
- return 0;
- if (debug_locks)
- lockdep_opinion = lock_is_held(&rcu_sched_lock_map);
- return lockdep_opinion || preempt_count() != 0 || irqs_disabled();
-}
-#else /* #ifdef CONFIG_PREEMPT_COUNT */
-static inline int rcu_read_lock_sched_held(void)
-{
- return 1;
-}
-#endif /* #else #ifdef CONFIG_PREEMPT_COUNT */
-
-#else /* #ifdef CONFIG_DEBUG_LOCK_ALLOC */
-
-# define rcu_lock_acquire(a) do { } while (0)
-# define rcu_lock_release(a) do { } while (0)
-
-static inline int rcu_read_lock_held(void)
-{
- return 1;
-}
-
-static inline int rcu_read_lock_bh_held(void)
-{
- return 1;
-}
-
-#ifdef CONFIG_PREEMPT_COUNT
-static inline int rcu_read_lock_sched_held(void)
-{
- return preempt_count() != 0 || irqs_disabled();
-}
-#else /* #ifdef CONFIG_PREEMPT_COUNT */
-static inline int rcu_read_lock_sched_held(void)
-{
- return 1;
-}
-#endif /* #else #ifdef CONFIG_PREEMPT_COUNT */
-
-#endif /* #else #ifdef CONFIG_DEBUG_LOCK_ALLOC */
-
-#ifdef CONFIG_PROVE_RCU
-
-extern int rcu_my_thread_group_empty(void);
-
-/**
- * rcu_lockdep_assert - emit lockdep splat if specified condition not met
- * @c: condition to check
- * @s: informative message
- */
-#define rcu_lockdep_assert(c, s) \
- do { \
- static bool __section(.data.unlikely) __warned; \
- if (debug_lockdep_rcu_enabled() && !__warned && !(c)) { \
- __warned = true; \
- lockdep_rcu_suspicious(__FILE__, __LINE__, s); \
- } \
- } while (0)
-
-#if defined(CONFIG_PROVE_RCU) && !defined(CONFIG_PREEMPT_RCU)
-static inline void rcu_preempt_sleep_check(void)
-{
- rcu_lockdep_assert(!lock_is_held(&rcu_lock_map),
- "Illegal context switch in RCU read-side "
- "critical section");
-}
-#else /* #ifdef CONFIG_PROVE_RCU */
-static inline void rcu_preempt_sleep_check(void)
-{
-}
-#endif /* #else #ifdef CONFIG_PROVE_RCU */
-
-#define rcu_sleep_check() \
- do { \
- rcu_preempt_sleep_check(); \
- rcu_lockdep_assert(!lock_is_held(&rcu_bh_lock_map), \
- "Illegal context switch in RCU-bh" \
- " read-side critical section"); \
- rcu_lockdep_assert(!lock_is_held(&rcu_sched_lock_map), \
- "Illegal context switch in RCU-sched"\
- " read-side critical section"); \
- } while (0)
-
-#else /* #ifdef CONFIG_PROVE_RCU */
-
-#define rcu_lockdep_assert(c, s) do { } while (0)
-#define rcu_sleep_check() do { } while (0)
-
-#endif /* #else #ifdef CONFIG_PROVE_RCU */
-
-/*
- * Helper functions for rcu_dereference_check(), rcu_dereference_protected()
- * and rcu_assign_pointer(). Some of these could be folded into their
- * callers, but they are left separate in order to ease introduction of
- * multiple flavors of pointers to match the multiple flavors of RCU
- * (e.g., __rcu_bh, * __rcu_sched, and __srcu), should this make sense in
- * the future.
- */
-
-#ifdef __CHECKER__
-#define rcu_dereference_sparse(p, space) \
- ((void)(((typeof(*p) space *)p) == p))
-#else /* #ifdef __CHECKER__ */
-#define rcu_dereference_sparse(p, space)
-#endif /* #else #ifdef __CHECKER__ */
-
-#define __rcu_access_pointer(p, space) \
- ({ \
- typeof(*p) *_________p1 = (typeof(*p)*__force )ACCESS_ONCE(p); \
- rcu_dereference_sparse(p, space); \
- ((typeof(*p) __force __kernel *)(_________p1)); \
- })
-#define __rcu_dereference_check(p, c, space) \
- ({ \
- typeof(*p) *_________p1 = (typeof(*p)*__force )ACCESS_ONCE(p); \
- rcu_lockdep_assert(c, "suspicious rcu_dereference_check()" \
- " usage"); \
- rcu_dereference_sparse(p, space); \
- smp_read_barrier_depends(); \
- ((typeof(*p) __force __kernel *)(_________p1)); \
- })
-#define __rcu_dereference_protected(p, c, space) \
- ({ \
- rcu_lockdep_assert(c, "suspicious rcu_dereference_protected()" \
- " usage"); \
- rcu_dereference_sparse(p, space); \
- ((typeof(*p) __force __kernel *)(p)); \
- })
-
-#define __rcu_access_index(p, space) \
- ({ \
- typeof(p) _________p1 = ACCESS_ONCE(p); \
- rcu_dereference_sparse(p, space); \
- (_________p1); \
- })
-#define __rcu_dereference_index_check(p, c) \
- ({ \
- typeof(p) _________p1 = ACCESS_ONCE(p); \
- rcu_lockdep_assert(c, \
- "suspicious rcu_dereference_index_check()" \
- " usage"); \
- smp_read_barrier_depends(); \
- (_________p1); \
- })
-#define __rcu_assign_pointer(p, v, space) \
- ({ \
- smp_wmb(); \
- (p) = (typeof(*v) __force space *)(v); \
- })
-
-
-/**
- * rcu_access_pointer() - fetch RCU pointer with no dereferencing
- * @p: The pointer to read
- *
- * Return the value of the specified RCU-protected pointer, but omit the
- * smp_read_barrier_depends() and keep the ACCESS_ONCE(). This is useful
- * when the value of this pointer is accessed, but the pointer is not
- * dereferenced, for example, when testing an RCU-protected pointer against
- * NULL. Although rcu_access_pointer() may also be used in cases where
- * update-side locks prevent the value of the pointer from changing, you
- * should instead use rcu_dereference_protected() for this use case.
- *
- * It is also permissible to use rcu_access_pointer() when read-side
- * access to the pointer was removed at least one grace period ago, as
- * is the case in the context of the RCU callback that is freeing up
- * the data, or after a synchronize_rcu() returns. This can be useful
- * when tearing down multi-linked structures after a grace period
- * has elapsed.
- */
-#define rcu_access_pointer(p) __rcu_access_pointer((p), __rcu)
-
-/**
- * rcu_dereference_check() - rcu_dereference with debug checking
- * @p: The pointer to read, prior to dereferencing
- * @c: The conditions under which the dereference will take place
- *
- * Do an rcu_dereference(), but check that the conditions under which the
- * dereference will take place are correct. Typically the conditions
- * indicate the various locking conditions that should be held at that
- * point. The check should return true if the conditions are satisfied.
- * An implicit check for being in an RCU read-side critical section
- * (rcu_read_lock()) is included.
- *
- * For example:
- *
- * bar = rcu_dereference_check(foo->bar, lockdep_is_held(&foo->lock));
- *
- * could be used to indicate to lockdep that foo->bar may only be dereferenced
- * if either rcu_read_lock() is held, or that the lock required to replace
- * the bar struct at foo->bar is held.
- *
- * Note that the list of conditions may also include indications of when a lock
- * need not be held, for example during initialisation or destruction of the
- * target struct:
- *
- * bar = rcu_dereference_check(foo->bar, lockdep_is_held(&foo->lock) ||
- * atomic_read(&foo->usage) == 0);
- *
- * Inserts memory barriers on architectures that require them
- * (currently only the Alpha), prevents the compiler from refetching
- * (and from merging fetches), and, more importantly, documents exactly
- * which pointers are protected by RCU and checks that the pointer is
- * annotated as __rcu.
- */
-#define rcu_dereference_check(p, c) \
- __rcu_dereference_check((p), rcu_read_lock_held() || (c), __rcu)
-
-/**
- * rcu_dereference_bh_check() - rcu_dereference_bh with debug checking
- * @p: The pointer to read, prior to dereferencing
- * @c: The conditions under which the dereference will take place
- *
- * This is the RCU-bh counterpart to rcu_dereference_check().
- */
-#define rcu_dereference_bh_check(p, c) \
- __rcu_dereference_check((p), rcu_read_lock_bh_held() || (c), __rcu)
-
-/**
- * rcu_dereference_sched_check() - rcu_dereference_sched with debug checking
- * @p: The pointer to read, prior to dereferencing
- * @c: The conditions under which the dereference will take place
- *
- * This is the RCU-sched counterpart to rcu_dereference_check().
- */
-#define rcu_dereference_sched_check(p, c) \
- __rcu_dereference_check((p), rcu_read_lock_sched_held() || (c), \
- __rcu)
-
-#define rcu_dereference_raw(p) rcu_dereference_check(p, 1) /*@@@ needed? @@@*/
-
-/**
- * rcu_access_index() - fetch RCU index with no dereferencing
- * @p: The index to read
- *
- * Return the value of the specified RCU-protected index, but omit the
- * smp_read_barrier_depends() and keep the ACCESS_ONCE(). This is useful
- * when the value of this index is accessed, but the index is not
- * dereferenced, for example, when testing an RCU-protected index against
- * -1. Although rcu_access_index() may also be used in cases where
- * update-side locks prevent the value of the index from changing, you
- * should instead use rcu_dereference_index_protected() for this use case.
- */
-#define rcu_access_index(p) __rcu_access_index((p), __rcu)
-
-/**
- * rcu_dereference_index_check() - rcu_dereference for indices with debug checking
- * @p: The pointer to read, prior to dereferencing
- * @c: The conditions under which the dereference will take place
- *
- * Similar to rcu_dereference_check(), but omits the sparse checking.
- * This allows rcu_dereference_index_check() to be used on integers,
- * which can then be used as array indices. Attempting to use
- * rcu_dereference_check() on an integer will give compiler warnings
- * because the sparse address-space mechanism relies on dereferencing
- * the RCU-protected pointer. Dereferencing integers is not something
- * that even gcc will put up with.
- *
- * Note that this function does not implicitly check for RCU read-side
- * critical sections. If this function gains lots of uses, it might
- * make sense to provide versions for each flavor of RCU, but it does
- * not make sense as of early 2010.
- */
-#define rcu_dereference_index_check(p, c) \
- __rcu_dereference_index_check((p), (c))
-
-/**
- * rcu_dereference_protected() - fetch RCU pointer when updates prevented
- * @p: The pointer to read, prior to dereferencing
- * @c: The conditions under which the dereference will take place
- *
- * Return the value of the specified RCU-protected pointer, but omit
- * both the smp_read_barrier_depends() and the ACCESS_ONCE(). This
- * is useful in cases where update-side locks prevent the value of the
- * pointer from changing. Please note that this primitive does -not-
- * prevent the compiler from repeating this reference or combining it
- * with other references, so it should not be used without protection
- * of appropriate locks.
- *
- * This function is only for update-side use. Using this function
- * when protected only by rcu_read_lock() will result in infrequent
- * but very ugly failures.
- */
-#define rcu_dereference_protected(p, c) \
- __rcu_dereference_protected((p), (c), __rcu)
-
-
-/**
- * rcu_dereference() - fetch RCU-protected pointer for dereferencing
- * @p: The pointer to read, prior to dereferencing
- *
- * This is a simple wrapper around rcu_dereference_check().
- */
-#define rcu_dereference(p) rcu_dereference_check(p, 0)
-
-/**
- * rcu_dereference_bh() - fetch an RCU-bh-protected pointer for dereferencing
- * @p: The pointer to read, prior to dereferencing
- *
- * Makes rcu_dereference_check() do the dirty work.
- */
-#define rcu_dereference_bh(p) rcu_dereference_bh_check(p, 0)
-
-/**
- * rcu_dereference_sched() - fetch RCU-sched-protected pointer for dereferencing
- * @p: The pointer to read, prior to dereferencing
- *
- * Makes rcu_dereference_check() do the dirty work.
- */
-#define rcu_dereference_sched(p) rcu_dereference_sched_check(p, 0)
-
-/**
- * rcu_read_lock() - mark the beginning of an RCU read-side critical section
- *
- * When synchronize_rcu() is invoked on one CPU while other CPUs
- * are within RCU read-side critical sections, then the
- * synchronize_rcu() is guaranteed to block until after all the other
- * CPUs exit their critical sections. Similarly, if call_rcu() is invoked
- * on one CPU while other CPUs are within RCU read-side critical
- * sections, invocation of the corresponding RCU callback is deferred
- * until after the all the other CPUs exit their critical sections.
- *
- * Note, however, that RCU callbacks are permitted to run concurrently
- * with new RCU read-side critical sections. One way that this can happen
- * is via the following sequence of events: (1) CPU 0 enters an RCU
- * read-side critical section, (2) CPU 1 invokes call_rcu() to register
- * an RCU callback, (3) CPU 0 exits the RCU read-side critical section,
- * (4) CPU 2 enters a RCU read-side critical section, (5) the RCU
- * callback is invoked. This is legal, because the RCU read-side critical
- * section that was running concurrently with the call_rcu() (and which
- * therefore might be referencing something that the corresponding RCU
- * callback would free up) has completed before the corresponding
- * RCU callback is invoked.
- *
- * RCU read-side critical sections may be nested. Any deferred actions
- * will be deferred until the outermost RCU read-side critical section
- * completes.
- *
- * You can avoid reading and understanding the next paragraph by
- * following this rule: don't put anything in an rcu_read_lock() RCU
- * read-side critical section that would block in a !PREEMPT kernel.
- * But if you want the full story, read on!
- *
- * In non-preemptible RCU implementations (TREE_RCU and TINY_RCU), it
- * is illegal to block while in an RCU read-side critical section. In
- * preemptible RCU implementations (TREE_PREEMPT_RCU and TINY_PREEMPT_RCU)
- * in CONFIG_PREEMPT kernel builds, RCU read-side critical sections may
- * be preempted, but explicit blocking is illegal. Finally, in preemptible
- * RCU implementations in real-time (CONFIG_PREEMPT_RT) kernel builds,
- * RCU read-side critical sections may be preempted and they may also
- * block, but only when acquiring spinlocks that are subject to priority
- * inheritance.
- */
-static inline void rcu_read_lock(void)
-{
- __rcu_read_lock();
- __acquire(RCU);
- rcu_lock_acquire(&rcu_lock_map);
- rcu_lockdep_assert(!rcu_is_cpu_idle(),
- "rcu_read_lock() used illegally while idle");
-}
-
-/*
- * So where is rcu_write_lock()? It does not exist, as there is no
- * way for writers to lock out RCU readers. This is a feature, not
- * a bug -- this property is what provides RCU's performance benefits.
- * Of course, writers must coordinate with each other. The normal
- * spinlock primitives work well for this, but any other technique may be
- * used as well. RCU does not care how the writers keep out of each
- * others' way, as long as they do so.
- */
-
-/**
- * rcu_read_unlock() - marks the end of an RCU read-side critical section.
- *
- * See rcu_read_lock() for more information.
- */
-static inline void rcu_read_unlock(void)
-{
- rcu_lockdep_assert(!rcu_is_cpu_idle(),
- "rcu_read_unlock() used illegally while idle");
- rcu_lock_release(&rcu_lock_map);
- __release(RCU);
- __rcu_read_unlock();
-}
-
-/**
- * rcu_read_lock_bh() - mark the beginning of an RCU-bh critical section
- *
- * This is equivalent of rcu_read_lock(), but to be used when updates
- * are being done using call_rcu_bh() or synchronize_rcu_bh(). Since
- * both call_rcu_bh() and synchronize_rcu_bh() consider completion of a
- * softirq handler to be a quiescent state, a process in RCU read-side
- * critical section must be protected by disabling softirqs. Read-side
- * critical sections in interrupt context can use just rcu_read_lock(),
- * though this should at least be commented to avoid confusing people
- * reading the code.
- *
- * Note that rcu_read_lock_bh() and the matching rcu_read_unlock_bh()
- * must occur in the same context, for example, it is illegal to invoke
- * rcu_read_unlock_bh() from one task if the matching rcu_read_lock_bh()
- * was invoked from some other task.
- */
-static inline void rcu_read_lock_bh(void)
-{
- local_bh_disable();
- __acquire(RCU_BH);
- rcu_lock_acquire(&rcu_bh_lock_map);
- rcu_lockdep_assert(!rcu_is_cpu_idle(),
- "rcu_read_lock_bh() used illegally while idle");
-}
-
-/*
- * rcu_read_unlock_bh - marks the end of a softirq-only RCU critical section
- *
- * See rcu_read_lock_bh() for more information.
- */
-static inline void rcu_read_unlock_bh(void)
-{
- rcu_lockdep_assert(!rcu_is_cpu_idle(),
- "rcu_read_unlock_bh() used illegally while idle");
- rcu_lock_release(&rcu_bh_lock_map);
- __release(RCU_BH);
- local_bh_enable();
-}
-
-/**
- * rcu_read_lock_sched() - mark the beginning of a RCU-sched critical section
- *
- * This is equivalent of rcu_read_lock(), but to be used when updates
- * are being done using call_rcu_sched() or synchronize_rcu_sched().
- * Read-side critical sections can also be introduced by anything that
- * disables preemption, including local_irq_disable() and friends.
- *
- * Note that rcu_read_lock_sched() and the matching rcu_read_unlock_sched()
- * must occur in the same context, for example, it is illegal to invoke
- * rcu_read_unlock_sched() from process context if the matching
- * rcu_read_lock_sched() was invoked from an NMI handler.
- */
-static inline void rcu_read_lock_sched(void)
-{
- preempt_disable();
- __acquire(RCU_SCHED);
- rcu_lock_acquire(&rcu_sched_lock_map);
- rcu_lockdep_assert(!rcu_is_cpu_idle(),
- "rcu_read_lock_sched() used illegally while idle");
-}
-
-/* Used by lockdep and tracing: cannot be traced, cannot call lockdep. */
-static inline notrace void rcu_read_lock_sched_notrace(void)
-{
- preempt_disable_notrace();
- __acquire(RCU_SCHED);
-}
-
-/*
- * rcu_read_unlock_sched - marks the end of a RCU-classic critical section
- *
- * See rcu_read_lock_sched for more information.
- */
-static inline void rcu_read_unlock_sched(void)
-{
- rcu_lockdep_assert(!rcu_is_cpu_idle(),
- "rcu_read_unlock_sched() used illegally while idle");
- rcu_lock_release(&rcu_sched_lock_map);
- __release(RCU_SCHED);
- preempt_enable();
-}
-
-/* Used by lockdep and tracing: cannot be traced, cannot call lockdep. */
-static inline notrace void rcu_read_unlock_sched_notrace(void)
-{
- __release(RCU_SCHED);
- preempt_enable_notrace();
-}
-
-/**
- * rcu_assign_pointer() - assign to RCU-protected pointer
- * @p: pointer to assign to
- * @v: value to assign (publish)
- *
- * Assigns the specified value to the specified RCU-protected
- * pointer, ensuring that any concurrent RCU readers will see
- * any prior initialization. Returns the value assigned.
- *
- * Inserts memory barriers on architectures that require them
- * (which is most of them), and also prevents the compiler from
- * reordering the code that initializes the structure after the pointer
- * assignment. More importantly, this call documents which pointers
- * will be dereferenced by RCU read-side code.
- *
- * In some special cases, you may use RCU_INIT_POINTER() instead
- * of rcu_assign_pointer(). RCU_INIT_POINTER() is a bit faster due
- * to the fact that it does not constrain either the CPU or the compiler.
- * That said, using RCU_INIT_POINTER() when you should have used
- * rcu_assign_pointer() is a very bad thing that results in
- * impossible-to-diagnose memory corruption. So please be careful.
- * See the RCU_INIT_POINTER() comment header for details.
- */
-#define rcu_assign_pointer(p, v) \
- __rcu_assign_pointer((p), (v), __rcu)
-
-/**
- * RCU_INIT_POINTER() - initialize an RCU protected pointer
- *
- * Initialize an RCU-protected pointer in special cases where readers
- * do not need ordering constraints on the CPU or the compiler. These
- * special cases are:
- *
- * 1. This use of RCU_INIT_POINTER() is NULLing out the pointer -or-
- * 2. The caller has taken whatever steps are required to prevent
- * RCU readers from concurrently accessing this pointer -or-
- * 3. The referenced data structure has already been exposed to
- * readers either at compile time or via rcu_assign_pointer() -and-
- * a. You have not made -any- reader-visible changes to
- * this structure since then -or-
- * b. It is OK for readers accessing this structure from its
- * new location to see the old state of the structure. (For
- * example, the changes were to statistical counters or to
- * other state where exact synchronization is not required.)
- *
- * Failure to follow these rules governing use of RCU_INIT_POINTER() will
- * result in impossible-to-diagnose memory corruption. As in the structures
- * will look OK in crash dumps, but any concurrent RCU readers might
- * see pre-initialized values of the referenced data structure. So
- * please be very careful how you use RCU_INIT_POINTER()!!!
- *
- * If you are creating an RCU-protected linked structure that is accessed
- * by a single external-to-structure RCU-protected pointer, then you may
- * use RCU_INIT_POINTER() to initialize the internal RCU-protected
- * pointers, but you must use rcu_assign_pointer() to initialize the
- * external-to-structure pointer -after- you have completely initialized
- * the reader-accessible portions of the linked structure.
- */
-#define RCU_INIT_POINTER(p, v) \
- p = (typeof(*v) __force __rcu *)(v)
-
-static __always_inline bool __is_kfree_rcu_offset(unsigned long offset)
-{
- return offset < 4096;
-}
-
-static __always_inline
-void __kfree_rcu(struct rcu_head *head, unsigned long offset)
-{
- typedef void (*rcu_callback)(struct rcu_head *);
-
- BUILD_BUG_ON(!__builtin_constant_p(offset));
-
- /* See the kfree_rcu() header comment. */
- BUILD_BUG_ON(!__is_kfree_rcu_offset(offset));
-
- kfree_call_rcu(head, (rcu_callback)offset);
-}
-
-/**
- * kfree_rcu() - kfree an object after a grace period.
- * @ptr: pointer to kfree
- * @rcu_head: the name of the struct rcu_head within the type of @ptr.
- *
- * Many rcu callbacks functions just call kfree() on the base structure.
- * These functions are trivial, but their size adds up, and furthermore
- * when they are used in a kernel module, that module must invoke the
- * high-latency rcu_barrier() function at module-unload time.
- *
- * The kfree_rcu() function handles this issue. Rather than encoding a
- * function address in the embedded rcu_head structure, kfree_rcu() instead
- * encodes the offset of the rcu_head structure within the base structure.
- * Because the functions are not allowed in the low-order 4096 bytes of
- * kernel virtual memory, offsets up to 4095 bytes can be accommodated.
- * If the offset is larger than 4095 bytes, a compile-time error will
- * be generated in __kfree_rcu(). If this error is triggered, you can
- * either fall back to use of call_rcu() or rearrange the structure to
- * position the rcu_head structure into the first 4096 bytes.
- *
- * Note that the allowable offset might decrease in the future, for example,
- * to allow something like kmem_cache_free_rcu().
- */
-#define kfree_rcu(ptr, rcu_head) \
- __kfree_rcu(&((ptr)->rcu_head), offsetof(typeof(*(ptr)), rcu_head))
-
-#endif /* __LINUX_RCUPDATE_H */
diff --git a/ANDROID_3.4.5/include/linux/rcutiny.h b/ANDROID_3.4.5/include/linux/rcutiny.h
deleted file mode 100644
index e93df771..00000000
--- a/ANDROID_3.4.5/include/linux/rcutiny.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Read-Copy Update mechanism for mutual exclusion, the Bloatwatch edition.
- *
- * 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.
- *
- * Copyright IBM Corporation, 2008
- *
- * Author: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
- *
- * For detailed explanation of Read-Copy Update mechanism see -
- * Documentation/RCU
- */
-#ifndef __LINUX_TINY_H
-#define __LINUX_TINY_H
-
-#include <linux/cache.h>
-
-static inline void rcu_init(void)
-{
-}
-
-static inline void rcu_barrier_bh(void)
-{
- wait_rcu_gp(call_rcu_bh);
-}
-
-static inline void rcu_barrier_sched(void)
-{
- wait_rcu_gp(call_rcu_sched);
-}
-
-#ifdef CONFIG_TINY_RCU
-
-static inline void synchronize_rcu_expedited(void)
-{
- synchronize_sched(); /* Only one CPU, so pretty fast anyway!!! */
-}
-
-static inline void rcu_barrier(void)
-{
- rcu_barrier_sched(); /* Only one CPU, so only one list of callbacks! */
-}
-
-#else /* #ifdef CONFIG_TINY_RCU */
-
-void synchronize_rcu_expedited(void);
-
-static inline void rcu_barrier(void)
-{
- wait_rcu_gp(call_rcu);
-}
-
-#endif /* #else #ifdef CONFIG_TINY_RCU */
-
-static inline void synchronize_rcu_bh(void)
-{
- synchronize_sched();
-}
-
-static inline void synchronize_rcu_bh_expedited(void)
-{
- synchronize_sched();
-}
-
-static inline void synchronize_sched_expedited(void)
-{
- synchronize_sched();
-}
-
-static inline void kfree_call_rcu(struct rcu_head *head,
- void (*func)(struct rcu_head *rcu))
-{
- call_rcu(head, func);
-}
-
-#ifdef CONFIG_TINY_RCU
-
-static inline void rcu_preempt_note_context_switch(void)
-{
-}
-
-static inline void exit_rcu(void)
-{
-}
-
-static inline int rcu_needs_cpu(int cpu)
-{
- return 0;
-}
-
-#else /* #ifdef CONFIG_TINY_RCU */
-
-void rcu_preempt_note_context_switch(void);
-extern void exit_rcu(void);
-int rcu_preempt_needs_cpu(void);
-
-static inline int rcu_needs_cpu(int cpu)
-{
- return rcu_preempt_needs_cpu();
-}
-
-#endif /* #else #ifdef CONFIG_TINY_RCU */
-
-static inline void rcu_note_context_switch(int cpu)
-{
- rcu_sched_qs(cpu);
- rcu_preempt_note_context_switch();
-}
-
-/*
- * Take advantage of the fact that there is only one CPU, which
- * allows us to ignore virtualization-based context switches.
- */
-static inline void rcu_virt_note_context_switch(int cpu)
-{
-}
-
-/*
- * Return the number of grace periods.
- */
-static inline long rcu_batches_completed(void)
-{
- return 0;
-}
-
-/*
- * Return the number of bottom-half grace periods.
- */
-static inline long rcu_batches_completed_bh(void)
-{
- return 0;
-}
-
-static inline void rcu_force_quiescent_state(void)
-{
-}
-
-static inline void rcu_bh_force_quiescent_state(void)
-{
-}
-
-static inline void rcu_sched_force_quiescent_state(void)
-{
-}
-
-static inline void rcu_cpu_stall_reset(void)
-{
-}
-
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
-extern int rcu_scheduler_active __read_mostly;
-extern void rcu_scheduler_starting(void);
-#else /* #ifdef CONFIG_DEBUG_LOCK_ALLOC */
-static inline void rcu_scheduler_starting(void)
-{
-}
-#endif /* #else #ifdef CONFIG_DEBUG_LOCK_ALLOC */
-
-#endif /* __LINUX_RCUTINY_H */
diff --git a/ANDROID_3.4.5/include/linux/rcutree.h b/ANDROID_3.4.5/include/linux/rcutree.h
deleted file mode 100644
index e8ee5dd0..00000000
--- a/ANDROID_3.4.5/include/linux/rcutree.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Read-Copy Update mechanism for mutual exclusion (tree-based version)
- *
- * 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.
- *
- * Copyright IBM Corporation, 2008
- *
- * Author: Dipankar Sarma <dipankar@in.ibm.com>
- * Paul E. McKenney <paulmck@linux.vnet.ibm.com> Hierarchical algorithm
- *
- * Based on the original work by Paul McKenney <paulmck@us.ibm.com>
- * and inputs from Rusty Russell, Andrea Arcangeli and Andi Kleen.
- *
- * For detailed explanation of Read-Copy Update mechanism see -
- * Documentation/RCU
- */
-
-#ifndef __LINUX_RCUTREE_H
-#define __LINUX_RCUTREE_H
-
-extern void rcu_init(void);
-extern void rcu_note_context_switch(int cpu);
-extern int rcu_needs_cpu(int cpu);
-extern void rcu_cpu_stall_reset(void);
-
-/*
- * Note a virtualization-based context switch. This is simply a
- * wrapper around rcu_note_context_switch(), which allows TINY_RCU
- * to save a few bytes.
- */
-static inline void rcu_virt_note_context_switch(int cpu)
-{
- rcu_note_context_switch(cpu);
-}
-
-#ifdef CONFIG_TREE_PREEMPT_RCU
-
-extern void exit_rcu(void);
-
-#else /* #ifdef CONFIG_TREE_PREEMPT_RCU */
-
-static inline void exit_rcu(void)
-{
-}
-
-#endif /* #else #ifdef CONFIG_TREE_PREEMPT_RCU */
-
-extern void synchronize_rcu_bh(void);
-extern void synchronize_sched_expedited(void);
-extern void synchronize_rcu_expedited(void);
-
-void kfree_call_rcu(struct rcu_head *head, void (*func)(struct rcu_head *rcu));
-
-/**
- * synchronize_rcu_bh_expedited - Brute-force RCU-bh grace period
- *
- * Wait for an RCU-bh grace period to elapse, but use a "big hammer"
- * approach to force the grace period to end quickly. This consumes
- * significant time on all CPUs and is unfriendly to real-time workloads,
- * so is thus not recommended for any sort of common-case code. In fact,
- * if you are using synchronize_rcu_bh_expedited() in a loop, please
- * restructure your code to batch your updates, and then use a single
- * synchronize_rcu_bh() instead.
- *
- * Note that it is illegal to call this function while holding any lock
- * that is acquired by a CPU-hotplug notifier. And yes, it is also illegal
- * to call this function from a CPU-hotplug notifier. Failing to observe
- * these restriction will result in deadlock.
- */
-static inline void synchronize_rcu_bh_expedited(void)
-{
- synchronize_sched_expedited();
-}
-
-extern void rcu_barrier(void);
-extern void rcu_barrier_bh(void);
-extern void rcu_barrier_sched(void);
-
-extern unsigned long rcutorture_testseq;
-extern unsigned long rcutorture_vernum;
-extern long rcu_batches_completed(void);
-extern long rcu_batches_completed_bh(void);
-extern long rcu_batches_completed_sched(void);
-
-extern void rcu_force_quiescent_state(void);
-extern void rcu_bh_force_quiescent_state(void);
-extern void rcu_sched_force_quiescent_state(void);
-
-/* A context switch is a grace period for RCU-sched and RCU-bh. */
-static inline int rcu_blocking_is_gp(void)
-{
- might_sleep(); /* Check for RCU read-side critical section. */
- return num_online_cpus() == 1;
-}
-
-extern void rcu_scheduler_starting(void);
-extern int rcu_scheduler_active __read_mostly;
-
-#endif /* __LINUX_RCUTREE_H */
diff --git a/ANDROID_3.4.5/include/linux/rds.h b/ANDROID_3.4.5/include/linux/rds.h
deleted file mode 100644
index 91950950..00000000
--- a/ANDROID_3.4.5/include/linux/rds.h
+++ /dev/null
@@ -1,285 +0,0 @@
-/*
- * Copyright (c) 2008 Oracle. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- */
-
-#ifndef _LINUX_RDS_H
-#define _LINUX_RDS_H
-
-#include <linux/types.h>
-
-#define RDS_IB_ABI_VERSION 0x301
-
-/*
- * setsockopt/getsockopt for SOL_RDS
- */
-#define RDS_CANCEL_SENT_TO 1
-#define RDS_GET_MR 2
-#define RDS_FREE_MR 3
-/* deprecated: RDS_BARRIER 4 */
-#define RDS_RECVERR 5
-#define RDS_CONG_MONITOR 6
-#define RDS_GET_MR_FOR_DEST 7
-
-/*
- * Control message types for SOL_RDS.
- *
- * CMSG_RDMA_ARGS (sendmsg)
- * Request a RDMA transfer to/from the specified
- * memory ranges.
- * The cmsg_data is a struct rds_rdma_args.
- * RDS_CMSG_RDMA_DEST (recvmsg, sendmsg)
- * Kernel informs application about intended
- * source/destination of a RDMA transfer
- * RDS_CMSG_RDMA_MAP (sendmsg)
- * Application asks kernel to map the given
- * memory range into a IB MR, and send the
- * R_Key along in an RDS extension header.
- * The cmsg_data is a struct rds_get_mr_args,
- * the same as for the GET_MR setsockopt.
- * RDS_CMSG_RDMA_STATUS (recvmsg)
- * Returns the status of a completed RDMA operation.
- */
-#define RDS_CMSG_RDMA_ARGS 1
-#define RDS_CMSG_RDMA_DEST 2
-#define RDS_CMSG_RDMA_MAP 3
-#define RDS_CMSG_RDMA_STATUS 4
-#define RDS_CMSG_CONG_UPDATE 5
-#define RDS_CMSG_ATOMIC_FADD 6
-#define RDS_CMSG_ATOMIC_CSWP 7
-#define RDS_CMSG_MASKED_ATOMIC_FADD 8
-#define RDS_CMSG_MASKED_ATOMIC_CSWP 9
-
-#define RDS_INFO_FIRST 10000
-#define RDS_INFO_COUNTERS 10000
-#define RDS_INFO_CONNECTIONS 10001
-/* 10002 aka RDS_INFO_FLOWS is deprecated */
-#define RDS_INFO_SEND_MESSAGES 10003
-#define RDS_INFO_RETRANS_MESSAGES 10004
-#define RDS_INFO_RECV_MESSAGES 10005
-#define RDS_INFO_SOCKETS 10006
-#define RDS_INFO_TCP_SOCKETS 10007
-#define RDS_INFO_IB_CONNECTIONS 10008
-#define RDS_INFO_CONNECTION_STATS 10009
-#define RDS_INFO_IWARP_CONNECTIONS 10010
-#define RDS_INFO_LAST 10010
-
-struct rds_info_counter {
- uint8_t name[32];
- uint64_t value;
-} __attribute__((packed));
-
-#define RDS_INFO_CONNECTION_FLAG_SENDING 0x01
-#define RDS_INFO_CONNECTION_FLAG_CONNECTING 0x02
-#define RDS_INFO_CONNECTION_FLAG_CONNECTED 0x04
-
-#define TRANSNAMSIZ 16
-
-struct rds_info_connection {
- uint64_t next_tx_seq;
- uint64_t next_rx_seq;
- __be32 laddr;
- __be32 faddr;
- uint8_t transport[TRANSNAMSIZ]; /* null term ascii */
- uint8_t flags;
-} __attribute__((packed));
-
-#define RDS_INFO_MESSAGE_FLAG_ACK 0x01
-#define RDS_INFO_MESSAGE_FLAG_FAST_ACK 0x02
-
-struct rds_info_message {
- uint64_t seq;
- uint32_t len;
- __be32 laddr;
- __be32 faddr;
- __be16 lport;
- __be16 fport;
- uint8_t flags;
-} __attribute__((packed));
-
-struct rds_info_socket {
- uint32_t sndbuf;
- __be32 bound_addr;
- __be32 connected_addr;
- __be16 bound_port;
- __be16 connected_port;
- uint32_t rcvbuf;
- uint64_t inum;
-} __attribute__((packed));
-
-struct rds_info_tcp_socket {
- __be32 local_addr;
- __be16 local_port;
- __be32 peer_addr;
- __be16 peer_port;
- uint64_t hdr_rem;
- uint64_t data_rem;
- uint32_t last_sent_nxt;
- uint32_t last_expected_una;
- uint32_t last_seen_una;
-} __attribute__((packed));
-
-#define RDS_IB_GID_LEN 16
-struct rds_info_rdma_connection {
- __be32 src_addr;
- __be32 dst_addr;
- uint8_t src_gid[RDS_IB_GID_LEN];
- uint8_t dst_gid[RDS_IB_GID_LEN];
-
- uint32_t max_send_wr;
- uint32_t max_recv_wr;
- uint32_t max_send_sge;
- uint32_t rdma_mr_max;
- uint32_t rdma_mr_size;
-};
-
-/*
- * Congestion monitoring.
- * Congestion control in RDS happens at the host connection
- * level by exchanging a bitmap marking congested ports.
- * By default, a process sleeping in poll() is always woken
- * up when the congestion map is updated.
- * With explicit monitoring, an application can have more
- * fine-grained control.
- * The application installs a 64bit mask value in the socket,
- * where each bit corresponds to a group of ports.
- * When a congestion update arrives, RDS checks the set of
- * ports that are now uncongested against the list bit mask
- * installed in the socket, and if they overlap, we queue a
- * cong_notification on the socket.
- *
- * To install the congestion monitor bitmask, use RDS_CONG_MONITOR
- * with the 64bit mask.
- * Congestion updates are received via RDS_CMSG_CONG_UPDATE
- * control messages.
- *
- * The correspondence between bits and ports is
- * 1 << (portnum % 64)
- */
-#define RDS_CONG_MONITOR_SIZE 64
-#define RDS_CONG_MONITOR_BIT(port) (((unsigned int) port) % RDS_CONG_MONITOR_SIZE)
-#define RDS_CONG_MONITOR_MASK(port) (1ULL << RDS_CONG_MONITOR_BIT(port))
-
-/*
- * RDMA related types
- */
-
-/*
- * This encapsulates a remote memory location.
- * In the current implementation, it contains the R_Key
- * of the remote memory region, and the offset into it
- * (so that the application does not have to worry about
- * alignment).
- */
-typedef uint64_t rds_rdma_cookie_t;
-
-struct rds_iovec {
- uint64_t addr;
- uint64_t bytes;
-};
-
-struct rds_get_mr_args {
- struct rds_iovec vec;
- uint64_t cookie_addr;
- uint64_t flags;
-};
-
-struct rds_get_mr_for_dest_args {
- struct sockaddr_storage dest_addr;
- struct rds_iovec vec;
- uint64_t cookie_addr;
- uint64_t flags;
-};
-
-struct rds_free_mr_args {
- rds_rdma_cookie_t cookie;
- uint64_t flags;
-};
-
-struct rds_rdma_args {
- rds_rdma_cookie_t cookie;
- struct rds_iovec remote_vec;
- uint64_t local_vec_addr;
- uint64_t nr_local;
- uint64_t flags;
- uint64_t user_token;
-};
-
-struct rds_atomic_args {
- rds_rdma_cookie_t cookie;
- uint64_t local_addr;
- uint64_t remote_addr;
- union {
- struct {
- uint64_t compare;
- uint64_t swap;
- } cswp;
- struct {
- uint64_t add;
- } fadd;
- struct {
- uint64_t compare;
- uint64_t swap;
- uint64_t compare_mask;
- uint64_t swap_mask;
- } m_cswp;
- struct {
- uint64_t add;
- uint64_t nocarry_mask;
- } m_fadd;
- };
- uint64_t flags;
- uint64_t user_token;
-};
-
-struct rds_rdma_notify {
- uint64_t user_token;
- int32_t status;
-};
-
-#define RDS_RDMA_SUCCESS 0
-#define RDS_RDMA_REMOTE_ERROR 1
-#define RDS_RDMA_CANCELED 2
-#define RDS_RDMA_DROPPED 3
-#define RDS_RDMA_OTHER_ERROR 4
-
-/*
- * Common set of flags for all RDMA related structs
- */
-#define RDS_RDMA_READWRITE 0x0001
-#define RDS_RDMA_FENCE 0x0002 /* use FENCE for immediate send */
-#define RDS_RDMA_INVALIDATE 0x0004 /* invalidate R_Key after freeing MR */
-#define RDS_RDMA_USE_ONCE 0x0008 /* free MR after use */
-#define RDS_RDMA_DONTWAIT 0x0010 /* Don't wait in SET_BARRIER */
-#define RDS_RDMA_NOTIFY_ME 0x0020 /* Notify when operation completes */
-#define RDS_RDMA_SILENT 0x0040 /* Do not interrupt remote */
-
-#endif /* IB_RDS_H */
diff --git a/ANDROID_3.4.5/include/linux/reboot.h b/ANDROID_3.4.5/include/linux/reboot.h
deleted file mode 100644
index e0879a70..00000000
--- a/ANDROID_3.4.5/include/linux/reboot.h
+++ /dev/null
@@ -1,89 +0,0 @@
-#ifndef _LINUX_REBOOT_H
-#define _LINUX_REBOOT_H
-
-/*
- * Magic values required to use _reboot() system call.
- */
-
-#define LINUX_REBOOT_MAGIC1 0xfee1dead
-#define LINUX_REBOOT_MAGIC2 672274793
-#define LINUX_REBOOT_MAGIC2A 85072278
-#define LINUX_REBOOT_MAGIC2B 369367448
-#define LINUX_REBOOT_MAGIC2C 537993216
-
-
-/*
- * Commands accepted by the _reboot() system call.
- *
- * RESTART Restart system using default command and mode.
- * HALT Stop OS and give system control to ROM monitor, if any.
- * CAD_ON Ctrl-Alt-Del sequence causes RESTART command.
- * CAD_OFF Ctrl-Alt-Del sequence sends SIGINT to init task.
- * POWER_OFF Stop OS and remove all power from system, if possible.
- * RESTART2 Restart system using given command string.
- * SW_SUSPEND Suspend system using software suspend if compiled in.
- * KEXEC Restart system using a previously loaded Linux kernel
- */
-
-#define LINUX_REBOOT_CMD_RESTART 0x01234567
-#define LINUX_REBOOT_CMD_HALT 0xCDEF0123
-#define LINUX_REBOOT_CMD_CAD_ON 0x89ABCDEF
-#define LINUX_REBOOT_CMD_CAD_OFF 0x00000000
-#define LINUX_REBOOT_CMD_POWER_OFF 0x4321FEDC
-#define LINUX_REBOOT_CMD_RESTART2 0xA1B2C3D4
-#define LINUX_REBOOT_CMD_SW_SUSPEND 0xD000FCE2
-#define LINUX_REBOOT_CMD_KEXEC 0x45584543
-
-
-#ifdef __KERNEL__
-
-#include <linux/notifier.h>
-
-#define SYS_DOWN 0x0001 /* Notify of system down */
-#define SYS_RESTART SYS_DOWN
-#define SYS_HALT 0x0002 /* Notify of system halt */
-#define SYS_POWER_OFF 0x0003 /* Notify of system power off */
-
-extern int register_reboot_notifier(struct notifier_block *);
-extern int unregister_reboot_notifier(struct notifier_block *);
-
-
-/*
- * Architecture-specific implementations of sys_reboot commands.
- */
-
-extern void machine_restart(char *cmd);
-extern void machine_halt(void);
-extern void machine_power_off(void);
-
-extern void machine_shutdown(void);
-struct pt_regs;
-extern void machine_crash_shutdown(struct pt_regs *);
-
-/*
- * Architecture independent implemenations of sys_reboot commands.
- */
-
-extern void kernel_restart_prepare(char *cmd);
-extern void kernel_restart(char *cmd);
-extern void kernel_halt(void);
-extern void kernel_power_off(void);
-
-extern int C_A_D; /* for sysctl */
-void ctrl_alt_del(void);
-
-#define POWEROFF_CMD_PATH_LEN 256
-extern char poweroff_cmd[POWEROFF_CMD_PATH_LEN];
-
-extern int orderly_poweroff(bool force);
-
-/*
- * Emergency restart, callable from an interrupt handler.
- */
-
-extern void emergency_restart(void);
-#include <asm/emergency-restart.h>
-
-#endif
-
-#endif /* _LINUX_REBOOT_H */
diff --git a/ANDROID_3.4.5/include/linux/reciprocal_div.h b/ANDROID_3.4.5/include/linux/reciprocal_div.h
deleted file mode 100644
index f9c90b33..00000000
--- a/ANDROID_3.4.5/include/linux/reciprocal_div.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef _LINUX_RECIPROCAL_DIV_H
-#define _LINUX_RECIPROCAL_DIV_H
-
-#include <linux/types.h>
-
-/*
- * This file describes reciprocical division.
- *
- * This optimizes the (A/B) problem, when A and B are two u32
- * and B is a known value (but not known at compile time)
- *
- * The math principle used is :
- * Let RECIPROCAL_VALUE(B) be (((1LL << 32) + (B - 1))/ B)
- * Then A / B = (u32)(((u64)(A) * (R)) >> 32)
- *
- * This replaces a divide by a multiply (and a shift), and
- * is generally less expensive in CPU cycles.
- */
-
-/*
- * Computes the reciprocal value (R) for the value B of the divisor.
- * Should not be called before each reciprocal_divide(),
- * or else the performance is slower than a normal divide.
- */
-extern u32 reciprocal_value(u32 B);
-
-
-static inline u32 reciprocal_divide(u32 A, u32 R)
-{
- return (u32)(((u64)A * R) >> 32);
-}
-#endif
diff --git a/ANDROID_3.4.5/include/linux/regmap.h b/ANDROID_3.4.5/include/linux/regmap.h
deleted file mode 100644
index a90abb6b..00000000
--- a/ANDROID_3.4.5/include/linux/regmap.h
+++ /dev/null
@@ -1,332 +0,0 @@
-#ifndef __LINUX_REGMAP_H
-#define __LINUX_REGMAP_H
-
-/*
- * Register map access API
- *
- * Copyright 2011 Wolfson Microelectronics plc
- *
- * Author: Mark Brown <broonie@opensource.wolfsonmicro.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.
- */
-
-#include <linux/list.h>
-
-struct module;
-struct device;
-struct i2c_client;
-struct spi_device;
-struct regmap;
-
-/* An enum of all the supported cache types */
-enum regcache_type {
- REGCACHE_NONE,
- REGCACHE_RBTREE,
- REGCACHE_COMPRESSED
-};
-
-/**
- * Default value for a register. We use an array of structs rather
- * than a simple array as many modern devices have very sparse
- * register maps.
- *
- * @reg: Register address.
- * @def: Register default value.
- */
-struct reg_default {
- unsigned int reg;
- unsigned int def;
-};
-
-#ifdef CONFIG_REGMAP
-
-/**
- * Configuration for the register map of a device.
- *
- * @reg_bits: Number of bits in a register address, mandatory.
- * @pad_bits: Number of bits of padding between register and value.
- * @val_bits: Number of bits in a register value, mandatory.
- *
- * @writeable_reg: Optional callback returning true if the register
- * can be written to.
- * @readable_reg: Optional callback returning true if the register
- * can be read from.
- * @volatile_reg: Optional callback returning true if the register
- * value can't be cached.
- * @precious_reg: Optional callback returning true if the rgister
- * should not be read outside of a call from the driver
- * (eg, a clear on read interrupt status register).
- *
- * @max_register: Optional, specifies the maximum valid register index.
- * @reg_defaults: Power on reset values for registers (for use with
- * register cache support).
- * @num_reg_defaults: Number of elements in reg_defaults.
- *
- * @read_flag_mask: Mask to be set in the top byte of the register when doing
- * a read.
- * @write_flag_mask: Mask to be set in the top byte of the register when doing
- * a write. If both read_flag_mask and write_flag_mask are
- * empty the regmap_bus default masks are used.
- *
- * @cache_type: The actual cache type.
- * @reg_defaults_raw: Power on reset values for registers (for use with
- * register cache support).
- * @num_reg_defaults_raw: Number of elements in reg_defaults_raw.
- */
-struct regmap_config {
- int reg_bits;
- int pad_bits;
- int val_bits;
-
- bool (*writeable_reg)(struct device *dev, unsigned int reg);
- bool (*readable_reg)(struct device *dev, unsigned int reg);
- bool (*volatile_reg)(struct device *dev, unsigned int reg);
- bool (*precious_reg)(struct device *dev, unsigned int reg);
-
- unsigned int max_register;
- const struct reg_default *reg_defaults;
- unsigned int num_reg_defaults;
- enum regcache_type cache_type;
- const void *reg_defaults_raw;
- unsigned int num_reg_defaults_raw;
-
- u8 read_flag_mask;
- u8 write_flag_mask;
-};
-
-typedef int (*regmap_hw_write)(struct device *dev, const void *data,
- size_t count);
-typedef int (*regmap_hw_gather_write)(struct device *dev,
- const void *reg, size_t reg_len,
- const void *val, size_t val_len);
-typedef int (*regmap_hw_read)(struct device *dev,
- const void *reg_buf, size_t reg_size,
- void *val_buf, size_t val_size);
-
-/**
- * Description of a hardware bus for the register map infrastructure.
- *
- * @write: Write operation.
- * @gather_write: Write operation with split register/value, return -ENOTSUPP
- * if not implemented on a given device.
- * @read: Read operation. Data is returned in the buffer used to transmit
- * data.
- * @read_flag_mask: Mask to be set in the top byte of the register when doing
- * a read.
- */
-struct regmap_bus {
- regmap_hw_write write;
- regmap_hw_gather_write gather_write;
- regmap_hw_read read;
- u8 read_flag_mask;
-};
-
-struct regmap *regmap_init(struct device *dev,
- const struct regmap_bus *bus,
- const struct regmap_config *config);
-struct regmap *regmap_init_i2c(struct i2c_client *i2c,
- const struct regmap_config *config);
-struct regmap *regmap_init_spi(struct spi_device *dev,
- const struct regmap_config *config);
-
-struct regmap *devm_regmap_init(struct device *dev,
- const struct regmap_bus *bus,
- const struct regmap_config *config);
-struct regmap *devm_regmap_init_i2c(struct i2c_client *i2c,
- const struct regmap_config *config);
-struct regmap *devm_regmap_init_spi(struct spi_device *dev,
- const struct regmap_config *config);
-
-void regmap_exit(struct regmap *map);
-int regmap_reinit_cache(struct regmap *map,
- const struct regmap_config *config);
-int regmap_write(struct regmap *map, unsigned int reg, unsigned int val);
-int regmap_raw_write(struct regmap *map, unsigned int reg,
- const void *val, size_t val_len);
-int regmap_bulk_write(struct regmap *map, unsigned int reg, const void *val,
- size_t val_count);
-int regmap_read(struct regmap *map, unsigned int reg, unsigned int *val);
-int regmap_raw_read(struct regmap *map, unsigned int reg,
- void *val, size_t val_len);
-int regmap_bulk_read(struct regmap *map, unsigned int reg, void *val,
- size_t val_count);
-int regmap_update_bits(struct regmap *map, unsigned int reg,
- unsigned int mask, unsigned int val);
-int regmap_update_bits_check(struct regmap *map, unsigned int reg,
- unsigned int mask, unsigned int val,
- bool *change);
-int regmap_get_val_bytes(struct regmap *map);
-
-int regcache_sync(struct regmap *map);
-int regcache_sync_region(struct regmap *map, unsigned int min,
- unsigned int max);
-void regcache_cache_only(struct regmap *map, bool enable);
-void regcache_cache_bypass(struct regmap *map, bool enable);
-void regcache_mark_dirty(struct regmap *map);
-
-int regmap_register_patch(struct regmap *map, const struct reg_default *regs,
- int num_regs);
-
-/**
- * Description of an IRQ for the generic regmap irq_chip.
- *
- * @reg_offset: Offset of the status/mask register within the bank
- * @mask: Mask used to flag/control the register.
- */
-struct regmap_irq {
- unsigned int reg_offset;
- unsigned int mask;
-};
-
-/**
- * Description of a generic regmap irq_chip. This is not intended to
- * handle every possible interrupt controller, but it should handle a
- * substantial proportion of those that are found in the wild.
- *
- * @name: Descriptive name for IRQ controller.
- *
- * @status_base: Base status register address.
- * @mask_base: Base mask register address.
- * @ack_base: Base ack address. If zero then the chip is clear on read.
- *
- * @num_regs: Number of registers in each control bank.
- * @irqs: Descriptors for individual IRQs. Interrupt numbers are
- * assigned based on the index in the array of the interrupt.
- * @num_irqs: Number of descriptors.
- */
-struct regmap_irq_chip {
- const char *name;
-
- unsigned int status_base;
- unsigned int mask_base;
- unsigned int ack_base;
-
- int num_regs;
-
- const struct regmap_irq *irqs;
- int num_irqs;
-};
-
-struct regmap_irq_chip_data;
-
-int regmap_add_irq_chip(struct regmap *map, int irq, int irq_flags,
- int irq_base, struct regmap_irq_chip *chip,
- struct regmap_irq_chip_data **data);
-void regmap_del_irq_chip(int irq, struct regmap_irq_chip_data *data);
-int regmap_irq_chip_get_base(struct regmap_irq_chip_data *data);
-
-#else
-
-/*
- * These stubs should only ever be called by generic code which has
- * regmap based facilities, if they ever get called at runtime
- * something is going wrong and something probably needs to select
- * REGMAP.
- */
-
-static inline int regmap_write(struct regmap *map, unsigned int reg,
- unsigned int val)
-{
- WARN_ONCE(1, "regmap API is disabled");
- return -EINVAL;
-}
-
-static inline int regmap_raw_write(struct regmap *map, unsigned int reg,
- const void *val, size_t val_len)
-{
- WARN_ONCE(1, "regmap API is disabled");
- return -EINVAL;
-}
-
-static inline int regmap_bulk_write(struct regmap *map, unsigned int reg,
- const void *val, size_t val_count)
-{
- WARN_ONCE(1, "regmap API is disabled");
- return -EINVAL;
-}
-
-static inline int regmap_read(struct regmap *map, unsigned int reg,
- unsigned int *val)
-{
- WARN_ONCE(1, "regmap API is disabled");
- return -EINVAL;
-}
-
-static inline int regmap_raw_read(struct regmap *map, unsigned int reg,
- void *val, size_t val_len)
-{
- WARN_ONCE(1, "regmap API is disabled");
- return -EINVAL;
-}
-
-static inline int regmap_bulk_read(struct regmap *map, unsigned int reg,
- void *val, size_t val_count)
-{
- WARN_ONCE(1, "regmap API is disabled");
- return -EINVAL;
-}
-
-static inline int regmap_update_bits(struct regmap *map, unsigned int reg,
- unsigned int mask, unsigned int val)
-{
- WARN_ONCE(1, "regmap API is disabled");
- return -EINVAL;
-}
-
-static inline int regmap_update_bits_check(struct regmap *map,
- unsigned int reg,
- unsigned int mask, unsigned int val,
- bool *change)
-{
- WARN_ONCE(1, "regmap API is disabled");
- return -EINVAL;
-}
-
-static inline int regmap_get_val_bytes(struct regmap *map)
-{
- WARN_ONCE(1, "regmap API is disabled");
- return -EINVAL;
-}
-
-static inline int regcache_sync(struct regmap *map)
-{
- WARN_ONCE(1, "regmap API is disabled");
- return -EINVAL;
-}
-
-static inline int regcache_sync_region(struct regmap *map, unsigned int min,
- unsigned int max)
-{
- WARN_ONCE(1, "regmap API is disabled");
- return -EINVAL;
-}
-
-static inline void regcache_cache_only(struct regmap *map, bool enable)
-{
- WARN_ONCE(1, "regmap API is disabled");
-}
-
-static inline void regcache_cache_bypass(struct regmap *map, bool enable)
-{
- WARN_ONCE(1, "regmap API is disabled");
-}
-
-static inline void regcache_mark_dirty(struct regmap *map)
-{
- WARN_ONCE(1, "regmap API is disabled");
-}
-
-static inline int regmap_register_patch(struct regmap *map,
- const struct reg_default *regs,
- int num_regs)
-{
- WARN_ONCE(1, "regmap API is disabled");
- return -EINVAL;
-}
-
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/regset.h b/ANDROID_3.4.5/include/linux/regset.h
deleted file mode 100644
index 8e0c9feb..00000000
--- a/ANDROID_3.4.5/include/linux/regset.h
+++ /dev/null
@@ -1,375 +0,0 @@
-/*
- * User-mode machine state access
- *
- * Copyright (C) 2007 Red Hat, Inc. All rights reserved.
- *
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU General Public License v.2.
- *
- * Red Hat Author: Roland McGrath.
- */
-
-#ifndef _LINUX_REGSET_H
-#define _LINUX_REGSET_H 1
-
-#include <linux/compiler.h>
-#include <linux/types.h>
-#include <linux/bug.h>
-#include <linux/uaccess.h>
-struct task_struct;
-struct user_regset;
-
-
-/**
- * user_regset_active_fn - type of @active function in &struct user_regset
- * @target: thread being examined
- * @regset: regset being examined
- *
- * Return -%ENODEV if not available on the hardware found.
- * Return %0 if no interesting state in this thread.
- * Return >%0 number of @size units of interesting state.
- * Any get call fetching state beyond that number will
- * see the default initialization state for this data,
- * so a caller that knows what the default state is need
- * not copy it all out.
- * This call is optional; the pointer is %NULL if there
- * is no inexpensive check to yield a value < @n.
- */
-typedef int user_regset_active_fn(struct task_struct *target,
- const struct user_regset *regset);
-
-/**
- * user_regset_get_fn - type of @get function in &struct user_regset
- * @target: thread being examined
- * @regset: regset being examined
- * @pos: offset into the regset data to access, in bytes
- * @count: amount of data to copy, in bytes
- * @kbuf: if not %NULL, a kernel-space pointer to copy into
- * @ubuf: if @kbuf is %NULL, a user-space pointer to copy into
- *
- * Fetch register values. Return %0 on success; -%EIO or -%ENODEV
- * are usual failure returns. The @pos and @count values are in
- * bytes, but must be properly aligned. If @kbuf is non-null, that
- * buffer is used and @ubuf is ignored. If @kbuf is %NULL, then
- * ubuf gives a userland pointer to access directly, and an -%EFAULT
- * return value is possible.
- */
-typedef int user_regset_get_fn(struct task_struct *target,
- const struct user_regset *regset,
- unsigned int pos, unsigned int count,
- void *kbuf, void __user *ubuf);
-
-/**
- * user_regset_set_fn - type of @set function in &struct user_regset
- * @target: thread being examined
- * @regset: regset being examined
- * @pos: offset into the regset data to access, in bytes
- * @count: amount of data to copy, in bytes
- * @kbuf: if not %NULL, a kernel-space pointer to copy from
- * @ubuf: if @kbuf is %NULL, a user-space pointer to copy from
- *
- * Store register values. Return %0 on success; -%EIO or -%ENODEV
- * are usual failure returns. The @pos and @count values are in
- * bytes, but must be properly aligned. If @kbuf is non-null, that
- * buffer is used and @ubuf is ignored. If @kbuf is %NULL, then
- * ubuf gives a userland pointer to access directly, and an -%EFAULT
- * return value is possible.
- */
-typedef int user_regset_set_fn(struct task_struct *target,
- const struct user_regset *regset,
- unsigned int pos, unsigned int count,
- const void *kbuf, const void __user *ubuf);
-
-/**
- * user_regset_writeback_fn - type of @writeback function in &struct user_regset
- * @target: thread being examined
- * @regset: regset being examined
- * @immediate: zero if writeback at completion of next context switch is OK
- *
- * This call is optional; usually the pointer is %NULL. When
- * provided, there is some user memory associated with this regset's
- * hardware, such as memory backing cached register data on register
- * window machines; the regset's data controls what user memory is
- * used (e.g. via the stack pointer value).
- *
- * Write register data back to user memory. If the @immediate flag
- * is nonzero, it must be written to the user memory so uaccess or
- * access_process_vm() can see it when this call returns; if zero,
- * then it must be written back by the time the task completes a
- * context switch (as synchronized with wait_task_inactive()).
- * Return %0 on success or if there was nothing to do, -%EFAULT for
- * a memory problem (bad stack pointer or whatever), or -%EIO for a
- * hardware problem.
- */
-typedef int user_regset_writeback_fn(struct task_struct *target,
- const struct user_regset *regset,
- int immediate);
-
-/**
- * struct user_regset - accessible thread CPU state
- * @n: Number of slots (registers).
- * @size: Size in bytes of a slot (register).
- * @align: Required alignment, in bytes.
- * @bias: Bias from natural indexing.
- * @core_note_type: ELF note @n_type value used in core dumps.
- * @get: Function to fetch values.
- * @set: Function to store values.
- * @active: Function to report if regset is active, or %NULL.
- * @writeback: Function to write data back to user memory, or %NULL.
- *
- * This data structure describes a machine resource we call a register set.
- * This is part of the state of an individual thread, not necessarily
- * actual CPU registers per se. A register set consists of a number of
- * similar slots, given by @n. Each slot is @size bytes, and aligned to
- * @align bytes (which is at least @size).
- *
- * These functions must be called only on the current thread or on a
- * thread that is in %TASK_STOPPED or %TASK_TRACED state, that we are
- * guaranteed will not be woken up and return to user mode, and that we
- * have called wait_task_inactive() on. (The target thread always might
- * wake up for SIGKILL while these functions are working, in which case
- * that thread's user_regset state might be scrambled.)
- *
- * The @pos argument must be aligned according to @align; the @count
- * argument must be a multiple of @size. These functions are not
- * responsible for checking for invalid arguments.
- *
- * When there is a natural value to use as an index, @bias gives the
- * difference between the natural index and the slot index for the
- * register set. For example, x86 GDT segment descriptors form a regset;
- * the segment selector produces a natural index, but only a subset of
- * that index space is available as a regset (the TLS slots); subtracting
- * @bias from a segment selector index value computes the regset slot.
- *
- * If nonzero, @core_note_type gives the n_type field (NT_* value)
- * of the core file note in which this regset's data appears.
- * NT_PRSTATUS is a special case in that the regset data starts at
- * offsetof(struct elf_prstatus, pr_reg) into the note data; that is
- * part of the per-machine ELF formats userland knows about. In
- * other cases, the core file note contains exactly the whole regset
- * (@n * @size) and nothing else. The core file note is normally
- * omitted when there is an @active function and it returns zero.
- */
-struct user_regset {
- user_regset_get_fn *get;
- user_regset_set_fn *set;
- user_regset_active_fn *active;
- user_regset_writeback_fn *writeback;
- unsigned int n;
- unsigned int size;
- unsigned int align;
- unsigned int bias;
- unsigned int core_note_type;
-};
-
-/**
- * struct user_regset_view - available regsets
- * @name: Identifier, e.g. UTS_MACHINE string.
- * @regsets: Array of @n regsets available in this view.
- * @n: Number of elements in @regsets.
- * @e_machine: ELF header @e_machine %EM_* value written in core dumps.
- * @e_flags: ELF header @e_flags value written in core dumps.
- * @ei_osabi: ELF header @e_ident[%EI_OSABI] value written in core dumps.
- *
- * A regset view is a collection of regsets (&struct user_regset,
- * above). This describes all the state of a thread that can be seen
- * from a given architecture/ABI environment. More than one view might
- * refer to the same &struct user_regset, or more than one regset
- * might refer to the same machine-specific state in the thread. For
- * example, a 32-bit thread's state could be examined from the 32-bit
- * view or from the 64-bit view. Either method reaches the same thread
- * register state, doing appropriate widening or truncation.
- */
-struct user_regset_view {
- const char *name;
- const struct user_regset *regsets;
- unsigned int n;
- u32 e_flags;
- u16 e_machine;
- u8 ei_osabi;
-};
-
-/*
- * This is documented here rather than at the definition sites because its
- * implementation is machine-dependent but its interface is universal.
- */
-/**
- * task_user_regset_view - Return the process's native regset view.
- * @tsk: a thread of the process in question
- *
- * Return the &struct user_regset_view that is native for the given process.
- * For example, what it would access when it called ptrace().
- * Throughout the life of the process, this only changes at exec.
- */
-const struct user_regset_view *task_user_regset_view(struct task_struct *tsk);
-
-
-/*
- * These are helpers for writing regset get/set functions in arch code.
- * Because @start_pos and @end_pos are always compile-time constants,
- * these are inlined into very little code though they look large.
- *
- * Use one or more calls sequentially for each chunk of regset data stored
- * contiguously in memory. Call with constants for @start_pos and @end_pos,
- * giving the range of byte positions in the regset that data corresponds
- * to; @end_pos can be -1 if this chunk is at the end of the regset layout.
- * Each call updates the arguments to point past its chunk.
- */
-
-static inline int user_regset_copyout(unsigned int *pos, unsigned int *count,
- void **kbuf,
- void __user **ubuf, const void *data,
- const int start_pos, const int end_pos)
-{
- if (*count == 0)
- return 0;
- BUG_ON(*pos < start_pos);
- if (end_pos < 0 || *pos < end_pos) {
- unsigned int copy = (end_pos < 0 ? *count
- : min(*count, end_pos - *pos));
- data += *pos - start_pos;
- if (*kbuf) {
- memcpy(*kbuf, data, copy);
- *kbuf += copy;
- } else if (__copy_to_user(*ubuf, data, copy))
- return -EFAULT;
- else
- *ubuf += copy;
- *pos += copy;
- *count -= copy;
- }
- return 0;
-}
-
-static inline int user_regset_copyin(unsigned int *pos, unsigned int *count,
- const void **kbuf,
- const void __user **ubuf, void *data,
- const int start_pos, const int end_pos)
-{
- if (*count == 0)
- return 0;
- BUG_ON(*pos < start_pos);
- if (end_pos < 0 || *pos < end_pos) {
- unsigned int copy = (end_pos < 0 ? *count
- : min(*count, end_pos - *pos));
- data += *pos - start_pos;
- if (*kbuf) {
- memcpy(data, *kbuf, copy);
- *kbuf += copy;
- } else if (__copy_from_user(data, *ubuf, copy))
- return -EFAULT;
- else
- *ubuf += copy;
- *pos += copy;
- *count -= copy;
- }
- return 0;
-}
-
-/*
- * These two parallel the two above, but for portions of a regset layout
- * that always read as all-zero or for which writes are ignored.
- */
-static inline int user_regset_copyout_zero(unsigned int *pos,
- unsigned int *count,
- void **kbuf, void __user **ubuf,
- const int start_pos,
- const int end_pos)
-{
- if (*count == 0)
- return 0;
- BUG_ON(*pos < start_pos);
- if (end_pos < 0 || *pos < end_pos) {
- unsigned int copy = (end_pos < 0 ? *count
- : min(*count, end_pos - *pos));
- if (*kbuf) {
- memset(*kbuf, 0, copy);
- *kbuf += copy;
- } else if (__clear_user(*ubuf, copy))
- return -EFAULT;
- else
- *ubuf += copy;
- *pos += copy;
- *count -= copy;
- }
- return 0;
-}
-
-static inline int user_regset_copyin_ignore(unsigned int *pos,
- unsigned int *count,
- const void **kbuf,
- const void __user **ubuf,
- const int start_pos,
- const int end_pos)
-{
- if (*count == 0)
- return 0;
- BUG_ON(*pos < start_pos);
- if (end_pos < 0 || *pos < end_pos) {
- unsigned int copy = (end_pos < 0 ? *count
- : min(*count, end_pos - *pos));
- if (*kbuf)
- *kbuf += copy;
- else
- *ubuf += copy;
- *pos += copy;
- *count -= copy;
- }
- return 0;
-}
-
-/**
- * copy_regset_to_user - fetch a thread's user_regset data into user memory
- * @target: thread to be examined
- * @view: &struct user_regset_view describing user thread machine state
- * @setno: index in @view->regsets
- * @offset: offset into the regset data, in bytes
- * @size: amount of data to copy, in bytes
- * @data: user-mode pointer to copy into
- */
-static inline int copy_regset_to_user(struct task_struct *target,
- const struct user_regset_view *view,
- unsigned int setno,
- unsigned int offset, unsigned int size,
- void __user *data)
-{
- const struct user_regset *regset = &view->regsets[setno];
-
- if (!regset->get)
- return -EOPNOTSUPP;
-
- if (!access_ok(VERIFY_WRITE, data, size))
- return -EFAULT;
-
- return regset->get(target, regset, offset, size, NULL, data);
-}
-
-/**
- * copy_regset_from_user - store into thread's user_regset data from user memory
- * @target: thread to be examined
- * @view: &struct user_regset_view describing user thread machine state
- * @setno: index in @view->regsets
- * @offset: offset into the regset data, in bytes
- * @size: amount of data to copy, in bytes
- * @data: user-mode pointer to copy from
- */
-static inline int copy_regset_from_user(struct task_struct *target,
- const struct user_regset_view *view,
- unsigned int setno,
- unsigned int offset, unsigned int size,
- const void __user *data)
-{
- const struct user_regset *regset = &view->regsets[setno];
-
- if (!regset->set)
- return -EOPNOTSUPP;
-
- if (!access_ok(VERIFY_READ, data, size))
- return -EFAULT;
-
- return regset->set(target, regset, offset, size, NULL, data);
-}
-
-
-#endif /* <linux/regset.h> */
diff --git a/ANDROID_3.4.5/include/linux/regulator/ab8500.h b/ANDROID_3.4.5/include/linux/regulator/ab8500.h
deleted file mode 100644
index 7bd73bbd..00000000
--- a/ANDROID_3.4.5/include/linux/regulator/ab8500.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson SA 2010
- *
- * License Terms: GNU General Public License v2
- *
- * Authors: Sundar Iyer <sundar.iyer@stericsson.com> for ST-Ericsson
- * Bengt Jonsson <bengt.g.jonsson@stericsson.com> for ST-Ericsson
- */
-
-#ifndef __LINUX_MFD_AB8500_REGULATOR_H
-#define __LINUX_MFD_AB8500_REGULATOR_H
-
-/* AB8500 regulators */
-enum ab8500_regulator_id {
- AB8500_LDO_AUX1,
- AB8500_LDO_AUX2,
- AB8500_LDO_AUX3,
- AB8500_LDO_INTCORE,
- AB8500_LDO_TVOUT,
- AB8500_LDO_USB,
- AB8500_LDO_AUDIO,
- AB8500_LDO_ANAMIC1,
- AB8500_LDO_ANAMIC2,
- AB8500_LDO_DMIC,
- AB8500_LDO_ANA,
- AB8500_NUM_REGULATORS,
-};
-
-/* AB9450 regulators */
-enum ab9540_regulator_id {
- AB9540_LDO_AUX1,
- AB9540_LDO_AUX2,
- AB9540_LDO_AUX3,
- AB9540_LDO_AUX4,
- AB9540_LDO_INTCORE,
- AB9540_LDO_TVOUT,
- AB9540_LDO_USB,
- AB9540_LDO_AUDIO,
- AB9540_LDO_ANAMIC1,
- AB9540_LDO_ANAMIC2,
- AB9540_LDO_DMIC,
- AB9540_LDO_ANA,
- AB9540_SYSCLKREQ_2,
- AB9540_SYSCLKREQ_4,
- AB9540_NUM_REGULATORS,
-};
-
-/* AB8500 and AB9540 register initialization */
-struct ab8500_regulator_reg_init {
- int id;
- u8 value;
-};
-
-#define INIT_REGULATOR_REGISTER(_id, _value) \
- { \
- .id = _id, \
- .value = _value, \
- }
-
-/* AB8500 registers */
-enum ab8500_regulator_reg {
- AB8500_REGUREQUESTCTRL2,
- AB8500_REGUREQUESTCTRL3,
- AB8500_REGUREQUESTCTRL4,
- AB8500_REGUSYSCLKREQ1HPVALID1,
- AB8500_REGUSYSCLKREQ1HPVALID2,
- AB8500_REGUHWHPREQ1VALID1,
- AB8500_REGUHWHPREQ1VALID2,
- AB8500_REGUHWHPREQ2VALID1,
- AB8500_REGUHWHPREQ2VALID2,
- AB8500_REGUSWHPREQVALID1,
- AB8500_REGUSWHPREQVALID2,
- AB8500_REGUSYSCLKREQVALID1,
- AB8500_REGUSYSCLKREQVALID2,
- AB8500_REGUMISC1,
- AB8500_VAUDIOSUPPLY,
- AB8500_REGUCTRL1VAMIC,
- AB8500_VPLLVANAREGU,
- AB8500_VREFDDR,
- AB8500_EXTSUPPLYREGU,
- AB8500_VAUX12REGU,
- AB8500_VRF1VAUX3REGU,
- AB8500_VAUX1SEL,
- AB8500_VAUX2SEL,
- AB8500_VRF1VAUX3SEL,
- AB8500_REGUCTRL2SPARE,
- AB8500_REGUCTRLDISCH,
- AB8500_REGUCTRLDISCH2,
- AB8500_VSMPS1SEL1,
- AB8500_NUM_REGULATOR_REGISTERS,
-};
-
-
-/* AB9540 registers */
-enum ab9540_regulator_reg {
- AB9540_REGUREQUESTCTRL1,
- AB9540_REGUREQUESTCTRL2,
- AB9540_REGUREQUESTCTRL3,
- AB9540_REGUREQUESTCTRL4,
- AB9540_REGUSYSCLKREQ1HPVALID1,
- AB9540_REGUSYSCLKREQ1HPVALID2,
- AB9540_REGUHWHPREQ1VALID1,
- AB9540_REGUHWHPREQ1VALID2,
- AB9540_REGUHWHPREQ2VALID1,
- AB9540_REGUHWHPREQ2VALID2,
- AB9540_REGUSWHPREQVALID1,
- AB9540_REGUSWHPREQVALID2,
- AB9540_REGUSYSCLKREQVALID1,
- AB9540_REGUSYSCLKREQVALID2,
- AB9540_REGUVAUX4REQVALID,
- AB9540_REGUMISC1,
- AB9540_VAUDIOSUPPLY,
- AB9540_REGUCTRL1VAMIC,
- AB9540_VSMPS1REGU,
- AB9540_VSMPS2REGU,
- AB9540_VSMPS3REGU, /* NOTE! PRCMU register */
- AB9540_VPLLVANAREGU,
- AB9540_EXTSUPPLYREGU,
- AB9540_VAUX12REGU,
- AB9540_VRF1VAUX3REGU,
- AB9540_VSMPS1SEL1,
- AB9540_VSMPS1SEL2,
- AB9540_VSMPS1SEL3,
- AB9540_VSMPS2SEL1,
- AB9540_VSMPS2SEL2,
- AB9540_VSMPS2SEL3,
- AB9540_VSMPS3SEL1, /* NOTE! PRCMU register */
- AB9540_VSMPS3SEL2, /* NOTE! PRCMU register */
- AB9540_VAUX1SEL,
- AB9540_VAUX2SEL,
- AB9540_VRF1VAUX3SEL,
- AB9540_REGUCTRL2SPARE,
- AB9540_VAUX4REQCTRL,
- AB9540_VAUX4REGU,
- AB9540_VAUX4SEL,
- AB9540_REGUCTRLDISCH,
- AB9540_REGUCTRLDISCH2,
- AB9540_REGUCTRLDISCH3,
- AB9540_NUM_REGULATOR_REGISTERS,
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/regulator/consumer.h b/ANDROID_3.4.5/include/linux/regulator/consumer.h
deleted file mode 100644
index 4ed1b30a..00000000
--- a/ANDROID_3.4.5/include/linux/regulator/consumer.h
+++ /dev/null
@@ -1,349 +0,0 @@
-/*
- * consumer.h -- SoC Regulator consumer support.
- *
- * Copyright (C) 2007, 2008 Wolfson Microelectronics PLC.
- *
- * Author: Liam Girdwood <lrg@slimlogic.co.uk>
- *
- * 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.
- *
- * Regulator Consumer Interface.
- *
- * A Power Management Regulator framework for SoC based devices.
- * Features:-
- * o Voltage and current level control.
- * o Operating mode control.
- * o Regulator status.
- * o sysfs entries for showing client devices and status
- *
- * EXPERIMENTAL FEATURES:
- * Dynamic Regulator operating Mode Switching (DRMS) - allows regulators
- * to use most efficient operating mode depending upon voltage and load and
- * is transparent to client drivers.
- *
- * e.g. Devices x,y,z share regulator r. Device x and y draw 20mA each during
- * IO and 1mA at idle. Device z draws 100mA when under load and 5mA when
- * idling. Regulator r has > 90% efficiency in NORMAL mode at loads > 100mA
- * but this drops rapidly to 60% when below 100mA. Regulator r has > 90%
- * efficiency in IDLE mode at loads < 10mA. Thus regulator r will operate
- * in normal mode for loads > 10mA and in IDLE mode for load <= 10mA.
- *
- */
-
-#ifndef __LINUX_REGULATOR_CONSUMER_H_
-#define __LINUX_REGULATOR_CONSUMER_H_
-
-struct device;
-struct notifier_block;
-
-/*
- * Regulator operating modes.
- *
- * Regulators can run in a variety of different operating modes depending on
- * output load. This allows further system power savings by selecting the
- * best (and most efficient) regulator mode for a desired load.
- *
- * Most drivers will only care about NORMAL. The modes below are generic and
- * will probably not match the naming convention of your regulator data sheet
- * but should match the use cases in the datasheet.
- *
- * In order of power efficiency (least efficient at top).
- *
- * Mode Description
- * FAST Regulator can handle fast changes in it's load.
- * e.g. useful in CPU voltage & frequency scaling where
- * load can quickly increase with CPU frequency increases.
- *
- * NORMAL Normal regulator power supply mode. Most drivers will
- * use this mode.
- *
- * IDLE Regulator runs in a more efficient mode for light
- * loads. Can be used for devices that have a low power
- * requirement during periods of inactivity. This mode
- * may be more noisy than NORMAL and may not be able
- * to handle fast load switching.
- *
- * STANDBY Regulator runs in the most efficient mode for very
- * light loads. Can be used by devices when they are
- * in a sleep/standby state. This mode is likely to be
- * the most noisy and may not be able to handle fast load
- * switching.
- *
- * NOTE: Most regulators will only support a subset of these modes. Some
- * will only just support NORMAL.
- *
- * These modes can be OR'ed together to make up a mask of valid register modes.
- */
-
-#define REGULATOR_MODE_FAST 0x1
-#define REGULATOR_MODE_NORMAL 0x2
-#define REGULATOR_MODE_IDLE 0x4
-#define REGULATOR_MODE_STANDBY 0x8
-
-/*
- * Regulator notifier events.
- *
- * UNDER_VOLTAGE Regulator output is under voltage.
- * OVER_CURRENT Regulator output current is too high.
- * REGULATION_OUT Regulator output is out of regulation.
- * FAIL Regulator output has failed.
- * OVER_TEMP Regulator over temp.
- * FORCE_DISABLE Regulator forcibly shut down by software.
- * VOLTAGE_CHANGE Regulator voltage changed.
- * DISABLE Regulator was disabled.
- *
- * NOTE: These events can be OR'ed together when passed into handler.
- */
-
-#define REGULATOR_EVENT_UNDER_VOLTAGE 0x01
-#define REGULATOR_EVENT_OVER_CURRENT 0x02
-#define REGULATOR_EVENT_REGULATION_OUT 0x04
-#define REGULATOR_EVENT_FAIL 0x08
-#define REGULATOR_EVENT_OVER_TEMP 0x10
-#define REGULATOR_EVENT_FORCE_DISABLE 0x20
-#define REGULATOR_EVENT_VOLTAGE_CHANGE 0x40
-#define REGULATOR_EVENT_DISABLE 0x80
-
-struct regulator;
-
-/**
- * struct regulator_bulk_data - Data used for bulk regulator operations.
- *
- * @supply: The name of the supply. Initialised by the user before
- * using the bulk regulator APIs.
- * @consumer: The regulator consumer for the supply. This will be managed
- * by the bulk API.
- *
- * The regulator APIs provide a series of regulator_bulk_() API calls as
- * a convenience to consumers which require multiple supplies. This
- * structure is used to manage data for these calls.
- */
-struct regulator_bulk_data {
- const char *supply;
- struct regulator *consumer;
-
- /* private: Internal use */
- int ret;
-};
-
-#if defined(CONFIG_REGULATOR)
-
-/* regulator get and put */
-struct regulator *__must_check regulator_get(struct device *dev,
- const char *id);
-struct regulator *__must_check devm_regulator_get(struct device *dev,
- const char *id);
-struct regulator *__must_check regulator_get_exclusive(struct device *dev,
- const char *id);
-void regulator_put(struct regulator *regulator);
-void devm_regulator_put(struct regulator *regulator);
-
-/* regulator output control and status */
-int regulator_enable(struct regulator *regulator);
-int regulator_disable(struct regulator *regulator);
-int regulator_force_disable(struct regulator *regulator);
-int regulator_is_enabled(struct regulator *regulator);
-int regulator_disable_deferred(struct regulator *regulator, int ms);
-
-int regulator_bulk_get(struct device *dev, int num_consumers,
- struct regulator_bulk_data *consumers);
-int devm_regulator_bulk_get(struct device *dev, int num_consumers,
- struct regulator_bulk_data *consumers);
-int regulator_bulk_enable(int num_consumers,
- struct regulator_bulk_data *consumers);
-int regulator_bulk_disable(int num_consumers,
- struct regulator_bulk_data *consumers);
-int regulator_bulk_force_disable(int num_consumers,
- struct regulator_bulk_data *consumers);
-void regulator_bulk_free(int num_consumers,
- struct regulator_bulk_data *consumers);
-
-int regulator_count_voltages(struct regulator *regulator);
-int regulator_list_voltage(struct regulator *regulator, unsigned selector);
-int regulator_is_supported_voltage(struct regulator *regulator,
- int min_uV, int max_uV);
-int regulator_set_voltage(struct regulator *regulator, int min_uV, int max_uV);
-int regulator_set_voltage_time(struct regulator *regulator,
- int old_uV, int new_uV);
-int regulator_get_voltage(struct regulator *regulator);
-int regulator_sync_voltage(struct regulator *regulator);
-int regulator_set_current_limit(struct regulator *regulator,
- int min_uA, int max_uA);
-int regulator_get_current_limit(struct regulator *regulator);
-
-int regulator_set_mode(struct regulator *regulator, unsigned int mode);
-unsigned int regulator_get_mode(struct regulator *regulator);
-int regulator_set_optimum_mode(struct regulator *regulator, int load_uA);
-
-/* regulator notifier block */
-int regulator_register_notifier(struct regulator *regulator,
- struct notifier_block *nb);
-int regulator_unregister_notifier(struct regulator *regulator,
- struct notifier_block *nb);
-
-/* driver data - core doesn't touch */
-void *regulator_get_drvdata(struct regulator *regulator);
-void regulator_set_drvdata(struct regulator *regulator, void *data);
-
-#else
-
-/*
- * Make sure client drivers will still build on systems with no software
- * controllable voltage or current regulators.
- */
-static inline struct regulator *__must_check regulator_get(struct device *dev,
- const char *id)
-{
- /* Nothing except the stubbed out regulator API should be
- * looking at the value except to check if it is an error
- * value. Drivers are free to handle NULL specifically by
- * skipping all regulator API calls, but they don't have to.
- * Drivers which don't, should make sure they properly handle
- * corner cases of the API, such as regulator_get_voltage()
- * returning 0.
- */
- return NULL;
-}
-
-static inline struct regulator *__must_check
-devm_regulator_get(struct device *dev, const char *id)
-{
- return NULL;
-}
-
-static inline void regulator_put(struct regulator *regulator)
-{
-}
-
-static inline void devm_regulator_put(struct regulator *regulator)
-{
-}
-
-static inline int regulator_enable(struct regulator *regulator)
-{
- return 0;
-}
-
-static inline int regulator_disable(struct regulator *regulator)
-{
- return 0;
-}
-
-static inline int regulator_force_disable(struct regulator *regulator)
-{
- return 0;
-}
-
-static inline int regulator_disable_deferred(struct regulator *regulator,
- int ms)
-{
- return 0;
-}
-
-static inline int regulator_is_enabled(struct regulator *regulator)
-{
- return 1;
-}
-
-static inline int regulator_bulk_get(struct device *dev,
- int num_consumers,
- struct regulator_bulk_data *consumers)
-{
- return 0;
-}
-
-static inline int devm_regulator_bulk_get(struct device *dev, int num_consumers,
- struct regulator_bulk_data *consumers)
-{
- return 0;
-}
-
-static inline int regulator_bulk_enable(int num_consumers,
- struct regulator_bulk_data *consumers)
-{
- return 0;
-}
-
-static inline int regulator_bulk_disable(int num_consumers,
- struct regulator_bulk_data *consumers)
-{
- return 0;
-}
-
-static inline int regulator_bulk_force_disable(int num_consumers,
- struct regulator_bulk_data *consumers)
-{
- return 0;
-}
-
-static inline void regulator_bulk_free(int num_consumers,
- struct regulator_bulk_data *consumers)
-{
-}
-
-static inline int regulator_set_voltage(struct regulator *regulator,
- int min_uV, int max_uV)
-{
- return 0;
-}
-
-static inline int regulator_get_voltage(struct regulator *regulator)
-{
- return 0;
-}
-
-static inline int regulator_set_current_limit(struct regulator *regulator,
- int min_uA, int max_uA)
-{
- return 0;
-}
-
-static inline int regulator_get_current_limit(struct regulator *regulator)
-{
- return 0;
-}
-
-static inline int regulator_set_mode(struct regulator *regulator,
- unsigned int mode)
-{
- return 0;
-}
-
-static inline unsigned int regulator_get_mode(struct regulator *regulator)
-{
- return REGULATOR_MODE_NORMAL;
-}
-
-static inline int regulator_set_optimum_mode(struct regulator *regulator,
- int load_uA)
-{
- return REGULATOR_MODE_NORMAL;
-}
-
-static inline int regulator_register_notifier(struct regulator *regulator,
- struct notifier_block *nb)
-{
- return 0;
-}
-
-static inline int regulator_unregister_notifier(struct regulator *regulator,
- struct notifier_block *nb)
-{
- return 0;
-}
-
-static inline void *regulator_get_drvdata(struct regulator *regulator)
-{
- return NULL;
-}
-
-static inline void regulator_set_drvdata(struct regulator *regulator,
- void *data)
-{
-}
-
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/regulator/db8500-prcmu.h b/ANDROID_3.4.5/include/linux/regulator/db8500-prcmu.h
deleted file mode 100644
index 61206231..00000000
--- a/ANDROID_3.4.5/include/linux/regulator/db8500-prcmu.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson SA 2010
- *
- * License Terms: GNU General Public License v2
- *
- * Author: Bengt Jonsson <bengt.g.jonsson@stericsson.com> for ST-Ericsson
- *
- * Interface to power domain regulators on DB8500
- */
-
-#ifndef __REGULATOR_H__
-#define __REGULATOR_H__
-
-/* Number of DB8500 regulators and regulator enumeration */
-enum db8500_regulator_id {
- DB8500_REGULATOR_VAPE,
- DB8500_REGULATOR_VARM,
- DB8500_REGULATOR_VMODEM,
- DB8500_REGULATOR_VPLL,
- DB8500_REGULATOR_VSMPS1,
- DB8500_REGULATOR_VSMPS2,
- DB8500_REGULATOR_VSMPS3,
- DB8500_REGULATOR_VRF1,
- DB8500_REGULATOR_SWITCH_SVAMMDSP,
- DB8500_REGULATOR_SWITCH_SVAMMDSPRET,
- DB8500_REGULATOR_SWITCH_SVAPIPE,
- DB8500_REGULATOR_SWITCH_SIAMMDSP,
- DB8500_REGULATOR_SWITCH_SIAMMDSPRET,
- DB8500_REGULATOR_SWITCH_SIAPIPE,
- DB8500_REGULATOR_SWITCH_SGA,
- DB8500_REGULATOR_SWITCH_B2R2_MCDE,
- DB8500_REGULATOR_SWITCH_ESRAM12,
- DB8500_REGULATOR_SWITCH_ESRAM12RET,
- DB8500_REGULATOR_SWITCH_ESRAM34,
- DB8500_REGULATOR_SWITCH_ESRAM34RET,
- DB8500_NUM_REGULATORS
-};
-
-/*
- * Exported interface for CPUIdle only. This function is called with all
- * interrupts turned off.
- */
-int power_state_active_is_enabled(void);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/regulator/driver.h b/ANDROID_3.4.5/include/linux/regulator/driver.h
deleted file mode 100644
index fa8b55b8..00000000
--- a/ANDROID_3.4.5/include/linux/regulator/driver.h
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
- * driver.h -- SoC Regulator driver support.
- *
- * Copyright (C) 2007, 2008 Wolfson Microelectronics PLC.
- *
- * Author: Liam Girdwood <lrg@slimlogic.co.uk>
- *
- * 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.
- *
- * Regulator Driver Interface.
- */
-
-#ifndef __LINUX_REGULATOR_DRIVER_H_
-#define __LINUX_REGULATOR_DRIVER_H_
-
-#include <linux/device.h>
-#include <linux/notifier.h>
-#include <linux/regulator/consumer.h>
-
-struct regulator_dev;
-struct regulator_init_data;
-
-enum regulator_status {
- REGULATOR_STATUS_OFF,
- REGULATOR_STATUS_ON,
- REGULATOR_STATUS_ERROR,
- /* fast/normal/idle/standby are flavors of "on" */
- REGULATOR_STATUS_FAST,
- REGULATOR_STATUS_NORMAL,
- REGULATOR_STATUS_IDLE,
- REGULATOR_STATUS_STANDBY,
-};
-
-/**
- * struct regulator_ops - regulator operations.
- *
- * @enable: Configure the regulator as enabled.
- * @disable: Configure the regulator as disabled.
- * @is_enabled: Return 1 if the regulator is enabled, 0 if not.
- * May also return negative errno.
- *
- * @set_voltage: Set the voltage for the regulator within the range specified.
- * The driver should select the voltage closest to min_uV.
- * @set_voltage_sel: Set the voltage for the regulator using the specified
- * selector.
- * @get_voltage: Return the currently configured voltage for the regulator.
- * @get_voltage_sel: Return the currently configured voltage selector for the
- * regulator.
- * @list_voltage: Return one of the supported voltages, in microvolts; zero
- * if the selector indicates a voltage that is unusable on this system;
- * or negative errno. Selectors range from zero to one less than
- * regulator_desc.n_voltages. Voltages may be reported in any order.
- *
- * @set_current_limit: Configure a limit for a current-limited regulator.
- * @get_current_limit: Get the configured limit for a current-limited regulator.
- *
- * @set_mode: Set the configured operating mode for the regulator.
- * @get_mode: Get the configured operating mode for the regulator.
- * @get_status: Return actual (not as-configured) status of regulator, as a
- * REGULATOR_STATUS value (or negative errno)
- * @get_optimum_mode: Get the most efficient operating mode for the regulator
- * when running with the specified parameters.
- *
- * @enable_time: Time taken for the regulator voltage output voltage to
- * stabilise after being enabled, in microseconds.
- * @set_voltage_time_sel: Time taken for the regulator voltage output voltage
- * to stabilise after being set to a new value, in microseconds.
- * The function provides the from and to voltage selector, the
- * function should return the worst case.
- *
- * @set_suspend_voltage: Set the voltage for the regulator when the system
- * is suspended.
- * @set_suspend_enable: Mark the regulator as enabled when the system is
- * suspended.
- * @set_suspend_disable: Mark the regulator as disabled when the system is
- * suspended.
- * @set_suspend_mode: Set the operating mode for the regulator when the
- * system is suspended.
- *
- * This struct describes regulator operations which can be implemented by
- * regulator chip drivers.
- */
-struct regulator_ops {
-
- /* enumerate supported voltages */
- int (*list_voltage) (struct regulator_dev *, unsigned selector);
-
- /* get/set regulator voltage */
- int (*set_voltage) (struct regulator_dev *, int min_uV, int max_uV,
- unsigned *selector);
- int (*set_voltage_sel) (struct regulator_dev *, unsigned selector);
- int (*get_voltage) (struct regulator_dev *);
- int (*get_voltage_sel) (struct regulator_dev *);
-
- /* get/set regulator current */
- int (*set_current_limit) (struct regulator_dev *,
- int min_uA, int max_uA);
- int (*get_current_limit) (struct regulator_dev *);
-
- /* enable/disable regulator */
- int (*enable) (struct regulator_dev *);
- int (*disable) (struct regulator_dev *);
- int (*is_enabled) (struct regulator_dev *);
-
- /* get/set regulator operating mode (defined in consumer.h) */
- int (*set_mode) (struct regulator_dev *, unsigned int mode);
- unsigned int (*get_mode) (struct regulator_dev *);
-
- /* Time taken to enable or set voltage on the regulator */
- int (*enable_time) (struct regulator_dev *);
- int (*set_voltage_time_sel) (struct regulator_dev *,
- unsigned int old_selector,
- unsigned int new_selector);
-
- /* report regulator status ... most other accessors report
- * control inputs, this reports results of combining inputs
- * from Linux (and other sources) with the actual load.
- * returns REGULATOR_STATUS_* or negative errno.
- */
- int (*get_status)(struct regulator_dev *);
-
- /* get most efficient regulator operating mode for load */
- unsigned int (*get_optimum_mode) (struct regulator_dev *, int input_uV,
- int output_uV, int load_uA);
-
- /* the operations below are for configuration of regulator state when
- * its parent PMIC enters a global STANDBY/HIBERNATE state */
-
- /* set regulator suspend voltage */
- int (*set_suspend_voltage) (struct regulator_dev *, int uV);
-
- /* enable/disable regulator in suspend state */
- int (*set_suspend_enable) (struct regulator_dev *);
- int (*set_suspend_disable) (struct regulator_dev *);
-
- /* set regulator suspend operating mode (defined in consumer.h) */
- int (*set_suspend_mode) (struct regulator_dev *, unsigned int mode);
-};
-
-/*
- * Regulators can either control voltage or current.
- */
-enum regulator_type {
- REGULATOR_VOLTAGE,
- REGULATOR_CURRENT,
-};
-
-/**
- * struct regulator_desc - Regulator descriptor
- *
- * Each regulator registered with the core is described with a structure of
- * this type.
- *
- * @name: Identifying name for the regulator.
- * @supply_name: Identifying the regulator supply
- * @id: Numerical identifier for the regulator.
- * @n_voltages: Number of selectors available for ops.list_voltage().
- * @ops: Regulator operations table.
- * @irq: Interrupt number for the regulator.
- * @type: Indicates if the regulator is a voltage or current regulator.
- * @owner: Module providing the regulator, used for refcounting.
- */
-struct regulator_desc {
- const char *name;
- const char *supply_name;
- int id;
- unsigned n_voltages;
- struct regulator_ops *ops;
- int irq;
- enum regulator_type type;
- struct module *owner;
-};
-
-/*
- * struct regulator_dev
- *
- * Voltage / Current regulator class device. One for each
- * regulator.
- *
- * This should *not* be used directly by anything except the regulator
- * core and notification injection (which should take the mutex and do
- * no other direct access).
- */
-struct regulator_dev {
- struct regulator_desc *desc;
- int exclusive;
- u32 use_count;
- u32 open_count;
-
- /* lists we belong to */
- struct list_head list; /* list of all regulators */
-
- /* lists we own */
- struct list_head consumer_list; /* consumers we supply */
-
- struct blocking_notifier_head notifier;
- struct mutex mutex; /* consumer lock */
- struct module *owner;
- struct device dev;
- struct regulation_constraints *constraints;
- struct regulator *supply; /* for tree */
-
- struct delayed_work disable_work;
- int deferred_disables;
-
- void *reg_data; /* regulator_dev data */
-
- struct dentry *debugfs;
-};
-
-struct regulator_dev *regulator_register(struct regulator_desc *regulator_desc,
- struct device *dev, const struct regulator_init_data *init_data,
- void *driver_data, struct device_node *of_node);
-void regulator_unregister(struct regulator_dev *rdev);
-
-int regulator_notifier_call_chain(struct regulator_dev *rdev,
- unsigned long event, void *data);
-
-void *rdev_get_drvdata(struct regulator_dev *rdev);
-struct device *rdev_get_dev(struct regulator_dev *rdev);
-int rdev_get_id(struct regulator_dev *rdev);
-
-int regulator_mode_to_status(unsigned int);
-
-void *regulator_get_init_drvdata(struct regulator_init_data *reg_init_data);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/regulator/fixed.h b/ANDROID_3.4.5/include/linux/regulator/fixed.h
deleted file mode 100644
index 936a7d8c..00000000
--- a/ANDROID_3.4.5/include/linux/regulator/fixed.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * fixed.h
- *
- * Copyright 2008 Wolfson Microelectronics PLC.
- *
- * Author: Mark Brown <broonie@opensource.wolfsonmicro.com>
- *
- * Copyright (c) 2009 Nokia Corporation
- * Roger Quadros <ext-roger.quadros@nokia.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 __REGULATOR_FIXED_H
-#define __REGULATOR_FIXED_H
-
-struct regulator_init_data;
-
-/**
- * struct fixed_voltage_config - fixed_voltage_config structure
- * @supply_name: Name of the regulator supply
- * @microvolts: Output voltage of regulator
- * @gpio: GPIO to use for enable control
- * set to -EINVAL if not used
- * @startup_delay: Start-up time in microseconds
- * @enable_high: Polarity of enable GPIO
- * 1 = Active high, 0 = Active low
- * @enabled_at_boot: Whether regulator has been enabled at
- * boot or not. 1 = Yes, 0 = No
- * This is used to keep the regulator at
- * the default state
- * @init_data: regulator_init_data
- *
- * This structure contains fixed voltage regulator configuration
- * information that must be passed by platform code to the fixed
- * voltage regulator driver.
- */
-struct fixed_voltage_config {
- const char *supply_name;
- int microvolts;
- int gpio;
- unsigned startup_delay;
- unsigned enable_high:1;
- unsigned enabled_at_boot:1;
- struct regulator_init_data *init_data;
-};
-
-struct regulator_consumer_supply;
-
-#if IS_ENABLED(CONFIG_REGULATOR)
-struct platform_device *regulator_register_fixed(int id,
- struct regulator_consumer_supply *supplies, int num_supplies);
-#else
-static inline struct platform_device *regulator_register_fixed(int id,
- struct regulator_consumer_supply *supplies, int num_supplies)
-{
- return NULL;
-}
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/regulator/gpio-regulator.h b/ANDROID_3.4.5/include/linux/regulator/gpio-regulator.h
deleted file mode 100644
index 19fbd267..00000000
--- a/ANDROID_3.4.5/include/linux/regulator/gpio-regulator.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * gpio-regulator.h
- *
- * Copyright 2011 Heiko Stuebner <heiko@sntech.de>
- *
- * based on fixed.h
- *
- * Copyright 2008 Wolfson Microelectronics PLC.
- *
- * Author: Mark Brown <broonie@opensource.wolfsonmicro.com>
- *
- * Copyright (c) 2009 Nokia Corporation
- * Roger Quadros <ext-roger.quadros@nokia.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 __REGULATOR_GPIO_H
-#define __REGULATOR_GPIO_H
-
-struct regulator_init_data;
-
-enum regulator_type;
-
-/**
- * struct gpio_regulator_state - state description
- * @value: microvolts or microamps
- * @gpios: bitfield of gpio target-states for the value
- *
- * This structure describes a supported setting of the regulator
- * and the necessary gpio-state to achieve it.
- *
- * The n-th bit in the bitfield describes the state of the n-th GPIO
- * from the gpios-array defined in gpio_regulator_config below.
- */
-struct gpio_regulator_state {
- int value;
- int gpios;
-};
-
-/**
- * struct gpio_regulator_config - config structure
- * @supply_name: Name of the regulator supply
- * @enable_gpio: GPIO to use for enable control
- * set to -EINVAL if not used
- * @enable_high: Polarity of enable GPIO
- * 1 = Active high, 0 = Active low
- * @enabled_at_boot: Whether regulator has been enabled at
- * boot or not. 1 = Yes, 0 = No
- * This is used to keep the regulator at
- * the default state
- * @startup_delay: Start-up time in microseconds
- * @gpios: Array containing the gpios needed to control
- * the setting of the regulator
- * @nr_gpios: Number of gpios
- * @states: Array of gpio_regulator_state entries describing
- * the gpio state for specific voltages
- * @nr_states: Number of states available
- * @regulator_type: either REGULATOR_CURRENT or REGULATOR_VOLTAGE
- * @init_data: regulator_init_data
- *
- * This structure contains gpio-voltage regulator configuration
- * information that must be passed by platform code to the
- * gpio-voltage regulator driver.
- */
-struct gpio_regulator_config {
- const char *supply_name;
-
- int enable_gpio;
- unsigned enable_high:1;
- unsigned enabled_at_boot:1;
- unsigned startup_delay;
-
- struct gpio *gpios;
- int nr_gpios;
-
- struct gpio_regulator_state *states;
- int nr_states;
-
- enum regulator_type type;
- struct regulator_init_data *init_data;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/regulator/lp3971.h b/ANDROID_3.4.5/include/linux/regulator/lp3971.h
deleted file mode 100644
index 61401649..00000000
--- a/ANDROID_3.4.5/include/linux/regulator/lp3971.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * National Semiconductors LP3971 PMIC chip client interface
- *
- * Copyright (C) 2009 Samsung Electronics
- * Author: Marek Szyprowski <m.szyprowski@samsung.com>
- *
- * Based on wm8400.h
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef __LINUX_REGULATOR_LP3971_H
-#define __LINUX_REGULATOR_LP3971_H
-
-#include <linux/regulator/machine.h>
-
-#define LP3971_LDO1 0
-#define LP3971_LDO2 1
-#define LP3971_LDO3 2
-#define LP3971_LDO4 3
-#define LP3971_LDO5 4
-
-#define LP3971_DCDC1 5
-#define LP3971_DCDC2 6
-#define LP3971_DCDC3 7
-
-#define LP3971_NUM_REGULATORS 8
-
-struct lp3971_regulator_subdev {
- int id;
- struct regulator_init_data *initdata;
-};
-
-struct lp3971_platform_data {
- int num_regulators;
- struct lp3971_regulator_subdev *regulators;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/regulator/lp3972.h b/ANDROID_3.4.5/include/linux/regulator/lp3972.h
deleted file mode 100644
index 9bb7389b..00000000
--- a/ANDROID_3.4.5/include/linux/regulator/lp3972.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * National Semiconductors LP3972 PMIC chip client interface
- *
- * Based on lp3971.h
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef __LINUX_REGULATOR_LP3972_H
-#define __LINUX_REGULATOR_LP3972_H
-
-#include <linux/regulator/machine.h>
-
-#define LP3972_LDO1 0
-#define LP3972_LDO2 1
-#define LP3972_LDO3 2
-#define LP3972_LDO4 3
-#define LP3972_LDO5 4
-
-#define LP3972_DCDC1 5
-#define LP3972_DCDC2 6
-#define LP3972_DCDC3 7
-
-#define LP3972_NUM_REGULATORS 8
-
-struct lp3972_regulator_subdev {
- int id;
- struct regulator_init_data *initdata;
-};
-
-struct lp3972_platform_data {
- int num_regulators;
- struct lp3972_regulator_subdev *regulators;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/regulator/machine.h b/ANDROID_3.4.5/include/linux/regulator/machine.h
deleted file mode 100644
index b0210844..00000000
--- a/ANDROID_3.4.5/include/linux/regulator/machine.h
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- * machine.h -- SoC Regulator support, machine/board driver API.
- *
- * Copyright (C) 2007, 2008 Wolfson Microelectronics PLC.
- *
- * Author: Liam Girdwood <lrg@slimlogic.co.uk>
- *
- * 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.
- *
- * Regulator Machine/Board Interface.
- */
-
-#ifndef __LINUX_REGULATOR_MACHINE_H_
-#define __LINUX_REGULATOR_MACHINE_H_
-
-#include <linux/regulator/consumer.h>
-#include <linux/suspend.h>
-
-struct regulator;
-
-/*
- * Regulator operation constraint flags. These flags are used to enable
- * certain regulator operations and can be OR'ed together.
- *
- * VOLTAGE: Regulator output voltage can be changed by software on this
- * board/machine.
- * CURRENT: Regulator output current can be changed by software on this
- * board/machine.
- * MODE: Regulator operating mode can be changed by software on this
- * board/machine.
- * STATUS: Regulator can be enabled and disabled.
- * DRMS: Dynamic Regulator Mode Switching is enabled for this regulator.
- */
-
-#define REGULATOR_CHANGE_VOLTAGE 0x1
-#define REGULATOR_CHANGE_CURRENT 0x2
-#define REGULATOR_CHANGE_MODE 0x4
-#define REGULATOR_CHANGE_STATUS 0x8
-#define REGULATOR_CHANGE_DRMS 0x10
-
-/**
- * struct regulator_state - regulator state during low power system states
- *
- * This describes a regulators state during a system wide low power
- * state. One of enabled or disabled must be set for the
- * configuration to be applied.
- *
- * @uV: Operating voltage during suspend.
- * @mode: Operating mode during suspend.
- * @enabled: Enabled during suspend.
- * @disabled: Disabled during suspend.
- */
-struct regulator_state {
- int uV; /* suspend voltage */
- unsigned int mode; /* suspend regulator operating mode */
- int enabled; /* is regulator enabled in this suspend state */
- int disabled; /* is the regulator disbled in this suspend state */
-};
-
-/**
- * struct regulation_constraints - regulator operating constraints.
- *
- * This struct describes regulator and board/machine specific constraints.
- *
- * @name: Descriptive name for the constraints, used for display purposes.
- *
- * @min_uV: Smallest voltage consumers may set.
- * @max_uV: Largest voltage consumers may set.
- * @uV_offset: Offset applied to voltages from consumer to compensate for
- * voltage drops.
- *
- * @min_uA: Smallest current consumers may set.
- * @max_uA: Largest current consumers may set.
- *
- * @valid_modes_mask: Mask of modes which may be configured by consumers.
- * @valid_ops_mask: Operations which may be performed by consumers.
- *
- * @always_on: Set if the regulator should never be disabled.
- * @boot_on: Set if the regulator is enabled when the system is initially
- * started. If the regulator is not enabled by the hardware or
- * bootloader then it will be enabled when the constraints are
- * applied.
- * @apply_uV: Apply the voltage constraint when initialising.
- *
- * @input_uV: Input voltage for regulator when supplied by another regulator.
- *
- * @state_disk: State for regulator when system is suspended in disk mode.
- * @state_mem: State for regulator when system is suspended in mem mode.
- * @state_standby: State for regulator when system is suspended in standby
- * mode.
- * @initial_state: Suspend state to set by default.
- * @initial_mode: Mode to set at startup.
- */
-struct regulation_constraints {
-
- const char *name;
-
- /* voltage output range (inclusive) - for voltage control */
- int min_uV;
- int max_uV;
-
- int uV_offset;
-
- /* current output range (inclusive) - for current control */
- int min_uA;
- int max_uA;
-
- /* valid regulator operating modes for this machine */
- unsigned int valid_modes_mask;
-
- /* valid operations for regulator on this machine */
- unsigned int valid_ops_mask;
-
- /* regulator input voltage - only if supply is another regulator */
- int input_uV;
-
- /* regulator suspend states for global PMIC STANDBY/HIBERNATE */
- struct regulator_state state_disk;
- struct regulator_state state_mem;
- struct regulator_state state_standby;
- suspend_state_t initial_state; /* suspend state to set at init */
-
- /* mode to set on startup */
- unsigned int initial_mode;
-
- /* constraint flags */
- unsigned always_on:1; /* regulator never off when system is on */
- unsigned boot_on:1; /* bootloader/firmware enabled regulator */
- unsigned apply_uV:1; /* apply uV constraint if min == max */
-};
-
-/**
- * struct regulator_consumer_supply - supply -> device mapping
- *
- * This maps a supply name to a device. Use of dev_name allows support for
- * buses which make struct device available late such as I2C.
- *
- * @dev_name: Result of dev_name() for the consumer.
- * @supply: Name for the supply.
- */
-struct regulator_consumer_supply {
- const char *dev_name; /* dev_name() for consumer */
- const char *supply; /* consumer supply - e.g. "vcc" */
-};
-
-/* Initialize struct regulator_consumer_supply */
-#define REGULATOR_SUPPLY(_name, _dev_name) \
-{ \
- .supply = _name, \
- .dev_name = _dev_name, \
-}
-
-/**
- * struct regulator_init_data - regulator platform initialisation data.
- *
- * Initialisation constraints, our supply and consumers supplies.
- *
- * @supply_regulator: Parent regulator. Specified using the regulator name
- * as it appears in the name field in sysfs, which can
- * be explicitly set using the constraints field 'name'.
- *
- * @constraints: Constraints. These must be specified for the regulator to
- * be usable.
- * @num_consumer_supplies: Number of consumer device supplies.
- * @consumer_supplies: Consumer device supply configuration.
- *
- * @regulator_init: Callback invoked when the regulator has been registered.
- * @driver_data: Data passed to regulator_init.
- */
-struct regulator_init_data {
- const char *supply_regulator; /* or NULL for system supply */
-
- struct regulation_constraints constraints;
-
- int num_consumer_supplies;
- struct regulator_consumer_supply *consumer_supplies;
-
- /* optional regulator machine specific init */
- int (*regulator_init)(void *driver_data);
- void *driver_data; /* core does not touch this */
-};
-
-int regulator_suspend_prepare(suspend_state_t state);
-int regulator_suspend_finish(void);
-
-#ifdef CONFIG_REGULATOR
-void regulator_has_full_constraints(void);
-void regulator_use_dummy_regulator(void);
-#else
-static inline void regulator_has_full_constraints(void)
-{
-}
-
-static inline void regulator_use_dummy_regulator(void)
-{
-}
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/regulator/max1586.h b/ANDROID_3.4.5/include/linux/regulator/max1586.h
deleted file mode 100644
index de9a7fae..00000000
--- a/ANDROID_3.4.5/include/linux/regulator/max1586.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * max1586.h -- Voltage regulation for the Maxim 1586
- *
- * Copyright (C) 2008 Robert Jarzmik
- *
- * 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
- */
-
-#ifndef REGULATOR_MAX1586
-#define REGULATOR_MAX1586
-
-#include <linux/regulator/machine.h>
-
-#define MAX1586_V3 0
-#define MAX1586_V6 1
-
-/* precalculated values for v3_gain */
-#define MAX1586_GAIN_NO_R24 1000000 /* 700000 .. 1475000 mV */
-#define MAX1586_GAIN_R24_3k32 1051098 /* 735768 .. 1550369 mV */
-#define MAX1586_GAIN_R24_5k11 1078648 /* 755053 .. 1591005 mV */
-#define MAX1586_GAIN_R24_7k5 1115432 /* 780802 .. 1645262 mV */
-
-/**
- * max1586_subdev_data - regulator data
- * @id: regulator Id (either MAX1586_V3 or MAX1586_V6)
- * @name: regulator cute name (example for V3: "vcc_core")
- * @platform_data: regulator init data (constraints, supplies, ...)
- */
-struct max1586_subdev_data {
- int id;
- char *name;
- struct regulator_init_data *platform_data;
-};
-
-/**
- * max1586_platform_data - platform data for max1586
- * @num_subdevs: number of regulators used (may be 1 or 2)
- * @subdevs: regulator used
- * At most, there will be a regulator for V3 and one for V6 voltages.
- * @v3_gain: gain on the V3 voltage output multiplied by 1e6.
- * This can be calculated as ((1 + R24/R25 + R24/185.5kOhm) * 1e6)
- * for an external resistor configuration as described in the
- * data sheet (R25=100kOhm).
- */
-struct max1586_platform_data {
- int num_subdevs;
- struct max1586_subdev_data *subdevs;
- int v3_gain;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/regulator/max8649.h b/ANDROID_3.4.5/include/linux/regulator/max8649.h
deleted file mode 100644
index 417d14ec..00000000
--- a/ANDROID_3.4.5/include/linux/regulator/max8649.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Interface of Maxim max8649
- *
- * Copyright (C) 2009-2010 Marvell International Ltd.
- * Haojian Zhuang <haojian.zhuang@marvell.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.
- */
-
-#ifndef __LINUX_REGULATOR_MAX8649_H
-#define __LINUX_REGULATOR_MAX8649_H
-
-#include <linux/regulator/machine.h>
-
-enum {
- MAX8649_EXTCLK_26MHZ = 0,
- MAX8649_EXTCLK_13MHZ,
- MAX8649_EXTCLK_19MHZ, /* 19.2MHz */
-};
-
-enum {
- MAX8649_RAMP_32MV = 0,
- MAX8649_RAMP_16MV,
- MAX8649_RAMP_8MV,
- MAX8649_RAMP_4MV,
- MAX8649_RAMP_2MV,
- MAX8649_RAMP_1MV,
- MAX8649_RAMP_0_5MV,
- MAX8649_RAMP_0_25MV,
-};
-
-struct max8649_platform_data {
- struct regulator_init_data *regulator;
-
- unsigned mode:2; /* bit[1:0] = VID1,VID0 */
- unsigned extclk_freq:2;
- unsigned extclk:1;
- unsigned ramp_timing:3;
- unsigned ramp_down:1;
-};
-
-#endif /* __LINUX_REGULATOR_MAX8649_H */
diff --git a/ANDROID_3.4.5/include/linux/regulator/max8660.h b/ANDROID_3.4.5/include/linux/regulator/max8660.h
deleted file mode 100644
index 99367636..00000000
--- a/ANDROID_3.4.5/include/linux/regulator/max8660.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * max8660.h -- Voltage regulation for the Maxim 8660/8661
- *
- * Copyright (C) 2009 Wolfram Sang, Pengutronix e.K.
- *
- * 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 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
- */
-
-#ifndef __LINUX_REGULATOR_MAX8660_H
-#define __LINUX_REGULATOR_MAX8660_H
-
-#include <linux/regulator/machine.h>
-
-enum {
- MAX8660_V3,
- MAX8660_V4,
- MAX8660_V5,
- MAX8660_V6,
- MAX8660_V7,
- MAX8660_V_END,
-};
-
-/**
- * max8660_subdev_data - regulator subdev data
- * @id: regulator id
- * @name: regulator name
- * @platform_data: regulator init data
- */
-struct max8660_subdev_data {
- int id;
- char *name;
- struct regulator_init_data *platform_data;
-};
-
-/**
- * max8660_platform_data - platform data for max8660
- * @num_subdevs: number of regulators used
- * @subdevs: pointer to regulators used
- * @en34_is_high: if EN34 is driven high, regulators cannot be en-/disabled.
- */
-struct max8660_platform_data {
- int num_subdevs;
- struct max8660_subdev_data *subdevs;
- unsigned en34_is_high:1;
-};
-#endif
diff --git a/ANDROID_3.4.5/include/linux/regulator/max8952.h b/ANDROID_3.4.5/include/linux/regulator/max8952.h
deleted file mode 100644
index 45e42855..00000000
--- a/ANDROID_3.4.5/include/linux/regulator/max8952.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * max8952.h - Voltage regulation for the Maxim 8952
- *
- * Copyright (C) 2010 Samsung Electrnoics
- * MyungJoo Ham <myungjoo.ham@samsung.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
- */
-
-#ifndef REGULATOR_MAX8952
-#define REGULATOR_MAX8952
-
-#include <linux/regulator/machine.h>
-
-enum {
- MAX8952_DVS_MODE0,
- MAX8952_DVS_MODE1,
- MAX8952_DVS_MODE2,
- MAX8952_DVS_MODE3,
-};
-
-enum {
- MAX8952_DVS_770mV = 0,
- MAX8952_DVS_780mV,
- MAX8952_DVS_790mV,
- MAX8952_DVS_800mV,
- MAX8952_DVS_810mV,
- MAX8952_DVS_820mV,
- MAX8952_DVS_830mV,
- MAX8952_DVS_840mV,
- MAX8952_DVS_850mV,
- MAX8952_DVS_860mV,
- MAX8952_DVS_870mV,
- MAX8952_DVS_880mV,
- MAX8952_DVS_890mV,
- MAX8952_DVS_900mV,
- MAX8952_DVS_910mV,
- MAX8952_DVS_920mV,
- MAX8952_DVS_930mV,
- MAX8952_DVS_940mV,
- MAX8952_DVS_950mV,
- MAX8952_DVS_960mV,
- MAX8952_DVS_970mV,
- MAX8952_DVS_980mV,
- MAX8952_DVS_990mV,
- MAX8952_DVS_1000mV,
- MAX8952_DVS_1010mV,
- MAX8952_DVS_1020mV,
- MAX8952_DVS_1030mV,
- MAX8952_DVS_1040mV,
- MAX8952_DVS_1050mV,
- MAX8952_DVS_1060mV,
- MAX8952_DVS_1070mV,
- MAX8952_DVS_1080mV,
- MAX8952_DVS_1090mV,
- MAX8952_DVS_1100mV,
- MAX8952_DVS_1110mV,
- MAX8952_DVS_1120mV,
- MAX8952_DVS_1130mV,
- MAX8952_DVS_1140mV,
- MAX8952_DVS_1150mV,
- MAX8952_DVS_1160mV,
- MAX8952_DVS_1170mV,
- MAX8952_DVS_1180mV,
- MAX8952_DVS_1190mV,
- MAX8952_DVS_1200mV,
- MAX8952_DVS_1210mV,
- MAX8952_DVS_1220mV,
- MAX8952_DVS_1230mV,
- MAX8952_DVS_1240mV,
- MAX8952_DVS_1250mV,
- MAX8952_DVS_1260mV,
- MAX8952_DVS_1270mV,
- MAX8952_DVS_1280mV,
- MAX8952_DVS_1290mV,
- MAX8952_DVS_1300mV,
- MAX8952_DVS_1310mV,
- MAX8952_DVS_1320mV,
- MAX8952_DVS_1330mV,
- MAX8952_DVS_1340mV,
- MAX8952_DVS_1350mV,
- MAX8952_DVS_1360mV,
- MAX8952_DVS_1370mV,
- MAX8952_DVS_1380mV,
- MAX8952_DVS_1390mV,
- MAX8952_DVS_1400mV,
-};
-
-enum {
- MAX8952_SYNC_FREQ_26MHZ, /* Default */
- MAX8952_SYNC_FREQ_13MHZ,
- MAX8952_SYNC_FREQ_19_2MHZ,
-};
-
-enum {
- MAX8952_RAMP_32mV_us = 0, /* Default */
- MAX8952_RAMP_16mV_us,
- MAX8952_RAMP_8mV_us,
- MAX8952_RAMP_4mV_us,
- MAX8952_RAMP_2mV_us,
- MAX8952_RAMP_1mV_us,
- MAX8952_RAMP_0_5mV_us,
- MAX8952_RAMP_0_25mV_us,
-};
-
-#define MAX8952_NUM_DVS_MODE 4
-
-struct max8952_platform_data {
- int gpio_vid0;
- int gpio_vid1;
- int gpio_en;
-
- u8 default_mode;
- u8 dvs_mode[MAX8952_NUM_DVS_MODE]; /* MAX8952_DVS_MODEx_XXXXmV */
-
- u8 sync_freq;
- u8 ramp_speed;
-
- struct regulator_init_data reg_data;
-};
-
-
-#endif /* REGULATOR_MAX8952 */
diff --git a/ANDROID_3.4.5/include/linux/regulator/of_regulator.h b/ANDROID_3.4.5/include/linux/regulator/of_regulator.h
deleted file mode 100644
index 769704f2..00000000
--- a/ANDROID_3.4.5/include/linux/regulator/of_regulator.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * OpenFirmware regulator support routines
- *
- */
-
-#ifndef __LINUX_OF_REG_H
-#define __LINUX_OF_REG_H
-
-#if defined(CONFIG_OF)
-extern struct regulator_init_data
- *of_get_regulator_init_data(struct device *dev,
- struct device_node *node);
-#else
-static inline struct regulator_init_data
- *of_get_regulator_init_data(struct device *dev,
- struct device_node *node)
-{
- return NULL;
-}
-#endif /* CONFIG_OF */
-
-#endif /* __LINUX_OF_REG_H */
diff --git a/ANDROID_3.4.5/include/linux/regulator/tps62360.h b/ANDROID_3.4.5/include/linux/regulator/tps62360.h
deleted file mode 100644
index 6a5c1b2c..00000000
--- a/ANDROID_3.4.5/include/linux/regulator/tps62360.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * tps62360.h -- TI tps62360
- *
- * Interface for regulator driver for TI TPS62360 Processor core supply
- *
- * Copyright (C) 2012 NVIDIA Corporation
-
- * Author: Laxman Dewangan <ldewangan@nvidia.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.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- */
-
-#ifndef __LINUX_REGULATOR_TPS62360_H
-#define __LINUX_REGULATOR_TPS62360_H
-
-#include <linux/regulator/machine.h>
-
-/*
- * struct tps62360_regulator_platform_data - tps62360 regulator platform data.
- *
- * @reg_init_data: The regulator init data.
- * @en_force_pwm: Enable force pwm or not.
- * @en_discharge: Enable discharge the output capacitor via internal
- * register.
- * @en_internal_pulldn: internal pull down enable or not.
- * @vsel0_gpio: Gpio number for vsel0. It should be -1 if this is tied with
- * fixed logic.
- * @vsel1_gpio: Gpio number for vsel1. It should be -1 if this is tied with
- * fixed logic.
- * @vsel0_def_state: Default state of vsel0. 1 if it is high else 0.
- * @vsel1_def_state: Default state of vsel1. 1 if it is high else 0.
- */
-struct tps62360_regulator_platform_data {
- struct regulator_init_data reg_init_data;
- bool en_force_pwm;
- bool en_discharge;
- bool en_internal_pulldn;
- int vsel0_gpio;
- int vsel1_gpio;
- int vsel0_def_state;
- int vsel1_def_state;
-};
-
-#endif /* __LINUX_REGULATOR_TPS62360_H */
diff --git a/ANDROID_3.4.5/include/linux/regulator/tps6507x.h b/ANDROID_3.4.5/include/linux/regulator/tps6507x.h
deleted file mode 100644
index 4892f591..00000000
--- a/ANDROID_3.4.5/include/linux/regulator/tps6507x.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * tps6507x.h -- Voltage regulation for the Texas Instruments TPS6507X
- *
- * Copyright (C) 2010 Texas Instruments, Inc.
- *
- * 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
- *
- * 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
- */
-
-#ifndef REGULATOR_TPS6507X
-#define REGULATOR_TPS6507X
-
-/**
- * tps6507x_reg_platform_data - platform data for tps6507x
- * @defdcdc_default: Defines whether DCDC high or the low register controls
- * output voltage by default. Valid for DCDC2 and DCDC3 outputs only.
- */
-struct tps6507x_reg_platform_data {
- bool defdcdc_default;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/regulator/userspace-consumer.h b/ANDROID_3.4.5/include/linux/regulator/userspace-consumer.h
deleted file mode 100644
index b4554ce9..00000000
--- a/ANDROID_3.4.5/include/linux/regulator/userspace-consumer.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef __REGULATOR_PLATFORM_CONSUMER_H_
-#define __REGULATOR_PLATFORM_CONSUMER_H_
-
-struct regulator_consumer_supply;
-
-/**
- * struct regulator_userspace_consumer_data - line consumer
- * initialisation data.
- *
- * @name: Name for the consumer line
- * @num_supplies: Number of supplies feeding the line
- * @supplies: Supplies configuration.
- * @init_on: Set if the regulators supplying the line should be
- * enabled during initialisation
- */
-struct regulator_userspace_consumer_data {
- const char *name;
-
- int num_supplies;
- struct regulator_bulk_data *supplies;
-
- bool init_on;
-};
-
-#endif /* __REGULATOR_PLATFORM_CONSUMER_H_ */
diff --git a/ANDROID_3.4.5/include/linux/reiserfs_fs.h b/ANDROID_3.4.5/include/linux/reiserfs_fs.h
deleted file mode 100644
index ea3700cd..00000000
--- a/ANDROID_3.4.5/include/linux/reiserfs_fs.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright 1996, 1997, 1998 Hans Reiser, see reiserfs/README for licensing and copyright details
- */
-#ifndef _LINUX_REISER_FS_H
-#define _LINUX_REISER_FS_H
-
-#include <linux/types.h>
-#include <linux/magic.h>
-
-/*
- * include/linux/reiser_fs.h
- *
- * Reiser File System constants and structures
- *
- */
-
-/* ioctl's command */
-#define REISERFS_IOC_UNPACK _IOW(0xCD,1,long)
-/* define following flags to be the same as in ext2, so that chattr(1),
- lsattr(1) will work with us. */
-#define REISERFS_IOC_GETFLAGS FS_IOC_GETFLAGS
-#define REISERFS_IOC_SETFLAGS FS_IOC_SETFLAGS
-#define REISERFS_IOC_GETVERSION FS_IOC_GETVERSION
-#define REISERFS_IOC_SETVERSION FS_IOC_SETVERSION
-
-#endif /* _LINUX_REISER_FS_H */
diff --git a/ANDROID_3.4.5/include/linux/reiserfs_xattr.h b/ANDROID_3.4.5/include/linux/reiserfs_xattr.h
deleted file mode 100644
index d8ce17c2..00000000
--- a/ANDROID_3.4.5/include/linux/reiserfs_xattr.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- File: linux/reiserfs_xattr.h
-*/
-
-#ifndef _LINUX_REISERFS_XATTR_H
-#define _LINUX_REISERFS_XATTR_H
-
-#include <linux/types.h>
-
-/* Magic value in header */
-#define REISERFS_XATTR_MAGIC 0x52465841 /* "RFXA" */
-
-struct reiserfs_xattr_header {
- __le32 h_magic; /* magic number for identification */
- __le32 h_hash; /* hash of the value */
-};
-
-struct reiserfs_security_handle {
- char *name;
- void *value;
- size_t length;
-};
-
-#endif /* _LINUX_REISERFS_XATTR_H */
diff --git a/ANDROID_3.4.5/include/linux/relay.h b/ANDROID_3.4.5/include/linux/relay.h
deleted file mode 100644
index 91cacc34..00000000
--- a/ANDROID_3.4.5/include/linux/relay.h
+++ /dev/null
@@ -1,292 +0,0 @@
-/*
- * linux/include/linux/relay.h
- *
- * Copyright (C) 2002, 2003 - Tom Zanussi (zanussi@us.ibm.com), IBM Corp
- * Copyright (C) 1999, 2000, 2001, 2002 - Karim Yaghmour (karim@opersys.com)
- *
- * CONFIG_RELAY definitions and declarations
- */
-
-#ifndef _LINUX_RELAY_H
-#define _LINUX_RELAY_H
-
-#include <linux/types.h>
-#include <linux/sched.h>
-#include <linux/timer.h>
-#include <linux/wait.h>
-#include <linux/list.h>
-#include <linux/bug.h>
-#include <linux/fs.h>
-#include <linux/poll.h>
-#include <linux/kref.h>
-
-/* Needs a _much_ better name... */
-#define FIX_SIZE(x) ((((x) - 1) & PAGE_MASK) + PAGE_SIZE)
-
-/*
- * Tracks changes to rchan/rchan_buf structs
- */
-#define RELAYFS_CHANNEL_VERSION 7
-
-/*
- * Per-cpu relay channel buffer
- */
-struct rchan_buf
-{
- void *start; /* start of channel buffer */
- void *data; /* start of current sub-buffer */
- size_t offset; /* current offset into sub-buffer */
- size_t subbufs_produced; /* count of sub-buffers produced */
- size_t subbufs_consumed; /* count of sub-buffers consumed */
- struct rchan *chan; /* associated channel */
- wait_queue_head_t read_wait; /* reader wait queue */
- struct timer_list timer; /* reader wake-up timer */
- struct dentry *dentry; /* channel file dentry */
- struct kref kref; /* channel buffer refcount */
- struct page **page_array; /* array of current buffer pages */
- unsigned int page_count; /* number of current buffer pages */
- unsigned int finalized; /* buffer has been finalized */
- size_t *padding; /* padding counts per sub-buffer */
- size_t prev_padding; /* temporary variable */
- size_t bytes_consumed; /* bytes consumed in cur read subbuf */
- size_t early_bytes; /* bytes consumed before VFS inited */
- unsigned int cpu; /* this buf's cpu */
-} ____cacheline_aligned;
-
-/*
- * Relay channel data structure
- */
-struct rchan
-{
- u32 version; /* the version of this struct */
- size_t subbuf_size; /* sub-buffer size */
- size_t n_subbufs; /* number of sub-buffers per buffer */
- size_t alloc_size; /* total buffer size allocated */
- struct rchan_callbacks *cb; /* client callbacks */
- struct kref kref; /* channel refcount */
- void *private_data; /* for user-defined data */
- size_t last_toobig; /* tried to log event > subbuf size */
- struct rchan_buf *buf[NR_CPUS]; /* per-cpu channel buffers */
- int is_global; /* One global buffer ? */
- struct list_head list; /* for channel list */
- struct dentry *parent; /* parent dentry passed to open */
- int has_base_filename; /* has a filename associated? */
- char base_filename[NAME_MAX]; /* saved base filename */
-};
-
-/*
- * Relay channel client callbacks
- */
-struct rchan_callbacks
-{
- /*
- * subbuf_start - called on buffer-switch to a new sub-buffer
- * @buf: the channel buffer containing the new sub-buffer
- * @subbuf: the start of the new sub-buffer
- * @prev_subbuf: the start of the previous sub-buffer
- * @prev_padding: unused space at the end of previous sub-buffer
- *
- * The client should return 1 to continue logging, 0 to stop
- * logging.
- *
- * NOTE: subbuf_start will also be invoked when the buffer is
- * created, so that the first sub-buffer can be initialized
- * if necessary. In this case, prev_subbuf will be NULL.
- *
- * NOTE: the client can reserve bytes at the beginning of the new
- * sub-buffer by calling subbuf_start_reserve() in this callback.
- */
- int (*subbuf_start) (struct rchan_buf *buf,
- void *subbuf,
- void *prev_subbuf,
- size_t prev_padding);
-
- /*
- * buf_mapped - relay buffer mmap notification
- * @buf: the channel buffer
- * @filp: relay file pointer
- *
- * Called when a relay file is successfully mmapped
- */
- void (*buf_mapped)(struct rchan_buf *buf,
- struct file *filp);
-
- /*
- * buf_unmapped - relay buffer unmap notification
- * @buf: the channel buffer
- * @filp: relay file pointer
- *
- * Called when a relay file is successfully unmapped
- */
- void (*buf_unmapped)(struct rchan_buf *buf,
- struct file *filp);
- /*
- * create_buf_file - create file to represent a relay channel buffer
- * @filename: the name of the file to create
- * @parent: the parent of the file to create
- * @mode: the mode of the file to create
- * @buf: the channel buffer
- * @is_global: outparam - set non-zero if the buffer should be global
- *
- * Called during relay_open(), once for each per-cpu buffer,
- * to allow the client to create a file to be used to
- * represent the corresponding channel buffer. If the file is
- * created outside of relay, the parent must also exist in
- * that filesystem.
- *
- * The callback should return the dentry of the file created
- * to represent the relay buffer.
- *
- * Setting the is_global outparam to a non-zero value will
- * cause relay_open() to create a single global buffer rather
- * than the default set of per-cpu buffers.
- *
- * See Documentation/filesystems/relay.txt for more info.
- */
- struct dentry *(*create_buf_file)(const char *filename,
- struct dentry *parent,
- umode_t mode,
- struct rchan_buf *buf,
- int *is_global);
-
- /*
- * remove_buf_file - remove file representing a relay channel buffer
- * @dentry: the dentry of the file to remove
- *
- * Called during relay_close(), once for each per-cpu buffer,
- * to allow the client to remove a file used to represent a
- * channel buffer.
- *
- * The callback should return 0 if successful, negative if not.
- */
- int (*remove_buf_file)(struct dentry *dentry);
-};
-
-/*
- * CONFIG_RELAY kernel API, kernel/relay.c
- */
-
-struct rchan *relay_open(const char *base_filename,
- struct dentry *parent,
- size_t subbuf_size,
- size_t n_subbufs,
- struct rchan_callbacks *cb,
- void *private_data);
-extern int relay_late_setup_files(struct rchan *chan,
- const char *base_filename,
- struct dentry *parent);
-extern void relay_close(struct rchan *chan);
-extern void relay_flush(struct rchan *chan);
-extern void relay_subbufs_consumed(struct rchan *chan,
- unsigned int cpu,
- size_t consumed);
-extern void relay_reset(struct rchan *chan);
-extern int relay_buf_full(struct rchan_buf *buf);
-
-extern size_t relay_switch_subbuf(struct rchan_buf *buf,
- size_t length);
-
-/**
- * relay_write - write data into the channel
- * @chan: relay channel
- * @data: data to be written
- * @length: number of bytes to write
- *
- * Writes data into the current cpu's channel buffer.
- *
- * Protects the buffer by disabling interrupts. Use this
- * if you might be logging from interrupt context. Try
- * __relay_write() if you know you won't be logging from
- * interrupt context.
- */
-static inline void relay_write(struct rchan *chan,
- const void *data,
- size_t length)
-{
- unsigned long flags;
- struct rchan_buf *buf;
-
- local_irq_save(flags);
- buf = chan->buf[smp_processor_id()];
- if (unlikely(buf->offset + length > chan->subbuf_size))
- length = relay_switch_subbuf(buf, length);
- memcpy(buf->data + buf->offset, data, length);
- buf->offset += length;
- local_irq_restore(flags);
-}
-
-/**
- * __relay_write - write data into the channel
- * @chan: relay channel
- * @data: data to be written
- * @length: number of bytes to write
- *
- * Writes data into the current cpu's channel buffer.
- *
- * Protects the buffer by disabling preemption. Use
- * relay_write() if you might be logging from interrupt
- * context.
- */
-static inline void __relay_write(struct rchan *chan,
- const void *data,
- size_t length)
-{
- struct rchan_buf *buf;
-
- buf = chan->buf[get_cpu()];
- if (unlikely(buf->offset + length > buf->chan->subbuf_size))
- length = relay_switch_subbuf(buf, length);
- memcpy(buf->data + buf->offset, data, length);
- buf->offset += length;
- put_cpu();
-}
-
-/**
- * relay_reserve - reserve slot in channel buffer
- * @chan: relay channel
- * @length: number of bytes to reserve
- *
- * Returns pointer to reserved slot, NULL if full.
- *
- * Reserves a slot in the current cpu's channel buffer.
- * Does not protect the buffer at all - caller must provide
- * appropriate synchronization.
- */
-static inline void *relay_reserve(struct rchan *chan, size_t length)
-{
- void *reserved;
- struct rchan_buf *buf = chan->buf[smp_processor_id()];
-
- if (unlikely(buf->offset + length > buf->chan->subbuf_size)) {
- length = relay_switch_subbuf(buf, length);
- if (!length)
- return NULL;
- }
- reserved = buf->data + buf->offset;
- buf->offset += length;
-
- return reserved;
-}
-
-/**
- * subbuf_start_reserve - reserve bytes at the start of a sub-buffer
- * @buf: relay channel buffer
- * @length: number of bytes to reserve
- *
- * Helper function used to reserve bytes at the beginning of
- * a sub-buffer in the subbuf_start() callback.
- */
-static inline void subbuf_start_reserve(struct rchan_buf *buf,
- size_t length)
-{
- BUG_ON(length >= buf->chan->subbuf_size - 1);
- buf->offset = length;
-}
-
-/*
- * exported relay file operations, kernel/relay.c
- */
-extern const struct file_operations relay_file_operations;
-
-#endif /* _LINUX_RELAY_H */
-
diff --git a/ANDROID_3.4.5/include/linux/remoteproc.h b/ANDROID_3.4.5/include/linux/remoteproc.h
deleted file mode 100644
index f1ffabb9..00000000
--- a/ANDROID_3.4.5/include/linux/remoteproc.h
+++ /dev/null
@@ -1,478 +0,0 @@
-/*
- * Remote Processor Framework
- *
- * Copyright(c) 2011 Texas Instruments, Inc.
- * Copyright(c) 2011 Google, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name Texas Instruments nor the names of its
- * contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef REMOTEPROC_H
-#define REMOTEPROC_H
-
-#include <linux/types.h>
-#include <linux/kref.h>
-#include <linux/klist.h>
-#include <linux/mutex.h>
-#include <linux/virtio.h>
-#include <linux/completion.h>
-#include <linux/idr.h>
-
-/**
- * struct resource_table - firmware resource table header
- * @ver: version number
- * @num: number of resource entries
- * @reserved: reserved (must be zero)
- * @offset: array of offsets pointing at the various resource entries
- *
- * A resource table is essentially a list of system resources required
- * by the remote processor. It may also include configuration entries.
- * If needed, the remote processor firmware should contain this table
- * as a dedicated ".resource_table" ELF section.
- *
- * Some resources entries are mere announcements, where the host is informed
- * of specific remoteproc configuration. Other entries require the host to
- * do something (e.g. allocate a system resource). Sometimes a negotiation
- * is expected, where the firmware requests a resource, and once allocated,
- * the host should provide back its details (e.g. address of an allocated
- * memory region).
- *
- * The header of the resource table, as expressed by this structure,
- * contains a version number (should we need to change this format in the
- * future), the number of available resource entries, and their offsets
- * in the table.
- *
- * Immediately following this header are the resource entries themselves,
- * each of which begins with a resource entry header (as described below).
- */
-struct resource_table {
- u32 ver;
- u32 num;
- u32 reserved[2];
- u32 offset[0];
-} __packed;
-
-/**
- * struct fw_rsc_hdr - firmware resource entry header
- * @type: resource type
- * @data: resource data
- *
- * Every resource entry begins with a 'struct fw_rsc_hdr' header providing
- * its @type. The content of the entry itself will immediately follow
- * this header, and it should be parsed according to the resource type.
- */
-struct fw_rsc_hdr {
- u32 type;
- u8 data[0];
-} __packed;
-
-/**
- * enum fw_resource_type - types of resource entries
- *
- * @RSC_CARVEOUT: request for allocation of a physically contiguous
- * memory region.
- * @RSC_DEVMEM: request to iommu_map a memory-based peripheral.
- * @RSC_TRACE: announces the availability of a trace buffer into which
- * the remote processor will be writing logs.
- * @RSC_VDEV: declare support for a virtio device, and serve as its
- * virtio header.
- * @RSC_LAST: just keep this one at the end
- *
- * For more details regarding a specific resource type, please see its
- * dedicated structure below.
- *
- * Please note that these values are used as indices to the rproc_handle_rsc
- * lookup table, so please keep them sane. Moreover, @RSC_LAST is used to
- * check the validity of an index before the lookup table is accessed, so
- * please update it as needed.
- */
-enum fw_resource_type {
- RSC_CARVEOUT = 0,
- RSC_DEVMEM = 1,
- RSC_TRACE = 2,
- RSC_VDEV = 3,
- RSC_LAST = 4,
-};
-
-#define FW_RSC_ADDR_ANY (0xFFFFFFFFFFFFFFFF)
-
-/**
- * struct fw_rsc_carveout - physically contiguous memory request
- * @da: device address
- * @pa: physical address
- * @len: length (in bytes)
- * @flags: iommu protection flags
- * @reserved: reserved (must be zero)
- * @name: human-readable name of the requested memory region
- *
- * This resource entry requests the host to allocate a physically contiguous
- * memory region.
- *
- * These request entries should precede other firmware resource entries,
- * as other entries might request placing other data objects inside
- * these memory regions (e.g. data/code segments, trace resource entries, ...).
- *
- * Allocating memory this way helps utilizing the reserved physical memory
- * (e.g. CMA) more efficiently, and also minimizes the number of TLB entries
- * needed to map it (in case @rproc is using an IOMMU). Reducing the TLB
- * pressure is important; it may have a substantial impact on performance.
- *
- * If the firmware is compiled with static addresses, then @da should specify
- * the expected device address of this memory region. If @da is set to
- * FW_RSC_ADDR_ANY, then the host will dynamically allocate it, and then
- * overwrite @da with the dynamically allocated address.
- *
- * We will always use @da to negotiate the device addresses, even if it
- * isn't using an iommu. In that case, though, it will obviously contain
- * physical addresses.
- *
- * Some remote processors needs to know the allocated physical address
- * even if they do use an iommu. This is needed, e.g., if they control
- * hardware accelerators which access the physical memory directly (this
- * is the case with OMAP4 for instance). In that case, the host will
- * overwrite @pa with the dynamically allocated physical address.
- * Generally we don't want to expose physical addresses if we don't have to
- * (remote processors are generally _not_ trusted), so we might want to
- * change this to happen _only_ when explicitly required by the hardware.
- *
- * @flags is used to provide IOMMU protection flags, and @name should
- * (optionally) contain a human readable name of this carveout region
- * (mainly for debugging purposes).
- */
-struct fw_rsc_carveout {
- u32 da;
- u32 pa;
- u32 len;
- u32 flags;
- u32 reserved;
- u8 name[32];
-} __packed;
-
-/**
- * struct fw_rsc_devmem - iommu mapping request
- * @da: device address
- * @pa: physical address
- * @len: length (in bytes)
- * @flags: iommu protection flags
- * @reserved: reserved (must be zero)
- * @name: human-readable name of the requested region to be mapped
- *
- * This resource entry requests the host to iommu map a physically contiguous
- * memory region. This is needed in case the remote processor requires
- * access to certain memory-based peripherals; _never_ use it to access
- * regular memory.
- *
- * This is obviously only needed if the remote processor is accessing memory
- * via an iommu.
- *
- * @da should specify the required device address, @pa should specify
- * the physical address we want to map, @len should specify the size of
- * the mapping and @flags is the IOMMU protection flags. As always, @name may
- * (optionally) contain a human readable name of this mapping (mainly for
- * debugging purposes).
- *
- * Note: at this point we just "trust" those devmem entries to contain valid
- * physical addresses, but this isn't safe and will be changed: eventually we
- * want remoteproc implementations to provide us ranges of physical addresses
- * the firmware is allowed to request, and not allow firmwares to request
- * access to physical addresses that are outside those ranges.
- */
-struct fw_rsc_devmem {
- u32 da;
- u32 pa;
- u32 len;
- u32 flags;
- u32 reserved;
- u8 name[32];
-} __packed;
-
-/**
- * struct fw_rsc_trace - trace buffer declaration
- * @da: device address
- * @len: length (in bytes)
- * @reserved: reserved (must be zero)
- * @name: human-readable name of the trace buffer
- *
- * This resource entry provides the host information about a trace buffer
- * into which the remote processor will write log messages.
- *
- * @da specifies the device address of the buffer, @len specifies
- * its size, and @name may contain a human readable name of the trace buffer.
- *
- * After booting the remote processor, the trace buffers are exposed to the
- * user via debugfs entries (called trace0, trace1, etc..).
- */
-struct fw_rsc_trace {
- u32 da;
- u32 len;
- u32 reserved;
- u8 name[32];
-} __packed;
-
-/**
- * struct fw_rsc_vdev_vring - vring descriptor entry
- * @da: device address
- * @align: the alignment between the consumer and producer parts of the vring
- * @num: num of buffers supported by this vring (must be power of two)
- * @notifyid is a unique rproc-wide notify index for this vring. This notify
- * index is used when kicking a remote processor, to let it know that this
- * vring is triggered.
- * @reserved: reserved (must be zero)
- *
- * This descriptor is not a resource entry by itself; it is part of the
- * vdev resource type (see below).
- *
- * Note that @da should either contain the device address where
- * the remote processor is expecting the vring, or indicate that
- * dynamically allocation of the vring's device address is supported.
- */
-struct fw_rsc_vdev_vring {
- u32 da;
- u32 align;
- u32 num;
- u32 notifyid;
- u32 reserved;
-} __packed;
-
-/**
- * struct fw_rsc_vdev - virtio device header
- * @id: virtio device id (as in virtio_ids.h)
- * @notifyid is a unique rproc-wide notify index for this vdev. This notify
- * index is used when kicking a remote processor, to let it know that the
- * status/features of this vdev have changes.
- * @dfeatures specifies the virtio device features supported by the firmware
- * @gfeatures is a place holder used by the host to write back the
- * negotiated features that are supported by both sides.
- * @config_len is the size of the virtio config space of this vdev. The config
- * space lies in the resource table immediate after this vdev header.
- * @status is a place holder where the host will indicate its virtio progress.
- * @num_of_vrings indicates how many vrings are described in this vdev header
- * @reserved: reserved (must be zero)
- * @vring is an array of @num_of_vrings entries of 'struct fw_rsc_vdev_vring'.
- *
- * This resource is a virtio device header: it provides information about
- * the vdev, and is then used by the host and its peer remote processors
- * to negotiate and share certain virtio properties.
- *
- * By providing this resource entry, the firmware essentially asks remoteproc
- * to statically allocate a vdev upon registration of the rproc (dynamic vdev
- * allocation is not yet supported).
- *
- * Note: unlike virtualization systems, the term 'host' here means
- * the Linux side which is running remoteproc to control the remote
- * processors. We use the name 'gfeatures' to comply with virtio's terms,
- * though there isn't really any virtualized guest OS here: it's the host
- * which is responsible for negotiating the final features.
- * Yeah, it's a bit confusing.
- *
- * Note: immediately following this structure is the virtio config space for
- * this vdev (which is specific to the vdev; for more info, read the virtio
- * spec). the size of the config space is specified by @config_len.
- */
-struct fw_rsc_vdev {
- u32 id;
- u32 notifyid;
- u32 dfeatures;
- u32 gfeatures;
- u32 config_len;
- u8 status;
- u8 num_of_vrings;
- u8 reserved[2];
- struct fw_rsc_vdev_vring vring[0];
-} __packed;
-
-/**
- * struct rproc_mem_entry - memory entry descriptor
- * @va: virtual address
- * @dma: dma address
- * @len: length, in bytes
- * @da: device address
- * @priv: associated data
- * @node: list node
- */
-struct rproc_mem_entry {
- void *va;
- dma_addr_t dma;
- int len;
- u32 da;
- void *priv;
- struct list_head node;
-};
-
-struct rproc;
-
-/**
- * struct rproc_ops - platform-specific device handlers
- * @start: power on the device and boot it
- * @stop: power off the device
- * @kick: kick a virtqueue (virtqueue id given as a parameter)
- */
-struct rproc_ops {
- int (*start)(struct rproc *rproc);
- int (*stop)(struct rproc *rproc);
- void (*kick)(struct rproc *rproc, int vqid);
-};
-
-/**
- * enum rproc_state - remote processor states
- * @RPROC_OFFLINE: device is powered off
- * @RPROC_SUSPENDED: device is suspended; needs to be woken up to receive
- * a message.
- * @RPROC_RUNNING: device is up and running
- * @RPROC_CRASHED: device has crashed; need to start recovery
- * @RPROC_LAST: just keep this one at the end
- *
- * Please note that the values of these states are used as indices
- * to rproc_state_string, a state-to-name lookup table,
- * so please keep the two synchronized. @RPROC_LAST is used to check
- * the validity of an index before the lookup table is accessed, so
- * please update it as needed too.
- */
-enum rproc_state {
- RPROC_OFFLINE = 0,
- RPROC_SUSPENDED = 1,
- RPROC_RUNNING = 2,
- RPROC_CRASHED = 3,
- RPROC_LAST = 4,
-};
-
-/**
- * struct rproc - represents a physical remote processor device
- * @node: klist node of this rproc object
- * @domain: iommu domain
- * @name: human readable name of the rproc
- * @firmware: name of firmware file to be loaded
- * @priv: private data which belongs to the platform-specific rproc module
- * @ops: platform-specific start/stop rproc handlers
- * @dev: underlying device
- * @refcount: refcount of users that have a valid pointer to this rproc
- * @power: refcount of users who need this rproc powered up
- * @state: state of the device
- * @lock: lock which protects concurrent manipulations of the rproc
- * @dbg_dir: debugfs directory of this rproc device
- * @traces: list of trace buffers
- * @num_traces: number of trace buffers
- * @carveouts: list of physically contiguous memory allocations
- * @mappings: list of iommu mappings we initiated, needed on shutdown
- * @firmware_loading_complete: marks e/o asynchronous firmware loading
- * @bootaddr: address of first instruction to boot rproc with (optional)
- * @rvdevs: list of remote virtio devices
- * @notifyids: idr for dynamically assigning rproc-wide unique notify ids
- */
-struct rproc {
- struct klist_node node;
- struct iommu_domain *domain;
- const char *name;
- const char *firmware;
- void *priv;
- const struct rproc_ops *ops;
- struct device *dev;
- struct kref refcount;
- atomic_t power;
- unsigned int state;
- struct mutex lock;
- struct dentry *dbg_dir;
- struct list_head traces;
- int num_traces;
- struct list_head carveouts;
- struct list_head mappings;
- struct completion firmware_loading_complete;
- u32 bootaddr;
- struct list_head rvdevs;
- struct idr notifyids;
-};
-
-/* we currently support only two vrings per rvdev */
-#define RVDEV_NUM_VRINGS 2
-
-/**
- * struct rproc_vring - remoteproc vring state
- * @va: virtual address
- * @dma: dma address
- * @len: length, in bytes
- * @da: device address
- * @align: vring alignment
- * @notifyid: rproc-specific unique vring index
- * @rvdev: remote vdev
- * @vq: the virtqueue of this vring
- */
-struct rproc_vring {
- void *va;
- dma_addr_t dma;
- int len;
- u32 da;
- u32 align;
- int notifyid;
- struct rproc_vdev *rvdev;
- struct virtqueue *vq;
-};
-
-/**
- * struct rproc_vdev - remoteproc state for a supported virtio device
- * @node: list node
- * @rproc: the rproc handle
- * @vdev: the virio device
- * @vring: the vrings for this vdev
- * @dfeatures: virtio device features
- * @gfeatures: virtio guest features
- */
-struct rproc_vdev {
- struct list_head node;
- struct rproc *rproc;
- struct virtio_device vdev;
- struct rproc_vring vring[RVDEV_NUM_VRINGS];
- unsigned long dfeatures;
- unsigned long gfeatures;
-};
-
-struct rproc *rproc_get_by_name(const char *name);
-void rproc_put(struct rproc *rproc);
-
-struct rproc *rproc_alloc(struct device *dev, const char *name,
- const struct rproc_ops *ops,
- const char *firmware, int len);
-void rproc_free(struct rproc *rproc);
-int rproc_register(struct rproc *rproc);
-int rproc_unregister(struct rproc *rproc);
-
-int rproc_boot(struct rproc *rproc);
-void rproc_shutdown(struct rproc *rproc);
-
-static inline struct rproc_vdev *vdev_to_rvdev(struct virtio_device *vdev)
-{
- return container_of(vdev, struct rproc_vdev, vdev);
-}
-
-static inline struct rproc *vdev_to_rproc(struct virtio_device *vdev)
-{
- struct rproc_vdev *rvdev = vdev_to_rvdev(vdev);
-
- return rvdev->rproc;
-}
-
-#endif /* REMOTEPROC_H */
diff --git a/ANDROID_3.4.5/include/linux/res_counter.h b/ANDROID_3.4.5/include/linux/res_counter.h
deleted file mode 100644
index da81af08..00000000
--- a/ANDROID_3.4.5/include/linux/res_counter.h
+++ /dev/null
@@ -1,226 +0,0 @@
-#ifndef __RES_COUNTER_H__
-#define __RES_COUNTER_H__
-
-/*
- * Resource Counters
- * Contain common data types and routines for resource accounting
- *
- * Copyright 2007 OpenVZ SWsoft Inc
- *
- * Author: Pavel Emelianov <xemul@openvz.org>
- *
- * See Documentation/cgroups/resource_counter.txt for more
- * info about what this counter is.
- */
-
-#include <linux/cgroup.h>
-
-/*
- * The core object. the cgroup that wishes to account for some
- * resource may include this counter into its structures and use
- * the helpers described beyond
- */
-
-struct res_counter {
- /*
- * the current resource consumption level
- */
- unsigned long long usage;
- /*
- * the maximal value of the usage from the counter creation
- */
- unsigned long long max_usage;
- /*
- * the limit that usage cannot exceed
- */
- unsigned long long limit;
- /*
- * the limit that usage can be exceed
- */
- unsigned long long soft_limit;
- /*
- * the number of unsuccessful attempts to consume the resource
- */
- unsigned long long failcnt;
- /*
- * the lock to protect all of the above.
- * the routines below consider this to be IRQ-safe
- */
- spinlock_t lock;
- /*
- * Parent counter, used for hierarchial resource accounting
- */
- struct res_counter *parent;
-};
-
-#define RESOURCE_MAX (unsigned long long)LLONG_MAX
-
-/**
- * Helpers to interact with userspace
- * res_counter_read_u64() - returns the value of the specified member.
- * res_counter_read/_write - put/get the specified fields from the
- * res_counter struct to/from the user
- *
- * @counter: the counter in question
- * @member: the field to work with (see RES_xxx below)
- * @buf: the buffer to opeate on,...
- * @nbytes: its size...
- * @pos: and the offset.
- */
-
-u64 res_counter_read_u64(struct res_counter *counter, int member);
-
-ssize_t res_counter_read(struct res_counter *counter, int member,
- const char __user *buf, size_t nbytes, loff_t *pos,
- int (*read_strategy)(unsigned long long val, char *s));
-
-typedef int (*write_strategy_fn)(const char *buf, unsigned long long *val);
-
-int res_counter_memparse_write_strategy(const char *buf,
- unsigned long long *res);
-
-int res_counter_write(struct res_counter *counter, int member,
- const char *buffer, write_strategy_fn write_strategy);
-
-/*
- * the field descriptors. one for each member of res_counter
- */
-
-enum {
- RES_USAGE,
- RES_MAX_USAGE,
- RES_LIMIT,
- RES_FAILCNT,
- RES_SOFT_LIMIT,
-};
-
-/*
- * helpers for accounting
- */
-
-void res_counter_init(struct res_counter *counter, struct res_counter *parent);
-
-/*
- * charge - try to consume more resource.
- *
- * @counter: the counter
- * @val: the amount of the resource. each controller defines its own
- * units, e.g. numbers, bytes, Kbytes, etc
- *
- * returns 0 on success and <0 if the counter->usage will exceed the
- * counter->limit _locked call expects the counter->lock to be taken
- *
- * charge_nofail works the same, except that it charges the resource
- * counter unconditionally, and returns < 0 if the after the current
- * charge we are over limit.
- */
-
-int __must_check res_counter_charge_locked(struct res_counter *counter,
- unsigned long val);
-int __must_check res_counter_charge(struct res_counter *counter,
- unsigned long val, struct res_counter **limit_fail_at);
-int __must_check res_counter_charge_nofail(struct res_counter *counter,
- unsigned long val, struct res_counter **limit_fail_at);
-
-/*
- * uncharge - tell that some portion of the resource is released
- *
- * @counter: the counter
- * @val: the amount of the resource
- *
- * these calls check for usage underflow and show a warning on the console
- * _locked call expects the counter->lock to be taken
- */
-
-void res_counter_uncharge_locked(struct res_counter *counter, unsigned long val);
-void res_counter_uncharge(struct res_counter *counter, unsigned long val);
-
-/**
- * res_counter_margin - calculate chargeable space of a counter
- * @cnt: the counter
- *
- * Returns the difference between the hard limit and the current usage
- * of resource counter @cnt.
- */
-static inline unsigned long long res_counter_margin(struct res_counter *cnt)
-{
- unsigned long long margin;
- unsigned long flags;
-
- spin_lock_irqsave(&cnt->lock, flags);
- if (cnt->limit > cnt->usage)
- margin = cnt->limit - cnt->usage;
- else
- margin = 0;
- spin_unlock_irqrestore(&cnt->lock, flags);
- return margin;
-}
-
-/**
- * Get the difference between the usage and the soft limit
- * @cnt: The counter
- *
- * Returns 0 if usage is less than or equal to soft limit
- * The difference between usage and soft limit, otherwise.
- */
-static inline unsigned long long
-res_counter_soft_limit_excess(struct res_counter *cnt)
-{
- unsigned long long excess;
- unsigned long flags;
-
- spin_lock_irqsave(&cnt->lock, flags);
- if (cnt->usage <= cnt->soft_limit)
- excess = 0;
- else
- excess = cnt->usage - cnt->soft_limit;
- spin_unlock_irqrestore(&cnt->lock, flags);
- return excess;
-}
-
-static inline void res_counter_reset_max(struct res_counter *cnt)
-{
- unsigned long flags;
-
- spin_lock_irqsave(&cnt->lock, flags);
- cnt->max_usage = cnt->usage;
- spin_unlock_irqrestore(&cnt->lock, flags);
-}
-
-static inline void res_counter_reset_failcnt(struct res_counter *cnt)
-{
- unsigned long flags;
-
- spin_lock_irqsave(&cnt->lock, flags);
- cnt->failcnt = 0;
- spin_unlock_irqrestore(&cnt->lock, flags);
-}
-
-static inline int res_counter_set_limit(struct res_counter *cnt,
- unsigned long long limit)
-{
- unsigned long flags;
- int ret = -EBUSY;
-
- spin_lock_irqsave(&cnt->lock, flags);
- if (cnt->usage <= limit) {
- cnt->limit = limit;
- ret = 0;
- }
- spin_unlock_irqrestore(&cnt->lock, flags);
- return ret;
-}
-
-static inline int
-res_counter_set_soft_limit(struct res_counter *cnt,
- unsigned long long soft_limit)
-{
- unsigned long flags;
-
- spin_lock_irqsave(&cnt->lock, flags);
- cnt->soft_limit = soft_limit;
- spin_unlock_irqrestore(&cnt->lock, flags);
- return 0;
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/resource.h b/ANDROID_3.4.5/include/linux/resource.h
deleted file mode 100644
index d01c96c1..00000000
--- a/ANDROID_3.4.5/include/linux/resource.h
+++ /dev/null
@@ -1,89 +0,0 @@
-#ifndef _LINUX_RESOURCE_H
-#define _LINUX_RESOURCE_H
-
-#include <linux/time.h>
-#include <linux/types.h>
-
-/*
- * Resource control/accounting header file for linux
- */
-
-/*
- * Definition of struct rusage taken from BSD 4.3 Reno
- *
- * We don't support all of these yet, but we might as well have them....
- * Otherwise, each time we add new items, programs which depend on this
- * structure will lose. This reduces the chances of that happening.
- */
-#define RUSAGE_SELF 0
-#define RUSAGE_CHILDREN (-1)
-#define RUSAGE_BOTH (-2) /* sys_wait4() uses this */
-#define RUSAGE_THREAD 1 /* only the calling thread */
-
-struct rusage {
- struct timeval ru_utime; /* user time used */
- struct timeval ru_stime; /* system time used */
- long ru_maxrss; /* maximum resident set size */
- long ru_ixrss; /* integral shared memory size */
- long ru_idrss; /* integral unshared data size */
- long ru_isrss; /* integral unshared stack size */
- long ru_minflt; /* page reclaims */
- long ru_majflt; /* page faults */
- long ru_nswap; /* swaps */
- long ru_inblock; /* block input operations */
- long ru_oublock; /* block output operations */
- long ru_msgsnd; /* messages sent */
- long ru_msgrcv; /* messages received */
- long ru_nsignals; /* signals received */
- long ru_nvcsw; /* voluntary context switches */
- long ru_nivcsw; /* involuntary " */
-};
-
-struct rlimit {
- unsigned long rlim_cur;
- unsigned long rlim_max;
-};
-
-#define RLIM64_INFINITY (~0ULL)
-
-struct rlimit64 {
- __u64 rlim_cur;
- __u64 rlim_max;
-};
-
-#define PRIO_MIN (-20)
-#define PRIO_MAX 20
-
-#define PRIO_PROCESS 0
-#define PRIO_PGRP 1
-#define PRIO_USER 2
-
-/*
- * Limit the stack by to some sane default: root can always
- * increase this limit if needed.. 8MB seems reasonable.
- */
-#define _STK_LIM (8*1024*1024)
-
-/*
- * GPG2 wants 64kB of mlocked memory, to make sure pass phrases
- * and other sensitive information are never written to disk.
- */
-#define MLOCK_LIMIT ((PAGE_SIZE > 64*1024) ? PAGE_SIZE : 64*1024)
-
-/*
- * Due to binary compatibility, the actual resource numbers
- * may be different for different linux versions..
- */
-#include <asm/resource.h>
-
-#ifdef __KERNEL__
-
-struct task_struct;
-
-int getrusage(struct task_struct *p, int who, struct rusage __user *ru);
-int do_prlimit(struct task_struct *tsk, unsigned int resource,
- struct rlimit *new_rlim, struct rlimit *old_rlim);
-
-#endif /* __KERNEL__ */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/resume-trace.h b/ANDROID_3.4.5/include/linux/resume-trace.h
deleted file mode 100644
index f31db236..00000000
--- a/ANDROID_3.4.5/include/linux/resume-trace.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef RESUME_TRACE_H
-#define RESUME_TRACE_H
-
-#ifdef CONFIG_PM_TRACE
-#include <asm/resume-trace.h>
-#include <linux/types.h>
-
-extern int pm_trace_enabled;
-
-static inline int pm_trace_is_enabled(void)
-{
- return pm_trace_enabled;
-}
-
-struct device;
-extern void set_trace_device(struct device *);
-extern void generate_resume_trace(const void *tracedata, unsigned int user);
-extern int show_trace_dev_match(char *buf, size_t size);
-
-#define TRACE_DEVICE(dev) do { \
- if (pm_trace_enabled) \
- set_trace_device(dev); \
- } while(0)
-
-#else
-
-static inline int pm_trace_is_enabled(void) { return 0; }
-
-#define TRACE_DEVICE(dev) do { } while (0)
-#define TRACE_RESUME(dev) do { } while (0)
-
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/rfkill-gpio.h b/ANDROID_3.4.5/include/linux/rfkill-gpio.h
deleted file mode 100644
index 4d09f6ea..00000000
--- a/ANDROID_3.4.5/include/linux/rfkill-gpio.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2011, NVIDIA Corporation.
- *
- * 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.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-
-#ifndef __RFKILL_GPIO_H
-#define __RFKILL_GPIO_H
-
-#include <linux/types.h>
-#include <linux/rfkill.h>
-
-/**
- * struct rfkill_gpio_platform_data - platform data for rfkill gpio device.
- * for unused gpio's, the expected value is -1.
- * @name: name for the gpio rf kill instance
- * @reset_gpio: GPIO which is used for reseting rfkill switch
- * @shutdown_gpio: GPIO which is used for shutdown of rfkill switch
- * @power_clk_name: [optional] name of clk to turn off while blocked
- * @gpio_runtime_close: clean up platform specific gpio configuration
- * @gpio_runtime_setup: set up platform specific gpio configuration
- */
-
-struct rfkill_gpio_platform_data {
- char *name;
- int reset_gpio;
- int shutdown_gpio;
- const char *power_clk_name;
- enum rfkill_type type;
- void (*gpio_runtime_close)(struct platform_device *);
- int (*gpio_runtime_setup)(struct platform_device *);
-};
-
-#endif /* __RFKILL_GPIO_H */
diff --git a/ANDROID_3.4.5/include/linux/rfkill-regulator.h b/ANDROID_3.4.5/include/linux/rfkill-regulator.h
deleted file mode 100644
index aca36bc8..00000000
--- a/ANDROID_3.4.5/include/linux/rfkill-regulator.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * rfkill-regulator.c - Regulator consumer driver for rfkill
- *
- * Copyright (C) 2009 Guiming Zhuo <gmzhuo@gmail.com>
- * Copyright (C) 2011 Antonio Ospite <ospite@studenti.unina.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.
- *
- */
-
-#ifndef __LINUX_RFKILL_REGULATOR_H
-#define __LINUX_RFKILL_REGULATOR_H
-
-/*
- * Use "vrfkill" as supply id when declaring the regulator consumer:
- *
- * static struct regulator_consumer_supply pcap_regulator_V6_consumers [] = {
- * { .dev_name = "rfkill-regulator.0", .supply = "vrfkill" },
- * };
- *
- * If you have several regulator driven rfkill, you can append a numerical id to
- * .dev_name as done above, and use the same id when declaring the platform
- * device:
- *
- * static struct rfkill_regulator_platform_data ezx_rfkill_bt_data = {
- * .name = "ezx-bluetooth",
- * .type = RFKILL_TYPE_BLUETOOTH,
- * };
- *
- * static struct platform_device a910_rfkill = {
- * .name = "rfkill-regulator",
- * .id = 0,
- * .dev = {
- * .platform_data = &ezx_rfkill_bt_data,
- * },
- * };
- */
-
-#include <linux/rfkill.h>
-
-struct rfkill_regulator_platform_data {
- char *name; /* the name for the rfkill switch */
- enum rfkill_type type; /* the type as specified in rfkill.h */
-};
-
-#endif /* __LINUX_RFKILL_REGULATOR_H */
diff --git a/ANDROID_3.4.5/include/linux/rfkill.h b/ANDROID_3.4.5/include/linux/rfkill.h
deleted file mode 100644
index 6fdf0273..00000000
--- a/ANDROID_3.4.5/include/linux/rfkill.h
+++ /dev/null
@@ -1,359 +0,0 @@
-#ifndef __RFKILL_H
-#define __RFKILL_H
-
-/*
- * Copyright (C) 2006 - 2007 Ivo van Doorn
- * Copyright (C) 2007 Dmitry Torokhov
- * Copyright 2009 Johannes Berg <johannes@sipsolutions.net>
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include <linux/types.h>
-
-/* define userspace visible states */
-#define RFKILL_STATE_SOFT_BLOCKED 0
-#define RFKILL_STATE_UNBLOCKED 1
-#define RFKILL_STATE_HARD_BLOCKED 2
-
-/**
- * enum rfkill_type - type of rfkill switch.
- *
- * @RFKILL_TYPE_ALL: toggles all switches (requests only - not a switch type)
- * @RFKILL_TYPE_WLAN: switch is on a 802.11 wireless network device.
- * @RFKILL_TYPE_BLUETOOTH: switch is on a bluetooth device.
- * @RFKILL_TYPE_UWB: switch is on a ultra wideband device.
- * @RFKILL_TYPE_WIMAX: switch is on a WiMAX device.
- * @RFKILL_TYPE_WWAN: switch is on a wireless WAN device.
- * @RFKILL_TYPE_GPS: switch is on a GPS device.
- * @RFKILL_TYPE_FM: switch is on a FM radio device.
- * @NUM_RFKILL_TYPES: number of defined rfkill types
- */
-enum rfkill_type {
- RFKILL_TYPE_ALL = 0,
- RFKILL_TYPE_WLAN,
- RFKILL_TYPE_BLUETOOTH,
- RFKILL_TYPE_UWB,
- RFKILL_TYPE_WIMAX,
- RFKILL_TYPE_WWAN,
- RFKILL_TYPE_GPS,
- RFKILL_TYPE_FM,
- NUM_RFKILL_TYPES,
-};
-
-/**
- * enum rfkill_operation - operation types
- * @RFKILL_OP_ADD: a device was added
- * @RFKILL_OP_DEL: a device was removed
- * @RFKILL_OP_CHANGE: a device's state changed -- userspace changes one device
- * @RFKILL_OP_CHANGE_ALL: userspace changes all devices (of a type, or all)
- */
-enum rfkill_operation {
- RFKILL_OP_ADD = 0,
- RFKILL_OP_DEL,
- RFKILL_OP_CHANGE,
- RFKILL_OP_CHANGE_ALL,
-};
-
-/**
- * struct rfkill_event - events for userspace on /dev/rfkill
- * @idx: index of dev rfkill
- * @type: type of the rfkill struct
- * @op: operation code
- * @hard: hard state (0/1)
- * @soft: soft state (0/1)
- *
- * Structure used for userspace communication on /dev/rfkill,
- * used for events from the kernel and control to the kernel.
- */
-struct rfkill_event {
- __u32 idx;
- __u8 type;
- __u8 op;
- __u8 soft, hard;
-} __attribute__((packed));
-
-/*
- * We are planning to be backward and forward compatible with changes
- * to the event struct, by adding new, optional, members at the end.
- * When reading an event (whether the kernel from userspace or vice
- * versa) we need to accept anything that's at least as large as the
- * version 1 event size, but might be able to accept other sizes in
- * the future.
- *
- * One exception is the kernel -- we already have two event sizes in
- * that we've made the 'hard' member optional since our only option
- * is to ignore it anyway.
- */
-#define RFKILL_EVENT_SIZE_V1 8
-
-/* ioctl for turning off rfkill-input (if present) */
-#define RFKILL_IOC_MAGIC 'R'
-#define RFKILL_IOC_NOINPUT 1
-#define RFKILL_IOCTL_NOINPUT _IO(RFKILL_IOC_MAGIC, RFKILL_IOC_NOINPUT)
-
-/* and that's all userspace gets */
-#ifdef __KERNEL__
-/* don't allow anyone to use these in the kernel */
-enum rfkill_user_states {
- RFKILL_USER_STATE_SOFT_BLOCKED = RFKILL_STATE_SOFT_BLOCKED,
- RFKILL_USER_STATE_UNBLOCKED = RFKILL_STATE_UNBLOCKED,
- RFKILL_USER_STATE_HARD_BLOCKED = RFKILL_STATE_HARD_BLOCKED,
-};
-#undef RFKILL_STATE_SOFT_BLOCKED
-#undef RFKILL_STATE_UNBLOCKED
-#undef RFKILL_STATE_HARD_BLOCKED
-
-#include <linux/kernel.h>
-#include <linux/list.h>
-#include <linux/mutex.h>
-#include <linux/leds.h>
-#include <linux/err.h>
-
-struct device;
-/* this is opaque */
-struct rfkill;
-
-/**
- * struct rfkill_ops - rfkill driver methods
- *
- * @poll: poll the rfkill block state(s) -- only assign this method
- * when you need polling. When called, simply call one of the
- * rfkill_set{,_hw,_sw}_state family of functions. If the hw
- * is getting unblocked you need to take into account the return
- * value of those functions to make sure the software block is
- * properly used.
- * @query: query the rfkill block state(s) and call exactly one of the
- * rfkill_set{,_hw,_sw}_state family of functions. Assign this
- * method if input events can cause hardware state changes to make
- * the rfkill core query your driver before setting a requested
- * block.
- * @set_block: turn the transmitter on (blocked == false) or off
- * (blocked == true) -- ignore and return 0 when hard blocked.
- * This callback must be assigned.
- */
-struct rfkill_ops {
- void (*poll)(struct rfkill *rfkill, void *data);
- void (*query)(struct rfkill *rfkill, void *data);
- int (*set_block)(void *data, bool blocked);
-};
-
-#if defined(CONFIG_RFKILL) || defined(CONFIG_RFKILL_MODULE)
-/**
- * rfkill_alloc - allocate rfkill structure
- * @name: name of the struct -- the string is not copied internally
- * @parent: device that has rf switch on it
- * @type: type of the switch (RFKILL_TYPE_*)
- * @ops: rfkill methods
- * @ops_data: data passed to each method
- *
- * This function should be called by the transmitter driver to allocate an
- * rfkill structure. Returns %NULL on failure.
- */
-struct rfkill * __must_check rfkill_alloc(const char *name,
- struct device *parent,
- const enum rfkill_type type,
- const struct rfkill_ops *ops,
- void *ops_data);
-
-/**
- * rfkill_register - Register a rfkill structure.
- * @rfkill: rfkill structure to be registered
- *
- * This function should be called by the transmitter driver to register
- * the rfkill structure. Before calling this function the driver needs
- * to be ready to service method calls from rfkill.
- *
- * If rfkill_init_sw_state() is not called before registration,
- * set_block() will be called to initialize the software blocked state
- * to a default value.
- *
- * If the hardware blocked state is not set before registration,
- * it is assumed to be unblocked.
- */
-int __must_check rfkill_register(struct rfkill *rfkill);
-
-/**
- * rfkill_pause_polling(struct rfkill *rfkill)
- *
- * Pause polling -- say transmitter is off for other reasons.
- * NOTE: not necessary for suspend/resume -- in that case the
- * core stops polling anyway
- */
-void rfkill_pause_polling(struct rfkill *rfkill);
-
-/**
- * rfkill_resume_polling(struct rfkill *rfkill)
- *
- * Pause polling -- say transmitter is off for other reasons.
- * NOTE: not necessary for suspend/resume -- in that case the
- * core stops polling anyway
- */
-void rfkill_resume_polling(struct rfkill *rfkill);
-
-
-/**
- * rfkill_unregister - Unregister a rfkill structure.
- * @rfkill: rfkill structure to be unregistered
- *
- * This function should be called by the network driver during device
- * teardown to destroy rfkill structure. Until it returns, the driver
- * needs to be able to service method calls.
- */
-void rfkill_unregister(struct rfkill *rfkill);
-
-/**
- * rfkill_destroy - free rfkill structure
- * @rfkill: rfkill structure to be destroyed
- *
- * Destroys the rfkill structure.
- */
-void rfkill_destroy(struct rfkill *rfkill);
-
-/**
- * rfkill_set_hw_state - Set the internal rfkill hardware block state
- * @rfkill: pointer to the rfkill class to modify.
- * @state: the current hardware block state to set
- *
- * rfkill drivers that get events when the hard-blocked state changes
- * use this function to notify the rfkill core (and through that also
- * userspace) of the current state. They should also use this after
- * resume if the state could have changed.
- *
- * You need not (but may) call this function if poll_state is assigned.
- *
- * This function can be called in any context, even from within rfkill
- * callbacks.
- *
- * The function returns the combined block state (true if transmitter
- * should be blocked) so that drivers need not keep track of the soft
- * block state -- which they might not be able to.
- */
-bool rfkill_set_hw_state(struct rfkill *rfkill, bool blocked);
-
-/**
- * rfkill_set_sw_state - Set the internal rfkill software block state
- * @rfkill: pointer to the rfkill class to modify.
- * @state: the current software block state to set
- *
- * rfkill drivers that get events when the soft-blocked state changes
- * (yes, some platforms directly act on input but allow changing again)
- * use this function to notify the rfkill core (and through that also
- * userspace) of the current state.
- *
- * Drivers should also call this function after resume if the state has
- * been changed by the user. This only makes sense for "persistent"
- * devices (see rfkill_init_sw_state()).
- *
- * This function can be called in any context, even from within rfkill
- * callbacks.
- *
- * The function returns the combined block state (true if transmitter
- * should be blocked).
- */
-bool rfkill_set_sw_state(struct rfkill *rfkill, bool blocked);
-
-/**
- * rfkill_init_sw_state - Initialize persistent software block state
- * @rfkill: pointer to the rfkill class to modify.
- * @state: the current software block state to set
- *
- * rfkill drivers that preserve their software block state over power off
- * use this function to notify the rfkill core (and through that also
- * userspace) of their initial state. It should only be used before
- * registration.
- *
- * In addition, it marks the device as "persistent", an attribute which
- * can be read by userspace. Persistent devices are expected to preserve
- * their own state when suspended.
- */
-void rfkill_init_sw_state(struct rfkill *rfkill, bool blocked);
-
-/**
- * rfkill_set_states - Set the internal rfkill block states
- * @rfkill: pointer to the rfkill class to modify.
- * @sw: the current software block state to set
- * @hw: the current hardware block state to set
- *
- * This function can be called in any context, even from within rfkill
- * callbacks.
- */
-void rfkill_set_states(struct rfkill *rfkill, bool sw, bool hw);
-
-/**
- * rfkill_blocked - query rfkill block
- *
- * @rfkill: rfkill struct to query
- */
-bool rfkill_blocked(struct rfkill *rfkill);
-#else /* !RFKILL */
-static inline struct rfkill * __must_check
-rfkill_alloc(const char *name,
- struct device *parent,
- const enum rfkill_type type,
- const struct rfkill_ops *ops,
- void *ops_data)
-{
- return ERR_PTR(-ENODEV);
-}
-
-static inline int __must_check rfkill_register(struct rfkill *rfkill)
-{
- if (rfkill == ERR_PTR(-ENODEV))
- return 0;
- return -EINVAL;
-}
-
-static inline void rfkill_pause_polling(struct rfkill *rfkill)
-{
-}
-
-static inline void rfkill_resume_polling(struct rfkill *rfkill)
-{
-}
-
-static inline void rfkill_unregister(struct rfkill *rfkill)
-{
-}
-
-static inline void rfkill_destroy(struct rfkill *rfkill)
-{
-}
-
-static inline bool rfkill_set_hw_state(struct rfkill *rfkill, bool blocked)
-{
- return blocked;
-}
-
-static inline bool rfkill_set_sw_state(struct rfkill *rfkill, bool blocked)
-{
- return blocked;
-}
-
-static inline void rfkill_init_sw_state(struct rfkill *rfkill, bool blocked)
-{
-}
-
-static inline void rfkill_set_states(struct rfkill *rfkill, bool sw, bool hw)
-{
-}
-
-static inline bool rfkill_blocked(struct rfkill *rfkill)
-{
- return false;
-}
-#endif /* RFKILL || RFKILL_MODULE */
-
-#endif /* __KERNEL__ */
-
-#endif /* RFKILL_H */
diff --git a/ANDROID_3.4.5/include/linux/ring_buffer.h b/ANDROID_3.4.5/include/linux/ring_buffer.h
deleted file mode 100644
index 7be2e88f..00000000
--- a/ANDROID_3.4.5/include/linux/ring_buffer.h
+++ /dev/null
@@ -1,191 +0,0 @@
-#ifndef _LINUX_RING_BUFFER_H
-#define _LINUX_RING_BUFFER_H
-
-#include <linux/kmemcheck.h>
-#include <linux/mm.h>
-#include <linux/seq_file.h>
-
-struct ring_buffer;
-struct ring_buffer_iter;
-
-/*
- * Don't refer to this struct directly, use functions below.
- */
-struct ring_buffer_event {
- kmemcheck_bitfield_begin(bitfield);
- u32 type_len:5, time_delta:27;
- kmemcheck_bitfield_end(bitfield);
-
- u32 array[];
-};
-
-/**
- * enum ring_buffer_type - internal ring buffer types
- *
- * @RINGBUF_TYPE_PADDING: Left over page padding or discarded event
- * If time_delta is 0:
- * array is ignored
- * size is variable depending on how much
- * padding is needed
- * If time_delta is non zero:
- * array[0] holds the actual length
- * size = 4 + length (bytes)
- *
- * @RINGBUF_TYPE_TIME_EXTEND: Extend the time delta
- * array[0] = time delta (28 .. 59)
- * size = 8 bytes
- *
- * @RINGBUF_TYPE_TIME_STAMP: Sync time stamp with external clock
- * array[0] = tv_nsec
- * array[1..2] = tv_sec
- * size = 16 bytes
- *
- * <= @RINGBUF_TYPE_DATA_TYPE_LEN_MAX:
- * Data record
- * If type_len is zero:
- * array[0] holds the actual length
- * array[1..(length+3)/4] holds data
- * size = 4 + length (bytes)
- * else
- * length = type_len << 2
- * array[0..(length+3)/4-1] holds data
- * size = 4 + length (bytes)
- */
-enum ring_buffer_type {
- RINGBUF_TYPE_DATA_TYPE_LEN_MAX = 28,
- RINGBUF_TYPE_PADDING,
- RINGBUF_TYPE_TIME_EXTEND,
- /* FIXME: RINGBUF_TYPE_TIME_STAMP not implemented */
- RINGBUF_TYPE_TIME_STAMP,
-};
-
-unsigned ring_buffer_event_length(struct ring_buffer_event *event);
-void *ring_buffer_event_data(struct ring_buffer_event *event);
-
-/*
- * ring_buffer_discard_commit will remove an event that has not
- * ben committed yet. If this is used, then ring_buffer_unlock_commit
- * must not be called on the discarded event. This function
- * will try to remove the event from the ring buffer completely
- * if another event has not been written after it.
- *
- * Example use:
- *
- * if (some_condition)
- * ring_buffer_discard_commit(buffer, event);
- * else
- * ring_buffer_unlock_commit(buffer, event);
- */
-void ring_buffer_discard_commit(struct ring_buffer *buffer,
- struct ring_buffer_event *event);
-
-/*
- * size is in bytes for each per CPU buffer.
- */
-struct ring_buffer *
-__ring_buffer_alloc(unsigned long size, unsigned flags, struct lock_class_key *key);
-
-/*
- * Because the ring buffer is generic, if other users of the ring buffer get
- * traced by ftrace, it can produce lockdep warnings. We need to keep each
- * ring buffer's lock class separate.
- */
-#define ring_buffer_alloc(size, flags) \
-({ \
- static struct lock_class_key __key; \
- __ring_buffer_alloc((size), (flags), &__key); \
-})
-
-void ring_buffer_free(struct ring_buffer *buffer);
-
-int ring_buffer_resize(struct ring_buffer *buffer, unsigned long size);
-
-void ring_buffer_change_overwrite(struct ring_buffer *buffer, int val);
-
-struct ring_buffer_event *ring_buffer_lock_reserve(struct ring_buffer *buffer,
- unsigned long length);
-int ring_buffer_unlock_commit(struct ring_buffer *buffer,
- struct ring_buffer_event *event);
-int ring_buffer_write(struct ring_buffer *buffer,
- unsigned long length, void *data);
-
-struct ring_buffer_event *
-ring_buffer_peek(struct ring_buffer *buffer, int cpu, u64 *ts,
- unsigned long *lost_events);
-struct ring_buffer_event *
-ring_buffer_consume(struct ring_buffer *buffer, int cpu, u64 *ts,
- unsigned long *lost_events);
-
-struct ring_buffer_iter *
-ring_buffer_read_prepare(struct ring_buffer *buffer, int cpu);
-void ring_buffer_read_prepare_sync(void);
-void ring_buffer_read_start(struct ring_buffer_iter *iter);
-void ring_buffer_read_finish(struct ring_buffer_iter *iter);
-
-struct ring_buffer_event *
-ring_buffer_iter_peek(struct ring_buffer_iter *iter, u64 *ts);
-struct ring_buffer_event *
-ring_buffer_read(struct ring_buffer_iter *iter, u64 *ts);
-void ring_buffer_iter_reset(struct ring_buffer_iter *iter);
-int ring_buffer_iter_empty(struct ring_buffer_iter *iter);
-
-unsigned long ring_buffer_size(struct ring_buffer *buffer);
-
-void ring_buffer_reset_cpu(struct ring_buffer *buffer, int cpu);
-void ring_buffer_reset(struct ring_buffer *buffer);
-
-#ifdef CONFIG_RING_BUFFER_ALLOW_SWAP
-int ring_buffer_swap_cpu(struct ring_buffer *buffer_a,
- struct ring_buffer *buffer_b, int cpu);
-#else
-static inline int
-ring_buffer_swap_cpu(struct ring_buffer *buffer_a,
- struct ring_buffer *buffer_b, int cpu)
-{
- return -ENODEV;
-}
-#endif
-
-int ring_buffer_empty(struct ring_buffer *buffer);
-int ring_buffer_empty_cpu(struct ring_buffer *buffer, int cpu);
-
-void ring_buffer_record_disable(struct ring_buffer *buffer);
-void ring_buffer_record_enable(struct ring_buffer *buffer);
-void ring_buffer_record_off(struct ring_buffer *buffer);
-void ring_buffer_record_on(struct ring_buffer *buffer);
-int ring_buffer_record_is_on(struct ring_buffer *buffer);
-void ring_buffer_record_disable_cpu(struct ring_buffer *buffer, int cpu);
-void ring_buffer_record_enable_cpu(struct ring_buffer *buffer, int cpu);
-
-unsigned long ring_buffer_oldest_event_ts(struct ring_buffer *buffer, int cpu);
-unsigned long ring_buffer_bytes_cpu(struct ring_buffer *buffer, int cpu);
-unsigned long ring_buffer_entries(struct ring_buffer *buffer);
-unsigned long ring_buffer_overruns(struct ring_buffer *buffer);
-unsigned long ring_buffer_entries_cpu(struct ring_buffer *buffer, int cpu);
-unsigned long ring_buffer_overrun_cpu(struct ring_buffer *buffer, int cpu);
-unsigned long ring_buffer_commit_overrun_cpu(struct ring_buffer *buffer, int cpu);
-
-u64 ring_buffer_time_stamp(struct ring_buffer *buffer, int cpu);
-void ring_buffer_normalize_time_stamp(struct ring_buffer *buffer,
- int cpu, u64 *ts);
-void ring_buffer_set_clock(struct ring_buffer *buffer,
- u64 (*clock)(void));
-
-size_t ring_buffer_page_len(void *page);
-
-
-void *ring_buffer_alloc_read_page(struct ring_buffer *buffer, int cpu);
-void ring_buffer_free_read_page(struct ring_buffer *buffer, void *data);
-int ring_buffer_read_page(struct ring_buffer *buffer, void **data_page,
- size_t len, int cpu, int full);
-
-struct trace_seq;
-
-int ring_buffer_print_entry_header(struct trace_seq *s);
-int ring_buffer_print_page_header(struct trace_seq *s);
-
-enum ring_buffer_flags {
- RB_FL_OVERWRITE = 1 << 0,
-};
-
-#endif /* _LINUX_RING_BUFFER_H */
diff --git a/ANDROID_3.4.5/include/linux/rio.h b/ANDROID_3.4.5/include/linux/rio.h
deleted file mode 100644
index 4d506111..00000000
--- a/ANDROID_3.4.5/include/linux/rio.h
+++ /dev/null
@@ -1,405 +0,0 @@
-/*
- * RapidIO interconnect services
- * (RapidIO Interconnect Specification, http://www.rapidio.org)
- *
- * Copyright 2005 MontaVista Software, Inc.
- * Matt Porter <mporter@kernel.crashing.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.
- */
-
-#ifndef LINUX_RIO_H
-#define LINUX_RIO_H
-
-#include <linux/types.h>
-#include <linux/ioport.h>
-#include <linux/list.h>
-#include <linux/errno.h>
-#include <linux/device.h>
-#include <linux/rio_regs.h>
-
-#define RIO_NO_HOPCOUNT -1
-#define RIO_INVALID_DESTID 0xffff
-
-#define RIO_MAX_MPORTS 8
-#define RIO_MAX_MPORT_RESOURCES 16
-#define RIO_MAX_DEV_RESOURCES 16
-
-#define RIO_GLOBAL_TABLE 0xff /* Indicates access of a switch's
- global routing table if it
- has multiple (or per port)
- tables */
-
-#define RIO_INVALID_ROUTE 0xff /* Indicates that a route table
- entry is invalid (no route
- exists for the device ID) */
-
-#define RIO_MAX_ROUTE_ENTRIES(size) (size ? (1 << 16) : (1 << 8))
-#define RIO_ANY_DESTID(size) (size ? 0xffff : 0xff)
-
-#define RIO_MAX_MBOX 4
-#define RIO_MAX_MSG_SIZE 0x1000
-
-/*
- * Error values that may be returned by RIO functions.
- */
-#define RIO_SUCCESSFUL 0x00
-#define RIO_BAD_SIZE 0x81
-
-/*
- * For RIO devices, the region numbers are assigned this way:
- *
- * 0 RapidIO outbound doorbells
- * 1-15 RapidIO memory regions
- *
- * For RIO master ports, the region number are assigned this way:
- *
- * 0 RapidIO inbound doorbells
- * 1 RapidIO inbound mailboxes
- * 1 RapidIO outbound mailboxes
- */
-#define RIO_DOORBELL_RESOURCE 0
-#define RIO_INB_MBOX_RESOURCE 1
-#define RIO_OUTB_MBOX_RESOURCE 2
-
-#define RIO_PW_MSG_SIZE 64
-
-/*
- * A component tag value (stored in the component tag CSR) is used as device's
- * unique identifier assigned during enumeration. Besides being used for
- * identifying switches (which do not have device ID register), it also is used
- * by error management notification and therefore has to be assigned
- * to endpoints as well.
- */
-#define RIO_CTAG_RESRVD 0xfffe0000 /* Reserved */
-#define RIO_CTAG_UDEVID 0x0001ffff /* Unique device identifier */
-
-extern struct bus_type rio_bus_type;
-extern struct device rio_bus;
-extern struct list_head rio_devices; /* list of all devices */
-
-struct rio_mport;
-struct rio_dev;
-union rio_pw_msg;
-
-/**
- * struct rio_switch - RIO switch info
- * @node: Node in global list of switches
- * @switchid: Switch ID that is unique across a network
- * @route_table: Copy of switch routing table
- * @port_ok: Status of each port (one bit per port) - OK=1 or UNINIT=0
- * @add_entry: Callback for switch-specific route add function
- * @get_entry: Callback for switch-specific route get function
- * @clr_table: Callback for switch-specific clear route table function
- * @set_domain: Callback for switch-specific domain setting function
- * @get_domain: Callback for switch-specific domain get function
- * @em_init: Callback for switch-specific error management init function
- * @em_handle: Callback for switch-specific error management handler function
- * @sw_sysfs: Callback that initializes switch-specific sysfs attributes
- * @nextdev: Array of per-port pointers to the next attached device
- */
-struct rio_switch {
- struct list_head node;
- u16 switchid;
- u8 *route_table;
- u32 port_ok;
- int (*add_entry) (struct rio_mport *mport, u16 destid, u8 hopcount,
- u16 table, u16 route_destid, u8 route_port);
- int (*get_entry) (struct rio_mport *mport, u16 destid, u8 hopcount,
- u16 table, u16 route_destid, u8 *route_port);
- int (*clr_table) (struct rio_mport *mport, u16 destid, u8 hopcount,
- u16 table);
- int (*set_domain) (struct rio_mport *mport, u16 destid, u8 hopcount,
- u8 sw_domain);
- int (*get_domain) (struct rio_mport *mport, u16 destid, u8 hopcount,
- u8 *sw_domain);
- int (*em_init) (struct rio_dev *dev);
- int (*em_handle) (struct rio_dev *dev, u8 swport);
- int (*sw_sysfs) (struct rio_dev *dev, int create);
- struct rio_dev *nextdev[0];
-};
-
-/**
- * struct rio_dev - RIO device info
- * @global_list: Node in list of all RIO devices
- * @net_list: Node in list of RIO devices in a network
- * @net: Network this device is a part of
- * @did: Device ID
- * @vid: Vendor ID
- * @device_rev: Device revision
- * @asm_did: Assembly device ID
- * @asm_vid: Assembly vendor ID
- * @asm_rev: Assembly revision
- * @efptr: Extended feature pointer
- * @pef: Processing element features
- * @swpinfo: Switch port info
- * @src_ops: Source operation capabilities
- * @dst_ops: Destination operation capabilities
- * @comp_tag: RIO component tag
- * @phys_efptr: RIO device extended features pointer
- * @em_efptr: RIO Error Management features pointer
- * @dma_mask: Mask of bits of RIO address this device implements
- * @driver: Driver claiming this device
- * @dev: Device model device
- * @riores: RIO resources this device owns
- * @pwcback: port-write callback function for this device
- * @destid: Network destination ID (or associated destid for switch)
- * @hopcount: Hopcount to this device
- * @prev: Previous RIO device connected to the current one
- * @rswitch: struct rio_switch (if valid for this device)
- */
-struct rio_dev {
- struct list_head global_list; /* node in list of all RIO devices */
- struct list_head net_list; /* node in per net list */
- struct rio_net *net; /* RIO net this device resides in */
- u16 did;
- u16 vid;
- u32 device_rev;
- u16 asm_did;
- u16 asm_vid;
- u16 asm_rev;
- u16 efptr;
- u32 pef;
- u32 swpinfo;
- u32 src_ops;
- u32 dst_ops;
- u32 comp_tag;
- u32 phys_efptr;
- u32 em_efptr;
- u64 dma_mask;
- struct rio_driver *driver; /* RIO driver claiming this device */
- struct device dev; /* LDM device structure */
- struct resource riores[RIO_MAX_DEV_RESOURCES];
- int (*pwcback) (struct rio_dev *rdev, union rio_pw_msg *msg, int step);
- u16 destid;
- u8 hopcount;
- struct rio_dev *prev;
- struct rio_switch rswitch[0]; /* RIO switch info */
-};
-
-#define rio_dev_g(n) list_entry(n, struct rio_dev, global_list)
-#define rio_dev_f(n) list_entry(n, struct rio_dev, net_list)
-#define to_rio_dev(n) container_of(n, struct rio_dev, dev)
-#define sw_to_rio_dev(n) container_of(n, struct rio_dev, rswitch[0])
-
-/**
- * struct rio_msg - RIO message event
- * @res: Mailbox resource
- * @mcback: Message event callback
- */
-struct rio_msg {
- struct resource *res;
- void (*mcback) (struct rio_mport * mport, void *dev_id, int mbox, int slot);
-};
-
-/**
- * struct rio_dbell - RIO doorbell event
- * @node: Node in list of doorbell events
- * @res: Doorbell resource
- * @dinb: Doorbell event callback
- * @dev_id: Device specific pointer to pass on event
- */
-struct rio_dbell {
- struct list_head node;
- struct resource *res;
- void (*dinb) (struct rio_mport *mport, void *dev_id, u16 src, u16 dst, u16 info);
- void *dev_id;
-};
-
-enum rio_phy_type {
- RIO_PHY_PARALLEL,
- RIO_PHY_SERIAL,
-};
-
-/**
- * struct rio_mport - RIO master port info
- * @dbells: List of doorbell events
- * @node: Node in global list of master ports
- * @nnode: Node in network list of master ports
- * @iores: I/O mem resource that this master port interface owns
- * @riores: RIO resources that this master port interfaces owns
- * @inb_msg: RIO inbound message event descriptors
- * @outb_msg: RIO outbound message event descriptors
- * @host_deviceid: Host device ID associated with this master port
- * @ops: configuration space functions
- * @id: Port ID, unique among all ports
- * @index: Port index, unique among all port interfaces of the same type
- * @sys_size: RapidIO common transport system size
- * @phy_type: RapidIO phy type
- * @phys_efptr: RIO port extended features pointer
- * @name: Port name string
- * @priv: Master port private data
- */
-struct rio_mport {
- struct list_head dbells; /* list of doorbell events */
- struct list_head node; /* node in global list of ports */
- struct list_head nnode; /* node in net list of ports */
- struct resource iores;
- struct resource riores[RIO_MAX_MPORT_RESOURCES];
- struct rio_msg inb_msg[RIO_MAX_MBOX];
- struct rio_msg outb_msg[RIO_MAX_MBOX];
- int host_deviceid; /* Host device ID */
- struct rio_ops *ops; /* low-level architecture-dependent routines */
- unsigned char id; /* port ID, unique among all ports */
- unsigned char index; /* port index, unique among all port
- interfaces of the same type */
- unsigned int sys_size; /* RapidIO common transport system size.
- * 0 - Small size. 256 devices.
- * 1 - Large size, 65536 devices.
- */
- enum rio_phy_type phy_type; /* RapidIO phy type */
- u32 phys_efptr;
- unsigned char name[40];
- void *priv; /* Master port private data */
-};
-
-/**
- * struct rio_net - RIO network info
- * @node: Node in global list of RIO networks
- * @devices: List of devices in this network
- * @mports: List of master ports accessing this network
- * @hport: Default port for accessing this network
- * @id: RIO network ID
- */
-struct rio_net {
- struct list_head node; /* node in list of networks */
- struct list_head devices; /* list of devices in this net */
- struct list_head mports; /* list of ports accessing net */
- struct rio_mport *hport; /* primary port for accessing net */
- unsigned char id; /* RIO network ID */
-};
-
-/* Definitions used by switch sysfs initialization callback */
-#define RIO_SW_SYSFS_CREATE 1 /* Create switch attributes */
-#define RIO_SW_SYSFS_REMOVE 0 /* Remove switch attributes */
-
-/* Low-level architecture-dependent routines */
-
-/**
- * struct rio_ops - Low-level RIO configuration space operations
- * @lcread: Callback to perform local (master port) read of config space.
- * @lcwrite: Callback to perform local (master port) write of config space.
- * @cread: Callback to perform network read of config space.
- * @cwrite: Callback to perform network write of config space.
- * @dsend: Callback to send a doorbell message.
- * @pwenable: Callback to enable/disable port-write message handling.
- * @open_outb_mbox: Callback to initialize outbound mailbox.
- * @close_outb_mbox: Callback to shut down outbound mailbox.
- * @open_inb_mbox: Callback to initialize inbound mailbox.
- * @close_inb_mbox: Callback to shut down inbound mailbox.
- * @add_outb_message: Callback to add a message to an outbound mailbox queue.
- * @add_inb_buffer: Callback to add a buffer to an inbound mailbox queue.
- * @get_inb_message: Callback to get a message from an inbound mailbox queue.
- */
-struct rio_ops {
- int (*lcread) (struct rio_mport *mport, int index, u32 offset, int len,
- u32 *data);
- int (*lcwrite) (struct rio_mport *mport, int index, u32 offset, int len,
- u32 data);
- int (*cread) (struct rio_mport *mport, int index, u16 destid,
- u8 hopcount, u32 offset, int len, u32 *data);
- int (*cwrite) (struct rio_mport *mport, int index, u16 destid,
- u8 hopcount, u32 offset, int len, u32 data);
- int (*dsend) (struct rio_mport *mport, int index, u16 destid, u16 data);
- int (*pwenable) (struct rio_mport *mport, int enable);
- int (*open_outb_mbox)(struct rio_mport *mport, void *dev_id,
- int mbox, int entries);
- void (*close_outb_mbox)(struct rio_mport *mport, int mbox);
- int (*open_inb_mbox)(struct rio_mport *mport, void *dev_id,
- int mbox, int entries);
- void (*close_inb_mbox)(struct rio_mport *mport, int mbox);
- int (*add_outb_message)(struct rio_mport *mport, struct rio_dev *rdev,
- int mbox, void *buffer, size_t len);
- int (*add_inb_buffer)(struct rio_mport *mport, int mbox, void *buf);
- void *(*get_inb_message)(struct rio_mport *mport, int mbox);
-};
-
-#define RIO_RESOURCE_MEM 0x00000100
-#define RIO_RESOURCE_DOORBELL 0x00000200
-#define RIO_RESOURCE_MAILBOX 0x00000400
-
-#define RIO_RESOURCE_CACHEABLE 0x00010000
-#define RIO_RESOURCE_PCI 0x00020000
-
-#define RIO_RESOURCE_BUSY 0x80000000
-
-/**
- * struct rio_driver - RIO driver info
- * @node: Node in list of drivers
- * @name: RIO driver name
- * @id_table: RIO device ids to be associated with this driver
- * @probe: RIO device inserted
- * @remove: RIO device removed
- * @suspend: RIO device suspended
- * @resume: RIO device awakened
- * @enable_wake: RIO device enable wake event
- * @driver: LDM driver struct
- *
- * Provides info on a RIO device driver for insertion/removal and
- * power management purposes.
- */
-struct rio_driver {
- struct list_head node;
- char *name;
- const struct rio_device_id *id_table;
- int (*probe) (struct rio_dev * dev, const struct rio_device_id * id);
- void (*remove) (struct rio_dev * dev);
- int (*suspend) (struct rio_dev * dev, u32 state);
- int (*resume) (struct rio_dev * dev);
- int (*enable_wake) (struct rio_dev * dev, u32 state, int enable);
- struct device_driver driver;
-};
-
-#define to_rio_driver(drv) container_of(drv,struct rio_driver, driver)
-
-/**
- * struct rio_device_id - RIO device identifier
- * @did: RIO device ID
- * @vid: RIO vendor ID
- * @asm_did: RIO assembly device ID
- * @asm_vid: RIO assembly vendor ID
- *
- * Identifies a RIO device based on both the device/vendor IDs and
- * the assembly device/vendor IDs.
- */
-struct rio_device_id {
- u16 did, vid;
- u16 asm_did, asm_vid;
-};
-
-/**
- * struct rio_switch_ops - Per-switch operations
- * @vid: RIO vendor ID
- * @did: RIO device ID
- * @init_hook: Callback that performs switch device initialization
- *
- * Defines the operations that are necessary to initialize/control
- * a particular RIO switch device.
- */
-struct rio_switch_ops {
- u16 vid, did;
- int (*init_hook) (struct rio_dev *rdev, int do_enum);
-};
-
-union rio_pw_msg {
- struct {
- u32 comptag; /* Component Tag CSR */
- u32 errdetect; /* Port N Error Detect CSR */
- u32 is_port; /* Implementation specific + PortID */
- u32 ltlerrdet; /* LTL Error Detect CSR */
- u32 padding[12];
- } em;
- u32 raw[RIO_PW_MSG_SIZE/sizeof(u32)];
-};
-
-/* Architecture and hardware-specific functions */
-extern int rio_register_mport(struct rio_mport *);
-extern int rio_open_inb_mbox(struct rio_mport *, void *, int, int);
-extern void rio_close_inb_mbox(struct rio_mport *, int);
-extern int rio_open_outb_mbox(struct rio_mport *, void *, int, int);
-extern void rio_close_outb_mbox(struct rio_mport *, int);
-
-#endif /* LINUX_RIO_H */
diff --git a/ANDROID_3.4.5/include/linux/rio_drv.h b/ANDROID_3.4.5/include/linux/rio_drv.h
deleted file mode 100644
index 7f07470e..00000000
--- a/ANDROID_3.4.5/include/linux/rio_drv.h
+++ /dev/null
@@ -1,423 +0,0 @@
-/*
- * RapidIO driver services
- *
- * Copyright 2005 MontaVista Software, Inc.
- * Matt Porter <mporter@kernel.crashing.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.
- */
-
-#ifndef LINUX_RIO_DRV_H
-#define LINUX_RIO_DRV_H
-
-#include <linux/types.h>
-#include <linux/ioport.h>
-#include <linux/list.h>
-#include <linux/errno.h>
-#include <linux/string.h>
-#include <linux/rio.h>
-
-extern int __rio_local_read_config_32(struct rio_mport *port, u32 offset,
- u32 * data);
-extern int __rio_local_write_config_32(struct rio_mport *port, u32 offset,
- u32 data);
-extern int __rio_local_read_config_16(struct rio_mport *port, u32 offset,
- u16 * data);
-extern int __rio_local_write_config_16(struct rio_mport *port, u32 offset,
- u16 data);
-extern int __rio_local_read_config_8(struct rio_mport *port, u32 offset,
- u8 * data);
-extern int __rio_local_write_config_8(struct rio_mport *port, u32 offset,
- u8 data);
-
-extern int rio_mport_read_config_32(struct rio_mport *port, u16 destid,
- u8 hopcount, u32 offset, u32 * data);
-extern int rio_mport_write_config_32(struct rio_mport *port, u16 destid,
- u8 hopcount, u32 offset, u32 data);
-extern int rio_mport_read_config_16(struct rio_mport *port, u16 destid,
- u8 hopcount, u32 offset, u16 * data);
-extern int rio_mport_write_config_16(struct rio_mport *port, u16 destid,
- u8 hopcount, u32 offset, u16 data);
-extern int rio_mport_read_config_8(struct rio_mport *port, u16 destid,
- u8 hopcount, u32 offset, u8 * data);
-extern int rio_mport_write_config_8(struct rio_mport *port, u16 destid,
- u8 hopcount, u32 offset, u8 data);
-
-/**
- * rio_local_read_config_32 - Read 32 bits from local configuration space
- * @port: Master port
- * @offset: Offset into local configuration space
- * @data: Pointer to read data into
- *
- * Reads 32 bits of data from the specified offset within the local
- * device's configuration space.
- */
-static inline int rio_local_read_config_32(struct rio_mport *port, u32 offset,
- u32 * data)
-{
- return __rio_local_read_config_32(port, offset, data);
-}
-
-/**
- * rio_local_write_config_32 - Write 32 bits to local configuration space
- * @port: Master port
- * @offset: Offset into local configuration space
- * @data: Data to be written
- *
- * Writes 32 bits of data to the specified offset within the local
- * device's configuration space.
- */
-static inline int rio_local_write_config_32(struct rio_mport *port, u32 offset,
- u32 data)
-{
- return __rio_local_write_config_32(port, offset, data);
-}
-
-/**
- * rio_local_read_config_16 - Read 16 bits from local configuration space
- * @port: Master port
- * @offset: Offset into local configuration space
- * @data: Pointer to read data into
- *
- * Reads 16 bits of data from the specified offset within the local
- * device's configuration space.
- */
-static inline int rio_local_read_config_16(struct rio_mport *port, u32 offset,
- u16 * data)
-{
- return __rio_local_read_config_16(port, offset, data);
-}
-
-/**
- * rio_local_write_config_16 - Write 16 bits to local configuration space
- * @port: Master port
- * @offset: Offset into local configuration space
- * @data: Data to be written
- *
- * Writes 16 bits of data to the specified offset within the local
- * device's configuration space.
- */
-
-static inline int rio_local_write_config_16(struct rio_mport *port, u32 offset,
- u16 data)
-{
- return __rio_local_write_config_16(port, offset, data);
-}
-
-/**
- * rio_local_read_config_8 - Read 8 bits from local configuration space
- * @port: Master port
- * @offset: Offset into local configuration space
- * @data: Pointer to read data into
- *
- * Reads 8 bits of data from the specified offset within the local
- * device's configuration space.
- */
-static inline int rio_local_read_config_8(struct rio_mport *port, u32 offset,
- u8 * data)
-{
- return __rio_local_read_config_8(port, offset, data);
-}
-
-/**
- * rio_local_write_config_8 - Write 8 bits to local configuration space
- * @port: Master port
- * @offset: Offset into local configuration space
- * @data: Data to be written
- *
- * Writes 8 bits of data to the specified offset within the local
- * device's configuration space.
- */
-static inline int rio_local_write_config_8(struct rio_mport *port, u32 offset,
- u8 data)
-{
- return __rio_local_write_config_8(port, offset, data);
-}
-
-/**
- * rio_read_config_32 - Read 32 bits from configuration space
- * @rdev: RIO device
- * @offset: Offset into device configuration space
- * @data: Pointer to read data into
- *
- * Reads 32 bits of data from the specified offset within the
- * RIO device's configuration space.
- */
-static inline int rio_read_config_32(struct rio_dev *rdev, u32 offset,
- u32 * data)
-{
- return rio_mport_read_config_32(rdev->net->hport, rdev->destid,
- rdev->hopcount, offset, data);
-};
-
-/**
- * rio_write_config_32 - Write 32 bits to configuration space
- * @rdev: RIO device
- * @offset: Offset into device configuration space
- * @data: Data to be written
- *
- * Writes 32 bits of data to the specified offset within the
- * RIO device's configuration space.
- */
-static inline int rio_write_config_32(struct rio_dev *rdev, u32 offset,
- u32 data)
-{
- return rio_mport_write_config_32(rdev->net->hport, rdev->destid,
- rdev->hopcount, offset, data);
-};
-
-/**
- * rio_read_config_16 - Read 16 bits from configuration space
- * @rdev: RIO device
- * @offset: Offset into device configuration space
- * @data: Pointer to read data into
- *
- * Reads 16 bits of data from the specified offset within the
- * RIO device's configuration space.
- */
-static inline int rio_read_config_16(struct rio_dev *rdev, u32 offset,
- u16 * data)
-{
- return rio_mport_read_config_16(rdev->net->hport, rdev->destid,
- rdev->hopcount, offset, data);
-};
-
-/**
- * rio_write_config_16 - Write 16 bits to configuration space
- * @rdev: RIO device
- * @offset: Offset into device configuration space
- * @data: Data to be written
- *
- * Writes 16 bits of data to the specified offset within the
- * RIO device's configuration space.
- */
-static inline int rio_write_config_16(struct rio_dev *rdev, u32 offset,
- u16 data)
-{
- return rio_mport_write_config_16(rdev->net->hport, rdev->destid,
- rdev->hopcount, offset, data);
-};
-
-/**
- * rio_read_config_8 - Read 8 bits from configuration space
- * @rdev: RIO device
- * @offset: Offset into device configuration space
- * @data: Pointer to read data into
- *
- * Reads 8 bits of data from the specified offset within the
- * RIO device's configuration space.
- */
-static inline int rio_read_config_8(struct rio_dev *rdev, u32 offset, u8 * data)
-{
- return rio_mport_read_config_8(rdev->net->hport, rdev->destid,
- rdev->hopcount, offset, data);
-};
-
-/**
- * rio_write_config_8 - Write 8 bits to configuration space
- * @rdev: RIO device
- * @offset: Offset into device configuration space
- * @data: Data to be written
- *
- * Writes 8 bits of data to the specified offset within the
- * RIO device's configuration space.
- */
-static inline int rio_write_config_8(struct rio_dev *rdev, u32 offset, u8 data)
-{
- return rio_mport_write_config_8(rdev->net->hport, rdev->destid,
- rdev->hopcount, offset, data);
-};
-
-extern int rio_mport_send_doorbell(struct rio_mport *mport, u16 destid,
- u16 data);
-
-/**
- * rio_send_doorbell - Send a doorbell message to a device
- * @rdev: RIO device
- * @data: Doorbell message data
- *
- * Send a doorbell message to a RIO device. The doorbell message
- * has a 16-bit info field provided by the @data argument.
- */
-static inline int rio_send_doorbell(struct rio_dev *rdev, u16 data)
-{
- return rio_mport_send_doorbell(rdev->net->hport, rdev->destid, data);
-};
-
-/**
- * rio_init_mbox_res - Initialize a RIO mailbox resource
- * @res: resource struct
- * @start: start of mailbox range
- * @end: end of mailbox range
- *
- * This function is used to initialize the fields of a resource
- * for use as a mailbox resource. It initializes a range of
- * mailboxes using the start and end arguments.
- */
-static inline void rio_init_mbox_res(struct resource *res, int start, int end)
-{
- memset(res, 0, sizeof(struct resource));
- res->start = start;
- res->end = end;
- res->flags = RIO_RESOURCE_MAILBOX;
-}
-
-/**
- * rio_init_dbell_res - Initialize a RIO doorbell resource
- * @res: resource struct
- * @start: start of doorbell range
- * @end: end of doorbell range
- *
- * This function is used to initialize the fields of a resource
- * for use as a doorbell resource. It initializes a range of
- * doorbell messages using the start and end arguments.
- */
-static inline void rio_init_dbell_res(struct resource *res, u16 start, u16 end)
-{
- memset(res, 0, sizeof(struct resource));
- res->start = start;
- res->end = end;
- res->flags = RIO_RESOURCE_DOORBELL;
-}
-
-/**
- * RIO_DEVICE - macro used to describe a specific RIO device
- * @dev: the 16 bit RIO device ID
- * @ven: the 16 bit RIO vendor ID
- *
- * This macro is used to create a struct rio_device_id that matches a
- * specific device. The assembly vendor and assembly device fields
- * will be set to %RIO_ANY_ID.
- */
-#define RIO_DEVICE(dev,ven) \
- .did = (dev), .vid = (ven), \
- .asm_did = RIO_ANY_ID, .asm_vid = RIO_ANY_ID
-
-/* Mailbox management */
-extern int rio_request_outb_mbox(struct rio_mport *, void *, int, int,
- void (*)(struct rio_mport *, void *,int, int));
-extern int rio_release_outb_mbox(struct rio_mport *, int);
-
-/**
- * rio_add_outb_message - Add RIO message to an outbound mailbox queue
- * @mport: RIO master port containing the outbound queue
- * @rdev: RIO device the message is be sent to
- * @mbox: The outbound mailbox queue
- * @buffer: Pointer to the message buffer
- * @len: Length of the message buffer
- *
- * Adds a RIO message buffer to an outbound mailbox queue for
- * transmission. Returns 0 on success.
- */
-static inline int rio_add_outb_message(struct rio_mport *mport,
- struct rio_dev *rdev, int mbox,
- void *buffer, size_t len)
-{
- return mport->ops->add_outb_message(mport, rdev, mbox,
- buffer, len);
-}
-
-extern int rio_request_inb_mbox(struct rio_mport *, void *, int, int,
- void (*)(struct rio_mport *, void *, int, int));
-extern int rio_release_inb_mbox(struct rio_mport *, int);
-
-/**
- * rio_add_inb_buffer - Add buffer to an inbound mailbox queue
- * @mport: Master port containing the inbound mailbox
- * @mbox: The inbound mailbox number
- * @buffer: Pointer to the message buffer
- *
- * Adds a buffer to an inbound mailbox queue for reception. Returns
- * 0 on success.
- */
-static inline int rio_add_inb_buffer(struct rio_mport *mport, int mbox,
- void *buffer)
-{
- return mport->ops->add_inb_buffer(mport, mbox, buffer);
-}
-
-/**
- * rio_get_inb_message - Get A RIO message from an inbound mailbox queue
- * @mport: Master port containing the inbound mailbox
- * @mbox: The inbound mailbox number
- *
- * Get a RIO message from an inbound mailbox queue. Returns 0 on success.
- */
-static inline void *rio_get_inb_message(struct rio_mport *mport, int mbox)
-{
- return mport->ops->get_inb_message(mport, mbox);
-}
-
-/* Doorbell management */
-extern int rio_request_inb_dbell(struct rio_mport *, void *, u16, u16,
- void (*)(struct rio_mport *, void *, u16, u16, u16));
-extern int rio_release_inb_dbell(struct rio_mport *, u16, u16);
-extern struct resource *rio_request_outb_dbell(struct rio_dev *, u16, u16);
-extern int rio_release_outb_dbell(struct rio_dev *, struct resource *);
-
-/* Memory region management */
-int rio_claim_resource(struct rio_dev *, int);
-int rio_request_regions(struct rio_dev *, char *);
-void rio_release_regions(struct rio_dev *);
-int rio_request_region(struct rio_dev *, int, char *);
-void rio_release_region(struct rio_dev *, int);
-
-/* Port-Write management */
-extern int rio_request_inb_pwrite(struct rio_dev *,
- int (*)(struct rio_dev *, union rio_pw_msg*, int));
-extern int rio_release_inb_pwrite(struct rio_dev *);
-extern int rio_inb_pwrite_handler(union rio_pw_msg *pw_msg);
-
-/* LDM support */
-int rio_register_driver(struct rio_driver *);
-void rio_unregister_driver(struct rio_driver *);
-struct rio_dev *rio_dev_get(struct rio_dev *);
-void rio_dev_put(struct rio_dev *);
-
-/**
- * rio_name - Get the unique RIO device identifier
- * @rdev: RIO device
- *
- * Get the unique RIO device identifier. Returns the device
- * identifier string.
- */
-static inline const char *rio_name(struct rio_dev *rdev)
-{
- return dev_name(&rdev->dev);
-}
-
-/**
- * rio_get_drvdata - Get RIO driver specific data
- * @rdev: RIO device
- *
- * Get RIO driver specific data. Returns a pointer to the
- * driver specific data.
- */
-static inline void *rio_get_drvdata(struct rio_dev *rdev)
-{
- return dev_get_drvdata(&rdev->dev);
-}
-
-/**
- * rio_set_drvdata - Set RIO driver specific data
- * @rdev: RIO device
- * @data: Pointer to driver specific data
- *
- * Set RIO driver specific data. device struct driver data pointer
- * is set to the @data argument.
- */
-static inline void rio_set_drvdata(struct rio_dev *rdev, void *data)
-{
- dev_set_drvdata(&rdev->dev, data);
-}
-
-/* Misc driver helpers */
-extern u16 rio_local_get_device_id(struct rio_mport *port);
-extern struct rio_dev *rio_get_device(u16 vid, u16 did, struct rio_dev *from);
-extern struct rio_dev *rio_get_asm(u16 vid, u16 did, u16 asm_vid, u16 asm_did,
- struct rio_dev *from);
-
-#endif /* LINUX_RIO_DRV_H */
diff --git a/ANDROID_3.4.5/include/linux/rio_ids.h b/ANDROID_3.4.5/include/linux/rio_ids.h
deleted file mode 100644
index b66d13d1..00000000
--- a/ANDROID_3.4.5/include/linux/rio_ids.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * RapidIO devices
- *
- * Copyright 2005 MontaVista Software, Inc.
- * Matt Porter <mporter@kernel.crashing.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.
- */
-
-#ifndef LINUX_RIO_IDS_H
-#define LINUX_RIO_IDS_H
-
-#define RIO_ANY_ID 0xffff
-
-#define RIO_VID_FREESCALE 0x0002
-#define RIO_DID_MPC8560 0x0003
-
-#define RIO_VID_TUNDRA 0x000d
-#define RIO_DID_TSI500 0x0500
-#define RIO_DID_TSI568 0x0568
-#define RIO_DID_TSI572 0x0572
-#define RIO_DID_TSI574 0x0574
-#define RIO_DID_TSI576 0x0578 /* Same ID as Tsi578 */
-#define RIO_DID_TSI577 0x0577
-#define RIO_DID_TSI578 0x0578
-
-#define RIO_VID_IDT 0x0038
-#define RIO_DID_IDT70K200 0x0310
-#define RIO_DID_IDTCPS8 0x035c
-#define RIO_DID_IDTCPS12 0x035d
-#define RIO_DID_IDTCPS16 0x035b
-#define RIO_DID_IDTCPS6Q 0x035f
-#define RIO_DID_IDTCPS10Q 0x035e
-#define RIO_DID_IDTCPS1848 0x0374
-#define RIO_DID_IDTCPS1432 0x0375
-#define RIO_DID_IDTCPS1616 0x0379
-#define RIO_DID_IDTVPS1616 0x0377
-#define RIO_DID_IDTSPS1616 0x0378
-#define RIO_DID_TSI721 0x80ab
-
-#endif /* LINUX_RIO_IDS_H */
diff --git a/ANDROID_3.4.5/include/linux/rio_regs.h b/ANDROID_3.4.5/include/linux/rio_regs.h
deleted file mode 100644
index 218168a2..00000000
--- a/ANDROID_3.4.5/include/linux/rio_regs.h
+++ /dev/null
@@ -1,295 +0,0 @@
-/*
- * RapidIO register definitions
- *
- * Copyright 2005 MontaVista Software, Inc.
- * Matt Porter <mporter@kernel.crashing.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.
- */
-
-#ifndef LINUX_RIO_REGS_H
-#define LINUX_RIO_REGS_H
-
-/*
- * In RapidIO, each device has a 16MB configuration space that is
- * accessed via maintenance transactions. Portions of configuration
- * space are standardized and/or reserved.
- */
-#define RIO_MAINT_SPACE_SZ 0x1000000 /* 16MB of RapidIO mainenance space */
-
-#define RIO_DEV_ID_CAR 0x00 /* [I] Device Identity CAR */
-#define RIO_DEV_INFO_CAR 0x04 /* [I] Device Information CAR */
-#define RIO_ASM_ID_CAR 0x08 /* [I] Assembly Identity CAR */
-#define RIO_ASM_ID_MASK 0xffff0000 /* [I] Asm ID Mask */
-#define RIO_ASM_VEN_ID_MASK 0x0000ffff /* [I] Asm Vend Mask */
-
-#define RIO_ASM_INFO_CAR 0x0c /* [I] Assembly Information CAR */
-#define RIO_ASM_REV_MASK 0xffff0000 /* [I] Asm Rev Mask */
-#define RIO_EXT_FTR_PTR_MASK 0x0000ffff /* [I] EF_PTR Mask */
-
-#define RIO_PEF_CAR 0x10 /* [I] Processing Element Features CAR */
-#define RIO_PEF_BRIDGE 0x80000000 /* [I] Bridge */
-#define RIO_PEF_MEMORY 0x40000000 /* [I] MMIO */
-#define RIO_PEF_PROCESSOR 0x20000000 /* [I] Processor */
-#define RIO_PEF_SWITCH 0x10000000 /* [I] Switch */
-#define RIO_PEF_MULTIPORT 0x08000000 /* [VI, 2.1] Multiport */
-#define RIO_PEF_INB_MBOX 0x00f00000 /* [II, <= 1.2] Mailboxes */
-#define RIO_PEF_INB_MBOX0 0x00800000 /* [II, <= 1.2] Mailbox 0 */
-#define RIO_PEF_INB_MBOX1 0x00400000 /* [II, <= 1.2] Mailbox 1 */
-#define RIO_PEF_INB_MBOX2 0x00200000 /* [II, <= 1.2] Mailbox 2 */
-#define RIO_PEF_INB_MBOX3 0x00100000 /* [II, <= 1.2] Mailbox 3 */
-#define RIO_PEF_INB_DOORBELL 0x00080000 /* [II, <= 1.2] Doorbells */
-#define RIO_PEF_EXT_RT 0x00000200 /* [III, 1.3] Extended route table support */
-#define RIO_PEF_STD_RT 0x00000100 /* [III, 1.3] Standard route table support */
-#define RIO_PEF_CTLS 0x00000010 /* [III] CTLS */
-#define RIO_PEF_EXT_FEATURES 0x00000008 /* [I] EFT_PTR valid */
-#define RIO_PEF_ADDR_66 0x00000004 /* [I] 66 bits */
-#define RIO_PEF_ADDR_50 0x00000002 /* [I] 50 bits */
-#define RIO_PEF_ADDR_34 0x00000001 /* [I] 34 bits */
-
-#define RIO_SWP_INFO_CAR 0x14 /* [I] Switch Port Information CAR */
-#define RIO_SWP_INFO_PORT_TOTAL_MASK 0x0000ff00 /* [I] Total number of ports */
-#define RIO_SWP_INFO_PORT_NUM_MASK 0x000000ff /* [I] Maintenance transaction port number */
-#define RIO_GET_TOTAL_PORTS(x) ((x & RIO_SWP_INFO_PORT_TOTAL_MASK) >> 8)
-#define RIO_GET_PORT_NUM(x) (x & RIO_SWP_INFO_PORT_NUM_MASK)
-
-#define RIO_SRC_OPS_CAR 0x18 /* [I] Source Operations CAR */
-#define RIO_SRC_OPS_READ 0x00008000 /* [I] Read op */
-#define RIO_SRC_OPS_WRITE 0x00004000 /* [I] Write op */
-#define RIO_SRC_OPS_STREAM_WRITE 0x00002000 /* [I] Str-write op */
-#define RIO_SRC_OPS_WRITE_RESPONSE 0x00001000 /* [I] Write/resp op */
-#define RIO_SRC_OPS_DATA_MSG 0x00000800 /* [II] Data msg op */
-#define RIO_SRC_OPS_DOORBELL 0x00000400 /* [II] Doorbell op */
-#define RIO_SRC_OPS_ATOMIC_TST_SWP 0x00000100 /* [I] Atomic TAS op */
-#define RIO_SRC_OPS_ATOMIC_INC 0x00000080 /* [I] Atomic inc op */
-#define RIO_SRC_OPS_ATOMIC_DEC 0x00000040 /* [I] Atomic dec op */
-#define RIO_SRC_OPS_ATOMIC_SET 0x00000020 /* [I] Atomic set op */
-#define RIO_SRC_OPS_ATOMIC_CLR 0x00000010 /* [I] Atomic clr op */
-#define RIO_SRC_OPS_PORT_WRITE 0x00000004 /* [I] Port-write op */
-
-#define RIO_DST_OPS_CAR 0x1c /* Destination Operations CAR */
-#define RIO_DST_OPS_READ 0x00008000 /* [I] Read op */
-#define RIO_DST_OPS_WRITE 0x00004000 /* [I] Write op */
-#define RIO_DST_OPS_STREAM_WRITE 0x00002000 /* [I] Str-write op */
-#define RIO_DST_OPS_WRITE_RESPONSE 0x00001000 /* [I] Write/resp op */
-#define RIO_DST_OPS_DATA_MSG 0x00000800 /* [II] Data msg op */
-#define RIO_DST_OPS_DOORBELL 0x00000400 /* [II] Doorbell op */
-#define RIO_DST_OPS_ATOMIC_TST_SWP 0x00000100 /* [I] Atomic TAS op */
-#define RIO_DST_OPS_ATOMIC_INC 0x00000080 /* [I] Atomic inc op */
-#define RIO_DST_OPS_ATOMIC_DEC 0x00000040 /* [I] Atomic dec op */
-#define RIO_DST_OPS_ATOMIC_SET 0x00000020 /* [I] Atomic set op */
-#define RIO_DST_OPS_ATOMIC_CLR 0x00000010 /* [I] Atomic clr op */
-#define RIO_DST_OPS_PORT_WRITE 0x00000004 /* [I] Port-write op */
-
-#define RIO_OPS_READ 0x00008000 /* [I] Read op */
-#define RIO_OPS_WRITE 0x00004000 /* [I] Write op */
-#define RIO_OPS_STREAM_WRITE 0x00002000 /* [I] Str-write op */
-#define RIO_OPS_WRITE_RESPONSE 0x00001000 /* [I] Write/resp op */
-#define RIO_OPS_DATA_MSG 0x00000800 /* [II] Data msg op */
-#define RIO_OPS_DOORBELL 0x00000400 /* [II] Doorbell op */
-#define RIO_OPS_ATOMIC_TST_SWP 0x00000100 /* [I] Atomic TAS op */
-#define RIO_OPS_ATOMIC_INC 0x00000080 /* [I] Atomic inc op */
-#define RIO_OPS_ATOMIC_DEC 0x00000040 /* [I] Atomic dec op */
-#define RIO_OPS_ATOMIC_SET 0x00000020 /* [I] Atomic set op */
-#define RIO_OPS_ATOMIC_CLR 0x00000010 /* [I] Atomic clr op */
-#define RIO_OPS_PORT_WRITE 0x00000004 /* [I] Port-write op */
-
- /* 0x20-0x30 *//* Reserved */
-
-#define RIO_SWITCH_RT_LIMIT 0x34 /* [III, 1.3] Switch Route Table Destination ID Limit CAR */
-#define RIO_RT_MAX_DESTID 0x0000ffff
-
-#define RIO_MBOX_CSR 0x40 /* [II, <= 1.2] Mailbox CSR */
-#define RIO_MBOX0_AVAIL 0x80000000 /* [II] Mbox 0 avail */
-#define RIO_MBOX0_FULL 0x40000000 /* [II] Mbox 0 full */
-#define RIO_MBOX0_EMPTY 0x20000000 /* [II] Mbox 0 empty */
-#define RIO_MBOX0_BUSY 0x10000000 /* [II] Mbox 0 busy */
-#define RIO_MBOX0_FAIL 0x08000000 /* [II] Mbox 0 fail */
-#define RIO_MBOX0_ERROR 0x04000000 /* [II] Mbox 0 error */
-#define RIO_MBOX1_AVAIL 0x00800000 /* [II] Mbox 1 avail */
-#define RIO_MBOX1_FULL 0x00200000 /* [II] Mbox 1 full */
-#define RIO_MBOX1_EMPTY 0x00200000 /* [II] Mbox 1 empty */
-#define RIO_MBOX1_BUSY 0x00100000 /* [II] Mbox 1 busy */
-#define RIO_MBOX1_FAIL 0x00080000 /* [II] Mbox 1 fail */
-#define RIO_MBOX1_ERROR 0x00040000 /* [II] Mbox 1 error */
-#define RIO_MBOX2_AVAIL 0x00008000 /* [II] Mbox 2 avail */
-#define RIO_MBOX2_FULL 0x00004000 /* [II] Mbox 2 full */
-#define RIO_MBOX2_EMPTY 0x00002000 /* [II] Mbox 2 empty */
-#define RIO_MBOX2_BUSY 0x00001000 /* [II] Mbox 2 busy */
-#define RIO_MBOX2_FAIL 0x00000800 /* [II] Mbox 2 fail */
-#define RIO_MBOX2_ERROR 0x00000400 /* [II] Mbox 2 error */
-#define RIO_MBOX3_AVAIL 0x00000080 /* [II] Mbox 3 avail */
-#define RIO_MBOX3_FULL 0x00000040 /* [II] Mbox 3 full */
-#define RIO_MBOX3_EMPTY 0x00000020 /* [II] Mbox 3 empty */
-#define RIO_MBOX3_BUSY 0x00000010 /* [II] Mbox 3 busy */
-#define RIO_MBOX3_FAIL 0x00000008 /* [II] Mbox 3 fail */
-#define RIO_MBOX3_ERROR 0x00000004 /* [II] Mbox 3 error */
-
-#define RIO_WRITE_PORT_CSR 0x44 /* [I, <= 1.2] Write Port CSR */
-#define RIO_DOORBELL_CSR 0x44 /* [II, <= 1.2] Doorbell CSR */
-#define RIO_DOORBELL_AVAIL 0x80000000 /* [II] Doorbell avail */
-#define RIO_DOORBELL_FULL 0x40000000 /* [II] Doorbell full */
-#define RIO_DOORBELL_EMPTY 0x20000000 /* [II] Doorbell empty */
-#define RIO_DOORBELL_BUSY 0x10000000 /* [II] Doorbell busy */
-#define RIO_DOORBELL_FAILED 0x08000000 /* [II] Doorbell failed */
-#define RIO_DOORBELL_ERROR 0x04000000 /* [II] Doorbell error */
-#define RIO_WRITE_PORT_AVAILABLE 0x00000080 /* [I] Write Port Available */
-#define RIO_WRITE_PORT_FULL 0x00000040 /* [I] Write Port Full */
-#define RIO_WRITE_PORT_EMPTY 0x00000020 /* [I] Write Port Empty */
-#define RIO_WRITE_PORT_BUSY 0x00000010 /* [I] Write Port Busy */
-#define RIO_WRITE_PORT_FAILED 0x00000008 /* [I] Write Port Failed */
-#define RIO_WRITE_PORT_ERROR 0x00000004 /* [I] Write Port Error */
-
- /* 0x48 *//* Reserved */
-
-#define RIO_PELL_CTRL_CSR 0x4c /* [I] PE Logical Layer Control CSR */
-#define RIO_PELL_ADDR_66 0x00000004 /* [I] 66-bit addr */
-#define RIO_PELL_ADDR_50 0x00000002 /* [I] 50-bit addr */
-#define RIO_PELL_ADDR_34 0x00000001 /* [I] 34-bit addr */
-
- /* 0x50-0x54 *//* Reserved */
-
-#define RIO_LCSH_BA 0x58 /* [I] LCS High Base Address */
-#define RIO_LCSL_BA 0x5c /* [I] LCS Base Address */
-
-#define RIO_DID_CSR 0x60 /* [III] Base Device ID CSR */
-
- /* 0x64 *//* Reserved */
-
-#define RIO_HOST_DID_LOCK_CSR 0x68 /* [III] Host Base Device ID Lock CSR */
-#define RIO_COMPONENT_TAG_CSR 0x6c /* [III] Component Tag CSR */
-
-#define RIO_STD_RTE_CONF_DESTID_SEL_CSR 0x70
-#define RIO_STD_RTE_CONF_EXTCFGEN 0x80000000
-#define RIO_STD_RTE_CONF_PORT_SEL_CSR 0x74
-#define RIO_STD_RTE_DEFAULT_PORT 0x78
-
- /* 0x7c-0xf8 *//* Reserved */
- /* 0x100-0xfff8 *//* [I] Extended Features Space */
- /* 0x10000-0xfffff8 *//* [I] Implementation-defined Space */
-
-/*
- * Extended Features Space is a configuration space area where
- * functionality is mapped into extended feature blocks via a
- * singly linked list of extended feature pointers (EFT_PTR).
- *
- * Each extended feature block can be identified/located in
- * Extended Features Space by walking the extended feature
- * list starting with the Extended Feature Pointer located
- * in the Assembly Information CAR.
- *
- * Extended Feature Blocks (EFBs) are identified with an assigned
- * EFB ID. Extended feature block offsets in the definitions are
- * relative to the offset of the EFB within the Extended Features
- * Space.
- */
-
-/* Helper macros to parse the Extended Feature Block header */
-#define RIO_EFB_PTR_MASK 0xffff0000
-#define RIO_EFB_ID_MASK 0x0000ffff
-#define RIO_GET_BLOCK_PTR(x) ((x & RIO_EFB_PTR_MASK) >> 16)
-#define RIO_GET_BLOCK_ID(x) (x & RIO_EFB_ID_MASK)
-
-/* Extended Feature Block IDs */
-#define RIO_EFB_PAR_EP_ID 0x0001 /* [IV] LP/LVDS EP Devices */
-#define RIO_EFB_PAR_EP_REC_ID 0x0002 /* [IV] LP/LVDS EP Recovery Devices */
-#define RIO_EFB_PAR_EP_FREE_ID 0x0003 /* [IV] LP/LVDS EP Free Devices */
-#define RIO_EFB_SER_EP_ID_V13P 0x0001 /* [VI] LP/Serial EP Devices, RapidIO Spec ver 1.3 and above */
-#define RIO_EFB_SER_EP_REC_ID_V13P 0x0002 /* [VI] LP/Serial EP Recovery Devices, RapidIO Spec ver 1.3 and above */
-#define RIO_EFB_SER_EP_FREE_ID_V13P 0x0003 /* [VI] LP/Serial EP Free Devices, RapidIO Spec ver 1.3 and above */
-#define RIO_EFB_SER_EP_ID 0x0004 /* [VI] LP/Serial EP Devices */
-#define RIO_EFB_SER_EP_REC_ID 0x0005 /* [VI] LP/Serial EP Recovery Devices */
-#define RIO_EFB_SER_EP_FREE_ID 0x0006 /* [VI] LP/Serial EP Free Devices */
-#define RIO_EFB_SER_EP_FREC_ID 0x0009 /* [VI] LP/Serial EP Free Recovery Devices */
-#define RIO_EFB_ERR_MGMNT 0x0007 /* [VIII] Error Management Extensions */
-
-/*
- * Physical 8/16 LP-LVDS
- * ID=0x0001, Generic End Point Devices
- * ID=0x0002, Generic End Point Devices, software assisted recovery option
- * ID=0x0003, Generic End Point Free Devices
- *
- * Physical LP-Serial
- * ID=0x0004, Generic End Point Devices
- * ID=0x0005, Generic End Point Devices, software assisted recovery option
- * ID=0x0006, Generic End Point Free Devices
- */
-#define RIO_PORT_MNT_HEADER 0x0000
-#define RIO_PORT_REQ_CTL_CSR 0x0020
-#define RIO_PORT_RSP_CTL_CSR 0x0024 /* 0x0001/0x0002 */
-#define RIO_PORT_LINKTO_CTL_CSR 0x0020 /* Serial */
-#define RIO_PORT_RSPTO_CTL_CSR 0x0024 /* Serial */
-#define RIO_PORT_GEN_CTL_CSR 0x003c
-#define RIO_PORT_GEN_HOST 0x80000000
-#define RIO_PORT_GEN_MASTER 0x40000000
-#define RIO_PORT_GEN_DISCOVERED 0x20000000
-#define RIO_PORT_N_MNT_REQ_CSR(x) (0x0040 + x*0x20) /* 0x0002 */
-#define RIO_MNT_REQ_CMD_RD 0x03 /* Reset-device command */
-#define RIO_MNT_REQ_CMD_IS 0x04 /* Input-status command */
-#define RIO_PORT_N_MNT_RSP_CSR(x) (0x0044 + x*0x20) /* 0x0002 */
-#define RIO_PORT_N_MNT_RSP_RVAL 0x80000000 /* Response Valid */
-#define RIO_PORT_N_MNT_RSP_ASTAT 0x000007e0 /* ackID Status */
-#define RIO_PORT_N_MNT_RSP_LSTAT 0x0000001f /* Link Status */
-#define RIO_PORT_N_ACK_STS_CSR(x) (0x0048 + x*0x20) /* 0x0002 */
-#define RIO_PORT_N_ACK_CLEAR 0x80000000
-#define RIO_PORT_N_ACK_INBOUND 0x3f000000
-#define RIO_PORT_N_ACK_OUTSTAND 0x00003f00
-#define RIO_PORT_N_ACK_OUTBOUND 0x0000003f
-#define RIO_PORT_N_ERR_STS_CSR(x) (0x0058 + x*0x20)
-#define RIO_PORT_N_ERR_STS_PW_OUT_ES 0x00010000 /* Output Error-stopped */
-#define RIO_PORT_N_ERR_STS_PW_INP_ES 0x00000100 /* Input Error-stopped */
-#define RIO_PORT_N_ERR_STS_PW_PEND 0x00000010 /* Port-Write Pending */
-#define RIO_PORT_N_ERR_STS_PORT_ERR 0x00000004
-#define RIO_PORT_N_ERR_STS_PORT_OK 0x00000002
-#define RIO_PORT_N_ERR_STS_PORT_UNINIT 0x00000001
-#define RIO_PORT_N_CTL_CSR(x) (0x005c + x*0x20)
-#define RIO_PORT_N_CTL_PWIDTH 0xc0000000
-#define RIO_PORT_N_CTL_PWIDTH_1 0x00000000
-#define RIO_PORT_N_CTL_PWIDTH_4 0x40000000
-#define RIO_PORT_N_CTL_P_TYP_SER 0x00000001
-#define RIO_PORT_N_CTL_LOCKOUT 0x00000002
-#define RIO_PORT_N_CTL_EN_RX_SER 0x00200000
-#define RIO_PORT_N_CTL_EN_TX_SER 0x00400000
-#define RIO_PORT_N_CTL_EN_RX_PAR 0x08000000
-#define RIO_PORT_N_CTL_EN_TX_PAR 0x40000000
-
-/*
- * Error Management Extensions (RapidIO 1.3+, Part 8)
- *
- * Extended Features Block ID=0x0007
- */
-
-/* General EM Registers (Common for all Ports) */
-
-#define RIO_EM_EFB_HEADER 0x000 /* Error Management Extensions Block Header */
-#define RIO_EM_LTL_ERR_DETECT 0x008 /* Logical/Transport Layer Error Detect CSR */
-#define RIO_EM_LTL_ERR_EN 0x00c /* Logical/Transport Layer Error Enable CSR */
-#define REM_LTL_ERR_ILLTRAN 0x08000000 /* Illegal Transaction decode */
-#define REM_LTL_ERR_UNSOLR 0x00800000 /* Unsolicited Response */
-#define REM_LTL_ERR_UNSUPTR 0x00400000 /* Unsupported Transaction */
-#define REM_LTL_ERR_IMPSPEC 0x000000ff /* Implementation Specific */
-#define RIO_EM_LTL_HIADDR_CAP 0x010 /* Logical/Transport Layer High Address Capture CSR */
-#define RIO_EM_LTL_ADDR_CAP 0x014 /* Logical/Transport Layer Address Capture CSR */
-#define RIO_EM_LTL_DEVID_CAP 0x018 /* Logical/Transport Layer Device ID Capture CSR */
-#define RIO_EM_LTL_CTRL_CAP 0x01c /* Logical/Transport Layer Control Capture CSR */
-#define RIO_EM_PW_TGT_DEVID 0x028 /* Port-write Target deviceID CSR */
-#define RIO_EM_PKT_TTL 0x02c /* Packet Time-to-live CSR */
-
-/* Per-Port EM Registers */
-
-#define RIO_EM_PN_ERR_DETECT(x) (0x040 + x*0x40) /* Port N Error Detect CSR */
-#define REM_PED_IMPL_SPEC 0x80000000
-#define REM_PED_LINK_TO 0x00000001
-#define RIO_EM_PN_ERRRATE_EN(x) (0x044 + x*0x40) /* Port N Error Rate Enable CSR */
-#define RIO_EM_PN_ATTRIB_CAP(x) (0x048 + x*0x40) /* Port N Attributes Capture CSR */
-#define RIO_EM_PN_PKT_CAP_0(x) (0x04c + x*0x40) /* Port N Packet/Control Symbol Capture 0 CSR */
-#define RIO_EM_PN_PKT_CAP_1(x) (0x050 + x*0x40) /* Port N Packet Capture 1 CSR */
-#define RIO_EM_PN_PKT_CAP_2(x) (0x054 + x*0x40) /* Port N Packet Capture 2 CSR */
-#define RIO_EM_PN_PKT_CAP_3(x) (0x058 + x*0x40) /* Port N Packet Capture 3 CSR */
-#define RIO_EM_PN_ERRRATE(x) (0x068 + x*0x40) /* Port N Error Rate CSR */
-#define RIO_EM_PN_ERRRATE_TR(x) (0x06c + x*0x40) /* Port N Error Rate Threshold CSR */
-
-#endif /* LINUX_RIO_REGS_H */
diff --git a/ANDROID_3.4.5/include/linux/rmap.h b/ANDROID_3.4.5/include/linux/rmap.h
deleted file mode 100644
index fd07c454..00000000
--- a/ANDROID_3.4.5/include/linux/rmap.h
+++ /dev/null
@@ -1,263 +0,0 @@
-#ifndef _LINUX_RMAP_H
-#define _LINUX_RMAP_H
-/*
- * Declarations for Reverse Mapping functions in mm/rmap.c
- */
-
-#include <linux/list.h>
-#include <linux/slab.h>
-#include <linux/mm.h>
-#include <linux/mutex.h>
-#include <linux/memcontrol.h>
-
-/*
- * The anon_vma heads a list of private "related" vmas, to scan if
- * an anonymous page pointing to this anon_vma needs to be unmapped:
- * the vmas on the list will be related by forking, or by splitting.
- *
- * Since vmas come and go as they are split and merged (particularly
- * in mprotect), the mapping field of an anonymous page cannot point
- * directly to a vma: instead it points to an anon_vma, on whose list
- * the related vmas can be easily linked or unlinked.
- *
- * After unlinking the last vma on the list, we must garbage collect
- * the anon_vma object itself: we're guaranteed no page can be
- * pointing to this anon_vma once its vma list is empty.
- */
-struct anon_vma {
- struct anon_vma *root; /* Root of this anon_vma tree */
- struct mutex mutex; /* Serialize access to vma list */
- /*
- * The refcount is taken on an anon_vma when there is no
- * guarantee that the vma of page tables will exist for
- * the duration of the operation. A caller that takes
- * the reference is responsible for clearing up the
- * anon_vma if they are the last user on release
- */
- atomic_t refcount;
-
- /*
- * NOTE: the LSB of the head.next is set by
- * mm_take_all_locks() _after_ taking the above lock. So the
- * head must only be read/written after taking the above lock
- * to be sure to see a valid next pointer. The LSB bit itself
- * is serialized by a system wide lock only visible to
- * mm_take_all_locks() (mm_all_locks_mutex).
- */
- struct list_head head; /* Chain of private "related" vmas */
-};
-
-/*
- * The copy-on-write semantics of fork mean that an anon_vma
- * can become associated with multiple processes. Furthermore,
- * each child process will have its own anon_vma, where new
- * pages for that process are instantiated.
- *
- * This structure allows us to find the anon_vmas associated
- * with a VMA, or the VMAs associated with an anon_vma.
- * The "same_vma" list contains the anon_vma_chains linking
- * all the anon_vmas associated with this VMA.
- * The "same_anon_vma" list contains the anon_vma_chains
- * which link all the VMAs associated with this anon_vma.
- */
-struct anon_vma_chain {
- struct vm_area_struct *vma;
- struct anon_vma *anon_vma;
- struct list_head same_vma; /* locked by mmap_sem & page_table_lock */
- struct list_head same_anon_vma; /* locked by anon_vma->mutex */
-};
-
-#ifdef CONFIG_MMU
-static inline void get_anon_vma(struct anon_vma *anon_vma)
-{
- atomic_inc(&anon_vma->refcount);
-}
-
-void __put_anon_vma(struct anon_vma *anon_vma);
-
-static inline void put_anon_vma(struct anon_vma *anon_vma)
-{
- if (atomic_dec_and_test(&anon_vma->refcount))
- __put_anon_vma(anon_vma);
-}
-
-static inline struct anon_vma *page_anon_vma(struct page *page)
-{
- if (((unsigned long)page->mapping & PAGE_MAPPING_FLAGS) !=
- PAGE_MAPPING_ANON)
- return NULL;
- return page_rmapping(page);
-}
-
-static inline void vma_lock_anon_vma(struct vm_area_struct *vma)
-{
- struct anon_vma *anon_vma = vma->anon_vma;
- if (anon_vma)
- mutex_lock(&anon_vma->root->mutex);
-}
-
-static inline void vma_unlock_anon_vma(struct vm_area_struct *vma)
-{
- struct anon_vma *anon_vma = vma->anon_vma;
- if (anon_vma)
- mutex_unlock(&anon_vma->root->mutex);
-}
-
-static inline void anon_vma_lock(struct anon_vma *anon_vma)
-{
- mutex_lock(&anon_vma->root->mutex);
-}
-
-static inline void anon_vma_unlock(struct anon_vma *anon_vma)
-{
- mutex_unlock(&anon_vma->root->mutex);
-}
-
-/*
- * anon_vma helper functions.
- */
-void anon_vma_init(void); /* create anon_vma_cachep */
-int anon_vma_prepare(struct vm_area_struct *);
-void unlink_anon_vmas(struct vm_area_struct *);
-int anon_vma_clone(struct vm_area_struct *, struct vm_area_struct *);
-void anon_vma_moveto_tail(struct vm_area_struct *);
-int anon_vma_fork(struct vm_area_struct *, struct vm_area_struct *);
-
-static inline void anon_vma_merge(struct vm_area_struct *vma,
- struct vm_area_struct *next)
-{
- VM_BUG_ON(vma->anon_vma != next->anon_vma);
- unlink_anon_vmas(next);
-}
-
-struct anon_vma *page_get_anon_vma(struct page *page);
-
-/*
- * rmap interfaces called when adding or removing pte of page
- */
-void page_move_anon_rmap(struct page *, struct vm_area_struct *, unsigned long);
-void page_add_anon_rmap(struct page *, struct vm_area_struct *, unsigned long);
-void do_page_add_anon_rmap(struct page *, struct vm_area_struct *,
- unsigned long, int);
-void page_add_new_anon_rmap(struct page *, struct vm_area_struct *, unsigned long);
-void page_add_file_rmap(struct page *);
-void page_remove_rmap(struct page *);
-
-void hugepage_add_anon_rmap(struct page *, struct vm_area_struct *,
- unsigned long);
-void hugepage_add_new_anon_rmap(struct page *, struct vm_area_struct *,
- unsigned long);
-
-static inline void page_dup_rmap(struct page *page)
-{
- atomic_inc(&page->_mapcount);
-}
-
-/*
- * Called from mm/vmscan.c to handle paging out
- */
-int page_referenced(struct page *, int is_locked,
- struct mem_cgroup *memcg, unsigned long *vm_flags);
-int page_referenced_one(struct page *, struct vm_area_struct *,
- unsigned long address, unsigned int *mapcount, unsigned long *vm_flags);
-
-enum ttu_flags {
- TTU_UNMAP = 0, /* unmap mode */
- TTU_MIGRATION = 1, /* migration mode */
- TTU_MUNLOCK = 2, /* munlock mode */
- TTU_ACTION_MASK = 0xff,
-
- TTU_IGNORE_MLOCK = (1 << 8), /* ignore mlock */
- TTU_IGNORE_ACCESS = (1 << 9), /* don't age */
- TTU_IGNORE_HWPOISON = (1 << 10),/* corrupted page is recoverable */
-};
-#define TTU_ACTION(x) ((x) & TTU_ACTION_MASK)
-
-bool is_vma_temporary_stack(struct vm_area_struct *vma);
-
-int try_to_unmap(struct page *, enum ttu_flags flags);
-int try_to_unmap_one(struct page *, struct vm_area_struct *,
- unsigned long address, enum ttu_flags flags);
-
-/*
- * Called from mm/filemap_xip.c to unmap empty zero page
- */
-pte_t *__page_check_address(struct page *, struct mm_struct *,
- unsigned long, spinlock_t **, int);
-
-static inline pte_t *page_check_address(struct page *page, struct mm_struct *mm,
- unsigned long address,
- spinlock_t **ptlp, int sync)
-{
- pte_t *ptep;
-
- __cond_lock(*ptlp, ptep = __page_check_address(page, mm, address,
- ptlp, sync));
- return ptep;
-}
-
-/*
- * Used by swapoff to help locate where page is expected in vma.
- */
-unsigned long page_address_in_vma(struct page *, struct vm_area_struct *);
-
-/*
- * Cleans the PTEs of shared mappings.
- * (and since clean PTEs should also be readonly, write protects them too)
- *
- * returns the number of cleaned PTEs.
- */
-int page_mkclean(struct page *);
-
-/*
- * called in munlock()/munmap() path to check for other vmas holding
- * the page mlocked.
- */
-int try_to_munlock(struct page *);
-
-/*
- * Called by memory-failure.c to kill processes.
- */
-struct anon_vma *page_lock_anon_vma(struct page *page);
-void page_unlock_anon_vma(struct anon_vma *anon_vma);
-int page_mapped_in_vma(struct page *page, struct vm_area_struct *vma);
-
-/*
- * Called by migrate.c to remove migration ptes, but might be used more later.
- */
-int rmap_walk(struct page *page, int (*rmap_one)(struct page *,
- struct vm_area_struct *, unsigned long, void *), void *arg);
-
-#else /* !CONFIG_MMU */
-
-#define anon_vma_init() do {} while (0)
-#define anon_vma_prepare(vma) (0)
-#define anon_vma_link(vma) do {} while (0)
-
-static inline int page_referenced(struct page *page, int is_locked,
- struct mem_cgroup *memcg,
- unsigned long *vm_flags)
-{
- *vm_flags = 0;
- return 0;
-}
-
-#define try_to_unmap(page, refs) SWAP_FAIL
-
-static inline int page_mkclean(struct page *page)
-{
- return 0;
-}
-
-
-#endif /* CONFIG_MMU */
-
-/*
- * Return values of try_to_unmap
- */
-#define SWAP_SUCCESS 0
-#define SWAP_AGAIN 1
-#define SWAP_FAIL 2
-#define SWAP_MLOCK 3
-
-#endif /* _LINUX_RMAP_H */
diff --git a/ANDROID_3.4.5/include/linux/romfs_fs.h b/ANDROID_3.4.5/include/linux/romfs_fs.h
deleted file mode 100644
index 5f57f93b..00000000
--- a/ANDROID_3.4.5/include/linux/romfs_fs.h
+++ /dev/null
@@ -1,59 +0,0 @@
-#ifndef __LINUX_ROMFS_FS_H
-#define __LINUX_ROMFS_FS_H
-
-#include <linux/types.h>
-#include <linux/fs.h>
-
-/* The basic structures of the romfs filesystem */
-
-#define ROMBSIZE BLOCK_SIZE
-#define ROMBSBITS BLOCK_SIZE_BITS
-#define ROMBMASK (ROMBSIZE-1)
-#define ROMFS_MAGIC 0x7275
-
-#define ROMFS_MAXFN 128
-
-#define __mkw(h,l) (((h)&0x00ff)<< 8|((l)&0x00ff))
-#define __mkl(h,l) (((h)&0xffff)<<16|((l)&0xffff))
-#define __mk4(a,b,c,d) cpu_to_be32(__mkl(__mkw(a,b),__mkw(c,d)))
-#define ROMSB_WORD0 __mk4('-','r','o','m')
-#define ROMSB_WORD1 __mk4('1','f','s','-')
-
-/* On-disk "super block" */
-
-struct romfs_super_block {
- __be32 word0;
- __be32 word1;
- __be32 size;
- __be32 checksum;
- char name[0]; /* volume name */
-};
-
-/* On disk inode */
-
-struct romfs_inode {
- __be32 next; /* low 4 bits see ROMFH_ */
- __be32 spec;
- __be32 size;
- __be32 checksum;
- char name[0];
-};
-
-#define ROMFH_TYPE 7
-#define ROMFH_HRD 0
-#define ROMFH_DIR 1
-#define ROMFH_REG 2
-#define ROMFH_SYM 3
-#define ROMFH_BLK 4
-#define ROMFH_CHR 5
-#define ROMFH_SCK 6
-#define ROMFH_FIF 7
-#define ROMFH_EXEC 8
-
-/* Alignment */
-
-#define ROMFH_SIZE 16
-#define ROMFH_PAD (ROMFH_SIZE-1)
-#define ROMFH_MASK (~ROMFH_PAD)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/root_dev.h b/ANDROID_3.4.5/include/linux/root_dev.h
deleted file mode 100644
index ed241aad..00000000
--- a/ANDROID_3.4.5/include/linux/root_dev.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef _ROOT_DEV_H_
-#define _ROOT_DEV_H_
-
-#include <linux/major.h>
-#include <linux/types.h>
-#include <linux/kdev_t.h>
-
-enum {
- Root_NFS = MKDEV(UNNAMED_MAJOR, 255),
- Root_RAM0 = MKDEV(RAMDISK_MAJOR, 0),
- Root_RAM1 = MKDEV(RAMDISK_MAJOR, 1),
- Root_FD0 = MKDEV(FLOPPY_MAJOR, 0),
- Root_HDA1 = MKDEV(IDE0_MAJOR, 1),
- Root_HDA2 = MKDEV(IDE0_MAJOR, 2),
- Root_SDA1 = MKDEV(SCSI_DISK0_MAJOR, 1),
- Root_SDA2 = MKDEV(SCSI_DISK0_MAJOR, 2),
- Root_HDC1 = MKDEV(IDE1_MAJOR, 1),
- Root_SR0 = MKDEV(SCSI_CDROM_MAJOR, 0),
-};
-
-extern dev_t ROOT_DEV;
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/rose.h b/ANDROID_3.4.5/include/linux/rose.h
deleted file mode 100644
index 1fcfe958..00000000
--- a/ANDROID_3.4.5/include/linux/rose.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * These are the public elements of the Linux kernel Rose implementation.
- * For kernel AX.25 see the file ax25.h. This file requires ax25.h for the
- * definition of the ax25_address structure.
- */
-
-#ifndef ROSE_KERNEL_H
-#define ROSE_KERNEL_H
-
-#include <linux/socket.h>
-#include <linux/ax25.h>
-
-#define ROSE_MTU 251
-
-#define ROSE_MAX_DIGIS 6
-
-#define ROSE_DEFER 1
-#define ROSE_T1 2
-#define ROSE_T2 3
-#define ROSE_T3 4
-#define ROSE_IDLE 5
-#define ROSE_QBITINCL 6
-#define ROSE_HOLDBACK 7
-
-#define SIOCRSGCAUSE (SIOCPROTOPRIVATE+0)
-#define SIOCRSSCAUSE (SIOCPROTOPRIVATE+1)
-#define SIOCRSL2CALL (SIOCPROTOPRIVATE+2)
-#define SIOCRSSL2CALL (SIOCPROTOPRIVATE+2)
-#define SIOCRSACCEPT (SIOCPROTOPRIVATE+3)
-#define SIOCRSCLRRT (SIOCPROTOPRIVATE+4)
-#define SIOCRSGL2CALL (SIOCPROTOPRIVATE+5)
-#define SIOCRSGFACILITIES (SIOCPROTOPRIVATE+6)
-
-#define ROSE_DTE_ORIGINATED 0x00
-#define ROSE_NUMBER_BUSY 0x01
-#define ROSE_INVALID_FACILITY 0x03
-#define ROSE_NETWORK_CONGESTION 0x05
-#define ROSE_OUT_OF_ORDER 0x09
-#define ROSE_ACCESS_BARRED 0x0B
-#define ROSE_NOT_OBTAINABLE 0x0D
-#define ROSE_REMOTE_PROCEDURE 0x11
-#define ROSE_LOCAL_PROCEDURE 0x13
-#define ROSE_SHIP_ABSENT 0x39
-
-typedef struct {
- char rose_addr[5];
-} rose_address;
-
-struct sockaddr_rose {
- __kernel_sa_family_t srose_family;
- rose_address srose_addr;
- ax25_address srose_call;
- int srose_ndigis;
- ax25_address srose_digi;
-};
-
-struct full_sockaddr_rose {
- __kernel_sa_family_t srose_family;
- rose_address srose_addr;
- ax25_address srose_call;
- unsigned int srose_ndigis;
- ax25_address srose_digis[ROSE_MAX_DIGIS];
-};
-
-struct rose_route_struct {
- rose_address address;
- unsigned short mask;
- ax25_address neighbour;
- char device[16];
- unsigned char ndigis;
- ax25_address digipeaters[AX25_MAX_DIGIS];
-};
-
-struct rose_cause_struct {
- unsigned char cause;
- unsigned char diagnostic;
-};
-
-struct rose_facilities_struct {
- rose_address source_addr, dest_addr;
- ax25_address source_call, dest_call;
- unsigned char source_ndigis, dest_ndigis;
- ax25_address source_digis[ROSE_MAX_DIGIS];
- ax25_address dest_digis[ROSE_MAX_DIGIS];
- unsigned int rand;
- rose_address fail_addr;
- ax25_address fail_call;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/rotary_encoder.h b/ANDROID_3.4.5/include/linux/rotary_encoder.h
deleted file mode 100644
index 3f594dce..00000000
--- a/ANDROID_3.4.5/include/linux/rotary_encoder.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef __ROTARY_ENCODER_H__
-#define __ROTARY_ENCODER_H__
-
-struct rotary_encoder_platform_data {
- unsigned int steps;
- unsigned int axis;
- unsigned int gpio_a;
- unsigned int gpio_b;
- unsigned int inverted_a;
- unsigned int inverted_b;
- bool relative_axis;
- bool rollover;
- bool half_period;
-};
-
-#endif /* __ROTARY_ENCODER_H__ */
diff --git a/ANDROID_3.4.5/include/linux/route.h b/ANDROID_3.4.5/include/linux/route.h
deleted file mode 100644
index 66007083..00000000
--- a/ANDROID_3.4.5/include/linux/route.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Global definitions for the IP router interface.
- *
- * Version: @(#)route.h 1.0.3 05/27/93
- *
- * Authors: Original taken from Berkeley UNIX 4.3, (c) UCB 1986-1988
- * for the purposes of compatibility only.
- *
- * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
- *
- * Changes:
- * Mike McLagan : Routing by source
- *
- * 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_ROUTE_H
-#define _LINUX_ROUTE_H
-
-#include <linux/if.h>
-#include <linux/compiler.h>
-
-/* This structure gets passed by the SIOCADDRT and SIOCDELRT calls. */
-struct rtentry {
- unsigned long rt_pad1;
- struct sockaddr rt_dst; /* target address */
- struct sockaddr rt_gateway; /* gateway addr (RTF_GATEWAY) */
- struct sockaddr rt_genmask; /* target network mask (IP) */
- unsigned short rt_flags;
- short rt_pad2;
- unsigned long rt_pad3;
- void *rt_pad4;
- short rt_metric; /* +1 for binary compatibility! */
- char __user *rt_dev; /* forcing the device at add */
- unsigned long rt_mtu; /* per route MTU/Window */
-#ifndef __KERNEL__
-#define rt_mss rt_mtu /* Compatibility :-( */
-#endif
- unsigned long rt_window; /* Window clamping */
- unsigned short rt_irtt; /* Initial RTT */
-};
-
-
-#define RTF_UP 0x0001 /* route usable */
-#define RTF_GATEWAY 0x0002 /* destination is a gateway */
-#define RTF_HOST 0x0004 /* host entry (net otherwise) */
-#define RTF_REINSTATE 0x0008 /* reinstate route after tmout */
-#define RTF_DYNAMIC 0x0010 /* created dyn. (by redirect) */
-#define RTF_MODIFIED 0x0020 /* modified dyn. (by redirect) */
-#define RTF_MTU 0x0040 /* specific MTU for this route */
-#define RTF_MSS RTF_MTU /* Compatibility :-( */
-#define RTF_WINDOW 0x0080 /* per route window clamping */
-#define RTF_IRTT 0x0100 /* Initial round trip time */
-#define RTF_REJECT 0x0200 /* Reject route */
-
-/*
- * <linux/ipv6_route.h> uses RTF values >= 64k
- */
-
-
-
-#endif /* _LINUX_ROUTE_H */
-
diff --git a/ANDROID_3.4.5/include/linux/rpmsg.h b/ANDROID_3.4.5/include/linux/rpmsg.h
deleted file mode 100644
index 82a67390..00000000
--- a/ANDROID_3.4.5/include/linux/rpmsg.h
+++ /dev/null
@@ -1,332 +0,0 @@
-/*
- * Remote processor messaging
- *
- * Copyright (C) 2011 Texas Instruments, Inc.
- * Copyright (C) 2011 Google, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name Texas Instruments nor the names of its
- * contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef _LINUX_RPMSG_H
-#define _LINUX_RPMSG_H
-
-#include <linux/types.h>
-#include <linux/device.h>
-#include <linux/mod_devicetable.h>
-#include <linux/kref.h>
-#include <linux/mutex.h>
-
-/* The feature bitmap for virtio rpmsg */
-#define VIRTIO_RPMSG_F_NS 0 /* RP supports name service notifications */
-
-/**
- * struct rpmsg_hdr - common header for all rpmsg messages
- * @src: source address
- * @dst: destination address
- * @reserved: reserved for future use
- * @len: length of payload (in bytes)
- * @flags: message flags
- * @data: @len bytes of message payload data
- *
- * Every message sent(/received) on the rpmsg bus begins with this header.
- */
-struct rpmsg_hdr {
- u32 src;
- u32 dst;
- u32 reserved;
- u16 len;
- u16 flags;
- u8 data[0];
-} __packed;
-
-/**
- * struct rpmsg_ns_msg - dynamic name service announcement message
- * @name: name of remote service that is published
- * @addr: address of remote service that is published
- * @flags: indicates whether service is created or destroyed
- *
- * This message is sent across to publish a new service, or announce
- * about its removal. When we receive these messages, an appropriate
- * rpmsg channel (i.e device) is created/destroyed. In turn, the ->probe()
- * or ->remove() handler of the appropriate rpmsg driver will be invoked
- * (if/as-soon-as one is registered).
- */
-struct rpmsg_ns_msg {
- char name[RPMSG_NAME_SIZE];
- u32 addr;
- u32 flags;
-} __packed;
-
-/**
- * enum rpmsg_ns_flags - dynamic name service announcement flags
- *
- * @RPMSG_NS_CREATE: a new remote service was just created
- * @RPMSG_NS_DESTROY: a known remote service was just destroyed
- */
-enum rpmsg_ns_flags {
- RPMSG_NS_CREATE = 0,
- RPMSG_NS_DESTROY = 1,
-};
-
-#define RPMSG_ADDR_ANY 0xFFFFFFFF
-
-struct virtproc_info;
-
-/**
- * rpmsg_channel - devices that belong to the rpmsg bus are called channels
- * @vrp: the remote processor this channel belongs to
- * @dev: the device struct
- * @id: device id (used to match between rpmsg drivers and devices)
- * @src: local address
- * @dst: destination address
- * @ept: the rpmsg endpoint of this channel
- * @announce: if set, rpmsg will announce the creation/removal of this channel
- */
-struct rpmsg_channel {
- struct virtproc_info *vrp;
- struct device dev;
- struct rpmsg_device_id id;
- u32 src;
- u32 dst;
- struct rpmsg_endpoint *ept;
- bool announce;
-};
-
-typedef void (*rpmsg_rx_cb_t)(struct rpmsg_channel *, void *, int, void *, u32);
-
-/**
- * struct rpmsg_endpoint - binds a local rpmsg address to its user
- * @rpdev: rpmsg channel device
- * @refcount: when this drops to zero, the ept is deallocated
- * @cb: rx callback handler
- * @cb_lock: must be taken before accessing/changing @cb
- * @addr: local rpmsg address
- * @priv: private data for the driver's use
- *
- * In essence, an rpmsg endpoint represents a listener on the rpmsg bus, as
- * it binds an rpmsg address with an rx callback handler.
- *
- * Simple rpmsg drivers shouldn't use this struct directly, because
- * things just work: every rpmsg driver provides an rx callback upon
- * registering to the bus, and that callback is then bound to its rpmsg
- * address when the driver is probed. When relevant inbound messages arrive
- * (i.e. messages which their dst address equals to the src address of
- * the rpmsg channel), the driver's handler is invoked to process it.
- *
- * More complicated drivers though, that do need to allocate additional rpmsg
- * addresses, and bind them to different rx callbacks, must explicitly
- * create additional endpoints by themselves (see rpmsg_create_ept()).
- */
-struct rpmsg_endpoint {
- struct rpmsg_channel *rpdev;
- struct kref refcount;
- rpmsg_rx_cb_t cb;
- struct mutex cb_lock;
- u32 addr;
- void *priv;
-};
-
-/**
- * struct rpmsg_driver - rpmsg driver struct
- * @drv: underlying device driver
- * @id_table: rpmsg ids serviced by this driver
- * @probe: invoked when a matching rpmsg channel (i.e. device) is found
- * @remove: invoked when the rpmsg channel is removed
- * @callback: invoked when an inbound message is received on the channel
- */
-struct rpmsg_driver {
- struct device_driver drv;
- const struct rpmsg_device_id *id_table;
- int (*probe)(struct rpmsg_channel *dev);
- void (*remove)(struct rpmsg_channel *dev);
- void (*callback)(struct rpmsg_channel *, void *, int, void *, u32);
-};
-
-int register_rpmsg_device(struct rpmsg_channel *dev);
-void unregister_rpmsg_device(struct rpmsg_channel *dev);
-int register_rpmsg_driver(struct rpmsg_driver *drv);
-void unregister_rpmsg_driver(struct rpmsg_driver *drv);
-void rpmsg_destroy_ept(struct rpmsg_endpoint *);
-struct rpmsg_endpoint *rpmsg_create_ept(struct rpmsg_channel *,
- rpmsg_rx_cb_t cb, void *priv, u32 addr);
-int
-rpmsg_send_offchannel_raw(struct rpmsg_channel *, u32, u32, void *, int, bool);
-
-/**
- * rpmsg_send() - send a message across to the remote processor
- * @rpdev: the rpmsg channel
- * @data: payload of message
- * @len: length of payload
- *
- * This function sends @data of length @len on the @rpdev channel.
- * The message will be sent to the remote processor which the @rpdev
- * channel belongs to, using @rpdev's source and destination addresses.
- * In case there are no TX buffers available, the function will block until
- * one becomes available, or a timeout of 15 seconds elapses. When the latter
- * happens, -ERESTARTSYS is returned.
- *
- * Can only be called from process context (for now).
- *
- * Returns 0 on success and an appropriate error value on failure.
- */
-static inline int rpmsg_send(struct rpmsg_channel *rpdev, void *data, int len)
-{
- u32 src = rpdev->src, dst = rpdev->dst;
-
- return rpmsg_send_offchannel_raw(rpdev, src, dst, data, len, true);
-}
-
-/**
- * rpmsg_sendto() - send a message across to the remote processor, specify dst
- * @rpdev: the rpmsg channel
- * @data: payload of message
- * @len: length of payload
- * @dst: destination address
- *
- * This function sends @data of length @len to the remote @dst address.
- * The message will be sent to the remote processor which the @rpdev
- * channel belongs to, using @rpdev's source address.
- * In case there are no TX buffers available, the function will block until
- * one becomes available, or a timeout of 15 seconds elapses. When the latter
- * happens, -ERESTARTSYS is returned.
- *
- * Can only be called from process context (for now).
- *
- * Returns 0 on success and an appropriate error value on failure.
- */
-static inline
-int rpmsg_sendto(struct rpmsg_channel *rpdev, void *data, int len, u32 dst)
-{
- u32 src = rpdev->src;
-
- return rpmsg_send_offchannel_raw(rpdev, src, dst, data, len, true);
-}
-
-/**
- * rpmsg_send_offchannel() - send a message using explicit src/dst addresses
- * @rpdev: the rpmsg channel
- * @src: source address
- * @dst: destination address
- * @data: payload of message
- * @len: length of payload
- *
- * This function sends @data of length @len to the remote @dst address,
- * and uses @src as the source address.
- * The message will be sent to the remote processor which the @rpdev
- * channel belongs to.
- * In case there are no TX buffers available, the function will block until
- * one becomes available, or a timeout of 15 seconds elapses. When the latter
- * happens, -ERESTARTSYS is returned.
- *
- * Can only be called from process context (for now).
- *
- * Returns 0 on success and an appropriate error value on failure.
- */
-static inline
-int rpmsg_send_offchannel(struct rpmsg_channel *rpdev, u32 src, u32 dst,
- void *data, int len)
-{
- return rpmsg_send_offchannel_raw(rpdev, src, dst, data, len, true);
-}
-
-/**
- * rpmsg_send() - send a message across to the remote processor
- * @rpdev: the rpmsg channel
- * @data: payload of message
- * @len: length of payload
- *
- * This function sends @data of length @len on the @rpdev channel.
- * The message will be sent to the remote processor which the @rpdev
- * channel belongs to, using @rpdev's source and destination addresses.
- * In case there are no TX buffers available, the function will immediately
- * return -ENOMEM without waiting until one becomes available.
- *
- * Can only be called from process context (for now).
- *
- * Returns 0 on success and an appropriate error value on failure.
- */
-static inline
-int rpmsg_trysend(struct rpmsg_channel *rpdev, void *data, int len)
-{
- u32 src = rpdev->src, dst = rpdev->dst;
-
- return rpmsg_send_offchannel_raw(rpdev, src, dst, data, len, false);
-}
-
-/**
- * rpmsg_sendto() - send a message across to the remote processor, specify dst
- * @rpdev: the rpmsg channel
- * @data: payload of message
- * @len: length of payload
- * @dst: destination address
- *
- * This function sends @data of length @len to the remote @dst address.
- * The message will be sent to the remote processor which the @rpdev
- * channel belongs to, using @rpdev's source address.
- * In case there are no TX buffers available, the function will immediately
- * return -ENOMEM without waiting until one becomes available.
- *
- * Can only be called from process context (for now).
- *
- * Returns 0 on success and an appropriate error value on failure.
- */
-static inline
-int rpmsg_trysendto(struct rpmsg_channel *rpdev, void *data, int len, u32 dst)
-{
- u32 src = rpdev->src;
-
- return rpmsg_send_offchannel_raw(rpdev, src, dst, data, len, false);
-}
-
-/**
- * rpmsg_send_offchannel() - send a message using explicit src/dst addresses
- * @rpdev: the rpmsg channel
- * @src: source address
- * @dst: destination address
- * @data: payload of message
- * @len: length of payload
- *
- * This function sends @data of length @len to the remote @dst address,
- * and uses @src as the source address.
- * The message will be sent to the remote processor which the @rpdev
- * channel belongs to.
- * In case there are no TX buffers available, the function will immediately
- * return -ENOMEM without waiting until one becomes available.
- *
- * Can only be called from process context (for now).
- *
- * Returns 0 on success and an appropriate error value on failure.
- */
-static inline
-int rpmsg_trysend_offchannel(struct rpmsg_channel *rpdev, u32 src, u32 dst,
- void *data, int len)
-{
- return rpmsg_send_offchannel_raw(rpdev, src, dst, data, len, false);
-}
-
-#endif /* _LINUX_RPMSG_H */
diff --git a/ANDROID_3.4.5/include/linux/rslib.h b/ANDROID_3.4.5/include/linux/rslib.h
deleted file mode 100644
index 746580c1..00000000
--- a/ANDROID_3.4.5/include/linux/rslib.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * include/linux/rslib.h
- *
- * Overview:
- * Generic Reed Solomon encoder / decoder library
- *
- * Copyright (C) 2004 Thomas Gleixner (tglx@linutronix.de)
- *
- * RS code lifted from reed solomon library written by Phil Karn
- * Copyright 2002 Phil Karn, KA9Q
- *
- * $Id: rslib.h,v 1.4 2005/11/07 11:14:52 gleixner Exp $
- *
- * 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.
- */
-
-#ifndef _RSLIB_H_
-#define _RSLIB_H_
-
-#include <linux/list.h>
-
-/**
- * struct rs_control - rs control structure
- *
- * @mm: Bits per symbol
- * @nn: Symbols per block (= (1<<mm)-1)
- * @alpha_to: log lookup table
- * @index_of: Antilog lookup table
- * @genpoly: Generator polynomial
- * @nroots: Number of generator roots = number of parity symbols
- * @fcr: First consecutive root, index form
- * @prim: Primitive element, index form
- * @iprim: prim-th root of 1, index form
- * @gfpoly: The primitive generator polynominal
- * @gffunc: Function to generate the field, if non-canonical representation
- * @users: Users of this structure
- * @list: List entry for the rs control list
-*/
-struct rs_control {
- int mm;
- int nn;
- uint16_t *alpha_to;
- uint16_t *index_of;
- uint16_t *genpoly;
- int nroots;
- int fcr;
- int prim;
- int iprim;
- int gfpoly;
- int (*gffunc)(int);
- int users;
- struct list_head list;
-};
-
-/* General purpose RS codec, 8-bit data width, symbol width 1-15 bit */
-#ifdef CONFIG_REED_SOLOMON_ENC8
-int encode_rs8(struct rs_control *rs, uint8_t *data, int len, uint16_t *par,
- uint16_t invmsk);
-#endif
-#ifdef CONFIG_REED_SOLOMON_DEC8
-int decode_rs8(struct rs_control *rs, uint8_t *data, uint16_t *par, int len,
- uint16_t *s, int no_eras, int *eras_pos, uint16_t invmsk,
- uint16_t *corr);
-#endif
-
-/* General purpose RS codec, 16-bit data width, symbol width 1-15 bit */
-#ifdef CONFIG_REED_SOLOMON_ENC16
-int encode_rs16(struct rs_control *rs, uint16_t *data, int len, uint16_t *par,
- uint16_t invmsk);
-#endif
-#ifdef CONFIG_REED_SOLOMON_DEC16
-int decode_rs16(struct rs_control *rs, uint16_t *data, uint16_t *par, int len,
- uint16_t *s, int no_eras, int *eras_pos, uint16_t invmsk,
- uint16_t *corr);
-#endif
-
-/* Create or get a matching rs control structure */
-struct rs_control *init_rs(int symsize, int gfpoly, int fcr, int prim,
- int nroots);
-struct rs_control *init_rs_non_canonical(int symsize, int (*func)(int),
- int fcr, int prim, int nroots);
-
-/* Release a rs control structure */
-void free_rs(struct rs_control *rs);
-
-/** modulo replacement for galois field arithmetics
- *
- * @rs: the rs control structure
- * @x: the value to reduce
- *
- * where
- * rs->mm = number of bits per symbol
- * rs->nn = (2^rs->mm) - 1
- *
- * Simple arithmetic modulo would return a wrong result for values
- * >= 3 * rs->nn
-*/
-static inline int rs_modnn(struct rs_control *rs, int x)
-{
- while (x >= rs->nn) {
- x -= rs->nn;
- x = (x >> rs->mm) + (x & rs->nn);
- }
- return x;
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/rtc-v3020.h b/ANDROID_3.4.5/include/linux/rtc-v3020.h
deleted file mode 100644
index e55d82ce..00000000
--- a/ANDROID_3.4.5/include/linux/rtc-v3020.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * v3020.h - Registers definition and platform data structure for the v3020 RTC.
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 2006, 8D Technologies inc.
- */
-#ifndef __LINUX_V3020_H
-#define __LINUX_V3020_H
-
-/* The v3020 has only one data pin but which one
- * is used depends on the board. */
-struct v3020_platform_data {
- int leftshift; /* (1<<(leftshift)) & readl() */
-
- unsigned int use_gpio:1;
- unsigned int gpio_cs;
- unsigned int gpio_wr;
- unsigned int gpio_rd;
- unsigned int gpio_io;
-};
-
-#define V3020_STATUS_0 0x00
-#define V3020_STATUS_1 0x01
-#define V3020_SECONDS 0x02
-#define V3020_MINUTES 0x03
-#define V3020_HOURS 0x04
-#define V3020_MONTH_DAY 0x05
-#define V3020_MONTH 0x06
-#define V3020_YEAR 0x07
-#define V3020_WEEK_DAY 0x08
-#define V3020_WEEK 0x09
-
-#define V3020_IS_COMMAND(val) ((val)>=0x0E)
-
-#define V3020_CMD_RAM2CLOCK 0x0E
-#define V3020_CMD_CLOCK2RAM 0x0F
-
-#endif /* __LINUX_V3020_H */
diff --git a/ANDROID_3.4.5/include/linux/rtc.h b/ANDROID_3.4.5/include/linux/rtc.h
deleted file mode 100644
index fcabfb48..00000000
--- a/ANDROID_3.4.5/include/linux/rtc.h
+++ /dev/null
@@ -1,284 +0,0 @@
-/*
- * Generic RTC interface.
- * This version contains the part of the user interface to the Real Time Clock
- * service. It is used with both the legacy mc146818 and also EFI
- * Struct rtc_time and first 12 ioctl by Paul Gortmaker, 1996 - separated out
- * from <linux/mc146818rtc.h> to this file for 2.4 kernels.
- *
- * Copyright (C) 1999 Hewlett-Packard Co.
- * Copyright (C) 1999 Stephane Eranian <eranian@hpl.hp.com>
- */
-#ifndef _LINUX_RTC_H_
-#define _LINUX_RTC_H_
-
-/*
- * The struct used to pass data via the following ioctl. Similar to the
- * struct tm in <time.h>, but it needs to be here so that the kernel
- * source is self contained, allowing cross-compiles, etc. etc.
- */
-
-struct rtc_time {
- int tm_sec;
- int tm_min;
- int tm_hour;
- int tm_mday;
- int tm_mon;
- int tm_year;
- int tm_wday;
- int tm_yday;
- int tm_isdst;
-};
-
-/*
- * This data structure is inspired by the EFI (v0.92) wakeup
- * alarm API.
- */
-struct rtc_wkalrm {
- unsigned char enabled; /* 0 = alarm disabled, 1 = alarm enabled */
- unsigned char pending; /* 0 = alarm not pending, 1 = alarm pending */
- struct rtc_time time; /* time the alarm is set to */
-};
-
-/*
- * Data structure to control PLL correction some better RTC feature
- * pll_value is used to get or set current value of correction,
- * the rest of the struct is used to query HW capabilities.
- * This is modeled after the RTC used in Q40/Q60 computers but
- * should be sufficiently flexible for other devices
- *
- * +ve pll_value means clock will run faster by
- * pll_value*pll_posmult/pll_clock
- * -ve pll_value means clock will run slower by
- * pll_value*pll_negmult/pll_clock
- */
-
-struct rtc_pll_info {
- int pll_ctrl; /* placeholder for fancier control */
- int pll_value; /* get/set correction value */
- int pll_max; /* max +ve (faster) adjustment value */
- int pll_min; /* max -ve (slower) adjustment value */
- int pll_posmult; /* factor for +ve correction */
- int pll_negmult; /* factor for -ve correction */
- long pll_clock; /* base PLL frequency */
-};
-
-/*
- * ioctl calls that are permitted to the /dev/rtc interface, if
- * any of the RTC drivers are enabled.
- */
-
-#define RTC_AIE_ON _IO('p', 0x01) /* Alarm int. enable on */
-#define RTC_AIE_OFF _IO('p', 0x02) /* ... off */
-#define RTC_UIE_ON _IO('p', 0x03) /* Update int. enable on */
-#define RTC_UIE_OFF _IO('p', 0x04) /* ... off */
-#define RTC_PIE_ON _IO('p', 0x05) /* Periodic int. enable on */
-#define RTC_PIE_OFF _IO('p', 0x06) /* ... off */
-#define RTC_WIE_ON _IO('p', 0x0f) /* Watchdog int. enable on */
-#define RTC_WIE_OFF _IO('p', 0x10) /* ... off */
-
-#define RTC_ALM_SET _IOW('p', 0x07, struct rtc_time) /* Set alarm time */
-#define RTC_ALM_READ _IOR('p', 0x08, struct rtc_time) /* Read alarm time */
-#define RTC_RD_TIME _IOR('p', 0x09, struct rtc_time) /* Read RTC time */
-#define RTC_SET_TIME _IOW('p', 0x0a, struct rtc_time) /* Set RTC time */
-#define RTC_IRQP_READ _IOR('p', 0x0b, unsigned long) /* Read IRQ rate */
-#define RTC_IRQP_SET _IOW('p', 0x0c, unsigned long) /* Set IRQ rate */
-#define RTC_EPOCH_READ _IOR('p', 0x0d, unsigned long) /* Read epoch */
-#define RTC_EPOCH_SET _IOW('p', 0x0e, unsigned long) /* Set epoch */
-
-#define RTC_WKALM_SET _IOW('p', 0x0f, struct rtc_wkalrm)/* Set wakeup alarm*/
-#define RTC_WKALM_RD _IOR('p', 0x10, struct rtc_wkalrm)/* Get wakeup alarm*/
-
-#define RTC_PLL_GET _IOR('p', 0x11, struct rtc_pll_info) /* Get PLL correction */
-#define RTC_PLL_SET _IOW('p', 0x12, struct rtc_pll_info) /* Set PLL correction */
-
-/* interrupt flags */
-#define RTC_IRQF 0x80 /* Any of the following is active */
-#define RTC_PF 0x40 /* Periodic interrupt */
-#define RTC_AF 0x20 /* Alarm interrupt */
-#define RTC_UF 0x10 /* Update interrupt for 1Hz RTC */
-
-
-#define RTC_MAX_FREQ 8192
-
-#ifdef __KERNEL__
-
-#include <linux/types.h>
-#include <linux/interrupt.h>
-
-extern int rtc_month_days(unsigned int month, unsigned int year);
-extern int rtc_year_days(unsigned int day, unsigned int month, unsigned int year);
-extern int rtc_valid_tm(struct rtc_time *tm);
-extern int rtc_tm_to_time(struct rtc_time *tm, unsigned long *time);
-extern void rtc_time_to_tm(unsigned long time, struct rtc_time *tm);
-ktime_t rtc_tm_to_ktime(struct rtc_time tm);
-struct rtc_time rtc_ktime_to_tm(ktime_t kt);
-
-
-#include <linux/device.h>
-#include <linux/seq_file.h>
-#include <linux/cdev.h>
-#include <linux/poll.h>
-#include <linux/mutex.h>
-#include <linux/timerqueue.h>
-#include <linux/workqueue.h>
-
-extern struct class *rtc_class;
-
-/*
- * For these RTC methods the device parameter is the physical device
- * on whatever bus holds the hardware (I2C, Platform, SPI, etc), which
- * was passed to rtc_device_register(). Its driver_data normally holds
- * device state, including the rtc_device pointer for the RTC.
- *
- * Most of these methods are called with rtc_device.ops_lock held,
- * through the rtc_*(struct rtc_device *, ...) calls.
- *
- * The (current) exceptions are mostly filesystem hooks:
- * - the proc() hook for procfs
- * - non-ioctl() chardev hooks: open(), release(), read_callback()
- *
- * REVISIT those periodic irq calls *do* have ops_lock when they're
- * issued through ioctl() ...
- */
-struct rtc_class_ops {
- int (*open)(struct device *);
- void (*release)(struct device *);
- int (*ioctl)(struct device *, unsigned int, unsigned long);
- int (*read_time)(struct device *, struct rtc_time *);
- int (*set_time)(struct device *, struct rtc_time *);
- int (*read_alarm)(struct device *, struct rtc_wkalrm *);
- int (*set_alarm)(struct device *, struct rtc_wkalrm *);
- int (*proc)(struct device *, struct seq_file *);
- int (*set_mmss)(struct device *, unsigned long secs);
- int (*read_callback)(struct device *, int data);
- int (*alarm_irq_enable)(struct device *, unsigned int enabled);
-};
-
-#define RTC_DEVICE_NAME_SIZE 20
-typedef struct rtc_task {
- void (*func)(void *private_data);
- void *private_data;
-} rtc_task_t;
-
-
-struct rtc_timer {
- struct rtc_task task;
- struct timerqueue_node node;
- ktime_t period;
- int enabled;
-};
-
-
-/* flags */
-#define RTC_DEV_BUSY 0
-
-struct rtc_device
-{
- struct device dev;
- struct module *owner;
-
- int id;
- char name[RTC_DEVICE_NAME_SIZE];
-
- const struct rtc_class_ops *ops;
- struct mutex ops_lock;
-
- struct cdev char_dev;
- unsigned long flags;
-
- unsigned long irq_data;
- spinlock_t irq_lock;
- wait_queue_head_t irq_queue;
- struct fasync_struct *async_queue;
-
- struct rtc_task *irq_task;
- spinlock_t irq_task_lock;
- int irq_freq;
- int max_user_freq;
-
- struct timerqueue_head timerqueue;
- struct rtc_timer aie_timer;
- struct rtc_timer uie_rtctimer;
- struct hrtimer pie_timer; /* sub second exp, so needs hrtimer */
- int pie_enabled;
- struct work_struct irqwork;
- /* Some hardware can't support UIE mode */
- int uie_unsupported;
-
-#ifdef CONFIG_RTC_INTF_DEV_UIE_EMUL
- struct work_struct uie_task;
- struct timer_list uie_timer;
- /* Those fields are protected by rtc->irq_lock */
- unsigned int oldsecs;
- unsigned int uie_irq_active:1;
- unsigned int stop_uie_polling:1;
- unsigned int uie_task_active:1;
- unsigned int uie_timer_active:1;
-#endif
-};
-#define to_rtc_device(d) container_of(d, struct rtc_device, dev)
-
-extern struct rtc_device *rtc_device_register(const char *name,
- struct device *dev,
- const struct rtc_class_ops *ops,
- struct module *owner);
-extern void rtc_device_unregister(struct rtc_device *rtc);
-
-extern int rtc_read_time(struct rtc_device *rtc, struct rtc_time *tm);
-extern int rtc_set_time(struct rtc_device *rtc, struct rtc_time *tm);
-extern int rtc_set_mmss(struct rtc_device *rtc, unsigned long secs);
-int __rtc_read_alarm(struct rtc_device *rtc, struct rtc_wkalrm *alarm);
-extern int rtc_read_alarm(struct rtc_device *rtc,
- struct rtc_wkalrm *alrm);
-extern int rtc_set_alarm(struct rtc_device *rtc,
- struct rtc_wkalrm *alrm);
-extern int rtc_initialize_alarm(struct rtc_device *rtc,
- struct rtc_wkalrm *alrm);
-extern void rtc_update_irq(struct rtc_device *rtc,
- unsigned long num, unsigned long events);
-
-extern struct rtc_device *rtc_class_open(char *name);
-extern void rtc_class_close(struct rtc_device *rtc);
-
-extern int rtc_irq_register(struct rtc_device *rtc,
- struct rtc_task *task);
-extern void rtc_irq_unregister(struct rtc_device *rtc,
- struct rtc_task *task);
-extern int rtc_irq_set_state(struct rtc_device *rtc,
- struct rtc_task *task, int enabled);
-extern int rtc_irq_set_freq(struct rtc_device *rtc,
- struct rtc_task *task, int freq);
-extern int rtc_update_irq_enable(struct rtc_device *rtc, unsigned int enabled);
-extern int rtc_alarm_irq_enable(struct rtc_device *rtc, unsigned int enabled);
-extern int rtc_dev_update_irq_enable_emul(struct rtc_device *rtc,
- unsigned int enabled);
-
-void rtc_handle_legacy_irq(struct rtc_device *rtc, int num, int mode);
-void rtc_aie_update_irq(void *private);
-void rtc_uie_update_irq(void *private);
-enum hrtimer_restart rtc_pie_update_irq(struct hrtimer *timer);
-
-int rtc_register(rtc_task_t *task);
-int rtc_unregister(rtc_task_t *task);
-int rtc_control(rtc_task_t *t, unsigned int cmd, unsigned long arg);
-
-void rtc_timer_init(struct rtc_timer *timer, void (*f)(void* p), void* data);
-int rtc_timer_start(struct rtc_device *rtc, struct rtc_timer* timer,
- ktime_t expires, ktime_t period);
-int rtc_timer_cancel(struct rtc_device *rtc, struct rtc_timer* timer);
-void rtc_timer_do_work(struct work_struct *work);
-
-static inline bool is_leap_year(unsigned int year)
-{
- return (!(year % 4) && (year % 100)) || !(year % 400);
-}
-
-#ifdef CONFIG_RTC_HCTOSYS
-extern int rtc_hctosys_ret;
-#else
-#define rtc_hctosys_ret -ENODEV
-#endif
-
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_RTC_H_ */
diff --git a/ANDROID_3.4.5/include/linux/rtc/m48t59.h b/ANDROID_3.4.5/include/linux/rtc/m48t59.h
deleted file mode 100644
index 6fc96145..00000000
--- a/ANDROID_3.4.5/include/linux/rtc/m48t59.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * include/linux/rtc/m48t59.h
- *
- * Definitions for the platform data of m48t59 RTC chip driver.
- *
- * Copyright (c) 2007 Wind River Systems, Inc.
- *
- * Mark Zhan <rongkai.zhan@windriver.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.
- */
-
-#ifndef _LINUX_RTC_M48T59_H_
-#define _LINUX_RTC_M48T59_H_
-
-/*
- * M48T59 Register Offset
- */
-#define M48T59_YEAR 0xf
-#define M48T59_MONTH 0xe
-#define M48T59_MDAY 0xd /* Day of Month */
-#define M48T59_WDAY 0xc /* Day of Week */
-#define M48T59_WDAY_CB 0x20 /* Century Bit */
-#define M48T59_WDAY_CEB 0x10 /* Century Enable Bit */
-#define M48T59_HOUR 0xb
-#define M48T59_MIN 0xa
-#define M48T59_SEC 0x9
-#define M48T59_CNTL 0x8
-#define M48T59_CNTL_READ 0x40
-#define M48T59_CNTL_WRITE 0x80
-#define M48T59_WATCHDOG 0x7
-#define M48T59_INTR 0x6
-#define M48T59_INTR_AFE 0x80 /* Alarm Interrupt Enable */
-#define M48T59_INTR_ABE 0x20
-#define M48T59_ALARM_DATE 0x5
-#define M48T59_ALARM_HOUR 0x4
-#define M48T59_ALARM_MIN 0x3
-#define M48T59_ALARM_SEC 0x2
-#define M48T59_UNUSED 0x1
-#define M48T59_FLAGS 0x0
-#define M48T59_FLAGS_WDT 0x80 /* watchdog timer expired */
-#define M48T59_FLAGS_AF 0x40 /* alarm */
-#define M48T59_FLAGS_BF 0x10 /* low battery */
-
-#define M48T59RTC_TYPE_M48T59 0 /* to keep compatibility */
-#define M48T59RTC_TYPE_M48T02 1
-#define M48T59RTC_TYPE_M48T08 2
-
-struct m48t59_plat_data {
- /* The method to access M48T59 registers */
- void (*write_byte)(struct device *dev, u32 ofs, u8 val);
- unsigned char (*read_byte)(struct device *dev, u32 ofs);
-
- int type; /* RTC model */
-
- /* ioaddr mapped externally */
- void __iomem *ioaddr;
- /* offset to RTC registers, automatically set according to the type */
- unsigned int offset;
-};
-
-#endif /* _LINUX_RTC_M48T59_H_ */
diff --git a/ANDROID_3.4.5/include/linux/rtc/sirfsoc_rtciobrg.h b/ANDROID_3.4.5/include/linux/rtc/sirfsoc_rtciobrg.h
deleted file mode 100644
index 2c92e1c8..00000000
--- a/ANDROID_3.4.5/include/linux/rtc/sirfsoc_rtciobrg.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * RTC I/O Bridge interfaces for CSR SiRFprimaII
- * ARM access the registers of SYSRTC, GPSRTC and PWRC through this module
- *
- * Copyright (c) 2011 Cambridge Silicon Radio Limited, a CSR plc group company.
- *
- * Licensed under GPLv2 or later.
- */
-#ifndef _SIRFSOC_RTC_IOBRG_H_
-#define _SIRFSOC_RTC_IOBRG_H_
-
-extern void sirfsoc_rtc_iobrg_besyncing(void);
-
-extern u32 sirfsoc_rtc_iobrg_readl(u32 addr);
-
-extern void sirfsoc_rtc_iobrg_writel(u32 val, u32 addr);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/rtmutex.h b/ANDROID_3.4.5/include/linux/rtmutex.h
deleted file mode 100644
index de171342..00000000
--- a/ANDROID_3.4.5/include/linux/rtmutex.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * RT Mutexes: blocking mutual exclusion locks with PI support
- *
- * started by Ingo Molnar and Thomas Gleixner:
- *
- * Copyright (C) 2004-2006 Red Hat, Inc., Ingo Molnar <mingo@redhat.com>
- * Copyright (C) 2006, Timesys Corp., Thomas Gleixner <tglx@timesys.com>
- *
- * This file contains the public data structure and API definitions.
- */
-
-#ifndef __LINUX_RT_MUTEX_H
-#define __LINUX_RT_MUTEX_H
-
-#include <linux/linkage.h>
-#include <linux/plist.h>
-#include <linux/spinlock_types.h>
-
-extern int max_lock_depth; /* for sysctl */
-
-/**
- * The rt_mutex structure
- *
- * @wait_lock: spinlock to protect the structure
- * @wait_list: pilist head to enqueue waiters in priority order
- * @owner: the mutex owner
- */
-struct rt_mutex {
- raw_spinlock_t wait_lock;
- struct plist_head wait_list;
- struct task_struct *owner;
-#ifdef CONFIG_DEBUG_RT_MUTEXES
- int save_state;
- const char *name, *file;
- int line;
- void *magic;
-#endif
-};
-
-struct rt_mutex_waiter;
-struct hrtimer_sleeper;
-
-#ifdef CONFIG_DEBUG_RT_MUTEXES
- extern int rt_mutex_debug_check_no_locks_freed(const void *from,
- unsigned long len);
- extern void rt_mutex_debug_check_no_locks_held(struct task_struct *task);
-#else
- static inline int rt_mutex_debug_check_no_locks_freed(const void *from,
- unsigned long len)
- {
- return 0;
- }
-# define rt_mutex_debug_check_no_locks_held(task) do { } while (0)
-#endif
-
-#ifdef CONFIG_DEBUG_RT_MUTEXES
-# define __DEBUG_RT_MUTEX_INITIALIZER(mutexname) \
- , .name = #mutexname, .file = __FILE__, .line = __LINE__
-# define rt_mutex_init(mutex) __rt_mutex_init(mutex, __func__)
- extern void rt_mutex_debug_task_free(struct task_struct *tsk);
-#else
-# define __DEBUG_RT_MUTEX_INITIALIZER(mutexname)
-# define rt_mutex_init(mutex) __rt_mutex_init(mutex, NULL)
-# define rt_mutex_debug_task_free(t) do { } while (0)
-#endif
-
-#define __RT_MUTEX_INITIALIZER(mutexname) \
- { .wait_lock = __RAW_SPIN_LOCK_UNLOCKED(mutexname.wait_lock) \
- , .wait_list = PLIST_HEAD_INIT(mutexname.wait_list) \
- , .owner = NULL \
- __DEBUG_RT_MUTEX_INITIALIZER(mutexname)}
-
-#define DEFINE_RT_MUTEX(mutexname) \
- struct rt_mutex mutexname = __RT_MUTEX_INITIALIZER(mutexname)
-
-/**
- * rt_mutex_is_locked - is the mutex locked
- * @lock: the mutex to be queried
- *
- * Returns 1 if the mutex is locked, 0 if unlocked.
- */
-static inline int rt_mutex_is_locked(struct rt_mutex *lock)
-{
- return lock->owner != NULL;
-}
-
-extern void __rt_mutex_init(struct rt_mutex *lock, const char *name);
-extern void rt_mutex_destroy(struct rt_mutex *lock);
-
-extern void rt_mutex_lock(struct rt_mutex *lock);
-extern int rt_mutex_lock_interruptible(struct rt_mutex *lock,
- int detect_deadlock);
-extern int rt_mutex_timed_lock(struct rt_mutex *lock,
- struct hrtimer_sleeper *timeout,
- int detect_deadlock);
-
-extern int rt_mutex_trylock(struct rt_mutex *lock);
-
-extern void rt_mutex_unlock(struct rt_mutex *lock);
-
-#ifdef CONFIG_RT_MUTEXES
-# define INIT_RT_MUTEXES(tsk) \
- .pi_waiters = PLIST_HEAD_INIT(tsk.pi_waiters), \
- INIT_RT_MUTEX_DEBUG(tsk)
-#else
-# define INIT_RT_MUTEXES(tsk)
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/rtnetlink.h b/ANDROID_3.4.5/include/linux/rtnetlink.h
deleted file mode 100644
index 577592ea..00000000
--- a/ANDROID_3.4.5/include/linux/rtnetlink.h
+++ /dev/null
@@ -1,807 +0,0 @@
-#ifndef __LINUX_RTNETLINK_H
-#define __LINUX_RTNETLINK_H
-
-#include <linux/types.h>
-#include <linux/netlink.h>
-#include <linux/if_link.h>
-#include <linux/if_addr.h>
-#include <linux/neighbour.h>
-
-/* rtnetlink families. Values up to 127 are reserved for real address
- * families, values above 128 may be used arbitrarily.
- */
-#define RTNL_FAMILY_IPMR 128
-#define RTNL_FAMILY_IP6MR 129
-#define RTNL_FAMILY_MAX 129
-
-/****
- * Routing/neighbour discovery messages.
- ****/
-
-/* Types of messages */
-
-enum {
- RTM_BASE = 16,
-#define RTM_BASE RTM_BASE
-
- RTM_NEWLINK = 16,
-#define RTM_NEWLINK RTM_NEWLINK
- RTM_DELLINK,
-#define RTM_DELLINK RTM_DELLINK
- RTM_GETLINK,
-#define RTM_GETLINK RTM_GETLINK
- RTM_SETLINK,
-#define RTM_SETLINK RTM_SETLINK
-
- RTM_NEWADDR = 20,
-#define RTM_NEWADDR RTM_NEWADDR
- RTM_DELADDR,
-#define RTM_DELADDR RTM_DELADDR
- RTM_GETADDR,
-#define RTM_GETADDR RTM_GETADDR
-
- RTM_NEWROUTE = 24,
-#define RTM_NEWROUTE RTM_NEWROUTE
- RTM_DELROUTE,
-#define RTM_DELROUTE RTM_DELROUTE
- RTM_GETROUTE,
-#define RTM_GETROUTE RTM_GETROUTE
-
- RTM_NEWNEIGH = 28,
-#define RTM_NEWNEIGH RTM_NEWNEIGH
- RTM_DELNEIGH,
-#define RTM_DELNEIGH RTM_DELNEIGH
- RTM_GETNEIGH,
-#define RTM_GETNEIGH RTM_GETNEIGH
-
- RTM_NEWRULE = 32,
-#define RTM_NEWRULE RTM_NEWRULE
- RTM_DELRULE,
-#define RTM_DELRULE RTM_DELRULE
- RTM_GETRULE,
-#define RTM_GETRULE RTM_GETRULE
-
- RTM_NEWQDISC = 36,
-#define RTM_NEWQDISC RTM_NEWQDISC
- RTM_DELQDISC,
-#define RTM_DELQDISC RTM_DELQDISC
- RTM_GETQDISC,
-#define RTM_GETQDISC RTM_GETQDISC
-
- RTM_NEWTCLASS = 40,
-#define RTM_NEWTCLASS RTM_NEWTCLASS
- RTM_DELTCLASS,
-#define RTM_DELTCLASS RTM_DELTCLASS
- RTM_GETTCLASS,
-#define RTM_GETTCLASS RTM_GETTCLASS
-
- RTM_NEWTFILTER = 44,
-#define RTM_NEWTFILTER RTM_NEWTFILTER
- RTM_DELTFILTER,
-#define RTM_DELTFILTER RTM_DELTFILTER
- RTM_GETTFILTER,
-#define RTM_GETTFILTER RTM_GETTFILTER
-
- RTM_NEWACTION = 48,
-#define RTM_NEWACTION RTM_NEWACTION
- RTM_DELACTION,
-#define RTM_DELACTION RTM_DELACTION
- RTM_GETACTION,
-#define RTM_GETACTION RTM_GETACTION
-
- RTM_NEWPREFIX = 52,
-#define RTM_NEWPREFIX RTM_NEWPREFIX
-
- RTM_GETMULTICAST = 58,
-#define RTM_GETMULTICAST RTM_GETMULTICAST
-
- RTM_GETANYCAST = 62,
-#define RTM_GETANYCAST RTM_GETANYCAST
-
- RTM_NEWNEIGHTBL = 64,
-#define RTM_NEWNEIGHTBL RTM_NEWNEIGHTBL
- RTM_GETNEIGHTBL = 66,
-#define RTM_GETNEIGHTBL RTM_GETNEIGHTBL
- RTM_SETNEIGHTBL,
-#define RTM_SETNEIGHTBL RTM_SETNEIGHTBL
-
- RTM_NEWNDUSEROPT = 68,
-#define RTM_NEWNDUSEROPT RTM_NEWNDUSEROPT
-
- RTM_NEWADDRLABEL = 72,
-#define RTM_NEWADDRLABEL RTM_NEWADDRLABEL
- RTM_DELADDRLABEL,
-#define RTM_DELADDRLABEL RTM_DELADDRLABEL
- RTM_GETADDRLABEL,
-#define RTM_GETADDRLABEL RTM_GETADDRLABEL
-
- RTM_GETDCB = 78,
-#define RTM_GETDCB RTM_GETDCB
- RTM_SETDCB,
-#define RTM_SETDCB RTM_SETDCB
-
- __RTM_MAX,
-#define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1)
-};
-
-#define RTM_NR_MSGTYPES (RTM_MAX + 1 - RTM_BASE)
-#define RTM_NR_FAMILIES (RTM_NR_MSGTYPES >> 2)
-#define RTM_FAM(cmd) (((cmd) - RTM_BASE) >> 2)
-
-/*
- Generic structure for encapsulation of optional route information.
- It is reminiscent of sockaddr, but with sa_family replaced
- with attribute type.
- */
-
-struct rtattr {
- unsigned short rta_len;
- unsigned short rta_type;
-};
-
-/* Macros to handle rtattributes */
-
-#define RTA_ALIGNTO 4
-#define RTA_ALIGN(len) ( ((len)+RTA_ALIGNTO-1) & ~(RTA_ALIGNTO-1) )
-#define RTA_OK(rta,len) ((len) >= (int)sizeof(struct rtattr) && \
- (rta)->rta_len >= sizeof(struct rtattr) && \
- (rta)->rta_len <= (len))
-#define RTA_NEXT(rta,attrlen) ((attrlen) -= RTA_ALIGN((rta)->rta_len), \
- (struct rtattr*)(((char*)(rta)) + RTA_ALIGN((rta)->rta_len)))
-#define RTA_LENGTH(len) (RTA_ALIGN(sizeof(struct rtattr)) + (len))
-#define RTA_SPACE(len) RTA_ALIGN(RTA_LENGTH(len))
-#define RTA_DATA(rta) ((void*)(((char*)(rta)) + RTA_LENGTH(0)))
-#define RTA_PAYLOAD(rta) ((int)((rta)->rta_len) - RTA_LENGTH(0))
-
-
-
-
-/******************************************************************************
- * Definitions used in routing table administration.
- ****/
-
-struct rtmsg {
- unsigned char rtm_family;
- unsigned char rtm_dst_len;
- unsigned char rtm_src_len;
- unsigned char rtm_tos;
-
- unsigned char rtm_table; /* Routing table id */
- unsigned char rtm_protocol; /* Routing protocol; see below */
- unsigned char rtm_scope; /* See below */
- unsigned char rtm_type; /* See below */
-
- unsigned rtm_flags;
-};
-
-/* rtm_type */
-
-enum {
- RTN_UNSPEC,
- RTN_UNICAST, /* Gateway or direct route */
- RTN_LOCAL, /* Accept locally */
- RTN_BROADCAST, /* Accept locally as broadcast,
- send as broadcast */
- RTN_ANYCAST, /* Accept locally as broadcast,
- but send as unicast */
- RTN_MULTICAST, /* Multicast route */
- RTN_BLACKHOLE, /* Drop */
- RTN_UNREACHABLE, /* Destination is unreachable */
- RTN_PROHIBIT, /* Administratively prohibited */
- RTN_THROW, /* Not in this table */
- RTN_NAT, /* Translate this address */
- RTN_XRESOLVE, /* Use external resolver */
- __RTN_MAX
-};
-
-#define RTN_MAX (__RTN_MAX - 1)
-
-
-/* rtm_protocol */
-
-#define RTPROT_UNSPEC 0
-#define RTPROT_REDIRECT 1 /* Route installed by ICMP redirects;
- not used by current IPv4 */
-#define RTPROT_KERNEL 2 /* Route installed by kernel */
-#define RTPROT_BOOT 3 /* Route installed during boot */
-#define RTPROT_STATIC 4 /* Route installed by administrator */
-
-/* Values of protocol >= RTPROT_STATIC are not interpreted by kernel;
- they are just passed from user and back as is.
- It will be used by hypothetical multiple routing daemons.
- Note that protocol values should be standardized in order to
- avoid conflicts.
- */
-
-#define RTPROT_GATED 8 /* Apparently, GateD */
-#define RTPROT_RA 9 /* RDISC/ND router advertisements */
-#define RTPROT_MRT 10 /* Merit MRT */
-#define RTPROT_ZEBRA 11 /* Zebra */
-#define RTPROT_BIRD 12 /* BIRD */
-#define RTPROT_DNROUTED 13 /* DECnet routing daemon */
-#define RTPROT_XORP 14 /* XORP */
-#define RTPROT_NTK 15 /* Netsukuku */
-#define RTPROT_DHCP 16 /* DHCP client */
-
-/* rtm_scope
-
- Really it is not scope, but sort of distance to the destination.
- NOWHERE are reserved for not existing destinations, HOST is our
- local addresses, LINK are destinations, located on directly attached
- link and UNIVERSE is everywhere in the Universe.
-
- Intermediate values are also possible f.e. interior routes
- could be assigned a value between UNIVERSE and LINK.
-*/
-
-enum rt_scope_t {
- RT_SCOPE_UNIVERSE=0,
-/* User defined values */
- RT_SCOPE_SITE=200,
- RT_SCOPE_LINK=253,
- RT_SCOPE_HOST=254,
- RT_SCOPE_NOWHERE=255
-};
-
-/* rtm_flags */
-
-#define RTM_F_NOTIFY 0x100 /* Notify user of route change */
-#define RTM_F_CLONED 0x200 /* This route is cloned */
-#define RTM_F_EQUALIZE 0x400 /* Multipath equalizer: NI */
-#define RTM_F_PREFIX 0x800 /* Prefix addresses */
-
-/* Reserved table identifiers */
-
-enum rt_class_t {
- RT_TABLE_UNSPEC=0,
-/* User defined values */
- RT_TABLE_COMPAT=252,
- RT_TABLE_DEFAULT=253,
- RT_TABLE_MAIN=254,
- RT_TABLE_LOCAL=255,
- RT_TABLE_MAX=0xFFFFFFFF
-};
-
-
-/* Routing message attributes */
-
-enum rtattr_type_t {
- RTA_UNSPEC,
- RTA_DST,
- RTA_SRC,
- RTA_IIF,
- RTA_OIF,
- RTA_GATEWAY,
- RTA_PRIORITY,
- RTA_PREFSRC,
- RTA_METRICS,
- RTA_MULTIPATH,
- RTA_PROTOINFO, /* no longer used */
- RTA_FLOW,
- RTA_CACHEINFO,
- RTA_SESSION, /* no longer used */
- RTA_MP_ALGO, /* no longer used */
- RTA_TABLE,
- RTA_MARK,
- __RTA_MAX
-};
-
-#define RTA_MAX (__RTA_MAX - 1)
-
-#define RTM_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct rtmsg))))
-#define RTM_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct rtmsg))
-
-/* RTM_MULTIPATH --- array of struct rtnexthop.
- *
- * "struct rtnexthop" describes all necessary nexthop information,
- * i.e. parameters of path to a destination via this nexthop.
- *
- * At the moment it is impossible to set different prefsrc, mtu, window
- * and rtt for different paths from multipath.
- */
-
-struct rtnexthop {
- unsigned short rtnh_len;
- unsigned char rtnh_flags;
- unsigned char rtnh_hops;
- int rtnh_ifindex;
-};
-
-/* rtnh_flags */
-
-#define RTNH_F_DEAD 1 /* Nexthop is dead (used by multipath) */
-#define RTNH_F_PERVASIVE 2 /* Do recursive gateway lookup */
-#define RTNH_F_ONLINK 4 /* Gateway is forced on link */
-
-/* Macros to handle hexthops */
-
-#define RTNH_ALIGNTO 4
-#define RTNH_ALIGN(len) ( ((len)+RTNH_ALIGNTO-1) & ~(RTNH_ALIGNTO-1) )
-#define RTNH_OK(rtnh,len) ((rtnh)->rtnh_len >= sizeof(struct rtnexthop) && \
- ((int)(rtnh)->rtnh_len) <= (len))
-#define RTNH_NEXT(rtnh) ((struct rtnexthop*)(((char*)(rtnh)) + RTNH_ALIGN((rtnh)->rtnh_len)))
-#define RTNH_LENGTH(len) (RTNH_ALIGN(sizeof(struct rtnexthop)) + (len))
-#define RTNH_SPACE(len) RTNH_ALIGN(RTNH_LENGTH(len))
-#define RTNH_DATA(rtnh) ((struct rtattr*)(((char*)(rtnh)) + RTNH_LENGTH(0)))
-
-/* RTM_CACHEINFO */
-
-struct rta_cacheinfo {
- __u32 rta_clntref;
- __u32 rta_lastuse;
- __s32 rta_expires;
- __u32 rta_error;
- __u32 rta_used;
-
-#define RTNETLINK_HAVE_PEERINFO 1
- __u32 rta_id;
- __u32 rta_ts;
- __u32 rta_tsage;
-};
-
-/* RTM_METRICS --- array of struct rtattr with types of RTAX_* */
-
-enum {
- RTAX_UNSPEC,
-#define RTAX_UNSPEC RTAX_UNSPEC
- RTAX_LOCK,
-#define RTAX_LOCK RTAX_LOCK
- RTAX_MTU,
-#define RTAX_MTU RTAX_MTU
- RTAX_WINDOW,
-#define RTAX_WINDOW RTAX_WINDOW
- RTAX_RTT,
-#define RTAX_RTT RTAX_RTT
- RTAX_RTTVAR,
-#define RTAX_RTTVAR RTAX_RTTVAR
- RTAX_SSTHRESH,
-#define RTAX_SSTHRESH RTAX_SSTHRESH
- RTAX_CWND,
-#define RTAX_CWND RTAX_CWND
- RTAX_ADVMSS,
-#define RTAX_ADVMSS RTAX_ADVMSS
- RTAX_REORDERING,
-#define RTAX_REORDERING RTAX_REORDERING
- RTAX_HOPLIMIT,
-#define RTAX_HOPLIMIT RTAX_HOPLIMIT
- RTAX_INITCWND,
-#define RTAX_INITCWND RTAX_INITCWND
- RTAX_FEATURES,
-#define RTAX_FEATURES RTAX_FEATURES
- RTAX_RTO_MIN,
-#define RTAX_RTO_MIN RTAX_RTO_MIN
- RTAX_INITRWND,
-#define RTAX_INITRWND RTAX_INITRWND
- __RTAX_MAX
-};
-
-#define RTAX_MAX (__RTAX_MAX - 1)
-
-#define RTAX_FEATURE_ECN 0x00000001
-#define RTAX_FEATURE_SACK 0x00000002
-#define RTAX_FEATURE_TIMESTAMP 0x00000004
-#define RTAX_FEATURE_ALLFRAG 0x00000008
-
-struct rta_session {
- __u8 proto;
- __u8 pad1;
- __u16 pad2;
-
- union {
- struct {
- __u16 sport;
- __u16 dport;
- } ports;
-
- struct {
- __u8 type;
- __u8 code;
- __u16 ident;
- } icmpt;
-
- __u32 spi;
- } u;
-};
-
-/****
- * General form of address family dependent message.
- ****/
-
-struct rtgenmsg {
- unsigned char rtgen_family;
-};
-
-/*****************************************************************
- * Link layer specific messages.
- ****/
-
-/* struct ifinfomsg
- * passes link level specific information, not dependent
- * on network protocol.
- */
-
-struct ifinfomsg {
- unsigned char ifi_family;
- unsigned char __ifi_pad;
- unsigned short ifi_type; /* ARPHRD_* */
- int ifi_index; /* Link index */
- unsigned ifi_flags; /* IFF_* flags */
- unsigned ifi_change; /* IFF_* change mask */
-};
-
-/********************************************************************
- * prefix information
- ****/
-
-struct prefixmsg {
- unsigned char prefix_family;
- unsigned char prefix_pad1;
- unsigned short prefix_pad2;
- int prefix_ifindex;
- unsigned char prefix_type;
- unsigned char prefix_len;
- unsigned char prefix_flags;
- unsigned char prefix_pad3;
-};
-
-enum
-{
- PREFIX_UNSPEC,
- PREFIX_ADDRESS,
- PREFIX_CACHEINFO,
- __PREFIX_MAX
-};
-
-#define PREFIX_MAX (__PREFIX_MAX - 1)
-
-struct prefix_cacheinfo {
- __u32 preferred_time;
- __u32 valid_time;
-};
-
-
-/*****************************************************************
- * Traffic control messages.
- ****/
-
-struct tcmsg {
- unsigned char tcm_family;
- unsigned char tcm__pad1;
- unsigned short tcm__pad2;
- int tcm_ifindex;
- __u32 tcm_handle;
- __u32 tcm_parent;
- __u32 tcm_info;
-};
-
-enum {
- TCA_UNSPEC,
- TCA_KIND,
- TCA_OPTIONS,
- TCA_STATS,
- TCA_XSTATS,
- TCA_RATE,
- TCA_FCNT,
- TCA_STATS2,
- TCA_STAB,
- __TCA_MAX
-};
-
-#define TCA_MAX (__TCA_MAX - 1)
-
-#define TCA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct tcmsg))))
-#define TCA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct tcmsg))
-
-/********************************************************************
- * Neighbor Discovery userland options
- ****/
-
-struct nduseroptmsg {
- unsigned char nduseropt_family;
- unsigned char nduseropt_pad1;
- unsigned short nduseropt_opts_len; /* Total length of options */
- int nduseropt_ifindex;
- __u8 nduseropt_icmp_type;
- __u8 nduseropt_icmp_code;
- unsigned short nduseropt_pad2;
- unsigned int nduseropt_pad3;
- /* Followed by one or more ND options */
-};
-
-enum {
- NDUSEROPT_UNSPEC,
- NDUSEROPT_SRCADDR,
- __NDUSEROPT_MAX
-};
-
-#define NDUSEROPT_MAX (__NDUSEROPT_MAX - 1)
-
-#ifndef __KERNEL__
-/* RTnetlink multicast groups - backwards compatibility for userspace */
-#define RTMGRP_LINK 1
-#define RTMGRP_NOTIFY 2
-#define RTMGRP_NEIGH 4
-#define RTMGRP_TC 8
-
-#define RTMGRP_IPV4_IFADDR 0x10
-#define RTMGRP_IPV4_MROUTE 0x20
-#define RTMGRP_IPV4_ROUTE 0x40
-#define RTMGRP_IPV4_RULE 0x80
-
-#define RTMGRP_IPV6_IFADDR 0x100
-#define RTMGRP_IPV6_MROUTE 0x200
-#define RTMGRP_IPV6_ROUTE 0x400
-#define RTMGRP_IPV6_IFINFO 0x800
-
-#define RTMGRP_DECnet_IFADDR 0x1000
-#define RTMGRP_DECnet_ROUTE 0x4000
-
-#define RTMGRP_IPV6_PREFIX 0x20000
-#endif
-
-/* RTnetlink multicast groups */
-enum rtnetlink_groups {
- RTNLGRP_NONE,
-#define RTNLGRP_NONE RTNLGRP_NONE
- RTNLGRP_LINK,
-#define RTNLGRP_LINK RTNLGRP_LINK
- RTNLGRP_NOTIFY,
-#define RTNLGRP_NOTIFY RTNLGRP_NOTIFY
- RTNLGRP_NEIGH,
-#define RTNLGRP_NEIGH RTNLGRP_NEIGH
- RTNLGRP_TC,
-#define RTNLGRP_TC RTNLGRP_TC
- RTNLGRP_IPV4_IFADDR,
-#define RTNLGRP_IPV4_IFADDR RTNLGRP_IPV4_IFADDR
- RTNLGRP_IPV4_MROUTE,
-#define RTNLGRP_IPV4_MROUTE RTNLGRP_IPV4_MROUTE
- RTNLGRP_IPV4_ROUTE,
-#define RTNLGRP_IPV4_ROUTE RTNLGRP_IPV4_ROUTE
- RTNLGRP_IPV4_RULE,
-#define RTNLGRP_IPV4_RULE RTNLGRP_IPV4_RULE
- RTNLGRP_IPV6_IFADDR,
-#define RTNLGRP_IPV6_IFADDR RTNLGRP_IPV6_IFADDR
- RTNLGRP_IPV6_MROUTE,
-#define RTNLGRP_IPV6_MROUTE RTNLGRP_IPV6_MROUTE
- RTNLGRP_IPV6_ROUTE,
-#define RTNLGRP_IPV6_ROUTE RTNLGRP_IPV6_ROUTE
- RTNLGRP_IPV6_IFINFO,
-#define RTNLGRP_IPV6_IFINFO RTNLGRP_IPV6_IFINFO
- RTNLGRP_DECnet_IFADDR,
-#define RTNLGRP_DECnet_IFADDR RTNLGRP_DECnet_IFADDR
- RTNLGRP_NOP2,
- RTNLGRP_DECnet_ROUTE,
-#define RTNLGRP_DECnet_ROUTE RTNLGRP_DECnet_ROUTE
- RTNLGRP_DECnet_RULE,
-#define RTNLGRP_DECnet_RULE RTNLGRP_DECnet_RULE
- RTNLGRP_NOP4,
- RTNLGRP_IPV6_PREFIX,
-#define RTNLGRP_IPV6_PREFIX RTNLGRP_IPV6_PREFIX
- RTNLGRP_IPV6_RULE,
-#define RTNLGRP_IPV6_RULE RTNLGRP_IPV6_RULE
- RTNLGRP_ND_USEROPT,
-#define RTNLGRP_ND_USEROPT RTNLGRP_ND_USEROPT
- RTNLGRP_PHONET_IFADDR,
-#define RTNLGRP_PHONET_IFADDR RTNLGRP_PHONET_IFADDR
- RTNLGRP_PHONET_ROUTE,
-#define RTNLGRP_PHONET_ROUTE RTNLGRP_PHONET_ROUTE
- RTNLGRP_DCB,
-#define RTNLGRP_DCB RTNLGRP_DCB
- __RTNLGRP_MAX
-};
-#define RTNLGRP_MAX (__RTNLGRP_MAX - 1)
-
-/* TC action piece */
-struct tcamsg {
- unsigned char tca_family;
- unsigned char tca__pad1;
- unsigned short tca__pad2;
-};
-#define TA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct tcamsg))))
-#define TA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct tcamsg))
-#define TCA_ACT_TAB 1 /* attr type must be >=1 */
-#define TCAA_MAX 1
-
-/* New extended info filters for IFLA_EXT_MASK */
-#define RTEXT_FILTER_VF (1 << 0)
-
-/* End of information exported to user level */
-
-#ifdef __KERNEL__
-
-#include <linux/mutex.h>
-#include <linux/netdevice.h>
-
-static __inline__ int rtattr_strcmp(const struct rtattr *rta, const char *str)
-{
- int len = strlen(str) + 1;
- return len > rta->rta_len || memcmp(RTA_DATA(rta), str, len);
-}
-
-extern int rtnetlink_send(struct sk_buff *skb, struct net *net, u32 pid, u32 group, int echo);
-extern int rtnl_unicast(struct sk_buff *skb, struct net *net, u32 pid);
-extern void rtnl_notify(struct sk_buff *skb, struct net *net, u32 pid,
- u32 group, struct nlmsghdr *nlh, gfp_t flags);
-extern void rtnl_set_sk_err(struct net *net, u32 group, int error);
-extern int rtnetlink_put_metrics(struct sk_buff *skb, u32 *metrics);
-extern int rtnl_put_cacheinfo(struct sk_buff *skb, struct dst_entry *dst,
- u32 id, u32 ts, u32 tsage, long expires,
- u32 error);
-
-extern void __rta_fill(struct sk_buff *skb, int attrtype, int attrlen, const void *data);
-
-#define RTA_PUT(skb, attrtype, attrlen, data) \
-({ if (unlikely(skb_tailroom(skb) < (int)RTA_SPACE(attrlen))) \
- goto rtattr_failure; \
- __rta_fill(skb, attrtype, attrlen, data); })
-
-#define RTA_APPEND(skb, attrlen, data) \
-({ if (unlikely(skb_tailroom(skb) < (int)(attrlen))) \
- goto rtattr_failure; \
- memcpy(skb_put(skb, attrlen), data, attrlen); })
-
-#define RTA_PUT_NOHDR(skb, attrlen, data) \
-({ RTA_APPEND(skb, RTA_ALIGN(attrlen), data); \
- memset(skb_tail_pointer(skb) - (RTA_ALIGN(attrlen) - attrlen), 0, \
- RTA_ALIGN(attrlen) - attrlen); })
-
-#define RTA_PUT_U8(skb, attrtype, value) \
-({ u8 _tmp = (value); \
- RTA_PUT(skb, attrtype, sizeof(u8), &_tmp); })
-
-#define RTA_PUT_U16(skb, attrtype, value) \
-({ u16 _tmp = (value); \
- RTA_PUT(skb, attrtype, sizeof(u16), &_tmp); })
-
-#define RTA_PUT_U32(skb, attrtype, value) \
-({ u32 _tmp = (value); \
- RTA_PUT(skb, attrtype, sizeof(u32), &_tmp); })
-
-#define RTA_PUT_U64(skb, attrtype, value) \
-({ u64 _tmp = (value); \
- RTA_PUT(skb, attrtype, sizeof(u64), &_tmp); })
-
-#define RTA_PUT_SECS(skb, attrtype, value) \
- RTA_PUT_U64(skb, attrtype, (value) / HZ)
-
-#define RTA_PUT_MSECS(skb, attrtype, value) \
- RTA_PUT_U64(skb, attrtype, jiffies_to_msecs(value))
-
-#define RTA_PUT_STRING(skb, attrtype, value) \
- RTA_PUT(skb, attrtype, strlen(value) + 1, value)
-
-#define RTA_PUT_FLAG(skb, attrtype) \
- RTA_PUT(skb, attrtype, 0, NULL);
-
-#define RTA_NEST(skb, type) \
-({ struct rtattr *__start = (struct rtattr *)skb_tail_pointer(skb); \
- RTA_PUT(skb, type, 0, NULL); \
- __start; })
-
-#define RTA_NEST_END(skb, start) \
-({ (start)->rta_len = skb_tail_pointer(skb) - (unsigned char *)(start); \
- (skb)->len; })
-
-#define RTA_NEST_COMPAT(skb, type, attrlen, data) \
-({ struct rtattr *__start = (struct rtattr *)skb_tail_pointer(skb); \
- RTA_PUT(skb, type, attrlen, data); \
- RTA_NEST(skb, type); \
- __start; })
-
-#define RTA_NEST_COMPAT_END(skb, start) \
-({ struct rtattr *__nest = (void *)(start) + NLMSG_ALIGN((start)->rta_len); \
- (start)->rta_len = skb_tail_pointer(skb) - (unsigned char *)(start); \
- RTA_NEST_END(skb, __nest); \
- (skb)->len; })
-
-#define RTA_NEST_CANCEL(skb, start) \
-({ if (start) \
- skb_trim(skb, (unsigned char *) (start) - (skb)->data); \
- -1; })
-
-#define RTA_GET_U8(rta) \
-({ if (!rta || RTA_PAYLOAD(rta) < sizeof(u8)) \
- goto rtattr_failure; \
- *(u8 *) RTA_DATA(rta); })
-
-#define RTA_GET_U16(rta) \
-({ if (!rta || RTA_PAYLOAD(rta) < sizeof(u16)) \
- goto rtattr_failure; \
- *(u16 *) RTA_DATA(rta); })
-
-#define RTA_GET_U32(rta) \
-({ if (!rta || RTA_PAYLOAD(rta) < sizeof(u32)) \
- goto rtattr_failure; \
- *(u32 *) RTA_DATA(rta); })
-
-#define RTA_GET_U64(rta) \
-({ u64 _tmp; \
- if (!rta || RTA_PAYLOAD(rta) < sizeof(u64)) \
- goto rtattr_failure; \
- memcpy(&_tmp, RTA_DATA(rta), sizeof(_tmp)); \
- _tmp; })
-
-#define RTA_GET_FLAG(rta) (!!(rta))
-
-#define RTA_GET_SECS(rta) ((unsigned long) RTA_GET_U64(rta) * HZ)
-#define RTA_GET_MSECS(rta) (msecs_to_jiffies((unsigned long) RTA_GET_U64(rta)))
-
-static inline struct rtattr *
-__rta_reserve(struct sk_buff *skb, int attrtype, int attrlen)
-{
- struct rtattr *rta;
- int size = RTA_LENGTH(attrlen);
-
- rta = (struct rtattr*)skb_put(skb, RTA_ALIGN(size));
- rta->rta_type = attrtype;
- rta->rta_len = size;
- memset(RTA_DATA(rta) + attrlen, 0, RTA_ALIGN(size) - size);
- return rta;
-}
-
-#define __RTA_PUT(skb, attrtype, attrlen) \
-({ if (unlikely(skb_tailroom(skb) < (int)RTA_SPACE(attrlen))) \
- goto rtattr_failure; \
- __rta_reserve(skb, attrtype, attrlen); })
-
-extern void rtmsg_ifinfo(int type, struct net_device *dev, unsigned change);
-
-/* RTNL is used as a global lock for all changes to network configuration */
-extern void rtnl_lock(void);
-extern void rtnl_unlock(void);
-extern int rtnl_trylock(void);
-extern int rtnl_is_locked(void);
-#ifdef CONFIG_PROVE_LOCKING
-extern int lockdep_rtnl_is_held(void);
-#endif /* #ifdef CONFIG_PROVE_LOCKING */
-
-/**
- * rcu_dereference_rtnl - rcu_dereference with debug checking
- * @p: The pointer to read, prior to dereferencing
- *
- * Do an rcu_dereference(p), but check caller either holds rcu_read_lock()
- * or RTNL. Note : Please prefer rtnl_dereference() or rcu_dereference()
- */
-#define rcu_dereference_rtnl(p) \
- rcu_dereference_check(p, lockdep_rtnl_is_held())
-
-/**
- * rtnl_dereference - fetch RCU pointer when updates are prevented by RTNL
- * @p: The pointer to read, prior to dereferencing
- *
- * Return the value of the specified RCU-protected pointer, but omit
- * both the smp_read_barrier_depends() and the ACCESS_ONCE(), because
- * caller holds RTNL.
- */
-#define rtnl_dereference(p) \
- rcu_dereference_protected(p, lockdep_rtnl_is_held())
-
-static inline struct netdev_queue *dev_ingress_queue(struct net_device *dev)
-{
- return rtnl_dereference(dev->ingress_queue);
-}
-
-extern struct netdev_queue *dev_ingress_queue_create(struct net_device *dev);
-
-extern void rtnetlink_init(void);
-extern void __rtnl_unlock(void);
-
-#define ASSERT_RTNL() do { \
- if (unlikely(!rtnl_is_locked())) { \
- printk(KERN_ERR "RTNL: assertion failed at %s (%d)\n", \
- __FILE__, __LINE__); \
- dump_stack(); \
- } \
-} while(0)
-
-static inline u32 rtm_get_table(struct rtattr **rta, u8 table)
-{
- return RTA_GET_U32(rta[RTA_TABLE-1]);
-rtattr_failure:
- return table;
-}
-
-#endif /* __KERNEL__ */
-
-
-#endif /* __LINUX_RTNETLINK_H */
diff --git a/ANDROID_3.4.5/include/linux/rwlock.h b/ANDROID_3.4.5/include/linux/rwlock.h
deleted file mode 100644
index bc2994ed..00000000
--- a/ANDROID_3.4.5/include/linux/rwlock.h
+++ /dev/null
@@ -1,125 +0,0 @@
-#ifndef __LINUX_RWLOCK_H
-#define __LINUX_RWLOCK_H
-
-#ifndef __LINUX_SPINLOCK_H
-# error "please don't include this file directly"
-#endif
-
-/*
- * rwlock related methods
- *
- * split out from spinlock.h
- *
- * portions Copyright 2005, Red Hat, Inc., Ingo Molnar
- * Released under the General Public License (GPL).
- */
-
-#ifdef CONFIG_DEBUG_SPINLOCK
- extern void __rwlock_init(rwlock_t *lock, const char *name,
- struct lock_class_key *key);
-# define rwlock_init(lock) \
-do { \
- static struct lock_class_key __key; \
- \
- __rwlock_init((lock), #lock, &__key); \
-} while (0)
-#else
-# define rwlock_init(lock) \
- do { *(lock) = __RW_LOCK_UNLOCKED(lock); } while (0)
-#endif
-
-#ifdef CONFIG_DEBUG_SPINLOCK
- extern void do_raw_read_lock(rwlock_t *lock) __acquires(lock);
-#define do_raw_read_lock_flags(lock, flags) do_raw_read_lock(lock)
- extern int do_raw_read_trylock(rwlock_t *lock);
- extern void do_raw_read_unlock(rwlock_t *lock) __releases(lock);
- extern void do_raw_write_lock(rwlock_t *lock) __acquires(lock);
-#define do_raw_write_lock_flags(lock, flags) do_raw_write_lock(lock)
- extern int do_raw_write_trylock(rwlock_t *lock);
- extern void do_raw_write_unlock(rwlock_t *lock) __releases(lock);
-#else
-# define do_raw_read_lock(rwlock) do {__acquire(lock); arch_read_lock(&(rwlock)->raw_lock); } while (0)
-# define do_raw_read_lock_flags(lock, flags) \
- do {__acquire(lock); arch_read_lock_flags(&(lock)->raw_lock, *(flags)); } while (0)
-# define do_raw_read_trylock(rwlock) arch_read_trylock(&(rwlock)->raw_lock)
-# define do_raw_read_unlock(rwlock) do {arch_read_unlock(&(rwlock)->raw_lock); __release(lock); } while (0)
-# define do_raw_write_lock(rwlock) do {__acquire(lock); arch_write_lock(&(rwlock)->raw_lock); } while (0)
-# define do_raw_write_lock_flags(lock, flags) \
- do {__acquire(lock); arch_write_lock_flags(&(lock)->raw_lock, *(flags)); } while (0)
-# define do_raw_write_trylock(rwlock) arch_write_trylock(&(rwlock)->raw_lock)
-# define do_raw_write_unlock(rwlock) do {arch_write_unlock(&(rwlock)->raw_lock); __release(lock); } while (0)
-#endif
-
-#define read_can_lock(rwlock) arch_read_can_lock(&(rwlock)->raw_lock)
-#define write_can_lock(rwlock) arch_write_can_lock(&(rwlock)->raw_lock)
-
-/*
- * Define the various rw_lock methods. Note we define these
- * regardless of whether CONFIG_SMP or CONFIG_PREEMPT are set. The various
- * methods are defined as nops in the case they are not required.
- */
-#define read_trylock(lock) __cond_lock(lock, _raw_read_trylock(lock))
-#define write_trylock(lock) __cond_lock(lock, _raw_write_trylock(lock))
-
-#define write_lock(lock) _raw_write_lock(lock)
-#define read_lock(lock) _raw_read_lock(lock)
-
-#if defined(CONFIG_SMP) || defined(CONFIG_DEBUG_SPINLOCK)
-
-#define read_lock_irqsave(lock, flags) \
- do { \
- typecheck(unsigned long, flags); \
- flags = _raw_read_lock_irqsave(lock); \
- } while (0)
-#define write_lock_irqsave(lock, flags) \
- do { \
- typecheck(unsigned long, flags); \
- flags = _raw_write_lock_irqsave(lock); \
- } while (0)
-
-#else
-
-#define read_lock_irqsave(lock, flags) \
- do { \
- typecheck(unsigned long, flags); \
- _raw_read_lock_irqsave(lock, flags); \
- } while (0)
-#define write_lock_irqsave(lock, flags) \
- do { \
- typecheck(unsigned long, flags); \
- _raw_write_lock_irqsave(lock, flags); \
- } while (0)
-
-#endif
-
-#define read_lock_irq(lock) _raw_read_lock_irq(lock)
-#define read_lock_bh(lock) _raw_read_lock_bh(lock)
-#define write_lock_irq(lock) _raw_write_lock_irq(lock)
-#define write_lock_bh(lock) _raw_write_lock_bh(lock)
-#define read_unlock(lock) _raw_read_unlock(lock)
-#define write_unlock(lock) _raw_write_unlock(lock)
-#define read_unlock_irq(lock) _raw_read_unlock_irq(lock)
-#define write_unlock_irq(lock) _raw_write_unlock_irq(lock)
-
-#define read_unlock_irqrestore(lock, flags) \
- do { \
- typecheck(unsigned long, flags); \
- _raw_read_unlock_irqrestore(lock, flags); \
- } while (0)
-#define read_unlock_bh(lock) _raw_read_unlock_bh(lock)
-
-#define write_unlock_irqrestore(lock, flags) \
- do { \
- typecheck(unsigned long, flags); \
- _raw_write_unlock_irqrestore(lock, flags); \
- } while (0)
-#define write_unlock_bh(lock) _raw_write_unlock_bh(lock)
-
-#define write_trylock_irqsave(lock, flags) \
-({ \
- local_irq_save(flags); \
- write_trylock(lock) ? \
- 1 : ({ local_irq_restore(flags); 0; }); \
-})
-
-#endif /* __LINUX_RWLOCK_H */
diff --git a/ANDROID_3.4.5/include/linux/rwlock_api_smp.h b/ANDROID_3.4.5/include/linux/rwlock_api_smp.h
deleted file mode 100644
index 9c9f0495..00000000
--- a/ANDROID_3.4.5/include/linux/rwlock_api_smp.h
+++ /dev/null
@@ -1,282 +0,0 @@
-#ifndef __LINUX_RWLOCK_API_SMP_H
-#define __LINUX_RWLOCK_API_SMP_H
-
-#ifndef __LINUX_SPINLOCK_API_SMP_H
-# error "please don't include this file directly"
-#endif
-
-/*
- * include/linux/rwlock_api_smp.h
- *
- * spinlock API declarations on SMP (and debug)
- * (implemented in kernel/spinlock.c)
- *
- * portions Copyright 2005, Red Hat, Inc., Ingo Molnar
- * Released under the General Public License (GPL).
- */
-
-void __lockfunc _raw_read_lock(rwlock_t *lock) __acquires(lock);
-void __lockfunc _raw_write_lock(rwlock_t *lock) __acquires(lock);
-void __lockfunc _raw_read_lock_bh(rwlock_t *lock) __acquires(lock);
-void __lockfunc _raw_write_lock_bh(rwlock_t *lock) __acquires(lock);
-void __lockfunc _raw_read_lock_irq(rwlock_t *lock) __acquires(lock);
-void __lockfunc _raw_write_lock_irq(rwlock_t *lock) __acquires(lock);
-unsigned long __lockfunc _raw_read_lock_irqsave(rwlock_t *lock)
- __acquires(lock);
-unsigned long __lockfunc _raw_write_lock_irqsave(rwlock_t *lock)
- __acquires(lock);
-int __lockfunc _raw_read_trylock(rwlock_t *lock);
-int __lockfunc _raw_write_trylock(rwlock_t *lock);
-void __lockfunc _raw_read_unlock(rwlock_t *lock) __releases(lock);
-void __lockfunc _raw_write_unlock(rwlock_t *lock) __releases(lock);
-void __lockfunc _raw_read_unlock_bh(rwlock_t *lock) __releases(lock);
-void __lockfunc _raw_write_unlock_bh(rwlock_t *lock) __releases(lock);
-void __lockfunc _raw_read_unlock_irq(rwlock_t *lock) __releases(lock);
-void __lockfunc _raw_write_unlock_irq(rwlock_t *lock) __releases(lock);
-void __lockfunc
-_raw_read_unlock_irqrestore(rwlock_t *lock, unsigned long flags)
- __releases(lock);
-void __lockfunc
-_raw_write_unlock_irqrestore(rwlock_t *lock, unsigned long flags)
- __releases(lock);
-
-#ifdef CONFIG_INLINE_READ_LOCK
-#define _raw_read_lock(lock) __raw_read_lock(lock)
-#endif
-
-#ifdef CONFIG_INLINE_WRITE_LOCK
-#define _raw_write_lock(lock) __raw_write_lock(lock)
-#endif
-
-#ifdef CONFIG_INLINE_READ_LOCK_BH
-#define _raw_read_lock_bh(lock) __raw_read_lock_bh(lock)
-#endif
-
-#ifdef CONFIG_INLINE_WRITE_LOCK_BH
-#define _raw_write_lock_bh(lock) __raw_write_lock_bh(lock)
-#endif
-
-#ifdef CONFIG_INLINE_READ_LOCK_IRQ
-#define _raw_read_lock_irq(lock) __raw_read_lock_irq(lock)
-#endif
-
-#ifdef CONFIG_INLINE_WRITE_LOCK_IRQ
-#define _raw_write_lock_irq(lock) __raw_write_lock_irq(lock)
-#endif
-
-#ifdef CONFIG_INLINE_READ_LOCK_IRQSAVE
-#define _raw_read_lock_irqsave(lock) __raw_read_lock_irqsave(lock)
-#endif
-
-#ifdef CONFIG_INLINE_WRITE_LOCK_IRQSAVE
-#define _raw_write_lock_irqsave(lock) __raw_write_lock_irqsave(lock)
-#endif
-
-#ifdef CONFIG_INLINE_READ_TRYLOCK
-#define _raw_read_trylock(lock) __raw_read_trylock(lock)
-#endif
-
-#ifdef CONFIG_INLINE_WRITE_TRYLOCK
-#define _raw_write_trylock(lock) __raw_write_trylock(lock)
-#endif
-
-#ifdef CONFIG_INLINE_READ_UNLOCK
-#define _raw_read_unlock(lock) __raw_read_unlock(lock)
-#endif
-
-#ifdef CONFIG_INLINE_WRITE_UNLOCK
-#define _raw_write_unlock(lock) __raw_write_unlock(lock)
-#endif
-
-#ifdef CONFIG_INLINE_READ_UNLOCK_BH
-#define _raw_read_unlock_bh(lock) __raw_read_unlock_bh(lock)
-#endif
-
-#ifdef CONFIG_INLINE_WRITE_UNLOCK_BH
-#define _raw_write_unlock_bh(lock) __raw_write_unlock_bh(lock)
-#endif
-
-#ifdef CONFIG_INLINE_READ_UNLOCK_IRQ
-#define _raw_read_unlock_irq(lock) __raw_read_unlock_irq(lock)
-#endif
-
-#ifdef CONFIG_INLINE_WRITE_UNLOCK_IRQ
-#define _raw_write_unlock_irq(lock) __raw_write_unlock_irq(lock)
-#endif
-
-#ifdef CONFIG_INLINE_READ_UNLOCK_IRQRESTORE
-#define _raw_read_unlock_irqrestore(lock, flags) \
- __raw_read_unlock_irqrestore(lock, flags)
-#endif
-
-#ifdef CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE
-#define _raw_write_unlock_irqrestore(lock, flags) \
- __raw_write_unlock_irqrestore(lock, flags)
-#endif
-
-static inline int __raw_read_trylock(rwlock_t *lock)
-{
- preempt_disable();
- if (do_raw_read_trylock(lock)) {
- rwlock_acquire_read(&lock->dep_map, 0, 1, _RET_IP_);
- return 1;
- }
- preempt_enable();
- return 0;
-}
-
-static inline int __raw_write_trylock(rwlock_t *lock)
-{
- preempt_disable();
- if (do_raw_write_trylock(lock)) {
- rwlock_acquire(&lock->dep_map, 0, 1, _RET_IP_);
- return 1;
- }
- preempt_enable();
- return 0;
-}
-
-/*
- * If lockdep is enabled then we use the non-preemption spin-ops
- * even on CONFIG_PREEMPT, because lockdep assumes that interrupts are
- * not re-enabled during lock-acquire (which the preempt-spin-ops do):
- */
-#if !defined(CONFIG_GENERIC_LOCKBREAK) || defined(CONFIG_DEBUG_LOCK_ALLOC)
-
-static inline void __raw_read_lock(rwlock_t *lock)
-{
- preempt_disable();
- rwlock_acquire_read(&lock->dep_map, 0, 0, _RET_IP_);
- LOCK_CONTENDED(lock, do_raw_read_trylock, do_raw_read_lock);
-}
-
-static inline unsigned long __raw_read_lock_irqsave(rwlock_t *lock)
-{
- unsigned long flags;
-
- local_irq_save(flags);
- preempt_disable();
- rwlock_acquire_read(&lock->dep_map, 0, 0, _RET_IP_);
- LOCK_CONTENDED_FLAGS(lock, do_raw_read_trylock, do_raw_read_lock,
- do_raw_read_lock_flags, &flags);
- return flags;
-}
-
-static inline void __raw_read_lock_irq(rwlock_t *lock)
-{
- local_irq_disable();
- preempt_disable();
- rwlock_acquire_read(&lock->dep_map, 0, 0, _RET_IP_);
- LOCK_CONTENDED(lock, do_raw_read_trylock, do_raw_read_lock);
-}
-
-static inline void __raw_read_lock_bh(rwlock_t *lock)
-{
- local_bh_disable();
- preempt_disable();
- rwlock_acquire_read(&lock->dep_map, 0, 0, _RET_IP_);
- LOCK_CONTENDED(lock, do_raw_read_trylock, do_raw_read_lock);
-}
-
-static inline unsigned long __raw_write_lock_irqsave(rwlock_t *lock)
-{
- unsigned long flags;
-
- local_irq_save(flags);
- preempt_disable();
- rwlock_acquire(&lock->dep_map, 0, 0, _RET_IP_);
- LOCK_CONTENDED_FLAGS(lock, do_raw_write_trylock, do_raw_write_lock,
- do_raw_write_lock_flags, &flags);
- return flags;
-}
-
-static inline void __raw_write_lock_irq(rwlock_t *lock)
-{
- local_irq_disable();
- preempt_disable();
- rwlock_acquire(&lock->dep_map, 0, 0, _RET_IP_);
- LOCK_CONTENDED(lock, do_raw_write_trylock, do_raw_write_lock);
-}
-
-static inline void __raw_write_lock_bh(rwlock_t *lock)
-{
- local_bh_disable();
- preempt_disable();
- rwlock_acquire(&lock->dep_map, 0, 0, _RET_IP_);
- LOCK_CONTENDED(lock, do_raw_write_trylock, do_raw_write_lock);
-}
-
-static inline void __raw_write_lock(rwlock_t *lock)
-{
- preempt_disable();
- rwlock_acquire(&lock->dep_map, 0, 0, _RET_IP_);
- LOCK_CONTENDED(lock, do_raw_write_trylock, do_raw_write_lock);
-}
-
-#endif /* CONFIG_PREEMPT */
-
-static inline void __raw_write_unlock(rwlock_t *lock)
-{
- rwlock_release(&lock->dep_map, 1, _RET_IP_);
- do_raw_write_unlock(lock);
- preempt_enable();
-}
-
-static inline void __raw_read_unlock(rwlock_t *lock)
-{
- rwlock_release(&lock->dep_map, 1, _RET_IP_);
- do_raw_read_unlock(lock);
- preempt_enable();
-}
-
-static inline void
-__raw_read_unlock_irqrestore(rwlock_t *lock, unsigned long flags)
-{
- rwlock_release(&lock->dep_map, 1, _RET_IP_);
- do_raw_read_unlock(lock);
- local_irq_restore(flags);
- preempt_enable();
-}
-
-static inline void __raw_read_unlock_irq(rwlock_t *lock)
-{
- rwlock_release(&lock->dep_map, 1, _RET_IP_);
- do_raw_read_unlock(lock);
- local_irq_enable();
- preempt_enable();
-}
-
-static inline void __raw_read_unlock_bh(rwlock_t *lock)
-{
- rwlock_release(&lock->dep_map, 1, _RET_IP_);
- do_raw_read_unlock(lock);
- preempt_enable_no_resched();
- local_bh_enable_ip((unsigned long)__builtin_return_address(0));
-}
-
-static inline void __raw_write_unlock_irqrestore(rwlock_t *lock,
- unsigned long flags)
-{
- rwlock_release(&lock->dep_map, 1, _RET_IP_);
- do_raw_write_unlock(lock);
- local_irq_restore(flags);
- preempt_enable();
-}
-
-static inline void __raw_write_unlock_irq(rwlock_t *lock)
-{
- rwlock_release(&lock->dep_map, 1, _RET_IP_);
- do_raw_write_unlock(lock);
- local_irq_enable();
- preempt_enable();
-}
-
-static inline void __raw_write_unlock_bh(rwlock_t *lock)
-{
- rwlock_release(&lock->dep_map, 1, _RET_IP_);
- do_raw_write_unlock(lock);
- preempt_enable_no_resched();
- local_bh_enable_ip((unsigned long)__builtin_return_address(0));
-}
-
-#endif /* __LINUX_RWLOCK_API_SMP_H */
diff --git a/ANDROID_3.4.5/include/linux/rwlock_types.h b/ANDROID_3.4.5/include/linux/rwlock_types.h
deleted file mode 100644
index cc0072e9..00000000
--- a/ANDROID_3.4.5/include/linux/rwlock_types.h
+++ /dev/null
@@ -1,48 +0,0 @@
-#ifndef __LINUX_RWLOCK_TYPES_H
-#define __LINUX_RWLOCK_TYPES_H
-
-/*
- * include/linux/rwlock_types.h - generic rwlock type definitions
- * and initializers
- *
- * portions Copyright 2005, Red Hat, Inc., Ingo Molnar
- * Released under the General Public License (GPL).
- */
-typedef struct {
- arch_rwlock_t raw_lock;
-#ifdef CONFIG_GENERIC_LOCKBREAK
- unsigned int break_lock;
-#endif
-#ifdef CONFIG_DEBUG_SPINLOCK
- unsigned int magic, owner_cpu;
- void *owner;
-#endif
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
- struct lockdep_map dep_map;
-#endif
-} rwlock_t;
-
-#define RWLOCK_MAGIC 0xdeaf1eed
-
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
-# define RW_DEP_MAP_INIT(lockname) .dep_map = { .name = #lockname }
-#else
-# define RW_DEP_MAP_INIT(lockname)
-#endif
-
-#ifdef CONFIG_DEBUG_SPINLOCK
-#define __RW_LOCK_UNLOCKED(lockname) \
- (rwlock_t) { .raw_lock = __ARCH_RW_LOCK_UNLOCKED, \
- .magic = RWLOCK_MAGIC, \
- .owner = SPINLOCK_OWNER_INIT, \
- .owner_cpu = -1, \
- RW_DEP_MAP_INIT(lockname) }
-#else
-#define __RW_LOCK_UNLOCKED(lockname) \
- (rwlock_t) { .raw_lock = __ARCH_RW_LOCK_UNLOCKED, \
- RW_DEP_MAP_INIT(lockname) }
-#endif
-
-#define DEFINE_RWLOCK(x) rwlock_t x = __RW_LOCK_UNLOCKED(x)
-
-#endif /* __LINUX_RWLOCK_TYPES_H */
diff --git a/ANDROID_3.4.5/include/linux/rwsem-spinlock.h b/ANDROID_3.4.5/include/linux/rwsem-spinlock.h
deleted file mode 100644
index d5b13bc0..00000000
--- a/ANDROID_3.4.5/include/linux/rwsem-spinlock.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* rwsem-spinlock.h: fallback C implementation
- *
- * Copyright (c) 2001 David Howells (dhowells@redhat.com).
- * - Derived partially from ideas by Andrea Arcangeli <andrea@suse.de>
- * - Derived also from comments by Linus
- */
-
-#ifndef _LINUX_RWSEM_SPINLOCK_H
-#define _LINUX_RWSEM_SPINLOCK_H
-
-#ifndef _LINUX_RWSEM_H
-#error "please don't include linux/rwsem-spinlock.h directly, use linux/rwsem.h instead"
-#endif
-
-#ifdef __KERNEL__
-/*
- * the rw-semaphore definition
- * - if activity is 0 then there are no active readers or writers
- * - if activity is +ve then that is the number of active readers
- * - if activity is -1 then there is one active writer
- * - if wait_list is not empty, then there are processes waiting for the semaphore
- */
-struct rw_semaphore {
- __s32 activity;
- raw_spinlock_t wait_lock;
- struct list_head wait_list;
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
- struct lockdep_map dep_map;
-#endif
-};
-
-#define RWSEM_UNLOCKED_VALUE 0x00000000
-
-extern void __down_read(struct rw_semaphore *sem);
-extern int __down_read_trylock(struct rw_semaphore *sem);
-extern void __down_write(struct rw_semaphore *sem);
-extern void __down_write_nested(struct rw_semaphore *sem, int subclass);
-extern int __down_write_trylock(struct rw_semaphore *sem);
-extern void __up_read(struct rw_semaphore *sem);
-extern void __up_write(struct rw_semaphore *sem);
-extern void __downgrade_write(struct rw_semaphore *sem);
-extern int rwsem_is_locked(struct rw_semaphore *sem);
-
-#endif /* __KERNEL__ */
-#endif /* _LINUX_RWSEM_SPINLOCK_H */
diff --git a/ANDROID_3.4.5/include/linux/rwsem.h b/ANDROID_3.4.5/include/linux/rwsem.h
deleted file mode 100644
index 54bd7cd7..00000000
--- a/ANDROID_3.4.5/include/linux/rwsem.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/* rwsem.h: R/W semaphores, public interface
- *
- * Written by David Howells (dhowells@redhat.com).
- * Derived from asm-i386/semaphore.h
- */
-
-#ifndef _LINUX_RWSEM_H
-#define _LINUX_RWSEM_H
-
-#include <linux/linkage.h>
-
-#include <linux/types.h>
-#include <linux/kernel.h>
-#include <linux/list.h>
-#include <linux/spinlock.h>
-
-#include <linux/atomic.h>
-
-struct rw_semaphore;
-
-#ifdef CONFIG_RWSEM_GENERIC_SPINLOCK
-#include <linux/rwsem-spinlock.h> /* use a generic implementation */
-#else
-/* All arch specific implementations share the same struct */
-struct rw_semaphore {
- long count;
- raw_spinlock_t wait_lock;
- struct list_head wait_list;
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
- struct lockdep_map dep_map;
-#endif
-};
-
-extern struct rw_semaphore *rwsem_down_read_failed(struct rw_semaphore *sem);
-extern struct rw_semaphore *rwsem_down_write_failed(struct rw_semaphore *sem);
-extern struct rw_semaphore *rwsem_wake(struct rw_semaphore *);
-extern struct rw_semaphore *rwsem_downgrade_wake(struct rw_semaphore *sem);
-
-/* Include the arch specific part */
-#include <asm/rwsem.h>
-
-/* In all implementations count != 0 means locked */
-static inline int rwsem_is_locked(struct rw_semaphore *sem)
-{
- return sem->count != 0;
-}
-
-#endif
-
-/* Common initializer macros and functions */
-
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
-# define __RWSEM_DEP_MAP_INIT(lockname) , .dep_map = { .name = #lockname }
-#else
-# define __RWSEM_DEP_MAP_INIT(lockname)
-#endif
-
-#define __RWSEM_INITIALIZER(name) \
- { RWSEM_UNLOCKED_VALUE, \
- __RAW_SPIN_LOCK_UNLOCKED(name.wait_lock), \
- LIST_HEAD_INIT((name).wait_list) \
- __RWSEM_DEP_MAP_INIT(name) }
-
-#define DECLARE_RWSEM(name) \
- struct rw_semaphore name = __RWSEM_INITIALIZER(name)
-
-extern void __init_rwsem(struct rw_semaphore *sem, const char *name,
- struct lock_class_key *key);
-
-#define init_rwsem(sem) \
-do { \
- static struct lock_class_key __key; \
- \
- __init_rwsem((sem), #sem, &__key); \
-} while (0)
-
-/*
- * lock for reading
- */
-extern void down_read(struct rw_semaphore *sem);
-
-/*
- * trylock for reading -- returns 1 if successful, 0 if contention
- */
-extern int down_read_trylock(struct rw_semaphore *sem);
-
-/*
- * lock for writing
- */
-extern void down_write(struct rw_semaphore *sem);
-
-/*
- * trylock for writing -- returns 1 if successful, 0 if contention
- */
-extern int down_write_trylock(struct rw_semaphore *sem);
-
-/*
- * release a read lock
- */
-extern void up_read(struct rw_semaphore *sem);
-
-/*
- * release a write lock
- */
-extern void up_write(struct rw_semaphore *sem);
-
-/*
- * downgrade write lock to read lock
- */
-extern void downgrade_write(struct rw_semaphore *sem);
-
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
-/*
- * nested locking. NOTE: rwsems are not allowed to recurse
- * (which occurs if the same task tries to acquire the same
- * lock instance multiple times), but multiple locks of the
- * same lock class might be taken, if the order of the locks
- * is always the same. This ordering rule can be expressed
- * to lockdep via the _nested() APIs, but enumerating the
- * subclasses that are used. (If the nesting relationship is
- * static then another method for expressing nested locking is
- * the explicit definition of lock class keys and the use of
- * lockdep_set_class() at lock initialization time.
- * See Documentation/lockdep-design.txt for more details.)
- */
-extern void down_read_nested(struct rw_semaphore *sem, int subclass);
-extern void down_write_nested(struct rw_semaphore *sem, int subclass);
-#else
-# define down_read_nested(sem, subclass) down_read(sem)
-# define down_write_nested(sem, subclass) down_write(sem)
-#endif
-
-#endif /* _LINUX_RWSEM_H */
diff --git a/ANDROID_3.4.5/include/linux/rxrpc.h b/ANDROID_3.4.5/include/linux/rxrpc.h
deleted file mode 100644
index a53915cd..00000000
--- a/ANDROID_3.4.5/include/linux/rxrpc.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/* AF_RXRPC parameters
- *
- * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
- * Written by David Howells (dhowells@redhat.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 _LINUX_RXRPC_H
-#define _LINUX_RXRPC_H
-
-#include <linux/in.h>
-#include <linux/in6.h>
-
-/*
- * RxRPC socket address
- */
-struct sockaddr_rxrpc {
- sa_family_t srx_family; /* address family */
- u16 srx_service; /* service desired */
- u16 transport_type; /* type of transport socket (SOCK_DGRAM) */
- u16 transport_len; /* length of transport address */
- union {
- sa_family_t family; /* transport address family */
- struct sockaddr_in sin; /* IPv4 transport address */
- struct sockaddr_in6 sin6; /* IPv6 transport address */
- } transport;
-};
-
-/*
- * RxRPC socket options
- */
-#define RXRPC_SECURITY_KEY 1 /* [clnt] set client security key */
-#define RXRPC_SECURITY_KEYRING 2 /* [srvr] set ring of server security keys */
-#define RXRPC_EXCLUSIVE_CONNECTION 3 /* [clnt] use exclusive RxRPC connection */
-#define RXRPC_MIN_SECURITY_LEVEL 4 /* minimum security level */
-
-/*
- * RxRPC control messages
- * - terminal messages mean that a user call ID tag can be recycled
- */
-#define RXRPC_USER_CALL_ID 1 /* user call ID specifier */
-#define RXRPC_ABORT 2 /* abort request / notification [terminal] */
-#define RXRPC_ACK 3 /* [Server] RPC op final ACK received [terminal] */
-#define RXRPC_NET_ERROR 5 /* network error received [terminal] */
-#define RXRPC_BUSY 6 /* server busy received [terminal] */
-#define RXRPC_LOCAL_ERROR 7 /* local error generated [terminal] */
-#define RXRPC_NEW_CALL 8 /* [Server] new incoming call notification */
-#define RXRPC_ACCEPT 9 /* [Server] accept request */
-
-/*
- * RxRPC security levels
- */
-#define RXRPC_SECURITY_PLAIN 0 /* plain secure-checksummed packets only */
-#define RXRPC_SECURITY_AUTH 1 /* authenticated packets */
-#define RXRPC_SECURITY_ENCRYPT 2 /* encrypted packets */
-
-/*
- * RxRPC security indices
- */
-#define RXRPC_SECURITY_NONE 0 /* no security protocol */
-#define RXRPC_SECURITY_RXKAD 2 /* kaserver or kerberos 4 */
-#define RXRPC_SECURITY_RXGK 4 /* gssapi-based */
-#define RXRPC_SECURITY_RXK5 5 /* kerberos 5 */
-
-#endif /* _LINUX_RXRPC_H */
diff --git a/ANDROID_3.4.5/include/linux/s3c_adc_battery.h b/ANDROID_3.4.5/include/linux/s3c_adc_battery.h
deleted file mode 100644
index 99dadbff..00000000
--- a/ANDROID_3.4.5/include/linux/s3c_adc_battery.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef _S3C_ADC_BATTERY_H
-#define _S3C_ADC_BATTERY_H
-
-struct s3c_adc_bat_thresh {
- int volt; /* mV */
- int cur; /* mA */
- int level; /* percent */
-};
-
-struct s3c_adc_bat_pdata {
- int (*init)(void);
- void (*exit)(void);
- void (*enable_charger)(void);
- void (*disable_charger)(void);
-
- int gpio_charge_finished;
- int gpio_inverted;
-
- const struct s3c_adc_bat_thresh *lut_noac;
- unsigned int lut_noac_cnt;
- const struct s3c_adc_bat_thresh *lut_acin;
- unsigned int lut_acin_cnt;
-
- const unsigned int volt_channel;
- const unsigned int current_channel;
- const unsigned int backup_volt_channel;
-
- const unsigned int volt_samples;
- const unsigned int current_samples;
- const unsigned int backup_volt_samples;
-
- const unsigned int volt_mult;
- const unsigned int current_mult;
- const unsigned int backup_volt_mult;
- const unsigned int internal_impedance;
-
- const unsigned int backup_volt_max;
- const unsigned int backup_volt_min;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/sa11x0-dma.h b/ANDROID_3.4.5/include/linux/sa11x0-dma.h
deleted file mode 100644
index 65839a58..00000000
--- a/ANDROID_3.4.5/include/linux/sa11x0-dma.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * SA11x0 DMA Engine support
- *
- * Copyright (C) 2012 Russell King
- *
- * 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.
- */
-#ifndef __LINUX_SA11X0_DMA_H
-#define __LINUX_SA11X0_DMA_H
-
-struct dma_chan;
-
-#if defined(CONFIG_DMA_SA11X0) || defined(CONFIG_DMA_SA11X0_MODULE)
-bool sa11x0_dma_filter_fn(struct dma_chan *, void *);
-#else
-static inline bool sa11x0_dma_filter_fn(struct dma_chan *c, void *d)
-{
- return false;
-}
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/sc26198.h b/ANDROID_3.4.5/include/linux/sc26198.h
deleted file mode 100644
index 7ca35aba..00000000
--- a/ANDROID_3.4.5/include/linux/sc26198.h
+++ /dev/null
@@ -1,533 +0,0 @@
-/*****************************************************************************/
-
-/*
- * sc26198.h -- SC26198 UART hardware info.
- *
- * Copyright (C) 1995-1998 Stallion Technologies
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-/*****************************************************************************/
-#ifndef _SC26198_H
-#define _SC26198_H
-/*****************************************************************************/
-
-/*
- * Define the number of async ports per sc26198 uart device.
- */
-#define SC26198_PORTS 8
-
-/*
- * Baud rate timing clocks. All derived from a master 14.7456 MHz clock.
- */
-#define SC26198_MASTERCLOCK 14745600L
-#define SC26198_DCLK (SC26198_MASTERCLOCK)
-#define SC26198_CCLK (SC26198_MASTERCLOCK / 2)
-#define SC26198_BCLK (SC26198_MASTERCLOCK / 4)
-
-/*
- * Define internal FIFO sizes for the 26198 ports.
- */
-#define SC26198_TXFIFOSIZE 16
-#define SC26198_RXFIFOSIZE 16
-
-/*****************************************************************************/
-
-/*
- * Global register definitions. These registers are global to each 26198
- * device, not specific ports on it.
- */
-#define TSTR 0x0d
-#define GCCR 0x0f
-#define ICR 0x1b
-#define WDTRCR 0x1d
-#define IVR 0x1f
-#define BRGTRUA 0x84
-#define GPOSR 0x87
-#define GPOC 0x8b
-#define UCIR 0x8c
-#define CIR 0x8c
-#define BRGTRUB 0x8d
-#define GRXFIFO 0x8e
-#define GTXFIFO 0x8e
-#define GCCR2 0x8f
-#define BRGTRLA 0x94
-#define GPOR 0x97
-#define GPOD 0x9b
-#define BRGTCR 0x9c
-#define GICR 0x9c
-#define BRGTRLB 0x9d
-#define GIBCR 0x9d
-#define GITR 0x9f
-
-/*
- * Per port channel registers. These are the register offsets within
- * the port address space, so need to have the port address (0 to 7)
- * inserted in bit positions 4:6.
- */
-#define MR0 0x00
-#define MR1 0x01
-#define IOPCR 0x02
-#define BCRBRK 0x03
-#define BCRCOS 0x04
-#define BCRX 0x06
-#define BCRA 0x07
-#define XONCR 0x08
-#define XOFFCR 0x09
-#define ARCR 0x0a
-#define RXCSR 0x0c
-#define TXCSR 0x0e
-#define MR2 0x80
-#define SR 0x81
-#define SCCR 0x81
-#define ISR 0x82
-#define IMR 0x82
-#define TXFIFO 0x83
-#define RXFIFO 0x83
-#define IPR 0x84
-#define IOPIOR 0x85
-#define XISR 0x86
-
-/*
- * For any given port calculate the address to use to access a specified
- * register. This is only used for unusual access, mostly this is done
- * through the assembler access routines.
- */
-#define SC26198_PORTREG(port,reg) ((((port) & 0x07) << 4) | (reg))
-
-/*****************************************************************************/
-
-/*
- * Global configuration control register bit definitions.
- */
-#define GCCR_NOACK 0x00
-#define GCCR_IVRACK 0x02
-#define GCCR_IVRCHANACK 0x04
-#define GCCR_IVRTYPCHANACK 0x06
-#define GCCR_ASYNCCYCLE 0x00
-#define GCCR_SYNCCYCLE 0x40
-
-/*****************************************************************************/
-
-/*
- * Mode register 0 bit definitions.
- */
-#define MR0_ADDRNONE 0x00
-#define MR0_AUTOWAKE 0x01
-#define MR0_AUTODOZE 0x02
-#define MR0_AUTOWAKEDOZE 0x03
-#define MR0_SWFNONE 0x00
-#define MR0_SWFTX 0x04
-#define MR0_SWFRX 0x08
-#define MR0_SWFRXTX 0x0c
-#define MR0_TXMASK 0x30
-#define MR0_TXEMPTY 0x00
-#define MR0_TXHIGH 0x10
-#define MR0_TXHALF 0x20
-#define MR0_TXRDY 0x00
-#define MR0_ADDRNT 0x00
-#define MR0_ADDRT 0x40
-#define MR0_SWFNT 0x00
-#define MR0_SWFT 0x80
-
-/*
- * Mode register 1 bit definitions.
- */
-#define MR1_CS5 0x00
-#define MR1_CS6 0x01
-#define MR1_CS7 0x02
-#define MR1_CS8 0x03
-#define MR1_PAREVEN 0x00
-#define MR1_PARODD 0x04
-#define MR1_PARENB 0x00
-#define MR1_PARFORCE 0x08
-#define MR1_PARNONE 0x10
-#define MR1_PARSPECIAL 0x18
-#define MR1_ERRCHAR 0x00
-#define MR1_ERRBLOCK 0x20
-#define MR1_ISRUNMASKED 0x00
-#define MR1_ISRMASKED 0x40
-#define MR1_AUTORTS 0x80
-
-/*
- * Mode register 2 bit definitions.
- */
-#define MR2_STOP1 0x00
-#define MR2_STOP15 0x01
-#define MR2_STOP2 0x02
-#define MR2_STOP916 0x03
-#define MR2_RXFIFORDY 0x00
-#define MR2_RXFIFOHALF 0x04
-#define MR2_RXFIFOHIGH 0x08
-#define MR2_RXFIFOFULL 0x0c
-#define MR2_AUTOCTS 0x10
-#define MR2_TXRTS 0x20
-#define MR2_MODENORM 0x00
-#define MR2_MODEAUTOECHO 0x40
-#define MR2_MODELOOP 0x80
-#define MR2_MODEREMECHO 0xc0
-
-/*****************************************************************************/
-
-/*
- * Baud Rate Generator (BRG) selector values.
- */
-#define BRG_50 0x00
-#define BRG_75 0x01
-#define BRG_150 0x02
-#define BRG_200 0x03
-#define BRG_300 0x04
-#define BRG_450 0x05
-#define BRG_600 0x06
-#define BRG_900 0x07
-#define BRG_1200 0x08
-#define BRG_1800 0x09
-#define BRG_2400 0x0a
-#define BRG_3600 0x0b
-#define BRG_4800 0x0c
-#define BRG_7200 0x0d
-#define BRG_9600 0x0e
-#define BRG_14400 0x0f
-#define BRG_19200 0x10
-#define BRG_28200 0x11
-#define BRG_38400 0x12
-#define BRG_57600 0x13
-#define BRG_115200 0x14
-#define BRG_230400 0x15
-#define BRG_GIN0 0x16
-#define BRG_GIN1 0x17
-#define BRG_CT0 0x18
-#define BRG_CT1 0x19
-#define BRG_RX2TX316 0x1b
-#define BRG_RX2TX31 0x1c
-
-#define SC26198_MAXBAUD 921600
-
-/*****************************************************************************/
-
-/*
- * Command register command definitions.
- */
-#define CR_NULL 0x04
-#define CR_ADDRNORMAL 0x0c
-#define CR_RXRESET 0x14
-#define CR_TXRESET 0x1c
-#define CR_CLEARRXERR 0x24
-#define CR_BREAKRESET 0x2c
-#define CR_TXSTARTBREAK 0x34
-#define CR_TXSTOPBREAK 0x3c
-#define CR_RTSON 0x44
-#define CR_RTSOFF 0x4c
-#define CR_ADDRINIT 0x5c
-#define CR_RXERRBLOCK 0x6c
-#define CR_TXSENDXON 0x84
-#define CR_TXSENDXOFF 0x8c
-#define CR_GANGXONSET 0x94
-#define CR_GANGXOFFSET 0x9c
-#define CR_GANGXONINIT 0xa4
-#define CR_GANGXOFFINIT 0xac
-#define CR_HOSTXON 0xb4
-#define CR_HOSTXOFF 0xbc
-#define CR_CANCELXOFF 0xc4
-#define CR_ADDRRESET 0xdc
-#define CR_RESETALLPORTS 0xf4
-#define CR_RESETALL 0xfc
-
-#define CR_RXENABLE 0x01
-#define CR_TXENABLE 0x02
-
-/*****************************************************************************/
-
-/*
- * Channel status register.
- */
-#define SR_RXRDY 0x01
-#define SR_RXFULL 0x02
-#define SR_TXRDY 0x04
-#define SR_TXEMPTY 0x08
-#define SR_RXOVERRUN 0x10
-#define SR_RXPARITY 0x20
-#define SR_RXFRAMING 0x40
-#define SR_RXBREAK 0x80
-
-#define SR_RXERRS (SR_RXPARITY | SR_RXFRAMING | SR_RXOVERRUN)
-
-/*****************************************************************************/
-
-/*
- * Interrupt status register and interrupt mask register bit definitions.
- */
-#define IR_TXRDY 0x01
-#define IR_RXRDY 0x02
-#define IR_RXBREAK 0x04
-#define IR_XONXOFF 0x10
-#define IR_ADDRRECOG 0x20
-#define IR_RXWATCHDOG 0x40
-#define IR_IOPORT 0x80
-
-/*****************************************************************************/
-
-/*
- * Interrupt vector register field definitions.
- */
-#define IVR_CHANMASK 0x07
-#define IVR_TYPEMASK 0x18
-#define IVR_CONSTMASK 0xc0
-
-#define IVR_RXDATA 0x10
-#define IVR_RXBADDATA 0x18
-#define IVR_TXDATA 0x08
-#define IVR_OTHER 0x00
-
-/*****************************************************************************/
-
-/*
- * BRG timer control register bit definitions.
- */
-#define BRGCTCR_DISABCLK0 0x00
-#define BRGCTCR_ENABCLK0 0x08
-#define BRGCTCR_DISABCLK1 0x00
-#define BRGCTCR_ENABCLK1 0x80
-
-#define BRGCTCR_0SCLK16 0x00
-#define BRGCTCR_0SCLK32 0x01
-#define BRGCTCR_0SCLK64 0x02
-#define BRGCTCR_0SCLK128 0x03
-#define BRGCTCR_0X1 0x04
-#define BRGCTCR_0X12 0x05
-#define BRGCTCR_0IO1A 0x06
-#define BRGCTCR_0GIN0 0x07
-
-#define BRGCTCR_1SCLK16 0x00
-#define BRGCTCR_1SCLK32 0x10
-#define BRGCTCR_1SCLK64 0x20
-#define BRGCTCR_1SCLK128 0x30
-#define BRGCTCR_1X1 0x40
-#define BRGCTCR_1X12 0x50
-#define BRGCTCR_1IO1B 0x60
-#define BRGCTCR_1GIN1 0x70
-
-/*****************************************************************************/
-
-/*
- * Watch dog timer enable register.
- */
-#define WDTRCR_ENABALL 0xff
-
-/*****************************************************************************/
-
-/*
- * XON/XOFF interrupt status register.
- */
-#define XISR_TXCHARMASK 0x03
-#define XISR_TXCHARNORMAL 0x00
-#define XISR_TXWAIT 0x01
-#define XISR_TXXOFFPEND 0x02
-#define XISR_TXXONPEND 0x03
-
-#define XISR_TXFLOWMASK 0x0c
-#define XISR_TXNORMAL 0x00
-#define XISR_TXSTOPPEND 0x04
-#define XISR_TXSTARTED 0x08
-#define XISR_TXSTOPPED 0x0c
-
-#define XISR_RXFLOWMASK 0x30
-#define XISR_RXFLOWNONE 0x00
-#define XISR_RXXONSENT 0x10
-#define XISR_RXXOFFSENT 0x20
-
-#define XISR_RXXONGOT 0x40
-#define XISR_RXXOFFGOT 0x80
-
-/*****************************************************************************/
-
-/*
- * Current interrupt register.
- */
-#define CIR_TYPEMASK 0xc0
-#define CIR_TYPEOTHER 0x00
-#define CIR_TYPETX 0x40
-#define CIR_TYPERXGOOD 0x80
-#define CIR_TYPERXBAD 0xc0
-
-#define CIR_RXDATA 0x80
-#define CIR_RXBADDATA 0x40
-#define CIR_TXDATA 0x40
-
-#define CIR_CHANMASK 0x07
-#define CIR_CNTMASK 0x38
-
-#define CIR_SUBTYPEMASK 0x38
-#define CIR_SUBNONE 0x00
-#define CIR_SUBCOS 0x08
-#define CIR_SUBADDR 0x10
-#define CIR_SUBXONXOFF 0x18
-#define CIR_SUBBREAK 0x28
-
-/*****************************************************************************/
-
-/*
- * Global interrupting channel register.
- */
-#define GICR_CHANMASK 0x07
-
-/*****************************************************************************/
-
-/*
- * Global interrupting byte count register.
- */
-#define GICR_COUNTMASK 0x0f
-
-/*****************************************************************************/
-
-/*
- * Global interrupting type register.
- */
-#define GITR_RXMASK 0xc0
-#define GITR_RXNONE 0x00
-#define GITR_RXBADDATA 0x80
-#define GITR_RXGOODDATA 0xc0
-#define GITR_TXDATA 0x20
-
-#define GITR_SUBTYPEMASK 0x07
-#define GITR_SUBNONE 0x00
-#define GITR_SUBCOS 0x01
-#define GITR_SUBADDR 0x02
-#define GITR_SUBXONXOFF 0x03
-#define GITR_SUBBREAK 0x05
-
-/*****************************************************************************/
-
-/*
- * Input port change register.
- */
-#define IPR_CTS 0x01
-#define IPR_DTR 0x02
-#define IPR_RTS 0x04
-#define IPR_DCD 0x08
-#define IPR_CTSCHANGE 0x10
-#define IPR_DTRCHANGE 0x20
-#define IPR_RTSCHANGE 0x40
-#define IPR_DCDCHANGE 0x80
-
-#define IPR_CHANGEMASK 0xf0
-
-/*****************************************************************************/
-
-/*
- * IO port interrupt and output register.
- */
-#define IOPR_CTS 0x01
-#define IOPR_DTR 0x02
-#define IOPR_RTS 0x04
-#define IOPR_DCD 0x08
-#define IOPR_CTSCOS 0x10
-#define IOPR_DTRCOS 0x20
-#define IOPR_RTSCOS 0x40
-#define IOPR_DCDCOS 0x80
-
-/*****************************************************************************/
-
-/*
- * IO port configuration register.
- */
-#define IOPCR_SETCTS 0x00
-#define IOPCR_SETDTR 0x04
-#define IOPCR_SETRTS 0x10
-#define IOPCR_SETDCD 0x00
-
-#define IOPCR_SETSIGS (IOPCR_SETRTS | IOPCR_SETRTS | IOPCR_SETDTR | IOPCR_SETDCD)
-
-/*****************************************************************************/
-
-/*
- * General purpose output select register.
- */
-#define GPORS_TXC1XA 0x08
-#define GPORS_TXC16XA 0x09
-#define GPORS_RXC16XA 0x0a
-#define GPORS_TXC16XB 0x0b
-#define GPORS_GPOR3 0x0c
-#define GPORS_GPOR2 0x0d
-#define GPORS_GPOR1 0x0e
-#define GPORS_GPOR0 0x0f
-
-/*****************************************************************************/
-
-/*
- * General purpose output register.
- */
-#define GPOR_0 0x01
-#define GPOR_1 0x02
-#define GPOR_2 0x04
-#define GPOR_3 0x08
-
-/*****************************************************************************/
-
-/*
- * General purpose output clock register.
- */
-#define GPORC_0NONE 0x00
-#define GPORC_0GIN0 0x01
-#define GPORC_0GIN1 0x02
-#define GPORC_0IO3A 0x02
-
-#define GPORC_1NONE 0x00
-#define GPORC_1GIN0 0x04
-#define GPORC_1GIN1 0x08
-#define GPORC_1IO3C 0x0c
-
-#define GPORC_2NONE 0x00
-#define GPORC_2GIN0 0x10
-#define GPORC_2GIN1 0x20
-#define GPORC_2IO3E 0x20
-
-#define GPORC_3NONE 0x00
-#define GPORC_3GIN0 0x40
-#define GPORC_3GIN1 0x80
-#define GPORC_3IO3G 0xc0
-
-/*****************************************************************************/
-
-/*
- * General purpose output data register.
- */
-#define GPOD_0MASK 0x03
-#define GPOD_0SET1 0x00
-#define GPOD_0SET0 0x01
-#define GPOD_0SETR0 0x02
-#define GPOD_0SETIO3B 0x03
-
-#define GPOD_1MASK 0x0c
-#define GPOD_1SET1 0x00
-#define GPOD_1SET0 0x04
-#define GPOD_1SETR0 0x08
-#define GPOD_1SETIO3D 0x0c
-
-#define GPOD_2MASK 0x30
-#define GPOD_2SET1 0x00
-#define GPOD_2SET0 0x10
-#define GPOD_2SETR0 0x20
-#define GPOD_2SETIO3F 0x30
-
-#define GPOD_3MASK 0xc0
-#define GPOD_3SET1 0x00
-#define GPOD_3SET0 0x40
-#define GPOD_3SETR0 0x80
-#define GPOD_3SETIO3H 0xc0
-
-/*****************************************************************************/
-#endif
diff --git a/ANDROID_3.4.5/include/linux/scatterlist.h b/ANDROID_3.4.5/include/linux/scatterlist.h
deleted file mode 100644
index ac9586da..00000000
--- a/ANDROID_3.4.5/include/linux/scatterlist.h
+++ /dev/null
@@ -1,269 +0,0 @@
-#ifndef _LINUX_SCATTERLIST_H
-#define _LINUX_SCATTERLIST_H
-
-#include <linux/string.h>
-#include <linux/bug.h>
-#include <linux/mm.h>
-
-#include <asm/types.h>
-#include <asm/scatterlist.h>
-#include <asm/io.h>
-
-struct sg_table {
- struct scatterlist *sgl; /* the list */
- unsigned int nents; /* number of mapped entries */
- unsigned int orig_nents; /* original size of list */
-};
-
-/*
- * Notes on SG table design.
- *
- * Architectures must provide an unsigned long page_link field in the
- * scatterlist struct. We use that to place the page pointer AND encode
- * information about the sg table as well. The two lower bits are reserved
- * for this information.
- *
- * If bit 0 is set, then the page_link contains a pointer to the next sg
- * table list. Otherwise the next entry is at sg + 1.
- *
- * If bit 1 is set, then this sg entry is the last element in a list.
- *
- * See sg_next().
- *
- */
-
-#define SG_MAGIC 0x87654321
-
-/*
- * We overload the LSB of the page pointer to indicate whether it's
- * a valid sg entry, or whether it points to the start of a new scatterlist.
- * Those low bits are there for everyone! (thanks mason :-)
- */
-#define sg_is_chain(sg) ((sg)->page_link & 0x01)
-#define sg_is_last(sg) ((sg)->page_link & 0x02)
-#define sg_chain_ptr(sg) \
- ((struct scatterlist *) ((sg)->page_link & ~0x03))
-
-/**
- * sg_assign_page - Assign a given page to an SG entry
- * @sg: SG entry
- * @page: The page
- *
- * Description:
- * Assign page to sg entry. Also see sg_set_page(), the most commonly used
- * variant.
- *
- **/
-static inline void sg_assign_page(struct scatterlist *sg, struct page *page)
-{
- unsigned long page_link = sg->page_link & 0x3;
-
- /*
- * In order for the low bit stealing approach to work, pages
- * must be aligned at a 32-bit boundary as a minimum.
- */
- BUG_ON((unsigned long) page & 0x03);
-#ifdef CONFIG_DEBUG_SG
- BUG_ON(sg->sg_magic != SG_MAGIC);
- BUG_ON(sg_is_chain(sg));
-#endif
- sg->page_link = page_link | (unsigned long) page;
-}
-
-/**
- * sg_set_page - Set sg entry to point at given page
- * @sg: SG entry
- * @page: The page
- * @len: Length of data
- * @offset: Offset into page
- *
- * Description:
- * Use this function to set an sg entry pointing at a page, never assign
- * the page directly. We encode sg table information in the lower bits
- * of the page pointer. See sg_page() for looking up the page belonging
- * to an sg entry.
- *
- **/
-static inline void sg_set_page(struct scatterlist *sg, struct page *page,
- unsigned int len, unsigned int offset)
-{
- sg_assign_page(sg, page);
- sg->offset = offset;
- sg->length = len;
-}
-
-static inline struct page *sg_page(struct scatterlist *sg)
-{
-#ifdef CONFIG_DEBUG_SG
- BUG_ON(sg->sg_magic != SG_MAGIC);
- BUG_ON(sg_is_chain(sg));
-#endif
- return (struct page *)((sg)->page_link & ~0x3);
-}
-
-/**
- * sg_set_buf - Set sg entry to point at given data
- * @sg: SG entry
- * @buf: Data
- * @buflen: Data length
- *
- **/
-static inline void sg_set_buf(struct scatterlist *sg, const void *buf,
- unsigned int buflen)
-{
- sg_set_page(sg, virt_to_page(buf), buflen, offset_in_page(buf));
-}
-
-/*
- * Loop over each sg element, following the pointer to a new list if necessary
- */
-#define for_each_sg(sglist, sg, nr, __i) \
- for (__i = 0, sg = (sglist); __i < (nr); __i++, sg = sg_next(sg))
-
-/**
- * sg_chain - Chain two sglists together
- * @prv: First scatterlist
- * @prv_nents: Number of entries in prv
- * @sgl: Second scatterlist
- *
- * Description:
- * Links @prv@ and @sgl@ together, to form a longer scatterlist.
- *
- **/
-static inline void sg_chain(struct scatterlist *prv, unsigned int prv_nents,
- struct scatterlist *sgl)
-{
-#ifndef ARCH_HAS_SG_CHAIN
- BUG();
-#endif
-
- /*
- * offset and length are unused for chain entry. Clear them.
- */
- prv[prv_nents - 1].offset = 0;
- prv[prv_nents - 1].length = 0;
-
- /*
- * Set lowest bit to indicate a link pointer, and make sure to clear
- * the termination bit if it happens to be set.
- */
- prv[prv_nents - 1].page_link = ((unsigned long) sgl | 0x01) & ~0x02;
-}
-
-/**
- * sg_mark_end - Mark the end of the scatterlist
- * @sg: SG entryScatterlist
- *
- * Description:
- * Marks the passed in sg entry as the termination point for the sg
- * table. A call to sg_next() on this entry will return NULL.
- *
- **/
-static inline void sg_mark_end(struct scatterlist *sg)
-{
-#ifdef CONFIG_DEBUG_SG
- BUG_ON(sg->sg_magic != SG_MAGIC);
-#endif
- /*
- * Set termination bit, clear potential chain bit
- */
- sg->page_link |= 0x02;
- sg->page_link &= ~0x01;
-}
-
-/**
- * sg_phys - Return physical address of an sg entry
- * @sg: SG entry
- *
- * Description:
- * This calls page_to_phys() on the page in this sg entry, and adds the
- * sg offset. The caller must know that it is legal to call page_to_phys()
- * on the sg page.
- *
- **/
-static inline dma_addr_t sg_phys(struct scatterlist *sg)
-{
- return page_to_phys(sg_page(sg)) + sg->offset;
-}
-
-/**
- * sg_virt - Return virtual address of an sg entry
- * @sg: SG entry
- *
- * Description:
- * This calls page_address() on the page in this sg entry, and adds the
- * sg offset. The caller must know that the sg page has a valid virtual
- * mapping.
- *
- **/
-static inline void *sg_virt(struct scatterlist *sg)
-{
- return page_address(sg_page(sg)) + sg->offset;
-}
-
-struct scatterlist *sg_next(struct scatterlist *);
-struct scatterlist *sg_last(struct scatterlist *s, unsigned int);
-void sg_init_table(struct scatterlist *, unsigned int);
-void sg_init_one(struct scatterlist *, const void *, unsigned int);
-
-typedef struct scatterlist *(sg_alloc_fn)(unsigned int, gfp_t);
-typedef void (sg_free_fn)(struct scatterlist *, unsigned int);
-
-void __sg_free_table(struct sg_table *, unsigned int, sg_free_fn *);
-void sg_free_table(struct sg_table *);
-int __sg_alloc_table(struct sg_table *, unsigned int, unsigned int, gfp_t,
- sg_alloc_fn *);
-int sg_alloc_table(struct sg_table *, unsigned int, gfp_t);
-
-size_t sg_copy_from_buffer(struct scatterlist *sgl, unsigned int nents,
- void *buf, size_t buflen);
-size_t sg_copy_to_buffer(struct scatterlist *sgl, unsigned int nents,
- void *buf, size_t buflen);
-
-/*
- * Maximum number of entries that will be allocated in one piece, if
- * a list larger than this is required then chaining will be utilized.
- */
-#define SG_MAX_SINGLE_ALLOC (PAGE_SIZE / sizeof(struct scatterlist))
-
-
-/*
- * Mapping sg iterator
- *
- * Iterates over sg entries mapping page-by-page. On each successful
- * iteration, @miter->page points to the mapped page and
- * @miter->length bytes of data can be accessed at @miter->addr. As
- * long as an interation is enclosed between start and stop, the user
- * is free to choose control structure and when to stop.
- *
- * @miter->consumed is set to @miter->length on each iteration. It
- * can be adjusted if the user can't consume all the bytes in one go.
- * Also, a stopped iteration can be resumed by calling next on it.
- * This is useful when iteration needs to release all resources and
- * continue later (e.g. at the next interrupt).
- */
-
-#define SG_MITER_ATOMIC (1 << 0) /* use kmap_atomic */
-#define SG_MITER_TO_SG (1 << 1) /* flush back to phys on unmap */
-#define SG_MITER_FROM_SG (1 << 2) /* nop */
-
-struct sg_mapping_iter {
- /* the following three fields can be accessed directly */
- struct page *page; /* currently mapped page */
- void *addr; /* pointer to the mapped area */
- size_t length; /* length of the mapped area */
- size_t consumed; /* number of consumed bytes */
-
- /* these are internal states, keep away */
- struct scatterlist *__sg; /* current entry */
- unsigned int __nents; /* nr of remaining entries */
- unsigned int __offset; /* offset within sg */
- unsigned int __flags;
-};
-
-void sg_miter_start(struct sg_mapping_iter *miter, struct scatterlist *sgl,
- unsigned int nents, unsigned int flags);
-bool sg_miter_next(struct sg_mapping_iter *miter);
-void sg_miter_stop(struct sg_mapping_iter *miter);
-
-#endif /* _LINUX_SCATTERLIST_H */
diff --git a/ANDROID_3.4.5/include/linux/scc.h b/ANDROID_3.4.5/include/linux/scc.h
deleted file mode 100644
index 3495bd95..00000000
--- a/ANDROID_3.4.5/include/linux/scc.h
+++ /dev/null
@@ -1,252 +0,0 @@
-/* $Id: scc.h,v 1.29 1997/04/02 14:56:45 jreuter Exp jreuter $ */
-
-#ifndef _SCC_H
-#define _SCC_H
-
-
-/* selection of hardware types */
-
-#define PA0HZP 0x00 /* hardware type for PA0HZP SCC card and compatible */
-#define EAGLE 0x01 /* hardware type for EAGLE card */
-#define PC100 0x02 /* hardware type for PC100 card */
-#define PRIMUS 0x04 /* hardware type for PRIMUS-PC (DG9BL) card */
-#define DRSI 0x08 /* hardware type for DRSI PC*Packet card */
-#define BAYCOM 0x10 /* hardware type for BayCom (U)SCC */
-
-/* DEV ioctl() commands */
-
-enum SCC_ioctl_cmds {
- SIOCSCCRESERVED = SIOCDEVPRIVATE,
- SIOCSCCCFG,
- SIOCSCCINI,
- SIOCSCCCHANINI,
- SIOCSCCSMEM,
- SIOCSCCGKISS,
- SIOCSCCSKISS,
- SIOCSCCGSTAT,
- SIOCSCCCAL
-};
-
-/* Device parameter control (from WAMPES) */
-
-enum L1_params {
- PARAM_DATA,
- PARAM_TXDELAY,
- PARAM_PERSIST,
- PARAM_SLOTTIME,
- PARAM_TXTAIL,
- PARAM_FULLDUP,
- PARAM_SOFTDCD, /* was: PARAM_HW */
- PARAM_MUTE, /* ??? */
- PARAM_DTR,
- PARAM_RTS,
- PARAM_SPEED,
- PARAM_ENDDELAY, /* ??? */
- PARAM_GROUP,
- PARAM_IDLE,
- PARAM_MIN,
- PARAM_MAXKEY,
- PARAM_WAIT,
- PARAM_MAXDEFER,
- PARAM_TX,
- PARAM_HWEVENT = 31,
- PARAM_RETURN = 255 /* reset kiss mode */
-};
-
-/* fulldup parameter */
-
-enum FULLDUP_modes {
- KISS_DUPLEX_HALF, /* normal CSMA operation */
- KISS_DUPLEX_FULL, /* fullduplex, key down trx after transmission */
- KISS_DUPLEX_LINK, /* fullduplex, key down trx after 'idletime' sec */
- KISS_DUPLEX_OPTIMA /* fullduplex, let the protocol layer control the hw */
-};
-
-/* misc. parameters */
-
-#define TIMER_OFF 65535U /* to switch off timers */
-#define NO_SUCH_PARAM 65534U /* param not implemented */
-
-/* HWEVENT parameter */
-
-enum HWEVENT_opts {
- HWEV_DCD_ON,
- HWEV_DCD_OFF,
- HWEV_ALL_SENT
-};
-
-/* channel grouping */
-
-#define RXGROUP 0100 /* if set, only tx when all channels clear */
-#define TXGROUP 0200 /* if set, don't transmit simultaneously */
-
-/* Tx/Rx clock sources */
-
-enum CLOCK_sources {
- CLK_DPLL, /* normal halfduplex operation */
- CLK_EXTERNAL, /* external clocking (G3RUH/DF9IC modems) */
- CLK_DIVIDER, /* Rx = DPLL, Tx = divider (fullduplex with */
- /* modems without clock regeneration */
- CLK_BRG /* experimental fullduplex mode with DPLL/BRG for */
- /* MODEMs without clock recovery */
-};
-
-/* Tx state */
-
-enum TX_state {
- TXS_IDLE, /* Transmitter off, no data pending */
- TXS_BUSY, /* waiting for permission to send / tailtime */
- TXS_ACTIVE, /* Transmitter on, sending data */
- TXS_NEWFRAME, /* reset CRC and send (next) frame */
- TXS_IDLE2, /* Transmitter on, no data pending */
- TXS_WAIT, /* Waiting for Mintime to expire */
- TXS_TIMEOUT /* We had a transmission timeout */
-};
-
-typedef unsigned long io_port; /* type definition for an 'io port address' */
-
-/* SCC statistical information */
-
-struct scc_stat {
- long rxints; /* Receiver interrupts */
- long txints; /* Transmitter interrupts */
- long exints; /* External/status interrupts */
- long spints; /* Special receiver interrupts */
-
- long txframes; /* Packets sent */
- long rxframes; /* Number of Frames Actually Received */
- long rxerrs; /* CRC Errors */
- long txerrs; /* KISS errors */
-
- unsigned int nospace; /* "Out of buffers" */
- unsigned int rx_over; /* Receiver Overruns */
- unsigned int tx_under; /* Transmitter Underruns */
-
- unsigned int tx_state; /* Transmitter state */
- int tx_queued; /* tx frames enqueued */
-
- unsigned int maxqueue; /* allocated tx_buffers */
- unsigned int bufsize; /* used buffersize */
-};
-
-struct scc_modem {
- long speed; /* Line speed, bps */
- char clocksrc; /* 0 = DPLL, 1 = external, 2 = divider */
- char nrz; /* NRZ instead of NRZI */
-};
-
-struct scc_kiss_cmd {
- int command; /* one of the KISS-Commands defined above */
- unsigned param; /* KISS-Param */
-};
-
-struct scc_hw_config {
- io_port data_a; /* data port channel A */
- io_port ctrl_a; /* control port channel A */
- io_port data_b; /* data port channel B */
- io_port ctrl_b; /* control port channel B */
- io_port vector_latch; /* INTACK-Latch (#) */
- io_port special; /* special function port */
-
- int irq; /* irq */
- long clock; /* clock */
- char option; /* command for function port */
-
- char brand; /* hardware type */
- char escc; /* use ext. features of a 8580/85180/85280 */
-};
-
-/* (#) only one INTACK latch allowed. */
-
-
-struct scc_mem_config {
- unsigned int dummy;
- unsigned int bufsize;
-};
-
-struct scc_calibrate {
- unsigned int time;
- unsigned char pattern;
-};
-
-#ifdef __KERNEL__
-
-enum {TX_OFF, TX_ON}; /* command for scc_key_trx() */
-
-/* Vector masks in RR2B */
-
-#define VECTOR_MASK 0x06
-#define TXINT 0x00
-#define EXINT 0x02
-#define RXINT 0x04
-#define SPINT 0x06
-
-#ifdef CONFIG_SCC_DELAY
-#define Inb(port) inb_p(port)
-#define Outb(port, val) outb_p(val, port)
-#else
-#define Inb(port) inb(port)
-#define Outb(port, val) outb(val, port)
-#endif
-
-/* SCC channel control structure for KISS */
-
-struct scc_kiss {
- unsigned char txdelay; /* Transmit Delay 10 ms/cnt */
- unsigned char persist; /* Persistence (0-255) as a % */
- unsigned char slottime; /* Delay to wait on persistence hit */
- unsigned char tailtime; /* Delay after last byte written */
- unsigned char fulldup; /* Full Duplex mode 0=CSMA 1=DUP 2=ALWAYS KEYED */
- unsigned char waittime; /* Waittime before any transmit attempt */
- unsigned int maxkeyup; /* Maximum time to transmit (seconds) */
- unsigned int mintime; /* Minimal offtime after MAXKEYUP timeout (seconds) */
- unsigned int idletime; /* Maximum idle time in ALWAYS KEYED mode (seconds) */
- unsigned int maxdefer; /* Timer for CSMA channel busy limit */
- unsigned char tx_inhibit; /* Transmit is not allowed when set */
- unsigned char group; /* Group ID for AX.25 TX interlocking */
- unsigned char mode; /* 'normal' or 'hwctrl' mode (unused) */
- unsigned char softdcd; /* Use DPLL instead of DCD pin for carrier detect */
-};
-
-
-/* SCC channel structure */
-
-struct scc_channel {
- int init; /* channel exists? */
-
- struct net_device *dev; /* link to device control structure */
- struct net_device_stats dev_stat;/* device statistics */
-
- char brand; /* manufacturer of the board */
- long clock; /* used clock */
-
- io_port ctrl; /* I/O address of CONTROL register */
- io_port data; /* I/O address of DATA register */
- io_port special; /* I/O address of special function port */
- int irq; /* Number of Interrupt */
-
- char option;
- char enhanced; /* Enhanced SCC support */
-
- unsigned char wreg[16]; /* Copy of last written value in WRx */
- unsigned char status; /* Copy of R0 at last external interrupt */
- unsigned char dcd; /* DCD status */
-
- struct scc_kiss kiss; /* control structure for KISS params */
- struct scc_stat stat; /* statistical information */
- struct scc_modem modem; /* modem information */
-
- struct sk_buff_head tx_queue; /* next tx buffer */
- struct sk_buff *rx_buff; /* pointer to frame currently received */
- struct sk_buff *tx_buff; /* pointer to frame currently transmitted */
-
- /* Timer */
- struct timer_list tx_t; /* tx timer for this channel */
- struct timer_list tx_wdog; /* tx watchdogs */
-
- /* Channel lock */
- spinlock_t lock; /* Channel guard lock */
-};
-
-#endif /* defined(__KERNEL__) */
-#endif /* defined(_SCC_H) */
diff --git a/ANDROID_3.4.5/include/linux/sched.h b/ANDROID_3.4.5/include/linux/sched.h
deleted file mode 100644
index 5fb37196..00000000
--- a/ANDROID_3.4.5/include/linux/sched.h
+++ /dev/null
@@ -1,2826 +0,0 @@
-#ifndef _LINUX_SCHED_H
-#define _LINUX_SCHED_H
-
-/*
- * cloning flags:
- */
-#define CSIGNAL 0x000000ff /* signal mask to be sent at exit */
-#define CLONE_VM 0x00000100 /* set if VM shared between processes */
-#define CLONE_FS 0x00000200 /* set if fs info shared between processes */
-#define CLONE_FILES 0x00000400 /* set if open files shared between processes */
-#define CLONE_SIGHAND 0x00000800 /* set if signal handlers and blocked signals shared */
-#define CLONE_PTRACE 0x00002000 /* set if we want to let tracing continue on the child too */
-#define CLONE_VFORK 0x00004000 /* set if the parent wants the child to wake it up on mm_release */
-#define CLONE_PARENT 0x00008000 /* set if we want to have the same parent as the cloner */
-#define CLONE_THREAD 0x00010000 /* Same thread group? */
-#define CLONE_NEWNS 0x00020000 /* New namespace group? */
-#define CLONE_SYSVSEM 0x00040000 /* share system V SEM_UNDO semantics */
-#define CLONE_SETTLS 0x00080000 /* create a new TLS for the child */
-#define CLONE_PARENT_SETTID 0x00100000 /* set the TID in the parent */
-#define CLONE_CHILD_CLEARTID 0x00200000 /* clear the TID in the child */
-#define CLONE_DETACHED 0x00400000 /* Unused, ignored */
-#define CLONE_UNTRACED 0x00800000 /* set if the tracing process can't force CLONE_PTRACE on this clone */
-#define CLONE_CHILD_SETTID 0x01000000 /* set the TID in the child */
-/* 0x02000000 was previously the unused CLONE_STOPPED (Start in stopped state)
- and is now available for re-use. */
-#define CLONE_NEWUTS 0x04000000 /* New utsname group? */
-#define CLONE_NEWIPC 0x08000000 /* New ipcs */
-#define CLONE_NEWUSER 0x10000000 /* New user namespace */
-#define CLONE_NEWPID 0x20000000 /* New pid namespace */
-#define CLONE_NEWNET 0x40000000 /* New network namespace */
-#define CLONE_IO 0x80000000 /* Clone io context */
-
-/*
- * Scheduling policies
- */
-#define SCHED_NORMAL 0
-#define SCHED_FIFO 1
-#define SCHED_RR 2
-#define SCHED_BATCH 3
-/* SCHED_ISO: reserved but not implemented yet */
-#define SCHED_IDLE 5
-/* Can be ORed in to make sure the process is reverted back to SCHED_NORMAL on fork */
-#define SCHED_RESET_ON_FORK 0x40000000
-
-#ifdef __KERNEL__
-
-struct sched_param {
- int sched_priority;
-};
-
-#include <asm/param.h> /* for HZ */
-
-#include <linux/capability.h>
-#include <linux/threads.h>
-#include <linux/kernel.h>
-#include <linux/types.h>
-#include <linux/timex.h>
-#include <linux/jiffies.h>
-#include <linux/rbtree.h>
-#include <linux/thread_info.h>
-#include <linux/cpumask.h>
-#include <linux/errno.h>
-#include <linux/nodemask.h>
-#include <linux/mm_types.h>
-
-#include <asm/page.h>
-#include <asm/ptrace.h>
-#include <asm/cputime.h>
-
-#include <linux/smp.h>
-#include <linux/sem.h>
-#include <linux/signal.h>
-#include <linux/compiler.h>
-#include <linux/completion.h>
-#include <linux/pid.h>
-#include <linux/percpu.h>
-#include <linux/topology.h>
-#include <linux/proportions.h>
-#include <linux/seccomp.h>
-#include <linux/rcupdate.h>
-#include <linux/rculist.h>
-#include <linux/rtmutex.h>
-
-#include <linux/time.h>
-#include <linux/param.h>
-#include <linux/resource.h>
-#include <linux/timer.h>
-#include <linux/hrtimer.h>
-#include <linux/task_io_accounting.h>
-#include <linux/latencytop.h>
-#include <linux/cred.h>
-#include <linux/llist.h>
-
-#include <asm/processor.h>
-
-struct exec_domain;
-struct futex_pi_state;
-struct robust_list_head;
-struct bio_list;
-struct fs_struct;
-struct perf_event_context;
-struct blk_plug;
-
-/*
- * List of flags we want to share for kernel threads,
- * if only because they are not used by them anyway.
- */
-#define CLONE_KERNEL (CLONE_FS | CLONE_FILES | CLONE_SIGHAND)
-
-/*
- * These are the constant used to fake the fixed-point load-average
- * counting. Some notes:
- * - 11 bit fractions expand to 22 bits by the multiplies: this gives
- * a load-average precision of 10 bits integer + 11 bits fractional
- * - if you want to count load-averages more often, you need more
- * precision, or rounding will get you. With 2-second counting freq,
- * the EXP_n values would be 1981, 2034 and 2043 if still using only
- * 11 bit fractions.
- */
-extern unsigned long avenrun[]; /* Load averages */
-extern void get_avenrun(unsigned long *loads, unsigned long offset, int shift);
-
-#define FSHIFT 11 /* nr of bits of precision */
-#define FIXED_1 (1<<FSHIFT) /* 1.0 as fixed-point */
-#define LOAD_FREQ (5*HZ+1) /* 5 sec intervals */
-#define EXP_1 1884 /* 1/exp(5sec/1min) as fixed-point */
-#define EXP_5 2014 /* 1/exp(5sec/5min) */
-#define EXP_15 2037 /* 1/exp(5sec/15min) */
-
-#define CALC_LOAD(load,exp,n) \
- load *= exp; \
- load += n*(FIXED_1-exp); \
- load >>= FSHIFT;
-
-extern unsigned long total_forks;
-extern int nr_threads;
-DECLARE_PER_CPU(unsigned long, process_counts);
-extern int nr_processes(void);
-extern unsigned long nr_running(void);
-extern unsigned long nr_uninterruptible(void);
-extern unsigned long nr_iowait(void);
-extern unsigned long nr_iowait_cpu(int cpu);
-extern unsigned long this_cpu_load(void);
-
-
-extern void calc_global_load(unsigned long ticks);
-
-extern unsigned long get_parent_ip(unsigned long addr);
-
-struct seq_file;
-struct cfs_rq;
-struct task_group;
-#ifdef CONFIG_SCHED_DEBUG
-extern void proc_sched_show_task(struct task_struct *p, struct seq_file *m);
-extern void proc_sched_set_task(struct task_struct *p);
-extern void
-print_cfs_rq(struct seq_file *m, int cpu, struct cfs_rq *cfs_rq);
-#else
-static inline void
-proc_sched_show_task(struct task_struct *p, struct seq_file *m)
-{
-}
-static inline void proc_sched_set_task(struct task_struct *p)
-{
-}
-static inline void
-print_cfs_rq(struct seq_file *m, int cpu, struct cfs_rq *cfs_rq)
-{
-}
-#endif
-
-/*
- * Task state bitmask. NOTE! These bits are also
- * encoded in fs/proc/array.c: get_task_state().
- *
- * We have two separate sets of flags: task->state
- * is about runnability, while task->exit_state are
- * about the task exiting. Confusing, but this way
- * modifying one set can't modify the other one by
- * mistake.
- */
-#define TASK_RUNNING 0
-#define TASK_INTERRUPTIBLE 1
-#define TASK_UNINTERRUPTIBLE 2
-#define __TASK_STOPPED 4
-#define __TASK_TRACED 8
-/* in tsk->exit_state */
-#define EXIT_ZOMBIE 16
-#define EXIT_DEAD 32
-/* in tsk->state again */
-#define TASK_DEAD 64
-#define TASK_WAKEKILL 128
-#define TASK_WAKING 256
-#define TASK_STATE_MAX 512
-
-#define TASK_STATE_TO_CHAR_STR "RSDTtZXxKW"
-
-extern char ___assert_task_state[1 - 2*!!(
- sizeof(TASK_STATE_TO_CHAR_STR)-1 != ilog2(TASK_STATE_MAX)+1)];
-
-/* Convenience macros for the sake of set_task_state */
-#define TASK_KILLABLE (TASK_WAKEKILL | TASK_UNINTERRUPTIBLE)
-#define TASK_STOPPED (TASK_WAKEKILL | __TASK_STOPPED)
-#define TASK_TRACED (TASK_WAKEKILL | __TASK_TRACED)
-
-/* Convenience macros for the sake of wake_up */
-#define TASK_NORMAL (TASK_INTERRUPTIBLE | TASK_UNINTERRUPTIBLE)
-#define TASK_ALL (TASK_NORMAL | __TASK_STOPPED | __TASK_TRACED)
-
-/* get_task_state() */
-#define TASK_REPORT (TASK_RUNNING | TASK_INTERRUPTIBLE | \
- TASK_UNINTERRUPTIBLE | __TASK_STOPPED | \
- __TASK_TRACED)
-
-#define task_is_traced(task) ((task->state & __TASK_TRACED) != 0)
-#define task_is_stopped(task) ((task->state & __TASK_STOPPED) != 0)
-#define task_is_dead(task) ((task)->exit_state != 0)
-#define task_is_stopped_or_traced(task) \
- ((task->state & (__TASK_STOPPED | __TASK_TRACED)) != 0)
-#define task_contributes_to_load(task) \
- ((task->state & TASK_UNINTERRUPTIBLE) != 0 && \
- (task->flags & PF_FROZEN) == 0)
-
-#define __set_task_state(tsk, state_value) \
- do { (tsk)->state = (state_value); } while (0)
-#define set_task_state(tsk, state_value) \
- set_mb((tsk)->state, (state_value))
-
-/*
- * set_current_state() includes a barrier so that the write of current->state
- * is correctly serialised wrt the caller's subsequent test of whether to
- * actually sleep:
- *
- * set_current_state(TASK_UNINTERRUPTIBLE);
- * if (do_i_need_to_sleep())
- * schedule();
- *
- * If the caller does not need such serialisation then use __set_current_state()
- */
-#define __set_current_state(state_value) \
- do { current->state = (state_value); } while (0)
-#define set_current_state(state_value) \
- set_mb(current->state, (state_value))
-
-/* Task command name length */
-#define TASK_COMM_LEN 16
-
-#include <linux/spinlock.h>
-
-/*
- * This serializes "schedule()" and also protects
- * the run-queue from deletions/modifications (but
- * _adding_ to the beginning of the run-queue has
- * a separate lock).
- */
-extern rwlock_t tasklist_lock;
-extern spinlock_t mmlist_lock;
-
-struct task_struct;
-
-#ifdef CONFIG_PROVE_RCU
-extern int lockdep_tasklist_lock_is_held(void);
-#endif /* #ifdef CONFIG_PROVE_RCU */
-
-extern void sched_init(void);
-extern void sched_init_smp(void);
-extern asmlinkage void schedule_tail(struct task_struct *prev);
-extern void init_idle(struct task_struct *idle, int cpu);
-extern void init_idle_bootup_task(struct task_struct *idle);
-
-extern int runqueue_is_locked(int cpu);
-
-#if defined(CONFIG_SMP) && defined(CONFIG_NO_HZ)
-extern void select_nohz_load_balancer(int stop_tick);
-extern void set_cpu_sd_state_idle(void);
-extern int get_nohz_timer_target(void);
-#else
-static inline void select_nohz_load_balancer(int stop_tick) { }
-static inline void set_cpu_sd_state_idle(void) { }
-#endif
-
-/*
- * Only dump TASK_* tasks. (0 for all tasks)
- */
-extern void show_state_filter(unsigned long state_filter);
-
-static inline void show_state(void)
-{
- show_state_filter(0);
-}
-
-extern void show_regs(struct pt_regs *);
-
-/*
- * TASK is a pointer to the task whose backtrace we want to see (or NULL for current
- * task), SP is the stack pointer of the first frame that should be shown in the back
- * trace (or NULL if the entire call-chain of the task should be shown).
- */
-extern void show_stack(struct task_struct *task, unsigned long *sp);
-
-void io_schedule(void);
-long io_schedule_timeout(long timeout);
-
-extern void cpu_init (void);
-extern void trap_init(void);
-extern void update_process_times(int user);
-extern void scheduler_tick(void);
-
-extern void sched_show_task(struct task_struct *p);
-
-#ifdef CONFIG_LOCKUP_DETECTOR
-extern void touch_softlockup_watchdog(void);
-extern void touch_softlockup_watchdog_sync(void);
-extern void touch_all_softlockup_watchdogs(void);
-extern int proc_dowatchdog_thresh(struct ctl_table *table, int write,
- void __user *buffer,
- size_t *lenp, loff_t *ppos);
-extern unsigned int softlockup_panic;
-void lockup_detector_init(void);
-#else
-static inline void touch_softlockup_watchdog(void)
-{
-}
-static inline void touch_softlockup_watchdog_sync(void)
-{
-}
-static inline void touch_all_softlockup_watchdogs(void)
-{
-}
-static inline void lockup_detector_init(void)
-{
-}
-#endif
-
-#ifdef CONFIG_DETECT_HUNG_TASK
-extern unsigned int sysctl_hung_task_panic;
-extern unsigned long sysctl_hung_task_check_count;
-extern unsigned long sysctl_hung_task_timeout_secs;
-extern unsigned long sysctl_hung_task_warnings;
-extern int proc_dohung_task_timeout_secs(struct ctl_table *table, int write,
- void __user *buffer,
- size_t *lenp, loff_t *ppos);
-#else
-/* Avoid need for ifdefs elsewhere in the code */
-enum { sysctl_hung_task_timeout_secs = 0 };
-#endif
-
-/* Attach to any functions which should be ignored in wchan output. */
-#define __sched __attribute__((__section__(".sched.text")))
-
-/* Linker adds these: start and end of __sched functions */
-extern char __sched_text_start[], __sched_text_end[];
-
-/* Is this address in the __sched functions? */
-extern int in_sched_functions(unsigned long addr);
-
-#define MAX_SCHEDULE_TIMEOUT LONG_MAX
-extern signed long schedule_timeout(signed long timeout);
-extern signed long schedule_timeout_interruptible(signed long timeout);
-extern signed long schedule_timeout_killable(signed long timeout);
-extern signed long schedule_timeout_uninterruptible(signed long timeout);
-asmlinkage void schedule(void);
-extern void schedule_preempt_disabled(void);
-extern int mutex_spin_on_owner(struct mutex *lock, struct task_struct *owner);
-
-struct nsproxy;
-struct user_namespace;
-
-/*
- * Default maximum number of active map areas, this limits the number of vmas
- * per mm struct. Users can overwrite this number by sysctl but there is a
- * problem.
- *
- * When a program's coredump is generated as ELF format, a section is created
- * per a vma. In ELF, the number of sections is represented in unsigned short.
- * This means the number of sections should be smaller than 65535 at coredump.
- * Because the kernel adds some informative sections to a image of program at
- * generating coredump, we need some margin. The number of extra sections is
- * 1-3 now and depends on arch. We use "5" as safe margin, here.
- */
-#define MAPCOUNT_ELF_CORE_MARGIN (5)
-#define DEFAULT_MAX_MAP_COUNT (USHRT_MAX - MAPCOUNT_ELF_CORE_MARGIN)
-
-extern int sysctl_max_map_count;
-
-#include <linux/aio.h>
-
-#ifdef CONFIG_MMU
-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_area_topdown(struct file *filp, unsigned long addr,
- unsigned long len, unsigned long pgoff,
- unsigned long flags);
-extern void arch_unmap_area(struct mm_struct *, unsigned long);
-extern void arch_unmap_area_topdown(struct mm_struct *, unsigned long);
-#else
-static inline void arch_pick_mmap_layout(struct mm_struct *mm) {}
-#endif
-
-
-extern void set_dumpable(struct mm_struct *mm, int value);
-extern int get_dumpable(struct mm_struct *mm);
-
-/* mm flags */
-/* dumpable bits */
-#define MMF_DUMPABLE 0 /* core dump is permitted */
-#define MMF_DUMP_SECURELY 1 /* core file is readable only by root */
-
-#define MMF_DUMPABLE_BITS 2
-#define MMF_DUMPABLE_MASK ((1 << MMF_DUMPABLE_BITS) - 1)
-
-/* coredump filter bits */
-#define MMF_DUMP_ANON_PRIVATE 2
-#define MMF_DUMP_ANON_SHARED 3
-#define MMF_DUMP_MAPPED_PRIVATE 4
-#define MMF_DUMP_MAPPED_SHARED 5
-#define MMF_DUMP_ELF_HEADERS 6
-#define MMF_DUMP_HUGETLB_PRIVATE 7
-#define MMF_DUMP_HUGETLB_SHARED 8
-
-#define MMF_DUMP_FILTER_SHIFT MMF_DUMPABLE_BITS
-#define MMF_DUMP_FILTER_BITS 7
-#define MMF_DUMP_FILTER_MASK \
- (((1 << MMF_DUMP_FILTER_BITS) - 1) << MMF_DUMP_FILTER_SHIFT)
-#define MMF_DUMP_FILTER_DEFAULT \
- ((1 << MMF_DUMP_ANON_PRIVATE) | (1 << MMF_DUMP_ANON_SHARED) |\
- (1 << MMF_DUMP_HUGETLB_PRIVATE) | MMF_DUMP_MASK_DEFAULT_ELF)
-
-#ifdef CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS
-# define MMF_DUMP_MASK_DEFAULT_ELF (1 << MMF_DUMP_ELF_HEADERS)
-#else
-# define MMF_DUMP_MASK_DEFAULT_ELF 0
-#endif
- /* leave room for more dump flags */
-#define MMF_VM_MERGEABLE 16 /* KSM may merge identical pages */
-#define MMF_VM_HUGEPAGE 17 /* set when VM_HUGEPAGE is set on vma */
-
-#define MMF_INIT_MASK (MMF_DUMPABLE_MASK | MMF_DUMP_FILTER_MASK)
-
-struct sighand_struct {
- atomic_t count;
- struct k_sigaction action[_NSIG];
- spinlock_t siglock;
- wait_queue_head_t signalfd_wqh;
-};
-
-struct pacct_struct {
- int ac_flag;
- long ac_exitcode;
- unsigned long ac_mem;
- cputime_t ac_utime, ac_stime;
- unsigned long ac_minflt, ac_majflt;
-};
-
-struct cpu_itimer {
- cputime_t expires;
- cputime_t incr;
- u32 error;
- u32 incr_error;
-};
-
-/**
- * struct task_cputime - collected CPU time counts
- * @utime: time spent in user mode, in &cputime_t units
- * @stime: time spent in kernel mode, in &cputime_t units
- * @sum_exec_runtime: total time spent on the CPU, in nanoseconds
- *
- * This structure groups together three kinds of CPU time that are
- * tracked for threads and thread groups. Most things considering
- * CPU time want to group these counts together and treat all three
- * of them in parallel.
- */
-struct task_cputime {
- cputime_t utime;
- cputime_t stime;
- unsigned long long sum_exec_runtime;
-};
-/* Alternate field names when used to cache expirations. */
-#define prof_exp stime
-#define virt_exp utime
-#define sched_exp sum_exec_runtime
-
-#define INIT_CPUTIME \
- (struct task_cputime) { \
- .utime = 0, \
- .stime = 0, \
- .sum_exec_runtime = 0, \
- }
-
-/*
- * Disable preemption until the scheduler is running.
- * Reset by start_kernel()->sched_init()->init_idle().
- *
- * We include PREEMPT_ACTIVE to avoid cond_resched() from working
- * before the scheduler is active -- see should_resched().
- */
-#define INIT_PREEMPT_COUNT (1 + PREEMPT_ACTIVE)
-
-/**
- * struct thread_group_cputimer - thread group interval timer counts
- * @cputime: thread group interval timers.
- * @running: non-zero when there are timers running and
- * @cputime receives updates.
- * @lock: lock for fields in this struct.
- *
- * This structure contains the version of task_cputime, above, that is
- * used for thread group CPU timer calculations.
- */
-struct thread_group_cputimer {
- struct task_cputime cputime;
- int running;
- raw_spinlock_t lock;
-};
-
-#include <linux/rwsem.h>
-struct autogroup;
-
-/*
- * NOTE! "signal_struct" does not have its own
- * locking, because a shared signal_struct always
- * implies a shared sighand_struct, so locking
- * sighand_struct is always a proper superset of
- * the locking of signal_struct.
- */
-struct signal_struct {
- atomic_t sigcnt;
- atomic_t live;
- int nr_threads;
-
- wait_queue_head_t wait_chldexit; /* for wait4() */
-
- /* current thread group signal load-balancing target: */
- struct task_struct *curr_target;
-
- /* shared signal handling: */
- struct sigpending shared_pending;
-
- /* thread group exit support */
- int group_exit_code;
- /* overloaded:
- * - notify group_exit_task when ->count is equal to notify_count
- * - everyone except group_exit_task is stopped during signal delivery
- * of fatal signals, group_exit_task processes the signal.
- */
- int notify_count;
- struct task_struct *group_exit_task;
-
- /* thread group stop support, overloads group_exit_code too */
- int group_stop_count;
- unsigned int flags; /* see SIGNAL_* flags below */
-
- /*
- * PR_SET_CHILD_SUBREAPER marks a process, like a service
- * manager, to re-parent orphan (double-forking) child processes
- * to this process instead of 'init'. The service manager is
- * able to receive SIGCHLD signals and is able to investigate
- * the process until it calls wait(). All children of this
- * process will inherit a flag if they should look for a
- * child_subreaper process at exit.
- */
- unsigned int is_child_subreaper:1;
- unsigned int has_child_subreaper:1;
-
- /* POSIX.1b Interval Timers */
- struct list_head posix_timers;
-
- /* ITIMER_REAL timer for the process */
- struct hrtimer real_timer;
- struct pid *leader_pid;
- ktime_t it_real_incr;
-
- /*
- * ITIMER_PROF and ITIMER_VIRTUAL timers for the process, we use
- * CPUCLOCK_PROF and CPUCLOCK_VIRT for indexing array as these
- * values are defined to 0 and 1 respectively
- */
- struct cpu_itimer it[2];
-
- /*
- * Thread group totals for process CPU timers.
- * See thread_group_cputimer(), et al, for details.
- */
- struct thread_group_cputimer cputimer;
-
- /* Earliest-expiration cache. */
- struct task_cputime cputime_expires;
-
- struct list_head cpu_timers[3];
-
- struct pid *tty_old_pgrp;
-
- /* boolean value for session group leader */
- int leader;
-
- struct tty_struct *tty; /* NULL if no tty */
-
-#ifdef CONFIG_SCHED_AUTOGROUP
- struct autogroup *autogroup;
-#endif
- /*
- * Cumulative resource counters for dead threads in the group,
- * and for reaped dead child processes forked by this group.
- * Live threads maintain their own counters and add to these
- * in __exit_signal, except for the group leader.
- */
- cputime_t utime, stime, cutime, cstime;
- cputime_t gtime;
- cputime_t cgtime;
-#ifndef CONFIG_VIRT_CPU_ACCOUNTING
- cputime_t prev_utime, prev_stime;
-#endif
- unsigned long nvcsw, nivcsw, cnvcsw, cnivcsw;
- unsigned long min_flt, maj_flt, cmin_flt, cmaj_flt;
- unsigned long inblock, oublock, cinblock, coublock;
- unsigned long maxrss, cmaxrss;
- struct task_io_accounting ioac;
-
- /*
- * Cumulative ns of schedule CPU time fo dead threads in the
- * group, not including a zombie group leader, (This only differs
- * from jiffies_to_ns(utime + stime) if sched_clock uses something
- * other than jiffies.)
- */
- unsigned long long sum_sched_runtime;
-
- /*
- * We don't bother to synchronize most readers of this at all,
- * because there is no reader checking a limit that actually needs
- * to get both rlim_cur and rlim_max atomically, and either one
- * alone is a single word that can safely be read normally.
- * getrlimit/setrlimit use task_lock(current->group_leader) to
- * protect this instead of the siglock, because they really
- * have no need to disable irqs.
- */
- struct rlimit rlim[RLIM_NLIMITS];
-
-#ifdef CONFIG_BSD_PROCESS_ACCT
- struct pacct_struct pacct; /* per-process accounting information */
-#endif
-#ifdef CONFIG_TASKSTATS
- struct taskstats *stats;
-#endif
-#ifdef CONFIG_AUDIT
- unsigned audit_tty;
- struct tty_audit_buf *tty_audit_buf;
-#endif
-#ifdef CONFIG_CGROUPS
- /*
- * group_rwsem prevents new tasks from entering the threadgroup and
- * member tasks from exiting,a more specifically, setting of
- * PF_EXITING. fork and exit paths are protected with this rwsem
- * using threadgroup_change_begin/end(). Users which require
- * threadgroup to remain stable should use threadgroup_[un]lock()
- * which also takes care of exec path. Currently, cgroup is the
- * only user.
- */
- struct rw_semaphore group_rwsem;
-#endif
-
- int oom_adj; /* OOM kill score adjustment (bit shift) */
- int oom_score_adj; /* OOM kill score adjustment */
- int oom_score_adj_min; /* OOM kill score adjustment minimum value.
- * Only settable by CAP_SYS_RESOURCE. */
-
- struct mutex cred_guard_mutex; /* guard against foreign influences on
- * credential calculations
- * (notably. ptrace) */
-};
-
-/* Context switch must be unlocked if interrupts are to be enabled */
-#ifdef __ARCH_WANT_INTERRUPTS_ON_CTXSW
-# define __ARCH_WANT_UNLOCKED_CTXSW
-#endif
-
-/*
- * Bits in flags field of signal_struct.
- */
-#define SIGNAL_STOP_STOPPED 0x00000001 /* job control stop in effect */
-#define SIGNAL_STOP_CONTINUED 0x00000002 /* SIGCONT since WCONTINUED reap */
-#define SIGNAL_GROUP_EXIT 0x00000004 /* group exit in progress */
-/*
- * Pending notifications to parent.
- */
-#define SIGNAL_CLD_STOPPED 0x00000010
-#define SIGNAL_CLD_CONTINUED 0x00000020
-#define SIGNAL_CLD_MASK (SIGNAL_CLD_STOPPED|SIGNAL_CLD_CONTINUED)
-
-#define SIGNAL_UNKILLABLE 0x00000040 /* for init: ignore fatal signals */
-
-/* If true, all threads except ->group_exit_task have pending SIGKILL */
-static inline int signal_group_exit(const struct signal_struct *sig)
-{
- return (sig->flags & SIGNAL_GROUP_EXIT) ||
- (sig->group_exit_task != NULL);
-}
-
-/*
- * Some day this will be a full-fledged user tracking system..
- */
-struct user_struct {
- atomic_t __count; /* reference count */
- atomic_t processes; /* How many processes does this user have? */
- atomic_t files; /* How many open files does this user have? */
- atomic_t sigpending; /* How many pending signals does this user have? */
-#ifdef CONFIG_INOTIFY_USER
- atomic_t inotify_watches; /* How many inotify watches does this user have? */
- atomic_t inotify_devs; /* How many inotify devs does this user have opened? */
-#endif
-#ifdef CONFIG_FANOTIFY
- atomic_t fanotify_listeners;
-#endif
-#ifdef CONFIG_EPOLL
- atomic_long_t epoll_watches; /* The number of file descriptors currently watched */
-#endif
-#ifdef CONFIG_POSIX_MQUEUE
- /* protected by mq_lock */
- unsigned long mq_bytes; /* How many bytes can be allocated to mqueue? */
-#endif
- unsigned long locked_shm; /* How many pages of mlocked shm ? */
-
-#ifdef CONFIG_KEYS
- struct key *uid_keyring; /* UID specific keyring */
- struct key *session_keyring; /* UID's default session keyring */
-#endif
-
- /* Hash table maintenance information */
- struct hlist_node uidhash_node;
- uid_t uid;
- struct user_namespace *user_ns;
-
-#ifdef CONFIG_PERF_EVENTS
- atomic_long_t locked_vm;
-#endif
-};
-
-extern int uids_sysfs_init(void);
-
-extern struct user_struct *find_user(uid_t);
-
-extern struct user_struct root_user;
-#define INIT_USER (&root_user)
-
-
-struct backing_dev_info;
-struct reclaim_state;
-
-#if defined(CONFIG_SCHEDSTATS) || defined(CONFIG_TASK_DELAY_ACCT)
-struct sched_info {
- /* cumulative counters */
- unsigned long pcount; /* # of times run on this cpu */
- unsigned long long run_delay; /* time spent waiting on a runqueue */
-
- /* timestamps */
- unsigned long long last_arrival,/* when we last ran on a cpu */
- last_queued; /* when we were last queued to run */
-};
-#endif /* defined(CONFIG_SCHEDSTATS) || defined(CONFIG_TASK_DELAY_ACCT) */
-
-#ifdef CONFIG_TASK_DELAY_ACCT
-struct task_delay_info {
- spinlock_t lock;
- unsigned int flags; /* Private per-task flags */
-
- /* For each stat XXX, add following, aligned appropriately
- *
- * struct timespec XXX_start, XXX_end;
- * u64 XXX_delay;
- * u32 XXX_count;
- *
- * Atomicity of updates to XXX_delay, XXX_count protected by
- * single lock above (split into XXX_lock if contention is an issue).
- */
-
- /*
- * XXX_count is incremented on every XXX operation, the delay
- * associated with the operation is added to XXX_delay.
- * XXX_delay contains the accumulated delay time in nanoseconds.
- */
- struct timespec blkio_start, blkio_end; /* Shared by blkio, swapin */
- u64 blkio_delay; /* wait for sync block io completion */
- u64 swapin_delay; /* wait for swapin block io completion */
- u32 blkio_count; /* total count of the number of sync block */
- /* io operations performed */
- u32 swapin_count; /* total count of the number of swapin block */
- /* io operations performed */
-
- struct timespec freepages_start, freepages_end;
- u64 freepages_delay; /* wait for memory reclaim */
- u32 freepages_count; /* total count of memory reclaim */
-};
-#endif /* CONFIG_TASK_DELAY_ACCT */
-
-static inline int sched_info_on(void)
-{
-#ifdef CONFIG_SCHEDSTATS
- return 1;
-#elif defined(CONFIG_TASK_DELAY_ACCT)
- extern int delayacct_on;
- return delayacct_on;
-#else
- return 0;
-#endif
-}
-
-enum cpu_idle_type {
- CPU_IDLE,
- CPU_NOT_IDLE,
- CPU_NEWLY_IDLE,
- CPU_MAX_IDLE_TYPES
-};
-
-/*
- * Increase resolution of nice-level calculations for 64-bit architectures.
- * The extra resolution improves shares distribution and load balancing of
- * low-weight task groups (eg. nice +19 on an autogroup), deeper taskgroup
- * hierarchies, especially on larger systems. This is not a user-visible change
- * and does not change the user-interface for setting shares/weights.
- *
- * We increase resolution only if we have enough bits to allow this increased
- * resolution (i.e. BITS_PER_LONG > 32). The costs for increasing resolution
- * when BITS_PER_LONG <= 32 are pretty high and the returns do not justify the
- * increased costs.
- */
-#if 0 /* BITS_PER_LONG > 32 -- currently broken: it increases power usage under light load */
-# define SCHED_LOAD_RESOLUTION 10
-# define scale_load(w) ((w) << SCHED_LOAD_RESOLUTION)
-# define scale_load_down(w) ((w) >> SCHED_LOAD_RESOLUTION)
-#else
-# define SCHED_LOAD_RESOLUTION 0
-# define scale_load(w) (w)
-# define scale_load_down(w) (w)
-#endif
-
-#define SCHED_LOAD_SHIFT (10 + SCHED_LOAD_RESOLUTION)
-#define SCHED_LOAD_SCALE (1L << SCHED_LOAD_SHIFT)
-
-/*
- * Increase resolution of cpu_power calculations
- */
-#define SCHED_POWER_SHIFT 10
-#define SCHED_POWER_SCALE (1L << SCHED_POWER_SHIFT)
-
-/*
- * sched-domains (multiprocessor balancing) declarations:
- */
-#ifdef CONFIG_SMP
-#define SD_LOAD_BALANCE 0x0001 /* Do load balancing on this domain. */
-#define SD_BALANCE_NEWIDLE 0x0002 /* Balance when about to become idle */
-#define SD_BALANCE_EXEC 0x0004 /* Balance on exec */
-#define SD_BALANCE_FORK 0x0008 /* Balance on fork, clone */
-#define SD_BALANCE_WAKE 0x0010 /* Balance on wakeup */
-#define SD_WAKE_AFFINE 0x0020 /* Wake task to waking CPU */
-#define SD_PREFER_LOCAL 0x0040 /* Prefer to keep tasks local to this domain */
-#define SD_SHARE_CPUPOWER 0x0080 /* Domain members share cpu power */
-#define SD_POWERSAVINGS_BALANCE 0x0100 /* Balance for power savings */
-#define SD_SHARE_PKG_RESOURCES 0x0200 /* Domain members share cpu pkg resources */
-#define SD_SERIALIZE 0x0400 /* Only a single load balancing instance */
-#define SD_ASYM_PACKING 0x0800 /* Place busy groups earlier in the domain */
-#define SD_PREFER_SIBLING 0x1000 /* Prefer to place tasks in a sibling domain */
-#define SD_OVERLAP 0x2000 /* sched_domains of this level overlap */
-
-enum powersavings_balance_level {
- POWERSAVINGS_BALANCE_NONE = 0, /* No power saving load balance */
- POWERSAVINGS_BALANCE_BASIC, /* Fill one thread/core/package
- * first for long running threads
- */
- POWERSAVINGS_BALANCE_WAKEUP, /* Also bias task wakeups to semi-idle
- * cpu package for power savings
- */
- MAX_POWERSAVINGS_BALANCE_LEVELS
-};
-
-extern int sched_mc_power_savings, sched_smt_power_savings;
-
-static inline int sd_balance_for_mc_power(void)
-{
- if (sched_smt_power_savings)
- return SD_POWERSAVINGS_BALANCE;
-
- if (!sched_mc_power_savings)
- return SD_PREFER_SIBLING;
-
- return 0;
-}
-
-static inline int sd_balance_for_package_power(void)
-{
- if (sched_mc_power_savings | sched_smt_power_savings)
- return SD_POWERSAVINGS_BALANCE;
-
- return SD_PREFER_SIBLING;
-}
-
-extern int __weak arch_sd_sibiling_asym_packing(void);
-
-/*
- * Optimise SD flags for power savings:
- * SD_BALANCE_NEWIDLE helps aggressive task consolidation and power savings.
- * Keep default SD flags if sched_{smt,mc}_power_saving=0
- */
-
-static inline int sd_power_saving_flags(void)
-{
- if (sched_mc_power_savings | sched_smt_power_savings)
- return SD_BALANCE_NEWIDLE;
-
- return 0;
-}
-
-struct sched_group_power {
- atomic_t ref;
- /*
- * CPU power of this group, SCHED_LOAD_SCALE being max power for a
- * single CPU.
- */
- unsigned int power, power_orig;
- unsigned long next_update;
- /*
- * Number of busy cpus in this group.
- */
- atomic_t nr_busy_cpus;
-};
-
-struct sched_group {
- struct sched_group *next; /* Must be a circular list */
- atomic_t ref;
-
- unsigned int group_weight;
- struct sched_group_power *sgp;
-
- /*
- * The CPUs this group covers.
- *
- * NOTE: this field is variable length. (Allocated dynamically
- * by attaching extra space to the end of the structure,
- * depending on how many CPUs the kernel has booted up with)
- */
- unsigned long cpumask[0];
-};
-
-static inline struct cpumask *sched_group_cpus(struct sched_group *sg)
-{
- return to_cpumask(sg->cpumask);
-}
-
-/**
- * group_first_cpu - Returns the first cpu in the cpumask of a sched_group.
- * @group: The group whose first cpu is to be returned.
- */
-static inline unsigned int group_first_cpu(struct sched_group *group)
-{
- return cpumask_first(sched_group_cpus(group));
-}
-
-struct sched_domain_attr {
- int relax_domain_level;
-};
-
-#define SD_ATTR_INIT (struct sched_domain_attr) { \
- .relax_domain_level = -1, \
-}
-
-extern int sched_domain_level_max;
-
-struct sched_domain {
- /* These fields must be setup */
- struct sched_domain *parent; /* top domain must be null terminated */
- struct sched_domain *child; /* bottom domain must be null terminated */
- struct sched_group *groups; /* the balancing groups of the domain */
- unsigned long min_interval; /* Minimum balance interval ms */
- unsigned long max_interval; /* Maximum balance interval ms */
- unsigned int busy_factor; /* less balancing by factor if busy */
- unsigned int imbalance_pct; /* No balance until over watermark */
- unsigned int cache_nice_tries; /* Leave cache hot tasks for # tries */
- unsigned int busy_idx;
- unsigned int idle_idx;
- unsigned int newidle_idx;
- unsigned int wake_idx;
- unsigned int forkexec_idx;
- unsigned int smt_gain;
- int flags; /* See SD_* */
- int level;
-
- /* Runtime fields. */
- unsigned long last_balance; /* init to jiffies. units in jiffies */
- unsigned int balance_interval; /* initialise to 1. units in ms. */
- unsigned int nr_balance_failed; /* initialise to 0 */
-
- u64 last_update;
-
-#ifdef CONFIG_SCHEDSTATS
- /* load_balance() stats */
- unsigned int lb_count[CPU_MAX_IDLE_TYPES];
- unsigned int lb_failed[CPU_MAX_IDLE_TYPES];
- unsigned int lb_balanced[CPU_MAX_IDLE_TYPES];
- unsigned int lb_imbalance[CPU_MAX_IDLE_TYPES];
- unsigned int lb_gained[CPU_MAX_IDLE_TYPES];
- unsigned int lb_hot_gained[CPU_MAX_IDLE_TYPES];
- unsigned int lb_nobusyg[CPU_MAX_IDLE_TYPES];
- unsigned int lb_nobusyq[CPU_MAX_IDLE_TYPES];
-
- /* Active load balancing */
- unsigned int alb_count;
- unsigned int alb_failed;
- unsigned int alb_pushed;
-
- /* SD_BALANCE_EXEC stats */
- unsigned int sbe_count;
- unsigned int sbe_balanced;
- unsigned int sbe_pushed;
-
- /* SD_BALANCE_FORK stats */
- unsigned int sbf_count;
- unsigned int sbf_balanced;
- unsigned int sbf_pushed;
-
- /* try_to_wake_up() stats */
- unsigned int ttwu_wake_remote;
- unsigned int ttwu_move_affine;
- unsigned int ttwu_move_balance;
-#endif
-#ifdef CONFIG_SCHED_DEBUG
- char *name;
-#endif
- union {
- void *private; /* used during construction */
- struct rcu_head rcu; /* used during destruction */
- };
-
- unsigned int span_weight;
- /*
- * Span of all CPUs in this domain.
- *
- * NOTE: this field is variable length. (Allocated dynamically
- * by attaching extra space to the end of the structure,
- * depending on how many CPUs the kernel has booted up with)
- */
- unsigned long span[0];
-};
-
-static inline struct cpumask *sched_domain_span(struct sched_domain *sd)
-{
- return to_cpumask(sd->span);
-}
-
-extern void partition_sched_domains(int ndoms_new, cpumask_var_t doms_new[],
- struct sched_domain_attr *dattr_new);
-
-/* Allocate an array of sched domains, for partition_sched_domains(). */
-cpumask_var_t *alloc_sched_domains(unsigned int ndoms);
-void free_sched_domains(cpumask_var_t doms[], unsigned int ndoms);
-
-/* Test a flag in parent sched domain */
-static inline int test_sd_parent(struct sched_domain *sd, int flag)
-{
- if (sd->parent && (sd->parent->flags & flag))
- return 1;
-
- return 0;
-}
-
-unsigned long default_scale_freq_power(struct sched_domain *sd, int cpu);
-unsigned long default_scale_smt_power(struct sched_domain *sd, int cpu);
-
-bool cpus_share_cache(int this_cpu, int that_cpu);
-
-#else /* CONFIG_SMP */
-
-struct sched_domain_attr;
-
-static inline void
-partition_sched_domains(int ndoms_new, cpumask_var_t doms_new[],
- struct sched_domain_attr *dattr_new)
-{
-}
-
-static inline bool cpus_share_cache(int this_cpu, int that_cpu)
-{
- return true;
-}
-
-#endif /* !CONFIG_SMP */
-
-
-struct io_context; /* See blkdev.h */
-
-
-#ifdef ARCH_HAS_PREFETCH_SWITCH_STACK
-extern void prefetch_stack(struct task_struct *t);
-#else
-static inline void prefetch_stack(struct task_struct *t) { }
-#endif
-
-struct audit_context; /* See audit.c */
-struct mempolicy;
-struct pipe_inode_info;
-struct uts_namespace;
-
-struct rq;
-struct sched_domain;
-
-/*
- * wake flags
- */
-#define WF_SYNC 0x01 /* waker goes to sleep after wakup */
-#define WF_FORK 0x02 /* child wakeup after fork */
-#define WF_MIGRATED 0x04 /* internal use, task got migrated */
-
-#define ENQUEUE_WAKEUP 1
-#define ENQUEUE_HEAD 2
-#ifdef CONFIG_SMP
-#define ENQUEUE_WAKING 4 /* sched_class::task_waking was called */
-#else
-#define ENQUEUE_WAKING 0
-#endif
-
-#define DEQUEUE_SLEEP 1
-
-struct sched_class {
- const struct sched_class *next;
-
- void (*enqueue_task) (struct rq *rq, struct task_struct *p, int flags);
- void (*dequeue_task) (struct rq *rq, struct task_struct *p, int flags);
- void (*yield_task) (struct rq *rq);
- bool (*yield_to_task) (struct rq *rq, struct task_struct *p, bool preempt);
-
- void (*check_preempt_curr) (struct rq *rq, struct task_struct *p, int flags);
-
- struct task_struct * (*pick_next_task) (struct rq *rq);
- void (*put_prev_task) (struct rq *rq, struct task_struct *p);
-
-#ifdef CONFIG_SMP
- int (*select_task_rq)(struct task_struct *p, int sd_flag, int flags);
-
- void (*pre_schedule) (struct rq *this_rq, struct task_struct *task);
- void (*post_schedule) (struct rq *this_rq);
- void (*task_waking) (struct task_struct *task);
- void (*task_woken) (struct rq *this_rq, struct task_struct *task);
-
- void (*set_cpus_allowed)(struct task_struct *p,
- const struct cpumask *newmask);
-
- void (*rq_online)(struct rq *rq);
- void (*rq_offline)(struct rq *rq);
-#endif
-
- void (*set_curr_task) (struct rq *rq);
- void (*task_tick) (struct rq *rq, struct task_struct *p, int queued);
- void (*task_fork) (struct task_struct *p);
-
- void (*switched_from) (struct rq *this_rq, struct task_struct *task);
- void (*switched_to) (struct rq *this_rq, struct task_struct *task);
- void (*prio_changed) (struct rq *this_rq, struct task_struct *task,
- int oldprio);
-
- unsigned int (*get_rr_interval) (struct rq *rq,
- struct task_struct *task);
-
-#ifdef CONFIG_FAIR_GROUP_SCHED
- void (*task_move_group) (struct task_struct *p, int on_rq);
-#endif
-};
-
-struct load_weight {
- unsigned long weight, inv_weight;
-};
-
-#ifdef CONFIG_SCHEDSTATS
-struct sched_statistics {
- u64 wait_start;
- u64 wait_max;
- u64 wait_count;
- u64 wait_sum;
- u64 iowait_count;
- u64 iowait_sum;
-
- u64 sleep_start;
- u64 sleep_max;
- s64 sum_sleep_runtime;
-
- u64 block_start;
- u64 block_max;
- u64 exec_max;
- u64 slice_max;
-
- u64 nr_migrations_cold;
- u64 nr_failed_migrations_affine;
- u64 nr_failed_migrations_running;
- u64 nr_failed_migrations_hot;
- u64 nr_forced_migrations;
-
- u64 nr_wakeups;
- u64 nr_wakeups_sync;
- u64 nr_wakeups_migrate;
- u64 nr_wakeups_local;
- u64 nr_wakeups_remote;
- u64 nr_wakeups_affine;
- u64 nr_wakeups_affine_attempts;
- u64 nr_wakeups_passive;
- u64 nr_wakeups_idle;
-};
-#endif
-
-struct sched_entity {
- struct load_weight load; /* for load-balancing */
- struct rb_node run_node;
- struct list_head group_node;
- unsigned int on_rq;
-
- u64 exec_start;
- u64 sum_exec_runtime;
- u64 vruntime;
- u64 prev_sum_exec_runtime;
-
- u64 nr_migrations;
-
-#ifdef CONFIG_SCHEDSTATS
- struct sched_statistics statistics;
-#endif
-
-#ifdef CONFIG_FAIR_GROUP_SCHED
- struct sched_entity *parent;
- /* rq on which this entity is (to be) queued: */
- struct cfs_rq *cfs_rq;
- /* rq "owned" by this entity/group: */
- struct cfs_rq *my_q;
-#endif
-};
-
-struct sched_rt_entity {
- struct list_head run_list;
- unsigned long timeout;
- unsigned int time_slice;
- int nr_cpus_allowed;
-
- struct sched_rt_entity *back;
-#ifdef CONFIG_RT_GROUP_SCHED
- struct sched_rt_entity *parent;
- /* rq on which this entity is (to be) queued: */
- struct rt_rq *rt_rq;
- /* rq "owned" by this entity/group: */
- struct rt_rq *my_q;
-#endif
-};
-
-/*
- * default timeslice is 100 msecs (used only for SCHED_RR tasks).
- * Timeslices get refilled after they expire.
- */
-#define RR_TIMESLICE (100 * HZ / 1000)
-
-struct rcu_node;
-
-enum perf_event_task_context {
- perf_invalid_context = -1,
- perf_hw_context = 0,
- perf_sw_context,
- perf_nr_task_contexts,
-};
-
-struct task_struct {
- volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */
- void *stack;
- atomic_t usage;
- unsigned int flags; /* per process flags, defined below */
- unsigned int ptrace;
-
-#ifdef CONFIG_SMP
- struct llist_node wake_entry;
- int on_cpu;
-#endif
- int on_rq;
-
- int prio, static_prio, normal_prio;
- unsigned int rt_priority;
- const struct sched_class *sched_class;
- struct sched_entity se;
- struct sched_rt_entity rt;
-
-#ifdef CONFIG_PREEMPT_NOTIFIERS
- /* list of struct preempt_notifier: */
- struct hlist_head preempt_notifiers;
-#endif
-
- /*
- * fpu_counter contains the number of consecutive context switches
- * that the FPU is used. If this is over a threshold, the lazy fpu
- * saving becomes unlazy to save the trap. This is an unsigned char
- * so that after 256 times the counter wraps and the behavior turns
- * lazy again; this to deal with bursty apps that only use FPU for
- * a short time
- */
- unsigned char fpu_counter;
-#ifdef CONFIG_BLK_DEV_IO_TRACE
- unsigned int btrace_seq;
-#endif
-
- unsigned int policy;
- cpumask_t cpus_allowed;
-
-#ifdef CONFIG_PREEMPT_RCU
- int rcu_read_lock_nesting;
- char rcu_read_unlock_special;
- struct list_head rcu_node_entry;
-#endif /* #ifdef CONFIG_PREEMPT_RCU */
-#ifdef CONFIG_TREE_PREEMPT_RCU
- struct rcu_node *rcu_blocked_node;
-#endif /* #ifdef CONFIG_TREE_PREEMPT_RCU */
-#ifdef CONFIG_RCU_BOOST
- struct rt_mutex *rcu_boost_mutex;
-#endif /* #ifdef CONFIG_RCU_BOOST */
-
-#if defined(CONFIG_SCHEDSTATS) || defined(CONFIG_TASK_DELAY_ACCT)
- struct sched_info sched_info;
-#endif
-
- struct list_head tasks;
-#ifdef CONFIG_SMP
- struct plist_node pushable_tasks;
-#endif
-
- struct mm_struct *mm, *active_mm;
-#ifdef CONFIG_COMPAT_BRK
- unsigned brk_randomized:1;
-#endif
-#if defined(SPLIT_RSS_COUNTING)
- struct task_rss_stat rss_stat;
-#endif
-/* task state */
- int exit_state;
- int exit_code, exit_signal;
- int pdeath_signal; /* The signal sent when the parent dies */
- unsigned int jobctl; /* JOBCTL_*, siglock protected */
- /* ??? */
- unsigned int personality;
- unsigned did_exec:1;
- unsigned in_execve:1; /* Tell the LSMs that the process is doing an
- * execve */
- unsigned in_iowait:1;
-
-
- /* Revert to default priority/policy when forking */
- unsigned sched_reset_on_fork:1;
- unsigned sched_contributes_to_load:1;
-
-#ifdef CONFIG_GENERIC_HARDIRQS
- /* IRQ handler threads */
- unsigned irq_thread:1;
-#endif
-
- pid_t pid;
- pid_t tgid;
-
-#ifdef CONFIG_CC_STACKPROTECTOR
- /* Canary value for the -fstack-protector gcc feature */
- unsigned long stack_canary;
-#endif
-
- /*
- * pointers to (original) parent process, youngest child, younger sibling,
- * older sibling, respectively. (p->father can be replaced with
- * p->real_parent->pid)
- */
- struct task_struct __rcu *real_parent; /* real parent process */
- struct task_struct __rcu *parent; /* recipient of SIGCHLD, wait4() reports */
- /*
- * children/sibling forms the list of my natural children
- */
- struct list_head children; /* list of my children */
- struct list_head sibling; /* linkage in my parent's children list */
- struct task_struct *group_leader; /* threadgroup leader */
-
- /*
- * ptraced is the list of tasks this task is using ptrace on.
- * This includes both natural children and PTRACE_ATTACH targets.
- * p->ptrace_entry is p's link on the p->parent->ptraced list.
- */
- struct list_head ptraced;
- struct list_head ptrace_entry;
-
- /* PID/PID hash table linkage. */
- struct pid_link pids[PIDTYPE_MAX];
- struct list_head thread_group;
-
- struct completion *vfork_done; /* for vfork() */
- int __user *set_child_tid; /* CLONE_CHILD_SETTID */
- int __user *clear_child_tid; /* CLONE_CHILD_CLEARTID */
-
- cputime_t utime, stime, utimescaled, stimescaled;
- cputime_t gtime;
-#ifndef CONFIG_VIRT_CPU_ACCOUNTING
- cputime_t prev_utime, prev_stime;
-#endif
- unsigned long nvcsw, nivcsw; /* context switch counts */
- struct timespec start_time; /* monotonic time */
- struct timespec real_start_time; /* boot based time */
-/* mm fault and swap info: this can arguably be seen as either mm-specific or thread-specific */
- unsigned long min_flt, maj_flt;
-
- struct task_cputime cputime_expires;
- struct list_head cpu_timers[3];
-
-/* process credentials */
- const struct cred __rcu *real_cred; /* objective and real subjective task
- * credentials (COW) */
- const struct cred __rcu *cred; /* effective (overridable) subjective task
- * credentials (COW) */
- struct cred *replacement_session_keyring; /* for KEYCTL_SESSION_TO_PARENT */
-
- char comm[TASK_COMM_LEN]; /* executable name excluding path
- - access with [gs]et_task_comm (which lock
- it with task_lock())
- - initialized normally by setup_new_exec */
-/* file system info */
- int link_count, total_link_count;
-#ifdef CONFIG_SYSVIPC
-/* ipc stuff */
- struct sysv_sem sysvsem;
-#endif
-#ifdef CONFIG_DETECT_HUNG_TASK
-/* hung task detection */
- unsigned long last_switch_count;
-#endif
-/* CPU-specific state of this task */
- struct thread_struct thread;
-/* filesystem information */
- struct fs_struct *fs;
-/* open file information */
- struct files_struct *files;
-/* namespaces */
- struct nsproxy *nsproxy;
-/* signal handlers */
- struct signal_struct *signal;
- struct sighand_struct *sighand;
-
- sigset_t blocked, real_blocked;
- sigset_t saved_sigmask; /* restored if set_restore_sigmask() was used */
- struct sigpending pending;
-
- unsigned long sas_ss_sp;
- size_t sas_ss_size;
- int (*notifier)(void *priv);
- void *notifier_data;
- sigset_t *notifier_mask;
- struct audit_context *audit_context;
-#ifdef CONFIG_AUDITSYSCALL
- uid_t loginuid;
- unsigned int sessionid;
-#endif
- seccomp_t seccomp;
-
-/* Thread group tracking */
- u32 parent_exec_id;
- u32 self_exec_id;
-/* Protection of (de-)allocation: mm, files, fs, tty, keyrings, mems_allowed,
- * mempolicy */
- spinlock_t alloc_lock;
-
- /* Protection of the PI data structures: */
- raw_spinlock_t pi_lock;
-
-#ifdef CONFIG_RT_MUTEXES
- /* PI waiters blocked on a rt_mutex held by this task */
- struct plist_head pi_waiters;
- /* Deadlock detection and priority inheritance handling */
- struct rt_mutex_waiter *pi_blocked_on;
-#endif
-
-#ifdef CONFIG_DEBUG_MUTEXES
- /* mutex deadlock detection */
- struct mutex_waiter *blocked_on;
-#endif
-#ifdef CONFIG_TRACE_IRQFLAGS
- unsigned int irq_events;
- unsigned long hardirq_enable_ip;
- unsigned long hardirq_disable_ip;
- unsigned int hardirq_enable_event;
- unsigned int hardirq_disable_event;
- int hardirqs_enabled;
- int hardirq_context;
- unsigned long softirq_disable_ip;
- unsigned long softirq_enable_ip;
- unsigned int softirq_disable_event;
- unsigned int softirq_enable_event;
- int softirqs_enabled;
- int softirq_context;
-#endif
-#ifdef CONFIG_LOCKDEP
-# define MAX_LOCK_DEPTH 48UL
- u64 curr_chain_key;
- int lockdep_depth;
- unsigned int lockdep_recursion;
- struct held_lock held_locks[MAX_LOCK_DEPTH];
- gfp_t lockdep_reclaim_gfp;
-#endif
-
-/* journalling filesystem info */
- void *journal_info;
-
-/* stacked block device info */
- struct bio_list *bio_list;
-
-#ifdef CONFIG_BLOCK
-/* stack plugging */
- struct blk_plug *plug;
-#endif
-
-/* VM state */
- struct reclaim_state *reclaim_state;
-
- struct backing_dev_info *backing_dev_info;
-
- struct io_context *io_context;
-
- unsigned long ptrace_message;
- siginfo_t *last_siginfo; /* For ptrace use. */
- struct task_io_accounting ioac;
-#if defined(CONFIG_TASK_XACCT)
- u64 acct_rss_mem1; /* accumulated rss usage */
- u64 acct_vm_mem1; /* accumulated virtual memory usage */
- cputime_t acct_timexpd; /* stime + utime since last update */
-#endif
-#ifdef CONFIG_CPUSETS
- nodemask_t mems_allowed; /* Protected by alloc_lock */
- seqcount_t mems_allowed_seq; /* Seqence no to catch updates */
- int cpuset_mem_spread_rotor;
- int cpuset_slab_spread_rotor;
-#endif
-#ifdef CONFIG_CGROUPS
- /* Control Group info protected by css_set_lock */
- struct css_set __rcu *cgroups;
- /* cg_list protected by css_set_lock and tsk->alloc_lock */
- struct list_head cg_list;
-#endif
-#ifdef CONFIG_FUTEX
- struct robust_list_head __user *robust_list;
-#ifdef CONFIG_COMPAT
- struct compat_robust_list_head __user *compat_robust_list;
-#endif
- struct list_head pi_state_list;
- struct futex_pi_state *pi_state_cache;
-#endif
-#ifdef CONFIG_PERF_EVENTS
- struct perf_event_context *perf_event_ctxp[perf_nr_task_contexts];
- struct mutex perf_event_mutex;
- struct list_head perf_event_list;
-#endif
-#ifdef CONFIG_NUMA
- struct mempolicy *mempolicy; /* Protected by alloc_lock */
- short il_next;
- short pref_node_fork;
-#endif
- struct rcu_head rcu;
-
- /*
- * cache last used pipe for splice
- */
- struct pipe_inode_info *splice_pipe;
-#ifdef CONFIG_TASK_DELAY_ACCT
- struct task_delay_info *delays;
-#endif
-#ifdef CONFIG_FAULT_INJECTION
- int make_it_fail;
-#endif
- /*
- * when (nr_dirtied >= nr_dirtied_pause), it's time to call
- * balance_dirty_pages() for some dirty throttling pause
- */
- int nr_dirtied;
- int nr_dirtied_pause;
- unsigned long dirty_paused_when; /* start of a write-and-pause period */
-
-#ifdef CONFIG_LATENCYTOP
- int latency_record_count;
- struct latency_record latency_record[LT_SAVECOUNT];
-#endif
- /*
- * time slack values; these are used to round up poll() and
- * select() etc timeout values. These are in nanoseconds.
- */
- unsigned long timer_slack_ns;
- unsigned long default_timer_slack_ns;
-
- struct list_head *scm_work_list;
-#ifdef CONFIG_FUNCTION_GRAPH_TRACER
- /* Index of current stored address in ret_stack */
- int curr_ret_stack;
- /* Stack of return addresses for return function tracing */
- struct ftrace_ret_stack *ret_stack;
- /* time stamp for last schedule */
- unsigned long long ftrace_timestamp;
- /*
- * Number of functions that haven't been traced
- * because of depth overrun.
- */
- atomic_t trace_overrun;
- /* Pause for the tracing */
- atomic_t tracing_graph_pause;
-#endif
-#ifdef CONFIG_TRACING
- /* state flags for use by tracers */
- unsigned long trace;
- /* bitmask and counter of trace recursion */
- unsigned long trace_recursion;
-#endif /* CONFIG_TRACING */
-#ifdef CONFIG_CGROUP_MEM_RES_CTLR /* memcg uses this to do batch job */
- struct memcg_batch_info {
- int do_batch; /* incremented when batch uncharge started */
- struct mem_cgroup *memcg; /* target memcg of uncharge */
- unsigned long nr_pages; /* uncharged usage */
- unsigned long memsw_nr_pages; /* uncharged mem+swap usage */
- } memcg_batch;
-#endif
-#ifdef CONFIG_HAVE_HW_BREAKPOINT
- atomic_t ptrace_bp_refcnt;
-#endif
-};
-
-/* Future-safe accessor for struct task_struct's cpus_allowed. */
-#define tsk_cpus_allowed(tsk) (&(tsk)->cpus_allowed)
-
-/*
- * Priority of a process goes from 0..MAX_PRIO-1, valid RT
- * priority is 0..MAX_RT_PRIO-1, and SCHED_NORMAL/SCHED_BATCH
- * tasks are in the range MAX_RT_PRIO..MAX_PRIO-1. Priority
- * values are inverted: lower p->prio value means higher priority.
- *
- * The MAX_USER_RT_PRIO value allows the actual maximum
- * RT priority to be separate from the value exported to
- * user-space. This allows kernel threads to set their
- * priority to a value higher than any user task. Note:
- * MAX_RT_PRIO must not be smaller than MAX_USER_RT_PRIO.
- */
-
-#define MAX_USER_RT_PRIO 100
-#define MAX_RT_PRIO MAX_USER_RT_PRIO
-
-#define MAX_PRIO (MAX_RT_PRIO + 40)
-#define DEFAULT_PRIO (MAX_RT_PRIO + 20)
-
-static inline int rt_prio(int prio)
-{
- if (unlikely(prio < MAX_RT_PRIO))
- return 1;
- return 0;
-}
-
-static inline int rt_task(struct task_struct *p)
-{
- return rt_prio(p->prio);
-}
-
-static inline struct pid *task_pid(struct task_struct *task)
-{
- return task->pids[PIDTYPE_PID].pid;
-}
-
-static inline struct pid *task_tgid(struct task_struct *task)
-{
- return task->group_leader->pids[PIDTYPE_PID].pid;
-}
-
-/*
- * Without tasklist or rcu lock it is not safe to dereference
- * the result of task_pgrp/task_session even if task == current,
- * we can race with another thread doing sys_setsid/sys_setpgid.
- */
-static inline struct pid *task_pgrp(struct task_struct *task)
-{
- return task->group_leader->pids[PIDTYPE_PGID].pid;
-}
-
-static inline struct pid *task_session(struct task_struct *task)
-{
- return task->group_leader->pids[PIDTYPE_SID].pid;
-}
-
-struct pid_namespace;
-
-/*
- * the helpers to get the task's different pids as they are seen
- * from various namespaces
- *
- * task_xid_nr() : global id, i.e. the id seen from the init namespace;
- * task_xid_vnr() : virtual id, i.e. the id seen from the pid namespace of
- * current.
- * task_xid_nr_ns() : id seen from the ns specified;
- *
- * set_task_vxid() : assigns a virtual id to a task;
- *
- * see also pid_nr() etc in include/linux/pid.h
- */
-pid_t __task_pid_nr_ns(struct task_struct *task, enum pid_type type,
- struct pid_namespace *ns);
-
-static inline pid_t task_pid_nr(struct task_struct *tsk)
-{
- return tsk->pid;
-}
-
-static inline pid_t task_pid_nr_ns(struct task_struct *tsk,
- struct pid_namespace *ns)
-{
- return __task_pid_nr_ns(tsk, PIDTYPE_PID, ns);
-}
-
-static inline pid_t task_pid_vnr(struct task_struct *tsk)
-{
- return __task_pid_nr_ns(tsk, PIDTYPE_PID, NULL);
-}
-
-
-static inline pid_t task_tgid_nr(struct task_struct *tsk)
-{
- return tsk->tgid;
-}
-
-pid_t task_tgid_nr_ns(struct task_struct *tsk, struct pid_namespace *ns);
-
-static inline pid_t task_tgid_vnr(struct task_struct *tsk)
-{
- return pid_vnr(task_tgid(tsk));
-}
-
-
-static inline pid_t task_pgrp_nr_ns(struct task_struct *tsk,
- struct pid_namespace *ns)
-{
- return __task_pid_nr_ns(tsk, PIDTYPE_PGID, ns);
-}
-
-static inline pid_t task_pgrp_vnr(struct task_struct *tsk)
-{
- return __task_pid_nr_ns(tsk, PIDTYPE_PGID, NULL);
-}
-
-
-static inline pid_t task_session_nr_ns(struct task_struct *tsk,
- struct pid_namespace *ns)
-{
- return __task_pid_nr_ns(tsk, PIDTYPE_SID, ns);
-}
-
-static inline pid_t task_session_vnr(struct task_struct *tsk)
-{
- return __task_pid_nr_ns(tsk, PIDTYPE_SID, NULL);
-}
-
-/* obsolete, do not use */
-static inline pid_t task_pgrp_nr(struct task_struct *tsk)
-{
- return task_pgrp_nr_ns(tsk, &init_pid_ns);
-}
-
-/**
- * pid_alive - check that a task structure is not stale
- * @p: Task structure to be checked.
- *
- * Test if a process is not yet dead (at most zombie state)
- * If pid_alive fails, then pointers within the task structure
- * can be stale and must not be dereferenced.
- */
-static inline int pid_alive(struct task_struct *p)
-{
- return p->pids[PIDTYPE_PID].pid != NULL;
-}
-
-/**
- * is_global_init - check if a task structure is init
- * @tsk: Task structure to be checked.
- *
- * Check if a task structure is the first user space task the kernel created.
- */
-static inline int is_global_init(struct task_struct *tsk)
-{
- return tsk->pid == 1;
-}
-
-/*
- * is_container_init:
- * check whether in the task is init in its own pid namespace.
- */
-extern int is_container_init(struct task_struct *tsk);
-
-extern struct pid *cad_pid;
-
-extern void free_task(struct task_struct *tsk);
-#define get_task_struct(tsk) do { atomic_inc(&(tsk)->usage); } while(0)
-
-extern void __put_task_struct(struct task_struct *t);
-
-static inline void put_task_struct(struct task_struct *t)
-{
- if (atomic_dec_and_test(&t->usage))
- __put_task_struct(t);
-}
-
-extern void task_times(struct task_struct *p, cputime_t *ut, cputime_t *st);
-extern void thread_group_times(struct task_struct *p, cputime_t *ut, cputime_t *st);
-
-extern int task_free_register(struct notifier_block *n);
-extern int task_free_unregister(struct notifier_block *n);
-
-/*
- * Per process flags
- */
-#define PF_EXITING 0x00000004 /* getting shut down */
-#define PF_EXITPIDONE 0x00000008 /* pi exit done on shut down */
-#define PF_VCPU 0x00000010 /* I'm a virtual CPU */
-#define PF_WQ_WORKER 0x00000020 /* I'm a workqueue worker */
-#define PF_FORKNOEXEC 0x00000040 /* forked but didn't exec */
-#define PF_MCE_PROCESS 0x00000080 /* process policy on mce errors */
-#define PF_SUPERPRIV 0x00000100 /* used super-user privileges */
-#define PF_DUMPCORE 0x00000200 /* dumped core */
-#define PF_SIGNALED 0x00000400 /* killed by a signal */
-#define PF_MEMALLOC 0x00000800 /* Allocating memory */
-#define PF_NPROC_EXCEEDED 0x00001000 /* set_user noticed that RLIMIT_NPROC was exceeded */
-#define PF_USED_MATH 0x00002000 /* if unset the fpu must be initialized before use */
-#define PF_NOFREEZE 0x00008000 /* this thread should not be frozen */
-#define PF_FROZEN 0x00010000 /* frozen for system suspend */
-#define PF_FSTRANS 0x00020000 /* inside a filesystem transaction */
-#define PF_KSWAPD 0x00040000 /* I am kswapd */
-#define PF_LESS_THROTTLE 0x00100000 /* Throttle me less: I clean memory */
-#define PF_KTHREAD 0x00200000 /* I am a kernel thread */
-#define PF_RANDOMIZE 0x00400000 /* randomize virtual address space */
-#define PF_SWAPWRITE 0x00800000 /* Allowed to write to swap */
-#define PF_SPREAD_PAGE 0x01000000 /* Spread page cache over cpuset */
-#define PF_SPREAD_SLAB 0x02000000 /* Spread some slab caches over cpuset */
-#define PF_THREAD_BOUND 0x04000000 /* Thread bound to specific cpu */
-#define PF_MCE_EARLY 0x08000000 /* Early kill for mce process policy */
-#define PF_MEMPOLICY 0x10000000 /* Non-default NUMA mempolicy */
-#define PF_MUTEX_TESTER 0x20000000 /* Thread belongs to the rt mutex tester */
-#define PF_FREEZER_SKIP 0x40000000 /* Freezer should not count it as freezable */
-
-/*
- * Only the _current_ task can read/write to tsk->flags, but other
- * tasks can access tsk->flags in readonly mode for example
- * with tsk_used_math (like during threaded core dumping).
- * There is however an exception to this rule during ptrace
- * or during fork: the ptracer task is allowed to write to the
- * child->flags of its traced child (same goes for fork, the parent
- * can write to the child->flags), because we're guaranteed the
- * child is not running and in turn not changing child->flags
- * at the same time the parent does it.
- */
-#define clear_stopped_child_used_math(child) do { (child)->flags &= ~PF_USED_MATH; } while (0)
-#define set_stopped_child_used_math(child) do { (child)->flags |= PF_USED_MATH; } while (0)
-#define clear_used_math() clear_stopped_child_used_math(current)
-#define set_used_math() set_stopped_child_used_math(current)
-#define conditional_stopped_child_used_math(condition, child) \
- do { (child)->flags &= ~PF_USED_MATH, (child)->flags |= (condition) ? PF_USED_MATH : 0; } while (0)
-#define conditional_used_math(condition) \
- conditional_stopped_child_used_math(condition, current)
-#define copy_to_stopped_child_used_math(child) \
- do { (child)->flags &= ~PF_USED_MATH, (child)->flags |= current->flags & PF_USED_MATH; } while (0)
-/* NOTE: this will return 0 or PF_USED_MATH, it will never return 1 */
-#define tsk_used_math(p) ((p)->flags & PF_USED_MATH)
-#define used_math() tsk_used_math(current)
-
-/*
- * task->jobctl flags
- */
-#define JOBCTL_STOP_SIGMASK 0xffff /* signr of the last group stop */
-
-#define JOBCTL_STOP_DEQUEUED_BIT 16 /* stop signal dequeued */
-#define JOBCTL_STOP_PENDING_BIT 17 /* task should stop for group stop */
-#define JOBCTL_STOP_CONSUME_BIT 18 /* consume group stop count */
-#define JOBCTL_TRAP_STOP_BIT 19 /* trap for STOP */
-#define JOBCTL_TRAP_NOTIFY_BIT 20 /* trap for NOTIFY */
-#define JOBCTL_TRAPPING_BIT 21 /* switching to TRACED */
-#define JOBCTL_LISTENING_BIT 22 /* ptracer is listening for events */
-
-#define JOBCTL_STOP_DEQUEUED (1 << JOBCTL_STOP_DEQUEUED_BIT)
-#define JOBCTL_STOP_PENDING (1 << JOBCTL_STOP_PENDING_BIT)
-#define JOBCTL_STOP_CONSUME (1 << JOBCTL_STOP_CONSUME_BIT)
-#define JOBCTL_TRAP_STOP (1 << JOBCTL_TRAP_STOP_BIT)
-#define JOBCTL_TRAP_NOTIFY (1 << JOBCTL_TRAP_NOTIFY_BIT)
-#define JOBCTL_TRAPPING (1 << JOBCTL_TRAPPING_BIT)
-#define JOBCTL_LISTENING (1 << JOBCTL_LISTENING_BIT)
-
-#define JOBCTL_TRAP_MASK (JOBCTL_TRAP_STOP | JOBCTL_TRAP_NOTIFY)
-#define JOBCTL_PENDING_MASK (JOBCTL_STOP_PENDING | JOBCTL_TRAP_MASK)
-
-extern bool task_set_jobctl_pending(struct task_struct *task,
- unsigned int mask);
-extern void task_clear_jobctl_trapping(struct task_struct *task);
-extern void task_clear_jobctl_pending(struct task_struct *task,
- unsigned int mask);
-
-#ifdef CONFIG_PREEMPT_RCU
-
-#define RCU_READ_UNLOCK_BLOCKED (1 << 0) /* blocked while in RCU read-side. */
-#define RCU_READ_UNLOCK_NEED_QS (1 << 1) /* RCU core needs CPU response. */
-
-static inline void rcu_copy_process(struct task_struct *p)
-{
- p->rcu_read_lock_nesting = 0;
- p->rcu_read_unlock_special = 0;
-#ifdef CONFIG_TREE_PREEMPT_RCU
- p->rcu_blocked_node = NULL;
-#endif /* #ifdef CONFIG_TREE_PREEMPT_RCU */
-#ifdef CONFIG_RCU_BOOST
- p->rcu_boost_mutex = NULL;
-#endif /* #ifdef CONFIG_RCU_BOOST */
- INIT_LIST_HEAD(&p->rcu_node_entry);
-}
-
-#else
-
-static inline void rcu_copy_process(struct task_struct *p)
-{
-}
-
-#endif
-
-#ifdef CONFIG_SMP
-extern void do_set_cpus_allowed(struct task_struct *p,
- const struct cpumask *new_mask);
-
-extern int set_cpus_allowed_ptr(struct task_struct *p,
- const struct cpumask *new_mask);
-#else
-static inline void do_set_cpus_allowed(struct task_struct *p,
- const struct cpumask *new_mask)
-{
-}
-static inline int set_cpus_allowed_ptr(struct task_struct *p,
- const struct cpumask *new_mask)
-{
- if (!cpumask_test_cpu(0, new_mask))
- return -EINVAL;
- return 0;
-}
-#endif
-
-#ifndef CONFIG_CPUMASK_OFFSTACK
-static inline int set_cpus_allowed(struct task_struct *p, cpumask_t new_mask)
-{
- return set_cpus_allowed_ptr(p, &new_mask);
-}
-#endif
-
-/*
- * Do not use outside of architecture code which knows its limitations.
- *
- * sched_clock() has no promise of monotonicity or bounded drift between
- * CPUs, use (which you should not) requires disabling IRQs.
- *
- * Please use one of the three interfaces below.
- */
-extern unsigned long long notrace sched_clock(void);
-/*
- * See the comment in kernel/sched_clock.c
- */
-extern u64 cpu_clock(int cpu);
-extern u64 local_clock(void);
-extern u64 sched_clock_cpu(int cpu);
-
-
-extern void sched_clock_init(void);
-
-#ifndef CONFIG_HAVE_UNSTABLE_SCHED_CLOCK
-static inline void sched_clock_tick(void)
-{
-}
-
-static inline void sched_clock_idle_sleep_event(void)
-{
-}
-
-static inline void sched_clock_idle_wakeup_event(u64 delta_ns)
-{
-}
-#else
-/*
- * Architectures can set this to 1 if they have specified
- * CONFIG_HAVE_UNSTABLE_SCHED_CLOCK in their arch Kconfig,
- * but then during bootup it turns out that sched_clock()
- * is reliable after all:
- */
-extern int sched_clock_stable;
-
-extern void sched_clock_tick(void);
-extern void sched_clock_idle_sleep_event(void);
-extern void sched_clock_idle_wakeup_event(u64 delta_ns);
-#endif
-
-#ifdef CONFIG_IRQ_TIME_ACCOUNTING
-/*
- * An i/f to runtime opt-in for irq time accounting based off of sched_clock.
- * The reason for this explicit opt-in is not to have perf penalty with
- * slow sched_clocks.
- */
-extern void enable_sched_clock_irqtime(void);
-extern void disable_sched_clock_irqtime(void);
-#else
-static inline void enable_sched_clock_irqtime(void) {}
-static inline void disable_sched_clock_irqtime(void) {}
-#endif
-
-extern unsigned long long
-task_sched_runtime(struct task_struct *task);
-
-/* sched_exec is called by processes performing an exec */
-#ifdef CONFIG_SMP
-extern void sched_exec(void);
-#else
-#define sched_exec() {}
-#endif
-
-extern void sched_clock_idle_sleep_event(void);
-extern void sched_clock_idle_wakeup_event(u64 delta_ns);
-
-#ifdef CONFIG_HOTPLUG_CPU
-extern void idle_task_exit(void);
-#else
-static inline void idle_task_exit(void) {}
-#endif
-
-#if defined(CONFIG_NO_HZ) && defined(CONFIG_SMP)
-extern void wake_up_idle_cpu(int cpu);
-#else
-static inline void wake_up_idle_cpu(int cpu) { }
-#endif
-
-extern unsigned int sysctl_sched_latency;
-extern unsigned int sysctl_sched_min_granularity;
-extern unsigned int sysctl_sched_wakeup_granularity;
-extern unsigned int sysctl_sched_child_runs_first;
-
-enum sched_tunable_scaling {
- SCHED_TUNABLESCALING_NONE,
- SCHED_TUNABLESCALING_LOG,
- SCHED_TUNABLESCALING_LINEAR,
- SCHED_TUNABLESCALING_END,
-};
-extern enum sched_tunable_scaling sysctl_sched_tunable_scaling;
-
-#ifdef CONFIG_SCHED_DEBUG
-extern unsigned int sysctl_sched_migration_cost;
-extern unsigned int sysctl_sched_nr_migrate;
-extern unsigned int sysctl_sched_time_avg;
-extern unsigned int sysctl_timer_migration;
-extern unsigned int sysctl_sched_shares_window;
-
-int sched_proc_update_handler(struct ctl_table *table, int write,
- void __user *buffer, size_t *length,
- loff_t *ppos);
-#endif
-#ifdef CONFIG_SCHED_DEBUG
-static inline unsigned int get_sysctl_timer_migration(void)
-{
- return sysctl_timer_migration;
-}
-#else
-static inline unsigned int get_sysctl_timer_migration(void)
-{
- return 1;
-}
-#endif
-extern unsigned int sysctl_sched_rt_period;
-extern int sysctl_sched_rt_runtime;
-
-int sched_rt_handler(struct ctl_table *table, int write,
- void __user *buffer, size_t *lenp,
- loff_t *ppos);
-
-#ifdef CONFIG_SCHED_AUTOGROUP
-extern unsigned int sysctl_sched_autogroup_enabled;
-
-extern void sched_autogroup_create_attach(struct task_struct *p);
-extern void sched_autogroup_detach(struct task_struct *p);
-extern void sched_autogroup_fork(struct signal_struct *sig);
-extern void sched_autogroup_exit(struct signal_struct *sig);
-#ifdef CONFIG_PROC_FS
-extern void proc_sched_autogroup_show_task(struct task_struct *p, struct seq_file *m);
-extern int proc_sched_autogroup_set_nice(struct task_struct *p, int nice);
-#endif
-#else
-static inline void sched_autogroup_create_attach(struct task_struct *p) { }
-static inline void sched_autogroup_detach(struct task_struct *p) { }
-static inline void sched_autogroup_fork(struct signal_struct *sig) { }
-static inline void sched_autogroup_exit(struct signal_struct *sig) { }
-#endif
-
-#ifdef CONFIG_CFS_BANDWIDTH
-extern unsigned int sysctl_sched_cfs_bandwidth_slice;
-#endif
-
-#ifdef CONFIG_RT_MUTEXES
-extern int rt_mutex_getprio(struct task_struct *p);
-extern void rt_mutex_setprio(struct task_struct *p, int prio);
-extern void rt_mutex_adjust_pi(struct task_struct *p);
-static inline bool tsk_is_pi_blocked(struct task_struct *tsk)
-{
- return tsk->pi_blocked_on != NULL;
-}
-#else
-static inline int rt_mutex_getprio(struct task_struct *p)
-{
- return p->normal_prio;
-}
-# define rt_mutex_adjust_pi(p) do { } while (0)
-static inline bool tsk_is_pi_blocked(struct task_struct *tsk)
-{
- return false;
-}
-#endif
-
-extern bool yield_to(struct task_struct *p, bool preempt);
-extern void set_user_nice(struct task_struct *p, long nice);
-extern int task_prio(const struct task_struct *p);
-extern int task_nice(const struct task_struct *p);
-extern int can_nice(const struct task_struct *p, const int nice);
-extern int task_curr(const struct task_struct *p);
-extern int idle_cpu(int cpu);
-extern int sched_setscheduler(struct task_struct *, int,
- const struct sched_param *);
-extern int sched_setscheduler_nocheck(struct task_struct *, int,
- const struct sched_param *);
-extern struct task_struct *idle_task(int cpu);
-/**
- * is_idle_task - is the specified task an idle task?
- * @p: the task in question.
- */
-static inline bool is_idle_task(const struct task_struct *p)
-{
- return p->pid == 0;
-}
-extern struct task_struct *curr_task(int cpu);
-extern void set_curr_task(int cpu, struct task_struct *p);
-
-void yield(void);
-
-/*
- * The default (Linux) execution domain.
- */
-extern struct exec_domain default_exec_domain;
-
-union thread_union {
- struct thread_info thread_info;
- unsigned long stack[THREAD_SIZE/sizeof(long)];
-};
-
-#ifndef __HAVE_ARCH_KSTACK_END
-static inline int kstack_end(void *addr)
-{
- /* Reliable end of stack detection:
- * Some APM bios versions misalign the stack
- */
- return !(((unsigned long)addr+sizeof(void*)-1) & (THREAD_SIZE-sizeof(void*)));
-}
-#endif
-
-extern union thread_union init_thread_union;
-extern struct task_struct init_task;
-
-extern struct mm_struct init_mm;
-
-extern struct pid_namespace init_pid_ns;
-
-/*
- * find a task by one of its numerical ids
- *
- * find_task_by_pid_ns():
- * finds a task by its pid in the specified namespace
- * find_task_by_vpid():
- * finds a task by its virtual pid
- *
- * see also find_vpid() etc in include/linux/pid.h
- */
-
-extern struct task_struct *find_task_by_vpid(pid_t nr);
-extern struct task_struct *find_task_by_pid_ns(pid_t nr,
- struct pid_namespace *ns);
-
-extern void __set_special_pids(struct pid *pid);
-
-/* per-UID process charging. */
-extern struct user_struct * alloc_uid(struct user_namespace *, uid_t);
-static inline struct user_struct *get_uid(struct user_struct *u)
-{
- atomic_inc(&u->__count);
- return u;
-}
-extern void free_uid(struct user_struct *);
-extern void release_uids(struct user_namespace *ns);
-
-#include <asm/current.h>
-
-extern void xtime_update(unsigned long ticks);
-
-extern int wake_up_state(struct task_struct *tsk, unsigned int state);
-extern int wake_up_process(struct task_struct *tsk);
-extern void wake_up_new_task(struct task_struct *tsk);
-#ifdef CONFIG_SMP
- extern void kick_process(struct task_struct *tsk);
-#else
- static inline void kick_process(struct task_struct *tsk) { }
-#endif
-extern void sched_fork(struct task_struct *p);
-extern void sched_dead(struct task_struct *p);
-
-extern void proc_caches_init(void);
-extern void flush_signals(struct task_struct *);
-extern void __flush_signals(struct task_struct *);
-extern void ignore_signals(struct task_struct *);
-extern void flush_signal_handlers(struct task_struct *, int force_default);
-extern int dequeue_signal(struct task_struct *tsk, sigset_t *mask, siginfo_t *info);
-
-static inline int dequeue_signal_lock(struct task_struct *tsk, sigset_t *mask, siginfo_t *info)
-{
- unsigned long flags;
- int ret;
-
- spin_lock_irqsave(&tsk->sighand->siglock, flags);
- ret = dequeue_signal(tsk, mask, info);
- spin_unlock_irqrestore(&tsk->sighand->siglock, flags);
-
- return ret;
-}
-
-extern void block_all_signals(int (*notifier)(void *priv), void *priv,
- sigset_t *mask);
-extern void unblock_all_signals(void);
-extern void release_task(struct task_struct * p);
-extern int send_sig_info(int, struct siginfo *, struct task_struct *);
-extern int force_sigsegv(int, struct task_struct *);
-extern int force_sig_info(int, struct siginfo *, struct task_struct *);
-extern int __kill_pgrp_info(int sig, struct siginfo *info, struct pid *pgrp);
-extern int kill_pid_info(int sig, struct siginfo *info, struct pid *pid);
-extern int kill_pid_info_as_cred(int, struct siginfo *, struct pid *,
- const struct cred *, u32);
-extern int kill_pgrp(struct pid *pid, int sig, int priv);
-extern int kill_pid(struct pid *pid, int sig, int priv);
-extern int kill_proc_info(int, struct siginfo *, pid_t);
-extern __must_check bool do_notify_parent(struct task_struct *, int);
-extern void __wake_up_parent(struct task_struct *p, struct task_struct *parent);
-extern void force_sig(int, struct task_struct *);
-extern int send_sig(int, struct task_struct *, int);
-extern int zap_other_threads(struct task_struct *p);
-extern struct sigqueue *sigqueue_alloc(void);
-extern void sigqueue_free(struct sigqueue *);
-extern int send_sigqueue(struct sigqueue *, struct task_struct *, int group);
-extern int do_sigaction(int, struct k_sigaction *, struct k_sigaction *);
-extern int do_sigaltstack(const stack_t __user *, stack_t __user *, unsigned long);
-
-static inline int kill_cad_pid(int sig, int priv)
-{
- return kill_pid(cad_pid, sig, priv);
-}
-
-/* These can be the second arg to send_sig_info/send_group_sig_info. */
-#define SEND_SIG_NOINFO ((struct siginfo *) 0)
-#define SEND_SIG_PRIV ((struct siginfo *) 1)
-#define SEND_SIG_FORCED ((struct siginfo *) 2)
-
-/*
- * True if we are on the alternate signal stack.
- */
-static inline int on_sig_stack(unsigned long sp)
-{
-#ifdef CONFIG_STACK_GROWSUP
- return sp >= current->sas_ss_sp &&
- sp - current->sas_ss_sp < current->sas_ss_size;
-#else
- return sp > current->sas_ss_sp &&
- sp - current->sas_ss_sp <= current->sas_ss_size;
-#endif
-}
-
-static inline int sas_ss_flags(unsigned long sp)
-{
- return (current->sas_ss_size == 0 ? SS_DISABLE
- : on_sig_stack(sp) ? SS_ONSTACK : 0);
-}
-
-/*
- * Routines for handling mm_structs
- */
-extern struct mm_struct * mm_alloc(void);
-
-/* mmdrop drops the mm and the page tables */
-extern void __mmdrop(struct mm_struct *);
-static inline void mmdrop(struct mm_struct * mm)
-{
- if (unlikely(atomic_dec_and_test(&mm->mm_count)))
- __mmdrop(mm);
-}
-
-/* mmput gets rid of the mappings and all user-space */
-extern void mmput(struct mm_struct *);
-/* Grab a reference to a task's mm, if it is not already going away */
-extern struct mm_struct *get_task_mm(struct task_struct *task);
-/*
- * Grab a reference to a task's mm, if it is not already going away
- * and ptrace_may_access with the mode parameter passed to it
- * succeeds.
- */
-extern struct mm_struct *mm_access(struct task_struct *task, unsigned int mode);
-/* Remove the current tasks stale references to the old mm_struct */
-extern void mm_release(struct task_struct *, struct mm_struct *);
-/* Allocate a new mm structure and copy contents from tsk->mm */
-extern struct mm_struct *dup_mm(struct task_struct *tsk);
-
-extern int copy_thread(unsigned long, unsigned long, unsigned long,
- struct task_struct *, struct pt_regs *);
-extern void flush_thread(void);
-extern void exit_thread(void);
-
-extern void exit_files(struct task_struct *);
-extern void __cleanup_sighand(struct sighand_struct *);
-
-extern void exit_itimers(struct signal_struct *);
-extern void flush_itimer_signals(void);
-
-extern void do_group_exit(int);
-
-extern void daemonize(const char *, ...);
-extern int allow_signal(int);
-extern int disallow_signal(int);
-
-extern int do_execve(const char *,
- const char __user * const __user *,
- const char __user * const __user *, struct pt_regs *);
-extern long do_fork(unsigned long, unsigned long, struct pt_regs *, unsigned long, int __user *, int __user *);
-struct task_struct *fork_idle(int);
-
-extern void set_task_comm(struct task_struct *tsk, char *from);
-extern char *get_task_comm(char *to, struct task_struct *tsk);
-
-#ifdef CONFIG_SMP
-void scheduler_ipi(void);
-extern unsigned long wait_task_inactive(struct task_struct *, long match_state);
-#else
-static inline void scheduler_ipi(void) { }
-static inline unsigned long wait_task_inactive(struct task_struct *p,
- long match_state)
-{
- return 1;
-}
-#endif
-
-#define next_task(p) \
- list_entry_rcu((p)->tasks.next, struct task_struct, tasks)
-
-#define for_each_process(p) \
- for (p = &init_task ; (p = next_task(p)) != &init_task ; )
-
-extern bool current_is_single_threaded(void);
-
-/*
- * Careful: do_each_thread/while_each_thread is a double loop so
- * 'break' will not work as expected - use goto instead.
- */
-#define do_each_thread(g, t) \
- for (g = t = &init_task ; (g = t = next_task(g)) != &init_task ; ) do
-
-#define while_each_thread(g, t) \
- while ((t = next_thread(t)) != g)
-
-static inline int get_nr_threads(struct task_struct *tsk)
-{
- return tsk->signal->nr_threads;
-}
-
-static inline bool thread_group_leader(struct task_struct *p)
-{
- return p->exit_signal >= 0;
-}
-
-/* Do to the insanities of de_thread it is possible for a process
- * to have the pid of the thread group leader without actually being
- * the thread group leader. For iteration through the pids in proc
- * all we care about is that we have a task with the appropriate
- * pid, we don't actually care if we have the right task.
- */
-static inline int has_group_leader_pid(struct task_struct *p)
-{
- return p->pid == p->tgid;
-}
-
-static inline
-int same_thread_group(struct task_struct *p1, struct task_struct *p2)
-{
- return p1->tgid == p2->tgid;
-}
-
-static inline struct task_struct *next_thread(const struct task_struct *p)
-{
- return list_entry_rcu(p->thread_group.next,
- struct task_struct, thread_group);
-}
-
-static inline int thread_group_empty(struct task_struct *p)
-{
- return list_empty(&p->thread_group);
-}
-
-#define delay_group_leader(p) \
- (thread_group_leader(p) && !thread_group_empty(p))
-
-/*
- * Protects ->fs, ->files, ->mm, ->group_info, ->comm, keyring
- * subscriptions and synchronises with wait4(). Also used in procfs. Also
- * pins the final release of task.io_context. Also protects ->cpuset and
- * ->cgroup.subsys[]. And ->vfork_done.
- *
- * Nests both inside and outside of read_lock(&tasklist_lock).
- * It must not be nested with write_lock_irq(&tasklist_lock),
- * neither inside nor outside.
- */
-static inline void task_lock(struct task_struct *p)
-{
- spin_lock(&p->alloc_lock);
-}
-
-static inline void task_unlock(struct task_struct *p)
-{
- spin_unlock(&p->alloc_lock);
-}
-
-extern struct sighand_struct *__lock_task_sighand(struct task_struct *tsk,
- unsigned long *flags);
-
-static inline struct sighand_struct *lock_task_sighand(struct task_struct *tsk,
- unsigned long *flags)
-{
- struct sighand_struct *ret;
-
- ret = __lock_task_sighand(tsk, flags);
- (void)__cond_lock(&tsk->sighand->siglock, ret);
- return ret;
-}
-
-static inline void unlock_task_sighand(struct task_struct *tsk,
- unsigned long *flags)
-{
- spin_unlock_irqrestore(&tsk->sighand->siglock, *flags);
-}
-
-#ifdef CONFIG_CGROUPS
-static inline void threadgroup_change_begin(struct task_struct *tsk)
-{
- down_read(&tsk->signal->group_rwsem);
-}
-static inline void threadgroup_change_end(struct task_struct *tsk)
-{
- up_read(&tsk->signal->group_rwsem);
-}
-
-/**
- * threadgroup_lock - lock threadgroup
- * @tsk: member task of the threadgroup to lock
- *
- * Lock the threadgroup @tsk belongs to. No new task is allowed to enter
- * and member tasks aren't allowed to exit (as indicated by PF_EXITING) or
- * perform exec. This is useful for cases where the threadgroup needs to
- * stay stable across blockable operations.
- *
- * fork and exit paths explicitly call threadgroup_change_{begin|end}() for
- * synchronization. While held, no new task will be added to threadgroup
- * and no existing live task will have its PF_EXITING set.
- *
- * During exec, a task goes and puts its thread group through unusual
- * changes. After de-threading, exclusive access is assumed to resources
- * which are usually shared by tasks in the same group - e.g. sighand may
- * be replaced with a new one. Also, the exec'ing task takes over group
- * leader role including its pid. Exclude these changes while locked by
- * grabbing cred_guard_mutex which is used to synchronize exec path.
- */
-static inline void threadgroup_lock(struct task_struct *tsk)
-{
- /*
- * exec uses exit for de-threading nesting group_rwsem inside
- * cred_guard_mutex. Grab cred_guard_mutex first.
- */
- mutex_lock(&tsk->signal->cred_guard_mutex);
- down_write(&tsk->signal->group_rwsem);
-}
-
-/**
- * threadgroup_unlock - unlock threadgroup
- * @tsk: member task of the threadgroup to unlock
- *
- * Reverse threadgroup_lock().
- */
-static inline void threadgroup_unlock(struct task_struct *tsk)
-{
- up_write(&tsk->signal->group_rwsem);
- mutex_unlock(&tsk->signal->cred_guard_mutex);
-}
-#else
-static inline void threadgroup_change_begin(struct task_struct *tsk) {}
-static inline void threadgroup_change_end(struct task_struct *tsk) {}
-static inline void threadgroup_lock(struct task_struct *tsk) {}
-static inline void threadgroup_unlock(struct task_struct *tsk) {}
-#endif
-
-#ifndef __HAVE_THREAD_FUNCTIONS
-
-#define task_thread_info(task) ((struct thread_info *)(task)->stack)
-#define task_stack_page(task) ((task)->stack)
-
-static inline void setup_thread_stack(struct task_struct *p, struct task_struct *org)
-{
- *task_thread_info(p) = *task_thread_info(org);
- task_thread_info(p)->task = p;
-}
-
-static inline unsigned long *end_of_stack(struct task_struct *p)
-{
- return (unsigned long *)(task_thread_info(p) + 1);
-}
-
-#endif
-
-static inline int object_is_on_stack(void *obj)
-{
- void *stack = task_stack_page(current);
-
- return (obj >= stack) && (obj < (stack + THREAD_SIZE));
-}
-
-extern void thread_info_cache_init(void);
-
-#ifdef CONFIG_DEBUG_STACK_USAGE
-static inline unsigned long stack_not_used(struct task_struct *p)
-{
- unsigned long *n = end_of_stack(p);
-
- do { /* Skip over canary */
- n++;
- } while (!*n);
-
- return (unsigned long)n - (unsigned long)end_of_stack(p);
-}
-#endif
-
-/* set thread flags in other task's structures
- * - see asm/thread_info.h for TIF_xxxx flags available
- */
-static inline void set_tsk_thread_flag(struct task_struct *tsk, int flag)
-{
- set_ti_thread_flag(task_thread_info(tsk), flag);
-}
-
-static inline void clear_tsk_thread_flag(struct task_struct *tsk, int flag)
-{
- clear_ti_thread_flag(task_thread_info(tsk), flag);
-}
-
-static inline int test_and_set_tsk_thread_flag(struct task_struct *tsk, int flag)
-{
- return test_and_set_ti_thread_flag(task_thread_info(tsk), flag);
-}
-
-static inline int test_and_clear_tsk_thread_flag(struct task_struct *tsk, int flag)
-{
- return test_and_clear_ti_thread_flag(task_thread_info(tsk), flag);
-}
-
-static inline int test_tsk_thread_flag(struct task_struct *tsk, int flag)
-{
- return test_ti_thread_flag(task_thread_info(tsk), flag);
-}
-
-static inline void set_tsk_need_resched(struct task_struct *tsk)
-{
- set_tsk_thread_flag(tsk,TIF_NEED_RESCHED);
-}
-
-static inline void clear_tsk_need_resched(struct task_struct *tsk)
-{
- clear_tsk_thread_flag(tsk,TIF_NEED_RESCHED);
-}
-
-static inline int test_tsk_need_resched(struct task_struct *tsk)
-{
- return unlikely(test_tsk_thread_flag(tsk,TIF_NEED_RESCHED));
-}
-
-static inline int restart_syscall(void)
-{
- set_tsk_thread_flag(current, TIF_SIGPENDING);
- return -ERESTARTNOINTR;
-}
-
-static inline int signal_pending(struct task_struct *p)
-{
- return unlikely(test_tsk_thread_flag(p,TIF_SIGPENDING));
-}
-
-static inline int __fatal_signal_pending(struct task_struct *p)
-{
- return unlikely(sigismember(&p->pending.signal, SIGKILL));
-}
-
-static inline int fatal_signal_pending(struct task_struct *p)
-{
- return signal_pending(p) && __fatal_signal_pending(p);
-}
-
-static inline int signal_pending_state(long state, struct task_struct *p)
-{
- if (!(state & (TASK_INTERRUPTIBLE | TASK_WAKEKILL)))
- return 0;
- if (!signal_pending(p))
- return 0;
-
- return (state & TASK_INTERRUPTIBLE) || __fatal_signal_pending(p);
-}
-
-static inline int need_resched(void)
-{
- return unlikely(test_thread_flag(TIF_NEED_RESCHED));
-}
-
-/*
- * cond_resched() and cond_resched_lock(): latency reduction via
- * explicit rescheduling in places that are safe. The return
- * value indicates whether a reschedule was done in fact.
- * cond_resched_lock() will drop the spinlock before scheduling,
- * cond_resched_softirq() will enable bhs before scheduling.
- */
-extern int _cond_resched(void);
-
-#define cond_resched() ({ \
- __might_sleep(__FILE__, __LINE__, 0); \
- _cond_resched(); \
-})
-
-extern int __cond_resched_lock(spinlock_t *lock);
-
-#ifdef CONFIG_PREEMPT_COUNT
-#define PREEMPT_LOCK_OFFSET PREEMPT_OFFSET
-#else
-#define PREEMPT_LOCK_OFFSET 0
-#endif
-
-#define cond_resched_lock(lock) ({ \
- __might_sleep(__FILE__, __LINE__, PREEMPT_LOCK_OFFSET); \
- __cond_resched_lock(lock); \
-})
-
-extern int __cond_resched_softirq(void);
-
-#define cond_resched_softirq() ({ \
- __might_sleep(__FILE__, __LINE__, SOFTIRQ_DISABLE_OFFSET); \
- __cond_resched_softirq(); \
-})
-
-/*
- * Does a critical section need to be broken due to another
- * task waiting?: (technically does not depend on CONFIG_PREEMPT,
- * but a general need for low latency)
- */
-static inline int spin_needbreak(spinlock_t *lock)
-{
-#ifdef CONFIG_PREEMPT
- return spin_is_contended(lock);
-#else
- return 0;
-#endif
-}
-
-/*
- * Thread group CPU time accounting.
- */
-void thread_group_cputime(struct task_struct *tsk, struct task_cputime *times);
-void thread_group_cputimer(struct task_struct *tsk, struct task_cputime *times);
-
-static inline void thread_group_cputime_init(struct signal_struct *sig)
-{
- raw_spin_lock_init(&sig->cputimer.lock);
-}
-
-/*
- * Reevaluate whether the task has signals pending delivery.
- * Wake the task if so.
- * This is required every time the blocked sigset_t changes.
- * callers must hold sighand->siglock.
- */
-extern void recalc_sigpending_and_wake(struct task_struct *t);
-extern void recalc_sigpending(void);
-
-extern void signal_wake_up(struct task_struct *t, int resume_stopped);
-
-/*
- * Wrappers for p->thread_info->cpu access. No-op on UP.
- */
-#ifdef CONFIG_SMP
-
-static inline unsigned int task_cpu(const struct task_struct *p)
-{
- return task_thread_info(p)->cpu;
-}
-
-extern void set_task_cpu(struct task_struct *p, unsigned int cpu);
-
-#else
-
-static inline unsigned int task_cpu(const struct task_struct *p)
-{
- return 0;
-}
-
-static inline void set_task_cpu(struct task_struct *p, unsigned int cpu)
-{
-}
-
-#endif /* CONFIG_SMP */
-
-extern long sched_setaffinity(pid_t pid, const struct cpumask *new_mask);
-extern long sched_getaffinity(pid_t pid, struct cpumask *mask);
-
-extern void normalize_rt_tasks(void);
-
-#ifdef CONFIG_CGROUP_SCHED
-
-extern struct task_group root_task_group;
-
-extern struct task_group *sched_create_group(struct task_group *parent);
-extern void sched_destroy_group(struct task_group *tg);
-extern void sched_move_task(struct task_struct *tsk);
-#ifdef CONFIG_FAIR_GROUP_SCHED
-extern int sched_group_set_shares(struct task_group *tg, unsigned long shares);
-extern unsigned long sched_group_shares(struct task_group *tg);
-#endif
-#ifdef CONFIG_RT_GROUP_SCHED
-extern int sched_group_set_rt_runtime(struct task_group *tg,
- long rt_runtime_us);
-extern long sched_group_rt_runtime(struct task_group *tg);
-extern int sched_group_set_rt_period(struct task_group *tg,
- long rt_period_us);
-extern long sched_group_rt_period(struct task_group *tg);
-extern int sched_rt_can_attach(struct task_group *tg, struct task_struct *tsk);
-#endif
-#endif
-
-extern int task_can_switch_user(struct user_struct *up,
- struct task_struct *tsk);
-
-#ifdef CONFIG_TASK_XACCT
-static inline void add_rchar(struct task_struct *tsk, ssize_t amt)
-{
- tsk->ioac.rchar += amt;
-}
-
-static inline void add_wchar(struct task_struct *tsk, ssize_t amt)
-{
- tsk->ioac.wchar += amt;
-}
-
-static inline void inc_syscr(struct task_struct *tsk)
-{
- tsk->ioac.syscr++;
-}
-
-static inline void inc_syscw(struct task_struct *tsk)
-{
- tsk->ioac.syscw++;
-}
-#else
-static inline void add_rchar(struct task_struct *tsk, ssize_t amt)
-{
-}
-
-static inline void add_wchar(struct task_struct *tsk, ssize_t amt)
-{
-}
-
-static inline void inc_syscr(struct task_struct *tsk)
-{
-}
-
-static inline void inc_syscw(struct task_struct *tsk)
-{
-}
-#endif
-
-#ifndef TASK_SIZE_OF
-#define TASK_SIZE_OF(tsk) TASK_SIZE
-#endif
-
-#ifdef CONFIG_MM_OWNER
-extern void mm_update_next_owner(struct mm_struct *mm);
-extern void mm_init_owner(struct mm_struct *mm, struct task_struct *p);
-#else
-static inline void mm_update_next_owner(struct mm_struct *mm)
-{
-}
-
-static inline void mm_init_owner(struct mm_struct *mm, struct task_struct *p)
-{
-}
-#endif /* CONFIG_MM_OWNER */
-
-static inline unsigned long task_rlimit(const struct task_struct *tsk,
- unsigned int limit)
-{
- return ACCESS_ONCE(tsk->signal->rlim[limit].rlim_cur);
-}
-
-static inline unsigned long task_rlimit_max(const struct task_struct *tsk,
- unsigned int limit)
-{
- return ACCESS_ONCE(tsk->signal->rlim[limit].rlim_max);
-}
-
-static inline unsigned long rlimit(unsigned int limit)
-{
- return task_rlimit(current, limit);
-}
-
-static inline unsigned long rlimit_max(unsigned int limit)
-{
- return task_rlimit_max(current, limit);
-}
-
-#endif /* __KERNEL__ */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/screen_info.h b/ANDROID_3.4.5/include/linux/screen_info.h
deleted file mode 100644
index 899fbb48..00000000
--- a/ANDROID_3.4.5/include/linux/screen_info.h
+++ /dev/null
@@ -1,84 +0,0 @@
-#ifndef _SCREEN_INFO_H
-#define _SCREEN_INFO_H
-
-#include <linux/types.h>
-
-/*
- * These are set up by the setup-routine at boot-time:
- */
-
-struct screen_info {
- __u8 orig_x; /* 0x00 */
- __u8 orig_y; /* 0x01 */
- __u16 ext_mem_k; /* 0x02 */
- __u16 orig_video_page; /* 0x04 */
- __u8 orig_video_mode; /* 0x06 */
- __u8 orig_video_cols; /* 0x07 */
- __u8 flags; /* 0x08 */
- __u8 unused2; /* 0x09 */
- __u16 orig_video_ega_bx;/* 0x0a */
- __u16 unused3; /* 0x0c */
- __u8 orig_video_lines; /* 0x0e */
- __u8 orig_video_isVGA; /* 0x0f */
- __u16 orig_video_points;/* 0x10 */
-
- /* VESA graphic mode -- linear frame buffer */
- __u16 lfb_width; /* 0x12 */
- __u16 lfb_height; /* 0x14 */
- __u16 lfb_depth; /* 0x16 */
- __u32 lfb_base; /* 0x18 */
- __u32 lfb_size; /* 0x1c */
- __u16 cl_magic, cl_offset; /* 0x20 */
- __u16 lfb_linelength; /* 0x24 */
- __u8 red_size; /* 0x26 */
- __u8 red_pos; /* 0x27 */
- __u8 green_size; /* 0x28 */
- __u8 green_pos; /* 0x29 */
- __u8 blue_size; /* 0x2a */
- __u8 blue_pos; /* 0x2b */
- __u8 rsvd_size; /* 0x2c */
- __u8 rsvd_pos; /* 0x2d */
- __u16 vesapm_seg; /* 0x2e */
- __u16 vesapm_off; /* 0x30 */
- __u16 pages; /* 0x32 */
- __u16 vesa_attributes; /* 0x34 */
- __u32 capabilities; /* 0x36 */
- __u8 _reserved[6]; /* 0x3a */
-} __attribute__((packed));
-
-#define VIDEO_TYPE_MDA 0x10 /* Monochrome Text Display */
-#define VIDEO_TYPE_CGA 0x11 /* CGA Display */
-#define VIDEO_TYPE_EGAM 0x20 /* EGA/VGA in Monochrome Mode */
-#define VIDEO_TYPE_EGAC 0x21 /* EGA in Color Mode */
-#define VIDEO_TYPE_VGAC 0x22 /* VGA+ in Color Mode */
-#define VIDEO_TYPE_VLFB 0x23 /* VESA VGA in graphic mode */
-
-#define VIDEO_TYPE_PICA_S3 0x30 /* ACER PICA-61 local S3 video */
-#define VIDEO_TYPE_MIPS_G364 0x31 /* MIPS Magnum 4000 G364 video */
-#define VIDEO_TYPE_SGI 0x33 /* Various SGI graphics hardware */
-
-#define VIDEO_TYPE_TGAC 0x40 /* DEC TGA */
-
-#define VIDEO_TYPE_SUN 0x50 /* Sun frame buffer. */
-#define VIDEO_TYPE_SUNPCI 0x51 /* Sun PCI based frame buffer. */
-
-#define VIDEO_TYPE_PMAC 0x60 /* PowerMacintosh frame buffer. */
-
-#define VIDEO_TYPE_EFI 0x70 /* EFI graphic mode */
-
-#define VIDEO_FLAGS_NOCURSOR (1 << 0) /* The video mode has no cursor set */
-
-#ifdef __KERNEL__
-extern struct screen_info screen_info;
-
-#define ORIG_X (screen_info.orig_x)
-#define ORIG_Y (screen_info.orig_y)
-#define ORIG_VIDEO_MODE (screen_info.orig_video_mode)
-#define ORIG_VIDEO_COLS (screen_info.orig_video_cols)
-#define ORIG_VIDEO_EGA_BX (screen_info.orig_video_ega_bx)
-#define ORIG_VIDEO_LINES (screen_info.orig_video_lines)
-#define ORIG_VIDEO_ISVGA (screen_info.orig_video_isVGA)
-#define ORIG_VIDEO_POINTS (screen_info.orig_video_points)
-#endif /* __KERNEL__ */
-
-#endif /* _SCREEN_INFO_H */
diff --git a/ANDROID_3.4.5/include/linux/sctp.h b/ANDROID_3.4.5/include/linux/sctp.h
deleted file mode 100644
index c11a2870..00000000
--- a/ANDROID_3.4.5/include/linux/sctp.h
+++ /dev/null
@@ -1,711 +0,0 @@
-/* SCTP kernel reference Implementation
- * (C) Copyright IBM Corp. 2001, 2004
- * Copyright (c) 1999-2000 Cisco, Inc.
- * Copyright (c) 1999-2001 Motorola, Inc.
- * Copyright (c) 2001 Intel Corp.
- * Copyright (c) 2001 Nokia, Inc.
- * Copyright (c) 2001 La Monte H.P. Yarroll
- *
- * This file is part of the SCTP kernel reference Implementation
- *
- * Various protocol defined structures.
- *
- * This SCTP implementation 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 SCTP implementation 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 GNU CC; see the file COPYING. If not, write to
- * the Free Software Foundation, 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- *
- * Please send any bug reports or fixes you make to the
- * email address(es):
- * lksctp developers <lksctp-developerst@lists.sourceforge.net>
- *
- * Or submit a bug report through the following website:
- * http://www.sf.net/projects/lksctp
- *
- * Written or modified by:
- * La Monte H.P. Yarroll <piggy@acm.org>
- * Karl Knutson <karl@athena.chicago.il.us>
- * Jon Grimm <jgrimm@us.ibm.com>
- * Xingang Guo <xingang.guo@intel.com>
- * randall@sctp.chicago.il.us
- * kmorneau@cisco.com
- * qxie1@email.mot.com
- * Sridhar Samudrala <sri@us.ibm.com>
- * Kevin Gao <kevin.gao@intel.com>
- *
- * Any bugs reported given to us we will try to fix... any fixes shared will
- * be incorporated into the next SCTP release.
- */
-#ifndef __LINUX_SCTP_H__
-#define __LINUX_SCTP_H__
-
-#include <linux/in.h> /* We need in_addr. */
-#include <linux/in6.h> /* We need in6_addr. */
-
-
-/* Section 3.1. SCTP Common Header Format */
-typedef struct sctphdr {
- __be16 source;
- __be16 dest;
- __be32 vtag;
- __le32 checksum;
-} __packed sctp_sctphdr_t;
-
-#ifdef __KERNEL__
-#include <linux/skbuff.h>
-
-static inline struct sctphdr *sctp_hdr(const struct sk_buff *skb)
-{
- return (struct sctphdr *)skb_transport_header(skb);
-}
-#endif
-
-/* Section 3.2. Chunk Field Descriptions. */
-typedef struct sctp_chunkhdr {
- __u8 type;
- __u8 flags;
- __be16 length;
-} __packed sctp_chunkhdr_t;
-
-
-/* Section 3.2. Chunk Type Values.
- * [Chunk Type] identifies the type of information contained in the Chunk
- * Value field. It takes a value from 0 to 254. The value of 255 is
- * reserved for future use as an extension field.
- */
-typedef enum {
- SCTP_CID_DATA = 0,
- SCTP_CID_INIT = 1,
- SCTP_CID_INIT_ACK = 2,
- SCTP_CID_SACK = 3,
- SCTP_CID_HEARTBEAT = 4,
- SCTP_CID_HEARTBEAT_ACK = 5,
- SCTP_CID_ABORT = 6,
- SCTP_CID_SHUTDOWN = 7,
- SCTP_CID_SHUTDOWN_ACK = 8,
- SCTP_CID_ERROR = 9,
- SCTP_CID_COOKIE_ECHO = 10,
- SCTP_CID_COOKIE_ACK = 11,
- SCTP_CID_ECN_ECNE = 12,
- SCTP_CID_ECN_CWR = 13,
- SCTP_CID_SHUTDOWN_COMPLETE = 14,
-
- /* AUTH Extension Section 4.1 */
- SCTP_CID_AUTH = 0x0F,
-
- /* PR-SCTP Sec 3.2 */
- SCTP_CID_FWD_TSN = 0xC0,
-
- /* Use hex, as defined in ADDIP sec. 3.1 */
- SCTP_CID_ASCONF = 0xC1,
- SCTP_CID_ASCONF_ACK = 0x80,
-} sctp_cid_t; /* enum */
-
-
-/* Section 3.2
- * Chunk Types are encoded such that the highest-order two bits specify
- * the action that must be taken if the processing endpoint does not
- * recognize the Chunk Type.
- */
-typedef enum {
- SCTP_CID_ACTION_DISCARD = 0x00,
- SCTP_CID_ACTION_DISCARD_ERR = 0x40,
- SCTP_CID_ACTION_SKIP = 0x80,
- SCTP_CID_ACTION_SKIP_ERR = 0xc0,
-} sctp_cid_action_t;
-
-enum { SCTP_CID_ACTION_MASK = 0xc0, };
-
-/* This flag is used in Chunk Flags for ABORT and SHUTDOWN COMPLETE.
- *
- * 3.3.7 Abort Association (ABORT) (6):
- * The T bit is set to 0 if the sender had a TCB that it destroyed.
- * If the sender did not have a TCB it should set this bit to 1.
- */
-enum { SCTP_CHUNK_FLAG_T = 0x01 };
-
-/*
- * Set the T bit
- *
- * 0 1 2 3
- * 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 6 7 8 9 0 1
- * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- * | Type = 14 |Reserved |T| Length = 4 |
- * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- *
- * Chunk Flags: 8 bits
- *
- * Reserved: 7 bits
- * Set to 0 on transmit and ignored on receipt.
- *
- * T bit: 1 bit
- * The T bit is set to 0 if the sender had a TCB that it destroyed. If
- * the sender did NOT have a TCB it should set this bit to 1.
- *
- * Note: Special rules apply to this chunk for verification, please
- * see Section 8.5.1 for details.
- */
-
-#define sctp_test_T_bit(c) ((c)->chunk_hdr->flags & SCTP_CHUNK_FLAG_T)
-
-/* RFC 2960
- * Section 3.2.1 Optional/Variable-length Parmaeter Format.
- */
-
-typedef struct sctp_paramhdr {
- __be16 type;
- __be16 length;
-} __packed sctp_paramhdr_t;
-
-typedef enum {
-
- /* RFC 2960 Section 3.3.5 */
- SCTP_PARAM_HEARTBEAT_INFO = cpu_to_be16(1),
- /* RFC 2960 Section 3.3.2.1 */
- SCTP_PARAM_IPV4_ADDRESS = cpu_to_be16(5),
- SCTP_PARAM_IPV6_ADDRESS = cpu_to_be16(6),
- SCTP_PARAM_STATE_COOKIE = cpu_to_be16(7),
- SCTP_PARAM_UNRECOGNIZED_PARAMETERS = cpu_to_be16(8),
- SCTP_PARAM_COOKIE_PRESERVATIVE = cpu_to_be16(9),
- SCTP_PARAM_HOST_NAME_ADDRESS = cpu_to_be16(11),
- SCTP_PARAM_SUPPORTED_ADDRESS_TYPES = cpu_to_be16(12),
- SCTP_PARAM_ECN_CAPABLE = cpu_to_be16(0x8000),
-
- /* AUTH Extension Section 3 */
- SCTP_PARAM_RANDOM = cpu_to_be16(0x8002),
- SCTP_PARAM_CHUNKS = cpu_to_be16(0x8003),
- SCTP_PARAM_HMAC_ALGO = cpu_to_be16(0x8004),
-
- /* Add-IP: Supported Extensions, Section 4.2 */
- SCTP_PARAM_SUPPORTED_EXT = cpu_to_be16(0x8008),
-
- /* PR-SCTP Sec 3.1 */
- SCTP_PARAM_FWD_TSN_SUPPORT = cpu_to_be16(0xc000),
-
- /* Add-IP Extension. Section 3.2 */
- SCTP_PARAM_ADD_IP = cpu_to_be16(0xc001),
- SCTP_PARAM_DEL_IP = cpu_to_be16(0xc002),
- SCTP_PARAM_ERR_CAUSE = cpu_to_be16(0xc003),
- SCTP_PARAM_SET_PRIMARY = cpu_to_be16(0xc004),
- SCTP_PARAM_SUCCESS_REPORT = cpu_to_be16(0xc005),
- SCTP_PARAM_ADAPTATION_LAYER_IND = cpu_to_be16(0xc006),
-
-} sctp_param_t; /* enum */
-
-
-/* RFC 2960 Section 3.2.1
- * The Parameter Types are encoded such that the highest-order two bits
- * specify the action that must be taken if the processing endpoint does
- * not recognize the Parameter Type.
- *
- */
-typedef enum {
- SCTP_PARAM_ACTION_DISCARD = cpu_to_be16(0x0000),
- SCTP_PARAM_ACTION_DISCARD_ERR = cpu_to_be16(0x4000),
- SCTP_PARAM_ACTION_SKIP = cpu_to_be16(0x8000),
- SCTP_PARAM_ACTION_SKIP_ERR = cpu_to_be16(0xc000),
-} sctp_param_action_t;
-
-enum { SCTP_PARAM_ACTION_MASK = cpu_to_be16(0xc000), };
-
-/* RFC 2960 Section 3.3.1 Payload Data (DATA) (0) */
-
-typedef struct sctp_datahdr {
- __be32 tsn;
- __be16 stream;
- __be16 ssn;
- __be32 ppid;
- __u8 payload[0];
-} __packed sctp_datahdr_t;
-
-typedef struct sctp_data_chunk {
- sctp_chunkhdr_t chunk_hdr;
- sctp_datahdr_t data_hdr;
-} __packed sctp_data_chunk_t;
-
-/* DATA Chuck Specific Flags */
-enum {
- SCTP_DATA_MIDDLE_FRAG = 0x00,
- SCTP_DATA_LAST_FRAG = 0x01,
- SCTP_DATA_FIRST_FRAG = 0x02,
- SCTP_DATA_NOT_FRAG = 0x03,
- SCTP_DATA_UNORDERED = 0x04,
- SCTP_DATA_SACK_IMM = 0x08,
-};
-enum { SCTP_DATA_FRAG_MASK = 0x03, };
-
-
-/* RFC 2960 Section 3.3.2 Initiation (INIT) (1)
- *
- * This chunk is used to initiate a SCTP association between two
- * endpoints.
- */
-typedef struct sctp_inithdr {
- __be32 init_tag;
- __be32 a_rwnd;
- __be16 num_outbound_streams;
- __be16 num_inbound_streams;
- __be32 initial_tsn;
- __u8 params[0];
-} __packed sctp_inithdr_t;
-
-typedef struct sctp_init_chunk {
- sctp_chunkhdr_t chunk_hdr;
- sctp_inithdr_t init_hdr;
-} __packed sctp_init_chunk_t;
-
-
-/* Section 3.3.2.1. IPv4 Address Parameter (5) */
-typedef struct sctp_ipv4addr_param {
- sctp_paramhdr_t param_hdr;
- struct in_addr addr;
-} __packed sctp_ipv4addr_param_t;
-
-/* Section 3.3.2.1. IPv6 Address Parameter (6) */
-typedef struct sctp_ipv6addr_param {
- sctp_paramhdr_t param_hdr;
- struct in6_addr addr;
-} __packed sctp_ipv6addr_param_t;
-
-/* Section 3.3.2.1 Cookie Preservative (9) */
-typedef struct sctp_cookie_preserve_param {
- sctp_paramhdr_t param_hdr;
- __be32 lifespan_increment;
-} __packed sctp_cookie_preserve_param_t;
-
-/* Section 3.3.2.1 Host Name Address (11) */
-typedef struct sctp_hostname_param {
- sctp_paramhdr_t param_hdr;
- uint8_t hostname[0];
-} __packed sctp_hostname_param_t;
-
-/* Section 3.3.2.1 Supported Address Types (12) */
-typedef struct sctp_supported_addrs_param {
- sctp_paramhdr_t param_hdr;
- __be16 types[0];
-} __packed sctp_supported_addrs_param_t;
-
-/* Appendix A. ECN Capable (32768) */
-typedef struct sctp_ecn_capable_param {
- sctp_paramhdr_t param_hdr;
-} __packed sctp_ecn_capable_param_t;
-
-/* ADDIP Section 3.2.6 Adaptation Layer Indication */
-typedef struct sctp_adaptation_ind_param {
- struct sctp_paramhdr param_hdr;
- __be32 adaptation_ind;
-} __packed sctp_adaptation_ind_param_t;
-
-/* ADDIP Section 4.2.7 Supported Extensions Parameter */
-typedef struct sctp_supported_ext_param {
- struct sctp_paramhdr param_hdr;
- __u8 chunks[0];
-} __packed sctp_supported_ext_param_t;
-
-/* AUTH Section 3.1 Random */
-typedef struct sctp_random_param {
- sctp_paramhdr_t param_hdr;
- __u8 random_val[0];
-} __packed sctp_random_param_t;
-
-/* AUTH Section 3.2 Chunk List */
-typedef struct sctp_chunks_param {
- sctp_paramhdr_t param_hdr;
- __u8 chunks[0];
-} __packed sctp_chunks_param_t;
-
-/* AUTH Section 3.3 HMAC Algorithm */
-typedef struct sctp_hmac_algo_param {
- sctp_paramhdr_t param_hdr;
- __be16 hmac_ids[0];
-} __packed sctp_hmac_algo_param_t;
-
-/* RFC 2960. Section 3.3.3 Initiation Acknowledgement (INIT ACK) (2):
- * The INIT ACK chunk is used to acknowledge the initiation of an SCTP
- * association.
- */
-typedef sctp_init_chunk_t sctp_initack_chunk_t;
-
-/* Section 3.3.3.1 State Cookie (7) */
-typedef struct sctp_cookie_param {
- sctp_paramhdr_t p;
- __u8 body[0];
-} __packed sctp_cookie_param_t;
-
-/* Section 3.3.3.1 Unrecognized Parameters (8) */
-typedef struct sctp_unrecognized_param {
- sctp_paramhdr_t param_hdr;
- sctp_paramhdr_t unrecognized;
-} __packed sctp_unrecognized_param_t;
-
-
-
-/*
- * 3.3.4 Selective Acknowledgement (SACK) (3):
- *
- * This chunk is sent to the peer endpoint to acknowledge received DATA
- * chunks and to inform the peer endpoint of gaps in the received
- * subsequences of DATA chunks as represented by their TSNs.
- */
-
-typedef struct sctp_gap_ack_block {
- __be16 start;
- __be16 end;
-} __packed sctp_gap_ack_block_t;
-
-typedef __be32 sctp_dup_tsn_t;
-
-typedef union {
- sctp_gap_ack_block_t gab;
- sctp_dup_tsn_t dup;
-} sctp_sack_variable_t;
-
-typedef struct sctp_sackhdr {
- __be32 cum_tsn_ack;
- __be32 a_rwnd;
- __be16 num_gap_ack_blocks;
- __be16 num_dup_tsns;
- sctp_sack_variable_t variable[0];
-} __packed sctp_sackhdr_t;
-
-typedef struct sctp_sack_chunk {
- sctp_chunkhdr_t chunk_hdr;
- sctp_sackhdr_t sack_hdr;
-} __packed sctp_sack_chunk_t;
-
-
-/* RFC 2960. Section 3.3.5 Heartbeat Request (HEARTBEAT) (4):
- *
- * An endpoint should send this chunk to its peer endpoint to probe the
- * reachability of a particular destination transport address defined in
- * the present association.
- */
-
-typedef struct sctp_heartbeathdr {
- sctp_paramhdr_t info;
-} __packed sctp_heartbeathdr_t;
-
-typedef struct sctp_heartbeat_chunk {
- sctp_chunkhdr_t chunk_hdr;
- sctp_heartbeathdr_t hb_hdr;
-} __packed sctp_heartbeat_chunk_t;
-
-
-/* For the abort and shutdown ACK we must carry the init tag in the
- * common header. Just the common header is all that is needed with a
- * chunk descriptor.
- */
-typedef struct sctp_abort_chunk {
- sctp_chunkhdr_t uh;
-} __packed sctp_abort_chunk_t;
-
-
-/* For the graceful shutdown we must carry the tag (in common header)
- * and the highest consecutive acking value.
- */
-typedef struct sctp_shutdownhdr {
- __be32 cum_tsn_ack;
-} __packed sctp_shutdownhdr_t;
-
-struct sctp_shutdown_chunk_t {
- sctp_chunkhdr_t chunk_hdr;
- sctp_shutdownhdr_t shutdown_hdr;
-} __packed;
-
-/* RFC 2960. Section 3.3.10 Operation Error (ERROR) (9) */
-
-typedef struct sctp_errhdr {
- __be16 cause;
- __be16 length;
- __u8 variable[0];
-} __packed sctp_errhdr_t;
-
-typedef struct sctp_operr_chunk {
- sctp_chunkhdr_t chunk_hdr;
- sctp_errhdr_t err_hdr;
-} __packed sctp_operr_chunk_t;
-
-/* RFC 2960 3.3.10 - Operation Error
- *
- * Cause Code: 16 bits (unsigned integer)
- *
- * Defines the type of error conditions being reported.
- * Cause Code
- * Value Cause Code
- * --------- ----------------
- * 1 Invalid Stream Identifier
- * 2 Missing Mandatory Parameter
- * 3 Stale Cookie Error
- * 4 Out of Resource
- * 5 Unresolvable Address
- * 6 Unrecognized Chunk Type
- * 7 Invalid Mandatory Parameter
- * 8 Unrecognized Parameters
- * 9 No User Data
- * 10 Cookie Received While Shutting Down
- */
-typedef enum {
-
- SCTP_ERROR_NO_ERROR = cpu_to_be16(0x00),
- SCTP_ERROR_INV_STRM = cpu_to_be16(0x01),
- SCTP_ERROR_MISS_PARAM = cpu_to_be16(0x02),
- SCTP_ERROR_STALE_COOKIE = cpu_to_be16(0x03),
- SCTP_ERROR_NO_RESOURCE = cpu_to_be16(0x04),
- SCTP_ERROR_DNS_FAILED = cpu_to_be16(0x05),
- SCTP_ERROR_UNKNOWN_CHUNK = cpu_to_be16(0x06),
- SCTP_ERROR_INV_PARAM = cpu_to_be16(0x07),
- SCTP_ERROR_UNKNOWN_PARAM = cpu_to_be16(0x08),
- SCTP_ERROR_NO_DATA = cpu_to_be16(0x09),
- SCTP_ERROR_COOKIE_IN_SHUTDOWN = cpu_to_be16(0x0a),
-
-
- /* SCTP Implementation Guide:
- * 11 Restart of an association with new addresses
- * 12 User Initiated Abort
- * 13 Protocol Violation
- */
-
- SCTP_ERROR_RESTART = cpu_to_be16(0x0b),
- SCTP_ERROR_USER_ABORT = cpu_to_be16(0x0c),
- SCTP_ERROR_PROTO_VIOLATION = cpu_to_be16(0x0d),
-
- /* ADDIP Section 3.3 New Error Causes
- *
- * Four new Error Causes are added to the SCTP Operational Errors,
- * primarily for use in the ASCONF-ACK chunk.
- *
- * Value Cause Code
- * --------- ----------------
- * 0x00A0 Request to Delete Last Remaining IP Address.
- * 0x00A1 Operation Refused Due to Resource Shortage.
- * 0x00A2 Request to Delete Source IP Address.
- * 0x00A3 Association Aborted due to illegal ASCONF-ACK
- * 0x00A4 Request refused - no authorization.
- */
- SCTP_ERROR_DEL_LAST_IP = cpu_to_be16(0x00A0),
- SCTP_ERROR_RSRC_LOW = cpu_to_be16(0x00A1),
- SCTP_ERROR_DEL_SRC_IP = cpu_to_be16(0x00A2),
- SCTP_ERROR_ASCONF_ACK = cpu_to_be16(0x00A3),
- SCTP_ERROR_REQ_REFUSED = cpu_to_be16(0x00A4),
-
- /* AUTH Section 4. New Error Cause
- *
- * This section defines a new error cause that will be sent if an AUTH
- * chunk is received with an unsupported HMAC identifier.
- * illustrates the new error cause.
- *
- * Cause Code Error Cause Name
- * --------------------------------------------------------------
- * 0x0105 Unsupported HMAC Identifier
- */
- SCTP_ERROR_UNSUP_HMAC = cpu_to_be16(0x0105)
-} sctp_error_t;
-
-
-
-/* RFC 2960. Appendix A. Explicit Congestion Notification.
- * Explicit Congestion Notification Echo (ECNE) (12)
- */
-typedef struct sctp_ecnehdr {
- __be32 lowest_tsn;
-} sctp_ecnehdr_t;
-
-typedef struct sctp_ecne_chunk {
- sctp_chunkhdr_t chunk_hdr;
- sctp_ecnehdr_t ence_hdr;
-} __packed sctp_ecne_chunk_t;
-
-/* RFC 2960. Appendix A. Explicit Congestion Notification.
- * Congestion Window Reduced (CWR) (13)
- */
-typedef struct sctp_cwrhdr {
- __be32 lowest_tsn;
-} sctp_cwrhdr_t;
-
-typedef struct sctp_cwr_chunk {
- sctp_chunkhdr_t chunk_hdr;
- sctp_cwrhdr_t cwr_hdr;
-} __packed sctp_cwr_chunk_t;
-
-/* PR-SCTP
- * 3.2 Forward Cumulative TSN Chunk Definition (FORWARD TSN)
- *
- * Forward Cumulative TSN chunk has the following format:
- *
- * 0 1 2 3
- * 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 6 7 8 9 0 1
- * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- * | Type = 192 | Flags = 0x00 | Length = Variable |
- * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- * | New Cumulative TSN |
- * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- * | Stream-1 | Stream Sequence-1 |
- * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- * \ /
- * / \
- * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- * | Stream-N | Stream Sequence-N |
- * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- *
- * Chunk Flags:
- *
- * Set to all zeros on transmit and ignored on receipt.
- *
- * New Cumulative TSN: 32 bit u_int
- *
- * This indicates the new cumulative TSN to the data receiver. Upon
- * the reception of this value, the data receiver MUST consider
- * any missing TSNs earlier than or equal to this value as received
- * and stop reporting them as gaps in any subsequent SACKs.
- *
- * Stream-N: 16 bit u_int
- *
- * This field holds a stream number that was skipped by this
- * FWD-TSN.
- *
- * Stream Sequence-N: 16 bit u_int
- * This field holds the sequence number associated with the stream
- * that was skipped. The stream sequence field holds the largest stream
- * sequence number in this stream being skipped. The receiver of
- * the FWD-TSN's can use the Stream-N and Stream Sequence-N fields
- * to enable delivery of any stranded TSN's that remain on the stream
- * re-ordering queues. This field MUST NOT report TSN's corresponding
- * to DATA chunk that are marked as unordered. For ordered DATA
- * chunks this field MUST be filled in.
- */
-struct sctp_fwdtsn_skip {
- __be16 stream;
- __be16 ssn;
-} __packed;
-
-struct sctp_fwdtsn_hdr {
- __be32 new_cum_tsn;
- struct sctp_fwdtsn_skip skip[0];
-} __packed;
-
-struct sctp_fwdtsn_chunk {
- struct sctp_chunkhdr chunk_hdr;
- struct sctp_fwdtsn_hdr fwdtsn_hdr;
-} __packed;
-
-
-/* ADDIP
- * Section 3.1.1 Address Configuration Change Chunk (ASCONF)
- *
- * Serial Number: 32 bits (unsigned integer)
- * This value represents a Serial Number for the ASCONF Chunk. The
- * valid range of Serial Number is from 0 to 2^32-1.
- * Serial Numbers wrap back to 0 after reaching 2^32 -1.
- *
- * Address Parameter: 8 or 20 bytes (depending on type)
- * The address is an address of the sender of the ASCONF chunk,
- * the address MUST be considered part of the association by the
- * peer endpoint. This field may be used by the receiver of the
- * ASCONF to help in finding the association. This parameter MUST
- * be present in every ASCONF message i.e. it is a mandatory TLV
- * parameter.
- *
- * ASCONF Parameter: TLV format
- * Each Address configuration change is represented by a TLV
- * parameter as defined in Section 3.2. One or more requests may
- * be present in an ASCONF Chunk.
- *
- * Section 3.1.2 Address Configuration Acknowledgement Chunk (ASCONF-ACK)
- *
- * Serial Number: 32 bits (unsigned integer)
- * This value represents the Serial Number for the received ASCONF
- * Chunk that is acknowledged by this chunk. This value is copied
- * from the received ASCONF Chunk.
- *
- * ASCONF Parameter Response: TLV format
- * The ASCONF Parameter Response is used in the ASCONF-ACK to
- * report status of ASCONF processing.
- */
-typedef struct sctp_addip_param {
- sctp_paramhdr_t param_hdr;
- __be32 crr_id;
-} __packed sctp_addip_param_t;
-
-typedef struct sctp_addiphdr {
- __be32 serial;
- __u8 params[0];
-} __packed sctp_addiphdr_t;
-
-typedef struct sctp_addip_chunk {
- sctp_chunkhdr_t chunk_hdr;
- sctp_addiphdr_t addip_hdr;
-} __packed sctp_addip_chunk_t;
-
-/* AUTH
- * Section 4.1 Authentication Chunk (AUTH)
- *
- * This chunk is used to hold the result of the HMAC calculation.
- *
- * 0 1 2 3
- * 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 6 7 8 9 0 1
- * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- * | Type = 0x0F | Flags=0 | Length |
- * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- * | Shared Key Identifier | HMAC Identifier |
- * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- * | |
- * \ HMAC /
- * / \
- * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- *
- * Type: 1 byte (unsigned integer)
- * This value MUST be set to 0x0F for all AUTH-chunks.
- *
- * Flags: 1 byte (unsigned integer)
- * Set to zero on transmit and ignored on receipt.
- *
- * Length: 2 bytes (unsigned integer)
- * This value holds the length of the HMAC in bytes plus 8.
- *
- * Shared Key Identifier: 2 bytes (unsigned integer)
- * This value describes which endpoint pair shared key is used.
- *
- * HMAC Identifier: 2 bytes (unsigned integer)
- * This value describes which message digest is being used. Table 2
- * shows the currently defined values.
- *
- * The following Table 2 shows the currently defined values for HMAC
- * identifiers.
- *
- * +-----------------+--------------------------+
- * | HMAC Identifier | Message Digest Algorithm |
- * +-----------------+--------------------------+
- * | 0 | Reserved |
- * | 1 | SHA-1 defined in [8] |
- * | 2 | Reserved |
- * | 3 | SHA-256 defined in [8] |
- * +-----------------+--------------------------+
- *
- *
- * HMAC: n bytes (unsigned integer) This hold the result of the HMAC
- * calculation.
- */
-typedef struct sctp_authhdr {
- __be16 shkey_id;
- __be16 hmac_id;
- __u8 hmac[0];
-} __packed sctp_authhdr_t;
-
-typedef struct sctp_auth_chunk {
- sctp_chunkhdr_t chunk_hdr;
- sctp_authhdr_t auth_hdr;
-} __packed sctp_auth_chunk_t;
-
-#endif /* __LINUX_SCTP_H__ */
diff --git a/ANDROID_3.4.5/include/linux/scx200.h b/ANDROID_3.4.5/include/linux/scx200.h
deleted file mode 100644
index de466e11..00000000
--- a/ANDROID_3.4.5/include/linux/scx200.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* linux/include/linux/scx200.h
-
- Copyright (c) 2001,2002 Christer Weinigel <wingel@nano-system.com>
-
- Defines for the National Semiconductor SCx200 Processors
-*/
-
-/* Interesting stuff for the National Semiconductor SCx200 CPU */
-
-extern unsigned scx200_cb_base;
-
-#define scx200_cb_present() (scx200_cb_base!=0)
-
-/* F0 PCI Header/Bridge Configuration Registers */
-#define SCx200_DOCCS_BASE 0x78 /* DOCCS Base Address Register */
-#define SCx200_DOCCS_CTRL 0x7c /* DOCCS Control Register */
-
-/* GPIO Register Block */
-#define SCx200_GPIO_SIZE 0x2c /* Size of GPIO register block */
-
-/* General Configuration Block */
-#define SCx200_CB_BASE_FIXED 0x9000 /* Base fixed at 0x9000 according to errata? */
-
-/* Watchdog Timer */
-#define SCx200_WDT_OFFSET 0x00 /* offset within configuration block */
-#define SCx200_WDT_SIZE 0x05 /* size */
-
-#define SCx200_WDT_WDTO 0x00 /* Time-Out Register */
-#define SCx200_WDT_WDCNFG 0x02 /* Configuration Register */
-#define SCx200_WDT_WDSTS 0x04 /* Status Register */
-#define SCx200_WDT_WDSTS_WDOVF (1<<0) /* Overflow bit */
-
-/* High Resolution Timer */
-#define SCx200_TIMER_OFFSET 0x08
-#define SCx200_TIMER_SIZE 0x06
-
-/* Clock Generators */
-#define SCx200_CLOCKGEN_OFFSET 0x10
-#define SCx200_CLOCKGEN_SIZE 0x10
-
-/* Pin Multiplexing and Miscellaneous Configuration Registers */
-#define SCx200_MISC_OFFSET 0x30
-#define SCx200_MISC_SIZE 0x10
-
-#define SCx200_PMR 0x30 /* Pin Multiplexing Register */
-#define SCx200_MCR 0x34 /* Miscellaneous Configuration Register */
-#define SCx200_INTSEL 0x38 /* Interrupt Selection Register */
-#define SCx200_IID 0x3c /* IA On a Chip Identification Number Reg */
-#define SCx200_REV 0x3d /* Revision Register */
-#define SCx200_CBA 0x3e /* Configuration Base Address Register */
-#define SCx200_CBA_SCRATCH 0x64 /* Configuration Base Address Scratchpad */
diff --git a/ANDROID_3.4.5/include/linux/scx200_gpio.h b/ANDROID_3.4.5/include/linux/scx200_gpio.h
deleted file mode 100644
index ece4e553..00000000
--- a/ANDROID_3.4.5/include/linux/scx200_gpio.h
+++ /dev/null
@@ -1,88 +0,0 @@
-u32 scx200_gpio_configure(unsigned index, u32 set, u32 clear);
-
-extern unsigned scx200_gpio_base;
-extern unsigned long scx200_gpio_shadow[2];
-extern struct nsc_gpio_ops scx200_gpio_ops;
-
-#define scx200_gpio_present() (scx200_gpio_base!=0)
-
-/* Definitions to make sure I do the same thing in all functions */
-#define __SCx200_GPIO_BANK unsigned bank = index>>5
-#define __SCx200_GPIO_IOADDR unsigned short ioaddr = scx200_gpio_base+0x10*bank
-#define __SCx200_GPIO_SHADOW unsigned long *shadow = scx200_gpio_shadow+bank
-#define __SCx200_GPIO_INDEX index &= 31
-
-#define __SCx200_GPIO_OUT __asm__ __volatile__("outsl":"=mS" (shadow):"d" (ioaddr), "0" (shadow))
-
-/* returns the value of the GPIO pin */
-
-static inline int scx200_gpio_get(unsigned index) {
- __SCx200_GPIO_BANK;
- __SCx200_GPIO_IOADDR + 0x04;
- __SCx200_GPIO_INDEX;
-
- return (inl(ioaddr) & (1<<index)) ? 1 : 0;
-}
-
-/* return the value driven on the GPIO signal (the value that will be
- driven if the GPIO is configured as an output, it might not be the
- state of the GPIO right now if the GPIO is configured as an input) */
-
-static inline int scx200_gpio_current(unsigned index) {
- __SCx200_GPIO_BANK;
- __SCx200_GPIO_INDEX;
-
- return (scx200_gpio_shadow[bank] & (1<<index)) ? 1 : 0;
-}
-
-/* drive the GPIO signal high */
-
-static inline void scx200_gpio_set_high(unsigned index) {
- __SCx200_GPIO_BANK;
- __SCx200_GPIO_IOADDR;
- __SCx200_GPIO_SHADOW;
- __SCx200_GPIO_INDEX;
- set_bit(index, shadow); /* __set_bit()? */
- __SCx200_GPIO_OUT;
-}
-
-/* drive the GPIO signal low */
-
-static inline void scx200_gpio_set_low(unsigned index) {
- __SCx200_GPIO_BANK;
- __SCx200_GPIO_IOADDR;
- __SCx200_GPIO_SHADOW;
- __SCx200_GPIO_INDEX;
- clear_bit(index, shadow); /* __clear_bit()? */
- __SCx200_GPIO_OUT;
-}
-
-/* drive the GPIO signal to state */
-
-static inline void scx200_gpio_set(unsigned index, int state) {
- __SCx200_GPIO_BANK;
- __SCx200_GPIO_IOADDR;
- __SCx200_GPIO_SHADOW;
- __SCx200_GPIO_INDEX;
- if (state)
- set_bit(index, shadow);
- else
- clear_bit(index, shadow);
- __SCx200_GPIO_OUT;
-}
-
-/* toggle the GPIO signal */
-static inline void scx200_gpio_change(unsigned index) {
- __SCx200_GPIO_BANK;
- __SCx200_GPIO_IOADDR;
- __SCx200_GPIO_SHADOW;
- __SCx200_GPIO_INDEX;
- change_bit(index, shadow);
- __SCx200_GPIO_OUT;
-}
-
-#undef __SCx200_GPIO_BANK
-#undef __SCx200_GPIO_IOADDR
-#undef __SCx200_GPIO_SHADOW
-#undef __SCx200_GPIO_INDEX
-#undef __SCx200_GPIO_OUT
diff --git a/ANDROID_3.4.5/include/linux/sdla.h b/ANDROID_3.4.5/include/linux/sdla.h
deleted file mode 100644
index 9995c7fc..00000000
--- a/ANDROID_3.4.5/include/linux/sdla.h
+++ /dev/null
@@ -1,335 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Global definitions for the Frame relay interface.
- *
- * Version: @(#)if_ifrad.h 0.20 13 Apr 96
- *
- * Author: Mike McLagan <mike.mclagan@linux.org>
- *
- * Changes:
- * 0.15 Mike McLagan Structure packing
- *
- * 0.20 Mike McLagan New flags for S508 buffer handling
- *
- * 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 SDLA_H
-#define SDLA_H
-
-/* adapter type */
-#define SDLA_TYPES
-#define SDLA_S502A 5020
-#define SDLA_S502E 5021
-#define SDLA_S503 5030
-#define SDLA_S507 5070
-#define SDLA_S508 5080
-#define SDLA_S509 5090
-#define SDLA_UNKNOWN -1
-
-/* port selection flags for the S508 */
-#define SDLA_S508_PORT_V35 0x00
-#define SDLA_S508_PORT_RS232 0x02
-
-/* Z80 CPU speeds */
-#define SDLA_CPU_3M 0x00
-#define SDLA_CPU_5M 0x01
-#define SDLA_CPU_7M 0x02
-#define SDLA_CPU_8M 0x03
-#define SDLA_CPU_10M 0x04
-#define SDLA_CPU_16M 0x05
-#define SDLA_CPU_12M 0x06
-
-/* some private IOCTLs */
-#define SDLA_IDENTIFY (FRAD_LAST_IOCTL + 1)
-#define SDLA_CPUSPEED (FRAD_LAST_IOCTL + 2)
-#define SDLA_PROTOCOL (FRAD_LAST_IOCTL + 3)
-
-#define SDLA_CLEARMEM (FRAD_LAST_IOCTL + 4)
-#define SDLA_WRITEMEM (FRAD_LAST_IOCTL + 5)
-#define SDLA_READMEM (FRAD_LAST_IOCTL + 6)
-
-struct sdla_mem {
- int addr;
- int len;
- void __user *data;
-};
-
-#define SDLA_START (FRAD_LAST_IOCTL + 7)
-#define SDLA_STOP (FRAD_LAST_IOCTL + 8)
-
-/* some offsets in the Z80's memory space */
-#define SDLA_NMIADDR 0x0000
-#define SDLA_CONF_ADDR 0x0010
-#define SDLA_S502A_NMIADDR 0x0066
-#define SDLA_CODE_BASEADDR 0x0100
-#define SDLA_WINDOW_SIZE 0x2000
-#define SDLA_ADDR_MASK 0x1FFF
-
-/* largest handleable block of data */
-#define SDLA_MAX_DATA 4080
-#define SDLA_MAX_MTU 4072 /* MAX_DATA - sizeof(fradhdr) */
-#define SDLA_MAX_DLCI 24
-
-/* this should be the same as frad_conf */
-struct sdla_conf {
- short station;
- short config;
- short kbaud;
- short clocking;
- short max_frm;
- short T391;
- short T392;
- short N391;
- short N392;
- short N393;
- short CIR_fwd;
- short Bc_fwd;
- short Be_fwd;
- short CIR_bwd;
- short Bc_bwd;
- short Be_bwd;
-};
-
-/* this should be the same as dlci_conf */
-struct sdla_dlci_conf {
- short config;
- short CIR_fwd;
- short Bc_fwd;
- short Be_fwd;
- short CIR_bwd;
- short Bc_bwd;
- short Be_bwd;
- short Tc_fwd;
- short Tc_bwd;
- short Tf_max;
- short Tb_max;
-};
-
-#ifdef __KERNEL__
-
-/* important Z80 window addresses */
-#define SDLA_CONTROL_WND 0xE000
-
-#define SDLA_502_CMD_BUF 0xEF60
-#define SDLA_502_RCV_BUF 0xA900
-#define SDLA_502_TXN_AVAIL 0xFFF1
-#define SDLA_502_RCV_AVAIL 0xFFF2
-#define SDLA_502_EVENT_FLAGS 0xFFF3
-#define SDLA_502_MDM_STATUS 0xFFF4
-#define SDLA_502_IRQ_INTERFACE 0xFFFD
-#define SDLA_502_IRQ_PERMISSION 0xFFFE
-#define SDLA_502_DATA_OFS 0x0010
-
-#define SDLA_508_CMD_BUF 0xE000
-#define SDLA_508_TXBUF_INFO 0xF100
-#define SDLA_508_RXBUF_INFO 0xF120
-#define SDLA_508_EVENT_FLAGS 0xF003
-#define SDLA_508_MDM_STATUS 0xF004
-#define SDLA_508_IRQ_INTERFACE 0xF010
-#define SDLA_508_IRQ_PERMISSION 0xF011
-#define SDLA_508_TSE_OFFSET 0xF012
-
-/* Event flags */
-#define SDLA_EVENT_STATUS 0x01
-#define SDLA_EVENT_DLCI_STATUS 0x02
-#define SDLA_EVENT_BAD_DLCI 0x04
-#define SDLA_EVENT_LINK_DOWN 0x40
-
-/* IRQ Trigger flags */
-#define SDLA_INTR_RX 0x01
-#define SDLA_INTR_TX 0x02
-#define SDLA_INTR_MODEM 0x04
-#define SDLA_INTR_COMPLETE 0x08
-#define SDLA_INTR_STATUS 0x10
-#define SDLA_INTR_TIMER 0x20
-
-/* DLCI status bits */
-#define SDLA_DLCI_DELETED 0x01
-#define SDLA_DLCI_ACTIVE 0x02
-#define SDLA_DLCI_WAITING 0x04
-#define SDLA_DLCI_NEW 0x08
-#define SDLA_DLCI_INCLUDED 0x40
-
-/* valid command codes */
-#define SDLA_INFORMATION_WRITE 0x01
-#define SDLA_INFORMATION_READ 0x02
-#define SDLA_ISSUE_IN_CHANNEL_SIGNAL 0x03
-#define SDLA_SET_DLCI_CONFIGURATION 0x10
-#define SDLA_READ_DLCI_CONFIGURATION 0x11
-#define SDLA_DISABLE_COMMUNICATIONS 0x12
-#define SDLA_ENABLE_COMMUNICATIONS 0x13
-#define SDLA_READ_DLC_STATUS 0x14
-#define SDLA_READ_DLC_STATISTICS 0x15
-#define SDLA_FLUSH_DLC_STATISTICS 0x16
-#define SDLA_LIST_ACTIVE_DLCI 0x17
-#define SDLA_FLUSH_INFORMATION_BUFFERS 0x18
-#define SDLA_ADD_DLCI 0x20
-#define SDLA_DELETE_DLCI 0x21
-#define SDLA_ACTIVATE_DLCI 0x22
-#define SDLA_DEACTIVATE_DLCI 0x23
-#define SDLA_READ_MODEM_STATUS 0x30
-#define SDLA_SET_MODEM_STATUS 0x31
-#define SDLA_READ_COMMS_ERR_STATS 0x32
-#define SDLA_FLUSH_COMMS_ERR_STATS 0x33
-#define SDLA_READ_CODE_VERSION 0x40
-#define SDLA_SET_IRQ_TRIGGER 0x50
-#define SDLA_GET_IRQ_TRIGGER 0x51
-
-/* In channel signal types */
-#define SDLA_ICS_LINK_VERIFY 0x02
-#define SDLA_ICS_STATUS_ENQ 0x03
-
-/* modem status flags */
-#define SDLA_MODEM_DTR_HIGH 0x01
-#define SDLA_MODEM_RTS_HIGH 0x02
-#define SDLA_MODEM_DCD_HIGH 0x08
-#define SDLA_MODEM_CTS_HIGH 0x20
-
-/* used for RET_MODEM interpretation */
-#define SDLA_MODEM_DCD_LOW 0x01
-#define SDLA_MODEM_CTS_LOW 0x02
-
-/* return codes */
-#define SDLA_RET_OK 0x00
-#define SDLA_RET_COMMUNICATIONS 0x01
-#define SDLA_RET_CHANNEL_INACTIVE 0x02
-#define SDLA_RET_DLCI_INACTIVE 0x03
-#define SDLA_RET_DLCI_CONFIG 0x04
-#define SDLA_RET_BUF_TOO_BIG 0x05
-#define SDLA_RET_NO_DATA 0x05
-#define SDLA_RET_BUF_OVERSIZE 0x06
-#define SDLA_RET_CIR_OVERFLOW 0x07
-#define SDLA_RET_NO_BUFS 0x08
-#define SDLA_RET_TIMEOUT 0x0A
-#define SDLA_RET_MODEM 0x10
-#define SDLA_RET_CHANNEL_OFF 0x11
-#define SDLA_RET_CHANNEL_ON 0x12
-#define SDLA_RET_DLCI_STATUS 0x13
-#define SDLA_RET_DLCI_UNKNOWN 0x14
-#define SDLA_RET_COMMAND_INVALID 0x1F
-
-/* Configuration flags */
-#define SDLA_DIRECT_RECV 0x0080
-#define SDLA_TX_NO_EXCEPT 0x0020
-#define SDLA_NO_ICF_MSGS 0x1000
-#define SDLA_TX50_RX50 0x0000
-#define SDLA_TX70_RX30 0x2000
-#define SDLA_TX30_RX70 0x4000
-
-/* IRQ selection flags */
-#define SDLA_IRQ_RECEIVE 0x01
-#define SDLA_IRQ_TRANSMIT 0x02
-#define SDLA_IRQ_MODEM_STAT 0x04
-#define SDLA_IRQ_COMMAND 0x08
-#define SDLA_IRQ_CHANNEL 0x10
-#define SDLA_IRQ_TIMER 0x20
-
-/* definitions for PC memory mapping */
-#define SDLA_8K_WINDOW 0x01
-#define SDLA_S502_SEG_A 0x10
-#define SDLA_S502_SEG_C 0x20
-#define SDLA_S502_SEG_D 0x00
-#define SDLA_S502_SEG_E 0x30
-#define SDLA_S507_SEG_A 0x00
-#define SDLA_S507_SEG_B 0x40
-#define SDLA_S507_SEG_C 0x80
-#define SDLA_S507_SEG_E 0xC0
-#define SDLA_S508_SEG_A 0x00
-#define SDLA_S508_SEG_C 0x10
-#define SDLA_S508_SEG_D 0x08
-#define SDLA_S508_SEG_E 0x18
-
-/* SDLA adapter port constants */
-#define SDLA_IO_EXTENTS 0x04
-
-#define SDLA_REG_CONTROL 0x00
-#define SDLA_REG_PC_WINDOW 0x01 /* offset for PC window select latch */
-#define SDLA_REG_Z80_WINDOW 0x02 /* offset for Z80 window select latch */
-#define SDLA_REG_Z80_CONTROL 0x03 /* offset for Z80 control latch */
-
-#define SDLA_S502_STS 0x00 /* status reg for 502, 502E, 507 */
-#define SDLA_S508_GNRL 0x00 /* general purp. reg for 508 */
-#define SDLA_S508_STS 0x01 /* status reg for 508 */
-#define SDLA_S508_IDR 0x02 /* ID reg for 508 */
-
-/* control register flags */
-#define SDLA_S502A_START 0x00 /* start the CPU */
-#define SDLA_S502A_INTREQ 0x02
-#define SDLA_S502A_INTEN 0x04
-#define SDLA_S502A_HALT 0x08 /* halt the CPU */
-#define SDLA_S502A_NMI 0x10 /* issue an NMI to the CPU */
-
-#define SDLA_S502E_CPUEN 0x01
-#define SDLA_S502E_ENABLE 0x02
-#define SDLA_S502E_INTACK 0x04
-
-#define SDLA_S507_ENABLE 0x01
-#define SDLA_S507_IRQ3 0x00
-#define SDLA_S507_IRQ4 0x20
-#define SDLA_S507_IRQ5 0x40
-#define SDLA_S507_IRQ7 0x60
-#define SDLA_S507_IRQ10 0x80
-#define SDLA_S507_IRQ11 0xA0
-#define SDLA_S507_IRQ12 0xC0
-#define SDLA_S507_IRQ15 0xE0
-
-#define SDLA_HALT 0x00
-#define SDLA_CPUEN 0x02
-#define SDLA_MEMEN 0x04
-#define SDLA_S507_EPROMWR 0x08
-#define SDLA_S507_EPROMCLK 0x10
-#define SDLA_S508_INTRQ 0x08
-#define SDLA_S508_INTEN 0x10
-
-struct sdla_cmd {
- char opp_flag;
- char cmd;
- short length;
- char retval;
- short dlci;
- char flags;
- short rxlost_int;
- long rxlost_app;
- char reserve[2];
- char data[SDLA_MAX_DATA]; /* transfer data buffer */
-} __attribute__((packed));
-
-struct intr_info {
- char flags;
- short txlen;
- char irq;
- char flags2;
- short timeout;
-} __attribute__((packed));
-
-/* found in the 508's control window at RXBUF_INFO */
-struct buf_info {
- unsigned short rse_num;
- unsigned long rse_base;
- unsigned long rse_next;
- unsigned long buf_base;
- unsigned short reserved;
- unsigned long buf_top;
-} __attribute__((packed));
-
-/* structure pointed to by rse_base in RXBUF_INFO struct */
-struct buf_entry {
- char opp_flag;
- short length;
- short dlci;
- char flags;
- short timestamp;
- short reserved[2];
- long buf_addr;
-} __attribute__((packed));
-
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/seccomp.h b/ANDROID_3.4.5/include/linux/seccomp.h
deleted file mode 100644
index cc7a4e9c..00000000
--- a/ANDROID_3.4.5/include/linux/seccomp.h
+++ /dev/null
@@ -1,52 +0,0 @@
-#ifndef _LINUX_SECCOMP_H
-#define _LINUX_SECCOMP_H
-
-
-#ifdef CONFIG_SECCOMP
-
-#include <linux/thread_info.h>
-#include <asm/seccomp.h>
-
-typedef struct { int mode; } seccomp_t;
-
-extern void __secure_computing(int);
-static inline void secure_computing(int this_syscall)
-{
- if (unlikely(test_thread_flag(TIF_SECCOMP)))
- __secure_computing(this_syscall);
-}
-
-extern long prctl_get_seccomp(void);
-extern long prctl_set_seccomp(unsigned long);
-
-static inline int seccomp_mode(seccomp_t *s)
-{
- return s->mode;
-}
-
-#else /* CONFIG_SECCOMP */
-
-#include <linux/errno.h>
-
-typedef struct { } seccomp_t;
-
-#define secure_computing(x) do { } while (0)
-
-static inline long prctl_get_seccomp(void)
-{
- return -EINVAL;
-}
-
-static inline long prctl_set_seccomp(unsigned long arg2)
-{
- return -EINVAL;
-}
-
-static inline int seccomp_mode(seccomp_t *s)
-{
- return 0;
-}
-
-#endif /* CONFIG_SECCOMP */
-
-#endif /* _LINUX_SECCOMP_H */
diff --git a/ANDROID_3.4.5/include/linux/securebits.h b/ANDROID_3.4.5/include/linux/securebits.h
deleted file mode 100644
index 33406174..00000000
--- a/ANDROID_3.4.5/include/linux/securebits.h
+++ /dev/null
@@ -1,54 +0,0 @@
-#ifndef _LINUX_SECUREBITS_H
-#define _LINUX_SECUREBITS_H 1
-
-/* Each securesetting is implemented using two bits. One bit specifies
- whether the setting is on or off. The other bit specify whether the
- setting is locked or not. A setting which is locked cannot be
- changed from user-level. */
-#define issecure_mask(X) (1 << (X))
-#ifdef __KERNEL__
-#define issecure(X) (issecure_mask(X) & current_cred_xxx(securebits))
-#endif
-
-#define SECUREBITS_DEFAULT 0x00000000
-
-/* When set UID 0 has no special privileges. When unset, we support
- inheritance of root-permissions and suid-root executable under
- compatibility mode. We raise the effective and inheritable bitmasks
- *of the executable file* if the effective uid of the new process is
- 0. If the real uid is 0, we raise the effective (legacy) bit of the
- executable file. */
-#define SECURE_NOROOT 0
-#define SECURE_NOROOT_LOCKED 1 /* make bit-0 immutable */
-
-#define SECBIT_NOROOT (issecure_mask(SECURE_NOROOT))
-#define SECBIT_NOROOT_LOCKED (issecure_mask(SECURE_NOROOT_LOCKED))
-
-/* When set, setuid to/from uid 0 does not trigger capability-"fixup".
- When unset, to provide compatiblility with old programs relying on
- set*uid to gain/lose privilege, transitions to/from uid 0 cause
- capabilities to be gained/lost. */
-#define SECURE_NO_SETUID_FIXUP 2
-#define SECURE_NO_SETUID_FIXUP_LOCKED 3 /* make bit-2 immutable */
-
-#define SECBIT_NO_SETUID_FIXUP (issecure_mask(SECURE_NO_SETUID_FIXUP))
-#define SECBIT_NO_SETUID_FIXUP_LOCKED \
- (issecure_mask(SECURE_NO_SETUID_FIXUP_LOCKED))
-
-/* When set, a process can retain its capabilities even after
- transitioning to a non-root user (the set-uid fixup suppressed by
- bit 2). Bit-4 is cleared when a process calls exec(); setting both
- bit 4 and 5 will create a barrier through exec that no exec()'d
- child can use this feature again. */
-#define SECURE_KEEP_CAPS 4
-#define SECURE_KEEP_CAPS_LOCKED 5 /* make bit-4 immutable */
-
-#define SECBIT_KEEP_CAPS (issecure_mask(SECURE_KEEP_CAPS))
-#define SECBIT_KEEP_CAPS_LOCKED (issecure_mask(SECURE_KEEP_CAPS_LOCKED))
-
-#define SECURE_ALL_BITS (issecure_mask(SECURE_NOROOT) | \
- issecure_mask(SECURE_NO_SETUID_FIXUP) | \
- issecure_mask(SECURE_KEEP_CAPS))
-#define SECURE_ALL_LOCKS (SECURE_ALL_BITS << 1)
-
-#endif /* !_LINUX_SECUREBITS_H */
diff --git a/ANDROID_3.4.5/include/linux/security.h b/ANDROID_3.4.5/include/linux/security.h
deleted file mode 100644
index 673afbb8..00000000
--- a/ANDROID_3.4.5/include/linux/security.h
+++ /dev/null
@@ -1,3025 +0,0 @@
-/*
- * Linux Security plug
- *
- * Copyright (C) 2001 WireX Communications, Inc <chris@wirex.com>
- * Copyright (C) 2001 Greg Kroah-Hartman <greg@kroah.com>
- * Copyright (C) 2001 Networks Associates Technology, Inc <ssmalley@nai.com>
- * Copyright (C) 2001 James Morris <jmorris@intercode.com.au>
- * Copyright (C) 2001 Silicon Graphics, Inc. (Trust Technology Group)
- *
- * 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.
- *
- * Due to this file being licensed under the GPL there is controversy over
- * whether this permits you to write a module that #includes this file
- * without placing your module under the GPL. Please consult a lawyer for
- * advice before doing this.
- *
- */
-
-#ifndef __LINUX_SECURITY_H
-#define __LINUX_SECURITY_H
-
-#include <linux/key.h>
-#include <linux/capability.h>
-#include <linux/slab.h>
-#include <linux/err.h>
-
-struct linux_binprm;
-struct cred;
-struct rlimit;
-struct siginfo;
-struct sem_array;
-struct sembuf;
-struct kern_ipc_perm;
-struct audit_context;
-struct super_block;
-struct inode;
-struct dentry;
-struct file;
-struct vfsmount;
-struct path;
-struct qstr;
-struct nameidata;
-struct iattr;
-struct fown_struct;
-struct file_operations;
-struct shmid_kernel;
-struct msg_msg;
-struct msg_queue;
-struct xattr;
-struct xfrm_sec_ctx;
-struct mm_struct;
-
-/* Maximum number of letters for an LSM name string */
-#define SECURITY_NAME_MAX 10
-
-/* If capable should audit the security request */
-#define SECURITY_CAP_NOAUDIT 0
-#define SECURITY_CAP_AUDIT 1
-
-struct ctl_table;
-struct audit_krule;
-struct user_namespace;
-struct timezone;
-
-/*
- * These functions are in security/capability.c and are used
- * as the default capabilities functions
- */
-extern int cap_capable(const struct cred *cred, struct user_namespace *ns,
- int cap, int audit);
-extern int cap_settime(const struct timespec *ts, const struct timezone *tz);
-extern int cap_ptrace_access_check(struct task_struct *child, unsigned int mode);
-extern int cap_ptrace_traceme(struct task_struct *parent);
-extern int cap_capget(struct task_struct *target, kernel_cap_t *effective, kernel_cap_t *inheritable, kernel_cap_t *permitted);
-extern int cap_capset(struct cred *new, const struct cred *old,
- const kernel_cap_t *effective,
- const kernel_cap_t *inheritable,
- const kernel_cap_t *permitted);
-extern int cap_bprm_set_creds(struct linux_binprm *bprm);
-extern int cap_bprm_secureexec(struct linux_binprm *bprm);
-extern int cap_inode_setxattr(struct dentry *dentry, const char *name,
- const void *value, size_t size, int flags);
-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_file_mmap(struct file *file, unsigned long reqprot,
- unsigned long prot, unsigned long flags,
- unsigned long addr, unsigned long addr_only);
-extern int cap_task_fix_setuid(struct cred *new, const struct cred *old, int flags);
-extern int cap_task_prctl(int option, unsigned long arg2, unsigned long arg3,
- unsigned long arg4, unsigned long arg5);
-extern int cap_task_setscheduler(struct task_struct *p);
-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_vm_enough_memory(struct mm_struct *mm, long pages);
-
-struct msghdr;
-struct sk_buff;
-struct sock;
-struct sockaddr;
-struct socket;
-struct flowi;
-struct dst_entry;
-struct xfrm_selector;
-struct xfrm_policy;
-struct xfrm_state;
-struct xfrm_user_sec_ctx;
-struct seq_file;
-
-extern int cap_netlink_send(struct sock *sk, struct sk_buff *skb);
-
-void reset_security_ops(void);
-
-#ifdef CONFIG_MMU
-extern unsigned long mmap_min_addr;
-extern unsigned long dac_mmap_min_addr;
-#else
-#define dac_mmap_min_addr 0UL
-#endif
-
-/*
- * Values used in the task_security_ops calls
- */
-/* setuid or setgid, id0 == uid or gid */
-#define LSM_SETID_ID 1
-
-/* setreuid or setregid, id0 == real, id1 == eff */
-#define LSM_SETID_RE 2
-
-/* setresuid or setresgid, id0 == real, id1 == eff, uid2 == saved */
-#define LSM_SETID_RES 4
-
-/* setfsuid or setfsgid, id0 == fsuid or fsgid */
-#define LSM_SETID_FS 8
-
-/* forward declares to avoid warnings */
-struct sched_param;
-struct request_sock;
-
-/* bprm->unsafe reasons */
-#define LSM_UNSAFE_SHARE 1
-#define LSM_UNSAFE_PTRACE 2
-#define LSM_UNSAFE_PTRACE_CAP 4
-
-#ifdef CONFIG_MMU
-extern int mmap_min_addr_handler(struct ctl_table *table, int write,
- void __user *buffer, size_t *lenp, loff_t *ppos);
-#endif
-
-/* security_inode_init_security callback function to write xattrs */
-typedef int (*initxattrs) (struct inode *inode,
- const struct xattr *xattr_array, void *fs_data);
-
-#ifdef CONFIG_SECURITY
-
-struct security_mnt_opts {
- char **mnt_opts;
- int *mnt_opts_flags;
- int num_mnt_opts;
-};
-
-static inline void security_init_mnt_opts(struct security_mnt_opts *opts)
-{
- opts->mnt_opts = NULL;
- opts->mnt_opts_flags = NULL;
- opts->num_mnt_opts = 0;
-}
-
-static inline void security_free_mnt_opts(struct security_mnt_opts *opts)
-{
- int i;
- if (opts->mnt_opts)
- for (i = 0; i < opts->num_mnt_opts; i++)
- kfree(opts->mnt_opts[i]);
- kfree(opts->mnt_opts);
- opts->mnt_opts = NULL;
- kfree(opts->mnt_opts_flags);
- opts->mnt_opts_flags = NULL;
- opts->num_mnt_opts = 0;
-}
-
-/**
- * struct security_operations - main security structure
- *
- * Security module identifier.
- *
- * @name:
- * A string that acts as a unique identifier for the LSM with max number
- * of characters = SECURITY_NAME_MAX.
- *
- * Security hooks for program execution operations.
- *
- * @bprm_set_creds:
- * Save security information in the bprm->security field, typically based
- * on information about the bprm->file, for later use by the apply_creds
- * hook. This hook may also optionally check permissions (e.g. for
- * transitions between security domains).
- * This hook may be called multiple times during a single execve, e.g. for
- * interpreters. The hook can tell whether it has already been called by
- * checking to see if @bprm->security is non-NULL. If so, then the hook
- * may decide either to retain the security information saved earlier or
- * to replace it.
- * @bprm contains the linux_binprm structure.
- * Return 0 if the hook is successful and permission is granted.
- * @bprm_check_security:
- * This hook mediates the point when a search for a binary handler will
- * begin. It allows a check the @bprm->security value which is set in the
- * preceding set_creds call. The primary difference from set_creds is
- * that the argv list and envp list are reliably available in @bprm. This
- * hook may be called multiple times during a single execve; and in each
- * pass set_creds is called first.
- * @bprm contains the linux_binprm structure.
- * Return 0 if the hook is successful and permission is granted.
- * @bprm_committing_creds:
- * Prepare to install the new security attributes of a process being
- * transformed by an execve operation, based on the old credentials
- * pointed to by @current->cred and the information set in @bprm->cred by
- * the bprm_set_creds hook. @bprm points to the linux_binprm structure.
- * This hook is a good place to perform state changes on the process such
- * as closing open file descriptors to which access will no longer be
- * granted when the attributes are changed. This is called immediately
- * before commit_creds().
- * @bprm_committed_creds:
- * Tidy up after the installation of the new security attributes of a
- * process being transformed by an execve operation. The new credentials
- * have, by this point, been set to @current->cred. @bprm points to the
- * linux_binprm structure. This hook is a good place to perform state
- * changes on the process such as clearing out non-inheritable signal
- * state. This is called immediately after commit_creds().
- * @bprm_secureexec:
- * Return a boolean value (0 or 1) indicating whether a "secure exec"
- * is required. The flag is passed in the auxiliary table
- * on the initial stack to the ELF interpreter to indicate whether libc
- * should enable secure mode.
- * @bprm contains the linux_binprm structure.
- *
- * Security hooks for filesystem operations.
- *
- * @sb_alloc_security:
- * Allocate and attach a security structure to the sb->s_security field.
- * The s_security field is initialized to NULL when the structure is
- * allocated.
- * @sb contains the super_block structure to be modified.
- * Return 0 if operation was successful.
- * @sb_free_security:
- * Deallocate and clear the sb->s_security field.
- * @sb contains the super_block structure to be modified.
- * @sb_statfs:
- * Check permission before obtaining filesystem statistics for the @mnt
- * mountpoint.
- * @dentry is a handle on the superblock for the filesystem.
- * Return 0 if permission is granted.
- * @sb_mount:
- * Check permission before an object specified by @dev_name is mounted on
- * the mount point named by @nd. For an ordinary mount, @dev_name
- * identifies a device if the file system type requires a device. For a
- * remount (@flags & MS_REMOUNT), @dev_name is irrelevant. For a
- * loopback/bind mount (@flags & MS_BIND), @dev_name identifies the
- * pathname of the object being mounted.
- * @dev_name contains the name for object being mounted.
- * @path contains the path for mount point object.
- * @type contains the filesystem type.
- * @flags contains the mount flags.
- * @data contains the filesystem-specific data.
- * Return 0 if permission is granted.
- * @sb_copy_data:
- * Allow mount option data to be copied prior to parsing by the filesystem,
- * so that the security module can extract security-specific mount
- * options cleanly (a filesystem may modify the data e.g. with strsep()).
- * This also allows the original mount data to be stripped of security-
- * specific options to avoid having to make filesystems aware of them.
- * @type the type of filesystem being mounted.
- * @orig the original mount data copied from userspace.
- * @copy copied data which will be passed to the security module.
- * Returns 0 if the copy was successful.
- * @sb_remount:
- * Extracts security system specific mount options and verifies no changes
- * are being made to those options.
- * @sb superblock being remounted
- * @data contains the filesystem-specific data.
- * Return 0 if permission is granted.
- * @sb_umount:
- * Check permission before the @mnt file system is unmounted.
- * @mnt contains the mounted file system.
- * @flags contains the unmount flags, e.g. MNT_FORCE.
- * Return 0 if permission is granted.
- * @sb_pivotroot:
- * Check permission before pivoting the root filesystem.
- * @old_path contains the path for the new location of the current root (put_old).
- * @new_path contains the path for the new root (new_root).
- * Return 0 if permission is granted.
- * @sb_set_mnt_opts:
- * Set the security relevant mount options used for a superblock
- * @sb the superblock to set security mount options for
- * @opts binary data structure containing all lsm mount data
- * @sb_clone_mnt_opts:
- * Copy all security options from a given superblock to another
- * @oldsb old superblock which contain information to clone
- * @newsb new superblock which needs filled in
- * @sb_parse_opts_str:
- * Parse a string of security data filling in the opts structure
- * @options string containing all mount options known by the LSM
- * @opts binary data structure usable by the LSM
- *
- * Security hooks for inode operations.
- *
- * @inode_alloc_security:
- * Allocate and attach a security structure to @inode->i_security. The
- * i_security field is initialized to NULL when the inode structure is
- * allocated.
- * @inode contains the inode structure.
- * Return 0 if operation was successful.
- * @inode_free_security:
- * @inode contains the inode structure.
- * Deallocate the inode security structure and set @inode->i_security to
- * NULL.
- * @inode_init_security:
- * Obtain the security attribute name suffix and value to set on a newly
- * created inode and set up the incore security field for the new inode.
- * This hook is called by the fs code as part of the inode creation
- * transaction and provides for atomic labeling of the inode, unlike
- * the post_create/mkdir/... hooks called by the VFS. The hook function
- * is expected to allocate the name and value via kmalloc, with the caller
- * being responsible for calling kfree after using them.
- * If the security module does not use security attributes or does
- * not wish to put a security attribute on this particular inode,
- * then it should return -EOPNOTSUPP to skip this processing.
- * @inode contains the inode structure of the newly created inode.
- * @dir contains the inode structure of the parent directory.
- * @qstr contains the last path component of the new object
- * @name will be set to the allocated name suffix (e.g. selinux).
- * @value will be set to the allocated attribute value.
- * @len will be set to the length of the value.
- * Returns 0 if @name and @value have been successfully set,
- * -EOPNOTSUPP if no security attribute is needed, or
- * -ENOMEM on memory allocation failure.
- * @inode_create:
- * Check permission to create a regular file.
- * @dir contains inode structure of the parent of the new file.
- * @dentry contains the dentry structure for the file to be created.
- * @mode contains the file mode of the file to be created.
- * Return 0 if permission is granted.
- * @inode_link:
- * Check permission before creating a new hard link to a file.
- * @old_dentry contains the dentry structure for an existing link to the file.
- * @dir contains the inode structure of the parent directory of the new link.
- * @new_dentry contains the dentry structure for the new link.
- * Return 0 if permission is granted.
- * @path_link:
- * Check permission before creating a new hard link to a file.
- * @old_dentry contains the dentry structure for an existing link
- * to the file.
- * @new_dir contains the path structure of the parent directory of
- * the new link.
- * @new_dentry contains the dentry structure for the new link.
- * Return 0 if permission is granted.
- * @inode_unlink:
- * Check the permission to remove a hard link to a file.
- * @dir contains the inode structure of parent directory of the file.
- * @dentry contains the dentry structure for file to be unlinked.
- * Return 0 if permission is granted.
- * @path_unlink:
- * Check the permission to remove a hard link to a file.
- * @dir contains the path structure of parent directory of the file.
- * @dentry contains the dentry structure for file to be unlinked.
- * Return 0 if permission is granted.
- * @inode_symlink:
- * Check the permission to create a symbolic link to a file.
- * @dir contains the inode structure of parent directory of the symbolic link.
- * @dentry contains the dentry structure of the symbolic link.
- * @old_name contains the pathname of file.
- * Return 0 if permission is granted.
- * @path_symlink:
- * Check the permission to create a symbolic link to a file.
- * @dir contains the path structure of parent directory of
- * the symbolic link.
- * @dentry contains the dentry structure of the symbolic link.
- * @old_name contains the pathname of file.
- * Return 0 if permission is granted.
- * @inode_mkdir:
- * Check permissions to create a new directory in the existing directory
- * associated with inode structure @dir.
- * @dir contains the inode structure of parent of the directory to be created.
- * @dentry contains the dentry structure of new directory.
- * @mode contains the mode of new directory.
- * Return 0 if permission is granted.
- * @path_mkdir:
- * Check permissions to create a new directory in the existing directory
- * associated with path structure @path.
- * @dir contains the path structure of parent of the directory
- * to be created.
- * @dentry contains the dentry structure of new directory.
- * @mode contains the mode of new directory.
- * Return 0 if permission is granted.
- * @inode_rmdir:
- * Check the permission to remove a directory.
- * @dir contains the inode structure of parent of the directory to be removed.
- * @dentry contains the dentry structure of directory to be removed.
- * Return 0 if permission is granted.
- * @path_rmdir:
- * Check the permission to remove a directory.
- * @dir contains the path structure of parent of the directory to be
- * removed.
- * @dentry contains the dentry structure of directory to be removed.
- * Return 0 if permission is granted.
- * @inode_mknod:
- * Check permissions when creating a special file (or a socket or a fifo
- * file created via the mknod system call). Note that if mknod operation
- * is being done for a regular file, then the create hook will be called
- * and not this hook.
- * @dir contains the inode structure of parent of the new file.
- * @dentry contains the dentry structure of the new file.
- * @mode contains the mode of the new file.
- * @dev contains the device number.
- * Return 0 if permission is granted.
- * @path_mknod:
- * Check permissions when creating a file. Note that this hook is called
- * even if mknod operation is being done for a regular file.
- * @dir contains the path structure of parent of the new file.
- * @dentry contains the dentry structure of the new file.
- * @mode contains the mode of the new file.
- * @dev contains the undecoded device number. Use new_decode_dev() to get
- * the decoded device number.
- * Return 0 if permission is granted.
- * @inode_rename:
- * Check for permission to rename a file or directory.
- * @old_dir contains the inode structure for parent of the old link.
- * @old_dentry contains the dentry structure of the old link.
- * @new_dir contains the inode structure for parent of the new link.
- * @new_dentry contains the dentry structure of the new link.
- * Return 0 if permission is granted.
- * @path_rename:
- * Check for permission to rename a file or directory.
- * @old_dir contains the path structure for parent of the old link.
- * @old_dentry contains the dentry structure of the old link.
- * @new_dir contains the path structure for parent of the new link.
- * @new_dentry contains the dentry structure of the new link.
- * Return 0 if permission is granted.
- * @path_chmod:
- * Check for permission to change DAC's permission of a file or directory.
- * @dentry contains the dentry structure.
- * @mnt contains the vfsmnt structure.
- * @mode contains DAC's mode.
- * Return 0 if permission is granted.
- * @path_chown:
- * Check for permission to change owner/group of a file or directory.
- * @path contains the path structure.
- * @uid contains new owner's ID.
- * @gid contains new group's ID.
- * Return 0 if permission is granted.
- * @path_chroot:
- * Check for permission to change root directory.
- * @path contains the path structure.
- * Return 0 if permission is granted.
- * @inode_readlink:
- * Check the permission to read the symbolic link.
- * @dentry contains the dentry structure for the file link.
- * Return 0 if permission is granted.
- * @inode_follow_link:
- * Check permission to follow a symbolic link when looking up a pathname.
- * @dentry contains the dentry structure for the link.
- * @nd contains the nameidata structure for the parent directory.
- * Return 0 if permission is granted.
- * @inode_permission:
- * Check permission before accessing an inode. This hook is called by the
- * existing Linux permission function, so a security module can use it to
- * provide additional checking for existing Linux permission checks.
- * Notice that this hook is called when a file is opened (as well as many
- * other operations), whereas the file_security_ops permission hook is
- * called when the actual read/write operations are performed.
- * @inode contains the inode structure to check.
- * @mask contains the permission mask.
- * Return 0 if permission is granted.
- * @inode_setattr:
- * Check permission before setting file attributes. Note that the kernel
- * call to notify_change is performed from several locations, whenever
- * file attributes change (such as when a file is truncated, chown/chmod
- * operations, transferring disk quotas, etc).
- * @dentry contains the dentry structure for the file.
- * @attr is the iattr structure containing the new file attributes.
- * Return 0 if permission is granted.
- * @path_truncate:
- * Check permission before truncating a file.
- * @path contains the path structure for the file.
- * Return 0 if permission is granted.
- * @inode_getattr:
- * Check permission before obtaining file attributes.
- * @mnt is the vfsmount where the dentry was looked up
- * @dentry contains the dentry structure for the file.
- * Return 0 if permission is granted.
- * @inode_setxattr:
- * Check permission before setting the extended attributes
- * @value identified by @name for @dentry.
- * Return 0 if permission is granted.
- * @inode_post_setxattr:
- * Update inode security field after successful setxattr operation.
- * @value identified by @name for @dentry.
- * @inode_getxattr:
- * Check permission before obtaining the extended attributes
- * identified by @name for @dentry.
- * Return 0 if permission is granted.
- * @inode_listxattr:
- * Check permission before obtaining the list of extended attribute
- * names for @dentry.
- * Return 0 if permission is granted.
- * @inode_removexattr:
- * Check permission before removing the extended attribute
- * identified by @name for @dentry.
- * Return 0 if permission is granted.
- * @inode_getsecurity:
- * Retrieve a copy of the extended attribute representation of the
- * security label associated with @name for @inode via @buffer. Note that
- * @name is the remainder of the attribute name after the security prefix
- * has been removed. @alloc is used to specify of the call should return a
- * value via the buffer or just the value length Return size of buffer on
- * success.
- * @inode_setsecurity:
- * Set the security label associated with @name for @inode from the
- * extended attribute value @value. @size indicates the size of the
- * @value in bytes. @flags may be XATTR_CREATE, XATTR_REPLACE, or 0.
- * Note that @name is the remainder of the attribute name after the
- * security. prefix has been removed.
- * Return 0 on success.
- * @inode_listsecurity:
- * Copy the extended attribute names for the security labels
- * associated with @inode into @buffer. The maximum size of @buffer
- * is specified by @buffer_size. @buffer may be NULL to request
- * the size of the buffer required.
- * Returns number of bytes used/required on success.
- * @inode_need_killpriv:
- * Called when an inode has been changed.
- * @dentry is the dentry being changed.
- * Return <0 on error to abort the inode change operation.
- * Return 0 if inode_killpriv does not need to be called.
- * Return >0 if inode_killpriv does need to be called.
- * @inode_killpriv:
- * The setuid bit is being removed. Remove similar security labels.
- * Called with the dentry->d_inode->i_mutex held.
- * @dentry is the dentry being changed.
- * Return 0 on success. If error is returned, then the operation
- * causing setuid bit removal is failed.
- * @inode_getsecid:
- * Get the secid associated with the node.
- * @inode contains a pointer to the inode.
- * @secid contains a pointer to the location where result will be saved.
- * In case of failure, @secid will be set to zero.
- *
- * Security hooks for file operations
- *
- * @file_permission:
- * Check file permissions before accessing an open file. This hook is
- * called by various operations that read or write files. A security
- * module can use this hook to perform additional checking on these
- * operations, e.g. to revalidate permissions on use to support privilege
- * bracketing or policy changes. Notice that this hook is used when the
- * actual read/write operations are performed, whereas the
- * inode_security_ops hook is called when a file is opened (as well as
- * many other operations).
- * Caveat: Although this hook can be used to revalidate permissions for
- * various system call operations that read or write files, it does not
- * address the revalidation of permissions for memory-mapped files.
- * Security modules must handle this separately if they need such
- * revalidation.
- * @file contains the file structure being accessed.
- * @mask contains the requested permissions.
- * Return 0 if permission is granted.
- * @file_alloc_security:
- * Allocate and attach a security structure to the file->f_security field.
- * The security field is initialized to NULL when the structure is first
- * created.
- * @file contains the file structure to secure.
- * Return 0 if the hook is successful and permission is granted.
- * @file_free_security:
- * Deallocate and free any security structures stored in file->f_security.
- * @file contains the file structure being modified.
- * @file_ioctl:
- * @file contains the file structure.
- * @cmd contains the operation to perform.
- * @arg contains the operational arguments.
- * Check permission for an ioctl operation on @file. Note that @arg
- * sometimes represents a user space pointer; in other cases, it may be a
- * simple integer value. When @arg represents a user space pointer, it
- * should never be used by the security module.
- * Return 0 if permission is granted.
- * @file_mmap :
- * Check permissions for a mmap operation. The @file may be NULL, e.g.
- * if mapping anonymous memory.
- * @file contains the file structure for file to map (may be NULL).
- * @reqprot contains the protection requested by the application.
- * @prot contains the protection that will be applied by the kernel.
- * @flags contains the operational flags.
- * @addr contains virtual address that will be used for the operation.
- * @addr_only contains a boolean: 0 if file-backed VMA, otherwise 1.
- * Return 0 if permission is granted.
- * @file_mprotect:
- * Check permissions before changing memory access permissions.
- * @vma contains the memory region to modify.
- * @reqprot contains the protection requested by the application.
- * @prot contains the protection that will be applied by the kernel.
- * Return 0 if permission is granted.
- * @file_lock:
- * Check permission before performing file locking operations.
- * Note: this hook mediates both flock and fcntl style locks.
- * @file contains the file structure.
- * @cmd contains the posix-translated lock operation to perform
- * (e.g. F_RDLCK, F_WRLCK).
- * Return 0 if permission is granted.
- * @file_fcntl:
- * Check permission before allowing the file operation specified by @cmd
- * from being performed on the file @file. Note that @arg sometimes
- * represents a user space pointer; in other cases, it may be a simple
- * integer value. When @arg represents a user space pointer, it should
- * never be used by the security module.
- * @file contains the file structure.
- * @cmd contains the operation to be performed.
- * @arg contains the operational arguments.
- * Return 0 if permission is granted.
- * @file_set_fowner:
- * Save owner security information (typically from current->security) in
- * file->f_security for later use by the send_sigiotask hook.
- * @file contains the file structure to update.
- * Return 0 on success.
- * @file_send_sigiotask:
- * Check permission for the file owner @fown to send SIGIO or SIGURG to the
- * process @tsk. Note that this hook is sometimes called from interrupt.
- * Note that the fown_struct, @fown, is never outside the context of a
- * struct file, so the file structure (and associated security information)
- * can always be obtained:
- * container_of(fown, struct file, f_owner)
- * @tsk contains the structure of task receiving signal.
- * @fown contains the file owner information.
- * @sig is the signal that will be sent. When 0, kernel sends SIGIO.
- * Return 0 if permission is granted.
- * @file_receive:
- * This hook allows security modules to control the ability of a process
- * to receive an open file descriptor via socket IPC.
- * @file contains the file structure being received.
- * Return 0 if permission is granted.
- *
- * Security hook for dentry
- *
- * @dentry_open
- * Save open-time permission checking state for later use upon
- * file_permission, and recheck access if anything has changed
- * since inode_permission.
- *
- * Security hooks for task operations.
- *
- * @task_create:
- * Check permission before creating a child process. See the clone(2)
- * manual page for definitions of the @clone_flags.
- * @clone_flags contains the flags indicating what should be shared.
- * Return 0 if permission is granted.
- * @task_free:
- * @task task being freed
- * Handle release of task-related resources. (Note that this can be called
- * from interrupt context.)
- * @cred_alloc_blank:
- * @cred points to the credentials.
- * @gfp indicates the atomicity of any memory allocations.
- * Only allocate sufficient memory and attach to @cred such that
- * cred_transfer() will not get ENOMEM.
- * @cred_free:
- * @cred points to the credentials.
- * Deallocate and clear the cred->security field in a set of credentials.
- * @cred_prepare:
- * @new points to the new credentials.
- * @old points to the original credentials.
- * @gfp indicates the atomicity of any memory allocations.
- * Prepare a new set of credentials by copying the data from the old set.
- * @cred_transfer:
- * @new points to the new credentials.
- * @old points to the original credentials.
- * Transfer data from original creds to new creds
- * @kernel_act_as:
- * Set the credentials for a kernel service to act as (subjective context).
- * @new points to the credentials to be modified.
- * @secid specifies the security ID to be set
- * The current task must be the one that nominated @secid.
- * Return 0 if successful.
- * @kernel_create_files_as:
- * Set the file creation context in a set of credentials to be the same as
- * the objective context of the specified inode.
- * @new points to the credentials to be modified.
- * @inode points to the inode to use as a reference.
- * The current task must be the one that nominated @inode.
- * Return 0 if successful.
- * @kernel_module_request:
- * Ability to trigger the kernel to automatically upcall to userspace for
- * userspace to load a kernel module with the given name.
- * @kmod_name name of the module requested by the kernel
- * Return 0 if successful.
- * @task_fix_setuid:
- * Update the module's state after setting one or more of the user
- * identity attributes of the current process. The @flags parameter
- * indicates which of the set*uid system calls invoked this hook. If
- * @new is the set of credentials that will be installed. Modifications
- * should be made to this rather than to @current->cred.
- * @old is the set of credentials that are being replaces
- * @flags contains one of the LSM_SETID_* values.
- * Return 0 on success.
- * @task_setpgid:
- * Check permission before setting the process group identifier of the
- * process @p to @pgid.
- * @p contains the task_struct for process being modified.
- * @pgid contains the new pgid.
- * Return 0 if permission is granted.
- * @task_getpgid:
- * Check permission before getting the process group identifier of the
- * process @p.
- * @p contains the task_struct for the process.
- * Return 0 if permission is granted.
- * @task_getsid:
- * Check permission before getting the session identifier of the process
- * @p.
- * @p contains the task_struct for the process.
- * Return 0 if permission is granted.
- * @task_getsecid:
- * Retrieve the security identifier of the process @p.
- * @p contains the task_struct for the process and place is into @secid.
- * In case of failure, @secid will be set to zero.
- *
- * @task_setnice:
- * Check permission before setting the nice value of @p to @nice.
- * @p contains the task_struct of process.
- * @nice contains the new nice value.
- * Return 0 if permission is granted.
- * @task_setioprio
- * Check permission before setting the ioprio value of @p to @ioprio.
- * @p contains the task_struct of process.
- * @ioprio contains the new ioprio value
- * Return 0 if permission is granted.
- * @task_getioprio
- * Check permission before getting the ioprio value of @p.
- * @p contains the task_struct of process.
- * Return 0 if permission is granted.
- * @task_setrlimit:
- * Check permission before setting the resource limits of the current
- * process for @resource to @new_rlim. The old resource limit values can
- * be examined by dereferencing (current->signal->rlim + resource).
- * @resource contains the resource whose limit is being set.
- * @new_rlim contains the new limits for @resource.
- * Return 0 if permission is granted.
- * @task_setscheduler:
- * Check permission before setting scheduling policy and/or parameters of
- * process @p based on @policy and @lp.
- * @p contains the task_struct for process.
- * @policy contains the scheduling policy.
- * @lp contains the scheduling parameters.
- * Return 0 if permission is granted.
- * @task_getscheduler:
- * Check permission before obtaining scheduling information for process
- * @p.
- * @p contains the task_struct for process.
- * Return 0 if permission is granted.
- * @task_movememory
- * Check permission before moving memory owned by process @p.
- * @p contains the task_struct for process.
- * Return 0 if permission is granted.
- * @task_kill:
- * Check permission before sending signal @sig to @p. @info can be NULL,
- * the constant 1, or a pointer to a siginfo structure. If @info is 1 or
- * SI_FROMKERNEL(info) is true, then the signal should be viewed as coming
- * from the kernel and should typically be permitted.
- * SIGIO signals are handled separately by the send_sigiotask hook in
- * file_security_ops.
- * @p contains the task_struct for process.
- * @info contains the signal information.
- * @sig contains the signal value.
- * @secid contains the sid of the process where the signal originated
- * Return 0 if permission is granted.
- * @task_wait:
- * Check permission before allowing a process to reap a child process @p
- * and collect its status information.
- * @p contains the task_struct for process.
- * Return 0 if permission is granted.
- * @task_prctl:
- * Check permission before performing a process control operation on the
- * current process.
- * @option contains the operation.
- * @arg2 contains a argument.
- * @arg3 contains a argument.
- * @arg4 contains a argument.
- * @arg5 contains a argument.
- * Return -ENOSYS if no-one wanted to handle this op, any other value to
- * cause prctl() to return immediately with that value.
- * @task_to_inode:
- * Set the security attributes for an inode based on an associated task's
- * security attributes, e.g. for /proc/pid inodes.
- * @p contains the task_struct for the task.
- * @inode contains the inode structure for the inode.
- *
- * Security hooks for Netlink messaging.
- *
- * @netlink_send:
- * Save security information for a netlink message so that permission
- * checking can be performed when the message is processed. The security
- * information can be saved using the eff_cap field of the
- * netlink_skb_parms structure. Also may be used to provide fine
- * grained control over message transmission.
- * @sk associated sock of task sending the message.
- * @skb contains the sk_buff structure for the netlink message.
- * Return 0 if the information was successfully saved and message
- * is allowed to be transmitted.
- *
- * Security hooks for Unix domain networking.
- *
- * @unix_stream_connect:
- * Check permissions before establishing a Unix domain stream connection
- * between @sock and @other.
- * @sock contains the sock structure.
- * @other contains the peer sock structure.
- * @newsk contains the new sock structure.
- * Return 0 if permission is granted.
- * @unix_may_send:
- * Check permissions before connecting or sending datagrams from @sock to
- * @other.
- * @sock contains the socket structure.
- * @other contains the peer socket structure.
- * Return 0 if permission is granted.
- *
- * The @unix_stream_connect and @unix_may_send hooks were necessary because
- * Linux provides an alternative to the conventional file name space for Unix
- * domain sockets. Whereas binding and connecting to sockets in the file name
- * space is mediated by the typical file permissions (and caught by the mknod
- * and permission hooks in inode_security_ops), binding and connecting to
- * sockets in the abstract name space is completely unmediated. Sufficient
- * control of Unix domain sockets in the abstract name space isn't possible
- * using only the socket layer hooks, since we need to know the actual target
- * socket, which is not looked up until we are inside the af_unix code.
- *
- * Security hooks for socket operations.
- *
- * @socket_create:
- * Check permissions prior to creating a new socket.
- * @family contains the requested protocol family.
- * @type contains the requested communications type.
- * @protocol contains the requested protocol.
- * @kern set to 1 if a kernel socket.
- * Return 0 if permission is granted.
- * @socket_post_create:
- * This hook allows a module to update or allocate a per-socket security
- * structure. Note that the security field was not added directly to the
- * socket structure, but rather, the socket security information is stored
- * in the associated inode. Typically, the inode alloc_security hook will
- * allocate and and attach security information to
- * sock->inode->i_security. This hook may be used to update the
- * sock->inode->i_security field with additional information that wasn't
- * available when the inode was allocated.
- * @sock contains the newly created socket structure.
- * @family contains the requested protocol family.
- * @type contains the requested communications type.
- * @protocol contains the requested protocol.
- * @kern set to 1 if a kernel socket.
- * @socket_bind:
- * Check permission before socket protocol layer bind operation is
- * performed and the socket @sock is bound to the address specified in the
- * @address parameter.
- * @sock contains the socket structure.
- * @address contains the address to bind to.
- * @addrlen contains the length of address.
- * Return 0 if permission is granted.
- * @socket_connect:
- * Check permission before socket protocol layer connect operation
- * attempts to connect socket @sock to a remote address, @address.
- * @sock contains the socket structure.
- * @address contains the address of remote endpoint.
- * @addrlen contains the length of address.
- * Return 0 if permission is granted.
- * @socket_listen:
- * Check permission before socket protocol layer listen operation.
- * @sock contains the socket structure.
- * @backlog contains the maximum length for the pending connection queue.
- * Return 0 if permission is granted.
- * @socket_accept:
- * Check permission before accepting a new connection. Note that the new
- * socket, @newsock, has been created and some information copied to it,
- * but the accept operation has not actually been performed.
- * @sock contains the listening socket structure.
- * @newsock contains the newly created server socket for connection.
- * Return 0 if permission is granted.
- * @socket_sendmsg:
- * Check permission before transmitting a message to another socket.
- * @sock contains the socket structure.
- * @msg contains the message to be transmitted.
- * @size contains the size of message.
- * Return 0 if permission is granted.
- * @socket_recvmsg:
- * Check permission before receiving a message from a socket.
- * @sock contains the socket structure.
- * @msg contains the message structure.
- * @size contains the size of message structure.
- * @flags contains the operational flags.
- * Return 0 if permission is granted.
- * @socket_getsockname:
- * Check permission before the local address (name) of the socket object
- * @sock is retrieved.
- * @sock contains the socket structure.
- * Return 0 if permission is granted.
- * @socket_getpeername:
- * Check permission before the remote address (name) of a socket object
- * @sock is retrieved.
- * @sock contains the socket structure.
- * Return 0 if permission is granted.
- * @socket_getsockopt:
- * Check permissions before retrieving the options associated with socket
- * @sock.
- * @sock contains the socket structure.
- * @level contains the protocol level to retrieve option from.
- * @optname contains the name of option to retrieve.
- * Return 0 if permission is granted.
- * @socket_setsockopt:
- * Check permissions before setting the options associated with socket
- * @sock.
- * @sock contains the socket structure.
- * @level contains the protocol level to set options for.
- * @optname contains the name of the option to set.
- * Return 0 if permission is granted.
- * @socket_shutdown:
- * Checks permission before all or part of a connection on the socket
- * @sock is shut down.
- * @sock contains the socket structure.
- * @how contains the flag indicating how future sends and receives are handled.
- * Return 0 if permission is granted.
- * @socket_sock_rcv_skb:
- * Check permissions on incoming network packets. This hook is distinct
- * from Netfilter's IP input hooks since it is the first time that the
- * incoming sk_buff @skb has been associated with a particular socket, @sk.
- * Must not sleep inside this hook because some callers hold spinlocks.
- * @sk contains the sock (not socket) associated with the incoming sk_buff.
- * @skb contains the incoming network data.
- * @socket_getpeersec_stream:
- * This hook allows the security module to provide peer socket security
- * state for unix or connected tcp sockets to userspace via getsockopt
- * SO_GETPEERSEC. For tcp sockets this can be meaningful if the
- * socket is associated with an ipsec SA.
- * @sock is the local socket.
- * @optval userspace memory where the security state is to be copied.
- * @optlen userspace int where the module should copy the actual length
- * of the security state.
- * @len as input is the maximum length to copy to userspace provided
- * by the caller.
- * Return 0 if all is well, otherwise, typical getsockopt return
- * values.
- * @socket_getpeersec_dgram:
- * This hook allows the security module to provide peer socket security
- * state for udp sockets on a per-packet basis to userspace via
- * getsockopt SO_GETPEERSEC. The application must first have indicated
- * the IP_PASSSEC option via getsockopt. It can then retrieve the
- * security state returned by this hook for a packet via the SCM_SECURITY
- * ancillary message type.
- * @skb is the skbuff for the packet being queried
- * @secdata is a pointer to a buffer in which to copy the security data
- * @seclen is the maximum length for @secdata
- * Return 0 on success, error on failure.
- * @sk_alloc_security:
- * Allocate and attach a security structure to the sk->sk_security field,
- * which is used to copy security attributes between local stream sockets.
- * @sk_free_security:
- * Deallocate security structure.
- * @sk_clone_security:
- * Clone/copy security structure.
- * @sk_getsecid:
- * Retrieve the LSM-specific secid for the sock to enable caching of network
- * authorizations.
- * @sock_graft:
- * Sets the socket's isec sid to the sock's sid.
- * @inet_conn_request:
- * Sets the openreq's sid to socket's sid with MLS portion taken from peer sid.
- * @inet_csk_clone:
- * Sets the new child socket's sid to the openreq sid.
- * @inet_conn_established:
- * Sets the connection's peersid to the secmark on skb.
- * @secmark_relabel_packet:
- * check if the process should be allowed to relabel packets to the given secid
- * @security_secmark_refcount_inc
- * tells the LSM to increment the number of secmark labeling rules loaded
- * @security_secmark_refcount_dec
- * tells the LSM to decrement the number of secmark labeling rules loaded
- * @req_classify_flow:
- * Sets the flow's sid to the openreq sid.
- * @tun_dev_create:
- * Check permissions prior to creating a new TUN device.
- * @tun_dev_post_create:
- * This hook allows a module to update or allocate a per-socket security
- * structure.
- * @sk contains the newly created sock structure.
- * @tun_dev_attach:
- * Check permissions prior to attaching to a persistent TUN device. This
- * hook can also be used by the module to update any security state
- * associated with the TUN device's sock structure.
- * @sk contains the existing sock structure.
- *
- * Security hooks for XFRM operations.
- *
- * @xfrm_policy_alloc_security:
- * @ctxp is a pointer to the xfrm_sec_ctx being added to Security Policy
- * Database used by the XFRM system.
- * @sec_ctx contains the security context information being provided by
- * the user-level policy update program (e.g., setkey).
- * Allocate a security structure to the xp->security field; the security
- * field is initialized to NULL when the xfrm_policy is allocated.
- * Return 0 if operation was successful (memory to allocate, legal context)
- * @xfrm_policy_clone_security:
- * @old_ctx contains an existing xfrm_sec_ctx.
- * @new_ctxp contains a new xfrm_sec_ctx being cloned from old.
- * Allocate a security structure in new_ctxp that contains the
- * information from the old_ctx structure.
- * Return 0 if operation was successful (memory to allocate).
- * @xfrm_policy_free_security:
- * @ctx contains the xfrm_sec_ctx
- * Deallocate xp->security.
- * @xfrm_policy_delete_security:
- * @ctx contains the xfrm_sec_ctx.
- * Authorize deletion of xp->security.
- * @xfrm_state_alloc_security:
- * @x contains the xfrm_state being added to the Security Association
- * Database by the XFRM system.
- * @sec_ctx contains the security context information being provided by
- * the user-level SA generation program (e.g., setkey or racoon).
- * @secid contains the secid from which to take the mls portion of the context.
- * Allocate a security structure to the x->security field; the security
- * field is initialized to NULL when the xfrm_state is allocated. Set the
- * context to correspond to either sec_ctx or polsec, with the mls portion
- * taken from secid in the latter case.
- * Return 0 if operation was successful (memory to allocate, legal context).
- * @xfrm_state_free_security:
- * @x contains the xfrm_state.
- * Deallocate x->security.
- * @xfrm_state_delete_security:
- * @x contains the xfrm_state.
- * Authorize deletion of x->security.
- * @xfrm_policy_lookup:
- * @ctx contains the xfrm_sec_ctx for which the access control is being
- * checked.
- * @fl_secid contains the flow security label that is used to authorize
- * access to the policy xp.
- * @dir contains the direction of the flow (input or output).
- * Check permission when a flow selects a xfrm_policy for processing
- * XFRMs on a packet. The hook is called when selecting either a
- * per-socket policy or a generic xfrm policy.
- * Return 0 if permission is granted, -ESRCH otherwise, or -errno
- * on other errors.
- * @xfrm_state_pol_flow_match:
- * @x contains the state to match.
- * @xp contains the policy to check for a match.
- * @fl contains the flow to check for a match.
- * Return 1 if there is a match.
- * @xfrm_decode_session:
- * @skb points to skb to decode.
- * @secid points to the flow key secid to set.
- * @ckall says if all xfrms used should be checked for same secid.
- * Return 0 if ckall is zero or all xfrms used have the same secid.
- *
- * Security hooks affecting all Key Management operations
- *
- * @key_alloc:
- * Permit allocation of a key and assign security data. Note that key does
- * not have a serial number assigned at this point.
- * @key points to the key.
- * @flags is the allocation flags
- * Return 0 if permission is granted, -ve error otherwise.
- * @key_free:
- * Notification of destruction; free security data.
- * @key points to the key.
- * No return value.
- * @key_permission:
- * See whether a specific operational right is granted to a process on a
- * key.
- * @key_ref refers to the key (key pointer + possession attribute bit).
- * @cred points to the credentials to provide the context against which to
- * evaluate the security data on the key.
- * @perm describes the combination of permissions required of this key.
- * Return 0 if permission is granted, -ve error otherwise.
- * @key_getsecurity:
- * Get a textual representation of the security context attached to a key
- * for the purposes of honouring KEYCTL_GETSECURITY. This function
- * allocates the storage for the NUL-terminated string and the caller
- * should free it.
- * @key points to the key to be queried.
- * @_buffer points to a pointer that should be set to point to the
- * resulting string (if no label or an error occurs).
- * Return the length of the string (including terminating NUL) or -ve if
- * an error.
- * May also return 0 (and a NULL buffer pointer) if there is no label.
- *
- * Security hooks affecting all System V IPC operations.
- *
- * @ipc_permission:
- * Check permissions for access to IPC
- * @ipcp contains the kernel IPC permission structure
- * @flag contains the desired (requested) permission set
- * Return 0 if permission is granted.
- * @ipc_getsecid:
- * Get the secid associated with the ipc object.
- * @ipcp contains the kernel IPC permission structure.
- * @secid contains a pointer to the location where result will be saved.
- * In case of failure, @secid will be set to zero.
- *
- * Security hooks for individual messages held in System V IPC message queues
- * @msg_msg_alloc_security:
- * Allocate and attach a security structure to the msg->security field.
- * The security field is initialized to NULL when the structure is first
- * created.
- * @msg contains the message structure to be modified.
- * Return 0 if operation was successful and permission is granted.
- * @msg_msg_free_security:
- * Deallocate the security structure for this message.
- * @msg contains the message structure to be modified.
- *
- * Security hooks for System V IPC Message Queues
- *
- * @msg_queue_alloc_security:
- * Allocate and attach a security structure to the
- * msq->q_perm.security field. The security field is initialized to
- * NULL when the structure is first created.
- * @msq contains the message queue structure to be modified.
- * Return 0 if operation was successful and permission is granted.
- * @msg_queue_free_security:
- * Deallocate security structure for this message queue.
- * @msq contains the message queue structure to be modified.
- * @msg_queue_associate:
- * Check permission when a message queue is requested through the
- * msgget system call. This hook is only called when returning the
- * message queue identifier for an existing message queue, not when a
- * new message queue is created.
- * @msq contains the message queue to act upon.
- * @msqflg contains the operation control flags.
- * Return 0 if permission is granted.
- * @msg_queue_msgctl:
- * Check permission when a message control operation specified by @cmd
- * is to be performed on the message queue @msq.
- * The @msq may be NULL, e.g. for IPC_INFO or MSG_INFO.
- * @msq contains the message queue to act upon. May be NULL.
- * @cmd contains the operation to be performed.
- * Return 0 if permission is granted.
- * @msg_queue_msgsnd:
- * Check permission before a message, @msg, is enqueued on the message
- * queue, @msq.
- * @msq contains the message queue to send message to.
- * @msg contains the message to be enqueued.
- * @msqflg contains operational flags.
- * Return 0 if permission is granted.
- * @msg_queue_msgrcv:
- * Check permission before a message, @msg, is removed from the message
- * queue, @msq. The @target task structure contains a pointer to the
- * process that will be receiving the message (not equal to the current
- * process when inline receives are being performed).
- * @msq contains the message queue to retrieve message from.
- * @msg contains the message destination.
- * @target contains the task structure for recipient process.
- * @type contains the type of message requested.
- * @mode contains the operational flags.
- * Return 0 if permission is granted.
- *
- * Security hooks for System V Shared Memory Segments
- *
- * @shm_alloc_security:
- * Allocate and attach a security structure to the shp->shm_perm.security
- * field. The security field is initialized to NULL when the structure is
- * first created.
- * @shp contains the shared memory structure to be modified.
- * Return 0 if operation was successful and permission is granted.
- * @shm_free_security:
- * Deallocate the security struct for this memory segment.
- * @shp contains the shared memory structure to be modified.
- * @shm_associate:
- * Check permission when a shared memory region is requested through the
- * shmget system call. This hook is only called when returning the shared
- * memory region identifier for an existing region, not when a new shared
- * memory region is created.
- * @shp contains the shared memory structure to be modified.
- * @shmflg contains the operation control flags.
- * Return 0 if permission is granted.
- * @shm_shmctl:
- * Check permission when a shared memory control operation specified by
- * @cmd is to be performed on the shared memory region @shp.
- * The @shp may be NULL, e.g. for IPC_INFO or SHM_INFO.
- * @shp contains shared memory structure to be modified.
- * @cmd contains the operation to be performed.
- * Return 0 if permission is granted.
- * @shm_shmat:
- * Check permissions prior to allowing the shmat system call to attach the
- * shared memory segment @shp to the data segment of the calling process.
- * The attaching address is specified by @shmaddr.
- * @shp contains the shared memory structure to be modified.
- * @shmaddr contains the address to attach memory region to.
- * @shmflg contains the operational flags.
- * Return 0 if permission is granted.
- *
- * Security hooks for System V Semaphores
- *
- * @sem_alloc_security:
- * Allocate and attach a security structure to the sma->sem_perm.security
- * field. The security field is initialized to NULL when the structure is
- * first created.
- * @sma contains the semaphore structure
- * Return 0 if operation was successful and permission is granted.
- * @sem_free_security:
- * deallocate security struct for this semaphore
- * @sma contains the semaphore structure.
- * @sem_associate:
- * Check permission when a semaphore is requested through the semget
- * system call. This hook is only called when returning the semaphore
- * identifier for an existing semaphore, not when a new one must be
- * created.
- * @sma contains the semaphore structure.
- * @semflg contains the operation control flags.
- * Return 0 if permission is granted.
- * @sem_semctl:
- * Check permission when a semaphore operation specified by @cmd is to be
- * performed on the semaphore @sma. The @sma may be NULL, e.g. for
- * IPC_INFO or SEM_INFO.
- * @sma contains the semaphore structure. May be NULL.
- * @cmd contains the operation to be performed.
- * Return 0 if permission is granted.
- * @sem_semop
- * Check permissions before performing operations on members of the
- * semaphore set @sma. If the @alter flag is nonzero, the semaphore set
- * may be modified.
- * @sma contains the semaphore structure.
- * @sops contains the operations to perform.
- * @nsops contains the number of operations to perform.
- * @alter contains the flag indicating whether changes are to be made.
- * Return 0 if permission is granted.
- *
- * @ptrace_access_check:
- * Check permission before allowing the current process to trace the
- * @child process.
- * Security modules may also want to perform a process tracing check
- * during an execve in the set_security or apply_creds hooks of
- * tracing check during an execve in the bprm_set_creds hook of
- * binprm_security_ops if the process is being traced and its security
- * attributes would be changed by the execve.
- * @child contains the task_struct structure for the target process.
- * @mode contains the PTRACE_MODE flags indicating the form of access.
- * Return 0 if permission is granted.
- * @ptrace_traceme:
- * Check that the @parent process has sufficient permission to trace the
- * current process before allowing the current process to present itself
- * to the @parent process for tracing.
- * The parent process will still have to undergo the ptrace_access_check
- * checks before it is allowed to trace this one.
- * @parent contains the task_struct structure for debugger process.
- * Return 0 if permission is granted.
- * @capget:
- * Get the @effective, @inheritable, and @permitted capability sets for
- * the @target process. The hook may also perform permission checking to
- * determine if the current process is allowed to see the capability sets
- * of the @target process.
- * @target contains the task_struct structure for target process.
- * @effective contains the effective capability set.
- * @inheritable contains the inheritable capability set.
- * @permitted contains the permitted capability set.
- * Return 0 if the capability sets were successfully obtained.
- * @capset:
- * Set the @effective, @inheritable, and @permitted capability sets for
- * the current process.
- * @new contains the new credentials structure for target process.
- * @old contains the current credentials structure for target process.
- * @effective contains the effective capability set.
- * @inheritable contains the inheritable capability set.
- * @permitted contains the permitted capability set.
- * Return 0 and update @new if permission is granted.
- * @capable:
- * Check whether the @tsk process has the @cap capability in the indicated
- * credentials.
- * @cred contains the credentials to use.
- * @ns contains the user namespace we want the capability in
- * @cap contains the capability <include/linux/capability.h>.
- * @audit: Whether to write an audit message or not
- * Return 0 if the capability is granted for @tsk.
- * @syslog:
- * Check permission before accessing the kernel message ring or changing
- * logging to the console.
- * See the syslog(2) manual page for an explanation of the @type values.
- * @type contains the type of action.
- * @from_file indicates the context of action (if it came from /proc).
- * Return 0 if permission is granted.
- * @settime:
- * Check permission to change the system time.
- * struct timespec and timezone are defined in include/linux/time.h
- * @ts contains new time
- * @tz contains new timezone
- * Return 0 if permission is granted.
- * @vm_enough_memory:
- * Check permissions for allocating a new virtual mapping.
- * @mm contains the mm struct it is being added to.
- * @pages contains the number of pages.
- * Return 0 if permission is granted.
- *
- * @secid_to_secctx:
- * Convert secid to security context. If secdata is NULL the length of
- * the result will be returned in seclen, but no secdata will be returned.
- * This does mean that the length could change between calls to check the
- * length and the next call which actually allocates and returns the secdata.
- * @secid contains the security ID.
- * @secdata contains the pointer that stores the converted security context.
- * @seclen pointer which contains the length of the data
- * @secctx_to_secid:
- * Convert security context to secid.
- * @secid contains the pointer to the generated security ID.
- * @secdata contains the security context.
- *
- * @release_secctx:
- * Release the security context.
- * @secdata contains the security context.
- * @seclen contains the length of the security context.
- *
- * Security hooks for Audit
- *
- * @audit_rule_init:
- * Allocate and initialize an LSM audit rule structure.
- * @field contains the required Audit action. Fields flags are defined in include/linux/audit.h
- * @op contains the operator the rule uses.
- * @rulestr contains the context where the rule will be applied to.
- * @lsmrule contains a pointer to receive the result.
- * Return 0 if @lsmrule has been successfully set,
- * -EINVAL in case of an invalid rule.
- *
- * @audit_rule_known:
- * Specifies whether given @rule contains any fields related to current LSM.
- * @rule contains the audit rule of interest.
- * Return 1 in case of relation found, 0 otherwise.
- *
- * @audit_rule_match:
- * Determine if given @secid matches a rule previously approved
- * by @audit_rule_known.
- * @secid contains the security id in question.
- * @field contains the field which relates to current LSM.
- * @op contains the operator that will be used for matching.
- * @rule points to the audit rule that will be checked against.
- * @actx points to the audit context associated with the check.
- * Return 1 if secid matches the rule, 0 if it does not, -ERRNO on failure.
- *
- * @audit_rule_free:
- * Deallocate the LSM audit rule structure previously allocated by
- * audit_rule_init.
- * @rule contains the allocated rule
- *
- * @inode_notifysecctx:
- * Notify the security module of what the security context of an inode
- * should be. Initializes the incore security context managed by the
- * security module for this inode. Example usage: NFS client invokes
- * this hook to initialize the security context in its incore inode to the
- * value provided by the server for the file when the server returned the
- * file's attributes to the client.
- *
- * Must be called with inode->i_mutex locked.
- *
- * @inode we wish to set the security context of.
- * @ctx contains the string which we wish to set in the inode.
- * @ctxlen contains the length of @ctx.
- *
- * @inode_setsecctx:
- * Change the security context of an inode. Updates the
- * incore security context managed by the security module and invokes the
- * fs code as needed (via __vfs_setxattr_noperm) to update any backing
- * xattrs that represent the context. Example usage: NFS server invokes
- * this hook to change the security context in its incore inode and on the
- * backing filesystem to a value provided by the client on a SETATTR
- * operation.
- *
- * Must be called with inode->i_mutex locked.
- *
- * @dentry contains the inode we wish to set the security context of.
- * @ctx contains the string which we wish to set in the inode.
- * @ctxlen contains the length of @ctx.
- *
- * @inode_getsecctx:
- * Returns a string containing all relevant security context information
- *
- * @inode we wish to get the security context of.
- * @ctx is a pointer in which to place the allocated security context.
- * @ctxlen points to the place to put the length of @ctx.
- * This is the main security structure.
- */
-struct security_operations {
- char name[SECURITY_NAME_MAX + 1];
-
- int (*ptrace_access_check) (struct task_struct *child, unsigned int mode);
- int (*ptrace_traceme) (struct task_struct *parent);
- int (*capget) (struct task_struct *target,
- kernel_cap_t *effective,
- kernel_cap_t *inheritable, kernel_cap_t *permitted);
- int (*capset) (struct cred *new,
- const struct cred *old,
- const kernel_cap_t *effective,
- const kernel_cap_t *inheritable,
- const kernel_cap_t *permitted);
- int (*capable) (const struct cred *cred, struct user_namespace *ns,
- int cap, int audit);
- int (*quotactl) (int cmds, int type, int id, struct super_block *sb);
- int (*quota_on) (struct dentry *dentry);
- int (*syslog) (int type);
- int (*settime) (const struct timespec *ts, const struct timezone *tz);
- int (*vm_enough_memory) (struct mm_struct *mm, long pages);
-
- int (*bprm_set_creds) (struct linux_binprm *bprm);
- int (*bprm_check_security) (struct linux_binprm *bprm);
- int (*bprm_secureexec) (struct linux_binprm *bprm);
- void (*bprm_committing_creds) (struct linux_binprm *bprm);
- void (*bprm_committed_creds) (struct linux_binprm *bprm);
-
- int (*sb_alloc_security) (struct super_block *sb);
- void (*sb_free_security) (struct super_block *sb);
- int (*sb_copy_data) (char *orig, char *copy);
- int (*sb_remount) (struct super_block *sb, void *data);
- int (*sb_kern_mount) (struct super_block *sb, int flags, void *data);
- int (*sb_show_options) (struct seq_file *m, struct super_block *sb);
- int (*sb_statfs) (struct dentry *dentry);
- int (*sb_mount) (char *dev_name, struct path *path,
- char *type, unsigned long flags, void *data);
- int (*sb_umount) (struct vfsmount *mnt, int flags);
- int (*sb_pivotroot) (struct path *old_path,
- struct path *new_path);
- int (*sb_set_mnt_opts) (struct super_block *sb,
- struct security_mnt_opts *opts);
- void (*sb_clone_mnt_opts) (const struct super_block *oldsb,
- struct super_block *newsb);
- int (*sb_parse_opts_str) (char *options, struct security_mnt_opts *opts);
-
-#ifdef CONFIG_SECURITY_PATH
- int (*path_unlink) (struct path *dir, struct dentry *dentry);
- int (*path_mkdir) (struct path *dir, struct dentry *dentry, umode_t mode);
- int (*path_rmdir) (struct path *dir, struct dentry *dentry);
- int (*path_mknod) (struct path *dir, struct dentry *dentry, umode_t mode,
- unsigned int dev);
- int (*path_truncate) (struct path *path);
- int (*path_symlink) (struct path *dir, struct dentry *dentry,
- const char *old_name);
- int (*path_link) (struct dentry *old_dentry, struct path *new_dir,
- struct dentry *new_dentry);
- int (*path_rename) (struct path *old_dir, struct dentry *old_dentry,
- struct path *new_dir, struct dentry *new_dentry);
- int (*path_chmod) (struct path *path, umode_t mode);
- int (*path_chown) (struct path *path, uid_t uid, gid_t gid);
- int (*path_chroot) (struct path *path);
-#endif
-
- int (*inode_alloc_security) (struct inode *inode);
- void (*inode_free_security) (struct inode *inode);
- int (*inode_init_security) (struct inode *inode, struct inode *dir,
- const struct qstr *qstr, char **name,
- void **value, size_t *len);
- int (*inode_create) (struct inode *dir,
- struct dentry *dentry, umode_t mode);
- int (*inode_link) (struct dentry *old_dentry,
- struct inode *dir, struct dentry *new_dentry);
- int (*inode_unlink) (struct inode *dir, struct dentry *dentry);
- int (*inode_symlink) (struct inode *dir,
- struct dentry *dentry, const char *old_name);
- int (*inode_mkdir) (struct inode *dir, struct dentry *dentry, umode_t mode);
- int (*inode_rmdir) (struct inode *dir, struct dentry *dentry);
- int (*inode_mknod) (struct inode *dir, struct dentry *dentry,
- umode_t mode, dev_t dev);
- int (*inode_rename) (struct inode *old_dir, struct dentry *old_dentry,
- struct inode *new_dir, struct dentry *new_dentry);
- int (*inode_readlink) (struct dentry *dentry);
- int (*inode_follow_link) (struct dentry *dentry, struct nameidata *nd);
- int (*inode_permission) (struct inode *inode, int mask);
- int (*inode_setattr) (struct dentry *dentry, struct iattr *attr);
- int (*inode_getattr) (struct vfsmount *mnt, struct dentry *dentry);
- int (*inode_setxattr) (struct dentry *dentry, const char *name,
- const void *value, size_t size, int flags);
- void (*inode_post_setxattr) (struct dentry *dentry, const char *name,
- const void *value, size_t size, int flags);
- int (*inode_getxattr) (struct dentry *dentry, const char *name);
- int (*inode_listxattr) (struct dentry *dentry);
- int (*inode_removexattr) (struct dentry *dentry, const char *name);
- int (*inode_need_killpriv) (struct dentry *dentry);
- int (*inode_killpriv) (struct dentry *dentry);
- int (*inode_getsecurity) (const struct inode *inode, const char *name, void **buffer, bool alloc);
- int (*inode_setsecurity) (struct inode *inode, const char *name, const void *value, size_t size, int flags);
- int (*inode_listsecurity) (struct inode *inode, char *buffer, size_t buffer_size);
- void (*inode_getsecid) (const struct inode *inode, u32 *secid);
-
- int (*file_permission) (struct file *file, int mask);
- int (*file_alloc_security) (struct file *file);
- void (*file_free_security) (struct file *file);
- int (*file_ioctl) (struct file *file, unsigned int cmd,
- unsigned long arg);
- int (*file_mmap) (struct file *file,
- unsigned long reqprot, unsigned long prot,
- unsigned long flags, unsigned long addr,
- unsigned long addr_only);
- int (*file_mprotect) (struct vm_area_struct *vma,
- unsigned long reqprot,
- unsigned long prot);
- int (*file_lock) (struct file *file, unsigned int cmd);
- int (*file_fcntl) (struct file *file, unsigned int cmd,
- unsigned long arg);
- int (*file_set_fowner) (struct file *file);
- int (*file_send_sigiotask) (struct task_struct *tsk,
- struct fown_struct *fown, int sig);
- int (*file_receive) (struct file *file);
- int (*dentry_open) (struct file *file, const struct cred *cred);
-
- int (*task_create) (unsigned long clone_flags);
- void (*task_free) (struct task_struct *task);
- int (*cred_alloc_blank) (struct cred *cred, gfp_t gfp);
- void (*cred_free) (struct cred *cred);
- int (*cred_prepare)(struct cred *new, const struct cred *old,
- gfp_t gfp);
- void (*cred_transfer)(struct cred *new, const struct cred *old);
- int (*kernel_act_as)(struct cred *new, u32 secid);
- int (*kernel_create_files_as)(struct cred *new, struct inode *inode);
- int (*kernel_module_request)(char *kmod_name);
- int (*task_fix_setuid) (struct cred *new, const struct cred *old,
- int flags);
- int (*task_setpgid) (struct task_struct *p, pid_t pgid);
- int (*task_getpgid) (struct task_struct *p);
- int (*task_getsid) (struct task_struct *p);
- void (*task_getsecid) (struct task_struct *p, u32 *secid);
- int (*task_setnice) (struct task_struct *p, int nice);
- int (*task_setioprio) (struct task_struct *p, int ioprio);
- int (*task_getioprio) (struct task_struct *p);
- int (*task_setrlimit) (struct task_struct *p, unsigned int resource,
- struct rlimit *new_rlim);
- int (*task_setscheduler) (struct task_struct *p);
- int (*task_getscheduler) (struct task_struct *p);
- int (*task_movememory) (struct task_struct *p);
- int (*task_kill) (struct task_struct *p,
- struct siginfo *info, int sig, u32 secid);
- int (*task_wait) (struct task_struct *p);
- int (*task_prctl) (int option, unsigned long arg2,
- unsigned long arg3, unsigned long arg4,
- unsigned long arg5);
- void (*task_to_inode) (struct task_struct *p, struct inode *inode);
-
- int (*ipc_permission) (struct kern_ipc_perm *ipcp, short flag);
- void (*ipc_getsecid) (struct kern_ipc_perm *ipcp, u32 *secid);
-
- int (*msg_msg_alloc_security) (struct msg_msg *msg);
- void (*msg_msg_free_security) (struct msg_msg *msg);
-
- int (*msg_queue_alloc_security) (struct msg_queue *msq);
- void (*msg_queue_free_security) (struct msg_queue *msq);
- int (*msg_queue_associate) (struct msg_queue *msq, int msqflg);
- int (*msg_queue_msgctl) (struct msg_queue *msq, int cmd);
- int (*msg_queue_msgsnd) (struct msg_queue *msq,
- struct msg_msg *msg, int msqflg);
- int (*msg_queue_msgrcv) (struct msg_queue *msq,
- struct msg_msg *msg,
- struct task_struct *target,
- long type, int mode);
-
- int (*shm_alloc_security) (struct shmid_kernel *shp);
- void (*shm_free_security) (struct shmid_kernel *shp);
- int (*shm_associate) (struct shmid_kernel *shp, int shmflg);
- int (*shm_shmctl) (struct shmid_kernel *shp, int cmd);
- int (*shm_shmat) (struct shmid_kernel *shp,
- char __user *shmaddr, int shmflg);
-
- int (*sem_alloc_security) (struct sem_array *sma);
- void (*sem_free_security) (struct sem_array *sma);
- int (*sem_associate) (struct sem_array *sma, int semflg);
- int (*sem_semctl) (struct sem_array *sma, int cmd);
- int (*sem_semop) (struct sem_array *sma,
- struct sembuf *sops, unsigned nsops, int alter);
-
- int (*netlink_send) (struct sock *sk, struct sk_buff *skb);
-
- void (*d_instantiate) (struct dentry *dentry, struct inode *inode);
-
- int (*getprocattr) (struct task_struct *p, char *name, char **value);
- int (*setprocattr) (struct task_struct *p, char *name, void *value, size_t size);
- int (*secid_to_secctx) (u32 secid, char **secdata, u32 *seclen);
- int (*secctx_to_secid) (const char *secdata, u32 seclen, u32 *secid);
- void (*release_secctx) (char *secdata, u32 seclen);
-
- int (*inode_notifysecctx)(struct inode *inode, void *ctx, u32 ctxlen);
- int (*inode_setsecctx)(struct dentry *dentry, void *ctx, u32 ctxlen);
- int (*inode_getsecctx)(struct inode *inode, void **ctx, u32 *ctxlen);
-
-#ifdef CONFIG_SECURITY_NETWORK
- int (*unix_stream_connect) (struct sock *sock, struct sock *other, struct sock *newsk);
- int (*unix_may_send) (struct socket *sock, struct socket *other);
-
- int (*socket_create) (int family, int type, int protocol, int kern);
- int (*socket_post_create) (struct socket *sock, int family,
- int type, int protocol, int kern);
- int (*socket_bind) (struct socket *sock,
- struct sockaddr *address, int addrlen);
- int (*socket_connect) (struct socket *sock,
- struct sockaddr *address, int addrlen);
- int (*socket_listen) (struct socket *sock, int backlog);
- int (*socket_accept) (struct socket *sock, struct socket *newsock);
- int (*socket_sendmsg) (struct socket *sock,
- struct msghdr *msg, int size);
- int (*socket_recvmsg) (struct socket *sock,
- struct msghdr *msg, int size, int flags);
- int (*socket_getsockname) (struct socket *sock);
- int (*socket_getpeername) (struct socket *sock);
- int (*socket_getsockopt) (struct socket *sock, int level, int optname);
- int (*socket_setsockopt) (struct socket *sock, int level, int optname);
- int (*socket_shutdown) (struct socket *sock, int how);
- int (*socket_sock_rcv_skb) (struct sock *sk, struct sk_buff *skb);
- int (*socket_getpeersec_stream) (struct socket *sock, char __user *optval, int __user *optlen, unsigned len);
- int (*socket_getpeersec_dgram) (struct socket *sock, struct sk_buff *skb, u32 *secid);
- int (*sk_alloc_security) (struct sock *sk, int family, gfp_t priority);
- void (*sk_free_security) (struct sock *sk);
- void (*sk_clone_security) (const struct sock *sk, struct sock *newsk);
- void (*sk_getsecid) (struct sock *sk, u32 *secid);
- void (*sock_graft) (struct sock *sk, struct socket *parent);
- int (*inet_conn_request) (struct sock *sk, struct sk_buff *skb,
- struct request_sock *req);
- void (*inet_csk_clone) (struct sock *newsk, const struct request_sock *req);
- void (*inet_conn_established) (struct sock *sk, struct sk_buff *skb);
- int (*secmark_relabel_packet) (u32 secid);
- void (*secmark_refcount_inc) (void);
- void (*secmark_refcount_dec) (void);
- void (*req_classify_flow) (const struct request_sock *req, struct flowi *fl);
- int (*tun_dev_create)(void);
- void (*tun_dev_post_create)(struct sock *sk);
- int (*tun_dev_attach)(struct sock *sk);
-#endif /* CONFIG_SECURITY_NETWORK */
-
-#ifdef CONFIG_SECURITY_NETWORK_XFRM
- int (*xfrm_policy_alloc_security) (struct xfrm_sec_ctx **ctxp,
- struct xfrm_user_sec_ctx *sec_ctx);
- int (*xfrm_policy_clone_security) (struct xfrm_sec_ctx *old_ctx, struct xfrm_sec_ctx **new_ctx);
- void (*xfrm_policy_free_security) (struct xfrm_sec_ctx *ctx);
- int (*xfrm_policy_delete_security) (struct xfrm_sec_ctx *ctx);
- int (*xfrm_state_alloc_security) (struct xfrm_state *x,
- struct xfrm_user_sec_ctx *sec_ctx,
- u32 secid);
- void (*xfrm_state_free_security) (struct xfrm_state *x);
- int (*xfrm_state_delete_security) (struct xfrm_state *x);
- int (*xfrm_policy_lookup) (struct xfrm_sec_ctx *ctx, u32 fl_secid, u8 dir);
- int (*xfrm_state_pol_flow_match) (struct xfrm_state *x,
- struct xfrm_policy *xp,
- const struct flowi *fl);
- int (*xfrm_decode_session) (struct sk_buff *skb, u32 *secid, int ckall);
-#endif /* CONFIG_SECURITY_NETWORK_XFRM */
-
- /* key management security hooks */
-#ifdef CONFIG_KEYS
- int (*key_alloc) (struct key *key, const struct cred *cred, unsigned long flags);
- void (*key_free) (struct key *key);
- int (*key_permission) (key_ref_t key_ref,
- const struct cred *cred,
- key_perm_t perm);
- int (*key_getsecurity)(struct key *key, char **_buffer);
-#endif /* CONFIG_KEYS */
-
-#ifdef CONFIG_AUDIT
- int (*audit_rule_init) (u32 field, u32 op, char *rulestr, void **lsmrule);
- int (*audit_rule_known) (struct audit_krule *krule);
- int (*audit_rule_match) (u32 secid, u32 field, u32 op, void *lsmrule,
- struct audit_context *actx);
- void (*audit_rule_free) (void *lsmrule);
-#endif /* CONFIG_AUDIT */
-};
-
-/* prototypes */
-extern int security_init(void);
-extern int security_module_enable(struct security_operations *ops);
-extern int register_security(struct security_operations *ops);
-extern void __init security_fixup_ops(struct security_operations *ops);
-
-
-/* Security operations */
-int security_ptrace_access_check(struct task_struct *child, unsigned int mode);
-int security_ptrace_traceme(struct task_struct *parent);
-int security_capget(struct task_struct *target,
- kernel_cap_t *effective,
- kernel_cap_t *inheritable,
- kernel_cap_t *permitted);
-int security_capset(struct cred *new, const struct cred *old,
- const kernel_cap_t *effective,
- const kernel_cap_t *inheritable,
- const kernel_cap_t *permitted);
-int security_capable(const struct cred *cred, struct user_namespace *ns,
- int cap);
-int security_capable_noaudit(const struct cred *cred, struct user_namespace *ns,
- int cap);
-int security_quotactl(int cmds, int type, int id, struct super_block *sb);
-int security_quota_on(struct dentry *dentry);
-int security_syslog(int type);
-int security_settime(const struct timespec *ts, const struct timezone *tz);
-int security_vm_enough_memory_mm(struct mm_struct *mm, long pages);
-int security_bprm_set_creds(struct linux_binprm *bprm);
-int security_bprm_check(struct linux_binprm *bprm);
-void security_bprm_committing_creds(struct linux_binprm *bprm);
-void security_bprm_committed_creds(struct linux_binprm *bprm);
-int security_bprm_secureexec(struct linux_binprm *bprm);
-int security_sb_alloc(struct super_block *sb);
-void security_sb_free(struct super_block *sb);
-int security_sb_copy_data(char *orig, char *copy);
-int security_sb_remount(struct super_block *sb, void *data);
-int security_sb_kern_mount(struct super_block *sb, int flags, void *data);
-int security_sb_show_options(struct seq_file *m, struct super_block *sb);
-int security_sb_statfs(struct dentry *dentry);
-int security_sb_mount(char *dev_name, struct path *path,
- char *type, unsigned long flags, void *data);
-int security_sb_umount(struct vfsmount *mnt, int flags);
-int security_sb_pivotroot(struct path *old_path, struct path *new_path);
-int security_sb_set_mnt_opts(struct super_block *sb, struct security_mnt_opts *opts);
-void security_sb_clone_mnt_opts(const struct super_block *oldsb,
- struct super_block *newsb);
-int security_sb_parse_opts_str(char *options, struct security_mnt_opts *opts);
-
-int security_inode_alloc(struct inode *inode);
-void security_inode_free(struct inode *inode);
-int security_inode_init_security(struct inode *inode, struct inode *dir,
- const struct qstr *qstr,
- initxattrs initxattrs, void *fs_data);
-int security_old_inode_init_security(struct inode *inode, struct inode *dir,
- const struct qstr *qstr, char **name,
- void **value, size_t *len);
-int security_inode_create(struct inode *dir, struct dentry *dentry, umode_t mode);
-int security_inode_link(struct dentry *old_dentry, struct inode *dir,
- struct dentry *new_dentry);
-int security_inode_unlink(struct inode *dir, struct dentry *dentry);
-int security_inode_symlink(struct inode *dir, struct dentry *dentry,
- const char *old_name);
-int security_inode_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode);
-int security_inode_rmdir(struct inode *dir, struct dentry *dentry);
-int security_inode_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, dev_t dev);
-int security_inode_rename(struct inode *old_dir, struct dentry *old_dentry,
- struct inode *new_dir, struct dentry *new_dentry);
-int security_inode_readlink(struct dentry *dentry);
-int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd);
-int security_inode_permission(struct inode *inode, int mask);
-int security_inode_setattr(struct dentry *dentry, struct iattr *attr);
-int security_inode_getattr(struct vfsmount *mnt, struct dentry *dentry);
-int security_inode_setxattr(struct dentry *dentry, const char *name,
- const void *value, size_t size, int flags);
-void security_inode_post_setxattr(struct dentry *dentry, const char *name,
- const void *value, size_t size, int flags);
-int security_inode_getxattr(struct dentry *dentry, const char *name);
-int security_inode_listxattr(struct dentry *dentry);
-int security_inode_removexattr(struct dentry *dentry, const char *name);
-int security_inode_need_killpriv(struct dentry *dentry);
-int security_inode_killpriv(struct dentry *dentry);
-int security_inode_getsecurity(const struct inode *inode, const char *name, void **buffer, bool alloc);
-int security_inode_setsecurity(struct inode *inode, const char *name, const void *value, size_t size, int flags);
-int security_inode_listsecurity(struct inode *inode, char *buffer, size_t buffer_size);
-void security_inode_getsecid(const struct inode *inode, u32 *secid);
-int security_file_permission(struct file *file, int mask);
-int security_file_alloc(struct file *file);
-void security_file_free(struct file *file);
-int security_file_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
-int security_file_mmap(struct file *file, unsigned long reqprot,
- unsigned long prot, unsigned long flags,
- unsigned long addr, unsigned long addr_only);
-int security_file_mprotect(struct vm_area_struct *vma, unsigned long reqprot,
- unsigned long prot);
-int security_file_lock(struct file *file, unsigned int cmd);
-int security_file_fcntl(struct file *file, unsigned int cmd, unsigned long arg);
-int security_file_set_fowner(struct file *file);
-int security_file_send_sigiotask(struct task_struct *tsk,
- struct fown_struct *fown, int sig);
-int security_file_receive(struct file *file);
-int security_dentry_open(struct file *file, const struct cred *cred);
-int security_task_create(unsigned long clone_flags);
-void security_task_free(struct task_struct *task);
-int security_cred_alloc_blank(struct cred *cred, gfp_t gfp);
-void security_cred_free(struct cred *cred);
-int security_prepare_creds(struct cred *new, const struct cred *old, gfp_t gfp);
-void security_transfer_creds(struct cred *new, const struct cred *old);
-int security_kernel_act_as(struct cred *new, u32 secid);
-int security_kernel_create_files_as(struct cred *new, struct inode *inode);
-int security_kernel_module_request(char *kmod_name);
-int security_task_fix_setuid(struct cred *new, const struct cred *old,
- int flags);
-int security_task_setpgid(struct task_struct *p, pid_t pgid);
-int security_task_getpgid(struct task_struct *p);
-int security_task_getsid(struct task_struct *p);
-void security_task_getsecid(struct task_struct *p, u32 *secid);
-int security_task_setnice(struct task_struct *p, int nice);
-int security_task_setioprio(struct task_struct *p, int ioprio);
-int security_task_getioprio(struct task_struct *p);
-int security_task_setrlimit(struct task_struct *p, unsigned int resource,
- struct rlimit *new_rlim);
-int security_task_setscheduler(struct task_struct *p);
-int security_task_getscheduler(struct task_struct *p);
-int security_task_movememory(struct task_struct *p);
-int security_task_kill(struct task_struct *p, struct siginfo *info,
- int sig, u32 secid);
-int security_task_wait(struct task_struct *p);
-int security_task_prctl(int option, unsigned long arg2, unsigned long arg3,
- unsigned long arg4, unsigned long arg5);
-void security_task_to_inode(struct task_struct *p, struct inode *inode);
-int security_ipc_permission(struct kern_ipc_perm *ipcp, short flag);
-void security_ipc_getsecid(struct kern_ipc_perm *ipcp, u32 *secid);
-int security_msg_msg_alloc(struct msg_msg *msg);
-void security_msg_msg_free(struct msg_msg *msg);
-int security_msg_queue_alloc(struct msg_queue *msq);
-void security_msg_queue_free(struct msg_queue *msq);
-int security_msg_queue_associate(struct msg_queue *msq, int msqflg);
-int security_msg_queue_msgctl(struct msg_queue *msq, int cmd);
-int security_msg_queue_msgsnd(struct msg_queue *msq,
- struct msg_msg *msg, int msqflg);
-int security_msg_queue_msgrcv(struct msg_queue *msq, struct msg_msg *msg,
- struct task_struct *target, long type, int mode);
-int security_shm_alloc(struct shmid_kernel *shp);
-void security_shm_free(struct shmid_kernel *shp);
-int security_shm_associate(struct shmid_kernel *shp, int shmflg);
-int security_shm_shmctl(struct shmid_kernel *shp, int cmd);
-int security_shm_shmat(struct shmid_kernel *shp, char __user *shmaddr, int shmflg);
-int security_sem_alloc(struct sem_array *sma);
-void security_sem_free(struct sem_array *sma);
-int security_sem_associate(struct sem_array *sma, int semflg);
-int security_sem_semctl(struct sem_array *sma, int cmd);
-int security_sem_semop(struct sem_array *sma, struct sembuf *sops,
- unsigned nsops, int alter);
-void security_d_instantiate(struct dentry *dentry, struct inode *inode);
-int security_getprocattr(struct task_struct *p, char *name, char **value);
-int security_setprocattr(struct task_struct *p, char *name, void *value, size_t size);
-int security_netlink_send(struct sock *sk, struct sk_buff *skb);
-int security_secid_to_secctx(u32 secid, char **secdata, u32 *seclen);
-int security_secctx_to_secid(const char *secdata, u32 seclen, u32 *secid);
-void security_release_secctx(char *secdata, u32 seclen);
-
-int security_inode_notifysecctx(struct inode *inode, void *ctx, u32 ctxlen);
-int security_inode_setsecctx(struct dentry *dentry, void *ctx, u32 ctxlen);
-int security_inode_getsecctx(struct inode *inode, void **ctx, u32 *ctxlen);
-#else /* CONFIG_SECURITY */
-struct security_mnt_opts {
-};
-
-static inline void security_init_mnt_opts(struct security_mnt_opts *opts)
-{
-}
-
-static inline void security_free_mnt_opts(struct security_mnt_opts *opts)
-{
-}
-
-/*
- * This is the default capabilities functionality. Most of these functions
- * are just stubbed out, but a few must call the proper capable code.
- */
-
-static inline int security_init(void)
-{
- return 0;
-}
-
-static inline int security_ptrace_access_check(struct task_struct *child,
- unsigned int mode)
-{
- return cap_ptrace_access_check(child, mode);
-}
-
-static inline int security_ptrace_traceme(struct task_struct *parent)
-{
- return cap_ptrace_traceme(parent);
-}
-
-static inline int security_capget(struct task_struct *target,
- kernel_cap_t *effective,
- kernel_cap_t *inheritable,
- kernel_cap_t *permitted)
-{
- return cap_capget(target, effective, inheritable, permitted);
-}
-
-static inline int security_capset(struct cred *new,
- const struct cred *old,
- const kernel_cap_t *effective,
- const kernel_cap_t *inheritable,
- const kernel_cap_t *permitted)
-{
- return cap_capset(new, old, effective, inheritable, permitted);
-}
-
-static inline int security_capable(const struct cred *cred,
- struct user_namespace *ns, int cap)
-{
- return cap_capable(cred, ns, cap, SECURITY_CAP_AUDIT);
-}
-
-static inline int security_capable_noaudit(const struct cred *cred,
- struct user_namespace *ns, int cap) {
- return cap_capable(cred, ns, cap, SECURITY_CAP_NOAUDIT);
-}
-
-static inline int security_quotactl(int cmds, int type, int id,
- struct super_block *sb)
-{
- return 0;
-}
-
-static inline int security_quota_on(struct dentry *dentry)
-{
- return 0;
-}
-
-static inline int security_syslog(int type)
-{
- return 0;
-}
-
-static inline int security_settime(const struct timespec *ts,
- const struct timezone *tz)
-{
- return cap_settime(ts, tz);
-}
-
-static inline int security_vm_enough_memory_mm(struct mm_struct *mm, long pages)
-{
- return cap_vm_enough_memory(mm, pages);
-}
-
-static inline int security_bprm_set_creds(struct linux_binprm *bprm)
-{
- return cap_bprm_set_creds(bprm);
-}
-
-static inline int security_bprm_check(struct linux_binprm *bprm)
-{
- return 0;
-}
-
-static inline void security_bprm_committing_creds(struct linux_binprm *bprm)
-{
-}
-
-static inline void security_bprm_committed_creds(struct linux_binprm *bprm)
-{
-}
-
-static inline int security_bprm_secureexec(struct linux_binprm *bprm)
-{
- return cap_bprm_secureexec(bprm);
-}
-
-static inline int security_sb_alloc(struct super_block *sb)
-{
- return 0;
-}
-
-static inline void security_sb_free(struct super_block *sb)
-{ }
-
-static inline int security_sb_copy_data(char *orig, char *copy)
-{
- return 0;
-}
-
-static inline int security_sb_remount(struct super_block *sb, void *data)
-{
- return 0;
-}
-
-static inline int security_sb_kern_mount(struct super_block *sb, int flags, void *data)
-{
- return 0;
-}
-
-static inline int security_sb_show_options(struct seq_file *m,
- struct super_block *sb)
-{
- return 0;
-}
-
-static inline int security_sb_statfs(struct dentry *dentry)
-{
- return 0;
-}
-
-static inline int security_sb_mount(char *dev_name, struct path *path,
- char *type, unsigned long flags,
- void *data)
-{
- return 0;
-}
-
-static inline int security_sb_umount(struct vfsmount *mnt, int flags)
-{
- return 0;
-}
-
-static inline int security_sb_pivotroot(struct path *old_path,
- struct path *new_path)
-{
- return 0;
-}
-
-static inline int security_sb_set_mnt_opts(struct super_block *sb,
- struct security_mnt_opts *opts)
-{
- return 0;
-}
-
-static inline void security_sb_clone_mnt_opts(const struct super_block *oldsb,
- struct super_block *newsb)
-{ }
-
-static inline int security_sb_parse_opts_str(char *options, struct security_mnt_opts *opts)
-{
- return 0;
-}
-
-static inline int security_inode_alloc(struct inode *inode)
-{
- return 0;
-}
-
-static inline void security_inode_free(struct inode *inode)
-{ }
-
-static inline int security_inode_init_security(struct inode *inode,
- struct inode *dir,
- const struct qstr *qstr,
- const initxattrs initxattrs,
- void *fs_data)
-{
- return 0;
-}
-
-static inline int security_old_inode_init_security(struct inode *inode,
- struct inode *dir,
- const struct qstr *qstr,
- char **name, void **value,
- size_t *len)
-{
- return -EOPNOTSUPP;
-}
-
-static inline int security_inode_create(struct inode *dir,
- struct dentry *dentry,
- umode_t mode)
-{
- return 0;
-}
-
-static inline int security_inode_link(struct dentry *old_dentry,
- struct inode *dir,
- struct dentry *new_dentry)
-{
- return 0;
-}
-
-static inline int security_inode_unlink(struct inode *dir,
- struct dentry *dentry)
-{
- return 0;
-}
-
-static inline int security_inode_symlink(struct inode *dir,
- struct dentry *dentry,
- const char *old_name)
-{
- return 0;
-}
-
-static inline int security_inode_mkdir(struct inode *dir,
- struct dentry *dentry,
- int mode)
-{
- return 0;
-}
-
-static inline int security_inode_rmdir(struct inode *dir,
- struct dentry *dentry)
-{
- return 0;
-}
-
-static inline int security_inode_mknod(struct inode *dir,
- struct dentry *dentry,
- int mode, dev_t dev)
-{
- return 0;
-}
-
-static inline int security_inode_rename(struct inode *old_dir,
- struct dentry *old_dentry,
- struct inode *new_dir,
- struct dentry *new_dentry)
-{
- return 0;
-}
-
-static inline int security_inode_readlink(struct dentry *dentry)
-{
- return 0;
-}
-
-static inline int security_inode_follow_link(struct dentry *dentry,
- struct nameidata *nd)
-{
- return 0;
-}
-
-static inline int security_inode_permission(struct inode *inode, int mask)
-{
- return 0;
-}
-
-static inline int security_inode_setattr(struct dentry *dentry,
- struct iattr *attr)
-{
- return 0;
-}
-
-static inline int security_inode_getattr(struct vfsmount *mnt,
- struct dentry *dentry)
-{
- return 0;
-}
-
-static inline int security_inode_setxattr(struct dentry *dentry,
- const char *name, const void *value, size_t size, int flags)
-{
- return cap_inode_setxattr(dentry, name, value, size, flags);
-}
-
-static inline void security_inode_post_setxattr(struct dentry *dentry,
- const char *name, const void *value, size_t size, int flags)
-{ }
-
-static inline int security_inode_getxattr(struct dentry *dentry,
- const char *name)
-{
- return 0;
-}
-
-static inline int security_inode_listxattr(struct dentry *dentry)
-{
- return 0;
-}
-
-static inline int security_inode_removexattr(struct dentry *dentry,
- const char *name)
-{
- return cap_inode_removexattr(dentry, name);
-}
-
-static inline int security_inode_need_killpriv(struct dentry *dentry)
-{
- return cap_inode_need_killpriv(dentry);
-}
-
-static inline int security_inode_killpriv(struct dentry *dentry)
-{
- return cap_inode_killpriv(dentry);
-}
-
-static inline int security_inode_getsecurity(const struct inode *inode, const char *name, void **buffer, bool alloc)
-{
- return -EOPNOTSUPP;
-}
-
-static inline int security_inode_setsecurity(struct inode *inode, const char *name, const void *value, size_t size, int flags)
-{
- return -EOPNOTSUPP;
-}
-
-static inline int security_inode_listsecurity(struct inode *inode, char *buffer, size_t buffer_size)
-{
- return 0;
-}
-
-static inline void security_inode_getsecid(const struct inode *inode, u32 *secid)
-{
- *secid = 0;
-}
-
-static inline int security_file_permission(struct file *file, int mask)
-{
- return 0;
-}
-
-static inline int security_file_alloc(struct file *file)
-{
- return 0;
-}
-
-static inline void security_file_free(struct file *file)
-{ }
-
-static inline int security_file_ioctl(struct file *file, unsigned int cmd,
- unsigned long arg)
-{
- return 0;
-}
-
-static inline int security_file_mmap(struct file *file, unsigned long reqprot,
- unsigned long prot,
- unsigned long flags,
- unsigned long addr,
- unsigned long addr_only)
-{
- return cap_file_mmap(file, reqprot, prot, flags, addr, addr_only);
-}
-
-static inline int security_file_mprotect(struct vm_area_struct *vma,
- unsigned long reqprot,
- unsigned long prot)
-{
- return 0;
-}
-
-static inline int security_file_lock(struct file *file, unsigned int cmd)
-{
- return 0;
-}
-
-static inline int security_file_fcntl(struct file *file, unsigned int cmd,
- unsigned long arg)
-{
- return 0;
-}
-
-static inline int security_file_set_fowner(struct file *file)
-{
- return 0;
-}
-
-static inline int security_file_send_sigiotask(struct task_struct *tsk,
- struct fown_struct *fown,
- int sig)
-{
- return 0;
-}
-
-static inline int security_file_receive(struct file *file)
-{
- return 0;
-}
-
-static inline int security_dentry_open(struct file *file,
- const struct cred *cred)
-{
- return 0;
-}
-
-static inline int security_task_create(unsigned long clone_flags)
-{
- return 0;
-}
-
-static inline void security_task_free(struct task_struct *task)
-{ }
-
-static inline int security_cred_alloc_blank(struct cred *cred, gfp_t gfp)
-{
- return 0;
-}
-
-static inline void security_cred_free(struct cred *cred)
-{ }
-
-static inline int security_prepare_creds(struct cred *new,
- const struct cred *old,
- gfp_t gfp)
-{
- return 0;
-}
-
-static inline void security_transfer_creds(struct cred *new,
- const struct cred *old)
-{
-}
-
-static inline int security_kernel_act_as(struct cred *cred, u32 secid)
-{
- return 0;
-}
-
-static inline int security_kernel_create_files_as(struct cred *cred,
- struct inode *inode)
-{
- return 0;
-}
-
-static inline int security_kernel_module_request(char *kmod_name)
-{
- return 0;
-}
-
-static inline int security_task_fix_setuid(struct cred *new,
- const struct cred *old,
- int flags)
-{
- return cap_task_fix_setuid(new, old, flags);
-}
-
-static inline int security_task_setpgid(struct task_struct *p, pid_t pgid)
-{
- return 0;
-}
-
-static inline int security_task_getpgid(struct task_struct *p)
-{
- return 0;
-}
-
-static inline int security_task_getsid(struct task_struct *p)
-{
- return 0;
-}
-
-static inline void security_task_getsecid(struct task_struct *p, u32 *secid)
-{
- *secid = 0;
-}
-
-static inline int security_task_setnice(struct task_struct *p, int nice)
-{
- return cap_task_setnice(p, nice);
-}
-
-static inline int security_task_setioprio(struct task_struct *p, int ioprio)
-{
- return cap_task_setioprio(p, ioprio);
-}
-
-static inline int security_task_getioprio(struct task_struct *p)
-{
- return 0;
-}
-
-static inline int security_task_setrlimit(struct task_struct *p,
- unsigned int resource,
- struct rlimit *new_rlim)
-{
- return 0;
-}
-
-static inline int security_task_setscheduler(struct task_struct *p)
-{
- return cap_task_setscheduler(p);
-}
-
-static inline int security_task_getscheduler(struct task_struct *p)
-{
- return 0;
-}
-
-static inline int security_task_movememory(struct task_struct *p)
-{
- return 0;
-}
-
-static inline int security_task_kill(struct task_struct *p,
- struct siginfo *info, int sig,
- u32 secid)
-{
- return 0;
-}
-
-static inline int security_task_wait(struct task_struct *p)
-{
- return 0;
-}
-
-static inline int security_task_prctl(int option, unsigned long arg2,
- unsigned long arg3,
- unsigned long arg4,
- unsigned long arg5)
-{
- return cap_task_prctl(option, arg2, arg3, arg3, arg5);
-}
-
-static inline void security_task_to_inode(struct task_struct *p, struct inode *inode)
-{ }
-
-static inline int security_ipc_permission(struct kern_ipc_perm *ipcp,
- short flag)
-{
- return 0;
-}
-
-static inline void security_ipc_getsecid(struct kern_ipc_perm *ipcp, u32 *secid)
-{
- *secid = 0;
-}
-
-static inline int security_msg_msg_alloc(struct msg_msg *msg)
-{
- return 0;
-}
-
-static inline void security_msg_msg_free(struct msg_msg *msg)
-{ }
-
-static inline int security_msg_queue_alloc(struct msg_queue *msq)
-{
- return 0;
-}
-
-static inline void security_msg_queue_free(struct msg_queue *msq)
-{ }
-
-static inline int security_msg_queue_associate(struct msg_queue *msq,
- int msqflg)
-{
- return 0;
-}
-
-static inline int security_msg_queue_msgctl(struct msg_queue *msq, int cmd)
-{
- return 0;
-}
-
-static inline int security_msg_queue_msgsnd(struct msg_queue *msq,
- struct msg_msg *msg, int msqflg)
-{
- return 0;
-}
-
-static inline int security_msg_queue_msgrcv(struct msg_queue *msq,
- struct msg_msg *msg,
- struct task_struct *target,
- long type, int mode)
-{
- return 0;
-}
-
-static inline int security_shm_alloc(struct shmid_kernel *shp)
-{
- return 0;
-}
-
-static inline void security_shm_free(struct shmid_kernel *shp)
-{ }
-
-static inline int security_shm_associate(struct shmid_kernel *shp,
- int shmflg)
-{
- return 0;
-}
-
-static inline int security_shm_shmctl(struct shmid_kernel *shp, int cmd)
-{
- return 0;
-}
-
-static inline int security_shm_shmat(struct shmid_kernel *shp,
- char __user *shmaddr, int shmflg)
-{
- return 0;
-}
-
-static inline int security_sem_alloc(struct sem_array *sma)
-{
- return 0;
-}
-
-static inline void security_sem_free(struct sem_array *sma)
-{ }
-
-static inline int security_sem_associate(struct sem_array *sma, int semflg)
-{
- return 0;
-}
-
-static inline int security_sem_semctl(struct sem_array *sma, int cmd)
-{
- return 0;
-}
-
-static inline int security_sem_semop(struct sem_array *sma,
- struct sembuf *sops, unsigned nsops,
- int alter)
-{
- return 0;
-}
-
-static inline void security_d_instantiate(struct dentry *dentry, struct inode *inode)
-{ }
-
-static inline int security_getprocattr(struct task_struct *p, char *name, char **value)
-{
- return -EINVAL;
-}
-
-static inline int security_setprocattr(struct task_struct *p, char *name, void *value, size_t size)
-{
- return -EINVAL;
-}
-
-static inline int security_netlink_send(struct sock *sk, struct sk_buff *skb)
-{
- return cap_netlink_send(sk, skb);
-}
-
-static inline int security_secid_to_secctx(u32 secid, char **secdata, u32 *seclen)
-{
- return -EOPNOTSUPP;
-}
-
-static inline int security_secctx_to_secid(const char *secdata,
- u32 seclen,
- u32 *secid)
-{
- return -EOPNOTSUPP;
-}
-
-static inline void security_release_secctx(char *secdata, u32 seclen)
-{
-}
-
-static inline int security_inode_notifysecctx(struct inode *inode, void *ctx, u32 ctxlen)
-{
- return -EOPNOTSUPP;
-}
-static inline int security_inode_setsecctx(struct dentry *dentry, void *ctx, u32 ctxlen)
-{
- return -EOPNOTSUPP;
-}
-static inline int security_inode_getsecctx(struct inode *inode, void **ctx, u32 *ctxlen)
-{
- return -EOPNOTSUPP;
-}
-#endif /* CONFIG_SECURITY */
-
-#ifdef CONFIG_SECURITY_NETWORK
-
-int security_unix_stream_connect(struct sock *sock, struct sock *other, struct sock *newsk);
-int security_unix_may_send(struct socket *sock, struct socket *other);
-int security_socket_create(int family, int type, int protocol, int kern);
-int security_socket_post_create(struct socket *sock, int family,
- int type, int protocol, int kern);
-int security_socket_bind(struct socket *sock, struct sockaddr *address, int addrlen);
-int security_socket_connect(struct socket *sock, struct sockaddr *address, int addrlen);
-int security_socket_listen(struct socket *sock, int backlog);
-int security_socket_accept(struct socket *sock, struct socket *newsock);
-int security_socket_sendmsg(struct socket *sock, struct msghdr *msg, int size);
-int security_socket_recvmsg(struct socket *sock, struct msghdr *msg,
- int size, int flags);
-int security_socket_getsockname(struct socket *sock);
-int security_socket_getpeername(struct socket *sock);
-int security_socket_getsockopt(struct socket *sock, int level, int optname);
-int security_socket_setsockopt(struct socket *sock, int level, int optname);
-int security_socket_shutdown(struct socket *sock, int how);
-int security_sock_rcv_skb(struct sock *sk, struct sk_buff *skb);
-int security_socket_getpeersec_stream(struct socket *sock, char __user *optval,
- int __user *optlen, unsigned len);
-int security_socket_getpeersec_dgram(struct socket *sock, struct sk_buff *skb, u32 *secid);
-int security_sk_alloc(struct sock *sk, int family, gfp_t priority);
-void security_sk_free(struct sock *sk);
-void security_sk_clone(const struct sock *sk, struct sock *newsk);
-void security_sk_classify_flow(struct sock *sk, struct flowi *fl);
-void security_req_classify_flow(const struct request_sock *req, struct flowi *fl);
-void security_sock_graft(struct sock*sk, struct socket *parent);
-int security_inet_conn_request(struct sock *sk,
- struct sk_buff *skb, struct request_sock *req);
-void security_inet_csk_clone(struct sock *newsk,
- const struct request_sock *req);
-void security_inet_conn_established(struct sock *sk,
- struct sk_buff *skb);
-int security_secmark_relabel_packet(u32 secid);
-void security_secmark_refcount_inc(void);
-void security_secmark_refcount_dec(void);
-int security_tun_dev_create(void);
-void security_tun_dev_post_create(struct sock *sk);
-int security_tun_dev_attach(struct sock *sk);
-
-#else /* CONFIG_SECURITY_NETWORK */
-static inline int security_unix_stream_connect(struct sock *sock,
- struct sock *other,
- struct sock *newsk)
-{
- return 0;
-}
-
-static inline int security_unix_may_send(struct socket *sock,
- struct socket *other)
-{
- return 0;
-}
-
-static inline int security_socket_create(int family, int type,
- int protocol, int kern)
-{
- return 0;
-}
-
-static inline int security_socket_post_create(struct socket *sock,
- int family,
- int type,
- int protocol, int kern)
-{
- return 0;
-}
-
-static inline int security_socket_bind(struct socket *sock,
- struct sockaddr *address,
- int addrlen)
-{
- return 0;
-}
-
-static inline int security_socket_connect(struct socket *sock,
- struct sockaddr *address,
- int addrlen)
-{
- return 0;
-}
-
-static inline int security_socket_listen(struct socket *sock, int backlog)
-{
- return 0;
-}
-
-static inline int security_socket_accept(struct socket *sock,
- struct socket *newsock)
-{
- return 0;
-}
-
-static inline int security_socket_sendmsg(struct socket *sock,
- struct msghdr *msg, int size)
-{
- return 0;
-}
-
-static inline int security_socket_recvmsg(struct socket *sock,
- struct msghdr *msg, int size,
- int flags)
-{
- return 0;
-}
-
-static inline int security_socket_getsockname(struct socket *sock)
-{
- return 0;
-}
-
-static inline int security_socket_getpeername(struct socket *sock)
-{
- return 0;
-}
-
-static inline int security_socket_getsockopt(struct socket *sock,
- int level, int optname)
-{
- return 0;
-}
-
-static inline int security_socket_setsockopt(struct socket *sock,
- int level, int optname)
-{
- return 0;
-}
-
-static inline int security_socket_shutdown(struct socket *sock, int how)
-{
- return 0;
-}
-static inline int security_sock_rcv_skb(struct sock *sk,
- struct sk_buff *skb)
-{
- return 0;
-}
-
-static inline int security_socket_getpeersec_stream(struct socket *sock, char __user *optval,
- int __user *optlen, unsigned len)
-{
- return -ENOPROTOOPT;
-}
-
-static inline int security_socket_getpeersec_dgram(struct socket *sock, struct sk_buff *skb, u32 *secid)
-{
- return -ENOPROTOOPT;
-}
-
-static inline int security_sk_alloc(struct sock *sk, int family, gfp_t priority)
-{
- return 0;
-}
-
-static inline void security_sk_free(struct sock *sk)
-{
-}
-
-static inline void security_sk_clone(const struct sock *sk, struct sock *newsk)
-{
-}
-
-static inline void security_sk_classify_flow(struct sock *sk, struct flowi *fl)
-{
-}
-
-static inline void security_req_classify_flow(const struct request_sock *req, struct flowi *fl)
-{
-}
-
-static inline void security_sock_graft(struct sock *sk, struct socket *parent)
-{
-}
-
-static inline int security_inet_conn_request(struct sock *sk,
- struct sk_buff *skb, struct request_sock *req)
-{
- return 0;
-}
-
-static inline void security_inet_csk_clone(struct sock *newsk,
- const struct request_sock *req)
-{
-}
-
-static inline void security_inet_conn_established(struct sock *sk,
- struct sk_buff *skb)
-{
-}
-
-static inline int security_secmark_relabel_packet(u32 secid)
-{
- return 0;
-}
-
-static inline void security_secmark_refcount_inc(void)
-{
-}
-
-static inline void security_secmark_refcount_dec(void)
-{
-}
-
-static inline int security_tun_dev_create(void)
-{
- return 0;
-}
-
-static inline void security_tun_dev_post_create(struct sock *sk)
-{
-}
-
-static inline int security_tun_dev_attach(struct sock *sk)
-{
- return 0;
-}
-#endif /* CONFIG_SECURITY_NETWORK */
-
-#ifdef CONFIG_SECURITY_NETWORK_XFRM
-
-int security_xfrm_policy_alloc(struct xfrm_sec_ctx **ctxp, struct xfrm_user_sec_ctx *sec_ctx);
-int security_xfrm_policy_clone(struct xfrm_sec_ctx *old_ctx, struct xfrm_sec_ctx **new_ctxp);
-void security_xfrm_policy_free(struct xfrm_sec_ctx *ctx);
-int security_xfrm_policy_delete(struct xfrm_sec_ctx *ctx);
-int security_xfrm_state_alloc(struct xfrm_state *x, struct xfrm_user_sec_ctx *sec_ctx);
-int security_xfrm_state_alloc_acquire(struct xfrm_state *x,
- struct xfrm_sec_ctx *polsec, u32 secid);
-int security_xfrm_state_delete(struct xfrm_state *x);
-void security_xfrm_state_free(struct xfrm_state *x);
-int security_xfrm_policy_lookup(struct xfrm_sec_ctx *ctx, u32 fl_secid, u8 dir);
-int security_xfrm_state_pol_flow_match(struct xfrm_state *x,
- struct xfrm_policy *xp,
- const struct flowi *fl);
-int security_xfrm_decode_session(struct sk_buff *skb, u32 *secid);
-void security_skb_classify_flow(struct sk_buff *skb, struct flowi *fl);
-
-#else /* CONFIG_SECURITY_NETWORK_XFRM */
-
-static inline int security_xfrm_policy_alloc(struct xfrm_sec_ctx **ctxp, struct xfrm_user_sec_ctx *sec_ctx)
-{
- return 0;
-}
-
-static inline int security_xfrm_policy_clone(struct xfrm_sec_ctx *old, struct xfrm_sec_ctx **new_ctxp)
-{
- return 0;
-}
-
-static inline void security_xfrm_policy_free(struct xfrm_sec_ctx *ctx)
-{
-}
-
-static inline int security_xfrm_policy_delete(struct xfrm_sec_ctx *ctx)
-{
- return 0;
-}
-
-static inline int security_xfrm_state_alloc(struct xfrm_state *x,
- struct xfrm_user_sec_ctx *sec_ctx)
-{
- return 0;
-}
-
-static inline int security_xfrm_state_alloc_acquire(struct xfrm_state *x,
- struct xfrm_sec_ctx *polsec, u32 secid)
-{
- return 0;
-}
-
-static inline void security_xfrm_state_free(struct xfrm_state *x)
-{
-}
-
-static inline int security_xfrm_state_delete(struct xfrm_state *x)
-{
- return 0;
-}
-
-static inline int security_xfrm_policy_lookup(struct xfrm_sec_ctx *ctx, u32 fl_secid, u8 dir)
-{
- return 0;
-}
-
-static inline int security_xfrm_state_pol_flow_match(struct xfrm_state *x,
- struct xfrm_policy *xp, const struct flowi *fl)
-{
- return 1;
-}
-
-static inline int security_xfrm_decode_session(struct sk_buff *skb, u32 *secid)
-{
- return 0;
-}
-
-static inline void security_skb_classify_flow(struct sk_buff *skb, struct flowi *fl)
-{
-}
-
-#endif /* CONFIG_SECURITY_NETWORK_XFRM */
-
-#ifdef CONFIG_SECURITY_PATH
-int security_path_unlink(struct path *dir, struct dentry *dentry);
-int security_path_mkdir(struct path *dir, struct dentry *dentry, umode_t mode);
-int security_path_rmdir(struct path *dir, struct dentry *dentry);
-int security_path_mknod(struct path *dir, struct dentry *dentry, umode_t mode,
- unsigned int dev);
-int security_path_truncate(struct path *path);
-int security_path_symlink(struct path *dir, struct dentry *dentry,
- const char *old_name);
-int security_path_link(struct dentry *old_dentry, struct path *new_dir,
- struct dentry *new_dentry);
-int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
- struct path *new_dir, struct dentry *new_dentry);
-int security_path_chmod(struct path *path, umode_t mode);
-int security_path_chown(struct path *path, uid_t uid, gid_t gid);
-int security_path_chroot(struct path *path);
-#else /* CONFIG_SECURITY_PATH */
-static inline int security_path_unlink(struct path *dir, struct dentry *dentry)
-{
- return 0;
-}
-
-static inline int security_path_mkdir(struct path *dir, struct dentry *dentry,
- umode_t mode)
-{
- return 0;
-}
-
-static inline int security_path_rmdir(struct path *dir, struct dentry *dentry)
-{
- return 0;
-}
-
-static inline int security_path_mknod(struct path *dir, struct dentry *dentry,
- umode_t mode, unsigned int dev)
-{
- return 0;
-}
-
-static inline int security_path_truncate(struct path *path)
-{
- return 0;
-}
-
-static inline int security_path_symlink(struct path *dir, struct dentry *dentry,
- const char *old_name)
-{
- return 0;
-}
-
-static inline int security_path_link(struct dentry *old_dentry,
- struct path *new_dir,
- struct dentry *new_dentry)
-{
- return 0;
-}
-
-static inline int security_path_rename(struct path *old_dir,
- struct dentry *old_dentry,
- struct path *new_dir,
- struct dentry *new_dentry)
-{
- return 0;
-}
-
-static inline int security_path_chmod(struct path *path, umode_t mode)
-{
- return 0;
-}
-
-static inline int security_path_chown(struct path *path, uid_t uid, gid_t gid)
-{
- return 0;
-}
-
-static inline int security_path_chroot(struct path *path)
-{
- return 0;
-}
-#endif /* CONFIG_SECURITY_PATH */
-
-#ifdef CONFIG_KEYS
-#ifdef CONFIG_SECURITY
-
-int security_key_alloc(struct key *key, const struct cred *cred, unsigned long flags);
-void security_key_free(struct key *key);
-int security_key_permission(key_ref_t key_ref,
- const struct cred *cred, key_perm_t perm);
-int security_key_getsecurity(struct key *key, char **_buffer);
-
-#else
-
-static inline int security_key_alloc(struct key *key,
- const struct cred *cred,
- unsigned long flags)
-{
- return 0;
-}
-
-static inline void security_key_free(struct key *key)
-{
-}
-
-static inline int security_key_permission(key_ref_t key_ref,
- const struct cred *cred,
- key_perm_t perm)
-{
- return 0;
-}
-
-static inline int security_key_getsecurity(struct key *key, char **_buffer)
-{
- *_buffer = NULL;
- return 0;
-}
-
-#endif
-#endif /* CONFIG_KEYS */
-
-#ifdef CONFIG_AUDIT
-#ifdef CONFIG_SECURITY
-int security_audit_rule_init(u32 field, u32 op, char *rulestr, void **lsmrule);
-int security_audit_rule_known(struct audit_krule *krule);
-int security_audit_rule_match(u32 secid, u32 field, u32 op, void *lsmrule,
- struct audit_context *actx);
-void security_audit_rule_free(void *lsmrule);
-
-#else
-
-static inline int security_audit_rule_init(u32 field, u32 op, char *rulestr,
- void **lsmrule)
-{
- return 0;
-}
-
-static inline int security_audit_rule_known(struct audit_krule *krule)
-{
- return 0;
-}
-
-static inline int security_audit_rule_match(u32 secid, u32 field, u32 op,
- void *lsmrule, struct audit_context *actx)
-{
- return 0;
-}
-
-static inline void security_audit_rule_free(void *lsmrule)
-{ }
-
-#endif /* CONFIG_SECURITY */
-#endif /* CONFIG_AUDIT */
-
-#ifdef CONFIG_SECURITYFS
-
-extern struct dentry *securityfs_create_file(const char *name, umode_t mode,
- struct dentry *parent, void *data,
- const struct file_operations *fops);
-extern struct dentry *securityfs_create_dir(const char *name, struct dentry *parent);
-extern void securityfs_remove(struct dentry *dentry);
-
-#else /* CONFIG_SECURITYFS */
-
-static inline struct dentry *securityfs_create_dir(const char *name,
- struct dentry *parent)
-{
- return ERR_PTR(-ENODEV);
-}
-
-static inline struct dentry *securityfs_create_file(const char *name,
- umode_t mode,
- struct dentry *parent,
- void *data,
- const struct file_operations *fops)
-{
- return ERR_PTR(-ENODEV);
-}
-
-static inline void securityfs_remove(struct dentry *dentry)
-{}
-
-#endif
-
-#ifdef CONFIG_SECURITY
-
-static inline char *alloc_secdata(void)
-{
- return (char *)get_zeroed_page(GFP_KERNEL);
-}
-
-static inline void free_secdata(void *secdata)
-{
- free_page((unsigned long)secdata);
-}
-
-#else
-
-static inline char *alloc_secdata(void)
-{
- return (char *)1;
-}
-
-static inline void free_secdata(void *secdata)
-{ }
-#endif /* CONFIG_SECURITY */
-
-#endif /* ! __LINUX_SECURITY_H */
-
diff --git a/ANDROID_3.4.5/include/linux/selection.h b/ANDROID_3.4.5/include/linux/selection.h
deleted file mode 100644
index 85193aa8..00000000
--- a/ANDROID_3.4.5/include/linux/selection.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * selection.h
- *
- * Interface between console.c, tty_io.c, vt.c, vc_screen.c and selection.c
- */
-
-#ifndef _LINUX_SELECTION_H_
-#define _LINUX_SELECTION_H_
-
-#include <linux/tiocl.h>
-#include <linux/vt_buffer.h>
-
-struct tty_struct;
-
-extern struct vc_data *sel_cons;
-struct tty_struct;
-
-extern void clear_selection(void);
-extern int set_selection(const struct tiocl_selection __user *sel, struct tty_struct *tty);
-extern int paste_selection(struct tty_struct *tty);
-extern int sel_loadlut(char __user *p);
-extern int mouse_reporting(void);
-extern void mouse_report(struct tty_struct * tty, int butt, int mrx, int mry);
-
-extern int console_blanked;
-
-extern unsigned char color_table[];
-extern int default_red[];
-extern int default_grn[];
-extern int default_blu[];
-
-extern unsigned short *screen_pos(struct vc_data *vc, int w_offset, int viewed);
-extern u16 screen_glyph(struct vc_data *vc, int offset);
-extern void complement_pos(struct vc_data *vc, int offset);
-extern void invert_screen(struct vc_data *vc, int offset, int count, int shift);
-
-extern void getconsxy(struct vc_data *vc, unsigned char *p);
-extern void putconsxy(struct vc_data *vc, unsigned char *p);
-
-extern u16 vcs_scr_readw(struct vc_data *vc, const u16 *org);
-extern void vcs_scr_writew(struct vc_data *vc, u16 val, u16 *org);
-extern void vcs_scr_updated(struct vc_data *vc);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/selinux.h b/ANDROID_3.4.5/include/linux/selinux.h
deleted file mode 100644
index 44f45961..00000000
--- a/ANDROID_3.4.5/include/linux/selinux.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * SELinux services exported to the rest of the kernel.
- *
- * Author: James Morris <jmorris@redhat.com>
- *
- * Copyright (C) 2005 Red Hat, Inc., James Morris <jmorris@redhat.com>
- * Copyright (C) 2006 Trusted Computer Solutions, Inc. <dgoeddel@trustedcs.com>
- * Copyright (C) 2006 IBM Corporation, Timothy R. Chavez <tinytim@us.ibm.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.
- */
-#ifndef _LINUX_SELINUX_H
-#define _LINUX_SELINUX_H
-
-struct selinux_audit_rule;
-struct audit_context;
-struct kern_ipc_perm;
-
-#ifdef CONFIG_SECURITY_SELINUX
-
-/**
- * selinux_is_enabled - is SELinux enabled?
- */
-bool selinux_is_enabled(void);
-#else
-
-static inline bool selinux_is_enabled(void)
-{
- return false;
-}
-#endif /* CONFIG_SECURITY_SELINUX */
-
-#endif /* _LINUX_SELINUX_H */
diff --git a/ANDROID_3.4.5/include/linux/selinux_netlink.h b/ANDROID_3.4.5/include/linux/selinux_netlink.h
deleted file mode 100644
index d2397977..00000000
--- a/ANDROID_3.4.5/include/linux/selinux_netlink.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Netlink event notifications for SELinux.
- *
- * Author: James Morris <jmorris@redhat.com>
- *
- * Copyright (C) 2004 Red Hat, Inc., James Morris <jmorris@redhat.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.
- */
-#ifndef _LINUX_SELINUX_NETLINK_H
-#define _LINUX_SELINUX_NETLINK_H
-
-#include <linux/types.h>
-
-/* Message types. */
-#define SELNL_MSG_BASE 0x10
-enum {
- SELNL_MSG_SETENFORCE = SELNL_MSG_BASE,
- SELNL_MSG_POLICYLOAD,
- SELNL_MSG_MAX
-};
-
-#ifndef __KERNEL__
-/* Multicast groups - backwards compatiblility for userspace */
-#define SELNL_GRP_NONE 0x00000000
-#define SELNL_GRP_AVC 0x00000001 /* AVC notifications */
-#define SELNL_GRP_ALL 0xffffffff
-#endif
-
-enum selinux_nlgroups {
- SELNLGRP_NONE,
-#define SELNLGRP_NONE SELNLGRP_NONE
- SELNLGRP_AVC,
-#define SELNLGRP_AVC SELNLGRP_AVC
- __SELNLGRP_MAX
-};
-#define SELNLGRP_MAX (__SELNLGRP_MAX - 1)
-
-/* Message structures */
-struct selnl_msg_setenforce {
- __s32 val;
-};
-
-struct selnl_msg_policyload {
- __u32 seqno;
-};
-
-#endif /* _LINUX_SELINUX_NETLINK_H */
diff --git a/ANDROID_3.4.5/include/linux/sem.h b/ANDROID_3.4.5/include/linux/sem.h
deleted file mode 100644
index 10d6b226..00000000
--- a/ANDROID_3.4.5/include/linux/sem.h
+++ /dev/null
@@ -1,127 +0,0 @@
-#ifndef _LINUX_SEM_H
-#define _LINUX_SEM_H
-
-#include <linux/ipc.h>
-
-/* semop flags */
-#define SEM_UNDO 0x1000 /* undo the operation on exit */
-
-/* semctl Command Definitions. */
-#define GETPID 11 /* get sempid */
-#define GETVAL 12 /* get semval */
-#define GETALL 13 /* get all semval's */
-#define GETNCNT 14 /* get semncnt */
-#define GETZCNT 15 /* get semzcnt */
-#define SETVAL 16 /* set semval */
-#define SETALL 17 /* set all semval's */
-
-/* ipcs ctl cmds */
-#define SEM_STAT 18
-#define SEM_INFO 19
-
-/* Obsolete, used only for backwards compatibility and libc5 compiles */
-struct semid_ds {
- struct ipc_perm sem_perm; /* permissions .. see ipc.h */
- __kernel_time_t sem_otime; /* last semop time */
- __kernel_time_t sem_ctime; /* last change time */
- struct sem *sem_base; /* ptr to first semaphore in array */
- struct sem_queue *sem_pending; /* pending operations to be processed */
- struct sem_queue **sem_pending_last; /* last pending operation */
- struct sem_undo *undo; /* undo requests on this array */
- unsigned short sem_nsems; /* no. of semaphores in array */
-};
-
-/* Include the definition of semid64_ds */
-#include <asm/sembuf.h>
-
-/* semop system calls takes an array of these. */
-struct sembuf {
- unsigned short sem_num; /* semaphore index in array */
- short sem_op; /* semaphore operation */
- short sem_flg; /* operation flags */
-};
-
-/* arg for semctl system calls. */
-union semun {
- int val; /* value for SETVAL */
- struct semid_ds __user *buf; /* buffer for IPC_STAT & IPC_SET */
- unsigned short __user *array; /* array for GETALL & SETALL */
- struct seminfo __user *__buf; /* buffer for IPC_INFO */
- void __user *__pad;
-};
-
-struct seminfo {
- int semmap;
- int semmni;
- int semmns;
- int semmnu;
- int semmsl;
- int semopm;
- int semume;
- int semusz;
- int semvmx;
- int semaem;
-};
-
-#define SEMMNI 128 /* <= IPCMNI max # of semaphore identifiers */
-#define SEMMSL 250 /* <= 8 000 max num of semaphores per id */
-#define SEMMNS (SEMMNI*SEMMSL) /* <= INT_MAX max # of semaphores in system */
-#define SEMOPM 32 /* <= 1 000 max num of ops per semop call */
-#define SEMVMX 32767 /* <= 32767 semaphore maximum value */
-#define SEMAEM SEMVMX /* adjust on exit max value */
-
-/* unused */
-#define SEMUME SEMOPM /* max num of undo entries per process */
-#define SEMMNU SEMMNS /* num of undo structures system wide */
-#define SEMMAP SEMMNS /* # of entries in semaphore map */
-#define SEMUSZ 20 /* sizeof struct sem_undo */
-
-#ifdef __KERNEL__
-#include <linux/atomic.h>
-#include <linux/rcupdate.h>
-#include <linux/cache.h>
-
-struct task_struct;
-
-/* One sem_array data structure for each set of semaphores in the system. */
-struct sem_array {
- struct kern_ipc_perm ____cacheline_aligned_in_smp
- sem_perm; /* permissions .. see ipc.h */
- time_t sem_otime; /* last semop time */
- time_t sem_ctime; /* last change time */
- struct sem *sem_base; /* ptr to first semaphore in array */
- struct list_head sem_pending; /* pending operations to be processed */
- struct list_head list_id; /* undo requests on this array */
- int sem_nsems; /* no. of semaphores in array */
- int complex_count; /* pending complex operations */
-};
-
-#ifdef CONFIG_SYSVIPC
-
-struct sysv_sem {
- struct sem_undo_list *undo_list;
-};
-
-extern int copy_semundo(unsigned long clone_flags, struct task_struct *tsk);
-extern void exit_sem(struct task_struct *tsk);
-
-#else
-
-struct sysv_sem {
- /* empty */
-};
-
-static inline int copy_semundo(unsigned long clone_flags, struct task_struct *tsk)
-{
- return 0;
-}
-
-static inline void exit_sem(struct task_struct *tsk)
-{
- return;
-}
-#endif
-
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_SEM_H */
diff --git a/ANDROID_3.4.5/include/linux/semaphore.h b/ANDROID_3.4.5/include/linux/semaphore.h
deleted file mode 100644
index dc368b8c..00000000
--- a/ANDROID_3.4.5/include/linux/semaphore.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2008 Intel Corporation
- * Author: Matthew Wilcox <willy@linux.intel.com>
- *
- * Distributed under the terms of the GNU GPL, version 2
- *
- * Please see kernel/semaphore.c for documentation of these functions
- */
-#ifndef __LINUX_SEMAPHORE_H
-#define __LINUX_SEMAPHORE_H
-
-#include <linux/list.h>
-#include <linux/spinlock.h>
-
-/* Please don't access any members of this structure directly */
-struct semaphore {
- raw_spinlock_t lock;
- unsigned int count;
- struct list_head wait_list;
-};
-
-#define __SEMAPHORE_INITIALIZER(name, n) \
-{ \
- .lock = __RAW_SPIN_LOCK_UNLOCKED((name).lock), \
- .count = n, \
- .wait_list = LIST_HEAD_INIT((name).wait_list), \
-}
-
-#define DEFINE_SEMAPHORE(name) \
- struct semaphore name = __SEMAPHORE_INITIALIZER(name, 1)
-
-static inline void sema_init(struct semaphore *sem, int val)
-{
- static struct lock_class_key __key;
- *sem = (struct semaphore) __SEMAPHORE_INITIALIZER(*sem, val);
- lockdep_init_map(&sem->lock.dep_map, "semaphore->lock", &__key, 0);
-}
-
-extern void down(struct semaphore *sem);
-extern int __must_check down_interruptible(struct semaphore *sem);
-extern int __must_check down_killable(struct semaphore *sem);
-extern int __must_check down_trylock(struct semaphore *sem);
-extern int __must_check down_timeout(struct semaphore *sem, long jiffies);
-extern void up(struct semaphore *sem);
-
-#endif /* __LINUX_SEMAPHORE_H */
diff --git a/ANDROID_3.4.5/include/linux/seq_file.h b/ANDROID_3.4.5/include/linux/seq_file.h
deleted file mode 100644
index fc61854f..00000000
--- a/ANDROID_3.4.5/include/linux/seq_file.h
+++ /dev/null
@@ -1,160 +0,0 @@
-#ifndef _LINUX_SEQ_FILE_H
-#define _LINUX_SEQ_FILE_H
-
-#include <linux/types.h>
-#include <linux/string.h>
-#include <linux/bug.h>
-#include <linux/mutex.h>
-#include <linux/cpumask.h>
-#include <linux/nodemask.h>
-
-struct seq_operations;
-struct file;
-struct path;
-struct inode;
-struct dentry;
-
-struct seq_file {
- char *buf;
- size_t size;
- size_t from;
- size_t count;
- loff_t index;
- loff_t read_pos;
- u64 version;
- struct mutex lock;
- const struct seq_operations *op;
- int poll_event;
- void *private;
-};
-
-struct seq_operations {
- void * (*start) (struct seq_file *m, loff_t *pos);
- void (*stop) (struct seq_file *m, void *v);
- void * (*next) (struct seq_file *m, void *v, loff_t *pos);
- int (*show) (struct seq_file *m, void *v);
-};
-
-#define SEQ_SKIP 1
-
-/**
- * seq_get_buf - get buffer to write arbitrary data to
- * @m: the seq_file handle
- * @bufp: the beginning of the buffer is stored here
- *
- * Return the number of bytes available in the buffer, or zero if
- * there's no space.
- */
-static inline size_t seq_get_buf(struct seq_file *m, char **bufp)
-{
- BUG_ON(m->count > m->size);
- if (m->count < m->size)
- *bufp = m->buf + m->count;
- else
- *bufp = NULL;
-
- return m->size - m->count;
-}
-
-/**
- * seq_commit - commit data to the buffer
- * @m: the seq_file handle
- * @num: the number of bytes to commit
- *
- * Commit @num bytes of data written to a buffer previously acquired
- * by seq_buf_get. To signal an error condition, or that the data
- * didn't fit in the available space, pass a negative @num value.
- */
-static inline void seq_commit(struct seq_file *m, int num)
-{
- if (num < 0) {
- m->count = m->size;
- } else {
- BUG_ON(m->count + num > m->size);
- m->count += num;
- }
-}
-
-char *mangle_path(char *s, const char *p, const char *esc);
-int seq_open(struct file *, const struct seq_operations *);
-ssize_t seq_read(struct file *, char __user *, size_t, loff_t *);
-loff_t seq_lseek(struct file *, loff_t, int);
-int seq_release(struct inode *, struct file *);
-int seq_escape(struct seq_file *, const char *, const char *);
-int seq_putc(struct seq_file *m, char c);
-int seq_puts(struct seq_file *m, const char *s);
-int seq_write(struct seq_file *seq, const void *data, size_t len);
-
-__printf(2, 3) int seq_printf(struct seq_file *, const char *, ...);
-
-int seq_path(struct seq_file *, const struct path *, const char *);
-int seq_dentry(struct seq_file *, struct dentry *, const char *);
-int seq_path_root(struct seq_file *m, const struct path *path,
- const struct path *root, const char *esc);
-int seq_bitmap(struct seq_file *m, const unsigned long *bits,
- unsigned int nr_bits);
-static inline int seq_cpumask(struct seq_file *m, const struct cpumask *mask)
-{
- return seq_bitmap(m, cpumask_bits(mask), nr_cpu_ids);
-}
-
-static inline int seq_nodemask(struct seq_file *m, nodemask_t *mask)
-{
- return seq_bitmap(m, mask->bits, MAX_NUMNODES);
-}
-
-int seq_bitmap_list(struct seq_file *m, const unsigned long *bits,
- unsigned int nr_bits);
-
-static inline int seq_cpumask_list(struct seq_file *m,
- const struct cpumask *mask)
-{
- return seq_bitmap_list(m, cpumask_bits(mask), nr_cpu_ids);
-}
-
-static inline int seq_nodemask_list(struct seq_file *m, nodemask_t *mask)
-{
- return seq_bitmap_list(m, mask->bits, MAX_NUMNODES);
-}
-
-int single_open(struct file *, int (*)(struct seq_file *, void *), void *);
-int single_release(struct inode *, struct file *);
-void *__seq_open_private(struct file *, const struct seq_operations *, int);
-int seq_open_private(struct file *, const struct seq_operations *, int);
-int seq_release_private(struct inode *, struct file *);
-int seq_put_decimal_ull(struct seq_file *m, char delimiter,
- unsigned long long num);
-int seq_put_decimal_ll(struct seq_file *m, char delimiter,
- long long num);
-
-#define SEQ_START_TOKEN ((void *)1)
-/*
- * Helpers for iteration over list_head-s in seq_files
- */
-
-extern struct list_head *seq_list_start(struct list_head *head,
- loff_t pos);
-extern struct list_head *seq_list_start_head(struct list_head *head,
- loff_t pos);
-extern struct list_head *seq_list_next(void *v, struct list_head *head,
- loff_t *ppos);
-
-/*
- * Helpers for iteration over hlist_head-s in seq_files
- */
-
-extern struct hlist_node *seq_hlist_start(struct hlist_head *head,
- loff_t pos);
-extern struct hlist_node *seq_hlist_start_head(struct hlist_head *head,
- loff_t pos);
-extern struct hlist_node *seq_hlist_next(void *v, struct hlist_head *head,
- loff_t *ppos);
-
-extern struct hlist_node *seq_hlist_start_rcu(struct hlist_head *head,
- loff_t pos);
-extern struct hlist_node *seq_hlist_start_head_rcu(struct hlist_head *head,
- loff_t pos);
-extern struct hlist_node *seq_hlist_next_rcu(void *v,
- struct hlist_head *head,
- loff_t *ppos);
-#endif
diff --git a/ANDROID_3.4.5/include/linux/seq_file_net.h b/ANDROID_3.4.5/include/linux/seq_file_net.h
deleted file mode 100644
index 32c89bbe..00000000
--- a/ANDROID_3.4.5/include/linux/seq_file_net.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef __SEQ_FILE_NET_H__
-#define __SEQ_FILE_NET_H__
-
-#include <linux/seq_file.h>
-
-struct net;
-extern struct net init_net;
-
-struct seq_net_private {
-#ifdef CONFIG_NET_NS
- struct net *net;
-#endif
-};
-
-int seq_open_net(struct inode *, struct file *,
- const struct seq_operations *, int);
-int single_open_net(struct inode *, struct file *file,
- int (*show)(struct seq_file *, void *));
-int seq_release_net(struct inode *, struct file *);
-int single_release_net(struct inode *, struct file *);
-static inline struct net *seq_file_net(struct seq_file *seq)
-{
-#ifdef CONFIG_NET_NS
- return ((struct seq_net_private *)seq->private)->net;
-#else
- return &init_net;
-#endif
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/seqlock.h b/ANDROID_3.4.5/include/linux/seqlock.h
deleted file mode 100644
index 600060e2..00000000
--- a/ANDROID_3.4.5/include/linux/seqlock.h
+++ /dev/null
@@ -1,282 +0,0 @@
-#ifndef __LINUX_SEQLOCK_H
-#define __LINUX_SEQLOCK_H
-/*
- * Reader/writer consistent mechanism without starving writers. This type of
- * lock for data where the reader wants a consistent set of information
- * and is willing to retry if the information changes. Readers never
- * block but they may have to retry if a writer is in
- * progress. Writers do not wait for readers.
- *
- * This is not as cache friendly as brlock. Also, this will not work
- * for data that contains pointers, because any writer could
- * invalidate a pointer that a reader was following.
- *
- * Expected reader usage:
- * do {
- * seq = read_seqbegin(&foo);
- * ...
- * } while (read_seqretry(&foo, seq));
- *
- *
- * On non-SMP the spin locks disappear but the writer still needs
- * to increment the sequence variables because an interrupt routine could
- * change the state of the data.
- *
- * Based on x86_64 vsyscall gettimeofday
- * by Keith Owens and Andrea Arcangeli
- */
-
-#include <linux/spinlock.h>
-#include <linux/preempt.h>
-#include <asm/processor.h>
-
-typedef struct {
- unsigned sequence;
- spinlock_t lock;
-} seqlock_t;
-
-/*
- * These macros triggered gcc-3.x compile-time problems. We think these are
- * OK now. Be cautious.
- */
-#define __SEQLOCK_UNLOCKED(lockname) \
- { 0, __SPIN_LOCK_UNLOCKED(lockname) }
-
-#define seqlock_init(x) \
- do { \
- (x)->sequence = 0; \
- spin_lock_init(&(x)->lock); \
- } while (0)
-
-#define DEFINE_SEQLOCK(x) \
- seqlock_t x = __SEQLOCK_UNLOCKED(x)
-
-/* Lock out other writers and update the count.
- * Acts like a normal spin_lock/unlock.
- * Don't need preempt_disable() because that is in the spin_lock already.
- */
-static inline void write_seqlock(seqlock_t *sl)
-{
- spin_lock(&sl->lock);
- ++sl->sequence;
- smp_wmb();
-}
-
-static inline void write_sequnlock(seqlock_t *sl)
-{
- smp_wmb();
- sl->sequence++;
- spin_unlock(&sl->lock);
-}
-
-static inline int write_tryseqlock(seqlock_t *sl)
-{
- int ret = spin_trylock(&sl->lock);
-
- if (ret) {
- ++sl->sequence;
- smp_wmb();
- }
- return ret;
-}
-
-/* Start of read calculation -- fetch last complete writer token */
-static __always_inline unsigned read_seqbegin(const seqlock_t *sl)
-{
- unsigned ret;
-
-repeat:
- ret = ACCESS_ONCE(sl->sequence);
- if (unlikely(ret & 1)) {
- cpu_relax();
- goto repeat;
- }
- smp_rmb();
-
- return ret;
-}
-
-/*
- * Test if reader processed invalid data.
- *
- * If sequence value changed then writer changed data while in section.
- */
-static __always_inline int read_seqretry(const seqlock_t *sl, unsigned start)
-{
- smp_rmb();
-
- return unlikely(sl->sequence != start);
-}
-
-
-/*
- * Version using sequence counter only.
- * This can be used when code has its own mutex protecting the
- * updating starting before the write_seqcountbeqin() and ending
- * after the write_seqcount_end().
- */
-
-typedef struct seqcount {
- unsigned sequence;
-} seqcount_t;
-
-#define SEQCNT_ZERO { 0 }
-#define seqcount_init(x) do { *(x) = (seqcount_t) SEQCNT_ZERO; } while (0)
-
-/**
- * __read_seqcount_begin - begin a seq-read critical section (without barrier)
- * @s: pointer to seqcount_t
- * Returns: count to be passed to read_seqcount_retry
- *
- * __read_seqcount_begin is like read_seqcount_begin, but has no smp_rmb()
- * barrier. Callers should ensure that smp_rmb() or equivalent ordering is
- * provided before actually loading any of the variables that are to be
- * protected in this critical section.
- *
- * Use carefully, only in critical code, and comment how the barrier is
- * provided.
- */
-static inline unsigned __read_seqcount_begin(const seqcount_t *s)
-{
- unsigned ret;
-
-repeat:
- ret = ACCESS_ONCE(s->sequence);
- if (unlikely(ret & 1)) {
- cpu_relax();
- goto repeat;
- }
- return ret;
-}
-
-/**
- * read_seqcount_begin - begin a seq-read critical section
- * @s: pointer to seqcount_t
- * Returns: count to be passed to read_seqcount_retry
- *
- * read_seqcount_begin opens a read critical section of the given seqcount.
- * Validity of the critical section is tested by checking read_seqcount_retry
- * function.
- */
-static inline unsigned read_seqcount_begin(const seqcount_t *s)
-{
- unsigned ret = __read_seqcount_begin(s);
- smp_rmb();
- return ret;
-}
-
-/**
- * raw_seqcount_begin - begin a seq-read critical section
- * @s: pointer to seqcount_t
- * Returns: count to be passed to read_seqcount_retry
- *
- * raw_seqcount_begin opens a read critical section of the given seqcount.
- * Validity of the critical section is tested by checking read_seqcount_retry
- * function.
- *
- * Unlike read_seqcount_begin(), this function will not wait for the count
- * to stabilize. If a writer is active when we begin, we will fail the
- * read_seqcount_retry() instead of stabilizing at the beginning of the
- * critical section.
- */
-static inline unsigned raw_seqcount_begin(const seqcount_t *s)
-{
- unsigned ret = ACCESS_ONCE(s->sequence);
- smp_rmb();
- return ret & ~1;
-}
-
-/**
- * __read_seqcount_retry - end a seq-read critical section (without barrier)
- * @s: pointer to seqcount_t
- * @start: count, from read_seqcount_begin
- * Returns: 1 if retry is required, else 0
- *
- * __read_seqcount_retry is like read_seqcount_retry, but has no smp_rmb()
- * barrier. Callers should ensure that smp_rmb() or equivalent ordering is
- * provided before actually loading any of the variables that are to be
- * protected in this critical section.
- *
- * Use carefully, only in critical code, and comment how the barrier is
- * provided.
- */
-static inline int __read_seqcount_retry(const seqcount_t *s, unsigned start)
-{
- return unlikely(s->sequence != start);
-}
-
-/**
- * read_seqcount_retry - end a seq-read critical section
- * @s: pointer to seqcount_t
- * @start: count, from read_seqcount_begin
- * Returns: 1 if retry is required, else 0
- *
- * read_seqcount_retry closes a read critical section of the given seqcount.
- * If the critical section was invalid, it must be ignored (and typically
- * retried).
- */
-static inline int read_seqcount_retry(const seqcount_t *s, unsigned start)
-{
- smp_rmb();
-
- return __read_seqcount_retry(s, start);
-}
-
-
-/*
- * Sequence counter only version assumes that callers are using their
- * own mutexing.
- */
-static inline void write_seqcount_begin(seqcount_t *s)
-{
- s->sequence++;
- smp_wmb();
-}
-
-static inline void write_seqcount_end(seqcount_t *s)
-{
- smp_wmb();
- s->sequence++;
-}
-
-/**
- * write_seqcount_barrier - invalidate in-progress read-side seq operations
- * @s: pointer to seqcount_t
- *
- * After write_seqcount_barrier, no read-side seq operations will complete
- * successfully and see data older than this.
- */
-static inline void write_seqcount_barrier(seqcount_t *s)
-{
- smp_wmb();
- s->sequence+=2;
-}
-
-/*
- * Possible sw/hw IRQ protected versions of the interfaces.
- */
-#define write_seqlock_irqsave(lock, flags) \
- do { local_irq_save(flags); write_seqlock(lock); } while (0)
-#define write_seqlock_irq(lock) \
- do { local_irq_disable(); write_seqlock(lock); } while (0)
-#define write_seqlock_bh(lock) \
- do { local_bh_disable(); write_seqlock(lock); } while (0)
-
-#define write_sequnlock_irqrestore(lock, flags) \
- do { write_sequnlock(lock); local_irq_restore(flags); } while(0)
-#define write_sequnlock_irq(lock) \
- do { write_sequnlock(lock); local_irq_enable(); } while(0)
-#define write_sequnlock_bh(lock) \
- do { write_sequnlock(lock); local_bh_enable(); } while(0)
-
-#define read_seqbegin_irqsave(lock, flags) \
- ({ local_irq_save(flags); read_seqbegin(lock); })
-
-#define read_seqretry_irqrestore(lock, iv, flags) \
- ({ \
- int ret = read_seqretry(lock, iv); \
- local_irq_restore(flags); \
- ret; \
- })
-
-#endif /* __LINUX_SEQLOCK_H */
diff --git a/ANDROID_3.4.5/include/linux/serial.h b/ANDROID_3.4.5/include/linux/serial.h
deleted file mode 100644
index 441980ec..00000000
--- a/ANDROID_3.4.5/include/linux/serial.h
+++ /dev/null
@@ -1,227 +0,0 @@
-/*
- * include/linux/serial.h
- *
- * Copyright (C) 1992 by Theodore Ts'o.
- *
- * Redistribution of this file is permitted under the terms of the GNU
- * Public License (GPL)
- */
-
-#ifndef _LINUX_SERIAL_H
-#define _LINUX_SERIAL_H
-
-#include <linux/types.h>
-
-#ifdef __KERNEL__
-#include <asm/page.h>
-
-/*
- * Counters of the input lines (CTS, DSR, RI, CD) interrupts
- */
-
-struct async_icount {
- __u32 cts, dsr, rng, dcd, tx, rx;
- __u32 frame, parity, overrun, brk;
- __u32 buf_overrun;
-};
-
-/*
- * The size of the serial xmit buffer is 1 page, or 4096 bytes
- */
-#define SERIAL_XMIT_SIZE PAGE_SIZE
-
-#endif
-
-struct serial_struct {
- int type;
- int line;
- unsigned int port;
- int irq;
- int flags;
- int xmit_fifo_size;
- int custom_divisor;
- int baud_base;
- unsigned short close_delay;
- char io_type;
- char reserved_char[1];
- int hub6;
- unsigned short closing_wait; /* time to wait before closing */
- unsigned short closing_wait2; /* no longer used... */
- unsigned char *iomem_base;
- unsigned short iomem_reg_shift;
- unsigned int port_high;
- unsigned long iomap_base; /* cookie passed into ioremap */
-};
-
-/*
- * For the close wait times, 0 means wait forever for serial port to
- * flush its output. 65535 means don't wait at all.
- */
-#define ASYNC_CLOSING_WAIT_INF 0
-#define ASYNC_CLOSING_WAIT_NONE 65535
-
-/*
- * These are the supported serial types.
- */
-#define PORT_UNKNOWN 0
-#define PORT_8250 1
-#define PORT_16450 2
-#define PORT_16550 3
-#define PORT_16550A 4
-#define PORT_CIRRUS 5 /* usurped by cyclades.c */
-#define PORT_16650 6
-#define PORT_16650V2 7
-#define PORT_16750 8
-#define PORT_STARTECH 9 /* usurped by cyclades.c */
-#define PORT_16C950 10 /* Oxford Semiconductor */
-#define PORT_16654 11
-#define PORT_16850 12
-#define PORT_RSA 13 /* RSA-DV II/S card */
-#define PORT_MAX 13
-
-#define SERIAL_IO_PORT 0
-#define SERIAL_IO_HUB6 1
-#define SERIAL_IO_MEM 2
-
-struct serial_uart_config {
- char *name;
- int dfl_xmit_fifo_size;
- int flags;
-};
-
-#define UART_CLEAR_FIFO 0x01
-#define UART_USE_FIFO 0x02
-#define UART_STARTECH 0x04
-#define UART_NATSEMI 0x08
-
-/*
- * Definitions for async_struct (and serial_struct) flags field
- *
- * Define ASYNCB_* for convenient use with {test,set,clear}_bit.
- */
-#define ASYNCB_HUP_NOTIFY 0 /* Notify getty on hangups and closes
- * on the callout port */
-#define ASYNCB_FOURPORT 1 /* Set OU1, OUT2 per AST Fourport settings */
-#define ASYNCB_SAK 2 /* Secure Attention Key (Orange book) */
-#define ASYNCB_SPLIT_TERMIOS 3 /* Separate termios for dialin/callout */
-#define ASYNCB_SPD_HI 4 /* Use 56000 instead of 38400 bps */
-#define ASYNCB_SPD_VHI 5 /* Use 115200 instead of 38400 bps */
-#define ASYNCB_SKIP_TEST 6 /* Skip UART test during autoconfiguration */
-#define ASYNCB_AUTO_IRQ 7 /* Do automatic IRQ during
- * autoconfiguration */
-#define ASYNCB_SESSION_LOCKOUT 8 /* Lock out cua opens based on session */
-#define ASYNCB_PGRP_LOCKOUT 9 /* Lock out cua opens based on pgrp */
-#define ASYNCB_CALLOUT_NOHUP 10 /* Don't do hangups for cua device */
-#define ASYNCB_HARDPPS_CD 11 /* Call hardpps when CD goes high */
-#define ASYNCB_SPD_SHI 12 /* Use 230400 instead of 38400 bps */
-#define ASYNCB_LOW_LATENCY 13 /* Request low latency behaviour */
-#define ASYNCB_BUGGY_UART 14 /* This is a buggy UART, skip some safety
- * checks. Note: can be dangerous! */
-#define ASYNCB_AUTOPROBE 15 /* Port was autoprobed by PCI or PNP code */
-#define ASYNCB_LAST_USER 15
-
-/* Internal flags used only by kernel */
-#define ASYNCB_INITIALIZED 31 /* Serial port was initialized */
-#define ASYNCB_SUSPENDED 30 /* Serial port is suspended */
-#define ASYNCB_NORMAL_ACTIVE 29 /* Normal device is active */
-#define ASYNCB_BOOT_AUTOCONF 28 /* Autoconfigure port on bootup */
-#define ASYNCB_CLOSING 27 /* Serial port is closing */
-#define ASYNCB_CTS_FLOW 26 /* Do CTS flow control */
-#define ASYNCB_CHECK_CD 25 /* i.e., CLOCAL */
-#define ASYNCB_SHARE_IRQ 24 /* for multifunction cards, no longer used */
-#define ASYNCB_CONS_FLOW 23 /* flow control for console */
-#define ASYNCB_BOOT_ONLYMCA 22 /* Probe only if MCA bus */
-#define ASYNCB_FIRST_KERNEL 22
-
-#define ASYNC_HUP_NOTIFY (1U << ASYNCB_HUP_NOTIFY)
-#define ASYNC_SUSPENDED (1U << ASYNCB_SUSPENDED)
-#define ASYNC_FOURPORT (1U << ASYNCB_FOURPORT)
-#define ASYNC_SAK (1U << ASYNCB_SAK)
-#define ASYNC_SPLIT_TERMIOS (1U << ASYNCB_SPLIT_TERMIOS)
-#define ASYNC_SPD_HI (1U << ASYNCB_SPD_HI)
-#define ASYNC_SPD_VHI (1U << ASYNCB_SPD_VHI)
-#define ASYNC_SKIP_TEST (1U << ASYNCB_SKIP_TEST)
-#define ASYNC_AUTO_IRQ (1U << ASYNCB_AUTO_IRQ)
-#define ASYNC_SESSION_LOCKOUT (1U << ASYNCB_SESSION_LOCKOUT)
-#define ASYNC_PGRP_LOCKOUT (1U << ASYNCB_PGRP_LOCKOUT)
-#define ASYNC_CALLOUT_NOHUP (1U << ASYNCB_CALLOUT_NOHUP)
-#define ASYNC_HARDPPS_CD (1U << ASYNCB_HARDPPS_CD)
-#define ASYNC_SPD_SHI (1U << ASYNCB_SPD_SHI)
-#define ASYNC_LOW_LATENCY (1U << ASYNCB_LOW_LATENCY)
-#define ASYNC_BUGGY_UART (1U << ASYNCB_BUGGY_UART)
-#define ASYNC_AUTOPROBE (1U << ASYNCB_AUTOPROBE)
-
-#define ASYNC_FLAGS ((1U << (ASYNCB_LAST_USER + 1)) - 1)
-#define ASYNC_USR_MASK (ASYNC_SPD_MASK|ASYNC_CALLOUT_NOHUP| \
- ASYNC_LOW_LATENCY)
-#define ASYNC_SPD_CUST (ASYNC_SPD_HI|ASYNC_SPD_VHI)
-#define ASYNC_SPD_WARP (ASYNC_SPD_HI|ASYNC_SPD_SHI)
-#define ASYNC_SPD_MASK (ASYNC_SPD_HI|ASYNC_SPD_VHI|ASYNC_SPD_SHI)
-
-#define ASYNC_INITIALIZED (1U << ASYNCB_INITIALIZED)
-#define ASYNC_NORMAL_ACTIVE (1U << ASYNCB_NORMAL_ACTIVE)
-#define ASYNC_BOOT_AUTOCONF (1U << ASYNCB_BOOT_AUTOCONF)
-#define ASYNC_CLOSING (1U << ASYNCB_CLOSING)
-#define ASYNC_CTS_FLOW (1U << ASYNCB_CTS_FLOW)
-#define ASYNC_CHECK_CD (1U << ASYNCB_CHECK_CD)
-#define ASYNC_SHARE_IRQ (1U << ASYNCB_SHARE_IRQ)
-#define ASYNC_CONS_FLOW (1U << ASYNCB_CONS_FLOW)
-#define ASYNC_BOOT_ONLYMCA (1U << ASYNCB_BOOT_ONLYMCA)
-#define ASYNC_INTERNAL_FLAGS (~((1U << ASYNCB_FIRST_KERNEL) - 1))
-
-/*
- * Multiport serial configuration structure --- external structure
- */
-struct serial_multiport_struct {
- int irq;
- int port1;
- unsigned char mask1, match1;
- int port2;
- unsigned char mask2, match2;
- int port3;
- unsigned char mask3, match3;
- int port4;
- unsigned char mask4, match4;
- int port_monitor;
- int reserved[32];
-};
-
-/*
- * Serial input interrupt line counters -- external structure
- * Four lines can interrupt: CTS, DSR, RI, DCD
- */
-struct serial_icounter_struct {
- int cts, dsr, rng, dcd;
- int rx, tx;
- int frame, overrun, parity, brk;
- int buf_overrun;
- int reserved[9];
-};
-
-/*
- * Serial interface for controlling RS485 settings on chips with suitable
- * support. Set with TIOCSRS485 and get with TIOCGRS485 if supported by your
- * platform. The set function returns the new state, with any unsupported bits
- * reverted appropriately.
- */
-
-struct serial_rs485 {
- __u32 flags; /* RS485 feature flags */
-#define SER_RS485_ENABLED (1 << 0) /* If enabled */
-#define SER_RS485_RTS_ON_SEND (1 << 1) /* Logical level for
- RTS pin when
- sending */
-#define SER_RS485_RTS_AFTER_SEND (1 << 2) /* Logical level for
- RTS pin after sent*/
-#define SER_RS485_RX_DURING_TX (1 << 4)
- __u32 delay_rts_before_send; /* Delay before send (milliseconds) */
- __u32 delay_rts_after_send; /* Delay after send (milliseconds) */
- __u32 padding[5]; /* Memory is cheap, new structs
- are a royal PITA .. */
-};
-
-#ifdef __KERNEL__
-#include <linux/compiler.h>
-
-#endif /* __KERNEL__ */
-#endif /* _LINUX_SERIAL_H */
diff --git a/ANDROID_3.4.5/include/linux/serial167.h b/ANDROID_3.4.5/include/linux/serial167.h
deleted file mode 100644
index 59c81b70..00000000
--- a/ANDROID_3.4.5/include/linux/serial167.h
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * serial167.h
- *
- * Richard Hirst [richard@sleepie.demon.co.uk]
- *
- * Based on cyclades.h
- */
-
-struct cyclades_monitor {
- unsigned long int_count;
- unsigned long char_count;
- unsigned long char_max;
- unsigned long char_last;
-};
-
-/*
- * This is our internal structure for each serial port's state.
- *
- * Many fields are paralleled by the structure used by the serial_struct
- * structure.
- *
- * For definitions of the flags field, see tty.h
- */
-
-struct cyclades_port {
- int magic;
- int type;
- int card;
- int line;
- int flags; /* defined in tty.h */
- struct tty_struct *tty;
- int read_status_mask;
- int timeout;
- int xmit_fifo_size;
- int cor1,cor2,cor3,cor4,cor5,cor6,cor7;
- int tbpr,tco,rbpr,rco;
- int ignore_status_mask;
- int close_delay;
- int IER; /* Interrupt Enable Register */
- unsigned long last_active;
- int count; /* # of fd on device */
- int x_char; /* to be pushed out ASAP */
- int x_break;
- int blocked_open; /* # of blocked opens */
- unsigned char *xmit_buf;
- int xmit_head;
- int xmit_tail;
- int xmit_cnt;
- int default_threshold;
- int default_timeout;
- wait_queue_head_t open_wait;
- wait_queue_head_t close_wait;
- struct cyclades_monitor mon;
-};
-
-#define CYCLADES_MAGIC 0x4359
-
-#define CYGETMON 0x435901
-#define CYGETTHRESH 0x435902
-#define CYSETTHRESH 0x435903
-#define CYGETDEFTHRESH 0x435904
-#define CYSETDEFTHRESH 0x435905
-#define CYGETTIMEOUT 0x435906
-#define CYSETTIMEOUT 0x435907
-#define CYGETDEFTIMEOUT 0x435908
-#define CYSETDEFTIMEOUT 0x435909
-
-#define CyMaxChipsPerCard 1
-
-/**** cd2401 registers ****/
-
-#define CyGFRCR (0x81)
-#define CyCCR (0x13)
-#define CyCLR_CHAN (0x40)
-#define CyINIT_CHAN (0x20)
-#define CyCHIP_RESET (0x10)
-#define CyENB_XMTR (0x08)
-#define CyDIS_XMTR (0x04)
-#define CyENB_RCVR (0x02)
-#define CyDIS_RCVR (0x01)
-#define CyCAR (0xee)
-#define CyIER (0x11)
-#define CyMdmCh (0x80)
-#define CyRxExc (0x20)
-#define CyRxData (0x08)
-#define CyTxMpty (0x02)
-#define CyTxRdy (0x01)
-#define CyLICR (0x26)
-#define CyRISR (0x89)
-#define CyTIMEOUT (0x80)
-#define CySPECHAR (0x70)
-#define CyOVERRUN (0x08)
-#define CyPARITY (0x04)
-#define CyFRAME (0x02)
-#define CyBREAK (0x01)
-#define CyREOIR (0x84)
-#define CyTEOIR (0x85)
-#define CyMEOIR (0x86)
-#define CyNOTRANS (0x08)
-#define CyRFOC (0x30)
-#define CyRDR (0xf8)
-#define CyTDR (0xf8)
-#define CyMISR (0x8b)
-#define CyRISR (0x89)
-#define CyTISR (0x8a)
-#define CyMSVR1 (0xde)
-#define CyMSVR2 (0xdf)
-#define CyDSR (0x80)
-#define CyDCD (0x40)
-#define CyCTS (0x20)
-#define CyDTR (0x02)
-#define CyRTS (0x01)
-#define CyRTPRL (0x25)
-#define CyRTPRH (0x24)
-#define CyCOR1 (0x10)
-#define CyPARITY_NONE (0x00)
-#define CyPARITY_E (0x40)
-#define CyPARITY_O (0xC0)
-#define Cy_5_BITS (0x04)
-#define Cy_6_BITS (0x05)
-#define Cy_7_BITS (0x06)
-#define Cy_8_BITS (0x07)
-#define CyCOR2 (0x17)
-#define CyETC (0x20)
-#define CyCtsAE (0x02)
-#define CyCOR3 (0x16)
-#define Cy_1_STOP (0x02)
-#define Cy_2_STOP (0x04)
-#define CyCOR4 (0x15)
-#define CyREC_FIFO (0x0F) /* Receive FIFO threshold */
-#define CyCOR5 (0x14)
-#define CyCOR6 (0x18)
-#define CyCOR7 (0x07)
-#define CyRBPR (0xcb)
-#define CyRCOR (0xc8)
-#define CyTBPR (0xc3)
-#define CyTCOR (0xc0)
-#define CySCHR1 (0x1f)
-#define CySCHR2 (0x1e)
-#define CyTPR (0xda)
-#define CyPILR1 (0xe3)
-#define CyPILR2 (0xe0)
-#define CyPILR3 (0xe1)
-#define CyCMR (0x1b)
-#define CyASYNC (0x02)
-#define CyLICR (0x26)
-#define CyLIVR (0x09)
-#define CySCRL (0x23)
-#define CySCRH (0x22)
-#define CyTFTC (0x80)
-
-
-/* max number of chars in the FIFO */
-
-#define CyMAX_CHAR_FIFO 12
-
-/***************************************************************************/
diff --git a/ANDROID_3.4.5/include/linux/serial_8250.h b/ANDROID_3.4.5/include/linux/serial_8250.h
deleted file mode 100644
index 8f012f8a..00000000
--- a/ANDROID_3.4.5/include/linux/serial_8250.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * linux/include/linux/serial_8250.h
- *
- * Copyright (C) 2004 Russell King
- *
- * 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_SERIAL_8250_H
-#define _LINUX_SERIAL_8250_H
-
-#include <linux/serial_core.h>
-#include <linux/platform_device.h>
-
-/*
- * This is the platform device platform_data structure
- */
-struct plat_serial8250_port {
- unsigned long iobase; /* io base address */
- void __iomem *membase; /* ioremap cookie or NULL */
- resource_size_t mapbase; /* resource base */
- unsigned int irq; /* interrupt number */
- unsigned long irqflags; /* request_irq flags */
- unsigned int uartclk; /* UART clock rate */
- void *private_data;
- unsigned char regshift; /* register shift */
- unsigned char iotype; /* UPIO_* */
- unsigned char hub6;
- upf_t flags; /* UPF_* flags */
- unsigned int type; /* If UPF_FIXED_TYPE */
- unsigned int (*serial_in)(struct uart_port *, int);
- void (*serial_out)(struct uart_port *, int, int);
- void (*set_termios)(struct uart_port *,
- struct ktermios *new,
- struct ktermios *old);
- int (*handle_irq)(struct uart_port *);
- void (*pm)(struct uart_port *, unsigned int state,
- unsigned old);
-};
-
-/*
- * Allocate 8250 platform device IDs. Nothing is implied by
- * the numbering here, except for the legacy entry being -1.
- */
-enum {
- PLAT8250_DEV_LEGACY = -1,
- PLAT8250_DEV_PLATFORM,
- PLAT8250_DEV_PLATFORM1,
- PLAT8250_DEV_PLATFORM2,
- PLAT8250_DEV_FOURPORT,
- PLAT8250_DEV_ACCENT,
- PLAT8250_DEV_BOCA,
- PLAT8250_DEV_EXAR_ST16C554,
- PLAT8250_DEV_HUB6,
- PLAT8250_DEV_MCA,
- PLAT8250_DEV_AU1X00,
- PLAT8250_DEV_SM501,
-};
-
-/*
- * This should be used by drivers which want to register
- * their own 8250 ports without registering their own
- * platform device. Using these will make your driver
- * dependent on the 8250 driver.
- */
-struct uart_port;
-struct uart_8250_port;
-
-int serial8250_register_port(struct uart_port *);
-void serial8250_unregister_port(int line);
-void serial8250_suspend_port(int line);
-void serial8250_resume_port(int line);
-
-extern int early_serial_setup(struct uart_port *port);
-
-extern int serial8250_find_port(struct uart_port *p);
-extern int serial8250_find_port_for_earlycon(void);
-extern int setup_early_serial8250_console(char *cmdline);
-extern void serial8250_do_set_termios(struct uart_port *port,
- struct ktermios *termios, struct ktermios *old);
-extern void serial8250_do_pm(struct uart_port *port, unsigned int state,
- unsigned int oldstate);
-extern int fsl8250_handle_irq(struct uart_port *port);
-int serial8250_handle_irq(struct uart_port *port, unsigned int iir);
-unsigned char serial8250_rx_chars(struct uart_8250_port *up, unsigned char lsr);
-void serial8250_tx_chars(struct uart_8250_port *up);
-unsigned int serial8250_modem_status(struct uart_8250_port *up);
-
-extern void serial8250_set_isa_configurator(void (*v)
- (int port, struct uart_port *up,
- unsigned short *capabilities));
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/serial_core.h b/ANDROID_3.4.5/include/linux/serial_core.h
deleted file mode 100644
index 828c8037..00000000
--- a/ANDROID_3.4.5/include/linux/serial_core.h
+++ /dev/null
@@ -1,560 +0,0 @@
-/*
- * linux/drivers/char/serial_core.h
- *
- * Copyright (C) 2000 Deep Blue Solutions 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; 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
- */
-#ifndef LINUX_SERIAL_CORE_H
-#define LINUX_SERIAL_CORE_H
-
-#include <linux/serial.h>
-
-/*
- * The type definitions. These are from Ted Ts'o's serial.h
- */
-#define PORT_UNKNOWN 0
-#define PORT_8250 1
-#define PORT_16450 2
-#define PORT_16550 3
-#define PORT_16550A 4
-#define PORT_CIRRUS 5
-#define PORT_16650 6
-#define PORT_16650V2 7
-#define PORT_16750 8
-#define PORT_STARTECH 9
-#define PORT_16C950 10
-#define PORT_16654 11
-#define PORT_16850 12
-#define PORT_RSA 13
-#define PORT_NS16550A 14
-#define PORT_XSCALE 15
-#define PORT_RM9000 16 /* PMC-Sierra RM9xxx internal UART */
-#define PORT_OCTEON 17 /* Cavium OCTEON internal UART */
-#define PORT_AR7 18 /* Texas Instruments AR7 internal UART */
-#define PORT_U6_16550A 19 /* ST-Ericsson U6xxx internal UART */
-#define PORT_TEGRA 20 /* NVIDIA Tegra internal UART */
-#define PORT_XR17D15X 21 /* Exar XR17D15x UART */
-#define PORT_MAX_8250 21 /* max port ID */
-
-/*
- * ARM specific type numbers. These are not currently guaranteed
- * to be implemented, and will change in the future. These are
- * separate so any additions to the old serial.c that occur before
- * we are merged can be easily merged here.
- */
-#define PORT_PXA 31
-#define PORT_AMBA 32
-#define PORT_CLPS711X 33
-#define PORT_SA1100 34
-#define PORT_UART00 35
-#define PORT_21285 37
-
-/* Sparc type numbers. */
-#define PORT_SUNZILOG 38
-#define PORT_SUNSAB 39
-
-/* DEC */
-#define PORT_DZ 46
-#define PORT_ZS 47
-
-/* Parisc type numbers. */
-#define PORT_MUX 48
-
-/* Atmel AT91 / AT32 SoC */
-#define PORT_ATMEL 49
-
-/* Macintosh Zilog type numbers */
-#define PORT_MAC_ZILOG 50 /* m68k : not yet implemented */
-#define PORT_PMAC_ZILOG 51
-
-/* SH-SCI */
-#define PORT_SCI 52
-#define PORT_SCIF 53
-#define PORT_IRDA 54
-
-/* Samsung S3C2410 SoC and derivatives thereof */
-#define PORT_S3C2410 55
-
-/* SGI IP22 aka Indy / Challenge S / Indigo 2 */
-#define PORT_IP22ZILOG 56
-
-/* Sharp LH7a40x -- an ARM9 SoC series */
-#define PORT_LH7A40X 57
-
-/* PPC CPM type number */
-#define PORT_CPM 58
-
-/* MPC52xx (and MPC512x) type numbers */
-#define PORT_MPC52xx 59
-
-/* IBM icom */
-#define PORT_ICOM 60
-
-/* Samsung S3C2440 SoC */
-#define PORT_S3C2440 61
-
-/* Motorola i.MX SoC */
-#define PORT_IMX 62
-
-/* Marvell MPSC */
-#define PORT_MPSC 63
-
-/* TXX9 type number */
-#define PORT_TXX9 64
-
-/* NEC VR4100 series SIU/DSIU */
-#define PORT_VR41XX_SIU 65
-#define PORT_VR41XX_DSIU 66
-
-/* Samsung S3C2400 SoC */
-#define PORT_S3C2400 67
-
-/* M32R SIO */
-#define PORT_M32R_SIO 68
-
-/*Digi jsm */
-#define PORT_JSM 69
-
-#define PORT_PNX8XXX 70
-
-/* Hilscher netx */
-#define PORT_NETX 71
-
-/* SUN4V Hypervisor Console */
-#define PORT_SUNHV 72
-
-#define PORT_S3C2412 73
-
-/* Xilinx uartlite */
-#define PORT_UARTLITE 74
-
-/* Blackfin bf5xx */
-#define PORT_BFIN 75
-
-/* Micrel KS8695 */
-#define PORT_KS8695 76
-
-/* Broadcom SB1250, etc. SOC */
-#define PORT_SB1250_DUART 77
-
-/* Freescale ColdFire */
-#define PORT_MCF 78
-
-/* Blackfin SPORT */
-#define PORT_BFIN_SPORT 79
-
-/* MN10300 on-chip UART numbers */
-#define PORT_MN10300 80
-#define PORT_MN10300_CTS 81
-
-#define PORT_SC26XX 82
-
-/* SH-SCI */
-#define PORT_SCIFA 83
-
-#define PORT_S3C6400 84
-
-/* NWPSERIAL */
-#define PORT_NWPSERIAL 85
-
-/* MAX3100 */
-#define PORT_MAX3100 86
-
-/* Timberdale UART */
-#define PORT_TIMBUART 87
-
-/* Qualcomm MSM SoCs */
-#define PORT_MSM 88
-
-/* BCM63xx family SoCs */
-#define PORT_BCM63XX 89
-
-/* Aeroflex Gaisler GRLIB APBUART */
-#define PORT_APBUART 90
-
-/* Altera UARTs */
-#define PORT_ALTERA_JTAGUART 91
-#define PORT_ALTERA_UART 92
-
-/* SH-SCI */
-#define PORT_SCIFB 93
-
-/* MAX3107 */
-#define PORT_MAX3107 94
-
-/* High Speed UART for Medfield */
-#define PORT_MFD 95
-
-/* TI OMAP-UART */
-#define PORT_OMAP 96
-
-/* VIA VT8500 SoC */
-#define PORT_VT8500 97
-
-/* Xilinx PSS UART */
-#define PORT_XUARTPS 98
-
-/* Atheros AR933X SoC */
-#define PORT_AR933X 99
-
-/* Energy Micro efm32 SoC */
-#define PORT_EFMUART 100
-
-#ifdef __KERNEL__
-
-#include <linux/compiler.h>
-#include <linux/interrupt.h>
-#include <linux/circ_buf.h>
-#include <linux/spinlock.h>
-#include <linux/sched.h>
-#include <linux/tty.h>
-#include <linux/mutex.h>
-#include <linux/sysrq.h>
-#include <linux/pps_kernel.h>
-
-struct uart_port;
-struct serial_struct;
-struct device;
-
-/*
- * This structure describes all the operations that can be
- * done on the physical hardware.
- */
-struct uart_ops {
- unsigned int (*tx_empty)(struct uart_port *);
- void (*set_mctrl)(struct uart_port *, unsigned int mctrl);
- unsigned int (*get_mctrl)(struct uart_port *);
- void (*stop_tx)(struct uart_port *);
- void (*start_tx)(struct uart_port *);
- void (*send_xchar)(struct uart_port *, char ch);
- void (*stop_rx)(struct uart_port *);
- void (*enable_ms)(struct uart_port *);
- void (*break_ctl)(struct uart_port *, int ctl);
- int (*startup)(struct uart_port *);
- void (*shutdown)(struct uart_port *);
- void (*flush_buffer)(struct uart_port *);
- void (*set_termios)(struct uart_port *, struct ktermios *new,
- struct ktermios *old);
- void (*set_ldisc)(struct uart_port *, int new);
- void (*pm)(struct uart_port *, unsigned int state,
- unsigned int oldstate);
- int (*set_wake)(struct uart_port *, unsigned int state);
- void (*wake_peer)(struct uart_port *);
-
- /*
- * Return a string describing the type of the port
- */
- const char *(*type)(struct uart_port *);
-
- /*
- * Release IO and memory resources used by the port.
- * This includes iounmap if necessary.
- */
- void (*release_port)(struct uart_port *);
-
- /*
- * Request IO and memory resources used by the port.
- * This includes iomapping the port if necessary.
- */
- int (*request_port)(struct uart_port *);
- void (*config_port)(struct uart_port *, int);
- int (*verify_port)(struct uart_port *, struct serial_struct *);
- int (*ioctl)(struct uart_port *, unsigned int, unsigned long);
-#ifdef CONFIG_CONSOLE_POLL
- void (*poll_put_char)(struct uart_port *, unsigned char);
- int (*poll_get_char)(struct uart_port *);
-#endif
-};
-
-#define NO_POLL_CHAR 0x00ff0000
-#define UART_CONFIG_TYPE (1 << 0)
-#define UART_CONFIG_IRQ (1 << 1)
-
-struct uart_icount {
- __u32 cts;
- __u32 dsr;
- __u32 rng;
- __u32 dcd;
- __u32 rx;
- __u32 tx;
- __u32 frame;
- __u32 overrun;
- __u32 parity;
- __u32 brk;
- __u32 buf_overrun;
-};
-
-typedef unsigned int __bitwise__ upf_t;
-
-struct uart_port {
- spinlock_t lock; /* port lock */
- unsigned long iobase; /* in/out[bwl] */
- unsigned char __iomem *membase; /* read/write[bwl] */
- unsigned int (*serial_in)(struct uart_port *, int);
- void (*serial_out)(struct uart_port *, int, int);
- void (*set_termios)(struct uart_port *,
- struct ktermios *new,
- struct ktermios *old);
- int (*handle_irq)(struct uart_port *);
- void (*pm)(struct uart_port *, unsigned int state,
- unsigned int old);
- unsigned int irq; /* irq number */
- unsigned long irqflags; /* irq flags */
- unsigned int uartclk; /* base uart clock */
- unsigned int fifosize; /* tx fifo size */
- unsigned char x_char; /* xon/xoff char */
- unsigned char regshift; /* reg offset shift */
- unsigned char iotype; /* io access style */
- unsigned char unused1;
-
-#define UPIO_PORT (0)
-#define UPIO_HUB6 (1)
-#define UPIO_MEM (2)
-#define UPIO_MEM32 (3)
-#define UPIO_AU (4) /* Au1x00 type IO */
-#define UPIO_TSI (5) /* Tsi108/109 type IO */
-#define UPIO_RM9000 (6) /* RM9000 type IO */
-
- unsigned int read_status_mask; /* driver specific */
- unsigned int ignore_status_mask; /* driver specific */
- struct uart_state *state; /* pointer to parent state */
- struct uart_icount icount; /* statistics */
-
- struct console *cons; /* struct console, if any */
-#if defined(CONFIG_SERIAL_CORE_CONSOLE) || defined(SUPPORT_SYSRQ)
- unsigned long sysrq; /* sysrq timeout */
-#endif
-
- upf_t flags;
-
-#define UPF_FOURPORT ((__force upf_t) (1 << 1))
-#define UPF_SAK ((__force upf_t) (1 << 2))
-#define UPF_SPD_MASK ((__force upf_t) (0x1030))
-#define UPF_SPD_HI ((__force upf_t) (0x0010))
-#define UPF_SPD_VHI ((__force upf_t) (0x0020))
-#define UPF_SPD_CUST ((__force upf_t) (0x0030))
-#define UPF_SPD_SHI ((__force upf_t) (0x1000))
-#define UPF_SPD_WARP ((__force upf_t) (0x1010))
-#define UPF_SKIP_TEST ((__force upf_t) (1 << 6))
-#define UPF_AUTO_IRQ ((__force upf_t) (1 << 7))
-#define UPF_HARDPPS_CD ((__force upf_t) (1 << 11))
-#define UPF_LOW_LATENCY ((__force upf_t) (1 << 13))
-#define UPF_BUGGY_UART ((__force upf_t) (1 << 14))
-#define UPF_NO_TXEN_TEST ((__force upf_t) (1 << 15))
-#define UPF_MAGIC_MULTIPLIER ((__force upf_t) (1 << 16))
-#define UPF_CONS_FLOW ((__force upf_t) (1 << 23))
-#define UPF_SHARE_IRQ ((__force upf_t) (1 << 24))
-#define UPF_EXAR_EFR ((__force upf_t) (1 << 25))
-#define UPF_BUG_THRE ((__force upf_t) (1 << 26))
-/* The exact UART type is known and should not be probed. */
-#define UPF_FIXED_TYPE ((__force upf_t) (1 << 27))
-#define UPF_BOOT_AUTOCONF ((__force upf_t) (1 << 28))
-#define UPF_FIXED_PORT ((__force upf_t) (1 << 29))
-#define UPF_DEAD ((__force upf_t) (1 << 30))
-#define UPF_IOREMAP ((__force upf_t) (1 << 31))
-
-#define UPF_CHANGE_MASK ((__force upf_t) (0x17fff))
-#define UPF_USR_MASK ((__force upf_t) (UPF_SPD_MASK|UPF_LOW_LATENCY))
-
- unsigned int mctrl; /* current modem ctrl settings */
- unsigned int timeout; /* character-based timeout */
- unsigned int type; /* port type */
- const struct uart_ops *ops;
- unsigned int custom_divisor;
- unsigned int line; /* port index */
- resource_size_t mapbase; /* for ioremap */
- struct device *dev; /* parent device */
- unsigned char hub6; /* this should be in the 8250 driver */
- unsigned char suspended;
- unsigned char irq_wake;
- unsigned char unused[2];
- void *private_data; /* generic platform data pointer */
-};
-
-static inline int serial_port_in(struct uart_port *up, int offset)
-{
- return up->serial_in(up, offset);
-}
-
-static inline void serial_port_out(struct uart_port *up, int offset, int value)
-{
- up->serial_out(up, offset, value);
-}
-
-/*
- * This is the state information which is persistent across opens.
- */
-struct uart_state {
- struct tty_port port;
-
- int pm_state;
- struct circ_buf xmit;
-
- struct uart_port *uart_port;
-};
-
-#define UART_XMIT_SIZE PAGE_SIZE
-
-
-/* number of characters left in xmit buffer before we ask for more */
-#define WAKEUP_CHARS 256
-
-struct module;
-struct tty_driver;
-
-struct uart_driver {
- struct module *owner;
- const char *driver_name;
- const char *dev_name;
- int major;
- int minor;
- int nr;
- struct console *cons;
-
- /*
- * these are private; the low level driver should not
- * touch these; they should be initialised to NULL
- */
- struct uart_state *state;
- struct tty_driver *tty_driver;
-};
-
-void uart_write_wakeup(struct uart_port *port);
-
-/*
- * Baud rate helpers.
- */
-void uart_update_timeout(struct uart_port *port, unsigned int cflag,
- unsigned int baud);
-unsigned int uart_get_baud_rate(struct uart_port *port, struct ktermios *termios,
- struct ktermios *old, unsigned int min,
- unsigned int max);
-unsigned int uart_get_divisor(struct uart_port *port, unsigned int baud);
-
-/* Base timer interval for polling */
-static inline int uart_poll_timeout(struct uart_port *port)
-{
- int timeout = port->timeout;
-
- return timeout > 6 ? (timeout / 2 - 2) : 1;
-}
-
-/*
- * Console helpers.
- */
-struct uart_port *uart_get_console(struct uart_port *ports, int nr,
- struct console *c);
-void uart_parse_options(char *options, int *baud, int *parity, int *bits,
- int *flow);
-int uart_set_options(struct uart_port *port, struct console *co, int baud,
- int parity, int bits, int flow);
-struct tty_driver *uart_console_device(struct console *co, int *index);
-void uart_console_write(struct uart_port *port, const char *s,
- unsigned int count,
- void (*putchar)(struct uart_port *, int));
-
-/*
- * Port/driver registration/removal
- */
-int uart_register_driver(struct uart_driver *uart);
-void uart_unregister_driver(struct uart_driver *uart);
-int uart_add_one_port(struct uart_driver *reg, struct uart_port *port);
-int uart_remove_one_port(struct uart_driver *reg, struct uart_port *port);
-int uart_match_port(struct uart_port *port1, struct uart_port *port2);
-
-/*
- * Power Management
- */
-int uart_suspend_port(struct uart_driver *reg, struct uart_port *port);
-int uart_resume_port(struct uart_driver *reg, struct uart_port *port);
-
-#define uart_circ_empty(circ) ((circ)->head == (circ)->tail)
-#define uart_circ_clear(circ) ((circ)->head = (circ)->tail = 0)
-
-#define uart_circ_chars_pending(circ) \
- (CIRC_CNT((circ)->head, (circ)->tail, UART_XMIT_SIZE))
-
-#define uart_circ_chars_free(circ) \
- (CIRC_SPACE((circ)->head, (circ)->tail, UART_XMIT_SIZE))
-
-static inline int uart_tx_stopped(struct uart_port *port)
-{
- struct tty_struct *tty = port->state->port.tty;
- if(tty->stopped || tty->hw_stopped)
- return 1;
- return 0;
-}
-
-/*
- * The following are helper functions for the low level drivers.
- */
-
-extern void uart_handle_dcd_change(struct uart_port *uport,
- unsigned int status);
-extern void uart_handle_cts_change(struct uart_port *uport,
- unsigned int status);
-
-extern void uart_insert_char(struct uart_port *port, unsigned int status,
- unsigned int overrun, unsigned int ch, unsigned int flag);
-
-#ifdef SUPPORT_SYSRQ
-static inline int
-uart_handle_sysrq_char(struct uart_port *port, unsigned int ch)
-{
- if (port->sysrq) {
- if (ch && time_before(jiffies, port->sysrq)) {
- handle_sysrq(ch);
- port->sysrq = 0;
- return 1;
- }
- port->sysrq = 0;
- }
- return 0;
-}
-#else
-#define uart_handle_sysrq_char(port,ch) ({ (void)port; 0; })
-#endif
-
-/*
- * We do the SysRQ and SAK checking like this...
- */
-static inline int uart_handle_break(struct uart_port *port)
-{
- struct uart_state *state = port->state;
-#ifdef SUPPORT_SYSRQ
- if (port->cons && port->cons->index == port->line) {
- if (!port->sysrq) {
- port->sysrq = jiffies + HZ*5;
- return 1;
- }
- port->sysrq = 0;
- }
-#endif
- if (port->flags & UPF_SAK)
- do_SAK(state->port.tty);
- return 0;
-}
-
-/*
- * UART_ENABLE_MS - determine if port should enable modem status irqs
- */
-#define UART_ENABLE_MS(port,cflag) ((port)->flags & UPF_HARDPPS_CD || \
- (cflag) & CRTSCTS || \
- !((cflag) & CLOCAL))
-
-#endif
-
-#endif /* LINUX_SERIAL_CORE_H */
diff --git a/ANDROID_3.4.5/include/linux/serial_max3100.h b/ANDROID_3.4.5/include/linux/serial_max3100.h
deleted file mode 100644
index 4976befb..00000000
--- a/ANDROID_3.4.5/include/linux/serial_max3100.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- *
- * Copyright (C) 2007 Christian Pellegrin
- *
- * 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_SERIAL_MAX3100_H
-#define _LINUX_SERIAL_MAX3100_H 1
-
-
-/**
- * struct plat_max3100 - MAX3100 SPI UART platform data
- * @loopback: force MAX3100 in loopback
- * @crystal: 1 for 3.6864 Mhz, 0 for 1.8432
- * @max3100_hw_suspend: MAX3100 has a shutdown pin. This is a hook
- * called on suspend and resume to activate it.
- * @poll_time: poll time for CTS signal in ms, 0 disables (so no hw
- * flow ctrl is possible but you have less CPU usage)
- *
- * You should use this structure in your machine description to specify
- * how the MAX3100 is connected. Example:
- *
- * static struct plat_max3100 max3100_plat_data = {
- * .loopback = 0,
- * .crystal = 0,
- * .poll_time = 100,
- * };
- *
- * static struct spi_board_info spi_board_info[] = {
- * {
- * .modalias = "max3100",
- * .platform_data = &max3100_plat_data,
- * .irq = IRQ_EINT12,
- * .max_speed_hz = 5*1000*1000,
- * .chip_select = 0,
- * },
- * };
- *
- **/
-struct plat_max3100 {
- int loopback;
- int crystal;
- void (*max3100_hw_suspend) (int suspend);
- int poll_time;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/serial_mfd.h b/ANDROID_3.4.5/include/linux/serial_mfd.h
deleted file mode 100644
index 2b071e0b..00000000
--- a/ANDROID_3.4.5/include/linux/serial_mfd.h
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef _SERIAL_MFD_H_
-#define _SERIAL_MFD_H_
-
-/* HW register offset definition */
-#define UART_FOR 0x08
-#define UART_PS 0x0C
-#define UART_MUL 0x0D
-#define UART_DIV 0x0E
-
-#define HSU_GBL_IEN 0x0
-#define HSU_GBL_IST 0x4
-
-#define HSU_GBL_INT_BIT_PORT0 0x0
-#define HSU_GBL_INT_BIT_PORT1 0x1
-#define HSU_GBL_INT_BIT_PORT2 0x2
-#define HSU_GBL_INT_BIT_IRI 0x3
-#define HSU_GBL_INT_BIT_HDLC 0x4
-#define HSU_GBL_INT_BIT_DMA 0x5
-
-#define HSU_GBL_ISR 0x8
-#define HSU_GBL_DMASR 0x400
-#define HSU_GBL_DMAISR 0x404
-
-#define HSU_PORT_REG_OFFSET 0x80
-#define HSU_PORT0_REG_OFFSET 0x80
-#define HSU_PORT1_REG_OFFSET 0x100
-#define HSU_PORT2_REG_OFFSET 0x180
-#define HSU_PORT_REG_LENGTH 0x80
-
-#define HSU_DMA_CHANS_REG_OFFSET 0x500
-#define HSU_DMA_CHANS_REG_LENGTH 0x40
-
-#define HSU_CH_SR 0x0 /* channel status reg */
-#define HSU_CH_CR 0x4 /* control reg */
-#define HSU_CH_DCR 0x8 /* descriptor control reg */
-#define HSU_CH_BSR 0x10 /* max fifo buffer size reg */
-#define HSU_CH_MOTSR 0x14 /* minimum ocp transfer size */
-#define HSU_CH_D0SAR 0x20 /* desc 0 start addr */
-#define HSU_CH_D0TSR 0x24 /* desc 0 transfer size */
-#define HSU_CH_D1SAR 0x28
-#define HSU_CH_D1TSR 0x2C
-#define HSU_CH_D2SAR 0x30
-#define HSU_CH_D2TSR 0x34
-#define HSU_CH_D3SAR 0x38
-#define HSU_CH_D3TSR 0x3C
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/serial_pnx8xxx.h b/ANDROID_3.4.5/include/linux/serial_pnx8xxx.h
deleted file mode 100644
index 79ad87b0..00000000
--- a/ANDROID_3.4.5/include/linux/serial_pnx8xxx.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Embedded Alley Solutions, source@embeddedalley.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
- */
-
-#ifndef _LINUX_SERIAL_PNX8XXX_H
-#define _LINUX_SERIAL_PNX8XXX_H
-
-#include <linux/serial_core.h>
-
-#define PNX8XXX_NR_PORTS 2
-
-struct pnx8xxx_port {
- struct uart_port port;
- struct timer_list timer;
- unsigned int old_status;
-};
-
-/* register offsets */
-#define PNX8XXX_LCR 0
-#define PNX8XXX_MCR 0x004
-#define PNX8XXX_BAUD 0x008
-#define PNX8XXX_CFG 0x00c
-#define PNX8XXX_FIFO 0x028
-#define PNX8XXX_ISTAT 0xfe0
-#define PNX8XXX_IEN 0xfe4
-#define PNX8XXX_ICLR 0xfe8
-#define PNX8XXX_ISET 0xfec
-#define PNX8XXX_PD 0xff4
-#define PNX8XXX_MID 0xffc
-
-#define PNX8XXX_UART_LCR_TXBREAK (1<<30)
-#define PNX8XXX_UART_LCR_PAREVN 0x10000000
-#define PNX8XXX_UART_LCR_PAREN 0x08000000
-#define PNX8XXX_UART_LCR_2STOPB 0x04000000
-#define PNX8XXX_UART_LCR_8BIT 0x01000000
-#define PNX8XXX_UART_LCR_TX_RST 0x00040000
-#define PNX8XXX_UART_LCR_RX_RST 0x00020000
-#define PNX8XXX_UART_LCR_RX_NEXT 0x00010000
-
-#define PNX8XXX_UART_MCR_SCR 0xFF000000
-#define PNX8XXX_UART_MCR_DCD 0x00800000
-#define PNX8XXX_UART_MCR_CTS 0x00100000
-#define PNX8XXX_UART_MCR_LOOP 0x00000010
-#define PNX8XXX_UART_MCR_RTS 0x00000002
-#define PNX8XXX_UART_MCR_DTR 0x00000001
-
-#define PNX8XXX_UART_INT_TX 0x00000080
-#define PNX8XXX_UART_INT_EMPTY 0x00000040
-#define PNX8XXX_UART_INT_RCVTO 0x00000020
-#define PNX8XXX_UART_INT_RX 0x00000010
-#define PNX8XXX_UART_INT_RXOVRN 0x00000008
-#define PNX8XXX_UART_INT_FRERR 0x00000004
-#define PNX8XXX_UART_INT_BREAK 0x00000002
-#define PNX8XXX_UART_INT_PARITY 0x00000001
-#define PNX8XXX_UART_INT_ALLRX 0x0000003F
-#define PNX8XXX_UART_INT_ALLTX 0x000000C0
-
-#define PNX8XXX_UART_FIFO_TXFIFO 0x001F0000
-#define PNX8XXX_UART_FIFO_TXFIFO_STA (0x1f<<16)
-#define PNX8XXX_UART_FIFO_RXBRK 0x00008000
-#define PNX8XXX_UART_FIFO_RXFE 0x00004000
-#define PNX8XXX_UART_FIFO_RXPAR 0x00002000
-#define PNX8XXX_UART_FIFO_RXFIFO 0x00001F00
-#define PNX8XXX_UART_FIFO_RBRTHR 0x000000FF
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/serial_reg.h b/ANDROID_3.4.5/include/linux/serial_reg.h
deleted file mode 100644
index 8ce70d76..00000000
--- a/ANDROID_3.4.5/include/linux/serial_reg.h
+++ /dev/null
@@ -1,367 +0,0 @@
-/*
- * include/linux/serial_reg.h
- *
- * Copyright (C) 1992, 1994 by Theodore Ts'o.
- *
- * Redistribution of this file is permitted under the terms of the GNU
- * Public License (GPL)
- *
- * These are the UART port assignments, expressed as offsets from the base
- * register. These assignments should hold for any serial port based on
- * a 8250, 16450, or 16550(A).
- */
-
-#ifndef _LINUX_SERIAL_REG_H
-#define _LINUX_SERIAL_REG_H
-
-/*
- * DLAB=0
- */
-#define UART_RX 0 /* In: Receive buffer */
-#define UART_TX 0 /* Out: Transmit buffer */
-
-#define UART_IER 1 /* Out: Interrupt Enable Register */
-#define UART_IER_MSI 0x08 /* Enable Modem status interrupt */
-#define UART_IER_RLSI 0x04 /* Enable receiver line status interrupt */
-#define UART_IER_THRI 0x02 /* Enable Transmitter holding register int. */
-#define UART_IER_RDI 0x01 /* Enable receiver data interrupt */
-/*
- * Sleep mode for ST16650 and TI16750. For the ST16650, EFR[4]=1
- */
-#define UART_IERX_SLEEP 0x10 /* Enable sleep mode */
-
-#define UART_IIR 2 /* In: Interrupt ID Register */
-#define UART_IIR_NO_INT 0x01 /* No interrupts pending */
-#define UART_IIR_ID 0x06 /* Mask for the interrupt ID */
-#define UART_IIR_MSI 0x00 /* Modem status interrupt */
-#define UART_IIR_THRI 0x02 /* Transmitter holding register empty */
-#define UART_IIR_RDI 0x04 /* Receiver data interrupt */
-#define UART_IIR_RLSI 0x06 /* Receiver line status interrupt */
-
-#define UART_IIR_BUSY 0x07 /* DesignWare APB Busy Detect */
-
-#define UART_FCR 2 /* Out: FIFO Control Register */
-#define UART_FCR_ENABLE_FIFO 0x01 /* Enable the FIFO */
-#define UART_FCR_CLEAR_RCVR 0x02 /* Clear the RCVR FIFO */
-#define UART_FCR_CLEAR_XMIT 0x04 /* Clear the XMIT FIFO */
-#define UART_FCR_DMA_SELECT 0x08 /* For DMA applications */
-/*
- * Note: The FIFO trigger levels are chip specific:
- * RX:76 = 00 01 10 11 TX:54 = 00 01 10 11
- * PC16550D: 1 4 8 14 xx xx xx xx
- * TI16C550A: 1 4 8 14 xx xx xx xx
- * TI16C550C: 1 4 8 14 xx xx xx xx
- * ST16C550: 1 4 8 14 xx xx xx xx
- * ST16C650: 8 16 24 28 16 8 24 30 PORT_16650V2
- * NS16C552: 1 4 8 14 xx xx xx xx
- * ST16C654: 8 16 56 60 8 16 32 56 PORT_16654
- * TI16C750: 1 16 32 56 xx xx xx xx PORT_16750
- * TI16C752: 8 16 56 60 8 16 32 56
- * Tegra: 1 4 8 14 16 8 4 1 PORT_TEGRA
- */
-#define UART_FCR_R_TRIG_00 0x00
-#define UART_FCR_R_TRIG_01 0x40
-#define UART_FCR_R_TRIG_10 0x80
-#define UART_FCR_R_TRIG_11 0xc0
-#define UART_FCR_T_TRIG_00 0x00
-#define UART_FCR_T_TRIG_01 0x10
-#define UART_FCR_T_TRIG_10 0x20
-#define UART_FCR_T_TRIG_11 0x30
-
-#define UART_FCR_TRIGGER_MASK 0xC0 /* Mask for the FIFO trigger range */
-#define UART_FCR_TRIGGER_1 0x00 /* Mask for trigger set at 1 */
-#define UART_FCR_TRIGGER_4 0x40 /* Mask for trigger set at 4 */
-#define UART_FCR_TRIGGER_8 0x80 /* Mask for trigger set at 8 */
-#define UART_FCR_TRIGGER_14 0xC0 /* Mask for trigger set at 14 */
-/* 16650 definitions */
-#define UART_FCR6_R_TRIGGER_8 0x00 /* Mask for receive trigger set at 1 */
-#define UART_FCR6_R_TRIGGER_16 0x40 /* Mask for receive trigger set at 4 */
-#define UART_FCR6_R_TRIGGER_24 0x80 /* Mask for receive trigger set at 8 */
-#define UART_FCR6_R_TRIGGER_28 0xC0 /* Mask for receive trigger set at 14 */
-#define UART_FCR6_T_TRIGGER_16 0x00 /* Mask for transmit trigger set at 16 */
-#define UART_FCR6_T_TRIGGER_8 0x10 /* Mask for transmit trigger set at 8 */
-#define UART_FCR6_T_TRIGGER_24 0x20 /* Mask for transmit trigger set at 24 */
-#define UART_FCR6_T_TRIGGER_30 0x30 /* Mask for transmit trigger set at 30 */
-#define UART_FCR7_64BYTE 0x20 /* Go into 64 byte mode (TI16C750) */
-
-#define UART_LCR 3 /* Out: Line Control Register */
-/*
- * Note: if the word length is 5 bits (UART_LCR_WLEN5), then setting
- * UART_LCR_STOP will select 1.5 stop bits, not 2 stop bits.
- */
-#define UART_LCR_DLAB 0x80 /* Divisor latch access bit */
-#define UART_LCR_SBC 0x40 /* Set break control */
-#define UART_LCR_SPAR 0x20 /* Stick parity (?) */
-#define UART_LCR_EPAR 0x10 /* Even parity select */
-#define UART_LCR_PARITY 0x08 /* Parity Enable */
-#define UART_LCR_STOP 0x04 /* Stop bits: 0=1 bit, 1=2 bits */
-#define UART_LCR_WLEN5 0x00 /* Wordlength: 5 bits */
-#define UART_LCR_WLEN6 0x01 /* Wordlength: 6 bits */
-#define UART_LCR_WLEN7 0x02 /* Wordlength: 7 bits */
-#define UART_LCR_WLEN8 0x03 /* Wordlength: 8 bits */
-
-/*
- * Access to some registers depends on register access / configuration
- * mode.
- */
-#define UART_LCR_CONF_MODE_A UART_LCR_DLAB /* Configutation mode A */
-#define UART_LCR_CONF_MODE_B 0xBF /* Configutation mode B */
-
-#define UART_MCR 4 /* Out: Modem Control Register */
-#define UART_MCR_CLKSEL 0x80 /* Divide clock by 4 (TI16C752, EFR[4]=1) */
-#define UART_MCR_TCRTLR 0x40 /* Access TCR/TLR (TI16C752, EFR[4]=1) */
-#define UART_MCR_XONANY 0x20 /* Enable Xon Any (TI16C752, EFR[4]=1) */
-#define UART_MCR_AFE 0x20 /* Enable auto-RTS/CTS (TI16C550C/TI16C750) */
-#define UART_MCR_LOOP 0x10 /* Enable loopback test mode */
-#define UART_MCR_OUT2 0x08 /* Out2 complement */
-#define UART_MCR_OUT1 0x04 /* Out1 complement */
-#define UART_MCR_RTS 0x02 /* RTS complement */
-#define UART_MCR_DTR 0x01 /* DTR complement */
-
-#define UART_LSR 5 /* In: Line Status Register */
-#define UART_LSR_FIFOE 0x80 /* Fifo error */
-#define UART_LSR_TEMT 0x40 /* Transmitter empty */
-#define UART_LSR_THRE 0x20 /* Transmit-hold-register empty */
-#define UART_LSR_BI 0x10 /* Break interrupt indicator */
-#define UART_LSR_FE 0x08 /* Frame error indicator */
-#define UART_LSR_PE 0x04 /* Parity error indicator */
-#define UART_LSR_OE 0x02 /* Overrun error indicator */
-#define UART_LSR_DR 0x01 /* Receiver data ready */
-#define UART_LSR_BRK_ERROR_BITS 0x1E /* BI, FE, PE, OE bits */
-
-#define UART_MSR 6 /* In: Modem Status Register */
-#define UART_MSR_DCD 0x80 /* Data Carrier Detect */
-#define UART_MSR_RI 0x40 /* Ring Indicator */
-#define UART_MSR_DSR 0x20 /* Data Set Ready */
-#define UART_MSR_CTS 0x10 /* Clear to Send */
-#define UART_MSR_DDCD 0x08 /* Delta DCD */
-#define UART_MSR_TERI 0x04 /* Trailing edge ring indicator */
-#define UART_MSR_DDSR 0x02 /* Delta DSR */
-#define UART_MSR_DCTS 0x01 /* Delta CTS */
-#define UART_MSR_ANY_DELTA 0x0F /* Any of the delta bits! */
-
-#define UART_SCR 7 /* I/O: Scratch Register */
-
-/*
- * DLAB=1
- */
-#define UART_DLL 0 /* Out: Divisor Latch Low */
-#define UART_DLM 1 /* Out: Divisor Latch High */
-
-/*
- * LCR=0xBF (or DLAB=1 for 16C660)
- */
-#define UART_EFR 2 /* I/O: Extended Features Register */
-#define UART_XR_EFR 9 /* I/O: Extended Features Register (XR17D15x) */
-#define UART_EFR_CTS 0x80 /* CTS flow control */
-#define UART_EFR_RTS 0x40 /* RTS flow control */
-#define UART_EFR_SCD 0x20 /* Special character detect */
-#define UART_EFR_ECB 0x10 /* Enhanced control bit */
-/*
- * the low four bits control software flow control
- */
-
-/*
- * LCR=0xBF, TI16C752, ST16650, ST16650A, ST16654
- */
-#define UART_XON1 4 /* I/O: Xon character 1 */
-#define UART_XON2 5 /* I/O: Xon character 2 */
-#define UART_XOFF1 6 /* I/O: Xoff character 1 */
-#define UART_XOFF2 7 /* I/O: Xoff character 2 */
-
-/*
- * EFR[4]=1 MCR[6]=1, TI16C752
- */
-#define UART_TI752_TCR 6 /* I/O: transmission control register */
-#define UART_TI752_TLR 7 /* I/O: trigger level register */
-
-/*
- * LCR=0xBF, XR16C85x
- */
-#define UART_TRG 0 /* FCTR bit 7 selects Rx or Tx
- * In: Fifo count
- * Out: Fifo custom trigger levels */
-/*
- * These are the definitions for the Programmable Trigger Register
- */
-#define UART_TRG_1 0x01
-#define UART_TRG_4 0x04
-#define UART_TRG_8 0x08
-#define UART_TRG_16 0x10
-#define UART_TRG_32 0x20
-#define UART_TRG_64 0x40
-#define UART_TRG_96 0x60
-#define UART_TRG_120 0x78
-#define UART_TRG_128 0x80
-
-#define UART_FCTR 1 /* Feature Control Register */
-#define UART_FCTR_RTS_NODELAY 0x00 /* RTS flow control delay */
-#define UART_FCTR_RTS_4DELAY 0x01
-#define UART_FCTR_RTS_6DELAY 0x02
-#define UART_FCTR_RTS_8DELAY 0x03
-#define UART_FCTR_IRDA 0x04 /* IrDa data encode select */
-#define UART_FCTR_TX_INT 0x08 /* Tx interrupt type select */
-#define UART_FCTR_TRGA 0x00 /* Tx/Rx 550 trigger table select */
-#define UART_FCTR_TRGB 0x10 /* Tx/Rx 650 trigger table select */
-#define UART_FCTR_TRGC 0x20 /* Tx/Rx 654 trigger table select */
-#define UART_FCTR_TRGD 0x30 /* Tx/Rx 850 programmable trigger select */
-#define UART_FCTR_SCR_SWAP 0x40 /* Scratch pad register swap */
-#define UART_FCTR_RX 0x00 /* Programmable trigger mode select */
-#define UART_FCTR_TX 0x80 /* Programmable trigger mode select */
-
-/*
- * LCR=0xBF, FCTR[6]=1
- */
-#define UART_EMSR 7 /* Extended Mode Select Register */
-#define UART_EMSR_FIFO_COUNT 0x01 /* Rx/Tx select */
-#define UART_EMSR_ALT_COUNT 0x02 /* Alternating count select */
-
-/*
- * The Intel XScale on-chip UARTs define these bits
- */
-#define UART_IER_DMAE 0x80 /* DMA Requests Enable */
-#define UART_IER_UUE 0x40 /* UART Unit Enable */
-#define UART_IER_NRZE 0x20 /* NRZ coding Enable */
-#define UART_IER_RTOIE 0x10 /* Receiver Time Out Interrupt Enable */
-
-#define UART_IIR_TOD 0x08 /* Character Timeout Indication Detected */
-
-#define UART_FCR_PXAR1 0x00 /* receive FIFO threshold = 1 */
-#define UART_FCR_PXAR8 0x40 /* receive FIFO threshold = 8 */
-#define UART_FCR_PXAR16 0x80 /* receive FIFO threshold = 16 */
-#define UART_FCR_PXAR32 0xc0 /* receive FIFO threshold = 32 */
-
-/*
- * Intel MID on-chip HSU (High Speed UART) defined bits
- */
-#define UART_FCR_HSU_64_1B 0x00 /* receive FIFO treshold = 1 */
-#define UART_FCR_HSU_64_16B 0x40 /* receive FIFO treshold = 16 */
-#define UART_FCR_HSU_64_32B 0x80 /* receive FIFO treshold = 32 */
-#define UART_FCR_HSU_64_56B 0xc0 /* receive FIFO treshold = 56 */
-
-#define UART_FCR_HSU_16_1B 0x00 /* receive FIFO treshold = 1 */
-#define UART_FCR_HSU_16_4B 0x40 /* receive FIFO treshold = 4 */
-#define UART_FCR_HSU_16_8B 0x80 /* receive FIFO treshold = 8 */
-#define UART_FCR_HSU_16_14B 0xc0 /* receive FIFO treshold = 14 */
-
-#define UART_FCR_HSU_64B_FIFO 0x20 /* chose 64 bytes FIFO */
-#define UART_FCR_HSU_16B_FIFO 0x00 /* chose 16 bytes FIFO */
-
-#define UART_FCR_HALF_EMPT_TXI 0x00 /* trigger TX_EMPT IRQ for half empty */
-#define UART_FCR_FULL_EMPT_TXI 0x08 /* trigger TX_EMPT IRQ for full empty */
-
-/*
- * These register definitions are for the 16C950
- */
-#define UART_ASR 0x01 /* Additional Status Register */
-#define UART_RFL 0x03 /* Receiver FIFO level */
-#define UART_TFL 0x04 /* Transmitter FIFO level */
-#define UART_ICR 0x05 /* Index Control Register */
-
-/* The 16950 ICR registers */
-#define UART_ACR 0x00 /* Additional Control Register */
-#define UART_CPR 0x01 /* Clock Prescalar Register */
-#define UART_TCR 0x02 /* Times Clock Register */
-#define UART_CKS 0x03 /* Clock Select Register */
-#define UART_TTL 0x04 /* Transmitter Interrupt Trigger Level */
-#define UART_RTL 0x05 /* Receiver Interrupt Trigger Level */
-#define UART_FCL 0x06 /* Flow Control Level Lower */
-#define UART_FCH 0x07 /* Flow Control Level Higher */
-#define UART_ID1 0x08 /* ID #1 */
-#define UART_ID2 0x09 /* ID #2 */
-#define UART_ID3 0x0A /* ID #3 */
-#define UART_REV 0x0B /* Revision */
-#define UART_CSR 0x0C /* Channel Software Reset */
-#define UART_NMR 0x0D /* Nine-bit Mode Register */
-#define UART_CTR 0xFF
-
-/*
- * The 16C950 Additional Control Register
- */
-#define UART_ACR_RXDIS 0x01 /* Receiver disable */
-#define UART_ACR_TXDIS 0x02 /* Transmitter disable */
-#define UART_ACR_DSRFC 0x04 /* DSR Flow Control */
-#define UART_ACR_TLENB 0x20 /* 950 trigger levels enable */
-#define UART_ACR_ICRRD 0x40 /* ICR Read enable */
-#define UART_ACR_ASREN 0x80 /* Additional status enable */
-
-
-
-/*
- * These definitions are for the RSA-DV II/S card, from
- *
- * Kiyokazu SUTO <suto@ks-and-ks.ne.jp>
- */
-
-#define UART_RSA_BASE (-8)
-
-#define UART_RSA_MSR ((UART_RSA_BASE) + 0) /* I/O: Mode Select Register */
-
-#define UART_RSA_MSR_SWAP (1 << 0) /* Swap low/high 8 bytes in I/O port addr */
-#define UART_RSA_MSR_FIFO (1 << 2) /* Enable the external FIFO */
-#define UART_RSA_MSR_FLOW (1 << 3) /* Enable the auto RTS/CTS flow control */
-#define UART_RSA_MSR_ITYP (1 << 4) /* Level (1) / Edge triger (0) */
-
-#define UART_RSA_IER ((UART_RSA_BASE) + 1) /* I/O: Interrupt Enable Register */
-
-#define UART_RSA_IER_Rx_FIFO_H (1 << 0) /* Enable Rx FIFO half full int. */
-#define UART_RSA_IER_Tx_FIFO_H (1 << 1) /* Enable Tx FIFO half full int. */
-#define UART_RSA_IER_Tx_FIFO_E (1 << 2) /* Enable Tx FIFO empty int. */
-#define UART_RSA_IER_Rx_TOUT (1 << 3) /* Enable char receive timeout int */
-#define UART_RSA_IER_TIMER (1 << 4) /* Enable timer interrupt */
-
-#define UART_RSA_SRR ((UART_RSA_BASE) + 2) /* IN: Status Read Register */
-
-#define UART_RSA_SRR_Tx_FIFO_NEMP (1 << 0) /* Tx FIFO is not empty (1) */
-#define UART_RSA_SRR_Tx_FIFO_NHFL (1 << 1) /* Tx FIFO is not half full (1) */
-#define UART_RSA_SRR_Tx_FIFO_NFUL (1 << 2) /* Tx FIFO is not full (1) */
-#define UART_RSA_SRR_Rx_FIFO_NEMP (1 << 3) /* Rx FIFO is not empty (1) */
-#define UART_RSA_SRR_Rx_FIFO_NHFL (1 << 4) /* Rx FIFO is not half full (1) */
-#define UART_RSA_SRR_Rx_FIFO_NFUL (1 << 5) /* Rx FIFO is not full (1) */
-#define UART_RSA_SRR_Rx_TOUT (1 << 6) /* Character reception timeout occurred (1) */
-#define UART_RSA_SRR_TIMER (1 << 7) /* Timer interrupt occurred */
-
-#define UART_RSA_FRR ((UART_RSA_BASE) + 2) /* OUT: FIFO Reset Register */
-
-#define UART_RSA_TIVSR ((UART_RSA_BASE) + 3) /* I/O: Timer Interval Value Set Register */
-
-#define UART_RSA_TCR ((UART_RSA_BASE) + 4) /* OUT: Timer Control Register */
-
-#define UART_RSA_TCR_SWITCH (1 << 0) /* Timer on */
-
-/*
- * The RSA DSV/II board has two fixed clock frequencies. One is the
- * standard rate, and the other is 8 times faster.
- */
-#define SERIAL_RSA_BAUD_BASE (921600)
-#define SERIAL_RSA_BAUD_BASE_LO (SERIAL_RSA_BAUD_BASE / 8)
-
-/*
- * Extra serial register definitions for the internal UARTs
- * in TI OMAP processors.
- */
-#define UART_OMAP_MDR1 0x08 /* Mode definition register */
-#define UART_OMAP_MDR2 0x09 /* Mode definition register 2 */
-#define UART_OMAP_SCR 0x10 /* Supplementary control register */
-#define UART_OMAP_SSR 0x11 /* Supplementary status register */
-#define UART_OMAP_EBLR 0x12 /* BOF length register */
-#define UART_OMAP_OSC_12M_SEL 0x13 /* OMAP1510 12MHz osc select */
-#define UART_OMAP_MVER 0x14 /* Module version register */
-#define UART_OMAP_SYSC 0x15 /* System configuration register */
-#define UART_OMAP_SYSS 0x16 /* System status register */
-#define UART_OMAP_WER 0x17 /* Wake-up enable register */
-
-/*
- * These are the definitions for the MDR1 register
- */
-#define UART_OMAP_MDR1_16X_MODE 0x00 /* UART 16x mode */
-#define UART_OMAP_MDR1_SIR_MODE 0x01 /* SIR mode */
-#define UART_OMAP_MDR1_16X_ABAUD_MODE 0x02 /* UART 16x auto-baud */
-#define UART_OMAP_MDR1_13X_MODE 0x03 /* UART 13x mode */
-#define UART_OMAP_MDR1_MIR_MODE 0x04 /* MIR mode */
-#define UART_OMAP_MDR1_FIR_MODE 0x05 /* FIR mode */
-#define UART_OMAP_MDR1_CIR_MODE 0x06 /* CIR mode */
-#define UART_OMAP_MDR1_DISABLE 0x07 /* Disable (default state) */
-
-#endif /* _LINUX_SERIAL_REG_H */
-
diff --git a/ANDROID_3.4.5/include/linux/serial_sci.h b/ANDROID_3.4.5/include/linux/serial_sci.h
deleted file mode 100644
index 78779074..00000000
--- a/ANDROID_3.4.5/include/linux/serial_sci.h
+++ /dev/null
@@ -1,161 +0,0 @@
-#ifndef __LINUX_SERIAL_SCI_H
-#define __LINUX_SERIAL_SCI_H
-
-#include <linux/serial_core.h>
-#include <linux/sh_dma.h>
-
-/*
- * Generic header for SuperH SCI(F) (used by sh/sh64/h8300 and related parts)
- */
-
-#define SCIx_NOT_SUPPORTED (-1)
-
-enum {
- SCBRR_ALGO_1, /* ((clk + 16 * bps) / (16 * bps) - 1) */
- SCBRR_ALGO_2, /* ((clk + 16 * bps) / (32 * bps) - 1) */
- SCBRR_ALGO_3, /* (((clk * 2) + 16 * bps) / (16 * bps) - 1) */
- SCBRR_ALGO_4, /* (((clk * 2) + 16 * bps) / (32 * bps) - 1) */
- SCBRR_ALGO_5, /* (((clk * 1000 / 32) / bps) - 1) */
-};
-
-#define SCSCR_TIE (1 << 7)
-#define SCSCR_RIE (1 << 6)
-#define SCSCR_TE (1 << 5)
-#define SCSCR_RE (1 << 4)
-#define SCSCR_REIE (1 << 3) /* not supported by all parts */
-#define SCSCR_TOIE (1 << 2) /* not supported by all parts */
-#define SCSCR_CKE1 (1 << 1)
-#define SCSCR_CKE0 (1 << 0)
-
-/* SCxSR SCI */
-#define SCI_TDRE 0x80
-#define SCI_RDRF 0x40
-#define SCI_ORER 0x20
-#define SCI_FER 0x10
-#define SCI_PER 0x08
-#define SCI_TEND 0x04
-
-#define SCI_DEFAULT_ERROR_MASK (SCI_PER | SCI_FER)
-
-/* SCxSR SCIF */
-#define SCIF_ER 0x0080
-#define SCIF_TEND 0x0040
-#define SCIF_TDFE 0x0020
-#define SCIF_BRK 0x0010
-#define SCIF_FER 0x0008
-#define SCIF_PER 0x0004
-#define SCIF_RDF 0x0002
-#define SCIF_DR 0x0001
-
-#define SCIF_DEFAULT_ERROR_MASK (SCIF_PER | SCIF_FER | SCIF_ER | SCIF_BRK)
-
-/* SCSPTR, optional */
-#define SCSPTR_RTSIO (1 << 7)
-#define SCSPTR_CTSIO (1 << 5)
-
-/* Offsets into the sci_port->irqs array */
-enum {
- SCIx_ERI_IRQ,
- SCIx_RXI_IRQ,
- SCIx_TXI_IRQ,
- SCIx_BRI_IRQ,
- SCIx_NR_IRQS,
-
- SCIx_MUX_IRQ = SCIx_NR_IRQS, /* special case */
-};
-
-/* Offsets into the sci_port->gpios array */
-enum {
- SCIx_SCK,
- SCIx_RXD,
- SCIx_TXD,
- SCIx_CTS,
- SCIx_RTS,
-
- SCIx_NR_FNS,
-};
-
-enum {
- SCIx_PROBE_REGTYPE,
-
- SCIx_SCI_REGTYPE,
- SCIx_IRDA_REGTYPE,
- SCIx_SCIFA_REGTYPE,
- SCIx_SCIFB_REGTYPE,
- SCIx_SH2_SCIF_FIFODATA_REGTYPE,
- SCIx_SH3_SCIF_REGTYPE,
- SCIx_SH4_SCIF_REGTYPE,
- SCIx_SH4_SCIF_NO_SCSPTR_REGTYPE,
- SCIx_SH4_SCIF_FIFODATA_REGTYPE,
- SCIx_SH7705_SCIF_REGTYPE,
-
- SCIx_NR_REGTYPES,
-};
-
-#define SCIx_IRQ_MUXED(irq) \
-{ \
- [SCIx_ERI_IRQ] = (irq), \
- [SCIx_RXI_IRQ] = (irq), \
- [SCIx_TXI_IRQ] = (irq), \
- [SCIx_BRI_IRQ] = (irq), \
-}
-
-#define SCIx_IRQ_IS_MUXED(port) \
- ((port)->cfg->irqs[SCIx_ERI_IRQ] == \
- (port)->cfg->irqs[SCIx_RXI_IRQ]) || \
- ((port)->cfg->irqs[SCIx_ERI_IRQ] && \
- !(port)->cfg->irqs[SCIx_RXI_IRQ])
-/*
- * SCI register subset common for all port types.
- * Not all registers will exist on all parts.
- */
-enum {
- SCSMR, SCBRR, SCSCR, SCxSR,
- SCFCR, SCFDR, SCxTDR, SCxRDR,
- SCLSR, SCTFDR, SCRFDR, SCSPTR,
-
- SCIx_NR_REGS,
-};
-
-struct device;
-
-struct plat_sci_port_ops {
- void (*init_pins)(struct uart_port *, unsigned int cflag);
-};
-
-/*
- * Port-specific capabilities
- */
-#define SCIx_HAVE_RTSCTS (1 << 0)
-
-/*
- * Platform device specific platform_data struct
- */
-struct plat_sci_port {
- unsigned long mapbase; /* resource base */
- unsigned int irqs[SCIx_NR_IRQS]; /* ERI, RXI, TXI, BRI */
- unsigned int gpios[SCIx_NR_FNS]; /* SCK, RXD, TXD, CTS, RTS */
- unsigned int type; /* SCI / SCIF / IRDA */
- upf_t flags; /* UPF_* flags */
- unsigned long capabilities; /* Port features/capabilities */
-
- unsigned int scbrr_algo_id; /* SCBRR calculation algo */
- unsigned int scscr; /* SCSCR initialization */
-
- /*
- * Platform overrides if necessary, defaults otherwise.
- */
- int overrun_bit;
- unsigned int error_mask;
-
- int port_reg;
- unsigned char regshift;
- unsigned char regtype;
-
- struct plat_sci_port_ops *ops;
-
- unsigned int dma_slave_tx;
- unsigned int dma_slave_rx;
-};
-
-#endif /* __LINUX_SERIAL_SCI_H */
diff --git a/ANDROID_3.4.5/include/linux/serio.h b/ANDROID_3.4.5/include/linux/serio.h
deleted file mode 100644
index ca82861b..00000000
--- a/ANDROID_3.4.5/include/linux/serio.h
+++ /dev/null
@@ -1,206 +0,0 @@
-#ifndef _SERIO_H
-#define _SERIO_H
-
-/*
- * Copyright (C) 1999-2002 Vojtech Pavlik
-*
- * 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/ioctl.h>
-
-#define SPIOCSTYPE _IOW('q', 0x01, unsigned long)
-
-#ifdef __KERNEL__
-
-#include <linux/types.h>
-#include <linux/interrupt.h>
-#include <linux/list.h>
-#include <linux/spinlock.h>
-#include <linux/mutex.h>
-#include <linux/device.h>
-#include <linux/mod_devicetable.h>
-
-struct serio {
- void *port_data;
-
- char name[32];
- char phys[32];
-
- bool manual_bind;
-
- struct serio_device_id id;
-
- spinlock_t lock; /* protects critical sections from port's interrupt handler */
-
- int (*write)(struct serio *, unsigned char);
- int (*open)(struct serio *);
- void (*close)(struct serio *);
- int (*start)(struct serio *);
- void (*stop)(struct serio *);
-
- struct serio *parent;
- struct list_head child_node; /* Entry in parent->children list */
- struct list_head children;
- unsigned int depth; /* level of nesting in serio hierarchy */
-
- struct serio_driver *drv; /* accessed from interrupt, must be protected by serio->lock and serio->sem */
- struct mutex drv_mutex; /* protects serio->drv so attributes can pin driver */
-
- struct device dev;
-
- struct list_head node;
-};
-#define to_serio_port(d) container_of(d, struct serio, dev)
-
-struct serio_driver {
- const char *description;
-
- const struct serio_device_id *id_table;
- bool manual_bind;
-
- void (*write_wakeup)(struct serio *);
- irqreturn_t (*interrupt)(struct serio *, unsigned char, unsigned int);
- int (*connect)(struct serio *, struct serio_driver *drv);
- int (*reconnect)(struct serio *);
- void (*disconnect)(struct serio *);
- void (*cleanup)(struct serio *);
-
- struct device_driver driver;
-};
-#define to_serio_driver(d) container_of(d, struct serio_driver, driver)
-
-int serio_open(struct serio *serio, struct serio_driver *drv);
-void serio_close(struct serio *serio);
-void serio_rescan(struct serio *serio);
-void serio_reconnect(struct serio *serio);
-irqreturn_t serio_interrupt(struct serio *serio, unsigned char data, unsigned int flags);
-
-void __serio_register_port(struct serio *serio, struct module *owner);
-
-/* use a define to avoid include chaining to get THIS_MODULE */
-#define serio_register_port(serio) \
- __serio_register_port(serio, THIS_MODULE)
-
-void serio_unregister_port(struct serio *serio);
-void serio_unregister_child_port(struct serio *serio);
-
-int __must_check __serio_register_driver(struct serio_driver *drv,
- struct module *owner, const char *mod_name);
-
-/* use a define to avoid include chaining to get THIS_MODULE & friends */
-#define serio_register_driver(drv) \
- __serio_register_driver(drv, THIS_MODULE, KBUILD_MODNAME)
-
-void serio_unregister_driver(struct serio_driver *drv);
-
-static inline int serio_write(struct serio *serio, unsigned char data)
-{
- if (serio->write)
- return serio->write(serio, data);
- else
- return -1;
-}
-
-static inline void serio_drv_write_wakeup(struct serio *serio)
-{
- if (serio->drv && serio->drv->write_wakeup)
- serio->drv->write_wakeup(serio);
-}
-
-/*
- * Use the following functions to manipulate serio's per-port
- * driver-specific data.
- */
-static inline void *serio_get_drvdata(struct serio *serio)
-{
- return dev_get_drvdata(&serio->dev);
-}
-
-static inline void serio_set_drvdata(struct serio *serio, void *data)
-{
- dev_set_drvdata(&serio->dev, data);
-}
-
-/*
- * Use the following functions to protect critical sections in
- * driver code from port's interrupt handler
- */
-static inline void serio_pause_rx(struct serio *serio)
-{
- spin_lock_irq(&serio->lock);
-}
-
-static inline void serio_continue_rx(struct serio *serio)
-{
- spin_unlock_irq(&serio->lock);
-}
-
-#endif
-
-/*
- * bit masks for use in "interrupt" flags (3rd argument)
- */
-#define SERIO_TIMEOUT 1
-#define SERIO_PARITY 2
-#define SERIO_FRAME 4
-
-/*
- * Serio types
- */
-#define SERIO_XT 0x00
-#define SERIO_8042 0x01
-#define SERIO_RS232 0x02
-#define SERIO_HIL_MLC 0x03
-#define SERIO_PS_PSTHRU 0x05
-#define SERIO_8042_XL 0x06
-
-/*
- * Serio protocols
- */
-#define SERIO_UNKNOWN 0x00
-#define SERIO_MSC 0x01
-#define SERIO_SUN 0x02
-#define SERIO_MS 0x03
-#define SERIO_MP 0x04
-#define SERIO_MZ 0x05
-#define SERIO_MZP 0x06
-#define SERIO_MZPP 0x07
-#define SERIO_VSXXXAA 0x08
-#define SERIO_SUNKBD 0x10
-#define SERIO_WARRIOR 0x18
-#define SERIO_SPACEORB 0x19
-#define SERIO_MAGELLAN 0x1a
-#define SERIO_SPACEBALL 0x1b
-#define SERIO_GUNZE 0x1c
-#define SERIO_IFORCE 0x1d
-#define SERIO_STINGER 0x1e
-#define SERIO_NEWTON 0x1f
-#define SERIO_STOWAWAY 0x20
-#define SERIO_H3600 0x21
-#define SERIO_PS2SER 0x22
-#define SERIO_TWIDKBD 0x23
-#define SERIO_TWIDJOY 0x24
-#define SERIO_HIL 0x25
-#define SERIO_SNES232 0x26
-#define SERIO_SEMTECH 0x27
-#define SERIO_LKKBD 0x28
-#define SERIO_ELO 0x29
-#define SERIO_MICROTOUCH 0x30
-#define SERIO_PENMOUNT 0x31
-#define SERIO_TOUCHRIGHT 0x32
-#define SERIO_TOUCHWIN 0x33
-#define SERIO_TAOSEVM 0x34
-#define SERIO_FUJITSU 0x35
-#define SERIO_ZHENHUA 0x36
-#define SERIO_INEXIO 0x37
-#define SERIO_TOUCHIT213 0x38
-#define SERIO_W8001 0x39
-#define SERIO_DYNAPRO 0x3a
-#define SERIO_HAMPSHIRE 0x3b
-#define SERIO_PS2MULT 0x3c
-#define SERIO_TSC40 0x3d
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/sfi.h b/ANDROID_3.4.5/include/linux/sfi.h
deleted file mode 100644
index fe817918..00000000
--- a/ANDROID_3.4.5/include/linux/sfi.h
+++ /dev/null
@@ -1,206 +0,0 @@
-/* sfi.h Simple Firmware Interface */
-
-/*
-
- This file is provided under a dual BSD/GPLv2 license. When using or
- redistributing this file, you may do so under either license.
-
- GPL LICENSE SUMMARY
-
- Copyright(c) 2009 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., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- The full GNU General Public License is included in this distribution
- in the file called LICENSE.GPL.
-
- BSD LICENSE
-
- Copyright(c) 2009 Intel Corporation. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
- * Neither the name of Intel Corporation nor the names of its
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-*/
-
-#ifndef _LINUX_SFI_H
-#define _LINUX_SFI_H
-
-/* Table signatures reserved by the SFI specification */
-#define SFI_SIG_SYST "SYST"
-#define SFI_SIG_FREQ "FREQ"
-#define SFI_SIG_IDLE "IDLE"
-#define SFI_SIG_CPUS "CPUS"
-#define SFI_SIG_MTMR "MTMR"
-#define SFI_SIG_MRTC "MRTC"
-#define SFI_SIG_MMAP "MMAP"
-#define SFI_SIG_APIC "APIC"
-#define SFI_SIG_XSDT "XSDT"
-#define SFI_SIG_WAKE "WAKE"
-#define SFI_SIG_DEVS "DEVS"
-#define SFI_SIG_GPIO "GPIO"
-
-#define SFI_SIGNATURE_SIZE 4
-#define SFI_OEM_ID_SIZE 6
-#define SFI_OEM_TABLE_ID_SIZE 8
-
-#define SFI_NAME_LEN 16
-
-#define SFI_SYST_SEARCH_BEGIN 0x000E0000
-#define SFI_SYST_SEARCH_END 0x000FFFFF
-
-#define SFI_GET_NUM_ENTRIES(ptable, entry_type) \
- ((ptable->header.len - sizeof(struct sfi_table_header)) / \
- (sizeof(entry_type)))
-/*
- * Table structures must be byte-packed to match the SFI specification,
- * as they are provided by the BIOS.
- */
-struct sfi_table_header {
- char sig[SFI_SIGNATURE_SIZE];
- u32 len;
- u8 rev;
- u8 csum;
- char oem_id[SFI_OEM_ID_SIZE];
- char oem_table_id[SFI_OEM_TABLE_ID_SIZE];
-} __packed;
-
-struct sfi_table_simple {
- struct sfi_table_header header;
- u64 pentry[1];
-} __packed;
-
-/* Comply with UEFI spec 2.1 */
-struct sfi_mem_entry {
- u32 type;
- u64 phys_start;
- u64 virt_start;
- u64 pages;
- u64 attrib;
-} __packed;
-
-struct sfi_cpu_table_entry {
- u32 apic_id;
-} __packed;
-
-struct sfi_cstate_table_entry {
- u32 hint; /* MWAIT hint */
- u32 latency; /* latency in ms */
-} __packed;
-
-struct sfi_apic_table_entry {
- u64 phys_addr; /* phy base addr for APIC reg */
-} __packed;
-
-struct sfi_freq_table_entry {
- u32 freq_mhz; /* in MHZ */
- u32 latency; /* transition latency in ms */
- u32 ctrl_val; /* value to write to PERF_CTL */
-} __packed;
-
-struct sfi_wake_table_entry {
- u64 phys_addr; /* pointer to where the wake vector locates */
-} __packed;
-
-struct sfi_timer_table_entry {
- u64 phys_addr; /* phy base addr for the timer */
- u32 freq_hz; /* in HZ */
- u32 irq;
-} __packed;
-
-struct sfi_rtc_table_entry {
- u64 phys_addr; /* phy base addr for the RTC */
- u32 irq;
-} __packed;
-
-struct sfi_device_table_entry {
- u8 type; /* bus type, I2C, SPI or ...*/
-#define SFI_DEV_TYPE_SPI 0
-#define SFI_DEV_TYPE_I2C 1
-#define SFI_DEV_TYPE_UART 2
-#define SFI_DEV_TYPE_HSI 3
-#define SFI_DEV_TYPE_IPC 4
-
- u8 host_num; /* attached to host 0, 1...*/
- u16 addr;
- u8 irq;
- u32 max_freq;
- char name[SFI_NAME_LEN];
-} __packed;
-
-struct sfi_gpio_table_entry {
- char controller_name[SFI_NAME_LEN];
- u16 pin_no;
- char pin_name[SFI_NAME_LEN];
-} __packed;
-
-typedef int (*sfi_table_handler) (struct sfi_table_header *table);
-
-#ifdef CONFIG_SFI
-extern void __init sfi_init(void);
-extern int __init sfi_platform_init(void);
-extern void __init sfi_init_late(void);
-extern int sfi_table_parse(char *signature, char *oem_id, char *oem_table_id,
- sfi_table_handler handler);
-
-extern int sfi_disabled;
-static inline void disable_sfi(void)
-{
- sfi_disabled = 1;
-}
-
-#else /* !CONFIG_SFI */
-
-static inline void sfi_init(void)
-{
-}
-
-static inline void sfi_init_late(void)
-{
-}
-
-#define sfi_disabled 0
-
-static inline int sfi_table_parse(char *signature, char *oem_id,
- char *oem_table_id,
- sfi_table_handler handler)
-{
- return -1;
-}
-
-#endif /* !CONFIG_SFI */
-
-#endif /*_LINUX_SFI_H*/
diff --git a/ANDROID_3.4.5/include/linux/sfi_acpi.h b/ANDROID_3.4.5/include/linux/sfi_acpi.h
deleted file mode 100644
index c4a5a8cd..00000000
--- a/ANDROID_3.4.5/include/linux/sfi_acpi.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/* sfi.h Simple Firmware Interface */
-
-/*
-
- This file is provided under a dual BSD/GPLv2 license. When using or
- redistributing this file, you may do so under either license.
-
- GPL LICENSE SUMMARY
-
- Copyright(c) 2009 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., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- The full GNU General Public License is included in this distribution
- in the file called LICENSE.GPL.
-
- BSD LICENSE
-
- Copyright(c) 2009 Intel Corporation. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
- * Neither the name of Intel Corporation nor the names of its
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-*/
-
-#ifndef _LINUX_SFI_ACPI_H
-#define _LINUX_SFI_ACPI_H
-
-#ifdef CONFIG_SFI
-#include <acpi/acpi.h> /* struct acpi_table_header */
-
-extern int sfi_acpi_table_parse(char *signature, char *oem_id,
- char *oem_table_id,
- int (*handler)(struct acpi_table_header *));
-
-static inline int acpi_sfi_table_parse(char *signature,
- int (*handler)(struct acpi_table_header *))
-{
- if (!acpi_table_parse(signature, handler))
- return 0;
-
- return sfi_acpi_table_parse(signature, NULL, NULL, handler);
-}
-#else /* !CONFIG_SFI */
-
-static inline int sfi_acpi_table_parse(char *signature, char *oem_id,
- char *oem_table_id,
- int (*handler)(struct acpi_table_header *))
-{
- return -1;
-}
-
-static inline int acpi_sfi_table_parse(char *signature,
- int (*handler)(struct acpi_table_header *))
-{
- return acpi_table_parse(signature, handler);
-}
-#endif /* !CONFIG_SFI */
-
-#endif /*_LINUX_SFI_ACPI_H*/
diff --git a/ANDROID_3.4.5/include/linux/sh_clk.h b/ANDROID_3.4.5/include/linux/sh_clk.h
deleted file mode 100644
index 0a9d8f2a..00000000
--- a/ANDROID_3.4.5/include/linux/sh_clk.h
+++ /dev/null
@@ -1,161 +0,0 @@
-#ifndef __SH_CLOCK_H
-#define __SH_CLOCK_H
-
-#include <linux/list.h>
-#include <linux/seq_file.h>
-#include <linux/cpufreq.h>
-#include <linux/types.h>
-#include <linux/kref.h>
-#include <linux/clk.h>
-#include <linux/err.h>
-
-struct clk;
-
-struct clk_mapping {
- phys_addr_t phys;
- void __iomem *base;
- unsigned long len;
- struct kref ref;
-};
-
-
-struct sh_clk_ops {
-#ifdef CONFIG_SH_CLK_CPG_LEGACY
- void (*init)(struct clk *clk);
-#endif
- int (*enable)(struct clk *clk);
- void (*disable)(struct clk *clk);
- unsigned long (*recalc)(struct clk *clk);
- int (*set_rate)(struct clk *clk, unsigned long rate);
- int (*set_parent)(struct clk *clk, struct clk *parent);
- long (*round_rate)(struct clk *clk, unsigned long rate);
-};
-
-struct clk {
- struct list_head node;
- struct clk *parent;
- struct clk **parent_table; /* list of parents to */
- unsigned short parent_num; /* choose between */
- unsigned char src_shift; /* source clock field in the */
- unsigned char src_width; /* configuration register */
- struct sh_clk_ops *ops;
-
- struct list_head children;
- struct list_head sibling; /* node for children */
-
- int usecount;
-
- unsigned long rate;
- unsigned long flags;
-
- void __iomem *enable_reg;
- unsigned int enable_bit;
- void __iomem *mapped_reg;
-
- unsigned long arch_flags;
- void *priv;
- struct clk_mapping *mapping;
- struct cpufreq_frequency_table *freq_table;
- unsigned int nr_freqs;
-};
-
-#define CLK_ENABLE_ON_INIT (1 << 0)
-
-/* drivers/sh/clk.c */
-unsigned long followparent_recalc(struct clk *);
-void recalculate_root_clocks(void);
-void propagate_rate(struct clk *);
-int clk_reparent(struct clk *child, struct clk *parent);
-int clk_register(struct clk *);
-void clk_unregister(struct clk *);
-void clk_enable_init_clocks(void);
-
-struct clk_div_mult_table {
- unsigned int *divisors;
- unsigned int nr_divisors;
- unsigned int *multipliers;
- unsigned int nr_multipliers;
-};
-
-struct cpufreq_frequency_table;
-void clk_rate_table_build(struct clk *clk,
- struct cpufreq_frequency_table *freq_table,
- int nr_freqs,
- struct clk_div_mult_table *src_table,
- unsigned long *bitmap);
-
-long clk_rate_table_round(struct clk *clk,
- struct cpufreq_frequency_table *freq_table,
- unsigned long rate);
-
-int clk_rate_table_find(struct clk *clk,
- struct cpufreq_frequency_table *freq_table,
- unsigned long rate);
-
-long clk_rate_div_range_round(struct clk *clk, unsigned int div_min,
- unsigned int div_max, unsigned long rate);
-
-long clk_rate_mult_range_round(struct clk *clk, unsigned int mult_min,
- unsigned int mult_max, unsigned long rate);
-
-long clk_round_parent(struct clk *clk, unsigned long target,
- unsigned long *best_freq, unsigned long *parent_freq,
- unsigned int div_min, unsigned int div_max);
-
-#define SH_CLK_MSTP32(_parent, _enable_reg, _enable_bit, _flags) \
-{ \
- .parent = _parent, \
- .enable_reg = (void __iomem *)_enable_reg, \
- .enable_bit = _enable_bit, \
- .flags = _flags, \
-}
-
-int sh_clk_mstp32_register(struct clk *clks, int nr);
-
-#define SH_CLK_DIV4(_parent, _reg, _shift, _div_bitmap, _flags) \
-{ \
- .parent = _parent, \
- .enable_reg = (void __iomem *)_reg, \
- .enable_bit = _shift, \
- .arch_flags = _div_bitmap, \
- .flags = _flags, \
-}
-
-struct clk_div4_table {
- struct clk_div_mult_table *div_mult_table;
- void (*kick)(struct clk *clk);
-};
-
-int sh_clk_div4_register(struct clk *clks, int nr,
- struct clk_div4_table *table);
-int sh_clk_div4_enable_register(struct clk *clks, int nr,
- struct clk_div4_table *table);
-int sh_clk_div4_reparent_register(struct clk *clks, int nr,
- struct clk_div4_table *table);
-
-#define SH_CLK_DIV6_EXT(_reg, _flags, _parents, \
- _num_parents, _src_shift, _src_width) \
-{ \
- .enable_reg = (void __iomem *)_reg, \
- .flags = _flags, \
- .parent_table = _parents, \
- .parent_num = _num_parents, \
- .src_shift = _src_shift, \
- .src_width = _src_width, \
-}
-
-#define SH_CLK_DIV6(_parent, _reg, _flags) \
-{ \
- .parent = _parent, \
- .enable_reg = (void __iomem *)_reg, \
- .flags = _flags, \
-}
-
-int sh_clk_div6_register(struct clk *clks, int nr);
-int sh_clk_div6_reparent_register(struct clk *clks, int nr);
-
-#define CLKDEV_CON_ID(_id, _clk) { .con_id = _id, .clk = _clk }
-#define CLKDEV_DEV_ID(_id, _clk) { .dev_id = _id, .clk = _clk }
-#define CLKDEV_ICK_ID(_cid, _did, _clk) { .con_id = _cid, .dev_id = _did, .clk = _clk }
-
-#endif /* __SH_CLOCK_H */
diff --git a/ANDROID_3.4.5/include/linux/sh_dma.h b/ANDROID_3.4.5/include/linux/sh_dma.h
deleted file mode 100644
index 425450b9..00000000
--- a/ANDROID_3.4.5/include/linux/sh_dma.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Header for the new SH dmaengine driver
- *
- * Copyright (C) 2010 Guennadi Liakhovetski <g.liakhovetski@gmx.de>
- *
- * 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.
- */
-#ifndef SH_DMA_H
-#define SH_DMA_H
-
-#include <linux/list.h>
-#include <linux/dmaengine.h>
-
-/* Used by slave DMA clients to request DMA to/from a specific peripheral */
-struct sh_dmae_slave {
- unsigned int slave_id; /* Set by the platform */
- struct device *dma_dev; /* Set by the platform */
- const struct sh_dmae_slave_config *config; /* Set by the driver */
-};
-
-struct sh_dmae_regs {
- u32 sar; /* SAR / source address */
- u32 dar; /* DAR / destination address */
- u32 tcr; /* TCR / transfer count */
-};
-
-struct sh_desc {
- struct sh_dmae_regs hw;
- struct list_head node;
- struct dma_async_tx_descriptor async_tx;
- enum dma_transfer_direction direction;
- dma_cookie_t cookie;
- size_t partial;
- int chunks;
- int mark;
-};
-
-struct sh_dmae_slave_config {
- unsigned int slave_id;
- dma_addr_t addr;
- u32 chcr;
- char mid_rid;
-};
-
-struct sh_dmae_channel {
- unsigned int offset;
- unsigned int dmars;
- unsigned int dmars_bit;
- unsigned int chclr_offset;
-};
-
-struct sh_dmae_pdata {
- const struct sh_dmae_slave_config *slave;
- int slave_num;
- const struct sh_dmae_channel *channel;
- int channel_num;
- unsigned int ts_low_shift;
- unsigned int ts_low_mask;
- unsigned int ts_high_shift;
- unsigned int ts_high_mask;
- const unsigned int *ts_shift;
- int ts_shift_num;
- u16 dmaor_init;
- unsigned int chcr_offset;
- u32 chcr_ie_bit;
-
- unsigned int dmaor_is_32bit:1;
- unsigned int needs_tend_set:1;
- unsigned int no_dmars:1;
- unsigned int chclr_present:1;
- unsigned int slave_only:1;
-};
-
-/* DMA register */
-#define SAR 0x00
-#define DAR 0x04
-#define TCR 0x08
-#define CHCR 0x0C
-#define DMAOR 0x40
-
-#define TEND 0x18 /* USB-DMAC */
-
-/* DMAOR definitions */
-#define DMAOR_AE 0x00000004
-#define DMAOR_NMIF 0x00000002
-#define DMAOR_DME 0x00000001
-
-/* Definitions for the SuperH DMAC */
-#define REQ_L 0x00000000
-#define REQ_E 0x00080000
-#define RACK_H 0x00000000
-#define RACK_L 0x00040000
-#define ACK_R 0x00000000
-#define ACK_W 0x00020000
-#define ACK_H 0x00000000
-#define ACK_L 0x00010000
-#define DM_INC 0x00004000
-#define DM_DEC 0x00008000
-#define DM_FIX 0x0000c000
-#define SM_INC 0x00001000
-#define SM_DEC 0x00002000
-#define SM_FIX 0x00003000
-#define RS_IN 0x00000200
-#define RS_OUT 0x00000300
-#define TS_BLK 0x00000040
-#define TM_BUR 0x00000020
-#define CHCR_DE 0x00000001
-#define CHCR_TE 0x00000002
-#define CHCR_IE 0x00000004
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/sh_eth.h b/ANDROID_3.4.5/include/linux/sh_eth.h
deleted file mode 100644
index b17d765d..00000000
--- a/ANDROID_3.4.5/include/linux/sh_eth.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef __ASM_SH_ETH_H__
-#define __ASM_SH_ETH_H__
-
-#include <linux/phy.h>
-
-enum {EDMAC_LITTLE_ENDIAN, EDMAC_BIG_ENDIAN};
-enum {
- SH_ETH_REG_GIGABIT,
- SH_ETH_REG_FAST_SH4,
- SH_ETH_REG_FAST_SH3_SH2
-};
-
-struct sh_eth_plat_data {
- int phy;
- int edmac_endian;
- int register_type;
- phy_interface_t phy_interface;
- void (*set_mdio_gate)(void *addr);
-
- unsigned char mac_addr[6];
- unsigned no_ether_link:1;
- unsigned ether_link_active_low:1;
- unsigned needs_init:1;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/sh_intc.h b/ANDROID_3.4.5/include/linux/sh_intc.h
deleted file mode 100644
index 6aed0805..00000000
--- a/ANDROID_3.4.5/include/linux/sh_intc.h
+++ /dev/null
@@ -1,150 +0,0 @@
-#ifndef __SH_INTC_H
-#define __SH_INTC_H
-
-#include <linux/ioport.h>
-
-#ifdef CONFIG_SUPERH
-#define INTC_NR_IRQS 512
-#else
-#define INTC_NR_IRQS 1024
-#endif
-
-/*
- * Convert back and forth between INTEVT and IRQ values.
- */
-#ifdef CONFIG_CPU_HAS_INTEVT
-#define evt2irq(evt) (((evt) >> 5) - 16)
-#define irq2evt(irq) (((irq) + 16) << 5)
-#else
-#define evt2irq(evt) (evt)
-#define irq2evt(irq) (irq)
-#endif
-
-typedef unsigned char intc_enum;
-
-struct intc_vect {
- intc_enum enum_id;
- unsigned short vect;
-};
-
-#define INTC_VECT(enum_id, vect) { enum_id, vect }
-#define INTC_IRQ(enum_id, irq) INTC_VECT(enum_id, irq2evt(irq))
-
-struct intc_group {
- intc_enum enum_id;
- intc_enum enum_ids[32];
-};
-
-#define INTC_GROUP(enum_id, ids...) { enum_id, { ids } }
-
-struct intc_subgroup {
- unsigned long reg, reg_width;
- intc_enum parent_id;
- intc_enum enum_ids[32];
-};
-
-struct intc_mask_reg {
- unsigned long set_reg, clr_reg, reg_width;
- intc_enum enum_ids[32];
-#ifdef CONFIG_INTC_BALANCING
- unsigned long dist_reg;
-#endif
-#ifdef CONFIG_SMP
- unsigned long smp;
-#endif
-};
-
-struct intc_prio_reg {
- unsigned long set_reg, clr_reg, reg_width, field_width;
- intc_enum enum_ids[16];
-#ifdef CONFIG_SMP
- unsigned long smp;
-#endif
-};
-
-struct intc_sense_reg {
- unsigned long reg, reg_width, field_width;
- intc_enum enum_ids[16];
-};
-
-#ifdef CONFIG_INTC_BALANCING
-#define INTC_SMP_BALANCING(reg) .dist_reg = (reg)
-#else
-#define INTC_SMP_BALANCING(reg)
-#endif
-
-#ifdef CONFIG_SMP
-#define INTC_SMP(stride, nr) .smp = (stride) | ((nr) << 8)
-#else
-#define INTC_SMP(stride, nr)
-#endif
-
-struct intc_hw_desc {
- struct intc_vect *vectors;
- unsigned int nr_vectors;
- struct intc_group *groups;
- unsigned int nr_groups;
- struct intc_mask_reg *mask_regs;
- unsigned int nr_mask_regs;
- struct intc_prio_reg *prio_regs;
- unsigned int nr_prio_regs;
- struct intc_sense_reg *sense_regs;
- unsigned int nr_sense_regs;
- struct intc_mask_reg *ack_regs;
- unsigned int nr_ack_regs;
- struct intc_subgroup *subgroups;
- unsigned int nr_subgroups;
-};
-
-#define _INTC_ARRAY(a) a, __same_type(a, NULL) ? 0 : sizeof(a)/sizeof(*a)
-
-#define INTC_HW_DESC(vectors, groups, mask_regs, \
- prio_regs, sense_regs, ack_regs) \
-{ \
- _INTC_ARRAY(vectors), _INTC_ARRAY(groups), \
- _INTC_ARRAY(mask_regs), _INTC_ARRAY(prio_regs), \
- _INTC_ARRAY(sense_regs), _INTC_ARRAY(ack_regs), \
-}
-
-struct intc_desc {
- char *name;
- struct resource *resource;
- unsigned int num_resources;
- intc_enum force_enable;
- intc_enum force_disable;
- bool skip_syscore_suspend;
- struct intc_hw_desc hw;
-};
-
-#define DECLARE_INTC_DESC(symbol, chipname, vectors, groups, \
- mask_regs, prio_regs, sense_regs) \
-struct intc_desc symbol __initdata = { \
- .name = chipname, \
- .hw = INTC_HW_DESC(vectors, groups, mask_regs, \
- prio_regs, sense_regs, NULL), \
-}
-
-#define DECLARE_INTC_DESC_ACK(symbol, chipname, vectors, groups, \
- mask_regs, prio_regs, sense_regs, ack_regs) \
-struct intc_desc symbol __initdata = { \
- .name = chipname, \
- .hw = INTC_HW_DESC(vectors, groups, mask_regs, \
- prio_regs, sense_regs, ack_regs), \
-}
-
-int register_intc_controller(struct intc_desc *desc);
-void reserve_intc_vectors(struct intc_vect *vectors, unsigned int nr_vecs);
-int intc_set_priority(unsigned int irq, unsigned int prio);
-int intc_irq_lookup(const char *chipname, intc_enum enum_id);
-void intc_finalize(void);
-
-#ifdef CONFIG_INTC_USERIMASK
-int register_intc_userimask(unsigned long addr);
-#else
-static inline int register_intc_userimask(unsigned long addr)
-{
- return 0;
-}
-#endif
-
-#endif /* __SH_INTC_H */
diff --git a/ANDROID_3.4.5/include/linux/sh_pfc.h b/ANDROID_3.4.5/include/linux/sh_pfc.h
deleted file mode 100644
index 5c15aed9..00000000
--- a/ANDROID_3.4.5/include/linux/sh_pfc.h
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * SuperH Pin Function Controller Support
- *
- * Copyright (c) 2008 Magnus Damm
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- */
-
-#ifndef __SH_PFC_H
-#define __SH_PFC_H
-
-#include <asm-generic/gpio.h>
-
-typedef unsigned short pinmux_enum_t;
-typedef unsigned short pinmux_flag_t;
-
-#define PINMUX_TYPE_NONE 0
-#define PINMUX_TYPE_FUNCTION 1
-#define PINMUX_TYPE_GPIO 2
-#define PINMUX_TYPE_OUTPUT 3
-#define PINMUX_TYPE_INPUT 4
-#define PINMUX_TYPE_INPUT_PULLUP 5
-#define PINMUX_TYPE_INPUT_PULLDOWN 6
-
-#define PINMUX_FLAG_TYPE (0x7)
-#define PINMUX_FLAG_WANT_PULLUP (1 << 3)
-#define PINMUX_FLAG_WANT_PULLDOWN (1 << 4)
-
-#define PINMUX_FLAG_DBIT_SHIFT 5
-#define PINMUX_FLAG_DBIT (0x1f << PINMUX_FLAG_DBIT_SHIFT)
-#define PINMUX_FLAG_DREG_SHIFT 10
-#define PINMUX_FLAG_DREG (0x3f << PINMUX_FLAG_DREG_SHIFT)
-
-struct pinmux_gpio {
- pinmux_enum_t enum_id;
- pinmux_flag_t flags;
-};
-
-#define PINMUX_GPIO(gpio, data_or_mark) [gpio] = { data_or_mark }
-#define PINMUX_DATA(data_or_mark, ids...) data_or_mark, ids, 0
-
-struct pinmux_cfg_reg {
- unsigned long reg, reg_width, field_width;
- unsigned long *cnt;
- pinmux_enum_t *enum_ids;
- unsigned long *var_field_width;
-};
-
-#define PINMUX_CFG_REG(name, r, r_width, f_width) \
- .reg = r, .reg_width = r_width, .field_width = f_width, \
- .cnt = (unsigned long [r_width / f_width]) {}, \
- .enum_ids = (pinmux_enum_t [(r_width / f_width) * (1 << f_width)])
-
-#define PINMUX_CFG_REG_VAR(name, r, r_width, var_fw0, var_fwn...) \
- .reg = r, .reg_width = r_width, \
- .cnt = (unsigned long [r_width]) {}, \
- .var_field_width = (unsigned long [r_width]) { var_fw0, var_fwn, 0 }, \
- .enum_ids = (pinmux_enum_t [])
-
-struct pinmux_data_reg {
- unsigned long reg, reg_width, reg_shadow;
- pinmux_enum_t *enum_ids;
- void __iomem *mapped_reg;
-};
-
-#define PINMUX_DATA_REG(name, r, r_width) \
- .reg = r, .reg_width = r_width, \
- .enum_ids = (pinmux_enum_t [r_width]) \
-
-struct pinmux_irq {
- int irq;
- pinmux_enum_t *enum_ids;
-};
-
-#define PINMUX_IRQ(irq_nr, ids...) \
- { .irq = irq_nr, .enum_ids = (pinmux_enum_t []) { ids, 0 } } \
-
-struct pinmux_range {
- pinmux_enum_t begin;
- pinmux_enum_t end;
- pinmux_enum_t force;
-};
-
-struct pfc_window {
- phys_addr_t phys;
- void __iomem *virt;
- unsigned long size;
-};
-
-struct pinmux_info {
- char *name;
- pinmux_enum_t reserved_id;
- struct pinmux_range data;
- struct pinmux_range input;
- struct pinmux_range input_pd;
- struct pinmux_range input_pu;
- struct pinmux_range output;
- struct pinmux_range mark;
- struct pinmux_range function;
-
- unsigned first_gpio, last_gpio;
-
- struct pinmux_gpio *gpios;
- struct pinmux_cfg_reg *cfg_regs;
- struct pinmux_data_reg *data_regs;
-
- pinmux_enum_t *gpio_data;
- unsigned int gpio_data_size;
-
- struct pinmux_irq *gpio_irq;
- unsigned int gpio_irq_size;
-
- struct resource *resource;
- unsigned int num_resources;
- struct pfc_window *window;
-
- unsigned long unlock_reg;
-
- struct gpio_chip chip;
-};
-
-int register_pinmux(struct pinmux_info *pip);
-int unregister_pinmux(struct pinmux_info *pip);
-
-/* helper macro for port */
-#define PORT_1(fn, pfx, sfx) fn(pfx, sfx)
-
-#define PORT_10(fn, pfx, sfx) \
- PORT_1(fn, pfx##0, sfx), PORT_1(fn, pfx##1, sfx), \
- PORT_1(fn, pfx##2, sfx), PORT_1(fn, pfx##3, sfx), \
- PORT_1(fn, pfx##4, sfx), PORT_1(fn, pfx##5, sfx), \
- PORT_1(fn, pfx##6, sfx), PORT_1(fn, pfx##7, sfx), \
- PORT_1(fn, pfx##8, sfx), PORT_1(fn, pfx##9, sfx)
-
-#define PORT_90(fn, pfx, sfx) \
- PORT_10(fn, pfx##1, sfx), PORT_10(fn, pfx##2, sfx), \
- PORT_10(fn, pfx##3, sfx), PORT_10(fn, pfx##4, sfx), \
- PORT_10(fn, pfx##5, sfx), PORT_10(fn, pfx##6, sfx), \
- PORT_10(fn, pfx##7, sfx), PORT_10(fn, pfx##8, sfx), \
- PORT_10(fn, pfx##9, sfx)
-
-#define _PORT_ALL(pfx, sfx) pfx##_##sfx
-#define _GPIO_PORT(pfx, sfx) PINMUX_GPIO(GPIO_PORT##pfx, PORT##pfx##_DATA)
-#define PORT_ALL(str) CPU_ALL_PORT(_PORT_ALL, PORT, str)
-#define GPIO_PORT_ALL() CPU_ALL_PORT(_GPIO_PORT, , unused)
-#define GPIO_FN(str) PINMUX_GPIO(GPIO_FN_##str, str##_MARK)
-
-/* helper macro for pinmux_enum_t */
-#define PORT_DATA_I(nr) \
- PINMUX_DATA(PORT##nr##_DATA, PORT##nr##_FN0, PORT##nr##_IN)
-
-#define PORT_DATA_I_PD(nr) \
- PINMUX_DATA(PORT##nr##_DATA, PORT##nr##_FN0, \
- PORT##nr##_IN, PORT##nr##_IN_PD)
-
-#define PORT_DATA_I_PU(nr) \
- PINMUX_DATA(PORT##nr##_DATA, PORT##nr##_FN0, \
- PORT##nr##_IN, PORT##nr##_IN_PU)
-
-#define PORT_DATA_I_PU_PD(nr) \
- PINMUX_DATA(PORT##nr##_DATA, PORT##nr##_FN0, \
- PORT##nr##_IN, PORT##nr##_IN_PD, PORT##nr##_IN_PU)
-
-#define PORT_DATA_O(nr) \
- PINMUX_DATA(PORT##nr##_DATA, PORT##nr##_FN0, PORT##nr##_OUT)
-
-#define PORT_DATA_IO(nr) \
- PINMUX_DATA(PORT##nr##_DATA, PORT##nr##_FN0, PORT##nr##_OUT, \
- PORT##nr##_IN)
-
-#define PORT_DATA_IO_PD(nr) \
- PINMUX_DATA(PORT##nr##_DATA, PORT##nr##_FN0, PORT##nr##_OUT, \
- PORT##nr##_IN, PORT##nr##_IN_PD)
-
-#define PORT_DATA_IO_PU(nr) \
- PINMUX_DATA(PORT##nr##_DATA, PORT##nr##_FN0, PORT##nr##_OUT, \
- PORT##nr##_IN, PORT##nr##_IN_PU)
-
-#define PORT_DATA_IO_PU_PD(nr) \
- PINMUX_DATA(PORT##nr##_DATA, PORT##nr##_FN0, PORT##nr##_OUT, \
- PORT##nr##_IN, PORT##nr##_IN_PD, PORT##nr##_IN_PU)
-
-/* helper macro for top 4 bits in PORTnCR */
-#define _PCRH(in, in_pd, in_pu, out) \
- 0, (out), (in), 0, \
- 0, 0, 0, 0, \
- 0, 0, (in_pd), 0, \
- 0, 0, (in_pu), 0
-
-#define PORTCR(nr, reg) \
- { \
- PINMUX_CFG_REG("PORT" nr "CR", reg, 8, 4) { \
- _PCRH(PORT##nr##_IN, PORT##nr##_IN_PD, \
- PORT##nr##_IN_PU, PORT##nr##_OUT), \
- PORT##nr##_FN0, PORT##nr##_FN1, \
- PORT##nr##_FN2, PORT##nr##_FN3, \
- PORT##nr##_FN4, PORT##nr##_FN5, \
- PORT##nr##_FN6, PORT##nr##_FN7 } \
- }
-
-#endif /* __SH_PFC_H */
diff --git a/ANDROID_3.4.5/include/linux/sh_timer.h b/ANDROID_3.4.5/include/linux/sh_timer.h
deleted file mode 100644
index 4d9dcd13..00000000
--- a/ANDROID_3.4.5/include/linux/sh_timer.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef __SH_TIMER_H__
-#define __SH_TIMER_H__
-
-struct sh_timer_config {
- char *name;
- long channel_offset;
- int timer_bit;
- unsigned long clockevent_rating;
- unsigned long clocksource_rating;
-};
-
-#endif /* __SH_TIMER_H__ */
diff --git a/ANDROID_3.4.5/include/linux/sha256.h b/ANDROID_3.4.5/include/linux/sha256.h
deleted file mode 100644
index cf883a2e..00000000
--- a/ANDROID_3.4.5/include/linux/sha256.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef _SHA256_H
-#define _SHA256_H
-
-#ifndef uint8
-#define uint8 unsigned char
-#endif
-
-#ifndef uint32
-#define uint32 unsigned long int
-#endif
-
-typedef struct
-{
- uint32 total[2];
- uint32 state[8];
- uint8 buffer[64];
-}
-sha256_context;
-
-void sha256_starts( sha256_context *ctx );
-void sha256_update( sha256_context *ctx, uint8 *input, uint32 length );
-void sha256_finish( sha256_context *ctx, uint8 digest[32] );
-
-#endif /* sha256.h */
-
diff --git a/ANDROID_3.4.5/include/linux/shm.h b/ANDROID_3.4.5/include/linux/shm.h
deleted file mode 100644
index 92808b86..00000000
--- a/ANDROID_3.4.5/include/linux/shm.h
+++ /dev/null
@@ -1,130 +0,0 @@
-#ifndef _LINUX_SHM_H_
-#define _LINUX_SHM_H_
-
-#include <linux/ipc.h>
-#include <linux/errno.h>
-#ifdef __KERNEL__
-#include <asm/page.h>
-#else
-#include <unistd.h>
-#endif
-
-/*
- * SHMMAX, SHMMNI and SHMALL are upper limits are defaults which can
- * be increased by sysctl
- */
-
-#define SHMMAX 0x2000000 /* max shared seg size (bytes) */
-#define SHMMIN 1 /* min shared seg size (bytes) */
-#define SHMMNI 4096 /* max num of segs system wide */
-#ifdef __KERNEL__
-#define SHMALL (SHMMAX/PAGE_SIZE*(SHMMNI/16)) /* max shm system wide (pages) */
-#else
-#define SHMALL (SHMMAX/getpagesize()*(SHMMNI/16))
-#endif
-#define SHMSEG SHMMNI /* max shared segs per process */
-
-#ifdef __KERNEL__
-#include <asm/shmparam.h>
-#endif
-
-/* Obsolete, used only for backwards compatibility and libc5 compiles */
-struct shmid_ds {
- struct ipc_perm shm_perm; /* operation perms */
- int shm_segsz; /* size of segment (bytes) */
- __kernel_time_t shm_atime; /* last attach time */
- __kernel_time_t shm_dtime; /* last detach time */
- __kernel_time_t shm_ctime; /* last change time */
- __kernel_ipc_pid_t shm_cpid; /* pid of creator */
- __kernel_ipc_pid_t shm_lpid; /* pid of last operator */
- unsigned short shm_nattch; /* no. of current attaches */
- unsigned short shm_unused; /* compatibility */
- void *shm_unused2; /* ditto - used by DIPC */
- void *shm_unused3; /* unused */
-};
-
-/* Include the definition of shmid64_ds and shminfo64 */
-#include <asm/shmbuf.h>
-
-/* permission flag for shmget */
-#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */
-#define SHM_W 0200 /* or S_IWUGO from <linux/stat.h> */
-
-/* mode for attach */
-#define SHM_RDONLY 010000 /* read-only access */
-#define SHM_RND 020000 /* round attach address to SHMLBA boundary */
-#define SHM_REMAP 040000 /* take-over region on attach */
-#define SHM_EXEC 0100000 /* execution access */
-
-/* super user shmctl commands */
-#define SHM_LOCK 11
-#define SHM_UNLOCK 12
-
-/* ipcs ctl commands */
-#define SHM_STAT 13
-#define SHM_INFO 14
-
-/* Obsolete, used only for backwards compatibility */
-struct shminfo {
- int shmmax;
- int shmmin;
- int shmmni;
- int shmseg;
- int shmall;
-};
-
-struct shm_info {
- int used_ids;
- unsigned long shm_tot; /* total allocated shm */
- unsigned long shm_rss; /* total resident shm */
- unsigned long shm_swp; /* total swapped shm */
- unsigned long swap_attempts;
- unsigned long swap_successes;
-};
-
-#ifdef __KERNEL__
-struct shmid_kernel /* private to the kernel */
-{
- struct kern_ipc_perm shm_perm;
- struct file * shm_file;
- unsigned long shm_nattch;
- unsigned long shm_segsz;
- time_t shm_atim;
- time_t shm_dtim;
- time_t shm_ctim;
- pid_t shm_cprid;
- pid_t shm_lprid;
- struct user_struct *mlock_user;
-
- /* The task created the shm object. NULL if the task is dead. */
- struct task_struct *shm_creator;
-};
-
-/* shm_mode upper byte flags */
-#define SHM_DEST 01000 /* segment will be destroyed on last detach */
-#define SHM_LOCKED 02000 /* segment will not be swapped */
-#define SHM_HUGETLB 04000 /* segment will use huge TLB pages */
-#define SHM_NORESERVE 010000 /* don't check for reservations */
-
-#ifdef CONFIG_SYSVIPC
-long do_shmat(int shmid, char __user *shmaddr, int shmflg, unsigned long *addr);
-extern int is_file_shm_hugepages(struct file *file);
-extern void exit_shm(struct task_struct *task);
-#else
-static inline long do_shmat(int shmid, char __user *shmaddr,
- int shmflg, unsigned long *addr)
-{
- return -ENOSYS;
-}
-static inline int is_file_shm_hugepages(struct file *file)
-{
- return 0;
-}
-static inline void exit_shm(struct task_struct *task)
-{
-}
-#endif
-
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_SHM_H_ */
diff --git a/ANDROID_3.4.5/include/linux/shmem_fs.h b/ANDROID_3.4.5/include/linux/shmem_fs.h
deleted file mode 100644
index 79ab2555..00000000
--- a/ANDROID_3.4.5/include/linux/shmem_fs.h
+++ /dev/null
@@ -1,64 +0,0 @@
-#ifndef __SHMEM_FS_H
-#define __SHMEM_FS_H
-
-#include <linux/swap.h>
-#include <linux/mempolicy.h>
-#include <linux/pagemap.h>
-#include <linux/percpu_counter.h>
-
-/* inode in-kernel data */
-
-struct shmem_inode_info {
- spinlock_t lock;
- unsigned long flags;
- unsigned long alloced; /* data pages alloced to file */
- union {
- unsigned long swapped; /* subtotal assigned to swap */
- char *symlink; /* unswappable short symlink */
- };
- struct shared_policy policy; /* NUMA memory alloc policy */
- struct list_head swaplist; /* chain of maybes on swap */
- struct list_head xattr_list; /* list of shmem_xattr */
- struct inode vfs_inode;
-};
-
-struct shmem_sb_info {
- unsigned long max_blocks; /* How many blocks are allowed */
- struct percpu_counter used_blocks; /* How many are allocated */
- unsigned long max_inodes; /* How many inodes are allowed */
- unsigned long free_inodes; /* How many are left for allocation */
- spinlock_t stat_lock; /* Serialize shmem_sb_info changes */
- uid_t uid; /* Mount uid for root directory */
- gid_t gid; /* Mount gid for root directory */
- umode_t mode; /* Mount mode for root directory */
- struct mempolicy *mpol; /* default memory policy for mappings */
-};
-
-static inline struct shmem_inode_info *SHMEM_I(struct inode *inode)
-{
- return container_of(inode, struct shmem_inode_info, vfs_inode);
-}
-
-/*
- * Functions in mm/shmem.c called directly from elsewhere:
- */
-extern int shmem_init(void);
-extern int shmem_fill_super(struct super_block *sb, void *data, int silent);
-extern struct file *shmem_file_setup(const char *name,
- loff_t size, unsigned long flags);
-extern int shmem_zero_setup(struct vm_area_struct *);
-extern int shmem_lock(struct file *file, int lock, struct user_struct *user);
-extern void shmem_unlock_mapping(struct address_space *mapping);
-extern struct page *shmem_read_mapping_page_gfp(struct address_space *mapping,
- pgoff_t index, gfp_t gfp_mask);
-extern void shmem_truncate_range(struct inode *inode, loff_t start, loff_t end);
-extern int shmem_unuse(swp_entry_t entry, struct page *page);
-
-static inline struct page *shmem_read_mapping_page(
- struct address_space *mapping, pgoff_t index)
-{
- return shmem_read_mapping_page_gfp(mapping, index,
- mapping_gfp_mask(mapping));
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/shrinker.h b/ANDROID_3.4.5/include/linux/shrinker.h
deleted file mode 100644
index 07ceb97d..00000000
--- a/ANDROID_3.4.5/include/linux/shrinker.h
+++ /dev/null
@@ -1,43 +0,0 @@
-#ifndef _LINUX_SHRINKER_H
-#define _LINUX_SHRINKER_H
-
-/*
- * This struct is used to pass information from page reclaim to the shrinkers.
- * We consolidate the values for easier extention later.
- */
-struct shrink_control {
- gfp_t gfp_mask;
-
- /* How many slab objects shrinker() should scan and try to reclaim */
- unsigned long nr_to_scan;
-};
-
-/*
- * A callback you can register to apply pressure to ageable caches.
- *
- * 'sc' is passed shrink_control which includes a count 'nr_to_scan'
- * and a 'gfpmask'. It should look through the least-recently-used
- * 'nr_to_scan' entries and attempt to free them up. It should return
- * the number of objects which remain in the cache. If it returns -1, it means
- * it cannot do any scanning at this time (eg. there is a risk of deadlock).
- * The callback must not return -1 if nr_to_scan is zero.
- *
- * The 'gfpmask' refers to the allocation we are currently trying to
- * fulfil.
- *
- * Note that 'shrink' will be passed nr_to_scan == 0 when the VM is
- * querying the cache size, so a fastpath for that case is appropriate.
- */
-struct shrinker {
- int (*shrink)(struct shrinker *, struct shrink_control *sc);
- int seeks; /* seeks to recreate an obj */
- long batch; /* reclaim batch size, 0 = default */
-
- /* These are for internal use */
- struct list_head list;
- atomic_long_t nr_in_batch; /* objs pending delete */
-};
-#define DEFAULT_SEEKS 2 /* A good number if you don't know better. */
-extern void register_shrinker(struct shrinker *);
-extern void unregister_shrinker(struct shrinker *);
-#endif
diff --git a/ANDROID_3.4.5/include/linux/sht15.h b/ANDROID_3.4.5/include/linux/sht15.h
deleted file mode 100644
index f85c7c52..00000000
--- a/ANDROID_3.4.5/include/linux/sht15.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * sht15.h - support for the SHT15 Temperature and Humidity Sensor
- *
- * Copyright (c) 2009 Jonathan Cameron
- *
- * Copyright (c) 2007 Wouter Horre
- *
- * 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.
- *
- * For further information, see the Documentation/hwmon/sht15 file.
- */
-
-/**
- * struct sht15_platform_data - sht15 connectivity info
- * @gpio_data: no. of gpio to which bidirectional data line is
- * connected.
- * @gpio_sck: no. of gpio to which the data clock is connected.
- * @supply_mv: supply voltage in mv. Overridden by regulator if
- * available.
- * @checksum: flag to indicate the checksum should be validated.
- * @no_otp_reload: flag to indicate no reload from OTP.
- * @low_resolution: flag to indicate the temp/humidity resolution to use.
- */
-struct sht15_platform_data {
- int gpio_data;
- int gpio_sck;
- int supply_mv;
- bool checksum;
- bool no_otp_reload;
- bool low_resolution;
-};
-
diff --git a/ANDROID_3.4.5/include/linux/signal.h b/ANDROID_3.4.5/include/linux/signal.h
deleted file mode 100644
index 7987ce74..00000000
--- a/ANDROID_3.4.5/include/linux/signal.h
+++ /dev/null
@@ -1,391 +0,0 @@
-#ifndef _LINUX_SIGNAL_H
-#define _LINUX_SIGNAL_H
-
-#include <asm/signal.h>
-#include <asm/siginfo.h>
-
-#ifdef __KERNEL__
-#include <linux/list.h>
-
-struct task_struct;
-
-/* for sysctl */
-extern int print_fatal_signals;
-/*
- * Real Time signals may be queued.
- */
-
-struct sigqueue {
- struct list_head list;
- int flags;
- siginfo_t info;
- struct user_struct *user;
-};
-
-/* flags values. */
-#define SIGQUEUE_PREALLOC 1
-
-struct sigpending {
- struct list_head list;
- sigset_t signal;
-};
-
-/*
- * Define some primitives to manipulate sigset_t.
- */
-
-#ifndef __HAVE_ARCH_SIG_BITOPS
-#include <linux/bitops.h>
-
-/* We don't use <linux/bitops.h> for these because there is no need to
- be atomic. */
-static inline void sigaddset(sigset_t *set, int _sig)
-{
- unsigned long sig = _sig - 1;
- if (_NSIG_WORDS == 1)
- set->sig[0] |= 1UL << sig;
- else
- set->sig[sig / _NSIG_BPW] |= 1UL << (sig % _NSIG_BPW);
-}
-
-static inline void sigdelset(sigset_t *set, int _sig)
-{
- unsigned long sig = _sig - 1;
- if (_NSIG_WORDS == 1)
- set->sig[0] &= ~(1UL << sig);
- else
- set->sig[sig / _NSIG_BPW] &= ~(1UL << (sig % _NSIG_BPW));
-}
-
-static inline int sigismember(sigset_t *set, int _sig)
-{
- unsigned long sig = _sig - 1;
- if (_NSIG_WORDS == 1)
- return 1 & (set->sig[0] >> sig);
- else
- return 1 & (set->sig[sig / _NSIG_BPW] >> (sig % _NSIG_BPW));
-}
-
-static inline int sigfindinword(unsigned long word)
-{
- return ffz(~word);
-}
-
-#endif /* __HAVE_ARCH_SIG_BITOPS */
-
-static inline int sigisemptyset(sigset_t *set)
-{
- extern void _NSIG_WORDS_is_unsupported_size(void);
- switch (_NSIG_WORDS) {
- case 4:
- return (set->sig[3] | set->sig[2] |
- set->sig[1] | set->sig[0]) == 0;
- case 2:
- return (set->sig[1] | set->sig[0]) == 0;
- case 1:
- return set->sig[0] == 0;
- default:
- _NSIG_WORDS_is_unsupported_size();
- return 0;
- }
-}
-
-#define sigmask(sig) (1UL << ((sig) - 1))
-
-#ifndef __HAVE_ARCH_SIG_SETOPS
-#include <linux/string.h>
-
-#define _SIG_SET_BINOP(name, op) \
-static inline void name(sigset_t *r, const sigset_t *a, const sigset_t *b) \
-{ \
- extern void _NSIG_WORDS_is_unsupported_size(void); \
- unsigned long a0, a1, a2, a3, b0, b1, b2, b3; \
- \
- switch (_NSIG_WORDS) { \
- case 4: \
- a3 = a->sig[3]; a2 = a->sig[2]; \
- b3 = b->sig[3]; b2 = b->sig[2]; \
- r->sig[3] = op(a3, b3); \
- r->sig[2] = op(a2, b2); \
- case 2: \
- a1 = a->sig[1]; b1 = b->sig[1]; \
- r->sig[1] = op(a1, b1); \
- case 1: \
- a0 = a->sig[0]; b0 = b->sig[0]; \
- r->sig[0] = op(a0, b0); \
- break; \
- default: \
- _NSIG_WORDS_is_unsupported_size(); \
- } \
-}
-
-#define _sig_or(x,y) ((x) | (y))
-_SIG_SET_BINOP(sigorsets, _sig_or)
-
-#define _sig_and(x,y) ((x) & (y))
-_SIG_SET_BINOP(sigandsets, _sig_and)
-
-#define _sig_andn(x,y) ((x) & ~(y))
-_SIG_SET_BINOP(sigandnsets, _sig_andn)
-
-#undef _SIG_SET_BINOP
-#undef _sig_or
-#undef _sig_and
-#undef _sig_andn
-
-#define _SIG_SET_OP(name, op) \
-static inline void name(sigset_t *set) \
-{ \
- extern void _NSIG_WORDS_is_unsupported_size(void); \
- \
- switch (_NSIG_WORDS) { \
- case 4: set->sig[3] = op(set->sig[3]); \
- set->sig[2] = op(set->sig[2]); \
- case 2: set->sig[1] = op(set->sig[1]); \
- case 1: set->sig[0] = op(set->sig[0]); \
- break; \
- default: \
- _NSIG_WORDS_is_unsupported_size(); \
- } \
-}
-
-#define _sig_not(x) (~(x))
-_SIG_SET_OP(signotset, _sig_not)
-
-#undef _SIG_SET_OP
-#undef _sig_not
-
-static inline void sigemptyset(sigset_t *set)
-{
- switch (_NSIG_WORDS) {
- default:
- memset(set, 0, sizeof(sigset_t));
- break;
- case 2: set->sig[1] = 0;
- case 1: set->sig[0] = 0;
- break;
- }
-}
-
-static inline void sigfillset(sigset_t *set)
-{
- switch (_NSIG_WORDS) {
- default:
- memset(set, -1, sizeof(sigset_t));
- break;
- case 2: set->sig[1] = -1;
- case 1: set->sig[0] = -1;
- break;
- }
-}
-
-/* Some extensions for manipulating the low 32 signals in particular. */
-
-static inline void sigaddsetmask(sigset_t *set, unsigned long mask)
-{
- set->sig[0] |= mask;
-}
-
-static inline void sigdelsetmask(sigset_t *set, unsigned long mask)
-{
- set->sig[0] &= ~mask;
-}
-
-static inline int sigtestsetmask(sigset_t *set, unsigned long mask)
-{
- return (set->sig[0] & mask) != 0;
-}
-
-static inline void siginitset(sigset_t *set, unsigned long mask)
-{
- set->sig[0] = mask;
- switch (_NSIG_WORDS) {
- default:
- memset(&set->sig[1], 0, sizeof(long)*(_NSIG_WORDS-1));
- break;
- case 2: set->sig[1] = 0;
- case 1: ;
- }
-}
-
-static inline void siginitsetinv(sigset_t *set, unsigned long mask)
-{
- set->sig[0] = ~mask;
- switch (_NSIG_WORDS) {
- default:
- memset(&set->sig[1], -1, sizeof(long)*(_NSIG_WORDS-1));
- break;
- case 2: set->sig[1] = -1;
- case 1: ;
- }
-}
-
-#endif /* __HAVE_ARCH_SIG_SETOPS */
-
-static inline void init_sigpending(struct sigpending *sig)
-{
- sigemptyset(&sig->signal);
- INIT_LIST_HEAD(&sig->list);
-}
-
-extern void flush_sigqueue(struct sigpending *queue);
-
-/* Test if 'sig' is valid signal. Use this instead of testing _NSIG directly */
-static inline int valid_signal(unsigned long sig)
-{
- return sig <= _NSIG ? 1 : 0;
-}
-
-struct timespec;
-struct pt_regs;
-
-extern int next_signal(struct sigpending *pending, sigset_t *mask);
-extern int do_send_sig_info(int sig, struct siginfo *info,
- struct task_struct *p, bool group);
-extern int group_send_sig_info(int sig, struct siginfo *info, struct task_struct *p);
-extern int __group_send_sig_info(int, struct siginfo *, struct task_struct *);
-extern long do_rt_tgsigqueueinfo(pid_t tgid, pid_t pid, int sig,
- siginfo_t *info);
-extern long do_sigpending(void __user *, unsigned long);
-extern int do_sigtimedwait(const sigset_t *, siginfo_t *,
- const struct timespec *);
-extern int sigprocmask(int, sigset_t *, sigset_t *);
-extern void set_current_blocked(const sigset_t *);
-extern int show_unhandled_signals;
-
-extern int get_signal_to_deliver(siginfo_t *info, struct k_sigaction *return_ka, struct pt_regs *regs, void *cookie);
-extern void block_sigmask(struct k_sigaction *ka, int signr);
-extern void exit_signals(struct task_struct *tsk);
-
-extern struct kmem_cache *sighand_cachep;
-
-int unhandled_signal(struct task_struct *tsk, int sig);
-
-/*
- * In POSIX a signal is sent either to a specific thread (Linux task)
- * or to the process as a whole (Linux thread group). How the signal
- * is sent determines whether it's to one thread or the whole group,
- * which determines which signal mask(s) are involved in blocking it
- * from being delivered until later. When the signal is delivered,
- * either it's caught or ignored by a user handler or it has a default
- * effect that applies to the whole thread group (POSIX process).
- *
- * The possible effects an unblocked signal set to SIG_DFL can have are:
- * ignore - Nothing Happens
- * terminate - kill the process, i.e. all threads in the group,
- * similar to exit_group. The group leader (only) reports
- * WIFSIGNALED status to its parent.
- * coredump - write a core dump file describing all threads using
- * the same mm and then kill all those threads
- * stop - stop all the threads in the group, i.e. TASK_STOPPED state
- *
- * SIGKILL and SIGSTOP cannot be caught, blocked, or ignored.
- * Other signals when not blocked and set to SIG_DFL behaves as follows.
- * The job control signals also have other special effects.
- *
- * +--------------------+------------------+
- * | POSIX signal | default action |
- * +--------------------+------------------+
- * | SIGHUP | terminate |
- * | SIGINT | terminate |
- * | SIGQUIT | coredump |
- * | SIGILL | coredump |
- * | SIGTRAP | coredump |
- * | SIGABRT/SIGIOT | coredump |
- * | SIGBUS | coredump |
- * | SIGFPE | coredump |
- * | SIGKILL | terminate(+) |
- * | SIGUSR1 | terminate |
- * | SIGSEGV | coredump |
- * | SIGUSR2 | terminate |
- * | SIGPIPE | terminate |
- * | SIGALRM | terminate |
- * | SIGTERM | terminate |
- * | SIGCHLD | ignore |
- * | SIGCONT | ignore(*) |
- * | SIGSTOP | stop(*)(+) |
- * | SIGTSTP | stop(*) |
- * | SIGTTIN | stop(*) |
- * | SIGTTOU | stop(*) |
- * | SIGURG | ignore |
- * | SIGXCPU | coredump |
- * | SIGXFSZ | coredump |
- * | SIGVTALRM | terminate |
- * | SIGPROF | terminate |
- * | SIGPOLL/SIGIO | terminate |
- * | SIGSYS/SIGUNUSED | coredump |
- * | SIGSTKFLT | terminate |
- * | SIGWINCH | ignore |
- * | SIGPWR | terminate |
- * | SIGRTMIN-SIGRTMAX | terminate |
- * +--------------------+------------------+
- * | non-POSIX signal | default action |
- * +--------------------+------------------+
- * | SIGEMT | coredump |
- * +--------------------+------------------+
- *
- * (+) For SIGKILL and SIGSTOP the action is "always", not just "default".
- * (*) Special job control effects:
- * When SIGCONT is sent, it resumes the process (all threads in the group)
- * from TASK_STOPPED state and also clears any pending/queued stop signals
- * (any of those marked with "stop(*)"). This happens regardless of blocking,
- * catching, or ignoring SIGCONT. When any stop signal is sent, it clears
- * any pending/queued SIGCONT signals; this happens regardless of blocking,
- * catching, or ignored the stop signal, though (except for SIGSTOP) the
- * default action of stopping the process may happen later or never.
- */
-
-#ifdef SIGEMT
-#define SIGEMT_MASK rt_sigmask(SIGEMT)
-#else
-#define SIGEMT_MASK 0
-#endif
-
-#if SIGRTMIN > BITS_PER_LONG
-#define rt_sigmask(sig) (1ULL << ((sig)-1))
-#else
-#define rt_sigmask(sig) sigmask(sig)
-#endif
-#define siginmask(sig, mask) (rt_sigmask(sig) & (mask))
-
-#define SIG_KERNEL_ONLY_MASK (\
- rt_sigmask(SIGKILL) | rt_sigmask(SIGSTOP))
-
-#define SIG_KERNEL_STOP_MASK (\
- rt_sigmask(SIGSTOP) | rt_sigmask(SIGTSTP) | \
- rt_sigmask(SIGTTIN) | rt_sigmask(SIGTTOU) )
-
-#define SIG_KERNEL_COREDUMP_MASK (\
- rt_sigmask(SIGQUIT) | rt_sigmask(SIGILL) | \
- rt_sigmask(SIGTRAP) | rt_sigmask(SIGABRT) | \
- rt_sigmask(SIGFPE) | rt_sigmask(SIGSEGV) | \
- rt_sigmask(SIGBUS) | rt_sigmask(SIGSYS) | \
- rt_sigmask(SIGXCPU) | rt_sigmask(SIGXFSZ) | \
- SIGEMT_MASK )
-
-#define SIG_KERNEL_IGNORE_MASK (\
- rt_sigmask(SIGCONT) | rt_sigmask(SIGCHLD) | \
- rt_sigmask(SIGWINCH) | rt_sigmask(SIGURG) )
-
-#define sig_kernel_only(sig) \
- (((sig) < SIGRTMIN) && siginmask(sig, SIG_KERNEL_ONLY_MASK))
-#define sig_kernel_coredump(sig) \
- (((sig) < SIGRTMIN) && siginmask(sig, SIG_KERNEL_COREDUMP_MASK))
-#define sig_kernel_ignore(sig) \
- (((sig) < SIGRTMIN) && siginmask(sig, SIG_KERNEL_IGNORE_MASK))
-#define sig_kernel_stop(sig) \
- (((sig) < SIGRTMIN) && siginmask(sig, SIG_KERNEL_STOP_MASK))
-
-#define sig_user_defined(t, signr) \
- (((t)->sighand->action[(signr)-1].sa.sa_handler != SIG_DFL) && \
- ((t)->sighand->action[(signr)-1].sa.sa_handler != SIG_IGN))
-
-#define sig_fatal(t, signr) \
- (!siginmask(signr, SIG_KERNEL_IGNORE_MASK|SIG_KERNEL_STOP_MASK) && \
- (t)->sighand->action[(signr)-1].sa.sa_handler == SIG_DFL)
-
-void signals_init(void);
-
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_SIGNAL_H */
diff --git a/ANDROID_3.4.5/include/linux/signalfd.h b/ANDROID_3.4.5/include/linux/signalfd.h
deleted file mode 100644
index 247399b2..00000000
--- a/ANDROID_3.4.5/include/linux/signalfd.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * include/linux/signalfd.h
- *
- * Copyright (C) 2007 Davide Libenzi <davidel@xmailserver.org>
- *
- */
-
-#ifndef _LINUX_SIGNALFD_H
-#define _LINUX_SIGNALFD_H
-
-#include <linux/types.h>
-/* For O_CLOEXEC and O_NONBLOCK */
-#include <linux/fcntl.h>
-
-/* Flags for signalfd4. */
-#define SFD_CLOEXEC O_CLOEXEC
-#define SFD_NONBLOCK O_NONBLOCK
-
-struct signalfd_siginfo {
- __u32 ssi_signo;
- __s32 ssi_errno;
- __s32 ssi_code;
- __u32 ssi_pid;
- __u32 ssi_uid;
- __s32 ssi_fd;
- __u32 ssi_tid;
- __u32 ssi_band;
- __u32 ssi_overrun;
- __u32 ssi_trapno;
- __s32 ssi_status;
- __s32 ssi_int;
- __u64 ssi_ptr;
- __u64 ssi_utime;
- __u64 ssi_stime;
- __u64 ssi_addr;
- __u16 ssi_addr_lsb;
-
- /*
- * Pad strcture to 128 bytes. Remember to update the
- * pad size when you add new members. We use a fixed
- * size structure to avoid compatibility problems with
- * future versions, and we leave extra space for additional
- * members. We use fixed size members because this strcture
- * comes out of a read(2) and we really don't want to have
- * a compat on read(2).
- */
- __u8 __pad[46];
-};
-
-
-#ifdef __KERNEL__
-
-#ifdef CONFIG_SIGNALFD
-
-/*
- * Deliver the signal to listening signalfd.
- */
-static inline void signalfd_notify(struct task_struct *tsk, int sig)
-{
- if (unlikely(waitqueue_active(&tsk->sighand->signalfd_wqh)))
- wake_up(&tsk->sighand->signalfd_wqh);
-}
-
-extern void signalfd_cleanup(struct sighand_struct *sighand);
-
-#else /* CONFIG_SIGNALFD */
-
-static inline void signalfd_notify(struct task_struct *tsk, int sig) { }
-
-static inline void signalfd_cleanup(struct sighand_struct *sighand) { }
-
-#endif /* CONFIG_SIGNALFD */
-
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_SIGNALFD_H */
diff --git a/ANDROID_3.4.5/include/linux/sirfsoc_dma.h b/ANDROID_3.4.5/include/linux/sirfsoc_dma.h
deleted file mode 100644
index 29d95933..00000000
--- a/ANDROID_3.4.5/include/linux/sirfsoc_dma.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef _SIRFSOC_DMA_H_
-#define _SIRFSOC_DMA_H_
-
-bool sirfsoc_dma_filter_id(struct dma_chan *chan, void *chan_id);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/skbuff.h b/ANDROID_3.4.5/include/linux/skbuff.h
deleted file mode 100644
index c1bae8df..00000000
--- a/ANDROID_3.4.5/include/linux/skbuff.h
+++ /dev/null
@@ -1,2559 +0,0 @@
-/*
- * Definitions for the 'struct sk_buff' memory handlers.
- *
- * Authors:
- * Alan Cox, <gw4pts@gw4pts.ampr.org>
- * Florian La Roche, <rzsfl@rz.uni-sb.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.
- */
-
-#ifndef _LINUX_SKBUFF_H
-#define _LINUX_SKBUFF_H
-
-#include <linux/kernel.h>
-#include <linux/kmemcheck.h>
-#include <linux/compiler.h>
-#include <linux/time.h>
-#include <linux/bug.h>
-#include <linux/cache.h>
-
-#include <linux/atomic.h>
-#include <asm/types.h>
-#include <linux/spinlock.h>
-#include <linux/net.h>
-#include <linux/textsearch.h>
-#include <net/checksum.h>
-#include <linux/rcupdate.h>
-#include <linux/dmaengine.h>
-#include <linux/hrtimer.h>
-#include <linux/dma-mapping.h>
-#include <linux/netdev_features.h>
-
-/* Don't change this without changing skb_csum_unnecessary! */
-#define CHECKSUM_NONE 0
-#define CHECKSUM_UNNECESSARY 1
-#define CHECKSUM_COMPLETE 2
-#define CHECKSUM_PARTIAL 3
-
-#define SKB_DATA_ALIGN(X) (((X) + (SMP_CACHE_BYTES - 1)) & \
- ~(SMP_CACHE_BYTES - 1))
-#define SKB_WITH_OVERHEAD(X) \
- ((X) - SKB_DATA_ALIGN(sizeof(struct skb_shared_info)))
-#define SKB_MAX_ORDER(X, ORDER) \
- SKB_WITH_OVERHEAD((PAGE_SIZE << (ORDER)) - (X))
-#define SKB_MAX_HEAD(X) (SKB_MAX_ORDER((X), 0))
-#define SKB_MAX_ALLOC (SKB_MAX_ORDER(0, 2))
-
-/* return minimum truesize of one skb containing X bytes of data */
-#define SKB_TRUESIZE(X) ((X) + \
- SKB_DATA_ALIGN(sizeof(struct sk_buff)) + \
- SKB_DATA_ALIGN(sizeof(struct skb_shared_info)))
-
-/* A. Checksumming of received packets by device.
- *
- * NONE: device failed to checksum this packet.
- * skb->csum is undefined.
- *
- * UNNECESSARY: device parsed packet and wouldbe verified checksum.
- * skb->csum is undefined.
- * It is bad option, but, unfortunately, many of vendors do this.
- * Apparently with secret goal to sell you new device, when you
- * will add new protocol to your host. F.e. IPv6. 8)
- *
- * COMPLETE: the most generic way. Device supplied checksum of _all_
- * the packet as seen by netif_rx in skb->csum.
- * NOTE: Even if device supports only some protocols, but
- * is able to produce some skb->csum, it MUST use COMPLETE,
- * not UNNECESSARY.
- *
- * PARTIAL: identical to the case for output below. This may occur
- * on a packet received directly from another Linux OS, e.g.,
- * a virtualised Linux kernel on the same host. The packet can
- * be treated in the same way as UNNECESSARY except that on
- * output (i.e., forwarding) the checksum must be filled in
- * by the OS or the hardware.
- *
- * B. Checksumming on output.
- *
- * NONE: skb is checksummed by protocol or csum is not required.
- *
- * PARTIAL: device is required to csum packet as seen by hard_start_xmit
- * from skb->csum_start to the end and to record the checksum
- * at skb->csum_start + skb->csum_offset.
- *
- * Device must show its capabilities in dev->features, set
- * at device setup time.
- * NETIF_F_HW_CSUM - it is clever device, it is able to checksum
- * everything.
- * NETIF_F_IP_CSUM - device is dumb. It is able to csum only
- * TCP/UDP over IPv4. Sigh. Vendors like this
- * way by an unknown reason. Though, see comment above
- * about CHECKSUM_UNNECESSARY. 8)
- * NETIF_F_IPV6_CSUM about as dumb as the last one but does IPv6 instead.
- *
- * UNNECESSARY: device will do per protocol specific csum. Protocol drivers
- * that do not want net to perform the checksum calculation should use
- * this flag in their outgoing skbs.
- * NETIF_F_FCOE_CRC this indicates the device can do FCoE FC CRC
- * offload. Correspondingly, the FCoE protocol driver
- * stack should use CHECKSUM_UNNECESSARY.
- *
- * Any questions? No questions, good. --ANK
- */
-
-struct net_device;
-struct scatterlist;
-struct pipe_inode_info;
-
-#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
-struct nf_conntrack {
- atomic_t use;
-};
-#endif
-
-#ifdef CONFIG_BRIDGE_NETFILTER
-struct nf_bridge_info {
- atomic_t use;
- struct net_device *physindev;
- struct net_device *physoutdev;
- unsigned int mask;
- unsigned long data[32 / sizeof(unsigned long)];
-};
-#endif
-
-struct sk_buff_head {
- /* These two members must be first. */
- struct sk_buff *next;
- struct sk_buff *prev;
-
- __u32 qlen;
- spinlock_t lock;
-};
-
-struct sk_buff;
-
-/* To allow 64K frame to be packed as single skb without frag_list we
- * require 64K/PAGE_SIZE pages plus 1 additional page to allow for
- * buffers which do not start on a page boundary.
- *
- * Since GRO uses frags we allocate at least 16 regardless of page
- * size.
- */
-#if (65536/PAGE_SIZE + 1) < 16
-#define MAX_SKB_FRAGS 16UL
-#else
-#define MAX_SKB_FRAGS (65536/PAGE_SIZE + 1)
-#endif
-
-typedef struct skb_frag_struct skb_frag_t;
-
-struct skb_frag_struct {
- struct {
- struct page *p;
- } page;
-#if (BITS_PER_LONG > 32) || (PAGE_SIZE >= 65536)
- __u32 page_offset;
- __u32 size;
-#else
- __u16 page_offset;
- __u16 size;
-#endif
-};
-
-static inline unsigned int skb_frag_size(const skb_frag_t *frag)
-{
- return frag->size;
-}
-
-static inline void skb_frag_size_set(skb_frag_t *frag, unsigned int size)
-{
- frag->size = size;
-}
-
-static inline void skb_frag_size_add(skb_frag_t *frag, int delta)
-{
- frag->size += delta;
-}
-
-static inline void skb_frag_size_sub(skb_frag_t *frag, int delta)
-{
- frag->size -= delta;
-}
-
-#define HAVE_HW_TIME_STAMP
-
-/**
- * struct skb_shared_hwtstamps - hardware time stamps
- * @hwtstamp: hardware time stamp transformed into duration
- * since arbitrary point in time
- * @syststamp: hwtstamp transformed to system time base
- *
- * Software time stamps generated by ktime_get_real() are stored in
- * skb->tstamp. The relation between the different kinds of time
- * stamps is as follows:
- *
- * syststamp and tstamp can be compared against each other in
- * arbitrary combinations. The accuracy of a
- * syststamp/tstamp/"syststamp from other device" comparison is
- * limited by the accuracy of the transformation into system time
- * base. This depends on the device driver and its underlying
- * hardware.
- *
- * hwtstamps can only be compared against other hwtstamps from
- * the same device.
- *
- * This structure is attached to packets as part of the
- * &skb_shared_info. Use skb_hwtstamps() to get a pointer.
- */
-struct skb_shared_hwtstamps {
- ktime_t hwtstamp;
- ktime_t syststamp;
-};
-
-/* Definitions for tx_flags in struct skb_shared_info */
-enum {
- /* generate hardware time stamp */
- SKBTX_HW_TSTAMP = 1 << 0,
-
- /* generate software time stamp */
- SKBTX_SW_TSTAMP = 1 << 1,
-
- /* device driver is going to provide hardware time stamp */
- SKBTX_IN_PROGRESS = 1 << 2,
-
- /* device driver supports TX zero-copy buffers */
- SKBTX_DEV_ZEROCOPY = 1 << 3,
-
- /* generate wifi status information (where possible) */
- SKBTX_WIFI_STATUS = 1 << 4,
-};
-
-/*
- * The callback notifies userspace to release buffers when skb DMA is done in
- * lower device, the skb last reference should be 0 when calling this.
- * The ctx field is used to track device context.
- * The desc field is used to track userspace buffer index.
- */
-struct ubuf_info {
- void (*callback)(struct ubuf_info *);
- void *ctx;
- unsigned long desc;
-};
-
-/* This data is invariant across clones and lives at
- * the end of the header data, ie. at skb->end.
- */
-struct skb_shared_info {
- unsigned char nr_frags;
- __u8 tx_flags;
- unsigned short gso_size;
- /* Warning: this field is not always filled in (UFO)! */
- unsigned short gso_segs;
- unsigned short gso_type;
- struct sk_buff *frag_list;
- struct skb_shared_hwtstamps hwtstamps;
- __be32 ip6_frag_id;
-
- /*
- * Warning : all fields before dataref are cleared in __alloc_skb()
- */
- atomic_t dataref;
-
- /* Intermediate layers must ensure that destructor_arg
- * remains valid until skb destructor */
- void * destructor_arg;
-
- /* must be last field, see pskb_expand_head() */
- skb_frag_t frags[MAX_SKB_FRAGS];
-};
-
-/* We divide dataref into two halves. The higher 16 bits hold references
- * to the payload part of skb->data. The lower 16 bits hold references to
- * the entire skb->data. A clone of a headerless skb holds the length of
- * the header in skb->hdr_len.
- *
- * All users must obey the rule that the skb->data reference count must be
- * greater than or equal to the payload reference count.
- *
- * Holding a reference to the payload part means that the user does not
- * care about modifications to the header part of skb->data.
- */
-#define SKB_DATAREF_SHIFT 16
-#define SKB_DATAREF_MASK ((1 << SKB_DATAREF_SHIFT) - 1)
-
-
-enum {
- SKB_FCLONE_UNAVAILABLE,
- SKB_FCLONE_ORIG,
- SKB_FCLONE_CLONE,
-};
-
-enum {
- SKB_GSO_TCPV4 = 1 << 0,
- SKB_GSO_UDP = 1 << 1,
-
- /* This indicates the skb is from an untrusted source. */
- SKB_GSO_DODGY = 1 << 2,
-
- /* This indicates the tcp segment has CWR set. */
- SKB_GSO_TCP_ECN = 1 << 3,
-
- SKB_GSO_TCPV6 = 1 << 4,
-
- SKB_GSO_FCOE = 1 << 5,
-};
-
-#if BITS_PER_LONG > 32
-#define NET_SKBUFF_DATA_USES_OFFSET 1
-#endif
-
-#ifdef NET_SKBUFF_DATA_USES_OFFSET
-typedef unsigned int sk_buff_data_t;
-#else
-typedef unsigned char *sk_buff_data_t;
-#endif
-
-#if defined(CONFIG_NF_DEFRAG_IPV4) || defined(CONFIG_NF_DEFRAG_IPV4_MODULE) || \
- defined(CONFIG_NF_DEFRAG_IPV6) || defined(CONFIG_NF_DEFRAG_IPV6_MODULE)
-#define NET_SKBUFF_NF_DEFRAG_NEEDED 1
-#endif
-
-/**
- * struct sk_buff - socket buffer
- * @next: Next buffer in list
- * @prev: Previous buffer in list
- * @tstamp: Time we arrived
- * @sk: Socket we are owned by
- * @dev: Device we arrived on/are leaving by
- * @cb: Control buffer. Free for use by every layer. Put private vars here
- * @_skb_refdst: destination entry (with norefcount bit)
- * @sp: the security path, used for xfrm
- * @len: Length of actual data
- * @data_len: Data length
- * @mac_len: Length of link layer header
- * @hdr_len: writable header length of cloned skb
- * @csum: Checksum (must include start/offset pair)
- * @csum_start: Offset from skb->head where checksumming should start
- * @csum_offset: Offset from csum_start where checksum should be stored
- * @priority: Packet queueing priority
- * @local_df: allow local fragmentation
- * @cloned: Head may be cloned (check refcnt to be sure)
- * @ip_summed: Driver fed us an IP checksum
- * @nohdr: Payload reference only, must not modify header
- * @nfctinfo: Relationship of this skb to the connection
- * @pkt_type: Packet class
- * @fclone: skbuff clone status
- * @ipvs_property: skbuff is owned by ipvs
- * @peeked: this packet has been seen already, so stats have been
- * done for it, don't do them again
- * @nf_trace: netfilter packet trace flag
- * @protocol: Packet protocol from driver
- * @destructor: Destruct function
- * @nfct: Associated connection, if any
- * @nfct_reasm: netfilter conntrack re-assembly pointer
- * @nf_bridge: Saved data about a bridged frame - see br_netfilter.c
- * @skb_iif: ifindex of device we arrived on
- * @tc_index: Traffic control index
- * @tc_verd: traffic control verdict
- * @rxhash: the packet hash computed on receive
- * @queue_mapping: Queue mapping for multiqueue devices
- * @ndisc_nodetype: router type (from link layer)
- * @ooo_okay: allow the mapping of a socket to a queue to be changed
- * @l4_rxhash: indicate rxhash is a canonical 4-tuple hash over transport
- * ports.
- * @wifi_acked_valid: wifi_acked was set
- * @wifi_acked: whether frame was acked on wifi or not
- * @no_fcs: Request NIC to treat last 4 bytes as Ethernet FCS
- * @dma_cookie: a cookie to one of several possible DMA operations
- * done by skb DMA functions
- * @secmark: security marking
- * @mark: Generic packet mark
- * @dropcount: total number of sk_receive_queue overflows
- * @vlan_tci: vlan tag control information
- * @transport_header: Transport layer header
- * @network_header: Network layer header
- * @mac_header: Link layer header
- * @tail: Tail pointer
- * @end: End pointer
- * @head: Head of buffer
- * @data: Data head pointer
- * @truesize: Buffer size
- * @users: User count - see {datagram,tcp}.c
- */
-
-struct sk_buff {
- /* These two members must be first. */
- struct sk_buff *next;
- struct sk_buff *prev;
-
- ktime_t tstamp;
-
- struct sock *sk;
- struct net_device *dev;
-
- /*
- * This is the control buffer. It is free to use for every
- * layer. Please put your private variables there. If you
- * want to keep them across layers you have to do a skb_clone()
- * first. This is owned by whoever has the skb queued ATM.
- */
- char cb[48] __aligned(8);
-
- unsigned long _skb_refdst;
-#ifdef CONFIG_XFRM
- struct sec_path *sp;
-#endif
- unsigned int len,
- data_len;
- __u16 mac_len,
- hdr_len;
- union {
- __wsum csum;
- struct {
- __u16 csum_start;
- __u16 csum_offset;
- };
- };
- __u32 priority;
- kmemcheck_bitfield_begin(flags1);
- __u8 local_df:1,
- cloned:1,
- ip_summed:2,
- nohdr:1,
- nfctinfo:3;
- __u8 pkt_type:3,
- fclone:2,
- ipvs_property:1,
- peeked:1,
- nf_trace:1;
- kmemcheck_bitfield_end(flags1);
- __be16 protocol;
-
- void (*destructor)(struct sk_buff *skb);
-#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
- struct nf_conntrack *nfct;
-#endif
-#ifdef NET_SKBUFF_NF_DEFRAG_NEEDED
- struct sk_buff *nfct_reasm;
-#endif
-#ifdef CONFIG_BRIDGE_NETFILTER
- struct nf_bridge_info *nf_bridge;
-#endif
-
- int skb_iif;
-
- __u32 rxhash;
-
- __u16 vlan_tci;
-
-#ifdef CONFIG_NET_SCHED
- __u16 tc_index; /* traffic control index */
-#ifdef CONFIG_NET_CLS_ACT
- __u16 tc_verd; /* traffic control verdict */
-#endif
-#endif
-
- __u16 queue_mapping;
- kmemcheck_bitfield_begin(flags2);
-#ifdef CONFIG_IPV6_NDISC_NODETYPE
- __u8 ndisc_nodetype:2;
-#endif
- __u8 ooo_okay:1;
- __u8 l4_rxhash:1;
- __u8 wifi_acked_valid:1;
- __u8 wifi_acked:1;
- __u8 no_fcs:1;
- /* 9/11 bit hole (depending on ndisc_nodetype presence) */
- kmemcheck_bitfield_end(flags2);
-
-#ifdef CONFIG_NET_DMA
- dma_cookie_t dma_cookie;
-#endif
-#ifdef CONFIG_NETWORK_SECMARK
- __u32 secmark;
-#endif
- union {
- __u32 mark;
- __u32 dropcount;
- __u32 avail_size;
- };
-
- sk_buff_data_t transport_header;
- sk_buff_data_t network_header;
- sk_buff_data_t mac_header;
- /* These elements must be at the end, see alloc_skb() for details. */
- sk_buff_data_t tail;
- sk_buff_data_t end;
- unsigned char *head,
- *data;
- unsigned int truesize;
- atomic_t users;
-};
-
-#ifdef __KERNEL__
-/*
- * Handling routines are only of interest to the kernel
- */
-#include <linux/slab.h>
-
-
-/*
- * skb might have a dst pointer attached, refcounted or not.
- * _skb_refdst low order bit is set if refcount was _not_ taken
- */
-#define SKB_DST_NOREF 1UL
-#define SKB_DST_PTRMASK ~(SKB_DST_NOREF)
-
-/**
- * skb_dst - returns skb dst_entry
- * @skb: buffer
- *
- * Returns skb dst_entry, regardless of reference taken or not.
- */
-static inline struct dst_entry *skb_dst(const struct sk_buff *skb)
-{
- /* If refdst was not refcounted, check we still are in a
- * rcu_read_lock section
- */
- WARN_ON((skb->_skb_refdst & SKB_DST_NOREF) &&
- !rcu_read_lock_held() &&
- !rcu_read_lock_bh_held());
- return (struct dst_entry *)(skb->_skb_refdst & SKB_DST_PTRMASK);
-}
-
-/**
- * skb_dst_set - sets skb dst
- * @skb: buffer
- * @dst: dst entry
- *
- * Sets skb dst, assuming a reference was taken on dst and should
- * be released by skb_dst_drop()
- */
-static inline void skb_dst_set(struct sk_buff *skb, struct dst_entry *dst)
-{
- skb->_skb_refdst = (unsigned long)dst;
-}
-
-extern void skb_dst_set_noref(struct sk_buff *skb, struct dst_entry *dst);
-
-/**
- * skb_dst_is_noref - Test if skb dst isn't refcounted
- * @skb: buffer
- */
-static inline bool skb_dst_is_noref(const struct sk_buff *skb)
-{
- return (skb->_skb_refdst & SKB_DST_NOREF) && skb_dst(skb);
-}
-
-static inline struct rtable *skb_rtable(const struct sk_buff *skb)
-{
- return (struct rtable *)skb_dst(skb);
-}
-
-extern void kfree_skb(struct sk_buff *skb);
-extern void consume_skb(struct sk_buff *skb);
-extern void __kfree_skb(struct sk_buff *skb);
-extern struct sk_buff *__alloc_skb(unsigned int size,
- gfp_t priority, int fclone, int node);
-extern struct sk_buff *build_skb(void *data);
-static inline struct sk_buff *alloc_skb(unsigned int size,
- gfp_t priority)
-{
- return __alloc_skb(size, priority, 0, NUMA_NO_NODE);
-}
-
-static inline struct sk_buff *alloc_skb_fclone(unsigned int size,
- gfp_t priority)
-{
- return __alloc_skb(size, priority, 1, NUMA_NO_NODE);
-}
-
-extern void skb_recycle(struct sk_buff *skb);
-extern bool skb_recycle_check(struct sk_buff *skb, int skb_size);
-
-extern struct sk_buff *skb_morph(struct sk_buff *dst, struct sk_buff *src);
-extern int skb_copy_ubufs(struct sk_buff *skb, gfp_t gfp_mask);
-extern struct sk_buff *skb_clone(struct sk_buff *skb,
- gfp_t priority);
-extern struct sk_buff *skb_copy(const struct sk_buff *skb,
- gfp_t priority);
-extern struct sk_buff *__pskb_copy(struct sk_buff *skb,
- int headroom, gfp_t gfp_mask);
-
-extern int pskb_expand_head(struct sk_buff *skb,
- int nhead, int ntail,
- gfp_t gfp_mask);
-extern struct sk_buff *skb_realloc_headroom(struct sk_buff *skb,
- unsigned int headroom);
-extern struct sk_buff *skb_copy_expand(const struct sk_buff *skb,
- int newheadroom, int newtailroom,
- gfp_t priority);
-extern int skb_to_sgvec(struct sk_buff *skb,
- struct scatterlist *sg, int offset,
- int len);
-extern int skb_cow_data(struct sk_buff *skb, int tailbits,
- struct sk_buff **trailer);
-extern int skb_pad(struct sk_buff *skb, int pad);
-#define dev_kfree_skb(a) consume_skb(a)
-
-extern int skb_append_datato_frags(struct sock *sk, struct sk_buff *skb,
- int getfrag(void *from, char *to, int offset,
- int len,int odd, struct sk_buff *skb),
- void *from, int length);
-
-struct skb_seq_state {
- __u32 lower_offset;
- __u32 upper_offset;
- __u32 frag_idx;
- __u32 stepped_offset;
- struct sk_buff *root_skb;
- struct sk_buff *cur_skb;
- __u8 *frag_data;
-};
-
-extern void skb_prepare_seq_read(struct sk_buff *skb,
- unsigned int from, unsigned int to,
- struct skb_seq_state *st);
-extern unsigned int skb_seq_read(unsigned int consumed, const u8 **data,
- struct skb_seq_state *st);
-extern void skb_abort_seq_read(struct skb_seq_state *st);
-
-extern unsigned int skb_find_text(struct sk_buff *skb, unsigned int from,
- unsigned int to, struct ts_config *config,
- struct ts_state *state);
-
-extern void __skb_get_rxhash(struct sk_buff *skb);
-static inline __u32 skb_get_rxhash(struct sk_buff *skb)
-{
- if (!skb->rxhash)
- __skb_get_rxhash(skb);
-
- return skb->rxhash;
-}
-
-#ifdef NET_SKBUFF_DATA_USES_OFFSET
-static inline unsigned char *skb_end_pointer(const struct sk_buff *skb)
-{
- return skb->head + skb->end;
-}
-#else
-static inline unsigned char *skb_end_pointer(const struct sk_buff *skb)
-{
- return skb->end;
-}
-#endif
-
-/* Internal */
-#define skb_shinfo(SKB) ((struct skb_shared_info *)(skb_end_pointer(SKB)))
-
-static inline struct skb_shared_hwtstamps *skb_hwtstamps(struct sk_buff *skb)
-{
- return &skb_shinfo(skb)->hwtstamps;
-}
-
-/**
- * skb_queue_empty - check if a queue is empty
- * @list: queue head
- *
- * Returns true if the queue is empty, false otherwise.
- */
-static inline int skb_queue_empty(const struct sk_buff_head *list)
-{
- return list->next == (struct sk_buff *)list;
-}
-
-/**
- * skb_queue_is_last - check if skb is the last entry in the queue
- * @list: queue head
- * @skb: buffer
- *
- * Returns true if @skb is the last buffer on the list.
- */
-static inline bool skb_queue_is_last(const struct sk_buff_head *list,
- const struct sk_buff *skb)
-{
- return skb->next == (struct sk_buff *)list;
-}
-
-/**
- * skb_queue_is_first - check if skb is the first entry in the queue
- * @list: queue head
- * @skb: buffer
- *
- * Returns true if @skb is the first buffer on the list.
- */
-static inline bool skb_queue_is_first(const struct sk_buff_head *list,
- const struct sk_buff *skb)
-{
- return skb->prev == (struct sk_buff *)list;
-}
-
-/**
- * skb_queue_next - return the next packet in the queue
- * @list: queue head
- * @skb: current buffer
- *
- * Return the next packet in @list after @skb. It is only valid to
- * call this if skb_queue_is_last() evaluates to false.
- */
-static inline struct sk_buff *skb_queue_next(const struct sk_buff_head *list,
- const struct sk_buff *skb)
-{
- /* This BUG_ON may seem severe, but if we just return then we
- * are going to dereference garbage.
- */
- BUG_ON(skb_queue_is_last(list, skb));
- return skb->next;
-}
-
-/**
- * skb_queue_prev - return the prev packet in the queue
- * @list: queue head
- * @skb: current buffer
- *
- * Return the prev packet in @list before @skb. It is only valid to
- * call this if skb_queue_is_first() evaluates to false.
- */
-static inline struct sk_buff *skb_queue_prev(const struct sk_buff_head *list,
- const struct sk_buff *skb)
-{
- /* This BUG_ON may seem severe, but if we just return then we
- * are going to dereference garbage.
- */
- BUG_ON(skb_queue_is_first(list, skb));
- return skb->prev;
-}
-
-/**
- * skb_get - reference buffer
- * @skb: buffer to reference
- *
- * Makes another reference to a socket buffer and returns a pointer
- * to the buffer.
- */
-static inline struct sk_buff *skb_get(struct sk_buff *skb)
-{
- atomic_inc(&skb->users);
- return skb;
-}
-
-/*
- * If users == 1, we are the only owner and are can avoid redundant
- * atomic change.
- */
-
-/**
- * skb_cloned - is the buffer a clone
- * @skb: buffer to check
- *
- * Returns true if the buffer was generated with skb_clone() and is
- * one of multiple shared copies of the buffer. Cloned buffers are
- * shared data so must not be written to under normal circumstances.
- */
-static inline int skb_cloned(const struct sk_buff *skb)
-{
- return skb->cloned &&
- (atomic_read(&skb_shinfo(skb)->dataref) & SKB_DATAREF_MASK) != 1;
-}
-
-/**
- * skb_header_cloned - is the header a clone
- * @skb: buffer to check
- *
- * Returns true if modifying the header part of the buffer requires
- * the data to be copied.
- */
-static inline int skb_header_cloned(const struct sk_buff *skb)
-{
- int dataref;
-
- if (!skb->cloned)
- return 0;
-
- dataref = atomic_read(&skb_shinfo(skb)->dataref);
- dataref = (dataref & SKB_DATAREF_MASK) - (dataref >> SKB_DATAREF_SHIFT);
- return dataref != 1;
-}
-
-/**
- * skb_header_release - release reference to header
- * @skb: buffer to operate on
- *
- * Drop a reference to the header part of the buffer. This is done
- * by acquiring a payload reference. You must not read from the header
- * part of skb->data after this.
- */
-static inline void skb_header_release(struct sk_buff *skb)
-{
- BUG_ON(skb->nohdr);
- skb->nohdr = 1;
- atomic_add(1 << SKB_DATAREF_SHIFT, &skb_shinfo(skb)->dataref);
-}
-
-/**
- * skb_shared - is the buffer shared
- * @skb: buffer to check
- *
- * Returns true if more than one person has a reference to this
- * buffer.
- */
-static inline int skb_shared(const struct sk_buff *skb)
-{
- return atomic_read(&skb->users) != 1;
-}
-
-/**
- * skb_share_check - check if buffer is shared and if so clone it
- * @skb: buffer to check
- * @pri: priority for memory allocation
- *
- * If the buffer is shared the buffer is cloned and the old copy
- * drops a reference. A new clone with a single reference is returned.
- * If the buffer is not shared the original buffer is returned. When
- * being called from interrupt status or with spinlocks held pri must
- * be GFP_ATOMIC.
- *
- * NULL is returned on a memory allocation failure.
- */
-static inline struct sk_buff *skb_share_check(struct sk_buff *skb,
- gfp_t pri)
-{
- might_sleep_if(pri & __GFP_WAIT);
- if (skb_shared(skb)) {
- struct sk_buff *nskb = skb_clone(skb, pri);
- kfree_skb(skb);
- skb = nskb;
- }
- return skb;
-}
-
-/*
- * Copy shared buffers into a new sk_buff. We effectively do COW on
- * packets to handle cases where we have a local reader and forward
- * and a couple of other messy ones. The normal one is tcpdumping
- * a packet thats being forwarded.
- */
-
-/**
- * skb_unshare - make a copy of a shared buffer
- * @skb: buffer to check
- * @pri: priority for memory allocation
- *
- * If the socket buffer is a clone then this function creates a new
- * copy of the data, drops a reference count on the old copy and returns
- * the new copy with the reference count at 1. If the buffer is not a clone
- * the original buffer is returned. When called with a spinlock held or
- * from interrupt state @pri must be %GFP_ATOMIC
- *
- * %NULL is returned on a memory allocation failure.
- */
-static inline struct sk_buff *skb_unshare(struct sk_buff *skb,
- gfp_t pri)
-{
- might_sleep_if(pri & __GFP_WAIT);
- if (skb_cloned(skb)) {
- struct sk_buff *nskb = skb_copy(skb, pri);
- kfree_skb(skb); /* Free our shared copy */
- skb = nskb;
- }
- return skb;
-}
-
-/**
- * skb_peek - peek at the head of an &sk_buff_head
- * @list_: list to peek at
- *
- * Peek an &sk_buff. Unlike most other operations you _MUST_
- * be careful with this one. A peek leaves the buffer on the
- * list and someone else may run off with it. You must hold
- * the appropriate locks or have a private queue to do this.
- *
- * Returns %NULL for an empty list or a pointer to the head element.
- * The reference count is not incremented and the reference is therefore
- * volatile. Use with caution.
- */
-static inline struct sk_buff *skb_peek(const struct sk_buff_head *list_)
-{
- struct sk_buff *list = ((const struct sk_buff *)list_)->next;
- if (list == (struct sk_buff *)list_)
- list = NULL;
- return list;
-}
-
-/**
- * skb_peek_next - peek skb following the given one from a queue
- * @skb: skb to start from
- * @list_: list to peek at
- *
- * Returns %NULL when the end of the list is met or a pointer to the
- * next element. The reference count is not incremented and the
- * reference is therefore volatile. Use with caution.
- */
-static inline struct sk_buff *skb_peek_next(struct sk_buff *skb,
- const struct sk_buff_head *list_)
-{
- struct sk_buff *next = skb->next;
- if (next == (struct sk_buff *)list_)
- next = NULL;
- return next;
-}
-
-/**
- * skb_peek_tail - peek at the tail of an &sk_buff_head
- * @list_: list to peek at
- *
- * Peek an &sk_buff. Unlike most other operations you _MUST_
- * be careful with this one. A peek leaves the buffer on the
- * list and someone else may run off with it. You must hold
- * the appropriate locks or have a private queue to do this.
- *
- * Returns %NULL for an empty list or a pointer to the tail element.
- * The reference count is not incremented and the reference is therefore
- * volatile. Use with caution.
- */
-static inline struct sk_buff *skb_peek_tail(const struct sk_buff_head *list_)
-{
- struct sk_buff *list = ((const struct sk_buff *)list_)->prev;
- if (list == (struct sk_buff *)list_)
- list = NULL;
- return list;
-}
-
-/**
- * skb_queue_len - get queue length
- * @list_: list to measure
- *
- * Return the length of an &sk_buff queue.
- */
-static inline __u32 skb_queue_len(const struct sk_buff_head *list_)
-{
- return list_->qlen;
-}
-
-/**
- * __skb_queue_head_init - initialize non-spinlock portions of sk_buff_head
- * @list: queue to initialize
- *
- * This initializes only the list and queue length aspects of
- * an sk_buff_head object. This allows to initialize the list
- * aspects of an sk_buff_head without reinitializing things like
- * the spinlock. It can also be used for on-stack sk_buff_head
- * objects where the spinlock is known to not be used.
- */
-static inline void __skb_queue_head_init(struct sk_buff_head *list)
-{
- list->prev = list->next = (struct sk_buff *)list;
- list->qlen = 0;
-}
-
-/*
- * This function creates a split out lock class for each invocation;
- * this is needed for now since a whole lot of users of the skb-queue
- * infrastructure in drivers have different locking usage (in hardirq)
- * than the networking core (in softirq only). In the long run either the
- * network layer or drivers should need annotation to consolidate the
- * main types of usage into 3 classes.
- */
-static inline void skb_queue_head_init(struct sk_buff_head *list)
-{
- spin_lock_init(&list->lock);
- __skb_queue_head_init(list);
-}
-
-static inline void skb_queue_head_init_class(struct sk_buff_head *list,
- struct lock_class_key *class)
-{
- skb_queue_head_init(list);
- lockdep_set_class(&list->lock, class);
-}
-
-/*
- * Insert an sk_buff on a list.
- *
- * The "__skb_xxxx()" functions are the non-atomic ones that
- * can only be called with interrupts disabled.
- */
-extern void skb_insert(struct sk_buff *old, struct sk_buff *newsk, struct sk_buff_head *list);
-static inline void __skb_insert(struct sk_buff *newsk,
- struct sk_buff *prev, struct sk_buff *next,
- struct sk_buff_head *list)
-{
- newsk->next = next;
- newsk->prev = prev;
- next->prev = prev->next = newsk;
- list->qlen++;
-}
-
-static inline void __skb_queue_splice(const struct sk_buff_head *list,
- struct sk_buff *prev,
- struct sk_buff *next)
-{
- struct sk_buff *first = list->next;
- struct sk_buff *last = list->prev;
-
- first->prev = prev;
- prev->next = first;
-
- last->next = next;
- next->prev = last;
-}
-
-/**
- * skb_queue_splice - join two skb lists, this is designed for stacks
- * @list: the new list to add
- * @head: the place to add it in the first list
- */
-static inline void skb_queue_splice(const struct sk_buff_head *list,
- struct sk_buff_head *head)
-{
- if (!skb_queue_empty(list)) {
- __skb_queue_splice(list, (struct sk_buff *) head, head->next);
- head->qlen += list->qlen;
- }
-}
-
-/**
- * skb_queue_splice_init - join two skb lists and reinitialise the emptied list
- * @list: the new list to add
- * @head: the place to add it in the first list
- *
- * The list at @list is reinitialised
- */
-static inline void skb_queue_splice_init(struct sk_buff_head *list,
- struct sk_buff_head *head)
-{
- if (!skb_queue_empty(list)) {
- __skb_queue_splice(list, (struct sk_buff *) head, head->next);
- head->qlen += list->qlen;
- __skb_queue_head_init(list);
- }
-}
-
-/**
- * skb_queue_splice_tail - join two skb lists, each list being a queue
- * @list: the new list to add
- * @head: the place to add it in the first list
- */
-static inline void skb_queue_splice_tail(const struct sk_buff_head *list,
- struct sk_buff_head *head)
-{
- if (!skb_queue_empty(list)) {
- __skb_queue_splice(list, head->prev, (struct sk_buff *) head);
- head->qlen += list->qlen;
- }
-}
-
-/**
- * skb_queue_splice_tail_init - join two skb lists and reinitialise the emptied list
- * @list: the new list to add
- * @head: the place to add it in the first list
- *
- * Each of the lists is a queue.
- * The list at @list is reinitialised
- */
-static inline void skb_queue_splice_tail_init(struct sk_buff_head *list,
- struct sk_buff_head *head)
-{
- if (!skb_queue_empty(list)) {
- __skb_queue_splice(list, head->prev, (struct sk_buff *) head);
- head->qlen += list->qlen;
- __skb_queue_head_init(list);
- }
-}
-
-/**
- * __skb_queue_after - queue a buffer at the list head
- * @list: list to use
- * @prev: place after this buffer
- * @newsk: buffer to queue
- *
- * Queue a buffer int the middle of a list. This function takes no locks
- * and you must therefore hold required locks before calling it.
- *
- * A buffer cannot be placed on two lists at the same time.
- */
-static inline void __skb_queue_after(struct sk_buff_head *list,
- struct sk_buff *prev,
- struct sk_buff *newsk)
-{
- __skb_insert(newsk, prev, prev->next, list);
-}
-
-extern void skb_append(struct sk_buff *old, struct sk_buff *newsk,
- struct sk_buff_head *list);
-
-static inline void __skb_queue_before(struct sk_buff_head *list,
- struct sk_buff *next,
- struct sk_buff *newsk)
-{
- __skb_insert(newsk, next->prev, next, list);
-}
-
-/**
- * __skb_queue_head - queue a buffer at the list head
- * @list: list to use
- * @newsk: buffer to queue
- *
- * Queue a buffer at the start of a list. This function takes no locks
- * and you must therefore hold required locks before calling it.
- *
- * A buffer cannot be placed on two lists at the same time.
- */
-extern void skb_queue_head(struct sk_buff_head *list, struct sk_buff *newsk);
-static inline void __skb_queue_head(struct sk_buff_head *list,
- struct sk_buff *newsk)
-{
- __skb_queue_after(list, (struct sk_buff *)list, newsk);
-}
-
-/**
- * __skb_queue_tail - queue a buffer at the list tail
- * @list: list to use
- * @newsk: buffer to queue
- *
- * Queue a buffer at the end of a list. This function takes no locks
- * and you must therefore hold required locks before calling it.
- *
- * A buffer cannot be placed on two lists at the same time.
- */
-extern void skb_queue_tail(struct sk_buff_head *list, struct sk_buff *newsk);
-static inline void __skb_queue_tail(struct sk_buff_head *list,
- struct sk_buff *newsk)
-{
- __skb_queue_before(list, (struct sk_buff *)list, newsk);
-}
-
-/*
- * remove sk_buff from list. _Must_ be called atomically, and with
- * the list known..
- */
-extern void skb_unlink(struct sk_buff *skb, struct sk_buff_head *list);
-static inline void __skb_unlink(struct sk_buff *skb, struct sk_buff_head *list)
-{
- struct sk_buff *next, *prev;
-
- list->qlen--;
- next = skb->next;
- prev = skb->prev;
- skb->next = skb->prev = NULL;
- next->prev = prev;
- prev->next = next;
-}
-
-/**
- * __skb_dequeue - remove from the head of the queue
- * @list: list to dequeue from
- *
- * Remove the head of the list. This function does not take any locks
- * so must be used with appropriate locks held only. The head item is
- * returned or %NULL if the list is empty.
- */
-extern struct sk_buff *skb_dequeue(struct sk_buff_head *list);
-static inline struct sk_buff *__skb_dequeue(struct sk_buff_head *list)
-{
- struct sk_buff *skb = skb_peek(list);
- if (skb)
- __skb_unlink(skb, list);
- return skb;
-}
-
-/**
- * __skb_dequeue_tail - remove from the tail of the queue
- * @list: list to dequeue from
- *
- * Remove the tail of the list. This function does not take any locks
- * so must be used with appropriate locks held only. The tail item is
- * returned or %NULL if the list is empty.
- */
-extern struct sk_buff *skb_dequeue_tail(struct sk_buff_head *list);
-static inline struct sk_buff *__skb_dequeue_tail(struct sk_buff_head *list)
-{
- struct sk_buff *skb = skb_peek_tail(list);
- if (skb)
- __skb_unlink(skb, list);
- return skb;
-}
-
-
-static inline bool skb_is_nonlinear(const struct sk_buff *skb)
-{
- return skb->data_len;
-}
-
-static inline unsigned int skb_headlen(const struct sk_buff *skb)
-{
- return skb->len - skb->data_len;
-}
-
-static inline int skb_pagelen(const struct sk_buff *skb)
-{
- int i, len = 0;
-
- for (i = (int)skb_shinfo(skb)->nr_frags - 1; i >= 0; i--)
- len += skb_frag_size(&skb_shinfo(skb)->frags[i]);
- return len + skb_headlen(skb);
-}
-
-/**
- * __skb_fill_page_desc - initialise a paged fragment in an skb
- * @skb: buffer containing fragment to be initialised
- * @i: paged fragment index to initialise
- * @page: the page to use for this fragment
- * @off: the offset to the data with @page
- * @size: the length of the data
- *
- * Initialises the @i'th fragment of @skb to point to &size bytes at
- * offset @off within @page.
- *
- * Does not take any additional reference on the fragment.
- */
-static inline void __skb_fill_page_desc(struct sk_buff *skb, int i,
- struct page *page, int off, int size)
-{
- skb_frag_t *frag = &skb_shinfo(skb)->frags[i];
-
- frag->page.p = page;
- frag->page_offset = off;
- skb_frag_size_set(frag, size);
-}
-
-/**
- * skb_fill_page_desc - initialise a paged fragment in an skb
- * @skb: buffer containing fragment to be initialised
- * @i: paged fragment index to initialise
- * @page: the page to use for this fragment
- * @off: the offset to the data with @page
- * @size: the length of the data
- *
- * As per __skb_fill_page_desc() -- initialises the @i'th fragment of
- * @skb to point to &size bytes at offset @off within @page. In
- * addition updates @skb such that @i is the last fragment.
- *
- * Does not take any additional reference on the fragment.
- */
-static inline void skb_fill_page_desc(struct sk_buff *skb, int i,
- struct page *page, int off, int size)
-{
- __skb_fill_page_desc(skb, i, page, off, size);
- skb_shinfo(skb)->nr_frags = i + 1;
-}
-
-extern void skb_add_rx_frag(struct sk_buff *skb, int i, struct page *page,
- int off, int size, unsigned int truesize);
-
-#define SKB_PAGE_ASSERT(skb) BUG_ON(skb_shinfo(skb)->nr_frags)
-#define SKB_FRAG_ASSERT(skb) BUG_ON(skb_has_frag_list(skb))
-#define SKB_LINEAR_ASSERT(skb) BUG_ON(skb_is_nonlinear(skb))
-
-#ifdef NET_SKBUFF_DATA_USES_OFFSET
-static inline unsigned char *skb_tail_pointer(const struct sk_buff *skb)
-{
- return skb->head + skb->tail;
-}
-
-static inline void skb_reset_tail_pointer(struct sk_buff *skb)
-{
- skb->tail = skb->data - skb->head;
-}
-
-static inline void skb_set_tail_pointer(struct sk_buff *skb, const int offset)
-{
- skb_reset_tail_pointer(skb);
- skb->tail += offset;
-}
-#else /* NET_SKBUFF_DATA_USES_OFFSET */
-static inline unsigned char *skb_tail_pointer(const struct sk_buff *skb)
-{
- return skb->tail;
-}
-
-static inline void skb_reset_tail_pointer(struct sk_buff *skb)
-{
- skb->tail = skb->data;
-}
-
-static inline void skb_set_tail_pointer(struct sk_buff *skb, const int offset)
-{
- skb->tail = skb->data + offset;
-}
-
-#endif /* NET_SKBUFF_DATA_USES_OFFSET */
-
-/*
- * Add data to an sk_buff
- */
-extern unsigned char *skb_put(struct sk_buff *skb, unsigned int len);
-static inline unsigned char *__skb_put(struct sk_buff *skb, unsigned int len)
-{
- unsigned char *tmp = skb_tail_pointer(skb);
- SKB_LINEAR_ASSERT(skb);
- skb->tail += len;
- skb->len += len;
- return tmp;
-}
-
-extern unsigned char *skb_push(struct sk_buff *skb, unsigned int len);
-static inline unsigned char *__skb_push(struct sk_buff *skb, unsigned int len)
-{
- skb->data -= len;
- skb->len += len;
- return skb->data;
-}
-
-extern unsigned char *skb_pull(struct sk_buff *skb, unsigned int len);
-static inline unsigned char *__skb_pull(struct sk_buff *skb, unsigned int len)
-{
- skb->len -= len;
- BUG_ON(skb->len < skb->data_len);
- return skb->data += len;
-}
-
-static inline unsigned char *skb_pull_inline(struct sk_buff *skb, unsigned int len)
-{
- return unlikely(len > skb->len) ? NULL : __skb_pull(skb, len);
-}
-
-extern unsigned char *__pskb_pull_tail(struct sk_buff *skb, int delta);
-
-static inline unsigned char *__pskb_pull(struct sk_buff *skb, unsigned int len)
-{
- if (len > skb_headlen(skb) &&
- !__pskb_pull_tail(skb, len - skb_headlen(skb)))
- return NULL;
- skb->len -= len;
- return skb->data += len;
-}
-
-static inline unsigned char *pskb_pull(struct sk_buff *skb, unsigned int len)
-{
- return unlikely(len > skb->len) ? NULL : __pskb_pull(skb, len);
-}
-
-static inline int pskb_may_pull(struct sk_buff *skb, unsigned int len)
-{
- if (likely(len <= skb_headlen(skb)))
- return 1;
- if (unlikely(len > skb->len))
- return 0;
- return __pskb_pull_tail(skb, len - skb_headlen(skb)) != NULL;
-}
-
-/**
- * skb_headroom - bytes at buffer head
- * @skb: buffer to check
- *
- * Return the number of bytes of free space at the head of an &sk_buff.
- */
-static inline unsigned int skb_headroom(const struct sk_buff *skb)
-{
- return skb->data - skb->head;
-}
-
-/**
- * skb_tailroom - bytes at buffer end
- * @skb: buffer to check
- *
- * Return the number of bytes of free space at the tail of an sk_buff
- */
-static inline int skb_tailroom(const struct sk_buff *skb)
-{
- return skb_is_nonlinear(skb) ? 0 : skb->end - skb->tail;
-}
-
-/**
- * skb_availroom - bytes at buffer end
- * @skb: buffer to check
- *
- * Return the number of bytes of free space at the tail of an sk_buff
- * allocated by sk_stream_alloc()
- */
-static inline int skb_availroom(const struct sk_buff *skb)
-{
- return skb_is_nonlinear(skb) ? 0 : skb->avail_size - skb->len;
-}
-
-/**
- * skb_reserve - adjust headroom
- * @skb: buffer to alter
- * @len: bytes to move
- *
- * Increase the headroom of an empty &sk_buff by reducing the tail
- * room. This is only allowed for an empty buffer.
- */
-static inline void skb_reserve(struct sk_buff *skb, int len)
-{
- skb->data += len;
- skb->tail += len;
-}
-
-static inline void skb_reset_mac_len(struct sk_buff *skb)
-{
- skb->mac_len = skb->network_header - skb->mac_header;
-}
-
-#ifdef NET_SKBUFF_DATA_USES_OFFSET
-static inline unsigned char *skb_transport_header(const struct sk_buff *skb)
-{
- return skb->head + skb->transport_header;
-}
-
-static inline void skb_reset_transport_header(struct sk_buff *skb)
-{
- skb->transport_header = skb->data - skb->head;
-}
-
-static inline void skb_set_transport_header(struct sk_buff *skb,
- const int offset)
-{
- skb_reset_transport_header(skb);
- skb->transport_header += offset;
-}
-
-static inline unsigned char *skb_network_header(const struct sk_buff *skb)
-{
- return skb->head + skb->network_header;
-}
-
-static inline void skb_reset_network_header(struct sk_buff *skb)
-{
- skb->network_header = skb->data - skb->head;
-}
-
-static inline void skb_set_network_header(struct sk_buff *skb, const int offset)
-{
- skb_reset_network_header(skb);
- skb->network_header += offset;
-}
-
-static inline unsigned char *skb_mac_header(const struct sk_buff *skb)
-{
- return skb->head + skb->mac_header;
-}
-
-static inline int skb_mac_header_was_set(const struct sk_buff *skb)
-{
- return skb->mac_header != ~0U;
-}
-
-static inline void skb_reset_mac_header(struct sk_buff *skb)
-{
- skb->mac_header = skb->data - skb->head;
-}
-
-static inline void skb_set_mac_header(struct sk_buff *skb, const int offset)
-{
- skb_reset_mac_header(skb);
- skb->mac_header += offset;
-}
-
-#else /* NET_SKBUFF_DATA_USES_OFFSET */
-
-static inline unsigned char *skb_transport_header(const struct sk_buff *skb)
-{
- return skb->transport_header;
-}
-
-static inline void skb_reset_transport_header(struct sk_buff *skb)
-{
- skb->transport_header = skb->data;
-}
-
-static inline void skb_set_transport_header(struct sk_buff *skb,
- const int offset)
-{
- skb->transport_header = skb->data + offset;
-}
-
-static inline unsigned char *skb_network_header(const struct sk_buff *skb)
-{
- return skb->network_header;
-}
-
-static inline void skb_reset_network_header(struct sk_buff *skb)
-{
- skb->network_header = skb->data;
-}
-
-static inline void skb_set_network_header(struct sk_buff *skb, const int offset)
-{
- skb->network_header = skb->data + offset;
-}
-
-static inline unsigned char *skb_mac_header(const struct sk_buff *skb)
-{
- return skb->mac_header;
-}
-
-static inline int skb_mac_header_was_set(const struct sk_buff *skb)
-{
- return skb->mac_header != NULL;
-}
-
-static inline void skb_reset_mac_header(struct sk_buff *skb)
-{
- skb->mac_header = skb->data;
-}
-
-static inline void skb_set_mac_header(struct sk_buff *skb, const int offset)
-{
- skb->mac_header = skb->data + offset;
-}
-#endif /* NET_SKBUFF_DATA_USES_OFFSET */
-
-static inline void skb_mac_header_rebuild(struct sk_buff *skb)
-{
- if (skb_mac_header_was_set(skb)) {
- const unsigned char *old_mac = skb_mac_header(skb);
-
- skb_set_mac_header(skb, -skb->mac_len);
- memmove(skb_mac_header(skb), old_mac, skb->mac_len);
- }
-}
-
-static inline int skb_checksum_start_offset(const struct sk_buff *skb)
-{
- return skb->csum_start - skb_headroom(skb);
-}
-
-static inline int skb_transport_offset(const struct sk_buff *skb)
-{
- return skb_transport_header(skb) - skb->data;
-}
-
-static inline u32 skb_network_header_len(const struct sk_buff *skb)
-{
- return skb->transport_header - skb->network_header;
-}
-
-static inline int skb_network_offset(const struct sk_buff *skb)
-{
- return skb_network_header(skb) - skb->data;
-}
-
-static inline int pskb_network_may_pull(struct sk_buff *skb, unsigned int len)
-{
- return pskb_may_pull(skb, skb_network_offset(skb) + len);
-}
-
-/*
- * CPUs often take a performance hit when accessing unaligned memory
- * locations. The actual performance hit varies, it can be small if the
- * hardware handles it or large if we have to take an exception and fix it
- * in software.
- *
- * Since an ethernet header is 14 bytes network drivers often end up with
- * the IP header at an unaligned offset. The IP header can be aligned by
- * shifting the start of the packet by 2 bytes. Drivers should do this
- * with:
- *
- * skb_reserve(skb, NET_IP_ALIGN);
- *
- * The downside to this alignment of the IP header is that the DMA is now
- * unaligned. On some architectures the cost of an unaligned DMA is high
- * and this cost outweighs the gains made by aligning the IP header.
- *
- * Since this trade off varies between architectures, we allow NET_IP_ALIGN
- * to be overridden.
- */
-#ifndef NET_IP_ALIGN
-#define NET_IP_ALIGN 2
-#endif
-
-/*
- * The networking layer reserves some headroom in skb data (via
- * dev_alloc_skb). This is used to avoid having to reallocate skb data when
- * the header has to grow. In the default case, if the header has to grow
- * 32 bytes or less we avoid the reallocation.
- *
- * Unfortunately this headroom changes the DMA alignment of the resulting
- * network packet. As for NET_IP_ALIGN, this unaligned DMA is expensive
- * on some architectures. An architecture can override this value,
- * perhaps setting it to a cacheline in size (since that will maintain
- * cacheline alignment of the DMA). It must be a power of 2.
- *
- * Various parts of the networking layer expect at least 32 bytes of
- * headroom, you should not reduce this.
- *
- * Using max(32, L1_CACHE_BYTES) makes sense (especially with RPS)
- * to reduce average number of cache lines per packet.
- * get_rps_cpus() for example only access one 64 bytes aligned block :
- * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
- */
-#ifndef NET_SKB_PAD
-#define NET_SKB_PAD max(32, L1_CACHE_BYTES)
-#endif
-
-extern int ___pskb_trim(struct sk_buff *skb, unsigned int len);
-
-static inline void __skb_trim(struct sk_buff *skb, unsigned int len)
-{
- if (unlikely(skb_is_nonlinear(skb))) {
- WARN_ON(1);
- return;
- }
- skb->len = len;
- skb_set_tail_pointer(skb, len);
-}
-
-extern void skb_trim(struct sk_buff *skb, unsigned int len);
-
-static inline int __pskb_trim(struct sk_buff *skb, unsigned int len)
-{
- if (skb->data_len)
- return ___pskb_trim(skb, len);
- __skb_trim(skb, len);
- return 0;
-}
-
-static inline int pskb_trim(struct sk_buff *skb, unsigned int len)
-{
- return (len < skb->len) ? __pskb_trim(skb, len) : 0;
-}
-
-/**
- * pskb_trim_unique - remove end from a paged unique (not cloned) buffer
- * @skb: buffer to alter
- * @len: new length
- *
- * This is identical to pskb_trim except that the caller knows that
- * the skb is not cloned so we should never get an error due to out-
- * of-memory.
- */
-static inline void pskb_trim_unique(struct sk_buff *skb, unsigned int len)
-{
- int err = pskb_trim(skb, len);
- BUG_ON(err);
-}
-
-/**
- * skb_orphan - orphan a buffer
- * @skb: buffer to orphan
- *
- * If a buffer currently has an owner then we call the owner's
- * destructor function and make the @skb unowned. The buffer continues
- * to exist but is no longer charged to its former owner.
- */
-static inline void skb_orphan(struct sk_buff *skb)
-{
- if (skb->destructor)
- skb->destructor(skb);
- skb->destructor = NULL;
- skb->sk = NULL;
-}
-
-/**
- * __skb_queue_purge - empty a list
- * @list: list to empty
- *
- * Delete all buffers on an &sk_buff list. Each buffer is removed from
- * the list and one reference dropped. This function does not take the
- * list lock and the caller must hold the relevant locks to use it.
- */
-extern void skb_queue_purge(struct sk_buff_head *list);
-static inline void __skb_queue_purge(struct sk_buff_head *list)
-{
- struct sk_buff *skb;
- while ((skb = __skb_dequeue(list)) != NULL)
- kfree_skb(skb);
-}
-
-/**
- * __dev_alloc_skb - allocate an skbuff for receiving
- * @length: length to allocate
- * @gfp_mask: get_free_pages mask, passed to alloc_skb
- *
- * Allocate a new &sk_buff and assign it a usage count of one. The
- * buffer has unspecified headroom built in. Users should allocate
- * the headroom they think they need without accounting for the
- * built in space. The built in space is used for optimisations.
- *
- * %NULL is returned if there is no free memory.
- */
-static inline struct sk_buff *__dev_alloc_skb(unsigned int length,
- gfp_t gfp_mask)
-{
- struct sk_buff *skb = alloc_skb(length + NET_SKB_PAD, gfp_mask);
- if (likely(skb))
- skb_reserve(skb, NET_SKB_PAD);
- return skb;
-}
-
-extern struct sk_buff *dev_alloc_skb(unsigned int length);
-
-extern struct sk_buff *__netdev_alloc_skb(struct net_device *dev,
- unsigned int length, gfp_t gfp_mask);
-
-/**
- * netdev_alloc_skb - allocate an skbuff for rx on a specific device
- * @dev: network device to receive on
- * @length: length to allocate
- *
- * Allocate a new &sk_buff and assign it a usage count of one. The
- * buffer has unspecified headroom built in. Users should allocate
- * the headroom they think they need without accounting for the
- * built in space. The built in space is used for optimisations.
- *
- * %NULL is returned if there is no free memory. Although this function
- * allocates memory it can be called from an interrupt.
- */
-static inline struct sk_buff *netdev_alloc_skb(struct net_device *dev,
- unsigned int length)
-{
- return __netdev_alloc_skb(dev, length, GFP_ATOMIC);
-}
-
-static inline struct sk_buff *__netdev_alloc_skb_ip_align(struct net_device *dev,
- unsigned int length, gfp_t gfp)
-{
- struct sk_buff *skb = __netdev_alloc_skb(dev, length + NET_IP_ALIGN, gfp);
-
- if (NET_IP_ALIGN && skb)
- skb_reserve(skb, NET_IP_ALIGN);
- return skb;
-}
-
-static inline struct sk_buff *netdev_alloc_skb_ip_align(struct net_device *dev,
- unsigned int length)
-{
- return __netdev_alloc_skb_ip_align(dev, length, GFP_ATOMIC);
-}
-
-/**
- * skb_frag_page - retrieve the page refered to by a paged fragment
- * @frag: the paged fragment
- *
- * Returns the &struct page associated with @frag.
- */
-static inline struct page *skb_frag_page(const skb_frag_t *frag)
-{
- return frag->page.p;
-}
-
-/**
- * __skb_frag_ref - take an addition reference on a paged fragment.
- * @frag: the paged fragment
- *
- * Takes an additional reference on the paged fragment @frag.
- */
-static inline void __skb_frag_ref(skb_frag_t *frag)
-{
- get_page(skb_frag_page(frag));
-}
-
-/**
- * skb_frag_ref - take an addition reference on a paged fragment of an skb.
- * @skb: the buffer
- * @f: the fragment offset.
- *
- * Takes an additional reference on the @f'th paged fragment of @skb.
- */
-static inline void skb_frag_ref(struct sk_buff *skb, int f)
-{
- __skb_frag_ref(&skb_shinfo(skb)->frags[f]);
-}
-
-/**
- * __skb_frag_unref - release a reference on a paged fragment.
- * @frag: the paged fragment
- *
- * Releases a reference on the paged fragment @frag.
- */
-static inline void __skb_frag_unref(skb_frag_t *frag)
-{
- put_page(skb_frag_page(frag));
-}
-
-/**
- * skb_frag_unref - release a reference on a paged fragment of an skb.
- * @skb: the buffer
- * @f: the fragment offset
- *
- * Releases a reference on the @f'th paged fragment of @skb.
- */
-static inline void skb_frag_unref(struct sk_buff *skb, int f)
-{
- __skb_frag_unref(&skb_shinfo(skb)->frags[f]);
-}
-
-/**
- * skb_frag_address - gets the address of the data contained in a paged fragment
- * @frag: the paged fragment buffer
- *
- * Returns the address of the data within @frag. The page must already
- * be mapped.
- */
-static inline void *skb_frag_address(const skb_frag_t *frag)
-{
- return page_address(skb_frag_page(frag)) + frag->page_offset;
-}
-
-/**
- * skb_frag_address_safe - gets the address of the data contained in a paged fragment
- * @frag: the paged fragment buffer
- *
- * Returns the address of the data within @frag. Checks that the page
- * is mapped and returns %NULL otherwise.
- */
-static inline void *skb_frag_address_safe(const skb_frag_t *frag)
-{
- void *ptr = page_address(skb_frag_page(frag));
- if (unlikely(!ptr))
- return NULL;
-
- return ptr + frag->page_offset;
-}
-
-/**
- * __skb_frag_set_page - sets the page contained in a paged fragment
- * @frag: the paged fragment
- * @page: the page to set
- *
- * Sets the fragment @frag to contain @page.
- */
-static inline void __skb_frag_set_page(skb_frag_t *frag, struct page *page)
-{
- frag->page.p = page;
-}
-
-/**
- * skb_frag_set_page - sets the page contained in a paged fragment of an skb
- * @skb: the buffer
- * @f: the fragment offset
- * @page: the page to set
- *
- * Sets the @f'th fragment of @skb to contain @page.
- */
-static inline void skb_frag_set_page(struct sk_buff *skb, int f,
- struct page *page)
-{
- __skb_frag_set_page(&skb_shinfo(skb)->frags[f], page);
-}
-
-/**
- * skb_frag_dma_map - maps a paged fragment via the DMA API
- * @dev: the device to map the fragment to
- * @frag: the paged fragment to map
- * @offset: the offset within the fragment (starting at the
- * fragment's own offset)
- * @size: the number of bytes to map
- * @dir: the direction of the mapping (%PCI_DMA_*)
- *
- * Maps the page associated with @frag to @device.
- */
-static inline dma_addr_t skb_frag_dma_map(struct device *dev,
- const skb_frag_t *frag,
- size_t offset, size_t size,
- enum dma_data_direction dir)
-{
- return dma_map_page(dev, skb_frag_page(frag),
- frag->page_offset + offset, size, dir);
-}
-
-static inline struct sk_buff *pskb_copy(struct sk_buff *skb,
- gfp_t gfp_mask)
-{
- return __pskb_copy(skb, skb_headroom(skb), gfp_mask);
-}
-
-/**
- * skb_clone_writable - is the header of a clone writable
- * @skb: buffer to check
- * @len: length up to which to write
- *
- * Returns true if modifying the header part of the cloned buffer
- * does not requires the data to be copied.
- */
-static inline int skb_clone_writable(const struct sk_buff *skb, unsigned int len)
-{
- return !skb_header_cloned(skb) &&
- skb_headroom(skb) + len <= skb->hdr_len;
-}
-
-static inline int __skb_cow(struct sk_buff *skb, unsigned int headroom,
- int cloned)
-{
- int delta = 0;
-
- if (headroom > skb_headroom(skb))
- delta = headroom - skb_headroom(skb);
-
- if (delta || cloned)
- return pskb_expand_head(skb, ALIGN(delta, NET_SKB_PAD), 0,
- GFP_ATOMIC);
- return 0;
-}
-
-/**
- * skb_cow - copy header of skb when it is required
- * @skb: buffer to cow
- * @headroom: needed headroom
- *
- * If the skb passed lacks sufficient headroom or its data part
- * is shared, data is reallocated. If reallocation fails, an error
- * is returned and original skb is not changed.
- *
- * The result is skb with writable area skb->head...skb->tail
- * and at least @headroom of space at head.
- */
-static inline int skb_cow(struct sk_buff *skb, unsigned int headroom)
-{
- return __skb_cow(skb, headroom, skb_cloned(skb));
-}
-
-/**
- * skb_cow_head - skb_cow but only making the head writable
- * @skb: buffer to cow
- * @headroom: needed headroom
- *
- * This function is identical to skb_cow except that we replace the
- * skb_cloned check by skb_header_cloned. It should be used when
- * you only need to push on some header and do not need to modify
- * the data.
- */
-static inline int skb_cow_head(struct sk_buff *skb, unsigned int headroom)
-{
- return __skb_cow(skb, headroom, skb_header_cloned(skb));
-}
-
-/**
- * skb_padto - pad an skbuff up to a minimal size
- * @skb: buffer to pad
- * @len: minimal length
- *
- * Pads up a buffer to ensure the trailing bytes exist and are
- * blanked. If the buffer already contains sufficient data it
- * is untouched. Otherwise it is extended. Returns zero on
- * success. The skb is freed on error.
- */
-
-static inline int skb_padto(struct sk_buff *skb, unsigned int len)
-{
- unsigned int size = skb->len;
- if (likely(size >= len))
- return 0;
- return skb_pad(skb, len - size);
-}
-
-static inline int skb_add_data(struct sk_buff *skb,
- char __user *from, int copy)
-{
- const int off = skb->len;
-
- if (skb->ip_summed == CHECKSUM_NONE) {
- int err = 0;
- __wsum csum = csum_and_copy_from_user(from, skb_put(skb, copy),
- copy, 0, &err);
- if (!err) {
- skb->csum = csum_block_add(skb->csum, csum, off);
- return 0;
- }
- } else if (!copy_from_user(skb_put(skb, copy), from, copy))
- return 0;
-
- __skb_trim(skb, off);
- return -EFAULT;
-}
-
-static inline int skb_can_coalesce(struct sk_buff *skb, int i,
- const struct page *page, int off)
-{
- if (i) {
- const struct skb_frag_struct *frag = &skb_shinfo(skb)->frags[i - 1];
-
- return page == skb_frag_page(frag) &&
- off == frag->page_offset + skb_frag_size(frag);
- }
- return 0;
-}
-
-static inline int __skb_linearize(struct sk_buff *skb)
-{
- return __pskb_pull_tail(skb, skb->data_len) ? 0 : -ENOMEM;
-}
-
-/**
- * skb_linearize - convert paged skb to linear one
- * @skb: buffer to linarize
- *
- * If there is no free memory -ENOMEM is returned, otherwise zero
- * is returned and the old skb data released.
- */
-static inline int skb_linearize(struct sk_buff *skb)
-{
- return skb_is_nonlinear(skb) ? __skb_linearize(skb) : 0;
-}
-
-/**
- * skb_linearize_cow - make sure skb is linear and writable
- * @skb: buffer to process
- *
- * If there is no free memory -ENOMEM is returned, otherwise zero
- * is returned and the old skb data released.
- */
-static inline int skb_linearize_cow(struct sk_buff *skb)
-{
- return skb_is_nonlinear(skb) || skb_cloned(skb) ?
- __skb_linearize(skb) : 0;
-}
-
-/**
- * skb_postpull_rcsum - update checksum for received skb after pull
- * @skb: buffer to update
- * @start: start of data before pull
- * @len: length of data pulled
- *
- * After doing a pull on a received packet, you need to call this to
- * update the CHECKSUM_COMPLETE checksum, or set ip_summed to
- * CHECKSUM_NONE so that it can be recomputed from scratch.
- */
-
-static inline void skb_postpull_rcsum(struct sk_buff *skb,
- const void *start, unsigned int len)
-{
- if (skb->ip_summed == CHECKSUM_COMPLETE)
- skb->csum = csum_sub(skb->csum, csum_partial(start, len, 0));
-}
-
-unsigned char *skb_pull_rcsum(struct sk_buff *skb, unsigned int len);
-
-/**
- * pskb_trim_rcsum - trim received skb and update checksum
- * @skb: buffer to trim
- * @len: new length
- *
- * This is exactly the same as pskb_trim except that it ensures the
- * checksum of received packets are still valid after the operation.
- */
-
-static inline int pskb_trim_rcsum(struct sk_buff *skb, unsigned int len)
-{
- if (likely(len >= skb->len))
- return 0;
- if (skb->ip_summed == CHECKSUM_COMPLETE)
- skb->ip_summed = CHECKSUM_NONE;
- return __pskb_trim(skb, len);
-}
-
-#define skb_queue_walk(queue, skb) \
- for (skb = (queue)->next; \
- skb != (struct sk_buff *)(queue); \
- skb = skb->next)
-
-#define skb_queue_walk_safe(queue, skb, tmp) \
- for (skb = (queue)->next, tmp = skb->next; \
- skb != (struct sk_buff *)(queue); \
- skb = tmp, tmp = skb->next)
-
-#define skb_queue_walk_from(queue, skb) \
- for (; skb != (struct sk_buff *)(queue); \
- skb = skb->next)
-
-#define skb_queue_walk_from_safe(queue, skb, tmp) \
- for (tmp = skb->next; \
- skb != (struct sk_buff *)(queue); \
- skb = tmp, tmp = skb->next)
-
-#define skb_queue_reverse_walk(queue, skb) \
- for (skb = (queue)->prev; \
- skb != (struct sk_buff *)(queue); \
- skb = skb->prev)
-
-#define skb_queue_reverse_walk_safe(queue, skb, tmp) \
- for (skb = (queue)->prev, tmp = skb->prev; \
- skb != (struct sk_buff *)(queue); \
- skb = tmp, tmp = skb->prev)
-
-#define skb_queue_reverse_walk_from_safe(queue, skb, tmp) \
- for (tmp = skb->prev; \
- skb != (struct sk_buff *)(queue); \
- skb = tmp, tmp = skb->prev)
-
-static inline bool skb_has_frag_list(const struct sk_buff *skb)
-{
- return skb_shinfo(skb)->frag_list != NULL;
-}
-
-static inline void skb_frag_list_init(struct sk_buff *skb)
-{
- skb_shinfo(skb)->frag_list = NULL;
-}
-
-static inline void skb_frag_add_head(struct sk_buff *skb, struct sk_buff *frag)
-{
- frag->next = skb_shinfo(skb)->frag_list;
- skb_shinfo(skb)->frag_list = frag;
-}
-
-#define skb_walk_frags(skb, iter) \
- for (iter = skb_shinfo(skb)->frag_list; iter; iter = iter->next)
-
-extern struct sk_buff *__skb_recv_datagram(struct sock *sk, unsigned flags,
- int *peeked, int *off, int *err);
-extern struct sk_buff *skb_recv_datagram(struct sock *sk, unsigned flags,
- int noblock, int *err);
-extern unsigned int datagram_poll(struct file *file, struct socket *sock,
- struct poll_table_struct *wait);
-extern int skb_copy_datagram_iovec(const struct sk_buff *from,
- int offset, struct iovec *to,
- int size);
-extern int skb_copy_and_csum_datagram_iovec(struct sk_buff *skb,
- int hlen,
- struct iovec *iov);
-extern int skb_copy_datagram_from_iovec(struct sk_buff *skb,
- int offset,
- const struct iovec *from,
- int from_offset,
- int len);
-extern int skb_copy_datagram_const_iovec(const struct sk_buff *from,
- int offset,
- const struct iovec *to,
- int to_offset,
- int size);
-extern void skb_free_datagram(struct sock *sk, struct sk_buff *skb);
-extern void skb_free_datagram_locked(struct sock *sk,
- struct sk_buff *skb);
-extern int skb_kill_datagram(struct sock *sk, struct sk_buff *skb,
- unsigned int flags);
-extern __wsum skb_checksum(const struct sk_buff *skb, int offset,
- int len, __wsum csum);
-extern int skb_copy_bits(const struct sk_buff *skb, int offset,
- void *to, int len);
-extern int skb_store_bits(struct sk_buff *skb, int offset,
- const void *from, int len);
-extern __wsum skb_copy_and_csum_bits(const struct sk_buff *skb,
- int offset, u8 *to, int len,
- __wsum csum);
-extern int skb_splice_bits(struct sk_buff *skb,
- unsigned int offset,
- struct pipe_inode_info *pipe,
- unsigned int len,
- unsigned int flags);
-extern void skb_copy_and_csum_dev(const struct sk_buff *skb, u8 *to);
-extern void skb_split(struct sk_buff *skb,
- struct sk_buff *skb1, const u32 len);
-extern int skb_shift(struct sk_buff *tgt, struct sk_buff *skb,
- int shiftlen);
-
-extern struct sk_buff *skb_segment(struct sk_buff *skb,
- netdev_features_t features);
-
-static inline void *skb_header_pointer(const struct sk_buff *skb, int offset,
- int len, void *buffer)
-{
- int hlen = skb_headlen(skb);
-
- if (hlen - offset >= len)
- return skb->data + offset;
-
- if (skb_copy_bits(skb, offset, buffer, len) < 0)
- return NULL;
-
- return buffer;
-}
-
-static inline void skb_copy_from_linear_data(const struct sk_buff *skb,
- void *to,
- const unsigned int len)
-{
- memcpy(to, skb->data, len);
-}
-
-static inline void skb_copy_from_linear_data_offset(const struct sk_buff *skb,
- const int offset, void *to,
- const unsigned int len)
-{
- memcpy(to, skb->data + offset, len);
-}
-
-static inline void skb_copy_to_linear_data(struct sk_buff *skb,
- const void *from,
- const unsigned int len)
-{
- memcpy(skb->data, from, len);
-}
-
-static inline void skb_copy_to_linear_data_offset(struct sk_buff *skb,
- const int offset,
- const void *from,
- const unsigned int len)
-{
- memcpy(skb->data + offset, from, len);
-}
-
-extern void skb_init(void);
-
-static inline ktime_t skb_get_ktime(const struct sk_buff *skb)
-{
- return skb->tstamp;
-}
-
-/**
- * skb_get_timestamp - get timestamp from a skb
- * @skb: skb to get stamp from
- * @stamp: pointer to struct timeval to store stamp in
- *
- * Timestamps are stored in the skb as offsets to a base timestamp.
- * This function converts the offset back to a struct timeval and stores
- * it in stamp.
- */
-static inline void skb_get_timestamp(const struct sk_buff *skb,
- struct timeval *stamp)
-{
- *stamp = ktime_to_timeval(skb->tstamp);
-}
-
-static inline void skb_get_timestampns(const struct sk_buff *skb,
- struct timespec *stamp)
-{
- *stamp = ktime_to_timespec(skb->tstamp);
-}
-
-static inline void __net_timestamp(struct sk_buff *skb)
-{
- skb->tstamp = ktime_get_real();
-}
-
-static inline ktime_t net_timedelta(ktime_t t)
-{
- return ktime_sub(ktime_get_real(), t);
-}
-
-static inline ktime_t net_invalid_timestamp(void)
-{
- return ktime_set(0, 0);
-}
-
-extern void skb_timestamping_init(void);
-
-#ifdef CONFIG_NETWORK_PHY_TIMESTAMPING
-
-extern void skb_clone_tx_timestamp(struct sk_buff *skb);
-extern bool skb_defer_rx_timestamp(struct sk_buff *skb);
-
-#else /* CONFIG_NETWORK_PHY_TIMESTAMPING */
-
-static inline void skb_clone_tx_timestamp(struct sk_buff *skb)
-{
-}
-
-static inline bool skb_defer_rx_timestamp(struct sk_buff *skb)
-{
- return false;
-}
-
-#endif /* !CONFIG_NETWORK_PHY_TIMESTAMPING */
-
-/**
- * skb_complete_tx_timestamp() - deliver cloned skb with tx timestamps
- *
- * PHY drivers may accept clones of transmitted packets for
- * timestamping via their phy_driver.txtstamp method. These drivers
- * must call this function to return the skb back to the stack, with
- * or without a timestamp.
- *
- * @skb: clone of the the original outgoing packet
- * @hwtstamps: hardware time stamps, may be NULL if not available
- *
- */
-void skb_complete_tx_timestamp(struct sk_buff *skb,
- struct skb_shared_hwtstamps *hwtstamps);
-
-/**
- * skb_tstamp_tx - queue clone of skb with send time stamps
- * @orig_skb: the original outgoing packet
- * @hwtstamps: hardware time stamps, may be NULL if not available
- *
- * If the skb has a socket associated, then this function clones the
- * skb (thus sharing the actual data and optional structures), stores
- * the optional hardware time stamping information (if non NULL) or
- * generates a software time stamp (otherwise), then queues the clone
- * to the error queue of the socket. Errors are silently ignored.
- */
-extern void skb_tstamp_tx(struct sk_buff *orig_skb,
- struct skb_shared_hwtstamps *hwtstamps);
-
-static inline void sw_tx_timestamp(struct sk_buff *skb)
-{
- if (skb_shinfo(skb)->tx_flags & SKBTX_SW_TSTAMP &&
- !(skb_shinfo(skb)->tx_flags & SKBTX_IN_PROGRESS))
- skb_tstamp_tx(skb, NULL);
-}
-
-/**
- * skb_tx_timestamp() - Driver hook for transmit timestamping
- *
- * Ethernet MAC Drivers should call this function in their hard_xmit()
- * function immediately before giving the sk_buff to the MAC hardware.
- *
- * @skb: A socket buffer.
- */
-static inline void skb_tx_timestamp(struct sk_buff *skb)
-{
- skb_clone_tx_timestamp(skb);
- sw_tx_timestamp(skb);
-}
-
-/**
- * skb_complete_wifi_ack - deliver skb with wifi status
- *
- * @skb: the original outgoing packet
- * @acked: ack status
- *
- */
-void skb_complete_wifi_ack(struct sk_buff *skb, bool acked);
-
-extern __sum16 __skb_checksum_complete_head(struct sk_buff *skb, int len);
-extern __sum16 __skb_checksum_complete(struct sk_buff *skb);
-
-static inline int skb_csum_unnecessary(const struct sk_buff *skb)
-{
- return skb->ip_summed & CHECKSUM_UNNECESSARY;
-}
-
-/**
- * skb_checksum_complete - Calculate checksum of an entire packet
- * @skb: packet to process
- *
- * This function calculates the checksum over the entire packet plus
- * the value of skb->csum. The latter can be used to supply the
- * checksum of a pseudo header as used by TCP/UDP. It returns the
- * checksum.
- *
- * For protocols that contain complete checksums such as ICMP/TCP/UDP,
- * this function can be used to verify that checksum on received
- * packets. In that case the function should return zero if the
- * checksum is correct. In particular, this function will return zero
- * if skb->ip_summed is CHECKSUM_UNNECESSARY which indicates that the
- * hardware has already verified the correctness of the checksum.
- */
-static inline __sum16 skb_checksum_complete(struct sk_buff *skb)
-{
- return skb_csum_unnecessary(skb) ?
- 0 : __skb_checksum_complete(skb);
-}
-
-#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
-extern void nf_conntrack_destroy(struct nf_conntrack *nfct);
-static inline void nf_conntrack_put(struct nf_conntrack *nfct)
-{
- if (nfct && atomic_dec_and_test(&nfct->use))
- nf_conntrack_destroy(nfct);
-}
-static inline void nf_conntrack_get(struct nf_conntrack *nfct)
-{
- if (nfct)
- atomic_inc(&nfct->use);
-}
-#endif
-#ifdef NET_SKBUFF_NF_DEFRAG_NEEDED
-static inline void nf_conntrack_get_reasm(struct sk_buff *skb)
-{
- if (skb)
- atomic_inc(&skb->users);
-}
-static inline void nf_conntrack_put_reasm(struct sk_buff *skb)
-{
- if (skb)
- kfree_skb(skb);
-}
-#endif
-#ifdef CONFIG_BRIDGE_NETFILTER
-static inline void nf_bridge_put(struct nf_bridge_info *nf_bridge)
-{
- if (nf_bridge && atomic_dec_and_test(&nf_bridge->use))
- kfree(nf_bridge);
-}
-static inline void nf_bridge_get(struct nf_bridge_info *nf_bridge)
-{
- if (nf_bridge)
- atomic_inc(&nf_bridge->use);
-}
-#endif /* CONFIG_BRIDGE_NETFILTER */
-static inline void nf_reset(struct sk_buff *skb)
-{
-#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
- nf_conntrack_put(skb->nfct);
- skb->nfct = NULL;
-#endif
-#ifdef NET_SKBUFF_NF_DEFRAG_NEEDED
- nf_conntrack_put_reasm(skb->nfct_reasm);
- skb->nfct_reasm = NULL;
-#endif
-#ifdef CONFIG_BRIDGE_NETFILTER
- nf_bridge_put(skb->nf_bridge);
- skb->nf_bridge = NULL;
-#endif
-}
-
-/* Note: This doesn't put any conntrack and bridge info in dst. */
-static inline void __nf_copy(struct sk_buff *dst, const struct sk_buff *src)
-{
-#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
- dst->nfct = src->nfct;
- nf_conntrack_get(src->nfct);
- dst->nfctinfo = src->nfctinfo;
-#endif
-#ifdef NET_SKBUFF_NF_DEFRAG_NEEDED
- dst->nfct_reasm = src->nfct_reasm;
- nf_conntrack_get_reasm(src->nfct_reasm);
-#endif
-#ifdef CONFIG_BRIDGE_NETFILTER
- dst->nf_bridge = src->nf_bridge;
- nf_bridge_get(src->nf_bridge);
-#endif
-}
-
-static inline void nf_copy(struct sk_buff *dst, const struct sk_buff *src)
-{
-#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
- nf_conntrack_put(dst->nfct);
-#endif
-#ifdef NET_SKBUFF_NF_DEFRAG_NEEDED
- nf_conntrack_put_reasm(dst->nfct_reasm);
-#endif
-#ifdef CONFIG_BRIDGE_NETFILTER
- nf_bridge_put(dst->nf_bridge);
-#endif
- __nf_copy(dst, src);
-}
-
-#ifdef CONFIG_NETWORK_SECMARK
-static inline void skb_copy_secmark(struct sk_buff *to, const struct sk_buff *from)
-{
- to->secmark = from->secmark;
-}
-
-static inline void skb_init_secmark(struct sk_buff *skb)
-{
- skb->secmark = 0;
-}
-#else
-static inline void skb_copy_secmark(struct sk_buff *to, const struct sk_buff *from)
-{ }
-
-static inline void skb_init_secmark(struct sk_buff *skb)
-{ }
-#endif
-
-static inline void skb_set_queue_mapping(struct sk_buff *skb, u16 queue_mapping)
-{
- skb->queue_mapping = queue_mapping;
-}
-
-static inline u16 skb_get_queue_mapping(const struct sk_buff *skb)
-{
- return skb->queue_mapping;
-}
-
-static inline void skb_copy_queue_mapping(struct sk_buff *to, const struct sk_buff *from)
-{
- to->queue_mapping = from->queue_mapping;
-}
-
-static inline void skb_record_rx_queue(struct sk_buff *skb, u16 rx_queue)
-{
- skb->queue_mapping = rx_queue + 1;
-}
-
-static inline u16 skb_get_rx_queue(const struct sk_buff *skb)
-{
- return skb->queue_mapping - 1;
-}
-
-static inline bool skb_rx_queue_recorded(const struct sk_buff *skb)
-{
- return skb->queue_mapping != 0;
-}
-
-extern u16 __skb_tx_hash(const struct net_device *dev,
- const struct sk_buff *skb,
- unsigned int num_tx_queues);
-
-#ifdef CONFIG_XFRM
-static inline struct sec_path *skb_sec_path(struct sk_buff *skb)
-{
- return skb->sp;
-}
-#else
-static inline struct sec_path *skb_sec_path(struct sk_buff *skb)
-{
- return NULL;
-}
-#endif
-
-static inline bool skb_is_gso(const struct sk_buff *skb)
-{
- return skb_shinfo(skb)->gso_size;
-}
-
-static inline bool skb_is_gso_v6(const struct sk_buff *skb)
-{
- return skb_shinfo(skb)->gso_type & SKB_GSO_TCPV6;
-}
-
-extern void __skb_warn_lro_forwarding(const struct sk_buff *skb);
-
-static inline bool skb_warn_if_lro(const struct sk_buff *skb)
-{
- /* LRO sets gso_size but not gso_type, whereas if GSO is really
- * wanted then gso_type will be set. */
- const struct skb_shared_info *shinfo = skb_shinfo(skb);
-
- if (skb_is_nonlinear(skb) && shinfo->gso_size != 0 &&
- unlikely(shinfo->gso_type == 0)) {
- __skb_warn_lro_forwarding(skb);
- return true;
- }
- return false;
-}
-
-static inline void skb_forward_csum(struct sk_buff *skb)
-{
- /* Unfortunately we don't support this one. Any brave souls? */
- if (skb->ip_summed == CHECKSUM_COMPLETE)
- skb->ip_summed = CHECKSUM_NONE;
-}
-
-/**
- * skb_checksum_none_assert - make sure skb ip_summed is CHECKSUM_NONE
- * @skb: skb to check
- *
- * fresh skbs have their ip_summed set to CHECKSUM_NONE.
- * Instead of forcing ip_summed to CHECKSUM_NONE, we can
- * use this helper, to document places where we make this assertion.
- */
-static inline void skb_checksum_none_assert(const struct sk_buff *skb)
-{
-#ifdef DEBUG
- BUG_ON(skb->ip_summed != CHECKSUM_NONE);
-#endif
-}
-
-bool skb_partial_csum_set(struct sk_buff *skb, u16 start, u16 off);
-
-static inline bool skb_is_recycleable(const struct sk_buff *skb, int skb_size)
-{
- if (irqs_disabled())
- return false;
-
- if (skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY)
- return false;
-
- if (skb_is_nonlinear(skb) || skb->fclone != SKB_FCLONE_UNAVAILABLE)
- return false;
-
- skb_size = SKB_DATA_ALIGN(skb_size + NET_SKB_PAD);
- if (skb_end_pointer(skb) - skb->head < skb_size)
- return false;
-
- if (skb_shared(skb) || skb_cloned(skb))
- return false;
-
- return true;
-}
-#endif /* __KERNEL__ */
-#endif /* _LINUX_SKBUFF_H */
diff --git a/ANDROID_3.4.5/include/linux/slab.h b/ANDROID_3.4.5/include/linux/slab.h
deleted file mode 100644
index a595dce6..00000000
--- a/ANDROID_3.4.5/include/linux/slab.h
+++ /dev/null
@@ -1,367 +0,0 @@
-/*
- * Written by Mark Hemment, 1996 (markhe@nextd.demon.co.uk).
- *
- * (C) SGI 2006, Christoph Lameter
- * Cleaned up and restructured to ease the addition of alternative
- * implementations of SLAB allocators.
- */
-
-#ifndef _LINUX_SLAB_H
-#define _LINUX_SLAB_H
-
-#include <linux/gfp.h>
-#include <linux/types.h>
-
-/*
- * Flags to pass to kmem_cache_create().
- * The ones marked DEBUG are only valid if CONFIG_SLAB_DEBUG is set.
- */
-#define SLAB_DEBUG_FREE 0x00000100UL /* DEBUG: Perform (expensive) checks on free */
-#define SLAB_RED_ZONE 0x00000400UL /* DEBUG: Red zone objs in a cache */
-#define SLAB_POISON 0x00000800UL /* DEBUG: Poison objects */
-#define SLAB_HWCACHE_ALIGN 0x00002000UL /* Align objs on cache lines */
-#define SLAB_CACHE_DMA 0x00004000UL /* Use GFP_DMA memory */
-#define SLAB_STORE_USER 0x00010000UL /* DEBUG: Store the last owner for bug hunting */
-#define SLAB_PANIC 0x00040000UL /* Panic if kmem_cache_create() fails */
-/*
- * SLAB_DESTROY_BY_RCU - **WARNING** READ THIS!
- *
- * This delays freeing the SLAB page by a grace period, it does _NOT_
- * delay object freeing. This means that if you do kmem_cache_free()
- * that memory location is free to be reused at any time. Thus it may
- * be possible to see another object there in the same RCU grace period.
- *
- * This feature only ensures the memory location backing the object
- * stays valid, the trick to using this is relying on an independent
- * object validation pass. Something like:
- *
- * rcu_read_lock()
- * again:
- * obj = lockless_lookup(key);
- * if (obj) {
- * if (!try_get_ref(obj)) // might fail for free objects
- * goto again;
- *
- * if (obj->key != key) { // not the object we expected
- * put_ref(obj);
- * goto again;
- * }
- * }
- * rcu_read_unlock();
- *
- * See also the comment on struct slab_rcu in mm/slab.c.
- */
-#define SLAB_DESTROY_BY_RCU 0x00080000UL /* Defer freeing slabs to RCU */
-#define SLAB_MEM_SPREAD 0x00100000UL /* Spread some memory over cpuset */
-#define SLAB_TRACE 0x00200000UL /* Trace allocations and frees */
-
-/* Flag to prevent checks on free */
-#ifdef CONFIG_DEBUG_OBJECTS
-# define SLAB_DEBUG_OBJECTS 0x00400000UL
-#else
-# define SLAB_DEBUG_OBJECTS 0x00000000UL
-#endif
-
-#define SLAB_NOLEAKTRACE 0x00800000UL /* Avoid kmemleak tracing */
-
-/* Don't track use of uninitialized memory */
-#ifdef CONFIG_KMEMCHECK
-# define SLAB_NOTRACK 0x01000000UL
-#else
-# define SLAB_NOTRACK 0x00000000UL
-#endif
-#ifdef CONFIG_FAILSLAB
-# define SLAB_FAILSLAB 0x02000000UL /* Fault injection mark */
-#else
-# define SLAB_FAILSLAB 0x00000000UL
-#endif
-
-/* The following flags affect the page allocator grouping pages by mobility */
-#define SLAB_RECLAIM_ACCOUNT 0x00020000UL /* Objects are reclaimable */
-#define SLAB_TEMPORARY SLAB_RECLAIM_ACCOUNT /* Objects are short-lived */
-/*
- * ZERO_SIZE_PTR will be returned for zero sized kmalloc requests.
- *
- * Dereferencing ZERO_SIZE_PTR will lead to a distinct access fault.
- *
- * ZERO_SIZE_PTR can be passed to kfree though in the same way that NULL can.
- * Both make kfree a no-op.
- */
-#define ZERO_SIZE_PTR ((void *)16)
-
-#define ZERO_OR_NULL_PTR(x) ((unsigned long)(x) <= \
- (unsigned long)ZERO_SIZE_PTR)
-
-/*
- * struct kmem_cache related prototypes
- */
-void __init kmem_cache_init(void);
-int slab_is_available(void);
-
-struct kmem_cache *kmem_cache_create(const char *, size_t, size_t,
- unsigned long,
- void (*)(void *));
-void kmem_cache_destroy(struct kmem_cache *);
-int kmem_cache_shrink(struct kmem_cache *);
-void kmem_cache_free(struct kmem_cache *, void *);
-unsigned int kmem_cache_size(struct kmem_cache *);
-
-/*
- * Please use this macro to create slab caches. Simply specify the
- * name of the structure and maybe some flags that are listed above.
- *
- * The alignment of the struct determines object alignment. If you
- * f.e. add ____cacheline_aligned_in_smp to the struct declaration
- * then the objects will be properly aligned in SMP configurations.
- */
-#define KMEM_CACHE(__struct, __flags) kmem_cache_create(#__struct,\
- sizeof(struct __struct), __alignof__(struct __struct),\
- (__flags), NULL)
-
-/*
- * The largest kmalloc size supported by the slab allocators is
- * 32 megabyte (2^25) or the maximum allocatable page order if that is
- * less than 32 MB.
- *
- * WARNING: Its not easy to increase this value since the allocators have
- * to do various tricks to work around compiler limitations in order to
- * ensure proper constant folding.
- */
-#define KMALLOC_SHIFT_HIGH ((MAX_ORDER + PAGE_SHIFT - 1) <= 25 ? \
- (MAX_ORDER + PAGE_SHIFT - 1) : 25)
-
-#define KMALLOC_MAX_SIZE (1UL << KMALLOC_SHIFT_HIGH)
-#define KMALLOC_MAX_ORDER (KMALLOC_SHIFT_HIGH - PAGE_SHIFT)
-
-/*
- * Some archs want to perform DMA into kmalloc caches and need a guaranteed
- * alignment larger than the alignment of a 64-bit integer.
- * Setting ARCH_KMALLOC_MINALIGN in arch headers allows that.
- */
-#ifdef ARCH_DMA_MINALIGN
-#define ARCH_KMALLOC_MINALIGN ARCH_DMA_MINALIGN
-#else
-#define ARCH_KMALLOC_MINALIGN __alignof__(unsigned long long)
-#endif
-
-/*
- * Setting ARCH_SLAB_MINALIGN in arch headers allows a different alignment.
- * Intended for arches that get misalignment faults even for 64 bit integer
- * aligned buffers.
- */
-#ifndef ARCH_SLAB_MINALIGN
-#define ARCH_SLAB_MINALIGN __alignof__(unsigned long long)
-#endif
-
-/*
- * Common kmalloc functions provided by all allocators
- */
-void * __must_check __krealloc(const void *, size_t, gfp_t);
-void * __must_check krealloc(const void *, size_t, gfp_t);
-void kfree(const void *);
-void kzfree(const void *);
-size_t ksize(const void *);
-
-/*
- * Allocator specific definitions. These are mainly used to establish optimized
- * ways to convert kmalloc() calls to kmem_cache_alloc() invocations by
- * selecting the appropriate general cache at compile time.
- *
- * Allocators must define at least:
- *
- * kmem_cache_alloc()
- * __kmalloc()
- * kmalloc()
- *
- * Those wishing to support NUMA must also define:
- *
- * kmem_cache_alloc_node()
- * kmalloc_node()
- *
- * See each allocator definition file for additional comments and
- * implementation notes.
- */
-#ifdef CONFIG_SLUB
-#include <linux/slub_def.h>
-#elif defined(CONFIG_SLOB)
-#include <linux/slob_def.h>
-#else
-#include <linux/slab_def.h>
-#endif
-
-/**
- * kmalloc_array - allocate memory for an array.
- * @n: number of elements.
- * @size: element size.
- * @flags: the type of memory to allocate.
- *
- * The @flags argument may be one of:
- *
- * %GFP_USER - Allocate memory on behalf of user. May sleep.
- *
- * %GFP_KERNEL - Allocate normal kernel ram. May sleep.
- *
- * %GFP_ATOMIC - Allocation will not sleep. May use emergency pools.
- * For example, use this inside interrupt handlers.
- *
- * %GFP_HIGHUSER - Allocate pages from high memory.
- *
- * %GFP_NOIO - Do not do any I/O at all while trying to get memory.
- *
- * %GFP_NOFS - Do not make any fs calls while trying to get memory.
- *
- * %GFP_NOWAIT - Allocation will not sleep.
- *
- * %GFP_THISNODE - Allocate node-local memory only.
- *
- * %GFP_DMA - Allocation suitable for DMA.
- * Should only be used for kmalloc() caches. Otherwise, use a
- * slab created with SLAB_DMA.
- *
- * Also it is possible to set different flags by OR'ing
- * in one or more of the following additional @flags:
- *
- * %__GFP_COLD - Request cache-cold pages instead of
- * trying to return cache-warm pages.
- *
- * %__GFP_HIGH - This allocation has high priority and may use emergency pools.
- *
- * %__GFP_NOFAIL - Indicate that this allocation is in no way allowed to fail
- * (think twice before using).
- *
- * %__GFP_NORETRY - If memory is not immediately available,
- * then give up at once.
- *
- * %__GFP_NOWARN - If allocation fails, don't issue any warnings.
- *
- * %__GFP_REPEAT - If allocation fails initially, try once more before failing.
- *
- * There are other flags available as well, but these are not intended
- * for general use, and so are not documented here. For a full list of
- * potential flags, always refer to linux/gfp.h.
- */
-static inline void *kmalloc_array(size_t n, size_t size, gfp_t flags)
-{
- if (size != 0 && n > ULONG_MAX / size)
- return NULL;
- return __kmalloc(n * size, flags);
-}
-
-/**
- * kcalloc - allocate memory for an array. The memory is set to zero.
- * @n: number of elements.
- * @size: element size.
- * @flags: the type of memory to allocate (see kmalloc).
- */
-static inline void *kcalloc(size_t n, size_t size, gfp_t flags)
-{
- return kmalloc_array(n, size, flags | __GFP_ZERO);
-}
-
-#if !defined(CONFIG_NUMA) && !defined(CONFIG_SLOB)
-/**
- * kmalloc_node - allocate memory from a specific node
- * @size: how many bytes of memory are required.
- * @flags: the type of memory to allocate (see kcalloc).
- * @node: node to allocate from.
- *
- * kmalloc() for non-local nodes, used to allocate from a specific node
- * if available. Equivalent to kmalloc() in the non-NUMA single-node
- * case.
- */
-static inline void *kmalloc_node(size_t size, gfp_t flags, int node)
-{
- return kmalloc(size, flags);
-}
-
-static inline void *__kmalloc_node(size_t size, gfp_t flags, int node)
-{
- return __kmalloc(size, flags);
-}
-
-void *kmem_cache_alloc(struct kmem_cache *, gfp_t);
-
-static inline void *kmem_cache_alloc_node(struct kmem_cache *cachep,
- gfp_t flags, int node)
-{
- return kmem_cache_alloc(cachep, flags);
-}
-#endif /* !CONFIG_NUMA && !CONFIG_SLOB */
-
-/*
- * kmalloc_track_caller is a special version of kmalloc that records the
- * calling function of the routine calling it for slab leak tracking instead
- * of just the calling function (confusing, eh?).
- * It's useful when the call to kmalloc comes from a widely-used standard
- * allocator where we care about the real place the memory allocation
- * request comes from.
- */
-#if defined(CONFIG_DEBUG_SLAB) || defined(CONFIG_SLUB) || \
- (defined(CONFIG_SLAB) && defined(CONFIG_TRACING))
-extern void *__kmalloc_track_caller(size_t, gfp_t, unsigned long);
-#define kmalloc_track_caller(size, flags) \
- __kmalloc_track_caller(size, flags, _RET_IP_)
-#else
-#define kmalloc_track_caller(size, flags) \
- __kmalloc(size, flags)
-#endif /* DEBUG_SLAB */
-
-#ifdef CONFIG_NUMA
-/*
- * kmalloc_node_track_caller is a special version of kmalloc_node that
- * records the calling function of the routine calling it for slab leak
- * tracking instead of just the calling function (confusing, eh?).
- * It's useful when the call to kmalloc_node comes from a widely-used
- * standard allocator where we care about the real place the memory
- * allocation request comes from.
- */
-#if defined(CONFIG_DEBUG_SLAB) || defined(CONFIG_SLUB) || \
- (defined(CONFIG_SLAB) && defined(CONFIG_TRACING))
-extern void *__kmalloc_node_track_caller(size_t, gfp_t, int, unsigned long);
-#define kmalloc_node_track_caller(size, flags, node) \
- __kmalloc_node_track_caller(size, flags, node, \
- _RET_IP_)
-#else
-#define kmalloc_node_track_caller(size, flags, node) \
- __kmalloc_node(size, flags, node)
-#endif
-
-#else /* CONFIG_NUMA */
-
-#define kmalloc_node_track_caller(size, flags, node) \
- kmalloc_track_caller(size, flags)
-
-#endif /* CONFIG_NUMA */
-
-/*
- * Shortcuts
- */
-static inline void *kmem_cache_zalloc(struct kmem_cache *k, gfp_t flags)
-{
- return kmem_cache_alloc(k, flags | __GFP_ZERO);
-}
-
-/**
- * kzalloc - allocate memory. The memory is set to zero.
- * @size: how many bytes of memory are required.
- * @flags: the type of memory to allocate (see kmalloc).
- */
-static inline void *kzalloc(size_t size, gfp_t flags)
-{
- return kmalloc(size, flags | __GFP_ZERO);
-}
-
-/**
- * kzalloc_node - allocate zeroed memory from a particular memory node.
- * @size: how many bytes of memory are required.
- * @flags: the type of memory to allocate (see kmalloc).
- * @node: memory node from which to allocate
- */
-static inline void *kzalloc_node(size_t size, gfp_t flags, int node)
-{
- return kmalloc_node(size, flags | __GFP_ZERO, node);
-}
-
-void __init kmem_cache_init_late(void);
-
-#endif /* _LINUX_SLAB_H */
diff --git a/ANDROID_3.4.5/include/linux/slab_def.h b/ANDROID_3.4.5/include/linux/slab_def.h
deleted file mode 100644
index fbd1117f..00000000
--- a/ANDROID_3.4.5/include/linux/slab_def.h
+++ /dev/null
@@ -1,215 +0,0 @@
-#ifndef _LINUX_SLAB_DEF_H
-#define _LINUX_SLAB_DEF_H
-
-/*
- * Definitions unique to the original Linux SLAB allocator.
- *
- * What we provide here is a way to optimize the frequent kmalloc
- * calls in the kernel by selecting the appropriate general cache
- * if kmalloc was called with a size that can be established at
- * compile time.
- */
-
-#include <linux/init.h>
-#include <asm/page.h> /* kmalloc_sizes.h needs PAGE_SIZE */
-#include <asm/cache.h> /* kmalloc_sizes.h needs L1_CACHE_BYTES */
-#include <linux/compiler.h>
-
-/*
- * struct kmem_cache
- *
- * manages a cache.
- */
-
-struct kmem_cache {
-/* 1) Cache tunables. Protected by cache_chain_mutex */
- unsigned int batchcount;
- unsigned int limit;
- unsigned int shared;
-
- unsigned int buffer_size;
- u32 reciprocal_buffer_size;
-/* 2) touched by every alloc & free from the backend */
-
- unsigned int flags; /* constant flags */
- unsigned int num; /* # of objs per slab */
-
-/* 3) cache_grow/shrink */
- /* order of pgs per slab (2^n) */
- unsigned int gfporder;
-
- /* force GFP flags, e.g. GFP_DMA */
- gfp_t gfpflags;
-
- size_t colour; /* cache colouring range */
- unsigned int colour_off; /* colour offset */
- struct kmem_cache *slabp_cache;
- unsigned int slab_size;
- unsigned int dflags; /* dynamic flags */
-
- /* constructor func */
- void (*ctor)(void *obj);
-
-/* 4) cache creation/removal */
- const char *name;
- struct list_head next;
-
-/* 5) statistics */
-#ifdef CONFIG_DEBUG_SLAB
- unsigned long num_active;
- unsigned long num_allocations;
- unsigned long high_mark;
- unsigned long grown;
- unsigned long reaped;
- unsigned long errors;
- unsigned long max_freeable;
- unsigned long node_allocs;
- unsigned long node_frees;
- unsigned long node_overflow;
- atomic_t allochit;
- atomic_t allocmiss;
- atomic_t freehit;
- atomic_t freemiss;
-
- /*
- * If debugging is enabled, then the allocator can add additional
- * fields and/or padding to every object. buffer_size contains the total
- * object size including these internal fields, the following two
- * variables contain the offset to the user object and its size.
- */
- int obj_offset;
- int obj_size;
-#endif /* CONFIG_DEBUG_SLAB */
-
-/* 6) per-cpu/per-node data, touched during every alloc/free */
- /*
- * We put array[] at the end of kmem_cache, because we want to size
- * this array to nr_cpu_ids slots instead of NR_CPUS
- * (see kmem_cache_init())
- * We still use [NR_CPUS] and not [1] or [0] because cache_cache
- * is statically defined, so we reserve the max number of cpus.
- */
- struct kmem_list3 **nodelists;
- struct array_cache *array[NR_CPUS];
- /*
- * Do not add fields after array[]
- */
-};
-
-/* Size description struct for general caches. */
-struct cache_sizes {
- size_t cs_size;
- struct kmem_cache *cs_cachep;
-#ifdef CONFIG_ZONE_DMA
- struct kmem_cache *cs_dmacachep;
-#endif
-};
-extern struct cache_sizes malloc_sizes[];
-
-void *kmem_cache_alloc(struct kmem_cache *, gfp_t);
-void *__kmalloc(size_t size, gfp_t flags);
-
-#ifdef CONFIG_TRACING
-extern void *kmem_cache_alloc_trace(size_t size,
- struct kmem_cache *cachep, gfp_t flags);
-extern size_t slab_buffer_size(struct kmem_cache *cachep);
-#else
-static __always_inline void *
-kmem_cache_alloc_trace(size_t size, struct kmem_cache *cachep, gfp_t flags)
-{
- return kmem_cache_alloc(cachep, flags);
-}
-static inline size_t slab_buffer_size(struct kmem_cache *cachep)
-{
- return 0;
-}
-#endif
-
-static __always_inline void *kmalloc(size_t size, gfp_t flags)
-{
- struct kmem_cache *cachep;
- void *ret;
-
- if (__builtin_constant_p(size)) {
- int i = 0;
-
- if (!size)
- return ZERO_SIZE_PTR;
-
-#define CACHE(x) \
- if (size <= x) \
- goto found; \
- else \
- i++;
-#include <linux/kmalloc_sizes.h>
-#undef CACHE
- return NULL;
-found:
-#ifdef CONFIG_ZONE_DMA
- if (flags & GFP_DMA)
- cachep = malloc_sizes[i].cs_dmacachep;
- else
-#endif
- cachep = malloc_sizes[i].cs_cachep;
-
- ret = kmem_cache_alloc_trace(size, cachep, flags);
-
- return ret;
- }
- return __kmalloc(size, flags);
-}
-
-#ifdef CONFIG_NUMA
-extern void *__kmalloc_node(size_t size, gfp_t flags, int node);
-extern void *kmem_cache_alloc_node(struct kmem_cache *, gfp_t flags, int node);
-
-#ifdef CONFIG_TRACING
-extern void *kmem_cache_alloc_node_trace(size_t size,
- struct kmem_cache *cachep,
- gfp_t flags,
- int nodeid);
-#else
-static __always_inline void *
-kmem_cache_alloc_node_trace(size_t size,
- struct kmem_cache *cachep,
- gfp_t flags,
- int nodeid)
-{
- return kmem_cache_alloc_node(cachep, flags, nodeid);
-}
-#endif
-
-static __always_inline void *kmalloc_node(size_t size, gfp_t flags, int node)
-{
- struct kmem_cache *cachep;
-
- if (__builtin_constant_p(size)) {
- int i = 0;
-
- if (!size)
- return ZERO_SIZE_PTR;
-
-#define CACHE(x) \
- if (size <= x) \
- goto found; \
- else \
- i++;
-#include <linux/kmalloc_sizes.h>
-#undef CACHE
- return NULL;
-found:
-#ifdef CONFIG_ZONE_DMA
- if (flags & GFP_DMA)
- cachep = malloc_sizes[i].cs_dmacachep;
- else
-#endif
- cachep = malloc_sizes[i].cs_cachep;
-
- return kmem_cache_alloc_node_trace(size, cachep, flags, node);
- }
- return __kmalloc_node(size, flags, node);
-}
-
-#endif /* CONFIG_NUMA */
-
-#endif /* _LINUX_SLAB_DEF_H */
diff --git a/ANDROID_3.4.5/include/linux/slob_def.h b/ANDROID_3.4.5/include/linux/slob_def.h
deleted file mode 100644
index 0ec00b39..00000000
--- a/ANDROID_3.4.5/include/linux/slob_def.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef __LINUX_SLOB_DEF_H
-#define __LINUX_SLOB_DEF_H
-
-void *kmem_cache_alloc_node(struct kmem_cache *, gfp_t flags, int node);
-
-static __always_inline void *kmem_cache_alloc(struct kmem_cache *cachep,
- gfp_t flags)
-{
- return kmem_cache_alloc_node(cachep, flags, -1);
-}
-
-void *__kmalloc_node(size_t size, gfp_t flags, int node);
-
-static __always_inline void *kmalloc_node(size_t size, gfp_t flags, int node)
-{
- return __kmalloc_node(size, flags, node);
-}
-
-/**
- * kmalloc - allocate memory
- * @size: how many bytes of memory are required.
- * @flags: the type of memory to allocate (see kcalloc).
- *
- * kmalloc is the normal method of allocating memory
- * in the kernel.
- */
-static __always_inline void *kmalloc(size_t size, gfp_t flags)
-{
- return __kmalloc_node(size, flags, -1);
-}
-
-static __always_inline void *__kmalloc(size_t size, gfp_t flags)
-{
- return kmalloc(size, flags);
-}
-
-#endif /* __LINUX_SLOB_DEF_H */
diff --git a/ANDROID_3.4.5/include/linux/slub_def.h b/ANDROID_3.4.5/include/linux/slub_def.h
deleted file mode 100644
index c2f8c8bc..00000000
--- a/ANDROID_3.4.5/include/linux/slub_def.h
+++ /dev/null
@@ -1,319 +0,0 @@
-#ifndef _LINUX_SLUB_DEF_H
-#define _LINUX_SLUB_DEF_H
-
-/*
- * SLUB : A Slab allocator without object queues.
- *
- * (C) 2007 SGI, Christoph Lameter
- */
-#include <linux/types.h>
-#include <linux/gfp.h>
-#include <linux/bug.h>
-#include <linux/workqueue.h>
-#include <linux/kobject.h>
-
-#include <linux/kmemleak.h>
-
-enum stat_item {
- ALLOC_FASTPATH, /* Allocation from cpu slab */
- ALLOC_SLOWPATH, /* Allocation by getting a new cpu slab */
- FREE_FASTPATH, /* Free to cpu slub */
- FREE_SLOWPATH, /* Freeing not to cpu slab */
- FREE_FROZEN, /* Freeing to frozen slab */
- FREE_ADD_PARTIAL, /* Freeing moves slab to partial list */
- FREE_REMOVE_PARTIAL, /* Freeing removes last object */
- ALLOC_FROM_PARTIAL, /* Cpu slab acquired from node partial list */
- ALLOC_SLAB, /* Cpu slab acquired from page allocator */
- ALLOC_REFILL, /* Refill cpu slab from slab freelist */
- ALLOC_NODE_MISMATCH, /* Switching cpu slab */
- FREE_SLAB, /* Slab freed to the page allocator */
- CPUSLAB_FLUSH, /* Abandoning of the cpu slab */
- DEACTIVATE_FULL, /* Cpu slab was full when deactivated */
- DEACTIVATE_EMPTY, /* Cpu slab was empty when deactivated */
- DEACTIVATE_TO_HEAD, /* Cpu slab was moved to the head of partials */
- DEACTIVATE_TO_TAIL, /* Cpu slab was moved to the tail of partials */
- DEACTIVATE_REMOTE_FREES,/* Slab contained remotely freed objects */
- DEACTIVATE_BYPASS, /* Implicit deactivation */
- ORDER_FALLBACK, /* Number of times fallback was necessary */
- CMPXCHG_DOUBLE_CPU_FAIL,/* Failure of this_cpu_cmpxchg_double */
- CMPXCHG_DOUBLE_FAIL, /* Number of times that cmpxchg double did not match */
- CPU_PARTIAL_ALLOC, /* Used cpu partial on alloc */
- CPU_PARTIAL_FREE, /* Refill cpu partial on free */
- CPU_PARTIAL_NODE, /* Refill cpu partial from node partial */
- CPU_PARTIAL_DRAIN, /* Drain cpu partial to node partial */
- NR_SLUB_STAT_ITEMS };
-
-struct kmem_cache_cpu {
- void **freelist; /* Pointer to next available object */
- unsigned long tid; /* Globally unique transaction id */
- struct page *page; /* The slab from which we are allocating */
- struct page *partial; /* Partially allocated frozen slabs */
- int node; /* The node of the page (or -1 for debug) */
-#ifdef CONFIG_SLUB_STATS
- unsigned stat[NR_SLUB_STAT_ITEMS];
-#endif
-};
-
-struct kmem_cache_node {
- spinlock_t list_lock; /* Protect partial list and nr_partial */
- unsigned long nr_partial;
- struct list_head partial;
-#ifdef CONFIG_SLUB_DEBUG
- atomic_long_t nr_slabs;
- atomic_long_t total_objects;
- struct list_head full;
-#endif
-};
-
-/*
- * Word size structure that can be atomically updated or read and that
- * contains both the order and the number of objects that a slab of the
- * given order would contain.
- */
-struct kmem_cache_order_objects {
- unsigned long x;
-};
-
-/*
- * Slab cache management.
- */
-struct kmem_cache {
- struct kmem_cache_cpu __percpu *cpu_slab;
- /* Used for retriving partial slabs etc */
- unsigned long flags;
- unsigned long min_partial;
- int size; /* The size of an object including meta data */
- int objsize; /* The size of an object without meta data */
- int offset; /* Free pointer offset. */
- int cpu_partial; /* Number of per cpu partial objects to keep around */
- struct kmem_cache_order_objects oo;
-
- /* Allocation and freeing of slabs */
- struct kmem_cache_order_objects max;
- struct kmem_cache_order_objects min;
- gfp_t allocflags; /* gfp flags to use on each alloc */
- int refcount; /* Refcount for slab cache destroy */
- void (*ctor)(void *);
- int inuse; /* Offset to metadata */
- int align; /* Alignment */
- int reserved; /* Reserved bytes at the end of slabs */
- const char *name; /* Name (only for display!) */
- struct list_head list; /* List of slab caches */
-#ifdef CONFIG_SYSFS
- struct kobject kobj; /* For sysfs */
-#endif
-
-#ifdef CONFIG_NUMA
- /*
- * Defragmentation by allocating from a remote node.
- */
- int remote_node_defrag_ratio;
-#endif
- struct kmem_cache_node *node[MAX_NUMNODES];
-};
-
-/*
- * Kmalloc subsystem.
- */
-#if defined(ARCH_DMA_MINALIGN) && ARCH_DMA_MINALIGN > 8
-#define KMALLOC_MIN_SIZE ARCH_DMA_MINALIGN
-#else
-#define KMALLOC_MIN_SIZE 8
-#endif
-
-#define KMALLOC_SHIFT_LOW ilog2(KMALLOC_MIN_SIZE)
-
-/*
- * Maximum kmalloc object size handled by SLUB. Larger object allocations
- * are passed through to the page allocator. The page allocator "fastpath"
- * is relatively slow so we need this value sufficiently high so that
- * performance critical objects are allocated through the SLUB fastpath.
- *
- * This should be dropped to PAGE_SIZE / 2 once the page allocator
- * "fastpath" becomes competitive with the slab allocator fastpaths.
- */
-#define SLUB_MAX_SIZE (2 * PAGE_SIZE)
-
-#define SLUB_PAGE_SHIFT (PAGE_SHIFT + 2)
-
-#ifdef CONFIG_ZONE_DMA
-#define SLUB_DMA __GFP_DMA
-#else
-/* Disable DMA functionality */
-#define SLUB_DMA (__force gfp_t)0
-#endif
-
-/*
- * We keep the general caches in an array of slab caches that are used for
- * 2^x bytes of allocations.
- */
-extern struct kmem_cache *kmalloc_caches[SLUB_PAGE_SHIFT];
-
-/*
- * Sorry that the following has to be that ugly but some versions of GCC
- * have trouble with constant propagation and loops.
- */
-static __always_inline int kmalloc_index(size_t size)
-{
- if (!size)
- return 0;
-
- if (size <= KMALLOC_MIN_SIZE)
- return KMALLOC_SHIFT_LOW;
-
- if (KMALLOC_MIN_SIZE <= 32 && size > 64 && size <= 96)
- return 1;
- if (KMALLOC_MIN_SIZE <= 64 && size > 128 && size <= 192)
- return 2;
- if (size <= 8) return 3;
- if (size <= 16) return 4;
- if (size <= 32) return 5;
- if (size <= 64) return 6;
- if (size <= 128) return 7;
- if (size <= 256) return 8;
- if (size <= 512) return 9;
- if (size <= 1024) return 10;
- if (size <= 2 * 1024) return 11;
- if (size <= 4 * 1024) return 12;
-/*
- * The following is only needed to support architectures with a larger page
- * size than 4k. We need to support 2 * PAGE_SIZE here. So for a 64k page
- * size we would have to go up to 128k.
- */
- if (size <= 8 * 1024) return 13;
- if (size <= 16 * 1024) return 14;
- if (size <= 32 * 1024) return 15;
- if (size <= 64 * 1024) return 16;
- if (size <= 128 * 1024) return 17;
- if (size <= 256 * 1024) return 18;
- if (size <= 512 * 1024) return 19;
- if (size <= 1024 * 1024) return 20;
- if (size <= 2 * 1024 * 1024) return 21;
- BUG();
- return -1; /* Will never be reached */
-
-/*
- * What we really wanted to do and cannot do because of compiler issues is:
- * int i;
- * for (i = KMALLOC_SHIFT_LOW; i <= KMALLOC_SHIFT_HIGH; i++)
- * if (size <= (1 << i))
- * return i;
- */
-}
-
-/*
- * Find the slab cache for a given combination of allocation flags and size.
- *
- * This ought to end up with a global pointer to the right cache
- * in kmalloc_caches.
- */
-static __always_inline struct kmem_cache *kmalloc_slab(size_t size)
-{
- int index = kmalloc_index(size);
-
- if (index == 0)
- return NULL;
-
- return kmalloc_caches[index];
-}
-
-void *kmem_cache_alloc(struct kmem_cache *, gfp_t);
-void *__kmalloc(size_t size, gfp_t flags);
-
-static __always_inline void *
-kmalloc_order(size_t size, gfp_t flags, unsigned int order)
-{
- void *ret = (void *) __get_free_pages(flags | __GFP_COMP, order);
- kmemleak_alloc(ret, size, 1, flags);
- return ret;
-}
-
-/**
- * Calling this on allocated memory will check that the memory
- * is expected to be in use, and print warnings if not.
- */
-#ifdef CONFIG_SLUB_DEBUG
-extern bool verify_mem_not_deleted(const void *x);
-#else
-static inline bool verify_mem_not_deleted(const void *x)
-{
- return true;
-}
-#endif
-
-#ifdef CONFIG_TRACING
-extern void *
-kmem_cache_alloc_trace(struct kmem_cache *s, gfp_t gfpflags, size_t size);
-extern void *kmalloc_order_trace(size_t size, gfp_t flags, unsigned int order);
-#else
-static __always_inline void *
-kmem_cache_alloc_trace(struct kmem_cache *s, gfp_t gfpflags, size_t size)
-{
- return kmem_cache_alloc(s, gfpflags);
-}
-
-static __always_inline void *
-kmalloc_order_trace(size_t size, gfp_t flags, unsigned int order)
-{
- return kmalloc_order(size, flags, order);
-}
-#endif
-
-static __always_inline void *kmalloc_large(size_t size, gfp_t flags)
-{
- unsigned int order = get_order(size);
- return kmalloc_order_trace(size, flags, order);
-}
-
-static __always_inline void *kmalloc(size_t size, gfp_t flags)
-{
- if (__builtin_constant_p(size)) {
- if (size > SLUB_MAX_SIZE)
- return kmalloc_large(size, flags);
-
- if (!(flags & SLUB_DMA)) {
- struct kmem_cache *s = kmalloc_slab(size);
-
- if (!s)
- return ZERO_SIZE_PTR;
-
- return kmem_cache_alloc_trace(s, flags, size);
- }
- }
- return __kmalloc(size, flags);
-}
-
-#ifdef CONFIG_NUMA
-void *__kmalloc_node(size_t size, gfp_t flags, int node);
-void *kmem_cache_alloc_node(struct kmem_cache *, gfp_t flags, int node);
-
-#ifdef CONFIG_TRACING
-extern void *kmem_cache_alloc_node_trace(struct kmem_cache *s,
- gfp_t gfpflags,
- int node, size_t size);
-#else
-static __always_inline void *
-kmem_cache_alloc_node_trace(struct kmem_cache *s,
- gfp_t gfpflags,
- int node, size_t size)
-{
- return kmem_cache_alloc_node(s, gfpflags, node);
-}
-#endif
-
-static __always_inline void *kmalloc_node(size_t size, gfp_t flags, int node)
-{
- if (__builtin_constant_p(size) &&
- size <= SLUB_MAX_SIZE && !(flags & SLUB_DMA)) {
- struct kmem_cache *s = kmalloc_slab(size);
-
- if (!s)
- return ZERO_SIZE_PTR;
-
- return kmem_cache_alloc_node_trace(s, flags, node, size);
- }
- return __kmalloc_node(size, flags, node);
-}
-#endif
-
-#endif /* _LINUX_SLUB_DEF_H */
diff --git a/ANDROID_3.4.5/include/linux/sm501-regs.h b/ANDROID_3.4.5/include/linux/sm501-regs.h
deleted file mode 100644
index 67ed2c54..00000000
--- a/ANDROID_3.4.5/include/linux/sm501-regs.h
+++ /dev/null
@@ -1,388 +0,0 @@
-/* sm501-regs.h
- *
- * Copyright 2006 Simtec Electronics
- *
- * 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.
- *
- * Silicon Motion SM501 register definitions
-*/
-
-/* System Configuration area */
-/* System config base */
-#define SM501_SYS_CONFIG (0x000000)
-
-/* config 1 */
-#define SM501_SYSTEM_CONTROL (0x000000)
-
-#define SM501_SYSCTRL_PANEL_TRISTATE (1<<0)
-#define SM501_SYSCTRL_MEM_TRISTATE (1<<1)
-#define SM501_SYSCTRL_CRT_TRISTATE (1<<2)
-
-#define SM501_SYSCTRL_PCI_SLAVE_BURST_MASK (3<<4)
-#define SM501_SYSCTRL_PCI_SLAVE_BURST_1 (0<<4)
-#define SM501_SYSCTRL_PCI_SLAVE_BURST_2 (1<<4)
-#define SM501_SYSCTRL_PCI_SLAVE_BURST_4 (2<<4)
-#define SM501_SYSCTRL_PCI_SLAVE_BURST_8 (3<<4)
-
-#define SM501_SYSCTRL_PCI_CLOCK_RUN_EN (1<<6)
-#define SM501_SYSCTRL_PCI_RETRY_DISABLE (1<<7)
-#define SM501_SYSCTRL_PCI_SUBSYS_LOCK (1<<11)
-#define SM501_SYSCTRL_PCI_BURST_READ_EN (1<<15)
-
-#define SM501_SYSCTRL_2D_ENGINE_STATUS (1<<19)
-
-/* miscellaneous control */
-
-#define SM501_MISC_CONTROL (0x000004)
-
-#define SM501_MISC_BUS_SH (0x0)
-#define SM501_MISC_BUS_PCI (0x1)
-#define SM501_MISC_BUS_XSCALE (0x2)
-#define SM501_MISC_BUS_NEC (0x6)
-#define SM501_MISC_BUS_MASK (0x7)
-
-#define SM501_MISC_VR_62MB (1<<3)
-#define SM501_MISC_CDR_RESET (1<<7)
-#define SM501_MISC_USB_LB (1<<8)
-#define SM501_MISC_USB_SLAVE (1<<9)
-#define SM501_MISC_BL_1 (1<<10)
-#define SM501_MISC_MC (1<<11)
-#define SM501_MISC_DAC_POWER (1<<12)
-#define SM501_MISC_IRQ_INVERT (1<<16)
-#define SM501_MISC_SH (1<<17)
-
-#define SM501_MISC_HOLD_EMPTY (0<<18)
-#define SM501_MISC_HOLD_8 (1<<18)
-#define SM501_MISC_HOLD_16 (2<<18)
-#define SM501_MISC_HOLD_24 (3<<18)
-#define SM501_MISC_HOLD_32 (4<<18)
-#define SM501_MISC_HOLD_MASK (7<<18)
-
-#define SM501_MISC_FREQ_12 (1<<24)
-#define SM501_MISC_PNL_24BIT (1<<25)
-#define SM501_MISC_8051_LE (1<<26)
-
-
-
-#define SM501_GPIO31_0_CONTROL (0x000008)
-#define SM501_GPIO63_32_CONTROL (0x00000C)
-#define SM501_DRAM_CONTROL (0x000010)
-
-/* command list */
-#define SM501_ARBTRTN_CONTROL (0x000014)
-
-/* command list */
-#define SM501_COMMAND_LIST_STATUS (0x000024)
-
-/* interrupt debug */
-#define SM501_RAW_IRQ_STATUS (0x000028)
-#define SM501_RAW_IRQ_CLEAR (0x000028)
-#define SM501_IRQ_STATUS (0x00002C)
-#define SM501_IRQ_MASK (0x000030)
-#define SM501_DEBUG_CONTROL (0x000034)
-
-/* power management */
-#define SM501_POWERMODE_P2X_SRC (1<<29)
-#define SM501_POWERMODE_V2X_SRC (1<<20)
-#define SM501_POWERMODE_M_SRC (1<<12)
-#define SM501_POWERMODE_M1_SRC (1<<4)
-
-#define SM501_CURRENT_GATE (0x000038)
-#define SM501_CURRENT_CLOCK (0x00003C)
-#define SM501_POWER_MODE_0_GATE (0x000040)
-#define SM501_POWER_MODE_0_CLOCK (0x000044)
-#define SM501_POWER_MODE_1_GATE (0x000048)
-#define SM501_POWER_MODE_1_CLOCK (0x00004C)
-#define SM501_SLEEP_MODE_GATE (0x000050)
-#define SM501_POWER_MODE_CONTROL (0x000054)
-
-/* power gates for units within the 501 */
-#define SM501_GATE_HOST (0)
-#define SM501_GATE_MEMORY (1)
-#define SM501_GATE_DISPLAY (2)
-#define SM501_GATE_2D_ENGINE (3)
-#define SM501_GATE_CSC (4)
-#define SM501_GATE_ZVPORT (5)
-#define SM501_GATE_GPIO (6)
-#define SM501_GATE_UART0 (7)
-#define SM501_GATE_UART1 (8)
-#define SM501_GATE_SSP (10)
-#define SM501_GATE_USB_HOST (11)
-#define SM501_GATE_USB_GADGET (12)
-#define SM501_GATE_UCONTROLLER (17)
-#define SM501_GATE_AC97 (18)
-
-/* panel clock */
-#define SM501_CLOCK_P2XCLK (24)
-/* crt clock */
-#define SM501_CLOCK_V2XCLK (16)
-/* main clock */
-#define SM501_CLOCK_MCLK (8)
-/* SDRAM controller clock */
-#define SM501_CLOCK_M1XCLK (0)
-
-/* config 2 */
-#define SM501_PCI_MASTER_BASE (0x000058)
-#define SM501_ENDIAN_CONTROL (0x00005C)
-#define SM501_DEVICEID (0x000060)
-/* 0x050100A0 */
-
-#define SM501_DEVICEID_SM501 (0x05010000)
-#define SM501_DEVICEID_IDMASK (0xffff0000)
-#define SM501_DEVICEID_REVMASK (0x000000ff)
-
-#define SM501_PLLCLOCK_COUNT (0x000064)
-#define SM501_MISC_TIMING (0x000068)
-#define SM501_CURRENT_SDRAM_CLOCK (0x00006C)
-
-#define SM501_PROGRAMMABLE_PLL_CONTROL (0x000074)
-
-/* GPIO base */
-#define SM501_GPIO (0x010000)
-#define SM501_GPIO_DATA_LOW (0x00)
-#define SM501_GPIO_DATA_HIGH (0x04)
-#define SM501_GPIO_DDR_LOW (0x08)
-#define SM501_GPIO_DDR_HIGH (0x0C)
-#define SM501_GPIO_IRQ_SETUP (0x10)
-#define SM501_GPIO_IRQ_STATUS (0x14)
-#define SM501_GPIO_IRQ_RESET (0x14)
-
-/* I2C controller base */
-#define SM501_I2C (0x010040)
-#define SM501_I2C_BYTE_COUNT (0x00)
-#define SM501_I2C_CONTROL (0x01)
-#define SM501_I2C_STATUS (0x02)
-#define SM501_I2C_RESET (0x02)
-#define SM501_I2C_SLAVE_ADDRESS (0x03)
-#define SM501_I2C_DATA (0x04)
-
-/* SSP base */
-#define SM501_SSP (0x020000)
-
-/* Uart 0 base */
-#define SM501_UART0 (0x030000)
-
-/* Uart 1 base */
-#define SM501_UART1 (0x030020)
-
-/* USB host port base */
-#define SM501_USB_HOST (0x040000)
-
-/* USB slave/gadget base */
-#define SM501_USB_GADGET (0x060000)
-
-/* USB slave/gadget data port base */
-#define SM501_USB_GADGET_DATA (0x070000)
-
-/* Display controller/video engine base */
-#define SM501_DC (0x080000)
-
-/* common defines for the SM501 address registers */
-#define SM501_ADDR_FLIP (1<<31)
-#define SM501_ADDR_EXT (1<<27)
-#define SM501_ADDR_CS1 (1<<26)
-#define SM501_ADDR_MASK (0x3f << 26)
-
-#define SM501_FIFO_MASK (0x3 << 16)
-#define SM501_FIFO_1 (0x0 << 16)
-#define SM501_FIFO_3 (0x1 << 16)
-#define SM501_FIFO_7 (0x2 << 16)
-#define SM501_FIFO_11 (0x3 << 16)
-
-/* common registers for panel and the crt */
-#define SM501_OFF_DC_H_TOT (0x000)
-#define SM501_OFF_DC_V_TOT (0x008)
-#define SM501_OFF_DC_H_SYNC (0x004)
-#define SM501_OFF_DC_V_SYNC (0x00C)
-
-#define SM501_DC_PANEL_CONTROL (0x000)
-
-#define SM501_DC_PANEL_CONTROL_FPEN (1<<27)
-#define SM501_DC_PANEL_CONTROL_BIAS (1<<26)
-#define SM501_DC_PANEL_CONTROL_DATA (1<<25)
-#define SM501_DC_PANEL_CONTROL_VDD (1<<24)
-#define SM501_DC_PANEL_CONTROL_DP (1<<23)
-
-#define SM501_DC_PANEL_CONTROL_TFT_888 (0<<21)
-#define SM501_DC_PANEL_CONTROL_TFT_333 (1<<21)
-#define SM501_DC_PANEL_CONTROL_TFT_444 (2<<21)
-
-#define SM501_DC_PANEL_CONTROL_DE (1<<20)
-
-#define SM501_DC_PANEL_CONTROL_LCD_TFT (0<<18)
-#define SM501_DC_PANEL_CONTROL_LCD_STN8 (1<<18)
-#define SM501_DC_PANEL_CONTROL_LCD_STN12 (2<<18)
-
-#define SM501_DC_PANEL_CONTROL_CP (1<<14)
-#define SM501_DC_PANEL_CONTROL_VSP (1<<13)
-#define SM501_DC_PANEL_CONTROL_HSP (1<<12)
-#define SM501_DC_PANEL_CONTROL_CK (1<<9)
-#define SM501_DC_PANEL_CONTROL_TE (1<<8)
-#define SM501_DC_PANEL_CONTROL_VPD (1<<7)
-#define SM501_DC_PANEL_CONTROL_VP (1<<6)
-#define SM501_DC_PANEL_CONTROL_HPD (1<<5)
-#define SM501_DC_PANEL_CONTROL_HP (1<<4)
-#define SM501_DC_PANEL_CONTROL_GAMMA (1<<3)
-#define SM501_DC_PANEL_CONTROL_EN (1<<2)
-
-#define SM501_DC_PANEL_CONTROL_8BPP (0<<0)
-#define SM501_DC_PANEL_CONTROL_16BPP (1<<0)
-#define SM501_DC_PANEL_CONTROL_32BPP (2<<0)
-
-
-#define SM501_DC_PANEL_PANNING_CONTROL (0x004)
-#define SM501_DC_PANEL_COLOR_KEY (0x008)
-#define SM501_DC_PANEL_FB_ADDR (0x00C)
-#define SM501_DC_PANEL_FB_OFFSET (0x010)
-#define SM501_DC_PANEL_FB_WIDTH (0x014)
-#define SM501_DC_PANEL_FB_HEIGHT (0x018)
-#define SM501_DC_PANEL_TL_LOC (0x01C)
-#define SM501_DC_PANEL_BR_LOC (0x020)
-#define SM501_DC_PANEL_H_TOT (0x024)
-#define SM501_DC_PANEL_H_SYNC (0x028)
-#define SM501_DC_PANEL_V_TOT (0x02C)
-#define SM501_DC_PANEL_V_SYNC (0x030)
-#define SM501_DC_PANEL_CUR_LINE (0x034)
-
-#define SM501_DC_VIDEO_CONTROL (0x040)
-#define SM501_DC_VIDEO_FB0_ADDR (0x044)
-#define SM501_DC_VIDEO_FB_WIDTH (0x048)
-#define SM501_DC_VIDEO_FB0_LAST_ADDR (0x04C)
-#define SM501_DC_VIDEO_TL_LOC (0x050)
-#define SM501_DC_VIDEO_BR_LOC (0x054)
-#define SM501_DC_VIDEO_SCALE (0x058)
-#define SM501_DC_VIDEO_INIT_SCALE (0x05C)
-#define SM501_DC_VIDEO_YUV_CONSTANTS (0x060)
-#define SM501_DC_VIDEO_FB1_ADDR (0x064)
-#define SM501_DC_VIDEO_FB1_LAST_ADDR (0x068)
-
-#define SM501_DC_VIDEO_ALPHA_CONTROL (0x080)
-#define SM501_DC_VIDEO_ALPHA_FB_ADDR (0x084)
-#define SM501_DC_VIDEO_ALPHA_FB_OFFSET (0x088)
-#define SM501_DC_VIDEO_ALPHA_FB_LAST_ADDR (0x08C)
-#define SM501_DC_VIDEO_ALPHA_TL_LOC (0x090)
-#define SM501_DC_VIDEO_ALPHA_BR_LOC (0x094)
-#define SM501_DC_VIDEO_ALPHA_SCALE (0x098)
-#define SM501_DC_VIDEO_ALPHA_INIT_SCALE (0x09C)
-#define SM501_DC_VIDEO_ALPHA_CHROMA_KEY (0x0A0)
-#define SM501_DC_VIDEO_ALPHA_COLOR_LOOKUP (0x0A4)
-
-#define SM501_DC_PANEL_HWC_BASE (0x0F0)
-#define SM501_DC_PANEL_HWC_ADDR (0x0F0)
-#define SM501_DC_PANEL_HWC_LOC (0x0F4)
-#define SM501_DC_PANEL_HWC_COLOR_1_2 (0x0F8)
-#define SM501_DC_PANEL_HWC_COLOR_3 (0x0FC)
-
-#define SM501_HWC_EN (1<<31)
-
-#define SM501_OFF_HWC_ADDR (0x00)
-#define SM501_OFF_HWC_LOC (0x04)
-#define SM501_OFF_HWC_COLOR_1_2 (0x08)
-#define SM501_OFF_HWC_COLOR_3 (0x0C)
-
-#define SM501_DC_ALPHA_CONTROL (0x100)
-#define SM501_DC_ALPHA_FB_ADDR (0x104)
-#define SM501_DC_ALPHA_FB_OFFSET (0x108)
-#define SM501_DC_ALPHA_TL_LOC (0x10C)
-#define SM501_DC_ALPHA_BR_LOC (0x110)
-#define SM501_DC_ALPHA_CHROMA_KEY (0x114)
-#define SM501_DC_ALPHA_COLOR_LOOKUP (0x118)
-
-#define SM501_DC_CRT_CONTROL (0x200)
-
-#define SM501_DC_CRT_CONTROL_TVP (1<<15)
-#define SM501_DC_CRT_CONTROL_CP (1<<14)
-#define SM501_DC_CRT_CONTROL_VSP (1<<13)
-#define SM501_DC_CRT_CONTROL_HSP (1<<12)
-#define SM501_DC_CRT_CONTROL_VS (1<<11)
-#define SM501_DC_CRT_CONTROL_BLANK (1<<10)
-#define SM501_DC_CRT_CONTROL_SEL (1<<9)
-#define SM501_DC_CRT_CONTROL_TE (1<<8)
-#define SM501_DC_CRT_CONTROL_PIXEL_MASK (0xF << 4)
-#define SM501_DC_CRT_CONTROL_GAMMA (1<<3)
-#define SM501_DC_CRT_CONTROL_ENABLE (1<<2)
-
-#define SM501_DC_CRT_CONTROL_8BPP (0<<0)
-#define SM501_DC_CRT_CONTROL_16BPP (1<<0)
-#define SM501_DC_CRT_CONTROL_32BPP (2<<0)
-
-#define SM501_DC_CRT_FB_ADDR (0x204)
-#define SM501_DC_CRT_FB_OFFSET (0x208)
-#define SM501_DC_CRT_H_TOT (0x20C)
-#define SM501_DC_CRT_H_SYNC (0x210)
-#define SM501_DC_CRT_V_TOT (0x214)
-#define SM501_DC_CRT_V_SYNC (0x218)
-#define SM501_DC_CRT_SIGNATURE_ANALYZER (0x21C)
-#define SM501_DC_CRT_CUR_LINE (0x220)
-#define SM501_DC_CRT_MONITOR_DETECT (0x224)
-
-#define SM501_DC_CRT_HWC_BASE (0x230)
-#define SM501_DC_CRT_HWC_ADDR (0x230)
-#define SM501_DC_CRT_HWC_LOC (0x234)
-#define SM501_DC_CRT_HWC_COLOR_1_2 (0x238)
-#define SM501_DC_CRT_HWC_COLOR_3 (0x23C)
-
-#define SM501_DC_PANEL_PALETTE (0x400)
-
-#define SM501_DC_VIDEO_PALETTE (0x800)
-
-#define SM501_DC_CRT_PALETTE (0xC00)
-
-/* Zoom Video port base */
-#define SM501_ZVPORT (0x090000)
-
-/* AC97/I2S base */
-#define SM501_AC97 (0x0A0000)
-
-/* 8051 micro controller base */
-#define SM501_UCONTROLLER (0x0B0000)
-
-/* 8051 micro controller SRAM base */
-#define SM501_UCONTROLLER_SRAM (0x0C0000)
-
-/* DMA base */
-#define SM501_DMA (0x0D0000)
-
-/* 2d engine base */
-#define SM501_2D_ENGINE (0x100000)
-#define SM501_2D_SOURCE (0x00)
-#define SM501_2D_DESTINATION (0x04)
-#define SM501_2D_DIMENSION (0x08)
-#define SM501_2D_CONTROL (0x0C)
-#define SM501_2D_PITCH (0x10)
-#define SM501_2D_FOREGROUND (0x14)
-#define SM501_2D_BACKGROUND (0x18)
-#define SM501_2D_STRETCH (0x1C)
-#define SM501_2D_COLOR_COMPARE (0x20)
-#define SM501_2D_COLOR_COMPARE_MASK (0x24)
-#define SM501_2D_MASK (0x28)
-#define SM501_2D_CLIP_TL (0x2C)
-#define SM501_2D_CLIP_BR (0x30)
-#define SM501_2D_MONO_PATTERN_LOW (0x34)
-#define SM501_2D_MONO_PATTERN_HIGH (0x38)
-#define SM501_2D_WINDOW_WIDTH (0x3C)
-#define SM501_2D_SOURCE_BASE (0x40)
-#define SM501_2D_DESTINATION_BASE (0x44)
-#define SM501_2D_ALPHA (0x48)
-#define SM501_2D_WRAP (0x4C)
-#define SM501_2D_STATUS (0x50)
-
-#define SM501_CSC_Y_SOURCE_BASE (0xC8)
-#define SM501_CSC_CONSTANTS (0xCC)
-#define SM501_CSC_Y_SOURCE_X (0xD0)
-#define SM501_CSC_Y_SOURCE_Y (0xD4)
-#define SM501_CSC_U_SOURCE_BASE (0xD8)
-#define SM501_CSC_V_SOURCE_BASE (0xDC)
-#define SM501_CSC_SOURCE_DIMENSION (0xE0)
-#define SM501_CSC_SOURCE_PITCH (0xE4)
-#define SM501_CSC_DESTINATION (0xE8)
-#define SM501_CSC_DESTINATION_DIMENSION (0xEC)
-#define SM501_CSC_DESTINATION_PITCH (0xF0)
-#define SM501_CSC_SCALE_FACTOR (0xF4)
-#define SM501_CSC_DESTINATION_BASE (0xF8)
-#define SM501_CSC_CONTROL (0xFC)
-
-/* 2d engine data port base */
-#define SM501_2D_ENGINE_DATA (0x110000)
diff --git a/ANDROID_3.4.5/include/linux/sm501.h b/ANDROID_3.4.5/include/linux/sm501.h
deleted file mode 100644
index 02fde50a..00000000
--- a/ANDROID_3.4.5/include/linux/sm501.h
+++ /dev/null
@@ -1,182 +0,0 @@
-/* include/linux/sm501.h
- *
- * Copyright (c) 2006 Simtec Electronics
- * Ben Dooks <ben@simtec.co.uk>
- * Vincent Sanders <vince@simtec.co.uk>
- *
- * 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
- *
- * 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
-*/
-
-extern int sm501_unit_power(struct device *dev,
- unsigned int unit, unsigned int to);
-
-extern unsigned long sm501_set_clock(struct device *dev,
- int clksrc, unsigned long freq);
-
-extern unsigned long sm501_find_clock(struct device *dev,
- int clksrc, unsigned long req_freq);
-
-/* sm501_misc_control
- *
- * Modify the SM501's MISC_CONTROL register
-*/
-
-extern int sm501_misc_control(struct device *dev,
- unsigned long set, unsigned long clear);
-
-/* sm501_modify_reg
- *
- * Modify a register in the SM501 which may be shared with other
- * drivers.
-*/
-
-extern unsigned long sm501_modify_reg(struct device *dev,
- unsigned long reg,
- unsigned long set,
- unsigned long clear);
-
-
-/* Platform data definitions */
-
-#define SM501FB_FLAG_USE_INIT_MODE (1<<0)
-#define SM501FB_FLAG_DISABLE_AT_EXIT (1<<1)
-#define SM501FB_FLAG_USE_HWCURSOR (1<<2)
-#define SM501FB_FLAG_USE_HWACCEL (1<<3)
-#define SM501FB_FLAG_PANEL_NO_FPEN (1<<4)
-#define SM501FB_FLAG_PANEL_NO_VBIASEN (1<<5)
-#define SM501FB_FLAG_PANEL_INV_FPEN (1<<6)
-#define SM501FB_FLAG_PANEL_INV_VBIASEN (1<<7)
-
-struct sm501_platdata_fbsub {
- struct fb_videomode *def_mode;
- unsigned int def_bpp;
- unsigned long max_mem;
- unsigned int flags;
-};
-
-enum sm501_fb_routing {
- SM501_FB_OWN = 0, /* CRT=>CRT, Panel=>Panel */
- SM501_FB_CRT_PANEL = 1, /* Panel=>CRT, Panel=>Panel */
-};
-
-/* sm501_platdata_fb flag field bit definitions */
-
-#define SM501_FBPD_SWAP_FB_ENDIAN (1<<0) /* need to endian swap */
-
-/* sm501_platdata_fb
- *
- * configuration data for the framebuffer driver
-*/
-
-struct sm501_platdata_fb {
- enum sm501_fb_routing fb_route;
- unsigned int flags;
- struct sm501_platdata_fbsub *fb_crt;
- struct sm501_platdata_fbsub *fb_pnl;
-};
-
-/* gpio i2c
- *
- * Note, we have to pass in the bus number, as the number used will be
- * passed to the i2c-gpio driver's platform_device.id, subsequently used
- * to register the i2c bus.
-*/
-
-struct sm501_platdata_gpio_i2c {
- unsigned int bus_num;
- unsigned int pin_sda;
- unsigned int pin_scl;
- int udelay;
- int timeout;
-};
-
-/* sm501_initdata
- *
- * use for initialising values that may not have been setup
- * before the driver is loaded.
-*/
-
-struct sm501_reg_init {
- unsigned long set;
- unsigned long mask;
-};
-
-#define SM501_USE_USB_HOST (1<<0)
-#define SM501_USE_USB_SLAVE (1<<1)
-#define SM501_USE_SSP0 (1<<2)
-#define SM501_USE_SSP1 (1<<3)
-#define SM501_USE_UART0 (1<<4)
-#define SM501_USE_UART1 (1<<5)
-#define SM501_USE_FBACCEL (1<<6)
-#define SM501_USE_AC97 (1<<7)
-#define SM501_USE_I2S (1<<8)
-#define SM501_USE_GPIO (1<<9)
-
-#define SM501_USE_ALL (0xffffffff)
-
-struct sm501_initdata {
- struct sm501_reg_init gpio_low;
- struct sm501_reg_init gpio_high;
- struct sm501_reg_init misc_timing;
- struct sm501_reg_init misc_control;
-
- unsigned long devices;
- unsigned long mclk; /* non-zero to modify */
- unsigned long m1xclk; /* non-zero to modify */
-};
-
-/* sm501_init_gpio
- *
- * default gpio settings
-*/
-
-struct sm501_init_gpio {
- struct sm501_reg_init gpio_data_low;
- struct sm501_reg_init gpio_data_high;
- struct sm501_reg_init gpio_ddr_low;
- struct sm501_reg_init gpio_ddr_high;
-};
-
-#define SM501_FLAG_SUSPEND_OFF (1<<4)
-
-/* sm501_platdata
- *
- * This is passed with the platform device to allow the board
- * to control the behaviour of the SM501 driver(s) which attach
- * to the device.
- *
-*/
-
-struct sm501_platdata {
- struct sm501_initdata *init;
- struct sm501_init_gpio *init_gpiop;
- struct sm501_platdata_fb *fb;
-
- int flags;
- int gpio_base;
-
- int (*get_power)(struct device *dev);
- int (*set_power)(struct device *dev, unsigned int on);
-
- struct sm501_platdata_gpio_i2c *gpio_i2c;
- unsigned int gpio_i2c_nr;
-};
-
-#if defined(CONFIG_PPC32)
-#define smc501_readl(addr) ioread32be((addr))
-#define smc501_writel(val, addr) iowrite32be((val), (addr))
-#else
-#define smc501_readl(addr) readl(addr)
-#define smc501_writel(val, addr) writel(val, addr)
-#endif
diff --git a/ANDROID_3.4.5/include/linux/smc911x.h b/ANDROID_3.4.5/include/linux/smc911x.h
deleted file mode 100644
index 521f3714..00000000
--- a/ANDROID_3.4.5/include/linux/smc911x.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef __SMC911X_H__
-#define __SMC911X_H__
-
-#define SMC911X_USE_16BIT (1 << 0)
-#define SMC911X_USE_32BIT (1 << 1)
-
-struct smc911x_platdata {
- unsigned long flags;
- unsigned long irq_flags; /* IRQF_... */
- int irq_polarity;
-};
-
-#endif /* __SMC911X_H__ */
diff --git a/ANDROID_3.4.5/include/linux/smc91x.h b/ANDROID_3.4.5/include/linux/smc91x.h
deleted file mode 100644
index 76199b75..00000000
--- a/ANDROID_3.4.5/include/linux/smc91x.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef __SMC91X_H__
-#define __SMC91X_H__
-
-#define SMC91X_USE_8BIT (1 << 0)
-#define SMC91X_USE_16BIT (1 << 1)
-#define SMC91X_USE_32BIT (1 << 2)
-
-#define SMC91X_NOWAIT (1 << 3)
-
-/* two bits for IO_SHIFT, let's hope later designs will keep this sane */
-#define SMC91X_IO_SHIFT_0 (0 << 4)
-#define SMC91X_IO_SHIFT_1 (1 << 4)
-#define SMC91X_IO_SHIFT_2 (2 << 4)
-#define SMC91X_IO_SHIFT_3 (3 << 4)
-#define SMC91X_IO_SHIFT(x) (((x) >> 4) & 0x3)
-
-#define SMC91X_USE_DMA (1 << 6)
-
-#define RPC_LED_100_10 (0x00) /* LED = 100Mbps OR's with 10Mbps link detect */
-#define RPC_LED_RES (0x01) /* LED = Reserved */
-#define RPC_LED_10 (0x02) /* LED = 10Mbps link detect */
-#define RPC_LED_FD (0x03) /* LED = Full Duplex Mode */
-#define RPC_LED_TX_RX (0x04) /* LED = TX or RX packet occurred */
-#define RPC_LED_100 (0x05) /* LED = 100Mbps link detect */
-#define RPC_LED_TX (0x06) /* LED = TX packet occurred */
-#define RPC_LED_RX (0x07) /* LED = RX packet occurred */
-
-struct smc91x_platdata {
- unsigned long flags;
- unsigned char leda;
- unsigned char ledb;
-};
-
-#endif /* __SMC91X_H__ */
diff --git a/ANDROID_3.4.5/include/linux/smp.h b/ANDROID_3.4.5/include/linux/smp.h
deleted file mode 100644
index 10530d92..00000000
--- a/ANDROID_3.4.5/include/linux/smp.h
+++ /dev/null
@@ -1,230 +0,0 @@
-#ifndef __LINUX_SMP_H
-#define __LINUX_SMP_H
-
-/*
- * Generic SMP support
- * Alan Cox. <alan@redhat.com>
- */
-
-#include <linux/errno.h>
-#include <linux/types.h>
-#include <linux/list.h>
-#include <linux/cpumask.h>
-#include <linux/init.h>
-
-extern void cpu_idle(void);
-
-typedef void (*smp_call_func_t)(void *info);
-struct call_single_data {
- struct list_head list;
- smp_call_func_t func;
- void *info;
- u16 flags;
- u16 priv;
-};
-
-/* total number of cpus in this system (may exceed NR_CPUS) */
-extern unsigned int total_cpus;
-
-int smp_call_function_single(int cpuid, smp_call_func_t func, void *info,
- int wait);
-
-#ifdef CONFIG_SMP
-
-#include <linux/preempt.h>
-#include <linux/kernel.h>
-#include <linux/compiler.h>
-#include <linux/thread_info.h>
-#include <asm/smp.h>
-
-/*
- * main cross-CPU interfaces, handles INIT, TLB flush, STOP, etc.
- * (defined in asm header):
- */
-
-/*
- * stops all CPUs but the current one:
- */
-extern void smp_send_stop(void);
-
-/*
- * sends a 'reschedule' event to another CPU:
- */
-extern void smp_send_reschedule(int cpu);
-
-
-/*
- * Prepare machine for booting other CPUs.
- */
-extern void smp_prepare_cpus(unsigned int max_cpus);
-
-/*
- * Bring a CPU up
- */
-extern int __cpu_up(unsigned int cpunum);
-
-/*
- * Final polishing of CPUs
- */
-extern void smp_cpus_done(unsigned int max_cpus);
-
-/*
- * Call a function on all other processors
- */
-int smp_call_function(smp_call_func_t func, void *info, int wait);
-void smp_call_function_many(const struct cpumask *mask,
- smp_call_func_t func, void *info, bool wait);
-
-void __smp_call_function_single(int cpuid, struct call_single_data *data,
- int wait);
-
-int smp_call_function_any(const struct cpumask *mask,
- smp_call_func_t func, void *info, int wait);
-
-/*
- * Generic and arch helpers
- */
-#ifdef CONFIG_USE_GENERIC_SMP_HELPERS
-void __init call_function_init(void);
-void generic_smp_call_function_single_interrupt(void);
-void generic_smp_call_function_interrupt(void);
-void ipi_call_lock(void);
-void ipi_call_unlock(void);
-void ipi_call_lock_irq(void);
-void ipi_call_unlock_irq(void);
-#else
-static inline void call_function_init(void) { }
-#endif
-
-/*
- * Call a function on all processors
- */
-int on_each_cpu(smp_call_func_t func, void *info, int wait);
-
-/*
- * Call a function on processors specified by mask, which might include
- * the local one.
- */
-void on_each_cpu_mask(const struct cpumask *mask, smp_call_func_t func,
- void *info, bool wait);
-
-/*
- * Call a function on each processor for which the supplied function
- * cond_func returns a positive value. This may include the local
- * processor.
- */
-void on_each_cpu_cond(bool (*cond_func)(int cpu, void *info),
- smp_call_func_t func, void *info, bool wait,
- gfp_t gfp_flags);
-
-/*
- * Mark the boot cpu "online" so that it can call console drivers in
- * printk() and can access its per-cpu storage.
- */
-void smp_prepare_boot_cpu(void);
-
-extern unsigned int setup_max_cpus;
-extern void __init setup_nr_cpu_ids(void);
-extern void __init smp_init(void);
-
-#else /* !SMP */
-
-static inline void smp_send_stop(void) { }
-
-/*
- * These macros fold the SMP functionality into a single CPU system
- */
-#define raw_smp_processor_id() 0
-static inline int up_smp_call_function(smp_call_func_t func, void *info)
-{
- return 0;
-}
-#define smp_call_function(func, info, wait) \
- (up_smp_call_function(func, info))
-#define on_each_cpu(func,info,wait) \
- ({ \
- local_irq_disable(); \
- func(info); \
- local_irq_enable(); \
- 0; \
- })
-/*
- * Note we still need to test the mask even for UP
- * because we actually can get an empty mask from
- * code that on SMP might call us without the local
- * CPU in the mask.
- */
-#define on_each_cpu_mask(mask, func, info, wait) \
- do { \
- if (cpumask_test_cpu(0, (mask))) { \
- local_irq_disable(); \
- (func)(info); \
- local_irq_enable(); \
- } \
- } while (0)
-/*
- * Preemption is disabled here to make sure the cond_func is called under the
- * same condtions in UP and SMP.
- */
-#define on_each_cpu_cond(cond_func, func, info, wait, gfp_flags)\
- do { \
- void *__info = (info); \
- preempt_disable(); \
- if ((cond_func)(0, __info)) { \
- local_irq_disable(); \
- (func)(__info); \
- local_irq_enable(); \
- } \
- preempt_enable(); \
- } while (0)
-
-static inline void smp_send_reschedule(int cpu) { }
-#define num_booting_cpus() 1
-#define smp_prepare_boot_cpu() do {} while (0)
-#define smp_call_function_many(mask, func, info, wait) \
- (up_smp_call_function(func, info))
-static inline void call_function_init(void) { }
-
-static inline int
-smp_call_function_any(const struct cpumask *mask, smp_call_func_t func,
- void *info, int wait)
-{
- return smp_call_function_single(0, func, info, wait);
-}
-
-#endif /* !SMP */
-
-/*
- * smp_processor_id(): get the current CPU ID.
- *
- * if DEBUG_PREEMPT is enabled then we check whether it is
- * used in a preemption-safe way. (smp_processor_id() is safe
- * if it's used in a preemption-off critical section, or in
- * a thread that is bound to the current CPU.)
- *
- * NOTE: raw_smp_processor_id() is for internal use only
- * (smp_processor_id() is the preferred variant), but in rare
- * instances it might also be used to turn off false positives
- * (i.e. smp_processor_id() use that the debugging code reports but
- * which use for some reason is legal). Don't use this to hack around
- * the warning message, as your code might not work under PREEMPT.
- */
-#ifdef CONFIG_DEBUG_PREEMPT
- extern unsigned int debug_smp_processor_id(void);
-# define smp_processor_id() debug_smp_processor_id()
-#else
-# define smp_processor_id() raw_smp_processor_id()
-#endif
-
-#define get_cpu() ({ preempt_disable(); smp_processor_id(); })
-#define put_cpu() preempt_enable()
-
-/*
- * Callback to arch code if there's nosmp or maxcpus=0 on the
- * boot command line:
- */
-extern void arch_disable_smp_support(void);
-
-void smp_setup_processor_id(void);
-
-#endif /* __LINUX_SMP_H */
diff --git a/ANDROID_3.4.5/include/linux/smsc911x.h b/ANDROID_3.4.5/include/linux/smsc911x.h
deleted file mode 100644
index 4dde70e7..00000000
--- a/ANDROID_3.4.5/include/linux/smsc911x.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/***************************************************************************
- *
- * Copyright (C) 2004-2008 SMSC
- * Copyright (C) 2005-2008 ARM
- *
- * 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.
- *
- ***************************************************************************/
-#ifndef __LINUX_SMSC911X_H__
-#define __LINUX_SMSC911X_H__
-
-#include <linux/phy.h>
-
-/* platform_device configuration data, should be assigned to
- * the platform_device's dev.platform_data */
-struct smsc911x_platform_config {
- unsigned int irq_polarity;
- unsigned int irq_type;
- unsigned int flags;
- unsigned int shift;
- phy_interface_t phy_interface;
- unsigned char mac[6];
-};
-
-/* Constants for platform_device irq polarity configuration */
-#define SMSC911X_IRQ_POLARITY_ACTIVE_LOW 0
-#define SMSC911X_IRQ_POLARITY_ACTIVE_HIGH 1
-
-/* Constants for platform_device irq type configuration */
-#define SMSC911X_IRQ_TYPE_OPEN_DRAIN 0
-#define SMSC911X_IRQ_TYPE_PUSH_PULL 1
-
-/* Constants for flags */
-#define SMSC911X_USE_16BIT (BIT(0))
-#define SMSC911X_USE_32BIT (BIT(1))
-#define SMSC911X_FORCE_INTERNAL_PHY (BIT(2))
-#define SMSC911X_FORCE_EXTERNAL_PHY (BIT(3))
-#define SMSC911X_SAVE_MAC_ADDRESS (BIT(4))
-
-/*
- * SMSC911X_SWAP_FIFO:
- * Enables software byte swap for fifo data. Should only be used as a
- * "last resort" in the case of big endian mode on boards with incorrectly
- * routed data bus to older devices such as LAN9118. Newer devices such as
- * LAN9221 can handle this in hardware, there are registers to control
- * this swapping but the driver doesn't currently use them.
- */
-#define SMSC911X_SWAP_FIFO (BIT(5))
-
-#endif /* __LINUX_SMSC911X_H__ */
diff --git a/ANDROID_3.4.5/include/linux/smscphy.h b/ANDROID_3.4.5/include/linux/smscphy.h
deleted file mode 100644
index ce718cbc..00000000
--- a/ANDROID_3.4.5/include/linux/smscphy.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef __LINUX_SMSCPHY_H__
-#define __LINUX_SMSCPHY_H__
-
-#define MII_LAN83C185_ISF 29 /* Interrupt Source Flags */
-#define MII_LAN83C185_IM 30 /* Interrupt Mask */
-#define MII_LAN83C185_CTRL_STATUS 17 /* Mode/Status Register */
-
-#define MII_LAN83C185_ISF_INT1 (1<<1) /* Auto-Negotiation Page Received */
-#define MII_LAN83C185_ISF_INT2 (1<<2) /* Parallel Detection Fault */
-#define MII_LAN83C185_ISF_INT3 (1<<3) /* Auto-Negotiation LP Ack */
-#define MII_LAN83C185_ISF_INT4 (1<<4) /* Link Down */
-#define MII_LAN83C185_ISF_INT5 (1<<5) /* Remote Fault Detected */
-#define MII_LAN83C185_ISF_INT6 (1<<6) /* Auto-Negotiation complete */
-#define MII_LAN83C185_ISF_INT7 (1<<7) /* ENERGYON */
-
-#define MII_LAN83C185_ISF_INT_ALL (0x0e)
-
-#define MII_LAN83C185_ISF_INT_PHYLIB_EVENTS \
- (MII_LAN83C185_ISF_INT6 | MII_LAN83C185_ISF_INT4 | \
- MII_LAN83C185_ISF_INT7)
-
-#define MII_LAN83C185_EDPWRDOWN (1 << 13) /* EDPWRDOWN */
-#define MII_LAN83C185_ENERGYON (1 << 1) /* ENERGYON */
-
-#endif /* __LINUX_SMSCPHY_H__ */
diff --git a/ANDROID_3.4.5/include/linux/snmp.h b/ANDROID_3.4.5/include/linux/snmp.h
deleted file mode 100644
index 2e68f5ba..00000000
--- a/ANDROID_3.4.5/include/linux/snmp.h
+++ /dev/null
@@ -1,273 +0,0 @@
-/*
- * Definitions for MIBs
- *
- * Author: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
- */
-
-#ifndef _LINUX_SNMP_H
-#define _LINUX_SNMP_H
-
-/* ipstats mib definitions */
-/*
- * RFC 1213: MIB-II
- * RFC 2011 (updates 1213): SNMPv2-MIB-IP
- * RFC 2863: Interfaces Group MIB
- * RFC 2465: IPv6 MIB: General Group
- * draft-ietf-ipv6-rfc2011-update-10.txt: MIB for IP: IP Statistics Tables
- */
-enum
-{
- IPSTATS_MIB_NUM = 0,
- IPSTATS_MIB_INPKTS, /* InReceives */
- IPSTATS_MIB_INHDRERRORS, /* InHdrErrors */
- IPSTATS_MIB_INTOOBIGERRORS, /* InTooBigErrors */
- IPSTATS_MIB_INNOROUTES, /* InNoRoutes */
- IPSTATS_MIB_INADDRERRORS, /* InAddrErrors */
- IPSTATS_MIB_INUNKNOWNPROTOS, /* InUnknownProtos */
- IPSTATS_MIB_INTRUNCATEDPKTS, /* InTruncatedPkts */
- IPSTATS_MIB_INDISCARDS, /* InDiscards */
- IPSTATS_MIB_INDELIVERS, /* InDelivers */
- IPSTATS_MIB_OUTFORWDATAGRAMS, /* OutForwDatagrams */
- IPSTATS_MIB_OUTPKTS, /* OutRequests */
- IPSTATS_MIB_OUTDISCARDS, /* OutDiscards */
- IPSTATS_MIB_OUTNOROUTES, /* OutNoRoutes */
- IPSTATS_MIB_REASMTIMEOUT, /* ReasmTimeout */
- IPSTATS_MIB_REASMREQDS, /* ReasmReqds */
- IPSTATS_MIB_REASMOKS, /* ReasmOKs */
- IPSTATS_MIB_REASMFAILS, /* ReasmFails */
- IPSTATS_MIB_FRAGOKS, /* FragOKs */
- IPSTATS_MIB_FRAGFAILS, /* FragFails */
- IPSTATS_MIB_FRAGCREATES, /* FragCreates */
- IPSTATS_MIB_INMCASTPKTS, /* InMcastPkts */
- IPSTATS_MIB_OUTMCASTPKTS, /* OutMcastPkts */
- IPSTATS_MIB_INBCASTPKTS, /* InBcastPkts */
- IPSTATS_MIB_OUTBCASTPKTS, /* OutBcastPkts */
- IPSTATS_MIB_INOCTETS, /* InOctets */
- IPSTATS_MIB_OUTOCTETS, /* OutOctets */
- IPSTATS_MIB_INMCASTOCTETS, /* InMcastOctets */
- IPSTATS_MIB_OUTMCASTOCTETS, /* OutMcastOctets */
- IPSTATS_MIB_INBCASTOCTETS, /* InBcastOctets */
- IPSTATS_MIB_OUTBCASTOCTETS, /* OutBcastOctets */
- __IPSTATS_MIB_MAX
-};
-
-/* icmp mib definitions */
-/*
- * RFC 1213: MIB-II ICMP Group
- * RFC 2011 (updates 1213): SNMPv2 MIB for IP: ICMP group
- */
-enum
-{
- ICMP_MIB_NUM = 0,
- ICMP_MIB_INMSGS, /* InMsgs */
- ICMP_MIB_INERRORS, /* InErrors */
- ICMP_MIB_INDESTUNREACHS, /* InDestUnreachs */
- ICMP_MIB_INTIMEEXCDS, /* InTimeExcds */
- ICMP_MIB_INPARMPROBS, /* InParmProbs */
- ICMP_MIB_INSRCQUENCHS, /* InSrcQuenchs */
- ICMP_MIB_INREDIRECTS, /* InRedirects */
- ICMP_MIB_INECHOS, /* InEchos */
- ICMP_MIB_INECHOREPS, /* InEchoReps */
- ICMP_MIB_INTIMESTAMPS, /* InTimestamps */
- ICMP_MIB_INTIMESTAMPREPS, /* InTimestampReps */
- ICMP_MIB_INADDRMASKS, /* InAddrMasks */
- ICMP_MIB_INADDRMASKREPS, /* InAddrMaskReps */
- ICMP_MIB_OUTMSGS, /* OutMsgs */
- ICMP_MIB_OUTERRORS, /* OutErrors */
- ICMP_MIB_OUTDESTUNREACHS, /* OutDestUnreachs */
- ICMP_MIB_OUTTIMEEXCDS, /* OutTimeExcds */
- ICMP_MIB_OUTPARMPROBS, /* OutParmProbs */
- ICMP_MIB_OUTSRCQUENCHS, /* OutSrcQuenchs */
- ICMP_MIB_OUTREDIRECTS, /* OutRedirects */
- ICMP_MIB_OUTECHOS, /* OutEchos */
- ICMP_MIB_OUTECHOREPS, /* OutEchoReps */
- ICMP_MIB_OUTTIMESTAMPS, /* OutTimestamps */
- ICMP_MIB_OUTTIMESTAMPREPS, /* OutTimestampReps */
- ICMP_MIB_OUTADDRMASKS, /* OutAddrMasks */
- ICMP_MIB_OUTADDRMASKREPS, /* OutAddrMaskReps */
- __ICMP_MIB_MAX
-};
-
-#define __ICMPMSG_MIB_MAX 512 /* Out+In for all 8-bit ICMP types */
-
-/* icmp6 mib definitions */
-/*
- * RFC 2466: ICMPv6-MIB
- */
-enum
-{
- ICMP6_MIB_NUM = 0,
- ICMP6_MIB_INMSGS, /* InMsgs */
- ICMP6_MIB_INERRORS, /* InErrors */
- ICMP6_MIB_OUTMSGS, /* OutMsgs */
- ICMP6_MIB_OUTERRORS, /* OutErrors */
- __ICMP6_MIB_MAX
-};
-
-#define __ICMP6MSG_MIB_MAX 512 /* Out+In for all 8-bit ICMPv6 types */
-
-/* tcp mib definitions */
-/*
- * RFC 1213: MIB-II TCP group
- * RFC 2012 (updates 1213): SNMPv2-MIB-TCP
- */
-enum
-{
- TCP_MIB_NUM = 0,
- TCP_MIB_RTOALGORITHM, /* RtoAlgorithm */
- TCP_MIB_RTOMIN, /* RtoMin */
- TCP_MIB_RTOMAX, /* RtoMax */
- TCP_MIB_MAXCONN, /* MaxConn */
- TCP_MIB_ACTIVEOPENS, /* ActiveOpens */
- TCP_MIB_PASSIVEOPENS, /* PassiveOpens */
- TCP_MIB_ATTEMPTFAILS, /* AttemptFails */
- TCP_MIB_ESTABRESETS, /* EstabResets */
- TCP_MIB_CURRESTAB, /* CurrEstab */
- TCP_MIB_INSEGS, /* InSegs */
- TCP_MIB_OUTSEGS, /* OutSegs */
- TCP_MIB_RETRANSSEGS, /* RetransSegs */
- TCP_MIB_INERRS, /* InErrs */
- TCP_MIB_OUTRSTS, /* OutRsts */
- __TCP_MIB_MAX
-};
-
-/* udp mib definitions */
-/*
- * RFC 1213: MIB-II UDP group
- * RFC 2013 (updates 1213): SNMPv2-MIB-UDP
- */
-enum
-{
- UDP_MIB_NUM = 0,
- UDP_MIB_INDATAGRAMS, /* InDatagrams */
- UDP_MIB_NOPORTS, /* NoPorts */
- UDP_MIB_INERRORS, /* InErrors */
- UDP_MIB_OUTDATAGRAMS, /* OutDatagrams */
- UDP_MIB_RCVBUFERRORS, /* RcvbufErrors */
- UDP_MIB_SNDBUFERRORS, /* SndbufErrors */
- __UDP_MIB_MAX
-};
-
-/* linux mib definitions */
-enum
-{
- LINUX_MIB_NUM = 0,
- LINUX_MIB_SYNCOOKIESSENT, /* SyncookiesSent */
- LINUX_MIB_SYNCOOKIESRECV, /* SyncookiesRecv */
- LINUX_MIB_SYNCOOKIESFAILED, /* SyncookiesFailed */
- LINUX_MIB_EMBRYONICRSTS, /* EmbryonicRsts */
- LINUX_MIB_PRUNECALLED, /* PruneCalled */
- LINUX_MIB_RCVPRUNED, /* RcvPruned */
- LINUX_MIB_OFOPRUNED, /* OfoPruned */
- LINUX_MIB_OUTOFWINDOWICMPS, /* OutOfWindowIcmps */
- LINUX_MIB_LOCKDROPPEDICMPS, /* LockDroppedIcmps */
- LINUX_MIB_ARPFILTER, /* ArpFilter */
- LINUX_MIB_TIMEWAITED, /* TimeWaited */
- LINUX_MIB_TIMEWAITRECYCLED, /* TimeWaitRecycled */
- LINUX_MIB_TIMEWAITKILLED, /* TimeWaitKilled */
- LINUX_MIB_PAWSPASSIVEREJECTED, /* PAWSPassiveRejected */
- LINUX_MIB_PAWSACTIVEREJECTED, /* PAWSActiveRejected */
- LINUX_MIB_PAWSESTABREJECTED, /* PAWSEstabRejected */
- LINUX_MIB_DELAYEDACKS, /* DelayedACKs */
- LINUX_MIB_DELAYEDACKLOCKED, /* DelayedACKLocked */
- LINUX_MIB_DELAYEDACKLOST, /* DelayedACKLost */
- LINUX_MIB_LISTENOVERFLOWS, /* ListenOverflows */
- LINUX_MIB_LISTENDROPS, /* ListenDrops */
- LINUX_MIB_TCPPREQUEUED, /* TCPPrequeued */
- LINUX_MIB_TCPDIRECTCOPYFROMBACKLOG, /* TCPDirectCopyFromBacklog */
- LINUX_MIB_TCPDIRECTCOPYFROMPREQUEUE, /* TCPDirectCopyFromPrequeue */
- LINUX_MIB_TCPPREQUEUEDROPPED, /* TCPPrequeueDropped */
- LINUX_MIB_TCPHPHITS, /* TCPHPHits */
- LINUX_MIB_TCPHPHITSTOUSER, /* TCPHPHitsToUser */
- LINUX_MIB_TCPPUREACKS, /* TCPPureAcks */
- LINUX_MIB_TCPHPACKS, /* TCPHPAcks */
- LINUX_MIB_TCPRENORECOVERY, /* TCPRenoRecovery */
- LINUX_MIB_TCPSACKRECOVERY, /* TCPSackRecovery */
- LINUX_MIB_TCPSACKRENEGING, /* TCPSACKReneging */
- LINUX_MIB_TCPFACKREORDER, /* TCPFACKReorder */
- LINUX_MIB_TCPSACKREORDER, /* TCPSACKReorder */
- LINUX_MIB_TCPRENOREORDER, /* TCPRenoReorder */
- LINUX_MIB_TCPTSREORDER, /* TCPTSReorder */
- LINUX_MIB_TCPFULLUNDO, /* TCPFullUndo */
- LINUX_MIB_TCPPARTIALUNDO, /* TCPPartialUndo */
- LINUX_MIB_TCPDSACKUNDO, /* TCPDSACKUndo */
- LINUX_MIB_TCPLOSSUNDO, /* TCPLossUndo */
- LINUX_MIB_TCPLOSTRETRANSMIT, /* TCPLostRetransmit */
- LINUX_MIB_TCPRENOFAILURES, /* TCPRenoFailures */
- LINUX_MIB_TCPSACKFAILURES, /* TCPSackFailures */
- LINUX_MIB_TCPLOSSFAILURES, /* TCPLossFailures */
- LINUX_MIB_TCPFASTRETRANS, /* TCPFastRetrans */
- LINUX_MIB_TCPFORWARDRETRANS, /* TCPForwardRetrans */
- LINUX_MIB_TCPSLOWSTARTRETRANS, /* TCPSlowStartRetrans */
- LINUX_MIB_TCPTIMEOUTS, /* TCPTimeouts */
- LINUX_MIB_TCPRENORECOVERYFAIL, /* TCPRenoRecoveryFail */
- LINUX_MIB_TCPSACKRECOVERYFAIL, /* TCPSackRecoveryFail */
- LINUX_MIB_TCPSCHEDULERFAILED, /* TCPSchedulerFailed */
- LINUX_MIB_TCPRCVCOLLAPSED, /* TCPRcvCollapsed */
- LINUX_MIB_TCPDSACKOLDSENT, /* TCPDSACKOldSent */
- LINUX_MIB_TCPDSACKOFOSENT, /* TCPDSACKOfoSent */
- LINUX_MIB_TCPDSACKRECV, /* TCPDSACKRecv */
- LINUX_MIB_TCPDSACKOFORECV, /* TCPDSACKOfoRecv */
- LINUX_MIB_TCPABORTONSYN, /* TCPAbortOnSyn */
- LINUX_MIB_TCPABORTONDATA, /* TCPAbortOnData */
- LINUX_MIB_TCPABORTONCLOSE, /* TCPAbortOnClose */
- LINUX_MIB_TCPABORTONMEMORY, /* TCPAbortOnMemory */
- LINUX_MIB_TCPABORTONTIMEOUT, /* TCPAbortOnTimeout */
- LINUX_MIB_TCPABORTONLINGER, /* TCPAbortOnLinger */
- LINUX_MIB_TCPABORTFAILED, /* TCPAbortFailed */
- LINUX_MIB_TCPMEMORYPRESSURES, /* TCPMemoryPressures */
- LINUX_MIB_TCPSACKDISCARD, /* TCPSACKDiscard */
- LINUX_MIB_TCPDSACKIGNOREDOLD, /* TCPSACKIgnoredOld */
- LINUX_MIB_TCPDSACKIGNOREDNOUNDO, /* TCPSACKIgnoredNoUndo */
- LINUX_MIB_TCPSPURIOUSRTOS, /* TCPSpuriousRTOs */
- LINUX_MIB_TCPMD5NOTFOUND, /* TCPMD5NotFound */
- LINUX_MIB_TCPMD5UNEXPECTED, /* TCPMD5Unexpected */
- LINUX_MIB_SACKSHIFTED,
- LINUX_MIB_SACKMERGED,
- LINUX_MIB_SACKSHIFTFALLBACK,
- LINUX_MIB_TCPBACKLOGDROP,
- LINUX_MIB_TCPMINTTLDROP, /* RFC 5082 */
- LINUX_MIB_TCPDEFERACCEPTDROP,
- LINUX_MIB_IPRPFILTER, /* IP Reverse Path Filter (rp_filter) */
- LINUX_MIB_TCPTIMEWAITOVERFLOW, /* TCPTimeWaitOverflow */
- LINUX_MIB_TCPREQQFULLDOCOOKIES, /* TCPReqQFullDoCookies */
- LINUX_MIB_TCPREQQFULLDROP, /* TCPReqQFullDrop */
- LINUX_MIB_TCPRETRANSFAIL, /* TCPRetransFail */
- LINUX_MIB_TCPRCVCOALESCE, /* TCPRcvCoalesce */
- __LINUX_MIB_MAX
-};
-
-/* linux Xfrm mib definitions */
-enum
-{
- LINUX_MIB_XFRMNUM = 0,
- LINUX_MIB_XFRMINERROR, /* XfrmInError */
- LINUX_MIB_XFRMINBUFFERERROR, /* XfrmInBufferError */
- LINUX_MIB_XFRMINHDRERROR, /* XfrmInHdrError */
- LINUX_MIB_XFRMINNOSTATES, /* XfrmInNoStates */
- LINUX_MIB_XFRMINSTATEPROTOERROR, /* XfrmInStateProtoError */
- LINUX_MIB_XFRMINSTATEMODEERROR, /* XfrmInStateModeError */
- LINUX_MIB_XFRMINSTATESEQERROR, /* XfrmInStateSeqError */
- LINUX_MIB_XFRMINSTATEEXPIRED, /* XfrmInStateExpired */
- LINUX_MIB_XFRMINSTATEMISMATCH, /* XfrmInStateMismatch */
- LINUX_MIB_XFRMINSTATEINVALID, /* XfrmInStateInvalid */
- LINUX_MIB_XFRMINTMPLMISMATCH, /* XfrmInTmplMismatch */
- LINUX_MIB_XFRMINNOPOLS, /* XfrmInNoPols */
- LINUX_MIB_XFRMINPOLBLOCK, /* XfrmInPolBlock */
- LINUX_MIB_XFRMINPOLERROR, /* XfrmInPolError */
- LINUX_MIB_XFRMOUTERROR, /* XfrmOutError */
- LINUX_MIB_XFRMOUTBUNDLEGENERROR, /* XfrmOutBundleGenError */
- LINUX_MIB_XFRMOUTBUNDLECHECKERROR, /* XfrmOutBundleCheckError */
- LINUX_MIB_XFRMOUTNOSTATES, /* XfrmOutNoStates */
- LINUX_MIB_XFRMOUTSTATEPROTOERROR, /* XfrmOutStateProtoError */
- LINUX_MIB_XFRMOUTSTATEMODEERROR, /* XfrmOutStateModeError */
- LINUX_MIB_XFRMOUTSTATESEQERROR, /* XfrmOutStateSeqError */
- LINUX_MIB_XFRMOUTSTATEEXPIRED, /* XfrmOutStateExpired */
- LINUX_MIB_XFRMOUTPOLBLOCK, /* XfrmOutPolBlock */
- LINUX_MIB_XFRMOUTPOLDEAD, /* XfrmOutPolDead */
- LINUX_MIB_XFRMOUTPOLERROR, /* XfrmOutPolError */
- LINUX_MIB_XFRMFWDHDRERROR, /* XfrmFwdHdrError*/
- __LINUX_MIB_XFRMMAX
-};
-
-#endif /* _LINUX_SNMP_H */
diff --git a/ANDROID_3.4.5/include/linux/sock_diag.h b/ANDROID_3.4.5/include/linux/sock_diag.h
deleted file mode 100644
index 251729a4..00000000
--- a/ANDROID_3.4.5/include/linux/sock_diag.h
+++ /dev/null
@@ -1,48 +0,0 @@
-#ifndef __SOCK_DIAG_H__
-#define __SOCK_DIAG_H__
-
-#include <linux/types.h>
-
-#define SOCK_DIAG_BY_FAMILY 20
-
-struct sock_diag_req {
- __u8 sdiag_family;
- __u8 sdiag_protocol;
-};
-
-enum {
- SK_MEMINFO_RMEM_ALLOC,
- SK_MEMINFO_RCVBUF,
- SK_MEMINFO_WMEM_ALLOC,
- SK_MEMINFO_SNDBUF,
- SK_MEMINFO_FWD_ALLOC,
- SK_MEMINFO_WMEM_QUEUED,
- SK_MEMINFO_OPTMEM,
-
- SK_MEMINFO_VARS,
-};
-
-#ifdef __KERNEL__
-struct sk_buff;
-struct nlmsghdr;
-struct sock;
-
-struct sock_diag_handler {
- __u8 family;
- int (*dump)(struct sk_buff *skb, struct nlmsghdr *nlh);
-};
-
-int sock_diag_register(struct sock_diag_handler *h);
-void sock_diag_unregister(struct sock_diag_handler *h);
-
-void sock_diag_register_inet_compat(int (*fn)(struct sk_buff *skb, struct nlmsghdr *nlh));
-void sock_diag_unregister_inet_compat(int (*fn)(struct sk_buff *skb, struct nlmsghdr *nlh));
-
-int sock_diag_check_cookie(void *sk, __u32 *cookie);
-void sock_diag_save_cookie(void *sk, __u32 *cookie);
-
-int sock_diag_put_meminfo(struct sock *sk, struct sk_buff *skb, int attr);
-
-extern struct sock *sock_diag_nlsk;
-#endif /* KERNEL */
-#endif
diff --git a/ANDROID_3.4.5/include/linux/socket.h b/ANDROID_3.4.5/include/linux/socket.h
deleted file mode 100644
index b84bbd48..00000000
--- a/ANDROID_3.4.5/include/linux/socket.h
+++ /dev/null
@@ -1,343 +0,0 @@
-#ifndef _LINUX_SOCKET_H
-#define _LINUX_SOCKET_H
-
-/*
- * Desired design of maximum size and alignment (see RFC2553)
- */
-#define _K_SS_MAXSIZE 128 /* Implementation specific max size */
-#define _K_SS_ALIGNSIZE (__alignof__ (struct sockaddr *))
- /* Implementation specific desired alignment */
-
-typedef unsigned short __kernel_sa_family_t;
-
-struct __kernel_sockaddr_storage {
- __kernel_sa_family_t ss_family; /* address family */
- /* Following field(s) are implementation specific */
- char __data[_K_SS_MAXSIZE - sizeof(unsigned short)];
- /* space to achieve desired size, */
- /* _SS_MAXSIZE value minus size of ss_family */
-} __attribute__ ((aligned(_K_SS_ALIGNSIZE))); /* force desired alignment */
-
-#ifdef __KERNEL__
-
-#include <asm/socket.h> /* arch-dependent defines */
-#include <linux/sockios.h> /* the SIOCxxx I/O controls */
-#include <linux/uio.h> /* iovec support */
-#include <linux/types.h> /* pid_t */
-#include <linux/compiler.h> /* __user */
-
-struct pid;
-struct cred;
-
-#define __sockaddr_check_size(size) \
- BUILD_BUG_ON(((size) > sizeof(struct __kernel_sockaddr_storage)))
-
-#ifdef CONFIG_PROC_FS
-struct seq_file;
-extern void socket_seq_show(struct seq_file *seq);
-#endif
-
-typedef __kernel_sa_family_t sa_family_t;
-
-/*
- * 1003.1g requires sa_family_t and that sa_data is char.
- */
-
-struct sockaddr {
- sa_family_t sa_family; /* address family, AF_xxx */
- char sa_data[14]; /* 14 bytes of protocol address */
-};
-
-struct linger {
- int l_onoff; /* Linger active */
- int l_linger; /* How long to linger for */
-};
-
-#define sockaddr_storage __kernel_sockaddr_storage
-
-/*
- * As we do 4.4BSD message passing we use a 4.4BSD message passing
- * system, not 4.3. Thus msg_accrights(len) are now missing. They
- * belong in an obscure libc emulation or the bin.
- */
-
-struct msghdr {
- void * msg_name; /* Socket name */
- int msg_namelen; /* Length of name */
- struct iovec * msg_iov; /* Data blocks */
- __kernel_size_t msg_iovlen; /* Number of blocks */
- void * msg_control; /* Per protocol magic (eg BSD file descriptor passing) */
- __kernel_size_t msg_controllen; /* Length of cmsg list */
- unsigned msg_flags;
-};
-
-/* For recvmmsg/sendmmsg */
-struct mmsghdr {
- struct msghdr msg_hdr;
- unsigned msg_len;
-};
-
-/*
- * POSIX 1003.1g - ancillary data object information
- * Ancillary data consits of a sequence of pairs of
- * (cmsghdr, cmsg_data[])
- */
-
-struct cmsghdr {
- __kernel_size_t cmsg_len; /* data byte count, including hdr */
- int cmsg_level; /* originating protocol */
- int cmsg_type; /* protocol-specific type */
-};
-
-/*
- * Ancillary data object information MACROS
- * Table 5-14 of POSIX 1003.1g
- */
-
-#define __CMSG_NXTHDR(ctl, len, cmsg) __cmsg_nxthdr((ctl),(len),(cmsg))
-#define CMSG_NXTHDR(mhdr, cmsg) cmsg_nxthdr((mhdr), (cmsg))
-
-#define CMSG_ALIGN(len) ( ((len)+sizeof(long)-1) & ~(sizeof(long)-1) )
-
-#define CMSG_DATA(cmsg) ((void *)((char *)(cmsg) + CMSG_ALIGN(sizeof(struct cmsghdr))))
-#define CMSG_SPACE(len) (CMSG_ALIGN(sizeof(struct cmsghdr)) + CMSG_ALIGN(len))
-#define CMSG_LEN(len) (CMSG_ALIGN(sizeof(struct cmsghdr)) + (len))
-
-#define __CMSG_FIRSTHDR(ctl,len) ((len) >= sizeof(struct cmsghdr) ? \
- (struct cmsghdr *)(ctl) : \
- (struct cmsghdr *)NULL)
-#define CMSG_FIRSTHDR(msg) __CMSG_FIRSTHDR((msg)->msg_control, (msg)->msg_controllen)
-#define CMSG_OK(mhdr, cmsg) ((cmsg)->cmsg_len >= sizeof(struct cmsghdr) && \
- (cmsg)->cmsg_len <= (unsigned long) \
- ((mhdr)->msg_controllen - \
- ((char *)(cmsg) - (char *)(mhdr)->msg_control)))
-
-/*
- * Get the next cmsg header
- *
- * PLEASE, do not touch this function. If you think, that it is
- * incorrect, grep kernel sources and think about consequences
- * before trying to improve it.
- *
- * Now it always returns valid, not truncated ancillary object
- * HEADER. But caller still MUST check, that cmsg->cmsg_len is
- * inside range, given by msg->msg_controllen before using
- * ancillary object DATA. --ANK (980731)
- */
-
-static inline struct cmsghdr * __cmsg_nxthdr(void *__ctl, __kernel_size_t __size,
- struct cmsghdr *__cmsg)
-{
- struct cmsghdr * __ptr;
-
- __ptr = (struct cmsghdr*)(((unsigned char *) __cmsg) + CMSG_ALIGN(__cmsg->cmsg_len));
- if ((unsigned long)((char*)(__ptr+1) - (char *) __ctl) > __size)
- return (struct cmsghdr *)0;
-
- return __ptr;
-}
-
-static inline struct cmsghdr * cmsg_nxthdr (struct msghdr *__msg, struct cmsghdr *__cmsg)
-{
- return __cmsg_nxthdr(__msg->msg_control, __msg->msg_controllen, __cmsg);
-}
-
-/* "Socket"-level control message types: */
-
-#define SCM_RIGHTS 0x01 /* rw: access rights (array of int) */
-#define SCM_CREDENTIALS 0x02 /* rw: struct ucred */
-#define SCM_SECURITY 0x03 /* rw: security label */
-
-struct ucred {
- __u32 pid;
- __u32 uid;
- __u32 gid;
-};
-
-/* Supported address families. */
-#define AF_UNSPEC 0
-#define AF_UNIX 1 /* Unix domain sockets */
-#define AF_LOCAL 1 /* POSIX name for AF_UNIX */
-#define AF_INET 2 /* Internet IP Protocol */
-#define AF_AX25 3 /* Amateur Radio AX.25 */
-#define AF_IPX 4 /* Novell IPX */
-#define AF_APPLETALK 5 /* AppleTalk DDP */
-#define AF_NETROM 6 /* Amateur Radio NET/ROM */
-#define AF_BRIDGE 7 /* Multiprotocol bridge */
-#define AF_ATMPVC 8 /* ATM PVCs */
-#define AF_X25 9 /* Reserved for X.25 project */
-#define AF_INET6 10 /* IP version 6 */
-#define AF_ROSE 11 /* Amateur Radio X.25 PLP */
-#define AF_DECnet 12 /* Reserved for DECnet project */
-#define AF_NETBEUI 13 /* Reserved for 802.2LLC project*/
-#define AF_SECURITY 14 /* Security callback pseudo AF */
-#define AF_KEY 15 /* PF_KEY key management API */
-#define AF_NETLINK 16
-#define AF_ROUTE AF_NETLINK /* Alias to emulate 4.4BSD */
-#define AF_PACKET 17 /* Packet family */
-#define AF_ASH 18 /* Ash */
-#define AF_ECONET 19 /* Acorn Econet */
-#define AF_ATMSVC 20 /* ATM SVCs */
-#define AF_RDS 21 /* RDS sockets */
-#define AF_SNA 22 /* Linux SNA Project (nutters!) */
-#define AF_IRDA 23 /* IRDA sockets */
-#define AF_PPPOX 24 /* PPPoX sockets */
-#define AF_WANPIPE 25 /* Wanpipe API Sockets */
-#define AF_LLC 26 /* Linux LLC */
-#define AF_CAN 29 /* Controller Area Network */
-#define AF_TIPC 30 /* TIPC sockets */
-#define AF_BLUETOOTH 31 /* Bluetooth sockets */
-#define AF_IUCV 32 /* IUCV sockets */
-#define AF_RXRPC 33 /* RxRPC sockets */
-#define AF_ISDN 34 /* mISDN sockets */
-#define AF_PHONET 35 /* Phonet sockets */
-#define AF_IEEE802154 36 /* IEEE802154 sockets */
-#define AF_CAIF 37 /* CAIF sockets */
-#define AF_ALG 38 /* Algorithm sockets */
-#define AF_NFC 39 /* NFC sockets */
-#define AF_MAX 40 /* For now.. */
-
-/* Protocol families, same as address families. */
-#define PF_UNSPEC AF_UNSPEC
-#define PF_UNIX AF_UNIX
-#define PF_LOCAL AF_LOCAL
-#define PF_INET AF_INET
-#define PF_AX25 AF_AX25
-#define PF_IPX AF_IPX
-#define PF_APPLETALK AF_APPLETALK
-#define PF_NETROM AF_NETROM
-#define PF_BRIDGE AF_BRIDGE
-#define PF_ATMPVC AF_ATMPVC
-#define PF_X25 AF_X25
-#define PF_INET6 AF_INET6
-#define PF_ROSE AF_ROSE
-#define PF_DECnet AF_DECnet
-#define PF_NETBEUI AF_NETBEUI
-#define PF_SECURITY AF_SECURITY
-#define PF_KEY AF_KEY
-#define PF_NETLINK AF_NETLINK
-#define PF_ROUTE AF_ROUTE
-#define PF_PACKET AF_PACKET
-#define PF_ASH AF_ASH
-#define PF_ECONET AF_ECONET
-#define PF_ATMSVC AF_ATMSVC
-#define PF_RDS AF_RDS
-#define PF_SNA AF_SNA
-#define PF_IRDA AF_IRDA
-#define PF_PPPOX AF_PPPOX
-#define PF_WANPIPE AF_WANPIPE
-#define PF_LLC AF_LLC
-#define PF_CAN AF_CAN
-#define PF_TIPC AF_TIPC
-#define PF_BLUETOOTH AF_BLUETOOTH
-#define PF_IUCV AF_IUCV
-#define PF_RXRPC AF_RXRPC
-#define PF_ISDN AF_ISDN
-#define PF_PHONET AF_PHONET
-#define PF_IEEE802154 AF_IEEE802154
-#define PF_CAIF AF_CAIF
-#define PF_ALG AF_ALG
-#define PF_NFC AF_NFC
-#define PF_MAX AF_MAX
-
-/* Maximum queue length specifiable by listen. */
-#define SOMAXCONN 128
-
-/* Flags we can use with send/ and recv.
- Added those for 1003.1g not all are supported yet
- */
-
-#define MSG_OOB 1
-#define MSG_PEEK 2
-#define MSG_DONTROUTE 4
-#define MSG_TRYHARD 4 /* Synonym for MSG_DONTROUTE for DECnet */
-#define MSG_CTRUNC 8
-#define MSG_PROBE 0x10 /* Do not send. Only probe path f.e. for MTU */
-#define MSG_TRUNC 0x20
-#define MSG_DONTWAIT 0x40 /* Nonblocking io */
-#define MSG_EOR 0x80 /* End of record */
-#define MSG_WAITALL 0x100 /* Wait for a full request */
-#define MSG_FIN 0x200
-#define MSG_SYN 0x400
-#define MSG_CONFIRM 0x800 /* Confirm path validity */
-#define MSG_RST 0x1000
-#define MSG_ERRQUEUE 0x2000 /* Fetch message from error queue */
-#define MSG_NOSIGNAL 0x4000 /* Do not generate SIGPIPE */
-#define MSG_MORE 0x8000 /* Sender will send more */
-#define MSG_WAITFORONE 0x10000 /* recvmmsg(): block until 1+ packets avail */
-#define MSG_SENDPAGE_NOTLAST 0x20000 /* sendpage() internal : not the last page */
-#define MSG_EOF MSG_FIN
-
-#define MSG_CMSG_CLOEXEC 0x40000000 /* Set close_on_exit for file
- descriptor received through
- SCM_RIGHTS */
-#if defined(CONFIG_COMPAT)
-#define MSG_CMSG_COMPAT 0x80000000 /* This message needs 32 bit fixups */
-#else
-#define MSG_CMSG_COMPAT 0 /* We never have 32 bit fixups */
-#endif
-
-
-/* Setsockoptions(2) level. Thanks to BSD these must match IPPROTO_xxx */
-#define SOL_IP 0
-/* #define SOL_ICMP 1 No-no-no! Due to Linux :-) we cannot use SOL_ICMP=1 */
-#define SOL_TCP 6
-#define SOL_UDP 17
-#define SOL_IPV6 41
-#define SOL_ICMPV6 58
-#define SOL_SCTP 132
-#define SOL_UDPLITE 136 /* UDP-Lite (RFC 3828) */
-#define SOL_RAW 255
-#define SOL_IPX 256
-#define SOL_AX25 257
-#define SOL_ATALK 258
-#define SOL_NETROM 259
-#define SOL_ROSE 260
-#define SOL_DECNET 261
-#define SOL_X25 262
-#define SOL_PACKET 263
-#define SOL_ATM 264 /* ATM layer (cell level) */
-#define SOL_AAL 265 /* ATM Adaption Layer (packet level) */
-#define SOL_IRDA 266
-#define SOL_NETBEUI 267
-#define SOL_LLC 268
-#define SOL_DCCP 269
-#define SOL_NETLINK 270
-#define SOL_TIPC 271
-#define SOL_RXRPC 272
-#define SOL_PPPOL2TP 273
-#define SOL_BLUETOOTH 274
-#define SOL_PNPIPE 275
-#define SOL_RDS 276
-#define SOL_IUCV 277
-#define SOL_CAIF 278
-#define SOL_ALG 279
-
-/* IPX options */
-#define IPX_TYPE 1
-
-extern void cred_to_ucred(struct pid *pid, const struct cred *cred, struct ucred *ucred);
-
-extern int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len);
-extern int memcpy_fromiovecend(unsigned char *kdata, const struct iovec *iov,
- int offset, int len);
-extern int csum_partial_copy_fromiovecend(unsigned char *kdata,
- struct iovec *iov,
- int offset,
- unsigned int len, __wsum *csump);
-
-extern int verify_iovec(struct msghdr *m, struct iovec *iov, struct sockaddr_storage *address, int mode);
-extern int memcpy_toiovec(struct iovec *v, unsigned char *kdata, int len);
-extern int memcpy_toiovecend(const struct iovec *v, unsigned char *kdata,
- int offset, int len);
-extern int move_addr_to_kernel(void __user *uaddr, int ulen, struct sockaddr_storage *kaddr);
-extern int put_cmsg(struct msghdr*, int level, int type, int len, void *data);
-
-struct timespec;
-
-extern int __sys_recvmmsg(int fd, struct mmsghdr __user *mmsg, unsigned int vlen,
- unsigned int flags, struct timespec *timeout);
-extern int __sys_sendmmsg(int fd, struct mmsghdr __user *mmsg,
- unsigned int vlen, unsigned int flags);
-#endif /* not kernel and not glibc */
-#endif /* _LINUX_SOCKET_H */
diff --git a/ANDROID_3.4.5/include/linux/sockios.h b/ANDROID_3.4.5/include/linux/sockios.h
deleted file mode 100644
index f7ffe36d..00000000
--- a/ANDROID_3.4.5/include/linux/sockios.h
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Definitions of the socket-level I/O control calls.
- *
- * Version: @(#)sockios.h 1.0.2 03/09/93
- *
- * Authors: Ross Biro
- * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.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.
- */
-#ifndef _LINUX_SOCKIOS_H
-#define _LINUX_SOCKIOS_H
-
-#include <asm/sockios.h>
-
-/* Linux-specific socket ioctls */
-#define SIOCINQ FIONREAD
-#define SIOCOUTQ TIOCOUTQ /* output queue size (not sent + not acked) */
-
-/* Routing table calls. */
-#define SIOCADDRT 0x890B /* add routing table entry */
-#define SIOCDELRT 0x890C /* delete routing table entry */
-#define SIOCRTMSG 0x890D /* call to routing system */
-
-/* Socket configuration controls. */
-#define SIOCGIFNAME 0x8910 /* get iface name */
-#define SIOCSIFLINK 0x8911 /* set iface channel */
-#define SIOCGIFCONF 0x8912 /* get iface list */
-#define SIOCGIFFLAGS 0x8913 /* get flags */
-#define SIOCSIFFLAGS 0x8914 /* set flags */
-#define SIOCGIFADDR 0x8915 /* get PA address */
-#define SIOCSIFADDR 0x8916 /* set PA address */
-#define SIOCGIFDSTADDR 0x8917 /* get remote PA address */
-#define SIOCSIFDSTADDR 0x8918 /* set remote PA address */
-#define SIOCGIFBRDADDR 0x8919 /* get broadcast PA address */
-#define SIOCSIFBRDADDR 0x891a /* set broadcast PA address */
-#define SIOCGIFNETMASK 0x891b /* get network PA mask */
-#define SIOCSIFNETMASK 0x891c /* set network PA mask */
-#define SIOCGIFMETRIC 0x891d /* get metric */
-#define SIOCSIFMETRIC 0x891e /* set metric */
-#define SIOCGIFMEM 0x891f /* get memory address (BSD) */
-#define SIOCSIFMEM 0x8920 /* set memory address (BSD) */
-#define SIOCGIFMTU 0x8921 /* get MTU size */
-#define SIOCSIFMTU 0x8922 /* set MTU size */
-#define SIOCSIFNAME 0x8923 /* set interface name */
-#define SIOCSIFHWADDR 0x8924 /* set hardware address */
-#define SIOCGIFENCAP 0x8925 /* get/set encapsulations */
-#define SIOCSIFENCAP 0x8926
-#define SIOCGIFHWADDR 0x8927 /* Get hardware address */
-#define SIOCGIFSLAVE 0x8929 /* Driver slaving support */
-#define SIOCSIFSLAVE 0x8930
-#define SIOCADDMULTI 0x8931 /* Multicast address lists */
-#define SIOCDELMULTI 0x8932
-#define SIOCGIFINDEX 0x8933 /* name -> if_index mapping */
-#define SIOGIFINDEX SIOCGIFINDEX /* misprint compatibility :-) */
-#define SIOCSIFPFLAGS 0x8934 /* set/get extended flags set */
-#define SIOCGIFPFLAGS 0x8935
-#define SIOCDIFADDR 0x8936 /* delete PA address */
-#define SIOCSIFHWBROADCAST 0x8937 /* set hardware broadcast addr */
-#define SIOCGIFCOUNT 0x8938 /* get number of devices */
-#define SIOCKILLADDR 0x8939 /* kill sockets with this local addr */
-
-#define SIOCGIFBR 0x8940 /* Bridging support */
-#define SIOCSIFBR 0x8941 /* Set bridging options */
-
-#define SIOCGIFTXQLEN 0x8942 /* Get the tx queue length */
-#define SIOCSIFTXQLEN 0x8943 /* Set the tx queue length */
-
-/* SIOCGIFDIVERT was: 0x8944 Frame diversion support */
-/* SIOCSIFDIVERT was: 0x8945 Set frame diversion options */
-
-#define SIOCETHTOOL 0x8946 /* Ethtool interface */
-
-#define SIOCGMIIPHY 0x8947 /* Get address of MII PHY in use. */
-#define SIOCGMIIREG 0x8948 /* Read MII PHY register. */
-#define SIOCSMIIREG 0x8949 /* Write MII PHY register. */
-
-#define SIOCWANDEV 0x894A /* get/set netdev parameters */
-
-#define SIOCOUTQNSD 0x894B /* output queue size (not sent only) */
-
-/* ARP cache control calls. */
- /* 0x8950 - 0x8952 * obsolete calls, don't re-use */
-#define SIOCDARP 0x8953 /* delete ARP table entry */
-#define SIOCGARP 0x8954 /* get ARP table entry */
-#define SIOCSARP 0x8955 /* set ARP table entry */
-
-/* RARP cache control calls. */
-#define SIOCDRARP 0x8960 /* delete RARP table entry */
-#define SIOCGRARP 0x8961 /* get RARP table entry */
-#define SIOCSRARP 0x8962 /* set RARP table entry */
-
-/* Driver configuration calls */
-
-#define SIOCGIFMAP 0x8970 /* Get device parameters */
-#define SIOCSIFMAP 0x8971 /* Set device parameters */
-
-/* DLCI configuration calls */
-
-#define SIOCADDDLCI 0x8980 /* Create new DLCI device */
-#define SIOCDELDLCI 0x8981 /* Delete DLCI device */
-
-#define SIOCGIFVLAN 0x8982 /* 802.1Q VLAN support */
-#define SIOCSIFVLAN 0x8983 /* Set 802.1Q VLAN options */
-
-/* bonding calls */
-
-#define SIOCBONDENSLAVE 0x8990 /* enslave a device to the bond */
-#define SIOCBONDRELEASE 0x8991 /* release a slave from the bond*/
-#define SIOCBONDSETHWADDR 0x8992 /* set the hw addr of the bond */
-#define SIOCBONDSLAVEINFOQUERY 0x8993 /* rtn info about slave state */
-#define SIOCBONDINFOQUERY 0x8994 /* rtn info about bond state */
-#define SIOCBONDCHANGEACTIVE 0x8995 /* update to a new active slave */
-
-/* bridge calls */
-#define SIOCBRADDBR 0x89a0 /* create new bridge device */
-#define SIOCBRDELBR 0x89a1 /* remove bridge device */
-#define SIOCBRADDIF 0x89a2 /* add interface to bridge */
-#define SIOCBRDELIF 0x89a3 /* remove interface from bridge */
-
-/* hardware time stamping: parameters in linux/net_tstamp.h */
-#define SIOCSHWTSTAMP 0x89b0
-
-/* Device private ioctl calls */
-
-/*
- * These 16 ioctls are available to devices via the do_ioctl() device
- * vector. Each device should include this file and redefine these names
- * as their own. Because these are device dependent it is a good idea
- * _NOT_ to issue them to random objects and hope.
- *
- * THESE IOCTLS ARE _DEPRECATED_ AND WILL DISAPPEAR IN 2.5.X -DaveM
- */
-
-#define SIOCDEVPRIVATE 0x89F0 /* to 89FF */
-
-/*
- * These 16 ioctl calls are protocol private
- */
-
-#define SIOCPROTOPRIVATE 0x89E0 /* to 89EF */
-#endif /* _LINUX_SOCKIOS_H */
diff --git a/ANDROID_3.4.5/include/linux/som.h b/ANDROID_3.4.5/include/linux/som.h
deleted file mode 100644
index 166594e4..00000000
--- a/ANDROID_3.4.5/include/linux/som.h
+++ /dev/null
@@ -1,154 +0,0 @@
-#ifndef _LINUX_SOM_H
-#define _LINUX_SOM_H
-
-/* File format definition for SOM executables / shared libraries */
-
-/* we need struct timespec */
-#include <linux/time.h>
-
-#define SOM_PAGESIZE 4096
-
-/* this is the SOM header */
-struct som_hdr {
- short system_id; /* magic number - system */
- short a_magic; /* magic number - file type */
- unsigned int version_id; /* versiod ID: YYMMDDHH */
- struct timespec file_time; /* system clock */
- unsigned int entry_space; /* space for entry point */
- unsigned int entry_subspace; /* subspace for entry point */
- unsigned int entry_offset; /* offset of entry point */
- unsigned int aux_header_location; /* auxiliary header location */
- unsigned int aux_header_size; /* auxiliary header size */
- unsigned int som_length; /* length of entire SOM */
- unsigned int presumed_dp; /* compiler's DP value */
- unsigned int space_location; /* space dictionary location */
- unsigned int space_total; /* number of space entries */
- unsigned int subspace_location; /* subspace entries location */
- unsigned int subspace_total; /* number of subspace entries */
- unsigned int loader_fixup_location; /* MPE/iX loader fixup */
- unsigned int loader_fixup_total; /* number of fixup records */
- unsigned int space_strings_location; /* (sub)space names */
- unsigned int space_strings_size; /* size of strings area */
- unsigned int init_array_location; /* reserved */
- unsigned int init_array_total; /* reserved */
- unsigned int compiler_location; /* module dictionary */
- unsigned int compiler_total; /* number of modules */
- unsigned int symbol_location; /* symbol dictionary */
- unsigned int symbol_total; /* number of symbols */
- unsigned int fixup_request_location; /* fixup requests */
- unsigned int fixup_request_total; /* number of fixup requests */
- unsigned int symbol_strings_location;/* module & symbol names area */
- unsigned int symbol_strings_size; /* size of strings area */
- unsigned int unloadable_sp_location; /* unloadable spaces location */
- unsigned int unloadable_sp_size; /* size of data */
- unsigned int checksum;
-};
-
-/* values for system_id */
-
-#define SOM_SID_PARISC_1_0 0x020b
-#define SOM_SID_PARISC_1_1 0x0210
-#define SOM_SID_PARISC_2_0 0x0214
-
-/* values for a_magic */
-
-#define SOM_LIB_EXEC 0x0104
-#define SOM_RELOCATABLE 0x0106
-#define SOM_EXEC_NONSHARE 0x0107
-#define SOM_EXEC_SHARE 0x0108
-#define SOM_EXEC_DEMAND 0x010B
-#define SOM_LIB_DYN 0x010D
-#define SOM_LIB_SHARE 0x010E
-#define SOM_LIB_RELOC 0x0619
-
-/* values for version_id. Decimal not hex, yes. Grr. */
-
-#define SOM_ID_OLD 85082112
-#define SOM_ID_NEW 87102412
-
-struct aux_id {
- unsigned int mandatory :1; /* the linker must understand this */
- unsigned int copy :1; /* Must be copied by the linker */
- unsigned int append :1; /* Must be merged by the linker */
- unsigned int ignore :1; /* Discard section if unknown */
- unsigned int reserved :12;
- unsigned int type :16; /* Header type */
- unsigned int length; /* length of _following_ data */
-};
-
-/* The Exec Auxiliary Header. Called The HP-UX Header within HP apparently. */
-struct som_exec_auxhdr {
- struct aux_id som_auxhdr;
- int exec_tsize; /* Text size in bytes */
- int exec_tmem; /* Address to load text at */
- int exec_tfile; /* Location of text in file */
- int exec_dsize; /* Data size in bytes */
- int exec_dmem; /* Address to load data at */
- int exec_dfile; /* Location of data in file */
- int exec_bsize; /* Uninitialised data (bss) */
- int exec_entry; /* Address to start executing */
- int exec_flags; /* loader flags */
- int exec_bfill; /* initialisation value for bss */
-};
-
-/* Oh, the things people do to avoid casts. Shame it'll break with gcc's
- * new aliasing rules really.
- */
-union name_pt {
- char * n_name;
- unsigned int n_strx;
-};
-
-/* The Space Dictionary */
-struct space_dictionary_record {
- union name_pt name; /* index to subspace name */
- unsigned int is_loadable :1; /* loadable */
- unsigned int is_defined :1; /* defined within file */
- unsigned int is_private :1; /* not sharable */
- unsigned int has_intermediate_code :1; /* contains intermediate code */
- unsigned int is_tspecific :1; /* thread specific */
- unsigned int reserved :11; /* for future expansion */
- unsigned int sort_key :8; /* for linker */
- unsigned int reserved2 :8; /* for future expansion */
-
- int space_number; /* index */
- int subspace_index; /* index into subspace dict */
- unsigned int subspace_quantity; /* number of subspaces */
- int loader_fix_index; /* for loader */
- unsigned int loader_fix_quantity; /* for loader */
- int init_pointer_index; /* data pointer array index */
- unsigned int init_pointer_quantity; /* number of data pointers */
-};
-
-/* The Subspace Dictionary */
-struct subspace_dictionary_record {
- int space_index;
- unsigned int access_control_bits :7;
- unsigned int memory_resident :1;
- unsigned int dup_common :1;
- unsigned int is_common :1;
- unsigned int quadrant :2;
- unsigned int initially_frozen :1;
- unsigned int is_first :1;
- unsigned int code_only :1;
- unsigned int sort_key :8;
- unsigned int replicate_init :1;
- unsigned int continuation :1;
- unsigned int is_tspecific :1;
- unsigned int is_comdat :1;
- unsigned int reserved :4;
-
- int file_loc_init_value;
- unsigned int initialization_length;
- unsigned int subspace_start;
- unsigned int subspace_length;
-
- unsigned int reserved2 :5;
- unsigned int alignment :27;
-
- union name_pt name;
- int fixup_request_index;
- unsigned int fixup_request_quantity;
-};
-
-#endif /* _LINUX_SOM_H */
diff --git a/ANDROID_3.4.5/include/linux/sonet.h b/ANDROID_3.4.5/include/linux/sonet.h
deleted file mode 100644
index de8832dd..00000000
--- a/ANDROID_3.4.5/include/linux/sonet.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/* sonet.h - SONET/SHD physical layer control */
-
-/* Written 1995-2000 by Werner Almesberger, EPFL LRC/ICA */
-
-
-#ifndef LINUX_SONET_H
-#define LINUX_SONET_H
-
-#define __SONET_ITEMS \
- __HANDLE_ITEM(section_bip); /* section parity errors (B1) */ \
- __HANDLE_ITEM(line_bip); /* line parity errors (B2) */ \
- __HANDLE_ITEM(path_bip); /* path parity errors (B3) */ \
- __HANDLE_ITEM(line_febe); /* line parity errors at remote */ \
- __HANDLE_ITEM(path_febe); /* path parity errors at remote */ \
- __HANDLE_ITEM(corr_hcs); /* correctable header errors */ \
- __HANDLE_ITEM(uncorr_hcs); /* uncorrectable header errors */ \
- __HANDLE_ITEM(tx_cells); /* cells sent */ \
- __HANDLE_ITEM(rx_cells); /* cells received */
-
-struct sonet_stats {
-#define __HANDLE_ITEM(i) int i
- __SONET_ITEMS
-#undef __HANDLE_ITEM
-} __attribute__ ((packed));
-
-
-#define SONET_GETSTAT _IOR('a',ATMIOC_PHYTYP,struct sonet_stats)
- /* get statistics */
-#define SONET_GETSTATZ _IOR('a',ATMIOC_PHYTYP+1,struct sonet_stats)
- /* ... and zero counters */
-#define SONET_SETDIAG _IOWR('a',ATMIOC_PHYTYP+2,int)
- /* set error insertion */
-#define SONET_CLRDIAG _IOWR('a',ATMIOC_PHYTYP+3,int)
- /* clear error insertion */
-#define SONET_GETDIAG _IOR('a',ATMIOC_PHYTYP+4,int)
- /* query error insertion */
-#define SONET_SETFRAMING _IOW('a',ATMIOC_PHYTYP+5,int)
- /* set framing mode (SONET/SDH) */
-#define SONET_GETFRAMING _IOR('a',ATMIOC_PHYTYP+6,int)
- /* get framing mode */
-#define SONET_GETFRSENSE _IOR('a',ATMIOC_PHYTYP+7, \
- unsigned char[SONET_FRSENSE_SIZE]) /* get framing sense information */
-
-#define SONET_INS_SBIP 1 /* section BIP */
-#define SONET_INS_LBIP 2 /* line BIP */
-#define SONET_INS_PBIP 4 /* path BIP */
-#define SONET_INS_FRAME 8 /* out of frame */
-#define SONET_INS_LOS 16 /* set line to zero */
-#define SONET_INS_LAIS 32 /* line alarm indication signal */
-#define SONET_INS_PAIS 64 /* path alarm indication signal */
-#define SONET_INS_HCS 128 /* insert HCS error */
-
-#define SONET_FRAME_SONET 0 /* SONET STS-3 framing */
-#define SONET_FRAME_SDH 1 /* SDH STM-1 framing */
-
-#define SONET_FRSENSE_SIZE 6 /* C1[3],H1[3] (0xff for unknown) */
-
-
-#ifdef __KERNEL__
-
-#include <linux/atomic.h>
-
-struct k_sonet_stats {
-#define __HANDLE_ITEM(i) atomic_t i
- __SONET_ITEMS
-#undef __HANDLE_ITEM
-};
-
-extern void sonet_copy_stats(struct k_sonet_stats *from,struct sonet_stats *to);
-extern void sonet_subtract_stats(struct k_sonet_stats *from,
- struct sonet_stats *to);
-
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/sony-laptop.h b/ANDROID_3.4.5/include/linux/sony-laptop.h
deleted file mode 100644
index e2e036d9..00000000
--- a/ANDROID_3.4.5/include/linux/sony-laptop.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef _SONYLAPTOP_H_
-#define _SONYLAPTOP_H_
-
-#include <linux/types.h>
-
-#ifdef __KERNEL__
-
-/* used only for communication between v4l and sony-laptop */
-
-#define SONY_PIC_COMMAND_GETCAMERA 1 /* obsolete */
-#define SONY_PIC_COMMAND_SETCAMERA 2
-#define SONY_PIC_COMMAND_GETCAMERABRIGHTNESS 3 /* obsolete */
-#define SONY_PIC_COMMAND_SETCAMERABRIGHTNESS 4
-#define SONY_PIC_COMMAND_GETCAMERACONTRAST 5 /* obsolete */
-#define SONY_PIC_COMMAND_SETCAMERACONTRAST 6
-#define SONY_PIC_COMMAND_GETCAMERAHUE 7 /* obsolete */
-#define SONY_PIC_COMMAND_SETCAMERAHUE 8
-#define SONY_PIC_COMMAND_GETCAMERACOLOR 9 /* obsolete */
-#define SONY_PIC_COMMAND_SETCAMERACOLOR 10
-#define SONY_PIC_COMMAND_GETCAMERASHARPNESS 11 /* obsolete */
-#define SONY_PIC_COMMAND_SETCAMERASHARPNESS 12
-#define SONY_PIC_COMMAND_GETCAMERAPICTURE 13 /* obsolete */
-#define SONY_PIC_COMMAND_SETCAMERAPICTURE 14
-#define SONY_PIC_COMMAND_GETCAMERAAGC 15 /* obsolete */
-#define SONY_PIC_COMMAND_SETCAMERAAGC 16
-#define SONY_PIC_COMMAND_GETCAMERADIRECTION 17 /* obsolete */
-#define SONY_PIC_COMMAND_GETCAMERAROMVERSION 18 /* obsolete */
-#define SONY_PIC_COMMAND_GETCAMERAREVISION 19 /* obsolete */
-
-int sony_pic_camera_command(int command, u8 value);
-
-#endif /* __KERNEL__ */
-
-#endif /* _SONYLAPTOP_H_ */
diff --git a/ANDROID_3.4.5/include/linux/sonypi.h b/ANDROID_3.4.5/include/linux/sonypi.h
deleted file mode 100644
index c0f87da7..00000000
--- a/ANDROID_3.4.5/include/linux/sonypi.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Sony Programmable I/O Control Device driver for VAIO
- *
- * Copyright (C) 2001-2005 Stelian Pop <stelian@popies.net>
- *
- * Copyright (C) 2005 Narayanan R S <nars@kadamba.org>
-
- * Copyright (C) 2001-2002 Alcôve <www.alcove.com>
- *
- * Copyright (C) 2001 Michael Ashley <m.ashley@unsw.edu.au>
- *
- * Copyright (C) 2001 Junichi Morita <jun1m@mars.dti.ne.jp>
- *
- * Copyright (C) 2000 Takaya Kinjo <t-kinjo@tc4.so-net.ne.jp>
- *
- * Copyright (C) 2000 Andrew Tridgell <tridge@valinux.com>
- *
- * Earlier work by Werner Almesberger, Paul `Rusty' Russell and Paul Mackerras.
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-#ifndef _SONYPI_H_
-#define _SONYPI_H_
-
-#include <linux/types.h>
-
-/* events the user application reading /dev/sonypi can use */
-
-#define SONYPI_EVENT_IGNORE 0
-#define SONYPI_EVENT_JOGDIAL_DOWN 1
-#define SONYPI_EVENT_JOGDIAL_UP 2
-#define SONYPI_EVENT_JOGDIAL_DOWN_PRESSED 3
-#define SONYPI_EVENT_JOGDIAL_UP_PRESSED 4
-#define SONYPI_EVENT_JOGDIAL_PRESSED 5
-#define SONYPI_EVENT_JOGDIAL_RELEASED 6 /* obsolete */
-#define SONYPI_EVENT_CAPTURE_PRESSED 7
-#define SONYPI_EVENT_CAPTURE_RELEASED 8 /* obsolete */
-#define SONYPI_EVENT_CAPTURE_PARTIALPRESSED 9
-#define SONYPI_EVENT_CAPTURE_PARTIALRELEASED 10
-#define SONYPI_EVENT_FNKEY_ESC 11
-#define SONYPI_EVENT_FNKEY_F1 12
-#define SONYPI_EVENT_FNKEY_F2 13
-#define SONYPI_EVENT_FNKEY_F3 14
-#define SONYPI_EVENT_FNKEY_F4 15
-#define SONYPI_EVENT_FNKEY_F5 16
-#define SONYPI_EVENT_FNKEY_F6 17
-#define SONYPI_EVENT_FNKEY_F7 18
-#define SONYPI_EVENT_FNKEY_F8 19
-#define SONYPI_EVENT_FNKEY_F9 20
-#define SONYPI_EVENT_FNKEY_F10 21
-#define SONYPI_EVENT_FNKEY_F11 22
-#define SONYPI_EVENT_FNKEY_F12 23
-#define SONYPI_EVENT_FNKEY_1 24
-#define SONYPI_EVENT_FNKEY_2 25
-#define SONYPI_EVENT_FNKEY_D 26
-#define SONYPI_EVENT_FNKEY_E 27
-#define SONYPI_EVENT_FNKEY_F 28
-#define SONYPI_EVENT_FNKEY_S 29
-#define SONYPI_EVENT_FNKEY_B 30
-#define SONYPI_EVENT_BLUETOOTH_PRESSED 31
-#define SONYPI_EVENT_PKEY_P1 32
-#define SONYPI_EVENT_PKEY_P2 33
-#define SONYPI_EVENT_PKEY_P3 34
-#define SONYPI_EVENT_BACK_PRESSED 35
-#define SONYPI_EVENT_LID_CLOSED 36
-#define SONYPI_EVENT_LID_OPENED 37
-#define SONYPI_EVENT_BLUETOOTH_ON 38
-#define SONYPI_EVENT_BLUETOOTH_OFF 39
-#define SONYPI_EVENT_HELP_PRESSED 40
-#define SONYPI_EVENT_FNKEY_ONLY 41
-#define SONYPI_EVENT_JOGDIAL_FAST_DOWN 42
-#define SONYPI_EVENT_JOGDIAL_FAST_UP 43
-#define SONYPI_EVENT_JOGDIAL_FAST_DOWN_PRESSED 44
-#define SONYPI_EVENT_JOGDIAL_FAST_UP_PRESSED 45
-#define SONYPI_EVENT_JOGDIAL_VFAST_DOWN 46
-#define SONYPI_EVENT_JOGDIAL_VFAST_UP 47
-#define SONYPI_EVENT_JOGDIAL_VFAST_DOWN_PRESSED 48
-#define SONYPI_EVENT_JOGDIAL_VFAST_UP_PRESSED 49
-#define SONYPI_EVENT_ZOOM_PRESSED 50
-#define SONYPI_EVENT_THUMBPHRASE_PRESSED 51
-#define SONYPI_EVENT_MEYE_FACE 52
-#define SONYPI_EVENT_MEYE_OPPOSITE 53
-#define SONYPI_EVENT_MEMORYSTICK_INSERT 54
-#define SONYPI_EVENT_MEMORYSTICK_EJECT 55
-#define SONYPI_EVENT_ANYBUTTON_RELEASED 56
-#define SONYPI_EVENT_BATTERY_INSERT 57
-#define SONYPI_EVENT_BATTERY_REMOVE 58
-#define SONYPI_EVENT_FNKEY_RELEASED 59
-#define SONYPI_EVENT_WIRELESS_ON 60
-#define SONYPI_EVENT_WIRELESS_OFF 61
-#define SONYPI_EVENT_ZOOM_IN_PRESSED 62
-#define SONYPI_EVENT_ZOOM_OUT_PRESSED 63
-#define SONYPI_EVENT_CD_EJECT_PRESSED 64
-#define SONYPI_EVENT_MODEKEY_PRESSED 65
-#define SONYPI_EVENT_PKEY_P4 66
-#define SONYPI_EVENT_PKEY_P5 67
-#define SONYPI_EVENT_SETTINGKEY_PRESSED 68
-#define SONYPI_EVENT_VOLUME_INC_PRESSED 69
-#define SONYPI_EVENT_VOLUME_DEC_PRESSED 70
-#define SONYPI_EVENT_BRIGHTNESS_PRESSED 71
-#define SONYPI_EVENT_MEDIA_PRESSED 72
-#define SONYPI_EVENT_VENDOR_PRESSED 73
-
-/* get/set brightness */
-#define SONYPI_IOCGBRT _IOR('v', 0, __u8)
-#define SONYPI_IOCSBRT _IOW('v', 0, __u8)
-
-/* get battery full capacity/remaining capacity */
-#define SONYPI_IOCGBAT1CAP _IOR('v', 2, __u16)
-#define SONYPI_IOCGBAT1REM _IOR('v', 3, __u16)
-#define SONYPI_IOCGBAT2CAP _IOR('v', 4, __u16)
-#define SONYPI_IOCGBAT2REM _IOR('v', 5, __u16)
-
-/* get battery flags: battery1/battery2/ac adapter present */
-#define SONYPI_BFLAGS_B1 0x01
-#define SONYPI_BFLAGS_B2 0x02
-#define SONYPI_BFLAGS_AC 0x04
-#define SONYPI_IOCGBATFLAGS _IOR('v', 7, __u8)
-
-/* get/set bluetooth subsystem state on/off */
-#define SONYPI_IOCGBLUE _IOR('v', 8, __u8)
-#define SONYPI_IOCSBLUE _IOW('v', 9, __u8)
-
-/* get/set fan state on/off */
-#define SONYPI_IOCGFAN _IOR('v', 10, __u8)
-#define SONYPI_IOCSFAN _IOW('v', 11, __u8)
-
-/* get temperature (C) */
-#define SONYPI_IOCGTEMP _IOR('v', 12, __u8)
-
-#ifdef __KERNEL__
-
-/* used only for communication between v4l and sonypi */
-
-#define SONYPI_COMMAND_GETCAMERA 1 /* obsolete */
-#define SONYPI_COMMAND_SETCAMERA 2
-#define SONYPI_COMMAND_GETCAMERABRIGHTNESS 3 /* obsolete */
-#define SONYPI_COMMAND_SETCAMERABRIGHTNESS 4
-#define SONYPI_COMMAND_GETCAMERACONTRAST 5 /* obsolete */
-#define SONYPI_COMMAND_SETCAMERACONTRAST 6
-#define SONYPI_COMMAND_GETCAMERAHUE 7 /* obsolete */
-#define SONYPI_COMMAND_SETCAMERAHUE 8
-#define SONYPI_COMMAND_GETCAMERACOLOR 9 /* obsolete */
-#define SONYPI_COMMAND_SETCAMERACOLOR 10
-#define SONYPI_COMMAND_GETCAMERASHARPNESS 11 /* obsolete */
-#define SONYPI_COMMAND_SETCAMERASHARPNESS 12
-#define SONYPI_COMMAND_GETCAMERAPICTURE 13 /* obsolete */
-#define SONYPI_COMMAND_SETCAMERAPICTURE 14
-#define SONYPI_COMMAND_GETCAMERAAGC 15 /* obsolete */
-#define SONYPI_COMMAND_SETCAMERAAGC 16
-#define SONYPI_COMMAND_GETCAMERADIRECTION 17 /* obsolete */
-#define SONYPI_COMMAND_GETCAMERAROMVERSION 18 /* obsolete */
-#define SONYPI_COMMAND_GETCAMERAREVISION 19 /* obsolete */
-
-#endif /* __KERNEL__ */
-
-#endif /* _SONYPI_H_ */
diff --git a/ANDROID_3.4.5/include/linux/sort.h b/ANDROID_3.4.5/include/linux/sort.h
deleted file mode 100644
index d534da2b..00000000
--- a/ANDROID_3.4.5/include/linux/sort.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef _LINUX_SORT_H
-#define _LINUX_SORT_H
-
-#include <linux/types.h>
-
-void sort(void *base, size_t num, size_t size,
- int (*cmp)(const void *, const void *),
- void (*swap)(void *, void *, int));
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/sound.h b/ANDROID_3.4.5/include/linux/sound.h
deleted file mode 100644
index fae20ba0..00000000
--- a/ANDROID_3.4.5/include/linux/sound.h
+++ /dev/null
@@ -1,48 +0,0 @@
-#ifndef _LINUX_SOUND_H
-#define _LINUX_SOUND_H
-
-/*
- * Minor numbers for the sound driver.
- */
-
-#include <linux/fs.h>
-
-#define SND_DEV_CTL 0 /* Control port /dev/mixer */
-#define SND_DEV_SEQ 1 /* Sequencer output /dev/sequencer (FM
- synthesizer and MIDI output) */
-#define SND_DEV_MIDIN 2 /* Raw midi access */
-#define SND_DEV_DSP 3 /* Digitized voice /dev/dsp */
-#define SND_DEV_AUDIO 4 /* Sparc compatible /dev/audio */
-#define SND_DEV_DSP16 5 /* Like /dev/dsp but 16 bits/sample */
-/* #define SND_DEV_STATUS 6 */ /* /dev/sndstat (obsolete) */
-#define SND_DEV_UNUSED 6
-#define SND_DEV_AWFM 7 /* Reserved */
-#define SND_DEV_SEQ2 8 /* /dev/sequencer, level 2 interface */
-/* #define SND_DEV_SNDPROC 9 */ /* /dev/sndproc for programmable devices (not used) */
-/* #define SND_DEV_DMMIDI 9 */
-#define SND_DEV_SYNTH 9 /* Raw synth access /dev/synth (same as /dev/dmfm) */
-#define SND_DEV_DMFM 10 /* Raw synth access /dev/dmfm */
-#define SND_DEV_UNKNOWN11 11
-#define SND_DEV_ADSP 12 /* Like /dev/dsp (obsolete) */
-#define SND_DEV_AMIDI 13 /* Like /dev/midi (obsolete) */
-#define SND_DEV_ADMMIDI 14 /* Like /dev/dmmidi (onsolete) */
-
-#ifdef __KERNEL__
-/*
- * Sound core interface functions
- */
-
-struct device;
-extern int register_sound_special(const struct file_operations *fops, int unit);
-extern int register_sound_special_device(const struct file_operations *fops, int unit, struct device *dev);
-extern int register_sound_mixer(const struct file_operations *fops, int dev);
-extern int register_sound_midi(const struct file_operations *fops, int dev);
-extern int register_sound_dsp(const struct file_operations *fops, int dev);
-
-extern void unregister_sound_special(int unit);
-extern void unregister_sound_mixer(int unit);
-extern void unregister_sound_midi(int unit);
-extern void unregister_sound_dsp(int unit);
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_SOUND_H */
diff --git a/ANDROID_3.4.5/include/linux/soundcard.h b/ANDROID_3.4.5/include/linux/soundcard.h
deleted file mode 100644
index dfcf86f0..00000000
--- a/ANDROID_3.4.5/include/linux/soundcard.h
+++ /dev/null
@@ -1,1292 +0,0 @@
-#ifndef SOUNDCARD_H
-#define SOUNDCARD_H
-/*
- * Copyright by Hannu Savolainen 1993-1997
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met: 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer. 2.
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-
-/*
- * OSS interface version. With versions earlier than 3.6 this value is
- * an integer with value less than 361. In versions 3.6 and later
- * it's a six digit hexadecimal value. For example value
- * of 0x030600 represents OSS version 3.6.0.
- * Use ioctl(fd, OSS_GETVERSION, &int) to get the version number of
- * the currently active driver.
- */
-#define SOUND_VERSION 0x030802
-#define OPEN_SOUND_SYSTEM
-
-/* In Linux we need to be prepared for cross compiling */
-#include <linux/ioctl.h>
-
-/* Endian macros. */
-#ifdef __KERNEL__
-# include <asm/byteorder.h>
-#else
-# include <endian.h>
-#endif
-
-/*
- * Supported card ID numbers (Should be somewhere else?)
- */
-
-#define SNDCARD_ADLIB 1
-#define SNDCARD_SB 2
-#define SNDCARD_PAS 3
-#define SNDCARD_GUS 4
-#define SNDCARD_MPU401 5
-#define SNDCARD_SB16 6
-#define SNDCARD_SB16MIDI 7
-#define SNDCARD_UART6850 8
-#define SNDCARD_GUS16 9
-#define SNDCARD_MSS 10
-#define SNDCARD_PSS 11
-#define SNDCARD_SSCAPE 12
-#define SNDCARD_PSS_MPU 13
-#define SNDCARD_PSS_MSS 14
-#define SNDCARD_SSCAPE_MSS 15
-#define SNDCARD_TRXPRO 16
-#define SNDCARD_TRXPRO_SB 17
-#define SNDCARD_TRXPRO_MPU 18
-#define SNDCARD_MAD16 19
-#define SNDCARD_MAD16_MPU 20
-#define SNDCARD_CS4232 21
-#define SNDCARD_CS4232_MPU 22
-#define SNDCARD_MAUI 23
-#define SNDCARD_PSEUDO_MSS 24
-#define SNDCARD_GUSPNP 25
-#define SNDCARD_UART401 26
-/* Sound card numbers 27 to N are reserved. Don't add more numbers here. */
-
-/***********************************
- * IOCTL Commands for /dev/sequencer
- */
-
-#ifndef _SIOWR
-#if defined(_IOWR) && (defined(_AIX) || (!defined(sun) && !defined(sparc) && !defined(__sparc__) && !defined(__INCioctlh) && !defined(__Lynx__)))
-/* Use already defined ioctl defines if they exist (except with Sun or Sparc) */
-#define SIOCPARM_MASK IOCPARM_MASK
-#define SIOC_VOID IOC_VOID
-#define SIOC_OUT IOC_OUT
-#define SIOC_IN IOC_IN
-#define SIOC_INOUT IOC_INOUT
-#define _SIOC_SIZE _IOC_SIZE
-#define _SIOC_DIR _IOC_DIR
-#define _SIOC_NONE _IOC_NONE
-#define _SIOC_READ _IOC_READ
-#define _SIOC_WRITE _IOC_WRITE
-#define _SIO _IO
-#define _SIOR _IOR
-#define _SIOW _IOW
-#define _SIOWR _IOWR
-#else
-
-/* Ioctl's have the command encoded in the lower word,
- * and the size of any in or out parameters in the upper
- * word. The high 2 bits of the upper word are used
- * to encode the in/out status of the parameter; for now
- * we restrict parameters to at most 8191 bytes.
- */
-/* #define SIOCTYPE (0xff<<8) */
-#define SIOCPARM_MASK 0x1fff /* parameters must be < 8192 bytes */
-#define SIOC_VOID 0x00000000 /* no parameters */
-#define SIOC_OUT 0x20000000 /* copy out parameters */
-#define SIOC_IN 0x40000000 /* copy in parameters */
-#define SIOC_INOUT (SIOC_IN|SIOC_OUT)
-/* the 0x20000000 is so we can distinguish new ioctl's from old */
-#define _SIO(x,y) ((int)(SIOC_VOID|(x<<8)|y))
-#define _SIOR(x,y,t) ((int)(SIOC_OUT|((sizeof(t)&SIOCPARM_MASK)<<16)|(x<<8)|y))
-#define _SIOW(x,y,t) ((int)(SIOC_IN|((sizeof(t)&SIOCPARM_MASK)<<16)|(x<<8)|y))
-/* this should be _SIORW, but stdio got there first */
-#define _SIOWR(x,y,t) ((int)(SIOC_INOUT|((sizeof(t)&SIOCPARM_MASK)<<16)|(x<<8)|y))
-#define _SIOC_SIZE(x) ((x>>16)&SIOCPARM_MASK)
-#define _SIOC_DIR(x) (x & 0xf0000000)
-#define _SIOC_NONE SIOC_VOID
-#define _SIOC_READ SIOC_OUT
-#define _SIOC_WRITE SIOC_IN
-# endif /* _IOWR */
-#endif /* !_SIOWR */
-
-#define SNDCTL_SEQ_RESET _SIO ('Q', 0)
-#define SNDCTL_SEQ_SYNC _SIO ('Q', 1)
-#define SNDCTL_SYNTH_INFO _SIOWR('Q', 2, struct synth_info)
-#define SNDCTL_SEQ_CTRLRATE _SIOWR('Q', 3, int) /* Set/get timer resolution (HZ) */
-#define SNDCTL_SEQ_GETOUTCOUNT _SIOR ('Q', 4, int)
-#define SNDCTL_SEQ_GETINCOUNT _SIOR ('Q', 5, int)
-#define SNDCTL_SEQ_PERCMODE _SIOW ('Q', 6, int)
-#define SNDCTL_FM_LOAD_INSTR _SIOW ('Q', 7, struct sbi_instrument) /* Obsolete. Don't use!!!!!! */
-#define SNDCTL_SEQ_TESTMIDI _SIOW ('Q', 8, int)
-#define SNDCTL_SEQ_RESETSAMPLES _SIOW ('Q', 9, int)
-#define SNDCTL_SEQ_NRSYNTHS _SIOR ('Q',10, int)
-#define SNDCTL_SEQ_NRMIDIS _SIOR ('Q',11, int)
-#define SNDCTL_MIDI_INFO _SIOWR('Q',12, struct midi_info)
-#define SNDCTL_SEQ_THRESHOLD _SIOW ('Q',13, int)
-#define SNDCTL_SYNTH_MEMAVL _SIOWR('Q',14, int) /* in=dev#, out=memsize */
-#define SNDCTL_FM_4OP_ENABLE _SIOW ('Q',15, int) /* in=dev# */
-#define SNDCTL_SEQ_PANIC _SIO ('Q',17)
-#define SNDCTL_SEQ_OUTOFBAND _SIOW ('Q',18, struct seq_event_rec)
-#define SNDCTL_SEQ_GETTIME _SIOR ('Q',19, int)
-#define SNDCTL_SYNTH_ID _SIOWR('Q',20, struct synth_info)
-#define SNDCTL_SYNTH_CONTROL _SIOWR('Q',21, struct synth_control)
-#define SNDCTL_SYNTH_REMOVESAMPLE _SIOWR('Q',22, struct remove_sample)
-
-typedef struct synth_control
-{
- int devno; /* Synthesizer # */
- char data[4000]; /* Device spesific command/data record */
-}synth_control;
-
-typedef struct remove_sample
-{
- int devno; /* Synthesizer # */
- int bankno; /* MIDI bank # (0=General MIDI) */
- int instrno; /* MIDI instrument number */
-} remove_sample;
-
-typedef struct seq_event_rec {
- unsigned char arr[8];
-} seq_event_rec;
-
-#define SNDCTL_TMR_TIMEBASE _SIOWR('T', 1, int)
-#define SNDCTL_TMR_START _SIO ('T', 2)
-#define SNDCTL_TMR_STOP _SIO ('T', 3)
-#define SNDCTL_TMR_CONTINUE _SIO ('T', 4)
-#define SNDCTL_TMR_TEMPO _SIOWR('T', 5, int)
-#define SNDCTL_TMR_SOURCE _SIOWR('T', 6, int)
-# define TMR_INTERNAL 0x00000001
-# define TMR_EXTERNAL 0x00000002
-# define TMR_MODE_MIDI 0x00000010
-# define TMR_MODE_FSK 0x00000020
-# define TMR_MODE_CLS 0x00000040
-# define TMR_MODE_SMPTE 0x00000080
-#define SNDCTL_TMR_METRONOME _SIOW ('T', 7, int)
-#define SNDCTL_TMR_SELECT _SIOW ('T', 8, int)
-
-/*
- * Some big endian/little endian handling macros
- */
-
-#define _LINUX_PATCHKEY_H_INDIRECT
-#include <linux/patchkey.h>
-#undef _LINUX_PATCHKEY_H_INDIRECT
-
-#if defined(__KERNEL__)
-# if defined(__BIG_ENDIAN)
-# define AFMT_S16_NE AFMT_S16_BE
-# elif defined(__LITTLE_ENDIAN)
-# define AFMT_S16_NE AFMT_S16_LE
-# else
-# error "could not determine byte order"
-# endif
-#else
-# if defined(__BYTE_ORDER)
-# if __BYTE_ORDER == __BIG_ENDIAN
-# define AFMT_S16_NE AFMT_S16_BE
-# elif __BYTE_ORDER == __LITTLE_ENDIAN
-# define AFMT_S16_NE AFMT_S16_LE
-# else
-# error "could not determine byte order"
-# endif
-# endif
-#endif
-
-/*
- * Sample loading mechanism for internal synthesizers (/dev/sequencer)
- * The following patch_info structure has been designed to support
- * Gravis UltraSound. It tries to be universal format for uploading
- * sample based patches but is probably too limited.
- *
- * (PBD) As Hannu guessed, the GUS structure is too limited for
- * the WaveFront, but this is the right place for a constant definition.
- */
-
-struct patch_info {
- unsigned short key; /* Use WAVE_PATCH here */
-#define WAVE_PATCH _PATCHKEY(0x04)
-#define GUS_PATCH WAVE_PATCH
-#define WAVEFRONT_PATCH _PATCHKEY(0x06)
-
- short device_no; /* Synthesizer number */
- short instr_no; /* Midi pgm# */
-
- unsigned int mode;
-/*
- * The least significant byte has the same format than the GUS .PAT
- * files
- */
-#define WAVE_16_BITS 0x01 /* bit 0 = 8 or 16 bit wave data. */
-#define WAVE_UNSIGNED 0x02 /* bit 1 = Signed - Unsigned data. */
-#define WAVE_LOOPING 0x04 /* bit 2 = looping enabled-1. */
-#define WAVE_BIDIR_LOOP 0x08 /* bit 3 = Set is bidirectional looping. */
-#define WAVE_LOOP_BACK 0x10 /* bit 4 = Set is looping backward. */
-#define WAVE_SUSTAIN_ON 0x20 /* bit 5 = Turn sustaining on. (Env. pts. 3)*/
-#define WAVE_ENVELOPES 0x40 /* bit 6 = Enable envelopes - 1 */
-#define WAVE_FAST_RELEASE 0x80 /* bit 7 = Shut off immediately after note off */
- /* (use the env_rate/env_offs fields). */
-/* Linux specific bits */
-#define WAVE_VIBRATO 0x00010000 /* The vibrato info is valid */
-#define WAVE_TREMOLO 0x00020000 /* The tremolo info is valid */
-#define WAVE_SCALE 0x00040000 /* The scaling info is valid */
-#define WAVE_FRACTIONS 0x00080000 /* Fraction information is valid */
-/* Reserved bits */
-#define WAVE_ROM 0x40000000 /* For future use */
-#define WAVE_MULAW 0x20000000 /* For future use */
-/* Other bits must be zeroed */
-
- int len; /* Size of the wave data in bytes */
- int loop_start, loop_end; /* Byte offsets from the beginning */
-
-/*
- * The base_freq and base_note fields are used when computing the
- * playback speed for a note. The base_note defines the tone frequency
- * which is heard if the sample is played using the base_freq as the
- * playback speed.
- *
- * The low_note and high_note fields define the minimum and maximum note
- * frequencies for which this sample is valid. It is possible to define
- * more than one samples for an instrument number at the same time. The
- * low_note and high_note fields are used to select the most suitable one.
- *
- * The fields base_note, high_note and low_note should contain
- * the note frequency multiplied by 1000. For example value for the
- * middle A is 440*1000.
- */
-
- unsigned int base_freq;
- unsigned int base_note;
- unsigned int high_note;
- unsigned int low_note;
- int panning; /* -128=left, 127=right */
- int detuning;
-
-/* New fields introduced in version 1.99.5 */
-
- /* Envelope. Enabled by mode bit WAVE_ENVELOPES */
- unsigned char env_rate[ 6 ]; /* GUS HW ramping rate */
- unsigned char env_offset[ 6 ]; /* 255 == 100% */
-
- /*
- * The tremolo, vibrato and scale info are not supported yet.
- * Enable by setting the mode bits WAVE_TREMOLO, WAVE_VIBRATO or
- * WAVE_SCALE
- */
-
- unsigned char tremolo_sweep;
- unsigned char tremolo_rate;
- unsigned char tremolo_depth;
-
- unsigned char vibrato_sweep;
- unsigned char vibrato_rate;
- unsigned char vibrato_depth;
-
- int scale_frequency;
- unsigned int scale_factor; /* from 0 to 2048 or 0 to 2 */
-
- int volume;
- int fractions;
- int reserved1;
- int spare[2];
- char data[1]; /* The waveform data starts here */
- };
-
-struct sysex_info {
- short key; /* Use SYSEX_PATCH or MAUI_PATCH here */
-#define SYSEX_PATCH _PATCHKEY(0x05)
-#define MAUI_PATCH _PATCHKEY(0x06)
- short device_no; /* Synthesizer number */
- int len; /* Size of the sysex data in bytes */
- unsigned char data[1]; /* Sysex data starts here */
- };
-
-/*
- * /dev/sequencer input events.
- *
- * The data written to the /dev/sequencer is a stream of events. Events
- * are records of 4 or 8 bytes. The first byte defines the size.
- * Any number of events can be written with a write call. There
- * is a set of macros for sending these events. Use these macros if you
- * want to maximize portability of your program.
- *
- * Events SEQ_WAIT, SEQ_MIDIPUTC and SEQ_ECHO. Are also input events.
- * (All input events are currently 4 bytes long. Be prepared to support
- * 8 byte events also. If you receive any event having first byte >= 128,
- * it's a 8 byte event.
- *
- * The events are documented at the end of this file.
- *
- * Normal events (4 bytes)
- * There is also a 8 byte version of most of the 4 byte events. The
- * 8 byte one is recommended.
- */
-#define SEQ_NOTEOFF 0
-#define SEQ_FMNOTEOFF SEQ_NOTEOFF /* Just old name */
-#define SEQ_NOTEON 1
-#define SEQ_FMNOTEON SEQ_NOTEON
-#define SEQ_WAIT TMR_WAIT_ABS
-#define SEQ_PGMCHANGE 3
-#define SEQ_FMPGMCHANGE SEQ_PGMCHANGE
-#define SEQ_SYNCTIMER TMR_START
-#define SEQ_MIDIPUTC 5
-#define SEQ_DRUMON 6 /*** OBSOLETE ***/
-#define SEQ_DRUMOFF 7 /*** OBSOLETE ***/
-#define SEQ_ECHO TMR_ECHO /* For synching programs with output */
-#define SEQ_AFTERTOUCH 9
-#define SEQ_CONTROLLER 10
-
-/*******************************************
- * Midi controller numbers
- *******************************************
- * Controllers 0 to 31 (0x00 to 0x1f) and
- * 32 to 63 (0x20 to 0x3f) are continuous
- * controllers.
- * In the MIDI 1.0 these controllers are sent using
- * two messages. Controller numbers 0 to 31 are used
- * to send the MSB and the controller numbers 32 to 63
- * are for the LSB. Note that just 7 bits are used in MIDI bytes.
- */
-
-#define CTL_BANK_SELECT 0x00
-#define CTL_MODWHEEL 0x01
-#define CTL_BREATH 0x02
-/* undefined 0x03 */
-#define CTL_FOOT 0x04
-#define CTL_PORTAMENTO_TIME 0x05
-#define CTL_DATA_ENTRY 0x06
-#define CTL_MAIN_VOLUME 0x07
-#define CTL_BALANCE 0x08
-/* undefined 0x09 */
-#define CTL_PAN 0x0a
-#define CTL_EXPRESSION 0x0b
-/* undefined 0x0c */
-/* undefined 0x0d */
-/* undefined 0x0e */
-/* undefined 0x0f */
-#define CTL_GENERAL_PURPOSE1 0x10
-#define CTL_GENERAL_PURPOSE2 0x11
-#define CTL_GENERAL_PURPOSE3 0x12
-#define CTL_GENERAL_PURPOSE4 0x13
-/* undefined 0x14 - 0x1f */
-
-/* undefined 0x20 */
-/* The controller numbers 0x21 to 0x3f are reserved for the */
-/* least significant bytes of the controllers 0x00 to 0x1f. */
-/* These controllers are not recognised by the driver. */
-
-/* Controllers 64 to 69 (0x40 to 0x45) are on/off switches. */
-/* 0=OFF and 127=ON (intermediate values are possible) */
-#define CTL_DAMPER_PEDAL 0x40
-#define CTL_SUSTAIN 0x40 /* Alias */
-#define CTL_HOLD 0x40 /* Alias */
-#define CTL_PORTAMENTO 0x41
-#define CTL_SOSTENUTO 0x42
-#define CTL_SOFT_PEDAL 0x43
-/* undefined 0x44 */
-#define CTL_HOLD2 0x45
-/* undefined 0x46 - 0x4f */
-
-#define CTL_GENERAL_PURPOSE5 0x50
-#define CTL_GENERAL_PURPOSE6 0x51
-#define CTL_GENERAL_PURPOSE7 0x52
-#define CTL_GENERAL_PURPOSE8 0x53
-/* undefined 0x54 - 0x5a */
-#define CTL_EXT_EFF_DEPTH 0x5b
-#define CTL_TREMOLO_DEPTH 0x5c
-#define CTL_CHORUS_DEPTH 0x5d
-#define CTL_DETUNE_DEPTH 0x5e
-#define CTL_CELESTE_DEPTH 0x5e /* Alias for the above one */
-#define CTL_PHASER_DEPTH 0x5f
-#define CTL_DATA_INCREMENT 0x60
-#define CTL_DATA_DECREMENT 0x61
-#define CTL_NONREG_PARM_NUM_LSB 0x62
-#define CTL_NONREG_PARM_NUM_MSB 0x63
-#define CTL_REGIST_PARM_NUM_LSB 0x64
-#define CTL_REGIST_PARM_NUM_MSB 0x65
-/* undefined 0x66 - 0x78 */
-/* reserved 0x79 - 0x7f */
-
-/* Pseudo controllers (not midi compatible) */
-#define CTRL_PITCH_BENDER 255
-#define CTRL_PITCH_BENDER_RANGE 254
-#define CTRL_EXPRESSION 253 /* Obsolete */
-#define CTRL_MAIN_VOLUME 252 /* Obsolete */
-#define SEQ_BALANCE 11
-#define SEQ_VOLMODE 12
-
-/*
- * Volume mode decides how volumes are used
- */
-
-#define VOL_METHOD_ADAGIO 1
-#define VOL_METHOD_LINEAR 2
-
-/*
- * Note! SEQ_WAIT, SEQ_MIDIPUTC and SEQ_ECHO are used also as
- * input events.
- */
-
-/*
- * Event codes 0xf0 to 0xfc are reserved for future extensions.
- */
-
-#define SEQ_FULLSIZE 0xfd /* Long events */
-/*
- * SEQ_FULLSIZE events are used for loading patches/samples to the
- * synthesizer devices. These events are passed directly to the driver
- * of the associated synthesizer device. There is no limit to the size
- * of the extended events. These events are not queued but executed
- * immediately when the write() is called (execution can take several
- * seconds of time).
- *
- * When a SEQ_FULLSIZE message is written to the device, it must
- * be written using exactly one write() call. Other events cannot
- * be mixed to the same write.
- *
- * For FM synths (YM3812/OPL3) use struct sbi_instrument and write it to the
- * /dev/sequencer. Don't write other data together with the instrument structure
- * Set the key field of the structure to FM_PATCH. The device field is used to
- * route the patch to the corresponding device.
- *
- * For wave table use struct patch_info. Initialize the key field
- * to WAVE_PATCH.
- */
-#define SEQ_PRIVATE 0xfe /* Low level HW dependent events (8 bytes) */
-#define SEQ_EXTENDED 0xff /* Extended events (8 bytes) OBSOLETE */
-
-/*
- * Record for FM patches
- */
-
-typedef unsigned char sbi_instr_data[32];
-
-struct sbi_instrument {
- unsigned short key; /* FM_PATCH or OPL3_PATCH */
-#define FM_PATCH _PATCHKEY(0x01)
-#define OPL3_PATCH _PATCHKEY(0x03)
- short device; /* Synth# (0-4) */
- int channel; /* Program# to be initialized */
- sbi_instr_data operators; /* Register settings for operator cells (.SBI format) */
- };
-
-struct synth_info { /* Read only */
- char name[30];
- int device; /* 0-N. INITIALIZE BEFORE CALLING */
- int synth_type;
-#define SYNTH_TYPE_FM 0
-#define SYNTH_TYPE_SAMPLE 1
-#define SYNTH_TYPE_MIDI 2 /* Midi interface */
-
- int synth_subtype;
-#define FM_TYPE_ADLIB 0x00
-#define FM_TYPE_OPL3 0x01
-#define MIDI_TYPE_MPU401 0x401
-
-#define SAMPLE_TYPE_BASIC 0x10
-#define SAMPLE_TYPE_GUS SAMPLE_TYPE_BASIC
-#define SAMPLE_TYPE_WAVEFRONT 0x11
-
- int perc_mode; /* No longer supported */
- int nr_voices;
- int nr_drums; /* Obsolete field */
- int instr_bank_size;
- unsigned int capabilities;
-#define SYNTH_CAP_PERCMODE 0x00000001 /* No longer used */
-#define SYNTH_CAP_OPL3 0x00000002 /* Set if OPL3 supported */
-#define SYNTH_CAP_INPUT 0x00000004 /* Input (MIDI) device */
- int dummies[19]; /* Reserve space */
- };
-
-struct sound_timer_info {
- char name[32];
- int caps;
- };
-
-#define MIDI_CAP_MPU401 1 /* MPU-401 intelligent mode */
-
-struct midi_info {
- char name[30];
- int device; /* 0-N. INITIALIZE BEFORE CALLING */
- unsigned int capabilities; /* To be defined later */
- int dev_type;
- int dummies[18]; /* Reserve space */
- };
-
-/********************************************
- * ioctl commands for the /dev/midi##
- */
-typedef struct {
- unsigned char cmd;
- char nr_args, nr_returns;
- unsigned char data[30];
- } mpu_command_rec;
-
-#define SNDCTL_MIDI_PRETIME _SIOWR('m', 0, int)
-#define SNDCTL_MIDI_MPUMODE _SIOWR('m', 1, int)
-#define SNDCTL_MIDI_MPUCMD _SIOWR('m', 2, mpu_command_rec)
-
-/********************************************
- * IOCTL commands for /dev/dsp and /dev/audio
- */
-
-#define SNDCTL_DSP_RESET _SIO ('P', 0)
-#define SNDCTL_DSP_SYNC _SIO ('P', 1)
-#define SNDCTL_DSP_SPEED _SIOWR('P', 2, int)
-#define SNDCTL_DSP_STEREO _SIOWR('P', 3, int)
-#define SNDCTL_DSP_GETBLKSIZE _SIOWR('P', 4, int)
-#define SNDCTL_DSP_SAMPLESIZE SNDCTL_DSP_SETFMT
-#define SNDCTL_DSP_CHANNELS _SIOWR('P', 6, int)
-#define SOUND_PCM_WRITE_CHANNELS SNDCTL_DSP_CHANNELS
-#define SOUND_PCM_WRITE_FILTER _SIOWR('P', 7, int)
-#define SNDCTL_DSP_POST _SIO ('P', 8)
-#define SNDCTL_DSP_SUBDIVIDE _SIOWR('P', 9, int)
-#define SNDCTL_DSP_SETFRAGMENT _SIOWR('P',10, int)
-
-/* Audio data formats (Note! U8=8 and S16_LE=16 for compatibility) */
-#define SNDCTL_DSP_GETFMTS _SIOR ('P',11, int) /* Returns a mask */
-#define SNDCTL_DSP_SETFMT _SIOWR('P',5, int) /* Selects ONE fmt*/
-# define AFMT_QUERY 0x00000000 /* Return current fmt */
-# define AFMT_MU_LAW 0x00000001
-# define AFMT_A_LAW 0x00000002
-# define AFMT_IMA_ADPCM 0x00000004
-# define AFMT_U8 0x00000008
-# define AFMT_S16_LE 0x00000010 /* Little endian signed 16*/
-# define AFMT_S16_BE 0x00000020 /* Big endian signed 16 */
-# define AFMT_S8 0x00000040
-# define AFMT_U16_LE 0x00000080 /* Little endian U16 */
-# define AFMT_U16_BE 0x00000100 /* Big endian U16 */
-# define AFMT_MPEG 0x00000200 /* MPEG (2) audio */
-# define AFMT_AC3 0x00000400 /* Dolby Digital AC3 */
-
-/*
- * Buffer status queries.
- */
-typedef struct audio_buf_info {
- int fragments; /* # of available fragments (partially usend ones not counted) */
- int fragstotal; /* Total # of fragments allocated */
- int fragsize; /* Size of a fragment in bytes */
-
- int bytes; /* Available space in bytes (includes partially used fragments) */
- /* Note! 'bytes' could be more than fragments*fragsize */
- } audio_buf_info;
-
-#define SNDCTL_DSP_GETOSPACE _SIOR ('P',12, audio_buf_info)
-#define SNDCTL_DSP_GETISPACE _SIOR ('P',13, audio_buf_info)
-#define SNDCTL_DSP_NONBLOCK _SIO ('P',14)
-#define SNDCTL_DSP_GETCAPS _SIOR ('P',15, int)
-# define DSP_CAP_REVISION 0x000000ff /* Bits for revision level (0 to 255) */
-# define DSP_CAP_DUPLEX 0x00000100 /* Full duplex record/playback */
-# define DSP_CAP_REALTIME 0x00000200 /* Real time capability */
-# define DSP_CAP_BATCH 0x00000400 /* Device has some kind of */
- /* internal buffers which may */
- /* cause some delays and */
- /* decrease precision of timing */
-# define DSP_CAP_COPROC 0x00000800 /* Has a coprocessor */
- /* Sometimes it's a DSP */
- /* but usually not */
-# define DSP_CAP_TRIGGER 0x00001000 /* Supports SETTRIGGER */
-# define DSP_CAP_MMAP 0x00002000 /* Supports mmap() */
-# define DSP_CAP_MULTI 0x00004000 /* support multiple open */
-# define DSP_CAP_BIND 0x00008000 /* channel binding to front/rear/cneter/lfe */
-
-
-#define SNDCTL_DSP_GETTRIGGER _SIOR ('P',16, int)
-#define SNDCTL_DSP_SETTRIGGER _SIOW ('P',16, int)
-# define PCM_ENABLE_INPUT 0x00000001
-# define PCM_ENABLE_OUTPUT 0x00000002
-
-typedef struct count_info {
- int bytes; /* Total # of bytes processed */
- int blocks; /* # of fragment transitions since last time */
- int ptr; /* Current DMA pointer value */
- } count_info;
-
-#define SNDCTL_DSP_GETIPTR _SIOR ('P',17, count_info)
-#define SNDCTL_DSP_GETOPTR _SIOR ('P',18, count_info)
-
-typedef struct buffmem_desc {
- unsigned *buffer;
- int size;
- } buffmem_desc;
-#define SNDCTL_DSP_MAPINBUF _SIOR ('P', 19, buffmem_desc)
-#define SNDCTL_DSP_MAPOUTBUF _SIOR ('P', 20, buffmem_desc)
-#define SNDCTL_DSP_SETSYNCRO _SIO ('P', 21)
-#define SNDCTL_DSP_SETDUPLEX _SIO ('P', 22)
-#define SNDCTL_DSP_GETODELAY _SIOR ('P', 23, int)
-
-#define SNDCTL_DSP_GETCHANNELMASK _SIOWR('P', 64, int)
-#define SNDCTL_DSP_BIND_CHANNEL _SIOWR('P', 65, int)
-# define DSP_BIND_QUERY 0x00000000
-# define DSP_BIND_FRONT 0x00000001
-# define DSP_BIND_SURR 0x00000002
-# define DSP_BIND_CENTER_LFE 0x00000004
-# define DSP_BIND_HANDSET 0x00000008
-# define DSP_BIND_MIC 0x00000010
-# define DSP_BIND_MODEM1 0x00000020
-# define DSP_BIND_MODEM2 0x00000040
-# define DSP_BIND_I2S 0x00000080
-# define DSP_BIND_SPDIF 0x00000100
-
-#define SNDCTL_DSP_SETSPDIF _SIOW ('P', 66, int)
-#define SNDCTL_DSP_GETSPDIF _SIOR ('P', 67, int)
-# define SPDIF_PRO 0x0001
-# define SPDIF_N_AUD 0x0002
-# define SPDIF_COPY 0x0004
-# define SPDIF_PRE 0x0008
-# define SPDIF_CC 0x07f0
-# define SPDIF_L 0x0800
-# define SPDIF_DRS 0x4000
-# define SPDIF_V 0x8000
-
-/*
- * Application's profile defines the way how playback underrun situations should be handled.
- *
- * APF_NORMAL (the default) and APF_NETWORK make the driver to cleanup the
- * playback buffer whenever an underrun occurs. This consumes some time
- * prevents looping the existing buffer.
- * APF_CPUINTENS is intended to be set by CPU intensive applications which
- * are likely to run out of time occasionally. In this mode the buffer cleanup is
- * disabled which saves CPU time but also let's the previous buffer content to
- * be played during the "pause" after the underrun.
- */
-#define SNDCTL_DSP_PROFILE _SIOW ('P', 23, int)
-#define APF_NORMAL 0 /* Normal applications */
-#define APF_NETWORK 1 /* Underruns probably caused by an "external" delay */
-#define APF_CPUINTENS 2 /* Underruns probably caused by "overheating" the CPU */
-
-#define SOUND_PCM_READ_RATE _SIOR ('P', 2, int)
-#define SOUND_PCM_READ_CHANNELS _SIOR ('P', 6, int)
-#define SOUND_PCM_READ_BITS _SIOR ('P', 5, int)
-#define SOUND_PCM_READ_FILTER _SIOR ('P', 7, int)
-
-/* Some alias names */
-#define SOUND_PCM_WRITE_BITS SNDCTL_DSP_SETFMT
-#define SOUND_PCM_WRITE_RATE SNDCTL_DSP_SPEED
-#define SOUND_PCM_POST SNDCTL_DSP_POST
-#define SOUND_PCM_RESET SNDCTL_DSP_RESET
-#define SOUND_PCM_SYNC SNDCTL_DSP_SYNC
-#define SOUND_PCM_SUBDIVIDE SNDCTL_DSP_SUBDIVIDE
-#define SOUND_PCM_SETFRAGMENT SNDCTL_DSP_SETFRAGMENT
-#define SOUND_PCM_GETFMTS SNDCTL_DSP_GETFMTS
-#define SOUND_PCM_SETFMT SNDCTL_DSP_SETFMT
-#define SOUND_PCM_GETOSPACE SNDCTL_DSP_GETOSPACE
-#define SOUND_PCM_GETISPACE SNDCTL_DSP_GETISPACE
-#define SOUND_PCM_NONBLOCK SNDCTL_DSP_NONBLOCK
-#define SOUND_PCM_GETCAPS SNDCTL_DSP_GETCAPS
-#define SOUND_PCM_GETTRIGGER SNDCTL_DSP_GETTRIGGER
-#define SOUND_PCM_SETTRIGGER SNDCTL_DSP_SETTRIGGER
-#define SOUND_PCM_SETSYNCRO SNDCTL_DSP_SETSYNCRO
-#define SOUND_PCM_GETIPTR SNDCTL_DSP_GETIPTR
-#define SOUND_PCM_GETOPTR SNDCTL_DSP_GETOPTR
-#define SOUND_PCM_MAPINBUF SNDCTL_DSP_MAPINBUF
-#define SOUND_PCM_MAPOUTBUF SNDCTL_DSP_MAPOUTBUF
-
-/*
- * ioctl calls to be used in communication with coprocessors and
- * DSP chips.
- */
-
-typedef struct copr_buffer {
- int command; /* Set to 0 if not used */
- int flags;
-#define CPF_NONE 0x0000
-#define CPF_FIRST 0x0001 /* First block */
-#define CPF_LAST 0x0002 /* Last block */
- int len;
- int offs; /* If required by the device (0 if not used) */
-
- unsigned char data[4000]; /* NOTE! 4000 is not 4k */
- } copr_buffer;
-
-typedef struct copr_debug_buf {
- int command; /* Used internally. Set to 0 */
- int parm1;
- int parm2;
- int flags;
- int len; /* Length of data in bytes */
- } copr_debug_buf;
-
-typedef struct copr_msg {
- int len;
- unsigned char data[4000];
- } copr_msg;
-
-#define SNDCTL_COPR_RESET _SIO ('C', 0)
-#define SNDCTL_COPR_LOAD _SIOWR('C', 1, copr_buffer)
-#define SNDCTL_COPR_RDATA _SIOWR('C', 2, copr_debug_buf)
-#define SNDCTL_COPR_RCODE _SIOWR('C', 3, copr_debug_buf)
-#define SNDCTL_COPR_WDATA _SIOW ('C', 4, copr_debug_buf)
-#define SNDCTL_COPR_WCODE _SIOW ('C', 5, copr_debug_buf)
-#define SNDCTL_COPR_RUN _SIOWR('C', 6, copr_debug_buf)
-#define SNDCTL_COPR_HALT _SIOWR('C', 7, copr_debug_buf)
-#define SNDCTL_COPR_SENDMSG _SIOWR('C', 8, copr_msg)
-#define SNDCTL_COPR_RCVMSG _SIOR ('C', 9, copr_msg)
-
-/*********************************************
- * IOCTL commands for /dev/mixer
- */
-
-/*
- * Mixer devices
- *
- * There can be up to 20 different analog mixer channels. The
- * SOUND_MIXER_NRDEVICES gives the currently supported maximum.
- * The SOUND_MIXER_READ_DEVMASK returns a bitmask which tells
- * the devices supported by the particular mixer.
- */
-
-#define SOUND_MIXER_NRDEVICES 25
-#define SOUND_MIXER_VOLUME 0
-#define SOUND_MIXER_BASS 1
-#define SOUND_MIXER_TREBLE 2
-#define SOUND_MIXER_SYNTH 3
-#define SOUND_MIXER_PCM 4
-#define SOUND_MIXER_SPEAKER 5
-#define SOUND_MIXER_LINE 6
-#define SOUND_MIXER_MIC 7
-#define SOUND_MIXER_CD 8
-#define SOUND_MIXER_IMIX 9 /* Recording monitor */
-#define SOUND_MIXER_ALTPCM 10
-#define SOUND_MIXER_RECLEV 11 /* Recording level */
-#define SOUND_MIXER_IGAIN 12 /* Input gain */
-#define SOUND_MIXER_OGAIN 13 /* Output gain */
-/*
- * The AD1848 codec and compatibles have three line level inputs
- * (line, aux1 and aux2). Since each card manufacturer have assigned
- * different meanings to these inputs, it's inpractical to assign
- * specific meanings (line, cd, synth etc.) to them.
- */
-#define SOUND_MIXER_LINE1 14 /* Input source 1 (aux1) */
-#define SOUND_MIXER_LINE2 15 /* Input source 2 (aux2) */
-#define SOUND_MIXER_LINE3 16 /* Input source 3 (line) */
-#define SOUND_MIXER_DIGITAL1 17 /* Digital (input) 1 */
-#define SOUND_MIXER_DIGITAL2 18 /* Digital (input) 2 */
-#define SOUND_MIXER_DIGITAL3 19 /* Digital (input) 3 */
-#define SOUND_MIXER_PHONEIN 20 /* Phone input */
-#define SOUND_MIXER_PHONEOUT 21 /* Phone output */
-#define SOUND_MIXER_VIDEO 22 /* Video/TV (audio) in */
-#define SOUND_MIXER_RADIO 23 /* Radio in */
-#define SOUND_MIXER_MONITOR 24 /* Monitor (usually mic) volume */
-
-/* Some on/off settings (SOUND_SPECIAL_MIN - SOUND_SPECIAL_MAX) */
-/* Not counted to SOUND_MIXER_NRDEVICES, but use the same number space */
-#define SOUND_ONOFF_MIN 28
-#define SOUND_ONOFF_MAX 30
-
-/* Note! Number 31 cannot be used since the sign bit is reserved */
-#define SOUND_MIXER_NONE 31
-
-/*
- * The following unsupported macros are no longer functional.
- * Use SOUND_MIXER_PRIVATE# macros in future.
- */
-#define SOUND_MIXER_ENHANCE SOUND_MIXER_NONE
-#define SOUND_MIXER_MUTE SOUND_MIXER_NONE
-#define SOUND_MIXER_LOUD SOUND_MIXER_NONE
-
-
-#define SOUND_DEVICE_LABELS {"Vol ", "Bass ", "Trebl", "Synth", "Pcm ", "Spkr ", "Line ", \
- "Mic ", "CD ", "Mix ", "Pcm2 ", "Rec ", "IGain", "OGain", \
- "Line1", "Line2", "Line3", "Digital1", "Digital2", "Digital3", \
- "PhoneIn", "PhoneOut", "Video", "Radio", "Monitor"}
-
-#define SOUND_DEVICE_NAMES {"vol", "bass", "treble", "synth", "pcm", "speaker", "line", \
- "mic", "cd", "mix", "pcm2", "rec", "igain", "ogain", \
- "line1", "line2", "line3", "dig1", "dig2", "dig3", \
- "phin", "phout", "video", "radio", "monitor"}
-
-/* Device bitmask identifiers */
-
-#define SOUND_MIXER_RECSRC 0xff /* Arg contains a bit for each recording source */
-#define SOUND_MIXER_DEVMASK 0xfe /* Arg contains a bit for each supported device */
-#define SOUND_MIXER_RECMASK 0xfd /* Arg contains a bit for each supported recording source */
-#define SOUND_MIXER_CAPS 0xfc
-# define SOUND_CAP_EXCL_INPUT 0x00000001 /* Only one recording source at a time */
-#define SOUND_MIXER_STEREODEVS 0xfb /* Mixer channels supporting stereo */
-#define SOUND_MIXER_OUTSRC 0xfa /* Arg contains a bit for each input source to output */
-#define SOUND_MIXER_OUTMASK 0xf9 /* Arg contains a bit for each supported input source to output */
-
-/* Device mask bits */
-
-#define SOUND_MASK_VOLUME (1 << SOUND_MIXER_VOLUME)
-#define SOUND_MASK_BASS (1 << SOUND_MIXER_BASS)
-#define SOUND_MASK_TREBLE (1 << SOUND_MIXER_TREBLE)
-#define SOUND_MASK_SYNTH (1 << SOUND_MIXER_SYNTH)
-#define SOUND_MASK_PCM (1 << SOUND_MIXER_PCM)
-#define SOUND_MASK_SPEAKER (1 << SOUND_MIXER_SPEAKER)
-#define SOUND_MASK_LINE (1 << SOUND_MIXER_LINE)
-#define SOUND_MASK_MIC (1 << SOUND_MIXER_MIC)
-#define SOUND_MASK_CD (1 << SOUND_MIXER_CD)
-#define SOUND_MASK_IMIX (1 << SOUND_MIXER_IMIX)
-#define SOUND_MASK_ALTPCM (1 << SOUND_MIXER_ALTPCM)
-#define SOUND_MASK_RECLEV (1 << SOUND_MIXER_RECLEV)
-#define SOUND_MASK_IGAIN (1 << SOUND_MIXER_IGAIN)
-#define SOUND_MASK_OGAIN (1 << SOUND_MIXER_OGAIN)
-#define SOUND_MASK_LINE1 (1 << SOUND_MIXER_LINE1)
-#define SOUND_MASK_LINE2 (1 << SOUND_MIXER_LINE2)
-#define SOUND_MASK_LINE3 (1 << SOUND_MIXER_LINE3)
-#define SOUND_MASK_DIGITAL1 (1 << SOUND_MIXER_DIGITAL1)
-#define SOUND_MASK_DIGITAL2 (1 << SOUND_MIXER_DIGITAL2)
-#define SOUND_MASK_DIGITAL3 (1 << SOUND_MIXER_DIGITAL3)
-#define SOUND_MASK_PHONEIN (1 << SOUND_MIXER_PHONEIN)
-#define SOUND_MASK_PHONEOUT (1 << SOUND_MIXER_PHONEOUT)
-#define SOUND_MASK_RADIO (1 << SOUND_MIXER_RADIO)
-#define SOUND_MASK_VIDEO (1 << SOUND_MIXER_VIDEO)
-#define SOUND_MASK_MONITOR (1 << SOUND_MIXER_MONITOR)
-
-/* Obsolete macros */
-#define SOUND_MASK_MUTE (1 << SOUND_MIXER_MUTE)
-#define SOUND_MASK_ENHANCE (1 << SOUND_MIXER_ENHANCE)
-#define SOUND_MASK_LOUD (1 << SOUND_MIXER_LOUD)
-
-#define MIXER_READ(dev) _SIOR('M', dev, int)
-#define SOUND_MIXER_READ_VOLUME MIXER_READ(SOUND_MIXER_VOLUME)
-#define SOUND_MIXER_READ_BASS MIXER_READ(SOUND_MIXER_BASS)
-#define SOUND_MIXER_READ_TREBLE MIXER_READ(SOUND_MIXER_TREBLE)
-#define SOUND_MIXER_READ_SYNTH MIXER_READ(SOUND_MIXER_SYNTH)
-#define SOUND_MIXER_READ_PCM MIXER_READ(SOUND_MIXER_PCM)
-#define SOUND_MIXER_READ_SPEAKER MIXER_READ(SOUND_MIXER_SPEAKER)
-#define SOUND_MIXER_READ_LINE MIXER_READ(SOUND_MIXER_LINE)
-#define SOUND_MIXER_READ_MIC MIXER_READ(SOUND_MIXER_MIC)
-#define SOUND_MIXER_READ_CD MIXER_READ(SOUND_MIXER_CD)
-#define SOUND_MIXER_READ_IMIX MIXER_READ(SOUND_MIXER_IMIX)
-#define SOUND_MIXER_READ_ALTPCM MIXER_READ(SOUND_MIXER_ALTPCM)
-#define SOUND_MIXER_READ_RECLEV MIXER_READ(SOUND_MIXER_RECLEV)
-#define SOUND_MIXER_READ_IGAIN MIXER_READ(SOUND_MIXER_IGAIN)
-#define SOUND_MIXER_READ_OGAIN MIXER_READ(SOUND_MIXER_OGAIN)
-#define SOUND_MIXER_READ_LINE1 MIXER_READ(SOUND_MIXER_LINE1)
-#define SOUND_MIXER_READ_LINE2 MIXER_READ(SOUND_MIXER_LINE2)
-#define SOUND_MIXER_READ_LINE3 MIXER_READ(SOUND_MIXER_LINE3)
-
-/* Obsolete macros */
-#define SOUND_MIXER_READ_MUTE MIXER_READ(SOUND_MIXER_MUTE)
-#define SOUND_MIXER_READ_ENHANCE MIXER_READ(SOUND_MIXER_ENHANCE)
-#define SOUND_MIXER_READ_LOUD MIXER_READ(SOUND_MIXER_LOUD)
-
-#define SOUND_MIXER_READ_RECSRC MIXER_READ(SOUND_MIXER_RECSRC)
-#define SOUND_MIXER_READ_DEVMASK MIXER_READ(SOUND_MIXER_DEVMASK)
-#define SOUND_MIXER_READ_RECMASK MIXER_READ(SOUND_MIXER_RECMASK)
-#define SOUND_MIXER_READ_STEREODEVS MIXER_READ(SOUND_MIXER_STEREODEVS)
-#define SOUND_MIXER_READ_CAPS MIXER_READ(SOUND_MIXER_CAPS)
-
-#define MIXER_WRITE(dev) _SIOWR('M', dev, int)
-#define SOUND_MIXER_WRITE_VOLUME MIXER_WRITE(SOUND_MIXER_VOLUME)
-#define SOUND_MIXER_WRITE_BASS MIXER_WRITE(SOUND_MIXER_BASS)
-#define SOUND_MIXER_WRITE_TREBLE MIXER_WRITE(SOUND_MIXER_TREBLE)
-#define SOUND_MIXER_WRITE_SYNTH MIXER_WRITE(SOUND_MIXER_SYNTH)
-#define SOUND_MIXER_WRITE_PCM MIXER_WRITE(SOUND_MIXER_PCM)
-#define SOUND_MIXER_WRITE_SPEAKER MIXER_WRITE(SOUND_MIXER_SPEAKER)
-#define SOUND_MIXER_WRITE_LINE MIXER_WRITE(SOUND_MIXER_LINE)
-#define SOUND_MIXER_WRITE_MIC MIXER_WRITE(SOUND_MIXER_MIC)
-#define SOUND_MIXER_WRITE_CD MIXER_WRITE(SOUND_MIXER_CD)
-#define SOUND_MIXER_WRITE_IMIX MIXER_WRITE(SOUND_MIXER_IMIX)
-#define SOUND_MIXER_WRITE_ALTPCM MIXER_WRITE(SOUND_MIXER_ALTPCM)
-#define SOUND_MIXER_WRITE_RECLEV MIXER_WRITE(SOUND_MIXER_RECLEV)
-#define SOUND_MIXER_WRITE_IGAIN MIXER_WRITE(SOUND_MIXER_IGAIN)
-#define SOUND_MIXER_WRITE_OGAIN MIXER_WRITE(SOUND_MIXER_OGAIN)
-#define SOUND_MIXER_WRITE_LINE1 MIXER_WRITE(SOUND_MIXER_LINE1)
-#define SOUND_MIXER_WRITE_LINE2 MIXER_WRITE(SOUND_MIXER_LINE2)
-#define SOUND_MIXER_WRITE_LINE3 MIXER_WRITE(SOUND_MIXER_LINE3)
-
-/* Obsolete macros */
-#define SOUND_MIXER_WRITE_MUTE MIXER_WRITE(SOUND_MIXER_MUTE)
-#define SOUND_MIXER_WRITE_ENHANCE MIXER_WRITE(SOUND_MIXER_ENHANCE)
-#define SOUND_MIXER_WRITE_LOUD MIXER_WRITE(SOUND_MIXER_LOUD)
-
-#define SOUND_MIXER_WRITE_RECSRC MIXER_WRITE(SOUND_MIXER_RECSRC)
-
-typedef struct mixer_info
-{
- char id[16];
- char name[32];
- int modify_counter;
- int fillers[10];
-} mixer_info;
-
-typedef struct _old_mixer_info /* Obsolete */
-{
- char id[16];
- char name[32];
-} _old_mixer_info;
-
-#define SOUND_MIXER_INFO _SIOR ('M', 101, mixer_info)
-#define SOUND_OLD_MIXER_INFO _SIOR ('M', 101, _old_mixer_info)
-
-/*
- * A mechanism for accessing "proprietary" mixer features. This method
- * permits passing 128 bytes of arbitrary data between a mixer application
- * and the mixer driver. Interpretation of the record is defined by
- * the particular mixer driver.
- */
-typedef unsigned char mixer_record[128];
-
-#define SOUND_MIXER_ACCESS _SIOWR('M', 102, mixer_record)
-
-/*
- * Two ioctls for special souncard function
- */
-#define SOUND_MIXER_AGC _SIOWR('M', 103, int)
-#define SOUND_MIXER_3DSE _SIOWR('M', 104, int)
-
-/*
- * The SOUND_MIXER_PRIVATE# commands can be redefined by low level drivers.
- * These features can be used when accessing device specific features.
- */
-#define SOUND_MIXER_PRIVATE1 _SIOWR('M', 111, int)
-#define SOUND_MIXER_PRIVATE2 _SIOWR('M', 112, int)
-#define SOUND_MIXER_PRIVATE3 _SIOWR('M', 113, int)
-#define SOUND_MIXER_PRIVATE4 _SIOWR('M', 114, int)
-#define SOUND_MIXER_PRIVATE5 _SIOWR('M', 115, int)
-
-/*
- * SOUND_MIXER_GETLEVELS and SOUND_MIXER_SETLEVELS calls can be used
- * for querying current mixer settings from the driver and for loading
- * default volume settings _prior_ activating the mixer (loading
- * doesn't affect current state of the mixer hardware). These calls
- * are for internal use only.
- */
-
-typedef struct mixer_vol_table {
- int num; /* Index to volume table */
- char name[32];
- int levels[32];
-} mixer_vol_table;
-
-#define SOUND_MIXER_GETLEVELS _SIOWR('M', 116, mixer_vol_table)
-#define SOUND_MIXER_SETLEVELS _SIOWR('M', 117, mixer_vol_table)
-
-/*
- * An ioctl for identifying the driver version. It will return value
- * of the SOUND_VERSION macro used when compiling the driver.
- * This call was introduced in OSS version 3.6 and it will not work
- * with earlier versions (returns EINVAL).
- */
-#define OSS_GETVERSION _SIOR ('M', 118, int)
-
-/*
- * Level 2 event types for /dev/sequencer
- */
-
-/*
- * The 4 most significant bits of byte 0 specify the class of
- * the event:
- *
- * 0x8X = system level events,
- * 0x9X = device/port specific events, event[1] = device/port,
- * The last 4 bits give the subtype:
- * 0x02 = Channel event (event[3] = chn).
- * 0x01 = note event (event[4] = note).
- * (0x01 is not used alone but always with bit 0x02).
- * event[2] = MIDI message code (0x80=note off etc.)
- *
- */
-
-#define EV_SEQ_LOCAL 0x80
-#define EV_TIMING 0x81
-#define EV_CHN_COMMON 0x92
-#define EV_CHN_VOICE 0x93
-#define EV_SYSEX 0x94
-/*
- * Event types 200 to 220 are reserved for application use.
- * These numbers will not be used by the driver.
- */
-
-/*
- * Events for event type EV_CHN_VOICE
- */
-
-#define MIDI_NOTEOFF 0x80
-#define MIDI_NOTEON 0x90
-#define MIDI_KEY_PRESSURE 0xA0
-
-/*
- * Events for event type EV_CHN_COMMON
- */
-
-#define MIDI_CTL_CHANGE 0xB0
-#define MIDI_PGM_CHANGE 0xC0
-#define MIDI_CHN_PRESSURE 0xD0
-#define MIDI_PITCH_BEND 0xE0
-
-#define MIDI_SYSTEM_PREFIX 0xF0
-
-/*
- * Timer event types
- */
-#define TMR_WAIT_REL 1 /* Time relative to the prev time */
-#define TMR_WAIT_ABS 2 /* Absolute time since TMR_START */
-#define TMR_STOP 3
-#define TMR_START 4
-#define TMR_CONTINUE 5
-#define TMR_TEMPO 6
-#define TMR_ECHO 8
-#define TMR_CLOCK 9 /* MIDI clock */
-#define TMR_SPP 10 /* Song position pointer */
-#define TMR_TIMESIG 11 /* Time signature */
-
-/*
- * Local event types
- */
-#define LOCL_STARTAUDIO 1
-
-#if !defined(__KERNEL__) || defined(USE_SEQ_MACROS)
-/*
- * Some convenience macros to simplify programming of the
- * /dev/sequencer interface
- *
- * This is a legacy interface for applications written against
- * the OSSlib-3.8 style interface. It is no longer possible
- * to actually link against OSSlib with this header, but we
- * still provide these macros for programs using them.
- *
- * If you want to use OSSlib, it is recommended that you get
- * the GPL version of OSS-4.x and build against that version
- * of the header.
- *
- * We redefine the extern keyword so that make headers_check
- * does not complain about SEQ_USE_EXTBUF.
- */
-#define SEQ_DECLAREBUF() SEQ_USE_EXTBUF()
-
-void seqbuf_dump(void); /* This function must be provided by programs */
-
-#define SEQ_PM_DEFINES int __foo_bar___
-
-#define SEQ_LOAD_GMINSTR(dev, instr)
-#define SEQ_LOAD_GMDRUM(dev, drum)
-
-#define _SEQ_EXTERN extern
-#define SEQ_USE_EXTBUF() \
- _SEQ_EXTERN unsigned char _seqbuf[]; \
- _SEQ_EXTERN int _seqbuflen; _SEQ_EXTERN int _seqbufptr
-
-#ifndef USE_SIMPLE_MACROS
-/* Sample seqbuf_dump() implementation:
- *
- * SEQ_DEFINEBUF (2048); -- Defines a buffer for 2048 bytes
- *
- * int seqfd; -- The file descriptor for /dev/sequencer.
- *
- * void
- * seqbuf_dump ()
- * {
- * if (_seqbufptr)
- * if (write (seqfd, _seqbuf, _seqbufptr) == -1)
- * {
- * perror ("write /dev/sequencer");
- * exit (-1);
- * }
- * _seqbufptr = 0;
- * }
- */
-
-#define SEQ_DEFINEBUF(len) unsigned char _seqbuf[len]; int _seqbuflen = len;int _seqbufptr = 0
-#define _SEQ_NEEDBUF(len) if ((_seqbufptr+(len)) > _seqbuflen) seqbuf_dump()
-#define _SEQ_ADVBUF(len) _seqbufptr += len
-#define SEQ_DUMPBUF seqbuf_dump
-#else
-/*
- * This variation of the sequencer macros is used just to format one event
- * using fixed buffer.
- *
- * The program using the macro library must define the following macros before
- * using this library.
- *
- * #define _seqbuf name of the buffer (unsigned char[])
- * #define _SEQ_ADVBUF(len) If the applic needs to know the exact
- * size of the event, this macro can be used.
- * Otherwise this must be defined as empty.
- * #define _seqbufptr Define the name of index variable or 0 if
- * not required.
- */
-#define _SEQ_NEEDBUF(len) /* empty */
-#endif
-
-#define SEQ_VOLUME_MODE(dev, mode) {_SEQ_NEEDBUF(8);\
- _seqbuf[_seqbufptr] = SEQ_EXTENDED;\
- _seqbuf[_seqbufptr+1] = SEQ_VOLMODE;\
- _seqbuf[_seqbufptr+2] = (dev);\
- _seqbuf[_seqbufptr+3] = (mode);\
- _seqbuf[_seqbufptr+4] = 0;\
- _seqbuf[_seqbufptr+5] = 0;\
- _seqbuf[_seqbufptr+6] = 0;\
- _seqbuf[_seqbufptr+7] = 0;\
- _SEQ_ADVBUF(8);}
-
-/*
- * Midi voice messages
- */
-
-#define _CHN_VOICE(dev, event, chn, note, parm) \
- {_SEQ_NEEDBUF(8);\
- _seqbuf[_seqbufptr] = EV_CHN_VOICE;\
- _seqbuf[_seqbufptr+1] = (dev);\
- _seqbuf[_seqbufptr+2] = (event);\
- _seqbuf[_seqbufptr+3] = (chn);\
- _seqbuf[_seqbufptr+4] = (note);\
- _seqbuf[_seqbufptr+5] = (parm);\
- _seqbuf[_seqbufptr+6] = (0);\
- _seqbuf[_seqbufptr+7] = 0;\
- _SEQ_ADVBUF(8);}
-
-#define SEQ_START_NOTE(dev, chn, note, vol) \
- _CHN_VOICE(dev, MIDI_NOTEON, chn, note, vol)
-
-#define SEQ_STOP_NOTE(dev, chn, note, vol) \
- _CHN_VOICE(dev, MIDI_NOTEOFF, chn, note, vol)
-
-#define SEQ_KEY_PRESSURE(dev, chn, note, pressure) \
- _CHN_VOICE(dev, MIDI_KEY_PRESSURE, chn, note, pressure)
-
-/*
- * Midi channel messages
- */
-
-#define _CHN_COMMON(dev, event, chn, p1, p2, w14) \
- {_SEQ_NEEDBUF(8);\
- _seqbuf[_seqbufptr] = EV_CHN_COMMON;\
- _seqbuf[_seqbufptr+1] = (dev);\
- _seqbuf[_seqbufptr+2] = (event);\
- _seqbuf[_seqbufptr+3] = (chn);\
- _seqbuf[_seqbufptr+4] = (p1);\
- _seqbuf[_seqbufptr+5] = (p2);\
- *(short *)&_seqbuf[_seqbufptr+6] = (w14);\
- _SEQ_ADVBUF(8);}
-/*
- * SEQ_SYSEX permits sending of sysex messages. (It may look that it permits
- * sending any MIDI bytes but it's absolutely not possible. Trying to do
- * so _will_ cause problems with MPU401 intelligent mode).
- *
- * Sysex messages are sent in blocks of 1 to 6 bytes. Longer messages must be
- * sent by calling SEQ_SYSEX() several times (there must be no other events
- * between them). First sysex fragment must have 0xf0 in the first byte
- * and the last byte (buf[len-1] of the last fragment must be 0xf7. No byte
- * between these sysex start and end markers cannot be larger than 0x7f. Also
- * lengths of each fragments (except the last one) must be 6.
- *
- * Breaking the above rules may work with some MIDI ports but is likely to
- * cause fatal problems with some other devices (such as MPU401).
- */
-#define SEQ_SYSEX(dev, buf, len) \
- {int ii, ll=(len); \
- unsigned char *bufp=buf;\
- if (ll>6)ll=6;\
- _SEQ_NEEDBUF(8);\
- _seqbuf[_seqbufptr] = EV_SYSEX;\
- _seqbuf[_seqbufptr+1] = (dev);\
- for(ii=0;ii<ll;ii++)\
- _seqbuf[_seqbufptr+ii+2] = bufp[ii];\
- for(ii=ll;ii<6;ii++)\
- _seqbuf[_seqbufptr+ii+2] = 0xff;\
- _SEQ_ADVBUF(8);}
-
-#define SEQ_CHN_PRESSURE(dev, chn, pressure) \
- _CHN_COMMON(dev, MIDI_CHN_PRESSURE, chn, pressure, 0, 0)
-
-#define SEQ_SET_PATCH SEQ_PGM_CHANGE
-#define SEQ_PGM_CHANGE(dev, chn, patch) \
- _CHN_COMMON(dev, MIDI_PGM_CHANGE, chn, patch, 0, 0)
-
-#define SEQ_CONTROL(dev, chn, controller, value) \
- _CHN_COMMON(dev, MIDI_CTL_CHANGE, chn, controller, 0, value)
-
-#define SEQ_BENDER(dev, chn, value) \
- _CHN_COMMON(dev, MIDI_PITCH_BEND, chn, 0, 0, value)
-
-
-#define SEQ_V2_X_CONTROL(dev, voice, controller, value) {_SEQ_NEEDBUF(8);\
- _seqbuf[_seqbufptr] = SEQ_EXTENDED;\
- _seqbuf[_seqbufptr+1] = SEQ_CONTROLLER;\
- _seqbuf[_seqbufptr+2] = (dev);\
- _seqbuf[_seqbufptr+3] = (voice);\
- _seqbuf[_seqbufptr+4] = (controller);\
- _seqbuf[_seqbufptr+5] = ((value)&0xff);\
- _seqbuf[_seqbufptr+6] = ((value>>8)&0xff);\
- _seqbuf[_seqbufptr+7] = 0;\
- _SEQ_ADVBUF(8);}
-/*
- * The following 5 macros are incorrectly implemented and obsolete.
- * Use SEQ_BENDER and SEQ_CONTROL (with proper controller) instead.
- */
-#define SEQ_PITCHBEND(dev, voice, value) SEQ_V2_X_CONTROL(dev, voice, CTRL_PITCH_BENDER, value)
-#define SEQ_BENDER_RANGE(dev, voice, value) SEQ_V2_X_CONTROL(dev, voice, CTRL_PITCH_BENDER_RANGE, value)
-#define SEQ_EXPRESSION(dev, voice, value) SEQ_CONTROL(dev, voice, CTL_EXPRESSION, value*128)
-#define SEQ_MAIN_VOLUME(dev, voice, value) SEQ_CONTROL(dev, voice, CTL_MAIN_VOLUME, (value*16383)/100)
-#define SEQ_PANNING(dev, voice, pos) SEQ_CONTROL(dev, voice, CTL_PAN, (pos+128) / 2)
-
-/*
- * Timing and synchronization macros
- */
-
-#define _TIMER_EVENT(ev, parm) {_SEQ_NEEDBUF(8);\
- _seqbuf[_seqbufptr+0] = EV_TIMING; \
- _seqbuf[_seqbufptr+1] = (ev); \
- _seqbuf[_seqbufptr+2] = 0;\
- _seqbuf[_seqbufptr+3] = 0;\
- *(unsigned int *)&_seqbuf[_seqbufptr+4] = (parm); \
- _SEQ_ADVBUF(8);}
-
-#define SEQ_START_TIMER() _TIMER_EVENT(TMR_START, 0)
-#define SEQ_STOP_TIMER() _TIMER_EVENT(TMR_STOP, 0)
-#define SEQ_CONTINUE_TIMER() _TIMER_EVENT(TMR_CONTINUE, 0)
-#define SEQ_WAIT_TIME(ticks) _TIMER_EVENT(TMR_WAIT_ABS, ticks)
-#define SEQ_DELTA_TIME(ticks) _TIMER_EVENT(TMR_WAIT_REL, ticks)
-#define SEQ_ECHO_BACK(key) _TIMER_EVENT(TMR_ECHO, key)
-#define SEQ_SET_TEMPO(value) _TIMER_EVENT(TMR_TEMPO, value)
-#define SEQ_SONGPOS(pos) _TIMER_EVENT(TMR_SPP, pos)
-#define SEQ_TIME_SIGNATURE(sig) _TIMER_EVENT(TMR_TIMESIG, sig)
-
-/*
- * Local control events
- */
-
-#define _LOCAL_EVENT(ev, parm) {_SEQ_NEEDBUF(8);\
- _seqbuf[_seqbufptr+0] = EV_SEQ_LOCAL; \
- _seqbuf[_seqbufptr+1] = (ev); \
- _seqbuf[_seqbufptr+2] = 0;\
- _seqbuf[_seqbufptr+3] = 0;\
- *(unsigned int *)&_seqbuf[_seqbufptr+4] = (parm); \
- _SEQ_ADVBUF(8);}
-
-#define SEQ_PLAYAUDIO(devmask) _LOCAL_EVENT(LOCL_STARTAUDIO, devmask)
-/*
- * Events for the level 1 interface only
- */
-
-#define SEQ_MIDIOUT(device, byte) {_SEQ_NEEDBUF(4);\
- _seqbuf[_seqbufptr] = SEQ_MIDIPUTC;\
- _seqbuf[_seqbufptr+1] = (byte);\
- _seqbuf[_seqbufptr+2] = (device);\
- _seqbuf[_seqbufptr+3] = 0;\
- _SEQ_ADVBUF(4);}
-
-/*
- * Patch loading.
- */
-#define SEQ_WRPATCH(patchx, len) \
- {if (_seqbufptr) SEQ_DUMPBUF();\
- if (write(seqfd, (char*)(patchx), len)==-1) \
- perror("Write patch: /dev/sequencer");}
-#define SEQ_WRPATCH2(patchx, len) \
- (SEQ_DUMPBUF(), write(seqfd, (char*)(patchx), len))
-
-#endif
-#endif
diff --git a/ANDROID_3.4.5/include/linux/spi/74x164.h b/ANDROID_3.4.5/include/linux/spi/74x164.h
deleted file mode 100644
index 0aa6acc7..00000000
--- a/ANDROID_3.4.5/include/linux/spi/74x164.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef LINUX_SPI_74X164_H
-#define LINUX_SPI_74X164_H
-
-struct gen_74x164_chip_platform_data {
- /* number assigned to the first GPIO */
- unsigned base;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/spi/Kbuild b/ANDROID_3.4.5/include/linux/spi/Kbuild
deleted file mode 100644
index d375a082..00000000
--- a/ANDROID_3.4.5/include/linux/spi/Kbuild
+++ /dev/null
@@ -1 +0,0 @@
-header-y += spidev.h
diff --git a/ANDROID_3.4.5/include/linux/spi/ad7877.h b/ANDROID_3.4.5/include/linux/spi/ad7877.h
deleted file mode 100644
index cdbed816..00000000
--- a/ANDROID_3.4.5/include/linux/spi/ad7877.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* linux/spi/ad7877.h */
-
-/* Touchscreen characteristics vary between boards and models. The
- * platform_data for the device's "struct device" holds this information.
- *
- * It's OK if the min/max values are zero.
- */
-struct ad7877_platform_data {
- u16 model; /* 7877 */
- u16 vref_delay_usecs; /* 0 for external vref; etc */
- u16 x_plate_ohms;
- u16 y_plate_ohms;
-
- u16 x_min, x_max;
- u16 y_min, y_max;
- u16 pressure_min, pressure_max;
-
- u8 stopacq_polarity; /* 1 = Active HIGH, 0 = Active LOW */
- u8 first_conversion_delay; /* 0 = 0.5us, 1 = 128us, 2 = 1ms, 3 = 8ms */
- u8 acquisition_time; /* 0 = 2us, 1 = 4us, 2 = 8us, 3 = 16us */
- u8 averaging; /* 0 = 1, 1 = 4, 2 = 8, 3 = 16 */
- u8 pen_down_acc_interval; /* 0 = covert once, 1 = every 0.5 ms,
- 2 = ever 1 ms, 3 = every 8 ms,*/
-};
diff --git a/ANDROID_3.4.5/include/linux/spi/ad7879.h b/ANDROID_3.4.5/include/linux/spi/ad7879.h
deleted file mode 100644
index 6334cee1..00000000
--- a/ANDROID_3.4.5/include/linux/spi/ad7879.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* linux/spi/ad7879.h */
-
-/* Touchscreen characteristics vary between boards and models. The
- * platform_data for the device's "struct device" holds this information.
- *
- * It's OK if the min/max values are zero.
- */
-struct ad7879_platform_data {
- u16 model; /* 7879 */
- u16 x_plate_ohms;
- u16 x_min, x_max;
- u16 y_min, y_max;
- u16 pressure_min, pressure_max;
-
- /* [0..255] 0=OFF Starts at 1=550us and goes
- * all the way to 9.440ms in steps of 35us.
- */
- u8 pen_down_acc_interval;
- /* [0..15] Starts at 0=128us and goes all the
- * way to 4.096ms in steps of 128us.
- */
- u8 first_conversion_delay;
- /* [0..3] 0 = 2us, 1 = 4us, 2 = 8us, 3 = 16us */
- u8 acquisition_time;
- /* [0..3] Average X middle samples 0 = 2, 1 = 4, 2 = 8, 3 = 16 */
- u8 averaging;
- /* [0..3] Perform X measurements 0 = OFF,
- * 1 = 4, 2 = 8, 3 = 16 (median > averaging)
- */
- u8 median;
- /* 1 = AUX/VBAT/GPIO export GPIO to gpiolib
- * requires CONFIG_GPIOLIB
- */
- bool gpio_export;
- /* identifies the first GPIO number handled by this chip;
- * or, if negative, requests dynamic ID allocation.
- */
- s32 gpio_base;
-};
diff --git a/ANDROID_3.4.5/include/linux/spi/ads7846.h b/ANDROID_3.4.5/include/linux/spi/ads7846.h
deleted file mode 100644
index c64de9dd..00000000
--- a/ANDROID_3.4.5/include/linux/spi/ads7846.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* linux/spi/ads7846.h */
-
-/* Touchscreen characteristics vary between boards and models. The
- * platform_data for the device's "struct device" holds this information.
- *
- * It's OK if the min/max values are zero.
- */
-enum ads7846_filter {
- ADS7846_FILTER_OK,
- ADS7846_FILTER_REPEAT,
- ADS7846_FILTER_IGNORE,
-};
-
-struct ads7846_platform_data {
- u16 model; /* 7843, 7845, 7846, 7873. */
- u16 vref_delay_usecs; /* 0 for external vref; etc */
- u16 vref_mv; /* external vref value, milliVolts
- * ads7846: if 0, use internal vref */
- bool keep_vref_on; /* set to keep vref on for differential
- * measurements as well */
- bool swap_xy; /* swap x and y axes */
-
- /* Settling time of the analog signals; a function of Vcc and the
- * capacitance on the X/Y drivers. If set to non-zero, two samples
- * are taken with settle_delay us apart, and the second one is used.
- * ~150 uSec with 0.01uF caps.
- */
- u16 settle_delay_usecs;
-
- /* If set to non-zero, after samples are taken this delay is applied
- * and penirq is rechecked, to help avoid false events. This value
- * is affected by the material used to build the touch layer.
- */
- u16 penirq_recheck_delay_usecs;
-
- u16 x_plate_ohms;
- u16 y_plate_ohms;
-
- u16 x_min, x_max;
- u16 y_min, y_max;
- u16 pressure_min, pressure_max;
-
- u16 debounce_max; /* max number of additional readings
- * per sample */
- u16 debounce_tol; /* tolerance used for filtering */
- u16 debounce_rep; /* additional consecutive good readings
- * required after the first two */
- int gpio_pendown; /* the GPIO used to decide the pendown
- * state if get_pendown_state == NULL
- */
- int (*get_pendown_state)(void);
- int (*filter_init) (const struct ads7846_platform_data *pdata,
- void **filter_data);
- int (*filter) (void *filter_data, int data_idx, int *val);
- void (*filter_cleanup)(void *filter_data);
- void (*wait_for_sync)(void);
- bool wakeup;
- unsigned long irq_flags;
-};
-
diff --git a/ANDROID_3.4.5/include/linux/spi/at73c213.h b/ANDROID_3.4.5/include/linux/spi/at73c213.h
deleted file mode 100644
index 0f20a70e..00000000
--- a/ANDROID_3.4.5/include/linux/spi/at73c213.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Board-specific data used to set up AT73c213 audio DAC driver.
- */
-
-#ifndef __LINUX_SPI_AT73C213_H
-#define __LINUX_SPI_AT73C213_H
-
-/**
- * at73c213_board_info - how the external DAC is wired to the device.
- *
- * @ssc_id: SSC platform_driver id the DAC shall use to stream the audio.
- * @dac_clk: the external clock used to provide master clock to the DAC.
- * @shortname: a short discription for the DAC, seen by userspace tools.
- *
- * This struct contains the configuration of the hardware connection to the
- * external DAC. The DAC needs a master clock and a I2S audio stream. It also
- * provides a name which is used to identify it in userspace tools.
- */
-struct at73c213_board_info {
- int ssc_id;
- struct clk *dac_clk;
- char shortname[32];
-};
-
-#endif /* __LINUX_SPI_AT73C213_H */
diff --git a/ANDROID_3.4.5/include/linux/spi/corgi_lcd.h b/ANDROID_3.4.5/include/linux/spi/corgi_lcd.h
deleted file mode 100644
index 6692b341..00000000
--- a/ANDROID_3.4.5/include/linux/spi/corgi_lcd.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef __LINUX_SPI_CORGI_LCD_H
-#define __LINUX_SPI_CORGI_LCD_H
-
-#define CORGI_LCD_MODE_QVGA 1
-#define CORGI_LCD_MODE_VGA 2
-
-struct corgi_lcd_platform_data {
- int init_mode;
- int max_intensity;
- int default_intensity;
- int limit_mask;
-
- int gpio_backlight_on; /* -1 if n/a */
- int gpio_backlight_cont; /* -1 if n/a */
-
- void (*notify)(int intensity);
- void (*kick_battery)(void);
-};
-
-#endif /* __LINUX_SPI_CORGI_LCD_H */
diff --git a/ANDROID_3.4.5/include/linux/spi/ds1305.h b/ANDROID_3.4.5/include/linux/spi/ds1305.h
deleted file mode 100644
index 287ec830..00000000
--- a/ANDROID_3.4.5/include/linux/spi/ds1305.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#ifndef __LINUX_SPI_DS1305_H
-#define __LINUX_SPI_DS1305_H
-
-/*
- * One-time configuration for ds1305 and ds1306 RTC chips.
- *
- * Put a pointer to this in spi_board_info.platform_data if you want to
- * be sure that Linux (re)initializes this as needed ... after losing
- * backup power, and potentially on the first boot.
- */
-struct ds1305_platform_data {
-
- /* Trickle charge configuration: it's OK to leave out the MAGIC
- * bitmask; mask in either DS1 or DS2, and then one of 2K/4k/8K.
- */
-#define DS1305_TRICKLE_MAGIC 0xa0
-#define DS1305_TRICKLE_DS2 0x08 /* two diodes */
-#define DS1305_TRICKLE_DS1 0x04 /* one diode */
-#define DS1305_TRICKLE_2K 0x01 /* 2 KOhm resistance */
-#define DS1305_TRICKLE_4K 0x02 /* 4 KOhm resistance */
-#define DS1305_TRICKLE_8K 0x03 /* 8 KOhm resistance */
- u8 trickle;
-
- /* set only on ds1306 parts */
- bool is_ds1306;
-
- /* ds1306 only: enable 1 Hz output */
- bool en_1hz;
-
- /* REVISIT: the driver currently expects nINT0 to be wired
- * as the alarm IRQ. ALM1 may also need to be set up ...
- */
-};
-
-#endif /* __LINUX_SPI_DS1305_H */
diff --git a/ANDROID_3.4.5/include/linux/spi/eeprom.h b/ANDROID_3.4.5/include/linux/spi/eeprom.h
deleted file mode 100644
index 306e7b1c..00000000
--- a/ANDROID_3.4.5/include/linux/spi/eeprom.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef __LINUX_SPI_EEPROM_H
-#define __LINUX_SPI_EEPROM_H
-
-#include <linux/memory.h>
-
-/*
- * Put one of these structures in platform_data for SPI EEPROMS handled
- * by the "at25" driver. On SPI, most EEPROMS understand the same core
- * command set. If you need to support EEPROMs that don't yet fit, add
- * flags to support those protocol options. These values all come from
- * the chip datasheets.
- */
-struct spi_eeprom {
- u32 byte_len;
- char name[10];
- u16 page_size; /* for writes */
- u16 flags;
-#define EE_ADDR1 0x0001 /* 8 bit addrs */
-#define EE_ADDR2 0x0002 /* 16 bit addrs */
-#define EE_ADDR3 0x0004 /* 24 bit addrs */
-#define EE_READONLY 0x0008 /* disallow writes */
-
- /* for exporting this chip's data to other kernel code */
- void (*setup)(struct memory_accessor *mem, void *context);
- void *context;
-};
-
-#endif /* __LINUX_SPI_EEPROM_H */
diff --git a/ANDROID_3.4.5/include/linux/spi/flash.h b/ANDROID_3.4.5/include/linux/spi/flash.h
deleted file mode 100644
index 3f22932e..00000000
--- a/ANDROID_3.4.5/include/linux/spi/flash.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef LINUX_SPI_FLASH_H
-#define LINUX_SPI_FLASH_H
-
-struct mtd_partition;
-
-/**
- * struct flash_platform_data: board-specific flash data
- * @name: optional flash device name (eg, as used with mtdparts=)
- * @parts: optional array of mtd_partitions for static partitioning
- * @nr_parts: number of mtd_partitions for static partitoning
- * @type: optional flash device type (e.g. m25p80 vs m25p64), for use
- * with chips that can't be queried for JEDEC or other IDs
- *
- * Board init code (in arch/.../mach-xxx/board-yyy.c files) can
- * provide information about SPI flash parts (such as DataFlash) to
- * help set up the device and its appropriate default partitioning.
- *
- * Note that for DataFlash, sizes for pages, blocks, and sectors are
- * rarely powers of two; and partitions should be sector-aligned.
- */
-struct flash_platform_data {
- char *name;
- struct mtd_partition *parts;
- unsigned int nr_parts;
-
- char *type;
-
- /* we'll likely add more ... use JEDEC IDs, etc */
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/spi/ifx_modem.h b/ANDROID_3.4.5/include/linux/spi/ifx_modem.h
deleted file mode 100644
index 394fec9e..00000000
--- a/ANDROID_3.4.5/include/linux/spi/ifx_modem.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef LINUX_IFX_MODEM_H
-#define LINUX_IFX_MODEM_H
-
-struct ifx_modem_platform_data {
- unsigned short rst_out; /* modem reset out */
- unsigned short pwr_on; /* power on */
- unsigned short rst_pmu; /* reset modem */
- unsigned short tx_pwr; /* modem power threshold */
- unsigned short srdy; /* SRDY */
- unsigned short mrdy; /* MRDY */
- unsigned char modem_type; /* Modem type */
- unsigned long max_hz; /* max SPI frequency */
- unsigned short use_dma:1; /* spi protocol driver supplies
- dma-able addrs */
-};
-#define IFX_MODEM_6160 1
-#define IFX_MODEM_6260 2
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/spi/l4f00242t03.h b/ANDROID_3.4.5/include/linux/spi/l4f00242t03.h
deleted file mode 100644
index bc8677c8..00000000
--- a/ANDROID_3.4.5/include/linux/spi/l4f00242t03.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * l4f00242t03.h -- Platform glue for Epson L4F00242T03 LCD
- *
- * Copyright (c) 2009 Alberto Panizzo <maramaopercheseimorto@gmail.com>
- * Based on Marek Vasut work in lms283gf05.h
- *
- * 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.
- *
- * 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
-*/
-
-#ifndef _INCLUDE_LINUX_SPI_L4F00242T03_H_
-#define _INCLUDE_LINUX_SPI_L4F00242T03_H_
-
-struct l4f00242t03_pdata {
- unsigned int reset_gpio;
- unsigned int data_enable_gpio;
-};
-
-#endif /* _INCLUDE_LINUX_SPI_L4F00242T03_H_ */
diff --git a/ANDROID_3.4.5/include/linux/spi/libertas_spi.h b/ANDROID_3.4.5/include/linux/spi/libertas_spi.h
deleted file mode 100644
index 1b5d5384..00000000
--- a/ANDROID_3.4.5/include/linux/spi/libertas_spi.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * board-specific data for the libertas_spi driver.
- *
- * Copyright 2008 Analog Devices Inc.
- *
- * 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 _LIBERTAS_SPI_H_
-#define _LIBERTAS_SPI_H_
-
-struct spi_device;
-
-struct libertas_spi_platform_data {
- /* There are two ways to read data from the WLAN module's SPI
- * interface. Setting 0 or 1 here controls which one is used.
- *
- * Usually you want to set use_dummy_writes = 1.
- * However, if that doesn't work or if you are using a slow SPI clock
- * speed, you may want to use 0 here. */
- u16 use_dummy_writes;
-
- /* Board specific setup/teardown */
- int (*setup)(struct spi_device *spi);
- int (*teardown)(struct spi_device *spi);
-};
-#endif
diff --git a/ANDROID_3.4.5/include/linux/spi/lms283gf05.h b/ANDROID_3.4.5/include/linux/spi/lms283gf05.h
deleted file mode 100644
index 555d254e..00000000
--- a/ANDROID_3.4.5/include/linux/spi/lms283gf05.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * lms283gf05.h - Platform glue for Samsung LMS283GF05 LCD
- *
- * Copyright (C) 2009 Marek Vasut <marek.vasut@gmail.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.
- *
- * 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
-*/
-
-#ifndef _INCLUDE_LINUX_SPI_LMS283GF05_H_
-#define _INCLUDE_LINUX_SPI_LMS283GF05_H_
-
-struct lms283gf05_pdata {
- unsigned long reset_gpio;
- bool reset_inverted;
-};
-
-#endif /* _INCLUDE_LINUX_SPI_LMS283GF05_H_ */
diff --git a/ANDROID_3.4.5/include/linux/spi/max7301.h b/ANDROID_3.4.5/include/linux/spi/max7301.h
deleted file mode 100644
index bcaa2f76..00000000
--- a/ANDROID_3.4.5/include/linux/spi/max7301.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#ifndef LINUX_SPI_MAX7301_H
-#define LINUX_SPI_MAX7301_H
-
-#include <linux/gpio.h>
-
-/*
- * Some registers must be read back to modify.
- * To save time we cache them here in memory
- */
-struct max7301 {
- struct mutex lock;
- u8 port_config[8]; /* field 0 is unused */
- u32 out_level; /* cached output levels */
- u32 input_pullup_active;
- struct gpio_chip chip;
- struct device *dev;
- int (*write)(struct device *dev, unsigned int reg, unsigned int val);
- int (*read)(struct device *dev, unsigned int reg);
-};
-
-struct max7301_platform_data {
- /* number assigned to the first GPIO */
- unsigned base;
- /*
- * bitmask controlling the pullup configuration,
- *
- * _note_ the 4 lowest bits are unused, because the first 4
- * ports of the controller are not used, too.
- */
- u32 input_pullup_active;
-};
-
-extern int __max730x_remove(struct device *dev);
-extern int __max730x_probe(struct max7301 *ts);
-#endif
diff --git a/ANDROID_3.4.5/include/linux/spi/mc33880.h b/ANDROID_3.4.5/include/linux/spi/mc33880.h
deleted file mode 100644
index 82ffccd6..00000000
--- a/ANDROID_3.4.5/include/linux/spi/mc33880.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef LINUX_SPI_MC33880_H
-#define LINUX_SPI_MC33880_H
-
-struct mc33880_platform_data {
- /* number assigned to the first GPIO */
- unsigned base;
-};
-
-#endif
-
diff --git a/ANDROID_3.4.5/include/linux/spi/mcp23s08.h b/ANDROID_3.4.5/include/linux/spi/mcp23s08.h
deleted file mode 100644
index 2d676d5a..00000000
--- a/ANDROID_3.4.5/include/linux/spi/mcp23s08.h
+++ /dev/null
@@ -1,25 +0,0 @@
-
-/* FIXME driver should be able to handle IRQs... */
-
-struct mcp23s08_chip_info {
- bool is_present; /* true if populated */
- unsigned pullups; /* BIT(x) means enable pullup x */
-};
-
-struct mcp23s08_platform_data {
- /* For mcp23s08, up to 4 slaves (numbered 0..3) can share one SPI
- * chipselect, each providing 1 gpio_chip instance with 8 gpios.
- * For mpc23s17, up to 8 slaves (numbered 0..7) can share one SPI
- * chipselect, each providing 1 gpio_chip (port A + port B) with
- * 16 gpios.
- */
- struct mcp23s08_chip_info chip[8];
-
- /* "base" is the number of the first GPIO. Dynamic assignment is
- * not currently supported, and even if there are gaps in chip
- * addressing the GPIO numbers are sequential .. so for example
- * if only slaves 0 and 3 are present, their GPIOs range from
- * base to base+15 (or base+31 for s17 variant).
- */
- unsigned base;
-};
diff --git a/ANDROID_3.4.5/include/linux/spi/mmc_spi.h b/ANDROID_3.4.5/include/linux/spi/mmc_spi.h
deleted file mode 100644
index 32be8dbd..00000000
--- a/ANDROID_3.4.5/include/linux/spi/mmc_spi.h
+++ /dev/null
@@ -1,57 +0,0 @@
-#ifndef __LINUX_SPI_MMC_SPI_H
-#define __LINUX_SPI_MMC_SPI_H
-
-#include <linux/spi/spi.h>
-#include <linux/interrupt.h>
-
-struct device;
-struct mmc_host;
-
-/* Put this in platform_data of a device being used to manage an MMC/SD
- * card slot. (Modeled after PXA mmc glue; see that for usage examples.)
- *
- * REVISIT This is not a spi-specific notion. Any card slot should be
- * able to handle it. If the MMC core doesn't adopt this kind of notion,
- * switch the "struct device *" parameters over to "struct spi_device *".
- */
-struct mmc_spi_platform_data {
- /* driver activation and (optional) card detect irq hookup */
- int (*init)(struct device *,
- irqreturn_t (*)(int, void *),
- void *);
- void (*exit)(struct device *, void *);
-
- /* sense switch on sd cards */
- int (*get_ro)(struct device *);
-
- /*
- * If board does not use CD interrupts, driver can optimize polling
- * using this function.
- */
- int (*get_cd)(struct device *);
-
- /* Capabilities to pass into mmc core (e.g. MMC_CAP_NEEDS_POLL). */
- unsigned long caps;
-
- /* how long to debounce card detect, in msecs */
- u16 detect_delay;
-
- /* power management */
- u16 powerup_msecs; /* delay of up to 250 msec */
- u32 ocr_mask; /* available voltages */
- void (*setpower)(struct device *, unsigned int maskval);
-};
-
-#ifdef CONFIG_OF
-extern struct mmc_spi_platform_data *mmc_spi_get_pdata(struct spi_device *spi);
-extern void mmc_spi_put_pdata(struct spi_device *spi);
-#else
-static inline struct mmc_spi_platform_data *
-mmc_spi_get_pdata(struct spi_device *spi)
-{
- return spi->dev.platform_data;
-}
-static inline void mmc_spi_put_pdata(struct spi_device *spi) {}
-#endif /* CONFIG_OF */
-
-#endif /* __LINUX_SPI_MMC_SPI_H */
diff --git a/ANDROID_3.4.5/include/linux/spi/orion_spi.h b/ANDROID_3.4.5/include/linux/spi/orion_spi.h
deleted file mode 100644
index b4d9fa6f..00000000
--- a/ANDROID_3.4.5/include/linux/spi/orion_spi.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * orion_spi.h
- *
- * This file is licensed under the terms of the GNU General Public
- * License version 2. This program is licensed "as is" without any
- * warranty of any kind, whether express or implied.
- */
-
-#ifndef __LINUX_SPI_ORION_SPI_H
-#define __LINUX_SPI_ORION_SPI_H
-
-struct orion_spi_info {
- u32 tclk; /* no <linux/clk.h> support yet */
-};
-
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/spi/pxa2xx_spi.h b/ANDROID_3.4.5/include/linux/spi/pxa2xx_spi.h
deleted file mode 100644
index d3e1075f..00000000
--- a/ANDROID_3.4.5/include/linux/spi/pxa2xx_spi.h
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Copyright (C) 2005 Stephen Street / StreetFire Sound Labs
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-#ifndef __linux_pxa2xx_spi_h
-#define __linux_pxa2xx_spi_h
-
-#include <linux/pxa2xx_ssp.h>
-
-#define PXA2XX_CS_ASSERT (0x01)
-#define PXA2XX_CS_DEASSERT (0x02)
-
-/* device.platform_data for SSP controller devices */
-struct pxa2xx_spi_master {
- u32 clock_enable;
- u16 num_chipselect;
- u8 enable_dma;
-};
-
-/* spi_board_info.controller_data for SPI slave devices,
- * copied to spi_device.platform_data ... mostly for dma tuning
- */
-struct pxa2xx_spi_chip {
- u8 tx_threshold;
- u8 rx_threshold;
- u8 dma_burst_size;
- u32 timeout;
- u8 enable_loopback;
- int gpio_cs;
- void (*cs_control)(u32 command);
-};
-
-#ifdef CONFIG_ARCH_PXA
-
-#include <linux/clk.h>
-#include <mach/dma.h>
-
-extern void pxa2xx_set_spi_info(unsigned id, struct pxa2xx_spi_master *info);
-
-#else
-/*
- * This is the implemtation for CE4100 on x86. ARM defines them in mach/ or
- * plat/ include path.
- * The CE4100 does not provide DMA support. This bits are here to let the driver
- * compile and will never be used. Maybe we get DMA support at a later point in
- * time.
- */
-
-#define DCSR(n) (n)
-#define DSADR(n) (n)
-#define DTADR(n) (n)
-#define DCMD(n) (n)
-#define DRCMR(n) (n)
-
-#define DCSR_RUN (1 << 31) /* Run Bit */
-#define DCSR_NODESC (1 << 30) /* No-Descriptor Fetch */
-#define DCSR_STOPIRQEN (1 << 29) /* Stop Interrupt Enable */
-#define DCSR_REQPEND (1 << 8) /* Request Pending (read-only) */
-#define DCSR_STOPSTATE (1 << 3) /* Stop State (read-only) */
-#define DCSR_ENDINTR (1 << 2) /* End Interrupt */
-#define DCSR_STARTINTR (1 << 1) /* Start Interrupt */
-#define DCSR_BUSERR (1 << 0) /* Bus Error Interrupt */
-
-#define DCSR_EORIRQEN (1 << 28) /* End of Receive Interrupt Enable */
-#define DCSR_EORJMPEN (1 << 27) /* Jump to next descriptor on EOR */
-#define DCSR_EORSTOPEN (1 << 26) /* STOP on an EOR */
-#define DCSR_SETCMPST (1 << 25) /* Set Descriptor Compare Status */
-#define DCSR_CLRCMPST (1 << 24) /* Clear Descriptor Compare Status */
-#define DCSR_CMPST (1 << 10) /* The Descriptor Compare Status */
-#define DCSR_EORINTR (1 << 9) /* The end of Receive */
-
-#define DRCMR_MAPVLD (1 << 7) /* Map Valid */
-#define DRCMR_CHLNUM 0x1f /* mask for Channel Number */
-
-#define DDADR_DESCADDR 0xfffffff0 /* Address of next descriptor */
-#define DDADR_STOP (1 << 0) /* Stop */
-
-#define DCMD_INCSRCADDR (1 << 31) /* Source Address Increment Setting. */
-#define DCMD_INCTRGADDR (1 << 30) /* Target Address Increment Setting. */
-#define DCMD_FLOWSRC (1 << 29) /* Flow Control by the source. */
-#define DCMD_FLOWTRG (1 << 28) /* Flow Control by the target. */
-#define DCMD_STARTIRQEN (1 << 22) /* Start Interrupt Enable */
-#define DCMD_ENDIRQEN (1 << 21) /* End Interrupt Enable */
-#define DCMD_ENDIAN (1 << 18) /* Device Endian-ness. */
-#define DCMD_BURST8 (1 << 16) /* 8 byte burst */
-#define DCMD_BURST16 (2 << 16) /* 16 byte burst */
-#define DCMD_BURST32 (3 << 16) /* 32 byte burst */
-#define DCMD_WIDTH1 (1 << 14) /* 1 byte width */
-#define DCMD_WIDTH2 (2 << 14) /* 2 byte width (HalfWord) */
-#define DCMD_WIDTH4 (3 << 14) /* 4 byte width (Word) */
-#define DCMD_LENGTH 0x01fff /* length mask (max = 8K - 1) */
-
-/*
- * Descriptor structure for PXA's DMA engine
- * Note: this structure must always be aligned to a 16-byte boundary.
- */
-
-typedef enum {
- DMA_PRIO_HIGH = 0,
- DMA_PRIO_MEDIUM = 1,
- DMA_PRIO_LOW = 2
-} pxa_dma_prio;
-
-/*
- * DMA registration
- */
-
-static inline int pxa_request_dma(char *name,
- pxa_dma_prio prio,
- void (*irq_handler)(int, void *),
- void *data)
-{
- return -ENODEV;
-}
-
-static inline void pxa_free_dma(int dma_ch)
-{
-}
-
-/*
- * The CE4100 does not have the clk framework implemented and SPI clock can
- * not be switched on/off or the divider changed.
- */
-static inline void clk_disable(struct clk *clk)
-{
-}
-
-static inline int clk_enable(struct clk *clk)
-{
- return 0;
-}
-
-static inline unsigned long clk_get_rate(struct clk *clk)
-{
- return 3686400;
-}
-
-#endif
-#endif
diff --git a/ANDROID_3.4.5/include/linux/spi/s3c24xx.h b/ANDROID_3.4.5/include/linux/spi/s3c24xx.h
deleted file mode 100644
index c23b923e..00000000
--- a/ANDROID_3.4.5/include/linux/spi/s3c24xx.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright (c) 2006 Simtec Electronics
- * Ben Dooks <ben@simtec.co.uk>
- *
- * S3C2410 - SPI Controller platform_device info
- *
- * 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.
-*/
-
-#ifndef __LINUX_SPI_S3C24XX_H
-#define __LINUX_SPI_S3C24XX_H __FILE__
-
-struct s3c2410_spi_info {
- int pin_cs; /* simple gpio cs */
- unsigned int num_cs; /* total chipselects */
- int bus_num; /* bus number to use. */
-
- unsigned int use_fiq:1; /* use fiq */
-
- void (*gpio_setup)(struct s3c2410_spi_info *spi, int enable);
- void (*set_cs)(struct s3c2410_spi_info *spi, int cs, int pol);
-};
-
-#endif /* __LINUX_SPI_S3C24XX_H */
diff --git a/ANDROID_3.4.5/include/linux/spi/sh_hspi.h b/ANDROID_3.4.5/include/linux/spi/sh_hspi.h
deleted file mode 100644
index a1121f87..00000000
--- a/ANDROID_3.4.5/include/linux/spi/sh_hspi.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (C) 2011 Kuninori Morimoto
- *
- * 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 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 SH_HSPI_H
-#define SH_HSPI_H
-
-struct sh_hspi_info {
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/spi/sh_msiof.h b/ANDROID_3.4.5/include/linux/spi/sh_msiof.h
deleted file mode 100644
index 2e8db3d2..00000000
--- a/ANDROID_3.4.5/include/linux/spi/sh_msiof.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef __SPI_SH_MSIOF_H__
-#define __SPI_SH_MSIOF_H__
-
-struct sh_msiof_spi_info {
- int tx_fifo_override;
- int rx_fifo_override;
- u16 num_chipselect;
-};
-
-#endif /* __SPI_SH_MSIOF_H__ */
diff --git a/ANDROID_3.4.5/include/linux/spi/spi.h b/ANDROID_3.4.5/include/linux/spi/spi.h
deleted file mode 100644
index fa702aeb..00000000
--- a/ANDROID_3.4.5/include/linux/spi/spi.h
+++ /dev/null
@@ -1,859 +0,0 @@
-/*
- * Copyright (C) 2005 David Brownell
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef __LINUX_SPI_H
-#define __LINUX_SPI_H
-
-#include <linux/device.h>
-#include <linux/mod_devicetable.h>
-#include <linux/slab.h>
-#include <linux/kthread.h>
-
-/*
- * INTERFACES between SPI master-side drivers and SPI infrastructure.
- * (There's no SPI slave support for Linux yet...)
- */
-extern struct bus_type spi_bus_type;
-
-/**
- * struct spi_device - Master side proxy for an SPI slave device
- * @dev: Driver model representation of the device.
- * @master: SPI controller used with the device.
- * @max_speed_hz: Maximum clock rate to be used with this chip
- * (on this board); may be changed by the device's driver.
- * The spi_transfer.speed_hz can override this for each transfer.
- * @chip_select: Chipselect, distinguishing chips handled by @master.
- * @mode: The spi mode defines how data is clocked out and in.
- * This may be changed by the device's driver.
- * The "active low" default for chipselect mode can be overridden
- * (by specifying SPI_CS_HIGH) as can the "MSB first" default for
- * each word in a transfer (by specifying SPI_LSB_FIRST).
- * @bits_per_word: Data transfers involve one or more words; word sizes
- * like eight or 12 bits are common. In-memory wordsizes are
- * powers of two bytes (e.g. 20 bit samples use 32 bits).
- * This may be changed by the device's driver, or left at the
- * default (0) indicating protocol words are eight bit bytes.
- * The spi_transfer.bits_per_word can override this for each transfer.
- * @irq: Negative, or the number passed to request_irq() to receive
- * interrupts from this device.
- * @controller_state: Controller's runtime state
- * @controller_data: Board-specific definitions for controller, such as
- * FIFO initialization parameters; from board_info.controller_data
- * @modalias: Name of the driver to use with this device, or an alias
- * for that name. This appears in the sysfs "modalias" attribute
- * for driver coldplugging, and in uevents used for hotplugging
- *
- * A @spi_device is used to interchange data between an SPI slave
- * (usually a discrete chip) and CPU memory.
- *
- * In @dev, the platform_data is used to hold information about this
- * device that's meaningful to the device's protocol driver, but not
- * to its controller. One example might be an identifier for a chip
- * variant with slightly different functionality; another might be
- * information about how this particular board wires the chip's pins.
- */
-struct spi_device {
- struct device dev;
- struct spi_master *master;
- u32 max_speed_hz;
- u8 chip_select;
- u8 mode;
-#define SPI_CPHA 0x01 /* clock phase */
-#define SPI_CPOL 0x02 /* clock polarity */
-#define SPI_MODE_0 (0|0) /* (original MicroWire) */
-#define SPI_MODE_1 (0|SPI_CPHA)
-#define SPI_MODE_2 (SPI_CPOL|0)
-#define SPI_MODE_3 (SPI_CPOL|SPI_CPHA)
-#define SPI_CS_HIGH 0x04 /* chipselect active high? */
-#define SPI_LSB_FIRST 0x08 /* per-word bits-on-wire */
-#define SPI_3WIRE 0x10 /* SI/SO signals shared */
-#define SPI_LOOP 0x20 /* loopback mode */
-#define SPI_NO_CS 0x40 /* 1 dev/bus, no chipselect */
-#define SPI_READY 0x80 /* slave pulls low to pause */
- u8 bits_per_word;
- int irq;
- void *controller_state;
- void *controller_data;
- char modalias[SPI_NAME_SIZE];
-
- /*
- * likely need more hooks for more protocol options affecting how
- * the controller talks to each chip, like:
- * - memory packing (12 bit samples into low bits, others zeroed)
- * - priority
- * - drop chipselect after each word
- * - chipselect delays
- * - ...
- */
-};
-
-static inline struct spi_device *to_spi_device(struct device *dev)
-{
- return dev ? container_of(dev, struct spi_device, dev) : NULL;
-}
-
-/* most drivers won't need to care about device refcounting */
-static inline struct spi_device *spi_dev_get(struct spi_device *spi)
-{
- return (spi && get_device(&spi->dev)) ? spi : NULL;
-}
-
-static inline void spi_dev_put(struct spi_device *spi)
-{
- if (spi)
- put_device(&spi->dev);
-}
-
-/* ctldata is for the bus_master driver's runtime state */
-static inline void *spi_get_ctldata(struct spi_device *spi)
-{
- return spi->controller_state;
-}
-
-static inline void spi_set_ctldata(struct spi_device *spi, void *state)
-{
- spi->controller_state = state;
-}
-
-/* device driver data */
-
-static inline void spi_set_drvdata(struct spi_device *spi, void *data)
-{
- dev_set_drvdata(&spi->dev, data);
-}
-
-static inline void *spi_get_drvdata(struct spi_device *spi)
-{
- return dev_get_drvdata(&spi->dev);
-}
-
-struct spi_message;
-
-
-
-/**
- * struct spi_driver - Host side "protocol" driver
- * @id_table: List of SPI devices supported by this driver
- * @probe: Binds this driver to the spi device. Drivers can verify
- * that the device is actually present, and may need to configure
- * characteristics (such as bits_per_word) which weren't needed for
- * the initial configuration done during system setup.
- * @remove: Unbinds this driver from the spi device
- * @shutdown: Standard shutdown callback used during system state
- * transitions such as powerdown/halt and kexec
- * @suspend: Standard suspend callback used during system state transitions
- * @resume: Standard resume callback used during system state transitions
- * @driver: SPI device drivers should initialize the name and owner
- * field of this structure.
- *
- * This represents the kind of device driver that uses SPI messages to
- * interact with the hardware at the other end of a SPI link. It's called
- * a "protocol" driver because it works through messages rather than talking
- * directly to SPI hardware (which is what the underlying SPI controller
- * driver does to pass those messages). These protocols are defined in the
- * specification for the device(s) supported by the driver.
- *
- * As a rule, those device protocols represent the lowest level interface
- * supported by a driver, and it will support upper level interfaces too.
- * Examples of such upper levels include frameworks like MTD, networking,
- * MMC, RTC, filesystem character device nodes, and hardware monitoring.
- */
-struct spi_driver {
- const struct spi_device_id *id_table;
- int (*probe)(struct spi_device *spi);
- int (*remove)(struct spi_device *spi);
- void (*shutdown)(struct spi_device *spi);
- int (*suspend)(struct spi_device *spi, pm_message_t mesg);
- int (*resume)(struct spi_device *spi);
- struct device_driver driver;
-};
-
-static inline struct spi_driver *to_spi_driver(struct device_driver *drv)
-{
- return drv ? container_of(drv, struct spi_driver, driver) : NULL;
-}
-
-extern int spi_register_driver(struct spi_driver *sdrv);
-
-/**
- * spi_unregister_driver - reverse effect of spi_register_driver
- * @sdrv: the driver to unregister
- * Context: can sleep
- */
-static inline void spi_unregister_driver(struct spi_driver *sdrv)
-{
- if (sdrv)
- driver_unregister(&sdrv->driver);
-}
-
-/**
- * module_spi_driver() - Helper macro for registering a SPI driver
- * @__spi_driver: spi_driver struct
- *
- * Helper macro for SPI drivers which do not do anything special in module
- * init/exit. This eliminates a lot of boilerplate. Each module may only
- * use this macro once, and calling it replaces module_init() and module_exit()
- */
-#define module_spi_driver(__spi_driver) \
- module_driver(__spi_driver, spi_register_driver, \
- spi_unregister_driver)
-
-/**
- * struct spi_master - interface to SPI master controller
- * @dev: device interface to this driver
- * @list: link with the global spi_master list
- * @bus_num: board-specific (and often SOC-specific) identifier for a
- * given SPI controller.
- * @num_chipselect: chipselects are used to distinguish individual
- * SPI slaves, and are numbered from zero to num_chipselects.
- * each slave has a chipselect signal, but it's common that not
- * every chipselect is connected to a slave.
- * @dma_alignment: SPI controller constraint on DMA buffers alignment.
- * @mode_bits: flags understood by this controller driver
- * @flags: other constraints relevant to this driver
- * @bus_lock_spinlock: spinlock for SPI bus locking
- * @bus_lock_mutex: mutex for SPI bus locking
- * @bus_lock_flag: indicates that the SPI bus is locked for exclusive use
- * @setup: updates the device mode and clocking records used by a
- * device's SPI controller; protocol code may call this. This
- * must fail if an unrecognized or unsupported mode is requested.
- * It's always safe to call this unless transfers are pending on
- * the device whose settings are being modified.
- * @transfer: adds a message to the controller's transfer queue.
- * @cleanup: frees controller-specific state
- * @queued: whether this master is providing an internal message queue
- * @kworker: thread struct for message pump
- * @kworker_task: pointer to task for message pump kworker thread
- * @pump_messages: work struct for scheduling work to the message pump
- * @queue_lock: spinlock to syncronise access to message queue
- * @queue: message queue
- * @cur_msg: the currently in-flight message
- * @busy: message pump is busy
- * @running: message pump is running
- * @rt: whether this queue is set to run as a realtime task
- * @prepare_transfer_hardware: a message will soon arrive from the queue
- * so the subsystem requests the driver to prepare the transfer hardware
- * by issuing this call
- * @transfer_one_message: the subsystem calls the driver to transfer a single
- * message while queuing transfers that arrive in the meantime. When the
- * driver is finished with this message, it must call
- * spi_finalize_current_message() so the subsystem can issue the next
- * transfer
- * @unprepare_transfer_hardware: there are currently no more messages on the
- * queue so the subsystem notifies the driver that it may relax the
- * hardware by issuing this call
- *
- * Each SPI master controller can communicate with one or more @spi_device
- * children. These make a small bus, sharing MOSI, MISO and SCK signals
- * but not chip select signals. Each device may be configured to use a
- * different clock rate, since those shared signals are ignored unless
- * the chip is selected.
- *
- * The driver for an SPI controller manages access to those devices through
- * a queue of spi_message transactions, copying data between CPU memory and
- * an SPI slave device. For each such message it queues, it calls the
- * message's completion function when the transaction completes.
- */
-struct spi_master {
- struct device dev;
-
- struct list_head list;
-
- /* other than negative (== assign one dynamically), bus_num is fully
- * board-specific. usually that simplifies to being SOC-specific.
- * example: one SOC has three SPI controllers, numbered 0..2,
- * and one board's schematics might show it using SPI-2. software
- * would normally use bus_num=2 for that controller.
- */
- s16 bus_num;
-
- /* chipselects will be integral to many controllers; some others
- * might use board-specific GPIOs.
- */
- u16 num_chipselect;
-
- /* some SPI controllers pose alignment requirements on DMAable
- * buffers; let protocol drivers know about these requirements.
- */
- u16 dma_alignment;
-
- /* spi_device.mode flags understood by this controller driver */
- u16 mode_bits;
-
- /* other constraints relevant to this driver */
- u16 flags;
-#define SPI_MASTER_HALF_DUPLEX BIT(0) /* can't do full duplex */
-#define SPI_MASTER_NO_RX BIT(1) /* can't do buffer read */
-#define SPI_MASTER_NO_TX BIT(2) /* can't do buffer write */
-
- /* lock and mutex for SPI bus locking */
- spinlock_t bus_lock_spinlock;
- struct mutex bus_lock_mutex;
-
- /* flag indicating that the SPI bus is locked for exclusive use */
- bool bus_lock_flag;
-
- /* Setup mode and clock, etc (spi driver may call many times).
- *
- * IMPORTANT: this may be called when transfers to another
- * device are active. DO NOT UPDATE SHARED REGISTERS in ways
- * which could break those transfers.
- */
- int (*setup)(struct spi_device *spi);
-
- /* bidirectional bulk transfers
- *
- * + The transfer() method may not sleep; its main role is
- * just to add the message to the queue.
- * + For now there's no remove-from-queue operation, or
- * any other request management
- * + To a given spi_device, message queueing is pure fifo
- *
- * + The master's main job is to process its message queue,
- * selecting a chip then transferring data
- * + If there are multiple spi_device children, the i/o queue
- * arbitration algorithm is unspecified (round robin, fifo,
- * priority, reservations, preemption, etc)
- *
- * + Chipselect stays active during the entire message
- * (unless modified by spi_transfer.cs_change != 0).
- * + The message transfers use clock and SPI mode parameters
- * previously established by setup() for this device
- */
- int (*transfer)(struct spi_device *spi,
- struct spi_message *mesg);
-
- /* called on release() to free memory provided by spi_master */
- void (*cleanup)(struct spi_device *spi);
-
- /*
- * These hooks are for drivers that want to use the generic
- * master transfer queueing mechanism. If these are used, the
- * transfer() function above must NOT be specified by the driver.
- * Over time we expect SPI drivers to be phased over to this API.
- */
- bool queued;
- struct kthread_worker kworker;
- struct task_struct *kworker_task;
- struct kthread_work pump_messages;
- spinlock_t queue_lock;
- struct list_head queue;
- struct spi_message *cur_msg;
- bool busy;
- bool running;
- bool rt;
-
- int (*prepare_transfer_hardware)(struct spi_master *master);
- int (*transfer_one_message)(struct spi_master *master,
- struct spi_message *mesg);
- int (*unprepare_transfer_hardware)(struct spi_master *master);
-};
-
-static inline void *spi_master_get_devdata(struct spi_master *master)
-{
- return dev_get_drvdata(&master->dev);
-}
-
-static inline void spi_master_set_devdata(struct spi_master *master, void *data)
-{
- dev_set_drvdata(&master->dev, data);
-}
-
-static inline struct spi_master *spi_master_get(struct spi_master *master)
-{
- if (!master || !get_device(&master->dev))
- return NULL;
- return master;
-}
-
-static inline void spi_master_put(struct spi_master *master)
-{
- if (master)
- put_device(&master->dev);
-}
-
-/* PM calls that need to be issued by the driver */
-extern int spi_master_suspend(struct spi_master *master);
-extern int spi_master_resume(struct spi_master *master);
-
-/* Calls the driver make to interact with the message queue */
-extern struct spi_message *spi_get_next_queued_message(struct spi_master *master);
-extern void spi_finalize_current_message(struct spi_master *master);
-
-/* the spi driver core manages memory for the spi_master classdev */
-extern struct spi_master *
-spi_alloc_master(struct device *host, unsigned size);
-
-extern int spi_register_master(struct spi_master *master);
-extern void spi_unregister_master(struct spi_master *master);
-
-extern struct spi_master *spi_busnum_to_master(u16 busnum);
-
-/*---------------------------------------------------------------------------*/
-
-/*
- * I/O INTERFACE between SPI controller and protocol drivers
- *
- * Protocol drivers use a queue of spi_messages, each transferring data
- * between the controller and memory buffers.
- *
- * The spi_messages themselves consist of a series of read+write transfer
- * segments. Those segments always read the same number of bits as they
- * write; but one or the other is easily ignored by passing a null buffer
- * pointer. (This is unlike most types of I/O API, because SPI hardware
- * is full duplex.)
- *
- * NOTE: Allocation of spi_transfer and spi_message memory is entirely
- * up to the protocol driver, which guarantees the integrity of both (as
- * well as the data buffers) for as long as the message is queued.
- */
-
-/**
- * struct spi_transfer - a read/write buffer pair
- * @tx_buf: data to be written (dma-safe memory), or NULL
- * @rx_buf: data to be read (dma-safe memory), or NULL
- * @tx_dma: DMA address of tx_buf, if @spi_message.is_dma_mapped
- * @rx_dma: DMA address of rx_buf, if @spi_message.is_dma_mapped
- * @len: size of rx and tx buffers (in bytes)
- * @speed_hz: Select a speed other than the device default for this
- * transfer. If 0 the default (from @spi_device) is used.
- * @bits_per_word: select a bits_per_word other than the device default
- * for this transfer. If 0 the default (from @spi_device) is used.
- * @cs_change: affects chipselect after this transfer completes
- * @delay_usecs: microseconds to delay after this transfer before
- * (optionally) changing the chipselect status, then starting
- * the next transfer or completing this @spi_message.
- * @transfer_list: transfers are sequenced through @spi_message.transfers
- *
- * SPI transfers always write the same number of bytes as they read.
- * Protocol drivers should always provide @rx_buf and/or @tx_buf.
- * In some cases, they may also want to provide DMA addresses for
- * the data being transferred; that may reduce overhead, when the
- * underlying driver uses dma.
- *
- * If the transmit buffer is null, zeroes will be shifted out
- * while filling @rx_buf. If the receive buffer is null, the data
- * shifted in will be discarded. Only "len" bytes shift out (or in).
- * It's an error to try to shift out a partial word. (For example, by
- * shifting out three bytes with word size of sixteen or twenty bits;
- * the former uses two bytes per word, the latter uses four bytes.)
- *
- * In-memory data values are always in native CPU byte order, translated
- * from the wire byte order (big-endian except with SPI_LSB_FIRST). So
- * for example when bits_per_word is sixteen, buffers are 2N bytes long
- * (@len = 2N) and hold N sixteen bit words in CPU byte order.
- *
- * When the word size of the SPI transfer is not a power-of-two multiple
- * of eight bits, those in-memory words include extra bits. In-memory
- * words are always seen by protocol drivers as right-justified, so the
- * undefined (rx) or unused (tx) bits are always the most significant bits.
- *
- * All SPI transfers start with the relevant chipselect active. Normally
- * it stays selected until after the last transfer in a message. Drivers
- * can affect the chipselect signal using cs_change.
- *
- * (i) If the transfer isn't the last one in the message, this flag is
- * used to make the chipselect briefly go inactive in the middle of the
- * message. Toggling chipselect in this way may be needed to terminate
- * a chip command, letting a single spi_message perform all of group of
- * chip transactions together.
- *
- * (ii) When the transfer is the last one in the message, the chip may
- * stay selected until the next transfer. On multi-device SPI busses
- * with nothing blocking messages going to other devices, this is just
- * a performance hint; starting a message to another device deselects
- * this one. But in other cases, this can be used to ensure correctness.
- * Some devices need protocol transactions to be built from a series of
- * spi_message submissions, where the content of one message is determined
- * by the results of previous messages and where the whole transaction
- * ends when the chipselect goes intactive.
- *
- * The code that submits an spi_message (and its spi_transfers)
- * to the lower layers is responsible for managing its memory.
- * Zero-initialize every field you don't set up explicitly, to
- * insulate against future API updates. After you submit a message
- * and its transfers, ignore them until its completion callback.
- */
-struct spi_transfer {
- /* it's ok if tx_buf == rx_buf (right?)
- * for MicroWire, one buffer must be null
- * buffers must work with dma_*map_single() calls, unless
- * spi_message.is_dma_mapped reports a pre-existing mapping
- */
- const void *tx_buf;
- void *rx_buf;
- unsigned len;
-
- dma_addr_t tx_dma;
- dma_addr_t rx_dma;
-
- unsigned cs_change:1;
- u8 bits_per_word;
- u16 delay_usecs;
- u32 speed_hz;
-
- struct list_head transfer_list;
-};
-
-/**
- * struct spi_message - one multi-segment SPI transaction
- * @transfers: list of transfer segments in this transaction
- * @spi: SPI device to which the transaction is queued
- * @is_dma_mapped: if true, the caller provided both dma and cpu virtual
- * addresses for each transfer buffer
- * @complete: called to report transaction completions
- * @context: the argument to complete() when it's called
- * @actual_length: the total number of bytes that were transferred in all
- * successful segments
- * @status: zero for success, else negative errno
- * @queue: for use by whichever driver currently owns the message
- * @state: for use by whichever driver currently owns the message
- *
- * A @spi_message is used to execute an atomic sequence of data transfers,
- * each represented by a struct spi_transfer. The sequence is "atomic"
- * in the sense that no other spi_message may use that SPI bus until that
- * sequence completes. On some systems, many such sequences can execute as
- * as single programmed DMA transfer. On all systems, these messages are
- * queued, and might complete after transactions to other devices. Messages
- * sent to a given spi_device are alway executed in FIFO order.
- *
- * The code that submits an spi_message (and its spi_transfers)
- * to the lower layers is responsible for managing its memory.
- * Zero-initialize every field you don't set up explicitly, to
- * insulate against future API updates. After you submit a message
- * and its transfers, ignore them until its completion callback.
- */
-struct spi_message {
- struct list_head transfers;
-
- struct spi_device *spi;
-
- unsigned is_dma_mapped:1;
-
- /* REVISIT: we might want a flag affecting the behavior of the
- * last transfer ... allowing things like "read 16 bit length L"
- * immediately followed by "read L bytes". Basically imposing
- * a specific message scheduling algorithm.
- *
- * Some controller drivers (message-at-a-time queue processing)
- * could provide that as their default scheduling algorithm. But
- * others (with multi-message pipelines) could need a flag to
- * tell them about such special cases.
- */
-
- /* completion is reported through a callback */
- void (*complete)(void *context);
- void *context;
- unsigned actual_length;
- int status;
-
- /* for optional use by whatever driver currently owns the
- * spi_message ... between calls to spi_async and then later
- * complete(), that's the spi_master controller driver.
- */
- struct list_head queue;
- void *state;
-};
-
-static inline void spi_message_init(struct spi_message *m)
-{
- memset(m, 0, sizeof *m);
- INIT_LIST_HEAD(&m->transfers);
-}
-
-static inline void
-spi_message_add_tail(struct spi_transfer *t, struct spi_message *m)
-{
- list_add_tail(&t->transfer_list, &m->transfers);
-}
-
-static inline void
-spi_transfer_del(struct spi_transfer *t)
-{
- list_del(&t->transfer_list);
-}
-
-/* It's fine to embed message and transaction structures in other data
- * structures so long as you don't free them while they're in use.
- */
-
-static inline struct spi_message *spi_message_alloc(unsigned ntrans, gfp_t flags)
-{
- struct spi_message *m;
-
- m = kzalloc(sizeof(struct spi_message)
- + ntrans * sizeof(struct spi_transfer),
- flags);
- if (m) {
- unsigned i;
- struct spi_transfer *t = (struct spi_transfer *)(m + 1);
-
- INIT_LIST_HEAD(&m->transfers);
- for (i = 0; i < ntrans; i++, t++)
- spi_message_add_tail(t, m);
- }
- return m;
-}
-
-static inline void spi_message_free(struct spi_message *m)
-{
- kfree(m);
-}
-
-extern int spi_setup(struct spi_device *spi);
-extern int spi_async(struct spi_device *spi, struct spi_message *message);
-extern int spi_async_locked(struct spi_device *spi,
- struct spi_message *message);
-
-/*---------------------------------------------------------------------------*/
-
-/* All these synchronous SPI transfer routines are utilities layered
- * over the core async transfer primitive. Here, "synchronous" means
- * they will sleep uninterruptibly until the async transfer completes.
- */
-
-extern int spi_sync(struct spi_device *spi, struct spi_message *message);
-extern int spi_sync_locked(struct spi_device *spi, struct spi_message *message);
-extern int spi_bus_lock(struct spi_master *master);
-extern int spi_bus_unlock(struct spi_master *master);
-
-/**
- * spi_write - SPI synchronous write
- * @spi: device to which data will be written
- * @buf: data buffer
- * @len: data buffer size
- * Context: can sleep
- *
- * This writes the buffer and returns zero or a negative error code.
- * Callable only from contexts that can sleep.
- */
-static inline int
-spi_write(struct spi_device *spi, const void *buf, size_t len)
-{
- struct spi_transfer t = {
- .tx_buf = buf,
- .len = len,
- };
- struct spi_message m;
-
- spi_message_init(&m);
- spi_message_add_tail(&t, &m);
- return spi_sync(spi, &m);
-}
-
-/**
- * spi_read - SPI synchronous read
- * @spi: device from which data will be read
- * @buf: data buffer
- * @len: data buffer size
- * Context: can sleep
- *
- * This reads the buffer and returns zero or a negative error code.
- * Callable only from contexts that can sleep.
- */
-static inline int
-spi_read(struct spi_device *spi, void *buf, size_t len)
-{
- struct spi_transfer t = {
- .rx_buf = buf,
- .len = len,
- };
- struct spi_message m;
-
- spi_message_init(&m);
- spi_message_add_tail(&t, &m);
- return spi_sync(spi, &m);
-}
-
-/* this copies txbuf and rxbuf data; for small transfers only! */
-extern int spi_write_then_read(struct spi_device *spi,
- const void *txbuf, unsigned n_tx,
- void *rxbuf, unsigned n_rx);
-
-/**
- * spi_w8r8 - SPI synchronous 8 bit write followed by 8 bit read
- * @spi: device with which data will be exchanged
- * @cmd: command to be written before data is read back
- * Context: can sleep
- *
- * This returns the (unsigned) eight bit number returned by the
- * device, or else a negative error code. Callable only from
- * contexts that can sleep.
- */
-static inline ssize_t spi_w8r8(struct spi_device *spi, u8 cmd)
-{
- ssize_t status;
- u8 result;
-
- status = spi_write_then_read(spi, &cmd, 1, &result, 1);
-
- /* return negative errno or unsigned value */
- return (status < 0) ? status : result;
-}
-
-/**
- * spi_w8r16 - SPI synchronous 8 bit write followed by 16 bit read
- * @spi: device with which data will be exchanged
- * @cmd: command to be written before data is read back
- * Context: can sleep
- *
- * This returns the (unsigned) sixteen bit number returned by the
- * device, or else a negative error code. Callable only from
- * contexts that can sleep.
- *
- * The number is returned in wire-order, which is at least sometimes
- * big-endian.
- */
-static inline ssize_t spi_w8r16(struct spi_device *spi, u8 cmd)
-{
- ssize_t status;
- u16 result;
-
- status = spi_write_then_read(spi, &cmd, 1, (u8 *) &result, 2);
-
- /* return negative errno or unsigned value */
- return (status < 0) ? status : result;
-}
-
-/*---------------------------------------------------------------------------*/
-
-/*
- * INTERFACE between board init code and SPI infrastructure.
- *
- * No SPI driver ever sees these SPI device table segments, but
- * it's how the SPI core (or adapters that get hotplugged) grows
- * the driver model tree.
- *
- * As a rule, SPI devices can't be probed. Instead, board init code
- * provides a table listing the devices which are present, with enough
- * information to bind and set up the device's driver. There's basic
- * support for nonstatic configurations too; enough to handle adding
- * parport adapters, or microcontrollers acting as USB-to-SPI bridges.
- */
-
-/**
- * struct spi_board_info - board-specific template for a SPI device
- * @modalias: Initializes spi_device.modalias; identifies the driver.
- * @platform_data: Initializes spi_device.platform_data; the particular
- * data stored there is driver-specific.
- * @controller_data: Initializes spi_device.controller_data; some
- * controllers need hints about hardware setup, e.g. for DMA.
- * @irq: Initializes spi_device.irq; depends on how the board is wired.
- * @max_speed_hz: Initializes spi_device.max_speed_hz; based on limits
- * from the chip datasheet and board-specific signal quality issues.
- * @bus_num: Identifies which spi_master parents the spi_device; unused
- * by spi_new_device(), and otherwise depends on board wiring.
- * @chip_select: Initializes spi_device.chip_select; depends on how
- * the board is wired.
- * @mode: Initializes spi_device.mode; based on the chip datasheet, board
- * wiring (some devices support both 3WIRE and standard modes), and
- * possibly presence of an inverter in the chipselect path.
- *
- * When adding new SPI devices to the device tree, these structures serve
- * as a partial device template. They hold information which can't always
- * be determined by drivers. Information that probe() can establish (such
- * as the default transfer wordsize) is not included here.
- *
- * These structures are used in two places. Their primary role is to
- * be stored in tables of board-specific device descriptors, which are
- * declared early in board initialization and then used (much later) to
- * populate a controller's device tree after the that controller's driver
- * initializes. A secondary (and atypical) role is as a parameter to
- * spi_new_device() call, which happens after those controller drivers
- * are active in some dynamic board configuration models.
- */
-struct spi_board_info {
- /* the device name and module name are coupled, like platform_bus;
- * "modalias" is normally the driver name.
- *
- * platform_data goes to spi_device.dev.platform_data,
- * controller_data goes to spi_device.controller_data,
- * irq is copied too
- */
- char modalias[SPI_NAME_SIZE];
- const void *platform_data;
- void *controller_data;
- int irq;
-
- /* slower signaling on noisy or low voltage boards */
- u32 max_speed_hz;
-
-
- /* bus_num is board specific and matches the bus_num of some
- * spi_master that will probably be registered later.
- *
- * chip_select reflects how this chip is wired to that master;
- * it's less than num_chipselect.
- */
- u16 bus_num;
- u16 chip_select;
-
- /* mode becomes spi_device.mode, and is essential for chips
- * where the default of SPI_CS_HIGH = 0 is wrong.
- */
- u8 mode;
-
- /* ... may need additional spi_device chip config data here.
- * avoid stuff protocol drivers can set; but include stuff
- * needed to behave without being bound to a driver:
- * - quirks like clock rate mattering when not selected
- */
-};
-
-#ifdef CONFIG_SPI
-extern int
-spi_register_board_info(struct spi_board_info const *info, unsigned n);
-#else
-/* board init code may ignore whether SPI is configured or not */
-static inline int
-spi_register_board_info(struct spi_board_info const *info, unsigned n)
- { return 0; }
-#endif
-
-
-/* If you're hotplugging an adapter with devices (parport, usb, etc)
- * use spi_new_device() to describe each device. You can also call
- * spi_unregister_device() to start making that device vanish, but
- * normally that would be handled by spi_unregister_master().
- *
- * You can also use spi_alloc_device() and spi_add_device() to use a two
- * stage registration sequence for each spi_device. This gives the caller
- * some more control over the spi_device structure before it is registered,
- * but requires that caller to initialize fields that would otherwise
- * be defined using the board info.
- */
-extern struct spi_device *
-spi_alloc_device(struct spi_master *master);
-
-extern int
-spi_add_device(struct spi_device *spi);
-
-extern struct spi_device *
-spi_new_device(struct spi_master *, struct spi_board_info *);
-
-static inline void
-spi_unregister_device(struct spi_device *spi)
-{
- if (spi)
- device_unregister(&spi->dev);
-}
-
-extern const struct spi_device_id *
-spi_get_device_id(const struct spi_device *sdev);
-
-#endif /* __LINUX_SPI_H */
diff --git a/ANDROID_3.4.5/include/linux/spi/spi_bitbang.h b/ANDROID_3.4.5/include/linux/spi/spi_bitbang.h
deleted file mode 100644
index f987a2be..00000000
--- a/ANDROID_3.4.5/include/linux/spi/spi_bitbang.h
+++ /dev/null
@@ -1,52 +0,0 @@
-#ifndef __SPI_BITBANG_H
-#define __SPI_BITBANG_H
-
-#include <linux/workqueue.h>
-
-struct spi_bitbang {
- struct workqueue_struct *workqueue;
- struct work_struct work;
-
- spinlock_t lock;
- struct list_head queue;
- u8 busy;
- u8 use_dma;
- u8 flags; /* extra spi->mode support */
-
- struct spi_master *master;
-
- /* setup_transfer() changes clock and/or wordsize to match settings
- * for this transfer; zeroes restore defaults from spi_device.
- */
- int (*setup_transfer)(struct spi_device *spi,
- struct spi_transfer *t);
-
- void (*chipselect)(struct spi_device *spi, int is_on);
-#define BITBANG_CS_ACTIVE 1 /* normally nCS, active low */
-#define BITBANG_CS_INACTIVE 0
-
- /* txrx_bufs() may handle dma mapping for transfers that don't
- * already have one (transfer.{tx,rx}_dma is zero), or use PIO
- */
- int (*txrx_bufs)(struct spi_device *spi, struct spi_transfer *t);
-
- /* txrx_word[SPI_MODE_*]() just looks like a shift register */
- u32 (*txrx_word[4])(struct spi_device *spi,
- unsigned nsecs,
- u32 word, u8 bits);
-};
-
-/* you can call these default bitbang->master methods from your custom
- * methods, if you like.
- */
-extern int spi_bitbang_setup(struct spi_device *spi);
-extern void spi_bitbang_cleanup(struct spi_device *spi);
-extern int spi_bitbang_transfer(struct spi_device *spi, struct spi_message *m);
-extern int spi_bitbang_setup_transfer(struct spi_device *spi,
- struct spi_transfer *t);
-
-/* start or stop queue processing */
-extern int spi_bitbang_start(struct spi_bitbang *spi);
-extern int spi_bitbang_stop(struct spi_bitbang *spi);
-
-#endif /* __SPI_BITBANG_H */
diff --git a/ANDROID_3.4.5/include/linux/spi/spi_gpio.h b/ANDROID_3.4.5/include/linux/spi/spi_gpio.h
deleted file mode 100644
index 369b3d7d..00000000
--- a/ANDROID_3.4.5/include/linux/spi/spi_gpio.h
+++ /dev/null
@@ -1,71 +0,0 @@
-#ifndef __LINUX_SPI_GPIO_H
-#define __LINUX_SPI_GPIO_H
-
-/*
- * For each bitbanged SPI bus, set up a platform_device node with:
- * - name "spi_gpio"
- * - id the same as the SPI bus number it implements
- * - dev.platform data pointing to a struct spi_gpio_platform_data
- *
- * Or, see the driver code for information about speedups that are
- * possible on platforms that support inlined access for GPIOs (no
- * spi_gpio_platform_data is used).
- *
- * Use spi_board_info with these busses in the usual way, being sure
- * that the controller_data being the GPIO used for each device's
- * chipselect:
- *
- * static struct spi_board_info ... [] = {
- * ...
- * // this slave uses GPIO 42 for its chipselect
- * .controller_data = (void *) 42,
- * ...
- * // this one uses GPIO 86 for its chipselect
- * .controller_data = (void *) 86,
- * ...
- * };
- *
- * If chipselect is not used (there's only one device on the bus), assign
- * SPI_GPIO_NO_CHIPSELECT to the controller_data:
- * .controller_data = (void *) SPI_GPIO_NO_CHIPSELECT;
- *
- * If the MISO or MOSI pin is not available then it should be set to
- * SPI_GPIO_NO_MISO or SPI_GPIO_NO_MOSI.
- *
- * If the bitbanged bus is later switched to a "native" controller,
- * that platform_device and controller_data should be removed.
- */
-
-#define SPI_GPIO_NO_CHIPSELECT ((unsigned long)-1l)
-#define SPI_GPIO_NO_MISO ((unsigned long)-1l)
-#define SPI_GPIO_NO_MOSI ((unsigned long)-1l)
-
-/**
- * struct spi_gpio_platform_data - parameter for bitbanged SPI master
- * @sck: number of the GPIO used for clock output
- * @mosi: number of the GPIO used for Master Output, Slave In (MOSI) data
- * @miso: number of the GPIO used for Master Input, Slave Output (MISO) data
- * @num_chipselect: how many slaves to allow
- *
- * All GPIO signals used with the SPI bus managed through this driver
- * (chipselects, MOSI, MISO, SCK) must be configured as GPIOs, instead
- * of some alternate function.
- *
- * It can be convenient to use this driver with pins that have alternate
- * functions associated with a "native" SPI controller if a driver for that
- * controller is not available, or is missing important functionality.
- *
- * On platforms which can do so, configure MISO with a weak pullup unless
- * there's an external pullup on that signal. That saves power by avoiding
- * floating signals. (A weak pulldown would save power too, but many
- * drivers expect to see all-ones data as the no slave "response".)
- */
-struct spi_gpio_platform_data {
- unsigned sck;
- unsigned mosi;
- unsigned miso;
-
- u16 num_chipselect;
-};
-
-#endif /* __LINUX_SPI_GPIO_H */
diff --git a/ANDROID_3.4.5/include/linux/spi/spi_oc_tiny.h b/ANDROID_3.4.5/include/linux/spi/spi_oc_tiny.h
deleted file mode 100644
index 1ac529cf..00000000
--- a/ANDROID_3.4.5/include/linux/spi/spi_oc_tiny.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef _LINUX_SPI_SPI_OC_TINY_H
-#define _LINUX_SPI_SPI_OC_TINY_H
-
-/**
- * struct tiny_spi_platform_data - platform data of the OpenCores tiny SPI
- * @freq: input clock freq to the core.
- * @baudwidth: baud rate divider width of the core.
- * @gpio_cs_count: number of gpio pins used for chipselect.
- * @gpio_cs: array of gpio pins used for chipselect.
- *
- * freq and baudwidth are used only if the divider is programmable.
- */
-struct tiny_spi_platform_data {
- unsigned int freq;
- unsigned int baudwidth;
- unsigned int gpio_cs_count;
- int *gpio_cs;
-};
-
-#endif /* _LINUX_SPI_SPI_OC_TINY_H */
diff --git a/ANDROID_3.4.5/include/linux/spi/spidev.h b/ANDROID_3.4.5/include/linux/spi/spidev.h
deleted file mode 100644
index 52d9ed01..00000000
--- a/ANDROID_3.4.5/include/linux/spi/spidev.h
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * include/linux/spi/spidev.h
- *
- * Copyright (C) 2006 SWAPP
- * Andrea Paterniani <a.paterniani@swapp-eng.it>
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef SPIDEV_H
-#define SPIDEV_H
-
-#include <linux/types.h>
-
-/* User space versions of kernel symbols for SPI clocking modes,
- * matching <linux/spi/spi.h>
- */
-
-#define SPI_CPHA 0x01
-#define SPI_CPOL 0x02
-
-#define SPI_MODE_0 (0|0)
-#define SPI_MODE_1 (0|SPI_CPHA)
-#define SPI_MODE_2 (SPI_CPOL|0)
-#define SPI_MODE_3 (SPI_CPOL|SPI_CPHA)
-
-#define SPI_CS_HIGH 0x04
-#define SPI_LSB_FIRST 0x08
-#define SPI_3WIRE 0x10
-#define SPI_LOOP 0x20
-#define SPI_NO_CS 0x40
-#define SPI_READY 0x80
-
-/*---------------------------------------------------------------------------*/
-
-/* IOCTL commands */
-
-#define SPI_IOC_MAGIC 'k'
-
-/**
- * struct spi_ioc_transfer - describes a single SPI transfer
- * @tx_buf: Holds pointer to userspace buffer with transmit data, or null.
- * If no data is provided, zeroes are shifted out.
- * @rx_buf: Holds pointer to userspace buffer for receive data, or null.
- * @len: Length of tx and rx buffers, in bytes.
- * @speed_hz: Temporary override of the device's bitrate.
- * @bits_per_word: Temporary override of the device's wordsize.
- * @delay_usecs: If nonzero, how long to delay after the last bit transfer
- * before optionally deselecting the device before the next transfer.
- * @cs_change: True to deselect device before starting the next transfer.
- *
- * This structure is mapped directly to the kernel spi_transfer structure;
- * the fields have the same meanings, except of course that the pointers
- * are in a different address space (and may be of different sizes in some
- * cases, such as 32-bit i386 userspace over a 64-bit x86_64 kernel).
- * Zero-initialize the structure, including currently unused fields, to
- * accommodate potential future updates.
- *
- * SPI_IOC_MESSAGE gives userspace the equivalent of kernel spi_sync().
- * Pass it an array of related transfers, they'll execute together.
- * Each transfer may be half duplex (either direction) or full duplex.
- *
- * struct spi_ioc_transfer mesg[4];
- * ...
- * status = ioctl(fd, SPI_IOC_MESSAGE(4), mesg);
- *
- * So for example one transfer might send a nine bit command (right aligned
- * in a 16-bit word), the next could read a block of 8-bit data before
- * terminating that command by temporarily deselecting the chip; the next
- * could send a different nine bit command (re-selecting the chip), and the
- * last transfer might write some register values.
- */
-struct spi_ioc_transfer {
- __u64 tx_buf;
- __u64 rx_buf;
-
- __u32 len;
- __u32 speed_hz;
-
- __u16 delay_usecs;
- __u8 bits_per_word;
- __u8 cs_change;
- __u32 pad;
-
- /* If the contents of 'struct spi_ioc_transfer' ever change
- * incompatibly, then the ioctl number (currently 0) must change;
- * ioctls with constant size fields get a bit more in the way of
- * error checking than ones (like this) where that field varies.
- *
- * NOTE: struct layout is the same in 64bit and 32bit userspace.
- */
-};
-
-/* not all platforms use <asm-generic/ioctl.h> or _IOC_TYPECHECK() ... */
-#define SPI_MSGSIZE(N) \
- ((((N)*(sizeof (struct spi_ioc_transfer))) < (1 << _IOC_SIZEBITS)) \
- ? ((N)*(sizeof (struct spi_ioc_transfer))) : 0)
-#define SPI_IOC_MESSAGE(N) _IOW(SPI_IOC_MAGIC, 0, char[SPI_MSGSIZE(N)])
-
-
-/* Read / Write of SPI mode (SPI_MODE_0..SPI_MODE_3) */
-#define SPI_IOC_RD_MODE _IOR(SPI_IOC_MAGIC, 1, __u8)
-#define SPI_IOC_WR_MODE _IOW(SPI_IOC_MAGIC, 1, __u8)
-
-/* Read / Write SPI bit justification */
-#define SPI_IOC_RD_LSB_FIRST _IOR(SPI_IOC_MAGIC, 2, __u8)
-#define SPI_IOC_WR_LSB_FIRST _IOW(SPI_IOC_MAGIC, 2, __u8)
-
-/* Read / Write SPI device word length (1..N) */
-#define SPI_IOC_RD_BITS_PER_WORD _IOR(SPI_IOC_MAGIC, 3, __u8)
-#define SPI_IOC_WR_BITS_PER_WORD _IOW(SPI_IOC_MAGIC, 3, __u8)
-
-/* Read / Write SPI device default max speed hz */
-#define SPI_IOC_RD_MAX_SPEED_HZ _IOR(SPI_IOC_MAGIC, 4, __u32)
-#define SPI_IOC_WR_MAX_SPEED_HZ _IOW(SPI_IOC_MAGIC, 4, __u32)
-
-
-
-#endif /* SPIDEV_H */
diff --git a/ANDROID_3.4.5/include/linux/spi/tdo24m.h b/ANDROID_3.4.5/include/linux/spi/tdo24m.h
deleted file mode 100644
index 7572d4e1..00000000
--- a/ANDROID_3.4.5/include/linux/spi/tdo24m.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef __TDO24M_H__
-#define __TDO24M_H__
-
-enum tdo24m_model {
- TDO24M,
- TDO35S,
-};
-
-struct tdo24m_platform_data {
- enum tdo24m_model model;
-};
-
-#endif /* __TDO24M_H__ */
diff --git a/ANDROID_3.4.5/include/linux/spi/tle62x0.h b/ANDROID_3.4.5/include/linux/spi/tle62x0.h
deleted file mode 100644
index 60b59187..00000000
--- a/ANDROID_3.4.5/include/linux/spi/tle62x0.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * tle62x0.h - platform glue to Infineon TLE62x0 driver chips
- *
- * Copyright 2007 Simtec Electronics
- * Ben Dooks <ben@simtec.co.uk>
- *
- * 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.
- *
- * 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
-*/
-
-struct tle62x0_pdata {
- unsigned int init_state;
- unsigned int gpio_count;
-};
diff --git a/ANDROID_3.4.5/include/linux/spi/tsc2005.h b/ANDROID_3.4.5/include/linux/spi/tsc2005.h
deleted file mode 100644
index d9b0c842..00000000
--- a/ANDROID_3.4.5/include/linux/spi/tsc2005.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * This file is part of TSC2005 touchscreen driver
- *
- * Copyright (C) 2009-2010 Nokia Corporation
- *
- * Contact: Aaro Koskinen <aaro.koskinen@nokia.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
- *
- */
-
-#ifndef _LINUX_SPI_TSC2005_H
-#define _LINUX_SPI_TSC2005_H
-
-#include <linux/types.h>
-
-struct tsc2005_platform_data {
- int ts_pressure_max;
- int ts_pressure_fudge;
- int ts_x_max;
- int ts_x_fudge;
- int ts_y_max;
- int ts_y_fudge;
- int ts_x_plate_ohm;
- unsigned int esd_timeout_ms;
- void (*set_reset)(bool enable);
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/spi/xilinx_spi.h b/ANDROID_3.4.5/include/linux/spi/xilinx_spi.h
deleted file mode 100644
index 6f172788..00000000
--- a/ANDROID_3.4.5/include/linux/spi/xilinx_spi.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef __LINUX_SPI_XILINX_SPI_H
-#define __LINUX_SPI_XILINX_SPI_H
-
-/**
- * struct xspi_platform_data - Platform data of the Xilinx SPI driver
- * @num_chipselect: Number of chip select by the IP.
- * @little_endian: If registers should be accessed little endian or not.
- * @bits_per_word: Number of bits per word.
- * @devices: Devices to add when the driver is probed.
- * @num_devices: Number of devices in the devices array.
- */
-struct xspi_platform_data {
- u16 num_chipselect;
- bool little_endian;
- u8 bits_per_word;
- struct spi_board_info *devices;
- u8 num_devices;
-};
-
-#endif /* __LINUX_SPI_XILINX_SPI_H */
diff --git a/ANDROID_3.4.5/include/linux/spinlock.h b/ANDROID_3.4.5/include/linux/spinlock.h
deleted file mode 100644
index 7d537ced..00000000
--- a/ANDROID_3.4.5/include/linux/spinlock.h
+++ /dev/null
@@ -1,397 +0,0 @@
-#ifndef __LINUX_SPINLOCK_H
-#define __LINUX_SPINLOCK_H
-
-/*
- * include/linux/spinlock.h - generic spinlock/rwlock declarations
- *
- * here's the role of the various spinlock/rwlock related include files:
- *
- * on SMP builds:
- *
- * asm/spinlock_types.h: contains the arch_spinlock_t/arch_rwlock_t and the
- * initializers
- *
- * linux/spinlock_types.h:
- * defines the generic type and initializers
- *
- * asm/spinlock.h: contains the arch_spin_*()/etc. lowlevel
- * implementations, mostly inline assembly code
- *
- * (also included on UP-debug builds:)
- *
- * linux/spinlock_api_smp.h:
- * contains the prototypes for the _spin_*() APIs.
- *
- * linux/spinlock.h: builds the final spin_*() APIs.
- *
- * on UP builds:
- *
- * linux/spinlock_type_up.h:
- * contains the generic, simplified UP spinlock type.
- * (which is an empty structure on non-debug builds)
- *
- * linux/spinlock_types.h:
- * defines the generic type and initializers
- *
- * linux/spinlock_up.h:
- * contains the arch_spin_*()/etc. version of UP
- * builds. (which are NOPs on non-debug, non-preempt
- * builds)
- *
- * (included on UP-non-debug builds:)
- *
- * linux/spinlock_api_up.h:
- * builds the _spin_*() APIs.
- *
- * linux/spinlock.h: builds the final spin_*() APIs.
- */
-
-#include <linux/typecheck.h>
-#include <linux/preempt.h>
-#include <linux/linkage.h>
-#include <linux/compiler.h>
-#include <linux/irqflags.h>
-#include <linux/thread_info.h>
-#include <linux/kernel.h>
-#include <linux/stringify.h>
-#include <linux/bottom_half.h>
-#include <asm/barrier.h>
-
-
-/*
- * Must define these before including other files, inline functions need them
- */
-#define LOCK_SECTION_NAME ".text..lock."KBUILD_BASENAME
-
-#define LOCK_SECTION_START(extra) \
- ".subsection 1\n\t" \
- extra \
- ".ifndef " LOCK_SECTION_NAME "\n\t" \
- LOCK_SECTION_NAME ":\n\t" \
- ".endif\n"
-
-#define LOCK_SECTION_END \
- ".previous\n\t"
-
-#define __lockfunc __attribute__((section(".spinlock.text")))
-
-/*
- * Pull the arch_spinlock_t and arch_rwlock_t definitions:
- */
-#include <linux/spinlock_types.h>
-
-/*
- * Pull the arch_spin*() functions/declarations (UP-nondebug doesn't need them):
- */
-#ifdef CONFIG_SMP
-# include <asm/spinlock.h>
-#else
-# include <linux/spinlock_up.h>
-#endif
-
-#ifdef CONFIG_DEBUG_SPINLOCK
- extern void __raw_spin_lock_init(raw_spinlock_t *lock, const char *name,
- struct lock_class_key *key);
-# define raw_spin_lock_init(lock) \
-do { \
- static struct lock_class_key __key; \
- \
- __raw_spin_lock_init((lock), #lock, &__key); \
-} while (0)
-
-#else
-# define raw_spin_lock_init(lock) \
- do { *(lock) = __RAW_SPIN_LOCK_UNLOCKED(lock); } while (0)
-#endif
-
-#define raw_spin_is_locked(lock) arch_spin_is_locked(&(lock)->raw_lock)
-
-#ifdef CONFIG_GENERIC_LOCKBREAK
-#define raw_spin_is_contended(lock) ((lock)->break_lock)
-#else
-
-#ifdef arch_spin_is_contended
-#define raw_spin_is_contended(lock) arch_spin_is_contended(&(lock)->raw_lock)
-#else
-#define raw_spin_is_contended(lock) (((void)(lock), 0))
-#endif /*arch_spin_is_contended*/
-#endif
-
-/* The lock does not imply full memory barrier. */
-#ifndef ARCH_HAS_SMP_MB_AFTER_LOCK
-static inline void smp_mb__after_lock(void) { smp_mb(); }
-#endif
-
-/**
- * raw_spin_unlock_wait - wait until the spinlock gets unlocked
- * @lock: the spinlock in question.
- */
-#define raw_spin_unlock_wait(lock) arch_spin_unlock_wait(&(lock)->raw_lock)
-
-#ifdef CONFIG_DEBUG_SPINLOCK
- extern void do_raw_spin_lock(raw_spinlock_t *lock) __acquires(lock);
-#define do_raw_spin_lock_flags(lock, flags) do_raw_spin_lock(lock)
- extern int do_raw_spin_trylock(raw_spinlock_t *lock);
- extern void do_raw_spin_unlock(raw_spinlock_t *lock) __releases(lock);
-#else
-static inline void do_raw_spin_lock(raw_spinlock_t *lock) __acquires(lock)
-{
- __acquire(lock);
- arch_spin_lock(&lock->raw_lock);
-}
-
-static inline void
-do_raw_spin_lock_flags(raw_spinlock_t *lock, unsigned long *flags) __acquires(lock)
-{
- __acquire(lock);
- arch_spin_lock_flags(&lock->raw_lock, *flags);
-}
-
-static inline int do_raw_spin_trylock(raw_spinlock_t *lock)
-{
- return arch_spin_trylock(&(lock)->raw_lock);
-}
-
-static inline void do_raw_spin_unlock(raw_spinlock_t *lock) __releases(lock)
-{
- arch_spin_unlock(&lock->raw_lock);
- __release(lock);
-}
-#endif
-
-/*
- * Define the various spin_lock methods. Note we define these
- * regardless of whether CONFIG_SMP or CONFIG_PREEMPT are set. The
- * various methods are defined as nops in the case they are not
- * required.
- */
-#define raw_spin_trylock(lock) __cond_lock(lock, _raw_spin_trylock(lock))
-
-#define raw_spin_lock(lock) _raw_spin_lock(lock)
-
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
-# define raw_spin_lock_nested(lock, subclass) \
- _raw_spin_lock_nested(lock, subclass)
-
-# define raw_spin_lock_nest_lock(lock, nest_lock) \
- do { \
- typecheck(struct lockdep_map *, &(nest_lock)->dep_map);\
- _raw_spin_lock_nest_lock(lock, &(nest_lock)->dep_map); \
- } while (0)
-#else
-# define raw_spin_lock_nested(lock, subclass) _raw_spin_lock(lock)
-# define raw_spin_lock_nest_lock(lock, nest_lock) _raw_spin_lock(lock)
-#endif
-
-#if defined(CONFIG_SMP) || defined(CONFIG_DEBUG_SPINLOCK)
-
-#define raw_spin_lock_irqsave(lock, flags) \
- do { \
- typecheck(unsigned long, flags); \
- flags = _raw_spin_lock_irqsave(lock); \
- } while (0)
-
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
-#define raw_spin_lock_irqsave_nested(lock, flags, subclass) \
- do { \
- typecheck(unsigned long, flags); \
- flags = _raw_spin_lock_irqsave_nested(lock, subclass); \
- } while (0)
-#else
-#define raw_spin_lock_irqsave_nested(lock, flags, subclass) \
- do { \
- typecheck(unsigned long, flags); \
- flags = _raw_spin_lock_irqsave(lock); \
- } while (0)
-#endif
-
-#else
-
-#define raw_spin_lock_irqsave(lock, flags) \
- do { \
- typecheck(unsigned long, flags); \
- _raw_spin_lock_irqsave(lock, flags); \
- } while (0)
-
-#define raw_spin_lock_irqsave_nested(lock, flags, subclass) \
- raw_spin_lock_irqsave(lock, flags)
-
-#endif
-
-#define raw_spin_lock_irq(lock) _raw_spin_lock_irq(lock)
-#define raw_spin_lock_bh(lock) _raw_spin_lock_bh(lock)
-#define raw_spin_unlock(lock) _raw_spin_unlock(lock)
-#define raw_spin_unlock_irq(lock) _raw_spin_unlock_irq(lock)
-
-#define raw_spin_unlock_irqrestore(lock, flags) \
- do { \
- typecheck(unsigned long, flags); \
- _raw_spin_unlock_irqrestore(lock, flags); \
- } while (0)
-#define raw_spin_unlock_bh(lock) _raw_spin_unlock_bh(lock)
-
-#define raw_spin_trylock_bh(lock) \
- __cond_lock(lock, _raw_spin_trylock_bh(lock))
-
-#define raw_spin_trylock_irq(lock) \
-({ \
- local_irq_disable(); \
- raw_spin_trylock(lock) ? \
- 1 : ({ local_irq_enable(); 0; }); \
-})
-
-#define raw_spin_trylock_irqsave(lock, flags) \
-({ \
- local_irq_save(flags); \
- raw_spin_trylock(lock) ? \
- 1 : ({ local_irq_restore(flags); 0; }); \
-})
-
-/**
- * raw_spin_can_lock - would raw_spin_trylock() succeed?
- * @lock: the spinlock in question.
- */
-#define raw_spin_can_lock(lock) (!raw_spin_is_locked(lock))
-
-/* Include rwlock functions */
-#include <linux/rwlock.h>
-
-/*
- * Pull the _spin_*()/_read_*()/_write_*() functions/declarations:
- */
-#if defined(CONFIG_SMP) || defined(CONFIG_DEBUG_SPINLOCK)
-# include <linux/spinlock_api_smp.h>
-#else
-# include <linux/spinlock_api_up.h>
-#endif
-
-/*
- * Map the spin_lock functions to the raw variants for PREEMPT_RT=n
- */
-
-static inline raw_spinlock_t *spinlock_check(spinlock_t *lock)
-{
- return &lock->rlock;
-}
-
-#define spin_lock_init(_lock) \
-do { \
- spinlock_check(_lock); \
- raw_spin_lock_init(&(_lock)->rlock); \
-} while (0)
-
-static inline void spin_lock(spinlock_t *lock)
-{
- raw_spin_lock(&lock->rlock);
-}
-
-static inline void spin_lock_bh(spinlock_t *lock)
-{
- raw_spin_lock_bh(&lock->rlock);
-}
-
-static inline int spin_trylock(spinlock_t *lock)
-{
- return raw_spin_trylock(&lock->rlock);
-}
-
-#define spin_lock_nested(lock, subclass) \
-do { \
- raw_spin_lock_nested(spinlock_check(lock), subclass); \
-} while (0)
-
-#define spin_lock_nest_lock(lock, nest_lock) \
-do { \
- raw_spin_lock_nest_lock(spinlock_check(lock), nest_lock); \
-} while (0)
-
-static inline void spin_lock_irq(spinlock_t *lock)
-{
- raw_spin_lock_irq(&lock->rlock);
-}
-
-#define spin_lock_irqsave(lock, flags) \
-do { \
- raw_spin_lock_irqsave(spinlock_check(lock), flags); \
-} while (0)
-
-#define spin_lock_irqsave_nested(lock, flags, subclass) \
-do { \
- raw_spin_lock_irqsave_nested(spinlock_check(lock), flags, subclass); \
-} while (0)
-
-static inline void spin_unlock(spinlock_t *lock)
-{
- raw_spin_unlock(&lock->rlock);
-}
-
-static inline void spin_unlock_bh(spinlock_t *lock)
-{
- raw_spin_unlock_bh(&lock->rlock);
-}
-
-static inline void spin_unlock_irq(spinlock_t *lock)
-{
- raw_spin_unlock_irq(&lock->rlock);
-}
-
-static inline void spin_unlock_irqrestore(spinlock_t *lock, unsigned long flags)
-{
- raw_spin_unlock_irqrestore(&lock->rlock, flags);
-}
-
-static inline int spin_trylock_bh(spinlock_t *lock)
-{
- return raw_spin_trylock_bh(&lock->rlock);
-}
-
-static inline int spin_trylock_irq(spinlock_t *lock)
-{
- return raw_spin_trylock_irq(&lock->rlock);
-}
-
-#define spin_trylock_irqsave(lock, flags) \
-({ \
- raw_spin_trylock_irqsave(spinlock_check(lock), flags); \
-})
-
-static inline void spin_unlock_wait(spinlock_t *lock)
-{
- raw_spin_unlock_wait(&lock->rlock);
-}
-
-static inline int spin_is_locked(spinlock_t *lock)
-{
- return raw_spin_is_locked(&lock->rlock);
-}
-
-static inline int spin_is_contended(spinlock_t *lock)
-{
- return raw_spin_is_contended(&lock->rlock);
-}
-
-static inline int spin_can_lock(spinlock_t *lock)
-{
- return raw_spin_can_lock(&lock->rlock);
-}
-
-#define assert_spin_locked(lock) assert_raw_spin_locked(&(lock)->rlock)
-
-/*
- * Pull the atomic_t declaration:
- * (asm-mips/atomic.h needs above definitions)
- */
-#include <linux/atomic.h>
-/**
- * atomic_dec_and_lock - lock on reaching reference count zero
- * @atomic: the atomic counter
- * @lock: the spinlock in question
- *
- * Decrements @atomic by 1. If the result is 0, returns true and locks
- * @lock. Returns false for all other cases.
- */
-extern int _atomic_dec_and_lock(atomic_t *atomic, spinlock_t *lock);
-#define atomic_dec_and_lock(atomic, lock) \
- __cond_lock(lock, _atomic_dec_and_lock(atomic, lock))
-
-#endif /* __LINUX_SPINLOCK_H */
diff --git a/ANDROID_3.4.5/include/linux/spinlock_api_smp.h b/ANDROID_3.4.5/include/linux/spinlock_api_smp.h
deleted file mode 100644
index 51df117a..00000000
--- a/ANDROID_3.4.5/include/linux/spinlock_api_smp.h
+++ /dev/null
@@ -1,196 +0,0 @@
-#ifndef __LINUX_SPINLOCK_API_SMP_H
-#define __LINUX_SPINLOCK_API_SMP_H
-
-#ifndef __LINUX_SPINLOCK_H
-# error "please don't include this file directly"
-#endif
-
-/*
- * include/linux/spinlock_api_smp.h
- *
- * spinlock API declarations on SMP (and debug)
- * (implemented in kernel/spinlock.c)
- *
- * portions Copyright 2005, Red Hat, Inc., Ingo Molnar
- * Released under the General Public License (GPL).
- */
-
-int in_lock_functions(unsigned long addr);
-
-#define assert_raw_spin_locked(x) BUG_ON(!raw_spin_is_locked(x))
-
-void __lockfunc _raw_spin_lock(raw_spinlock_t *lock) __acquires(lock);
-void __lockfunc _raw_spin_lock_nested(raw_spinlock_t *lock, int subclass)
- __acquires(lock);
-void __lockfunc
-_raw_spin_lock_nest_lock(raw_spinlock_t *lock, struct lockdep_map *map)
- __acquires(lock);
-void __lockfunc _raw_spin_lock_bh(raw_spinlock_t *lock) __acquires(lock);
-void __lockfunc _raw_spin_lock_irq(raw_spinlock_t *lock)
- __acquires(lock);
-
-unsigned long __lockfunc _raw_spin_lock_irqsave(raw_spinlock_t *lock)
- __acquires(lock);
-unsigned long __lockfunc
-_raw_spin_lock_irqsave_nested(raw_spinlock_t *lock, int subclass)
- __acquires(lock);
-int __lockfunc _raw_spin_trylock(raw_spinlock_t *lock);
-int __lockfunc _raw_spin_trylock_bh(raw_spinlock_t *lock);
-void __lockfunc _raw_spin_unlock(raw_spinlock_t *lock) __releases(lock);
-void __lockfunc _raw_spin_unlock_bh(raw_spinlock_t *lock) __releases(lock);
-void __lockfunc _raw_spin_unlock_irq(raw_spinlock_t *lock) __releases(lock);
-void __lockfunc
-_raw_spin_unlock_irqrestore(raw_spinlock_t *lock, unsigned long flags)
- __releases(lock);
-
-#ifdef CONFIG_INLINE_SPIN_LOCK
-#define _raw_spin_lock(lock) __raw_spin_lock(lock)
-#endif
-
-#ifdef CONFIG_INLINE_SPIN_LOCK_BH
-#define _raw_spin_lock_bh(lock) __raw_spin_lock_bh(lock)
-#endif
-
-#ifdef CONFIG_INLINE_SPIN_LOCK_IRQ
-#define _raw_spin_lock_irq(lock) __raw_spin_lock_irq(lock)
-#endif
-
-#ifdef CONFIG_INLINE_SPIN_LOCK_IRQSAVE
-#define _raw_spin_lock_irqsave(lock) __raw_spin_lock_irqsave(lock)
-#endif
-
-#ifdef CONFIG_INLINE_SPIN_TRYLOCK
-#define _raw_spin_trylock(lock) __raw_spin_trylock(lock)
-#endif
-
-#ifdef CONFIG_INLINE_SPIN_TRYLOCK_BH
-#define _raw_spin_trylock_bh(lock) __raw_spin_trylock_bh(lock)
-#endif
-
-#ifndef CONFIG_UNINLINE_SPIN_UNLOCK
-#define _raw_spin_unlock(lock) __raw_spin_unlock(lock)
-#endif
-
-#ifdef CONFIG_INLINE_SPIN_UNLOCK_BH
-#define _raw_spin_unlock_bh(lock) __raw_spin_unlock_bh(lock)
-#endif
-
-#ifdef CONFIG_INLINE_SPIN_UNLOCK_IRQ
-#define _raw_spin_unlock_irq(lock) __raw_spin_unlock_irq(lock)
-#endif
-
-#ifdef CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE
-#define _raw_spin_unlock_irqrestore(lock, flags) __raw_spin_unlock_irqrestore(lock, flags)
-#endif
-
-static inline int __raw_spin_trylock(raw_spinlock_t *lock)
-{
- preempt_disable();
- if (do_raw_spin_trylock(lock)) {
- spin_acquire(&lock->dep_map, 0, 1, _RET_IP_);
- return 1;
- }
- preempt_enable();
- return 0;
-}
-
-/*
- * If lockdep is enabled then we use the non-preemption spin-ops
- * even on CONFIG_PREEMPT, because lockdep assumes that interrupts are
- * not re-enabled during lock-acquire (which the preempt-spin-ops do):
- */
-#if !defined(CONFIG_GENERIC_LOCKBREAK) || defined(CONFIG_DEBUG_LOCK_ALLOC)
-
-static inline unsigned long __raw_spin_lock_irqsave(raw_spinlock_t *lock)
-{
- unsigned long flags;
-
- local_irq_save(flags);
- preempt_disable();
- spin_acquire(&lock->dep_map, 0, 0, _RET_IP_);
- /*
- * On lockdep we dont want the hand-coded irq-enable of
- * do_raw_spin_lock_flags() code, because lockdep assumes
- * that interrupts are not re-enabled during lock-acquire:
- */
-#ifdef CONFIG_LOCKDEP
- LOCK_CONTENDED(lock, do_raw_spin_trylock, do_raw_spin_lock);
-#else
- do_raw_spin_lock_flags(lock, &flags);
-#endif
- return flags;
-}
-
-static inline void __raw_spin_lock_irq(raw_spinlock_t *lock)
-{
- local_irq_disable();
- preempt_disable();
- spin_acquire(&lock->dep_map, 0, 0, _RET_IP_);
- LOCK_CONTENDED(lock, do_raw_spin_trylock, do_raw_spin_lock);
-}
-
-static inline void __raw_spin_lock_bh(raw_spinlock_t *lock)
-{
- local_bh_disable();
- preempt_disable();
- spin_acquire(&lock->dep_map, 0, 0, _RET_IP_);
- LOCK_CONTENDED(lock, do_raw_spin_trylock, do_raw_spin_lock);
-}
-
-static inline void __raw_spin_lock(raw_spinlock_t *lock)
-{
- preempt_disable();
- spin_acquire(&lock->dep_map, 0, 0, _RET_IP_);
- LOCK_CONTENDED(lock, do_raw_spin_trylock, do_raw_spin_lock);
-}
-
-#endif /* CONFIG_PREEMPT */
-
-static inline void __raw_spin_unlock(raw_spinlock_t *lock)
-{
- spin_release(&lock->dep_map, 1, _RET_IP_);
- do_raw_spin_unlock(lock);
- preempt_enable();
-}
-
-static inline void __raw_spin_unlock_irqrestore(raw_spinlock_t *lock,
- unsigned long flags)
-{
- spin_release(&lock->dep_map, 1, _RET_IP_);
- do_raw_spin_unlock(lock);
- local_irq_restore(flags);
- preempt_enable();
-}
-
-static inline void __raw_spin_unlock_irq(raw_spinlock_t *lock)
-{
- spin_release(&lock->dep_map, 1, _RET_IP_);
- do_raw_spin_unlock(lock);
- local_irq_enable();
- preempt_enable();
-}
-
-static inline void __raw_spin_unlock_bh(raw_spinlock_t *lock)
-{
- spin_release(&lock->dep_map, 1, _RET_IP_);
- do_raw_spin_unlock(lock);
- preempt_enable_no_resched();
- local_bh_enable_ip((unsigned long)__builtin_return_address(0));
-}
-
-static inline int __raw_spin_trylock_bh(raw_spinlock_t *lock)
-{
- local_bh_disable();
- preempt_disable();
- if (do_raw_spin_trylock(lock)) {
- spin_acquire(&lock->dep_map, 0, 1, _RET_IP_);
- return 1;
- }
- preempt_enable_no_resched();
- local_bh_enable_ip((unsigned long)__builtin_return_address(0));
- return 0;
-}
-
-#include <linux/rwlock_api_smp.h>
-
-#endif /* __LINUX_SPINLOCK_API_SMP_H */
diff --git a/ANDROID_3.4.5/include/linux/spinlock_api_up.h b/ANDROID_3.4.5/include/linux/spinlock_api_up.h
deleted file mode 100644
index af1f4722..00000000
--- a/ANDROID_3.4.5/include/linux/spinlock_api_up.h
+++ /dev/null
@@ -1,85 +0,0 @@
-#ifndef __LINUX_SPINLOCK_API_UP_H
-#define __LINUX_SPINLOCK_API_UP_H
-
-#ifndef __LINUX_SPINLOCK_H
-# error "please don't include this file directly"
-#endif
-
-/*
- * include/linux/spinlock_api_up.h
- *
- * spinlock API implementation on UP-nondebug (inlined implementation)
- *
- * portions Copyright 2005, Red Hat, Inc., Ingo Molnar
- * Released under the General Public License (GPL).
- */
-
-#define in_lock_functions(ADDR) 0
-
-#define assert_raw_spin_locked(lock) do { (void)(lock); } while (0)
-
-/*
- * In the UP-nondebug case there's no real locking going on, so the
- * only thing we have to do is to keep the preempt counts and irq
- * flags straight, to suppress compiler warnings of unused lock
- * variables, and to add the proper checker annotations:
- */
-#define __LOCK(lock) \
- do { preempt_disable(); __acquire(lock); (void)(lock); } while (0)
-
-#define __LOCK_BH(lock) \
- do { local_bh_disable(); __LOCK(lock); } while (0)
-
-#define __LOCK_IRQ(lock) \
- do { local_irq_disable(); __LOCK(lock); } while (0)
-
-#define __LOCK_IRQSAVE(lock, flags) \
- do { local_irq_save(flags); __LOCK(lock); } while (0)
-
-#define __UNLOCK(lock) \
- do { preempt_enable(); __release(lock); (void)(lock); } while (0)
-
-#define __UNLOCK_BH(lock) \
- do { preempt_enable_no_resched(); local_bh_enable(); \
- __release(lock); (void)(lock); } while (0)
-
-#define __UNLOCK_IRQ(lock) \
- do { local_irq_enable(); __UNLOCK(lock); } while (0)
-
-#define __UNLOCK_IRQRESTORE(lock, flags) \
- do { local_irq_restore(flags); __UNLOCK(lock); } while (0)
-
-#define _raw_spin_lock(lock) __LOCK(lock)
-#define _raw_spin_lock_nested(lock, subclass) __LOCK(lock)
-#define _raw_read_lock(lock) __LOCK(lock)
-#define _raw_write_lock(lock) __LOCK(lock)
-#define _raw_spin_lock_bh(lock) __LOCK_BH(lock)
-#define _raw_read_lock_bh(lock) __LOCK_BH(lock)
-#define _raw_write_lock_bh(lock) __LOCK_BH(lock)
-#define _raw_spin_lock_irq(lock) __LOCK_IRQ(lock)
-#define _raw_read_lock_irq(lock) __LOCK_IRQ(lock)
-#define _raw_write_lock_irq(lock) __LOCK_IRQ(lock)
-#define _raw_spin_lock_irqsave(lock, flags) __LOCK_IRQSAVE(lock, flags)
-#define _raw_read_lock_irqsave(lock, flags) __LOCK_IRQSAVE(lock, flags)
-#define _raw_write_lock_irqsave(lock, flags) __LOCK_IRQSAVE(lock, flags)
-#define _raw_spin_trylock(lock) ({ __LOCK(lock); 1; })
-#define _raw_read_trylock(lock) ({ __LOCK(lock); 1; })
-#define _raw_write_trylock(lock) ({ __LOCK(lock); 1; })
-#define _raw_spin_trylock_bh(lock) ({ __LOCK_BH(lock); 1; })
-#define _raw_spin_unlock(lock) __UNLOCK(lock)
-#define _raw_read_unlock(lock) __UNLOCK(lock)
-#define _raw_write_unlock(lock) __UNLOCK(lock)
-#define _raw_spin_unlock_bh(lock) __UNLOCK_BH(lock)
-#define _raw_write_unlock_bh(lock) __UNLOCK_BH(lock)
-#define _raw_read_unlock_bh(lock) __UNLOCK_BH(lock)
-#define _raw_spin_unlock_irq(lock) __UNLOCK_IRQ(lock)
-#define _raw_read_unlock_irq(lock) __UNLOCK_IRQ(lock)
-#define _raw_write_unlock_irq(lock) __UNLOCK_IRQ(lock)
-#define _raw_spin_unlock_irqrestore(lock, flags) \
- __UNLOCK_IRQRESTORE(lock, flags)
-#define _raw_read_unlock_irqrestore(lock, flags) \
- __UNLOCK_IRQRESTORE(lock, flags)
-#define _raw_write_unlock_irqrestore(lock, flags) \
- __UNLOCK_IRQRESTORE(lock, flags)
-
-#endif /* __LINUX_SPINLOCK_API_UP_H */
diff --git a/ANDROID_3.4.5/include/linux/spinlock_types.h b/ANDROID_3.4.5/include/linux/spinlock_types.h
deleted file mode 100644
index 73548eb1..00000000
--- a/ANDROID_3.4.5/include/linux/spinlock_types.h
+++ /dev/null
@@ -1,88 +0,0 @@
-#ifndef __LINUX_SPINLOCK_TYPES_H
-#define __LINUX_SPINLOCK_TYPES_H
-
-/*
- * include/linux/spinlock_types.h - generic spinlock type definitions
- * and initializers
- *
- * portions Copyright 2005, Red Hat, Inc., Ingo Molnar
- * Released under the General Public License (GPL).
- */
-
-#if defined(CONFIG_SMP)
-# include <asm/spinlock_types.h>
-#else
-# include <linux/spinlock_types_up.h>
-#endif
-
-#include <linux/lockdep.h>
-
-typedef struct raw_spinlock {
- arch_spinlock_t raw_lock;
-#ifdef CONFIG_GENERIC_LOCKBREAK
- unsigned int break_lock;
-#endif
-#ifdef CONFIG_DEBUG_SPINLOCK
- unsigned int magic, owner_cpu;
- void *owner;
-#endif
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
- struct lockdep_map dep_map;
-#endif
-} raw_spinlock_t;
-
-#define SPINLOCK_MAGIC 0xdead4ead
-
-#define SPINLOCK_OWNER_INIT ((void *)-1L)
-
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
-# define SPIN_DEP_MAP_INIT(lockname) .dep_map = { .name = #lockname }
-#else
-# define SPIN_DEP_MAP_INIT(lockname)
-#endif
-
-#ifdef CONFIG_DEBUG_SPINLOCK
-# define SPIN_DEBUG_INIT(lockname) \
- .magic = SPINLOCK_MAGIC, \
- .owner_cpu = -1, \
- .owner = SPINLOCK_OWNER_INIT,
-#else
-# define SPIN_DEBUG_INIT(lockname)
-#endif
-
-#define __RAW_SPIN_LOCK_INITIALIZER(lockname) \
- { \
- .raw_lock = __ARCH_SPIN_LOCK_UNLOCKED, \
- SPIN_DEBUG_INIT(lockname) \
- SPIN_DEP_MAP_INIT(lockname) }
-
-#define __RAW_SPIN_LOCK_UNLOCKED(lockname) \
- (raw_spinlock_t) __RAW_SPIN_LOCK_INITIALIZER(lockname)
-
-#define DEFINE_RAW_SPINLOCK(x) raw_spinlock_t x = __RAW_SPIN_LOCK_UNLOCKED(x)
-
-typedef struct spinlock {
- union {
- struct raw_spinlock rlock;
-
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
-# define LOCK_PADSIZE (offsetof(struct raw_spinlock, dep_map))
- struct {
- u8 __padding[LOCK_PADSIZE];
- struct lockdep_map dep_map;
- };
-#endif
- };
-} spinlock_t;
-
-#define __SPIN_LOCK_INITIALIZER(lockname) \
- { { .rlock = __RAW_SPIN_LOCK_INITIALIZER(lockname) } }
-
-#define __SPIN_LOCK_UNLOCKED(lockname) \
- (spinlock_t ) __SPIN_LOCK_INITIALIZER(lockname)
-
-#define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x)
-
-#include <linux/rwlock_types.h>
-
-#endif /* __LINUX_SPINLOCK_TYPES_H */
diff --git a/ANDROID_3.4.5/include/linux/spinlock_types_up.h b/ANDROID_3.4.5/include/linux/spinlock_types_up.h
deleted file mode 100644
index c09b6407..00000000
--- a/ANDROID_3.4.5/include/linux/spinlock_types_up.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef __LINUX_SPINLOCK_TYPES_UP_H
-#define __LINUX_SPINLOCK_TYPES_UP_H
-
-#ifndef __LINUX_SPINLOCK_TYPES_H
-# error "please don't include this file directly"
-#endif
-
-/*
- * include/linux/spinlock_types_up.h - spinlock type definitions for UP
- *
- * portions Copyright 2005, Red Hat, Inc., Ingo Molnar
- * Released under the General Public License (GPL).
- */
-
-#ifdef CONFIG_DEBUG_SPINLOCK
-
-typedef struct {
- volatile unsigned int slock;
-} arch_spinlock_t;
-
-#define __ARCH_SPIN_LOCK_UNLOCKED { 1 }
-
-#else
-
-typedef struct { } arch_spinlock_t;
-
-#define __ARCH_SPIN_LOCK_UNLOCKED { }
-
-#endif
-
-typedef struct {
- /* no debug version on UP */
-} arch_rwlock_t;
-
-#define __ARCH_RW_LOCK_UNLOCKED { }
-
-#endif /* __LINUX_SPINLOCK_TYPES_UP_H */
diff --git a/ANDROID_3.4.5/include/linux/spinlock_up.h b/ANDROID_3.4.5/include/linux/spinlock_up.h
deleted file mode 100644
index a26e2fb6..00000000
--- a/ANDROID_3.4.5/include/linux/spinlock_up.h
+++ /dev/null
@@ -1,78 +0,0 @@
-#ifndef __LINUX_SPINLOCK_UP_H
-#define __LINUX_SPINLOCK_UP_H
-
-#ifndef __LINUX_SPINLOCK_H
-# error "please don't include this file directly"
-#endif
-
-#include <asm/processor.h> /* for cpu_relax() */
-
-/*
- * include/linux/spinlock_up.h - UP-debug version of spinlocks.
- *
- * portions Copyright 2005, Red Hat, Inc., Ingo Molnar
- * Released under the General Public License (GPL).
- *
- * In the debug case, 1 means unlocked, 0 means locked. (the values
- * are inverted, to catch initialization bugs)
- *
- * No atomicity anywhere, we are on UP.
- */
-
-#ifdef CONFIG_DEBUG_SPINLOCK
-#define arch_spin_is_locked(x) ((x)->slock == 0)
-
-static inline void arch_spin_lock(arch_spinlock_t *lock)
-{
- lock->slock = 0;
-}
-
-static inline void
-arch_spin_lock_flags(arch_spinlock_t *lock, unsigned long flags)
-{
- local_irq_save(flags);
- lock->slock = 0;
-}
-
-static inline int arch_spin_trylock(arch_spinlock_t *lock)
-{
- char oldval = lock->slock;
-
- lock->slock = 0;
-
- return oldval > 0;
-}
-
-static inline void arch_spin_unlock(arch_spinlock_t *lock)
-{
- lock->slock = 1;
-}
-
-/*
- * Read-write spinlocks. No debug version.
- */
-#define arch_read_lock(lock) do { (void)(lock); } while (0)
-#define arch_write_lock(lock) do { (void)(lock); } while (0)
-#define arch_read_trylock(lock) ({ (void)(lock); 1; })
-#define arch_write_trylock(lock) ({ (void)(lock); 1; })
-#define arch_read_unlock(lock) do { (void)(lock); } while (0)
-#define arch_write_unlock(lock) do { (void)(lock); } while (0)
-
-#else /* DEBUG_SPINLOCK */
-#define arch_spin_is_locked(lock) ((void)(lock), 0)
-/* for sched.c and kernel_lock.c: */
-# define arch_spin_lock(lock) do { (void)(lock); } while (0)
-# define arch_spin_lock_flags(lock, flags) do { (void)(lock); } while (0)
-# define arch_spin_unlock(lock) do { (void)(lock); } while (0)
-# define arch_spin_trylock(lock) ({ (void)(lock); 1; })
-#endif /* DEBUG_SPINLOCK */
-
-#define arch_spin_is_contended(lock) (((void)(lock), 0))
-
-#define arch_read_can_lock(lock) (((void)(lock), 1))
-#define arch_write_can_lock(lock) (((void)(lock), 1))
-
-#define arch_spin_unlock_wait(lock) \
- do { cpu_relax(); } while (arch_spin_is_locked(lock))
-
-#endif /* __LINUX_SPINLOCK_UP_H */
diff --git a/ANDROID_3.4.5/include/linux/splice.h b/ANDROID_3.4.5/include/linux/splice.h
deleted file mode 100644
index 09a545a7..00000000
--- a/ANDROID_3.4.5/include/linux/splice.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Function declerations and data structures related to the splice
- * implementation.
- *
- * Copyright (C) 2007 Jens Axboe <jens.axboe@oracle.com>
- *
- */
-#ifndef SPLICE_H
-#define SPLICE_H
-
-#include <linux/pipe_fs_i.h>
-
-/*
- * Flags passed in from splice/tee/vmsplice
- */
-#define SPLICE_F_MOVE (0x01) /* move pages instead of copying */
-#define SPLICE_F_NONBLOCK (0x02) /* don't block on the pipe splicing (but */
- /* we may still block on the fd we splice */
- /* from/to, of course */
-#define SPLICE_F_MORE (0x04) /* expect more data */
-#define SPLICE_F_GIFT (0x08) /* pages passed in are a gift */
-
-/*
- * Passed to the actors
- */
-struct splice_desc {
- unsigned int len, total_len; /* current and remaining length */
- unsigned int flags; /* splice flags */
- /*
- * actor() private data
- */
- union {
- void __user *userptr; /* memory to write to */
- struct file *file; /* file to read/write */
- void *data; /* cookie */
- } u;
- loff_t pos; /* file position */
- size_t num_spliced; /* number of bytes already spliced */
- bool need_wakeup; /* need to wake up writer */
-};
-
-struct partial_page {
- unsigned int offset;
- unsigned int len;
- unsigned long private;
-};
-
-/*
- * Passed to splice_to_pipe
- */
-struct splice_pipe_desc {
- struct page **pages; /* page map */
- struct partial_page *partial; /* pages[] may not be contig */
- int nr_pages; /* number of populated pages in map */
- unsigned int nr_pages_max; /* pages[] & partial[] arrays size */
- unsigned int flags; /* splice flags */
- const struct pipe_buf_operations *ops;/* ops associated with output pipe */
- void (*spd_release)(struct splice_pipe_desc *, unsigned int);
-};
-
-typedef int (splice_actor)(struct pipe_inode_info *, struct pipe_buffer *,
- struct splice_desc *);
-typedef int (splice_direct_actor)(struct pipe_inode_info *,
- struct splice_desc *);
-
-extern ssize_t splice_from_pipe(struct pipe_inode_info *, struct file *,
- loff_t *, size_t, unsigned int,
- splice_actor *);
-extern ssize_t __splice_from_pipe(struct pipe_inode_info *,
- struct splice_desc *, splice_actor *);
-extern int splice_from_pipe_feed(struct pipe_inode_info *, struct splice_desc *,
- splice_actor *);
-extern int splice_from_pipe_next(struct pipe_inode_info *,
- struct splice_desc *);
-extern void splice_from_pipe_begin(struct splice_desc *);
-extern void splice_from_pipe_end(struct pipe_inode_info *,
- struct splice_desc *);
-extern int pipe_to_file(struct pipe_inode_info *, struct pipe_buffer *,
- struct splice_desc *);
-
-extern ssize_t splice_to_pipe(struct pipe_inode_info *,
- struct splice_pipe_desc *);
-extern ssize_t splice_direct_to_actor(struct file *, struct splice_desc *,
- splice_direct_actor *);
-
-/*
- * for dynamic pipe sizing
- */
-extern int splice_grow_spd(const struct pipe_inode_info *, struct splice_pipe_desc *);
-extern void splice_shrink_spd(struct splice_pipe_desc *);
-extern void spd_release_page(struct splice_pipe_desc *, unsigned int);
-
-extern const struct pipe_buf_operations page_cache_pipe_buf_ops;
-#endif
diff --git a/ANDROID_3.4.5/include/linux/srcu.h b/ANDROID_3.4.5/include/linux/srcu.h
deleted file mode 100644
index d3d5fa54..00000000
--- a/ANDROID_3.4.5/include/linux/srcu.h
+++ /dev/null
@@ -1,239 +0,0 @@
-/*
- * Sleepable Read-Copy Update mechanism for mutual exclusion
- *
- * 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.
- *
- * Copyright (C) IBM Corporation, 2006
- *
- * Author: Paul McKenney <paulmck@us.ibm.com>
- *
- * For detailed explanation of Read-Copy Update mechanism see -
- * Documentation/RCU/ *.txt
- *
- */
-
-#ifndef _LINUX_SRCU_H
-#define _LINUX_SRCU_H
-
-#include <linux/mutex.h>
-#include <linux/rcupdate.h>
-
-struct srcu_struct_array {
- int c[2];
-};
-
-struct srcu_struct {
- int completed;
- struct srcu_struct_array __percpu *per_cpu_ref;
- struct mutex mutex;
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
- struct lockdep_map dep_map;
-#endif /* #ifdef CONFIG_DEBUG_LOCK_ALLOC */
-};
-
-#ifndef CONFIG_PREEMPT
-#define srcu_barrier() barrier()
-#else /* #ifndef CONFIG_PREEMPT */
-#define srcu_barrier()
-#endif /* #else #ifndef CONFIG_PREEMPT */
-
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
-
-int __init_srcu_struct(struct srcu_struct *sp, const char *name,
- struct lock_class_key *key);
-
-#define init_srcu_struct(sp) \
-({ \
- static struct lock_class_key __srcu_key; \
- \
- __init_srcu_struct((sp), #sp, &__srcu_key); \
-})
-
-#else /* #ifdef CONFIG_DEBUG_LOCK_ALLOC */
-
-int init_srcu_struct(struct srcu_struct *sp);
-
-#endif /* #else #ifdef CONFIG_DEBUG_LOCK_ALLOC */
-
-void cleanup_srcu_struct(struct srcu_struct *sp);
-int __srcu_read_lock(struct srcu_struct *sp) __acquires(sp);
-void __srcu_read_unlock(struct srcu_struct *sp, int idx) __releases(sp);
-void synchronize_srcu(struct srcu_struct *sp);
-void synchronize_srcu_expedited(struct srcu_struct *sp);
-long srcu_batches_completed(struct srcu_struct *sp);
-
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
-
-/**
- * srcu_read_lock_held - might we be in SRCU read-side critical section?
- *
- * If CONFIG_DEBUG_LOCK_ALLOC is selected, returns nonzero iff in an SRCU
- * read-side critical section. In absence of CONFIG_DEBUG_LOCK_ALLOC,
- * this assumes we are in an SRCU read-side critical section unless it can
- * prove otherwise.
- *
- * Checks debug_lockdep_rcu_enabled() to prevent false positives during boot
- * and while lockdep is disabled.
- *
- * Note that if the CPU is in the idle loop from an RCU point of view
- * (ie: that we are in the section between rcu_idle_enter() and
- * rcu_idle_exit()) then srcu_read_lock_held() returns false even if
- * the CPU did an srcu_read_lock(). The reason for this is that RCU
- * ignores CPUs that are in such a section, considering these as in
- * extended quiescent state, so such a CPU is effectively never in an
- * RCU read-side critical section regardless of what RCU primitives it
- * invokes. This state of affairs is required --- we need to keep an
- * RCU-free window in idle where the CPU may possibly enter into low
- * power mode. This way we can notice an extended quiescent state to
- * other CPUs that started a grace period. Otherwise we would delay any
- * grace period as long as we run in the idle task.
- *
- * Similarly, we avoid claiming an SRCU read lock held if the current
- * CPU is offline.
- */
-static inline int srcu_read_lock_held(struct srcu_struct *sp)
-{
- if (!debug_lockdep_rcu_enabled())
- return 1;
- if (rcu_is_cpu_idle())
- return 0;
- if (!rcu_lockdep_current_cpu_online())
- return 0;
- return lock_is_held(&sp->dep_map);
-}
-
-#else /* #ifdef CONFIG_DEBUG_LOCK_ALLOC */
-
-static inline int srcu_read_lock_held(struct srcu_struct *sp)
-{
- return 1;
-}
-
-#endif /* #else #ifdef CONFIG_DEBUG_LOCK_ALLOC */
-
-/**
- * srcu_dereference_check - fetch SRCU-protected pointer for later dereferencing
- * @p: the pointer to fetch and protect for later dereferencing
- * @sp: pointer to the srcu_struct, which is used to check that we
- * really are in an SRCU read-side critical section.
- * @c: condition to check for update-side use
- *
- * If PROVE_RCU is enabled, invoking this outside of an RCU read-side
- * critical section will result in an RCU-lockdep splat, unless @c evaluates
- * to 1. The @c argument will normally be a logical expression containing
- * lockdep_is_held() calls.
- */
-#define srcu_dereference_check(p, sp, c) \
- __rcu_dereference_check((p), srcu_read_lock_held(sp) || (c), __rcu)
-
-/**
- * srcu_dereference - fetch SRCU-protected pointer for later dereferencing
- * @p: the pointer to fetch and protect for later dereferencing
- * @sp: pointer to the srcu_struct, which is used to check that we
- * really are in an SRCU read-side critical section.
- *
- * Makes rcu_dereference_check() do the dirty work. If PROVE_RCU
- * is enabled, invoking this outside of an RCU read-side critical
- * section will result in an RCU-lockdep splat.
- */
-#define srcu_dereference(p, sp) srcu_dereference_check((p), (sp), 0)
-
-/**
- * srcu_read_lock - register a new reader for an SRCU-protected structure.
- * @sp: srcu_struct in which to register the new reader.
- *
- * Enter an SRCU read-side critical section. Note that SRCU read-side
- * critical sections may be nested. However, it is illegal to
- * call anything that waits on an SRCU grace period for the same
- * srcu_struct, whether directly or indirectly. Please note that
- * one way to indirectly wait on an SRCU grace period is to acquire
- * a mutex that is held elsewhere while calling synchronize_srcu() or
- * synchronize_srcu_expedited().
- *
- * Note that srcu_read_lock() and the matching srcu_read_unlock() must
- * occur in the same context, for example, it is illegal to invoke
- * srcu_read_unlock() in an irq handler if the matching srcu_read_lock()
- * was invoked in process context.
- */
-static inline int srcu_read_lock(struct srcu_struct *sp) __acquires(sp)
-{
- int retval = __srcu_read_lock(sp);
-
- rcu_lock_acquire(&(sp)->dep_map);
- rcu_lockdep_assert(!rcu_is_cpu_idle(),
- "srcu_read_lock() used illegally while idle");
- return retval;
-}
-
-/**
- * srcu_read_unlock - unregister a old reader from an SRCU-protected structure.
- * @sp: srcu_struct in which to unregister the old reader.
- * @idx: return value from corresponding srcu_read_lock().
- *
- * Exit an SRCU read-side critical section.
- */
-static inline void srcu_read_unlock(struct srcu_struct *sp, int idx)
- __releases(sp)
-{
- rcu_lockdep_assert(!rcu_is_cpu_idle(),
- "srcu_read_unlock() used illegally while idle");
- rcu_lock_release(&(sp)->dep_map);
- __srcu_read_unlock(sp, idx);
-}
-
-/**
- * srcu_read_lock_raw - register a new reader for an SRCU-protected structure.
- * @sp: srcu_struct in which to register the new reader.
- *
- * Enter an SRCU read-side critical section. Similar to srcu_read_lock(),
- * but avoids the RCU-lockdep checking. This means that it is legal to
- * use srcu_read_lock_raw() in one context, for example, in an exception
- * handler, and then have the matching srcu_read_unlock_raw() in another
- * context, for example in the task that took the exception.
- *
- * However, the entire SRCU read-side critical section must reside within a
- * single task. For example, beware of using srcu_read_lock_raw() in
- * a device interrupt handler and srcu_read_unlock() in the interrupted
- * task: This will not work if interrupts are threaded.
- */
-static inline int srcu_read_lock_raw(struct srcu_struct *sp)
-{
- unsigned long flags;
- int ret;
-
- local_irq_save(flags);
- ret = __srcu_read_lock(sp);
- local_irq_restore(flags);
- return ret;
-}
-
-/**
- * srcu_read_unlock_raw - unregister reader from an SRCU-protected structure.
- * @sp: srcu_struct in which to unregister the old reader.
- * @idx: return value from corresponding srcu_read_lock_raw().
- *
- * Exit an SRCU read-side critical section without lockdep-RCU checking.
- * See srcu_read_lock_raw() for more details.
- */
-static inline void srcu_read_unlock_raw(struct srcu_struct *sp, int idx)
-{
- unsigned long flags;
-
- local_irq_save(flags);
- __srcu_read_unlock(sp, idx);
- local_irq_restore(flags);
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ssb/ssb.h b/ANDROID_3.4.5/include/linux/ssb/ssb.h
deleted file mode 100644
index d2768318..00000000
--- a/ANDROID_3.4.5/include/linux/ssb/ssb.h
+++ /dev/null
@@ -1,625 +0,0 @@
-#ifndef LINUX_SSB_H_
-#define LINUX_SSB_H_
-
-#include <linux/device.h>
-#include <linux/list.h>
-#include <linux/types.h>
-#include <linux/spinlock.h>
-#include <linux/pci.h>
-#include <linux/mod_devicetable.h>
-#include <linux/dma-mapping.h>
-
-#include <linux/ssb/ssb_regs.h>
-
-
-struct pcmcia_device;
-struct ssb_bus;
-struct ssb_driver;
-
-struct ssb_sprom_core_pwr_info {
- u8 itssi_2g, itssi_5g;
- u8 maxpwr_2g, maxpwr_5gl, maxpwr_5g, maxpwr_5gh;
- u16 pa_2g[4], pa_5gl[4], pa_5g[4], pa_5gh[4];
-};
-
-struct ssb_sprom {
- u8 revision;
- u8 il0mac[6]; /* MAC address for 802.11b/g */
- u8 et0mac[6]; /* MAC address for Ethernet */
- u8 et1mac[6]; /* MAC address for 802.11a */
- u8 et0phyaddr; /* MII address for enet0 */
- u8 et1phyaddr; /* MII address for enet1 */
- u8 et0mdcport; /* MDIO for enet0 */
- u8 et1mdcport; /* MDIO for enet1 */
- u16 board_rev; /* Board revision number from SPROM. */
- u16 board_num; /* Board number from SPROM. */
- u16 board_type; /* Board type from SPROM. */
- u8 country_code; /* Country Code */
- char alpha2[2]; /* Country Code as two chars like EU or US */
- u8 leddc_on_time; /* LED Powersave Duty Cycle On Count */
- u8 leddc_off_time; /* LED Powersave Duty Cycle Off Count */
- u8 ant_available_a; /* 2GHz antenna available bits (up to 4) */
- u8 ant_available_bg; /* 5GHz antenna available bits (up to 4) */
- u16 pa0b0;
- u16 pa0b1;
- u16 pa0b2;
- u16 pa1b0;
- u16 pa1b1;
- u16 pa1b2;
- u16 pa1lob0;
- u16 pa1lob1;
- u16 pa1lob2;
- u16 pa1hib0;
- u16 pa1hib1;
- u16 pa1hib2;
- u8 gpio0; /* GPIO pin 0 */
- u8 gpio1; /* GPIO pin 1 */
- u8 gpio2; /* GPIO pin 2 */
- u8 gpio3; /* GPIO pin 3 */
- u8 maxpwr_bg; /* 2.4GHz Amplifier Max Power (in dBm Q5.2) */
- u8 maxpwr_al; /* 5.2GHz Amplifier Max Power (in dBm Q5.2) */
- u8 maxpwr_a; /* 5.3GHz Amplifier Max Power (in dBm Q5.2) */
- u8 maxpwr_ah; /* 5.8GHz Amplifier Max Power (in dBm Q5.2) */
- u8 itssi_a; /* Idle TSSI Target for A-PHY */
- u8 itssi_bg; /* Idle TSSI Target for B/G-PHY */
- u8 tri2g; /* 2.4GHz TX isolation */
- u8 tri5gl; /* 5.2GHz TX isolation */
- u8 tri5g; /* 5.3GHz TX isolation */
- u8 tri5gh; /* 5.8GHz TX isolation */
- u8 txpid2g[4]; /* 2GHz TX power index */
- u8 txpid5gl[4]; /* 4.9 - 5.1GHz TX power index */
- u8 txpid5g[4]; /* 5.1 - 5.5GHz TX power index */
- u8 txpid5gh[4]; /* 5.5 - ...GHz TX power index */
- s8 rxpo2g; /* 2GHz RX power offset */
- s8 rxpo5g; /* 5GHz RX power offset */
- u8 rssisav2g; /* 2GHz RSSI params */
- u8 rssismc2g;
- u8 rssismf2g;
- u8 bxa2g; /* 2GHz BX arch */
- u8 rssisav5g; /* 5GHz RSSI params */
- u8 rssismc5g;
- u8 rssismf5g;
- u8 bxa5g; /* 5GHz BX arch */
- u16 cck2gpo; /* CCK power offset */
- u32 ofdm2gpo; /* 2.4GHz OFDM power offset */
- u32 ofdm5glpo; /* 5.2GHz OFDM power offset */
- u32 ofdm5gpo; /* 5.3GHz OFDM power offset */
- u32 ofdm5ghpo; /* 5.8GHz OFDM power offset */
- u16 boardflags_lo; /* Board flags (bits 0-15) */
- u16 boardflags_hi; /* Board flags (bits 16-31) */
- u16 boardflags2_lo; /* Board flags (bits 32-47) */
- u16 boardflags2_hi; /* Board flags (bits 48-63) */
- /* TODO store board flags in a single u64 */
-
- struct ssb_sprom_core_pwr_info core_pwr_info[4];
-
- /* Antenna gain values for up to 4 antennas
- * on each band. Values in dBm/4 (Q5.2). Negative gain means the
- * loss in the connectors is bigger than the gain. */
- struct {
- s8 a0, a1, a2, a3;
- } antenna_gain;
-
- struct {
- struct {
- u8 tssipos, extpa_gain, pdet_range, tr_iso, antswlut;
- } ghz2;
- struct {
- u8 tssipos, extpa_gain, pdet_range, tr_iso, antswlut;
- } ghz5;
- } fem;
-
- u16 mcs2gpo[8];
- u16 mcs5gpo[8];
- u16 mcs5glpo[8];
- u16 mcs5ghpo[8];
- u8 opo;
-
- u8 rxgainerr2ga[3];
- u8 rxgainerr5gla[3];
- u8 rxgainerr5gma[3];
- u8 rxgainerr5gha[3];
- u8 rxgainerr5gua[3];
-
- u8 noiselvl2ga[3];
- u8 noiselvl5gla[3];
- u8 noiselvl5gma[3];
- u8 noiselvl5gha[3];
- u8 noiselvl5gua[3];
-
- u8 regrev;
- u8 txchain;
- u8 rxchain;
- u8 antswitch;
- u16 cddpo;
- u16 stbcpo;
- u16 bw40po;
- u16 bwduppo;
-
- u8 tempthresh;
- u8 tempoffset;
- u16 rawtempsense;
- u8 measpower;
- u8 tempsense_slope;
- u8 tempcorrx;
- u8 tempsense_option;
- u8 freqoffset_corr;
- u8 iqcal_swp_dis;
- u8 hw_iqcal_en;
- u8 elna2g;
- u8 elna5g;
- u8 phycal_tempdelta;
- u8 temps_period;
- u8 temps_hysteresis;
- u8 measpower1;
- u8 measpower2;
- u8 pcieingress_war;
-
- /* power per rate from sromrev 9 */
- u16 cckbw202gpo;
- u16 cckbw20ul2gpo;
- u32 legofdmbw202gpo;
- u32 legofdmbw20ul2gpo;
- u32 legofdmbw205glpo;
- u32 legofdmbw20ul5glpo;
- u32 legofdmbw205gmpo;
- u32 legofdmbw20ul5gmpo;
- u32 legofdmbw205ghpo;
- u32 legofdmbw20ul5ghpo;
- u32 mcsbw202gpo;
- u32 mcsbw20ul2gpo;
- u32 mcsbw402gpo;
- u32 mcsbw205glpo;
- u32 mcsbw20ul5glpo;
- u32 mcsbw405glpo;
- u32 mcsbw205gmpo;
- u32 mcsbw20ul5gmpo;
- u32 mcsbw405gmpo;
- u32 mcsbw205ghpo;
- u32 mcsbw20ul5ghpo;
- u32 mcsbw405ghpo;
- u16 mcs32po;
- u16 legofdm40duppo;
- u8 sar2g;
- u8 sar5g;
-};
-
-/* Information about the PCB the circuitry is soldered on. */
-struct ssb_boardinfo {
- u16 vendor;
- u16 type;
- u8 rev;
-};
-
-
-struct ssb_device;
-/* Lowlevel read/write operations on the device MMIO.
- * Internal, don't use that outside of ssb. */
-struct ssb_bus_ops {
- u8 (*read8)(struct ssb_device *dev, u16 offset);
- u16 (*read16)(struct ssb_device *dev, u16 offset);
- u32 (*read32)(struct ssb_device *dev, u16 offset);
- void (*write8)(struct ssb_device *dev, u16 offset, u8 value);
- void (*write16)(struct ssb_device *dev, u16 offset, u16 value);
- void (*write32)(struct ssb_device *dev, u16 offset, u32 value);
-#ifdef CONFIG_SSB_BLOCKIO
- void (*block_read)(struct ssb_device *dev, void *buffer,
- size_t count, u16 offset, u8 reg_width);
- void (*block_write)(struct ssb_device *dev, const void *buffer,
- size_t count, u16 offset, u8 reg_width);
-#endif
-};
-
-
-/* Core-ID values. */
-#define SSB_DEV_CHIPCOMMON 0x800
-#define SSB_DEV_ILINE20 0x801
-#define SSB_DEV_SDRAM 0x803
-#define SSB_DEV_PCI 0x804
-#define SSB_DEV_MIPS 0x805
-#define SSB_DEV_ETHERNET 0x806
-#define SSB_DEV_V90 0x807
-#define SSB_DEV_USB11_HOSTDEV 0x808
-#define SSB_DEV_ADSL 0x809
-#define SSB_DEV_ILINE100 0x80A
-#define SSB_DEV_IPSEC 0x80B
-#define SSB_DEV_PCMCIA 0x80D
-#define SSB_DEV_INTERNAL_MEM 0x80E
-#define SSB_DEV_MEMC_SDRAM 0x80F
-#define SSB_DEV_EXTIF 0x811
-#define SSB_DEV_80211 0x812
-#define SSB_DEV_MIPS_3302 0x816
-#define SSB_DEV_USB11_HOST 0x817
-#define SSB_DEV_USB11_DEV 0x818
-#define SSB_DEV_USB20_HOST 0x819
-#define SSB_DEV_USB20_DEV 0x81A
-#define SSB_DEV_SDIO_HOST 0x81B
-#define SSB_DEV_ROBOSWITCH 0x81C
-#define SSB_DEV_PARA_ATA 0x81D
-#define SSB_DEV_SATA_XORDMA 0x81E
-#define SSB_DEV_ETHERNET_GBIT 0x81F
-#define SSB_DEV_PCIE 0x820
-#define SSB_DEV_MIMO_PHY 0x821
-#define SSB_DEV_SRAM_CTRLR 0x822
-#define SSB_DEV_MINI_MACPHY 0x823
-#define SSB_DEV_ARM_1176 0x824
-#define SSB_DEV_ARM_7TDMI 0x825
-
-/* Vendor-ID values */
-#define SSB_VENDOR_BROADCOM 0x4243
-
-/* Some kernel subsystems poke with dev->drvdata, so we must use the
- * following ugly workaround to get from struct device to struct ssb_device */
-struct __ssb_dev_wrapper {
- struct device dev;
- struct ssb_device *sdev;
-};
-
-struct ssb_device {
- /* Having a copy of the ops pointer in each dev struct
- * is an optimization. */
- const struct ssb_bus_ops *ops;
-
- struct device *dev, *dma_dev;
-
- struct ssb_bus *bus;
- struct ssb_device_id id;
-
- u8 core_index;
- unsigned int irq;
-
- /* Internal-only stuff follows. */
- void *drvdata; /* Per-device data */
- void *devtypedata; /* Per-devicetype (eg 802.11) data */
-};
-
-/* Go from struct device to struct ssb_device. */
-static inline
-struct ssb_device * dev_to_ssb_dev(struct device *dev)
-{
- struct __ssb_dev_wrapper *wrap;
- wrap = container_of(dev, struct __ssb_dev_wrapper, dev);
- return wrap->sdev;
-}
-
-/* Device specific user data */
-static inline
-void ssb_set_drvdata(struct ssb_device *dev, void *data)
-{
- dev->drvdata = data;
-}
-static inline
-void * ssb_get_drvdata(struct ssb_device *dev)
-{
- return dev->drvdata;
-}
-
-/* Devicetype specific user data. This is per device-type (not per device) */
-void ssb_set_devtypedata(struct ssb_device *dev, void *data);
-static inline
-void * ssb_get_devtypedata(struct ssb_device *dev)
-{
- return dev->devtypedata;
-}
-
-
-struct ssb_driver {
- const char *name;
- const struct ssb_device_id *id_table;
-
- int (*probe)(struct ssb_device *dev, const struct ssb_device_id *id);
- void (*remove)(struct ssb_device *dev);
- int (*suspend)(struct ssb_device *dev, pm_message_t state);
- int (*resume)(struct ssb_device *dev);
- void (*shutdown)(struct ssb_device *dev);
-
- struct device_driver drv;
-};
-#define drv_to_ssb_drv(_drv) container_of(_drv, struct ssb_driver, drv)
-
-extern int __ssb_driver_register(struct ssb_driver *drv, struct module *owner);
-#define ssb_driver_register(drv) \
- __ssb_driver_register(drv, THIS_MODULE)
-
-extern void ssb_driver_unregister(struct ssb_driver *drv);
-
-
-
-
-enum ssb_bustype {
- SSB_BUSTYPE_SSB, /* This SSB bus is the system bus */
- SSB_BUSTYPE_PCI, /* SSB is connected to PCI bus */
- SSB_BUSTYPE_PCMCIA, /* SSB is connected to PCMCIA bus */
- SSB_BUSTYPE_SDIO, /* SSB is connected to SDIO bus */
-};
-
-/* board_vendor */
-#define SSB_BOARDVENDOR_BCM 0x14E4 /* Broadcom */
-#define SSB_BOARDVENDOR_DELL 0x1028 /* Dell */
-#define SSB_BOARDVENDOR_HP 0x0E11 /* HP */
-/* board_type */
-#define SSB_BOARD_BCM94306MP 0x0418
-#define SSB_BOARD_BCM4309G 0x0421
-#define SSB_BOARD_BCM4306CB 0x0417
-#define SSB_BOARD_BCM4309MP 0x040C
-#define SSB_BOARD_MP4318 0x044A
-#define SSB_BOARD_BU4306 0x0416
-#define SSB_BOARD_BU4309 0x040A
-/* chip_package */
-#define SSB_CHIPPACK_BCM4712S 1 /* Small 200pin 4712 */
-#define SSB_CHIPPACK_BCM4712M 2 /* Medium 225pin 4712 */
-#define SSB_CHIPPACK_BCM4712L 0 /* Large 340pin 4712 */
-
-#include <linux/ssb/ssb_driver_chipcommon.h>
-#include <linux/ssb/ssb_driver_mips.h>
-#include <linux/ssb/ssb_driver_extif.h>
-#include <linux/ssb/ssb_driver_pci.h>
-
-struct ssb_bus {
- /* The MMIO area. */
- void __iomem *mmio;
-
- const struct ssb_bus_ops *ops;
-
- /* The core currently mapped into the MMIO window.
- * Not valid on all host-buses. So don't use outside of SSB. */
- struct ssb_device *mapped_device;
- union {
- /* Currently mapped PCMCIA segment. (bustype == SSB_BUSTYPE_PCMCIA only) */
- u8 mapped_pcmcia_seg;
- /* Current SSB base address window for SDIO. */
- u32 sdio_sbaddr;
- };
- /* Lock for core and segment switching.
- * On PCMCIA-host busses this is used to protect the whole MMIO access. */
- spinlock_t bar_lock;
-
- /* The host-bus this backplane is running on. */
- enum ssb_bustype bustype;
- /* Pointers to the host-bus. Check bustype before using any of these pointers. */
- union {
- /* Pointer to the PCI bus (only valid if bustype == SSB_BUSTYPE_PCI). */
- struct pci_dev *host_pci;
- /* Pointer to the PCMCIA device (only if bustype == SSB_BUSTYPE_PCMCIA). */
- struct pcmcia_device *host_pcmcia;
- /* Pointer to the SDIO device (only if bustype == SSB_BUSTYPE_SDIO). */
- struct sdio_func *host_sdio;
- };
-
- /* See enum ssb_quirks */
- unsigned int quirks;
-
-#ifdef CONFIG_SSB_SPROM
- /* Mutex to protect the SPROM writing. */
- struct mutex sprom_mutex;
-#endif
-
- /* ID information about the Chip. */
- u16 chip_id;
- u8 chip_rev;
- u16 sprom_offset;
- u16 sprom_size; /* number of words in sprom */
- u8 chip_package;
-
- /* List of devices (cores) on the backplane. */
- struct ssb_device devices[SSB_MAX_NR_CORES];
- u8 nr_devices;
-
- /* Software ID number for this bus. */
- unsigned int busnumber;
-
- /* The ChipCommon device (if available). */
- struct ssb_chipcommon chipco;
- /* The PCI-core device (if available). */
- struct ssb_pcicore pcicore;
- /* The MIPS-core device (if available). */
- struct ssb_mipscore mipscore;
- /* The EXTif-core device (if available). */
- struct ssb_extif extif;
-
- /* The following structure elements are not available in early
- * SSB initialization. Though, they are available for regular
- * registered drivers at any stage. So be careful when
- * using them in the ssb core code. */
-
- /* ID information about the PCB. */
- struct ssb_boardinfo boardinfo;
- /* Contents of the SPROM. */
- struct ssb_sprom sprom;
- /* If the board has a cardbus slot, this is set to true. */
- bool has_cardbus_slot;
-
-#ifdef CONFIG_SSB_EMBEDDED
- /* Lock for GPIO register access. */
- spinlock_t gpio_lock;
-#endif /* EMBEDDED */
-
- /* Internal-only stuff follows. Do not touch. */
- struct list_head list;
-#ifdef CONFIG_SSB_DEBUG
- /* Is the bus already powered up? */
- bool powered_up;
- int power_warn_count;
-#endif /* DEBUG */
-};
-
-enum ssb_quirks {
- /* SDIO connected card requires performing a read after writing a 32-bit value */
- SSB_QUIRK_SDIO_READ_AFTER_WRITE32 = (1 << 0),
-};
-
-/* The initialization-invariants. */
-struct ssb_init_invariants {
- /* Versioning information about the PCB. */
- struct ssb_boardinfo boardinfo;
- /* The SPROM information. That's either stored in an
- * EEPROM or NVRAM on the board. */
- struct ssb_sprom sprom;
- /* If the board has a cardbus slot, this is set to true. */
- bool has_cardbus_slot;
-};
-/* Type of function to fetch the invariants. */
-typedef int (*ssb_invariants_func_t)(struct ssb_bus *bus,
- struct ssb_init_invariants *iv);
-
-/* Register a SSB system bus. get_invariants() is called after the
- * basic system devices are initialized.
- * The invariants are usually fetched from some NVRAM.
- * Put the invariants into the struct pointed to by iv. */
-extern int ssb_bus_ssbbus_register(struct ssb_bus *bus,
- unsigned long baseaddr,
- ssb_invariants_func_t get_invariants);
-#ifdef CONFIG_SSB_PCIHOST
-extern int ssb_bus_pcibus_register(struct ssb_bus *bus,
- struct pci_dev *host_pci);
-#endif /* CONFIG_SSB_PCIHOST */
-#ifdef CONFIG_SSB_PCMCIAHOST
-extern int ssb_bus_pcmciabus_register(struct ssb_bus *bus,
- struct pcmcia_device *pcmcia_dev,
- unsigned long baseaddr);
-#endif /* CONFIG_SSB_PCMCIAHOST */
-#ifdef CONFIG_SSB_SDIOHOST
-extern int ssb_bus_sdiobus_register(struct ssb_bus *bus,
- struct sdio_func *sdio_func,
- unsigned int quirks);
-#endif /* CONFIG_SSB_SDIOHOST */
-
-
-extern void ssb_bus_unregister(struct ssb_bus *bus);
-
-/* Does the device have an SPROM? */
-extern bool ssb_is_sprom_available(struct ssb_bus *bus);
-
-/* Set a fallback SPROM.
- * See kdoc at the function definition for complete documentation. */
-extern int ssb_arch_register_fallback_sprom(
- int (*sprom_callback)(struct ssb_bus *bus,
- struct ssb_sprom *out));
-
-/* Suspend a SSB bus.
- * Call this from the parent bus suspend routine. */
-extern int ssb_bus_suspend(struct ssb_bus *bus);
-/* Resume a SSB bus.
- * Call this from the parent bus resume routine. */
-extern int ssb_bus_resume(struct ssb_bus *bus);
-
-extern u32 ssb_clockspeed(struct ssb_bus *bus);
-
-/* Is the device enabled in hardware? */
-int ssb_device_is_enabled(struct ssb_device *dev);
-/* Enable a device and pass device-specific SSB_TMSLOW flags.
- * If no device-specific flags are available, use 0. */
-void ssb_device_enable(struct ssb_device *dev, u32 core_specific_flags);
-/* Disable a device in hardware and pass SSB_TMSLOW flags (if any). */
-void ssb_device_disable(struct ssb_device *dev, u32 core_specific_flags);
-
-
-/* Device MMIO register read/write functions. */
-static inline u8 ssb_read8(struct ssb_device *dev, u16 offset)
-{
- return dev->ops->read8(dev, offset);
-}
-static inline u16 ssb_read16(struct ssb_device *dev, u16 offset)
-{
- return dev->ops->read16(dev, offset);
-}
-static inline u32 ssb_read32(struct ssb_device *dev, u16 offset)
-{
- return dev->ops->read32(dev, offset);
-}
-static inline void ssb_write8(struct ssb_device *dev, u16 offset, u8 value)
-{
- dev->ops->write8(dev, offset, value);
-}
-static inline void ssb_write16(struct ssb_device *dev, u16 offset, u16 value)
-{
- dev->ops->write16(dev, offset, value);
-}
-static inline void ssb_write32(struct ssb_device *dev, u16 offset, u32 value)
-{
- dev->ops->write32(dev, offset, value);
-}
-#ifdef CONFIG_SSB_BLOCKIO
-static inline void ssb_block_read(struct ssb_device *dev, void *buffer,
- size_t count, u16 offset, u8 reg_width)
-{
- dev->ops->block_read(dev, buffer, count, offset, reg_width);
-}
-
-static inline void ssb_block_write(struct ssb_device *dev, const void *buffer,
- size_t count, u16 offset, u8 reg_width)
-{
- dev->ops->block_write(dev, buffer, count, offset, reg_width);
-}
-#endif /* CONFIG_SSB_BLOCKIO */
-
-
-/* The SSB DMA API. Use this API for any DMA operation on the device.
- * This API basically is a wrapper that calls the correct DMA API for
- * the host device type the SSB device is attached to. */
-
-/* Translation (routing) bits that need to be ORed to DMA
- * addresses before they are given to a device. */
-extern u32 ssb_dma_translation(struct ssb_device *dev);
-#define SSB_DMA_TRANSLATION_MASK 0xC0000000
-#define SSB_DMA_TRANSLATION_SHIFT 30
-
-static inline void __cold __ssb_dma_not_implemented(struct ssb_device *dev)
-{
-#ifdef CONFIG_SSB_DEBUG
- printk(KERN_ERR "SSB: BUG! Calling DMA API for "
- "unsupported bustype %d\n", dev->bus->bustype);
-#endif /* DEBUG */
-}
-
-#ifdef CONFIG_SSB_PCIHOST
-/* PCI-host wrapper driver */
-extern int ssb_pcihost_register(struct pci_driver *driver);
-static inline void ssb_pcihost_unregister(struct pci_driver *driver)
-{
- pci_unregister_driver(driver);
-}
-
-static inline
-void ssb_pcihost_set_power_state(struct ssb_device *sdev, pci_power_t state)
-{
- if (sdev->bus->bustype == SSB_BUSTYPE_PCI)
- pci_set_power_state(sdev->bus->host_pci, state);
-}
-#else
-static inline void ssb_pcihost_unregister(struct pci_driver *driver)
-{
-}
-
-static inline
-void ssb_pcihost_set_power_state(struct ssb_device *sdev, pci_power_t state)
-{
-}
-#endif /* CONFIG_SSB_PCIHOST */
-
-
-/* If a driver is shutdown or suspended, call this to signal
- * that the bus may be completely powered down. SSB will decide,
- * if it's really time to power down the bus, based on if there
- * are other devices that want to run. */
-extern int ssb_bus_may_powerdown(struct ssb_bus *bus);
-/* Before initializing and enabling a device, call this to power-up the bus.
- * If you want to allow use of dynamic-power-control, pass the flag.
- * Otherwise static always-on powercontrol will be used. */
-extern int ssb_bus_powerup(struct ssb_bus *bus, bool dynamic_pctl);
-
-extern void ssb_commit_settings(struct ssb_bus *bus);
-
-/* Various helper functions */
-extern u32 ssb_admatch_base(u32 adm);
-extern u32 ssb_admatch_size(u32 adm);
-
-/* PCI device mapping and fixup routines.
- * Called from the architecture pcibios init code.
- * These are only available on SSB_EMBEDDED configurations. */
-#ifdef CONFIG_SSB_EMBEDDED
-int ssb_pcibios_plat_dev_init(struct pci_dev *dev);
-int ssb_pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin);
-#endif /* CONFIG_SSB_EMBEDDED */
-
-#endif /* LINUX_SSB_H_ */
diff --git a/ANDROID_3.4.5/include/linux/ssb/ssb_driver_chipcommon.h b/ANDROID_3.4.5/include/linux/ssb/ssb_driver_chipcommon.h
deleted file mode 100644
index 1a6b0045..00000000
--- a/ANDROID_3.4.5/include/linux/ssb/ssb_driver_chipcommon.h
+++ /dev/null
@@ -1,665 +0,0 @@
-#ifndef LINUX_SSB_CHIPCO_H_
-#define LINUX_SSB_CHIPCO_H_
-
-/* SonicsSiliconBackplane CHIPCOMMON core hardware definitions
- *
- * The chipcommon core provides chip identification, SB control,
- * jtag, 0/1/2 uarts, clock frequency control, a watchdog interrupt timer,
- * gpio interface, extbus, and support for serial and parallel flashes.
- *
- * Copyright 2005, Broadcom Corporation
- * Copyright 2006, Michael Buesch <m@bues.ch>
- *
- * Licensed under the GPL version 2. See COPYING for details.
- */
-
-/** ChipCommon core registers. **/
-
-#define SSB_CHIPCO_CHIPID 0x0000
-#define SSB_CHIPCO_IDMASK 0x0000FFFF
-#define SSB_CHIPCO_REVMASK 0x000F0000
-#define SSB_CHIPCO_REVSHIFT 16
-#define SSB_CHIPCO_PACKMASK 0x00F00000
-#define SSB_CHIPCO_PACKSHIFT 20
-#define SSB_CHIPCO_NRCORESMASK 0x0F000000
-#define SSB_CHIPCO_NRCORESSHIFT 24
-#define SSB_CHIPCO_CAP 0x0004 /* Capabilities */
-#define SSB_CHIPCO_CAP_NRUART 0x00000003 /* # of UARTs */
-#define SSB_CHIPCO_CAP_MIPSEB 0x00000004 /* MIPS in BigEndian Mode */
-#define SSB_CHIPCO_CAP_UARTCLK 0x00000018 /* UART clock select */
-#define SSB_CHIPCO_CAP_UARTCLK_INT 0x00000008 /* UARTs are driven by internal divided clock */
-#define SSB_CHIPCO_CAP_UARTGPIO 0x00000020 /* UARTs on GPIO 15-12 */
-#define SSB_CHIPCO_CAP_EXTBUS 0x000000C0 /* External buses present */
-#define SSB_CHIPCO_CAP_FLASHT 0x00000700 /* Flash Type */
-#define SSB_CHIPCO_FLASHT_NONE 0x00000000 /* No flash */
-#define SSB_CHIPCO_FLASHT_STSER 0x00000100 /* ST serial flash */
-#define SSB_CHIPCO_FLASHT_ATSER 0x00000200 /* Atmel serial flash */
-#define SSB_CHIPCO_FLASHT_PARA 0x00000700 /* Parallel flash */
-#define SSB_CHIPCO_CAP_PLLT 0x00038000 /* PLL Type */
-#define SSB_PLLTYPE_NONE 0x00000000
-#define SSB_PLLTYPE_1 0x00010000 /* 48Mhz base, 3 dividers */
-#define SSB_PLLTYPE_2 0x00020000 /* 48Mhz, 4 dividers */
-#define SSB_PLLTYPE_3 0x00030000 /* 25Mhz, 2 dividers */
-#define SSB_PLLTYPE_4 0x00008000 /* 48Mhz, 4 dividers */
-#define SSB_PLLTYPE_5 0x00018000 /* 25Mhz, 4 dividers */
-#define SSB_PLLTYPE_6 0x00028000 /* 100/200 or 120/240 only */
-#define SSB_PLLTYPE_7 0x00038000 /* 25Mhz, 4 dividers */
-#define SSB_CHIPCO_CAP_PCTL 0x00040000 /* Power Control */
-#define SSB_CHIPCO_CAP_OTPS 0x00380000 /* OTP size */
-#define SSB_CHIPCO_CAP_OTPS_SHIFT 19
-#define SSB_CHIPCO_CAP_OTPS_BASE 5
-#define SSB_CHIPCO_CAP_JTAGM 0x00400000 /* JTAG master present */
-#define SSB_CHIPCO_CAP_BROM 0x00800000 /* Internal boot ROM active */
-#define SSB_CHIPCO_CAP_64BIT 0x08000000 /* 64-bit Backplane */
-#define SSB_CHIPCO_CAP_PMU 0x10000000 /* PMU available (rev >= 20) */
-#define SSB_CHIPCO_CAP_ECI 0x20000000 /* ECI available (rev >= 20) */
-#define SSB_CHIPCO_CAP_SPROM 0x40000000 /* SPROM present */
-#define SSB_CHIPCO_CORECTL 0x0008
-#define SSB_CHIPCO_CORECTL_UARTCLK0 0x00000001 /* Drive UART with internal clock */
-#define SSB_CHIPCO_CORECTL_SE 0x00000002 /* sync clk out enable (corerev >= 3) */
-#define SSB_CHIPCO_CORECTL_UARTCLKEN 0x00000008 /* UART clock enable (rev >= 21) */
-#define SSB_CHIPCO_BIST 0x000C
-#define SSB_CHIPCO_OTPS 0x0010 /* OTP status */
-#define SSB_CHIPCO_OTPS_PROGFAIL 0x80000000
-#define SSB_CHIPCO_OTPS_PROTECT 0x00000007
-#define SSB_CHIPCO_OTPS_HW_PROTECT 0x00000001
-#define SSB_CHIPCO_OTPS_SW_PROTECT 0x00000002
-#define SSB_CHIPCO_OTPS_CID_PROTECT 0x00000004
-#define SSB_CHIPCO_OTPC 0x0014 /* OTP control */
-#define SSB_CHIPCO_OTPC_RECWAIT 0xFF000000
-#define SSB_CHIPCO_OTPC_PROGWAIT 0x00FFFF00
-#define SSB_CHIPCO_OTPC_PRW_SHIFT 8
-#define SSB_CHIPCO_OTPC_MAXFAIL 0x00000038
-#define SSB_CHIPCO_OTPC_VSEL 0x00000006
-#define SSB_CHIPCO_OTPC_SELVL 0x00000001
-#define SSB_CHIPCO_OTPP 0x0018 /* OTP prog */
-#define SSB_CHIPCO_OTPP_COL 0x000000FF
-#define SSB_CHIPCO_OTPP_ROW 0x0000FF00
-#define SSB_CHIPCO_OTPP_ROW_SHIFT 8
-#define SSB_CHIPCO_OTPP_READERR 0x10000000
-#define SSB_CHIPCO_OTPP_VALUE 0x20000000
-#define SSB_CHIPCO_OTPP_READ 0x40000000
-#define SSB_CHIPCO_OTPP_START 0x80000000
-#define SSB_CHIPCO_OTPP_BUSY 0x80000000
-#define SSB_CHIPCO_IRQSTAT 0x0020
-#define SSB_CHIPCO_IRQMASK 0x0024
-#define SSB_CHIPCO_IRQ_GPIO 0x00000001 /* gpio intr */
-#define SSB_CHIPCO_IRQ_EXT 0x00000002 /* ro: ext intr pin (corerev >= 3) */
-#define SSB_CHIPCO_IRQ_WDRESET 0x80000000 /* watchdog reset occurred */
-#define SSB_CHIPCO_CHIPCTL 0x0028 /* Rev >= 11 only */
-#define SSB_CHIPCO_CHIPSTAT 0x002C /* Rev >= 11 only */
-#define SSB_CHIPCO_JCMD 0x0030 /* Rev >= 10 only */
-#define SSB_CHIPCO_JCMD_START 0x80000000
-#define SSB_CHIPCO_JCMD_BUSY 0x80000000
-#define SSB_CHIPCO_JCMD_PAUSE 0x40000000
-#define SSB_CHIPCO_JCMD0_ACC_MASK 0x0000F000
-#define SSB_CHIPCO_JCMD0_ACC_IRDR 0x00000000
-#define SSB_CHIPCO_JCMD0_ACC_DR 0x00001000
-#define SSB_CHIPCO_JCMD0_ACC_IR 0x00002000
-#define SSB_CHIPCO_JCMD0_ACC_RESET 0x00003000
-#define SSB_CHIPCO_JCMD0_ACC_IRPDR 0x00004000
-#define SSB_CHIPCO_JCMD0_ACC_PDR 0x00005000
-#define SSB_CHIPCO_JCMD0_IRW_MASK 0x00000F00
-#define SSB_CHIPCO_JCMD_ACC_MASK 0x000F0000 /* Changes for corerev 11 */
-#define SSB_CHIPCO_JCMD_ACC_IRDR 0x00000000
-#define SSB_CHIPCO_JCMD_ACC_DR 0x00010000
-#define SSB_CHIPCO_JCMD_ACC_IR 0x00020000
-#define SSB_CHIPCO_JCMD_ACC_RESET 0x00030000
-#define SSB_CHIPCO_JCMD_ACC_IRPDR 0x00040000
-#define SSB_CHIPCO_JCMD_ACC_PDR 0x00050000
-#define SSB_CHIPCO_JCMD_IRW_MASK 0x00001F00
-#define SSB_CHIPCO_JCMD_IRW_SHIFT 8
-#define SSB_CHIPCO_JCMD_DRW_MASK 0x0000003F
-#define SSB_CHIPCO_JIR 0x0034 /* Rev >= 10 only */
-#define SSB_CHIPCO_JDR 0x0038 /* Rev >= 10 only */
-#define SSB_CHIPCO_JCTL 0x003C /* Rev >= 10 only */
-#define SSB_CHIPCO_JCTL_FORCE_CLK 4 /* Force clock */
-#define SSB_CHIPCO_JCTL_EXT_EN 2 /* Enable external targets */
-#define SSB_CHIPCO_JCTL_EN 1 /* Enable Jtag master */
-#define SSB_CHIPCO_FLASHCTL 0x0040
-#define SSB_CHIPCO_FLASHCTL_START 0x80000000
-#define SSB_CHIPCO_FLASHCTL_BUSY SSB_CHIPCO_FLASHCTL_START
-#define SSB_CHIPCO_FLASHADDR 0x0044
-#define SSB_CHIPCO_FLASHDATA 0x0048
-#define SSB_CHIPCO_BCAST_ADDR 0x0050
-#define SSB_CHIPCO_BCAST_DATA 0x0054
-#define SSB_CHIPCO_GPIOPULLUP 0x0058 /* Rev >= 20 only */
-#define SSB_CHIPCO_GPIOPULLDOWN 0x005C /* Rev >= 20 only */
-#define SSB_CHIPCO_GPIOIN 0x0060
-#define SSB_CHIPCO_GPIOOUT 0x0064
-#define SSB_CHIPCO_GPIOOUTEN 0x0068
-#define SSB_CHIPCO_GPIOCTL 0x006C
-#define SSB_CHIPCO_GPIOPOL 0x0070
-#define SSB_CHIPCO_GPIOIRQ 0x0074
-#define SSB_CHIPCO_WATCHDOG 0x0080
-#define SSB_CHIPCO_GPIOTIMER 0x0088 /* LED powersave (corerev >= 16) */
-#define SSB_CHIPCO_GPIOTIMER_OFFTIME 0x0000FFFF
-#define SSB_CHIPCO_GPIOTIMER_OFFTIME_SHIFT 0
-#define SSB_CHIPCO_GPIOTIMER_ONTIME 0xFFFF0000
-#define SSB_CHIPCO_GPIOTIMER_ONTIME_SHIFT 16
-#define SSB_CHIPCO_GPIOTOUTM 0x008C /* LED powersave (corerev >= 16) */
-#define SSB_CHIPCO_CLOCK_N 0x0090
-#define SSB_CHIPCO_CLOCK_SB 0x0094
-#define SSB_CHIPCO_CLOCK_PCI 0x0098
-#define SSB_CHIPCO_CLOCK_M2 0x009C
-#define SSB_CHIPCO_CLOCK_MIPS 0x00A0
-#define SSB_CHIPCO_CLKDIV 0x00A4 /* Rev >= 3 only */
-#define SSB_CHIPCO_CLKDIV_SFLASH 0x0F000000
-#define SSB_CHIPCO_CLKDIV_SFLASH_SHIFT 24
-#define SSB_CHIPCO_CLKDIV_OTP 0x000F0000
-#define SSB_CHIPCO_CLKDIV_OTP_SHIFT 16
-#define SSB_CHIPCO_CLKDIV_JTAG 0x00000F00
-#define SSB_CHIPCO_CLKDIV_JTAG_SHIFT 8
-#define SSB_CHIPCO_CLKDIV_UART 0x000000FF
-#define SSB_CHIPCO_PLLONDELAY 0x00B0 /* Rev >= 4 only */
-#define SSB_CHIPCO_FREFSELDELAY 0x00B4 /* Rev >= 4 only */
-#define SSB_CHIPCO_SLOWCLKCTL 0x00B8 /* 6 <= Rev <= 9 only */
-#define SSB_CHIPCO_SLOWCLKCTL_SRC 0x00000007 /* slow clock source mask */
-#define SSB_CHIPCO_SLOWCLKCTL_SRC_LPO 0x00000000 /* source of slow clock is LPO */
-#define SSB_CHIPCO_SLOWCLKCTL_SRC_XTAL 0x00000001 /* source of slow clock is crystal */
-#define SSB_CHIPCO_SLOECLKCTL_SRC_PCI 0x00000002 /* source of slow clock is PCI */
-#define SSB_CHIPCO_SLOWCLKCTL_LPOFREQ 0x00000200 /* LPOFreqSel, 1: 160Khz, 0: 32KHz */
-#define SSB_CHIPCO_SLOWCLKCTL_LPOPD 0x00000400 /* LPOPowerDown, 1: LPO is disabled, 0: LPO is enabled */
-#define SSB_CHIPCO_SLOWCLKCTL_FSLOW 0x00000800 /* ForceSlowClk, 1: sb/cores running on slow clock, 0: power logic control */
-#define SSB_CHIPCO_SLOWCLKCTL_IPLL 0x00001000 /* IgnorePllOffReq, 1/0: power logic ignores/honors PLL clock disable requests from core */
-#define SSB_CHIPCO_SLOWCLKCTL_ENXTAL 0x00002000 /* XtalControlEn, 1/0: power logic does/doesn't disable crystal when appropriate */
-#define SSB_CHIPCO_SLOWCLKCTL_XTALPU 0x00004000 /* XtalPU (RO), 1/0: crystal running/disabled */
-#define SSB_CHIPCO_SLOWCLKCTL_CLKDIV 0xFFFF0000 /* ClockDivider (SlowClk = 1/(4+divisor)) */
-#define SSB_CHIPCO_SLOWCLKCTL_CLKDIV_SHIFT 16
-#define SSB_CHIPCO_SYSCLKCTL 0x00C0 /* Rev >= 3 only */
-#define SSB_CHIPCO_SYSCLKCTL_IDLPEN 0x00000001 /* ILPen: Enable Idle Low Power */
-#define SSB_CHIPCO_SYSCLKCTL_ALPEN 0x00000002 /* ALPen: Enable Active Low Power */
-#define SSB_CHIPCO_SYSCLKCTL_PLLEN 0x00000004 /* ForcePLLOn */
-#define SSB_CHIPCO_SYSCLKCTL_FORCEALP 0x00000008 /* Force ALP (or HT if ALPen is not set */
-#define SSB_CHIPCO_SYSCLKCTL_FORCEHT 0x00000010 /* Force HT */
-#define SSB_CHIPCO_SYSCLKCTL_CLKDIV 0xFFFF0000 /* ClkDiv (ILP = 1/(4+divisor)) */
-#define SSB_CHIPCO_SYSCLKCTL_CLKDIV_SHIFT 16
-#define SSB_CHIPCO_CLKSTSTR 0x00C4 /* Rev >= 3 only */
-#define SSB_CHIPCO_PCMCIA_CFG 0x0100
-#define SSB_CHIPCO_PCMCIA_MEMWAIT 0x0104
-#define SSB_CHIPCO_PCMCIA_ATTRWAIT 0x0108
-#define SSB_CHIPCO_PCMCIA_IOWAIT 0x010C
-#define SSB_CHIPCO_IDE_CFG 0x0110
-#define SSB_CHIPCO_IDE_MEMWAIT 0x0114
-#define SSB_CHIPCO_IDE_ATTRWAIT 0x0118
-#define SSB_CHIPCO_IDE_IOWAIT 0x011C
-#define SSB_CHIPCO_PROG_CFG 0x0120
-#define SSB_CHIPCO_PROG_WAITCNT 0x0124
-#define SSB_CHIPCO_FLASH_CFG 0x0128
-#define SSB_CHIPCO_FLASH_WAITCNT 0x012C
-#define SSB_CHIPCO_CLKCTLST 0x01E0 /* Clock control and status (rev >= 20) */
-#define SSB_CHIPCO_CLKCTLST_FORCEALP 0x00000001 /* Force ALP request */
-#define SSB_CHIPCO_CLKCTLST_FORCEHT 0x00000002 /* Force HT request */
-#define SSB_CHIPCO_CLKCTLST_FORCEILP 0x00000004 /* Force ILP request */
-#define SSB_CHIPCO_CLKCTLST_HAVEALPREQ 0x00000008 /* ALP available request */
-#define SSB_CHIPCO_CLKCTLST_HAVEHTREQ 0x00000010 /* HT available request */
-#define SSB_CHIPCO_CLKCTLST_HWCROFF 0x00000020 /* Force HW clock request off */
-#define SSB_CHIPCO_CLKCTLST_HAVEALP 0x00010000 /* ALP available */
-#define SSB_CHIPCO_CLKCTLST_HAVEHT 0x00020000 /* HT available */
-#define SSB_CHIPCO_CLKCTLST_4328A0_HAVEHT 0x00010000 /* 4328a0 has reversed bits */
-#define SSB_CHIPCO_CLKCTLST_4328A0_HAVEALP 0x00020000 /* 4328a0 has reversed bits */
-#define SSB_CHIPCO_HW_WORKAROUND 0x01E4 /* Hardware workaround (rev >= 20) */
-#define SSB_CHIPCO_UART0_DATA 0x0300
-#define SSB_CHIPCO_UART0_IMR 0x0304
-#define SSB_CHIPCO_UART0_FCR 0x0308
-#define SSB_CHIPCO_UART0_LCR 0x030C
-#define SSB_CHIPCO_UART0_MCR 0x0310
-#define SSB_CHIPCO_UART0_LSR 0x0314
-#define SSB_CHIPCO_UART0_MSR 0x0318
-#define SSB_CHIPCO_UART0_SCRATCH 0x031C
-#define SSB_CHIPCO_UART1_DATA 0x0400
-#define SSB_CHIPCO_UART1_IMR 0x0404
-#define SSB_CHIPCO_UART1_FCR 0x0408
-#define SSB_CHIPCO_UART1_LCR 0x040C
-#define SSB_CHIPCO_UART1_MCR 0x0410
-#define SSB_CHIPCO_UART1_LSR 0x0414
-#define SSB_CHIPCO_UART1_MSR 0x0418
-#define SSB_CHIPCO_UART1_SCRATCH 0x041C
-/* PMU registers (rev >= 20) */
-#define SSB_CHIPCO_PMU_CTL 0x0600 /* PMU control */
-#define SSB_CHIPCO_PMU_CTL_ILP_DIV 0xFFFF0000 /* ILP div mask */
-#define SSB_CHIPCO_PMU_CTL_ILP_DIV_SHIFT 16
-#define SSB_CHIPCO_PMU_CTL_NOILPONW 0x00000200 /* No ILP on wait */
-#define SSB_CHIPCO_PMU_CTL_HTREQEN 0x00000100 /* HT req enable */
-#define SSB_CHIPCO_PMU_CTL_ALPREQEN 0x00000080 /* ALP req enable */
-#define SSB_CHIPCO_PMU_CTL_XTALFREQ 0x0000007C /* Crystal freq */
-#define SSB_CHIPCO_PMU_CTL_XTALFREQ_SHIFT 2
-#define SSB_CHIPCO_PMU_CTL_ILPDIVEN 0x00000002 /* ILP div enable */
-#define SSB_CHIPCO_PMU_CTL_LPOSEL 0x00000001 /* LPO sel */
-#define SSB_CHIPCO_PMU_CAP 0x0604 /* PMU capabilities */
-#define SSB_CHIPCO_PMU_CAP_REVISION 0x000000FF /* Revision mask */
-#define SSB_CHIPCO_PMU_STAT 0x0608 /* PMU status */
-#define SSB_CHIPCO_PMU_STAT_INTPEND 0x00000040 /* Interrupt pending */
-#define SSB_CHIPCO_PMU_STAT_SBCLKST 0x00000030 /* Backplane clock status? */
-#define SSB_CHIPCO_PMU_STAT_HAVEALP 0x00000008 /* ALP available */
-#define SSB_CHIPCO_PMU_STAT_HAVEHT 0x00000004 /* HT available */
-#define SSB_CHIPCO_PMU_STAT_RESINIT 0x00000003 /* Res init */
-#define SSB_CHIPCO_PMU_RES_STAT 0x060C /* PMU res status */
-#define SSB_CHIPCO_PMU_RES_PEND 0x0610 /* PMU res pending */
-#define SSB_CHIPCO_PMU_TIMER 0x0614 /* PMU timer */
-#define SSB_CHIPCO_PMU_MINRES_MSK 0x0618 /* PMU min res mask */
-#define SSB_CHIPCO_PMU_MAXRES_MSK 0x061C /* PMU max res mask */
-#define SSB_CHIPCO_PMU_RES_TABSEL 0x0620 /* PMU res table sel */
-#define SSB_CHIPCO_PMU_RES_DEPMSK 0x0624 /* PMU res dep mask */
-#define SSB_CHIPCO_PMU_RES_UPDNTM 0x0628 /* PMU res updown timer */
-#define SSB_CHIPCO_PMU_RES_TIMER 0x062C /* PMU res timer */
-#define SSB_CHIPCO_PMU_CLKSTRETCH 0x0630 /* PMU clockstretch */
-#define SSB_CHIPCO_PMU_WATCHDOG 0x0634 /* PMU watchdog */
-#define SSB_CHIPCO_PMU_RES_REQTS 0x0640 /* PMU res req timer sel */
-#define SSB_CHIPCO_PMU_RES_REQT 0x0644 /* PMU res req timer */
-#define SSB_CHIPCO_PMU_RES_REQM 0x0648 /* PMU res req mask */
-#define SSB_CHIPCO_CHIPCTL_ADDR 0x0650
-#define SSB_CHIPCO_CHIPCTL_DATA 0x0654
-#define SSB_CHIPCO_REGCTL_ADDR 0x0658
-#define SSB_CHIPCO_REGCTL_DATA 0x065C
-#define SSB_CHIPCO_PLLCTL_ADDR 0x0660
-#define SSB_CHIPCO_PLLCTL_DATA 0x0664
-
-
-
-/** PMU PLL registers */
-
-/* PMU rev 0 PLL registers */
-#define SSB_PMU0_PLLCTL0 0
-#define SSB_PMU0_PLLCTL0_PDIV_MSK 0x00000001
-#define SSB_PMU0_PLLCTL0_PDIV_FREQ 25000 /* kHz */
-#define SSB_PMU0_PLLCTL1 1
-#define SSB_PMU0_PLLCTL1_WILD_IMSK 0xF0000000 /* Wild int mask (low nibble) */
-#define SSB_PMU0_PLLCTL1_WILD_IMSK_SHIFT 28
-#define SSB_PMU0_PLLCTL1_WILD_FMSK 0x0FFFFF00 /* Wild frac mask */
-#define SSB_PMU0_PLLCTL1_WILD_FMSK_SHIFT 8
-#define SSB_PMU0_PLLCTL1_STOPMOD 0x00000040 /* Stop mod */
-#define SSB_PMU0_PLLCTL2 2
-#define SSB_PMU0_PLLCTL2_WILD_IMSKHI 0x0000000F /* Wild int mask (high nibble) */
-#define SSB_PMU0_PLLCTL2_WILD_IMSKHI_SHIFT 0
-
-/* PMU rev 1 PLL registers */
-#define SSB_PMU1_PLLCTL0 0
-#define SSB_PMU1_PLLCTL0_P1DIV 0x00F00000 /* P1 div */
-#define SSB_PMU1_PLLCTL0_P1DIV_SHIFT 20
-#define SSB_PMU1_PLLCTL0_P2DIV 0x0F000000 /* P2 div */
-#define SSB_PMU1_PLLCTL0_P2DIV_SHIFT 24
-#define SSB_PMU1_PLLCTL1 1
-#define SSB_PMU1_PLLCTL1_M1DIV 0x000000FF /* M1 div */
-#define SSB_PMU1_PLLCTL1_M1DIV_SHIFT 0
-#define SSB_PMU1_PLLCTL1_M2DIV 0x0000FF00 /* M2 div */
-#define SSB_PMU1_PLLCTL1_M2DIV_SHIFT 8
-#define SSB_PMU1_PLLCTL1_M3DIV 0x00FF0000 /* M3 div */
-#define SSB_PMU1_PLLCTL1_M3DIV_SHIFT 16
-#define SSB_PMU1_PLLCTL1_M4DIV 0xFF000000 /* M4 div */
-#define SSB_PMU1_PLLCTL1_M4DIV_SHIFT 24
-#define SSB_PMU1_PLLCTL2 2
-#define SSB_PMU1_PLLCTL2_M5DIV 0x000000FF /* M5 div */
-#define SSB_PMU1_PLLCTL2_M5DIV_SHIFT 0
-#define SSB_PMU1_PLLCTL2_M6DIV 0x0000FF00 /* M6 div */
-#define SSB_PMU1_PLLCTL2_M6DIV_SHIFT 8
-#define SSB_PMU1_PLLCTL2_NDIVMODE 0x000E0000 /* NDIV mode */
-#define SSB_PMU1_PLLCTL2_NDIVMODE_SHIFT 17
-#define SSB_PMU1_PLLCTL2_NDIVINT 0x1FF00000 /* NDIV int */
-#define SSB_PMU1_PLLCTL2_NDIVINT_SHIFT 20
-#define SSB_PMU1_PLLCTL3 3
-#define SSB_PMU1_PLLCTL3_NDIVFRAC 0x00FFFFFF /* NDIV frac */
-#define SSB_PMU1_PLLCTL3_NDIVFRAC_SHIFT 0
-#define SSB_PMU1_PLLCTL4 4
-#define SSB_PMU1_PLLCTL5 5
-#define SSB_PMU1_PLLCTL5_CLKDRV 0xFFFFFF00 /* clk drv */
-#define SSB_PMU1_PLLCTL5_CLKDRV_SHIFT 8
-
-/* BCM4312 PLL resource numbers. */
-#define SSB_PMURES_4312_SWITCHER_BURST 0
-#define SSB_PMURES_4312_SWITCHER_PWM 1
-#define SSB_PMURES_4312_PA_REF_LDO 2
-#define SSB_PMURES_4312_CORE_LDO_BURST 3
-#define SSB_PMURES_4312_CORE_LDO_PWM 4
-#define SSB_PMURES_4312_RADIO_LDO 5
-#define SSB_PMURES_4312_ILP_REQUEST 6
-#define SSB_PMURES_4312_BG_FILTBYP 7
-#define SSB_PMURES_4312_TX_FILTBYP 8
-#define SSB_PMURES_4312_RX_FILTBYP 9
-#define SSB_PMURES_4312_XTAL_PU 10
-#define SSB_PMURES_4312_ALP_AVAIL 11
-#define SSB_PMURES_4312_BB_PLL_FILTBYP 12
-#define SSB_PMURES_4312_RF_PLL_FILTBYP 13
-#define SSB_PMURES_4312_HT_AVAIL 14
-
-/* BCM4325 PLL resource numbers. */
-#define SSB_PMURES_4325_BUCK_BOOST_BURST 0
-#define SSB_PMURES_4325_CBUCK_BURST 1
-#define SSB_PMURES_4325_CBUCK_PWM 2
-#define SSB_PMURES_4325_CLDO_CBUCK_BURST 3
-#define SSB_PMURES_4325_CLDO_CBUCK_PWM 4
-#define SSB_PMURES_4325_BUCK_BOOST_PWM 5
-#define SSB_PMURES_4325_ILP_REQUEST 6
-#define SSB_PMURES_4325_ABUCK_BURST 7
-#define SSB_PMURES_4325_ABUCK_PWM 8
-#define SSB_PMURES_4325_LNLDO1_PU 9
-#define SSB_PMURES_4325_LNLDO2_PU 10
-#define SSB_PMURES_4325_LNLDO3_PU 11
-#define SSB_PMURES_4325_LNLDO4_PU 12
-#define SSB_PMURES_4325_XTAL_PU 13
-#define SSB_PMURES_4325_ALP_AVAIL 14
-#define SSB_PMURES_4325_RX_PWRSW_PU 15
-#define SSB_PMURES_4325_TX_PWRSW_PU 16
-#define SSB_PMURES_4325_RFPLL_PWRSW_PU 17
-#define SSB_PMURES_4325_LOGEN_PWRSW_PU 18
-#define SSB_PMURES_4325_AFE_PWRSW_PU 19
-#define SSB_PMURES_4325_BBPLL_PWRSW_PU 20
-#define SSB_PMURES_4325_HT_AVAIL 21
-
-/* BCM4328 PLL resource numbers. */
-#define SSB_PMURES_4328_EXT_SWITCHER_PWM 0
-#define SSB_PMURES_4328_BB_SWITCHER_PWM 1
-#define SSB_PMURES_4328_BB_SWITCHER_BURST 2
-#define SSB_PMURES_4328_BB_EXT_SWITCHER_BURST 3
-#define SSB_PMURES_4328_ILP_REQUEST 4
-#define SSB_PMURES_4328_RADIO_SWITCHER_PWM 5
-#define SSB_PMURES_4328_RADIO_SWITCHER_BURST 6
-#define SSB_PMURES_4328_ROM_SWITCH 7
-#define SSB_PMURES_4328_PA_REF_LDO 8
-#define SSB_PMURES_4328_RADIO_LDO 9
-#define SSB_PMURES_4328_AFE_LDO 10
-#define SSB_PMURES_4328_PLL_LDO 11
-#define SSB_PMURES_4328_BG_FILTBYP 12
-#define SSB_PMURES_4328_TX_FILTBYP 13
-#define SSB_PMURES_4328_RX_FILTBYP 14
-#define SSB_PMURES_4328_XTAL_PU 15
-#define SSB_PMURES_4328_XTAL_EN 16
-#define SSB_PMURES_4328_BB_PLL_FILTBYP 17
-#define SSB_PMURES_4328_RF_PLL_FILTBYP 18
-#define SSB_PMURES_4328_BB_PLL_PU 19
-
-/* BCM5354 PLL resource numbers. */
-#define SSB_PMURES_5354_EXT_SWITCHER_PWM 0
-#define SSB_PMURES_5354_BB_SWITCHER_PWM 1
-#define SSB_PMURES_5354_BB_SWITCHER_BURST 2
-#define SSB_PMURES_5354_BB_EXT_SWITCHER_BURST 3
-#define SSB_PMURES_5354_ILP_REQUEST 4
-#define SSB_PMURES_5354_RADIO_SWITCHER_PWM 5
-#define SSB_PMURES_5354_RADIO_SWITCHER_BURST 6
-#define SSB_PMURES_5354_ROM_SWITCH 7
-#define SSB_PMURES_5354_PA_REF_LDO 8
-#define SSB_PMURES_5354_RADIO_LDO 9
-#define SSB_PMURES_5354_AFE_LDO 10
-#define SSB_PMURES_5354_PLL_LDO 11
-#define SSB_PMURES_5354_BG_FILTBYP 12
-#define SSB_PMURES_5354_TX_FILTBYP 13
-#define SSB_PMURES_5354_RX_FILTBYP 14
-#define SSB_PMURES_5354_XTAL_PU 15
-#define SSB_PMURES_5354_XTAL_EN 16
-#define SSB_PMURES_5354_BB_PLL_FILTBYP 17
-#define SSB_PMURES_5354_RF_PLL_FILTBYP 18
-#define SSB_PMURES_5354_BB_PLL_PU 19
-
-
-
-/** Chip specific Chip-Status register contents. */
-#define SSB_CHIPCO_CHST_4322_SPROM_EXISTS 0x00000040 /* SPROM present */
-#define SSB_CHIPCO_CHST_4325_SPROM_OTP_SEL 0x00000003
-#define SSB_CHIPCO_CHST_4325_DEFCIS_SEL 0 /* OTP is powered up, use def. CIS, no SPROM */
-#define SSB_CHIPCO_CHST_4325_SPROM_SEL 1 /* OTP is powered up, SPROM is present */
-#define SSB_CHIPCO_CHST_4325_OTP_SEL 2 /* OTP is powered up, no SPROM */
-#define SSB_CHIPCO_CHST_4325_OTP_PWRDN 3 /* OTP is powered down, SPROM is present */
-#define SSB_CHIPCO_CHST_4325_SDIO_USB_MODE 0x00000004
-#define SSB_CHIPCO_CHST_4325_SDIO_USB_MODE_SHIFT 2
-#define SSB_CHIPCO_CHST_4325_RCAL_VALID 0x00000008
-#define SSB_CHIPCO_CHST_4325_RCAL_VALID_SHIFT 3
-#define SSB_CHIPCO_CHST_4325_RCAL_VALUE 0x000001F0
-#define SSB_CHIPCO_CHST_4325_RCAL_VALUE_SHIFT 4
-#define SSB_CHIPCO_CHST_4325_PMUTOP_2B 0x00000200 /* 1 for 2b, 0 for to 2a */
-
-/** Macros to determine SPROM presence based on Chip-Status register. */
-#define SSB_CHIPCO_CHST_4312_SPROM_PRESENT(status) \
- ((status & SSB_CHIPCO_CHST_4325_SPROM_OTP_SEL) != \
- SSB_CHIPCO_CHST_4325_OTP_SEL)
-#define SSB_CHIPCO_CHST_4322_SPROM_PRESENT(status) \
- (status & SSB_CHIPCO_CHST_4322_SPROM_EXISTS)
-#define SSB_CHIPCO_CHST_4325_SPROM_PRESENT(status) \
- (((status & SSB_CHIPCO_CHST_4325_SPROM_OTP_SEL) != \
- SSB_CHIPCO_CHST_4325_DEFCIS_SEL) && \
- ((status & SSB_CHIPCO_CHST_4325_SPROM_OTP_SEL) != \
- SSB_CHIPCO_CHST_4325_OTP_SEL))
-
-
-
-/** Clockcontrol masks and values **/
-
-/* SSB_CHIPCO_CLOCK_N */
-#define SSB_CHIPCO_CLK_N1 0x0000003F /* n1 control */
-#define SSB_CHIPCO_CLK_N2 0x00003F00 /* n2 control */
-#define SSB_CHIPCO_CLK_N2_SHIFT 8
-#define SSB_CHIPCO_CLK_PLLC 0x000F0000 /* pll control */
-#define SSB_CHIPCO_CLK_PLLC_SHIFT 16
-
-/* SSB_CHIPCO_CLOCK_SB/PCI/UART */
-#define SSB_CHIPCO_CLK_M1 0x0000003F /* m1 control */
-#define SSB_CHIPCO_CLK_M2 0x00003F00 /* m2 control */
-#define SSB_CHIPCO_CLK_M2_SHIFT 8
-#define SSB_CHIPCO_CLK_M3 0x003F0000 /* m3 control */
-#define SSB_CHIPCO_CLK_M3_SHIFT 16
-#define SSB_CHIPCO_CLK_MC 0x1F000000 /* mux control */
-#define SSB_CHIPCO_CLK_MC_SHIFT 24
-
-/* N3M Clock control magic field values */
-#define SSB_CHIPCO_CLK_F6_2 0x02 /* A factor of 2 in */
-#define SSB_CHIPCO_CLK_F6_3 0x03 /* 6-bit fields like */
-#define SSB_CHIPCO_CLK_F6_4 0x05 /* N1, M1 or M3 */
-#define SSB_CHIPCO_CLK_F6_5 0x09
-#define SSB_CHIPCO_CLK_F6_6 0x11
-#define SSB_CHIPCO_CLK_F6_7 0x21
-
-#define SSB_CHIPCO_CLK_F5_BIAS 5 /* 5-bit fields get this added */
-
-#define SSB_CHIPCO_CLK_MC_BYPASS 0x08
-#define SSB_CHIPCO_CLK_MC_M1 0x04
-#define SSB_CHIPCO_CLK_MC_M1M2 0x02
-#define SSB_CHIPCO_CLK_MC_M1M2M3 0x01
-#define SSB_CHIPCO_CLK_MC_M1M3 0x11
-
-/* Type 2 Clock control magic field values */
-#define SSB_CHIPCO_CLK_T2_BIAS 2 /* n1, n2, m1 & m3 bias */
-#define SSB_CHIPCO_CLK_T2M2_BIAS 3 /* m2 bias */
-
-#define SSB_CHIPCO_CLK_T2MC_M1BYP 1
-#define SSB_CHIPCO_CLK_T2MC_M2BYP 2
-#define SSB_CHIPCO_CLK_T2MC_M3BYP 4
-
-/* Type 6 Clock control magic field values */
-#define SSB_CHIPCO_CLK_T6_MMASK 1 /* bits of interest in m */
-#define SSB_CHIPCO_CLK_T6_M0 120000000 /* sb clock for m = 0 */
-#define SSB_CHIPCO_CLK_T6_M1 100000000 /* sb clock for m = 1 */
-#define SSB_CHIPCO_CLK_SB2MIPS_T6(sb) (2 * (sb))
-
-/* Common clock base */
-#define SSB_CHIPCO_CLK_BASE1 24000000 /* Half the clock freq */
-#define SSB_CHIPCO_CLK_BASE2 12500000 /* Alternate crystal on some PLL's */
-
-/* Clock control values for 200Mhz in 5350 */
-#define SSB_CHIPCO_CLK_5350_N 0x0311
-#define SSB_CHIPCO_CLK_5350_M 0x04020009
-
-
-/** Bits in the config registers **/
-
-#define SSB_CHIPCO_CFG_EN 0x0001 /* Enable */
-#define SSB_CHIPCO_CFG_EXTM 0x000E /* Extif Mode */
-#define SSB_CHIPCO_CFG_EXTM_ASYNC 0x0002 /* Async/Parallel flash */
-#define SSB_CHIPCO_CFG_EXTM_SYNC 0x0004 /* Synchronous */
-#define SSB_CHIPCO_CFG_EXTM_PCMCIA 0x0008 /* PCMCIA */
-#define SSB_CHIPCO_CFG_EXTM_IDE 0x000A /* IDE */
-#define SSB_CHIPCO_CFG_DS16 0x0010 /* Data size, 0=8bit, 1=16bit */
-#define SSB_CHIPCO_CFG_CLKDIV 0x0060 /* Sync: Clock divisor */
-#define SSB_CHIPCO_CFG_CLKEN 0x0080 /* Sync: Clock enable */
-#define SSB_CHIPCO_CFG_BSTRO 0x0100 /* Sync: Size/Bytestrobe */
-
-
-/** Flash-specific control/status values */
-
-/* flashcontrol opcodes for ST flashes */
-#define SSB_CHIPCO_FLASHCTL_ST_WREN 0x0006 /* Write Enable */
-#define SSB_CHIPCO_FLASHCTL_ST_WRDIS 0x0004 /* Write Disable */
-#define SSB_CHIPCO_FLASHCTL_ST_RDSR 0x0105 /* Read Status Register */
-#define SSB_CHIPCO_FLASHCTL_ST_WRSR 0x0101 /* Write Status Register */
-#define SSB_CHIPCO_FLASHCTL_ST_READ 0x0303 /* Read Data Bytes */
-#define SSB_CHIPCO_FLASHCTL_ST_PP 0x0302 /* Page Program */
-#define SSB_CHIPCO_FLASHCTL_ST_SE 0x02D8 /* Sector Erase */
-#define SSB_CHIPCO_FLASHCTL_ST_BE 0x00C7 /* Bulk Erase */
-#define SSB_CHIPCO_FLASHCTL_ST_DP 0x00B9 /* Deep Power-down */
-#define SSB_CHIPCO_FLASHCTL_ST_RSIG 0x03AB /* Read Electronic Signature */
-
-/* Status register bits for ST flashes */
-#define SSB_CHIPCO_FLASHSTA_ST_WIP 0x01 /* Write In Progress */
-#define SSB_CHIPCO_FLASHSTA_ST_WEL 0x02 /* Write Enable Latch */
-#define SSB_CHIPCO_FLASHSTA_ST_BP 0x1C /* Block Protect */
-#define SSB_CHIPCO_FLASHSTA_ST_BP_SHIFT 2
-#define SSB_CHIPCO_FLASHSTA_ST_SRWD 0x80 /* Status Register Write Disable */
-
-/* flashcontrol opcodes for Atmel flashes */
-#define SSB_CHIPCO_FLASHCTL_AT_READ 0x07E8
-#define SSB_CHIPCO_FLASHCTL_AT_PAGE_READ 0x07D2
-#define SSB_CHIPCO_FLASHCTL_AT_BUF1_READ /* FIXME */
-#define SSB_CHIPCO_FLASHCTL_AT_BUF2_READ /* FIXME */
-#define SSB_CHIPCO_FLASHCTL_AT_STATUS 0x01D7
-#define SSB_CHIPCO_FLASHCTL_AT_BUF1_WRITE 0x0384
-#define SSB_CHIPCO_FLASHCTL_AT_BUF2_WRITE 0x0387
-#define SSB_CHIPCO_FLASHCTL_AT_BUF1_ERASE_PRGM 0x0283 /* Erase program */
-#define SSB_CHIPCO_FLASHCTL_AT_BUF2_ERASE_PRGM 0x0286 /* Erase program */
-#define SSB_CHIPCO_FLASHCTL_AT_BUF1_PROGRAM 0x0288
-#define SSB_CHIPCO_FLASHCTL_AT_BUF2_PROGRAM 0x0289
-#define SSB_CHIPCO_FLASHCTL_AT_PAGE_ERASE 0x0281
-#define SSB_CHIPCO_FLASHCTL_AT_BLOCK_ERASE 0x0250
-#define SSB_CHIPCO_FLASHCTL_AT_BUF1_WRER_PRGM 0x0382 /* Write erase program */
-#define SSB_CHIPCO_FLASHCTL_AT_BUF2_WRER_PRGM 0x0385 /* Write erase program */
-#define SSB_CHIPCO_FLASHCTL_AT_BUF1_LOAD 0x0253
-#define SSB_CHIPCO_FLASHCTL_AT_BUF2_LOAD 0x0255
-#define SSB_CHIPCO_FLASHCTL_AT_BUF1_COMPARE 0x0260
-#define SSB_CHIPCO_FLASHCTL_AT_BUF2_COMPARE 0x0261
-#define SSB_CHIPCO_FLASHCTL_AT_BUF1_REPROGRAM 0x0258
-#define SSB_CHIPCO_FLASHCTL_AT_BUF2_REPROGRAM 0x0259
-
-/* Status register bits for Atmel flashes */
-#define SSB_CHIPCO_FLASHSTA_AT_READY 0x80
-#define SSB_CHIPCO_FLASHSTA_AT_MISMATCH 0x40
-#define SSB_CHIPCO_FLASHSTA_AT_ID 0x38
-#define SSB_CHIPCO_FLASHSTA_AT_ID_SHIFT 3
-
-
-/** OTP **/
-
-/* OTP regions */
-#define SSB_CHIPCO_OTP_HW_REGION SSB_CHIPCO_OTPS_HW_PROTECT
-#define SSB_CHIPCO_OTP_SW_REGION SSB_CHIPCO_OTPS_SW_PROTECT
-#define SSB_CHIPCO_OTP_CID_REGION SSB_CHIPCO_OTPS_CID_PROTECT
-
-/* OTP regions (Byte offsets from otp size) */
-#define SSB_CHIPCO_OTP_SWLIM_OFF (-8)
-#define SSB_CHIPCO_OTP_CIDBASE_OFF 0
-#define SSB_CHIPCO_OTP_CIDLIM_OFF 8
-
-/* Predefined OTP words (Word offset from otp size) */
-#define SSB_CHIPCO_OTP_BOUNDARY_OFF (-4)
-#define SSB_CHIPCO_OTP_HWSIGN_OFF (-3)
-#define SSB_CHIPCO_OTP_SWSIGN_OFF (-2)
-#define SSB_CHIPCO_OTP_CIDSIGN_OFF (-1)
-
-#define SSB_CHIPCO_OTP_CID_OFF 0
-#define SSB_CHIPCO_OTP_PKG_OFF 1
-#define SSB_CHIPCO_OTP_FID_OFF 2
-#define SSB_CHIPCO_OTP_RSV_OFF 3
-#define SSB_CHIPCO_OTP_LIM_OFF 4
-
-#define SSB_CHIPCO_OTP_SIGNATURE 0x578A
-#define SSB_CHIPCO_OTP_MAGIC 0x4E56
-
-
-struct ssb_device;
-struct ssb_serial_port;
-
-/* Data for the PMU, if available.
- * Check availability with ((struct ssb_chipcommon)->capabilities & SSB_CHIPCO_CAP_PMU)
- */
-struct ssb_chipcommon_pmu {
- u8 rev; /* PMU revision */
- u32 crystalfreq; /* The active crystal frequency (in kHz) */
-};
-
-struct ssb_chipcommon {
- struct ssb_device *dev;
- u32 capabilities;
- u32 status;
- /* Fast Powerup Delay constant */
- u16 fast_pwrup_delay;
- struct ssb_chipcommon_pmu pmu;
-};
-
-static inline bool ssb_chipco_available(struct ssb_chipcommon *cc)
-{
- return (cc->dev != NULL);
-}
-
-/* Register access */
-#define chipco_read32(cc, offset) ssb_read32((cc)->dev, offset)
-#define chipco_write32(cc, offset, val) ssb_write32((cc)->dev, offset, val)
-
-#define chipco_mask32(cc, offset, mask) \
- chipco_write32(cc, offset, chipco_read32(cc, offset) & (mask))
-#define chipco_set32(cc, offset, set) \
- chipco_write32(cc, offset, chipco_read32(cc, offset) | (set))
-#define chipco_maskset32(cc, offset, mask, set) \
- chipco_write32(cc, offset, (chipco_read32(cc, offset) & (mask)) | (set))
-
-extern void ssb_chipcommon_init(struct ssb_chipcommon *cc);
-
-extern void ssb_chipco_suspend(struct ssb_chipcommon *cc);
-extern void ssb_chipco_resume(struct ssb_chipcommon *cc);
-
-extern void ssb_chipco_get_clockcpu(struct ssb_chipcommon *cc,
- u32 *plltype, u32 *n, u32 *m);
-extern void ssb_chipco_get_clockcontrol(struct ssb_chipcommon *cc,
- u32 *plltype, u32 *n, u32 *m);
-extern void ssb_chipco_timing_init(struct ssb_chipcommon *cc,
- unsigned long ns_per_cycle);
-
-enum ssb_clkmode {
- SSB_CLKMODE_SLOW,
- SSB_CLKMODE_FAST,
- SSB_CLKMODE_DYNAMIC,
-};
-
-extern void ssb_chipco_set_clockmode(struct ssb_chipcommon *cc,
- enum ssb_clkmode mode);
-
-extern void ssb_chipco_watchdog_timer_set(struct ssb_chipcommon *cc,
- u32 ticks);
-
-void ssb_chipco_irq_mask(struct ssb_chipcommon *cc, u32 mask, u32 value);
-
-u32 ssb_chipco_irq_status(struct ssb_chipcommon *cc, u32 mask);
-
-/* Chipcommon GPIO pin access. */
-u32 ssb_chipco_gpio_in(struct ssb_chipcommon *cc, u32 mask);
-u32 ssb_chipco_gpio_out(struct ssb_chipcommon *cc, u32 mask, u32 value);
-u32 ssb_chipco_gpio_outen(struct ssb_chipcommon *cc, u32 mask, u32 value);
-u32 ssb_chipco_gpio_control(struct ssb_chipcommon *cc, u32 mask, u32 value);
-u32 ssb_chipco_gpio_intmask(struct ssb_chipcommon *cc, u32 mask, u32 value);
-u32 ssb_chipco_gpio_polarity(struct ssb_chipcommon *cc, u32 mask, u32 value);
-
-#ifdef CONFIG_SSB_SERIAL
-extern int ssb_chipco_serial_init(struct ssb_chipcommon *cc,
- struct ssb_serial_port *ports);
-#endif /* CONFIG_SSB_SERIAL */
-
-/* PMU support */
-extern void ssb_pmu_init(struct ssb_chipcommon *cc);
-
-enum ssb_pmu_ldo_volt_id {
- LDO_PAREF = 0,
- LDO_VOLT1,
- LDO_VOLT2,
- LDO_VOLT3,
-};
-
-void ssb_pmu_set_ldo_voltage(struct ssb_chipcommon *cc,
- enum ssb_pmu_ldo_volt_id id, u32 voltage);
-void ssb_pmu_set_ldo_paref(struct ssb_chipcommon *cc, bool on);
-
-#endif /* LINUX_SSB_CHIPCO_H_ */
diff --git a/ANDROID_3.4.5/include/linux/ssb/ssb_driver_extif.h b/ANDROID_3.4.5/include/linux/ssb/ssb_driver_extif.h
deleted file mode 100644
index 91161f0a..00000000
--- a/ANDROID_3.4.5/include/linux/ssb/ssb_driver_extif.h
+++ /dev/null
@@ -1,214 +0,0 @@
-/*
- * Hardware-specific External Interface I/O core definitions
- * for the BCM47xx family of SiliconBackplane-based chips.
- *
- * The External Interface core supports a total of three external chip selects
- * supporting external interfaces. One of the external chip selects is
- * used for Flash, one is used for PCMCIA, and the other may be
- * programmed to support either a synchronous interface or an
- * asynchronous interface. The asynchronous interface can be used to
- * support external devices such as UARTs and the BCM2019 Bluetooth
- * baseband processor.
- * The external interface core also contains 2 on-chip 16550 UARTs, clock
- * frequency control, a watchdog interrupt timer, and a GPIO interface.
- *
- * Copyright 2005, Broadcom Corporation
- * Copyright 2006, Michael Buesch
- *
- * Licensed under the GPL version 2. See COPYING for details.
- */
-#ifndef LINUX_SSB_EXTIFCORE_H_
-#define LINUX_SSB_EXTIFCORE_H_
-
-/* external interface address space */
-#define SSB_EXTIF_PCMCIA_MEMBASE(x) (x)
-#define SSB_EXTIF_PCMCIA_IOBASE(x) ((x) + 0x100000)
-#define SSB_EXTIF_PCMCIA_CFGBASE(x) ((x) + 0x200000)
-#define SSB_EXTIF_CFGIF_BASE(x) ((x) + 0x800000)
-#define SSB_EXTIF_FLASH_BASE(x) ((x) + 0xc00000)
-
-#define SSB_EXTIF_NR_GPIOOUT 5
-/* GPIO NOTE:
- * The multiple instances of output and output enable registers
- * are present to allow driver software for multiple cores to control
- * gpio outputs without needing to share a single register pair.
- * Use the following helper macro to get a register offset value.
- */
-#define SSB_EXTIF_GPIO_OUT(index) ({ \
- BUILD_BUG_ON(index >= SSB_EXTIF_NR_GPIOOUT); \
- SSB_EXTIF_GPIO_OUT_BASE + ((index) * 8); \
- })
-#define SSB_EXTIF_GPIO_OUTEN(index) ({ \
- BUILD_BUG_ON(index >= SSB_EXTIF_NR_GPIOOUT); \
- SSB_EXTIF_GPIO_OUTEN_BASE + ((index) * 8); \
- })
-
-/** EXTIF core registers **/
-
-#define SSB_EXTIF_CTL 0x0000
-#define SSB_EXTIF_CTL_UARTEN (1 << 0) /* UART enable */
-#define SSB_EXTIF_EXTSTAT 0x0004
-#define SSB_EXTIF_EXTSTAT_EMODE (1 << 0) /* Endian mode (ro) */
-#define SSB_EXTIF_EXTSTAT_EIRQPIN (1 << 1) /* External interrupt pin (ro) */
-#define SSB_EXTIF_EXTSTAT_GPIOIRQPIN (1 << 2) /* GPIO interrupt pin (ro) */
-#define SSB_EXTIF_PCMCIA_CFG 0x0010
-#define SSB_EXTIF_PCMCIA_MEMWAIT 0x0014
-#define SSB_EXTIF_PCMCIA_ATTRWAIT 0x0018
-#define SSB_EXTIF_PCMCIA_IOWAIT 0x001C
-#define SSB_EXTIF_PROG_CFG 0x0020
-#define SSB_EXTIF_PROG_WAITCNT 0x0024
-#define SSB_EXTIF_FLASH_CFG 0x0028
-#define SSB_EXTIF_FLASH_WAITCNT 0x002C
-#define SSB_EXTIF_WATCHDOG 0x0040
-#define SSB_EXTIF_CLOCK_N 0x0044
-#define SSB_EXTIF_CLOCK_SB 0x0048
-#define SSB_EXTIF_CLOCK_PCI 0x004C
-#define SSB_EXTIF_CLOCK_MII 0x0050
-#define SSB_EXTIF_GPIO_IN 0x0060
-#define SSB_EXTIF_GPIO_OUT_BASE 0x0064
-#define SSB_EXTIF_GPIO_OUTEN_BASE 0x0068
-#define SSB_EXTIF_EJTAG_OUTEN 0x0090
-#define SSB_EXTIF_GPIO_INTPOL 0x0094
-#define SSB_EXTIF_GPIO_INTMASK 0x0098
-#define SSB_EXTIF_UART_DATA 0x0300
-#define SSB_EXTIF_UART_TIMER 0x0310
-#define SSB_EXTIF_UART_FCR 0x0320
-#define SSB_EXTIF_UART_LCR 0x0330
-#define SSB_EXTIF_UART_MCR 0x0340
-#define SSB_EXTIF_UART_LSR 0x0350
-#define SSB_EXTIF_UART_MSR 0x0360
-#define SSB_EXTIF_UART_SCRATCH 0x0370
-
-
-
-
-/* pcmcia/prog/flash_config */
-#define SSB_EXTCFG_EN (1 << 0) /* enable */
-#define SSB_EXTCFG_MODE 0xE /* mode */
-#define SSB_EXTCFG_MODE_SHIFT 1
-#define SSB_EXTCFG_MODE_FLASH 0x0 /* flash/asynchronous mode */
-#define SSB_EXTCFG_MODE_SYNC 0x2 /* synchronous mode */
-#define SSB_EXTCFG_MODE_PCMCIA 0x4 /* pcmcia mode */
-#define SSB_EXTCFG_DS16 (1 << 4) /* destsize: 0=8bit, 1=16bit */
-#define SSB_EXTCFG_BSWAP (1 << 5) /* byteswap */
-#define SSB_EXTCFG_CLKDIV 0xC0 /* clock divider */
-#define SSB_EXTCFG_CLKDIV_SHIFT 6
-#define SSB_EXTCFG_CLKDIV_2 0x0 /* backplane/2 */
-#define SSB_EXTCFG_CLKDIV_3 0x40 /* backplane/3 */
-#define SSB_EXTCFG_CLKDIV_4 0x80 /* backplane/4 */
-#define SSB_EXTCFG_CLKEN (1 << 8) /* clock enable */
-#define SSB_EXTCFG_STROBE (1 << 9) /* size/bytestrobe (synch only) */
-
-/* pcmcia_memwait */
-#define SSB_PCMCIA_MEMW_0 0x0000003F /* waitcount0 */
-#define SSB_PCMCIA_MEMW_1 0x00001F00 /* waitcount1 */
-#define SSB_PCMCIA_MEMW_1_SHIFT 8
-#define SSB_PCMCIA_MEMW_2 0x001F0000 /* waitcount2 */
-#define SSB_PCMCIA_MEMW_2_SHIFT 16
-#define SSB_PCMCIA_MEMW_3 0x1F000000 /* waitcount3 */
-#define SSB_PCMCIA_MEMW_3_SHIFT 24
-
-/* pcmcia_attrwait */
-#define SSB_PCMCIA_ATTW_0 0x0000003F /* waitcount0 */
-#define SSB_PCMCIA_ATTW_1 0x00001F00 /* waitcount1 */
-#define SSB_PCMCIA_ATTW_1_SHIFT 8
-#define SSB_PCMCIA_ATTW_2 0x001F0000 /* waitcount2 */
-#define SSB_PCMCIA_ATTW_2_SHIFT 16
-#define SSB_PCMCIA_ATTW_3 0x1F000000 /* waitcount3 */
-#define SSB_PCMCIA_ATTW_3_SHIFT 24
-
-/* pcmcia_iowait */
-#define SSB_PCMCIA_IOW_0 0x0000003F /* waitcount0 */
-#define SSB_PCMCIA_IOW_1 0x00001F00 /* waitcount1 */
-#define SSB_PCMCIA_IOW_1_SHIFT 8
-#define SSB_PCMCIA_IOW_2 0x001F0000 /* waitcount2 */
-#define SSB_PCMCIA_IOW_2_SHIFT 16
-#define SSB_PCMCIA_IOW_3 0x1F000000 /* waitcount3 */
-#define SSB_PCMCIA_IOW_3_SHIFT 24
-
-/* prog_waitcount */
-#define SSB_PROG_WCNT_0 0x0000001F /* waitcount0 */
-#define SSB_PROG_WCNT_1 0x00001F00 /* waitcount1 */
-#define SSB_PROG_WCNT_1_SHIFT 8
-#define SSB_PROG_WCNT_2 0x001F0000 /* waitcount2 */
-#define SSB_PROG_WCNT_2_SHIFT 16
-#define SSB_PROG_WCNT_3 0x1F000000 /* waitcount3 */
-#define SSB_PROG_WCNT_3_SHIFT 24
-
-#define SSB_PROG_W0 0x0000000C
-#define SSB_PROG_W1 0x00000A00
-#define SSB_PROG_W2 0x00020000
-#define SSB_PROG_W3 0x01000000
-
-/* flash_waitcount */
-#define SSB_FLASH_WCNT_0 0x0000001F /* waitcount0 */
-#define SSB_FLASH_WCNT_1 0x00001F00 /* waitcount1 */
-#define SSB_FLASH_WCNT_1_SHIFT 8
-#define SSB_FLASH_WCNT_2 0x001F0000 /* waitcount2 */
-#define SSB_FLASH_WCNT_2_SHIFT 16
-#define SSB_FLASH_WCNT_3 0x1F000000 /* waitcount3 */
-#define SSB_FLASH_WCNT_3_SHIFT 24
-
-/* watchdog */
-#define SSB_EXTIF_WATCHDOG_CLK 48000000 /* Hz */
-
-
-
-#ifdef CONFIG_SSB_DRIVER_EXTIF
-
-struct ssb_extif {
- struct ssb_device *dev;
-};
-
-static inline bool ssb_extif_available(struct ssb_extif *extif)
-{
- return (extif->dev != NULL);
-}
-
-extern void ssb_extif_get_clockcontrol(struct ssb_extif *extif,
- u32 *plltype, u32 *n, u32 *m);
-
-extern void ssb_extif_timing_init(struct ssb_extif *extif,
- unsigned long ns);
-
-extern void ssb_extif_watchdog_timer_set(struct ssb_extif *extif,
- u32 ticks);
-
-/* Extif GPIO pin access */
-u32 ssb_extif_gpio_in(struct ssb_extif *extif, u32 mask);
-u32 ssb_extif_gpio_out(struct ssb_extif *extif, u32 mask, u32 value);
-u32 ssb_extif_gpio_outen(struct ssb_extif *extif, u32 mask, u32 value);
-u32 ssb_extif_gpio_polarity(struct ssb_extif *extif, u32 mask, u32 value);
-u32 ssb_extif_gpio_intmask(struct ssb_extif *extif, u32 mask, u32 value);
-
-#ifdef CONFIG_SSB_SERIAL
-extern int ssb_extif_serial_init(struct ssb_extif *extif,
- struct ssb_serial_port *ports);
-#endif /* CONFIG_SSB_SERIAL */
-
-
-#else /* CONFIG_SSB_DRIVER_EXTIF */
-/* extif disabled */
-
-struct ssb_extif {
-};
-
-static inline bool ssb_extif_available(struct ssb_extif *extif)
-{
- return 0;
-}
-
-static inline
-void ssb_extif_get_clockcontrol(struct ssb_extif *extif,
- u32 *plltype, u32 *n, u32 *m)
-{
-}
-
-static inline
-void ssb_extif_watchdog_timer_set(struct ssb_extif *extif,
- u32 ticks)
-{
-}
-
-#endif /* CONFIG_SSB_DRIVER_EXTIF */
-#endif /* LINUX_SSB_EXTIFCORE_H_ */
diff --git a/ANDROID_3.4.5/include/linux/ssb/ssb_driver_gige.h b/ANDROID_3.4.5/include/linux/ssb/ssb_driver_gige.h
deleted file mode 100644
index 6b05dcd9..00000000
--- a/ANDROID_3.4.5/include/linux/ssb/ssb_driver_gige.h
+++ /dev/null
@@ -1,180 +0,0 @@
-#ifndef LINUX_SSB_DRIVER_GIGE_H_
-#define LINUX_SSB_DRIVER_GIGE_H_
-
-#include <linux/ssb/ssb.h>
-#include <linux/bug.h>
-#include <linux/pci.h>
-#include <linux/spinlock.h>
-
-
-#ifdef CONFIG_SSB_DRIVER_GIGE
-
-
-#define SSB_GIGE_PCIIO 0x0000 /* PCI I/O Registers (1024 bytes) */
-#define SSB_GIGE_RESERVED 0x0400 /* Reserved (1024 bytes) */
-#define SSB_GIGE_PCICFG 0x0800 /* PCI config space (256 bytes) */
-#define SSB_GIGE_SHIM_FLUSHSTAT 0x0C00 /* PCI to OCP: Flush status control (32bit) */
-#define SSB_GIGE_SHIM_FLUSHRDA 0x0C04 /* PCI to OCP: Flush read address (32bit) */
-#define SSB_GIGE_SHIM_FLUSHTO 0x0C08 /* PCI to OCP: Flush timeout counter (32bit) */
-#define SSB_GIGE_SHIM_BARRIER 0x0C0C /* PCI to OCP: Barrier register (32bit) */
-#define SSB_GIGE_SHIM_MAOCPSI 0x0C10 /* PCI to OCP: MaocpSI Control (32bit) */
-#define SSB_GIGE_SHIM_SIOCPMA 0x0C14 /* PCI to OCP: SiocpMa Control (32bit) */
-
-/* TM Status High flags */
-#define SSB_GIGE_TMSHIGH_RGMII 0x00010000 /* Have an RGMII PHY-bus */
-/* TM Status Low flags */
-#define SSB_GIGE_TMSLOW_TXBYPASS 0x00080000 /* TX bypass (no delay) */
-#define SSB_GIGE_TMSLOW_RXBYPASS 0x00100000 /* RX bypass (no delay) */
-#define SSB_GIGE_TMSLOW_DLLEN 0x01000000 /* Enable DLL controls */
-
-/* Boardflags (low) */
-#define SSB_GIGE_BFL_ROBOSWITCH 0x0010
-
-
-#define SSB_GIGE_MEM_RES_NAME "SSB Broadcom 47xx GigE memory"
-#define SSB_GIGE_IO_RES_NAME "SSB Broadcom 47xx GigE I/O"
-
-struct ssb_gige {
- struct ssb_device *dev;
-
- spinlock_t lock;
-
- /* True, if the device has an RGMII bus.
- * False, if the device has a GMII bus. */
- bool has_rgmii;
-
- /* The PCI controller device. */
- struct pci_controller pci_controller;
- struct pci_ops pci_ops;
- struct resource mem_resource;
- struct resource io_resource;
-};
-
-/* Check whether a PCI device is a SSB Gigabit Ethernet core. */
-extern bool pdev_is_ssb_gige_core(struct pci_dev *pdev);
-
-/* Convert a pci_dev pointer to a ssb_gige pointer. */
-static inline struct ssb_gige * pdev_to_ssb_gige(struct pci_dev *pdev)
-{
- if (!pdev_is_ssb_gige_core(pdev))
- return NULL;
- return container_of(pdev->bus->ops, struct ssb_gige, pci_ops);
-}
-
-/* Returns whether the PHY is connected by an RGMII bus. */
-static inline bool ssb_gige_is_rgmii(struct pci_dev *pdev)
-{
- struct ssb_gige *dev = pdev_to_ssb_gige(pdev);
- return (dev ? dev->has_rgmii : 0);
-}
-
-/* Returns whether we have a Roboswitch. */
-static inline bool ssb_gige_have_roboswitch(struct pci_dev *pdev)
-{
- struct ssb_gige *dev = pdev_to_ssb_gige(pdev);
- if (dev)
- return !!(dev->dev->bus->sprom.boardflags_lo &
- SSB_GIGE_BFL_ROBOSWITCH);
- return 0;
-}
-
-/* Returns whether we can only do one DMA at once. */
-static inline bool ssb_gige_one_dma_at_once(struct pci_dev *pdev)
-{
- struct ssb_gige *dev = pdev_to_ssb_gige(pdev);
- if (dev)
- return ((dev->dev->bus->chip_id == 0x4785) &&
- (dev->dev->bus->chip_rev < 2));
- return 0;
-}
-
-/* Returns whether we must flush posted writes. */
-static inline bool ssb_gige_must_flush_posted_writes(struct pci_dev *pdev)
-{
- struct ssb_gige *dev = pdev_to_ssb_gige(pdev);
- if (dev)
- return (dev->dev->bus->chip_id == 0x4785);
- return 0;
-}
-
-#ifdef CONFIG_BCM47XX
-#include <asm/mach-bcm47xx/nvram.h>
-/* Get the device MAC address */
-static inline void ssb_gige_get_macaddr(struct pci_dev *pdev, u8 *macaddr)
-{
- char buf[20];
- if (nvram_getenv("et0macaddr", buf, sizeof(buf)) < 0)
- return;
- nvram_parse_macaddr(buf, macaddr);
-}
-#else
-static inline void ssb_gige_get_macaddr(struct pci_dev *pdev, u8 *macaddr)
-{
-}
-#endif
-
-extern int ssb_gige_pcibios_plat_dev_init(struct ssb_device *sdev,
- struct pci_dev *pdev);
-extern int ssb_gige_map_irq(struct ssb_device *sdev,
- const struct pci_dev *pdev);
-
-/* The GigE driver is not a standalone module, because we don't have support
- * for unregistering the driver. So we could not unload the module anyway. */
-extern int ssb_gige_init(void);
-static inline void ssb_gige_exit(void)
-{
- /* Currently we can not unregister the GigE driver,
- * because we can not unregister the PCI bridge. */
- BUG();
-}
-
-
-#else /* CONFIG_SSB_DRIVER_GIGE */
-/* Gigabit Ethernet driver disabled */
-
-
-static inline int ssb_gige_pcibios_plat_dev_init(struct ssb_device *sdev,
- struct pci_dev *pdev)
-{
- return -ENOSYS;
-}
-static inline int ssb_gige_map_irq(struct ssb_device *sdev,
- const struct pci_dev *pdev)
-{
- return -ENOSYS;
-}
-static inline int ssb_gige_init(void)
-{
- return 0;
-}
-static inline void ssb_gige_exit(void)
-{
-}
-
-static inline bool pdev_is_ssb_gige_core(struct pci_dev *pdev)
-{
- return 0;
-}
-static inline struct ssb_gige * pdev_to_ssb_gige(struct pci_dev *pdev)
-{
- return NULL;
-}
-static inline bool ssb_gige_is_rgmii(struct pci_dev *pdev)
-{
- return 0;
-}
-static inline bool ssb_gige_have_roboswitch(struct pci_dev *pdev)
-{
- return 0;
-}
-static inline bool ssb_gige_one_dma_at_once(struct pci_dev *pdev)
-{
- return 0;
-}
-static inline bool ssb_gige_must_flush_posted_writes(struct pci_dev *pdev)
-{
- return 0;
-}
-
-#endif /* CONFIG_SSB_DRIVER_GIGE */
-#endif /* LINUX_SSB_DRIVER_GIGE_H_ */
diff --git a/ANDROID_3.4.5/include/linux/ssb/ssb_driver_mips.h b/ANDROID_3.4.5/include/linux/ssb/ssb_driver_mips.h
deleted file mode 100644
index 5f44e974..00000000
--- a/ANDROID_3.4.5/include/linux/ssb/ssb_driver_mips.h
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef LINUX_SSB_MIPSCORE_H_
-#define LINUX_SSB_MIPSCORE_H_
-
-#ifdef CONFIG_SSB_DRIVER_MIPS
-
-struct ssb_device;
-
-struct ssb_serial_port {
- void *regs;
- unsigned long clockspeed;
- unsigned int irq;
- unsigned int baud_base;
- unsigned int reg_shift;
-};
-
-
-struct ssb_mipscore {
- struct ssb_device *dev;
-
- int nr_serial_ports;
- struct ssb_serial_port serial_ports[4];
-
- u8 flash_buswidth;
- u32 flash_window;
- u32 flash_window_size;
-};
-
-extern void ssb_mipscore_init(struct ssb_mipscore *mcore);
-extern u32 ssb_cpu_clock(struct ssb_mipscore *mcore);
-
-extern unsigned int ssb_mips_irq(struct ssb_device *dev);
-
-
-#else /* CONFIG_SSB_DRIVER_MIPS */
-
-struct ssb_mipscore {
-};
-
-static inline
-void ssb_mipscore_init(struct ssb_mipscore *mcore)
-{
-}
-
-#endif /* CONFIG_SSB_DRIVER_MIPS */
-
-#endif /* LINUX_SSB_MIPSCORE_H_ */
diff --git a/ANDROID_3.4.5/include/linux/ssb/ssb_driver_pci.h b/ANDROID_3.4.5/include/linux/ssb/ssb_driver_pci.h
deleted file mode 100644
index 41e330e5..00000000
--- a/ANDROID_3.4.5/include/linux/ssb/ssb_driver_pci.h
+++ /dev/null
@@ -1,130 +0,0 @@
-#ifndef LINUX_SSB_PCICORE_H_
-#define LINUX_SSB_PCICORE_H_
-
-#include <linux/types.h>
-
-struct pci_dev;
-
-
-#ifdef CONFIG_SSB_DRIVER_PCICORE
-
-/* PCI core registers. */
-#define SSB_PCICORE_CTL 0x0000 /* PCI Control */
-#define SSB_PCICORE_CTL_RST_OE 0x00000001 /* PCI_RESET Output Enable */
-#define SSB_PCICORE_CTL_RST 0x00000002 /* PCI_RESET driven out to pin */
-#define SSB_PCICORE_CTL_CLK_OE 0x00000004 /* Clock gate Output Enable */
-#define SSB_PCICORE_CTL_CLK 0x00000008 /* Gate for clock driven out to pin */
-#define SSB_PCICORE_ARBCTL 0x0010 /* PCI Arbiter Control */
-#define SSB_PCICORE_ARBCTL_INTERN 0x00000001 /* Use internal arbiter */
-#define SSB_PCICORE_ARBCTL_EXTERN 0x00000002 /* Use external arbiter */
-#define SSB_PCICORE_ARBCTL_PARKID 0x00000006 /* Mask, selects which agent is parked on an idle bus */
-#define SSB_PCICORE_ARBCTL_PARKID_LAST 0x00000000 /* Last requestor */
-#define SSB_PCICORE_ARBCTL_PARKID_4710 0x00000002 /* 4710 */
-#define SSB_PCICORE_ARBCTL_PARKID_EXT0 0x00000004 /* External requestor 0 */
-#define SSB_PCICORE_ARBCTL_PARKID_EXT1 0x00000006 /* External requestor 1 */
-#define SSB_PCICORE_ISTAT 0x0020 /* Interrupt status */
-#define SSB_PCICORE_ISTAT_INTA 0x00000001 /* PCI INTA# */
-#define SSB_PCICORE_ISTAT_INTB 0x00000002 /* PCI INTB# */
-#define SSB_PCICORE_ISTAT_SERR 0x00000004 /* PCI SERR# (write to clear) */
-#define SSB_PCICORE_ISTAT_PERR 0x00000008 /* PCI PERR# (write to clear) */
-#define SSB_PCICORE_ISTAT_PME 0x00000010 /* PCI PME# */
-#define SSB_PCICORE_IMASK 0x0024 /* Interrupt mask */
-#define SSB_PCICORE_IMASK_INTA 0x00000001 /* PCI INTA# */
-#define SSB_PCICORE_IMASK_INTB 0x00000002 /* PCI INTB# */
-#define SSB_PCICORE_IMASK_SERR 0x00000004 /* PCI SERR# */
-#define SSB_PCICORE_IMASK_PERR 0x00000008 /* PCI PERR# */
-#define SSB_PCICORE_IMASK_PME 0x00000010 /* PCI PME# */
-#define SSB_PCICORE_MBOX 0x0028 /* Backplane to PCI Mailbox */
-#define SSB_PCICORE_MBOX_F0_0 0x00000100 /* PCI function 0, INT 0 */
-#define SSB_PCICORE_MBOX_F0_1 0x00000200 /* PCI function 0, INT 1 */
-#define SSB_PCICORE_MBOX_F1_0 0x00000400 /* PCI function 1, INT 0 */
-#define SSB_PCICORE_MBOX_F1_1 0x00000800 /* PCI function 1, INT 1 */
-#define SSB_PCICORE_MBOX_F2_0 0x00001000 /* PCI function 2, INT 0 */
-#define SSB_PCICORE_MBOX_F2_1 0x00002000 /* PCI function 2, INT 1 */
-#define SSB_PCICORE_MBOX_F3_0 0x00004000 /* PCI function 3, INT 0 */
-#define SSB_PCICORE_MBOX_F3_1 0x00008000 /* PCI function 3, INT 1 */
-#define SSB_PCICORE_BCAST_ADDR 0x0050 /* Backplane Broadcast Address */
-#define SSB_PCICORE_BCAST_ADDR_MASK 0x000000FF
-#define SSB_PCICORE_BCAST_DATA 0x0054 /* Backplane Broadcast Data */
-#define SSB_PCICORE_GPIO_IN 0x0060 /* rev >= 2 only */
-#define SSB_PCICORE_GPIO_OUT 0x0064 /* rev >= 2 only */
-#define SSB_PCICORE_GPIO_ENABLE 0x0068 /* rev >= 2 only */
-#define SSB_PCICORE_GPIO_CTL 0x006C /* rev >= 2 only */
-#define SSB_PCICORE_SBTOPCI0 0x0100 /* Backplane to PCI translation 0 (sbtopci0) */
-#define SSB_PCICORE_SBTOPCI0_MASK 0xFC000000
-#define SSB_PCICORE_SBTOPCI1 0x0104 /* Backplane to PCI translation 1 (sbtopci1) */
-#define SSB_PCICORE_SBTOPCI1_MASK 0xFC000000
-#define SSB_PCICORE_SBTOPCI2 0x0108 /* Backplane to PCI translation 2 (sbtopci2) */
-#define SSB_PCICORE_SBTOPCI2_MASK 0xC0000000
-#define SSB_PCICORE_PCICFG0 0x0400 /* PCI config space 0 (rev >= 8) */
-#define SSB_PCICORE_PCICFG1 0x0500 /* PCI config space 1 (rev >= 8) */
-#define SSB_PCICORE_PCICFG2 0x0600 /* PCI config space 2 (rev >= 8) */
-#define SSB_PCICORE_PCICFG3 0x0700 /* PCI config space 3 (rev >= 8) */
-#define SSB_PCICORE_SPROM(wordoffset) (0x0800 + ((wordoffset) * 2)) /* SPROM shadow area (72 bytes) */
-
-/* SBtoPCIx */
-#define SSB_PCICORE_SBTOPCI_MEM 0x00000000
-#define SSB_PCICORE_SBTOPCI_IO 0x00000001
-#define SSB_PCICORE_SBTOPCI_CFG0 0x00000002
-#define SSB_PCICORE_SBTOPCI_CFG1 0x00000003
-#define SSB_PCICORE_SBTOPCI_PREF 0x00000004 /* Prefetch enable */
-#define SSB_PCICORE_SBTOPCI_BURST 0x00000008 /* Burst enable */
-#define SSB_PCICORE_SBTOPCI_MRM 0x00000020 /* Memory Read Multiple */
-#define SSB_PCICORE_SBTOPCI_RC 0x00000030 /* Read Command mask (rev >= 11) */
-#define SSB_PCICORE_SBTOPCI_RC_READ 0x00000000 /* Memory read */
-#define SSB_PCICORE_SBTOPCI_RC_READL 0x00000010 /* Memory read line */
-#define SSB_PCICORE_SBTOPCI_RC_READM 0x00000020 /* Memory read multiple */
-
-
-/* PCIcore specific boardflags */
-#define SSB_PCICORE_BFL_NOPCI 0x00000400 /* Board leaves PCI floating */
-
-
-struct ssb_pcicore {
- struct ssb_device *dev;
- u8 setup_done:1;
- u8 hostmode:1;
- u8 cardbusmode:1;
-};
-
-extern void ssb_pcicore_init(struct ssb_pcicore *pc);
-
-/* Enable IRQ routing for a specific device */
-extern int ssb_pcicore_dev_irqvecs_enable(struct ssb_pcicore *pc,
- struct ssb_device *dev);
-
-int ssb_pcicore_plat_dev_init(struct pci_dev *d);
-int ssb_pcicore_pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin);
-
-
-#else /* CONFIG_SSB_DRIVER_PCICORE */
-
-
-struct ssb_pcicore {
-};
-
-static inline
-void ssb_pcicore_init(struct ssb_pcicore *pc)
-{
-}
-
-static inline
-int ssb_pcicore_dev_irqvecs_enable(struct ssb_pcicore *pc,
- struct ssb_device *dev)
-{
- return 0;
-}
-
-static inline
-int ssb_pcicore_plat_dev_init(struct pci_dev *d)
-{
- return -ENODEV;
-}
-static inline
-int ssb_pcicore_pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
-{
- return -ENODEV;
-}
-
-#endif /* CONFIG_SSB_DRIVER_PCICORE */
-#endif /* LINUX_SSB_PCICORE_H_ */
diff --git a/ANDROID_3.4.5/include/linux/ssb/ssb_embedded.h b/ANDROID_3.4.5/include/linux/ssb/ssb_embedded.h
deleted file mode 100644
index 8d8dedff..00000000
--- a/ANDROID_3.4.5/include/linux/ssb/ssb_embedded.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef LINUX_SSB_EMBEDDED_H_
-#define LINUX_SSB_EMBEDDED_H_
-
-#include <linux/types.h>
-#include <linux/ssb/ssb.h>
-
-
-extern int ssb_watchdog_timer_set(struct ssb_bus *bus, u32 ticks);
-
-/* Generic GPIO API */
-u32 ssb_gpio_in(struct ssb_bus *bus, u32 mask);
-u32 ssb_gpio_out(struct ssb_bus *bus, u32 mask, u32 value);
-u32 ssb_gpio_outen(struct ssb_bus *bus, u32 mask, u32 value);
-u32 ssb_gpio_control(struct ssb_bus *bus, u32 mask, u32 value);
-u32 ssb_gpio_intmask(struct ssb_bus *bus, u32 mask, u32 value);
-u32 ssb_gpio_polarity(struct ssb_bus *bus, u32 mask, u32 value);
-
-#endif /* LINUX_SSB_EMBEDDED_H_ */
diff --git a/ANDROID_3.4.5/include/linux/ssb/ssb_regs.h b/ANDROID_3.4.5/include/linux/ssb/ssb_regs.h
deleted file mode 100644
index 40b1ef85..00000000
--- a/ANDROID_3.4.5/include/linux/ssb/ssb_regs.h
+++ /dev/null
@@ -1,594 +0,0 @@
-#ifndef LINUX_SSB_REGS_H_
-#define LINUX_SSB_REGS_H_
-
-
-/* SiliconBackplane Address Map.
- * All regions may not exist on all chips.
- */
-#define SSB_SDRAM_BASE 0x00000000U /* Physical SDRAM */
-#define SSB_PCI_MEM 0x08000000U /* Host Mode sb2pcitranslation0 (64 MB) */
-#define SSB_PCI_CFG 0x0c000000U /* Host Mode sb2pcitranslation1 (64 MB) */
-#define SSB_SDRAM_SWAPPED 0x10000000U /* Byteswapped Physical SDRAM */
-#define SSB_ENUM_BASE 0x18000000U /* Enumeration space base */
-#define SSB_ENUM_LIMIT 0x18010000U /* Enumeration space limit */
-
-#define SSB_FLASH2 0x1c000000U /* Flash Region 2 (region 1 shadowed here) */
-#define SSB_FLASH2_SZ 0x02000000U /* Size of Flash Region 2 */
-
-#define SSB_EXTIF_BASE 0x1f000000U /* External Interface region base address */
-#define SSB_FLASH1 0x1fc00000U /* Flash Region 1 */
-#define SSB_FLASH1_SZ 0x00400000U /* Size of Flash Region 1 */
-
-#define SSB_PCI_DMA 0x40000000U /* Client Mode sb2pcitranslation2 (1 GB) */
-#define SSB_PCI_DMA_SZ 0x40000000U /* Client Mode sb2pcitranslation2 size in bytes */
-#define SSB_PCIE_DMA_L32 0x00000000U /* PCIE Client Mode sb2pcitranslation2 (2 ZettaBytes), low 32 bits */
-#define SSB_PCIE_DMA_H32 0x80000000U /* PCIE Client Mode sb2pcitranslation2 (2 ZettaBytes), high 32 bits */
-#define SSB_EUART (SSB_EXTIF_BASE + 0x00800000)
-#define SSB_LED (SSB_EXTIF_BASE + 0x00900000)
-
-
-/* Enumeration space constants */
-#define SSB_CORE_SIZE 0x1000 /* Size of a core MMIO area */
-#define SSB_MAX_NR_CORES ((SSB_ENUM_LIMIT - SSB_ENUM_BASE) / SSB_CORE_SIZE)
-
-
-/* mips address */
-#define SSB_EJTAG 0xff200000 /* MIPS EJTAG space (2M) */
-
-
-/* SSB PCI config space registers. */
-#define SSB_PMCSR 0x44
-#define SSB_PE 0x100
-#define SSB_BAR0_WIN 0x80 /* Backplane address space 0 */
-#define SSB_BAR1_WIN 0x84 /* Backplane address space 1 */
-#define SSB_SPROMCTL 0x88 /* SPROM control */
-#define SSB_SPROMCTL_WE 0x10 /* SPROM write enable */
-#define SSB_BAR1_CONTROL 0x8c /* Address space 1 burst control */
-#define SSB_PCI_IRQS 0x90 /* PCI interrupts */
-#define SSB_PCI_IRQMASK 0x94 /* PCI IRQ control and mask (pcirev >= 6 only) */
-#define SSB_BACKPLANE_IRQS 0x98 /* Backplane Interrupts */
-#define SSB_GPIO_IN 0xB0 /* GPIO Input (pcirev >= 3 only) */
-#define SSB_GPIO_OUT 0xB4 /* GPIO Output (pcirev >= 3 only) */
-#define SSB_GPIO_OUT_ENABLE 0xB8 /* GPIO Output Enable/Disable (pcirev >= 3 only) */
-#define SSB_GPIO_SCS 0x10 /* PCI config space bit 4 for 4306c0 slow clock source */
-#define SSB_GPIO_HWRAD 0x20 /* PCI config space GPIO 13 for hw radio disable */
-#define SSB_GPIO_XTAL 0x40 /* PCI config space GPIO 14 for Xtal powerup */
-#define SSB_GPIO_PLL 0x80 /* PCI config space GPIO 15 for PLL powerdown */
-
-
-#define SSB_BAR0_MAX_RETRIES 50
-
-/* Silicon backplane configuration register definitions */
-#define SSB_IPSFLAG 0x0F08
-#define SSB_IPSFLAG_IRQ1 0x0000003F /* which sbflags get routed to mips interrupt 1 */
-#define SSB_IPSFLAG_IRQ1_SHIFT 0
-#define SSB_IPSFLAG_IRQ2 0x00003F00 /* which sbflags get routed to mips interrupt 2 */
-#define SSB_IPSFLAG_IRQ2_SHIFT 8
-#define SSB_IPSFLAG_IRQ3 0x003F0000 /* which sbflags get routed to mips interrupt 3 */
-#define SSB_IPSFLAG_IRQ3_SHIFT 16
-#define SSB_IPSFLAG_IRQ4 0x3F000000 /* which sbflags get routed to mips interrupt 4 */
-#define SSB_IPSFLAG_IRQ4_SHIFT 24
-#define SSB_TPSFLAG 0x0F18
-#define SSB_TPSFLAG_BPFLAG 0x0000003F /* Backplane flag # */
-#define SSB_TPSFLAG_ALWAYSIRQ 0x00000040 /* IRQ is always sent on the Backplane */
-#define SSB_TMERRLOGA 0x0F48
-#define SSB_TMERRLOG 0x0F50
-#define SSB_ADMATCH3 0x0F60
-#define SSB_ADMATCH2 0x0F68
-#define SSB_ADMATCH1 0x0F70
-#define SSB_IMSTATE 0x0F90 /* SB Initiator Agent State */
-#define SSB_IMSTATE_PC 0x0000000f /* Pipe Count */
-#define SSB_IMSTATE_AP_MASK 0x00000030 /* Arbitration Priority */
-#define SSB_IMSTATE_AP_BOTH 0x00000000 /* Use both timeslices and token */
-#define SSB_IMSTATE_AP_TS 0x00000010 /* Use timeslices only */
-#define SSB_IMSTATE_AP_TK 0x00000020 /* Use token only */
-#define SSB_IMSTATE_AP_RSV 0x00000030 /* Reserved */
-#define SSB_IMSTATE_IBE 0x00020000 /* In Band Error */
-#define SSB_IMSTATE_TO 0x00040000 /* Timeout */
-#define SSB_IMSTATE_BUSY 0x01800000 /* Busy (Backplane rev >= 2.3 only) */
-#define SSB_IMSTATE_REJECT 0x02000000 /* Reject (Backplane rev >= 2.3 only) */
-#define SSB_INTVEC 0x0F94 /* SB Interrupt Mask */
-#define SSB_INTVEC_PCI 0x00000001 /* Enable interrupts for PCI */
-#define SSB_INTVEC_ENET0 0x00000002 /* Enable interrupts for enet 0 */
-#define SSB_INTVEC_ILINE20 0x00000004 /* Enable interrupts for iline20 */
-#define SSB_INTVEC_CODEC 0x00000008 /* Enable interrupts for v90 codec */
-#define SSB_INTVEC_USB 0x00000010 /* Enable interrupts for usb */
-#define SSB_INTVEC_EXTIF 0x00000020 /* Enable interrupts for external i/f */
-#define SSB_INTVEC_ENET1 0x00000040 /* Enable interrupts for enet 1 */
-#define SSB_TMSLOW 0x0F98 /* SB Target State Low */
-#define SSB_TMSLOW_RESET 0x00000001 /* Reset */
-#define SSB_TMSLOW_REJECT 0x00000002 /* Reject (Standard Backplane) */
-#define SSB_TMSLOW_REJECT_23 0x00000004 /* Reject (Backplane rev 2.3) */
-#define SSB_TMSLOW_CLOCK 0x00010000 /* Clock Enable */
-#define SSB_TMSLOW_FGC 0x00020000 /* Force Gated Clocks On */
-#define SSB_TMSLOW_PE 0x40000000 /* Power Management Enable */
-#define SSB_TMSLOW_BE 0x80000000 /* BIST Enable */
-#define SSB_TMSHIGH 0x0F9C /* SB Target State High */
-#define SSB_TMSHIGH_SERR 0x00000001 /* S-error */
-#define SSB_TMSHIGH_INT 0x00000002 /* Interrupt */
-#define SSB_TMSHIGH_BUSY 0x00000004 /* Busy */
-#define SSB_TMSHIGH_TO 0x00000020 /* Timeout. Backplane rev >= 2.3 only */
-#define SSB_TMSHIGH_COREFL 0x1FFF0000 /* Core specific flags */
-#define SSB_TMSHIGH_COREFL_SHIFT 16
-#define SSB_TMSHIGH_DMA64 0x10000000 /* 64bit DMA supported */
-#define SSB_TMSHIGH_GCR 0x20000000 /* Gated Clock Request */
-#define SSB_TMSHIGH_BISTF 0x40000000 /* BIST Failed */
-#define SSB_TMSHIGH_BISTD 0x80000000 /* BIST Done */
-#define SSB_BWA0 0x0FA0
-#define SSB_IMCFGLO 0x0FA8
-#define SSB_IMCFGLO_SERTO 0x00000007 /* Service timeout */
-#define SSB_IMCFGLO_REQTO 0x00000070 /* Request timeout */
-#define SSB_IMCFGLO_REQTO_SHIFT 4
-#define SSB_IMCFGLO_CONNID 0x00FF0000 /* Connection ID */
-#define SSB_IMCFGLO_CONNID_SHIFT 16
-#define SSB_IMCFGHI 0x0FAC
-#define SSB_ADMATCH0 0x0FB0
-#define SSB_TMCFGLO 0x0FB8
-#define SSB_TMCFGHI 0x0FBC
-#define SSB_BCONFIG 0x0FC0
-#define SSB_BSTATE 0x0FC8
-#define SSB_ACTCFG 0x0FD8
-#define SSB_FLAGST 0x0FE8
-#define SSB_IDLOW 0x0FF8
-#define SSB_IDLOW_CFGSP 0x00000003 /* Config Space */
-#define SSB_IDLOW_ADDRNGE 0x00000038 /* Address Ranges supported */
-#define SSB_IDLOW_ADDRNGE_SHIFT 3
-#define SSB_IDLOW_SYNC 0x00000040
-#define SSB_IDLOW_INITIATOR 0x00000080
-#define SSB_IDLOW_MIBL 0x00000F00 /* Minimum Backplane latency */
-#define SSB_IDLOW_MIBL_SHIFT 8
-#define SSB_IDLOW_MABL 0x0000F000 /* Maximum Backplane latency */
-#define SSB_IDLOW_MABL_SHIFT 12
-#define SSB_IDLOW_TIF 0x00010000 /* This Initiator is first */
-#define SSB_IDLOW_CCW 0x000C0000 /* Cycle counter width */
-#define SSB_IDLOW_CCW_SHIFT 18
-#define SSB_IDLOW_TPT 0x00F00000 /* Target ports */
-#define SSB_IDLOW_TPT_SHIFT 20
-#define SSB_IDLOW_INITP 0x0F000000 /* Initiator ports */
-#define SSB_IDLOW_INITP_SHIFT 24
-#define SSB_IDLOW_SSBREV 0xF0000000 /* Sonics Backplane Revision code */
-#define SSB_IDLOW_SSBREV_22 0x00000000 /* <= 2.2 */
-#define SSB_IDLOW_SSBREV_23 0x10000000 /* 2.3 */
-#define SSB_IDLOW_SSBREV_24 0x40000000 /* ?? Found in BCM4328 */
-#define SSB_IDLOW_SSBREV_25 0x50000000 /* ?? Not Found yet */
-#define SSB_IDLOW_SSBREV_26 0x60000000 /* ?? Found in some BCM4311/2 */
-#define SSB_IDLOW_SSBREV_27 0x70000000 /* ?? Found in some BCM4311/2 */
-#define SSB_IDHIGH 0x0FFC /* SB Identification High */
-#define SSB_IDHIGH_RCLO 0x0000000F /* Revision Code (low part) */
-#define SSB_IDHIGH_CC 0x00008FF0 /* Core Code */
-#define SSB_IDHIGH_CC_SHIFT 4
-#define SSB_IDHIGH_RCHI 0x00007000 /* Revision Code (high part) */
-#define SSB_IDHIGH_RCHI_SHIFT 8 /* yes, shift 8 is right */
-#define SSB_IDHIGH_VC 0xFFFF0000 /* Vendor Code */
-#define SSB_IDHIGH_VC_SHIFT 16
-
-/* SPROM shadow area. If not otherwise noted, fields are
- * two bytes wide. Note that the SPROM can _only_ be read
- * in two-byte quantities.
- */
-#define SSB_SPROMSIZE_WORDS 64
-#define SSB_SPROMSIZE_BYTES (SSB_SPROMSIZE_WORDS * sizeof(u16))
-#define SSB_SPROMSIZE_WORDS_R123 64
-#define SSB_SPROMSIZE_WORDS_R4 220
-#define SSB_SPROMSIZE_BYTES_R123 (SSB_SPROMSIZE_WORDS_R123 * sizeof(u16))
-#define SSB_SPROMSIZE_BYTES_R4 (SSB_SPROMSIZE_WORDS_R4 * sizeof(u16))
-#define SSB_SPROM_BASE1 0x1000
-#define SSB_SPROM_BASE31 0x0800
-#define SSB_SPROM_REVISION 0x007E
-#define SSB_SPROM_REVISION_REV 0x00FF /* SPROM Revision number */
-#define SSB_SPROM_REVISION_CRC 0xFF00 /* SPROM CRC8 value */
-#define SSB_SPROM_REVISION_CRC_SHIFT 8
-
-/* SPROM Revision 1 */
-#define SSB_SPROM1_SPID 0x0004 /* Subsystem Product ID for PCI */
-#define SSB_SPROM1_SVID 0x0006 /* Subsystem Vendor ID for PCI */
-#define SSB_SPROM1_PID 0x0008 /* Product ID for PCI */
-#define SSB_SPROM1_IL0MAC 0x0048 /* 6 bytes MAC address for 802.11b/g */
-#define SSB_SPROM1_ET0MAC 0x004E /* 6 bytes MAC address for Ethernet */
-#define SSB_SPROM1_ET1MAC 0x0054 /* 6 bytes MAC address for 802.11a */
-#define SSB_SPROM1_ETHPHY 0x005A /* Ethernet PHY settings */
-#define SSB_SPROM1_ETHPHY_ET0A 0x001F /* MII Address for enet0 */
-#define SSB_SPROM1_ETHPHY_ET1A 0x03E0 /* MII Address for enet1 */
-#define SSB_SPROM1_ETHPHY_ET1A_SHIFT 5
-#define SSB_SPROM1_ETHPHY_ET0M (1<<14) /* MDIO for enet0 */
-#define SSB_SPROM1_ETHPHY_ET1M (1<<15) /* MDIO for enet1 */
-#define SSB_SPROM1_BINF 0x005C /* Board info */
-#define SSB_SPROM1_BINF_BREV 0x00FF /* Board Revision */
-#define SSB_SPROM1_BINF_CCODE 0x0F00 /* Country Code */
-#define SSB_SPROM1_BINF_CCODE_SHIFT 8
-#define SSB_SPROM1_BINF_ANTBG 0x3000 /* Available B-PHY and G-PHY antennas */
-#define SSB_SPROM1_BINF_ANTBG_SHIFT 12
-#define SSB_SPROM1_BINF_ANTA 0xC000 /* Available A-PHY antennas */
-#define SSB_SPROM1_BINF_ANTA_SHIFT 14
-#define SSB_SPROM1_PA0B0 0x005E
-#define SSB_SPROM1_PA0B1 0x0060
-#define SSB_SPROM1_PA0B2 0x0062
-#define SSB_SPROM1_GPIOA 0x0064 /* General Purpose IO pins 0 and 1 */
-#define SSB_SPROM1_GPIOA_P0 0x00FF /* Pin 0 */
-#define SSB_SPROM1_GPIOA_P1 0xFF00 /* Pin 1 */
-#define SSB_SPROM1_GPIOA_P1_SHIFT 8
-#define SSB_SPROM1_GPIOB 0x0066 /* General Purpuse IO pins 2 and 3 */
-#define SSB_SPROM1_GPIOB_P2 0x00FF /* Pin 2 */
-#define SSB_SPROM1_GPIOB_P3 0xFF00 /* Pin 3 */
-#define SSB_SPROM1_GPIOB_P3_SHIFT 8
-#define SSB_SPROM1_MAXPWR 0x0068 /* Power Amplifier Max Power */
-#define SSB_SPROM1_MAXPWR_BG 0x00FF /* B-PHY and G-PHY (in dBm Q5.2) */
-#define SSB_SPROM1_MAXPWR_A 0xFF00 /* A-PHY (in dBm Q5.2) */
-#define SSB_SPROM1_MAXPWR_A_SHIFT 8
-#define SSB_SPROM1_PA1B0 0x006A
-#define SSB_SPROM1_PA1B1 0x006C
-#define SSB_SPROM1_PA1B2 0x006E
-#define SSB_SPROM1_ITSSI 0x0070 /* Idle TSSI Target */
-#define SSB_SPROM1_ITSSI_BG 0x00FF /* B-PHY and G-PHY*/
-#define SSB_SPROM1_ITSSI_A 0xFF00 /* A-PHY */
-#define SSB_SPROM1_ITSSI_A_SHIFT 8
-#define SSB_SPROM1_BFLLO 0x0072 /* Boardflags (low 16 bits) */
-#define SSB_SPROM1_AGAIN 0x0074 /* Antenna Gain (in dBm Q5.2) */
-#define SSB_SPROM1_AGAIN_BG 0x00FF /* B-PHY and G-PHY */
-#define SSB_SPROM1_AGAIN_BG_SHIFT 0
-#define SSB_SPROM1_AGAIN_A 0xFF00 /* A-PHY */
-#define SSB_SPROM1_AGAIN_A_SHIFT 8
-
-/* SPROM Revision 2 (inherits from rev 1) */
-#define SSB_SPROM2_BFLHI 0x0038 /* Boardflags (high 16 bits) */
-#define SSB_SPROM2_MAXP_A 0x003A /* A-PHY Max Power */
-#define SSB_SPROM2_MAXP_A_HI 0x00FF /* Max Power High */
-#define SSB_SPROM2_MAXP_A_LO 0xFF00 /* Max Power Low */
-#define SSB_SPROM2_MAXP_A_LO_SHIFT 8
-#define SSB_SPROM2_PA1LOB0 0x003C /* A-PHY PowerAmplifier Low Settings */
-#define SSB_SPROM2_PA1LOB1 0x003E /* A-PHY PowerAmplifier Low Settings */
-#define SSB_SPROM2_PA1LOB2 0x0040 /* A-PHY PowerAmplifier Low Settings */
-#define SSB_SPROM2_PA1HIB0 0x0042 /* A-PHY PowerAmplifier High Settings */
-#define SSB_SPROM2_PA1HIB1 0x0044 /* A-PHY PowerAmplifier High Settings */
-#define SSB_SPROM2_PA1HIB2 0x0046 /* A-PHY PowerAmplifier High Settings */
-#define SSB_SPROM2_OPO 0x0078 /* OFDM Power Offset from CCK Level */
-#define SSB_SPROM2_OPO_VALUE 0x00FF
-#define SSB_SPROM2_OPO_UNUSED 0xFF00
-#define SSB_SPROM2_CCODE 0x007C /* Two char Country Code */
-
-/* SPROM Revision 3 (inherits most data from rev 2) */
-#define SSB_SPROM3_OFDMAPO 0x002C /* A-PHY OFDM Mid Power Offset (4 bytes, BigEndian) */
-#define SSB_SPROM3_OFDMALPO 0x0030 /* A-PHY OFDM Low Power Offset (4 bytes, BigEndian) */
-#define SSB_SPROM3_OFDMAHPO 0x0034 /* A-PHY OFDM High Power Offset (4 bytes, BigEndian) */
-#define SSB_SPROM3_GPIOLDC 0x0042 /* GPIO LED Powersave Duty Cycle (4 bytes, BigEndian) */
-#define SSB_SPROM3_GPIOLDC_OFF 0x0000FF00 /* Off Count */
-#define SSB_SPROM3_GPIOLDC_OFF_SHIFT 8
-#define SSB_SPROM3_GPIOLDC_ON 0x00FF0000 /* On Count */
-#define SSB_SPROM3_GPIOLDC_ON_SHIFT 16
-#define SSB_SPROM3_IL0MAC 0x004A /* 6 bytes MAC address for 802.11b/g */
-#define SSB_SPROM3_CCKPO 0x0078 /* CCK Power Offset */
-#define SSB_SPROM3_CCKPO_1M 0x000F /* 1M Rate PO */
-#define SSB_SPROM3_CCKPO_2M 0x00F0 /* 2M Rate PO */
-#define SSB_SPROM3_CCKPO_2M_SHIFT 4
-#define SSB_SPROM3_CCKPO_55M 0x0F00 /* 5.5M Rate PO */
-#define SSB_SPROM3_CCKPO_55M_SHIFT 8
-#define SSB_SPROM3_CCKPO_11M 0xF000 /* 11M Rate PO */
-#define SSB_SPROM3_CCKPO_11M_SHIFT 12
-#define SSB_SPROM3_OFDMGPO 0x107A /* G-PHY OFDM Power Offset (4 bytes, BigEndian) */
-
-/* SPROM Revision 4 */
-#define SSB_SPROM4_BFLLO 0x0044 /* Boardflags (low 16 bits) */
-#define SSB_SPROM4_BFLHI 0x0046 /* Board Flags Hi */
-#define SSB_SPROM4_BFL2LO 0x0048 /* Board flags 2 (low 16 bits) */
-#define SSB_SPROM4_BFL2HI 0x004A /* Board flags 2 Hi */
-#define SSB_SPROM4_IL0MAC 0x004C /* 6 byte MAC address for a/b/g/n */
-#define SSB_SPROM4_CCODE 0x0052 /* Country Code (2 bytes) */
-#define SSB_SPROM4_GPIOA 0x0056 /* Gen. Purpose IO # 0 and 1 */
-#define SSB_SPROM4_GPIOA_P0 0x00FF /* Pin 0 */
-#define SSB_SPROM4_GPIOA_P1 0xFF00 /* Pin 1 */
-#define SSB_SPROM4_GPIOA_P1_SHIFT 8
-#define SSB_SPROM4_GPIOB 0x0058 /* Gen. Purpose IO # 2 and 3 */
-#define SSB_SPROM4_GPIOB_P2 0x00FF /* Pin 2 */
-#define SSB_SPROM4_GPIOB_P3 0xFF00 /* Pin 3 */
-#define SSB_SPROM4_GPIOB_P3_SHIFT 8
-#define SSB_SPROM4_ETHPHY 0x005A /* Ethernet PHY settings ?? */
-#define SSB_SPROM4_ETHPHY_ET0A 0x001F /* MII Address for enet0 */
-#define SSB_SPROM4_ETHPHY_ET1A 0x03E0 /* MII Address for enet1 */
-#define SSB_SPROM4_ETHPHY_ET1A_SHIFT 5
-#define SSB_SPROM4_ETHPHY_ET0M (1<<14) /* MDIO for enet0 */
-#define SSB_SPROM4_ETHPHY_ET1M (1<<15) /* MDIO for enet1 */
-#define SSB_SPROM4_ANTAVAIL 0x005D /* Antenna available bitfields */
-#define SSB_SPROM4_ANTAVAIL_A 0x00FF /* A-PHY bitfield */
-#define SSB_SPROM4_ANTAVAIL_A_SHIFT 0
-#define SSB_SPROM4_ANTAVAIL_BG 0xFF00 /* B-PHY and G-PHY bitfield */
-#define SSB_SPROM4_ANTAVAIL_BG_SHIFT 8
-#define SSB_SPROM4_AGAIN01 0x005E /* Antenna Gain (in dBm Q5.2) */
-#define SSB_SPROM4_AGAIN0 0x00FF /* Antenna 0 */
-#define SSB_SPROM4_AGAIN0_SHIFT 0
-#define SSB_SPROM4_AGAIN1 0xFF00 /* Antenna 1 */
-#define SSB_SPROM4_AGAIN1_SHIFT 8
-#define SSB_SPROM4_AGAIN23 0x0060
-#define SSB_SPROM4_AGAIN2 0x00FF /* Antenna 2 */
-#define SSB_SPROM4_AGAIN2_SHIFT 0
-#define SSB_SPROM4_AGAIN3 0xFF00 /* Antenna 3 */
-#define SSB_SPROM4_AGAIN3_SHIFT 8
-#define SSB_SPROM4_TXPID2G01 0x0062 /* TX Power Index 2GHz */
-#define SSB_SPROM4_TXPID2G0 0x00FF
-#define SSB_SPROM4_TXPID2G0_SHIFT 0
-#define SSB_SPROM4_TXPID2G1 0xFF00
-#define SSB_SPROM4_TXPID2G1_SHIFT 8
-#define SSB_SPROM4_TXPID2G23 0x0064 /* TX Power Index 2GHz */
-#define SSB_SPROM4_TXPID2G2 0x00FF
-#define SSB_SPROM4_TXPID2G2_SHIFT 0
-#define SSB_SPROM4_TXPID2G3 0xFF00
-#define SSB_SPROM4_TXPID2G3_SHIFT 8
-#define SSB_SPROM4_TXPID5G01 0x0066 /* TX Power Index 5GHz middle subband */
-#define SSB_SPROM4_TXPID5G0 0x00FF
-#define SSB_SPROM4_TXPID5G0_SHIFT 0
-#define SSB_SPROM4_TXPID5G1 0xFF00
-#define SSB_SPROM4_TXPID5G1_SHIFT 8
-#define SSB_SPROM4_TXPID5G23 0x0068 /* TX Power Index 5GHz middle subband */
-#define SSB_SPROM4_TXPID5G2 0x00FF
-#define SSB_SPROM4_TXPID5G2_SHIFT 0
-#define SSB_SPROM4_TXPID5G3 0xFF00
-#define SSB_SPROM4_TXPID5G3_SHIFT 8
-#define SSB_SPROM4_TXPID5GL01 0x006A /* TX Power Index 5GHz low subband */
-#define SSB_SPROM4_TXPID5GL0 0x00FF
-#define SSB_SPROM4_TXPID5GL0_SHIFT 0
-#define SSB_SPROM4_TXPID5GL1 0xFF00
-#define SSB_SPROM4_TXPID5GL1_SHIFT 8
-#define SSB_SPROM4_TXPID5GL23 0x006C /* TX Power Index 5GHz low subband */
-#define SSB_SPROM4_TXPID5GL2 0x00FF
-#define SSB_SPROM4_TXPID5GL2_SHIFT 0
-#define SSB_SPROM4_TXPID5GL3 0xFF00
-#define SSB_SPROM4_TXPID5GL3_SHIFT 8
-#define SSB_SPROM4_TXPID5GH01 0x006E /* TX Power Index 5GHz high subband */
-#define SSB_SPROM4_TXPID5GH0 0x00FF
-#define SSB_SPROM4_TXPID5GH0_SHIFT 0
-#define SSB_SPROM4_TXPID5GH1 0xFF00
-#define SSB_SPROM4_TXPID5GH1_SHIFT 8
-#define SSB_SPROM4_TXPID5GH23 0x0070 /* TX Power Index 5GHz high subband */
-#define SSB_SPROM4_TXPID5GH2 0x00FF
-#define SSB_SPROM4_TXPID5GH2_SHIFT 0
-#define SSB_SPROM4_TXPID5GH3 0xFF00
-#define SSB_SPROM4_TXPID5GH3_SHIFT 8
-#define SSB_SPROM4_MAXP_BG 0x0080 /* Max Power BG in path 1 */
-#define SSB_SPROM4_MAXP_BG_MASK 0x00FF /* Mask for Max Power BG */
-#define SSB_SPROM4_ITSSI_BG 0xFF00 /* Mask for path 1 itssi_bg */
-#define SSB_SPROM4_ITSSI_BG_SHIFT 8
-#define SSB_SPROM4_MAXP_A 0x008A /* Max Power A in path 1 */
-#define SSB_SPROM4_MAXP_A_MASK 0x00FF /* Mask for Max Power A */
-#define SSB_SPROM4_ITSSI_A 0xFF00 /* Mask for path 1 itssi_a */
-#define SSB_SPROM4_ITSSI_A_SHIFT 8
-#define SSB_SPROM4_PA0B0 0x0082 /* The paXbY locations are */
-#define SSB_SPROM4_PA0B1 0x0084 /* only guesses */
-#define SSB_SPROM4_PA0B2 0x0086
-#define SSB_SPROM4_PA1B0 0x008E
-#define SSB_SPROM4_PA1B1 0x0090
-#define SSB_SPROM4_PA1B2 0x0092
-
-/* SPROM Revision 5 (inherits most data from rev 4) */
-#define SSB_SPROM5_CCODE 0x0044 /* Country Code (2 bytes) */
-#define SSB_SPROM5_BFLLO 0x004A /* Boardflags (low 16 bits) */
-#define SSB_SPROM5_BFLHI 0x004C /* Board Flags Hi */
-#define SSB_SPROM5_BFL2LO 0x004E /* Board flags 2 (low 16 bits) */
-#define SSB_SPROM5_BFL2HI 0x0050 /* Board flags 2 Hi */
-#define SSB_SPROM5_IL0MAC 0x0052 /* 6 byte MAC address for a/b/g/n */
-#define SSB_SPROM5_GPIOA 0x0076 /* Gen. Purpose IO # 0 and 1 */
-#define SSB_SPROM5_GPIOA_P0 0x00FF /* Pin 0 */
-#define SSB_SPROM5_GPIOA_P1 0xFF00 /* Pin 1 */
-#define SSB_SPROM5_GPIOA_P1_SHIFT 8
-#define SSB_SPROM5_GPIOB 0x0078 /* Gen. Purpose IO # 2 and 3 */
-#define SSB_SPROM5_GPIOB_P2 0x00FF /* Pin 2 */
-#define SSB_SPROM5_GPIOB_P3 0xFF00 /* Pin 3 */
-#define SSB_SPROM5_GPIOB_P3_SHIFT 8
-
-/* SPROM Revision 8 */
-#define SSB_SPROM8_BOARDREV 0x0082 /* Board revision */
-#define SSB_SPROM8_BFLLO 0x0084 /* Board flags (bits 0-15) */
-#define SSB_SPROM8_BFLHI 0x0086 /* Board flags (bits 16-31) */
-#define SSB_SPROM8_BFL2LO 0x0088 /* Board flags (bits 32-47) */
-#define SSB_SPROM8_BFL2HI 0x008A /* Board flags (bits 48-63) */
-#define SSB_SPROM8_IL0MAC 0x008C /* 6 byte MAC address */
-#define SSB_SPROM8_CCODE 0x0092 /* 2 byte country code */
-#define SSB_SPROM8_GPIOA 0x0096 /*Gen. Purpose IO # 0 and 1 */
-#define SSB_SPROM8_GPIOA_P0 0x00FF /* Pin 0 */
-#define SSB_SPROM8_GPIOA_P1 0xFF00 /* Pin 1 */
-#define SSB_SPROM8_GPIOA_P1_SHIFT 8
-#define SSB_SPROM8_GPIOB 0x0098 /* Gen. Purpose IO # 2 and 3 */
-#define SSB_SPROM8_GPIOB_P2 0x00FF /* Pin 2 */
-#define SSB_SPROM8_GPIOB_P3 0xFF00 /* Pin 3 */
-#define SSB_SPROM8_GPIOB_P3_SHIFT 8
-#define SSB_SPROM8_ANTAVAIL 0x009C /* Antenna available bitfields*/
-#define SSB_SPROM8_ANTAVAIL_A 0xFF00 /* A-PHY bitfield */
-#define SSB_SPROM8_ANTAVAIL_A_SHIFT 8
-#define SSB_SPROM8_ANTAVAIL_BG 0x00FF /* B-PHY and G-PHY bitfield */
-#define SSB_SPROM8_ANTAVAIL_BG_SHIFT 0
-#define SSB_SPROM8_AGAIN01 0x009E /* Antenna Gain (in dBm Q5.2) */
-#define SSB_SPROM8_AGAIN0 0x00FF /* Antenna 0 */
-#define SSB_SPROM8_AGAIN0_SHIFT 0
-#define SSB_SPROM8_AGAIN1 0xFF00 /* Antenna 1 */
-#define SSB_SPROM8_AGAIN1_SHIFT 8
-#define SSB_SPROM8_AGAIN23 0x00A0
-#define SSB_SPROM8_AGAIN2 0x00FF /* Antenna 2 */
-#define SSB_SPROM8_AGAIN2_SHIFT 0
-#define SSB_SPROM8_AGAIN3 0xFF00 /* Antenna 3 */
-#define SSB_SPROM8_AGAIN3_SHIFT 8
-#define SSB_SPROM8_RSSIPARM2G 0x00A4 /* RSSI params for 2GHz */
-#define SSB_SPROM8_RSSISMF2G 0x000F
-#define SSB_SPROM8_RSSISMC2G 0x00F0
-#define SSB_SPROM8_RSSISMC2G_SHIFT 4
-#define SSB_SPROM8_RSSISAV2G 0x0700
-#define SSB_SPROM8_RSSISAV2G_SHIFT 8
-#define SSB_SPROM8_BXA2G 0x1800
-#define SSB_SPROM8_BXA2G_SHIFT 11
-#define SSB_SPROM8_RSSIPARM5G 0x00A6 /* RSSI params for 5GHz */
-#define SSB_SPROM8_RSSISMF5G 0x000F
-#define SSB_SPROM8_RSSISMC5G 0x00F0
-#define SSB_SPROM8_RSSISMC5G_SHIFT 4
-#define SSB_SPROM8_RSSISAV5G 0x0700
-#define SSB_SPROM8_RSSISAV5G_SHIFT 8
-#define SSB_SPROM8_BXA5G 0x1800
-#define SSB_SPROM8_BXA5G_SHIFT 11
-#define SSB_SPROM8_TRI25G 0x00A8 /* TX isolation 2.4&5.3GHz */
-#define SSB_SPROM8_TRI2G 0x00FF /* TX isolation 2.4GHz */
-#define SSB_SPROM8_TRI5G 0xFF00 /* TX isolation 5.3GHz */
-#define SSB_SPROM8_TRI5G_SHIFT 8
-#define SSB_SPROM8_TRI5GHL 0x00AA /* TX isolation 5.2/5.8GHz */
-#define SSB_SPROM8_TRI5GL 0x00FF /* TX isolation 5.2GHz */
-#define SSB_SPROM8_TRI5GH 0xFF00 /* TX isolation 5.8GHz */
-#define SSB_SPROM8_TRI5GH_SHIFT 8
-#define SSB_SPROM8_RXPO 0x00AC /* RX power offsets */
-#define SSB_SPROM8_RXPO2G 0x00FF /* 2GHz RX power offset */
-#define SSB_SPROM8_RXPO5G 0xFF00 /* 5GHz RX power offset */
-#define SSB_SPROM8_RXPO5G_SHIFT 8
-#define SSB_SPROM8_FEM2G 0x00AE
-#define SSB_SPROM8_FEM5G 0x00B0
-#define SSB_SROM8_FEM_TSSIPOS 0x0001
-#define SSB_SROM8_FEM_TSSIPOS_SHIFT 0
-#define SSB_SROM8_FEM_EXTPA_GAIN 0x0006
-#define SSB_SROM8_FEM_EXTPA_GAIN_SHIFT 1
-#define SSB_SROM8_FEM_PDET_RANGE 0x00F8
-#define SSB_SROM8_FEM_PDET_RANGE_SHIFT 3
-#define SSB_SROM8_FEM_TR_ISO 0x0700
-#define SSB_SROM8_FEM_TR_ISO_SHIFT 8
-#define SSB_SROM8_FEM_ANTSWLUT 0xF800
-#define SSB_SROM8_FEM_ANTSWLUT_SHIFT 11
-#define SSB_SPROM8_THERMAL 0x00B2
-#define SSB_SPROM8_MPWR_RAWTS 0x00B4
-#define SSB_SPROM8_TS_SLP_OPT_CORRX 0x00B6
-#define SSB_SPROM8_FOC_HWIQ_IQSWP 0x00B8
-#define SSB_SPROM8_PHYCAL_TEMPDELTA 0x00BA
-
-/* There are 4 blocks with power info sharing the same layout */
-#define SSB_SROM8_PWR_INFO_CORE0 0x00C0
-#define SSB_SROM8_PWR_INFO_CORE1 0x00E0
-#define SSB_SROM8_PWR_INFO_CORE2 0x0100
-#define SSB_SROM8_PWR_INFO_CORE3 0x0120
-
-#define SSB_SROM8_2G_MAXP_ITSSI 0x00
-#define SSB_SPROM8_2G_MAXP 0x00FF
-#define SSB_SPROM8_2G_ITSSI 0xFF00
-#define SSB_SPROM8_2G_ITSSI_SHIFT 8
-#define SSB_SROM8_2G_PA_0 0x02 /* 2GHz power amp settings */
-#define SSB_SROM8_2G_PA_1 0x04
-#define SSB_SROM8_2G_PA_2 0x06
-#define SSB_SROM8_5G_MAXP_ITSSI 0x08 /* 5GHz ITSSI and 5.3GHz Max Power */
-#define SSB_SPROM8_5G_MAXP 0x00FF
-#define SSB_SPROM8_5G_ITSSI 0xFF00
-#define SSB_SPROM8_5G_ITSSI_SHIFT 8
-#define SSB_SPROM8_5GHL_MAXP 0x0A /* 5.2GHz and 5.8GHz Max Power */
-#define SSB_SPROM8_5GH_MAXP 0x00FF
-#define SSB_SPROM8_5GL_MAXP 0xFF00
-#define SSB_SPROM8_5GL_MAXP_SHIFT 8
-#define SSB_SROM8_5G_PA_0 0x0C /* 5.3GHz power amp settings */
-#define SSB_SROM8_5G_PA_1 0x0E
-#define SSB_SROM8_5G_PA_2 0x10
-#define SSB_SROM8_5GL_PA_0 0x12 /* 5.2GHz power amp settings */
-#define SSB_SROM8_5GL_PA_1 0x14
-#define SSB_SROM8_5GL_PA_2 0x16
-#define SSB_SROM8_5GH_PA_0 0x18 /* 5.8GHz power amp settings */
-#define SSB_SROM8_5GH_PA_1 0x1A
-#define SSB_SROM8_5GH_PA_2 0x1C
-
-/* TODO: Make it deprecated */
-#define SSB_SPROM8_MAXP_BG 0x00C0 /* Max Power 2GHz in path 1 */
-#define SSB_SPROM8_MAXP_BG_MASK 0x00FF /* Mask for Max Power 2GHz */
-#define SSB_SPROM8_ITSSI_BG 0xFF00 /* Mask for path 1 itssi_bg */
-#define SSB_SPROM8_ITSSI_BG_SHIFT 8
-#define SSB_SPROM8_PA0B0 0x00C2 /* 2GHz power amp settings */
-#define SSB_SPROM8_PA0B1 0x00C4
-#define SSB_SPROM8_PA0B2 0x00C6
-#define SSB_SPROM8_MAXP_A 0x00C8 /* Max Power 5.3GHz */
-#define SSB_SPROM8_MAXP_A_MASK 0x00FF /* Mask for Max Power 5.3GHz */
-#define SSB_SPROM8_ITSSI_A 0xFF00 /* Mask for path 1 itssi_a */
-#define SSB_SPROM8_ITSSI_A_SHIFT 8
-#define SSB_SPROM8_MAXP_AHL 0x00CA /* Max Power 5.2/5.8GHz */
-#define SSB_SPROM8_MAXP_AH_MASK 0x00FF /* Mask for Max Power 5.8GHz */
-#define SSB_SPROM8_MAXP_AL_MASK 0xFF00 /* Mask for Max Power 5.2GHz */
-#define SSB_SPROM8_MAXP_AL_SHIFT 8
-#define SSB_SPROM8_PA1B0 0x00CC /* 5.3GHz power amp settings */
-#define SSB_SPROM8_PA1B1 0x00CE
-#define SSB_SPROM8_PA1B2 0x00D0
-#define SSB_SPROM8_PA1LOB0 0x00D2 /* 5.2GHz power amp settings */
-#define SSB_SPROM8_PA1LOB1 0x00D4
-#define SSB_SPROM8_PA1LOB2 0x00D6
-#define SSB_SPROM8_PA1HIB0 0x00D8 /* 5.8GHz power amp settings */
-#define SSB_SPROM8_PA1HIB1 0x00DA
-#define SSB_SPROM8_PA1HIB2 0x00DC
-
-#define SSB_SPROM8_CCK2GPO 0x0140 /* CCK power offset */
-#define SSB_SPROM8_OFDM2GPO 0x0142 /* 2.4GHz OFDM power offset */
-#define SSB_SPROM8_OFDM5GPO 0x0146 /* 5.3GHz OFDM power offset */
-#define SSB_SPROM8_OFDM5GLPO 0x014A /* 5.2GHz OFDM power offset */
-#define SSB_SPROM8_OFDM5GHPO 0x014E /* 5.8GHz OFDM power offset */
-
-/* Values for boardflags_lo read from SPROM */
-#define SSB_BFL_BTCOEXIST 0x0001 /* implements Bluetooth coexistance */
-#define SSB_BFL_PACTRL 0x0002 /* GPIO 9 controlling the PA */
-#define SSB_BFL_AIRLINEMODE 0x0004 /* implements GPIO 13 radio disable indication */
-#define SSB_BFL_RSSI 0x0008 /* software calculates nrssi slope. */
-#define SSB_BFL_ENETSPI 0x0010 /* has ephy roboswitch spi */
-#define SSB_BFL_XTAL_NOSLOW 0x0020 /* no slow clock available */
-#define SSB_BFL_CCKHIPWR 0x0040 /* can do high power CCK transmission */
-#define SSB_BFL_ENETADM 0x0080 /* has ADMtek switch */
-#define SSB_BFL_ENETVLAN 0x0100 /* can do vlan */
-#define SSB_BFL_AFTERBURNER 0x0200 /* supports Afterburner mode */
-#define SSB_BFL_NOPCI 0x0400 /* board leaves PCI floating */
-#define SSB_BFL_FEM 0x0800 /* supports the Front End Module */
-#define SSB_BFL_EXTLNA 0x1000 /* has an external LNA */
-#define SSB_BFL_HGPA 0x2000 /* had high gain PA */
-#define SSB_BFL_BTCMOD 0x4000 /* BFL_BTCOEXIST is given in alternate GPIOs */
-#define SSB_BFL_ALTIQ 0x8000 /* alternate I/Q settings */
-
-/* Values for boardflags_hi read from SPROM */
-#define SSB_BFH_NOPA 0x0001 /* has no PA */
-#define SSB_BFH_RSSIINV 0x0002 /* RSSI uses positive slope (not TSSI) */
-#define SSB_BFH_PAREF 0x0004 /* uses the PARef LDO */
-#define SSB_BFH_3TSWITCH 0x0008 /* uses a triple throw switch shared with bluetooth */
-#define SSB_BFH_PHASESHIFT 0x0010 /* can support phase shifter */
-#define SSB_BFH_BUCKBOOST 0x0020 /* has buck/booster */
-#define SSB_BFH_FEM_BT 0x0040 /* has FEM and switch to share antenna with bluetooth */
-
-/* Values for boardflags2_lo read from SPROM */
-#define SSB_BFL2_RXBB_INT_REG_DIS 0x0001 /* external RX BB regulator present */
-#define SSB_BFL2_APLL_WAR 0x0002 /* alternative A-band PLL settings implemented */
-#define SSB_BFL2_TXPWRCTRL_EN 0x0004 /* permits enabling TX Power Control */
-#define SSB_BFL2_2X4_DIV 0x0008 /* 2x4 diversity switch */
-#define SSB_BFL2_5G_PWRGAIN 0x0010 /* supports 5G band power gain */
-#define SSB_BFL2_PCIEWAR_OVR 0x0020 /* overrides ASPM and Clkreq settings */
-#define SSB_BFL2_CAESERS_BRD 0x0040 /* is Caesers board (unused) */
-#define SSB_BFL2_BTC3WIRE 0x0080 /* used 3-wire bluetooth coexist */
-#define SSB_BFL2_SKWRKFEM_BRD 0x0100 /* 4321mcm93 uses Skyworks FEM */
-#define SSB_BFL2_SPUR_WAR 0x0200 /* has a workaround for clock-harmonic spurs */
-#define SSB_BFL2_GPLL_WAR 0x0400 /* altenative G-band PLL settings implemented */
-
-/* Values for SSB_SPROM1_BINF_CCODE */
-enum {
- SSB_SPROM1CCODE_WORLD = 0,
- SSB_SPROM1CCODE_THAILAND,
- SSB_SPROM1CCODE_ISRAEL,
- SSB_SPROM1CCODE_JORDAN,
- SSB_SPROM1CCODE_CHINA,
- SSB_SPROM1CCODE_JAPAN,
- SSB_SPROM1CCODE_USA_CANADA_ANZ,
- SSB_SPROM1CCODE_EUROPE,
- SSB_SPROM1CCODE_USA_LOW,
- SSB_SPROM1CCODE_JAPAN_HIGH,
- SSB_SPROM1CCODE_ALL,
- SSB_SPROM1CCODE_NONE,
-};
-
-/* Address-Match values and masks (SSB_ADMATCHxxx) */
-#define SSB_ADM_TYPE 0x00000003 /* Address type */
-#define SSB_ADM_TYPE0 0
-#define SSB_ADM_TYPE1 1
-#define SSB_ADM_TYPE2 2
-#define SSB_ADM_AD64 0x00000004
-#define SSB_ADM_SZ0 0x000000F8 /* Type0 size */
-#define SSB_ADM_SZ0_SHIFT 3
-#define SSB_ADM_SZ1 0x000001F8 /* Type1 size */
-#define SSB_ADM_SZ1_SHIFT 3
-#define SSB_ADM_SZ2 0x000001F8 /* Type2 size */
-#define SSB_ADM_SZ2_SHIFT 3
-#define SSB_ADM_EN 0x00000400 /* Enable */
-#define SSB_ADM_NEG 0x00000800 /* Negative decode */
-#define SSB_ADM_BASE0 0xFFFFFF00 /* Type0 base address */
-#define SSB_ADM_BASE0_SHIFT 8
-#define SSB_ADM_BASE1 0xFFFFF000 /* Type1 base address for the core */
-#define SSB_ADM_BASE1_SHIFT 12
-#define SSB_ADM_BASE2 0xFFFF0000 /* Type2 base address for the core */
-#define SSB_ADM_BASE2_SHIFT 16
-
-
-#endif /* LINUX_SSB_REGS_H_ */
diff --git a/ANDROID_3.4.5/include/linux/stackprotector.h b/ANDROID_3.4.5/include/linux/stackprotector.h
deleted file mode 100644
index 6f3e54c7..00000000
--- a/ANDROID_3.4.5/include/linux/stackprotector.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef _LINUX_STACKPROTECTOR_H
-#define _LINUX_STACKPROTECTOR_H 1
-
-#include <linux/compiler.h>
-#include <linux/sched.h>
-#include <linux/random.h>
-
-#ifdef CONFIG_CC_STACKPROTECTOR
-# include <asm/stackprotector.h>
-#else
-static inline void boot_init_stack_canary(void)
-{
-}
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/stacktrace.h b/ANDROID_3.4.5/include/linux/stacktrace.h
deleted file mode 100644
index 115b570e..00000000
--- a/ANDROID_3.4.5/include/linux/stacktrace.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef __LINUX_STACKTRACE_H
-#define __LINUX_STACKTRACE_H
-
-struct task_struct;
-struct pt_regs;
-
-#ifdef CONFIG_STACKTRACE
-struct task_struct;
-
-struct stack_trace {
- unsigned int nr_entries, max_entries;
- unsigned long *entries;
- int skip; /* input argument: How many entries to skip */
-};
-
-extern void save_stack_trace(struct stack_trace *trace);
-extern void save_stack_trace_regs(struct pt_regs *regs,
- struct stack_trace *trace);
-extern void save_stack_trace_tsk(struct task_struct *tsk,
- struct stack_trace *trace);
-
-extern void print_stack_trace(struct stack_trace *trace, int spaces);
-
-#ifdef CONFIG_USER_STACKTRACE_SUPPORT
-extern void save_stack_trace_user(struct stack_trace *trace);
-#else
-# define save_stack_trace_user(trace) do { } while (0)
-#endif
-
-#else
-# define save_stack_trace(trace) do { } while (0)
-# define save_stack_trace_tsk(tsk, trace) do { } while (0)
-# define save_stack_trace_user(trace) do { } while (0)
-# define print_stack_trace(trace, spaces) do { } while (0)
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/stallion.h b/ANDROID_3.4.5/include/linux/stallion.h
deleted file mode 100644
index 336af33c..00000000
--- a/ANDROID_3.4.5/include/linux/stallion.h
+++ /dev/null
@@ -1,147 +0,0 @@
-/*****************************************************************************/
-
-/*
- * stallion.h -- stallion multiport serial driver.
- *
- * Copyright (C) 1996-1998 Stallion Technologies
- * Copyright (C) 1994-1996 Greg Ungerer.
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-/*****************************************************************************/
-#ifndef _STALLION_H
-#define _STALLION_H
-/*****************************************************************************/
-
-/*
- * Define important driver constants here.
- */
-#define STL_MAXBRDS 4
-#define STL_MAXPANELS 4
-#define STL_MAXBANKS 8
-#define STL_PORTSPERPANEL 16
-#define STL_MAXPORTS 64
-#define STL_MAXDEVS (STL_MAXBRDS * STL_MAXPORTS)
-
-
-/*
- * Define a set of structures to hold all the board/panel/port info
- * for our ports. These will be dynamically allocated as required.
- */
-
-/*
- * Define a ring queue structure for each port. This will hold the
- * TX data waiting to be output. Characters are fed into this buffer
- * from the line discipline (or even direct from user space!) and
- * then fed into the UARTs during interrupts. Will use a classic ring
- * queue here for this. The good thing about this type of ring queue
- * is that the head and tail pointers can be updated without interrupt
- * protection - since "write" code only needs to change the head, and
- * interrupt code only needs to change the tail.
- */
-struct stlrq {
- char *buf;
- char *head;
- char *tail;
-};
-
-/*
- * Port, panel and board structures to hold status info about each.
- * The board structure contains pointers to structures for each panel
- * connected to it, and in turn each panel structure contains pointers
- * for each port structure for each port on that panel. Note that
- * the port structure also contains the board and panel number that it
- * is associated with, this makes it (fairly) easy to get back to the
- * board/panel info for a port.
- */
-struct stlport {
- unsigned long magic;
- struct tty_port port;
- unsigned int portnr;
- unsigned int panelnr;
- unsigned int brdnr;
- int ioaddr;
- int uartaddr;
- unsigned int pagenr;
- unsigned long istate;
- int baud_base;
- int custom_divisor;
- int close_delay;
- int closing_wait;
- int openwaitcnt;
- int brklen;
- unsigned int sigs;
- unsigned int rxignoremsk;
- unsigned int rxmarkmsk;
- unsigned int imr;
- unsigned int crenable;
- unsigned long clk;
- unsigned long hwid;
- void *uartp;
- comstats_t stats;
- struct stlrq tx;
-};
-
-struct stlpanel {
- unsigned long magic;
- unsigned int panelnr;
- unsigned int brdnr;
- unsigned int pagenr;
- unsigned int nrports;
- int iobase;
- void *uartp;
- void (*isr)(struct stlpanel *panelp, unsigned int iobase);
- unsigned int hwid;
- unsigned int ackmask;
- struct stlport *ports[STL_PORTSPERPANEL];
-};
-
-struct stlbrd {
- unsigned long magic;
- unsigned int brdnr;
- unsigned int brdtype;
- unsigned int state;
- unsigned int nrpanels;
- unsigned int nrports;
- unsigned int nrbnks;
- int irq;
- int irqtype;
- int (*isr)(struct stlbrd *brdp);
- unsigned int ioaddr1;
- unsigned int ioaddr2;
- unsigned int iosize1;
- unsigned int iosize2;
- unsigned int iostatus;
- unsigned int ioctrl;
- unsigned int ioctrlval;
- unsigned int hwid;
- unsigned long clk;
- unsigned int bnkpageaddr[STL_MAXBANKS];
- unsigned int bnkstataddr[STL_MAXBANKS];
- struct stlpanel *bnk2panel[STL_MAXBANKS];
- struct stlpanel *panels[STL_MAXPANELS];
-};
-
-
-/*
- * Define MAGIC numbers used for above structures.
- */
-#define STL_PORTMAGIC 0x5a7182c9
-#define STL_PANELMAGIC 0x7ef621a1
-#define STL_BOARDMAGIC 0xa2267f52
-
-/*****************************************************************************/
-#endif
diff --git a/ANDROID_3.4.5/include/linux/start_kernel.h b/ANDROID_3.4.5/include/linux/start_kernel.h
deleted file mode 100644
index d3e5f275..00000000
--- a/ANDROID_3.4.5/include/linux/start_kernel.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef _LINUX_START_KERNEL_H
-#define _LINUX_START_KERNEL_H
-
-#include <linux/linkage.h>
-#include <linux/init.h>
-
-/* Define the prototype for start_kernel here, rather than cluttering
- up something else. */
-
-extern asmlinkage void __init start_kernel(void);
-
-#endif /* _LINUX_START_KERNEL_H */
diff --git a/ANDROID_3.4.5/include/linux/stat.h b/ANDROID_3.4.5/include/linux/stat.h
deleted file mode 100644
index 611c398d..00000000
--- a/ANDROID_3.4.5/include/linux/stat.h
+++ /dev/null
@@ -1,80 +0,0 @@
-#ifndef _LINUX_STAT_H
-#define _LINUX_STAT_H
-
-#ifdef __KERNEL__
-
-#include <asm/stat.h>
-
-#endif
-
-#if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2)
-
-#define S_IFMT 00170000
-#define S_IFSOCK 0140000
-#define S_IFLNK 0120000
-#define S_IFREG 0100000
-#define S_IFBLK 0060000
-#define S_IFDIR 0040000
-#define S_IFCHR 0020000
-#define S_IFIFO 0010000
-#define S_ISUID 0004000
-#define S_ISGID 0002000
-#define S_ISVTX 0001000
-
-#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
-#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
-#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
-#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
-#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
-#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
-#define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)
-
-#define S_IRWXU 00700
-#define S_IRUSR 00400
-#define S_IWUSR 00200
-#define S_IXUSR 00100
-
-#define S_IRWXG 00070
-#define S_IRGRP 00040
-#define S_IWGRP 00020
-#define S_IXGRP 00010
-
-#define S_IRWXO 00007
-#define S_IROTH 00004
-#define S_IWOTH 00002
-#define S_IXOTH 00001
-
-#endif
-
-#ifdef __KERNEL__
-#define S_IRWXUGO (S_IRWXU|S_IRWXG|S_IRWXO)
-#define S_IALLUGO (S_ISUID|S_ISGID|S_ISVTX|S_IRWXUGO)
-#define S_IRUGO (S_IRUSR|S_IRGRP|S_IROTH)
-#define S_IWUGO (S_IWUSR|S_IWGRP|S_IWOTH)
-#define S_IXUGO (S_IXUSR|S_IXGRP|S_IXOTH)
-
-#define UTIME_NOW ((1l << 30) - 1l)
-#define UTIME_OMIT ((1l << 30) - 2l)
-
-#include <linux/types.h>
-#include <linux/time.h>
-
-struct kstat {
- u64 ino;
- dev_t dev;
- umode_t mode;
- unsigned int nlink;
- uid_t uid;
- gid_t gid;
- dev_t rdev;
- loff_t size;
- struct timespec atime;
- struct timespec mtime;
- struct timespec ctime;
- unsigned long blksize;
- unsigned long long blocks;
-};
-
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/statfs.h b/ANDROID_3.4.5/include/linux/statfs.h
deleted file mode 100644
index 0166d320..00000000
--- a/ANDROID_3.4.5/include/linux/statfs.h
+++ /dev/null
@@ -1,43 +0,0 @@
-#ifndef _LINUX_STATFS_H
-#define _LINUX_STATFS_H
-
-#include <linux/types.h>
-#include <asm/statfs.h>
-
-struct kstatfs {
- long f_type;
- long f_bsize;
- u64 f_blocks;
- u64 f_bfree;
- u64 f_bavail;
- u64 f_files;
- u64 f_ffree;
- __kernel_fsid_t f_fsid;
- long f_namelen;
- long f_frsize;
- long f_flags;
- long f_spare[4];
-};
-
-/*
- * Definitions for the flag in f_flag.
- *
- * Generally these flags are equivalent to the MS_ flags used in the mount
- * ABI. The exception is ST_VALID which has the same value as MS_REMOUNT
- * which doesn't make any sense for statfs.
- */
-#define ST_RDONLY 0x0001 /* mount read-only */
-#define ST_NOSUID 0x0002 /* ignore suid and sgid bits */
-#define ST_NODEV 0x0004 /* disallow access to device special files */
-#define ST_NOEXEC 0x0008 /* disallow program execution */
-#define ST_SYNCHRONOUS 0x0010 /* writes are synced at once */
-#define ST_VALID 0x0020 /* f_flags support is implemented */
-#define ST_MANDLOCK 0x0040 /* allow mandatory locks on an FS */
-/* 0x0080 used for ST_WRITE in glibc */
-/* 0x0100 used for ST_APPEND in glibc */
-/* 0x0200 used for ST_IMMUTABLE in glibc */
-#define ST_NOATIME 0x0400 /* do not update access times */
-#define ST_NODIRATIME 0x0800 /* do not update directory access times */
-#define ST_RELATIME 0x1000 /* update atime relative to mtime/ctime */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/static_key.h b/ANDROID_3.4.5/include/linux/static_key.h
deleted file mode 100644
index 27bd3f8a..00000000
--- a/ANDROID_3.4.5/include/linux/static_key.h
+++ /dev/null
@@ -1 +0,0 @@
-#include <linux/jump_label.h>
diff --git a/ANDROID_3.4.5/include/linux/stddef.h b/ANDROID_3.4.5/include/linux/stddef.h
deleted file mode 100644
index 1747b678..00000000
--- a/ANDROID_3.4.5/include/linux/stddef.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef _LINUX_STDDEF_H
-#define _LINUX_STDDEF_H
-
-#include <linux/compiler.h>
-
-#ifdef __KERNEL__
-
-#undef NULL
-#define NULL ((void *)0)
-
-enum {
- false = 0,
- true = 1
-};
-
-#undef offsetof
-#ifdef __compiler_offsetof
-#define offsetof(TYPE,MEMBER) __compiler_offsetof(TYPE,MEMBER)
-#else
-#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
-#endif
-#endif /* __KERNEL__ */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/stmmac.h b/ANDROID_3.4.5/include/linux/stmmac.h
deleted file mode 100644
index 0dddc9e4..00000000
--- a/ANDROID_3.4.5/include/linux/stmmac.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
-
- Header file for stmmac platform data
-
- Copyright (C) 2009 STMicroelectronics Ltd
-
- This program is free software; you can redistribute it and/or modify it
- under the terms and conditions of the GNU General Public License,
- version 2, as published by the Free Software Foundation.
-
- This program is distributed in the hope 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.
-
- The full GNU General Public License is included in this distribution in
- the file called "COPYING".
-
- Author: Giuseppe Cavallaro <peppe.cavallaro@st.com>
-*******************************************************************************/
-
-#ifndef __STMMAC_PLATFORM_DATA
-#define __STMMAC_PLATFORM_DATA
-
-#include <linux/platform_device.h>
-
-/* Platfrom data for platform device structure's platform_data field */
-
-struct stmmac_mdio_bus_data {
- int bus_id;
- int (*phy_reset)(void *priv);
- unsigned int phy_mask;
- int *irqs;
- int probed_phy_irq;
-};
-
-struct plat_stmmacenet_data {
- int bus_id;
- int phy_addr;
- int interface;
- struct stmmac_mdio_bus_data *mdio_bus_data;
- int pbl;
- int clk_csr;
- int has_gmac;
- int enh_desc;
- int tx_coe;
- int bugged_jumbo;
- int pmt;
- int force_sf_dma_mode;
- void (*fix_mac_speed)(void *priv, unsigned int speed);
- void (*bus_setup)(void __iomem *ioaddr);
- int (*init)(struct platform_device *pdev);
- void (*exit)(struct platform_device *pdev);
- void *custom_cfg;
- void *bsp_priv;
-};
-#endif
diff --git a/ANDROID_3.4.5/include/linux/stop_machine.h b/ANDROID_3.4.5/include/linux/stop_machine.h
deleted file mode 100644
index 3b5e910d..00000000
--- a/ANDROID_3.4.5/include/linux/stop_machine.h
+++ /dev/null
@@ -1,156 +0,0 @@
-#ifndef _LINUX_STOP_MACHINE
-#define _LINUX_STOP_MACHINE
-
-#include <linux/cpu.h>
-#include <linux/cpumask.h>
-#include <linux/smp.h>
-#include <linux/list.h>
-
-/*
- * stop_cpu[s]() is simplistic per-cpu maximum priority cpu
- * monopolization mechanism. The caller can specify a non-sleeping
- * function to be executed on a single or multiple cpus preempting all
- * other processes and monopolizing those cpus until it finishes.
- *
- * Resources for this mechanism are preallocated when a cpu is brought
- * up and requests are guaranteed to be served as long as the target
- * cpus are online.
- */
-typedef int (*cpu_stop_fn_t)(void *arg);
-
-#ifdef CONFIG_SMP
-
-struct cpu_stop_work {
- struct list_head list; /* cpu_stopper->works */
- cpu_stop_fn_t fn;
- void *arg;
- struct cpu_stop_done *done;
-};
-
-int stop_one_cpu(unsigned int cpu, cpu_stop_fn_t fn, void *arg);
-void stop_one_cpu_nowait(unsigned int cpu, cpu_stop_fn_t fn, void *arg,
- struct cpu_stop_work *work_buf);
-int stop_cpus(const struct cpumask *cpumask, cpu_stop_fn_t fn, void *arg);
-int try_stop_cpus(const struct cpumask *cpumask, cpu_stop_fn_t fn, void *arg);
-
-#else /* CONFIG_SMP */
-
-#include <linux/workqueue.h>
-
-struct cpu_stop_work {
- struct work_struct work;
- cpu_stop_fn_t fn;
- void *arg;
-};
-
-static inline int stop_one_cpu(unsigned int cpu, cpu_stop_fn_t fn, void *arg)
-{
- int ret = -ENOENT;
- preempt_disable();
- if (cpu == smp_processor_id())
- ret = fn(arg);
- preempt_enable();
- return ret;
-}
-
-static void stop_one_cpu_nowait_workfn(struct work_struct *work)
-{
- struct cpu_stop_work *stwork =
- container_of(work, struct cpu_stop_work, work);
- preempt_disable();
- stwork->fn(stwork->arg);
- preempt_enable();
-}
-
-static inline void stop_one_cpu_nowait(unsigned int cpu,
- cpu_stop_fn_t fn, void *arg,
- struct cpu_stop_work *work_buf)
-{
- if (cpu == smp_processor_id()) {
- INIT_WORK(&work_buf->work, stop_one_cpu_nowait_workfn);
- work_buf->fn = fn;
- work_buf->arg = arg;
- schedule_work(&work_buf->work);
- }
-}
-
-static inline int stop_cpus(const struct cpumask *cpumask,
- cpu_stop_fn_t fn, void *arg)
-{
- if (cpumask_test_cpu(raw_smp_processor_id(), cpumask))
- return stop_one_cpu(raw_smp_processor_id(), fn, arg);
- return -ENOENT;
-}
-
-static inline int try_stop_cpus(const struct cpumask *cpumask,
- cpu_stop_fn_t fn, void *arg)
-{
- return stop_cpus(cpumask, fn, arg);
-}
-
-#endif /* CONFIG_SMP */
-
-/*
- * stop_machine "Bogolock": stop the entire machine, disable
- * interrupts. This is a very heavy lock, which is equivalent to
- * grabbing every spinlock (and more). So the "read" side to such a
- * lock is anything which disables preemption.
- */
-#if defined(CONFIG_STOP_MACHINE) && defined(CONFIG_SMP)
-
-/**
- * stop_machine: freeze the machine on all CPUs and run this function
- * @fn: the function to run
- * @data: the data ptr for the @fn()
- * @cpus: the cpus to run the @fn() on (NULL = any online cpu)
- *
- * Description: This causes a thread to be scheduled on every cpu,
- * each of which disables interrupts. The result is that no one is
- * holding a spinlock or inside any other preempt-disabled region when
- * @fn() runs.
- *
- * This can be thought of as a very heavy write lock, equivalent to
- * grabbing every spinlock in the kernel. */
-int stop_machine(int (*fn)(void *), void *data, const struct cpumask *cpus);
-
-/**
- * __stop_machine: freeze the machine on all CPUs and run this function
- * @fn: the function to run
- * @data: the data ptr for the @fn
- * @cpus: the cpus to run the @fn() on (NULL = any online cpu)
- *
- * Description: This is a special version of the above, which assumes cpus
- * won't come or go while it's being called. Used by hotplug cpu.
- */
-int __stop_machine(int (*fn)(void *), void *data, const struct cpumask *cpus);
-
-int stop_machine_from_inactive_cpu(int (*fn)(void *), void *data,
- const struct cpumask *cpus);
-
-#else /* CONFIG_STOP_MACHINE && CONFIG_SMP */
-
-static inline int __stop_machine(int (*fn)(void *), void *data,
- const struct cpumask *cpus)
-{
- unsigned long flags;
- int ret;
- local_irq_save(flags);
- ret = fn(data);
- local_irq_restore(flags);
- return ret;
-}
-
-static inline int stop_machine(int (*fn)(void *), void *data,
- const struct cpumask *cpus)
-{
- return __stop_machine(fn, data, cpus);
-}
-
-static inline int stop_machine_from_inactive_cpu(int (*fn)(void *), void *data,
- const struct cpumask *cpus)
-{
- return __stop_machine(fn, data, cpus);
-}
-
-#endif /* CONFIG_STOP_MACHINE && CONFIG_SMP */
-#endif /* _LINUX_STOP_MACHINE */
diff --git a/ANDROID_3.4.5/include/linux/string.h b/ANDROID_3.4.5/include/linux/string.h
deleted file mode 100644
index e033564f..00000000
--- a/ANDROID_3.4.5/include/linux/string.h
+++ /dev/null
@@ -1,148 +0,0 @@
-#ifndef _LINUX_STRING_H_
-#define _LINUX_STRING_H_
-
-/* We don't want strings.h stuff being used by user stuff by accident */
-
-#ifndef __KERNEL__
-#include <string.h>
-#else
-
-#include <linux/compiler.h> /* for inline */
-#include <linux/types.h> /* for size_t */
-#include <linux/stddef.h> /* for NULL */
-#include <stdarg.h>
-
-extern char *strndup_user(const char __user *, long);
-extern void *memdup_user(const void __user *, size_t);
-
-/*
- * Include machine specific inline routines
- */
-#include <asm/string.h>
-
-#ifndef __HAVE_ARCH_STRCPY
-extern char * strcpy(char *,const char *);
-#endif
-#ifndef __HAVE_ARCH_STRNCPY
-extern char * strncpy(char *,const char *, __kernel_size_t);
-#endif
-#ifndef __HAVE_ARCH_STRLCPY
-size_t strlcpy(char *, const char *, size_t);
-#endif
-#ifndef __HAVE_ARCH_STRCAT
-extern char * strcat(char *, const char *);
-#endif
-#ifndef __HAVE_ARCH_STRNCAT
-extern char * strncat(char *, const char *, __kernel_size_t);
-#endif
-#ifndef __HAVE_ARCH_STRLCAT
-extern size_t strlcat(char *, const char *, __kernel_size_t);
-#endif
-#ifndef __HAVE_ARCH_STRCMP
-extern int strcmp(const char *,const char *);
-#endif
-#ifndef __HAVE_ARCH_STRNCMP
-extern int strncmp(const char *,const char *,__kernel_size_t);
-#endif
-#ifndef __HAVE_ARCH_STRNICMP
-extern int strnicmp(const char *, const char *, __kernel_size_t);
-#endif
-#ifndef __HAVE_ARCH_STRCASECMP
-extern int strcasecmp(const char *s1, const char *s2);
-#endif
-#ifndef __HAVE_ARCH_STRNCASECMP
-extern int strncasecmp(const char *s1, const char *s2, size_t n);
-#endif
-#ifndef __HAVE_ARCH_STRCHR
-extern char * strchr(const char *,int);
-#endif
-#ifndef __HAVE_ARCH_STRNCHR
-extern char * strnchr(const char *, size_t, int);
-#endif
-#ifndef __HAVE_ARCH_STRRCHR
-extern char * strrchr(const char *,int);
-#endif
-extern char * __must_check skip_spaces(const char *);
-
-extern char *strim(char *);
-
-static inline __must_check char *strstrip(char *str)
-{
- return strim(str);
-}
-
-#ifndef __HAVE_ARCH_STRSTR
-extern char * strstr(const char *, const char *);
-#endif
-#ifndef __HAVE_ARCH_STRNSTR
-extern char * strnstr(const char *, const char *, size_t);
-#endif
-#ifndef __HAVE_ARCH_STRLEN
-extern __kernel_size_t strlen(const char *);
-#endif
-#ifndef __HAVE_ARCH_STRNLEN
-extern __kernel_size_t strnlen(const char *,__kernel_size_t);
-#endif
-#ifndef __HAVE_ARCH_STRPBRK
-extern char * strpbrk(const char *,const char *);
-#endif
-#ifndef __HAVE_ARCH_STRSEP
-extern char * strsep(char **,const char *);
-#endif
-#ifndef __HAVE_ARCH_STRSPN
-extern __kernel_size_t strspn(const char *,const char *);
-#endif
-#ifndef __HAVE_ARCH_STRCSPN
-extern __kernel_size_t strcspn(const char *,const char *);
-#endif
-
-#ifndef __HAVE_ARCH_MEMSET
-extern void * memset(void *,int,__kernel_size_t);
-#endif
-#ifndef __HAVE_ARCH_MEMCPY
-extern void * memcpy(void *,const void *,__kernel_size_t);
-#endif
-#ifndef __HAVE_ARCH_MEMMOVE
-extern void * memmove(void *,const void *,__kernel_size_t);
-#endif
-#ifndef __HAVE_ARCH_MEMSCAN
-extern void * memscan(void *,int,__kernel_size_t);
-#endif
-#ifndef __HAVE_ARCH_MEMCMP
-extern int memcmp(const void *,const void *,__kernel_size_t);
-#endif
-#ifndef __HAVE_ARCH_MEMCHR
-extern void * memchr(const void *,int,__kernel_size_t);
-#endif
-void *memchr_inv(const void *s, int c, size_t n);
-
-extern char *kstrdup(const char *s, gfp_t gfp);
-extern char *kstrndup(const char *s, size_t len, gfp_t gfp);
-extern void *kmemdup(const void *src, size_t len, gfp_t gfp);
-
-extern char **argv_split(gfp_t gfp, const char *str, int *argcp);
-extern void argv_free(char **argv);
-
-extern bool sysfs_streq(const char *s1, const char *s2);
-extern int strtobool(const char *s, bool *res);
-
-#ifdef CONFIG_BINARY_PRINTF
-int vbin_printf(u32 *bin_buf, size_t size, const char *fmt, va_list args);
-int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf);
-int bprintf(u32 *bin_buf, size_t size, const char *fmt, ...) __printf(3, 4);
-#endif
-
-extern ssize_t memory_read_from_buffer(void *to, size_t count, loff_t *ppos,
- const void *from, size_t available);
-
-/**
- * strstarts - does @str start with @prefix?
- * @str: string to examine
- * @prefix: prefix to look for.
- */
-static inline bool strstarts(const char *str, const char *prefix)
-{
- return strncmp(str, prefix, strlen(prefix)) == 0;
-}
-#endif
-#endif /* _LINUX_STRING_H_ */
diff --git a/ANDROID_3.4.5/include/linux/string_helpers.h b/ANDROID_3.4.5/include/linux/string_helpers.h
deleted file mode 100644
index a3eb2f65..00000000
--- a/ANDROID_3.4.5/include/linux/string_helpers.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef _LINUX_STRING_HELPERS_H_
-#define _LINUX_STRING_HELPERS_H_
-
-#include <linux/types.h>
-
-/* Descriptions of the types of units to
- * print in */
-enum string_size_units {
- STRING_UNITS_10, /* use powers of 10^3 (standard SI) */
- STRING_UNITS_2, /* use binary powers of 2^10 */
-};
-
-int string_get_size(u64 size, enum string_size_units units,
- char *buf, int len);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/stringify.h b/ANDROID_3.4.5/include/linux/stringify.h
deleted file mode 100644
index 841cec8e..00000000
--- a/ANDROID_3.4.5/include/linux/stringify.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef __LINUX_STRINGIFY_H
-#define __LINUX_STRINGIFY_H
-
-/* Indirect stringification. Doing two levels allows the parameter to be a
- * macro itself. For example, compile with -DFOO=bar, __stringify(FOO)
- * converts to "bar".
- */
-
-#define __stringify_1(x...) #x
-#define __stringify(x...) __stringify_1(x)
-
-#endif /* !__LINUX_STRINGIFY_H */
diff --git a/ANDROID_3.4.5/include/linux/sungem_phy.h b/ANDROID_3.4.5/include/linux/sungem_phy.h
deleted file mode 100644
index bd9be9f5..00000000
--- a/ANDROID_3.4.5/include/linux/sungem_phy.h
+++ /dev/null
@@ -1,132 +0,0 @@
-#ifndef __SUNGEM_PHY_H__
-#define __SUNGEM_PHY_H__
-
-struct mii_phy;
-
-/* Operations supported by any kind of PHY */
-struct mii_phy_ops
-{
- int (*init)(struct mii_phy *phy);
- int (*suspend)(struct mii_phy *phy);
- int (*setup_aneg)(struct mii_phy *phy, u32 advertise);
- int (*setup_forced)(struct mii_phy *phy, int speed, int fd);
- int (*poll_link)(struct mii_phy *phy);
- int (*read_link)(struct mii_phy *phy);
- int (*enable_fiber)(struct mii_phy *phy, int autoneg);
-};
-
-/* Structure used to statically define an mii/gii based PHY */
-struct mii_phy_def
-{
- u32 phy_id; /* Concatenated ID1 << 16 | ID2 */
- u32 phy_id_mask; /* Significant bits */
- u32 features; /* Ethtool SUPPORTED_* defines */
- int magic_aneg; /* Autoneg does all speed test for us */
- const char* name;
- const struct mii_phy_ops* ops;
-};
-
-enum {
- BCM54XX_COPPER,
- BCM54XX_FIBER,
- BCM54XX_GBIC,
- BCM54XX_SGMII,
- BCM54XX_UNKNOWN,
-};
-
-/* An instance of a PHY, partially borrowed from mii_if_info */
-struct mii_phy
-{
- struct mii_phy_def* def;
- u32 advertising;
- int mii_id;
-
- /* 1: autoneg enabled, 0: disabled */
- int autoneg;
-
- /* forced speed & duplex (no autoneg)
- * partner speed & duplex & pause (autoneg)
- */
- int speed;
- int duplex;
- int pause;
-
- /* Provided by host chip */
- struct net_device *dev;
- int (*mdio_read) (struct net_device *dev, int mii_id, int reg);
- void (*mdio_write) (struct net_device *dev, int mii_id, int reg, int val);
- void *platform_data;
-};
-
-/* Pass in a struct mii_phy with dev, mdio_read and mdio_write
- * filled, the remaining fields will be filled on return
- */
-extern int sungem_phy_probe(struct mii_phy *phy, int mii_id);
-
-
-/* MII definitions missing from mii.h */
-
-#define BMCR_SPD2 0x0040 /* Gigabit enable (bcm54xx) */
-#define LPA_PAUSE 0x0400
-
-/* More PHY registers (model specific) */
-
-/* MII BCM5201 MULTIPHY interrupt register */
-#define MII_BCM5201_INTERRUPT 0x1A
-#define MII_BCM5201_INTERRUPT_INTENABLE 0x4000
-
-#define MII_BCM5201_AUXMODE2 0x1B
-#define MII_BCM5201_AUXMODE2_LOWPOWER 0x0008
-
-#define MII_BCM5201_MULTIPHY 0x1E
-
-/* MII BCM5201 MULTIPHY register bits */
-#define MII_BCM5201_MULTIPHY_SERIALMODE 0x0002
-#define MII_BCM5201_MULTIPHY_SUPERISOLATE 0x0008
-
-/* MII BCM5221 Additional registers */
-#define MII_BCM5221_TEST 0x1f
-#define MII_BCM5221_TEST_ENABLE_SHADOWS 0x0080
-#define MII_BCM5221_SHDOW_AUX_STAT2 0x1b
-#define MII_BCM5221_SHDOW_AUX_STAT2_APD 0x0020
-#define MII_BCM5221_SHDOW_AUX_MODE4 0x1a
-#define MII_BCM5221_SHDOW_AUX_MODE4_IDDQMODE 0x0001
-#define MII_BCM5221_SHDOW_AUX_MODE4_CLKLOPWR 0x0004
-
-/* MII BCM5241 Additional registers */
-#define MII_BCM5241_SHDOW_AUX_MODE4_STANDBYPWR 0x0008
-
-/* MII BCM5400 1000-BASET Control register */
-#define MII_BCM5400_GB_CONTROL 0x09
-#define MII_BCM5400_GB_CONTROL_FULLDUPLEXCAP 0x0200
-
-/* MII BCM5400 AUXCONTROL register */
-#define MII_BCM5400_AUXCONTROL 0x18
-#define MII_BCM5400_AUXCONTROL_PWR10BASET 0x0004
-
-/* MII BCM5400 AUXSTATUS register */
-#define MII_BCM5400_AUXSTATUS 0x19
-#define MII_BCM5400_AUXSTATUS_LINKMODE_MASK 0x0700
-#define MII_BCM5400_AUXSTATUS_LINKMODE_SHIFT 8
-
-/* 1000BT control (Marvell & BCM54xx at least) */
-#define MII_1000BASETCONTROL 0x09
-#define MII_1000BASETCONTROL_FULLDUPLEXCAP 0x0200
-#define MII_1000BASETCONTROL_HALFDUPLEXCAP 0x0100
-
-/* Marvell 88E1011 PHY control */
-#define MII_M1011_PHY_SPEC_CONTROL 0x10
-#define MII_M1011_PHY_SPEC_CONTROL_MANUAL_MDIX 0x20
-#define MII_M1011_PHY_SPEC_CONTROL_AUTO_MDIX 0x40
-
-/* Marvell 88E1011 PHY status */
-#define MII_M1011_PHY_SPEC_STATUS 0x11
-#define MII_M1011_PHY_SPEC_STATUS_1000 0x8000
-#define MII_M1011_PHY_SPEC_STATUS_100 0x4000
-#define MII_M1011_PHY_SPEC_STATUS_SPD_MASK 0xc000
-#define MII_M1011_PHY_SPEC_STATUS_FULLDUPLEX 0x2000
-#define MII_M1011_PHY_SPEC_STATUS_RESOLVED 0x0800
-#define MII_M1011_PHY_SPEC_STATUS_TX_PAUSE 0x0008
-#define MII_M1011_PHY_SPEC_STATUS_RX_PAUSE 0x0004
-
-#endif /* __SUNGEM_PHY_H__ */
diff --git a/ANDROID_3.4.5/include/linux/sunrpc/Kbuild b/ANDROID_3.4.5/include/linux/sunrpc/Kbuild
deleted file mode 100644
index 98df2116..00000000
--- a/ANDROID_3.4.5/include/linux/sunrpc/Kbuild
+++ /dev/null
@@ -1 +0,0 @@
-header-y += debug.h
diff --git a/ANDROID_3.4.5/include/linux/sunrpc/auth.h b/ANDROID_3.4.5/include/linux/sunrpc/auth.h
deleted file mode 100644
index 492a36d7..00000000
--- a/ANDROID_3.4.5/include/linux/sunrpc/auth.h
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * linux/include/linux/sunrpc/auth.h
- *
- * Declarations for the RPC client authentication machinery.
- *
- * Copyright (C) 1996, Olaf Kirch <okir@monad.swb.de>
- */
-
-#ifndef _LINUX_SUNRPC_AUTH_H
-#define _LINUX_SUNRPC_AUTH_H
-
-#ifdef __KERNEL__
-
-#include <linux/sunrpc/sched.h>
-#include <linux/sunrpc/msg_prot.h>
-#include <linux/sunrpc/xdr.h>
-
-#include <linux/atomic.h>
-#include <linux/rcupdate.h>
-
-/* size of the nodename buffer */
-#define UNX_MAXNODENAME 32
-
-/* Work around the lack of a VFS credential */
-struct auth_cred {
- uid_t uid;
- gid_t gid;
- struct group_info *group_info;
- const char *principal;
- unsigned char machine_cred : 1;
-};
-
-/*
- * Client user credentials
- */
-struct rpc_auth;
-struct rpc_credops;
-struct rpc_cred {
- struct hlist_node cr_hash; /* hash chain */
- struct list_head cr_lru; /* lru garbage collection */
- struct rcu_head cr_rcu;
- struct rpc_auth * cr_auth;
- const struct rpc_credops *cr_ops;
-#ifdef RPC_DEBUG
- unsigned long cr_magic; /* 0x0f4aa4f0 */
-#endif
- unsigned long cr_expire; /* when to gc */
- unsigned long cr_flags; /* various flags */
- atomic_t cr_count; /* ref count */
-
- uid_t cr_uid;
-
- /* per-flavor data */
-};
-#define RPCAUTH_CRED_NEW 0
-#define RPCAUTH_CRED_UPTODATE 1
-#define RPCAUTH_CRED_HASHED 2
-#define RPCAUTH_CRED_NEGATIVE 3
-
-#define RPCAUTH_CRED_MAGIC 0x0f4aa4f0
-
-/*
- * Client authentication handle
- */
-struct rpc_cred_cache;
-struct rpc_authops;
-struct rpc_auth {
- unsigned int au_cslack; /* call cred size estimate */
- /* guess at number of u32's auth adds before
- * reply data; normally the verifier size: */
- unsigned int au_rslack;
- /* for gss, used to calculate au_rslack: */
- unsigned int au_verfsize;
-
- unsigned int au_flags; /* various flags */
- const struct rpc_authops *au_ops; /* operations */
- rpc_authflavor_t au_flavor; /* pseudoflavor (note may
- * differ from the flavor in
- * au_ops->au_flavor in gss
- * case) */
- atomic_t au_count; /* Reference counter */
-
- struct rpc_cred_cache * au_credcache;
- /* per-flavor data */
-};
-
-/* Flags for rpcauth_lookupcred() */
-#define RPCAUTH_LOOKUP_NEW 0x01 /* Accept an uninitialised cred */
-
-/*
- * Client authentication ops
- */
-struct rpc_authops {
- struct module *owner;
- rpc_authflavor_t au_flavor; /* flavor (RPC_AUTH_*) */
- char * au_name;
- struct rpc_auth * (*create)(struct rpc_clnt *, rpc_authflavor_t);
- void (*destroy)(struct rpc_auth *);
-
- struct rpc_cred * (*lookup_cred)(struct rpc_auth *, struct auth_cred *, int);
- struct rpc_cred * (*crcreate)(struct rpc_auth*, struct auth_cred *, int);
- int (*pipes_create)(struct rpc_auth *);
- void (*pipes_destroy)(struct rpc_auth *);
-};
-
-struct rpc_credops {
- const char * cr_name; /* Name of the auth flavour */
- int (*cr_init)(struct rpc_auth *, struct rpc_cred *);
- void (*crdestroy)(struct rpc_cred *);
-
- int (*crmatch)(struct auth_cred *, struct rpc_cred *, int);
- struct rpc_cred * (*crbind)(struct rpc_task *, struct rpc_cred *, int);
- __be32 * (*crmarshal)(struct rpc_task *, __be32 *);
- int (*crrefresh)(struct rpc_task *);
- __be32 * (*crvalidate)(struct rpc_task *, __be32 *);
- int (*crwrap_req)(struct rpc_task *, kxdreproc_t,
- void *, __be32 *, void *);
- int (*crunwrap_resp)(struct rpc_task *, kxdrdproc_t,
- void *, __be32 *, void *);
-};
-
-extern const struct rpc_authops authunix_ops;
-extern const struct rpc_authops authnull_ops;
-
-int __init rpc_init_authunix(void);
-int __init rpc_init_generic_auth(void);
-int __init rpcauth_init_module(void);
-void rpcauth_remove_module(void);
-void rpc_destroy_generic_auth(void);
-void rpc_destroy_authunix(void);
-
-struct rpc_cred * rpc_lookup_cred(void);
-struct rpc_cred * rpc_lookup_machine_cred(const char *service_name);
-int rpcauth_register(const struct rpc_authops *);
-int rpcauth_unregister(const struct rpc_authops *);
-struct rpc_auth * rpcauth_create(rpc_authflavor_t, struct rpc_clnt *);
-void rpcauth_release(struct rpc_auth *);
-struct rpc_cred * rpcauth_lookup_credcache(struct rpc_auth *, struct auth_cred *, int);
-void rpcauth_init_cred(struct rpc_cred *, const struct auth_cred *, struct rpc_auth *, const struct rpc_credops *);
-struct rpc_cred * rpcauth_lookupcred(struct rpc_auth *, int);
-struct rpc_cred * rpcauth_generic_bind_cred(struct rpc_task *, struct rpc_cred *, int);
-void put_rpccred(struct rpc_cred *);
-__be32 * rpcauth_marshcred(struct rpc_task *, __be32 *);
-__be32 * rpcauth_checkverf(struct rpc_task *, __be32 *);
-int rpcauth_wrap_req(struct rpc_task *task, kxdreproc_t encode, void *rqstp, __be32 *data, void *obj);
-int rpcauth_unwrap_resp(struct rpc_task *task, kxdrdproc_t decode, void *rqstp, __be32 *data, void *obj);
-int rpcauth_refreshcred(struct rpc_task *);
-void rpcauth_invalcred(struct rpc_task *);
-int rpcauth_uptodatecred(struct rpc_task *);
-int rpcauth_init_credcache(struct rpc_auth *);
-void rpcauth_destroy_credcache(struct rpc_auth *);
-void rpcauth_clear_credcache(struct rpc_cred_cache *);
-
-static inline
-struct rpc_cred * get_rpccred(struct rpc_cred *cred)
-{
- atomic_inc(&cred->cr_count);
- return cred;
-}
-
-#endif /* __KERNEL__ */
-#endif /* _LINUX_SUNRPC_AUTH_H */
diff --git a/ANDROID_3.4.5/include/linux/sunrpc/auth_gss.h b/ANDROID_3.4.5/include/linux/sunrpc/auth_gss.h
deleted file mode 100644
index f1cfd4c8..00000000
--- a/ANDROID_3.4.5/include/linux/sunrpc/auth_gss.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * linux/include/linux/sunrpc/auth_gss.h
- *
- * Declarations for RPCSEC_GSS
- *
- * Dug Song <dugsong@monkey.org>
- * Andy Adamson <andros@umich.edu>
- * Bruce Fields <bfields@umich.edu>
- * Copyright (c) 2000 The Regents of the University of Michigan
- */
-
-#ifndef _LINUX_SUNRPC_AUTH_GSS_H
-#define _LINUX_SUNRPC_AUTH_GSS_H
-
-#ifdef __KERNEL__
-#include <linux/sunrpc/auth.h>
-#include <linux/sunrpc/svc.h>
-#include <linux/sunrpc/gss_api.h>
-
-#define RPC_GSS_VERSION 1
-
-#define MAXSEQ 0x80000000 /* maximum legal sequence number, from rfc 2203 */
-
-enum rpc_gss_proc {
- RPC_GSS_PROC_DATA = 0,
- RPC_GSS_PROC_INIT = 1,
- RPC_GSS_PROC_CONTINUE_INIT = 2,
- RPC_GSS_PROC_DESTROY = 3
-};
-
-enum rpc_gss_svc {
- RPC_GSS_SVC_NONE = 1,
- RPC_GSS_SVC_INTEGRITY = 2,
- RPC_GSS_SVC_PRIVACY = 3
-};
-
-/* on-the-wire gss cred: */
-struct rpc_gss_wire_cred {
- u32 gc_v; /* version */
- u32 gc_proc; /* control procedure */
- u32 gc_seq; /* sequence number */
- u32 gc_svc; /* service */
- struct xdr_netobj gc_ctx; /* context handle */
-};
-
-/* on-the-wire gss verifier: */
-struct rpc_gss_wire_verf {
- u32 gv_flavor;
- struct xdr_netobj gv_verf;
-};
-
-/* return from gss NULL PROC init sec context */
-struct rpc_gss_init_res {
- struct xdr_netobj gr_ctx; /* context handle */
- u32 gr_major; /* major status */
- u32 gr_minor; /* minor status */
- u32 gr_win; /* sequence window */
- struct xdr_netobj gr_token; /* token */
-};
-
-/* The gss_cl_ctx struct holds all the information the rpcsec_gss client
- * code needs to know about a single security context. In particular,
- * gc_gss_ctx is the context handle that is used to do gss-api calls, while
- * gc_wire_ctx is the context handle that is used to identify the context on
- * the wire when communicating with a server. */
-
-struct gss_cl_ctx {
- atomic_t count;
- enum rpc_gss_proc gc_proc;
- u32 gc_seq;
- spinlock_t gc_seq_lock;
- struct gss_ctx __rcu *gc_gss_ctx;
- struct xdr_netobj gc_wire_ctx;
- u32 gc_win;
- unsigned long gc_expiry;
- struct rcu_head gc_rcu;
-};
-
-struct gss_upcall_msg;
-struct gss_cred {
- struct rpc_cred gc_base;
- enum rpc_gss_svc gc_service;
- struct gss_cl_ctx __rcu *gc_ctx;
- struct gss_upcall_msg *gc_upcall;
- const char *gc_principal;
- unsigned long gc_upcall_timestamp;
-};
-
-#endif /* __KERNEL__ */
-#endif /* _LINUX_SUNRPC_AUTH_GSS_H */
-
diff --git a/ANDROID_3.4.5/include/linux/sunrpc/bc_xprt.h b/ANDROID_3.4.5/include/linux/sunrpc/bc_xprt.h
deleted file mode 100644
index 969c0a67..00000000
--- a/ANDROID_3.4.5/include/linux/sunrpc/bc_xprt.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/******************************************************************************
-
-(c) 2008 NetApp. All Rights Reserved.
-
-NetApp provides this source code under the GPL v2 License.
-The GPL v2 license is available at
-http://opensource.org/licenses/gpl-license.php.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-******************************************************************************/
-
-/*
- * Functions to create and manage the backchannel
- */
-
-#ifndef _LINUX_SUNRPC_BC_XPRT_H
-#define _LINUX_SUNRPC_BC_XPRT_H
-
-#include <linux/sunrpc/svcsock.h>
-#include <linux/sunrpc/xprt.h>
-#include <linux/sunrpc/sched.h>
-
-#ifdef CONFIG_SUNRPC_BACKCHANNEL
-struct rpc_rqst *xprt_alloc_bc_request(struct rpc_xprt *xprt);
-void xprt_free_bc_request(struct rpc_rqst *req);
-int xprt_setup_backchannel(struct rpc_xprt *, unsigned int min_reqs);
-void xprt_destroy_backchannel(struct rpc_xprt *, unsigned int max_reqs);
-int bc_send(struct rpc_rqst *req);
-
-/*
- * Determine if a shared backchannel is in use
- */
-static inline int svc_is_backchannel(const struct svc_rqst *rqstp)
-{
- if (rqstp->rq_server->sv_bc_xprt)
- return 1;
- return 0;
-}
-#else /* CONFIG_SUNRPC_BACKCHANNEL */
-static inline int xprt_setup_backchannel(struct rpc_xprt *xprt,
- unsigned int min_reqs)
-{
- return 0;
-}
-
-static inline int svc_is_backchannel(const struct svc_rqst *rqstp)
-{
- return 0;
-}
-
-static inline void xprt_free_bc_request(struct rpc_rqst *req)
-{
-}
-#endif /* CONFIG_SUNRPC_BACKCHANNEL */
-#endif /* _LINUX_SUNRPC_BC_XPRT_H */
-
diff --git a/ANDROID_3.4.5/include/linux/sunrpc/cache.h b/ANDROID_3.4.5/include/linux/sunrpc/cache.h
deleted file mode 100644
index f5fd6160..00000000
--- a/ANDROID_3.4.5/include/linux/sunrpc/cache.h
+++ /dev/null
@@ -1,263 +0,0 @@
-/*
- * include/linux/sunrpc/cache.h
- *
- * Generic code for various authentication-related caches
- * used by sunrpc clients and servers.
- *
- * Copyright (C) 2002 Neil Brown <neilb@cse.unsw.edu.au>
- *
- * Released under terms in GPL version 2. See COPYING.
- *
- */
-
-#ifndef _LINUX_SUNRPC_CACHE_H_
-#define _LINUX_SUNRPC_CACHE_H_
-
-#include <linux/kref.h>
-#include <linux/slab.h>
-#include <linux/atomic.h>
-#include <linux/proc_fs.h>
-
-/*
- * Each cache requires:
- * - A 'struct cache_detail' which contains information specific to the cache
- * for common code to use.
- * - An item structure that must contain a "struct cache_head"
- * - A lookup function defined using DefineCacheLookup
- * - A 'put' function that can release a cache item. It will only
- * be called after cache_put has succeed, so there are guarantee
- * to be no references.
- * - A function to calculate a hash of an item's key.
- *
- * as well as assorted code fragments (e.g. compare keys) and numbers
- * (e.g. hash size, goal_age, etc).
- *
- * Each cache must be registered so that it can be cleaned regularly.
- * When the cache is unregistered, it is flushed completely.
- *
- * Entries have a ref count and a 'hashed' flag which counts the existence
- * in the hash table.
- * We only expire entries when refcount is zero.
- * Existence in the cache is counted the refcount.
- */
-
-/* Every cache item has a common header that is used
- * for expiring and refreshing entries.
- *
- */
-struct cache_head {
- struct cache_head * next;
- time_t expiry_time; /* After time time, don't use the data */
- time_t last_refresh; /* If CACHE_PENDING, this is when upcall
- * was sent, else this is when update was received
- */
- struct kref ref;
- unsigned long flags;
-};
-#define CACHE_VALID 0 /* Entry contains valid data */
-#define CACHE_NEGATIVE 1 /* Negative entry - there is no match for the key */
-#define CACHE_PENDING 2 /* An upcall has been sent but no reply received yet*/
-
-#define CACHE_NEW_EXPIRY 120 /* keep new things pending confirmation for 120 seconds */
-
-struct cache_detail_procfs {
- struct proc_dir_entry *proc_ent;
- struct proc_dir_entry *flush_ent, *channel_ent, *content_ent;
-};
-
-struct cache_detail_pipefs {
- struct dentry *dir;
-};
-
-struct cache_detail {
- struct module * owner;
- int hash_size;
- struct cache_head ** hash_table;
- rwlock_t hash_lock;
-
- atomic_t inuse; /* active user-space update or lookup */
-
- char *name;
- void (*cache_put)(struct kref *);
-
- int (*cache_upcall)(struct cache_detail *,
- struct cache_head *);
-
- int (*cache_parse)(struct cache_detail *,
- char *buf, int len);
-
- int (*cache_show)(struct seq_file *m,
- struct cache_detail *cd,
- struct cache_head *h);
- void (*warn_no_listener)(struct cache_detail *cd,
- int has_died);
-
- struct cache_head * (*alloc)(void);
- int (*match)(struct cache_head *orig, struct cache_head *new);
- void (*init)(struct cache_head *orig, struct cache_head *new);
- void (*update)(struct cache_head *orig, struct cache_head *new);
-
- /* fields below this comment are for internal use
- * and should not be touched by cache owners
- */
- time_t flush_time; /* flush all cache items with last_refresh
- * earlier than this */
- struct list_head others;
- time_t nextcheck;
- int entries;
-
- /* fields for communication over channel */
- struct list_head queue;
-
- atomic_t readers; /* how many time is /chennel open */
- time_t last_close; /* if no readers, when did last close */
- time_t last_warn; /* when we last warned about no readers */
-
- union {
- struct cache_detail_procfs procfs;
- struct cache_detail_pipefs pipefs;
- } u;
- struct net *net;
-};
-
-
-/* this must be embedded in any request structure that
- * identifies an object that will want a callback on
- * a cache fill
- */
-struct cache_req {
- struct cache_deferred_req *(*defer)(struct cache_req *req);
- int thread_wait; /* How long (jiffies) we can block the
- * current thread to wait for updates.
- */
-};
-/* this must be embedded in a deferred_request that is being
- * delayed awaiting cache-fill
- */
-struct cache_deferred_req {
- struct hlist_node hash; /* on hash chain */
- struct list_head recent; /* on fifo */
- struct cache_head *item; /* cache item we wait on */
- void *owner; /* we might need to discard all defered requests
- * owned by someone */
- void (*revisit)(struct cache_deferred_req *req,
- int too_many);
-};
-
-
-extern const struct file_operations cache_file_operations_pipefs;
-extern const struct file_operations content_file_operations_pipefs;
-extern const struct file_operations cache_flush_operations_pipefs;
-
-extern struct cache_head *
-sunrpc_cache_lookup(struct cache_detail *detail,
- struct cache_head *key, int hash);
-extern struct cache_head *
-sunrpc_cache_update(struct cache_detail *detail,
- struct cache_head *new, struct cache_head *old, int hash);
-
-extern int
-sunrpc_cache_pipe_upcall(struct cache_detail *detail, struct cache_head *h,
- void (*cache_request)(struct cache_detail *,
- struct cache_head *,
- char **,
- int *));
-
-
-extern void cache_clean_deferred(void *owner);
-
-static inline struct cache_head *cache_get(struct cache_head *h)
-{
- kref_get(&h->ref);
- return h;
-}
-
-
-static inline void cache_put(struct cache_head *h, struct cache_detail *cd)
-{
- if (atomic_read(&h->ref.refcount) <= 2 &&
- h->expiry_time < cd->nextcheck)
- cd->nextcheck = h->expiry_time;
- kref_put(&h->ref, cd->cache_put);
-}
-
-static inline int cache_valid(struct cache_head *h)
-{
- /* If an item has been unhashed pending removal when
- * the refcount drops to 0, the expiry_time will be
- * set to 0. We don't want to consider such items
- * valid in this context even though CACHE_VALID is
- * set.
- */
- return (h->expiry_time != 0 && test_bit(CACHE_VALID, &h->flags));
-}
-
-extern int cache_check(struct cache_detail *detail,
- struct cache_head *h, struct cache_req *rqstp);
-extern void cache_flush(void);
-extern void cache_purge(struct cache_detail *detail);
-#define NEVER (0x7FFFFFFF)
-extern void __init cache_initialize(void);
-extern int cache_register_net(struct cache_detail *cd, struct net *net);
-extern void cache_unregister_net(struct cache_detail *cd, struct net *net);
-
-extern struct cache_detail *cache_create_net(struct cache_detail *tmpl, struct net *net);
-extern void cache_destroy_net(struct cache_detail *cd, struct net *net);
-
-extern void sunrpc_init_cache_detail(struct cache_detail *cd);
-extern void sunrpc_destroy_cache_detail(struct cache_detail *cd);
-extern int sunrpc_cache_register_pipefs(struct dentry *parent, const char *,
- umode_t, struct cache_detail *);
-extern void sunrpc_cache_unregister_pipefs(struct cache_detail *);
-
-extern void qword_add(char **bpp, int *lp, char *str);
-extern void qword_addhex(char **bpp, int *lp, char *buf, int blen);
-extern int qword_get(char **bpp, char *dest, int bufsize);
-
-static inline int get_int(char **bpp, int *anint)
-{
- char buf[50];
- char *ep;
- int rv;
- int len = qword_get(bpp, buf, 50);
- if (len < 0) return -EINVAL;
- if (len ==0) return -ENOENT;
- rv = simple_strtol(buf, &ep, 0);
- if (*ep) return -EINVAL;
- *anint = rv;
- return 0;
-}
-
-/*
- * timestamps kept in the cache are expressed in seconds
- * since boot. This is the best for measuring differences in
- * real time.
- */
-static inline time_t seconds_since_boot(void)
-{
- struct timespec boot;
- getboottime(&boot);
- return get_seconds() - boot.tv_sec;
-}
-
-static inline time_t convert_to_wallclock(time_t sinceboot)
-{
- struct timespec boot;
- getboottime(&boot);
- return boot.tv_sec + sinceboot;
-}
-
-static inline time_t get_expiry(char **bpp)
-{
- int rv;
- struct timespec boot;
-
- if (get_int(bpp, &rv))
- return 0;
- if (rv < 0)
- return 0;
- getboottime(&boot);
- return rv - boot.tv_sec;
-}
-
-#endif /* _LINUX_SUNRPC_CACHE_H_ */
diff --git a/ANDROID_3.4.5/include/linux/sunrpc/clnt.h b/ANDROID_3.4.5/include/linux/sunrpc/clnt.h
deleted file mode 100644
index 523547ec..00000000
--- a/ANDROID_3.4.5/include/linux/sunrpc/clnt.h
+++ /dev/null
@@ -1,319 +0,0 @@
-/*
- * linux/include/linux/sunrpc/clnt.h
- *
- * Declarations for the high-level RPC client interface
- *
- * Copyright (C) 1995, 1996, Olaf Kirch <okir@monad.swb.de>
- */
-
-#ifndef _LINUX_SUNRPC_CLNT_H
-#define _LINUX_SUNRPC_CLNT_H
-
-#include <linux/types.h>
-#include <linux/socket.h>
-#include <linux/in.h>
-#include <linux/in6.h>
-
-#include <linux/sunrpc/msg_prot.h>
-#include <linux/sunrpc/sched.h>
-#include <linux/sunrpc/xprt.h>
-#include <linux/sunrpc/auth.h>
-#include <linux/sunrpc/stats.h>
-#include <linux/sunrpc/xdr.h>
-#include <linux/sunrpc/timer.h>
-#include <asm/signal.h>
-#include <linux/path.h>
-#include <net/ipv6.h>
-
-struct rpc_inode;
-
-/*
- * The high-level client handle
- */
-struct rpc_clnt {
- atomic_t cl_count; /* Number of references */
- struct list_head cl_clients; /* Global list of clients */
- struct list_head cl_tasks; /* List of tasks */
- spinlock_t cl_lock; /* spinlock */
- struct rpc_xprt __rcu * cl_xprt; /* transport */
- struct rpc_procinfo * cl_procinfo; /* procedure info */
- u32 cl_prog, /* RPC program number */
- cl_vers, /* RPC version number */
- cl_maxproc; /* max procedure number */
-
- const char * cl_protname; /* protocol name */
- struct rpc_auth * cl_auth; /* authenticator */
- struct rpc_stat * cl_stats; /* per-program statistics */
- struct rpc_iostats * cl_metrics; /* per-client statistics */
-
- unsigned int cl_softrtry : 1,/* soft timeouts */
- cl_discrtry : 1,/* disconnect before retry */
- cl_autobind : 1,/* use getport() */
- cl_chatty : 1;/* be verbose */
-
- struct rpc_rtt * cl_rtt; /* RTO estimator data */
- const struct rpc_timeout *cl_timeout; /* Timeout strategy */
-
- int cl_nodelen; /* nodename length */
- char cl_nodename[UNX_MAXNODENAME];
- struct dentry * cl_dentry;
- struct rpc_clnt * cl_parent; /* Points to parent of clones */
- struct rpc_rtt cl_rtt_default;
- struct rpc_timeout cl_timeout_default;
- const struct rpc_program *cl_program;
- char *cl_principal; /* target to authenticate to */
-};
-
-/*
- * General RPC program info
- */
-#define RPC_MAXVERSION 4
-struct rpc_program {
- const char * name; /* protocol name */
- u32 number; /* program number */
- unsigned int nrvers; /* number of versions */
- const struct rpc_version ** version; /* version array */
- struct rpc_stat * stats; /* statistics */
- const char * pipe_dir_name; /* path to rpc_pipefs dir */
-};
-
-struct rpc_version {
- u32 number; /* version number */
- unsigned int nrprocs; /* number of procs */
- struct rpc_procinfo * procs; /* procedure array */
-};
-
-/*
- * Procedure information
- */
-struct rpc_procinfo {
- u32 p_proc; /* RPC procedure number */
- kxdreproc_t p_encode; /* XDR encode function */
- kxdrdproc_t p_decode; /* XDR decode function */
- unsigned int p_arglen; /* argument hdr length (u32) */
- unsigned int p_replen; /* reply hdr length (u32) */
- unsigned int p_count; /* call count */
- unsigned int p_timer; /* Which RTT timer to use */
- u32 p_statidx; /* Which procedure to account */
- const char * p_name; /* name of procedure */
-};
-
-#ifdef __KERNEL__
-
-struct rpc_create_args {
- struct net *net;
- int protocol;
- struct sockaddr *address;
- size_t addrsize;
- struct sockaddr *saddress;
- const struct rpc_timeout *timeout;
- const char *servername;
- const struct rpc_program *program;
- u32 prognumber; /* overrides program->number */
- u32 version;
- rpc_authflavor_t authflavor;
- unsigned long flags;
- char *client_name;
- struct svc_xprt *bc_xprt; /* NFSv4.1 backchannel */
-};
-
-/* Values for "flags" field */
-#define RPC_CLNT_CREATE_HARDRTRY (1UL << 0)
-#define RPC_CLNT_CREATE_AUTOBIND (1UL << 2)
-#define RPC_CLNT_CREATE_NONPRIVPORT (1UL << 3)
-#define RPC_CLNT_CREATE_NOPING (1UL << 4)
-#define RPC_CLNT_CREATE_DISCRTRY (1UL << 5)
-#define RPC_CLNT_CREATE_QUIET (1UL << 6)
-
-struct rpc_clnt *rpc_create(struct rpc_create_args *args);
-struct rpc_clnt *rpc_bind_new_program(struct rpc_clnt *,
- const struct rpc_program *, u32);
-void rpc_task_reset_client(struct rpc_task *task, struct rpc_clnt *clnt);
-struct rpc_clnt *rpc_clone_client(struct rpc_clnt *);
-void rpc_shutdown_client(struct rpc_clnt *);
-void rpc_release_client(struct rpc_clnt *);
-void rpc_task_release_client(struct rpc_task *);
-
-int rpcb_create_local(struct net *);
-void rpcb_put_local(struct net *);
-int rpcb_register(struct net *, u32, u32, int, unsigned short);
-int rpcb_v4_register(struct net *net, const u32 program,
- const u32 version,
- const struct sockaddr *address,
- const char *netid);
-void rpcb_getport_async(struct rpc_task *);
-
-void rpc_call_start(struct rpc_task *);
-int rpc_call_async(struct rpc_clnt *clnt,
- const struct rpc_message *msg, int flags,
- const struct rpc_call_ops *tk_ops,
- void *calldata);
-int rpc_call_sync(struct rpc_clnt *clnt,
- const struct rpc_message *msg, int flags);
-struct rpc_task *rpc_call_null(struct rpc_clnt *clnt, struct rpc_cred *cred,
- int flags);
-int rpc_restart_call_prepare(struct rpc_task *);
-int rpc_restart_call(struct rpc_task *);
-void rpc_setbufsize(struct rpc_clnt *, unsigned int, unsigned int);
-int rpc_protocol(struct rpc_clnt *);
-struct net * rpc_net_ns(struct rpc_clnt *);
-size_t rpc_max_payload(struct rpc_clnt *);
-void rpc_force_rebind(struct rpc_clnt *);
-size_t rpc_peeraddr(struct rpc_clnt *, struct sockaddr *, size_t);
-const char *rpc_peeraddr2str(struct rpc_clnt *, enum rpc_display_format_t);
-int rpc_localaddr(struct rpc_clnt *, struct sockaddr *, size_t);
-
-size_t rpc_ntop(const struct sockaddr *, char *, const size_t);
-size_t rpc_pton(struct net *, const char *, const size_t,
- struct sockaddr *, const size_t);
-char * rpc_sockaddr2uaddr(const struct sockaddr *, gfp_t);
-size_t rpc_uaddr2sockaddr(struct net *, const char *, const size_t,
- struct sockaddr *, const size_t);
-
-static inline unsigned short rpc_get_port(const struct sockaddr *sap)
-{
- switch (sap->sa_family) {
- case AF_INET:
- return ntohs(((struct sockaddr_in *)sap)->sin_port);
- case AF_INET6:
- return ntohs(((struct sockaddr_in6 *)sap)->sin6_port);
- }
- return 0;
-}
-
-static inline void rpc_set_port(struct sockaddr *sap,
- const unsigned short port)
-{
- switch (sap->sa_family) {
- case AF_INET:
- ((struct sockaddr_in *)sap)->sin_port = htons(port);
- break;
- case AF_INET6:
- ((struct sockaddr_in6 *)sap)->sin6_port = htons(port);
- break;
- }
-}
-
-#define IPV6_SCOPE_DELIMITER '%'
-#define IPV6_SCOPE_ID_LEN sizeof("%nnnnnnnnnn")
-
-static inline bool __rpc_cmp_addr4(const struct sockaddr *sap1,
- const struct sockaddr *sap2)
-{
- const struct sockaddr_in *sin1 = (const struct sockaddr_in *)sap1;
- const struct sockaddr_in *sin2 = (const struct sockaddr_in *)sap2;
-
- return sin1->sin_addr.s_addr == sin2->sin_addr.s_addr;
-}
-
-static inline bool __rpc_copy_addr4(struct sockaddr *dst,
- const struct sockaddr *src)
-{
- const struct sockaddr_in *ssin = (struct sockaddr_in *) src;
- struct sockaddr_in *dsin = (struct sockaddr_in *) dst;
-
- dsin->sin_family = ssin->sin_family;
- dsin->sin_addr.s_addr = ssin->sin_addr.s_addr;
- return true;
-}
-
-#if IS_ENABLED(CONFIG_IPV6)
-static inline bool __rpc_cmp_addr6(const struct sockaddr *sap1,
- const struct sockaddr *sap2)
-{
- const struct sockaddr_in6 *sin1 = (const struct sockaddr_in6 *)sap1;
- const struct sockaddr_in6 *sin2 = (const struct sockaddr_in6 *)sap2;
-
- if (!ipv6_addr_equal(&sin1->sin6_addr, &sin2->sin6_addr))
- return false;
- else if (ipv6_addr_type(&sin1->sin6_addr) & IPV6_ADDR_LINKLOCAL)
- return sin1->sin6_scope_id == sin2->sin6_scope_id;
-
- return true;
-}
-
-static inline bool __rpc_copy_addr6(struct sockaddr *dst,
- const struct sockaddr *src)
-{
- const struct sockaddr_in6 *ssin6 = (const struct sockaddr_in6 *) src;
- struct sockaddr_in6 *dsin6 = (struct sockaddr_in6 *) dst;
-
- dsin6->sin6_family = ssin6->sin6_family;
- dsin6->sin6_addr = ssin6->sin6_addr;
- return true;
-}
-#else /* !(IS_ENABLED(CONFIG_IPV6) */
-static inline bool __rpc_cmp_addr6(const struct sockaddr *sap1,
- const struct sockaddr *sap2)
-{
- return false;
-}
-
-static inline bool __rpc_copy_addr6(struct sockaddr *dst,
- const struct sockaddr *src)
-{
- return false;
-}
-#endif /* !(IS_ENABLED(CONFIG_IPV6) */
-
-/**
- * rpc_cmp_addr - compare the address portion of two sockaddrs.
- * @sap1: first sockaddr
- * @sap2: second sockaddr
- *
- * Just compares the family and address portion. Ignores port, scope, etc.
- * Returns true if the addrs are equal, false if they aren't.
- */
-static inline bool rpc_cmp_addr(const struct sockaddr *sap1,
- const struct sockaddr *sap2)
-{
- if (sap1->sa_family == sap2->sa_family) {
- switch (sap1->sa_family) {
- case AF_INET:
- return __rpc_cmp_addr4(sap1, sap2);
- case AF_INET6:
- return __rpc_cmp_addr6(sap1, sap2);
- }
- }
- return false;
-}
-
-/**
- * rpc_copy_addr - copy the address portion of one sockaddr to another
- * @dst: destination sockaddr
- * @src: source sockaddr
- *
- * Just copies the address portion and family. Ignores port, scope, etc.
- * Caller is responsible for making certain that dst is large enough to hold
- * the address in src. Returns true if address family is supported. Returns
- * false otherwise.
- */
-static inline bool rpc_copy_addr(struct sockaddr *dst,
- const struct sockaddr *src)
-{
- switch (src->sa_family) {
- case AF_INET:
- return __rpc_copy_addr4(dst, src);
- case AF_INET6:
- return __rpc_copy_addr6(dst, src);
- }
- return false;
-}
-
-/**
- * rpc_get_scope_id - return scopeid for a given sockaddr
- * @sa: sockaddr to get scopeid from
- *
- * Returns the value of the sin6_scope_id for AF_INET6 addrs, or 0 if
- * not an AF_INET6 address.
- */
-static inline u32 rpc_get_scope_id(const struct sockaddr *sa)
-{
- if (sa->sa_family != AF_INET6)
- return 0;
-
- return ((struct sockaddr_in6 *) sa)->sin6_scope_id;
-}
-
-#endif /* __KERNEL__ */
-#endif /* _LINUX_SUNRPC_CLNT_H */
diff --git a/ANDROID_3.4.5/include/linux/sunrpc/debug.h b/ANDROID_3.4.5/include/linux/sunrpc/debug.h
deleted file mode 100644
index a76cc20d..00000000
--- a/ANDROID_3.4.5/include/linux/sunrpc/debug.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * linux/include/linux/sunrpc/debug.h
- *
- * Debugging support for sunrpc module
- *
- * Copyright (C) 1996, Olaf Kirch <okir@monad.swb.de>
- */
-
-#ifndef _LINUX_SUNRPC_DEBUG_H_
-#define _LINUX_SUNRPC_DEBUG_H_
-
-/*
- * RPC debug facilities
- */
-#define RPCDBG_XPRT 0x0001
-#define RPCDBG_CALL 0x0002
-#define RPCDBG_DEBUG 0x0004
-#define RPCDBG_NFS 0x0008
-#define RPCDBG_AUTH 0x0010
-#define RPCDBG_BIND 0x0020
-#define RPCDBG_SCHED 0x0040
-#define RPCDBG_TRANS 0x0080
-#define RPCDBG_SVCXPRT 0x0100
-#define RPCDBG_SVCDSP 0x0200
-#define RPCDBG_MISC 0x0400
-#define RPCDBG_CACHE 0x0800
-#define RPCDBG_ALL 0x7fff
-
-#ifdef __KERNEL__
-
-/*
- * Enable RPC debugging/profiling.
- */
-#ifdef CONFIG_SUNRPC_DEBUG
-#define RPC_DEBUG
-#endif
-#ifdef CONFIG_TRACEPOINTS
-#define RPC_TRACEPOINTS
-#endif
-/* #define RPC_PROFILE */
-
-/*
- * Debugging macros etc
- */
-#ifdef RPC_DEBUG
-extern unsigned int rpc_debug;
-extern unsigned int nfs_debug;
-extern unsigned int nfsd_debug;
-extern unsigned int nlm_debug;
-#endif
-
-#define dprintk(args...) dfprintk(FACILITY, ## args)
-#define dprintk_rcu(args...) dfprintk_rcu(FACILITY, ## args)
-
-#undef ifdebug
-#ifdef RPC_DEBUG
-# define ifdebug(fac) if (unlikely(rpc_debug & RPCDBG_##fac))
-
-# define dfprintk(fac, args...) \
- do { \
- ifdebug(fac) \
- printk(KERN_DEFAULT args); \
- } while (0)
-
-# define dfprintk_rcu(fac, args...) \
- do { \
- ifdebug(fac) { \
- rcu_read_lock(); \
- printk(KERN_DEFAULT args); \
- rcu_read_unlock(); \
- } \
- } while (0)
-
-# define RPC_IFDEBUG(x) x
-#else
-# define ifdebug(fac) if (0)
-# define dfprintk(fac, args...) do {} while (0)
-# define dfprintk_rcu(fac, args...) do {} while (0)
-# define RPC_IFDEBUG(x)
-#endif
-
-/*
- * Sysctl interface for RPC debugging
- */
-#ifdef RPC_DEBUG
-void rpc_register_sysctl(void);
-void rpc_unregister_sysctl(void);
-#endif
-
-#endif /* __KERNEL__ */
-
-/*
- * Declarations for the sysctl debug interface, which allows to read or
- * change the debug flags for rpc, nfs, nfsd, and lockd. Since the sunrpc
- * module currently registers its sysctl table dynamically, the sysctl path
- * for module FOO is <CTL_SUNRPC, CTL_FOODEBUG>.
- */
-
-enum {
- CTL_RPCDEBUG = 1,
- CTL_NFSDEBUG,
- CTL_NFSDDEBUG,
- CTL_NLMDEBUG,
- CTL_SLOTTABLE_UDP,
- CTL_SLOTTABLE_TCP,
- CTL_MIN_RESVPORT,
- CTL_MAX_RESVPORT,
-};
-
-#endif /* _LINUX_SUNRPC_DEBUG_H_ */
diff --git a/ANDROID_3.4.5/include/linux/sunrpc/gss_api.h b/ANDROID_3.4.5/include/linux/sunrpc/gss_api.h
deleted file mode 100644
index 332da61c..00000000
--- a/ANDROID_3.4.5/include/linux/sunrpc/gss_api.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * linux/include/linux/sunrpc/gss_api.h
- *
- * Somewhat simplified version of the gss api.
- *
- * Dug Song <dugsong@monkey.org>
- * Andy Adamson <andros@umich.edu>
- * Bruce Fields <bfields@umich.edu>
- * Copyright (c) 2000 The Regents of the University of Michigan
- */
-
-#ifndef _LINUX_SUNRPC_GSS_API_H
-#define _LINUX_SUNRPC_GSS_API_H
-
-#ifdef __KERNEL__
-#include <linux/sunrpc/xdr.h>
-#include <linux/uio.h>
-
-/* The mechanism-independent gss-api context: */
-struct gss_ctx {
- struct gss_api_mech *mech_type;
- void *internal_ctx_id;
-};
-
-#define GSS_C_NO_BUFFER ((struct xdr_netobj) 0)
-#define GSS_C_NO_CONTEXT ((struct gss_ctx *) 0)
-#define GSS_C_NULL_OID ((struct xdr_netobj) 0)
-
-/*XXX arbitrary length - is this set somewhere? */
-#define GSS_OID_MAX_LEN 32
-
-/* gss-api prototypes; note that these are somewhat simplified versions of
- * the prototypes specified in RFC 2744. */
-int gss_import_sec_context(
- const void* input_token,
- size_t bufsize,
- struct gss_api_mech *mech,
- struct gss_ctx **ctx_id,
- gfp_t gfp_mask);
-u32 gss_get_mic(
- struct gss_ctx *ctx_id,
- struct xdr_buf *message,
- struct xdr_netobj *mic_token);
-u32 gss_verify_mic(
- struct gss_ctx *ctx_id,
- struct xdr_buf *message,
- struct xdr_netobj *mic_token);
-u32 gss_wrap(
- struct gss_ctx *ctx_id,
- int offset,
- struct xdr_buf *outbuf,
- struct page **inpages);
-u32 gss_unwrap(
- struct gss_ctx *ctx_id,
- int offset,
- struct xdr_buf *inbuf);
-u32 gss_delete_sec_context(
- struct gss_ctx **ctx_id);
-
-u32 gss_svc_to_pseudoflavor(struct gss_api_mech *, u32 service);
-u32 gss_pseudoflavor_to_service(struct gss_api_mech *, u32 pseudoflavor);
-char *gss_service_to_auth_domain_name(struct gss_api_mech *, u32 service);
-
-struct pf_desc {
- u32 pseudoflavor;
- u32 service;
- char *name;
- char *auth_domain_name;
-};
-
-/* Different mechanisms (e.g., krb5 or spkm3) may implement gss-api, and
- * mechanisms may be dynamically registered or unregistered by modules. */
-
-/* Each mechanism is described by the following struct: */
-struct gss_api_mech {
- struct list_head gm_list;
- struct module *gm_owner;
- struct xdr_netobj gm_oid;
- char *gm_name;
- const struct gss_api_ops *gm_ops;
- /* pseudoflavors supported by this mechanism: */
- int gm_pf_num;
- struct pf_desc * gm_pfs;
- /* Should the following be a callback operation instead? */
- const char *gm_upcall_enctypes;
-};
-
-/* and must provide the following operations: */
-struct gss_api_ops {
- int (*gss_import_sec_context)(
- const void *input_token,
- size_t bufsize,
- struct gss_ctx *ctx_id,
- gfp_t gfp_mask);
- u32 (*gss_get_mic)(
- struct gss_ctx *ctx_id,
- struct xdr_buf *message,
- struct xdr_netobj *mic_token);
- u32 (*gss_verify_mic)(
- struct gss_ctx *ctx_id,
- struct xdr_buf *message,
- struct xdr_netobj *mic_token);
- u32 (*gss_wrap)(
- struct gss_ctx *ctx_id,
- int offset,
- struct xdr_buf *outbuf,
- struct page **inpages);
- u32 (*gss_unwrap)(
- struct gss_ctx *ctx_id,
- int offset,
- struct xdr_buf *buf);
- void (*gss_delete_sec_context)(
- void *internal_ctx_id);
-};
-
-int gss_mech_register(struct gss_api_mech *);
-void gss_mech_unregister(struct gss_api_mech *);
-
-/* returns a mechanism descriptor given an OID, and increments the mechanism's
- * reference count. */
-struct gss_api_mech * gss_mech_get_by_OID(struct xdr_netobj *);
-
-/* Returns a reference to a mechanism, given a name like "krb5" etc. */
-struct gss_api_mech *gss_mech_get_by_name(const char *);
-
-/* Similar, but get by pseudoflavor. */
-struct gss_api_mech *gss_mech_get_by_pseudoflavor(u32);
-
-/* Fill in an array with a list of supported pseudoflavors */
-int gss_mech_list_pseudoflavors(u32 *);
-
-/* Just increments the mechanism's reference count and returns its input: */
-struct gss_api_mech * gss_mech_get(struct gss_api_mech *);
-
-/* For every successful gss_mech_get or gss_mech_get_by_* call there must be a
- * corresponding call to gss_mech_put. */
-void gss_mech_put(struct gss_api_mech *);
-
-#endif /* __KERNEL__ */
-#endif /* _LINUX_SUNRPC_GSS_API_H */
-
diff --git a/ANDROID_3.4.5/include/linux/sunrpc/gss_asn1.h b/ANDROID_3.4.5/include/linux/sunrpc/gss_asn1.h
deleted file mode 100644
index 3ccecd0a..00000000
--- a/ANDROID_3.4.5/include/linux/sunrpc/gss_asn1.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * linux/include/linux/sunrpc/gss_asn1.h
- *
- * minimal asn1 for generic encoding/decoding of gss tokens
- *
- * Adapted from MIT Kerberos 5-1.2.1 lib/include/krb5.h,
- * lib/gssapi/krb5/gssapiP_krb5.h, and others
- *
- * Copyright (c) 2000 The Regents of the University of Michigan.
- * All rights reserved.
- *
- * Andy Adamson <andros@umich.edu>
- */
-
-/*
- * Copyright 1995 by the Massachusetts Institute of Technology.
- * All Rights Reserved.
- *
- * Export of this software from the United States of America may
- * require a specific license from the United States Government.
- * It is the responsibility of any person or organization contemplating
- * export to obtain such a license before exporting.
- *
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
- * distribute this software and its documentation for any purpose and
- * without fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright notice and
- * this permission notice appear in supporting documentation, and that
- * the name of M.I.T. not be used in advertising or publicity pertaining
- * to distribution of the software without specific, written prior
- * permission. Furthermore if you modify this software you must label
- * your software as modified software and not distribute it in such a
- * fashion that it might be confused with the original M.I.T. software.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is" without express
- * or implied warranty.
- *
- */
-
-
-#include <linux/sunrpc/gss_api.h>
-
-#define SIZEOF_INT 4
-
-/* from gssapi_err_generic.h */
-#define G_BAD_SERVICE_NAME (-2045022976L)
-#define G_BAD_STRING_UID (-2045022975L)
-#define G_NOUSER (-2045022974L)
-#define G_VALIDATE_FAILED (-2045022973L)
-#define G_BUFFER_ALLOC (-2045022972L)
-#define G_BAD_MSG_CTX (-2045022971L)
-#define G_WRONG_SIZE (-2045022970L)
-#define G_BAD_USAGE (-2045022969L)
-#define G_UNKNOWN_QOP (-2045022968L)
-#define G_NO_HOSTNAME (-2045022967L)
-#define G_BAD_HOSTNAME (-2045022966L)
-#define G_WRONG_MECH (-2045022965L)
-#define G_BAD_TOK_HEADER (-2045022964L)
-#define G_BAD_DIRECTION (-2045022963L)
-#define G_TOK_TRUNC (-2045022962L)
-#define G_REFLECT (-2045022961L)
-#define G_WRONG_TOKID (-2045022960L)
-
-#define g_OID_equal(o1,o2) \
- (((o1)->len == (o2)->len) && \
- (memcmp((o1)->data,(o2)->data,(int) (o1)->len) == 0))
-
-u32 g_verify_token_header(
- struct xdr_netobj *mech,
- int *body_size,
- unsigned char **buf_in,
- int toksize);
-
-int g_token_size(
- struct xdr_netobj *mech,
- unsigned int body_size);
-
-void g_make_token_header(
- struct xdr_netobj *mech,
- int body_size,
- unsigned char **buf);
diff --git a/ANDROID_3.4.5/include/linux/sunrpc/gss_err.h b/ANDROID_3.4.5/include/linux/sunrpc/gss_err.h
deleted file mode 100644
index a6807867..00000000
--- a/ANDROID_3.4.5/include/linux/sunrpc/gss_err.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * linux/include/sunrpc/gss_err.h
- *
- * Adapted from MIT Kerberos 5-1.2.1 include/gssapi/gssapi.h
- *
- * Copyright (c) 2002 The Regents of the University of Michigan.
- * All rights reserved.
- *
- * Andy Adamson <andros@umich.edu>
- */
-
-/*
- * Copyright 1993 by OpenVision Technologies, Inc.
- *
- * Permission to use, copy, modify, distribute, and sell this software
- * and its documentation for any purpose is hereby granted without fee,
- * provided that the above copyright notice appears in all copies and
- * that both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of OpenVision not be used
- * in advertising or publicity pertaining to distribution of the software
- * without specific, written prior permission. OpenVision makes no
- * representations about the suitability of this software for any
- * purpose. It is provided "as is" without express or implied warranty.
- *
- * OPENVISION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL OPENVISION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
- * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
- * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifndef _LINUX_SUNRPC_GSS_ERR_H
-#define _LINUX_SUNRPC_GSS_ERR_H
-
-#ifdef __KERNEL__
-
-typedef unsigned int OM_uint32;
-
-/*
- * Flag bits for context-level services.
- */
-#define GSS_C_DELEG_FLAG 1
-#define GSS_C_MUTUAL_FLAG 2
-#define GSS_C_REPLAY_FLAG 4
-#define GSS_C_SEQUENCE_FLAG 8
-#define GSS_C_CONF_FLAG 16
-#define GSS_C_INTEG_FLAG 32
-#define GSS_C_ANON_FLAG 64
-#define GSS_C_PROT_READY_FLAG 128
-#define GSS_C_TRANS_FLAG 256
-
-/*
- * Credential usage options
- */
-#define GSS_C_BOTH 0
-#define GSS_C_INITIATE 1
-#define GSS_C_ACCEPT 2
-
-/*
- * Status code types for gss_display_status
- */
-#define GSS_C_GSS_CODE 1
-#define GSS_C_MECH_CODE 2
-
-
-/*
- * Expiration time of 2^32-1 seconds means infinite lifetime for a
- * credential or security context
- */
-#define GSS_C_INDEFINITE ((OM_uint32) 0xfffffffful)
-
-
-/* Major status codes */
-
-#define GSS_S_COMPLETE 0
-
-/*
- * Some "helper" definitions to make the status code macros obvious.
- */
-#define GSS_C_CALLING_ERROR_OFFSET 24
-#define GSS_C_ROUTINE_ERROR_OFFSET 16
-#define GSS_C_SUPPLEMENTARY_OFFSET 0
-#define GSS_C_CALLING_ERROR_MASK ((OM_uint32) 0377ul)
-#define GSS_C_ROUTINE_ERROR_MASK ((OM_uint32) 0377ul)
-#define GSS_C_SUPPLEMENTARY_MASK ((OM_uint32) 0177777ul)
-
-/*
- * The macros that test status codes for error conditions. Note that the
- * GSS_ERROR() macro has changed slightly from the V1 GSSAPI so that it now
- * evaluates its argument only once.
- */
-#define GSS_CALLING_ERROR(x) \
- ((x) & (GSS_C_CALLING_ERROR_MASK << GSS_C_CALLING_ERROR_OFFSET))
-#define GSS_ROUTINE_ERROR(x) \
- ((x) & (GSS_C_ROUTINE_ERROR_MASK << GSS_C_ROUTINE_ERROR_OFFSET))
-#define GSS_SUPPLEMENTARY_INFO(x) \
- ((x) & (GSS_C_SUPPLEMENTARY_MASK << GSS_C_SUPPLEMENTARY_OFFSET))
-#define GSS_ERROR(x) \
- ((x) & ((GSS_C_CALLING_ERROR_MASK << GSS_C_CALLING_ERROR_OFFSET) | \
- (GSS_C_ROUTINE_ERROR_MASK << GSS_C_ROUTINE_ERROR_OFFSET)))
-
-/*
- * Now the actual status code definitions
- */
-
-/*
- * Calling errors:
- */
-#define GSS_S_CALL_INACCESSIBLE_READ \
- (((OM_uint32) 1ul) << GSS_C_CALLING_ERROR_OFFSET)
-#define GSS_S_CALL_INACCESSIBLE_WRITE \
- (((OM_uint32) 2ul) << GSS_C_CALLING_ERROR_OFFSET)
-#define GSS_S_CALL_BAD_STRUCTURE \
- (((OM_uint32) 3ul) << GSS_C_CALLING_ERROR_OFFSET)
-
-/*
- * Routine errors:
- */
-#define GSS_S_BAD_MECH (((OM_uint32) 1ul) << GSS_C_ROUTINE_ERROR_OFFSET)
-#define GSS_S_BAD_NAME (((OM_uint32) 2ul) << GSS_C_ROUTINE_ERROR_OFFSET)
-#define GSS_S_BAD_NAMETYPE (((OM_uint32) 3ul) << GSS_C_ROUTINE_ERROR_OFFSET)
-#define GSS_S_BAD_BINDINGS (((OM_uint32) 4ul) << GSS_C_ROUTINE_ERROR_OFFSET)
-#define GSS_S_BAD_STATUS (((OM_uint32) 5ul) << GSS_C_ROUTINE_ERROR_OFFSET)
-#define GSS_S_BAD_SIG (((OM_uint32) 6ul) << GSS_C_ROUTINE_ERROR_OFFSET)
-#define GSS_S_NO_CRED (((OM_uint32) 7ul) << GSS_C_ROUTINE_ERROR_OFFSET)
-#define GSS_S_NO_CONTEXT (((OM_uint32) 8ul) << GSS_C_ROUTINE_ERROR_OFFSET)
-#define GSS_S_DEFECTIVE_TOKEN (((OM_uint32) 9ul) << GSS_C_ROUTINE_ERROR_OFFSET)
-#define GSS_S_DEFECTIVE_CREDENTIAL \
- (((OM_uint32) 10ul) << GSS_C_ROUTINE_ERROR_OFFSET)
-#define GSS_S_CREDENTIALS_EXPIRED \
- (((OM_uint32) 11ul) << GSS_C_ROUTINE_ERROR_OFFSET)
-#define GSS_S_CONTEXT_EXPIRED \
- (((OM_uint32) 12ul) << GSS_C_ROUTINE_ERROR_OFFSET)
-#define GSS_S_FAILURE (((OM_uint32) 13ul) << GSS_C_ROUTINE_ERROR_OFFSET)
-#define GSS_S_BAD_QOP (((OM_uint32) 14ul) << GSS_C_ROUTINE_ERROR_OFFSET)
-#define GSS_S_UNAUTHORIZED (((OM_uint32) 15ul) << GSS_C_ROUTINE_ERROR_OFFSET)
-#define GSS_S_UNAVAILABLE (((OM_uint32) 16ul) << GSS_C_ROUTINE_ERROR_OFFSET)
-#define GSS_S_DUPLICATE_ELEMENT \
- (((OM_uint32) 17ul) << GSS_C_ROUTINE_ERROR_OFFSET)
-#define GSS_S_NAME_NOT_MN \
- (((OM_uint32) 18ul) << GSS_C_ROUTINE_ERROR_OFFSET)
-
-/*
- * Supplementary info bits:
- */
-#define GSS_S_CONTINUE_NEEDED (1 << (GSS_C_SUPPLEMENTARY_OFFSET + 0))
-#define GSS_S_DUPLICATE_TOKEN (1 << (GSS_C_SUPPLEMENTARY_OFFSET + 1))
-#define GSS_S_OLD_TOKEN (1 << (GSS_C_SUPPLEMENTARY_OFFSET + 2))
-#define GSS_S_UNSEQ_TOKEN (1 << (GSS_C_SUPPLEMENTARY_OFFSET + 3))
-#define GSS_S_GAP_TOKEN (1 << (GSS_C_SUPPLEMENTARY_OFFSET + 4))
-
-/* XXXX these are not part of the GSSAPI C bindings! (but should be) */
-
-#define GSS_CALLING_ERROR_FIELD(x) \
- (((x) >> GSS_C_CALLING_ERROR_OFFSET) & GSS_C_CALLING_ERROR_MASK)
-#define GSS_ROUTINE_ERROR_FIELD(x) \
- (((x) >> GSS_C_ROUTINE_ERROR_OFFSET) & GSS_C_ROUTINE_ERROR_MASK)
-#define GSS_SUPPLEMENTARY_INFO_FIELD(x) \
- (((x) >> GSS_C_SUPPLEMENTARY_OFFSET) & GSS_C_SUPPLEMENTARY_MASK)
-
-/* XXXX This is a necessary evil until the spec is fixed */
-#define GSS_S_CRED_UNAVAIL GSS_S_FAILURE
-
-#endif /* __KERNEL__ */
-#endif /* __LINUX_SUNRPC_GSS_ERR_H */
diff --git a/ANDROID_3.4.5/include/linux/sunrpc/gss_krb5.h b/ANDROID_3.4.5/include/linux/sunrpc/gss_krb5.h
deleted file mode 100644
index 5af2931c..00000000
--- a/ANDROID_3.4.5/include/linux/sunrpc/gss_krb5.h
+++ /dev/null
@@ -1,331 +0,0 @@
-/*
- * linux/include/linux/sunrpc/gss_krb5_types.h
- *
- * Adapted from MIT Kerberos 5-1.2.1 lib/include/krb5.h,
- * lib/gssapi/krb5/gssapiP_krb5.h, and others
- *
- * Copyright (c) 2000-2008 The Regents of the University of Michigan.
- * All rights reserved.
- *
- * Andy Adamson <andros@umich.edu>
- * Bruce Fields <bfields@umich.edu>
- */
-
-/*
- * Copyright 1995 by the Massachusetts Institute of Technology.
- * All Rights Reserved.
- *
- * Export of this software from the United States of America may
- * require a specific license from the United States Government.
- * It is the responsibility of any person or organization contemplating
- * export to obtain such a license before exporting.
- *
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
- * distribute this software and its documentation for any purpose and
- * without fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright notice and
- * this permission notice appear in supporting documentation, and that
- * the name of M.I.T. not be used in advertising or publicity pertaining
- * to distribution of the software without specific, written prior
- * permission. Furthermore if you modify this software you must label
- * your software as modified software and not distribute it in such a
- * fashion that it might be confused with the original M.I.T. software.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is" without express
- * or implied warranty.
- *
- */
-
-#include <linux/crypto.h>
-#include <linux/sunrpc/auth_gss.h>
-#include <linux/sunrpc/gss_err.h>
-#include <linux/sunrpc/gss_asn1.h>
-
-/* Length of constant used in key derivation */
-#define GSS_KRB5_K5CLENGTH (5)
-
-/* Maximum key length (in bytes) for the supported crypto algorithms*/
-#define GSS_KRB5_MAX_KEYLEN (32)
-
-/* Maximum checksum function output for the supported crypto algorithms */
-#define GSS_KRB5_MAX_CKSUM_LEN (20)
-
-/* Maximum blocksize for the supported crypto algorithms */
-#define GSS_KRB5_MAX_BLOCKSIZE (16)
-
-struct krb5_ctx;
-
-struct gss_krb5_enctype {
- const u32 etype; /* encryption (key) type */
- const u32 ctype; /* checksum type */
- const char *name; /* "friendly" name */
- const char *encrypt_name; /* crypto encrypt name */
- const char *cksum_name; /* crypto checksum name */
- const u16 signalg; /* signing algorithm */
- const u16 sealalg; /* sealing algorithm */
- const u32 blocksize; /* encryption blocksize */
- const u32 conflen; /* confounder length
- (normally the same as
- the blocksize) */
- const u32 cksumlength; /* checksum length */
- const u32 keyed_cksum; /* is it a keyed cksum? */
- const u32 keybytes; /* raw key len, in bytes */
- const u32 keylength; /* final key len, in bytes */
- u32 (*encrypt) (struct crypto_blkcipher *tfm,
- void *iv, void *in, void *out,
- int length); /* encryption function */
- u32 (*decrypt) (struct crypto_blkcipher *tfm,
- void *iv, void *in, void *out,
- int length); /* decryption function */
- u32 (*mk_key) (const struct gss_krb5_enctype *gk5e,
- struct xdr_netobj *in,
- struct xdr_netobj *out); /* complete key generation */
- u32 (*encrypt_v2) (struct krb5_ctx *kctx, u32 offset,
- struct xdr_buf *buf, int ec,
- struct page **pages); /* v2 encryption function */
- u32 (*decrypt_v2) (struct krb5_ctx *kctx, u32 offset,
- struct xdr_buf *buf, u32 *headskip,
- u32 *tailskip); /* v2 decryption function */
-};
-
-/* krb5_ctx flags definitions */
-#define KRB5_CTX_FLAG_INITIATOR 0x00000001
-#define KRB5_CTX_FLAG_CFX 0x00000002
-#define KRB5_CTX_FLAG_ACCEPTOR_SUBKEY 0x00000004
-
-struct krb5_ctx {
- int initiate; /* 1 = initiating, 0 = accepting */
- u32 enctype;
- u32 flags;
- const struct gss_krb5_enctype *gk5e; /* enctype-specific info */
- struct crypto_blkcipher *enc;
- struct crypto_blkcipher *seq;
- struct crypto_blkcipher *acceptor_enc;
- struct crypto_blkcipher *initiator_enc;
- struct crypto_blkcipher *acceptor_enc_aux;
- struct crypto_blkcipher *initiator_enc_aux;
- u8 Ksess[GSS_KRB5_MAX_KEYLEN]; /* session key */
- u8 cksum[GSS_KRB5_MAX_KEYLEN];
- s32 endtime;
- u32 seq_send;
- u64 seq_send64;
- struct xdr_netobj mech_used;
- u8 initiator_sign[GSS_KRB5_MAX_KEYLEN];
- u8 acceptor_sign[GSS_KRB5_MAX_KEYLEN];
- u8 initiator_seal[GSS_KRB5_MAX_KEYLEN];
- u8 acceptor_seal[GSS_KRB5_MAX_KEYLEN];
- u8 initiator_integ[GSS_KRB5_MAX_KEYLEN];
- u8 acceptor_integ[GSS_KRB5_MAX_KEYLEN];
-};
-
-extern spinlock_t krb5_seq_lock;
-
-/* The length of the Kerberos GSS token header */
-#define GSS_KRB5_TOK_HDR_LEN (16)
-
-#define KG_TOK_MIC_MSG 0x0101
-#define KG_TOK_WRAP_MSG 0x0201
-
-#define KG2_TOK_INITIAL 0x0101
-#define KG2_TOK_RESPONSE 0x0202
-#define KG2_TOK_MIC 0x0404
-#define KG2_TOK_WRAP 0x0504
-
-#define KG2_TOKEN_FLAG_SENTBYACCEPTOR 0x01
-#define KG2_TOKEN_FLAG_SEALED 0x02
-#define KG2_TOKEN_FLAG_ACCEPTORSUBKEY 0x04
-
-#define KG2_RESP_FLAG_ERROR 0x0001
-#define KG2_RESP_FLAG_DELEG_OK 0x0002
-
-enum sgn_alg {
- SGN_ALG_DES_MAC_MD5 = 0x0000,
- SGN_ALG_MD2_5 = 0x0001,
- SGN_ALG_DES_MAC = 0x0002,
- SGN_ALG_3 = 0x0003, /* not published */
- SGN_ALG_HMAC_MD5 = 0x0011, /* microsoft w2k; no support */
- SGN_ALG_HMAC_SHA1_DES3_KD = 0x0004
-};
-enum seal_alg {
- SEAL_ALG_NONE = 0xffff,
- SEAL_ALG_DES = 0x0000,
- SEAL_ALG_1 = 0x0001, /* not published */
- SEAL_ALG_MICROSOFT_RC4 = 0x0010,/* microsoft w2k; no support */
- SEAL_ALG_DES3KD = 0x0002
-};
-
-#define CKSUMTYPE_CRC32 0x0001
-#define CKSUMTYPE_RSA_MD4 0x0002
-#define CKSUMTYPE_RSA_MD4_DES 0x0003
-#define CKSUMTYPE_DESCBC 0x0004
-#define CKSUMTYPE_RSA_MD5 0x0007
-#define CKSUMTYPE_RSA_MD5_DES 0x0008
-#define CKSUMTYPE_NIST_SHA 0x0009
-#define CKSUMTYPE_HMAC_SHA1_DES3 0x000c
-#define CKSUMTYPE_HMAC_SHA1_96_AES128 0x000f
-#define CKSUMTYPE_HMAC_SHA1_96_AES256 0x0010
-#define CKSUMTYPE_HMAC_MD5_ARCFOUR -138 /* Microsoft md5 hmac cksumtype */
-
-/* from gssapi_err_krb5.h */
-#define KG_CCACHE_NOMATCH (39756032L)
-#define KG_KEYTAB_NOMATCH (39756033L)
-#define KG_TGT_MISSING (39756034L)
-#define KG_NO_SUBKEY (39756035L)
-#define KG_CONTEXT_ESTABLISHED (39756036L)
-#define KG_BAD_SIGN_TYPE (39756037L)
-#define KG_BAD_LENGTH (39756038L)
-#define KG_CTX_INCOMPLETE (39756039L)
-#define KG_CONTEXT (39756040L)
-#define KG_CRED (39756041L)
-#define KG_ENC_DESC (39756042L)
-#define KG_BAD_SEQ (39756043L)
-#define KG_EMPTY_CCACHE (39756044L)
-#define KG_NO_CTYPES (39756045L)
-
-/* per Kerberos v5 protocol spec crypto types from the wire.
- * these get mapped to linux kernel crypto routines.
- */
-#define ENCTYPE_NULL 0x0000
-#define ENCTYPE_DES_CBC_CRC 0x0001 /* DES cbc mode with CRC-32 */
-#define ENCTYPE_DES_CBC_MD4 0x0002 /* DES cbc mode with RSA-MD4 */
-#define ENCTYPE_DES_CBC_MD5 0x0003 /* DES cbc mode with RSA-MD5 */
-#define ENCTYPE_DES_CBC_RAW 0x0004 /* DES cbc mode raw */
-/* XXX deprecated? */
-#define ENCTYPE_DES3_CBC_SHA 0x0005 /* DES-3 cbc mode with NIST-SHA */
-#define ENCTYPE_DES3_CBC_RAW 0x0006 /* DES-3 cbc mode raw */
-#define ENCTYPE_DES_HMAC_SHA1 0x0008
-#define ENCTYPE_DES3_CBC_SHA1 0x0010
-#define ENCTYPE_AES128_CTS_HMAC_SHA1_96 0x0011
-#define ENCTYPE_AES256_CTS_HMAC_SHA1_96 0x0012
-#define ENCTYPE_ARCFOUR_HMAC 0x0017
-#define ENCTYPE_ARCFOUR_HMAC_EXP 0x0018
-#define ENCTYPE_UNKNOWN 0x01ff
-
-/*
- * Constants used for key derivation
- */
-/* for 3DES */
-#define KG_USAGE_SEAL (22)
-#define KG_USAGE_SIGN (23)
-#define KG_USAGE_SEQ (24)
-
-/* from rfc3961 */
-#define KEY_USAGE_SEED_CHECKSUM (0x99)
-#define KEY_USAGE_SEED_ENCRYPTION (0xAA)
-#define KEY_USAGE_SEED_INTEGRITY (0x55)
-
-/* from rfc4121 */
-#define KG_USAGE_ACCEPTOR_SEAL (22)
-#define KG_USAGE_ACCEPTOR_SIGN (23)
-#define KG_USAGE_INITIATOR_SEAL (24)
-#define KG_USAGE_INITIATOR_SIGN (25)
-
-/*
- * This compile-time check verifies that we will not exceed the
- * slack space allotted by the client and server auth_gss code
- * before they call gss_wrap().
- */
-#define GSS_KRB5_MAX_SLACK_NEEDED \
- (GSS_KRB5_TOK_HDR_LEN /* gss token header */ \
- + GSS_KRB5_MAX_CKSUM_LEN /* gss token checksum */ \
- + GSS_KRB5_MAX_BLOCKSIZE /* confounder */ \
- + GSS_KRB5_MAX_BLOCKSIZE /* possible padding */ \
- + GSS_KRB5_TOK_HDR_LEN /* encrypted hdr in v2 token */\
- + GSS_KRB5_MAX_CKSUM_LEN /* encryption hmac */ \
- + 4 + 4 /* RPC verifier */ \
- + GSS_KRB5_TOK_HDR_LEN \
- + GSS_KRB5_MAX_CKSUM_LEN)
-
-u32
-make_checksum(struct krb5_ctx *kctx, char *header, int hdrlen,
- struct xdr_buf *body, int body_offset, u8 *cksumkey,
- unsigned int usage, struct xdr_netobj *cksumout);
-
-u32
-make_checksum_v2(struct krb5_ctx *, char *header, int hdrlen,
- struct xdr_buf *body, int body_offset, u8 *key,
- unsigned int usage, struct xdr_netobj *cksum);
-
-u32 gss_get_mic_kerberos(struct gss_ctx *, struct xdr_buf *,
- struct xdr_netobj *);
-
-u32 gss_verify_mic_kerberos(struct gss_ctx *, struct xdr_buf *,
- struct xdr_netobj *);
-
-u32
-gss_wrap_kerberos(struct gss_ctx *ctx_id, int offset,
- struct xdr_buf *outbuf, struct page **pages);
-
-u32
-gss_unwrap_kerberos(struct gss_ctx *ctx_id, int offset,
- struct xdr_buf *buf);
-
-
-u32
-krb5_encrypt(struct crypto_blkcipher *key,
- void *iv, void *in, void *out, int length);
-
-u32
-krb5_decrypt(struct crypto_blkcipher *key,
- void *iv, void *in, void *out, int length);
-
-int
-gss_encrypt_xdr_buf(struct crypto_blkcipher *tfm, struct xdr_buf *outbuf,
- int offset, struct page **pages);
-
-int
-gss_decrypt_xdr_buf(struct crypto_blkcipher *tfm, struct xdr_buf *inbuf,
- int offset);
-
-s32
-krb5_make_seq_num(struct krb5_ctx *kctx,
- struct crypto_blkcipher *key,
- int direction,
- u32 seqnum, unsigned char *cksum, unsigned char *buf);
-
-s32
-krb5_get_seq_num(struct krb5_ctx *kctx,
- unsigned char *cksum,
- unsigned char *buf, int *direction, u32 *seqnum);
-
-int
-xdr_extend_head(struct xdr_buf *buf, unsigned int base, unsigned int shiftlen);
-
-u32
-krb5_derive_key(const struct gss_krb5_enctype *gk5e,
- const struct xdr_netobj *inkey,
- struct xdr_netobj *outkey,
- const struct xdr_netobj *in_constant,
- gfp_t gfp_mask);
-
-u32
-gss_krb5_des3_make_key(const struct gss_krb5_enctype *gk5e,
- struct xdr_netobj *randombits,
- struct xdr_netobj *key);
-
-u32
-gss_krb5_aes_make_key(const struct gss_krb5_enctype *gk5e,
- struct xdr_netobj *randombits,
- struct xdr_netobj *key);
-
-u32
-gss_krb5_aes_encrypt(struct krb5_ctx *kctx, u32 offset,
- struct xdr_buf *buf, int ec,
- struct page **pages);
-
-u32
-gss_krb5_aes_decrypt(struct krb5_ctx *kctx, u32 offset,
- struct xdr_buf *buf, u32 *plainoffset,
- u32 *plainlen);
-
-int
-krb5_rc4_setup_seq_key(struct krb5_ctx *kctx,
- struct crypto_blkcipher *cipher,
- unsigned char *cksum);
-
-int
-krb5_rc4_setup_enc_key(struct krb5_ctx *kctx,
- struct crypto_blkcipher *cipher,
- s32 seqnum);
-void
-gss_krb5_make_confounder(char *p, u32 conflen);
diff --git a/ANDROID_3.4.5/include/linux/sunrpc/gss_krb5_enctypes.h b/ANDROID_3.4.5/include/linux/sunrpc/gss_krb5_enctypes.h
deleted file mode 100644
index ec6234ee..00000000
--- a/ANDROID_3.4.5/include/linux/sunrpc/gss_krb5_enctypes.h
+++ /dev/null
@@ -1,4 +0,0 @@
-/*
- * Dumb way to share this static piece of information with nfsd
- */
-#define KRB5_SUPPORTED_ENCTYPES "18,17,16,23,3,1,2"
diff --git a/ANDROID_3.4.5/include/linux/sunrpc/metrics.h b/ANDROID_3.4.5/include/linux/sunrpc/metrics.h
deleted file mode 100644
index 1565bbe8..00000000
--- a/ANDROID_3.4.5/include/linux/sunrpc/metrics.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * linux/include/linux/sunrpc/metrics.h
- *
- * Declarations for RPC client per-operation metrics
- *
- * Copyright (C) 2005 Chuck Lever <cel@netapp.com>
- *
- * RPC client per-operation statistics provide latency and retry
- * information about each type of RPC procedure in a given RPC program.
- * These statistics are not for detailed problem diagnosis, but simply
- * to indicate whether the problem is local or remote.
- *
- * These counters are not meant to be human-readable, but are meant to be
- * integrated into system monitoring tools such as "sar" and "iostat". As
- * such, the counters are sampled by the tools over time, and are never
- * zeroed after a file system is mounted. Moving averages can be computed
- * by the tools by taking the difference between two instantaneous samples
- * and dividing that by the time between the samples.
- *
- * The counters are maintained in a single array per RPC client, indexed
- * by procedure number. There is no need to maintain separate counter
- * arrays per-CPU because these counters are always modified behind locks.
- */
-
-#ifndef _LINUX_SUNRPC_METRICS_H
-#define _LINUX_SUNRPC_METRICS_H
-
-#include <linux/seq_file.h>
-#include <linux/ktime.h>
-
-#define RPC_IOSTATS_VERS "1.0"
-
-struct rpc_iostats {
- /*
- * These counters give an idea about how many request
- * transmissions are required, on average, to complete that
- * particular procedure. Some procedures may require more
- * than one transmission because the server is unresponsive,
- * the client is retransmitting too aggressively, or the
- * requests are large and the network is congested.
- */
- unsigned long om_ops, /* count of operations */
- om_ntrans, /* count of RPC transmissions */
- om_timeouts; /* count of major timeouts */
-
- /*
- * These count how many bytes are sent and received for a
- * given RPC procedure type. This indicates how much load a
- * particular procedure is putting on the network. These
- * counts include the RPC and ULP headers, and the request
- * payload.
- */
- unsigned long long om_bytes_sent, /* count of bytes out */
- om_bytes_recv; /* count of bytes in */
-
- /*
- * The length of time an RPC request waits in queue before
- * transmission, the network + server latency of the request,
- * and the total time the request spent from init to release
- * are measured.
- */
- ktime_t om_queue, /* queued for xmit */
- om_rtt, /* RPC RTT */
- om_execute; /* RPC execution */
-} ____cacheline_aligned;
-
-struct rpc_task;
-struct rpc_clnt;
-
-/*
- * EXPORTed functions for managing rpc_iostats structures
- */
-
-#ifdef CONFIG_PROC_FS
-
-struct rpc_iostats * rpc_alloc_iostats(struct rpc_clnt *);
-void rpc_count_iostats(const struct rpc_task *,
- struct rpc_iostats *);
-void rpc_print_iostats(struct seq_file *, struct rpc_clnt *);
-void rpc_free_iostats(struct rpc_iostats *);
-
-#else /* CONFIG_PROC_FS */
-
-static inline struct rpc_iostats *rpc_alloc_iostats(struct rpc_clnt *clnt) { return NULL; }
-static inline void rpc_count_iostats(const struct rpc_task *task,
- struct rpc_iostats *stats) {}
-static inline void rpc_print_iostats(struct seq_file *seq, struct rpc_clnt *clnt) {}
-static inline void rpc_free_iostats(struct rpc_iostats *stats) {}
-
-#endif /* CONFIG_PROC_FS */
-
-#endif /* _LINUX_SUNRPC_METRICS_H */
diff --git a/ANDROID_3.4.5/include/linux/sunrpc/msg_prot.h b/ANDROID_3.4.5/include/linux/sunrpc/msg_prot.h
deleted file mode 100644
index c68a1479..00000000
--- a/ANDROID_3.4.5/include/linux/sunrpc/msg_prot.h
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- * linux/include/linux/sunrpc/msg_prot.h
- *
- * Copyright (C) 1996, Olaf Kirch <okir@monad.swb.de>
- */
-
-#ifndef _LINUX_SUNRPC_MSGPROT_H_
-#define _LINUX_SUNRPC_MSGPROT_H_
-
-#ifdef __KERNEL__ /* user programs should get these from the rpc header files */
-
-#define RPC_VERSION 2
-
-/* size of an XDR encoding unit in bytes, i.e. 32bit */
-#define XDR_UNIT (4)
-
-/* spec defines authentication flavor as an unsigned 32 bit integer */
-typedef u32 rpc_authflavor_t;
-
-enum rpc_auth_flavors {
- RPC_AUTH_NULL = 0,
- RPC_AUTH_UNIX = 1,
- RPC_AUTH_SHORT = 2,
- RPC_AUTH_DES = 3,
- RPC_AUTH_KRB = 4,
- RPC_AUTH_GSS = 6,
- RPC_AUTH_MAXFLAVOR = 8,
- /* pseudoflavors: */
- RPC_AUTH_GSS_KRB5 = 390003,
- RPC_AUTH_GSS_KRB5I = 390004,
- RPC_AUTH_GSS_KRB5P = 390005,
- RPC_AUTH_GSS_LKEY = 390006,
- RPC_AUTH_GSS_LKEYI = 390007,
- RPC_AUTH_GSS_LKEYP = 390008,
- RPC_AUTH_GSS_SPKM = 390009,
- RPC_AUTH_GSS_SPKMI = 390010,
- RPC_AUTH_GSS_SPKMP = 390011,
-};
-
-/* Maximum size (in bytes) of an rpc credential or verifier */
-#define RPC_MAX_AUTH_SIZE (400)
-
-enum rpc_msg_type {
- RPC_CALL = 0,
- RPC_REPLY = 1
-};
-
-enum rpc_reply_stat {
- RPC_MSG_ACCEPTED = 0,
- RPC_MSG_DENIED = 1
-};
-
-enum rpc_accept_stat {
- RPC_SUCCESS = 0,
- RPC_PROG_UNAVAIL = 1,
- RPC_PROG_MISMATCH = 2,
- RPC_PROC_UNAVAIL = 3,
- RPC_GARBAGE_ARGS = 4,
- RPC_SYSTEM_ERR = 5,
- /* internal use only */
- RPC_DROP_REPLY = 60000,
-};
-
-enum rpc_reject_stat {
- RPC_MISMATCH = 0,
- RPC_AUTH_ERROR = 1
-};
-
-enum rpc_auth_stat {
- RPC_AUTH_OK = 0,
- RPC_AUTH_BADCRED = 1,
- RPC_AUTH_REJECTEDCRED = 2,
- RPC_AUTH_BADVERF = 3,
- RPC_AUTH_REJECTEDVERF = 4,
- RPC_AUTH_TOOWEAK = 5,
- /* RPCSEC_GSS errors */
- RPCSEC_GSS_CREDPROBLEM = 13,
- RPCSEC_GSS_CTXPROBLEM = 14
-};
-
-#define RPC_MAXNETNAMELEN 256
-
-/*
- * From RFC 1831:
- *
- * "A record is composed of one or more record fragments. A record
- * fragment is a four-byte header followed by 0 to (2**31) - 1 bytes of
- * fragment data. The bytes encode an unsigned binary number; as with
- * XDR integers, the byte order is from highest to lowest. The number
- * encodes two values -- a boolean which indicates whether the fragment
- * is the last fragment of the record (bit value 1 implies the fragment
- * is the last fragment) and a 31-bit unsigned binary value which is the
- * length in bytes of the fragment's data. The boolean value is the
- * highest-order bit of the header; the length is the 31 low-order bits.
- * (Note that this record specification is NOT in XDR standard form!)"
- *
- * The Linux RPC client always sends its requests in a single record
- * fragment, limiting the maximum payload size for stream transports to
- * 2GB.
- */
-
-typedef __be32 rpc_fraghdr;
-
-#define RPC_LAST_STREAM_FRAGMENT (1U << 31)
-#define RPC_FRAGMENT_SIZE_MASK (~RPC_LAST_STREAM_FRAGMENT)
-#define RPC_MAX_FRAGMENT_SIZE ((1U << 31) - 1)
-
-/*
- * RPC call and reply header size as number of 32bit words (verifier
- * size computed separately, see below)
- */
-#define RPC_CALLHDRSIZE (6)
-#define RPC_REPHDRSIZE (4)
-
-
-/*
- * Maximum RPC header size, including authentication,
- * as number of 32bit words (see RFCs 1831, 1832).
- *
- * xid 1 xdr unit = 4 bytes
- * mtype 1
- * rpc_version 1
- * program 1
- * prog_version 1
- * procedure 1
- * cred {
- * flavor 1
- * length 1
- * body<RPC_MAX_AUTH_SIZE> 100 xdr units = 400 bytes
- * }
- * verf {
- * flavor 1
- * length 1
- * body<RPC_MAX_AUTH_SIZE> 100 xdr units = 400 bytes
- * }
- * TOTAL 210 xdr units = 840 bytes
- */
-#define RPC_MAX_HEADER_WITH_AUTH \
- (RPC_CALLHDRSIZE + 2*(2+RPC_MAX_AUTH_SIZE/4))
-
-/*
- * RFC1833/RFC3530 rpcbind (v3+) well-known netid's.
- */
-#define RPCBIND_NETID_UDP "udp"
-#define RPCBIND_NETID_TCP "tcp"
-#define RPCBIND_NETID_UDP6 "udp6"
-#define RPCBIND_NETID_TCP6 "tcp6"
-#define RPCBIND_NETID_LOCAL "local"
-
-/*
- * Note that RFC 1833 does not put any size restrictions on the
- * netid string, but all currently defined netid's fit in 4 bytes.
- */
-#define RPCBIND_MAXNETIDLEN (4u)
-
-/*
- * Universal addresses are introduced in RFC 1833 and further spelled
- * out in RFC 3530. RPCBIND_MAXUADDRLEN defines a maximum byte length
- * of a universal address for use in allocating buffers and character
- * arrays.
- *
- * Quoting RFC 3530, section 2.2:
- *
- * For TCP over IPv4 and for UDP over IPv4, the format of r_addr is the
- * US-ASCII string:
- *
- * h1.h2.h3.h4.p1.p2
- *
- * The prefix, "h1.h2.h3.h4", is the standard textual form for
- * representing an IPv4 address, which is always four octets long.
- * Assuming big-endian ordering, h1, h2, h3, and h4, are respectively,
- * the first through fourth octets each converted to ASCII-decimal.
- * Assuming big-endian ordering, p1 and p2 are, respectively, the first
- * and second octets each converted to ASCII-decimal. For example, if a
- * host, in big-endian order, has an address of 0x0A010307 and there is
- * a service listening on, in big endian order, port 0x020F (decimal
- * 527), then the complete universal address is "10.1.3.7.2.15".
- *
- * ...
- *
- * For TCP over IPv6 and for UDP over IPv6, the format of r_addr is the
- * US-ASCII string:
- *
- * x1:x2:x3:x4:x5:x6:x7:x8.p1.p2
- *
- * The suffix "p1.p2" is the service port, and is computed the same way
- * as with universal addresses for TCP and UDP over IPv4. The prefix,
- * "x1:x2:x3:x4:x5:x6:x7:x8", is the standard textual form for
- * representing an IPv6 address as defined in Section 2.2 of [RFC2373].
- * Additionally, the two alternative forms specified in Section 2.2 of
- * [RFC2373] are also acceptable.
- */
-
-#include <linux/inet.h>
-
-/* Maximum size of the port number part of a universal address */
-#define RPCBIND_MAXUADDRPLEN sizeof(".255.255")
-
-/* Maximum size of an IPv4 universal address */
-#define RPCBIND_MAXUADDR4LEN \
- (INET_ADDRSTRLEN + RPCBIND_MAXUADDRPLEN)
-
-/* Maximum size of an IPv6 universal address */
-#define RPCBIND_MAXUADDR6LEN \
- (INET6_ADDRSTRLEN + RPCBIND_MAXUADDRPLEN)
-
-/* Assume INET6_ADDRSTRLEN will always be larger than INET_ADDRSTRLEN... */
-#define RPCBIND_MAXUADDRLEN RPCBIND_MAXUADDR6LEN
-
-#endif /* __KERNEL__ */
-#endif /* _LINUX_SUNRPC_MSGPROT_H_ */
diff --git a/ANDROID_3.4.5/include/linux/sunrpc/rpc_pipe_fs.h b/ANDROID_3.4.5/include/linux/sunrpc/rpc_pipe_fs.h
deleted file mode 100644
index a7b422b3..00000000
--- a/ANDROID_3.4.5/include/linux/sunrpc/rpc_pipe_fs.h
+++ /dev/null
@@ -1,97 +0,0 @@
-#ifndef _LINUX_SUNRPC_RPC_PIPE_FS_H
-#define _LINUX_SUNRPC_RPC_PIPE_FS_H
-
-#ifdef __KERNEL__
-
-#include <linux/workqueue.h>
-
-struct rpc_pipe_msg {
- struct list_head list;
- void *data;
- size_t len;
- size_t copied;
- int errno;
-};
-
-struct rpc_pipe_ops {
- ssize_t (*upcall)(struct file *, struct rpc_pipe_msg *, char __user *, size_t);
- ssize_t (*downcall)(struct file *, const char __user *, size_t);
- void (*release_pipe)(struct inode *);
- int (*open_pipe)(struct inode *);
- void (*destroy_msg)(struct rpc_pipe_msg *);
-};
-
-struct rpc_pipe {
- struct list_head pipe;
- struct list_head in_upcall;
- struct list_head in_downcall;
- int pipelen;
- int nreaders;
- int nwriters;
-#define RPC_PIPE_WAIT_FOR_OPEN 1
- int flags;
- struct delayed_work queue_timeout;
- const struct rpc_pipe_ops *ops;
- spinlock_t lock;
- struct dentry *dentry;
-};
-
-struct rpc_inode {
- struct inode vfs_inode;
- void *private;
- struct rpc_pipe *pipe;
- wait_queue_head_t waitq;
-};
-
-static inline struct rpc_inode *
-RPC_I(struct inode *inode)
-{
- return container_of(inode, struct rpc_inode, vfs_inode);
-}
-
-enum {
- SUNRPC_PIPEFS_NFS_PRIO,
- SUNRPC_PIPEFS_RPC_PRIO,
-};
-
-extern int rpc_pipefs_notifier_register(struct notifier_block *);
-extern void rpc_pipefs_notifier_unregister(struct notifier_block *);
-
-enum {
- RPC_PIPEFS_MOUNT,
- RPC_PIPEFS_UMOUNT,
-};
-
-extern struct dentry *rpc_d_lookup_sb(const struct super_block *sb,
- const unsigned char *dir_name);
-extern void rpc_pipefs_init_net(struct net *net);
-extern struct super_block *rpc_get_sb_net(const struct net *net);
-extern void rpc_put_sb_net(const struct net *net);
-
-extern ssize_t rpc_pipe_generic_upcall(struct file *, struct rpc_pipe_msg *,
- char __user *, size_t);
-extern int rpc_queue_upcall(struct rpc_pipe *, struct rpc_pipe_msg *);
-
-struct rpc_clnt;
-extern struct dentry *rpc_create_client_dir(struct dentry *, struct qstr *, struct rpc_clnt *);
-extern int rpc_remove_client_dir(struct dentry *);
-
-struct cache_detail;
-extern struct dentry *rpc_create_cache_dir(struct dentry *,
- struct qstr *,
- umode_t umode,
- struct cache_detail *);
-extern void rpc_remove_cache_dir(struct dentry *);
-
-extern int rpc_rmdir(struct dentry *dentry);
-
-struct rpc_pipe *rpc_mkpipe_data(const struct rpc_pipe_ops *ops, int flags);
-void rpc_destroy_pipe_data(struct rpc_pipe *pipe);
-extern struct dentry *rpc_mkpipe_dentry(struct dentry *, const char *, void *,
- struct rpc_pipe *);
-extern int rpc_unlink(struct dentry *);
-extern int register_rpc_pipefs(void);
-extern void unregister_rpc_pipefs(void);
-
-#endif
-#endif
diff --git a/ANDROID_3.4.5/include/linux/sunrpc/rpc_rdma.h b/ANDROID_3.4.5/include/linux/sunrpc/rpc_rdma.h
deleted file mode 100644
index b78f16b1..00000000
--- a/ANDROID_3.4.5/include/linux/sunrpc/rpc_rdma.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright (c) 2003-2007 Network Appliance, Inc. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the BSD-type
- * license below:
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided
- * with the distribution.
- *
- * Neither the name of the Network Appliance, Inc. nor the names of
- * its contributors may be used to endorse or promote products
- * derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef _LINUX_SUNRPC_RPC_RDMA_H
-#define _LINUX_SUNRPC_RPC_RDMA_H
-
-#include <linux/types.h>
-
-struct rpcrdma_segment {
- __be32 rs_handle; /* Registered memory handle */
- __be32 rs_length; /* Length of the chunk in bytes */
- __be64 rs_offset; /* Chunk virtual address or offset */
-};
-
-/*
- * read chunk(s), encoded as a linked list.
- */
-struct rpcrdma_read_chunk {
- __be32 rc_discrim; /* 1 indicates presence */
- __be32 rc_position; /* Position in XDR stream */
- struct rpcrdma_segment rc_target;
-};
-
-/*
- * write chunk, and reply chunk.
- */
-struct rpcrdma_write_chunk {
- struct rpcrdma_segment wc_target;
-};
-
-/*
- * write chunk(s), encoded as a counted array.
- */
-struct rpcrdma_write_array {
- __be32 wc_discrim; /* 1 indicates presence */
- __be32 wc_nchunks; /* Array count */
- struct rpcrdma_write_chunk wc_array[0];
-};
-
-struct rpcrdma_msg {
- __be32 rm_xid; /* Mirrors the RPC header xid */
- __be32 rm_vers; /* Version of this protocol */
- __be32 rm_credit; /* Buffers requested/granted */
- __be32 rm_type; /* Type of message (enum rpcrdma_proc) */
- union {
-
- struct { /* no chunks */
- __be32 rm_empty[3]; /* 3 empty chunk lists */
- } rm_nochunks;
-
- struct { /* no chunks and padded */
- __be32 rm_align; /* Padding alignment */
- __be32 rm_thresh; /* Padding threshold */
- __be32 rm_pempty[3]; /* 3 empty chunk lists */
- } rm_padded;
-
- __be32 rm_chunks[0]; /* read, write and reply chunks */
-
- } rm_body;
-};
-
-#define RPCRDMA_HDRLEN_MIN 28
-
-enum rpcrdma_errcode {
- ERR_VERS = 1,
- ERR_CHUNK = 2
-};
-
-struct rpcrdma_err_vers {
- uint32_t rdma_vers_low; /* Version range supported by peer */
- uint32_t rdma_vers_high;
-};
-
-enum rpcrdma_proc {
- RDMA_MSG = 0, /* An RPC call or reply msg */
- RDMA_NOMSG = 1, /* An RPC call or reply msg - separate body */
- RDMA_MSGP = 2, /* An RPC call or reply msg with padding */
- RDMA_DONE = 3, /* Client signals reply completion */
- RDMA_ERROR = 4 /* An RPC RDMA encoding error */
-};
-
-#endif /* _LINUX_SUNRPC_RPC_RDMA_H */
diff --git a/ANDROID_3.4.5/include/linux/sunrpc/sched.h b/ANDROID_3.4.5/include/linux/sunrpc/sched.h
deleted file mode 100644
index dc0c3cc3..00000000
--- a/ANDROID_3.4.5/include/linux/sunrpc/sched.h
+++ /dev/null
@@ -1,292 +0,0 @@
-/*
- * linux/include/linux/sunrpc/sched.h
- *
- * Scheduling primitives for kernel Sun RPC.
- *
- * Copyright (C) 1996, Olaf Kirch <okir@monad.swb.de>
- */
-
-#ifndef _LINUX_SUNRPC_SCHED_H_
-#define _LINUX_SUNRPC_SCHED_H_
-
-#include <linux/timer.h>
-#include <linux/ktime.h>
-#include <linux/sunrpc/types.h>
-#include <linux/spinlock.h>
-#include <linux/wait.h>
-#include <linux/workqueue.h>
-#include <linux/sunrpc/xdr.h>
-
-/*
- * This is the actual RPC procedure call info.
- */
-struct rpc_procinfo;
-struct rpc_message {
- struct rpc_procinfo * rpc_proc; /* Procedure information */
- void * rpc_argp; /* Arguments */
- void * rpc_resp; /* Result */
- struct rpc_cred * rpc_cred; /* Credentials */
-};
-
-struct rpc_call_ops;
-struct rpc_wait_queue;
-struct rpc_wait {
- struct list_head list; /* wait queue links */
- struct list_head links; /* Links to related tasks */
- struct list_head timer_list; /* Timer list */
- unsigned long expires;
-};
-
-/*
- * This is the RPC task struct
- */
-struct rpc_task {
- atomic_t tk_count; /* Reference count */
- struct list_head tk_task; /* global list of tasks */
- struct rpc_clnt * tk_client; /* RPC client */
- struct rpc_rqst * tk_rqstp; /* RPC request */
-
- /*
- * RPC call state
- */
- struct rpc_message tk_msg; /* RPC call info */
-
- /*
- * callback to be executed after waking up
- * action next procedure for async tasks
- * tk_ops caller callbacks
- */
- void (*tk_callback)(struct rpc_task *);
- void (*tk_action)(struct rpc_task *);
- const struct rpc_call_ops *tk_ops;
- void * tk_calldata;
-
- unsigned long tk_timeout; /* timeout for rpc_sleep() */
- unsigned long tk_runstate; /* Task run status */
- struct workqueue_struct *tk_workqueue; /* Normally rpciod, but could
- * be any workqueue
- */
- struct rpc_wait_queue *tk_waitqueue; /* RPC wait queue we're on */
- union {
- struct work_struct tk_work; /* Async task work queue */
- struct rpc_wait tk_wait; /* RPC wait */
- } u;
-
- ktime_t tk_start; /* RPC task init timestamp */
-
- pid_t tk_owner; /* Process id for batching tasks */
- int tk_status; /* result of last operation */
- unsigned short tk_flags; /* misc flags */
- unsigned short tk_timeouts; /* maj timeouts */
-
-#ifdef RPC_DEBUG
- unsigned short tk_pid; /* debugging aid */
-#endif
- unsigned char tk_priority : 2,/* Task priority */
- tk_garb_retry : 2,
- tk_cred_retry : 2,
- tk_rebind_retry : 2;
-};
-#define tk_xprt tk_client->cl_xprt
-
-/* support walking a list of tasks on a wait queue */
-#define task_for_each(task, pos, head) \
- list_for_each(pos, head) \
- if ((task=list_entry(pos, struct rpc_task, u.tk_wait.list)),1)
-
-#define task_for_first(task, head) \
- if (!list_empty(head) && \
- ((task=list_entry((head)->next, struct rpc_task, u.tk_wait.list)),1))
-
-typedef void (*rpc_action)(struct rpc_task *);
-
-struct rpc_call_ops {
- void (*rpc_call_prepare)(struct rpc_task *, void *);
- void (*rpc_call_done)(struct rpc_task *, void *);
- void (*rpc_count_stats)(struct rpc_task *, void *);
- void (*rpc_release)(void *);
-};
-
-struct rpc_task_setup {
- struct rpc_task *task;
- struct rpc_clnt *rpc_client;
- const struct rpc_message *rpc_message;
- const struct rpc_call_ops *callback_ops;
- void *callback_data;
- struct workqueue_struct *workqueue;
- unsigned short flags;
- signed char priority;
-};
-
-/*
- * RPC task flags
- */
-#define RPC_TASK_ASYNC 0x0001 /* is an async task */
-#define RPC_TASK_SWAPPER 0x0002 /* is swapping in/out */
-#define RPC_CALL_MAJORSEEN 0x0020 /* major timeout seen */
-#define RPC_TASK_ROOTCREDS 0x0040 /* force root creds */
-#define RPC_TASK_DYNAMIC 0x0080 /* task was kmalloc'ed */
-#define RPC_TASK_KILLED 0x0100 /* task was killed */
-#define RPC_TASK_SOFT 0x0200 /* Use soft timeouts */
-#define RPC_TASK_SOFTCONN 0x0400 /* Fail if can't connect */
-#define RPC_TASK_SENT 0x0800 /* message was sent */
-#define RPC_TASK_TIMEOUT 0x1000 /* fail with ETIMEDOUT on timeout */
-
-#define RPC_IS_ASYNC(t) ((t)->tk_flags & RPC_TASK_ASYNC)
-#define RPC_IS_SWAPPER(t) ((t)->tk_flags & RPC_TASK_SWAPPER)
-#define RPC_DO_ROOTOVERRIDE(t) ((t)->tk_flags & RPC_TASK_ROOTCREDS)
-#define RPC_ASSASSINATED(t) ((t)->tk_flags & RPC_TASK_KILLED)
-#define RPC_IS_SOFT(t) ((t)->tk_flags & (RPC_TASK_SOFT|RPC_TASK_TIMEOUT))
-#define RPC_IS_SOFTCONN(t) ((t)->tk_flags & RPC_TASK_SOFTCONN)
-#define RPC_WAS_SENT(t) ((t)->tk_flags & RPC_TASK_SENT)
-
-#define RPC_TASK_RUNNING 0
-#define RPC_TASK_QUEUED 1
-#define RPC_TASK_ACTIVE 2
-
-#define RPC_IS_RUNNING(t) test_bit(RPC_TASK_RUNNING, &(t)->tk_runstate)
-#define rpc_set_running(t) set_bit(RPC_TASK_RUNNING, &(t)->tk_runstate)
-#define rpc_test_and_set_running(t) \
- test_and_set_bit(RPC_TASK_RUNNING, &(t)->tk_runstate)
-#define rpc_clear_running(t) \
- do { \
- smp_mb__before_clear_bit(); \
- clear_bit(RPC_TASK_RUNNING, &(t)->tk_runstate); \
- smp_mb__after_clear_bit(); \
- } while (0)
-
-#define RPC_IS_QUEUED(t) test_bit(RPC_TASK_QUEUED, &(t)->tk_runstate)
-#define rpc_set_queued(t) set_bit(RPC_TASK_QUEUED, &(t)->tk_runstate)
-#define rpc_clear_queued(t) \
- do { \
- smp_mb__before_clear_bit(); \
- clear_bit(RPC_TASK_QUEUED, &(t)->tk_runstate); \
- smp_mb__after_clear_bit(); \
- } while (0)
-
-#define RPC_IS_ACTIVATED(t) test_bit(RPC_TASK_ACTIVE, &(t)->tk_runstate)
-
-/*
- * Task priorities.
- * Note: if you change these, you must also change
- * the task initialization definitions below.
- */
-#define RPC_PRIORITY_LOW (-1)
-#define RPC_PRIORITY_NORMAL (0)
-#define RPC_PRIORITY_HIGH (1)
-#define RPC_PRIORITY_PRIVILEGED (2)
-#define RPC_NR_PRIORITY (1 + RPC_PRIORITY_PRIVILEGED - RPC_PRIORITY_LOW)
-
-struct rpc_timer {
- struct timer_list timer;
- struct list_head list;
- unsigned long expires;
-};
-
-/*
- * RPC synchronization objects
- */
-struct rpc_wait_queue {
- spinlock_t lock;
- struct list_head tasks[RPC_NR_PRIORITY]; /* task queue for each priority level */
- pid_t owner; /* process id of last task serviced */
- unsigned char maxpriority; /* maximum priority (0 if queue is not a priority queue) */
- unsigned char priority; /* current priority */
- unsigned char count; /* # task groups remaining serviced so far */
- unsigned char nr; /* # tasks remaining for cookie */
- unsigned short qlen; /* total # tasks waiting in queue */
- struct rpc_timer timer_list;
-#if defined(RPC_DEBUG) || defined(RPC_TRACEPOINTS)
- const char * name;
-#endif
-};
-
-/*
- * This is the # requests to send consecutively
- * from a single cookie. The aim is to improve
- * performance of NFS operations such as read/write.
- */
-#define RPC_BATCH_COUNT 16
-#define RPC_IS_PRIORITY(q) ((q)->maxpriority > 0)
-
-/*
- * Function prototypes
- */
-struct rpc_task *rpc_new_task(const struct rpc_task_setup *);
-struct rpc_task *rpc_run_task(const struct rpc_task_setup *);
-struct rpc_task *rpc_run_bc_task(struct rpc_rqst *req,
- const struct rpc_call_ops *ops);
-void rpc_put_task(struct rpc_task *);
-void rpc_put_task_async(struct rpc_task *);
-void rpc_exit_task(struct rpc_task *);
-void rpc_exit(struct rpc_task *, int);
-void rpc_release_calldata(const struct rpc_call_ops *, void *);
-void rpc_killall_tasks(struct rpc_clnt *);
-void rpc_execute(struct rpc_task *);
-void rpc_init_priority_wait_queue(struct rpc_wait_queue *, const char *);
-void rpc_init_wait_queue(struct rpc_wait_queue *, const char *);
-void rpc_destroy_wait_queue(struct rpc_wait_queue *);
-void rpc_sleep_on(struct rpc_wait_queue *, struct rpc_task *,
- rpc_action action);
-void rpc_sleep_on_priority(struct rpc_wait_queue *,
- struct rpc_task *,
- rpc_action action,
- int priority);
-void rpc_wake_up_queued_task(struct rpc_wait_queue *,
- struct rpc_task *);
-void rpc_wake_up(struct rpc_wait_queue *);
-struct rpc_task *rpc_wake_up_next(struct rpc_wait_queue *);
-struct rpc_task *rpc_wake_up_first(struct rpc_wait_queue *,
- bool (*)(struct rpc_task *, void *),
- void *);
-void rpc_wake_up_status(struct rpc_wait_queue *, int);
-int rpc_queue_empty(struct rpc_wait_queue *);
-void rpc_delay(struct rpc_task *, unsigned long);
-void * rpc_malloc(struct rpc_task *, size_t);
-void rpc_free(void *);
-int rpciod_up(void);
-void rpciod_down(void);
-int __rpc_wait_for_completion_task(struct rpc_task *task, int (*)(void *));
-#ifdef RPC_DEBUG
-struct net;
-void rpc_show_tasks(struct net *);
-#endif
-int rpc_init_mempool(void);
-void rpc_destroy_mempool(void);
-extern struct workqueue_struct *rpciod_workqueue;
-void rpc_prepare_task(struct rpc_task *task);
-
-static inline int rpc_wait_for_completion_task(struct rpc_task *task)
-{
- return __rpc_wait_for_completion_task(task, NULL);
-}
-
-static inline void rpc_task_set_priority(struct rpc_task *task, unsigned char prio)
-{
- task->tk_priority = prio - RPC_PRIORITY_LOW;
-}
-
-static inline int rpc_task_has_priority(struct rpc_task *task, unsigned char prio)
-{
- return (task->tk_priority + RPC_PRIORITY_LOW == prio);
-}
-
-#if defined(RPC_DEBUG) || defined (RPC_TRACEPOINTS)
-static inline const char * rpc_qname(const struct rpc_wait_queue *q)
-{
- return ((q && q->name) ? q->name : "unknown");
-}
-
-static inline void rpc_assign_waitqueue_name(struct rpc_wait_queue *q,
- const char *name)
-{
- q->name = name;
-}
-#else
-static inline void rpc_assign_waitqueue_name(struct rpc_wait_queue *q,
- const char *name)
-{
-}
-#endif
-
-#endif /* _LINUX_SUNRPC_SCHED_H_ */
diff --git a/ANDROID_3.4.5/include/linux/sunrpc/stats.h b/ANDROID_3.4.5/include/linux/sunrpc/stats.h
deleted file mode 100644
index edc64219..00000000
--- a/ANDROID_3.4.5/include/linux/sunrpc/stats.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * linux/include/linux/sunrpc/stats.h
- *
- * Client statistics collection for SUN RPC
- *
- * Copyright (C) 1996 Olaf Kirch <okir@monad.swb.de>
- */
-
-#ifndef _LINUX_SUNRPC_STATS_H
-#define _LINUX_SUNRPC_STATS_H
-
-#include <linux/proc_fs.h>
-
-struct rpc_stat {
- const struct rpc_program *program;
-
- unsigned int netcnt,
- netudpcnt,
- nettcpcnt,
- nettcpconn,
- netreconn;
- unsigned int rpccnt,
- rpcretrans,
- rpcauthrefresh,
- rpcgarbage;
-};
-
-struct svc_stat {
- struct svc_program * program;
-
- unsigned int netcnt,
- netudpcnt,
- nettcpcnt,
- nettcpconn;
- unsigned int rpccnt,
- rpcbadfmt,
- rpcbadauth,
- rpcbadclnt;
-};
-
-struct net;
-#ifdef CONFIG_PROC_FS
-int rpc_proc_init(struct net *);
-void rpc_proc_exit(struct net *);
-#else
-static inline int rpc_proc_init(struct net *net)
-{
- return 0;
-}
-
-static inline void rpc_proc_exit(struct net *net)
-{
-}
-#endif
-
-#ifdef MODULE
-void rpc_modcount(struct inode *, int);
-#endif
-
-#ifdef CONFIG_PROC_FS
-struct proc_dir_entry * rpc_proc_register(struct net *,struct rpc_stat *);
-void rpc_proc_unregister(struct net *,const char *);
-void rpc_proc_zero(const struct rpc_program *);
-struct proc_dir_entry * svc_proc_register(struct net *, struct svc_stat *,
- const struct file_operations *);
-void svc_proc_unregister(struct net *, const char *);
-
-void svc_seq_show(struct seq_file *,
- const struct svc_stat *);
-#else
-
-static inline struct proc_dir_entry *rpc_proc_register(struct net *net, struct rpc_stat *s) { return NULL; }
-static inline void rpc_proc_unregister(struct net *net, const char *p) {}
-static inline void rpc_proc_zero(const struct rpc_program *p) {}
-
-static inline struct proc_dir_entry *svc_proc_register(struct net *net, struct svc_stat *s,
- const struct file_operations *f) { return NULL; }
-static inline void svc_proc_unregister(struct net *net, const char *p) {}
-
-static inline void svc_seq_show(struct seq_file *seq,
- const struct svc_stat *st) {}
-#endif
-
-#endif /* _LINUX_SUNRPC_STATS_H */
diff --git a/ANDROID_3.4.5/include/linux/sunrpc/svc.h b/ANDROID_3.4.5/include/linux/sunrpc/svc.h
deleted file mode 100644
index 2b43e021..00000000
--- a/ANDROID_3.4.5/include/linux/sunrpc/svc.h
+++ /dev/null
@@ -1,461 +0,0 @@
-/*
- * linux/include/linux/sunrpc/svc.h
- *
- * RPC server declarations.
- *
- * Copyright (C) 1995, 1996 Olaf Kirch <okir@monad.swb.de>
- */
-
-
-#ifndef SUNRPC_SVC_H
-#define SUNRPC_SVC_H
-
-#include <linux/in.h>
-#include <linux/in6.h>
-#include <linux/sunrpc/types.h>
-#include <linux/sunrpc/xdr.h>
-#include <linux/sunrpc/auth.h>
-#include <linux/sunrpc/svcauth.h>
-#include <linux/wait.h>
-#include <linux/mm.h>
-
-/*
- * This is the RPC server thread function prototype
- */
-typedef int (*svc_thread_fn)(void *);
-
-/* statistics for svc_pool structures */
-struct svc_pool_stats {
- unsigned long packets;
- unsigned long sockets_queued;
- unsigned long threads_woken;
- unsigned long threads_timedout;
-};
-
-/*
- *
- * RPC service thread pool.
- *
- * Pool of threads and temporary sockets. Generally there is only
- * a single one of these per RPC service, but on NUMA machines those
- * services that can benefit from it (i.e. nfs but not lockd) will
- * have one pool per NUMA node. This optimisation reduces cross-
- * node traffic on multi-node NUMA NFS servers.
- */
-struct svc_pool {
- unsigned int sp_id; /* pool id; also node id on NUMA */
- spinlock_t sp_lock; /* protects all fields */
- struct list_head sp_threads; /* idle server threads */
- struct list_head sp_sockets; /* pending sockets */
- unsigned int sp_nrthreads; /* # of threads in pool */
- struct list_head sp_all_threads; /* all server threads */
- struct svc_pool_stats sp_stats; /* statistics on pool operation */
-} ____cacheline_aligned_in_smp;
-
-/*
- * RPC service.
- *
- * An RPC service is a ``daemon,'' possibly multithreaded, which
- * receives and processes incoming RPC messages.
- * It has one or more transport sockets associated with it, and maintains
- * a list of idle threads waiting for input.
- *
- * We currently do not support more than one RPC program per daemon.
- */
-struct svc_serv {
- struct svc_program * sv_program; /* RPC program */
- struct svc_stat * sv_stats; /* RPC statistics */
- spinlock_t sv_lock;
- unsigned int sv_nrthreads; /* # of server threads */
- unsigned int sv_maxconn; /* max connections allowed or
- * '0' causing max to be based
- * on number of threads. */
-
- unsigned int sv_max_payload; /* datagram payload size */
- unsigned int sv_max_mesg; /* max_payload + 1 page for overheads */
- unsigned int sv_xdrsize; /* XDR buffer size */
- struct list_head sv_permsocks; /* all permanent sockets */
- struct list_head sv_tempsocks; /* all temporary sockets */
- int sv_tmpcnt; /* count of temporary sockets */
- struct timer_list sv_temptimer; /* timer for aging temporary sockets */
-
- char * sv_name; /* service name */
-
- unsigned int sv_nrpools; /* number of thread pools */
- struct svc_pool * sv_pools; /* array of thread pools */
-
- void (*sv_shutdown)(struct svc_serv *serv,
- struct net *net);
- /* Callback to use when last thread
- * exits.
- */
-
- struct module * sv_module; /* optional module to count when
- * adding threads */
- svc_thread_fn sv_function; /* main function for threads */
-#if defined(CONFIG_SUNRPC_BACKCHANNEL)
- struct list_head sv_cb_list; /* queue for callback requests
- * that arrive over the same
- * connection */
- spinlock_t sv_cb_lock; /* protects the svc_cb_list */
- wait_queue_head_t sv_cb_waitq; /* sleep here if there are no
- * entries in the svc_cb_list */
- struct svc_xprt *sv_bc_xprt; /* callback on fore channel */
-#endif /* CONFIG_SUNRPC_BACKCHANNEL */
-};
-
-/*
- * We use sv_nrthreads as a reference count. svc_destroy() drops
- * this refcount, so we need to bump it up around operations that
- * change the number of threads. Horrible, but there it is.
- * Should be called with the BKL held.
- */
-static inline void svc_get(struct svc_serv *serv)
-{
- serv->sv_nrthreads++;
-}
-
-/*
- * Maximum payload size supported by a kernel RPC server.
- * This is use to determine the max number of pages nfsd is
- * willing to return in a single READ operation.
- *
- * These happen to all be powers of 2, which is not strictly
- * necessary but helps enforce the real limitation, which is
- * that they should be multiples of PAGE_CACHE_SIZE.
- *
- * For UDP transports, a block plus NFS,RPC, and UDP headers
- * has to fit into the IP datagram limit of 64K. The largest
- * feasible number for all known page sizes is probably 48K,
- * but we choose 32K here. This is the same as the historical
- * Linux limit; someone who cares more about NFS/UDP performance
- * can test a larger number.
- *
- * For TCP transports we have more freedom. A size of 1MB is
- * chosen to match the client limit. Other OSes are known to
- * have larger limits, but those numbers are probably beyond
- * the point of diminishing returns.
- */
-#define RPCSVC_MAXPAYLOAD (1*1024*1024u)
-#define RPCSVC_MAXPAYLOAD_TCP RPCSVC_MAXPAYLOAD
-#define RPCSVC_MAXPAYLOAD_UDP (32*1024u)
-
-extern u32 svc_max_payload(const struct svc_rqst *rqstp);
-
-/*
- * RPC Requsts and replies are stored in one or more pages.
- * We maintain an array of pages for each server thread.
- * Requests are copied into these pages as they arrive. Remaining
- * pages are available to write the reply into.
- *
- * Pages are sent using ->sendpage so each server thread needs to
- * allocate more to replace those used in sending. To help keep track
- * of these pages we have a receive list where all pages initialy live,
- * and a send list where pages are moved to when there are to be part
- * of a reply.
- *
- * We use xdr_buf for holding responses as it fits well with NFS
- * read responses (that have a header, and some data pages, and possibly
- * a tail) and means we can share some client side routines.
- *
- * The xdr_buf.head kvec always points to the first page in the rq_*pages
- * list. The xdr_buf.pages pointer points to the second page on that
- * list. xdr_buf.tail points to the end of the first page.
- * This assumes that the non-page part of an rpc reply will fit
- * in a page - NFSd ensures this. lockd also has no trouble.
- *
- * Each request/reply pair can have at most one "payload", plus two pages,
- * one for the request, and one for the reply.
- * We using ->sendfile to return read data, we might need one extra page
- * if the request is not page-aligned. So add another '1'.
- */
-#define RPCSVC_MAXPAGES ((RPCSVC_MAXPAYLOAD+PAGE_SIZE-1)/PAGE_SIZE \
- + 2 + 1)
-
-static inline u32 svc_getnl(struct kvec *iov)
-{
- __be32 val, *vp;
- vp = iov->iov_base;
- val = *vp++;
- iov->iov_base = (void*)vp;
- iov->iov_len -= sizeof(__be32);
- return ntohl(val);
-}
-
-static inline void svc_putnl(struct kvec *iov, u32 val)
-{
- __be32 *vp = iov->iov_base + iov->iov_len;
- *vp = htonl(val);
- iov->iov_len += sizeof(__be32);
-}
-
-static inline __be32 svc_getu32(struct kvec *iov)
-{
- __be32 val, *vp;
- vp = iov->iov_base;
- val = *vp++;
- iov->iov_base = (void*)vp;
- iov->iov_len -= sizeof(__be32);
- return val;
-}
-
-static inline void svc_ungetu32(struct kvec *iov)
-{
- __be32 *vp = (__be32 *)iov->iov_base;
- iov->iov_base = (void *)(vp - 1);
- iov->iov_len += sizeof(*vp);
-}
-
-static inline void svc_putu32(struct kvec *iov, __be32 val)
-{
- __be32 *vp = iov->iov_base + iov->iov_len;
- *vp = val;
- iov->iov_len += sizeof(__be32);
-}
-
-/*
- * The context of a single thread, including the request currently being
- * processed.
- */
-struct svc_rqst {
- struct list_head rq_list; /* idle list */
- struct list_head rq_all; /* all threads list */
- struct svc_xprt * rq_xprt; /* transport ptr */
-
- struct sockaddr_storage rq_addr; /* peer address */
- size_t rq_addrlen;
- struct sockaddr_storage rq_daddr; /* dest addr of request
- * - reply from here */
- size_t rq_daddrlen;
-
- struct svc_serv * rq_server; /* RPC service definition */
- struct svc_pool * rq_pool; /* thread pool */
- struct svc_procedure * rq_procinfo; /* procedure info */
- struct auth_ops * rq_authop; /* authentication flavour */
- u32 rq_flavor; /* pseudoflavor */
- struct svc_cred rq_cred; /* auth info */
- void * rq_xprt_ctxt; /* transport specific context ptr */
- struct svc_deferred_req*rq_deferred; /* deferred request we are replaying */
- int rq_usedeferral; /* use deferral */
-
- size_t rq_xprt_hlen; /* xprt header len */
- struct xdr_buf rq_arg;
- struct xdr_buf rq_res;
- struct page * rq_pages[RPCSVC_MAXPAGES];
- struct page * *rq_respages; /* points into rq_pages */
- int rq_resused; /* number of pages used for result */
-
- struct kvec rq_vec[RPCSVC_MAXPAGES]; /* generally useful.. */
-
- __be32 rq_xid; /* transmission id */
- u32 rq_prog; /* program number */
- u32 rq_vers; /* program version */
- u32 rq_proc; /* procedure number */
- u32 rq_prot; /* IP protocol */
- unsigned short
- rq_secure : 1; /* secure port */
-
- void * rq_argp; /* decoded arguments */
- void * rq_resp; /* xdr'd results */
- void * rq_auth_data; /* flavor-specific data */
-
- int rq_reserved; /* space on socket outq
- * reserved for this request
- */
-
- struct cache_req rq_chandle; /* handle passed to caches for
- * request delaying
- */
- bool rq_dropme;
- /* Catering to nfsd */
- struct auth_domain * rq_client; /* RPC peer info */
- struct auth_domain * rq_gssclient; /* "gss/"-style peer info */
- int rq_cachetype;
- struct svc_cacherep * rq_cacherep; /* cache info */
- int rq_splice_ok; /* turned off in gss privacy
- * to prevent encrypting page
- * cache pages */
- wait_queue_head_t rq_wait; /* synchronization */
- struct task_struct *rq_task; /* service thread */
-};
-
-/*
- * Rigorous type checking on sockaddr type conversions
- */
-static inline struct sockaddr_in *svc_addr_in(const struct svc_rqst *rqst)
-{
- return (struct sockaddr_in *) &rqst->rq_addr;
-}
-
-static inline struct sockaddr_in6 *svc_addr_in6(const struct svc_rqst *rqst)
-{
- return (struct sockaddr_in6 *) &rqst->rq_addr;
-}
-
-static inline struct sockaddr *svc_addr(const struct svc_rqst *rqst)
-{
- return (struct sockaddr *) &rqst->rq_addr;
-}
-
-static inline struct sockaddr_in *svc_daddr_in(const struct svc_rqst *rqst)
-{
- return (struct sockaddr_in *) &rqst->rq_daddr;
-}
-
-static inline struct sockaddr_in6 *svc_daddr_in6(const struct svc_rqst *rqst)
-{
- return (struct sockaddr_in6 *) &rqst->rq_daddr;
-}
-
-static inline struct sockaddr *svc_daddr(const struct svc_rqst *rqst)
-{
- return (struct sockaddr *) &rqst->rq_daddr;
-}
-
-/*
- * Check buffer bounds after decoding arguments
- */
-static inline int
-xdr_argsize_check(struct svc_rqst *rqstp, __be32 *p)
-{
- char *cp = (char *)p;
- struct kvec *vec = &rqstp->rq_arg.head[0];
- return cp >= (char*)vec->iov_base
- && cp <= (char*)vec->iov_base + vec->iov_len;
-}
-
-static inline int
-xdr_ressize_check(struct svc_rqst *rqstp, __be32 *p)
-{
- struct kvec *vec = &rqstp->rq_res.head[0];
- char *cp = (char*)p;
-
- vec->iov_len = cp - (char*)vec->iov_base;
-
- return vec->iov_len <= PAGE_SIZE;
-}
-
-static inline void svc_free_res_pages(struct svc_rqst *rqstp)
-{
- while (rqstp->rq_resused) {
- struct page **pp = (rqstp->rq_respages +
- --rqstp->rq_resused);
- if (*pp) {
- put_page(*pp);
- *pp = NULL;
- }
- }
-}
-
-struct svc_deferred_req {
- u32 prot; /* protocol (UDP or TCP) */
- struct svc_xprt *xprt;
- struct sockaddr_storage addr; /* where reply must go */
- size_t addrlen;
- struct sockaddr_storage daddr; /* where reply must come from */
- size_t daddrlen;
- struct cache_deferred_req handle;
- size_t xprt_hlen;
- int argslen;
- __be32 args[0];
-};
-
-/*
- * List of RPC programs on the same transport endpoint
- */
-struct svc_program {
- struct svc_program * pg_next; /* other programs (same xprt) */
- u32 pg_prog; /* program number */
- unsigned int pg_lovers; /* lowest version */
- unsigned int pg_hivers; /* lowest version */
- unsigned int pg_nvers; /* number of versions */
- struct svc_version ** pg_vers; /* version array */
- char * pg_name; /* service name */
- char * pg_class; /* class name: services sharing authentication */
- struct svc_stat * pg_stats; /* rpc statistics */
- int (*pg_authenticate)(struct svc_rqst *);
-};
-
-/*
- * RPC program version
- */
-struct svc_version {
- u32 vs_vers; /* version number */
- u32 vs_nproc; /* number of procedures */
- struct svc_procedure * vs_proc; /* per-procedure info */
- u32 vs_xdrsize; /* xdrsize needed for this version */
-
- unsigned int vs_hidden : 1; /* Don't register with portmapper.
- * Only used for nfsacl so far. */
-
- /* Override dispatch function (e.g. when caching replies).
- * A return value of 0 means drop the request.
- * vs_dispatch == NULL means use default dispatcher.
- */
- int (*vs_dispatch)(struct svc_rqst *, __be32 *);
-};
-
-/*
- * RPC procedure info
- */
-typedef __be32 (*svc_procfunc)(struct svc_rqst *, void *argp, void *resp);
-struct svc_procedure {
- svc_procfunc pc_func; /* process the request */
- kxdrproc_t pc_decode; /* XDR decode args */
- kxdrproc_t pc_encode; /* XDR encode result */
- kxdrproc_t pc_release; /* XDR free result */
- unsigned int pc_argsize; /* argument struct size */
- unsigned int pc_ressize; /* result struct size */
- unsigned int pc_count; /* call count */
- unsigned int pc_cachetype; /* cache info (NFS) */
- unsigned int pc_xdrressize; /* maximum size of XDR reply */
-};
-
-/*
- * Function prototypes.
- */
-int svc_rpcb_setup(struct svc_serv *serv, struct net *net);
-void svc_rpcb_cleanup(struct svc_serv *serv, struct net *net);
-int svc_bind(struct svc_serv *serv, struct net *net);
-struct svc_serv *svc_create(struct svc_program *, unsigned int,
- void (*shutdown)(struct svc_serv *, struct net *net));
-struct svc_rqst *svc_prepare_thread(struct svc_serv *serv,
- struct svc_pool *pool, int node);
-void svc_exit_thread(struct svc_rqst *);
-struct svc_serv * svc_create_pooled(struct svc_program *, unsigned int,
- void (*shutdown)(struct svc_serv *, struct net *net),
- svc_thread_fn, struct module *);
-int svc_set_num_threads(struct svc_serv *, struct svc_pool *, int);
-int svc_pool_stats_open(struct svc_serv *serv, struct file *file);
-void svc_destroy(struct svc_serv *);
-void svc_shutdown_net(struct svc_serv *, struct net *);
-int svc_process(struct svc_rqst *);
-int bc_svc_process(struct svc_serv *, struct rpc_rqst *,
- struct svc_rqst *);
-int svc_register(const struct svc_serv *, struct net *, const int,
- const unsigned short, const unsigned short);
-
-void svc_wake_up(struct svc_serv *);
-void svc_reserve(struct svc_rqst *rqstp, int space);
-struct svc_pool * svc_pool_for_cpu(struct svc_serv *serv, int cpu);
-char * svc_print_addr(struct svc_rqst *, char *, size_t);
-
-#define RPC_MAX_ADDRBUFLEN (63U)
-
-/*
- * When we want to reduce the size of the reserved space in the response
- * buffer, we need to take into account the size of any checksum data that
- * may be at the end of the packet. This is difficult to determine exactly
- * for all cases without actually generating the checksum, so we just use a
- * static value.
- */
-static inline void svc_reserve_auth(struct svc_rqst *rqstp, int space)
-{
- int added_space = 0;
-
- if (rqstp->rq_authop->flavour)
- added_space = RPC_MAX_AUTH_SIZE;
- svc_reserve(rqstp, space + added_space);
-}
-
-#endif /* SUNRPC_SVC_H */
diff --git a/ANDROID_3.4.5/include/linux/sunrpc/svc_rdma.h b/ANDROID_3.4.5/include/linux/sunrpc/svc_rdma.h
deleted file mode 100644
index 0b8e3e6b..00000000
--- a/ANDROID_3.4.5/include/linux/sunrpc/svc_rdma.h
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
- * Copyright (c) 2005-2006 Network Appliance, Inc. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the BSD-type
- * license below:
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided
- * with the distribution.
- *
- * Neither the name of the Network Appliance, Inc. nor the names of
- * its contributors may be used to endorse or promote products
- * derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * Author: Tom Tucker <tom@opengridcomputing.com>
- */
-
-#ifndef SVC_RDMA_H
-#define SVC_RDMA_H
-#include <linux/sunrpc/xdr.h>
-#include <linux/sunrpc/svcsock.h>
-#include <linux/sunrpc/rpc_rdma.h>
-#include <rdma/ib_verbs.h>
-#include <rdma/rdma_cm.h>
-#define SVCRDMA_DEBUG
-
-/* RPC/RDMA parameters and stats */
-extern unsigned int svcrdma_ord;
-extern unsigned int svcrdma_max_requests;
-extern unsigned int svcrdma_max_req_size;
-
-extern atomic_t rdma_stat_recv;
-extern atomic_t rdma_stat_read;
-extern atomic_t rdma_stat_write;
-extern atomic_t rdma_stat_sq_starve;
-extern atomic_t rdma_stat_rq_starve;
-extern atomic_t rdma_stat_rq_poll;
-extern atomic_t rdma_stat_rq_prod;
-extern atomic_t rdma_stat_sq_poll;
-extern atomic_t rdma_stat_sq_prod;
-
-#define RPCRDMA_VERSION 1
-
-/*
- * Contexts are built when an RDMA request is created and are a
- * record of the resources that can be recovered when the request
- * completes.
- */
-struct svc_rdma_op_ctxt {
- struct svc_rdma_op_ctxt *read_hdr;
- struct svc_rdma_fastreg_mr *frmr;
- int hdr_count;
- struct xdr_buf arg;
- struct list_head dto_q;
- enum ib_wr_opcode wr_op;
- enum ib_wc_status wc_status;
- u32 byte_len;
- struct svcxprt_rdma *xprt;
- unsigned long flags;
- enum dma_data_direction direction;
- int count;
- struct ib_sge sge[RPCSVC_MAXPAGES];
- struct page *pages[RPCSVC_MAXPAGES];
-};
-
-/*
- * NFS_ requests are mapped on the client side by the chunk lists in
- * the RPCRDMA header. During the fetching of the RPC from the client
- * and the writing of the reply to the client, the memory in the
- * client and the memory in the server must be mapped as contiguous
- * vaddr/len for access by the hardware. These data strucures keep
- * these mappings.
- *
- * For an RDMA_WRITE, the 'sge' maps the RPC REPLY. For RDMA_READ, the
- * 'sge' in the svc_rdma_req_map maps the server side RPC reply and the
- * 'ch' field maps the read-list of the RPCRDMA header to the 'sge'
- * mapping of the reply.
- */
-struct svc_rdma_chunk_sge {
- int start; /* sge no for this chunk */
- int count; /* sge count for this chunk */
-};
-struct svc_rdma_fastreg_mr {
- struct ib_mr *mr;
- void *kva;
- struct ib_fast_reg_page_list *page_list;
- int page_list_len;
- unsigned long access_flags;
- unsigned long map_len;
- enum dma_data_direction direction;
- struct list_head frmr_list;
-};
-struct svc_rdma_req_map {
- struct svc_rdma_fastreg_mr *frmr;
- unsigned long count;
- union {
- struct kvec sge[RPCSVC_MAXPAGES];
- struct svc_rdma_chunk_sge ch[RPCSVC_MAXPAGES];
- };
-};
-#define RDMACTXT_F_FAST_UNREG 1
-#define RDMACTXT_F_LAST_CTXT 2
-
-#define SVCRDMA_DEVCAP_FAST_REG 1 /* fast mr registration */
-#define SVCRDMA_DEVCAP_READ_W_INV 2 /* read w/ invalidate */
-
-struct svcxprt_rdma {
- struct svc_xprt sc_xprt; /* SVC transport structure */
- struct rdma_cm_id *sc_cm_id; /* RDMA connection id */
- struct list_head sc_accept_q; /* Conn. waiting accept */
- int sc_ord; /* RDMA read limit */
- int sc_max_sge;
-
- int sc_sq_depth; /* Depth of SQ */
- atomic_t sc_sq_count; /* Number of SQ WR on queue */
-
- int sc_max_requests; /* Depth of RQ */
- int sc_max_req_size; /* Size of each RQ WR buf */
-
- struct ib_pd *sc_pd;
-
- atomic_t sc_dma_used;
- atomic_t sc_ctxt_used;
- struct list_head sc_rq_dto_q;
- spinlock_t sc_rq_dto_lock;
- struct ib_qp *sc_qp;
- struct ib_cq *sc_rq_cq;
- struct ib_cq *sc_sq_cq;
- struct ib_mr *sc_phys_mr; /* MR for server memory */
- u32 sc_dev_caps; /* distilled device caps */
- u32 sc_dma_lkey; /* local dma key */
- unsigned int sc_frmr_pg_list_len;
- struct list_head sc_frmr_q;
- spinlock_t sc_frmr_q_lock;
-
- spinlock_t sc_lock; /* transport lock */
-
- wait_queue_head_t sc_send_wait; /* SQ exhaustion waitlist */
- unsigned long sc_flags;
- struct list_head sc_dto_q; /* DTO tasklet I/O pending Q */
- struct list_head sc_read_complete_q;
- struct work_struct sc_work;
-};
-/* sc_flags */
-#define RDMAXPRT_RQ_PENDING 1
-#define RDMAXPRT_SQ_PENDING 2
-#define RDMAXPRT_CONN_PENDING 3
-
-#define RPCRDMA_LISTEN_BACKLOG 10
-/* The default ORD value is based on two outstanding full-size writes with a
- * page size of 4k, or 32k * 2 ops / 4k = 16 outstanding RDMA_READ. */
-#define RPCRDMA_ORD (64/4)
-#define RPCRDMA_SQ_DEPTH_MULT 8
-#define RPCRDMA_MAX_THREADS 16
-#define RPCRDMA_MAX_REQUESTS 16
-#define RPCRDMA_MAX_REQ_SIZE 4096
-
-/* svc_rdma_marshal.c */
-extern void svc_rdma_rcl_chunk_counts(struct rpcrdma_read_chunk *,
- int *, int *);
-extern int svc_rdma_xdr_decode_req(struct rpcrdma_msg **, struct svc_rqst *);
-extern int svc_rdma_xdr_decode_deferred_req(struct svc_rqst *);
-extern int svc_rdma_xdr_encode_error(struct svcxprt_rdma *,
- struct rpcrdma_msg *,
- enum rpcrdma_errcode, u32 *);
-extern void svc_rdma_xdr_encode_write_list(struct rpcrdma_msg *, int);
-extern void svc_rdma_xdr_encode_reply_array(struct rpcrdma_write_array *, int);
-extern void svc_rdma_xdr_encode_array_chunk(struct rpcrdma_write_array *, int,
- __be32, __be64, u32);
-extern void svc_rdma_xdr_encode_reply_header(struct svcxprt_rdma *,
- struct rpcrdma_msg *,
- struct rpcrdma_msg *,
- enum rpcrdma_proc);
-extern int svc_rdma_xdr_get_reply_hdr_len(struct rpcrdma_msg *);
-
-/* svc_rdma_recvfrom.c */
-extern int svc_rdma_recvfrom(struct svc_rqst *);
-
-/* svc_rdma_sendto.c */
-extern int svc_rdma_sendto(struct svc_rqst *);
-
-/* svc_rdma_transport.c */
-extern int svc_rdma_send(struct svcxprt_rdma *, struct ib_send_wr *);
-extern void svc_rdma_send_error(struct svcxprt_rdma *, struct rpcrdma_msg *,
- enum rpcrdma_errcode);
-struct page *svc_rdma_get_page(void);
-extern int svc_rdma_post_recv(struct svcxprt_rdma *);
-extern int svc_rdma_create_listen(struct svc_serv *, int, struct sockaddr *);
-extern struct svc_rdma_op_ctxt *svc_rdma_get_context(struct svcxprt_rdma *);
-extern void svc_rdma_put_context(struct svc_rdma_op_ctxt *, int);
-extern void svc_rdma_unmap_dma(struct svc_rdma_op_ctxt *ctxt);
-extern struct svc_rdma_req_map *svc_rdma_get_req_map(void);
-extern void svc_rdma_put_req_map(struct svc_rdma_req_map *);
-extern int svc_rdma_fastreg(struct svcxprt_rdma *, struct svc_rdma_fastreg_mr *);
-extern struct svc_rdma_fastreg_mr *svc_rdma_get_frmr(struct svcxprt_rdma *);
-extern void svc_rdma_put_frmr(struct svcxprt_rdma *,
- struct svc_rdma_fastreg_mr *);
-extern void svc_sq_reap(struct svcxprt_rdma *);
-extern void svc_rq_reap(struct svcxprt_rdma *);
-extern struct svc_xprt_class svc_rdma_class;
-extern void svc_rdma_prep_reply_hdr(struct svc_rqst *);
-
-/* svc_rdma.c */
-extern int svc_rdma_init(void);
-extern void svc_rdma_cleanup(void);
-
-/*
- * Returns the address of the first read chunk or <nul> if no read chunk is
- * present
- */
-static inline struct rpcrdma_read_chunk *
-svc_rdma_get_read_chunk(struct rpcrdma_msg *rmsgp)
-{
- struct rpcrdma_read_chunk *ch =
- (struct rpcrdma_read_chunk *)&rmsgp->rm_body.rm_chunks[0];
-
- if (ch->rc_discrim == 0)
- return NULL;
-
- return ch;
-}
-
-/*
- * Returns the address of the first read write array element or <nul> if no
- * write array list is present
- */
-static inline struct rpcrdma_write_array *
-svc_rdma_get_write_array(struct rpcrdma_msg *rmsgp)
-{
- if (rmsgp->rm_body.rm_chunks[0] != 0
- || rmsgp->rm_body.rm_chunks[1] == 0)
- return NULL;
-
- return (struct rpcrdma_write_array *)&rmsgp->rm_body.rm_chunks[1];
-}
-
-/*
- * Returns the address of the first reply array element or <nul> if no
- * reply array is present
- */
-static inline struct rpcrdma_write_array *
-svc_rdma_get_reply_array(struct rpcrdma_msg *rmsgp)
-{
- struct rpcrdma_read_chunk *rch;
- struct rpcrdma_write_array *wr_ary;
- struct rpcrdma_write_array *rp_ary;
-
- /* XXX: Need to fix when reply list may occur with read-list and/or
- * write list */
- if (rmsgp->rm_body.rm_chunks[0] != 0 ||
- rmsgp->rm_body.rm_chunks[1] != 0)
- return NULL;
-
- rch = svc_rdma_get_read_chunk(rmsgp);
- if (rch) {
- while (rch->rc_discrim)
- rch++;
-
- /* The reply list follows an empty write array located
- * at 'rc_position' here. The reply array is at rc_target.
- */
- rp_ary = (struct rpcrdma_write_array *)&rch->rc_target;
-
- goto found_it;
- }
-
- wr_ary = svc_rdma_get_write_array(rmsgp);
- if (wr_ary) {
- rp_ary = (struct rpcrdma_write_array *)
- &wr_ary->
- wc_array[ntohl(wr_ary->wc_nchunks)].wc_target.rs_length;
-
- goto found_it;
- }
-
- /* No read list, no write list */
- rp_ary = (struct rpcrdma_write_array *)
- &rmsgp->rm_body.rm_chunks[2];
-
- found_it:
- if (rp_ary->wc_discrim == 0)
- return NULL;
-
- return rp_ary;
-}
-#endif
diff --git a/ANDROID_3.4.5/include/linux/sunrpc/svc_xprt.h b/ANDROID_3.4.5/include/linux/sunrpc/svc_xprt.h
deleted file mode 100644
index b3f64b12..00000000
--- a/ANDROID_3.4.5/include/linux/sunrpc/svc_xprt.h
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- * linux/include/linux/sunrpc/svc_xprt.h
- *
- * RPC server transport I/O
- */
-
-#ifndef SUNRPC_SVC_XPRT_H
-#define SUNRPC_SVC_XPRT_H
-
-#include <linux/sunrpc/svc.h>
-
-struct module;
-
-struct svc_xprt_ops {
- struct svc_xprt *(*xpo_create)(struct svc_serv *,
- struct net *net,
- struct sockaddr *, int,
- int);
- struct svc_xprt *(*xpo_accept)(struct svc_xprt *);
- int (*xpo_has_wspace)(struct svc_xprt *);
- int (*xpo_recvfrom)(struct svc_rqst *);
- void (*xpo_prep_reply_hdr)(struct svc_rqst *);
- int (*xpo_sendto)(struct svc_rqst *);
- void (*xpo_release_rqst)(struct svc_rqst *);
- void (*xpo_detach)(struct svc_xprt *);
- void (*xpo_free)(struct svc_xprt *);
-};
-
-struct svc_xprt_class {
- const char *xcl_name;
- struct module *xcl_owner;
- struct svc_xprt_ops *xcl_ops;
- struct list_head xcl_list;
- u32 xcl_max_payload;
-};
-
-/*
- * This is embedded in an object that wants a callback before deleting
- * an xprt; intended for use by NFSv4.1, which needs to know when a
- * client's tcp connection (and hence possibly a backchannel) goes away.
- */
-struct svc_xpt_user {
- struct list_head list;
- void (*callback)(struct svc_xpt_user *);
-};
-
-struct svc_xprt {
- struct svc_xprt_class *xpt_class;
- struct svc_xprt_ops *xpt_ops;
- struct kref xpt_ref;
- struct list_head xpt_list;
- struct list_head xpt_ready;
- unsigned long xpt_flags;
-#define XPT_BUSY 0 /* enqueued/receiving */
-#define XPT_CONN 1 /* conn pending */
-#define XPT_CLOSE 2 /* dead or dying */
-#define XPT_DATA 3 /* data pending */
-#define XPT_TEMP 4 /* connected transport */
-#define XPT_DEAD 6 /* transport closed */
-#define XPT_CHNGBUF 7 /* need to change snd/rcv buf sizes */
-#define XPT_DEFERRED 8 /* deferred request pending */
-#define XPT_OLD 9 /* used for xprt aging mark+sweep */
-#define XPT_DETACHED 10 /* detached from tempsocks list */
-#define XPT_LISTENER 11 /* listening endpoint */
-#define XPT_CACHE_AUTH 12 /* cache auth info */
-
- struct svc_serv *xpt_server; /* service for transport */
- atomic_t xpt_reserved; /* space on outq that is rsvd */
- struct mutex xpt_mutex; /* to serialize sending data */
- spinlock_t xpt_lock; /* protects sk_deferred
- * and xpt_auth_cache */
- void *xpt_auth_cache;/* auth cache */
- struct list_head xpt_deferred; /* deferred requests that need
- * to be revisted */
- struct sockaddr_storage xpt_local; /* local address */
- size_t xpt_locallen; /* length of address */
- struct sockaddr_storage xpt_remote; /* remote peer's address */
- size_t xpt_remotelen; /* length of address */
- struct rpc_wait_queue xpt_bc_pending; /* backchannel wait queue */
- struct list_head xpt_users; /* callbacks on free */
-
- struct net *xpt_net;
- struct rpc_xprt *xpt_bc_xprt; /* NFSv4.1 backchannel */
-};
-
-static inline void unregister_xpt_user(struct svc_xprt *xpt, struct svc_xpt_user *u)
-{
- spin_lock(&xpt->xpt_lock);
- list_del_init(&u->list);
- spin_unlock(&xpt->xpt_lock);
-}
-
-static inline int register_xpt_user(struct svc_xprt *xpt, struct svc_xpt_user *u)
-{
- spin_lock(&xpt->xpt_lock);
- if (test_bit(XPT_CLOSE, &xpt->xpt_flags)) {
- /*
- * The connection is about to be deleted soon (or,
- * worse, may already be deleted--in which case we've
- * already notified the xpt_users).
- */
- spin_unlock(&xpt->xpt_lock);
- return -ENOTCONN;
- }
- list_add(&u->list, &xpt->xpt_users);
- spin_unlock(&xpt->xpt_lock);
- return 0;
-}
-
-int svc_reg_xprt_class(struct svc_xprt_class *);
-void svc_unreg_xprt_class(struct svc_xprt_class *);
-void svc_xprt_init(struct net *, struct svc_xprt_class *, struct svc_xprt *,
- struct svc_serv *);
-int svc_create_xprt(struct svc_serv *, const char *, struct net *,
- const int, const unsigned short, int);
-void svc_xprt_enqueue(struct svc_xprt *xprt);
-void svc_xprt_received(struct svc_xprt *);
-void svc_xprt_put(struct svc_xprt *xprt);
-void svc_xprt_copy_addrs(struct svc_rqst *rqstp, struct svc_xprt *xprt);
-void svc_close_xprt(struct svc_xprt *xprt);
-int svc_port_is_privileged(struct sockaddr *sin);
-int svc_print_xprts(char *buf, int maxlen);
-struct svc_xprt *svc_find_xprt(struct svc_serv *serv, const char *xcl_name,
- struct net *net, const sa_family_t af,
- const unsigned short port);
-int svc_xprt_names(struct svc_serv *serv, char *buf, const int buflen);
-
-static inline void svc_xprt_get(struct svc_xprt *xprt)
-{
- kref_get(&xprt->xpt_ref);
-}
-static inline void svc_xprt_set_local(struct svc_xprt *xprt,
- const struct sockaddr *sa,
- const size_t salen)
-{
- memcpy(&xprt->xpt_local, sa, salen);
- xprt->xpt_locallen = salen;
-}
-static inline void svc_xprt_set_remote(struct svc_xprt *xprt,
- const struct sockaddr *sa,
- const size_t salen)
-{
- memcpy(&xprt->xpt_remote, sa, salen);
- xprt->xpt_remotelen = salen;
-}
-static inline unsigned short svc_addr_port(const struct sockaddr *sa)
-{
- const struct sockaddr_in *sin = (const struct sockaddr_in *)sa;
- const struct sockaddr_in6 *sin6 = (const struct sockaddr_in6 *)sa;
-
- switch (sa->sa_family) {
- case AF_INET:
- return ntohs(sin->sin_port);
- case AF_INET6:
- return ntohs(sin6->sin6_port);
- }
-
- return 0;
-}
-
-static inline size_t svc_addr_len(const struct sockaddr *sa)
-{
- switch (sa->sa_family) {
- case AF_INET:
- return sizeof(struct sockaddr_in);
- case AF_INET6:
- return sizeof(struct sockaddr_in6);
- }
-
- return 0;
-}
-
-static inline unsigned short svc_xprt_local_port(const struct svc_xprt *xprt)
-{
- return svc_addr_port((const struct sockaddr *)&xprt->xpt_local);
-}
-
-static inline unsigned short svc_xprt_remote_port(const struct svc_xprt *xprt)
-{
- return svc_addr_port((const struct sockaddr *)&xprt->xpt_remote);
-}
-
-static inline char *__svc_print_addr(const struct sockaddr *addr,
- char *buf, const size_t len)
-{
- const struct sockaddr_in *sin = (const struct sockaddr_in *)addr;
- const struct sockaddr_in6 *sin6 = (const struct sockaddr_in6 *)addr;
-
- switch (addr->sa_family) {
- case AF_INET:
- snprintf(buf, len, "%pI4, port=%u", &sin->sin_addr,
- ntohs(sin->sin_port));
- break;
-
- case AF_INET6:
- snprintf(buf, len, "%pI6, port=%u",
- &sin6->sin6_addr,
- ntohs(sin6->sin6_port));
- break;
-
- default:
- snprintf(buf, len, "unknown address type: %d", addr->sa_family);
- break;
- }
-
- return buf;
-}
-#endif /* SUNRPC_SVC_XPRT_H */
diff --git a/ANDROID_3.4.5/include/linux/sunrpc/svcauth.h b/ANDROID_3.4.5/include/linux/sunrpc/svcauth.h
deleted file mode 100644
index 548790e9..00000000
--- a/ANDROID_3.4.5/include/linux/sunrpc/svcauth.h
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * linux/include/linux/sunrpc/svcauth.h
- *
- * RPC server-side authentication stuff.
- *
- * Copyright (C) 1995, 1996 Olaf Kirch <okir@monad.swb.de>
- */
-
-#ifndef _LINUX_SUNRPC_SVCAUTH_H_
-#define _LINUX_SUNRPC_SVCAUTH_H_
-
-#ifdef __KERNEL__
-
-#include <linux/string.h>
-#include <linux/sunrpc/msg_prot.h>
-#include <linux/sunrpc/cache.h>
-#include <linux/hash.h>
-
-#define SVC_CRED_NGROUPS 32
-struct svc_cred {
- uid_t cr_uid;
- gid_t cr_gid;
- struct group_info *cr_group_info;
-};
-
-struct svc_rqst; /* forward decl */
-struct in6_addr;
-
-/* Authentication is done in the context of a domain.
- *
- * Currently, the nfs server uses the auth_domain to stand
- * for the "client" listed in /etc/exports.
- *
- * More generally, a domain might represent a group of clients using
- * a common mechanism for authentication and having a common mapping
- * between local identity (uid) and network identity. All clients
- * in a domain have similar general access rights. Each domain can
- * contain multiple principals which will have different specific right
- * based on normal Discretionary Access Control.
- *
- * A domain is created by an authentication flavour module based on name
- * only. Userspace then fills in detail on demand.
- *
- * In the case of auth_unix and auth_null, the auth_domain is also
- * associated with entries in another cache representing the mapping
- * of ip addresses to the given client.
- */
-struct auth_domain {
- struct kref ref;
- struct hlist_node hash;
- char *name;
- struct auth_ops *flavour;
-};
-
-/*
- * Each authentication flavour registers an auth_ops
- * structure.
- * name is simply the name.
- * flavour gives the auth flavour. It determines where the flavour is registered
- * accept() is given a request and should verify it.
- * It should inspect the authenticator and verifier, and possibly the data.
- * If there is a problem with the authentication *authp should be set.
- * The return value of accept() can indicate:
- * OK - authorised. client and credential are set in rqstp.
- * reqbuf points to arguments
- * resbuf points to good place for results. verfier
- * is (probably) already in place. Certainly space is
- * reserved for it.
- * DROP - simply drop the request. It may have been deferred
- * GARBAGE - rpc garbage_args error
- * SYSERR - rpc system_err error
- * DENIED - authp holds reason for denial.
- * COMPLETE - the reply is encoded already and ready to be sent; no
- * further processing is necessary. (This is used for processing
- * null procedure calls which are used to set up encryption
- * contexts.)
- *
- * accept is passed the proc number so that it can accept NULL rpc requests
- * even if it cannot authenticate the client (as is sometimes appropriate).
- *
- * release() is given a request after the procedure has been run.
- * It should sign/encrypt the results if needed
- * It should return:
- * OK - the resbuf is ready to be sent
- * DROP - the reply should be quitely dropped
- * DENIED - authp holds a reason for MSG_DENIED
- * SYSERR - rpc system_err
- *
- * domain_release()
- * This call releases a domain.
- * set_client()
- * Givens a pending request (struct svc_rqst), finds and assigns
- * an appropriate 'auth_domain' as the client.
- */
-struct auth_ops {
- char * name;
- struct module *owner;
- int flavour;
- int (*accept)(struct svc_rqst *rq, __be32 *authp);
- int (*release)(struct svc_rqst *rq);
- void (*domain_release)(struct auth_domain *);
- int (*set_client)(struct svc_rqst *rq);
-};
-
-#define SVC_GARBAGE 1
-#define SVC_SYSERR 2
-#define SVC_VALID 3
-#define SVC_NEGATIVE 4
-#define SVC_OK 5
-#define SVC_DROP 6
-#define SVC_CLOSE 7 /* Like SVC_DROP, but request is definitely
- * lost so if there is a tcp connection, it
- * should be closed
- */
-#define SVC_DENIED 8
-#define SVC_PENDING 9
-#define SVC_COMPLETE 10
-
-struct svc_xprt;
-
-extern int svc_authenticate(struct svc_rqst *rqstp, __be32 *authp);
-extern int svc_authorise(struct svc_rqst *rqstp);
-extern int svc_set_client(struct svc_rqst *rqstp);
-extern int svc_auth_register(rpc_authflavor_t flavor, struct auth_ops *aops);
-extern void svc_auth_unregister(rpc_authflavor_t flavor);
-
-extern struct auth_domain *unix_domain_find(char *name);
-extern void auth_domain_put(struct auth_domain *item);
-extern int auth_unix_add_addr(struct net *net, struct in6_addr *addr, struct auth_domain *dom);
-extern struct auth_domain *auth_domain_lookup(char *name, struct auth_domain *new);
-extern struct auth_domain *auth_domain_find(char *name);
-extern struct auth_domain *auth_unix_lookup(struct net *net, struct in6_addr *addr);
-extern int auth_unix_forget_old(struct auth_domain *dom);
-extern void svcauth_unix_purge(void);
-extern void svcauth_unix_info_release(struct svc_xprt *xpt);
-extern int svcauth_unix_set_client(struct svc_rqst *rqstp);
-
-extern int unix_gid_cache_create(struct net *net);
-extern void unix_gid_cache_destroy(struct net *net);
-
-static inline unsigned long hash_str(char *name, int bits)
-{
- unsigned long hash = 0;
- unsigned long l = 0;
- int len = 0;
- unsigned char c;
- do {
- if (unlikely(!(c = *name++))) {
- c = (char)len; len = -1;
- }
- l = (l << 8) | c;
- len++;
- if ((len & (BITS_PER_LONG/8-1))==0)
- hash = hash_long(hash^l, BITS_PER_LONG);
- } while (len);
- return hash >> (BITS_PER_LONG - bits);
-}
-
-static inline unsigned long hash_mem(char *buf, int length, int bits)
-{
- unsigned long hash = 0;
- unsigned long l = 0;
- int len = 0;
- unsigned char c;
- do {
- if (len == length) {
- c = (char)len; len = -1;
- } else
- c = *buf++;
- l = (l << 8) | c;
- len++;
- if ((len & (BITS_PER_LONG/8-1))==0)
- hash = hash_long(hash^l, BITS_PER_LONG);
- } while (len);
- return hash >> (BITS_PER_LONG - bits);
-}
-
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_SUNRPC_SVCAUTH_H_ */
diff --git a/ANDROID_3.4.5/include/linux/sunrpc/svcauth_gss.h b/ANDROID_3.4.5/include/linux/sunrpc/svcauth_gss.h
deleted file mode 100644
index 7c32daa0..00000000
--- a/ANDROID_3.4.5/include/linux/sunrpc/svcauth_gss.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * linux/include/linux/sunrpc/svcauth_gss.h
- *
- * Bruce Fields <bfields@umich.edu>
- * Copyright (c) 2002 The Regents of the University of Michigan
- */
-
-#ifndef _LINUX_SUNRPC_SVCAUTH_GSS_H
-#define _LINUX_SUNRPC_SVCAUTH_GSS_H
-
-#ifdef __KERNEL__
-#include <linux/sched.h>
-#include <linux/sunrpc/types.h>
-#include <linux/sunrpc/xdr.h>
-#include <linux/sunrpc/svcauth.h>
-#include <linux/sunrpc/svcsock.h>
-#include <linux/sunrpc/auth_gss.h>
-
-int gss_svc_init(void);
-void gss_svc_shutdown(void);
-int gss_svc_init_net(struct net *net);
-void gss_svc_shutdown_net(struct net *net);
-int svcauth_gss_register_pseudoflavor(u32 pseudoflavor, char * name);
-u32 svcauth_gss_flavor(struct auth_domain *dom);
-char *svc_gss_principal(struct svc_rqst *);
-
-#endif /* __KERNEL__ */
-#endif /* _LINUX_SUNRPC_SVCAUTH_GSS_H */
diff --git a/ANDROID_3.4.5/include/linux/sunrpc/svcsock.h b/ANDROID_3.4.5/include/linux/sunrpc/svcsock.h
deleted file mode 100644
index cb4ac69e..00000000
--- a/ANDROID_3.4.5/include/linux/sunrpc/svcsock.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * linux/include/linux/sunrpc/svcsock.h
- *
- * RPC server socket I/O.
- *
- * Copyright (C) 1995, 1996 Olaf Kirch <okir@monad.swb.de>
- */
-
-#ifndef SUNRPC_SVCSOCK_H
-#define SUNRPC_SVCSOCK_H
-
-#include <linux/sunrpc/svc.h>
-#include <linux/sunrpc/svc_xprt.h>
-
-/*
- * RPC server socket.
- */
-struct svc_sock {
- struct svc_xprt sk_xprt;
- struct socket * sk_sock; /* berkeley socket layer */
- struct sock * sk_sk; /* INET layer */
-
- /* We keep the old state_change and data_ready CB's here */
- void (*sk_ostate)(struct sock *);
- void (*sk_odata)(struct sock *, int bytes);
- void (*sk_owspace)(struct sock *);
-
- /* private TCP part */
- u32 sk_reclen; /* length of record */
- u32 sk_tcplen; /* current read length */
- struct page * sk_pages[RPCSVC_MAXPAGES]; /* received data */
-};
-
-/*
- * Function prototypes.
- */
-void svc_close_net(struct svc_serv *, struct net *);
-int svc_recv(struct svc_rqst *, long);
-int svc_send(struct svc_rqst *);
-void svc_drop(struct svc_rqst *);
-void svc_sock_update_bufs(struct svc_serv *serv);
-int svc_sock_names(struct svc_serv *serv, char *buf,
- const size_t buflen,
- const char *toclose);
-int svc_addsock(struct svc_serv *serv, const int fd,
- char *name_return, const size_t len);
-void svc_init_xprt_sock(void);
-void svc_cleanup_xprt_sock(void);
-struct svc_xprt *svc_sock_create(struct svc_serv *serv, int prot);
-void svc_sock_destroy(struct svc_xprt *);
-
-/*
- * svc_makesock socket characteristics
- */
-#define SVC_SOCK_DEFAULTS (0U)
-#define SVC_SOCK_ANONYMOUS (1U << 0) /* don't register with pmap */
-#define SVC_SOCK_TEMPORARY (1U << 1) /* flag socket as temporary */
-
-#endif /* SUNRPC_SVCSOCK_H */
diff --git a/ANDROID_3.4.5/include/linux/sunrpc/timer.h b/ANDROID_3.4.5/include/linux/sunrpc/timer.h
deleted file mode 100644
index 697d6e69..00000000
--- a/ANDROID_3.4.5/include/linux/sunrpc/timer.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * linux/include/linux/sunrpc/timer.h
- *
- * Declarations for the RPC transport timer.
- *
- * Copyright (C) 2002 Trond Myklebust <trond.myklebust@fys.uio.no>
- */
-
-#ifndef _LINUX_SUNRPC_TIMER_H
-#define _LINUX_SUNRPC_TIMER_H
-
-#include <linux/atomic.h>
-
-struct rpc_rtt {
- unsigned long timeo; /* default timeout value */
- unsigned long srtt[5]; /* smoothed round trip time << 3 */
- unsigned long sdrtt[5]; /* smoothed medium deviation of RTT */
- int ntimeouts[5]; /* Number of timeouts for the last request */
-};
-
-
-extern void rpc_init_rtt(struct rpc_rtt *rt, unsigned long timeo);
-extern void rpc_update_rtt(struct rpc_rtt *rt, unsigned timer, long m);
-extern unsigned long rpc_calc_rto(struct rpc_rtt *rt, unsigned timer);
-
-static inline void rpc_set_timeo(struct rpc_rtt *rt, int timer, int ntimeo)
-{
- int *t;
- if (!timer)
- return;
- t = &rt->ntimeouts[timer-1];
- if (ntimeo < *t) {
- if (*t > 0)
- (*t)--;
- } else {
- if (ntimeo > 8)
- ntimeo = 8;
- *t = ntimeo;
- }
-}
-
-static inline int rpc_ntimeo(struct rpc_rtt *rt, int timer)
-{
- if (!timer)
- return 0;
- return rt->ntimeouts[timer-1];
-}
-
-#endif /* _LINUX_SUNRPC_TIMER_H */
diff --git a/ANDROID_3.4.5/include/linux/sunrpc/types.h b/ANDROID_3.4.5/include/linux/sunrpc/types.h
deleted file mode 100644
index d222f475..00000000
--- a/ANDROID_3.4.5/include/linux/sunrpc/types.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * linux/include/linux/sunrpc/types.h
- *
- * Generic types and misc stuff for RPC.
- *
- * Copyright (C) 1996, Olaf Kirch <okir@monad.swb.de>
- */
-
-#ifndef _LINUX_SUNRPC_TYPES_H_
-#define _LINUX_SUNRPC_TYPES_H_
-
-#include <linux/timer.h>
-#include <linux/workqueue.h>
-#include <linux/sunrpc/debug.h>
-#include <linux/list.h>
-
-/*
- * Shorthands
- */
-#define signalled() (signal_pending(current))
-
-#endif /* _LINUX_SUNRPC_TYPES_H_ */
diff --git a/ANDROID_3.4.5/include/linux/sunrpc/xdr.h b/ANDROID_3.4.5/include/linux/sunrpc/xdr.h
deleted file mode 100644
index af70af33..00000000
--- a/ANDROID_3.4.5/include/linux/sunrpc/xdr.h
+++ /dev/null
@@ -1,231 +0,0 @@
-/*
- * XDR standard data types and function declarations
- *
- * Copyright (C) 1995-1997 Olaf Kirch <okir@monad.swb.de>
- *
- * Based on:
- * RFC 4506 "XDR: External Data Representation Standard", May 2006
- */
-
-#ifndef _SUNRPC_XDR_H_
-#define _SUNRPC_XDR_H_
-
-#ifdef __KERNEL__
-
-#include <linux/uio.h>
-#include <asm/byteorder.h>
-#include <asm/unaligned.h>
-#include <linux/scatterlist.h>
-
-/*
- * Buffer adjustment
- */
-#define XDR_QUADLEN(l) (((l) + 3) >> 2)
-
-/*
- * Generic opaque `network object.' At the kernel level, this type
- * is used only by lockd.
- */
-#define XDR_MAX_NETOBJ 1024
-struct xdr_netobj {
- unsigned int len;
- u8 * data;
-};
-
-/*
- * This is the legacy generic XDR function. rqstp is either a rpc_rqst
- * (client side) or svc_rqst pointer (server side).
- * Encode functions always assume there's enough room in the buffer.
- */
-typedef int (*kxdrproc_t)(void *rqstp, __be32 *data, void *obj);
-
-/*
- * Basic structure for transmission/reception of a client XDR message.
- * Features a header (for a linear buffer containing RPC headers
- * and the data payload for short messages), and then an array of
- * pages.
- * The tail iovec allows you to append data after the page array. Its
- * main interest is for appending padding to the pages in order to
- * satisfy the int_32-alignment requirements in RFC1832.
- *
- * For the future, we might want to string several of these together
- * in a list if anybody wants to make use of NFSv4 COMPOUND
- * operations and/or has a need for scatter/gather involving pages.
- */
-struct xdr_buf {
- struct kvec head[1], /* RPC header + non-page data */
- tail[1]; /* Appended after page data */
-
- struct page ** pages; /* Array of contiguous pages */
- unsigned int page_base, /* Start of page data */
- page_len, /* Length of page data */
- flags; /* Flags for data disposition */
-#define XDRBUF_READ 0x01 /* target of file read */
-#define XDRBUF_WRITE 0x02 /* source of file write */
-
- unsigned int buflen, /* Total length of storage buffer */
- len; /* Length of XDR encoded message */
-};
-
-/*
- * pre-xdr'ed macros.
- */
-
-#define xdr_zero cpu_to_be32(0)
-#define xdr_one cpu_to_be32(1)
-#define xdr_two cpu_to_be32(2)
-
-#define rpc_success cpu_to_be32(RPC_SUCCESS)
-#define rpc_prog_unavail cpu_to_be32(RPC_PROG_UNAVAIL)
-#define rpc_prog_mismatch cpu_to_be32(RPC_PROG_MISMATCH)
-#define rpc_proc_unavail cpu_to_be32(RPC_PROC_UNAVAIL)
-#define rpc_garbage_args cpu_to_be32(RPC_GARBAGE_ARGS)
-#define rpc_system_err cpu_to_be32(RPC_SYSTEM_ERR)
-#define rpc_drop_reply cpu_to_be32(RPC_DROP_REPLY)
-
-#define rpc_auth_ok cpu_to_be32(RPC_AUTH_OK)
-#define rpc_autherr_badcred cpu_to_be32(RPC_AUTH_BADCRED)
-#define rpc_autherr_rejectedcred cpu_to_be32(RPC_AUTH_REJECTEDCRED)
-#define rpc_autherr_badverf cpu_to_be32(RPC_AUTH_BADVERF)
-#define rpc_autherr_rejectedverf cpu_to_be32(RPC_AUTH_REJECTEDVERF)
-#define rpc_autherr_tooweak cpu_to_be32(RPC_AUTH_TOOWEAK)
-#define rpcsec_gsserr_credproblem cpu_to_be32(RPCSEC_GSS_CREDPROBLEM)
-#define rpcsec_gsserr_ctxproblem cpu_to_be32(RPCSEC_GSS_CTXPROBLEM)
-#define rpc_autherr_oldseqnum cpu_to_be32(101)
-
-/*
- * Miscellaneous XDR helper functions
- */
-__be32 *xdr_encode_opaque_fixed(__be32 *p, const void *ptr, unsigned int len);
-__be32 *xdr_encode_opaque(__be32 *p, const void *ptr, unsigned int len);
-__be32 *xdr_encode_string(__be32 *p, const char *s);
-__be32 *xdr_decode_string_inplace(__be32 *p, char **sp, unsigned int *lenp,
- unsigned int maxlen);
-__be32 *xdr_encode_netobj(__be32 *p, const struct xdr_netobj *);
-__be32 *xdr_decode_netobj(__be32 *p, struct xdr_netobj *);
-
-void xdr_encode_pages(struct xdr_buf *, struct page **, unsigned int,
- unsigned int);
-void xdr_inline_pages(struct xdr_buf *, unsigned int,
- struct page **, unsigned int, unsigned int);
-void xdr_terminate_string(struct xdr_buf *, const u32);
-
-static inline __be32 *xdr_encode_array(__be32 *p, const void *s, unsigned int len)
-{
- return xdr_encode_opaque(p, s, len);
-}
-
-/*
- * Decode 64bit quantities (NFSv3 support)
- */
-static inline __be32 *
-xdr_encode_hyper(__be32 *p, __u64 val)
-{
- put_unaligned_be64(val, p);
- return p + 2;
-}
-
-static inline __be32 *
-xdr_decode_hyper(__be32 *p, __u64 *valp)
-{
- *valp = get_unaligned_be64(p);
- return p + 2;
-}
-
-static inline __be32 *
-xdr_decode_opaque_fixed(__be32 *p, void *ptr, unsigned int len)
-{
- memcpy(ptr, p, len);
- return p + XDR_QUADLEN(len);
-}
-
-/*
- * Adjust kvec to reflect end of xdr'ed data (RPC client XDR)
- */
-static inline int
-xdr_adjust_iovec(struct kvec *iov, __be32 *p)
-{
- return iov->iov_len = ((u8 *) p - (u8 *) iov->iov_base);
-}
-
-/*
- * XDR buffer helper functions
- */
-extern void xdr_shift_buf(struct xdr_buf *, size_t);
-extern void xdr_buf_from_iov(struct kvec *, struct xdr_buf *);
-extern int xdr_buf_subsegment(struct xdr_buf *, struct xdr_buf *, unsigned int, unsigned int);
-extern int xdr_buf_read_netobj(struct xdr_buf *, struct xdr_netobj *, unsigned int);
-extern int read_bytes_from_xdr_buf(struct xdr_buf *, unsigned int, void *, unsigned int);
-extern int write_bytes_to_xdr_buf(struct xdr_buf *, unsigned int, void *, unsigned int);
-
-/*
- * Helper structure for copying from an sk_buff.
- */
-struct xdr_skb_reader {
- struct sk_buff *skb;
- unsigned int offset;
- size_t count;
- __wsum csum;
-};
-
-typedef size_t (*xdr_skb_read_actor)(struct xdr_skb_reader *desc, void *to, size_t len);
-
-size_t xdr_skb_read_bits(struct xdr_skb_reader *desc, void *to, size_t len);
-extern int csum_partial_copy_to_xdr(struct xdr_buf *, struct sk_buff *);
-extern ssize_t xdr_partial_copy_from_skb(struct xdr_buf *, unsigned int,
- struct xdr_skb_reader *, xdr_skb_read_actor);
-
-extern int xdr_encode_word(struct xdr_buf *, unsigned int, u32);
-extern int xdr_decode_word(struct xdr_buf *, unsigned int, u32 *);
-
-struct xdr_array2_desc;
-typedef int (*xdr_xcode_elem_t)(struct xdr_array2_desc *desc, void *elem);
-struct xdr_array2_desc {
- unsigned int elem_size;
- unsigned int array_len;
- unsigned int array_maxlen;
- xdr_xcode_elem_t xcode;
-};
-
-extern int xdr_decode_array2(struct xdr_buf *buf, unsigned int base,
- struct xdr_array2_desc *desc);
-extern int xdr_encode_array2(struct xdr_buf *buf, unsigned int base,
- struct xdr_array2_desc *desc);
-extern void _copy_from_pages(char *p, struct page **pages, size_t pgbase,
- size_t len);
-
-/*
- * Provide some simple tools for XDR buffer overflow-checking etc.
- */
-struct xdr_stream {
- __be32 *p; /* start of available buffer */
- struct xdr_buf *buf; /* XDR buffer to read/write */
-
- __be32 *end; /* end of available buffer space */
- struct kvec *iov; /* pointer to the current kvec */
- struct kvec scratch; /* Scratch buffer */
- struct page **page_ptr; /* pointer to the current page */
-};
-
-/*
- * These are the xdr_stream style generic XDR encode and decode functions.
- */
-typedef void (*kxdreproc_t)(void *rqstp, struct xdr_stream *xdr, void *obj);
-typedef int (*kxdrdproc_t)(void *rqstp, struct xdr_stream *xdr, void *obj);
-
-extern void xdr_init_encode(struct xdr_stream *xdr, struct xdr_buf *buf, __be32 *p);
-extern __be32 *xdr_reserve_space(struct xdr_stream *xdr, size_t nbytes);
-extern void xdr_write_pages(struct xdr_stream *xdr, struct page **pages,
- unsigned int base, unsigned int len);
-extern void xdr_init_decode(struct xdr_stream *xdr, struct xdr_buf *buf, __be32 *p);
-extern void xdr_init_decode_pages(struct xdr_stream *xdr, struct xdr_buf *buf,
- struct page **pages, unsigned int len);
-extern void xdr_set_scratch_buffer(struct xdr_stream *xdr, void *buf, size_t buflen);
-extern __be32 *xdr_inline_decode(struct xdr_stream *xdr, size_t nbytes);
-extern void xdr_read_pages(struct xdr_stream *xdr, unsigned int len);
-extern void xdr_enter_page(struct xdr_stream *xdr, unsigned int len);
-extern int xdr_process_buf(struct xdr_buf *buf, unsigned int offset, unsigned int len, int (*actor)(struct scatterlist *, void *), void *data);
-
-#endif /* __KERNEL__ */
-
-#endif /* _SUNRPC_XDR_H_ */
diff --git a/ANDROID_3.4.5/include/linux/sunrpc/xprt.h b/ANDROID_3.4.5/include/linux/sunrpc/xprt.h
deleted file mode 100644
index 77d278de..00000000
--- a/ANDROID_3.4.5/include/linux/sunrpc/xprt.h
+++ /dev/null
@@ -1,404 +0,0 @@
-/*
- * linux/include/linux/sunrpc/xprt.h
- *
- * Declarations for the RPC transport interface.
- *
- * Copyright (C) 1995, 1996 Olaf Kirch <okir@monad.swb.de>
- */
-
-#ifndef _LINUX_SUNRPC_XPRT_H
-#define _LINUX_SUNRPC_XPRT_H
-
-#include <linux/uio.h>
-#include <linux/socket.h>
-#include <linux/in.h>
-#include <linux/ktime.h>
-#include <linux/sunrpc/sched.h>
-#include <linux/sunrpc/xdr.h>
-#include <linux/sunrpc/msg_prot.h>
-
-#ifdef __KERNEL__
-
-#define RPC_MIN_SLOT_TABLE (2U)
-#define RPC_DEF_SLOT_TABLE (16U)
-#define RPC_MAX_SLOT_TABLE_LIMIT (65536U)
-#define RPC_MAX_SLOT_TABLE RPC_MAX_SLOT_TABLE_LIMIT
-
-/*
- * This describes a timeout strategy
- */
-struct rpc_timeout {
- unsigned long to_initval, /* initial timeout */
- to_maxval, /* max timeout */
- to_increment; /* if !exponential */
- unsigned int to_retries; /* max # of retries */
- unsigned char to_exponential;
-};
-
-enum rpc_display_format_t {
- RPC_DISPLAY_ADDR = 0,
- RPC_DISPLAY_PORT,
- RPC_DISPLAY_PROTO,
- RPC_DISPLAY_HEX_ADDR,
- RPC_DISPLAY_HEX_PORT,
- RPC_DISPLAY_NETID,
- RPC_DISPLAY_MAX,
-};
-
-struct rpc_task;
-struct rpc_xprt;
-struct seq_file;
-
-/*
- * This describes a complete RPC request
- */
-struct rpc_rqst {
- /*
- * This is the user-visible part
- */
- struct rpc_xprt * rq_xprt; /* RPC client */
- struct xdr_buf rq_snd_buf; /* send buffer */
- struct xdr_buf rq_rcv_buf; /* recv buffer */
-
- /*
- * This is the private part
- */
- struct rpc_task * rq_task; /* RPC task data */
- struct rpc_cred * rq_cred; /* Bound cred */
- __be32 rq_xid; /* request XID */
- int rq_cong; /* has incremented xprt->cong */
- u32 rq_seqno; /* gss seq no. used on req. */
- int rq_enc_pages_num;
- struct page **rq_enc_pages; /* scratch pages for use by
- gss privacy code */
- void (*rq_release_snd_buf)(struct rpc_rqst *); /* release rq_enc_pages */
- struct list_head rq_list;
-
- __u32 * rq_buffer; /* XDR encode buffer */
- size_t rq_callsize,
- rq_rcvsize;
- size_t rq_xmit_bytes_sent; /* total bytes sent */
- size_t rq_reply_bytes_recvd; /* total reply bytes */
- /* received */
-
- struct xdr_buf rq_private_buf; /* The receive buffer
- * used in the softirq.
- */
- unsigned long rq_majortimeo; /* major timeout alarm */
- unsigned long rq_timeout; /* Current timeout value */
- ktime_t rq_rtt; /* round-trip time */
- unsigned int rq_retries; /* # of retries */
- unsigned int rq_connect_cookie;
- /* A cookie used to track the
- state of the transport
- connection */
-
- /*
- * Partial send handling
- */
- u32 rq_bytes_sent; /* Bytes we have sent */
-
- ktime_t rq_xtime; /* transmit time stamp */
- int rq_ntrans;
-
-#if defined(CONFIG_SUNRPC_BACKCHANNEL)
- struct list_head rq_bc_list; /* Callback service list */
- unsigned long rq_bc_pa_state; /* Backchannel prealloc state */
- struct list_head rq_bc_pa_list; /* Backchannel prealloc list */
-#endif /* CONFIG_SUNRPC_BACKCHANEL */
-};
-#define rq_svec rq_snd_buf.head
-#define rq_slen rq_snd_buf.len
-
-struct rpc_xprt_ops {
- void (*set_buffer_size)(struct rpc_xprt *xprt, size_t sndsize, size_t rcvsize);
- int (*reserve_xprt)(struct rpc_xprt *xprt, struct rpc_task *task);
- void (*release_xprt)(struct rpc_xprt *xprt, struct rpc_task *task);
- void (*rpcbind)(struct rpc_task *task);
- void (*set_port)(struct rpc_xprt *xprt, unsigned short port);
- void (*connect)(struct rpc_task *task);
- void * (*buf_alloc)(struct rpc_task *task, size_t size);
- void (*buf_free)(void *buffer);
- int (*send_request)(struct rpc_task *task);
- void (*set_retrans_timeout)(struct rpc_task *task);
- void (*timer)(struct rpc_task *task);
- void (*release_request)(struct rpc_task *task);
- void (*close)(struct rpc_xprt *xprt);
- void (*destroy)(struct rpc_xprt *xprt);
- void (*print_stats)(struct rpc_xprt *xprt, struct seq_file *seq);
-};
-
-/*
- * RPC transport identifiers
- *
- * To preserve compatibility with the historical use of raw IP protocol
- * id's for transport selection, UDP and TCP identifiers are specified
- * with the previous values. No such restriction exists for new transports,
- * except that they may not collide with these values (17 and 6,
- * respectively).
- */
-#define XPRT_TRANSPORT_BC (1 << 31)
-enum xprt_transports {
- XPRT_TRANSPORT_UDP = IPPROTO_UDP,
- XPRT_TRANSPORT_TCP = IPPROTO_TCP,
- XPRT_TRANSPORT_BC_TCP = IPPROTO_TCP | XPRT_TRANSPORT_BC,
- XPRT_TRANSPORT_RDMA = 256,
- XPRT_TRANSPORT_LOCAL = 257,
-};
-
-struct rpc_xprt {
- atomic_t count; /* Reference count */
- struct rpc_xprt_ops * ops; /* transport methods */
-
- const struct rpc_timeout *timeout; /* timeout parms */
- struct sockaddr_storage addr; /* server address */
- size_t addrlen; /* size of server address */
- int prot; /* IP protocol */
-
- unsigned long cong; /* current congestion */
- unsigned long cwnd; /* congestion window */
-
- size_t max_payload; /* largest RPC payload size,
- in bytes */
- unsigned int tsh_size; /* size of transport specific
- header */
-
- struct rpc_wait_queue binding; /* requests waiting on rpcbind */
- struct rpc_wait_queue sending; /* requests waiting to send */
- struct rpc_wait_queue pending; /* requests in flight */
- struct rpc_wait_queue backlog; /* waiting for slot */
- struct list_head free; /* free slots */
- unsigned int max_reqs; /* max number of slots */
- unsigned int min_reqs; /* min number of slots */
- atomic_t num_reqs; /* total slots */
- unsigned long state; /* transport state */
- unsigned char shutdown : 1, /* being shut down */
- resvport : 1; /* use a reserved port */
- unsigned int bind_index; /* bind function index */
-
- /*
- * Connection of transports
- */
- unsigned long bind_timeout,
- reestablish_timeout;
- unsigned int connect_cookie; /* A cookie that gets bumped
- every time the transport
- is reconnected */
-
- /*
- * Disconnection of idle transports
- */
- struct work_struct task_cleanup;
- struct timer_list timer;
- unsigned long last_used,
- idle_timeout;
-
- /*
- * Send stuff
- */
- spinlock_t transport_lock; /* lock transport info */
- spinlock_t reserve_lock; /* lock slot table */
- u32 xid; /* Next XID value to use */
- struct rpc_task * snd_task; /* Task blocked in send */
- struct svc_xprt *bc_xprt; /* NFSv4.1 backchannel */
-#if defined(CONFIG_SUNRPC_BACKCHANNEL)
- struct svc_serv *bc_serv; /* The RPC service which will */
- /* process the callback */
- unsigned int bc_alloc_count; /* Total number of preallocs */
- spinlock_t bc_pa_lock; /* Protects the preallocated
- * items */
- struct list_head bc_pa_list; /* List of preallocated
- * backchannel rpc_rqst's */
-#endif /* CONFIG_SUNRPC_BACKCHANNEL */
- struct list_head recv;
-
- struct {
- unsigned long bind_count, /* total number of binds */
- connect_count, /* total number of connects */
- connect_start, /* connect start timestamp */
- connect_time, /* jiffies waiting for connect */
- sends, /* how many complete requests */
- recvs, /* how many complete requests */
- bad_xids, /* lookup_rqst didn't find XID */
- max_slots; /* max rpc_slots used */
-
- unsigned long long req_u, /* average requests on the wire */
- bklog_u, /* backlog queue utilization */
- sending_u, /* send q utilization */
- pending_u; /* pend q utilization */
- } stat;
-
- struct net *xprt_net;
- const char *servername;
- const char *address_strings[RPC_DISPLAY_MAX];
-};
-
-#if defined(CONFIG_SUNRPC_BACKCHANNEL)
-/*
- * Backchannel flags
- */
-#define RPC_BC_PA_IN_USE 0x0001 /* Preallocated backchannel */
- /* buffer in use */
-#endif /* CONFIG_SUNRPC_BACKCHANNEL */
-
-#if defined(CONFIG_SUNRPC_BACKCHANNEL)
-static inline int bc_prealloc(struct rpc_rqst *req)
-{
- return test_bit(RPC_BC_PA_IN_USE, &req->rq_bc_pa_state);
-}
-#else
-static inline int bc_prealloc(struct rpc_rqst *req)
-{
- return 0;
-}
-#endif /* CONFIG_SUNRPC_BACKCHANNEL */
-
-struct xprt_create {
- int ident; /* XPRT_TRANSPORT identifier */
- struct net * net;
- struct sockaddr * srcaddr; /* optional local address */
- struct sockaddr * dstaddr; /* remote peer address */
- size_t addrlen;
- const char *servername;
- struct svc_xprt *bc_xprt; /* NFSv4.1 backchannel */
-};
-
-struct xprt_class {
- struct list_head list;
- int ident; /* XPRT_TRANSPORT identifier */
- struct rpc_xprt * (*setup)(struct xprt_create *);
- struct module *owner;
- char name[32];
-};
-
-/*
- * Generic internal transport functions
- */
-struct rpc_xprt *xprt_create_transport(struct xprt_create *args);
-void xprt_connect(struct rpc_task *task);
-void xprt_reserve(struct rpc_task *task);
-int xprt_reserve_xprt(struct rpc_xprt *xprt, struct rpc_task *task);
-int xprt_reserve_xprt_cong(struct rpc_xprt *xprt, struct rpc_task *task);
-int xprt_prepare_transmit(struct rpc_task *task);
-void xprt_transmit(struct rpc_task *task);
-void xprt_end_transmit(struct rpc_task *task);
-int xprt_adjust_timeout(struct rpc_rqst *req);
-void xprt_release_xprt(struct rpc_xprt *xprt, struct rpc_task *task);
-void xprt_release_xprt_cong(struct rpc_xprt *xprt, struct rpc_task *task);
-void xprt_release(struct rpc_task *task);
-struct rpc_xprt * xprt_get(struct rpc_xprt *xprt);
-void xprt_put(struct rpc_xprt *xprt);
-struct rpc_xprt * xprt_alloc(struct net *net, size_t size,
- unsigned int num_prealloc,
- unsigned int max_req);
-void xprt_free(struct rpc_xprt *);
-
-static inline __be32 *xprt_skip_transport_header(struct rpc_xprt *xprt, __be32 *p)
-{
- return p + xprt->tsh_size;
-}
-
-/*
- * Transport switch helper functions
- */
-int xprt_register_transport(struct xprt_class *type);
-int xprt_unregister_transport(struct xprt_class *type);
-int xprt_load_transport(const char *);
-void xprt_set_retrans_timeout_def(struct rpc_task *task);
-void xprt_set_retrans_timeout_rtt(struct rpc_task *task);
-void xprt_wake_pending_tasks(struct rpc_xprt *xprt, int status);
-void xprt_wait_for_buffer_space(struct rpc_task *task, rpc_action action);
-void xprt_write_space(struct rpc_xprt *xprt);
-void xprt_adjust_cwnd(struct rpc_task *task, int result);
-struct rpc_rqst * xprt_lookup_rqst(struct rpc_xprt *xprt, __be32 xid);
-void xprt_complete_rqst(struct rpc_task *task, int copied);
-void xprt_release_rqst_cong(struct rpc_task *task);
-void xprt_disconnect_done(struct rpc_xprt *xprt);
-void xprt_force_disconnect(struct rpc_xprt *xprt);
-void xprt_conditional_disconnect(struct rpc_xprt *xprt, unsigned int cookie);
-
-/*
- * Reserved bit positions in xprt->state
- */
-#define XPRT_LOCKED (0)
-#define XPRT_CONNECTED (1)
-#define XPRT_CONNECTING (2)
-#define XPRT_CLOSE_WAIT (3)
-#define XPRT_BOUND (4)
-#define XPRT_BINDING (5)
-#define XPRT_CLOSING (6)
-#define XPRT_CONNECTION_ABORT (7)
-#define XPRT_CONNECTION_CLOSE (8)
-
-static inline void xprt_set_connected(struct rpc_xprt *xprt)
-{
- set_bit(XPRT_CONNECTED, &xprt->state);
-}
-
-static inline void xprt_clear_connected(struct rpc_xprt *xprt)
-{
- clear_bit(XPRT_CONNECTED, &xprt->state);
-}
-
-static inline int xprt_connected(struct rpc_xprt *xprt)
-{
- return test_bit(XPRT_CONNECTED, &xprt->state);
-}
-
-static inline int xprt_test_and_set_connected(struct rpc_xprt *xprt)
-{
- return test_and_set_bit(XPRT_CONNECTED, &xprt->state);
-}
-
-static inline int xprt_test_and_clear_connected(struct rpc_xprt *xprt)
-{
- return test_and_clear_bit(XPRT_CONNECTED, &xprt->state);
-}
-
-static inline void xprt_clear_connecting(struct rpc_xprt *xprt)
-{
- smp_mb__before_clear_bit();
- clear_bit(XPRT_CONNECTING, &xprt->state);
- smp_mb__after_clear_bit();
-}
-
-static inline int xprt_connecting(struct rpc_xprt *xprt)
-{
- return test_bit(XPRT_CONNECTING, &xprt->state);
-}
-
-static inline int xprt_test_and_set_connecting(struct rpc_xprt *xprt)
-{
- return test_and_set_bit(XPRT_CONNECTING, &xprt->state);
-}
-
-static inline void xprt_set_bound(struct rpc_xprt *xprt)
-{
- test_and_set_bit(XPRT_BOUND, &xprt->state);
-}
-
-static inline int xprt_bound(struct rpc_xprt *xprt)
-{
- return test_bit(XPRT_BOUND, &xprt->state);
-}
-
-static inline void xprt_clear_bound(struct rpc_xprt *xprt)
-{
- clear_bit(XPRT_BOUND, &xprt->state);
-}
-
-static inline void xprt_clear_binding(struct rpc_xprt *xprt)
-{
- smp_mb__before_clear_bit();
- clear_bit(XPRT_BINDING, &xprt->state);
- smp_mb__after_clear_bit();
-}
-
-static inline int xprt_test_and_set_binding(struct rpc_xprt *xprt)
-{
- return test_and_set_bit(XPRT_BINDING, &xprt->state);
-}
-
-#endif /* __KERNEL__*/
-
-#endif /* _LINUX_SUNRPC_XPRT_H */
diff --git a/ANDROID_3.4.5/include/linux/sunrpc/xprtrdma.h b/ANDROID_3.4.5/include/linux/sunrpc/xprtrdma.h
deleted file mode 100644
index c2f04e1a..00000000
--- a/ANDROID_3.4.5/include/linux/sunrpc/xprtrdma.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (c) 2003-2007 Network Appliance, Inc. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the BSD-type
- * license below:
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided
- * with the distribution.
- *
- * Neither the name of the Network Appliance, Inc. nor the names of
- * its contributors may be used to endorse or promote products
- * derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef _LINUX_SUNRPC_XPRTRDMA_H
-#define _LINUX_SUNRPC_XPRTRDMA_H
-
-/*
- * rpcbind (v3+) RDMA netid.
- */
-#define RPCBIND_NETID_RDMA "rdma"
-
-/*
- * Constants. Max RPC/NFS header is big enough to account for
- * additional marshaling buffers passed down by Linux client.
- *
- * RDMA header is currently fixed max size, and is big enough for a
- * fully-chunked NFS message (read chunks are the largest). Note only
- * a single chunk type per message is supported currently.
- */
-#define RPCRDMA_MIN_SLOT_TABLE (2U)
-#define RPCRDMA_DEF_SLOT_TABLE (32U)
-#define RPCRDMA_MAX_SLOT_TABLE (256U)
-
-#define RPCRDMA_DEF_INLINE (1024) /* default inline max */
-
-#define RPCRDMA_INLINE_PAD_THRESH (512)/* payload threshold to pad (bytes) */
-
-/* memory registration strategies */
-#define RPCRDMA_PERSISTENT_REGISTRATION (1)
-
-enum rpcrdma_memreg {
- RPCRDMA_BOUNCEBUFFERS = 0,
- RPCRDMA_REGISTER,
- RPCRDMA_MEMWINDOWS,
- RPCRDMA_MEMWINDOWS_ASYNC,
- RPCRDMA_MTHCAFMR,
- RPCRDMA_FRMR,
- RPCRDMA_ALLPHYSICAL,
- RPCRDMA_LAST
-};
-
-#endif /* _LINUX_SUNRPC_XPRTRDMA_H */
diff --git a/ANDROID_3.4.5/include/linux/sunrpc/xprtsock.h b/ANDROID_3.4.5/include/linux/sunrpc/xprtsock.h
deleted file mode 100644
index 1ad36cc2..00000000
--- a/ANDROID_3.4.5/include/linux/sunrpc/xprtsock.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * linux/include/linux/sunrpc/xprtsock.h
- *
- * Declarations for the RPC transport socket provider.
- */
-
-#ifndef _LINUX_SUNRPC_XPRTSOCK_H
-#define _LINUX_SUNRPC_XPRTSOCK_H
-
-#ifdef __KERNEL__
-
-int init_socket_xprt(void);
-void cleanup_socket_xprt(void);
-
-#define RPC_MIN_RESVPORT (1U)
-#define RPC_MAX_RESVPORT (65535U)
-#define RPC_DEF_MIN_RESVPORT (665U)
-#define RPC_DEF_MAX_RESVPORT (1023U)
-
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_SUNRPC_XPRTSOCK_H */
diff --git a/ANDROID_3.4.5/include/linux/sunserialcore.h b/ANDROID_3.4.5/include/linux/sunserialcore.h
deleted file mode 100644
index 68e7430b..00000000
--- a/ANDROID_3.4.5/include/linux/sunserialcore.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* sunserialcore.h
- *
- * Generic SUN serial/kbd/ms layer. Based entirely
- * upon drivers/sbus/char/sunserial.h which is:
- *
- * Copyright (C) 1997 Eddie C. Dost (ecd@skynet.be)
- *
- * Port to new UART layer is:
- *
- * Copyright (C) 2002 David S. Miller (davem@redhat.com)
- */
-
-#ifndef _SERIAL_SUN_H
-#define _SERIAL_SUN_H
-
-/* Serial keyboard defines for L1-A processing... */
-#define SUNKBD_RESET 0xff
-#define SUNKBD_L1 0x01
-#define SUNKBD_UP 0x80
-#define SUNKBD_A 0x4d
-
-extern unsigned int suncore_mouse_baud_cflag_next(unsigned int, int *);
-extern int suncore_mouse_baud_detection(unsigned char, int);
-
-extern int sunserial_register_minors(struct uart_driver *, int);
-extern void sunserial_unregister_minors(struct uart_driver *, int);
-
-extern int sunserial_console_match(struct console *, struct device_node *,
- struct uart_driver *, int, bool);
-extern void sunserial_console_termios(struct console *,
- struct device_node *);
-
-#endif /* !(_SERIAL_SUN_H) */
diff --git a/ANDROID_3.4.5/include/linux/superhyway.h b/ANDROID_3.4.5/include/linux/superhyway.h
deleted file mode 100644
index 17ea468f..00000000
--- a/ANDROID_3.4.5/include/linux/superhyway.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * include/linux/superhyway.h
- *
- * SuperHyway Bus definitions
- *
- * Copyright (C) 2004, 2005 Paul Mundt <lethal@linux-sh.org>
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- */
-#ifndef __LINUX_SUPERHYWAY_H
-#define __LINUX_SUPERHYWAY_H
-
-#include <linux/device.h>
-
-/*
- * SuperHyway IDs
- */
-#define SUPERHYWAY_DEVICE_ID_SH5_DMAC 0x0183
-
-struct superhyway_vcr_info {
- u8 perr_flags; /* P-port Error flags */
- u8 merr_flags; /* Module Error flags */
- u16 mod_vers; /* Module Version */
- u16 mod_id; /* Module ID */
- u8 bot_mb; /* Bottom Memory block */
- u8 top_mb; /* Top Memory block */
-};
-
-struct superhyway_ops {
- int (*read_vcr)(unsigned long base, struct superhyway_vcr_info *vcr);
- int (*write_vcr)(unsigned long base, struct superhyway_vcr_info vcr);
-};
-
-struct superhyway_bus {
- struct superhyway_ops *ops;
-};
-
-extern struct superhyway_bus superhyway_channels[];
-
-struct superhyway_device_id {
- unsigned int id;
- unsigned long driver_data;
-};
-
-struct superhyway_device;
-extern struct bus_type superhyway_bus_type;
-
-struct superhyway_driver {
- char *name;
-
- const struct superhyway_device_id *id_table;
- struct device_driver drv;
-
- int (*probe)(struct superhyway_device *dev, const struct superhyway_device_id *id);
- void (*remove)(struct superhyway_device *dev);
-};
-
-#define to_superhyway_driver(d) container_of((d), struct superhyway_driver, drv)
-
-struct superhyway_device {
- char name[32];
-
- struct device dev;
-
- struct superhyway_device_id id;
- struct superhyway_driver *drv;
- struct superhyway_bus *bus;
-
- int num_resources;
- struct resource *resource;
- struct superhyway_vcr_info vcr;
-};
-
-#define to_superhyway_device(d) container_of((d), struct superhyway_device, dev)
-
-#define superhyway_get_drvdata(d) dev_get_drvdata(&(d)->dev)
-#define superhyway_set_drvdata(d,p) dev_set_drvdata(&(d)->dev, (p))
-
-static inline int
-superhyway_read_vcr(struct superhyway_device *dev, unsigned long base,
- struct superhyway_vcr_info *vcr)
-{
- return dev->bus->ops->read_vcr(base, vcr);
-}
-
-static inline int
-superhyway_write_vcr(struct superhyway_device *dev, unsigned long base,
- struct superhyway_vcr_info vcr)
-{
- return dev->bus->ops->write_vcr(base, vcr);
-}
-
-extern int superhyway_scan_bus(struct superhyway_bus *);
-
-/* drivers/sh/superhyway/superhyway.c */
-int superhyway_register_driver(struct superhyway_driver *);
-void superhyway_unregister_driver(struct superhyway_driver *);
-int superhyway_add_device(unsigned long base, struct superhyway_device *, struct superhyway_bus *);
-int superhyway_add_devices(struct superhyway_bus *bus, struct superhyway_device **devices, int nr_devices);
-
-/* drivers/sh/superhyway/superhyway-sysfs.c */
-extern struct device_attribute superhyway_dev_attrs[];
-
-#endif /* __LINUX_SUPERHYWAY_H */
-
diff --git a/ANDROID_3.4.5/include/linux/suspend.h b/ANDROID_3.4.5/include/linux/suspend.h
deleted file mode 100644
index a79a28f5..00000000
--- a/ANDROID_3.4.5/include/linux/suspend.h
+++ /dev/null
@@ -1,456 +0,0 @@
-#ifndef _LINUX_SUSPEND_H
-#define _LINUX_SUSPEND_H
-
-#include <linux/swap.h>
-#include <linux/notifier.h>
-#include <linux/init.h>
-#include <linux/pm.h>
-#include <linux/mm.h>
-#include <linux/freezer.h>
-#include <asm/errno.h>
-
-#ifdef CONFIG_VT
-extern void pm_set_vt_switch(int);
-#else
-static inline void pm_set_vt_switch(int do_switch)
-{
-}
-#endif
-
-#ifdef CONFIG_VT_CONSOLE_SLEEP
-extern int pm_prepare_console(void);
-extern void pm_restore_console(void);
-#else
-static inline int pm_prepare_console(void)
-{
- return 0;
-}
-
-static inline void pm_restore_console(void)
-{
-}
-#endif
-
-typedef int __bitwise suspend_state_t;
-
-#define PM_SUSPEND_ON ((__force suspend_state_t) 0)
-#define PM_SUSPEND_STANDBY ((__force suspend_state_t) 1)
-#define PM_SUSPEND_MEM ((__force suspend_state_t) 3)
-#define PM_SUSPEND_MAX ((__force suspend_state_t) 4)
-
-enum suspend_stat_step {
- SUSPEND_FREEZE = 1,
- SUSPEND_PREPARE,
- SUSPEND_SUSPEND,
- SUSPEND_SUSPEND_LATE,
- SUSPEND_SUSPEND_NOIRQ,
- SUSPEND_RESUME_NOIRQ,
- SUSPEND_RESUME_EARLY,
- SUSPEND_RESUME
-};
-
-struct suspend_stats {
- int success;
- int fail;
- int failed_freeze;
- int failed_prepare;
- int failed_suspend;
- int failed_suspend_late;
- int failed_suspend_noirq;
- int failed_resume;
- int failed_resume_early;
- int failed_resume_noirq;
-#define REC_FAILED_NUM 2
- int last_failed_dev;
- char failed_devs[REC_FAILED_NUM][40];
- int last_failed_errno;
- int errno[REC_FAILED_NUM];
- int last_failed_step;
- enum suspend_stat_step failed_steps[REC_FAILED_NUM];
-};
-
-extern struct suspend_stats suspend_stats;
-
-static inline void dpm_save_failed_dev(const char *name)
-{
- strlcpy(suspend_stats.failed_devs[suspend_stats.last_failed_dev],
- name,
- sizeof(suspend_stats.failed_devs[0]));
- suspend_stats.last_failed_dev++;
- suspend_stats.last_failed_dev %= REC_FAILED_NUM;
-}
-
-static inline void dpm_save_failed_errno(int err)
-{
- suspend_stats.errno[suspend_stats.last_failed_errno] = err;
- suspend_stats.last_failed_errno++;
- suspend_stats.last_failed_errno %= REC_FAILED_NUM;
-}
-
-static inline void dpm_save_failed_step(enum suspend_stat_step step)
-{
- suspend_stats.failed_steps[suspend_stats.last_failed_step] = step;
- suspend_stats.last_failed_step++;
- suspend_stats.last_failed_step %= REC_FAILED_NUM;
-}
-
-/**
- * struct platform_suspend_ops - Callbacks for managing platform dependent
- * system sleep states.
- *
- * @valid: Callback to determine if given system sleep state is supported by
- * the platform.
- * Valid (ie. supported) states are advertised in /sys/power/state. Note
- * that it still may be impossible to enter given system sleep state if the
- * conditions aren't right.
- * There is the %suspend_valid_only_mem function available that can be
- * assigned to this if the platform only supports mem sleep.
- *
- * @begin: Initialise a transition to given system sleep state.
- * @begin() is executed right prior to suspending devices. The information
- * conveyed to the platform code by @begin() should be disregarded by it as
- * soon as @end() is executed. If @begin() fails (ie. returns nonzero),
- * @prepare(), @enter() and @finish() will not be called by the PM core.
- * This callback is optional. However, if it is implemented, the argument
- * passed to @enter() is redundant and should be ignored.
- *
- * @prepare: Prepare the platform for entering the system sleep state indicated
- * by @begin().
- * @prepare() is called right after devices have been suspended (ie. the
- * appropriate .suspend() method has been executed for each device) and
- * before device drivers' late suspend callbacks are executed. It returns
- * 0 on success or a negative error code otherwise, in which case the
- * system cannot enter the desired sleep state (@prepare_late(), @enter(),
- * and @wake() will not be called in that case).
- *
- * @prepare_late: Finish preparing the platform for entering the system sleep
- * state indicated by @begin().
- * @prepare_late is called before disabling nonboot CPUs and after
- * device drivers' late suspend callbacks have been executed. It returns
- * 0 on success or a negative error code otherwise, in which case the
- * system cannot enter the desired sleep state (@enter() will not be
- * executed).
- *
- * @enter: Enter the system sleep state indicated by @begin() or represented by
- * the argument if @begin() is not implemented.
- * This callback is mandatory. It returns 0 on success or a negative
- * error code otherwise, in which case the system cannot enter the desired
- * sleep state.
- *
- * @wake: Called when the system has just left a sleep state, right after
- * the nonboot CPUs have been enabled and before device drivers' early
- * resume callbacks are executed.
- * This callback is optional, but should be implemented by the platforms
- * that implement @prepare_late(). If implemented, it is always called
- * after @prepare_late and @enter(), even if one of them fails.
- *
- * @finish: Finish wake-up of the platform.
- * @finish is called right prior to calling device drivers' regular suspend
- * callbacks.
- * This callback is optional, but should be implemented by the platforms
- * that implement @prepare(). If implemented, it is always called after
- * @enter() and @wake(), even if any of them fails. It is executed after
- * a failing @prepare.
- *
- * @suspend_again: Returns whether the system should suspend again (true) or
- * not (false). If the platform wants to poll sensors or execute some
- * code during suspended without invoking userspace and most of devices,
- * suspend_again callback is the place assuming that periodic-wakeup or
- * alarm-wakeup is already setup. This allows to execute some codes while
- * being kept suspended in the view of userland and devices.
- *
- * @end: Called by the PM core right after resuming devices, to indicate to
- * the platform that the system has returned to the working state or
- * the transition to the sleep state has been aborted.
- * This callback is optional, but should be implemented by the platforms
- * that implement @begin(). Accordingly, platforms implementing @begin()
- * should also provide a @end() which cleans up transitions aborted before
- * @enter().
- *
- * @recover: Recover the platform from a suspend failure.
- * Called by the PM core if the suspending of devices fails.
- * This callback is optional and should only be implemented by platforms
- * which require special recovery actions in that situation.
- */
-struct platform_suspend_ops {
- int (*valid)(suspend_state_t state);
- int (*begin)(suspend_state_t state);
- int (*prepare)(void);
- int (*prepare_late)(void);
- int (*enter)(suspend_state_t state);
- void (*wake)(void);
- void (*finish)(void);
- bool (*suspend_again)(void);
- void (*end)(void);
- void (*recover)(void);
-};
-
-#ifdef CONFIG_SUSPEND
-/**
- * suspend_set_ops - set platform dependent suspend operations
- * @ops: The new suspend operations to set.
- */
-extern void suspend_set_ops(const struct platform_suspend_ops *ops);
-extern int suspend_valid_only_mem(suspend_state_t state);
-
-/**
- * arch_suspend_disable_irqs - disable IRQs for suspend
- *
- * Disables IRQs (in the default case). This is a weak symbol in the common
- * code and thus allows architectures to override it if more needs to be
- * done. Not called for suspend to disk.
- */
-extern void arch_suspend_disable_irqs(void);
-
-/**
- * arch_suspend_enable_irqs - enable IRQs after suspend
- *
- * Enables IRQs (in the default case). This is a weak symbol in the common
- * code and thus allows architectures to override it if more needs to be
- * done. Not called for suspend to disk.
- */
-extern void arch_suspend_enable_irqs(void);
-
-extern int pm_suspend(suspend_state_t state);
-#else /* !CONFIG_SUSPEND */
-#define suspend_valid_only_mem NULL
-
-static inline void suspend_set_ops(const struct platform_suspend_ops *ops) {}
-static inline int pm_suspend(suspend_state_t state) { return -ENOSYS; }
-#endif /* !CONFIG_SUSPEND */
-
-/* struct pbe is used for creating lists of pages that should be restored
- * atomically during the resume from disk, because the page frames they have
- * occupied before the suspend are in use.
- */
-struct pbe {
- void *address; /* address of the copy */
- void *orig_address; /* original address of a page */
- struct pbe *next;
-};
-
-/* mm/page_alloc.c */
-extern void mark_free_pages(struct zone *zone);
-
-/**
- * struct platform_hibernation_ops - hibernation platform support
- *
- * The methods in this structure allow a platform to carry out special
- * operations required by it during a hibernation transition.
- *
- * All the methods below, except for @recover(), must be implemented.
- *
- * @begin: Tell the platform driver that we're starting hibernation.
- * Called right after shrinking memory and before freezing devices.
- *
- * @end: Called by the PM core right after resuming devices, to indicate to
- * the platform that the system has returned to the working state.
- *
- * @pre_snapshot: Prepare the platform for creating the hibernation image.
- * Called right after devices have been frozen and before the nonboot
- * CPUs are disabled (runs with IRQs on).
- *
- * @finish: Restore the previous state of the platform after the hibernation
- * image has been created *or* put the platform into the normal operation
- * mode after the hibernation (the same method is executed in both cases).
- * Called right after the nonboot CPUs have been enabled and before
- * thawing devices (runs with IRQs on).
- *
- * @prepare: Prepare the platform for entering the low power state.
- * Called right after the hibernation image has been saved and before
- * devices are prepared for entering the low power state.
- *
- * @enter: Put the system into the low power state after the hibernation image
- * has been saved to disk.
- * Called after the nonboot CPUs have been disabled and all of the low
- * level devices have been shut down (runs with IRQs off).
- *
- * @leave: Perform the first stage of the cleanup after the system sleep state
- * indicated by @set_target() has been left.
- * Called right after the control has been passed from the boot kernel to
- * the image kernel, before the nonboot CPUs are enabled and before devices
- * are resumed. Executed with interrupts disabled.
- *
- * @pre_restore: Prepare system for the restoration from a hibernation image.
- * Called right after devices have been frozen and before the nonboot
- * CPUs are disabled (runs with IRQs on).
- *
- * @restore_cleanup: Clean up after a failing image restoration.
- * Called right after the nonboot CPUs have been enabled and before
- * thawing devices (runs with IRQs on).
- *
- * @recover: Recover the platform from a failure to suspend devices.
- * Called by the PM core if the suspending of devices during hibernation
- * fails. This callback is optional and should only be implemented by
- * platforms which require special recovery actions in that situation.
- */
-struct platform_hibernation_ops {
- int (*begin)(void);
- void (*end)(void);
- int (*pre_snapshot)(void);
- void (*finish)(void);
- int (*prepare)(void);
- int (*enter)(void);
- void (*leave)(void);
- int (*pre_restore)(void);
- void (*restore_cleanup)(void);
- void (*recover)(void);
-};
-
-#ifdef CONFIG_HIBERNATION
-/* kernel/power/snapshot.c */
-extern void __register_nosave_region(unsigned long b, unsigned long e, int km);
-static inline void __init register_nosave_region(unsigned long b, unsigned long e)
-{
- __register_nosave_region(b, e, 0);
-}
-static inline void __init register_nosave_region_late(unsigned long b, unsigned long e)
-{
- __register_nosave_region(b, e, 1);
-}
-extern int swsusp_page_is_forbidden(struct page *);
-extern void swsusp_set_page_free(struct page *);
-extern void swsusp_unset_page_free(struct page *);
-extern unsigned long get_safe_page(gfp_t gfp_mask);
-
-extern void hibernation_set_ops(const struct platform_hibernation_ops *ops);
-extern int hibernate(void);
-extern bool system_entering_hibernation(void);
-#else /* CONFIG_HIBERNATION */
-static inline void register_nosave_region(unsigned long b, unsigned long e) {}
-static inline void register_nosave_region_late(unsigned long b, unsigned long e) {}
-static inline int swsusp_page_is_forbidden(struct page *p) { return 0; }
-static inline void swsusp_set_page_free(struct page *p) {}
-static inline void swsusp_unset_page_free(struct page *p) {}
-
-static inline void hibernation_set_ops(const struct platform_hibernation_ops *ops) {}
-static inline int hibernate(void) { return -ENOSYS; }
-static inline bool system_entering_hibernation(void) { return false; }
-#endif /* CONFIG_HIBERNATION */
-
-/* Hibernation and suspend events */
-#define PM_HIBERNATION_PREPARE 0x0001 /* Going to hibernate */
-#define PM_POST_HIBERNATION 0x0002 /* Hibernation finished */
-#define PM_SUSPEND_PREPARE 0x0003 /* Going to suspend the system */
-#define PM_POST_SUSPEND 0x0004 /* Suspend finished */
-#define PM_RESTORE_PREPARE 0x0005 /* Going to restore a saved image */
-#define PM_POST_RESTORE 0x0006 /* Restore failed */
-#define PM_HIBERNATION_FINISH 0x0007
-extern struct mutex pm_mutex;
-
-#ifdef CONFIG_PM_SLEEP
-void save_processor_state(void);
-void restore_processor_state(void);
-
-/* kernel/power/main.c */
-extern int register_pm_notifier(struct notifier_block *nb);
-extern int unregister_pm_notifier(struct notifier_block *nb);
-
-#define pm_notifier(fn, pri) { \
- static struct notifier_block fn##_nb = \
- { .notifier_call = fn, .priority = pri }; \
- register_pm_notifier(&fn##_nb); \
-}
-
-/* drivers/base/power/wakeup.c */
-extern bool events_check_enabled;
-
-extern bool pm_wakeup_pending(void);
-extern bool pm_get_wakeup_count(unsigned int *count, bool block);
-extern bool pm_save_wakeup_count(unsigned int count);
-extern void pm_wakep_autosleep_enabled(bool set);
-
-static inline void lock_system_sleep(void)
-{
- current->flags |= PF_FREEZER_SKIP;
- mutex_lock(&pm_mutex);
-}
-
-static inline void unlock_system_sleep(void)
-{
- /*
- * Don't use freezer_count() because we don't want the call to
- * try_to_freeze() here.
- *
- * Reason:
- * Fundamentally, we just don't need it, because freezing condition
- * doesn't come into effect until we release the pm_mutex lock,
- * since the freezer always works with pm_mutex held.
- *
- * More importantly, in the case of hibernation,
- * unlock_system_sleep() gets called in snapshot_read() and
- * snapshot_write() when the freezing condition is still in effect.
- * Which means, if we use try_to_freeze() here, it would make them
- * enter the refrigerator, thus causing hibernation to lockup.
- */
- current->flags &= ~PF_FREEZER_SKIP;
- mutex_unlock(&pm_mutex);
-}
-
-#else /* !CONFIG_PM_SLEEP */
-
-static inline int register_pm_notifier(struct notifier_block *nb)
-{
- return 0;
-}
-
-static inline int unregister_pm_notifier(struct notifier_block *nb)
-{
- return 0;
-}
-
-#define pm_notifier(fn, pri) do { (void)(fn); } while (0)
-
-static inline bool pm_wakeup_pending(void) { return false; }
-
-static inline void lock_system_sleep(void) {}
-static inline void unlock_system_sleep(void) {}
-
-#endif /* !CONFIG_PM_SLEEP */
-
-#ifdef CONFIG_PM_AUTOSLEEP
-
-/* kernel/power/autosleep.c */
-void queue_up_suspend_work(void);
-
-#else /* !CONFIG_PM_AUTOSLEEP */
-
-static inline void queue_up_suspend_work(void) {}
-
-#endif /* !CONFIG_PM_AUTOSLEEP */
-
-#ifdef CONFIG_ARCH_SAVE_PAGE_KEYS
-/*
- * The ARCH_SAVE_PAGE_KEYS functions can be used by an architecture
- * to save/restore additional information to/from the array of page
- * frame numbers in the hibernation image. For s390 this is used to
- * save and restore the storage key for each page that is included
- * in the hibernation image.
- */
-unsigned long page_key_additional_pages(unsigned long pages);
-int page_key_alloc(unsigned long pages);
-void page_key_free(void);
-void page_key_read(unsigned long *pfn);
-void page_key_memorize(unsigned long *pfn);
-void page_key_write(void *address);
-
-#else /* !CONFIG_ARCH_SAVE_PAGE_KEYS */
-
-static inline unsigned long page_key_additional_pages(unsigned long pages)
-{
- return 0;
-}
-
-static inline int page_key_alloc(unsigned long pages)
-{
- return 0;
-}
-
-static inline void page_key_free(void) {}
-static inline void page_key_read(unsigned long *pfn) {}
-static inline void page_key_memorize(unsigned long *pfn) {}
-static inline void page_key_write(void *address) {}
-
-#endif /* !CONFIG_ARCH_SAVE_PAGE_KEYS */
-
-#endif /* _LINUX_SUSPEND_H */
diff --git a/ANDROID_3.4.5/include/linux/suspend_ioctls.h b/ANDROID_3.4.5/include/linux/suspend_ioctls.h
deleted file mode 100644
index 0b303829..00000000
--- a/ANDROID_3.4.5/include/linux/suspend_ioctls.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef _LINUX_SUSPEND_IOCTLS_H
-#define _LINUX_SUSPEND_IOCTLS_H
-
-#include <linux/types.h>
-/*
- * This structure is used to pass the values needed for the identification
- * of the resume swap area from a user space to the kernel via the
- * SNAPSHOT_SET_SWAP_AREA ioctl
- */
-struct resume_swap_area {
- __kernel_loff_t offset;
- __u32 dev;
-} __attribute__((packed));
-
-#define SNAPSHOT_IOC_MAGIC '3'
-#define SNAPSHOT_FREEZE _IO(SNAPSHOT_IOC_MAGIC, 1)
-#define SNAPSHOT_UNFREEZE _IO(SNAPSHOT_IOC_MAGIC, 2)
-#define SNAPSHOT_ATOMIC_RESTORE _IO(SNAPSHOT_IOC_MAGIC, 4)
-#define SNAPSHOT_FREE _IO(SNAPSHOT_IOC_MAGIC, 5)
-#define SNAPSHOT_FREE_SWAP_PAGES _IO(SNAPSHOT_IOC_MAGIC, 9)
-#define SNAPSHOT_S2RAM _IO(SNAPSHOT_IOC_MAGIC, 11)
-#define SNAPSHOT_SET_SWAP_AREA _IOW(SNAPSHOT_IOC_MAGIC, 13, \
- struct resume_swap_area)
-#define SNAPSHOT_GET_IMAGE_SIZE _IOR(SNAPSHOT_IOC_MAGIC, 14, __kernel_loff_t)
-#define SNAPSHOT_PLATFORM_SUPPORT _IO(SNAPSHOT_IOC_MAGIC, 15)
-#define SNAPSHOT_POWER_OFF _IO(SNAPSHOT_IOC_MAGIC, 16)
-#define SNAPSHOT_CREATE_IMAGE _IOW(SNAPSHOT_IOC_MAGIC, 17, int)
-#define SNAPSHOT_PREF_IMAGE_SIZE _IO(SNAPSHOT_IOC_MAGIC, 18)
-#define SNAPSHOT_AVAIL_SWAP_SIZE _IOR(SNAPSHOT_IOC_MAGIC, 19, __kernel_loff_t)
-#define SNAPSHOT_ALLOC_SWAP_PAGE _IOR(SNAPSHOT_IOC_MAGIC, 20, __kernel_loff_t)
-#define SNAPSHOT_IOC_MAXNR 20
-
-#endif /* _LINUX_SUSPEND_IOCTLS_H */
diff --git a/ANDROID_3.4.5/include/linux/svga.h b/ANDROID_3.4.5/include/linux/svga.h
deleted file mode 100644
index bfa68e83..00000000
--- a/ANDROID_3.4.5/include/linux/svga.h
+++ /dev/null
@@ -1,124 +0,0 @@
-#ifndef _LINUX_SVGA_H
-#define _LINUX_SVGA_H
-
-#include <linux/pci.h>
-#include <video/vga.h>
-
-/* Terminator for register set */
-
-#define VGA_REGSET_END_VAL 0xFF
-#define VGA_REGSET_END {VGA_REGSET_END_VAL, 0, 0}
-
-struct vga_regset {
- u8 regnum;
- u8 lowbit;
- u8 highbit;
-};
-
-/* ------------------------------------------------------------------------- */
-
-#define SVGA_FORMAT_END_VAL 0xFFFF
-#define SVGA_FORMAT_END {SVGA_FORMAT_END_VAL, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, 0, 0, 0, 0, 0, 0}
-
-struct svga_fb_format {
- /* var part */
- u32 bits_per_pixel;
- struct fb_bitfield red;
- struct fb_bitfield green;
- struct fb_bitfield blue;
- struct fb_bitfield transp;
- u32 nonstd;
- /* fix part */
- u32 type;
- u32 type_aux;
- u32 visual;
- u32 xpanstep;
- u32 xresstep;
-};
-
-struct svga_timing_regs {
- const struct vga_regset *h_total_regs;
- const struct vga_regset *h_display_regs;
- const struct vga_regset *h_blank_start_regs;
- const struct vga_regset *h_blank_end_regs;
- const struct vga_regset *h_sync_start_regs;
- const struct vga_regset *h_sync_end_regs;
-
- const struct vga_regset *v_total_regs;
- const struct vga_regset *v_display_regs;
- const struct vga_regset *v_blank_start_regs;
- const struct vga_regset *v_blank_end_regs;
- const struct vga_regset *v_sync_start_regs;
- const struct vga_regset *v_sync_end_regs;
-};
-
-struct svga_pll {
- u16 m_min;
- u16 m_max;
- u16 n_min;
- u16 n_max;
- u16 r_min;
- u16 r_max; /* r_max < 32 */
- u32 f_vco_min;
- u32 f_vco_max;
- u32 f_base;
-};
-
-
-/* Write a value to the attribute register */
-
-static inline void svga_wattr(void __iomem *regbase, u8 index, u8 data)
-{
- vga_r(regbase, VGA_IS1_RC);
- vga_w(regbase, VGA_ATT_IW, index);
- vga_w(regbase, VGA_ATT_W, data);
-}
-
-/* Write a value to a sequence register with a mask */
-
-static inline void svga_wseq_mask(void __iomem *regbase, u8 index, u8 data, u8 mask)
-{
- vga_wseq(regbase, index, (data & mask) | (vga_rseq(regbase, index) & ~mask));
-}
-
-/* Write a value to a CRT register with a mask */
-
-static inline void svga_wcrt_mask(void __iomem *regbase, u8 index, u8 data, u8 mask)
-{
- vga_wcrt(regbase, index, (data & mask) | (vga_rcrt(regbase, index) & ~mask));
-}
-
-static inline int svga_primary_device(struct pci_dev *dev)
-{
- u16 flags;
- pci_read_config_word(dev, PCI_COMMAND, &flags);
- return (flags & PCI_COMMAND_IO);
-}
-
-
-void svga_wcrt_multi(void __iomem *regbase, const struct vga_regset *regset, u32 value);
-void svga_wseq_multi(void __iomem *regbase, const struct vga_regset *regset, u32 value);
-
-void svga_set_default_gfx_regs(void __iomem *regbase);
-void svga_set_default_atc_regs(void __iomem *regbase);
-void svga_set_default_seq_regs(void __iomem *regbase);
-void svga_set_default_crt_regs(void __iomem *regbase);
-void svga_set_textmode_vga_regs(void __iomem *regbase);
-
-void svga_settile(struct fb_info *info, struct fb_tilemap *map);
-void svga_tilecopy(struct fb_info *info, struct fb_tilearea *area);
-void svga_tilefill(struct fb_info *info, struct fb_tilerect *rect);
-void svga_tileblit(struct fb_info *info, struct fb_tileblit *blit);
-void svga_tilecursor(void __iomem *regbase, struct fb_info *info, struct fb_tilecursor *cursor);
-int svga_get_tilemax(struct fb_info *info);
-void svga_get_caps(struct fb_info *info, struct fb_blit_caps *caps,
- struct fb_var_screeninfo *var);
-
-int svga_compute_pll(const struct svga_pll *pll, u32 f_wanted, u16 *m, u16 *n, u16 *r, int node);
-int svga_check_timings(const struct svga_timing_regs *tm, struct fb_var_screeninfo *var, int node);
-void svga_set_timings(void __iomem *regbase, const struct svga_timing_regs *tm, struct fb_var_screeninfo *var, u32 hmul, u32 hdiv, u32 vmul, u32 vdiv, u32 hborder, int node);
-
-int svga_match_format(const struct svga_fb_format *frm, struct fb_var_screeninfo *var, struct fb_fix_screeninfo *fix);
-
-#endif /* _LINUX_SVGA_H */
-
diff --git a/ANDROID_3.4.5/include/linux/sw_sync.h b/ANDROID_3.4.5/include/linux/sw_sync.h
deleted file mode 100644
index bd6f2089..00000000
--- a/ANDROID_3.4.5/include/linux/sw_sync.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * include/linux/sw_sync.h
- *
- * Copyright (C) 2012 Google, Inc.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#ifndef _LINUX_SW_SYNC_H
-#define _LINUX_SW_SYNC_H
-
-#include <linux/types.h>
-
-#ifdef __KERNEL__
-
-#include <linux/sync.h>
-
-struct sw_sync_timeline {
- struct sync_timeline obj;
-
- u32 value;
-};
-
-struct sw_sync_pt {
- struct sync_pt pt;
-
- u32 value;
-};
-
-struct sw_sync_timeline *sw_sync_timeline_create(const char *name);
-void sw_sync_timeline_inc(struct sw_sync_timeline *obj, u32 inc);
-
-struct sync_pt *sw_sync_pt_create(struct sw_sync_timeline *obj, u32 value);
-
-#endif /* __KERNEL __ */
-
-struct sw_sync_create_fence_data {
- __u32 value;
- char name[32];
- __s32 fence; /* fd of new fence */
-};
-
-#define SW_SYNC_IOC_MAGIC 'W'
-
-#define SW_SYNC_IOC_CREATE_FENCE _IOWR(SW_SYNC_IOC_MAGIC, 0,\
- struct sw_sync_create_fence_data)
-#define SW_SYNC_IOC_INC _IOW(SW_SYNC_IOC_MAGIC, 1, __u32)
-
-
-#endif /* _LINUX_SW_SYNC_H */
diff --git a/ANDROID_3.4.5/include/linux/swab.h b/ANDROID_3.4.5/include/linux/swab.h
deleted file mode 100644
index ea0c02fd..00000000
--- a/ANDROID_3.4.5/include/linux/swab.h
+++ /dev/null
@@ -1,299 +0,0 @@
-#ifndef _LINUX_SWAB_H
-#define _LINUX_SWAB_H
-
-#include <linux/types.h>
-#include <linux/compiler.h>
-#include <asm/swab.h>
-
-/*
- * casts are necessary for constants, because we never know how for sure
- * how U/UL/ULL map to __u16, __u32, __u64. At least not in a portable way.
- */
-#define ___constant_swab16(x) ((__u16)( \
- (((__u16)(x) & (__u16)0x00ffU) << 8) | \
- (((__u16)(x) & (__u16)0xff00U) >> 8)))
-
-#define ___constant_swab32(x) ((__u32)( \
- (((__u32)(x) & (__u32)0x000000ffUL) << 24) | \
- (((__u32)(x) & (__u32)0x0000ff00UL) << 8) | \
- (((__u32)(x) & (__u32)0x00ff0000UL) >> 8) | \
- (((__u32)(x) & (__u32)0xff000000UL) >> 24)))
-
-#define ___constant_swab64(x) ((__u64)( \
- (((__u64)(x) & (__u64)0x00000000000000ffULL) << 56) | \
- (((__u64)(x) & (__u64)0x000000000000ff00ULL) << 40) | \
- (((__u64)(x) & (__u64)0x0000000000ff0000ULL) << 24) | \
- (((__u64)(x) & (__u64)0x00000000ff000000ULL) << 8) | \
- (((__u64)(x) & (__u64)0x000000ff00000000ULL) >> 8) | \
- (((__u64)(x) & (__u64)0x0000ff0000000000ULL) >> 24) | \
- (((__u64)(x) & (__u64)0x00ff000000000000ULL) >> 40) | \
- (((__u64)(x) & (__u64)0xff00000000000000ULL) >> 56)))
-
-#define ___constant_swahw32(x) ((__u32)( \
- (((__u32)(x) & (__u32)0x0000ffffUL) << 16) | \
- (((__u32)(x) & (__u32)0xffff0000UL) >> 16)))
-
-#define ___constant_swahb32(x) ((__u32)( \
- (((__u32)(x) & (__u32)0x00ff00ffUL) << 8) | \
- (((__u32)(x) & (__u32)0xff00ff00UL) >> 8)))
-
-/*
- * Implement the following as inlines, but define the interface using
- * macros to allow constant folding when possible:
- * ___swab16, ___swab32, ___swab64, ___swahw32, ___swahb32
- */
-
-static inline __attribute_const__ __u16 __fswab16(__u16 val)
-{
-#ifdef __arch_swab16
- return __arch_swab16(val);
-#else
- return ___constant_swab16(val);
-#endif
-}
-
-static inline __attribute_const__ __u32 __fswab32(__u32 val)
-{
-#ifdef __arch_swab32
- return __arch_swab32(val);
-#else
- return ___constant_swab32(val);
-#endif
-}
-
-static inline __attribute_const__ __u64 __fswab64(__u64 val)
-{
-#ifdef __arch_swab64
- return __arch_swab64(val);
-#elif defined(__SWAB_64_THRU_32__)
- __u32 h = val >> 32;
- __u32 l = val & ((1ULL << 32) - 1);
- return (((__u64)__fswab32(l)) << 32) | ((__u64)(__fswab32(h)));
-#else
- return ___constant_swab64(val);
-#endif
-}
-
-static inline __attribute_const__ __u32 __fswahw32(__u32 val)
-{
-#ifdef __arch_swahw32
- return __arch_swahw32(val);
-#else
- return ___constant_swahw32(val);
-#endif
-}
-
-static inline __attribute_const__ __u32 __fswahb32(__u32 val)
-{
-#ifdef __arch_swahb32
- return __arch_swahb32(val);
-#else
- return ___constant_swahb32(val);
-#endif
-}
-
-/**
- * __swab16 - return a byteswapped 16-bit value
- * @x: value to byteswap
- */
-#define __swab16(x) \
- (__builtin_constant_p((__u16)(x)) ? \
- ___constant_swab16(x) : \
- __fswab16(x))
-
-/**
- * __swab32 - return a byteswapped 32-bit value
- * @x: value to byteswap
- */
-#define __swab32(x) \
- (__builtin_constant_p((__u32)(x)) ? \
- ___constant_swab32(x) : \
- __fswab32(x))
-
-/**
- * __swab64 - return a byteswapped 64-bit value
- * @x: value to byteswap
- */
-#define __swab64(x) \
- (__builtin_constant_p((__u64)(x)) ? \
- ___constant_swab64(x) : \
- __fswab64(x))
-
-/**
- * __swahw32 - return a word-swapped 32-bit value
- * @x: value to wordswap
- *
- * __swahw32(0x12340000) is 0x00001234
- */
-#define __swahw32(x) \
- (__builtin_constant_p((__u32)(x)) ? \
- ___constant_swahw32(x) : \
- __fswahw32(x))
-
-/**
- * __swahb32 - return a high and low byte-swapped 32-bit value
- * @x: value to byteswap
- *
- * __swahb32(0x12345678) is 0x34127856
- */
-#define __swahb32(x) \
- (__builtin_constant_p((__u32)(x)) ? \
- ___constant_swahb32(x) : \
- __fswahb32(x))
-
-/**
- * __swab16p - return a byteswapped 16-bit value from a pointer
- * @p: pointer to a naturally-aligned 16-bit value
- */
-static inline __u16 __swab16p(const __u16 *p)
-{
-#ifdef __arch_swab16p
- return __arch_swab16p(p);
-#else
- return __swab16(*p);
-#endif
-}
-
-/**
- * __swab32p - return a byteswapped 32-bit value from a pointer
- * @p: pointer to a naturally-aligned 32-bit value
- */
-static inline __u32 __swab32p(const __u32 *p)
-{
-#ifdef __arch_swab32p
- return __arch_swab32p(p);
-#else
- return __swab32(*p);
-#endif
-}
-
-/**
- * __swab64p - return a byteswapped 64-bit value from a pointer
- * @p: pointer to a naturally-aligned 64-bit value
- */
-static inline __u64 __swab64p(const __u64 *p)
-{
-#ifdef __arch_swab64p
- return __arch_swab64p(p);
-#else
- return __swab64(*p);
-#endif
-}
-
-/**
- * __swahw32p - return a wordswapped 32-bit value from a pointer
- * @p: pointer to a naturally-aligned 32-bit value
- *
- * See __swahw32() for details of wordswapping.
- */
-static inline __u32 __swahw32p(const __u32 *p)
-{
-#ifdef __arch_swahw32p
- return __arch_swahw32p(p);
-#else
- return __swahw32(*p);
-#endif
-}
-
-/**
- * __swahb32p - return a high and low byteswapped 32-bit value from a pointer
- * @p: pointer to a naturally-aligned 32-bit value
- *
- * See __swahb32() for details of high/low byteswapping.
- */
-static inline __u32 __swahb32p(const __u32 *p)
-{
-#ifdef __arch_swahb32p
- return __arch_swahb32p(p);
-#else
- return __swahb32(*p);
-#endif
-}
-
-/**
- * __swab16s - byteswap a 16-bit value in-place
- * @p: pointer to a naturally-aligned 16-bit value
- */
-static inline void __swab16s(__u16 *p)
-{
-#ifdef __arch_swab16s
- __arch_swab16s(p);
-#else
- *p = __swab16p(p);
-#endif
-}
-/**
- * __swab32s - byteswap a 32-bit value in-place
- * @p: pointer to a naturally-aligned 32-bit value
- */
-static inline void __swab32s(__u32 *p)
-{
-#ifdef __arch_swab32s
- __arch_swab32s(p);
-#else
- *p = __swab32p(p);
-#endif
-}
-
-/**
- * __swab64s - byteswap a 64-bit value in-place
- * @p: pointer to a naturally-aligned 64-bit value
- */
-static inline void __swab64s(__u64 *p)
-{
-#ifdef __arch_swab64s
- __arch_swab64s(p);
-#else
- *p = __swab64p(p);
-#endif
-}
-
-/**
- * __swahw32s - wordswap a 32-bit value in-place
- * @p: pointer to a naturally-aligned 32-bit value
- *
- * See __swahw32() for details of wordswapping
- */
-static inline void __swahw32s(__u32 *p)
-{
-#ifdef __arch_swahw32s
- __arch_swahw32s(p);
-#else
- *p = __swahw32p(p);
-#endif
-}
-
-/**
- * __swahb32s - high and low byteswap a 32-bit value in-place
- * @p: pointer to a naturally-aligned 32-bit value
- *
- * See __swahb32() for details of high and low byte swapping
- */
-static inline void __swahb32s(__u32 *p)
-{
-#ifdef __arch_swahb32s
- __arch_swahb32s(p);
-#else
- *p = __swahb32p(p);
-#endif
-}
-
-#ifdef __KERNEL__
-# define swab16 __swab16
-# define swab32 __swab32
-# define swab64 __swab64
-# define swahw32 __swahw32
-# define swahb32 __swahb32
-# define swab16p __swab16p
-# define swab32p __swab32p
-# define swab64p __swab64p
-# define swahw32p __swahw32p
-# define swahb32p __swahb32p
-# define swab16s __swab16s
-# define swab32s __swab32s
-# define swab64s __swab64s
-# define swahw32s __swahw32s
-# define swahb32s __swahb32s
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_SWAB_H */
diff --git a/ANDROID_3.4.5/include/linux/swap.h b/ANDROID_3.4.5/include/linux/swap.h
deleted file mode 100644
index b1fd5c79..00000000
--- a/ANDROID_3.4.5/include/linux/swap.h
+++ /dev/null
@@ -1,512 +0,0 @@
-#ifndef _LINUX_SWAP_H
-#define _LINUX_SWAP_H
-
-#include <linux/spinlock.h>
-#include <linux/linkage.h>
-#include <linux/mmzone.h>
-#include <linux/list.h>
-#include <linux/memcontrol.h>
-#include <linux/sched.h>
-#include <linux/node.h>
-
-#include <linux/atomic.h>
-#include <asm/page.h>
-
-struct notifier_block;
-
-struct bio;
-
-#define SWAP_FLAG_PREFER 0x8000 /* set if swap priority specified */
-#define SWAP_FLAG_PRIO_MASK 0x7fff
-#define SWAP_FLAG_PRIO_SHIFT 0
-#define SWAP_FLAG_DISCARD 0x10000 /* discard swap cluster after use */
-
-#define SWAP_FLAGS_VALID (SWAP_FLAG_PRIO_MASK | SWAP_FLAG_PREFER | \
- SWAP_FLAG_DISCARD)
-
-static inline int current_is_kswapd(void)
-{
- return current->flags & PF_KSWAPD;
-}
-
-/*
- * MAX_SWAPFILES defines the maximum number of swaptypes: things which can
- * be swapped to. The swap type and the offset into that swap type are
- * encoded into pte's and into pgoff_t's in the swapcache. Using five bits
- * for the type means that the maximum number of swapcache pages is 27 bits
- * on 32-bit-pgoff_t architectures. And that assumes that the architecture packs
- * the type/offset into the pte as 5/27 as well.
- */
-#define MAX_SWAPFILES_SHIFT 5
-
-/*
- * Use some of the swap files numbers for other purposes. This
- * is a convenient way to hook into the VM to trigger special
- * actions on faults.
- */
-
-/*
- * NUMA node memory migration support
- */
-#ifdef CONFIG_MIGRATION
-#define SWP_MIGRATION_NUM 2
-#define SWP_MIGRATION_READ (MAX_SWAPFILES + SWP_HWPOISON_NUM)
-#define SWP_MIGRATION_WRITE (MAX_SWAPFILES + SWP_HWPOISON_NUM + 1)
-#else
-#define SWP_MIGRATION_NUM 0
-#endif
-
-/*
- * Handling of hardware poisoned pages with memory corruption.
- */
-#ifdef CONFIG_MEMORY_FAILURE
-#define SWP_HWPOISON_NUM 1
-#define SWP_HWPOISON MAX_SWAPFILES
-#else
-#define SWP_HWPOISON_NUM 0
-#endif
-
-#define MAX_SWAPFILES \
- ((1 << MAX_SWAPFILES_SHIFT) - SWP_MIGRATION_NUM - SWP_HWPOISON_NUM)
-
-/*
- * Magic header for a swap area. The first part of the union is
- * what the swap magic looks like for the old (limited to 128MB)
- * swap area format, the second part of the union adds - in the
- * old reserved area - some extra information. Note that the first
- * kilobyte is reserved for boot loader or disk label stuff...
- *
- * Having the magic at the end of the PAGE_SIZE makes detecting swap
- * areas somewhat tricky on machines that support multiple page sizes.
- * For 2.5 we'll probably want to move the magic to just beyond the
- * bootbits...
- */
-union swap_header {
- struct {
- char reserved[PAGE_SIZE - 10];
- char magic[10]; /* SWAP-SPACE or SWAPSPACE2 */
- } magic;
- struct {
- char bootbits[1024]; /* Space for disklabel etc. */
- __u32 version;
- __u32 last_page;
- __u32 nr_badpages;
- unsigned char sws_uuid[16];
- unsigned char sws_volume[16];
- __u32 padding[117];
- __u32 badpages[1];
- } info;
-};
-
- /* A swap entry has to fit into a "unsigned long", as
- * the entry is hidden in the "index" field of the
- * swapper address space.
- */
-typedef struct {
- unsigned long val;
-} swp_entry_t;
-
-/*
- * current->reclaim_state points to one of these when a task is running
- * memory reclaim
- */
-struct reclaim_state {
- unsigned long reclaimed_slab;
-};
-
-#ifdef __KERNEL__
-
-struct address_space;
-struct sysinfo;
-struct writeback_control;
-struct zone;
-
-/*
- * A swap extent maps a range of a swapfile's PAGE_SIZE pages onto a range of
- * disk blocks. A list of swap extents maps the entire swapfile. (Where the
- * term `swapfile' refers to either a blockdevice or an IS_REG file. Apart
- * from setup, they're handled identically.
- *
- * We always assume that blocks are of size PAGE_SIZE.
- */
-struct swap_extent {
- struct list_head list;
- pgoff_t start_page;
- pgoff_t nr_pages;
- sector_t start_block;
-};
-
-/*
- * Max bad pages in the new format..
- */
-#define __swapoffset(x) ((unsigned long)&((union swap_header *)0)->x)
-#define MAX_SWAP_BADPAGES \
- ((__swapoffset(magic.magic) - __swapoffset(info.badpages)) / sizeof(int))
-
-enum {
- SWP_USED = (1 << 0), /* is slot in swap_info[] used? */
- SWP_WRITEOK = (1 << 1), /* ok to write to this swap? */
- SWP_DISCARDABLE = (1 << 2), /* swapon+blkdev support discard */
- SWP_DISCARDING = (1 << 3), /* now discarding a free cluster */
- SWP_SOLIDSTATE = (1 << 4), /* blkdev seeks are cheap */
- SWP_CONTINUED = (1 << 5), /* swap_map has count continuation */
- SWP_BLKDEV = (1 << 6), /* its a block device */
- /* add others here before... */
- SWP_SCANNING = (1 << 8), /* refcount in scan_swap_map */
-};
-
-#define SWAP_CLUSTER_MAX 32
-#define COMPACT_CLUSTER_MAX SWAP_CLUSTER_MAX
-
-/*
- * Ratio between the present memory in the zone and the "gap" that
- * we're allowing kswapd to shrink in addition to the per-zone high
- * wmark, even for zones that already have the high wmark satisfied,
- * in order to provide better per-zone lru behavior. We are ok to
- * spend not more than 1% of the memory for this zone balancing "gap".
- */
-#define KSWAPD_ZONE_BALANCE_GAP_RATIO 100
-
-#define SWAP_MAP_MAX 0x3e /* Max duplication count, in first swap_map */
-#define SWAP_MAP_BAD 0x3f /* Note pageblock is bad, in first swap_map */
-#define SWAP_HAS_CACHE 0x40 /* Flag page is cached, in first swap_map */
-#define SWAP_CONT_MAX 0x7f /* Max count, in each swap_map continuation */
-#define COUNT_CONTINUED 0x80 /* See swap_map continuation for full count */
-#define SWAP_MAP_SHMEM 0xbf /* Owned by shmem/tmpfs, in first swap_map */
-
-/*
- * The in-memory structure used to track swap areas.
- */
-struct swap_info_struct {
- unsigned long flags; /* SWP_USED etc: see above */
- signed short prio; /* swap priority of this type */
- signed char type; /* strange name for an index */
- signed char next; /* next type on the swap list */
- unsigned int max; /* extent of the swap_map */
- unsigned char *swap_map; /* vmalloc'ed array of usage counts */
- unsigned int lowest_bit; /* index of first free in swap_map */
- unsigned int highest_bit; /* index of last free in swap_map */
- unsigned int pages; /* total of usable pages of swap */
- unsigned int inuse_pages; /* number of those currently in use */
- unsigned int cluster_next; /* likely index for next allocation */
- unsigned int cluster_nr; /* countdown to next cluster search */
- unsigned int lowest_alloc; /* while preparing discard cluster */
- unsigned int highest_alloc; /* while preparing discard cluster */
- struct swap_extent *curr_swap_extent;
- struct swap_extent first_swap_extent;
- struct block_device *bdev; /* swap device or bdev of swap file */
- struct file *swap_file; /* seldom referenced */
- unsigned int old_block_size; /* seldom referenced */
-};
-
-struct swap_list_t {
- int head; /* head of priority-ordered swapfile list */
- int next; /* swapfile to be used next */
-};
-
-/* Swap 50% full? Release swapcache more aggressively.. */
-#define vm_swap_full() (nr_swap_pages*2 < total_swap_pages)
-
-/* linux/mm/page_alloc.c */
-extern unsigned long totalram_pages;
-extern unsigned long totalreserve_pages;
-extern unsigned long dirty_balance_reserve;
-extern unsigned int nr_free_buffer_pages(void);
-extern unsigned int nr_free_pagecache_pages(void);
-
-/* Definition of global_page_state not available yet */
-#define nr_free_pages() global_page_state(NR_FREE_PAGES)
-
-
-/* linux/mm/swap.c */
-extern void __lru_cache_add(struct page *, enum lru_list lru);
-extern void lru_cache_add_lru(struct page *, enum lru_list lru);
-extern void lru_add_page_tail(struct zone* zone,
- struct page *page, struct page *page_tail);
-extern void activate_page(struct page *);
-extern void mark_page_accessed(struct page *);
-extern void lru_add_drain(void);
-extern void lru_add_drain_cpu(int cpu);
-extern int lru_add_drain_all(void);
-extern void rotate_reclaimable_page(struct page *page);
-extern void deactivate_page(struct page *page);
-extern void swap_setup(void);
-
-extern void add_page_to_unevictable_list(struct page *page);
-
-/**
- * lru_cache_add: add a page to the page lists
- * @page: the page to add
- */
-static inline void lru_cache_add_anon(struct page *page)
-{
- __lru_cache_add(page, LRU_INACTIVE_ANON);
-}
-
-static inline void lru_cache_add_file(struct page *page)
-{
- __lru_cache_add(page, LRU_INACTIVE_FILE);
-}
-
-/* linux/mm/vmscan.c */
-extern unsigned long try_to_free_pages(struct zonelist *zonelist, int order,
- gfp_t gfp_mask, nodemask_t *mask);
-extern int __isolate_lru_page(struct page *page, isolate_mode_t mode, int file);
-extern unsigned long try_to_free_mem_cgroup_pages(struct mem_cgroup *mem,
- gfp_t gfp_mask, bool noswap);
-extern unsigned long mem_cgroup_shrink_node_zone(struct mem_cgroup *mem,
- gfp_t gfp_mask, bool noswap,
- struct zone *zone,
- unsigned long *nr_scanned);
-extern unsigned long shrink_all_memory(unsigned long nr_pages);
-extern int vm_swappiness;
-extern int remove_mapping(struct address_space *mapping, struct page *page);
-extern long vm_total_pages;
-
-#ifdef CONFIG_NUMA
-extern int zone_reclaim_mode;
-extern int sysctl_min_unmapped_ratio;
-extern int sysctl_min_slab_ratio;
-extern int zone_reclaim(struct zone *, gfp_t, unsigned int);
-#else
-#define zone_reclaim_mode 0
-static inline int zone_reclaim(struct zone *z, gfp_t mask, unsigned int order)
-{
- return 0;
-}
-#endif
-
-extern int page_evictable(struct page *page, struct vm_area_struct *vma);
-extern void check_move_unevictable_pages(struct page **, int nr_pages);
-
-extern unsigned long scan_unevictable_pages;
-extern int scan_unevictable_handler(struct ctl_table *, int,
- void __user *, size_t *, loff_t *);
-#ifdef CONFIG_NUMA
-extern int scan_unevictable_register_node(struct node *node);
-extern void scan_unevictable_unregister_node(struct node *node);
-#else
-static inline int scan_unevictable_register_node(struct node *node)
-{
- return 0;
-}
-static inline void scan_unevictable_unregister_node(struct node *node)
-{
-}
-#endif
-
-extern int kswapd_run(int nid);
-extern void kswapd_stop(int nid);
-#ifdef CONFIG_CGROUP_MEM_RES_CTLR
-extern int mem_cgroup_swappiness(struct mem_cgroup *mem);
-#else
-static inline int mem_cgroup_swappiness(struct mem_cgroup *mem)
-{
- return vm_swappiness;
-}
-#endif
-#ifdef CONFIG_CGROUP_MEM_RES_CTLR_SWAP
-extern void mem_cgroup_uncharge_swap(swp_entry_t ent);
-#else
-static inline void mem_cgroup_uncharge_swap(swp_entry_t ent)
-{
-}
-#endif
-#ifdef CONFIG_SWAP
-/* linux/mm/page_io.c */
-extern int swap_readpage(struct page *);
-extern int swap_writepage(struct page *page, struct writeback_control *wbc);
-extern void end_swap_bio_read(struct bio *bio, int err);
-
-/* linux/mm/swap_state.c */
-extern struct address_space swapper_space;
-#define total_swapcache_pages swapper_space.nrpages
-extern void show_swap_cache_info(void);
-extern int add_to_swap(struct page *);
-extern int add_to_swap_cache(struct page *, swp_entry_t, gfp_t);
-extern void __delete_from_swap_cache(struct page *);
-extern void delete_from_swap_cache(struct page *);
-extern void free_page_and_swap_cache(struct page *);
-extern void free_pages_and_swap_cache(struct page **, int);
-extern struct page *lookup_swap_cache(swp_entry_t);
-extern struct page *read_swap_cache_async(swp_entry_t, gfp_t,
- struct vm_area_struct *vma, unsigned long addr);
-extern struct page *swapin_readahead(swp_entry_t, gfp_t,
- struct vm_area_struct *vma, unsigned long addr);
-
-/* linux/mm/swapfile.c */
-extern long nr_swap_pages;
-extern long total_swap_pages;
-extern void si_swapinfo(struct sysinfo *);
-extern swp_entry_t get_swap_page(void);
-extern swp_entry_t get_swap_page_of_type(int);
-extern int add_swap_count_continuation(swp_entry_t, gfp_t);
-extern void swap_shmem_alloc(swp_entry_t);
-extern int swap_duplicate(swp_entry_t);
-extern int swapcache_prepare(swp_entry_t);
-extern void swap_free(swp_entry_t);
-extern void swapcache_free(swp_entry_t, struct page *page);
-extern int free_swap_and_cache(swp_entry_t);
-extern int swap_type_of(dev_t, sector_t, struct block_device **);
-extern unsigned int count_swap_pages(int, int);
-extern sector_t map_swap_page(struct page *, struct block_device **);
-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;
-
-/* linux/mm/thrash.c */
-extern struct mm_struct *swap_token_mm;
-extern void grab_swap_token(struct mm_struct *);
-extern void __put_swap_token(struct mm_struct *);
-extern void disable_swap_token(struct mem_cgroup *memcg);
-
-static inline int has_swap_token(struct mm_struct *mm)
-{
- return (mm == swap_token_mm);
-}
-
-static inline void put_swap_token(struct mm_struct *mm)
-{
- if (has_swap_token(mm))
- __put_swap_token(mm);
-}
-
-#ifdef CONFIG_CGROUP_MEM_RES_CTLR
-extern void
-mem_cgroup_uncharge_swapcache(struct page *page, swp_entry_t ent, bool swapout);
-extern int mem_cgroup_count_swap_user(swp_entry_t ent, struct page **pagep);
-#else
-static inline void
-mem_cgroup_uncharge_swapcache(struct page *page, swp_entry_t ent, bool swapout)
-{
-}
-#endif
-
-#else /* CONFIG_SWAP */
-
-#define nr_swap_pages 0L
-#define total_swap_pages 0L
-#define total_swapcache_pages 0UL
-
-#define si_swapinfo(val) \
- do { (val)->freeswap = (val)->totalswap = 0; } while (0)
-/* only sparc can not include linux/pagemap.h in this file
- * so leave page_cache_release and release_pages undeclared... */
-#define free_page_and_swap_cache(page) \
- page_cache_release(page)
-#define free_pages_and_swap_cache(pages, nr) \
- release_pages((pages), (nr), 0);
-
-static inline void show_swap_cache_info(void)
-{
-}
-
-#define free_swap_and_cache(swp) is_migration_entry(swp)
-#define swapcache_prepare(swp) is_migration_entry(swp)
-
-static inline int add_swap_count_continuation(swp_entry_t swp, gfp_t gfp_mask)
-{
- return 0;
-}
-
-static inline void swap_shmem_alloc(swp_entry_t swp)
-{
-}
-
-static inline int swap_duplicate(swp_entry_t swp)
-{
- return 0;
-}
-
-static inline void swap_free(swp_entry_t swp)
-{
-}
-
-static inline void swapcache_free(swp_entry_t swp, struct page *page)
-{
-}
-
-static inline struct page *swapin_readahead(swp_entry_t swp, gfp_t gfp_mask,
- struct vm_area_struct *vma, unsigned long addr)
-{
- return NULL;
-}
-
-static inline int swap_writepage(struct page *p, struct writeback_control *wbc)
-{
- return 0;
-}
-
-static inline struct page *lookup_swap_cache(swp_entry_t swp)
-{
- return NULL;
-}
-
-static inline int add_to_swap(struct page *page)
-{
- return 0;
-}
-
-static inline int add_to_swap_cache(struct page *page, swp_entry_t entry,
- gfp_t gfp_mask)
-{
- return -1;
-}
-
-static inline void __delete_from_swap_cache(struct page *page)
-{
-}
-
-static inline void delete_from_swap_cache(struct page *page)
-{
-}
-
-#define reuse_swap_page(page) (page_mapcount(page) == 1)
-
-static inline int try_to_free_swap(struct page *page)
-{
- return 0;
-}
-
-static inline swp_entry_t get_swap_page(void)
-{
- swp_entry_t entry;
- entry.val = 0;
- return entry;
-}
-
-/* linux/mm/thrash.c */
-static inline void put_swap_token(struct mm_struct *mm)
-{
-}
-
-static inline void grab_swap_token(struct mm_struct *mm)
-{
-}
-
-static inline int has_swap_token(struct mm_struct *mm)
-{
- return 0;
-}
-
-static inline void disable_swap_token(struct mem_cgroup *memcg)
-{
-}
-
-static inline void
-mem_cgroup_uncharge_swapcache(struct page *page, swp_entry_t ent)
-{
-}
-
-#ifdef CONFIG_CGROUP_MEM_RES_CTLR
-static inline int
-mem_cgroup_count_swap_user(swp_entry_t ent, struct page **pagep)
-{
- return 0;
-}
-#endif
-
-#endif /* CONFIG_SWAP */
-#endif /* __KERNEL__*/
-#endif /* _LINUX_SWAP_H */
diff --git a/ANDROID_3.4.5/include/linux/swapops.h b/ANDROID_3.4.5/include/linux/swapops.h
deleted file mode 100644
index 47ead515..00000000
--- a/ANDROID_3.4.5/include/linux/swapops.h
+++ /dev/null
@@ -1,197 +0,0 @@
-#ifndef _LINUX_SWAPOPS_H
-#define _LINUX_SWAPOPS_H
-
-#include <linux/radix-tree.h>
-#include <linux/bug.h>
-
-/*
- * swapcache pages are stored in the swapper_space radix tree. We want to
- * get good packing density in that tree, so the index should be dense in
- * the low-order bits.
- *
- * We arrange the `type' and `offset' fields so that `type' is at the seven
- * high-order bits of the swp_entry_t and `offset' is right-aligned in the
- * remaining bits. Although `type' itself needs only five bits, we allow for
- * shmem/tmpfs to shift it all up a further two bits: see swp_to_radix_entry().
- *
- * swp_entry_t's are *never* stored anywhere in their arch-dependent format.
- */
-#define SWP_TYPE_SHIFT(e) ((sizeof(e.val) * 8) - \
- (MAX_SWAPFILES_SHIFT + RADIX_TREE_EXCEPTIONAL_SHIFT))
-#define SWP_OFFSET_MASK(e) ((1UL << SWP_TYPE_SHIFT(e)) - 1)
-
-/*
- * Store a type+offset into a swp_entry_t in an arch-independent format
- */
-static inline swp_entry_t swp_entry(unsigned long type, pgoff_t offset)
-{
- swp_entry_t ret;
-
- ret.val = (type << SWP_TYPE_SHIFT(ret)) |
- (offset & SWP_OFFSET_MASK(ret));
- return ret;
-}
-
-/*
- * Extract the `type' field from a swp_entry_t. The swp_entry_t is in
- * arch-independent format
- */
-static inline unsigned swp_type(swp_entry_t entry)
-{
- return (entry.val >> SWP_TYPE_SHIFT(entry));
-}
-
-/*
- * Extract the `offset' field from a swp_entry_t. The swp_entry_t is in
- * arch-independent format
- */
-static inline pgoff_t swp_offset(swp_entry_t entry)
-{
- return entry.val & SWP_OFFSET_MASK(entry);
-}
-
-#ifdef CONFIG_MMU
-/* check whether a pte points to a swap entry */
-static inline int is_swap_pte(pte_t pte)
-{
- return !pte_none(pte) && !pte_present(pte) && !pte_file(pte);
-}
-#endif
-
-/*
- * Convert the arch-dependent pte representation of a swp_entry_t into an
- * arch-independent swp_entry_t.
- */
-static inline swp_entry_t pte_to_swp_entry(pte_t pte)
-{
- swp_entry_t arch_entry;
-
- BUG_ON(pte_file(pte));
- arch_entry = __pte_to_swp_entry(pte);
- return swp_entry(__swp_type(arch_entry), __swp_offset(arch_entry));
-}
-
-/*
- * Convert the arch-independent representation of a swp_entry_t into the
- * arch-dependent pte representation.
- */
-static inline pte_t swp_entry_to_pte(swp_entry_t entry)
-{
- swp_entry_t arch_entry;
-
- arch_entry = __swp_entry(swp_type(entry), swp_offset(entry));
- BUG_ON(pte_file(__swp_entry_to_pte(arch_entry)));
- return __swp_entry_to_pte(arch_entry);
-}
-
-static inline swp_entry_t radix_to_swp_entry(void *arg)
-{
- swp_entry_t entry;
-
- entry.val = (unsigned long)arg >> RADIX_TREE_EXCEPTIONAL_SHIFT;
- return entry;
-}
-
-static inline void *swp_to_radix_entry(swp_entry_t entry)
-{
- unsigned long value;
-
- value = entry.val << RADIX_TREE_EXCEPTIONAL_SHIFT;
- return (void *)(value | RADIX_TREE_EXCEPTIONAL_ENTRY);
-}
-
-#ifdef CONFIG_MIGRATION
-static inline swp_entry_t make_migration_entry(struct page *page, int write)
-{
- BUG_ON(!PageLocked(page));
- return swp_entry(write ? SWP_MIGRATION_WRITE : SWP_MIGRATION_READ,
- page_to_pfn(page));
-}
-
-static inline int is_migration_entry(swp_entry_t entry)
-{
- return unlikely(swp_type(entry) == SWP_MIGRATION_READ ||
- swp_type(entry) == SWP_MIGRATION_WRITE);
-}
-
-static inline int is_write_migration_entry(swp_entry_t entry)
-{
- return unlikely(swp_type(entry) == SWP_MIGRATION_WRITE);
-}
-
-static inline struct page *migration_entry_to_page(swp_entry_t entry)
-{
- struct page *p = pfn_to_page(swp_offset(entry));
- /*
- * Any use of migration entries may only occur while the
- * corresponding page is locked
- */
- BUG_ON(!PageLocked(p));
- return p;
-}
-
-static inline void make_migration_entry_read(swp_entry_t *entry)
-{
- *entry = swp_entry(SWP_MIGRATION_READ, swp_offset(*entry));
-}
-
-extern void migration_entry_wait(struct mm_struct *mm, pmd_t *pmd,
- unsigned long address);
-#else
-
-#define make_migration_entry(page, write) swp_entry(0, 0)
-static inline int is_migration_entry(swp_entry_t swp)
-{
- return 0;
-}
-#define migration_entry_to_page(swp) NULL
-static inline void make_migration_entry_read(swp_entry_t *entryp) { }
-static inline void migration_entry_wait(struct mm_struct *mm, pmd_t *pmd,
- unsigned long address) { }
-static inline int is_write_migration_entry(swp_entry_t entry)
-{
- return 0;
-}
-
-#endif
-
-#ifdef CONFIG_MEMORY_FAILURE
-/*
- * Support for hardware poisoned pages
- */
-static inline swp_entry_t make_hwpoison_entry(struct page *page)
-{
- BUG_ON(!PageLocked(page));
- return swp_entry(SWP_HWPOISON, page_to_pfn(page));
-}
-
-static inline int is_hwpoison_entry(swp_entry_t entry)
-{
- return swp_type(entry) == SWP_HWPOISON;
-}
-#else
-
-static inline swp_entry_t make_hwpoison_entry(struct page *page)
-{
- return swp_entry(0, 0);
-}
-
-static inline int is_hwpoison_entry(swp_entry_t swp)
-{
- return 0;
-}
-#endif
-
-#if defined(CONFIG_MEMORY_FAILURE) || defined(CONFIG_MIGRATION)
-static inline int non_swap_entry(swp_entry_t entry)
-{
- return swp_type(entry) >= MAX_SWAPFILES;
-}
-#else
-static inline int non_swap_entry(swp_entry_t entry)
-{
- return 0;
-}
-#endif
-
-#endif /* _LINUX_SWAPOPS_H */
diff --git a/ANDROID_3.4.5/include/linux/swiotlb.h b/ANDROID_3.4.5/include/linux/swiotlb.h
deleted file mode 100644
index e872526f..00000000
--- a/ANDROID_3.4.5/include/linux/swiotlb.h
+++ /dev/null
@@ -1,113 +0,0 @@
-#ifndef __LINUX_SWIOTLB_H
-#define __LINUX_SWIOTLB_H
-
-#include <linux/types.h>
-
-struct device;
-struct dma_attrs;
-struct scatterlist;
-
-extern int swiotlb_force;
-
-/*
- * Maximum allowable number of contiguous slabs to map,
- * must be a power of 2. What is the appropriate value ?
- * The complexity of {map,unmap}_single is linearly dependent on this value.
- */
-#define IO_TLB_SEGSIZE 128
-
-/*
- * log of the size of each IO TLB slab. The number of slabs is command line
- * controllable.
- */
-#define IO_TLB_SHIFT 11
-
-extern void swiotlb_init(int verbose);
-extern void swiotlb_init_with_tbl(char *tlb, unsigned long nslabs, int verbose);
-extern unsigned long swiotlb_nr_tbl(void);
-
-/*
- * Enumeration for sync targets
- */
-enum dma_sync_target {
- SYNC_FOR_CPU = 0,
- SYNC_FOR_DEVICE = 1,
-};
-extern void *swiotlb_tbl_map_single(struct device *hwdev, dma_addr_t tbl_dma_addr,
- phys_addr_t phys, size_t size,
- enum dma_data_direction dir);
-
-extern void swiotlb_tbl_unmap_single(struct device *hwdev, char *dma_addr,
- size_t size, enum dma_data_direction dir);
-
-extern void swiotlb_tbl_sync_single(struct device *hwdev, char *dma_addr,
- size_t size, enum dma_data_direction dir,
- enum dma_sync_target target);
-
-/* Accessory functions. */
-extern void swiotlb_bounce(phys_addr_t phys, char *dma_addr, size_t size,
- enum dma_data_direction dir);
-
-extern void
-*swiotlb_alloc_coherent(struct device *hwdev, size_t size,
- dma_addr_t *dma_handle, gfp_t flags);
-
-extern void
-swiotlb_free_coherent(struct device *hwdev, size_t size,
- void *vaddr, dma_addr_t dma_handle);
-
-extern dma_addr_t swiotlb_map_page(struct device *dev, struct page *page,
- unsigned long offset, size_t size,
- enum dma_data_direction dir,
- struct dma_attrs *attrs);
-extern void swiotlb_unmap_page(struct device *hwdev, dma_addr_t dev_addr,
- size_t size, enum dma_data_direction dir,
- struct dma_attrs *attrs);
-
-extern int
-swiotlb_map_sg(struct device *hwdev, struct scatterlist *sg, int nents,
- enum dma_data_direction dir);
-
-extern void
-swiotlb_unmap_sg(struct device *hwdev, struct scatterlist *sg, int nents,
- enum dma_data_direction dir);
-
-extern int
-swiotlb_map_sg_attrs(struct device *hwdev, struct scatterlist *sgl, int nelems,
- enum dma_data_direction dir, struct dma_attrs *attrs);
-
-extern void
-swiotlb_unmap_sg_attrs(struct device *hwdev, struct scatterlist *sgl,
- int nelems, enum dma_data_direction dir,
- struct dma_attrs *attrs);
-
-extern void
-swiotlb_sync_single_for_cpu(struct device *hwdev, dma_addr_t dev_addr,
- size_t size, enum dma_data_direction dir);
-
-extern void
-swiotlb_sync_sg_for_cpu(struct device *hwdev, struct scatterlist *sg,
- int nelems, enum dma_data_direction dir);
-
-extern void
-swiotlb_sync_single_for_device(struct device *hwdev, dma_addr_t dev_addr,
- size_t size, enum dma_data_direction dir);
-
-extern void
-swiotlb_sync_sg_for_device(struct device *hwdev, struct scatterlist *sg,
- int nelems, enum dma_data_direction dir);
-
-extern int
-swiotlb_dma_mapping_error(struct device *hwdev, dma_addr_t dma_addr);
-
-extern int
-swiotlb_dma_supported(struct device *hwdev, u64 mask);
-
-#ifdef CONFIG_SWIOTLB
-extern void __init swiotlb_free(void);
-#else
-static inline void swiotlb_free(void) { }
-#endif
-
-extern void swiotlb_print_info(void);
-#endif /* __LINUX_SWIOTLB_H */
diff --git a/ANDROID_3.4.5/include/linux/switch.h b/ANDROID_3.4.5/include/linux/switch.h
deleted file mode 100644
index 3e4c748e..00000000
--- a/ANDROID_3.4.5/include/linux/switch.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Switch class driver
- *
- * Copyright (C) 2008 Google, Inc.
- * Author: Mike Lockwood <lockwood@android.com>
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
-*/
-
-#ifndef __LINUX_SWITCH_H__
-#define __LINUX_SWITCH_H__
-
-struct switch_dev {
- const char *name;
- struct device *dev;
- int index;
- int state;
-
- ssize_t (*print_name)(struct switch_dev *sdev, char *buf);
- ssize_t (*print_state)(struct switch_dev *sdev, char *buf);
-};
-
-struct gpio_switch_platform_data {
- const char *name;
- unsigned gpio;
-
- /* if NULL, switch_dev.name will be printed */
- const char *name_on;
- const char *name_off;
- /* if NULL, "0" or "1" will be printed */
- const char *state_on;
- const char *state_off;
-};
-
-extern int switch_dev_register(struct switch_dev *sdev);
-extern void switch_dev_unregister(struct switch_dev *sdev);
-
-static inline int switch_get_state(struct switch_dev *sdev)
-{
- return sdev->state;
-}
-
-extern void switch_set_state(struct switch_dev *sdev, int state);
-
-#endif /* __LINUX_SWITCH_H__ */
diff --git a/ANDROID_3.4.5/include/linux/synaptics_i2c_rmi.h b/ANDROID_3.4.5/include/linux/synaptics_i2c_rmi.h
deleted file mode 100644
index 5539cc52..00000000
--- a/ANDROID_3.4.5/include/linux/synaptics_i2c_rmi.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * include/linux/synaptics_i2c_rmi.h - platform data structure for f75375s sensor
- *
- * Copyright (C) 2008 Google, Inc.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#ifndef _LINUX_SYNAPTICS_I2C_RMI_H
-#define _LINUX_SYNAPTICS_I2C_RMI_H
-
-#define SYNAPTICS_I2C_RMI_NAME "synaptics-rmi-ts"
-
-enum {
- SYNAPTICS_FLIP_X = 1UL << 0,
- SYNAPTICS_FLIP_Y = 1UL << 1,
- SYNAPTICS_SWAP_XY = 1UL << 2,
- SYNAPTICS_SNAP_TO_INACTIVE_EDGE = 1UL << 3,
-};
-
-struct synaptics_i2c_rmi_platform_data {
- uint32_t version; /* Use this entry for panels with */
- /* (major << 8 | minor) version or above. */
- /* If non-zero another array entry follows */
- int (*power)(int on); /* Only valid in first array entry */
- uint32_t flags;
- unsigned long irqflags;
- uint32_t inactive_left; /* 0x10000 = screen width */
- uint32_t inactive_right; /* 0x10000 = screen width */
- uint32_t inactive_top; /* 0x10000 = screen height */
- uint32_t inactive_bottom; /* 0x10000 = screen height */
- uint32_t snap_left_on; /* 0x10000 = screen width */
- uint32_t snap_left_off; /* 0x10000 = screen width */
- uint32_t snap_right_on; /* 0x10000 = screen width */
- uint32_t snap_right_off; /* 0x10000 = screen width */
- uint32_t snap_top_on; /* 0x10000 = screen height */
- uint32_t snap_top_off; /* 0x10000 = screen height */
- uint32_t snap_bottom_on; /* 0x10000 = screen height */
- uint32_t snap_bottom_off; /* 0x10000 = screen height */
- uint32_t fuzz_x; /* 0x10000 = screen width */
- uint32_t fuzz_y; /* 0x10000 = screen height */
- int fuzz_p;
- int fuzz_w;
- int8_t sensitivity_adjust;
-};
-
-#endif /* _LINUX_SYNAPTICS_I2C_RMI_H */
diff --git a/ANDROID_3.4.5/include/linux/sync.h b/ANDROID_3.4.5/include/linux/sync.h
deleted file mode 100644
index 38ea986d..00000000
--- a/ANDROID_3.4.5/include/linux/sync.h
+++ /dev/null
@@ -1,426 +0,0 @@
-/*
- * include/linux/sync.h
- *
- * Copyright (C) 2012 Google, Inc.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#ifndef _LINUX_SYNC_H
-#define _LINUX_SYNC_H
-
-#include <linux/types.h>
-#ifdef __KERNEL__
-
-#include <linux/kref.h>
-#include <linux/ktime.h>
-#include <linux/list.h>
-#include <linux/spinlock.h>
-#include <linux/wait.h>
-
-struct sync_timeline;
-struct sync_pt;
-struct sync_fence;
-
-/**
- * struct sync_timeline_ops - sync object implementation ops
- * @driver_name: name of the implentation
- * @dup: duplicate a sync_pt
- * @has_signaled: returns:
- * 1 if pt has signaled
- * 0 if pt has not signaled
- * <0 on error
- * @compare: returns:
- * 1 if b will signal before a
- * 0 if a and b will signal at the same time
- * -1 if a will signabl before b
- * @free_pt: called before sync_pt is freed
- * @release_obj: called before sync_timeline is freed
- * @print_obj: deprecated
- * @print_pt: deprecated
- * @fill_driver_data: write implmentation specific driver data to data.
- * should return an error if there is not enough room
- * as specified by size. This information is returned
- * to userspace by SYNC_IOC_FENCE_INFO.
- * @timeline_value_str: fill str with the value of the sync_timeline's counter
- * @pt_value_str: fill str with the value of the sync_pt
- */
-struct sync_timeline_ops {
- const char *driver_name;
-
- /* required */
- struct sync_pt *(*dup)(struct sync_pt *pt);
-
- /* required */
- int (*has_signaled)(struct sync_pt *pt);
-
- /* required */
- int (*compare)(struct sync_pt *a, struct sync_pt *b);
-
- /* optional */
- void (*free_pt)(struct sync_pt *sync_pt);
-
- /* optional */
- void (*release_obj)(struct sync_timeline *sync_timeline);
-
- /* deprecated */
- void (*print_obj)(struct seq_file *s,
- struct sync_timeline *sync_timeline);
-
- /* deprecated */
- void (*print_pt)(struct seq_file *s, struct sync_pt *sync_pt);
-
- /* optional */
- int (*fill_driver_data)(struct sync_pt *syncpt, void *data, int size);
-
- /* optional */
- void (*timeline_value_str)(struct sync_timeline *timeline, char *str,
- int size);
-
- /* optional */
- void (*pt_value_str)(struct sync_pt *pt, char *str, int size);
-};
-
-/**
- * struct sync_timeline - sync object
- * @kref: reference count on fence.
- * @ops: ops that define the implementaiton of the sync_timeline
- * @name: name of the sync_timeline. Useful for debugging
- * @destoryed: set when sync_timeline is destroyed
- * @child_list_head: list of children sync_pts for this sync_timeline
- * @child_list_lock: lock protecting @child_list_head, destroyed, and
- * sync_pt.status
- * @active_list_head: list of active (unsignaled/errored) sync_pts
- * @sync_timeline_list: membership in global sync_timeline_list
- */
-struct sync_timeline {
- struct kref kref;
- const struct sync_timeline_ops *ops;
- char name[32];
-
- /* protected by child_list_lock */
- bool destroyed;
-
- struct list_head child_list_head;
- spinlock_t child_list_lock;
-
- struct list_head active_list_head;
- spinlock_t active_list_lock;
-
- struct list_head sync_timeline_list;
-};
-
-/**
- * struct sync_pt - sync point
- * @parent: sync_timeline to which this sync_pt belongs
- * @child_list: membership in sync_timeline.child_list_head
- * @active_list: membership in sync_timeline.active_list_head
- * @signaled_list: membership in temorary signaled_list on stack
- * @fence: sync_fence to which the sync_pt belongs
- * @pt_list: membership in sync_fence.pt_list_head
- * @status: 1: signaled, 0:active, <0: error
- * @timestamp: time which sync_pt status transitioned from active to
- * singaled or error.
- */
-struct sync_pt {
- struct sync_timeline *parent;
- struct list_head child_list;
-
- struct list_head active_list;
- struct list_head signaled_list;
-
- struct sync_fence *fence;
- struct list_head pt_list;
-
- /* protected by parent->active_list_lock */
- int status;
-
- ktime_t timestamp;
-};
-
-/**
- * struct sync_fence - sync fence
- * @file: file representing this fence
- * @kref: referenace count on fence.
- * @name: name of sync_fence. Useful for debugging
- * @pt_list_head: list of sync_pts in ths fence. immutable once fence
- * is created
- * @waiter_list_head: list of asynchronous waiters on this fence
- * @waiter_list_lock: lock protecting @waiter_list_head and @status
- * @status: 1: signaled, 0:active, <0: error
- *
- * @wq: wait queue for fence signaling
- * @sync_fence_list: membership in global fence list
- */
-struct sync_fence {
- struct file *file;
- struct kref kref;
- char name[32];
-
- /* this list is immutable once the fence is created */
- struct list_head pt_list_head;
-
- struct list_head waiter_list_head;
- spinlock_t waiter_list_lock; /* also protects status */
- int status;
-
- wait_queue_head_t wq;
-
- struct list_head sync_fence_list;
-};
-
-struct sync_fence_waiter;
-typedef void (*sync_callback_t)(struct sync_fence *fence,
- struct sync_fence_waiter *waiter);
-
-/**
- * struct sync_fence_waiter - metadata for asynchronous waiter on a fence
- * @waiter_list: membership in sync_fence.waiter_list_head
- * @callback: function pointer to call when fence signals
- * @callback_data: pointer to pass to @callback
- */
-struct sync_fence_waiter {
- struct list_head waiter_list;
-
- sync_callback_t callback;
-};
-
-static inline void sync_fence_waiter_init(struct sync_fence_waiter *waiter,
- sync_callback_t callback)
-{
- waiter->callback = callback;
-}
-
-/*
- * API for sync_timeline implementers
- */
-
-/**
- * sync_timeline_create() - creates a sync object
- * @ops: specifies the implemention ops for the object
- * @size: size to allocate for this obj
- * @name: sync_timeline name
- *
- * Creates a new sync_timeline which will use the implemetation specified by
- * @ops. @size bytes will be allocated allowing for implemntation specific
- * data to be kept after the generic sync_timeline stuct.
- */
-struct sync_timeline *sync_timeline_create(const struct sync_timeline_ops *ops,
- int size, const char *name);
-
-/**
- * sync_timeline_destory() - destorys a sync object
- * @obj: sync_timeline to destroy
- *
- * A sync implemntation should call this when the @obj is going away
- * (i.e. module unload.) @obj won't actually be freed until all its childern
- * sync_pts are freed.
- */
-void sync_timeline_destroy(struct sync_timeline *obj);
-
-/**
- * sync_timeline_signal() - signal a status change on a sync_timeline
- * @obj: sync_timeline to signal
- *
- * A sync implemntation should call this any time one of it's sync_pts
- * has signaled or has an error condition.
- */
-void sync_timeline_signal(struct sync_timeline *obj);
-
-/**
- * sync_pt_create() - creates a sync pt
- * @parent: sync_pt's parent sync_timeline
- * @size: size to allocate for this pt
- *
- * Creates a new sync_pt as a chiled of @parent. @size bytes will be
- * allocated allowing for implemntation specific data to be kept after
- * the generic sync_timeline struct.
- */
-struct sync_pt *sync_pt_create(struct sync_timeline *parent, int size);
-
-/**
- * sync_pt_free() - frees a sync pt
- * @pt: sync_pt to free
- *
- * This should only be called on sync_pts which have been created but
- * not added to a fence.
- */
-void sync_pt_free(struct sync_pt *pt);
-
-/**
- * sync_fence_create() - creates a sync fence
- * @name: name of fence to create
- * @pt: sync_pt to add to the fence
- *
- * Creates a fence containg @pt. Once this is called, the fence takes
- * ownership of @pt.
- */
-struct sync_fence *sync_fence_create(const char *name, struct sync_pt *pt);
-
-/*
- * API for sync_fence consumers
- */
-
-/**
- * sync_fence_merge() - merge two fences
- * @name: name of new fence
- * @a: fence a
- * @b: fence b
- *
- * Creates a new fence which contains copies of all the sync_pts in both
- * @a and @b. @a and @b remain valid, independent fences.
- */
-struct sync_fence *sync_fence_merge(const char *name,
- struct sync_fence *a, struct sync_fence *b);
-
-/**
- * sync_fence_fdget() - get a fence from an fd
- * @fd: fd referencing a fence
- *
- * Ensures @fd references a valid fence, increments the refcount of the backing
- * file, and returns the fence.
- */
-struct sync_fence *sync_fence_fdget(int fd);
-
-/**
- * sync_fence_put() - puts a refernnce of a sync fence
- * @fence: fence to put
- *
- * Puts a reference on @fence. If this is the last reference, the fence and
- * all it's sync_pts will be freed
- */
-void sync_fence_put(struct sync_fence *fence);
-
-/**
- * sync_fence_install() - installs a fence into a file descriptor
- * @fence: fence to instal
- * @fd: file descriptor in which to install the fence
- *
- * Installs @fence into @fd. @fd's should be acquired through get_unused_fd().
- */
-void sync_fence_install(struct sync_fence *fence, int fd);
-
-/**
- * sync_fence_wait_async() - registers and async wait on the fence
- * @fence: fence to wait on
- * @waiter: waiter callback struck
- *
- * Returns 1 if @fence has already signaled.
- *
- * Registers a callback to be called when @fence signals or has an error.
- * @waiter should be initialized with sync_fence_waiter_init().
- */
-int sync_fence_wait_async(struct sync_fence *fence,
- struct sync_fence_waiter *waiter);
-
-/**
- * sync_fence_cancel_async() - cancels an async wait
- * @fence: fence to wait on
- * @waiter: waiter callback struck
- *
- * returns 0 if waiter was removed from fence's async waiter list.
- * returns -ENOENT if waiter was not found on fence's async waiter list.
- *
- * Cancels a previously registered async wait. Will fail gracefully if
- * @waiter was never registered or if @fence has already signaled @waiter.
- */
-int sync_fence_cancel_async(struct sync_fence *fence,
- struct sync_fence_waiter *waiter);
-
-/**
- * sync_fence_wait() - wait on fence
- * @fence: fence to wait on
- * @tiemout: timeout in ms
- *
- * Wait for @fence to be signaled or have an error. Waits indefinitely
- * if @timeout < 0
- */
-int sync_fence_wait(struct sync_fence *fence, long timeout);
-
-#endif /* __KERNEL__ */
-
-/**
- * struct sync_merge_data - data passed to merge ioctl
- * @fd2: file descriptor of second fence
- * @name: name of new fence
- * @fence: returns the fd of the new fence to userspace
- */
-struct sync_merge_data {
- __s32 fd2; /* fd of second fence */
- char name[32]; /* name of new fence */
- __s32 fence; /* fd on newly created fence */
-};
-
-/**
- * struct sync_pt_info - detailed sync_pt information
- * @len: length of sync_pt_info including any driver_data
- * @obj_name: name of parent sync_timeline
- * @driver_name: name of driver implmenting the parent
- * @status: status of the sync_pt 0:active 1:signaled <0:error
- * @timestamp_ns: timestamp of status change in nanoseconds
- * @driver_data: any driver dependant data
- */
-struct sync_pt_info {
- __u32 len;
- char obj_name[32];
- char driver_name[32];
- __s32 status;
- __u64 timestamp_ns;
-
- __u8 driver_data[0];
-};
-
-/**
- * struct sync_fence_info_data - data returned from fence info ioctl
- * @len: ioctl caller writes the size of the buffer its passing in.
- * ioctl returns length of sync_fence_data reutnred to userspace
- * including pt_info.
- * @name: name of fence
- * @status: status of fence. 1: signaled 0:active <0:error
- * @pt_info: a sync_pt_info struct for every sync_pt in the fence
- */
-struct sync_fence_info_data {
- __u32 len;
- char name[32];
- __s32 status;
-
- __u8 pt_info[0];
-};
-
-#define SYNC_IOC_MAGIC '>'
-
-/**
- * DOC: SYNC_IOC_WAIT - wait for a fence to signal
- *
- * pass timeout in milliseconds. Waits indefinitely timeout < 0.
- */
-#define SYNC_IOC_WAIT _IOW(SYNC_IOC_MAGIC, 0, __s32)
-
-/**
- * DOC: SYNC_IOC_MERGE - merge two fences
- *
- * Takes a struct sync_merge_data. Creates a new fence containing copies of
- * the sync_pts in both the calling fd and sync_merge_data.fd2. Returns the
- * new fence's fd in sync_merge_data.fence
- */
-#define SYNC_IOC_MERGE _IOWR(SYNC_IOC_MAGIC, 1, struct sync_merge_data)
-
-/**
- * DOC: SYNC_IOC_FENCE_INFO - get detailed information on a fence
- *
- * Takes a struct sync_fence_info_data with extra space allocated for pt_info.
- * Caller should write the size of the buffer into len. On return, len is
- * updated to reflect the total size of the sync_fence_info_data including
- * pt_info.
- *
- * pt_info is a buffer containing sync_pt_infos for every sync_pt in the fence.
- * To itterate over the sync_pt_infos, use the sync_pt_info.len field.
- */
-#define SYNC_IOC_FENCE_INFO _IOWR(SYNC_IOC_MAGIC, 2,\
- struct sync_fence_info_data)
-
-#endif /* _LINUX_SYNC_H */
diff --git a/ANDROID_3.4.5/include/linux/synclink.h b/ANDROID_3.4.5/include/linux/synclink.h
deleted file mode 100644
index 2e7d81c4..00000000
--- a/ANDROID_3.4.5/include/linux/synclink.h
+++ /dev/null
@@ -1,323 +0,0 @@
-/*
- * SyncLink Multiprotocol Serial Adapter Driver
- *
- * $Id: synclink.h,v 3.14 2006/07/17 20:15:43 paulkf Exp $
- *
- * Copyright (C) 1998-2000 by Microgate Corporation
- *
- * Redistribution of this file is permitted under
- * the terms of the GNU Public License (GPL)
- */
-
-#ifndef _SYNCLINK_H_
-#define _SYNCLINK_H_
-#define SYNCLINK_H_VERSION 3.6
-
-#include <linux/types.h>
-
-#define BIT0 0x0001
-#define BIT1 0x0002
-#define BIT2 0x0004
-#define BIT3 0x0008
-#define BIT4 0x0010
-#define BIT5 0x0020
-#define BIT6 0x0040
-#define BIT7 0x0080
-#define BIT8 0x0100
-#define BIT9 0x0200
-#define BIT10 0x0400
-#define BIT11 0x0800
-#define BIT12 0x1000
-#define BIT13 0x2000
-#define BIT14 0x4000
-#define BIT15 0x8000
-#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 HDLC_MAX_FRAME_SIZE 65535
-#define MAX_ASYNC_TRANSMIT 4096
-#define MAX_ASYNC_BUFFER_SIZE 4096
-
-#define ASYNC_PARITY_NONE 0
-#define ASYNC_PARITY_EVEN 1
-#define ASYNC_PARITY_ODD 2
-#define ASYNC_PARITY_SPACE 3
-
-#define HDLC_FLAG_UNDERRUN_ABORT7 0x0000
-#define HDLC_FLAG_UNDERRUN_ABORT15 0x0001
-#define HDLC_FLAG_UNDERRUN_FLAG 0x0002
-#define HDLC_FLAG_UNDERRUN_CRC 0x0004
-#define HDLC_FLAG_SHARE_ZERO 0x0010
-#define HDLC_FLAG_AUTO_CTS 0x0020
-#define HDLC_FLAG_AUTO_DCD 0x0040
-#define HDLC_FLAG_AUTO_RTS 0x0080
-#define HDLC_FLAG_RXC_DPLL 0x0100
-#define HDLC_FLAG_RXC_BRG 0x0200
-#define HDLC_FLAG_RXC_TXCPIN 0x8000
-#define HDLC_FLAG_RXC_RXCPIN 0x0000
-#define HDLC_FLAG_TXC_DPLL 0x0400
-#define HDLC_FLAG_TXC_BRG 0x0800
-#define HDLC_FLAG_TXC_TXCPIN 0x0000
-#define HDLC_FLAG_TXC_RXCPIN 0x0008
-#define HDLC_FLAG_DPLL_DIV8 0x1000
-#define HDLC_FLAG_DPLL_DIV16 0x2000
-#define HDLC_FLAG_DPLL_DIV32 0x0000
-#define HDLC_FLAG_HDLC_LOOPMODE 0x4000
-
-#define HDLC_CRC_NONE 0
-#define HDLC_CRC_16_CCITT 1
-#define HDLC_CRC_32_CCITT 2
-#define HDLC_CRC_MASK 0x00ff
-#define HDLC_CRC_RETURN_EX 0x8000
-
-#define RX_OK 0
-#define RX_CRC_ERROR 1
-
-#define HDLC_TXIDLE_FLAGS 0
-#define HDLC_TXIDLE_ALT_ZEROS_ONES 1
-#define HDLC_TXIDLE_ZEROS 2
-#define HDLC_TXIDLE_ONES 3
-#define HDLC_TXIDLE_ALT_MARK_SPACE 4
-#define HDLC_TXIDLE_SPACE 5
-#define HDLC_TXIDLE_MARK 6
-#define HDLC_TXIDLE_CUSTOM_8 0x10000000
-#define HDLC_TXIDLE_CUSTOM_16 0x20000000
-
-#define HDLC_ENCODING_NRZ 0
-#define HDLC_ENCODING_NRZB 1
-#define HDLC_ENCODING_NRZI_MARK 2
-#define HDLC_ENCODING_NRZI_SPACE 3
-#define HDLC_ENCODING_NRZI HDLC_ENCODING_NRZI_SPACE
-#define HDLC_ENCODING_BIPHASE_MARK 4
-#define HDLC_ENCODING_BIPHASE_SPACE 5
-#define HDLC_ENCODING_BIPHASE_LEVEL 6
-#define HDLC_ENCODING_DIFF_BIPHASE_LEVEL 7
-
-#define HDLC_PREAMBLE_LENGTH_8BITS 0
-#define HDLC_PREAMBLE_LENGTH_16BITS 1
-#define HDLC_PREAMBLE_LENGTH_32BITS 2
-#define HDLC_PREAMBLE_LENGTH_64BITS 3
-
-#define HDLC_PREAMBLE_PATTERN_NONE 0
-#define HDLC_PREAMBLE_PATTERN_ZEROS 1
-#define HDLC_PREAMBLE_PATTERN_FLAGS 2
-#define HDLC_PREAMBLE_PATTERN_10 3
-#define HDLC_PREAMBLE_PATTERN_01 4
-#define HDLC_PREAMBLE_PATTERN_ONES 5
-
-#define MGSL_MODE_ASYNC 1
-#define MGSL_MODE_HDLC 2
-#define MGSL_MODE_MONOSYNC 3
-#define MGSL_MODE_BISYNC 4
-#define MGSL_MODE_RAW 6
-#define MGSL_MODE_BASE_CLOCK 7
-#define MGSL_MODE_XSYNC 8
-
-#define MGSL_BUS_TYPE_ISA 1
-#define MGSL_BUS_TYPE_EISA 2
-#define MGSL_BUS_TYPE_PCI 5
-
-#define MGSL_INTERFACE_MASK 0xf
-#define MGSL_INTERFACE_DISABLE 0
-#define MGSL_INTERFACE_RS232 1
-#define MGSL_INTERFACE_V35 2
-#define MGSL_INTERFACE_RS422 3
-#define MGSL_INTERFACE_RTS_EN 0x10
-#define MGSL_INTERFACE_LL 0x20
-#define MGSL_INTERFACE_RL 0x40
-#define MGSL_INTERFACE_MSB_FIRST 0x80
-
-typedef struct _MGSL_PARAMS
-{
- /* Common */
-
- unsigned long mode; /* Asynchronous or HDLC */
- unsigned char loopback; /* internal loopback mode */
-
- /* HDLC Only */
-
- unsigned short flags;
- unsigned char encoding; /* NRZ, NRZI, etc. */
- unsigned long clock_speed; /* external clock speed in bits per second */
- unsigned char addr_filter; /* receive HDLC address filter, 0xFF = disable */
- unsigned short crc_type; /* None, CRC16-CCITT, or CRC32-CCITT */
- unsigned char preamble_length;
- unsigned char preamble;
-
- /* Async Only */
-
- unsigned long data_rate; /* bits per second */
- unsigned char data_bits; /* 7 or 8 data bits */
- unsigned char stop_bits; /* 1 or 2 stop bits */
- unsigned char parity; /* none, even, or odd */
-
-} MGSL_PARAMS, *PMGSL_PARAMS;
-
-#define MICROGATE_VENDOR_ID 0x13c0
-#define SYNCLINK_DEVICE_ID 0x0010
-#define MGSCC_DEVICE_ID 0x0020
-#define SYNCLINK_SCA_DEVICE_ID 0x0030
-#define SYNCLINK_GT_DEVICE_ID 0x0070
-#define SYNCLINK_GT4_DEVICE_ID 0x0080
-#define SYNCLINK_AC_DEVICE_ID 0x0090
-#define SYNCLINK_GT2_DEVICE_ID 0x00A0
-#define MGSL_MAX_SERIAL_NUMBER 30
-
-/*
-** device diagnostics status
-*/
-
-#define DiagStatus_OK 0
-#define DiagStatus_AddressFailure 1
-#define DiagStatus_AddressConflict 2
-#define DiagStatus_IrqFailure 3
-#define DiagStatus_IrqConflict 4
-#define DiagStatus_DmaFailure 5
-#define DiagStatus_DmaConflict 6
-#define DiagStatus_PciAdapterNotFound 7
-#define DiagStatus_CantAssignPciResources 8
-#define DiagStatus_CantAssignPciMemAddr 9
-#define DiagStatus_CantAssignPciIoAddr 10
-#define DiagStatus_CantAssignPciIrq 11
-#define DiagStatus_MemoryError 12
-
-#define SerialSignal_DCD 0x01 /* Data Carrier Detect */
-#define SerialSignal_TXD 0x02 /* Transmit Data */
-#define SerialSignal_RI 0x04 /* Ring Indicator */
-#define SerialSignal_RXD 0x08 /* Receive Data */
-#define SerialSignal_CTS 0x10 /* Clear to Send */
-#define SerialSignal_RTS 0x20 /* Request to Send */
-#define SerialSignal_DSR 0x40 /* Data Set Ready */
-#define SerialSignal_DTR 0x80 /* Data Terminal Ready */
-
-
-/*
- * Counters of the input lines (CTS, DSR, RI, CD) interrupts
- */
-struct mgsl_icount {
- __u32 cts, dsr, rng, dcd, tx, rx;
- __u32 frame, parity, overrun, brk;
- __u32 buf_overrun;
- __u32 txok;
- __u32 txunder;
- __u32 txabort;
- __u32 txtimeout;
- __u32 rxshort;
- __u32 rxlong;
- __u32 rxabort;
- __u32 rxover;
- __u32 rxcrc;
- __u32 rxok;
- __u32 exithunt;
- __u32 rxidle;
-};
-
-struct gpio_desc {
- __u32 state;
- __u32 smask;
- __u32 dir;
- __u32 dmask;
-};
-
-#define DEBUG_LEVEL_DATA 1
-#define DEBUG_LEVEL_ERROR 2
-#define DEBUG_LEVEL_INFO 3
-#define DEBUG_LEVEL_BH 4
-#define DEBUG_LEVEL_ISR 5
-
-/*
-** Event bit flags for use with MgslWaitEvent
-*/
-
-#define MgslEvent_DsrActive 0x0001
-#define MgslEvent_DsrInactive 0x0002
-#define MgslEvent_Dsr 0x0003
-#define MgslEvent_CtsActive 0x0004
-#define MgslEvent_CtsInactive 0x0008
-#define MgslEvent_Cts 0x000c
-#define MgslEvent_DcdActive 0x0010
-#define MgslEvent_DcdInactive 0x0020
-#define MgslEvent_Dcd 0x0030
-#define MgslEvent_RiActive 0x0040
-#define MgslEvent_RiInactive 0x0080
-#define MgslEvent_Ri 0x00c0
-#define MgslEvent_ExitHuntMode 0x0100
-#define MgslEvent_IdleReceived 0x0200
-
-/* Private IOCTL codes:
- *
- * MGSL_IOCSPARAMS set MGSL_PARAMS structure values
- * MGSL_IOCGPARAMS get current MGSL_PARAMS structure values
- * MGSL_IOCSTXIDLE set current transmit idle mode
- * MGSL_IOCGTXIDLE get current transmit idle mode
- * MGSL_IOCTXENABLE enable or disable transmitter
- * MGSL_IOCRXENABLE enable or disable receiver
- * MGSL_IOCTXABORT abort transmitting frame (HDLC)
- * MGSL_IOCGSTATS return current statistics
- * MGSL_IOCWAITEVENT wait for specified event to occur
- * MGSL_LOOPTXDONE transmit in HDLC LoopMode done
- * MGSL_IOCSIF set the serial interface type
- * MGSL_IOCGIF get the serial interface type
- */
-#define MGSL_MAGIC_IOC 'm'
-#define MGSL_IOCSPARAMS _IOW(MGSL_MAGIC_IOC,0,struct _MGSL_PARAMS)
-#define MGSL_IOCGPARAMS _IOR(MGSL_MAGIC_IOC,1,struct _MGSL_PARAMS)
-#define MGSL_IOCSTXIDLE _IO(MGSL_MAGIC_IOC,2)
-#define MGSL_IOCGTXIDLE _IO(MGSL_MAGIC_IOC,3)
-#define MGSL_IOCTXENABLE _IO(MGSL_MAGIC_IOC,4)
-#define MGSL_IOCRXENABLE _IO(MGSL_MAGIC_IOC,5)
-#define MGSL_IOCTXABORT _IO(MGSL_MAGIC_IOC,6)
-#define MGSL_IOCGSTATS _IO(MGSL_MAGIC_IOC,7)
-#define MGSL_IOCWAITEVENT _IOWR(MGSL_MAGIC_IOC,8,int)
-#define MGSL_IOCCLRMODCOUNT _IO(MGSL_MAGIC_IOC,15)
-#define MGSL_IOCLOOPTXDONE _IO(MGSL_MAGIC_IOC,9)
-#define MGSL_IOCSIF _IO(MGSL_MAGIC_IOC,10)
-#define MGSL_IOCGIF _IO(MGSL_MAGIC_IOC,11)
-#define MGSL_IOCSGPIO _IOW(MGSL_MAGIC_IOC,16,struct gpio_desc)
-#define MGSL_IOCGGPIO _IOR(MGSL_MAGIC_IOC,17,struct gpio_desc)
-#define MGSL_IOCWAITGPIO _IOWR(MGSL_MAGIC_IOC,18,struct gpio_desc)
-#define MGSL_IOCSXSYNC _IO(MGSL_MAGIC_IOC, 19)
-#define MGSL_IOCGXSYNC _IO(MGSL_MAGIC_IOC, 20)
-#define MGSL_IOCSXCTRL _IO(MGSL_MAGIC_IOC, 21)
-#define MGSL_IOCGXCTRL _IO(MGSL_MAGIC_IOC, 22)
-
-#ifdef __KERNEL__
-/* provide 32 bit ioctl compatibility on 64 bit systems */
-#ifdef CONFIG_COMPAT
-#include <linux/compat.h>
-struct MGSL_PARAMS32 {
- compat_ulong_t mode;
- unsigned char loopback;
- unsigned short flags;
- unsigned char encoding;
- compat_ulong_t clock_speed;
- unsigned char addr_filter;
- unsigned short crc_type;
- unsigned char preamble_length;
- unsigned char preamble;
- compat_ulong_t data_rate;
- unsigned char data_bits;
- unsigned char stop_bits;
- unsigned char parity;
-};
-#define MGSL_IOCSPARAMS32 _IOW(MGSL_MAGIC_IOC,0,struct MGSL_PARAMS32)
-#define MGSL_IOCGPARAMS32 _IOR(MGSL_MAGIC_IOC,1,struct MGSL_PARAMS32)
-#endif
-#endif
-
-#endif /* _SYNCLINK_H_ */
diff --git a/ANDROID_3.4.5/include/linux/sys.h b/ANDROID_3.4.5/include/linux/sys.h
deleted file mode 100644
index daa6008b..00000000
--- a/ANDROID_3.4.5/include/linux/sys.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef _LINUX_SYS_H
-#define _LINUX_SYS_H
-
-/*
- * This file is no longer used or needed
- */
-
-/*
- * These are system calls that will be removed at some time
- * due to newer versions existing..
- * (please be careful - ibcs2 may need some of these).
- */
-#ifdef notdef
-#define _sys_waitpid _sys_old_syscall /* _sys_wait4 */
-#define _sys_olduname _sys_old_syscall /* _sys_newuname */
-#define _sys_uname _sys_old_syscall /* _sys_newuname */
-#define _sys_stat _sys_old_syscall /* _sys_newstat */
-#define _sys_fstat _sys_old_syscall /* _sys_newfstat */
-#define _sys_lstat _sys_old_syscall /* _sys_newlstat */
-#define _sys_signal _sys_old_syscall /* _sys_sigaction */
-#define _sys_sgetmask _sys_old_syscall /* _sys_sigprocmask */
-#define _sys_ssetmask _sys_old_syscall /* _sys_sigprocmask */
-#endif
-
-/*
- * These are system calls that haven't been implemented yet
- * but have an entry in the table for future expansion..
- */
-#endif
diff --git a/ANDROID_3.4.5/include/linux/sys_soc.h b/ANDROID_3.4.5/include/linux/sys_soc.h
deleted file mode 100644
index 2739ccb6..00000000
--- a/ANDROID_3.4.5/include/linux/sys_soc.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson SA 2011
- * Author: Lee Jones <lee.jones@linaro.org> for ST-Ericsson.
- * License terms: GNU General Public License (GPL), version 2
- */
-#ifndef __SOC_BUS_H
-#define __SOC_BUS_H
-
-#include <linux/device.h>
-
-struct soc_device_attribute {
- const char *machine;
- const char *family;
- const char *revision;
- const char *soc_id;
-};
-
-/**
- * soc_device_register - register SoC as a device
- * @soc_plat_dev_attr: Attributes passed from platform to be attributed to a SoC
- */
-struct soc_device *soc_device_register(
- struct soc_device_attribute *soc_plat_dev_attr);
-
-/**
- * soc_device_unregister - unregister SoC device
- * @dev: SoC device to be unregistered
- */
-void soc_device_unregister(struct soc_device *soc_dev);
-
-/**
- * soc_device_to_device - helper function to fetch struct device
- * @soc: Previously registered SoC device container
- */
-struct device *soc_device_to_device(struct soc_device *soc);
-
-#endif /* __SOC_BUS_H */
diff --git a/ANDROID_3.4.5/include/linux/syscalls.h b/ANDROID_3.4.5/include/linux/syscalls.h
deleted file mode 100644
index 3de3acb8..00000000
--- a/ANDROID_3.4.5/include/linux/syscalls.h
+++ /dev/null
@@ -1,861 +0,0 @@
-/*
- * syscalls.h - Linux syscall interfaces (non-arch-specific)
- *
- * Copyright (c) 2004 Randy Dunlap
- * Copyright (c) 2004 Open Source Development Labs
- *
- * This file is released under the GPLv2.
- * See the file COPYING for more details.
- */
-
-#ifndef _LINUX_SYSCALLS_H
-#define _LINUX_SYSCALLS_H
-
-struct epoll_event;
-struct iattr;
-struct inode;
-struct iocb;
-struct io_event;
-struct iovec;
-struct itimerspec;
-struct itimerval;
-struct kexec_segment;
-struct linux_dirent;
-struct linux_dirent64;
-struct list_head;
-struct mmap_arg_struct;
-struct msgbuf;
-struct msghdr;
-struct mmsghdr;
-struct msqid_ds;
-struct new_utsname;
-struct nfsctl_arg;
-struct __old_kernel_stat;
-struct oldold_utsname;
-struct old_utsname;
-struct pollfd;
-struct rlimit;
-struct rlimit64;
-struct rusage;
-struct sched_param;
-struct sel_arg_struct;
-struct semaphore;
-struct sembuf;
-struct shmid_ds;
-struct sockaddr;
-struct stat;
-struct stat64;
-struct statfs;
-struct statfs64;
-struct __sysctl_args;
-struct sysinfo;
-struct timespec;
-struct timeval;
-struct timex;
-struct timezone;
-struct tms;
-struct utimbuf;
-struct mq_attr;
-struct compat_stat;
-struct compat_timeval;
-struct robust_list_head;
-struct getcpu_cache;
-struct old_linux_dirent;
-struct perf_event_attr;
-struct file_handle;
-
-#include <linux/types.h>
-#include <linux/aio_abi.h>
-#include <linux/capability.h>
-#include <linux/list.h>
-#include <linux/bug.h>
-#include <linux/sem.h>
-#include <asm/siginfo.h>
-#include <asm/signal.h>
-#include <linux/unistd.h>
-#include <linux/quota.h>
-#include <linux/key.h>
-#include <trace/syscall.h>
-
-#define __SC_DECL1(t1, a1) t1 a1
-#define __SC_DECL2(t2, a2, ...) t2 a2, __SC_DECL1(__VA_ARGS__)
-#define __SC_DECL3(t3, a3, ...) t3 a3, __SC_DECL2(__VA_ARGS__)
-#define __SC_DECL4(t4, a4, ...) t4 a4, __SC_DECL3(__VA_ARGS__)
-#define __SC_DECL5(t5, a5, ...) t5 a5, __SC_DECL4(__VA_ARGS__)
-#define __SC_DECL6(t6, a6, ...) t6 a6, __SC_DECL5(__VA_ARGS__)
-
-#define __SC_LONG1(t1, a1) long a1
-#define __SC_LONG2(t2, a2, ...) long a2, __SC_LONG1(__VA_ARGS__)
-#define __SC_LONG3(t3, a3, ...) long a3, __SC_LONG2(__VA_ARGS__)
-#define __SC_LONG4(t4, a4, ...) long a4, __SC_LONG3(__VA_ARGS__)
-#define __SC_LONG5(t5, a5, ...) long a5, __SC_LONG4(__VA_ARGS__)
-#define __SC_LONG6(t6, a6, ...) long a6, __SC_LONG5(__VA_ARGS__)
-
-#define __SC_CAST1(t1, a1) (t1) a1
-#define __SC_CAST2(t2, a2, ...) (t2) a2, __SC_CAST1(__VA_ARGS__)
-#define __SC_CAST3(t3, a3, ...) (t3) a3, __SC_CAST2(__VA_ARGS__)
-#define __SC_CAST4(t4, a4, ...) (t4) a4, __SC_CAST3(__VA_ARGS__)
-#define __SC_CAST5(t5, a5, ...) (t5) a5, __SC_CAST4(__VA_ARGS__)
-#define __SC_CAST6(t6, a6, ...) (t6) a6, __SC_CAST5(__VA_ARGS__)
-
-#define __SC_TEST(type) BUILD_BUG_ON(sizeof(type) > sizeof(long))
-#define __SC_TEST1(t1, a1) __SC_TEST(t1)
-#define __SC_TEST2(t2, a2, ...) __SC_TEST(t2); __SC_TEST1(__VA_ARGS__)
-#define __SC_TEST3(t3, a3, ...) __SC_TEST(t3); __SC_TEST2(__VA_ARGS__)
-#define __SC_TEST4(t4, a4, ...) __SC_TEST(t4); __SC_TEST3(__VA_ARGS__)
-#define __SC_TEST5(t5, a5, ...) __SC_TEST(t5); __SC_TEST4(__VA_ARGS__)
-#define __SC_TEST6(t6, a6, ...) __SC_TEST(t6); __SC_TEST5(__VA_ARGS__)
-
-#ifdef CONFIG_FTRACE_SYSCALLS
-#define __SC_STR_ADECL1(t, a) #a
-#define __SC_STR_ADECL2(t, a, ...) #a, __SC_STR_ADECL1(__VA_ARGS__)
-#define __SC_STR_ADECL3(t, a, ...) #a, __SC_STR_ADECL2(__VA_ARGS__)
-#define __SC_STR_ADECL4(t, a, ...) #a, __SC_STR_ADECL3(__VA_ARGS__)
-#define __SC_STR_ADECL5(t, a, ...) #a, __SC_STR_ADECL4(__VA_ARGS__)
-#define __SC_STR_ADECL6(t, a, ...) #a, __SC_STR_ADECL5(__VA_ARGS__)
-
-#define __SC_STR_TDECL1(t, a) #t
-#define __SC_STR_TDECL2(t, a, ...) #t, __SC_STR_TDECL1(__VA_ARGS__)
-#define __SC_STR_TDECL3(t, a, ...) #t, __SC_STR_TDECL2(__VA_ARGS__)
-#define __SC_STR_TDECL4(t, a, ...) #t, __SC_STR_TDECL3(__VA_ARGS__)
-#define __SC_STR_TDECL5(t, a, ...) #t, __SC_STR_TDECL4(__VA_ARGS__)
-#define __SC_STR_TDECL6(t, a, ...) #t, __SC_STR_TDECL5(__VA_ARGS__)
-
-extern struct ftrace_event_class event_class_syscall_enter;
-extern struct ftrace_event_class event_class_syscall_exit;
-extern struct trace_event_functions enter_syscall_print_funcs;
-extern struct trace_event_functions exit_syscall_print_funcs;
-
-#define SYSCALL_TRACE_ENTER_EVENT(sname) \
- static struct syscall_metadata __syscall_meta_##sname; \
- static struct ftrace_event_call __used \
- event_enter_##sname = { \
- .name = "sys_enter"#sname, \
- .class = &event_class_syscall_enter, \
- .event.funcs = &enter_syscall_print_funcs, \
- .data = (void *)&__syscall_meta_##sname,\
- .flags = TRACE_EVENT_FL_CAP_ANY, \
- }; \
- static struct ftrace_event_call __used \
- __attribute__((section("_ftrace_events"))) \
- *__event_enter_##sname = &event_enter_##sname;
-
-#define SYSCALL_TRACE_EXIT_EVENT(sname) \
- static struct syscall_metadata __syscall_meta_##sname; \
- static struct ftrace_event_call __used \
- event_exit_##sname = { \
- .name = "sys_exit"#sname, \
- .class = &event_class_syscall_exit, \
- .event.funcs = &exit_syscall_print_funcs, \
- .data = (void *)&__syscall_meta_##sname,\
- .flags = TRACE_EVENT_FL_CAP_ANY, \
- }; \
- static struct ftrace_event_call __used \
- __attribute__((section("_ftrace_events"))) \
- *__event_exit_##sname = &event_exit_##sname;
-
-#define SYSCALL_METADATA(sname, nb) \
- SYSCALL_TRACE_ENTER_EVENT(sname); \
- SYSCALL_TRACE_EXIT_EVENT(sname); \
- static struct syscall_metadata __used \
- __syscall_meta_##sname = { \
- .name = "sys"#sname, \
- .syscall_nr = -1, /* Filled in at boot */ \
- .nb_args = nb, \
- .types = types_##sname, \
- .args = args_##sname, \
- .enter_event = &event_enter_##sname, \
- .exit_event = &event_exit_##sname, \
- .enter_fields = LIST_HEAD_INIT(__syscall_meta_##sname.enter_fields), \
- }; \
- static struct syscall_metadata __used \
- __attribute__((section("__syscalls_metadata"))) \
- *__p_syscall_meta_##sname = &__syscall_meta_##sname;
-
-#define SYSCALL_DEFINE0(sname) \
- SYSCALL_TRACE_ENTER_EVENT(_##sname); \
- SYSCALL_TRACE_EXIT_EVENT(_##sname); \
- static struct syscall_metadata __used \
- __syscall_meta__##sname = { \
- .name = "sys_"#sname, \
- .syscall_nr = -1, /* Filled in at boot */ \
- .nb_args = 0, \
- .enter_event = &event_enter__##sname, \
- .exit_event = &event_exit__##sname, \
- .enter_fields = LIST_HEAD_INIT(__syscall_meta__##sname.enter_fields), \
- }; \
- static struct syscall_metadata __used \
- __attribute__((section("__syscalls_metadata"))) \
- *__p_syscall_meta_##sname = &__syscall_meta__##sname; \
- asmlinkage long sys_##sname(void)
-#else
-#define SYSCALL_DEFINE0(name) asmlinkage long sys_##name(void)
-#endif
-
-#define SYSCALL_DEFINE1(name, ...) SYSCALL_DEFINEx(1, _##name, __VA_ARGS__)
-#define SYSCALL_DEFINE2(name, ...) SYSCALL_DEFINEx(2, _##name, __VA_ARGS__)
-#define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
-#define SYSCALL_DEFINE4(name, ...) SYSCALL_DEFINEx(4, _##name, __VA_ARGS__)
-#define SYSCALL_DEFINE5(name, ...) SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
-#define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
-
-#ifdef CONFIG_PPC64
-#define SYSCALL_ALIAS(alias, name) \
- asm ("\t.globl " #alias "\n\t.set " #alias ", " #name "\n" \
- "\t.globl ." #alias "\n\t.set ." #alias ", ." #name)
-#else
-#if defined(CONFIG_ALPHA) || defined(CONFIG_MIPS)
-#define SYSCALL_ALIAS(alias, name) \
- asm ( #alias " = " #name "\n\t.globl " #alias)
-#else
-#define SYSCALL_ALIAS(alias, name) \
- asm ("\t.globl " #alias "\n\t.set " #alias ", " #name)
-#endif
-#endif
-
-#ifdef CONFIG_FTRACE_SYSCALLS
-#define SYSCALL_DEFINEx(x, sname, ...) \
- static const char *types_##sname[] = { \
- __SC_STR_TDECL##x(__VA_ARGS__) \
- }; \
- static const char *args_##sname[] = { \
- __SC_STR_ADECL##x(__VA_ARGS__) \
- }; \
- SYSCALL_METADATA(sname, x); \
- __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
-#else
-#define SYSCALL_DEFINEx(x, sname, ...) \
- __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
-#endif
-
-#ifdef CONFIG_HAVE_SYSCALL_WRAPPERS
-
-#define SYSCALL_DEFINE(name) static inline long SYSC_##name
-
-#define __SYSCALL_DEFINEx(x, name, ...) \
- asmlinkage long sys##name(__SC_DECL##x(__VA_ARGS__)); \
- static inline long SYSC##name(__SC_DECL##x(__VA_ARGS__)); \
- asmlinkage long SyS##name(__SC_LONG##x(__VA_ARGS__)) \
- { \
- __SC_TEST##x(__VA_ARGS__); \
- return (long) SYSC##name(__SC_CAST##x(__VA_ARGS__)); \
- } \
- SYSCALL_ALIAS(sys##name, SyS##name); \
- static inline long SYSC##name(__SC_DECL##x(__VA_ARGS__))
-
-#else /* CONFIG_HAVE_SYSCALL_WRAPPERS */
-
-#define SYSCALL_DEFINE(name) asmlinkage long sys_##name
-#define __SYSCALL_DEFINEx(x, name, ...) \
- asmlinkage long sys##name(__SC_DECL##x(__VA_ARGS__))
-
-#endif /* CONFIG_HAVE_SYSCALL_WRAPPERS */
-
-asmlinkage long sys_time(time_t __user *tloc);
-asmlinkage long sys_stime(time_t __user *tptr);
-asmlinkage long sys_gettimeofday(struct timeval __user *tv,
- struct timezone __user *tz);
-asmlinkage long sys_settimeofday(struct timeval __user *tv,
- struct timezone __user *tz);
-asmlinkage long sys_adjtimex(struct timex __user *txc_p);
-
-asmlinkage long sys_times(struct tms __user *tbuf);
-
-asmlinkage long sys_gettid(void);
-asmlinkage long sys_nanosleep(struct timespec __user *rqtp, struct timespec __user *rmtp);
-asmlinkage long sys_alarm(unsigned int seconds);
-asmlinkage long sys_getpid(void);
-asmlinkage long sys_getppid(void);
-asmlinkage long sys_getuid(void);
-asmlinkage long sys_geteuid(void);
-asmlinkage long sys_getgid(void);
-asmlinkage long sys_getegid(void);
-asmlinkage long sys_getresuid(uid_t __user *ruid, uid_t __user *euid, uid_t __user *suid);
-asmlinkage long sys_getresgid(gid_t __user *rgid, gid_t __user *egid, gid_t __user *sgid);
-asmlinkage long sys_getpgid(pid_t pid);
-asmlinkage long sys_getpgrp(void);
-asmlinkage long sys_getsid(pid_t pid);
-asmlinkage long sys_getgroups(int gidsetsize, gid_t __user *grouplist);
-
-asmlinkage long sys_setregid(gid_t rgid, gid_t egid);
-asmlinkage long sys_setgid(gid_t gid);
-asmlinkage long sys_setreuid(uid_t ruid, uid_t euid);
-asmlinkage long sys_setuid(uid_t uid);
-asmlinkage long sys_setresuid(uid_t ruid, uid_t euid, uid_t suid);
-asmlinkage long sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid);
-asmlinkage long sys_setfsuid(uid_t uid);
-asmlinkage long sys_setfsgid(gid_t gid);
-asmlinkage long sys_setpgid(pid_t pid, pid_t pgid);
-asmlinkage long sys_setsid(void);
-asmlinkage long sys_setgroups(int gidsetsize, gid_t __user *grouplist);
-
-asmlinkage long sys_acct(const char __user *name);
-asmlinkage long sys_capget(cap_user_header_t header,
- cap_user_data_t dataptr);
-asmlinkage long sys_capset(cap_user_header_t header,
- const cap_user_data_t data);
-asmlinkage long sys_personality(unsigned int personality);
-
-asmlinkage long sys_sigpending(old_sigset_t __user *set);
-asmlinkage long sys_sigprocmask(int how, old_sigset_t __user *set,
- old_sigset_t __user *oset);
-asmlinkage long sys_getitimer(int which, struct itimerval __user *value);
-asmlinkage long sys_setitimer(int which,
- struct itimerval __user *value,
- struct itimerval __user *ovalue);
-asmlinkage long sys_timer_create(clockid_t which_clock,
- struct sigevent __user *timer_event_spec,
- timer_t __user * created_timer_id);
-asmlinkage long sys_timer_gettime(timer_t timer_id,
- struct itimerspec __user *setting);
-asmlinkage long sys_timer_getoverrun(timer_t timer_id);
-asmlinkage long sys_timer_settime(timer_t timer_id, int flags,
- const struct itimerspec __user *new_setting,
- struct itimerspec __user *old_setting);
-asmlinkage long sys_timer_delete(timer_t timer_id);
-asmlinkage long sys_clock_settime(clockid_t which_clock,
- const struct timespec __user *tp);
-asmlinkage long sys_clock_gettime(clockid_t which_clock,
- struct timespec __user *tp);
-asmlinkage long sys_clock_adjtime(clockid_t which_clock,
- struct timex __user *tx);
-asmlinkage long sys_clock_getres(clockid_t which_clock,
- struct timespec __user *tp);
-asmlinkage long sys_clock_nanosleep(clockid_t which_clock, int flags,
- const struct timespec __user *rqtp,
- struct timespec __user *rmtp);
-
-asmlinkage long sys_nice(int increment);
-asmlinkage long sys_sched_setscheduler(pid_t pid, int policy,
- struct sched_param __user *param);
-asmlinkage long sys_sched_setparam(pid_t pid,
- struct sched_param __user *param);
-asmlinkage long sys_sched_getscheduler(pid_t pid);
-asmlinkage long sys_sched_getparam(pid_t pid,
- struct sched_param __user *param);
-asmlinkage long sys_sched_setaffinity(pid_t pid, unsigned int len,
- unsigned long __user *user_mask_ptr);
-asmlinkage long sys_sched_getaffinity(pid_t pid, unsigned int len,
- unsigned long __user *user_mask_ptr);
-asmlinkage long sys_sched_yield(void);
-asmlinkage long sys_sched_get_priority_max(int policy);
-asmlinkage long sys_sched_get_priority_min(int policy);
-asmlinkage long sys_sched_rr_get_interval(pid_t pid,
- struct timespec __user *interval);
-asmlinkage long sys_setpriority(int which, int who, int niceval);
-asmlinkage long sys_getpriority(int which, int who);
-
-asmlinkage long sys_shutdown(int, int);
-asmlinkage long sys_reboot(int magic1, int magic2, unsigned int cmd,
- void __user *arg);
-asmlinkage long sys_restart_syscall(void);
-asmlinkage long sys_kexec_load(unsigned long entry, unsigned long nr_segments,
- struct kexec_segment __user *segments,
- unsigned long flags);
-
-asmlinkage long sys_exit(int error_code);
-asmlinkage long sys_exit_group(int error_code);
-asmlinkage long sys_wait4(pid_t pid, int __user *stat_addr,
- int options, struct rusage __user *ru);
-asmlinkage long sys_waitid(int which, pid_t pid,
- struct siginfo __user *infop,
- int options, struct rusage __user *ru);
-asmlinkage long sys_waitpid(pid_t pid, int __user *stat_addr, int options);
-asmlinkage long sys_set_tid_address(int __user *tidptr);
-asmlinkage long sys_futex(u32 __user *uaddr, int op, u32 val,
- struct timespec __user *utime, u32 __user *uaddr2,
- u32 val3);
-
-asmlinkage long sys_init_module(void __user *umod, unsigned long len,
- const char __user *uargs);
-asmlinkage long sys_delete_module(const char __user *name_user,
- unsigned int flags);
-
-asmlinkage long sys_rt_sigprocmask(int how, sigset_t __user *set,
- sigset_t __user *oset, size_t sigsetsize);
-asmlinkage long sys_rt_sigpending(sigset_t __user *set, size_t sigsetsize);
-asmlinkage long sys_rt_sigtimedwait(const sigset_t __user *uthese,
- siginfo_t __user *uinfo,
- const struct timespec __user *uts,
- size_t sigsetsize);
-asmlinkage long sys_rt_tgsigqueueinfo(pid_t tgid, pid_t pid, int sig,
- siginfo_t __user *uinfo);
-asmlinkage long sys_kill(int pid, int sig);
-asmlinkage long sys_tgkill(int tgid, int pid, int sig);
-asmlinkage long sys_tkill(int pid, int sig);
-asmlinkage long sys_rt_sigqueueinfo(int pid, int sig, siginfo_t __user *uinfo);
-asmlinkage long sys_sgetmask(void);
-asmlinkage long sys_ssetmask(int newmask);
-asmlinkage long sys_signal(int sig, __sighandler_t handler);
-asmlinkage long sys_pause(void);
-
-asmlinkage long sys_sync(void);
-asmlinkage long sys_fsync(unsigned int fd);
-asmlinkage long sys_fdatasync(unsigned int fd);
-asmlinkage long sys_bdflush(int func, long data);
-asmlinkage long sys_mount(char __user *dev_name, char __user *dir_name,
- char __user *type, unsigned long flags,
- void __user *data);
-asmlinkage long sys_umount(char __user *name, int flags);
-asmlinkage long sys_oldumount(char __user *name);
-asmlinkage long sys_truncate(const char __user *path, long length);
-asmlinkage long sys_ftruncate(unsigned int fd, unsigned long length);
-asmlinkage long sys_stat(const char __user *filename,
- struct __old_kernel_stat __user *statbuf);
-asmlinkage long sys_statfs(const char __user * path,
- struct statfs __user *buf);
-asmlinkage long sys_statfs64(const char __user *path, size_t sz,
- struct statfs64 __user *buf);
-asmlinkage long sys_fstatfs(unsigned int fd, struct statfs __user *buf);
-asmlinkage long sys_fstatfs64(unsigned int fd, size_t sz,
- struct statfs64 __user *buf);
-asmlinkage long sys_lstat(const char __user *filename,
- struct __old_kernel_stat __user *statbuf);
-asmlinkage long sys_fstat(unsigned int fd,
- struct __old_kernel_stat __user *statbuf);
-asmlinkage long sys_newstat(const char __user *filename,
- struct stat __user *statbuf);
-asmlinkage long sys_newlstat(const char __user *filename,
- struct stat __user *statbuf);
-asmlinkage long sys_newfstat(unsigned int fd, struct stat __user *statbuf);
-asmlinkage long sys_ustat(unsigned dev, struct ustat __user *ubuf);
-#if BITS_PER_LONG == 32
-asmlinkage long sys_stat64(const char __user *filename,
- struct stat64 __user *statbuf);
-asmlinkage long sys_fstat64(unsigned long fd, struct stat64 __user *statbuf);
-asmlinkage long sys_lstat64(const char __user *filename,
- struct stat64 __user *statbuf);
-asmlinkage long sys_truncate64(const char __user *path, loff_t length);
-asmlinkage long sys_ftruncate64(unsigned int fd, loff_t length);
-#endif
-
-asmlinkage long sys_setxattr(const char __user *path, const char __user *name,
- const void __user *value, size_t size, int flags);
-asmlinkage long sys_lsetxattr(const char __user *path, const char __user *name,
- const void __user *value, size_t size, int flags);
-asmlinkage long sys_fsetxattr(int fd, const char __user *name,
- const void __user *value, size_t size, int flags);
-asmlinkage long sys_getxattr(const char __user *path, const char __user *name,
- void __user *value, size_t size);
-asmlinkage long sys_lgetxattr(const char __user *path, const char __user *name,
- void __user *value, size_t size);
-asmlinkage long sys_fgetxattr(int fd, const char __user *name,
- void __user *value, size_t size);
-asmlinkage long sys_listxattr(const char __user *path, char __user *list,
- size_t size);
-asmlinkage long sys_llistxattr(const char __user *path, char __user *list,
- size_t size);
-asmlinkage long sys_flistxattr(int fd, char __user *list, size_t size);
-asmlinkage long sys_removexattr(const char __user *path,
- const char __user *name);
-asmlinkage long sys_lremovexattr(const char __user *path,
- const char __user *name);
-asmlinkage long sys_fremovexattr(int fd, const char __user *name);
-
-asmlinkage long sys_brk(unsigned long brk);
-asmlinkage long sys_mprotect(unsigned long start, size_t len,
- unsigned long prot);
-asmlinkage long sys_mremap(unsigned long addr,
- unsigned long old_len, unsigned long new_len,
- unsigned long flags, unsigned long new_addr);
-asmlinkage long sys_remap_file_pages(unsigned long start, unsigned long size,
- unsigned long prot, unsigned long pgoff,
- unsigned long flags);
-asmlinkage long sys_msync(unsigned long start, size_t len, int flags);
-asmlinkage long sys_fadvise64(int fd, loff_t offset, size_t len, int advice);
-asmlinkage long sys_fadvise64_64(int fd, loff_t offset, loff_t len, int advice);
-asmlinkage long sys_munmap(unsigned long addr, size_t len);
-asmlinkage long sys_mlock(unsigned long start, size_t len);
-asmlinkage long sys_munlock(unsigned long start, size_t len);
-asmlinkage long sys_mlockall(int flags);
-asmlinkage long sys_munlockall(void);
-asmlinkage long sys_madvise(unsigned long start, size_t len, int behavior);
-asmlinkage long sys_mincore(unsigned long start, size_t len,
- unsigned char __user * vec);
-
-asmlinkage long sys_pivot_root(const char __user *new_root,
- const char __user *put_old);
-asmlinkage long sys_chroot(const char __user *filename);
-asmlinkage long sys_mknod(const char __user *filename, umode_t mode,
- unsigned dev);
-asmlinkage long sys_link(const char __user *oldname,
- const char __user *newname);
-asmlinkage long sys_symlink(const char __user *old, const char __user *new);
-asmlinkage long sys_unlink(const char __user *pathname);
-asmlinkage long sys_rename(const char __user *oldname,
- const char __user *newname);
-asmlinkage long sys_chmod(const char __user *filename, umode_t mode);
-asmlinkage long sys_fchmod(unsigned int fd, umode_t mode);
-
-asmlinkage long sys_fcntl(unsigned int fd, unsigned int cmd, unsigned long arg);
-#if BITS_PER_LONG == 32
-asmlinkage long sys_fcntl64(unsigned int fd,
- unsigned int cmd, unsigned long arg);
-#endif
-asmlinkage long sys_pipe(int __user *fildes);
-asmlinkage long sys_pipe2(int __user *fildes, int flags);
-asmlinkage long sys_dup(unsigned int fildes);
-asmlinkage long sys_dup2(unsigned int oldfd, unsigned int newfd);
-asmlinkage long sys_dup3(unsigned int oldfd, unsigned int newfd, int flags);
-asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int on);
-asmlinkage long sys_ioctl(unsigned int fd, unsigned int cmd,
- unsigned long arg);
-asmlinkage long sys_flock(unsigned int fd, unsigned int cmd);
-asmlinkage long sys_io_setup(unsigned nr_reqs, aio_context_t __user *ctx);
-asmlinkage long sys_io_destroy(aio_context_t ctx);
-asmlinkage long sys_io_getevents(aio_context_t ctx_id,
- long min_nr,
- long nr,
- struct io_event __user *events,
- struct timespec __user *timeout);
-asmlinkage long sys_io_submit(aio_context_t, long,
- struct iocb __user * __user *);
-asmlinkage long sys_io_cancel(aio_context_t ctx_id, struct iocb __user *iocb,
- struct io_event __user *result);
-asmlinkage long sys_sendfile(int out_fd, int in_fd,
- off_t __user *offset, size_t count);
-asmlinkage long sys_sendfile64(int out_fd, int in_fd,
- loff_t __user *offset, size_t count);
-asmlinkage long sys_readlink(const char __user *path,
- char __user *buf, int bufsiz);
-asmlinkage long sys_creat(const char __user *pathname, umode_t mode);
-asmlinkage long sys_open(const char __user *filename,
- int flags, umode_t mode);
-asmlinkage long sys_close(unsigned int fd);
-asmlinkage long sys_access(const char __user *filename, int mode);
-asmlinkage long sys_vhangup(void);
-asmlinkage long sys_chown(const char __user *filename,
- uid_t user, gid_t group);
-asmlinkage long sys_lchown(const char __user *filename,
- uid_t user, gid_t group);
-asmlinkage long sys_fchown(unsigned int fd, uid_t user, gid_t group);
-#ifdef CONFIG_UID16
-asmlinkage long sys_chown16(const char __user *filename,
- old_uid_t user, old_gid_t group);
-asmlinkage long sys_lchown16(const char __user *filename,
- old_uid_t user, old_gid_t group);
-asmlinkage long sys_fchown16(unsigned int fd, old_uid_t user, old_gid_t group);
-asmlinkage long sys_setregid16(old_gid_t rgid, old_gid_t egid);
-asmlinkage long sys_setgid16(old_gid_t gid);
-asmlinkage long sys_setreuid16(old_uid_t ruid, old_uid_t euid);
-asmlinkage long sys_setuid16(old_uid_t uid);
-asmlinkage long sys_setresuid16(old_uid_t ruid, old_uid_t euid, old_uid_t suid);
-asmlinkage long sys_getresuid16(old_uid_t __user *ruid,
- old_uid_t __user *euid, old_uid_t __user *suid);
-asmlinkage long sys_setresgid16(old_gid_t rgid, old_gid_t egid, old_gid_t sgid);
-asmlinkage long sys_getresgid16(old_gid_t __user *rgid,
- old_gid_t __user *egid, old_gid_t __user *sgid);
-asmlinkage long sys_setfsuid16(old_uid_t uid);
-asmlinkage long sys_setfsgid16(old_gid_t gid);
-asmlinkage long sys_getgroups16(int gidsetsize, old_gid_t __user *grouplist);
-asmlinkage long sys_setgroups16(int gidsetsize, old_gid_t __user *grouplist);
-asmlinkage long sys_getuid16(void);
-asmlinkage long sys_geteuid16(void);
-asmlinkage long sys_getgid16(void);
-asmlinkage long sys_getegid16(void);
-#endif
-
-asmlinkage long sys_utime(char __user *filename,
- struct utimbuf __user *times);
-asmlinkage long sys_utimes(char __user *filename,
- struct timeval __user *utimes);
-asmlinkage long sys_lseek(unsigned int fd, off_t offset,
- unsigned int origin);
-asmlinkage long sys_llseek(unsigned int fd, unsigned long offset_high,
- unsigned long offset_low, loff_t __user *result,
- unsigned int origin);
-asmlinkage long sys_read(unsigned int fd, char __user *buf, size_t count);
-asmlinkage long sys_readahead(int fd, loff_t offset, size_t count);
-asmlinkage long sys_readv(unsigned long fd,
- const struct iovec __user *vec,
- unsigned long vlen);
-asmlinkage long sys_write(unsigned int fd, const char __user *buf,
- size_t count);
-asmlinkage long sys_writev(unsigned long fd,
- const struct iovec __user *vec,
- unsigned long vlen);
-asmlinkage long sys_pread64(unsigned int fd, char __user *buf,
- size_t count, loff_t pos);
-asmlinkage long sys_pwrite64(unsigned int fd, const char __user *buf,
- size_t count, loff_t pos);
-asmlinkage long sys_preadv(unsigned long fd, const struct iovec __user *vec,
- unsigned long vlen, unsigned long pos_l, unsigned long pos_h);
-asmlinkage long sys_pwritev(unsigned long fd, const struct iovec __user *vec,
- unsigned long vlen, unsigned long pos_l, unsigned long pos_h);
-asmlinkage long sys_getcwd(char __user *buf, unsigned long size);
-asmlinkage long sys_mkdir(const char __user *pathname, umode_t mode);
-asmlinkage long sys_chdir(const char __user *filename);
-asmlinkage long sys_fchdir(unsigned int fd);
-asmlinkage long sys_rmdir(const char __user *pathname);
-asmlinkage long sys_lookup_dcookie(u64 cookie64, char __user *buf, size_t len);
-asmlinkage long sys_quotactl(unsigned int cmd, const char __user *special,
- qid_t id, void __user *addr);
-asmlinkage long sys_getdents(unsigned int fd,
- struct linux_dirent __user *dirent,
- unsigned int count);
-asmlinkage long sys_getdents64(unsigned int fd,
- struct linux_dirent64 __user *dirent,
- unsigned int count);
-
-asmlinkage long sys_setsockopt(int fd, int level, int optname,
- char __user *optval, int optlen);
-asmlinkage long sys_getsockopt(int fd, int level, int optname,
- char __user *optval, int __user *optlen);
-asmlinkage long sys_bind(int, struct sockaddr __user *, int);
-asmlinkage long sys_connect(int, struct sockaddr __user *, int);
-asmlinkage long sys_accept(int, struct sockaddr __user *, int __user *);
-asmlinkage long sys_accept4(int, struct sockaddr __user *, int __user *, int);
-asmlinkage long sys_getsockname(int, struct sockaddr __user *, int __user *);
-asmlinkage long sys_getpeername(int, struct sockaddr __user *, int __user *);
-asmlinkage long sys_send(int, void __user *, size_t, unsigned);
-asmlinkage long sys_sendto(int, void __user *, size_t, unsigned,
- struct sockaddr __user *, int);
-asmlinkage long sys_sendmsg(int fd, struct msghdr __user *msg, unsigned flags);
-asmlinkage long sys_sendmmsg(int fd, struct mmsghdr __user *msg,
- unsigned int vlen, unsigned flags);
-asmlinkage long sys_recv(int, void __user *, size_t, unsigned);
-asmlinkage long sys_recvfrom(int, void __user *, size_t, unsigned,
- struct sockaddr __user *, int __user *);
-asmlinkage long sys_recvmsg(int fd, struct msghdr __user *msg, unsigned flags);
-asmlinkage long sys_recvmmsg(int fd, struct mmsghdr __user *msg,
- unsigned int vlen, unsigned flags,
- struct timespec __user *timeout);
-asmlinkage long sys_socket(int, int, int);
-asmlinkage long sys_socketpair(int, int, int, int __user *);
-asmlinkage long sys_socketcall(int call, unsigned long __user *args);
-asmlinkage long sys_listen(int, int);
-asmlinkage long sys_poll(struct pollfd __user *ufds, unsigned int nfds,
- int timeout);
-asmlinkage long sys_select(int n, fd_set __user *inp, fd_set __user *outp,
- fd_set __user *exp, struct timeval __user *tvp);
-asmlinkage long sys_old_select(struct sel_arg_struct __user *arg);
-asmlinkage long sys_epoll_create(int size);
-asmlinkage long sys_epoll_create1(int flags);
-asmlinkage long sys_epoll_ctl(int epfd, int op, int fd,
- struct epoll_event __user *event);
-asmlinkage long sys_epoll_wait(int epfd, struct epoll_event __user *events,
- int maxevents, int timeout);
-asmlinkage long sys_epoll_pwait(int epfd, struct epoll_event __user *events,
- int maxevents, int timeout,
- const sigset_t __user *sigmask,
- size_t sigsetsize);
-asmlinkage long sys_gethostname(char __user *name, int len);
-asmlinkage long sys_sethostname(char __user *name, int len);
-asmlinkage long sys_setdomainname(char __user *name, int len);
-asmlinkage long sys_newuname(struct new_utsname __user *name);
-asmlinkage long sys_uname(struct old_utsname __user *);
-asmlinkage long sys_olduname(struct oldold_utsname __user *);
-
-asmlinkage long sys_getrlimit(unsigned int resource,
- struct rlimit __user *rlim);
-#if defined(COMPAT_RLIM_OLD_INFINITY) || !(defined(CONFIG_IA64))
-asmlinkage long sys_old_getrlimit(unsigned int resource, struct rlimit __user *rlim);
-#endif
-asmlinkage long sys_setrlimit(unsigned int resource,
- struct rlimit __user *rlim);
-asmlinkage long sys_prlimit64(pid_t pid, unsigned int resource,
- const struct rlimit64 __user *new_rlim,
- struct rlimit64 __user *old_rlim);
-asmlinkage long sys_getrusage(int who, struct rusage __user *ru);
-asmlinkage long sys_umask(int mask);
-
-asmlinkage long sys_msgget(key_t key, int msgflg);
-asmlinkage long sys_msgsnd(int msqid, struct msgbuf __user *msgp,
- size_t msgsz, int msgflg);
-asmlinkage long sys_msgrcv(int msqid, struct msgbuf __user *msgp,
- size_t msgsz, long msgtyp, int msgflg);
-asmlinkage long sys_msgctl(int msqid, int cmd, struct msqid_ds __user *buf);
-
-asmlinkage long sys_semget(key_t key, int nsems, int semflg);
-asmlinkage long sys_semop(int semid, struct sembuf __user *sops,
- unsigned nsops);
-asmlinkage long sys_semctl(int semid, int semnum, int cmd, union semun arg);
-asmlinkage long sys_semtimedop(int semid, struct sembuf __user *sops,
- unsigned nsops,
- const struct timespec __user *timeout);
-asmlinkage long sys_shmat(int shmid, char __user *shmaddr, int shmflg);
-asmlinkage long sys_shmget(key_t key, size_t size, int flag);
-asmlinkage long sys_shmdt(char __user *shmaddr);
-asmlinkage long sys_shmctl(int shmid, int cmd, struct shmid_ds __user *buf);
-asmlinkage long sys_ipc(unsigned int call, int first, unsigned long second,
- unsigned long third, void __user *ptr, long fifth);
-
-asmlinkage long sys_mq_open(const char __user *name, int oflag, umode_t mode, struct mq_attr __user *attr);
-asmlinkage long sys_mq_unlink(const char __user *name);
-asmlinkage long sys_mq_timedsend(mqd_t mqdes, const char __user *msg_ptr, size_t msg_len, unsigned int msg_prio, const struct timespec __user *abs_timeout);
-asmlinkage long sys_mq_timedreceive(mqd_t mqdes, char __user *msg_ptr, size_t msg_len, unsigned int __user *msg_prio, const struct timespec __user *abs_timeout);
-asmlinkage long sys_mq_notify(mqd_t mqdes, const struct sigevent __user *notification);
-asmlinkage long sys_mq_getsetattr(mqd_t mqdes, const struct mq_attr __user *mqstat, struct mq_attr __user *omqstat);
-
-asmlinkage long sys_pciconfig_iobase(long which, unsigned long bus, unsigned long devfn);
-asmlinkage long sys_pciconfig_read(unsigned long bus, unsigned long dfn,
- unsigned long off, unsigned long len,
- void __user *buf);
-asmlinkage long sys_pciconfig_write(unsigned long bus, unsigned long dfn,
- unsigned long off, unsigned long len,
- void __user *buf);
-
-asmlinkage long sys_prctl(int option, unsigned long arg2, unsigned long arg3,
- unsigned long arg4, unsigned long arg5);
-asmlinkage long sys_swapon(const char __user *specialfile, int swap_flags);
-asmlinkage long sys_swapoff(const char __user *specialfile);
-asmlinkage long sys_sysctl(struct __sysctl_args __user *args);
-asmlinkage long sys_sysinfo(struct sysinfo __user *info);
-asmlinkage long sys_sysfs(int option,
- unsigned long arg1, unsigned long arg2);
-asmlinkage long sys_syslog(int type, char __user *buf, int len);
-asmlinkage long sys_uselib(const char __user *library);
-asmlinkage long sys_ni_syscall(void);
-asmlinkage long sys_ptrace(long request, long pid, unsigned long addr,
- unsigned long data);
-
-asmlinkage long sys_add_key(const char __user *_type,
- const char __user *_description,
- const void __user *_payload,
- size_t plen,
- key_serial_t destringid);
-
-asmlinkage long sys_request_key(const char __user *_type,
- const char __user *_description,
- const char __user *_callout_info,
- key_serial_t destringid);
-
-asmlinkage long sys_keyctl(int cmd, unsigned long arg2, unsigned long arg3,
- unsigned long arg4, unsigned long arg5);
-
-asmlinkage long sys_ioprio_set(int which, int who, int ioprio);
-asmlinkage long sys_ioprio_get(int which, int who);
-asmlinkage long sys_set_mempolicy(int mode, unsigned long __user *nmask,
- unsigned long maxnode);
-asmlinkage long sys_migrate_pages(pid_t pid, unsigned long maxnode,
- const unsigned long __user *from,
- const unsigned long __user *to);
-asmlinkage long sys_move_pages(pid_t pid, unsigned long nr_pages,
- const void __user * __user *pages,
- const int __user *nodes,
- int __user *status,
- int flags);
-asmlinkage long sys_mbind(unsigned long start, unsigned long len,
- unsigned long mode,
- unsigned long __user *nmask,
- unsigned long maxnode,
- unsigned flags);
-asmlinkage long sys_get_mempolicy(int __user *policy,
- unsigned long __user *nmask,
- unsigned long maxnode,
- unsigned long addr, unsigned long flags);
-
-asmlinkage long sys_inotify_init(void);
-asmlinkage long sys_inotify_init1(int flags);
-asmlinkage long sys_inotify_add_watch(int fd, const char __user *path,
- u32 mask);
-asmlinkage long sys_inotify_rm_watch(int fd, __s32 wd);
-
-asmlinkage long sys_spu_run(int fd, __u32 __user *unpc,
- __u32 __user *ustatus);
-asmlinkage long sys_spu_create(const char __user *name,
- unsigned int flags, umode_t mode, int fd);
-
-asmlinkage long sys_mknodat(int dfd, const char __user * filename, umode_t mode,
- unsigned dev);
-asmlinkage long sys_mkdirat(int dfd, const char __user * pathname, umode_t mode);
-asmlinkage long sys_unlinkat(int dfd, const char __user * pathname, int flag);
-asmlinkage long sys_symlinkat(const char __user * oldname,
- int newdfd, const char __user * newname);
-asmlinkage long sys_linkat(int olddfd, const char __user *oldname,
- int newdfd, const char __user *newname, int flags);
-asmlinkage long sys_renameat(int olddfd, const char __user * oldname,
- int newdfd, const char __user * newname);
-asmlinkage long sys_futimesat(int dfd, const char __user *filename,
- struct timeval __user *utimes);
-asmlinkage long sys_faccessat(int dfd, const char __user *filename, int mode);
-asmlinkage long sys_fchmodat(int dfd, const char __user * filename,
- umode_t mode);
-asmlinkage long sys_fchownat(int dfd, const char __user *filename, uid_t user,
- gid_t group, int flag);
-asmlinkage long sys_openat(int dfd, const char __user *filename, int flags,
- umode_t mode);
-asmlinkage long sys_newfstatat(int dfd, const char __user *filename,
- struct stat __user *statbuf, int flag);
-asmlinkage long sys_fstatat64(int dfd, const char __user *filename,
- struct stat64 __user *statbuf, int flag);
-asmlinkage long sys_readlinkat(int dfd, const char __user *path, char __user *buf,
- int bufsiz);
-asmlinkage long sys_utimensat(int dfd, const char __user *filename,
- struct timespec __user *utimes, int flags);
-asmlinkage long sys_unshare(unsigned long unshare_flags);
-
-asmlinkage long sys_splice(int fd_in, loff_t __user *off_in,
- int fd_out, loff_t __user *off_out,
- size_t len, unsigned int flags);
-
-asmlinkage long sys_vmsplice(int fd, const struct iovec __user *iov,
- unsigned long nr_segs, unsigned int flags);
-
-asmlinkage long sys_tee(int fdin, int fdout, size_t len, unsigned int flags);
-
-asmlinkage long sys_sync_file_range(int fd, loff_t offset, loff_t nbytes,
- unsigned int flags);
-asmlinkage long sys_sync_file_range2(int fd, unsigned int flags,
- loff_t offset, loff_t nbytes);
-asmlinkage long sys_get_robust_list(int pid,
- struct robust_list_head __user * __user *head_ptr,
- size_t __user *len_ptr);
-asmlinkage long sys_set_robust_list(struct robust_list_head __user *head,
- size_t len);
-asmlinkage long sys_getcpu(unsigned __user *cpu, unsigned __user *node, struct getcpu_cache __user *cache);
-asmlinkage long sys_signalfd(int ufd, sigset_t __user *user_mask, size_t sizemask);
-asmlinkage long sys_signalfd4(int ufd, sigset_t __user *user_mask, size_t sizemask, int flags);
-asmlinkage long sys_timerfd_create(int clockid, int flags);
-asmlinkage long sys_timerfd_settime(int ufd, int flags,
- const struct itimerspec __user *utmr,
- struct itimerspec __user *otmr);
-asmlinkage long sys_timerfd_gettime(int ufd, struct itimerspec __user *otmr);
-asmlinkage long sys_eventfd(unsigned int count);
-asmlinkage long sys_eventfd2(unsigned int count, int flags);
-asmlinkage long sys_fallocate(int fd, int mode, loff_t offset, loff_t len);
-asmlinkage long sys_old_readdir(unsigned int, struct old_linux_dirent __user *, unsigned int);
-asmlinkage long sys_pselect6(int, fd_set __user *, fd_set __user *,
- fd_set __user *, struct timespec __user *,
- void __user *);
-asmlinkage long sys_ppoll(struct pollfd __user *, unsigned int,
- struct timespec __user *, const sigset_t __user *,
- size_t);
-asmlinkage long sys_fanotify_init(unsigned int flags, unsigned int event_f_flags);
-asmlinkage long sys_fanotify_mark(int fanotify_fd, unsigned int flags,
- u64 mask, int fd,
- const char __user *pathname);
-asmlinkage long sys_syncfs(int fd);
-
-int kernel_execve(const char *filename, const char *const argv[], const char *const envp[]);
-
-
-asmlinkage long sys_perf_event_open(
- struct perf_event_attr __user *attr_uptr,
- pid_t pid, int cpu, int group_fd, unsigned long flags);
-
-asmlinkage long sys_mmap_pgoff(unsigned long addr, unsigned long len,
- unsigned long prot, unsigned long flags,
- unsigned long fd, unsigned long pgoff);
-asmlinkage long sys_old_mmap(struct mmap_arg_struct __user *arg);
-asmlinkage long sys_name_to_handle_at(int dfd, const char __user *name,
- struct file_handle __user *handle,
- int __user *mnt_id, int flag);
-asmlinkage long sys_open_by_handle_at(int mountdirfd,
- struct file_handle __user *handle,
- int flags);
-asmlinkage long sys_setns(int fd, int nstype);
-asmlinkage long sys_process_vm_readv(pid_t pid,
- const struct iovec __user *lvec,
- unsigned long liovcnt,
- const struct iovec __user *rvec,
- unsigned long riovcnt,
- unsigned long flags);
-asmlinkage long sys_process_vm_writev(pid_t pid,
- const struct iovec __user *lvec,
- unsigned long liovcnt,
- const struct iovec __user *rvec,
- unsigned long riovcnt,
- unsigned long flags);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/syscore_ops.h b/ANDROID_3.4.5/include/linux/syscore_ops.h
deleted file mode 100644
index 27b3b0bc..00000000
--- a/ANDROID_3.4.5/include/linux/syscore_ops.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * syscore_ops.h - System core operations.
- *
- * Copyright (C) 2011 Rafael J. Wysocki <rjw@sisk.pl>, Novell Inc.
- *
- * This file is released under the GPLv2.
- */
-
-#ifndef _LINUX_SYSCORE_OPS_H
-#define _LINUX_SYSCORE_OPS_H
-
-#include <linux/list.h>
-
-struct syscore_ops {
- struct list_head node;
- int (*suspend)(void);
- void (*resume)(void);
- void (*shutdown)(void);
-};
-
-extern void register_syscore_ops(struct syscore_ops *ops);
-extern void unregister_syscore_ops(struct syscore_ops *ops);
-#ifdef CONFIG_PM_SLEEP
-extern int syscore_suspend(void);
-extern void syscore_resume(void);
-#endif
-extern void syscore_shutdown(void);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/sysctl.h b/ANDROID_3.4.5/include/linux/sysctl.h
deleted file mode 100644
index c34b4c82..00000000
--- a/ANDROID_3.4.5/include/linux/sysctl.h
+++ /dev/null
@@ -1,1127 +0,0 @@
-/*
- * sysctl.h: General linux system control interface
- *
- * Begun 24 March 1995, Stephen Tweedie
- *
- ****************************************************************
- ****************************************************************
- **
- ** WARNING:
- ** The values in this file are exported to user space via
- ** the sysctl() binary interface. Do *NOT* change the
- ** numbering of any existing values here, and do not change
- ** any numbers within any one set of values. If you have to
- ** redefine an existing interface, use a new number for it.
- ** The kernel will then return -ENOTDIR to any application using
- ** the old binary interface.
- **
- ****************************************************************
- ****************************************************************
- */
-
-#ifndef _LINUX_SYSCTL_H
-#define _LINUX_SYSCTL_H
-
-#include <linux/kernel.h>
-#include <linux/types.h>
-#include <linux/compiler.h>
-
-struct completion;
-
-#define CTL_MAXNAME 10 /* how many path components do we allow in a
- call to sysctl? In other words, what is
- the largest acceptable value for the nlen
- member of a struct __sysctl_args to have? */
-
-struct __sysctl_args {
- int __user *name;
- int nlen;
- void __user *oldval;
- size_t __user *oldlenp;
- void __user *newval;
- size_t newlen;
- unsigned long __unused[4];
-};
-
-/* Define sysctl names first */
-
-/* Top-level names: */
-
-enum
-{
- CTL_KERN=1, /* General kernel info and control */
- CTL_VM=2, /* VM management */
- CTL_NET=3, /* Networking */
- CTL_PROC=4, /* removal breaks strace(1) compilation */
- CTL_FS=5, /* Filesystems */
- CTL_DEBUG=6, /* Debugging */
- CTL_DEV=7, /* Devices */
- CTL_BUS=8, /* Busses */
- CTL_ABI=9, /* Binary emulation */
- CTL_CPU=10, /* CPU stuff (speed scaling, etc) */
- CTL_ARLAN=254, /* arlan wireless driver */
- CTL_S390DBF=5677, /* s390 debug */
- CTL_SUNRPC=7249, /* sunrpc debug */
- CTL_PM=9899, /* frv power management */
- CTL_FRV=9898, /* frv specific sysctls */
-};
-
-/* CTL_BUS names: */
-enum
-{
- CTL_BUS_ISA=1 /* ISA */
-};
-
-/* /proc/sys/fs/inotify/ */
-enum
-{
- INOTIFY_MAX_USER_INSTANCES=1, /* max instances per user */
- INOTIFY_MAX_USER_WATCHES=2, /* max watches per user */
- INOTIFY_MAX_QUEUED_EVENTS=3 /* max queued events per instance */
-};
-
-/* CTL_KERN names: */
-enum
-{
- KERN_OSTYPE=1, /* string: system version */
- KERN_OSRELEASE=2, /* string: system release */
- KERN_OSREV=3, /* int: system revision */
- KERN_VERSION=4, /* string: compile time info */
- KERN_SECUREMASK=5, /* struct: maximum rights mask */
- KERN_PROF=6, /* table: profiling information */
- KERN_NODENAME=7, /* string: hostname */
- KERN_DOMAINNAME=8, /* string: domainname */
-
- KERN_PANIC=15, /* int: panic timeout */
- KERN_REALROOTDEV=16, /* real root device to mount after initrd */
-
- KERN_SPARC_REBOOT=21, /* reboot command on Sparc */
- KERN_CTLALTDEL=22, /* int: allow ctl-alt-del to reboot */
- KERN_PRINTK=23, /* struct: control printk logging parameters */
- KERN_NAMETRANS=24, /* Name translation */
- KERN_PPC_HTABRECLAIM=25, /* turn htab reclaimation on/off on PPC */
- KERN_PPC_ZEROPAGED=26, /* turn idle page zeroing on/off on PPC */
- KERN_PPC_POWERSAVE_NAP=27, /* use nap mode for power saving */
- KERN_MODPROBE=28, /* string: modprobe path */
- KERN_SG_BIG_BUFF=29, /* int: sg driver reserved buffer size */
- KERN_ACCT=30, /* BSD process accounting parameters */
- KERN_PPC_L2CR=31, /* l2cr register on PPC */
-
- KERN_RTSIGNR=32, /* Number of rt sigs queued */
- KERN_RTSIGMAX=33, /* Max queuable */
-
- KERN_SHMMAX=34, /* long: Maximum shared memory segment */
- KERN_MSGMAX=35, /* int: Maximum size of a messege */
- KERN_MSGMNB=36, /* int: Maximum message queue size */
- KERN_MSGPOOL=37, /* int: Maximum system message pool size */
- KERN_SYSRQ=38, /* int: Sysreq enable */
- KERN_MAX_THREADS=39, /* int: Maximum nr of threads in the system */
- KERN_RANDOM=40, /* Random driver */
- KERN_SHMALL=41, /* int: Maximum size of shared memory */
- KERN_MSGMNI=42, /* int: msg queue identifiers */
- KERN_SEM=43, /* struct: sysv semaphore limits */
- KERN_SPARC_STOP_A=44, /* int: Sparc Stop-A enable */
- KERN_SHMMNI=45, /* int: shm array identifiers */
- KERN_OVERFLOWUID=46, /* int: overflow UID */
- KERN_OVERFLOWGID=47, /* int: overflow GID */
- KERN_SHMPATH=48, /* string: path to shm fs */
- KERN_HOTPLUG=49, /* string: path to uevent helper (deprecated) */
- KERN_IEEE_EMULATION_WARNINGS=50, /* int: unimplemented ieee instructions */
- KERN_S390_USER_DEBUG_LOGGING=51, /* int: dumps of user faults */
- KERN_CORE_USES_PID=52, /* int: use core or core.%pid */
- KERN_TAINTED=53, /* int: various kernel tainted flags */
- KERN_CADPID=54, /* int: PID of the process to notify on CAD */
- KERN_PIDMAX=55, /* int: PID # limit */
- KERN_CORE_PATTERN=56, /* string: pattern for core-file names */
- KERN_PANIC_ON_OOPS=57, /* int: whether we will panic on an oops */
- KERN_HPPA_PWRSW=58, /* int: hppa soft-power enable */
- KERN_HPPA_UNALIGNED=59, /* int: hppa unaligned-trap enable */
- KERN_PRINTK_RATELIMIT=60, /* int: tune printk ratelimiting */
- KERN_PRINTK_RATELIMIT_BURST=61, /* int: tune printk ratelimiting */
- KERN_PTY=62, /* dir: pty driver */
- KERN_NGROUPS_MAX=63, /* int: NGROUPS_MAX */
- KERN_SPARC_SCONS_PWROFF=64, /* int: serial console power-off halt */
- KERN_HZ_TIMER=65, /* int: hz timer on or off */
- KERN_UNKNOWN_NMI_PANIC=66, /* int: unknown nmi panic flag */
- KERN_BOOTLOADER_TYPE=67, /* int: boot loader type */
- KERN_RANDOMIZE=68, /* int: randomize virtual address space */
- KERN_SETUID_DUMPABLE=69, /* int: behaviour of dumps for setuid core */
- KERN_SPIN_RETRY=70, /* int: number of spinlock retries */
- KERN_ACPI_VIDEO_FLAGS=71, /* int: flags for setting up video after ACPI sleep */
- KERN_IA64_UNALIGNED=72, /* int: ia64 unaligned userland trap enable */
- KERN_COMPAT_LOG=73, /* int: print compat layer messages */
- KERN_MAX_LOCK_DEPTH=74, /* int: rtmutex's maximum lock depth */
- KERN_NMI_WATCHDOG=75, /* int: enable/disable nmi watchdog */
- KERN_PANIC_ON_NMI=76, /* int: whether we will panic on an unrecovered */
-};
-
-
-
-/* CTL_VM names: */
-enum
-{
- VM_UNUSED1=1, /* was: struct: Set vm swapping control */
- VM_UNUSED2=2, /* was; int: Linear or sqrt() swapout for hogs */
- VM_UNUSED3=3, /* was: struct: Set free page thresholds */
- VM_UNUSED4=4, /* Spare */
- VM_OVERCOMMIT_MEMORY=5, /* Turn off the virtual memory safety limit */
- VM_UNUSED5=6, /* was: struct: Set buffer memory thresholds */
- VM_UNUSED7=7, /* was: struct: Set cache memory thresholds */
- VM_UNUSED8=8, /* was: struct: Control kswapd behaviour */
- VM_UNUSED9=9, /* was: struct: Set page table cache parameters */
- VM_PAGE_CLUSTER=10, /* int: set number of pages to swap together */
- VM_DIRTY_BACKGROUND=11, /* dirty_background_ratio */
- VM_DIRTY_RATIO=12, /* dirty_ratio */
- VM_DIRTY_WB_CS=13, /* dirty_writeback_centisecs */
- VM_DIRTY_EXPIRE_CS=14, /* dirty_expire_centisecs */
- VM_NR_PDFLUSH_THREADS=15, /* nr_pdflush_threads */
- VM_OVERCOMMIT_RATIO=16, /* percent of RAM to allow overcommit in */
- VM_PAGEBUF=17, /* struct: Control pagebuf parameters */
- VM_HUGETLB_PAGES=18, /* int: Number of available Huge Pages */
- VM_SWAPPINESS=19, /* Tendency to steal mapped memory */
- VM_LOWMEM_RESERVE_RATIO=20,/* reservation ratio for lower memory zones */
- VM_MIN_FREE_KBYTES=21, /* Minimum free kilobytes to maintain */
- VM_MAX_MAP_COUNT=22, /* int: Maximum number of mmaps/address-space */
- VM_LAPTOP_MODE=23, /* vm laptop mode */
- VM_BLOCK_DUMP=24, /* block dump mode */
- VM_HUGETLB_GROUP=25, /* permitted hugetlb group */
- VM_VFS_CACHE_PRESSURE=26, /* dcache/icache reclaim pressure */
- VM_LEGACY_VA_LAYOUT=27, /* legacy/compatibility virtual address space layout */
- VM_SWAP_TOKEN_TIMEOUT=28, /* default time for token time out */
- VM_DROP_PAGECACHE=29, /* int: nuke lots of pagecache */
- VM_PERCPU_PAGELIST_FRACTION=30,/* int: fraction of pages in each percpu_pagelist */
- VM_ZONE_RECLAIM_MODE=31, /* reclaim local zone memory before going off node */
- VM_MIN_UNMAPPED=32, /* Set min percent of unmapped pages */
- VM_PANIC_ON_OOM=33, /* panic at out-of-memory */
- VM_VDSO_ENABLED=34, /* map VDSO into new processes? */
- VM_MIN_SLAB=35, /* Percent pages ignored by zone reclaim */
-};
-
-
-/* CTL_NET names: */
-enum
-{
- NET_CORE=1,
- NET_ETHER=2,
- NET_802=3,
- NET_UNIX=4,
- NET_IPV4=5,
- NET_IPX=6,
- NET_ATALK=7,
- NET_NETROM=8,
- NET_AX25=9,
- NET_BRIDGE=10,
- NET_ROSE=11,
- NET_IPV6=12,
- NET_X25=13,
- NET_TR=14,
- NET_DECNET=15,
- NET_ECONET=16,
- NET_SCTP=17,
- NET_LLC=18,
- NET_NETFILTER=19,
- NET_DCCP=20,
- NET_IRDA=412,
-};
-
-/* /proc/sys/kernel/random */
-enum
-{
- RANDOM_POOLSIZE=1,
- RANDOM_ENTROPY_COUNT=2,
- RANDOM_READ_THRESH=3,
- RANDOM_WRITE_THRESH=4,
- RANDOM_BOOT_ID=5,
- RANDOM_UUID=6
-};
-
-/* /proc/sys/kernel/pty */
-enum
-{
- PTY_MAX=1,
- PTY_NR=2
-};
-
-/* /proc/sys/bus/isa */
-enum
-{
- BUS_ISA_MEM_BASE=1,
- BUS_ISA_PORT_BASE=2,
- BUS_ISA_PORT_SHIFT=3
-};
-
-/* /proc/sys/net/core */
-enum
-{
- NET_CORE_WMEM_MAX=1,
- NET_CORE_RMEM_MAX=2,
- NET_CORE_WMEM_DEFAULT=3,
- NET_CORE_RMEM_DEFAULT=4,
-/* was NET_CORE_DESTROY_DELAY */
- NET_CORE_MAX_BACKLOG=6,
- NET_CORE_FASTROUTE=7,
- NET_CORE_MSG_COST=8,
- NET_CORE_MSG_BURST=9,
- NET_CORE_OPTMEM_MAX=10,
- NET_CORE_HOT_LIST_LENGTH=11,
- NET_CORE_DIVERT_VERSION=12,
- NET_CORE_NO_CONG_THRESH=13,
- NET_CORE_NO_CONG=14,
- NET_CORE_LO_CONG=15,
- NET_CORE_MOD_CONG=16,
- NET_CORE_DEV_WEIGHT=17,
- NET_CORE_SOMAXCONN=18,
- NET_CORE_BUDGET=19,
- NET_CORE_AEVENT_ETIME=20,
- NET_CORE_AEVENT_RSEQTH=21,
- NET_CORE_WARNINGS=22,
-};
-
-/* /proc/sys/net/ethernet */
-
-/* /proc/sys/net/802 */
-
-/* /proc/sys/net/unix */
-
-enum
-{
- NET_UNIX_DESTROY_DELAY=1,
- NET_UNIX_DELETE_DELAY=2,
- NET_UNIX_MAX_DGRAM_QLEN=3,
-};
-
-/* /proc/sys/net/netfilter */
-enum
-{
- NET_NF_CONNTRACK_MAX=1,
- NET_NF_CONNTRACK_TCP_TIMEOUT_SYN_SENT=2,
- NET_NF_CONNTRACK_TCP_TIMEOUT_SYN_RECV=3,
- NET_NF_CONNTRACK_TCP_TIMEOUT_ESTABLISHED=4,
- NET_NF_CONNTRACK_TCP_TIMEOUT_FIN_WAIT=5,
- NET_NF_CONNTRACK_TCP_TIMEOUT_CLOSE_WAIT=6,
- NET_NF_CONNTRACK_TCP_TIMEOUT_LAST_ACK=7,
- NET_NF_CONNTRACK_TCP_TIMEOUT_TIME_WAIT=8,
- NET_NF_CONNTRACK_TCP_TIMEOUT_CLOSE=9,
- NET_NF_CONNTRACK_UDP_TIMEOUT=10,
- NET_NF_CONNTRACK_UDP_TIMEOUT_STREAM=11,
- NET_NF_CONNTRACK_ICMP_TIMEOUT=12,
- NET_NF_CONNTRACK_GENERIC_TIMEOUT=13,
- NET_NF_CONNTRACK_BUCKETS=14,
- NET_NF_CONNTRACK_LOG_INVALID=15,
- NET_NF_CONNTRACK_TCP_TIMEOUT_MAX_RETRANS=16,
- NET_NF_CONNTRACK_TCP_LOOSE=17,
- NET_NF_CONNTRACK_TCP_BE_LIBERAL=18,
- NET_NF_CONNTRACK_TCP_MAX_RETRANS=19,
- NET_NF_CONNTRACK_SCTP_TIMEOUT_CLOSED=20,
- NET_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_WAIT=21,
- NET_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_ECHOED=22,
- NET_NF_CONNTRACK_SCTP_TIMEOUT_ESTABLISHED=23,
- NET_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_SENT=24,
- NET_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_RECD=25,
- NET_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_ACK_SENT=26,
- NET_NF_CONNTRACK_COUNT=27,
- NET_NF_CONNTRACK_ICMPV6_TIMEOUT=28,
- NET_NF_CONNTRACK_FRAG6_TIMEOUT=29,
- NET_NF_CONNTRACK_FRAG6_LOW_THRESH=30,
- NET_NF_CONNTRACK_FRAG6_HIGH_THRESH=31,
- NET_NF_CONNTRACK_CHECKSUM=32,
-};
-
-/* /proc/sys/net/ipv4 */
-enum
-{
- /* v2.0 compatibile variables */
- NET_IPV4_FORWARD=8,
- NET_IPV4_DYNADDR=9,
-
- NET_IPV4_CONF=16,
- NET_IPV4_NEIGH=17,
- NET_IPV4_ROUTE=18,
- NET_IPV4_FIB_HASH=19,
- NET_IPV4_NETFILTER=20,
-
- NET_IPV4_TCP_TIMESTAMPS=33,
- NET_IPV4_TCP_WINDOW_SCALING=34,
- NET_IPV4_TCP_SACK=35,
- NET_IPV4_TCP_RETRANS_COLLAPSE=36,
- NET_IPV4_DEFAULT_TTL=37,
- NET_IPV4_AUTOCONFIG=38,
- NET_IPV4_NO_PMTU_DISC=39,
- NET_IPV4_TCP_SYN_RETRIES=40,
- NET_IPV4_IPFRAG_HIGH_THRESH=41,
- NET_IPV4_IPFRAG_LOW_THRESH=42,
- NET_IPV4_IPFRAG_TIME=43,
- NET_IPV4_TCP_MAX_KA_PROBES=44,
- NET_IPV4_TCP_KEEPALIVE_TIME=45,
- NET_IPV4_TCP_KEEPALIVE_PROBES=46,
- NET_IPV4_TCP_RETRIES1=47,
- NET_IPV4_TCP_RETRIES2=48,
- NET_IPV4_TCP_FIN_TIMEOUT=49,
- NET_IPV4_IP_MASQ_DEBUG=50,
- NET_TCP_SYNCOOKIES=51,
- NET_TCP_STDURG=52,
- NET_TCP_RFC1337=53,
- NET_TCP_SYN_TAILDROP=54,
- NET_TCP_MAX_SYN_BACKLOG=55,
- NET_IPV4_LOCAL_PORT_RANGE=56,
- NET_IPV4_ICMP_ECHO_IGNORE_ALL=57,
- NET_IPV4_ICMP_ECHO_IGNORE_BROADCASTS=58,
- NET_IPV4_ICMP_SOURCEQUENCH_RATE=59,
- NET_IPV4_ICMP_DESTUNREACH_RATE=60,
- NET_IPV4_ICMP_TIMEEXCEED_RATE=61,
- NET_IPV4_ICMP_PARAMPROB_RATE=62,
- NET_IPV4_ICMP_ECHOREPLY_RATE=63,
- NET_IPV4_ICMP_IGNORE_BOGUS_ERROR_RESPONSES=64,
- NET_IPV4_IGMP_MAX_MEMBERSHIPS=65,
- NET_TCP_TW_RECYCLE=66,
- NET_IPV4_ALWAYS_DEFRAG=67,
- NET_IPV4_TCP_KEEPALIVE_INTVL=68,
- NET_IPV4_INET_PEER_THRESHOLD=69,
- NET_IPV4_INET_PEER_MINTTL=70,
- NET_IPV4_INET_PEER_MAXTTL=71,
- NET_IPV4_INET_PEER_GC_MINTIME=72,
- NET_IPV4_INET_PEER_GC_MAXTIME=73,
- NET_TCP_ORPHAN_RETRIES=74,
- NET_TCP_ABORT_ON_OVERFLOW=75,
- NET_TCP_SYNACK_RETRIES=76,
- NET_TCP_MAX_ORPHANS=77,
- NET_TCP_MAX_TW_BUCKETS=78,
- NET_TCP_FACK=79,
- NET_TCP_REORDERING=80,
- NET_TCP_ECN=81,
- NET_TCP_DSACK=82,
- NET_TCP_MEM=83,
- NET_TCP_WMEM=84,
- NET_TCP_RMEM=85,
- NET_TCP_APP_WIN=86,
- NET_TCP_ADV_WIN_SCALE=87,
- NET_IPV4_NONLOCAL_BIND=88,
- NET_IPV4_ICMP_RATELIMIT=89,
- NET_IPV4_ICMP_RATEMASK=90,
- NET_TCP_TW_REUSE=91,
- NET_TCP_FRTO=92,
- NET_TCP_LOW_LATENCY=93,
- NET_IPV4_IPFRAG_SECRET_INTERVAL=94,
- NET_IPV4_IGMP_MAX_MSF=96,
- NET_TCP_NO_METRICS_SAVE=97,
- NET_TCP_DEFAULT_WIN_SCALE=105,
- NET_TCP_MODERATE_RCVBUF=106,
- NET_TCP_TSO_WIN_DIVISOR=107,
- NET_TCP_BIC_BETA=108,
- NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR=109,
- NET_TCP_CONG_CONTROL=110,
- NET_TCP_ABC=111,
- NET_IPV4_IPFRAG_MAX_DIST=112,
- NET_TCP_MTU_PROBING=113,
- NET_TCP_BASE_MSS=114,
- NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS=115,
- NET_TCP_DMA_COPYBREAK=116,
- NET_TCP_SLOW_START_AFTER_IDLE=117,
- NET_CIPSOV4_CACHE_ENABLE=118,
- NET_CIPSOV4_CACHE_BUCKET_SIZE=119,
- NET_CIPSOV4_RBM_OPTFMT=120,
- NET_CIPSOV4_RBM_STRICTVALID=121,
- NET_TCP_AVAIL_CONG_CONTROL=122,
- NET_TCP_ALLOWED_CONG_CONTROL=123,
- NET_TCP_MAX_SSTHRESH=124,
- NET_TCP_FRTO_RESPONSE=125,
-};
-
-enum {
- NET_IPV4_ROUTE_FLUSH=1,
- NET_IPV4_ROUTE_MIN_DELAY=2, /* obsolete since 2.6.25 */
- NET_IPV4_ROUTE_MAX_DELAY=3, /* obsolete since 2.6.25 */
- NET_IPV4_ROUTE_GC_THRESH=4,
- NET_IPV4_ROUTE_MAX_SIZE=5,
- NET_IPV4_ROUTE_GC_MIN_INTERVAL=6,
- NET_IPV4_ROUTE_GC_TIMEOUT=7,
- NET_IPV4_ROUTE_GC_INTERVAL=8, /* obsolete since 2.6.38 */
- NET_IPV4_ROUTE_REDIRECT_LOAD=9,
- NET_IPV4_ROUTE_REDIRECT_NUMBER=10,
- NET_IPV4_ROUTE_REDIRECT_SILENCE=11,
- NET_IPV4_ROUTE_ERROR_COST=12,
- NET_IPV4_ROUTE_ERROR_BURST=13,
- NET_IPV4_ROUTE_GC_ELASTICITY=14,
- NET_IPV4_ROUTE_MTU_EXPIRES=15,
- NET_IPV4_ROUTE_MIN_PMTU=16,
- NET_IPV4_ROUTE_MIN_ADVMSS=17,
- NET_IPV4_ROUTE_SECRET_INTERVAL=18,
- NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS=19,
-};
-
-enum
-{
- NET_PROTO_CONF_ALL=-2,
- NET_PROTO_CONF_DEFAULT=-3
-
- /* And device ifindices ... */
-};
-
-enum
-{
- NET_IPV4_CONF_FORWARDING=1,
- NET_IPV4_CONF_MC_FORWARDING=2,
- NET_IPV4_CONF_PROXY_ARP=3,
- NET_IPV4_CONF_ACCEPT_REDIRECTS=4,
- NET_IPV4_CONF_SECURE_REDIRECTS=5,
- NET_IPV4_CONF_SEND_REDIRECTS=6,
- NET_IPV4_CONF_SHARED_MEDIA=7,
- NET_IPV4_CONF_RP_FILTER=8,
- NET_IPV4_CONF_ACCEPT_SOURCE_ROUTE=9,
- NET_IPV4_CONF_BOOTP_RELAY=10,
- NET_IPV4_CONF_LOG_MARTIANS=11,
- NET_IPV4_CONF_TAG=12,
- NET_IPV4_CONF_ARPFILTER=13,
- NET_IPV4_CONF_MEDIUM_ID=14,
- NET_IPV4_CONF_NOXFRM=15,
- NET_IPV4_CONF_NOPOLICY=16,
- NET_IPV4_CONF_FORCE_IGMP_VERSION=17,
- NET_IPV4_CONF_ARP_ANNOUNCE=18,
- NET_IPV4_CONF_ARP_IGNORE=19,
- NET_IPV4_CONF_PROMOTE_SECONDARIES=20,
- NET_IPV4_CONF_ARP_ACCEPT=21,
- NET_IPV4_CONF_ARP_NOTIFY=22,
-};
-
-/* /proc/sys/net/ipv4/netfilter */
-enum
-{
- NET_IPV4_NF_CONNTRACK_MAX=1,
- NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_SYN_SENT=2,
- NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_SYN_RECV=3,
- NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_ESTABLISHED=4,
- NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_FIN_WAIT=5,
- NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_CLOSE_WAIT=6,
- NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_LAST_ACK=7,
- NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_TIME_WAIT=8,
- NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_CLOSE=9,
- NET_IPV4_NF_CONNTRACK_UDP_TIMEOUT=10,
- NET_IPV4_NF_CONNTRACK_UDP_TIMEOUT_STREAM=11,
- NET_IPV4_NF_CONNTRACK_ICMP_TIMEOUT=12,
- NET_IPV4_NF_CONNTRACK_GENERIC_TIMEOUT=13,
- NET_IPV4_NF_CONNTRACK_BUCKETS=14,
- NET_IPV4_NF_CONNTRACK_LOG_INVALID=15,
- NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_MAX_RETRANS=16,
- NET_IPV4_NF_CONNTRACK_TCP_LOOSE=17,
- NET_IPV4_NF_CONNTRACK_TCP_BE_LIBERAL=18,
- NET_IPV4_NF_CONNTRACK_TCP_MAX_RETRANS=19,
- NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_CLOSED=20,
- NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_WAIT=21,
- NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_COOKIE_ECHOED=22,
- NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_ESTABLISHED=23,
- NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_SENT=24,
- NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_RECD=25,
- NET_IPV4_NF_CONNTRACK_SCTP_TIMEOUT_SHUTDOWN_ACK_SENT=26,
- NET_IPV4_NF_CONNTRACK_COUNT=27,
- NET_IPV4_NF_CONNTRACK_CHECKSUM=28,
-};
-
-/* /proc/sys/net/ipv6 */
-enum {
- NET_IPV6_CONF=16,
- NET_IPV6_NEIGH=17,
- NET_IPV6_ROUTE=18,
- NET_IPV6_ICMP=19,
- NET_IPV6_BINDV6ONLY=20,
- NET_IPV6_IP6FRAG_HIGH_THRESH=21,
- NET_IPV6_IP6FRAG_LOW_THRESH=22,
- NET_IPV6_IP6FRAG_TIME=23,
- NET_IPV6_IP6FRAG_SECRET_INTERVAL=24,
- NET_IPV6_MLD_MAX_MSF=25,
-};
-
-enum {
- NET_IPV6_ROUTE_FLUSH=1,
- NET_IPV6_ROUTE_GC_THRESH=2,
- NET_IPV6_ROUTE_MAX_SIZE=3,
- NET_IPV6_ROUTE_GC_MIN_INTERVAL=4,
- NET_IPV6_ROUTE_GC_TIMEOUT=5,
- NET_IPV6_ROUTE_GC_INTERVAL=6,
- NET_IPV6_ROUTE_GC_ELASTICITY=7,
- NET_IPV6_ROUTE_MTU_EXPIRES=8,
- NET_IPV6_ROUTE_MIN_ADVMSS=9,
- NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS=10
-};
-
-enum {
- NET_IPV6_FORWARDING=1,
- NET_IPV6_HOP_LIMIT=2,
- NET_IPV6_MTU=3,
- NET_IPV6_ACCEPT_RA=4,
- NET_IPV6_ACCEPT_REDIRECTS=5,
- NET_IPV6_AUTOCONF=6,
- NET_IPV6_DAD_TRANSMITS=7,
- NET_IPV6_RTR_SOLICITS=8,
- NET_IPV6_RTR_SOLICIT_INTERVAL=9,
- NET_IPV6_RTR_SOLICIT_DELAY=10,
- NET_IPV6_USE_TEMPADDR=11,
- NET_IPV6_TEMP_VALID_LFT=12,
- NET_IPV6_TEMP_PREFERED_LFT=13,
- NET_IPV6_REGEN_MAX_RETRY=14,
- NET_IPV6_MAX_DESYNC_FACTOR=15,
- NET_IPV6_MAX_ADDRESSES=16,
- NET_IPV6_FORCE_MLD_VERSION=17,
- NET_IPV6_ACCEPT_RA_DEFRTR=18,
- NET_IPV6_ACCEPT_RA_PINFO=19,
- NET_IPV6_ACCEPT_RA_RTR_PREF=20,
- NET_IPV6_RTR_PROBE_INTERVAL=21,
- NET_IPV6_ACCEPT_RA_RT_INFO_MAX_PLEN=22,
- NET_IPV6_PROXY_NDP=23,
- NET_IPV6_ACCEPT_SOURCE_ROUTE=25,
- __NET_IPV6_MAX
-};
-
-/* /proc/sys/net/ipv6/icmp */
-enum {
- NET_IPV6_ICMP_RATELIMIT=1
-};
-
-/* /proc/sys/net/<protocol>/neigh/<dev> */
-enum {
- NET_NEIGH_MCAST_SOLICIT=1,
- NET_NEIGH_UCAST_SOLICIT=2,
- NET_NEIGH_APP_SOLICIT=3,
- NET_NEIGH_RETRANS_TIME=4,
- NET_NEIGH_REACHABLE_TIME=5,
- NET_NEIGH_DELAY_PROBE_TIME=6,
- NET_NEIGH_GC_STALE_TIME=7,
- NET_NEIGH_UNRES_QLEN=8,
- NET_NEIGH_PROXY_QLEN=9,
- NET_NEIGH_ANYCAST_DELAY=10,
- NET_NEIGH_PROXY_DELAY=11,
- NET_NEIGH_LOCKTIME=12,
- NET_NEIGH_GC_INTERVAL=13,
- NET_NEIGH_GC_THRESH1=14,
- NET_NEIGH_GC_THRESH2=15,
- NET_NEIGH_GC_THRESH3=16,
- NET_NEIGH_RETRANS_TIME_MS=17,
- NET_NEIGH_REACHABLE_TIME_MS=18,
-};
-
-/* /proc/sys/net/dccp */
-enum {
- NET_DCCP_DEFAULT=1,
-};
-
-/* /proc/sys/net/ipx */
-enum {
- NET_IPX_PPROP_BROADCASTING=1,
- NET_IPX_FORWARDING=2
-};
-
-/* /proc/sys/net/llc */
-enum {
- NET_LLC2=1,
- NET_LLC_STATION=2,
-};
-
-/* /proc/sys/net/llc/llc2 */
-enum {
- NET_LLC2_TIMEOUT=1,
-};
-
-/* /proc/sys/net/llc/station */
-enum {
- NET_LLC_STATION_ACK_TIMEOUT=1,
-};
-
-/* /proc/sys/net/llc/llc2/timeout */
-enum {
- NET_LLC2_ACK_TIMEOUT=1,
- NET_LLC2_P_TIMEOUT=2,
- NET_LLC2_REJ_TIMEOUT=3,
- NET_LLC2_BUSY_TIMEOUT=4,
-};
-
-/* /proc/sys/net/appletalk */
-enum {
- NET_ATALK_AARP_EXPIRY_TIME=1,
- NET_ATALK_AARP_TICK_TIME=2,
- NET_ATALK_AARP_RETRANSMIT_LIMIT=3,
- NET_ATALK_AARP_RESOLVE_TIME=4
-};
-
-
-/* /proc/sys/net/netrom */
-enum {
- NET_NETROM_DEFAULT_PATH_QUALITY=1,
- NET_NETROM_OBSOLESCENCE_COUNT_INITIALISER=2,
- NET_NETROM_NETWORK_TTL_INITIALISER=3,
- NET_NETROM_TRANSPORT_TIMEOUT=4,
- NET_NETROM_TRANSPORT_MAXIMUM_TRIES=5,
- NET_NETROM_TRANSPORT_ACKNOWLEDGE_DELAY=6,
- NET_NETROM_TRANSPORT_BUSY_DELAY=7,
- NET_NETROM_TRANSPORT_REQUESTED_WINDOW_SIZE=8,
- NET_NETROM_TRANSPORT_NO_ACTIVITY_TIMEOUT=9,
- NET_NETROM_ROUTING_CONTROL=10,
- NET_NETROM_LINK_FAILS_COUNT=11,
- NET_NETROM_RESET=12
-};
-
-/* /proc/sys/net/ax25 */
-enum {
- NET_AX25_IP_DEFAULT_MODE=1,
- NET_AX25_DEFAULT_MODE=2,
- NET_AX25_BACKOFF_TYPE=3,
- NET_AX25_CONNECT_MODE=4,
- NET_AX25_STANDARD_WINDOW=5,
- NET_AX25_EXTENDED_WINDOW=6,
- NET_AX25_T1_TIMEOUT=7,
- NET_AX25_T2_TIMEOUT=8,
- NET_AX25_T3_TIMEOUT=9,
- NET_AX25_IDLE_TIMEOUT=10,
- NET_AX25_N2=11,
- NET_AX25_PACLEN=12,
- NET_AX25_PROTOCOL=13,
- NET_AX25_DAMA_SLAVE_TIMEOUT=14
-};
-
-/* /proc/sys/net/rose */
-enum {
- NET_ROSE_RESTART_REQUEST_TIMEOUT=1,
- NET_ROSE_CALL_REQUEST_TIMEOUT=2,
- NET_ROSE_RESET_REQUEST_TIMEOUT=3,
- NET_ROSE_CLEAR_REQUEST_TIMEOUT=4,
- NET_ROSE_ACK_HOLD_BACK_TIMEOUT=5,
- NET_ROSE_ROUTING_CONTROL=6,
- NET_ROSE_LINK_FAIL_TIMEOUT=7,
- NET_ROSE_MAX_VCS=8,
- NET_ROSE_WINDOW_SIZE=9,
- NET_ROSE_NO_ACTIVITY_TIMEOUT=10
-};
-
-/* /proc/sys/net/x25 */
-enum {
- NET_X25_RESTART_REQUEST_TIMEOUT=1,
- NET_X25_CALL_REQUEST_TIMEOUT=2,
- NET_X25_RESET_REQUEST_TIMEOUT=3,
- NET_X25_CLEAR_REQUEST_TIMEOUT=4,
- NET_X25_ACK_HOLD_BACK_TIMEOUT=5,
- NET_X25_FORWARD=6
-};
-
-/* /proc/sys/net/token-ring */
-enum
-{
- NET_TR_RIF_TIMEOUT=1
-};
-
-/* /proc/sys/net/decnet/ */
-enum {
- NET_DECNET_NODE_TYPE = 1,
- NET_DECNET_NODE_ADDRESS = 2,
- NET_DECNET_NODE_NAME = 3,
- NET_DECNET_DEFAULT_DEVICE = 4,
- NET_DECNET_TIME_WAIT = 5,
- NET_DECNET_DN_COUNT = 6,
- NET_DECNET_DI_COUNT = 7,
- NET_DECNET_DR_COUNT = 8,
- NET_DECNET_DST_GC_INTERVAL = 9,
- NET_DECNET_CONF = 10,
- NET_DECNET_NO_FC_MAX_CWND = 11,
- NET_DECNET_MEM = 12,
- NET_DECNET_RMEM = 13,
- NET_DECNET_WMEM = 14,
- NET_DECNET_DEBUG_LEVEL = 255
-};
-
-/* /proc/sys/net/decnet/conf/<dev> */
-enum {
- NET_DECNET_CONF_LOOPBACK = -2,
- NET_DECNET_CONF_DDCMP = -3,
- NET_DECNET_CONF_PPP = -4,
- NET_DECNET_CONF_X25 = -5,
- NET_DECNET_CONF_GRE = -6,
- NET_DECNET_CONF_ETHER = -7
-
- /* ... and ifindex of devices */
-};
-
-/* /proc/sys/net/decnet/conf/<dev>/ */
-enum {
- NET_DECNET_CONF_DEV_PRIORITY = 1,
- NET_DECNET_CONF_DEV_T1 = 2,
- NET_DECNET_CONF_DEV_T2 = 3,
- NET_DECNET_CONF_DEV_T3 = 4,
- NET_DECNET_CONF_DEV_FORWARDING = 5,
- NET_DECNET_CONF_DEV_BLKSIZE = 6,
- NET_DECNET_CONF_DEV_STATE = 7
-};
-
-/* /proc/sys/net/sctp */
-enum {
- NET_SCTP_RTO_INITIAL = 1,
- NET_SCTP_RTO_MIN = 2,
- NET_SCTP_RTO_MAX = 3,
- NET_SCTP_RTO_ALPHA = 4,
- NET_SCTP_RTO_BETA = 5,
- NET_SCTP_VALID_COOKIE_LIFE = 6,
- NET_SCTP_ASSOCIATION_MAX_RETRANS = 7,
- NET_SCTP_PATH_MAX_RETRANS = 8,
- NET_SCTP_MAX_INIT_RETRANSMITS = 9,
- NET_SCTP_HB_INTERVAL = 10,
- NET_SCTP_PRESERVE_ENABLE = 11,
- NET_SCTP_MAX_BURST = 12,
- NET_SCTP_ADDIP_ENABLE = 13,
- NET_SCTP_PRSCTP_ENABLE = 14,
- NET_SCTP_SNDBUF_POLICY = 15,
- NET_SCTP_SACK_TIMEOUT = 16,
- NET_SCTP_RCVBUF_POLICY = 17,
-};
-
-/* /proc/sys/net/bridge */
-enum {
- NET_BRIDGE_NF_CALL_ARPTABLES = 1,
- NET_BRIDGE_NF_CALL_IPTABLES = 2,
- NET_BRIDGE_NF_CALL_IP6TABLES = 3,
- NET_BRIDGE_NF_FILTER_VLAN_TAGGED = 4,
- NET_BRIDGE_NF_FILTER_PPPOE_TAGGED = 5,
-};
-
-/* proc/sys/net/irda */
-enum {
- NET_IRDA_DISCOVERY=1,
- NET_IRDA_DEVNAME=2,
- NET_IRDA_DEBUG=3,
- NET_IRDA_FAST_POLL=4,
- NET_IRDA_DISCOVERY_SLOTS=5,
- NET_IRDA_DISCOVERY_TIMEOUT=6,
- NET_IRDA_SLOT_TIMEOUT=7,
- NET_IRDA_MAX_BAUD_RATE=8,
- NET_IRDA_MIN_TX_TURN_TIME=9,
- NET_IRDA_MAX_TX_DATA_SIZE=10,
- NET_IRDA_MAX_TX_WINDOW=11,
- NET_IRDA_MAX_NOREPLY_TIME=12,
- NET_IRDA_WARN_NOREPLY_TIME=13,
- NET_IRDA_LAP_KEEPALIVE_TIME=14,
-};
-
-
-/* CTL_FS names: */
-enum
-{
- FS_NRINODE=1, /* int:current number of allocated inodes */
- FS_STATINODE=2,
- FS_MAXINODE=3, /* int:maximum number of inodes that can be allocated */
- FS_NRDQUOT=4, /* int:current number of allocated dquots */
- FS_MAXDQUOT=5, /* int:maximum number of dquots that can be allocated */
- FS_NRFILE=6, /* int:current number of allocated filedescriptors */
- FS_MAXFILE=7, /* int:maximum number of filedescriptors that can be allocated */
- FS_DENTRY=8,
- FS_NRSUPER=9, /* int:current number of allocated super_blocks */
- FS_MAXSUPER=10, /* int:maximum number of super_blocks that can be allocated */
- FS_OVERFLOWUID=11, /* int: overflow UID */
- FS_OVERFLOWGID=12, /* int: overflow GID */
- FS_LEASES=13, /* int: leases enabled */
- FS_DIR_NOTIFY=14, /* int: directory notification enabled */
- FS_LEASE_TIME=15, /* int: maximum time to wait for a lease break */
- FS_DQSTATS=16, /* disc quota usage statistics and control */
- FS_XFS=17, /* struct: control xfs parameters */
- FS_AIO_NR=18, /* current system-wide number of aio requests */
- FS_AIO_MAX_NR=19, /* system-wide maximum number of aio requests */
- FS_INOTIFY=20, /* inotify submenu */
- FS_OCFS2=988, /* ocfs2 */
-};
-
-/* /proc/sys/fs/quota/ */
-enum {
- FS_DQ_LOOKUPS = 1,
- FS_DQ_DROPS = 2,
- FS_DQ_READS = 3,
- FS_DQ_WRITES = 4,
- FS_DQ_CACHE_HITS = 5,
- FS_DQ_ALLOCATED = 6,
- FS_DQ_FREE = 7,
- FS_DQ_SYNCS = 8,
- FS_DQ_WARNINGS = 9,
-};
-
-/* CTL_DEBUG names: */
-
-/* CTL_DEV names: */
-enum {
- DEV_CDROM=1,
- DEV_HWMON=2,
- DEV_PARPORT=3,
- DEV_RAID=4,
- DEV_MAC_HID=5,
- DEV_SCSI=6,
- DEV_IPMI=7,
-};
-
-/* /proc/sys/dev/cdrom */
-enum {
- DEV_CDROM_INFO=1,
- DEV_CDROM_AUTOCLOSE=2,
- DEV_CDROM_AUTOEJECT=3,
- DEV_CDROM_DEBUG=4,
- DEV_CDROM_LOCK=5,
- DEV_CDROM_CHECK_MEDIA=6
-};
-
-/* /proc/sys/dev/parport */
-enum {
- DEV_PARPORT_DEFAULT=-3
-};
-
-/* /proc/sys/dev/raid */
-enum {
- DEV_RAID_SPEED_LIMIT_MIN=1,
- DEV_RAID_SPEED_LIMIT_MAX=2
-};
-
-/* /proc/sys/dev/parport/default */
-enum {
- DEV_PARPORT_DEFAULT_TIMESLICE=1,
- DEV_PARPORT_DEFAULT_SPINTIME=2
-};
-
-/* /proc/sys/dev/parport/parport n */
-enum {
- DEV_PARPORT_SPINTIME=1,
- DEV_PARPORT_BASE_ADDR=2,
- DEV_PARPORT_IRQ=3,
- DEV_PARPORT_DMA=4,
- DEV_PARPORT_MODES=5,
- DEV_PARPORT_DEVICES=6,
- DEV_PARPORT_AUTOPROBE=16
-};
-
-/* /proc/sys/dev/parport/parport n/devices/ */
-enum {
- DEV_PARPORT_DEVICES_ACTIVE=-3,
-};
-
-/* /proc/sys/dev/parport/parport n/devices/device n */
-enum {
- DEV_PARPORT_DEVICE_TIMESLICE=1,
-};
-
-/* /proc/sys/dev/mac_hid */
-enum {
- DEV_MAC_HID_KEYBOARD_SENDS_LINUX_KEYCODES=1,
- DEV_MAC_HID_KEYBOARD_LOCK_KEYCODES=2,
- DEV_MAC_HID_MOUSE_BUTTON_EMULATION=3,
- DEV_MAC_HID_MOUSE_BUTTON2_KEYCODE=4,
- DEV_MAC_HID_MOUSE_BUTTON3_KEYCODE=5,
- DEV_MAC_HID_ADB_MOUSE_SENDS_KEYCODES=6
-};
-
-/* /proc/sys/dev/scsi */
-enum {
- DEV_SCSI_LOGGING_LEVEL=1,
-};
-
-/* /proc/sys/dev/ipmi */
-enum {
- DEV_IPMI_POWEROFF_POWERCYCLE=1,
-};
-
-/* /proc/sys/abi */
-enum
-{
- ABI_DEFHANDLER_COFF=1, /* default handler for coff binaries */
- ABI_DEFHANDLER_ELF=2, /* default handler for ELF binaries */
- ABI_DEFHANDLER_LCALL7=3,/* default handler for procs using lcall7 */
- ABI_DEFHANDLER_LIBCSO=4,/* default handler for an libc.so ELF interp */
- ABI_TRACE=5, /* tracing flags */
- ABI_FAKE_UTSNAME=6, /* fake target utsname information */
-};
-
-#ifdef __KERNEL__
-#include <linux/list.h>
-#include <linux/rcupdate.h>
-#include <linux/wait.h>
-#include <linux/rbtree.h>
-
-/* For the /proc/sys support */
-struct ctl_table;
-struct nsproxy;
-struct ctl_table_root;
-struct ctl_table_header;
-struct ctl_dir;
-
-typedef struct ctl_table ctl_table;
-
-typedef int proc_handler (struct ctl_table *ctl, int write,
- void __user *buffer, size_t *lenp, loff_t *ppos);
-
-extern int proc_dostring(struct ctl_table *, int,
- void __user *, size_t *, loff_t *);
-extern int proc_dointvec(struct ctl_table *, int,
- void __user *, size_t *, loff_t *);
-extern int proc_dointvec_minmax(struct ctl_table *, int,
- void __user *, size_t *, loff_t *);
-extern int proc_dointvec_jiffies(struct ctl_table *, int,
- void __user *, size_t *, loff_t *);
-extern int proc_dointvec_userhz_jiffies(struct ctl_table *, int,
- void __user *, size_t *, loff_t *);
-extern int proc_dointvec_ms_jiffies(struct ctl_table *, int,
- void __user *, size_t *, loff_t *);
-extern int proc_doulongvec_minmax(struct ctl_table *, int,
- void __user *, size_t *, loff_t *);
-extern int proc_doulongvec_ms_jiffies_minmax(struct ctl_table *table, int,
- void __user *, size_t *, loff_t *);
-extern int proc_do_large_bitmap(struct ctl_table *, int,
- void __user *, size_t *, loff_t *);
-
-/*
- * Register a set of sysctl names by calling register_sysctl_table
- * with an initialised array of struct ctl_table's. An entry with
- * NULL procname terminates the table. table->de will be
- * set up by the registration and need not be initialised in advance.
- *
- * sysctl names can be mirrored automatically under /proc/sys. The
- * procname supplied controls /proc naming.
- *
- * The table's mode will be honoured both for sys_sysctl(2) and
- * proc-fs access.
- *
- * Leaf nodes in the sysctl tree will be represented by a single file
- * under /proc; non-leaf nodes will be represented by directories. A
- * null procname disables /proc mirroring at this node.
- *
- * sysctl(2) can automatically manage read and write requests through
- * the sysctl table. The data and maxlen fields of the ctl_table
- * struct enable minimal validation of the values being written to be
- * performed, and the mode field allows minimal authentication.
- *
- * There must be a proc_handler routine for any terminal nodes
- * mirrored under /proc/sys (non-terminals are handled by a built-in
- * directory handler). Several default handlers are available to
- * cover common cases.
- */
-
-/* Support for userspace poll() to watch for changes */
-struct ctl_table_poll {
- atomic_t event;
- wait_queue_head_t wait;
-};
-
-static inline void *proc_sys_poll_event(struct ctl_table_poll *poll)
-{
- return (void *)(unsigned long)atomic_read(&poll->event);
-}
-
-#define __CTL_TABLE_POLL_INITIALIZER(name) { \
- .event = ATOMIC_INIT(0), \
- .wait = __WAIT_QUEUE_HEAD_INITIALIZER(name.wait) }
-
-#define DEFINE_CTL_TABLE_POLL(name) \
- struct ctl_table_poll name = __CTL_TABLE_POLL_INITIALIZER(name)
-
-/* A sysctl table is an array of struct ctl_table: */
-struct ctl_table
-{
- const char *procname; /* Text ID for /proc/sys, or zero */
- void *data;
- int maxlen;
- umode_t mode;
- struct ctl_table *child; /* Deprecated */
- proc_handler *proc_handler; /* Callback for text formatting */
- struct ctl_table_poll *poll;
- void *extra1;
- void *extra2;
-};
-
-struct ctl_node {
- struct rb_node node;
- struct ctl_table_header *header;
-};
-
-/* struct ctl_table_header is used to maintain dynamic lists of
- struct ctl_table trees. */
-struct ctl_table_header
-{
- union {
- struct {
- struct ctl_table *ctl_table;
- int used;
- int count;
- int nreg;
- };
- struct rcu_head rcu;
- };
- struct completion *unregistering;
- struct ctl_table *ctl_table_arg;
- struct ctl_table_root *root;
- struct ctl_table_set *set;
- struct ctl_dir *parent;
- struct ctl_node *node;
-};
-
-struct ctl_dir {
- /* Header must be at the start of ctl_dir */
- struct ctl_table_header header;
- struct rb_root root;
-};
-
-struct ctl_table_set {
- int (*is_seen)(struct ctl_table_set *);
- struct ctl_dir dir;
-};
-
-struct ctl_table_root {
- struct ctl_table_set default_set;
- struct ctl_table_set *(*lookup)(struct ctl_table_root *root,
- struct nsproxy *namespaces);
- int (*permissions)(struct ctl_table_root *root,
- struct nsproxy *namespaces, struct ctl_table *table);
-};
-
-/* struct ctl_path describes where in the hierarchy a table is added */
-struct ctl_path {
- const char *procname;
-};
-
-#ifdef CONFIG_SYSCTL
-
-void proc_sys_poll_notify(struct ctl_table_poll *poll);
-
-extern void setup_sysctl_set(struct ctl_table_set *p,
- struct ctl_table_root *root,
- int (*is_seen)(struct ctl_table_set *));
-extern void retire_sysctl_set(struct ctl_table_set *set);
-
-void register_sysctl_root(struct ctl_table_root *root);
-struct ctl_table_header *__register_sysctl_table(
- struct ctl_table_set *set,
- const char *path, struct ctl_table *table);
-struct ctl_table_header *__register_sysctl_paths(
- struct ctl_table_set *set,
- const struct ctl_path *path, struct ctl_table *table);
-struct ctl_table_header *register_sysctl(const char *path, struct ctl_table *table);
-struct ctl_table_header *register_sysctl_table(struct ctl_table * table);
-struct ctl_table_header *register_sysctl_paths(const struct ctl_path *path,
- struct ctl_table *table);
-
-void unregister_sysctl_table(struct ctl_table_header * table);
-
-extern int sysctl_init(void);
-#else /* CONFIG_SYSCTL */
-static inline struct ctl_table_header *register_sysctl_table(struct ctl_table * table)
-{
- return NULL;
-}
-
-static inline struct ctl_table_header *register_sysctl_paths(
- const struct ctl_path *path, struct ctl_table *table)
-{
- return NULL;
-}
-
-static inline void unregister_sysctl_table(struct ctl_table_header * table)
-{
-}
-
-static inline void setup_sysctl_set(struct ctl_table_set *p,
- struct ctl_table_root *root,
- int (*is_seen)(struct ctl_table_set *))
-{
-}
-
-#endif /* CONFIG_SYSCTL */
-
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_SYSCTL_H */
diff --git a/ANDROID_3.4.5/include/linux/sysfs.h b/ANDROID_3.4.5/include/linux/sysfs.h
deleted file mode 100644
index 0010009b..00000000
--- a/ANDROID_3.4.5/include/linux/sysfs.h
+++ /dev/null
@@ -1,346 +0,0 @@
-/*
- * sysfs.h - definitions for the device driver filesystem
- *
- * Copyright (c) 2001,2002 Patrick Mochel
- * Copyright (c) 2004 Silicon Graphics, Inc.
- * Copyright (c) 2007 SUSE Linux Products GmbH
- * Copyright (c) 2007 Tejun Heo <teheo@suse.de>
- *
- * Please see Documentation/filesystems/sysfs.txt for more information.
- */
-
-#ifndef _SYSFS_H_
-#define _SYSFS_H_
-
-#include <linux/compiler.h>
-#include <linux/errno.h>
-#include <linux/list.h>
-#include <linux/lockdep.h>
-#include <linux/kobject_ns.h>
-#include <linux/atomic.h>
-
-struct kobject;
-struct module;
-enum kobj_ns_type;
-
-struct attribute {
- const char *name;
- umode_t mode;
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
- struct lock_class_key *key;
- struct lock_class_key skey;
-#endif
-};
-
-/**
- * sysfs_attr_init - initialize a dynamically allocated sysfs attribute
- * @attr: struct attribute to initialize
- *
- * Initialize a dynamically allocated struct attribute so we can
- * make lockdep happy. This is a new requirement for attributes
- * and initially this is only needed when lockdep is enabled.
- * Lockdep gives a nice error when your attribute is added to
- * sysfs if you don't have this.
- */
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
-#define sysfs_attr_init(attr) \
-do { \
- static struct lock_class_key __key; \
- \
- (attr)->key = &__key; \
-} while(0)
-#else
-#define sysfs_attr_init(attr) do {} while(0)
-#endif
-
-struct attribute_group {
- const char *name;
- umode_t (*is_visible)(struct kobject *,
- struct attribute *, int);
- struct attribute **attrs;
-};
-
-
-
-/**
- * Use these macros to make defining attributes easier. See include/linux/device.h
- * for examples..
- */
-
-#define __ATTR(_name,_mode,_show,_store) { \
- .attr = {.name = __stringify(_name), .mode = _mode }, \
- .show = _show, \
- .store = _store, \
-}
-
-#define __ATTR_RO(_name) { \
- .attr = { .name = __stringify(_name), .mode = 0444 }, \
- .show = _name##_show, \
-}
-
-#define __ATTR_NULL { .attr = { .name = NULL } }
-
-#define attr_name(_attr) (_attr).attr.name
-
-struct file;
-struct vm_area_struct;
-
-struct bin_attribute {
- struct attribute attr;
- size_t size;
- void *private;
- ssize_t (*read)(struct file *, struct kobject *, struct bin_attribute *,
- char *, loff_t, size_t);
- ssize_t (*write)(struct file *,struct kobject *, struct bin_attribute *,
- char *, loff_t, size_t);
- int (*mmap)(struct file *, struct kobject *, struct bin_attribute *attr,
- struct vm_area_struct *vma);
-};
-
-/**
- * sysfs_bin_attr_init - initialize a dynamically allocated bin_attribute
- * @attr: struct bin_attribute to initialize
- *
- * Initialize a dynamically allocated struct bin_attribute so we
- * can make lockdep happy. This is a new requirement for
- * attributes and initially this is only needed when lockdep is
- * enabled. Lockdep gives a nice error when your attribute is
- * added to sysfs if you don't have this.
- */
-#define sysfs_bin_attr_init(bin_attr) sysfs_attr_init(&(bin_attr)->attr)
-
-struct sysfs_ops {
- ssize_t (*show)(struct kobject *, struct attribute *,char *);
- ssize_t (*store)(struct kobject *,struct attribute *,const char *, size_t);
- const void *(*namespace)(struct kobject *, const struct attribute *);
-};
-
-struct sysfs_dirent;
-
-#ifdef CONFIG_SYSFS
-
-int sysfs_schedule_callback(struct kobject *kobj, void (*func)(void *),
- void *data, struct module *owner);
-
-int __must_check sysfs_create_dir(struct kobject *kobj);
-void sysfs_remove_dir(struct kobject *kobj);
-int __must_check sysfs_rename_dir(struct kobject *kobj, const char *new_name);
-int __must_check sysfs_move_dir(struct kobject *kobj,
- struct kobject *new_parent_kobj);
-
-int __must_check sysfs_create_file(struct kobject *kobj,
- const struct attribute *attr);
-int __must_check sysfs_create_files(struct kobject *kobj,
- const struct attribute **attr);
-int __must_check sysfs_chmod_file(struct kobject *kobj,
- const struct attribute *attr, umode_t mode);
-void sysfs_remove_file(struct kobject *kobj, const struct attribute *attr);
-void sysfs_remove_files(struct kobject *kobj, const struct attribute **attr);
-
-int __must_check sysfs_create_bin_file(struct kobject *kobj,
- const struct bin_attribute *attr);
-void sysfs_remove_bin_file(struct kobject *kobj,
- const struct bin_attribute *attr);
-
-int __must_check sysfs_create_link(struct kobject *kobj, struct kobject *target,
- const char *name);
-int __must_check sysfs_create_link_nowarn(struct kobject *kobj,
- struct kobject *target,
- const char *name);
-void sysfs_remove_link(struct kobject *kobj, const char *name);
-
-int sysfs_rename_link(struct kobject *kobj, struct kobject *target,
- const char *old_name, const char *new_name);
-
-void sysfs_delete_link(struct kobject *dir, struct kobject *targ,
- const char *name);
-
-int __must_check sysfs_create_group(struct kobject *kobj,
- const struct attribute_group *grp);
-int sysfs_update_group(struct kobject *kobj,
- const struct attribute_group *grp);
-void sysfs_remove_group(struct kobject *kobj,
- const struct attribute_group *grp);
-int sysfs_add_file_to_group(struct kobject *kobj,
- const struct attribute *attr, const char *group);
-void sysfs_remove_file_from_group(struct kobject *kobj,
- const struct attribute *attr, const char *group);
-int sysfs_merge_group(struct kobject *kobj,
- const struct attribute_group *grp);
-void sysfs_unmerge_group(struct kobject *kobj,
- const struct attribute_group *grp);
-
-void sysfs_notify(struct kobject *kobj, const char *dir, const char *attr);
-void sysfs_notify_dirent(struct sysfs_dirent *sd);
-struct sysfs_dirent *sysfs_get_dirent(struct sysfs_dirent *parent_sd,
- const void *ns,
- const unsigned char *name);
-struct sysfs_dirent *sysfs_get(struct sysfs_dirent *sd);
-void sysfs_put(struct sysfs_dirent *sd);
-
-int __must_check sysfs_init(void);
-
-#else /* CONFIG_SYSFS */
-
-static inline int sysfs_schedule_callback(struct kobject *kobj,
- void (*func)(void *), void *data, struct module *owner)
-{
- return -ENOSYS;
-}
-
-static inline int sysfs_create_dir(struct kobject *kobj)
-{
- return 0;
-}
-
-static inline void sysfs_remove_dir(struct kobject *kobj)
-{
-}
-
-static inline int sysfs_rename_dir(struct kobject *kobj, const char *new_name)
-{
- return 0;
-}
-
-static inline int sysfs_move_dir(struct kobject *kobj,
- struct kobject *new_parent_kobj)
-{
- return 0;
-}
-
-static inline int sysfs_create_file(struct kobject *kobj,
- const struct attribute *attr)
-{
- return 0;
-}
-
-static inline int sysfs_create_files(struct kobject *kobj,
- const struct attribute **attr)
-{
- return 0;
-}
-
-static inline int sysfs_chmod_file(struct kobject *kobj,
- const struct attribute *attr, umode_t mode)
-{
- return 0;
-}
-
-static inline void sysfs_remove_file(struct kobject *kobj,
- const struct attribute *attr)
-{
-}
-
-static inline void sysfs_remove_files(struct kobject *kobj,
- const struct attribute **attr)
-{
-}
-
-static inline int sysfs_create_bin_file(struct kobject *kobj,
- const struct bin_attribute *attr)
-{
- return 0;
-}
-
-static inline void sysfs_remove_bin_file(struct kobject *kobj,
- const struct bin_attribute *attr)
-{
-}
-
-static inline int sysfs_create_link(struct kobject *kobj,
- struct kobject *target, const char *name)
-{
- return 0;
-}
-
-static inline int sysfs_create_link_nowarn(struct kobject *kobj,
- struct kobject *target,
- const char *name)
-{
- return 0;
-}
-
-static inline void sysfs_remove_link(struct kobject *kobj, const char *name)
-{
-}
-
-static inline int sysfs_rename_link(struct kobject *k, struct kobject *t,
- const char *old_name, const char *new_name)
-{
- return 0;
-}
-
-static inline void sysfs_delete_link(struct kobject *k, struct kobject *t,
- const char *name)
-{
-}
-
-static inline int sysfs_create_group(struct kobject *kobj,
- const struct attribute_group *grp)
-{
- return 0;
-}
-
-static inline int sysfs_update_group(struct kobject *kobj,
- const struct attribute_group *grp)
-{
- return 0;
-}
-
-static inline void sysfs_remove_group(struct kobject *kobj,
- const struct attribute_group *grp)
-{
-}
-
-static inline int sysfs_add_file_to_group(struct kobject *kobj,
- const struct attribute *attr, const char *group)
-{
- return 0;
-}
-
-static inline void sysfs_remove_file_from_group(struct kobject *kobj,
- const struct attribute *attr, const char *group)
-{
-}
-
-static inline int sysfs_merge_group(struct kobject *kobj,
- const struct attribute_group *grp)
-{
- return 0;
-}
-
-static inline void sysfs_unmerge_group(struct kobject *kobj,
- const struct attribute_group *grp)
-{
-}
-
-static inline void sysfs_notify(struct kobject *kobj, const char *dir,
- const char *attr)
-{
-}
-static inline void sysfs_notify_dirent(struct sysfs_dirent *sd)
-{
-}
-static inline
-struct sysfs_dirent *sysfs_get_dirent(struct sysfs_dirent *parent_sd,
- const void *ns,
- const unsigned char *name)
-{
- return NULL;
-}
-static inline struct sysfs_dirent *sysfs_get(struct sysfs_dirent *sd)
-{
- return NULL;
-}
-static inline void sysfs_put(struct sysfs_dirent *sd)
-{
-}
-
-static inline int __must_check sysfs_init(void)
-{
- return 0;
-}
-
-#endif /* CONFIG_SYSFS */
-
-#endif /* _SYSFS_H_ */
diff --git a/ANDROID_3.4.5/include/linux/sysinfo.h b/ANDROID_3.4.5/include/linux/sysinfo.h
deleted file mode 100644
index 934335a2..00000000
--- a/ANDROID_3.4.5/include/linux/sysinfo.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef _LINUX_SYSINFO_H
-#define _LINUX_SYSINFO_H
-
-#include <linux/types.h>
-
-#define SI_LOAD_SHIFT 16
-struct sysinfo {
- __kernel_long_t uptime; /* Seconds since boot */
- __kernel_ulong_t loads[3]; /* 1, 5, and 15 minute load averages */
- __kernel_ulong_t totalram; /* Total usable main memory size */
- __kernel_ulong_t freeram; /* Available memory size */
- __kernel_ulong_t sharedram; /* Amount of shared memory */
- __kernel_ulong_t bufferram; /* Memory used by buffers */
- __kernel_ulong_t totalswap; /* Total swap space size */
- __kernel_ulong_t freeswap; /* swap space still available */
- __u16 procs; /* Number of current processes */
- __u16 pad; /* Explicit padding for m68k */
- __kernel_ulong_t totalhigh; /* Total high memory size */
- __kernel_ulong_t freehigh; /* Available high memory size */
- __u32 mem_unit; /* Memory unit size in bytes */
- char _f[20-2*sizeof(__kernel_ulong_t)-sizeof(__u32)]; /* Padding: libc5 uses this.. */
-};
-
-#endif /* _LINUX_SYSINFO_H */
diff --git a/ANDROID_3.4.5/include/linux/syslog.h b/ANDROID_3.4.5/include/linux/syslog.h
deleted file mode 100644
index 38911391..00000000
--- a/ANDROID_3.4.5/include/linux/syslog.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Syslog internals
- *
- * Copyright 2010 Canonical, Ltd.
- * Author: Kees Cook <kees.cook@canonical.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, 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; see the file COPYING. If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef _LINUX_SYSLOG_H
-#define _LINUX_SYSLOG_H
-
-/* Close the log. Currently a NOP. */
-#define SYSLOG_ACTION_CLOSE 0
-/* Open the log. Currently a NOP. */
-#define SYSLOG_ACTION_OPEN 1
-/* Read from the log. */
-#define SYSLOG_ACTION_READ 2
-/* Read all messages remaining in the ring buffer. */
-#define SYSLOG_ACTION_READ_ALL 3
-/* Read and clear all messages remaining in the ring buffer */
-#define SYSLOG_ACTION_READ_CLEAR 4
-/* Clear ring buffer. */
-#define SYSLOG_ACTION_CLEAR 5
-/* Disable printk's to console */
-#define SYSLOG_ACTION_CONSOLE_OFF 6
-/* Enable printk's to console */
-#define SYSLOG_ACTION_CONSOLE_ON 7
-/* Set level of messages printed to console */
-#define SYSLOG_ACTION_CONSOLE_LEVEL 8
-/* Return number of unread characters in the log buffer */
-#define SYSLOG_ACTION_SIZE_UNREAD 9
-/* Return size of the log buffer */
-#define SYSLOG_ACTION_SIZE_BUFFER 10
-
-#define SYSLOG_FROM_CALL 0
-#define SYSLOG_FROM_FILE 1
-
-int do_syslog(int type, char __user *buf, int count, bool from_file);
-
-#endif /* _LINUX_SYSLOG_H */
diff --git a/ANDROID_3.4.5/include/linux/sysrq.h b/ANDROID_3.4.5/include/linux/sysrq.h
deleted file mode 100644
index 7faf933c..00000000
--- a/ANDROID_3.4.5/include/linux/sysrq.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/* -*- linux-c -*-
- *
- * $Id: sysrq.h,v 1.3 1997/07/17 11:54:33 mj Exp $
- *
- * Linux Magic System Request Key Hacks
- *
- * (c) 1997 Martin Mares <mj@atrey.karlin.mff.cuni.cz>
- *
- * (c) 2000 Crutcher Dunnavant <crutcher+kernel@datastacks.com>
- * overhauled to use key registration
- * based upon discusions in irc://irc.openprojects.net/#kernelnewbies
- */
-
-#ifndef _LINUX_SYSRQ_H
-#define _LINUX_SYSRQ_H
-
-#include <linux/errno.h>
-#include <linux/types.h>
-
-/* Enable/disable SYSRQ support by default (0==no, 1==yes). */
-#define SYSRQ_DEFAULT_ENABLE 1
-
-/* Possible values of bitmask for enabling sysrq functions */
-/* 0x0001 is reserved for enable everything */
-#define SYSRQ_ENABLE_LOG 0x0002
-#define SYSRQ_ENABLE_KEYBOARD 0x0004
-#define SYSRQ_ENABLE_DUMP 0x0008
-#define SYSRQ_ENABLE_SYNC 0x0010
-#define SYSRQ_ENABLE_REMOUNT 0x0020
-#define SYSRQ_ENABLE_SIGNAL 0x0040
-#define SYSRQ_ENABLE_BOOT 0x0080
-#define SYSRQ_ENABLE_RTNICE 0x0100
-
-struct sysrq_key_op {
- void (*handler)(int);
- char *help_msg;
- char *action_msg;
- int enable_mask;
-};
-
-#ifdef CONFIG_MAGIC_SYSRQ
-
-/* Generic SysRq interface -- you may call it from any device driver, supplying
- * ASCII code of the key, pointer to registers and kbd/tty structs (if they
- * are available -- else NULL's).
- */
-
-void handle_sysrq(int key);
-void __handle_sysrq(int key, bool check_mask);
-int register_sysrq_key(int key, struct sysrq_key_op *op);
-int unregister_sysrq_key(int key, struct sysrq_key_op *op);
-struct sysrq_key_op *__sysrq_get_key_op(int key);
-
-int sysrq_toggle_support(int enable_mask);
-
-#else
-
-static inline void handle_sysrq(int key)
-{
-}
-
-static inline void __handle_sysrq(int key, bool check_mask)
-{
-}
-
-static inline int register_sysrq_key(int key, struct sysrq_key_op *op)
-{
- return -EINVAL;
-}
-
-static inline int unregister_sysrq_key(int key, struct sysrq_key_op *op)
-{
- return -EINVAL;
-}
-
-#endif
-
-#endif /* _LINUX_SYSRQ_H */
diff --git a/ANDROID_3.4.5/include/linux/sysv_fs.h b/ANDROID_3.4.5/include/linux/sysv_fs.h
deleted file mode 100644
index e47d6d90..00000000
--- a/ANDROID_3.4.5/include/linux/sysv_fs.h
+++ /dev/null
@@ -1,213 +0,0 @@
-#ifndef _LINUX_SYSV_FS_H
-#define _LINUX_SYSV_FS_H
-
-#define __packed2__ __attribute__((packed, aligned(2)))
-
-
-#ifndef __KERNEL__
-typedef u16 __fs16;
-typedef u32 __fs16;
-#endif
-
-/* inode numbers are 16 bit */
-typedef __fs16 sysv_ino_t;
-
-/* Block numbers are 24 bit, sometimes stored in 32 bit.
- On Coherent FS, they are always stored in PDP-11 manner: the least
- significant 16 bits come last. */
-typedef __fs32 sysv_zone_t;
-
-/* 0 is non-existent */
-#define SYSV_BADBL_INO 1 /* inode of bad blocks file */
-#define SYSV_ROOT_INO 2 /* inode of root directory */
-
-
-/* Xenix super-block data on disk */
-#define XENIX_NICINOD 100 /* number of inode cache entries */
-#define XENIX_NICFREE 100 /* number of free block list chunk entries */
-struct xenix_super_block {
- __fs16 s_isize; /* index of first data zone */
- __fs32 s_fsize __packed2__; /* total number of zones of this fs */
- /* the start of the free block list: */
- __fs16 s_nfree; /* number of free blocks in s_free, <= XENIX_NICFREE */
- sysv_zone_t s_free[XENIX_NICFREE]; /* first free block list chunk */
- /* the cache of free inodes: */
- __fs16 s_ninode; /* number of free inodes in s_inode, <= XENIX_NICINOD */
- sysv_ino_t s_inode[XENIX_NICINOD]; /* some free inodes */
- /* locks, not used by Linux: */
- char s_flock; /* lock during free block list manipulation */
- char s_ilock; /* lock during inode cache manipulation */
- char s_fmod; /* super-block modified flag */
- char s_ronly; /* flag whether fs is mounted read-only */
- __fs32 s_time __packed2__; /* time of last super block update */
- __fs32 s_tfree __packed2__; /* total number of free zones */
- __fs16 s_tinode; /* total number of free inodes */
- __fs16 s_dinfo[4]; /* device information ?? */
- char s_fname[6]; /* file system volume name */
- char s_fpack[6]; /* file system pack name */
- char s_clean; /* set to 0x46 when filesystem is properly unmounted */
- char s_fill[371];
- s32 s_magic; /* version of file system */
- __fs32 s_type; /* type of file system: 1 for 512 byte blocks
- 2 for 1024 byte blocks
- 3 for 2048 byte blocks */
-
-};
-
-/*
- * SystemV FS comes in two variants:
- * sysv2: System V Release 2 (e.g. Microport), structure elements aligned(2).
- * sysv4: System V Release 4 (e.g. Consensys), structure elements aligned(4).
- */
-#define SYSV_NICINOD 100 /* number of inode cache entries */
-#define SYSV_NICFREE 50 /* number of free block list chunk entries */
-
-/* SystemV4 super-block data on disk */
-struct sysv4_super_block {
- __fs16 s_isize; /* index of first data zone */
- u16 s_pad0;
- __fs32 s_fsize; /* total number of zones of this fs */
- /* the start of the free block list: */
- __fs16 s_nfree; /* number of free blocks in s_free, <= SYSV_NICFREE */
- u16 s_pad1;
- sysv_zone_t s_free[SYSV_NICFREE]; /* first free block list chunk */
- /* the cache of free inodes: */
- __fs16 s_ninode; /* number of free inodes in s_inode, <= SYSV_NICINOD */
- u16 s_pad2;
- sysv_ino_t s_inode[SYSV_NICINOD]; /* some free inodes */
- /* locks, not used by Linux: */
- char s_flock; /* lock during free block list manipulation */
- char s_ilock; /* lock during inode cache manipulation */
- char s_fmod; /* super-block modified flag */
- char s_ronly; /* flag whether fs is mounted read-only */
- __fs32 s_time; /* time of last super block update */
- __fs16 s_dinfo[4]; /* device information ?? */
- __fs32 s_tfree; /* total number of free zones */
- __fs16 s_tinode; /* total number of free inodes */
- u16 s_pad3;
- char s_fname[6]; /* file system volume name */
- char s_fpack[6]; /* file system pack name */
- s32 s_fill[12];
- __fs32 s_state; /* file system state: 0x7c269d38-s_time means clean */
- s32 s_magic; /* version of file system */
- __fs32 s_type; /* type of file system: 1 for 512 byte blocks
- 2 for 1024 byte blocks */
-};
-
-/* SystemV2 super-block data on disk */
-struct sysv2_super_block {
- __fs16 s_isize; /* index of first data zone */
- __fs32 s_fsize __packed2__; /* total number of zones of this fs */
- /* the start of the free block list: */
- __fs16 s_nfree; /* number of free blocks in s_free, <= SYSV_NICFREE */
- sysv_zone_t s_free[SYSV_NICFREE]; /* first free block list chunk */
- /* the cache of free inodes: */
- __fs16 s_ninode; /* number of free inodes in s_inode, <= SYSV_NICINOD */
- sysv_ino_t s_inode[SYSV_NICINOD]; /* some free inodes */
- /* locks, not used by Linux: */
- char s_flock; /* lock during free block list manipulation */
- char s_ilock; /* lock during inode cache manipulation */
- char s_fmod; /* super-block modified flag */
- char s_ronly; /* flag whether fs is mounted read-only */
- __fs32 s_time __packed2__; /* time of last super block update */
- __fs16 s_dinfo[4]; /* device information ?? */
- __fs32 s_tfree __packed2__; /* total number of free zones */
- __fs16 s_tinode; /* total number of free inodes */
- char s_fname[6]; /* file system volume name */
- char s_fpack[6]; /* file system pack name */
- s32 s_fill[14];
- __fs32 s_state; /* file system state: 0xcb096f43 means clean */
- s32 s_magic; /* version of file system */
- __fs32 s_type; /* type of file system: 1 for 512 byte blocks
- 2 for 1024 byte blocks */
-};
-
-/* V7 super-block data on disk */
-#define V7_NICINOD 100 /* number of inode cache entries */
-#define V7_NICFREE 50 /* number of free block list chunk entries */
-struct v7_super_block {
- __fs16 s_isize; /* index of first data zone */
- __fs32 s_fsize __packed2__; /* total number of zones of this fs */
- /* the start of the free block list: */
- __fs16 s_nfree; /* number of free blocks in s_free, <= V7_NICFREE */
- sysv_zone_t s_free[V7_NICFREE]; /* first free block list chunk */
- /* the cache of free inodes: */
- __fs16 s_ninode; /* number of free inodes in s_inode, <= V7_NICINOD */
- sysv_ino_t s_inode[V7_NICINOD]; /* some free inodes */
- /* locks, not used by Linux or V7: */
- char s_flock; /* lock during free block list manipulation */
- char s_ilock; /* lock during inode cache manipulation */
- char s_fmod; /* super-block modified flag */
- char s_ronly; /* flag whether fs is mounted read-only */
- __fs32 s_time __packed2__; /* time of last super block update */
- /* the following fields are not maintained by V7: */
- __fs32 s_tfree __packed2__; /* total number of free zones */
- __fs16 s_tinode; /* total number of free inodes */
- __fs16 s_m; /* interleave factor */
- __fs16 s_n; /* interleave factor */
- char s_fname[6]; /* file system name */
- char s_fpack[6]; /* file system pack name */
-};
-/* Constants to aid sanity checking */
-/* This is not a hard limit, nor enforced by v7 kernel. It's actually just
- * the limit used by Seventh Edition's ls, though is high enough to assume
- * that no reasonable file system would have that much entries in root
- * directory. Thus, if we see anything higher, we just probably got the
- * endiannes wrong. */
-#define V7_NFILES 1024
-/* The disk addresses are three-byte (despite direct block addresses being
- * aligned word-wise in inode). If the most significant byte is non-zero,
- * something is most likely wrong (not a filesystem, bad bytesex). */
-#define V7_MAXSIZE 0x00ffffff
-
-/* Coherent super-block data on disk */
-#define COH_NICINOD 100 /* number of inode cache entries */
-#define COH_NICFREE 64 /* number of free block list chunk entries */
-struct coh_super_block {
- __fs16 s_isize; /* index of first data zone */
- __fs32 s_fsize __packed2__; /* total number of zones of this fs */
- /* the start of the free block list: */
- __fs16 s_nfree; /* number of free blocks in s_free, <= COH_NICFREE */
- sysv_zone_t s_free[COH_NICFREE] __packed2__; /* first free block list chunk */
- /* the cache of free inodes: */
- __fs16 s_ninode; /* number of free inodes in s_inode, <= COH_NICINOD */
- sysv_ino_t s_inode[COH_NICINOD]; /* some free inodes */
- /* locks, not used by Linux: */
- char s_flock; /* lock during free block list manipulation */
- char s_ilock; /* lock during inode cache manipulation */
- char s_fmod; /* super-block modified flag */
- char s_ronly; /* flag whether fs is mounted read-only */
- __fs32 s_time __packed2__; /* time of last super block update */
- __fs32 s_tfree __packed2__; /* total number of free zones */
- __fs16 s_tinode; /* total number of free inodes */
- __fs16 s_interleave_m; /* interleave factor */
- __fs16 s_interleave_n;
- char s_fname[6]; /* file system volume name */
- char s_fpack[6]; /* file system pack name */
- __fs32 s_unique; /* zero, not used */
-};
-
-/* SystemV/Coherent inode data on disk */
-struct sysv_inode {
- __fs16 i_mode;
- __fs16 i_nlink;
- __fs16 i_uid;
- __fs16 i_gid;
- __fs32 i_size;
- u8 i_data[3*(10+1+1+1)];
- u8 i_gen;
- __fs32 i_atime; /* time of last access */
- __fs32 i_mtime; /* time of last modification */
- __fs32 i_ctime; /* time of creation */
-};
-
-/* SystemV/Coherent directory entry on disk */
-#define SYSV_NAMELEN 14 /* max size of name in struct sysv_dir_entry */
-struct sysv_dir_entry {
- sysv_ino_t inode;
- char name[SYSV_NAMELEN]; /* up to 14 characters, the rest are zeroes */
-};
-
-#define SYSV_DIRSIZE sizeof(struct sysv_dir_entry) /* size of every directory entry */
-
-#endif /* _LINUX_SYSV_FS_H */
diff --git a/ANDROID_3.4.5/include/linux/task_io_accounting.h b/ANDROID_3.4.5/include/linux/task_io_accounting.h
deleted file mode 100644
index bdf855c2..00000000
--- a/ANDROID_3.4.5/include/linux/task_io_accounting.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * task_io_accounting: a structure which is used for recording a single task's
- * IO statistics.
- *
- * Don't include this header file directly - it is designed to be dragged in via
- * sched.h.
- *
- * Blame Andrew Morton for all this.
- */
-
-struct task_io_accounting {
-#ifdef CONFIG_TASK_XACCT
- /* bytes read */
- u64 rchar;
- /* bytes written */
- u64 wchar;
- /* # of read syscalls */
- u64 syscr;
- /* # of write syscalls */
- u64 syscw;
-#endif /* CONFIG_TASK_XACCT */
-
-#ifdef CONFIG_TASK_IO_ACCOUNTING
- /*
- * The number of bytes which this task has caused to be read from
- * storage.
- */
- u64 read_bytes;
-
- /*
- * The number of bytes which this task has caused, or shall cause to be
- * written to disk.
- */
- u64 write_bytes;
-
- /*
- * A task can cause "negative" IO too. If this task truncates some
- * dirty pagecache, some IO which another task has been accounted for
- * (in its write_bytes) will not be happening. We _could_ just
- * subtract that from the truncating task's write_bytes, but there is
- * information loss in doing that.
- */
- u64 cancelled_write_bytes;
-#endif /* CONFIG_TASK_IO_ACCOUNTING */
-};
diff --git a/ANDROID_3.4.5/include/linux/task_io_accounting_ops.h b/ANDROID_3.4.5/include/linux/task_io_accounting_ops.h
deleted file mode 100644
index 4d090f9e..00000000
--- a/ANDROID_3.4.5/include/linux/task_io_accounting_ops.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Task I/O accounting operations
- */
-#ifndef __TASK_IO_ACCOUNTING_OPS_INCLUDED
-#define __TASK_IO_ACCOUNTING_OPS_INCLUDED
-
-#include <linux/sched.h>
-
-#ifdef CONFIG_TASK_IO_ACCOUNTING
-static inline void task_io_account_read(size_t bytes)
-{
- current->ioac.read_bytes += bytes;
-}
-
-/*
- * We approximate number of blocks, because we account bytes only.
- * A 'block' is 512 bytes
- */
-static inline unsigned long task_io_get_inblock(const struct task_struct *p)
-{
- return p->ioac.read_bytes >> 9;
-}
-
-static inline void task_io_account_write(size_t bytes)
-{
- current->ioac.write_bytes += bytes;
-}
-
-/*
- * We approximate number of blocks, because we account bytes only.
- * A 'block' is 512 bytes
- */
-static inline unsigned long task_io_get_oublock(const struct task_struct *p)
-{
- return p->ioac.write_bytes >> 9;
-}
-
-static inline void task_io_account_cancelled_write(size_t bytes)
-{
- current->ioac.cancelled_write_bytes += bytes;
-}
-
-static inline void task_io_accounting_init(struct task_io_accounting *ioac)
-{
- memset(ioac, 0, sizeof(*ioac));
-}
-
-static inline void task_blk_io_accounting_add(struct task_io_accounting *dst,
- struct task_io_accounting *src)
-{
- dst->read_bytes += src->read_bytes;
- dst->write_bytes += src->write_bytes;
- dst->cancelled_write_bytes += src->cancelled_write_bytes;
-}
-
-#else
-
-static inline void task_io_account_read(size_t bytes)
-{
-}
-
-static inline unsigned long task_io_get_inblock(const struct task_struct *p)
-{
- return 0;
-}
-
-static inline void task_io_account_write(size_t bytes)
-{
-}
-
-static inline unsigned long task_io_get_oublock(const struct task_struct *p)
-{
- return 0;
-}
-
-static inline void task_io_account_cancelled_write(size_t bytes)
-{
-}
-
-static inline void task_io_accounting_init(struct task_io_accounting *ioac)
-{
-}
-
-static inline void task_blk_io_accounting_add(struct task_io_accounting *dst,
- struct task_io_accounting *src)
-{
-}
-
-#endif /* CONFIG_TASK_IO_ACCOUNTING */
-
-#ifdef CONFIG_TASK_XACCT
-static inline void task_chr_io_accounting_add(struct task_io_accounting *dst,
- struct task_io_accounting *src)
-{
- dst->rchar += src->rchar;
- dst->wchar += src->wchar;
- dst->syscr += src->syscr;
- dst->syscw += src->syscw;
-}
-#else
-static inline void task_chr_io_accounting_add(struct task_io_accounting *dst,
- struct task_io_accounting *src)
-{
-}
-#endif /* CONFIG_TASK_XACCT */
-
-static inline void task_io_accounting_add(struct task_io_accounting *dst,
- struct task_io_accounting *src)
-{
- task_chr_io_accounting_add(dst, src);
- task_blk_io_accounting_add(dst, src);
-}
-#endif /* __TASK_IO_ACCOUNTING_OPS_INCLUDED */
diff --git a/ANDROID_3.4.5/include/linux/taskstats.h b/ANDROID_3.4.5/include/linux/taskstats.h
deleted file mode 100644
index 2466e550..00000000
--- a/ANDROID_3.4.5/include/linux/taskstats.h
+++ /dev/null
@@ -1,213 +0,0 @@
-/* taskstats.h - exporting per-task statistics
- *
- * Copyright (C) Shailabh Nagar, IBM Corp. 2006
- * (C) Balbir Singh, IBM Corp. 2006
- * (C) Jay Lan, SGI, 2006
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2.1 of the GNU Lesser General Public License
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it would be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#ifndef _LINUX_TASKSTATS_H
-#define _LINUX_TASKSTATS_H
-
-#include <linux/types.h>
-
-/* Format for per-task data returned to userland when
- * - a task exits
- * - listener requests stats for a task
- *
- * The struct is versioned. Newer versions should only add fields to
- * the bottom of the struct to maintain backward compatibility.
- *
- *
- * To add new fields
- * a) bump up TASKSTATS_VERSION
- * b) add comment indicating new version number at end of struct
- * c) add new fields after version comment; maintain 64-bit alignment
- */
-
-
-#define TASKSTATS_VERSION 8
-#define TS_COMM_LEN 32 /* should be >= TASK_COMM_LEN
- * in linux/sched.h */
-
-struct taskstats {
-
- /* The version number of this struct. This field is always set to
- * TAKSTATS_VERSION, which is defined in <linux/taskstats.h>.
- * Each time the struct is changed, the value should be incremented.
- */
- __u16 version;
- __u32 ac_exitcode; /* Exit status */
-
- /* The accounting flags of a task as defined in <linux/acct.h>
- * Defined values are AFORK, ASU, ACOMPAT, ACORE, and AXSIG.
- */
- __u8 ac_flag; /* Record flags */
- __u8 ac_nice; /* task_nice */
-
- /* Delay accounting fields start
- *
- * All values, until comment "Delay accounting fields end" are
- * available only if delay accounting is enabled, even though the last
- * few fields are not delays
- *
- * xxx_count is the number of delay values recorded
- * xxx_delay_total is the corresponding cumulative delay in nanoseconds
- *
- * xxx_delay_total wraps around to zero on overflow
- * xxx_count incremented regardless of overflow
- */
-
- /* Delay waiting for cpu, while runnable
- * count, delay_total NOT updated atomically
- */
- __u64 cpu_count __attribute__((aligned(8)));
- __u64 cpu_delay_total;
-
- /* Following four fields atomically updated using task->delays->lock */
-
- /* Delay waiting for synchronous block I/O to complete
- * does not account for delays in I/O submission
- */
- __u64 blkio_count;
- __u64 blkio_delay_total;
-
- /* Delay waiting for page fault I/O (swap in only) */
- __u64 swapin_count;
- __u64 swapin_delay_total;
-
- /* cpu "wall-clock" running time
- * On some architectures, value will adjust for cpu time stolen
- * from the kernel in involuntary waits due to virtualization.
- * Value is cumulative, in nanoseconds, without a corresponding count
- * and wraps around to zero silently on overflow
- */
- __u64 cpu_run_real_total;
-
- /* cpu "virtual" running time
- * Uses time intervals seen by the kernel i.e. no adjustment
- * for kernel's involuntary waits due to virtualization.
- * Value is cumulative, in nanoseconds, without a corresponding count
- * and wraps around to zero silently on overflow
- */
- __u64 cpu_run_virtual_total;
- /* Delay accounting fields end */
- /* version 1 ends here */
-
- /* Basic Accounting Fields start */
- char ac_comm[TS_COMM_LEN]; /* Command name */
- __u8 ac_sched __attribute__((aligned(8)));
- /* Scheduling discipline */
- __u8 ac_pad[3];
- __u32 ac_uid __attribute__((aligned(8)));
- /* User ID */
- __u32 ac_gid; /* Group ID */
- __u32 ac_pid; /* Process ID */
- __u32 ac_ppid; /* Parent process ID */
- __u32 ac_btime; /* Begin time [sec since 1970] */
- __u64 ac_etime __attribute__((aligned(8)));
- /* Elapsed time [usec] */
- __u64 ac_utime; /* User CPU time [usec] */
- __u64 ac_stime; /* SYstem CPU time [usec] */
- __u64 ac_minflt; /* Minor Page Fault Count */
- __u64 ac_majflt; /* Major Page Fault Count */
- /* Basic Accounting Fields end */
-
- /* Extended accounting fields start */
- /* Accumulated RSS usage in duration of a task, in MBytes-usecs.
- * The current rss usage is added to this counter every time
- * a tick is charged to a task's system time. So, at the end we
- * will have memory usage multiplied by system time. Thus an
- * average usage per system time unit can be calculated.
- */
- __u64 coremem; /* accumulated RSS usage in MB-usec */
- /* Accumulated virtual memory usage in duration of a task.
- * Same as acct_rss_mem1 above except that we keep track of VM usage.
- */
- __u64 virtmem; /* accumulated VM usage in MB-usec */
-
- /* High watermark of RSS and virtual memory usage in duration of
- * a task, in KBytes.
- */
- __u64 hiwater_rss; /* High-watermark of RSS usage, in KB */
- __u64 hiwater_vm; /* High-water VM usage, in KB */
-
- /* The following four fields are I/O statistics of a task. */
- __u64 read_char; /* bytes read */
- __u64 write_char; /* bytes written */
- __u64 read_syscalls; /* read syscalls */
- __u64 write_syscalls; /* write syscalls */
- /* Extended accounting fields end */
-
-#define TASKSTATS_HAS_IO_ACCOUNTING
- /* Per-task storage I/O accounting starts */
- __u64 read_bytes; /* bytes of read I/O */
- __u64 write_bytes; /* bytes of write I/O */
- __u64 cancelled_write_bytes; /* bytes of cancelled write I/O */
-
- __u64 nvcsw; /* voluntary_ctxt_switches */
- __u64 nivcsw; /* nonvoluntary_ctxt_switches */
-
- /* time accounting for SMT machines */
- __u64 ac_utimescaled; /* utime scaled on frequency etc */
- __u64 ac_stimescaled; /* stime scaled on frequency etc */
- __u64 cpu_scaled_run_real_total; /* scaled cpu_run_real_total */
-
- /* Delay waiting for memory reclaim */
- __u64 freepages_count;
- __u64 freepages_delay_total;
-};
-
-
-/*
- * Commands sent from userspace
- * Not versioned. New commands should only be inserted at the enum's end
- * prior to __TASKSTATS_CMD_MAX
- */
-
-enum {
- TASKSTATS_CMD_UNSPEC = 0, /* Reserved */
- TASKSTATS_CMD_GET, /* user->kernel request/get-response */
- TASKSTATS_CMD_NEW, /* kernel->user event */
- __TASKSTATS_CMD_MAX,
-};
-
-#define TASKSTATS_CMD_MAX (__TASKSTATS_CMD_MAX - 1)
-
-enum {
- TASKSTATS_TYPE_UNSPEC = 0, /* Reserved */
- TASKSTATS_TYPE_PID, /* Process id */
- TASKSTATS_TYPE_TGID, /* Thread group id */
- TASKSTATS_TYPE_STATS, /* taskstats structure */
- TASKSTATS_TYPE_AGGR_PID, /* contains pid + stats */
- TASKSTATS_TYPE_AGGR_TGID, /* contains tgid + stats */
- TASKSTATS_TYPE_NULL, /* contains nothing */
- __TASKSTATS_TYPE_MAX,
-};
-
-#define TASKSTATS_TYPE_MAX (__TASKSTATS_TYPE_MAX - 1)
-
-enum {
- TASKSTATS_CMD_ATTR_UNSPEC = 0,
- TASKSTATS_CMD_ATTR_PID,
- TASKSTATS_CMD_ATTR_TGID,
- TASKSTATS_CMD_ATTR_REGISTER_CPUMASK,
- TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK,
- __TASKSTATS_CMD_ATTR_MAX,
-};
-
-#define TASKSTATS_CMD_ATTR_MAX (__TASKSTATS_CMD_ATTR_MAX - 1)
-
-/* NETLINK_GENERIC related info */
-
-#define TASKSTATS_GENL_NAME "TASKSTATS"
-#define TASKSTATS_GENL_VERSION 0x1
-
-#endif /* _LINUX_TASKSTATS_H */
diff --git a/ANDROID_3.4.5/include/linux/taskstats_kern.h b/ANDROID_3.4.5/include/linux/taskstats_kern.h
deleted file mode 100644
index 58de6edf..00000000
--- a/ANDROID_3.4.5/include/linux/taskstats_kern.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* taskstats_kern.h - kernel header for per-task statistics interface
- *
- * Copyright (C) Shailabh Nagar, IBM Corp. 2006
- * (C) Balbir Singh, IBM Corp. 2006
- */
-
-#ifndef _LINUX_TASKSTATS_KERN_H
-#define _LINUX_TASKSTATS_KERN_H
-
-#include <linux/taskstats.h>
-#include <linux/sched.h>
-#include <linux/slab.h>
-
-#ifdef CONFIG_TASKSTATS
-extern struct kmem_cache *taskstats_cache;
-extern struct mutex taskstats_exit_mutex;
-
-static inline void taskstats_tgid_free(struct signal_struct *sig)
-{
- if (sig->stats)
- kmem_cache_free(taskstats_cache, sig->stats);
-}
-
-extern void taskstats_exit(struct task_struct *, int group_dead);
-extern void taskstats_init_early(void);
-#else
-static inline void taskstats_exit(struct task_struct *tsk, int group_dead)
-{}
-static inline void taskstats_tgid_free(struct signal_struct *sig)
-{}
-static inline void taskstats_init_early(void)
-{}
-#endif /* CONFIG_TASKSTATS */
-
-#endif
-
diff --git a/ANDROID_3.4.5/include/linux/tboot.h b/ANDROID_3.4.5/include/linux/tboot.h
deleted file mode 100644
index c75128be..00000000
--- a/ANDROID_3.4.5/include/linux/tboot.h
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * tboot.h: shared data structure with tboot and kernel and functions
- * used by kernel for runtime support of Intel(R) Trusted
- * Execution Technology
- *
- * Copyright (c) 2006-2009, Intel Corporation
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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 _LINUX_TBOOT_H
-#define _LINUX_TBOOT_H
-
-/* these must have the values from 0-5 in this order */
-enum {
- TB_SHUTDOWN_REBOOT = 0,
- TB_SHUTDOWN_S5,
- TB_SHUTDOWN_S4,
- TB_SHUTDOWN_S3,
- TB_SHUTDOWN_HALT,
- TB_SHUTDOWN_WFS
-};
-
-#ifdef CONFIG_INTEL_TXT
-#include <acpi/acpi.h>
-/* used to communicate between tboot and the launched kernel */
-
-#define TB_KEY_SIZE 64 /* 512 bits */
-
-#define MAX_TB_MAC_REGIONS 32
-
-struct tboot_mac_region {
- u64 start; /* must be 64 byte -aligned */
- u32 size; /* must be 64 byte -granular */
-} __packed;
-
-/* GAS - Generic Address Structure (ACPI 2.0+) */
-struct tboot_acpi_generic_address {
- u8 space_id;
- u8 bit_width;
- u8 bit_offset;
- u8 access_width;
- u64 address;
-} __packed;
-
-/*
- * combines Sx info from FADT and FACS tables per ACPI 2.0+ spec
- * (http://www.acpi.info/)
- */
-struct tboot_acpi_sleep_info {
- struct tboot_acpi_generic_address pm1a_cnt_blk;
- struct tboot_acpi_generic_address pm1b_cnt_blk;
- struct tboot_acpi_generic_address pm1a_evt_blk;
- struct tboot_acpi_generic_address pm1b_evt_blk;
- u16 pm1a_cnt_val;
- u16 pm1b_cnt_val;
- u64 wakeup_vector;
- u32 vector_width;
- u64 kernel_s3_resume_vector;
-} __packed;
-
-/*
- * shared memory page used for communication between tboot and kernel
- */
-struct tboot {
- /*
- * version 3+ fields:
- */
-
- /* TBOOT_UUID */
- u8 uuid[16];
-
- /* version number: 5 is current */
- u32 version;
-
- /* physical addr of tb_log_t log */
- u32 log_addr;
-
- /*
- * physical addr of entry point for tboot shutdown and
- * type of shutdown (TB_SHUTDOWN_*) being requested
- */
- u32 shutdown_entry;
- u32 shutdown_type;
-
- /* kernel-specified ACPI info for Sx shutdown */
- struct tboot_acpi_sleep_info acpi_sinfo;
-
- /* tboot location in memory (physical) */
- u32 tboot_base;
- u32 tboot_size;
-
- /* memory regions (phys addrs) for tboot to MAC on S3 */
- u8 num_mac_regions;
- struct tboot_mac_region mac_regions[MAX_TB_MAC_REGIONS];
-
-
- /*
- * version 4+ fields:
- */
-
- /* symmetric key for use by kernel; will be encrypted on S3 */
- u8 s3_key[TB_KEY_SIZE];
-
-
- /*
- * version 5+ fields:
- */
-
- /* used to 4byte-align num_in_wfs */
- u8 reserved_align[3];
-
- /* number of processors in wait-for-SIPI */
- u32 num_in_wfs;
-} __packed;
-
-/*
- * UUID for tboot data struct to facilitate matching
- * defined as {663C8DFF-E8B3-4b82-AABF-19EA4D057A08} by tboot, which is
- * represented as {} in the char array used here
- */
-#define TBOOT_UUID {0xff, 0x8d, 0x3c, 0x66, 0xb3, 0xe8, 0x82, 0x4b, 0xbf,\
- 0xaa, 0x19, 0xea, 0x4d, 0x5, 0x7a, 0x8}
-
-extern struct tboot *tboot;
-
-static inline int tboot_enabled(void)
-{
- return tboot != NULL;
-}
-
-extern void tboot_probe(void);
-extern void tboot_shutdown(u32 shutdown_type);
-extern struct acpi_table_header *tboot_get_dmar_table(
- struct acpi_table_header *dmar_tbl);
-extern int tboot_force_iommu(void);
-
-#else
-
-#define tboot_enabled() 0
-#define tboot_probe() do { } while (0)
-#define tboot_shutdown(shutdown_type) do { } while (0)
-#define tboot_sleep(sleep_state, pm1a_control, pm1b_control) \
- do { } while (0)
-#define tboot_get_dmar_table(dmar_tbl) (dmar_tbl)
-#define tboot_force_iommu() 0
-
-#endif /* !CONFIG_INTEL_TXT */
-
-#endif /* _LINUX_TBOOT_H */
diff --git a/ANDROID_3.4.5/include/linux/tc.h b/ANDROID_3.4.5/include/linux/tc.h
deleted file mode 100644
index f92511e5..00000000
--- a/ANDROID_3.4.5/include/linux/tc.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Interface to the TURBOchannel related routines.
- *
- * Copyright (c) 1998 Harald Koerfgen
- * Copyright (c) 2005 James Simmons
- * Copyright (c) 2006 Maciej W. Rozycki
- *
- * Based on:
- *
- * "TURBOchannel Firmware Specification", EK-TCAAD-FS-004
- *
- * from Digital Equipment Corporation.
- *
- * This file is subject to the terms and conditions of the GNU
- * General Public License. See the file "COPYING" in the main
- * directory of this archive for more details.
- */
-#ifndef _LINUX_TC_H
-#define _LINUX_TC_H
-
-#include <linux/compiler.h>
-#include <linux/device.h>
-#include <linux/ioport.h>
-#include <linux/types.h>
-
-/*
- * Offsets for the ROM header locations for TURBOchannel cards.
- */
-#define TC_OLDCARD 0x3c0000
-#define TC_NEWCARD 0x000000
-
-#define TC_ROM_WIDTH 0x3e0
-#define TC_ROM_STRIDE 0x3e4
-#define TC_ROM_SIZE 0x3e8
-#define TC_SLOT_SIZE 0x3ec
-#define TC_PATTERN0 0x3f0
-#define TC_PATTERN1 0x3f4
-#define TC_PATTERN2 0x3f8
-#define TC_PATTERN3 0x3fc
-#define TC_FIRM_VER 0x400
-#define TC_VENDOR 0x420
-#define TC_MODULE 0x440
-#define TC_FIRM_TYPE 0x460
-#define TC_FLAGS 0x470
-#define TC_ROM_OBJECTS 0x480
-
-/*
- * Information obtained through the get_tcinfo() PROM call.
- */
-struct tcinfo {
- s32 revision; /* Hardware revision level. */
- s32 clk_period; /* Clock period in nanoseconds. */
- s32 slot_size; /* Slot size in megabytes. */
- s32 io_timeout; /* I/O timeout in cycles. */
- s32 dma_range; /* DMA address range in megabytes. */
- s32 max_dma_burst; /* Maximum DMA burst length. */
- s32 parity; /* System module supports TC parity. */
- s32 reserved[4];
-};
-
-/*
- * TURBOchannel bus.
- */
-struct tc_bus {
- struct list_head devices; /* List of devices on this bus. */
- struct resource resource[2]; /* Address space routed to this bus. */
-
- struct device dev;
- char name[13];
- resource_size_t slot_base;
- resource_size_t ext_slot_base;
- resource_size_t ext_slot_size;
- int num_tcslots;
- struct tcinfo info;
-};
-
-/*
- * TURBOchannel device.
- */
-struct tc_dev {
- struct list_head node; /* Node in list of all TC devices. */
- struct tc_bus *bus; /* Bus this device is on. */
- struct tc_driver *driver; /* Which driver has allocated this
- device. */
- struct device dev; /* Generic device interface. */
- struct resource resource; /* Address space of this device. */
- char vendor[9];
- char name[9];
- char firmware[9];
- int interrupt;
- int slot;
-};
-
-#define to_tc_dev(n) container_of(n, struct tc_dev, dev)
-
-struct tc_device_id {
- char vendor[9];
- char name[9];
-};
-
-/*
- * TURBOchannel driver.
- */
-struct tc_driver {
- struct list_head node;
- const struct tc_device_id *id_table;
- struct device_driver driver;
-};
-
-#define to_tc_driver(drv) container_of(drv, struct tc_driver, driver)
-
-/*
- * Return TURBOchannel clock frequency in Hz.
- */
-static inline unsigned long tc_get_speed(struct tc_bus *tbus)
-{
- return 100000 * (10000 / (unsigned long)tbus->info.clk_period);
-}
-
-#ifdef CONFIG_TC
-
-extern struct bus_type tc_bus_type;
-
-extern int tc_register_driver(struct tc_driver *tdrv);
-extern void tc_unregister_driver(struct tc_driver *tdrv);
-
-#else /* !CONFIG_TC */
-
-static inline int tc_register_driver(struct tc_driver *tdrv) { return 0; }
-static inline void tc_unregister_driver(struct tc_driver *tdrv) { }
-
-#endif /* CONFIG_TC */
-
-/*
- * These have to be provided by the architecture.
- */
-extern int tc_preadb(u8 *valp, void __iomem *addr);
-extern int tc_bus_get_info(struct tc_bus *tbus);
-extern void tc_device_get_irq(struct tc_dev *tdev);
-
-#endif /* _LINUX_TC_H */
diff --git a/ANDROID_3.4.5/include/linux/tc_act/Kbuild b/ANDROID_3.4.5/include/linux/tc_act/Kbuild
deleted file mode 100644
index 67b501c3..00000000
--- a/ANDROID_3.4.5/include/linux/tc_act/Kbuild
+++ /dev/null
@@ -1,7 +0,0 @@
-header-y += tc_gact.h
-header-y += tc_ipt.h
-header-y += tc_mirred.h
-header-y += tc_pedit.h
-header-y += tc_nat.h
-header-y += tc_skbedit.h
-header-y += tc_csum.h
diff --git a/ANDROID_3.4.5/include/linux/tc_act/tc_csum.h b/ANDROID_3.4.5/include/linux/tc_act/tc_csum.h
deleted file mode 100644
index a047c49a..00000000
--- a/ANDROID_3.4.5/include/linux/tc_act/tc_csum.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef __LINUX_TC_CSUM_H
-#define __LINUX_TC_CSUM_H
-
-#include <linux/types.h>
-#include <linux/pkt_cls.h>
-
-#define TCA_ACT_CSUM 16
-
-enum {
- TCA_CSUM_UNSPEC,
- TCA_CSUM_PARMS,
- TCA_CSUM_TM,
- __TCA_CSUM_MAX
-};
-#define TCA_CSUM_MAX (__TCA_CSUM_MAX - 1)
-
-enum {
- TCA_CSUM_UPDATE_FLAG_IPV4HDR = 1,
- TCA_CSUM_UPDATE_FLAG_ICMP = 2,
- TCA_CSUM_UPDATE_FLAG_IGMP = 4,
- TCA_CSUM_UPDATE_FLAG_TCP = 8,
- TCA_CSUM_UPDATE_FLAG_UDP = 16,
- TCA_CSUM_UPDATE_FLAG_UDPLITE = 32
-};
-
-struct tc_csum {
- tc_gen;
-
- __u32 update_flags;
-};
-
-#endif /* __LINUX_TC_CSUM_H */
diff --git a/ANDROID_3.4.5/include/linux/tc_act/tc_defact.h b/ANDROID_3.4.5/include/linux/tc_act/tc_defact.h
deleted file mode 100644
index 6f65d07c..00000000
--- a/ANDROID_3.4.5/include/linux/tc_act/tc_defact.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef __LINUX_TC_DEF_H
-#define __LINUX_TC_DEF_H
-
-#include <linux/pkt_cls.h>
-
-struct tc_defact {
- tc_gen;
-};
-
-enum {
- TCA_DEF_UNSPEC,
- TCA_DEF_TM,
- TCA_DEF_PARMS,
- TCA_DEF_DATA,
- __TCA_DEF_MAX
-};
-#define TCA_DEF_MAX (__TCA_DEF_MAX - 1)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/tc_act/tc_gact.h b/ANDROID_3.4.5/include/linux/tc_act/tc_gact.h
deleted file mode 100644
index f7bf94ee..00000000
--- a/ANDROID_3.4.5/include/linux/tc_act/tc_gact.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef __LINUX_TC_GACT_H
-#define __LINUX_TC_GACT_H
-
-#include <linux/types.h>
-#include <linux/pkt_cls.h>
-
-#define TCA_ACT_GACT 5
-struct tc_gact {
- tc_gen;
-
-};
-
-struct tc_gact_p {
-#define PGACT_NONE 0
-#define PGACT_NETRAND 1
-#define PGACT_DETERM 2
-#define MAX_RAND (PGACT_DETERM + 1 )
- __u16 ptype;
- __u16 pval;
- int paction;
-};
-
-enum {
- TCA_GACT_UNSPEC,
- TCA_GACT_TM,
- TCA_GACT_PARMS,
- TCA_GACT_PROB,
- __TCA_GACT_MAX
-};
-#define TCA_GACT_MAX (__TCA_GACT_MAX - 1)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/tc_act/tc_ipt.h b/ANDROID_3.4.5/include/linux/tc_act/tc_ipt.h
deleted file mode 100644
index a2335563..00000000
--- a/ANDROID_3.4.5/include/linux/tc_act/tc_ipt.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef __LINUX_TC_IPT_H
-#define __LINUX_TC_IPT_H
-
-#include <linux/pkt_cls.h>
-
-#define TCA_ACT_IPT 6
-
-enum {
- TCA_IPT_UNSPEC,
- TCA_IPT_TABLE,
- TCA_IPT_HOOK,
- TCA_IPT_INDEX,
- TCA_IPT_CNT,
- TCA_IPT_TM,
- TCA_IPT_TARG,
- __TCA_IPT_MAX
-};
-#define TCA_IPT_MAX (__TCA_IPT_MAX - 1)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/tc_act/tc_mirred.h b/ANDROID_3.4.5/include/linux/tc_act/tc_mirred.h
deleted file mode 100644
index 7561750e..00000000
--- a/ANDROID_3.4.5/include/linux/tc_act/tc_mirred.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef __LINUX_TC_MIR_H
-#define __LINUX_TC_MIR_H
-
-#include <linux/types.h>
-#include <linux/pkt_cls.h>
-
-#define TCA_ACT_MIRRED 8
-#define TCA_EGRESS_REDIR 1 /* packet redirect to EGRESS*/
-#define TCA_EGRESS_MIRROR 2 /* mirror packet to EGRESS */
-#define TCA_INGRESS_REDIR 3 /* packet redirect to INGRESS*/
-#define TCA_INGRESS_MIRROR 4 /* mirror packet to INGRESS */
-
-struct tc_mirred {
- tc_gen;
- int eaction; /* one of IN/EGRESS_MIRROR/REDIR */
- __u32 ifindex; /* ifindex of egress port */
-};
-
-enum {
- TCA_MIRRED_UNSPEC,
- TCA_MIRRED_TM,
- TCA_MIRRED_PARMS,
- __TCA_MIRRED_MAX
-};
-#define TCA_MIRRED_MAX (__TCA_MIRRED_MAX - 1)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/tc_act/tc_nat.h b/ANDROID_3.4.5/include/linux/tc_act/tc_nat.h
deleted file mode 100644
index 6663aeba..00000000
--- a/ANDROID_3.4.5/include/linux/tc_act/tc_nat.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef __LINUX_TC_NAT_H
-#define __LINUX_TC_NAT_H
-
-#include <linux/pkt_cls.h>
-#include <linux/types.h>
-
-#define TCA_ACT_NAT 9
-
-enum {
- TCA_NAT_UNSPEC,
- TCA_NAT_PARMS,
- TCA_NAT_TM,
- __TCA_NAT_MAX
-};
-#define TCA_NAT_MAX (__TCA_NAT_MAX - 1)
-
-#define TCA_NAT_FLAG_EGRESS 1
-
-struct tc_nat {
- tc_gen;
- __be32 old_addr;
- __be32 new_addr;
- __be32 mask;
- __u32 flags;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/tc_act/tc_pedit.h b/ANDROID_3.4.5/include/linux/tc_act/tc_pedit.h
deleted file mode 100644
index 716cfabc..00000000
--- a/ANDROID_3.4.5/include/linux/tc_act/tc_pedit.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef __LINUX_TC_PED_H
-#define __LINUX_TC_PED_H
-
-#include <linux/types.h>
-#include <linux/pkt_cls.h>
-
-#define TCA_ACT_PEDIT 7
-
-enum {
- TCA_PEDIT_UNSPEC,
- TCA_PEDIT_TM,
- TCA_PEDIT_PARMS,
- __TCA_PEDIT_MAX
-};
-#define TCA_PEDIT_MAX (__TCA_PEDIT_MAX - 1)
-
-struct tc_pedit_key {
- __u32 mask; /* AND */
- __u32 val; /*XOR */
- __u32 off; /*offset */
- __u32 at;
- __u32 offmask;
- __u32 shift;
-};
-
-struct tc_pedit_sel {
- tc_gen;
- unsigned char nkeys;
- unsigned char flags;
- struct tc_pedit_key keys[0];
-};
-#define tc_pedit tc_pedit_sel
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/tc_act/tc_skbedit.h b/ANDROID_3.4.5/include/linux/tc_act/tc_skbedit.h
deleted file mode 100644
index 7a2e910a..00000000
--- a/ANDROID_3.4.5/include/linux/tc_act/tc_skbedit.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2008, Intel Corporation.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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.
- *
- * Author: Alexander Duyck <alexander.h.duyck@intel.com>
- */
-
-#ifndef __LINUX_TC_SKBEDIT_H
-#define __LINUX_TC_SKBEDIT_H
-
-#include <linux/pkt_cls.h>
-
-#define TCA_ACT_SKBEDIT 11
-
-#define SKBEDIT_F_PRIORITY 0x1
-#define SKBEDIT_F_QUEUE_MAPPING 0x2
-#define SKBEDIT_F_MARK 0x4
-
-struct tc_skbedit {
- tc_gen;
-};
-
-enum {
- TCA_SKBEDIT_UNSPEC,
- TCA_SKBEDIT_TM,
- TCA_SKBEDIT_PARMS,
- TCA_SKBEDIT_PRIORITY,
- TCA_SKBEDIT_QUEUE_MAPPING,
- TCA_SKBEDIT_MARK,
- __TCA_SKBEDIT_MAX
-};
-#define TCA_SKBEDIT_MAX (__TCA_SKBEDIT_MAX - 1)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/tc_ematch/Kbuild b/ANDROID_3.4.5/include/linux/tc_ematch/Kbuild
deleted file mode 100644
index 4a58a1c3..00000000
--- a/ANDROID_3.4.5/include/linux/tc_ematch/Kbuild
+++ /dev/null
@@ -1,4 +0,0 @@
-header-y += tc_em_cmp.h
-header-y += tc_em_meta.h
-header-y += tc_em_nbyte.h
-header-y += tc_em_text.h
diff --git a/ANDROID_3.4.5/include/linux/tc_ematch/tc_em_cmp.h b/ANDROID_3.4.5/include/linux/tc_ematch/tc_em_cmp.h
deleted file mode 100644
index f34bb1ba..00000000
--- a/ANDROID_3.4.5/include/linux/tc_ematch/tc_em_cmp.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef __LINUX_TC_EM_CMP_H
-#define __LINUX_TC_EM_CMP_H
-
-#include <linux/types.h>
-#include <linux/pkt_cls.h>
-
-struct tcf_em_cmp {
- __u32 val;
- __u32 mask;
- __u16 off;
- __u8 align:4;
- __u8 flags:4;
- __u8 layer:4;
- __u8 opnd:4;
-};
-
-enum {
- TCF_EM_ALIGN_U8 = 1,
- TCF_EM_ALIGN_U16 = 2,
- TCF_EM_ALIGN_U32 = 4
-};
-
-#define TCF_EM_CMP_TRANS 1
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/tc_ematch/tc_em_meta.h b/ANDROID_3.4.5/include/linux/tc_ematch/tc_em_meta.h
deleted file mode 100644
index b11f8ce2..00000000
--- a/ANDROID_3.4.5/include/linux/tc_ematch/tc_em_meta.h
+++ /dev/null
@@ -1,92 +0,0 @@
-#ifndef __LINUX_TC_EM_META_H
-#define __LINUX_TC_EM_META_H
-
-#include <linux/types.h>
-#include <linux/pkt_cls.h>
-
-enum {
- TCA_EM_META_UNSPEC,
- TCA_EM_META_HDR,
- TCA_EM_META_LVALUE,
- TCA_EM_META_RVALUE,
- __TCA_EM_META_MAX
-};
-#define TCA_EM_META_MAX (__TCA_EM_META_MAX - 1)
-
-struct tcf_meta_val {
- __u16 kind;
- __u8 shift;
- __u8 op;
-};
-
-#define TCF_META_TYPE_MASK (0xf << 12)
-#define TCF_META_TYPE(kind) (((kind) & TCF_META_TYPE_MASK) >> 12)
-#define TCF_META_ID_MASK 0x7ff
-#define TCF_META_ID(kind) ((kind) & TCF_META_ID_MASK)
-
-enum {
- TCF_META_TYPE_VAR,
- TCF_META_TYPE_INT,
- __TCF_META_TYPE_MAX
-};
-#define TCF_META_TYPE_MAX (__TCF_META_TYPE_MAX - 1)
-
-enum {
- TCF_META_ID_VALUE,
- TCF_META_ID_RANDOM,
- TCF_META_ID_LOADAVG_0,
- TCF_META_ID_LOADAVG_1,
- TCF_META_ID_LOADAVG_2,
- TCF_META_ID_DEV,
- TCF_META_ID_PRIORITY,
- TCF_META_ID_PROTOCOL,
- TCF_META_ID_PKTTYPE,
- TCF_META_ID_PKTLEN,
- TCF_META_ID_DATALEN,
- TCF_META_ID_MACLEN,
- TCF_META_ID_NFMARK,
- TCF_META_ID_TCINDEX,
- TCF_META_ID_RTCLASSID,
- TCF_META_ID_RTIIF,
- TCF_META_ID_SK_FAMILY,
- TCF_META_ID_SK_STATE,
- TCF_META_ID_SK_REUSE,
- TCF_META_ID_SK_BOUND_IF,
- TCF_META_ID_SK_REFCNT,
- TCF_META_ID_SK_SHUTDOWN,
- TCF_META_ID_SK_PROTO,
- TCF_META_ID_SK_TYPE,
- TCF_META_ID_SK_RCVBUF,
- TCF_META_ID_SK_RMEM_ALLOC,
- TCF_META_ID_SK_WMEM_ALLOC,
- TCF_META_ID_SK_OMEM_ALLOC,
- TCF_META_ID_SK_WMEM_QUEUED,
- TCF_META_ID_SK_RCV_QLEN,
- TCF_META_ID_SK_SND_QLEN,
- TCF_META_ID_SK_ERR_QLEN,
- TCF_META_ID_SK_FORWARD_ALLOCS,
- TCF_META_ID_SK_SNDBUF,
- TCF_META_ID_SK_ALLOCS,
- __TCF_META_ID_SK_ROUTE_CAPS, /* unimplemented but in ABI already */
- TCF_META_ID_SK_HASH,
- TCF_META_ID_SK_LINGERTIME,
- TCF_META_ID_SK_ACK_BACKLOG,
- TCF_META_ID_SK_MAX_ACK_BACKLOG,
- TCF_META_ID_SK_PRIO,
- TCF_META_ID_SK_RCVLOWAT,
- TCF_META_ID_SK_RCVTIMEO,
- TCF_META_ID_SK_SNDTIMEO,
- TCF_META_ID_SK_SENDMSG_OFF,
- TCF_META_ID_SK_WRITE_PENDING,
- TCF_META_ID_VLAN_TAG,
- TCF_META_ID_RXHASH,
- __TCF_META_ID_MAX
-};
-#define TCF_META_ID_MAX (__TCF_META_ID_MAX - 1)
-
-struct tcf_meta_hdr {
- struct tcf_meta_val left;
- struct tcf_meta_val right;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/tc_ematch/tc_em_nbyte.h b/ANDROID_3.4.5/include/linux/tc_ematch/tc_em_nbyte.h
deleted file mode 100644
index 7172cfb9..00000000
--- a/ANDROID_3.4.5/include/linux/tc_ematch/tc_em_nbyte.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef __LINUX_TC_EM_NBYTE_H
-#define __LINUX_TC_EM_NBYTE_H
-
-#include <linux/types.h>
-#include <linux/pkt_cls.h>
-
-struct tcf_em_nbyte {
- __u16 off;
- __u16 len:12;
- __u8 layer:4;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/tc_ematch/tc_em_text.h b/ANDROID_3.4.5/include/linux/tc_ematch/tc_em_text.h
deleted file mode 100644
index 5aac4045..00000000
--- a/ANDROID_3.4.5/include/linux/tc_ematch/tc_em_text.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef __LINUX_TC_EM_TEXT_H
-#define __LINUX_TC_EM_TEXT_H
-
-#include <linux/types.h>
-#include <linux/pkt_cls.h>
-
-#define TC_EM_TEXT_ALGOSIZ 16
-
-struct tcf_em_text {
- char algo[TC_EM_TEXT_ALGOSIZ];
- __u16 from_offset;
- __u16 to_offset;
- __u16 pattern_len;
- __u8 from_layer:4;
- __u8 to_layer:4;
- __u8 pad;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/tca6416_keypad.h b/ANDROID_3.4.5/include/linux/tca6416_keypad.h
deleted file mode 100644
index 7bd266f3..00000000
--- a/ANDROID_3.4.5/include/linux/tca6416_keypad.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * tca6416 keypad platform support
- *
- * Copyright (C) 2010 Texas Instruments
- *
- * Author: Sriramakrishnan <srk@ti.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.
- */
-
-#ifndef _TCA6416_KEYS_H
-#define _TCA6416_KEYS_H
-
-#include <linux/types.h>
-
-struct tca6416_button {
- /* Configuration parameters */
- int code; /* input event code (KEY_*, SW_*) */
- int active_low;
- int type; /* input event type (EV_KEY, EV_SW) */
-};
-
-struct tca6416_keys_platform_data {
- struct tca6416_button *buttons;
- int nbuttons;
- unsigned int rep:1; /* enable input subsystem auto repeat */
- uint16_t pinmask;
- uint16_t invert;
- int irq_is_gpio;
- int use_polling; /* use polling if Interrupt is not connected*/
-};
-#endif
diff --git a/ANDROID_3.4.5/include/linux/tcp.h b/ANDROID_3.4.5/include/linux/tcp.h
deleted file mode 100644
index b6c62d29..00000000
--- a/ANDROID_3.4.5/include/linux/tcp.h
+++ /dev/null
@@ -1,505 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Definitions for the TCP protocol.
- *
- * Version: @(#)tcp.h 1.0.2 04/28/93
- *
- * Author: Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.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.
- */
-#ifndef _LINUX_TCP_H
-#define _LINUX_TCP_H
-
-#include <linux/types.h>
-#include <asm/byteorder.h>
-#include <linux/socket.h>
-
-struct tcphdr {
- __be16 source;
- __be16 dest;
- __be32 seq;
- __be32 ack_seq;
-#if defined(__LITTLE_ENDIAN_BITFIELD)
- __u16 res1:4,
- doff:4,
- fin:1,
- syn:1,
- rst:1,
- psh:1,
- ack:1,
- urg:1,
- ece:1,
- cwr:1;
-#elif defined(__BIG_ENDIAN_BITFIELD)
- __u16 doff:4,
- res1:4,
- cwr:1,
- ece:1,
- urg:1,
- ack:1,
- psh:1,
- rst:1,
- syn:1,
- fin:1;
-#else
-#error "Adjust your <asm/byteorder.h> defines"
-#endif
- __be16 window;
- __sum16 check;
- __be16 urg_ptr;
-};
-
-/*
- * The union cast uses a gcc extension to avoid aliasing problems
- * (union is compatible to any of its members)
- * This means this part of the code is -fstrict-aliasing safe now.
- */
-union tcp_word_hdr {
- struct tcphdr hdr;
- __be32 words[5];
-};
-
-#define tcp_flag_word(tp) ( ((union tcp_word_hdr *)(tp))->words [3])
-
-enum {
- TCP_FLAG_CWR = __cpu_to_be32(0x00800000),
- TCP_FLAG_ECE = __cpu_to_be32(0x00400000),
- TCP_FLAG_URG = __cpu_to_be32(0x00200000),
- TCP_FLAG_ACK = __cpu_to_be32(0x00100000),
- TCP_FLAG_PSH = __cpu_to_be32(0x00080000),
- TCP_FLAG_RST = __cpu_to_be32(0x00040000),
- TCP_FLAG_SYN = __cpu_to_be32(0x00020000),
- TCP_FLAG_FIN = __cpu_to_be32(0x00010000),
- TCP_RESERVED_BITS = __cpu_to_be32(0x0F000000),
- TCP_DATA_OFFSET = __cpu_to_be32(0xF0000000)
-};
-
-/*
- * TCP general constants
- */
-#define TCP_MSS_DEFAULT 536U /* IPv4 (RFC1122, RFC2581) */
-#define TCP_MSS_DESIRED 1220U /* IPv6 (tunneled), EDNS0 (RFC3226) */
-
-/* TCP socket options */
-#define TCP_NODELAY 1 /* Turn off Nagle's algorithm. */
-#define TCP_MAXSEG 2 /* Limit MSS */
-#define TCP_CORK 3 /* Never send partially complete segments */
-#define TCP_KEEPIDLE 4 /* Start keeplives after this period */
-#define TCP_KEEPINTVL 5 /* Interval between keepalives */
-#define TCP_KEEPCNT 6 /* Number of keepalives before death */
-#define TCP_SYNCNT 7 /* Number of SYN retransmits */
-#define TCP_LINGER2 8 /* Life time of orphaned FIN-WAIT-2 state */
-#define TCP_DEFER_ACCEPT 9 /* Wake up listener only when data arrive */
-#define TCP_WINDOW_CLAMP 10 /* Bound advertised window */
-#define TCP_INFO 11 /* Information about this connection. */
-#define TCP_QUICKACK 12 /* Block/reenable quick acks */
-#define TCP_CONGESTION 13 /* Congestion control algorithm */
-#define TCP_MD5SIG 14 /* TCP MD5 Signature (RFC2385) */
-#define TCP_COOKIE_TRANSACTIONS 15 /* TCP Cookie Transactions */
-#define TCP_THIN_LINEAR_TIMEOUTS 16 /* Use linear timeouts for thin streams*/
-#define TCP_THIN_DUPACK 17 /* Fast retrans. after 1 dupack */
-#define TCP_USER_TIMEOUT 18 /* How long for loss retry before timeout */
-
-/* for TCP_INFO socket option */
-#define TCPI_OPT_TIMESTAMPS 1
-#define TCPI_OPT_SACK 2
-#define TCPI_OPT_WSCALE 4
-#define TCPI_OPT_ECN 8 /* ECN was negociated at TCP session init */
-#define TCPI_OPT_ECN_SEEN 16 /* we received at least one packet with ECT */
-
-enum tcp_ca_state {
- TCP_CA_Open = 0,
-#define TCPF_CA_Open (1<<TCP_CA_Open)
- TCP_CA_Disorder = 1,
-#define TCPF_CA_Disorder (1<<TCP_CA_Disorder)
- TCP_CA_CWR = 2,
-#define TCPF_CA_CWR (1<<TCP_CA_CWR)
- TCP_CA_Recovery = 3,
-#define TCPF_CA_Recovery (1<<TCP_CA_Recovery)
- TCP_CA_Loss = 4
-#define TCPF_CA_Loss (1<<TCP_CA_Loss)
-};
-
-struct tcp_info {
- __u8 tcpi_state;
- __u8 tcpi_ca_state;
- __u8 tcpi_retransmits;
- __u8 tcpi_probes;
- __u8 tcpi_backoff;
- __u8 tcpi_options;
- __u8 tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4;
-
- __u32 tcpi_rto;
- __u32 tcpi_ato;
- __u32 tcpi_snd_mss;
- __u32 tcpi_rcv_mss;
-
- __u32 tcpi_unacked;
- __u32 tcpi_sacked;
- __u32 tcpi_lost;
- __u32 tcpi_retrans;
- __u32 tcpi_fackets;
-
- /* Times. */
- __u32 tcpi_last_data_sent;
- __u32 tcpi_last_ack_sent; /* Not remembered, sorry. */
- __u32 tcpi_last_data_recv;
- __u32 tcpi_last_ack_recv;
-
- /* Metrics. */
- __u32 tcpi_pmtu;
- __u32 tcpi_rcv_ssthresh;
- __u32 tcpi_rtt;
- __u32 tcpi_rttvar;
- __u32 tcpi_snd_ssthresh;
- __u32 tcpi_snd_cwnd;
- __u32 tcpi_advmss;
- __u32 tcpi_reordering;
-
- __u32 tcpi_rcv_rtt;
- __u32 tcpi_rcv_space;
-
- __u32 tcpi_total_retrans;
-};
-
-/* for TCP_MD5SIG socket option */
-#define TCP_MD5SIG_MAXKEYLEN 80
-
-struct tcp_md5sig {
- struct __kernel_sockaddr_storage tcpm_addr; /* address associated */
- __u16 __tcpm_pad1; /* zero */
- __u16 tcpm_keylen; /* key length */
- __u32 __tcpm_pad2; /* zero */
- __u8 tcpm_key[TCP_MD5SIG_MAXKEYLEN]; /* key (binary) */
-};
-
-/* for TCP_COOKIE_TRANSACTIONS (TCPCT) socket option */
-#define TCP_COOKIE_MIN 8 /* 64-bits */
-#define TCP_COOKIE_MAX 16 /* 128-bits */
-#define TCP_COOKIE_PAIR_SIZE (2*TCP_COOKIE_MAX)
-
-/* Flags for both getsockopt and setsockopt */
-#define TCP_COOKIE_IN_ALWAYS (1 << 0) /* Discard SYN without cookie */
-#define TCP_COOKIE_OUT_NEVER (1 << 1) /* Prohibit outgoing cookies,
- * supercedes everything. */
-
-/* Flags for getsockopt */
-#define TCP_S_DATA_IN (1 << 2) /* Was data received? */
-#define TCP_S_DATA_OUT (1 << 3) /* Was data sent? */
-
-/* TCP_COOKIE_TRANSACTIONS data */
-struct tcp_cookie_transactions {
- __u16 tcpct_flags; /* see above */
- __u8 __tcpct_pad1; /* zero */
- __u8 tcpct_cookie_desired; /* bytes */
- __u16 tcpct_s_data_desired; /* bytes of variable data */
- __u16 tcpct_used; /* bytes in value */
- __u8 tcpct_value[TCP_MSS_DEFAULT];
-};
-
-#ifdef __KERNEL__
-
-#include <linux/skbuff.h>
-#include <linux/dmaengine.h>
-#include <net/sock.h>
-#include <net/inet_connection_sock.h>
-#include <net/inet_timewait_sock.h>
-
-static inline struct tcphdr *tcp_hdr(const struct sk_buff *skb)
-{
- return (struct tcphdr *)skb_transport_header(skb);
-}
-
-static inline unsigned int tcp_hdrlen(const struct sk_buff *skb)
-{
- return tcp_hdr(skb)->doff * 4;
-}
-
-static inline unsigned int tcp_optlen(const struct sk_buff *skb)
-{
- return (tcp_hdr(skb)->doff - 5) * 4;
-}
-
-/* This defines a selective acknowledgement block. */
-struct tcp_sack_block_wire {
- __be32 start_seq;
- __be32 end_seq;
-};
-
-struct tcp_sack_block {
- u32 start_seq;
- u32 end_seq;
-};
-
-/*These are used to set the sack_ok field in struct tcp_options_received */
-#define TCP_SACK_SEEN (1 << 0) /*1 = peer is SACK capable, */
-#define TCP_FACK_ENABLED (1 << 1) /*1 = FACK is enabled locally*/
-#define TCP_DSACK_SEEN (1 << 2) /*1 = DSACK was received from peer*/
-
-struct tcp_options_received {
-/* PAWS/RTTM data */
- long ts_recent_stamp;/* Time we stored ts_recent (for aging) */
- u32 ts_recent; /* Time stamp to echo next */
- u32 rcv_tsval; /* Time stamp value */
- u32 rcv_tsecr; /* Time stamp echo reply */
- u16 saw_tstamp : 1, /* Saw TIMESTAMP on last packet */
- tstamp_ok : 1, /* TIMESTAMP seen on SYN packet */
- dsack : 1, /* D-SACK is scheduled */
- wscale_ok : 1, /* Wscale seen on SYN packet */
- sack_ok : 4, /* SACK seen on SYN packet */
- snd_wscale : 4, /* Window scaling received from sender */
- rcv_wscale : 4; /* Window scaling to send to receiver */
- u8 cookie_plus:6, /* bytes in authenticator/cookie option */
- cookie_out_never:1,
- cookie_in_always:1;
- u8 num_sacks; /* Number of SACK blocks */
- u16 user_mss; /* mss requested by user in ioctl */
- u16 mss_clamp; /* Maximal mss, negotiated at connection setup */
-};
-
-static inline void tcp_clear_options(struct tcp_options_received *rx_opt)
-{
- rx_opt->tstamp_ok = rx_opt->sack_ok = 0;
- rx_opt->wscale_ok = rx_opt->snd_wscale = 0;
- rx_opt->cookie_plus = 0;
-}
-
-/* This is the max number of SACKS that we'll generate and process. It's safe
- * to increase this, although since:
- * size = TCPOLEN_SACK_BASE_ALIGNED (4) + n * TCPOLEN_SACK_PERBLOCK (8)
- * only four options will fit in a standard TCP header */
-#define TCP_NUM_SACKS 4
-
-struct tcp_cookie_values;
-struct tcp_request_sock_ops;
-
-struct tcp_request_sock {
- struct inet_request_sock req;
-#ifdef CONFIG_TCP_MD5SIG
- /* Only used by TCP MD5 Signature so far. */
- const struct tcp_request_sock_ops *af_specific;
-#endif
- u32 rcv_isn;
- u32 snt_isn;
- u32 snt_synack; /* synack sent time */
-};
-
-static inline struct tcp_request_sock *tcp_rsk(const struct request_sock *req)
-{
- return (struct tcp_request_sock *)req;
-}
-
-struct tcp_sock {
- /* inet_connection_sock has to be the first member of tcp_sock */
- struct inet_connection_sock inet_conn;
- u16 tcp_header_len; /* Bytes of tcp header to send */
- u16 xmit_size_goal_segs; /* Goal for segmenting output packets */
-
-/*
- * Header prediction flags
- * 0x5?10 << 16 + snd_wnd in net byte order
- */
- __be32 pred_flags;
-
-/*
- * RFC793 variables by their proper names. This means you can
- * read the code and the spec side by side (and laugh ...)
- * See RFC793 and RFC1122. The RFC writes these in capitals.
- */
- u32 rcv_nxt; /* What we want to receive next */
- u32 copied_seq; /* Head of yet unread data */
- u32 rcv_wup; /* rcv_nxt on last window update sent */
- u32 snd_nxt; /* Next sequence we send */
-
- u32 snd_una; /* First byte we want an ack for */
- u32 snd_sml; /* Last byte of the most recently transmitted small packet */
- u32 rcv_tstamp; /* timestamp of last received ACK (for keepalives) */
- u32 lsndtime; /* timestamp of last sent data packet (for restart window) */
-
- /* Data for direct copy to user */
- struct {
- struct sk_buff_head prequeue;
- struct task_struct *task;
- struct iovec *iov;
- int memory;
- int len;
-#ifdef CONFIG_NET_DMA
- /* members for async copy */
- struct dma_chan *dma_chan;
- int wakeup;
- struct dma_pinned_list *pinned_list;
- dma_cookie_t dma_cookie;
-#endif
- } ucopy;
-
- u32 snd_wl1; /* Sequence for window update */
- u32 snd_wnd; /* The window we expect to receive */
- u32 max_window; /* Maximal window ever seen from peer */
- u32 mss_cache; /* Cached effective mss, not including SACKS */
-
- u32 window_clamp; /* Maximal window to advertise */
- u32 rcv_ssthresh; /* Current window clamp */
-
- u32 frto_highmark; /* snd_nxt when RTO occurred */
- u16 advmss; /* Advertised MSS */
- u8 frto_counter; /* Number of new acks after RTO */
- u8 nonagle : 4,/* Disable Nagle algorithm? */
- thin_lto : 1,/* Use linear timeouts for thin streams */
- thin_dupack : 1,/* Fast retransmit on first dupack */
- unused : 2;
-
-/* RTT measurement */
- u32 srtt; /* smoothed round trip time << 3 */
- u32 mdev; /* medium deviation */
- u32 mdev_max; /* maximal mdev for the last rtt period */
- u32 rttvar; /* smoothed mdev_max */
- u32 rtt_seq; /* sequence number to update rttvar */
-
- u32 packets_out; /* Packets which are "in flight" */
- u32 retrans_out; /* Retransmitted packets out */
-
- u16 urg_data; /* Saved octet of OOB data and control flags */
- u8 ecn_flags; /* ECN status bits. */
- u8 reordering; /* Packet reordering metric. */
- u32 snd_up; /* Urgent pointer */
-
- u8 keepalive_probes; /* num of allowed keep alive probes */
-/*
- * Options received (usually on last packet, some only on SYN packets).
- */
- struct tcp_options_received rx_opt;
-
-/*
- * Slow start and congestion control (see also Nagle, and Karn & Partridge)
- */
- u32 snd_ssthresh; /* Slow start size threshold */
- u32 snd_cwnd; /* Sending congestion window */
- u32 snd_cwnd_cnt; /* Linear increase counter */
- u32 snd_cwnd_clamp; /* Do not allow snd_cwnd to grow above this */
- u32 snd_cwnd_used;
- u32 snd_cwnd_stamp;
- u32 prior_cwnd; /* Congestion window at start of Recovery. */
- u32 prr_delivered; /* Number of newly delivered packets to
- * receiver in Recovery. */
- u32 prr_out; /* Total number of pkts sent during Recovery. */
-
- u32 rcv_wnd; /* Current receiver window */
- u32 write_seq; /* Tail(+1) of data held in tcp send buffer */
- u32 pushed_seq; /* Last pushed seq, required to talk to windows */
- u32 lost_out; /* Lost packets */
- u32 sacked_out; /* SACK'd packets */
- u32 fackets_out; /* FACK'd packets */
- u32 tso_deferred;
- u32 bytes_acked; /* Appropriate Byte Counting - RFC3465 */
-
- /* from STCP, retrans queue hinting */
- struct sk_buff* lost_skb_hint;
- struct sk_buff *scoreboard_skb_hint;
- struct sk_buff *retransmit_skb_hint;
-
- struct sk_buff_head out_of_order_queue; /* Out of order segments go here */
-
- /* SACKs data, these 2 need to be together (see tcp_build_and_update_options) */
- struct tcp_sack_block duplicate_sack[1]; /* D-SACK block */
- struct tcp_sack_block selective_acks[4]; /* The SACKS themselves*/
-
- struct tcp_sack_block recv_sack_cache[4];
-
- struct sk_buff *highest_sack; /* skb just after the highest
- * skb with SACKed bit set
- * (validity guaranteed only if
- * sacked_out > 0)
- */
-
- int lost_cnt_hint;
- u32 retransmit_high; /* L-bits may be on up to this seqno */
-
- u32 lost_retrans_low; /* Sent seq after any rxmit (lowest) */
-
- u32 prior_ssthresh; /* ssthresh saved at recovery start */
- u32 high_seq; /* snd_nxt at onset of congestion */
-
- u32 retrans_stamp; /* Timestamp of the last retransmit,
- * also used in SYN-SENT to remember stamp of
- * the first SYN. */
- u32 undo_marker; /* tracking retrans started here. */
- int undo_retrans; /* number of undoable retransmissions. */
- u32 total_retrans; /* Total retransmits for entire connection */
-
- u32 urg_seq; /* Seq of received urgent pointer */
- unsigned int keepalive_time; /* time before keep alive takes place */
- unsigned int keepalive_intvl; /* time interval between keep alive probes */
-
- int linger2;
-
-/* Receiver side RTT estimation */
- struct {
- u32 rtt;
- u32 seq;
- u32 time;
- } rcv_rtt_est;
-
-/* Receiver queue space */
- struct {
- int space;
- u32 seq;
- u32 time;
- } rcvq_space;
-
-/* TCP-specific MTU probe information. */
- struct {
- u32 probe_seq_start;
- u32 probe_seq_end;
- } mtu_probe;
-
-#ifdef CONFIG_TCP_MD5SIG
-/* TCP AF-Specific parts; only used by MD5 Signature support so far */
- const struct tcp_sock_af_ops *af_specific;
-
-/* TCP MD5 Signature Option information */
- struct tcp_md5sig_info __rcu *md5sig_info;
-#endif
-
- /* When the cookie options are generated and exchanged, then this
- * object holds a reference to them (cookie_values->kref). Also
- * contains related tcp_cookie_transactions fields.
- */
- struct tcp_cookie_values *cookie_values;
-};
-
-static inline struct tcp_sock *tcp_sk(const struct sock *sk)
-{
- return (struct tcp_sock *)sk;
-}
-
-struct tcp_timewait_sock {
- struct inet_timewait_sock tw_sk;
- u32 tw_rcv_nxt;
- u32 tw_snd_nxt;
- u32 tw_rcv_wnd;
- u32 tw_ts_recent;
- long tw_ts_recent_stamp;
-#ifdef CONFIG_TCP_MD5SIG
- struct tcp_md5sig_key *tw_md5_key;
-#endif
- /* Few sockets in timewait have cookies; in that case, then this
- * object holds a reference to them (tw_cookie_values->kref).
- */
- struct tcp_cookie_values *tw_cookie_values;
-};
-
-static inline struct tcp_timewait_sock *tcp_twsk(const struct sock *sk)
-{
- return (struct tcp_timewait_sock *)sk;
-}
-
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_TCP_H */
diff --git a/ANDROID_3.4.5/include/linux/telephony.h b/ANDROID_3.4.5/include/linux/telephony.h
deleted file mode 100644
index f63afe33..00000000
--- a/ANDROID_3.4.5/include/linux/telephony.h
+++ /dev/null
@@ -1,262 +0,0 @@
-/******************************************************************************
- *
- * telephony.h
- *
- * Basic Linux Telephony Interface
- *
- * (c) Copyright 1999-2001 Quicknet Technologies, Inc.
- *
- * 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.
- *
- * Authors: Ed Okerson, <eokerson@quicknet.net>
- * Greg Herlein, <gherlein@quicknet.net>
- *
- * Contributors: Alan Cox, <alan@lxorguk.ukuu.org.uk>
- * David W. Erhart, <derhart@quicknet.net>
- *
- * IN NO EVENT SHALL QUICKNET TECHNOLOGIES, INC. BE LIABLE TO ANY PARTY FOR
- * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
- * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF QUICKNET
- * TECHNOLOGIES, INC. HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * QUICKNET TECHNOLOGIES, INC. SPECIFICALLY DISCLAIMS ANY WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
- * ON AN "AS IS" BASIS, AND QUICKNET TECHNOLOGIES, INC. HAS NO OBLIGATION
- * TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
- *
- *****************************************************************************/
-
-#ifndef TELEPHONY_H
-#define TELEPHONY_H
-
-#define TELEPHONY_VERSION 3013
-
-#define PHONE_VENDOR_IXJ 1
-#define PHONE_VENDOR_QUICKNET PHONE_VENDOR_IXJ
-#define PHONE_VENDOR_VOICETRONIX 2
-#define PHONE_VENDOR_ACULAB 3
-#define PHONE_VENDOR_DIGI 4
-#define PHONE_VENDOR_FRANKLIN 5
-
-/******************************************************************************
- * Vendor Summary Information Area
- *
- * Quicknet Technologies, Inc. - makes low density analog telephony cards
- * with audio compression, POTS and PSTN interfaces (www.quicknet.net)
- *
- * (other vendors following this API shuld add a short description of
- * the telephony products they support under Linux)
- *
- *****************************************************************************/
-#define QTI_PHONEJACK 100
-#define QTI_LINEJACK 300
-#define QTI_PHONEJACK_LITE 400
-#define QTI_PHONEJACK_PCI 500
-#define QTI_PHONECARD 600
-
-/******************************************************************************
-*
-* The capabilities ioctls can inform you of the capabilities of each phone
-* device installed in your system. The PHONECTL_CAPABILITIES ioctl
-* returns an integer value indicating the number of capabilities the
-* device has. The PHONECTL_CAPABILITIES_LIST will fill an array of
-* capability structs with all of its capabilities. The
-* PHONECTL_CAPABILITIES_CHECK takes a single capability struct and returns
-* a TRUE if the device has that capability, otherwise it returns false.
-*
-******************************************************************************/
-typedef enum {
- vendor = 0,
- device,
- port,
- codec,
- dsp
-} phone_cap;
-
-struct phone_capability {
- char desc[80];
- phone_cap captype;
- int cap;
- int handle;
-};
-
-typedef enum {
- pots = 0,
- pstn,
- handset,
- speaker
-} phone_ports;
-
-#define PHONE_CAPABILITIES _IO ('q', 0x80)
-#define PHONE_CAPABILITIES_LIST _IOR ('q', 0x81, struct phone_capability *)
-#define PHONE_CAPABILITIES_CHECK _IOW ('q', 0x82, struct phone_capability *)
-
-typedef struct {
- char month[3];
- char day[3];
- char hour[3];
- char min[3];
- int numlen;
- char number[11];
- int namelen;
- char name[80];
-} PHONE_CID;
-
-#define PHONE_RING _IO ('q', 0x83)
-#define PHONE_HOOKSTATE _IO ('q', 0x84)
-#define PHONE_MAXRINGS _IOW ('q', 0x85, char)
-#define PHONE_RING_CADENCE _IOW ('q', 0x86, short)
-#define OLD_PHONE_RING_START _IO ('q', 0x87)
-#define PHONE_RING_START _IOW ('q', 0x87, PHONE_CID *)
-#define PHONE_RING_STOP _IO ('q', 0x88)
-
-#define USA_RING_CADENCE 0xC0C0
-
-#define PHONE_REC_CODEC _IOW ('q', 0x89, int)
-#define PHONE_REC_START _IO ('q', 0x8A)
-#define PHONE_REC_STOP _IO ('q', 0x8B)
-#define PHONE_REC_DEPTH _IOW ('q', 0x8C, int)
-#define PHONE_FRAME _IOW ('q', 0x8D, int)
-#define PHONE_REC_VOLUME _IOW ('q', 0x8E, int)
-#define PHONE_REC_VOLUME_LINEAR _IOW ('q', 0xDB, int)
-#define PHONE_REC_LEVEL _IO ('q', 0x8F)
-
-#define PHONE_PLAY_CODEC _IOW ('q', 0x90, int)
-#define PHONE_PLAY_START _IO ('q', 0x91)
-#define PHONE_PLAY_STOP _IO ('q', 0x92)
-#define PHONE_PLAY_DEPTH _IOW ('q', 0x93, int)
-#define PHONE_PLAY_VOLUME _IOW ('q', 0x94, int)
-#define PHONE_PLAY_VOLUME_LINEAR _IOW ('q', 0xDC, int)
-#define PHONE_PLAY_LEVEL _IO ('q', 0x95)
-#define PHONE_DTMF_READY _IOR ('q', 0x96, int)
-#define PHONE_GET_DTMF _IOR ('q', 0x97, int)
-#define PHONE_GET_DTMF_ASCII _IOR ('q', 0x98, int)
-#define PHONE_DTMF_OOB _IOW ('q', 0x99, int)
-#define PHONE_EXCEPTION _IOR ('q', 0x9A, int)
-#define PHONE_PLAY_TONE _IOW ('q', 0x9B, char)
-#define PHONE_SET_TONE_ON_TIME _IOW ('q', 0x9C, int)
-#define PHONE_SET_TONE_OFF_TIME _IOW ('q', 0x9D, int)
-#define PHONE_GET_TONE_ON_TIME _IO ('q', 0x9E)
-#define PHONE_GET_TONE_OFF_TIME _IO ('q', 0x9F)
-#define PHONE_GET_TONE_STATE _IO ('q', 0xA0)
-#define PHONE_BUSY _IO ('q', 0xA1)
-#define PHONE_RINGBACK _IO ('q', 0xA2)
-#define PHONE_DIALTONE _IO ('q', 0xA3)
-#define PHONE_CPT_STOP _IO ('q', 0xA4)
-
-#define PHONE_PSTN_SET_STATE _IOW ('q', 0xA4, int)
-#define PHONE_PSTN_GET_STATE _IO ('q', 0xA5)
-
-#define PSTN_ON_HOOK 0
-#define PSTN_RINGING 1
-#define PSTN_OFF_HOOK 2
-#define PSTN_PULSE_DIAL 3
-
-/******************************************************************************
-*
-* The wink duration is tunable with this ioctl. The default wink duration
-* is 320ms. You do not need to use this ioctl if you do not require a
-* different wink duration.
-*
-******************************************************************************/
-#define PHONE_WINK_DURATION _IOW ('q', 0xA6, int)
-#define PHONE_WINK _IOW ('q', 0xAA, int)
-
-/******************************************************************************
-*
-* Codec Definitions
-*
-******************************************************************************/
-typedef enum {
- G723_63 = 1,
- G723_53 = 2,
- TS85 = 3,
- TS48 = 4,
- TS41 = 5,
- G728 = 6,
- G729 = 7,
- ULAW = 8,
- ALAW = 9,
- LINEAR16 = 10,
- LINEAR8 = 11,
- WSS = 12,
- G729B = 13
-} phone_codec;
-
-struct phone_codec_data
-{
- phone_codec type;
- unsigned short buf_min, buf_opt, buf_max;
-};
-
-#define PHONE_QUERY_CODEC _IOWR ('q', 0xA7, struct phone_codec_data *)
-#define PHONE_PSTN_LINETEST _IO ('q', 0xA8)
-
-/******************************************************************************
-*
-* This controls the VAD/CNG functionality of G.723.1. The driver will
-* always pass full size frames, any unused bytes will be padded with zeros,
-* and frames passed to the driver should also be padded with zeros. The
-* frame type is encoded in the least significant two bits of the first
-* WORD of the frame as follows:
-*
-* bits 1-0 Frame Type Data Rate Significant Words
-* 00 0 G.723.1 6.3 12
-* 01 1 G.723.1 5.3 10
-* 10 2 VAD/CNG 2
-* 11 3 Repeat last CNG 2 bits
-*
-******************************************************************************/
-#define PHONE_VAD _IOW ('q', 0xA9, int)
-
-
-/******************************************************************************
-*
-* The exception structure allows us to multiplex multiple events onto the
-* select() exception set. If any of these flags are set select() will
-* return with a positive indication on the exception set. The dtmf_ready
-* bit indicates if there is data waiting in the DTMF buffer. The
-* hookstate bit is set if there is a change in hookstate status, it does not
-* indicate the current state of the hookswitch. The pstn_ring bit
-* indicates that the DAA on a LineJACK card has detected ring voltage on
-* the PSTN port. The caller_id bit indicates that caller_id data has been
-* received and is available. The pstn_wink bit indicates that the DAA on
-* the LineJACK has received a wink from the telco switch. The f0, f1, f2
-* and f3 bits indicate that the filter has been triggered by detecting the
-* frequency programmed into that filter.
-*
-* The remaining bits should be set to zero. They will become defined over time
-* for other interface cards and their needs.
-*
-******************************************************************************/
-struct phone_except
-{
- unsigned int dtmf_ready:1;
- unsigned int hookstate:1;
- unsigned int pstn_ring:1;
- unsigned int caller_id:1;
- unsigned int pstn_wink:1;
- unsigned int f0:1;
- unsigned int f1:1;
- unsigned int f2:1;
- unsigned int f3:1;
- unsigned int flash:1;
- unsigned int fc0:1;
- unsigned int fc1:1;
- unsigned int fc2:1;
- unsigned int fc3:1;
- unsigned int reserved:18;
-};
-
-union telephony_exception {
- struct phone_except bits;
- unsigned int bytes;
-};
-
-
-#endif /* TELEPHONY_H */
-
diff --git a/ANDROID_3.4.5/include/linux/termios.h b/ANDROID_3.4.5/include/linux/termios.h
deleted file mode 100644
index 2acd0c1f..00000000
--- a/ANDROID_3.4.5/include/linux/termios.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef _LINUX_TERMIOS_H
-#define _LINUX_TERMIOS_H
-
-#include <linux/types.h>
-#include <asm/termios.h>
-
-#define NFF 5
-
-struct termiox
-{
- __u16 x_hflag;
- __u16 x_cflag;
- __u16 x_rflag[NFF];
- __u16 x_sflag;
-};
-
-#define RTSXOFF 0x0001 /* RTS flow control on input */
-#define CTSXON 0x0002 /* CTS flow control on output */
-#define DTRXOFF 0x0004 /* DTR flow control on input */
-#define DSRXON 0x0008 /* DCD flow control on output */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/textsearch.h b/ANDROID_3.4.5/include/linux/textsearch.h
deleted file mode 100644
index cfaee869..00000000
--- a/ANDROID_3.4.5/include/linux/textsearch.h
+++ /dev/null
@@ -1,178 +0,0 @@
-#ifndef __LINUX_TEXTSEARCH_H
-#define __LINUX_TEXTSEARCH_H
-
-#include <linux/types.h>
-#include <linux/list.h>
-#include <linux/kernel.h>
-#include <linux/err.h>
-#include <linux/slab.h>
-
-struct module;
-
-struct ts_config;
-
-#define TS_AUTOLOAD 1 /* Automatically load textsearch modules when needed */
-#define TS_IGNORECASE 2 /* Searches string case insensitively */
-
-/**
- * struct ts_state - search state
- * @offset: offset for next match
- * @cb: control buffer, for persistent variables of get_next_block()
- */
-struct ts_state
-{
- unsigned int offset;
- char cb[40];
-};
-
-/**
- * struct ts_ops - search module operations
- * @name: name of search algorithm
- * @init: initialization function to prepare a search
- * @find: find the next occurrence of the pattern
- * @destroy: destroy algorithm specific parts of a search configuration
- * @get_pattern: return head of pattern
- * @get_pattern_len: return length of pattern
- * @owner: module reference to algorithm
- */
-struct ts_ops
-{
- const char *name;
- struct ts_config * (*init)(const void *, unsigned int, gfp_t, int);
- unsigned int (*find)(struct ts_config *,
- struct ts_state *);
- void (*destroy)(struct ts_config *);
- void * (*get_pattern)(struct ts_config *);
- unsigned int (*get_pattern_len)(struct ts_config *);
- struct module *owner;
- struct list_head list;
-};
-
-/**
- * struct ts_config - search configuration
- * @ops: operations of chosen algorithm
- * @flags: flags
- * @get_next_block: callback to fetch the next block to search in
- * @finish: callback to finalize a search
- */
-struct ts_config
-{
- struct ts_ops *ops;
- int flags;
-
- /**
- * get_next_block - fetch next block of data
- * @consumed: number of bytes consumed by the caller
- * @dst: destination buffer
- * @conf: search configuration
- * @state: search state
- *
- * Called repeatedly until 0 is returned. Must assign the
- * head of the next block of data to &*dst and return the length
- * of the block or 0 if at the end. consumed == 0 indicates
- * a new search. May store/read persistent values in state->cb.
- */
- unsigned int (*get_next_block)(unsigned int consumed,
- const u8 **dst,
- struct ts_config *conf,
- struct ts_state *state);
-
- /**
- * finish - finalize/clean a series of get_next_block() calls
- * @conf: search configuration
- * @state: search state
- *
- * Called after the last use of get_next_block(), may be used
- * to cleanup any leftovers.
- */
- void (*finish)(struct ts_config *conf,
- struct ts_state *state);
-};
-
-/**
- * textsearch_next - continue searching for a pattern
- * @conf: search configuration
- * @state: search state
- *
- * Continues a search looking for more occurrences of the pattern.
- * textsearch_find() must be called to find the first occurrence
- * in order to reset the state.
- *
- * Returns the position of the next occurrence of the pattern or
- * UINT_MAX if not match was found.
- */
-static inline unsigned int textsearch_next(struct ts_config *conf,
- struct ts_state *state)
-{
- unsigned int ret = conf->ops->find(conf, state);
-
- if (conf->finish)
- conf->finish(conf, state);
-
- return ret;
-}
-
-/**
- * textsearch_find - start searching for a pattern
- * @conf: search configuration
- * @state: search state
- *
- * Returns the position of first occurrence of the pattern or
- * UINT_MAX if no match was found.
- */
-static inline unsigned int textsearch_find(struct ts_config *conf,
- struct ts_state *state)
-{
- state->offset = 0;
- return textsearch_next(conf, state);
-}
-
-/**
- * textsearch_get_pattern - return head of the pattern
- * @conf: search configuration
- */
-static inline void *textsearch_get_pattern(struct ts_config *conf)
-{
- return conf->ops->get_pattern(conf);
-}
-
-/**
- * textsearch_get_pattern_len - return length of the pattern
- * @conf: search configuration
- */
-static inline unsigned int textsearch_get_pattern_len(struct ts_config *conf)
-{
- return conf->ops->get_pattern_len(conf);
-}
-
-extern int textsearch_register(struct ts_ops *);
-extern int textsearch_unregister(struct ts_ops *);
-extern struct ts_config *textsearch_prepare(const char *, const void *,
- unsigned int, gfp_t, int);
-extern void textsearch_destroy(struct ts_config *conf);
-extern unsigned int textsearch_find_continuous(struct ts_config *,
- struct ts_state *,
- const void *, unsigned int);
-
-
-#define TS_PRIV_ALIGNTO 8
-#define TS_PRIV_ALIGN(len) (((len) + TS_PRIV_ALIGNTO-1) & ~(TS_PRIV_ALIGNTO-1))
-
-static inline struct ts_config *alloc_ts_config(size_t payload,
- gfp_t gfp_mask)
-{
- struct ts_config *conf;
-
- conf = kzalloc(TS_PRIV_ALIGN(sizeof(*conf)) + payload, gfp_mask);
- if (conf == NULL)
- return ERR_PTR(-ENOMEM);
-
- return conf;
-}
-
-static inline void *ts_config_priv(struct ts_config *conf)
-{
- return ((u8 *) conf + TS_PRIV_ALIGN(sizeof(struct ts_config)));
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/textsearch_fsm.h b/ANDROID_3.4.5/include/linux/textsearch_fsm.h
deleted file mode 100644
index fdfa078c..00000000
--- a/ANDROID_3.4.5/include/linux/textsearch_fsm.h
+++ /dev/null
@@ -1,48 +0,0 @@
-#ifndef __LINUX_TEXTSEARCH_FSM_H
-#define __LINUX_TEXTSEARCH_FSM_H
-
-#include <linux/types.h>
-
-enum {
- TS_FSM_SPECIFIC, /* specific character */
- TS_FSM_WILDCARD, /* any character */
- TS_FSM_DIGIT, /* isdigit() */
- TS_FSM_XDIGIT, /* isxdigit() */
- TS_FSM_PRINT, /* isprint() */
- TS_FSM_ALPHA, /* isalpha() */
- TS_FSM_ALNUM, /* isalnum() */
- TS_FSM_ASCII, /* isascii() */
- TS_FSM_CNTRL, /* iscntrl() */
- TS_FSM_GRAPH, /* isgraph() */
- TS_FSM_LOWER, /* islower() */
- TS_FSM_UPPER, /* isupper() */
- TS_FSM_PUNCT, /* ispunct() */
- TS_FSM_SPACE, /* isspace() */
- __TS_FSM_TYPE_MAX,
-};
-#define TS_FSM_TYPE_MAX (__TS_FSM_TYPE_MAX - 1)
-
-enum {
- TS_FSM_SINGLE, /* 1 occurrence */
- TS_FSM_PERHAPS, /* 1 or 0 occurrence */
- TS_FSM_ANY, /* 0..n occurrences */
- TS_FSM_MULTI, /* 1..n occurrences */
- TS_FSM_HEAD_IGNORE, /* 0..n ignored occurrences at head */
- __TS_FSM_RECUR_MAX,
-};
-#define TS_FSM_RECUR_MAX (__TS_FSM_RECUR_MAX - 1)
-
-/**
- * struct ts_fsm_token - state machine token (state)
- * @type: type of token
- * @recur: number of recurrences
- * @value: character value for TS_FSM_SPECIFIC
- */
-struct ts_fsm_token
-{
- __u16 type;
- __u8 recur;
- __u8 value;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/tfrc.h b/ANDROID_3.4.5/include/linux/tfrc.h
deleted file mode 100644
index 8a8462b4..00000000
--- a/ANDROID_3.4.5/include/linux/tfrc.h
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef _LINUX_TFRC_H_
-#define _LINUX_TFRC_H_
-/*
- * TFRC - Data Structures for the TCP-Friendly Rate Control congestion
- * control mechanism as specified in RFC 3448.
- *
- * Copyright (c) 2005 The University of Waikato, Hamilton, New Zealand.
- * Copyright (c) 2005 Ian McDonald <iam4@cs.waikato.ac.nz>
- * Copyright (c) 2005 Arnaldo Carvalho de Melo <acme@conectiva.com.br>
- * Copyright (c) 2003 Nils-Erik Mattsson, Joacim Haggmark, Magnus Erixzon
- *
- * 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>
-
-/** tfrc_rx_info - TFRC Receiver Data Structure
- *
- * @tfrcrx_x_recv: receiver estimate of sending rate (3.2.2)
- * @tfrcrx_rtt: round-trip-time (communicated by sender)
- * @tfrcrx_p: current estimate of loss event rate (3.2.2)
- */
-struct tfrc_rx_info {
- __u32 tfrcrx_x_recv;
- __u32 tfrcrx_rtt;
- __u32 tfrcrx_p;
-};
-
-/** tfrc_tx_info - TFRC Sender Data Structure
- *
- * @tfrctx_x: computed transmit rate (4.3 (4))
- * @tfrctx_x_recv: receiver estimate of send rate (4.3)
- * @tfrctx_x_calc: return value of throughput equation (3.1)
- * @tfrctx_rtt: (moving average) estimate of RTT (4.3)
- * @tfrctx_p: current loss event rate (5.4)
- * @tfrctx_rto: estimate of RTO, equals 4*RTT (4.3)
- * @tfrctx_ipi: inter-packet interval (4.6)
- *
- * Note: X and X_recv are both maintained in units of 64 * bytes/second. This
- * enables a finer resolution of sending rates and avoids problems with
- * integer arithmetic; u32 is not sufficient as scaling consumes 6 bits.
- */
-struct tfrc_tx_info {
- __u64 tfrctx_x;
- __u64 tfrctx_x_recv;
- __u32 tfrctx_x_calc;
- __u32 tfrctx_rtt;
- __u32 tfrctx_p;
- __u32 tfrctx_rto;
- __u32 tfrctx_ipi;
-};
-
-#endif /* _LINUX_TFRC_H_ */
diff --git a/ANDROID_3.4.5/include/linux/thermal.h b/ANDROID_3.4.5/include/linux/thermal.h
deleted file mode 100644
index 796f1ff0..00000000
--- a/ANDROID_3.4.5/include/linux/thermal.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * thermal.h ($Revision: 0 $)
- *
- * Copyright (C) 2008 Intel Corp
- * Copyright (C) 2008 Zhang Rui <rui.zhang@intel.com>
- * Copyright (C) 2008 Sujith Thomas <sujith.thomas@intel.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; version 2 of the License.
- *
- * 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.
- *
- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- */
-
-#ifndef __THERMAL_H__
-#define __THERMAL_H__
-
-#include <linux/idr.h>
-#include <linux/device.h>
-#include <linux/workqueue.h>
-
-struct thermal_zone_device;
-struct thermal_cooling_device;
-
-enum thermal_device_mode {
- THERMAL_DEVICE_DISABLED = 0,
- THERMAL_DEVICE_ENABLED,
-};
-
-enum thermal_trip_type {
- THERMAL_TRIP_ACTIVE = 0,
- THERMAL_TRIP_PASSIVE,
- THERMAL_TRIP_HOT,
- THERMAL_TRIP_CRITICAL,
-};
-
-struct thermal_zone_device_ops {
- int (*bind) (struct thermal_zone_device *,
- struct thermal_cooling_device *);
- int (*unbind) (struct thermal_zone_device *,
- struct thermal_cooling_device *);
- int (*get_temp) (struct thermal_zone_device *, unsigned long *);
- int (*get_mode) (struct thermal_zone_device *,
- enum thermal_device_mode *);
- int (*set_mode) (struct thermal_zone_device *,
- enum thermal_device_mode);
- int (*get_trip_type) (struct thermal_zone_device *, int,
- enum thermal_trip_type *);
- int (*get_trip_temp) (struct thermal_zone_device *, int,
- unsigned long *);
- int (*get_crit_temp) (struct thermal_zone_device *, unsigned long *);
- int (*notify) (struct thermal_zone_device *, int,
- enum thermal_trip_type);
-};
-
-struct thermal_cooling_device_ops {
- int (*get_max_state) (struct thermal_cooling_device *, unsigned long *);
- int (*get_cur_state) (struct thermal_cooling_device *, unsigned long *);
- int (*set_cur_state) (struct thermal_cooling_device *, unsigned long);
-};
-
-#define THERMAL_TRIPS_NONE -1
-#define THERMAL_MAX_TRIPS 12
-#define THERMAL_NAME_LENGTH 20
-struct thermal_cooling_device {
- int id;
- char type[THERMAL_NAME_LENGTH];
- struct device device;
- void *devdata;
- const struct thermal_cooling_device_ops *ops;
- struct list_head node;
-};
-
-#define KELVIN_TO_CELSIUS(t) (long)(((long)t-2732 >= 0) ? \
- ((long)t-2732+5)/10 : ((long)t-2732-5)/10)
-#define CELSIUS_TO_KELVIN(t) ((t)*10+2732)
-
-struct thermal_zone_device {
- int id;
- char type[THERMAL_NAME_LENGTH];
- struct device device;
- void *devdata;
- int trips;
- int tc1;
- int tc2;
- int passive_delay;
- int polling_delay;
- int last_temperature;
- bool passive;
- unsigned int forced_passive;
- const struct thermal_zone_device_ops *ops;
- struct list_head cooling_devices;
- struct idr idr;
- struct mutex lock; /* protect cooling devices list */
- struct list_head node;
- struct delayed_work poll_queue;
-};
-/* Adding event notification support elements */
-#define THERMAL_GENL_FAMILY_NAME "thermal_event"
-#define THERMAL_GENL_VERSION 0x01
-#define THERMAL_GENL_MCAST_GROUP_NAME "thermal_mc_group"
-
-enum events {
- THERMAL_AUX0,
- THERMAL_AUX1,
- THERMAL_CRITICAL,
- THERMAL_DEV_FAULT,
-};
-
-struct thermal_genl_event {
- u32 orig;
- enum events event;
-};
-/* attributes of thermal_genl_family */
-enum {
- THERMAL_GENL_ATTR_UNSPEC,
- THERMAL_GENL_ATTR_EVENT,
- __THERMAL_GENL_ATTR_MAX,
-};
-#define THERMAL_GENL_ATTR_MAX (__THERMAL_GENL_ATTR_MAX - 1)
-
-/* commands supported by the thermal_genl_family */
-enum {
- THERMAL_GENL_CMD_UNSPEC,
- THERMAL_GENL_CMD_EVENT,
- __THERMAL_GENL_CMD_MAX,
-};
-#define THERMAL_GENL_CMD_MAX (__THERMAL_GENL_CMD_MAX - 1)
-
-struct thermal_zone_device *thermal_zone_device_register(char *, int, void *,
- const struct thermal_zone_device_ops *, int tc1, int tc2,
- int passive_freq, int polling_freq);
-void thermal_zone_device_unregister(struct thermal_zone_device *);
-
-int thermal_zone_bind_cooling_device(struct thermal_zone_device *, int,
- struct thermal_cooling_device *);
-int thermal_zone_unbind_cooling_device(struct thermal_zone_device *, int,
- struct thermal_cooling_device *);
-void thermal_zone_device_update(struct thermal_zone_device *);
-struct thermal_cooling_device *thermal_cooling_device_register(char *, void *,
- const struct thermal_cooling_device_ops *);
-void thermal_cooling_device_unregister(struct thermal_cooling_device *);
-
-#ifdef CONFIG_NET
-extern int thermal_generate_netlink_event(u32 orig, enum events event);
-#else
-static inline int thermal_generate_netlink_event(u32 orig, enum events event)
-{
- return 0;
-}
-#endif
-
-#endif /* __THERMAL_H__ */
diff --git a/ANDROID_3.4.5/include/linux/thread_info.h b/ANDROID_3.4.5/include/linux/thread_info.h
deleted file mode 100644
index 8d03f079..00000000
--- a/ANDROID_3.4.5/include/linux/thread_info.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/* thread_info.h: common low-level thread information accessors
- *
- * Copyright (C) 2002 David Howells (dhowells@redhat.com)
- * - Incorporating suggestions made by Linus Torvalds
- */
-
-#ifndef _LINUX_THREAD_INFO_H
-#define _LINUX_THREAD_INFO_H
-
-#include <linux/types.h>
-
-struct timespec;
-struct compat_timespec;
-
-/*
- * System call restart block.
- */
-struct restart_block {
- long (*fn)(struct restart_block *);
- union {
- /* For futex_wait and futex_wait_requeue_pi */
- struct {
- u32 __user *uaddr;
- u32 val;
- u32 flags;
- u32 bitset;
- u64 time;
- u32 __user *uaddr2;
- } futex;
- /* For nanosleep */
- struct {
- clockid_t clockid;
- struct timespec __user *rmtp;
-#ifdef CONFIG_COMPAT
- struct compat_timespec __user *compat_rmtp;
-#endif
- u64 expires;
- } nanosleep;
- /* For poll */
- struct {
- struct pollfd __user *ufds;
- int nfds;
- int has_timeout;
- unsigned long tv_sec;
- unsigned long tv_nsec;
- } poll;
- };
-};
-
-extern long do_no_restart_syscall(struct restart_block *parm);
-
-#include <linux/bitops.h>
-#include <asm/thread_info.h>
-
-#ifdef __KERNEL__
-
-/*
- * flag set/clear/test wrappers
- * - pass TIF_xxxx constants to these functions
- */
-
-static inline void set_ti_thread_flag(struct thread_info *ti, int flag)
-{
- set_bit(flag, (unsigned long *)&ti->flags);
-}
-
-static inline void clear_ti_thread_flag(struct thread_info *ti, int flag)
-{
- clear_bit(flag, (unsigned long *)&ti->flags);
-}
-
-static inline int test_and_set_ti_thread_flag(struct thread_info *ti, int flag)
-{
- return test_and_set_bit(flag, (unsigned long *)&ti->flags);
-}
-
-static inline int test_and_clear_ti_thread_flag(struct thread_info *ti, int flag)
-{
- return test_and_clear_bit(flag, (unsigned long *)&ti->flags);
-}
-
-static inline int test_ti_thread_flag(struct thread_info *ti, int flag)
-{
- return test_bit(flag, (unsigned long *)&ti->flags);
-}
-
-#define set_thread_flag(flag) \
- set_ti_thread_flag(current_thread_info(), flag)
-#define clear_thread_flag(flag) \
- clear_ti_thread_flag(current_thread_info(), flag)
-#define test_and_set_thread_flag(flag) \
- test_and_set_ti_thread_flag(current_thread_info(), flag)
-#define test_and_clear_thread_flag(flag) \
- test_and_clear_ti_thread_flag(current_thread_info(), flag)
-#define test_thread_flag(flag) \
- test_ti_thread_flag(current_thread_info(), flag)
-
-#define set_need_resched() set_thread_flag(TIF_NEED_RESCHED)
-#define clear_need_resched() clear_thread_flag(TIF_NEED_RESCHED)
-
-#if defined TIF_RESTORE_SIGMASK && !defined HAVE_SET_RESTORE_SIGMASK
-/*
- * An arch can define its own version of set_restore_sigmask() to get the
- * job done however works, with or without TIF_RESTORE_SIGMASK.
- */
-#define HAVE_SET_RESTORE_SIGMASK 1
-
-/**
- * set_restore_sigmask() - make sure saved_sigmask processing gets done
- *
- * This sets TIF_RESTORE_SIGMASK and ensures that the arch signal code
- * will run before returning to user mode, to process the flag. For
- * all callers, TIF_SIGPENDING is already set or it's no harm to set
- * it. TIF_RESTORE_SIGMASK need not be in the set of bits that the
- * arch code will notice on return to user mode, in case those bits
- * are scarce. We set TIF_SIGPENDING here to ensure that the arch
- * signal code always gets run when TIF_RESTORE_SIGMASK is set.
- */
-static inline void set_restore_sigmask(void)
-{
- set_thread_flag(TIF_RESTORE_SIGMASK);
- set_thread_flag(TIF_SIGPENDING);
-}
-#endif /* TIF_RESTORE_SIGMASK && !HAVE_SET_RESTORE_SIGMASK */
-
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_THREAD_INFO_H */
diff --git a/ANDROID_3.4.5/include/linux/threads.h b/ANDROID_3.4.5/include/linux/threads.h
deleted file mode 100644
index 383ab959..00000000
--- a/ANDROID_3.4.5/include/linux/threads.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef _LINUX_THREADS_H
-#define _LINUX_THREADS_H
-
-
-/*
- * The default limit for the nr of threads is now in
- * /proc/sys/kernel/threads-max.
- */
-
-/*
- * Maximum supported processors. Setting this smaller saves quite a
- * bit of memory. Use nr_cpu_ids instead of this except for static bitmaps.
- */
-#ifndef CONFIG_NR_CPUS
-/* FIXME: This should be fixed in the arch's Kconfig */
-#define CONFIG_NR_CPUS 1
-#endif
-
-/* Places which use this should consider cpumask_var_t. */
-#define NR_CPUS CONFIG_NR_CPUS
-
-#define MIN_THREADS_LEFT_FOR_ROOT 4
-
-/*
- * This controls the default maximum pid allocated to a process
- */
-#define PID_MAX_DEFAULT (CONFIG_BASE_SMALL ? 0x1000 : 0x8000)
-
-/*
- * A maximum of 4 million PIDs should be enough for a while.
- * [NOTE: PID/TIDs are limited to 2^29 ~= 500+ million, see futex.h.]
- */
-#define PID_MAX_LIMIT (CONFIG_BASE_SMALL ? PAGE_SIZE * 8 : \
- (sizeof(long) > 4 ? 4 * 1024 * 1024 : PID_MAX_DEFAULT))
-
-/*
- * Define a minimum number of pids per cpu. Heuristically based
- * on original pid max of 32k for 32 cpus. Also, increase the
- * minimum settable value for pid_max on the running system based
- * on similar defaults. See kernel/pid.c:pidmap_init() for details.
- */
-#define PIDS_PER_CPU_DEFAULT 1024
-#define PIDS_PER_CPU_MIN 8
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/ti_wilink_st.h b/ANDROID_3.4.5/include/linux/ti_wilink_st.h
deleted file mode 100644
index 2ef4385d..00000000
--- a/ANDROID_3.4.5/include/linux/ti_wilink_st.h
+++ /dev/null
@@ -1,448 +0,0 @@
-/*
- * Shared Transport Header file
- * To be included by the protocol stack drivers for
- * Texas Instruments BT,FM and GPS combo chip drivers
- * and also serves the sub-modules of the shared transport driver.
- *
- * Copyright (C) 2009-2010 Texas Instruments
- * Author: Pavan Savoy <pavan_savoy@ti.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.
- *
- * 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
- *
- */
-
-#ifndef TI_WILINK_ST_H
-#define TI_WILINK_ST_H
-
-/**
- * enum proto-type - The protocol on WiLink chips which share a
- * common physical interface like UART.
- */
-enum proto_type {
- ST_BT,
- ST_FM,
- ST_GPS,
- ST_MAX_CHANNELS = 16,
-};
-
-/**
- * struct st_proto_s - Per Protocol structure from BT/FM/GPS to ST
- * @type: type of the protocol being registered among the
- * available proto_type(BT, FM, GPS the protocol which share TTY).
- * @recv: the receiver callback pointing to a function in the
- * protocol drivers called by the ST driver upon receiving
- * relevant data.
- * @match_packet: reserved for future use, to make ST more generic
- * @reg_complete_cb: callback handler pointing to a function in protocol
- * handler called by ST when the pending registrations are complete.
- * The registrations are marked pending, in situations when fw
- * download is in progress.
- * @write: pointer to function in ST provided to protocol drivers from ST,
- * to be made use when protocol drivers have data to send to TTY.
- * @priv_data: privdate data holder for the protocol drivers, sent
- * from the protocol drivers during registration, and sent back on
- * reg_complete_cb and recv.
- * @chnl_id: channel id the protocol driver is interested in, the channel
- * id is nothing but the 1st byte of the packet in UART frame.
- * @max_frame_size: size of the largest frame the protocol can receive.
- * @hdr_len: length of the header structure of the protocol.
- * @offset_len_in_hdr: this provides the offset of the length field in the
- * header structure of the protocol header, to assist ST to know
- * how much to receive, if the data is split across UART frames.
- * @len_size: whether the length field inside the header is 2 bytes
- * or 1 byte.
- * @reserve: the number of bytes ST needs to reserve in the skb being
- * prepared for the protocol driver.
- */
-struct st_proto_s {
- enum proto_type type;
- long (*recv) (void *, struct sk_buff *);
- unsigned char (*match_packet) (const unsigned char *data);
- void (*reg_complete_cb) (void *, char data);
- long (*write) (struct sk_buff *skb);
- void *priv_data;
-
- unsigned char chnl_id;
- unsigned short max_frame_size;
- unsigned char hdr_len;
- unsigned char offset_len_in_hdr;
- unsigned char len_size;
- unsigned char reserve;
-};
-
-extern long st_register(struct st_proto_s *);
-extern long st_unregister(struct st_proto_s *);
-
-
-/*
- * header information used by st_core.c
- */
-
-/* states of protocol list */
-#define ST_NOTEMPTY 1
-#define ST_EMPTY 0
-
-/*
- * possible st_states
- */
-#define ST_INITIALIZING 1
-#define ST_REG_IN_PROGRESS 2
-#define ST_REG_PENDING 3
-#define ST_WAITING_FOR_RESP 4
-
-/**
- * struct st_data_s - ST core internal structure
- * @st_state: different states of ST like initializing, registration
- * in progress, this is mainly used to return relevant err codes
- * when protocol drivers are registering. It is also used to track
- * the recv function, as in during fw download only HCI events
- * can occur , where as during other times other events CH8, CH9
- * can occur.
- * @tty: tty provided by the TTY core for line disciplines.
- * @tx_skb: If for some reason the tty's write returns lesser bytes written
- * then to maintain the rest of data to be written on next instance.
- * This needs to be protected, hence the lock inside wakeup func.
- * @tx_state: if the data is being written onto the TTY and protocol driver
- * wants to send more, queue up data and mark that there is
- * more data to send.
- * @list: the list of protocols registered, only MAX can exist, one protocol
- * can register only once.
- * @rx_state: states to be maintained inside st's tty receive
- * @rx_count: count to be maintained inside st's tty receieve
- * @rx_skb: the skb where all data for a protocol gets accumulated,
- * since tty might not call receive when a complete event packet
- * is received, the states, count and the skb needs to be maintained.
- * @rx_chnl: the channel ID for which the data is getting accumalated for.
- * @txq: the list of skbs which needs to be sent onto the TTY.
- * @tx_waitq: if the chip is not in AWAKE state, the skbs needs to be queued
- * up in here, PM(WAKEUP_IND) data needs to be sent and then the skbs
- * from waitq can be moved onto the txq.
- * Needs locking too.
- * @lock: the lock to protect skbs, queues, and ST states.
- * @protos_registered: count of the protocols registered, also when 0 the
- * chip enable gpio can be toggled, and when it changes to 1 the fw
- * needs to be downloaded to initialize chip side ST.
- * @ll_state: the various PM states the chip can be, the states are notified
- * to us, when the chip sends relevant PM packets(SLEEP_IND, WAKE_IND).
- * @kim_data: reference to the parent encapsulating structure.
- *
- */
-struct st_data_s {
- unsigned long st_state;
- struct sk_buff *tx_skb;
-#define ST_TX_SENDING 1
-#define ST_TX_WAKEUP 2
- unsigned long tx_state;
- struct st_proto_s *list[ST_MAX_CHANNELS];
- bool is_registered[ST_MAX_CHANNELS];
- unsigned long rx_state;
- unsigned long rx_count;
- struct sk_buff *rx_skb;
- unsigned char rx_chnl;
- struct sk_buff_head txq, tx_waitq;
- spinlock_t lock;
- unsigned char protos_registered;
- unsigned long ll_state;
- void *kim_data;
- struct tty_struct *tty;
-};
-
-/*
- * wrapper around tty->ops->write_room to check
- * availability during firmware download
- */
-int st_get_uart_wr_room(struct st_data_s *st_gdata);
-/**
- * st_int_write -
- * point this to tty->driver->write or tty->ops->write
- * depending upon the kernel version
- */
-int st_int_write(struct st_data_s*, const unsigned char*, int);
-
-/**
- * st_write -
- * internal write function, passed onto protocol drivers
- * via the write function ptr of protocol struct
- */
-long st_write(struct sk_buff *);
-
-/* function to be called from ST-LL */
-void st_ll_send_frame(enum proto_type, struct sk_buff *);
-
-/* internal wake up function */
-void st_tx_wakeup(struct st_data_s *st_data);
-
-/* init, exit entry funcs called from KIM */
-int st_core_init(struct st_data_s **);
-void st_core_exit(struct st_data_s *);
-
-/* ask for reference from KIM */
-void st_kim_ref(struct st_data_s **, int);
-
-#define GPS_STUB_TEST
-#ifdef GPS_STUB_TEST
-int gps_chrdrv_stub_write(const unsigned char*, int);
-void gps_chrdrv_stub_init(void);
-#endif
-
-/*
- * header information used by st_kim.c
- */
-
-/* time in msec to wait for
- * line discipline to be installed
- */
-#define LDISC_TIME 1000
-#define CMD_RESP_TIME 800
-#define CMD_WR_TIME 5000
-#define MAKEWORD(a, b) ((unsigned short)(((unsigned char)(a)) \
- | ((unsigned short)((unsigned char)(b))) << 8))
-
-#define GPIO_HIGH 1
-#define GPIO_LOW 0
-
-/* the Power-On-Reset logic, requires to attempt
- * to download firmware onto chip more than once
- * since the self-test for chip takes a while
- */
-#define POR_RETRY_COUNT 5
-
-/**
- * struct chip_version - save the chip version
- */
-struct chip_version {
- unsigned short full;
- unsigned short chip;
- unsigned short min_ver;
- unsigned short maj_ver;
-};
-
-#define UART_DEV_NAME_LEN 32
-/**
- * struct kim_data_s - the KIM internal data, embedded as the
- * platform's drv data. One for each ST device in the system.
- * @uim_pid: KIM needs to communicate with UIM to request to install
- * the ldisc by opening UART when protocol drivers register.
- * @kim_pdev: the platform device added in one of the board-XX.c file
- * in arch/XX/ directory, 1 for each ST device.
- * @kim_rcvd: completion handler to notify when data was received,
- * mainly used during fw download, which involves multiple send/wait
- * for each of the HCI-VS commands.
- * @ldisc_installed: completion handler to notify that the UIM accepted
- * the request to install ldisc, notify from tty_open which suggests
- * the ldisc was properly installed.
- * @resp_buffer: data buffer for the .bts fw file name.
- * @fw_entry: firmware class struct to request/release the fw.
- * @rx_state: the rx state for kim's receive func during fw download.
- * @rx_count: the rx count for the kim's receive func during fw download.
- * @rx_skb: all of fw data might not come at once, and hence data storage for
- * whole of the fw response, only HCI_EVENTs and hence diff from ST's
- * response.
- * @core_data: ST core's data, which mainly is the tty's disc_data
- * @version: chip version available via a sysfs entry.
- *
- */
-struct kim_data_s {
- long uim_pid;
- struct platform_device *kim_pdev;
- struct completion kim_rcvd, ldisc_installed;
- char resp_buffer[30];
- const struct firmware *fw_entry;
- long nshutdown;
- unsigned long rx_state;
- unsigned long rx_count;
- struct sk_buff *rx_skb;
- struct st_data_s *core_data;
- struct chip_version version;
- unsigned char ldisc_install;
- unsigned char dev_name[UART_DEV_NAME_LEN];
- unsigned char flow_cntrl;
- unsigned long baud_rate;
-};
-
-/**
- * functions called when 1 of the protocol drivers gets
- * registered, these need to communicate with UIM to request
- * ldisc installed, read chip_version, download relevant fw
- */
-long st_kim_start(void *);
-long st_kim_stop(void *);
-
-void st_kim_recv(void *, const unsigned char *, long count);
-void st_kim_complete(void *);
-void kim_st_list_protocols(struct st_data_s *, void *);
-
-/*
- * BTS headers
- */
-#define ACTION_SEND_COMMAND 1
-#define ACTION_WAIT_EVENT 2
-#define ACTION_SERIAL 3
-#define ACTION_DELAY 4
-#define ACTION_RUN_SCRIPT 5
-#define ACTION_REMARKS 6
-
-/**
- * struct bts_header - the fw file is NOT binary which can
- * be sent onto TTY as is. The .bts is more a script
- * file which has different types of actions.
- * Each such action needs to be parsed by the KIM and
- * relevant procedure to be called.
- */
-struct bts_header {
- u32 magic;
- u32 version;
- u8 future[24];
- u8 actions[0];
-} __attribute__ ((packed));
-
-/**
- * struct bts_action - Each .bts action has its own type of
- * data.
- */
-struct bts_action {
- u16 type;
- u16 size;
- u8 data[0];
-} __attribute__ ((packed));
-
-struct bts_action_send {
- u8 data[0];
-} __attribute__ ((packed));
-
-struct bts_action_wait {
- u32 msec;
- u32 size;
- u8 data[0];
-} __attribute__ ((packed));
-
-struct bts_action_delay {
- u32 msec;
-} __attribute__ ((packed));
-
-struct bts_action_serial {
- u32 baud;
- u32 flow_control;
-} __attribute__ ((packed));
-
-/**
- * struct hci_command - the HCI-VS for intrepreting
- * the change baud rate of host-side UART, which
- * needs to be ignored, since UIM would do that
- * when it receives request from KIM for ldisc installation.
- */
-struct hci_command {
- u8 prefix;
- u16 opcode;
- u8 plen;
- u32 speed;
-} __attribute__ ((packed));
-
-/*
- * header information used by st_ll.c
- */
-
-/* ST LL receiver states */
-#define ST_W4_PACKET_TYPE 0
-#define ST_W4_HEADER 1
-#define ST_W4_DATA 2
-
-/* ST LL state machines */
-#define ST_LL_ASLEEP 0
-#define ST_LL_ASLEEP_TO_AWAKE 1
-#define ST_LL_AWAKE 2
-#define ST_LL_AWAKE_TO_ASLEEP 3
-#define ST_LL_INVALID 4
-
-/* different PM notifications coming from chip */
-#define LL_SLEEP_IND 0x30
-#define LL_SLEEP_ACK 0x31
-#define LL_WAKE_UP_IND 0x32
-#define LL_WAKE_UP_ACK 0x33
-
-/* initialize and de-init ST LL */
-long st_ll_init(struct st_data_s *);
-long st_ll_deinit(struct st_data_s *);
-
-/**
- * enable/disable ST LL along with KIM start/stop
- * called by ST Core
- */
-void st_ll_enable(struct st_data_s *);
-void st_ll_disable(struct st_data_s *);
-
-/**
- * various funcs used by ST core to set/get the various PM states
- * of the chip.
- */
-unsigned long st_ll_getstate(struct st_data_s *);
-unsigned long st_ll_sleep_state(struct st_data_s *, unsigned char);
-void st_ll_wakeup(struct st_data_s *);
-
-/*
- * header information used by st_core.c for FM and GPS
- * packet parsing, the bluetooth headers are already available
- * at net/bluetooth/
- */
-
-struct fm_event_hdr {
- u8 plen;
-} __attribute__ ((packed));
-
-#define FM_MAX_FRAME_SIZE 0xFF /* TODO: */
-#define FM_EVENT_HDR_SIZE 1 /* size of fm_event_hdr */
-#define ST_FM_CH8_PKT 0x8
-
-/* gps stuff */
-struct gps_event_hdr {
- u8 opcode;
- u16 plen;
-} __attribute__ ((packed));
-
-/**
- * struct ti_st_plat_data - platform data shared between ST driver and
- * platform specific board file which adds the ST device.
- * @nshutdown_gpio: Host's GPIO line to which chip's BT_EN is connected.
- * @dev_name: The UART/TTY name to which chip is interfaced. (eg: /dev/ttyS1)
- * @flow_cntrl: Should always be 1, since UART's CTS/RTS is used for PM
- * purposes.
- * @baud_rate: The baud rate supported by the Host UART controller, this will
- * be shared across with the chip via a HCI VS command from User-Space Init
- * Mgr application.
- * @suspend:
- * @resume: legacy PM routines hooked to platform specific board file, so as
- * to take chip-host interface specific action.
- * @chip_enable:
- * @chip_disable: Platform/Interface specific mux mode setting, GPIO
- * configuring, Host side PM disabling etc.. can be done here.
- * @chip_asleep:
- * @chip_awake: Chip specific deep sleep states is communicated to Host
- * specific board-xx.c to take actions such as cut UART clocks when chip
- * asleep or run host faster when chip awake etc..
- *
- */
-struct ti_st_plat_data {
- long nshutdown_gpio;
- unsigned char dev_name[UART_DEV_NAME_LEN]; /* uart name */
- unsigned char flow_cntrl; /* flow control flag */
- unsigned long baud_rate;
- int (*suspend)(struct platform_device *, pm_message_t);
- int (*resume)(struct platform_device *);
- int (*chip_enable) (struct kim_data_s *);
- int (*chip_disable) (struct kim_data_s *);
- int (*chip_asleep) (struct kim_data_s *);
- int (*chip_awake) (struct kim_data_s *);
-};
-
-#endif /* TI_WILINK_ST_H */
diff --git a/ANDROID_3.4.5/include/linux/tick.h b/ANDROID_3.4.5/include/linux/tick.h
deleted file mode 100644
index ab8be90b..00000000
--- a/ANDROID_3.4.5/include/linux/tick.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/* linux/include/linux/tick.h
- *
- * This file contains the structure definitions for tick related functions
- *
- */
-#ifndef _LINUX_TICK_H
-#define _LINUX_TICK_H
-
-#include <linux/clockchips.h>
-#include <linux/irqflags.h>
-
-#ifdef CONFIG_GENERIC_CLOCKEVENTS
-
-enum tick_device_mode {
- TICKDEV_MODE_PERIODIC,
- TICKDEV_MODE_ONESHOT,
-};
-
-struct tick_device {
- struct clock_event_device *evtdev;
- enum tick_device_mode mode;
-};
-
-enum tick_nohz_mode {
- NOHZ_MODE_INACTIVE,
- NOHZ_MODE_LOWRES,
- NOHZ_MODE_HIGHRES,
-};
-
-/**
- * struct tick_sched - sched tick emulation and no idle tick control/stats
- * @sched_timer: hrtimer to schedule the periodic tick in high
- * resolution mode
- * @idle_tick: Store the last idle tick expiry time when the tick
- * timer is modified for idle sleeps. This is necessary
- * to resume the tick timer operation in the timeline
- * when the CPU returns from idle
- * @tick_stopped: Indicator that the idle tick has been stopped
- * @idle_jiffies: jiffies at the entry to idle for idle time accounting
- * @idle_calls: Total number of idle calls
- * @idle_sleeps: Number of idle calls, where the sched tick was stopped
- * @idle_entrytime: Time when the idle call was entered
- * @idle_waketime: Time when the idle was interrupted
- * @idle_exittime: Time when the idle state was left
- * @idle_sleeptime: Sum of the time slept in idle with sched tick stopped
- * @iowait_sleeptime: Sum of the time slept in idle with sched tick stopped, with IO outstanding
- * @sleep_length: Duration of the current idle sleep
- * @do_timer_lst: CPU was the last one doing do_timer before going idle
- */
-struct tick_sched {
- struct hrtimer sched_timer;
- unsigned long check_clocks;
- enum tick_nohz_mode nohz_mode;
- ktime_t idle_tick;
- int inidle;
- int tick_stopped;
- unsigned long idle_jiffies;
- unsigned long idle_calls;
- unsigned long idle_sleeps;
- int idle_active;
- ktime_t idle_entrytime;
- ktime_t idle_waketime;
- ktime_t idle_exittime;
- ktime_t idle_sleeptime;
- ktime_t iowait_sleeptime;
- ktime_t sleep_length;
- unsigned long last_jiffies;
- unsigned long next_jiffies;
- ktime_t idle_expires;
- int do_timer_last;
-};
-
-extern void __init tick_init(void);
-extern int tick_is_oneshot_available(void);
-extern struct tick_device *tick_get_device(int cpu);
-
-# ifdef CONFIG_HIGH_RES_TIMERS
-extern int tick_init_highres(void);
-extern int tick_program_event(ktime_t expires, int force);
-extern void tick_setup_sched_timer(void);
-# endif
-
-# if defined CONFIG_NO_HZ || defined CONFIG_HIGH_RES_TIMERS
-extern void tick_cancel_sched_timer(int cpu);
-# else
-static inline void tick_cancel_sched_timer(int cpu) { }
-# endif
-
-# ifdef CONFIG_GENERIC_CLOCKEVENTS_BROADCAST
-extern struct tick_device *tick_get_broadcast_device(void);
-extern struct cpumask *tick_get_broadcast_mask(void);
-
-# ifdef CONFIG_TICK_ONESHOT
-extern struct cpumask *tick_get_broadcast_oneshot_mask(void);
-# endif
-
-# endif /* BROADCAST */
-
-# ifdef CONFIG_TICK_ONESHOT
-extern void tick_clock_notify(void);
-extern int tick_check_oneshot_change(int allow_nohz);
-extern struct tick_sched *tick_get_tick_sched(int cpu);
-extern void tick_check_idle(int cpu);
-extern int tick_oneshot_mode_active(void);
-# ifndef arch_needs_cpu
-# define arch_needs_cpu(cpu) (0)
-# endif
-# else
-static inline void tick_clock_notify(void) { }
-static inline int tick_check_oneshot_change(int allow_nohz) { return 0; }
-static inline void tick_check_idle(int cpu) { }
-static inline int tick_oneshot_mode_active(void) { return 0; }
-# endif
-
-#else /* CONFIG_GENERIC_CLOCKEVENTS */
-static inline void tick_init(void) { }
-static inline void tick_cancel_sched_timer(int cpu) { }
-static inline void tick_clock_notify(void) { }
-static inline int tick_check_oneshot_change(int allow_nohz) { return 0; }
-static inline void tick_check_idle(int cpu) { }
-static inline int tick_oneshot_mode_active(void) { return 0; }
-#endif /* !CONFIG_GENERIC_CLOCKEVENTS */
-
-# ifdef CONFIG_NO_HZ
-extern void tick_nohz_idle_enter(void);
-extern void tick_nohz_idle_exit(void);
-extern void tick_nohz_irq_exit(void);
-extern ktime_t tick_nohz_get_sleep_length(void);
-extern u64 get_cpu_idle_time_us(int cpu, u64 *last_update_time);
-extern u64 get_cpu_iowait_time_us(int cpu, u64 *last_update_time);
-# else
-static inline void tick_nohz_idle_enter(void) { }
-static inline void tick_nohz_idle_exit(void) { }
-
-static inline ktime_t tick_nohz_get_sleep_length(void)
-{
- ktime_t len = { .tv64 = NSEC_PER_SEC/HZ };
-
- return len;
-}
-static inline u64 get_cpu_idle_time_us(int cpu, u64 *unused) { return -1; }
-static inline u64 get_cpu_iowait_time_us(int cpu, u64 *unused) { return -1; }
-# endif /* !NO_HZ */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/tifm.h b/ANDROID_3.4.5/include/linux/tifm.h
deleted file mode 100644
index 848c0f39..00000000
--- a/ANDROID_3.4.5/include/linux/tifm.h
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * tifm.h - TI FlashMedia driver
- *
- * Copyright (C) 2006 Alex Dubov <oakad@yahoo.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.
- *
- */
-
-#ifndef _TIFM_H
-#define _TIFM_H
-
-#include <linux/spinlock.h>
-#include <linux/interrupt.h>
-#include <linux/delay.h>
-#include <linux/pci.h>
-#include <linux/workqueue.h>
-
-/* Host registers (relative to pci base address): */
-enum {
- FM_SET_INTERRUPT_ENABLE = 0x008,
- FM_CLEAR_INTERRUPT_ENABLE = 0x00c,
- FM_INTERRUPT_STATUS = 0x014
-};
-
-/* Socket registers (relative to socket base address): */
-enum {
- SOCK_CONTROL = 0x004,
- SOCK_PRESENT_STATE = 0x008,
- SOCK_DMA_ADDRESS = 0x00c,
- SOCK_DMA_CONTROL = 0x010,
- SOCK_DMA_FIFO_INT_ENABLE_SET = 0x014,
- SOCK_DMA_FIFO_INT_ENABLE_CLEAR = 0x018,
- SOCK_DMA_FIFO_STATUS = 0x020,
- SOCK_FIFO_CONTROL = 0x024,
- SOCK_FIFO_PAGE_SIZE = 0x028,
- SOCK_MMCSD_COMMAND = 0x104,
- SOCK_MMCSD_ARG_LOW = 0x108,
- SOCK_MMCSD_ARG_HIGH = 0x10c,
- SOCK_MMCSD_CONFIG = 0x110,
- SOCK_MMCSD_STATUS = 0x114,
- SOCK_MMCSD_INT_ENABLE = 0x118,
- SOCK_MMCSD_COMMAND_TO = 0x11c,
- SOCK_MMCSD_DATA_TO = 0x120,
- SOCK_MMCSD_DATA = 0x124,
- SOCK_MMCSD_BLOCK_LEN = 0x128,
- SOCK_MMCSD_NUM_BLOCKS = 0x12c,
- SOCK_MMCSD_BUFFER_CONFIG = 0x130,
- SOCK_MMCSD_SPI_CONFIG = 0x134,
- SOCK_MMCSD_SDIO_MODE_CONFIG = 0x138,
- SOCK_MMCSD_RESPONSE = 0x144,
- SOCK_MMCSD_SDIO_SR = 0x164,
- SOCK_MMCSD_SYSTEM_CONTROL = 0x168,
- SOCK_MMCSD_SYSTEM_STATUS = 0x16c,
- SOCK_MS_COMMAND = 0x184,
- SOCK_MS_DATA = 0x188,
- SOCK_MS_STATUS = 0x18c,
- SOCK_MS_SYSTEM = 0x190,
- SOCK_FIFO_ACCESS = 0x200
-};
-
-#define TIFM_CTRL_LED 0x00000040
-#define TIFM_CTRL_FAST_CLK 0x00000100
-#define TIFM_CTRL_POWER_MASK 0x00000007
-
-#define TIFM_SOCK_STATE_OCCUPIED 0x00000008
-#define TIFM_SOCK_STATE_POWERED 0x00000080
-
-#define TIFM_FIFO_ENABLE 0x00000001
-#define TIFM_FIFO_READY 0x00000001
-#define TIFM_FIFO_MORE 0x00000008
-#define TIFM_FIFO_INT_SETALL 0x0000ffff
-#define TIFM_FIFO_INTMASK 0x00000005
-
-#define TIFM_DMA_RESET 0x00000002
-#define TIFM_DMA_TX 0x00008000
-#define TIFM_DMA_EN 0x00000001
-#define TIFM_DMA_TSIZE 0x0000007f
-
-#define TIFM_TYPE_XD 1
-#define TIFM_TYPE_MS 2
-#define TIFM_TYPE_SD 3
-
-struct tifm_device_id {
- unsigned char type;
-};
-
-struct tifm_driver;
-struct tifm_dev {
- char __iomem *addr;
- spinlock_t lock;
- unsigned char type;
- unsigned int socket_id;
-
- void (*card_event)(struct tifm_dev *sock);
- void (*data_event)(struct tifm_dev *sock);
-
- struct device dev;
-};
-
-struct tifm_driver {
- struct tifm_device_id *id_table;
- int (*probe)(struct tifm_dev *dev);
- void (*remove)(struct tifm_dev *dev);
- int (*suspend)(struct tifm_dev *dev,
- pm_message_t state);
- int (*resume)(struct tifm_dev *dev);
-
- struct device_driver driver;
-};
-
-struct tifm_adapter {
- char __iomem *addr;
- spinlock_t lock;
- unsigned int irq_status;
- unsigned int socket_change_set;
- unsigned int id;
- unsigned int num_sockets;
- struct completion *finish_me;
-
- struct work_struct media_switcher;
- struct device dev;
-
- void (*eject)(struct tifm_adapter *fm,
- struct tifm_dev *sock);
- int (*has_ms_pif)(struct tifm_adapter *fm,
- struct tifm_dev *sock);
-
- struct tifm_dev *sockets[0];
-};
-
-struct tifm_adapter *tifm_alloc_adapter(unsigned int num_sockets,
- struct device *dev);
-int tifm_add_adapter(struct tifm_adapter *fm);
-void tifm_remove_adapter(struct tifm_adapter *fm);
-void tifm_free_adapter(struct tifm_adapter *fm);
-
-void tifm_free_device(struct device *dev);
-struct tifm_dev *tifm_alloc_device(struct tifm_adapter *fm, unsigned int id,
- unsigned char type);
-
-int tifm_register_driver(struct tifm_driver *drv);
-void tifm_unregister_driver(struct tifm_driver *drv);
-void tifm_eject(struct tifm_dev *sock);
-int tifm_has_ms_pif(struct tifm_dev *sock);
-int tifm_map_sg(struct tifm_dev *sock, struct scatterlist *sg, int nents,
- int direction);
-void tifm_unmap_sg(struct tifm_dev *sock, struct scatterlist *sg, int nents,
- int direction);
-void tifm_queue_work(struct work_struct *work);
-
-static inline void *tifm_get_drvdata(struct tifm_dev *dev)
-{
- return dev_get_drvdata(&dev->dev);
-}
-
-static inline void tifm_set_drvdata(struct tifm_dev *dev, void *data)
-{
- dev_set_drvdata(&dev->dev, data);
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/timb_dma.h b/ANDROID_3.4.5/include/linux/timb_dma.h
deleted file mode 100644
index bb043e97..00000000
--- a/ANDROID_3.4.5/include/linux/timb_dma.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * timb_dma.h timberdale FPGA DMA driver defines
- * Copyright (c) 2010 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.
- *
- * 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.
- */
-
-/* Supports:
- * Timberdale FPGA DMA engine
- */
-
-#ifndef _LINUX_TIMB_DMA_H
-#define _LINUX_TIMB_DMA_H
-
-/**
- * struct timb_dma_platform_data_channel - Description of each individual
- * DMA channel for the timberdale DMA driver
- * @rx: true if this channel handles data in the direction to
- * the CPU.
- * @bytes_per_line: Number of bytes per line, this is specific for channels
- * handling video data. For other channels this shall be left to 0.
- * @descriptors: Number of descriptors to allocate for this channel.
- * @descriptor_elements: Number of elements in each descriptor.
- *
- */
-struct timb_dma_platform_data_channel {
- bool rx;
- unsigned int bytes_per_line;
- unsigned int descriptors;
- unsigned int descriptor_elements;
-};
-
-/**
- * struct timb_dma_platform_data - Platform data of the timberdale DMA driver
- * @nr_channels: Number of defined channels in the channels array.
- * @channels: Definition of the each channel.
- *
- */
-struct timb_dma_platform_data {
- unsigned nr_channels;
- struct timb_dma_platform_data_channel channels[32];
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/timb_gpio.h b/ANDROID_3.4.5/include/linux/timb_gpio.h
deleted file mode 100644
index ce456eaa..00000000
--- a/ANDROID_3.4.5/include/linux/timb_gpio.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * timb_gpio.h timberdale FPGA GPIO driver, platform data definition
- * Copyright (c) 2009 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.
- *
- * 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.
- */
-
-#ifndef _LINUX_TIMB_GPIO_H
-#define _LINUX_TIMB_GPIO_H
-
-/**
- * struct timbgpio_platform_data - Platform data of the Timberdale GPIO driver
- * @gpio_base The number of the first GPIO pin, set to -1 for
- * dynamic number allocation.
- * @nr_pins Number of pins that is supported by the hardware (1-32)
- * @irq_base If IRQ is supported by the hardware, this is the base
- * number of IRQ:s. One IRQ per pin will be used. Set to
- * -1 if IRQ:s is not supported.
- */
-struct timbgpio_platform_data {
- int gpio_base;
- int nr_pins;
- int irq_base;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/time.h b/ANDROID_3.4.5/include/linux/time.h
deleted file mode 100644
index 33a92ead..00000000
--- a/ANDROID_3.4.5/include/linux/time.h
+++ /dev/null
@@ -1,314 +0,0 @@
-#ifndef _LINUX_TIME_H
-#define _LINUX_TIME_H
-
-#include <linux/types.h>
-
-#ifdef __KERNEL__
-# include <linux/cache.h>
-# include <linux/seqlock.h>
-# include <linux/math64.h>
-#endif
-
-#ifndef _STRUCT_TIMESPEC
-#define _STRUCT_TIMESPEC
-struct timespec {
- __kernel_time_t tv_sec; /* seconds */
- long tv_nsec; /* nanoseconds */
-};
-#endif
-
-struct timeval {
- __kernel_time_t tv_sec; /* seconds */
- __kernel_suseconds_t tv_usec; /* microseconds */
-};
-
-struct timezone {
- int tz_minuteswest; /* minutes west of Greenwich */
- int tz_dsttime; /* type of dst correction */
-};
-
-#ifdef __KERNEL__
-
-extern struct timezone sys_tz;
-
-/* Parameters used to convert the timespec values: */
-#define MSEC_PER_SEC 1000L
-#define USEC_PER_MSEC 1000L
-#define NSEC_PER_USEC 1000L
-#define NSEC_PER_MSEC 1000000L
-#define USEC_PER_SEC 1000000L
-#define NSEC_PER_SEC 1000000000L
-#define FSEC_PER_SEC 1000000000000000LL
-
-#define TIME_T_MAX (time_t)((1UL << ((sizeof(time_t) << 3) - 1)) - 1)
-
-static inline int timespec_equal(const struct timespec *a,
- const struct timespec *b)
-{
- return (a->tv_sec == b->tv_sec) && (a->tv_nsec == b->tv_nsec);
-}
-
-/*
- * lhs < rhs: return <0
- * lhs == rhs: return 0
- * lhs > rhs: return >0
- */
-static inline int timespec_compare(const struct timespec *lhs, const struct timespec *rhs)
-{
- if (lhs->tv_sec < rhs->tv_sec)
- return -1;
- if (lhs->tv_sec > rhs->tv_sec)
- return 1;
- return lhs->tv_nsec - rhs->tv_nsec;
-}
-
-static inline int timeval_compare(const struct timeval *lhs, const struct timeval *rhs)
-{
- if (lhs->tv_sec < rhs->tv_sec)
- return -1;
- if (lhs->tv_sec > rhs->tv_sec)
- return 1;
- return lhs->tv_usec - rhs->tv_usec;
-}
-
-extern unsigned long mktime(const unsigned int year, const unsigned int mon,
- const unsigned int day, const unsigned int hour,
- const unsigned int min, const unsigned int sec);
-
-extern void set_normalized_timespec(struct timespec *ts, time_t sec, s64 nsec);
-
-/*
- * timespec_add_safe assumes both values are positive and checks
- * for overflow. It will return TIME_T_MAX if the reutrn would be
- * smaller then either of the arguments.
- */
-extern struct timespec timespec_add_safe(const struct timespec lhs,
- const struct timespec rhs);
-
-
-static inline struct timespec timespec_add(struct timespec lhs,
- struct timespec rhs)
-{
- struct timespec ts_delta;
- set_normalized_timespec(&ts_delta, lhs.tv_sec + rhs.tv_sec,
- lhs.tv_nsec + rhs.tv_nsec);
- return ts_delta;
-}
-
-/*
- * sub = lhs - rhs, in normalized form
- */
-static inline struct timespec timespec_sub(struct timespec lhs,
- struct timespec rhs)
-{
- struct timespec ts_delta;
- set_normalized_timespec(&ts_delta, lhs.tv_sec - rhs.tv_sec,
- lhs.tv_nsec - rhs.tv_nsec);
- return ts_delta;
-}
-
-/*
- * Returns true if the timespec is norm, false if denorm:
- */
-#define timespec_valid(ts) \
- (((ts)->tv_sec >= 0) && (((unsigned long) (ts)->tv_nsec) < NSEC_PER_SEC))
-
-extern void read_persistent_clock(struct timespec *ts);
-extern void read_boot_clock(struct timespec *ts);
-extern int update_persistent_clock(struct timespec now);
-void timekeeping_init(void);
-extern int timekeeping_suspended;
-
-unsigned long get_seconds(void);
-struct timespec current_kernel_time(void);
-struct timespec __current_kernel_time(void); /* does not take xtime_lock */
-struct timespec get_monotonic_coarse(void);
-void get_xtime_and_monotonic_and_sleep_offset(struct timespec *xtim,
- struct timespec *wtom, struct timespec *sleep);
-void timekeeping_inject_sleeptime(struct timespec *delta);
-
-#define CURRENT_TIME (current_kernel_time())
-#define CURRENT_TIME_SEC ((struct timespec) { get_seconds(), 0 })
-
-/* Some architectures do not supply their own clocksource.
- * This is mainly the case in architectures that get their
- * inter-tick times by reading the counter on their interval
- * timer. Since these timers wrap every tick, they're not really
- * useful as clocksources. Wrapping them to act like one is possible
- * but not very efficient. So we provide a callout these arches
- * can implement for use with the jiffies clocksource to provide
- * finer then tick granular time.
- */
-#ifdef CONFIG_ARCH_USES_GETTIMEOFFSET
-extern u32 arch_gettimeoffset(void);
-#else
-static inline u32 arch_gettimeoffset(void) { return 0; }
-#endif
-
-extern void do_gettimeofday(struct timeval *tv);
-extern int do_settimeofday(const struct timespec *tv);
-extern int do_sys_settimeofday(const struct timespec *tv,
- const struct timezone *tz);
-#define do_posix_clock_monotonic_gettime(ts) ktime_get_ts(ts)
-extern long do_utimes(int dfd, const char __user *filename, struct timespec *times, int flags);
-struct itimerval;
-extern int do_setitimer(int which, struct itimerval *value,
- struct itimerval *ovalue);
-extern unsigned int alarm_setitimer(unsigned int seconds);
-extern int do_getitimer(int which, struct itimerval *value);
-extern void getnstimeofday(struct timespec *tv);
-extern void getrawmonotonic(struct timespec *ts);
-extern void getnstime_raw_and_real(struct timespec *ts_raw,
- struct timespec *ts_real);
-extern void getboottime(struct timespec *ts);
-extern void monotonic_to_bootbased(struct timespec *ts);
-extern void get_monotonic_boottime(struct timespec *ts);
-
-extern struct timespec timespec_trunc(struct timespec t, unsigned gran);
-extern int timekeeping_valid_for_hres(void);
-extern u64 timekeeping_max_deferment(void);
-extern void timekeeping_leap_insert(int leapsecond);
-extern int timekeeping_inject_offset(struct timespec *ts);
-
-struct tms;
-extern void do_sys_times(struct tms *);
-
-/*
- * Similar to the struct tm in userspace <time.h>, but it needs to be here so
- * that the kernel source is self contained.
- */
-struct tm {
- /*
- * the number of seconds after the minute, normally in the range
- * 0 to 59, but can be up to 60 to allow for leap seconds
- */
- int tm_sec;
- /* the number of minutes after the hour, in the range 0 to 59*/
- int tm_min;
- /* the number of hours past midnight, in the range 0 to 23 */
- int tm_hour;
- /* the day of the month, in the range 1 to 31 */
- int tm_mday;
- /* the number of months since January, in the range 0 to 11 */
- int tm_mon;
- /* the number of years since 1900 */
- long tm_year;
- /* the number of days since Sunday, in the range 0 to 6 */
- int tm_wday;
- /* the number of days since January 1, in the range 0 to 365 */
- int tm_yday;
-};
-
-void time_to_tm(time_t totalsecs, int offset, struct tm *result);
-
-/**
- * timespec_to_ns - Convert timespec to nanoseconds
- * @ts: pointer to the timespec variable to be converted
- *
- * Returns the scalar nanosecond representation of the timespec
- * parameter.
- */
-static inline s64 timespec_to_ns(const struct timespec *ts)
-{
- return ((s64) ts->tv_sec * NSEC_PER_SEC) + ts->tv_nsec;
-}
-
-/**
- * timeval_to_ns - Convert timeval to nanoseconds
- * @ts: pointer to the timeval variable to be converted
- *
- * Returns the scalar nanosecond representation of the timeval
- * parameter.
- */
-static inline s64 timeval_to_ns(const struct timeval *tv)
-{
- return ((s64) tv->tv_sec * NSEC_PER_SEC) +
- tv->tv_usec * NSEC_PER_USEC;
-}
-
-/**
- * ns_to_timespec - Convert nanoseconds to timespec
- * @nsec: the nanoseconds value to be converted
- *
- * Returns the timespec representation of the nsec parameter.
- */
-extern struct timespec ns_to_timespec(const s64 nsec);
-
-/**
- * ns_to_timeval - Convert nanoseconds to timeval
- * @nsec: the nanoseconds value to be converted
- *
- * Returns the timeval representation of the nsec parameter.
- */
-extern struct timeval ns_to_timeval(const s64 nsec);
-
-/**
- * timespec_add_ns - Adds nanoseconds to a timespec
- * @a: pointer to timespec to be incremented
- * @ns: unsigned nanoseconds value to be added
- *
- * This must always be inlined because its used from the x86-64 vdso,
- * which cannot call other kernel functions.
- */
-static __always_inline void timespec_add_ns(struct timespec *a, u64 ns)
-{
- a->tv_sec += __iter_div_u64_rem(a->tv_nsec + ns, NSEC_PER_SEC, &ns);
- a->tv_nsec = ns;
-}
-
-#endif /* __KERNEL__ */
-
-#define NFDBITS __NFDBITS
-
-#define FD_SETSIZE __FD_SETSIZE
-#define FD_SET(fd,fdsetp) __FD_SET(fd,fdsetp)
-#define FD_CLR(fd,fdsetp) __FD_CLR(fd,fdsetp)
-#define FD_ISSET(fd,fdsetp) __FD_ISSET(fd,fdsetp)
-#define FD_ZERO(fdsetp) __FD_ZERO(fdsetp)
-
-/*
- * Names of the interval timers, and structure
- * defining a timer setting:
- */
-#define ITIMER_REAL 0
-#define ITIMER_VIRTUAL 1
-#define ITIMER_PROF 2
-
-struct itimerspec {
- struct timespec it_interval; /* timer period */
- struct timespec it_value; /* timer expiration */
-};
-
-struct itimerval {
- struct timeval it_interval; /* timer interval */
- struct timeval it_value; /* current value */
-};
-
-/*
- * The IDs of the various system clocks (for POSIX.1b interval timers):
- */
-#define CLOCK_REALTIME 0
-#define CLOCK_MONOTONIC 1
-#define CLOCK_PROCESS_CPUTIME_ID 2
-#define CLOCK_THREAD_CPUTIME_ID 3
-#define CLOCK_MONOTONIC_RAW 4
-#define CLOCK_REALTIME_COARSE 5
-#define CLOCK_MONOTONIC_COARSE 6
-#define CLOCK_BOOTTIME 7
-#define CLOCK_REALTIME_ALARM 8
-#define CLOCK_BOOTTIME_ALARM 9
-
-/*
- * The IDs of various hardware clocks:
- */
-#define CLOCK_SGI_CYCLE 10
-#define MAX_CLOCKS 16
-#define CLOCKS_MASK (CLOCK_REALTIME | CLOCK_MONOTONIC)
-#define CLOCKS_MONO CLOCK_MONOTONIC
-
-/*
- * The various flags for setting POSIX.1b interval timers:
- */
-#define TIMER_ABSTIME 0x01
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/timecompare.h b/ANDROID_3.4.5/include/linux/timecompare.h
deleted file mode 100644
index 546e2234..00000000
--- a/ANDROID_3.4.5/include/linux/timecompare.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Utility code which helps transforming between two different time
- * bases, called "source" and "target" time in this code.
- *
- * Source time has to be provided via the timecounter API while target
- * time is accessed via a function callback whose prototype
- * intentionally matches ktime_get() and ktime_get_real(). These
- * interfaces where chosen like this so that the code serves its
- * initial purpose without additional glue code.
- *
- * This purpose is synchronizing a hardware clock in a NIC with system
- * time, in order to implement the Precision Time Protocol (PTP,
- * IEEE1588) with more accurate hardware assisted time stamping. In
- * that context only synchronization against system time (=
- * ktime_get_real()) is currently needed. But this utility code might
- * become useful in other situations, which is why it was written as
- * general purpose utility code.
- *
- * The source timecounter is assumed to return monotonically
- * increasing time (but this code does its best to compensate if that
- * is not the case) whereas target time may jump.
- *
- * The target time corresponding to a source time is determined by
- * reading target time, reading source time, reading target time
- * again, then assuming that average target time corresponds to source
- * time. In other words, the assumption is that reading the source
- * time is slow and involves equal time for sending the request and
- * receiving the reply, whereas reading target time is assumed to be
- * fast.
- *
- * Copyright (C) 2009 Intel Corporation.
- * Author: Patrick Ohly <patrick.ohly@intel.com>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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 _LINUX_TIMECOMPARE_H
-#define _LINUX_TIMECOMPARE_H
-
-#include <linux/clocksource.h>
-#include <linux/ktime.h>
-
-/**
- * struct timecompare - stores state and configuration for the two clocks
- *
- * Initialize to zero, then set source/target/num_samples.
- *
- * Transformation between source time and target time is done with:
- * target_time = source_time + offset +
- * (source_time - last_update) * skew /
- * TIMECOMPARE_SKEW_RESOLUTION
- *
- * @source: used to get source time stamps via timecounter_read()
- * @target: function returning target time (for example, ktime_get
- * for monotonic time, or ktime_get_real for wall clock)
- * @num_samples: number of times that source time and target time are to
- * be compared when determining their offset
- * @offset: (target time - source time) at the time of the last update
- * @skew: average (target time - source time) / delta source time *
- * TIMECOMPARE_SKEW_RESOLUTION
- * @last_update: last source time stamp when time offset was measured
- */
-struct timecompare {
- struct timecounter *source;
- ktime_t (*target)(void);
- int num_samples;
-
- s64 offset;
- s64 skew;
- u64 last_update;
-};
-
-/**
- * timecompare_transform - transform source time stamp into target time base
- * @sync: context for time sync
- * @source_tstamp: the result of timecounter_read() or
- * timecounter_cyc2time()
- */
-extern ktime_t timecompare_transform(struct timecompare *sync,
- u64 source_tstamp);
-
-/**
- * timecompare_offset - measure current (target time - source time) offset
- * @sync: context for time sync
- * @offset: average offset during sample period returned here
- * @source_tstamp: average source time during sample period returned here
- *
- * Returns number of samples used. Might be zero (= no result) in the
- * unlikely case that target time was monotonically decreasing for all
- * samples (= broken).
- */
-extern int timecompare_offset(struct timecompare *sync,
- s64 *offset,
- u64 *source_tstamp);
-
-extern void __timecompare_update(struct timecompare *sync,
- u64 source_tstamp);
-
-/**
- * timecompare_update - update offset and skew by measuring current offset
- * @sync: context for time sync
- * @source_tstamp: the result of timecounter_read() or
- * timecounter_cyc2time(), pass zero to force update
- *
- * Updates are only done at most once per second.
- */
-static inline void timecompare_update(struct timecompare *sync,
- u64 source_tstamp)
-{
- if (!source_tstamp ||
- (s64)(source_tstamp - sync->last_update) >= NSEC_PER_SEC)
- __timecompare_update(sync, source_tstamp);
-}
-
-#endif /* _LINUX_TIMECOMPARE_H */
diff --git a/ANDROID_3.4.5/include/linux/timer.h b/ANDROID_3.4.5/include/linux/timer.h
deleted file mode 100644
index 6abd9138..00000000
--- a/ANDROID_3.4.5/include/linux/timer.h
+++ /dev/null
@@ -1,302 +0,0 @@
-#ifndef _LINUX_TIMER_H
-#define _LINUX_TIMER_H
-
-#include <linux/list.h>
-#include <linux/ktime.h>
-#include <linux/stddef.h>
-#include <linux/debugobjects.h>
-#include <linux/stringify.h>
-
-struct tvec_base;
-
-struct timer_list {
- /*
- * All fields that change during normal runtime grouped to the
- * same cacheline
- */
- struct list_head entry;
- unsigned long expires;
- struct tvec_base *base;
-
- void (*function)(unsigned long);
- unsigned long data;
-
- int slack;
-
-#ifdef CONFIG_TIMER_STATS
- int start_pid;
- void *start_site;
- char start_comm[16];
-#endif
-#ifdef CONFIG_LOCKDEP
- struct lockdep_map lockdep_map;
-#endif
-};
-
-extern struct tvec_base boot_tvec_bases;
-
-#ifdef CONFIG_LOCKDEP
-/*
- * NB: because we have to copy the lockdep_map, setting the lockdep_map key
- * (second argument) here is required, otherwise it could be initialised to
- * the copy of the lockdep_map later! We use the pointer to and the string
- * "<file>:<line>" as the key resp. the name of the lockdep_map.
- */
-#define __TIMER_LOCKDEP_MAP_INITIALIZER(_kn) \
- .lockdep_map = STATIC_LOCKDEP_MAP_INIT(_kn, &_kn),
-#else
-#define __TIMER_LOCKDEP_MAP_INITIALIZER(_kn)
-#endif
-
-/*
- * Note that all tvec_bases are 2 byte aligned and lower bit of
- * base in timer_list is guaranteed to be zero. Use the LSB to
- * indicate whether the timer is deferrable.
- *
- * A deferrable timer will work normally when the system is busy, but
- * will not cause a CPU to come out of idle just to service it; instead,
- * the timer will be serviced when the CPU eventually wakes up with a
- * subsequent non-deferrable timer.
- */
-#define TBASE_DEFERRABLE_FLAG (0x1)
-
-#define TIMER_INITIALIZER(_function, _expires, _data) { \
- .entry = { .prev = TIMER_ENTRY_STATIC }, \
- .function = (_function), \
- .expires = (_expires), \
- .data = (_data), \
- .base = &boot_tvec_bases, \
- .slack = -1, \
- __TIMER_LOCKDEP_MAP_INITIALIZER( \
- __FILE__ ":" __stringify(__LINE__)) \
- }
-
-#define TBASE_MAKE_DEFERRED(ptr) ((struct tvec_base *) \
- ((unsigned char *)(ptr) + TBASE_DEFERRABLE_FLAG))
-
-#define TIMER_DEFERRED_INITIALIZER(_function, _expires, _data) {\
- .entry = { .prev = TIMER_ENTRY_STATIC }, \
- .function = (_function), \
- .expires = (_expires), \
- .data = (_data), \
- .base = TBASE_MAKE_DEFERRED(&boot_tvec_bases), \
- __TIMER_LOCKDEP_MAP_INITIALIZER( \
- __FILE__ ":" __stringify(__LINE__)) \
- }
-
-#define DEFINE_TIMER(_name, _function, _expires, _data) \
- struct timer_list _name = \
- TIMER_INITIALIZER(_function, _expires, _data)
-
-void init_timer_key(struct timer_list *timer,
- const char *name,
- struct lock_class_key *key);
-void init_timer_deferrable_key(struct timer_list *timer,
- const char *name,
- struct lock_class_key *key);
-
-#ifdef CONFIG_LOCKDEP
-#define init_timer(timer) \
- do { \
- static struct lock_class_key __key; \
- init_timer_key((timer), #timer, &__key); \
- } while (0)
-
-#define init_timer_deferrable(timer) \
- do { \
- static struct lock_class_key __key; \
- init_timer_deferrable_key((timer), #timer, &__key); \
- } while (0)
-
-#define init_timer_on_stack(timer) \
- do { \
- static struct lock_class_key __key; \
- init_timer_on_stack_key((timer), #timer, &__key); \
- } while (0)
-
-#define setup_timer(timer, fn, data) \
- do { \
- static struct lock_class_key __key; \
- setup_timer_key((timer), #timer, &__key, (fn), (data));\
- } while (0)
-
-#define setup_timer_on_stack(timer, fn, data) \
- do { \
- static struct lock_class_key __key; \
- setup_timer_on_stack_key((timer), #timer, &__key, \
- (fn), (data)); \
- } while (0)
-#define setup_deferrable_timer_on_stack(timer, fn, data) \
- do { \
- static struct lock_class_key __key; \
- setup_deferrable_timer_on_stack_key((timer), #timer, \
- &__key, (fn), \
- (data)); \
- } while (0)
-#else
-#define init_timer(timer)\
- init_timer_key((timer), NULL, NULL)
-#define init_timer_deferrable(timer)\
- init_timer_deferrable_key((timer), NULL, NULL)
-#define init_timer_on_stack(timer)\
- init_timer_on_stack_key((timer), NULL, NULL)
-#define setup_timer(timer, fn, data)\
- setup_timer_key((timer), NULL, NULL, (fn), (data))
-#define setup_timer_on_stack(timer, fn, data)\
- setup_timer_on_stack_key((timer), NULL, NULL, (fn), (data))
-#define setup_deferrable_timer_on_stack(timer, fn, data)\
- setup_deferrable_timer_on_stack_key((timer), NULL, NULL, (fn), (data))
-#endif
-
-#ifdef CONFIG_DEBUG_OBJECTS_TIMERS
-extern void init_timer_on_stack_key(struct timer_list *timer,
- const char *name,
- struct lock_class_key *key);
-extern void destroy_timer_on_stack(struct timer_list *timer);
-#else
-static inline void destroy_timer_on_stack(struct timer_list *timer) { }
-static inline void init_timer_on_stack_key(struct timer_list *timer,
- const char *name,
- struct lock_class_key *key)
-{
- init_timer_key(timer, name, key);
-}
-#endif
-
-static inline void setup_timer_key(struct timer_list * timer,
- const char *name,
- struct lock_class_key *key,
- void (*function)(unsigned long),
- unsigned long data)
-{
- timer->function = function;
- timer->data = data;
- init_timer_key(timer, name, key);
-}
-
-static inline void setup_timer_on_stack_key(struct timer_list *timer,
- const char *name,
- struct lock_class_key *key,
- void (*function)(unsigned long),
- unsigned long data)
-{
- timer->function = function;
- timer->data = data;
- init_timer_on_stack_key(timer, name, key);
-}
-
-extern void setup_deferrable_timer_on_stack_key(struct timer_list *timer,
- const char *name,
- struct lock_class_key *key,
- void (*function)(unsigned long),
- unsigned long data);
-
-/**
- * timer_pending - is a timer pending?
- * @timer: the timer in question
- *
- * timer_pending will tell whether a given timer is currently pending,
- * or not. Callers must ensure serialization wrt. other operations done
- * to this timer, eg. interrupt contexts, or other CPUs on SMP.
- *
- * return value: 1 if the timer is pending, 0 if not.
- */
-static inline int timer_pending(const struct timer_list * timer)
-{
- return timer->entry.next != NULL;
-}
-
-extern void add_timer_on(struct timer_list *timer, int cpu);
-extern int del_timer(struct timer_list * timer);
-extern int mod_timer(struct timer_list *timer, unsigned long expires);
-extern int mod_timer_pending(struct timer_list *timer, unsigned long expires);
-extern int mod_timer_pinned(struct timer_list *timer, unsigned long expires);
-
-extern void set_timer_slack(struct timer_list *time, int slack_hz);
-
-#define TIMER_NOT_PINNED 0
-#define TIMER_PINNED 1
-/*
- * The jiffies value which is added to now, when there is no timer
- * in the timer wheel:
- */
-#define NEXT_TIMER_MAX_DELTA ((1UL << 30) - 1)
-
-/*
- * Return when the next timer-wheel timeout occurs (in absolute jiffies),
- * locks the timer base and does the comparison against the given
- * jiffie.
- */
-extern unsigned long get_next_timer_interrupt(unsigned long now);
-
-/*
- * Timer-statistics info:
- */
-#ifdef CONFIG_TIMER_STATS
-
-extern int timer_stats_active;
-
-#define TIMER_STATS_FLAG_DEFERRABLE 0x1
-
-extern void init_timer_stats(void);
-
-extern void timer_stats_update_stats(void *timer, pid_t pid, void *startf,
- void *timerf, char *comm,
- unsigned int timer_flag);
-
-extern void __timer_stats_timer_set_start_info(struct timer_list *timer,
- void *addr);
-
-static inline void timer_stats_timer_set_start_info(struct timer_list *timer)
-{
- if (likely(!timer_stats_active))
- return;
- __timer_stats_timer_set_start_info(timer, __builtin_return_address(0));
-}
-
-static inline void timer_stats_timer_clear_start_info(struct timer_list *timer)
-{
- timer->start_site = NULL;
-}
-#else
-static inline void init_timer_stats(void)
-{
-}
-
-static inline void timer_stats_timer_set_start_info(struct timer_list *timer)
-{
-}
-
-static inline void timer_stats_timer_clear_start_info(struct timer_list *timer)
-{
-}
-#endif
-
-extern void add_timer(struct timer_list *timer);
-
-extern int try_to_del_timer_sync(struct timer_list *timer);
-
-#ifdef CONFIG_SMP
- extern int del_timer_sync(struct timer_list *timer);
-#else
-# define del_timer_sync(t) del_timer(t)
-#endif
-
-#define del_singleshot_timer_sync(t) del_timer_sync(t)
-
-extern void init_timers(void);
-extern void run_local_timers(void);
-struct hrtimer;
-extern enum hrtimer_restart it_real_fn(struct hrtimer *);
-
-unsigned long __round_jiffies(unsigned long j, int cpu);
-unsigned long __round_jiffies_relative(unsigned long j, int cpu);
-unsigned long round_jiffies(unsigned long j);
-unsigned long round_jiffies_relative(unsigned long j);
-
-unsigned long __round_jiffies_up(unsigned long j, int cpu);
-unsigned long __round_jiffies_up_relative(unsigned long j, int cpu);
-unsigned long round_jiffies_up(unsigned long j);
-unsigned long round_jiffies_up_relative(unsigned long j);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/timerfd.h b/ANDROID_3.4.5/include/linux/timerfd.h
deleted file mode 100644
index d3b57fa1..00000000
--- a/ANDROID_3.4.5/include/linux/timerfd.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * include/linux/timerfd.h
- *
- * Copyright (C) 2007 Davide Libenzi <davidel@xmailserver.org>
- *
- */
-
-#ifndef _LINUX_TIMERFD_H
-#define _LINUX_TIMERFD_H
-
-/* For O_CLOEXEC and O_NONBLOCK */
-#include <linux/fcntl.h>
-
-/*
- * CAREFUL: Check include/asm-generic/fcntl.h when defining
- * new flags, since they might collide with O_* ones. We want
- * to re-use O_* flags that couldn't possibly have a meaning
- * from eventfd, in order to leave a free define-space for
- * shared O_* flags.
- */
-#define TFD_TIMER_ABSTIME (1 << 0)
-#define TFD_TIMER_CANCEL_ON_SET (1 << 1)
-#define TFD_CLOEXEC O_CLOEXEC
-#define TFD_NONBLOCK O_NONBLOCK
-
-#define TFD_SHARED_FCNTL_FLAGS (TFD_CLOEXEC | TFD_NONBLOCK)
-/* Flags for timerfd_create. */
-#define TFD_CREATE_FLAGS TFD_SHARED_FCNTL_FLAGS
-/* Flags for timerfd_settime. */
-#define TFD_SETTIME_FLAGS (TFD_TIMER_ABSTIME | TFD_TIMER_CANCEL_ON_SET)
-
-#endif /* _LINUX_TIMERFD_H */
diff --git a/ANDROID_3.4.5/include/linux/timeriomem-rng.h b/ANDROID_3.4.5/include/linux/timeriomem-rng.h
deleted file mode 100644
index 3e08a1c8..00000000
--- a/ANDROID_3.4.5/include/linux/timeriomem-rng.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * linux/include/linux/timeriomem-rng.h
- *
- * Copyright (c) 2009 Alexander Clouter <alex@digriz.org.uk>
- *
- * 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/completion.h>
-
-struct timeriomem_rng_data {
- struct completion completion;
- unsigned int present:1;
-
- void __iomem *address;
-
- /* measures in usecs */
- unsigned int period;
-};
diff --git a/ANDROID_3.4.5/include/linux/timerqueue.h b/ANDROID_3.4.5/include/linux/timerqueue.h
deleted file mode 100644
index 50887274..00000000
--- a/ANDROID_3.4.5/include/linux/timerqueue.h
+++ /dev/null
@@ -1,50 +0,0 @@
-#ifndef _LINUX_TIMERQUEUE_H
-#define _LINUX_TIMERQUEUE_H
-
-#include <linux/rbtree.h>
-#include <linux/ktime.h>
-
-
-struct timerqueue_node {
- struct rb_node node;
- ktime_t expires;
-};
-
-struct timerqueue_head {
- struct rb_root head;
- struct timerqueue_node *next;
-};
-
-
-extern void timerqueue_add(struct timerqueue_head *head,
- struct timerqueue_node *node);
-extern void timerqueue_del(struct timerqueue_head *head,
- struct timerqueue_node *node);
-extern struct timerqueue_node *timerqueue_iterate_next(
- struct timerqueue_node *node);
-
-/**
- * timerqueue_getnext - Returns the timer with the earliest expiration time
- *
- * @head: head of timerqueue
- *
- * Returns a pointer to the timer node that has the
- * earliest expiration time.
- */
-static inline
-struct timerqueue_node *timerqueue_getnext(struct timerqueue_head *head)
-{
- return head->next;
-}
-
-static inline void timerqueue_init(struct timerqueue_node *node)
-{
- rb_init_node(&node->node);
-}
-
-static inline void timerqueue_init_head(struct timerqueue_head *head)
-{
- head->head = RB_ROOT;
- head->next = NULL;
-}
-#endif /* _LINUX_TIMERQUEUE_H */
diff --git a/ANDROID_3.4.5/include/linux/times.h b/ANDROID_3.4.5/include/linux/times.h
deleted file mode 100644
index 87b62615..00000000
--- a/ANDROID_3.4.5/include/linux/times.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef _LINUX_TIMES_H
-#define _LINUX_TIMES_H
-
-#include <linux/types.h>
-
-struct tms {
- __kernel_clock_t tms_utime;
- __kernel_clock_t tms_stime;
- __kernel_clock_t tms_cutime;
- __kernel_clock_t tms_cstime;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/timex.h b/ANDROID_3.4.5/include/linux/timex.h
deleted file mode 100644
index 99bc88b1..00000000
--- a/ANDROID_3.4.5/include/linux/timex.h
+++ /dev/null
@@ -1,266 +0,0 @@
-/*****************************************************************************
- * *
- * Copyright (c) David L. Mills 1993 *
- * *
- * Permission to use, copy, modify, and distribute this software and its *
- * documentation for any purpose and without fee is hereby granted, provided *
- * that the above copyright notice appears in all copies and that both the *
- * copyright notice and this permission notice appear in supporting *
- * documentation, and that the name University of Delaware not be used in *
- * advertising or publicity pertaining to distribution of the software *
- * without specific, written prior permission. The University of Delaware *
- * makes no representations about the suitability this software for any *
- * purpose. It is provided "as is" without express or implied warranty. *
- * *
- *****************************************************************************/
-
-/*
- * Modification history timex.h
- *
- * 29 Dec 97 Russell King
- * Moved CLOCK_TICK_RATE, CLOCK_TICK_FACTOR and FINETUNE to asm/timex.h
- * for ARM machines
- *
- * 9 Jan 97 Adrian Sun
- * Shifted LATCH define to allow access to alpha machines.
- *
- * 26 Sep 94 David L. Mills
- * Added defines for hybrid phase/frequency-lock loop.
- *
- * 19 Mar 94 David L. Mills
- * Moved defines from kernel routines to header file and added new
- * defines for PPS phase-lock loop.
- *
- * 20 Feb 94 David L. Mills
- * Revised status codes and structures for external clock and PPS
- * signal discipline.
- *
- * 28 Nov 93 David L. Mills
- * Adjusted parameters to improve stability and increase poll
- * interval.
- *
- * 17 Sep 93 David L. Mills
- * Created file $NTP/include/sys/timex.h
- * 07 Oct 93 Torsten Duwe
- * Derived linux/timex.h
- * 1995-08-13 Torsten Duwe
- * kernel PLL updated to 1994-12-13 specs (rfc-1589)
- * 1997-08-30 Ulrich Windl
- * Added new constant NTP_PHASE_LIMIT
- * 2004-08-12 Christoph Lameter
- * Reworked time interpolation logic
- */
-#ifndef _LINUX_TIMEX_H
-#define _LINUX_TIMEX_H
-
-#include <linux/time.h>
-
-#define NTP_API 4 /* NTP API version */
-
-/*
- * syscall interface - used (mainly by NTP daemon)
- * to discipline kernel clock oscillator
- */
-struct timex {
- unsigned int modes; /* mode selector */
- long offset; /* time offset (usec) */
- long freq; /* frequency offset (scaled ppm) */
- long maxerror; /* maximum error (usec) */
- long esterror; /* estimated error (usec) */
- int status; /* clock command/status */
- long constant; /* pll time constant */
- long precision; /* clock precision (usec) (read only) */
- long tolerance; /* clock frequency tolerance (ppm)
- * (read only)
- */
- struct timeval time; /* (read only, except for ADJ_SETOFFSET) */
- long tick; /* (modified) usecs between clock ticks */
-
- long ppsfreq; /* pps frequency (scaled ppm) (ro) */
- long jitter; /* pps jitter (us) (ro) */
- int shift; /* interval duration (s) (shift) (ro) */
- long stabil; /* pps stability (scaled ppm) (ro) */
- long jitcnt; /* jitter limit exceeded (ro) */
- long calcnt; /* calibration intervals (ro) */
- long errcnt; /* calibration errors (ro) */
- long stbcnt; /* stability limit exceeded (ro) */
-
- int tai; /* TAI offset (ro) */
-
- int :32; int :32; int :32; int :32;
- int :32; int :32; int :32; int :32;
- int :32; int :32; int :32;
-};
-
-/*
- * Mode codes (timex.mode)
- */
-#define ADJ_OFFSET 0x0001 /* time offset */
-#define ADJ_FREQUENCY 0x0002 /* frequency offset */
-#define ADJ_MAXERROR 0x0004 /* maximum time error */
-#define ADJ_ESTERROR 0x0008 /* estimated time error */
-#define ADJ_STATUS 0x0010 /* clock status */
-#define ADJ_TIMECONST 0x0020 /* pll time constant */
-#define ADJ_TAI 0x0080 /* set TAI offset */
-#define ADJ_SETOFFSET 0x0100 /* add 'time' to current time */
-#define ADJ_MICRO 0x1000 /* select microsecond resolution */
-#define ADJ_NANO 0x2000 /* select nanosecond resolution */
-#define ADJ_TICK 0x4000 /* tick value */
-
-#ifdef __KERNEL__
-#define ADJ_ADJTIME 0x8000 /* switch between adjtime/adjtimex modes */
-#define ADJ_OFFSET_SINGLESHOT 0x0001 /* old-fashioned adjtime */
-#define ADJ_OFFSET_READONLY 0x2000 /* read-only adjtime */
-#else
-#define ADJ_OFFSET_SINGLESHOT 0x8001 /* old-fashioned adjtime */
-#define ADJ_OFFSET_SS_READ 0xa001 /* read-only adjtime */
-#endif
-
-/* NTP userland likes the MOD_ prefix better */
-#define MOD_OFFSET ADJ_OFFSET
-#define MOD_FREQUENCY ADJ_FREQUENCY
-#define MOD_MAXERROR ADJ_MAXERROR
-#define MOD_ESTERROR ADJ_ESTERROR
-#define MOD_STATUS ADJ_STATUS
-#define MOD_TIMECONST ADJ_TIMECONST
-#define MOD_TAI ADJ_TAI
-#define MOD_MICRO ADJ_MICRO
-#define MOD_NANO ADJ_NANO
-
-
-/*
- * Status codes (timex.status)
- */
-#define STA_PLL 0x0001 /* enable PLL updates (rw) */
-#define STA_PPSFREQ 0x0002 /* enable PPS freq discipline (rw) */
-#define STA_PPSTIME 0x0004 /* enable PPS time discipline (rw) */
-#define STA_FLL 0x0008 /* select frequency-lock mode (rw) */
-
-#define STA_INS 0x0010 /* insert leap (rw) */
-#define STA_DEL 0x0020 /* delete leap (rw) */
-#define STA_UNSYNC 0x0040 /* clock unsynchronized (rw) */
-#define STA_FREQHOLD 0x0080 /* hold frequency (rw) */
-
-#define STA_PPSSIGNAL 0x0100 /* PPS signal present (ro) */
-#define STA_PPSJITTER 0x0200 /* PPS signal jitter exceeded (ro) */
-#define STA_PPSWANDER 0x0400 /* PPS signal wander exceeded (ro) */
-#define STA_PPSERROR 0x0800 /* PPS signal calibration error (ro) */
-
-#define STA_CLOCKERR 0x1000 /* clock hardware fault (ro) */
-#define STA_NANO 0x2000 /* resolution (0 = us, 1 = ns) (ro) */
-#define STA_MODE 0x4000 /* mode (0 = PLL, 1 = FLL) (ro) */
-#define STA_CLK 0x8000 /* clock source (0 = A, 1 = B) (ro) */
-
-/* read-only bits */
-#define STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | \
- STA_PPSERROR | STA_CLOCKERR | STA_NANO | STA_MODE | STA_CLK)
-
-/*
- * Clock states (time_state)
- */
-#define TIME_OK 0 /* clock synchronized, no leap second */
-#define TIME_INS 1 /* insert leap second */
-#define TIME_DEL 2 /* delete leap second */
-#define TIME_OOP 3 /* leap second in progress */
-#define TIME_WAIT 4 /* leap second has occurred */
-#define TIME_ERROR 5 /* clock not synchronized */
-#define TIME_BAD TIME_ERROR /* bw compat */
-
-#ifdef __KERNEL__
-#include <linux/compiler.h>
-#include <linux/types.h>
-#include <linux/param.h>
-
-#include <asm/timex.h>
-
-/*
- * SHIFT_PLL is used as a dampening factor to define how much we
- * adjust the frequency correction for a given offset in PLL mode.
- * It also used in dampening the offset correction, to define how
- * much of the current value in time_offset we correct for each
- * second. Changing this value changes the stiffness of the ntp
- * adjustment code. A lower value makes it more flexible, reducing
- * NTP convergence time. A higher value makes it stiffer, increasing
- * convergence time, but making the clock more stable.
- *
- * In David Mills' nanokernel reference implementation SHIFT_PLL is 4.
- * However this seems to increase convergence time much too long.
- *
- * https://lists.ntp.org/pipermail/hackers/2008-January/003487.html
- *
- * In the above mailing list discussion, it seems the value of 4
- * was appropriate for other Unix systems with HZ=100, and that
- * SHIFT_PLL should be decreased as HZ increases. However, Linux's
- * clock steering implementation is HZ independent.
- *
- * Through experimentation, a SHIFT_PLL value of 2 was found to allow
- * for fast convergence (very similar to the NTPv3 code used prior to
- * v2.6.19), with good clock stability.
- *
- *
- * SHIFT_FLL is used as a dampening factor to define how much we
- * adjust the frequency correction for a given offset in FLL mode.
- * In David Mills' nanokernel reference implementation SHIFT_FLL is 2.
- *
- * MAXTC establishes the maximum time constant of the PLL.
- */
-#define SHIFT_PLL 2 /* PLL frequency factor (shift) */
-#define SHIFT_FLL 2 /* FLL frequency factor (shift) */
-#define MAXTC 10 /* maximum time constant (shift) */
-
-/*
- * SHIFT_USEC defines the scaling (shift) of the time_freq and
- * time_tolerance variables, which represent the current frequency
- * offset and maximum frequency tolerance.
- */
-#define SHIFT_USEC 16 /* frequency offset scale (shift) */
-#define PPM_SCALE ((s64)NSEC_PER_USEC << (NTP_SCALE_SHIFT - SHIFT_USEC))
-#define PPM_SCALE_INV_SHIFT 19
-#define PPM_SCALE_INV ((1LL << (PPM_SCALE_INV_SHIFT + NTP_SCALE_SHIFT)) / \
- PPM_SCALE + 1)
-
-#define MAXPHASE 500000000L /* max phase error (ns) */
-#define MAXFREQ 500000 /* max frequency error (ns/s) */
-#define MAXFREQ_SCALED ((s64)MAXFREQ << NTP_SCALE_SHIFT)
-#define MINSEC 256 /* min interval between updates (s) */
-#define MAXSEC 2048 /* max interval between updates (s) */
-#define NTP_PHASE_LIMIT ((MAXPHASE / NSEC_PER_USEC) << 5) /* beyond max. dispersion */
-
-/*
- * kernel variables
- * Note: maximum error = NTP synch distance = dispersion + delay / 2;
- * estimated error = NTP dispersion.
- */
-extern unsigned long tick_usec; /* USER_HZ period (usec) */
-extern unsigned long tick_nsec; /* ACTHZ period (nsec) */
-
-extern void ntp_init(void);
-extern void ntp_clear(void);
-
-/* Required to safely shift negative values */
-#define shift_right(x, s) ({ \
- __typeof__(x) __x = (x); \
- __typeof__(s) __s = (s); \
- __x < 0 ? -(-__x >> __s) : __x >> __s; \
-})
-
-#define NTP_SCALE_SHIFT 32
-
-#define NTP_INTERVAL_FREQ (HZ)
-#define NTP_INTERVAL_LENGTH (NSEC_PER_SEC/NTP_INTERVAL_FREQ)
-
-/* Returns how long ticks are at present, in ns / 2^NTP_SCALE_SHIFT. */
-extern u64 ntp_tick_length(void);
-
-extern int second_overflow(unsigned long secs);
-extern int do_adjtimex(struct timex *);
-extern void hardpps(const struct timespec *, const struct timespec *);
-
-int read_current_timer(unsigned long *timer_val);
-
-/* The clock frequency of the i8253/i8254 PIT */
-#define PIT_TICK_RATE 1193182ul
-
-#endif /* KERNEL */
-
-#endif /* LINUX_TIMEX_H */
diff --git a/ANDROID_3.4.5/include/linux/tiocl.h b/ANDROID_3.4.5/include/linux/tiocl.h
deleted file mode 100644
index 4756862c..00000000
--- a/ANDROID_3.4.5/include/linux/tiocl.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef _LINUX_TIOCL_H
-#define _LINUX_TIOCL_H
-
-#define TIOCL_SETSEL 2 /* set a selection */
-#define TIOCL_SELCHAR 0 /* select characters */
-#define TIOCL_SELWORD 1 /* select whole words */
-#define TIOCL_SELLINE 2 /* select whole lines */
-#define TIOCL_SELPOINTER 3 /* show the pointer */
-#define TIOCL_SELCLEAR 4 /* clear visibility of selection */
-#define TIOCL_SELMOUSEREPORT 16 /* report beginning of selection */
-#define TIOCL_SELBUTTONMASK 15 /* button mask for report */
-/* selection extent */
-struct tiocl_selection {
- unsigned short xs; /* X start */
- unsigned short ys; /* Y start */
- unsigned short xe; /* X end */
- unsigned short ye; /* Y end */
- unsigned short sel_mode; /* selection mode */
-};
-
-#define TIOCL_PASTESEL 3 /* paste previous selection */
-#define TIOCL_UNBLANKSCREEN 4 /* unblank screen */
-
-#define TIOCL_SELLOADLUT 5
- /* set characters to be considered alphabetic when selecting */
- /* u32[8] bit array, 4 bytes-aligned with type */
-
-/* these two don't return a value: they write it back in the type */
-#define TIOCL_GETSHIFTSTATE 6 /* write shift state */
-#define TIOCL_GETMOUSEREPORTING 7 /* write whether mouse event are reported */
-#define TIOCL_SETVESABLANK 10 /* set vesa blanking mode */
-#define TIOCL_SETKMSGREDIRECT 11 /* restrict kernel messages to a vt */
-#define TIOCL_GETFGCONSOLE 12 /* get foreground vt */
-#define TIOCL_SCROLLCONSOLE 13 /* scroll console */
-#define TIOCL_BLANKSCREEN 14 /* keep screen blank even if a key is pressed */
-#define TIOCL_BLANKEDSCREEN 15 /* return which vt was blanked */
-#define TIOCL_GETKMSGREDIRECT 17 /* get the vt the kernel messages are restricted to */
-
-#endif /* _LINUX_TIOCL_H */
diff --git a/ANDROID_3.4.5/include/linux/tipc.h b/ANDROID_3.4.5/include/linux/tipc.h
deleted file mode 100644
index f2d90091..00000000
--- a/ANDROID_3.4.5/include/linux/tipc.h
+++ /dev/null
@@ -1,209 +0,0 @@
-/*
- * include/linux/tipc.h: Include file for TIPC socket interface
- *
- * Copyright (c) 2003-2006, Ericsson AB
- * Copyright (c) 2005, 2010-2011, Wind River Systems
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the names of the copyright holders nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") version 2 as published by the Free
- * Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef _LINUX_TIPC_H_
-#define _LINUX_TIPC_H_
-
-#include <linux/types.h>
-
-/*
- * TIPC addressing primitives
- */
-
-struct tipc_portid {
- __u32 ref;
- __u32 node;
-};
-
-struct tipc_name {
- __u32 type;
- __u32 instance;
-};
-
-struct tipc_name_seq {
- __u32 type;
- __u32 lower;
- __u32 upper;
-};
-
-static inline __u32 tipc_addr(unsigned int zone,
- unsigned int cluster,
- unsigned int node)
-{
- return (zone << 24) | (cluster << 12) | node;
-}
-
-static inline unsigned int tipc_zone(__u32 addr)
-{
- return addr >> 24;
-}
-
-static inline unsigned int tipc_cluster(__u32 addr)
-{
- return (addr >> 12) & 0xfff;
-}
-
-static inline unsigned int tipc_node(__u32 addr)
-{
- return addr & 0xfff;
-}
-
-/*
- * Application-accessible port name types
- */
-
-#define TIPC_CFG_SRV 0 /* configuration service name type */
-#define TIPC_TOP_SRV 1 /* topology service name type */
-#define TIPC_RESERVED_TYPES 64 /* lowest user-publishable name type */
-
-/*
- * Publication scopes when binding port names and port name sequences
- */
-
-#define TIPC_ZONE_SCOPE 1
-#define TIPC_CLUSTER_SCOPE 2
-#define TIPC_NODE_SCOPE 3
-
-/*
- * Limiting values for messages
- */
-
-#define TIPC_MAX_USER_MSG_SIZE 66000U
-
-/*
- * Message importance levels
- */
-
-#define TIPC_LOW_IMPORTANCE 0
-#define TIPC_MEDIUM_IMPORTANCE 1
-#define TIPC_HIGH_IMPORTANCE 2
-#define TIPC_CRITICAL_IMPORTANCE 3
-
-/*
- * Msg rejection/connection shutdown reasons
- */
-
-#define TIPC_OK 0
-#define TIPC_ERR_NO_NAME 1
-#define TIPC_ERR_NO_PORT 2
-#define TIPC_ERR_NO_NODE 3
-#define TIPC_ERR_OVERLOAD 4
-#define TIPC_CONN_SHUTDOWN 5
-
-/*
- * TIPC topology subscription service definitions
- */
-
-#define TIPC_SUB_PORTS 0x01 /* filter for port availability */
-#define TIPC_SUB_SERVICE 0x02 /* filter for service availability */
-#define TIPC_SUB_CANCEL 0x04 /* cancel a subscription */
-
-#define TIPC_WAIT_FOREVER (~0) /* timeout for permanent subscription */
-
-struct tipc_subscr {
- struct tipc_name_seq seq; /* name sequence of interest */
- __u32 timeout; /* subscription duration (in ms) */
- __u32 filter; /* bitmask of filter options */
- char usr_handle[8]; /* available for subscriber use */
-};
-
-#define TIPC_PUBLISHED 1 /* publication event */
-#define TIPC_WITHDRAWN 2 /* withdraw event */
-#define TIPC_SUBSCR_TIMEOUT 3 /* subscription timeout event */
-
-struct tipc_event {
- __u32 event; /* event type */
- __u32 found_lower; /* matching name seq instances */
- __u32 found_upper; /* " " " " */
- struct tipc_portid port; /* associated port */
- struct tipc_subscr s; /* associated subscription */
-};
-
-/*
- * Socket API
- */
-
-#ifndef AF_TIPC
-#define AF_TIPC 30
-#endif
-
-#ifndef PF_TIPC
-#define PF_TIPC AF_TIPC
-#endif
-
-#ifndef SOL_TIPC
-#define SOL_TIPC 271
-#endif
-
-#define TIPC_ADDR_NAMESEQ 1
-#define TIPC_ADDR_MCAST 1
-#define TIPC_ADDR_NAME 2
-#define TIPC_ADDR_ID 3
-
-struct sockaddr_tipc {
- unsigned short family;
- unsigned char addrtype;
- signed char scope;
- union {
- struct tipc_portid id;
- struct tipc_name_seq nameseq;
- struct {
- struct tipc_name name;
- __u32 domain;
- } name;
- } addr;
-};
-
-/*
- * Ancillary data objects supported by recvmsg()
- */
-
-#define TIPC_ERRINFO 1 /* error info */
-#define TIPC_RETDATA 2 /* returned data */
-#define TIPC_DESTNAME 3 /* destination name */
-
-/*
- * TIPC-specific socket option values
- */
-
-#define TIPC_IMPORTANCE 127 /* Default: TIPC_LOW_IMPORTANCE */
-#define TIPC_SRC_DROPPABLE 128 /* Default: based on socket type */
-#define TIPC_DEST_DROPPABLE 129 /* Default: based on socket type */
-#define TIPC_CONN_TIMEOUT 130 /* Default: 8000 (ms) */
-#define TIPC_NODE_RECVQ_DEPTH 131 /* Default: none (read only) */
-#define TIPC_SOCK_RECVQ_DEPTH 132 /* Default: none (read only) */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/tipc_config.h b/ANDROID_3.4.5/include/linux/tipc_config.h
deleted file mode 100644
index 9730b0e5..00000000
--- a/ANDROID_3.4.5/include/linux/tipc_config.h
+++ /dev/null
@@ -1,395 +0,0 @@
-/*
- * include/linux/tipc_config.h: Include file for TIPC configuration interface
- *
- * Copyright (c) 2003-2006, Ericsson AB
- * Copyright (c) 2005-2007, 2010-2011, Wind River Systems
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the names of the copyright holders nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") version 2 as published by the Free
- * Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef _LINUX_TIPC_CONFIG_H_
-#define _LINUX_TIPC_CONFIG_H_
-
-#include <linux/types.h>
-#include <linux/string.h>
-#include <asm/byteorder.h>
-
-#ifndef __KERNEL__
-#include <arpa/inet.h> /* for ntohs etc. */
-#endif
-
-/*
- * Configuration
- *
- * All configuration management messaging involves sending a request message
- * to the TIPC configuration service on a node, which sends a reply message
- * back. (In the future multi-message replies may be supported.)
- *
- * Both request and reply messages consist of a transport header and payload.
- * The transport header contains info about the desired operation;
- * the payload consists of zero or more type/length/value (TLV) items
- * which specify parameters or results for the operation.
- *
- * For many operations, the request and reply messages have a fixed number
- * of TLVs (usually zero or one); however, some reply messages may return
- * a variable number of TLVs. A failed request is denoted by the presence
- * of an "error string" TLV in the reply message instead of the TLV(s) the
- * reply should contain if the request succeeds.
- */
-
-/*
- * Public commands:
- * May be issued by any process.
- * Accepted by own node, or by remote node only if remote management enabled.
- */
-
-#define TIPC_CMD_NOOP 0x0000 /* tx none, rx none */
-#define TIPC_CMD_GET_NODES 0x0001 /* tx net_addr, rx node_info(s) */
-#define TIPC_CMD_GET_MEDIA_NAMES 0x0002 /* tx none, rx media_name(s) */
-#define TIPC_CMD_GET_BEARER_NAMES 0x0003 /* tx none, rx bearer_name(s) */
-#define TIPC_CMD_GET_LINKS 0x0004 /* tx net_addr, rx link_info(s) */
-#define TIPC_CMD_SHOW_NAME_TABLE 0x0005 /* tx name_tbl_query, rx ultra_string */
-#define TIPC_CMD_SHOW_PORTS 0x0006 /* tx none, rx ultra_string */
-#define TIPC_CMD_SHOW_LINK_STATS 0x000B /* tx link_name, rx ultra_string */
-#define TIPC_CMD_SHOW_STATS 0x000F /* tx unsigned, rx ultra_string */
-
-/*
- * Protected commands:
- * May only be issued by "network administration capable" process.
- * Accepted by own node, or by remote node only if remote management enabled
- * and this node is zone manager.
- */
-
-#define TIPC_CMD_GET_REMOTE_MNG 0x4003 /* tx none, rx unsigned */
-#define TIPC_CMD_GET_MAX_PORTS 0x4004 /* tx none, rx unsigned */
-#define TIPC_CMD_GET_MAX_PUBL 0x4005 /* tx none, rx unsigned */
-#define TIPC_CMD_GET_MAX_SUBSCR 0x4006 /* tx none, rx unsigned */
-#define TIPC_CMD_GET_MAX_ZONES 0x4007 /* obsoleted */
-#define TIPC_CMD_GET_MAX_CLUSTERS 0x4008 /* obsoleted */
-#define TIPC_CMD_GET_MAX_NODES 0x4009 /* obsoleted */
-#define TIPC_CMD_GET_MAX_SLAVES 0x400A /* obsoleted */
-#define TIPC_CMD_GET_NETID 0x400B /* tx none, rx unsigned */
-
-#define TIPC_CMD_ENABLE_BEARER 0x4101 /* tx bearer_config, rx none */
-#define TIPC_CMD_DISABLE_BEARER 0x4102 /* tx bearer_name, rx none */
-#define TIPC_CMD_SET_LINK_TOL 0x4107 /* tx link_config, rx none */
-#define TIPC_CMD_SET_LINK_PRI 0x4108 /* tx link_config, rx none */
-#define TIPC_CMD_SET_LINK_WINDOW 0x4109 /* tx link_config, rx none */
-#define TIPC_CMD_SET_LOG_SIZE 0x410A /* tx unsigned, rx none */
-#define TIPC_CMD_DUMP_LOG 0x410B /* tx none, rx ultra_string */
-#define TIPC_CMD_RESET_LINK_STATS 0x410C /* tx link_name, rx none */
-
-/*
- * Private commands:
- * May only be issued by "network administration capable" process.
- * Accepted by own node only; cannot be used on a remote node.
- */
-
-#define TIPC_CMD_SET_NODE_ADDR 0x8001 /* tx net_addr, rx none */
-#define TIPC_CMD_SET_REMOTE_MNG 0x8003 /* tx unsigned, rx none */
-#define TIPC_CMD_SET_MAX_PORTS 0x8004 /* tx unsigned, rx none */
-#define TIPC_CMD_SET_MAX_PUBL 0x8005 /* tx unsigned, rx none */
-#define TIPC_CMD_SET_MAX_SUBSCR 0x8006 /* tx unsigned, rx none */
-#define TIPC_CMD_SET_MAX_ZONES 0x8007 /* obsoleted */
-#define TIPC_CMD_SET_MAX_CLUSTERS 0x8008 /* obsoleted */
-#define TIPC_CMD_SET_MAX_NODES 0x8009 /* obsoleted */
-#define TIPC_CMD_SET_MAX_SLAVES 0x800A /* obsoleted */
-#define TIPC_CMD_SET_NETID 0x800B /* tx unsigned, rx none */
-
-/*
- * Reserved commands:
- * May not be issued by any process.
- * Used internally by TIPC.
- */
-
-#define TIPC_CMD_NOT_NET_ADMIN 0xC001 /* tx none, rx none */
-
-/*
- * TLV types defined for TIPC
- */
-
-#define TIPC_TLV_NONE 0 /* no TLV present */
-#define TIPC_TLV_VOID 1 /* empty TLV (0 data bytes)*/
-#define TIPC_TLV_UNSIGNED 2 /* 32-bit integer */
-#define TIPC_TLV_STRING 3 /* char[128] (max) */
-#define TIPC_TLV_LARGE_STRING 4 /* char[2048] (max) */
-#define TIPC_TLV_ULTRA_STRING 5 /* char[32768] (max) */
-
-#define TIPC_TLV_ERROR_STRING 16 /* char[128] containing "error code" */
-#define TIPC_TLV_NET_ADDR 17 /* 32-bit integer denoting <Z.C.N> */
-#define TIPC_TLV_MEDIA_NAME 18 /* char[TIPC_MAX_MEDIA_NAME] */
-#define TIPC_TLV_BEARER_NAME 19 /* char[TIPC_MAX_BEARER_NAME] */
-#define TIPC_TLV_LINK_NAME 20 /* char[TIPC_MAX_LINK_NAME] */
-#define TIPC_TLV_NODE_INFO 21 /* struct tipc_node_info */
-#define TIPC_TLV_LINK_INFO 22 /* struct tipc_link_info */
-#define TIPC_TLV_BEARER_CONFIG 23 /* struct tipc_bearer_config */
-#define TIPC_TLV_LINK_CONFIG 24 /* struct tipc_link_config */
-#define TIPC_TLV_NAME_TBL_QUERY 25 /* struct tipc_name_table_query */
-#define TIPC_TLV_PORT_REF 26 /* 32-bit port reference */
-
-/*
- * Maximum sizes of TIPC bearer-related names (including terminating NUL)
- */
-
-#define TIPC_MAX_MEDIA_NAME 16 /* format = media */
-#define TIPC_MAX_IF_NAME 16 /* format = interface */
-#define TIPC_MAX_BEARER_NAME 32 /* format = media:interface */
-#define TIPC_MAX_LINK_NAME 60 /* format = Z.C.N:interface-Z.C.N:interface */
-
-/*
- * Link priority limits (min, default, max, media default)
- */
-
-#define TIPC_MIN_LINK_PRI 0
-#define TIPC_DEF_LINK_PRI 10
-#define TIPC_MAX_LINK_PRI 31
-#define TIPC_MEDIA_LINK_PRI (TIPC_MAX_LINK_PRI + 1)
-
-/*
- * Link tolerance limits (min, default, max), in ms
- */
-
-#define TIPC_MIN_LINK_TOL 50
-#define TIPC_DEF_LINK_TOL 1500
-#define TIPC_MAX_LINK_TOL 30000
-
-#if (TIPC_MIN_LINK_TOL < 16)
-#error "TIPC_MIN_LINK_TOL is too small (abort limit may be NaN)"
-#endif
-
-/*
- * Link window limits (min, default, max), in packets
- */
-
-#define TIPC_MIN_LINK_WIN 16
-#define TIPC_DEF_LINK_WIN 50
-#define TIPC_MAX_LINK_WIN 150
-
-
-struct tipc_node_info {
- __be32 addr; /* network address of node */
- __be32 up; /* 0=down, 1= up */
-};
-
-struct tipc_link_info {
- __be32 dest; /* network address of peer node */
- __be32 up; /* 0=down, 1=up */
- char str[TIPC_MAX_LINK_NAME]; /* link name */
-};
-
-struct tipc_bearer_config {
- __be32 priority; /* Range [1,31]. Override per link */
- __be32 disc_domain; /* <Z.C.N> describing desired nodes */
- char name[TIPC_MAX_BEARER_NAME];
-};
-
-struct tipc_link_config {
- __be32 value;
- char name[TIPC_MAX_LINK_NAME];
-};
-
-#define TIPC_NTQ_ALLTYPES 0x80000000
-
-struct tipc_name_table_query {
- __be32 depth; /* 1:type, 2:+name info, 3:+port info, 4+:+debug info */
- __be32 type; /* {t,l,u} info ignored if high bit of "depth" is set */
- __be32 lowbound; /* (i.e. displays all entries of name table) */
- __be32 upbound;
-};
-
-/*
- * The error string TLV is a null-terminated string describing the cause
- * of the request failure. To simplify error processing (and to save space)
- * the first character of the string can be a special error code character
- * (lying by the range 0x80 to 0xFF) which represents a pre-defined reason.
- */
-
-#define TIPC_CFG_TLV_ERROR "\x80" /* request contains incorrect TLV(s) */
-#define TIPC_CFG_NOT_NET_ADMIN "\x81" /* must be network administrator */
-#define TIPC_CFG_NOT_ZONE_MSTR "\x82" /* must be zone master */
-#define TIPC_CFG_NO_REMOTE "\x83" /* remote management not enabled */
-#define TIPC_CFG_NOT_SUPPORTED "\x84" /* request is not supported by TIPC */
-#define TIPC_CFG_INVALID_VALUE "\x85" /* request has invalid argument value */
-
-/*
- * A TLV consists of a descriptor, followed by the TLV value.
- * TLV descriptor fields are stored in network byte order;
- * TLV values must also be stored in network byte order (where applicable).
- * TLV descriptors must be aligned to addresses which are multiple of 4,
- * so up to 3 bytes of padding may exist at the end of the TLV value area.
- * There must not be any padding between the TLV descriptor and its value.
- */
-
-struct tlv_desc {
- __be16 tlv_len; /* TLV length (descriptor + value) */
- __be16 tlv_type; /* TLV identifier */
-};
-
-#define TLV_ALIGNTO 4
-
-#define TLV_ALIGN(datalen) (((datalen)+(TLV_ALIGNTO-1)) & ~(TLV_ALIGNTO-1))
-#define TLV_LENGTH(datalen) (sizeof(struct tlv_desc) + (datalen))
-#define TLV_SPACE(datalen) (TLV_ALIGN(TLV_LENGTH(datalen)))
-#define TLV_DATA(tlv) ((void *)((char *)(tlv) + TLV_LENGTH(0)))
-
-static inline int TLV_OK(const void *tlv, __u16 space)
-{
- /*
- * Would also like to check that "tlv" is a multiple of 4,
- * but don't know how to do this in a portable way.
- * - Tried doing (!(tlv & (TLV_ALIGNTO-1))), but GCC compiler
- * won't allow binary "&" with a pointer.
- * - Tried casting "tlv" to integer type, but causes warning about size
- * mismatch when pointer is bigger than chosen type (int, long, ...).
- */
-
- return (space >= TLV_SPACE(0)) &&
- (ntohs(((struct tlv_desc *)tlv)->tlv_len) <= space);
-}
-
-static inline int TLV_CHECK(const void *tlv, __u16 space, __u16 exp_type)
-{
- return TLV_OK(tlv, space) &&
- (ntohs(((struct tlv_desc *)tlv)->tlv_type) == exp_type);
-}
-
-static inline int TLV_SET(void *tlv, __u16 type, void *data, __u16 len)
-{
- struct tlv_desc *tlv_ptr;
- int tlv_len;
-
- tlv_len = TLV_LENGTH(len);
- tlv_ptr = (struct tlv_desc *)tlv;
- tlv_ptr->tlv_type = htons(type);
- tlv_ptr->tlv_len = htons(tlv_len);
- if (len && data)
- memcpy(TLV_DATA(tlv_ptr), data, tlv_len);
- return TLV_SPACE(len);
-}
-
-/*
- * A TLV list descriptor simplifies processing of messages
- * containing multiple TLVs.
- */
-
-struct tlv_list_desc {
- struct tlv_desc *tlv_ptr; /* ptr to current TLV */
- __u32 tlv_space; /* # bytes from curr TLV to list end */
-};
-
-static inline void TLV_LIST_INIT(struct tlv_list_desc *list,
- void *data, __u32 space)
-{
- list->tlv_ptr = (struct tlv_desc *)data;
- list->tlv_space = space;
-}
-
-static inline int TLV_LIST_EMPTY(struct tlv_list_desc *list)
-{
- return (list->tlv_space == 0);
-}
-
-static inline int TLV_LIST_CHECK(struct tlv_list_desc *list, __u16 exp_type)
-{
- return TLV_CHECK(list->tlv_ptr, list->tlv_space, exp_type);
-}
-
-static inline void *TLV_LIST_DATA(struct tlv_list_desc *list)
-{
- return TLV_DATA(list->tlv_ptr);
-}
-
-static inline void TLV_LIST_STEP(struct tlv_list_desc *list)
-{
- __u16 tlv_space = TLV_ALIGN(ntohs(list->tlv_ptr->tlv_len));
-
- list->tlv_ptr = (struct tlv_desc *)((char *)list->tlv_ptr + tlv_space);
- list->tlv_space -= tlv_space;
-}
-
-/*
- * Configuration messages exchanged via NETLINK_GENERIC use the following
- * family id, name, version and command.
- */
-#define TIPC_GENL_NAME "TIPC"
-#define TIPC_GENL_VERSION 0x1
-#define TIPC_GENL_CMD 0x1
-
-/*
- * TIPC specific header used in NETLINK_GENERIC requests.
- */
-struct tipc_genlmsghdr {
- __u32 dest; /* Destination address */
- __u16 cmd; /* Command */
- __u16 reserved; /* Unused */
-};
-
-#define TIPC_GENL_HDRLEN NLMSG_ALIGN(sizeof(struct tipc_genlmsghdr))
-
-/*
- * Configuration messages exchanged via TIPC sockets use the TIPC configuration
- * message header, which is defined below. This structure is analogous
- * to the Netlink message header, but fields are stored in network byte order
- * and no padding is permitted between the header and the message data
- * that follows.
- */
-
-struct tipc_cfg_msg_hdr {
- __be32 tcm_len; /* Message length (including header) */
- __be16 tcm_type; /* Command type */
- __be16 tcm_flags; /* Additional flags */
- char tcm_reserved[8]; /* Unused */
-};
-
-#define TCM_F_REQUEST 0x1 /* Flag: Request message */
-#define TCM_F_MORE 0x2 /* Flag: Message to be continued */
-
-#define TCM_ALIGN(datalen) (((datalen)+3) & ~3)
-#define TCM_LENGTH(datalen) (sizeof(struct tipc_cfg_msg_hdr) + datalen)
-#define TCM_SPACE(datalen) (TCM_ALIGN(TCM_LENGTH(datalen)))
-#define TCM_DATA(tcm_hdr) ((void *)((char *)(tcm_hdr) + TCM_LENGTH(0)))
-
-static inline int TCM_SET(void *msg, __u16 cmd, __u16 flags,
- void *data, __u16 data_len)
-{
- struct tipc_cfg_msg_hdr *tcm_hdr;
- int msg_len;
-
- msg_len = TCM_LENGTH(data_len);
- tcm_hdr = (struct tipc_cfg_msg_hdr *)msg;
- tcm_hdr->tcm_len = htonl(msg_len);
- tcm_hdr->tcm_type = htons(cmd);
- tcm_hdr->tcm_flags = htons(flags);
- if (data_len && data)
- memcpy(TCM_DATA(msg), data, data_len);
- return TCM_SPACE(data_len);
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/topology.h b/ANDROID_3.4.5/include/linux/topology.h
deleted file mode 100644
index e26db031..00000000
--- a/ANDROID_3.4.5/include/linux/topology.h
+++ /dev/null
@@ -1,335 +0,0 @@
-/*
- * include/linux/topology.h
- *
- * Written by: Matthew Dobson, IBM Corporation
- *
- * Copyright (C) 2002, IBM Corp.
- *
- * 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, GOOD TITLE or
- * NON INFRINGEMENT. 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.
- *
- * Send feedback to <colpatch@us.ibm.com>
- */
-#ifndef _LINUX_TOPOLOGY_H
-#define _LINUX_TOPOLOGY_H
-
-#include <linux/cpumask.h>
-#include <linux/bitops.h>
-#include <linux/mmzone.h>
-#include <linux/smp.h>
-#include <linux/percpu.h>
-#include <asm/topology.h>
-
-#ifndef node_has_online_mem
-#define node_has_online_mem(nid) (1)
-#endif
-
-#ifndef nr_cpus_node
-#define nr_cpus_node(node) cpumask_weight(cpumask_of_node(node))
-#endif
-
-#define for_each_node_with_cpus(node) \
- for_each_online_node(node) \
- if (nr_cpus_node(node))
-
-int arch_update_cpu_topology(void);
-
-/* Conform to ACPI 2.0 SLIT distance definitions */
-#define LOCAL_DISTANCE 10
-#define REMOTE_DISTANCE 20
-#ifndef node_distance
-#define node_distance(from,to) ((from) == (to) ? LOCAL_DISTANCE : REMOTE_DISTANCE)
-#endif
-#ifndef RECLAIM_DISTANCE
-/*
- * If the distance between nodes in a system is larger than RECLAIM_DISTANCE
- * (in whatever arch specific measurement units returned by node_distance())
- * then switch on zone reclaim on boot.
- */
-#define RECLAIM_DISTANCE 30
-#endif
-#ifndef PENALTY_FOR_NODE_WITH_CPUS
-#define PENALTY_FOR_NODE_WITH_CPUS (1)
-#endif
-
-/*
- * Below are the 3 major initializers used in building sched_domains:
- * SD_SIBLING_INIT, for SMT domains
- * SD_CPU_INIT, for SMP domains
- * SD_NODE_INIT, for NUMA domains
- *
- * Any architecture that cares to do any tuning to these values should do so
- * by defining their own arch-specific initializer in include/asm/topology.h.
- * A definition there will automagically override these default initializers
- * and allow arch-specific performance tuning of sched_domains.
- * (Only non-zero and non-null fields need be specified.)
- */
-
-#ifdef CONFIG_SCHED_SMT
-/* MCD - Do we really need this? It is always on if CONFIG_SCHED_SMT is,
- * so can't we drop this in favor of CONFIG_SCHED_SMT?
- */
-#define ARCH_HAS_SCHED_WAKE_IDLE
-/* Common values for SMT siblings */
-#ifndef SD_SIBLING_INIT
-#define SD_SIBLING_INIT (struct sched_domain) { \
- .min_interval = 1, \
- .max_interval = 2, \
- .busy_factor = 64, \
- .imbalance_pct = 110, \
- \
- .flags = 1*SD_LOAD_BALANCE \
- | 1*SD_BALANCE_NEWIDLE \
- | 1*SD_BALANCE_EXEC \
- | 1*SD_BALANCE_FORK \
- | 0*SD_BALANCE_WAKE \
- | 1*SD_WAKE_AFFINE \
- | 1*SD_SHARE_CPUPOWER \
- | 0*SD_POWERSAVINGS_BALANCE \
- | 1*SD_SHARE_PKG_RESOURCES \
- | 0*SD_SERIALIZE \
- | 0*SD_PREFER_SIBLING \
- | arch_sd_sibling_asym_packing() \
- , \
- .last_balance = jiffies, \
- .balance_interval = 1, \
- .smt_gain = 1178, /* 15% */ \
-}
-#endif
-#endif /* CONFIG_SCHED_SMT */
-
-#ifdef CONFIG_SCHED_MC
-/* Common values for MC siblings. for now mostly derived from SD_CPU_INIT */
-#ifndef SD_MC_INIT
-#define SD_MC_INIT (struct sched_domain) { \
- .min_interval = 1, \
- .max_interval = 4, \
- .busy_factor = 64, \
- .imbalance_pct = 125, \
- .cache_nice_tries = 1, \
- .busy_idx = 2, \
- .wake_idx = 0, \
- .forkexec_idx = 0, \
- \
- .flags = 1*SD_LOAD_BALANCE \
- | 1*SD_BALANCE_NEWIDLE \
- | 1*SD_BALANCE_EXEC \
- | 1*SD_BALANCE_FORK \
- | 0*SD_BALANCE_WAKE \
- | 1*SD_WAKE_AFFINE \
- | 0*SD_PREFER_LOCAL \
- | 0*SD_SHARE_CPUPOWER \
- | 1*SD_SHARE_PKG_RESOURCES \
- | 0*SD_SERIALIZE \
- | sd_balance_for_mc_power() \
- | sd_power_saving_flags() \
- , \
- .last_balance = jiffies, \
- .balance_interval = 1, \
-}
-#endif
-#endif /* CONFIG_SCHED_MC */
-
-/* Common values for CPUs */
-#ifndef SD_CPU_INIT
-#define SD_CPU_INIT (struct sched_domain) { \
- .min_interval = 1, \
- .max_interval = 4, \
- .busy_factor = 64, \
- .imbalance_pct = 125, \
- .cache_nice_tries = 1, \
- .busy_idx = 2, \
- .idle_idx = 1, \
- .newidle_idx = 0, \
- .wake_idx = 0, \
- .forkexec_idx = 0, \
- \
- .flags = 1*SD_LOAD_BALANCE \
- | 1*SD_BALANCE_NEWIDLE \
- | 1*SD_BALANCE_EXEC \
- | 1*SD_BALANCE_FORK \
- | 0*SD_BALANCE_WAKE \
- | 1*SD_WAKE_AFFINE \
- | 0*SD_PREFER_LOCAL \
- | 0*SD_SHARE_CPUPOWER \
- | 0*SD_SHARE_PKG_RESOURCES \
- | 0*SD_SERIALIZE \
- | sd_balance_for_package_power() \
- | sd_power_saving_flags() \
- , \
- .last_balance = jiffies, \
- .balance_interval = 1, \
-}
-#endif
-
-/* sched_domains SD_ALLNODES_INIT for NUMA machines */
-#define SD_ALLNODES_INIT (struct sched_domain) { \
- .min_interval = 64, \
- .max_interval = 64*num_online_cpus(), \
- .busy_factor = 128, \
- .imbalance_pct = 133, \
- .cache_nice_tries = 1, \
- .busy_idx = 3, \
- .idle_idx = 3, \
- .flags = 1*SD_LOAD_BALANCE \
- | 1*SD_BALANCE_NEWIDLE \
- | 0*SD_BALANCE_EXEC \
- | 0*SD_BALANCE_FORK \
- | 0*SD_BALANCE_WAKE \
- | 0*SD_WAKE_AFFINE \
- | 0*SD_SHARE_CPUPOWER \
- | 0*SD_POWERSAVINGS_BALANCE \
- | 0*SD_SHARE_PKG_RESOURCES \
- | 1*SD_SERIALIZE \
- | 0*SD_PREFER_SIBLING \
- , \
- .last_balance = jiffies, \
- .balance_interval = 64, \
-}
-
-#ifndef SD_NODES_PER_DOMAIN
-#define SD_NODES_PER_DOMAIN 16
-#endif
-
-#ifdef CONFIG_SCHED_BOOK
-#ifndef SD_BOOK_INIT
-#error Please define an appropriate SD_BOOK_INIT in include/asm/topology.h!!!
-#endif
-#endif /* CONFIG_SCHED_BOOK */
-
-#ifdef CONFIG_NUMA
-#ifndef SD_NODE_INIT
-#error Please define an appropriate SD_NODE_INIT in include/asm/topology.h!!!
-#endif
-
-#endif /* CONFIG_NUMA */
-
-#ifdef CONFIG_USE_PERCPU_NUMA_NODE_ID
-DECLARE_PER_CPU(int, numa_node);
-
-#ifndef numa_node_id
-/* Returns the number of the current Node. */
-static inline int numa_node_id(void)
-{
- return __this_cpu_read(numa_node);
-}
-#endif
-
-#ifndef cpu_to_node
-static inline int cpu_to_node(int cpu)
-{
- return per_cpu(numa_node, cpu);
-}
-#endif
-
-#ifndef set_numa_node
-static inline void set_numa_node(int node)
-{
- percpu_write(numa_node, node);
-}
-#endif
-
-#ifndef set_cpu_numa_node
-static inline void set_cpu_numa_node(int cpu, int node)
-{
- per_cpu(numa_node, cpu) = node;
-}
-#endif
-
-#else /* !CONFIG_USE_PERCPU_NUMA_NODE_ID */
-
-/* Returns the number of the current Node. */
-#ifndef numa_node_id
-static inline int numa_node_id(void)
-{
- return cpu_to_node(raw_smp_processor_id());
-}
-#endif
-
-#endif /* [!]CONFIG_USE_PERCPU_NUMA_NODE_ID */
-
-#ifdef CONFIG_HAVE_MEMORYLESS_NODES
-
-/*
- * N.B., Do NOT reference the '_numa_mem_' per cpu variable directly.
- * It will not be defined when CONFIG_HAVE_MEMORYLESS_NODES is not defined.
- * Use the accessor functions set_numa_mem(), numa_mem_id() and cpu_to_mem().
- */
-DECLARE_PER_CPU(int, _numa_mem_);
-
-#ifndef set_numa_mem
-static inline void set_numa_mem(int node)
-{
- percpu_write(_numa_mem_, node);
-}
-#endif
-
-#ifndef numa_mem_id
-/* Returns the number of the nearest Node with memory */
-static inline int numa_mem_id(void)
-{
- return __this_cpu_read(_numa_mem_);
-}
-#endif
-
-#ifndef cpu_to_mem
-static inline int cpu_to_mem(int cpu)
-{
- return per_cpu(_numa_mem_, cpu);
-}
-#endif
-
-#ifndef set_cpu_numa_mem
-static inline void set_cpu_numa_mem(int cpu, int node)
-{
- per_cpu(_numa_mem_, cpu) = node;
-}
-#endif
-
-#else /* !CONFIG_HAVE_MEMORYLESS_NODES */
-
-#ifndef numa_mem_id
-/* Returns the number of the nearest Node with memory */
-static inline int numa_mem_id(void)
-{
- return numa_node_id();
-}
-#endif
-
-#ifndef cpu_to_mem
-static inline int cpu_to_mem(int cpu)
-{
- return cpu_to_node(cpu);
-}
-#endif
-
-#endif /* [!]CONFIG_HAVE_MEMORYLESS_NODES */
-
-#ifndef topology_physical_package_id
-#define topology_physical_package_id(cpu) ((void)(cpu), -1)
-#endif
-#ifndef topology_core_id
-#define topology_core_id(cpu) ((void)(cpu), 0)
-#endif
-#ifndef topology_thread_cpumask
-#define topology_thread_cpumask(cpu) cpumask_of(cpu)
-#endif
-#ifndef topology_core_cpumask
-#define topology_core_cpumask(cpu) cpumask_of(cpu)
-#endif
-
-#endif /* _LINUX_TOPOLOGY_H */
diff --git a/ANDROID_3.4.5/include/linux/toshiba.h b/ANDROID_3.4.5/include/linux/toshiba.h
deleted file mode 100644
index 772dedbc..00000000
--- a/ANDROID_3.4.5/include/linux/toshiba.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* toshiba.h -- Linux driver for accessing the SMM on Toshiba laptops
- *
- * Copyright (c) 1996-2000 Jonathan A. Buzzard (jonathan@buzzard.org.uk)
- *
- * Thanks to Juergen Heinzl <juergen@monocerus.demon.co.uk> for the pointers
- * on making sure the structure is aligned and packed.
- *
- * 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.
- *
- */
-
-#ifndef _LINUX_TOSHIBA_H
-#define _LINUX_TOSHIBA_H
-
-#define TOSH_PROC "/proc/toshiba"
-#define TOSH_DEVICE "/dev/toshiba"
-#define TOSH_SMM _IOWR('t', 0x90, int) /* broken: meant 24 bytes */
-
-typedef struct {
- unsigned int eax;
- unsigned int ebx __attribute__ ((packed));
- unsigned int ecx __attribute__ ((packed));
- unsigned int edx __attribute__ ((packed));
- unsigned int esi __attribute__ ((packed));
- unsigned int edi __attribute__ ((packed));
-} SMMRegisters;
-
-#ifdef __KERNEL__
-int tosh_smm(SMMRegisters *regs);
-#endif /* __KERNEL__ */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/tpm.h b/ANDROID_3.4.5/include/linux/tpm.h
deleted file mode 100644
index fdc718ab..00000000
--- a/ANDROID_3.4.5/include/linux/tpm.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2004,2007,2008 IBM Corporation
- *
- * Authors:
- * Leendert van Doorn <leendert@watson.ibm.com>
- * Dave Safford <safford@watson.ibm.com>
- * Reiner Sailer <sailer@watson.ibm.com>
- * Kylene Hall <kjhall@us.ibm.com>
- * Debora Velarde <dvelarde@us.ibm.com>
- *
- * Maintained by: <tpmdd_devel@lists.sourceforge.net>
- *
- * Device driver for TCG/TCPA TPM (trusted platform module).
- * Specifications at www.trustedcomputinggroup.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, version 2 of the
- * License.
- *
- */
-#ifndef __LINUX_TPM_H__
-#define __LINUX_TPM_H__
-
-/*
- * Chip num is this value or a valid tpm idx
- */
-#define TPM_ANY_NUM 0xFFFF
-
-#if defined(CONFIG_TCG_TPM) || defined(CONFIG_TCG_TPM_MODULE)
-
-extern int tpm_pcr_read(u32 chip_num, int pcr_idx, u8 *res_buf);
-extern int tpm_pcr_extend(u32 chip_num, int pcr_idx, const u8 *hash);
-extern int tpm_send(u32 chip_num, void *cmd, size_t buflen);
-#else
-static inline int tpm_pcr_read(u32 chip_num, int pcr_idx, u8 *res_buf) {
- return -ENODEV;
-}
-static inline int tpm_pcr_extend(u32 chip_num, int pcr_idx, const u8 *hash) {
- return -ENODEV;
-}
-static inline int tpm_send(u32 chip_num, void *cmd, size_t buflen) {
- return -ENODEV;
-}
-#endif
-#endif
diff --git a/ANDROID_3.4.5/include/linux/tpm_command.h b/ANDROID_3.4.5/include/linux/tpm_command.h
deleted file mode 100644
index 727512e2..00000000
--- a/ANDROID_3.4.5/include/linux/tpm_command.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef __LINUX_TPM_COMMAND_H__
-#define __LINUX_TPM_COMMAND_H__
-
-/*
- * TPM Command constants from specifications at
- * http://www.trustedcomputinggroup.org
- */
-
-/* Command TAGS */
-#define TPM_TAG_RQU_COMMAND 193
-#define TPM_TAG_RQU_AUTH1_COMMAND 194
-#define TPM_TAG_RQU_AUTH2_COMMAND 195
-#define TPM_TAG_RSP_COMMAND 196
-#define TPM_TAG_RSP_AUTH1_COMMAND 197
-#define TPM_TAG_RSP_AUTH2_COMMAND 198
-
-/* Command Ordinals */
-#define TPM_ORD_GETRANDOM 70
-#define TPM_ORD_OSAP 11
-#define TPM_ORD_OIAP 10
-#define TPM_ORD_SEAL 23
-#define TPM_ORD_UNSEAL 24
-
-/* Other constants */
-#define SRKHANDLE 0x40000000
-#define TPM_NONCE_SIZE 20
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/trace_clock.h b/ANDROID_3.4.5/include/linux/trace_clock.h
deleted file mode 100644
index 4eb49023..00000000
--- a/ANDROID_3.4.5/include/linux/trace_clock.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef _LINUX_TRACE_CLOCK_H
-#define _LINUX_TRACE_CLOCK_H
-
-/*
- * 3 trace clock variants, with differing scalability/precision
- * tradeoffs:
- *
- * - local: CPU-local trace clock
- * - medium: scalable global clock with some jitter
- * - global: globally monotonic, serialized clock
- */
-#include <linux/compiler.h>
-#include <linux/types.h>
-
-extern u64 notrace trace_clock_local(void);
-extern u64 notrace trace_clock(void);
-extern u64 notrace trace_clock_global(void);
-extern u64 notrace trace_clock_counter(void);
-
-#endif /* _LINUX_TRACE_CLOCK_H */
diff --git a/ANDROID_3.4.5/include/linux/trace_seq.h b/ANDROID_3.4.5/include/linux/trace_seq.h
deleted file mode 100644
index a32d86ec..00000000
--- a/ANDROID_3.4.5/include/linux/trace_seq.h
+++ /dev/null
@@ -1,97 +0,0 @@
-#ifndef _LINUX_TRACE_SEQ_H
-#define _LINUX_TRACE_SEQ_H
-
-#include <linux/fs.h>
-
-#include <asm/page.h>
-
-/*
- * Trace sequences are used to allow a function to call several other functions
- * to create a string of data to use (up to a max of PAGE_SIZE).
- */
-
-struct trace_seq {
- unsigned char buffer[PAGE_SIZE];
- unsigned int len;
- unsigned int readpos;
- int full;
-};
-
-static inline void
-trace_seq_init(struct trace_seq *s)
-{
- s->len = 0;
- s->readpos = 0;
- s->full = 0;
-}
-
-/*
- * Currently only defined when tracing is enabled.
- */
-#ifdef CONFIG_TRACING
-extern __printf(2, 3)
-int trace_seq_printf(struct trace_seq *s, const char *fmt, ...);
-extern __printf(2, 0)
-int trace_seq_vprintf(struct trace_seq *s, const char *fmt, va_list args);
-extern int
-trace_seq_bprintf(struct trace_seq *s, const char *fmt, const u32 *binary);
-extern int trace_print_seq(struct seq_file *m, struct trace_seq *s);
-extern ssize_t trace_seq_to_user(struct trace_seq *s, char __user *ubuf,
- size_t cnt);
-extern int trace_seq_puts(struct trace_seq *s, const char *str);
-extern int trace_seq_putc(struct trace_seq *s, unsigned char c);
-extern int trace_seq_putmem(struct trace_seq *s, const void *mem, size_t len);
-extern int trace_seq_putmem_hex(struct trace_seq *s, const void *mem,
- size_t len);
-extern void *trace_seq_reserve(struct trace_seq *s, size_t len);
-extern int trace_seq_path(struct trace_seq *s, const struct path *path);
-
-#else /* CONFIG_TRACING */
-static inline int trace_seq_printf(struct trace_seq *s, const char *fmt, ...)
-{
- return 0;
-}
-static inline int
-trace_seq_bprintf(struct trace_seq *s, const char *fmt, const u32 *binary)
-{
- return 0;
-}
-
-static inline int trace_print_seq(struct seq_file *m, struct trace_seq *s)
-{
- return 0;
-}
-static inline ssize_t trace_seq_to_user(struct trace_seq *s, char __user *ubuf,
- size_t cnt)
-{
- return 0;
-}
-static inline int trace_seq_puts(struct trace_seq *s, const char *str)
-{
- return 0;
-}
-static inline int trace_seq_putc(struct trace_seq *s, unsigned char c)
-{
- return 0;
-}
-static inline int
-trace_seq_putmem(struct trace_seq *s, const void *mem, size_t len)
-{
- return 0;
-}
-static inline int trace_seq_putmem_hex(struct trace_seq *s, const void *mem,
- size_t len)
-{
- return 0;
-}
-static inline void *trace_seq_reserve(struct trace_seq *s, size_t len)
-{
- return NULL;
-}
-static inline int trace_seq_path(struct trace_seq *s, const struct path *path)
-{
- return 0;
-}
-#endif /* CONFIG_TRACING */
-
-#endif /* _LINUX_TRACE_SEQ_H */
diff --git a/ANDROID_3.4.5/include/linux/tracehook.h b/ANDROID_3.4.5/include/linux/tracehook.h
deleted file mode 100644
index 51bd91d9..00000000
--- a/ANDROID_3.4.5/include/linux/tracehook.h
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- * Tracing hooks
- *
- * Copyright (C) 2008-2009 Red Hat, Inc. All rights reserved.
- *
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU General Public License v.2.
- *
- * This file defines hook entry points called by core code where
- * user tracing/debugging support might need to do something. These
- * entry points are called tracehook_*(). Each hook declared below
- * has a detailed kerneldoc comment giving the context (locking et
- * al) from which it is called, and the meaning of its return value.
- *
- * Each function here typically has only one call site, so it is ok
- * to have some nontrivial tracehook_*() inlines. In all cases, the
- * fast path when no tracing is enabled should be very short.
- *
- * The purpose of this file and the tracehook_* layer is to consolidate
- * the interface that the kernel core and arch code uses to enable any
- * user debugging or tracing facility (such as ptrace). The interfaces
- * here are carefully documented so that maintainers of core and arch
- * code do not need to think about the implementation details of the
- * tracing facilities. Likewise, maintainers of the tracing code do not
- * need to understand all the calling core or arch code in detail, just
- * documented circumstances of each call, such as locking conditions.
- *
- * If the calling core code changes so that locking is different, then
- * it is ok to change the interface documented here. The maintainer of
- * core code changing should notify the maintainers of the tracing code
- * that they need to work out the change.
- *
- * Some tracehook_*() inlines take arguments that the current tracing
- * implementations might not necessarily use. These function signatures
- * are chosen to pass in all the information that is on hand in the
- * caller and might conceivably be relevant to a tracer, so that the
- * core code won't have to be updated when tracing adds more features.
- * If a call site changes so that some of those parameters are no longer
- * already on hand without extra work, then the tracehook_* interface
- * can change so there is no make-work burden on the core code. The
- * maintainer of core code changing should notify the maintainers of the
- * tracing code that they need to work out the change.
- */
-
-#ifndef _LINUX_TRACEHOOK_H
-#define _LINUX_TRACEHOOK_H 1
-
-#include <linux/sched.h>
-#include <linux/ptrace.h>
-#include <linux/security.h>
-struct linux_binprm;
-
-/*
- * ptrace report for syscall entry and exit looks identical.
- */
-static inline int ptrace_report_syscall(struct pt_regs *regs)
-{
- int ptrace = current->ptrace;
-
- if (!(ptrace & PT_PTRACED))
- return 0;
-
- ptrace_notify(SIGTRAP | ((ptrace & PT_TRACESYSGOOD) ? 0x80 : 0));
-
- /*
- * this isn't the same as continuing with a signal, but it will do
- * for normal use. strace only continues with a signal if the
- * stopping signal is not SIGTRAP. -brl
- */
- if (current->exit_code) {
- send_sig(current->exit_code, current, 1);
- current->exit_code = 0;
- }
-
- return fatal_signal_pending(current);
-}
-
-/**
- * tracehook_report_syscall_entry - task is about to attempt a system call
- * @regs: user register state of current task
- *
- * This will be called if %TIF_SYSCALL_TRACE has been set, when the
- * current task has just entered the kernel for a system call.
- * Full user register state is available here. Changing the values
- * in @regs can affect the system call number and arguments to be tried.
- * It is safe to block here, preventing the system call from beginning.
- *
- * Returns zero normally, or nonzero if the calling arch code should abort
- * the system call. That must prevent normal entry so no system call is
- * made. If @task ever returns to user mode after this, its register state
- * is unspecified, but should be something harmless like an %ENOSYS error
- * return. It should preserve enough information so that syscall_rollback()
- * can work (see asm-generic/syscall.h).
- *
- * Called without locks, just after entering kernel mode.
- */
-static inline __must_check int tracehook_report_syscall_entry(
- struct pt_regs *regs)
-{
- return ptrace_report_syscall(regs);
-}
-
-/**
- * tracehook_report_syscall_exit - task has just finished a system call
- * @regs: user register state of current task
- * @step: nonzero if simulating single-step or block-step
- *
- * This will be called if %TIF_SYSCALL_TRACE has been set, when the
- * current task has just finished an attempted system call. Full
- * user register state is available here. It is safe to block here,
- * preventing signals from being processed.
- *
- * If @step is nonzero, this report is also in lieu of the normal
- * trap that would follow the system call instruction because
- * user_enable_block_step() or user_enable_single_step() was used.
- * In this case, %TIF_SYSCALL_TRACE might not be set.
- *
- * Called without locks, just before checking for pending signals.
- */
-static inline void tracehook_report_syscall_exit(struct pt_regs *regs, int step)
-{
- if (step) {
- siginfo_t info;
- user_single_step_siginfo(current, regs, &info);
- force_sig_info(SIGTRAP, &info, current);
- return;
- }
-
- ptrace_report_syscall(regs);
-}
-
-/**
- * tracehook_signal_handler - signal handler setup is complete
- * @sig: number of signal being delivered
- * @info: siginfo_t of signal being delivered
- * @ka: sigaction setting that chose the handler
- * @regs: user register state
- * @stepping: nonzero if debugger single-step or block-step in use
- *
- * Called by the arch code after a signal handler has been set up.
- * Register and stack state reflects the user handler about to run.
- * Signal mask changes have already been made.
- *
- * Called without locks, shortly before returning to user mode
- * (or handling more signals).
- */
-static inline void tracehook_signal_handler(int sig, siginfo_t *info,
- const struct k_sigaction *ka,
- struct pt_regs *regs, int stepping)
-{
- if (stepping)
- ptrace_notify(SIGTRAP);
-}
-
-#ifdef TIF_NOTIFY_RESUME
-/**
- * set_notify_resume - cause tracehook_notify_resume() to be called
- * @task: task that will call tracehook_notify_resume()
- *
- * Calling this arranges that @task will call tracehook_notify_resume()
- * before returning to user mode. If it's already running in user mode,
- * it will enter the kernel and call tracehook_notify_resume() soon.
- * If it's blocked, it will not be woken.
- */
-static inline void set_notify_resume(struct task_struct *task)
-{
- if (!test_and_set_tsk_thread_flag(task, TIF_NOTIFY_RESUME))
- kick_process(task);
-}
-
-/**
- * tracehook_notify_resume - report when about to return to user mode
- * @regs: user-mode registers of @current task
- *
- * This is called when %TIF_NOTIFY_RESUME has been set. Now we are
- * about to return to user mode, and the user state in @regs can be
- * inspected or adjusted. The caller in arch code has cleared
- * %TIF_NOTIFY_RESUME before the call. If the flag gets set again
- * asynchronously, this will be called again before we return to
- * user mode.
- *
- * Called without locks.
- */
-static inline void tracehook_notify_resume(struct pt_regs *regs)
-{
-}
-#endif /* TIF_NOTIFY_RESUME */
-
-#endif /* <linux/tracehook.h> */
diff --git a/ANDROID_3.4.5/include/linux/tracepoint.h b/ANDROID_3.4.5/include/linux/tracepoint.h
deleted file mode 100644
index bd96ecd0..00000000
--- a/ANDROID_3.4.5/include/linux/tracepoint.h
+++ /dev/null
@@ -1,392 +0,0 @@
-#ifndef _LINUX_TRACEPOINT_H
-#define _LINUX_TRACEPOINT_H
-
-/*
- * Kernel Tracepoint API.
- *
- * See Documentation/trace/tracepoints.txt.
- *
- * (C) Copyright 2008 Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
- *
- * Heavily inspired from the Linux Kernel Markers.
- *
- * This file is released under the GPLv2.
- * See the file COPYING for more details.
- */
-
-#include <linux/errno.h>
-#include <linux/types.h>
-#include <linux/rcupdate.h>
-#include <linux/static_key.h>
-
-struct module;
-struct tracepoint;
-
-struct tracepoint_func {
- void *func;
- void *data;
-};
-
-struct tracepoint {
- const char *name; /* Tracepoint name */
- struct static_key key;
- void (*regfunc)(void);
- void (*unregfunc)(void);
- struct tracepoint_func __rcu *funcs;
-};
-
-/*
- * Connect a probe to a tracepoint.
- * Internal API, should not be used directly.
- */
-extern int tracepoint_probe_register(const char *name, void *probe, void *data);
-
-/*
- * Disconnect a probe from a tracepoint.
- * Internal API, should not be used directly.
- */
-extern int
-tracepoint_probe_unregister(const char *name, void *probe, void *data);
-
-extern int tracepoint_probe_register_noupdate(const char *name, void *probe,
- void *data);
-extern int tracepoint_probe_unregister_noupdate(const char *name, void *probe,
- void *data);
-extern void tracepoint_probe_update_all(void);
-
-#ifdef CONFIG_MODULES
-struct tp_module {
- struct list_head list;
- unsigned int num_tracepoints;
- struct tracepoint * const *tracepoints_ptrs;
-};
-#endif /* CONFIG_MODULES */
-
-struct tracepoint_iter {
-#ifdef CONFIG_MODULES
- struct tp_module *module;
-#endif /* CONFIG_MODULES */
- struct tracepoint * const *tracepoint;
-};
-
-extern void tracepoint_iter_start(struct tracepoint_iter *iter);
-extern void tracepoint_iter_next(struct tracepoint_iter *iter);
-extern void tracepoint_iter_stop(struct tracepoint_iter *iter);
-extern void tracepoint_iter_reset(struct tracepoint_iter *iter);
-
-/*
- * tracepoint_synchronize_unregister must be called between the last tracepoint
- * probe unregistration and the end of module exit to make sure there is no
- * caller executing a probe when it is freed.
- */
-static inline void tracepoint_synchronize_unregister(void)
-{
- synchronize_sched();
-}
-
-#define PARAMS(args...) args
-
-#endif /* _LINUX_TRACEPOINT_H */
-
-/*
- * Note: we keep the TRACE_EVENT and DECLARE_TRACE outside the include
- * file ifdef protection.
- * This is due to the way trace events work. If a file includes two
- * trace event headers under one "CREATE_TRACE_POINTS" the first include
- * will override the TRACE_EVENT and break the second include.
- */
-
-#ifndef DECLARE_TRACE
-
-#define TP_PROTO(args...) args
-#define TP_ARGS(args...) args
-#define TP_CONDITION(args...) args
-
-#ifdef CONFIG_TRACEPOINTS
-
-/*
- * it_func[0] is never NULL because there is at least one element in the array
- * when the array itself is non NULL.
- *
- * Note, the proto and args passed in includes "__data" as the first parameter.
- * The reason for this is to handle the "void" prototype. If a tracepoint
- * has a "void" prototype, then it is invalid to declare a function
- * as "(void *, void)". The DECLARE_TRACE_NOARGS() will pass in just
- * "void *data", where as the DECLARE_TRACE() will pass in "void *data, proto".
- */
-#define __DO_TRACE(tp, proto, args, cond, prercu, postrcu) \
- do { \
- struct tracepoint_func *it_func_ptr; \
- void *it_func; \
- void *__data; \
- \
- if (!(cond)) \
- return; \
- prercu; \
- rcu_read_lock_sched_notrace(); \
- it_func_ptr = rcu_dereference_sched((tp)->funcs); \
- if (it_func_ptr) { \
- do { \
- it_func = (it_func_ptr)->func; \
- __data = (it_func_ptr)->data; \
- ((void(*)(proto))(it_func))(args); \
- } while ((++it_func_ptr)->func); \
- } \
- rcu_read_unlock_sched_notrace(); \
- postrcu; \
- } while (0)
-
-/*
- * Make sure the alignment of the structure in the __tracepoints section will
- * not add unwanted padding between the beginning of the section and the
- * structure. Force alignment to the same alignment as the section start.
- */
-#define __DECLARE_TRACE(name, proto, args, cond, data_proto, data_args) \
- extern struct tracepoint __tracepoint_##name; \
- static inline void trace_##name(proto) \
- { \
- if (static_key_false(&__tracepoint_##name.key)) \
- __DO_TRACE(&__tracepoint_##name, \
- TP_PROTO(data_proto), \
- TP_ARGS(data_args), \
- TP_CONDITION(cond),,); \
- } \
- static inline void trace_##name##_rcuidle(proto) \
- { \
- if (static_branch(&__tracepoint_##name.key)) \
- __DO_TRACE(&__tracepoint_##name, \
- TP_PROTO(data_proto), \
- TP_ARGS(data_args), \
- TP_CONDITION(cond), \
- rcu_idle_exit(), \
- rcu_idle_enter()); \
- } \
- static inline int \
- register_trace_##name(void (*probe)(data_proto), void *data) \
- { \
- return tracepoint_probe_register(#name, (void *)probe, \
- data); \
- } \
- static inline int \
- unregister_trace_##name(void (*probe)(data_proto), void *data) \
- { \
- return tracepoint_probe_unregister(#name, (void *)probe, \
- data); \
- } \
- static inline void \
- check_trace_callback_type_##name(void (*cb)(data_proto)) \
- { \
- }
-
-/*
- * We have no guarantee that gcc and the linker won't up-align the tracepoint
- * structures, so we create an array of pointers that will be used for iteration
- * on the tracepoints.
- */
-#define DEFINE_TRACE_FN(name, reg, unreg) \
- static const char __tpstrtab_##name[] \
- __attribute__((section("__tracepoints_strings"))) = #name; \
- struct tracepoint __tracepoint_##name \
- __attribute__((section("__tracepoints"))) = \
- { __tpstrtab_##name, STATIC_KEY_INIT_FALSE, reg, unreg, NULL };\
- static struct tracepoint * const __tracepoint_ptr_##name __used \
- __attribute__((section("__tracepoints_ptrs"))) = \
- &__tracepoint_##name;
-
-#define DEFINE_TRACE(name) \
- DEFINE_TRACE_FN(name, NULL, NULL);
-
-#define EXPORT_TRACEPOINT_SYMBOL_GPL(name) \
- EXPORT_SYMBOL_GPL(__tracepoint_##name)
-#define EXPORT_TRACEPOINT_SYMBOL(name) \
- EXPORT_SYMBOL(__tracepoint_##name)
-
-#else /* !CONFIG_TRACEPOINTS */
-#define __DECLARE_TRACE(name, proto, args, cond, data_proto, data_args) \
- static inline void trace_##name(proto) \
- { } \
- static inline void trace_##name##_rcuidle(proto) \
- { } \
- static inline int \
- register_trace_##name(void (*probe)(data_proto), \
- void *data) \
- { \
- return -ENOSYS; \
- } \
- static inline int \
- unregister_trace_##name(void (*probe)(data_proto), \
- void *data) \
- { \
- return -ENOSYS; \
- } \
- static inline void check_trace_callback_type_##name(void (*cb)(data_proto)) \
- { \
- }
-
-#define DEFINE_TRACE_FN(name, reg, unreg)
-#define DEFINE_TRACE(name)
-#define EXPORT_TRACEPOINT_SYMBOL_GPL(name)
-#define EXPORT_TRACEPOINT_SYMBOL(name)
-
-#endif /* CONFIG_TRACEPOINTS */
-
-/*
- * The need for the DECLARE_TRACE_NOARGS() is to handle the prototype
- * (void). "void" is a special value in a function prototype and can
- * not be combined with other arguments. Since the DECLARE_TRACE()
- * macro adds a data element at the beginning of the prototype,
- * we need a way to differentiate "(void *data, proto)" from
- * "(void *data, void)". The second prototype is invalid.
- *
- * DECLARE_TRACE_NOARGS() passes "void" as the tracepoint prototype
- * and "void *__data" as the callback prototype.
- *
- * DECLARE_TRACE() passes "proto" as the tracepoint protoype and
- * "void *__data, proto" as the callback prototype.
- */
-#define DECLARE_TRACE_NOARGS(name) \
- __DECLARE_TRACE(name, void, , 1, void *__data, __data)
-
-#define DECLARE_TRACE(name, proto, args) \
- __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), 1, \
- PARAMS(void *__data, proto), \
- PARAMS(__data, args))
-
-#define DECLARE_TRACE_CONDITION(name, proto, args, cond) \
- __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), PARAMS(cond), \
- PARAMS(void *__data, proto), \
- PARAMS(__data, args))
-
-#define TRACE_EVENT_FLAGS(event, flag)
-
-#endif /* DECLARE_TRACE */
-
-#ifndef TRACE_EVENT
-/*
- * For use with the TRACE_EVENT macro:
- *
- * We define a tracepoint, its arguments, its printk format
- * and its 'fast binay record' layout.
- *
- * Firstly, name your tracepoint via TRACE_EVENT(name : the
- * 'subsystem_event' notation is fine.
- *
- * Think about this whole construct as the
- * 'trace_sched_switch() function' from now on.
- *
- *
- * TRACE_EVENT(sched_switch,
- *
- * *
- * * A function has a regular function arguments
- * * prototype, declare it via TP_PROTO():
- * *
- *
- * TP_PROTO(struct rq *rq, struct task_struct *prev,
- * struct task_struct *next),
- *
- * *
- * * Define the call signature of the 'function'.
- * * (Design sidenote: we use this instead of a
- * * TP_PROTO1/TP_PROTO2/TP_PROTO3 ugliness.)
- * *
- *
- * TP_ARGS(rq, prev, next),
- *
- * *
- * * Fast binary tracing: define the trace record via
- * * TP_STRUCT__entry(). You can think about it like a
- * * regular C structure local variable definition.
- * *
- * * This is how the trace record is structured and will
- * * be saved into the ring buffer. These are the fields
- * * that will be exposed to user-space in
- * * /sys/kernel/debug/tracing/events/<*>/format.
- * *
- * * The declared 'local variable' is called '__entry'
- * *
- * * __field(pid_t, prev_prid) is equivalent to a standard declariton:
- * *
- * * pid_t prev_pid;
- * *
- * * __array(char, prev_comm, TASK_COMM_LEN) is equivalent to:
- * *
- * * char prev_comm[TASK_COMM_LEN];
- * *
- *
- * TP_STRUCT__entry(
- * __array( char, prev_comm, TASK_COMM_LEN )
- * __field( pid_t, prev_pid )
- * __field( int, prev_prio )
- * __array( char, next_comm, TASK_COMM_LEN )
- * __field( pid_t, next_pid )
- * __field( int, next_prio )
- * ),
- *
- * *
- * * Assign the entry into the trace record, by embedding
- * * a full C statement block into TP_fast_assign(). You
- * * can refer to the trace record as '__entry' -
- * * otherwise you can put arbitrary C code in here.
- * *
- * * Note: this C code will execute every time a trace event
- * * happens, on an active tracepoint.
- * *
- *
- * TP_fast_assign(
- * memcpy(__entry->next_comm, next->comm, TASK_COMM_LEN);
- * __entry->prev_pid = prev->pid;
- * __entry->prev_prio = prev->prio;
- * memcpy(__entry->prev_comm, prev->comm, TASK_COMM_LEN);
- * __entry->next_pid = next->pid;
- * __entry->next_prio = next->prio;
- * ),
- *
- * *
- * * Formatted output of a trace record via TP_printk().
- * * This is how the tracepoint will appear under ftrace
- * * plugins that make use of this tracepoint.
- * *
- * * (raw-binary tracing wont actually perform this step.)
- * *
- *
- * TP_printk("task %s:%d [%d] ==> %s:%d [%d]",
- * __entry->prev_comm, __entry->prev_pid, __entry->prev_prio,
- * __entry->next_comm, __entry->next_pid, __entry->next_prio),
- *
- * );
- *
- * This macro construct is thus used for the regular printk format
- * tracing setup, it is used to construct a function pointer based
- * tracepoint callback (this is used by programmatic plugins and
- * can also by used by generic instrumentation like SystemTap), and
- * it is also used to expose a structured trace record in
- * /sys/kernel/debug/tracing/events/.
- *
- * A set of (un)registration functions can be passed to the variant
- * TRACE_EVENT_FN to perform any (un)registration work.
- */
-
-#define DECLARE_EVENT_CLASS(name, proto, args, tstruct, assign, print)
-#define DEFINE_EVENT(template, name, proto, args) \
- DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
-#define DEFINE_EVENT_PRINT(template, name, proto, args, print) \
- DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
-#define DEFINE_EVENT_CONDITION(template, name, proto, \
- args, cond) \
- DECLARE_TRACE_CONDITION(name, PARAMS(proto), \
- PARAMS(args), PARAMS(cond))
-
-#define TRACE_EVENT(name, proto, args, struct, assign, print) \
- DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
-#define TRACE_EVENT_FN(name, proto, args, struct, \
- assign, print, reg, unreg) \
- DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
-#define TRACE_EVENT_CONDITION(name, proto, args, cond, \
- struct, assign, print) \
- DECLARE_TRACE_CONDITION(name, PARAMS(proto), \
- PARAMS(args), PARAMS(cond))
-
-#define TRACE_EVENT_FLAGS(event, flag)
-
-#endif /* ifdef TRACE_EVENT (see note above) */
diff --git a/ANDROID_3.4.5/include/linux/transport_class.h b/ANDROID_3.4.5/include/linux/transport_class.h
deleted file mode 100644
index 11087cdd..00000000
--- a/ANDROID_3.4.5/include/linux/transport_class.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * transport_class.h - a generic container for all transport classes
- *
- * Copyright (c) 2005 - James Bottomley <James.Bottomley@steeleye.com>
- *
- * This file is licensed under GPLv2
- */
-
-#ifndef _TRANSPORT_CLASS_H_
-#define _TRANSPORT_CLASS_H_
-
-#include <linux/device.h>
-#include <linux/bug.h>
-#include <linux/attribute_container.h>
-
-struct transport_container;
-
-struct transport_class {
- struct class class;
- int (*setup)(struct transport_container *, struct device *,
- struct device *);
- int (*configure)(struct transport_container *, struct device *,
- struct device *);
- int (*remove)(struct transport_container *, struct device *,
- struct device *);
-};
-
-#define DECLARE_TRANSPORT_CLASS(cls, nm, su, rm, cfg) \
-struct transport_class cls = { \
- .class = { \
- .name = nm, \
- }, \
- .setup = su, \
- .remove = rm, \
- .configure = cfg, \
-}
-
-
-struct anon_transport_class {
- struct transport_class tclass;
- struct attribute_container container;
-};
-
-#define DECLARE_ANON_TRANSPORT_CLASS(cls, mtch, cfg) \
-struct anon_transport_class cls = { \
- .tclass = { \
- .configure = cfg, \
- }, \
- . container = { \
- .match = mtch, \
- }, \
-}
-
-#define class_to_transport_class(x) \
- container_of(x, struct transport_class, class)
-
-struct transport_container {
- struct attribute_container ac;
- const struct attribute_group *statistics;
-};
-
-#define attribute_container_to_transport_container(x) \
- container_of(x, struct transport_container, ac)
-
-void transport_remove_device(struct device *);
-void transport_add_device(struct device *);
-void transport_setup_device(struct device *);
-void transport_configure_device(struct device *);
-void transport_destroy_device(struct device *);
-
-static inline void
-transport_register_device(struct device *dev)
-{
- transport_setup_device(dev);
- transport_add_device(dev);
-}
-
-static inline void
-transport_unregister_device(struct device *dev)
-{
- transport_remove_device(dev);
- transport_destroy_device(dev);
-}
-
-static inline int transport_container_register(struct transport_container *tc)
-{
- return attribute_container_register(&tc->ac);
-}
-
-static inline void transport_container_unregister(struct transport_container *tc)
-{
- if (unlikely(attribute_container_unregister(&tc->ac)))
- BUG();
-}
-
-int transport_class_register(struct transport_class *);
-int anon_transport_class_register(struct anon_transport_class *);
-void transport_class_unregister(struct transport_class *);
-void anon_transport_class_unregister(struct anon_transport_class *);
-
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/trdevice.h b/ANDROID_3.4.5/include/linux/trdevice.h
deleted file mode 100644
index bfc84a7a..00000000
--- a/ANDROID_3.4.5/include/linux/trdevice.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. NET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Definitions for the Token-ring handlers.
- *
- * Version: @(#)eth.h 1.0.4 05/13/93
- *
- * Authors: Ross Biro
- * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
- *
- * Relocated to include/linux where it belongs by Alan Cox
- * <gw4pts@gw4pts.ampr.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.
- *
- * WARNING: This move may well be temporary. This file will get merged with others RSN.
- *
- */
-#ifndef _LINUX_TRDEVICE_H
-#define _LINUX_TRDEVICE_H
-
-
-#include <linux/if_tr.h>
-
-#ifdef __KERNEL__
-extern __be16 tr_type_trans(struct sk_buff *skb, struct net_device *dev);
-extern void tr_source_route(struct sk_buff *skb, struct trh_hdr *trh, struct net_device *dev);
-extern struct net_device *alloc_trdev(int sizeof_priv);
-
-#endif
-
-#endif /* _LINUX_TRDEVICE_H */
diff --git a/ANDROID_3.4.5/include/linux/tsacct_kern.h b/ANDROID_3.4.5/include/linux/tsacct_kern.h
deleted file mode 100644
index 7e50ac79..00000000
--- a/ANDROID_3.4.5/include/linux/tsacct_kern.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * tsacct_kern.h - kernel header for system accounting over taskstats interface
- *
- * Copyright (C) Jay Lan SGI
- */
-
-#ifndef _LINUX_TSACCT_KERN_H
-#define _LINUX_TSACCT_KERN_H
-
-#include <linux/taskstats.h>
-
-#ifdef CONFIG_TASKSTATS
-extern void bacct_add_tsk(struct taskstats *stats, struct task_struct *tsk);
-#else
-static inline void bacct_add_tsk(struct taskstats *stats, struct task_struct *tsk)
-{}
-#endif /* CONFIG_TASKSTATS */
-
-#ifdef CONFIG_TASK_XACCT
-extern void xacct_add_tsk(struct taskstats *stats, struct task_struct *p);
-extern void acct_update_integrals(struct task_struct *tsk);
-extern void acct_clear_integrals(struct task_struct *tsk);
-#else
-static inline void xacct_add_tsk(struct taskstats *stats, struct task_struct *p)
-{}
-static inline void acct_update_integrals(struct task_struct *tsk)
-{}
-static inline void acct_clear_integrals(struct task_struct *tsk)
-{}
-#endif /* CONFIG_TASK_XACCT */
-
-#endif
-
-
diff --git a/ANDROID_3.4.5/include/linux/tty.h b/ANDROID_3.4.5/include/linux/tty.h
deleted file mode 100644
index 9f47ab54..00000000
--- a/ANDROID_3.4.5/include/linux/tty.h
+++ /dev/null
@@ -1,672 +0,0 @@
-#ifndef _LINUX_TTY_H
-#define _LINUX_TTY_H
-
-/*
- * 'tty.h' defines some structures used by tty_io.c and some defines.
- */
-
-#define NR_LDISCS 30
-
-/* line disciplines */
-#define N_TTY 0
-#define N_SLIP 1
-#define N_MOUSE 2
-#define N_PPP 3
-#define N_STRIP 4
-#define N_AX25 5
-#define N_X25 6 /* X.25 async */
-#define N_6PACK 7
-#define N_MASC 8 /* Reserved for Mobitex module <kaz@cafe.net> */
-#define N_R3964 9 /* Reserved for Simatic R3964 module */
-#define N_PROFIBUS_FDL 10 /* Reserved for Profibus */
-#define N_IRDA 11 /* Linux IrDa - http://irda.sourceforge.net/ */
-#define N_SMSBLOCK 12 /* SMS block mode - for talking to GSM data */
- /* cards about SMS messages */
-#define N_HDLC 13 /* synchronous HDLC */
-#define N_SYNC_PPP 14 /* synchronous PPP */
-#define N_HCI 15 /* Bluetooth HCI UART */
-#define N_GIGASET_M101 16 /* Siemens Gigaset M101 serial DECT adapter */
-#define N_SLCAN 17 /* Serial / USB serial CAN Adaptors */
-#define N_PPS 18 /* Pulse per Second */
-#define N_V253 19 /* Codec control over voice modem */
-#define N_CAIF 20 /* CAIF protocol for talking to modems */
-#define N_GSM0710 21 /* GSM 0710 Mux */
-#define N_TI_WL 22 /* for TI's WL BT, FM, GPS combo chips */
-#define N_TRACESINK 23 /* Trace data routing for MIPI P1149.7 */
-#define N_TRACEROUTER 24 /* Trace data routing for MIPI P1149.7 */
-
-#ifdef __KERNEL__
-#include <linux/fs.h>
-#include <linux/major.h>
-#include <linux/termios.h>
-#include <linux/workqueue.h>
-#include <linux/tty_driver.h>
-#include <linux/tty_ldisc.h>
-#include <linux/mutex.h>
-
-
-
-/*
- * (Note: the *_driver.minor_start values 1, 64, 128, 192 are
- * hardcoded at present.)
- */
-#define NR_UNIX98_PTY_DEFAULT 4096 /* Default maximum for Unix98 ptys */
-#define NR_UNIX98_PTY_RESERVE 1024 /* Default reserve for main devpts */
-#define NR_UNIX98_PTY_MAX (1 << MINORBITS) /* Absolute limit */
-
-/*
- * This character is the same as _POSIX_VDISABLE: it cannot be used as
- * a c_cc[] character, but indicates that a particular special character
- * isn't in use (eg VINTR has no character etc)
- */
-#define __DISABLED_CHAR '\0'
-
-struct tty_buffer {
- struct tty_buffer *next;
- char *char_buf_ptr;
- unsigned char *flag_buf_ptr;
- int used;
- int size;
- int commit;
- int read;
- /* Data points here */
- unsigned long data[0];
-};
-
-/*
- * We default to dicing tty buffer allocations to this many characters
- * in order to avoid multiple page allocations. We know the size of
- * tty_buffer itself but it must also be taken into account that the
- * the buffer is 256 byte aligned. See tty_buffer_find for the allocation
- * logic this must match
- */
-
-#define TTY_BUFFER_PAGE (((PAGE_SIZE - sizeof(struct tty_buffer)) / 2) & ~0xFF)
-
-
-struct tty_bufhead {
- struct work_struct work;
- spinlock_t lock;
- struct tty_buffer *head; /* Queue head */
- struct tty_buffer *tail; /* Active buffer */
- struct tty_buffer *free; /* Free queue head */
- int memory_used; /* Buffer space used excluding
- free queue */
-};
-/*
- * When a break, frame error, or parity error happens, these codes are
- * stuffed into the flags buffer.
- */
-#define TTY_NORMAL 0
-#define TTY_BREAK 1
-#define TTY_FRAME 2
-#define TTY_PARITY 3
-#define TTY_OVERRUN 4
-
-#define INTR_CHAR(tty) ((tty)->termios->c_cc[VINTR])
-#define QUIT_CHAR(tty) ((tty)->termios->c_cc[VQUIT])
-#define ERASE_CHAR(tty) ((tty)->termios->c_cc[VERASE])
-#define KILL_CHAR(tty) ((tty)->termios->c_cc[VKILL])
-#define EOF_CHAR(tty) ((tty)->termios->c_cc[VEOF])
-#define TIME_CHAR(tty) ((tty)->termios->c_cc[VTIME])
-#define MIN_CHAR(tty) ((tty)->termios->c_cc[VMIN])
-#define SWTC_CHAR(tty) ((tty)->termios->c_cc[VSWTC])
-#define START_CHAR(tty) ((tty)->termios->c_cc[VSTART])
-#define STOP_CHAR(tty) ((tty)->termios->c_cc[VSTOP])
-#define SUSP_CHAR(tty) ((tty)->termios->c_cc[VSUSP])
-#define EOL_CHAR(tty) ((tty)->termios->c_cc[VEOL])
-#define REPRINT_CHAR(tty) ((tty)->termios->c_cc[VREPRINT])
-#define DISCARD_CHAR(tty) ((tty)->termios->c_cc[VDISCARD])
-#define WERASE_CHAR(tty) ((tty)->termios->c_cc[VWERASE])
-#define LNEXT_CHAR(tty) ((tty)->termios->c_cc[VLNEXT])
-#define EOL2_CHAR(tty) ((tty)->termios->c_cc[VEOL2])
-
-#define _I_FLAG(tty, f) ((tty)->termios->c_iflag & (f))
-#define _O_FLAG(tty, f) ((tty)->termios->c_oflag & (f))
-#define _C_FLAG(tty, f) ((tty)->termios->c_cflag & (f))
-#define _L_FLAG(tty, f) ((tty)->termios->c_lflag & (f))
-
-#define I_IGNBRK(tty) _I_FLAG((tty), IGNBRK)
-#define I_BRKINT(tty) _I_FLAG((tty), BRKINT)
-#define I_IGNPAR(tty) _I_FLAG((tty), IGNPAR)
-#define I_PARMRK(tty) _I_FLAG((tty), PARMRK)
-#define I_INPCK(tty) _I_FLAG((tty), INPCK)
-#define I_ISTRIP(tty) _I_FLAG((tty), ISTRIP)
-#define I_INLCR(tty) _I_FLAG((tty), INLCR)
-#define I_IGNCR(tty) _I_FLAG((tty), IGNCR)
-#define I_ICRNL(tty) _I_FLAG((tty), ICRNL)
-#define I_IUCLC(tty) _I_FLAG((tty), IUCLC)
-#define I_IXON(tty) _I_FLAG((tty), IXON)
-#define I_IXANY(tty) _I_FLAG((tty), IXANY)
-#define I_IXOFF(tty) _I_FLAG((tty), IXOFF)
-#define I_IMAXBEL(tty) _I_FLAG((tty), IMAXBEL)
-#define I_IUTF8(tty) _I_FLAG((tty), IUTF8)
-
-#define O_OPOST(tty) _O_FLAG((tty), OPOST)
-#define O_OLCUC(tty) _O_FLAG((tty), OLCUC)
-#define O_ONLCR(tty) _O_FLAG((tty), ONLCR)
-#define O_OCRNL(tty) _O_FLAG((tty), OCRNL)
-#define O_ONOCR(tty) _O_FLAG((tty), ONOCR)
-#define O_ONLRET(tty) _O_FLAG((tty), ONLRET)
-#define O_OFILL(tty) _O_FLAG((tty), OFILL)
-#define O_OFDEL(tty) _O_FLAG((tty), OFDEL)
-#define O_NLDLY(tty) _O_FLAG((tty), NLDLY)
-#define O_CRDLY(tty) _O_FLAG((tty), CRDLY)
-#define O_TABDLY(tty) _O_FLAG((tty), TABDLY)
-#define O_BSDLY(tty) _O_FLAG((tty), BSDLY)
-#define O_VTDLY(tty) _O_FLAG((tty), VTDLY)
-#define O_FFDLY(tty) _O_FLAG((tty), FFDLY)
-
-#define C_BAUD(tty) _C_FLAG((tty), CBAUD)
-#define C_CSIZE(tty) _C_FLAG((tty), CSIZE)
-#define C_CSTOPB(tty) _C_FLAG((tty), CSTOPB)
-#define C_CREAD(tty) _C_FLAG((tty), CREAD)
-#define C_PARENB(tty) _C_FLAG((tty), PARENB)
-#define C_PARODD(tty) _C_FLAG((tty), PARODD)
-#define C_HUPCL(tty) _C_FLAG((tty), HUPCL)
-#define C_CLOCAL(tty) _C_FLAG((tty), CLOCAL)
-#define C_CIBAUD(tty) _C_FLAG((tty), CIBAUD)
-#define C_CRTSCTS(tty) _C_FLAG((tty), CRTSCTS)
-
-#define L_ISIG(tty) _L_FLAG((tty), ISIG)
-#define L_ICANON(tty) _L_FLAG((tty), ICANON)
-#define L_XCASE(tty) _L_FLAG((tty), XCASE)
-#define L_ECHO(tty) _L_FLAG((tty), ECHO)
-#define L_ECHOE(tty) _L_FLAG((tty), ECHOE)
-#define L_ECHOK(tty) _L_FLAG((tty), ECHOK)
-#define L_ECHONL(tty) _L_FLAG((tty), ECHONL)
-#define L_NOFLSH(tty) _L_FLAG((tty), NOFLSH)
-#define L_TOSTOP(tty) _L_FLAG((tty), TOSTOP)
-#define L_ECHOCTL(tty) _L_FLAG((tty), ECHOCTL)
-#define L_ECHOPRT(tty) _L_FLAG((tty), ECHOPRT)
-#define L_ECHOKE(tty) _L_FLAG((tty), ECHOKE)
-#define L_FLUSHO(tty) _L_FLAG((tty), FLUSHO)
-#define L_PENDIN(tty) _L_FLAG((tty), PENDIN)
-#define L_IEXTEN(tty) _L_FLAG((tty), IEXTEN)
-#define L_EXTPROC(tty) _L_FLAG((tty), EXTPROC)
-
-struct device;
-struct signal_struct;
-
-/*
- * Port level information. Each device keeps its own port level information
- * so provide a common structure for those ports wanting to use common support
- * routines.
- *
- * The tty port has a different lifetime to the tty so must be kept apart.
- * In addition be careful as tty -> port mappings are valid for the life
- * of the tty object but in many cases port -> tty mappings are valid only
- * until a hangup so don't use the wrong path.
- */
-
-struct tty_port;
-
-struct tty_port_operations {
- /* Return 1 if the carrier is raised */
- int (*carrier_raised)(struct tty_port *port);
- /* Control the DTR line */
- void (*dtr_rts)(struct tty_port *port, int raise);
- /* Called when the last close completes or a hangup finishes
- IFF the port was initialized. Do not use to free resources. Called
- under the port mutex to serialize against activate/shutdowns */
- void (*shutdown)(struct tty_port *port);
- void (*drop)(struct tty_port *port);
- /* Called under the port mutex from tty_port_open, serialized using
- the port mutex */
- /* FIXME: long term getting the tty argument *out* of this would be
- good for consoles */
- int (*activate)(struct tty_port *port, struct tty_struct *tty);
- /* Called on the final put of a port */
- void (*destruct)(struct tty_port *port);
-};
-
-struct tty_port {
- struct tty_struct *tty; /* Back pointer */
- const struct tty_port_operations *ops; /* Port operations */
- spinlock_t lock; /* Lock protecting tty field */
- int blocked_open; /* Waiting to open */
- int count; /* Usage count */
- wait_queue_head_t open_wait; /* Open waiters */
- wait_queue_head_t close_wait; /* Close waiters */
- wait_queue_head_t delta_msr_wait; /* Modem status change */
- unsigned long flags; /* TTY flags ASY_*/
- unsigned char console:1; /* port is a console */
- struct mutex mutex; /* Locking */
- struct mutex buf_mutex; /* Buffer alloc lock */
- unsigned char *xmit_buf; /* Optional buffer */
- unsigned int close_delay; /* Close port delay */
- unsigned int closing_wait; /* Delay for output */
- int drain_delay; /* Set to zero if no pure time
- based drain is needed else
- set to size of fifo */
- struct kref kref; /* Ref counter */
-};
-
-/*
- * Where all of the state associated with a tty is kept while the tty
- * is open. Since the termios state should be kept even if the tty
- * has been closed --- for things like the baud rate, etc --- it is
- * not stored here, but rather a pointer to the real state is stored
- * here. Possible the winsize structure should have the same
- * treatment, but (1) the default 80x24 is usually right and (2) it's
- * most often used by a windowing system, which will set the correct
- * size each time the window is created or resized anyway.
- * - TYT, 9/14/92
- */
-
-struct tty_operations;
-
-struct tty_struct {
- int magic;
- struct kref kref;
- struct device *dev;
- struct tty_driver *driver;
- const struct tty_operations *ops;
- int index;
-
- /* Protects ldisc changes: Lock tty not pty */
- struct mutex ldisc_mutex;
- struct tty_ldisc *ldisc;
-
- struct mutex termios_mutex;
- spinlock_t ctrl_lock;
- /* Termios values are protected by the termios mutex */
- struct ktermios *termios, *termios_locked;
- struct termiox *termiox; /* May be NULL for unsupported */
- char name[64];
- struct pid *pgrp; /* Protected by ctrl lock */
- struct pid *session;
- unsigned long flags;
- int count;
- struct winsize winsize; /* termios mutex */
- unsigned char stopped:1, hw_stopped:1, flow_stopped:1, packet:1;
- unsigned char low_latency:1, warned:1;
- unsigned char ctrl_status; /* ctrl_lock */
- unsigned int receive_room; /* Bytes free for queue */
-
- struct tty_struct *link;
- struct fasync_struct *fasync;
- struct tty_bufhead buf; /* Locked internally */
- int alt_speed; /* For magic substitution of 38400 bps */
- wait_queue_head_t write_wait;
- wait_queue_head_t read_wait;
- struct work_struct hangup_work;
- void *disc_data;
- void *driver_data;
- struct list_head tty_files;
-
-#define N_TTY_BUF_SIZE 4096
-
- /*
- * The following is data for the N_TTY line discipline. For
- * historical reasons, this is included in the tty structure.
- * Mostly locked by the BKL.
- */
- unsigned int column;
- unsigned char lnext:1, erasing:1, raw:1, real_raw:1, icanon:1;
- unsigned char closing:1;
- unsigned char echo_overrun:1;
- unsigned short minimum_to_wake;
- unsigned long overrun_time;
- int num_overrun;
- unsigned long process_char_map[256/(8*sizeof(unsigned long))];
- char *read_buf;
- int read_head;
- int read_tail;
- int read_cnt;
- unsigned long read_flags[N_TTY_BUF_SIZE/(8*sizeof(unsigned long))];
- unsigned char *echo_buf;
- unsigned int echo_pos;
- unsigned int echo_cnt;
- int canon_data;
- unsigned long canon_head;
- unsigned int canon_column;
- struct mutex atomic_read_lock;
- struct mutex atomic_write_lock;
- struct mutex output_lock;
- struct mutex echo_lock;
- unsigned char *write_buf;
- int write_cnt;
- spinlock_t read_lock;
- /* If the tty has a pending do_SAK, queue it here - akpm */
- struct work_struct SAK_work;
- struct tty_port *port;
-};
-
-/* Each of a tty's open files has private_data pointing to tty_file_private */
-struct tty_file_private {
- struct tty_struct *tty;
- struct file *file;
- struct list_head list;
-};
-
-/* tty magic number */
-#define TTY_MAGIC 0x5401
-
-/*
- * These bits are used in the flags field of the tty structure.
- *
- * So that interrupts won't be able to mess up the queues,
- * copy_to_cooked must be atomic with respect to itself, as must
- * tty->write. Thus, you must use the inline functions set_bit() and
- * clear_bit() to make things atomic.
- */
-#define TTY_THROTTLED 0 /* Call unthrottle() at threshold min */
-#define TTY_IO_ERROR 1 /* Cause an I/O error (may be no ldisc too) */
-#define TTY_OTHER_CLOSED 2 /* Other side (if any) has closed */
-#define TTY_EXCLUSIVE 3 /* Exclusive open mode */
-#define TTY_DEBUG 4 /* Debugging */
-#define TTY_DO_WRITE_WAKEUP 5 /* Call write_wakeup after queuing new */
-#define TTY_PUSH 6 /* n_tty private */
-#define TTY_CLOSING 7 /* ->close() in progress */
-#define TTY_LDISC 9 /* Line discipline attached */
-#define TTY_LDISC_CHANGING 10 /* Line discipline changing */
-#define TTY_LDISC_OPEN 11 /* Line discipline is open */
-#define TTY_HW_COOK_OUT 14 /* Hardware can do output cooking */
-#define TTY_HW_COOK_IN 15 /* Hardware can do input cooking */
-#define TTY_PTY_LOCK 16 /* pty private */
-#define TTY_NO_WRITE_SPLIT 17 /* Preserve write boundaries to driver */
-#define TTY_HUPPED 18 /* Post driver->hangup() */
-#define TTY_FLUSHING 19 /* Flushing to ldisc in progress */
-#define TTY_FLUSHPENDING 20 /* Queued buffer flush pending */
-#define TTY_HUPPING 21 /* ->hangup() in progress */
-
-#define TTY_WRITE_FLUSH(tty) tty_write_flush((tty))
-
-extern void tty_write_flush(struct tty_struct *);
-
-extern struct ktermios tty_std_termios;
-
-extern void console_init(void);
-extern int vcs_init(void);
-
-extern struct class *tty_class;
-
-/**
- * tty_kref_get - get a tty reference
- * @tty: tty device
- *
- * Return a new reference to a tty object. The caller must hold
- * sufficient locks/counts to ensure that their existing reference cannot
- * go away
- */
-
-static inline struct tty_struct *tty_kref_get(struct tty_struct *tty)
-{
- if (tty)
- kref_get(&tty->kref);
- return tty;
-}
-extern void tty_kref_put(struct tty_struct *tty);
-
-extern int tty_paranoia_check(struct tty_struct *tty, struct inode *inode,
- const char *routine);
-extern char *tty_name(struct tty_struct *tty, char *buf);
-extern void tty_wait_until_sent(struct tty_struct *tty, long timeout);
-extern int tty_check_change(struct tty_struct *tty);
-extern void stop_tty(struct tty_struct *tty);
-extern void start_tty(struct tty_struct *tty);
-extern int tty_register_driver(struct tty_driver *driver);
-extern int tty_unregister_driver(struct tty_driver *driver);
-extern struct device *tty_register_device(struct tty_driver *driver,
- unsigned index, struct device *dev);
-extern void tty_unregister_device(struct tty_driver *driver, unsigned index);
-extern int tty_read_raw_data(struct tty_struct *tty, unsigned char *bufp,
- int buflen);
-extern void tty_write_message(struct tty_struct *tty, char *msg);
-extern int tty_put_char(struct tty_struct *tty, unsigned char c);
-extern int tty_chars_in_buffer(struct tty_struct *tty);
-extern int tty_write_room(struct tty_struct *tty);
-extern void tty_driver_flush_buffer(struct tty_struct *tty);
-extern void tty_throttle(struct tty_struct *tty);
-extern void tty_unthrottle(struct tty_struct *tty);
-extern int tty_do_resize(struct tty_struct *tty, struct winsize *ws);
-extern void tty_driver_remove_tty(struct tty_driver *driver,
- struct tty_struct *tty);
-extern void tty_shutdown(struct tty_struct *tty);
-extern void tty_free_termios(struct tty_struct *tty);
-extern int is_current_pgrp_orphaned(void);
-extern struct pid *tty_get_pgrp(struct tty_struct *tty);
-extern int is_ignored(int sig);
-extern int tty_signal(int sig, struct tty_struct *tty);
-extern void tty_hangup(struct tty_struct *tty);
-extern void tty_vhangup(struct tty_struct *tty);
-extern void tty_vhangup_locked(struct tty_struct *tty);
-extern void tty_vhangup_self(void);
-extern void tty_unhangup(struct file *filp);
-extern int tty_hung_up_p(struct file *filp);
-extern void do_SAK(struct tty_struct *tty);
-extern void __do_SAK(struct tty_struct *tty);
-extern void disassociate_ctty(int priv);
-extern void no_tty(void);
-extern void tty_flip_buffer_push(struct tty_struct *tty);
-extern void tty_flush_to_ldisc(struct tty_struct *tty);
-extern void tty_buffer_free_all(struct tty_struct *tty);
-extern void tty_buffer_flush(struct tty_struct *tty);
-extern void tty_buffer_init(struct tty_struct *tty);
-extern speed_t tty_get_baud_rate(struct tty_struct *tty);
-extern speed_t tty_termios_baud_rate(struct ktermios *termios);
-extern speed_t tty_termios_input_baud_rate(struct ktermios *termios);
-extern void tty_termios_encode_baud_rate(struct ktermios *termios,
- speed_t ibaud, speed_t obaud);
-extern void tty_encode_baud_rate(struct tty_struct *tty,
- speed_t ibaud, speed_t obaud);
-extern void tty_termios_copy_hw(struct ktermios *new, struct ktermios *old);
-extern int tty_termios_hw_change(struct ktermios *a, struct ktermios *b);
-extern int tty_set_termios(struct tty_struct *tty, struct ktermios *kt);
-
-extern struct tty_ldisc *tty_ldisc_ref(struct tty_struct *);
-extern void tty_ldisc_deref(struct tty_ldisc *);
-extern struct tty_ldisc *tty_ldisc_ref_wait(struct tty_struct *);
-extern void tty_ldisc_hangup(struct tty_struct *tty);
-extern const struct file_operations tty_ldiscs_proc_fops;
-
-extern void tty_wakeup(struct tty_struct *tty);
-extern void tty_ldisc_flush(struct tty_struct *tty);
-
-extern long tty_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
-extern int tty_mode_ioctl(struct tty_struct *tty, struct file *file,
- unsigned int cmd, unsigned long arg);
-extern int tty_perform_flush(struct tty_struct *tty, unsigned long arg);
-extern dev_t tty_devnum(struct tty_struct *tty);
-extern void proc_clear_tty(struct task_struct *p);
-extern struct tty_struct *get_current_tty(void);
-extern void tty_default_fops(struct file_operations *fops);
-extern struct tty_struct *alloc_tty_struct(void);
-extern int tty_alloc_file(struct file *file);
-extern void tty_add_file(struct tty_struct *tty, struct file *file);
-extern void tty_free_file(struct file *file);
-extern void free_tty_struct(struct tty_struct *tty);
-extern void initialize_tty_struct(struct tty_struct *tty,
- struct tty_driver *driver, int idx);
-extern void deinitialize_tty_struct(struct tty_struct *tty);
-extern struct tty_struct *tty_init_dev(struct tty_driver *driver, int idx);
-extern int tty_release(struct inode *inode, struct file *filp);
-extern int tty_init_termios(struct tty_struct *tty);
-extern int tty_standard_install(struct tty_driver *driver,
- struct tty_struct *tty);
-
-extern struct tty_struct *tty_pair_get_tty(struct tty_struct *tty);
-extern struct tty_struct *tty_pair_get_pty(struct tty_struct *tty);
-
-extern struct mutex tty_mutex;
-extern spinlock_t tty_files_lock;
-
-extern void tty_write_unlock(struct tty_struct *tty);
-extern int tty_write_lock(struct tty_struct *tty, int ndelay);
-#define tty_is_writelocked(tty) (mutex_is_locked(&tty->atomic_write_lock))
-
-extern void tty_port_init(struct tty_port *port);
-extern int tty_port_alloc_xmit_buf(struct tty_port *port);
-extern void tty_port_free_xmit_buf(struct tty_port *port);
-extern void tty_port_put(struct tty_port *port);
-
-static inline struct tty_port *tty_port_get(struct tty_port *port)
-{
- if (port)
- kref_get(&port->kref);
- return port;
-}
-
-extern struct tty_struct *tty_port_tty_get(struct tty_port *port);
-extern void tty_port_tty_set(struct tty_port *port, struct tty_struct *tty);
-extern int tty_port_carrier_raised(struct tty_port *port);
-extern void tty_port_raise_dtr_rts(struct tty_port *port);
-extern void tty_port_lower_dtr_rts(struct tty_port *port);
-extern void tty_port_hangup(struct tty_port *port);
-extern int tty_port_block_til_ready(struct tty_port *port,
- struct tty_struct *tty, struct file *filp);
-extern int tty_port_close_start(struct tty_port *port,
- struct tty_struct *tty, struct file *filp);
-extern void tty_port_close_end(struct tty_port *port, struct tty_struct *tty);
-extern void tty_port_close(struct tty_port *port,
- struct tty_struct *tty, struct file *filp);
-extern int tty_port_open(struct tty_port *port,
- struct tty_struct *tty, struct file *filp);
-static inline int tty_port_users(struct tty_port *port)
-{
- return port->count + port->blocked_open;
-}
-
-extern int tty_register_ldisc(int disc, struct tty_ldisc_ops *new_ldisc);
-extern int tty_unregister_ldisc(int disc);
-extern int tty_set_ldisc(struct tty_struct *tty, int ldisc);
-extern int tty_ldisc_setup(struct tty_struct *tty, struct tty_struct *o_tty);
-extern void tty_ldisc_release(struct tty_struct *tty, struct tty_struct *o_tty);
-extern void tty_ldisc_init(struct tty_struct *tty);
-extern void tty_ldisc_deinit(struct tty_struct *tty);
-extern void tty_ldisc_begin(void);
-/* This last one is just for the tty layer internals and shouldn't be used elsewhere */
-extern void tty_ldisc_enable(struct tty_struct *tty);
-
-
-/* n_tty.c */
-extern struct tty_ldisc_ops tty_ldisc_N_TTY;
-extern void n_tty_inherit_ops(struct tty_ldisc_ops *ops);
-
-/* tty_audit.c */
-#ifdef CONFIG_AUDIT
-extern void tty_audit_add_data(struct tty_struct *tty, unsigned char *data,
- size_t size);
-extern void tty_audit_exit(void);
-extern void tty_audit_fork(struct signal_struct *sig);
-extern void tty_audit_tiocsti(struct tty_struct *tty, char ch);
-extern void tty_audit_push(struct tty_struct *tty);
-extern int tty_audit_push_task(struct task_struct *tsk,
- uid_t loginuid, u32 sessionid);
-#else
-static inline void tty_audit_add_data(struct tty_struct *tty,
- unsigned char *data, size_t size)
-{
-}
-static inline void tty_audit_tiocsti(struct tty_struct *tty, char ch)
-{
-}
-static inline void tty_audit_exit(void)
-{
-}
-static inline void tty_audit_fork(struct signal_struct *sig)
-{
-}
-static inline void tty_audit_push(struct tty_struct *tty)
-{
-}
-static inline int tty_audit_push_task(struct task_struct *tsk,
- uid_t loginuid, u32 sessionid)
-{
- return 0;
-}
-#endif
-
-/* tty_io.c */
-extern int __init tty_init(void);
-
-/* tty_ioctl.c */
-extern int n_tty_ioctl_helper(struct tty_struct *tty, struct file *file,
- unsigned int cmd, unsigned long arg);
-extern long n_tty_compat_ioctl_helper(struct tty_struct *tty, struct file *file,
- unsigned int cmd, unsigned long arg);
-
-/* serial.c */
-
-extern void serial_console_init(void);
-
-/* pcxx.c */
-
-extern int pcxe_open(struct tty_struct *tty, struct file *filp);
-
-/* vt.c */
-
-extern int vt_ioctl(struct tty_struct *tty,
- unsigned int cmd, unsigned long arg);
-
-extern long vt_compat_ioctl(struct tty_struct *tty,
- unsigned int cmd, unsigned long arg);
-
-/* tty_mutex.c */
-/* functions for preparation of BKL removal */
-extern void __lockfunc tty_lock(void) __acquires(tty_lock);
-extern void __lockfunc tty_unlock(void) __releases(tty_lock);
-
-/*
- * this shall be called only from where BTM is held (like close)
- *
- * We need this to ensure nobody waits for us to finish while we are waiting.
- * Without this we were encountering system stalls.
- *
- * This should be indeed removed with BTM removal later.
- *
- * Locking: BTM required. Nobody is allowed to hold port->mutex.
- */
-static inline void tty_wait_until_sent_from_close(struct tty_struct *tty,
- long timeout)
-{
- tty_unlock(); /* tty->ops->close holds the BTM, drop it while waiting */
- tty_wait_until_sent(tty, timeout);
- tty_lock();
-}
-
-/*
- * wait_event_interruptible_tty -- wait for a condition with the tty lock held
- *
- * The condition we are waiting for might take a long time to
- * become true, or might depend on another thread taking the
- * BTM. In either case, we need to drop the BTM to guarantee
- * forward progress. This is a leftover from the conversion
- * from the BKL and should eventually get removed as the BTM
- * falls out of use.
- *
- * Do not use in new code.
- */
-#define wait_event_interruptible_tty(wq, condition) \
-({ \
- int __ret = 0; \
- if (!(condition)) { \
- __wait_event_interruptible_tty(wq, condition, __ret); \
- } \
- __ret; \
-})
-
-#define __wait_event_interruptible_tty(wq, condition, ret) \
-do { \
- DEFINE_WAIT(__wait); \
- \
- for (;;) { \
- prepare_to_wait(&wq, &__wait, TASK_INTERRUPTIBLE); \
- if (condition) \
- break; \
- if (!signal_pending(current)) { \
- tty_unlock(); \
- schedule(); \
- tty_lock(); \
- continue; \
- } \
- ret = -ERESTARTSYS; \
- break; \
- } \
- finish_wait(&wq, &__wait); \
-} while (0)
-
-
-#endif /* __KERNEL__ */
-#endif
diff --git a/ANDROID_3.4.5/include/linux/tty_driver.h b/ANDROID_3.4.5/include/linux/tty_driver.h
deleted file mode 100644
index 6e6dbb74..00000000
--- a/ANDROID_3.4.5/include/linux/tty_driver.h
+++ /dev/null
@@ -1,412 +0,0 @@
-#ifndef _LINUX_TTY_DRIVER_H
-#define _LINUX_TTY_DRIVER_H
-
-/*
- * This structure defines the interface between the low-level tty
- * driver and the tty routines. The following routines can be
- * defined; unless noted otherwise, they are optional, and can be
- * filled in with a null pointer.
- *
- * struct tty_struct * (*lookup)(struct tty_driver *self, int idx)
- *
- * Return the tty device corresponding to idx, NULL if there is not
- * one currently in use and an ERR_PTR value on error. Called under
- * tty_mutex (for now!)
- *
- * Optional method. Default behaviour is to use the ttys array
- *
- * int (*install)(struct tty_driver *self, struct tty_struct *tty)
- *
- * Install a new tty into the tty driver internal tables. Used in
- * conjunction with lookup and remove methods.
- *
- * Optional method. Default behaviour is to use the ttys array
- *
- * void (*remove)(struct tty_driver *self, struct tty_struct *tty)
- *
- * Remove a closed tty from the tty driver internal tables. Used in
- * conjunction with lookup and remove methods.
- *
- * Optional method. Default behaviour is to use the ttys array
- *
- * int (*open)(struct tty_struct * tty, struct file * filp);
- *
- * This routine is called when a particular tty device is opened.
- * This routine is mandatory; if this routine is not filled in,
- * the attempted open will fail with ENODEV.
- *
- * Required method.
- *
- * void (*close)(struct tty_struct * tty, struct file * filp);
- *
- * This routine is called when a particular tty device is closed.
- *
- * Required method.
- *
- * void (*shutdown)(struct tty_struct * tty);
- *
- * This routine is called synchronously when a particular tty device
- * is closed for the last time freeing up the resources.
- * Note that tty_shutdown() is not called if ops->shutdown is defined.
- * This means one is responsible to take care of calling ops->remove (e.g.
- * via tty_driver_remove_tty) and releasing tty->termios.
- * Note that this hook may be called from *all* the contexts where one
- * uses tty refcounting (e.g. tty_port_tty_get).
- *
- *
- * void (*cleanup)(struct tty_struct * tty);
- *
- * This routine is called asynchronously when a particular tty device
- * is closed for the last time freeing up the resources. This is
- * actually the second part of shutdown for routines that might sleep.
- *
- *
- * int (*write)(struct tty_struct * tty,
- * const unsigned char *buf, int count);
- *
- * This routine is called by the kernel to write a series of
- * characters to the tty device. The characters may come from
- * user space or kernel space. This routine will return the
- * number of characters actually accepted for writing.
- *
- * Optional: Required for writable devices.
- *
- * int (*put_char)(struct tty_struct *tty, unsigned char ch);
- *
- * This routine is called by the kernel to write a single
- * character to the tty device. If the kernel uses this routine,
- * it must call the flush_chars() routine (if defined) when it is
- * done stuffing characters into the driver. If there is no room
- * in the queue, the character is ignored.
- *
- * Optional: Kernel will use the write method if not provided.
- *
- * Note: Do not call this function directly, call tty_put_char
- *
- * void (*flush_chars)(struct tty_struct *tty);
- *
- * This routine is called by the kernel after it has written a
- * series of characters to the tty device using put_char().
- *
- * Optional:
- *
- * Note: Do not call this function directly, call tty_driver_flush_chars
- *
- * int (*write_room)(struct tty_struct *tty);
- *
- * This routine returns the numbers of characters the tty driver
- * will accept for queuing to be written. This number is subject
- * to change as output buffers get emptied, or if the output flow
- * control is acted.
- *
- * Required if write method is provided else not needed.
- *
- * Note: Do not call this function directly, call tty_write_room
- *
- * int (*ioctl)(struct tty_struct *tty, unsigned int cmd, unsigned long arg);
- *
- * This routine allows the tty driver to implement
- * device-specific ioctls. If the ioctl number passed in cmd
- * is not recognized by the driver, it should return ENOIOCTLCMD.
- *
- * Optional
- *
- * long (*compat_ioctl)(struct tty_struct *tty,,
- * unsigned int cmd, unsigned long arg);
- *
- * implement ioctl processing for 32 bit process on 64 bit system
- *
- * Optional
- *
- * void (*set_termios)(struct tty_struct *tty, struct ktermios * old);
- *
- * This routine allows the tty driver to be notified when
- * device's termios settings have changed.
- *
- * Optional: Called under the termios lock
- *
- *
- * void (*set_ldisc)(struct tty_struct *tty);
- *
- * This routine allows the tty driver to be notified when the
- * device's termios settings have changed.
- *
- * Optional: Called under BKL (currently)
- *
- * void (*throttle)(struct tty_struct * tty);
- *
- * This routine notifies the tty driver that input buffers for
- * the line discipline are close to full, and it should somehow
- * signal that no more characters should be sent to the tty.
- *
- * Optional: Always invoke via tty_throttle(), called under the
- * termios lock.
- *
- * void (*unthrottle)(struct tty_struct * tty);
- *
- * This routine notifies the tty drivers that it should signals
- * that characters can now be sent to the tty without fear of
- * overrunning the input buffers of the line disciplines.
- *
- * Optional: Always invoke via tty_unthrottle(), called under the
- * termios lock.
- *
- * void (*stop)(struct tty_struct *tty);
- *
- * This routine notifies the tty driver that it should stop
- * outputting characters to the tty device.
- *
- * Optional:
- *
- * Note: Call stop_tty not this method.
- *
- * void (*start)(struct tty_struct *tty);
- *
- * This routine notifies the tty driver that it resume sending
- * characters to the tty device.
- *
- * Optional:
- *
- * Note: Call start_tty not this method.
- *
- * void (*hangup)(struct tty_struct *tty);
- *
- * This routine notifies the tty driver that it should hang up the
- * tty device.
- *
- * Optional:
- *
- * int (*break_ctl)(struct tty_struct *tty, int state);
- *
- * This optional routine requests the tty driver to turn on or
- * off BREAK status on the RS-232 port. If state is -1,
- * then the BREAK status should be turned on; if state is 0, then
- * BREAK should be turned off.
- *
- * If this routine is implemented, the high-level tty driver will
- * handle the following ioctls: TCSBRK, TCSBRKP, TIOCSBRK,
- * TIOCCBRK.
- *
- * If the driver sets TTY_DRIVER_HARDWARE_BREAK then the interface
- * will also be called with actual times and the hardware is expected
- * to do the delay work itself. 0 and -1 are still used for on/off.
- *
- * Optional: Required for TCSBRK/BRKP/etc handling.
- *
- * void (*wait_until_sent)(struct tty_struct *tty, int timeout);
- *
- * This routine waits until the device has written out all of the
- * characters in its transmitter FIFO.
- *
- * Optional: If not provided the device is assumed to have no FIFO
- *
- * Note: Usually correct to call tty_wait_until_sent
- *
- * void (*send_xchar)(struct tty_struct *tty, char ch);
- *
- * This routine is used to send a high-priority XON/XOFF
- * character to the device.
- *
- * Optional: If not provided then the write method is called under
- * the atomic write lock to keep it serialized with the ldisc.
- *
- * int (*resize)(struct tty_struct *tty, struct winsize *ws)
- *
- * Called when a termios request is issued which changes the
- * requested terminal geometry.
- *
- * Optional: the default action is to update the termios structure
- * without error. This is usually the correct behaviour. Drivers should
- * not force errors here if they are not resizable objects (eg a serial
- * line). See tty_do_resize() if you need to wrap the standard method
- * in your own logic - the usual case.
- *
- * void (*set_termiox)(struct tty_struct *tty, struct termiox *new);
- *
- * Called when the device receives a termiox based ioctl. Passes down
- * the requested data from user space. This method will not be invoked
- * unless the tty also has a valid tty->termiox pointer.
- *
- * Optional: Called under the termios lock
- *
- * int (*get_icount)(struct tty_struct *tty, struct serial_icounter *icount);
- *
- * Called when the device receives a TIOCGICOUNT ioctl. Passed a kernel
- * structure to complete. This method is optional and will only be called
- * if provided (otherwise EINVAL will be returned).
- */
-
-#include <linux/export.h>
-#include <linux/fs.h>
-#include <linux/list.h>
-#include <linux/cdev.h>
-#include <linux/termios.h>
-
-struct tty_struct;
-struct tty_driver;
-struct serial_icounter_struct;
-
-struct tty_operations {
- struct tty_struct * (*lookup)(struct tty_driver *driver,
- struct inode *inode, int idx);
- int (*install)(struct tty_driver *driver, struct tty_struct *tty);
- void (*remove)(struct tty_driver *driver, struct tty_struct *tty);
- int (*open)(struct tty_struct * tty, struct file * filp);
- void (*close)(struct tty_struct * tty, struct file * filp);
- void (*shutdown)(struct tty_struct *tty);
- void (*cleanup)(struct tty_struct *tty);
- int (*write)(struct tty_struct * tty,
- const unsigned char *buf, int count);
- int (*put_char)(struct tty_struct *tty, unsigned char ch);
- void (*flush_chars)(struct tty_struct *tty);
- int (*write_room)(struct tty_struct *tty);
- int (*chars_in_buffer)(struct tty_struct *tty);
- int (*ioctl)(struct tty_struct *tty,
- unsigned int cmd, unsigned long arg);
- long (*compat_ioctl)(struct tty_struct *tty,
- unsigned int cmd, unsigned long arg);
- void (*set_termios)(struct tty_struct *tty, struct ktermios * old);
- void (*throttle)(struct tty_struct * tty);
- void (*unthrottle)(struct tty_struct * tty);
- void (*stop)(struct tty_struct *tty);
- void (*start)(struct tty_struct *tty);
- void (*hangup)(struct tty_struct *tty);
- int (*break_ctl)(struct tty_struct *tty, int state);
- void (*flush_buffer)(struct tty_struct *tty);
- void (*set_ldisc)(struct tty_struct *tty);
- void (*wait_until_sent)(struct tty_struct *tty, int timeout);
- void (*send_xchar)(struct tty_struct *tty, char ch);
- int (*tiocmget)(struct tty_struct *tty);
- int (*tiocmset)(struct tty_struct *tty,
- unsigned int set, unsigned int clear);
- int (*resize)(struct tty_struct *tty, struct winsize *ws);
- int (*set_termiox)(struct tty_struct *tty, struct termiox *tnew);
- int (*get_icount)(struct tty_struct *tty,
- struct serial_icounter_struct *icount);
-#ifdef CONFIG_CONSOLE_POLL
- int (*poll_init)(struct tty_driver *driver, int line, char *options);
- int (*poll_get_char)(struct tty_driver *driver, int line);
- void (*poll_put_char)(struct tty_driver *driver, int line, char ch);
-#endif
- const struct file_operations *proc_fops;
-};
-
-struct tty_driver {
- int magic; /* magic number for this structure */
- struct kref kref; /* Reference management */
- struct cdev cdev;
- struct module *owner;
- const char *driver_name;
- const char *name;
- int name_base; /* offset of printed name */
- int major; /* major device number */
- int minor_start; /* start of minor device number */
- int num; /* number of devices allocated */
- short type; /* type of tty driver */
- short subtype; /* subtype of tty driver */
- struct ktermios init_termios; /* Initial termios */
- int flags; /* tty driver flags */
- struct proc_dir_entry *proc_entry; /* /proc fs entry */
- struct tty_driver *other; /* only used for the PTY driver */
-
- /*
- * Pointer to the tty data structures
- */
- struct tty_struct **ttys;
- struct ktermios **termios;
- void *driver_state;
-
- /*
- * Driver methods
- */
-
- const struct tty_operations *ops;
- struct list_head tty_drivers;
-};
-
-extern struct list_head tty_drivers;
-
-extern struct tty_driver *__alloc_tty_driver(int lines, struct module *owner);
-extern void put_tty_driver(struct tty_driver *driver);
-extern void tty_set_operations(struct tty_driver *driver,
- const struct tty_operations *op);
-extern struct tty_driver *tty_find_polling_driver(char *name, int *line);
-
-extern void tty_driver_kref_put(struct tty_driver *driver);
-
-#define alloc_tty_driver(lines) __alloc_tty_driver(lines, THIS_MODULE)
-
-static inline struct tty_driver *tty_driver_kref_get(struct tty_driver *d)
-{
- kref_get(&d->kref);
- return d;
-}
-
-/* tty driver magic number */
-#define TTY_DRIVER_MAGIC 0x5402
-
-/*
- * tty driver flags
- *
- * TTY_DRIVER_RESET_TERMIOS --- requests the tty layer to reset the
- * termios setting when the last process has closed the device.
- * Used for PTY's, in particular.
- *
- * TTY_DRIVER_REAL_RAW --- if set, indicates that the driver will
- * guarantee never not to set any special character handling
- * flags if ((IGNBRK || (!BRKINT && !PARMRK)) && (IGNPAR ||
- * !INPCK)). That is, if there is no reason for the driver to
- * send notifications of parity and break characters up to the
- * line driver, it won't do so. This allows the line driver to
- * optimize for this case if this flag is set. (Note that there
- * is also a promise, if the above case is true, not to signal
- * overruns, either.)
- *
- * TTY_DRIVER_DYNAMIC_DEV --- if set, the individual tty devices need
- * to be registered with a call to tty_register_device() when the
- * device is found in the system and unregistered with a call to
- * tty_unregister_device() so the devices will be show up
- * properly in sysfs. If not set, driver->num entries will be
- * created by the tty core in sysfs when tty_register_driver() is
- * called. This is to be used by drivers that have tty devices
- * that can appear and disappear while the main tty driver is
- * registered with the tty core.
- *
- * TTY_DRIVER_DEVPTS_MEM -- don't use the standard arrays, instead
- * use dynamic memory keyed through the devpts filesystem. This
- * is only applicable to the pty driver.
- *
- * TTY_DRIVER_HARDWARE_BREAK -- hardware handles break signals. Pass
- * the requested timeout to the caller instead of using a simple
- * on/off interface.
- *
- */
-#define TTY_DRIVER_INSTALLED 0x0001
-#define TTY_DRIVER_RESET_TERMIOS 0x0002
-#define TTY_DRIVER_REAL_RAW 0x0004
-#define TTY_DRIVER_DYNAMIC_DEV 0x0008
-#define TTY_DRIVER_DEVPTS_MEM 0x0010
-#define TTY_DRIVER_HARDWARE_BREAK 0x0020
-
-/* tty driver types */
-#define TTY_DRIVER_TYPE_SYSTEM 0x0001
-#define TTY_DRIVER_TYPE_CONSOLE 0x0002
-#define TTY_DRIVER_TYPE_SERIAL 0x0003
-#define TTY_DRIVER_TYPE_PTY 0x0004
-#define TTY_DRIVER_TYPE_SCC 0x0005 /* scc driver */
-#define TTY_DRIVER_TYPE_SYSCONS 0x0006
-
-/* system subtypes (magic, used by tty_io.c) */
-#define SYSTEM_TYPE_TTY 0x0001
-#define SYSTEM_TYPE_CONSOLE 0x0002
-#define SYSTEM_TYPE_SYSCONS 0x0003
-#define SYSTEM_TYPE_SYSPTMX 0x0004
-
-/* pty subtypes (magic, used by tty_io.c) */
-#define PTY_TYPE_MASTER 0x0001
-#define PTY_TYPE_SLAVE 0x0002
-
-/* serial subtype definitions */
-#define SERIAL_TYPE_NORMAL 1
-
-#endif /* #ifdef _LINUX_TTY_DRIVER_H */
diff --git a/ANDROID_3.4.5/include/linux/tty_flip.h b/ANDROID_3.4.5/include/linux/tty_flip.h
deleted file mode 100644
index 9239d033..00000000
--- a/ANDROID_3.4.5/include/linux/tty_flip.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef _LINUX_TTY_FLIP_H
-#define _LINUX_TTY_FLIP_H
-
-extern int tty_buffer_request_room(struct tty_struct *tty, size_t size);
-extern int tty_insert_flip_string_flags(struct tty_struct *tty, const unsigned char *chars, const char *flags, size_t size);
-extern int tty_insert_flip_string_fixed_flag(struct tty_struct *tty, const unsigned char *chars, char flag, size_t size);
-extern int tty_prepare_flip_string(struct tty_struct *tty, unsigned char **chars, size_t size);
-extern int tty_prepare_flip_string_flags(struct tty_struct *tty, unsigned char **chars, char **flags, size_t size);
-void tty_schedule_flip(struct tty_struct *tty);
-
-static inline int tty_insert_flip_char(struct tty_struct *tty,
- unsigned char ch, char flag)
-{
- struct tty_buffer *tb = tty->buf.tail;
- if (tb && tb->used < tb->size) {
- tb->flag_buf_ptr[tb->used] = flag;
- tb->char_buf_ptr[tb->used++] = ch;
- return 1;
- }
- return tty_insert_flip_string_flags(tty, &ch, &flag, 1);
-}
-
-static inline int tty_insert_flip_string(struct tty_struct *tty, const unsigned char *chars, size_t size)
-{
- return tty_insert_flip_string_fixed_flag(tty, chars, TTY_NORMAL, size);
-}
-
-#endif /* _LINUX_TTY_FLIP_H */
diff --git a/ANDROID_3.4.5/include/linux/tty_ldisc.h b/ANDROID_3.4.5/include/linux/tty_ldisc.h
deleted file mode 100644
index ff7dc086..00000000
--- a/ANDROID_3.4.5/include/linux/tty_ldisc.h
+++ /dev/null
@@ -1,166 +0,0 @@
-#ifndef _LINUX_TTY_LDISC_H
-#define _LINUX_TTY_LDISC_H
-
-/*
- * This structure defines the interface between the tty line discipline
- * implementation and the tty routines. The following routines can be
- * defined; unless noted otherwise, they are optional, and can be
- * filled in with a null pointer.
- *
- * int (*open)(struct tty_struct *);
- *
- * This function is called when the line discipline is associated
- * with the tty. The line discipline can use this as an
- * opportunity to initialize any state needed by the ldisc routines.
- *
- * void (*close)(struct tty_struct *);
- *
- * This function is called when the line discipline is being
- * shutdown, either because the tty is being closed or because
- * the tty is being changed to use a new line discipline
- *
- * void (*flush_buffer)(struct tty_struct *tty);
- *
- * This function instructs the line discipline to clear its
- * buffers of any input characters it may have queued to be
- * delivered to the user mode process.
- *
- * ssize_t (*chars_in_buffer)(struct tty_struct *tty);
- *
- * This function returns the number of input characters the line
- * discipline may have queued up to be delivered to the user mode
- * process.
- *
- * ssize_t (*read)(struct tty_struct * tty, struct file * file,
- * unsigned char * buf, size_t nr);
- *
- * This function is called when the user requests to read from
- * the tty. The line discipline will return whatever characters
- * it has buffered up for the user. If this function is not
- * defined, the user will receive an EIO error.
- *
- * ssize_t (*write)(struct tty_struct * tty, struct file * file,
- * const unsigned char * buf, size_t nr);
- *
- * This function is called when the user requests to write to the
- * tty. The line discipline will deliver the characters to the
- * low-level tty device for transmission, optionally performing
- * some processing on the characters first. If this function is
- * not defined, the user will receive an EIO error.
- *
- * int (*ioctl)(struct tty_struct * tty, struct file * file,
- * unsigned int cmd, unsigned long arg);
- *
- * This function is called when the user requests an ioctl which
- * is not handled by the tty layer or the low-level tty driver.
- * It is intended for ioctls which affect line discpline
- * operation. Note that the search order for ioctls is (1) tty
- * layer, (2) tty low-level driver, (3) line discpline. So a
- * low-level driver can "grab" an ioctl request before the line
- * discpline has a chance to see it.
- *
- * long (*compat_ioctl)(struct tty_struct * tty, struct file * file,
- * unsigned int cmd, unsigned long arg);
- *
- * Process ioctl calls from 32-bit process on 64-bit system
- *
- * void (*set_termios)(struct tty_struct *tty, struct ktermios * old);
- *
- * This function notifies the line discpline that a change has
- * been made to the termios structure.
- *
- * int (*poll)(struct tty_struct * tty, struct file * file,
- * poll_table *wait);
- *
- * This function is called when a user attempts to select/poll on a
- * tty device. It is solely the responsibility of the line
- * discipline to handle poll requests.
- *
- * void (*receive_buf)(struct tty_struct *, const unsigned char *cp,
- * char *fp, int count);
- *
- * This function is called by the low-level tty driver to send
- * characters received by the hardware to the line discpline for
- * processing. <cp> is a pointer to the buffer of input
- * character received by the device. <fp> is a pointer to a
- * pointer of flag bytes which indicate whether a character was
- * received with a parity error, etc.
- *
- * void (*write_wakeup)(struct tty_struct *);
- *
- * This function is called by the low-level tty driver to signal
- * that line discpline should try to send more characters to the
- * low-level driver for transmission. If the line discpline does
- * not have any more data to send, it can just return.
- *
- * int (*hangup)(struct tty_struct *)
- *
- * Called on a hangup. Tells the discipline that it should
- * cease I/O to the tty driver. Can sleep. The driver should
- * seek to perform this action quickly but should wait until
- * any pending driver I/O is completed.
- *
- * void (*dcd_change)(struct tty_struct *tty, unsigned int status,
- * struct pps_event_time *ts)
- *
- * Tells the discipline that the DCD pin has changed its status and
- * the relative timestamp. Pointer ts cannot be NULL.
- */
-
-#include <linux/fs.h>
-#include <linux/wait.h>
-#include <linux/pps_kernel.h>
-
-struct tty_ldisc_ops {
- int magic;
- char *name;
- int num;
- int flags;
-
- /*
- * The following routines are called from above.
- */
- int (*open)(struct tty_struct *);
- void (*close)(struct tty_struct *);
- void (*flush_buffer)(struct tty_struct *tty);
- ssize_t (*chars_in_buffer)(struct tty_struct *tty);
- ssize_t (*read)(struct tty_struct * tty, struct file * file,
- unsigned char __user * buf, size_t nr);
- ssize_t (*write)(struct tty_struct * tty, struct file * file,
- const unsigned char * buf, size_t nr);
- int (*ioctl)(struct tty_struct * tty, struct file * file,
- unsigned int cmd, unsigned long arg);
- long (*compat_ioctl)(struct tty_struct * tty, struct file * file,
- unsigned int cmd, unsigned long arg);
- void (*set_termios)(struct tty_struct *tty, struct ktermios * old);
- unsigned int (*poll)(struct tty_struct *, struct file *,
- struct poll_table_struct *);
- int (*hangup)(struct tty_struct *tty);
-
- /*
- * The following routines are called from below.
- */
- void (*receive_buf)(struct tty_struct *, const unsigned char *cp,
- char *fp, int count);
- void (*write_wakeup)(struct tty_struct *);
- void (*dcd_change)(struct tty_struct *, unsigned int,
- struct pps_event_time *);
-
- struct module *owner;
-
- int refcount;
-};
-
-struct tty_ldisc {
- struct tty_ldisc_ops *ops;
- atomic_t users;
-};
-
-#define TTY_LDISC_MAGIC 0x5403
-
-#define LDISC_FLAG_DEFINED 0x00000001
-
-#define MODULE_ALIAS_LDISC(ldisc) \
- MODULE_ALIAS("tty-ldisc-" __stringify(ldisc))
-
-#endif /* _LINUX_TTY_LDISC_H */
diff --git a/ANDROID_3.4.5/include/linux/typecheck.h b/ANDROID_3.4.5/include/linux/typecheck.h
deleted file mode 100644
index eb5b74a5..00000000
--- a/ANDROID_3.4.5/include/linux/typecheck.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef TYPECHECK_H_INCLUDED
-#define TYPECHECK_H_INCLUDED
-
-/*
- * Check at compile time that something is of a particular type.
- * Always evaluates to 1 so you may use it easily in comparisons.
- */
-#define typecheck(type,x) \
-({ type __dummy; \
- typeof(x) __dummy2; \
- (void)(&__dummy == &__dummy2); \
- 1; \
-})
-
-/*
- * Check at compile time that 'function' is a certain type, or is a pointer
- * to that type (needs to use typedef for the function type.)
- */
-#define typecheck_fn(type,function) \
-({ typeof(type) __tmp = function; \
- (void)__tmp; \
-})
-
-#endif /* TYPECHECK_H_INCLUDED */
diff --git a/ANDROID_3.4.5/include/linux/types.h b/ANDROID_3.4.5/include/linux/types.h
deleted file mode 100644
index 7f480db6..00000000
--- a/ANDROID_3.4.5/include/linux/types.h
+++ /dev/null
@@ -1,260 +0,0 @@
-#ifndef _LINUX_TYPES_H
-#define _LINUX_TYPES_H
-
-#include <asm/types.h>
-
-#ifndef __ASSEMBLY__
-#ifdef __KERNEL__
-
-#define DECLARE_BITMAP(name,bits) \
- unsigned long name[BITS_TO_LONGS(bits)]
-#else
-#ifndef __EXPORTED_HEADERS__
-#warning "Attempt to use kernel headers from user space, see http://kernelnewbies.org/KernelHeaders"
-#endif /* __EXPORTED_HEADERS__ */
-#endif
-
-#include <linux/posix_types.h>
-
-#ifdef __KERNEL__
-
-typedef __u32 __kernel_dev_t;
-
-typedef __kernel_fd_set fd_set;
-typedef __kernel_dev_t dev_t;
-typedef __kernel_ino_t ino_t;
-typedef __kernel_mode_t mode_t;
-typedef unsigned short umode_t;
-typedef __kernel_nlink_t nlink_t;
-typedef __kernel_off_t off_t;
-typedef __kernel_pid_t pid_t;
-typedef __kernel_daddr_t daddr_t;
-typedef __kernel_key_t key_t;
-typedef __kernel_suseconds_t suseconds_t;
-typedef __kernel_timer_t timer_t;
-typedef __kernel_clockid_t clockid_t;
-typedef __kernel_mqd_t mqd_t;
-
-typedef _Bool bool;
-
-typedef __kernel_uid32_t uid_t;
-typedef __kernel_gid32_t gid_t;
-typedef __kernel_uid16_t uid16_t;
-typedef __kernel_gid16_t gid16_t;
-
-typedef unsigned long uintptr_t;
-
-#ifdef CONFIG_UID16
-/* This is defined by include/asm-{arch}/posix_types.h */
-typedef __kernel_old_uid_t old_uid_t;
-typedef __kernel_old_gid_t old_gid_t;
-#endif /* CONFIG_UID16 */
-
-#if defined(__GNUC__)
-typedef __kernel_loff_t loff_t;
-#endif
-
-/*
- * The following typedefs are also protected by individual ifdefs for
- * historical reasons:
- */
-#ifndef _SIZE_T
-#define _SIZE_T
-typedef __kernel_size_t size_t;
-#endif
-
-#ifndef _SSIZE_T
-#define _SSIZE_T
-typedef __kernel_ssize_t ssize_t;
-#endif
-
-#ifndef _PTRDIFF_T
-#define _PTRDIFF_T
-typedef __kernel_ptrdiff_t ptrdiff_t;
-#endif
-
-#ifndef _TIME_T
-#define _TIME_T
-typedef __kernel_time_t time_t;
-#endif
-
-#ifndef _CLOCK_T
-#define _CLOCK_T
-typedef __kernel_clock_t clock_t;
-#endif
-
-#ifndef _CADDR_T
-#define _CADDR_T
-typedef __kernel_caddr_t caddr_t;
-#endif
-
-/* bsd */
-typedef unsigned char u_char;
-typedef unsigned short u_short;
-typedef unsigned int u_int;
-typedef unsigned long u_long;
-
-/* sysv */
-typedef unsigned char unchar;
-typedef unsigned short ushort;
-typedef unsigned int uint;
-typedef unsigned long ulong;
-
-#ifndef __BIT_TYPES_DEFINED__
-#define __BIT_TYPES_DEFINED__
-
-typedef __u8 u_int8_t;
-typedef __s8 int8_t;
-typedef __u16 u_int16_t;
-typedef __s16 int16_t;
-typedef __u32 u_int32_t;
-typedef __s32 int32_t;
-
-#endif /* !(__BIT_TYPES_DEFINED__) */
-
-typedef __u8 uint8_t;
-typedef __u16 uint16_t;
-typedef __u32 uint32_t;
-
-#if defined(__GNUC__)
-typedef __u64 uint64_t;
-typedef __u64 u_int64_t;
-typedef __s64 int64_t;
-#endif
-
-/* this is a special 64bit data type that is 8-byte aligned */
-#define aligned_u64 __u64 __attribute__((aligned(8)))
-#define aligned_be64 __be64 __attribute__((aligned(8)))
-#define aligned_le64 __le64 __attribute__((aligned(8)))
-
-/**
- * The type used for indexing onto a disc or disc partition.
- *
- * Linux always considers sectors to be 512 bytes long independently
- * of the devices real block size.
- *
- * blkcnt_t is the type of the inode's block count.
- */
-#ifdef CONFIG_LBDAF
-typedef u64 sector_t;
-typedef u64 blkcnt_t;
-#else
-typedef unsigned long sector_t;
-typedef unsigned long blkcnt_t;
-#endif
-
-/*
- * The type of an index into the pagecache. Use a #define so asm/types.h
- * can override it.
- */
-#ifndef pgoff_t
-#define pgoff_t unsigned long
-#endif
-
-#ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT
-typedef u64 dma_addr_t;
-#else
-typedef u32 dma_addr_t;
-#endif /* dma_addr_t */
-
-#endif /* __KERNEL__ */
-
-/*
- * Below are truly Linux-specific types that should never collide with
- * any application/library that wants linux/types.h.
- */
-
-#ifdef __CHECKER__
-#define __bitwise__ __attribute__((bitwise))
-#else
-#define __bitwise__
-#endif
-#ifdef __CHECK_ENDIAN__
-#define __bitwise __bitwise__
-#else
-#define __bitwise
-#endif
-
-typedef __u16 __bitwise __le16;
-typedef __u16 __bitwise __be16;
-typedef __u32 __bitwise __le32;
-typedef __u32 __bitwise __be32;
-typedef __u64 __bitwise __le64;
-typedef __u64 __bitwise __be64;
-
-typedef __u16 __bitwise __sum16;
-typedef __u32 __bitwise __wsum;
-
-/*
- * aligned_u64 should be used in defining kernel<->userspace ABIs to avoid
- * common 32/64-bit compat problems.
- * 64-bit values align to 4-byte boundaries on x86_32 (and possibly other
- * architectures) and to 8-byte boundaries on 64-bit architectures. The new
- * aligned_64 type enforces 8-byte alignment so that structs containing
- * aligned_64 values have the same alignment on 32-bit and 64-bit architectures.
- * No conversions are necessary between 32-bit user-space and a 64-bit kernel.
- */
-#define __aligned_u64 __u64 __attribute__((aligned(8)))
-#define __aligned_be64 __be64 __attribute__((aligned(8)))
-#define __aligned_le64 __le64 __attribute__((aligned(8)))
-
-#ifdef __KERNEL__
-typedef unsigned __bitwise__ gfp_t;
-typedef unsigned __bitwise__ fmode_t;
-
-#ifdef CONFIG_PHYS_ADDR_T_64BIT
-typedef u64 phys_addr_t;
-#else
-typedef u32 phys_addr_t;
-#endif
-
-typedef phys_addr_t resource_size_t;
-
-/*
- * This type is the placeholder for a hardware interrupt number. It has to be
- * big enough to enclose whatever representation is used by a given platform.
- */
-typedef unsigned long irq_hw_number_t;
-
-typedef struct {
- int counter;
-} atomic_t;
-
-#ifdef CONFIG_64BIT
-typedef struct {
- long counter;
-} atomic64_t;
-#endif
-
-struct list_head {
- struct list_head *next, *prev;
-};
-
-struct hlist_head {
- struct hlist_node *first;
-};
-
-struct hlist_node {
- struct hlist_node *next, **pprev;
-};
-
-struct ustat {
- __kernel_daddr_t f_tfree;
- __kernel_ino_t f_tinode;
- char f_fname[6];
- char f_fpack[6];
-};
-
-/**
- * struct rcu_head - callback structure for use with RCU
- * @next: next update requests in a list
- * @func: actual update function to call after the grace period.
- */
-struct rcu_head {
- struct rcu_head *next;
- void (*func)(struct rcu_head *head);
-};
-
-#endif /* __KERNEL__ */
-#endif /* __ASSEMBLY__ */
-#endif /* _LINUX_TYPES_H */
diff --git a/ANDROID_3.4.5/include/linux/u64_stats_sync.h b/ANDROID_3.4.5/include/linux/u64_stats_sync.h
deleted file mode 100644
index 8da8c4e8..00000000
--- a/ANDROID_3.4.5/include/linux/u64_stats_sync.h
+++ /dev/null
@@ -1,140 +0,0 @@
-#ifndef _LINUX_U64_STATS_SYNC_H
-#define _LINUX_U64_STATS_SYNC_H
-
-/*
- * To properly implement 64bits network statistics on 32bit and 64bit hosts,
- * we provide a synchronization point, that is a noop on 64bit or UP kernels.
- *
- * Key points :
- * 1) Use a seqcount on SMP 32bits, with low overhead.
- * 2) Whole thing is a noop on 64bit arches or UP kernels.
- * 3) Write side must ensure mutual exclusion or one seqcount update could
- * be lost, thus blocking readers forever.
- * If this synchronization point is not a mutex, but a spinlock or
- * spinlock_bh() or disable_bh() :
- * 3.1) Write side should not sleep.
- * 3.2) Write side should not allow preemption.
- * 3.3) If applicable, interrupts should be disabled.
- *
- * 4) If reader fetches several counters, there is no guarantee the whole values
- * are consistent (remember point 1) : this is a noop on 64bit arches anyway)
- *
- * 5) readers are allowed to sleep or be preempted/interrupted : They perform
- * pure reads. But if they have to fetch many values, it's better to not allow
- * preemptions/interruptions to avoid many retries.
- *
- * 6) If counter might be written by an interrupt, readers should block interrupts.
- * (On UP, there is no seqcount_t protection, a reader allowing interrupts could
- * read partial values)
- *
- * 7) For softirq uses, readers can use u64_stats_fetch_begin_bh() and
- * u64_stats_fetch_retry_bh() helpers
- *
- * Usage :
- *
- * Stats producer (writer) should use following template granted it already got
- * an exclusive access to counters (a lock is already taken, or per cpu
- * data is used [in a non preemptable context])
- *
- * spin_lock_bh(...) or other synchronization to get exclusive access
- * ...
- * u64_stats_update_begin(&stats->syncp);
- * stats->bytes64 += len; // non atomic operation
- * stats->packets64++; // non atomic operation
- * u64_stats_update_end(&stats->syncp);
- *
- * While a consumer (reader) should use following template to get consistent
- * snapshot for each variable (but no guarantee on several ones)
- *
- * u64 tbytes, tpackets;
- * unsigned int start;
- *
- * do {
- * start = u64_stats_fetch_begin(&stats->syncp);
- * tbytes = stats->bytes64; // non atomic operation
- * tpackets = stats->packets64; // non atomic operation
- * } while (u64_stats_fetch_retry(&stats->syncp, start));
- *
- *
- * Example of use in drivers/net/loopback.c, using per_cpu containers,
- * in BH disabled context.
- */
-#include <linux/seqlock.h>
-
-struct u64_stats_sync {
-#if BITS_PER_LONG==32 && defined(CONFIG_SMP)
- seqcount_t seq;
-#endif
-};
-
-static inline void u64_stats_update_begin(struct u64_stats_sync *syncp)
-{
-#if BITS_PER_LONG==32 && defined(CONFIG_SMP)
- write_seqcount_begin(&syncp->seq);
-#endif
-}
-
-static inline void u64_stats_update_end(struct u64_stats_sync *syncp)
-{
-#if BITS_PER_LONG==32 && defined(CONFIG_SMP)
- write_seqcount_end(&syncp->seq);
-#endif
-}
-
-static inline unsigned int u64_stats_fetch_begin(const struct u64_stats_sync *syncp)
-{
-#if BITS_PER_LONG==32 && defined(CONFIG_SMP)
- return read_seqcount_begin(&syncp->seq);
-#else
-#if BITS_PER_LONG==32
- preempt_disable();
-#endif
- return 0;
-#endif
-}
-
-static inline bool u64_stats_fetch_retry(const struct u64_stats_sync *syncp,
- unsigned int start)
-{
-#if BITS_PER_LONG==32 && defined(CONFIG_SMP)
- return read_seqcount_retry(&syncp->seq, start);
-#else
-#if BITS_PER_LONG==32
- preempt_enable();
-#endif
- return false;
-#endif
-}
-
-/*
- * In case softirq handlers can update u64 counters, readers can use following helpers
- * - SMP 32bit arches use seqcount protection, irq safe.
- * - UP 32bit must disable BH.
- * - 64bit have no problem atomically reading u64 values, irq safe.
- */
-static inline unsigned int u64_stats_fetch_begin_bh(const struct u64_stats_sync *syncp)
-{
-#if BITS_PER_LONG==32 && defined(CONFIG_SMP)
- return read_seqcount_begin(&syncp->seq);
-#else
-#if BITS_PER_LONG==32
- local_bh_disable();
-#endif
- return 0;
-#endif
-}
-
-static inline bool u64_stats_fetch_retry_bh(const struct u64_stats_sync *syncp,
- unsigned int start)
-{
-#if BITS_PER_LONG==32 && defined(CONFIG_SMP)
- return read_seqcount_retry(&syncp->seq, start);
-#else
-#if BITS_PER_LONG==32
- local_bh_enable();
-#endif
- return false;
-#endif
-}
-
-#endif /* _LINUX_U64_STATS_SYNC_H */
diff --git a/ANDROID_3.4.5/include/linux/uaccess.h b/ANDROID_3.4.5/include/linux/uaccess.h
deleted file mode 100644
index 5ca0951e..00000000
--- a/ANDROID_3.4.5/include/linux/uaccess.h
+++ /dev/null
@@ -1,111 +0,0 @@
-#ifndef __LINUX_UACCESS_H__
-#define __LINUX_UACCESS_H__
-
-#include <linux/preempt.h>
-#include <asm/uaccess.h>
-
-/*
- * These routines enable/disable the pagefault handler in that
- * it will not take any locks and go straight to the fixup table.
- *
- * They have great resemblance to the preempt_disable/enable calls
- * and in fact they are identical; this is because currently there is
- * no other way to make the pagefault handlers do this. So we do
- * disable preemption but we don't necessarily care about that.
- */
-static inline void pagefault_disable(void)
-{
- inc_preempt_count();
- /*
- * make sure to have issued the store before a pagefault
- * can hit.
- */
- barrier();
-}
-
-static inline void pagefault_enable(void)
-{
- /*
- * make sure to issue those last loads/stores before enabling
- * the pagefault handler again.
- */
- barrier();
- dec_preempt_count();
- /*
- * make sure we do..
- */
- barrier();
- preempt_check_resched();
-}
-
-#ifndef ARCH_HAS_NOCACHE_UACCESS
-
-static inline unsigned long __copy_from_user_inatomic_nocache(void *to,
- const void __user *from, unsigned long n)
-{
- return __copy_from_user_inatomic(to, from, n);
-}
-
-static inline unsigned long __copy_from_user_nocache(void *to,
- const void __user *from, unsigned long n)
-{
- return __copy_from_user(to, from, n);
-}
-
-#endif /* ARCH_HAS_NOCACHE_UACCESS */
-
-/**
- * probe_kernel_address(): safely attempt to read from a location
- * @addr: address to read from - its type is type typeof(retval)*
- * @retval: read into this variable
- *
- * Safely read from address @addr into variable @revtal. If a kernel fault
- * happens, handle that and return -EFAULT.
- * We ensure that the __get_user() is executed in atomic context so that
- * do_page_fault() doesn't attempt to take mmap_sem. This makes
- * probe_kernel_address() suitable for use within regions where the caller
- * already holds mmap_sem, or other locks which nest inside mmap_sem.
- * This must be a macro because __get_user() needs to know the types of the
- * args.
- *
- * We don't include enough header files to be able to do the set_fs(). We
- * require that the probe_kernel_address() caller will do that.
- */
-#define probe_kernel_address(addr, retval) \
- ({ \
- long ret; \
- mm_segment_t old_fs = get_fs(); \
- \
- set_fs(KERNEL_DS); \
- pagefault_disable(); \
- ret = __copy_from_user_inatomic(&(retval), (__force typeof(retval) __user *)(addr), sizeof(retval)); \
- pagefault_enable(); \
- set_fs(old_fs); \
- ret; \
- })
-
-/*
- * probe_kernel_read(): safely attempt to read from a location
- * @dst: pointer to the buffer that shall take the data
- * @src: address to read from
- * @size: size of the data chunk
- *
- * Safely read from address @src to the buffer at @dst. If a kernel fault
- * happens, handle that and return -EFAULT.
- */
-extern long probe_kernel_read(void *dst, const void *src, size_t size);
-extern long __probe_kernel_read(void *dst, const void *src, size_t size);
-
-/*
- * probe_kernel_write(): safely attempt to write to a location
- * @dst: address to write to
- * @src: pointer to the data that shall be written
- * @size: size of the data chunk
- *
- * Safely write to address @dst from the buffer at @src. If a kernel fault
- * happens, handle that and return -EFAULT.
- */
-extern long notrace probe_kernel_write(void *dst, const void *src, size_t size);
-extern long notrace __probe_kernel_write(void *dst, const void *src, size_t size);
-
-#endif /* __LINUX_UACCESS_H__ */
diff --git a/ANDROID_3.4.5/include/linux/ucb1400.h b/ANDROID_3.4.5/include/linux/ucb1400.h
deleted file mode 100644
index d21b33c4..00000000
--- a/ANDROID_3.4.5/include/linux/ucb1400.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Register definitions and functions for:
- * Philips UCB1400 driver
- *
- * Based on ucb1400_ts:
- * Author: Nicolas Pitre
- * Created: September 25, 2006
- * Copyright: MontaVista Software, Inc.
- *
- * Spliting done by: Marek Vasut <marek.vasut@gmail.com>
- * If something doesn't work and it worked before spliting, e-mail me,
- * dont bother Nicolas please ;-)
- *
- * 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.
- *
- * This code is heavily based on ucb1x00-*.c copyrighted by Russell King
- * covering the UCB1100, UCB1200 and UCB1300.. Support for the UCB1400 has
- * been made separate from ucb1x00-core/ucb1x00-ts on Russell's request.
- */
-
-#ifndef _LINUX__UCB1400_H
-#define _LINUX__UCB1400_H
-
-#include <sound/ac97_codec.h>
-#include <linux/mutex.h>
-#include <linux/platform_device.h>
-#include <linux/gpio.h>
-
-/*
- * UCB1400 AC-link registers
- */
-
-#define UCB_IO_DATA 0x5a
-#define UCB_IO_DIR 0x5c
-#define UCB_IE_RIS 0x5e
-#define UCB_IE_FAL 0x60
-#define UCB_IE_STATUS 0x62
-#define UCB_IE_CLEAR 0x62
-#define UCB_IE_ADC (1 << 11)
-#define UCB_IE_TSPX (1 << 12)
-
-#define UCB_TS_CR 0x64
-#define UCB_TS_CR_TSMX_POW (1 << 0)
-#define UCB_TS_CR_TSPX_POW (1 << 1)
-#define UCB_TS_CR_TSMY_POW (1 << 2)
-#define UCB_TS_CR_TSPY_POW (1 << 3)
-#define UCB_TS_CR_TSMX_GND (1 << 4)
-#define UCB_TS_CR_TSPX_GND (1 << 5)
-#define UCB_TS_CR_TSMY_GND (1 << 6)
-#define UCB_TS_CR_TSPY_GND (1 << 7)
-#define UCB_TS_CR_MODE_INT (0 << 8)
-#define UCB_TS_CR_MODE_PRES (1 << 8)
-#define UCB_TS_CR_MODE_POS (2 << 8)
-#define UCB_TS_CR_BIAS_ENA (1 << 11)
-#define UCB_TS_CR_TSPX_LOW (1 << 12)
-#define UCB_TS_CR_TSMX_LOW (1 << 13)
-
-#define UCB_ADC_CR 0x66
-#define UCB_ADC_SYNC_ENA (1 << 0)
-#define UCB_ADC_VREFBYP_CON (1 << 1)
-#define UCB_ADC_INP_TSPX (0 << 2)
-#define UCB_ADC_INP_TSMX (1 << 2)
-#define UCB_ADC_INP_TSPY (2 << 2)
-#define UCB_ADC_INP_TSMY (3 << 2)
-#define UCB_ADC_INP_AD0 (4 << 2)
-#define UCB_ADC_INP_AD1 (5 << 2)
-#define UCB_ADC_INP_AD2 (6 << 2)
-#define UCB_ADC_INP_AD3 (7 << 2)
-#define UCB_ADC_EXT_REF (1 << 5)
-#define UCB_ADC_START (1 << 7)
-#define UCB_ADC_ENA (1 << 15)
-
-#define UCB_ADC_DATA 0x68
-#define UCB_ADC_DAT_VALID (1 << 15)
-
-#define UCB_FCSR 0x6c
-#define UCB_FCSR_AVE (1 << 12)
-
-#define UCB_ADC_DAT_MASK 0x3ff
-
-#define UCB_ID 0x7e
-#define UCB_ID_1400 0x4304
-
-struct ucb1400_gpio_data {
- int gpio_offset;
- int (*gpio_setup)(struct device *dev, int ngpio);
- int (*gpio_teardown)(struct device *dev, int ngpio);
-};
-
-struct ucb1400_gpio {
- struct gpio_chip gc;
- struct snd_ac97 *ac97;
-};
-
-struct ucb1400_ts {
- struct input_dev *ts_idev;
- int id;
- int irq;
- struct snd_ac97 *ac97;
- wait_queue_head_t ts_wait;
- bool stopped;
-};
-
-struct ucb1400 {
- struct platform_device *ucb1400_ts;
- struct platform_device *ucb1400_gpio;
-};
-
-struct ucb1400_pdata {
- int irq;
-};
-
-static inline u16 ucb1400_reg_read(struct snd_ac97 *ac97, u16 reg)
-{
- return ac97->bus->ops->read(ac97, reg);
-}
-
-static inline void ucb1400_reg_write(struct snd_ac97 *ac97, u16 reg, u16 val)
-{
- ac97->bus->ops->write(ac97, reg, val);
-}
-
-static inline u16 ucb1400_gpio_get_value(struct snd_ac97 *ac97, u16 gpio)
-{
- return ucb1400_reg_read(ac97, UCB_IO_DATA) & (1 << gpio);
-}
-
-static inline void ucb1400_gpio_set_value(struct snd_ac97 *ac97, u16 gpio,
- u16 val)
-{
- ucb1400_reg_write(ac97, UCB_IO_DATA, val ?
- ucb1400_reg_read(ac97, UCB_IO_DATA) | (1 << gpio) :
- ucb1400_reg_read(ac97, UCB_IO_DATA) & ~(1 << gpio));
-}
-
-static inline u16 ucb1400_gpio_get_direction(struct snd_ac97 *ac97, u16 gpio)
-{
- return ucb1400_reg_read(ac97, UCB_IO_DIR) & (1 << gpio);
-}
-
-static inline void ucb1400_gpio_set_direction(struct snd_ac97 *ac97, u16 gpio,
- u16 dir)
-{
- ucb1400_reg_write(ac97, UCB_IO_DIR, dir ?
- ucb1400_reg_read(ac97, UCB_IO_DIR) | (1 << gpio) :
- ucb1400_reg_read(ac97, UCB_IO_DIR) & ~(1 << gpio));
-}
-
-static inline void ucb1400_adc_enable(struct snd_ac97 *ac97)
-{
- ucb1400_reg_write(ac97, UCB_ADC_CR, UCB_ADC_ENA);
-}
-
-static inline void ucb1400_adc_disable(struct snd_ac97 *ac97)
-{
- ucb1400_reg_write(ac97, UCB_ADC_CR, 0);
-}
-
-
-unsigned int ucb1400_adc_read(struct snd_ac97 *ac97, u16 adc_channel,
- int adcsync);
-
-#ifdef CONFIG_GPIO_UCB1400
-void __init ucb1400_gpio_set_data(struct ucb1400_gpio_data *data);
-#else
-static inline void ucb1400_gpio_set_data(struct ucb1400_gpio_data *data) {}
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/udf_fs_i.h b/ANDROID_3.4.5/include/linux/udf_fs_i.h
deleted file mode 100644
index 35369659..00000000
--- a/ANDROID_3.4.5/include/linux/udf_fs_i.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * udf_fs_i.h
- *
- * This file is intended for the Linux kernel/module.
- *
- * COPYRIGHT
- * This file is distributed under the terms of the GNU General Public
- * License (GPL). Copies of the GPL can be obtained from:
- * ftp://prep.ai.mit.edu/pub/gnu/GPL
- * Each contributing author retains all rights to their own work.
- */
-#ifndef _UDF_FS_I_H
-#define _UDF_FS_I_H 1
-
-/* exported IOCTLs, we have 'l', 0x40-0x7f */
-#define UDF_GETEASIZE _IOR('l', 0x40, int)
-#define UDF_GETEABLOCK _IOR('l', 0x41, void *)
-#define UDF_GETVOLIDENT _IOR('l', 0x42, void *)
-#define UDF_RELOCATE_BLOCKS _IOWR('l', 0x43, long)
-
-#endif /* _UDF_FS_I_H */
diff --git a/ANDROID_3.4.5/include/linux/udp.h b/ANDROID_3.4.5/include/linux/udp.h
deleted file mode 100644
index 03f72a2b..00000000
--- a/ANDROID_3.4.5/include/linux/udp.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Definitions for the UDP protocol.
- *
- * Version: @(#)udp.h 1.0.2 04/28/93
- *
- * Author: Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.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.
- */
-#ifndef _LINUX_UDP_H
-#define _LINUX_UDP_H
-
-#include <linux/types.h>
-
-struct udphdr {
- __be16 source;
- __be16 dest;
- __be16 len;
- __sum16 check;
-};
-
-/* UDP socket options */
-#define UDP_CORK 1 /* Never send partially complete segments */
-#define UDP_ENCAP 100 /* Set the socket to accept encapsulated packets */
-
-/* UDP encapsulation types */
-#define UDP_ENCAP_ESPINUDP_NON_IKE 1 /* draft-ietf-ipsec-nat-t-ike-00/01 */
-#define UDP_ENCAP_ESPINUDP 2 /* draft-ietf-ipsec-udp-encaps-06 */
-#define UDP_ENCAP_L2TPINUDP 3 /* rfc2661 */
-
-#ifdef __KERNEL__
-#include <net/inet_sock.h>
-#include <linux/skbuff.h>
-#include <net/netns/hash.h>
-
-static inline struct udphdr *udp_hdr(const struct sk_buff *skb)
-{
- return (struct udphdr *)skb_transport_header(skb);
-}
-
-#define UDP_HTABLE_SIZE_MIN (CONFIG_BASE_SMALL ? 128 : 256)
-
-static inline int udp_hashfn(struct net *net, unsigned num, unsigned mask)
-{
- return (num + net_hash_mix(net)) & mask;
-}
-
-struct udp_sock {
- /* inet_sock has to be the first member */
- struct inet_sock inet;
-#define udp_port_hash inet.sk.__sk_common.skc_u16hashes[0]
-#define udp_portaddr_hash inet.sk.__sk_common.skc_u16hashes[1]
-#define udp_portaddr_node inet.sk.__sk_common.skc_portaddr_node
- int pending; /* Any pending frames ? */
- unsigned int corkflag; /* Cork is required */
- __u16 encap_type; /* Is this an Encapsulation socket? */
- /*
- * Following member retains the information to create a UDP header
- * when the socket is uncorked.
- */
- __u16 len; /* total length of pending frames */
- /*
- * Fields specific to UDP-Lite.
- */
- __u16 pcslen;
- __u16 pcrlen;
-/* indicator bits used by pcflag: */
-#define UDPLITE_BIT 0x1 /* set by udplite proto init function */
-#define UDPLITE_SEND_CC 0x2 /* set via udplite setsockopt */
-#define UDPLITE_RECV_CC 0x4 /* set via udplite setsocktopt */
- __u8 pcflag; /* marks socket as UDP-Lite if > 0 */
- __u8 unused[3];
- /*
- * For encapsulation sockets.
- */
- int (*encap_rcv)(struct sock *sk, struct sk_buff *skb);
-};
-
-static inline struct udp_sock *udp_sk(const struct sock *sk)
-{
- return (struct udp_sock *)sk;
-}
-
-#define udp_portaddr_for_each_entry(__sk, node, list) \
- hlist_nulls_for_each_entry(__sk, node, list, __sk_common.skc_portaddr_node)
-
-#define udp_portaddr_for_each_entry_rcu(__sk, node, list) \
- hlist_nulls_for_each_entry_rcu(__sk, node, list, __sk_common.skc_portaddr_node)
-
-#define IS_UDPLITE(__sk) (udp_sk(__sk)->pcflag)
-
-#endif
-
-#endif /* _LINUX_UDP_H */
diff --git a/ANDROID_3.4.5/include/linux/uhid.h b/ANDROID_3.4.5/include/linux/uhid.h
deleted file mode 100644
index 9c6974f1..00000000
--- a/ANDROID_3.4.5/include/linux/uhid.h
+++ /dev/null
@@ -1,104 +0,0 @@
-#ifndef __UHID_H_
-#define __UHID_H_
-
-/*
- * User-space I/O driver support for HID subsystem
- * Copyright (c) 2012 David Herrmann
- */
-
-/*
- * 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.
- */
-
-/*
- * Public header for user-space communication. We try to keep every structure
- * aligned but to be safe we also use __attribute__((__packed__)). Therefore,
- * the communication should be ABI compatible even between architectures.
- */
-
-#include <linux/input.h>
-#include <linux/types.h>
-
-enum uhid_event_type {
- UHID_CREATE,
- UHID_DESTROY,
- UHID_START,
- UHID_STOP,
- UHID_OPEN,
- UHID_CLOSE,
- UHID_OUTPUT,
- UHID_OUTPUT_EV,
- UHID_INPUT,
- UHID_FEATURE,
- UHID_FEATURE_ANSWER,
-};
-
-struct uhid_create_req {
- __u8 name[128];
- __u8 phys[64];
- __u8 uniq[64];
- __u8 __user *rd_data;
- __u16 rd_size;
-
- __u16 bus;
- __u32 vendor;
- __u32 product;
- __u32 version;
- __u32 country;
-} __attribute__((__packed__));
-
-#define UHID_DATA_MAX 4096
-
-enum uhid_report_type {
- UHID_FEATURE_REPORT,
- UHID_OUTPUT_REPORT,
- UHID_INPUT_REPORT,
-};
-
-struct uhid_input_req {
- __u8 data[UHID_DATA_MAX];
- __u16 size;
-} __attribute__((__packed__));
-
-struct uhid_output_req {
- __u8 data[UHID_DATA_MAX];
- __u16 size;
- __u8 rtype;
-} __attribute__((__packed__));
-
-struct uhid_output_ev_req {
- __u16 type;
- __u16 code;
- __s32 value;
-} __attribute__((__packed__));
-
-struct uhid_feature_req {
- __u32 id;
- __u8 rnum;
- __u8 rtype;
-} __attribute__((__packed__));
-
-struct uhid_feature_answer_req {
- __u32 id;
- __u16 err;
- __u16 size;
- __u8 data[UHID_DATA_MAX];
-};
-
-struct uhid_event {
- __u32 type;
-
- union {
- struct uhid_create_req create;
- struct uhid_input_req input;
- struct uhid_output_req output;
- struct uhid_output_ev_req output_ev;
- struct uhid_feature_req feature;
- struct uhid_feature_answer_req feature_answer;
- } u;
-} __attribute__((__packed__));
-
-#endif /* __UHID_H_ */
diff --git a/ANDROID_3.4.5/include/linux/uid_stat.h b/ANDROID_3.4.5/include/linux/uid_stat.h
deleted file mode 100644
index 6bd6c4e5..00000000
--- a/ANDROID_3.4.5/include/linux/uid_stat.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* include/linux/uid_stat.h
- *
- * Copyright (C) 2008-2009 Google, Inc.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#ifndef __uid_stat_h
-#define __uid_stat_h
-
-/* Contains definitions for resource tracking per uid. */
-
-#ifdef CONFIG_UID_STAT
-int uid_stat_tcp_snd(uid_t uid, int size);
-int uid_stat_tcp_rcv(uid_t uid, int size);
-#else
-#define uid_stat_tcp_snd(uid, size) do {} while (0);
-#define uid_stat_tcp_rcv(uid, size) do {} while (0);
-#endif
-
-#endif /* _LINUX_UID_STAT_H */
diff --git a/ANDROID_3.4.5/include/linux/uinput.h b/ANDROID_3.4.5/include/linux/uinput.h
deleted file mode 100644
index 2aa2881b..00000000
--- a/ANDROID_3.4.5/include/linux/uinput.h
+++ /dev/null
@@ -1,176 +0,0 @@
-#ifndef __UINPUT_H_
-#define __UINPUT_H_
-/*
- * User level driver support for input subsystem
- *
- * Heavily based on evdev.c by Vojtech Pavlik
- *
- * 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
- *
- * Author: Aristeu Sergio Rozanski Filho <aris@cathedrallabs.org>
- *
- * Changes/Revisions:
- * 0.3 24/05/2006 (Anssi Hannula <anssi.hannulagmail.com>)
- * - update ff support for the changes in kernel interface
- * - add UINPUT_VERSION
- * 0.2 16/10/2004 (Micah Dowty <micah@navi.cx>)
- * - added force feedback support
- * - added UI_SET_PHYS
- * 0.1 20/06/2002
- * - first public version
- */
-
-#include <linux/input.h>
-
-#define UINPUT_VERSION 3
-
-#ifdef __KERNEL__
-#define UINPUT_NAME "uinput"
-#define UINPUT_BUFFER_SIZE 16
-#define UINPUT_NUM_REQUESTS 16
-
-enum uinput_state { UIST_NEW_DEVICE, UIST_SETUP_COMPLETE, UIST_CREATED };
-
-struct uinput_request {
- int id;
- int code; /* UI_FF_UPLOAD, UI_FF_ERASE */
-
- int retval;
- struct completion done;
-
- union {
- int effect_id;
- struct {
- struct ff_effect *effect;
- struct ff_effect *old;
- } upload;
- } u;
-};
-
-struct uinput_device {
- struct input_dev *dev;
- struct mutex mutex;
- enum uinput_state state;
- wait_queue_head_t waitq;
- unsigned char ready;
- unsigned char head;
- unsigned char tail;
- struct input_event buff[UINPUT_BUFFER_SIZE];
- unsigned int ff_effects_max;
-
- struct uinput_request *requests[UINPUT_NUM_REQUESTS];
- wait_queue_head_t requests_waitq;
- spinlock_t requests_lock;
-};
-#endif /* __KERNEL__ */
-
-struct uinput_ff_upload {
- int request_id;
- int retval;
- struct ff_effect effect;
- struct ff_effect old;
-};
-
-struct uinput_ff_erase {
- int request_id;
- int retval;
- int effect_id;
-};
-
-/* ioctl */
-#define UINPUT_IOCTL_BASE 'U'
-#define UI_DEV_CREATE _IO(UINPUT_IOCTL_BASE, 1)
-#define UI_DEV_DESTROY _IO(UINPUT_IOCTL_BASE, 2)
-
-#define UI_SET_EVBIT _IOW(UINPUT_IOCTL_BASE, 100, int)
-#define UI_SET_KEYBIT _IOW(UINPUT_IOCTL_BASE, 101, int)
-#define UI_SET_RELBIT _IOW(UINPUT_IOCTL_BASE, 102, int)
-#define UI_SET_ABSBIT _IOW(UINPUT_IOCTL_BASE, 103, int)
-#define UI_SET_MSCBIT _IOW(UINPUT_IOCTL_BASE, 104, int)
-#define UI_SET_LEDBIT _IOW(UINPUT_IOCTL_BASE, 105, int)
-#define UI_SET_SNDBIT _IOW(UINPUT_IOCTL_BASE, 106, int)
-#define UI_SET_FFBIT _IOW(UINPUT_IOCTL_BASE, 107, int)
-#define UI_SET_PHYS _IOW(UINPUT_IOCTL_BASE, 108, char*)
-#define UI_SET_SWBIT _IOW(UINPUT_IOCTL_BASE, 109, int)
-#define UI_SET_PROPBIT _IOW(UINPUT_IOCTL_BASE, 110, int)
-
-#define UI_BEGIN_FF_UPLOAD _IOWR(UINPUT_IOCTL_BASE, 200, struct uinput_ff_upload)
-#define UI_END_FF_UPLOAD _IOW(UINPUT_IOCTL_BASE, 201, struct uinput_ff_upload)
-#define UI_BEGIN_FF_ERASE _IOWR(UINPUT_IOCTL_BASE, 202, struct uinput_ff_erase)
-#define UI_END_FF_ERASE _IOW(UINPUT_IOCTL_BASE, 203, struct uinput_ff_erase)
-
-/*
- * To write a force-feedback-capable driver, the upload_effect
- * and erase_effect callbacks in input_dev must be implemented.
- * The uinput driver will generate a fake input event when one of
- * these callbacks are invoked. The userspace code then uses
- * ioctls to retrieve additional parameters and send the return code.
- * The callback blocks until this return code is sent.
- *
- * The described callback mechanism is only used if ff_effects_max
- * is set.
- *
- * To implement upload_effect():
- * 1. Wait for an event with type == EV_UINPUT and code == UI_FF_UPLOAD.
- * A request ID will be given in 'value'.
- * 2. Allocate a uinput_ff_upload struct, fill in request_id with
- * the 'value' from the EV_UINPUT event.
- * 3. Issue a UI_BEGIN_FF_UPLOAD ioctl, giving it the
- * uinput_ff_upload struct. It will be filled in with the
- * ff_effects passed to upload_effect().
- * 4. Perform the effect upload, and place a return code back into
- the uinput_ff_upload struct.
- * 5. Issue a UI_END_FF_UPLOAD ioctl, also giving it the
- * uinput_ff_upload_effect struct. This will complete execution
- * of our upload_effect() handler.
- *
- * To implement erase_effect():
- * 1. Wait for an event with type == EV_UINPUT and code == UI_FF_ERASE.
- * A request ID will be given in 'value'.
- * 2. Allocate a uinput_ff_erase struct, fill in request_id with
- * the 'value' from the EV_UINPUT event.
- * 3. Issue a UI_BEGIN_FF_ERASE ioctl, giving it the
- * uinput_ff_erase struct. It will be filled in with the
- * effect ID passed to erase_effect().
- * 4. Perform the effect erasure, and place a return code back
- * into the uinput_ff_erase struct.
- * 5. Issue a UI_END_FF_ERASE ioctl, also giving it the
- * uinput_ff_erase_effect struct. This will complete execution
- * of our erase_effect() handler.
- */
-
-/*
- * This is the new event type, used only by uinput.
- * 'code' is UI_FF_UPLOAD or UI_FF_ERASE, and 'value'
- * is the unique request ID. This number was picked
- * arbitrarily, above EV_MAX (since the input system
- * never sees it) but in the range of a 16-bit int.
- */
-#define EV_UINPUT 0x0101
-#define UI_FF_UPLOAD 1
-#define UI_FF_ERASE 2
-
-#define UINPUT_MAX_NAME_SIZE 80
-struct uinput_user_dev {
- char name[UINPUT_MAX_NAME_SIZE];
- struct input_id id;
- int ff_effects_max;
- int absmax[ABS_CNT];
- int absmin[ABS_CNT];
- int absfuzz[ABS_CNT];
- int absflat[ABS_CNT];
-};
-#endif /* __UINPUT_H_ */
-
diff --git a/ANDROID_3.4.5/include/linux/uio.h b/ANDROID_3.4.5/include/linux/uio.h
deleted file mode 100644
index 98c11432..00000000
--- a/ANDROID_3.4.5/include/linux/uio.h
+++ /dev/null
@@ -1,56 +0,0 @@
-#ifndef __LINUX_UIO_H
-#define __LINUX_UIO_H
-
-#include <linux/compiler.h>
-#include <linux/types.h>
-
-/*
- * Berkeley style UIO structures - Alan Cox 1994.
- *
- * 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.
- */
-
-struct iovec
-{
- void __user *iov_base; /* BSD uses caddr_t (1003.1g requires void *) */
- __kernel_size_t iov_len; /* Must be size_t (1003.1g) */
-};
-
-/*
- * UIO_MAXIOV shall be at least 16 1003.1g (5.4.1.1)
- */
-
-#define UIO_FASTIOV 8
-#define UIO_MAXIOV 1024
-
-#ifdef __KERNEL__
-
-struct kvec {
- void *iov_base; /* and that should *never* hold a userland pointer */
- size_t iov_len;
-};
-
-/*
- * Total number of bytes covered by an iovec.
- *
- * NOTE that it is not safe to use this function until all the iovec's
- * segment lengths have been validated. Because the individual lengths can
- * overflow a size_t when added together.
- */
-static inline size_t iov_length(const struct iovec *iov, unsigned long nr_segs)
-{
- unsigned long seg;
- size_t ret = 0;
-
- for (seg = 0; seg < nr_segs; seg++)
- ret += iov[seg].iov_len;
- return ret;
-}
-
-unsigned long iov_shorten(struct iovec *iov, unsigned long nr_segs, size_t to);
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/uio_driver.h b/ANDROID_3.4.5/include/linux/uio_driver.h
deleted file mode 100644
index 1ad47244..00000000
--- a/ANDROID_3.4.5/include/linux/uio_driver.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * include/linux/uio_driver.h
- *
- * Copyright(C) 2005, Benedikt Spranger <b.spranger@linutronix.de>
- * Copyright(C) 2005, Thomas Gleixner <tglx@linutronix.de>
- * Copyright(C) 2006, Hans J. Koch <hjk@hansjkoch.de>
- * Copyright(C) 2006, Greg Kroah-Hartman <greg@kroah.com>
- *
- * Userspace IO driver.
- *
- * Licensed under the GPLv2 only.
- */
-
-#ifndef _UIO_DRIVER_H_
-#define _UIO_DRIVER_H_
-
-#include <linux/fs.h>
-#include <linux/interrupt.h>
-
-struct module;
-struct uio_map;
-
-/**
- * struct uio_mem - description of a UIO memory region
- * @name: name of the memory region for identification
- * @addr: address of the device's memory (phys_addr is used since
- * addr can be logical, virtual, or physical & phys_addr_t
- * should always be large enough to handle any of the
- * address types)
- * @size: size of IO
- * @memtype: type of memory addr points to
- * @internal_addr: ioremap-ped version of addr, for driver internal use
- * @map: for use by the UIO core only.
- */
-struct uio_mem {
- const char *name;
- phys_addr_t addr;
- unsigned long size;
- int memtype;
- void __iomem *internal_addr;
- struct uio_map *map;
-};
-
-#define MAX_UIO_MAPS 5
-
-struct uio_portio;
-
-/**
- * struct uio_port - description of a UIO port region
- * @name: name of the port region for identification
- * @start: start of port region
- * @size: size of port region
- * @porttype: type of port (see UIO_PORT_* below)
- * @portio: for use by the UIO core only.
- */
-struct uio_port {
- const char *name;
- unsigned long start;
- unsigned long size;
- int porttype;
- struct uio_portio *portio;
-};
-
-#define MAX_UIO_PORT_REGIONS 5
-
-struct uio_device;
-
-/**
- * struct uio_info - UIO device capabilities
- * @uio_dev: the UIO device this info belongs to
- * @name: device name
- * @version: device driver version
- * @mem: list of mappable memory regions, size==0 for end of list
- * @port: list of port regions, size==0 for end of list
- * @irq: interrupt number or UIO_IRQ_CUSTOM
- * @irq_flags: flags for request_irq()
- * @priv: optional private data
- * @handler: the device's irq handler
- * @mmap: mmap operation for this uio device
- * @open: open operation for this uio device
- * @release: release operation for this uio device
- * @irqcontrol: disable/enable irqs when 0/1 is written to /dev/uioX
- */
-struct uio_info {
- struct uio_device *uio_dev;
- const char *name;
- const char *version;
- struct uio_mem mem[MAX_UIO_MAPS];
- struct uio_port port[MAX_UIO_PORT_REGIONS];
- long irq;
- unsigned long irq_flags;
- void *priv;
- irqreturn_t (*handler)(int irq, struct uio_info *dev_info);
- int (*mmap)(struct uio_info *info, struct vm_area_struct *vma);
- int (*open)(struct uio_info *info, struct inode *inode);
- int (*release)(struct uio_info *info, struct inode *inode);
- int (*irqcontrol)(struct uio_info *info, s32 irq_on);
-};
-
-extern int __must_check
- __uio_register_device(struct module *owner,
- struct device *parent,
- struct uio_info *info);
-
-/* use a define to avoid include chaining to get THIS_MODULE */
-#define uio_register_device(parent, info) \
- __uio_register_device(THIS_MODULE, parent, info)
-
-extern void uio_unregister_device(struct uio_info *info);
-extern void uio_event_notify(struct uio_info *info);
-
-/* defines for uio_info->irq */
-#define UIO_IRQ_CUSTOM -1
-#define UIO_IRQ_NONE 0
-
-/* defines for uio_mem->memtype */
-#define UIO_MEM_NONE 0
-#define UIO_MEM_PHYS 1
-#define UIO_MEM_LOGICAL 2
-#define UIO_MEM_VIRTUAL 3
-
-/* defines for uio_port->porttype */
-#define UIO_PORT_NONE 0
-#define UIO_PORT_X86 1
-#define UIO_PORT_GPIO 2
-#define UIO_PORT_OTHER 3
-
-#endif /* _LINUX_UIO_DRIVER_H_ */
diff --git a/ANDROID_3.4.5/include/linux/ultrasound.h b/ANDROID_3.4.5/include/linux/ultrasound.h
deleted file mode 100644
index 71339dc5..00000000
--- a/ANDROID_3.4.5/include/linux/ultrasound.h
+++ /dev/null
@@ -1,103 +0,0 @@
-#ifndef _ULTRASOUND_H_
-#define _ULTRASOUND_H_
-/*
- * ultrasound.h - Macros for programming the Gravis Ultrasound
- * These macros are extremely device dependent
- * and not portable.
- */
-/*
- * Copyright (C) by Hannu Savolainen 1993-1997
- *
- * OSS/Free for Linux is distributed under the GNU GENERAL PUBLIC LICENSE (GPL)
- * Version 2 (June 1991). See the "COPYING" file distributed with this software
- * for more info.
- */
-
-
-/*
- * Private events for Gravis Ultrasound (GUS)
- *
- * Format:
- * byte 0 - SEQ_PRIVATE (0xfe)
- * byte 1 - Synthesizer device number (0-N)
- * byte 2 - Command (see below)
- * byte 3 - Voice number (0-31)
- * bytes 4 and 5 - parameter P1 (unsigned short)
- * bytes 6 and 7 - parameter P2 (unsigned short)
- *
- * Commands:
- * Each command affects one voice defined in byte 3.
- * Unused parameters (P1 and/or P2 *MUST* be initialized to zero).
- * _GUS_NUMVOICES - Sets max. number of concurrent voices (P1=14-31, default 16)
- * _GUS_VOICESAMPLE- ************ OBSOLETE *************
- * _GUS_VOICEON - Starts voice (P1=voice mode)
- * _GUS_VOICEOFF - Stops voice (no parameters)
- * _GUS_VOICEFADE - Stops the voice smoothly.
- * _GUS_VOICEMODE - Alters the voice mode, don't start or stop voice (P1=voice mode)
- * _GUS_VOICEBALA - Sets voice balance (P1, 0=left, 7=middle and 15=right, default 7)
- * _GUS_VOICEFREQ - Sets voice (sample) playback frequency (P1=Hz)
- * _GUS_VOICEVOL - Sets voice volume (P1=volume, 0xfff=max, 0xeff=half, 0x000=off)
- * _GUS_VOICEVOL2 - Sets voice volume (P1=volume, 0xfff=max, 0xeff=half, 0x000=off)
- * (Like GUS_VOICEVOL but doesn't change the hw
- * volume. It just updates volume in the voice table).
- *
- * _GUS_RAMPRANGE - Sets limits for volume ramping (P1=low volume, P2=high volume)
- * _GUS_RAMPRATE - Sets the speed for volume ramping (P1=scale, P2=rate)
- * _GUS_RAMPMODE - Sets the volume ramping mode (P1=ramping mode)
- * _GUS_RAMPON - Starts volume ramping (no parameters)
- * _GUS_RAMPOFF - Stops volume ramping (no parameters)
- * _GUS_VOLUME_SCALE - Changes the volume calculation constants
- * for all voices.
- */
-
-#define _GUS_NUMVOICES 0x00
-#define _GUS_VOICESAMPLE 0x01 /* OBSOLETE */
-#define _GUS_VOICEON 0x02
-#define _GUS_VOICEOFF 0x03
-#define _GUS_VOICEMODE 0x04
-#define _GUS_VOICEBALA 0x05
-#define _GUS_VOICEFREQ 0x06
-#define _GUS_VOICEVOL 0x07
-#define _GUS_RAMPRANGE 0x08
-#define _GUS_RAMPRATE 0x09
-#define _GUS_RAMPMODE 0x0a
-#define _GUS_RAMPON 0x0b
-#define _GUS_RAMPOFF 0x0c
-#define _GUS_VOICEFADE 0x0d
-#define _GUS_VOLUME_SCALE 0x0e
-#define _GUS_VOICEVOL2 0x0f
-#define _GUS_VOICE_POS 0x10
-
-/*
- * GUS API macros
- */
-
-#define _GUS_CMD(chn, voice, cmd, p1, p2) \
- {_SEQ_NEEDBUF(8); _seqbuf[_seqbufptr] = SEQ_PRIVATE;\
- _seqbuf[_seqbufptr+1] = (chn); _seqbuf[_seqbufptr+2] = cmd;\
- _seqbuf[_seqbufptr+3] = voice;\
- *(unsigned short*)&_seqbuf[_seqbufptr+4] = p1;\
- *(unsigned short*)&_seqbuf[_seqbufptr+6] = p2;\
- _SEQ_ADVBUF(8);}
-
-#define GUS_NUMVOICES(chn, p1) _GUS_CMD(chn, 0, _GUS_NUMVOICES, (p1), 0)
-#define GUS_VOICESAMPLE(chn, voice, p1) _GUS_CMD(chn, voice, _GUS_VOICESAMPLE, (p1), 0) /* OBSOLETE */
-#define GUS_VOICEON(chn, voice, p1) _GUS_CMD(chn, voice, _GUS_VOICEON, (p1), 0)
-#define GUS_VOICEOFF(chn, voice) _GUS_CMD(chn, voice, _GUS_VOICEOFF, 0, 0)
-#define GUS_VOICEFADE(chn, voice) _GUS_CMD(chn, voice, _GUS_VOICEFADE, 0, 0)
-#define GUS_VOICEMODE(chn, voice, p1) _GUS_CMD(chn, voice, _GUS_VOICEMODE, (p1), 0)
-#define GUS_VOICEBALA(chn, voice, p1) _GUS_CMD(chn, voice, _GUS_VOICEBALA, (p1), 0)
-#define GUS_VOICEFREQ(chn, voice, p) _GUS_CMD(chn, voice, _GUS_VOICEFREQ, \
- (p) & 0xffff, ((p) >> 16) & 0xffff)
-#define GUS_VOICEVOL(chn, voice, p1) _GUS_CMD(chn, voice, _GUS_VOICEVOL, (p1), 0)
-#define GUS_VOICEVOL2(chn, voice, p1) _GUS_CMD(chn, voice, _GUS_VOICEVOL2, (p1), 0)
-#define GUS_RAMPRANGE(chn, voice, low, high) _GUS_CMD(chn, voice, _GUS_RAMPRANGE, (low), (high))
-#define GUS_RAMPRATE(chn, voice, p1, p2) _GUS_CMD(chn, voice, _GUS_RAMPRATE, (p1), (p2))
-#define GUS_RAMPMODE(chn, voice, p1) _GUS_CMD(chn, voice, _GUS_RAMPMODE, (p1), 0)
-#define GUS_RAMPON(chn, voice, p1) _GUS_CMD(chn, voice, _GUS_RAMPON, (p1), 0)
-#define GUS_RAMPOFF(chn, voice) _GUS_CMD(chn, voice, _GUS_RAMPOFF, 0, 0)
-#define GUS_VOLUME_SCALE(chn, voice, p1, p2) _GUS_CMD(chn, voice, _GUS_VOLUME_SCALE, (p1), (p2))
-#define GUS_VOICE_POS(chn, voice, p) _GUS_CMD(chn, voice, _GUS_VOICE_POS, \
- (p) & 0xffff, ((p) >> 16) & 0xffff)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/un.h b/ANDROID_3.4.5/include/linux/un.h
deleted file mode 100644
index 3ed3e46c..00000000
--- a/ANDROID_3.4.5/include/linux/un.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef _LINUX_UN_H
-#define _LINUX_UN_H
-
-#include <linux/socket.h>
-
-#define UNIX_PATH_MAX 108
-
-struct sockaddr_un {
- __kernel_sa_family_t sun_family; /* AF_UNIX */
- char sun_path[UNIX_PATH_MAX]; /* pathname */
-};
-
-#endif /* _LINUX_UN_H */
diff --git a/ANDROID_3.4.5/include/linux/unaligned/access_ok.h b/ANDROID_3.4.5/include/linux/unaligned/access_ok.h
deleted file mode 100644
index 99c1b4d2..00000000
--- a/ANDROID_3.4.5/include/linux/unaligned/access_ok.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef _LINUX_UNALIGNED_ACCESS_OK_H
-#define _LINUX_UNALIGNED_ACCESS_OK_H
-
-#include <linux/kernel.h>
-#include <asm/byteorder.h>
-
-static inline u16 get_unaligned_le16(const void *p)
-{
- return le16_to_cpup((__le16 *)p);
-}
-
-static inline u32 get_unaligned_le32(const void *p)
-{
- return le32_to_cpup((__le32 *)p);
-}
-
-static inline u64 get_unaligned_le64(const void *p)
-{
- return le64_to_cpup((__le64 *)p);
-}
-
-static inline u16 get_unaligned_be16(const void *p)
-{
- return be16_to_cpup((__be16 *)p);
-}
-
-static inline u32 get_unaligned_be32(const void *p)
-{
- return be32_to_cpup((__be32 *)p);
-}
-
-static inline u64 get_unaligned_be64(const void *p)
-{
- return be64_to_cpup((__be64 *)p);
-}
-
-static inline void put_unaligned_le16(u16 val, void *p)
-{
- *((__le16 *)p) = cpu_to_le16(val);
-}
-
-static inline void put_unaligned_le32(u32 val, void *p)
-{
- *((__le32 *)p) = cpu_to_le32(val);
-}
-
-static inline void put_unaligned_le64(u64 val, void *p)
-{
- *((__le64 *)p) = cpu_to_le64(val);
-}
-
-static inline void put_unaligned_be16(u16 val, void *p)
-{
- *((__be16 *)p) = cpu_to_be16(val);
-}
-
-static inline void put_unaligned_be32(u32 val, void *p)
-{
- *((__be32 *)p) = cpu_to_be32(val);
-}
-
-static inline void put_unaligned_be64(u64 val, void *p)
-{
- *((__be64 *)p) = cpu_to_be64(val);
-}
-
-#endif /* _LINUX_UNALIGNED_ACCESS_OK_H */
diff --git a/ANDROID_3.4.5/include/linux/unaligned/be_byteshift.h b/ANDROID_3.4.5/include/linux/unaligned/be_byteshift.h
deleted file mode 100644
index 9356b242..00000000
--- a/ANDROID_3.4.5/include/linux/unaligned/be_byteshift.h
+++ /dev/null
@@ -1,70 +0,0 @@
-#ifndef _LINUX_UNALIGNED_BE_BYTESHIFT_H
-#define _LINUX_UNALIGNED_BE_BYTESHIFT_H
-
-#include <linux/types.h>
-
-static inline u16 __get_unaligned_be16(const u8 *p)
-{
- return p[0] << 8 | p[1];
-}
-
-static inline u32 __get_unaligned_be32(const u8 *p)
-{
- return p[0] << 24 | p[1] << 16 | p[2] << 8 | p[3];
-}
-
-static inline u64 __get_unaligned_be64(const u8 *p)
-{
- return (u64)__get_unaligned_be32(p) << 32 |
- __get_unaligned_be32(p + 4);
-}
-
-static inline void __put_unaligned_be16(u16 val, u8 *p)
-{
- *p++ = val >> 8;
- *p++ = val;
-}
-
-static inline void __put_unaligned_be32(u32 val, u8 *p)
-{
- __put_unaligned_be16(val >> 16, p);
- __put_unaligned_be16(val, p + 2);
-}
-
-static inline void __put_unaligned_be64(u64 val, u8 *p)
-{
- __put_unaligned_be32(val >> 32, p);
- __put_unaligned_be32(val, p + 4);
-}
-
-static inline u16 get_unaligned_be16(const void *p)
-{
- return __get_unaligned_be16((const u8 *)p);
-}
-
-static inline u32 get_unaligned_be32(const void *p)
-{
- return __get_unaligned_be32((const u8 *)p);
-}
-
-static inline u64 get_unaligned_be64(const void *p)
-{
- return __get_unaligned_be64((const u8 *)p);
-}
-
-static inline void put_unaligned_be16(u16 val, void *p)
-{
- __put_unaligned_be16(val, p);
-}
-
-static inline void put_unaligned_be32(u32 val, void *p)
-{
- __put_unaligned_be32(val, p);
-}
-
-static inline void put_unaligned_be64(u64 val, void *p)
-{
- __put_unaligned_be64(val, p);
-}
-
-#endif /* _LINUX_UNALIGNED_BE_BYTESHIFT_H */
diff --git a/ANDROID_3.4.5/include/linux/unaligned/be_memmove.h b/ANDROID_3.4.5/include/linux/unaligned/be_memmove.h
deleted file mode 100644
index c2a76c5c..00000000
--- a/ANDROID_3.4.5/include/linux/unaligned/be_memmove.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef _LINUX_UNALIGNED_BE_MEMMOVE_H
-#define _LINUX_UNALIGNED_BE_MEMMOVE_H
-
-#include <linux/unaligned/memmove.h>
-
-static inline u16 get_unaligned_be16(const void *p)
-{
- return __get_unaligned_memmove16((const u8 *)p);
-}
-
-static inline u32 get_unaligned_be32(const void *p)
-{
- return __get_unaligned_memmove32((const u8 *)p);
-}
-
-static inline u64 get_unaligned_be64(const void *p)
-{
- return __get_unaligned_memmove64((const u8 *)p);
-}
-
-static inline void put_unaligned_be16(u16 val, void *p)
-{
- __put_unaligned_memmove16(val, p);
-}
-
-static inline void put_unaligned_be32(u32 val, void *p)
-{
- __put_unaligned_memmove32(val, p);
-}
-
-static inline void put_unaligned_be64(u64 val, void *p)
-{
- __put_unaligned_memmove64(val, p);
-}
-
-#endif /* _LINUX_UNALIGNED_LE_MEMMOVE_H */
diff --git a/ANDROID_3.4.5/include/linux/unaligned/be_struct.h b/ANDROID_3.4.5/include/linux/unaligned/be_struct.h
deleted file mode 100644
index 13241583..00000000
--- a/ANDROID_3.4.5/include/linux/unaligned/be_struct.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef _LINUX_UNALIGNED_BE_STRUCT_H
-#define _LINUX_UNALIGNED_BE_STRUCT_H
-
-#include <linux/unaligned/packed_struct.h>
-
-static inline u16 get_unaligned_be16(const void *p)
-{
- return __get_unaligned_cpu16((const u8 *)p);
-}
-
-static inline u32 get_unaligned_be32(const void *p)
-{
- return __get_unaligned_cpu32((const u8 *)p);
-}
-
-static inline u64 get_unaligned_be64(const void *p)
-{
- return __get_unaligned_cpu64((const u8 *)p);
-}
-
-static inline void put_unaligned_be16(u16 val, void *p)
-{
- __put_unaligned_cpu16(val, p);
-}
-
-static inline void put_unaligned_be32(u32 val, void *p)
-{
- __put_unaligned_cpu32(val, p);
-}
-
-static inline void put_unaligned_be64(u64 val, void *p)
-{
- __put_unaligned_cpu64(val, p);
-}
-
-#endif /* _LINUX_UNALIGNED_BE_STRUCT_H */
diff --git a/ANDROID_3.4.5/include/linux/unaligned/generic.h b/ANDROID_3.4.5/include/linux/unaligned/generic.h
deleted file mode 100644
index 02d97ff3..00000000
--- a/ANDROID_3.4.5/include/linux/unaligned/generic.h
+++ /dev/null
@@ -1,68 +0,0 @@
-#ifndef _LINUX_UNALIGNED_GENERIC_H
-#define _LINUX_UNALIGNED_GENERIC_H
-
-/*
- * Cause a link-time error if we try an unaligned access other than
- * 1,2,4 or 8 bytes long
- */
-extern void __bad_unaligned_access_size(void);
-
-#define __get_unaligned_le(ptr) ((__force typeof(*(ptr)))({ \
- __builtin_choose_expr(sizeof(*(ptr)) == 1, *(ptr), \
- __builtin_choose_expr(sizeof(*(ptr)) == 2, get_unaligned_le16((ptr)), \
- __builtin_choose_expr(sizeof(*(ptr)) == 4, get_unaligned_le32((ptr)), \
- __builtin_choose_expr(sizeof(*(ptr)) == 8, get_unaligned_le64((ptr)), \
- __bad_unaligned_access_size())))); \
- }))
-
-#define __get_unaligned_be(ptr) ((__force typeof(*(ptr)))({ \
- __builtin_choose_expr(sizeof(*(ptr)) == 1, *(ptr), \
- __builtin_choose_expr(sizeof(*(ptr)) == 2, get_unaligned_be16((ptr)), \
- __builtin_choose_expr(sizeof(*(ptr)) == 4, get_unaligned_be32((ptr)), \
- __builtin_choose_expr(sizeof(*(ptr)) == 8, get_unaligned_be64((ptr)), \
- __bad_unaligned_access_size())))); \
- }))
-
-#define __put_unaligned_le(val, ptr) ({ \
- void *__gu_p = (ptr); \
- switch (sizeof(*(ptr))) { \
- case 1: \
- *(u8 *)__gu_p = (__force u8)(val); \
- break; \
- case 2: \
- put_unaligned_le16((__force u16)(val), __gu_p); \
- break; \
- case 4: \
- put_unaligned_le32((__force u32)(val), __gu_p); \
- break; \
- case 8: \
- put_unaligned_le64((__force u64)(val), __gu_p); \
- break; \
- default: \
- __bad_unaligned_access_size(); \
- break; \
- } \
- (void)0; })
-
-#define __put_unaligned_be(val, ptr) ({ \
- void *__gu_p = (ptr); \
- switch (sizeof(*(ptr))) { \
- case 1: \
- *(u8 *)__gu_p = (__force u8)(val); \
- break; \
- case 2: \
- put_unaligned_be16((__force u16)(val), __gu_p); \
- break; \
- case 4: \
- put_unaligned_be32((__force u32)(val), __gu_p); \
- break; \
- case 8: \
- put_unaligned_be64((__force u64)(val), __gu_p); \
- break; \
- default: \
- __bad_unaligned_access_size(); \
- break; \
- } \
- (void)0; })
-
-#endif /* _LINUX_UNALIGNED_GENERIC_H */
diff --git a/ANDROID_3.4.5/include/linux/unaligned/le_byteshift.h b/ANDROID_3.4.5/include/linux/unaligned/le_byteshift.h
deleted file mode 100644
index be376fb7..00000000
--- a/ANDROID_3.4.5/include/linux/unaligned/le_byteshift.h
+++ /dev/null
@@ -1,70 +0,0 @@
-#ifndef _LINUX_UNALIGNED_LE_BYTESHIFT_H
-#define _LINUX_UNALIGNED_LE_BYTESHIFT_H
-
-#include <linux/types.h>
-
-static inline u16 __get_unaligned_le16(const u8 *p)
-{
- return p[0] | p[1] << 8;
-}
-
-static inline u32 __get_unaligned_le32(const u8 *p)
-{
- return p[0] | p[1] << 8 | p[2] << 16 | p[3] << 24;
-}
-
-static inline u64 __get_unaligned_le64(const u8 *p)
-{
- return (u64)__get_unaligned_le32(p + 4) << 32 |
- __get_unaligned_le32(p);
-}
-
-static inline void __put_unaligned_le16(u16 val, u8 *p)
-{
- *p++ = val;
- *p++ = val >> 8;
-}
-
-static inline void __put_unaligned_le32(u32 val, u8 *p)
-{
- __put_unaligned_le16(val >> 16, p + 2);
- __put_unaligned_le16(val, p);
-}
-
-static inline void __put_unaligned_le64(u64 val, u8 *p)
-{
- __put_unaligned_le32(val >> 32, p + 4);
- __put_unaligned_le32(val, p);
-}
-
-static inline u16 get_unaligned_le16(const void *p)
-{
- return __get_unaligned_le16((const u8 *)p);
-}
-
-static inline u32 get_unaligned_le32(const void *p)
-{
- return __get_unaligned_le32((const u8 *)p);
-}
-
-static inline u64 get_unaligned_le64(const void *p)
-{
- return __get_unaligned_le64((const u8 *)p);
-}
-
-static inline void put_unaligned_le16(u16 val, void *p)
-{
- __put_unaligned_le16(val, p);
-}
-
-static inline void put_unaligned_le32(u32 val, void *p)
-{
- __put_unaligned_le32(val, p);
-}
-
-static inline void put_unaligned_le64(u64 val, void *p)
-{
- __put_unaligned_le64(val, p);
-}
-
-#endif /* _LINUX_UNALIGNED_LE_BYTESHIFT_H */
diff --git a/ANDROID_3.4.5/include/linux/unaligned/le_memmove.h b/ANDROID_3.4.5/include/linux/unaligned/le_memmove.h
deleted file mode 100644
index 269849be..00000000
--- a/ANDROID_3.4.5/include/linux/unaligned/le_memmove.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef _LINUX_UNALIGNED_LE_MEMMOVE_H
-#define _LINUX_UNALIGNED_LE_MEMMOVE_H
-
-#include <linux/unaligned/memmove.h>
-
-static inline u16 get_unaligned_le16(const void *p)
-{
- return __get_unaligned_memmove16((const u8 *)p);
-}
-
-static inline u32 get_unaligned_le32(const void *p)
-{
- return __get_unaligned_memmove32((const u8 *)p);
-}
-
-static inline u64 get_unaligned_le64(const void *p)
-{
- return __get_unaligned_memmove64((const u8 *)p);
-}
-
-static inline void put_unaligned_le16(u16 val, void *p)
-{
- __put_unaligned_memmove16(val, p);
-}
-
-static inline void put_unaligned_le32(u32 val, void *p)
-{
- __put_unaligned_memmove32(val, p);
-}
-
-static inline void put_unaligned_le64(u64 val, void *p)
-{
- __put_unaligned_memmove64(val, p);
-}
-
-#endif /* _LINUX_UNALIGNED_LE_MEMMOVE_H */
diff --git a/ANDROID_3.4.5/include/linux/unaligned/le_struct.h b/ANDROID_3.4.5/include/linux/unaligned/le_struct.h
deleted file mode 100644
index 088c4572..00000000
--- a/ANDROID_3.4.5/include/linux/unaligned/le_struct.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef _LINUX_UNALIGNED_LE_STRUCT_H
-#define _LINUX_UNALIGNED_LE_STRUCT_H
-
-#include <linux/unaligned/packed_struct.h>
-
-static inline u16 get_unaligned_le16(const void *p)
-{
- return __get_unaligned_cpu16((const u8 *)p);
-}
-
-static inline u32 get_unaligned_le32(const void *p)
-{
- return __get_unaligned_cpu32((const u8 *)p);
-}
-
-static inline u64 get_unaligned_le64(const void *p)
-{
- return __get_unaligned_cpu64((const u8 *)p);
-}
-
-static inline void put_unaligned_le16(u16 val, void *p)
-{
- __put_unaligned_cpu16(val, p);
-}
-
-static inline void put_unaligned_le32(u32 val, void *p)
-{
- __put_unaligned_cpu32(val, p);
-}
-
-static inline void put_unaligned_le64(u64 val, void *p)
-{
- __put_unaligned_cpu64(val, p);
-}
-
-#endif /* _LINUX_UNALIGNED_LE_STRUCT_H */
diff --git a/ANDROID_3.4.5/include/linux/unaligned/memmove.h b/ANDROID_3.4.5/include/linux/unaligned/memmove.h
deleted file mode 100644
index eeb5a779..00000000
--- a/ANDROID_3.4.5/include/linux/unaligned/memmove.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef _LINUX_UNALIGNED_MEMMOVE_H
-#define _LINUX_UNALIGNED_MEMMOVE_H
-
-#include <linux/kernel.h>
-#include <linux/string.h>
-
-/* Use memmove here, so gcc does not insert a __builtin_memcpy. */
-
-static inline u16 __get_unaligned_memmove16(const void *p)
-{
- u16 tmp;
- memmove(&tmp, p, 2);
- return tmp;
-}
-
-static inline u32 __get_unaligned_memmove32(const void *p)
-{
- u32 tmp;
- memmove(&tmp, p, 4);
- return tmp;
-}
-
-static inline u64 __get_unaligned_memmove64(const void *p)
-{
- u64 tmp;
- memmove(&tmp, p, 8);
- return tmp;
-}
-
-static inline void __put_unaligned_memmove16(u16 val, void *p)
-{
- memmove(p, &val, 2);
-}
-
-static inline void __put_unaligned_memmove32(u32 val, void *p)
-{
- memmove(p, &val, 4);
-}
-
-static inline void __put_unaligned_memmove64(u64 val, void *p)
-{
- memmove(p, &val, 8);
-}
-
-#endif /* _LINUX_UNALIGNED_MEMMOVE_H */
diff --git a/ANDROID_3.4.5/include/linux/unaligned/packed_struct.h b/ANDROID_3.4.5/include/linux/unaligned/packed_struct.h
deleted file mode 100644
index c0d817de..00000000
--- a/ANDROID_3.4.5/include/linux/unaligned/packed_struct.h
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef _LINUX_UNALIGNED_PACKED_STRUCT_H
-#define _LINUX_UNALIGNED_PACKED_STRUCT_H
-
-#include <linux/kernel.h>
-
-struct __una_u16 { u16 x; } __packed;
-struct __una_u32 { u32 x; } __packed;
-struct __una_u64 { u64 x; } __packed;
-
-static inline u16 __get_unaligned_cpu16(const void *p)
-{
- const struct __una_u16 *ptr = (const struct __una_u16 *)p;
- return ptr->x;
-}
-
-static inline u32 __get_unaligned_cpu32(const void *p)
-{
- const struct __una_u32 *ptr = (const struct __una_u32 *)p;
- return ptr->x;
-}
-
-static inline u64 __get_unaligned_cpu64(const void *p)
-{
- const struct __una_u64 *ptr = (const struct __una_u64 *)p;
- return ptr->x;
-}
-
-static inline void __put_unaligned_cpu16(u16 val, void *p)
-{
- struct __una_u16 *ptr = (struct __una_u16 *)p;
- ptr->x = val;
-}
-
-static inline void __put_unaligned_cpu32(u32 val, void *p)
-{
- struct __una_u32 *ptr = (struct __una_u32 *)p;
- ptr->x = val;
-}
-
-static inline void __put_unaligned_cpu64(u64 val, void *p)
-{
- struct __una_u64 *ptr = (struct __una_u64 *)p;
- ptr->x = val;
-}
-
-#endif /* _LINUX_UNALIGNED_PACKED_STRUCT_H */
diff --git a/ANDROID_3.4.5/include/linux/unistd.h b/ANDROID_3.4.5/include/linux/unistd.h
deleted file mode 100644
index aa8d5b5e..00000000
--- a/ANDROID_3.4.5/include/linux/unistd.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef _LINUX_UNISTD_H_
-#define _LINUX_UNISTD_H_
-
-/*
- * Include machine specific syscall numbers
- */
-#include <asm/unistd.h>
-
-#endif /* _LINUX_UNISTD_H_ */
diff --git a/ANDROID_3.4.5/include/linux/unix_diag.h b/ANDROID_3.4.5/include/linux/unix_diag.h
deleted file mode 100644
index b1d2bf16..00000000
--- a/ANDROID_3.4.5/include/linux/unix_diag.h
+++ /dev/null
@@ -1,54 +0,0 @@
-#ifndef __UNIX_DIAG_H__
-#define __UNIX_DIAG_H__
-
-#include <linux/types.h>
-
-struct unix_diag_req {
- __u8 sdiag_family;
- __u8 sdiag_protocol;
- __u16 pad;
- __u32 udiag_states;
- __u32 udiag_ino;
- __u32 udiag_show;
- __u32 udiag_cookie[2];
-};
-
-#define UDIAG_SHOW_NAME 0x00000001 /* show name (not path) */
-#define UDIAG_SHOW_VFS 0x00000002 /* show VFS inode info */
-#define UDIAG_SHOW_PEER 0x00000004 /* show peer socket info */
-#define UDIAG_SHOW_ICONS 0x00000008 /* show pending connections */
-#define UDIAG_SHOW_RQLEN 0x00000010 /* show skb receive queue len */
-#define UDIAG_SHOW_MEMINFO 0x00000020 /* show memory info of a socket */
-
-struct unix_diag_msg {
- __u8 udiag_family;
- __u8 udiag_type;
- __u8 udiag_state;
- __u8 pad;
-
- __u32 udiag_ino;
- __u32 udiag_cookie[2];
-};
-
-enum {
- UNIX_DIAG_NAME,
- UNIX_DIAG_VFS,
- UNIX_DIAG_PEER,
- UNIX_DIAG_ICONS,
- UNIX_DIAG_RQLEN,
- UNIX_DIAG_MEMINFO,
-
- UNIX_DIAG_MAX,
-};
-
-struct unix_diag_vfs {
- __u32 udiag_vfs_ino;
- __u32 udiag_vfs_dev;
-};
-
-struct unix_diag_rqlen {
- __u32 udiag_rqueue;
- __u32 udiag_wqueue;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/usb.h b/ANDROID_3.4.5/include/linux/usb.h
deleted file mode 100644
index 90f35bbe..00000000
--- a/ANDROID_3.4.5/include/linux/usb.h
+++ /dev/null
@@ -1,1669 +0,0 @@
-#ifndef __LINUX_USB_H
-#define __LINUX_USB_H
-
-#include <linux/mod_devicetable.h>
-#include <linux/usb/ch9.h>
-
-#define USB_MAJOR 180
-#define USB_DEVICE_MAJOR 189
-
-
-#ifdef __KERNEL__
-
-#include <linux/errno.h> /* for -ENODEV */
-#include <linux/delay.h> /* for mdelay() */
-#include <linux/interrupt.h> /* for in_interrupt() */
-#include <linux/list.h> /* for struct list_head */
-#include <linux/kref.h> /* for struct kref */
-#include <linux/device.h> /* for struct device */
-#include <linux/fs.h> /* for struct file_operations */
-#include <linux/completion.h> /* for struct completion */
-#include <linux/sched.h> /* for current && schedule_timeout */
-#include <linux/mutex.h> /* for struct mutex */
-#include <linux/pm_runtime.h> /* for runtime PM */
-
-struct usb_device;
-struct usb_driver;
-struct wusb_dev;
-
-/*-------------------------------------------------------------------------*/
-
-/*
- * Host-side wrappers for standard USB descriptors ... these are parsed
- * from the data provided by devices. Parsing turns them from a flat
- * sequence of descriptors into a hierarchy:
- *
- * - devices have one (usually) or more configs;
- * - configs have one (often) or more interfaces;
- * - interfaces have one (usually) or more settings;
- * - each interface setting has zero or (usually) more endpoints.
- * - a SuperSpeed endpoint has a companion descriptor
- *
- * And there might be other descriptors mixed in with those.
- *
- * Devices may also have class-specific or vendor-specific descriptors.
- */
-
-struct ep_device;
-
-/**
- * struct usb_host_endpoint - host-side endpoint descriptor and queue
- * @desc: descriptor for this endpoint, wMaxPacketSize in native byteorder
- * @ss_ep_comp: SuperSpeed companion descriptor for this endpoint
- * @urb_list: urbs queued to this endpoint; maintained by usbcore
- * @hcpriv: for use by HCD; typically holds hardware dma queue head (QH)
- * with one or more transfer descriptors (TDs) per urb
- * @ep_dev: ep_device for sysfs info
- * @extra: descriptors following this endpoint in the configuration
- * @extralen: how many bytes of "extra" are valid
- * @enabled: URBs may be submitted to this endpoint
- *
- * USB requests are always queued to a given endpoint, identified by a
- * descriptor within an active interface in a given USB configuration.
- */
-struct usb_host_endpoint {
- struct usb_endpoint_descriptor desc;
- struct usb_ss_ep_comp_descriptor ss_ep_comp;
- struct list_head urb_list;
- void *hcpriv;
- struct ep_device *ep_dev; /* For sysfs info */
-
- unsigned char *extra; /* Extra descriptors */
- int extralen;
- int enabled;
-};
-
-/* host-side wrapper for one interface setting's parsed descriptors */
-struct usb_host_interface {
- struct usb_interface_descriptor desc;
-
- /* array of desc.bNumEndpoint endpoints associated with this
- * interface setting. these will be in no particular order.
- */
- struct usb_host_endpoint *endpoint;
-
- char *string; /* iInterface string, if present */
- unsigned char *extra; /* Extra descriptors */
- int extralen;
-};
-
-enum usb_interface_condition {
- USB_INTERFACE_UNBOUND = 0,
- USB_INTERFACE_BINDING,
- USB_INTERFACE_BOUND,
- USB_INTERFACE_UNBINDING,
-};
-
-/**
- * struct usb_interface - what usb device drivers talk to
- * @altsetting: array of interface structures, one for each alternate
- * setting that may be selected. Each one includes a set of
- * endpoint configurations. They will be in no particular order.
- * @cur_altsetting: the current altsetting.
- * @num_altsetting: number of altsettings defined.
- * @intf_assoc: interface association descriptor
- * @minor: the minor number assigned to this interface, if this
- * interface is bound to a driver that uses the USB major number.
- * If this interface does not use the USB major, this field should
- * be unused. The driver should set this value in the probe()
- * function of the driver, after it has been assigned a minor
- * number from the USB core by calling usb_register_dev().
- * @condition: binding state of the interface: not bound, binding
- * (in probe()), bound to a driver, or unbinding (in disconnect())
- * @sysfs_files_created: sysfs attributes exist
- * @ep_devs_created: endpoint child pseudo-devices exist
- * @unregistering: flag set when the interface is being unregistered
- * @needs_remote_wakeup: flag set when the driver requires remote-wakeup
- * capability during autosuspend.
- * @needs_altsetting0: flag set when a set-interface request for altsetting 0
- * has been deferred.
- * @needs_binding: flag set when the driver should be re-probed or unbound
- * following a reset or suspend operation it doesn't support.
- * @dev: driver model's view of this device
- * @usb_dev: if an interface is bound to the USB major, this will point
- * to the sysfs representation for that device.
- * @pm_usage_cnt: PM usage counter for this interface
- * @reset_ws: Used for scheduling resets from atomic context.
- * @reset_running: set to 1 if the interface is currently running a
- * queued reset so that usb_cancel_queued_reset() doesn't try to
- * remove from the workqueue when running inside the worker
- * thread. See __usb_queue_reset_device().
- * @resetting_device: USB core reset the device, so use alt setting 0 as
- * current; needs bandwidth alloc after reset.
- *
- * USB device drivers attach to interfaces on a physical device. Each
- * interface encapsulates a single high level function, such as feeding
- * an audio stream to a speaker or reporting a change in a volume control.
- * Many USB devices only have one interface. The protocol used to talk to
- * an interface's endpoints can be defined in a usb "class" specification,
- * or by a product's vendor. The (default) control endpoint is part of
- * every interface, but is never listed among the interface's descriptors.
- *
- * The driver that is bound to the interface can use standard driver model
- * calls such as dev_get_drvdata() on the dev member of this structure.
- *
- * Each interface may have alternate settings. The initial configuration
- * of a device sets altsetting 0, but the device driver can change
- * that setting using usb_set_interface(). Alternate settings are often
- * used to control the use of periodic endpoints, such as by having
- * different endpoints use different amounts of reserved USB bandwidth.
- * All standards-conformant USB devices that use isochronous endpoints
- * will use them in non-default settings.
- *
- * The USB specification says that alternate setting numbers must run from
- * 0 to one less than the total number of alternate settings. But some
- * devices manage to mess this up, and the structures aren't necessarily
- * stored in numerical order anyhow. Use usb_altnum_to_altsetting() to
- * look up an alternate setting in the altsetting array based on its number.
- */
-struct usb_interface {
- /* array of alternate settings for this interface,
- * stored in no particular order */
- struct usb_host_interface *altsetting;
-
- struct usb_host_interface *cur_altsetting; /* the currently
- * active alternate setting */
- unsigned num_altsetting; /* number of alternate settings */
-
- /* If there is an interface association descriptor then it will list
- * the associated interfaces */
- struct usb_interface_assoc_descriptor *intf_assoc;
-
- int minor; /* minor number this interface is
- * bound to */
- enum usb_interface_condition condition; /* state of binding */
- unsigned sysfs_files_created:1; /* the sysfs attributes exist */
- unsigned ep_devs_created:1; /* endpoint "devices" exist */
- unsigned unregistering:1; /* unregistration is in progress */
- unsigned needs_remote_wakeup:1; /* driver requires remote wakeup */
- unsigned needs_altsetting0:1; /* switch to altsetting 0 is pending */
- unsigned needs_binding:1; /* needs delayed unbind/rebind */
- unsigned reset_running:1;
- unsigned resetting_device:1; /* true: bandwidth alloc after reset */
-
- struct device dev; /* interface specific device info */
- struct device *usb_dev;
- atomic_t pm_usage_cnt; /* usage counter for autosuspend */
- struct work_struct reset_ws; /* for resets in atomic context */
-};
-#define to_usb_interface(d) container_of(d, struct usb_interface, dev)
-
-static inline void *usb_get_intfdata(struct usb_interface *intf)
-{
- return dev_get_drvdata(&intf->dev);
-}
-
-static inline void usb_set_intfdata(struct usb_interface *intf, void *data)
-{
- dev_set_drvdata(&intf->dev, data);
-}
-
-struct usb_interface *usb_get_intf(struct usb_interface *intf);
-void usb_put_intf(struct usb_interface *intf);
-
-/* this maximum is arbitrary */
-#define USB_MAXINTERFACES 32
-#define USB_MAXIADS (USB_MAXINTERFACES/2)
-
-/**
- * struct usb_interface_cache - long-term representation of a device interface
- * @num_altsetting: number of altsettings defined.
- * @ref: reference counter.
- * @altsetting: variable-length array of interface structures, one for
- * each alternate setting that may be selected. Each one includes a
- * set of endpoint configurations. They will be in no particular order.
- *
- * These structures persist for the lifetime of a usb_device, unlike
- * struct usb_interface (which persists only as long as its configuration
- * is installed). The altsetting arrays can be accessed through these
- * structures at any time, permitting comparison of configurations and
- * providing support for the /proc/bus/usb/devices pseudo-file.
- */
-struct usb_interface_cache {
- unsigned num_altsetting; /* number of alternate settings */
- struct kref ref; /* reference counter */
-
- /* variable-length array of alternate settings for this interface,
- * stored in no particular order */
- struct usb_host_interface altsetting[0];
-};
-#define ref_to_usb_interface_cache(r) \
- container_of(r, struct usb_interface_cache, ref)
-#define altsetting_to_usb_interface_cache(a) \
- container_of(a, struct usb_interface_cache, altsetting[0])
-
-/**
- * struct usb_host_config - representation of a device's configuration
- * @desc: the device's configuration descriptor.
- * @string: pointer to the cached version of the iConfiguration string, if
- * present for this configuration.
- * @intf_assoc: list of any interface association descriptors in this config
- * @interface: array of pointers to usb_interface structures, one for each
- * interface in the configuration. The number of interfaces is stored
- * in desc.bNumInterfaces. These pointers are valid only while the
- * the configuration is active.
- * @intf_cache: array of pointers to usb_interface_cache structures, one
- * for each interface in the configuration. These structures exist
- * for the entire life of the device.
- * @extra: pointer to buffer containing all extra descriptors associated
- * with this configuration (those preceding the first interface
- * descriptor).
- * @extralen: length of the extra descriptors buffer.
- *
- * USB devices may have multiple configurations, but only one can be active
- * at any time. Each encapsulates a different operational environment;
- * for example, a dual-speed device would have separate configurations for
- * full-speed and high-speed operation. The number of configurations
- * available is stored in the device descriptor as bNumConfigurations.
- *
- * A configuration can contain multiple interfaces. Each corresponds to
- * a different function of the USB device, and all are available whenever
- * the configuration is active. The USB standard says that interfaces
- * are supposed to be numbered from 0 to desc.bNumInterfaces-1, but a lot
- * of devices get this wrong. In addition, the interface array is not
- * guaranteed to be sorted in numerical order. Use usb_ifnum_to_if() to
- * look up an interface entry based on its number.
- *
- * Device drivers should not attempt to activate configurations. The choice
- * of which configuration to install is a policy decision based on such
- * considerations as available power, functionality provided, and the user's
- * desires (expressed through userspace tools). However, drivers can call
- * usb_reset_configuration() to reinitialize the current configuration and
- * all its interfaces.
- */
-struct usb_host_config {
- struct usb_config_descriptor desc;
-
- char *string; /* iConfiguration string, if present */
-
- /* List of any Interface Association Descriptors in this
- * configuration. */
- struct usb_interface_assoc_descriptor *intf_assoc[USB_MAXIADS];
-
- /* the interfaces associated with this configuration,
- * stored in no particular order */
- struct usb_interface *interface[USB_MAXINTERFACES];
-
- /* Interface information available even when this is not the
- * active configuration */
- struct usb_interface_cache *intf_cache[USB_MAXINTERFACES];
-
- unsigned char *extra; /* Extra descriptors */
- int extralen;
-};
-
-/* USB2.0 and USB3.0 device BOS descriptor set */
-struct usb_host_bos {
- struct usb_bos_descriptor *desc;
-
- /* wireless cap descriptor is handled by wusb */
- struct usb_ext_cap_descriptor *ext_cap;
- struct usb_ss_cap_descriptor *ss_cap;
- struct usb_ss_container_id_descriptor *ss_id;
-};
-
-int __usb_get_extra_descriptor(char *buffer, unsigned size,
- unsigned char type, void **ptr);
-#define usb_get_extra_descriptor(ifpoint, type, ptr) \
- __usb_get_extra_descriptor((ifpoint)->extra, \
- (ifpoint)->extralen, \
- type, (void **)ptr)
-
-/* ----------------------------------------------------------------------- */
-
-/* USB device number allocation bitmap */
-struct usb_devmap {
- unsigned long devicemap[128 / (8*sizeof(unsigned long))];
-};
-
-/*
- * Allocated per bus (tree of devices) we have:
- */
-struct usb_bus {
- struct device *controller; /* host/master side hardware */
- int busnum; /* Bus number (in order of reg) */
- const char *bus_name; /* stable id (PCI slot_name etc) */
- u8 uses_dma; /* Does the host controller use DMA? */
- u8 uses_pio_for_control; /*
- * Does the host controller use PIO
- * for control transfers?
- */
- u8 otg_port; /* 0, or number of OTG/HNP port */
- unsigned is_b_host:1; /* true during some HNP roleswitches */
- unsigned b_hnp_enable:1; /* OTG: did A-Host enable HNP? */
- unsigned sg_tablesize; /* 0 or largest number of sg list entries */
-
- int devnum_next; /* Next open device number in
- * round-robin allocation */
-
- struct usb_devmap devmap; /* device address allocation map */
- struct usb_device *root_hub; /* Root hub */
- struct usb_bus *hs_companion; /* Companion EHCI bus, if any */
- struct list_head bus_list; /* list of busses */
-
- int bandwidth_allocated; /* on this bus: how much of the time
- * reserved for periodic (intr/iso)
- * requests is used, on average?
- * Units: microseconds/frame.
- * Limits: Full/low speed reserve 90%,
- * while high speed reserves 80%.
- */
- int bandwidth_int_reqs; /* number of Interrupt requests */
- int bandwidth_isoc_reqs; /* number of Isoc. requests */
-
-#ifdef CONFIG_USB_DEVICEFS
- struct dentry *usbfs_dentry; /* usbfs dentry entry for the bus */
-#endif
-
-#if defined(CONFIG_USB_MON) || defined(CONFIG_USB_MON_MODULE)
- struct mon_bus *mon_bus; /* non-null when associated */
- int monitored; /* non-zero when monitored */
-#endif
-};
-
-/* ----------------------------------------------------------------------- */
-
-/* This is arbitrary.
- * From USB 2.0 spec Table 11-13, offset 7, a hub can
- * have up to 255 ports. The most yet reported is 10.
- *
- * Current Wireless USB host hardware (Intel i1480 for example) allows
- * up to 22 devices to connect. Upcoming hardware might raise that
- * limit. Because the arrays need to add a bit for hub status data, we
- * do 31, so plus one evens out to four bytes.
- */
-#define USB_MAXCHILDREN (31)
-
-struct usb_tt;
-
-enum usb_device_removable {
- USB_DEVICE_REMOVABLE_UNKNOWN = 0,
- USB_DEVICE_REMOVABLE,
- USB_DEVICE_FIXED,
-};
-
-/**
- * struct usb_device - kernel's representation of a USB device
- * @devnum: device number; address on a USB bus
- * @devpath: device ID string for use in messages (e.g., /port/...)
- * @route: tree topology hex string for use with xHCI
- * @state: device state: configured, not attached, etc.
- * @speed: device speed: high/full/low (or error)
- * @tt: Transaction Translator info; used with low/full speed dev, highspeed hub
- * @ttport: device port on that tt hub
- * @toggle: one bit for each endpoint, with ([0] = IN, [1] = OUT) endpoints
- * @parent: our hub, unless we're the root
- * @bus: bus we're part of
- * @ep0: endpoint 0 data (default control pipe)
- * @dev: generic device interface
- * @descriptor: USB device descriptor
- * @bos: USB device BOS descriptor set
- * @config: all of the device's configs
- * @actconfig: the active configuration
- * @ep_in: array of IN endpoints
- * @ep_out: array of OUT endpoints
- * @rawdescriptors: raw descriptors for each config
- * @bus_mA: Current available from the bus
- * @portnum: parent port number (origin 1)
- * @level: number of USB hub ancestors
- * @can_submit: URBs may be submitted
- * @persist_enabled: USB_PERSIST enabled for this device
- * @have_langid: whether string_langid is valid
- * @authorized: policy has said we can use it;
- * (user space) policy determines if we authorize this device to be
- * used or not. By default, wired USB devices are authorized.
- * WUSB devices are not, until we authorize them from user space.
- * FIXME -- complete doc
- * @authenticated: Crypto authentication passed
- * @wusb: device is Wireless USB
- * @lpm_capable: device supports LPM
- * @usb2_hw_lpm_capable: device can perform USB2 hardware LPM
- * @usb2_hw_lpm_enabled: USB2 hardware LPM enabled
- * @string_langid: language ID for strings
- * @product: iProduct string, if present (static)
- * @manufacturer: iManufacturer string, if present (static)
- * @serial: iSerialNumber string, if present (static)
- * @filelist: usbfs files that are open to this device
- * @usb_classdev: USB class device that was created for usbfs device
- * access from userspace
- * @usbfs_dentry: usbfs dentry entry for the device
- * @maxchild: number of ports if hub
- * @children: child devices - USB devices that are attached to this hub
- * @quirks: quirks of the whole device
- * @urbnum: number of URBs submitted for the whole device
- * @active_duration: total time device is not suspended
- * @connect_time: time device was first connected
- * @do_remote_wakeup: remote wakeup should be enabled
- * @reset_resume: needs reset instead of resume
- * @wusb_dev: if this is a Wireless USB device, link to the WUSB
- * specific data for the device.
- * @slot_id: Slot ID assigned by xHCI
- * @removable: Device can be physically removed from this port
- *
- * Notes:
- * Usbcore drivers should not set usbdev->state directly. Instead use
- * usb_set_device_state().
- */
-struct usb_device {
- int devnum;
- char devpath[16];
- u32 route;
- enum usb_device_state state;
- enum usb_device_speed speed;
-
- struct usb_tt *tt;
- int ttport;
-
- unsigned int toggle[2];
-
- struct usb_device *parent;
- struct usb_bus *bus;
- struct usb_host_endpoint ep0;
-
- struct device dev;
-
- struct usb_device_descriptor descriptor;
- struct usb_host_bos *bos;
- struct usb_host_config *config;
-
- struct usb_host_config *actconfig;
- struct usb_host_endpoint *ep_in[16];
- struct usb_host_endpoint *ep_out[16];
-
- char **rawdescriptors;
-
- unsigned short bus_mA;
- u8 portnum;
- u8 level;
-
- unsigned can_submit:1;
- unsigned persist_enabled:1;
- unsigned have_langid:1;
- unsigned authorized:1;
- unsigned authenticated:1;
- unsigned wusb:1;
- unsigned lpm_capable:1;
- unsigned usb2_hw_lpm_capable:1;
- unsigned usb2_hw_lpm_enabled:1;
- int string_langid;
-
- /* static strings from the device */
- char *product;
- char *manufacturer;
- char *serial;
-
- struct list_head filelist;
-#ifdef CONFIG_USB_DEVICE_CLASS
- struct device *usb_classdev;
-#endif
-#ifdef CONFIG_USB_DEVICEFS
- struct dentry *usbfs_dentry;
-#endif
-
- int maxchild;
- struct usb_device **children;
-
- u32 quirks;
- atomic_t urbnum;
-
- unsigned long active_duration;
-
-#ifdef CONFIG_PM
- unsigned long connect_time;
-
- unsigned do_remote_wakeup:1;
- unsigned reset_resume:1;
-#endif
- struct wusb_dev *wusb_dev;
- int slot_id;
- enum usb_device_removable removable;
-};
-#define to_usb_device(d) container_of(d, struct usb_device, dev)
-
-static inline struct usb_device *interface_to_usbdev(struct usb_interface *intf)
-{
- return to_usb_device(intf->dev.parent);
-}
-
-extern struct usb_device *usb_get_dev(struct usb_device *dev);
-extern void usb_put_dev(struct usb_device *dev);
-
-/* USB device locking */
-#define usb_lock_device(udev) device_lock(&(udev)->dev)
-#define usb_unlock_device(udev) device_unlock(&(udev)->dev)
-#define usb_trylock_device(udev) device_trylock(&(udev)->dev)
-extern int usb_lock_device_for_reset(struct usb_device *udev,
- const struct usb_interface *iface);
-
-/* USB port reset for device reinitialization */
-extern int usb_reset_device(struct usb_device *dev);
-extern void usb_queue_reset_device(struct usb_interface *dev);
-
-
-/* USB autosuspend and autoresume */
-#ifdef CONFIG_USB_SUSPEND
-extern void usb_enable_autosuspend(struct usb_device *udev);
-extern void usb_disable_autosuspend(struct usb_device *udev);
-
-extern int usb_autopm_get_interface(struct usb_interface *intf);
-extern void usb_autopm_put_interface(struct usb_interface *intf);
-extern int usb_autopm_get_interface_async(struct usb_interface *intf);
-extern void usb_autopm_put_interface_async(struct usb_interface *intf);
-extern void usb_autopm_get_interface_no_resume(struct usb_interface *intf);
-extern void usb_autopm_put_interface_no_suspend(struct usb_interface *intf);
-
-static inline void usb_mark_last_busy(struct usb_device *udev)
-{
- pm_runtime_mark_last_busy(&udev->dev);
-}
-
-#else
-
-static inline int usb_enable_autosuspend(struct usb_device *udev)
-{ return 0; }
-static inline int usb_disable_autosuspend(struct usb_device *udev)
-{ return 0; }
-
-static inline int usb_autopm_get_interface(struct usb_interface *intf)
-{ return 0; }
-static inline int usb_autopm_get_interface_async(struct usb_interface *intf)
-{ return 0; }
-
-static inline void usb_autopm_put_interface(struct usb_interface *intf)
-{ }
-static inline void usb_autopm_put_interface_async(struct usb_interface *intf)
-{ }
-static inline void usb_autopm_get_interface_no_resume(
- struct usb_interface *intf)
-{ }
-static inline void usb_autopm_put_interface_no_suspend(
- struct usb_interface *intf)
-{ }
-static inline void usb_mark_last_busy(struct usb_device *udev)
-{ }
-#endif
-
-/*-------------------------------------------------------------------------*/
-
-/* for drivers using iso endpoints */
-extern int usb_get_current_frame_number(struct usb_device *usb_dev);
-
-/* Sets up a group of bulk endpoints to support multiple stream IDs. */
-extern int usb_alloc_streams(struct usb_interface *interface,
- struct usb_host_endpoint **eps, unsigned int num_eps,
- unsigned int num_streams, gfp_t mem_flags);
-
-/* Reverts a group of bulk endpoints back to not using stream IDs. */
-extern void usb_free_streams(struct usb_interface *interface,
- struct usb_host_endpoint **eps, unsigned int num_eps,
- gfp_t mem_flags);
-
-/* used these for multi-interface device registration */
-extern int usb_driver_claim_interface(struct usb_driver *driver,
- struct usb_interface *iface, void *priv);
-
-/**
- * usb_interface_claimed - returns true iff an interface is claimed
- * @iface: the interface being checked
- *
- * Returns true (nonzero) iff the interface is claimed, else false (zero).
- * Callers must own the driver model's usb bus readlock. So driver
- * probe() entries don't need extra locking, but other call contexts
- * may need to explicitly claim that lock.
- *
- */
-static inline int usb_interface_claimed(struct usb_interface *iface)
-{
- return (iface->dev.driver != NULL);
-}
-
-extern void usb_driver_release_interface(struct usb_driver *driver,
- struct usb_interface *iface);
-const struct usb_device_id *usb_match_id(struct usb_interface *interface,
- const struct usb_device_id *id);
-extern int usb_match_one_id(struct usb_interface *interface,
- const struct usb_device_id *id);
-
-extern struct usb_interface *usb_find_interface(struct usb_driver *drv,
- int minor);
-extern struct usb_interface *usb_ifnum_to_if(const struct usb_device *dev,
- unsigned ifnum);
-extern struct usb_host_interface *usb_altnum_to_altsetting(
- const struct usb_interface *intf, unsigned int altnum);
-extern struct usb_host_interface *usb_find_alt_setting(
- struct usb_host_config *config,
- unsigned int iface_num,
- unsigned int alt_num);
-
-
-/**
- * usb_make_path - returns stable device path in the usb tree
- * @dev: the device whose path is being constructed
- * @buf: where to put the string
- * @size: how big is "buf"?
- *
- * Returns length of the string (> 0) or negative if size was too small.
- *
- * This identifier is intended to be "stable", reflecting physical paths in
- * hardware such as physical bus addresses for host controllers or ports on
- * USB hubs. That makes it stay the same until systems are physically
- * reconfigured, by re-cabling a tree of USB devices or by moving USB host
- * controllers. Adding and removing devices, including virtual root hubs
- * in host controller driver modules, does not change these path identifiers;
- * neither does rebooting or re-enumerating. These are more useful identifiers
- * than changeable ("unstable") ones like bus numbers or device addresses.
- *
- * With a partial exception for devices connected to USB 2.0 root hubs, these
- * identifiers are also predictable. So long as the device tree isn't changed,
- * plugging any USB device into a given hub port always gives it the same path.
- * Because of the use of "companion" controllers, devices connected to ports on
- * USB 2.0 root hubs (EHCI host controllers) will get one path ID if they are
- * high speed, and a different one if they are full or low speed.
- */
-static inline int usb_make_path(struct usb_device *dev, char *buf, size_t size)
-{
- int actual;
- actual = snprintf(buf, size, "usb-%s-%s", dev->bus->bus_name,
- dev->devpath);
- return (actual >= (int)size) ? -1 : actual;
-}
-
-/*-------------------------------------------------------------------------*/
-
-#define USB_DEVICE_ID_MATCH_DEVICE \
- (USB_DEVICE_ID_MATCH_VENDOR | USB_DEVICE_ID_MATCH_PRODUCT)
-#define USB_DEVICE_ID_MATCH_DEV_RANGE \
- (USB_DEVICE_ID_MATCH_DEV_LO | USB_DEVICE_ID_MATCH_DEV_HI)
-#define USB_DEVICE_ID_MATCH_DEVICE_AND_VERSION \
- (USB_DEVICE_ID_MATCH_DEVICE | USB_DEVICE_ID_MATCH_DEV_RANGE)
-#define USB_DEVICE_ID_MATCH_DEV_INFO \
- (USB_DEVICE_ID_MATCH_DEV_CLASS | \
- USB_DEVICE_ID_MATCH_DEV_SUBCLASS | \
- USB_DEVICE_ID_MATCH_DEV_PROTOCOL)
-#define USB_DEVICE_ID_MATCH_INT_INFO \
- (USB_DEVICE_ID_MATCH_INT_CLASS | \
- USB_DEVICE_ID_MATCH_INT_SUBCLASS | \
- USB_DEVICE_ID_MATCH_INT_PROTOCOL)
-
-/**
- * USB_DEVICE - macro used to describe a specific usb device
- * @vend: the 16 bit USB Vendor ID
- * @prod: the 16 bit USB Product ID
- *
- * This macro is used to create a struct usb_device_id that matches a
- * specific device.
- */
-#define USB_DEVICE(vend, prod) \
- .match_flags = USB_DEVICE_ID_MATCH_DEVICE, \
- .idVendor = (vend), \
- .idProduct = (prod)
-/**
- * USB_DEVICE_VER - describe a specific usb device with a version range
- * @vend: the 16 bit USB Vendor ID
- * @prod: the 16 bit USB Product ID
- * @lo: the bcdDevice_lo value
- * @hi: the bcdDevice_hi value
- *
- * This macro is used to create a struct usb_device_id that matches a
- * specific device, with a version range.
- */
-#define USB_DEVICE_VER(vend, prod, lo, hi) \
- .match_flags = USB_DEVICE_ID_MATCH_DEVICE_AND_VERSION, \
- .idVendor = (vend), \
- .idProduct = (prod), \
- .bcdDevice_lo = (lo), \
- .bcdDevice_hi = (hi)
-
-/**
- * USB_DEVICE_INTERFACE_PROTOCOL - describe a usb device with a specific interface protocol
- * @vend: the 16 bit USB Vendor ID
- * @prod: the 16 bit USB Product ID
- * @pr: bInterfaceProtocol value
- *
- * This macro is used to create a struct usb_device_id that matches a
- * specific interface protocol of devices.
- */
-#define USB_DEVICE_INTERFACE_PROTOCOL(vend, prod, pr) \
- .match_flags = USB_DEVICE_ID_MATCH_DEVICE | \
- USB_DEVICE_ID_MATCH_INT_PROTOCOL, \
- .idVendor = (vend), \
- .idProduct = (prod), \
- .bInterfaceProtocol = (pr)
-
-/**
- * USB_DEVICE_INFO - macro used to describe a class of usb devices
- * @cl: bDeviceClass value
- * @sc: bDeviceSubClass value
- * @pr: bDeviceProtocol value
- *
- * This macro is used to create a struct usb_device_id that matches a
- * specific class of devices.
- */
-#define USB_DEVICE_INFO(cl, sc, pr) \
- .match_flags = USB_DEVICE_ID_MATCH_DEV_INFO, \
- .bDeviceClass = (cl), \
- .bDeviceSubClass = (sc), \
- .bDeviceProtocol = (pr)
-
-/**
- * USB_INTERFACE_INFO - macro used to describe a class of usb interfaces
- * @cl: bInterfaceClass value
- * @sc: bInterfaceSubClass value
- * @pr: bInterfaceProtocol value
- *
- * This macro is used to create a struct usb_device_id that matches a
- * specific class of interfaces.
- */
-#define USB_INTERFACE_INFO(cl, sc, pr) \
- .match_flags = USB_DEVICE_ID_MATCH_INT_INFO, \
- .bInterfaceClass = (cl), \
- .bInterfaceSubClass = (sc), \
- .bInterfaceProtocol = (pr)
-
-/**
- * USB_DEVICE_AND_INTERFACE_INFO - describe a specific usb device with a class of usb interfaces
- * @vend: the 16 bit USB Vendor ID
- * @prod: the 16 bit USB Product ID
- * @cl: bInterfaceClass value
- * @sc: bInterfaceSubClass value
- * @pr: bInterfaceProtocol value
- *
- * This macro is used to create a struct usb_device_id that matches a
- * specific device with a specific class of interfaces.
- *
- * This is especially useful when explicitly matching devices that have
- * vendor specific bDeviceClass values, but standards-compliant interfaces.
- */
-#define USB_DEVICE_AND_INTERFACE_INFO(vend, prod, cl, sc, pr) \
- .match_flags = USB_DEVICE_ID_MATCH_INT_INFO \
- | USB_DEVICE_ID_MATCH_DEVICE, \
- .idVendor = (vend), \
- .idProduct = (prod), \
- .bInterfaceClass = (cl), \
- .bInterfaceSubClass = (sc), \
- .bInterfaceProtocol = (pr)
-
-/* ----------------------------------------------------------------------- */
-
-/* Stuff for dynamic usb ids */
-struct usb_dynids {
- spinlock_t lock;
- struct list_head list;
-};
-
-struct usb_dynid {
- struct list_head node;
- struct usb_device_id id;
-};
-
-extern ssize_t usb_store_new_id(struct usb_dynids *dynids,
- struct device_driver *driver,
- const char *buf, size_t count);
-
-/**
- * struct usbdrv_wrap - wrapper for driver-model structure
- * @driver: The driver-model core driver structure.
- * @for_devices: Non-zero for device drivers, 0 for interface drivers.
- */
-struct usbdrv_wrap {
- struct device_driver driver;
- int for_devices;
-};
-
-/**
- * struct usb_driver - identifies USB interface driver to usbcore
- * @name: The driver name should be unique among USB drivers,
- * and should normally be the same as the module name.
- * @probe: Called to see if the driver is willing to manage a particular
- * interface on a device. If it is, probe returns zero and uses
- * usb_set_intfdata() to associate driver-specific data with the
- * interface. It may also use usb_set_interface() to specify the
- * appropriate altsetting. If unwilling to manage the interface,
- * return -ENODEV, if genuine IO errors occurred, an appropriate
- * negative errno value.
- * @disconnect: Called when the interface is no longer accessible, usually
- * because its device has been (or is being) disconnected or the
- * driver module is being unloaded.
- * @unlocked_ioctl: Used for drivers that want to talk to userspace through
- * the "usbfs" filesystem. This lets devices provide ways to
- * expose information to user space regardless of where they
- * do (or don't) show up otherwise in the filesystem.
- * @suspend: Called when the device is going to be suspended by the system.
- * @resume: Called when the device is being resumed by the system.
- * @reset_resume: Called when the suspended device has been reset instead
- * of being resumed.
- * @pre_reset: Called by usb_reset_device() when the device is about to be
- * reset. This routine must not return until the driver has no active
- * URBs for the device, and no more URBs may be submitted until the
- * post_reset method is called.
- * @post_reset: Called by usb_reset_device() after the device
- * has been reset
- * @id_table: USB drivers use ID table to support hotplugging.
- * Export this with MODULE_DEVICE_TABLE(usb,...). This must be set
- * or your driver's probe function will never get called.
- * @dynids: used internally to hold the list of dynamically added device
- * ids for this driver.
- * @drvwrap: Driver-model core structure wrapper.
- * @no_dynamic_id: if set to 1, the USB core will not allow dynamic ids to be
- * added to this driver by preventing the sysfs file from being created.
- * @supports_autosuspend: if set to 0, the USB core will not allow autosuspend
- * for interfaces bound to this driver.
- * @soft_unbind: if set to 1, the USB core will not kill URBs and disable
- * endpoints before calling the driver's disconnect method.
- *
- * USB interface drivers must provide a name, probe() and disconnect()
- * methods, and an id_table. Other driver fields are optional.
- *
- * The id_table is used in hotplugging. It holds a set of descriptors,
- * and specialized data may be associated with each entry. That table
- * is used by both user and kernel mode hotplugging support.
- *
- * The probe() and disconnect() methods are called in a context where
- * they can sleep, but they should avoid abusing the privilege. Most
- * work to connect to a device should be done when the device is opened,
- * and undone at the last close. The disconnect code needs to address
- * concurrency issues with respect to open() and close() methods, as
- * well as forcing all pending I/O requests to complete (by unlinking
- * them as necessary, and blocking until the unlinks complete).
- */
-struct usb_driver {
- const char *name;
-
- int (*probe) (struct usb_interface *intf,
- const struct usb_device_id *id);
-
- void (*disconnect) (struct usb_interface *intf);
-
- int (*unlocked_ioctl) (struct usb_interface *intf, unsigned int code,
- void *buf);
-
- int (*suspend) (struct usb_interface *intf, pm_message_t message);
- int (*resume) (struct usb_interface *intf);
- int (*reset_resume)(struct usb_interface *intf);
-
- int (*pre_reset)(struct usb_interface *intf);
- int (*post_reset)(struct usb_interface *intf);
-
- const struct usb_device_id *id_table;
-
- struct usb_dynids dynids;
- struct usbdrv_wrap drvwrap;
- unsigned int no_dynamic_id:1;
- unsigned int supports_autosuspend:1;
- unsigned int soft_unbind:1;
-};
-#define to_usb_driver(d) container_of(d, struct usb_driver, drvwrap.driver)
-
-/**
- * struct usb_device_driver - identifies USB device driver to usbcore
- * @name: The driver name should be unique among USB drivers,
- * and should normally be the same as the module name.
- * @probe: Called to see if the driver is willing to manage a particular
- * device. If it is, probe returns zero and uses dev_set_drvdata()
- * to associate driver-specific data with the device. If unwilling
- * to manage the device, return a negative errno value.
- * @disconnect: Called when the device is no longer accessible, usually
- * because it has been (or is being) disconnected or the driver's
- * module is being unloaded.
- * @suspend: Called when the device is going to be suspended by the system.
- * @resume: Called when the device is being resumed by the system.
- * @drvwrap: Driver-model core structure wrapper.
- * @supports_autosuspend: if set to 0, the USB core will not allow autosuspend
- * for devices bound to this driver.
- *
- * USB drivers must provide all the fields listed above except drvwrap.
- */
-struct usb_device_driver {
- const char *name;
-
- int (*probe) (struct usb_device *udev);
- void (*disconnect) (struct usb_device *udev);
-
- int (*suspend) (struct usb_device *udev, pm_message_t message);
- int (*resume) (struct usb_device *udev, pm_message_t message);
- struct usbdrv_wrap drvwrap;
- unsigned int supports_autosuspend:1;
-};
-#define to_usb_device_driver(d) container_of(d, struct usb_device_driver, \
- drvwrap.driver)
-
-extern struct bus_type usb_bus_type;
-
-/**
- * struct usb_class_driver - identifies a USB driver that wants to use the USB major number
- * @name: the usb class device name for this driver. Will show up in sysfs.
- * @devnode: Callback to provide a naming hint for a possible
- * device node to create.
- * @fops: pointer to the struct file_operations of this driver.
- * @minor_base: the start of the minor range for this driver.
- *
- * This structure is used for the usb_register_dev() and
- * usb_unregister_dev() functions, to consolidate a number of the
- * parameters used for them.
- */
-struct usb_class_driver {
- char *name;
- char *(*devnode)(struct device *dev, umode_t *mode);
- const struct file_operations *fops;
- int minor_base;
-};
-
-/*
- * use these in module_init()/module_exit()
- * and don't forget MODULE_DEVICE_TABLE(usb, ...)
- */
-extern int usb_register_driver(struct usb_driver *, struct module *,
- const char *);
-
-/* use a define to avoid include chaining to get THIS_MODULE & friends */
-#define usb_register(driver) \
- usb_register_driver(driver, THIS_MODULE, KBUILD_MODNAME)
-
-extern void usb_deregister(struct usb_driver *);
-
-/**
- * module_usb_driver() - Helper macro for registering a USB driver
- * @__usb_driver: usb_driver struct
- *
- * Helper macro for USB drivers which do not do anything special in module
- * init/exit. This eliminates a lot of boilerplate. Each module may only
- * use this macro once, and calling it replaces module_init() and module_exit()
- */
-#define module_usb_driver(__usb_driver) \
- module_driver(__usb_driver, usb_register, \
- usb_deregister)
-
-extern int usb_register_device_driver(struct usb_device_driver *,
- struct module *);
-extern void usb_deregister_device_driver(struct usb_device_driver *);
-
-extern int usb_register_dev(struct usb_interface *intf,
- struct usb_class_driver *class_driver);
-extern void usb_deregister_dev(struct usb_interface *intf,
- struct usb_class_driver *class_driver);
-
-extern int usb_disabled(void);
-
-/* ----------------------------------------------------------------------- */
-
-/*
- * URB support, for asynchronous request completions
- */
-
-/*
- * urb->transfer_flags:
- *
- * Note: URB_DIR_IN/OUT is automatically set in usb_submit_urb().
- */
-#define URB_SHORT_NOT_OK 0x0001 /* report short reads as errors */
-#define URB_ISO_ASAP 0x0002 /* iso-only, urb->start_frame
- * ignored */
-#define URB_NO_TRANSFER_DMA_MAP 0x0004 /* urb->transfer_dma valid on submit */
-#define URB_NO_FSBR 0x0020 /* UHCI-specific */
-#define URB_ZERO_PACKET 0x0040 /* Finish bulk OUT with short packet */
-#define URB_NO_INTERRUPT 0x0080 /* HINT: no non-error interrupt
- * needed */
-#define URB_FREE_BUFFER 0x0100 /* Free transfer buffer with the URB */
-
-/* The following flags are used internally by usbcore and HCDs */
-#define URB_DIR_IN 0x0200 /* Transfer from device to host */
-#define URB_DIR_OUT 0
-#define URB_DIR_MASK URB_DIR_IN
-
-#define URB_DMA_MAP_SINGLE 0x00010000 /* Non-scatter-gather mapping */
-#define URB_DMA_MAP_PAGE 0x00020000 /* HCD-unsupported S-G */
-#define URB_DMA_MAP_SG 0x00040000 /* HCD-supported S-G */
-#define URB_MAP_LOCAL 0x00080000 /* HCD-local-memory mapping */
-#define URB_SETUP_MAP_SINGLE 0x00100000 /* Setup packet DMA mapped */
-#define URB_SETUP_MAP_LOCAL 0x00200000 /* HCD-local setup packet */
-#define URB_DMA_SG_COMBINED 0x00400000 /* S-G entries were combined */
-#define URB_ALIGNED_TEMP_BUFFER 0x00800000 /* Temp buffer was alloc'd */
-/*{CharlesTu, 2010.08.26, for test mode */
-#define URB_HCD_DRIVER_TEST 0xFFFF /* Do NOT hand back or free this URB */
-/*CharlesTu}*/
-
-struct usb_iso_packet_descriptor {
- unsigned int offset;
- unsigned int length; /* expected length */
- unsigned int actual_length;
- int status;
-};
-
-struct urb;
-
-struct usb_anchor {
- struct list_head urb_list;
- wait_queue_head_t wait;
- spinlock_t lock;
- unsigned int poisoned:1;
-};
-
-static inline void init_usb_anchor(struct usb_anchor *anchor)
-{
- INIT_LIST_HEAD(&anchor->urb_list);
- init_waitqueue_head(&anchor->wait);
- spin_lock_init(&anchor->lock);
-}
-
-typedef void (*usb_complete_t)(struct urb *);
-
-/**
- * struct urb - USB Request Block
- * @urb_list: For use by current owner of the URB.
- * @anchor_list: membership in the list of an anchor
- * @anchor: to anchor URBs to a common mooring
- * @ep: Points to the endpoint's data structure. Will eventually
- * replace @pipe.
- * @pipe: Holds endpoint number, direction, type, and more.
- * Create these values with the eight macros available;
- * usb_{snd,rcv}TYPEpipe(dev,endpoint), where the TYPE is "ctrl"
- * (control), "bulk", "int" (interrupt), or "iso" (isochronous).
- * For example usb_sndbulkpipe() or usb_rcvintpipe(). Endpoint
- * numbers range from zero to fifteen. Note that "in" endpoint two
- * is a different endpoint (and pipe) from "out" endpoint two.
- * The current configuration controls the existence, type, and
- * maximum packet size of any given endpoint.
- * @stream_id: the endpoint's stream ID for bulk streams
- * @dev: Identifies the USB device to perform the request.
- * @status: This is read in non-iso completion functions to get the
- * status of the particular request. ISO requests only use it
- * to tell whether the URB was unlinked; detailed status for
- * each frame is in the fields of the iso_frame-desc.
- * @transfer_flags: A variety of flags may be used to affect how URB
- * submission, unlinking, or operation are handled. Different
- * kinds of URB can use different flags.
- * @transfer_buffer: This identifies the buffer to (or from) which the I/O
- * request will be performed unless URB_NO_TRANSFER_DMA_MAP is set
- * (however, do not leave garbage in transfer_buffer even then).
- * This buffer must be suitable for DMA; allocate it with
- * kmalloc() or equivalent. For transfers to "in" endpoints, contents
- * of this buffer will be modified. This buffer is used for the data
- * stage of control transfers.
- * @transfer_dma: When transfer_flags includes URB_NO_TRANSFER_DMA_MAP,
- * the device driver is saying that it provided this DMA address,
- * which the host controller driver should use in preference to the
- * transfer_buffer.
- * @sg: scatter gather buffer list
- * @num_mapped_sgs: (internal) number of mapped sg entries
- * @num_sgs: number of entries in the sg list
- * @transfer_buffer_length: How big is transfer_buffer. The transfer may
- * be broken up into chunks according to the current maximum packet
- * size for the endpoint, which is a function of the configuration
- * and is encoded in the pipe. When the length is zero, neither
- * transfer_buffer nor transfer_dma is used.
- * @actual_length: This is read in non-iso completion functions, and
- * it tells how many bytes (out of transfer_buffer_length) were
- * transferred. It will normally be the same as requested, unless
- * either an error was reported or a short read was performed.
- * The URB_SHORT_NOT_OK transfer flag may be used to make such
- * short reads be reported as errors.
- * @setup_packet: Only used for control transfers, this points to eight bytes
- * of setup data. Control transfers always start by sending this data
- * to the device. Then transfer_buffer is read or written, if needed.
- * @setup_dma: DMA pointer for the setup packet. The caller must not use
- * this field; setup_packet must point to a valid buffer.
- * @start_frame: Returns the initial frame for isochronous transfers.
- * @number_of_packets: Lists the number of ISO transfer buffers.
- * @interval: Specifies the polling interval for interrupt or isochronous
- * transfers. The units are frames (milliseconds) for full and low
- * speed devices, and microframes (1/8 millisecond) for highspeed
- * and SuperSpeed devices.
- * @error_count: Returns the number of ISO transfers that reported errors.
- * @context: For use in completion functions. This normally points to
- * request-specific driver context.
- * @complete: Completion handler. This URB is passed as the parameter to the
- * completion function. The completion function may then do what
- * it likes with the URB, including resubmitting or freeing it.
- * @iso_frame_desc: Used to provide arrays of ISO transfer buffers and to
- * collect the transfer status for each buffer.
- *
- * This structure identifies USB transfer requests. URBs must be allocated by
- * calling usb_alloc_urb() and freed with a call to usb_free_urb().
- * Initialization may be done using various usb_fill_*_urb() functions. URBs
- * are submitted using usb_submit_urb(), and pending requests may be canceled
- * using usb_unlink_urb() or usb_kill_urb().
- *
- * Data Transfer Buffers:
- *
- * Normally drivers provide I/O buffers allocated with kmalloc() or otherwise
- * taken from the general page pool. That is provided by transfer_buffer
- * (control requests also use setup_packet), and host controller drivers
- * perform a dma mapping (and unmapping) for each buffer transferred. Those
- * mapping operations can be expensive on some platforms (perhaps using a dma
- * bounce buffer or talking to an IOMMU),
- * although they're cheap on commodity x86 and ppc hardware.
- *
- * Alternatively, drivers may pass the URB_NO_TRANSFER_DMA_MAP transfer flag,
- * which tells the host controller driver that no such mapping is needed for
- * the transfer_buffer since
- * the device driver is DMA-aware. For example, a device driver might
- * allocate a DMA buffer with usb_alloc_coherent() or call usb_buffer_map().
- * When this transfer flag is provided, host controller drivers will
- * attempt to use the dma address found in the transfer_dma
- * field rather than determining a dma address themselves.
- *
- * Note that transfer_buffer must still be set if the controller
- * does not support DMA (as indicated by bus.uses_dma) and when talking
- * to root hub. If you have to trasfer between highmem zone and the device
- * on such controller, create a bounce buffer or bail out with an error.
- * If transfer_buffer cannot be set (is in highmem) and the controller is DMA
- * capable, assign NULL to it, so that usbmon knows not to use the value.
- * The setup_packet must always be set, so it cannot be located in highmem.
- *
- * Initialization:
- *
- * All URBs submitted must initialize the dev, pipe, transfer_flags (may be
- * zero), and complete fields. All URBs must also initialize
- * transfer_buffer and transfer_buffer_length. They may provide the
- * URB_SHORT_NOT_OK transfer flag, indicating that short reads are
- * to be treated as errors; that flag is invalid for write requests.
- *
- * Bulk URBs may
- * use the URB_ZERO_PACKET transfer flag, indicating that bulk OUT transfers
- * should always terminate with a short packet, even if it means adding an
- * extra zero length packet.
- *
- * Control URBs must provide a valid pointer in the setup_packet field.
- * Unlike the transfer_buffer, the setup_packet may not be mapped for DMA
- * beforehand.
- *
- * Interrupt URBs must provide an interval, saying how often (in milliseconds
- * or, for highspeed devices, 125 microsecond units)
- * to poll for transfers. After the URB has been submitted, the interval
- * field reflects how the transfer was actually scheduled.
- * The polling interval may be more frequent than requested.
- * For example, some controllers have a maximum interval of 32 milliseconds,
- * while others support intervals of up to 1024 milliseconds.
- * Isochronous URBs also have transfer intervals. (Note that for isochronous
- * endpoints, as well as high speed interrupt endpoints, the encoding of
- * the transfer interval in the endpoint descriptor is logarithmic.
- * Device drivers must convert that value to linear units themselves.)
- *
- * Isochronous URBs normally use the URB_ISO_ASAP transfer flag, telling
- * the host controller to schedule the transfer as soon as bandwidth
- * utilization allows, and then set start_frame to reflect the actual frame
- * selected during submission. Otherwise drivers must specify the start_frame
- * and handle the case where the transfer can't begin then. However, drivers
- * won't know how bandwidth is currently allocated, and while they can
- * find the current frame using usb_get_current_frame_number () they can't
- * know the range for that frame number. (Ranges for frame counter values
- * are HC-specific, and can go from 256 to 65536 frames from "now".)
- *
- * Isochronous URBs have a different data transfer model, in part because
- * the quality of service is only "best effort". Callers provide specially
- * allocated URBs, with number_of_packets worth of iso_frame_desc structures
- * at the end. Each such packet is an individual ISO transfer. Isochronous
- * URBs are normally queued, submitted by drivers to arrange that
- * transfers are at least double buffered, and then explicitly resubmitted
- * in completion handlers, so
- * that data (such as audio or video) streams at as constant a rate as the
- * host controller scheduler can support.
- *
- * Completion Callbacks:
- *
- * The completion callback is made in_interrupt(), and one of the first
- * things that a completion handler should do is check the status field.
- * The status field is provided for all URBs. It is used to report
- * unlinked URBs, and status for all non-ISO transfers. It should not
- * be examined before the URB is returned to the completion handler.
- *
- * The context field is normally used to link URBs back to the relevant
- * driver or request state.
- *
- * When the completion callback is invoked for non-isochronous URBs, the
- * actual_length field tells how many bytes were transferred. This field
- * is updated even when the URB terminated with an error or was unlinked.
- *
- * ISO transfer status is reported in the status and actual_length fields
- * of the iso_frame_desc array, and the number of errors is reported in
- * error_count. Completion callbacks for ISO transfers will normally
- * (re)submit URBs to ensure a constant transfer rate.
- *
- * Note that even fields marked "public" should not be touched by the driver
- * when the urb is owned by the hcd, that is, since the call to
- * usb_submit_urb() till the entry into the completion routine.
- */
-struct urb {
- /* private: usb core and host controller only fields in the urb */
- struct kref kref; /* reference count of the URB */
- void *hcpriv; /* private data for host controller */
- atomic_t use_count; /* concurrent submissions counter */
- atomic_t reject; /* submissions will fail */
- int unlinked; /* unlink error code */
-
- /* public: documented fields in the urb that can be used by drivers */
- struct list_head urb_list; /* list head for use by the urb's
- * current owner */
- struct list_head anchor_list; /* the URB may be anchored */
- struct usb_anchor *anchor;
- struct usb_device *dev; /* (in) pointer to associated device */
- struct usb_host_endpoint *ep; /* (internal) pointer to endpoint */
- unsigned int pipe; /* (in) pipe information */
- unsigned int stream_id; /* (in) stream ID */
- int status; /* (return) non-ISO status */
- unsigned int transfer_flags; /* (in) URB_SHORT_NOT_OK | ...*/
- void *transfer_buffer; /* (in) associated data buffer */
- dma_addr_t transfer_dma; /* (in) dma addr for transfer_buffer */
- struct scatterlist *sg; /* (in) scatter gather buffer list */
- int num_mapped_sgs; /* (internal) mapped sg entries */
- int num_sgs; /* (in) number of entries in the sg list */
- u32 transfer_buffer_length; /* (in) data buffer length */
- u32 actual_length; /* (return) actual transfer length */
- unsigned char *setup_packet; /* (in) setup packet (control only) */
- dma_addr_t setup_dma; /* (in) dma addr for setup_packet */
- int start_frame; /* (modify) start frame (ISO) */
- int number_of_packets; /* (in) number of ISO packets */
- int interval; /* (modify) transfer interval
- * (INT/ISO) */
- int error_count; /* (return) number of ISO errors */
- void *context; /* (in) context for completion */
- usb_complete_t complete; /* (in) completion routine */
- struct usb_iso_packet_descriptor iso_frame_desc[0];
- /* (in) ISO ONLY */
-};
-
-/* ----------------------------------------------------------------------- */
-
-/**
- * usb_fill_control_urb - initializes a control urb
- * @urb: pointer to the urb to initialize.
- * @dev: pointer to the struct usb_device for this urb.
- * @pipe: the endpoint pipe
- * @setup_packet: pointer to the setup_packet buffer
- * @transfer_buffer: pointer to the transfer buffer
- * @buffer_length: length of the transfer buffer
- * @complete_fn: pointer to the usb_complete_t function
- * @context: what to set the urb context to.
- *
- * Initializes a control urb with the proper information needed to submit
- * it to a device.
- */
-static inline void usb_fill_control_urb(struct urb *urb,
- struct usb_device *dev,
- unsigned int pipe,
- unsigned char *setup_packet,
- void *transfer_buffer,
- int buffer_length,
- usb_complete_t complete_fn,
- void *context)
-{
- urb->dev = dev;
- urb->pipe = pipe;
- urb->setup_packet = setup_packet;
- urb->transfer_buffer = transfer_buffer;
- urb->transfer_buffer_length = buffer_length;
- urb->complete = complete_fn;
- urb->context = context;
-}
-
-/**
- * usb_fill_bulk_urb - macro to help initialize a bulk urb
- * @urb: pointer to the urb to initialize.
- * @dev: pointer to the struct usb_device for this urb.
- * @pipe: the endpoint pipe
- * @transfer_buffer: pointer to the transfer buffer
- * @buffer_length: length of the transfer buffer
- * @complete_fn: pointer to the usb_complete_t function
- * @context: what to set the urb context to.
- *
- * Initializes a bulk urb with the proper information needed to submit it
- * to a device.
- */
-static inline void usb_fill_bulk_urb(struct urb *urb,
- struct usb_device *dev,
- unsigned int pipe,
- void *transfer_buffer,
- int buffer_length,
- usb_complete_t complete_fn,
- void *context)
-{
- urb->dev = dev;
- urb->pipe = pipe;
- urb->transfer_buffer = transfer_buffer;
- urb->transfer_buffer_length = buffer_length;
- urb->complete = complete_fn;
- urb->context = context;
-}
-
-/**
- * usb_fill_int_urb - macro to help initialize a interrupt urb
- * @urb: pointer to the urb to initialize.
- * @dev: pointer to the struct usb_device for this urb.
- * @pipe: the endpoint pipe
- * @transfer_buffer: pointer to the transfer buffer
- * @buffer_length: length of the transfer buffer
- * @complete_fn: pointer to the usb_complete_t function
- * @context: what to set the urb context to.
- * @interval: what to set the urb interval to, encoded like
- * the endpoint descriptor's bInterval value.
- *
- * Initializes a interrupt urb with the proper information needed to submit
- * it to a device.
- *
- * Note that High Speed and SuperSpeed interrupt endpoints use a logarithmic
- * encoding of the endpoint interval, and express polling intervals in
- * microframes (eight per millisecond) rather than in frames (one per
- * millisecond).
- *
- * Wireless USB also uses the logarithmic encoding, but specifies it in units of
- * 128us instead of 125us. For Wireless USB devices, the interval is passed
- * through to the host controller, rather than being translated into microframe
- * units.
- */
-static inline void usb_fill_int_urb(struct urb *urb,
- struct usb_device *dev,
- unsigned int pipe,
- void *transfer_buffer,
- int buffer_length,
- usb_complete_t complete_fn,
- void *context,
- int interval)
-{
- urb->dev = dev;
- urb->pipe = pipe;
- urb->transfer_buffer = transfer_buffer;
- urb->transfer_buffer_length = buffer_length;
- urb->complete = complete_fn;
- urb->context = context;
- if (dev->speed == USB_SPEED_HIGH || dev->speed == USB_SPEED_SUPER)
- urb->interval = 1 << (interval - 1);
- else
- urb->interval = interval;
- urb->start_frame = -1;
-}
-
-extern void usb_init_urb(struct urb *urb);
-extern struct urb *usb_alloc_urb(int iso_packets, gfp_t mem_flags);
-extern void usb_free_urb(struct urb *urb);
-#define usb_put_urb usb_free_urb
-extern struct urb *usb_get_urb(struct urb *urb);
-extern int usb_submit_urb(struct urb *urb, gfp_t mem_flags);
-extern int usb_unlink_urb(struct urb *urb);
-extern void usb_kill_urb(struct urb *urb);
-extern void usb_poison_urb(struct urb *urb);
-extern void usb_unpoison_urb(struct urb *urb);
-extern void usb_block_urb(struct urb *urb);
-extern void usb_kill_anchored_urbs(struct usb_anchor *anchor);
-extern void usb_poison_anchored_urbs(struct usb_anchor *anchor);
-extern void usb_unpoison_anchored_urbs(struct usb_anchor *anchor);
-extern void usb_unlink_anchored_urbs(struct usb_anchor *anchor);
-extern void usb_anchor_urb(struct urb *urb, struct usb_anchor *anchor);
-extern void usb_unanchor_urb(struct urb *urb);
-extern int usb_wait_anchor_empty_timeout(struct usb_anchor *anchor,
- unsigned int timeout);
-extern struct urb *usb_get_from_anchor(struct usb_anchor *anchor);
-extern void usb_scuttle_anchored_urbs(struct usb_anchor *anchor);
-extern int usb_anchor_empty(struct usb_anchor *anchor);
-
-#define usb_unblock_urb usb_unpoison_urb
-
-/**
- * usb_urb_dir_in - check if an URB describes an IN transfer
- * @urb: URB to be checked
- *
- * Returns 1 if @urb describes an IN transfer (device-to-host),
- * otherwise 0.
- */
-static inline int usb_urb_dir_in(struct urb *urb)
-{
- return (urb->transfer_flags & URB_DIR_MASK) == URB_DIR_IN;
-}
-
-/**
- * usb_urb_dir_out - check if an URB describes an OUT transfer
- * @urb: URB to be checked
- *
- * Returns 1 if @urb describes an OUT transfer (host-to-device),
- * otherwise 0.
- */
-static inline int usb_urb_dir_out(struct urb *urb)
-{
- return (urb->transfer_flags & URB_DIR_MASK) == URB_DIR_OUT;
-}
-
-void *usb_alloc_coherent(struct usb_device *dev, size_t size,
- gfp_t mem_flags, dma_addr_t *dma);
-void usb_free_coherent(struct usb_device *dev, size_t size,
- void *addr, dma_addr_t dma);
-
-#if 0
-struct urb *usb_buffer_map(struct urb *urb);
-void usb_buffer_dmasync(struct urb *urb);
-void usb_buffer_unmap(struct urb *urb);
-#endif
-
-struct scatterlist;
-int usb_buffer_map_sg(const struct usb_device *dev, int is_in,
- struct scatterlist *sg, int nents);
-#if 0
-void usb_buffer_dmasync_sg(const struct usb_device *dev, int is_in,
- struct scatterlist *sg, int n_hw_ents);
-#endif
-void usb_buffer_unmap_sg(const struct usb_device *dev, int is_in,
- struct scatterlist *sg, int n_hw_ents);
-
-/*-------------------------------------------------------------------*
- * SYNCHRONOUS CALL SUPPORT *
- *-------------------------------------------------------------------*/
-
-extern int usb_control_msg(struct usb_device *dev, unsigned int pipe,
- __u8 request, __u8 requesttype, __u16 value, __u16 index,
- void *data, __u16 size, int timeout);
-extern int usb_interrupt_msg(struct usb_device *usb_dev, unsigned int pipe,
- void *data, int len, int *actual_length, int timeout);
-extern int usb_bulk_msg(struct usb_device *usb_dev, unsigned int pipe,
- void *data, int len, int *actual_length,
- int timeout);
-
-/* wrappers around usb_control_msg() for the most common standard requests */
-extern int usb_get_descriptor(struct usb_device *dev, unsigned char desctype,
- unsigned char descindex, void *buf, int size);
-extern int usb_get_status(struct usb_device *dev,
- int type, int target, void *data);
-extern int usb_string(struct usb_device *dev, int index,
- char *buf, size_t size);
-
-/* wrappers that also update important state inside usbcore */
-extern int usb_clear_halt(struct usb_device *dev, int pipe);
-extern int usb_reset_configuration(struct usb_device *dev);
-extern int usb_set_interface(struct usb_device *dev, int ifnum, int alternate);
-extern void usb_reset_endpoint(struct usb_device *dev, unsigned int epaddr);
-
-/* this request isn't really synchronous, but it belongs with the others */
-extern int usb_driver_set_configuration(struct usb_device *udev, int config);
-
-/*
- * timeouts, in milliseconds, used for sending/receiving control messages
- * they typically complete within a few frames (msec) after they're issued
- * USB identifies 5 second timeouts, maybe more in a few cases, and a few
- * slow devices (like some MGE Ellipse UPSes) actually push that limit.
- */
-#define USB_CTRL_GET_TIMEOUT 5000
-#define USB_CTRL_SET_TIMEOUT 5000
-
-
-/**
- * struct usb_sg_request - support for scatter/gather I/O
- * @status: zero indicates success, else negative errno
- * @bytes: counts bytes transferred.
- *
- * These requests are initialized using usb_sg_init(), and then are used
- * as request handles passed to usb_sg_wait() or usb_sg_cancel(). Most
- * members of the request object aren't for driver access.
- *
- * The status and bytecount values are valid only after usb_sg_wait()
- * returns. If the status is zero, then the bytecount matches the total
- * from the request.
- *
- * After an error completion, drivers may need to clear a halt condition
- * on the endpoint.
- */
-struct usb_sg_request {
- int status;
- size_t bytes;
-
- /* private:
- * members below are private to usbcore,
- * and are not provided for driver access!
- */
- spinlock_t lock;
-
- struct usb_device *dev;
- int pipe;
-
- int entries;
- struct urb **urbs;
-
- int count;
- struct completion complete;
-};
-
-int usb_sg_init(
- struct usb_sg_request *io,
- struct usb_device *dev,
- unsigned pipe,
- unsigned period,
- struct scatterlist *sg,
- int nents,
- size_t length,
- gfp_t mem_flags
-);
-void usb_sg_cancel(struct usb_sg_request *io);
-void usb_sg_wait(struct usb_sg_request *io);
-
-
-/* ----------------------------------------------------------------------- */
-
-/*
- * For various legacy reasons, Linux has a small cookie that's paired with
- * a struct usb_device to identify an endpoint queue. Queue characteristics
- * are defined by the endpoint's descriptor. This cookie is called a "pipe",
- * an unsigned int encoded as:
- *
- * - direction: bit 7 (0 = Host-to-Device [Out],
- * 1 = Device-to-Host [In] ...
- * like endpoint bEndpointAddress)
- * - device address: bits 8-14 ... bit positions known to uhci-hcd
- * - endpoint: bits 15-18 ... bit positions known to uhci-hcd
- * - pipe type: bits 30-31 (00 = isochronous, 01 = interrupt,
- * 10 = control, 11 = bulk)
- *
- * Given the device address and endpoint descriptor, pipes are redundant.
- */
-
-/* NOTE: these are not the standard USB_ENDPOINT_XFER_* values!! */
-/* (yet ... they're the values used by usbfs) */
-#define PIPE_ISOCHRONOUS 0
-#define PIPE_INTERRUPT 1
-#define PIPE_CONTROL 2
-#define PIPE_BULK 3
-
-#define usb_pipein(pipe) ((pipe) & USB_DIR_IN)
-#define usb_pipeout(pipe) (!usb_pipein(pipe))
-
-#define usb_pipedevice(pipe) (((pipe) >> 8) & 0x7f)
-#define usb_pipeendpoint(pipe) (((pipe) >> 15) & 0xf)
-
-#define usb_pipetype(pipe) (((pipe) >> 30) & 3)
-#define usb_pipeisoc(pipe) (usb_pipetype((pipe)) == PIPE_ISOCHRONOUS)
-#define usb_pipeint(pipe) (usb_pipetype((pipe)) == PIPE_INTERRUPT)
-#define usb_pipecontrol(pipe) (usb_pipetype((pipe)) == PIPE_CONTROL)
-#define usb_pipebulk(pipe) (usb_pipetype((pipe)) == PIPE_BULK)
-
-static inline unsigned int __create_pipe(struct usb_device *dev,
- unsigned int endpoint)
-{
- return (dev->devnum << 8) | (endpoint << 15);
-}
-
-/* Create various pipes... */
-#define usb_sndctrlpipe(dev, endpoint) \
- ((PIPE_CONTROL << 30) | __create_pipe(dev, endpoint))
-#define usb_rcvctrlpipe(dev, endpoint) \
- ((PIPE_CONTROL << 30) | __create_pipe(dev, endpoint) | USB_DIR_IN)
-#define usb_sndisocpipe(dev, endpoint) \
- ((PIPE_ISOCHRONOUS << 30) | __create_pipe(dev, endpoint))
-#define usb_rcvisocpipe(dev, endpoint) \
- ((PIPE_ISOCHRONOUS << 30) | __create_pipe(dev, endpoint) | USB_DIR_IN)
-#define usb_sndbulkpipe(dev, endpoint) \
- ((PIPE_BULK << 30) | __create_pipe(dev, endpoint))
-#define usb_rcvbulkpipe(dev, endpoint) \
- ((PIPE_BULK << 30) | __create_pipe(dev, endpoint) | USB_DIR_IN)
-#define usb_sndintpipe(dev, endpoint) \
- ((PIPE_INTERRUPT << 30) | __create_pipe(dev, endpoint))
-#define usb_rcvintpipe(dev, endpoint) \
- ((PIPE_INTERRUPT << 30) | __create_pipe(dev, endpoint) | USB_DIR_IN)
-
-static inline struct usb_host_endpoint *
-usb_pipe_endpoint(struct usb_device *dev, unsigned int pipe)
-{
- struct usb_host_endpoint **eps;
- eps = usb_pipein(pipe) ? dev->ep_in : dev->ep_out;
- return eps[usb_pipeendpoint(pipe)];
-}
-
-/*-------------------------------------------------------------------------*/
-
-static inline __u16
-usb_maxpacket(struct usb_device *udev, int pipe, int is_out)
-{
- struct usb_host_endpoint *ep;
- unsigned epnum = usb_pipeendpoint(pipe);
-
- if (is_out) {
- WARN_ON(usb_pipein(pipe));
- ep = udev->ep_out[epnum];
- } else {
- WARN_ON(usb_pipeout(pipe));
- ep = udev->ep_in[epnum];
- }
- if (!ep)
- return 0;
-
- /* NOTE: only 0x07ff bits are for packet size... */
- return usb_endpoint_maxp(&ep->desc);
-}
-
-/* ----------------------------------------------------------------------- */
-
-/* translate USB error codes to codes user space understands */
-static inline int usb_translate_errors(int error_code)
-{
- switch (error_code) {
- case 0:
- case -ENOMEM:
- case -ENODEV:
- return error_code;
- default:
- return -EIO;
- }
-}
-
-/* Events from the usb core */
-#define USB_DEVICE_ADD 0x0001
-#define USB_DEVICE_REMOVE 0x0002
-#define USB_BUS_ADD 0x0003
-#define USB_BUS_REMOVE 0x0004
-extern void usb_register_notify(struct notifier_block *nb);
-extern void usb_unregister_notify(struct notifier_block *nb);
-
-#ifdef DEBUG
-#define dbg(format, arg...) \
- printk(KERN_DEBUG "%s: " format "\n", __FILE__, ##arg)
-#else
-#define dbg(format, arg...) \
-do { \
- if (0) \
- printk(KERN_DEBUG "%s: " format "\n", __FILE__, ##arg); \
-} while (0)
-#endif
-
-#define err(format, arg...) \
- printk(KERN_ERR KBUILD_MODNAME ": " format "\n", ##arg)
-
-/* debugfs stuff */
-extern struct dentry *usb_debug_root;
-
-#endif /* __KERNEL__ */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/usb/Kbuild b/ANDROID_3.4.5/include/linux/usb/Kbuild
deleted file mode 100644
index b607f353..00000000
--- a/ANDROID_3.4.5/include/linux/usb/Kbuild
+++ /dev/null
@@ -1,10 +0,0 @@
-header-y += audio.h
-header-y += cdc.h
-header-y += ch9.h
-header-y += ch11.h
-header-y += functionfs.h
-header-y += gadgetfs.h
-header-y += midi.h
-header-y += g_printer.h
-header-y += tmc.h
-header-y += video.h
diff --git a/ANDROID_3.4.5/include/linux/usb/association.h b/ANDROID_3.4.5/include/linux/usb/association.h
deleted file mode 100644
index 0a4a18b3..00000000
--- a/ANDROID_3.4.5/include/linux/usb/association.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Wireless USB - Cable Based Association
- *
- * Copyright (C) 2006 Intel Corporation
- * Inaky Perez-Gonzalez <inaky.perez-gonzalez@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.
- *
- */
-#ifndef __LINUX_USB_ASSOCIATION_H
-#define __LINUX_USB_ASSOCIATION_H
-
-
-/*
- * Association attributes
- *
- * Association Models Supplement to WUSB 1.0 T[3-1]
- *
- * Each field in the structures has it's ID, it's length and then the
- * value. This is the actual definition of the field's ID and its
- * length.
- */
-struct wusb_am_attr {
- __u8 id;
- __u8 len;
-};
-
-/* Different fields defined by the spec */
-#define WUSB_AR_AssociationTypeId { .id = cpu_to_le16(0x0000), .len = cpu_to_le16(2) }
-#define WUSB_AR_AssociationSubTypeId { .id = cpu_to_le16(0x0001), .len = cpu_to_le16(2) }
-#define WUSB_AR_Length { .id = cpu_to_le16(0x0002), .len = cpu_to_le16(4) }
-#define WUSB_AR_AssociationStatus { .id = cpu_to_le16(0x0004), .len = cpu_to_le16(4) }
-#define WUSB_AR_LangID { .id = cpu_to_le16(0x0008), .len = cpu_to_le16(2) }
-#define WUSB_AR_DeviceFriendlyName { .id = cpu_to_le16(0x000b), .len = cpu_to_le16(64) } /* max */
-#define WUSB_AR_HostFriendlyName { .id = cpu_to_le16(0x000c), .len = cpu_to_le16(64) } /* max */
-#define WUSB_AR_CHID { .id = cpu_to_le16(0x1000), .len = cpu_to_le16(16) }
-#define WUSB_AR_CDID { .id = cpu_to_le16(0x1001), .len = cpu_to_le16(16) }
-#define WUSB_AR_ConnectionContext { .id = cpu_to_le16(0x1002), .len = cpu_to_le16(48) }
-#define WUSB_AR_BandGroups { .id = cpu_to_le16(0x1004), .len = cpu_to_le16(2) }
-
-/* CBAF Control Requests (AMS1.0[T4-1] */
-enum {
- CBAF_REQ_GET_ASSOCIATION_INFORMATION = 0x01,
- CBAF_REQ_GET_ASSOCIATION_REQUEST,
- CBAF_REQ_SET_ASSOCIATION_RESPONSE
-};
-
-/*
- * CBAF USB-interface defitions
- *
- * No altsettings, one optional interrupt endpoint.
- */
-enum {
- CBAF_IFACECLASS = 0xef,
- CBAF_IFACESUBCLASS = 0x03,
- CBAF_IFACEPROTOCOL = 0x01,
-};
-
-/* Association Information (AMS1.0[T4-3]) */
-struct wusb_cbaf_assoc_info {
- __le16 Length;
- __u8 NumAssociationRequests;
- __le16 Flags;
- __u8 AssociationRequestsArray[];
-} __attribute__((packed));
-
-/* Association Request (AMS1.0[T4-4]) */
-struct wusb_cbaf_assoc_request {
- __u8 AssociationDataIndex;
- __u8 Reserved;
- __le16 AssociationTypeId;
- __le16 AssociationSubTypeId;
- __le32 AssociationTypeInfoSize;
-} __attribute__((packed));
-
-enum {
- AR_TYPE_WUSB = 0x0001,
- AR_TYPE_WUSB_RETRIEVE_HOST_INFO = 0x0000,
- AR_TYPE_WUSB_ASSOCIATE = 0x0001,
-};
-
-/* Association Attribute header (AMS1.0[3.8]) */
-struct wusb_cbaf_attr_hdr {
- __le16 id;
- __le16 len;
-} __attribute__((packed));
-
-/* Host Info (AMS1.0[T4-7]) (yeah, more headers and fields...) */
-struct wusb_cbaf_host_info {
- struct wusb_cbaf_attr_hdr AssociationTypeId_hdr;
- __le16 AssociationTypeId;
- struct wusb_cbaf_attr_hdr AssociationSubTypeId_hdr;
- __le16 AssociationSubTypeId;
- struct wusb_cbaf_attr_hdr CHID_hdr;
- struct wusb_ckhdid CHID;
- struct wusb_cbaf_attr_hdr LangID_hdr;
- __le16 LangID;
- struct wusb_cbaf_attr_hdr HostFriendlyName_hdr;
- __u8 HostFriendlyName[];
-} __attribute__((packed));
-
-/* Device Info (AMS1.0[T4-8])
- *
- * I still don't get this tag'n'header stuff for each goddamn
- * field...
- */
-struct wusb_cbaf_device_info {
- struct wusb_cbaf_attr_hdr Length_hdr;
- __le32 Length;
- struct wusb_cbaf_attr_hdr CDID_hdr;
- struct wusb_ckhdid CDID;
- struct wusb_cbaf_attr_hdr BandGroups_hdr;
- __le16 BandGroups;
- struct wusb_cbaf_attr_hdr LangID_hdr;
- __le16 LangID;
- struct wusb_cbaf_attr_hdr DeviceFriendlyName_hdr;
- __u8 DeviceFriendlyName[];
-} __attribute__((packed));
-
-/* Connection Context; CC_DATA - Success case (AMS1.0[T4-9]) */
-struct wusb_cbaf_cc_data {
- struct wusb_cbaf_attr_hdr AssociationTypeId_hdr;
- __le16 AssociationTypeId;
- struct wusb_cbaf_attr_hdr AssociationSubTypeId_hdr;
- __le16 AssociationSubTypeId;
- struct wusb_cbaf_attr_hdr Length_hdr;
- __le32 Length;
- struct wusb_cbaf_attr_hdr ConnectionContext_hdr;
- struct wusb_ckhdid CHID;
- struct wusb_ckhdid CDID;
- struct wusb_ckhdid CK;
- struct wusb_cbaf_attr_hdr BandGroups_hdr;
- __le16 BandGroups;
-} __attribute__((packed));
-
-/* CC_DATA - Failure case (AMS1.0[T4-10]) */
-struct wusb_cbaf_cc_data_fail {
- struct wusb_cbaf_attr_hdr AssociationTypeId_hdr;
- __le16 AssociationTypeId;
- struct wusb_cbaf_attr_hdr AssociationSubTypeId_hdr;
- __le16 AssociationSubTypeId;
- struct wusb_cbaf_attr_hdr Length_hdr;
- __le16 Length;
- struct wusb_cbaf_attr_hdr AssociationStatus_hdr;
- __u32 AssociationStatus;
-} __attribute__((packed));
-
-#endif /* __LINUX_USB_ASSOCIATION_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/atmel_usba_udc.h b/ANDROID_3.4.5/include/linux/usb/atmel_usba_udc.h
deleted file mode 100644
index ba99af27..00000000
--- a/ANDROID_3.4.5/include/linux/usb/atmel_usba_udc.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Platform data definitions for Atmel USBA gadget driver.
- */
-#ifndef __LINUX_USB_USBA_H
-#define __LINUX_USB_USBA_H
-
-struct usba_ep_data {
- char *name;
- int index;
- int fifo_size;
- int nr_banks;
- int can_dma;
- int can_isoc;
-};
-
-struct usba_platform_data {
- int vbus_pin;
- int vbus_pin_inverted;
- int num_ep;
- struct usba_ep_data ep[0];
-};
-
-#endif /* __LINUX_USB_USBA_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/audio-v2.h b/ANDROID_3.4.5/include/linux/usb/audio-v2.h
deleted file mode 100644
index ed130531..00000000
--- a/ANDROID_3.4.5/include/linux/usb/audio-v2.h
+++ /dev/null
@@ -1,459 +0,0 @@
-/*
- * Copyright (c) 2010 Daniel Mack <daniel@caiaq.de>
- *
- * This software is distributed under the terms of the GNU General Public
- * License ("GPL") version 2, as published by the Free Software Foundation.
- *
- * This file holds USB constants and structures defined
- * by the USB Device Class Definition for Audio Devices in version 2.0.
- * Comments below reference relevant sections of the documents contained
- * in http://www.usb.org/developers/devclass_docs/Audio2.0_final.zip
- */
-
-#ifndef __LINUX_USB_AUDIO_V2_H
-#define __LINUX_USB_AUDIO_V2_H
-
-#include <linux/types.h>
-
-/* v1.0 and v2.0 of this standard have many things in common. For the rest
- * of the definitions, please refer to audio.h */
-
-/*
- * bmControl field decoders
- *
- * From the USB Audio spec v2.0:
- *
- * bmaControls() is a (ch+1)-element array of 4-byte bitmaps,
- * each containing a set of bit pairs. If a Control is present,
- * it must be Host readable. If a certain Control is not
- * present then the bit pair must be set to 0b00.
- * If a Control is present but read-only, the bit pair must be
- * set to 0b01. If a Control is also Host programmable, the bit
- * pair must be set to 0b11. The value 0b10 is not allowed.
- *
- */
-
-static inline bool uac2_control_is_readable(u32 bmControls, u8 control)
-{
- return (bmControls >> (control * 2)) & 0x1;
-}
-
-static inline bool uac2_control_is_writeable(u32 bmControls, u8 control)
-{
- return (bmControls >> (control * 2)) & 0x2;
-}
-
-/* 4.7.2 Class-Specific AC Interface Descriptor */
-struct uac2_ac_header_descriptor {
- __u8 bLength; /* 9 */
- __u8 bDescriptorType; /* USB_DT_CS_INTERFACE */
- __u8 bDescriptorSubtype; /* UAC_MS_HEADER */
- __le16 bcdADC; /* 0x0200 */
- __u8 bCategory;
- __le16 wTotalLength; /* includes Unit and Terminal desc. */
- __u8 bmControls;
-} __packed;
-
-/* 2.3.1.6 Type I Format Type Descriptor (Frmts20 final.pdf)*/
-struct uac2_format_type_i_descriptor {
- __u8 bLength; /* in bytes: 6 */
- __u8 bDescriptorType; /* USB_DT_CS_INTERFACE */
- __u8 bDescriptorSubtype; /* FORMAT_TYPE */
- __u8 bFormatType; /* FORMAT_TYPE_1 */
- __u8 bSubslotSize; /* {1,2,3,4} */
- __u8 bBitResolution;
-} __packed;
-
-/* 4.7.2.1 Clock Source Descriptor */
-
-struct uac_clock_source_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubtype;
- __u8 bClockID;
- __u8 bmAttributes;
- __u8 bmControls;
- __u8 bAssocTerminal;
- __u8 iClockSource;
-} __attribute__((packed));
-
-/* bmAttribute fields */
-#define UAC_CLOCK_SOURCE_TYPE_EXT 0x0
-#define UAC_CLOCK_SOURCE_TYPE_INT_FIXED 0x1
-#define UAC_CLOCK_SOURCE_TYPE_INT_VAR 0x2
-#define UAC_CLOCK_SOURCE_TYPE_INT_PROG 0x3
-#define UAC_CLOCK_SOURCE_SYNCED_TO_SOF (1 << 2)
-
-/* 4.7.2.2 Clock Source Descriptor */
-
-struct uac_clock_selector_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubtype;
- __u8 bClockID;
- __u8 bNrInPins;
- __u8 baCSourceID[];
- /* bmControls, bAssocTerminal and iClockSource omitted */
-} __attribute__((packed));
-
-/* 4.7.2.3 Clock Multiplier Descriptor */
-
-struct uac_clock_multiplier_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubtype;
- __u8 bClockID;
- __u8 bCSourceID;
- __u8 bmControls;
- __u8 iClockMultiplier;
-} __attribute__((packed));
-
-/* 4.7.2.4 Input terminal descriptor */
-
-struct uac2_input_terminal_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubtype;
- __u8 bTerminalID;
- __u16 wTerminalType;
- __u8 bAssocTerminal;
- __u8 bCSourceID;
- __u8 bNrChannels;
- __u32 bmChannelConfig;
- __u8 iChannelNames;
- __u16 bmControls;
- __u8 iTerminal;
-} __attribute__((packed));
-
-/* 4.7.2.5 Output terminal descriptor */
-
-struct uac2_output_terminal_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubtype;
- __u8 bTerminalID;
- __u16 wTerminalType;
- __u8 bAssocTerminal;
- __u8 bSourceID;
- __u8 bCSourceID;
- __u16 bmControls;
- __u8 iTerminal;
-} __attribute__((packed));
-
-
-
-/* 4.7.2.8 Feature Unit Descriptor */
-
-struct uac2_feature_unit_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubtype;
- __u8 bUnitID;
- __u8 bSourceID;
- /* bmaControls is actually u32,
- * but u8 is needed for the hybrid parser */
- __u8 bmaControls[0]; /* variable length */
-} __attribute__((packed));
-
-/* 4.9.2 Class-Specific AS Interface Descriptor */
-
-struct uac2_as_header_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubtype;
- __u8 bTerminalLink;
- __u8 bmControls;
- __u8 bFormatType;
- __u32 bmFormats;
- __u8 bNrChannels;
- __u32 bmChannelConfig;
- __u8 iChannelNames;
-} __attribute__((packed));
-
-/* 4.10.1.2 Class-Specific AS Isochronous Audio Data Endpoint Descriptor */
-
-struct uac2_iso_endpoint_descriptor {
- __u8 bLength; /* in bytes: 8 */
- __u8 bDescriptorType; /* USB_DT_CS_ENDPOINT */
- __u8 bDescriptorSubtype; /* EP_GENERAL */
- __u8 bmAttributes;
- __u8 bmControls;
- __u8 bLockDelayUnits;
- __le16 wLockDelay;
-} __attribute__((packed));
-
-#define UAC2_CONTROL_PITCH (3 << 0)
-#define UAC2_CONTROL_DATA_OVERRUN (3 << 2)
-#define UAC2_CONTROL_DATA_UNDERRUN (3 << 4)
-
-/* 6.1 Interrupt Data Message */
-
-#define UAC2_INTERRUPT_DATA_MSG_VENDOR (1 << 0)
-#define UAC2_INTERRUPT_DATA_MSG_EP (1 << 1)
-
-struct uac2_interrupt_data_msg {
- __u8 bInfo;
- __u8 bAttribute;
- __le16 wValue;
- __le16 wIndex;
-} __attribute__((packed));
-
-/* A.7 Audio Function Category Codes */
-#define UAC2_FUNCTION_SUBCLASS_UNDEFINED 0x00
-#define UAC2_FUNCTION_DESKTOP_SPEAKER 0x01
-#define UAC2_FUNCTION_HOME_THEATER 0x02
-#define UAC2_FUNCTION_MICROPHONE 0x03
-#define UAC2_FUNCTION_HEADSET 0x04
-#define UAC2_FUNCTION_TELEPHONE 0x05
-#define UAC2_FUNCTION_CONVERTER 0x06
-#define UAC2_FUNCTION_SOUND_RECORDER 0x07
-#define UAC2_FUNCTION_IO_BOX 0x08
-#define UAC2_FUNCTION_MUSICAL_INSTRUMENT 0x09
-#define UAC2_FUNCTION_PRO_AUDIO 0x0a
-#define UAC2_FUNCTION_AUDIO_VIDEO 0x0b
-#define UAC2_FUNCTION_CONTROL_PANEL 0x0c
-#define UAC2_FUNCTION_OTHER 0xff
-
-/* A.9 Audio Class-Specific AC Interface Descriptor Subtypes */
-/* see audio.h for the rest, which is identical to v1 */
-#define UAC2_EFFECT_UNIT 0x07
-#define UAC2_PROCESSING_UNIT_V2 0x08
-#define UAC2_EXTENSION_UNIT_V2 0x09
-#define UAC2_CLOCK_SOURCE 0x0a
-#define UAC2_CLOCK_SELECTOR 0x0b
-#define UAC2_CLOCK_MULTIPLIER 0x0c
-#define UAC2_SAMPLE_RATE_CONVERTER 0x0d
-
-/* A.10 Audio Class-Specific AS Interface Descriptor Subtypes */
-/* see audio.h for the rest, which is identical to v1 */
-#define UAC2_ENCODER 0x03
-#define UAC2_DECODER 0x04
-
-/* A.11 Effect Unit Effect Types */
-#define UAC2_EFFECT_UNDEFINED 0x00
-#define UAC2_EFFECT_PARAM_EQ 0x01
-#define UAC2_EFFECT_REVERB 0x02
-#define UAC2_EFFECT_MOD_DELAY 0x03
-#define UAC2_EFFECT_DYN_RANGE_COMP 0x04
-
-/* A.12 Processing Unit Process Types */
-#define UAC2_PROCESS_UNDEFINED 0x00
-#define UAC2_PROCESS_UP_DOWNMIX 0x01
-#define UAC2_PROCESS_DOLBY_PROLOCIC 0x02
-#define UAC2_PROCESS_STEREO_EXTENDER 0x03
-
-/* A.14 Audio Class-Specific Request Codes */
-#define UAC2_CS_CUR 0x01
-#define UAC2_CS_RANGE 0x02
-#define UAC2_CS_MEM 0x03
-
-/* A.15 Encoder Type Codes */
-#define UAC2_ENCODER_UNDEFINED 0x00
-#define UAC2_ENCODER_OTHER 0x01
-#define UAC2_ENCODER_MPEG 0x02
-#define UAC2_ENCODER_AC3 0x03
-#define UAC2_ENCODER_WMA 0x04
-#define UAC2_ENCODER_DTS 0x05
-
-/* A.16 Decoder Type Codes */
-#define UAC2_DECODER_UNDEFINED 0x00
-#define UAC2_DECODER_OTHER 0x01
-#define UAC2_DECODER_MPEG 0x02
-#define UAC2_DECODER_AC3 0x03
-#define UAC2_DECODER_WMA 0x04
-#define UAC2_DECODER_DTS 0x05
-
-/* A.17.1 Clock Source Control Selectors */
-#define UAC2_CS_UNDEFINED 0x00
-#define UAC2_CS_CONTROL_SAM_FREQ 0x01
-#define UAC2_CS_CONTROL_CLOCK_VALID 0x02
-
-/* A.17.2 Clock Selector Control Selectors */
-#define UAC2_CX_UNDEFINED 0x00
-#define UAC2_CX_CLOCK_SELECTOR 0x01
-
-/* A.17.3 Clock Multiplier Control Selectors */
-#define UAC2_CM_UNDEFINED 0x00
-#define UAC2_CM_NUMERATOR 0x01
-#define UAC2_CM_DENOMINTATOR 0x02
-
-/* A.17.4 Terminal Control Selectors */
-#define UAC2_TE_UNDEFINED 0x00
-#define UAC2_TE_COPY_PROTECT 0x01
-#define UAC2_TE_CONNECTOR 0x02
-#define UAC2_TE_OVERLOAD 0x03
-#define UAC2_TE_CLUSTER 0x04
-#define UAC2_TE_UNDERFLOW 0x05
-#define UAC2_TE_OVERFLOW 0x06
-#define UAC2_TE_LATENCY 0x07
-
-/* A.17.5 Mixer Control Selectors */
-#define UAC2_MU_UNDEFINED 0x00
-#define UAC2_MU_MIXER 0x01
-#define UAC2_MU_CLUSTER 0x02
-#define UAC2_MU_UNDERFLOW 0x03
-#define UAC2_MU_OVERFLOW 0x04
-#define UAC2_MU_LATENCY 0x05
-
-/* A.17.6 Selector Control Selectors */
-#define UAC2_SU_UNDEFINED 0x00
-#define UAC2_SU_SELECTOR 0x01
-#define UAC2_SU_LATENCY 0x02
-
-/* A.17.7 Feature Unit Control Selectors */
-/* see audio.h for the rest, which is identical to v1 */
-#define UAC2_FU_INPUT_GAIN 0x0b
-#define UAC2_FU_INPUT_GAIN_PAD 0x0c
-#define UAC2_FU_PHASE_INVERTER 0x0d
-#define UAC2_FU_UNDERFLOW 0x0e
-#define UAC2_FU_OVERFLOW 0x0f
-#define UAC2_FU_LATENCY 0x10
-
-/* A.17.8.1 Parametric Equalizer Section Effect Unit Control Selectors */
-#define UAC2_PE_UNDEFINED 0x00
-#define UAC2_PE_ENABLE 0x01
-#define UAC2_PE_CENTERFREQ 0x02
-#define UAC2_PE_QFACTOR 0x03
-#define UAC2_PE_GAIN 0x04
-#define UAC2_PE_UNDERFLOW 0x05
-#define UAC2_PE_OVERFLOW 0x06
-#define UAC2_PE_LATENCY 0x07
-
-/* A.17.8.2 Reverberation Effect Unit Control Selectors */
-#define UAC2_RV_UNDEFINED 0x00
-#define UAC2_RV_ENABLE 0x01
-#define UAC2_RV_TYPE 0x02
-#define UAC2_RV_LEVEL 0x03
-#define UAC2_RV_TIME 0x04
-#define UAC2_RV_FEEDBACK 0x05
-#define UAC2_RV_PREDELAY 0x06
-#define UAC2_RV_DENSITY 0x07
-#define UAC2_RV_HIFREQ_ROLLOFF 0x08
-#define UAC2_RV_UNDERFLOW 0x09
-#define UAC2_RV_OVERFLOW 0x0a
-#define UAC2_RV_LATENCY 0x0b
-
-/* A.17.8.3 Modulation Delay Effect Control Selectors */
-#define UAC2_MD_UNDEFINED 0x00
-#define UAC2_MD_ENABLE 0x01
-#define UAC2_MD_BALANCE 0x02
-#define UAC2_MD_RATE 0x03
-#define UAC2_MD_DEPTH 0x04
-#define UAC2_MD_TIME 0x05
-#define UAC2_MD_FEEDBACK 0x06
-#define UAC2_MD_UNDERFLOW 0x07
-#define UAC2_MD_OVERFLOW 0x08
-#define UAC2_MD_LATENCY 0x09
-
-/* A.17.8.4 Dynamic Range Compressor Effect Unit Control Selectors */
-#define UAC2_DR_UNDEFINED 0x00
-#define UAC2_DR_ENABLE 0x01
-#define UAC2_DR_COMPRESSION_RATE 0x02
-#define UAC2_DR_MAXAMPL 0x03
-#define UAC2_DR_THRESHOLD 0x04
-#define UAC2_DR_ATTACK_TIME 0x05
-#define UAC2_DR_RELEASE_TIME 0x06
-#define UAC2_DR_UNDEFLOW 0x07
-#define UAC2_DR_OVERFLOW 0x08
-#define UAC2_DR_LATENCY 0x09
-
-/* A.17.9.1 Up/Down-mix Processing Unit Control Selectors */
-#define UAC2_UD_UNDEFINED 0x00
-#define UAC2_UD_ENABLE 0x01
-#define UAC2_UD_MODE_SELECT 0x02
-#define UAC2_UD_CLUSTER 0x03
-#define UAC2_UD_UNDERFLOW 0x04
-#define UAC2_UD_OVERFLOW 0x05
-#define UAC2_UD_LATENCY 0x06
-
-/* A.17.9.2 Dolby Prologic[tm] Processing Unit Control Selectors */
-#define UAC2_DP_UNDEFINED 0x00
-#define UAC2_DP_ENABLE 0x01
-#define UAC2_DP_MODE_SELECT 0x02
-#define UAC2_DP_CLUSTER 0x03
-#define UAC2_DP_UNDERFFLOW 0x04
-#define UAC2_DP_OVERFLOW 0x05
-#define UAC2_DP_LATENCY 0x06
-
-/* A.17.9.3 Stereo Expander Processing Unit Control Selectors */
-#define UAC2_ST_EXT_UNDEFINED 0x00
-#define UAC2_ST_EXT_ENABLE 0x01
-#define UAC2_ST_EXT_WIDTH 0x02
-#define UAC2_ST_EXT_UNDEFLOW 0x03
-#define UAC2_ST_EXT_OVERFLOW 0x04
-#define UAC2_ST_EXT_LATENCY 0x05
-
-/* A.17.10 Extension Unit Control Selectors */
-#define UAC2_XU_UNDEFINED 0x00
-#define UAC2_XU_ENABLE 0x01
-#define UAC2_XU_CLUSTER 0x02
-#define UAC2_XU_UNDERFLOW 0x03
-#define UAC2_XU_OVERFLOW 0x04
-#define UAC2_XU_LATENCY 0x05
-
-/* A.17.11 AudioStreaming Interface Control Selectors */
-#define UAC2_AS_UNDEFINED 0x00
-#define UAC2_AS_ACT_ALT_SETTING 0x01
-#define UAC2_AS_VAL_ALT_SETTINGS 0x02
-#define UAC2_AS_AUDIO_DATA_FORMAT 0x03
-
-/* A.17.12 Encoder Control Selectors */
-#define UAC2_EN_UNDEFINED 0x00
-#define UAC2_EN_BIT_RATE 0x01
-#define UAC2_EN_QUALITY 0x02
-#define UAC2_EN_VBR 0x03
-#define UAC2_EN_TYPE 0x04
-#define UAC2_EN_UNDERFLOW 0x05
-#define UAC2_EN_OVERFLOW 0x06
-#define UAC2_EN_ENCODER_ERROR 0x07
-#define UAC2_EN_PARAM1 0x08
-#define UAC2_EN_PARAM2 0x09
-#define UAC2_EN_PARAM3 0x0a
-#define UAC2_EN_PARAM4 0x0b
-#define UAC2_EN_PARAM5 0x0c
-#define UAC2_EN_PARAM6 0x0d
-#define UAC2_EN_PARAM7 0x0e
-#define UAC2_EN_PARAM8 0x0f
-
-/* A.17.13.1 MPEG Decoder Control Selectors */
-#define UAC2_MPEG_UNDEFINED 0x00
-#define UAC2_MPEG_DUAL_CHANNEL 0x01
-#define UAC2_MPEG_SECOND_STEREO 0x02
-#define UAC2_MPEG_MULTILINGUAL 0x03
-#define UAC2_MPEG_DYN_RANGE 0x04
-#define UAC2_MPEG_SCALING 0x05
-#define UAC2_MPEG_HILO_SCALING 0x06
-#define UAC2_MPEG_UNDERFLOW 0x07
-#define UAC2_MPEG_OVERFLOW 0x08
-#define UAC2_MPEG_DECODER_ERROR 0x09
-
-/* A17.13.2 AC3 Decoder Control Selectors */
-#define UAC2_AC3_UNDEFINED 0x00
-#define UAC2_AC3_MODE 0x01
-#define UAC2_AC3_DYN_RANGE 0x02
-#define UAC2_AC3_SCALING 0x03
-#define UAC2_AC3_HILO_SCALING 0x04
-#define UAC2_AC3_UNDERFLOW 0x05
-#define UAC2_AC3_OVERFLOW 0x06
-#define UAC2_AC3_DECODER_ERROR 0x07
-
-/* A17.13.3 WMA Decoder Control Selectors */
-#define UAC2_WMA_UNDEFINED 0x00
-#define UAC2_WMA_UNDERFLOW 0x01
-#define UAC2_WMA_OVERFLOW 0x02
-#define UAC2_WMA_DECODER_ERROR 0x03
-
-/* A17.13.4 DTS Decoder Control Selectors */
-#define UAC2_DTS_UNDEFINED 0x00
-#define UAC2_DTS_UNDERFLOW 0x01
-#define UAC2_DTS_OVERFLOW 0x02
-#define UAC2_DTS_DECODER_ERROR 0x03
-
-/* A17.14 Endpoint Control Selectors */
-#define UAC2_EP_CS_UNDEFINED 0x00
-#define UAC2_EP_CS_PITCH 0x01
-#define UAC2_EP_CS_DATA_OVERRUN 0x02
-#define UAC2_EP_CS_DATA_UNDERRUN 0x03
-
-#endif /* __LINUX_USB_AUDIO_V2_H */
-
diff --git a/ANDROID_3.4.5/include/linux/usb/audio.h b/ANDROID_3.4.5/include/linux/usb/audio.h
deleted file mode 100644
index a54b8255..00000000
--- a/ANDROID_3.4.5/include/linux/usb/audio.h
+++ /dev/null
@@ -1,566 +0,0 @@
-/*
- * <linux/usb/audio.h> -- USB Audio definitions.
- *
- * Copyright (C) 2006 Thumtronics Pty Ltd.
- * Developed for Thumtronics by Grey Innovation
- * Ben Williamson <ben.williamson@greyinnovation.com>
- *
- * This software is distributed under the terms of the GNU General Public
- * License ("GPL") version 2, as published by the Free Software Foundation.
- *
- * This file holds USB constants and structures defined
- * by the USB Device Class Definition for Audio Devices.
- * Comments below reference relevant sections of that document:
- *
- * http://www.usb.org/developers/devclass_docs/audio10.pdf
- *
- * Types and defines in this file are either specific to version 1.0 of
- * this standard or common for newer versions.
- */
-
-#ifndef __LINUX_USB_AUDIO_H
-#define __LINUX_USB_AUDIO_H
-
-#include <linux/types.h>
-
-/* bInterfaceProtocol values to denote the version of the standard used */
-#define UAC_VERSION_1 0x00
-#define UAC_VERSION_2 0x20
-
-/* A.2 Audio Interface Subclass Codes */
-#define USB_SUBCLASS_AUDIOCONTROL 0x01
-#define USB_SUBCLASS_AUDIOSTREAMING 0x02
-#define USB_SUBCLASS_MIDISTREAMING 0x03
-
-/* A.5 Audio Class-Specific AC Interface Descriptor Subtypes */
-#define UAC_HEADER 0x01
-#define UAC_INPUT_TERMINAL 0x02
-#define UAC_OUTPUT_TERMINAL 0x03
-#define UAC_MIXER_UNIT 0x04
-#define UAC_SELECTOR_UNIT 0x05
-#define UAC_FEATURE_UNIT 0x06
-#define UAC1_PROCESSING_UNIT 0x07
-#define UAC1_EXTENSION_UNIT 0x08
-
-/* A.6 Audio Class-Specific AS Interface Descriptor Subtypes */
-#define UAC_AS_GENERAL 0x01
-#define UAC_FORMAT_TYPE 0x02
-#define UAC_FORMAT_SPECIFIC 0x03
-
-/* A.7 Processing Unit Process Types */
-#define UAC_PROCESS_UNDEFINED 0x00
-#define UAC_PROCESS_UP_DOWNMIX 0x01
-#define UAC_PROCESS_DOLBY_PROLOGIC 0x02
-#define UAC_PROCESS_STEREO_EXTENDER 0x03
-#define UAC_PROCESS_REVERB 0x04
-#define UAC_PROCESS_CHORUS 0x05
-#define UAC_PROCESS_DYN_RANGE_COMP 0x06
-
-/* A.8 Audio Class-Specific Endpoint Descriptor Subtypes */
-#define UAC_EP_GENERAL 0x01
-
-/* A.9 Audio Class-Specific Request Codes */
-#define UAC_SET_ 0x00
-#define UAC_GET_ 0x80
-
-#define UAC__CUR 0x1
-#define UAC__MIN 0x2
-#define UAC__MAX 0x3
-#define UAC__RES 0x4
-#define UAC__MEM 0x5
-
-#define UAC_SET_CUR (UAC_SET_ | UAC__CUR)
-#define UAC_GET_CUR (UAC_GET_ | UAC__CUR)
-#define UAC_SET_MIN (UAC_SET_ | UAC__MIN)
-#define UAC_GET_MIN (UAC_GET_ | UAC__MIN)
-#define UAC_SET_MAX (UAC_SET_ | UAC__MAX)
-#define UAC_GET_MAX (UAC_GET_ | UAC__MAX)
-#define UAC_SET_RES (UAC_SET_ | UAC__RES)
-#define UAC_GET_RES (UAC_GET_ | UAC__RES)
-#define UAC_SET_MEM (UAC_SET_ | UAC__MEM)
-#define UAC_GET_MEM (UAC_GET_ | UAC__MEM)
-
-#define UAC_GET_STAT 0xff
-
-/* A.10 Control Selector Codes */
-
-/* A.10.1 Terminal Control Selectors */
-#define UAC_TERM_COPY_PROTECT 0x01
-
-/* A.10.2 Feature Unit Control Selectors */
-#define UAC_FU_MUTE 0x01
-#define UAC_FU_VOLUME 0x02
-#define UAC_FU_BASS 0x03
-#define UAC_FU_MID 0x04
-#define UAC_FU_TREBLE 0x05
-#define UAC_FU_GRAPHIC_EQUALIZER 0x06
-#define UAC_FU_AUTOMATIC_GAIN 0x07
-#define UAC_FU_DELAY 0x08
-#define UAC_FU_BASS_BOOST 0x09
-#define UAC_FU_LOUDNESS 0x0a
-
-#define UAC_CONTROL_BIT(CS) (1 << ((CS) - 1))
-
-/* A.10.3.1 Up/Down-mix Processing Unit Controls Selectors */
-#define UAC_UD_ENABLE 0x01
-#define UAC_UD_MODE_SELECT 0x02
-
-/* A.10.3.2 Dolby Prologic (tm) Processing Unit Controls Selectors */
-#define UAC_DP_ENABLE 0x01
-#define UAC_DP_MODE_SELECT 0x02
-
-/* A.10.3.3 3D Stereo Extender Processing Unit Control Selectors */
-#define UAC_3D_ENABLE 0x01
-#define UAC_3D_SPACE 0x02
-
-/* A.10.3.4 Reverberation Processing Unit Control Selectors */
-#define UAC_REVERB_ENABLE 0x01
-#define UAC_REVERB_LEVEL 0x02
-#define UAC_REVERB_TIME 0x03
-#define UAC_REVERB_FEEDBACK 0x04
-
-/* A.10.3.5 Chorus Processing Unit Control Selectors */
-#define UAC_CHORUS_ENABLE 0x01
-#define UAC_CHORUS_LEVEL 0x02
-#define UAC_CHORUS_RATE 0x03
-#define UAC_CHORUS_DEPTH 0x04
-
-/* A.10.3.6 Dynamic Range Compressor Unit Control Selectors */
-#define UAC_DCR_ENABLE 0x01
-#define UAC_DCR_RATE 0x02
-#define UAC_DCR_MAXAMPL 0x03
-#define UAC_DCR_THRESHOLD 0x04
-#define UAC_DCR_ATTACK_TIME 0x05
-#define UAC_DCR_RELEASE_TIME 0x06
-
-/* A.10.4 Extension Unit Control Selectors */
-#define UAC_XU_ENABLE 0x01
-
-/* MIDI - A.1 MS Class-Specific Interface Descriptor Subtypes */
-#define UAC_MS_HEADER 0x01
-#define UAC_MIDI_IN_JACK 0x02
-#define UAC_MIDI_OUT_JACK 0x03
-
-/* MIDI - A.1 MS Class-Specific Endpoint Descriptor Subtypes */
-#define UAC_MS_GENERAL 0x01
-
-/* Terminals - 2.1 USB Terminal Types */
-#define UAC_TERMINAL_UNDEFINED 0x100
-#define UAC_TERMINAL_STREAMING 0x101
-#define UAC_TERMINAL_VENDOR_SPEC 0x1FF
-
-/* Terminal Control Selectors */
-/* 4.3.2 Class-Specific AC Interface Descriptor */
-struct uac1_ac_header_descriptor {
- __u8 bLength; /* 8 + n */
- __u8 bDescriptorType; /* USB_DT_CS_INTERFACE */
- __u8 bDescriptorSubtype; /* UAC_MS_HEADER */
- __le16 bcdADC; /* 0x0100 */
- __le16 wTotalLength; /* includes Unit and Terminal desc. */
- __u8 bInCollection; /* n */
- __u8 baInterfaceNr[]; /* [n] */
-} __attribute__ ((packed));
-
-#define UAC_DT_AC_HEADER_SIZE(n) (8 + (n))
-
-/* As above, but more useful for defining your own descriptors: */
-#define DECLARE_UAC_AC_HEADER_DESCRIPTOR(n) \
-struct uac1_ac_header_descriptor_##n { \
- __u8 bLength; \
- __u8 bDescriptorType; \
- __u8 bDescriptorSubtype; \
- __le16 bcdADC; \
- __le16 wTotalLength; \
- __u8 bInCollection; \
- __u8 baInterfaceNr[n]; \
-} __attribute__ ((packed))
-
-/* 4.3.2.1 Input Terminal Descriptor */
-struct uac_input_terminal_descriptor {
- __u8 bLength; /* in bytes: 12 */
- __u8 bDescriptorType; /* CS_INTERFACE descriptor type */
- __u8 bDescriptorSubtype; /* INPUT_TERMINAL descriptor subtype */
- __u8 bTerminalID; /* Constant uniquely terminal ID */
- __le16 wTerminalType; /* USB Audio Terminal Types */
- __u8 bAssocTerminal; /* ID of the Output Terminal associated */
- __u8 bNrChannels; /* Number of logical output channels */
- __le16 wChannelConfig;
- __u8 iChannelNames;
- __u8 iTerminal;
-} __attribute__ ((packed));
-
-#define UAC_DT_INPUT_TERMINAL_SIZE 12
-
-/* Terminals - 2.2 Input Terminal Types */
-#define UAC_INPUT_TERMINAL_UNDEFINED 0x200
-#define UAC_INPUT_TERMINAL_MICROPHONE 0x201
-#define UAC_INPUT_TERMINAL_DESKTOP_MICROPHONE 0x202
-#define UAC_INPUT_TERMINAL_PERSONAL_MICROPHONE 0x203
-#define UAC_INPUT_TERMINAL_OMNI_DIR_MICROPHONE 0x204
-#define UAC_INPUT_TERMINAL_MICROPHONE_ARRAY 0x205
-#define UAC_INPUT_TERMINAL_PROC_MICROPHONE_ARRAY 0x206
-
-/* Terminals - control selectors */
-
-#define UAC_TERMINAL_CS_COPY_PROTECT_CONTROL 0x01
-
-/* 4.3.2.2 Output Terminal Descriptor */
-struct uac1_output_terminal_descriptor {
- __u8 bLength; /* in bytes: 9 */
- __u8 bDescriptorType; /* CS_INTERFACE descriptor type */
- __u8 bDescriptorSubtype; /* OUTPUT_TERMINAL descriptor subtype */
- __u8 bTerminalID; /* Constant uniquely terminal ID */
- __le16 wTerminalType; /* USB Audio Terminal Types */
- __u8 bAssocTerminal; /* ID of the Input Terminal associated */
- __u8 bSourceID; /* ID of the connected Unit or Terminal*/
- __u8 iTerminal;
-} __attribute__ ((packed));
-
-#define UAC_DT_OUTPUT_TERMINAL_SIZE 9
-
-/* Terminals - 2.3 Output Terminal Types */
-#define UAC_OUTPUT_TERMINAL_UNDEFINED 0x300
-#define UAC_OUTPUT_TERMINAL_SPEAKER 0x301
-#define UAC_OUTPUT_TERMINAL_HEADPHONES 0x302
-#define UAC_OUTPUT_TERMINAL_HEAD_MOUNTED_DISPLAY_AUDIO 0x303
-#define UAC_OUTPUT_TERMINAL_DESKTOP_SPEAKER 0x304
-#define UAC_OUTPUT_TERMINAL_ROOM_SPEAKER 0x305
-#define UAC_OUTPUT_TERMINAL_COMMUNICATION_SPEAKER 0x306
-#define UAC_OUTPUT_TERMINAL_LOW_FREQ_EFFECTS_SPEAKER 0x307
-
-/* Set bControlSize = 2 as default setting */
-#define UAC_DT_FEATURE_UNIT_SIZE(ch) (7 + ((ch) + 1) * 2)
-
-/* As above, but more useful for defining your own descriptors: */
-#define DECLARE_UAC_FEATURE_UNIT_DESCRIPTOR(ch) \
-struct uac_feature_unit_descriptor_##ch { \
- __u8 bLength; \
- __u8 bDescriptorType; \
- __u8 bDescriptorSubtype; \
- __u8 bUnitID; \
- __u8 bSourceID; \
- __u8 bControlSize; \
- __le16 bmaControls[ch + 1]; \
- __u8 iFeature; \
-} __attribute__ ((packed))
-
-/* 4.3.2.3 Mixer Unit Descriptor */
-struct uac_mixer_unit_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubtype;
- __u8 bUnitID;
- __u8 bNrInPins;
- __u8 baSourceID[];
-} __attribute__ ((packed));
-
-static inline __u8 uac_mixer_unit_bNrChannels(struct uac_mixer_unit_descriptor *desc)
-{
- return desc->baSourceID[desc->bNrInPins];
-}
-
-static inline __u32 uac_mixer_unit_wChannelConfig(struct uac_mixer_unit_descriptor *desc,
- int protocol)
-{
- if (protocol == UAC_VERSION_1)
- return (desc->baSourceID[desc->bNrInPins + 2] << 8) |
- desc->baSourceID[desc->bNrInPins + 1];
- else
- return (desc->baSourceID[desc->bNrInPins + 4] << 24) |
- (desc->baSourceID[desc->bNrInPins + 3] << 16) |
- (desc->baSourceID[desc->bNrInPins + 2] << 8) |
- (desc->baSourceID[desc->bNrInPins + 1]);
-}
-
-static inline __u8 uac_mixer_unit_iChannelNames(struct uac_mixer_unit_descriptor *desc,
- int protocol)
-{
- return (protocol == UAC_VERSION_1) ?
- desc->baSourceID[desc->bNrInPins + 3] :
- desc->baSourceID[desc->bNrInPins + 5];
-}
-
-static inline __u8 *uac_mixer_unit_bmControls(struct uac_mixer_unit_descriptor *desc,
- int protocol)
-{
- return (protocol == UAC_VERSION_1) ?
- &desc->baSourceID[desc->bNrInPins + 4] :
- &desc->baSourceID[desc->bNrInPins + 6];
-}
-
-static inline __u8 uac_mixer_unit_iMixer(struct uac_mixer_unit_descriptor *desc)
-{
- __u8 *raw = (__u8 *) desc;
- return raw[desc->bLength - 1];
-}
-
-/* 4.3.2.4 Selector Unit Descriptor */
-struct uac_selector_unit_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubtype;
- __u8 bUintID;
- __u8 bNrInPins;
- __u8 baSourceID[];
-} __attribute__ ((packed));
-
-static inline __u8 uac_selector_unit_iSelector(struct uac_selector_unit_descriptor *desc)
-{
- __u8 *raw = (__u8 *) desc;
- return raw[desc->bLength - 1];
-}
-
-/* 4.3.2.5 Feature Unit Descriptor */
-struct uac_feature_unit_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubtype;
- __u8 bUnitID;
- __u8 bSourceID;
- __u8 bControlSize;
- __u8 bmaControls[0]; /* variable length */
-} __attribute__((packed));
-
-static inline __u8 uac_feature_unit_iFeature(struct uac_feature_unit_descriptor *desc)
-{
- __u8 *raw = (__u8 *) desc;
- return raw[desc->bLength - 1];
-}
-
-/* 4.3.2.6 Processing Unit Descriptors */
-struct uac_processing_unit_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubtype;
- __u8 bUnitID;
- __u16 wProcessType;
- __u8 bNrInPins;
- __u8 baSourceID[];
-} __attribute__ ((packed));
-
-static inline __u8 uac_processing_unit_bNrChannels(struct uac_processing_unit_descriptor *desc)
-{
- return desc->baSourceID[desc->bNrInPins];
-}
-
-static inline __u32 uac_processing_unit_wChannelConfig(struct uac_processing_unit_descriptor *desc,
- int protocol)
-{
- if (protocol == UAC_VERSION_1)
- return (desc->baSourceID[desc->bNrInPins + 2] << 8) |
- desc->baSourceID[desc->bNrInPins + 1];
- else
- return (desc->baSourceID[desc->bNrInPins + 4] << 24) |
- (desc->baSourceID[desc->bNrInPins + 3] << 16) |
- (desc->baSourceID[desc->bNrInPins + 2] << 8) |
- (desc->baSourceID[desc->bNrInPins + 1]);
-}
-
-static inline __u8 uac_processing_unit_iChannelNames(struct uac_processing_unit_descriptor *desc,
- int protocol)
-{
- return (protocol == UAC_VERSION_1) ?
- desc->baSourceID[desc->bNrInPins + 3] :
- desc->baSourceID[desc->bNrInPins + 5];
-}
-
-static inline __u8 uac_processing_unit_bControlSize(struct uac_processing_unit_descriptor *desc,
- int protocol)
-{
- return (protocol == UAC_VERSION_1) ?
- desc->baSourceID[desc->bNrInPins + 4] :
- desc->baSourceID[desc->bNrInPins + 6];
-}
-
-static inline __u8 *uac_processing_unit_bmControls(struct uac_processing_unit_descriptor *desc,
- int protocol)
-{
- return (protocol == UAC_VERSION_1) ?
- &desc->baSourceID[desc->bNrInPins + 5] :
- &desc->baSourceID[desc->bNrInPins + 7];
-}
-
-static inline __u8 uac_processing_unit_iProcessing(struct uac_processing_unit_descriptor *desc,
- int protocol)
-{
- __u8 control_size = uac_processing_unit_bControlSize(desc, protocol);
- return desc->baSourceID[desc->bNrInPins + control_size];
-}
-
-static inline __u8 *uac_processing_unit_specific(struct uac_processing_unit_descriptor *desc,
- int protocol)
-{
- __u8 control_size = uac_processing_unit_bControlSize(desc, protocol);
- return &desc->baSourceID[desc->bNrInPins + control_size + 1];
-}
-
-/* 4.5.2 Class-Specific AS Interface Descriptor */
-struct uac1_as_header_descriptor {
- __u8 bLength; /* in bytes: 7 */
- __u8 bDescriptorType; /* USB_DT_CS_INTERFACE */
- __u8 bDescriptorSubtype; /* AS_GENERAL */
- __u8 bTerminalLink; /* Terminal ID of connected Terminal */
- __u8 bDelay; /* Delay introduced by the data path */
- __le16 wFormatTag; /* The Audio Data Format */
-} __attribute__ ((packed));
-
-#define UAC_DT_AS_HEADER_SIZE 7
-
-/* Formats - A.1.1 Audio Data Format Type I Codes */
-#define UAC_FORMAT_TYPE_I_UNDEFINED 0x0
-#define UAC_FORMAT_TYPE_I_PCM 0x1
-#define UAC_FORMAT_TYPE_I_PCM8 0x2
-#define UAC_FORMAT_TYPE_I_IEEE_FLOAT 0x3
-#define UAC_FORMAT_TYPE_I_ALAW 0x4
-#define UAC_FORMAT_TYPE_I_MULAW 0x5
-
-struct uac_format_type_i_continuous_descriptor {
- __u8 bLength; /* in bytes: 8 + (ns * 3) */
- __u8 bDescriptorType; /* USB_DT_CS_INTERFACE */
- __u8 bDescriptorSubtype; /* FORMAT_TYPE */
- __u8 bFormatType; /* FORMAT_TYPE_1 */
- __u8 bNrChannels; /* physical channels in the stream */
- __u8 bSubframeSize; /* */
- __u8 bBitResolution;
- __u8 bSamFreqType;
- __u8 tLowerSamFreq[3];
- __u8 tUpperSamFreq[3];
-} __attribute__ ((packed));
-
-#define UAC_FORMAT_TYPE_I_CONTINUOUS_DESC_SIZE 14
-
-struct uac_format_type_i_discrete_descriptor {
- __u8 bLength; /* in bytes: 8 + (ns * 3) */
- __u8 bDescriptorType; /* USB_DT_CS_INTERFACE */
- __u8 bDescriptorSubtype; /* FORMAT_TYPE */
- __u8 bFormatType; /* FORMAT_TYPE_1 */
- __u8 bNrChannels; /* physical channels in the stream */
- __u8 bSubframeSize; /* */
- __u8 bBitResolution;
- __u8 bSamFreqType;
- __u8 tSamFreq[][3];
-} __attribute__ ((packed));
-
-#define DECLARE_UAC_FORMAT_TYPE_I_DISCRETE_DESC(n) \
-struct uac_format_type_i_discrete_descriptor_##n { \
- __u8 bLength; \
- __u8 bDescriptorType; \
- __u8 bDescriptorSubtype; \
- __u8 bFormatType; \
- __u8 bNrChannels; \
- __u8 bSubframeSize; \
- __u8 bBitResolution; \
- __u8 bSamFreqType; \
- __u8 tSamFreq[n][3]; \
-} __attribute__ ((packed))
-
-#define UAC_FORMAT_TYPE_I_DISCRETE_DESC_SIZE(n) (8 + (n * 3))
-
-struct uac_format_type_i_ext_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubtype;
- __u8 bFormatType;
- __u8 bSubslotSize;
- __u8 bBitResolution;
- __u8 bHeaderLength;
- __u8 bControlSize;
- __u8 bSideBandProtocol;
-} __attribute__((packed));
-
-/* Formats - Audio Data Format Type I Codes */
-
-#define UAC_FORMAT_TYPE_II_MPEG 0x1001
-#define UAC_FORMAT_TYPE_II_AC3 0x1002
-
-struct uac_format_type_ii_discrete_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubtype;
- __u8 bFormatType;
- __le16 wMaxBitRate;
- __le16 wSamplesPerFrame;
- __u8 bSamFreqType;
- __u8 tSamFreq[][3];
-} __attribute__((packed));
-
-struct uac_format_type_ii_ext_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubtype;
- __u8 bFormatType;
- __u16 wMaxBitRate;
- __u16 wSamplesPerFrame;
- __u8 bHeaderLength;
- __u8 bSideBandProtocol;
-} __attribute__((packed));
-
-/* type III */
-#define UAC_FORMAT_TYPE_III_IEC1937_AC3 0x2001
-#define UAC_FORMAT_TYPE_III_IEC1937_MPEG1_LAYER1 0x2002
-#define UAC_FORMAT_TYPE_III_IEC1937_MPEG2_NOEXT 0x2003
-#define UAC_FORMAT_TYPE_III_IEC1937_MPEG2_EXT 0x2004
-#define UAC_FORMAT_TYPE_III_IEC1937_MPEG2_LAYER1_LS 0x2005
-#define UAC_FORMAT_TYPE_III_IEC1937_MPEG2_LAYER23_LS 0x2006
-
-/* Formats - A.2 Format Type Codes */
-#define UAC_FORMAT_TYPE_UNDEFINED 0x0
-#define UAC_FORMAT_TYPE_I 0x1
-#define UAC_FORMAT_TYPE_II 0x2
-#define UAC_FORMAT_TYPE_III 0x3
-#define UAC_EXT_FORMAT_TYPE_I 0x81
-#define UAC_EXT_FORMAT_TYPE_II 0x82
-#define UAC_EXT_FORMAT_TYPE_III 0x83
-
-struct uac_iso_endpoint_descriptor {
- __u8 bLength; /* in bytes: 7 */
- __u8 bDescriptorType; /* USB_DT_CS_ENDPOINT */
- __u8 bDescriptorSubtype; /* EP_GENERAL */
- __u8 bmAttributes;
- __u8 bLockDelayUnits;
- __le16 wLockDelay;
-} __attribute__((packed));
-#define UAC_ISO_ENDPOINT_DESC_SIZE 7
-
-#define UAC_EP_CS_ATTR_SAMPLE_RATE 0x01
-#define UAC_EP_CS_ATTR_PITCH_CONTROL 0x02
-#define UAC_EP_CS_ATTR_FILL_MAX 0x80
-
-/* status word format (3.7.1.1) */
-
-#define UAC1_STATUS_TYPE_ORIG_MASK 0x0f
-#define UAC1_STATUS_TYPE_ORIG_AUDIO_CONTROL_IF 0x0
-#define UAC1_STATUS_TYPE_ORIG_AUDIO_STREAM_IF 0x1
-#define UAC1_STATUS_TYPE_ORIG_AUDIO_STREAM_EP 0x2
-
-#define UAC1_STATUS_TYPE_IRQ_PENDING (1 << 7)
-#define UAC1_STATUS_TYPE_MEM_CHANGED (1 << 6)
-
-struct uac1_status_word {
- __u8 bStatusType;
- __u8 bOriginator;
-} __attribute__((packed));
-
-#ifdef __KERNEL__
-
-struct usb_audio_control {
- struct list_head list;
- const char *name;
- u8 type;
- int data[5];
- int (*set)(struct usb_audio_control *con, u8 cmd, int value);
- int (*get)(struct usb_audio_control *con, u8 cmd);
-};
-
-struct usb_audio_control_selector {
- struct list_head list;
- struct list_head control;
- u8 id;
- const char *name;
- u8 type;
- struct usb_descriptor_header *desc;
-};
-
-#endif /* __KERNEL__ */
-
-#endif /* __LINUX_USB_AUDIO_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/c67x00.h b/ANDROID_3.4.5/include/linux/usb/c67x00.h
deleted file mode 100644
index 83c6b454..00000000
--- a/ANDROID_3.4.5/include/linux/usb/c67x00.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * usb_c67x00.h: platform definitions for the Cypress C67X00 USB chip
- *
- * Copyright (C) 2006-2008 Barco N.V.
- *
- * 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., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301 USA.
- */
-
-#ifndef _LINUX_USB_C67X00_H
-#define _LINUX_USB_C67X00_H
-
-/* SIE configuration */
-#define C67X00_SIE_UNUSED 0
-#define C67X00_SIE_HOST 1
-#define C67X00_SIE_PERIPHERAL_A 2 /* peripheral on A port */
-#define C67X00_SIE_PERIPHERAL_B 3 /* peripheral on B port */
-
-#define c67x00_sie_config(config, n) (((config)>>(4*(n)))&0x3)
-
-#define C67X00_SIE1_UNUSED (C67X00_SIE_UNUSED << 0)
-#define C67X00_SIE1_HOST (C67X00_SIE_HOST << 0)
-#define C67X00_SIE1_PERIPHERAL_A (C67X00_SIE_PERIPHERAL_A << 0)
-#define C67X00_SIE1_PERIPHERAL_B (C67X00_SIE_PERIPHERAL_B << 0)
-
-#define C67X00_SIE2_UNUSED (C67X00_SIE_UNUSED << 4)
-#define C67X00_SIE2_HOST (C67X00_SIE_HOST << 4)
-#define C67X00_SIE2_PERIPHERAL_A (C67X00_SIE_PERIPHERAL_A << 4)
-#define C67X00_SIE2_PERIPHERAL_B (C67X00_SIE_PERIPHERAL_B << 4)
-
-struct c67x00_platform_data {
- int sie_config; /* SIEs config (C67X00_SIEx_*) */
- unsigned long hpi_regstep; /* Step between HPI registers */
-};
-
-#endif /* _LINUX_USB_C67X00_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/cdc-wdm.h b/ANDROID_3.4.5/include/linux/usb/cdc-wdm.h
deleted file mode 100644
index 719c3326..00000000
--- a/ANDROID_3.4.5/include/linux/usb/cdc-wdm.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * USB CDC Device Management subdriver
- *
- * Copyright (c) 2012 Bjørn Mork <bjorn@mork.no>
- *
- * 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.
- */
-
-#ifndef __LINUX_USB_CDC_WDM_H
-#define __LINUX_USB_CDC_WDM_H
-
-extern struct usb_driver *usb_cdc_wdm_register(struct usb_interface *intf,
- struct usb_endpoint_descriptor *ep,
- int bufsize,
- int (*manage_power)(struct usb_interface *, int));
-
-#endif /* __LINUX_USB_CDC_WDM_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/cdc.h b/ANDROID_3.4.5/include/linux/usb/cdc.h
deleted file mode 100644
index 81a92793..00000000
--- a/ANDROID_3.4.5/include/linux/usb/cdc.h
+++ /dev/null
@@ -1,412 +0,0 @@
-/*
- * USB Communications Device Class (CDC) definitions
- *
- * CDC says how to talk to lots of different types of network adapters,
- * notably ethernet adapters and various modems. It's used mostly with
- * firmware based USB peripherals.
- */
-
-#ifndef __LINUX_USB_CDC_H
-#define __LINUX_USB_CDC_H
-
-#include <linux/types.h>
-
-#define USB_CDC_SUBCLASS_ACM 0x02
-#define USB_CDC_SUBCLASS_ETHERNET 0x06
-#define USB_CDC_SUBCLASS_WHCM 0x08
-#define USB_CDC_SUBCLASS_DMM 0x09
-#define USB_CDC_SUBCLASS_MDLM 0x0a
-#define USB_CDC_SUBCLASS_OBEX 0x0b
-#define USB_CDC_SUBCLASS_EEM 0x0c
-#define USB_CDC_SUBCLASS_NCM 0x0d
-
-#define USB_CDC_PROTO_NONE 0
-
-#define USB_CDC_ACM_PROTO_AT_V25TER 1
-#define USB_CDC_ACM_PROTO_AT_PCCA101 2
-#define USB_CDC_ACM_PROTO_AT_PCCA101_WAKE 3
-#define USB_CDC_ACM_PROTO_AT_GSM 4
-#define USB_CDC_ACM_PROTO_AT_3G 5
-#define USB_CDC_ACM_PROTO_AT_CDMA 6
-#define USB_CDC_ACM_PROTO_VENDOR 0xff
-
-#define USB_CDC_PROTO_EEM 7
-
-#define USB_CDC_NCM_PROTO_NTB 1
-
-/*-------------------------------------------------------------------------*/
-
-/*
- * Class-Specific descriptors ... there are a couple dozen of them
- */
-
-#define USB_CDC_HEADER_TYPE 0x00 /* header_desc */
-#define USB_CDC_CALL_MANAGEMENT_TYPE 0x01 /* call_mgmt_descriptor */
-#define USB_CDC_ACM_TYPE 0x02 /* acm_descriptor */
-#define USB_CDC_UNION_TYPE 0x06 /* union_desc */
-#define USB_CDC_COUNTRY_TYPE 0x07
-#define USB_CDC_NETWORK_TERMINAL_TYPE 0x0a /* network_terminal_desc */
-#define USB_CDC_ETHERNET_TYPE 0x0f /* ether_desc */
-#define USB_CDC_WHCM_TYPE 0x11
-#define USB_CDC_MDLM_TYPE 0x12 /* mdlm_desc */
-#define USB_CDC_MDLM_DETAIL_TYPE 0x13 /* mdlm_detail_desc */
-#define USB_CDC_DMM_TYPE 0x14
-#define USB_CDC_OBEX_TYPE 0x15
-#define USB_CDC_NCM_TYPE 0x1a
-
-/* "Header Functional Descriptor" from CDC spec 5.2.3.1 */
-struct usb_cdc_header_desc {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubType;
-
- __le16 bcdCDC;
-} __attribute__ ((packed));
-
-/* "Call Management Descriptor" from CDC spec 5.2.3.2 */
-struct usb_cdc_call_mgmt_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubType;
-
- __u8 bmCapabilities;
-#define USB_CDC_CALL_MGMT_CAP_CALL_MGMT 0x01
-#define USB_CDC_CALL_MGMT_CAP_DATA_INTF 0x02
-
- __u8 bDataInterface;
-} __attribute__ ((packed));
-
-/* "Abstract Control Management Descriptor" from CDC spec 5.2.3.3 */
-struct usb_cdc_acm_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubType;
-
- __u8 bmCapabilities;
-} __attribute__ ((packed));
-
-/* capabilities from 5.2.3.3 */
-
-#define USB_CDC_COMM_FEATURE 0x01
-#define USB_CDC_CAP_LINE 0x02
-#define USB_CDC_CAP_BRK 0x04
-#define USB_CDC_CAP_NOTIFY 0x08
-
-/* "Union Functional Descriptor" from CDC spec 5.2.3.8 */
-struct usb_cdc_union_desc {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubType;
-
- __u8 bMasterInterface0;
- __u8 bSlaveInterface0;
- /* ... and there could be other slave interfaces */
-} __attribute__ ((packed));
-
-/* "Country Selection Functional Descriptor" from CDC spec 5.2.3.9 */
-struct usb_cdc_country_functional_desc {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubType;
-
- __u8 iCountryCodeRelDate;
- __le16 wCountyCode0;
- /* ... and there can be a lot of country codes */
-} __attribute__ ((packed));
-
-/* "Network Channel Terminal Functional Descriptor" from CDC spec 5.2.3.11 */
-struct usb_cdc_network_terminal_desc {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubType;
-
- __u8 bEntityId;
- __u8 iName;
- __u8 bChannelIndex;
- __u8 bPhysicalInterface;
-} __attribute__ ((packed));
-
-/* "Ethernet Networking Functional Descriptor" from CDC spec 5.2.3.16 */
-struct usb_cdc_ether_desc {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubType;
-
- __u8 iMACAddress;
- __le32 bmEthernetStatistics;
- __le16 wMaxSegmentSize;
- __le16 wNumberMCFilters;
- __u8 bNumberPowerFilters;
-} __attribute__ ((packed));
-
-/* "Telephone Control Model Functional Descriptor" from CDC WMC spec 6.3..3 */
-struct usb_cdc_dmm_desc {
- __u8 bFunctionLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubtype;
- __u16 bcdVersion;
- __le16 wMaxCommand;
-} __attribute__ ((packed));
-
-/* "MDLM Functional Descriptor" from CDC WMC spec 6.7.2.3 */
-struct usb_cdc_mdlm_desc {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubType;
-
- __le16 bcdVersion;
- __u8 bGUID[16];
-} __attribute__ ((packed));
-
-/* "MDLM Detail Functional Descriptor" from CDC WMC spec 6.7.2.4 */
-struct usb_cdc_mdlm_detail_desc {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubType;
-
- /* type is associated with mdlm_desc.bGUID */
- __u8 bGuidDescriptorType;
- __u8 bDetailData[0];
-} __attribute__ ((packed));
-
-/* "OBEX Control Model Functional Descriptor" */
-struct usb_cdc_obex_desc {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubType;
-
- __le16 bcdVersion;
-} __attribute__ ((packed));
-
-/* "NCM Control Model Functional Descriptor" */
-struct usb_cdc_ncm_desc {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubType;
-
- __le16 bcdNcmVersion;
- __u8 bmNetworkCapabilities;
-} __attribute__ ((packed));
-/*-------------------------------------------------------------------------*/
-
-/*
- * Class-Specific Control Requests (6.2)
- *
- * section 3.6.2.1 table 4 has the ACM profile, for modems.
- * section 3.8.2 table 10 has the ethernet profile.
- *
- * Microsoft's RNDIS stack for Ethernet is a vendor-specific CDC ACM variant,
- * heavily dependent on the encapsulated (proprietary) command mechanism.
- */
-
-#define USB_CDC_SEND_ENCAPSULATED_COMMAND 0x00
-#define USB_CDC_GET_ENCAPSULATED_RESPONSE 0x01
-#define USB_CDC_REQ_SET_LINE_CODING 0x20
-#define USB_CDC_REQ_GET_LINE_CODING 0x21
-#define USB_CDC_REQ_SET_CONTROL_LINE_STATE 0x22
-#define USB_CDC_REQ_SEND_BREAK 0x23
-#define USB_CDC_SET_ETHERNET_MULTICAST_FILTERS 0x40
-#define USB_CDC_SET_ETHERNET_PM_PATTERN_FILTER 0x41
-#define USB_CDC_GET_ETHERNET_PM_PATTERN_FILTER 0x42
-#define USB_CDC_SET_ETHERNET_PACKET_FILTER 0x43
-#define USB_CDC_GET_ETHERNET_STATISTIC 0x44
-#define USB_CDC_GET_NTB_PARAMETERS 0x80
-#define USB_CDC_GET_NET_ADDRESS 0x81
-#define USB_CDC_SET_NET_ADDRESS 0x82
-#define USB_CDC_GET_NTB_FORMAT 0x83
-#define USB_CDC_SET_NTB_FORMAT 0x84
-#define USB_CDC_GET_NTB_INPUT_SIZE 0x85
-#define USB_CDC_SET_NTB_INPUT_SIZE 0x86
-#define USB_CDC_GET_MAX_DATAGRAM_SIZE 0x87
-#define USB_CDC_SET_MAX_DATAGRAM_SIZE 0x88
-#define USB_CDC_GET_CRC_MODE 0x89
-#define USB_CDC_SET_CRC_MODE 0x8a
-
-/* Line Coding Structure from CDC spec 6.2.13 */
-struct usb_cdc_line_coding {
- __le32 dwDTERate;
- __u8 bCharFormat;
-#define USB_CDC_1_STOP_BITS 0
-#define USB_CDC_1_5_STOP_BITS 1
-#define USB_CDC_2_STOP_BITS 2
-
- __u8 bParityType;
-#define USB_CDC_NO_PARITY 0
-#define USB_CDC_ODD_PARITY 1
-#define USB_CDC_EVEN_PARITY 2
-#define USB_CDC_MARK_PARITY 3
-#define USB_CDC_SPACE_PARITY 4
-
- __u8 bDataBits;
-} __attribute__ ((packed));
-
-/* table 62; bits in multicast filter */
-#define USB_CDC_PACKET_TYPE_PROMISCUOUS (1 << 0)
-#define USB_CDC_PACKET_TYPE_ALL_MULTICAST (1 << 1) /* no filter */
-#define USB_CDC_PACKET_TYPE_DIRECTED (1 << 2)
-#define USB_CDC_PACKET_TYPE_BROADCAST (1 << 3)
-#define USB_CDC_PACKET_TYPE_MULTICAST (1 << 4) /* filtered */
-
-
-/*-------------------------------------------------------------------------*/
-
-/*
- * Class-Specific Notifications (6.3) sent by interrupt transfers
- *
- * section 3.8.2 table 11 of the CDC spec lists Ethernet notifications
- * section 3.6.2.1 table 5 specifies ACM notifications, accepted by RNDIS
- * RNDIS also defines its own bit-incompatible notifications
- */
-
-#define USB_CDC_NOTIFY_NETWORK_CONNECTION 0x00
-#define USB_CDC_NOTIFY_RESPONSE_AVAILABLE 0x01
-#define USB_CDC_NOTIFY_SERIAL_STATE 0x20
-#define USB_CDC_NOTIFY_SPEED_CHANGE 0x2a
-
-struct usb_cdc_notification {
- __u8 bmRequestType;
- __u8 bNotificationType;
- __le16 wValue;
- __le16 wIndex;
- __le16 wLength;
-} __attribute__ ((packed));
-
-struct usb_cdc_speed_change {
- __le32 DLBitRRate; /* contains the downlink bit rate (IN pipe) */
- __le32 ULBitRate; /* contains the uplink bit rate (OUT pipe) */
-} __attribute__ ((packed));
-
-/*-------------------------------------------------------------------------*/
-
-/*
- * Class Specific structures and constants
- *
- * CDC NCM NTB parameters structure, CDC NCM subclass 6.2.1
- *
- */
-
-struct usb_cdc_ncm_ntb_parameters {
- __le16 wLength;
- __le16 bmNtbFormatsSupported;
- __le32 dwNtbInMaxSize;
- __le16 wNdpInDivisor;
- __le16 wNdpInPayloadRemainder;
- __le16 wNdpInAlignment;
- __le16 wPadding1;
- __le32 dwNtbOutMaxSize;
- __le16 wNdpOutDivisor;
- __le16 wNdpOutPayloadRemainder;
- __le16 wNdpOutAlignment;
- __le16 wNtbOutMaxDatagrams;
-} __attribute__ ((packed));
-
-/*
- * CDC NCM transfer headers, CDC NCM subclass 3.2
- */
-
-#define USB_CDC_NCM_NTH16_SIGN 0x484D434E /* NCMH */
-#define USB_CDC_NCM_NTH32_SIGN 0x686D636E /* ncmh */
-
-struct usb_cdc_ncm_nth16 {
- __le32 dwSignature;
- __le16 wHeaderLength;
- __le16 wSequence;
- __le16 wBlockLength;
- __le16 wNdpIndex;
-} __attribute__ ((packed));
-
-struct usb_cdc_ncm_nth32 {
- __le32 dwSignature;
- __le16 wHeaderLength;
- __le16 wSequence;
- __le32 dwBlockLength;
- __le32 dwNdpIndex;
-} __attribute__ ((packed));
-
-/*
- * CDC NCM datagram pointers, CDC NCM subclass 3.3
- */
-
-#define USB_CDC_NCM_NDP16_CRC_SIGN 0x314D434E /* NCM1 */
-#define USB_CDC_NCM_NDP16_NOCRC_SIGN 0x304D434E /* NCM0 */
-#define USB_CDC_NCM_NDP32_CRC_SIGN 0x316D636E /* ncm1 */
-#define USB_CDC_NCM_NDP32_NOCRC_SIGN 0x306D636E /* ncm0 */
-
-/* 16-bit NCM Datagram Pointer Entry */
-struct usb_cdc_ncm_dpe16 {
- __le16 wDatagramIndex;
- __le16 wDatagramLength;
-} __attribute__((__packed__));
-
-/* 16-bit NCM Datagram Pointer Table */
-struct usb_cdc_ncm_ndp16 {
- __le32 dwSignature;
- __le16 wLength;
- __le16 wNextNdpIndex;
- struct usb_cdc_ncm_dpe16 dpe16[0];
-} __attribute__ ((packed));
-
-/* 32-bit NCM Datagram Pointer Entry */
-struct usb_cdc_ncm_dpe32 {
- __le32 dwDatagramIndex;
- __le32 dwDatagramLength;
-} __attribute__((__packed__));
-
-/* 32-bit NCM Datagram Pointer Table */
-struct usb_cdc_ncm_ndp32 {
- __le32 dwSignature;
- __le16 wLength;
- __le16 wReserved6;
- __le32 dwNextNdpIndex;
- __le32 dwReserved12;
- struct usb_cdc_ncm_dpe32 dpe32[0];
-} __attribute__ ((packed));
-
-/* CDC NCM subclass 3.2.1 and 3.2.2 */
-#define USB_CDC_NCM_NDP16_INDEX_MIN 0x000C
-#define USB_CDC_NCM_NDP32_INDEX_MIN 0x0010
-
-/* CDC NCM subclass 3.3.3 Datagram Formatting */
-#define USB_CDC_NCM_DATAGRAM_FORMAT_CRC 0x30
-#define USB_CDC_NCM_DATAGRAM_FORMAT_NOCRC 0X31
-
-/* CDC NCM subclass 4.2 NCM Communications Interface Protocol Code */
-#define USB_CDC_NCM_PROTO_CODE_NO_ENCAP_COMMANDS 0x00
-#define USB_CDC_NCM_PROTO_CODE_EXTERN_PROTO 0xFE
-
-/* CDC NCM subclass 5.2.1 NCM Functional Descriptor, bmNetworkCapabilities */
-#define USB_CDC_NCM_NCAP_ETH_FILTER (1 << 0)
-#define USB_CDC_NCM_NCAP_NET_ADDRESS (1 << 1)
-#define USB_CDC_NCM_NCAP_ENCAP_COMMAND (1 << 2)
-#define USB_CDC_NCM_NCAP_MAX_DATAGRAM_SIZE (1 << 3)
-#define USB_CDC_NCM_NCAP_CRC_MODE (1 << 4)
-#define USB_CDC_NCM_NCAP_NTB_INPUT_SIZE (1 << 5)
-
-/* CDC NCM subclass Table 6-3: NTB Parameter Structure */
-#define USB_CDC_NCM_NTB16_SUPPORTED (1 << 0)
-#define USB_CDC_NCM_NTB32_SUPPORTED (1 << 1)
-
-/* CDC NCM subclass Table 6-3: NTB Parameter Structure */
-#define USB_CDC_NCM_NDP_ALIGN_MIN_SIZE 0x04
-#define USB_CDC_NCM_NTB_MAX_LENGTH 0x1C
-
-/* CDC NCM subclass 6.2.5 SetNtbFormat */
-#define USB_CDC_NCM_NTB16_FORMAT 0x00
-#define USB_CDC_NCM_NTB32_FORMAT 0x01
-
-/* CDC NCM subclass 6.2.7 SetNtbInputSize */
-#define USB_CDC_NCM_NTB_MIN_IN_SIZE 2048
-#define USB_CDC_NCM_NTB_MIN_OUT_SIZE 2048
-
-/* NTB Input Size Structure */
-struct usb_cdc_ncm_ndp_input_size {
- __le32 dwNtbInMaxSize;
- __le16 wNtbInMaxDatagrams;
- __le16 wReserved;
-} __attribute__ ((packed));
-
-/* CDC NCM subclass 6.2.11 SetCrcMode */
-#define USB_CDC_NCM_CRC_NOT_APPENDED 0x00
-#define USB_CDC_NCM_CRC_APPENDED 0x01
-
-#endif /* __LINUX_USB_CDC_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/ch11.h b/ANDROID_3.4.5/include/linux/usb/ch11.h
deleted file mode 100644
index f1d26b60..00000000
--- a/ANDROID_3.4.5/include/linux/usb/ch11.h
+++ /dev/null
@@ -1,264 +0,0 @@
-/*
- * This file holds Hub protocol constants and data structures that are
- * defined in chapter 11 (Hub Specification) of the USB 2.0 specification.
- *
- * It is used/shared between the USB core, the HCDs and couple of other USB
- * drivers.
- */
-
-#ifndef __LINUX_CH11_H
-#define __LINUX_CH11_H
-
-#include <linux/types.h> /* __u8 etc */
-
-/*
- * Hub request types
- */
-
-#define USB_RT_HUB (USB_TYPE_CLASS | USB_RECIP_DEVICE)
-#define USB_RT_PORT (USB_TYPE_CLASS | USB_RECIP_OTHER)
-
-/*
- * Hub class requests
- * See USB 2.0 spec Table 11-16
- */
-#define HUB_CLEAR_TT_BUFFER 8
-#define HUB_RESET_TT 9
-#define HUB_GET_TT_STATE 10
-#define HUB_STOP_TT 11
-
-/*
- * Hub class additional requests defined by USB 3.0 spec
- * See USB 3.0 spec Table 10-6
- */
-#define HUB_SET_DEPTH 12
-#define HUB_GET_PORT_ERR_COUNT 13
-
-/*
- * Hub Class feature numbers
- * See USB 2.0 spec Table 11-17
- */
-#define C_HUB_LOCAL_POWER 0
-#define C_HUB_OVER_CURRENT 1
-
-/*
- * Port feature numbers
- * See USB 2.0 spec Table 11-17
- */
-#define USB_PORT_FEAT_CONNECTION 0
-#define USB_PORT_FEAT_ENABLE 1
-#define USB_PORT_FEAT_SUSPEND 2 /* L2 suspend */
-#define USB_PORT_FEAT_OVER_CURRENT 3
-#define USB_PORT_FEAT_RESET 4
-#define USB_PORT_FEAT_L1 5 /* L1 suspend */
-#define USB_PORT_FEAT_POWER 8
-#define USB_PORT_FEAT_LOWSPEED 9 /* Should never be used */
-#define USB_PORT_FEAT_C_CONNECTION 16
-#define USB_PORT_FEAT_C_ENABLE 17
-#define USB_PORT_FEAT_C_SUSPEND 18
-#define USB_PORT_FEAT_C_OVER_CURRENT 19
-#define USB_PORT_FEAT_C_RESET 20
-#define USB_PORT_FEAT_TEST 21
-#define USB_PORT_FEAT_INDICATOR 22
-#define USB_PORT_FEAT_C_PORT_L1 23
-
-/*
- * Port feature selectors added by USB 3.0 spec.
- * See USB 3.0 spec Table 10-7
- */
-#define USB_PORT_FEAT_LINK_STATE 5
-#define USB_PORT_FEAT_U1_TIMEOUT 23
-#define USB_PORT_FEAT_U2_TIMEOUT 24
-#define USB_PORT_FEAT_C_PORT_LINK_STATE 25
-#define USB_PORT_FEAT_C_PORT_CONFIG_ERROR 26
-#define USB_PORT_FEAT_REMOTE_WAKE_MASK 27
-#define USB_PORT_FEAT_BH_PORT_RESET 28
-#define USB_PORT_FEAT_C_BH_PORT_RESET 29
-#define USB_PORT_FEAT_FORCE_LINKPM_ACCEPT 30
-
-/* USB 3.0 hub remote wake mask bits, see table 10-14 */
-#define USB_PORT_FEAT_REMOTE_WAKE_CONNECT (1 << 8)
-#define USB_PORT_FEAT_REMOTE_WAKE_DISCONNECT (1 << 9)
-#define USB_PORT_FEAT_REMOTE_WAKE_OVER_CURRENT (1 << 10)
-
-/*
- * Hub Status and Hub Change results
- * See USB 2.0 spec Table 11-19 and Table 11-20
- */
-struct usb_port_status {
- __le16 wPortStatus;
- __le16 wPortChange;
-} __attribute__ ((packed));
-
-/*
- * wPortStatus bit field
- * See USB 2.0 spec Table 11-21
- */
-#define USB_PORT_STAT_CONNECTION 0x0001
-#define USB_PORT_STAT_ENABLE 0x0002
-#define USB_PORT_STAT_SUSPEND 0x0004
-#define USB_PORT_STAT_OVERCURRENT 0x0008
-#define USB_PORT_STAT_RESET 0x0010
-#define USB_PORT_STAT_L1 0x0020
-/* bits 6 to 7 are reserved */
-#define USB_PORT_STAT_POWER 0x0100
-#define USB_PORT_STAT_LOW_SPEED 0x0200
-#define USB_PORT_STAT_HIGH_SPEED 0x0400
-#define USB_PORT_STAT_TEST 0x0800
-#define USB_PORT_STAT_INDICATOR 0x1000
-/* bits 13 to 15 are reserved */
-
-/*
- * Additions to wPortStatus bit field from USB 3.0
- * See USB 3.0 spec Table 10-10
- */
-#define USB_PORT_STAT_LINK_STATE 0x01e0
-#define USB_SS_PORT_STAT_POWER 0x0200
-#define USB_SS_PORT_STAT_SPEED 0x1c00
-#define USB_PORT_STAT_SPEED_5GBPS 0x0000
-/* Valid only if port is enabled */
-/* Bits that are the same from USB 2.0 */
-#define USB_SS_PORT_STAT_MASK (USB_PORT_STAT_CONNECTION | \
- USB_PORT_STAT_ENABLE | \
- USB_PORT_STAT_OVERCURRENT | \
- USB_PORT_STAT_RESET)
-
-/*
- * Definitions for PORT_LINK_STATE values
- * (bits 5-8) in wPortStatus
- */
-#define USB_SS_PORT_LS_U0 0x0000
-#define USB_SS_PORT_LS_U1 0x0020
-#define USB_SS_PORT_LS_U2 0x0040
-#define USB_SS_PORT_LS_U3 0x0060
-#define USB_SS_PORT_LS_SS_DISABLED 0x0080
-#define USB_SS_PORT_LS_RX_DETECT 0x00a0
-#define USB_SS_PORT_LS_SS_INACTIVE 0x00c0
-#define USB_SS_PORT_LS_POLLING 0x00e0
-#define USB_SS_PORT_LS_RECOVERY 0x0100
-#define USB_SS_PORT_LS_HOT_RESET 0x0120
-#define USB_SS_PORT_LS_COMP_MOD 0x0140
-#define USB_SS_PORT_LS_LOOPBACK 0x0160
-
-/*
- * wPortChange bit field
- * See USB 2.0 spec Table 11-22 and USB 2.0 LPM ECN Table-4.10
- * Bits 0 to 5 shown, bits 6 to 15 are reserved
- */
-#define USB_PORT_STAT_C_CONNECTION 0x0001
-#define USB_PORT_STAT_C_ENABLE 0x0002
-#define USB_PORT_STAT_C_SUSPEND 0x0004
-#define USB_PORT_STAT_C_OVERCURRENT 0x0008
-#define USB_PORT_STAT_C_RESET 0x0010
-#define USB_PORT_STAT_C_L1 0x0020
-/*
- * USB 3.0 wPortChange bit fields
- * See USB 3.0 spec Table 10-11
- */
-#define USB_PORT_STAT_C_BH_RESET 0x0020
-#define USB_PORT_STAT_C_LINK_STATE 0x0040
-#define USB_PORT_STAT_C_CONFIG_ERROR 0x0080
-
-/*
- * wHubCharacteristics (masks)
- * See USB 2.0 spec Table 11-13, offset 3
- */
-#define HUB_CHAR_LPSM 0x0003 /* Logical Power Switching Mode mask */
-#define HUB_CHAR_COMMON_LPSM 0x0000 /* All ports power control at once */
-#define HUB_CHAR_INDV_PORT_LPSM 0x0001 /* per-port power control */
-#define HUB_CHAR_NO_LPSM 0x0002 /* no power switching */
-
-#define HUB_CHAR_COMPOUND 0x0004 /* hub is part of a compound device */
-
-#define HUB_CHAR_OCPM 0x0018 /* Over-Current Protection Mode mask */
-#define HUB_CHAR_COMMON_OCPM 0x0000 /* All ports Over-Current reporting */
-#define HUB_CHAR_INDV_PORT_OCPM 0x0008 /* per-port Over-current reporting */
-#define HUB_CHAR_NO_OCPM 0x0010 /* No Over-current Protection support */
-
-#define HUB_CHAR_TTTT 0x0060 /* TT Think Time mask */
-#define HUB_CHAR_PORTIND 0x0080 /* per-port indicators (LEDs) */
-
-struct usb_hub_status {
- __le16 wHubStatus;
- __le16 wHubChange;
-} __attribute__ ((packed));
-
-/*
- * Hub Status & Hub Change bit masks
- * See USB 2.0 spec Table 11-19 and Table 11-20
- * Bits 0 and 1 for wHubStatus and wHubChange
- * Bits 2 to 15 are reserved for both
- */
-#define HUB_STATUS_LOCAL_POWER 0x0001
-#define HUB_STATUS_OVERCURRENT 0x0002
-#define HUB_CHANGE_LOCAL_POWER 0x0001
-#define HUB_CHANGE_OVERCURRENT 0x0002
-
-
-/*
- * Hub descriptor
- * See USB 2.0 spec Table 11-13
- */
-
-#define USB_DT_HUB (USB_TYPE_CLASS | 0x09)
-#define USB_DT_SS_HUB (USB_TYPE_CLASS | 0x0a)
-#define USB_DT_HUB_NONVAR_SIZE 7
-#define USB_DT_SS_HUB_SIZE 12
-
-/*
- * Hub Device descriptor
- * USB Hub class device protocols
- */
-
-#define USB_HUB_PR_FS 0 /* Full speed hub */
-#define USB_HUB_PR_HS_NO_TT 0 /* Hi-speed hub without TT */
-#define USB_HUB_PR_HS_SINGLE_TT 1 /* Hi-speed hub with single TT */
-#define USB_HUB_PR_HS_MULTI_TT 2 /* Hi-speed hub with multiple TT */
-#define USB_HUB_PR_SS 3 /* Super speed hub */
-
-struct usb_hub_descriptor {
- __u8 bDescLength;
- __u8 bDescriptorType;
- __u8 bNbrPorts;
- __le16 wHubCharacteristics;
- __u8 bPwrOn2PwrGood;
- __u8 bHubContrCurrent;
-
- /* 2.0 and 3.0 hubs differ here */
- union {
- struct {
- /* add 1 bit for hub status change; round to bytes */
- __u8 DeviceRemovable[(USB_MAXCHILDREN + 1 + 7) / 8];
- __u8 PortPwrCtrlMask[(USB_MAXCHILDREN + 1 + 7) / 8];
- } __attribute__ ((packed)) hs;
-
- struct {
- __u8 bHubHdrDecLat;
- __u16 wHubDelay;
- __u16 DeviceRemovable;
- } __attribute__ ((packed)) ss;
- } u;
-} __attribute__ ((packed));
-
-/* port indicator status selectors, tables 11-7 and 11-25 */
-#define HUB_LED_AUTO 0
-#define HUB_LED_AMBER 1
-#define HUB_LED_GREEN 2
-#define HUB_LED_OFF 3
-
-enum hub_led_mode {
- INDICATOR_AUTO = 0,
- INDICATOR_CYCLE,
- /* software blinks for attention: software, hardware, reserved */
- INDICATOR_GREEN_BLINK, INDICATOR_GREEN_BLINK_OFF,
- INDICATOR_AMBER_BLINK, INDICATOR_AMBER_BLINK_OFF,
- INDICATOR_ALT_BLINK, INDICATOR_ALT_BLINK_OFF
-} __attribute__ ((packed));
-
-/* Transaction Translator Think Times, in bits */
-#define HUB_TTTT_8_BITS 0x00
-#define HUB_TTTT_16_BITS 0x20
-#define HUB_TTTT_24_BITS 0x40
-#define HUB_TTTT_32_BITS 0x60
-
-#endif /* __LINUX_CH11_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/ch9.h b/ANDROID_3.4.5/include/linux/usb/ch9.h
deleted file mode 100644
index af21f311..00000000
--- a/ANDROID_3.4.5/include/linux/usb/ch9.h
+++ /dev/null
@@ -1,946 +0,0 @@
-/*
- * This file holds USB constants and structures that are needed for
- * USB device APIs. These are used by the USB device model, which is
- * defined in chapter 9 of the USB 2.0 specification and in the
- * Wireless USB 1.0 (spread around). Linux has several APIs in C that
- * need these:
- *
- * - the master/host side Linux-USB kernel driver API;
- * - the "usbfs" user space API; and
- * - the Linux "gadget" slave/device/peripheral side driver API.
- *
- * USB 2.0 adds an additional "On The Go" (OTG) mode, which lets systems
- * act either as a USB master/host or as a USB slave/device. That means
- * the master and slave side APIs benefit from working well together.
- *
- * There's also "Wireless USB", using low power short range radios for
- * peripheral interconnection but otherwise building on the USB framework.
- *
- * Note all descriptors are declared '__attribute__((packed))' so that:
- *
- * [a] they never get padded, either internally (USB spec writers
- * probably handled that) or externally;
- *
- * [b] so that accessing bigger-than-a-bytes fields will never
- * generate bus errors on any platform, even when the location of
- * its descriptor inside a bundle isn't "naturally aligned", and
- *
- * [c] for consistency, removing all doubt even when it appears to
- * someone that the two other points are non-issues for that
- * particular descriptor type.
- */
-
-#ifndef __LINUX_USB_CH9_H
-#define __LINUX_USB_CH9_H
-
-#include <linux/types.h> /* __u8 etc */
-#include <asm/byteorder.h> /* le16_to_cpu */
-
-/*-------------------------------------------------------------------------*/
-
-/* CONTROL REQUEST SUPPORT */
-
-/*
- * USB directions
- *
- * This bit flag is used in endpoint descriptors' bEndpointAddress field.
- * It's also one of three fields in control requests bRequestType.
- */
-#define USB_DIR_OUT 0 /* to device */
-#define USB_DIR_IN 0x80 /* to host */
-
-/*
- * USB types, the second of three bRequestType fields
- */
-#define USB_TYPE_MASK (0x03 << 5)
-#define USB_TYPE_STANDARD (0x00 << 5)
-#define USB_TYPE_CLASS (0x01 << 5)
-#define USB_TYPE_VENDOR (0x02 << 5)
-#define USB_TYPE_RESERVED (0x03 << 5)
-
-/*
- * USB recipients, the third of three bRequestType fields
- */
-#define USB_RECIP_MASK 0x1f
-#define USB_RECIP_DEVICE 0x00
-#define USB_RECIP_INTERFACE 0x01
-#define USB_RECIP_ENDPOINT 0x02
-#define USB_RECIP_OTHER 0x03
-/* From Wireless USB 1.0 */
-#define USB_RECIP_PORT 0x04
-#define USB_RECIP_RPIPE 0x05
-
-/*
- * Standard requests, for the bRequest field of a SETUP packet.
- *
- * These are qualified by the bRequestType field, so that for example
- * TYPE_CLASS or TYPE_VENDOR specific feature flags could be retrieved
- * by a GET_STATUS request.
- */
-#define USB_REQ_GET_STATUS 0x00
-#define USB_REQ_CLEAR_FEATURE 0x01
-#define USB_REQ_SET_FEATURE 0x03
-#define USB_REQ_SET_ADDRESS 0x05
-#define USB_REQ_GET_DESCRIPTOR 0x06
-#define USB_REQ_SET_DESCRIPTOR 0x07
-#define USB_REQ_GET_CONFIGURATION 0x08
-#define USB_REQ_SET_CONFIGURATION 0x09
-#define USB_REQ_GET_INTERFACE 0x0A
-#define USB_REQ_SET_INTERFACE 0x0B
-#define USB_REQ_SYNCH_FRAME 0x0C
-
-#define USB_REQ_SET_ENCRYPTION 0x0D /* Wireless USB */
-#define USB_REQ_GET_ENCRYPTION 0x0E
-#define USB_REQ_RPIPE_ABORT 0x0E
-#define USB_REQ_SET_HANDSHAKE 0x0F
-#define USB_REQ_RPIPE_RESET 0x0F
-#define USB_REQ_GET_HANDSHAKE 0x10
-#define USB_REQ_SET_CONNECTION 0x11
-#define USB_REQ_SET_SECURITY_DATA 0x12
-#define USB_REQ_GET_SECURITY_DATA 0x13
-#define USB_REQ_SET_WUSB_DATA 0x14
-#define USB_REQ_LOOPBACK_DATA_WRITE 0x15
-#define USB_REQ_LOOPBACK_DATA_READ 0x16
-#define USB_REQ_SET_INTERFACE_DS 0x17
-
-/* The Link Power Management (LPM) ECN defines USB_REQ_TEST_AND_SET command,
- * used by hubs to put ports into a new L1 suspend state, except that it
- * forgot to define its number ...
- */
-
-/*
- * USB feature flags are written using USB_REQ_{CLEAR,SET}_FEATURE, and
- * are read as a bit array returned by USB_REQ_GET_STATUS. (So there
- * are at most sixteen features of each type.) Hubs may also support a
- * new USB_REQ_TEST_AND_SET_FEATURE to put ports into L1 suspend.
- */
-#define USB_DEVICE_SELF_POWERED 0 /* (read only) */
-#define USB_DEVICE_REMOTE_WAKEUP 1 /* dev may initiate wakeup */
-#define USB_DEVICE_TEST_MODE 2 /* (wired high speed only) */
-#define USB_DEVICE_BATTERY 2 /* (wireless) */
-#define USB_DEVICE_B_HNP_ENABLE 3 /* (otg) dev may initiate HNP */
-#define USB_DEVICE_WUSB_DEVICE 3 /* (wireless)*/
-#define USB_DEVICE_A_HNP_SUPPORT 4 /* (otg) RH port supports HNP */
-#define USB_DEVICE_A_ALT_HNP_SUPPORT 5 /* (otg) other RH port does */
-#define USB_DEVICE_DEBUG_MODE 6 /* (special devices only) */
-
-/*
- * Test Mode Selectors
- * See USB 2.0 spec Table 9-7
- */
-#define TEST_J 1
-#define TEST_K 2
-#define TEST_SE0_NAK 3
-#define TEST_PACKET 4
-#define TEST_FORCE_EN 5
-
-/*
- * New Feature Selectors as added by USB 3.0
- * See USB 3.0 spec Table 9-6
- */
-#define USB_DEVICE_U1_ENABLE 48 /* dev may initiate U1 transition */
-#define USB_DEVICE_U2_ENABLE 49 /* dev may initiate U2 transition */
-#define USB_DEVICE_LTM_ENABLE 50 /* dev may send LTM */
-#define USB_INTRF_FUNC_SUSPEND 0 /* function suspend */
-
-#define USB_INTR_FUNC_SUSPEND_OPT_MASK 0xFF00
-/*
- * Suspend Options, Table 9-7 USB 3.0 spec
- */
-#define USB_INTRF_FUNC_SUSPEND_LP (1 << (8 + 0))
-#define USB_INTRF_FUNC_SUSPEND_RW (1 << (8 + 1))
-
-#define USB_ENDPOINT_HALT 0 /* IN/OUT will STALL */
-
-/* Bit array elements as returned by the USB_REQ_GET_STATUS request. */
-#define USB_DEV_STAT_U1_ENABLED 2 /* transition into U1 state */
-#define USB_DEV_STAT_U2_ENABLED 3 /* transition into U2 state */
-#define USB_DEV_STAT_LTM_ENABLED 4 /* Latency tolerance messages */
-
-/**
- * struct usb_ctrlrequest - SETUP data for a USB device control request
- * @bRequestType: matches the USB bmRequestType field
- * @bRequest: matches the USB bRequest field
- * @wValue: matches the USB wValue field (le16 byte order)
- * @wIndex: matches the USB wIndex field (le16 byte order)
- * @wLength: matches the USB wLength field (le16 byte order)
- *
- * This structure is used to send control requests to a USB device. It matches
- * the different fields of the USB 2.0 Spec section 9.3, table 9-2. See the
- * USB spec for a fuller description of the different fields, and what they are
- * used for.
- *
- * Note that the driver for any interface can issue control requests.
- * For most devices, interfaces don't coordinate with each other, so
- * such requests may be made at any time.
- */
-struct usb_ctrlrequest {
- __u8 bRequestType;
- __u8 bRequest;
- __le16 wValue;
- __le16 wIndex;
- __le16 wLength;
-} __attribute__ ((packed));
-
-/*-------------------------------------------------------------------------*/
-
-/*
- * STANDARD DESCRIPTORS ... as returned by GET_DESCRIPTOR, or
- * (rarely) accepted by SET_DESCRIPTOR.
- *
- * Note that all multi-byte values here are encoded in little endian
- * byte order "on the wire". Within the kernel and when exposed
- * through the Linux-USB APIs, they are not converted to cpu byte
- * order; it is the responsibility of the client code to do this.
- * The single exception is when device and configuration descriptors (but
- * not other descriptors) are read from usbfs (i.e. /proc/bus/usb/BBB/DDD);
- * in this case the fields are converted to host endianness by the kernel.
- */
-
-/*
- * Descriptor types ... USB 2.0 spec table 9.5
- */
-#define USB_DT_DEVICE 0x01
-#define USB_DT_CONFIG 0x02
-#define USB_DT_STRING 0x03
-#define USB_DT_INTERFACE 0x04
-#define USB_DT_ENDPOINT 0x05
-#define USB_DT_DEVICE_QUALIFIER 0x06
-#define USB_DT_OTHER_SPEED_CONFIG 0x07
-#define USB_DT_INTERFACE_POWER 0x08
-/* these are from a minor usb 2.0 revision (ECN) */
-#define USB_DT_OTG 0x09
-#define USB_DT_DEBUG 0x0a
-#define USB_DT_INTERFACE_ASSOCIATION 0x0b
-/* these are from the Wireless USB spec */
-#define USB_DT_SECURITY 0x0c
-#define USB_DT_KEY 0x0d
-#define USB_DT_ENCRYPTION_TYPE 0x0e
-#define USB_DT_BOS 0x0f
-#define USB_DT_DEVICE_CAPABILITY 0x10
-#define USB_DT_WIRELESS_ENDPOINT_COMP 0x11
-#define USB_DT_WIRE_ADAPTER 0x21
-#define USB_DT_RPIPE 0x22
-#define USB_DT_CS_RADIO_CONTROL 0x23
-/* From the T10 UAS specification */
-#define USB_DT_PIPE_USAGE 0x24
-/* From the USB 3.0 spec */
-#define USB_DT_SS_ENDPOINT_COMP 0x30
-
-/* Conventional codes for class-specific descriptors. The convention is
- * defined in the USB "Common Class" Spec (3.11). Individual class specs
- * are authoritative for their usage, not the "common class" writeup.
- */
-#define USB_DT_CS_DEVICE (USB_TYPE_CLASS | USB_DT_DEVICE)
-#define USB_DT_CS_CONFIG (USB_TYPE_CLASS | USB_DT_CONFIG)
-#define USB_DT_CS_STRING (USB_TYPE_CLASS | USB_DT_STRING)
-#define USB_DT_CS_INTERFACE (USB_TYPE_CLASS | USB_DT_INTERFACE)
-#define USB_DT_CS_ENDPOINT (USB_TYPE_CLASS | USB_DT_ENDPOINT)
-
-/* All standard descriptors have these 2 fields at the beginning */
-struct usb_descriptor_header {
- __u8 bLength;
- __u8 bDescriptorType;
-} __attribute__ ((packed));
-
-
-/*-------------------------------------------------------------------------*/
-
-/* USB_DT_DEVICE: Device descriptor */
-struct usb_device_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
-
- __le16 bcdUSB;
- __u8 bDeviceClass;
- __u8 bDeviceSubClass;
- __u8 bDeviceProtocol;
- __u8 bMaxPacketSize0;
- __le16 idVendor;
- __le16 idProduct;
- __le16 bcdDevice;
- __u8 iManufacturer;
- __u8 iProduct;
- __u8 iSerialNumber;
- __u8 bNumConfigurations;
-} __attribute__ ((packed));
-
-#define USB_DT_DEVICE_SIZE 18
-
-
-/*
- * Device and/or Interface Class codes
- * as found in bDeviceClass or bInterfaceClass
- * and defined by www.usb.org documents
- */
-#define USB_CLASS_PER_INTERFACE 0 /* for DeviceClass */
-#define USB_CLASS_AUDIO 1
-#define USB_CLASS_COMM 2
-#define USB_CLASS_HID 3
-#define USB_CLASS_PHYSICAL 5
-#define USB_CLASS_STILL_IMAGE 6
-#define USB_CLASS_PRINTER 7
-#define USB_CLASS_MASS_STORAGE 8
-#define USB_CLASS_HUB 9
-#define USB_CLASS_CDC_DATA 0x0a
-#define USB_CLASS_CSCID 0x0b /* chip+ smart card */
-#define USB_CLASS_CONTENT_SEC 0x0d /* content security */
-#define USB_CLASS_VIDEO 0x0e
-#define USB_CLASS_WIRELESS_CONTROLLER 0xe0
-#define USB_CLASS_MISC 0xef
-#define USB_CLASS_APP_SPEC 0xfe
-#define USB_CLASS_VENDOR_SPEC 0xff
-
-#define USB_SUBCLASS_VENDOR_SPEC 0xff
-
-/*-------------------------------------------------------------------------*/
-
-/* USB_DT_CONFIG: Configuration descriptor information.
- *
- * USB_DT_OTHER_SPEED_CONFIG is the same descriptor, except that the
- * descriptor type is different. Highspeed-capable devices can look
- * different depending on what speed they're currently running. Only
- * devices with a USB_DT_DEVICE_QUALIFIER have any OTHER_SPEED_CONFIG
- * descriptors.
- */
-struct usb_config_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
-
- __le16 wTotalLength;
- __u8 bNumInterfaces;
- __u8 bConfigurationValue;
- __u8 iConfiguration;
- __u8 bmAttributes;
- __u8 bMaxPower;
-} __attribute__ ((packed));
-
-#define USB_DT_CONFIG_SIZE 9
-
-/* from config descriptor bmAttributes */
-#define USB_CONFIG_ATT_ONE (1 << 7) /* must be set */
-#define USB_CONFIG_ATT_SELFPOWER (1 << 6) /* self powered */
-#define USB_CONFIG_ATT_WAKEUP (1 << 5) /* can wakeup */
-#define USB_CONFIG_ATT_BATTERY (1 << 4) /* battery powered */
-
-/*-------------------------------------------------------------------------*/
-
-/* USB_DT_STRING: String descriptor */
-struct usb_string_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
-
- __le16 wData[1]; /* UTF-16LE encoded */
-} __attribute__ ((packed));
-
-/* note that "string" zero is special, it holds language codes that
- * the device supports, not Unicode characters.
- */
-
-/*-------------------------------------------------------------------------*/
-
-/* USB_DT_INTERFACE: Interface descriptor */
-struct usb_interface_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
-
- __u8 bInterfaceNumber;
- __u8 bAlternateSetting;
- __u8 bNumEndpoints;
- __u8 bInterfaceClass;
- __u8 bInterfaceSubClass;
- __u8 bInterfaceProtocol;
- __u8 iInterface;
-} __attribute__ ((packed));
-
-#define USB_DT_INTERFACE_SIZE 9
-
-/*-------------------------------------------------------------------------*/
-
-/* USB_DT_ENDPOINT: Endpoint descriptor */
-struct usb_endpoint_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
-
- __u8 bEndpointAddress;
- __u8 bmAttributes;
- __le16 wMaxPacketSize;
- __u8 bInterval;
-
- /* NOTE: these two are _only_ in audio endpoints. */
- /* use USB_DT_ENDPOINT*_SIZE in bLength, not sizeof. */
- __u8 bRefresh;
- __u8 bSynchAddress;
-} __attribute__ ((packed));
-
-#define USB_DT_ENDPOINT_SIZE 7
-#define USB_DT_ENDPOINT_AUDIO_SIZE 9 /* Audio extension */
-
-
-/*
- * Endpoints
- */
-#define USB_ENDPOINT_NUMBER_MASK 0x0f /* in bEndpointAddress */
-#define USB_ENDPOINT_DIR_MASK 0x80
-
-#define USB_ENDPOINT_XFERTYPE_MASK 0x03 /* in bmAttributes */
-#define USB_ENDPOINT_XFER_CONTROL 0
-#define USB_ENDPOINT_XFER_ISOC 1
-#define USB_ENDPOINT_XFER_BULK 2
-#define USB_ENDPOINT_XFER_INT 3
-#define USB_ENDPOINT_MAX_ADJUSTABLE 0x80
-
-#define USB_ENDPOINT_SYNCTYPE 0x0c
-#define USB_ENDPOINT_SYNC_NONE (0 << 2)
-#define USB_ENDPOINT_SYNC_ASYNC (1 << 2)
-#define USB_ENDPOINT_SYNC_ADAPTIVE (2 << 2)
-#define USB_ENDPOINT_SYNC_SYNC (3 << 2)
-
-#define USB_ENDPOINT_USAGE_MASK 0x30
-#define USB_ENDPOINT_USAGE_DATA 0x00
-#define USB_ENDPOINT_USAGE_FEEDBACK 0x10
-#define USB_ENDPOINT_USAGE_IMPLICIT_FB 0x20 /* Implicit feedback Data endpoint */
-
-/*-------------------------------------------------------------------------*/
-
-/**
- * usb_endpoint_num - get the endpoint's number
- * @epd: endpoint to be checked
- *
- * Returns @epd's number: 0 to 15.
- */
-static inline int usb_endpoint_num(const struct usb_endpoint_descriptor *epd)
-{
- return epd->bEndpointAddress & USB_ENDPOINT_NUMBER_MASK;
-}
-
-/**
- * usb_endpoint_type - get the endpoint's transfer type
- * @epd: endpoint to be checked
- *
- * Returns one of USB_ENDPOINT_XFER_{CONTROL, ISOC, BULK, INT} according
- * to @epd's transfer type.
- */
-static inline int usb_endpoint_type(const struct usb_endpoint_descriptor *epd)
-{
- return epd->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK;
-}
-
-/**
- * usb_endpoint_dir_in - check if the endpoint has IN direction
- * @epd: endpoint to be checked
- *
- * Returns true if the endpoint is of type IN, otherwise it returns false.
- */
-static inline int usb_endpoint_dir_in(const struct usb_endpoint_descriptor *epd)
-{
- return ((epd->bEndpointAddress & USB_ENDPOINT_DIR_MASK) == USB_DIR_IN);
-}
-
-/**
- * usb_endpoint_dir_out - check if the endpoint has OUT direction
- * @epd: endpoint to be checked
- *
- * Returns true if the endpoint is of type OUT, otherwise it returns false.
- */
-static inline int usb_endpoint_dir_out(
- const struct usb_endpoint_descriptor *epd)
-{
- return ((epd->bEndpointAddress & USB_ENDPOINT_DIR_MASK) == USB_DIR_OUT);
-}
-
-/**
- * usb_endpoint_xfer_bulk - check if the endpoint has bulk transfer type
- * @epd: endpoint to be checked
- *
- * Returns true if the endpoint is of type bulk, otherwise it returns false.
- */
-static inline int usb_endpoint_xfer_bulk(
- const struct usb_endpoint_descriptor *epd)
-{
- return ((epd->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) ==
- USB_ENDPOINT_XFER_BULK);
-}
-
-/**
- * usb_endpoint_xfer_control - check if the endpoint has control transfer type
- * @epd: endpoint to be checked
- *
- * Returns true if the endpoint is of type control, otherwise it returns false.
- */
-static inline int usb_endpoint_xfer_control(
- const struct usb_endpoint_descriptor *epd)
-{
- return ((epd->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) ==
- USB_ENDPOINT_XFER_CONTROL);
-}
-
-/**
- * usb_endpoint_xfer_int - check if the endpoint has interrupt transfer type
- * @epd: endpoint to be checked
- *
- * Returns true if the endpoint is of type interrupt, otherwise it returns
- * false.
- */
-static inline int usb_endpoint_xfer_int(
- const struct usb_endpoint_descriptor *epd)
-{
- return ((epd->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) ==
- USB_ENDPOINT_XFER_INT);
-}
-
-/**
- * usb_endpoint_xfer_isoc - check if the endpoint has isochronous transfer type
- * @epd: endpoint to be checked
- *
- * Returns true if the endpoint is of type isochronous, otherwise it returns
- * false.
- */
-static inline int usb_endpoint_xfer_isoc(
- const struct usb_endpoint_descriptor *epd)
-{
- return ((epd->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) ==
- USB_ENDPOINT_XFER_ISOC);
-}
-
-/**
- * usb_endpoint_is_bulk_in - check if the endpoint is bulk IN
- * @epd: endpoint to be checked
- *
- * Returns true if the endpoint has bulk transfer type and IN direction,
- * otherwise it returns false.
- */
-static inline int usb_endpoint_is_bulk_in(
- const struct usb_endpoint_descriptor *epd)
-{
- return usb_endpoint_xfer_bulk(epd) && usb_endpoint_dir_in(epd);
-}
-
-/**
- * usb_endpoint_is_bulk_out - check if the endpoint is bulk OUT
- * @epd: endpoint to be checked
- *
- * Returns true if the endpoint has bulk transfer type and OUT direction,
- * otherwise it returns false.
- */
-static inline int usb_endpoint_is_bulk_out(
- const struct usb_endpoint_descriptor *epd)
-{
- return usb_endpoint_xfer_bulk(epd) && usb_endpoint_dir_out(epd);
-}
-
-/**
- * usb_endpoint_is_int_in - check if the endpoint is interrupt IN
- * @epd: endpoint to be checked
- *
- * Returns true if the endpoint has interrupt transfer type and IN direction,
- * otherwise it returns false.
- */
-static inline int usb_endpoint_is_int_in(
- const struct usb_endpoint_descriptor *epd)
-{
- return usb_endpoint_xfer_int(epd) && usb_endpoint_dir_in(epd);
-}
-
-/**
- * usb_endpoint_is_int_out - check if the endpoint is interrupt OUT
- * @epd: endpoint to be checked
- *
- * Returns true if the endpoint has interrupt transfer type and OUT direction,
- * otherwise it returns false.
- */
-static inline int usb_endpoint_is_int_out(
- const struct usb_endpoint_descriptor *epd)
-{
- return usb_endpoint_xfer_int(epd) && usb_endpoint_dir_out(epd);
-}
-
-/**
- * usb_endpoint_is_isoc_in - check if the endpoint is isochronous IN
- * @epd: endpoint to be checked
- *
- * Returns true if the endpoint has isochronous transfer type and IN direction,
- * otherwise it returns false.
- */
-static inline int usb_endpoint_is_isoc_in(
- const struct usb_endpoint_descriptor *epd)
-{
- return usb_endpoint_xfer_isoc(epd) && usb_endpoint_dir_in(epd);
-}
-
-/**
- * usb_endpoint_is_isoc_out - check if the endpoint is isochronous OUT
- * @epd: endpoint to be checked
- *
- * Returns true if the endpoint has isochronous transfer type and OUT direction,
- * otherwise it returns false.
- */
-static inline int usb_endpoint_is_isoc_out(
- const struct usb_endpoint_descriptor *epd)
-{
- return usb_endpoint_xfer_isoc(epd) && usb_endpoint_dir_out(epd);
-}
-
-/**
- * usb_endpoint_maxp - get endpoint's max packet size
- * @epd: endpoint to be checked
- *
- * Returns @epd's max packet
- */
-static inline int usb_endpoint_maxp(const struct usb_endpoint_descriptor *epd)
-{
- return __le16_to_cpu(epd->wMaxPacketSize);
-}
-
-/*-------------------------------------------------------------------------*/
-
-/* USB_DT_SS_ENDPOINT_COMP: SuperSpeed Endpoint Companion descriptor */
-struct usb_ss_ep_comp_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
-
- __u8 bMaxBurst;
- __u8 bmAttributes;
- __le16 wBytesPerInterval;
-} __attribute__ ((packed));
-
-#define USB_DT_SS_EP_COMP_SIZE 6
-
-/* Bits 4:0 of bmAttributes if this is a bulk endpoint */
-static inline int
-usb_ss_max_streams(const struct usb_ss_ep_comp_descriptor *comp)
-{
- int max_streams;
-
- if (!comp)
- return 0;
-
- max_streams = comp->bmAttributes & 0x1f;
-
- if (!max_streams)
- return 0;
-
- max_streams = 1 << max_streams;
-
- return max_streams;
-}
-
-/* Bits 1:0 of bmAttributes if this is an isoc endpoint */
-#define USB_SS_MULT(p) (1 + ((p) & 0x3))
-
-/*-------------------------------------------------------------------------*/
-
-/* USB_DT_DEVICE_QUALIFIER: Device Qualifier descriptor */
-struct usb_qualifier_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
-
- __le16 bcdUSB;
- __u8 bDeviceClass;
- __u8 bDeviceSubClass;
- __u8 bDeviceProtocol;
- __u8 bMaxPacketSize0;
- __u8 bNumConfigurations;
- __u8 bRESERVED;
-} __attribute__ ((packed));
-
-
-/*-------------------------------------------------------------------------*/
-
-/* USB_DT_OTG (from OTG 1.0a supplement) */
-struct usb_otg_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
-
- __u8 bmAttributes; /* support for HNP, SRP, etc */
-} __attribute__ ((packed));
-
-/* from usb_otg_descriptor.bmAttributes */
-#define USB_OTG_SRP (1 << 0)
-#define USB_OTG_HNP (1 << 1) /* swap host/device roles */
-
-/*-------------------------------------------------------------------------*/
-
-/* USB_DT_DEBUG: for special highspeed devices, replacing serial console */
-struct usb_debug_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
-
- /* bulk endpoints with 8 byte maxpacket */
- __u8 bDebugInEndpoint;
- __u8 bDebugOutEndpoint;
-} __attribute__((packed));
-
-/*-------------------------------------------------------------------------*/
-
-/* USB_DT_INTERFACE_ASSOCIATION: groups interfaces */
-struct usb_interface_assoc_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
-
- __u8 bFirstInterface;
- __u8 bInterfaceCount;
- __u8 bFunctionClass;
- __u8 bFunctionSubClass;
- __u8 bFunctionProtocol;
- __u8 iFunction;
-} __attribute__ ((packed));
-
-
-/*-------------------------------------------------------------------------*/
-
-/* USB_DT_SECURITY: group of wireless security descriptors, including
- * encryption types available for setting up a CC/association.
- */
-struct usb_security_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
-
- __le16 wTotalLength;
- __u8 bNumEncryptionTypes;
-} __attribute__((packed));
-
-/*-------------------------------------------------------------------------*/
-
-/* USB_DT_KEY: used with {GET,SET}_SECURITY_DATA; only public keys
- * may be retrieved.
- */
-struct usb_key_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
-
- __u8 tTKID[3];
- __u8 bReserved;
- __u8 bKeyData[0];
-} __attribute__((packed));
-
-/*-------------------------------------------------------------------------*/
-
-/* USB_DT_ENCRYPTION_TYPE: bundled in DT_SECURITY groups */
-struct usb_encryption_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
-
- __u8 bEncryptionType;
-#define USB_ENC_TYPE_UNSECURE 0
-#define USB_ENC_TYPE_WIRED 1 /* non-wireless mode */
-#define USB_ENC_TYPE_CCM_1 2 /* aes128/cbc session */
-#define USB_ENC_TYPE_RSA_1 3 /* rsa3072/sha1 auth */
- __u8 bEncryptionValue; /* use in SET_ENCRYPTION */
- __u8 bAuthKeyIndex;
-} __attribute__((packed));
-
-
-/*-------------------------------------------------------------------------*/
-
-/* USB_DT_BOS: group of device-level capabilities */
-struct usb_bos_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
-
- __le16 wTotalLength;
- __u8 bNumDeviceCaps;
-} __attribute__((packed));
-
-#define USB_DT_BOS_SIZE 5
-/*-------------------------------------------------------------------------*/
-
-/* USB_DT_DEVICE_CAPABILITY: grouped with BOS */
-struct usb_dev_cap_header {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDevCapabilityType;
-} __attribute__((packed));
-
-#define USB_CAP_TYPE_WIRELESS_USB 1
-
-struct usb_wireless_cap_descriptor { /* Ultra Wide Band */
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDevCapabilityType;
-
- __u8 bmAttributes;
-#define USB_WIRELESS_P2P_DRD (1 << 1)
-#define USB_WIRELESS_BEACON_MASK (3 << 2)
-#define USB_WIRELESS_BEACON_SELF (1 << 2)
-#define USB_WIRELESS_BEACON_DIRECTED (2 << 2)
-#define USB_WIRELESS_BEACON_NONE (3 << 2)
- __le16 wPHYRates; /* bit rates, Mbps */
-#define USB_WIRELESS_PHY_53 (1 << 0) /* always set */
-#define USB_WIRELESS_PHY_80 (1 << 1)
-#define USB_WIRELESS_PHY_107 (1 << 2) /* always set */
-#define USB_WIRELESS_PHY_160 (1 << 3)
-#define USB_WIRELESS_PHY_200 (1 << 4) /* always set */
-#define USB_WIRELESS_PHY_320 (1 << 5)
-#define USB_WIRELESS_PHY_400 (1 << 6)
-#define USB_WIRELESS_PHY_480 (1 << 7)
- __u8 bmTFITXPowerInfo; /* TFI power levels */
- __u8 bmFFITXPowerInfo; /* FFI power levels */
- __le16 bmBandGroup;
- __u8 bReserved;
-} __attribute__((packed));
-
-/* USB 2.0 Extension descriptor */
-#define USB_CAP_TYPE_EXT 2
-
-struct usb_ext_cap_descriptor { /* Link Power Management */
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDevCapabilityType;
- __le32 bmAttributes;
-#define USB_LPM_SUPPORT (1 << 1) /* supports LPM */
-#define USB_BESL_SUPPORT (1 << 2) /* supports BESL */
-#define USB_BESL_BASELINE_VALID (1 << 3) /* Baseline BESL valid*/
-#define USB_BESL_DEEP_VALID (1 << 4) /* Deep BESL valid */
-#define USB_GET_BESL_BASELINE(p) (((p) & (0xf << 8)) >> 8)
-#define USB_GET_BESL_DEEP(p) (((p) & (0xf << 12)) >> 12)
-} __attribute__((packed));
-
-#define USB_DT_USB_EXT_CAP_SIZE 7
-
-/*
- * SuperSpeed USB Capability descriptor: Defines the set of SuperSpeed USB
- * specific device level capabilities
- */
-#define USB_SS_CAP_TYPE 3
-struct usb_ss_cap_descriptor { /* Link Power Management */
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDevCapabilityType;
- __u8 bmAttributes;
-#define USB_LTM_SUPPORT (1 << 1) /* supports LTM */
- __le16 wSpeedSupported;
-#define USB_LOW_SPEED_OPERATION (1) /* Low speed operation */
-#define USB_FULL_SPEED_OPERATION (1 << 1) /* Full speed operation */
-#define USB_HIGH_SPEED_OPERATION (1 << 2) /* High speed operation */
-#define USB_5GBPS_OPERATION (1 << 3) /* Operation at 5Gbps */
- __u8 bFunctionalitySupport;
- __u8 bU1devExitLat;
- __le16 bU2DevExitLat;
-} __attribute__((packed));
-
-#define USB_DT_USB_SS_CAP_SIZE 10
-
-/*
- * Container ID Capability descriptor: Defines the instance unique ID used to
- * identify the instance across all operating modes
- */
-#define CONTAINER_ID_TYPE 4
-struct usb_ss_container_id_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDevCapabilityType;
- __u8 bReserved;
- __u8 ContainerID[16]; /* 128-bit number */
-} __attribute__((packed));
-
-#define USB_DT_USB_SS_CONTN_ID_SIZE 20
-/*-------------------------------------------------------------------------*/
-
-/* USB_DT_WIRELESS_ENDPOINT_COMP: companion descriptor associated with
- * each endpoint descriptor for a wireless device
- */
-struct usb_wireless_ep_comp_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
-
- __u8 bMaxBurst;
- __u8 bMaxSequence;
- __le16 wMaxStreamDelay;
- __le16 wOverTheAirPacketSize;
- __u8 bOverTheAirInterval;
- __u8 bmCompAttributes;
-#define USB_ENDPOINT_SWITCH_MASK 0x03 /* in bmCompAttributes */
-#define USB_ENDPOINT_SWITCH_NO 0
-#define USB_ENDPOINT_SWITCH_SWITCH 1
-#define USB_ENDPOINT_SWITCH_SCALE 2
-} __attribute__((packed));
-
-/*-------------------------------------------------------------------------*/
-
-/* USB_REQ_SET_HANDSHAKE is a four-way handshake used between a wireless
- * host and a device for connection set up, mutual authentication, and
- * exchanging short lived session keys. The handshake depends on a CC.
- */
-struct usb_handshake {
- __u8 bMessageNumber;
- __u8 bStatus;
- __u8 tTKID[3];
- __u8 bReserved;
- __u8 CDID[16];
- __u8 nonce[16];
- __u8 MIC[8];
-} __attribute__((packed));
-
-/*-------------------------------------------------------------------------*/
-
-/* USB_REQ_SET_CONNECTION modifies or revokes a connection context (CC).
- * A CC may also be set up using non-wireless secure channels (including
- * wired USB!), and some devices may support CCs with multiple hosts.
- */
-struct usb_connection_context {
- __u8 CHID[16]; /* persistent host id */
- __u8 CDID[16]; /* device id (unique w/in host context) */
- __u8 CK[16]; /* connection key */
-} __attribute__((packed));
-
-/*-------------------------------------------------------------------------*/
-
-/* USB 2.0 defines three speeds, here's how Linux identifies them */
-
-enum usb_device_speed {
- USB_SPEED_UNKNOWN = 0, /* enumerating */
- USB_SPEED_LOW, USB_SPEED_FULL, /* usb 1.1 */
- USB_SPEED_HIGH, /* usb 2.0 */
- USB_SPEED_WIRELESS, /* wireless (usb 2.5) */
- USB_SPEED_SUPER, /* usb 3.0 */
-};
-
-#ifdef __KERNEL__
-
-/**
- * usb_speed_string() - Returns human readable-name of the speed.
- * @speed: The speed to return human-readable name for. If it's not
- * any of the speeds defined in usb_device_speed enum, string for
- * USB_SPEED_UNKNOWN will be returned.
- */
-extern const char *usb_speed_string(enum usb_device_speed speed);
-
-#endif
-
-enum usb_device_state {
- /* NOTATTACHED isn't in the USB spec, and this state acts
- * the same as ATTACHED ... but it's clearer this way.
- */
- USB_STATE_NOTATTACHED = 0,
-
- /* chapter 9 and authentication (wireless) device states */
- USB_STATE_ATTACHED,
- USB_STATE_POWERED, /* wired */
- USB_STATE_RECONNECTING, /* auth */
- USB_STATE_UNAUTHENTICATED, /* auth */
- USB_STATE_DEFAULT, /* limited function */
- USB_STATE_ADDRESS,
- USB_STATE_CONFIGURED, /* most functions */
-
- USB_STATE_SUSPENDED
-
- /* NOTE: there are actually four different SUSPENDED
- * states, returning to POWERED, DEFAULT, ADDRESS, or
- * CONFIGURED respectively when SOF tokens flow again.
- * At this level there's no difference between L1 and L2
- * suspend states. (L2 being original USB 1.1 suspend.)
- */
-};
-
-/*-------------------------------------------------------------------------*/
-
-/*
- * As per USB compliance update, a device that is actively drawing
- * more than 100mA from USB must report itself as bus-powered in
- * the GetStatus(DEVICE) call.
- * http://compliance.usb.org/index.asp?UpdateFile=Electrical&Format=Standard#34
- */
-#define USB_SELF_POWER_VBUS_MAX_DRAW 100
-
-#endif /* __LINUX_USB_CH9_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/composite.h b/ANDROID_3.4.5/include/linux/usb/composite.h
deleted file mode 100644
index 6938a860..00000000
--- a/ANDROID_3.4.5/include/linux/usb/composite.h
+++ /dev/null
@@ -1,388 +0,0 @@
-/*
- * composite.h -- framework for usb gadgets which are composite devices
- *
- * Copyright (C) 2006-2008 David Brownell
- *
- * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef __LINUX_USB_COMPOSITE_H
-#define __LINUX_USB_COMPOSITE_H
-
-/*
- * This framework is an optional layer on top of the USB Gadget interface,
- * making it easier to build (a) Composite devices, supporting multiple
- * functions within any single configuration, and (b) Multi-configuration
- * devices, also supporting multiple functions but without necessarily
- * having more than one function per configuration.
- *
- * Example: a device with a single configuration supporting both network
- * link and mass storage functions is a composite device. Those functions
- * might alternatively be packaged in individual configurations, but in
- * the composite model the host can use both functions at the same time.
- */
-
-#include <linux/usb/ch9.h>
-#include <linux/usb/gadget.h>
-
-/*
- * USB function drivers should return USB_GADGET_DELAYED_STATUS if they
- * wish to delay the data/status stages of the control transfer till they
- * are ready. The control transfer will then be kept from completing till
- * all the function drivers that requested for USB_GADGET_DELAYED_STAUS
- * invoke usb_composite_setup_continue().
- */
-#define USB_GADGET_DELAYED_STATUS 0x7fff /* Impossibly large value */
-
-struct usb_configuration;
-
-/**
- * struct usb_function - describes one function of a configuration
- * @name: For diagnostics, identifies the function.
- * @strings: tables of strings, keyed by identifiers assigned during bind()
- * and by language IDs provided in control requests
- * @descriptors: Table of full (or low) speed descriptors, using interface and
- * string identifiers assigned during @bind(). If this pointer is null,
- * the function will not be available at full speed (or at low speed).
- * @hs_descriptors: Table of high speed descriptors, using interface and
- * string identifiers assigned during @bind(). If this pointer is null,
- * the function will not be available at high speed.
- * @ss_descriptors: Table of super speed descriptors, using interface and
- * string identifiers assigned during @bind(). If this
- * pointer is null after initiation, the function will not
- * be available at super speed.
- * @config: assigned when @usb_add_function() is called; this is the
- * configuration with which this function is associated.
- * @bind: Before the gadget can register, all of its functions bind() to the
- * available resources including string and interface identifiers used
- * in interface or class descriptors; endpoints; I/O buffers; and so on.
- * @unbind: Reverses @bind; called as a side effect of unregistering the
- * driver which added this function.
- * @set_alt: (REQUIRED) Reconfigures altsettings; function drivers may
- * initialize usb_ep.driver data at this time (when it is used).
- * Note that setting an interface to its current altsetting resets
- * interface state, and that all interfaces have a disabled state.
- * @get_alt: Returns the active altsetting. If this is not provided,
- * then only altsetting zero is supported.
- * @disable: (REQUIRED) Indicates the function should be disabled. Reasons
- * include host resetting or reconfiguring the gadget, and disconnection.
- * @setup: Used for interface-specific control requests.
- * @suspend: Notifies functions when the host stops sending USB traffic.
- * @resume: Notifies functions when the host restarts USB traffic.
- * @get_status: Returns function status as a reply to
- * GetStatus() request when the recepient is Interface.
- * @func_suspend: callback to be called when
- * SetFeature(FUNCTION_SUSPEND) is reseived
- *
- * A single USB function uses one or more interfaces, and should in most
- * cases support operation at both full and high speeds. Each function is
- * associated by @usb_add_function() with a one configuration; that function
- * causes @bind() to be called so resources can be allocated as part of
- * setting up a gadget driver. Those resources include endpoints, which
- * should be allocated using @usb_ep_autoconfig().
- *
- * To support dual speed operation, a function driver provides descriptors
- * for both high and full speed operation. Except in rare cases that don't
- * involve bulk endpoints, each speed needs different endpoint descriptors.
- *
- * Function drivers choose their own strategies for managing instance data.
- * The simplest strategy just declares it "static', which means the function
- * can only be activated once. If the function needs to be exposed in more
- * than one configuration at a given speed, it needs to support multiple
- * usb_function structures (one for each configuration).
- *
- * A more complex strategy might encapsulate a @usb_function structure inside
- * a driver-specific instance structure to allows multiple activations. An
- * example of multiple activations might be a CDC ACM function that supports
- * two or more distinct instances within the same configuration, providing
- * several independent logical data links to a USB host.
- */
-struct usb_function {
- const char *name;
- struct usb_gadget_strings **strings;
- struct usb_descriptor_header **descriptors;
- struct usb_descriptor_header **hs_descriptors;
- struct usb_descriptor_header **ss_descriptors;
-
- struct usb_configuration *config;
-
- /* REVISIT: bind() functions can be marked __init, which
- * makes trouble for section mismatch analysis. See if
- * we can't restructure things to avoid mismatching.
- * Related: unbind() may kfree() but bind() won't...
- */
-
- /* configuration management: bind/unbind */
- int (*bind)(struct usb_configuration *,
- struct usb_function *);
- void (*unbind)(struct usb_configuration *,
- struct usb_function *);
-
- /* runtime state management */
- int (*set_alt)(struct usb_function *,
- unsigned interface, unsigned alt);
- int (*get_alt)(struct usb_function *,
- unsigned interface);
- void (*disable)(struct usb_function *);
- int (*setup)(struct usb_function *,
- const struct usb_ctrlrequest *);
- void (*suspend)(struct usb_function *);
- void (*resume)(struct usb_function *);
-
- /* USB 3.0 additions */
- int (*get_status)(struct usb_function *);
- int (*func_suspend)(struct usb_function *,
- u8 suspend_opt);
- /* private: */
- /* internals */
- struct list_head list;
- DECLARE_BITMAP(endpoints, 32);
-};
-
-int usb_add_function(struct usb_configuration *, struct usb_function *);
-
-int usb_function_deactivate(struct usb_function *);
-int usb_function_activate(struct usb_function *);
-
-int usb_interface_id(struct usb_configuration *, struct usb_function *);
-
-int config_ep_by_speed(struct usb_gadget *g, struct usb_function *f,
- struct usb_ep *_ep);
-
-#define MAX_CONFIG_INTERFACES 16 /* arbitrary; max 255 */
-
-/**
- * struct usb_configuration - represents one gadget configuration
- * @label: For diagnostics, describes the configuration.
- * @strings: Tables of strings, keyed by identifiers assigned during @bind()
- * and by language IDs provided in control requests.
- * @descriptors: Table of descriptors preceding all function descriptors.
- * Examples include OTG and vendor-specific descriptors.
- * @unbind: Reverses @bind; called as a side effect of unregistering the
- * driver which added this configuration.
- * @setup: Used to delegate control requests that aren't handled by standard
- * device infrastructure or directed at a specific interface.
- * @bConfigurationValue: Copied into configuration descriptor.
- * @iConfiguration: Copied into configuration descriptor.
- * @bmAttributes: Copied into configuration descriptor.
- * @bMaxPower: Copied into configuration descriptor.
- * @cdev: assigned by @usb_add_config() before calling @bind(); this is
- * the device associated with this configuration.
- *
- * Configurations are building blocks for gadget drivers structured around
- * function drivers. Simple USB gadgets require only one function and one
- * configuration, and handle dual-speed hardware by always providing the same
- * functionality. Slightly more complex gadgets may have more than one
- * single-function configuration at a given speed; or have configurations
- * that only work at one speed.
- *
- * Composite devices are, by definition, ones with configurations which
- * include more than one function.
- *
- * The lifecycle of a usb_configuration includes allocation, initialization
- * of the fields described above, and calling @usb_add_config() to set up
- * internal data and bind it to a specific device. The configuration's
- * @bind() method is then used to initialize all the functions and then
- * call @usb_add_function() for them.
- *
- * Those functions would normally be independent of each other, but that's
- * not mandatory. CDC WMC devices are an example where functions often
- * depend on other functions, with some functions subsidiary to others.
- * Such interdependency may be managed in any way, so long as all of the
- * descriptors complete by the time the composite driver returns from
- * its bind() routine.
- */
-struct usb_configuration {
- const char *label;
- struct usb_gadget_strings **strings;
- const struct usb_descriptor_header **descriptors;
-
- /* REVISIT: bind() functions can be marked __init, which
- * makes trouble for section mismatch analysis. See if
- * we can't restructure things to avoid mismatching...
- */
-
- /* configuration management: unbind/setup */
- void (*unbind)(struct usb_configuration *);
- int (*setup)(struct usb_configuration *,
- const struct usb_ctrlrequest *);
-
- /* fields in the config descriptor */
- u8 bConfigurationValue;
- u8 iConfiguration;
- u8 bmAttributes;
- u8 bMaxPower;
-
- struct usb_composite_dev *cdev;
-
- /* private: */
- /* internals */
- struct list_head list;
- struct list_head functions;
- u8 next_interface_id;
- unsigned superspeed:1;
- unsigned highspeed:1;
- unsigned fullspeed:1;
- struct usb_function *interface[MAX_CONFIG_INTERFACES];
-};
-
-int usb_add_config(struct usb_composite_dev *,
- struct usb_configuration *,
- int (*)(struct usb_configuration *));
-
-int usb_remove_config(struct usb_composite_dev *,
- struct usb_configuration *);
-
-/**
- * struct usb_composite_driver - groups configurations into a gadget
- * @name: For diagnostics, identifies the driver.
- * @iProduct: Used as iProduct override if @dev->iProduct is not set.
- * If NULL value of @name is taken.
- * @iManufacturer: Used as iManufacturer override if @dev->iManufacturer is
- * not set. If NULL a default "<system> <release> with <udc>" value
- * will be used.
- * @dev: Template descriptor for the device, including default device
- * identifiers.
- * @strings: tables of strings, keyed by identifiers assigned during bind()
- * and language IDs provided in control requests
- * @max_speed: Highest speed the driver supports.
- * @needs_serial: set to 1 if the gadget needs userspace to provide
- * a serial number. If one is not provided, warning will be printed.
- * @unbind: Reverses bind; called as a side effect of unregistering
- * this driver.
- * @disconnect: optional driver disconnect method
- * @suspend: Notifies when the host stops sending USB traffic,
- * after function notifications
- * @resume: Notifies configuration when the host restarts USB traffic,
- * before function notifications
- *
- * Devices default to reporting self powered operation. Devices which rely
- * on bus powered operation should report this in their @bind() method.
- *
- * Before returning from bind, various fields in the template descriptor
- * may be overridden. These include the idVendor/idProduct/bcdDevice values
- * normally to bind the appropriate host side driver, and the three strings
- * (iManufacturer, iProduct, iSerialNumber) normally used to provide user
- * meaningful device identifiers. (The strings will not be defined unless
- * they are defined in @dev and @strings.) The correct ep0 maxpacket size
- * is also reported, as defined by the underlying controller driver.
- */
-struct usb_composite_driver {
- const char *name;
- const char *iProduct;
- const char *iManufacturer;
- const struct usb_device_descriptor *dev;
- struct usb_gadget_strings **strings;
- enum usb_device_speed max_speed;
- unsigned needs_serial:1;
-
- int (*unbind)(struct usb_composite_dev *);
-
- void (*disconnect)(struct usb_composite_dev *);
-
- /* global suspend hooks */
- void (*suspend)(struct usb_composite_dev *);
- void (*resume)(struct usb_composite_dev *);
-};
-
-extern int usb_composite_probe(struct usb_composite_driver *driver,
- int (*bind)(struct usb_composite_dev *cdev));
-extern void usb_composite_unregister(struct usb_composite_driver *driver);
-extern void usb_composite_setup_continue(struct usb_composite_dev *cdev);
-
-
-/**
- * struct usb_composite_device - represents one composite usb gadget
- * @gadget: read-only, abstracts the gadget's usb peripheral controller
- * @req: used for control responses; buffer is pre-allocated
- * @bufsiz: size of buffer pre-allocated in @req
- * @config: the currently active configuration
- *
- * One of these devices is allocated and initialized before the
- * associated device driver's bind() is called.
- *
- * OPEN ISSUE: it appears that some WUSB devices will need to be
- * built by combining a normal (wired) gadget with a wireless one.
- * This revision of the gadget framework should probably try to make
- * sure doing that won't hurt too much.
- *
- * One notion for how to handle Wireless USB devices involves:
- * (a) a second gadget here, discovery mechanism TBD, but likely
- * needing separate "register/unregister WUSB gadget" calls;
- * (b) updates to usb_gadget to include flags "is it wireless",
- * "is it wired", plus (presumably in a wrapper structure)
- * bandgroup and PHY info;
- * (c) presumably a wireless_ep wrapping a usb_ep, and reporting
- * wireless-specific parameters like maxburst and maxsequence;
- * (d) configurations that are specific to wireless links;
- * (e) function drivers that understand wireless configs and will
- * support wireless for (additional) function instances;
- * (f) a function to support association setup (like CBAF), not
- * necessarily requiring a wireless adapter;
- * (g) composite device setup that can create one or more wireless
- * configs, including appropriate association setup support;
- * (h) more, TBD.
- */
-struct usb_composite_dev {
- struct usb_gadget *gadget;
- struct usb_request *req;
- unsigned bufsiz;
-
- struct usb_configuration *config;
-
- /* private: */
- /* internals */
- unsigned int suspended:1;
- struct usb_device_descriptor desc;
- struct list_head configs;
- struct usb_composite_driver *driver;
- u8 next_string_id;
- u8 manufacturer_override;
- u8 product_override;
- u8 serial_override;
-
- /* the gadget driver won't enable the data pullup
- * while the deactivation count is nonzero.
- */
- unsigned deactivations;
-
- /* the composite driver won't complete the control transfer's
- * data/status stages till delayed_status is zero.
- */
- int delayed_status;
-
- /* protects deactivations and delayed_status counts*/
- spinlock_t lock;
-};
-
-extern int usb_string_id(struct usb_composite_dev *c);
-extern int usb_string_ids_tab(struct usb_composite_dev *c,
- struct usb_string *str);
-extern int usb_string_ids_n(struct usb_composite_dev *c, unsigned n);
-
-
-/* messaging utils */
-#define DBG(d, fmt, args...) \
- dev_dbg(&(d)->gadget->dev , fmt , ## args)
-#define VDBG(d, fmt, args...) \
- dev_vdbg(&(d)->gadget->dev , fmt , ## args)
-#define ERROR(d, fmt, args...) \
- dev_err(&(d)->gadget->dev , fmt , ## args)
-#define WARNING(d, fmt, args...) \
- dev_warn(&(d)->gadget->dev , fmt , ## args)
-#define INFO(d, fmt, args...) \
- dev_info(&(d)->gadget->dev , fmt , ## args)
-
-#endif /* __LINUX_USB_COMPOSITE_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/ehci_def.h b/ANDROID_3.4.5/include/linux/usb/ehci_def.h
deleted file mode 100644
index 7cc95ee3..00000000
--- a/ANDROID_3.4.5/include/linux/usb/ehci_def.h
+++ /dev/null
@@ -1,225 +0,0 @@
-/*
- * Copyright (c) 2001-2002 by David Brownell
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef __LINUX_USB_EHCI_DEF_H
-#define __LINUX_USB_EHCI_DEF_H
-
-/* EHCI register interface, corresponds to EHCI Revision 0.95 specification */
-
-/* Section 2.2 Host Controller Capability Registers */
-struct ehci_caps {
- /* these fields are specified as 8 and 16 bit registers,
- * but some hosts can't perform 8 or 16 bit PCI accesses.
- * some hosts treat caplength and hciversion as parts of a 32-bit
- * register, others treat them as two separate registers, this
- * affects the memory map for big endian controllers.
- */
- u32 hc_capbase;
-#define HC_LENGTH(ehci, p) (0x00ff&((p) >> /* bits 7:0 / offset 00h */ \
- (ehci_big_endian_capbase(ehci) ? 24 : 0)))
-#define HC_VERSION(ehci, p) (0xffff&((p) >> /* bits 31:16 / offset 02h */ \
- (ehci_big_endian_capbase(ehci) ? 0 : 16)))
- u32 hcs_params; /* HCSPARAMS - offset 0x4 */
-#define HCS_DEBUG_PORT(p) (((p)>>20)&0xf) /* bits 23:20, debug port? */
-#define HCS_INDICATOR(p) ((p)&(1 << 16)) /* true: has port indicators */
-#define HCS_N_CC(p) (((p)>>12)&0xf) /* bits 15:12, #companion HCs */
-#define HCS_N_PCC(p) (((p)>>8)&0xf) /* bits 11:8, ports per CC */
-#define HCS_PORTROUTED(p) ((p)&(1 << 7)) /* true: port routing */
-#define HCS_PPC(p) ((p)&(1 << 4)) /* true: port power control */
-#define HCS_N_PORTS(p) (((p)>>0)&0xf) /* bits 3:0, ports on HC */
-
- u32 hcc_params; /* HCCPARAMS - offset 0x8 */
-/* EHCI 1.1 addendum */
-#define HCC_32FRAME_PERIODIC_LIST(p) ((p)&(1 << 19))
-#define HCC_PER_PORT_CHANGE_EVENT(p) ((p)&(1 << 18))
-#define HCC_LPM(p) ((p)&(1 << 17))
-#define HCC_HW_PREFETCH(p) ((p)&(1 << 16))
-
-#define HCC_EXT_CAPS(p) (((p)>>8)&0xff) /* for pci extended caps */
-#define HCC_ISOC_CACHE(p) ((p)&(1 << 7)) /* true: can cache isoc frame */
-#define HCC_ISOC_THRES(p) (((p)>>4)&0x7) /* bits 6:4, uframes cached */
-#define HCC_CANPARK(p) ((p)&(1 << 2)) /* true: can park on async qh */
-#define HCC_PGM_FRAMELISTLEN(p) ((p)&(1 << 1)) /* true: periodic_size changes*/
-#define HCC_64BIT_ADDR(p) ((p)&(1)) /* true: can use 64-bit addr */
- u8 portroute[8]; /* nibbles for routing - offset 0xC */
-};
-
-
-/* Section 2.3 Host Controller Operational Registers */
-struct ehci_regs {
-
- /* USBCMD: offset 0x00 */
- u32 command;
-
-/* EHCI 1.1 addendum */
-#define CMD_HIRD (0xf<<24) /* host initiated resume duration */
-#define CMD_PPCEE (1<<15) /* per port change event enable */
-#define CMD_FSP (1<<14) /* fully synchronized prefetch */
-#define CMD_ASPE (1<<13) /* async schedule prefetch enable */
-#define CMD_PSPE (1<<12) /* periodic schedule prefetch enable */
-/* 23:16 is r/w intr rate, in microframes; default "8" == 1/msec */
-#define CMD_PARK (1<<11) /* enable "park" on async qh */
-#define CMD_PARK_CNT(c) (((c)>>8)&3) /* how many transfers to park for */
-#define CMD_LRESET (1<<7) /* partial reset (no ports, etc) */
-#define CMD_IAAD (1<<6) /* "doorbell" interrupt async advance */
-#define CMD_ASE (1<<5) /* async schedule enable */
-#define CMD_PSE (1<<4) /* periodic schedule enable */
-/* 3:2 is periodic frame list size */
-#define CMD_RESET (1<<1) /* reset HC not bus */
-#define CMD_RUN (1<<0) /* start/stop HC */
-
- /* USBSTS: offset 0x04 */
- u32 status;
-#define STS_PPCE_MASK (0xff<<16) /* Per-Port change event 1-16 */
-#define STS_ASS (1<<15) /* Async Schedule Status */
-#define STS_PSS (1<<14) /* Periodic Schedule Status */
-#define STS_RECL (1<<13) /* Reclamation */
-#define STS_HALT (1<<12) /* Not running (any reason) */
-/* some bits reserved */
- /* these STS_* flags are also intr_enable bits (USBINTR) */
-#define STS_IAA (1<<5) /* Interrupted on async advance */
-#define STS_FATAL (1<<4) /* such as some PCI access errors */
-#define STS_FLR (1<<3) /* frame list rolled over */
-#define STS_PCD (1<<2) /* port change detect */
-#define STS_ERR (1<<1) /* "error" completion (overflow, ...) */
-#define STS_INT (1<<0) /* "normal" completion (short, ...) */
-
- /* USBINTR: offset 0x08 */
- u32 intr_enable;
-
- /* FRINDEX: offset 0x0C */
- u32 frame_index; /* current microframe number */
- /* CTRLDSSEGMENT: offset 0x10 */
- u32 segment; /* address bits 63:32 if needed */
- /* PERIODICLISTBASE: offset 0x14 */
- u32 frame_list; /* points to periodic list */
- /* ASYNCLISTADDR: offset 0x18 */
- u32 async_next; /* address of next async queue head */
-
- u32 reserved[9];
-
- /* CONFIGFLAG: offset 0x40 */
- u32 configured_flag;
-#define FLAG_CF (1<<0) /* true: we'll support "high speed" */
-
- /* PORTSC: offset 0x44 */
- u32 port_status[0]; /* up to N_PORTS */
-/* EHCI 1.1 addendum */
-#define PORTSC_SUSPEND_STS_ACK 0
-#define PORTSC_SUSPEND_STS_NYET 1
-#define PORTSC_SUSPEND_STS_STALL 2
-#define PORTSC_SUSPEND_STS_ERR 3
-
-#define PORT_DEV_ADDR (0x7f<<25) /* device address */
-#define PORT_SSTS (0x3<<23) /* suspend status */
-/* 31:23 reserved */
-#define PORT_WKOC_E (1<<22) /* wake on overcurrent (enable) */
-#define PORT_WKDISC_E (1<<21) /* wake on disconnect (enable) */
-#define PORT_WKCONN_E (1<<20) /* wake on connect (enable) */
-/* 19:16 for port testing */
-#define PORT_TEST(x) (((x)&0xf)<<16) /* Port Test Control */
-#define PORT_TEST_PKT PORT_TEST(0x4) /* Port Test Control - packet test */
-#define PORT_TEST_FORCE PORT_TEST(0x5) /* Port Test Control - force enable */
-#define PORT_LED_OFF (0<<14)
-#define PORT_LED_AMBER (1<<14)
-#define PORT_LED_GREEN (2<<14)
-#define PORT_LED_MASK (3<<14)
-#define PORT_OWNER (1<<13) /* true: companion hc owns this port */
-#define PORT_POWER (1<<12) /* true: has power (see PPC) */
-#define PORT_USB11(x) (((x)&(3<<10)) == (1<<10)) /* USB 1.1 device */
-/* 11:10 for detecting lowspeed devices (reset vs release ownership) */
-/* 9 reserved */
-#define PORT_LPM (1<<9) /* LPM transaction */
-#define PORT_RESET (1<<8) /* reset port */
-#define PORT_SUSPEND (1<<7) /* suspend port */
-#define PORT_RESUME (1<<6) /* resume it */
-#define PORT_OCC (1<<5) /* over current change */
-#define PORT_OC (1<<4) /* over current active */
-#define PORT_PEC (1<<3) /* port enable change */
-#define PORT_PE (1<<2) /* port enable */
-#define PORT_CSC (1<<1) /* connect status change */
-#define PORT_CONNECT (1<<0) /* device connected */
-#define PORT_RWC_BITS (PORT_CSC | PORT_PEC | PORT_OCC)
-};
-
-#define USBMODE 0x68 /* USB Device mode */
-#define USBMODE_SDIS (1<<3) /* Stream disable */
-#define USBMODE_BE (1<<2) /* BE/LE endianness select */
-#define USBMODE_CM_HC (3<<0) /* host controller mode */
-#define USBMODE_CM_IDLE (0<<0) /* idle state */
-
-/* Moorestown has some non-standard registers, partially due to the fact that
- * its EHCI controller has both TT and LPM support. HOSTPCx are extensions to
- * PORTSCx
- */
-#define HOSTPC0 0x84 /* HOSTPC extension */
-#define HOSTPC_PHCD (1<<22) /* Phy clock disable */
-#define HOSTPC_PSPD (3<<25) /* Port speed detection */
-#define USBMODE_EX 0xc8 /* USB Device mode extension */
-#define USBMODE_EX_VBPS (1<<5) /* VBus Power Select On */
-#define USBMODE_EX_HC (3<<0) /* host controller mode */
-#define TXFILLTUNING 0x24 /* TX FIFO Tuning register */
-#define TXFIFO_DEFAULT (8<<16) /* FIFO burst threshold 8 */
-
-/* Appendix C, Debug port ... intended for use with special "debug devices"
- * that can help if there's no serial console. (nonstandard enumeration.)
- */
-struct ehci_dbg_port {
- u32 control;
-#define DBGP_OWNER (1<<30)
-#define DBGP_ENABLED (1<<28)
-#define DBGP_DONE (1<<16)
-#define DBGP_INUSE (1<<10)
-#define DBGP_ERRCODE(x) (((x)>>7)&0x07)
-# define DBGP_ERR_BAD 1
-# define DBGP_ERR_SIGNAL 2
-#define DBGP_ERROR (1<<6)
-#define DBGP_GO (1<<5)
-#define DBGP_OUT (1<<4)
-#define DBGP_LEN(x) (((x)>>0)&0x0f)
- u32 pids;
-#define DBGP_PID_GET(x) (((x)>>16)&0xff)
-#define DBGP_PID_SET(data, tok) (((data)<<8)|(tok))
- u32 data03;
- u32 data47;
- u32 address;
-#define DBGP_EPADDR(dev, ep) (((dev)<<8)|(ep))
-};
-
-#ifdef CONFIG_EARLY_PRINTK_DBGP
-#include <linux/init.h>
-extern int __init early_dbgp_init(char *s);
-extern struct console early_dbgp_console;
-#endif /* CONFIG_EARLY_PRINTK_DBGP */
-
-#ifdef CONFIG_EARLY_PRINTK_DBGP
-/* Call backs from ehci host driver to ehci debug driver */
-extern int dbgp_external_startup(void);
-extern int dbgp_reset_prep(void);
-#else
-static inline int dbgp_reset_prep(void)
-{
- return 1;
-}
-static inline int dbgp_external_startup(void)
-{
- return -1;
-}
-#endif
-
-#endif /* __LINUX_USB_EHCI_DEF_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/ehci_pdriver.h b/ANDROID_3.4.5/include/linux/usb/ehci_pdriver.h
deleted file mode 100644
index 1894f42f..00000000
--- a/ANDROID_3.4.5/include/linux/usb/ehci_pdriver.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2012 Hauke Mehrtens <hauke@hauke-m.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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef __USB_CORE_EHCI_PDRIVER_H
-#define __USB_CORE_EHCI_PDRIVER_H
-
-/**
- * struct usb_ehci_pdata - platform_data for generic ehci driver
- *
- * @caps_offset: offset of the EHCI Capability Registers to the start of
- * the io memory region provided to the driver.
- * @has_tt: set to 1 if TT is integrated in root hub.
- * @port_power_on: set to 1 if the controller needs a power up after
- * initialization.
- * @port_power_off: set to 1 if the controller needs to be powered down
- * after initialization.
- *
- * These are general configuration options for the EHCI controller. All of
- * these options are activating more or less workarounds for some hardware.
- */
-struct usb_ehci_pdata {
- int caps_offset;
- unsigned has_tt:1;
- unsigned has_synopsys_hc_bug:1;
- unsigned big_endian_desc:1;
- unsigned big_endian_mmio:1;
- unsigned port_power_on:1;
- unsigned port_power_off:1;
-};
-
-#endif /* __USB_CORE_EHCI_PDRIVER_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/f_accessory.h b/ANDROID_3.4.5/include/linux/usb/f_accessory.h
deleted file mode 100644
index 61ebe0aa..00000000
--- a/ANDROID_3.4.5/include/linux/usb/f_accessory.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Gadget Function Driver for Android USB accessories
- *
- * Copyright (C) 2011 Google, Inc.
- * Author: Mike Lockwood <lockwood@android.com>
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#ifndef __LINUX_USB_F_ACCESSORY_H
-#define __LINUX_USB_F_ACCESSORY_H
-
-/* Use Google Vendor ID when in accessory mode */
-#define USB_ACCESSORY_VENDOR_ID 0x18D1
-
-
-/* Product ID to use when in accessory mode */
-#define USB_ACCESSORY_PRODUCT_ID 0x2D00
-
-/* Product ID to use when in accessory mode and adb is enabled */
-#define USB_ACCESSORY_ADB_PRODUCT_ID 0x2D01
-
-/* Indexes for strings sent by the host via ACCESSORY_SEND_STRING */
-#define ACCESSORY_STRING_MANUFACTURER 0
-#define ACCESSORY_STRING_MODEL 1
-#define ACCESSORY_STRING_DESCRIPTION 2
-#define ACCESSORY_STRING_VERSION 3
-#define ACCESSORY_STRING_URI 4
-#define ACCESSORY_STRING_SERIAL 5
-
-/* Control request for retrieving device's protocol version
- *
- * requestType: USB_DIR_IN | USB_TYPE_VENDOR
- * request: ACCESSORY_GET_PROTOCOL
- * value: 0
- * index: 0
- * data version number (16 bits little endian)
- * 1 for original accessory support
- * 2 adds HID and device to host audio support
- */
-#define ACCESSORY_GET_PROTOCOL 51
-
-/* Control request for host to send a string to the device
- *
- * requestType: USB_DIR_OUT | USB_TYPE_VENDOR
- * request: ACCESSORY_SEND_STRING
- * value: 0
- * index: string ID
- * data zero terminated UTF8 string
- *
- * The device can later retrieve these strings via the
- * ACCESSORY_GET_STRING_* ioctls
- */
-#define ACCESSORY_SEND_STRING 52
-
-/* Control request for starting device in accessory mode.
- * The host sends this after setting all its strings to the device.
- *
- * requestType: USB_DIR_OUT | USB_TYPE_VENDOR
- * request: ACCESSORY_START
- * value: 0
- * index: 0
- * data none
- */
-#define ACCESSORY_START 53
-
-/* Control request for registering a HID device.
- * Upon registering, a unique ID is sent by the accessory in the
- * value parameter. This ID will be used for future commands for
- * the device
- *
- * requestType: USB_DIR_OUT | USB_TYPE_VENDOR
- * request: ACCESSORY_REGISTER_HID_DEVICE
- * value: Accessory assigned ID for the HID device
- * index: total length of the HID report descriptor
- * data none
- */
-#define ACCESSORY_REGISTER_HID 54
-
-/* Control request for unregistering a HID device.
- *
- * requestType: USB_DIR_OUT | USB_TYPE_VENDOR
- * request: ACCESSORY_REGISTER_HID
- * value: Accessory assigned ID for the HID device
- * index: 0
- * data none
- */
-#define ACCESSORY_UNREGISTER_HID 55
-
-/* Control request for sending the HID report descriptor.
- * If the HID descriptor is longer than the endpoint zero max packet size,
- * the descriptor will be sent in multiple ACCESSORY_SET_HID_REPORT_DESC
- * commands. The data for the descriptor must be sent sequentially
- * if multiple packets are needed.
- *
- * requestType: USB_DIR_OUT | USB_TYPE_VENDOR
- * request: ACCESSORY_SET_HID_REPORT_DESC
- * value: Accessory assigned ID for the HID device
- * index: offset of data in descriptor
- * (needed when HID descriptor is too big for one packet)
- * data the HID report descriptor
- */
-#define ACCESSORY_SET_HID_REPORT_DESC 56
-
-/* Control request for sending HID events.
- *
- * requestType: USB_DIR_OUT | USB_TYPE_VENDOR
- * request: ACCESSORY_SEND_HID_EVENT
- * value: Accessory assigned ID for the HID device
- * index: 0
- * data the HID report for the event
- */
-#define ACCESSORY_SEND_HID_EVENT 57
-
-/* Control request for setting the audio mode.
- *
- * requestType: USB_DIR_OUT | USB_TYPE_VENDOR
- * request: ACCESSORY_SET_AUDIO_MODE
- * value: 0 - no audio
- * 1 - device to host, 44100 16-bit stereo PCM
- * index: 0
- * data none
- */
-#define ACCESSORY_SET_AUDIO_MODE 58
-
-/* ioctls for retrieving strings set by the host */
-#define ACCESSORY_GET_STRING_MANUFACTURER _IOW('M', 1, char[256])
-#define ACCESSORY_GET_STRING_MODEL _IOW('M', 2, char[256])
-#define ACCESSORY_GET_STRING_DESCRIPTION _IOW('M', 3, char[256])
-#define ACCESSORY_GET_STRING_VERSION _IOW('M', 4, char[256])
-#define ACCESSORY_GET_STRING_URI _IOW('M', 5, char[256])
-#define ACCESSORY_GET_STRING_SERIAL _IOW('M', 6, char[256])
-/* returns 1 if there is a start request pending */
-#define ACCESSORY_IS_START_REQUESTED _IO('M', 7)
-/* returns audio mode (set via the ACCESSORY_SET_AUDIO_MODE control request) */
-#define ACCESSORY_GET_AUDIO_MODE _IO('M', 8)
-
-#endif /* __LINUX_USB_F_ACCESSORY_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/f_mtp.h b/ANDROID_3.4.5/include/linux/usb/f_mtp.h
deleted file mode 100644
index 72a432e2..00000000
--- a/ANDROID_3.4.5/include/linux/usb/f_mtp.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Gadget Function Driver for MTP
- *
- * Copyright (C) 2010 Google, Inc.
- * Author: Mike Lockwood <lockwood@android.com>
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#ifndef __LINUX_USB_F_MTP_H
-#define __LINUX_USB_F_MTP_H
-
-#include <linux/ioctl.h>
-
-#ifdef __KERNEL__
-
-struct mtp_data_header {
- /* length of packet, including this header */
- uint32_t length;
- /* container type (2 for data packet) */
- uint16_t type;
- /* MTP command code */
- uint16_t command;
- /* MTP transaction ID */
- uint32_t transaction_id;
-};
-
-#endif /* __KERNEL__ */
-
-struct mtp_file_range {
- /* file descriptor for file to transfer */
- int fd;
- /* offset in file for start of transfer */
- loff_t offset;
- /* number of bytes to transfer */
- int64_t length;
- /* MTP command ID for data header,
- * used only for MTP_SEND_FILE_WITH_HEADER
- */
- uint16_t command;
- /* MTP transaction ID for data header,
- * used only for MTP_SEND_FILE_WITH_HEADER
- */
- uint32_t transaction_id;
-};
-
-struct mtp_event {
- /* size of the event */
- size_t length;
- /* event data to send */
- void *data;
-};
-
-/* Sends the specified file range to the host */
-#define MTP_SEND_FILE _IOW('M', 0, struct mtp_file_range)
-/* Receives data from the host and writes it to a file.
- * The file is created if it does not exist.
- */
-#define MTP_RECEIVE_FILE _IOW('M', 1, struct mtp_file_range)
-/* Sends an event to the host via the interrupt endpoint */
-#define MTP_SEND_EVENT _IOW('M', 3, struct mtp_event)
-/* Sends the specified file range to the host,
- * with a 12 byte MTP data packet header at the beginning.
- */
-#define MTP_SEND_FILE_WITH_HEADER _IOW('M', 4, struct mtp_file_range)
-
-#endif /* __LINUX_USB_F_MTP_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/functionfs.h b/ANDROID_3.4.5/include/linux/usb/functionfs.h
deleted file mode 100644
index 7587ef93..00000000
--- a/ANDROID_3.4.5/include/linux/usb/functionfs.h
+++ /dev/null
@@ -1,199 +0,0 @@
-#ifndef __LINUX_FUNCTIONFS_H__
-#define __LINUX_FUNCTIONFS_H__ 1
-
-
-#include <linux/types.h>
-#include <linux/ioctl.h>
-
-#include <linux/usb/ch9.h>
-
-
-enum {
- FUNCTIONFS_DESCRIPTORS_MAGIC = 1,
- FUNCTIONFS_STRINGS_MAGIC = 2
-};
-
-
-#ifndef __KERNEL__
-
-/* Descriptor of an non-audio endpoint */
-struct usb_endpoint_descriptor_no_audio {
- __u8 bLength;
- __u8 bDescriptorType;
-
- __u8 bEndpointAddress;
- __u8 bmAttributes;
- __le16 wMaxPacketSize;
- __u8 bInterval;
-} __attribute__((packed));
-
-
-/*
- * All numbers must be in little endian order.
- */
-
-struct usb_functionfs_descs_head {
- __le32 magic;
- __le32 length;
- __le32 fs_count;
- __le32 hs_count;
-} __attribute__((packed));
-
-/*
- * Descriptors format:
- *
- * | off | name | type | description |
- * |-----+-----------+--------------+--------------------------------------|
- * | 0 | magic | LE32 | FUNCTIONFS_{FS,HS}_DESCRIPTORS_MAGIC |
- * | 4 | length | LE32 | length of the whole data chunk |
- * | 8 | fs_count | LE32 | number of full-speed descriptors |
- * | 12 | hs_count | LE32 | number of high-speed descriptors |
- * | 16 | fs_descrs | Descriptor[] | list of full-speed descriptors |
- * | | hs_descrs | Descriptor[] | list of high-speed descriptors |
- *
- * descs are just valid USB descriptors and have the following format:
- *
- * | off | name | type | description |
- * |-----+-----------------+------+--------------------------|
- * | 0 | bLength | U8 | length of the descriptor |
- * | 1 | bDescriptorType | U8 | descriptor type |
- * | 2 | payload | | descriptor's payload |
- */
-
-struct usb_functionfs_strings_head {
- __le32 magic;
- __le32 length;
- __le32 str_count;
- __le32 lang_count;
-} __attribute__((packed));
-
-/*
- * Strings format:
- *
- * | off | name | type | description |
- * |-----+------------+-----------------------+----------------------------|
- * | 0 | magic | LE32 | FUNCTIONFS_STRINGS_MAGIC |
- * | 4 | length | LE32 | length of the data chunk |
- * | 8 | str_count | LE32 | number of strings |
- * | 12 | lang_count | LE32 | number of languages |
- * | 16 | stringtab | StringTab[lang_count] | table of strings per lang |
- *
- * For each language there is one stringtab entry (ie. there are lang_count
- * stringtab entires). Each StringTab has following format:
- *
- * | off | name | type | description |
- * |-----+---------+-------------------+------------------------------------|
- * | 0 | lang | LE16 | language code |
- * | 2 | strings | String[str_count] | array of strings in given language |
- *
- * For each string there is one strings entry (ie. there are str_count
- * string entries). Each String is a NUL terminated string encoded in
- * UTF-8.
- */
-
-#endif
-
-
-/*
- * Events are delivered on the ep0 file descriptor, when the user mode driver
- * reads from this file descriptor after writing the descriptors. Don't
- * stop polling this descriptor.
- */
-
-enum usb_functionfs_event_type {
- FUNCTIONFS_BIND,
- FUNCTIONFS_UNBIND,
-
- FUNCTIONFS_ENABLE,
- FUNCTIONFS_DISABLE,
-
- FUNCTIONFS_SETUP,
-
- FUNCTIONFS_SUSPEND,
- FUNCTIONFS_RESUME
-};
-
-/* NOTE: this structure must stay the same size and layout on
- * both 32-bit and 64-bit kernels.
- */
-struct usb_functionfs_event {
- union {
- /* SETUP: packet; DATA phase i/o precedes next event
- *(setup.bmRequestType & USB_DIR_IN) flags direction */
- struct usb_ctrlrequest setup;
- } __attribute__((packed)) u;
-
- /* enum usb_functionfs_event_type */
- __u8 type;
- __u8 _pad[3];
-} __attribute__((packed));
-
-
-/* Endpoint ioctls */
-/* The same as in gadgetfs */
-
-/* IN transfers may be reported to the gadget driver as complete
- * when the fifo is loaded, before the host reads the data;
- * OUT transfers may be reported to the host's "client" driver as
- * complete when they're sitting in the FIFO unread.
- * THIS returns how many bytes are "unclaimed" in the endpoint fifo
- * (needed for precise fault handling, when the hardware allows it)
- */
-#define FUNCTIONFS_FIFO_STATUS _IO('g', 1)
-
-/* discards any unclaimed data in the fifo. */
-#define FUNCTIONFS_FIFO_FLUSH _IO('g', 2)
-
-/* resets endpoint halt+toggle; used to implement set_interface.
- * some hardware (like pxa2xx) can't support this.
- */
-#define FUNCTIONFS_CLEAR_HALT _IO('g', 3)
-
-/* Specific for functionfs */
-
-/*
- * Returns reverse mapping of an interface. Called on EP0. If there
- * is no such interface returns -EDOM. If function is not active
- * returns -ENODEV.
- */
-#define FUNCTIONFS_INTERFACE_REVMAP _IO('g', 128)
-
-/*
- * Returns real bEndpointAddress of an endpoint. If function is not
- * active returns -ENODEV.
- */
-#define FUNCTIONFS_ENDPOINT_REVMAP _IO('g', 129)
-
-
-#ifdef __KERNEL__
-
-struct ffs_data;
-struct usb_composite_dev;
-struct usb_configuration;
-
-
-static int functionfs_init(void) __attribute__((warn_unused_result));
-static void functionfs_cleanup(void);
-
-static int functionfs_bind(struct ffs_data *ffs, struct usb_composite_dev *cdev)
- __attribute__((warn_unused_result, nonnull));
-static void functionfs_unbind(struct ffs_data *ffs)
- __attribute__((nonnull));
-
-static int functionfs_bind_config(struct usb_composite_dev *cdev,
- struct usb_configuration *c,
- struct ffs_data *ffs)
- __attribute__((warn_unused_result, nonnull));
-
-
-static int functionfs_ready_callback(struct ffs_data *ffs)
- __attribute__((warn_unused_result, nonnull));
-static void functionfs_closed_callback(struct ffs_data *ffs)
- __attribute__((nonnull));
-static int functionfs_check_dev_callback(const char *dev_name)
- __attribute__((warn_unused_result, nonnull));
-
-
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/usb/g_hid.h b/ANDROID_3.4.5/include/linux/usb/g_hid.h
deleted file mode 100644
index 50f5745d..00000000
--- a/ANDROID_3.4.5/include/linux/usb/g_hid.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * g_hid.h -- Header file for USB HID gadget driver
- *
- * Copyright (C) 2010 Fabien Chouteau <fabien.chouteau@barco.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
- */
-
-#ifndef __LINUX_USB_G_HID_H
-#define __LINUX_USB_G_HID_H
-
-struct hidg_func_descriptor {
- unsigned char subclass;
- unsigned char protocol;
- unsigned short report_length;
- unsigned short report_desc_length;
- unsigned char report_desc[];
-};
-
-#endif /* __LINUX_USB_G_HID_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/g_printer.h b/ANDROID_3.4.5/include/linux/usb/g_printer.h
deleted file mode 100644
index 6178fde5..00000000
--- a/ANDROID_3.4.5/include/linux/usb/g_printer.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * g_printer.h -- Header file for USB Printer gadget driver
- *
- * Copyright (C) 2007 Craig W. Nadler
- *
- * 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
- */
-
-#ifndef __LINUX_USB_G_PRINTER_H
-#define __LINUX_USB_G_PRINTER_H
-
-#define PRINTER_NOT_ERROR 0x08
-#define PRINTER_SELECTED 0x10
-#define PRINTER_PAPER_EMPTY 0x20
-
-/* The 'g' code is also used by gadgetfs ioctl requests.
- * Don't add any colliding codes to either driver, and keep
- * them in unique ranges (size 0x20 for now).
- */
-#define GADGET_GET_PRINTER_STATUS _IOR('g', 0x21, unsigned char)
-#define GADGET_SET_PRINTER_STATUS _IOWR('g', 0x22, unsigned char)
-
-#endif /* __LINUX_USB_G_PRINTER_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/gadget.h b/ANDROID_3.4.5/include/linux/usb/gadget.h
deleted file mode 100644
index 9517466a..00000000
--- a/ANDROID_3.4.5/include/linux/usb/gadget.h
+++ /dev/null
@@ -1,975 +0,0 @@
-/*
- * <linux/usb/gadget.h>
- *
- * We call the USB code inside a Linux-based peripheral device a "gadget"
- * driver, except for the hardware-specific bus glue. One USB host can
- * master many USB gadgets, but the gadgets are only slaved to one host.
- *
- *
- * (C) Copyright 2002-2004 by David Brownell
- * All Rights Reserved.
- *
- * This software is licensed under the GNU GPL version 2.
- */
-
-#ifndef __LINUX_USB_GADGET_H
-#define __LINUX_USB_GADGET_H
-
-#include <linux/device.h>
-#include <linux/errno.h>
-#include <linux/init.h>
-#include <linux/list.h>
-#include <linux/slab.h>
-#include <linux/scatterlist.h>
-#include <linux/types.h>
-#include <linux/usb/ch9.h>
-
-struct usb_ep;
-
-/**
- * struct usb_request - describes one i/o request
- * @buf: Buffer used for data. Always provide this; some controllers
- * only use PIO, or don't use DMA for some endpoints.
- * @dma: DMA address corresponding to 'buf'. If you don't set this
- * field, and the usb controller needs one, it is responsible
- * for mapping and unmapping the buffer.
- * @sg: a scatterlist for SG-capable controllers.
- * @num_sgs: number of SG entries
- * @num_mapped_sgs: number of SG entries mapped to DMA (internal)
- * @length: Length of that data
- * @stream_id: The stream id, when USB3.0 bulk streams are being used
- * @no_interrupt: If true, hints that no completion irq is needed.
- * Helpful sometimes with deep request queues that are handled
- * directly by DMA controllers.
- * @zero: If true, when writing data, makes the last packet be "short"
- * by adding a zero length packet as needed;
- * @short_not_ok: When reading data, makes short packets be
- * treated as errors (queue stops advancing till cleanup).
- * @complete: Function called when request completes, so this request and
- * its buffer may be re-used. The function will always be called with
- * interrupts disabled, and it must not sleep.
- * Reads terminate with a short packet, or when the buffer fills,
- * whichever comes first. When writes terminate, some data bytes
- * will usually still be in flight (often in a hardware fifo).
- * Errors (for reads or writes) stop the queue from advancing
- * until the completion function returns, so that any transfers
- * invalidated by the error may first be dequeued.
- * @context: For use by the completion callback
- * @list: For use by the gadget driver.
- * @status: Reports completion code, zero or a negative errno.
- * Normally, faults block the transfer queue from advancing until
- * the completion callback returns.
- * Code "-ESHUTDOWN" indicates completion caused by device disconnect,
- * or when the driver disabled the endpoint.
- * @actual: Reports bytes transferred to/from the buffer. For reads (OUT
- * transfers) this may be less than the requested length. If the
- * short_not_ok flag is set, short reads are treated as errors
- * even when status otherwise indicates successful completion.
- * Note that for writes (IN transfers) some data bytes may still
- * reside in a device-side FIFO when the request is reported as
- * complete.
- *
- * These are allocated/freed through the endpoint they're used with. The
- * hardware's driver can add extra per-request data to the memory it returns,
- * which often avoids separate memory allocations (potential failures),
- * later when the request is queued.
- *
- * Request flags affect request handling, such as whether a zero length
- * packet is written (the "zero" flag), whether a short read should be
- * treated as an error (blocking request queue advance, the "short_not_ok"
- * flag), or hinting that an interrupt is not required (the "no_interrupt"
- * flag, for use with deep request queues).
- *
- * Bulk endpoints can use any size buffers, and can also be used for interrupt
- * transfers. interrupt-only endpoints can be much less functional.
- *
- * NOTE: this is analogous to 'struct urb' on the host side, except that
- * it's thinner and promotes more pre-allocation.
- */
-
-struct usb_request {
- void *buf;
- unsigned length;
- dma_addr_t dma;
-
- struct scatterlist *sg;
- unsigned num_sgs;
- unsigned num_mapped_sgs;
-
- unsigned stream_id:16;
- unsigned no_interrupt:1;
- unsigned zero:1;
- unsigned short_not_ok:1;
-
- void (*complete)(struct usb_ep *ep,
- struct usb_request *req);
- void *context;
- struct list_head list;
-
- int status;
- unsigned actual;
-};
-
-/*-------------------------------------------------------------------------*/
-
-/* endpoint-specific parts of the api to the usb controller hardware.
- * unlike the urb model, (de)multiplexing layers are not required.
- * (so this api could slash overhead if used on the host side...)
- *
- * note that device side usb controllers commonly differ in how many
- * endpoints they support, as well as their capabilities.
- */
-struct usb_ep_ops {
- int (*enable) (struct usb_ep *ep,
- const struct usb_endpoint_descriptor *desc);
- int (*disable) (struct usb_ep *ep);
-
- struct usb_request *(*alloc_request) (struct usb_ep *ep,
- gfp_t gfp_flags);
- void (*free_request) (struct usb_ep *ep, struct usb_request *req);
-
- int (*queue) (struct usb_ep *ep, struct usb_request *req,
- gfp_t gfp_flags);
- int (*dequeue) (struct usb_ep *ep, struct usb_request *req);
-
- int (*set_halt) (struct usb_ep *ep, int value);
- int (*set_wedge) (struct usb_ep *ep);
-
- int (*fifo_status) (struct usb_ep *ep);
- void (*fifo_flush) (struct usb_ep *ep);
-};
-
-/**
- * struct usb_ep - device side representation of USB endpoint
- * @name:identifier for the endpoint, such as "ep-a" or "ep9in-bulk"
- * @ops: Function pointers used to access hardware-specific operations.
- * @ep_list:the gadget's ep_list holds all of its endpoints
- * @maxpacket:The maximum packet size used on this endpoint. The initial
- * value can sometimes be reduced (hardware allowing), according to
- * the endpoint descriptor used to configure the endpoint.
- * @max_streams: The maximum number of streams supported
- * by this EP (0 - 16, actual number is 2^n)
- * @mult: multiplier, 'mult' value for SS Isoc EPs
- * @maxburst: the maximum number of bursts supported by this EP (for usb3)
- * @driver_data:for use by the gadget driver.
- * @address: used to identify the endpoint when finding descriptor that
- * matches connection speed
- * @desc: endpoint descriptor. This pointer is set before the endpoint is
- * enabled and remains valid until the endpoint is disabled.
- * @comp_desc: In case of SuperSpeed support, this is the endpoint companion
- * descriptor that is used to configure the endpoint
- *
- * the bus controller driver lists all the general purpose endpoints in
- * gadget->ep_list. the control endpoint (gadget->ep0) is not in that list,
- * and is accessed only in response to a driver setup() callback.
- */
-struct usb_ep {
- void *driver_data;
-
- const char *name;
- const struct usb_ep_ops *ops;
- struct list_head ep_list;
- unsigned maxpacket:16;
- unsigned max_streams:16;
- unsigned mult:2;
- unsigned maxburst:5;
- u8 address;
- const struct usb_endpoint_descriptor *desc;
- const struct usb_ss_ep_comp_descriptor *comp_desc;
-};
-
-/*-------------------------------------------------------------------------*/
-
-/**
- * usb_ep_enable - configure endpoint, making it usable
- * @ep:the endpoint being configured. may not be the endpoint named "ep0".
- * drivers discover endpoints through the ep_list of a usb_gadget.
- *
- * When configurations are set, or when interface settings change, the driver
- * will enable or disable the relevant endpoints. while it is enabled, an
- * endpoint may be used for i/o until the driver receives a disconnect() from
- * the host or until the endpoint is disabled.
- *
- * the ep0 implementation (which calls this routine) must ensure that the
- * hardware capabilities of each endpoint match the descriptor provided
- * for it. for example, an endpoint named "ep2in-bulk" would be usable
- * for interrupt transfers as well as bulk, but it likely couldn't be used
- * for iso transfers or for endpoint 14. some endpoints are fully
- * configurable, with more generic names like "ep-a". (remember that for
- * USB, "in" means "towards the USB master".)
- *
- * returns zero, or a negative error code.
- */
-static inline int usb_ep_enable(struct usb_ep *ep)
-{
- return ep->ops->enable(ep, ep->desc);
-}
-
-/**
- * usb_ep_disable - endpoint is no longer usable
- * @ep:the endpoint being unconfigured. may not be the endpoint named "ep0".
- *
- * no other task may be using this endpoint when this is called.
- * any pending and uncompleted requests will complete with status
- * indicating disconnect (-ESHUTDOWN) before this call returns.
- * gadget drivers must call usb_ep_enable() again before queueing
- * requests to the endpoint.
- *
- * returns zero, or a negative error code.
- */
-static inline int usb_ep_disable(struct usb_ep *ep)
-{
- return ep->ops->disable(ep);
-}
-
-/**
- * usb_ep_alloc_request - allocate a request object to use with this endpoint
- * @ep:the endpoint to be used with with the request
- * @gfp_flags:GFP_* flags to use
- *
- * Request objects must be allocated with this call, since they normally
- * need controller-specific setup and may even need endpoint-specific
- * resources such as allocation of DMA descriptors.
- * Requests may be submitted with usb_ep_queue(), and receive a single
- * completion callback. Free requests with usb_ep_free_request(), when
- * they are no longer needed.
- *
- * Returns the request, or null if one could not be allocated.
- */
-static inline struct usb_request *usb_ep_alloc_request(struct usb_ep *ep,
- gfp_t gfp_flags)
-{
- return ep->ops->alloc_request(ep, gfp_flags);
-}
-
-/**
- * usb_ep_free_request - frees a request object
- * @ep:the endpoint associated with the request
- * @req:the request being freed
- *
- * Reverses the effect of usb_ep_alloc_request().
- * Caller guarantees the request is not queued, and that it will
- * no longer be requeued (or otherwise used).
- */
-static inline void usb_ep_free_request(struct usb_ep *ep,
- struct usb_request *req)
-{
- ep->ops->free_request(ep, req);
-}
-
-/**
- * usb_ep_queue - queues (submits) an I/O request to an endpoint.
- * @ep:the endpoint associated with the request
- * @req:the request being submitted
- * @gfp_flags: GFP_* flags to use in case the lower level driver couldn't
- * pre-allocate all necessary memory with the request.
- *
- * This tells the device controller to perform the specified request through
- * that endpoint (reading or writing a buffer). When the request completes,
- * including being canceled by usb_ep_dequeue(), the request's completion
- * routine is called to return the request to the driver. Any endpoint
- * (except control endpoints like ep0) may have more than one transfer
- * request queued; they complete in FIFO order. Once a gadget driver
- * submits a request, that request may not be examined or modified until it
- * is given back to that driver through the completion callback.
- *
- * Each request is turned into one or more packets. The controller driver
- * never merges adjacent requests into the same packet. OUT transfers
- * will sometimes use data that's already buffered in the hardware.
- * Drivers can rely on the fact that the first byte of the request's buffer
- * always corresponds to the first byte of some USB packet, for both
- * IN and OUT transfers.
- *
- * Bulk endpoints can queue any amount of data; the transfer is packetized
- * automatically. The last packet will be short if the request doesn't fill it
- * out completely. Zero length packets (ZLPs) should be avoided in portable
- * protocols since not all usb hardware can successfully handle zero length
- * packets. (ZLPs may be explicitly written, and may be implicitly written if
- * the request 'zero' flag is set.) Bulk endpoints may also be used
- * for interrupt transfers; but the reverse is not true, and some endpoints
- * won't support every interrupt transfer. (Such as 768 byte packets.)
- *
- * Interrupt-only endpoints are less functional than bulk endpoints, for
- * example by not supporting queueing or not handling buffers that are
- * larger than the endpoint's maxpacket size. They may also treat data
- * toggle differently.
- *
- * Control endpoints ... after getting a setup() callback, the driver queues
- * one response (even if it would be zero length). That enables the
- * status ack, after transferring data as specified in the response. Setup
- * functions may return negative error codes to generate protocol stalls.
- * (Note that some USB device controllers disallow protocol stall responses
- * in some cases.) When control responses are deferred (the response is
- * written after the setup callback returns), then usb_ep_set_halt() may be
- * used on ep0 to trigger protocol stalls. Depending on the controller,
- * it may not be possible to trigger a status-stage protocol stall when the
- * data stage is over, that is, from within the response's completion
- * routine.
- *
- * For periodic endpoints, like interrupt or isochronous ones, the usb host
- * arranges to poll once per interval, and the gadget driver usually will
- * have queued some data to transfer at that time.
- *
- * Returns zero, or a negative error code. Endpoints that are not enabled
- * report errors; errors will also be
- * reported when the usb peripheral is disconnected.
- */
-static inline int usb_ep_queue(struct usb_ep *ep,
- struct usb_request *req, gfp_t gfp_flags)
-{
- return ep->ops->queue(ep, req, gfp_flags);
-}
-
-/**
- * usb_ep_dequeue - dequeues (cancels, unlinks) an I/O request from an endpoint
- * @ep:the endpoint associated with the request
- * @req:the request being canceled
- *
- * if the request is still active on the endpoint, it is dequeued and its
- * completion routine is called (with status -ECONNRESET); else a negative
- * error code is returned.
- *
- * note that some hardware can't clear out write fifos (to unlink the request
- * at the head of the queue) except as part of disconnecting from usb. such
- * restrictions prevent drivers from supporting configuration changes,
- * even to configuration zero (a "chapter 9" requirement).
- */
-static inline int usb_ep_dequeue(struct usb_ep *ep, struct usb_request *req)
-{
- return ep->ops->dequeue(ep, req);
-}
-
-/**
- * usb_ep_set_halt - sets the endpoint halt feature.
- * @ep: the non-isochronous endpoint being stalled
- *
- * Use this to stall an endpoint, perhaps as an error report.
- * Except for control endpoints,
- * the endpoint stays halted (will not stream any data) until the host
- * clears this feature; drivers may need to empty the endpoint's request
- * queue first, to make sure no inappropriate transfers happen.
- *
- * Note that while an endpoint CLEAR_FEATURE will be invisible to the
- * gadget driver, a SET_INTERFACE will not be. To reset endpoints for the
- * current altsetting, see usb_ep_clear_halt(). When switching altsettings,
- * it's simplest to use usb_ep_enable() or usb_ep_disable() for the endpoints.
- *
- * Returns zero, or a negative error code. On success, this call sets
- * underlying hardware state that blocks data transfers.
- * Attempts to halt IN endpoints will fail (returning -EAGAIN) if any
- * transfer requests are still queued, or if the controller hardware
- * (usually a FIFO) still holds bytes that the host hasn't collected.
- */
-static inline int usb_ep_set_halt(struct usb_ep *ep)
-{
- return ep->ops->set_halt(ep, 1);
-}
-
-/**
- * usb_ep_clear_halt - clears endpoint halt, and resets toggle
- * @ep:the bulk or interrupt endpoint being reset
- *
- * Use this when responding to the standard usb "set interface" request,
- * for endpoints that aren't reconfigured, after clearing any other state
- * in the endpoint's i/o queue.
- *
- * Returns zero, or a negative error code. On success, this call clears
- * the underlying hardware state reflecting endpoint halt and data toggle.
- * Note that some hardware can't support this request (like pxa2xx_udc),
- * and accordingly can't correctly implement interface altsettings.
- */
-static inline int usb_ep_clear_halt(struct usb_ep *ep)
-{
- return ep->ops->set_halt(ep, 0);
-}
-
-/**
- * usb_ep_set_wedge - sets the halt feature and ignores clear requests
- * @ep: the endpoint being wedged
- *
- * Use this to stall an endpoint and ignore CLEAR_FEATURE(HALT_ENDPOINT)
- * requests. If the gadget driver clears the halt status, it will
- * automatically unwedge the endpoint.
- *
- * Returns zero on success, else negative errno.
- */
-static inline int
-usb_ep_set_wedge(struct usb_ep *ep)
-{
- if (ep->ops->set_wedge)
- return ep->ops->set_wedge(ep);
- else
- return ep->ops->set_halt(ep, 1);
-}
-
-/**
- * usb_ep_fifo_status - returns number of bytes in fifo, or error
- * @ep: the endpoint whose fifo status is being checked.
- *
- * FIFO endpoints may have "unclaimed data" in them in certain cases,
- * such as after aborted transfers. Hosts may not have collected all
- * the IN data written by the gadget driver (and reported by a request
- * completion). The gadget driver may not have collected all the data
- * written OUT to it by the host. Drivers that need precise handling for
- * fault reporting or recovery may need to use this call.
- *
- * This returns the number of such bytes in the fifo, or a negative
- * errno if the endpoint doesn't use a FIFO or doesn't support such
- * precise handling.
- */
-static inline int usb_ep_fifo_status(struct usb_ep *ep)
-{
- if (ep->ops->fifo_status)
- return ep->ops->fifo_status(ep);
- else
- return -EOPNOTSUPP;
-}
-
-/**
- * usb_ep_fifo_flush - flushes contents of a fifo
- * @ep: the endpoint whose fifo is being flushed.
- *
- * This call may be used to flush the "unclaimed data" that may exist in
- * an endpoint fifo after abnormal transaction terminations. The call
- * must never be used except when endpoint is not being used for any
- * protocol translation.
- */
-static inline void usb_ep_fifo_flush(struct usb_ep *ep)
-{
- if (ep->ops->fifo_flush)
- ep->ops->fifo_flush(ep);
-}
-
-
-/*-------------------------------------------------------------------------*/
-
-struct usb_dcd_config_params {
- __u8 bU1devExitLat; /* U1 Device exit Latency */
-#define USB_DEFAULT_U1_DEV_EXIT_LAT 0x01 /* Less then 1 microsec */
- __le16 bU2DevExitLat; /* U2 Device exit Latency */
-#define USB_DEFAULT_U2_DEV_EXIT_LAT 0x1F4 /* Less then 500 microsec */
-};
-
-
-struct usb_gadget;
-struct usb_gadget_driver;
-
-/* the rest of the api to the controller hardware: device operations,
- * which don't involve endpoints (or i/o).
- */
-struct usb_gadget_ops {
- int (*get_frame)(struct usb_gadget *);
- int (*wakeup)(struct usb_gadget *);
- int (*set_selfpowered) (struct usb_gadget *, int is_selfpowered);
- int (*vbus_session) (struct usb_gadget *, int is_active);
- int (*vbus_draw) (struct usb_gadget *, unsigned mA);
- int (*pullup) (struct usb_gadget *, int is_on);
- int (*ioctl)(struct usb_gadget *,
- unsigned code, unsigned long param);
- void (*get_config_params)(struct usb_dcd_config_params *);
- int (*udc_start)(struct usb_gadget *,
- struct usb_gadget_driver *);
- int (*udc_stop)(struct usb_gadget *,
- struct usb_gadget_driver *);
-
- /* Those two are deprecated */
- int (*start)(struct usb_gadget_driver *,
- int (*bind)(struct usb_gadget *));
- int (*stop)(struct usb_gadget_driver *);
-};
-
-/**
- * struct usb_gadget - represents a usb slave device
- * @ops: Function pointers used to access hardware-specific operations.
- * @ep0: Endpoint zero, used when reading or writing responses to
- * driver setup() requests
- * @ep_list: List of other endpoints supported by the device.
- * @speed: Speed of current connection to USB host.
- * @max_speed: Maximal speed the UDC can handle. UDC must support this
- * and all slower speeds.
- * @sg_supported: true if we can handle scatter-gather
- * @is_otg: True if the USB device port uses a Mini-AB jack, so that the
- * gadget driver must provide a USB OTG descriptor.
- * @is_a_peripheral: False unless is_otg, the "A" end of a USB cable
- * is in the Mini-AB jack, and HNP has been used to switch roles
- * so that the "A" device currently acts as A-Peripheral, not A-Host.
- * @a_hnp_support: OTG device feature flag, indicating that the A-Host
- * supports HNP at this port.
- * @a_alt_hnp_support: OTG device feature flag, indicating that the A-Host
- * only supports HNP on a different root port.
- * @b_hnp_enable: OTG device feature flag, indicating that the A-Host
- * enabled HNP support.
- * @name: Identifies the controller hardware type. Used in diagnostics
- * and sometimes configuration.
- * @dev: Driver model state for this abstract device.
- *
- * Gadgets have a mostly-portable "gadget driver" implementing device
- * functions, handling all usb configurations and interfaces. Gadget
- * drivers talk to hardware-specific code indirectly, through ops vectors.
- * That insulates the gadget driver from hardware details, and packages
- * the hardware endpoints through generic i/o queues. The "usb_gadget"
- * and "usb_ep" interfaces provide that insulation from the hardware.
- *
- * Except for the driver data, all fields in this structure are
- * read-only to the gadget driver. That driver data is part of the
- * "driver model" infrastructure in 2.6 (and later) kernels, and for
- * earlier systems is grouped in a similar structure that's not known
- * to the rest of the kernel.
- *
- * Values of the three OTG device feature flags are updated before the
- * setup() call corresponding to USB_REQ_SET_CONFIGURATION, and before
- * driver suspend() calls. They are valid only when is_otg, and when the
- * device is acting as a B-Peripheral (so is_a_peripheral is false).
- */
-struct usb_gadget {
- /* readonly to gadget driver */
- const struct usb_gadget_ops *ops;
- struct usb_ep *ep0;
- struct list_head ep_list; /* of usb_ep */
- enum usb_device_speed speed;
- enum usb_device_speed max_speed;
- unsigned sg_supported:1;
- unsigned is_otg:1;
- unsigned is_a_peripheral:1;
- unsigned b_hnp_enable:1;
- unsigned a_hnp_support:1;
- unsigned a_alt_hnp_support:1;
- const char *name;
- struct device dev;
-};
-
-static inline void set_gadget_data(struct usb_gadget *gadget, void *data)
- { dev_set_drvdata(&gadget->dev, data); }
-static inline void *get_gadget_data(struct usb_gadget *gadget)
- { return dev_get_drvdata(&gadget->dev); }
-static inline struct usb_gadget *dev_to_usb_gadget(struct device *dev)
-{
- return container_of(dev, struct usb_gadget, dev);
-}
-
-/* iterates the non-control endpoints; 'tmp' is a struct usb_ep pointer */
-#define gadget_for_each_ep(tmp, gadget) \
- list_for_each_entry(tmp, &(gadget)->ep_list, ep_list)
-
-
-/**
- * gadget_is_dualspeed - return true iff the hardware handles high speed
- * @g: controller that might support both high and full speeds
- */
-static inline int gadget_is_dualspeed(struct usb_gadget *g)
-{
-#ifdef CONFIG_USB_GADGET_DUALSPEED
- /* runtime test would check "g->max_speed" ... that might be
- * useful to work around hardware bugs, but is mostly pointless
- */
- return 1;
-#else
- return 0;
-#endif
-}
-
-/**
- * gadget_is_superspeed() - return true if the hardware handles
- * supperspeed
- * @g: controller that might support supper speed
- */
-static inline int gadget_is_superspeed(struct usb_gadget *g)
-{
-#ifdef CONFIG_USB_GADGET_SUPERSPEED
- /*
- * runtime test would check "g->max_speed" ... that might be
- * useful to work around hardware bugs, but is mostly pointless
- */
- return 1;
-#else
- return 0;
-#endif
-}
-
-/**
- * gadget_is_otg - return true iff the hardware is OTG-ready
- * @g: controller that might have a Mini-AB connector
- *
- * This is a runtime test, since kernels with a USB-OTG stack sometimes
- * run on boards which only have a Mini-B (or Mini-A) connector.
- */
-static inline int gadget_is_otg(struct usb_gadget *g)
-{
-#ifdef CONFIG_USB_OTG
- return g->is_otg;
-#else
- return 0;
-#endif
-}
-
-/**
- * usb_gadget_frame_number - returns the current frame number
- * @gadget: controller that reports the frame number
- *
- * Returns the usb frame number, normally eleven bits from a SOF packet,
- * or negative errno if this device doesn't support this capability.
- */
-static inline int usb_gadget_frame_number(struct usb_gadget *gadget)
-{
- return gadget->ops->get_frame(gadget);
-}
-
-/**
- * usb_gadget_wakeup - tries to wake up the host connected to this gadget
- * @gadget: controller used to wake up the host
- *
- * Returns zero on success, else negative error code if the hardware
- * doesn't support such attempts, or its support has not been enabled
- * by the usb host. Drivers must return device descriptors that report
- * their ability to support this, or hosts won't enable it.
- *
- * This may also try to use SRP to wake the host and start enumeration,
- * even if OTG isn't otherwise in use. OTG devices may also start
- * remote wakeup even when hosts don't explicitly enable it.
- */
-static inline int usb_gadget_wakeup(struct usb_gadget *gadget)
-{
- if (!gadget->ops->wakeup)
- return -EOPNOTSUPP;
- return gadget->ops->wakeup(gadget);
-}
-
-/**
- * usb_gadget_set_selfpowered - sets the device selfpowered feature.
- * @gadget:the device being declared as self-powered
- *
- * this affects the device status reported by the hardware driver
- * to reflect that it now has a local power supply.
- *
- * returns zero on success, else negative errno.
- */
-static inline int usb_gadget_set_selfpowered(struct usb_gadget *gadget)
-{
- if (!gadget->ops->set_selfpowered)
- return -EOPNOTSUPP;
- return gadget->ops->set_selfpowered(gadget, 1);
-}
-
-/**
- * usb_gadget_clear_selfpowered - clear the device selfpowered feature.
- * @gadget:the device being declared as bus-powered
- *
- * this affects the device status reported by the hardware driver.
- * some hardware may not support bus-powered operation, in which
- * case this feature's value can never change.
- *
- * returns zero on success, else negative errno.
- */
-static inline int usb_gadget_clear_selfpowered(struct usb_gadget *gadget)
-{
- if (!gadget->ops->set_selfpowered)
- return -EOPNOTSUPP;
- return gadget->ops->set_selfpowered(gadget, 0);
-}
-
-/**
- * usb_gadget_vbus_connect - Notify controller that VBUS is powered
- * @gadget:The device which now has VBUS power.
- * Context: can sleep
- *
- * This call is used by a driver for an external transceiver (or GPIO)
- * that detects a VBUS power session starting. Common responses include
- * resuming the controller, activating the D+ (or D-) pullup to let the
- * host detect that a USB device is attached, and starting to draw power
- * (8mA or possibly more, especially after SET_CONFIGURATION).
- *
- * Returns zero on success, else negative errno.
- */
-static inline int usb_gadget_vbus_connect(struct usb_gadget *gadget)
-{
- if (!gadget->ops->vbus_session)
- return -EOPNOTSUPP;
- return gadget->ops->vbus_session(gadget, 1);
-}
-
-/**
- * usb_gadget_vbus_draw - constrain controller's VBUS power usage
- * @gadget:The device whose VBUS usage is being described
- * @mA:How much current to draw, in milliAmperes. This should be twice
- * the value listed in the configuration descriptor bMaxPower field.
- *
- * This call is used by gadget drivers during SET_CONFIGURATION calls,
- * reporting how much power the device may consume. For example, this
- * could affect how quickly batteries are recharged.
- *
- * Returns zero on success, else negative errno.
- */
-static inline int usb_gadget_vbus_draw(struct usb_gadget *gadget, unsigned mA)
-{
- if (!gadget->ops->vbus_draw)
- return -EOPNOTSUPP;
- return gadget->ops->vbus_draw(gadget, mA);
-}
-
-/**
- * usb_gadget_vbus_disconnect - notify controller about VBUS session end
- * @gadget:the device whose VBUS supply is being described
- * Context: can sleep
- *
- * This call is used by a driver for an external transceiver (or GPIO)
- * that detects a VBUS power session ending. Common responses include
- * reversing everything done in usb_gadget_vbus_connect().
- *
- * Returns zero on success, else negative errno.
- */
-static inline int usb_gadget_vbus_disconnect(struct usb_gadget *gadget)
-{
- if (!gadget->ops->vbus_session)
- return -EOPNOTSUPP;
- return gadget->ops->vbus_session(gadget, 0);
-}
-
-/**
- * usb_gadget_connect - software-controlled connect to USB host
- * @gadget:the peripheral being connected
- *
- * Enables the D+ (or potentially D-) pullup. The host will start
- * enumerating this gadget when the pullup is active and a VBUS session
- * is active (the link is powered). This pullup is always enabled unless
- * usb_gadget_disconnect() has been used to disable it.
- *
- * Returns zero on success, else negative errno.
- */
-static inline int usb_gadget_connect(struct usb_gadget *gadget)
-{
- if (!gadget->ops->pullup)
- return -EOPNOTSUPP;
- return gadget->ops->pullup(gadget, 1);
-}
-
-/**
- * usb_gadget_disconnect - software-controlled disconnect from USB host
- * @gadget:the peripheral being disconnected
- *
- * Disables the D+ (or potentially D-) pullup, which the host may see
- * as a disconnect (when a VBUS session is active). Not all systems
- * support software pullup controls.
- *
- * This routine may be used during the gadget driver bind() call to prevent
- * the peripheral from ever being visible to the USB host, unless later
- * usb_gadget_connect() is called. For example, user mode components may
- * need to be activated before the system can talk to hosts.
- *
- * Returns zero on success, else negative errno.
- */
-static inline int usb_gadget_disconnect(struct usb_gadget *gadget)
-{
- if (!gadget->ops->pullup)
- return -EOPNOTSUPP;
- return gadget->ops->pullup(gadget, 0);
-}
-
-
-/*-------------------------------------------------------------------------*/
-
-/**
- * struct usb_gadget_driver - driver for usb 'slave' devices
- * @function: String describing the gadget's function
- * @max_speed: Highest speed the driver handles.
- * @setup: Invoked for ep0 control requests that aren't handled by
- * the hardware level driver. Most calls must be handled by
- * the gadget driver, including descriptor and configuration
- * management. The 16 bit members of the setup data are in
- * USB byte order. Called in_interrupt; this may not sleep. Driver
- * queues a response to ep0, or returns negative to stall.
- * @disconnect: Invoked after all transfers have been stopped,
- * when the host is disconnected. May be called in_interrupt; this
- * may not sleep. Some devices can't detect disconnect, so this might
- * not be called except as part of controller shutdown.
- * @unbind: Invoked when the driver is unbound from a gadget,
- * usually from rmmod (after a disconnect is reported).
- * Called in a context that permits sleeping.
- * @suspend: Invoked on USB suspend. May be called in_interrupt.
- * @resume: Invoked on USB resume. May be called in_interrupt.
- * @driver: Driver model state for this driver.
- *
- * Devices are disabled till a gadget driver successfully bind()s, which
- * means the driver will handle setup() requests needed to enumerate (and
- * meet "chapter 9" requirements) then do some useful work.
- *
- * If gadget->is_otg is true, the gadget driver must provide an OTG
- * descriptor during enumeration, or else fail the bind() call. In such
- * cases, no USB traffic may flow until both bind() returns without
- * having called usb_gadget_disconnect(), and the USB host stack has
- * initialized.
- *
- * Drivers use hardware-specific knowledge to configure the usb hardware.
- * endpoint addressing is only one of several hardware characteristics that
- * are in descriptors the ep0 implementation returns from setup() calls.
- *
- * Except for ep0 implementation, most driver code shouldn't need change to
- * run on top of different usb controllers. It'll use endpoints set up by
- * that ep0 implementation.
- *
- * The usb controller driver handles a few standard usb requests. Those
- * include set_address, and feature flags for devices, interfaces, and
- * endpoints (the get_status, set_feature, and clear_feature requests).
- *
- * Accordingly, the driver's setup() callback must always implement all
- * get_descriptor requests, returning at least a device descriptor and
- * a configuration descriptor. Drivers must make sure the endpoint
- * descriptors match any hardware constraints. Some hardware also constrains
- * other descriptors. (The pxa250 allows only configurations 1, 2, or 3).
- *
- * The driver's setup() callback must also implement set_configuration,
- * and should also implement set_interface, get_configuration, and
- * get_interface. Setting a configuration (or interface) is where
- * endpoints should be activated or (config 0) shut down.
- *
- * (Note that only the default control endpoint is supported. Neither
- * hosts nor devices generally support control traffic except to ep0.)
- *
- * Most devices will ignore USB suspend/resume operations, and so will
- * not provide those callbacks. However, some may need to change modes
- * when the host is not longer directing those activities. For example,
- * local controls (buttons, dials, etc) may need to be re-enabled since
- * the (remote) host can't do that any longer; or an error state might
- * be cleared, to make the device behave identically whether or not
- * power is maintained.
- */
-struct usb_gadget_driver {
- char *function;
- enum usb_device_speed max_speed;
- void (*unbind)(struct usb_gadget *);
- int (*setup)(struct usb_gadget *,
- const struct usb_ctrlrequest *);
- void (*disconnect)(struct usb_gadget *);
- void (*suspend)(struct usb_gadget *);
- void (*resume)(struct usb_gadget *);
-
- /* FIXME support safe rmmod */
- struct device_driver driver;
-};
-
-
-
-/*-------------------------------------------------------------------------*/
-
-/* driver modules register and unregister, as usual.
- * these calls must be made in a context that can sleep.
- *
- * these will usually be implemented directly by the hardware-dependent
- * usb bus interface driver, which will only support a single driver.
- */
-
-/**
- * usb_gadget_probe_driver - probe a gadget driver
- * @driver: the driver being registered
- * @bind: the driver's bind callback
- * Context: can sleep
- *
- * Call this in your gadget driver's module initialization function,
- * to tell the underlying usb controller driver about your driver.
- * The @bind() function will be called to bind it to a gadget before this
- * registration call returns. It's expected that the @bind() function will
- * be in init sections.
- */
-int usb_gadget_probe_driver(struct usb_gadget_driver *driver,
- int (*bind)(struct usb_gadget *));
-
-/**
- * usb_gadget_unregister_driver - unregister a gadget driver
- * @driver:the driver being unregistered
- * Context: can sleep
- *
- * Call this in your gadget driver's module cleanup function,
- * to tell the underlying usb controller that your driver is
- * going away. If the controller is connected to a USB host,
- * it will first disconnect(). The driver is also requested
- * to unbind() and clean up any device state, before this procedure
- * finally returns. It's expected that the unbind() functions
- * will in in exit sections, so may not be linked in some kernels.
- */
-int usb_gadget_unregister_driver(struct usb_gadget_driver *driver);
-
-extern int usb_add_gadget_udc(struct device *parent, struct usb_gadget *gadget);
-extern void usb_del_gadget_udc(struct usb_gadget *gadget);
-
-/*-------------------------------------------------------------------------*/
-
-/* utility to simplify dealing with string descriptors */
-
-/**
- * struct usb_string - wraps a C string and its USB id
- * @id:the (nonzero) ID for this string
- * @s:the string, in UTF-8 encoding
- *
- * If you're using usb_gadget_get_string(), use this to wrap a string
- * together with its ID.
- */
-struct usb_string {
- u8 id;
- const char *s;
-};
-
-/**
- * struct usb_gadget_strings - a set of USB strings in a given language
- * @language:identifies the strings' language (0x0409 for en-us)
- * @strings:array of strings with their ids
- *
- * If you're using usb_gadget_get_string(), use this to wrap all the
- * strings for a given language.
- */
-struct usb_gadget_strings {
- u16 language; /* 0x0409 for en-us */
- struct usb_string *strings;
-};
-
-/* put descriptor for string with that id into buf (buflen >= 256) */
-int usb_gadget_get_string(struct usb_gadget_strings *table, int id, u8 *buf);
-
-/*-------------------------------------------------------------------------*/
-
-/* utility to simplify managing config descriptors */
-
-/* write vector of descriptors into buffer */
-int usb_descriptor_fillbuf(void *, unsigned,
- const struct usb_descriptor_header **);
-
-/* build config descriptor from single descriptor vector */
-int usb_gadget_config_buf(const struct usb_config_descriptor *config,
- void *buf, unsigned buflen, const struct usb_descriptor_header **desc);
-
-/* copy a NULL-terminated vector of descriptors */
-struct usb_descriptor_header **usb_copy_descriptors(
- struct usb_descriptor_header **);
-
-/**
- * usb_free_descriptors - free descriptors returned by usb_copy_descriptors()
- * @v: vector of descriptors
- */
-static inline void usb_free_descriptors(struct usb_descriptor_header **v)
-{
- kfree(v);
-}
-
-/*-------------------------------------------------------------------------*/
-
-/* utility to simplify map/unmap of usb_requests to/from DMA */
-
-extern int usb_gadget_map_request(struct usb_gadget *gadget,
- struct usb_request *req, int is_in);
-
-extern void usb_gadget_unmap_request(struct usb_gadget *gadget,
- struct usb_request *req, int is_in);
-
-/*-------------------------------------------------------------------------*/
-
-/* utility wrapping a simple endpoint selection policy */
-
-extern struct usb_ep *usb_ep_autoconfig(struct usb_gadget *,
- struct usb_endpoint_descriptor *);
-
-
-extern struct usb_ep *usb_ep_autoconfig_ss(struct usb_gadget *,
- struct usb_endpoint_descriptor *,
- struct usb_ss_ep_comp_descriptor *);
-
-extern void usb_ep_autoconfig_reset(struct usb_gadget *);
-
-#endif /* __LINUX_USB_GADGET_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/gadgetfs.h b/ANDROID_3.4.5/include/linux/usb/gadgetfs.h
deleted file mode 100644
index 0bb12e0d..00000000
--- a/ANDROID_3.4.5/include/linux/usb/gadgetfs.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Filesystem based user-mode API to USB Gadget controller hardware
- *
- * Other than ep0 operations, most things are done by read() and write()
- * on endpoint files found in one directory. They are configured by
- * writing descriptors, and then may be used for normal stream style
- * i/o requests. When ep0 is configured, the device can enumerate;
- * when it's closed, the device disconnects from usb. Operations on
- * ep0 require ioctl() operations.
- *
- * Configuration and device descriptors get written to /dev/gadget/$CHIP,
- * which may then be used to read usb_gadgetfs_event structs. The driver
- * may activate endpoints as it handles SET_CONFIGURATION setup events,
- * or earlier; writing endpoint descriptors to /dev/gadget/$ENDPOINT
- * then performing data transfers by reading or writing.
- */
-
-#ifndef __LINUX_USB_GADGETFS_H
-#define __LINUX_USB_GADGETFS_H
-
-#include <linux/types.h>
-#include <linux/ioctl.h>
-
-#include <linux/usb/ch9.h>
-
-/*
- * Events are delivered on the ep0 file descriptor, when the user mode driver
- * reads from this file descriptor after writing the descriptors. Don't
- * stop polling this descriptor.
- */
-
-enum usb_gadgetfs_event_type {
- GADGETFS_NOP = 0,
-
- GADGETFS_CONNECT,
- GADGETFS_DISCONNECT,
- GADGETFS_SETUP,
- GADGETFS_SUSPEND,
- /* and likely more ! */
-};
-
-/* NOTE: this structure must stay the same size and layout on
- * both 32-bit and 64-bit kernels.
- */
-struct usb_gadgetfs_event {
- union {
- /* NOP, DISCONNECT, SUSPEND: nothing
- * ... some hardware can't report disconnection
- */
-
- /* CONNECT: just the speed */
- enum usb_device_speed speed;
-
- /* SETUP: packet; DATA phase i/o precedes next event
- *(setup.bmRequestType & USB_DIR_IN) flags direction
- * ... includes SET_CONFIGURATION, SET_INTERFACE
- */
- struct usb_ctrlrequest setup;
- } u;
- enum usb_gadgetfs_event_type type;
-};
-
-
-/* The 'g' code is also used by printer gadget ioctl requests.
- * Don't add any colliding codes to either driver, and keep
- * them in unique ranges (size 0x20 for now).
- */
-
-/* endpoint ioctls */
-
-/* IN transfers may be reported to the gadget driver as complete
- * when the fifo is loaded, before the host reads the data;
- * OUT transfers may be reported to the host's "client" driver as
- * complete when they're sitting in the FIFO unread.
- * THIS returns how many bytes are "unclaimed" in the endpoint fifo
- * (needed for precise fault handling, when the hardware allows it)
- */
-#define GADGETFS_FIFO_STATUS _IO('g', 1)
-
-/* discards any unclaimed data in the fifo. */
-#define GADGETFS_FIFO_FLUSH _IO('g', 2)
-
-/* resets endpoint halt+toggle; used to implement set_interface.
- * some hardware (like pxa2xx) can't support this.
- */
-#define GADGETFS_CLEAR_HALT _IO('g', 3)
-
-#endif /* __LINUX_USB_GADGETFS_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/gpio_vbus.h b/ANDROID_3.4.5/include/linux/usb/gpio_vbus.h
deleted file mode 100644
index d9f03ccc..00000000
--- a/ANDROID_3.4.5/include/linux/usb/gpio_vbus.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * A simple GPIO VBUS sensing driver for B peripheral only devices
- * with internal transceivers.
- * Optionally D+ pullup can be controlled by a second GPIO.
- *
- * Copyright (c) 2008 Philipp Zabel <philipp.zabel@gmail.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.
- *
- */
-
-/**
- * struct gpio_vbus_mach_info - configuration for gpio_vbus
- * @gpio_vbus: VBUS sensing GPIO
- * @gpio_pullup: optional D+ or D- pullup GPIO (else negative/invalid)
- * @gpio_vbus_inverted: true if gpio_vbus is active low
- * @gpio_pullup_inverted: true if gpio_pullup is active low
- *
- * The VBUS sensing GPIO should have a pulldown, which will normally be
- * part of a resistor ladder turning a 4.0V-5.25V level on VBUS into a
- * value the GPIO detects as active. Some systems will use comparators.
- */
-struct gpio_vbus_mach_info {
- int gpio_vbus;
- int gpio_pullup;
- bool gpio_vbus_inverted;
- bool gpio_pullup_inverted;
-};
diff --git a/ANDROID_3.4.5/include/linux/usb/hcd.h b/ANDROID_3.4.5/include/linux/usb/hcd.h
deleted file mode 100644
index 030f3610..00000000
--- a/ANDROID_3.4.5/include/linux/usb/hcd.h
+++ /dev/null
@@ -1,696 +0,0 @@
-/*
- * Copyright (c) 2001-2002 by David Brownell
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef __USB_CORE_HCD_H
-#define __USB_CORE_HCD_H
-
-#ifdef __KERNEL__
-
-#include <linux/rwsem.h>
-
-#define MAX_TOPO_LEVEL 6
-
-/* This file contains declarations of usbcore internals that are mostly
- * used or exposed by Host Controller Drivers.
- */
-
-/*
- * USB Packet IDs (PIDs)
- */
-#define USB_PID_EXT 0xf0 /* USB 2.0 LPM ECN */
-#define USB_PID_OUT 0xe1
-#define USB_PID_ACK 0xd2
-#define USB_PID_DATA0 0xc3
-#define USB_PID_PING 0xb4 /* USB 2.0 */
-#define USB_PID_SOF 0xa5
-#define USB_PID_NYET 0x96 /* USB 2.0 */
-#define USB_PID_DATA2 0x87 /* USB 2.0 */
-#define USB_PID_SPLIT 0x78 /* USB 2.0 */
-#define USB_PID_IN 0x69
-#define USB_PID_NAK 0x5a
-#define USB_PID_DATA1 0x4b
-#define USB_PID_PREAMBLE 0x3c /* Token mode */
-#define USB_PID_ERR 0x3c /* USB 2.0: handshake mode */
-#define USB_PID_SETUP 0x2d
-#define USB_PID_STALL 0x1e
-#define USB_PID_MDATA 0x0f /* USB 2.0 */
-
-/*-------------------------------------------------------------------------*/
-
-/*
- * USB Host Controller Driver (usb_hcd) framework
- *
- * Since "struct usb_bus" is so thin, you can't share much code in it.
- * This framework is a layer over that, and should be more sharable.
- *
- * @authorized_default: Specifies if new devices are authorized to
- * connect by default or they require explicit
- * user space authorization; this bit is settable
- * through /sys/class/usb_host/X/authorized_default.
- * For the rest is RO, so we don't lock to r/w it.
- */
-
-/*-------------------------------------------------------------------------*/
-
-struct usb_hcd {
-
- /*
- * housekeeping
- */
- struct usb_bus self; /* hcd is-a bus */
- struct kref kref; /* reference counter */
-
- const char *product_desc; /* product/vendor string */
- int speed; /* Speed for this roothub.
- * May be different from
- * hcd->driver->flags & HCD_MASK
- */
- char irq_descr[24]; /* driver + bus # */
-
- struct timer_list rh_timer; /* drives root-hub polling */
- struct urb *status_urb; /* the current status urb */
-#ifdef CONFIG_USB_SUSPEND
- struct work_struct wakeup_work; /* for remote wakeup */
-#endif
-
- /*
- * hardware info/state
- */
- const struct hc_driver *driver; /* hw-specific hooks */
-
- /* Flags that need to be manipulated atomically because they can
- * change while the host controller is running. Always use
- * set_bit() or clear_bit() to change their values.
- */
- unsigned long flags;
-#define HCD_FLAG_HW_ACCESSIBLE 0 /* at full power */
-#define HCD_FLAG_POLL_RH 2 /* poll for rh status? */
-#define HCD_FLAG_POLL_PENDING 3 /* status has changed? */
-#define HCD_FLAG_WAKEUP_PENDING 4 /* root hub is resuming? */
-#define HCD_FLAG_RH_RUNNING 5 /* root hub is running? */
-#define HCD_FLAG_DEAD 6 /* controller has died? */
-
- /* The flags can be tested using these macros; they are likely to
- * be slightly faster than test_bit().
- */
-#define HCD_HW_ACCESSIBLE(hcd) ((hcd)->flags & (1U << HCD_FLAG_HW_ACCESSIBLE))
-#define HCD_POLL_RH(hcd) ((hcd)->flags & (1U << HCD_FLAG_POLL_RH))
-#define HCD_POLL_PENDING(hcd) ((hcd)->flags & (1U << HCD_FLAG_POLL_PENDING))
-#define HCD_WAKEUP_PENDING(hcd) ((hcd)->flags & (1U << HCD_FLAG_WAKEUP_PENDING))
-#define HCD_RH_RUNNING(hcd) ((hcd)->flags & (1U << HCD_FLAG_RH_RUNNING))
-#define HCD_DEAD(hcd) ((hcd)->flags & (1U << HCD_FLAG_DEAD))
-
- /* Flags that get set only during HCD registration or removal. */
- unsigned rh_registered:1;/* is root hub registered? */
- unsigned rh_pollable:1; /* may we poll the root hub? */
- unsigned msix_enabled:1; /* driver has MSI-X enabled? */
-
- /* The next flag is a stopgap, to be removed when all the HCDs
- * support the new root-hub polling mechanism. */
- unsigned uses_new_polling:1;
- unsigned wireless:1; /* Wireless USB HCD */
- unsigned authorized_default:1;
- unsigned has_tt:1; /* Integrated TT in root hub */
-
- unsigned int irq; /* irq allocated */
- void __iomem *regs; /* device memory/io */
- u64 rsrc_start; /* memory/io resource start */
- u64 rsrc_len; /* memory/io resource length */
- unsigned power_budget; /* in mA, 0 = no limit */
-
- /* bandwidth_mutex should be taken before adding or removing
- * any new bus bandwidth constraints:
- * 1. Before adding a configuration for a new device.
- * 2. Before removing the configuration to put the device into
- * the addressed state.
- * 3. Before selecting a different configuration.
- * 4. Before selecting an alternate interface setting.
- *
- * bandwidth_mutex should be dropped after a successful control message
- * to the device, or resetting the bandwidth after a failed attempt.
- */
- struct mutex *bandwidth_mutex;
- struct usb_hcd *shared_hcd;
- struct usb_hcd *primary_hcd;
-
-
-#define HCD_BUFFER_POOLS 4
- struct dma_pool *pool[HCD_BUFFER_POOLS];
-
- int state;
-# define __ACTIVE 0x01
-# define __SUSPEND 0x04
-# define __TRANSIENT 0x80
-
-# define HC_STATE_HALT 0
-# define HC_STATE_RUNNING (__ACTIVE)
-# define HC_STATE_QUIESCING (__SUSPEND|__TRANSIENT|__ACTIVE)
-# define HC_STATE_RESUMING (__SUSPEND|__TRANSIENT)
-# define HC_STATE_SUSPENDED (__SUSPEND)
-
-#define HC_IS_RUNNING(state) ((state) & __ACTIVE)
-#define HC_IS_SUSPENDED(state) ((state) & __SUSPEND)
-
- /* more shared queuing code would be good; it should support
- * smarter scheduling, handle transaction translators, etc;
- * input size of periodic table to an interrupt scheduler.
- * (ohci 32, uhci 1024, ehci 256/512/1024).
- */
-
- /* The HC driver's private data is stored at the end of
- * this structure.
- */
- unsigned long hcd_priv[0]
- __attribute__ ((aligned(sizeof(s64))));
-};
-
-/* 2.4 does this a bit differently ... */
-static inline struct usb_bus *hcd_to_bus(struct usb_hcd *hcd)
-{
- return &hcd->self;
-}
-
-static inline struct usb_hcd *bus_to_hcd(struct usb_bus *bus)
-{
- return container_of(bus, struct usb_hcd, self);
-}
-
-struct hcd_timeout { /* timeouts we allocate */
- struct list_head timeout_list;
- struct timer_list timer;
-};
-
-/*-------------------------------------------------------------------------*/
-
-
-struct hc_driver {
- const char *description; /* "ehci-hcd" etc */
- const char *product_desc; /* product/vendor string */
- size_t hcd_priv_size; /* size of private data */
-
- /* irq handler */
- irqreturn_t (*irq) (struct usb_hcd *hcd);
-
- int flags;
-#define HCD_MEMORY 0x0001 /* HC regs use memory (else I/O) */
-#define HCD_LOCAL_MEM 0x0002 /* HC needs local memory */
-#define HCD_SHARED 0x0004 /* Two (or more) usb_hcds share HW */
-#define HCD_USB11 0x0010 /* USB 1.1 */
-#define HCD_USB2 0x0020 /* USB 2.0 */
-#define HCD_USB3 0x0040 /* USB 3.0 */
-#define HCD_MASK 0x0070
-
- /* called to init HCD and root hub */
- int (*reset) (struct usb_hcd *hcd);
- int (*start) (struct usb_hcd *hcd);
-
- /* NOTE: these suspend/resume calls relate to the HC as
- * a whole, not just the root hub; they're for PCI bus glue.
- */
- /* called after suspending the hub, before entering D3 etc */
- int (*pci_suspend)(struct usb_hcd *hcd, bool do_wakeup);
-
- /* called after entering D0 (etc), before resuming the hub */
- int (*pci_resume)(struct usb_hcd *hcd, bool hibernated);
-
- /* cleanly make HCD stop writing memory and doing I/O */
- void (*stop) (struct usb_hcd *hcd);
-
- /* shutdown HCD */
- void (*shutdown) (struct usb_hcd *hcd);
-
- /* return current frame number */
- int (*get_frame_number) (struct usb_hcd *hcd);
-
- /* manage i/o requests, device state */
- int (*urb_enqueue)(struct usb_hcd *hcd,
- struct urb *urb, gfp_t mem_flags);
- int (*urb_dequeue)(struct usb_hcd *hcd,
- struct urb *urb, int status);
-
- /*
- * (optional) these hooks allow an HCD to override the default DMA
- * mapping and unmapping routines. In general, they shouldn't be
- * necessary unless the host controller has special DMA requirements,
- * such as alignment contraints. If these are not specified, the
- * general usb_hcd_(un)?map_urb_for_dma functions will be used instead
- * (and it may be a good idea to call these functions in your HCD
- * implementation)
- */
- int (*map_urb_for_dma)(struct usb_hcd *hcd, struct urb *urb,
- gfp_t mem_flags);
- void (*unmap_urb_for_dma)(struct usb_hcd *hcd, struct urb *urb);
-
- /* hw synch, freeing endpoint resources that urb_dequeue can't */
- void (*endpoint_disable)(struct usb_hcd *hcd,
- struct usb_host_endpoint *ep);
-
- /* (optional) reset any endpoint state such as sequence number
- and current window */
- void (*endpoint_reset)(struct usb_hcd *hcd,
- struct usb_host_endpoint *ep);
-
- /* root hub support */
- int (*hub_status_data) (struct usb_hcd *hcd, char *buf);
- int (*hub_control) (struct usb_hcd *hcd,
- u16 typeReq, u16 wValue, u16 wIndex,
- char *buf, u16 wLength);
- int (*bus_suspend)(struct usb_hcd *);
- int (*bus_resume)(struct usb_hcd *);
- int (*start_port_reset)(struct usb_hcd *, unsigned port_num);
-
- /* force handover of high-speed port to full-speed companion */
- void (*relinquish_port)(struct usb_hcd *, int);
- /* has a port been handed over to a companion? */
- int (*port_handed_over)(struct usb_hcd *, int);
-
- /* CLEAR_TT_BUFFER completion callback */
- void (*clear_tt_buffer_complete)(struct usb_hcd *,
- struct usb_host_endpoint *);
-
- /* xHCI specific functions */
- /* Called by usb_alloc_dev to alloc HC device structures */
- int (*alloc_dev)(struct usb_hcd *, struct usb_device *);
- /* Called by usb_disconnect to free HC device structures */
- void (*free_dev)(struct usb_hcd *, struct usb_device *);
- /* Change a group of bulk endpoints to support multiple stream IDs */
- int (*alloc_streams)(struct usb_hcd *hcd, struct usb_device *udev,
- struct usb_host_endpoint **eps, unsigned int num_eps,
- unsigned int num_streams, gfp_t mem_flags);
- /* Reverts a group of bulk endpoints back to not using stream IDs.
- * Can fail if we run out of memory.
- */
- int (*free_streams)(struct usb_hcd *hcd, struct usb_device *udev,
- struct usb_host_endpoint **eps, unsigned int num_eps,
- gfp_t mem_flags);
-
- /* Bandwidth computation functions */
- /* Note that add_endpoint() can only be called once per endpoint before
- * check_bandwidth() or reset_bandwidth() must be called.
- * drop_endpoint() can only be called once per endpoint also.
- * A call to xhci_drop_endpoint() followed by a call to
- * xhci_add_endpoint() will add the endpoint to the schedule with
- * possibly new parameters denoted by a different endpoint descriptor
- * in usb_host_endpoint. A call to xhci_add_endpoint() followed by a
- * call to xhci_drop_endpoint() is not allowed.
- */
- /* Allocate endpoint resources and add them to a new schedule */
- int (*add_endpoint)(struct usb_hcd *, struct usb_device *,
- struct usb_host_endpoint *);
- /* Drop an endpoint from a new schedule */
- int (*drop_endpoint)(struct usb_hcd *, struct usb_device *,
- struct usb_host_endpoint *);
- /* Check that a new hardware configuration, set using
- * endpoint_enable and endpoint_disable, does not exceed bus
- * bandwidth. This must be called before any set configuration
- * or set interface requests are sent to the device.
- */
- int (*check_bandwidth)(struct usb_hcd *, struct usb_device *);
- /* Reset the device schedule to the last known good schedule,
- * which was set from a previous successful call to
- * check_bandwidth(). This reverts any add_endpoint() and
- * drop_endpoint() calls since that last successful call.
- * Used for when a check_bandwidth() call fails due to resource
- * or bandwidth constraints.
- */
- void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *);
- /* Returns the hardware-chosen device address */
- int (*address_device)(struct usb_hcd *, struct usb_device *udev);
- /* Notifies the HCD after a hub descriptor is fetched.
- * Will block.
- */
- int (*update_hub_device)(struct usb_hcd *, struct usb_device *hdev,
- struct usb_tt *tt, gfp_t mem_flags);
- int (*reset_device)(struct usb_hcd *, struct usb_device *);
- /* Notifies the HCD after a device is connected and its
- * address is set
- */
- int (*update_device)(struct usb_hcd *, struct usb_device *);
- int (*set_usb2_hw_lpm)(struct usb_hcd *, struct usb_device *, int);
-};
-
-extern int usb_hcd_link_urb_to_ep(struct usb_hcd *hcd, struct urb *urb);
-extern int usb_hcd_check_unlink_urb(struct usb_hcd *hcd, struct urb *urb,
- int status);
-extern void usb_hcd_unlink_urb_from_ep(struct usb_hcd *hcd, struct urb *urb);
-
-extern int usb_hcd_submit_urb(struct urb *urb, gfp_t mem_flags);
-extern int usb_hcd_unlink_urb(struct urb *urb, int status);
-extern void usb_hcd_giveback_urb(struct usb_hcd *hcd, struct urb *urb,
- int status);
-extern int usb_hcd_map_urb_for_dma(struct usb_hcd *hcd, struct urb *urb,
- gfp_t mem_flags);
-extern void usb_hcd_unmap_urb_setup_for_dma(struct usb_hcd *, struct urb *);
-extern void usb_hcd_unmap_urb_for_dma(struct usb_hcd *, struct urb *);
-extern void usb_hcd_flush_endpoint(struct usb_device *udev,
- struct usb_host_endpoint *ep);
-extern void usb_hcd_disable_endpoint(struct usb_device *udev,
- struct usb_host_endpoint *ep);
-extern void usb_hcd_reset_endpoint(struct usb_device *udev,
- struct usb_host_endpoint *ep);
-extern void usb_hcd_synchronize_unlinks(struct usb_device *udev);
-extern int usb_hcd_alloc_bandwidth(struct usb_device *udev,
- struct usb_host_config *new_config,
- struct usb_host_interface *old_alt,
- struct usb_host_interface *new_alt);
-extern int usb_hcd_get_frame_number(struct usb_device *udev);
-
-extern struct usb_hcd *usb_create_hcd(const struct hc_driver *driver,
- struct device *dev, const char *bus_name);
-extern struct usb_hcd *usb_create_shared_hcd(const struct hc_driver *driver,
- struct device *dev, const char *bus_name,
- struct usb_hcd *shared_hcd);
-extern struct usb_hcd *usb_get_hcd(struct usb_hcd *hcd);
-extern void usb_put_hcd(struct usb_hcd *hcd);
-extern int usb_hcd_is_primary_hcd(struct usb_hcd *hcd);
-extern int usb_add_hcd(struct usb_hcd *hcd,
- unsigned int irqnum, unsigned long irqflags);
-extern void usb_remove_hcd(struct usb_hcd *hcd);
-
-struct platform_device;
-extern void usb_hcd_platform_shutdown(struct platform_device *dev);
-
-#ifdef CONFIG_PCI
-struct pci_dev;
-struct pci_device_id;
-extern int usb_hcd_pci_probe(struct pci_dev *dev,
- const struct pci_device_id *id);
-extern void usb_hcd_pci_remove(struct pci_dev *dev);
-extern void usb_hcd_pci_shutdown(struct pci_dev *dev);
-
-#ifdef CONFIG_PM_SLEEP
-extern const struct dev_pm_ops usb_hcd_pci_pm_ops;
-#endif
-#endif /* CONFIG_PCI */
-
-/* pci-ish (pdev null is ok) buffer alloc/mapping support */
-int hcd_buffer_create(struct usb_hcd *hcd);
-void hcd_buffer_destroy(struct usb_hcd *hcd);
-
-void *hcd_buffer_alloc(struct usb_bus *bus, size_t size,
- gfp_t mem_flags, dma_addr_t *dma);
-void hcd_buffer_free(struct usb_bus *bus, size_t size,
- void *addr, dma_addr_t dma);
-
-/* generic bus glue, needed for host controllers that don't use PCI */
-extern irqreturn_t usb_hcd_irq(int irq, void *__hcd);
-
-extern void usb_hc_died(struct usb_hcd *hcd);
-extern void usb_hcd_poll_rh_status(struct usb_hcd *hcd);
-extern void usb_wakeup_notification(struct usb_device *hdev,
- unsigned int portnum);
-
-/* The D0/D1 toggle bits ... USE WITH CAUTION (they're almost hcd-internal) */
-#define usb_gettoggle(dev, ep, out) (((dev)->toggle[out] >> (ep)) & 1)
-#define usb_dotoggle(dev, ep, out) ((dev)->toggle[out] ^= (1 << (ep)))
-#define usb_settoggle(dev, ep, out, bit) \
- ((dev)->toggle[out] = ((dev)->toggle[out] & ~(1 << (ep))) | \
- ((bit) << (ep)))
-
-/* -------------------------------------------------------------------------- */
-
-/* Enumeration is only for the hub driver, or HCD virtual root hubs */
-extern struct usb_device *usb_alloc_dev(struct usb_device *parent,
- struct usb_bus *, unsigned port);
-extern int usb_new_device(struct usb_device *dev);
-extern void usb_disconnect(struct usb_device **);
-
-extern int usb_get_configuration(struct usb_device *dev);
-extern void usb_destroy_configuration(struct usb_device *dev);
-
-/*-------------------------------------------------------------------------*/
-
-/*
- * HCD Root Hub support
- */
-
-#include <linux/usb/ch11.h>
-
-/*
- * As of USB 2.0, full/low speed devices are segregated into trees.
- * One type grows from USB 1.1 host controllers (OHCI, UHCI etc).
- * The other type grows from high speed hubs when they connect to
- * full/low speed devices using "Transaction Translators" (TTs).
- *
- * TTs should only be known to the hub driver, and high speed bus
- * drivers (only EHCI for now). They affect periodic scheduling and
- * sometimes control/bulk error recovery.
- */
-
-struct usb_device;
-
-struct usb_tt {
- struct usb_device *hub; /* upstream highspeed hub */
- int multi; /* true means one TT per port */
- unsigned think_time; /* think time in ns */
-
- /* for control/bulk error recovery (CLEAR_TT_BUFFER) */
- spinlock_t lock;
- struct list_head clear_list; /* of usb_tt_clear */
- struct work_struct clear_work;
-};
-
-struct usb_tt_clear {
- struct list_head clear_list;
- unsigned tt;
- u16 devinfo;
- struct usb_hcd *hcd;
- struct usb_host_endpoint *ep;
-};
-
-extern int usb_hub_clear_tt_buffer(struct urb *urb);
-extern void usb_ep0_reinit(struct usb_device *);
-
-/*{CharlesTu, 2010.08.26, for test mode */
-#define USB_PORT_FEAT_INDICATOR 22
-
-/*
- * Hub Port Test Mode Selector Codes
- * See USB 2.0 spec Table 11-24
- */
-#define USB_PORT_TEST_J 0x01
-#define USB_PORT_TEST_K 0x02
-#define USB_PORT_TEST_SE0_NAK 0x03
-#define USB_PORT_TEST_PACKET 0x04
-#define USB_PORT_TEST_FORCE_ENABLE 0x05
-
-/*
- * This is used for the Hi-Speed Host Electrical Tests
- * on the root hub. See USB 2.0 spec 7.1.20 and the
- * Embedded High-speed Host Electrical Test Procedure.
- */
-#define USB_PORT_TEST_SINGLE_STEP_SET_FEATURE 0x00
-/*CharelsTu} */
-
-/* (shifted) direction/type/recipient from the USB 2.0 spec, table 9.2 */
-#define DeviceRequest \
- ((USB_DIR_IN|USB_TYPE_STANDARD|USB_RECIP_DEVICE)<<8)
-#define DeviceOutRequest \
- ((USB_DIR_OUT|USB_TYPE_STANDARD|USB_RECIP_DEVICE)<<8)
-
-#define InterfaceRequest \
- ((USB_DIR_IN|USB_TYPE_STANDARD|USB_RECIP_INTERFACE)<<8)
-
-#define EndpointRequest \
- ((USB_DIR_IN|USB_TYPE_STANDARD|USB_RECIP_INTERFACE)<<8)
-#define EndpointOutRequest \
- ((USB_DIR_OUT|USB_TYPE_STANDARD|USB_RECIP_INTERFACE)<<8)
-
-/* class requests from the USB 2.0 hub spec, table 11-15 */
-/* GetBusState and SetHubDescriptor are optional, omitted */
-#define ClearHubFeature (0x2000 | USB_REQ_CLEAR_FEATURE)
-#define ClearPortFeature (0x2300 | USB_REQ_CLEAR_FEATURE)
-#define GetHubDescriptor (0xa000 | USB_REQ_GET_DESCRIPTOR)
-#define GetHubStatus (0xa000 | USB_REQ_GET_STATUS)
-#define GetPortStatus (0xa300 | USB_REQ_GET_STATUS)
-#define SetHubFeature (0x2000 | USB_REQ_SET_FEATURE)
-#define SetPortFeature (0x2300 | USB_REQ_SET_FEATURE)
-
-
-/*-------------------------------------------------------------------------*/
-
-/* class requests from USB 3.0 hub spec, table 10-5 */
-#define SetHubDepth (0x3000 | HUB_SET_DEPTH)
-#define GetPortErrorCount (0x8000 | HUB_GET_PORT_ERR_COUNT)
-
-/*
- * Generic bandwidth allocation constants/support
- */
-#define FRAME_TIME_USECS 1000L
-#define BitTime(bytecount) (7 * 8 * bytecount / 6) /* with integer truncation */
- /* Trying not to use worst-case bit-stuffing
- * of (7/6 * 8 * bytecount) = 9.33 * bytecount */
- /* bytecount = data payload byte count */
-
-#define NS_TO_US(ns) ((ns + 500L) / 1000L)
- /* convert & round nanoseconds to microseconds */
-
-
-/*
- * Full/low speed bandwidth allocation constants/support.
- */
-#define BW_HOST_DELAY 1000L /* nanoseconds */
-#define BW_HUB_LS_SETUP 333L /* nanoseconds */
- /* 4 full-speed bit times (est.) */
-
-#define FRAME_TIME_BITS 12000L /* frame = 1 millisecond */
-#define FRAME_TIME_MAX_BITS_ALLOC (90L * FRAME_TIME_BITS / 100L)
-#define FRAME_TIME_MAX_USECS_ALLOC (90L * FRAME_TIME_USECS / 100L)
-
-/*
- * Ceiling [nano/micro]seconds (typical) for that many bytes at high speed
- * ISO is a bit less, no ACK ... from USB 2.0 spec, 5.11.3 (and needed
- * to preallocate bandwidth)
- */
-#define USB2_HOST_DELAY 5 /* nsec, guess */
-#define HS_NSECS(bytes) (((55 * 8 * 2083) \
- + (2083UL * (3 + BitTime(bytes))))/1000 \
- + USB2_HOST_DELAY)
-#define HS_NSECS_ISO(bytes) (((38 * 8 * 2083) \
- + (2083UL * (3 + BitTime(bytes))))/1000 \
- + USB2_HOST_DELAY)
-#define HS_USECS(bytes) NS_TO_US(HS_NSECS(bytes))
-#define HS_USECS_ISO(bytes) NS_TO_US(HS_NSECS_ISO(bytes))
-
-extern long usb_calc_bus_time(int speed, int is_input,
- int isoc, int bytecount);
-
-/*-------------------------------------------------------------------------*/
-
-extern void usb_set_device_state(struct usb_device *udev,
- enum usb_device_state new_state);
-
-/*-------------------------------------------------------------------------*/
-
-/* exported only within usbcore */
-
-extern struct list_head usb_bus_list;
-extern struct mutex usb_bus_list_lock;
-extern wait_queue_head_t usb_kill_urb_queue;
-
-extern int usb_find_interface_driver(struct usb_device *dev,
- struct usb_interface *interface);
-
-#define usb_endpoint_out(ep_dir) (!((ep_dir) & USB_DIR_IN))
-
-#ifdef CONFIG_PM
-extern void usb_root_hub_lost_power(struct usb_device *rhdev);
-extern int hcd_bus_suspend(struct usb_device *rhdev, pm_message_t msg);
-extern int hcd_bus_resume(struct usb_device *rhdev, pm_message_t msg);
-#endif /* CONFIG_PM */
-
-#ifdef CONFIG_USB_SUSPEND
-extern void usb_hcd_resume_root_hub(struct usb_hcd *hcd);
-#else
-static inline void usb_hcd_resume_root_hub(struct usb_hcd *hcd)
-{
- return;
-}
-#endif /* CONFIG_USB_SUSPEND */
-
-
-/*
- * USB device fs stuff
- */
-
-#ifdef CONFIG_USB_DEVICEFS
-
-/*
- * these are expected to be called from the USB core/hub thread
- * with the kernel lock held
- */
-extern void usbfs_update_special(void);
-extern int usbfs_init(void);
-extern void usbfs_cleanup(void);
-
-#else /* CONFIG_USB_DEVICEFS */
-
-static inline void usbfs_update_special(void) {}
-static inline int usbfs_init(void) { return 0; }
-static inline void usbfs_cleanup(void) { }
-
-#endif /* CONFIG_USB_DEVICEFS */
-
-/*-------------------------------------------------------------------------*/
-
-#if defined(CONFIG_USB_MON) || defined(CONFIG_USB_MON_MODULE)
-
-struct usb_mon_operations {
- void (*urb_submit)(struct usb_bus *bus, struct urb *urb);
- void (*urb_submit_error)(struct usb_bus *bus, struct urb *urb, int err);
- void (*urb_complete)(struct usb_bus *bus, struct urb *urb, int status);
- /* void (*urb_unlink)(struct usb_bus *bus, struct urb *urb); */
-};
-
-extern struct usb_mon_operations *mon_ops;
-
-static inline void usbmon_urb_submit(struct usb_bus *bus, struct urb *urb)
-{
- if (bus->monitored)
- (*mon_ops->urb_submit)(bus, urb);
-}
-
-static inline void usbmon_urb_submit_error(struct usb_bus *bus, struct urb *urb,
- int error)
-{
- if (bus->monitored)
- (*mon_ops->urb_submit_error)(bus, urb, error);
-}
-
-static inline void usbmon_urb_complete(struct usb_bus *bus, struct urb *urb,
- int status)
-{
- if (bus->monitored)
- (*mon_ops->urb_complete)(bus, urb, status);
-}
-
-int usb_mon_register(struct usb_mon_operations *ops);
-void usb_mon_deregister(void);
-
-#else
-
-static inline void usbmon_urb_submit(struct usb_bus *bus, struct urb *urb) {}
-static inline void usbmon_urb_submit_error(struct usb_bus *bus, struct urb *urb,
- int error) {}
-static inline void usbmon_urb_complete(struct usb_bus *bus, struct urb *urb,
- int status) {}
-
-#endif /* CONFIG_USB_MON || CONFIG_USB_MON_MODULE */
-
-/*-------------------------------------------------------------------------*/
-
-/* random stuff */
-
-#define RUN_CONTEXT (in_irq() ? "in_irq" \
- : (in_interrupt() ? "in_interrupt" : "can sleep"))
-
-
-/* This rwsem is for use only by the hub driver and ehci-hcd.
- * Nobody else should touch it.
- */
-extern struct rw_semaphore ehci_cf_port_reset_rwsem;
-
-/* Keep track of which host controller drivers are loaded */
-#define USB_UHCI_LOADED 0
-#define USB_OHCI_LOADED 1
-#define USB_EHCI_LOADED 2
-extern unsigned long usb_hcds_loaded;
-
-#endif /* __KERNEL__ */
-
-#endif /* __USB_CORE_HCD_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/input.h b/ANDROID_3.4.5/include/linux/usb/input.h
deleted file mode 100644
index 0e010b22..00000000
--- a/ANDROID_3.4.5/include/linux/usb/input.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (C) 2005 Dmitry Torokhov
- *
- * 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.
- */
-
-#ifndef __LINUX_USB_INPUT_H
-#define __LINUX_USB_INPUT_H
-
-#include <linux/usb.h>
-#include <linux/input.h>
-#include <asm/byteorder.h>
-
-static inline void
-usb_to_input_id(const struct usb_device *dev, struct input_id *id)
-{
- id->bustype = BUS_USB;
- id->vendor = le16_to_cpu(dev->descriptor.idVendor);
- id->product = le16_to_cpu(dev->descriptor.idProduct);
- id->version = le16_to_cpu(dev->descriptor.bcdDevice);
-}
-
-#endif /* __LINUX_USB_INPUT_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/intel_mid_otg.h b/ANDROID_3.4.5/include/linux/usb/intel_mid_otg.h
deleted file mode 100644
index 756cf554..00000000
--- a/ANDROID_3.4.5/include/linux/usb/intel_mid_otg.h
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * Intel MID (Langwell/Penwell) USB OTG Transceiver driver
- * Copyright (C) 2008 - 2010, Intel Corporation.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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 __INTEL_MID_OTG_H
-#define __INTEL_MID_OTG_H
-
-#include <linux/pm.h>
-#include <linux/usb/otg.h>
-#include <linux/notifier.h>
-
-struct intel_mid_otg_xceiv;
-
-/* This is a common data structure for Intel MID platform to
- * save values of the OTG state machine */
-struct otg_hsm {
- /* Input */
- int a_bus_resume;
- int a_bus_suspend;
- int a_conn;
- int a_sess_vld;
- int a_srp_det;
- int a_vbus_vld;
- int b_bus_resume;
- int b_bus_suspend;
- int b_conn;
- int b_se0_srp;
- int b_ssend_srp;
- int b_sess_end;
- int b_sess_vld;
- int id;
-/* id values */
-#define ID_B 0x05
-#define ID_A 0x04
-#define ID_ACA_C 0x03
-#define ID_ACA_B 0x02
-#define ID_ACA_A 0x01
- int power_up;
- int adp_change;
- int test_device;
-
- /* Internal variables */
- int a_set_b_hnp_en;
- int b_srp_done;
- int b_hnp_enable;
- int hnp_poll_enable;
-
- /* Timeout indicator for timers */
- int a_wait_vrise_tmout;
- int a_wait_bcon_tmout;
- int a_aidl_bdis_tmout;
- int a_bidl_adis_tmout;
- int a_bidl_adis_tmr;
- int a_wait_vfall_tmout;
- int b_ase0_brst_tmout;
- int b_bus_suspend_tmout;
- int b_srp_init_tmout;
- int b_srp_fail_tmout;
- int b_srp_fail_tmr;
- int b_adp_sense_tmout;
-
- /* Informative variables */
- int a_bus_drop;
- int a_bus_req;
- int a_clr_err;
- int b_bus_req;
- int a_suspend_req;
- int b_bus_suspend_vld;
-
- /* Output */
- int drv_vbus;
- int loc_conn;
- int loc_sof;
-
- /* Others */
- int vbus_srp_up;
-};
-
-/* must provide ULPI access function to read/write registers implemented in
- * ULPI address space */
-struct iotg_ulpi_access_ops {
- int (*read)(struct intel_mid_otg_xceiv *iotg, u8 reg, u8 *val);
- int (*write)(struct intel_mid_otg_xceiv *iotg, u8 reg, u8 val);
-};
-
-#define OTG_A_DEVICE 0x0
-#define OTG_B_DEVICE 0x1
-
-/*
- * the Intel MID (Langwell/Penwell) otg transceiver driver needs to interact
- * with device and host drivers to implement the USB OTG related feature. More
- * function members are added based on usb_phy data structure for this
- * purpose.
- */
-struct intel_mid_otg_xceiv {
- struct usb_phy otg;
- struct otg_hsm hsm;
-
- /* base address */
- void __iomem *base;
-
- /* ops to access ulpi */
- struct iotg_ulpi_access_ops ulpi_ops;
-
- /* atomic notifier for interrupt context */
- struct atomic_notifier_head iotg_notifier;
-
- /* start/stop USB Host function */
- int (*start_host)(struct intel_mid_otg_xceiv *iotg);
- int (*stop_host)(struct intel_mid_otg_xceiv *iotg);
-
- /* start/stop USB Peripheral function */
- int (*start_peripheral)(struct intel_mid_otg_xceiv *iotg);
- int (*stop_peripheral)(struct intel_mid_otg_xceiv *iotg);
-
- /* start/stop ADP sense/probe function */
- int (*set_adp_probe)(struct intel_mid_otg_xceiv *iotg,
- bool enabled, int dev);
- int (*set_adp_sense)(struct intel_mid_otg_xceiv *iotg,
- bool enabled);
-
-#ifdef CONFIG_PM
- /* suspend/resume USB host function */
- int (*suspend_host)(struct intel_mid_otg_xceiv *iotg,
- pm_message_t message);
- int (*resume_host)(struct intel_mid_otg_xceiv *iotg);
-
- int (*suspend_peripheral)(struct intel_mid_otg_xceiv *iotg,
- pm_message_t message);
- int (*resume_peripheral)(struct intel_mid_otg_xceiv *iotg);
-#endif
-
-};
-static inline
-struct intel_mid_otg_xceiv *otg_to_mid_xceiv(struct usb_phy *otg)
-{
- return container_of(otg, struct intel_mid_otg_xceiv, otg);
-}
-
-#define MID_OTG_NOTIFY_CONNECT 0x0001
-#define MID_OTG_NOTIFY_DISCONN 0x0002
-#define MID_OTG_NOTIFY_HSUSPEND 0x0003
-#define MID_OTG_NOTIFY_HRESUME 0x0004
-#define MID_OTG_NOTIFY_CSUSPEND 0x0005
-#define MID_OTG_NOTIFY_CRESUME 0x0006
-#define MID_OTG_NOTIFY_HOSTADD 0x0007
-#define MID_OTG_NOTIFY_HOSTREMOVE 0x0008
-#define MID_OTG_NOTIFY_CLIENTADD 0x0009
-#define MID_OTG_NOTIFY_CLIENTREMOVE 0x000a
-
-static inline int
-intel_mid_otg_register_notifier(struct intel_mid_otg_xceiv *iotg,
- struct notifier_block *nb)
-{
- return atomic_notifier_chain_register(&iotg->iotg_notifier, nb);
-}
-
-static inline void
-intel_mid_otg_unregister_notifier(struct intel_mid_otg_xceiv *iotg,
- struct notifier_block *nb)
-{
- atomic_notifier_chain_unregister(&iotg->iotg_notifier, nb);
-}
-
-#endif /* __INTEL_MID_OTG_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/iowarrior.h b/ANDROID_3.4.5/include/linux/usb/iowarrior.h
deleted file mode 100644
index 4fd6513d..00000000
--- a/ANDROID_3.4.5/include/linux/usb/iowarrior.h
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef __LINUX_USB_IOWARRIOR_H
-#define __LINUX_USB_IOWARRIOR_H
-
-#define CODEMERCS_MAGIC_NUMBER 0xC0 /* like COde Mercenaries */
-
-/* Define the ioctl commands for reading and writing data */
-#define IOW_WRITE _IOW(CODEMERCS_MAGIC_NUMBER, 1, __u8 *)
-#define IOW_READ _IOW(CODEMERCS_MAGIC_NUMBER, 2, __u8 *)
-
-/*
- A struct for available device info which is read
- with the ioctl IOW_GETINFO.
- To be compatible with 2.4 userspace which didn't have an easy way to get
- this information.
-*/
-struct iowarrior_info {
- /* vendor id : supposed to be USB_VENDOR_ID_CODEMERCS in all cases */
- __u32 vendor;
- /* product id : depends on type of chip (USB_DEVICE_ID_CODEMERCS_X) */
- __u32 product;
- /* the serial number of our chip (if a serial-number is not available
- * this is empty string) */
- __u8 serial[9];
- /* revision number of the chip */
- __u32 revision;
- /* USB-speed of the device (0=UNKNOWN, 1=LOW, 2=FULL 3=HIGH) */
- __u32 speed;
- /* power consumption of the device in mA */
- __u32 power;
- /* the number of the endpoint */
- __u32 if_num;
- /* size of the data-packets on this interface */
- __u32 report_size;
-};
-
-/*
- Get some device-information (product-id , serial-number etc.)
- in order to identify a chip.
-*/
-#define IOW_GETINFO _IOR(CODEMERCS_MAGIC_NUMBER, 3, struct iowarrior_info)
-
-#endif /* __LINUX_USB_IOWARRIOR_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/irda.h b/ANDROID_3.4.5/include/linux/usb/irda.h
deleted file mode 100644
index e345ceaf..00000000
--- a/ANDROID_3.4.5/include/linux/usb/irda.h
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * USB IrDA Bridge Device Definition
- */
-
-#ifndef __LINUX_USB_IRDA_H
-#define __LINUX_USB_IRDA_H
-
-/* This device should use Application-specific class */
-
-#define USB_SUBCLASS_IRDA 0x02
-
-/*-------------------------------------------------------------------------*/
-
-/* Class-Specific requests (bRequest field) */
-
-#define USB_REQ_CS_IRDA_RECEIVING 1
-#define USB_REQ_CS_IRDA_CHECK_MEDIA_BUSY 3
-#define USB_REQ_CS_IRDA_RATE_SNIFF 4
-#define USB_REQ_CS_IRDA_UNICAST_LIST 5
-#define USB_REQ_CS_IRDA_GET_CLASS_DESC 6
-
-/*-------------------------------------------------------------------------*/
-
-/* Class-Specific descriptor */
-
-#define USB_DT_CS_IRDA 0x21
-
-/*-------------------------------------------------------------------------*/
-
-/* Data sizes */
-
-#define USB_IRDA_DS_2048 (1 << 5)
-#define USB_IRDA_DS_1024 (1 << 4)
-#define USB_IRDA_DS_512 (1 << 3)
-#define USB_IRDA_DS_256 (1 << 2)
-#define USB_IRDA_DS_128 (1 << 1)
-#define USB_IRDA_DS_64 (1 << 0)
-
-/* Window sizes */
-
-#define USB_IRDA_WS_7 (1 << 6)
-#define USB_IRDA_WS_6 (1 << 5)
-#define USB_IRDA_WS_5 (1 << 4)
-#define USB_IRDA_WS_4 (1 << 3)
-#define USB_IRDA_WS_3 (1 << 2)
-#define USB_IRDA_WS_2 (1 << 1)
-#define USB_IRDA_WS_1 (1 << 0)
-
-/* Min turnaround times in usecs */
-
-#define USB_IRDA_MTT_0 (1 << 7)
-#define USB_IRDA_MTT_10 (1 << 6)
-#define USB_IRDA_MTT_50 (1 << 5)
-#define USB_IRDA_MTT_100 (1 << 4)
-#define USB_IRDA_MTT_500 (1 << 3)
-#define USB_IRDA_MTT_1000 (1 << 2)
-#define USB_IRDA_MTT_5000 (1 << 1)
-#define USB_IRDA_MTT_10000 (1 << 0)
-
-/* Baud rates */
-
-#define USB_IRDA_BR_4000000 (1 << 8)
-#define USB_IRDA_BR_1152000 (1 << 7)
-#define USB_IRDA_BR_576000 (1 << 6)
-#define USB_IRDA_BR_115200 (1 << 5)
-#define USB_IRDA_BR_57600 (1 << 4)
-#define USB_IRDA_BR_38400 (1 << 3)
-#define USB_IRDA_BR_19200 (1 << 2)
-#define USB_IRDA_BR_9600 (1 << 1)
-#define USB_IRDA_BR_2400 (1 << 0)
-
-/* Additional BOFs */
-
-#define USB_IRDA_AB_0 (1 << 7)
-#define USB_IRDA_AB_1 (1 << 6)
-#define USB_IRDA_AB_2 (1 << 5)
-#define USB_IRDA_AB_3 (1 << 4)
-#define USB_IRDA_AB_6 (1 << 3)
-#define USB_IRDA_AB_12 (1 << 2)
-#define USB_IRDA_AB_24 (1 << 1)
-#define USB_IRDA_AB_48 (1 << 0)
-
-/* IRDA Rate Sniff */
-
-#define USB_IRDA_RATE_SNIFF 1
-
-/*-------------------------------------------------------------------------*/
-
-struct usb_irda_cs_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
-
- __le16 bcdSpecRevision;
- __u8 bmDataSize;
- __u8 bmWindowSize;
- __u8 bmMinTurnaroundTime;
- __le16 wBaudRate;
- __u8 bmAdditionalBOFs;
- __u8 bIrdaRateSniff;
- __u8 bMaxUnicastList;
-} __attribute__ ((packed));
-
-/*-------------------------------------------------------------------------*/
-
-/* Data Format */
-
-#define USB_IRDA_STATUS_MEDIA_BUSY (1 << 7)
-
-/* The following is a 4-bit value used for both
- * inbound and outbound headers:
- *
- * 0 - speed ignored
- * 1 - 2400 bps
- * 2 - 9600 bps
- * 3 - 19200 bps
- * 4 - 38400 bps
- * 5 - 57600 bps
- * 6 - 115200 bps
- * 7 - 576000 bps
- * 8 - 1.152 Mbps
- * 9 - 5 mbps
- * 10..15 - Reserved
- */
-#define USB_IRDA_STATUS_LINK_SPEED 0x0f
-
-/* The following is a 4-bit value used only for
- * outbound header:
- *
- * 0 - No change (BOF ignored)
- * 1 - 48 BOFs
- * 2 - 24 BOFs
- * 3 - 12 BOFs
- * 4 - 6 BOFs
- * 5 - 3 BOFs
- * 6 - 2 BOFs
- * 7 - 1 BOFs
- * 8 - 0 BOFs
- * 9..15 - Reserved
- */
-#define USB_IRDA_EXTRA_BOFS 0xf0
-
-struct usb_irda_inbound_header {
- __u8 bmStatus;
-};
-
-struct usb_irda_outbound_header {
- __u8 bmChange;
-};
-
-#endif /* __LINUX_USB_IRDA_H */
-
diff --git a/ANDROID_3.4.5/include/linux/usb/isp116x.h b/ANDROID_3.4.5/include/linux/usb/isp116x.h
deleted file mode 100644
index 96ca114e..00000000
--- a/ANDROID_3.4.5/include/linux/usb/isp116x.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Board initialization code should put one of these into dev->platform_data
- * and place the isp116x onto platform_bus.
- */
-
-#ifndef __LINUX_USB_ISP116X_H
-#define __LINUX_USB_ISP116X_H
-
-struct isp116x_platform_data {
- /* Enable internal resistors on downstream ports */
- unsigned sel15Kres:1;
- /* On-chip overcurrent detection */
- unsigned oc_enable:1;
- /* INT output polarity */
- unsigned int_act_high:1;
- /* INT edge or level triggered */
- unsigned int_edge_triggered:1;
- /* Enable wakeup by devices on usb bus (e.g. wakeup
- by attachment/detachment or by device activity
- such as moving a mouse). When chosen, this option
- prevents stopping internal clock, increasing
- thereby power consumption in suspended state. */
- unsigned remote_wakeup_enable:1;
- /* Inter-io delay (ns). The chip is picky about access timings; it
- expects at least:
- 150ns delay between consecutive accesses to DATA_REG,
- 300ns delay between access to ADDR_REG and DATA_REG
- OE, WE MUST NOT be changed during these intervals
- */
- void (*delay) (struct device *dev, int delay);
-};
-
-#endif /* __LINUX_USB_ISP116X_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/isp1362.h b/ANDROID_3.4.5/include/linux/usb/isp1362.h
deleted file mode 100644
index 642684bb..00000000
--- a/ANDROID_3.4.5/include/linux/usb/isp1362.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * board initialization code should put one of these into dev->platform_data
- * and place the isp1362 onto platform_bus.
- */
-
-#ifndef __LINUX_USB_ISP1362_H__
-#define __LINUX_USB_ISP1362_H__
-
-struct isp1362_platform_data {
- /* Enable internal pulldown resistors on downstream ports */
- unsigned sel15Kres:1;
- /* Clock cannot be stopped */
- unsigned clknotstop:1;
- /* On-chip overcurrent protection */
- unsigned oc_enable:1;
- /* INT output polarity */
- unsigned int_act_high:1;
- /* INT edge or level triggered */
- unsigned int_edge_triggered:1;
- /* DREQ output polarity */
- unsigned dreq_act_high:1;
- /* DACK input polarity */
- unsigned dack_act_high:1;
- /* chip can be resumed via H_WAKEUP pin */
- unsigned remote_wakeup_connected:1;
- /* Switch or not to switch (keep always powered) */
- unsigned no_power_switching:1;
- /* Ganged port power switching (0) or individual port power switching (1) */
- unsigned power_switching_mode:1;
- /* Given port_power, msec/2 after power on till power good */
- u8 potpg;
- /* Hardware reset set/clear */
- void (*reset) (struct device *dev, int set);
- /* Clock start/stop */
- void (*clock) (struct device *dev, int start);
- /* Inter-io delay (ns). The chip is picky about access timings; it
- * expects at least:
- * 110ns delay between consecutive accesses to DATA_REG,
- * 300ns delay between access to ADDR_REG and DATA_REG (registers)
- * 462ns delay between access to ADDR_REG and DATA_REG (buffer memory)
- * WE MUST NOT be activated during these intervals (even without CS!)
- */
- void (*delay) (struct device *dev, unsigned int delay);
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/usb/isp1760.h b/ANDROID_3.4.5/include/linux/usb/isp1760.h
deleted file mode 100644
index de7de53c..00000000
--- a/ANDROID_3.4.5/include/linux/usb/isp1760.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * board initialization should put one of these into dev->platform_data
- * and place the isp1760 onto platform_bus named "isp1760-hcd".
- */
-
-#ifndef __LINUX_USB_ISP1760_H
-#define __LINUX_USB_ISP1760_H
-
-struct isp1760_platform_data {
- unsigned is_isp1761:1; /* Chip is ISP1761 */
- unsigned bus_width_16:1; /* 16/32-bit data bus width */
- unsigned port1_otg:1; /* Port 1 supports OTG */
- unsigned analog_oc:1; /* Analog overcurrent */
- unsigned dack_polarity_high:1; /* DACK active high */
- unsigned dreq_polarity_high:1; /* DREQ active high */
-};
-
-#endif /* __LINUX_USB_ISP1760_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/langwell_udc.h b/ANDROID_3.4.5/include/linux/usb/langwell_udc.h
deleted file mode 100644
index 2d2d1bba..00000000
--- a/ANDROID_3.4.5/include/linux/usb/langwell_udc.h
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
- * Intel Langwell USB Device Controller driver
- * Copyright (C) 2008-2009, Intel Corporation.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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 __LANGWELL_UDC_H
-#define __LANGWELL_UDC_H
-
-
-/* MACRO defines */
-#define CAP_REG_OFFSET 0x0
-#define OP_REG_OFFSET 0x28
-
-#define DMA_ADDR_INVALID (~(dma_addr_t)0)
-
-#define DQH_ALIGNMENT 2048
-#define DTD_ALIGNMENT 64
-#define DMA_BOUNDARY 4096
-
-#define EP0_MAX_PKT_SIZE 64
-#define EP_DIR_IN 1
-#define EP_DIR_OUT 0
-
-#define FLUSH_TIMEOUT 1000
-#define RESET_TIMEOUT 1000
-#define SETUPSTAT_TIMEOUT 100
-#define PRIME_TIMEOUT 100
-
-
-/* device memory space registers */
-
-/* Capability Registers, BAR0 + CAP_REG_OFFSET */
-struct langwell_cap_regs {
- /* offset: 0x0 */
- u8 caplength; /* offset of Operational Register */
- u8 _reserved3;
- u16 hciversion; /* H: BCD encoding of host version */
- u32 hcsparams; /* H: host port steering logic capability */
- u32 hccparams; /* H: host multiple mode control capability */
-#define HCC_LEN BIT(17) /* Link power management (LPM) capability */
- u8 _reserved4[0x20-0xc];
- /* offset: 0x20 */
- u16 dciversion; /* BCD encoding of device version */
- u8 _reserved5[0x24-0x22];
- u32 dccparams; /* overall device controller capability */
-#define HOSTCAP BIT(8) /* host capable */
-#define DEVCAP BIT(7) /* device capable */
-#define DEN(d) \
- (((d)>>0)&0x1f) /* bits 4:0, device endpoint number */
-} __attribute__ ((packed));
-
-
-/* Operational Registers, BAR0 + OP_REG_OFFSET */
-struct langwell_op_regs {
- /* offset: 0x28 */
- u32 extsts;
-#define EXTS_TI1 BIT(4) /* general purpose timer interrupt 1 */
-#define EXTS_TI1TI0 BIT(3) /* general purpose timer interrupt 0 */
-#define EXTS_TI1UPI BIT(2) /* USB host periodic interrupt */
-#define EXTS_TI1UAI BIT(1) /* USB host asynchronous interrupt */
-#define EXTS_TI1NAKI BIT(0) /* NAK interrupt */
- u32 extintr;
-#define EXTI_TIE1 BIT(4) /* general purpose timer interrupt enable 1 */
-#define EXTI_TIE0 BIT(3) /* general purpose timer interrupt enable 0 */
-#define EXTI_UPIE BIT(2) /* USB host periodic interrupt enable */
-#define EXTI_UAIE BIT(1) /* USB host asynchronous interrupt enable */
-#define EXTI_NAKE BIT(0) /* NAK interrupt enable */
- /* offset: 0x30 */
- u32 usbcmd;
-#define CMD_HIRD(u) \
- (((u)>>24)&0xf) /* bits 27:24, host init resume duration */
-#define CMD_ITC(u) \
- (((u)>>16)&0xff) /* bits 23:16, interrupt threshold control */
-#define CMD_PPE BIT(15) /* per-port change events enable */
-#define CMD_ATDTW BIT(14) /* add dTD tripwire */
-#define CMD_SUTW BIT(13) /* setup tripwire */
-#define CMD_ASPE BIT(11) /* asynchronous schedule park mode enable */
-#define CMD_FS2 BIT(10) /* frame list size */
-#define CMD_ASP1 BIT(9) /* asynchronous schedule park mode count */
-#define CMD_ASP0 BIT(8)
-#define CMD_LR BIT(7) /* light host/device controller reset */
-#define CMD_IAA BIT(6) /* interrupt on async advance doorbell */
-#define CMD_ASE BIT(5) /* asynchronous schedule enable */
-#define CMD_PSE BIT(4) /* periodic schedule enable */
-#define CMD_FS1 BIT(3)
-#define CMD_FS0 BIT(2)
-#define CMD_RST BIT(1) /* controller reset */
-#define CMD_RUNSTOP BIT(0) /* run/stop */
- u32 usbsts;
-#define STS_PPCI(u) \
- (((u)>>16)&0xffff) /* bits 31:16, port-n change detect */
-#define STS_AS BIT(15) /* asynchronous schedule status */
-#define STS_PS BIT(14) /* periodic schedule status */
-#define STS_RCL BIT(13) /* reclamation */
-#define STS_HCH BIT(12) /* HC halted */
-#define STS_ULPII BIT(10) /* ULPI interrupt */
-#define STS_SLI BIT(8) /* DC suspend */
-#define STS_SRI BIT(7) /* SOF received */
-#define STS_URI BIT(6) /* USB reset received */
-#define STS_AAI BIT(5) /* interrupt on async advance */
-#define STS_SEI BIT(4) /* system error */
-#define STS_FRI BIT(3) /* frame list rollover */
-#define STS_PCI BIT(2) /* port change detect */
-#define STS_UEI BIT(1) /* USB error interrupt */
-#define STS_UI BIT(0) /* USB interrupt */
- u32 usbintr;
-/* bits 31:16, per-port interrupt enable */
-#define INTR_PPCE(u) (((u)>>16)&0xffff)
-#define INTR_ULPIE BIT(10) /* ULPI enable */
-#define INTR_SLE BIT(8) /* DC sleep/suspend enable */
-#define INTR_SRE BIT(7) /* SOF received enable */
-#define INTR_URE BIT(6) /* USB reset enable */
-#define INTR_AAE BIT(5) /* interrupt on async advance enable */
-#define INTR_SEE BIT(4) /* system error enable */
-#define INTR_FRE BIT(3) /* frame list rollover enable */
-#define INTR_PCE BIT(2) /* port change detect enable */
-#define INTR_UEE BIT(1) /* USB error interrupt enable */
-#define INTR_UE BIT(0) /* USB interrupt enable */
- u32 frindex; /* frame index */
-#define FRINDEX_MASK (0x3fff << 0)
- u32 ctrldssegment; /* not used */
- u32 deviceaddr;
-#define USBADR_SHIFT 25
-#define USBADR(d) \
- (((d)>>25)&0x7f) /* bits 31:25, device address */
-#define USBADR_MASK (0x7f << 25)
-#define USBADRA BIT(24) /* device address advance */
- u32 endpointlistaddr;/* endpoint list top memory address */
-/* bits 31:11, endpoint list pointer */
-#define EPBASE(d) (((d)>>11)&0x1fffff)
-#define ENDPOINTLISTADDR_MASK (0x1fffff << 11)
- u32 ttctrl; /* H: TT operatin, not used */
- /* offset: 0x50 */
- u32 burstsize; /* burst size of data movement */
-#define TXPBURST(b) \
- (((b)>>8)&0xff) /* bits 15:8, TX burst length */
-#define RXPBURST(b) \
- (((b)>>0)&0xff) /* bits 7:0, RX burst length */
- u32 txfilltuning; /* TX tuning */
- u32 txttfilltuning; /* H: TX TT tuning */
- u32 ic_usb; /* control the IC_USB FS/LS transceiver */
- /* offset: 0x60 */
- u32 ulpi_viewport; /* indirect access to ULPI PHY */
-#define ULPIWU BIT(31) /* ULPI wakeup */
-#define ULPIRUN BIT(30) /* ULPI read/write run */
-#define ULPIRW BIT(29) /* ULPI read/write control */
-#define ULPISS BIT(27) /* ULPI sync state */
-#define ULPIPORT(u) \
- (((u)>>24)&7) /* bits 26:24, ULPI port number */
-#define ULPIADDR(u) \
- (((u)>>16)&0xff) /* bits 23:16, ULPI data address */
-#define ULPIDATRD(u) \
- (((u)>>8)&0xff) /* bits 15:8, ULPI data read */
-#define ULPIDATWR(u) \
- (((u)>>0)&0xff) /* bits 7:0, ULPI date write */
- u8 _reserved6[0x70-0x64];
- /* offset: 0x70 */
- u32 configflag; /* H: not used */
- u32 portsc1; /* port status */
-#define DA(p) \
- (((p)>>25)&0x7f) /* bits 31:25, device address */
-#define PORTS_SSTS (BIT(24) | BIT(23)) /* suspend status */
-#define PORTS_WKOC BIT(22) /* wake on over-current enable */
-#define PORTS_WKDS BIT(21) /* wake on disconnect enable */
-#define PORTS_WKCN BIT(20) /* wake on connect enable */
-#define PORTS_PTC(p) (((p)>>16)&0xf) /* bits 19:16, port test control */
-#define PORTS_PIC (BIT(15) | BIT(14)) /* port indicator control */
-#define PORTS_PO BIT(13) /* port owner */
-#define PORTS_PP BIT(12) /* port power */
-#define PORTS_LS (BIT(11) | BIT(10)) /* line status */
-#define PORTS_SLP BIT(9) /* suspend using L1 */
-#define PORTS_PR BIT(8) /* port reset */
-#define PORTS_SUSP BIT(7) /* suspend */
-#define PORTS_FPR BIT(6) /* force port resume */
-#define PORTS_OCC BIT(5) /* over-current change */
-#define PORTS_OCA BIT(4) /* over-current active */
-#define PORTS_PEC BIT(3) /* port enable/disable change */
-#define PORTS_PE BIT(2) /* port enable/disable */
-#define PORTS_CSC BIT(1) /* connect status change */
-#define PORTS_CCS BIT(0) /* current connect status */
- u8 _reserved7[0xb4-0x78];
- /* offset: 0xb4 */
- u32 devlc; /* control LPM and each USB port behavior */
-/* bits 31:29, parallel transceiver select */
-#define LPM_PTS(d) (((d)>>29)&7)
-#define LPM_STS BIT(28) /* serial transceiver select */
-#define LPM_PTW BIT(27) /* parallel transceiver width */
-#define LPM_PSPD(d) (((d)>>25)&3) /* bits 26:25, port speed */
-#define LPM_PSPD_MASK (BIT(26) | BIT(25))
-#define LPM_SPEED_FULL 0
-#define LPM_SPEED_LOW 1
-#define LPM_SPEED_HIGH 2
-#define LPM_SRT BIT(24) /* shorten reset time */
-#define LPM_PFSC BIT(23) /* port force full speed connect */
-#define LPM_PHCD BIT(22) /* PHY low power suspend clock disable */
-#define LPM_STL BIT(16) /* STALL reply to LPM token */
-#define LPM_BA(d) \
- (((d)>>1)&0x7ff) /* bits 11:1, BmAttributes */
-#define LPM_NYT_ACK BIT(0) /* NYET/ACK reply to LPM token */
- u8 _reserved8[0xf4-0xb8];
- /* offset: 0xf4 */
- u32 otgsc; /* On-The-Go status and control */
-#define OTGSC_DPIE BIT(30) /* data pulse interrupt enable */
-#define OTGSC_MSE BIT(29) /* 1 ms timer interrupt enable */
-#define OTGSC_BSEIE BIT(28) /* B session end interrupt enable */
-#define OTGSC_BSVIE BIT(27) /* B session valid interrupt enable */
-#define OTGSC_ASVIE BIT(26) /* A session valid interrupt enable */
-#define OTGSC_AVVIE BIT(25) /* A VBUS valid interrupt enable */
-#define OTGSC_IDIE BIT(24) /* USB ID interrupt enable */
-#define OTGSC_DPIS BIT(22) /* data pulse interrupt status */
-#define OTGSC_MSS BIT(21) /* 1 ms timer interrupt status */
-#define OTGSC_BSEIS BIT(20) /* B session end interrupt status */
-#define OTGSC_BSVIS BIT(19) /* B session valid interrupt status */
-#define OTGSC_ASVIS BIT(18) /* A session valid interrupt status */
-#define OTGSC_AVVIS BIT(17) /* A VBUS valid interrupt status */
-#define OTGSC_IDIS BIT(16) /* USB ID interrupt status */
-#define OTGSC_DPS BIT(14) /* data bus pulsing status */
-#define OTGSC_MST BIT(13) /* 1 ms timer toggle */
-#define OTGSC_BSE BIT(12) /* B session end */
-#define OTGSC_BSV BIT(11) /* B session valid */
-#define OTGSC_ASV BIT(10) /* A session valid */
-#define OTGSC_AVV BIT(9) /* A VBUS valid */
-#define OTGSC_USBID BIT(8) /* USB ID */
-#define OTGSC_HABA BIT(7) /* hw assist B-disconnect to A-connect */
-#define OTGSC_HADP BIT(6) /* hw assist data pulse */
-#define OTGSC_IDPU BIT(5) /* ID pullup */
-#define OTGSC_DP BIT(4) /* data pulsing */
-#define OTGSC_OT BIT(3) /* OTG termination */
-#define OTGSC_HAAR BIT(2) /* hw assist auto reset */
-#define OTGSC_VC BIT(1) /* VBUS charge */
-#define OTGSC_VD BIT(0) /* VBUS discharge */
- u32 usbmode;
-#define MODE_VBPS BIT(5) /* R/W VBUS power select */
-#define MODE_SDIS BIT(4) /* R/W stream disable mode */
-#define MODE_SLOM BIT(3) /* R/W setup lockout mode */
-#define MODE_ENSE BIT(2) /* endian select */
-#define MODE_CM(u) (((u)>>0)&3) /* bits 1:0, controller mode */
-#define MODE_IDLE 0
-#define MODE_DEVICE 2
-#define MODE_HOST 3
- u8 _reserved9[0x100-0xfc];
- /* offset: 0x100 */
- u32 endptnak;
-#define EPTN(e) \
- (((e)>>16)&0xffff) /* bits 31:16, TX endpoint NAK */
-#define EPRN(e) \
- (((e)>>0)&0xffff) /* bits 15:0, RX endpoint NAK */
- u32 endptnaken;
-#define EPTNE(e) \
- (((e)>>16)&0xffff) /* bits 31:16, TX endpoint NAK enable */
-#define EPRNE(e) \
- (((e)>>0)&0xffff) /* bits 15:0, RX endpoint NAK enable */
- u32 endptsetupstat;
-#define SETUPSTAT_MASK (0xffff << 0) /* bits 15:0 */
-#define EP0SETUPSTAT_MASK 1
- u32 endptprime;
-/* bits 31:16, prime endpoint transmit buffer */
-#define PETB(e) (((e)>>16)&0xffff)
-/* bits 15:0, prime endpoint receive buffer */
-#define PERB(e) (((e)>>0)&0xffff)
- /* offset: 0x110 */
- u32 endptflush;
-/* bits 31:16, flush endpoint transmit buffer */
-#define FETB(e) (((e)>>16)&0xffff)
-/* bits 15:0, flush endpoint receive buffer */
-#define FERB(e) (((e)>>0)&0xffff)
- u32 endptstat;
-/* bits 31:16, endpoint transmit buffer ready */
-#define ETBR(e) (((e)>>16)&0xffff)
-/* bits 15:0, endpoint receive buffer ready */
-#define ERBR(e) (((e)>>0)&0xffff)
- u32 endptcomplete;
-/* bits 31:16, endpoint transmit complete event */
-#define ETCE(e) (((e)>>16)&0xffff)
-/* bits 15:0, endpoint receive complete event */
-#define ERCE(e) (((e)>>0)&0xffff)
- /* offset: 0x11c */
- u32 endptctrl[16];
-#define EPCTRL_TXE BIT(23) /* TX endpoint enable */
-#define EPCTRL_TXR BIT(22) /* TX data toggle reset */
-#define EPCTRL_TXI BIT(21) /* TX data toggle inhibit */
-#define EPCTRL_TXT(e) (((e)>>18)&3) /* bits 19:18, TX endpoint type */
-#define EPCTRL_TXT_SHIFT 18
-#define EPCTRL_TXD BIT(17) /* TX endpoint data source */
-#define EPCTRL_TXS BIT(16) /* TX endpoint STALL */
-#define EPCTRL_RXE BIT(7) /* RX endpoint enable */
-#define EPCTRL_RXR BIT(6) /* RX data toggle reset */
-#define EPCTRL_RXI BIT(5) /* RX data toggle inhibit */
-#define EPCTRL_RXT(e) (((e)>>2)&3) /* bits 3:2, RX endpoint type */
-#define EPCTRL_RXT_SHIFT 2 /* bits 19:18, TX endpoint type */
-#define EPCTRL_RXD BIT(1) /* RX endpoint data sink */
-#define EPCTRL_RXS BIT(0) /* RX endpoint STALL */
-} __attribute__ ((packed));
-
-#endif /* __LANGWELL_UDC_H */
-
diff --git a/ANDROID_3.4.5/include/linux/usb/m66592.h b/ANDROID_3.4.5/include/linux/usb/m66592.h
deleted file mode 100644
index a4ba31ab..00000000
--- a/ANDROID_3.4.5/include/linux/usb/m66592.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * M66592 driver platform data
- *
- * Copyright (C) 2009 Renesas Solutions Corp.
- *
- * 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 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 __LINUX_USB_M66592_H
-#define __LINUX_USB_M66592_H
-
-#define M66592_PLATDATA_XTAL_12MHZ 0x01
-#define M66592_PLATDATA_XTAL_24MHZ 0x02
-#define M66592_PLATDATA_XTAL_48MHZ 0x03
-
-struct m66592_platdata {
- /* one = on chip controller, zero = external controller */
- unsigned on_chip:1;
-
- /* one = big endian, zero = little endian */
- unsigned endian:1;
-
- /* (external controller only) M66592_PLATDATA_XTAL_nnMHZ */
- unsigned xtal:2;
-
- /* (external controller only) one = 3.3V, zero = 1.5V */
- unsigned vif:1;
-
- /* (external controller only) set one = WR0_N shorted to WR1_N */
- unsigned wr0_shorted_to_wr1:1;
-};
-
-#endif /* __LINUX_USB_M66592_H */
-
diff --git a/ANDROID_3.4.5/include/linux/usb/midi.h b/ANDROID_3.4.5/include/linux/usb/midi.h
deleted file mode 100644
index c8c52e3c..00000000
--- a/ANDROID_3.4.5/include/linux/usb/midi.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * <linux/usb/midi.h> -- USB MIDI definitions.
- *
- * Copyright (C) 2006 Thumtronics Pty Ltd.
- * Developed for Thumtronics by Grey Innovation
- * Ben Williamson <ben.williamson@greyinnovation.com>
- *
- * This software is distributed under the terms of the GNU General Public
- * License ("GPL") version 2, as published by the Free Software Foundation.
- *
- * This file holds USB constants and structures defined
- * by the USB Device Class Definition for MIDI Devices.
- * Comments below reference relevant sections of that document:
- *
- * http://www.usb.org/developers/devclass_docs/midi10.pdf
- */
-
-#ifndef __LINUX_USB_MIDI_H
-#define __LINUX_USB_MIDI_H
-
-#include <linux/types.h>
-
-/* A.1 MS Class-Specific Interface Descriptor Subtypes */
-#define USB_MS_HEADER 0x01
-#define USB_MS_MIDI_IN_JACK 0x02
-#define USB_MS_MIDI_OUT_JACK 0x03
-#define USB_MS_ELEMENT 0x04
-
-/* A.2 MS Class-Specific Endpoint Descriptor Subtypes */
-#define USB_MS_GENERAL 0x01
-
-/* A.3 MS MIDI IN and OUT Jack Types */
-#define USB_MS_EMBEDDED 0x01
-#define USB_MS_EXTERNAL 0x02
-
-/* 6.1.2.1 Class-Specific MS Interface Header Descriptor */
-struct usb_ms_header_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubtype;
- __le16 bcdMSC;
- __le16 wTotalLength;
-} __attribute__ ((packed));
-
-#define USB_DT_MS_HEADER_SIZE 7
-
-/* 6.1.2.2 MIDI IN Jack Descriptor */
-struct usb_midi_in_jack_descriptor {
- __u8 bLength;
- __u8 bDescriptorType; /* USB_DT_CS_INTERFACE */
- __u8 bDescriptorSubtype; /* USB_MS_MIDI_IN_JACK */
- __u8 bJackType; /* USB_MS_EMBEDDED/EXTERNAL */
- __u8 bJackID;
- __u8 iJack;
-} __attribute__ ((packed));
-
-#define USB_DT_MIDI_IN_SIZE 6
-
-struct usb_midi_source_pin {
- __u8 baSourceID;
- __u8 baSourcePin;
-} __attribute__ ((packed));
-
-/* 6.1.2.3 MIDI OUT Jack Descriptor */
-struct usb_midi_out_jack_descriptor {
- __u8 bLength;
- __u8 bDescriptorType; /* USB_DT_CS_INTERFACE */
- __u8 bDescriptorSubtype; /* USB_MS_MIDI_OUT_JACK */
- __u8 bJackType; /* USB_MS_EMBEDDED/EXTERNAL */
- __u8 bJackID;
- __u8 bNrInputPins; /* p */
- struct usb_midi_source_pin pins[]; /* [p] */
- /*__u8 iJack; -- omitted due to variable-sized pins[] */
-} __attribute__ ((packed));
-
-#define USB_DT_MIDI_OUT_SIZE(p) (7 + 2 * (p))
-
-/* As above, but more useful for defining your own descriptors: */
-#define DECLARE_USB_MIDI_OUT_JACK_DESCRIPTOR(p) \
-struct usb_midi_out_jack_descriptor_##p { \
- __u8 bLength; \
- __u8 bDescriptorType; \
- __u8 bDescriptorSubtype; \
- __u8 bJackType; \
- __u8 bJackID; \
- __u8 bNrInputPins; \
- struct usb_midi_source_pin pins[p]; \
- __u8 iJack; \
-} __attribute__ ((packed))
-
-/* 6.2.2 Class-Specific MS Bulk Data Endpoint Descriptor */
-struct usb_ms_endpoint_descriptor {
- __u8 bLength; /* 4+n */
- __u8 bDescriptorType; /* USB_DT_CS_ENDPOINT */
- __u8 bDescriptorSubtype; /* USB_MS_GENERAL */
- __u8 bNumEmbMIDIJack; /* n */
- __u8 baAssocJackID[]; /* [n] */
-} __attribute__ ((packed));
-
-#define USB_DT_MS_ENDPOINT_SIZE(n) (4 + (n))
-
-/* As above, but more useful for defining your own descriptors: */
-#define DECLARE_USB_MS_ENDPOINT_DESCRIPTOR(n) \
-struct usb_ms_endpoint_descriptor_##n { \
- __u8 bLength; \
- __u8 bDescriptorType; \
- __u8 bDescriptorSubtype; \
- __u8 bNumEmbMIDIJack; \
- __u8 baAssocJackID[n]; \
-} __attribute__ ((packed))
-
-#endif /* __LINUX_USB_MIDI_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/msm_hsusb.h b/ANDROID_3.4.5/include/linux/usb/msm_hsusb.h
deleted file mode 100644
index 22a396c1..00000000
--- a/ANDROID_3.4.5/include/linux/usb/msm_hsusb.h
+++ /dev/null
@@ -1,185 +0,0 @@
-/* linux/include/asm-arm/arch-msm/hsusb.h
- *
- * Copyright (C) 2008 Google, Inc.
- * Author: Brian Swetland <swetland@google.com>
- * Copyright (c) 2009-2011, Code Aurora Forum. All rights reserved.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#ifndef __ASM_ARCH_MSM_HSUSB_H
-#define __ASM_ARCH_MSM_HSUSB_H
-
-#include <linux/types.h>
-#include <linux/usb/otg.h>
-
-/**
- * Supported USB modes
- *
- * USB_PERIPHERAL Only peripheral mode is supported.
- * USB_HOST Only host mode is supported.
- * USB_OTG OTG mode is supported.
- *
- */
-enum usb_mode_type {
- USB_NONE = 0,
- USB_PERIPHERAL,
- USB_HOST,
- USB_OTG,
-};
-
-/**
- * OTG control
- *
- * OTG_NO_CONTROL Id/VBUS notifications not required. Useful in host
- * only configuration.
- * OTG_PHY_CONTROL Id/VBUS notifications comes form USB PHY.
- * OTG_PMIC_CONTROL Id/VBUS notifications comes from PMIC hardware.
- * OTG_USER_CONTROL Id/VBUS notifcations comes from User via sysfs.
- *
- */
-enum otg_control_type {
- OTG_NO_CONTROL = 0,
- OTG_PHY_CONTROL,
- OTG_PMIC_CONTROL,
- OTG_USER_CONTROL,
-};
-
-/**
- * PHY used in
- *
- * INVALID_PHY Unsupported PHY
- * CI_45NM_INTEGRATED_PHY Chipidea 45nm integrated PHY
- * SNPS_28NM_INTEGRATED_PHY Synopsis 28nm integrated PHY
- *
- */
-enum msm_usb_phy_type {
- INVALID_PHY = 0,
- CI_45NM_INTEGRATED_PHY,
- SNPS_28NM_INTEGRATED_PHY,
-};
-
-#define IDEV_CHG_MAX 1500
-#define IUNIT 100
-
-/**
- * Different states involved in USB charger detection.
- *
- * USB_CHG_STATE_UNDEFINED USB charger is not connected or detection
- * process is not yet started.
- * USB_CHG_STATE_WAIT_FOR_DCD Waiting for Data pins contact.
- * USB_CHG_STATE_DCD_DONE Data pin contact is detected.
- * USB_CHG_STATE_PRIMARY_DONE Primary detection is completed (Detects
- * between SDP and DCP/CDP).
- * USB_CHG_STATE_SECONDARY_DONE Secondary detection is completed (Detects
- * between DCP and CDP).
- * USB_CHG_STATE_DETECTED USB charger type is determined.
- *
- */
-enum usb_chg_state {
- USB_CHG_STATE_UNDEFINED = 0,
- USB_CHG_STATE_WAIT_FOR_DCD,
- USB_CHG_STATE_DCD_DONE,
- USB_CHG_STATE_PRIMARY_DONE,
- USB_CHG_STATE_SECONDARY_DONE,
- USB_CHG_STATE_DETECTED,
-};
-
-/**
- * USB charger types
- *
- * USB_INVALID_CHARGER Invalid USB charger.
- * USB_SDP_CHARGER Standard downstream port. Refers to a downstream port
- * on USB2.0 compliant host/hub.
- * USB_DCP_CHARGER Dedicated charger port (AC charger/ Wall charger).
- * USB_CDP_CHARGER Charging downstream port. Enumeration can happen and
- * IDEV_CHG_MAX can be drawn irrespective of USB state.
- *
- */
-enum usb_chg_type {
- USB_INVALID_CHARGER = 0,
- USB_SDP_CHARGER,
- USB_DCP_CHARGER,
- USB_CDP_CHARGER,
-};
-
-/**
- * struct msm_otg_platform_data - platform device data
- * for msm_otg driver.
- * @phy_init_seq: PHY configuration sequence. val, reg pairs
- * terminated by -1.
- * @vbus_power: VBUS power on/off routine.
- * @power_budget: VBUS power budget in mA (0 will be treated as 500mA).
- * @mode: Supported mode (OTG/peripheral/host).
- * @otg_control: OTG switch controlled by user/Id pin
- * @default_mode: Default operational mode. Applicable only if
- * OTG switch is controller by user.
- * @pclk_src_name: pclk is derived from ebi1_usb_clk in case of 7x27 and 8k
- * dfab_usb_hs_clk in case of 8660 and 8960.
- */
-struct msm_otg_platform_data {
- int *phy_init_seq;
- void (*vbus_power)(bool on);
- unsigned power_budget;
- enum usb_mode_type mode;
- enum otg_control_type otg_control;
- enum usb_mode_type default_mode;
- enum msm_usb_phy_type phy_type;
- void (*setup_gpio)(enum usb_otg_state state);
- char *pclk_src_name;
-};
-
-/**
- * struct msm_otg: OTG driver data. Shared by HCD and DCD.
- * @otg: USB OTG Transceiver structure.
- * @pdata: otg device platform data.
- * @irq: IRQ number assigned for HSUSB controller.
- * @clk: clock struct of usb_hs_clk.
- * @pclk: clock struct of usb_hs_pclk.
- * @pclk_src: pclk source for voting.
- * @phy_reset_clk: clock struct of usb_phy_clk.
- * @core_clk: clock struct of usb_hs_core_clk.
- * @regs: ioremapped register base address.
- * @inputs: OTG state machine inputs(Id, SessValid etc).
- * @sm_work: OTG state machine work.
- * @in_lpm: indicates low power mode (LPM) state.
- * @async_int: Async interrupt arrived.
- * @cur_power: The amount of mA available from downstream port.
- * @chg_work: Charger detection work.
- * @chg_state: The state of charger detection process.
- * @chg_type: The type of charger attached.
- * @dcd_retires: The retry count used to track Data contact
- * detection process.
- */
-struct msm_otg {
- struct usb_phy phy;
- struct msm_otg_platform_data *pdata;
- int irq;
- struct clk *clk;
- struct clk *pclk;
- struct clk *pclk_src;
- struct clk *phy_reset_clk;
- struct clk *core_clk;
- void __iomem *regs;
-#define ID 0
-#define B_SESS_VLD 1
- unsigned long inputs;
- struct work_struct sm_work;
- atomic_t in_lpm;
- int async_int;
- unsigned cur_power;
- struct delayed_work chg_work;
- enum usb_chg_state chg_state;
- enum usb_chg_type chg_type;
- u8 dcd_retries;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/usb/msm_hsusb_hw.h b/ANDROID_3.4.5/include/linux/usb/msm_hsusb_hw.h
deleted file mode 100644
index 6e97a2d3..00000000
--- a/ANDROID_3.4.5/include/linux/usb/msm_hsusb_hw.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2007 Google, Inc.
- * Author: Brian Swetland <swetland@google.com>
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#ifndef __LINUX_USB_GADGET_MSM72K_UDC_H__
-#define __LINUX_USB_GADGET_MSM72K_UDC_H__
-
-#define USB_AHBBURST (MSM_USB_BASE + 0x0090)
-#define USB_AHBMODE (MSM_USB_BASE + 0x0098)
-#define USB_CAPLENGTH (MSM_USB_BASE + 0x0100) /* 8 bit */
-
-#define USB_USBCMD (MSM_USB_BASE + 0x0140)
-#define USB_PORTSC (MSM_USB_BASE + 0x0184)
-#define USB_OTGSC (MSM_USB_BASE + 0x01A4)
-#define USB_USBMODE (MSM_USB_BASE + 0x01A8)
-#define USB_PHY_CTRL (MSM_USB_BASE + 0x0240)
-
-#define USBCMD_RESET 2
-#define USB_USBINTR (MSM_USB_BASE + 0x0148)
-
-#define PORTSC_PHCD (1 << 23) /* phy suspend mode */
-#define PORTSC_PTS_MASK (3 << 30)
-#define PORTSC_PTS_ULPI (3 << 30)
-
-#define USB_ULPI_VIEWPORT (MSM_USB_BASE + 0x0170)
-#define ULPI_RUN (1 << 30)
-#define ULPI_WRITE (1 << 29)
-#define ULPI_READ (0 << 29)
-#define ULPI_ADDR(n) (((n) & 255) << 16)
-#define ULPI_DATA(n) ((n) & 255)
-#define ULPI_DATA_READ(n) (((n) >> 8) & 255)
-
-#define ASYNC_INTR_CTRL (1 << 29) /* Enable async interrupt */
-#define ULPI_STP_CTRL (1 << 30) /* Block communication with PHY */
-#define PHY_RETEN (1 << 1) /* PHY retention enable/disable */
-
-/* OTG definitions */
-#define OTGSC_INTSTS_MASK (0x7f << 16)
-#define OTGSC_ID (1 << 8)
-#define OTGSC_BSV (1 << 11)
-#define OTGSC_IDIS (1 << 16)
-#define OTGSC_BSVIS (1 << 19)
-#define OTGSC_IDIE (1 << 24)
-#define OTGSC_BSVIE (1 << 27)
-
-#endif /* __LINUX_USB_GADGET_MSM72K_UDC_H__ */
diff --git a/ANDROID_3.4.5/include/linux/usb/musb.h b/ANDROID_3.4.5/include/linux/usb/musb.h
deleted file mode 100644
index eb505250..00000000
--- a/ANDROID_3.4.5/include/linux/usb/musb.h
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * This is used to for host and peripheral modes of the driver for
- * Inventra (Multidrop) Highspeed Dual-Role Controllers: (M)HDRC.
- *
- * Board initialization should put one of these into dev->platform_data,
- * probably on some platform_device named "musb-hdrc". It encapsulates
- * key configuration differences between boards.
- */
-
-#ifndef __LINUX_USB_MUSB_H
-#define __LINUX_USB_MUSB_H
-
-/* The USB role is defined by the connector used on the board, so long as
- * standards are being followed. (Developer boards sometimes won't.)
- */
-enum musb_mode {
- MUSB_UNDEFINED = 0,
- MUSB_HOST, /* A or Mini-A connector */
- MUSB_PERIPHERAL, /* B or Mini-B connector */
- MUSB_OTG /* Mini-AB connector */
-};
-
-struct clk;
-
-enum musb_fifo_style {
- FIFO_RXTX,
- FIFO_TX,
- FIFO_RX
-} __attribute__ ((packed));
-
-enum musb_buf_mode {
- BUF_SINGLE,
- BUF_DOUBLE
-} __attribute__ ((packed));
-
-struct musb_fifo_cfg {
- u8 hw_ep_num;
- enum musb_fifo_style style;
- enum musb_buf_mode mode;
- u16 maxpacket;
-};
-
-#define MUSB_EP_FIFO(ep, st, m, pkt) \
-{ \
- .hw_ep_num = ep, \
- .style = st, \
- .mode = m, \
- .maxpacket = pkt, \
-}
-
-#define MUSB_EP_FIFO_SINGLE(ep, st, pkt) \
- MUSB_EP_FIFO(ep, st, BUF_SINGLE, pkt)
-
-#define MUSB_EP_FIFO_DOUBLE(ep, st, pkt) \
- MUSB_EP_FIFO(ep, st, BUF_DOUBLE, pkt)
-
-struct musb_hdrc_eps_bits {
- const char name[16];
- u8 bits;
-};
-
-struct musb_hdrc_config {
- struct musb_fifo_cfg *fifo_cfg; /* board fifo configuration */
- unsigned fifo_cfg_size; /* size of the fifo configuration */
-
- /* MUSB configuration-specific details */
- unsigned multipoint:1; /* multipoint device */
- unsigned dyn_fifo:1 __deprecated; /* supports dynamic fifo sizing */
- unsigned soft_con:1 __deprecated; /* soft connect required */
- unsigned utm_16:1 __deprecated; /* utm data witdh is 16 bits */
- unsigned big_endian:1; /* true if CPU uses big-endian */
- unsigned mult_bulk_tx:1; /* Tx ep required for multbulk pkts */
- unsigned mult_bulk_rx:1; /* Rx ep required for multbulk pkts */
- unsigned high_iso_tx:1; /* Tx ep required for HB iso */
- unsigned high_iso_rx:1; /* Rx ep required for HD iso */
- unsigned dma:1 __deprecated; /* supports DMA */
- unsigned vendor_req:1 __deprecated; /* vendor registers required */
-
- u8 num_eps; /* number of endpoints _with_ ep0 */
- u8 dma_channels __deprecated; /* number of dma channels */
- u8 dyn_fifo_size; /* dynamic size in bytes */
- u8 vendor_ctrl __deprecated; /* vendor control reg width */
- u8 vendor_stat __deprecated; /* vendor status reg witdh */
- u8 dma_req_chan __deprecated; /* bitmask for required dma channels */
- u8 ram_bits; /* ram address size */
-
- struct musb_hdrc_eps_bits *eps_bits __deprecated;
-#ifdef CONFIG_BLACKFIN
- /* A GPIO controlling VRSEL in Blackfin */
- unsigned int gpio_vrsel;
- unsigned int gpio_vrsel_active;
- /* musb CLKIN in Blackfin in MHZ */
- unsigned char clkin;
-#endif
-
-};
-
-struct musb_hdrc_platform_data {
- /* MUSB_HOST, MUSB_PERIPHERAL, or MUSB_OTG */
- u8 mode;
-
- /* for clk_get() */
- const char *clock;
-
- /* (HOST or OTG) switch VBUS on/off */
- int (*set_vbus)(struct device *dev, int is_on);
-
- /* (HOST or OTG) mA/2 power supplied on (default = 8mA) */
- u8 power;
-
- /* (PERIPHERAL) mA/2 max power consumed (default = 100mA) */
- u8 min_power;
-
- /* (HOST or OTG) msec/2 after VBUS on till power good */
- u8 potpgt;
-
- /* (HOST or OTG) program PHY for external Vbus */
- unsigned extvbus:1;
-
- /* Power the device on or off */
- int (*set_power)(int state);
-
- /* MUSB configuration-specific details */
- struct musb_hdrc_config *config;
-
- /* Architecture specific board data */
- void *board_data;
-
- /* Platform specific struct musb_ops pointer */
- const void *platform_ops;
-};
-
-
-/* TUSB 6010 support */
-
-#define TUSB6010_OSCCLK_60 16667 /* psec/clk @ 60.0 MHz */
-#define TUSB6010_REFCLK_24 41667 /* psec/clk @ 24.0 MHz XI */
-#define TUSB6010_REFCLK_19 52083 /* psec/clk @ 19.2 MHz CLKIN */
-
-#ifdef CONFIG_ARCH_OMAP2
-
-extern int __init tusb6010_setup_interface(
- struct musb_hdrc_platform_data *data,
- unsigned ps_refclk, unsigned waitpin,
- unsigned async_cs, unsigned sync_cs,
- unsigned irq, unsigned dmachan);
-
-extern int tusb6010_platform_retime(unsigned is_refclk);
-
-#endif /* OMAP2 */
-
-#endif /* __LINUX_USB_MUSB_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/net2280.h b/ANDROID_3.4.5/include/linux/usb/net2280.h
deleted file mode 100644
index 148b8fa5..00000000
--- a/ANDROID_3.4.5/include/linux/usb/net2280.h
+++ /dev/null
@@ -1,443 +0,0 @@
-/*
- * NetChip 2280 high/full speed USB device controller.
- * Unlike many such controllers, this one talks PCI.
- *
- * Copyright (C) 2002 NetChip Technology, Inc. (http://www.netchip.com)
- * Copyright (C) 2003 David Brownell
- *
- * 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
- */
-
-#ifndef __LINUX_USB_NET2280_H
-#define __LINUX_USB_NET2280_H
-
-/*-------------------------------------------------------------------------*/
-
-/* NET2280 MEMORY MAPPED REGISTERS
- *
- * The register layout came from the chip documentation, and the bit
- * number definitions were extracted from chip specification.
- *
- * Use the shift operator ('<<') to build bit masks, with readl/writel
- * to access the registers through PCI.
- */
-
-/* main registers, BAR0 + 0x0000 */
-struct net2280_regs {
- /* offset 0x0000 */
- u32 devinit;
-#define LOCAL_CLOCK_FREQUENCY 8
-#define FORCE_PCI_RESET 7
-#define PCI_ID 6
-#define PCI_ENABLE 5
-#define FIFO_SOFT_RESET 4
-#define CFG_SOFT_RESET 3
-#define PCI_SOFT_RESET 2
-#define USB_SOFT_RESET 1
-#define M8051_RESET 0
- u32 eectl;
-#define EEPROM_ADDRESS_WIDTH 23
-#define EEPROM_CHIP_SELECT_ACTIVE 22
-#define EEPROM_PRESENT 21
-#define EEPROM_VALID 20
-#define EEPROM_BUSY 19
-#define EEPROM_CHIP_SELECT_ENABLE 18
-#define EEPROM_BYTE_READ_START 17
-#define EEPROM_BYTE_WRITE_START 16
-#define EEPROM_READ_DATA 8
-#define EEPROM_WRITE_DATA 0
- u32 eeclkfreq;
- u32 _unused0;
- /* offset 0x0010 */
-
- u32 pciirqenb0; /* interrupt PCI master ... */
-#define SETUP_PACKET_INTERRUPT_ENABLE 7
-#define ENDPOINT_F_INTERRUPT_ENABLE 6
-#define ENDPOINT_E_INTERRUPT_ENABLE 5
-#define ENDPOINT_D_INTERRUPT_ENABLE 4
-#define ENDPOINT_C_INTERRUPT_ENABLE 3
-#define ENDPOINT_B_INTERRUPT_ENABLE 2
-#define ENDPOINT_A_INTERRUPT_ENABLE 1
-#define ENDPOINT_0_INTERRUPT_ENABLE 0
- u32 pciirqenb1;
-#define PCI_INTERRUPT_ENABLE 31
-#define POWER_STATE_CHANGE_INTERRUPT_ENABLE 27
-#define PCI_ARBITER_TIMEOUT_INTERRUPT_ENABLE 26
-#define PCI_PARITY_ERROR_INTERRUPT_ENABLE 25
-#define PCI_MASTER_ABORT_RECEIVED_INTERRUPT_ENABLE 20
-#define PCI_TARGET_ABORT_RECEIVED_INTERRUPT_ENABLE 19
-#define PCI_TARGET_ABORT_ASSERTED_INTERRUPT_ENABLE 18
-#define PCI_RETRY_ABORT_INTERRUPT_ENABLE 17
-#define PCI_MASTER_CYCLE_DONE_INTERRUPT_ENABLE 16
-#define GPIO_INTERRUPT_ENABLE 13
-#define DMA_D_INTERRUPT_ENABLE 12
-#define DMA_C_INTERRUPT_ENABLE 11
-#define DMA_B_INTERRUPT_ENABLE 10
-#define DMA_A_INTERRUPT_ENABLE 9
-#define EEPROM_DONE_INTERRUPT_ENABLE 8
-#define VBUS_INTERRUPT_ENABLE 7
-#define CONTROL_STATUS_INTERRUPT_ENABLE 6
-#define ROOT_PORT_RESET_INTERRUPT_ENABLE 4
-#define SUSPEND_REQUEST_INTERRUPT_ENABLE 3
-#define SUSPEND_REQUEST_CHANGE_INTERRUPT_ENABLE 2
-#define RESUME_INTERRUPT_ENABLE 1
-#define SOF_INTERRUPT_ENABLE 0
- u32 cpu_irqenb0; /* ... or onboard 8051 */
-#define SETUP_PACKET_INTERRUPT_ENABLE 7
-#define ENDPOINT_F_INTERRUPT_ENABLE 6
-#define ENDPOINT_E_INTERRUPT_ENABLE 5
-#define ENDPOINT_D_INTERRUPT_ENABLE 4
-#define ENDPOINT_C_INTERRUPT_ENABLE 3
-#define ENDPOINT_B_INTERRUPT_ENABLE 2
-#define ENDPOINT_A_INTERRUPT_ENABLE 1
-#define ENDPOINT_0_INTERRUPT_ENABLE 0
- u32 cpu_irqenb1;
-#define CPU_INTERRUPT_ENABLE 31
-#define POWER_STATE_CHANGE_INTERRUPT_ENABLE 27
-#define PCI_ARBITER_TIMEOUT_INTERRUPT_ENABLE 26
-#define PCI_PARITY_ERROR_INTERRUPT_ENABLE 25
-#define PCI_INTA_INTERRUPT_ENABLE 24
-#define PCI_PME_INTERRUPT_ENABLE 23
-#define PCI_SERR_INTERRUPT_ENABLE 22
-#define PCI_PERR_INTERRUPT_ENABLE 21
-#define PCI_MASTER_ABORT_RECEIVED_INTERRUPT_ENABLE 20
-#define PCI_TARGET_ABORT_RECEIVED_INTERRUPT_ENABLE 19
-#define PCI_RETRY_ABORT_INTERRUPT_ENABLE 17
-#define PCI_MASTER_CYCLE_DONE_INTERRUPT_ENABLE 16
-#define GPIO_INTERRUPT_ENABLE 13
-#define DMA_D_INTERRUPT_ENABLE 12
-#define DMA_C_INTERRUPT_ENABLE 11
-#define DMA_B_INTERRUPT_ENABLE 10
-#define DMA_A_INTERRUPT_ENABLE 9
-#define EEPROM_DONE_INTERRUPT_ENABLE 8
-#define VBUS_INTERRUPT_ENABLE 7
-#define CONTROL_STATUS_INTERRUPT_ENABLE 6
-#define ROOT_PORT_RESET_INTERRUPT_ENABLE 4
-#define SUSPEND_REQUEST_INTERRUPT_ENABLE 3
-#define SUSPEND_REQUEST_CHANGE_INTERRUPT_ENABLE 2
-#define RESUME_INTERRUPT_ENABLE 1
-#define SOF_INTERRUPT_ENABLE 0
-
- /* offset 0x0020 */
- u32 _unused1;
- u32 usbirqenb1;
-#define USB_INTERRUPT_ENABLE 31
-#define POWER_STATE_CHANGE_INTERRUPT_ENABLE 27
-#define PCI_ARBITER_TIMEOUT_INTERRUPT_ENABLE 26
-#define PCI_PARITY_ERROR_INTERRUPT_ENABLE 25
-#define PCI_INTA_INTERRUPT_ENABLE 24
-#define PCI_PME_INTERRUPT_ENABLE 23
-#define PCI_SERR_INTERRUPT_ENABLE 22
-#define PCI_PERR_INTERRUPT_ENABLE 21
-#define PCI_MASTER_ABORT_RECEIVED_INTERRUPT_ENABLE 20
-#define PCI_TARGET_ABORT_RECEIVED_INTERRUPT_ENABLE 19
-#define PCI_RETRY_ABORT_INTERRUPT_ENABLE 17
-#define PCI_MASTER_CYCLE_DONE_INTERRUPT_ENABLE 16
-#define GPIO_INTERRUPT_ENABLE 13
-#define DMA_D_INTERRUPT_ENABLE 12
-#define DMA_C_INTERRUPT_ENABLE 11
-#define DMA_B_INTERRUPT_ENABLE 10
-#define DMA_A_INTERRUPT_ENABLE 9
-#define EEPROM_DONE_INTERRUPT_ENABLE 8
-#define VBUS_INTERRUPT_ENABLE 7
-#define CONTROL_STATUS_INTERRUPT_ENABLE 6
-#define ROOT_PORT_RESET_INTERRUPT_ENABLE 4
-#define SUSPEND_REQUEST_INTERRUPT_ENABLE 3
-#define SUSPEND_REQUEST_CHANGE_INTERRUPT_ENABLE 2
-#define RESUME_INTERRUPT_ENABLE 1
-#define SOF_INTERRUPT_ENABLE 0
- u32 irqstat0;
-#define INTA_ASSERTED 12
-#define SETUP_PACKET_INTERRUPT 7
-#define ENDPOINT_F_INTERRUPT 6
-#define ENDPOINT_E_INTERRUPT 5
-#define ENDPOINT_D_INTERRUPT 4
-#define ENDPOINT_C_INTERRUPT 3
-#define ENDPOINT_B_INTERRUPT 2
-#define ENDPOINT_A_INTERRUPT 1
-#define ENDPOINT_0_INTERRUPT 0
- u32 irqstat1;
-#define POWER_STATE_CHANGE_INTERRUPT 27
-#define PCI_ARBITER_TIMEOUT_INTERRUPT 26
-#define PCI_PARITY_ERROR_INTERRUPT 25
-#define PCI_INTA_INTERRUPT 24
-#define PCI_PME_INTERRUPT 23
-#define PCI_SERR_INTERRUPT 22
-#define PCI_PERR_INTERRUPT 21
-#define PCI_MASTER_ABORT_RECEIVED_INTERRUPT 20
-#define PCI_TARGET_ABORT_RECEIVED_INTERRUPT 19
-#define PCI_RETRY_ABORT_INTERRUPT 17
-#define PCI_MASTER_CYCLE_DONE_INTERRUPT 16
-#define SOF_DOWN_INTERRUPT 14
-#define GPIO_INTERRUPT 13
-#define DMA_D_INTERRUPT 12
-#define DMA_C_INTERRUPT 11
-#define DMA_B_INTERRUPT 10
-#define DMA_A_INTERRUPT 9
-#define EEPROM_DONE_INTERRUPT 8
-#define VBUS_INTERRUPT 7
-#define CONTROL_STATUS_INTERRUPT 6
-#define ROOT_PORT_RESET_INTERRUPT 4
-#define SUSPEND_REQUEST_INTERRUPT 3
-#define SUSPEND_REQUEST_CHANGE_INTERRUPT 2
-#define RESUME_INTERRUPT 1
-#define SOF_INTERRUPT 0
- /* offset 0x0030 */
- u32 idxaddr;
- u32 idxdata;
- u32 fifoctl;
-#define PCI_BASE2_RANGE 16
-#define IGNORE_FIFO_AVAILABILITY 3
-#define PCI_BASE2_SELECT 2
-#define FIFO_CONFIGURATION_SELECT 0
- u32 _unused2;
- /* offset 0x0040 */
- u32 memaddr;
-#define START 28
-#define DIRECTION 27
-#define FIFO_DIAGNOSTIC_SELECT 24
-#define MEMORY_ADDRESS 0
- u32 memdata0;
- u32 memdata1;
- u32 _unused3;
- /* offset 0x0050 */
- u32 gpioctl;
-#define GPIO3_LED_SELECT 12
-#define GPIO3_INTERRUPT_ENABLE 11
-#define GPIO2_INTERRUPT_ENABLE 10
-#define GPIO1_INTERRUPT_ENABLE 9
-#define GPIO0_INTERRUPT_ENABLE 8
-#define GPIO3_OUTPUT_ENABLE 7
-#define GPIO2_OUTPUT_ENABLE 6
-#define GPIO1_OUTPUT_ENABLE 5
-#define GPIO0_OUTPUT_ENABLE 4
-#define GPIO3_DATA 3
-#define GPIO2_DATA 2
-#define GPIO1_DATA 1
-#define GPIO0_DATA 0
- u32 gpiostat;
-#define GPIO3_INTERRUPT 3
-#define GPIO2_INTERRUPT 2
-#define GPIO1_INTERRUPT 1
-#define GPIO0_INTERRUPT 0
-} __attribute__ ((packed));
-
-/* usb control, BAR0 + 0x0080 */
-struct net2280_usb_regs {
- /* offset 0x0080 */
- u32 stdrsp;
-#define STALL_UNSUPPORTED_REQUESTS 31
-#define SET_TEST_MODE 16
-#define GET_OTHER_SPEED_CONFIGURATION 15
-#define GET_DEVICE_QUALIFIER 14
-#define SET_ADDRESS 13
-#define ENDPOINT_SET_CLEAR_HALT 12
-#define DEVICE_SET_CLEAR_DEVICE_REMOTE_WAKEUP 11
-#define GET_STRING_DESCRIPTOR_2 10
-#define GET_STRING_DESCRIPTOR_1 9
-#define GET_STRING_DESCRIPTOR_0 8
-#define GET_SET_INTERFACE 6
-#define GET_SET_CONFIGURATION 5
-#define GET_CONFIGURATION_DESCRIPTOR 4
-#define GET_DEVICE_DESCRIPTOR 3
-#define GET_ENDPOINT_STATUS 2
-#define GET_INTERFACE_STATUS 1
-#define GET_DEVICE_STATUS 0
- u32 prodvendid;
-#define PRODUCT_ID 16
-#define VENDOR_ID 0
- u32 relnum;
- u32 usbctl;
-#define SERIAL_NUMBER_INDEX 16
-#define PRODUCT_ID_STRING_ENABLE 13
-#define VENDOR_ID_STRING_ENABLE 12
-#define USB_ROOT_PORT_WAKEUP_ENABLE 11
-#define VBUS_PIN 10
-#define TIMED_DISCONNECT 9
-#define SUSPEND_IMMEDIATELY 7
-#define SELF_POWERED_USB_DEVICE 6
-#define REMOTE_WAKEUP_SUPPORT 5
-#define PME_POLARITY 4
-#define USB_DETECT_ENABLE 3
-#define PME_WAKEUP_ENABLE 2
-#define DEVICE_REMOTE_WAKEUP_ENABLE 1
-#define SELF_POWERED_STATUS 0
- /* offset 0x0090 */
- u32 usbstat;
-#define HIGH_SPEED 7
-#define FULL_SPEED 6
-#define GENERATE_RESUME 5
-#define GENERATE_DEVICE_REMOTE_WAKEUP 4
- u32 xcvrdiag;
-#define FORCE_HIGH_SPEED_MODE 31
-#define FORCE_FULL_SPEED_MODE 30
-#define USB_TEST_MODE 24
-#define LINE_STATE 16
-#define TRANSCEIVER_OPERATION_MODE 2
-#define TRANSCEIVER_SELECT 1
-#define TERMINATION_SELECT 0
- u32 setup0123;
- u32 setup4567;
- /* offset 0x0090 */
- u32 _unused0;
- u32 ouraddr;
-#define FORCE_IMMEDIATE 7
-#define OUR_USB_ADDRESS 0
- u32 ourconfig;
-} __attribute__ ((packed));
-
-/* pci control, BAR0 + 0x0100 */
-struct net2280_pci_regs {
- /* offset 0x0100 */
- u32 pcimstctl;
-#define PCI_ARBITER_PARK_SELECT 13
-#define PCI_MULTI LEVEL_ARBITER 12
-#define PCI_RETRY_ABORT_ENABLE 11
-#define DMA_MEMORY_WRITE_AND_INVALIDATE_ENABLE 10
-#define DMA_READ_MULTIPLE_ENABLE 9
-#define DMA_READ_LINE_ENABLE 8
-#define PCI_MASTER_COMMAND_SELECT 6
-#define MEM_READ_OR_WRITE 0
-#define IO_READ_OR_WRITE 1
-#define CFG_READ_OR_WRITE 2
-#define PCI_MASTER_START 5
-#define PCI_MASTER_READ_WRITE 4
-#define PCI_MASTER_WRITE 0
-#define PCI_MASTER_READ 1
-#define PCI_MASTER_BYTE_WRITE_ENABLES 0
- u32 pcimstaddr;
- u32 pcimstdata;
- u32 pcimststat;
-#define PCI_ARBITER_CLEAR 2
-#define PCI_EXTERNAL_ARBITER 1
-#define PCI_HOST_MODE 0
-} __attribute__ ((packed));
-
-/* dma control, BAR0 + 0x0180 ... array of four structs like this,
- * for channels 0..3. see also struct net2280_dma: descriptor
- * that can be loaded into some of these registers.
- */
-struct net2280_dma_regs { /* [11.7] */
- /* offset 0x0180, 0x01a0, 0x01c0, 0x01e0, */
- u32 dmactl;
-#define DMA_SCATTER_GATHER_DONE_INTERRUPT_ENABLE 25
-#define DMA_CLEAR_COUNT_ENABLE 21
-#define DESCRIPTOR_POLLING_RATE 19
-#define POLL_CONTINUOUS 0
-#define POLL_1_USEC 1
-#define POLL_100_USEC 2
-#define POLL_1_MSEC 3
-#define DMA_VALID_BIT_POLLING_ENABLE 18
-#define DMA_VALID_BIT_ENABLE 17
-#define DMA_SCATTER_GATHER_ENABLE 16
-#define DMA_OUT_AUTO_START_ENABLE 4
-#define DMA_PREEMPT_ENABLE 3
-#define DMA_FIFO_VALIDATE 2
-#define DMA_ENABLE 1
-#define DMA_ADDRESS_HOLD 0
- u32 dmastat;
-#define DMA_ABORT_DONE_INTERRUPT 27
-#define DMA_SCATTER_GATHER_DONE_INTERRUPT 25
-#define DMA_TRANSACTION_DONE_INTERRUPT 24
-#define DMA_ABORT 1
-#define DMA_START 0
- u32 _unused0[2];
- /* offset 0x0190, 0x01b0, 0x01d0, 0x01f0, */
- u32 dmacount;
-#define VALID_BIT 31
-#define DMA_DIRECTION 30
-#define DMA_DONE_INTERRUPT_ENABLE 29
-#define END_OF_CHAIN 28
-#define DMA_BYTE_COUNT_MASK ((1<<24)-1)
-#define DMA_BYTE_COUNT 0
- u32 dmaaddr;
- u32 dmadesc;
- u32 _unused1;
-} __attribute__ ((packed));
-
-/* dedicated endpoint registers, BAR0 + 0x0200 */
-
-struct net2280_dep_regs { /* [11.8] */
- /* offset 0x0200, 0x0210, 0x220, 0x230, 0x240 */
- u32 dep_cfg;
- /* offset 0x0204, 0x0214, 0x224, 0x234, 0x244 */
- u32 dep_rsp;
- u32 _unused[2];
-} __attribute__ ((packed));
-
-/* configurable endpoint registers, BAR0 + 0x0300 ... array of seven structs
- * like this, for ep0 then the configurable endpoints A..F
- * ep0 reserved for control; E and F have only 64 bytes of fifo
- */
-struct net2280_ep_regs { /* [11.9] */
- /* offset 0x0300, 0x0320, 0x0340, 0x0360, 0x0380, 0x03a0, 0x03c0 */
- u32 ep_cfg;
-#define ENDPOINT_BYTE_COUNT 16
-#define ENDPOINT_ENABLE 10
-#define ENDPOINT_TYPE 8
-#define ENDPOINT_DIRECTION 7
-#define ENDPOINT_NUMBER 0
- u32 ep_rsp;
-#define SET_NAK_OUT_PACKETS 15
-#define SET_EP_HIDE_STATUS_PHASE 14
-#define SET_EP_FORCE_CRC_ERROR 13
-#define SET_INTERRUPT_MODE 12
-#define SET_CONTROL_STATUS_PHASE_HANDSHAKE 11
-#define SET_NAK_OUT_PACKETS_MODE 10
-#define SET_ENDPOINT_TOGGLE 9
-#define SET_ENDPOINT_HALT 8
-#define CLEAR_NAK_OUT_PACKETS 7
-#define CLEAR_EP_HIDE_STATUS_PHASE 6
-#define CLEAR_EP_FORCE_CRC_ERROR 5
-#define CLEAR_INTERRUPT_MODE 4
-#define CLEAR_CONTROL_STATUS_PHASE_HANDSHAKE 3
-#define CLEAR_NAK_OUT_PACKETS_MODE 2
-#define CLEAR_ENDPOINT_TOGGLE 1
-#define CLEAR_ENDPOINT_HALT 0
- u32 ep_irqenb;
-#define SHORT_PACKET_OUT_DONE_INTERRUPT_ENABLE 6
-#define SHORT_PACKET_TRANSFERRED_INTERRUPT_ENABLE 5
-#define DATA_PACKET_RECEIVED_INTERRUPT_ENABLE 3
-#define DATA_PACKET_TRANSMITTED_INTERRUPT_ENABLE 2
-#define DATA_OUT_PING_TOKEN_INTERRUPT_ENABLE 1
-#define DATA_IN_TOKEN_INTERRUPT_ENABLE 0
- u32 ep_stat;
-#define FIFO_VALID_COUNT 24
-#define HIGH_BANDWIDTH_OUT_TRANSACTION_PID 22
-#define TIMEOUT 21
-#define USB_STALL_SENT 20
-#define USB_IN_NAK_SENT 19
-#define USB_IN_ACK_RCVD 18
-#define USB_OUT_PING_NAK_SENT 17
-#define USB_OUT_ACK_SENT 16
-#define FIFO_OVERFLOW 13
-#define FIFO_UNDERFLOW 12
-#define FIFO_FULL 11
-#define FIFO_EMPTY 10
-#define FIFO_FLUSH 9
-#define SHORT_PACKET_OUT_DONE_INTERRUPT 6
-#define SHORT_PACKET_TRANSFERRED_INTERRUPT 5
-#define NAK_OUT_PACKETS 4
-#define DATA_PACKET_RECEIVED_INTERRUPT 3
-#define DATA_PACKET_TRANSMITTED_INTERRUPT 2
-#define DATA_OUT_PING_TOKEN_INTERRUPT 1
-#define DATA_IN_TOKEN_INTERRUPT 0
- /* offset 0x0310, 0x0330, 0x0350, 0x0370, 0x0390, 0x03b0, 0x03d0 */
- u32 ep_avail;
- u32 ep_data;
- u32 _unused0[2];
-} __attribute__ ((packed));
-
-#endif /* __LINUX_USB_NET2280_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/ohci_pdriver.h b/ANDROID_3.4.5/include/linux/usb/ohci_pdriver.h
deleted file mode 100644
index 2808f2a9..00000000
--- a/ANDROID_3.4.5/include/linux/usb/ohci_pdriver.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2012 Hauke Mehrtens <hauke@hauke-m.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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef __USB_CORE_OHCI_PDRIVER_H
-#define __USB_CORE_OHCI_PDRIVER_H
-
-/**
- * struct usb_ohci_pdata - platform_data for generic ohci driver
- *
- * @big_endian_desc: BE descriptors
- * @big_endian_mmio: BE registers
- * @no_big_frame_no: no big endian frame_no shift
- *
- * These are general configuration options for the OHCI controller. All of
- * these options are activating more or less workarounds for some hardware.
- */
-struct usb_ohci_pdata {
- unsigned big_endian_desc:1;
- unsigned big_endian_mmio:1;
- unsigned no_big_frame_no:1;
-};
-
-#endif /* __USB_CORE_OHCI_PDRIVER_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/otg.h b/ANDROID_3.4.5/include/linux/usb/otg.h
deleted file mode 100644
index 38ab3f46..00000000
--- a/ANDROID_3.4.5/include/linux/usb/otg.h
+++ /dev/null
@@ -1,279 +0,0 @@
-/* USB OTG (On The Go) defines */
-/*
- *
- * These APIs may be used between USB controllers. USB device drivers
- * (for either host or peripheral roles) don't use these calls; they
- * continue to use just usb_device and usb_gadget.
- */
-
-#ifndef __LINUX_USB_OTG_H
-#define __LINUX_USB_OTG_H
-
-#include <linux/notifier.h>
-
-/* OTG defines lots of enumeration states before device reset */
-enum usb_otg_state {
- OTG_STATE_UNDEFINED = 0,
-
- /* single-role peripheral, and dual-role default-b */
- OTG_STATE_B_IDLE,
- OTG_STATE_B_SRP_INIT,
- OTG_STATE_B_PERIPHERAL,
-
- /* extra dual-role default-b states */
- OTG_STATE_B_WAIT_ACON,
- OTG_STATE_B_HOST,
-
- /* dual-role default-a */
- OTG_STATE_A_IDLE,
- OTG_STATE_A_WAIT_VRISE,
- OTG_STATE_A_WAIT_BCON,
- OTG_STATE_A_HOST,
- OTG_STATE_A_SUSPEND,
- OTG_STATE_A_PERIPHERAL,
- OTG_STATE_A_WAIT_VFALL,
- OTG_STATE_A_VBUS_ERR,
-};
-
-enum usb_phy_events {
- USB_EVENT_NONE, /* no events or cable disconnected */
- USB_EVENT_VBUS, /* vbus valid event */
- USB_EVENT_ID, /* id was grounded */
- USB_EVENT_CHARGER, /* usb dedicated charger */
- USB_EVENT_ENUMERATED, /* gadget driver enumerated */
-};
-
-struct usb_phy;
-
-/* for transceivers connected thru an ULPI interface, the user must
- * provide access ops
- */
-struct usb_phy_io_ops {
- int (*read)(struct usb_phy *x, u32 reg);
- int (*write)(struct usb_phy *x, u32 val, u32 reg);
-};
-
-struct usb_otg {
- u8 default_a;
-
- struct usb_phy *phy;
- struct usb_bus *host;
- struct usb_gadget *gadget;
-
- /* bind/unbind the host controller */
- int (*set_host)(struct usb_otg *otg, struct usb_bus *host);
-
- /* bind/unbind the peripheral controller */
- int (*set_peripheral)(struct usb_otg *otg,
- struct usb_gadget *gadget);
-
- /* effective for A-peripheral, ignored for B devices */
- int (*set_vbus)(struct usb_otg *otg, bool enabled);
-
- /* for B devices only: start session with A-Host */
- int (*start_srp)(struct usb_otg *otg);
-
- /* start or continue HNP role switch */
- int (*start_hnp)(struct usb_otg *otg);
-
-};
-
-/*
- * the otg driver needs to interact with both device side and host side
- * usb controllers. it decides which controller is active at a given
- * moment, using the transceiver, ID signal, HNP and sometimes static
- * configuration information (including "board isn't wired for otg").
- */
-struct usb_phy {
- struct device *dev;
- const char *label;
- unsigned int flags;
-
- enum usb_otg_state state;
- enum usb_phy_events last_event;
-
- struct usb_otg *otg;
-
- struct device *io_dev;
- struct usb_phy_io_ops *io_ops;
- void __iomem *io_priv;
-
- /* for notification of usb_phy_events */
- struct atomic_notifier_head notifier;
-
- /* to pass extra port status to the root hub */
- u16 port_status;
- u16 port_change;
-
- /* initialize/shutdown the OTG controller */
- int (*init)(struct usb_phy *x);
- void (*shutdown)(struct usb_phy *x);
-
- /* effective for B devices, ignored for A-peripheral */
- int (*set_power)(struct usb_phy *x,
- unsigned mA);
-
- /* for non-OTG B devices: set transceiver into suspend mode */
- int (*set_suspend)(struct usb_phy *x,
- int suspend);
-
-};
-
-
-/* for board-specific init logic */
-extern int usb_set_transceiver(struct usb_phy *);
-
-#if defined(CONFIG_NOP_USB_XCEIV) || (defined(CONFIG_NOP_USB_XCEIV_MODULE) && defined(MODULE))
-/* sometimes transceivers are accessed only through e.g. ULPI */
-extern void usb_nop_xceiv_register(void);
-extern void usb_nop_xceiv_unregister(void);
-#else
-static inline void usb_nop_xceiv_register(void)
-{
-}
-
-static inline void usb_nop_xceiv_unregister(void)
-{
-}
-#endif
-
-/* helpers for direct access thru low-level io interface */
-static inline int usb_phy_io_read(struct usb_phy *x, u32 reg)
-{
- if (x->io_ops && x->io_ops->read)
- return x->io_ops->read(x, reg);
-
- return -EINVAL;
-}
-
-static inline int usb_phy_io_write(struct usb_phy *x, u32 val, u32 reg)
-{
- if (x->io_ops && x->io_ops->write)
- return x->io_ops->write(x, val, reg);
-
- return -EINVAL;
-}
-
-static inline int
-usb_phy_init(struct usb_phy *x)
-{
- if (x->init)
- return x->init(x);
-
- return 0;
-}
-
-static inline void
-usb_phy_shutdown(struct usb_phy *x)
-{
- if (x->shutdown)
- x->shutdown(x);
-}
-
-/* for usb host and peripheral controller drivers */
-#ifdef CONFIG_USB_OTG_UTILS
-extern struct usb_phy *usb_get_transceiver(void);
-extern void usb_put_transceiver(struct usb_phy *);
-extern const char *otg_state_string(enum usb_otg_state state);
-#else
-static inline struct usb_phy *usb_get_transceiver(void)
-{
- return NULL;
-}
-
-static inline void usb_put_transceiver(struct usb_phy *x)
-{
-}
-
-static inline const char *otg_state_string(enum usb_otg_state state)
-{
- return NULL;
-}
-#endif
-
-/* Context: can sleep */
-static inline int
-otg_start_hnp(struct usb_otg *otg)
-{
- if (otg && otg->start_hnp)
- return otg->start_hnp(otg);
-
- return -ENOTSUPP;
-}
-
-/* Context: can sleep */
-static inline int
-otg_set_vbus(struct usb_otg *otg, bool enabled)
-{
- if (otg && otg->set_vbus)
- return otg->set_vbus(otg, enabled);
-
- return -ENOTSUPP;
-}
-
-/* for HCDs */
-static inline int
-otg_set_host(struct usb_otg *otg, struct usb_bus *host)
-{
- if (otg && otg->set_host)
- return otg->set_host(otg, host);
-
- return -ENOTSUPP;
-}
-
-/* for usb peripheral controller drivers */
-
-/* Context: can sleep */
-static inline int
-otg_set_peripheral(struct usb_otg *otg, struct usb_gadget *periph)
-{
- if (otg && otg->set_peripheral)
- return otg->set_peripheral(otg, periph);
-
- return -ENOTSUPP;
-}
-
-static inline int
-usb_phy_set_power(struct usb_phy *x, unsigned mA)
-{
- if (x && x->set_power)
- return x->set_power(x, mA);
- return 0;
-}
-
-/* Context: can sleep */
-static inline int
-usb_phy_set_suspend(struct usb_phy *x, int suspend)
-{
- if (x->set_suspend != NULL)
- return x->set_suspend(x, suspend);
- else
- return 0;
-}
-
-static inline int
-otg_start_srp(struct usb_otg *otg)
-{
- if (otg && otg->start_srp)
- return otg->start_srp(otg);
-
- return -ENOTSUPP;
-}
-
-/* notifiers */
-static inline int
-usb_register_notifier(struct usb_phy *x, struct notifier_block *nb)
-{
- return atomic_notifier_chain_register(&x->notifier, nb);
-}
-
-static inline void
-usb_unregister_notifier(struct usb_phy *x, struct notifier_block *nb)
-{
- atomic_notifier_chain_unregister(&x->notifier, nb);
-}
-
-/* for OTG controller drivers (and maybe other stuff) */
-extern int usb_bus_start_enum(struct usb_bus *bus, unsigned port_num);
-
-#endif /* __LINUX_USB_OTG_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/quirks.h b/ANDROID_3.4.5/include/linux/usb/quirks.h
deleted file mode 100644
index 3e93de7e..00000000
--- a/ANDROID_3.4.5/include/linux/usb/quirks.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * This file holds the definitions of quirks found in USB devices.
- * Only quirks that affect the whole device, not an interface,
- * belong here.
- */
-
-#ifndef __LINUX_USB_QUIRKS_H
-#define __LINUX_USB_QUIRKS_H
-
-/* string descriptors must not be fetched using a 255-byte read */
-#define USB_QUIRK_STRING_FETCH_255 0x00000001
-
-/* device can't resume correctly so reset it instead */
-#define USB_QUIRK_RESET_RESUME 0x00000002
-
-/* device can't handle Set-Interface requests */
-#define USB_QUIRK_NO_SET_INTF 0x00000004
-
-/* device can't handle its Configuration or Interface strings */
-#define USB_QUIRK_CONFIG_INTF_STRINGS 0x00000008
-
-/*device will morph if reset, don't use reset for handling errors */
-#define USB_QUIRK_RESET_MORPHS 0x00000010
-
-/* device has more interface descriptions than the bNumInterfaces count,
- and can't handle talking to these interfaces */
-#define USB_QUIRK_HONOR_BNUMINTERFACES 0x00000020
-
-/* device needs a pause during initialization, after we read the device
- descriptor */
-#define USB_QUIRK_DELAY_INIT 0x00000040
-
-#endif /* __LINUX_USB_QUIRKS_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/r8a66597.h b/ANDROID_3.4.5/include/linux/usb/r8a66597.h
deleted file mode 100644
index 55805f9d..00000000
--- a/ANDROID_3.4.5/include/linux/usb/r8a66597.h
+++ /dev/null
@@ -1,481 +0,0 @@
-/*
- * R8A66597 driver platform data
- *
- * Copyright (C) 2009 Renesas Solutions Corp.
- *
- * Author : Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.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; version 2 of the License.
- *
- * 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 __LINUX_USB_R8A66597_H
-#define __LINUX_USB_R8A66597_H
-
-#define R8A66597_PLATDATA_XTAL_12MHZ 0x01
-#define R8A66597_PLATDATA_XTAL_24MHZ 0x02
-#define R8A66597_PLATDATA_XTAL_48MHZ 0x03
-
-struct r8a66597_platdata {
- /* This callback can control port power instead of DVSTCTR register. */
- void (*port_power)(int port, int power);
-
- /* This parameter is for BUSWAIT */
- u16 buswait;
-
- /* set one = on chip controller, set zero = external controller */
- unsigned on_chip:1;
-
- /* (external controller only) set R8A66597_PLATDATA_XTAL_nnMHZ */
- unsigned xtal:2;
-
- /* set one = 3.3V, set zero = 1.5V */
- unsigned vif:1;
-
- /* set one = big endian, set zero = little endian */
- unsigned endian:1;
-
- /* (external controller only) set one = WR0_N shorted to WR1_N */
- unsigned wr0_shorted_to_wr1:1;
-
- /* set one = using SUDMAC */
- unsigned sudmac:1;
-};
-
-/* Register definitions */
-#define SYSCFG0 0x00
-#define SYSCFG1 0x02
-#define SYSSTS0 0x04
-#define SYSSTS1 0x06
-#define DVSTCTR0 0x08
-#define DVSTCTR1 0x0A
-#define TESTMODE 0x0C
-#define PINCFG 0x0E
-#define DMA0CFG 0x10
-#define DMA1CFG 0x12
-#define CFIFO 0x14
-#define D0FIFO 0x18
-#define D1FIFO 0x1C
-#define CFIFOSEL 0x20
-#define CFIFOCTR 0x22
-#define CFIFOSIE 0x24
-#define D0FIFOSEL 0x28
-#define D0FIFOCTR 0x2A
-#define D1FIFOSEL 0x2C
-#define D1FIFOCTR 0x2E
-#define INTENB0 0x30
-#define INTENB1 0x32
-#define INTENB2 0x34
-#define BRDYENB 0x36
-#define NRDYENB 0x38
-#define BEMPENB 0x3A
-#define SOFCFG 0x3C
-#define INTSTS0 0x40
-#define INTSTS1 0x42
-#define INTSTS2 0x44
-#define BRDYSTS 0x46
-#define NRDYSTS 0x48
-#define BEMPSTS 0x4A
-#define FRMNUM 0x4C
-#define UFRMNUM 0x4E
-#define USBADDR 0x50
-#define USBREQ 0x54
-#define USBVAL 0x56
-#define USBINDX 0x58
-#define USBLENG 0x5A
-#define DCPCFG 0x5C
-#define DCPMAXP 0x5E
-#define DCPCTR 0x60
-#define PIPESEL 0x64
-#define PIPECFG 0x68
-#define PIPEBUF 0x6A
-#define PIPEMAXP 0x6C
-#define PIPEPERI 0x6E
-#define PIPE1CTR 0x70
-#define PIPE2CTR 0x72
-#define PIPE3CTR 0x74
-#define PIPE4CTR 0x76
-#define PIPE5CTR 0x78
-#define PIPE6CTR 0x7A
-#define PIPE7CTR 0x7C
-#define PIPE8CTR 0x7E
-#define PIPE9CTR 0x80
-#define PIPE1TRE 0x90
-#define PIPE1TRN 0x92
-#define PIPE2TRE 0x94
-#define PIPE2TRN 0x96
-#define PIPE3TRE 0x98
-#define PIPE3TRN 0x9A
-#define PIPE4TRE 0x9C
-#define PIPE4TRN 0x9E
-#define PIPE5TRE 0xA0
-#define PIPE5TRN 0xA2
-#define DEVADD0 0xD0
-#define DEVADD1 0xD2
-#define DEVADD2 0xD4
-#define DEVADD3 0xD6
-#define DEVADD4 0xD8
-#define DEVADD5 0xDA
-#define DEVADD6 0xDC
-#define DEVADD7 0xDE
-#define DEVADD8 0xE0
-#define DEVADD9 0xE2
-#define DEVADDA 0xE4
-
-/* System Configuration Control Register */
-#define XTAL 0xC000 /* b15-14: Crystal selection */
-#define XTAL48 0x8000 /* 48MHz */
-#define XTAL24 0x4000 /* 24MHz */
-#define XTAL12 0x0000 /* 12MHz */
-#define XCKE 0x2000 /* b13: External clock enable */
-#define PLLC 0x0800 /* b11: PLL control */
-#define SCKE 0x0400 /* b10: USB clock enable */
-#define PCSDIS 0x0200 /* b9: not CS wakeup */
-#define LPSME 0x0100 /* b8: Low power sleep mode */
-#define HSE 0x0080 /* b7: Hi-speed enable */
-#define DCFM 0x0040 /* b6: Controller function select */
-#define DRPD 0x0020 /* b5: D+/- pull down control */
-#define DPRPU 0x0010 /* b4: D+ pull up control */
-#define USBE 0x0001 /* b0: USB module operation enable */
-
-/* System Configuration Status Register */
-#define OVCBIT 0x8000 /* b15-14: Over-current bit */
-#define OVCMON 0xC000 /* b15-14: Over-current monitor */
-#define SOFEA 0x0020 /* b5: SOF monitor */
-#define IDMON 0x0004 /* b3: ID-pin monitor */
-#define LNST 0x0003 /* b1-0: D+, D- line status */
-#define SE1 0x0003 /* SE1 */
-#define FS_KSTS 0x0002 /* Full-Speed K State */
-#define FS_JSTS 0x0001 /* Full-Speed J State */
-#define LS_JSTS 0x0002 /* Low-Speed J State */
-#define LS_KSTS 0x0001 /* Low-Speed K State */
-#define SE0 0x0000 /* SE0 */
-
-/* Device State Control Register */
-#define EXTLP0 0x0400 /* b10: External port */
-#define VBOUT 0x0200 /* b9: VBUS output */
-#define WKUP 0x0100 /* b8: Remote wakeup */
-#define RWUPE 0x0080 /* b7: Remote wakeup sense */
-#define USBRST 0x0040 /* b6: USB reset enable */
-#define RESUME 0x0020 /* b5: Resume enable */
-#define UACT 0x0010 /* b4: USB bus enable */
-#define RHST 0x0007 /* b1-0: Reset handshake status */
-#define HSPROC 0x0004 /* HS handshake is processing */
-#define HSMODE 0x0003 /* Hi-Speed mode */
-#define FSMODE 0x0002 /* Full-Speed mode */
-#define LSMODE 0x0001 /* Low-Speed mode */
-#define UNDECID 0x0000 /* Undecided */
-
-/* Test Mode Register */
-#define UTST 0x000F /* b3-0: Test select */
-#define H_TST_PACKET 0x000C /* HOST TEST Packet */
-#define H_TST_SE0_NAK 0x000B /* HOST TEST SE0 NAK */
-#define H_TST_K 0x000A /* HOST TEST K */
-#define H_TST_J 0x0009 /* HOST TEST J */
-#define H_TST_NORMAL 0x0000 /* HOST Normal Mode */
-#define P_TST_PACKET 0x0004 /* PERI TEST Packet */
-#define P_TST_SE0_NAK 0x0003 /* PERI TEST SE0 NAK */
-#define P_TST_K 0x0002 /* PERI TEST K */
-#define P_TST_J 0x0001 /* PERI TEST J */
-#define P_TST_NORMAL 0x0000 /* PERI Normal Mode */
-
-/* Data Pin Configuration Register */
-#define LDRV 0x8000 /* b15: Drive Current Adjust */
-#define VIF1 0x0000 /* VIF = 1.8V */
-#define VIF3 0x8000 /* VIF = 3.3V */
-#define INTA 0x0001 /* b1: USB INT-pin active */
-
-/* DMAx Pin Configuration Register */
-#define DREQA 0x4000 /* b14: Dreq active select */
-#define BURST 0x2000 /* b13: Burst mode */
-#define DACKA 0x0400 /* b10: Dack active select */
-#define DFORM 0x0380 /* b9-7: DMA mode select */
-#define CPU_ADR_RD_WR 0x0000 /* Address + RD/WR mode (CPU bus) */
-#define CPU_DACK_RD_WR 0x0100 /* DACK + RD/WR mode (CPU bus) */
-#define CPU_DACK_ONLY 0x0180 /* DACK only mode (CPU bus) */
-#define SPLIT_DACK_ONLY 0x0200 /* DACK only mode (SPLIT bus) */
-#define DENDA 0x0040 /* b6: Dend active select */
-#define PKTM 0x0020 /* b5: Packet mode */
-#define DENDE 0x0010 /* b4: Dend enable */
-#define OBUS 0x0004 /* b2: OUTbus mode */
-
-/* CFIFO/DxFIFO Port Select Register */
-#define RCNT 0x8000 /* b15: Read count mode */
-#define REW 0x4000 /* b14: Buffer rewind */
-#define DCLRM 0x2000 /* b13: DMA buffer clear mode */
-#define DREQE 0x1000 /* b12: DREQ output enable */
-#define MBW_8 0x0000 /* 8bit */
-#define MBW_16 0x0400 /* 16bit */
-#define MBW_32 0x0800 /* 32bit */
-#define BIGEND 0x0100 /* b8: Big endian mode */
-#define BYTE_LITTLE 0x0000 /* little dendian */
-#define BYTE_BIG 0x0100 /* big endifan */
-#define ISEL 0x0020 /* b5: DCP FIFO port direction select */
-#define CURPIPE 0x000F /* b2-0: PIPE select */
-
-/* CFIFO/DxFIFO Port Control Register */
-#define BVAL 0x8000 /* b15: Buffer valid flag */
-#define BCLR 0x4000 /* b14: Buffer clear */
-#define FRDY 0x2000 /* b13: FIFO ready */
-#define DTLN 0x0FFF /* b11-0: FIFO received data length */
-
-/* Interrupt Enable Register 0 */
-#define VBSE 0x8000 /* b15: VBUS interrupt */
-#define RSME 0x4000 /* b14: Resume interrupt */
-#define SOFE 0x2000 /* b13: Frame update interrupt */
-#define DVSE 0x1000 /* b12: Device state transition interrupt */
-#define CTRE 0x0800 /* b11: Control transfer stage transition interrupt */
-#define BEMPE 0x0400 /* b10: Buffer empty interrupt */
-#define NRDYE 0x0200 /* b9: Buffer not ready interrupt */
-#define BRDYE 0x0100 /* b8: Buffer ready interrupt */
-
-/* Interrupt Enable Register 1 */
-#define OVRCRE 0x8000 /* b15: Over-current interrupt */
-#define BCHGE 0x4000 /* b14: USB us chenge interrupt */
-#define DTCHE 0x1000 /* b12: Detach sense interrupt */
-#define ATTCHE 0x0800 /* b11: Attach sense interrupt */
-#define EOFERRE 0x0040 /* b6: EOF error interrupt */
-#define SIGNE 0x0020 /* b5: SETUP IGNORE interrupt */
-#define SACKE 0x0010 /* b4: SETUP ACK interrupt */
-
-/* BRDY Interrupt Enable/Status Register */
-#define BRDY9 0x0200 /* b9: PIPE9 */
-#define BRDY8 0x0100 /* b8: PIPE8 */
-#define BRDY7 0x0080 /* b7: PIPE7 */
-#define BRDY6 0x0040 /* b6: PIPE6 */
-#define BRDY5 0x0020 /* b5: PIPE5 */
-#define BRDY4 0x0010 /* b4: PIPE4 */
-#define BRDY3 0x0008 /* b3: PIPE3 */
-#define BRDY2 0x0004 /* b2: PIPE2 */
-#define BRDY1 0x0002 /* b1: PIPE1 */
-#define BRDY0 0x0001 /* b1: PIPE0 */
-
-/* NRDY Interrupt Enable/Status Register */
-#define NRDY9 0x0200 /* b9: PIPE9 */
-#define NRDY8 0x0100 /* b8: PIPE8 */
-#define NRDY7 0x0080 /* b7: PIPE7 */
-#define NRDY6 0x0040 /* b6: PIPE6 */
-#define NRDY5 0x0020 /* b5: PIPE5 */
-#define NRDY4 0x0010 /* b4: PIPE4 */
-#define NRDY3 0x0008 /* b3: PIPE3 */
-#define NRDY2 0x0004 /* b2: PIPE2 */
-#define NRDY1 0x0002 /* b1: PIPE1 */
-#define NRDY0 0x0001 /* b1: PIPE0 */
-
-/* BEMP Interrupt Enable/Status Register */
-#define BEMP9 0x0200 /* b9: PIPE9 */
-#define BEMP8 0x0100 /* b8: PIPE8 */
-#define BEMP7 0x0080 /* b7: PIPE7 */
-#define BEMP6 0x0040 /* b6: PIPE6 */
-#define BEMP5 0x0020 /* b5: PIPE5 */
-#define BEMP4 0x0010 /* b4: PIPE4 */
-#define BEMP3 0x0008 /* b3: PIPE3 */
-#define BEMP2 0x0004 /* b2: PIPE2 */
-#define BEMP1 0x0002 /* b1: PIPE1 */
-#define BEMP0 0x0001 /* b0: PIPE0 */
-
-/* SOF Pin Configuration Register */
-#define TRNENSEL 0x0100 /* b8: Select transaction enable period */
-#define BRDYM 0x0040 /* b6: BRDY clear timing */
-#define INTL 0x0020 /* b5: Interrupt sense select */
-#define EDGESTS 0x0010 /* b4: */
-#define SOFMODE 0x000C /* b3-2: SOF pin select */
-#define SOF_125US 0x0008 /* SOF OUT 125us Frame Signal */
-#define SOF_1MS 0x0004 /* SOF OUT 1ms Frame Signal */
-#define SOF_DISABLE 0x0000 /* SOF OUT Disable */
-
-/* Interrupt Status Register 0 */
-#define VBINT 0x8000 /* b15: VBUS interrupt */
-#define RESM 0x4000 /* b14: Resume interrupt */
-#define SOFR 0x2000 /* b13: SOF frame update interrupt */
-#define DVST 0x1000 /* b12: Device state transition interrupt */
-#define CTRT 0x0800 /* b11: Control transfer stage transition interrupt */
-#define BEMP 0x0400 /* b10: Buffer empty interrupt */
-#define NRDY 0x0200 /* b9: Buffer not ready interrupt */
-#define BRDY 0x0100 /* b8: Buffer ready interrupt */
-#define VBSTS 0x0080 /* b7: VBUS input port */
-#define DVSQ 0x0070 /* b6-4: Device state */
-#define DS_SPD_CNFG 0x0070 /* Suspend Configured */
-#define DS_SPD_ADDR 0x0060 /* Suspend Address */
-#define DS_SPD_DFLT 0x0050 /* Suspend Default */
-#define DS_SPD_POWR 0x0040 /* Suspend Powered */
-#define DS_SUSP 0x0040 /* Suspend */
-#define DS_CNFG 0x0030 /* Configured */
-#define DS_ADDS 0x0020 /* Address */
-#define DS_DFLT 0x0010 /* Default */
-#define DS_POWR 0x0000 /* Powered */
-#define DVSQS 0x0030 /* b5-4: Device state */
-#define VALID 0x0008 /* b3: Setup packet detected flag */
-#define CTSQ 0x0007 /* b2-0: Control transfer stage */
-#define CS_SQER 0x0006 /* Sequence error */
-#define CS_WRND 0x0005 /* Control write nodata status stage */
-#define CS_WRSS 0x0004 /* Control write status stage */
-#define CS_WRDS 0x0003 /* Control write data stage */
-#define CS_RDSS 0x0002 /* Control read status stage */
-#define CS_RDDS 0x0001 /* Control read data stage */
-#define CS_IDST 0x0000 /* Idle or setup stage */
-
-/* Interrupt Status Register 1 */
-#define OVRCR 0x8000 /* b15: Over-current interrupt */
-#define BCHG 0x4000 /* b14: USB bus chenge interrupt */
-#define DTCH 0x1000 /* b12: Detach sense interrupt */
-#define ATTCH 0x0800 /* b11: Attach sense interrupt */
-#define EOFERR 0x0040 /* b6: EOF-error interrupt */
-#define SIGN 0x0020 /* b5: Setup ignore interrupt */
-#define SACK 0x0010 /* b4: Setup acknowledge interrupt */
-
-/* Frame Number Register */
-#define OVRN 0x8000 /* b15: Overrun error */
-#define CRCE 0x4000 /* b14: Received data error */
-#define FRNM 0x07FF /* b10-0: Frame number */
-
-/* Micro Frame Number Register */
-#define UFRNM 0x0007 /* b2-0: Micro frame number */
-
-/* Default Control Pipe Maxpacket Size Register */
-/* Pipe Maxpacket Size Register */
-#define DEVSEL 0xF000 /* b15-14: Device address select */
-#define MAXP 0x007F /* b6-0: Maxpacket size of default control pipe */
-
-/* Default Control Pipe Control Register */
-#define BSTS 0x8000 /* b15: Buffer status */
-#define SUREQ 0x4000 /* b14: Send USB request */
-#define CSCLR 0x2000 /* b13: complete-split status clear */
-#define CSSTS 0x1000 /* b12: complete-split status */
-#define SUREQCLR 0x0800 /* b11: stop setup request */
-#define SQCLR 0x0100 /* b8: Sequence toggle bit clear */
-#define SQSET 0x0080 /* b7: Sequence toggle bit set */
-#define SQMON 0x0040 /* b6: Sequence toggle bit monitor */
-#define PBUSY 0x0020 /* b5: pipe busy */
-#define PINGE 0x0010 /* b4: ping enable */
-#define CCPL 0x0004 /* b2: Enable control transfer complete */
-#define PID 0x0003 /* b1-0: Response PID */
-#define PID_STALL11 0x0003 /* STALL */
-#define PID_STALL 0x0002 /* STALL */
-#define PID_BUF 0x0001 /* BUF */
-#define PID_NAK 0x0000 /* NAK */
-
-/* Pipe Window Select Register */
-#define PIPENM 0x0007 /* b2-0: Pipe select */
-
-/* Pipe Configuration Register */
-#define R8A66597_TYP 0xC000 /* b15-14: Transfer type */
-#define R8A66597_ISO 0xC000 /* Isochronous */
-#define R8A66597_INT 0x8000 /* Interrupt */
-#define R8A66597_BULK 0x4000 /* Bulk */
-#define R8A66597_BFRE 0x0400 /* b10: Buffer ready interrupt mode select */
-#define R8A66597_DBLB 0x0200 /* b9: Double buffer mode select */
-#define R8A66597_CNTMD 0x0100 /* b8: Continuous transfer mode select */
-#define R8A66597_SHTNAK 0x0080 /* b7: Transfer end NAK */
-#define R8A66597_DIR 0x0010 /* b4: Transfer direction select */
-#define R8A66597_EPNUM 0x000F /* b3-0: Eendpoint number select */
-
-/* Pipe Buffer Configuration Register */
-#define BUFSIZE 0x7C00 /* b14-10: Pipe buffer size */
-#define BUFNMB 0x007F /* b6-0: Pipe buffer number */
-#define PIPE0BUF 256
-#define PIPExBUF 64
-
-/* Pipe Maxpacket Size Register */
-#define MXPS 0x07FF /* b10-0: Maxpacket size */
-
-/* Pipe Cycle Configuration Register */
-#define IFIS 0x1000 /* b12: Isochronous in-buffer flush mode select */
-#define IITV 0x0007 /* b2-0: Isochronous interval */
-
-/* Pipex Control Register */
-#define BSTS 0x8000 /* b15: Buffer status */
-#define INBUFM 0x4000 /* b14: IN buffer monitor (Only for PIPE1 to 5) */
-#define CSCLR 0x2000 /* b13: complete-split status clear */
-#define CSSTS 0x1000 /* b12: complete-split status */
-#define ATREPM 0x0400 /* b10: Auto repeat mode */
-#define ACLRM 0x0200 /* b9: Out buffer auto clear mode */
-#define SQCLR 0x0100 /* b8: Sequence toggle bit clear */
-#define SQSET 0x0080 /* b7: Sequence toggle bit set */
-#define SQMON 0x0040 /* b6: Sequence toggle bit monitor */
-#define PBUSY 0x0020 /* b5: pipe busy */
-#define PID 0x0003 /* b1-0: Response PID */
-
-/* PIPExTRE */
-#define TRENB 0x0200 /* b9: Transaction counter enable */
-#define TRCLR 0x0100 /* b8: Transaction counter clear */
-
-/* PIPExTRN */
-#define TRNCNT 0xFFFF /* b15-0: Transaction counter */
-
-/* DEVADDx */
-#define UPPHUB 0x7800
-#define HUBPORT 0x0700
-#define USBSPD 0x00C0
-#define RTPORT 0x0001
-
-/* SUDMAC registers */
-#define CH0CFG 0x00
-#define CH1CFG 0x04
-#define CH0BA 0x10
-#define CH1BA 0x14
-#define CH0BBC 0x18
-#define CH1BBC 0x1C
-#define CH0CA 0x20
-#define CH1CA 0x24
-#define CH0CBC 0x28
-#define CH1CBC 0x2C
-#define CH0DEN 0x30
-#define CH1DEN 0x34
-#define DSTSCLR 0x38
-#define DBUFCTRL 0x3C
-#define DINTCTRL 0x40
-#define DINTSTS 0x44
-#define DINTSTSCLR 0x48
-#define CH0SHCTRL 0x50
-#define CH1SHCTRL 0x54
-
-/* SUDMAC Configuration Registers */
-#define SENDBUFM 0x1000 /* b12: Transmit Buffer Mode */
-#define RCVENDM 0x0100 /* b8: Receive Data Transfer End Mode */
-#define LBA_WAIT 0x0030 /* b5-4: Local Bus Access Wait */
-
-/* DMA Enable Registers */
-#define DEN 0x0001 /* b1: DMA Transfer Enable */
-
-/* DMA Status Clear Register */
-#define CH1STCLR 0x0002 /* b2: Ch1 DMA Status Clear */
-#define CH0STCLR 0x0001 /* b1: Ch0 DMA Status Clear */
-
-/* DMA Buffer Control Register */
-#define CH1BUFW 0x0200 /* b9: Ch1 DMA Buffer Data Transfer Enable */
-#define CH0BUFW 0x0100 /* b8: Ch0 DMA Buffer Data Transfer Enable */
-#define CH1BUFS 0x0002 /* b2: Ch1 DMA Buffer Data Status */
-#define CH0BUFS 0x0001 /* b1: Ch0 DMA Buffer Data Status */
-
-/* DMA Interrupt Control Register */
-#define CH1ERRE 0x0200 /* b9: Ch1 SHwy Res Err Detect Int Enable */
-#define CH0ERRE 0x0100 /* b8: Ch0 SHwy Res Err Detect Int Enable */
-#define CH1ENDE 0x0002 /* b2: Ch1 DMA Transfer End Int Enable */
-#define CH0ENDE 0x0001 /* b1: Ch0 DMA Transfer End Int Enable */
-
-/* DMA Interrupt Status Register */
-#define CH1ERRS 0x0200 /* b9: Ch1 SHwy Res Err Detect Int Status */
-#define CH0ERRS 0x0100 /* b8: Ch0 SHwy Res Err Detect Int Status */
-#define CH1ENDS 0x0002 /* b2: Ch1 DMA Transfer End Int Status */
-#define CH0ENDS 0x0001 /* b1: Ch0 DMA Transfer End Int Status */
-
-/* DMA Interrupt Status Clear Register */
-#define CH1ERRC 0x0200 /* b9: Ch1 SHwy Res Err Detect Int Stat Clear */
-#define CH0ERRC 0x0100 /* b8: Ch0 SHwy Res Err Detect Int Stat Clear */
-#define CH1ENDC 0x0002 /* b2: Ch1 DMA Transfer End Int Stat Clear */
-#define CH0ENDC 0x0001 /* b1: Ch0 DMA Transfer End Int Stat Clear */
-
-#endif /* __LINUX_USB_R8A66597_H */
-
diff --git a/ANDROID_3.4.5/include/linux/usb/rawbulk.h b/ANDROID_3.4.5/include/linux/usb/rawbulk.h
deleted file mode 100755
index 05a22b10..00000000
--- a/ANDROID_3.4.5/include/linux/usb/rawbulk.h
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * Rawbulk Driver from VIA Telecom
- *
- * Copyright (C) 2011 VIA Telecom, Inc.
- * Author: Karfield Chen (kfchen@via-telecom.com)
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#ifndef __RAWBULK_H__
-#define __RAWBULK_H__
-
-#include <linux/usb.h>
-#include <linux/usb/ch9.h>
-#include <linux/usb/composite.h>
-#include <linux/usb/gadget.h>
-#include <linux/wakelock.h>
-#include <linux/device.h>
-#include <linux/tty.h>
-#include <linux/tty_driver.h>
-
-#define INTF_DESC 0
-#define BULKIN_DESC 1
-#define BULKOUT_DESC 2
-#define MAX_DESC_ARRAY 4
-
-#define NAME_BUFFSIZE 64
-#define MAX_ATTRIBUTES 10
-
-#define MAX_TTY_RX 4
-#define MAX_TTY_RX_PACKAGE 512
-#define MAX_TTY_TX 8
-#define MAX_TTY_TX_PACKAGE 64
-
-struct rawbulk_function {
- int transfer_id;
- const char *longname;
- const char *shortname;
- struct device *dev;
-
- /* Controls */
- spinlock_t lock;
- int enable: 1;
- int activated: 1; /* set when usb enabled */
- int tty_opened: 1;
-
- struct work_struct activator; /* asynic transaction starter */
-
- struct wake_lock keep_awake;
-
- /* USB Gadget related */
- struct usb_function function;
- struct usb_composite_dev *cdev;
- struct usb_ep *bulk_out, *bulk_in;
-
- int rts_state; /* Handshaking pins (outputs) */
- int dtr_state;
- int cts_state; /* Handshaking pins (inputs) */
- int dsr_state;
- int dcd_state;
- int ri_state;
-
- /* TTY related */
- struct tty_struct *tty;
- int tty_minor;
- struct tty_port port;
- spinlock_t tx_lock;
- struct list_head tx_free;
- struct list_head tx_inproc;
- spinlock_t rx_lock;
- struct list_head rx_free;
- struct list_head rx_inproc;
- struct list_head rx_throttled;
- unsigned int last_pushed;
-
- /* Transfer Controls */
- int nups;
- int ndowns;
- int upsz;
- int downsz;
- int splitsz;
- int autoreconn;
- int pushable; /* Set to use push-way for upstream */
-
- /* Descriptors and Strings */
- struct usb_descriptor_header *fs_descs[MAX_DESC_ARRAY];
- struct usb_descriptor_header *hs_descs[MAX_DESC_ARRAY];
- struct usb_string string_defs[2];
- struct usb_gadget_strings string_table;
- struct usb_gadget_strings *strings[2];
- struct usb_interface_descriptor interface;
- struct usb_endpoint_descriptor fs_bulkin_endpoint;
- struct usb_endpoint_descriptor hs_bulkin_endpoint;
- struct usb_endpoint_descriptor fs_bulkout_endpoint;
- struct usb_endpoint_descriptor hs_bulkout_endpoint;
-
- /* Sysfs Accesses */
- int max_attrs;
- struct device_attribute attr[MAX_ATTRIBUTES];
-};
-
-enum transfer_id {
- RAWBULK_TID_MODEM,
- RAWBULK_TID_ETS,
- RAWBULK_TID_AT,
- RAWBULK_TID_PCV,
- RAWBULK_TID_GPS,
- _MAX_TID
-};
-
-#define RAWBULK_INCEPT_FLAG_ENABLE 0x01
-#define RAWBULK_INCEPT_FLAG_PUSH_WAY 0x02
-typedef int (*rawbulk_intercept_t)(struct usb_interface *interface, unsigned int flags);
-typedef void (*rawbulk_autoreconn_callback_t)(int transfer_id);
-
-struct rawbulk_function *rawbulk_lookup_function(int transfer_id);
-
-/* rawbulk tty io */
-int rawbulk_register_tty(struct rawbulk_function *fn);
-void rawbulk_unregister_tty(struct rawbulk_function *fn);
-
-int rawbulk_tty_stop_io(struct rawbulk_function *fn);
-int rawbulk_tty_start_io(struct rawbulk_function *fn);
-int rawbulk_tty_alloc_request(struct rawbulk_function *fn);
-void rawbulk_tty_free_request(struct rawbulk_function *fn);
-
-/* bind/unbind for gadget */
-int rawbulk_bind_function(int transfer_id, struct usb_function *function,
- struct usb_ep *bulk_out, struct usb_ep *bulk_in,
- rawbulk_autoreconn_callback_t autoreconn_callback);
-void rawbulk_unbind_function(int trasfer_id);
-int rawbulk_check_enable(struct rawbulk_function *fn);
-void rawbulk_disable_function(struct rawbulk_function *fn);
-
-/* bind/unbind host interfaces */
-int rawbulk_bind_host_interface(struct usb_interface *interface,
- rawbulk_intercept_t inceptor);
-void rawbulk_unbind_host_interface(struct usb_interface *interface);
-
-/* operations for transactions */
-int rawbulk_start_transactions(int transfer_id, int nups, int ndowns,
- int upsz, int downsz, int splitsz, int pushable);
-void rawbulk_stop_transactions(int transfer_id);
-int rawbulk_halt_transactions(int transfer_id);
-int rawbulk_resume_transactions(int transfer_id);
-
-int rawbulk_suspend_host_interface(int transfer_id, pm_message_t message);
-int rawbulk_resume_host_interface(int transfer_id);
-int rawbulk_push_upstream_buffer(int transfer_id, const void *buffer,
- unsigned int length);
-
-int rawbulk_forward_ctrlrequest(const struct usb_ctrlrequest *ctrl);
-
-/* statics and state */
-int rawbulk_transfer_statistics(int transfer_id, char *buf);
-int rawbulk_transfer_state(int transfer_id);
-
-#endif /* __RAWBULK_HEADER_FILE__ */
diff --git a/ANDROID_3.4.5/include/linux/usb/renesas_usbhs.h b/ANDROID_3.4.5/include/linux/usb/renesas_usbhs.h
deleted file mode 100644
index 547e59cc..00000000
--- a/ANDROID_3.4.5/include/linux/usb/renesas_usbhs.h
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * Renesas USB
- *
- * Copyright (C) 2011 Renesas Solutions Corp.
- * Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
- *
- * 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 RENESAS_USB_H
-#define RENESAS_USB_H
-#include <linux/platform_device.h>
-#include <linux/usb/ch9.h>
-
-/*
- * module type
- *
- * it will be return value from get_id
- */
-enum {
- USBHS_HOST = 0,
- USBHS_GADGET,
- USBHS_MAX,
-};
-
-/*
- * callback functions table for driver
- *
- * These functions are called from platform for driver.
- * Callback function's pointer will be set before
- * renesas_usbhs_platform_callback :: hardware_init was called
- */
-struct renesas_usbhs_driver_callback {
- int (*notify_hotplug)(struct platform_device *pdev);
-};
-
-/*
- * callback functions for platform
- *
- * These functions are called from driver for platform
- */
-struct renesas_usbhs_platform_callback {
-
- /*
- * option:
- *
- * Hardware init function for platform.
- * it is called when driver was probed.
- */
- int (*hardware_init)(struct platform_device *pdev);
-
- /*
- * option:
- *
- * Hardware exit function for platform.
- * it is called when driver was removed
- */
- void (*hardware_exit)(struct platform_device *pdev);
-
- /*
- * option:
- *
- * for board specific clock control
- */
- void (*power_ctrl)(struct platform_device *pdev,
- void __iomem *base, int enable);
-
- /*
- * option:
- *
- * Phy reset for platform
- */
- void (*phy_reset)(struct platform_device *pdev);
-
- /*
- * get USB ID function
- * - USBHS_HOST
- * - USBHS_GADGET
- */
- int (*get_id)(struct platform_device *pdev);
-
- /*
- * get VBUS status function.
- */
- int (*get_vbus)(struct platform_device *pdev);
-
- /*
- * option:
- *
- * VBUS control is needed for Host
- */
- int (*set_vbus)(struct platform_device *pdev, int enable);
-};
-
-/*
- * parameters for renesas usbhs
- *
- * some register needs USB chip specific parameters.
- * This struct show it to driver
- */
-struct renesas_usbhs_driver_param {
- /*
- * pipe settings
- */
- u32 *pipe_type; /* array of USB_ENDPOINT_XFER_xxx (from ep0) */
- int pipe_size; /* pipe_type array size */
-
- /*
- * option:
- *
- * for BUSWAIT :: BWAIT
- * see
- * renesas_usbhs/common.c :: usbhsc_set_buswait()
- * */
- int buswait_bwait;
-
- /*
- * option:
- *
- * delay time from notify_hotplug callback
- */
- int detection_delay; /* msec */
-
- /*
- * option:
- *
- * dma id for dmaengine
- */
- int d0_tx_id;
- int d0_rx_id;
- int d1_tx_id;
- int d1_rx_id;
-
- /*
- * option:
- *
- * pio <--> dma border.
- */
- int pio_dma_border; /* default is 64byte */
-
- /*
- * option:
- */
- u32 has_otg:1; /* for controlling PWEN/EXTLP */
- u32 has_sudmac:1; /* for SUDMAC */
-};
-
-/*
- * option:
- *
- * platform information for renesas_usbhs driver.
- */
-struct renesas_usbhs_platform_info {
- /*
- * option:
- *
- * platform set these functions before
- * call platform_add_devices if needed
- */
- struct renesas_usbhs_platform_callback platform_callback;
-
- /*
- * driver set these callback functions pointer.
- * platform can use it on callback functions
- */
- struct renesas_usbhs_driver_callback driver_callback;
-
- /*
- * option:
- *
- * driver use these param for some register
- */
- struct renesas_usbhs_driver_param driver_param;
-};
-
-/*
- * macro for platform
- */
-#define renesas_usbhs_get_info(pdev)\
- ((struct renesas_usbhs_platform_info *)(pdev)->dev.platform_data)
-
-#define renesas_usbhs_call_notify_hotplug(pdev) \
- ({ \
- struct renesas_usbhs_driver_callback *dc; \
- dc = &(renesas_usbhs_get_info(pdev)->driver_callback); \
- if (dc && dc->notify_hotplug) \
- dc->notify_hotplug(pdev); \
- })
-#endif /* RENESAS_USB_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/rndis_host.h b/ANDROID_3.4.5/include/linux/usb/rndis_host.h
deleted file mode 100644
index 88fceb71..00000000
--- a/ANDROID_3.4.5/include/linux/usb/rndis_host.h
+++ /dev/null
@@ -1,272 +0,0 @@
-/*
- * Host Side support for RNDIS Networking Links
- * Copyright (C) 2005 by David Brownell
- *
- * 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
- */
-
-#ifndef __LINUX_USB_RNDIS_HOST_H
-#define __LINUX_USB_RNDIS_HOST_H
-
-/*
- * CONTROL uses CDC "encapsulated commands" with funky notifications.
- * - control-out: SEND_ENCAPSULATED
- * - interrupt-in: RESPONSE_AVAILABLE
- * - control-in: GET_ENCAPSULATED
- *
- * We'll try to ignore the RESPONSE_AVAILABLE notifications.
- *
- * REVISIT some RNDIS implementations seem to have curious issues still
- * to be resolved.
- */
-struct rndis_msg_hdr {
- __le32 msg_type; /* RNDIS_MSG_* */
- __le32 msg_len;
- /* followed by data that varies between messages */
- __le32 request_id;
- __le32 status;
- /* ... and more */
-} __attribute__ ((packed));
-
-/* MS-Windows uses this strange size, but RNDIS spec says 1024 minimum */
-#define CONTROL_BUFFER_SIZE 1025
-
-/* RNDIS defines an (absurdly huge) 10 second control timeout,
- * but ActiveSync seems to use a more usual 5 second timeout
- * (which matches the USB 2.0 spec).
- */
-#define RNDIS_CONTROL_TIMEOUT_MS (5 * 1000)
-
-#define RNDIS_MSG_COMPLETION cpu_to_le32(0x80000000)
-
-/* codes for "msg_type" field of rndis messages;
- * only the data channel uses packet messages (maybe batched);
- * everything else goes on the control channel.
- */
-#define RNDIS_MSG_PACKET cpu_to_le32(0x00000001) /* 1-N packets */
-#define RNDIS_MSG_INIT cpu_to_le32(0x00000002)
-#define RNDIS_MSG_INIT_C (RNDIS_MSG_INIT|RNDIS_MSG_COMPLETION)
-#define RNDIS_MSG_HALT cpu_to_le32(0x00000003)
-#define RNDIS_MSG_QUERY cpu_to_le32(0x00000004)
-#define RNDIS_MSG_QUERY_C (RNDIS_MSG_QUERY|RNDIS_MSG_COMPLETION)
-#define RNDIS_MSG_SET cpu_to_le32(0x00000005)
-#define RNDIS_MSG_SET_C (RNDIS_MSG_SET|RNDIS_MSG_COMPLETION)
-#define RNDIS_MSG_RESET cpu_to_le32(0x00000006)
-#define RNDIS_MSG_RESET_C (RNDIS_MSG_RESET|RNDIS_MSG_COMPLETION)
-#define RNDIS_MSG_INDICATE cpu_to_le32(0x00000007)
-#define RNDIS_MSG_KEEPALIVE cpu_to_le32(0x00000008)
-#define RNDIS_MSG_KEEPALIVE_C (RNDIS_MSG_KEEPALIVE|RNDIS_MSG_COMPLETION)
-
-/* codes for "status" field of completion messages */
-#define RNDIS_STATUS_SUCCESS cpu_to_le32(0x00000000)
-#define RNDIS_STATUS_FAILURE cpu_to_le32(0xc0000001)
-#define RNDIS_STATUS_INVALID_DATA cpu_to_le32(0xc0010015)
-#define RNDIS_STATUS_NOT_SUPPORTED cpu_to_le32(0xc00000bb)
-#define RNDIS_STATUS_MEDIA_CONNECT cpu_to_le32(0x4001000b)
-#define RNDIS_STATUS_MEDIA_DISCONNECT cpu_to_le32(0x4001000c)
-#define RNDIS_STATUS_MEDIA_SPECIFIC_INDICATION cpu_to_le32(0x40010012)
-
-/* codes for OID_GEN_PHYSICAL_MEDIUM */
-#define RNDIS_PHYSICAL_MEDIUM_UNSPECIFIED cpu_to_le32(0x00000000)
-#define RNDIS_PHYSICAL_MEDIUM_WIRELESS_LAN cpu_to_le32(0x00000001)
-#define RNDIS_PHYSICAL_MEDIUM_CABLE_MODEM cpu_to_le32(0x00000002)
-#define RNDIS_PHYSICAL_MEDIUM_PHONE_LINE cpu_to_le32(0x00000003)
-#define RNDIS_PHYSICAL_MEDIUM_POWER_LINE cpu_to_le32(0x00000004)
-#define RNDIS_PHYSICAL_MEDIUM_DSL cpu_to_le32(0x00000005)
-#define RNDIS_PHYSICAL_MEDIUM_FIBRE_CHANNEL cpu_to_le32(0x00000006)
-#define RNDIS_PHYSICAL_MEDIUM_1394 cpu_to_le32(0x00000007)
-#define RNDIS_PHYSICAL_MEDIUM_WIRELESS_WAN cpu_to_le32(0x00000008)
-#define RNDIS_PHYSICAL_MEDIUM_MAX cpu_to_le32(0x00000009)
-
-struct rndis_data_hdr {
- __le32 msg_type; /* RNDIS_MSG_PACKET */
- __le32 msg_len; /* rndis_data_hdr + data_len + pad */
- __le32 data_offset; /* 36 -- right after header */
- __le32 data_len; /* ... real packet size */
-
- __le32 oob_data_offset; /* zero */
- __le32 oob_data_len; /* zero */
- __le32 num_oob; /* zero */
- __le32 packet_data_offset; /* zero */
-
- __le32 packet_data_len; /* zero */
- __le32 vc_handle; /* zero */
- __le32 reserved; /* zero */
-} __attribute__ ((packed));
-
-struct rndis_init { /* OUT */
- /* header and: */
- __le32 msg_type; /* RNDIS_MSG_INIT */
- __le32 msg_len; /* 24 */
- __le32 request_id;
- __le32 major_version; /* of rndis (1.0) */
- __le32 minor_version;
- __le32 max_transfer_size;
-} __attribute__ ((packed));
-
-struct rndis_init_c { /* IN */
- /* header and: */
- __le32 msg_type; /* RNDIS_MSG_INIT_C */
- __le32 msg_len;
- __le32 request_id;
- __le32 status;
- __le32 major_version; /* of rndis (1.0) */
- __le32 minor_version;
- __le32 device_flags;
- __le32 medium; /* zero == 802.3 */
- __le32 max_packets_per_message;
- __le32 max_transfer_size;
- __le32 packet_alignment; /* max 7; (1<<n) bytes */
- __le32 af_list_offset; /* zero */
- __le32 af_list_size; /* zero */
-} __attribute__ ((packed));
-
-struct rndis_halt { /* OUT (no reply) */
- /* header and: */
- __le32 msg_type; /* RNDIS_MSG_HALT */
- __le32 msg_len;
- __le32 request_id;
-} __attribute__ ((packed));
-
-struct rndis_query { /* OUT */
- /* header and: */
- __le32 msg_type; /* RNDIS_MSG_QUERY */
- __le32 msg_len;
- __le32 request_id;
- __le32 oid;
- __le32 len;
- __le32 offset;
-/*?*/ __le32 handle; /* zero */
-} __attribute__ ((packed));
-
-struct rndis_query_c { /* IN */
- /* header and: */
- __le32 msg_type; /* RNDIS_MSG_QUERY_C */
- __le32 msg_len;
- __le32 request_id;
- __le32 status;
- __le32 len;
- __le32 offset;
-} __attribute__ ((packed));
-
-struct rndis_set { /* OUT */
- /* header and: */
- __le32 msg_type; /* RNDIS_MSG_SET */
- __le32 msg_len;
- __le32 request_id;
- __le32 oid;
- __le32 len;
- __le32 offset;
-/*?*/ __le32 handle; /* zero */
-} __attribute__ ((packed));
-
-struct rndis_set_c { /* IN */
- /* header and: */
- __le32 msg_type; /* RNDIS_MSG_SET_C */
- __le32 msg_len;
- __le32 request_id;
- __le32 status;
-} __attribute__ ((packed));
-
-struct rndis_reset { /* IN */
- /* header and: */
- __le32 msg_type; /* RNDIS_MSG_RESET */
- __le32 msg_len;
- __le32 reserved;
-} __attribute__ ((packed));
-
-struct rndis_reset_c { /* OUT */
- /* header and: */
- __le32 msg_type; /* RNDIS_MSG_RESET_C */
- __le32 msg_len;
- __le32 status;
- __le32 addressing_lost;
-} __attribute__ ((packed));
-
-struct rndis_indicate { /* IN (unrequested) */
- /* header and: */
- __le32 msg_type; /* RNDIS_MSG_INDICATE */
- __le32 msg_len;
- __le32 status;
- __le32 length;
- __le32 offset;
-/**/ __le32 diag_status;
- __le32 error_offset;
-/**/ __le32 message;
-} __attribute__ ((packed));
-
-struct rndis_keepalive { /* OUT (optionally IN) */
- /* header and: */
- __le32 msg_type; /* RNDIS_MSG_KEEPALIVE */
- __le32 msg_len;
- __le32 request_id;
-} __attribute__ ((packed));
-
-struct rndis_keepalive_c { /* IN (optionally OUT) */
- /* header and: */
- __le32 msg_type; /* RNDIS_MSG_KEEPALIVE_C */
- __le32 msg_len;
- __le32 request_id;
- __le32 status;
-} __attribute__ ((packed));
-
-/* NOTE: about 30 OIDs are "mandatory" for peripherals to support ... and
- * there are gobs more that may optionally be supported. We'll avoid as much
- * of that mess as possible.
- */
-#define OID_802_3_PERMANENT_ADDRESS cpu_to_le32(0x01010101)
-#define OID_GEN_MAXIMUM_FRAME_SIZE cpu_to_le32(0x00010106)
-#define OID_GEN_CURRENT_PACKET_FILTER cpu_to_le32(0x0001010e)
-#define OID_GEN_PHYSICAL_MEDIUM cpu_to_le32(0x00010202)
-
-/* packet filter bits used by OID_GEN_CURRENT_PACKET_FILTER */
-#define RNDIS_PACKET_TYPE_DIRECTED cpu_to_le32(0x00000001)
-#define RNDIS_PACKET_TYPE_MULTICAST cpu_to_le32(0x00000002)
-#define RNDIS_PACKET_TYPE_ALL_MULTICAST cpu_to_le32(0x00000004)
-#define RNDIS_PACKET_TYPE_BROADCAST cpu_to_le32(0x00000008)
-#define RNDIS_PACKET_TYPE_SOURCE_ROUTING cpu_to_le32(0x00000010)
-#define RNDIS_PACKET_TYPE_PROMISCUOUS cpu_to_le32(0x00000020)
-#define RNDIS_PACKET_TYPE_SMT cpu_to_le32(0x00000040)
-#define RNDIS_PACKET_TYPE_ALL_LOCAL cpu_to_le32(0x00000080)
-#define RNDIS_PACKET_TYPE_GROUP cpu_to_le32(0x00001000)
-#define RNDIS_PACKET_TYPE_ALL_FUNCTIONAL cpu_to_le32(0x00002000)
-#define RNDIS_PACKET_TYPE_FUNCTIONAL cpu_to_le32(0x00004000)
-#define RNDIS_PACKET_TYPE_MAC_FRAME cpu_to_le32(0x00008000)
-
-/* default filter used with RNDIS devices */
-#define RNDIS_DEFAULT_FILTER ( \
- RNDIS_PACKET_TYPE_DIRECTED | \
- RNDIS_PACKET_TYPE_BROADCAST | \
- RNDIS_PACKET_TYPE_ALL_MULTICAST | \
- RNDIS_PACKET_TYPE_PROMISCUOUS)
-
-/* Flags to require specific physical medium type for generic_rndis_bind() */
-#define FLAG_RNDIS_PHYM_NOT_WIRELESS 0x0001
-#define FLAG_RNDIS_PHYM_WIRELESS 0x0002
-
-/* Flags for driver_info::data */
-#define RNDIS_DRIVER_DATA_POLL_STATUS 1 /* poll status before control */
-
-extern void rndis_status(struct usbnet *dev, struct urb *urb);
-extern int
-rndis_command(struct usbnet *dev, struct rndis_msg_hdr *buf, int buflen);
-extern int
-generic_rndis_bind(struct usbnet *dev, struct usb_interface *intf, int flags);
-extern void rndis_unbind(struct usbnet *dev, struct usb_interface *intf);
-extern int rndis_rx_fixup(struct usbnet *dev, struct sk_buff *skb);
-extern struct sk_buff *
-rndis_tx_fixup(struct usbnet *dev, struct sk_buff *skb, gfp_t flags);
-
-#endif /* __LINUX_USB_RNDIS_HOST_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/serial.h b/ANDROID_3.4.5/include/linux/usb/serial.h
deleted file mode 100644
index 47428388..00000000
--- a/ANDROID_3.4.5/include/linux/usb/serial.h
+++ /dev/null
@@ -1,417 +0,0 @@
-/*
- * USB Serial Converter stuff
- *
- * Copyright (C) 1999 - 2005
- * 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; version 2 of the License.
- *
- */
-
-#ifndef __LINUX_USB_SERIAL_H
-#define __LINUX_USB_SERIAL_H
-
-#include <linux/kref.h>
-#include <linux/mutex.h>
-#include <linux/sysrq.h>
-#include <linux/kfifo.h>
-
-#define SERIAL_TTY_MAJOR 188 /* Nice legal number now */
-#define SERIAL_TTY_MINORS 254 /* loads of devices :) */
-#define SERIAL_TTY_NO_MINOR 255 /* No minor was assigned */
-
-/* The maximum number of ports one device can grab at once */
-#define MAX_NUM_PORTS 8
-
-/* parity check flag */
-#define RELEVANT_IFLAG(iflag) (iflag & (IGNBRK|BRKINT|IGNPAR|PARMRK|INPCK))
-
-/* USB serial flags */
-#define USB_SERIAL_WRITE_BUSY 0
-
-/**
- * usb_serial_port: structure for the specific ports of a device.
- * @serial: pointer back to the struct usb_serial owner of this port.
- * @port: pointer to the corresponding tty_port for this port.
- * @lock: spinlock to grab when updating portions of this structure.
- * @number: the number of the port (the minor number).
- * @interrupt_in_buffer: pointer to the interrupt in buffer for this port.
- * @interrupt_in_urb: pointer to the interrupt in struct urb for this port.
- * @interrupt_in_endpointAddress: endpoint address for the interrupt in pipe
- * for this port.
- * @interrupt_out_buffer: pointer to the interrupt out buffer for this port.
- * @interrupt_out_size: the size of the interrupt_out_buffer, in bytes.
- * @interrupt_out_urb: pointer to the interrupt out struct urb for this port.
- * @interrupt_out_endpointAddress: endpoint address for the interrupt out pipe
- * for this port.
- * @bulk_in_buffer: pointer to the bulk in buffer for this port.
- * @bulk_in_size: the size of the bulk_in_buffer, in bytes.
- * @read_urb: pointer to the bulk in struct urb for this port.
- * @bulk_in_endpointAddress: endpoint address for the bulk in pipe for this
- * port.
- * @bulk_in_buffers: pointers to the bulk in buffers for this port
- * @read_urbs: pointers to the bulk in urbs for this port
- * @read_urbs_free: status bitmap the for bulk in urbs
- * @bulk_out_buffer: pointer to the bulk out buffer for this port.
- * @bulk_out_size: the size of the bulk_out_buffer, in bytes.
- * @write_urb: pointer to the bulk out struct urb for this port.
- * @write_fifo: kfifo used to buffer outgoing data
- * @bulk_out_buffers: pointers to the bulk out buffers for this port
- * @write_urbs: pointers to the bulk out urbs for this port
- * @write_urbs_free: status bitmap the for bulk out urbs
- * @tx_bytes: number of bytes currently in host stack queues
- * @bulk_out_endpointAddress: endpoint address for the bulk out pipe for this
- * port.
- * @flags: usb serial port flags
- * @write_wait: a wait_queue_head_t used by the port.
- * @work: work queue entry for the line discipline waking up.
- * @throttled: nonzero if the read urb is inactive to throttle the device
- * @throttle_req: nonzero if the tty wants to throttle us
- * @dev: pointer to the serial device
- *
- * This structure is used by the usb-serial core and drivers for the specific
- * ports of a device.
- */
-struct usb_serial_port {
- struct usb_serial *serial;
- struct tty_port port;
- spinlock_t lock;
- unsigned char number;
-
- unsigned char *interrupt_in_buffer;
- struct urb *interrupt_in_urb;
- __u8 interrupt_in_endpointAddress;
-
- unsigned char *interrupt_out_buffer;
- int interrupt_out_size;
- struct urb *interrupt_out_urb;
- __u8 interrupt_out_endpointAddress;
-
- unsigned char *bulk_in_buffer;
- int bulk_in_size;
- struct urb *read_urb;
- __u8 bulk_in_endpointAddress;
-
- unsigned char *bulk_in_buffers[2];
- struct urb *read_urbs[2];
- unsigned long read_urbs_free;
-
- unsigned char *bulk_out_buffer;
- int bulk_out_size;
- struct urb *write_urb;
- struct kfifo write_fifo;
-
- unsigned char *bulk_out_buffers[2];
- struct urb *write_urbs[2];
- unsigned long write_urbs_free;
- __u8 bulk_out_endpointAddress;
-
- int tx_bytes;
-
- unsigned long flags;
- wait_queue_head_t write_wait;
- struct work_struct work;
- char throttled;
- char throttle_req;
- unsigned long sysrq; /* sysrq timeout */
- struct device dev;
-};
-#define to_usb_serial_port(d) container_of(d, struct usb_serial_port, dev)
-
-/* get and set the port private data pointer helper functions */
-static inline void *usb_get_serial_port_data(struct usb_serial_port *port)
-{
- return dev_get_drvdata(&port->dev);
-}
-
-static inline void usb_set_serial_port_data(struct usb_serial_port *port,
- void *data)
-{
- dev_set_drvdata(&port->dev, data);
-}
-
-/**
- * usb_serial - structure used by the usb-serial core for a device
- * @dev: pointer to the struct usb_device for this device
- * @type: pointer to the struct usb_serial_driver for this device
- * @interface: pointer to the struct usb_interface for this device
- * @minor: the starting minor number for this device
- * @num_ports: the number of ports this device has
- * @num_interrupt_in: number of interrupt in endpoints we have
- * @num_interrupt_out: number of interrupt out endpoints we have
- * @num_bulk_in: number of bulk in endpoints we have
- * @num_bulk_out: number of bulk out endpoints we have
- * @port: array of struct usb_serial_port structures for the different ports.
- * @private: place to put any driver specific information that is needed. The
- * usb-serial driver is required to manage this data, the usb-serial core
- * will not touch this. Use usb_get_serial_data() and
- * usb_set_serial_data() to access this.
- */
-struct usb_serial {
- struct usb_device *dev;
- struct usb_serial_driver *type;
- struct usb_interface *interface;
- unsigned char disconnected:1;
- unsigned char suspending:1;
- unsigned char attached:1;
- unsigned char minor;
- unsigned char num_ports;
- unsigned char num_port_pointers;
- char num_interrupt_in;
- char num_interrupt_out;
- char num_bulk_in;
- char num_bulk_out;
- struct usb_serial_port *port[MAX_NUM_PORTS];
- struct kref kref;
- struct mutex disc_mutex;
- void *private;
-};
-#define to_usb_serial(d) container_of(d, struct usb_serial, kref)
-
-/* get and set the serial private data pointer helper functions */
-static inline void *usb_get_serial_data(struct usb_serial *serial)
-{
- return serial->private;
-}
-
-static inline void usb_set_serial_data(struct usb_serial *serial, void *data)
-{
- serial->private = data;
-}
-
-/**
- * usb_serial_driver - describes a usb serial driver
- * @description: pointer to a string that describes this driver. This string
- * used in the syslog messages when a device is inserted or removed.
- * @id_table: pointer to a list of usb_device_id structures that define all
- * of the devices this structure can support.
- * @num_ports: the number of different ports this device will have.
- * @bulk_in_size: minimum number of bytes to allocate for bulk-in buffer
- * (0 = end-point size)
- * @bulk_out_size: bytes to allocate for bulk-out buffer (0 = end-point size)
- * @calc_num_ports: pointer to a function to determine how many ports this
- * device has dynamically. It will be called after the probe()
- * callback is called, but before attach()
- * @probe: pointer to the driver's probe function.
- * This will be called when the device is inserted into the system,
- * but before the device has been fully initialized by the usb_serial
- * subsystem. Use this function to download any firmware to the device,
- * or any other early initialization that might be needed.
- * Return 0 to continue on with the initialization sequence. Anything
- * else will abort it.
- * @attach: pointer to the driver's attach function.
- * This will be called when the struct usb_serial structure is fully set
- * set up. Do any local initialization of the device, or any private
- * memory structure allocation at this point in time.
- * @disconnect: pointer to the driver's disconnect function. This will be
- * called when the device is unplugged or unbound from the driver.
- * @release: pointer to the driver's release function. This will be called
- * when the usb_serial data structure is about to be destroyed.
- * @usb_driver: pointer to the struct usb_driver that controls this
- * device. This is necessary to allow dynamic ids to be added to
- * the driver from sysfs.
- *
- * This structure is defines a USB Serial driver. It provides all of
- * the information that the USB serial core code needs. If the function
- * pointers are defined, then the USB serial core code will call them when
- * the corresponding tty port functions are called. If they are not
- * called, the generic serial function will be used instead.
- *
- * The driver.owner field should be set to the module owner of this driver.
- * The driver.name field should be set to the name of this driver (remember
- * it will show up in sysfs, so it needs to be short and to the point.
- * Using the module name is a good idea.)
- */
-struct usb_serial_driver {
- const char *description;
- const struct usb_device_id *id_table;
- char num_ports;
-
- struct list_head driver_list;
- struct device_driver driver;
- struct usb_driver *usb_driver;
- struct usb_dynids dynids;
-
- size_t bulk_in_size;
- size_t bulk_out_size;
-
- int (*probe)(struct usb_serial *serial, const struct usb_device_id *id);
- int (*attach)(struct usb_serial *serial);
- int (*calc_num_ports) (struct usb_serial *serial);
-
- void (*disconnect)(struct usb_serial *serial);
- void (*release)(struct usb_serial *serial);
-
- int (*port_probe)(struct usb_serial_port *port);
- int (*port_remove)(struct usb_serial_port *port);
-
- int (*suspend)(struct usb_serial *serial, pm_message_t message);
- int (*resume)(struct usb_serial *serial);
-
- /* serial function calls */
- /* Called by console and by the tty layer */
- int (*open)(struct tty_struct *tty, struct usb_serial_port *port);
- void (*close)(struct usb_serial_port *port);
- int (*write)(struct tty_struct *tty, struct usb_serial_port *port,
- const unsigned char *buf, int count);
- /* Called only by the tty layer */
- int (*write_room)(struct tty_struct *tty);
- int (*ioctl)(struct tty_struct *tty,
- unsigned int cmd, unsigned long arg);
- void (*set_termios)(struct tty_struct *tty,
- struct usb_serial_port *port, struct ktermios *old);
- void (*break_ctl)(struct tty_struct *tty, int break_state);
- int (*chars_in_buffer)(struct tty_struct *tty);
- void (*throttle)(struct tty_struct *tty);
- void (*unthrottle)(struct tty_struct *tty);
- int (*tiocmget)(struct tty_struct *tty);
- int (*tiocmset)(struct tty_struct *tty,
- unsigned int set, unsigned int clear);
- int (*get_icount)(struct tty_struct *tty,
- struct serial_icounter_struct *icount);
- /* Called by the tty layer for port level work. There may or may not
- be an attached tty at this point */
- void (*dtr_rts)(struct usb_serial_port *port, int on);
- int (*carrier_raised)(struct usb_serial_port *port);
- /* Called by the usb serial hooks to allow the user to rework the
- termios state */
- void (*init_termios)(struct tty_struct *tty);
- /* USB events */
- void (*read_int_callback)(struct urb *urb);
- void (*write_int_callback)(struct urb *urb);
- void (*read_bulk_callback)(struct urb *urb);
- void (*write_bulk_callback)(struct urb *urb);
- /* Called by the generic read bulk callback */
- void (*process_read_urb)(struct urb *urb);
- /* Called by the generic write implementation */
- int (*prepare_write_buffer)(struct usb_serial_port *port,
- void *dest, size_t size);
-};
-#define to_usb_serial_driver(d) \
- container_of(d, struct usb_serial_driver, driver)
-
-extern int usb_serial_register_drivers(struct usb_driver *udriver,
- struct usb_serial_driver * const serial_drivers[]);
-extern void usb_serial_deregister_drivers(struct usb_driver *udriver,
- struct usb_serial_driver * const serial_drivers[]);
-extern void usb_serial_port_softint(struct usb_serial_port *port);
-
-extern int usb_serial_probe(struct usb_interface *iface,
- const struct usb_device_id *id);
-extern void usb_serial_disconnect(struct usb_interface *iface);
-
-extern int usb_serial_suspend(struct usb_interface *intf, pm_message_t message);
-extern int usb_serial_resume(struct usb_interface *intf);
-
-extern int ezusb_writememory(struct usb_serial *serial, int address,
- unsigned char *data, int length, __u8 bRequest);
-extern int ezusb_set_reset(struct usb_serial *serial, unsigned char reset_bit);
-
-/* USB Serial console functions */
-#ifdef CONFIG_USB_SERIAL_CONSOLE
-extern void usb_serial_console_init(int debug, int minor);
-extern void usb_serial_console_exit(void);
-extern void usb_serial_console_disconnect(struct usb_serial *serial);
-#else
-static inline void usb_serial_console_init(int debug, int minor) { }
-static inline void usb_serial_console_exit(void) { }
-static inline void usb_serial_console_disconnect(struct usb_serial *serial) {}
-#endif
-
-/* Functions needed by other parts of the usbserial core */
-extern struct usb_serial *usb_serial_get_by_index(unsigned int minor);
-extern void usb_serial_put(struct usb_serial *serial);
-extern int usb_serial_generic_open(struct tty_struct *tty,
- struct usb_serial_port *port);
-extern int usb_serial_generic_write(struct tty_struct *tty,
- struct usb_serial_port *port, const unsigned char *buf, int count);
-extern void usb_serial_generic_close(struct usb_serial_port *port);
-extern int usb_serial_generic_resume(struct usb_serial *serial);
-extern int usb_serial_generic_write_room(struct tty_struct *tty);
-extern int usb_serial_generic_chars_in_buffer(struct tty_struct *tty);
-extern void usb_serial_generic_read_bulk_callback(struct urb *urb);
-extern void usb_serial_generic_write_bulk_callback(struct urb *urb);
-extern void usb_serial_generic_throttle(struct tty_struct *tty);
-extern void usb_serial_generic_unthrottle(struct tty_struct *tty);
-extern void usb_serial_generic_disconnect(struct usb_serial *serial);
-extern void usb_serial_generic_release(struct usb_serial *serial);
-extern int usb_serial_generic_register(int debug);
-extern void usb_serial_generic_deregister(void);
-extern int usb_serial_generic_submit_read_urbs(struct usb_serial_port *port,
- gfp_t mem_flags);
-extern void usb_serial_generic_process_read_urb(struct urb *urb);
-extern int usb_serial_generic_prepare_write_buffer(struct usb_serial_port *port,
- void *dest, size_t size);
-extern int usb_serial_handle_sysrq_char(struct usb_serial_port *port,
- unsigned int ch);
-extern int usb_serial_handle_break(struct usb_serial_port *port);
-extern void usb_serial_handle_dcd_change(struct usb_serial_port *usb_port,
- struct tty_struct *tty,
- unsigned int status);
-
-
-extern int usb_serial_bus_register(struct usb_serial_driver *device);
-extern void usb_serial_bus_deregister(struct usb_serial_driver *device);
-
-extern struct usb_serial_driver usb_serial_generic_device;
-extern struct bus_type usb_serial_bus_type;
-extern struct tty_driver *usb_serial_tty_driver;
-
-static inline void usb_serial_debug_data(int debug,
- struct device *dev,
- const char *function, int size,
- const unsigned char *data)
-{
- int i;
-
- if (debug) {
- dev_printk(KERN_DEBUG, dev, "%s - length = %d, data = ",
- function, size);
- for (i = 0; i < size; ++i)
- printk("%.2x ", data[i]);
- printk("\n");
- }
-}
-
-/* Use our own dbg macro */
-#undef dbg
-#define dbg(format, arg...) \
-do { \
- if (debug) \
- printk(KERN_DEBUG "%s: " format "\n", __FILE__, ##arg); \
-} while (0)
-
-/*
- * Macro for reporting errors in write path to avoid inifinite loop
- * when port is used as a console.
- */
-#define dev_err_console(usport, fmt, ...) \
-do { \
- static bool __print_once; \
- struct usb_serial_port *__port = (usport); \
- \
- if (!__port->port.console || !__print_once) { \
- __print_once = true; \
- dev_err(&__port->dev, fmt, ##__VA_ARGS__); \
- } \
-} while (0)
-
-/*
- * module_usb_serial_driver() - Helper macro for registering a USB Serial driver
- * @__usb_driver: usb_driver struct to register
- * @__serial_drivers: list of usb_serial drivers to register
- *
- * Helper macro for USB serial drivers which do not do anything special
- * in module init/exit. This eliminates a lot of boilerplate. Each
- * module may only use this macro once, and calling it replaces
- * module_init() and module_exit()
- *
- */
-#define module_usb_serial_driver(__usb_driver, __serial_drivers) \
- module_driver(__usb_driver, usb_serial_register_drivers, \
- usb_serial_deregister_drivers, __serial_drivers)
-
-#endif /* __LINUX_USB_SERIAL_H */
-
diff --git a/ANDROID_3.4.5/include/linux/usb/sl811.h b/ANDROID_3.4.5/include/linux/usb/sl811.h
deleted file mode 100644
index 3afe4d16..00000000
--- a/ANDROID_3.4.5/include/linux/usb/sl811.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * board initialization should put one of these into dev->platform_data
- * and place the sl811hs onto platform_bus named "sl811-hcd".
- */
-
-#ifndef __LINUX_USB_SL811_H
-#define __LINUX_USB_SL811_H
-
-struct sl811_platform_data {
- unsigned can_wakeup:1;
-
- /* given port_power, msec/2 after power on till power good */
- u8 potpg;
-
- /* mA/2 power supplied on this port (max = default = 250) */
- u8 power;
-
- /* sl811 relies on an external source of VBUS current */
- void (*port_power)(struct device *dev, int is_on);
-
- /* pulse sl811 nRST (probably with a GPIO) */
- void (*reset)(struct device *dev);
-
- /* some boards need something like these: */
- /* int (*check_overcurrent)(struct device *dev); */
- /* void (*clock_enable)(struct device *dev, int is_on); */
-};
-
-#endif /* __LINUX_USB_SL811_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/storage.h b/ANDROID_3.4.5/include/linux/usb/storage.h
deleted file mode 100644
index cb33fff2..00000000
--- a/ANDROID_3.4.5/include/linux/usb/storage.h
+++ /dev/null
@@ -1,86 +0,0 @@
-#ifndef __LINUX_USB_STORAGE_H
-#define __LINUX_USB_STORAGE_H
-
-/*
- * linux/usb/storage.h
- *
- * Copyright Matthew Wilcox for Intel Corp, 2010
- *
- * This file contains definitions taken from the
- * USB Mass Storage Class Specification Overview
- *
- * Distributed under the terms of the GNU GPL, version two.
- */
-
-/* Storage subclass codes */
-
-#define USB_SC_RBC 0x01 /* Typically, flash devices */
-#define USB_SC_8020 0x02 /* CD-ROM */
-#define USB_SC_QIC 0x03 /* QIC-157 Tapes */
-#define USB_SC_UFI 0x04 /* Floppy */
-#define USB_SC_8070 0x05 /* Removable media */
-#define USB_SC_SCSI 0x06 /* Transparent */
-#define USB_SC_LOCKABLE 0x07 /* Password-protected */
-
-#define USB_SC_ISD200 0xf0 /* ISD200 ATA */
-#define USB_SC_CYP_ATACB 0xf1 /* Cypress ATACB */
-#define USB_SC_DEVICE 0xff /* Use device's value */
-
-/* Storage protocol codes */
-
-#define USB_PR_CBI 0x00 /* Control/Bulk/Interrupt */
-#define USB_PR_CB 0x01 /* Control/Bulk w/o interrupt */
-#define USB_PR_BULK 0x50 /* bulk only */
-#define USB_PR_UAS 0x62 /* USB Attached SCSI */
-
-#define USB_PR_USBAT 0x80 /* SCM-ATAPI bridge */
-#define USB_PR_EUSB_SDDR09 0x81 /* SCM-SCSI bridge for SDDR-09 */
-#define USB_PR_SDDR55 0x82 /* SDDR-55 (made up) */
-#define USB_PR_DPCM_USB 0xf0 /* Combination CB/SDDR09 */
-#define USB_PR_FREECOM 0xf1 /* Freecom */
-#define USB_PR_DATAFAB 0xf2 /* Datafab chipsets */
-#define USB_PR_JUMPSHOT 0xf3 /* Lexar Jumpshot */
-#define USB_PR_ALAUDA 0xf4 /* Alauda chipsets */
-#define USB_PR_KARMA 0xf5 /* Rio Karma */
-
-#define USB_PR_DEVICE 0xff /* Use device's value */
-
- /*
- * Bulk only data structures
- */
-
-/* command block wrapper */
-struct bulk_cb_wrap {
- __le32 Signature; /* contains 'USBC' */
- __u32 Tag; /* unique per command id */
- __le32 DataTransferLength; /* size of data */
- __u8 Flags; /* direction in bit 0 */
- __u8 Lun; /* LUN normally 0 */
- __u8 Length; /* of of the CDB */
- __u8 CDB[16]; /* max command */
-};
-
-#define US_BULK_CB_WRAP_LEN 31
-#define US_BULK_CB_SIGN 0x43425355 /*spells out USBC */
-#define US_BULK_FLAG_IN (1 << 7)
-#define US_BULK_FLAG_OUT 0
-
-/* command status wrapper */
-struct bulk_cs_wrap {
- __le32 Signature; /* should = 'USBS' */
- __u32 Tag; /* same as original command */
- __le32 Residue; /* amount not transferred */
- __u8 Status; /* see below */
-};
-
-#define US_BULK_CS_WRAP_LEN 13
-#define US_BULK_CS_SIGN 0x53425355 /* spells out 'USBS' */
-#define US_BULK_STAT_OK 0
-#define US_BULK_STAT_FAIL 1
-#define US_BULK_STAT_PHASE 2
-
-/* bulk-only class specific requests */
-#define US_BULK_RESET_REQUEST 0xff
-#define US_BULK_GET_MAX_LUN 0xfe
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/usb/tmc.h b/ANDROID_3.4.5/include/linux/usb/tmc.h
deleted file mode 100644
index c045ae12..00000000
--- a/ANDROID_3.4.5/include/linux/usb/tmc.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2007 Stefan Kopp, Gechingen, Germany
- * Copyright (C) 2008 Novell, Inc.
- * Copyright (C) 2008 Greg Kroah-Hartman <gregkh@suse.de>
- *
- * This file holds USB constants defined by the USB Device Class
- * Definition for Test and Measurement devices published by the USB-IF.
- *
- * It also has the ioctl definitions for the usbtmc kernel driver that
- * userspace needs to know about.
- */
-
-#ifndef __LINUX_USB_TMC_H
-#define __LINUX_USB_TMC_H
-
-/* USB TMC status values */
-#define USBTMC_STATUS_SUCCESS 0x01
-#define USBTMC_STATUS_PENDING 0x02
-#define USBTMC_STATUS_FAILED 0x80
-#define USBTMC_STATUS_TRANSFER_NOT_IN_PROGRESS 0x81
-#define USBTMC_STATUS_SPLIT_NOT_IN_PROGRESS 0x82
-#define USBTMC_STATUS_SPLIT_IN_PROGRESS 0x83
-
-/* USB TMC requests values */
-#define USBTMC_REQUEST_INITIATE_ABORT_BULK_OUT 1
-#define USBTMC_REQUEST_CHECK_ABORT_BULK_OUT_STATUS 2
-#define USBTMC_REQUEST_INITIATE_ABORT_BULK_IN 3
-#define USBTMC_REQUEST_CHECK_ABORT_BULK_IN_STATUS 4
-#define USBTMC_REQUEST_INITIATE_CLEAR 5
-#define USBTMC_REQUEST_CHECK_CLEAR_STATUS 6
-#define USBTMC_REQUEST_GET_CAPABILITIES 7
-#define USBTMC_REQUEST_INDICATOR_PULSE 64
-
-/* Request values for USBTMC driver's ioctl entry point */
-#define USBTMC_IOC_NR 91
-#define USBTMC_IOCTL_INDICATOR_PULSE _IO(USBTMC_IOC_NR, 1)
-#define USBTMC_IOCTL_CLEAR _IO(USBTMC_IOC_NR, 2)
-#define USBTMC_IOCTL_ABORT_BULK_OUT _IO(USBTMC_IOC_NR, 3)
-#define USBTMC_IOCTL_ABORT_BULK_IN _IO(USBTMC_IOC_NR, 4)
-#define USBTMC_IOCTL_CLEAR_OUT_HALT _IO(USBTMC_IOC_NR, 6)
-#define USBTMC_IOCTL_CLEAR_IN_HALT _IO(USBTMC_IOC_NR, 7)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/usb/uas.h b/ANDROID_3.4.5/include/linux/usb/uas.h
deleted file mode 100644
index 9a988e41..00000000
--- a/ANDROID_3.4.5/include/linux/usb/uas.h
+++ /dev/null
@@ -1,69 +0,0 @@
-#ifndef __USB_UAS_H__
-#define __USB_UAS_H__
-
-#include <scsi/scsi.h>
-#include <scsi/scsi_cmnd.h>
-
-/* Common header for all IUs */
-struct iu {
- __u8 iu_id;
- __u8 rsvd1;
- __be16 tag;
-};
-
-enum {
- IU_ID_COMMAND = 0x01,
- IU_ID_STATUS = 0x03,
- IU_ID_RESPONSE = 0x04,
- IU_ID_TASK_MGMT = 0x05,
- IU_ID_READ_READY = 0x06,
- IU_ID_WRITE_READY = 0x07,
-};
-
-struct command_iu {
- __u8 iu_id;
- __u8 rsvd1;
- __be16 tag;
- __u8 prio_attr;
- __u8 rsvd5;
- __u8 len;
- __u8 rsvd7;
- struct scsi_lun lun;
- __u8 cdb[16]; /* XXX: Overflow-checking tools may misunderstand */
-};
-
-/*
- * Also used for the Read Ready and Write Ready IUs since they have the
- * same first four bytes
- */
-struct sense_iu {
- __u8 iu_id;
- __u8 rsvd1;
- __be16 tag;
- __be16 status_qual;
- __u8 status;
- __u8 rsvd7[7];
- __be16 len;
- __u8 sense[SCSI_SENSE_BUFFERSIZE];
-};
-
-struct usb_pipe_usage_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
-
- __u8 bPipeID;
- __u8 Reserved;
-} __attribute__((__packed__));
-
-enum {
- CMD_PIPE_ID = 1,
- STATUS_PIPE_ID = 2,
- DATA_IN_PIPE_ID = 3,
- DATA_OUT_PIPE_ID = 4,
-
- UAS_SIMPLE_TAG = 0,
- UAS_HEAD_TAG = 1,
- UAS_ORDERED_TAG = 2,
- UAS_ACA = 4,
-};
-#endif
diff --git a/ANDROID_3.4.5/include/linux/usb/ulpi.h b/ANDROID_3.4.5/include/linux/usb/ulpi.h
deleted file mode 100644
index 6f033a41..00000000
--- a/ANDROID_3.4.5/include/linux/usb/ulpi.h
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- * ulpi.h -- ULPI defines and function prorotypes
- *
- * Copyright (C) 2010 Nokia Corporation
- *
- * This software is distributed under the terms of the GNU General
- * Public License ("GPL") as published by the Free Software Foundation,
- * version 2 of that License.
- */
-
-#ifndef __LINUX_USB_ULPI_H
-#define __LINUX_USB_ULPI_H
-
-#include <linux/usb/otg.h>
-/*-------------------------------------------------------------------------*/
-
-/*
- * ULPI Flags
- */
-#define ULPI_OTG_ID_PULLUP (1 << 0)
-#define ULPI_OTG_DP_PULLDOWN_DIS (1 << 1)
-#define ULPI_OTG_DM_PULLDOWN_DIS (1 << 2)
-#define ULPI_OTG_DISCHRGVBUS (1 << 3)
-#define ULPI_OTG_CHRGVBUS (1 << 4)
-#define ULPI_OTG_DRVVBUS (1 << 5)
-#define ULPI_OTG_DRVVBUS_EXT (1 << 6)
-#define ULPI_OTG_EXTVBUSIND (1 << 7)
-
-#define ULPI_IC_6PIN_SERIAL (1 << 8)
-#define ULPI_IC_3PIN_SERIAL (1 << 9)
-#define ULPI_IC_CARKIT (1 << 10)
-#define ULPI_IC_CLKSUSPM (1 << 11)
-#define ULPI_IC_AUTORESUME (1 << 12)
-#define ULPI_IC_EXTVBUS_INDINV (1 << 13)
-#define ULPI_IC_IND_PASSTHRU (1 << 14)
-#define ULPI_IC_PROTECT_DIS (1 << 15)
-
-#define ULPI_FC_HS (1 << 16)
-#define ULPI_FC_FS (1 << 17)
-#define ULPI_FC_LS (1 << 18)
-#define ULPI_FC_FS4LS (1 << 19)
-#define ULPI_FC_TERMSEL (1 << 20)
-#define ULPI_FC_OP_NORM (1 << 21)
-#define ULPI_FC_OP_NODRV (1 << 22)
-#define ULPI_FC_OP_DIS_NRZI (1 << 23)
-#define ULPI_FC_OP_NSYNC_NEOP (1 << 24)
-#define ULPI_FC_RST (1 << 25)
-#define ULPI_FC_SUSPM (1 << 26)
-
-/*-------------------------------------------------------------------------*/
-
-/*
- * Macros for Set and Clear
- * See ULPI 1.1 specification to find the registers with Set and Clear offsets
- */
-#define ULPI_SET(a) (a + 1)
-#define ULPI_CLR(a) (a + 2)
-
-/*-------------------------------------------------------------------------*/
-
-/*
- * Register Map
- */
-#define ULPI_VENDOR_ID_LOW 0x00
-#define ULPI_VENDOR_ID_HIGH 0x01
-#define ULPI_PRODUCT_ID_LOW 0x02
-#define ULPI_PRODUCT_ID_HIGH 0x03
-#define ULPI_FUNC_CTRL 0x04
-#define ULPI_IFC_CTRL 0x07
-#define ULPI_OTG_CTRL 0x0a
-#define ULPI_USB_INT_EN_RISE 0x0d
-#define ULPI_USB_INT_EN_FALL 0x10
-#define ULPI_USB_INT_STS 0x13
-#define ULPI_USB_INT_LATCH 0x14
-#define ULPI_DEBUG 0x15
-#define ULPI_SCRATCH 0x16
-/* Optional Carkit Registers */
-#define ULPI_CARCIT_CTRL 0x19
-#define ULPI_CARCIT_INT_DELAY 0x1c
-#define ULPI_CARCIT_INT_EN 0x1d
-#define ULPI_CARCIT_INT_STS 0x20
-#define ULPI_CARCIT_INT_LATCH 0x21
-#define ULPI_CARCIT_PLS_CTRL 0x22
-/* Other Optional Registers */
-#define ULPI_TX_POS_WIDTH 0x25
-#define ULPI_TX_NEG_WIDTH 0x26
-#define ULPI_POLARITY_RECOVERY 0x27
-/* Access Extended Register Set */
-#define ULPI_ACCESS_EXTENDED 0x2f
-/* Vendor Specific */
-#define ULPI_VENDOR_SPECIFIC 0x30
-/* Extended Registers */
-#define ULPI_EXT_VENDOR_SPECIFIC 0x80
-
-/*-------------------------------------------------------------------------*/
-
-/*
- * Register Bits
- */
-
-/* Function Control */
-#define ULPI_FUNC_CTRL_XCVRSEL (1 << 0)
-#define ULPI_FUNC_CTRL_XCVRSEL_MASK (3 << 0)
-#define ULPI_FUNC_CTRL_HIGH_SPEED (0 << 0)
-#define ULPI_FUNC_CTRL_FULL_SPEED (1 << 0)
-#define ULPI_FUNC_CTRL_LOW_SPEED (2 << 0)
-#define ULPI_FUNC_CTRL_FS4LS (3 << 0)
-#define ULPI_FUNC_CTRL_TERMSELECT (1 << 2)
-#define ULPI_FUNC_CTRL_OPMODE (1 << 3)
-#define ULPI_FUNC_CTRL_OPMODE_MASK (3 << 3)
-#define ULPI_FUNC_CTRL_OPMODE_NORMAL (0 << 3)
-#define ULPI_FUNC_CTRL_OPMODE_NONDRIVING (1 << 3)
-#define ULPI_FUNC_CTRL_OPMODE_DISABLE_NRZI (2 << 3)
-#define ULPI_FUNC_CTRL_OPMODE_NOSYNC_NOEOP (3 << 3)
-#define ULPI_FUNC_CTRL_RESET (1 << 5)
-#define ULPI_FUNC_CTRL_SUSPENDM (1 << 6)
-
-/* Interface Control */
-#define ULPI_IFC_CTRL_6_PIN_SERIAL_MODE (1 << 0)
-#define ULPI_IFC_CTRL_3_PIN_SERIAL_MODE (1 << 1)
-#define ULPI_IFC_CTRL_CARKITMODE (1 << 2)
-#define ULPI_IFC_CTRL_CLOCKSUSPENDM (1 << 3)
-#define ULPI_IFC_CTRL_AUTORESUME (1 << 4)
-#define ULPI_IFC_CTRL_EXTERNAL_VBUS (1 << 5)
-#define ULPI_IFC_CTRL_PASSTHRU (1 << 6)
-#define ULPI_IFC_CTRL_PROTECT_IFC_DISABLE (1 << 7)
-
-/* OTG Control */
-#define ULPI_OTG_CTRL_ID_PULLUP (1 << 0)
-#define ULPI_OTG_CTRL_DP_PULLDOWN (1 << 1)
-#define ULPI_OTG_CTRL_DM_PULLDOWN (1 << 2)
-#define ULPI_OTG_CTRL_DISCHRGVBUS (1 << 3)
-#define ULPI_OTG_CTRL_CHRGVBUS (1 << 4)
-#define ULPI_OTG_CTRL_DRVVBUS (1 << 5)
-#define ULPI_OTG_CTRL_DRVVBUS_EXT (1 << 6)
-#define ULPI_OTG_CTRL_EXTVBUSIND (1 << 7)
-
-/* USB Interrupt Enable Rising,
- * USB Interrupt Enable Falling,
- * USB Interrupt Status and
- * USB Interrupt Latch
- */
-#define ULPI_INT_HOST_DISCONNECT (1 << 0)
-#define ULPI_INT_VBUS_VALID (1 << 1)
-#define ULPI_INT_SESS_VALID (1 << 2)
-#define ULPI_INT_SESS_END (1 << 3)
-#define ULPI_INT_IDGRD (1 << 4)
-
-/* Debug */
-#define ULPI_DEBUG_LINESTATE0 (1 << 0)
-#define ULPI_DEBUG_LINESTATE1 (1 << 1)
-
-/* Carkit Control */
-#define ULPI_CARKIT_CTRL_CARKITPWR (1 << 0)
-#define ULPI_CARKIT_CTRL_IDGNDDRV (1 << 1)
-#define ULPI_CARKIT_CTRL_TXDEN (1 << 2)
-#define ULPI_CARKIT_CTRL_RXDEN (1 << 3)
-#define ULPI_CARKIT_CTRL_SPKLEFTEN (1 << 4)
-#define ULPI_CARKIT_CTRL_SPKRIGHTEN (1 << 5)
-#define ULPI_CARKIT_CTRL_MICEN (1 << 6)
-
-/* Carkit Interrupt Enable */
-#define ULPI_CARKIT_INT_EN_IDFLOAT_RISE (1 << 0)
-#define ULPI_CARKIT_INT_EN_IDFLOAT_FALL (1 << 1)
-#define ULPI_CARKIT_INT_EN_CARINTDET (1 << 2)
-#define ULPI_CARKIT_INT_EN_DP_RISE (1 << 3)
-#define ULPI_CARKIT_INT_EN_DP_FALL (1 << 4)
-
-/* Carkit Interrupt Status and
- * Carkit Interrupt Latch
- */
-#define ULPI_CARKIT_INT_IDFLOAT (1 << 0)
-#define ULPI_CARKIT_INT_CARINTDET (1 << 1)
-#define ULPI_CARKIT_INT_DP (1 << 2)
-
-/* Carkit Pulse Control*/
-#define ULPI_CARKIT_PLS_CTRL_TXPLSEN (1 << 0)
-#define ULPI_CARKIT_PLS_CTRL_RXPLSEN (1 << 1)
-#define ULPI_CARKIT_PLS_CTRL_SPKRLEFT_BIASEN (1 << 2)
-#define ULPI_CARKIT_PLS_CTRL_SPKRRIGHT_BIASEN (1 << 3)
-
-/*-------------------------------------------------------------------------*/
-
-struct usb_phy *otg_ulpi_create(struct usb_phy_io_ops *ops,
- unsigned int flags);
-
-#ifdef CONFIG_USB_ULPI_VIEWPORT
-/* access ops for controllers with a viewport register */
-extern struct usb_phy_io_ops ulpi_viewport_access_ops;
-#endif
-
-#endif /* __LINUX_USB_ULPI_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/usbnet.h b/ANDROID_3.4.5/include/linux/usb/usbnet.h
deleted file mode 100644
index 76f43964..00000000
--- a/ANDROID_3.4.5/include/linux/usb/usbnet.h
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- * USB Networking Link Interface
- *
- * Copyright (C) 2000-2005 by David Brownell <dbrownell@users.sourceforge.net>
- * Copyright (C) 2003-2005 David Hollis <dhollis@davehollis.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
- */
-
-#ifndef __LINUX_USB_USBNET_H
-#define __LINUX_USB_USBNET_H
-
-/* interface from usbnet core to each USB networking link we handle */
-struct usbnet {
- /* housekeeping */
- struct usb_device *udev;
- struct usb_interface *intf;
- struct driver_info *driver_info;
- const char *driver_name;
- void *driver_priv;
- wait_queue_head_t *wait;
- struct mutex phy_mutex;
- unsigned char suspend_count;
-
- /* i/o info: pipes etc */
- unsigned in, out;
- struct usb_host_endpoint *status;
- unsigned maxpacket;
- struct timer_list delay;
-
- /* protocol/interface state */
- struct net_device *net;
- int msg_enable;
- unsigned long data[5];
- u32 xid;
- u32 hard_mtu; /* count any extra framing */
- size_t rx_urb_size; /* size for rx urbs */
- struct mii_if_info mii;
-
- /* various kinds of pending driver work */
- struct sk_buff_head rxq;
- struct sk_buff_head txq;
- struct sk_buff_head done;
- struct sk_buff_head rxq_pause;
- struct urb *interrupt;
- struct usb_anchor deferred;
- struct tasklet_struct bh;
-
- struct work_struct kevent;
- unsigned long flags;
-# define EVENT_TX_HALT 0
-# define EVENT_RX_HALT 1
-# define EVENT_RX_MEMORY 2
-# define EVENT_STS_SPLIT 3
-# define EVENT_LINK_RESET 4
-# define EVENT_RX_PAUSED 5
-# define EVENT_DEV_WAKING 6
-# define EVENT_DEV_ASLEEP 7
-# define EVENT_DEV_OPEN 8
-};
-
-static inline struct usb_driver *driver_of(struct usb_interface *intf)
-{
- return to_usb_driver(intf->dev.driver);
-}
-
-/* interface from the device/framing level "minidriver" to core */
-struct driver_info {
- char *description;
-
- int flags;
-/* framing is CDC Ethernet, not writing ZLPs (hw issues), or optionally: */
-#define FLAG_FRAMING_NC 0x0001 /* guard against device dropouts */
-#define FLAG_FRAMING_GL 0x0002 /* genelink batches packets */
-#define FLAG_FRAMING_Z 0x0004 /* zaurus adds a trailer */
-#define FLAG_FRAMING_RN 0x0008 /* RNDIS batches, plus huge header */
-
-#define FLAG_NO_SETINT 0x0010 /* device can't set_interface() */
-#define FLAG_ETHER 0x0020 /* maybe use "eth%d" names */
-
-#define FLAG_FRAMING_AX 0x0040 /* AX88772/178 packets */
-#define FLAG_WLAN 0x0080 /* use "wlan%d" names */
-#define FLAG_AVOID_UNLINK_URBS 0x0100 /* don't unlink urbs at usbnet_stop() */
-#define FLAG_SEND_ZLP 0x0200 /* hw requires ZLPs are sent */
-#define FLAG_WWAN 0x0400 /* use "wwan%d" names */
-
-#define FLAG_LINK_INTR 0x0800 /* updates link (carrier) status */
-
-#define FLAG_POINTTOPOINT 0x1000 /* possibly use "usb%d" names */
-
-/*
- * Indicates to usbnet, that USB driver accumulates multiple IP packets.
- * Affects statistic (counters) and short packet handling.
- */
-#define FLAG_MULTI_PACKET 0x2000
-#define FLAG_RX_ASSEMBLE 0x4000 /* rx packets may span >1 frames */
-
- /* init device ... can sleep, or cause probe() failure */
- int (*bind)(struct usbnet *, struct usb_interface *);
-
- /* cleanup device ... can sleep, but can't fail */
- void (*unbind)(struct usbnet *, struct usb_interface *);
-
- /* reset device ... can sleep */
- int (*reset)(struct usbnet *);
-
- /* stop device ... can sleep */
- int (*stop)(struct usbnet *);
-
- /* see if peer is connected ... can sleep */
- int (*check_connect)(struct usbnet *);
-
- /* (dis)activate runtime power management */
- int (*manage_power)(struct usbnet *, int);
-
- /* for status polling */
- void (*status)(struct usbnet *, struct urb *);
-
- /* link reset handling, called from defer_kevent */
- int (*link_reset)(struct usbnet *);
-
- /* fixup rx packet (strip framing) */
- int (*rx_fixup)(struct usbnet *dev, struct sk_buff *skb);
-
- /* fixup tx packet (add framing) */
- struct sk_buff *(*tx_fixup)(struct usbnet *dev,
- struct sk_buff *skb, gfp_t flags);
-
- /* early initialization code, can sleep. This is for minidrivers
- * having 'subminidrivers' that need to do extra initialization
- * right after minidriver have initialized hardware. */
- int (*early_init)(struct usbnet *dev);
-
- /* called by minidriver when receiving indication */
- void (*indication)(struct usbnet *dev, void *ind, int indlen);
-
- /* for new devices, use the descriptor-reading code instead */
- int in; /* rx endpoint */
- int out; /* tx endpoint */
-
- unsigned long data; /* Misc driver specific data */
-};
-
-/* Minidrivers are just drivers using the "usbnet" core as a powerful
- * network-specific subroutine library ... that happens to do pretty
- * much everything except custom framing and chip-specific stuff.
- */
-extern int usbnet_probe(struct usb_interface *, const struct usb_device_id *);
-extern int usbnet_suspend(struct usb_interface *, pm_message_t);
-extern int usbnet_resume(struct usb_interface *);
-extern void usbnet_disconnect(struct usb_interface *);
-
-
-/* Drivers that reuse some of the standard USB CDC infrastructure
- * (notably, using multiple interfaces according to the CDC
- * union descriptor) get some helper code.
- */
-struct cdc_state {
- struct usb_cdc_header_desc *header;
- struct usb_cdc_union_desc *u;
- struct usb_cdc_ether_desc *ether;
- struct usb_interface *control;
- struct usb_interface *data;
-};
-
-extern int usbnet_generic_cdc_bind(struct usbnet *, struct usb_interface *);
-extern int usbnet_cdc_bind(struct usbnet *, struct usb_interface *);
-extern void usbnet_cdc_unbind(struct usbnet *, struct usb_interface *);
-extern void usbnet_cdc_status(struct usbnet *, struct urb *);
-
-/* CDC and RNDIS support the same host-chosen packet filters for IN transfers */
-#define DEFAULT_FILTER (USB_CDC_PACKET_TYPE_BROADCAST \
- |USB_CDC_PACKET_TYPE_ALL_MULTICAST \
- |USB_CDC_PACKET_TYPE_PROMISCUOUS \
- |USB_CDC_PACKET_TYPE_DIRECTED)
-
-
-/* we record the state for each of our queued skbs */
-enum skb_state {
- illegal = 0,
- tx_start, tx_done,
- rx_start, rx_done, rx_cleanup,
- unlink_start
-};
-
-struct skb_data { /* skb->cb is one of these */
- struct urb *urb;
- struct usbnet *dev;
- enum skb_state state;
- size_t length;
-};
-
-extern int usbnet_open(struct net_device *net);
-extern int usbnet_stop(struct net_device *net);
-extern netdev_tx_t usbnet_start_xmit(struct sk_buff *skb,
- struct net_device *net);
-extern void usbnet_tx_timeout(struct net_device *net);
-extern int usbnet_change_mtu(struct net_device *net, int new_mtu);
-
-extern int usbnet_get_endpoints(struct usbnet *, struct usb_interface *);
-extern int usbnet_get_ethernet_addr(struct usbnet *, int);
-extern void usbnet_defer_kevent(struct usbnet *, int);
-extern void usbnet_skb_return(struct usbnet *, struct sk_buff *);
-extern void usbnet_unlink_rx_urbs(struct usbnet *);
-
-extern void usbnet_pause_rx(struct usbnet *);
-extern void usbnet_resume_rx(struct usbnet *);
-extern void usbnet_purge_paused_rxq(struct usbnet *);
-
-extern int usbnet_get_settings(struct net_device *net,
- struct ethtool_cmd *cmd);
-extern int usbnet_set_settings(struct net_device *net,
- struct ethtool_cmd *cmd);
-extern u32 usbnet_get_link(struct net_device *net);
-extern u32 usbnet_get_msglevel(struct net_device *);
-extern void usbnet_set_msglevel(struct net_device *, u32);
-extern void usbnet_get_drvinfo(struct net_device *, struct ethtool_drvinfo *);
-extern int usbnet_nway_reset(struct net_device *net);
-
-#endif /* __LINUX_USB_USBNET_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/video.h b/ANDROID_3.4.5/include/linux/usb/video.h
deleted file mode 100644
index 3b3b95e0..00000000
--- a/ANDROID_3.4.5/include/linux/usb/video.h
+++ /dev/null
@@ -1,568 +0,0 @@
-/*
- * USB Video Class definitions.
- *
- * Copyright (C) 2009 Laurent Pinchart <laurent.pinchart@skynet.be>
- *
- * This file holds USB constants and structures defined by the USB Device
- * Class Definition for Video Devices. Unless otherwise stated, comments
- * below reference relevant sections of the USB Video Class 1.1 specification
- * available at
- *
- * http://www.usb.org/developers/devclass_docs/USB_Video_Class_1_1.zip
- */
-
-#ifndef __LINUX_USB_VIDEO_H
-#define __LINUX_USB_VIDEO_H
-
-#include <linux/types.h>
-
-/* --------------------------------------------------------------------------
- * UVC constants
- */
-
-/* A.2. Video Interface Subclass Codes */
-#define UVC_SC_UNDEFINED 0x00
-#define UVC_SC_VIDEOCONTROL 0x01
-#define UVC_SC_VIDEOSTREAMING 0x02
-#define UVC_SC_VIDEO_INTERFACE_COLLECTION 0x03
-
-/* A.3. Video Interface Protocol Codes */
-#define UVC_PC_PROTOCOL_UNDEFINED 0x00
-
-/* A.5. Video Class-Specific VC Interface Descriptor Subtypes */
-#define UVC_VC_DESCRIPTOR_UNDEFINED 0x00
-#define UVC_VC_HEADER 0x01
-#define UVC_VC_INPUT_TERMINAL 0x02
-#define UVC_VC_OUTPUT_TERMINAL 0x03
-#define UVC_VC_SELECTOR_UNIT 0x04
-#define UVC_VC_PROCESSING_UNIT 0x05
-#define UVC_VC_EXTENSION_UNIT 0x06
-
-/* A.6. Video Class-Specific VS Interface Descriptor Subtypes */
-#define UVC_VS_UNDEFINED 0x00
-#define UVC_VS_INPUT_HEADER 0x01
-#define UVC_VS_OUTPUT_HEADER 0x02
-#define UVC_VS_STILL_IMAGE_FRAME 0x03
-#define UVC_VS_FORMAT_UNCOMPRESSED 0x04
-#define UVC_VS_FRAME_UNCOMPRESSED 0x05
-#define UVC_VS_FORMAT_MJPEG 0x06
-#define UVC_VS_FRAME_MJPEG 0x07
-#define UVC_VS_FORMAT_MPEG2TS 0x0a
-#define UVC_VS_FORMAT_DV 0x0c
-#define UVC_VS_COLORFORMAT 0x0d
-#define UVC_VS_FORMAT_FRAME_BASED 0x10
-#define UVC_VS_FRAME_FRAME_BASED 0x11
-#define UVC_VS_FORMAT_STREAM_BASED 0x12
-
-/* A.7. Video Class-Specific Endpoint Descriptor Subtypes */
-#define UVC_EP_UNDEFINED 0x00
-#define UVC_EP_GENERAL 0x01
-#define UVC_EP_ENDPOINT 0x02
-#define UVC_EP_INTERRUPT 0x03
-
-/* A.8. Video Class-Specific Request Codes */
-#define UVC_RC_UNDEFINED 0x00
-#define UVC_SET_CUR 0x01
-#define UVC_GET_CUR 0x81
-#define UVC_GET_MIN 0x82
-#define UVC_GET_MAX 0x83
-#define UVC_GET_RES 0x84
-#define UVC_GET_LEN 0x85
-#define UVC_GET_INFO 0x86
-#define UVC_GET_DEF 0x87
-
-/* A.9.1. VideoControl Interface Control Selectors */
-#define UVC_VC_CONTROL_UNDEFINED 0x00
-#define UVC_VC_VIDEO_POWER_MODE_CONTROL 0x01
-#define UVC_VC_REQUEST_ERROR_CODE_CONTROL 0x02
-
-/* A.9.2. Terminal Control Selectors */
-#define UVC_TE_CONTROL_UNDEFINED 0x00
-
-/* A.9.3. Selector Unit Control Selectors */
-#define UVC_SU_CONTROL_UNDEFINED 0x00
-#define UVC_SU_INPUT_SELECT_CONTROL 0x01
-
-/* A.9.4. Camera Terminal Control Selectors */
-#define UVC_CT_CONTROL_UNDEFINED 0x00
-#define UVC_CT_SCANNING_MODE_CONTROL 0x01
-#define UVC_CT_AE_MODE_CONTROL 0x02
-#define UVC_CT_AE_PRIORITY_CONTROL 0x03
-#define UVC_CT_EXPOSURE_TIME_ABSOLUTE_CONTROL 0x04
-#define UVC_CT_EXPOSURE_TIME_RELATIVE_CONTROL 0x05
-#define UVC_CT_FOCUS_ABSOLUTE_CONTROL 0x06
-#define UVC_CT_FOCUS_RELATIVE_CONTROL 0x07
-#define UVC_CT_FOCUS_AUTO_CONTROL 0x08
-#define UVC_CT_IRIS_ABSOLUTE_CONTROL 0x09
-#define UVC_CT_IRIS_RELATIVE_CONTROL 0x0a
-#define UVC_CT_ZOOM_ABSOLUTE_CONTROL 0x0b
-#define UVC_CT_ZOOM_RELATIVE_CONTROL 0x0c
-#define UVC_CT_PANTILT_ABSOLUTE_CONTROL 0x0d
-#define UVC_CT_PANTILT_RELATIVE_CONTROL 0x0e
-#define UVC_CT_ROLL_ABSOLUTE_CONTROL 0x0f
-#define UVC_CT_ROLL_RELATIVE_CONTROL 0x10
-#define UVC_CT_PRIVACY_CONTROL 0x11
-
-/* A.9.5. Processing Unit Control Selectors */
-#define UVC_PU_CONTROL_UNDEFINED 0x00
-#define UVC_PU_BACKLIGHT_COMPENSATION_CONTROL 0x01
-#define UVC_PU_BRIGHTNESS_CONTROL 0x02
-#define UVC_PU_CONTRAST_CONTROL 0x03
-#define UVC_PU_GAIN_CONTROL 0x04
-#define UVC_PU_POWER_LINE_FREQUENCY_CONTROL 0x05
-#define UVC_PU_HUE_CONTROL 0x06
-#define UVC_PU_SATURATION_CONTROL 0x07
-#define UVC_PU_SHARPNESS_CONTROL 0x08
-#define UVC_PU_GAMMA_CONTROL 0x09
-#define UVC_PU_WHITE_BALANCE_TEMPERATURE_CONTROL 0x0a
-#define UVC_PU_WHITE_BALANCE_TEMPERATURE_AUTO_CONTROL 0x0b
-#define UVC_PU_WHITE_BALANCE_COMPONENT_CONTROL 0x0c
-#define UVC_PU_WHITE_BALANCE_COMPONENT_AUTO_CONTROL 0x0d
-#define UVC_PU_DIGITAL_MULTIPLIER_CONTROL 0x0e
-#define UVC_PU_DIGITAL_MULTIPLIER_LIMIT_CONTROL 0x0f
-#define UVC_PU_HUE_AUTO_CONTROL 0x10
-#define UVC_PU_ANALOG_VIDEO_STANDARD_CONTROL 0x11
-#define UVC_PU_ANALOG_LOCK_STATUS_CONTROL 0x12
-
-/* A.9.7. VideoStreaming Interface Control Selectors */
-#define UVC_VS_CONTROL_UNDEFINED 0x00
-#define UVC_VS_PROBE_CONTROL 0x01
-#define UVC_VS_COMMIT_CONTROL 0x02
-#define UVC_VS_STILL_PROBE_CONTROL 0x03
-#define UVC_VS_STILL_COMMIT_CONTROL 0x04
-#define UVC_VS_STILL_IMAGE_TRIGGER_CONTROL 0x05
-#define UVC_VS_STREAM_ERROR_CODE_CONTROL 0x06
-#define UVC_VS_GENERATE_KEY_FRAME_CONTROL 0x07
-#define UVC_VS_UPDATE_FRAME_SEGMENT_CONTROL 0x08
-#define UVC_VS_SYNC_DELAY_CONTROL 0x09
-
-/* B.1. USB Terminal Types */
-#define UVC_TT_VENDOR_SPECIFIC 0x0100
-#define UVC_TT_STREAMING 0x0101
-
-/* B.2. Input Terminal Types */
-#define UVC_ITT_VENDOR_SPECIFIC 0x0200
-#define UVC_ITT_CAMERA 0x0201
-#define UVC_ITT_MEDIA_TRANSPORT_INPUT 0x0202
-
-/* B.3. Output Terminal Types */
-#define UVC_OTT_VENDOR_SPECIFIC 0x0300
-#define UVC_OTT_DISPLAY 0x0301
-#define UVC_OTT_MEDIA_TRANSPORT_OUTPUT 0x0302
-
-/* B.4. External Terminal Types */
-#define UVC_EXTERNAL_VENDOR_SPECIFIC 0x0400
-#define UVC_COMPOSITE_CONNECTOR 0x0401
-#define UVC_SVIDEO_CONNECTOR 0x0402
-#define UVC_COMPONENT_CONNECTOR 0x0403
-
-/* 2.4.2.2. Status Packet Type */
-#define UVC_STATUS_TYPE_CONTROL 1
-#define UVC_STATUS_TYPE_STREAMING 2
-
-/* 2.4.3.3. Payload Header Information */
-#define UVC_STREAM_EOH (1 << 7)
-#define UVC_STREAM_ERR (1 << 6)
-#define UVC_STREAM_STI (1 << 5)
-#define UVC_STREAM_RES (1 << 4)
-#define UVC_STREAM_SCR (1 << 3)
-#define UVC_STREAM_PTS (1 << 2)
-#define UVC_STREAM_EOF (1 << 1)
-#define UVC_STREAM_FID (1 << 0)
-
-/* 4.1.2. Control Capabilities */
-#define UVC_CONTROL_CAP_GET (1 << 0)
-#define UVC_CONTROL_CAP_SET (1 << 1)
-#define UVC_CONTROL_CAP_DISABLED (1 << 2)
-#define UVC_CONTROL_CAP_AUTOUPDATE (1 << 3)
-#define UVC_CONTROL_CAP_ASYNCHRONOUS (1 << 4)
-
-/* ------------------------------------------------------------------------
- * UVC structures
- */
-
-/* All UVC descriptors have these 3 fields at the beginning */
-struct uvc_descriptor_header {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubType;
-} __attribute__((packed));
-
-/* 3.7.2. Video Control Interface Header Descriptor */
-struct uvc_header_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubType;
- __u16 bcdUVC;
- __u16 wTotalLength;
- __u32 dwClockFrequency;
- __u8 bInCollection;
- __u8 baInterfaceNr[];
-} __attribute__((__packed__));
-
-#define UVC_DT_HEADER_SIZE(n) (12+(n))
-
-#define UVC_HEADER_DESCRIPTOR(n) \
- uvc_header_descriptor_##n
-
-#define DECLARE_UVC_HEADER_DESCRIPTOR(n) \
-struct UVC_HEADER_DESCRIPTOR(n) { \
- __u8 bLength; \
- __u8 bDescriptorType; \
- __u8 bDescriptorSubType; \
- __u16 bcdUVC; \
- __u16 wTotalLength; \
- __u32 dwClockFrequency; \
- __u8 bInCollection; \
- __u8 baInterfaceNr[n]; \
-} __attribute__ ((packed))
-
-/* 3.7.2.1. Input Terminal Descriptor */
-struct uvc_input_terminal_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubType;
- __u8 bTerminalID;
- __u16 wTerminalType;
- __u8 bAssocTerminal;
- __u8 iTerminal;
-} __attribute__((__packed__));
-
-#define UVC_DT_INPUT_TERMINAL_SIZE 8
-
-/* 3.7.2.2. Output Terminal Descriptor */
-struct uvc_output_terminal_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubType;
- __u8 bTerminalID;
- __u16 wTerminalType;
- __u8 bAssocTerminal;
- __u8 bSourceID;
- __u8 iTerminal;
-} __attribute__((__packed__));
-
-#define UVC_DT_OUTPUT_TERMINAL_SIZE 9
-
-/* 3.7.2.3. Camera Terminal Descriptor */
-struct uvc_camera_terminal_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubType;
- __u8 bTerminalID;
- __u16 wTerminalType;
- __u8 bAssocTerminal;
- __u8 iTerminal;
- __u16 wObjectiveFocalLengthMin;
- __u16 wObjectiveFocalLengthMax;
- __u16 wOcularFocalLength;
- __u8 bControlSize;
- __u8 bmControls[3];
-} __attribute__((__packed__));
-
-#define UVC_DT_CAMERA_TERMINAL_SIZE(n) (15+(n))
-
-/* 3.7.2.4. Selector Unit Descriptor */
-struct uvc_selector_unit_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubType;
- __u8 bUnitID;
- __u8 bNrInPins;
- __u8 baSourceID[0];
- __u8 iSelector;
-} __attribute__((__packed__));
-
-#define UVC_DT_SELECTOR_UNIT_SIZE(n) (6+(n))
-
-#define UVC_SELECTOR_UNIT_DESCRIPTOR(n) \
- uvc_selector_unit_descriptor_##n
-
-#define DECLARE_UVC_SELECTOR_UNIT_DESCRIPTOR(n) \
-struct UVC_SELECTOR_UNIT_DESCRIPTOR(n) { \
- __u8 bLength; \
- __u8 bDescriptorType; \
- __u8 bDescriptorSubType; \
- __u8 bUnitID; \
- __u8 bNrInPins; \
- __u8 baSourceID[n]; \
- __u8 iSelector; \
-} __attribute__ ((packed))
-
-/* 3.7.2.5. Processing Unit Descriptor */
-struct uvc_processing_unit_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubType;
- __u8 bUnitID;
- __u8 bSourceID;
- __u16 wMaxMultiplier;
- __u8 bControlSize;
- __u8 bmControls[2];
- __u8 iProcessing;
-} __attribute__((__packed__));
-
-#define UVC_DT_PROCESSING_UNIT_SIZE(n) (9+(n))
-
-/* 3.7.2.6. Extension Unit Descriptor */
-struct uvc_extension_unit_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubType;
- __u8 bUnitID;
- __u8 guidExtensionCode[16];
- __u8 bNumControls;
- __u8 bNrInPins;
- __u8 baSourceID[0];
- __u8 bControlSize;
- __u8 bmControls[0];
- __u8 iExtension;
-} __attribute__((__packed__));
-
-#define UVC_DT_EXTENSION_UNIT_SIZE(p, n) (24+(p)+(n))
-
-#define UVC_EXTENSION_UNIT_DESCRIPTOR(p, n) \
- uvc_extension_unit_descriptor_##p_##n
-
-#define DECLARE_UVC_EXTENSION_UNIT_DESCRIPTOR(p, n) \
-struct UVC_EXTENSION_UNIT_DESCRIPTOR(p, n) { \
- __u8 bLength; \
- __u8 bDescriptorType; \
- __u8 bDescriptorSubType; \
- __u8 bUnitID; \
- __u8 guidExtensionCode[16]; \
- __u8 bNumControls; \
- __u8 bNrInPins; \
- __u8 baSourceID[p]; \
- __u8 bControlSize; \
- __u8 bmControls[n]; \
- __u8 iExtension; \
-} __attribute__ ((packed))
-
-/* 3.8.2.2. Video Control Interrupt Endpoint Descriptor */
-struct uvc_control_endpoint_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubType;
- __u16 wMaxTransferSize;
-} __attribute__((__packed__));
-
-#define UVC_DT_CONTROL_ENDPOINT_SIZE 5
-
-/* 3.9.2.1. Input Header Descriptor */
-struct uvc_input_header_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubType;
- __u8 bNumFormats;
- __u16 wTotalLength;
- __u8 bEndpointAddress;
- __u8 bmInfo;
- __u8 bTerminalLink;
- __u8 bStillCaptureMethod;
- __u8 bTriggerSupport;
- __u8 bTriggerUsage;
- __u8 bControlSize;
- __u8 bmaControls[];
-} __attribute__((__packed__));
-
-#define UVC_DT_INPUT_HEADER_SIZE(n, p) (13+(n*p))
-
-#define UVC_INPUT_HEADER_DESCRIPTOR(n, p) \
- uvc_input_header_descriptor_##n_##p
-
-#define DECLARE_UVC_INPUT_HEADER_DESCRIPTOR(n, p) \
-struct UVC_INPUT_HEADER_DESCRIPTOR(n, p) { \
- __u8 bLength; \
- __u8 bDescriptorType; \
- __u8 bDescriptorSubType; \
- __u8 bNumFormats; \
- __u16 wTotalLength; \
- __u8 bEndpointAddress; \
- __u8 bmInfo; \
- __u8 bTerminalLink; \
- __u8 bStillCaptureMethod; \
- __u8 bTriggerSupport; \
- __u8 bTriggerUsage; \
- __u8 bControlSize; \
- __u8 bmaControls[p][n]; \
-} __attribute__ ((packed))
-
-/* 3.9.2.2. Output Header Descriptor */
-struct uvc_output_header_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubType;
- __u8 bNumFormats;
- __u16 wTotalLength;
- __u8 bEndpointAddress;
- __u8 bTerminalLink;
- __u8 bControlSize;
- __u8 bmaControls[];
-} __attribute__((__packed__));
-
-#define UVC_DT_OUTPUT_HEADER_SIZE(n, p) (9+(n*p))
-
-#define UVC_OUTPUT_HEADER_DESCRIPTOR(n, p) \
- uvc_output_header_descriptor_##n_##p
-
-#define DECLARE_UVC_OUTPUT_HEADER_DESCRIPTOR(n, p) \
-struct UVC_OUTPUT_HEADER_DESCRIPTOR(n, p) { \
- __u8 bLength; \
- __u8 bDescriptorType; \
- __u8 bDescriptorSubType; \
- __u8 bNumFormats; \
- __u16 wTotalLength; \
- __u8 bEndpointAddress; \
- __u8 bTerminalLink; \
- __u8 bControlSize; \
- __u8 bmaControls[p][n]; \
-} __attribute__ ((packed))
-
-/* 3.9.2.6. Color matching descriptor */
-struct uvc_color_matching_descriptor {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubType;
- __u8 bColorPrimaries;
- __u8 bTransferCharacteristics;
- __u8 bMatrixCoefficients;
-} __attribute__((__packed__));
-
-#define UVC_DT_COLOR_MATCHING_SIZE 6
-
-/* 4.3.1.1. Video Probe and Commit Controls */
-struct uvc_streaming_control {
- __u16 bmHint;
- __u8 bFormatIndex;
- __u8 bFrameIndex;
- __u32 dwFrameInterval;
- __u16 wKeyFrameRate;
- __u16 wPFrameRate;
- __u16 wCompQuality;
- __u16 wCompWindowSize;
- __u16 wDelay;
- __u32 dwMaxVideoFrameSize;
- __u32 dwMaxPayloadTransferSize;
- __u32 dwClockFrequency;
- __u8 bmFramingInfo;
- __u8 bPreferedVersion;
- __u8 bMinVersion;
- __u8 bMaxVersion;
-} __attribute__((__packed__));
-
-/* Uncompressed Payload - 3.1.1. Uncompressed Video Format Descriptor */
-struct uvc_format_uncompressed {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubType;
- __u8 bFormatIndex;
- __u8 bNumFrameDescriptors;
- __u8 guidFormat[16];
- __u8 bBitsPerPixel;
- __u8 bDefaultFrameIndex;
- __u8 bAspectRatioX;
- __u8 bAspectRatioY;
- __u8 bmInterfaceFlags;
- __u8 bCopyProtect;
-} __attribute__((__packed__));
-
-#define UVC_DT_FORMAT_UNCOMPRESSED_SIZE 27
-
-/* Uncompressed Payload - 3.1.2. Uncompressed Video Frame Descriptor */
-struct uvc_frame_uncompressed {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubType;
- __u8 bFrameIndex;
- __u8 bmCapabilities;
- __u16 wWidth;
- __u16 wHeight;
- __u32 dwMinBitRate;
- __u32 dwMaxBitRate;
- __u32 dwMaxVideoFrameBufferSize;
- __u32 dwDefaultFrameInterval;
- __u8 bFrameIntervalType;
- __u32 dwFrameInterval[];
-} __attribute__((__packed__));
-
-#define UVC_DT_FRAME_UNCOMPRESSED_SIZE(n) (26+4*(n))
-
-#define UVC_FRAME_UNCOMPRESSED(n) \
- uvc_frame_uncompressed_##n
-
-#define DECLARE_UVC_FRAME_UNCOMPRESSED(n) \
-struct UVC_FRAME_UNCOMPRESSED(n) { \
- __u8 bLength; \
- __u8 bDescriptorType; \
- __u8 bDescriptorSubType; \
- __u8 bFrameIndex; \
- __u8 bmCapabilities; \
- __u16 wWidth; \
- __u16 wHeight; \
- __u32 dwMinBitRate; \
- __u32 dwMaxBitRate; \
- __u32 dwMaxVideoFrameBufferSize; \
- __u32 dwDefaultFrameInterval; \
- __u8 bFrameIntervalType; \
- __u32 dwFrameInterval[n]; \
-} __attribute__ ((packed))
-
-/* MJPEG Payload - 3.1.1. MJPEG Video Format Descriptor */
-struct uvc_format_mjpeg {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubType;
- __u8 bFormatIndex;
- __u8 bNumFrameDescriptors;
- __u8 bmFlags;
- __u8 bDefaultFrameIndex;
- __u8 bAspectRatioX;
- __u8 bAspectRatioY;
- __u8 bmInterfaceFlags;
- __u8 bCopyProtect;
-} __attribute__((__packed__));
-
-#define UVC_DT_FORMAT_MJPEG_SIZE 11
-
-/* MJPEG Payload - 3.1.2. MJPEG Video Frame Descriptor */
-struct uvc_frame_mjpeg {
- __u8 bLength;
- __u8 bDescriptorType;
- __u8 bDescriptorSubType;
- __u8 bFrameIndex;
- __u8 bmCapabilities;
- __u16 wWidth;
- __u16 wHeight;
- __u32 dwMinBitRate;
- __u32 dwMaxBitRate;
- __u32 dwMaxVideoFrameBufferSize;
- __u32 dwDefaultFrameInterval;
- __u8 bFrameIntervalType;
- __u32 dwFrameInterval[];
-} __attribute__((__packed__));
-
-#define UVC_DT_FRAME_MJPEG_SIZE(n) (26+4*(n))
-
-#define UVC_FRAME_MJPEG(n) \
- uvc_frame_mjpeg_##n
-
-#define DECLARE_UVC_FRAME_MJPEG(n) \
-struct UVC_FRAME_MJPEG(n) { \
- __u8 bLength; \
- __u8 bDescriptorType; \
- __u8 bDescriptorSubType; \
- __u8 bFrameIndex; \
- __u8 bmCapabilities; \
- __u16 wWidth; \
- __u16 wHeight; \
- __u32 dwMinBitRate; \
- __u32 dwMaxBitRate; \
- __u32 dwMaxVideoFrameBufferSize; \
- __u32 dwDefaultFrameInterval; \
- __u8 bFrameIntervalType; \
- __u32 dwFrameInterval[n]; \
-} __attribute__ ((packed))
-
-#endif /* __LINUX_USB_VIDEO_H */
-
diff --git a/ANDROID_3.4.5/include/linux/usb/wusb-wa.h b/ANDROID_3.4.5/include/linux/usb/wusb-wa.h
deleted file mode 100644
index f9dec37f..00000000
--- a/ANDROID_3.4.5/include/linux/usb/wusb-wa.h
+++ /dev/null
@@ -1,272 +0,0 @@
-/*
- * Wireless USB Wire Adapter constants and structures.
- *
- * Copyright (C) 2005-2006 Intel Corporation.
- * Inaky Perez-Gonzalez <inaky.perez-gonzalez@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.
- *
- * 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-1301, USA.
- *
- *
- * FIXME: docs
- * FIXME: organize properly, group logically
- *
- * All the event structures are defined in uwb/spec.h, as they are
- * common to the WHCI and WUSB radio control interfaces.
- *
- * References:
- * [WUSB] Wireless Universal Serial Bus Specification, revision 1.0, ch8
- */
-#ifndef __LINUX_USB_WUSB_WA_H
-#define __LINUX_USB_WUSB_WA_H
-
-/**
- * Radio Command Request for the Radio Control Interface
- *
- * Radio Control Interface command and event codes are the same as
- * WHCI, and listed in include/linux/uwb.h:UWB_RC_{CMD,EVT}_*
- */
-enum {
- WA_EXEC_RC_CMD = 40, /* Radio Control command Request */
-};
-
-/* Wireless Adapter Requests ([WUSB] table 8-51) */
-enum {
- WUSB_REQ_ADD_MMC_IE = 20,
- WUSB_REQ_REMOVE_MMC_IE = 21,
- WUSB_REQ_SET_NUM_DNTS = 22,
- WUSB_REQ_SET_CLUSTER_ID = 23,
- WUSB_REQ_SET_DEV_INFO = 24,
- WUSB_REQ_GET_TIME = 25,
- WUSB_REQ_SET_STREAM_IDX = 26,
- WUSB_REQ_SET_WUSB_MAS = 27,
- WUSB_REQ_CHAN_STOP = 28,
-};
-
-
-/* Wireless Adapter WUSB Channel Time types ([WUSB] table 8-52) */
-enum {
- WUSB_TIME_ADJ = 0,
- WUSB_TIME_BPST = 1,
- WUSB_TIME_WUSB = 2,
-};
-
-enum {
- WA_ENABLE = 0x01,
- WA_RESET = 0x02,
- RPIPE_PAUSE = 0x1,
-};
-
-/* Responses from Get Status request ([WUSB] section 8.3.1.6) */
-enum {
- WA_STATUS_ENABLED = 0x01,
- WA_STATUS_RESETTING = 0x02
-};
-
-enum rpipe_crs {
- RPIPE_CRS_CTL = 0x01,
- RPIPE_CRS_ISO = 0x02,
- RPIPE_CRS_BULK = 0x04,
- RPIPE_CRS_INTR = 0x08
-};
-
-/**
- * RPipe descriptor ([WUSB] section 8.5.2.11)
- *
- * FIXME: explain rpipes
- */
-struct usb_rpipe_descriptor {
- u8 bLength;
- u8 bDescriptorType;
- __le16 wRPipeIndex;
- __le16 wRequests;
- __le16 wBlocks; /* rw if 0 */
- __le16 wMaxPacketSize; /* rw? */
- u8 bHSHubAddress; /* reserved: 0 */
- u8 bHSHubPort; /* ??? FIXME ??? */
- u8 bSpeed; /* rw: xfer rate 'enum uwb_phy_rate' */
- u8 bDeviceAddress; /* rw: Target device address */
- u8 bEndpointAddress; /* rw: Target EP address */
- u8 bDataSequence; /* ro: Current Data sequence */
- __le32 dwCurrentWindow; /* ro */
- u8 bMaxDataSequence; /* ro?: max supported seq */
- u8 bInterval; /* rw: */
- u8 bOverTheAirInterval; /* rw: */
- u8 bmAttribute; /* ro? */
- u8 bmCharacteristics; /* ro? enum rpipe_attr, supported xsactions */
- u8 bmRetryOptions; /* rw? */
- __le16 wNumTransactionErrors; /* rw */
-} __attribute__ ((packed));
-
-/**
- * Wire Adapter Notification types ([WUSB] sections 8.4.5 & 8.5.4)
- *
- * These are the notifications coming on the notification endpoint of
- * an HWA and a DWA.
- */
-enum wa_notif_type {
- DWA_NOTIF_RWAKE = 0x91,
- DWA_NOTIF_PORTSTATUS = 0x92,
- WA_NOTIF_TRANSFER = 0x93,
- HWA_NOTIF_BPST_ADJ = 0x94,
- HWA_NOTIF_DN = 0x95,
-};
-
-/**
- * Wire Adapter notification header
- *
- * Notifications coming from a wire adapter use a common header
- * defined in [WUSB] sections 8.4.5 & 8.5.4.
- */
-struct wa_notif_hdr {
- u8 bLength;
- u8 bNotifyType; /* enum wa_notif_type */
-} __attribute__((packed));
-
-/**
- * HWA DN Received notification [(WUSB] section 8.5.4.2)
- *
- * The DNData is specified in WUSB1.0[7.6]. For each device
- * notification we received, we just need to dispatch it.
- *
- * @dndata: this is really an array of notifications, but all start
- * with the same header.
- */
-struct hwa_notif_dn {
- struct wa_notif_hdr hdr;
- u8 bSourceDeviceAddr; /* from errata 2005/07 */
- u8 bmAttributes;
- struct wusb_dn_hdr dndata[];
-} __attribute__((packed));
-
-/* [WUSB] section 8.3.3 */
-enum wa_xfer_type {
- WA_XFER_TYPE_CTL = 0x80,
- WA_XFER_TYPE_BI = 0x81, /* bulk/interrupt */
- WA_XFER_TYPE_ISO = 0x82,
- WA_XFER_RESULT = 0x83,
- WA_XFER_ABORT = 0x84,
-};
-
-/* [WUSB] section 8.3.3 */
-struct wa_xfer_hdr {
- u8 bLength; /* 0x18 */
- u8 bRequestType; /* 0x80 WA_REQUEST_TYPE_CTL */
- __le16 wRPipe; /* RPipe index */
- __le32 dwTransferID; /* Host-assigned ID */
- __le32 dwTransferLength; /* Length of data to xfer */
- u8 bTransferSegment;
-} __attribute__((packed));
-
-struct wa_xfer_ctl {
- struct wa_xfer_hdr hdr;
- u8 bmAttribute;
- __le16 wReserved;
- struct usb_ctrlrequest baSetupData;
-} __attribute__((packed));
-
-struct wa_xfer_bi {
- struct wa_xfer_hdr hdr;
- u8 bReserved;
- __le16 wReserved;
-} __attribute__((packed));
-
-struct wa_xfer_hwaiso {
- struct wa_xfer_hdr hdr;
- u8 bReserved;
- __le16 wPresentationTime;
- __le32 dwNumOfPackets;
- /* FIXME: u8 pktdata[]? */
-} __attribute__((packed));
-
-/* [WUSB] section 8.3.3.5 */
-struct wa_xfer_abort {
- u8 bLength;
- u8 bRequestType;
- __le16 wRPipe; /* RPipe index */
- __le32 dwTransferID; /* Host-assigned ID */
-} __attribute__((packed));
-
-/**
- * WA Transfer Complete notification ([WUSB] section 8.3.3.3)
- *
- */
-struct wa_notif_xfer {
- struct wa_notif_hdr hdr;
- u8 bEndpoint;
- u8 Reserved;
-} __attribute__((packed));
-
-/** Transfer result basic codes [WUSB] table 8-15 */
-enum {
- WA_XFER_STATUS_SUCCESS,
- WA_XFER_STATUS_HALTED,
- WA_XFER_STATUS_DATA_BUFFER_ERROR,
- WA_XFER_STATUS_BABBLE,
- WA_XFER_RESERVED,
- WA_XFER_STATUS_NOT_FOUND,
- WA_XFER_STATUS_INSUFFICIENT_RESOURCE,
- WA_XFER_STATUS_TRANSACTION_ERROR,
- WA_XFER_STATUS_ABORTED,
- WA_XFER_STATUS_RPIPE_NOT_READY,
- WA_XFER_INVALID_FORMAT,
- WA_XFER_UNEXPECTED_SEGMENT_NUMBER,
- WA_XFER_STATUS_RPIPE_TYPE_MISMATCH,
-};
-
-/** [WUSB] section 8.3.3.4 */
-struct wa_xfer_result {
- struct wa_notif_hdr hdr;
- __le32 dwTransferID;
- __le32 dwTransferLength;
- u8 bTransferSegment;
- u8 bTransferStatus;
- __le32 dwNumOfPackets;
-} __attribute__((packed));
-
-/**
- * Wire Adapter Class Descriptor ([WUSB] section 8.5.2.7).
- *
- * NOTE: u16 fields are read Little Endian from the hardware.
- *
- * @bNumPorts is the original max number of devices that the host can
- * connect; we might chop this so the stack can handle
- * it. In case you need to access it, use wusbhc->ports_max
- * if it is a Wireless USB WA.
- */
-struct usb_wa_descriptor {
- u8 bLength;
- u8 bDescriptorType;
- u16 bcdWAVersion;
- u8 bNumPorts; /* don't use!! */
- u8 bmAttributes; /* Reserved == 0 */
- u16 wNumRPipes;
- u16 wRPipeMaxBlock;
- u8 bRPipeBlockSize;
- u8 bPwrOn2PwrGood;
- u8 bNumMMCIEs;
- u8 DeviceRemovable; /* FIXME: in DWA this is up to 16 bytes */
-} __attribute__((packed));
-
-/**
- * HWA Device Information Buffer (WUSB1.0[T8.54])
- */
-struct hwa_dev_info {
- u8 bmDeviceAvailability[32]; /* FIXME: ignored for now */
- u8 bDeviceAddress;
- __le16 wPHYRates;
- u8 bmDeviceAttribute;
-} __attribute__((packed));
-
-#endif /* #ifndef __LINUX_USB_WUSB_WA_H */
diff --git a/ANDROID_3.4.5/include/linux/usb/wusb.h b/ANDROID_3.4.5/include/linux/usb/wusb.h
deleted file mode 100644
index 0c4d4ca3..00000000
--- a/ANDROID_3.4.5/include/linux/usb/wusb.h
+++ /dev/null
@@ -1,375 +0,0 @@
-/*
- * Wireless USB Standard Definitions
- * Event Size Tables
- *
- * Copyright (C) 2005-2006 Intel Corporation
- * Inaky Perez-Gonzalez <inaky.perez-gonzalez@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.
- *
- * 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-1301, USA.
- *
- *
- * FIXME: docs
- * FIXME: organize properly, group logically
- *
- * All the event structures are defined in uwb/spec.h, as they are
- * common to the WHCI and WUSB radio control interfaces.
- */
-
-#ifndef __WUSB_H__
-#define __WUSB_H__
-
-#include <linux/types.h>
-#include <linux/kernel.h>
-#include <linux/uwb/spec.h>
-#include <linux/usb/ch9.h>
-#include <linux/param.h>
-
-/**
- * WUSB Information Element header
- *
- * I don't know why, they decided to make it different to the MBOA MAC
- * IE Header; beats me.
- */
-struct wuie_hdr {
- u8 bLength;
- u8 bIEIdentifier;
-} __attribute__((packed));
-
-enum {
- WUIE_ID_WCTA = 0x80,
- WUIE_ID_CONNECTACK,
- WUIE_ID_HOST_INFO,
- WUIE_ID_CHANGE_ANNOUNCE,
- WUIE_ID_DEVICE_DISCONNECT,
- WUIE_ID_HOST_DISCONNECT,
- WUIE_ID_KEEP_ALIVE = 0x89,
- WUIE_ID_ISOCH_DISCARD,
- WUIE_ID_RESET_DEVICE,
-};
-
-/**
- * Maximum number of array elements in a WUSB IE.
- *
- * WUSB1.0[7.5 before table 7-38] says that in WUSB IEs that
- * are "arrays" have to limited to 4 elements. So we define it
- * like that to ease up and submit only the neeed size.
- */
-#define WUIE_ELT_MAX 4
-
-/**
- * Wrapper for the data that defines a CHID, a CDID or a CK
- *
- * WUSB defines that CHIDs, CDIDs and CKs are a 16 byte string of
- * data. In order to avoid confusion and enforce types, we wrap it.
- *
- * Make it packed, as we use it in some hw definitions.
- */
-struct wusb_ckhdid {
- u8 data[16];
-} __attribute__((packed));
-
-static const struct wusb_ckhdid wusb_ckhdid_zero = { .data = { 0 } };
-
-#define WUSB_CKHDID_STRSIZE (3 * sizeof(struct wusb_ckhdid) + 1)
-
-/**
- * WUSB IE: Host Information (WUSB1.0[7.5.2])
- *
- * Used to provide information about the host to the Wireless USB
- * devices in range (CHID can be used as an ASCII string).
- */
-struct wuie_host_info {
- struct wuie_hdr hdr;
- __le16 attributes;
- struct wusb_ckhdid CHID;
-} __attribute__((packed));
-
-/**
- * WUSB IE: Connect Ack (WUSB1.0[7.5.1])
- *
- * Used to acknowledge device connect requests. See note for
- * WUIE_ELT_MAX.
- */
-struct wuie_connect_ack {
- struct wuie_hdr hdr;
- struct {
- struct wusb_ckhdid CDID;
- u8 bDeviceAddress; /* 0 means unused */
- u8 bReserved;
- } blk[WUIE_ELT_MAX];
-} __attribute__((packed));
-
-/**
- * WUSB IE Host Information Element, Connect Availability
- *
- * WUSB1.0[7.5.2], bmAttributes description
- */
-enum {
- WUIE_HI_CAP_RECONNECT = 0,
- WUIE_HI_CAP_LIMITED,
- WUIE_HI_CAP_RESERVED,
- WUIE_HI_CAP_ALL,
-};
-
-/**
- * WUSB IE: Channel Stop (WUSB1.0[7.5.8])
- *
- * Tells devices the host is going to stop sending MMCs and will disappear.
- */
-struct wuie_channel_stop {
- struct wuie_hdr hdr;
- u8 attributes;
- u8 timestamp[3];
-} __attribute__((packed));
-
-/**
- * WUSB IE: Keepalive (WUSB1.0[7.5.9])
- *
- * Ask device(s) to send keepalives.
- */
-struct wuie_keep_alive {
- struct wuie_hdr hdr;
- u8 bDeviceAddress[WUIE_ELT_MAX];
-} __attribute__((packed));
-
-/**
- * WUSB IE: Reset device (WUSB1.0[7.5.11])
- *
- * Tell device to reset; in all truth, we can fit 4 CDIDs, but we only
- * use it for one at the time...
- *
- * In any case, this request is a wee bit silly: why don't they target
- * by address??
- */
-struct wuie_reset {
- struct wuie_hdr hdr;
- struct wusb_ckhdid CDID;
-} __attribute__((packed));
-
-/**
- * WUSB IE: Disconnect device (WUSB1.0[7.5.11])
- *
- * Tell device to disconnect; we can fit 4 addresses, but we only use
- * it for one at the time...
- */
-struct wuie_disconnect {
- struct wuie_hdr hdr;
- u8 bDeviceAddress;
- u8 padding;
-} __attribute__((packed));
-
-/**
- * WUSB IE: Host disconnect ([WUSB] section 7.5.5)
- *
- * Tells all connected devices to disconnect.
- */
-struct wuie_host_disconnect {
- struct wuie_hdr hdr;
-} __attribute__((packed));
-
-/**
- * WUSB Device Notification header (WUSB1.0[7.6])
- */
-struct wusb_dn_hdr {
- u8 bType;
- u8 notifdata[];
-} __attribute__((packed));
-
-/** Device Notification codes (WUSB1.0[Table 7-54]) */
-enum WUSB_DN {
- WUSB_DN_CONNECT = 0x01,
- WUSB_DN_DISCONNECT = 0x02,
- WUSB_DN_EPRDY = 0x03,
- WUSB_DN_MASAVAILCHANGED = 0x04,
- WUSB_DN_RWAKE = 0x05,
- WUSB_DN_SLEEP = 0x06,
- WUSB_DN_ALIVE = 0x07,
-};
-
-/** WUSB Device Notification Connect */
-struct wusb_dn_connect {
- struct wusb_dn_hdr hdr;
- __le16 attributes;
- struct wusb_ckhdid CDID;
-} __attribute__((packed));
-
-static inline int wusb_dn_connect_prev_dev_addr(const struct wusb_dn_connect *dn)
-{
- return le16_to_cpu(dn->attributes) & 0xff;
-}
-
-static inline int wusb_dn_connect_new_connection(const struct wusb_dn_connect *dn)
-{
- return (le16_to_cpu(dn->attributes) >> 8) & 0x1;
-}
-
-static inline int wusb_dn_connect_beacon_behavior(const struct wusb_dn_connect *dn)
-{
- return (le16_to_cpu(dn->attributes) >> 9) & 0x03;
-}
-
-/** Device is alive (aka: pong) (WUSB1.0[7.6.7]) */
-struct wusb_dn_alive {
- struct wusb_dn_hdr hdr;
-} __attribute__((packed));
-
-/** Device is disconnecting (WUSB1.0[7.6.2]) */
-struct wusb_dn_disconnect {
- struct wusb_dn_hdr hdr;
-} __attribute__((packed));
-
-/* General constants */
-enum {
- WUSB_TRUST_TIMEOUT_MS = 4000, /* [WUSB] section 4.15.1 */
-};
-
-static inline size_t ckhdid_printf(char *pr_ckhdid, size_t size,
- const struct wusb_ckhdid *ckhdid)
-{
- return scnprintf(pr_ckhdid, size,
- "%02hx %02hx %02hx %02hx %02hx %02hx %02hx %02hx "
- "%02hx %02hx %02hx %02hx %02hx %02hx %02hx %02hx",
- ckhdid->data[0], ckhdid->data[1],
- ckhdid->data[2], ckhdid->data[3],
- ckhdid->data[4], ckhdid->data[5],
- ckhdid->data[6], ckhdid->data[7],
- ckhdid->data[8], ckhdid->data[9],
- ckhdid->data[10], ckhdid->data[11],
- ckhdid->data[12], ckhdid->data[13],
- ckhdid->data[14], ckhdid->data[15]);
-}
-
-/*
- * WUSB Crypto stuff (WUSB1.0[6])
- */
-
-extern const char *wusb_et_name(u8);
-
-/**
- * WUSB key index WUSB1.0[7.3.2.4], for usage when setting keys for
- * the host or the device.
- */
-static inline u8 wusb_key_index(int index, int type, int originator)
-{
- return (originator << 6) | (type << 4) | index;
-}
-
-#define WUSB_KEY_INDEX_TYPE_PTK 0 /* for HWA only */
-#define WUSB_KEY_INDEX_TYPE_ASSOC 1
-#define WUSB_KEY_INDEX_TYPE_GTK 2
-#define WUSB_KEY_INDEX_ORIGINATOR_HOST 0
-#define WUSB_KEY_INDEX_ORIGINATOR_DEVICE 1
-
-/* A CCM Nonce, defined in WUSB1.0[6.4.1] */
-struct aes_ccm_nonce {
- u8 sfn[6]; /* Little Endian */
- u8 tkid[3]; /* LE */
- struct uwb_dev_addr dest_addr;
- struct uwb_dev_addr src_addr;
-} __attribute__((packed));
-
-/* A CCM operation label, defined on WUSB1.0[6.5.x] */
-struct aes_ccm_label {
- u8 data[14];
-} __attribute__((packed));
-
-/*
- * Input to the key derivation sequence defined in
- * WUSB1.0[6.5.1]. Rest of the data is in the CCM Nonce passed to the
- * PRF function.
- */
-struct wusb_keydvt_in {
- u8 hnonce[16];
- u8 dnonce[16];
-} __attribute__((packed));
-
-/*
- * Output from the key derivation sequence defined in
- * WUSB1.0[6.5.1].
- */
-struct wusb_keydvt_out {
- u8 kck[16];
- u8 ptk[16];
-} __attribute__((packed));
-
-/* Pseudo Random Function WUSB1.0[6.5] */
-extern int wusb_crypto_init(void);
-extern void wusb_crypto_exit(void);
-extern ssize_t wusb_prf(void *out, size_t out_size,
- const u8 key[16], const struct aes_ccm_nonce *_n,
- const struct aes_ccm_label *a,
- const void *b, size_t blen, size_t len);
-
-static inline int wusb_prf_64(void *out, size_t out_size, const u8 key[16],
- const struct aes_ccm_nonce *n,
- const struct aes_ccm_label *a,
- const void *b, size_t blen)
-{
- return wusb_prf(out, out_size, key, n, a, b, blen, 64);
-}
-
-static inline int wusb_prf_128(void *out, size_t out_size, const u8 key[16],
- const struct aes_ccm_nonce *n,
- const struct aes_ccm_label *a,
- const void *b, size_t blen)
-{
- return wusb_prf(out, out_size, key, n, a, b, blen, 128);
-}
-
-static inline int wusb_prf_256(void *out, size_t out_size, const u8 key[16],
- const struct aes_ccm_nonce *n,
- const struct aes_ccm_label *a,
- const void *b, size_t blen)
-{
- return wusb_prf(out, out_size, key, n, a, b, blen, 256);
-}
-
-/* Key derivation WUSB1.0[6.5.1] */
-static inline int wusb_key_derive(struct wusb_keydvt_out *keydvt_out,
- const u8 key[16],
- const struct aes_ccm_nonce *n,
- const struct wusb_keydvt_in *keydvt_in)
-{
- const struct aes_ccm_label a = { .data = "Pair-wise keys" };
- return wusb_prf_256(keydvt_out, sizeof(*keydvt_out), key, n, &a,
- keydvt_in, sizeof(*keydvt_in));
-}
-
-/*
- * Out-of-band MIC Generation WUSB1.0[6.5.2]
- *
- * Compute the MIC over @key, @n and @hs and place it in @mic_out.
- *
- * @mic_out: Where to place the 8 byte MIC tag
- * @key: KCK from the derivation process
- * @n: CCM nonce, n->sfn == 0, TKID as established in the
- * process.
- * @hs: Handshake struct for phase 2 of the 4-way.
- * hs->bStatus and hs->bReserved are zero.
- * hs->bMessageNumber is 2 (WUSB1.0[7.3.2.5.2]
- * hs->dest_addr is the device's USB address padded with 0
- * hs->src_addr is the hosts's UWB device address
- * hs->mic is ignored (as we compute that value).
- */
-static inline int wusb_oob_mic(u8 mic_out[8], const u8 key[16],
- const struct aes_ccm_nonce *n,
- const struct usb_handshake *hs)
-{
- const struct aes_ccm_label a = { .data = "out-of-bandMIC" };
- return wusb_prf_64(mic_out, 8, key, n, &a,
- hs, sizeof(*hs) - sizeof(hs->MIC));
-}
-
-#endif /* #ifndef __WUSB_H__ */
diff --git a/ANDROID_3.4.5/include/linux/usb_usual.h b/ANDROID_3.4.5/include/linux/usb_usual.h
deleted file mode 100644
index 17df3600..00000000
--- a/ANDROID_3.4.5/include/linux/usb_usual.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Interface to the libusual.
- *
- * Copyright (c) 2005 Pete Zaitcev <zaitcev@redhat.com>
- * Copyright (c) 1999-2002 Matthew Dharm (mdharm-usb@one-eyed-alien.net)
- * Copyright (c) 1999 Michael Gee (michael@linuxspecific.com)
- */
-
-#ifndef __LINUX_USB_USUAL_H
-#define __LINUX_USB_USUAL_H
-
-
-/* We should do this for cleanliness... But other usb_foo.h do not do this. */
-/* #include <linux/usb.h> */
-
-/*
- * The flags field, which we store in usb_device_id.driver_info.
- * It is compatible with the old usb-storage flags in lower 24 bits.
- */
-
-/*
- * Static flag definitions. We use this roundabout technique so that the
- * proc_info() routine can automatically display a message for each flag.
- */
-#define US_DO_ALL_FLAGS \
- US_FLAG(SINGLE_LUN, 0x00000001) \
- /* allow access to only LUN 0 */ \
- US_FLAG(NEED_OVERRIDE, 0x00000002) \
- /* unusual_devs entry is necessary */ \
- US_FLAG(SCM_MULT_TARG, 0x00000004) \
- /* supports multiple targets */ \
- US_FLAG(FIX_INQUIRY, 0x00000008) \
- /* INQUIRY response needs faking */ \
- US_FLAG(FIX_CAPACITY, 0x00000010) \
- /* READ CAPACITY response too big */ \
- US_FLAG(IGNORE_RESIDUE, 0x00000020) \
- /* reported residue is wrong */ \
- US_FLAG(BULK32, 0x00000040) \
- /* Uses 32-byte CBW length */ \
- US_FLAG(NOT_LOCKABLE, 0x00000080) \
- /* PREVENT/ALLOW not supported */ \
- US_FLAG(GO_SLOW, 0x00000100) \
- /* Need delay after Command phase */ \
- US_FLAG(NO_WP_DETECT, 0x00000200) \
- /* Don't check for write-protect */ \
- US_FLAG(MAX_SECTORS_64, 0x00000400) \
- /* Sets max_sectors to 64 */ \
- US_FLAG(IGNORE_DEVICE, 0x00000800) \
- /* Don't claim device */ \
- US_FLAG(CAPACITY_HEURISTICS, 0x00001000) \
- /* sometimes sizes is too big */ \
- US_FLAG(MAX_SECTORS_MIN,0x00002000) \
- /* Sets max_sectors to arch min */ \
- US_FLAG(BULK_IGNORE_TAG,0x00004000) \
- /* Ignore tag mismatch in bulk operations */ \
- US_FLAG(SANE_SENSE, 0x00008000) \
- /* Sane Sense (> 18 bytes) */ \
- US_FLAG(CAPACITY_OK, 0x00010000) \
- /* READ CAPACITY response is correct */ \
- US_FLAG(BAD_SENSE, 0x00020000) \
- /* Bad Sense (never more than 18 bytes) */ \
- US_FLAG(NO_READ_DISC_INFO, 0x00040000) \
- /* cannot handle READ_DISC_INFO */ \
- US_FLAG(NO_READ_CAPACITY_16, 0x00080000) \
- /* cannot handle READ_CAPACITY_16 */ \
- US_FLAG(INITIAL_READ10, 0x00100000) \
- /* Initial READ(10) (and others) must be retried */
-
-#define US_FLAG(name, value) US_FL_##name = value ,
-enum { US_DO_ALL_FLAGS };
-#undef US_FLAG
-
-/*
- * The bias field for libusual and friends.
- */
-#define USB_US_TYPE_NONE 0
-#define USB_US_TYPE_STOR 1 /* usb-storage */
-#define USB_US_TYPE_UB 2 /* ub */
-
-#define USB_US_TYPE(flags) (((flags) >> 24) & 0xFF)
-#define USB_US_ORIG_FLAGS(flags) ((flags) & 0x00FFFFFF)
-
-#include <linux/usb/storage.h>
-
-/*
- */
-extern int usb_usual_ignore_device(struct usb_interface *intf);
-extern struct usb_device_id usb_storage_usb_ids[];
-
-#ifdef CONFIG_USB_LIBUSUAL
-
-extern void usb_usual_set_present(int type);
-extern void usb_usual_clear_present(int type);
-extern int usb_usual_check_type(const struct usb_device_id *, int type);
-#else
-
-#define usb_usual_set_present(t) do { } while(0)
-#define usb_usual_clear_present(t) do { } while(0)
-#define usb_usual_check_type(id, t) (0)
-#endif /* CONFIG_USB_LIBUSUAL */
-
-#endif /* __LINUX_USB_USUAL_H */
diff --git a/ANDROID_3.4.5/include/linux/usbdevice_fs.h b/ANDROID_3.4.5/include/linux/usbdevice_fs.h
deleted file mode 100644
index 15591d2e..00000000
--- a/ANDROID_3.4.5/include/linux/usbdevice_fs.h
+++ /dev/null
@@ -1,207 +0,0 @@
-/*****************************************************************************/
-
-/*
- * usbdevice_fs.h -- USB device file system.
- *
- * Copyright (C) 2000
- * Thomas Sailer (sailer@ife.ee.ethz.ch)
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * History:
- * 0.1 04.01.2000 Created
- */
-
-/*****************************************************************************/
-
-#ifndef _LINUX_USBDEVICE_FS_H
-#define _LINUX_USBDEVICE_FS_H
-
-#include <linux/types.h>
-#include <linux/magic.h>
-
-/* --------------------------------------------------------------------- */
-
-/* usbdevfs ioctl codes */
-
-struct usbdevfs_ctrltransfer {
- __u8 bRequestType;
- __u8 bRequest;
- __u16 wValue;
- __u16 wIndex;
- __u16 wLength;
- __u32 timeout; /* in milliseconds */
- void __user *data;
-};
-
-struct usbdevfs_bulktransfer {
- unsigned int ep;
- unsigned int len;
- unsigned int timeout; /* in milliseconds */
- void __user *data;
-};
-
-struct usbdevfs_setinterface {
- unsigned int interface;
- unsigned int altsetting;
-};
-
-struct usbdevfs_disconnectsignal {
- unsigned int signr;
- void __user *context;
-};
-
-#define USBDEVFS_MAXDRIVERNAME 255
-
-struct usbdevfs_getdriver {
- unsigned int interface;
- char driver[USBDEVFS_MAXDRIVERNAME + 1];
-};
-
-struct usbdevfs_connectinfo {
- unsigned int devnum;
- unsigned char slow;
-};
-
-#define USBDEVFS_URB_SHORT_NOT_OK 0x01
-#define USBDEVFS_URB_ISO_ASAP 0x02
-#define USBDEVFS_URB_BULK_CONTINUATION 0x04
-#define USBDEVFS_URB_NO_FSBR 0x20
-#define USBDEVFS_URB_ZERO_PACKET 0x40
-#define USBDEVFS_URB_NO_INTERRUPT 0x80
-
-#define USBDEVFS_URB_TYPE_ISO 0
-#define USBDEVFS_URB_TYPE_INTERRUPT 1
-#define USBDEVFS_URB_TYPE_CONTROL 2
-#define USBDEVFS_URB_TYPE_BULK 3
-
-struct usbdevfs_iso_packet_desc {
- unsigned int length;
- unsigned int actual_length;
- unsigned int status;
-};
-
-struct usbdevfs_urb {
- unsigned char type;
- unsigned char endpoint;
- int status;
- unsigned int flags;
- void __user *buffer;
- int buffer_length;
- int actual_length;
- int start_frame;
- int number_of_packets;
- int error_count;
- unsigned int signr; /* signal to be sent on completion,
- or 0 if none should be sent. */
- void __user *usercontext;
- struct usbdevfs_iso_packet_desc iso_frame_desc[0];
-};
-
-/* ioctls for talking directly to drivers */
-struct usbdevfs_ioctl {
- int ifno; /* interface 0..N ; negative numbers reserved */
- int ioctl_code; /* MUST encode size + direction of data so the
- * macros in <asm/ioctl.h> give correct values */
- void __user *data; /* param buffer (in, or out) */
-};
-
-/* You can do most things with hubs just through control messages,
- * except find out what device connects to what port. */
-struct usbdevfs_hub_portinfo {
- char nports; /* number of downstream ports in this hub */
- char port [127]; /* e.g. port 3 connects to device 27 */
-};
-
-#ifdef __KERNEL__
-#ifdef CONFIG_COMPAT
-#include <linux/compat.h>
-
-struct usbdevfs_ctrltransfer32 {
- u8 bRequestType;
- u8 bRequest;
- u16 wValue;
- u16 wIndex;
- u16 wLength;
- u32 timeout; /* in milliseconds */
- compat_caddr_t data;
-};
-
-struct usbdevfs_bulktransfer32 {
- compat_uint_t ep;
- compat_uint_t len;
- compat_uint_t timeout; /* in milliseconds */
- compat_caddr_t data;
-};
-
-struct usbdevfs_disconnectsignal32 {
- compat_int_t signr;
- compat_caddr_t context;
-};
-
-struct usbdevfs_urb32 {
- unsigned char type;
- unsigned char endpoint;
- compat_int_t status;
- compat_uint_t flags;
- compat_caddr_t buffer;
- compat_int_t buffer_length;
- compat_int_t actual_length;
- compat_int_t start_frame;
- compat_int_t number_of_packets;
- compat_int_t error_count;
- compat_uint_t signr;
- compat_caddr_t usercontext; /* unused */
- struct usbdevfs_iso_packet_desc iso_frame_desc[0];
-};
-
-struct usbdevfs_ioctl32 {
- s32 ifno;
- s32 ioctl_code;
- compat_caddr_t data;
-};
-#endif
-#endif /* __KERNEL__ */
-
-#define USBDEVFS_CONTROL _IOWR('U', 0, struct usbdevfs_ctrltransfer)
-#define USBDEVFS_CONTROL32 _IOWR('U', 0, struct usbdevfs_ctrltransfer32)
-#define USBDEVFS_BULK _IOWR('U', 2, struct usbdevfs_bulktransfer)
-#define USBDEVFS_BULK32 _IOWR('U', 2, struct usbdevfs_bulktransfer32)
-#define USBDEVFS_RESETEP _IOR('U', 3, unsigned int)
-#define USBDEVFS_SETINTERFACE _IOR('U', 4, struct usbdevfs_setinterface)
-#define USBDEVFS_SETCONFIGURATION _IOR('U', 5, unsigned int)
-#define USBDEVFS_GETDRIVER _IOW('U', 8, struct usbdevfs_getdriver)
-#define USBDEVFS_SUBMITURB _IOR('U', 10, struct usbdevfs_urb)
-#define USBDEVFS_SUBMITURB32 _IOR('U', 10, struct usbdevfs_urb32)
-#define USBDEVFS_DISCARDURB _IO('U', 11)
-#define USBDEVFS_REAPURB _IOW('U', 12, void *)
-#define USBDEVFS_REAPURB32 _IOW('U', 12, __u32)
-#define USBDEVFS_REAPURBNDELAY _IOW('U', 13, void *)
-#define USBDEVFS_REAPURBNDELAY32 _IOW('U', 13, __u32)
-#define USBDEVFS_DISCSIGNAL _IOR('U', 14, struct usbdevfs_disconnectsignal)
-#define USBDEVFS_DISCSIGNAL32 _IOR('U', 14, struct usbdevfs_disconnectsignal32)
-#define USBDEVFS_CLAIMINTERFACE _IOR('U', 15, unsigned int)
-#define USBDEVFS_RELEASEINTERFACE _IOR('U', 16, unsigned int)
-#define USBDEVFS_CONNECTINFO _IOW('U', 17, struct usbdevfs_connectinfo)
-#define USBDEVFS_IOCTL _IOWR('U', 18, struct usbdevfs_ioctl)
-#define USBDEVFS_IOCTL32 _IOWR('U', 18, struct usbdevfs_ioctl32)
-#define USBDEVFS_HUB_PORTINFO _IOR('U', 19, struct usbdevfs_hub_portinfo)
-#define USBDEVFS_RESET _IO('U', 20)
-#define USBDEVFS_CLEAR_HALT _IOR('U', 21, unsigned int)
-#define USBDEVFS_DISCONNECT _IO('U', 22)
-#define USBDEVFS_CONNECT _IO('U', 23)
-#define USBDEVFS_CLAIM_PORT _IOR('U', 24, unsigned int)
-#define USBDEVFS_RELEASE_PORT _IOR('U', 25, unsigned int)
-#endif /* _LINUX_USBDEVICE_FS_H */
diff --git a/ANDROID_3.4.5/include/linux/user-return-notifier.h b/ANDROID_3.4.5/include/linux/user-return-notifier.h
deleted file mode 100644
index 9c4a445b..00000000
--- a/ANDROID_3.4.5/include/linux/user-return-notifier.h
+++ /dev/null
@@ -1,49 +0,0 @@
-#ifndef _LINUX_USER_RETURN_NOTIFIER_H
-#define _LINUX_USER_RETURN_NOTIFIER_H
-
-#ifdef CONFIG_USER_RETURN_NOTIFIER
-
-#include <linux/list.h>
-#include <linux/sched.h>
-
-struct user_return_notifier {
- void (*on_user_return)(struct user_return_notifier *urn);
- struct hlist_node link;
-};
-
-
-void user_return_notifier_register(struct user_return_notifier *urn);
-void user_return_notifier_unregister(struct user_return_notifier *urn);
-
-static inline void propagate_user_return_notify(struct task_struct *prev,
- struct task_struct *next)
-{
- if (test_tsk_thread_flag(prev, TIF_USER_RETURN_NOTIFY)) {
- clear_tsk_thread_flag(prev, TIF_USER_RETURN_NOTIFY);
- set_tsk_thread_flag(next, TIF_USER_RETURN_NOTIFY);
- }
-}
-
-void fire_user_return_notifiers(void);
-
-static inline void clear_user_return_notifier(struct task_struct *p)
-{
- clear_tsk_thread_flag(p, TIF_USER_RETURN_NOTIFY);
-}
-
-#else
-
-struct user_return_notifier {};
-
-static inline void propagate_user_return_notify(struct task_struct *prev,
- struct task_struct *next)
-{
-}
-
-static inline void fire_user_return_notifiers(void) {}
-
-static inline void clear_user_return_notifier(struct task_struct *p) {}
-
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/user.h b/ANDROID_3.4.5/include/linux/user.h
deleted file mode 100644
index 68daf840..00000000
--- a/ANDROID_3.4.5/include/linux/user.h
+++ /dev/null
@@ -1 +0,0 @@
-#include <asm/user.h>
diff --git a/ANDROID_3.4.5/include/linux/user_namespace.h b/ANDROID_3.4.5/include/linux/user_namespace.h
deleted file mode 100644
index faf46794..00000000
--- a/ANDROID_3.4.5/include/linux/user_namespace.h
+++ /dev/null
@@ -1,71 +0,0 @@
-#ifndef _LINUX_USER_NAMESPACE_H
-#define _LINUX_USER_NAMESPACE_H
-
-#include <linux/kref.h>
-#include <linux/nsproxy.h>
-#include <linux/sched.h>
-#include <linux/err.h>
-
-#define UIDHASH_BITS (CONFIG_BASE_SMALL ? 3 : 7)
-#define UIDHASH_SZ (1 << UIDHASH_BITS)
-
-struct user_namespace {
- struct kref kref;
- struct hlist_head uidhash_table[UIDHASH_SZ];
- struct user_struct *creator;
- struct work_struct destroyer;
-};
-
-extern struct user_namespace init_user_ns;
-
-#ifdef CONFIG_USER_NS
-
-static inline struct user_namespace *get_user_ns(struct user_namespace *ns)
-{
- if (ns)
- kref_get(&ns->kref);
- return ns;
-}
-
-extern int create_user_ns(struct cred *new);
-extern void free_user_ns(struct kref *kref);
-
-static inline void put_user_ns(struct user_namespace *ns)
-{
- if (ns)
- kref_put(&ns->kref, free_user_ns);
-}
-
-uid_t user_ns_map_uid(struct user_namespace *to, const struct cred *cred, uid_t uid);
-gid_t user_ns_map_gid(struct user_namespace *to, const struct cred *cred, gid_t gid);
-
-#else
-
-static inline struct user_namespace *get_user_ns(struct user_namespace *ns)
-{
- return &init_user_ns;
-}
-
-static inline int create_user_ns(struct cred *new)
-{
- return -EINVAL;
-}
-
-static inline void put_user_ns(struct user_namespace *ns)
-{
-}
-
-static inline uid_t user_ns_map_uid(struct user_namespace *to,
- const struct cred *cred, uid_t uid)
-{
- return uid;
-}
-static inline gid_t user_ns_map_gid(struct user_namespace *to,
- const struct cred *cred, gid_t gid)
-{
- return gid;
-}
-
-#endif
-
-#endif /* _LINUX_USER_H */
diff --git a/ANDROID_3.4.5/include/linux/utime.h b/ANDROID_3.4.5/include/linux/utime.h
deleted file mode 100644
index 5cdf673a..00000000
--- a/ANDROID_3.4.5/include/linux/utime.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef _LINUX_UTIME_H
-#define _LINUX_UTIME_H
-
-#include <linux/types.h>
-
-struct utimbuf {
- __kernel_time_t actime;
- __kernel_time_t modtime;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/uts.h b/ANDROID_3.4.5/include/linux/uts.h
deleted file mode 100644
index 6ddbd863..00000000
--- a/ANDROID_3.4.5/include/linux/uts.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef _LINUX_UTS_H
-#define _LINUX_UTS_H
-
-/*
- * Defines for what uname() should return
- */
-#ifndef UTS_SYSNAME
-#define UTS_SYSNAME "Linux"
-#endif
-
-#ifndef UTS_NODENAME
-#define UTS_NODENAME CONFIG_DEFAULT_HOSTNAME /* set by sethostname() */
-#endif
-
-#ifndef UTS_DOMAINNAME
-#define UTS_DOMAINNAME "(none)" /* set by setdomainname() */
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/utsname.h b/ANDROID_3.4.5/include/linux/utsname.h
deleted file mode 100644
index c714ed75..00000000
--- a/ANDROID_3.4.5/include/linux/utsname.h
+++ /dev/null
@@ -1,113 +0,0 @@
-#ifndef _LINUX_UTSNAME_H
-#define _LINUX_UTSNAME_H
-
-#define __OLD_UTS_LEN 8
-
-struct oldold_utsname {
- char sysname[9];
- char nodename[9];
- char release[9];
- char version[9];
- char machine[9];
-};
-
-#define __NEW_UTS_LEN 64
-
-struct old_utsname {
- char sysname[65];
- char nodename[65];
- char release[65];
- char version[65];
- char machine[65];
-};
-
-struct new_utsname {
- char sysname[__NEW_UTS_LEN + 1];
- char nodename[__NEW_UTS_LEN + 1];
- char release[__NEW_UTS_LEN + 1];
- char version[__NEW_UTS_LEN + 1];
- char machine[__NEW_UTS_LEN + 1];
- char domainname[__NEW_UTS_LEN + 1];
-};
-
-#ifdef __KERNEL__
-
-#include <linux/sched.h>
-#include <linux/kref.h>
-#include <linux/nsproxy.h>
-#include <linux/err.h>
-
-enum uts_proc {
- UTS_PROC_OSTYPE,
- UTS_PROC_OSRELEASE,
- UTS_PROC_VERSION,
- UTS_PROC_HOSTNAME,
- UTS_PROC_DOMAINNAME,
-};
-
-struct user_namespace;
-extern struct user_namespace init_user_ns;
-
-struct uts_namespace {
- struct kref kref;
- struct new_utsname name;
- struct user_namespace *user_ns;
-};
-extern struct uts_namespace init_uts_ns;
-
-#ifdef CONFIG_UTS_NS
-static inline void get_uts_ns(struct uts_namespace *ns)
-{
- kref_get(&ns->kref);
-}
-
-extern struct uts_namespace *copy_utsname(unsigned long flags,
- struct task_struct *tsk);
-extern void free_uts_ns(struct kref *kref);
-
-static inline void put_uts_ns(struct uts_namespace *ns)
-{
- kref_put(&ns->kref, free_uts_ns);
-}
-#else
-static inline void get_uts_ns(struct uts_namespace *ns)
-{
-}
-
-static inline void put_uts_ns(struct uts_namespace *ns)
-{
-}
-
-static inline struct uts_namespace *copy_utsname(unsigned long flags,
- struct task_struct *tsk)
-{
- if (flags & CLONE_NEWUTS)
- return ERR_PTR(-EINVAL);
-
- return tsk->nsproxy->uts_ns;
-}
-#endif
-
-#ifdef CONFIG_PROC_SYSCTL
-extern void uts_proc_notify(enum uts_proc proc);
-#else
-static inline void uts_proc_notify(enum uts_proc proc)
-{
-}
-#endif
-
-static inline struct new_utsname *utsname(void)
-{
- return &current->nsproxy->uts_ns->name;
-}
-
-static inline struct new_utsname *init_utsname(void)
-{
- return &init_uts_ns.name;
-}
-
-extern struct rw_semaphore uts_sem;
-
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_UTSNAME_H */
diff --git a/ANDROID_3.4.5/include/linux/uuid.h b/ANDROID_3.4.5/include/linux/uuid.h
deleted file mode 100644
index 5b7efbfc..00000000
--- a/ANDROID_3.4.5/include/linux/uuid.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * UUID/GUID definition
- *
- * Copyright (C) 2010, Intel Corp.
- * Huang Ying <ying.huang@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;
- *
- * 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
- */
-
-#ifndef _LINUX_UUID_H_
-#define _LINUX_UUID_H_
-
-#include <linux/types.h>
-#include <linux/string.h>
-
-typedef struct {
- __u8 b[16];
-} uuid_le;
-
-typedef struct {
- __u8 b[16];
-} uuid_be;
-
-#define UUID_LE(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7) \
-((uuid_le) \
-{{ (a) & 0xff, ((a) >> 8) & 0xff, ((a) >> 16) & 0xff, ((a) >> 24) & 0xff, \
- (b) & 0xff, ((b) >> 8) & 0xff, \
- (c) & 0xff, ((c) >> 8) & 0xff, \
- (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }})
-
-#define UUID_BE(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7) \
-((uuid_be) \
-{{ ((a) >> 24) & 0xff, ((a) >> 16) & 0xff, ((a) >> 8) & 0xff, (a) & 0xff, \
- ((b) >> 8) & 0xff, (b) & 0xff, \
- ((c) >> 8) & 0xff, (c) & 0xff, \
- (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }})
-
-#define NULL_UUID_LE \
- UUID_LE(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, \
- 0x00, 0x00, 0x00, 0x00)
-
-#define NULL_UUID_BE \
- UUID_BE(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, \
- 0x00, 0x00, 0x00, 0x00)
-
-static inline int uuid_le_cmp(const uuid_le u1, const uuid_le u2)
-{
- return memcmp(&u1, &u2, sizeof(uuid_le));
-}
-
-static inline int uuid_be_cmp(const uuid_be u1, const uuid_be u2)
-{
- return memcmp(&u1, &u2, sizeof(uuid_be));
-}
-
-extern void uuid_le_gen(uuid_le *u);
-extern void uuid_be_gen(uuid_be *u);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/uvcvideo.h b/ANDROID_3.4.5/include/linux/uvcvideo.h
deleted file mode 100644
index f46a53f0..00000000
--- a/ANDROID_3.4.5/include/linux/uvcvideo.h
+++ /dev/null
@@ -1,69 +0,0 @@
-#ifndef __LINUX_UVCVIDEO_H_
-#define __LINUX_UVCVIDEO_H_
-
-#include <linux/ioctl.h>
-#include <linux/types.h>
-
-/*
- * Dynamic controls
- */
-
-/* Data types for UVC control data */
-#define UVC_CTRL_DATA_TYPE_RAW 0
-#define UVC_CTRL_DATA_TYPE_SIGNED 1
-#define UVC_CTRL_DATA_TYPE_UNSIGNED 2
-#define UVC_CTRL_DATA_TYPE_BOOLEAN 3
-#define UVC_CTRL_DATA_TYPE_ENUM 4
-#define UVC_CTRL_DATA_TYPE_BITMASK 5
-
-/* Control flags */
-#define UVC_CTRL_FLAG_SET_CUR (1 << 0)
-#define UVC_CTRL_FLAG_GET_CUR (1 << 1)
-#define UVC_CTRL_FLAG_GET_MIN (1 << 2)
-#define UVC_CTRL_FLAG_GET_MAX (1 << 3)
-#define UVC_CTRL_FLAG_GET_RES (1 << 4)
-#define UVC_CTRL_FLAG_GET_DEF (1 << 5)
-/* Control should be saved at suspend and restored at resume. */
-#define UVC_CTRL_FLAG_RESTORE (1 << 6)
-/* Control can be updated by the camera. */
-#define UVC_CTRL_FLAG_AUTO_UPDATE (1 << 7)
-
-#define UVC_CTRL_FLAG_GET_RANGE \
- (UVC_CTRL_FLAG_GET_CUR | UVC_CTRL_FLAG_GET_MIN | \
- UVC_CTRL_FLAG_GET_MAX | UVC_CTRL_FLAG_GET_RES | \
- UVC_CTRL_FLAG_GET_DEF)
-
-struct uvc_menu_info {
- __u32 value;
- __u8 name[32];
-};
-
-struct uvc_xu_control_mapping {
- __u32 id;
- __u8 name[32];
- __u8 entity[16];
- __u8 selector;
-
- __u8 size;
- __u8 offset;
- __u32 v4l2_type;
- __u32 data_type;
-
- struct uvc_menu_info __user *menu_info;
- __u32 menu_count;
-
- __u32 reserved[4];
-};
-
-struct uvc_xu_control_query {
- __u8 unit;
- __u8 selector;
- __u8 query;
- __u16 size;
- __u8 __user *data;
-};
-
-#define UVCIOC_CTRL_MAP _IOWR('u', 0x20, struct uvc_xu_control_mapping)
-#define UVCIOC_CTRL_QUERY _IOWR('u', 0x21, struct uvc_xu_control_query)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/uwb.h b/ANDROID_3.4.5/include/linux/uwb.h
deleted file mode 100644
index 7dbbee97..00000000
--- a/ANDROID_3.4.5/include/linux/uwb.h
+++ /dev/null
@@ -1,831 +0,0 @@
-/*
- * Ultra Wide Band
- * UWB API
- *
- * Copyright (C) 2005-2006 Intel Corporation
- * Inaky Perez-Gonzalez <inaky.perez-gonzalez@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.
- *
- * 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-1301, USA.
- *
- *
- * FIXME: doc: overview of the API, different parts and pointers
- */
-
-#ifndef __LINUX__UWB_H__
-#define __LINUX__UWB_H__
-
-#include <linux/limits.h>
-#include <linux/device.h>
-#include <linux/mutex.h>
-#include <linux/timer.h>
-#include <linux/wait.h>
-#include <linux/workqueue.h>
-#include <linux/uwb/spec.h>
-#include <asm/page.h>
-
-struct uwb_dev;
-struct uwb_beca_e;
-struct uwb_rc;
-struct uwb_rsv;
-struct uwb_dbg;
-
-/**
- * struct uwb_dev - a UWB Device
- * @rc: UWB Radio Controller that discovered the device (kind of its
- * parent).
- * @bce: a beacon cache entry for this device; or NULL if the device
- * is a local radio controller.
- * @mac_addr: the EUI-48 address of this device.
- * @dev_addr: the current DevAddr used by this device.
- * @beacon_slot: the slot number the beacon is using.
- * @streams: bitmap of streams allocated to reservations targeted at
- * this device. For an RC, this is the streams allocated for
- * reservations targeted at DevAddrs.
- *
- * A UWB device may either by a neighbor or part of a local radio
- * controller.
- */
-struct uwb_dev {
- struct mutex mutex;
- struct list_head list_node;
- struct device dev;
- struct uwb_rc *rc; /* radio controller */
- struct uwb_beca_e *bce; /* Beacon Cache Entry */
-
- struct uwb_mac_addr mac_addr;
- struct uwb_dev_addr dev_addr;
- int beacon_slot;
- DECLARE_BITMAP(streams, UWB_NUM_STREAMS);
- DECLARE_BITMAP(last_availability_bm, UWB_NUM_MAS);
-};
-#define to_uwb_dev(d) container_of(d, struct uwb_dev, dev)
-
-/**
- * UWB HWA/WHCI Radio Control {Command|Event} Block context IDs
- *
- * RC[CE]Bs have a 'context ID' field that matches the command with
- * the event received to confirm it.
- *
- * Maximum number of context IDs
- */
-enum { UWB_RC_CTX_MAX = 256 };
-
-
-/** Notification chain head for UWB generated events to listeners */
-struct uwb_notifs_chain {
- struct list_head list;
- struct mutex mutex;
-};
-
-/* Beacon cache list */
-struct uwb_beca {
- struct list_head list;
- size_t entries;
- struct mutex mutex;
-};
-
-/* Event handling thread. */
-struct uwbd {
- int pid;
- struct task_struct *task;
- wait_queue_head_t wq;
- struct list_head event_list;
- spinlock_t event_list_lock;
-};
-
-/**
- * struct uwb_mas_bm - a bitmap of all MAS in a superframe
- * @bm: a bitmap of length #UWB_NUM_MAS
- */
-struct uwb_mas_bm {
- DECLARE_BITMAP(bm, UWB_NUM_MAS);
- DECLARE_BITMAP(unsafe_bm, UWB_NUM_MAS);
- int safe;
- int unsafe;
-};
-
-/**
- * uwb_rsv_state - UWB Reservation state.
- *
- * NONE - reservation is not active (no DRP IE being transmitted).
- *
- * Owner reservation states:
- *
- * INITIATED - owner has sent an initial DRP request.
- * PENDING - target responded with pending Reason Code.
- * MODIFIED - reservation manager is modifying an established
- * reservation with a different MAS allocation.
- * ESTABLISHED - the reservation has been successfully negotiated.
- *
- * Target reservation states:
- *
- * DENIED - request is denied.
- * ACCEPTED - request is accepted.
- * PENDING - PAL has yet to make a decision to whether to accept or
- * deny.
- *
- * FIXME: further target states TBD.
- */
-enum uwb_rsv_state {
- UWB_RSV_STATE_NONE = 0,
- UWB_RSV_STATE_O_INITIATED,
- UWB_RSV_STATE_O_PENDING,
- UWB_RSV_STATE_O_MODIFIED,
- UWB_RSV_STATE_O_ESTABLISHED,
- UWB_RSV_STATE_O_TO_BE_MOVED,
- UWB_RSV_STATE_O_MOVE_EXPANDING,
- UWB_RSV_STATE_O_MOVE_COMBINING,
- UWB_RSV_STATE_O_MOVE_REDUCING,
- UWB_RSV_STATE_T_ACCEPTED,
- UWB_RSV_STATE_T_DENIED,
- UWB_RSV_STATE_T_CONFLICT,
- UWB_RSV_STATE_T_PENDING,
- UWB_RSV_STATE_T_EXPANDING_ACCEPTED,
- UWB_RSV_STATE_T_EXPANDING_CONFLICT,
- UWB_RSV_STATE_T_EXPANDING_PENDING,
- UWB_RSV_STATE_T_EXPANDING_DENIED,
- UWB_RSV_STATE_T_RESIZED,
-
- UWB_RSV_STATE_LAST,
-};
-
-enum uwb_rsv_target_type {
- UWB_RSV_TARGET_DEV,
- UWB_RSV_TARGET_DEVADDR,
-};
-
-/**
- * struct uwb_rsv_target - the target of a reservation.
- *
- * Reservations unicast and targeted at a single device
- * (UWB_RSV_TARGET_DEV); or (e.g., in the case of WUSB) targeted at a
- * specific (private) DevAddr (UWB_RSV_TARGET_DEVADDR).
- */
-struct uwb_rsv_target {
- enum uwb_rsv_target_type type;
- union {
- struct uwb_dev *dev;
- struct uwb_dev_addr devaddr;
- };
-};
-
-struct uwb_rsv_move {
- struct uwb_mas_bm final_mas;
- struct uwb_ie_drp *companion_drp_ie;
- struct uwb_mas_bm companion_mas;
-};
-
-/*
- * Number of streams reserved for reservations targeted at DevAddrs.
- */
-#define UWB_NUM_GLOBAL_STREAMS 1
-
-typedef void (*uwb_rsv_cb_f)(struct uwb_rsv *rsv);
-
-/**
- * struct uwb_rsv - a DRP reservation
- *
- * Data structure management:
- *
- * @rc: the radio controller this reservation is for
- * (as target or owner)
- * @rc_node: a list node for the RC
- * @pal_node: a list node for the PAL
- *
- * Owner and target parameters:
- *
- * @owner: the UWB device owning this reservation
- * @target: the target UWB device
- * @type: reservation type
- *
- * Owner parameters:
- *
- * @max_mas: maxiumum number of MAS
- * @min_mas: minimum number of MAS
- * @sparsity: owner selected sparsity
- * @is_multicast: true iff multicast
- *
- * @callback: callback function when the reservation completes
- * @pal_priv: private data for the PAL making the reservation
- *
- * Reservation status:
- *
- * @status: negotiation status
- * @stream: stream index allocated for this reservation
- * @tiebreaker: conflict tiebreaker for this reservation
- * @mas: reserved MAS
- * @drp_ie: the DRP IE
- * @ie_valid: true iff the DRP IE matches the reservation parameters
- *
- * DRP reservations are uniquely identified by the owner, target and
- * stream index. However, when using a DevAddr as a target (e.g., for
- * a WUSB cluster reservation) the responses may be received from
- * devices with different DevAddrs. In this case, reservations are
- * uniquely identified by just the stream index. A number of stream
- * indexes (UWB_NUM_GLOBAL_STREAMS) are reserved for this.
- */
-struct uwb_rsv {
- struct uwb_rc *rc;
- struct list_head rc_node;
- struct list_head pal_node;
- struct kref kref;
-
- struct uwb_dev *owner;
- struct uwb_rsv_target target;
- enum uwb_drp_type type;
- int max_mas;
- int min_mas;
- int max_interval;
- bool is_multicast;
-
- uwb_rsv_cb_f callback;
- void *pal_priv;
-
- enum uwb_rsv_state state;
- bool needs_release_companion_mas;
- u8 stream;
- u8 tiebreaker;
- struct uwb_mas_bm mas;
- struct uwb_ie_drp *drp_ie;
- struct uwb_rsv_move mv;
- bool ie_valid;
- struct timer_list timer;
- struct work_struct handle_timeout_work;
-};
-
-static const
-struct uwb_mas_bm uwb_mas_bm_zero = { .bm = { 0 } };
-
-static inline void uwb_mas_bm_copy_le(void *dst, const struct uwb_mas_bm *mas)
-{
- bitmap_copy_le(dst, mas->bm, UWB_NUM_MAS);
-}
-
-/**
- * struct uwb_drp_avail - a radio controller's view of MAS usage
- * @global: MAS unused by neighbors (excluding reservations targeted
- * or owned by the local radio controller) or the beaon period
- * @local: MAS unused by local established reservations
- * @pending: MAS unused by local pending reservations
- * @ie: DRP Availability IE to be included in the beacon
- * @ie_valid: true iff @ie is valid and does not need to regenerated from
- * @global and @local
- *
- * Each radio controller maintains a view of MAS usage or
- * availability. MAS available for a new reservation are determined
- * from the intersection of @global, @local, and @pending.
- *
- * The radio controller must transmit a DRP Availability IE that's the
- * intersection of @global and @local.
- *
- * A set bit indicates the MAS is unused and available.
- *
- * rc->rsvs_mutex should be held before accessing this data structure.
- *
- * [ECMA-368] section 17.4.3.
- */
-struct uwb_drp_avail {
- DECLARE_BITMAP(global, UWB_NUM_MAS);
- DECLARE_BITMAP(local, UWB_NUM_MAS);
- DECLARE_BITMAP(pending, UWB_NUM_MAS);
- struct uwb_ie_drp_avail ie;
- bool ie_valid;
-};
-
-struct uwb_drp_backoff_win {
- u8 window;
- u8 n;
- int total_expired;
- struct timer_list timer;
- bool can_reserve_extra_mases;
-};
-
-const char *uwb_rsv_state_str(enum uwb_rsv_state state);
-const char *uwb_rsv_type_str(enum uwb_drp_type type);
-
-struct uwb_rsv *uwb_rsv_create(struct uwb_rc *rc, uwb_rsv_cb_f cb,
- void *pal_priv);
-void uwb_rsv_destroy(struct uwb_rsv *rsv);
-
-int uwb_rsv_establish(struct uwb_rsv *rsv);
-int uwb_rsv_modify(struct uwb_rsv *rsv,
- int max_mas, int min_mas, int sparsity);
-void uwb_rsv_terminate(struct uwb_rsv *rsv);
-
-void uwb_rsv_accept(struct uwb_rsv *rsv, uwb_rsv_cb_f cb, void *pal_priv);
-
-void uwb_rsv_get_usable_mas(struct uwb_rsv *orig_rsv, struct uwb_mas_bm *mas);
-
-/**
- * Radio Control Interface instance
- *
- *
- * Life cycle rules: those of the UWB Device.
- *
- * @index: an index number for this radio controller, as used in the
- * device name.
- * @version: version of protocol supported by this device
- * @priv: Backend implementation; rw with uwb_dev.dev.sem taken.
- * @cmd: Backend implementation to execute commands; rw and call
- * only with uwb_dev.dev.sem taken.
- * @reset: Hardware reset of radio controller and any PAL controllers.
- * @filter: Backend implementation to manipulate data to and from device
- * to be compliant to specification assumed by driver (WHCI
- * 0.95).
- *
- * uwb_dev.dev.mutex is used to execute commands and update
- * the corresponding structures; can't use a spinlock
- * because rc->cmd() can sleep.
- * @ies: This is a dynamically allocated array cacheing the
- * IEs (settable by the host) that the beacon of this
- * radio controller is currently sending.
- *
- * In reality, we store here the full command we set to
- * the radio controller (which is basically a command
- * prefix followed by all the IEs the beacon currently
- * contains). This way we don't have to realloc and
- * memcpy when setting it.
- *
- * We set this up in uwb_rc_ie_setup(), where we alloc
- * this struct, call get_ie() [so we know which IEs are
- * currently being sent, if any].
- *
- * @ies_capacity:Amount of space (in bytes) allocated in @ies. The
- * amount used is given by sizeof(*ies) plus ies->wIELength
- * (which is a little endian quantity all the time).
- * @ies_mutex: protect the IE cache
- * @dbg: information for the debug interface
- */
-struct uwb_rc {
- struct uwb_dev uwb_dev;
- int index;
- u16 version;
-
- struct module *owner;
- void *priv;
- int (*start)(struct uwb_rc *rc);
- void (*stop)(struct uwb_rc *rc);
- int (*cmd)(struct uwb_rc *, const struct uwb_rccb *, size_t);
- int (*reset)(struct uwb_rc *rc);
- int (*filter_cmd)(struct uwb_rc *, struct uwb_rccb **, size_t *);
- int (*filter_event)(struct uwb_rc *, struct uwb_rceb **, const size_t,
- size_t *, size_t *);
-
- spinlock_t neh_lock; /* protects neh_* and ctx_* */
- struct list_head neh_list; /* Open NE handles */
- unsigned long ctx_bm[UWB_RC_CTX_MAX / 8 / sizeof(unsigned long)];
- u8 ctx_roll;
-
- int beaconing; /* Beaconing state [channel number] */
- int beaconing_forced;
- int scanning;
- enum uwb_scan_type scan_type:3;
- unsigned ready:1;
- struct uwb_notifs_chain notifs_chain;
- struct uwb_beca uwb_beca;
-
- struct uwbd uwbd;
-
- struct uwb_drp_backoff_win bow;
- struct uwb_drp_avail drp_avail;
- struct list_head reservations;
- struct list_head cnflt_alien_list;
- struct uwb_mas_bm cnflt_alien_bitmap;
- struct mutex rsvs_mutex;
- spinlock_t rsvs_lock;
- struct workqueue_struct *rsv_workq;
-
- struct delayed_work rsv_update_work;
- struct delayed_work rsv_alien_bp_work;
- int set_drp_ie_pending;
- struct mutex ies_mutex;
- struct uwb_rc_cmd_set_ie *ies;
- size_t ies_capacity;
-
- struct list_head pals;
- int active_pals;
-
- struct uwb_dbg *dbg;
-};
-
-
-/**
- * struct uwb_pal - a UWB PAL
- * @name: descriptive name for this PAL (wusbhc, wlp, etc.).
- * @device: a device for the PAL. Used to link the PAL and the radio
- * controller in sysfs.
- * @rc: the radio controller the PAL uses.
- * @channel_changed: called when the channel used by the radio changes.
- * A channel of -1 means the channel has been stopped.
- * @new_rsv: called when a peer requests a reservation (may be NULL if
- * the PAL cannot accept reservation requests).
- * @channel: channel being used by the PAL; 0 if the PAL isn't using
- * the radio; -1 if the PAL wishes to use the radio but
- * cannot.
- * @debugfs_dir: a debugfs directory which the PAL can use for its own
- * debugfs files.
- *
- * A Protocol Adaptation Layer (PAL) is a user of the WiMedia UWB
- * radio platform (e.g., WUSB, WLP or Bluetooth UWB AMP).
- *
- * The PALs using a radio controller must register themselves to
- * permit the UWB stack to coordinate usage of the radio between the
- * various PALs or to allow PALs to response to certain requests from
- * peers.
- *
- * A struct uwb_pal should be embedded in a containing structure
- * belonging to the PAL and initialized with uwb_pal_init()). Fields
- * should be set appropriately by the PAL before registering the PAL
- * with uwb_pal_register().
- */
-struct uwb_pal {
- struct list_head node;
- const char *name;
- struct device *device;
- struct uwb_rc *rc;
-
- void (*channel_changed)(struct uwb_pal *pal, int channel);
- void (*new_rsv)(struct uwb_pal *pal, struct uwb_rsv *rsv);
-
- int channel;
- struct dentry *debugfs_dir;
-};
-
-void uwb_pal_init(struct uwb_pal *pal);
-int uwb_pal_register(struct uwb_pal *pal);
-void uwb_pal_unregister(struct uwb_pal *pal);
-
-int uwb_radio_start(struct uwb_pal *pal);
-void uwb_radio_stop(struct uwb_pal *pal);
-
-/*
- * General public API
- *
- * This API can be used by UWB device drivers or by those implementing
- * UWB Radio Controllers
- */
-struct uwb_dev *uwb_dev_get_by_devaddr(struct uwb_rc *rc,
- const struct uwb_dev_addr *devaddr);
-struct uwb_dev *uwb_dev_get_by_rc(struct uwb_dev *, struct uwb_rc *);
-static inline void uwb_dev_get(struct uwb_dev *uwb_dev)
-{
- get_device(&uwb_dev->dev);
-}
-static inline void uwb_dev_put(struct uwb_dev *uwb_dev)
-{
- put_device(&uwb_dev->dev);
-}
-struct uwb_dev *uwb_dev_try_get(struct uwb_rc *rc, struct uwb_dev *uwb_dev);
-
-/**
- * Callback function for 'uwb_{dev,rc}_foreach()'.
- *
- * @dev: Linux device instance
- * 'uwb_dev = container_of(dev, struct uwb_dev, dev)'
- * @priv: Data passed by the caller to 'uwb_{dev,rc}_foreach()'.
- *
- * @returns: 0 to continue the iterations, any other val to stop
- * iterating and return the value to the caller of
- * _foreach().
- */
-typedef int (*uwb_dev_for_each_f)(struct device *dev, void *priv);
-int uwb_dev_for_each(struct uwb_rc *rc, uwb_dev_for_each_f func, void *priv);
-
-struct uwb_rc *uwb_rc_alloc(void);
-struct uwb_rc *uwb_rc_get_by_dev(const struct uwb_dev_addr *);
-struct uwb_rc *uwb_rc_get_by_grandpa(const struct device *);
-void uwb_rc_put(struct uwb_rc *rc);
-
-typedef void (*uwb_rc_cmd_cb_f)(struct uwb_rc *rc, void *arg,
- struct uwb_rceb *reply, ssize_t reply_size);
-
-int uwb_rc_cmd_async(struct uwb_rc *rc, const char *cmd_name,
- struct uwb_rccb *cmd, size_t cmd_size,
- u8 expected_type, u16 expected_event,
- uwb_rc_cmd_cb_f cb, void *arg);
-ssize_t uwb_rc_cmd(struct uwb_rc *rc, const char *cmd_name,
- struct uwb_rccb *cmd, size_t cmd_size,
- struct uwb_rceb *reply, size_t reply_size);
-ssize_t uwb_rc_vcmd(struct uwb_rc *rc, const char *cmd_name,
- struct uwb_rccb *cmd, size_t cmd_size,
- u8 expected_type, u16 expected_event,
- struct uwb_rceb **preply);
-
-size_t __uwb_addr_print(char *, size_t, const unsigned char *, int);
-
-int uwb_rc_dev_addr_set(struct uwb_rc *, const struct uwb_dev_addr *);
-int uwb_rc_dev_addr_get(struct uwb_rc *, struct uwb_dev_addr *);
-int uwb_rc_mac_addr_set(struct uwb_rc *, const struct uwb_mac_addr *);
-int uwb_rc_mac_addr_get(struct uwb_rc *, struct uwb_mac_addr *);
-int __uwb_mac_addr_assigned_check(struct device *, void *);
-int __uwb_dev_addr_assigned_check(struct device *, void *);
-
-/* Print in @buf a pretty repr of @addr */
-static inline size_t uwb_dev_addr_print(char *buf, size_t buf_size,
- const struct uwb_dev_addr *addr)
-{
- return __uwb_addr_print(buf, buf_size, addr->data, 0);
-}
-
-/* Print in @buf a pretty repr of @addr */
-static inline size_t uwb_mac_addr_print(char *buf, size_t buf_size,
- const struct uwb_mac_addr *addr)
-{
- return __uwb_addr_print(buf, buf_size, addr->data, 1);
-}
-
-/* @returns 0 if device addresses @addr2 and @addr1 are equal */
-static inline int uwb_dev_addr_cmp(const struct uwb_dev_addr *addr1,
- const struct uwb_dev_addr *addr2)
-{
- return memcmp(addr1, addr2, sizeof(*addr1));
-}
-
-/* @returns 0 if MAC addresses @addr2 and @addr1 are equal */
-static inline int uwb_mac_addr_cmp(const struct uwb_mac_addr *addr1,
- const struct uwb_mac_addr *addr2)
-{
- return memcmp(addr1, addr2, sizeof(*addr1));
-}
-
-/* @returns !0 if a MAC @addr is a broadcast address */
-static inline int uwb_mac_addr_bcast(const struct uwb_mac_addr *addr)
-{
- struct uwb_mac_addr bcast = {
- .data = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }
- };
- return !uwb_mac_addr_cmp(addr, &bcast);
-}
-
-/* @returns !0 if a MAC @addr is all zeroes*/
-static inline int uwb_mac_addr_unset(const struct uwb_mac_addr *addr)
-{
- struct uwb_mac_addr unset = {
- .data = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
- };
- return !uwb_mac_addr_cmp(addr, &unset);
-}
-
-/* @returns !0 if the address is in use. */
-static inline unsigned __uwb_dev_addr_assigned(struct uwb_rc *rc,
- struct uwb_dev_addr *addr)
-{
- return uwb_dev_for_each(rc, __uwb_dev_addr_assigned_check, addr);
-}
-
-/*
- * UWB Radio Controller API
- *
- * This API is used (in addition to the general API) to implement UWB
- * Radio Controllers.
- */
-void uwb_rc_init(struct uwb_rc *);
-int uwb_rc_add(struct uwb_rc *, struct device *dev, void *rc_priv);
-void uwb_rc_rm(struct uwb_rc *);
-void uwb_rc_neh_grok(struct uwb_rc *, void *, size_t);
-void uwb_rc_neh_error(struct uwb_rc *, int);
-void uwb_rc_reset_all(struct uwb_rc *rc);
-void uwb_rc_pre_reset(struct uwb_rc *rc);
-int uwb_rc_post_reset(struct uwb_rc *rc);
-
-/**
- * uwb_rsv_is_owner - is the owner of this reservation the RC?
- * @rsv: the reservation
- */
-static inline bool uwb_rsv_is_owner(struct uwb_rsv *rsv)
-{
- return rsv->owner == &rsv->rc->uwb_dev;
-}
-
-/**
- * enum uwb_notifs - UWB events that can be passed to any listeners
- * @UWB_NOTIF_ONAIR: a new neighbour has joined the beacon group.
- * @UWB_NOTIF_OFFAIR: a neighbour has left the beacon group.
- *
- * Higher layers can register callback functions with the radio
- * controller using uwb_notifs_register(). The radio controller
- * maintains a list of all registered handlers and will notify all
- * nodes when an event occurs.
- */
-enum uwb_notifs {
- UWB_NOTIF_ONAIR,
- UWB_NOTIF_OFFAIR,
-};
-
-/* Callback function registered with UWB */
-struct uwb_notifs_handler {
- struct list_head list_node;
- void (*cb)(void *, struct uwb_dev *, enum uwb_notifs);
- void *data;
-};
-
-int uwb_notifs_register(struct uwb_rc *, struct uwb_notifs_handler *);
-int uwb_notifs_deregister(struct uwb_rc *, struct uwb_notifs_handler *);
-
-
-/**
- * UWB radio controller Event Size Entry (for creating entry tables)
- *
- * WUSB and WHCI define events and notifications, and they might have
- * fixed or variable size.
- *
- * Each event/notification has a size which is not necessarily known
- * in advance based on the event code. As well, vendor specific
- * events/notifications will have a size impossible to determine
- * unless we know about the device's specific details.
- *
- * It was way too smart of the spec writers not to think that it would
- * be impossible for a generic driver to skip over vendor specific
- * events/notifications if there are no LENGTH fields in the HEADER of
- * each message...the transaction size cannot be counted on as the
- * spec does not forbid to pack more than one event in a single
- * transaction.
- *
- * Thus, we guess sizes with tables (or for events, when you know the
- * size ahead of time you can use uwb_rc_neh_extra_size*()). We
- * register tables with the known events and their sizes, and then we
- * traverse those tables. For those with variable length, we provide a
- * way to lookup the size inside the event/notification's
- * payload. This allows device-specific event size tables to be
- * registered.
- *
- * @size: Size of the payload
- *
- * @offset: if != 0, at offset @offset-1 starts a field with a length
- * that has to be added to @size. The format of the field is
- * given by @type.
- *
- * @type: Type and length of the offset field. Most common is LE 16
- * bits (that's why that is zero); others are there mostly to
- * cover for bugs and weirdos.
- */
-struct uwb_est_entry {
- size_t size;
- unsigned offset;
- enum { UWB_EST_16 = 0, UWB_EST_8 = 1 } type;
-};
-
-int uwb_est_register(u8 type, u8 code_high, u16 vendor, u16 product,
- const struct uwb_est_entry *, size_t entries);
-int uwb_est_unregister(u8 type, u8 code_high, u16 vendor, u16 product,
- const struct uwb_est_entry *, size_t entries);
-ssize_t uwb_est_find_size(struct uwb_rc *rc, const struct uwb_rceb *rceb,
- size_t len);
-
-/* -- Misc */
-
-enum {
- EDC_MAX_ERRORS = 10,
- EDC_ERROR_TIMEFRAME = HZ,
-};
-
-/* error density counter */
-struct edc {
- unsigned long timestart;
- u16 errorcount;
-};
-
-static inline
-void edc_init(struct edc *edc)
-{
- edc->timestart = jiffies;
-}
-
-/* Called when an error occurred.
- * This is way to determine if the number of acceptable errors per time
- * period has been exceeded. It is not accurate as there are cases in which
- * this scheme will not work, for example if there are periodic occurrences
- * of errors that straddle updates to the start time. This scheme is
- * sufficient for our usage.
- *
- * @returns 1 if maximum acceptable errors per timeframe has been exceeded.
- */
-static inline int edc_inc(struct edc *err_hist, u16 max_err, u16 timeframe)
-{
- unsigned long now;
-
- now = jiffies;
- if (now - err_hist->timestart > timeframe) {
- err_hist->errorcount = 1;
- err_hist->timestart = now;
- } else if (++err_hist->errorcount > max_err) {
- err_hist->errorcount = 0;
- err_hist->timestart = now;
- return 1;
- }
- return 0;
-}
-
-
-/* Information Element handling */
-
-struct uwb_ie_hdr *uwb_ie_next(void **ptr, size_t *len);
-int uwb_rc_ie_add(struct uwb_rc *uwb_rc, const struct uwb_ie_hdr *ies, size_t size);
-int uwb_rc_ie_rm(struct uwb_rc *uwb_rc, enum uwb_ie element_id);
-
-/*
- * Transmission statistics
- *
- * UWB uses LQI and RSSI (one byte values) for reporting radio signal
- * strength and line quality indication. We do quick and dirty
- * averages of those. They are signed values, btw.
- *
- * For 8 bit quantities, we keep the min, the max, an accumulator
- * (@sigma) and a # of samples. When @samples gets to 255, we compute
- * the average (@sigma / @samples), place it in @sigma and reset
- * @samples to 1 (so we use it as the first sample).
- *
- * Now, statistically speaking, probably I am kicking the kidneys of
- * some books I have in my shelves collecting dust, but I just want to
- * get an approx, not the Nobel.
- *
- * LOCKING: there is no locking per se, but we try to keep a lockless
- * schema. Only _add_samples() modifies the values--as long as you
- * have other locking on top that makes sure that no two calls of
- * _add_sample() happen at the same time, then we are fine. Now, for
- * resetting the values we just set @samples to 0 and that makes the
- * next _add_sample() to start with defaults. Reading the values in
- * _show() currently can race, so you need to make sure the calls are
- * under the same lock that protects calls to _add_sample(). FIXME:
- * currently unlocked (It is not ultraprecise but does the trick. Bite
- * me).
- */
-struct stats {
- s8 min, max;
- s16 sigma;
- atomic_t samples;
-};
-
-static inline
-void stats_init(struct stats *stats)
-{
- atomic_set(&stats->samples, 0);
- wmb();
-}
-
-static inline
-void stats_add_sample(struct stats *stats, s8 sample)
-{
- s8 min, max;
- s16 sigma;
- unsigned samples = atomic_read(&stats->samples);
- if (samples == 0) { /* it was zero before, so we initialize */
- min = 127;
- max = -128;
- sigma = 0;
- } else {
- min = stats->min;
- max = stats->max;
- sigma = stats->sigma;
- }
-
- if (sample < min) /* compute new values */
- min = sample;
- else if (sample > max)
- max = sample;
- sigma += sample;
-
- stats->min = min; /* commit */
- stats->max = max;
- stats->sigma = sigma;
- if (atomic_add_return(1, &stats->samples) > 255) {
- /* wrapped around! reset */
- stats->sigma = sigma / 256;
- atomic_set(&stats->samples, 1);
- }
-}
-
-static inline ssize_t stats_show(struct stats *stats, char *buf)
-{
- int min, max, avg;
- int samples = atomic_read(&stats->samples);
- if (samples == 0)
- min = max = avg = 0;
- else {
- min = stats->min;
- max = stats->max;
- avg = stats->sigma / samples;
- }
- return scnprintf(buf, PAGE_SIZE, "%d %d %d\n", min, max, avg);
-}
-
-static inline ssize_t stats_store(struct stats *stats, const char *buf,
- size_t size)
-{
- stats_init(stats);
- return size;
-}
-
-#endif /* #ifndef __LINUX__UWB_H__ */
diff --git a/ANDROID_3.4.5/include/linux/uwb/debug-cmd.h b/ANDROID_3.4.5/include/linux/uwb/debug-cmd.h
deleted file mode 100644
index 8da004e2..00000000
--- a/ANDROID_3.4.5/include/linux/uwb/debug-cmd.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Ultra Wide Band
- * Debug interface commands
- *
- * Copyright (C) 2008 Cambridge Silicon Radio 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.
- *
- * 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, see <http://www.gnu.org/licenses/>.
- */
-#ifndef __LINUX__UWB__DEBUG_CMD_H__
-#define __LINUX__UWB__DEBUG_CMD_H__
-
-#include <linux/types.h>
-
-/*
- * Debug interface commands
- *
- * UWB_DBG_CMD_RSV_ESTABLISH: Establish a new unicast reservation.
- *
- * UWB_DBG_CMD_RSV_TERMINATE: Terminate the Nth reservation.
- */
-
-enum uwb_dbg_cmd_type {
- UWB_DBG_CMD_RSV_ESTABLISH = 1,
- UWB_DBG_CMD_RSV_TERMINATE = 2,
- UWB_DBG_CMD_IE_ADD = 3,
- UWB_DBG_CMD_IE_RM = 4,
- UWB_DBG_CMD_RADIO_START = 5,
- UWB_DBG_CMD_RADIO_STOP = 6,
-};
-
-struct uwb_dbg_cmd_rsv_establish {
- __u8 target[6];
- __u8 type;
- __u16 max_mas;
- __u16 min_mas;
- __u8 max_interval;
-};
-
-struct uwb_dbg_cmd_rsv_terminate {
- int index;
-};
-
-struct uwb_dbg_cmd_ie {
- __u8 data[128];
- int len;
-};
-
-struct uwb_dbg_cmd {
- __u32 type;
- union {
- struct uwb_dbg_cmd_rsv_establish rsv_establish;
- struct uwb_dbg_cmd_rsv_terminate rsv_terminate;
- struct uwb_dbg_cmd_ie ie_add;
- struct uwb_dbg_cmd_ie ie_rm;
- };
-};
-
-#endif /* #ifndef __LINUX__UWB__DEBUG_CMD_H__ */
diff --git a/ANDROID_3.4.5/include/linux/uwb/spec.h b/ANDROID_3.4.5/include/linux/uwb/spec.h
deleted file mode 100644
index b52e44f1..00000000
--- a/ANDROID_3.4.5/include/linux/uwb/spec.h
+++ /dev/null
@@ -1,780 +0,0 @@
-/*
- * Ultra Wide Band
- * UWB Standard definitions
- *
- * Copyright (C) 2005-2006 Intel Corporation
- * Inaky Perez-Gonzalez <inaky.perez-gonzalez@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.
- *
- * 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-1301, USA.
- *
- *
- * All these definitions are based on the ECMA-368 standard.
- *
- * Note all definitions are Little Endian in the wire, and we will
- * convert them to host order before operating on the bitfields (that
- * yes, we use extensively).
- */
-
-#ifndef __LINUX__UWB_SPEC_H__
-#define __LINUX__UWB_SPEC_H__
-
-#include <linux/types.h>
-#include <linux/bitmap.h>
-
-#define i1480_FW 0x00000303
-/* #define i1480_FW 0x00000302 */
-
-/**
- * Number of Medium Access Slots in a superframe.
- *
- * UWB divides time in SuperFrames, each one divided in 256 pieces, or
- * Medium Access Slots. See MBOA MAC[5.4.5] for details. The MAS is the
- * basic bandwidth allocation unit in UWB.
- */
-enum { UWB_NUM_MAS = 256 };
-
-/**
- * Number of Zones in superframe.
- *
- * UWB divides the superframe into zones with numbering starting from BPST.
- * See MBOA MAC[16.8.6]
- */
-enum { UWB_NUM_ZONES = 16 };
-
-/*
- * Number of MAS in a zone.
- */
-#define UWB_MAS_PER_ZONE (UWB_NUM_MAS / UWB_NUM_ZONES)
-
-/*
- * Number of MAS required before a row can be considered available.
- */
-#define UWB_USABLE_MAS_PER_ROW (UWB_NUM_ZONES - 1)
-
-/*
- * Number of streams per DRP reservation between a pair of devices.
- *
- * [ECMA-368] section 16.8.6.
- */
-enum { UWB_NUM_STREAMS = 8 };
-
-/*
- * mMasLength
- *
- * The length of a MAS in microseconds.
- *
- * [ECMA-368] section 17.16.
- */
-enum { UWB_MAS_LENGTH_US = 256 };
-
-/*
- * mBeaconSlotLength
- *
- * The length of the beacon slot in microseconds.
- *
- * [ECMA-368] section 17.16
- */
-enum { UWB_BEACON_SLOT_LENGTH_US = 85 };
-
-/*
- * mMaxLostBeacons
- *
- * The number beacons missing in consecutive superframes before a
- * device can be considered as unreachable.
- *
- * [ECMA-368] section 17.16
- */
-enum { UWB_MAX_LOST_BEACONS = 3 };
-
-/*
- * mDRPBackOffWinMin
- *
- * The minimum number of superframes to wait before trying to reserve
- * extra MAS.
- *
- * [ECMA-368] section 17.16
- */
-enum { UWB_DRP_BACKOFF_WIN_MIN = 2 };
-
-/*
- * mDRPBackOffWinMax
- *
- * The maximum number of superframes to wait before trying to reserve
- * extra MAS.
- *
- * [ECMA-368] section 17.16
- */
-enum { UWB_DRP_BACKOFF_WIN_MAX = 16 };
-
-/*
- * Length of a superframe in microseconds.
- */
-#define UWB_SUPERFRAME_LENGTH_US (UWB_MAS_LENGTH_US * UWB_NUM_MAS)
-
-/**
- * UWB MAC address
- *
- * It is *imperative* that this struct is exactly 6 packed bytes (as
- * it is also used to define headers sent down and up the wire/radio).
- */
-struct uwb_mac_addr {
- u8 data[6];
-} __attribute__((packed));
-
-
-/**
- * UWB device address
- *
- * It is *imperative* that this struct is exactly 6 packed bytes (as
- * it is also used to define headers sent down and up the wire/radio).
- */
-struct uwb_dev_addr {
- u8 data[2];
-} __attribute__((packed));
-
-
-/**
- * Types of UWB addresses
- *
- * Order matters (by size).
- */
-enum uwb_addr_type {
- UWB_ADDR_DEV = 0,
- UWB_ADDR_MAC = 1,
-};
-
-
-/** Size of a char buffer for printing a MAC/device address */
-enum { UWB_ADDR_STRSIZE = 32 };
-
-
-/** UWB WiMedia protocol IDs. */
-enum uwb_prid {
- UWB_PRID_WLP_RESERVED = 0x0000,
- UWB_PRID_WLP = 0x0001,
- UWB_PRID_WUSB_BOT = 0x0010,
- UWB_PRID_WUSB = 0x0010,
- UWB_PRID_WUSB_TOP = 0x001F,
-};
-
-
-/** PHY Rate (MBOA MAC[7.8.12, Table 61]) */
-enum uwb_phy_rate {
- UWB_PHY_RATE_53 = 0,
- UWB_PHY_RATE_80,
- UWB_PHY_RATE_106,
- UWB_PHY_RATE_160,
- UWB_PHY_RATE_200,
- UWB_PHY_RATE_320,
- UWB_PHY_RATE_400,
- UWB_PHY_RATE_480,
- UWB_PHY_RATE_INVALID
-};
-
-
-/**
- * Different ways to scan (MBOA MAC[6.2.2, Table 8], WUSB[Table 8-78])
- */
-enum uwb_scan_type {
- UWB_SCAN_ONLY = 0,
- UWB_SCAN_OUTSIDE_BP,
- UWB_SCAN_WHILE_INACTIVE,
- UWB_SCAN_DISABLED,
- UWB_SCAN_ONLY_STARTTIME,
- UWB_SCAN_TOP
-};
-
-
-/** ACK Policy types (MBOA MAC[7.2.1.3]) */
-enum uwb_ack_pol {
- UWB_ACK_NO = 0,
- UWB_ACK_INM = 1,
- UWB_ACK_B = 2,
- UWB_ACK_B_REQ = 3,
-};
-
-
-/** DRP reservation types ([ECMA-368 table 106) */
-enum uwb_drp_type {
- UWB_DRP_TYPE_ALIEN_BP = 0,
- UWB_DRP_TYPE_HARD,
- UWB_DRP_TYPE_SOFT,
- UWB_DRP_TYPE_PRIVATE,
- UWB_DRP_TYPE_PCA,
-};
-
-
-/** DRP Reason Codes ([ECMA-368] table 107) */
-enum uwb_drp_reason {
- UWB_DRP_REASON_ACCEPTED = 0,
- UWB_DRP_REASON_CONFLICT,
- UWB_DRP_REASON_PENDING,
- UWB_DRP_REASON_DENIED,
- UWB_DRP_REASON_MODIFIED,
-};
-
-/** Relinquish Request Reason Codes ([ECMA-368] table 113) */
-enum uwb_relinquish_req_reason {
- UWB_RELINQUISH_REQ_REASON_NON_SPECIFIC = 0,
- UWB_RELINQUISH_REQ_REASON_OVER_ALLOCATION,
-};
-
-/**
- * DRP Notification Reason Codes (WHCI 0.95 [3.1.4.9])
- */
-enum uwb_drp_notif_reason {
- UWB_DRP_NOTIF_DRP_IE_RCVD = 0,
- UWB_DRP_NOTIF_CONFLICT,
- UWB_DRP_NOTIF_TERMINATE,
-};
-
-
-/** Allocation of MAS slots in a DRP request MBOA MAC[7.8.7] */
-struct uwb_drp_alloc {
- __le16 zone_bm;
- __le16 mas_bm;
-} __attribute__((packed));
-
-
-/** General MAC Header format (ECMA-368[16.2]) */
-struct uwb_mac_frame_hdr {
- __le16 Frame_Control;
- struct uwb_dev_addr DestAddr;
- struct uwb_dev_addr SrcAddr;
- __le16 Sequence_Control;
- __le16 Access_Information;
-} __attribute__((packed));
-
-
-/**
- * uwb_beacon_frame - a beacon frame including MAC headers
- *
- * [ECMA] section 16.3.
- */
-struct uwb_beacon_frame {
- struct uwb_mac_frame_hdr hdr;
- struct uwb_mac_addr Device_Identifier; /* may be a NULL EUI-48 */
- u8 Beacon_Slot_Number;
- u8 Device_Control;
- u8 IEData[];
-} __attribute__((packed));
-
-
-/** Information Element codes (MBOA MAC[T54]) */
-enum uwb_ie {
- UWB_PCA_AVAILABILITY = 2,
- UWB_IE_DRP_AVAILABILITY = 8,
- UWB_IE_DRP = 9,
- UWB_BP_SWITCH_IE = 11,
- UWB_MAC_CAPABILITIES_IE = 12,
- UWB_PHY_CAPABILITIES_IE = 13,
- UWB_APP_SPEC_PROBE_IE = 15,
- UWB_IDENTIFICATION_IE = 19,
- UWB_MASTER_KEY_ID_IE = 20,
- UWB_RELINQUISH_REQUEST_IE = 21,
- UWB_IE_WLP = 250, /* WiMedia Logical Link Control Protocol WLP 0.99 */
- UWB_APP_SPEC_IE = 255,
-};
-
-
-/**
- * Header common to all Information Elements (IEs)
- */
-struct uwb_ie_hdr {
- u8 element_id; /* enum uwb_ie */
- u8 length;
-} __attribute__((packed));
-
-
-/** Dynamic Reservation Protocol IE (MBOA MAC[7.8.6]) */
-struct uwb_ie_drp {
- struct uwb_ie_hdr hdr;
- __le16 drp_control;
- struct uwb_dev_addr dev_addr;
- struct uwb_drp_alloc allocs[];
-} __attribute__((packed));
-
-static inline int uwb_ie_drp_type(struct uwb_ie_drp *ie)
-{
- return (le16_to_cpu(ie->drp_control) >> 0) & 0x7;
-}
-
-static inline int uwb_ie_drp_stream_index(struct uwb_ie_drp *ie)
-{
- return (le16_to_cpu(ie->drp_control) >> 3) & 0x7;
-}
-
-static inline int uwb_ie_drp_reason_code(struct uwb_ie_drp *ie)
-{
- return (le16_to_cpu(ie->drp_control) >> 6) & 0x7;
-}
-
-static inline int uwb_ie_drp_status(struct uwb_ie_drp *ie)
-{
- return (le16_to_cpu(ie->drp_control) >> 9) & 0x1;
-}
-
-static inline int uwb_ie_drp_owner(struct uwb_ie_drp *ie)
-{
- return (le16_to_cpu(ie->drp_control) >> 10) & 0x1;
-}
-
-static inline int uwb_ie_drp_tiebreaker(struct uwb_ie_drp *ie)
-{
- return (le16_to_cpu(ie->drp_control) >> 11) & 0x1;
-}
-
-static inline int uwb_ie_drp_unsafe(struct uwb_ie_drp *ie)
-{
- return (le16_to_cpu(ie->drp_control) >> 12) & 0x1;
-}
-
-static inline void uwb_ie_drp_set_type(struct uwb_ie_drp *ie, enum uwb_drp_type type)
-{
- u16 drp_control = le16_to_cpu(ie->drp_control);
- drp_control = (drp_control & ~(0x7 << 0)) | (type << 0);
- ie->drp_control = cpu_to_le16(drp_control);
-}
-
-static inline void uwb_ie_drp_set_stream_index(struct uwb_ie_drp *ie, int stream_index)
-{
- u16 drp_control = le16_to_cpu(ie->drp_control);
- drp_control = (drp_control & ~(0x7 << 3)) | (stream_index << 3);
- ie->drp_control = cpu_to_le16(drp_control);
-}
-
-static inline void uwb_ie_drp_set_reason_code(struct uwb_ie_drp *ie,
- enum uwb_drp_reason reason_code)
-{
- u16 drp_control = le16_to_cpu(ie->drp_control);
- drp_control = (ie->drp_control & ~(0x7 << 6)) | (reason_code << 6);
- ie->drp_control = cpu_to_le16(drp_control);
-}
-
-static inline void uwb_ie_drp_set_status(struct uwb_ie_drp *ie, int status)
-{
- u16 drp_control = le16_to_cpu(ie->drp_control);
- drp_control = (drp_control & ~(0x1 << 9)) | (status << 9);
- ie->drp_control = cpu_to_le16(drp_control);
-}
-
-static inline void uwb_ie_drp_set_owner(struct uwb_ie_drp *ie, int owner)
-{
- u16 drp_control = le16_to_cpu(ie->drp_control);
- drp_control = (drp_control & ~(0x1 << 10)) | (owner << 10);
- ie->drp_control = cpu_to_le16(drp_control);
-}
-
-static inline void uwb_ie_drp_set_tiebreaker(struct uwb_ie_drp *ie, int tiebreaker)
-{
- u16 drp_control = le16_to_cpu(ie->drp_control);
- drp_control = (drp_control & ~(0x1 << 11)) | (tiebreaker << 11);
- ie->drp_control = cpu_to_le16(drp_control);
-}
-
-static inline void uwb_ie_drp_set_unsafe(struct uwb_ie_drp *ie, int unsafe)
-{
- u16 drp_control = le16_to_cpu(ie->drp_control);
- drp_control = (drp_control & ~(0x1 << 12)) | (unsafe << 12);
- ie->drp_control = cpu_to_le16(drp_control);
-}
-
-/** Dynamic Reservation Protocol IE (MBOA MAC[7.8.7]) */
-struct uwb_ie_drp_avail {
- struct uwb_ie_hdr hdr;
- DECLARE_BITMAP(bmp, UWB_NUM_MAS);
-} __attribute__((packed));
-
-/* Relinqish Request IE ([ECMA-368] section 16.8.19). */
-struct uwb_relinquish_request_ie {
- struct uwb_ie_hdr hdr;
- __le16 relinquish_req_control;
- struct uwb_dev_addr dev_addr;
- struct uwb_drp_alloc allocs[];
-} __attribute__((packed));
-
-static inline int uwb_ie_relinquish_req_reason_code(struct uwb_relinquish_request_ie *ie)
-{
- return (le16_to_cpu(ie->relinquish_req_control) >> 0) & 0xf;
-}
-
-static inline void uwb_ie_relinquish_req_set_reason_code(struct uwb_relinquish_request_ie *ie,
- int reason_code)
-{
- u16 ctrl = le16_to_cpu(ie->relinquish_req_control);
- ctrl = (ctrl & ~(0xf << 0)) | (reason_code << 0);
- ie->relinquish_req_control = cpu_to_le16(ctrl);
-}
-
-/**
- * The Vendor ID is set to an OUI that indicates the vendor of the device.
- * ECMA-368 [16.8.10]
- */
-struct uwb_vendor_id {
- u8 data[3];
-} __attribute__((packed));
-
-/**
- * The device type ID
- * FIXME: clarify what this means
- * ECMA-368 [16.8.10]
- */
-struct uwb_device_type_id {
- u8 data[3];
-} __attribute__((packed));
-
-
-/**
- * UWB device information types
- * ECMA-368 [16.8.10]
- */
-enum uwb_dev_info_type {
- UWB_DEV_INFO_VENDOR_ID = 0,
- UWB_DEV_INFO_VENDOR_TYPE,
- UWB_DEV_INFO_NAME,
-};
-
-/**
- * UWB device information found in Identification IE
- * ECMA-368 [16.8.10]
- */
-struct uwb_dev_info {
- u8 type; /* enum uwb_dev_info_type */
- u8 length;
- u8 data[];
-} __attribute__((packed));
-
-/**
- * UWB Identification IE
- * ECMA-368 [16.8.10]
- */
-struct uwb_identification_ie {
- struct uwb_ie_hdr hdr;
- struct uwb_dev_info info[];
-} __attribute__((packed));
-
-/*
- * UWB Radio Controller
- *
- * These definitions are common to the Radio Control layers as
- * exported by the WUSB1.0 HWA and WHCI interfaces.
- */
-
-/** Radio Control Command Block (WUSB1.0[Table 8-65] and WHCI 0.95) */
-struct uwb_rccb {
- u8 bCommandType; /* enum hwa_cet */
- __le16 wCommand; /* Command code */
- u8 bCommandContext; /* Context ID */
-} __attribute__((packed));
-
-
-/** Radio Control Event Block (WUSB[table 8-66], WHCI 0.95) */
-struct uwb_rceb {
- u8 bEventType; /* enum hwa_cet */
- __le16 wEvent; /* Event code */
- u8 bEventContext; /* Context ID */
-} __attribute__((packed));
-
-
-enum {
- UWB_RC_CET_GENERAL = 0, /* General Command/Event type */
- UWB_RC_CET_EX_TYPE_1 = 1, /* Extended Type 1 Command/Event type */
-};
-
-/* Commands to the radio controller */
-enum uwb_rc_cmd {
- UWB_RC_CMD_CHANNEL_CHANGE = 16,
- UWB_RC_CMD_DEV_ADDR_MGMT = 17, /* Device Address Management */
- UWB_RC_CMD_GET_IE = 18, /* GET Information Elements */
- UWB_RC_CMD_RESET = 19,
- UWB_RC_CMD_SCAN = 20, /* Scan management */
- UWB_RC_CMD_SET_BEACON_FILTER = 21,
- UWB_RC_CMD_SET_DRP_IE = 22, /* Dynamic Reservation Protocol IEs */
- UWB_RC_CMD_SET_IE = 23, /* Information Element management */
- UWB_RC_CMD_SET_NOTIFICATION_FILTER = 24,
- UWB_RC_CMD_SET_TX_POWER = 25,
- UWB_RC_CMD_SLEEP = 26,
- UWB_RC_CMD_START_BEACON = 27,
- UWB_RC_CMD_STOP_BEACON = 28,
- UWB_RC_CMD_BP_MERGE = 29,
- UWB_RC_CMD_SEND_COMMAND_FRAME = 30,
- UWB_RC_CMD_SET_ASIE_NOTIF = 31,
-};
-
-/* Notifications from the radio controller */
-enum uwb_rc_evt {
- UWB_RC_EVT_IE_RCV = 0,
- UWB_RC_EVT_BEACON = 1,
- UWB_RC_EVT_BEACON_SIZE = 2,
- UWB_RC_EVT_BPOIE_CHANGE = 3,
- UWB_RC_EVT_BP_SLOT_CHANGE = 4,
- UWB_RC_EVT_BP_SWITCH_IE_RCV = 5,
- UWB_RC_EVT_DEV_ADDR_CONFLICT = 6,
- UWB_RC_EVT_DRP_AVAIL = 7,
- UWB_RC_EVT_DRP = 8,
- UWB_RC_EVT_BP_SWITCH_STATUS = 9,
- UWB_RC_EVT_CMD_FRAME_RCV = 10,
- UWB_RC_EVT_CHANNEL_CHANGE_IE_RCV = 11,
- /* Events (command responses) use the same code as the command */
- UWB_RC_EVT_UNKNOWN_CMD_RCV = 65535,
-};
-
-enum uwb_rc_extended_type_1_cmd {
- UWB_RC_SET_DAA_ENERGY_MASK = 32,
- UWB_RC_SET_NOTIFICATION_FILTER_EX = 33,
-};
-
-enum uwb_rc_extended_type_1_evt {
- UWB_RC_DAA_ENERGY_DETECTED = 0,
-};
-
-/* Radio Control Result Code. [WHCI] table 3-3. */
-enum {
- UWB_RC_RES_SUCCESS = 0,
- UWB_RC_RES_FAIL,
- UWB_RC_RES_FAIL_HARDWARE,
- UWB_RC_RES_FAIL_NO_SLOTS,
- UWB_RC_RES_FAIL_BEACON_TOO_LARGE,
- UWB_RC_RES_FAIL_INVALID_PARAMETER,
- UWB_RC_RES_FAIL_UNSUPPORTED_PWR_LEVEL,
- UWB_RC_RES_FAIL_INVALID_IE_DATA,
- UWB_RC_RES_FAIL_BEACON_SIZE_EXCEEDED,
- UWB_RC_RES_FAIL_CANCELLED,
- UWB_RC_RES_FAIL_INVALID_STATE,
- UWB_RC_RES_FAIL_INVALID_SIZE,
- UWB_RC_RES_FAIL_ACK_NOT_RECEIVED,
- UWB_RC_RES_FAIL_NO_MORE_ASIE_NOTIF,
- UWB_RC_RES_FAIL_TIME_OUT = 255,
-};
-
-/* Confirm event. [WHCI] section 3.1.3.1 etc. */
-struct uwb_rc_evt_confirm {
- struct uwb_rceb rceb;
- u8 bResultCode;
-} __attribute__((packed));
-
-/* Device Address Management event. [WHCI] section 3.1.3.2. */
-struct uwb_rc_evt_dev_addr_mgmt {
- struct uwb_rceb rceb;
- u8 baAddr[6];
- u8 bResultCode;
-} __attribute__((packed));
-
-
-/* Get IE Event. [WHCI] section 3.1.3.3. */
-struct uwb_rc_evt_get_ie {
- struct uwb_rceb rceb;
- __le16 wIELength;
- u8 IEData[];
-} __attribute__((packed));
-
-/* Set DRP IE Event. [WHCI] section 3.1.3.7. */
-struct uwb_rc_evt_set_drp_ie {
- struct uwb_rceb rceb;
- __le16 wRemainingSpace;
- u8 bResultCode;
-} __attribute__((packed));
-
-/* Set IE Event. [WHCI] section 3.1.3.8. */
-struct uwb_rc_evt_set_ie {
- struct uwb_rceb rceb;
- __le16 RemainingSpace;
- u8 bResultCode;
-} __attribute__((packed));
-
-/* Scan command. [WHCI] 3.1.3.5. */
-struct uwb_rc_cmd_scan {
- struct uwb_rccb rccb;
- u8 bChannelNumber;
- u8 bScanState;
- __le16 wStartTime;
-} __attribute__((packed));
-
-/* Set DRP IE command. [WHCI] section 3.1.3.7. */
-struct uwb_rc_cmd_set_drp_ie {
- struct uwb_rccb rccb;
- __le16 wIELength;
- struct uwb_ie_drp IEData[];
-} __attribute__((packed));
-
-/* Set IE command. [WHCI] section 3.1.3.8. */
-struct uwb_rc_cmd_set_ie {
- struct uwb_rccb rccb;
- __le16 wIELength;
- u8 IEData[];
-} __attribute__((packed));
-
-/* Set DAA Energy Mask event. [WHCI 0.96] section 3.1.3.17. */
-struct uwb_rc_evt_set_daa_energy_mask {
- struct uwb_rceb rceb;
- __le16 wLength;
- u8 result;
-} __attribute__((packed));
-
-/* Set Notification Filter Extended event. [WHCI 0.96] section 3.1.3.18. */
-struct uwb_rc_evt_set_notification_filter_ex {
- struct uwb_rceb rceb;
- __le16 wLength;
- u8 result;
-} __attribute__((packed));
-
-/* IE Received notification. [WHCI] section 3.1.4.1. */
-struct uwb_rc_evt_ie_rcv {
- struct uwb_rceb rceb;
- struct uwb_dev_addr SrcAddr;
- __le16 wIELength;
- u8 IEData[];
-} __attribute__((packed));
-
-/* Type of the received beacon. [WHCI] section 3.1.4.2. */
-enum uwb_rc_beacon_type {
- UWB_RC_BEACON_TYPE_SCAN = 0,
- UWB_RC_BEACON_TYPE_NEIGHBOR,
- UWB_RC_BEACON_TYPE_OL_ALIEN,
- UWB_RC_BEACON_TYPE_NOL_ALIEN,
-};
-
-/* Beacon received notification. [WHCI] 3.1.4.2. */
-struct uwb_rc_evt_beacon {
- struct uwb_rceb rceb;
- u8 bChannelNumber;
- u8 bBeaconType;
- __le16 wBPSTOffset;
- u8 bLQI;
- u8 bRSSI;
- __le16 wBeaconInfoLength;
- u8 BeaconInfo[];
-} __attribute__((packed));
-
-
-/* Beacon Size Change notification. [WHCI] section 3.1.4.3 */
-struct uwb_rc_evt_beacon_size {
- struct uwb_rceb rceb;
- __le16 wNewBeaconSize;
-} __attribute__((packed));
-
-
-/* BPOIE Change notification. [WHCI] section 3.1.4.4. */
-struct uwb_rc_evt_bpoie_change {
- struct uwb_rceb rceb;
- __le16 wBPOIELength;
- u8 BPOIE[];
-} __attribute__((packed));
-
-
-/* Beacon Slot Change notification. [WHCI] section 3.1.4.5. */
-struct uwb_rc_evt_bp_slot_change {
- struct uwb_rceb rceb;
- u8 slot_info;
-} __attribute__((packed));
-
-static inline int uwb_rc_evt_bp_slot_change_slot_num(
- const struct uwb_rc_evt_bp_slot_change *evt)
-{
- return evt->slot_info & 0x7f;
-}
-
-static inline int uwb_rc_evt_bp_slot_change_no_slot(
- const struct uwb_rc_evt_bp_slot_change *evt)
-{
- return (evt->slot_info & 0x80) >> 7;
-}
-
-/* BP Switch IE Received notification. [WHCI] section 3.1.4.6. */
-struct uwb_rc_evt_bp_switch_ie_rcv {
- struct uwb_rceb rceb;
- struct uwb_dev_addr wSrcAddr;
- __le16 wIELength;
- u8 IEData[];
-} __attribute__((packed));
-
-/* DevAddr Conflict notification. [WHCI] section 3.1.4.7. */
-struct uwb_rc_evt_dev_addr_conflict {
- struct uwb_rceb rceb;
-} __attribute__((packed));
-
-/* DRP notification. [WHCI] section 3.1.4.9. */
-struct uwb_rc_evt_drp {
- struct uwb_rceb rceb;
- struct uwb_dev_addr src_addr;
- u8 reason;
- u8 beacon_slot_number;
- __le16 ie_length;
- u8 ie_data[];
-} __attribute__((packed));
-
-static inline enum uwb_drp_notif_reason uwb_rc_evt_drp_reason(struct uwb_rc_evt_drp *evt)
-{
- return evt->reason & 0x0f;
-}
-
-
-/* DRP Availability Change notification. [WHCI] section 3.1.4.8. */
-struct uwb_rc_evt_drp_avail {
- struct uwb_rceb rceb;
- DECLARE_BITMAP(bmp, UWB_NUM_MAS);
-} __attribute__((packed));
-
-/* BP switch status notification. [WHCI] section 3.1.4.10. */
-struct uwb_rc_evt_bp_switch_status {
- struct uwb_rceb rceb;
- u8 status;
- u8 slot_offset;
- __le16 bpst_offset;
- u8 move_countdown;
-} __attribute__((packed));
-
-/* Command Frame Received notification. [WHCI] section 3.1.4.11. */
-struct uwb_rc_evt_cmd_frame_rcv {
- struct uwb_rceb rceb;
- __le16 receive_time;
- struct uwb_dev_addr wSrcAddr;
- struct uwb_dev_addr wDstAddr;
- __le16 control;
- __le16 reserved;
- __le16 dataLength;
- u8 data[];
-} __attribute__((packed));
-
-/* Channel Change IE Received notification. [WHCI] section 3.1.4.12. */
-struct uwb_rc_evt_channel_change_ie_rcv {
- struct uwb_rceb rceb;
- struct uwb_dev_addr wSrcAddr;
- __le16 wIELength;
- u8 IEData[];
-} __attribute__((packed));
-
-/* DAA Energy Detected notification. [WHCI 0.96] section 3.1.4.14. */
-struct uwb_rc_evt_daa_energy_detected {
- struct uwb_rceb rceb;
- __le16 wLength;
- u8 bandID;
- u8 reserved;
- u8 toneBmp[16];
-} __attribute__((packed));
-
-
-/**
- * Radio Control Interface Class Descriptor
- *
- * WUSB 1.0 [8.6.1.2]
- */
-struct uwb_rc_control_intf_class_desc {
- u8 bLength;
- u8 bDescriptorType;
- __le16 bcdRCIVersion;
-} __attribute__((packed));
-
-#endif /* #ifndef __LINUX__UWB_SPEC_H__ */
diff --git a/ANDROID_3.4.5/include/linux/uwb/umc.h b/ANDROID_3.4.5/include/linux/uwb/umc.h
deleted file mode 100644
index 891d1d5f..00000000
--- a/ANDROID_3.4.5/include/linux/uwb/umc.h
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
- * UWB Multi-interface Controller support.
- *
- * Copyright (C) 2007 Cambridge Silicon Radio Ltd.
- *
- * This file is released under the GPLv2
- *
- * UMC (UWB Multi-interface Controller) capabilities (e.g., radio
- * controller, host controller) are presented as devices on the "umc"
- * bus.
- *
- * The radio controller is not strictly a UMC capability but it's
- * useful to present it as such.
- *
- * References:
- *
- * [WHCI] Wireless Host Controller Interface Specification for
- * Certified Wireless Universal Serial Bus, revision 0.95.
- *
- * How this works is kind of convoluted but simple. The whci.ko driver
- * loads when WHCI devices are detected. These WHCI devices expose
- * many devices in the same PCI function (they couldn't have reused
- * functions, no), so for each PCI function that exposes these many
- * devices, whci ceates a umc_dev [whci_probe() -> whci_add_cap()]
- * with umc_device_create() and adds it to the bus with
- * umc_device_register().
- *
- * umc_device_register() calls device_register() which will push the
- * bus management code to load your UMC driver's somehting_probe()
- * that you have registered for that capability code.
- *
- * Now when the WHCI device is removed, whci_remove() will go over
- * each umc_dev assigned to each of the PCI function's capabilities
- * and through whci_del_cap() call umc_device_unregister() each
- * created umc_dev. Of course, if you are bound to the device, your
- * driver's something_remove() will be called.
- */
-
-#ifndef _LINUX_UWB_UMC_H_
-#define _LINUX_UWB_UMC_H_
-
-#include <linux/device.h>
-#include <linux/pci.h>
-
-/*
- * UMC capability IDs.
- *
- * 0x00 is reserved so use it for the radio controller device.
- *
- * [WHCI] table 2-8
- */
-#define UMC_CAP_ID_WHCI_RC 0x00 /* radio controller */
-#define UMC_CAP_ID_WHCI_WUSB_HC 0x01 /* WUSB host controller */
-
-/**
- * struct umc_dev - UMC capability device
- *
- * @version: version of the specification this capability conforms to.
- * @cap_id: capability ID.
- * @bar: PCI Bar (64 bit) where the resource lies
- * @resource: register space resource.
- * @irq: interrupt line.
- */
-struct umc_dev {
- u16 version;
- u8 cap_id;
- u8 bar;
- struct resource resource;
- unsigned irq;
- struct device dev;
-};
-
-#define to_umc_dev(d) container_of(d, struct umc_dev, dev)
-
-/**
- * struct umc_driver - UMC capability driver
- * @cap_id: supported capability ID.
- * @match: driver specific capability matching function.
- * @match_data: driver specific data for match() (e.g., a
- * table of pci_device_id's if umc_match_pci_id() is used).
- */
-struct umc_driver {
- char *name;
- u8 cap_id;
- int (*match)(struct umc_driver *, struct umc_dev *);
- const void *match_data;
-
- int (*probe)(struct umc_dev *);
- void (*remove)(struct umc_dev *);
- int (*suspend)(struct umc_dev *, pm_message_t state);
- int (*resume)(struct umc_dev *);
- int (*pre_reset)(struct umc_dev *);
- int (*post_reset)(struct umc_dev *);
-
- struct device_driver driver;
-};
-
-#define to_umc_driver(d) container_of(d, struct umc_driver, driver)
-
-extern struct bus_type umc_bus_type;
-
-struct umc_dev *umc_device_create(struct device *parent, int n);
-int __must_check umc_device_register(struct umc_dev *umc);
-void umc_device_unregister(struct umc_dev *umc);
-
-int __must_check __umc_driver_register(struct umc_driver *umc_drv,
- struct module *mod,
- const char *mod_name);
-
-/**
- * umc_driver_register - register a UMC capabiltity driver.
- * @umc_drv: pointer to the driver.
- */
-#define umc_driver_register(umc_drv) \
- __umc_driver_register(umc_drv, THIS_MODULE, KBUILD_MODNAME)
-
-void umc_driver_unregister(struct umc_driver *umc_drv);
-
-/*
- * Utility function you can use to match (umc_driver->match) against a
- * null-terminated array of 'struct pci_device_id' in
- * umc_driver->match_data.
- */
-int umc_match_pci_id(struct umc_driver *umc_drv, struct umc_dev *umc);
-
-/**
- * umc_parent_pci_dev - return the UMC's parent PCI device or NULL if none
- * @umc_dev: UMC device whose parent PCI device we are looking for
- *
- * DIRTY!!! DON'T RELY ON THIS
- *
- * FIXME: This is as dirty as it gets, but we need some way to check
- * the correct type of umc_dev->parent (so that for example, we can
- * cast to pci_dev). Casting to pci_dev is necessary because at some
- * point we need to request resources from the device. Mapping is
- * easily over come (ioremap and stuff are bus agnostic), but hooking
- * up to some error handlers (such as pci error handlers) might need
- * this.
- *
- * THIS might (probably will) be removed in the future, so don't count
- * on it.
- */
-static inline struct pci_dev *umc_parent_pci_dev(struct umc_dev *umc_dev)
-{
- struct pci_dev *pci_dev = NULL;
- if (umc_dev->dev.parent->bus == &pci_bus_type)
- pci_dev = to_pci_dev(umc_dev->dev.parent);
- return pci_dev;
-}
-
-/**
- * umc_dev_get() - reference a UMC device.
- * @umc_dev: Pointer to UMC device.
- *
- * NOTE: we are assuming in this whole scheme that the parent device
- * is referenced at _probe() time and unreferenced at _remove()
- * time by the parent's subsystem.
- */
-static inline struct umc_dev *umc_dev_get(struct umc_dev *umc_dev)
-{
- get_device(&umc_dev->dev);
- return umc_dev;
-}
-
-/**
- * umc_dev_put() - unreference a UMC device.
- * @umc_dev: Pointer to UMC device.
- */
-static inline void umc_dev_put(struct umc_dev *umc_dev)
-{
- put_device(&umc_dev->dev);
-}
-
-/**
- * umc_set_drvdata - set UMC device's driver data.
- * @umc_dev: Pointer to UMC device.
- * @data: Data to set.
- */
-static inline void umc_set_drvdata(struct umc_dev *umc_dev, void *data)
-{
- dev_set_drvdata(&umc_dev->dev, data);
-}
-
-/**
- * umc_get_drvdata - recover UMC device's driver data.
- * @umc_dev: Pointer to UMC device.
- */
-static inline void *umc_get_drvdata(struct umc_dev *umc_dev)
-{
- return dev_get_drvdata(&umc_dev->dev);
-}
-
-int umc_controller_reset(struct umc_dev *umc);
-
-#endif /* #ifndef _LINUX_UWB_UMC_H_ */
diff --git a/ANDROID_3.4.5/include/linux/uwb/whci.h b/ANDROID_3.4.5/include/linux/uwb/whci.h
deleted file mode 100644
index 915ec230..00000000
--- a/ANDROID_3.4.5/include/linux/uwb/whci.h
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Wireless Host Controller Interface for Ultra-Wide-Band and Wireless USB
- *
- * Copyright (C) 2005-2006 Intel Corporation
- * Inaky Perez-Gonzalez <inaky.perez-gonzalez@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.
- *
- * 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-1301, USA.
- *
- *
- *
- * References:
- * [WHCI] Wireless Host Controller Interface Specification for
- * Certified Wireless Universal Serial Bus, revision 0.95.
- */
-#ifndef _LINUX_UWB_WHCI_H_
-#define _LINUX_UWB_WHCI_H_
-
-#include <linux/pci.h>
-
-/*
- * UWB interface capability registers (offsets from UWBBASE)
- *
- * [WHCI] section 2.2
- */
-#define UWBCAPINFO 0x00 /* == UWBCAPDATA(0) */
-# define UWBCAPINFO_TO_N_CAPS(c) (((c) >> 0) & 0xFull)
-#define UWBCAPDATA(n) (8*(n))
-# define UWBCAPDATA_TO_VERSION(c) (((c) >> 32) & 0xFFFFull)
-# define UWBCAPDATA_TO_OFFSET(c) (((c) >> 18) & 0x3FFFull)
-# define UWBCAPDATA_TO_BAR(c) (((c) >> 16) & 0x3ull)
-# define UWBCAPDATA_TO_SIZE(c) ((((c) >> 8) & 0xFFull) * sizeof(u32))
-# define UWBCAPDATA_TO_CAP_ID(c) (((c) >> 0) & 0xFFull)
-
-/* Size of the WHCI capability data (including the RC capability) for
- a device with n capabilities. */
-#define UWBCAPDATA_SIZE(n) (8 + 8*(n))
-
-
-/*
- * URC registers (offsets from URCBASE)
- *
- * [WHCI] section 2.3
- */
-#define URCCMD 0x00
-# define URCCMD_RESET (1 << 31) /* UMC Hardware reset */
-# define URCCMD_RS (1 << 30) /* Run/Stop */
-# define URCCMD_EARV (1 << 29) /* Event Address Register Valid */
-# define URCCMD_ACTIVE (1 << 15) /* Command is active */
-# define URCCMD_IWR (1 << 14) /* Interrupt When Ready */
-# define URCCMD_SIZE_MASK 0x00000fff /* Command size mask */
-#define URCSTS 0x04
-# define URCSTS_EPS (1 << 17) /* Event Processing Status */
-# define URCSTS_HALTED (1 << 16) /* RC halted */
-# define URCSTS_HSE (1 << 10) /* Host System Error...fried */
-# define URCSTS_ER (1 << 9) /* Event Ready */
-# define URCSTS_RCI (1 << 8) /* Ready for Command Interrupt */
-# define URCSTS_INT_MASK 0x00000700 /* URC interrupt sources */
-# define URCSTS_ISI 0x000000ff /* Interrupt Source Identification */
-#define URCINTR 0x08
-# define URCINTR_EN_ALL 0x000007ff /* Enable all interrupt sources */
-#define URCCMDADDR 0x10
-#define URCEVTADDR 0x18
-# define URCEVTADDR_OFFSET_MASK 0xfff /* Event pointer offset mask */
-
-
-/** Write 32 bit @value to little endian register at @addr */
-static inline
-void le_writel(u32 value, void __iomem *addr)
-{
- iowrite32(value, addr);
-}
-
-
-/** Read from 32 bit little endian register at @addr */
-static inline
-u32 le_readl(void __iomem *addr)
-{
- return ioread32(addr);
-}
-
-
-/** Write 64 bit @value to little endian register at @addr */
-static inline
-void le_writeq(u64 value, void __iomem *addr)
-{
- iowrite32(value, addr);
- iowrite32(value >> 32, addr + 4);
-}
-
-
-/** Read from 64 bit little endian register at @addr */
-static inline
-u64 le_readq(void __iomem *addr)
-{
- u64 value;
- value = ioread32(addr);
- value |= (u64)ioread32(addr + 4) << 32;
- return value;
-}
-
-extern int whci_wait_for(struct device *dev, u32 __iomem *reg,
- u32 mask, u32 result,
- unsigned long max_ms, const char *tag);
-
-#endif /* #ifndef _LINUX_UWB_WHCI_H_ */
diff --git a/ANDROID_3.4.5/include/linux/v4l2-mediabus.h b/ANDROID_3.4.5/include/linux/v4l2-mediabus.h
deleted file mode 100644
index 5ea7f753..00000000
--- a/ANDROID_3.4.5/include/linux/v4l2-mediabus.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Media Bus API header
- *
- * Copyright (C) 2009, Guennadi Liakhovetski <g.liakhovetski@gmx.de>
- *
- * 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.
- */
-
-#ifndef __LINUX_V4L2_MEDIABUS_H
-#define __LINUX_V4L2_MEDIABUS_H
-
-#include <linux/types.h>
-#include <linux/videodev2.h>
-
-/*
- * These pixel codes uniquely identify data formats on the media bus. Mostly
- * they correspond to similarly named V4L2_PIX_FMT_* formats, format 0 is
- * reserved, V4L2_MBUS_FMT_FIXED shall be used by host-client pairs, where the
- * data format is fixed. Additionally, "2X8" means that one pixel is transferred
- * in two 8-bit samples, "BE" or "LE" specify in which order those samples are
- * transferred over the bus: "LE" means that the least significant bits are
- * transferred first, "BE" means that the most significant bits are transferred
- * first, and "PADHI" and "PADLO" define which bits - low or high, in the
- * incomplete high byte, are filled with padding bits.
- *
- * The pixel codes are grouped by type, bus_width, bits per component, samples
- * per pixel and order of subsamples. Numerical values are sorted using generic
- * numerical sort order (8 thus comes before 10).
- *
- * As their value can't change when a new pixel code is inserted in the
- * enumeration, the pixel codes are explicitly given a numerical value. The next
- * free values for each category are listed below, update them when inserting
- * new pixel codes.
- */
-enum v4l2_mbus_pixelcode {
- V4L2_MBUS_FMT_FIXED = 0x0001,
-
- /* RGB - next is 0x1009 */
- V4L2_MBUS_FMT_RGB444_2X8_PADHI_BE = 0x1001,
- V4L2_MBUS_FMT_RGB444_2X8_PADHI_LE = 0x1002,
- V4L2_MBUS_FMT_RGB555_2X8_PADHI_BE = 0x1003,
- V4L2_MBUS_FMT_RGB555_2X8_PADHI_LE = 0x1004,
- V4L2_MBUS_FMT_BGR565_2X8_BE = 0x1005,
- V4L2_MBUS_FMT_BGR565_2X8_LE = 0x1006,
- V4L2_MBUS_FMT_RGB565_2X8_BE = 0x1007,
- V4L2_MBUS_FMT_RGB565_2X8_LE = 0x1008,
-
- /* YUV (including grey) - next is 0x2014 */
- V4L2_MBUS_FMT_Y8_1X8 = 0x2001,
- V4L2_MBUS_FMT_UYVY8_1_5X8 = 0x2002,
- V4L2_MBUS_FMT_VYUY8_1_5X8 = 0x2003,
- V4L2_MBUS_FMT_YUYV8_1_5X8 = 0x2004,
- V4L2_MBUS_FMT_YVYU8_1_5X8 = 0x2005,
- V4L2_MBUS_FMT_UYVY8_2X8 = 0x2006,
- V4L2_MBUS_FMT_VYUY8_2X8 = 0x2007,
- V4L2_MBUS_FMT_YUYV8_2X8 = 0x2008,
- V4L2_MBUS_FMT_YVYU8_2X8 = 0x2009,
- V4L2_MBUS_FMT_Y10_1X10 = 0x200a,
- V4L2_MBUS_FMT_YUYV10_2X10 = 0x200b,
- V4L2_MBUS_FMT_YVYU10_2X10 = 0x200c,
- V4L2_MBUS_FMT_Y12_1X12 = 0x2013,
- V4L2_MBUS_FMT_UYVY8_1X16 = 0x200f,
- V4L2_MBUS_FMT_VYUY8_1X16 = 0x2010,
- V4L2_MBUS_FMT_YUYV8_1X16 = 0x2011,
- V4L2_MBUS_FMT_YVYU8_1X16 = 0x2012,
- V4L2_MBUS_FMT_YUYV10_1X20 = 0x200d,
- V4L2_MBUS_FMT_YVYU10_1X20 = 0x200e,
-
- /* Bayer - next is 0x3015 */
- V4L2_MBUS_FMT_SBGGR8_1X8 = 0x3001,
- V4L2_MBUS_FMT_SGBRG8_1X8 = 0x3013,
- V4L2_MBUS_FMT_SGRBG8_1X8 = 0x3002,
- V4L2_MBUS_FMT_SRGGB8_1X8 = 0x3014,
- V4L2_MBUS_FMT_SBGGR10_DPCM8_1X8 = 0x300b,
- V4L2_MBUS_FMT_SGBRG10_DPCM8_1X8 = 0x300c,
- V4L2_MBUS_FMT_SGRBG10_DPCM8_1X8 = 0x3009,
- V4L2_MBUS_FMT_SRGGB10_DPCM8_1X8 = 0x300d,
- V4L2_MBUS_FMT_SBGGR10_2X8_PADHI_BE = 0x3003,
- V4L2_MBUS_FMT_SBGGR10_2X8_PADHI_LE = 0x3004,
- V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_BE = 0x3005,
- V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_LE = 0x3006,
- V4L2_MBUS_FMT_SBGGR10_1X10 = 0x3007,
- V4L2_MBUS_FMT_SGBRG10_1X10 = 0x300e,
- V4L2_MBUS_FMT_SGRBG10_1X10 = 0x300a,
- V4L2_MBUS_FMT_SRGGB10_1X10 = 0x300f,
- V4L2_MBUS_FMT_SBGGR12_1X12 = 0x3008,
- V4L2_MBUS_FMT_SGBRG12_1X12 = 0x3010,
- V4L2_MBUS_FMT_SGRBG12_1X12 = 0x3011,
- V4L2_MBUS_FMT_SRGGB12_1X12 = 0x3012,
-
- /* JPEG compressed formats - next is 0x4002 */
- V4L2_MBUS_FMT_JPEG_1X8 = 0x4001,
-};
-
-/**
- * struct v4l2_mbus_framefmt - frame format on the media bus
- * @width: frame width
- * @height: frame height
- * @code: data format code (from enum v4l2_mbus_pixelcode)
- * @field: used interlacing type (from enum v4l2_field)
- * @colorspace: colorspace of the data (from enum v4l2_colorspace)
- */
-struct v4l2_mbus_framefmt {
- __u32 width;
- __u32 height;
- __u32 code;
- __u32 field;
- __u32 colorspace;
- __u32 reserved[7];
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/v4l2-subdev.h b/ANDROID_3.4.5/include/linux/v4l2-subdev.h
deleted file mode 100644
index ed29cbbe..00000000
--- a/ANDROID_3.4.5/include/linux/v4l2-subdev.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * V4L2 subdev userspace API
- *
- * Copyright (C) 2010 Nokia Corporation
- *
- * Contacts: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
- * Sakari Ailus <sakari.ailus@iki.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.
- *
- * 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
- */
-
-#ifndef __LINUX_V4L2_SUBDEV_H
-#define __LINUX_V4L2_SUBDEV_H
-
-#include <linux/ioctl.h>
-#include <linux/types.h>
-#include <linux/v4l2-mediabus.h>
-
-/**
- * enum v4l2_subdev_format_whence - Media bus format type
- * @V4L2_SUBDEV_FORMAT_TRY: try format, for negotiation only
- * @V4L2_SUBDEV_FORMAT_ACTIVE: active format, applied to the device
- */
-enum v4l2_subdev_format_whence {
- V4L2_SUBDEV_FORMAT_TRY = 0,
- V4L2_SUBDEV_FORMAT_ACTIVE = 1,
-};
-
-/**
- * struct v4l2_subdev_format - Pad-level media bus format
- * @which: format type (from enum v4l2_subdev_format_whence)
- * @pad: pad number, as reported by the media API
- * @format: media bus format (format code and frame size)
- */
-struct v4l2_subdev_format {
- __u32 which;
- __u32 pad;
- struct v4l2_mbus_framefmt format;
- __u32 reserved[8];
-};
-
-/**
- * struct v4l2_subdev_crop - Pad-level crop settings
- * @which: format type (from enum v4l2_subdev_format_whence)
- * @pad: pad number, as reported by the media API
- * @rect: pad crop rectangle boundaries
- */
-struct v4l2_subdev_crop {
- __u32 which;
- __u32 pad;
- struct v4l2_rect rect;
- __u32 reserved[8];
-};
-
-/**
- * struct v4l2_subdev_mbus_code_enum - Media bus format enumeration
- * @pad: pad number, as reported by the media API
- * @index: format index during enumeration
- * @code: format code (from enum v4l2_mbus_pixelcode)
- */
-struct v4l2_subdev_mbus_code_enum {
- __u32 pad;
- __u32 index;
- __u32 code;
- __u32 reserved[9];
-};
-
-/**
- * struct v4l2_subdev_frame_size_enum - Media bus format enumeration
- * @pad: pad number, as reported by the media API
- * @index: format index during enumeration
- * @code: format code (from enum v4l2_mbus_pixelcode)
- */
-struct v4l2_subdev_frame_size_enum {
- __u32 index;
- __u32 pad;
- __u32 code;
- __u32 min_width;
- __u32 max_width;
- __u32 min_height;
- __u32 max_height;
- __u32 reserved[9];
-};
-
-/**
- * struct v4l2_subdev_frame_interval - Pad-level frame rate
- * @pad: pad number, as reported by the media API
- * @interval: frame interval in seconds
- */
-struct v4l2_subdev_frame_interval {
- __u32 pad;
- struct v4l2_fract interval;
- __u32 reserved[9];
-};
-
-/**
- * struct v4l2_subdev_frame_interval_enum - Frame interval enumeration
- * @pad: pad number, as reported by the media API
- * @index: frame interval index during enumeration
- * @code: format code (from enum v4l2_mbus_pixelcode)
- * @width: frame width in pixels
- * @height: frame height in pixels
- * @interval: frame interval in seconds
- */
-struct v4l2_subdev_frame_interval_enum {
- __u32 index;
- __u32 pad;
- __u32 code;
- __u32 width;
- __u32 height;
- struct v4l2_fract interval;
- __u32 reserved[9];
-};
-
-#define VIDIOC_SUBDEV_G_FMT _IOWR('V', 4, struct v4l2_subdev_format)
-#define VIDIOC_SUBDEV_S_FMT _IOWR('V', 5, struct v4l2_subdev_format)
-#define VIDIOC_SUBDEV_G_FRAME_INTERVAL \
- _IOWR('V', 21, struct v4l2_subdev_frame_interval)
-#define VIDIOC_SUBDEV_S_FRAME_INTERVAL \
- _IOWR('V', 22, struct v4l2_subdev_frame_interval)
-#define VIDIOC_SUBDEV_ENUM_MBUS_CODE \
- _IOWR('V', 2, struct v4l2_subdev_mbus_code_enum)
-#define VIDIOC_SUBDEV_ENUM_FRAME_SIZE \
- _IOWR('V', 74, struct v4l2_subdev_frame_size_enum)
-#define VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL \
- _IOWR('V', 75, struct v4l2_subdev_frame_interval_enum)
-#define VIDIOC_SUBDEV_G_CROP _IOWR('V', 59, struct v4l2_subdev_crop)
-#define VIDIOC_SUBDEV_S_CROP _IOWR('V', 60, struct v4l2_subdev_crop)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/vermagic.h b/ANDROID_3.4.5/include/linux/vermagic.h
deleted file mode 100644
index 6f8fbcf1..00000000
--- a/ANDROID_3.4.5/include/linux/vermagic.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#include <generated/utsrelease.h>
-
-/* Simply sanity version stamp for modules. */
-#ifdef CONFIG_SMP
-#define MODULE_VERMAGIC_SMP "SMP "
-#else
-#define MODULE_VERMAGIC_SMP ""
-#endif
-#ifdef CONFIG_PREEMPT
-#define MODULE_VERMAGIC_PREEMPT "preempt "
-#else
-#define MODULE_VERMAGIC_PREEMPT ""
-#endif
-#ifdef CONFIG_MODULE_UNLOAD
-#define MODULE_VERMAGIC_MODULE_UNLOAD "mod_unload "
-#else
-#define MODULE_VERMAGIC_MODULE_UNLOAD ""
-#endif
-#ifdef CONFIG_MODVERSIONS
-#define MODULE_VERMAGIC_MODVERSIONS "modversions "
-#else
-#define MODULE_VERMAGIC_MODVERSIONS ""
-#endif
-#ifndef MODULE_ARCH_VERMAGIC
-#define MODULE_ARCH_VERMAGIC ""
-#endif
-
-#define VERMAGIC_STRING \
- UTS_RELEASE " " \
- MODULE_VERMAGIC_SMP MODULE_VERMAGIC_PREEMPT \
- MODULE_VERMAGIC_MODULE_UNLOAD MODULE_VERMAGIC_MODVERSIONS \
- MODULE_ARCH_VERMAGIC
-
diff --git a/ANDROID_3.4.5/include/linux/veth.h b/ANDROID_3.4.5/include/linux/veth.h
deleted file mode 100644
index 3354c1eb..00000000
--- a/ANDROID_3.4.5/include/linux/veth.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef __NET_VETH_H_
-#define __NET_VETH_H_
-
-enum {
- VETH_INFO_UNSPEC,
- VETH_INFO_PEER,
-
- __VETH_INFO_MAX
-#define VETH_INFO_MAX (__VETH_INFO_MAX - 1)
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/vfs.h b/ANDROID_3.4.5/include/linux/vfs.h
deleted file mode 100644
index e701d054..00000000
--- a/ANDROID_3.4.5/include/linux/vfs.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef _LINUX_VFS_H
-#define _LINUX_VFS_H
-
-#include <linux/statfs.h>
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/vga_switcheroo.h b/ANDROID_3.4.5/include/linux/vga_switcheroo.h
deleted file mode 100644
index 4b9a7f59..00000000
--- a/ANDROID_3.4.5/include/linux/vga_switcheroo.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (c) 2010 Red Hat Inc.
- * Author : Dave Airlie <airlied@redhat.com>
- *
- * Licensed under GPLv2
- *
- * vga_switcheroo.h - Support for laptop with dual GPU using one set of outputs
- */
-
-#include <linux/fb.h>
-
-enum vga_switcheroo_state {
- VGA_SWITCHEROO_OFF,
- VGA_SWITCHEROO_ON,
-};
-
-enum vga_switcheroo_client_id {
- VGA_SWITCHEROO_IGD,
- VGA_SWITCHEROO_DIS,
- VGA_SWITCHEROO_MAX_CLIENTS,
-};
-
-struct vga_switcheroo_handler {
- int (*switchto)(enum vga_switcheroo_client_id id);
- int (*power_state)(enum vga_switcheroo_client_id id,
- enum vga_switcheroo_state state);
- int (*init)(void);
- int (*get_client_id)(struct pci_dev *pdev);
-};
-
-
-#if defined(CONFIG_VGA_SWITCHEROO)
-void vga_switcheroo_unregister_client(struct pci_dev *dev);
-int vga_switcheroo_register_client(struct pci_dev *dev,
- void (*set_gpu_state)(struct pci_dev *dev, enum vga_switcheroo_state),
- void (*reprobe)(struct pci_dev *dev),
- bool (*can_switch)(struct pci_dev *dev));
-
-void vga_switcheroo_client_fb_set(struct pci_dev *dev,
- struct fb_info *info);
-
-int vga_switcheroo_register_handler(struct vga_switcheroo_handler *handler);
-void vga_switcheroo_unregister_handler(void);
-
-int vga_switcheroo_process_delayed_switch(void);
-
-#else
-
-static inline void vga_switcheroo_unregister_client(struct pci_dev *dev) {}
-static inline int vga_switcheroo_register_client(struct pci_dev *dev,
- void (*set_gpu_state)(struct pci_dev *dev, enum vga_switcheroo_state),
- void (*reprobe)(struct pci_dev *dev),
- bool (*can_switch)(struct pci_dev *dev)) { return 0; }
-static inline void vga_switcheroo_client_fb_set(struct pci_dev *dev, struct fb_info *info) {}
-static inline int vga_switcheroo_register_handler(struct vga_switcheroo_handler *handler) { return 0; }
-static inline void vga_switcheroo_unregister_handler(void) {}
-static inline int vga_switcheroo_process_delayed_switch(void) { return 0; }
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/vgaarb.h b/ANDROID_3.4.5/include/linux/vgaarb.h
deleted file mode 100644
index b572f80b..00000000
--- a/ANDROID_3.4.5/include/linux/vgaarb.h
+++ /dev/null
@@ -1,244 +0,0 @@
-/*
- * The VGA aribiter manages VGA space routing and VGA resource decode to
- * allow multiple VGA devices to be used in a system in a safe way.
- *
- * (C) Copyright 2005 Benjamin Herrenschmidt <benh@kernel.crashing.org>
- * (C) Copyright 2007 Paulo R. Zanoni <przanoni@gmail.com>
- * (C) Copyright 2007, 2009 Tiago Vignatti <vignatti@freedesktop.org>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS
- * IN THE SOFTWARE.
- *
- */
-
-#ifndef LINUX_VGA_H
-#define LINUX_VGA_H
-
-
-/* Legacy VGA regions */
-#define VGA_RSRC_NONE 0x00
-#define VGA_RSRC_LEGACY_IO 0x01
-#define VGA_RSRC_LEGACY_MEM 0x02
-#define VGA_RSRC_LEGACY_MASK (VGA_RSRC_LEGACY_IO | VGA_RSRC_LEGACY_MEM)
-/* Non-legacy access */
-#define VGA_RSRC_NORMAL_IO 0x04
-#define VGA_RSRC_NORMAL_MEM 0x08
-
-/* Passing that instead of a pci_dev to use the system "default"
- * device, that is the one used by vgacon. Archs will probably
- * have to provide their own vga_default_device();
- */
-#define VGA_DEFAULT_DEVICE (NULL)
-
-struct pci_dev;
-
-/* For use by clients */
-
-/**
- * vga_set_legacy_decoding
- *
- * @pdev: pci device of the VGA card
- * @decodes: bit mask of what legacy regions the card decodes
- *
- * Indicates to the arbiter if the card decodes legacy VGA IOs,
- * legacy VGA Memory, both, or none. All cards default to both,
- * the card driver (fbdev for example) should tell the arbiter
- * if it has disabled legacy decoding, so the card can be left
- * out of the arbitration process (and can be safe to take
- * interrupts at any time.
- */
-extern void vga_set_legacy_decoding(struct pci_dev *pdev,
- unsigned int decodes);
-
-/**
- * vga_get - acquire & locks VGA resources
- *
- * @pdev: pci device of the VGA card or NULL for the system default
- * @rsrc: bit mask of resources to acquire and lock
- * @interruptible: blocking should be interruptible by signals ?
- *
- * This function acquires VGA resources for the given
- * card and mark those resources locked. If the resource requested
- * are "normal" (and not legacy) resources, the arbiter will first check
- * wether the card is doing legacy decoding for that type of resource. If
- * yes, the lock is "converted" into a legacy resource lock.
- * The arbiter will first look for all VGA cards that might conflict
- * and disable their IOs and/or Memory access, including VGA forwarding
- * on P2P bridges if necessary, so that the requested resources can
- * be used. Then, the card is marked as locking these resources and
- * the IO and/or Memory accesse are enabled on the card (including
- * VGA forwarding on parent P2P bridges if any).
- * This function will block if some conflicting card is already locking
- * one of the required resources (or any resource on a different bus
- * segment, since P2P bridges don't differenciate VGA memory and IO
- * afaik). You can indicate wether this blocking should be interruptible
- * by a signal (for userland interface) or not.
- * Must not be called at interrupt time or in atomic context.
- * If the card already owns the resources, the function succeeds.
- * Nested calls are supported (a per-resource counter is maintained)
- */
-
-#if defined(CONFIG_VGA_ARB)
-extern int vga_get(struct pci_dev *pdev, unsigned int rsrc, int interruptible);
-#else
-static inline int vga_get(struct pci_dev *pdev, unsigned int rsrc, int interruptible) { return 0; }
-#endif
-
-/**
- * vga_get_interruptible
- *
- * Shortcut to vga_get
- */
-
-static inline int vga_get_interruptible(struct pci_dev *pdev,
- unsigned int rsrc)
-{
- return vga_get(pdev, rsrc, 1);
-}
-
-/**
- * vga_get_uninterruptible
- *
- * Shortcut to vga_get
- */
-
-static inline int vga_get_uninterruptible(struct pci_dev *pdev,
- unsigned int rsrc)
-{
- return vga_get(pdev, rsrc, 0);
-}
-
-/**
- * vga_tryget - try to acquire & lock legacy VGA resources
- *
- * @pdev: pci devivce of VGA card or NULL for system default
- * @rsrc: bit mask of resources to acquire and lock
- *
- * This function performs the same operation as vga_get(), but
- * will return an error (-EBUSY) instead of blocking if the resources
- * are already locked by another card. It can be called in any context
- */
-
-#if defined(CONFIG_VGA_ARB)
-extern int vga_tryget(struct pci_dev *pdev, unsigned int rsrc);
-#else
-static inline int vga_tryget(struct pci_dev *pdev, unsigned int rsrc) { return 0; }
-#endif
-
-/**
- * vga_put - release lock on legacy VGA resources
- *
- * @pdev: pci device of VGA card or NULL for system default
- * @rsrc: but mask of resource to release
- *
- * This function releases resources previously locked by vga_get()
- * or vga_tryget(). The resources aren't disabled right away, so
- * that a subsequence vga_get() on the same card will succeed
- * immediately. Resources have a counter, so locks are only
- * released if the counter reaches 0.
- */
-
-#if defined(CONFIG_VGA_ARB)
-extern void vga_put(struct pci_dev *pdev, unsigned int rsrc);
-#else
-#define vga_put(pdev, rsrc)
-#endif
-
-
-/**
- * vga_default_device
- *
- * This can be defined by the platform. The default implementation
- * is rather dumb and will probably only work properly on single
- * vga card setups and/or x86 platforms.
- *
- * If your VGA default device is not PCI, you'll have to return
- * NULL here. In this case, I assume it will not conflict with
- * any PCI card. If this is not true, I'll have to define two archs
- * hooks for enabling/disabling the VGA default device if that is
- * possible. This may be a problem with real _ISA_ VGA cards, in
- * addition to a PCI one. I don't know at this point how to deal
- * with that card. Can theirs IOs be disabled at all ? If not, then
- * I suppose it's a matter of having the proper arch hook telling
- * us about it, so we basically never allow anybody to succeed a
- * vga_get()...
- */
-
-#ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE
-extern struct pci_dev *vga_default_device(void);
-#endif
-
-/**
- * vga_conflicts
- *
- * Architectures should define this if they have several
- * independent PCI domains that can afford concurrent VGA
- * decoding
- */
-
-#ifndef __ARCH_HAS_VGA_CONFLICT
-static inline int vga_conflicts(struct pci_dev *p1, struct pci_dev *p2)
-{
- return 1;
-}
-#endif
-
-/**
- * vga_client_register
- *
- * @pdev: pci device of the VGA client
- * @cookie: client cookie to be used in callbacks
- * @irq_set_state: irq state change callback
- * @set_vga_decode: vga decode change callback
- *
- * return value: 0 on success, -1 on failure
- * Register a client with the VGA arbitration logic
- *
- * Clients have two callback mechanisms they can use.
- * irq enable/disable callback -
- * If a client can't disable its GPUs VGA resources, then we
- * need to be able to ask it to turn off its irqs when we
- * turn off its mem and io decoding.
- * set_vga_decode
- * If a client can disable its GPU VGA resource, it will
- * get a callback from this to set the encode/decode state
- *
- * Rationale: we cannot disable VGA decode resources unconditionally
- * some single GPU laptops seem to require ACPI or BIOS access to the
- * VGA registers to control things like backlights etc.
- * Hopefully newer multi-GPU laptops do something saner, and desktops
- * won't have any special ACPI for this.
- * They driver will get a callback when VGA arbitration is first used
- * by userspace since we some older X servers have issues.
- */
-#if defined(CONFIG_VGA_ARB)
-int vga_client_register(struct pci_dev *pdev, void *cookie,
- void (*irq_set_state)(void *cookie, bool state),
- unsigned int (*set_vga_decode)(void *cookie, bool state));
-#else
-static inline int vga_client_register(struct pci_dev *pdev, void *cookie,
- void (*irq_set_state)(void *cookie, bool state),
- unsigned int (*set_vga_decode)(void *cookie, bool state))
-{
- return 0;
-}
-#endif
-
-#endif /* LINUX_VGA_H */
diff --git a/ANDROID_3.4.5/include/linux/vhost.h b/ANDROID_3.4.5/include/linux/vhost.h
deleted file mode 100644
index e847f1e3..00000000
--- a/ANDROID_3.4.5/include/linux/vhost.h
+++ /dev/null
@@ -1,130 +0,0 @@
-#ifndef _LINUX_VHOST_H
-#define _LINUX_VHOST_H
-/* Userspace interface for in-kernel virtio accelerators. */
-
-/* vhost is used to reduce the number of system calls involved in virtio.
- *
- * Existing virtio net code is used in the guest without modification.
- *
- * This header includes interface used by userspace hypervisor for
- * device configuration.
- */
-
-#include <linux/types.h>
-#include <linux/compiler.h>
-#include <linux/ioctl.h>
-#include <linux/virtio_config.h>
-#include <linux/virtio_ring.h>
-
-struct vhost_vring_state {
- unsigned int index;
- unsigned int num;
-};
-
-struct vhost_vring_file {
- unsigned int index;
- int fd; /* Pass -1 to unbind from file. */
-
-};
-
-struct vhost_vring_addr {
- unsigned int index;
- /* Option flags. */
- unsigned int flags;
- /* Flag values: */
- /* Whether log address is valid. If set enables logging. */
-#define VHOST_VRING_F_LOG 0
-
- /* Start of array of descriptors (virtually contiguous) */
- __u64 desc_user_addr;
- /* Used structure address. Must be 32 bit aligned */
- __u64 used_user_addr;
- /* Available structure address. Must be 16 bit aligned */
- __u64 avail_user_addr;
- /* Logging support. */
- /* Log writes to used structure, at offset calculated from specified
- * address. Address must be 32 bit aligned. */
- __u64 log_guest_addr;
-};
-
-struct vhost_memory_region {
- __u64 guest_phys_addr;
- __u64 memory_size; /* bytes */
- __u64 userspace_addr;
- __u64 flags_padding; /* No flags are currently specified. */
-};
-
-/* All region addresses and sizes must be 4K aligned. */
-#define VHOST_PAGE_SIZE 0x1000
-
-struct vhost_memory {
- __u32 nregions;
- __u32 padding;
- struct vhost_memory_region regions[0];
-};
-
-/* ioctls */
-
-#define VHOST_VIRTIO 0xAF
-
-/* Features bitmask for forward compatibility. Transport bits are used for
- * vhost specific features. */
-#define VHOST_GET_FEATURES _IOR(VHOST_VIRTIO, 0x00, __u64)
-#define VHOST_SET_FEATURES _IOW(VHOST_VIRTIO, 0x00, __u64)
-
-/* Set current process as the (exclusive) owner of this file descriptor. This
- * must be called before any other vhost command. Further calls to
- * VHOST_OWNER_SET fail until VHOST_OWNER_RESET is called. */
-#define VHOST_SET_OWNER _IO(VHOST_VIRTIO, 0x01)
-/* Give up ownership, and reset the device to default values.
- * Allows subsequent call to VHOST_OWNER_SET to succeed. */
-#define VHOST_RESET_OWNER _IO(VHOST_VIRTIO, 0x02)
-
-/* Set up/modify memory layout */
-#define VHOST_SET_MEM_TABLE _IOW(VHOST_VIRTIO, 0x03, struct vhost_memory)
-
-/* Write logging setup. */
-/* Memory writes can optionally be logged by setting bit at an offset
- * (calculated from the physical address) from specified log base.
- * The bit is set using an atomic 32 bit operation. */
-/* Set base address for logging. */
-#define VHOST_SET_LOG_BASE _IOW(VHOST_VIRTIO, 0x04, __u64)
-/* Specify an eventfd file descriptor to signal on log write. */
-#define VHOST_SET_LOG_FD _IOW(VHOST_VIRTIO, 0x07, int)
-
-/* Ring setup. */
-/* Set number of descriptors in ring. This parameter can not
- * be modified while ring is running (bound to a device). */
-#define VHOST_SET_VRING_NUM _IOW(VHOST_VIRTIO, 0x10, struct vhost_vring_state)
-/* Set addresses for the ring. */
-#define VHOST_SET_VRING_ADDR _IOW(VHOST_VIRTIO, 0x11, struct vhost_vring_addr)
-/* Base value where queue looks for available descriptors */
-#define VHOST_SET_VRING_BASE _IOW(VHOST_VIRTIO, 0x12, struct vhost_vring_state)
-/* Get accessor: reads index, writes value in num */
-#define VHOST_GET_VRING_BASE _IOWR(VHOST_VIRTIO, 0x12, struct vhost_vring_state)
-
-/* The following ioctls use eventfd file descriptors to signal and poll
- * for events. */
-
-/* Set eventfd to poll for added buffers */
-#define VHOST_SET_VRING_KICK _IOW(VHOST_VIRTIO, 0x20, struct vhost_vring_file)
-/* Set eventfd to signal when buffers have beed used */
-#define VHOST_SET_VRING_CALL _IOW(VHOST_VIRTIO, 0x21, struct vhost_vring_file)
-/* Set eventfd to signal an error */
-#define VHOST_SET_VRING_ERR _IOW(VHOST_VIRTIO, 0x22, struct vhost_vring_file)
-
-/* VHOST_NET specific defines */
-
-/* Attach virtio net ring to a raw socket, or tap device.
- * The socket must be already bound to an ethernet device, this device will be
- * used for transmit. Pass fd -1 to unbind from the socket and the transmit
- * device. This can be used to stop the ring (e.g. for migration). */
-#define VHOST_NET_SET_BACKEND _IOW(VHOST_VIRTIO, 0x30, struct vhost_vring_file)
-
-/* Feature bits */
-/* Log all write descriptors. Can be changed while device is active. */
-#define VHOST_F_LOG_ALL 26
-/* vhost-net should add virtio_net_hdr for RX, and strip for TX packets. */
-#define VHOST_NET_F_VIRTIO_NET_HDR 27
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/via-core.h b/ANDROID_3.4.5/include/linux/via-core.h
deleted file mode 100644
index 9c21cdf3..00000000
--- a/ANDROID_3.4.5/include/linux/via-core.h
+++ /dev/null
@@ -1,236 +0,0 @@
-/*
- * Copyright 1998-2009 VIA Technologies, Inc. All Rights Reserved.
- * Copyright 2001-2008 S3 Graphics, Inc. All Rights Reserved.
- * Copyright 2009-2010 Jonathan Corbet <corbet@lwn.net>
- * Copyright 2010 Florian Tobias Schandinat <FlorianSchandinat@gmx.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, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTIES OR REPRESENTATIONS; 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.
- */
-
-#ifndef __VIA_CORE_H__
-#define __VIA_CORE_H__
-#include <linux/types.h>
-#include <linux/io.h>
-#include <linux/spinlock.h>
-#include <linux/pci.h>
-
-/*
- * A description of each known serial I2C/GPIO port.
- */
-enum via_port_type {
- VIA_PORT_NONE = 0,
- VIA_PORT_I2C,
- VIA_PORT_GPIO,
-};
-
-enum via_port_mode {
- VIA_MODE_OFF = 0,
- VIA_MODE_I2C, /* Used as I2C port */
- VIA_MODE_GPIO, /* Two GPIO ports */
-};
-
-enum viafb_i2c_adap {
- VIA_PORT_26 = 0,
- VIA_PORT_31,
- VIA_PORT_25,
- VIA_PORT_2C,
- VIA_PORT_3D,
-};
-#define VIAFB_NUM_PORTS 5
-
-struct via_port_cfg {
- enum via_port_type type;
- enum via_port_mode mode;
- u16 io_port;
- u8 ioport_index;
-};
-
-/*
- * Allow subdevs to register suspend/resume hooks.
- */
-#ifdef CONFIG_PM
-struct viafb_pm_hooks {
- struct list_head list;
- int (*suspend)(void *private);
- int (*resume)(void *private);
- void *private;
-};
-
-void viafb_pm_register(struct viafb_pm_hooks *hooks);
-void viafb_pm_unregister(struct viafb_pm_hooks *hooks);
-#endif /* CONFIG_PM */
-
-/*
- * This is the global viafb "device" containing stuff needed by
- * all subdevs.
- */
-struct viafb_dev {
- struct pci_dev *pdev;
- int chip_type;
- struct via_port_cfg *port_cfg;
- /*
- * Spinlock for access to device registers. Not yet
- * globally used.
- */
- spinlock_t reg_lock;
- /*
- * The framebuffer MMIO region. Little, if anything, touches
- * this memory directly, and certainly nothing outside of the
- * framebuffer device itself. We *do* have to be able to allocate
- * chunks of this memory for other devices, though.
- */
- unsigned long fbmem_start;
- long fbmem_len;
- void __iomem *fbmem;
-#if defined(CONFIG_VIDEO_VIA_CAMERA) || defined(CONFIG_VIDEO_VIA_CAMERA_MODULE)
- long camera_fbmem_offset;
- long camera_fbmem_size;
-#endif
- /*
- * The MMIO region for device registers.
- */
- unsigned long engine_start;
- unsigned long engine_len;
- void __iomem *engine_mmio;
-
-};
-
-/*
- * Interrupt management.
- */
-
-void viafb_irq_enable(u32 mask);
-void viafb_irq_disable(u32 mask);
-
-/*
- * The global interrupt control register and its bits.
- */
-#define VDE_INTERRUPT 0x200 /* Video interrupt flags/masks */
-#define VDE_I_DVISENSE 0x00000001 /* DVI sense int status */
-#define VDE_I_VBLANK 0x00000002 /* Vertical blank status */
-#define VDE_I_MCCFI 0x00000004 /* MCE compl. frame int status */
-#define VDE_I_VSYNC 0x00000008 /* VGA VSYNC int status */
-#define VDE_I_DMA0DDONE 0x00000010 /* DMA 0 descr done */
-#define VDE_I_DMA0TDONE 0x00000020 /* DMA 0 transfer done */
-#define VDE_I_DMA1DDONE 0x00000040 /* DMA 1 descr done */
-#define VDE_I_DMA1TDONE 0x00000080 /* DMA 1 transfer done */
-#define VDE_I_C1AV 0x00000100 /* Cap Eng 1 act vid end */
-#define VDE_I_HQV0 0x00000200 /* First HQV engine */
-#define VDE_I_HQV1 0x00000400 /* Second HQV engine */
-#define VDE_I_HQV1EN 0x00000800 /* Second HQV engine enable */
-#define VDE_I_C0AV 0x00001000 /* Cap Eng 0 act vid end */
-#define VDE_I_C0VBI 0x00002000 /* Cap Eng 0 VBI end */
-#define VDE_I_C1VBI 0x00004000 /* Cap Eng 1 VBI end */
-#define VDE_I_VSYNC2 0x00008000 /* Sec. Disp. VSYNC */
-#define VDE_I_DVISNSEN 0x00010000 /* DVI sense enable */
-#define VDE_I_VSYNC2EN 0x00020000 /* Sec Disp VSYNC enable */
-#define VDE_I_MCCFIEN 0x00040000 /* MC comp frame int mask enable */
-#define VDE_I_VSYNCEN 0x00080000 /* VSYNC enable */
-#define VDE_I_DMA0DDEN 0x00100000 /* DMA 0 descr done enable */
-#define VDE_I_DMA0TDEN 0x00200000 /* DMA 0 trans done enable */
-#define VDE_I_DMA1DDEN 0x00400000 /* DMA 1 descr done enable */
-#define VDE_I_DMA1TDEN 0x00800000 /* DMA 1 trans done enable */
-#define VDE_I_C1AVEN 0x01000000 /* cap 1 act vid end enable */
-#define VDE_I_HQV0EN 0x02000000 /* First hqv engine enable */
-#define VDE_I_C1VBIEN 0x04000000 /* Cap 1 VBI end enable */
-#define VDE_I_LVDSSI 0x08000000 /* LVDS sense interrupt */
-#define VDE_I_C0AVEN 0x10000000 /* Cap 0 act vid end enable */
-#define VDE_I_C0VBIEN 0x20000000 /* Cap 0 VBI end enable */
-#define VDE_I_LVDSSIEN 0x40000000 /* LVDS Sense enable */
-#define VDE_I_ENABLE 0x80000000 /* Global interrupt enable */
-
-#if defined(CONFIG_VIDEO_VIA_CAMERA) || defined(CONFIG_VIDEO_VIA_CAMERA_MODULE)
-/*
- * DMA management.
- */
-int viafb_request_dma(void);
-void viafb_release_dma(void);
-/* void viafb_dma_copy_out(unsigned int offset, dma_addr_t paddr, int len); */
-int viafb_dma_copy_out_sg(unsigned int offset, struct scatterlist *sg, int nsg);
-
-/*
- * DMA Controller registers.
- */
-#define VDMA_MR0 0xe00 /* Mod reg 0 */
-#define VDMA_MR_CHAIN 0x01 /* Chaining mode */
-#define VDMA_MR_TDIE 0x02 /* Transfer done int enable */
-#define VDMA_CSR0 0xe04 /* Control/status */
-#define VDMA_C_ENABLE 0x01 /* DMA Enable */
-#define VDMA_C_START 0x02 /* Start a transfer */
-#define VDMA_C_ABORT 0x04 /* Abort a transfer */
-#define VDMA_C_DONE 0x08 /* Transfer is done */
-#define VDMA_MARL0 0xe20 /* Mem addr low */
-#define VDMA_MARH0 0xe24 /* Mem addr high */
-#define VDMA_DAR0 0xe28 /* Device address */
-#define VDMA_DQWCR0 0xe2c /* Count (16-byte) */
-#define VDMA_TMR0 0xe30 /* Tile mode reg */
-#define VDMA_DPRL0 0xe34 /* Not sure */
-#define VDMA_DPR_IN 0x08 /* Inbound transfer to FB */
-#define VDMA_DPRH0 0xe38
-#define VDMA_PMR0 (0xe00 + 0x134) /* Pitch mode */
-
-/*
- * Useful stuff that probably belongs somewhere global.
- */
-#define VGA_WIDTH 640
-#define VGA_HEIGHT 480
-#endif /* CONFIG_VIDEO_VIA_CAMERA */
-
-/*
- * Indexed port operations. Note that these are all multi-op
- * functions; every invocation will be racy if you're not holding
- * reg_lock.
- */
-
-#define VIAStatus 0x3DA /* Non-indexed port */
-#define VIACR 0x3D4
-#define VIASR 0x3C4
-#define VIAGR 0x3CE
-#define VIAAR 0x3C0
-
-static inline u8 via_read_reg(u16 port, u8 index)
-{
- outb(index, port);
- return inb(port + 1);
-}
-
-static inline void via_write_reg(u16 port, u8 index, u8 data)
-{
- outb(index, port);
- outb(data, port + 1);
-}
-
-static inline void via_write_reg_mask(u16 port, u8 index, u8 data, u8 mask)
-{
- u8 old;
-
- outb(index, port);
- old = inb(port + 1);
- outb((data & mask) | (old & ~mask), port + 1);
-}
-
-#define VIA_MISC_REG_READ 0x03CC
-#define VIA_MISC_REG_WRITE 0x03C2
-
-static inline void via_write_misc_reg_mask(u8 data, u8 mask)
-{
- u8 old = inb(VIA_MISC_REG_READ);
- outb((data & mask) | (old & ~mask), VIA_MISC_REG_WRITE);
-}
-
-
-#endif /* __VIA_CORE_H__ */
diff --git a/ANDROID_3.4.5/include/linux/via-gpio.h b/ANDROID_3.4.5/include/linux/via-gpio.h
deleted file mode 100644
index 8281aea3..00000000
--- a/ANDROID_3.4.5/include/linux/via-gpio.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * Support for viafb GPIO ports.
- *
- * Copyright 2009 Jonathan Corbet <corbet@lwn.net>
- * Distributable under version 2 of the GNU General Public License.
- */
-
-#ifndef __VIA_GPIO_H__
-#define __VIA_GPIO_H__
-
-extern int viafb_gpio_lookup(const char *name);
-extern int viafb_gpio_init(void);
-extern void viafb_gpio_exit(void);
-#endif
diff --git a/ANDROID_3.4.5/include/linux/via.h b/ANDROID_3.4.5/include/linux/via.h
deleted file mode 100644
index 86ae3bcd..00000000
--- a/ANDROID_3.4.5/include/linux/via.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Miscellaneous definitions for VIA chipsets
- Currently used only by drivers/parport/parport_pc.c */
-
-/* Values for SuperIO function select configuration register */
-#define VIA_FUNCTION_PARPORT_SPP 0x00
-#define VIA_FUNCTION_PARPORT_ECP 0x01
-#define VIA_FUNCTION_PARPORT_EPP 0x02
-#define VIA_FUNCTION_PARPORT_DISABLE 0x03
-#define VIA_FUNCTION_PROBE 0xFF /* Special magic value to be used in code, not to be written into chip */
-
-/* Bits for parallel port mode configuration register */
-#define VIA_PARPORT_ECPEPP 0X20
-#define VIA_PARPORT_BIDIR 0x80
-
-/* VIA configuration registers */
-#define VIA_CONFIG_INDEX 0x3F0
-#define VIA_CONFIG_DATA 0x3F1
-
-/* Mask for parallel port IRQ bits (in ISA PnP IRQ routing register 1) */
-#define VIA_IRQCONTROL_PARALLEL 0xF0
-/* Mask for parallel port DMA bits (in ISA PnP DMA routing register) */
-#define VIA_DMACONTROL_PARALLEL 0x0C
diff --git a/ANDROID_3.4.5/include/linux/via_i2c.h b/ANDROID_3.4.5/include/linux/via_i2c.h
deleted file mode 100644
index 44532e46..00000000
--- a/ANDROID_3.4.5/include/linux/via_i2c.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright 1998-2009 VIA Technologies, Inc. All Rights Reserved.
- * Copyright 2001-2008 S3 Graphics, Inc. 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, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTIES OR REPRESENTATIONS; 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.
- */
-#ifndef __VIA_I2C_H__
-#define __VIA_I2C_H__
-
-#include <linux/i2c.h>
-#include <linux/i2c-algo-bit.h>
-
-struct via_i2c_stuff {
- u16 i2c_port; /* GPIO or I2C port */
- u16 is_active; /* Being used as I2C? */
- struct i2c_adapter adapter;
- struct i2c_algo_bit_data algo;
-};
-
-
-int viafb_i2c_readbyte(u8 adap, u8 slave_addr, u8 index, u8 *pdata);
-int viafb_i2c_writebyte(u8 adap, u8 slave_addr, u8 index, u8 data);
-int viafb_i2c_readbytes(u8 adap, u8 slave_addr, u8 index, u8 *buff, int buff_len);
-struct i2c_adapter *viafb_find_i2c_adapter(enum viafb_i2c_adap which);
-
-extern int viafb_i2c_init(void);
-extern void viafb_i2c_exit(void);
-#endif /* __VIA_I2C_H__ */
diff --git a/ANDROID_3.4.5/include/linux/video_output.h b/ANDROID_3.4.5/include/linux/video_output.h
deleted file mode 100644
index ed5cdeb3..00000000
--- a/ANDROID_3.4.5/include/linux/video_output.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- *
- * Copyright (C) 2006 Luming Yu <luming.yu@intel.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.
- *
- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- */
-#ifndef _LINUX_VIDEO_OUTPUT_H
-#define _LINUX_VIDEO_OUTPUT_H
-#include <linux/device.h>
-#include <linux/err.h>
-struct output_device;
-struct output_properties {
- int (*set_state)(struct output_device *);
- int (*get_status)(struct output_device *);
-};
-struct output_device {
- int request_state;
- struct output_properties *props;
- struct device dev;
-};
-#define to_output_device(obj) container_of(obj, struct output_device, dev)
-#if defined(CONFIG_VIDEO_OUTPUT_CONTROL) || defined(CONFIG_VIDEO_OUTPUT_CONTROL_MODULE)
-struct output_device *video_output_register(const char *name,
- struct device *dev,
- void *devdata,
- struct output_properties *op);
-void video_output_unregister(struct output_device *dev);
-#else
-static struct output_device *video_output_register(const char *name,
- struct device *dev,
- void *devdata,
- struct output_properties *op)
-{
- return ERR_PTR(-ENODEV);
-}
-static void video_output_unregister(struct output_device *dev)
-{
- return;
-}
-#endif
-#endif
diff --git a/ANDROID_3.4.5/include/linux/videodev2.h b/ANDROID_3.4.5/include/linux/videodev2.h
deleted file mode 100644
index c9c9a468..00000000
--- a/ANDROID_3.4.5/include/linux/videodev2.h
+++ /dev/null
@@ -1,2416 +0,0 @@
-/*
- * Video for Linux Two header file
- *
- * Copyright (C) 1999-2007 the contributors
- *
- * 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.
- *
- * Alternatively you can redistribute this file under the terms of the
- * BSD license as stated below:
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. The names of its contributors may not be used to endorse or promote
- * products derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * Header file for v4l or V4L2 drivers and applications
- * with public API.
- * All kernel-specific stuff were moved to media/v4l2-dev.h, so
- * no #if __KERNEL tests are allowed here
- *
- * See http://linuxtv.org for more info
- *
- * Author: Bill Dirks <bill@thedirks.org>
- * Justin Schoeman
- * Hans Verkuil <hverkuil@xs4all.nl>
- * et al.
- */
-#ifndef __LINUX_VIDEODEV2_H
-#define __LINUX_VIDEODEV2_H
-
-#ifdef __KERNEL__
-#include <linux/time.h> /* need struct timeval */
-#else
-#include <sys/time.h>
-#endif
-#include <linux/compiler.h>
-#include <linux/ioctl.h>
-#include <linux/types.h>
-
-/*
- * Common stuff for both V4L1 and V4L2
- * Moved from videodev.h
- */
-#define VIDEO_MAX_FRAME 32
-#define VIDEO_MAX_PLANES 8
-
-#ifndef __KERNEL__
-
-/* These defines are V4L1 specific and should not be used with the V4L2 API!
- They will be removed from this header in the future. */
-
-#define VID_TYPE_CAPTURE 1 /* Can capture */
-#define VID_TYPE_TUNER 2 /* Can tune */
-#define VID_TYPE_TELETEXT 4 /* Does teletext */
-#define VID_TYPE_OVERLAY 8 /* Overlay onto frame buffer */
-#define VID_TYPE_CHROMAKEY 16 /* Overlay by chromakey */
-#define VID_TYPE_CLIPPING 32 /* Can clip */
-#define VID_TYPE_FRAMERAM 64 /* Uses the frame buffer memory */
-#define VID_TYPE_SCALES 128 /* Scalable */
-#define VID_TYPE_MONOCHROME 256 /* Monochrome only */
-#define VID_TYPE_SUBCAPTURE 512 /* Can capture subareas of the image */
-#define VID_TYPE_MPEG_DECODER 1024 /* Can decode MPEG streams */
-#define VID_TYPE_MPEG_ENCODER 2048 /* Can encode MPEG streams */
-#define VID_TYPE_MJPEG_DECODER 4096 /* Can decode MJPEG streams */
-#define VID_TYPE_MJPEG_ENCODER 8192 /* Can encode MJPEG streams */
-#endif
-
-/*
- * M I S C E L L A N E O U S
- */
-
-/* Four-character-code (FOURCC) */
-#define v4l2_fourcc(a, b, c, d)\
- ((__u32)(a) | ((__u32)(b) << 8) | ((__u32)(c) << 16) | ((__u32)(d) << 24))
-
-/*
- * E N U M S
- */
-enum v4l2_field {
- V4L2_FIELD_ANY = 0, /* driver can choose from none,
- top, bottom, interlaced
- depending on whatever it thinks
- is approximate ... */
- V4L2_FIELD_NONE = 1, /* this device has no fields ... */
- V4L2_FIELD_TOP = 2, /* top field only */
- V4L2_FIELD_BOTTOM = 3, /* bottom field only */
- V4L2_FIELD_INTERLACED = 4, /* both fields interlaced */
- V4L2_FIELD_SEQ_TB = 5, /* both fields sequential into one
- buffer, top-bottom order */
- V4L2_FIELD_SEQ_BT = 6, /* same as above + bottom-top order */
- V4L2_FIELD_ALTERNATE = 7, /* both fields alternating into
- separate buffers */
- V4L2_FIELD_INTERLACED_TB = 8, /* both fields interlaced, top field
- first and the top field is
- transmitted first */
- V4L2_FIELD_INTERLACED_BT = 9, /* both fields interlaced, top field
- first and the bottom field is
- transmitted first */
-};
-#define V4L2_FIELD_HAS_TOP(field) \
- ((field) == V4L2_FIELD_TOP ||\
- (field) == V4L2_FIELD_INTERLACED ||\
- (field) == V4L2_FIELD_INTERLACED_TB ||\
- (field) == V4L2_FIELD_INTERLACED_BT ||\
- (field) == V4L2_FIELD_SEQ_TB ||\
- (field) == V4L2_FIELD_SEQ_BT)
-#define V4L2_FIELD_HAS_BOTTOM(field) \
- ((field) == V4L2_FIELD_BOTTOM ||\
- (field) == V4L2_FIELD_INTERLACED ||\
- (field) == V4L2_FIELD_INTERLACED_TB ||\
- (field) == V4L2_FIELD_INTERLACED_BT ||\
- (field) == V4L2_FIELD_SEQ_TB ||\
- (field) == V4L2_FIELD_SEQ_BT)
-#define V4L2_FIELD_HAS_BOTH(field) \
- ((field) == V4L2_FIELD_INTERLACED ||\
- (field) == V4L2_FIELD_INTERLACED_TB ||\
- (field) == V4L2_FIELD_INTERLACED_BT ||\
- (field) == V4L2_FIELD_SEQ_TB ||\
- (field) == V4L2_FIELD_SEQ_BT)
-
-enum v4l2_buf_type {
- V4L2_BUF_TYPE_VIDEO_CAPTURE = 1,
- V4L2_BUF_TYPE_VIDEO_OUTPUT = 2,
- V4L2_BUF_TYPE_VIDEO_OVERLAY = 3,
- V4L2_BUF_TYPE_VBI_CAPTURE = 4,
- V4L2_BUF_TYPE_VBI_OUTPUT = 5,
- V4L2_BUF_TYPE_SLICED_VBI_CAPTURE = 6,
- V4L2_BUF_TYPE_SLICED_VBI_OUTPUT = 7,
-#if 1
- /* Experimental */
- V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY = 8,
-#endif
- V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE = 9,
- V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE = 10,
- V4L2_BUF_TYPE_PRIVATE = 0x80,
-};
-
-#define V4L2_TYPE_IS_MULTIPLANAR(type) \
- ((type) == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE \
- || (type) == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE)
-
-#define V4L2_TYPE_IS_OUTPUT(type) \
- ((type) == V4L2_BUF_TYPE_VIDEO_OUTPUT \
- || (type) == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE \
- || (type) == V4L2_BUF_TYPE_VIDEO_OVERLAY \
- || (type) == V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY \
- || (type) == V4L2_BUF_TYPE_VBI_OUTPUT \
- || (type) == V4L2_BUF_TYPE_SLICED_VBI_OUTPUT)
-
-enum v4l2_tuner_type {
- V4L2_TUNER_RADIO = 1,
- V4L2_TUNER_ANALOG_TV = 2,
- V4L2_TUNER_DIGITAL_TV = 3,
-};
-
-enum v4l2_memory {
- V4L2_MEMORY_MMAP = 1,
- V4L2_MEMORY_USERPTR = 2,
- V4L2_MEMORY_OVERLAY = 3,
-};
-
-/* see also http://vektor.theorem.ca/graphics/ycbcr/ */
-enum v4l2_colorspace {
- /* ITU-R 601 -- broadcast NTSC/PAL */
- V4L2_COLORSPACE_SMPTE170M = 1,
-
- /* 1125-Line (US) HDTV */
- V4L2_COLORSPACE_SMPTE240M = 2,
-
- /* HD and modern captures. */
- V4L2_COLORSPACE_REC709 = 3,
-
- /* broken BT878 extents (601, luma range 16-253 instead of 16-235) */
- V4L2_COLORSPACE_BT878 = 4,
-
- /* These should be useful. Assume 601 extents. */
- V4L2_COLORSPACE_470_SYSTEM_M = 5,
- V4L2_COLORSPACE_470_SYSTEM_BG = 6,
-
- /* I know there will be cameras that send this. So, this is
- * unspecified chromaticities and full 0-255 on each of the
- * Y'CbCr components
- */
- V4L2_COLORSPACE_JPEG = 7,
-
- /* For RGB colourspaces, this is probably a good start. */
- V4L2_COLORSPACE_SRGB = 8,
-};
-
-enum v4l2_priority {
- V4L2_PRIORITY_UNSET = 0, /* not initialized */
- V4L2_PRIORITY_BACKGROUND = 1,
- V4L2_PRIORITY_INTERACTIVE = 2,
- V4L2_PRIORITY_RECORD = 3,
- V4L2_PRIORITY_DEFAULT = V4L2_PRIORITY_INTERACTIVE,
-};
-
-struct v4l2_rect {
- __s32 left;
- __s32 top;
- __s32 width;
- __s32 height;
-};
-
-struct v4l2_fract {
- __u32 numerator;
- __u32 denominator;
-};
-
-/**
- * struct v4l2_capability - Describes V4L2 device caps returned by VIDIOC_QUERYCAP
- *
- * @driver: name of the driver module (e.g. "bttv")
- * @card: name of the card (e.g. "Hauppauge WinTV")
- * @bus_info: name of the bus (e.g. "PCI:" + pci_name(pci_dev) )
- * @version: KERNEL_VERSION
- * @capabilities: capabilities of the physical device as a whole
- * @device_caps: capabilities accessed via this particular device (node)
- * @reserved: reserved fields for future extensions
- */
-struct v4l2_capability {
- __u8 driver[16];
- __u8 card[32];
- __u8 bus_info[32];
- __u32 version;
- __u32 capabilities;
- __u32 device_caps;
- __u32 reserved[3];
-};
-
-/* Values for 'capabilities' field */
-#define V4L2_CAP_VIDEO_CAPTURE 0x00000001 /* Is a video capture device */
-#define V4L2_CAP_VIDEO_OUTPUT 0x00000002 /* Is a video output device */
-#define V4L2_CAP_VIDEO_OVERLAY 0x00000004 /* Can do video overlay */
-#define V4L2_CAP_VBI_CAPTURE 0x00000010 /* Is a raw VBI capture device */
-#define V4L2_CAP_VBI_OUTPUT 0x00000020 /* Is a raw VBI output device */
-#define V4L2_CAP_SLICED_VBI_CAPTURE 0x00000040 /* Is a sliced VBI capture device */
-#define V4L2_CAP_SLICED_VBI_OUTPUT 0x00000080 /* Is a sliced VBI output device */
-#define V4L2_CAP_RDS_CAPTURE 0x00000100 /* RDS data capture */
-#define V4L2_CAP_VIDEO_OUTPUT_OVERLAY 0x00000200 /* Can do video output overlay */
-#define V4L2_CAP_HW_FREQ_SEEK 0x00000400 /* Can do hardware frequency seek */
-#define V4L2_CAP_RDS_OUTPUT 0x00000800 /* Is an RDS encoder */
-
-/* Is a video capture device that supports multiplanar formats */
-#define V4L2_CAP_VIDEO_CAPTURE_MPLANE 0x00001000
-/* Is a video output device that supports multiplanar formats */
-#define V4L2_CAP_VIDEO_OUTPUT_MPLANE 0x00002000
-
-#define V4L2_CAP_TUNER 0x00010000 /* has a tuner */
-#define V4L2_CAP_AUDIO 0x00020000 /* has audio support */
-#define V4L2_CAP_RADIO 0x00040000 /* is a radio device */
-#define V4L2_CAP_MODULATOR 0x00080000 /* has a modulator */
-
-#define V4L2_CAP_READWRITE 0x01000000 /* read/write systemcalls */
-#define V4L2_CAP_ASYNCIO 0x02000000 /* async I/O */
-#define V4L2_CAP_STREAMING 0x04000000 /* streaming I/O ioctls */
-
-#define V4L2_CAP_DEVICE_CAPS 0x80000000 /* sets device capabilities field */
-
-/*
- * V I D E O I M A G E F O R M A T
- */
-struct v4l2_pix_format {
- __u32 width;
- __u32 height;
- __u32 pixelformat;
- enum v4l2_field field;
- __u32 bytesperline; /* for padding, zero if unused */
- __u32 sizeimage;
- enum v4l2_colorspace colorspace;
- __u32 priv; /* private data, depends on pixelformat */
-};
-
-/* Pixel format FOURCC depth Description */
-
-/* RGB formats */
-#define V4L2_PIX_FMT_RGB332 v4l2_fourcc('R', 'G', 'B', '1') /* 8 RGB-3-3-2 */
-#define V4L2_PIX_FMT_RGB444 v4l2_fourcc('R', '4', '4', '4') /* 16 xxxxrrrr ggggbbbb */
-#define V4L2_PIX_FMT_RGB555 v4l2_fourcc('R', 'G', 'B', 'O') /* 16 RGB-5-5-5 */
-#define V4L2_PIX_FMT_RGB565 v4l2_fourcc('R', 'G', 'B', 'P') /* 16 RGB-5-6-5 */
-#define V4L2_PIX_FMT_RGB555X v4l2_fourcc('R', 'G', 'B', 'Q') /* 16 RGB-5-5-5 BE */
-#define V4L2_PIX_FMT_RGB565X v4l2_fourcc('R', 'G', 'B', 'R') /* 16 RGB-5-6-5 BE */
-#define V4L2_PIX_FMT_BGR666 v4l2_fourcc('B', 'G', 'R', 'H') /* 18 BGR-6-6-6 */
-#define V4L2_PIX_FMT_BGR24 v4l2_fourcc('B', 'G', 'R', '3') /* 24 BGR-8-8-8 */
-#define V4L2_PIX_FMT_RGB24 v4l2_fourcc('R', 'G', 'B', '3') /* 24 RGB-8-8-8 */
-#define V4L2_PIX_FMT_BGR32 v4l2_fourcc('B', 'G', 'R', '4') /* 32 BGR-8-8-8-8 */
-#define V4L2_PIX_FMT_RGB32 v4l2_fourcc('R', 'G', 'B', '4') /* 32 RGB-8-8-8-8 */
-
-/* Grey formats */
-#define V4L2_PIX_FMT_GREY v4l2_fourcc('G', 'R', 'E', 'Y') /* 8 Greyscale */
-#define V4L2_PIX_FMT_Y4 v4l2_fourcc('Y', '0', '4', ' ') /* 4 Greyscale */
-#define V4L2_PIX_FMT_Y6 v4l2_fourcc('Y', '0', '6', ' ') /* 6 Greyscale */
-#define V4L2_PIX_FMT_Y10 v4l2_fourcc('Y', '1', '0', ' ') /* 10 Greyscale */
-#define V4L2_PIX_FMT_Y12 v4l2_fourcc('Y', '1', '2', ' ') /* 12 Greyscale */
-#define V4L2_PIX_FMT_Y16 v4l2_fourcc('Y', '1', '6', ' ') /* 16 Greyscale */
-
-/* Grey bit-packed formats */
-#define V4L2_PIX_FMT_Y10BPACK v4l2_fourcc('Y', '1', '0', 'B') /* 10 Greyscale bit-packed */
-
-/* Palette formats */
-#define V4L2_PIX_FMT_PAL8 v4l2_fourcc('P', 'A', 'L', '8') /* 8 8-bit palette */
-
-/* Luminance+Chrominance formats */
-#define V4L2_PIX_FMT_YVU410 v4l2_fourcc('Y', 'V', 'U', '9') /* 9 YVU 4:1:0 */
-#define V4L2_PIX_FMT_YVU420 v4l2_fourcc('Y', 'V', '1', '2') /* 12 YVU 4:2:0 */
-#define V4L2_PIX_FMT_YUYV v4l2_fourcc('Y', 'U', 'Y', 'V') /* 16 YUV 4:2:2 */
-#define V4L2_PIX_FMT_YYUV v4l2_fourcc('Y', 'Y', 'U', 'V') /* 16 YUV 4:2:2 */
-#define V4L2_PIX_FMT_YVYU v4l2_fourcc('Y', 'V', 'Y', 'U') /* 16 YVU 4:2:2 */
-#define V4L2_PIX_FMT_UYVY v4l2_fourcc('U', 'Y', 'V', 'Y') /* 16 YUV 4:2:2 */
-#define V4L2_PIX_FMT_VYUY v4l2_fourcc('V', 'Y', 'U', 'Y') /* 16 YUV 4:2:2 */
-#define V4L2_PIX_FMT_YUV422P v4l2_fourcc('4', '2', '2', 'P') /* 16 YVU422 planar */
-#define V4L2_PIX_FMT_YUV411P v4l2_fourcc('4', '1', '1', 'P') /* 16 YVU411 planar */
-#define V4L2_PIX_FMT_Y41P v4l2_fourcc('Y', '4', '1', 'P') /* 12 YUV 4:1:1 */
-#define V4L2_PIX_FMT_YUV444 v4l2_fourcc('Y', '4', '4', '4') /* 16 xxxxyyyy uuuuvvvv */
-#define V4L2_PIX_FMT_YUV555 v4l2_fourcc('Y', 'U', 'V', 'O') /* 16 YUV-5-5-5 */
-#define V4L2_PIX_FMT_YUV565 v4l2_fourcc('Y', 'U', 'V', 'P') /* 16 YUV-5-6-5 */
-#define V4L2_PIX_FMT_YUV32 v4l2_fourcc('Y', 'U', 'V', '4') /* 32 YUV-8-8-8-8 */
-#define V4L2_PIX_FMT_YUV410 v4l2_fourcc('Y', 'U', 'V', '9') /* 9 YUV 4:1:0 */
-#define V4L2_PIX_FMT_YUV420 v4l2_fourcc('Y', 'U', '1', '2') /* 12 YUV 4:2:0 */
-#define V4L2_PIX_FMT_HI240 v4l2_fourcc('H', 'I', '2', '4') /* 8 8-bit color */
-#define V4L2_PIX_FMT_HM12 v4l2_fourcc('H', 'M', '1', '2') /* 8 YUV 4:2:0 16x16 macroblocks */
-#define V4L2_PIX_FMT_M420 v4l2_fourcc('M', '4', '2', '0') /* 12 YUV 4:2:0 2 lines y, 1 line uv interleaved */
-
-/* two planes -- one Y, one Cr + Cb interleaved */
-#define V4L2_PIX_FMT_NV12 v4l2_fourcc('N', 'V', '1', '2') /* 12 Y/CbCr 4:2:0 */
-#define V4L2_PIX_FMT_NV21 v4l2_fourcc('N', 'V', '2', '1') /* 12 Y/CrCb 4:2:0 */
-#define V4L2_PIX_FMT_NV16 v4l2_fourcc('N', 'V', '1', '6') /* 16 Y/CbCr 4:2:2 */
-#define V4L2_PIX_FMT_NV61 v4l2_fourcc('N', 'V', '6', '1') /* 16 Y/CrCb 4:2:2 */
-#define V4L2_PIX_FMT_NV24 v4l2_fourcc('N', 'V', '2', '4') /* 24 Y/CbCr 4:4:4 */
-#define V4L2_PIX_FMT_NV42 v4l2_fourcc('N', 'V', '4', '2') /* 24 Y/CrCb 4:4:4 */
-
-/* two non contiguous planes - one Y, one Cr + Cb interleaved */
-#define V4L2_PIX_FMT_NV12M v4l2_fourcc('N', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 */
-#define V4L2_PIX_FMT_NV12MT v4l2_fourcc('T', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 64x32 macroblocks */
-
-/* three non contiguous planes - Y, Cb, Cr */
-#define V4L2_PIX_FMT_YUV420M v4l2_fourcc('Y', 'M', '1', '2') /* 12 YUV420 planar */
-
-/* Bayer formats - see http://www.siliconimaging.com/RGB%20Bayer.htm */
-#define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B', 'A', '8', '1') /* 8 BGBG.. GRGR.. */
-#define V4L2_PIX_FMT_SGBRG8 v4l2_fourcc('G', 'B', 'R', 'G') /* 8 GBGB.. RGRG.. */
-#define V4L2_PIX_FMT_SGRBG8 v4l2_fourcc('G', 'R', 'B', 'G') /* 8 GRGR.. BGBG.. */
-#define V4L2_PIX_FMT_SRGGB8 v4l2_fourcc('R', 'G', 'G', 'B') /* 8 RGRG.. GBGB.. */
-#define V4L2_PIX_FMT_SBGGR10 v4l2_fourcc('B', 'G', '1', '0') /* 10 BGBG.. GRGR.. */
-#define V4L2_PIX_FMT_SGBRG10 v4l2_fourcc('G', 'B', '1', '0') /* 10 GBGB.. RGRG.. */
-#define V4L2_PIX_FMT_SGRBG10 v4l2_fourcc('B', 'A', '1', '0') /* 10 GRGR.. BGBG.. */
-#define V4L2_PIX_FMT_SRGGB10 v4l2_fourcc('R', 'G', '1', '0') /* 10 RGRG.. GBGB.. */
-#define V4L2_PIX_FMT_SBGGR12 v4l2_fourcc('B', 'G', '1', '2') /* 12 BGBG.. GRGR.. */
-#define V4L2_PIX_FMT_SGBRG12 v4l2_fourcc('G', 'B', '1', '2') /* 12 GBGB.. RGRG.. */
-#define V4L2_PIX_FMT_SGRBG12 v4l2_fourcc('B', 'A', '1', '2') /* 12 GRGR.. BGBG.. */
-#define V4L2_PIX_FMT_SRGGB12 v4l2_fourcc('R', 'G', '1', '2') /* 12 RGRG.. GBGB.. */
- /* 10bit raw bayer DPCM compressed to 8 bits */
-#define V4L2_PIX_FMT_SGRBG10DPCM8 v4l2_fourcc('B', 'D', '1', '0')
- /*
- * 10bit raw bayer, expanded to 16 bits
- * xxxxrrrrrrrrrrxxxxgggggggggg xxxxggggggggggxxxxbbbbbbbbbb...
- */
-#define V4L2_PIX_FMT_SBGGR16 v4l2_fourcc('B', 'Y', 'R', '2') /* 16 BGBG.. GRGR.. */
-
-/* compressed formats */
-#define V4L2_PIX_FMT_MJPEG v4l2_fourcc('M', 'J', 'P', 'G') /* Motion-JPEG */
-#define V4L2_PIX_FMT_JPEG v4l2_fourcc('J', 'P', 'E', 'G') /* JFIF JPEG */
-#define V4L2_PIX_FMT_DV v4l2_fourcc('d', 'v', 's', 'd') /* 1394 */
-#define V4L2_PIX_FMT_MPEG v4l2_fourcc('M', 'P', 'E', 'G') /* MPEG-1/2/4 Multiplexed */
-#define V4L2_PIX_FMT_H264 v4l2_fourcc('H', '2', '6', '4') /* H264 with start codes */
-#define V4L2_PIX_FMT_H264_NO_SC v4l2_fourcc('A', 'V', 'C', '1') /* H264 without start codes */
-#define V4L2_PIX_FMT_H263 v4l2_fourcc('H', '2', '6', '3') /* H263 */
-#define V4L2_PIX_FMT_MPEG1 v4l2_fourcc('M', 'P', 'G', '1') /* MPEG-1 ES */
-#define V4L2_PIX_FMT_MPEG2 v4l2_fourcc('M', 'P', 'G', '2') /* MPEG-2 ES */
-#define V4L2_PIX_FMT_MPEG4 v4l2_fourcc('M', 'P', 'G', '4') /* MPEG-4 ES */
-#define V4L2_PIX_FMT_XVID v4l2_fourcc('X', 'V', 'I', 'D') /* Xvid */
-#define V4L2_PIX_FMT_VC1_ANNEX_G v4l2_fourcc('V', 'C', '1', 'G') /* SMPTE 421M Annex G compliant stream */
-#define V4L2_PIX_FMT_VC1_ANNEX_L v4l2_fourcc('V', 'C', '1', 'L') /* SMPTE 421M Annex L compliant stream */
-
-/* Vendor-specific formats */
-#define V4L2_PIX_FMT_CPIA1 v4l2_fourcc('C', 'P', 'I', 'A') /* cpia1 YUV */
-#define V4L2_PIX_FMT_WNVA v4l2_fourcc('W', 'N', 'V', 'A') /* Winnov hw compress */
-#define V4L2_PIX_FMT_SN9C10X v4l2_fourcc('S', '9', '1', '0') /* SN9C10x compression */
-#define V4L2_PIX_FMT_SN9C20X_I420 v4l2_fourcc('S', '9', '2', '0') /* SN9C20x YUV 4:2:0 */
-#define V4L2_PIX_FMT_PWC1 v4l2_fourcc('P', 'W', 'C', '1') /* pwc older webcam */
-#define V4L2_PIX_FMT_PWC2 v4l2_fourcc('P', 'W', 'C', '2') /* pwc newer webcam */
-#define V4L2_PIX_FMT_ET61X251 v4l2_fourcc('E', '6', '2', '5') /* ET61X251 compression */
-#define V4L2_PIX_FMT_SPCA501 v4l2_fourcc('S', '5', '0', '1') /* YUYV per line */
-#define V4L2_PIX_FMT_SPCA505 v4l2_fourcc('S', '5', '0', '5') /* YYUV per line */
-#define V4L2_PIX_FMT_SPCA508 v4l2_fourcc('S', '5', '0', '8') /* YUVY per line */
-#define V4L2_PIX_FMT_SPCA561 v4l2_fourcc('S', '5', '6', '1') /* compressed GBRG bayer */
-#define V4L2_PIX_FMT_PAC207 v4l2_fourcc('P', '2', '0', '7') /* compressed BGGR bayer */
-#define V4L2_PIX_FMT_MR97310A v4l2_fourcc('M', '3', '1', '0') /* compressed BGGR bayer */
-#define V4L2_PIX_FMT_JL2005BCD v4l2_fourcc('J', 'L', '2', '0') /* compressed RGGB bayer */
-#define V4L2_PIX_FMT_SN9C2028 v4l2_fourcc('S', 'O', 'N', 'X') /* compressed GBRG bayer */
-#define V4L2_PIX_FMT_SQ905C v4l2_fourcc('9', '0', '5', 'C') /* compressed RGGB bayer */
-#define V4L2_PIX_FMT_PJPG v4l2_fourcc('P', 'J', 'P', 'G') /* Pixart 73xx JPEG */
-#define V4L2_PIX_FMT_OV511 v4l2_fourcc('O', '5', '1', '1') /* ov511 JPEG */
-#define V4L2_PIX_FMT_OV518 v4l2_fourcc('O', '5', '1', '8') /* ov518 JPEG */
-#define V4L2_PIX_FMT_STV0680 v4l2_fourcc('S', '6', '8', '0') /* stv0680 bayer */
-#define V4L2_PIX_FMT_TM6000 v4l2_fourcc('T', 'M', '6', '0') /* tm5600/tm60x0 */
-#define V4L2_PIX_FMT_CIT_YYVYUY v4l2_fourcc('C', 'I', 'T', 'V') /* one line of Y then 1 line of VYUY */
-#define V4L2_PIX_FMT_KONICA420 v4l2_fourcc('K', 'O', 'N', 'I') /* YUV420 planar in blocks of 256 pixels */
-#define V4L2_PIX_FMT_JPGL v4l2_fourcc('J', 'P', 'G', 'L') /* JPEG-Lite */
-#define V4L2_PIX_FMT_SE401 v4l2_fourcc('S', '4', '0', '1') /* se401 janggu compressed rgb */
-
-/*
- * F O R M A T E N U M E R A T I O N
- */
-struct v4l2_fmtdesc {
- __u32 index; /* Format number */
- enum v4l2_buf_type type; /* buffer type */
- __u32 flags;
- __u8 description[32]; /* Description string */
- __u32 pixelformat; /* Format fourcc */
- __u32 reserved[4];
-};
-
-#define V4L2_FMT_FLAG_COMPRESSED 0x0001
-#define V4L2_FMT_FLAG_EMULATED 0x0002
-
-#if 1
- /* Experimental Frame Size and frame rate enumeration */
-/*
- * F R A M E S I Z E E N U M E R A T I O N
- */
-enum v4l2_frmsizetypes {
- V4L2_FRMSIZE_TYPE_DISCRETE = 1,
- V4L2_FRMSIZE_TYPE_CONTINUOUS = 2,
- V4L2_FRMSIZE_TYPE_STEPWISE = 3,
-};
-
-struct v4l2_frmsize_discrete {
- __u32 width; /* Frame width [pixel] */
- __u32 height; /* Frame height [pixel] */
-};
-
-struct v4l2_frmsize_stepwise {
- __u32 min_width; /* Minimum frame width [pixel] */
- __u32 max_width; /* Maximum frame width [pixel] */
- __u32 step_width; /* Frame width step size [pixel] */
- __u32 min_height; /* Minimum frame height [pixel] */
- __u32 max_height; /* Maximum frame height [pixel] */
- __u32 step_height; /* Frame height step size [pixel] */
-};
-
-struct v4l2_frmsizeenum {
- __u32 index; /* Frame size number */
- __u32 pixel_format; /* Pixel format */
- __u32 type; /* Frame size type the device supports. */
-
- union { /* Frame size */
- struct v4l2_frmsize_discrete discrete;
- struct v4l2_frmsize_stepwise stepwise;
- };
-
- __u32 reserved[2]; /* Reserved space for future use */
-};
-
-/*
- * F R A M E R A T E E N U M E R A T I O N
- */
-enum v4l2_frmivaltypes {
- V4L2_FRMIVAL_TYPE_DISCRETE = 1,
- V4L2_FRMIVAL_TYPE_CONTINUOUS = 2,
- V4L2_FRMIVAL_TYPE_STEPWISE = 3,
-};
-
-struct v4l2_frmival_stepwise {
- struct v4l2_fract min; /* Minimum frame interval [s] */
- struct v4l2_fract max; /* Maximum frame interval [s] */
- struct v4l2_fract step; /* Frame interval step size [s] */
-};
-
-struct v4l2_frmivalenum {
- __u32 index; /* Frame format index */
- __u32 pixel_format; /* Pixel format */
- __u32 width; /* Frame width */
- __u32 height; /* Frame height */
- __u32 type; /* Frame interval type the device supports. */
-
- union { /* Frame interval */
- struct v4l2_fract discrete;
- struct v4l2_frmival_stepwise stepwise;
- };
-
- __u32 reserved[2]; /* Reserved space for future use */
-};
-#endif
-
-/*
- * T I M E C O D E
- */
-struct v4l2_timecode {
- __u32 type;
- __u32 flags;
- __u8 frames;
- __u8 seconds;
- __u8 minutes;
- __u8 hours;
- __u8 userbits[4];
-};
-
-/* Type */
-#define V4L2_TC_TYPE_24FPS 1
-#define V4L2_TC_TYPE_25FPS 2
-#define V4L2_TC_TYPE_30FPS 3
-#define V4L2_TC_TYPE_50FPS 4
-#define V4L2_TC_TYPE_60FPS 5
-
-/* Flags */
-#define V4L2_TC_FLAG_DROPFRAME 0x0001 /* "drop-frame" mode */
-#define V4L2_TC_FLAG_COLORFRAME 0x0002
-#define V4L2_TC_USERBITS_field 0x000C
-#define V4L2_TC_USERBITS_USERDEFINED 0x0000
-#define V4L2_TC_USERBITS_8BITCHARS 0x0008
-/* The above is based on SMPTE timecodes */
-
-struct v4l2_jpegcompression {
- int quality;
-
- int APPn; /* Number of APP segment to be written,
- * must be 0..15 */
- int APP_len; /* Length of data in JPEG APPn segment */
- char APP_data[60]; /* Data in the JPEG APPn segment. */
-
- int COM_len; /* Length of data in JPEG COM segment */
- char COM_data[60]; /* Data in JPEG COM segment */
-
- __u32 jpeg_markers; /* Which markers should go into the JPEG
- * output. Unless you exactly know what
- * you do, leave them untouched.
- * Inluding less markers will make the
- * resulting code smaller, but there will
- * be fewer applications which can read it.
- * The presence of the APP and COM marker
- * is influenced by APP_len and COM_len
- * ONLY, not by this property! */
-
-#define V4L2_JPEG_MARKER_DHT (1<<3) /* Define Huffman Tables */
-#define V4L2_JPEG_MARKER_DQT (1<<4) /* Define Quantization Tables */
-#define V4L2_JPEG_MARKER_DRI (1<<5) /* Define Restart Interval */
-#define V4L2_JPEG_MARKER_COM (1<<6) /* Comment segment */
-#define V4L2_JPEG_MARKER_APP (1<<7) /* App segment, driver will
- * allways use APP0 */
-};
-
-/*
- * M E M O R Y - M A P P I N G B U F F E R S
- */
-struct v4l2_requestbuffers {
- __u32 count;
- enum v4l2_buf_type type;
- enum v4l2_memory memory;
- __u32 reserved[2];
-};
-
-/**
- * struct v4l2_plane - plane info for multi-planar buffers
- * @bytesused: number of bytes occupied by data in the plane (payload)
- * @length: size of this plane (NOT the payload) in bytes
- * @mem_offset: when memory in the associated struct v4l2_buffer is
- * V4L2_MEMORY_MMAP, equals the offset from the start of
- * the device memory for this plane (or is a "cookie" that
- * should be passed to mmap() called on the video node)
- * @userptr: when memory is V4L2_MEMORY_USERPTR, a userspace pointer
- * pointing to this plane
- * @data_offset: offset in the plane to the start of data; usually 0,
- * unless there is a header in front of the data
- *
- * Multi-planar buffers consist of one or more planes, e.g. an YCbCr buffer
- * with two planes can have one plane for Y, and another for interleaved CbCr
- * components. Each plane can reside in a separate memory buffer, or even in
- * a completely separate memory node (e.g. in embedded devices).
- */
-struct v4l2_plane {
- __u32 bytesused;
- __u32 length;
- union {
- __u32 mem_offset;
- unsigned long userptr;
- } m;
- __u32 data_offset;
- __u32 reserved[11];
-};
-
-/**
- * struct v4l2_buffer - video buffer info
- * @index: id number of the buffer
- * @type: buffer type (type == *_MPLANE for multiplanar buffers)
- * @bytesused: number of bytes occupied by data in the buffer (payload);
- * unused (set to 0) for multiplanar buffers
- * @flags: buffer informational flags
- * @field: field order of the image in the buffer
- * @timestamp: frame timestamp
- * @timecode: frame timecode
- * @sequence: sequence count of this frame
- * @memory: the method, in which the actual video data is passed
- * @offset: for non-multiplanar buffers with memory == V4L2_MEMORY_MMAP;
- * offset from the start of the device memory for this plane,
- * (or a "cookie" that should be passed to mmap() as offset)
- * @userptr: for non-multiplanar buffers with memory == V4L2_MEMORY_USERPTR;
- * a userspace pointer pointing to this buffer
- * @planes: for multiplanar buffers; userspace pointer to the array of plane
- * info structs for this buffer
- * @length: size in bytes of the buffer (NOT its payload) for single-plane
- * buffers (when type != *_MPLANE); number of elements in the
- * planes array for multi-plane buffers
- * @input: input number from which the video data has has been captured
- *
- * Contains data exchanged by application and driver using one of the Streaming
- * I/O methods.
- */
-struct v4l2_buffer {
- __u32 index;
- enum v4l2_buf_type type;
- __u32 bytesused;
- __u32 flags;
- enum v4l2_field field;
- struct timeval timestamp;
- struct v4l2_timecode timecode;
- __u32 sequence;
-
- /* memory location */
- enum v4l2_memory memory;
- union {
- __u32 offset;
- unsigned long userptr;
- struct v4l2_plane *planes;
- } m;
- __u32 length;
- __u32 input;
- __u32 reserved;
-};
-
-/* Flags for 'flags' field */
-#define V4L2_BUF_FLAG_MAPPED 0x0001 /* Buffer is mapped (flag) */
-#define V4L2_BUF_FLAG_QUEUED 0x0002 /* Buffer is queued for processing */
-#define V4L2_BUF_FLAG_DONE 0x0004 /* Buffer is ready */
-#define V4L2_BUF_FLAG_KEYFRAME 0x0008 /* Image is a keyframe (I-frame) */
-#define V4L2_BUF_FLAG_PFRAME 0x0010 /* Image is a P-frame */
-#define V4L2_BUF_FLAG_BFRAME 0x0020 /* Image is a B-frame */
-/* Buffer is ready, but the data contained within is corrupted. */
-#define V4L2_BUF_FLAG_ERROR 0x0040
-#define V4L2_BUF_FLAG_TIMECODE 0x0100 /* timecode field is valid */
-#define V4L2_BUF_FLAG_INPUT 0x0200 /* input field is valid */
-#define V4L2_BUF_FLAG_PREPARED 0x0400 /* Buffer is prepared for queuing */
-/* Cache handling flags */
-#define V4L2_BUF_FLAG_NO_CACHE_INVALIDATE 0x0800
-#define V4L2_BUF_FLAG_NO_CACHE_CLEAN 0x1000
-
-/*
- * O V E R L A Y P R E V I E W
- */
-struct v4l2_framebuffer {
- __u32 capability;
- __u32 flags;
-/* FIXME: in theory we should pass something like PCI device + memory
- * region + offset instead of some physical address */
- void *base;
- struct v4l2_pix_format fmt;
-};
-/* Flags for the 'capability' field. Read only */
-#define V4L2_FBUF_CAP_EXTERNOVERLAY 0x0001
-#define V4L2_FBUF_CAP_CHROMAKEY 0x0002
-#define V4L2_FBUF_CAP_LIST_CLIPPING 0x0004
-#define V4L2_FBUF_CAP_BITMAP_CLIPPING 0x0008
-#define V4L2_FBUF_CAP_LOCAL_ALPHA 0x0010
-#define V4L2_FBUF_CAP_GLOBAL_ALPHA 0x0020
-#define V4L2_FBUF_CAP_LOCAL_INV_ALPHA 0x0040
-#define V4L2_FBUF_CAP_SRC_CHROMAKEY 0x0080
-/* Flags for the 'flags' field. */
-#define V4L2_FBUF_FLAG_PRIMARY 0x0001
-#define V4L2_FBUF_FLAG_OVERLAY 0x0002
-#define V4L2_FBUF_FLAG_CHROMAKEY 0x0004
-#define V4L2_FBUF_FLAG_LOCAL_ALPHA 0x0008
-#define V4L2_FBUF_FLAG_GLOBAL_ALPHA 0x0010
-#define V4L2_FBUF_FLAG_LOCAL_INV_ALPHA 0x0020
-#define V4L2_FBUF_FLAG_SRC_CHROMAKEY 0x0040
-
-struct v4l2_clip {
- struct v4l2_rect c;
- struct v4l2_clip __user *next;
-};
-
-struct v4l2_window {
- struct v4l2_rect w;
- enum v4l2_field field;
- __u32 chromakey;
- struct v4l2_clip __user *clips;
- __u32 clipcount;
- void __user *bitmap;
- __u8 global_alpha;
-};
-
-/*
- * C A P T U R E P A R A M E T E R S
- */
-struct v4l2_captureparm {
- __u32 capability; /* Supported modes */
- __u32 capturemode; /* Current mode */
- struct v4l2_fract timeperframe; /* Time per frame in .1us units */
- __u32 extendedmode; /* Driver-specific extensions */
- __u32 readbuffers; /* # of buffers for read */
- __u32 reserved[4];
-};
-
-/* Flags for 'capability' and 'capturemode' fields */
-#define V4L2_MODE_HIGHQUALITY 0x0001 /* High quality imaging mode */
-#define V4L2_CAP_TIMEPERFRAME 0x1000 /* timeperframe field is supported */
-
-struct v4l2_outputparm {
- __u32 capability; /* Supported modes */
- __u32 outputmode; /* Current mode */
- struct v4l2_fract timeperframe; /* Time per frame in seconds */
- __u32 extendedmode; /* Driver-specific extensions */
- __u32 writebuffers; /* # of buffers for write */
- __u32 reserved[4];
-};
-
-/*
- * I N P U T I M A G E C R O P P I N G
- */
-struct v4l2_cropcap {
- enum v4l2_buf_type type;
- struct v4l2_rect bounds;
- struct v4l2_rect defrect;
- struct v4l2_fract pixelaspect;
-};
-
-struct v4l2_crop {
- enum v4l2_buf_type type;
- struct v4l2_rect c;
-};
-
-/* Hints for adjustments of selection rectangle */
-#define V4L2_SEL_FLAG_GE 0x00000001
-#define V4L2_SEL_FLAG_LE 0x00000002
-
-/* Selection targets */
-
-/* Current cropping area */
-#define V4L2_SEL_TGT_CROP_ACTIVE 0x0000
-/* Default cropping area */
-#define V4L2_SEL_TGT_CROP_DEFAULT 0x0001
-/* Cropping bounds */
-#define V4L2_SEL_TGT_CROP_BOUNDS 0x0002
-/* Current composing area */
-#define V4L2_SEL_TGT_COMPOSE_ACTIVE 0x0100
-/* Default composing area */
-#define V4L2_SEL_TGT_COMPOSE_DEFAULT 0x0101
-/* Composing bounds */
-#define V4L2_SEL_TGT_COMPOSE_BOUNDS 0x0102
-/* Current composing area plus all padding pixels */
-#define V4L2_SEL_TGT_COMPOSE_PADDED 0x0103
-
-/**
- * struct v4l2_selection - selection info
- * @type: buffer type (do not use *_MPLANE types)
- * @target: selection target, used to choose one of possible rectangles
- * @flags: constraints flags
- * @r: coordinates of selection window
- * @reserved: for future use, rounds structure size to 64 bytes, set to zero
- *
- * Hardware may use multiple helper windows to process a video stream.
- * The structure is used to exchange this selection areas between
- * an application and a driver.
- */
-struct v4l2_selection {
- __u32 type;
- __u32 target;
- __u32 flags;
- struct v4l2_rect r;
- __u32 reserved[9];
-};
-
-
-/*
- * A N A L O G V I D E O S T A N D A R D
- */
-
-typedef __u64 v4l2_std_id;
-
-/* one bit for each */
-#define V4L2_STD_PAL_B ((v4l2_std_id)0x00000001)
-#define V4L2_STD_PAL_B1 ((v4l2_std_id)0x00000002)
-#define V4L2_STD_PAL_G ((v4l2_std_id)0x00000004)
-#define V4L2_STD_PAL_H ((v4l2_std_id)0x00000008)
-#define V4L2_STD_PAL_I ((v4l2_std_id)0x00000010)
-#define V4L2_STD_PAL_D ((v4l2_std_id)0x00000020)
-#define V4L2_STD_PAL_D1 ((v4l2_std_id)0x00000040)
-#define V4L2_STD_PAL_K ((v4l2_std_id)0x00000080)
-
-#define V4L2_STD_PAL_M ((v4l2_std_id)0x00000100)
-#define V4L2_STD_PAL_N ((v4l2_std_id)0x00000200)
-#define V4L2_STD_PAL_Nc ((v4l2_std_id)0x00000400)
-#define V4L2_STD_PAL_60 ((v4l2_std_id)0x00000800)
-
-#define V4L2_STD_NTSC_M ((v4l2_std_id)0x00001000) /* BTSC */
-#define V4L2_STD_NTSC_M_JP ((v4l2_std_id)0x00002000) /* EIA-J */
-#define V4L2_STD_NTSC_443 ((v4l2_std_id)0x00004000)
-#define V4L2_STD_NTSC_M_KR ((v4l2_std_id)0x00008000) /* FM A2 */
-
-#define V4L2_STD_SECAM_B ((v4l2_std_id)0x00010000)
-#define V4L2_STD_SECAM_D ((v4l2_std_id)0x00020000)
-#define V4L2_STD_SECAM_G ((v4l2_std_id)0x00040000)
-#define V4L2_STD_SECAM_H ((v4l2_std_id)0x00080000)
-#define V4L2_STD_SECAM_K ((v4l2_std_id)0x00100000)
-#define V4L2_STD_SECAM_K1 ((v4l2_std_id)0x00200000)
-#define V4L2_STD_SECAM_L ((v4l2_std_id)0x00400000)
-#define V4L2_STD_SECAM_LC ((v4l2_std_id)0x00800000)
-
-/* ATSC/HDTV */
-#define V4L2_STD_ATSC_8_VSB ((v4l2_std_id)0x01000000)
-#define V4L2_STD_ATSC_16_VSB ((v4l2_std_id)0x02000000)
-
-/* FIXME:
- Although std_id is 64 bits, there is an issue on PPC32 architecture that
- makes switch(__u64) to break. So, there's a hack on v4l2-common.c rounding
- this value to 32 bits.
- As, currently, the max value is for V4L2_STD_ATSC_16_VSB (30 bits wide),
- it should work fine. However, if needed to add more than two standards,
- v4l2-common.c should be fixed.
- */
-
-/*
- * Some macros to merge video standards in order to make live easier for the
- * drivers and V4L2 applications
- */
-
-/*
- * "Common" NTSC/M - It should be noticed that V4L2_STD_NTSC_443 is
- * Missing here.
- */
-#define V4L2_STD_NTSC (V4L2_STD_NTSC_M |\
- V4L2_STD_NTSC_M_JP |\
- V4L2_STD_NTSC_M_KR)
-/* Secam macros */
-#define V4L2_STD_SECAM_DK (V4L2_STD_SECAM_D |\
- V4L2_STD_SECAM_K |\
- V4L2_STD_SECAM_K1)
-/* All Secam Standards */
-#define V4L2_STD_SECAM (V4L2_STD_SECAM_B |\
- V4L2_STD_SECAM_G |\
- V4L2_STD_SECAM_H |\
- V4L2_STD_SECAM_DK |\
- V4L2_STD_SECAM_L |\
- V4L2_STD_SECAM_LC)
-/* PAL macros */
-#define V4L2_STD_PAL_BG (V4L2_STD_PAL_B |\
- V4L2_STD_PAL_B1 |\
- V4L2_STD_PAL_G)
-#define V4L2_STD_PAL_DK (V4L2_STD_PAL_D |\
- V4L2_STD_PAL_D1 |\
- V4L2_STD_PAL_K)
-/*
- * "Common" PAL - This macro is there to be compatible with the old
- * V4L1 concept of "PAL": /BGDKHI.
- * Several PAL standards are mising here: /M, /N and /Nc
- */
-#define V4L2_STD_PAL (V4L2_STD_PAL_BG |\
- V4L2_STD_PAL_DK |\
- V4L2_STD_PAL_H |\
- V4L2_STD_PAL_I)
-/* Chroma "agnostic" standards */
-#define V4L2_STD_B (V4L2_STD_PAL_B |\
- V4L2_STD_PAL_B1 |\
- V4L2_STD_SECAM_B)
-#define V4L2_STD_G (V4L2_STD_PAL_G |\
- V4L2_STD_SECAM_G)
-#define V4L2_STD_H (V4L2_STD_PAL_H |\
- V4L2_STD_SECAM_H)
-#define V4L2_STD_L (V4L2_STD_SECAM_L |\
- V4L2_STD_SECAM_LC)
-#define V4L2_STD_GH (V4L2_STD_G |\
- V4L2_STD_H)
-#define V4L2_STD_DK (V4L2_STD_PAL_DK |\
- V4L2_STD_SECAM_DK)
-#define V4L2_STD_BG (V4L2_STD_B |\
- V4L2_STD_G)
-#define V4L2_STD_MN (V4L2_STD_PAL_M |\
- V4L2_STD_PAL_N |\
- V4L2_STD_PAL_Nc |\
- V4L2_STD_NTSC)
-
-/* Standards where MTS/BTSC stereo could be found */
-#define V4L2_STD_MTS (V4L2_STD_NTSC_M |\
- V4L2_STD_PAL_M |\
- V4L2_STD_PAL_N |\
- V4L2_STD_PAL_Nc)
-
-/* Standards for Countries with 60Hz Line frequency */
-#define V4L2_STD_525_60 (V4L2_STD_PAL_M |\
- V4L2_STD_PAL_60 |\
- V4L2_STD_NTSC |\
- V4L2_STD_NTSC_443)
-/* Standards for Countries with 50Hz Line frequency */
-#define V4L2_STD_625_50 (V4L2_STD_PAL |\
- V4L2_STD_PAL_N |\
- V4L2_STD_PAL_Nc |\
- V4L2_STD_SECAM)
-
-#define V4L2_STD_ATSC (V4L2_STD_ATSC_8_VSB |\
- V4L2_STD_ATSC_16_VSB)
-/* Macros with none and all analog standards */
-#define V4L2_STD_UNKNOWN 0
-#define V4L2_STD_ALL (V4L2_STD_525_60 |\
- V4L2_STD_625_50)
-
-struct v4l2_standard {
- __u32 index;
- v4l2_std_id id;
- __u8 name[24];
- struct v4l2_fract frameperiod; /* Frames, not fields */
- __u32 framelines;
- __u32 reserved[4];
-};
-
-/*
- * V I D E O T I M I N G S D V P R E S E T
- */
-struct v4l2_dv_preset {
- __u32 preset;
- __u32 reserved[4];
-};
-
-/*
- * D V P R E S E T S E N U M E R A T I O N
- */
-struct v4l2_dv_enum_preset {
- __u32 index;
- __u32 preset;
- __u8 name[32]; /* Name of the preset timing */
- __u32 width;
- __u32 height;
- __u32 reserved[4];
-};
-
-/*
- * D V P R E S E T V A L U E S
- */
-#define V4L2_DV_INVALID 0
-#define V4L2_DV_480P59_94 1 /* BT.1362 */
-#define V4L2_DV_576P50 2 /* BT.1362 */
-#define V4L2_DV_720P24 3 /* SMPTE 296M */
-#define V4L2_DV_720P25 4 /* SMPTE 296M */
-#define V4L2_DV_720P30 5 /* SMPTE 296M */
-#define V4L2_DV_720P50 6 /* SMPTE 296M */
-#define V4L2_DV_720P59_94 7 /* SMPTE 274M */
-#define V4L2_DV_720P60 8 /* SMPTE 274M/296M */
-#define V4L2_DV_1080I29_97 9 /* BT.1120/ SMPTE 274M */
-#define V4L2_DV_1080I30 10 /* BT.1120/ SMPTE 274M */
-#define V4L2_DV_1080I25 11 /* BT.1120 */
-#define V4L2_DV_1080I50 12 /* SMPTE 296M */
-#define V4L2_DV_1080I60 13 /* SMPTE 296M */
-#define V4L2_DV_1080P24 14 /* SMPTE 296M */
-#define V4L2_DV_1080P25 15 /* SMPTE 296M */
-#define V4L2_DV_1080P30 16 /* SMPTE 296M */
-#define V4L2_DV_1080P50 17 /* BT.1120 */
-#define V4L2_DV_1080P60 18 /* BT.1120 */
-
-/*
- * D V B T T I M I N G S
- */
-
-/* BT.656/BT.1120 timing data */
-struct v4l2_bt_timings {
- __u32 width; /* width in pixels */
- __u32 height; /* height in lines */
- __u32 interlaced; /* Interlaced or progressive */
- __u32 polarities; /* Positive or negative polarity */
- __u64 pixelclock; /* Pixel clock in HZ. Ex. 74.25MHz->74250000 */
- __u32 hfrontporch; /* Horizpontal front porch in pixels */
- __u32 hsync; /* Horizontal Sync length in pixels */
- __u32 hbackporch; /* Horizontal back porch in pixels */
- __u32 vfrontporch; /* Vertical front porch in pixels */
- __u32 vsync; /* Vertical Sync length in lines */
- __u32 vbackporch; /* Vertical back porch in lines */
- __u32 il_vfrontporch; /* Vertical front porch for bottom field of
- * interlaced field formats
- */
- __u32 il_vsync; /* Vertical sync length for bottom field of
- * interlaced field formats
- */
- __u32 il_vbackporch; /* Vertical back porch for bottom field of
- * interlaced field formats
- */
- __u32 reserved[16];
-} __attribute__ ((packed));
-
-/* Interlaced or progressive format */
-#define V4L2_DV_PROGRESSIVE 0
-#define V4L2_DV_INTERLACED 1
-
-/* Polarities. If bit is not set, it is assumed to be negative polarity */
-#define V4L2_DV_VSYNC_POS_POL 0x00000001
-#define V4L2_DV_HSYNC_POS_POL 0x00000002
-
-
-/* DV timings */
-struct v4l2_dv_timings {
- __u32 type;
- union {
- struct v4l2_bt_timings bt;
- __u32 reserved[32];
- };
-} __attribute__ ((packed));
-
-/* Values for the type field */
-#define V4L2_DV_BT_656_1120 0 /* BT.656/1120 timing type */
-
-/*
- * V I D E O I N P U T S
- */
-struct v4l2_input {
- __u32 index; /* Which input */
- __u8 name[32]; /* Label */
- __u32 type; /* Type of input */
- __u32 audioset; /* Associated audios (bitfield) */
- __u32 tuner; /* Associated tuner */
- v4l2_std_id std;
- __u32 status;
- __u32 capabilities;
- __u32 reserved[3];
-};
-
-/* Values for the 'type' field */
-#define V4L2_INPUT_TYPE_TUNER 1
-#define V4L2_INPUT_TYPE_CAMERA 2
-
-/* field 'status' - general */
-#define V4L2_IN_ST_NO_POWER 0x00000001 /* Attached device is off */
-#define V4L2_IN_ST_NO_SIGNAL 0x00000002
-#define V4L2_IN_ST_NO_COLOR 0x00000004
-
-/* field 'status' - sensor orientation */
-/* If sensor is mounted upside down set both bits */
-#define V4L2_IN_ST_HFLIP 0x00000010 /* Frames are flipped horizontally */
-#define V4L2_IN_ST_VFLIP 0x00000020 /* Frames are flipped vertically */
-
-/* field 'status' - analog */
-#define V4L2_IN_ST_NO_H_LOCK 0x00000100 /* No horizontal sync lock */
-#define V4L2_IN_ST_COLOR_KILL 0x00000200 /* Color killer is active */
-
-/* field 'status' - digital */
-#define V4L2_IN_ST_NO_SYNC 0x00010000 /* No synchronization lock */
-#define V4L2_IN_ST_NO_EQU 0x00020000 /* No equalizer lock */
-#define V4L2_IN_ST_NO_CARRIER 0x00040000 /* Carrier recovery failed */
-
-/* field 'status' - VCR and set-top box */
-#define V4L2_IN_ST_MACROVISION 0x01000000 /* Macrovision detected */
-#define V4L2_IN_ST_NO_ACCESS 0x02000000 /* Conditional access denied */
-#define V4L2_IN_ST_VTR 0x04000000 /* VTR time constant */
-
-/* capabilities flags */
-#define V4L2_IN_CAP_PRESETS 0x00000001 /* Supports S_DV_PRESET */
-#define V4L2_IN_CAP_CUSTOM_TIMINGS 0x00000002 /* Supports S_DV_TIMINGS */
-#define V4L2_IN_CAP_STD 0x00000004 /* Supports S_STD */
-
-/*
- * V I D E O O U T P U T S
- */
-struct v4l2_output {
- __u32 index; /* Which output */
- __u8 name[32]; /* Label */
- __u32 type; /* Type of output */
- __u32 audioset; /* Associated audios (bitfield) */
- __u32 modulator; /* Associated modulator */
- v4l2_std_id std;
- __u32 capabilities;
- __u32 reserved[3];
-};
-/* Values for the 'type' field */
-#define V4L2_OUTPUT_TYPE_MODULATOR 1
-#define V4L2_OUTPUT_TYPE_ANALOG 2
-#define V4L2_OUTPUT_TYPE_ANALOGVGAOVERLAY 3
-
-/* capabilities flags */
-#define V4L2_OUT_CAP_PRESETS 0x00000001 /* Supports S_DV_PRESET */
-#define V4L2_OUT_CAP_CUSTOM_TIMINGS 0x00000002 /* Supports S_DV_TIMINGS */
-#define V4L2_OUT_CAP_STD 0x00000004 /* Supports S_STD */
-
-/*
- * C O N T R O L S
- */
-struct v4l2_control {
- __u32 id;
- __s32 value;
-};
-
-struct v4l2_ext_control {
- __u32 id;
- __u32 size;
- __u32 reserved2[1];
- union {
- __s32 value;
- __s64 value64;
- char *string;
- };
-} __attribute__ ((packed));
-
-struct v4l2_ext_controls {
- __u32 ctrl_class;
- __u32 count;
- __u32 error_idx;
- __u32 reserved[2];
- struct v4l2_ext_control *controls;
-};
-
-/* Values for ctrl_class field */
-#define V4L2_CTRL_CLASS_USER 0x00980000 /* Old-style 'user' controls */
-#define V4L2_CTRL_CLASS_MPEG 0x00990000 /* MPEG-compression controls */
-#define V4L2_CTRL_CLASS_CAMERA 0x009a0000 /* Camera class controls */
-#define V4L2_CTRL_CLASS_FM_TX 0x009b0000 /* FM Modulator control class */
-#define V4L2_CTRL_CLASS_FLASH 0x009c0000 /* Camera flash controls */
-#define V4L2_CTRL_CLASS_JPEG 0x009d0000 /* JPEG-compression controls */
-
-#define V4L2_CTRL_ID_MASK (0x0fffffff)
-#define V4L2_CTRL_ID2CLASS(id) ((id) & 0x0fff0000UL)
-#define V4L2_CTRL_DRIVER_PRIV(id) (((id) & 0xffff) >= 0x1000)
-
-enum v4l2_ctrl_type {
- V4L2_CTRL_TYPE_INTEGER = 1,
- V4L2_CTRL_TYPE_BOOLEAN = 2,
- V4L2_CTRL_TYPE_MENU = 3,
- V4L2_CTRL_TYPE_BUTTON = 4,
- V4L2_CTRL_TYPE_INTEGER64 = 5,
- V4L2_CTRL_TYPE_CTRL_CLASS = 6,
- V4L2_CTRL_TYPE_STRING = 7,
- V4L2_CTRL_TYPE_BITMASK = 8,
-};
-
-/* Used in the VIDIOC_QUERYCTRL ioctl for querying controls */
-struct v4l2_queryctrl {
- __u32 id;
- enum v4l2_ctrl_type type;
- __u8 name[32]; /* Whatever */
- __s32 minimum; /* Note signedness */
- __s32 maximum;
- __s32 step;
- __s32 default_value;
- __u32 flags;
- __u32 reserved[2];
-};
-
-/* Used in the VIDIOC_QUERYMENU ioctl for querying menu items */
-struct v4l2_querymenu {
- __u32 id;
- __u32 index;
- __u8 name[32]; /* Whatever */
- __u32 reserved;
-};
-
-/* Control flags */
-#define V4L2_CTRL_FLAG_DISABLED 0x0001
-#define V4L2_CTRL_FLAG_GRABBED 0x0002
-#define V4L2_CTRL_FLAG_READ_ONLY 0x0004
-#define V4L2_CTRL_FLAG_UPDATE 0x0008
-#define V4L2_CTRL_FLAG_INACTIVE 0x0010
-#define V4L2_CTRL_FLAG_SLIDER 0x0020
-#define V4L2_CTRL_FLAG_WRITE_ONLY 0x0040
-#define V4L2_CTRL_FLAG_VOLATILE 0x0080
-
-/* Query flag, to be ORed with the control ID */
-#define V4L2_CTRL_FLAG_NEXT_CTRL 0x80000000
-
-/* User-class control IDs defined by V4L2 */
-#define V4L2_CID_MAX_CTRLS 1024
-#define V4L2_CID_BASE (V4L2_CTRL_CLASS_USER | 0x900)
-#define V4L2_CID_USER_BASE V4L2_CID_BASE
-/* IDs reserved for driver specific controls */
-#define V4L2_CID_PRIVATE_BASE 0x08000000
-
-#define V4L2_CID_USER_CLASS (V4L2_CTRL_CLASS_USER | 1)
-#define V4L2_CID_BRIGHTNESS (V4L2_CID_BASE+0)
-#define V4L2_CID_CONTRAST (V4L2_CID_BASE+1)
-#define V4L2_CID_SATURATION (V4L2_CID_BASE+2)
-#define V4L2_CID_HUE (V4L2_CID_BASE+3)
-#define V4L2_CID_AUDIO_VOLUME (V4L2_CID_BASE+5)
-#define V4L2_CID_AUDIO_BALANCE (V4L2_CID_BASE+6)
-#define V4L2_CID_AUDIO_BASS (V4L2_CID_BASE+7)
-#define V4L2_CID_AUDIO_TREBLE (V4L2_CID_BASE+8)
-#define V4L2_CID_AUDIO_MUTE (V4L2_CID_BASE+9)
-#define V4L2_CID_AUDIO_LOUDNESS (V4L2_CID_BASE+10)
-#define V4L2_CID_BLACK_LEVEL (V4L2_CID_BASE+11) /* Deprecated */
-#define V4L2_CID_AUTO_WHITE_BALANCE (V4L2_CID_BASE+12)
-#define V4L2_CID_DO_WHITE_BALANCE (V4L2_CID_BASE+13)
-#define V4L2_CID_RED_BALANCE (V4L2_CID_BASE+14)
-#define V4L2_CID_BLUE_BALANCE (V4L2_CID_BASE+15)
-#define V4L2_CID_GAMMA (V4L2_CID_BASE+16)
-#define V4L2_CID_WHITENESS (V4L2_CID_GAMMA) /* Deprecated */
-#define V4L2_CID_EXPOSURE (V4L2_CID_BASE+17)
-#define V4L2_CID_AUTOGAIN (V4L2_CID_BASE+18)
-#define V4L2_CID_GAIN (V4L2_CID_BASE+19)
-#define V4L2_CID_HFLIP (V4L2_CID_BASE+20)
-#define V4L2_CID_VFLIP (V4L2_CID_BASE+21)
-
-/* Deprecated; use V4L2_CID_PAN_RESET and V4L2_CID_TILT_RESET */
-#define V4L2_CID_HCENTER (V4L2_CID_BASE+22)
-#define V4L2_CID_VCENTER (V4L2_CID_BASE+23)
-
-#define V4L2_CID_POWER_LINE_FREQUENCY (V4L2_CID_BASE+24)
-enum v4l2_power_line_frequency {
- V4L2_CID_POWER_LINE_FREQUENCY_DISABLED = 0,
- V4L2_CID_POWER_LINE_FREQUENCY_50HZ = 1,
- V4L2_CID_POWER_LINE_FREQUENCY_60HZ = 2,
- V4L2_CID_POWER_LINE_FREQUENCY_AUTO = 3,
-};
-#define V4L2_CID_HUE_AUTO (V4L2_CID_BASE+25)
-#define V4L2_CID_WHITE_BALANCE_TEMPERATURE (V4L2_CID_BASE+26)
-#define V4L2_CID_SHARPNESS (V4L2_CID_BASE+27)
-#define V4L2_CID_BACKLIGHT_COMPENSATION (V4L2_CID_BASE+28)
-#define V4L2_CID_CHROMA_AGC (V4L2_CID_BASE+29)
-#define V4L2_CID_COLOR_KILLER (V4L2_CID_BASE+30)
-#define V4L2_CID_COLORFX (V4L2_CID_BASE+31)
-enum v4l2_colorfx {
- V4L2_COLORFX_NONE = 0,
- V4L2_COLORFX_BW = 1,
- V4L2_COLORFX_SEPIA = 2,
- V4L2_COLORFX_NEGATIVE = 3,
- V4L2_COLORFX_EMBOSS = 4,
- V4L2_COLORFX_SKETCH = 5,
- V4L2_COLORFX_SKY_BLUE = 6,
- V4L2_COLORFX_GRASS_GREEN = 7,
- V4L2_COLORFX_SKIN_WHITEN = 8,
- V4L2_COLORFX_VIVID = 9,
-};
-#define V4L2_CID_AUTOBRIGHTNESS (V4L2_CID_BASE+32)
-#define V4L2_CID_BAND_STOP_FILTER (V4L2_CID_BASE+33)
-
-#define V4L2_CID_ROTATE (V4L2_CID_BASE+34)
-#define V4L2_CID_BG_COLOR (V4L2_CID_BASE+35)
-
-#define V4L2_CID_CHROMA_GAIN (V4L2_CID_BASE+36)
-
-#define V4L2_CID_ILLUMINATORS_1 (V4L2_CID_BASE+37)
-#define V4L2_CID_ILLUMINATORS_2 (V4L2_CID_BASE+38)
-
-#define V4L2_CID_MIN_BUFFERS_FOR_CAPTURE (V4L2_CID_BASE+39)
-#define V4L2_CID_MIN_BUFFERS_FOR_OUTPUT (V4L2_CID_BASE+40)
-
-#define V4L2_CID_ALPHA_COMPONENT (V4L2_CID_BASE+41)
-
-/* last CID + 1 */
-#define V4L2_CID_LASTP1 (V4L2_CID_BASE+42)
-
-/* MPEG-class control IDs defined by V4L2 */
-#define V4L2_CID_MPEG_BASE (V4L2_CTRL_CLASS_MPEG | 0x900)
-#define V4L2_CID_MPEG_CLASS (V4L2_CTRL_CLASS_MPEG | 1)
-
-/* MPEG streams, specific to multiplexed streams */
-#define V4L2_CID_MPEG_STREAM_TYPE (V4L2_CID_MPEG_BASE+0)
-enum v4l2_mpeg_stream_type {
- V4L2_MPEG_STREAM_TYPE_MPEG2_PS = 0, /* MPEG-2 program stream */
- V4L2_MPEG_STREAM_TYPE_MPEG2_TS = 1, /* MPEG-2 transport stream */
- V4L2_MPEG_STREAM_TYPE_MPEG1_SS = 2, /* MPEG-1 system stream */
- V4L2_MPEG_STREAM_TYPE_MPEG2_DVD = 3, /* MPEG-2 DVD-compatible stream */
- V4L2_MPEG_STREAM_TYPE_MPEG1_VCD = 4, /* MPEG-1 VCD-compatible stream */
- V4L2_MPEG_STREAM_TYPE_MPEG2_SVCD = 5, /* MPEG-2 SVCD-compatible stream */
-};
-#define V4L2_CID_MPEG_STREAM_PID_PMT (V4L2_CID_MPEG_BASE+1)
-#define V4L2_CID_MPEG_STREAM_PID_AUDIO (V4L2_CID_MPEG_BASE+2)
-#define V4L2_CID_MPEG_STREAM_PID_VIDEO (V4L2_CID_MPEG_BASE+3)
-#define V4L2_CID_MPEG_STREAM_PID_PCR (V4L2_CID_MPEG_BASE+4)
-#define V4L2_CID_MPEG_STREAM_PES_ID_AUDIO (V4L2_CID_MPEG_BASE+5)
-#define V4L2_CID_MPEG_STREAM_PES_ID_VIDEO (V4L2_CID_MPEG_BASE+6)
-#define V4L2_CID_MPEG_STREAM_VBI_FMT (V4L2_CID_MPEG_BASE+7)
-enum v4l2_mpeg_stream_vbi_fmt {
- V4L2_MPEG_STREAM_VBI_FMT_NONE = 0, /* No VBI in the MPEG stream */
- V4L2_MPEG_STREAM_VBI_FMT_IVTV = 1, /* VBI in private packets, IVTV format */
-};
-
-/* MPEG audio controls specific to multiplexed streams */
-#define V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ (V4L2_CID_MPEG_BASE+100)
-enum v4l2_mpeg_audio_sampling_freq {
- V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100 = 0,
- V4L2_MPEG_AUDIO_SAMPLING_FREQ_48000 = 1,
- V4L2_MPEG_AUDIO_SAMPLING_FREQ_32000 = 2,
-};
-#define V4L2_CID_MPEG_AUDIO_ENCODING (V4L2_CID_MPEG_BASE+101)
-enum v4l2_mpeg_audio_encoding {
- V4L2_MPEG_AUDIO_ENCODING_LAYER_1 = 0,
- V4L2_MPEG_AUDIO_ENCODING_LAYER_2 = 1,
- V4L2_MPEG_AUDIO_ENCODING_LAYER_3 = 2,
- V4L2_MPEG_AUDIO_ENCODING_AAC = 3,
- V4L2_MPEG_AUDIO_ENCODING_AC3 = 4,
-};
-#define V4L2_CID_MPEG_AUDIO_L1_BITRATE (V4L2_CID_MPEG_BASE+102)
-enum v4l2_mpeg_audio_l1_bitrate {
- V4L2_MPEG_AUDIO_L1_BITRATE_32K = 0,
- V4L2_MPEG_AUDIO_L1_BITRATE_64K = 1,
- V4L2_MPEG_AUDIO_L1_BITRATE_96K = 2,
- V4L2_MPEG_AUDIO_L1_BITRATE_128K = 3,
- V4L2_MPEG_AUDIO_L1_BITRATE_160K = 4,
- V4L2_MPEG_AUDIO_L1_BITRATE_192K = 5,
- V4L2_MPEG_AUDIO_L1_BITRATE_224K = 6,
- V4L2_MPEG_AUDIO_L1_BITRATE_256K = 7,
- V4L2_MPEG_AUDIO_L1_BITRATE_288K = 8,
- V4L2_MPEG_AUDIO_L1_BITRATE_320K = 9,
- V4L2_MPEG_AUDIO_L1_BITRATE_352K = 10,
- V4L2_MPEG_AUDIO_L1_BITRATE_384K = 11,
- V4L2_MPEG_AUDIO_L1_BITRATE_416K = 12,
- V4L2_MPEG_AUDIO_L1_BITRATE_448K = 13,
-};
-#define V4L2_CID_MPEG_AUDIO_L2_BITRATE (V4L2_CID_MPEG_BASE+103)
-enum v4l2_mpeg_audio_l2_bitrate {
- V4L2_MPEG_AUDIO_L2_BITRATE_32K = 0,
- V4L2_MPEG_AUDIO_L2_BITRATE_48K = 1,
- V4L2_MPEG_AUDIO_L2_BITRATE_56K = 2,
- V4L2_MPEG_AUDIO_L2_BITRATE_64K = 3,
- V4L2_MPEG_AUDIO_L2_BITRATE_80K = 4,
- V4L2_MPEG_AUDIO_L2_BITRATE_96K = 5,
- V4L2_MPEG_AUDIO_L2_BITRATE_112K = 6,
- V4L2_MPEG_AUDIO_L2_BITRATE_128K = 7,
- V4L2_MPEG_AUDIO_L2_BITRATE_160K = 8,
- V4L2_MPEG_AUDIO_L2_BITRATE_192K = 9,
- V4L2_MPEG_AUDIO_L2_BITRATE_224K = 10,
- V4L2_MPEG_AUDIO_L2_BITRATE_256K = 11,
- V4L2_MPEG_AUDIO_L2_BITRATE_320K = 12,
- V4L2_MPEG_AUDIO_L2_BITRATE_384K = 13,
-};
-#define V4L2_CID_MPEG_AUDIO_L3_BITRATE (V4L2_CID_MPEG_BASE+104)
-enum v4l2_mpeg_audio_l3_bitrate {
- V4L2_MPEG_AUDIO_L3_BITRATE_32K = 0,
- V4L2_MPEG_AUDIO_L3_BITRATE_40K = 1,
- V4L2_MPEG_AUDIO_L3_BITRATE_48K = 2,
- V4L2_MPEG_AUDIO_L3_BITRATE_56K = 3,
- V4L2_MPEG_AUDIO_L3_BITRATE_64K = 4,
- V4L2_MPEG_AUDIO_L3_BITRATE_80K = 5,
- V4L2_MPEG_AUDIO_L3_BITRATE_96K = 6,
- V4L2_MPEG_AUDIO_L3_BITRATE_112K = 7,
- V4L2_MPEG_AUDIO_L3_BITRATE_128K = 8,
- V4L2_MPEG_AUDIO_L3_BITRATE_160K = 9,
- V4L2_MPEG_AUDIO_L3_BITRATE_192K = 10,
- V4L2_MPEG_AUDIO_L3_BITRATE_224K = 11,
- V4L2_MPEG_AUDIO_L3_BITRATE_256K = 12,
- V4L2_MPEG_AUDIO_L3_BITRATE_320K = 13,
-};
-#define V4L2_CID_MPEG_AUDIO_MODE (V4L2_CID_MPEG_BASE+105)
-enum v4l2_mpeg_audio_mode {
- V4L2_MPEG_AUDIO_MODE_STEREO = 0,
- V4L2_MPEG_AUDIO_MODE_JOINT_STEREO = 1,
- V4L2_MPEG_AUDIO_MODE_DUAL = 2,
- V4L2_MPEG_AUDIO_MODE_MONO = 3,
-};
-#define V4L2_CID_MPEG_AUDIO_MODE_EXTENSION (V4L2_CID_MPEG_BASE+106)
-enum v4l2_mpeg_audio_mode_extension {
- V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_4 = 0,
- V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_8 = 1,
- V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_12 = 2,
- V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_16 = 3,
-};
-#define V4L2_CID_MPEG_AUDIO_EMPHASIS (V4L2_CID_MPEG_BASE+107)
-enum v4l2_mpeg_audio_emphasis {
- V4L2_MPEG_AUDIO_EMPHASIS_NONE = 0,
- V4L2_MPEG_AUDIO_EMPHASIS_50_DIV_15_uS = 1,
- V4L2_MPEG_AUDIO_EMPHASIS_CCITT_J17 = 2,
-};
-#define V4L2_CID_MPEG_AUDIO_CRC (V4L2_CID_MPEG_BASE+108)
-enum v4l2_mpeg_audio_crc {
- V4L2_MPEG_AUDIO_CRC_NONE = 0,
- V4L2_MPEG_AUDIO_CRC_CRC16 = 1,
-};
-#define V4L2_CID_MPEG_AUDIO_MUTE (V4L2_CID_MPEG_BASE+109)
-#define V4L2_CID_MPEG_AUDIO_AAC_BITRATE (V4L2_CID_MPEG_BASE+110)
-#define V4L2_CID_MPEG_AUDIO_AC3_BITRATE (V4L2_CID_MPEG_BASE+111)
-enum v4l2_mpeg_audio_ac3_bitrate {
- V4L2_MPEG_AUDIO_AC3_BITRATE_32K = 0,
- V4L2_MPEG_AUDIO_AC3_BITRATE_40K = 1,
- V4L2_MPEG_AUDIO_AC3_BITRATE_48K = 2,
- V4L2_MPEG_AUDIO_AC3_BITRATE_56K = 3,
- V4L2_MPEG_AUDIO_AC3_BITRATE_64K = 4,
- V4L2_MPEG_AUDIO_AC3_BITRATE_80K = 5,
- V4L2_MPEG_AUDIO_AC3_BITRATE_96K = 6,
- V4L2_MPEG_AUDIO_AC3_BITRATE_112K = 7,
- V4L2_MPEG_AUDIO_AC3_BITRATE_128K = 8,
- V4L2_MPEG_AUDIO_AC3_BITRATE_160K = 9,
- V4L2_MPEG_AUDIO_AC3_BITRATE_192K = 10,
- V4L2_MPEG_AUDIO_AC3_BITRATE_224K = 11,
- V4L2_MPEG_AUDIO_AC3_BITRATE_256K = 12,
- V4L2_MPEG_AUDIO_AC3_BITRATE_320K = 13,
- V4L2_MPEG_AUDIO_AC3_BITRATE_384K = 14,
- V4L2_MPEG_AUDIO_AC3_BITRATE_448K = 15,
- V4L2_MPEG_AUDIO_AC3_BITRATE_512K = 16,
- V4L2_MPEG_AUDIO_AC3_BITRATE_576K = 17,
- V4L2_MPEG_AUDIO_AC3_BITRATE_640K = 18,
-};
-#define V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK (V4L2_CID_MPEG_BASE+112)
-enum v4l2_mpeg_audio_dec_playback {
- V4L2_MPEG_AUDIO_DEC_PLAYBACK_AUTO = 0,
- V4L2_MPEG_AUDIO_DEC_PLAYBACK_STEREO = 1,
- V4L2_MPEG_AUDIO_DEC_PLAYBACK_LEFT = 2,
- V4L2_MPEG_AUDIO_DEC_PLAYBACK_RIGHT = 3,
- V4L2_MPEG_AUDIO_DEC_PLAYBACK_MONO = 4,
- V4L2_MPEG_AUDIO_DEC_PLAYBACK_SWAPPED_STEREO = 5,
-};
-#define V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK (V4L2_CID_MPEG_BASE+113)
-
-/* MPEG video controls specific to multiplexed streams */
-#define V4L2_CID_MPEG_VIDEO_ENCODING (V4L2_CID_MPEG_BASE+200)
-enum v4l2_mpeg_video_encoding {
- V4L2_MPEG_VIDEO_ENCODING_MPEG_1 = 0,
- V4L2_MPEG_VIDEO_ENCODING_MPEG_2 = 1,
- V4L2_MPEG_VIDEO_ENCODING_MPEG_4_AVC = 2,
-};
-#define V4L2_CID_MPEG_VIDEO_ASPECT (V4L2_CID_MPEG_BASE+201)
-enum v4l2_mpeg_video_aspect {
- V4L2_MPEG_VIDEO_ASPECT_1x1 = 0,
- V4L2_MPEG_VIDEO_ASPECT_4x3 = 1,
- V4L2_MPEG_VIDEO_ASPECT_16x9 = 2,
- V4L2_MPEG_VIDEO_ASPECT_221x100 = 3,
-};
-#define V4L2_CID_MPEG_VIDEO_B_FRAMES (V4L2_CID_MPEG_BASE+202)
-#define V4L2_CID_MPEG_VIDEO_GOP_SIZE (V4L2_CID_MPEG_BASE+203)
-#define V4L2_CID_MPEG_VIDEO_GOP_CLOSURE (V4L2_CID_MPEG_BASE+204)
-#define V4L2_CID_MPEG_VIDEO_PULLDOWN (V4L2_CID_MPEG_BASE+205)
-#define V4L2_CID_MPEG_VIDEO_BITRATE_MODE (V4L2_CID_MPEG_BASE+206)
-enum v4l2_mpeg_video_bitrate_mode {
- V4L2_MPEG_VIDEO_BITRATE_MODE_VBR = 0,
- V4L2_MPEG_VIDEO_BITRATE_MODE_CBR = 1,
-};
-#define V4L2_CID_MPEG_VIDEO_BITRATE (V4L2_CID_MPEG_BASE+207)
-#define V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (V4L2_CID_MPEG_BASE+208)
-#define V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (V4L2_CID_MPEG_BASE+209)
-#define V4L2_CID_MPEG_VIDEO_MUTE (V4L2_CID_MPEG_BASE+210)
-#define V4L2_CID_MPEG_VIDEO_MUTE_YUV (V4L2_CID_MPEG_BASE+211)
-#define V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE (V4L2_CID_MPEG_BASE+212)
-#define V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER (V4L2_CID_MPEG_BASE+213)
-#define V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB (V4L2_CID_MPEG_BASE+214)
-#define V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE (V4L2_CID_MPEG_BASE+215)
-#define V4L2_CID_MPEG_VIDEO_HEADER_MODE (V4L2_CID_MPEG_BASE+216)
-enum v4l2_mpeg_video_header_mode {
- V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE = 0,
- V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME = 1,
-
-};
-#define V4L2_CID_MPEG_VIDEO_MAX_REF_PIC (V4L2_CID_MPEG_BASE+217)
-#define V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE (V4L2_CID_MPEG_BASE+218)
-#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES (V4L2_CID_MPEG_BASE+219)
-#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB (V4L2_CID_MPEG_BASE+220)
-#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE (V4L2_CID_MPEG_BASE+221)
-enum v4l2_mpeg_video_multi_slice_mode {
- V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE = 0,
- V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_MB = 1,
- V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_BYTES = 2,
-};
-#define V4L2_CID_MPEG_VIDEO_VBV_SIZE (V4L2_CID_MPEG_BASE+222)
-#define V4L2_CID_MPEG_VIDEO_DEC_PTS (V4L2_CID_MPEG_BASE+223)
-#define V4L2_CID_MPEG_VIDEO_DEC_FRAME (V4L2_CID_MPEG_BASE+224)
-
-#define V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (V4L2_CID_MPEG_BASE+300)
-#define V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (V4L2_CID_MPEG_BASE+301)
-#define V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP (V4L2_CID_MPEG_BASE+302)
-#define V4L2_CID_MPEG_VIDEO_H263_MIN_QP (V4L2_CID_MPEG_BASE+303)
-#define V4L2_CID_MPEG_VIDEO_H263_MAX_QP (V4L2_CID_MPEG_BASE+304)
-#define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP (V4L2_CID_MPEG_BASE+350)
-#define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP (V4L2_CID_MPEG_BASE+351)
-#define V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP (V4L2_CID_MPEG_BASE+352)
-#define V4L2_CID_MPEG_VIDEO_H264_MIN_QP (V4L2_CID_MPEG_BASE+353)
-#define V4L2_CID_MPEG_VIDEO_H264_MAX_QP (V4L2_CID_MPEG_BASE+354)
-#define V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM (V4L2_CID_MPEG_BASE+355)
-#define V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE (V4L2_CID_MPEG_BASE+356)
-#define V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE (V4L2_CID_MPEG_BASE+357)
-enum v4l2_mpeg_video_h264_entropy_mode {
- V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC = 0,
- V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC = 1,
-};
-#define V4L2_CID_MPEG_VIDEO_H264_I_PERIOD (V4L2_CID_MPEG_BASE+358)
-#define V4L2_CID_MPEG_VIDEO_H264_LEVEL (V4L2_CID_MPEG_BASE+359)
-enum v4l2_mpeg_video_h264_level {
- V4L2_MPEG_VIDEO_H264_LEVEL_1_0 = 0,
- V4L2_MPEG_VIDEO_H264_LEVEL_1B = 1,
- V4L2_MPEG_VIDEO_H264_LEVEL_1_1 = 2,
- V4L2_MPEG_VIDEO_H264_LEVEL_1_2 = 3,
- V4L2_MPEG_VIDEO_H264_LEVEL_1_3 = 4,
- V4L2_MPEG_VIDEO_H264_LEVEL_2_0 = 5,
- V4L2_MPEG_VIDEO_H264_LEVEL_2_1 = 6,
- V4L2_MPEG_VIDEO_H264_LEVEL_2_2 = 7,
- V4L2_MPEG_VIDEO_H264_LEVEL_3_0 = 8,
- V4L2_MPEG_VIDEO_H264_LEVEL_3_1 = 9,
- V4L2_MPEG_VIDEO_H264_LEVEL_3_2 = 10,
- V4L2_MPEG_VIDEO_H264_LEVEL_4_0 = 11,
- V4L2_MPEG_VIDEO_H264_LEVEL_4_1 = 12,
- V4L2_MPEG_VIDEO_H264_LEVEL_4_2 = 13,
- V4L2_MPEG_VIDEO_H264_LEVEL_5_0 = 14,
- V4L2_MPEG_VIDEO_H264_LEVEL_5_1 = 15,
-};
-#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA (V4L2_CID_MPEG_BASE+360)
-#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA (V4L2_CID_MPEG_BASE+361)
-#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE (V4L2_CID_MPEG_BASE+362)
-enum v4l2_mpeg_video_h264_loop_filter_mode {
- V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED = 0,
- V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED = 1,
- V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY = 2,
-};
-#define V4L2_CID_MPEG_VIDEO_H264_PROFILE (V4L2_CID_MPEG_BASE+363)
-enum v4l2_mpeg_video_h264_profile {
- V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE = 0,
- V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE = 1,
- V4L2_MPEG_VIDEO_H264_PROFILE_MAIN = 2,
- V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED = 3,
- V4L2_MPEG_VIDEO_H264_PROFILE_HIGH = 4,
- V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10 = 5,
- V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422 = 6,
- V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_PREDICTIVE = 7,
- V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10_INTRA = 8,
- V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422_INTRA = 9,
- V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_INTRA = 10,
- V4L2_MPEG_VIDEO_H264_PROFILE_CAVLC_444_INTRA = 11,
- V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_BASELINE = 12,
- V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH = 13,
- V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH_INTRA = 14,
- V4L2_MPEG_VIDEO_H264_PROFILE_STEREO_HIGH = 15,
- V4L2_MPEG_VIDEO_H264_PROFILE_MULTIVIEW_HIGH = 16,
-};
-#define V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT (V4L2_CID_MPEG_BASE+364)
-#define V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH (V4L2_CID_MPEG_BASE+365)
-#define V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE (V4L2_CID_MPEG_BASE+366)
-#define V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC (V4L2_CID_MPEG_BASE+367)
-enum v4l2_mpeg_video_h264_vui_sar_idc {
- V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_UNSPECIFIED = 0,
- V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_1x1 = 1,
- V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_12x11 = 2,
- V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_10x11 = 3,
- V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_16x11 = 4,
- V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_40x33 = 5,
- V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_24x11 = 6,
- V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_20x11 = 7,
- V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_32x11 = 8,
- V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_80x33 = 9,
- V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_18x11 = 10,
- V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_15x11 = 11,
- V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_64x33 = 12,
- V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_160x99 = 13,
- V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_4x3 = 14,
- V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_3x2 = 15,
- V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_2x1 = 16,
- V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_EXTENDED = 17,
-};
-#define V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP (V4L2_CID_MPEG_BASE+400)
-#define V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP (V4L2_CID_MPEG_BASE+401)
-#define V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP (V4L2_CID_MPEG_BASE+402)
-#define V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP (V4L2_CID_MPEG_BASE+403)
-#define V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP (V4L2_CID_MPEG_BASE+404)
-#define V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL (V4L2_CID_MPEG_BASE+405)
-enum v4l2_mpeg_video_mpeg4_level {
- V4L2_MPEG_VIDEO_MPEG4_LEVEL_0 = 0,
- V4L2_MPEG_VIDEO_MPEG4_LEVEL_0B = 1,
- V4L2_MPEG_VIDEO_MPEG4_LEVEL_1 = 2,
- V4L2_MPEG_VIDEO_MPEG4_LEVEL_2 = 3,
- V4L2_MPEG_VIDEO_MPEG4_LEVEL_3 = 4,
- V4L2_MPEG_VIDEO_MPEG4_LEVEL_3B = 5,
- V4L2_MPEG_VIDEO_MPEG4_LEVEL_4 = 6,
- V4L2_MPEG_VIDEO_MPEG4_LEVEL_5 = 7,
-};
-#define V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE (V4L2_CID_MPEG_BASE+406)
-enum v4l2_mpeg_video_mpeg4_profile {
- V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE = 0,
- V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_SIMPLE = 1,
- V4L2_MPEG_VIDEO_MPEG4_PROFILE_CORE = 2,
- V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE_SCALABLE = 3,
- V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY = 4,
-};
-#define V4L2_CID_MPEG_VIDEO_MPEG4_QPEL (V4L2_CID_MPEG_BASE+407)
-
-/* MPEG-class control IDs specific to the CX2341x driver as defined by V4L2 */
-#define V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000)
-#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+0)
-enum v4l2_mpeg_cx2341x_video_spatial_filter_mode {
- V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_MANUAL = 0,
- V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_AUTO = 1,
-};
-#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER (V4L2_CID_MPEG_CX2341X_BASE+1)
-#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+2)
-enum v4l2_mpeg_cx2341x_video_luma_spatial_filter_type {
- V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_OFF = 0,
- V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_HOR = 1,
- V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_VERT = 2,
- V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_HV_SEPARABLE = 3,
- V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_SYM_NON_SEPARABLE = 4,
-};
-#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+3)
-enum v4l2_mpeg_cx2341x_video_chroma_spatial_filter_type {
- V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_OFF = 0,
- V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_1D_HOR = 1,
-};
-#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+4)
-enum v4l2_mpeg_cx2341x_video_temporal_filter_mode {
- V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_MANUAL = 0,
- V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_AUTO = 1,
-};
-#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER (V4L2_CID_MPEG_CX2341X_BASE+5)
-#define V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+6)
-enum v4l2_mpeg_cx2341x_video_median_filter_type {
- V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_OFF = 0,
- V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR = 1,
- V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_VERT = 2,
- V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR_VERT = 3,
- V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_DIAG = 4,
-};
-#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_MPEG_CX2341X_BASE+7)
-#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP (V4L2_CID_MPEG_CX2341X_BASE+8)
-#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_MPEG_CX2341X_BASE+9)
-#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP (V4L2_CID_MPEG_CX2341X_BASE+10)
-#define V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS (V4L2_CID_MPEG_CX2341X_BASE+11)
-
-/* MPEG-class control IDs specific to the Samsung MFC 5.1 driver as defined by V4L2 */
-#define V4L2_CID_MPEG_MFC51_BASE (V4L2_CTRL_CLASS_MPEG | 0x1100)
-
-#define V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY (V4L2_CID_MPEG_MFC51_BASE+0)
-#define V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE (V4L2_CID_MPEG_MFC51_BASE+1)
-#define V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE (V4L2_CID_MPEG_MFC51_BASE+2)
-enum v4l2_mpeg_mfc51_video_frame_skip_mode {
- V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_DISABLED = 0,
- V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_LEVEL_LIMIT = 1,
- V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT = 2,
-};
-#define V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE (V4L2_CID_MPEG_MFC51_BASE+3)
-enum v4l2_mpeg_mfc51_video_force_frame_type {
- V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_DISABLED = 0,
- V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_I_FRAME = 1,
- V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_NOT_CODED = 2,
-};
-#define V4L2_CID_MPEG_MFC51_VIDEO_PADDING (V4L2_CID_MPEG_MFC51_BASE+4)
-#define V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV (V4L2_CID_MPEG_MFC51_BASE+5)
-#define V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT (V4L2_CID_MPEG_MFC51_BASE+6)
-#define V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF (V4L2_CID_MPEG_MFC51_BASE+7)
-#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY (V4L2_CID_MPEG_MFC51_BASE+50)
-#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK (V4L2_CID_MPEG_MFC51_BASE+51)
-#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH (V4L2_CID_MPEG_MFC51_BASE+52)
-#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC (V4L2_CID_MPEG_MFC51_BASE+53)
-#define V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P (V4L2_CID_MPEG_MFC51_BASE+54)
-
-/* Camera class control IDs */
-#define V4L2_CID_CAMERA_CLASS_BASE (V4L2_CTRL_CLASS_CAMERA | 0x900)
-#define V4L2_CID_CAMERA_CLASS (V4L2_CTRL_CLASS_CAMERA | 1)
-
-#define V4L2_CID_EXPOSURE_AUTO (V4L2_CID_CAMERA_CLASS_BASE+1)
-enum v4l2_exposure_auto_type {
- V4L2_EXPOSURE_AUTO = 0,
- V4L2_EXPOSURE_MANUAL = 1,
- V4L2_EXPOSURE_SHUTTER_PRIORITY = 2,
- V4L2_EXPOSURE_APERTURE_PRIORITY = 3
-};
-#define V4L2_CID_EXPOSURE_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+2)
-#define V4L2_CID_EXPOSURE_AUTO_PRIORITY (V4L2_CID_CAMERA_CLASS_BASE+3)
-
-#define V4L2_CID_PAN_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+4)
-#define V4L2_CID_TILT_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+5)
-#define V4L2_CID_PAN_RESET (V4L2_CID_CAMERA_CLASS_BASE+6)
-#define V4L2_CID_TILT_RESET (V4L2_CID_CAMERA_CLASS_BASE+7)
-
-#define V4L2_CID_PAN_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+8)
-#define V4L2_CID_TILT_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+9)
-
-#define V4L2_CID_FOCUS_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+10)
-#define V4L2_CID_FOCUS_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+11)
-#define V4L2_CID_FOCUS_AUTO (V4L2_CID_CAMERA_CLASS_BASE+12)
-
-#define V4L2_CID_ZOOM_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+13)
-#define V4L2_CID_ZOOM_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+14)
-#define V4L2_CID_ZOOM_CONTINUOUS (V4L2_CID_CAMERA_CLASS_BASE+15)
-
-#define V4L2_CID_PRIVACY (V4L2_CID_CAMERA_CLASS_BASE+16)
-
-#define V4L2_CID_IRIS_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+17)
-#define V4L2_CID_IRIS_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+18)
-
-/* FM Modulator class control IDs */
-#define V4L2_CID_FM_TX_CLASS_BASE (V4L2_CTRL_CLASS_FM_TX | 0x900)
-#define V4L2_CID_FM_TX_CLASS (V4L2_CTRL_CLASS_FM_TX | 1)
-
-#define V4L2_CID_RDS_TX_DEVIATION (V4L2_CID_FM_TX_CLASS_BASE + 1)
-#define V4L2_CID_RDS_TX_PI (V4L2_CID_FM_TX_CLASS_BASE + 2)
-#define V4L2_CID_RDS_TX_PTY (V4L2_CID_FM_TX_CLASS_BASE + 3)
-#define V4L2_CID_RDS_TX_PS_NAME (V4L2_CID_FM_TX_CLASS_BASE + 5)
-#define V4L2_CID_RDS_TX_RADIO_TEXT (V4L2_CID_FM_TX_CLASS_BASE + 6)
-
-#define V4L2_CID_AUDIO_LIMITER_ENABLED (V4L2_CID_FM_TX_CLASS_BASE + 64)
-#define V4L2_CID_AUDIO_LIMITER_RELEASE_TIME (V4L2_CID_FM_TX_CLASS_BASE + 65)
-#define V4L2_CID_AUDIO_LIMITER_DEVIATION (V4L2_CID_FM_TX_CLASS_BASE + 66)
-
-#define V4L2_CID_AUDIO_COMPRESSION_ENABLED (V4L2_CID_FM_TX_CLASS_BASE + 80)
-#define V4L2_CID_AUDIO_COMPRESSION_GAIN (V4L2_CID_FM_TX_CLASS_BASE + 81)
-#define V4L2_CID_AUDIO_COMPRESSION_THRESHOLD (V4L2_CID_FM_TX_CLASS_BASE + 82)
-#define V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME (V4L2_CID_FM_TX_CLASS_BASE + 83)
-#define V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME (V4L2_CID_FM_TX_CLASS_BASE + 84)
-
-#define V4L2_CID_PILOT_TONE_ENABLED (V4L2_CID_FM_TX_CLASS_BASE + 96)
-#define V4L2_CID_PILOT_TONE_DEVIATION (V4L2_CID_FM_TX_CLASS_BASE + 97)
-#define V4L2_CID_PILOT_TONE_FREQUENCY (V4L2_CID_FM_TX_CLASS_BASE + 98)
-
-#define V4L2_CID_TUNE_PREEMPHASIS (V4L2_CID_FM_TX_CLASS_BASE + 112)
-enum v4l2_preemphasis {
- V4L2_PREEMPHASIS_DISABLED = 0,
- V4L2_PREEMPHASIS_50_uS = 1,
- V4L2_PREEMPHASIS_75_uS = 2,
-};
-#define V4L2_CID_TUNE_POWER_LEVEL (V4L2_CID_FM_TX_CLASS_BASE + 113)
-#define V4L2_CID_TUNE_ANTENNA_CAPACITOR (V4L2_CID_FM_TX_CLASS_BASE + 114)
-
-/* Flash and privacy (indicator) light controls */
-#define V4L2_CID_FLASH_CLASS_BASE (V4L2_CTRL_CLASS_FLASH | 0x900)
-#define V4L2_CID_FLASH_CLASS (V4L2_CTRL_CLASS_FLASH | 1)
-
-#define V4L2_CID_FLASH_LED_MODE (V4L2_CID_FLASH_CLASS_BASE + 1)
-enum v4l2_flash_led_mode {
- V4L2_FLASH_LED_MODE_NONE,
- V4L2_FLASH_LED_MODE_FLASH,
- V4L2_FLASH_LED_MODE_TORCH,
-};
-
-#define V4L2_CID_FLASH_STROBE_SOURCE (V4L2_CID_FLASH_CLASS_BASE + 2)
-enum v4l2_flash_strobe_source {
- V4L2_FLASH_STROBE_SOURCE_SOFTWARE,
- V4L2_FLASH_STROBE_SOURCE_EXTERNAL,
-};
-
-#define V4L2_CID_FLASH_STROBE (V4L2_CID_FLASH_CLASS_BASE + 3)
-#define V4L2_CID_FLASH_STROBE_STOP (V4L2_CID_FLASH_CLASS_BASE + 4)
-#define V4L2_CID_FLASH_STROBE_STATUS (V4L2_CID_FLASH_CLASS_BASE + 5)
-
-#define V4L2_CID_FLASH_TIMEOUT (V4L2_CID_FLASH_CLASS_BASE + 6)
-#define V4L2_CID_FLASH_INTENSITY (V4L2_CID_FLASH_CLASS_BASE + 7)
-#define V4L2_CID_FLASH_TORCH_INTENSITY (V4L2_CID_FLASH_CLASS_BASE + 8)
-#define V4L2_CID_FLASH_INDICATOR_INTENSITY (V4L2_CID_FLASH_CLASS_BASE + 9)
-
-#define V4L2_CID_FLASH_FAULT (V4L2_CID_FLASH_CLASS_BASE + 10)
-#define V4L2_FLASH_FAULT_OVER_VOLTAGE (1 << 0)
-#define V4L2_FLASH_FAULT_TIMEOUT (1 << 1)
-#define V4L2_FLASH_FAULT_OVER_TEMPERATURE (1 << 2)
-#define V4L2_FLASH_FAULT_SHORT_CIRCUIT (1 << 3)
-#define V4L2_FLASH_FAULT_OVER_CURRENT (1 << 4)
-#define V4L2_FLASH_FAULT_INDICATOR (1 << 5)
-
-#define V4L2_CID_FLASH_CHARGE (V4L2_CID_FLASH_CLASS_BASE + 11)
-#define V4L2_CID_FLASH_READY (V4L2_CID_FLASH_CLASS_BASE + 12)
-
-/* JPEG-class control IDs defined by V4L2 */
-#define V4L2_CID_JPEG_CLASS_BASE (V4L2_CTRL_CLASS_JPEG | 0x900)
-#define V4L2_CID_JPEG_CLASS (V4L2_CTRL_CLASS_JPEG | 1)
-
-#define V4L2_CID_JPEG_CHROMA_SUBSAMPLING (V4L2_CID_JPEG_CLASS_BASE + 1)
-enum v4l2_jpeg_chroma_subsampling {
- V4L2_JPEG_CHROMA_SUBSAMPLING_444 = 0,
- V4L2_JPEG_CHROMA_SUBSAMPLING_422 = 1,
- V4L2_JPEG_CHROMA_SUBSAMPLING_420 = 2,
- V4L2_JPEG_CHROMA_SUBSAMPLING_411 = 3,
- V4L2_JPEG_CHROMA_SUBSAMPLING_410 = 4,
- V4L2_JPEG_CHROMA_SUBSAMPLING_GRAY = 5,
-};
-#define V4L2_CID_JPEG_RESTART_INTERVAL (V4L2_CID_JPEG_CLASS_BASE + 2)
-#define V4L2_CID_JPEG_COMPRESSION_QUALITY (V4L2_CID_JPEG_CLASS_BASE + 3)
-
-#define V4L2_CID_JPEG_ACTIVE_MARKER (V4L2_CID_JPEG_CLASS_BASE + 4)
-#define V4L2_JPEG_ACTIVE_MARKER_APP0 (1 << 0)
-#define V4L2_JPEG_ACTIVE_MARKER_APP1 (1 << 1)
-#define V4L2_JPEG_ACTIVE_MARKER_COM (1 << 16)
-#define V4L2_JPEG_ACTIVE_MARKER_DQT (1 << 17)
-#define V4L2_JPEG_ACTIVE_MARKER_DHT (1 << 18)
-
-/*
- * T U N I N G
- */
-struct v4l2_tuner {
- __u32 index;
- __u8 name[32];
- enum v4l2_tuner_type type;
- __u32 capability;
- __u32 rangelow;
- __u32 rangehigh;
- __u32 rxsubchans;
- __u32 audmode;
- __s32 signal;
- __s32 afc;
- __u32 reserved[4];
-};
-
-struct v4l2_modulator {
- __u32 index;
- __u8 name[32];
- __u32 capability;
- __u32 rangelow;
- __u32 rangehigh;
- __u32 txsubchans;
- __u32 reserved[4];
-};
-
-/* Flags for the 'capability' field */
-#define V4L2_TUNER_CAP_LOW 0x0001
-#define V4L2_TUNER_CAP_NORM 0x0002
-#define V4L2_TUNER_CAP_STEREO 0x0010
-#define V4L2_TUNER_CAP_LANG2 0x0020
-#define V4L2_TUNER_CAP_SAP 0x0020
-#define V4L2_TUNER_CAP_LANG1 0x0040
-#define V4L2_TUNER_CAP_RDS 0x0080
-#define V4L2_TUNER_CAP_RDS_BLOCK_IO 0x0100
-#define V4L2_TUNER_CAP_RDS_CONTROLS 0x0200
-
-/* Flags for the 'rxsubchans' field */
-#define V4L2_TUNER_SUB_MONO 0x0001
-#define V4L2_TUNER_SUB_STEREO 0x0002
-#define V4L2_TUNER_SUB_LANG2 0x0004
-#define V4L2_TUNER_SUB_SAP 0x0004
-#define V4L2_TUNER_SUB_LANG1 0x0008
-#define V4L2_TUNER_SUB_RDS 0x0010
-
-/* Values for the 'audmode' field */
-#define V4L2_TUNER_MODE_MONO 0x0000
-#define V4L2_TUNER_MODE_STEREO 0x0001
-#define V4L2_TUNER_MODE_LANG2 0x0002
-#define V4L2_TUNER_MODE_SAP 0x0002
-#define V4L2_TUNER_MODE_LANG1 0x0003
-#define V4L2_TUNER_MODE_LANG1_LANG2 0x0004
-
-struct v4l2_frequency {
- __u32 tuner;
- enum v4l2_tuner_type type;
- __u32 frequency;
- __u32 reserved[8];
-};
-
-struct v4l2_hw_freq_seek {
- __u32 tuner;
- enum v4l2_tuner_type type;
- __u32 seek_upward;
- __u32 wrap_around;
- __u32 spacing;
- __u32 reserved[7];
-};
-
-/*
- * R D S
- */
-
-struct v4l2_rds_data {
- __u8 lsb;
- __u8 msb;
- __u8 block;
-} __attribute__ ((packed));
-
-#define V4L2_RDS_BLOCK_MSK 0x7
-#define V4L2_RDS_BLOCK_A 0
-#define V4L2_RDS_BLOCK_B 1
-#define V4L2_RDS_BLOCK_C 2
-#define V4L2_RDS_BLOCK_D 3
-#define V4L2_RDS_BLOCK_C_ALT 4
-#define V4L2_RDS_BLOCK_INVALID 7
-
-#define V4L2_RDS_BLOCK_CORRECTED 0x40
-#define V4L2_RDS_BLOCK_ERROR 0x80
-
-/*
- * A U D I O
- */
-struct v4l2_audio {
- __u32 index;
- __u8 name[32];
- __u32 capability;
- __u32 mode;
- __u32 reserved[2];
-};
-
-/* Flags for the 'capability' field */
-#define V4L2_AUDCAP_STEREO 0x00001
-#define V4L2_AUDCAP_AVL 0x00002
-
-/* Flags for the 'mode' field */
-#define V4L2_AUDMODE_AVL 0x00001
-
-struct v4l2_audioout {
- __u32 index;
- __u8 name[32];
- __u32 capability;
- __u32 mode;
- __u32 reserved[2];
-};
-
-/*
- * M P E G S E R V I C E S
- *
- * NOTE: EXPERIMENTAL API
- */
-#if 1
-#define V4L2_ENC_IDX_FRAME_I (0)
-#define V4L2_ENC_IDX_FRAME_P (1)
-#define V4L2_ENC_IDX_FRAME_B (2)
-#define V4L2_ENC_IDX_FRAME_MASK (0xf)
-
-struct v4l2_enc_idx_entry {
- __u64 offset;
- __u64 pts;
- __u32 length;
- __u32 flags;
- __u32 reserved[2];
-};
-
-#define V4L2_ENC_IDX_ENTRIES (64)
-struct v4l2_enc_idx {
- __u32 entries;
- __u32 entries_cap;
- __u32 reserved[4];
- struct v4l2_enc_idx_entry entry[V4L2_ENC_IDX_ENTRIES];
-};
-
-
-#define V4L2_ENC_CMD_START (0)
-#define V4L2_ENC_CMD_STOP (1)
-#define V4L2_ENC_CMD_PAUSE (2)
-#define V4L2_ENC_CMD_RESUME (3)
-
-/* Flags for V4L2_ENC_CMD_STOP */
-#define V4L2_ENC_CMD_STOP_AT_GOP_END (1 << 0)
-
-struct v4l2_encoder_cmd {
- __u32 cmd;
- __u32 flags;
- union {
- struct {
- __u32 data[8];
- } raw;
- };
-};
-
-/* Decoder commands */
-#define V4L2_DEC_CMD_START (0)
-#define V4L2_DEC_CMD_STOP (1)
-#define V4L2_DEC_CMD_PAUSE (2)
-#define V4L2_DEC_CMD_RESUME (3)
-
-/* Flags for V4L2_DEC_CMD_START */
-#define V4L2_DEC_CMD_START_MUTE_AUDIO (1 << 0)
-
-/* Flags for V4L2_DEC_CMD_PAUSE */
-#define V4L2_DEC_CMD_PAUSE_TO_BLACK (1 << 0)
-
-/* Flags for V4L2_DEC_CMD_STOP */
-#define V4L2_DEC_CMD_STOP_TO_BLACK (1 << 0)
-#define V4L2_DEC_CMD_STOP_IMMEDIATELY (1 << 1)
-
-/* Play format requirements (returned by the driver): */
-
-/* The decoder has no special format requirements */
-#define V4L2_DEC_START_FMT_NONE (0)
-/* The decoder requires full GOPs */
-#define V4L2_DEC_START_FMT_GOP (1)
-
-/* The structure must be zeroed before use by the application
- This ensures it can be extended safely in the future. */
-struct v4l2_decoder_cmd {
- __u32 cmd;
- __u32 flags;
- union {
- struct {
- __u64 pts;
- } stop;
-
- struct {
- /* 0 or 1000 specifies normal speed,
- 1 specifies forward single stepping,
- -1 specifies backward single stepping,
- >1: playback at speed/1000 of the normal speed,
- <-1: reverse playback at (-speed/1000) of the normal speed. */
- __s32 speed;
- __u32 format;
- } start;
-
- struct {
- __u32 data[16];
- } raw;
- };
-};
-#endif
-
-
-/*
- * D A T A S E R V I C E S ( V B I )
- *
- * Data services API by Michael Schimek
- */
-
-/* Raw VBI */
-struct v4l2_vbi_format {
- __u32 sampling_rate; /* in 1 Hz */
- __u32 offset;
- __u32 samples_per_line;
- __u32 sample_format; /* V4L2_PIX_FMT_* */
- __s32 start[2];
- __u32 count[2];
- __u32 flags; /* V4L2_VBI_* */
- __u32 reserved[2]; /* must be zero */
-};
-
-/* VBI flags */
-#define V4L2_VBI_UNSYNC (1 << 0)
-#define V4L2_VBI_INTERLACED (1 << 1)
-
-/* Sliced VBI
- *
- * This implements is a proposal V4L2 API to allow SLICED VBI
- * required for some hardware encoders. It should change without
- * notice in the definitive implementation.
- */
-
-struct v4l2_sliced_vbi_format {
- __u16 service_set;
- /* service_lines[0][...] specifies lines 0-23 (1-23 used) of the first field
- service_lines[1][...] specifies lines 0-23 (1-23 used) of the second field
- (equals frame lines 313-336 for 625 line video
- standards, 263-286 for 525 line standards) */
- __u16 service_lines[2][24];
- __u32 io_size;
- __u32 reserved[2]; /* must be zero */
-};
-
-/* Teletext World System Teletext
- (WST), defined on ITU-R BT.653-2 */
-#define V4L2_SLICED_TELETEXT_B (0x0001)
-/* Video Program System, defined on ETS 300 231*/
-#define V4L2_SLICED_VPS (0x0400)
-/* Closed Caption, defined on EIA-608 */
-#define V4L2_SLICED_CAPTION_525 (0x1000)
-/* Wide Screen System, defined on ITU-R BT1119.1 */
-#define V4L2_SLICED_WSS_625 (0x4000)
-
-#define V4L2_SLICED_VBI_525 (V4L2_SLICED_CAPTION_525)
-#define V4L2_SLICED_VBI_625 (V4L2_SLICED_TELETEXT_B | V4L2_SLICED_VPS | V4L2_SLICED_WSS_625)
-
-struct v4l2_sliced_vbi_cap {
- __u16 service_set;
- /* service_lines[0][...] specifies lines 0-23 (1-23 used) of the first field
- service_lines[1][...] specifies lines 0-23 (1-23 used) of the second field
- (equals frame lines 313-336 for 625 line video
- standards, 263-286 for 525 line standards) */
- __u16 service_lines[2][24];
- enum v4l2_buf_type type;
- __u32 reserved[3]; /* must be 0 */
-};
-
-struct v4l2_sliced_vbi_data {
- __u32 id;
- __u32 field; /* 0: first field, 1: second field */
- __u32 line; /* 1-23 */
- __u32 reserved; /* must be 0 */
- __u8 data[48];
-};
-
-/*
- * Sliced VBI data inserted into MPEG Streams
- */
-
-/*
- * V4L2_MPEG_STREAM_VBI_FMT_IVTV:
- *
- * Structure of payload contained in an MPEG 2 Private Stream 1 PES Packet in an
- * MPEG-2 Program Pack that contains V4L2_MPEG_STREAM_VBI_FMT_IVTV Sliced VBI
- * data
- *
- * Note, the MPEG-2 Program Pack and Private Stream 1 PES packet header
- * definitions are not included here. See the MPEG-2 specifications for details
- * on these headers.
- */
-
-/* Line type IDs */
-#define V4L2_MPEG_VBI_IVTV_TELETEXT_B (1)
-#define V4L2_MPEG_VBI_IVTV_CAPTION_525 (4)
-#define V4L2_MPEG_VBI_IVTV_WSS_625 (5)
-#define V4L2_MPEG_VBI_IVTV_VPS (7)
-
-struct v4l2_mpeg_vbi_itv0_line {
- __u8 id; /* One of V4L2_MPEG_VBI_IVTV_* above */
- __u8 data[42]; /* Sliced VBI data for the line */
-} __attribute__ ((packed));
-
-struct v4l2_mpeg_vbi_itv0 {
- __le32 linemask[2]; /* Bitmasks of VBI service lines present */
- struct v4l2_mpeg_vbi_itv0_line line[35];
-} __attribute__ ((packed));
-
-struct v4l2_mpeg_vbi_ITV0 {
- struct v4l2_mpeg_vbi_itv0_line line[36];
-} __attribute__ ((packed));
-
-#define V4L2_MPEG_VBI_IVTV_MAGIC0 "itv0"
-#define V4L2_MPEG_VBI_IVTV_MAGIC1 "ITV0"
-
-struct v4l2_mpeg_vbi_fmt_ivtv {
- __u8 magic[4];
- union {
- struct v4l2_mpeg_vbi_itv0 itv0;
- struct v4l2_mpeg_vbi_ITV0 ITV0;
- };
-} __attribute__ ((packed));
-
-/*
- * A G G R E G A T E S T R U C T U R E S
- */
-
-/**
- * struct v4l2_plane_pix_format - additional, per-plane format definition
- * @sizeimage: maximum size in bytes required for data, for which
- * this plane will be used
- * @bytesperline: distance in bytes between the leftmost pixels in two
- * adjacent lines
- */
-struct v4l2_plane_pix_format {
- __u32 sizeimage;
- __u16 bytesperline;
- __u16 reserved[7];
-} __attribute__ ((packed));
-
-/**
- * struct v4l2_pix_format_mplane - multiplanar format definition
- * @width: image width in pixels
- * @height: image height in pixels
- * @pixelformat: little endian four character code (fourcc)
- * @field: field order (for interlaced video)
- * @colorspace: supplemental to pixelformat
- * @plane_fmt: per-plane information
- * @num_planes: number of planes for this format
- */
-struct v4l2_pix_format_mplane {
- __u32 width;
- __u32 height;
- __u32 pixelformat;
- enum v4l2_field field;
- enum v4l2_colorspace colorspace;
-
- struct v4l2_plane_pix_format plane_fmt[VIDEO_MAX_PLANES];
- __u8 num_planes;
- __u8 reserved[11];
-} __attribute__ ((packed));
-
-/**
- * struct v4l2_format - stream data format
- * @type: type of the data stream
- * @pix: definition of an image format
- * @pix_mp: definition of a multiplanar image format
- * @win: definition of an overlaid image
- * @vbi: raw VBI capture or output parameters
- * @sliced: sliced VBI capture or output parameters
- * @raw_data: placeholder for future extensions and custom formats
- */
-struct v4l2_format {
- enum v4l2_buf_type type;
- union {
- struct v4l2_pix_format pix; /* V4L2_BUF_TYPE_VIDEO_CAPTURE */
- struct v4l2_pix_format_mplane pix_mp; /* V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE */
- struct v4l2_window win; /* V4L2_BUF_TYPE_VIDEO_OVERLAY */
- struct v4l2_vbi_format vbi; /* V4L2_BUF_TYPE_VBI_CAPTURE */
- struct v4l2_sliced_vbi_format sliced; /* V4L2_BUF_TYPE_SLICED_VBI_CAPTURE */
- __u8 raw_data[200]; /* user-defined */
- } fmt;
-};
-
-/* Stream type-dependent parameters
- */
-struct v4l2_streamparm {
- enum v4l2_buf_type type;
- union {
- struct v4l2_captureparm capture;
- struct v4l2_outputparm output;
- __u8 raw_data[200]; /* user-defined */
- } parm;
-};
-
-/*
- * E V E N T S
- */
-
-#define V4L2_EVENT_ALL 0
-#define V4L2_EVENT_VSYNC 1
-#define V4L2_EVENT_EOS 2
-#define V4L2_EVENT_CTRL 3
-#define V4L2_EVENT_FRAME_SYNC 4
-#define V4L2_EVENT_PRIVATE_START 0x08000000
-
-/* Payload for V4L2_EVENT_VSYNC */
-struct v4l2_event_vsync {
- /* Can be V4L2_FIELD_ANY, _NONE, _TOP or _BOTTOM */
- __u8 field;
-} __attribute__ ((packed));
-
-/* Payload for V4L2_EVENT_CTRL */
-#define V4L2_EVENT_CTRL_CH_VALUE (1 << 0)
-#define V4L2_EVENT_CTRL_CH_FLAGS (1 << 1)
-
-struct v4l2_event_ctrl {
- __u32 changes;
- __u32 type;
- union {
- __s32 value;
- __s64 value64;
- };
- __u32 flags;
- __s32 minimum;
- __s32 maximum;
- __s32 step;
- __s32 default_value;
-};
-
-struct v4l2_event_frame_sync {
- __u32 frame_sequence;
-};
-
-struct v4l2_event {
- __u32 type;
- union {
- struct v4l2_event_vsync vsync;
- struct v4l2_event_ctrl ctrl;
- struct v4l2_event_frame_sync frame_sync;
- __u8 data[64];
- } u;
- __u32 pending;
- __u32 sequence;
- struct timespec timestamp;
- __u32 id;
- __u32 reserved[8];
-};
-
-#define V4L2_EVENT_SUB_FL_SEND_INITIAL (1 << 0)
-#define V4L2_EVENT_SUB_FL_ALLOW_FEEDBACK (1 << 1)
-
-struct v4l2_event_subscription {
- __u32 type;
- __u32 id;
- __u32 flags;
- __u32 reserved[5];
-};
-
-/*
- * A D V A N C E D D E B U G G I N G
- *
- * NOTE: EXPERIMENTAL API, NEVER RELY ON THIS IN APPLICATIONS!
- * FOR DEBUGGING, TESTING AND INTERNAL USE ONLY!
- */
-
-/* VIDIOC_DBG_G_REGISTER and VIDIOC_DBG_S_REGISTER */
-
-#define V4L2_CHIP_MATCH_HOST 0 /* Match against chip ID on host (0 for the host) */
-#define V4L2_CHIP_MATCH_I2C_DRIVER 1 /* Match against I2C driver name */
-#define V4L2_CHIP_MATCH_I2C_ADDR 2 /* Match against I2C 7-bit address */
-#define V4L2_CHIP_MATCH_AC97 3 /* Match against anciliary AC97 chip */
-
-struct v4l2_dbg_match {
- __u32 type; /* Match type */
- union { /* Match this chip, meaning determined by type */
- __u32 addr;
- char name[32];
- };
-} __attribute__ ((packed));
-
-struct v4l2_dbg_register {
- struct v4l2_dbg_match match;
- __u32 size; /* register size in bytes */
- __u64 reg;
- __u64 val;
-} __attribute__ ((packed));
-
-/* VIDIOC_DBG_G_CHIP_IDENT */
-struct v4l2_dbg_chip_ident {
- struct v4l2_dbg_match match;
- __u32 ident; /* chip identifier as specified in <media/v4l2-chip-ident.h> */
- __u32 revision; /* chip revision, chip specific */
-} __attribute__ ((packed));
-
-/**
- * struct v4l2_create_buffers - VIDIOC_CREATE_BUFS argument
- * @index: on return, index of the first created buffer
- * @count: entry: number of requested buffers,
- * return: number of created buffers
- * @memory: buffer memory type
- * @format: frame format, for which buffers are requested
- * @reserved: future extensions
- */
-struct v4l2_create_buffers {
- __u32 index;
- __u32 count;
- enum v4l2_memory memory;
- struct v4l2_format format;
- __u32 reserved[8];
-};
-
-/*
- * I O C T L C O D E S F O R V I D E O D E V I C E S
- *
- */
-#define VIDIOC_QUERYCAP _IOR('V', 0, struct v4l2_capability)
-#define VIDIOC_RESERVED _IO('V', 1)
-#define VIDIOC_ENUM_FMT _IOWR('V', 2, struct v4l2_fmtdesc)
-#define VIDIOC_G_FMT _IOWR('V', 4, struct v4l2_format)
-#define VIDIOC_S_FMT _IOWR('V', 5, struct v4l2_format)
-#define VIDIOC_REQBUFS _IOWR('V', 8, struct v4l2_requestbuffers)
-#define VIDIOC_QUERYBUF _IOWR('V', 9, struct v4l2_buffer)
-#define VIDIOC_G_FBUF _IOR('V', 10, struct v4l2_framebuffer)
-#define VIDIOC_S_FBUF _IOW('V', 11, struct v4l2_framebuffer)
-#define VIDIOC_OVERLAY _IOW('V', 14, int)
-#define VIDIOC_QBUF _IOWR('V', 15, struct v4l2_buffer)
-#define VIDIOC_DQBUF _IOWR('V', 17, struct v4l2_buffer)
-#define VIDIOC_STREAMON _IOW('V', 18, int)
-#define VIDIOC_STREAMOFF _IOW('V', 19, int)
-#define VIDIOC_G_PARM _IOWR('V', 21, struct v4l2_streamparm)
-#define VIDIOC_S_PARM _IOWR('V', 22, struct v4l2_streamparm)
-#define VIDIOC_G_STD _IOR('V', 23, v4l2_std_id)
-#define VIDIOC_S_STD _IOW('V', 24, v4l2_std_id)
-#define VIDIOC_ENUMSTD _IOWR('V', 25, struct v4l2_standard)
-#define VIDIOC_ENUMINPUT _IOWR('V', 26, struct v4l2_input)
-#define VIDIOC_G_CTRL _IOWR('V', 27, struct v4l2_control)
-#define VIDIOC_S_CTRL _IOWR('V', 28, struct v4l2_control)
-#define VIDIOC_G_TUNER _IOWR('V', 29, struct v4l2_tuner)
-#define VIDIOC_S_TUNER _IOW('V', 30, struct v4l2_tuner)
-#define VIDIOC_G_AUDIO _IOR('V', 33, struct v4l2_audio)
-#define VIDIOC_S_AUDIO _IOW('V', 34, struct v4l2_audio)
-#define VIDIOC_QUERYCTRL _IOWR('V', 36, struct v4l2_queryctrl)
-#define VIDIOC_QUERYMENU _IOWR('V', 37, struct v4l2_querymenu)
-#define VIDIOC_G_INPUT _IOR('V', 38, int)
-#define VIDIOC_S_INPUT _IOWR('V', 39, int)
-#define VIDIOC_G_OUTPUT _IOR('V', 46, int)
-#define VIDIOC_S_OUTPUT _IOWR('V', 47, int)
-#define VIDIOC_ENUMOUTPUT _IOWR('V', 48, struct v4l2_output)
-#define VIDIOC_G_AUDOUT _IOR('V', 49, struct v4l2_audioout)
-#define VIDIOC_S_AUDOUT _IOW('V', 50, struct v4l2_audioout)
-#define VIDIOC_G_MODULATOR _IOWR('V', 54, struct v4l2_modulator)
-#define VIDIOC_S_MODULATOR _IOW('V', 55, struct v4l2_modulator)
-#define VIDIOC_G_FREQUENCY _IOWR('V', 56, struct v4l2_frequency)
-#define VIDIOC_S_FREQUENCY _IOW('V', 57, struct v4l2_frequency)
-#define VIDIOC_CROPCAP _IOWR('V', 58, struct v4l2_cropcap)
-#define VIDIOC_G_CROP _IOWR('V', 59, struct v4l2_crop)
-#define VIDIOC_S_CROP _IOW('V', 60, struct v4l2_crop)
-#define VIDIOC_G_JPEGCOMP _IOR('V', 61, struct v4l2_jpegcompression)
-#define VIDIOC_S_JPEGCOMP _IOW('V', 62, struct v4l2_jpegcompression)
-#define VIDIOC_QUERYSTD _IOR('V', 63, v4l2_std_id)
-#define VIDIOC_TRY_FMT _IOWR('V', 64, struct v4l2_format)
-#define VIDIOC_ENUMAUDIO _IOWR('V', 65, struct v4l2_audio)
-#define VIDIOC_ENUMAUDOUT _IOWR('V', 66, struct v4l2_audioout)
-#define VIDIOC_G_PRIORITY _IOR('V', 67, enum v4l2_priority)
-#define VIDIOC_S_PRIORITY _IOW('V', 68, enum v4l2_priority)
-#define VIDIOC_G_SLICED_VBI_CAP _IOWR('V', 69, struct v4l2_sliced_vbi_cap)
-#define VIDIOC_LOG_STATUS _IO('V', 70)
-#define VIDIOC_G_EXT_CTRLS _IOWR('V', 71, struct v4l2_ext_controls)
-#define VIDIOC_S_EXT_CTRLS _IOWR('V', 72, struct v4l2_ext_controls)
-#define VIDIOC_TRY_EXT_CTRLS _IOWR('V', 73, struct v4l2_ext_controls)
-#if 1
-#define VIDIOC_ENUM_FRAMESIZES _IOWR('V', 74, struct v4l2_frmsizeenum)
-#define VIDIOC_ENUM_FRAMEINTERVALS _IOWR('V', 75, struct v4l2_frmivalenum)
-#define VIDIOC_G_ENC_INDEX _IOR('V', 76, struct v4l2_enc_idx)
-#define VIDIOC_ENCODER_CMD _IOWR('V', 77, struct v4l2_encoder_cmd)
-#define VIDIOC_TRY_ENCODER_CMD _IOWR('V', 78, struct v4l2_encoder_cmd)
-#endif
-
-#if 1
-/* Experimental, meant for debugging, testing and internal use.
- Only implemented if CONFIG_VIDEO_ADV_DEBUG is defined.
- You must be root to use these ioctls. Never use these in applications! */
-#define VIDIOC_DBG_S_REGISTER _IOW('V', 79, struct v4l2_dbg_register)
-#define VIDIOC_DBG_G_REGISTER _IOWR('V', 80, struct v4l2_dbg_register)
-
-/* Experimental, meant for debugging, testing and internal use.
- Never use this ioctl in applications! */
-#define VIDIOC_DBG_G_CHIP_IDENT _IOWR('V', 81, struct v4l2_dbg_chip_ident)
-#endif
-
-#define VIDIOC_S_HW_FREQ_SEEK _IOW('V', 82, struct v4l2_hw_freq_seek)
-#define VIDIOC_ENUM_DV_PRESETS _IOWR('V', 83, struct v4l2_dv_enum_preset)
-#define VIDIOC_S_DV_PRESET _IOWR('V', 84, struct v4l2_dv_preset)
-#define VIDIOC_G_DV_PRESET _IOWR('V', 85, struct v4l2_dv_preset)
-#define VIDIOC_QUERY_DV_PRESET _IOR('V', 86, struct v4l2_dv_preset)
-#define VIDIOC_S_DV_TIMINGS _IOWR('V', 87, struct v4l2_dv_timings)
-#define VIDIOC_G_DV_TIMINGS _IOWR('V', 88, struct v4l2_dv_timings)
-#define VIDIOC_DQEVENT _IOR('V', 89, struct v4l2_event)
-#define VIDIOC_SUBSCRIBE_EVENT _IOW('V', 90, struct v4l2_event_subscription)
-#define VIDIOC_UNSUBSCRIBE_EVENT _IOW('V', 91, struct v4l2_event_subscription)
-
-/* Experimental, the below two ioctls may change over the next couple of kernel
- versions */
-#define VIDIOC_CREATE_BUFS _IOWR('V', 92, struct v4l2_create_buffers)
-#define VIDIOC_PREPARE_BUF _IOWR('V', 93, struct v4l2_buffer)
-
-/* Experimental selection API */
-#define VIDIOC_G_SELECTION _IOWR('V', 94, struct v4l2_selection)
-#define VIDIOC_S_SELECTION _IOWR('V', 95, struct v4l2_selection)
-
-/* Experimental, these two ioctls may change over the next couple of kernel
- versions. */
-#define VIDIOC_DECODER_CMD _IOWR('V', 96, struct v4l2_decoder_cmd)
-#define VIDIOC_TRY_DECODER_CMD _IOWR('V', 97, struct v4l2_decoder_cmd)
-
-/* Reminder: when adding new ioctls please add support for them to
- drivers/media/video/v4l2-compat-ioctl32.c as well! */
-
-#define BASE_VIDIOC_PRIVATE 192 /* 192-255 are private */
-
-#endif /* __LINUX_VIDEODEV2_H */
diff --git a/ANDROID_3.4.5/include/linux/videodev2_wmt.h b/ANDROID_3.4.5/include/linux/videodev2_wmt.h
deleted file mode 100755
index 53d19f51..00000000
--- a/ANDROID_3.4.5/include/linux/videodev2_wmt.h
+++ /dev/null
@@ -1,196 +0,0 @@
-#ifndef __LINUX_VIDEODEV2_WMT_H
-#define __LINUX_VIDEODEV2_WMT_H
-
-#include <linux/videodev2.h>
-
-#define WMT_V4L2_CID_CAMERA_SCENEMODE 0
-#define WMT_V4L2_CID_CAMERA_WHITEBALANCE 1
-#define WMT_V4L2_CID_CAMERA_ANTIBANDING 2
-#define WMT_V4L2_CID_CAMERA_FLASH 3
-#define WMT_V4L2_CID_CAMERA_EXPOSURE 4
-#define WMT_V4L2_CID_HFLIP 5
-#define WMT_V4L2_CID_VFLIP 6
-
-/* CID extensions */
-#define V4L2_CID_CAMERA_SCENE_MODE (V4L2_CID_PRIVATE_BASE+0)
-enum v4l2_scene_mode {
- SCENE_MODE_BASE = 0,
- SCENE_MODE_AUTO = 0,
- SCENE_MODE_NIGHTSHOT,
- SCENE_MODE_PORTRAIT,
- SCENE_MODE_BACK_LIGHT,
- SCENE_MODE_LANDSCAPE,
- SCENE_MODE_SPORTS,
- SCENE_MODE_PARTY_INDOOR,
- SCENE_MODE_BEACH_SNOW,
- SCENE_MODE_SUNSET,
- SCENE_MODE_DUSK_DAWN,
- SCENE_MODE_FALL_COLOR,
- SCENE_MODE_FIREWORKS,
- SCENE_MODE_TEXT,
- SCENE_MODE_CANDLE_LIGHT,
- SCENE_MODE_MAX,
-};
-
-#define V4L2_CID_CAMERA_FLASH_MODE (V4L2_CID_PRIVATE_BASE+1)
-enum v4l2_flash_mode {
- FLASH_MODE_BASE = 0,
- FLASH_MODE_OFF = 0,
- FLASH_MODE_AUTO,
- FLASH_MODE_ON,
- FLASH_MODE_TORCH,
- FLASH_MODE_STROBE,
- FLASH_MODE_MAX,
-};
-
-#define V4L2_CID_CAMERA_ISO (V4L2_CID_PRIVATE_BASE+2)
-enum v4l2_iso_mode {
- ISO_AUTO = 0,
- ISO_50,
- ISO_100,
- ISO_200,
- ISO_400,
- ISO_800,
- ISO_1600,
- ISO_SPORTS,
- ISO_NIGHT,
- ISO_MOVIE,
- ISO_MAX,
-};
-
-#define V4L2_CID_CAMERA_METERING (V4L2_CID_PRIVATE_BASE+3)
-enum v4l2_metering_mode {
- METERING_BASE = 0,
- METERING_MATRIX,
- METERING_CENTER,
- METERING_SPOT,
- METERING_MAX,
-};
-
-#define V4L2_CID_CAMERA_WDR (V4L2_CID_PRIVATE_BASE+4)
-enum v4l2_wdr_mode {
- WDR_OFF,
- WDR_ON,
- WDR_MAX,
-};
-
-#define V4L2_CID_CAMERA_ANTI_SHAKE (V4L2_CID_PRIVATE_BASE+5)
-enum v4l2_anti_shake_mode {
- ANTI_SHAKE_OFF,
- ANTI_SHAKE_STILL_ON,
- ANTI_SHAKE_MOVIE_ON,
- ANTI_SHAKE_MAX,
-};
-
-#define V4L2_CID_CAMERA_FOCUS_MODE (V4L2_CID_PRIVATE_BASE+6)
-enum v4l2_focusmode {
- FOCUS_MODE_AUTO = 0,
- FOCUS_MODE_MACRO,
- FOCUS_MODE_FACEDETECT,
- FOCUS_MODE_AUTO_DEFAULT,
- FOCUS_MODE_MACRO_DEFAULT,
- FOCUS_MODE_FACEDETECT_DEFAULT,
- FOCUS_MODE_INFINITY,
- FOCUS_MODE_FIXED,
- FOCUS_MODE_CONTINUOUS,
- FOCUS_MODE_CONTINUOUS_PICTURE,
- FOCUS_MODE_CONTINUOUS_PICTURE_MACRO,
- FOCUS_MODE_CONTINUOUS_VIDEO,
- FOCUS_MODE_TOUCH,
- FOCUS_MODE_MAX,
- FOCUS_MODE_DEFAULT = (1 << 8),
-};
-
-#define V4L2_CID_CAMERA_AUTO_FOCUS_RESULT (V4L2_CID_PRIVATE_BASE+7)
-enum v4l2_focusresult {
- FOCUS_RESULT_FOCUSING = 0,
- FOCUS_RESULT_SUCCEED,
- FOCUS_RESULT_FAILED,
-};
-
-#define V4L2_CID_CAMERA_FOCUS_POSITION_X (V4L2_CID_PRIVATE_BASE+8)
-#define V4L2_CID_CAMERA_FOCUS_POSITION_Y (V4L2_CID_PRIVATE_BASE+9)
-
-#define V4L2_CID_CAMERA_FLASH_MODE_AUTO (V4L2_CID_PRIVATE_BASE+10)
-
-#define V4L2_CID_CAMERA_ANTI_BANDING (V4L2_CID_PRIVATE_BASE+11)
-enum v4l2_anti_banding{
- ANTI_BANDING_AUTO = 0,
- ANTI_BANDING_50HZ = 1,
- ANTI_BANDING_60HZ = 2,
- ANTI_BANDING_OFF = 3,
-};
-
-
-// V4L2_CID_BRIGHTNESS
-enum v4l2_ev_mode {
- EV_MINUS_4 = -4,
- EV_MINUS_3 = -3,
- EV_MINUS_2 = -2,
- EV_MINUS_1 = -1,
- EV_DEFAULT = 0,
- EV_PLUS_1 = 1,
- EV_PLUS_2 = 2,
- EV_PLUS_3 = 3,
- EV_PLUS_4 = 4,
- EV_MAX,
-};
-
-// V4L2_CID_DO_WHITE_BALANCE
-enum v4l2_wb_mode {
- WHITE_BALANCE_BASE = 0,
- WHITE_BALANCE_AUTO = 0,
- WHITE_BALANCE_INCANDESCENCE,
- WHITE_BALANCE_FLUORESCENT,
- WHITE_BALANCE_DAYLIGHT,
- WHITE_BALANCE_CLOUDY,
- WHITE_BALANCE_TWILIGHT,
- WHITE_BALANCE_SHADE,
- WHITE_BALANCE_MAX,
-};
-
-// V4L2_CID_CONTRAST
-enum v4l2_contrast_mode {
- CONTRAST_MINUS_2 = 0,
- CONTRAST_MINUS_1,
- CONTRAST_DEFAULT,
- CONTRAST_PLUS_1,
- CONTRAST_PLUS_2,
- CONTRAST_MAX,
-};
-
-// V4L2_CID_SATURATION
-enum v4l2_saturation_mode {
- SATURATION_MINUS_2 = 0,
- SATURATION_MINUS_1,
- SATURATION_DEFAULT,
- SATURATION_PLUS_1,
- SATURATION_PLUS_2,
- SATURATION_MAX,
-};
-
-// V4L2_CID_SHARPNESS
-enum v4l2_sharpness_mode {
- SHARPNESS_MINUS_2 = 0,
- SHARPNESS_MINUS_1,
- SHARPNESS_DEFAULT,
- SHARPNESS_PLUS_1,
- SHARPNESS_PLUS_2,
- SHARPNESS_MAX,
-};
-
-// V4L2_CID_EXPOSURE
-enum v4l2_exposure_mode {
- EXPOSURE_MINUS_4,
- EXPOSURE_MINUS_3,
- EXPOSURE_MINUS_2 = -2,
- EXPOSURE_MINUS_1 = -1,
- EXPOSURE_DEFAULT = 0,
- EXPOSURE_PLUS_1 = 1,
- EXPOSURE_PLUS_2 = 2,
- EXPOSURE_PLUS_3,
- EXPOSURE_PLUS_4,
- EXPOSURE_MAX
-};
-
-#endif /* #ifndef __LINUX_VIDEODEV2_WMT_H */
diff --git a/ANDROID_3.4.5/include/linux/virtio.h b/ANDROID_3.4.5/include/linux/virtio.h
deleted file mode 100644
index 8efd28ae..00000000
--- a/ANDROID_3.4.5/include/linux/virtio.h
+++ /dev/null
@@ -1,105 +0,0 @@
-#ifndef _LINUX_VIRTIO_H
-#define _LINUX_VIRTIO_H
-/* Everything a virtio driver needs to work with any particular virtio
- * implementation. */
-#include <linux/types.h>
-#include <linux/scatterlist.h>
-#include <linux/spinlock.h>
-#include <linux/device.h>
-#include <linux/mod_devicetable.h>
-#include <linux/gfp.h>
-
-/**
- * virtqueue - a queue to register buffers for sending or receiving.
- * @list: the chain of virtqueues for this device
- * @callback: the function to call when buffers are consumed (can be NULL).
- * @name: the name of this virtqueue (mainly for debugging)
- * @vdev: the virtio device this queue was created for.
- * @priv: a pointer for the virtqueue implementation to use.
- */
-struct virtqueue {
- struct list_head list;
- void (*callback)(struct virtqueue *vq);
- const char *name;
- struct virtio_device *vdev;
- void *priv;
-};
-
-int virtqueue_add_buf(struct virtqueue *vq,
- struct scatterlist sg[],
- unsigned int out_num,
- unsigned int in_num,
- void *data,
- gfp_t gfp);
-
-void virtqueue_kick(struct virtqueue *vq);
-
-bool virtqueue_kick_prepare(struct virtqueue *vq);
-
-void virtqueue_notify(struct virtqueue *vq);
-
-void *virtqueue_get_buf(struct virtqueue *vq, unsigned int *len);
-
-void virtqueue_disable_cb(struct virtqueue *vq);
-
-bool virtqueue_enable_cb(struct virtqueue *vq);
-
-bool virtqueue_enable_cb_delayed(struct virtqueue *vq);
-
-void *virtqueue_detach_unused_buf(struct virtqueue *vq);
-
-unsigned int virtqueue_get_vring_size(struct virtqueue *vq);
-
-/**
- * virtio_device - representation of a device using virtio
- * @index: unique position on the virtio bus
- * @dev: underlying device.
- * @id: the device type identification (used to match it with a driver).
- * @config: the configuration ops for this device.
- * @vqs: the list of virtqueues for this device.
- * @features: the features supported by both driver and device.
- * @priv: private pointer for the driver's use.
- */
-struct virtio_device {
- int index;
- struct device dev;
- struct virtio_device_id id;
- struct virtio_config_ops *config;
- struct list_head vqs;
- /* Note that this is a Linux set_bit-style bitmap. */
- unsigned long features[1];
- void *priv;
-};
-
-#define dev_to_virtio(dev) container_of(dev, struct virtio_device, dev)
-int register_virtio_device(struct virtio_device *dev);
-void unregister_virtio_device(struct virtio_device *dev);
-
-/**
- * virtio_driver - operations for a virtio I/O driver
- * @driver: underlying device driver (populate name and owner).
- * @id_table: the ids serviced by this driver.
- * @feature_table: an array of feature numbers supported by this driver.
- * @feature_table_size: number of entries in the feature table array.
- * @probe: the function to call when a device is found. Returns 0 or -errno.
- * @remove: the function to call when a device is removed.
- * @config_changed: optional function to call when the device configuration
- * changes; may be called in interrupt context.
- */
-struct virtio_driver {
- struct device_driver driver;
- const struct virtio_device_id *id_table;
- const unsigned int *feature_table;
- unsigned int feature_table_size;
- int (*probe)(struct virtio_device *dev);
- void (*remove)(struct virtio_device *dev);
- void (*config_changed)(struct virtio_device *dev);
-#ifdef CONFIG_PM
- int (*freeze)(struct virtio_device *dev);
- int (*restore)(struct virtio_device *dev);
-#endif
-};
-
-int register_virtio_driver(struct virtio_driver *drv);
-void unregister_virtio_driver(struct virtio_driver *drv);
-#endif /* _LINUX_VIRTIO_H */
diff --git a/ANDROID_3.4.5/include/linux/virtio_9p.h b/ANDROID_3.4.5/include/linux/virtio_9p.h
deleted file mode 100644
index 277c4ad4..00000000
--- a/ANDROID_3.4.5/include/linux/virtio_9p.h
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef _LINUX_VIRTIO_9P_H
-#define _LINUX_VIRTIO_9P_H
-/* This header is BSD licensed so anyone can use the definitions to implement
- * compatible drivers/servers.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of IBM nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE. */
-#include <linux/types.h>
-#include <linux/virtio_ids.h>
-#include <linux/virtio_config.h>
-
-/* The feature bitmap for virtio 9P */
-
-/* The mount point is specified in a config variable */
-#define VIRTIO_9P_MOUNT_TAG 0
-
-struct virtio_9p_config {
- /* length of the tag name */
- __u16 tag_len;
- /* non-NULL terminated tag name */
- __u8 tag[0];
-} __attribute__((packed));
-
-#endif /* _LINUX_VIRTIO_9P_H */
diff --git a/ANDROID_3.4.5/include/linux/virtio_balloon.h b/ANDROID_3.4.5/include/linux/virtio_balloon.h
deleted file mode 100644
index 652dc8be..00000000
--- a/ANDROID_3.4.5/include/linux/virtio_balloon.h
+++ /dev/null
@@ -1,59 +0,0 @@
-#ifndef _LINUX_VIRTIO_BALLOON_H
-#define _LINUX_VIRTIO_BALLOON_H
-/* This header is BSD licensed so anyone can use the definitions to implement
- * compatible drivers/servers.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of IBM nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE. */
-#include <linux/virtio_ids.h>
-#include <linux/virtio_config.h>
-
-/* The feature bitmap for virtio balloon */
-#define VIRTIO_BALLOON_F_MUST_TELL_HOST 0 /* Tell before reclaiming pages */
-#define VIRTIO_BALLOON_F_STATS_VQ 1 /* Memory Stats virtqueue */
-
-/* Size of a PFN in the balloon interface. */
-#define VIRTIO_BALLOON_PFN_SHIFT 12
-
-struct virtio_balloon_config
-{
- /* Number of pages host wants Guest to give up. */
- __le32 num_pages;
- /* Number of pages we've actually got in balloon. */
- __le32 actual;
-};
-
-#define VIRTIO_BALLOON_S_SWAP_IN 0 /* Amount of memory swapped in */
-#define VIRTIO_BALLOON_S_SWAP_OUT 1 /* Amount of memory swapped out */
-#define VIRTIO_BALLOON_S_MAJFLT 2 /* Number of major faults */
-#define VIRTIO_BALLOON_S_MINFLT 3 /* Number of minor faults */
-#define VIRTIO_BALLOON_S_MEMFREE 4 /* Total amount of free memory */
-#define VIRTIO_BALLOON_S_MEMTOT 5 /* Total amount of memory */
-#define VIRTIO_BALLOON_S_NR 6
-
-struct virtio_balloon_stat {
- u16 tag;
- u64 val;
-} __attribute__((packed));
-
-#endif /* _LINUX_VIRTIO_BALLOON_H */
diff --git a/ANDROID_3.4.5/include/linux/virtio_blk.h b/ANDROID_3.4.5/include/linux/virtio_blk.h
deleted file mode 100644
index e0edb40c..00000000
--- a/ANDROID_3.4.5/include/linux/virtio_blk.h
+++ /dev/null
@@ -1,122 +0,0 @@
-#ifndef _LINUX_VIRTIO_BLK_H
-#define _LINUX_VIRTIO_BLK_H
-/* This header is BSD licensed so anyone can use the definitions to implement
- * compatible drivers/servers.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of IBM nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE. */
-#include <linux/types.h>
-#include <linux/virtio_ids.h>
-#include <linux/virtio_config.h>
-
-/* Feature bits */
-#define VIRTIO_BLK_F_BARRIER 0 /* Does host support barriers? */
-#define VIRTIO_BLK_F_SIZE_MAX 1 /* Indicates maximum segment size */
-#define VIRTIO_BLK_F_SEG_MAX 2 /* Indicates maximum # of segments */
-#define VIRTIO_BLK_F_GEOMETRY 4 /* Legacy geometry available */
-#define VIRTIO_BLK_F_RO 5 /* Disk is read-only */
-#define VIRTIO_BLK_F_BLK_SIZE 6 /* Block size of disk is available*/
-#define VIRTIO_BLK_F_SCSI 7 /* Supports scsi command passthru */
-#define VIRTIO_BLK_F_FLUSH 9 /* Cache flush command support */
-#define VIRTIO_BLK_F_TOPOLOGY 10 /* Topology information is available */
-
-#define VIRTIO_BLK_ID_BYTES 20 /* ID string length */
-
-struct virtio_blk_config {
- /* The capacity (in 512-byte sectors). */
- __u64 capacity;
- /* The maximum segment size (if VIRTIO_BLK_F_SIZE_MAX) */
- __u32 size_max;
- /* The maximum number of segments (if VIRTIO_BLK_F_SEG_MAX) */
- __u32 seg_max;
- /* geometry the device (if VIRTIO_BLK_F_GEOMETRY) */
- struct virtio_blk_geometry {
- __u16 cylinders;
- __u8 heads;
- __u8 sectors;
- } geometry;
-
- /* block size of device (if VIRTIO_BLK_F_BLK_SIZE) */
- __u32 blk_size;
-
- /* the next 4 entries are guarded by VIRTIO_BLK_F_TOPOLOGY */
- /* exponent for physical block per logical block. */
- __u8 physical_block_exp;
- /* alignment offset in logical blocks. */
- __u8 alignment_offset;
- /* minimum I/O size without performance penalty in logical blocks. */
- __u16 min_io_size;
- /* optimal sustained I/O size in logical blocks. */
- __u32 opt_io_size;
-
-} __attribute__((packed));
-
-/*
- * Command types
- *
- * Usage is a bit tricky as some bits are used as flags and some are not.
- *
- * Rules:
- * VIRTIO_BLK_T_OUT may be combined with VIRTIO_BLK_T_SCSI_CMD or
- * VIRTIO_BLK_T_BARRIER. VIRTIO_BLK_T_FLUSH is a command of its own
- * and may not be combined with any of the other flags.
- */
-
-/* These two define direction. */
-#define VIRTIO_BLK_T_IN 0
-#define VIRTIO_BLK_T_OUT 1
-
-/* This bit says it's a scsi command, not an actual read or write. */
-#define VIRTIO_BLK_T_SCSI_CMD 2
-
-/* Cache flush command */
-#define VIRTIO_BLK_T_FLUSH 4
-
-/* Get device ID command */
-#define VIRTIO_BLK_T_GET_ID 8
-
-/* Barrier before this op. */
-#define VIRTIO_BLK_T_BARRIER 0x80000000
-
-/* This is the first element of the read scatter-gather list. */
-struct virtio_blk_outhdr {
- /* VIRTIO_BLK_T* */
- __u32 type;
- /* io priority. */
- __u32 ioprio;
- /* Sector (ie. 512 byte offset) */
- __u64 sector;
-};
-
-struct virtio_scsi_inhdr {
- __u32 errors;
- __u32 data_len;
- __u32 sense_len;
- __u32 residual;
-};
-
-/* And this is the final byte of the write scatter-gather list. */
-#define VIRTIO_BLK_S_OK 0
-#define VIRTIO_BLK_S_IOERR 1
-#define VIRTIO_BLK_S_UNSUPP 2
-#endif /* _LINUX_VIRTIO_BLK_H */
diff --git a/ANDROID_3.4.5/include/linux/virtio_config.h b/ANDROID_3.4.5/include/linux/virtio_config.h
deleted file mode 100644
index 7323a339..00000000
--- a/ANDROID_3.4.5/include/linux/virtio_config.h
+++ /dev/null
@@ -1,203 +0,0 @@
-#ifndef _LINUX_VIRTIO_CONFIG_H
-#define _LINUX_VIRTIO_CONFIG_H
-/* This header, excluding the #ifdef __KERNEL__ part, is BSD licensed so
- * anyone can use the definitions to implement compatible drivers/servers.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of IBM nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE. */
-
-/* Virtio devices use a standardized configuration space to define their
- * features and pass configuration information, but each implementation can
- * store and access that space differently. */
-#include <linux/types.h>
-
-/* Status byte for guest to report progress, and synchronize features. */
-/* We have seen device and processed generic fields (VIRTIO_CONFIG_F_VIRTIO) */
-#define VIRTIO_CONFIG_S_ACKNOWLEDGE 1
-/* We have found a driver for the device. */
-#define VIRTIO_CONFIG_S_DRIVER 2
-/* Driver has used its parts of the config, and is happy */
-#define VIRTIO_CONFIG_S_DRIVER_OK 4
-/* We've given up on this device. */
-#define VIRTIO_CONFIG_S_FAILED 0x80
-
-/* Some virtio feature bits (currently bits 28 through 31) are reserved for the
- * transport being used (eg. virtio_ring), the rest are per-device feature
- * bits. */
-#define VIRTIO_TRANSPORT_F_START 28
-#define VIRTIO_TRANSPORT_F_END 32
-
-/* Do we get callbacks when the ring is completely used, even if we've
- * suppressed them? */
-#define VIRTIO_F_NOTIFY_ON_EMPTY 24
-
-#ifdef __KERNEL__
-#include <linux/err.h>
-#include <linux/bug.h>
-#include <linux/virtio.h>
-
-/**
- * virtio_config_ops - operations for configuring a virtio device
- * @get: read the value of a configuration field
- * vdev: the virtio_device
- * offset: the offset of the configuration field
- * buf: the buffer to write the field value into.
- * len: the length of the buffer
- * @set: write the value of a configuration field
- * vdev: the virtio_device
- * offset: the offset of the configuration field
- * buf: the buffer to read the field value from.
- * len: the length of the buffer
- * @get_status: read the status byte
- * vdev: the virtio_device
- * Returns the status byte
- * @set_status: write the status byte
- * vdev: the virtio_device
- * status: the new status byte
- * @request_vqs: request the specified number of virtqueues
- * vdev: the virtio_device
- * max_vqs: the max number of virtqueues we want
- * If supplied, must call before any virtqueues are instantiated.
- * To modify the max number of virtqueues after request_vqs has been
- * called, call free_vqs and then request_vqs with a new value.
- * @free_vqs: cleanup resources allocated by request_vqs
- * vdev: the virtio_device
- * If supplied, must call after all virtqueues have been deleted.
- * @reset: reset the device
- * vdev: the virtio device
- * After this, status and feature negotiation must be done again
- * Device must not be reset from its vq/config callbacks, or in
- * parallel with being added/removed.
- * @find_vqs: find virtqueues and instantiate them.
- * vdev: the virtio_device
- * nvqs: the number of virtqueues to find
- * vqs: on success, includes new virtqueues
- * callbacks: array of callbacks, for each virtqueue
- * names: array of virtqueue names (mainly for debugging)
- * Returns 0 on success or error status
- * @del_vqs: free virtqueues found by find_vqs().
- * @get_features: get the array of feature bits for this device.
- * vdev: the virtio_device
- * Returns the first 32 feature bits (all we currently need).
- * @finalize_features: confirm what device features we'll be using.
- * vdev: the virtio_device
- * This gives the final feature bits for the device: it can change
- * the dev->feature bits if it wants.
- * @bus_name: return the bus name associated with the device
- * vdev: the virtio_device
- * This returns a pointer to the bus name a la pci_name from which
- * the caller can then copy.
- */
-typedef void vq_callback_t(struct virtqueue *);
-struct virtio_config_ops {
- void (*get)(struct virtio_device *vdev, unsigned offset,
- void *buf, unsigned len);
- void (*set)(struct virtio_device *vdev, unsigned offset,
- const void *buf, unsigned len);
- u8 (*get_status)(struct virtio_device *vdev);
- void (*set_status)(struct virtio_device *vdev, u8 status);
- void (*reset)(struct virtio_device *vdev);
- int (*find_vqs)(struct virtio_device *, unsigned nvqs,
- struct virtqueue *vqs[],
- vq_callback_t *callbacks[],
- const char *names[]);
- void (*del_vqs)(struct virtio_device *);
- u32 (*get_features)(struct virtio_device *vdev);
- void (*finalize_features)(struct virtio_device *vdev);
- const char *(*bus_name)(struct virtio_device *vdev);
-};
-
-/* If driver didn't advertise the feature, it will never appear. */
-void virtio_check_driver_offered_feature(const struct virtio_device *vdev,
- unsigned int fbit);
-
-/**
- * virtio_has_feature - helper to determine if this device has this feature.
- * @vdev: the device
- * @fbit: the feature bit
- */
-static inline bool virtio_has_feature(const struct virtio_device *vdev,
- unsigned int fbit)
-{
- /* Did you forget to fix assumptions on max features? */
- if (__builtin_constant_p(fbit))
- BUILD_BUG_ON(fbit >= 32);
- else
- BUG_ON(fbit >= 32);
-
- if (fbit < VIRTIO_TRANSPORT_F_START)
- virtio_check_driver_offered_feature(vdev, fbit);
-
- return test_bit(fbit, vdev->features);
-}
-
-/**
- * virtio_config_val - look for a feature and get a virtio config entry.
- * @vdev: the virtio device
- * @fbit: the feature bit
- * @offset: the type to search for.
- * @val: a pointer to the value to fill in.
- *
- * The return value is -ENOENT if the feature doesn't exist. Otherwise
- * the config value is copied into whatever is pointed to by v. */
-#define virtio_config_val(vdev, fbit, offset, v) \
- virtio_config_buf((vdev), (fbit), (offset), (v), sizeof(*v))
-
-#define virtio_config_val_len(vdev, fbit, offset, v, len) \
- virtio_config_buf((vdev), (fbit), (offset), (v), (len))
-
-static inline int virtio_config_buf(struct virtio_device *vdev,
- unsigned int fbit,
- unsigned int offset,
- void *buf, unsigned len)
-{
- if (!virtio_has_feature(vdev, fbit))
- return -ENOENT;
-
- vdev->config->get(vdev, offset, buf, len);
- return 0;
-}
-
-static inline
-struct virtqueue *virtio_find_single_vq(struct virtio_device *vdev,
- vq_callback_t *c, const char *n)
-{
- vq_callback_t *callbacks[] = { c };
- const char *names[] = { n };
- struct virtqueue *vq;
- int err = vdev->config->find_vqs(vdev, 1, &vq, callbacks, names);
- if (err < 0)
- return ERR_PTR(err);
- return vq;
-}
-
-static inline
-const char *virtio_bus_name(struct virtio_device *vdev)
-{
- if (!vdev->config->bus_name)
- return "virtio";
- return vdev->config->bus_name(vdev);
-}
-
-#endif /* __KERNEL__ */
-#endif /* _LINUX_VIRTIO_CONFIG_H */
diff --git a/ANDROID_3.4.5/include/linux/virtio_console.h b/ANDROID_3.4.5/include/linux/virtio_console.h
deleted file mode 100644
index bdf4b003..00000000
--- a/ANDROID_3.4.5/include/linux/virtio_console.h
+++ /dev/null
@@ -1,77 +0,0 @@
-#ifndef _LINUX_VIRTIO_CONSOLE_H
-#define _LINUX_VIRTIO_CONSOLE_H
-#include <linux/types.h>
-#include <linux/virtio_ids.h>
-#include <linux/virtio_config.h>
-/*
- * This header, excluding the #ifdef __KERNEL__ part, is BSD licensed so
- * anyone can use the definitions to implement compatible drivers/servers:
- *
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of IBM nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * Copyright (C) Red Hat, Inc., 2009, 2010, 2011
- * Copyright (C) Amit Shah <amit.shah@redhat.com>, 2009, 2010, 2011
- */
-
-/* Feature bits */
-#define VIRTIO_CONSOLE_F_SIZE 0 /* Does host provide console size? */
-#define VIRTIO_CONSOLE_F_MULTIPORT 1 /* Does host provide multiple ports? */
-
-#define VIRTIO_CONSOLE_BAD_ID (~(u32)0)
-
-struct virtio_console_config {
- /* colums of the screens */
- __u16 cols;
- /* rows of the screens */
- __u16 rows;
- /* max. number of ports this device can hold */
- __u32 max_nr_ports;
-} __attribute__((packed));
-
-/*
- * A message that's passed between the Host and the Guest for a
- * particular port.
- */
-struct virtio_console_control {
- __u32 id; /* Port number */
- __u16 event; /* The kind of control event (see below) */
- __u16 value; /* Extra information for the key */
-};
-
-/* Some events for control messages */
-#define VIRTIO_CONSOLE_DEVICE_READY 0
-#define VIRTIO_CONSOLE_PORT_ADD 1
-#define VIRTIO_CONSOLE_PORT_REMOVE 2
-#define VIRTIO_CONSOLE_PORT_READY 3
-#define VIRTIO_CONSOLE_CONSOLE_PORT 4
-#define VIRTIO_CONSOLE_RESIZE 5
-#define VIRTIO_CONSOLE_PORT_OPEN 6
-#define VIRTIO_CONSOLE_PORT_NAME 7
-
-#ifdef __KERNEL__
-int __init virtio_cons_early_init(int (*put_chars)(u32, const char *, int));
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_VIRTIO_CONSOLE_H */
diff --git a/ANDROID_3.4.5/include/linux/virtio_ids.h b/ANDROID_3.4.5/include/linux/virtio_ids.h
deleted file mode 100644
index 7529b854..00000000
--- a/ANDROID_3.4.5/include/linux/virtio_ids.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef _LINUX_VIRTIO_IDS_H
-#define _LINUX_VIRTIO_IDS_H
-/*
- * Virtio IDs
- *
- * This header is BSD licensed so anyone can use the definitions to implement
- * compatible drivers/servers.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of IBM nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE. */
-
-#define VIRTIO_ID_NET 1 /* virtio net */
-#define VIRTIO_ID_BLOCK 2 /* virtio block */
-#define VIRTIO_ID_CONSOLE 3 /* virtio console */
-#define VIRTIO_ID_RNG 4 /* virtio ring */
-#define VIRTIO_ID_BALLOON 5 /* virtio balloon */
-#define VIRTIO_ID_RPMSG 7 /* virtio remote processor messaging */
-#define VIRTIO_ID_SCSI 8 /* virtio scsi */
-#define VIRTIO_ID_9P 9 /* 9p virtio console */
-
-#endif /* _LINUX_VIRTIO_IDS_H */
diff --git a/ANDROID_3.4.5/include/linux/virtio_mmio.h b/ANDROID_3.4.5/include/linux/virtio_mmio.h
deleted file mode 100644
index 5c7b6f0d..00000000
--- a/ANDROID_3.4.5/include/linux/virtio_mmio.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Virtio platform device driver
- *
- * Copyright 2011, ARM Ltd.
- *
- * Based on Virtio PCI driver by Anthony Liguori, copyright IBM Corp. 2007
- *
- * This header is BSD licensed so anyone can use the definitions to implement
- * compatible drivers/servers.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of IBM nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef _LINUX_VIRTIO_MMIO_H
-#define _LINUX_VIRTIO_MMIO_H
-
-/*
- * Control registers
- */
-
-/* Magic value ("virt" string) - Read Only */
-#define VIRTIO_MMIO_MAGIC_VALUE 0x000
-
-/* Virtio device version - Read Only */
-#define VIRTIO_MMIO_VERSION 0x004
-
-/* Virtio device ID - Read Only */
-#define VIRTIO_MMIO_DEVICE_ID 0x008
-
-/* Virtio vendor ID - Read Only */
-#define VIRTIO_MMIO_VENDOR_ID 0x00c
-
-/* Bitmask of the features supported by the host
- * (32 bits per set) - Read Only */
-#define VIRTIO_MMIO_HOST_FEATURES 0x010
-
-/* Host features set selector - Write Only */
-#define VIRTIO_MMIO_HOST_FEATURES_SEL 0x014
-
-/* Bitmask of features activated by the guest
- * (32 bits per set) - Write Only */
-#define VIRTIO_MMIO_GUEST_FEATURES 0x020
-
-/* Activated features set selector - Write Only */
-#define VIRTIO_MMIO_GUEST_FEATURES_SEL 0x024
-
-/* Guest's memory page size in bytes - Write Only */
-#define VIRTIO_MMIO_GUEST_PAGE_SIZE 0x028
-
-/* Queue selector - Write Only */
-#define VIRTIO_MMIO_QUEUE_SEL 0x030
-
-/* Maximum size of the currently selected queue - Read Only */
-#define VIRTIO_MMIO_QUEUE_NUM_MAX 0x034
-
-/* Queue size for the currently selected queue - Write Only */
-#define VIRTIO_MMIO_QUEUE_NUM 0x038
-
-/* Used Ring alignment for the currently selected queue - Write Only */
-#define VIRTIO_MMIO_QUEUE_ALIGN 0x03c
-
-/* Guest's PFN for the currently selected queue - Read Write */
-#define VIRTIO_MMIO_QUEUE_PFN 0x040
-
-/* Queue notifier - Write Only */
-#define VIRTIO_MMIO_QUEUE_NOTIFY 0x050
-
-/* Interrupt status - Read Only */
-#define VIRTIO_MMIO_INTERRUPT_STATUS 0x060
-
-/* Interrupt acknowledge - Write Only */
-#define VIRTIO_MMIO_INTERRUPT_ACK 0x064
-
-/* Device status register - Read Write */
-#define VIRTIO_MMIO_STATUS 0x070
-
-/* The config space is defined by each driver as
- * the per-driver configuration space - Read Write */
-#define VIRTIO_MMIO_CONFIG 0x100
-
-
-
-/*
- * Interrupt flags (re: interrupt status & acknowledge registers)
- */
-
-#define VIRTIO_MMIO_INT_VRING (1 << 0)
-#define VIRTIO_MMIO_INT_CONFIG (1 << 1)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/virtio_net.h b/ANDROID_3.4.5/include/linux/virtio_net.h
deleted file mode 100644
index 970d5a2a..00000000
--- a/ANDROID_3.4.5/include/linux/virtio_net.h
+++ /dev/null
@@ -1,155 +0,0 @@
-#ifndef _LINUX_VIRTIO_NET_H
-#define _LINUX_VIRTIO_NET_H
-/* This header is BSD licensed so anyone can use the definitions to implement
- * compatible drivers/servers.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of IBM nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE. */
-#include <linux/types.h>
-#include <linux/virtio_ids.h>
-#include <linux/virtio_config.h>
-#include <linux/if_ether.h>
-
-/* The feature bitmap for virtio net */
-#define VIRTIO_NET_F_CSUM 0 /* Host handles pkts w/ partial csum */
-#define VIRTIO_NET_F_GUEST_CSUM 1 /* Guest handles pkts w/ partial csum */
-#define VIRTIO_NET_F_MAC 5 /* Host has given MAC address. */
-#define VIRTIO_NET_F_GSO 6 /* Host handles pkts w/ any GSO type */
-#define VIRTIO_NET_F_GUEST_TSO4 7 /* Guest can handle TSOv4 in. */
-#define VIRTIO_NET_F_GUEST_TSO6 8 /* Guest can handle TSOv6 in. */
-#define VIRTIO_NET_F_GUEST_ECN 9 /* Guest can handle TSO[6] w/ ECN in. */
-#define VIRTIO_NET_F_GUEST_UFO 10 /* Guest can handle UFO in. */
-#define VIRTIO_NET_F_HOST_TSO4 11 /* Host can handle TSOv4 in. */
-#define VIRTIO_NET_F_HOST_TSO6 12 /* Host can handle TSOv6 in. */
-#define VIRTIO_NET_F_HOST_ECN 13 /* Host can handle TSO[6] w/ ECN in. */
-#define VIRTIO_NET_F_HOST_UFO 14 /* Host can handle UFO in. */
-#define VIRTIO_NET_F_MRG_RXBUF 15 /* Host can merge receive buffers. */
-#define VIRTIO_NET_F_STATUS 16 /* virtio_net_config.status available */
-#define VIRTIO_NET_F_CTRL_VQ 17 /* Control channel available */
-#define VIRTIO_NET_F_CTRL_RX 18 /* Control channel RX mode support */
-#define VIRTIO_NET_F_CTRL_VLAN 19 /* Control channel VLAN filtering */
-#define VIRTIO_NET_F_CTRL_RX_EXTRA 20 /* Extra RX mode control support */
-
-#define VIRTIO_NET_S_LINK_UP 1 /* Link is up */
-
-struct virtio_net_config {
- /* The config defining mac address (if VIRTIO_NET_F_MAC) */
- __u8 mac[6];
- /* See VIRTIO_NET_F_STATUS and VIRTIO_NET_S_* above */
- __u16 status;
-} __attribute__((packed));
-
-/* This is the first element of the scatter-gather list. If you don't
- * specify GSO or CSUM features, you can simply ignore the header. */
-struct virtio_net_hdr {
-#define VIRTIO_NET_HDR_F_NEEDS_CSUM 1 // Use csum_start, csum_offset
-#define VIRTIO_NET_HDR_F_DATA_VALID 2 // Csum is valid
- __u8 flags;
-#define VIRTIO_NET_HDR_GSO_NONE 0 // Not a GSO frame
-#define VIRTIO_NET_HDR_GSO_TCPV4 1 // GSO frame, IPv4 TCP (TSO)
-#define VIRTIO_NET_HDR_GSO_UDP 3 // GSO frame, IPv4 UDP (UFO)
-#define VIRTIO_NET_HDR_GSO_TCPV6 4 // GSO frame, IPv6 TCP
-#define VIRTIO_NET_HDR_GSO_ECN 0x80 // TCP has ECN set
- __u8 gso_type;
- __u16 hdr_len; /* Ethernet + IP + tcp/udp hdrs */
- __u16 gso_size; /* Bytes to append to hdr_len per frame */
- __u16 csum_start; /* Position to start checksumming from */
- __u16 csum_offset; /* Offset after that to place checksum */
-};
-
-/* This is the version of the header to use when the MRG_RXBUF
- * feature has been negotiated. */
-struct virtio_net_hdr_mrg_rxbuf {
- struct virtio_net_hdr hdr;
- __u16 num_buffers; /* Number of merged rx buffers */
-};
-
-/*
- * Control virtqueue data structures
- *
- * The control virtqueue expects a header in the first sg entry
- * and an ack/status response in the last entry. Data for the
- * command goes in between.
- */
-struct virtio_net_ctrl_hdr {
- __u8 class;
- __u8 cmd;
-} __attribute__((packed));
-
-typedef __u8 virtio_net_ctrl_ack;
-
-#define VIRTIO_NET_OK 0
-#define VIRTIO_NET_ERR 1
-
-/*
- * Control the RX mode, ie. promisucous, allmulti, etc...
- * All commands require an "out" sg entry containing a 1 byte
- * state value, zero = disable, non-zero = enable. Commands
- * 0 and 1 are supported with the VIRTIO_NET_F_CTRL_RX feature.
- * Commands 2-5 are added with VIRTIO_NET_F_CTRL_RX_EXTRA.
- */
-#define VIRTIO_NET_CTRL_RX 0
- #define VIRTIO_NET_CTRL_RX_PROMISC 0
- #define VIRTIO_NET_CTRL_RX_ALLMULTI 1
- #define VIRTIO_NET_CTRL_RX_ALLUNI 2
- #define VIRTIO_NET_CTRL_RX_NOMULTI 3
- #define VIRTIO_NET_CTRL_RX_NOUNI 4
- #define VIRTIO_NET_CTRL_RX_NOBCAST 5
-
-/*
- * Control the MAC filter table.
- *
- * The MAC filter table is managed by the hypervisor, the guest should
- * assume the size is infinite. Filtering should be considered
- * non-perfect, ie. based on hypervisor resources, the guest may
- * received packets from sources not specified in the filter list.
- *
- * In addition to the class/cmd header, the TABLE_SET command requires
- * two out scatterlists. Each contains a 4 byte count of entries followed
- * by a concatenated byte stream of the ETH_ALEN MAC addresses. The
- * first sg list contains unicast addresses, the second is for multicast.
- * This functionality is present if the VIRTIO_NET_F_CTRL_RX feature
- * is available.
- */
-struct virtio_net_ctrl_mac {
- __u32 entries;
- __u8 macs[][ETH_ALEN];
-} __attribute__((packed));
-
-#define VIRTIO_NET_CTRL_MAC 1
- #define VIRTIO_NET_CTRL_MAC_TABLE_SET 0
-
-/*
- * Control VLAN filtering
- *
- * The VLAN filter table is controlled via a simple ADD/DEL interface.
- * VLAN IDs not added may be filterd by the hypervisor. Del is the
- * opposite of add. Both commands expect an out entry containing a 2
- * byte VLAN ID. VLAN filterting is available with the
- * VIRTIO_NET_F_CTRL_VLAN feature bit.
- */
-#define VIRTIO_NET_CTRL_VLAN 2
- #define VIRTIO_NET_CTRL_VLAN_ADD 0
- #define VIRTIO_NET_CTRL_VLAN_DEL 1
-
-#endif /* _LINUX_VIRTIO_NET_H */
diff --git a/ANDROID_3.4.5/include/linux/virtio_pci.h b/ANDROID_3.4.5/include/linux/virtio_pci.h
deleted file mode 100644
index ea66f3f6..00000000
--- a/ANDROID_3.4.5/include/linux/virtio_pci.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Virtio PCI driver
- *
- * This module allows virtio devices to be used over a virtual PCI device.
- * This can be used with QEMU based VMMs like KVM or Xen.
- *
- * Copyright IBM Corp. 2007
- *
- * Authors:
- * Anthony Liguori <aliguori@us.ibm.com>
- *
- * This header is BSD licensed so anyone can use the definitions to implement
- * compatible drivers/servers.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of IBM nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef _LINUX_VIRTIO_PCI_H
-#define _LINUX_VIRTIO_PCI_H
-
-#include <linux/virtio_config.h>
-
-/* A 32-bit r/o bitmask of the features supported by the host */
-#define VIRTIO_PCI_HOST_FEATURES 0
-
-/* A 32-bit r/w bitmask of features activated by the guest */
-#define VIRTIO_PCI_GUEST_FEATURES 4
-
-/* A 32-bit r/w PFN for the currently selected queue */
-#define VIRTIO_PCI_QUEUE_PFN 8
-
-/* A 16-bit r/o queue size for the currently selected queue */
-#define VIRTIO_PCI_QUEUE_NUM 12
-
-/* A 16-bit r/w queue selector */
-#define VIRTIO_PCI_QUEUE_SEL 14
-
-/* A 16-bit r/w queue notifier */
-#define VIRTIO_PCI_QUEUE_NOTIFY 16
-
-/* An 8-bit device status register. */
-#define VIRTIO_PCI_STATUS 18
-
-/* An 8-bit r/o interrupt status register. Reading the value will return the
- * current contents of the ISR and will also clear it. This is effectively
- * a read-and-acknowledge. */
-#define VIRTIO_PCI_ISR 19
-
-/* The bit of the ISR which indicates a device configuration change. */
-#define VIRTIO_PCI_ISR_CONFIG 0x2
-
-/* MSI-X registers: only enabled if MSI-X is enabled. */
-/* A 16-bit vector for configuration changes. */
-#define VIRTIO_MSI_CONFIG_VECTOR 20
-/* A 16-bit vector for selected queue notifications. */
-#define VIRTIO_MSI_QUEUE_VECTOR 22
-/* Vector value used to disable MSI for queue */
-#define VIRTIO_MSI_NO_VECTOR 0xffff
-
-/* The remaining space is defined by each driver as the per-driver
- * configuration space */
-#define VIRTIO_PCI_CONFIG(dev) ((dev)->msix_enabled ? 24 : 20)
-
-/* Virtio ABI version, this must match exactly */
-#define VIRTIO_PCI_ABI_VERSION 0
-
-/* How many bits to shift physical queue address written to QUEUE_PFN.
- * 12 is historical, and due to x86 page size. */
-#define VIRTIO_PCI_QUEUE_ADDR_SHIFT 12
-
-/* The alignment to use between consumer and producer parts of vring.
- * x86 pagesize again. */
-#define VIRTIO_PCI_VRING_ALIGN 4096
-#endif
diff --git a/ANDROID_3.4.5/include/linux/virtio_ring.h b/ANDROID_3.4.5/include/linux/virtio_ring.h
deleted file mode 100644
index e338730c..00000000
--- a/ANDROID_3.4.5/include/linux/virtio_ring.h
+++ /dev/null
@@ -1,182 +0,0 @@
-#ifndef _LINUX_VIRTIO_RING_H
-#define _LINUX_VIRTIO_RING_H
-/* An interface for efficient virtio implementation, currently for use by KVM
- * and lguest, but hopefully others soon. Do NOT change this since it will
- * break existing servers and clients.
- *
- * This header is BSD licensed so anyone can use the definitions to implement
- * compatible drivers/servers.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of IBM nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * Copyright Rusty Russell IBM Corporation 2007. */
-#include <linux/types.h>
-
-/* This marks a buffer as continuing via the next field. */
-#define VRING_DESC_F_NEXT 1
-/* This marks a buffer as write-only (otherwise read-only). */
-#define VRING_DESC_F_WRITE 2
-/* This means the buffer contains a list of buffer descriptors. */
-#define VRING_DESC_F_INDIRECT 4
-
-/* The Host uses this in used->flags to advise the Guest: don't kick me when
- * you add a buffer. It's unreliable, so it's simply an optimization. Guest
- * will still kick if it's out of buffers. */
-#define VRING_USED_F_NO_NOTIFY 1
-/* The Guest uses this in avail->flags to advise the Host: don't interrupt me
- * when you consume a buffer. It's unreliable, so it's simply an
- * optimization. */
-#define VRING_AVAIL_F_NO_INTERRUPT 1
-
-/* We support indirect buffer descriptors */
-#define VIRTIO_RING_F_INDIRECT_DESC 28
-
-/* The Guest publishes the used index for which it expects an interrupt
- * at the end of the avail ring. Host should ignore the avail->flags field. */
-/* The Host publishes the avail index for which it expects a kick
- * at the end of the used ring. Guest should ignore the used->flags field. */
-#define VIRTIO_RING_F_EVENT_IDX 29
-
-/* Virtio ring descriptors: 16 bytes. These can chain together via "next". */
-struct vring_desc {
- /* Address (guest-physical). */
- __u64 addr;
- /* Length. */
- __u32 len;
- /* The flags as indicated above. */
- __u16 flags;
- /* We chain unused descriptors via this, too */
- __u16 next;
-};
-
-struct vring_avail {
- __u16 flags;
- __u16 idx;
- __u16 ring[];
-};
-
-/* u32 is used here for ids for padding reasons. */
-struct vring_used_elem {
- /* Index of start of used descriptor chain. */
- __u32 id;
- /* Total length of the descriptor chain which was used (written to) */
- __u32 len;
-};
-
-struct vring_used {
- __u16 flags;
- __u16 idx;
- struct vring_used_elem ring[];
-};
-
-struct vring {
- unsigned int num;
-
- struct vring_desc *desc;
-
- struct vring_avail *avail;
-
- struct vring_used *used;
-};
-
-/* The standard layout for the ring is a continuous chunk of memory which looks
- * like this. We assume num is a power of 2.
- *
- * struct vring
- * {
- * // The actual descriptors (16 bytes each)
- * struct vring_desc desc[num];
- *
- * // A ring of available descriptor heads with free-running index.
- * __u16 avail_flags;
- * __u16 avail_idx;
- * __u16 available[num];
- * __u16 used_event_idx;
- *
- * // Padding to the next align boundary.
- * char pad[];
- *
- * // A ring of used descriptor heads with free-running index.
- * __u16 used_flags;
- * __u16 used_idx;
- * struct vring_used_elem used[num];
- * __u16 avail_event_idx;
- * };
- */
-/* We publish the used event index at the end of the available ring, and vice
- * versa. They are at the end for backwards compatibility. */
-#define vring_used_event(vr) ((vr)->avail->ring[(vr)->num])
-#define vring_avail_event(vr) (*(__u16 *)&(vr)->used->ring[(vr)->num])
-
-static inline void vring_init(struct vring *vr, unsigned int num, void *p,
- unsigned long align)
-{
- vr->num = num;
- vr->desc = p;
- vr->avail = p + num*sizeof(struct vring_desc);
- vr->used = (void *)(((unsigned long)&vr->avail->ring[num] + sizeof(__u16)
- + align-1) & ~(align - 1));
-}
-
-static inline unsigned vring_size(unsigned int num, unsigned long align)
-{
- return ((sizeof(struct vring_desc) * num + sizeof(__u16) * (3 + num)
- + align - 1) & ~(align - 1))
- + sizeof(__u16) * 3 + sizeof(struct vring_used_elem) * num;
-}
-
-/* The following is used with USED_EVENT_IDX and AVAIL_EVENT_IDX */
-/* Assuming a given event_idx value from the other size, if
- * we have just incremented index from old to new_idx,
- * should we trigger an event? */
-static inline int vring_need_event(__u16 event_idx, __u16 new_idx, __u16 old)
-{
- /* Note: Xen has similar logic for notification hold-off
- * in include/xen/interface/io/ring.h with req_event and req_prod
- * corresponding to event_idx + 1 and new_idx respectively.
- * Note also that req_event and req_prod in Xen start at 1,
- * event indexes in virtio start at 0. */
- return (__u16)(new_idx - event_idx - 1) < (__u16)(new_idx - old);
-}
-
-#ifdef __KERNEL__
-#include <linux/irqreturn.h>
-struct virtio_device;
-struct virtqueue;
-
-struct virtqueue *vring_new_virtqueue(unsigned int num,
- unsigned int vring_align,
- struct virtio_device *vdev,
- bool weak_barriers,
- void *pages,
- void (*notify)(struct virtqueue *vq),
- void (*callback)(struct virtqueue *vq),
- const char *name);
-void vring_del_virtqueue(struct virtqueue *vq);
-/* Filter out transport-specific feature bits. */
-void vring_transport_features(struct virtio_device *vdev);
-
-irqreturn_t vring_interrupt(int irq, void *_vq);
-#endif /* __KERNEL__ */
-#endif /* _LINUX_VIRTIO_RING_H */
diff --git a/ANDROID_3.4.5/include/linux/virtio_rng.h b/ANDROID_3.4.5/include/linux/virtio_rng.h
deleted file mode 100644
index c4d5de89..00000000
--- a/ANDROID_3.4.5/include/linux/virtio_rng.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef _LINUX_VIRTIO_RNG_H
-#define _LINUX_VIRTIO_RNG_H
-/* This header is BSD licensed so anyone can use the definitions to implement
- * compatible drivers/servers. */
-#include <linux/virtio_ids.h>
-#include <linux/virtio_config.h>
-
-#endif /* _LINUX_VIRTIO_RNG_H */
diff --git a/ANDROID_3.4.5/include/linux/virtio_scsi.h b/ANDROID_3.4.5/include/linux/virtio_scsi.h
deleted file mode 100644
index 8ddeafdc..00000000
--- a/ANDROID_3.4.5/include/linux/virtio_scsi.h
+++ /dev/null
@@ -1,114 +0,0 @@
-#ifndef _LINUX_VIRTIO_SCSI_H
-#define _LINUX_VIRTIO_SCSI_H
-/* This header is BSD licensed so anyone can use the definitions to implement
- * compatible drivers/servers. */
-
-#define VIRTIO_SCSI_CDB_SIZE 32
-#define VIRTIO_SCSI_SENSE_SIZE 96
-
-/* SCSI command request, followed by data-out */
-struct virtio_scsi_cmd_req {
- u8 lun[8]; /* Logical Unit Number */
- u64 tag; /* Command identifier */
- u8 task_attr; /* Task attribute */
- u8 prio;
- u8 crn;
- u8 cdb[VIRTIO_SCSI_CDB_SIZE];
-} __packed;
-
-/* Response, followed by sense data and data-in */
-struct virtio_scsi_cmd_resp {
- u32 sense_len; /* Sense data length */
- u32 resid; /* Residual bytes in data buffer */
- u16 status_qualifier; /* Status qualifier */
- u8 status; /* Command completion status */
- u8 response; /* Response values */
- u8 sense[VIRTIO_SCSI_SENSE_SIZE];
-} __packed;
-
-/* Task Management Request */
-struct virtio_scsi_ctrl_tmf_req {
- u32 type;
- u32 subtype;
- u8 lun[8];
- u64 tag;
-} __packed;
-
-struct virtio_scsi_ctrl_tmf_resp {
- u8 response;
-} __packed;
-
-/* Asynchronous notification query/subscription */
-struct virtio_scsi_ctrl_an_req {
- u32 type;
- u8 lun[8];
- u32 event_requested;
-} __packed;
-
-struct virtio_scsi_ctrl_an_resp {
- u32 event_actual;
- u8 response;
-} __packed;
-
-struct virtio_scsi_event {
- u32 event;
- u8 lun[8];
- u32 reason;
-} __packed;
-
-struct virtio_scsi_config {
- u32 num_queues;
- u32 seg_max;
- u32 max_sectors;
- u32 cmd_per_lun;
- u32 event_info_size;
- u32 sense_size;
- u32 cdb_size;
- u16 max_channel;
- u16 max_target;
- u32 max_lun;
-} __packed;
-
-/* Response codes */
-#define VIRTIO_SCSI_S_OK 0
-#define VIRTIO_SCSI_S_OVERRUN 1
-#define VIRTIO_SCSI_S_ABORTED 2
-#define VIRTIO_SCSI_S_BAD_TARGET 3
-#define VIRTIO_SCSI_S_RESET 4
-#define VIRTIO_SCSI_S_BUSY 5
-#define VIRTIO_SCSI_S_TRANSPORT_FAILURE 6
-#define VIRTIO_SCSI_S_TARGET_FAILURE 7
-#define VIRTIO_SCSI_S_NEXUS_FAILURE 8
-#define VIRTIO_SCSI_S_FAILURE 9
-#define VIRTIO_SCSI_S_FUNCTION_SUCCEEDED 10
-#define VIRTIO_SCSI_S_FUNCTION_REJECTED 11
-#define VIRTIO_SCSI_S_INCORRECT_LUN 12
-
-/* Controlq type codes. */
-#define VIRTIO_SCSI_T_TMF 0
-#define VIRTIO_SCSI_T_AN_QUERY 1
-#define VIRTIO_SCSI_T_AN_SUBSCRIBE 2
-
-/* Valid TMF subtypes. */
-#define VIRTIO_SCSI_T_TMF_ABORT_TASK 0
-#define VIRTIO_SCSI_T_TMF_ABORT_TASK_SET 1
-#define VIRTIO_SCSI_T_TMF_CLEAR_ACA 2
-#define VIRTIO_SCSI_T_TMF_CLEAR_TASK_SET 3
-#define VIRTIO_SCSI_T_TMF_I_T_NEXUS_RESET 4
-#define VIRTIO_SCSI_T_TMF_LOGICAL_UNIT_RESET 5
-#define VIRTIO_SCSI_T_TMF_QUERY_TASK 6
-#define VIRTIO_SCSI_T_TMF_QUERY_TASK_SET 7
-
-/* Events. */
-#define VIRTIO_SCSI_T_EVENTS_MISSED 0x80000000
-#define VIRTIO_SCSI_T_NO_EVENT 0
-#define VIRTIO_SCSI_T_TRANSPORT_RESET 1
-#define VIRTIO_SCSI_T_ASYNC_NOTIFY 2
-
-#define VIRTIO_SCSI_S_SIMPLE 0
-#define VIRTIO_SCSI_S_ORDERED 1
-#define VIRTIO_SCSI_S_HEAD 2
-#define VIRTIO_SCSI_S_ACA 3
-
-
-#endif /* _LINUX_VIRTIO_SCSI_H */
diff --git a/ANDROID_3.4.5/include/linux/vlynq.h b/ANDROID_3.4.5/include/linux/vlynq.h
deleted file mode 100644
index 017d4a53..00000000
--- a/ANDROID_3.4.5/include/linux/vlynq.h
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Copyright (C) 2006, 2007 Eugene Konev <ejka@openwrt.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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifndef __VLYNQ_H__
-#define __VLYNQ_H__
-
-#include <linux/device.h>
-#include <linux/types.h>
-
-struct module;
-
-#define VLYNQ_NUM_IRQS 32
-
-struct vlynq_mapping {
- u32 size;
- u32 offset;
-};
-
-enum vlynq_divisor {
- vlynq_div_auto = 0,
- vlynq_ldiv1,
- vlynq_ldiv2,
- vlynq_ldiv3,
- vlynq_ldiv4,
- vlynq_ldiv5,
- vlynq_ldiv6,
- vlynq_ldiv7,
- vlynq_ldiv8,
- vlynq_rdiv1,
- vlynq_rdiv2,
- vlynq_rdiv3,
- vlynq_rdiv4,
- vlynq_rdiv5,
- vlynq_rdiv6,
- vlynq_rdiv7,
- vlynq_rdiv8,
- vlynq_div_external
-};
-
-struct vlynq_device_id {
- u32 id;
- enum vlynq_divisor divisor;
- unsigned long driver_data;
-};
-
-struct vlynq_regs;
-struct vlynq_device {
- u32 id, dev_id;
- int local_irq;
- int remote_irq;
- enum vlynq_divisor divisor;
- u32 regs_start, regs_end;
- u32 mem_start, mem_end;
- u32 irq_start, irq_end;
- int irq;
- int enabled;
- struct vlynq_regs *local;
- struct vlynq_regs *remote;
- struct device dev;
-};
-
-struct vlynq_driver {
- char *name;
- struct vlynq_device_id *id_table;
- int (*probe)(struct vlynq_device *dev, struct vlynq_device_id *id);
- void (*remove)(struct vlynq_device *dev);
- struct device_driver driver;
-};
-
-struct plat_vlynq_ops {
- int (*on)(struct vlynq_device *dev);
- void (*off)(struct vlynq_device *dev);
-};
-
-static inline struct vlynq_driver *to_vlynq_driver(struct device_driver *drv)
-{
- return container_of(drv, struct vlynq_driver, driver);
-}
-
-static inline struct vlynq_device *to_vlynq_device(struct device *device)
-{
- return container_of(device, struct vlynq_device, dev);
-}
-
-extern struct bus_type vlynq_bus_type;
-
-extern int __vlynq_register_driver(struct vlynq_driver *driver,
- struct module *owner);
-
-static inline int vlynq_register_driver(struct vlynq_driver *driver)
-{
- return __vlynq_register_driver(driver, THIS_MODULE);
-}
-
-static inline void *vlynq_get_drvdata(struct vlynq_device *dev)
-{
- return dev_get_drvdata(&dev->dev);
-}
-
-static inline void vlynq_set_drvdata(struct vlynq_device *dev, void *data)
-{
- dev_set_drvdata(&dev->dev, data);
-}
-
-static inline u32 vlynq_mem_start(struct vlynq_device *dev)
-{
- return dev->mem_start;
-}
-
-static inline u32 vlynq_mem_end(struct vlynq_device *dev)
-{
- return dev->mem_end;
-}
-
-static inline u32 vlynq_mem_len(struct vlynq_device *dev)
-{
- return dev->mem_end - dev->mem_start + 1;
-}
-
-static inline int vlynq_virq_to_irq(struct vlynq_device *dev, int virq)
-{
- int irq = dev->irq_start + virq;
- if ((irq < dev->irq_start) || (irq > dev->irq_end))
- return -EINVAL;
-
- return irq;
-}
-
-static inline int vlynq_irq_to_virq(struct vlynq_device *dev, int irq)
-{
- if ((irq < dev->irq_start) || (irq > dev->irq_end))
- return -EINVAL;
-
- return irq - dev->irq_start;
-}
-
-extern void vlynq_unregister_driver(struct vlynq_driver *driver);
-extern int vlynq_enable_device(struct vlynq_device *dev);
-extern void vlynq_disable_device(struct vlynq_device *dev);
-extern int vlynq_set_local_mapping(struct vlynq_device *dev, u32 tx_offset,
- struct vlynq_mapping *mapping);
-extern int vlynq_set_remote_mapping(struct vlynq_device *dev, u32 tx_offset,
- struct vlynq_mapping *mapping);
-extern int vlynq_set_local_irq(struct vlynq_device *dev, int virq);
-extern int vlynq_set_remote_irq(struct vlynq_device *dev, int virq);
-
-#endif /* __VLYNQ_H__ */
diff --git a/ANDROID_3.4.5/include/linux/vm_event_item.h b/ANDROID_3.4.5/include/linux/vm_event_item.h
deleted file mode 100644
index 06f8e385..00000000
--- a/ANDROID_3.4.5/include/linux/vm_event_item.h
+++ /dev/null
@@ -1,65 +0,0 @@
-#ifndef VM_EVENT_ITEM_H_INCLUDED
-#define VM_EVENT_ITEM_H_INCLUDED
-
-#ifdef CONFIG_ZONE_DMA
-#define DMA_ZONE(xx) xx##_DMA,
-#else
-#define DMA_ZONE(xx)
-#endif
-
-#ifdef CONFIG_ZONE_DMA32
-#define DMA32_ZONE(xx) xx##_DMA32,
-#else
-#define DMA32_ZONE(xx)
-#endif
-
-#ifdef CONFIG_HIGHMEM
-#define HIGHMEM_ZONE(xx) , xx##_HIGH
-#else
-#define HIGHMEM_ZONE(xx)
-#endif
-
-#define FOR_ALL_ZONES(xx) DMA_ZONE(xx) DMA32_ZONE(xx) xx##_NORMAL HIGHMEM_ZONE(xx) , xx##_MOVABLE
-
-enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT,
- FOR_ALL_ZONES(PGALLOC),
- PGFREE, PGACTIVATE, PGDEACTIVATE,
- PGFAULT, PGMAJFAULT,
- FOR_ALL_ZONES(PGREFILL),
- FOR_ALL_ZONES(PGSTEAL_KSWAPD),
- FOR_ALL_ZONES(PGSTEAL_DIRECT),
- FOR_ALL_ZONES(PGSCAN_KSWAPD),
- FOR_ALL_ZONES(PGSCAN_DIRECT),
-#ifdef CONFIG_NUMA
- PGSCAN_ZONE_RECLAIM_FAILED,
-#endif
- PGINODESTEAL, SLABS_SCANNED, KSWAPD_INODESTEAL,
- KSWAPD_LOW_WMARK_HIT_QUICKLY, KSWAPD_HIGH_WMARK_HIT_QUICKLY,
- KSWAPD_SKIP_CONGESTION_WAIT,
- PAGEOUTRUN, ALLOCSTALL, PGROTATED,
-#ifdef CONFIG_COMPACTION
- COMPACTBLOCKS, COMPACTPAGES, COMPACTPAGEFAILED,
- COMPACTSTALL, COMPACTFAIL, COMPACTSUCCESS,
-#endif
-#ifdef CONFIG_HUGETLB_PAGE
- HTLB_BUDDY_PGALLOC, HTLB_BUDDY_PGALLOC_FAIL,
-#endif
- UNEVICTABLE_PGCULLED, /* culled to noreclaim list */
- UNEVICTABLE_PGSCANNED, /* scanned for reclaimability */
- UNEVICTABLE_PGRESCUED, /* rescued from noreclaim list */
- UNEVICTABLE_PGMLOCKED,
- UNEVICTABLE_PGMUNLOCKED,
- UNEVICTABLE_PGCLEARED, /* on COW, page truncate */
- UNEVICTABLE_PGSTRANDED, /* unable to isolate on unlock */
- UNEVICTABLE_MLOCKFREED,
-#ifdef CONFIG_TRANSPARENT_HUGEPAGE
- THP_FAULT_ALLOC,
- THP_FAULT_FALLBACK,
- THP_COLLAPSE_ALLOC,
- THP_COLLAPSE_ALLOC_FAILED,
- THP_SPLIT,
-#endif
- NR_VM_EVENT_ITEMS
-};
-
-#endif /* VM_EVENT_ITEM_H_INCLUDED */
diff --git a/ANDROID_3.4.5/include/linux/vmalloc.h b/ANDROID_3.4.5/include/linux/vmalloc.h
deleted file mode 100644
index dcdfc2bd..00000000
--- a/ANDROID_3.4.5/include/linux/vmalloc.h
+++ /dev/null
@@ -1,160 +0,0 @@
-#ifndef _LINUX_VMALLOC_H
-#define _LINUX_VMALLOC_H
-
-#include <linux/spinlock.h>
-#include <linux/init.h>
-#include <asm/page.h> /* pgprot_t */
-
-struct vm_area_struct; /* vma defining user mapping in mm_types.h */
-
-/* bits in flags of vmalloc's vm_struct below */
-#define VM_IOREMAP 0x00000001 /* ioremap() and friends */
-#define VM_ALLOC 0x00000002 /* vmalloc() */
-#define VM_MAP 0x00000004 /* vmap()ed pages */
-#define VM_USERMAP 0x00000008 /* suitable for remap_vmalloc_range */
-#define VM_VPAGES 0x00000010 /* buffer for pages was vmalloc'ed */
-#define VM_UNLIST 0x00000020 /* vm_struct is not listed in vmlist */
-/* bits [20..32] reserved for arch specific ioremap internals */
-
-/*
- * Maximum alignment for ioremap() regions.
- * Can be overriden by arch-specific value.
- */
-#ifndef IOREMAP_MAX_ORDER
-#define IOREMAP_MAX_ORDER (7 + PAGE_SHIFT) /* 128 pages */
-#endif
-
-struct vm_struct {
- struct vm_struct *next;
- void *addr;
- unsigned long size;
- unsigned long flags;
- struct page **pages;
- unsigned int nr_pages;
- phys_addr_t phys_addr;
- void *caller;
-};
-
-/*
- * Highlevel APIs for driver use
- */
-extern void vm_unmap_ram(const void *mem, unsigned int count);
-extern void *vm_map_ram(struct page **pages, unsigned int count,
- int node, pgprot_t prot);
-extern void vm_unmap_aliases(void);
-
-#ifdef CONFIG_MMU
-extern void __init vmalloc_init(void);
-#else
-static inline void vmalloc_init(void)
-{
-}
-#endif
-
-extern void *vmalloc(unsigned long size);
-extern void *vzalloc(unsigned long size);
-extern void *vmalloc_user(unsigned long size);
-extern void *vmalloc_node(unsigned long size, int node);
-extern void *vzalloc_node(unsigned long size, int node);
-extern void *vmalloc_exec(unsigned long size);
-extern void *vmalloc_32(unsigned long size);
-extern void *vmalloc_32_user(unsigned long size);
-extern void *__vmalloc(unsigned long size, gfp_t gfp_mask, pgprot_t prot);
-extern void *__vmalloc_node_range(unsigned long size, unsigned long align,
- unsigned long start, unsigned long end, gfp_t gfp_mask,
- pgprot_t prot, int node, void *caller);
-extern void vfree(const void *addr);
-
-extern void *vmap(struct page **pages, unsigned int count,
- unsigned long flags, pgprot_t prot);
-extern void vunmap(const void *addr);
-
-extern int remap_vmalloc_range(struct vm_area_struct *vma, void *addr,
- unsigned long pgoff);
-void vmalloc_sync_all(void);
-
-/*
- * Lowlevel-APIs (not for driver use!)
- */
-
-static inline size_t get_vm_area_size(const struct vm_struct *area)
-{
- /* return actual size without guard page */
- return area->size - PAGE_SIZE;
-}
-
-extern struct vm_struct *get_vm_area(unsigned long size, unsigned long flags);
-extern struct vm_struct *get_vm_area_caller(unsigned long size,
- unsigned long flags, void *caller);
-extern struct vm_struct *__get_vm_area(unsigned long size, unsigned long flags,
- unsigned long start, unsigned long end);
-extern struct vm_struct *__get_vm_area_caller(unsigned long size,
- unsigned long flags,
- unsigned long start, unsigned long end,
- void *caller);
-extern struct vm_struct *remove_vm_area(const void *addr);
-
-extern int map_vm_area(struct vm_struct *area, pgprot_t prot,
- struct page ***pages);
-#ifdef CONFIG_MMU
-extern int map_kernel_range_noflush(unsigned long start, unsigned long size,
- pgprot_t prot, struct page **pages);
-extern void unmap_kernel_range_noflush(unsigned long addr, unsigned long size);
-extern void unmap_kernel_range(unsigned long addr, unsigned long size);
-#else
-static inline int
-map_kernel_range_noflush(unsigned long start, unsigned long size,
- pgprot_t prot, struct page **pages)
-{
- return size >> PAGE_SHIFT;
-}
-static inline void
-unmap_kernel_range_noflush(unsigned long addr, unsigned long size)
-{
-}
-static inline void
-unmap_kernel_range(unsigned long addr, unsigned long size)
-{
-}
-#endif
-
-/* Allocate/destroy a 'vmalloc' VM area. */
-extern struct vm_struct *alloc_vm_area(size_t size, pte_t **ptes);
-extern void free_vm_area(struct vm_struct *area);
-
-/* for /dev/kmem */
-extern long vread(char *buf, char *addr, unsigned long count);
-extern long vwrite(char *buf, char *addr, unsigned long count);
-
-/*
- * Internals. Dont't use..
- */
-extern rwlock_t vmlist_lock;
-extern struct vm_struct *vmlist;
-extern __init void vm_area_add_early(struct vm_struct *vm);
-extern __init void vm_area_register_early(struct vm_struct *vm, size_t align);
-
-#ifdef CONFIG_SMP
-# ifdef CONFIG_MMU
-struct vm_struct **pcpu_get_vm_areas(const unsigned long *offsets,
- const size_t *sizes, int nr_vms,
- size_t align);
-
-void pcpu_free_vm_areas(struct vm_struct **vms, int nr_vms);
-# else
-static inline struct vm_struct **
-pcpu_get_vm_areas(const unsigned long *offsets,
- const size_t *sizes, int nr_vms,
- size_t align)
-{
- return NULL;
-}
-
-static inline void
-pcpu_free_vm_areas(struct vm_struct **vms, int nr_vms)
-{
-}
-# endif
-#endif
-
-#endif /* _LINUX_VMALLOC_H */
diff --git a/ANDROID_3.4.5/include/linux/vmstat.h b/ANDROID_3.4.5/include/linux/vmstat.h
deleted file mode 100644
index 65efb92d..00000000
--- a/ANDROID_3.4.5/include/linux/vmstat.h
+++ /dev/null
@@ -1,263 +0,0 @@
-#ifndef _LINUX_VMSTAT_H
-#define _LINUX_VMSTAT_H
-
-#include <linux/types.h>
-#include <linux/percpu.h>
-#include <linux/mm.h>
-#include <linux/mmzone.h>
-#include <linux/vm_event_item.h>
-#include <linux/atomic.h>
-
-extern int sysctl_stat_interval;
-
-#ifdef CONFIG_VM_EVENT_COUNTERS
-/*
- * Light weight per cpu counter implementation.
- *
- * Counters should only be incremented and no critical kernel component
- * should rely on the counter values.
- *
- * Counters are handled completely inline. On many platforms the code
- * generated will simply be the increment of a global address.
- */
-
-struct vm_event_state {
- unsigned long event[NR_VM_EVENT_ITEMS];
-};
-
-DECLARE_PER_CPU(struct vm_event_state, vm_event_states);
-
-static inline void __count_vm_event(enum vm_event_item item)
-{
- __this_cpu_inc(vm_event_states.event[item]);
-}
-
-static inline void count_vm_event(enum vm_event_item item)
-{
- this_cpu_inc(vm_event_states.event[item]);
-}
-
-static inline void __count_vm_events(enum vm_event_item item, long delta)
-{
- __this_cpu_add(vm_event_states.event[item], delta);
-}
-
-static inline void count_vm_events(enum vm_event_item item, long delta)
-{
- this_cpu_add(vm_event_states.event[item], delta);
-}
-
-extern void all_vm_events(unsigned long *);
-#ifdef CONFIG_HOTPLUG
-extern void vm_events_fold_cpu(int cpu);
-#else
-static inline void vm_events_fold_cpu(int cpu)
-{
-}
-#endif
-
-#else
-
-/* Disable counters */
-static inline void count_vm_event(enum vm_event_item item)
-{
-}
-static inline void count_vm_events(enum vm_event_item item, long delta)
-{
-}
-static inline void __count_vm_event(enum vm_event_item item)
-{
-}
-static inline void __count_vm_events(enum vm_event_item item, long delta)
-{
-}
-static inline void all_vm_events(unsigned long *ret)
-{
-}
-static inline void vm_events_fold_cpu(int cpu)
-{
-}
-
-#endif /* CONFIG_VM_EVENT_COUNTERS */
-
-#define __count_zone_vm_events(item, zone, delta) \
- __count_vm_events(item##_NORMAL - ZONE_NORMAL + \
- zone_idx(zone), delta)
-
-/*
- * Zone based page accounting with per cpu differentials.
- */
-extern atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS];
-
-static inline void zone_page_state_add(long x, struct zone *zone,
- enum zone_stat_item item)
-{
- atomic_long_add(x, &zone->vm_stat[item]);
- atomic_long_add(x, &vm_stat[item]);
-}
-
-static inline unsigned long global_page_state(enum zone_stat_item item)
-{
- long x = atomic_long_read(&vm_stat[item]);
-#ifdef CONFIG_SMP
- if (x < 0)
- x = 0;
-#endif
- return x;
-}
-
-static inline unsigned long zone_page_state(struct zone *zone,
- enum zone_stat_item item)
-{
- long x = atomic_long_read(&zone->vm_stat[item]);
-#ifdef CONFIG_SMP
- if (x < 0)
- x = 0;
-#endif
- return x;
-}
-
-/*
- * More accurate version that also considers the currently pending
- * deltas. For that we need to loop over all cpus to find the current
- * deltas. There is no synchronization so the result cannot be
- * exactly accurate either.
- */
-static inline unsigned long zone_page_state_snapshot(struct zone *zone,
- enum zone_stat_item item)
-{
- long x = atomic_long_read(&zone->vm_stat[item]);
-
-#ifdef CONFIG_SMP
- int cpu;
- for_each_online_cpu(cpu)
- x += per_cpu_ptr(zone->pageset, cpu)->vm_stat_diff[item];
-
- if (x < 0)
- x = 0;
-#endif
- return x;
-}
-
-extern unsigned long global_reclaimable_pages(void);
-extern unsigned long zone_reclaimable_pages(struct zone *zone);
-
-#ifdef CONFIG_NUMA
-/*
- * Determine the per node value of a stat item. This function
- * is called frequently in a NUMA machine, so try to be as
- * frugal as possible.
- */
-static inline unsigned long node_page_state(int node,
- enum zone_stat_item item)
-{
- struct zone *zones = NODE_DATA(node)->node_zones;
-
- return
-#ifdef CONFIG_ZONE_DMA
- zone_page_state(&zones[ZONE_DMA], item) +
-#endif
-#ifdef CONFIG_ZONE_DMA32
- zone_page_state(&zones[ZONE_DMA32], item) +
-#endif
-#ifdef CONFIG_HIGHMEM
- zone_page_state(&zones[ZONE_HIGHMEM], item) +
-#endif
- zone_page_state(&zones[ZONE_NORMAL], item) +
- zone_page_state(&zones[ZONE_MOVABLE], item);
-}
-
-extern void zone_statistics(struct zone *, struct zone *, gfp_t gfp);
-
-#else
-
-#define node_page_state(node, item) global_page_state(item)
-#define zone_statistics(_zl, _z, gfp) do { } while (0)
-
-#endif /* CONFIG_NUMA */
-
-#define add_zone_page_state(__z, __i, __d) mod_zone_page_state(__z, __i, __d)
-#define sub_zone_page_state(__z, __i, __d) mod_zone_page_state(__z, __i, -(__d))
-
-static inline void zap_zone_vm_stats(struct zone *zone)
-{
- memset(zone->vm_stat, 0, sizeof(zone->vm_stat));
-}
-
-extern void inc_zone_state(struct zone *, enum zone_stat_item);
-
-#ifdef CONFIG_SMP
-void __mod_zone_page_state(struct zone *, enum zone_stat_item item, int);
-void __inc_zone_page_state(struct page *, enum zone_stat_item);
-void __dec_zone_page_state(struct page *, enum zone_stat_item);
-
-void mod_zone_page_state(struct zone *, enum zone_stat_item, int);
-void inc_zone_page_state(struct page *, enum zone_stat_item);
-void dec_zone_page_state(struct page *, enum zone_stat_item);
-
-extern void inc_zone_state(struct zone *, enum zone_stat_item);
-extern void __inc_zone_state(struct zone *, enum zone_stat_item);
-extern void dec_zone_state(struct zone *, enum zone_stat_item);
-extern void __dec_zone_state(struct zone *, enum zone_stat_item);
-
-void refresh_cpu_vm_stats(int);
-void refresh_zone_stat_thresholds(void);
-
-int calculate_pressure_threshold(struct zone *zone);
-int calculate_normal_threshold(struct zone *zone);
-void set_pgdat_percpu_threshold(pg_data_t *pgdat,
- int (*calculate_pressure)(struct zone *));
-#else /* CONFIG_SMP */
-
-/*
- * We do not maintain differentials in a single processor configuration.
- * The functions directly modify the zone and global counters.
- */
-static inline void __mod_zone_page_state(struct zone *zone,
- enum zone_stat_item item, int delta)
-{
- zone_page_state_add(delta, zone, item);
-}
-
-static inline void __inc_zone_state(struct zone *zone, enum zone_stat_item item)
-{
- atomic_long_inc(&zone->vm_stat[item]);
- atomic_long_inc(&vm_stat[item]);
-}
-
-static inline void __inc_zone_page_state(struct page *page,
- enum zone_stat_item item)
-{
- __inc_zone_state(page_zone(page), item);
-}
-
-static inline void __dec_zone_state(struct zone *zone, enum zone_stat_item item)
-{
- atomic_long_dec(&zone->vm_stat[item]);
- atomic_long_dec(&vm_stat[item]);
-}
-
-static inline void __dec_zone_page_state(struct page *page,
- enum zone_stat_item item)
-{
- __dec_zone_state(page_zone(page), item);
-}
-
-/*
- * We only use atomic operations to update counters. So there is no need to
- * disable interrupts.
- */
-#define inc_zone_page_state __inc_zone_page_state
-#define dec_zone_page_state __dec_zone_page_state
-#define mod_zone_page_state __mod_zone_page_state
-
-#define set_pgdat_percpu_threshold(pgdat, callback) { }
-
-static inline void refresh_cpu_vm_stats(int cpu) { }
-static inline void refresh_zone_stat_thresholds(void) { }
-
-#endif /* CONFIG_SMP */
-
-extern const char * const vmstat_text[];
-
-#endif /* _LINUX_VMSTAT_H */
diff --git a/ANDROID_3.4.5/include/linux/vt.h b/ANDROID_3.4.5/include/linux/vt.h
deleted file mode 100644
index 30a8dd9c..00000000
--- a/ANDROID_3.4.5/include/linux/vt.h
+++ /dev/null
@@ -1,113 +0,0 @@
-#ifndef _LINUX_VT_H
-#define _LINUX_VT_H
-
-
-/*
- * These constants are also useful for user-level apps (e.g., VC
- * resizing).
- */
-#define MIN_NR_CONSOLES 1 /* must be at least 1 */
-#define MAX_NR_CONSOLES 63 /* serial lines start at 64 */
-#define MAX_NR_USER_CONSOLES 63 /* must be root to allocate above this */
- /* Note: the ioctl VT_GETSTATE does not work for
- consoles 16 and higher (since it returns a short) */
-
-/* 0x56 is 'V', to avoid collision with termios and kd */
-
-#define VT_OPENQRY 0x5600 /* find available vt */
-
-struct vt_mode {
- char mode; /* vt mode */
- char waitv; /* if set, hang on writes if not active */
- short relsig; /* signal to raise on release req */
- short acqsig; /* signal to raise on acquisition */
- short frsig; /* unused (set to 0) */
-};
-#define VT_GETMODE 0x5601 /* get mode of active vt */
-#define VT_SETMODE 0x5602 /* set mode of active vt */
-#define VT_AUTO 0x00 /* auto vt switching */
-#define VT_PROCESS 0x01 /* process controls switching */
-#define VT_ACKACQ 0x02 /* acknowledge switch */
-
-struct vt_stat {
- unsigned short v_active; /* active vt */
- unsigned short v_signal; /* signal to send */
- unsigned short v_state; /* vt bitmask */
-};
-#define VT_GETSTATE 0x5603 /* get global vt state info */
-#define VT_SENDSIG 0x5604 /* signal to send to bitmask of vts */
-
-#define VT_RELDISP 0x5605 /* release display */
-
-#define VT_ACTIVATE 0x5606 /* make vt active */
-#define VT_WAITACTIVE 0x5607 /* wait for vt active */
-#define VT_DISALLOCATE 0x5608 /* free memory associated to vt */
-
-struct vt_sizes {
- unsigned short v_rows; /* number of rows */
- unsigned short v_cols; /* number of columns */
- unsigned short v_scrollsize; /* number of lines of scrollback */
-};
-#define VT_RESIZE 0x5609 /* set kernel's idea of screensize */
-
-struct vt_consize {
- unsigned short v_rows; /* number of rows */
- unsigned short v_cols; /* number of columns */
- unsigned short v_vlin; /* number of pixel rows on screen */
- unsigned short v_clin; /* number of pixel rows per character */
- unsigned short v_vcol; /* number of pixel columns on screen */
- unsigned short v_ccol; /* number of pixel columns per character */
-};
-#define VT_RESIZEX 0x560A /* set kernel's idea of screensize + more */
-#define VT_LOCKSWITCH 0x560B /* disallow vt switching */
-#define VT_UNLOCKSWITCH 0x560C /* allow vt switching */
-#define VT_GETHIFONTMASK 0x560D /* return hi font mask */
-
-struct vt_event {
- unsigned int event;
-#define VT_EVENT_SWITCH 0x0001 /* Console switch */
-#define VT_EVENT_BLANK 0x0002 /* Screen blank */
-#define VT_EVENT_UNBLANK 0x0004 /* Screen unblank */
-#define VT_EVENT_RESIZE 0x0008 /* Resize display */
-#define VT_MAX_EVENT 0x000F
- unsigned int oldev; /* Old console */
- unsigned int newev; /* New console (if changing) */
- unsigned int pad[4]; /* Padding for expansion */
-};
-
-#define VT_WAITEVENT 0x560E /* Wait for an event */
-
-struct vt_setactivate {
- unsigned int console;
- struct vt_mode mode;
-};
-
-#define VT_SETACTIVATE 0x560F /* Activate and set the mode of a console */
-
-#ifdef __KERNEL__
-
-/* Virtual Terminal events. */
-#define VT_ALLOCATE 0x0001 /* Console got allocated */
-#define VT_DEALLOCATE 0x0002 /* Console will be deallocated */
-#define VT_WRITE 0x0003 /* A char got output */
-#define VT_UPDATE 0x0004 /* A bigger update occurred */
-#define VT_PREWRITE 0x0005 /* A char is about to be written to the console */
-
-#ifdef CONFIG_VT_CONSOLE
-
-extern int vt_kmsg_redirect(int new);
-
-#else
-
-static inline int vt_kmsg_redirect(int new)
-{
- return 0;
-}
-
-#endif
-
-#endif /* __KERNEL__ */
-
-#define vt_get_kmsg_redirect() vt_kmsg_redirect(-1)
-
-#endif /* _LINUX_VT_H */
diff --git a/ANDROID_3.4.5/include/linux/vt_buffer.h b/ANDROID_3.4.5/include/linux/vt_buffer.h
deleted file mode 100644
index 057db7d2..00000000
--- a/ANDROID_3.4.5/include/linux/vt_buffer.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * include/linux/vt_buffer.h -- Access to VT screen buffer
- *
- * (c) 1998 Martin Mares <mj@ucw.cz>
- *
- * This is a set of macros and functions which are used in the
- * console driver and related code to access the screen buffer.
- * In most cases the console works with simple in-memory buffer,
- * but when handling hardware text mode consoles, we store
- * the foreground console directly in video memory.
- */
-
-#ifndef _LINUX_VT_BUFFER_H_
-#define _LINUX_VT_BUFFER_H_
-
-
-#if defined(CONFIG_VGA_CONSOLE) || defined(CONFIG_MDA_CONSOLE)
-#include <asm/vga.h>
-#endif
-
-#ifndef VT_BUF_HAVE_RW
-#define scr_writew(val, addr) (*(addr) = (val))
-#define scr_readw(addr) (*(addr))
-#define scr_memcpyw(d, s, c) memcpy(d, s, c)
-#define scr_memmovew(d, s, c) memmove(d, s, c)
-#define VT_BUF_HAVE_MEMCPYW
-#define VT_BUF_HAVE_MEMMOVEW
-#endif
-
-#ifndef VT_BUF_HAVE_MEMSETW
-static inline void scr_memsetw(u16 *s, u16 c, unsigned int count)
-{
- count /= 2;
- while (count--)
- scr_writew(c, s++);
-}
-#endif
-
-#ifndef VT_BUF_HAVE_MEMCPYW
-static inline void scr_memcpyw(u16 *d, const u16 *s, unsigned int count)
-{
- count /= 2;
- while (count--)
- scr_writew(scr_readw(s++), d++);
-}
-#endif
-
-#ifndef VT_BUF_HAVE_MEMMOVEW
-static inline void scr_memmovew(u16 *d, const u16 *s, unsigned int count)
-{
- if (d < s)
- scr_memcpyw(d, s, count);
- else {
- count /= 2;
- d += count;
- s += count;
- while (count--)
- scr_writew(scr_readw(--s), --d);
- }
-}
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/vt_kern.h b/ANDROID_3.4.5/include/linux/vt_kern.h
deleted file mode 100644
index e33d77f1..00000000
--- a/ANDROID_3.4.5/include/linux/vt_kern.h
+++ /dev/null
@@ -1,196 +0,0 @@
-#ifndef _VT_KERN_H
-#define _VT_KERN_H
-
-/*
- * this really is an extension of the vc_cons structure in console.c, but
- * with information needed by the vt package
- */
-
-#include <linux/vt.h>
-#include <linux/kd.h>
-#include <linux/tty.h>
-#include <linux/mutex.h>
-#include <linux/console_struct.h>
-#include <linux/mm.h>
-#include <linux/consolemap.h>
-#include <linux/notifier.h>
-
-/*
- * Presently, a lot of graphics programs do not restore the contents of
- * the higher font pages. Defining this flag will avoid use of them, but
- * will lose support for PIO_FONTRESET. Note that many font operations are
- * not likely to work with these programs anyway; they need to be
- * fixed. The linux/Documentation directory includes a code snippet
- * to save and restore the text font.
- */
-#ifdef CONFIG_VGA_CONSOLE
-#define BROKEN_GRAPHICS_PROGRAMS 1
-#endif
-
-extern void kd_mksound(unsigned int hz, unsigned int ticks);
-extern int kbd_rate(struct kbd_repeat *rep);
-extern int fg_console, last_console, want_console;
-
-/* console.c */
-
-int vc_allocate(unsigned int console);
-int vc_cons_allocated(unsigned int console);
-int vc_resize(struct vc_data *vc, unsigned int cols, unsigned int lines);
-void vc_deallocate(unsigned int console);
-void reset_palette(struct vc_data *vc);
-void do_blank_screen(int entering_gfx);
-void do_unblank_screen(int leaving_gfx);
-void unblank_screen(void);
-void poke_blanked_console(void);
-int con_font_op(struct vc_data *vc, struct console_font_op *op);
-int con_set_cmap(unsigned char __user *cmap);
-int con_get_cmap(unsigned char __user *cmap);
-void scrollback(struct vc_data *vc, int lines);
-void scrollfront(struct vc_data *vc, int lines);
-void update_region(struct vc_data *vc, unsigned long start, int count);
-void redraw_screen(struct vc_data *vc, int is_switch);
-#define update_screen(x) redraw_screen(x, 0)
-#define switch_screen(x) redraw_screen(x, 1)
-
-struct tty_struct;
-int tioclinux(struct tty_struct *tty, unsigned long arg);
-
-#ifdef CONFIG_CONSOLE_TRANSLATIONS
-/* consolemap.c */
-
-struct unimapinit;
-struct unipair;
-
-int con_set_trans_old(unsigned char __user * table);
-int con_get_trans_old(unsigned char __user * table);
-int con_set_trans_new(unsigned short __user * table);
-int con_get_trans_new(unsigned short __user * table);
-int con_clear_unimap(struct vc_data *vc, struct unimapinit *ui);
-int con_set_unimap(struct vc_data *vc, ushort ct, struct unipair __user *list);
-int con_get_unimap(struct vc_data *vc, ushort ct, ushort __user *uct, struct unipair __user *list);
-int con_set_default_unimap(struct vc_data *vc);
-void con_free_unimap(struct vc_data *vc);
-void con_protect_unimap(struct vc_data *vc, int rdonly);
-int con_copy_unimap(struct vc_data *dst_vc, struct vc_data *src_vc);
-
-#define vc_translate(vc, c) ((vc)->vc_translate[(c) | \
- ((vc)->vc_toggle_meta ? 0x80 : 0)])
-#else
-static inline int con_set_trans_old(unsigned char __user *table)
-{
- return 0;
-}
-static inline int con_get_trans_old(unsigned char __user *table)
-{
- return -EINVAL;
-}
-static inline int con_set_trans_new(unsigned short __user *table)
-{
- return 0;
-}
-static inline int con_get_trans_new(unsigned short __user *table)
-{
- return -EINVAL;
-}
-static inline int con_clear_unimap(struct vc_data *vc, struct unimapinit *ui)
-{
- return 0;
-}
-static inline
-int con_set_unimap(struct vc_data *vc, ushort ct, struct unipair __user *list)
-{
- return 0;
-}
-static inline
-int con_get_unimap(struct vc_data *vc, ushort ct, ushort __user *uct,
- struct unipair __user *list)
-{
- return -EINVAL;
-}
-static inline int con_set_default_unimap(struct vc_data *vc)
-{
- return 0;
-}
-static inline void con_free_unimap(struct vc_data *vc)
-{
-}
-static inline void con_protect_unimap(struct vc_data *vc, int rdonly)
-{
-}
-static inline
-int con_copy_unimap(struct vc_data *dst_vc, struct vc_data *src_vc)
-{
- return 0;
-}
-
-#define vc_translate(vc, c) (c)
-#endif
-
-/* vt.c */
-void vt_event_post(unsigned int event, unsigned int old, unsigned int new);
-int vt_waitactive(int n);
-void change_console(struct vc_data *new_vc);
-void reset_vc(struct vc_data *vc);
-extern int unbind_con_driver(const struct consw *csw, int first, int last,
- int deflt);
-int vty_init(const struct file_operations *console_fops);
-
-static inline bool vt_force_oops_output(struct vc_data *vc)
-{
- if (oops_in_progress && vc->vc_panic_force_write && panic_timeout >= 0)
- return true;
- return false;
-}
-
-extern char vt_dont_switch;
-extern int default_utf8;
-extern int global_cursor_default;
-
-struct vt_spawn_console {
- spinlock_t lock;
- struct pid *pid;
- int sig;
-};
-extern struct vt_spawn_console vt_spawn_con;
-
-extern int vt_move_to_console(unsigned int vt, int alloc);
-
-/* Interfaces for VC notification of character events (for accessibility etc) */
-
-struct vt_notifier_param {
- struct vc_data *vc; /* VC on which the update happened */
- unsigned int c; /* Printed char */
-};
-
-extern int register_vt_notifier(struct notifier_block *nb);
-extern int unregister_vt_notifier(struct notifier_block *nb);
-
-extern void hide_boot_cursor(bool hide);
-
-/* keyboard provided interfaces */
-extern int vt_do_diacrit(unsigned int cmd, void __user *up, int eperm);
-extern int vt_do_kdskbmode(int console, unsigned int arg);
-extern int vt_do_kdskbmeta(int console, unsigned int arg);
-extern int vt_do_kbkeycode_ioctl(int cmd, struct kbkeycode __user *user_kbkc,
- int perm);
-extern int vt_do_kdsk_ioctl(int cmd, struct kbentry __user *user_kbe,
- int perm, int console);
-extern int vt_do_kdgkb_ioctl(int cmd, struct kbsentry __user *user_kdgkb,
- int perm);
-extern int vt_do_kdskled(int console, int cmd, unsigned long arg, int perm);
-extern int vt_do_kdgkbmode(int console);
-extern int vt_do_kdgkbmeta(int console);
-extern void vt_reset_unicode(int console);
-extern int vt_get_shift_state(void);
-extern void vt_reset_keyboard(int console);
-extern int vt_get_leds(int console, int flag);
-extern int vt_get_kbd_mode_bit(int console, int bit);
-extern void vt_set_kbd_mode_bit(int console, int bit);
-extern void vt_clr_kbd_mode_bit(int console, int bit);
-extern void vt_set_led_state(int console, int leds);
-extern void vt_set_led_state(int console, int leds);
-extern void vt_kbd_con_start(int console);
-extern void vt_kbd_con_stop(int console);
-
-
-#endif /* _VT_KERN_H */
diff --git a/ANDROID_3.4.5/include/linux/w1-gpio.h b/ANDROID_3.4.5/include/linux/w1-gpio.h
deleted file mode 100644
index 3adeff82..00000000
--- a/ANDROID_3.4.5/include/linux/w1-gpio.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * w1-gpio interface to platform code
- *
- * Copyright (C) 2007 Ville Syrjala <syrjala@sci.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.
- */
-#ifndef _LINUX_W1_GPIO_H
-#define _LINUX_W1_GPIO_H
-
-/**
- * struct w1_gpio_platform_data - Platform-dependent data for w1-gpio
- * @pin: GPIO pin to use
- * @is_open_drain: GPIO pin is configured as open drain
- */
-struct w1_gpio_platform_data {
- unsigned int pin;
- unsigned int is_open_drain:1;
- void (*enable_external_pullup)(int enable);
-};
-
-#endif /* _LINUX_W1_GPIO_H */
diff --git a/ANDROID_3.4.5/include/linux/wait.h b/ANDROID_3.4.5/include/linux/wait.h
deleted file mode 100644
index 1dee81c4..00000000
--- a/ANDROID_3.4.5/include/linux/wait.h
+++ /dev/null
@@ -1,668 +0,0 @@
-#ifndef _LINUX_WAIT_H
-#define _LINUX_WAIT_H
-
-#define WNOHANG 0x00000001
-#define WUNTRACED 0x00000002
-#define WSTOPPED WUNTRACED
-#define WEXITED 0x00000004
-#define WCONTINUED 0x00000008
-#define WNOWAIT 0x01000000 /* Don't reap, just poll status. */
-
-#define __WNOTHREAD 0x20000000 /* Don't wait on children of other threads in this group */
-#define __WALL 0x40000000 /* Wait on all children, regardless of type */
-#define __WCLONE 0x80000000 /* Wait only on non-SIGCHLD children */
-
-/* First argument to waitid: */
-#define P_ALL 0
-#define P_PID 1
-#define P_PGID 2
-
-#ifdef __KERNEL__
-
-#include <linux/list.h>
-#include <linux/stddef.h>
-#include <linux/spinlock.h>
-#include <asm/current.h>
-
-typedef struct __wait_queue wait_queue_t;
-typedef int (*wait_queue_func_t)(wait_queue_t *wait, unsigned mode, int flags, void *key);
-int default_wake_function(wait_queue_t *wait, unsigned mode, int flags, void *key);
-
-struct __wait_queue {
- unsigned int flags;
-#define WQ_FLAG_EXCLUSIVE 0x01
- void *private;
- wait_queue_func_t func;
- struct list_head task_list;
-};
-
-struct wait_bit_key {
- void *flags;
- int bit_nr;
-};
-
-struct wait_bit_queue {
- struct wait_bit_key key;
- wait_queue_t wait;
-};
-
-struct __wait_queue_head {
- spinlock_t lock;
- struct list_head task_list;
-};
-typedef struct __wait_queue_head wait_queue_head_t;
-
-struct task_struct;
-
-/*
- * Macros for declaration and initialisaton of the datatypes
- */
-
-#define __WAITQUEUE_INITIALIZER(name, tsk) { \
- .private = tsk, \
- .func = default_wake_function, \
- .task_list = { NULL, NULL } }
-
-#define DECLARE_WAITQUEUE(name, tsk) \
- wait_queue_t name = __WAITQUEUE_INITIALIZER(name, tsk)
-
-#define __WAIT_QUEUE_HEAD_INITIALIZER(name) { \
- .lock = __SPIN_LOCK_UNLOCKED(name.lock), \
- .task_list = { &(name).task_list, &(name).task_list } }
-
-#define DECLARE_WAIT_QUEUE_HEAD(name) \
- wait_queue_head_t name = __WAIT_QUEUE_HEAD_INITIALIZER(name)
-
-#define __WAIT_BIT_KEY_INITIALIZER(word, bit) \
- { .flags = word, .bit_nr = bit, }
-
-extern void __init_waitqueue_head(wait_queue_head_t *q, const char *name, struct lock_class_key *);
-
-#define init_waitqueue_head(q) \
- do { \
- static struct lock_class_key __key; \
- \
- __init_waitqueue_head((q), #q, &__key); \
- } while (0)
-
-#ifdef CONFIG_LOCKDEP
-# define __WAIT_QUEUE_HEAD_INIT_ONSTACK(name) \
- ({ init_waitqueue_head(&name); name; })
-# define DECLARE_WAIT_QUEUE_HEAD_ONSTACK(name) \
- wait_queue_head_t name = __WAIT_QUEUE_HEAD_INIT_ONSTACK(name)
-#else
-# define DECLARE_WAIT_QUEUE_HEAD_ONSTACK(name) DECLARE_WAIT_QUEUE_HEAD(name)
-#endif
-
-static inline void init_waitqueue_entry(wait_queue_t *q, struct task_struct *p)
-{
- q->flags = 0;
- q->private = p;
- q->func = default_wake_function;
-}
-
-static inline void init_waitqueue_func_entry(wait_queue_t *q,
- wait_queue_func_t func)
-{
- q->flags = 0;
- q->private = NULL;
- q->func = func;
-}
-
-static inline int waitqueue_active(wait_queue_head_t *q)
-{
- return !list_empty(&q->task_list);
-}
-
-extern void add_wait_queue(wait_queue_head_t *q, wait_queue_t *wait);
-extern void add_wait_queue_exclusive(wait_queue_head_t *q, wait_queue_t *wait);
-extern void remove_wait_queue(wait_queue_head_t *q, wait_queue_t *wait);
-
-static inline void __add_wait_queue(wait_queue_head_t *head, wait_queue_t *new)
-{
- list_add(&new->task_list, &head->task_list);
-}
-
-/*
- * Used for wake-one threads:
- */
-static inline void __add_wait_queue_exclusive(wait_queue_head_t *q,
- wait_queue_t *wait)
-{
- wait->flags |= WQ_FLAG_EXCLUSIVE;
- __add_wait_queue(q, wait);
-}
-
-static inline void __add_wait_queue_tail(wait_queue_head_t *head,
- wait_queue_t *new)
-{
- list_add_tail(&new->task_list, &head->task_list);
-}
-
-static inline void __add_wait_queue_tail_exclusive(wait_queue_head_t *q,
- wait_queue_t *wait)
-{
- wait->flags |= WQ_FLAG_EXCLUSIVE;
- __add_wait_queue_tail(q, wait);
-}
-
-static inline void __remove_wait_queue(wait_queue_head_t *head,
- wait_queue_t *old)
-{
- list_del(&old->task_list);
-}
-
-void __wake_up(wait_queue_head_t *q, unsigned int mode, int nr, void *key);
-void __wake_up_locked_key(wait_queue_head_t *q, unsigned int mode, void *key);
-void __wake_up_sync_key(wait_queue_head_t *q, unsigned int mode, int nr,
- void *key);
-void __wake_up_locked(wait_queue_head_t *q, unsigned int mode, int nr);
-void __wake_up_sync(wait_queue_head_t *q, unsigned int mode, int nr);
-void __wake_up_bit(wait_queue_head_t *, void *, int);
-int __wait_on_bit(wait_queue_head_t *, struct wait_bit_queue *, int (*)(void *), unsigned);
-int __wait_on_bit_lock(wait_queue_head_t *, struct wait_bit_queue *, int (*)(void *), unsigned);
-void wake_up_bit(void *, int);
-int out_of_line_wait_on_bit(void *, int, int (*)(void *), unsigned);
-int out_of_line_wait_on_bit_lock(void *, int, int (*)(void *), unsigned);
-wait_queue_head_t *bit_waitqueue(void *, int);
-
-#define wake_up(x) __wake_up(x, TASK_NORMAL, 1, NULL)
-#define wake_up_nr(x, nr) __wake_up(x, TASK_NORMAL, nr, NULL)
-#define wake_up_all(x) __wake_up(x, TASK_NORMAL, 0, NULL)
-#define wake_up_locked(x) __wake_up_locked((x), TASK_NORMAL, 1)
-#define wake_up_all_locked(x) __wake_up_locked((x), TASK_NORMAL, 0)
-
-#define wake_up_interruptible(x) __wake_up(x, TASK_INTERRUPTIBLE, 1, NULL)
-#define wake_up_interruptible_nr(x, nr) __wake_up(x, TASK_INTERRUPTIBLE, nr, NULL)
-#define wake_up_interruptible_all(x) __wake_up(x, TASK_INTERRUPTIBLE, 0, NULL)
-#define wake_up_interruptible_sync(x) __wake_up_sync((x), TASK_INTERRUPTIBLE, 1)
-
-/*
- * Wakeup macros to be used to report events to the targets.
- */
-#define wake_up_poll(x, m) \
- __wake_up(x, TASK_NORMAL, 1, (void *) (m))
-#define wake_up_locked_poll(x, m) \
- __wake_up_locked_key((x), TASK_NORMAL, (void *) (m))
-#define wake_up_interruptible_poll(x, m) \
- __wake_up(x, TASK_INTERRUPTIBLE, 1, (void *) (m))
-#define wake_up_interruptible_sync_poll(x, m) \
- __wake_up_sync_key((x), TASK_INTERRUPTIBLE, 1, (void *) (m))
-
-#define __wait_event(wq, condition) \
-do { \
- DEFINE_WAIT(__wait); \
- \
- for (;;) { \
- prepare_to_wait(&wq, &__wait, TASK_UNINTERRUPTIBLE); \
- if (condition) \
- break; \
- schedule(); \
- } \
- finish_wait(&wq, &__wait); \
-} while (0)
-
-/**
- * wait_event - sleep until a condition gets true
- * @wq: the waitqueue to wait on
- * @condition: a C expression for the event to wait for
- *
- * The process is put to sleep (TASK_UNINTERRUPTIBLE) until the
- * @condition evaluates to true. The @condition is checked each time
- * the waitqueue @wq is woken up.
- *
- * wake_up() has to be called after changing any variable that could
- * change the result of the wait condition.
- */
-#define wait_event(wq, condition) \
-do { \
- if (condition) \
- break; \
- __wait_event(wq, condition); \
-} while (0)
-
-#define __wait_event_timeout(wq, condition, ret) \
-do { \
- DEFINE_WAIT(__wait); \
- \
- for (;;) { \
- prepare_to_wait(&wq, &__wait, TASK_UNINTERRUPTIBLE); \
- if (condition) \
- break; \
- ret = schedule_timeout(ret); \
- if (!ret) \
- break; \
- } \
- finish_wait(&wq, &__wait); \
-} while (0)
-
-/**
- * wait_event_timeout - sleep until a condition gets true or a timeout elapses
- * @wq: the waitqueue to wait on
- * @condition: a C expression for the event to wait for
- * @timeout: timeout, in jiffies
- *
- * The process is put to sleep (TASK_UNINTERRUPTIBLE) until the
- * @condition evaluates to true. The @condition is checked each time
- * the waitqueue @wq is woken up.
- *
- * wake_up() has to be called after changing any variable that could
- * change the result of the wait condition.
- *
- * The function returns 0 if the @timeout elapsed, and the remaining
- * jiffies if the condition evaluated to true before the timeout elapsed.
- */
-#define wait_event_timeout(wq, condition, timeout) \
-({ \
- long __ret = timeout; \
- if (!(condition)) \
- __wait_event_timeout(wq, condition, __ret); \
- __ret; \
-})
-
-#define __wait_event_interruptible(wq, condition, ret) \
-do { \
- DEFINE_WAIT(__wait); \
- \
- for (;;) { \
- prepare_to_wait(&wq, &__wait, TASK_INTERRUPTIBLE); \
- if (condition) \
- break; \
- if (!signal_pending(current)) { \
- schedule(); \
- continue; \
- } \
- ret = -ERESTARTSYS; \
- break; \
- } \
- finish_wait(&wq, &__wait); \
-} while (0)
-
-/**
- * wait_event_interruptible - sleep until a condition gets true
- * @wq: the waitqueue to wait on
- * @condition: a C expression for the event to wait for
- *
- * The process is put to sleep (TASK_INTERRUPTIBLE) until the
- * @condition evaluates to true or a signal is received.
- * The @condition is checked each time the waitqueue @wq is woken up.
- *
- * wake_up() has to be called after changing any variable that could
- * change the result of the wait condition.
- *
- * The function will return -ERESTARTSYS if it was interrupted by a
- * signal and 0 if @condition evaluated to true.
- */
-#define wait_event_interruptible(wq, condition) \
-({ \
- int __ret = 0; \
- if (!(condition)) \
- __wait_event_interruptible(wq, condition, __ret); \
- __ret; \
-})
-
-#define __wait_event_interruptible_timeout(wq, condition, ret) \
-do { \
- DEFINE_WAIT(__wait); \
- \
- for (;;) { \
- prepare_to_wait(&wq, &__wait, TASK_INTERRUPTIBLE); \
- if (condition) \
- break; \
- if (!signal_pending(current)) { \
- ret = schedule_timeout(ret); \
- if (!ret) \
- break; \
- continue; \
- } \
- ret = -ERESTARTSYS; \
- break; \
- } \
- finish_wait(&wq, &__wait); \
-} while (0)
-
-/**
- * wait_event_interruptible_timeout - sleep until a condition gets true or a timeout elapses
- * @wq: the waitqueue to wait on
- * @condition: a C expression for the event to wait for
- * @timeout: timeout, in jiffies
- *
- * The process is put to sleep (TASK_INTERRUPTIBLE) until the
- * @condition evaluates to true or a signal is received.
- * The @condition is checked each time the waitqueue @wq is woken up.
- *
- * wake_up() has to be called after changing any variable that could
- * change the result of the wait condition.
- *
- * The function returns 0 if the @timeout elapsed, -ERESTARTSYS if it
- * was interrupted by a signal, and the remaining jiffies otherwise
- * if the condition evaluated to true before the timeout elapsed.
- */
-#define wait_event_interruptible_timeout(wq, condition, timeout) \
-({ \
- long __ret = timeout; \
- if (!(condition)) \
- __wait_event_interruptible_timeout(wq, condition, __ret); \
- __ret; \
-})
-
-#define __wait_event_interruptible_exclusive(wq, condition, ret) \
-do { \
- DEFINE_WAIT(__wait); \
- \
- for (;;) { \
- prepare_to_wait_exclusive(&wq, &__wait, \
- TASK_INTERRUPTIBLE); \
- if (condition) { \
- finish_wait(&wq, &__wait); \
- break; \
- } \
- if (!signal_pending(current)) { \
- schedule(); \
- continue; \
- } \
- ret = -ERESTARTSYS; \
- abort_exclusive_wait(&wq, &__wait, \
- TASK_INTERRUPTIBLE, NULL); \
- break; \
- } \
-} while (0)
-
-#define wait_event_interruptible_exclusive(wq, condition) \
-({ \
- int __ret = 0; \
- if (!(condition)) \
- __wait_event_interruptible_exclusive(wq, condition, __ret);\
- __ret; \
-})
-
-
-#define __wait_event_interruptible_locked(wq, condition, exclusive, irq) \
-({ \
- int __ret = 0; \
- DEFINE_WAIT(__wait); \
- if (exclusive) \
- __wait.flags |= WQ_FLAG_EXCLUSIVE; \
- do { \
- if (likely(list_empty(&__wait.task_list))) \
- __add_wait_queue_tail(&(wq), &__wait); \
- set_current_state(TASK_INTERRUPTIBLE); \
- if (signal_pending(current)) { \
- __ret = -ERESTARTSYS; \
- break; \
- } \
- if (irq) \
- spin_unlock_irq(&(wq).lock); \
- else \
- spin_unlock(&(wq).lock); \
- schedule(); \
- if (irq) \
- spin_lock_irq(&(wq).lock); \
- else \
- spin_lock(&(wq).lock); \
- } while (!(condition)); \
- __remove_wait_queue(&(wq), &__wait); \
- __set_current_state(TASK_RUNNING); \
- __ret; \
-})
-
-
-/**
- * wait_event_interruptible_locked - sleep until a condition gets true
- * @wq: the waitqueue to wait on
- * @condition: a C expression for the event to wait for
- *
- * The process is put to sleep (TASK_INTERRUPTIBLE) until the
- * @condition evaluates to true or a signal is received.
- * The @condition is checked each time the waitqueue @wq is woken up.
- *
- * It must be called with wq.lock being held. This spinlock is
- * unlocked while sleeping but @condition testing is done while lock
- * is held and when this macro exits the lock is held.
- *
- * The lock is locked/unlocked using spin_lock()/spin_unlock()
- * functions which must match the way they are locked/unlocked outside
- * of this macro.
- *
- * wake_up_locked() has to be called after changing any variable that could
- * change the result of the wait condition.
- *
- * The function will return -ERESTARTSYS if it was interrupted by a
- * signal and 0 if @condition evaluated to true.
- */
-#define wait_event_interruptible_locked(wq, condition) \
- ((condition) \
- ? 0 : __wait_event_interruptible_locked(wq, condition, 0, 0))
-
-/**
- * wait_event_interruptible_locked_irq - sleep until a condition gets true
- * @wq: the waitqueue to wait on
- * @condition: a C expression for the event to wait for
- *
- * The process is put to sleep (TASK_INTERRUPTIBLE) until the
- * @condition evaluates to true or a signal is received.
- * The @condition is checked each time the waitqueue @wq is woken up.
- *
- * It must be called with wq.lock being held. This spinlock is
- * unlocked while sleeping but @condition testing is done while lock
- * is held and when this macro exits the lock is held.
- *
- * The lock is locked/unlocked using spin_lock_irq()/spin_unlock_irq()
- * functions which must match the way they are locked/unlocked outside
- * of this macro.
- *
- * wake_up_locked() has to be called after changing any variable that could
- * change the result of the wait condition.
- *
- * The function will return -ERESTARTSYS if it was interrupted by a
- * signal and 0 if @condition evaluated to true.
- */
-#define wait_event_interruptible_locked_irq(wq, condition) \
- ((condition) \
- ? 0 : __wait_event_interruptible_locked(wq, condition, 0, 1))
-
-/**
- * wait_event_interruptible_exclusive_locked - sleep exclusively until a condition gets true
- * @wq: the waitqueue to wait on
- * @condition: a C expression for the event to wait for
- *
- * The process is put to sleep (TASK_INTERRUPTIBLE) until the
- * @condition evaluates to true or a signal is received.
- * The @condition is checked each time the waitqueue @wq is woken up.
- *
- * It must be called with wq.lock being held. This spinlock is
- * unlocked while sleeping but @condition testing is done while lock
- * is held and when this macro exits the lock is held.
- *
- * The lock is locked/unlocked using spin_lock()/spin_unlock()
- * functions which must match the way they are locked/unlocked outside
- * of this macro.
- *
- * The process is put on the wait queue with an WQ_FLAG_EXCLUSIVE flag
- * set thus when other process waits process on the list if this
- * process is awaken further processes are not considered.
- *
- * wake_up_locked() has to be called after changing any variable that could
- * change the result of the wait condition.
- *
- * The function will return -ERESTARTSYS if it was interrupted by a
- * signal and 0 if @condition evaluated to true.
- */
-#define wait_event_interruptible_exclusive_locked(wq, condition) \
- ((condition) \
- ? 0 : __wait_event_interruptible_locked(wq, condition, 1, 0))
-
-/**
- * wait_event_interruptible_exclusive_locked_irq - sleep until a condition gets true
- * @wq: the waitqueue to wait on
- * @condition: a C expression for the event to wait for
- *
- * The process is put to sleep (TASK_INTERRUPTIBLE) until the
- * @condition evaluates to true or a signal is received.
- * The @condition is checked each time the waitqueue @wq is woken up.
- *
- * It must be called with wq.lock being held. This spinlock is
- * unlocked while sleeping but @condition testing is done while lock
- * is held and when this macro exits the lock is held.
- *
- * The lock is locked/unlocked using spin_lock_irq()/spin_unlock_irq()
- * functions which must match the way they are locked/unlocked outside
- * of this macro.
- *
- * The process is put on the wait queue with an WQ_FLAG_EXCLUSIVE flag
- * set thus when other process waits process on the list if this
- * process is awaken further processes are not considered.
- *
- * wake_up_locked() has to be called after changing any variable that could
- * change the result of the wait condition.
- *
- * The function will return -ERESTARTSYS if it was interrupted by a
- * signal and 0 if @condition evaluated to true.
- */
-#define wait_event_interruptible_exclusive_locked_irq(wq, condition) \
- ((condition) \
- ? 0 : __wait_event_interruptible_locked(wq, condition, 1, 1))
-
-
-
-#define __wait_event_killable(wq, condition, ret) \
-do { \
- DEFINE_WAIT(__wait); \
- \
- for (;;) { \
- prepare_to_wait(&wq, &__wait, TASK_KILLABLE); \
- if (condition) \
- break; \
- if (!fatal_signal_pending(current)) { \
- schedule(); \
- continue; \
- } \
- ret = -ERESTARTSYS; \
- break; \
- } \
- finish_wait(&wq, &__wait); \
-} while (0)
-
-/**
- * wait_event_killable - sleep until a condition gets true
- * @wq: the waitqueue to wait on
- * @condition: a C expression for the event to wait for
- *
- * The process is put to sleep (TASK_KILLABLE) until the
- * @condition evaluates to true or a signal is received.
- * The @condition is checked each time the waitqueue @wq is woken up.
- *
- * wake_up() has to be called after changing any variable that could
- * change the result of the wait condition.
- *
- * The function will return -ERESTARTSYS if it was interrupted by a
- * signal and 0 if @condition evaluated to true.
- */
-#define wait_event_killable(wq, condition) \
-({ \
- int __ret = 0; \
- if (!(condition)) \
- __wait_event_killable(wq, condition, __ret); \
- __ret; \
-})
-
-/*
- * These are the old interfaces to sleep waiting for an event.
- * They are racy. DO NOT use them, use the wait_event* interfaces above.
- * We plan to remove these interfaces.
- */
-extern void sleep_on(wait_queue_head_t *q);
-extern long sleep_on_timeout(wait_queue_head_t *q,
- signed long timeout);
-extern void interruptible_sleep_on(wait_queue_head_t *q);
-extern long interruptible_sleep_on_timeout(wait_queue_head_t *q,
- signed long timeout);
-
-/*
- * Waitqueues which are removed from the waitqueue_head at wakeup time
- */
-void prepare_to_wait(wait_queue_head_t *q, wait_queue_t *wait, int state);
-void prepare_to_wait_exclusive(wait_queue_head_t *q, wait_queue_t *wait, int state);
-void finish_wait(wait_queue_head_t *q, wait_queue_t *wait);
-void abort_exclusive_wait(wait_queue_head_t *q, wait_queue_t *wait,
- unsigned int mode, void *key);
-int autoremove_wake_function(wait_queue_t *wait, unsigned mode, int sync, void *key);
-int wake_bit_function(wait_queue_t *wait, unsigned mode, int sync, void *key);
-
-#define DEFINE_WAIT_FUNC(name, function) \
- wait_queue_t name = { \
- .private = current, \
- .func = function, \
- .task_list = LIST_HEAD_INIT((name).task_list), \
- }
-
-#define DEFINE_WAIT(name) DEFINE_WAIT_FUNC(name, autoremove_wake_function)
-
-#define DEFINE_WAIT_BIT(name, word, bit) \
- struct wait_bit_queue name = { \
- .key = __WAIT_BIT_KEY_INITIALIZER(word, bit), \
- .wait = { \
- .private = current, \
- .func = wake_bit_function, \
- .task_list = \
- LIST_HEAD_INIT((name).wait.task_list), \
- }, \
- }
-
-#define init_wait(wait) \
- do { \
- (wait)->private = current; \
- (wait)->func = autoremove_wake_function; \
- INIT_LIST_HEAD(&(wait)->task_list); \
- (wait)->flags = 0; \
- } while (0)
-
-/**
- * wait_on_bit - wait for a bit to be cleared
- * @word: the word being waited on, a kernel virtual address
- * @bit: the bit of the word being waited on
- * @action: the function used to sleep, which may take special actions
- * @mode: the task state to sleep in
- *
- * There is a standard hashed waitqueue table for generic use. This
- * is the part of the hashtable's accessor API that waits on a bit.
- * For instance, if one were to have waiters on a bitflag, one would
- * call wait_on_bit() in threads waiting for the bit to clear.
- * One uses wait_on_bit() where one is waiting for the bit to clear,
- * but has no intention of setting it.
- */
-static inline int wait_on_bit(void *word, int bit,
- int (*action)(void *), unsigned mode)
-{
- if (!test_bit(bit, word))
- return 0;
- return out_of_line_wait_on_bit(word, bit, action, mode);
-}
-
-/**
- * wait_on_bit_lock - wait for a bit to be cleared, when wanting to set it
- * @word: the word being waited on, a kernel virtual address
- * @bit: the bit of the word being waited on
- * @action: the function used to sleep, which may take special actions
- * @mode: the task state to sleep in
- *
- * There is a standard hashed waitqueue table for generic use. This
- * is the part of the hashtable's accessor API that waits on a bit
- * when one intends to set it, for instance, trying to lock bitflags.
- * For instance, if one were to have waiters trying to set bitflag
- * and waiting for it to clear before setting it, one would call
- * wait_on_bit() in threads waiting to be able to set the bit.
- * One uses wait_on_bit_lock() where one is waiting for the bit to
- * clear with the intention of setting it, and when done, clearing it.
- */
-static inline int wait_on_bit_lock(void *word, int bit,
- int (*action)(void *), unsigned mode)
-{
- if (!test_and_set_bit(bit, word))
- return 0;
- return out_of_line_wait_on_bit_lock(word, bit, action, mode);
-}
-
-#endif /* __KERNEL__ */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/wakelock.h b/ANDROID_3.4.5/include/linux/wakelock.h
deleted file mode 100644
index f4a698a2..00000000
--- a/ANDROID_3.4.5/include/linux/wakelock.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* include/linux/wakelock.h
- *
- * Copyright (C) 2007-2012 Google, Inc.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-
-#ifndef _LINUX_WAKELOCK_H
-#define _LINUX_WAKELOCK_H
-
-#include <linux/ktime.h>
-#include <linux/device.h>
-
-/* A wake_lock prevents the system from entering suspend or other low power
- * states when active. If the type is set to WAKE_LOCK_SUSPEND, the wake_lock
- * prevents a full system suspend.
- */
-
-enum {
- WAKE_LOCK_SUSPEND, /* Prevent suspend */
- WAKE_LOCK_TYPE_COUNT
-};
-
-struct wake_lock {
- struct wakeup_source ws;
-};
-
-static inline void wake_lock_init(struct wake_lock *lock, int type,
- const char *name)
-{
- wakeup_source_init(&lock->ws, name);
-}
-
-static inline void wake_lock_destroy(struct wake_lock *lock)
-{
- wakeup_source_trash(&lock->ws);
-}
-
-static inline void wake_lock(struct wake_lock *lock)
-{
- __pm_stay_awake(&lock->ws);
-}
-
-static inline void wake_lock_timeout(struct wake_lock *lock, long timeout)
-{
- __pm_wakeup_event(&lock->ws, jiffies_to_msecs(timeout));
-}
-
-static inline void wake_unlock(struct wake_lock *lock)
-{
- __pm_relax(&lock->ws);
-}
-
-static inline int wake_lock_active(struct wake_lock *lock)
-{
- return lock->ws.active;
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/wanrouter.h b/ANDROID_3.4.5/include/linux/wanrouter.h
deleted file mode 100644
index 3157cc1f..00000000
--- a/ANDROID_3.4.5/include/linux/wanrouter.h
+++ /dev/null
@@ -1,532 +0,0 @@
-/*****************************************************************************
-* wanrouter.h Definitions for the WAN Multiprotocol Router Module.
-* This module provides API and common services for WAN Link
-* Drivers and is completely hardware-independent.
-*
-* Author: Nenad Corbic <ncorbic@sangoma.com>
-* Gideon Hack
-* Additions: Arnaldo Melo
-*
-* Copyright: (c) 1995-2000 Sangoma Technologies Inc.
-*
-* 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.
-* ============================================================================
-* Jul 21, 2000 Nenad Corbic Added WAN_FT1_READY State
-* Feb 24, 2000 Nenad Corbic Added support for socket based x25api
-* Jan 28, 2000 Nenad Corbic Added support for the ASYNC protocol.
-* Oct 04, 1999 Nenad Corbic Updated for 2.1.0 release
-* Jun 02, 1999 Gideon Hack Added support for the S514 adapter.
-* May 23, 1999 Arnaldo Melo Added local_addr to wanif_conf_t
-* WAN_DISCONNECTING state added
-* Jul 20, 1998 David Fong Added Inverse ARP options to 'wanif_conf_t'
-* Jun 12, 1998 David Fong Added Cisco HDLC support.
-* Dec 16, 1997 Jaspreet Singh Moved 'enable_IPX' and 'network_number' to
-* 'wanif_conf_t'
-* Dec 05, 1997 Jaspreet Singh Added 'pap', 'chap' to 'wanif_conf_t'
-* Added 'authenticator' to 'wan_ppp_conf_t'
-* Nov 06, 1997 Jaspreet Singh Changed Router Driver version to 1.1 from 1.0
-* Oct 20, 1997 Jaspreet Singh Added 'cir','bc','be' and 'mc' to 'wanif_conf_t'
-* Added 'enable_IPX' and 'network_number' to
-* 'wan_device_t'. Also added defines for
-* UDP PACKET TYPE, Interrupt test, critical values
-* for RACE conditions.
-* Oct 05, 1997 Jaspreet Singh Added 'dlci_num' and 'dlci[100]' to
-* 'wan_fr_conf_t' to configure a list of dlci(s)
-* for a NODE
-* Jul 07, 1997 Jaspreet Singh Added 'ttl' to 'wandev_conf_t' & 'wan_device_t'
-* May 29, 1997 Jaspreet Singh Added 'tx_int_enabled' to 'wan_device_t'
-* May 21, 1997 Jaspreet Singh Added 'udp_port' to 'wan_device_t'
-* Apr 25, 1997 Farhan Thawar Added 'udp_port' to 'wandev_conf_t'
-* Jan 16, 1997 Gene Kozin router_devlist made public
-* Jan 02, 1997 Gene Kozin Initial version (based on wanpipe.h).
-*****************************************************************************/
-
-#ifndef _ROUTER_H
-#define _ROUTER_H
-
-#define ROUTER_NAME "wanrouter" /* in case we ever change it */
-#define ROUTER_VERSION 1 /* version number */
-#define ROUTER_RELEASE 1 /* release (minor version) number */
-#define ROUTER_IOCTL 'W' /* for IOCTL calls */
-#define ROUTER_MAGIC 0x524D4157L /* signature: 'WANR' reversed */
-
-/* IOCTL codes for /proc/router/<device> entries (up to 255) */
-enum router_ioctls
-{
- ROUTER_SETUP = ROUTER_IOCTL<<8, /* configure device */
- ROUTER_DOWN, /* shut down device */
- ROUTER_STAT, /* get device status */
- ROUTER_IFNEW, /* add interface */
- ROUTER_IFDEL, /* delete interface */
- ROUTER_IFSTAT, /* get interface status */
- ROUTER_USER = (ROUTER_IOCTL<<8)+16, /* driver-specific calls */
- ROUTER_USER_MAX = (ROUTER_IOCTL<<8)+31
-};
-
-/* identifiers for displaying proc file data for dual port adapters */
-#define PROC_DATA_PORT_0 0x8000 /* the data is for port 0 */
-#define PROC_DATA_PORT_1 0x8001 /* the data is for port 1 */
-
-/* NLPID for packet encapsulation (ISO/IEC TR 9577) */
-#define NLPID_IP 0xCC /* Internet Protocol Datagram */
-#define NLPID_SNAP 0x80 /* IEEE Subnetwork Access Protocol */
-#define NLPID_CLNP 0x81 /* ISO/IEC 8473 */
-#define NLPID_ESIS 0x82 /* ISO/IEC 9542 */
-#define NLPID_ISIS 0x83 /* ISO/IEC ISIS */
-#define NLPID_Q933 0x08 /* CCITT Q.933 */
-
-/* Miscellaneous */
-#define WAN_IFNAME_SZ 15 /* max length of the interface name */
-#define WAN_DRVNAME_SZ 15 /* max length of the link driver name */
-#define WAN_ADDRESS_SZ 31 /* max length of the WAN media address */
-#define USED_BY_FIELD 8 /* max length of the used by field */
-
-/* Defines for UDP PACKET TYPE */
-#define UDP_PTPIPE_TYPE 0x01
-#define UDP_FPIPE_TYPE 0x02
-#define UDP_CPIPE_TYPE 0x03
-#define UDP_DRVSTATS_TYPE 0x04
-#define UDP_INVALID_TYPE 0x05
-
-/* Command return code */
-#define CMD_OK 0 /* normal firmware return code */
-#define CMD_TIMEOUT 0xFF /* firmware command timed out */
-
-/* UDP Packet Management */
-#define UDP_PKT_FRM_STACK 0x00
-#define UDP_PKT_FRM_NETWORK 0x01
-
-/* Maximum interrupt test counter */
-#define MAX_INTR_TEST_COUNTER 100
-
-/* Critical Values for RACE conditions*/
-#define CRITICAL_IN_ISR 0xA1
-#define CRITICAL_INTR_HANDLED 0xB1
-
-/****** Data Types **********************************************************/
-
-/*----------------------------------------------------------------------------
- * X.25-specific link-level configuration.
- */
-typedef struct wan_x25_conf
-{
- unsigned lo_pvc; /* lowest permanent circuit number */
- unsigned hi_pvc; /* highest permanent circuit number */
- unsigned lo_svc; /* lowest switched circuit number */
- unsigned hi_svc; /* highest switched circuit number */
- unsigned hdlc_window; /* HDLC window size (1..7) */
- unsigned pkt_window; /* X.25 packet window size (1..7) */
- unsigned t1; /* HDLC timer T1, sec (1..30) */
- unsigned t2; /* HDLC timer T2, sec (0..29) */
- unsigned t4; /* HDLC supervisory frame timer = T4 * T1 */
- unsigned n2; /* HDLC retransmission limit (1..30) */
- unsigned t10_t20; /* X.25 RESTART timeout, sec (1..255) */
- unsigned t11_t21; /* X.25 CALL timeout, sec (1..255) */
- unsigned t12_t22; /* X.25 RESET timeout, sec (1..255) */
- unsigned t13_t23; /* X.25 CLEAR timeout, sec (1..255) */
- unsigned t16_t26; /* X.25 INTERRUPT timeout, sec (1..255) */
- unsigned t28; /* X.25 REGISTRATION timeout, sec (1..255) */
- unsigned r10_r20; /* RESTART retransmission limit (0..250) */
- unsigned r12_r22; /* RESET retransmission limit (0..250) */
- unsigned r13_r23; /* CLEAR retransmission limit (0..250) */
- unsigned ccitt_compat; /* compatibility mode: 1988/1984/1980 */
- unsigned x25_conf_opt; /* User defined x25 config optoins */
- unsigned char LAPB_hdlc_only; /* Run in HDLC only mode */
- unsigned char logging; /* Control connection logging */
- unsigned char oob_on_modem; /* Whether to send modem status to the user app */
-} wan_x25_conf_t;
-
-/*----------------------------------------------------------------------------
- * Frame relay specific link-level configuration.
- */
-typedef struct wan_fr_conf
-{
- unsigned signalling; /* local in-channel signalling type */
- unsigned t391; /* link integrity verification timer */
- unsigned t392; /* polling verification timer */
- unsigned n391; /* full status polling cycle counter */
- unsigned n392; /* error threshold counter */
- unsigned n393; /* monitored events counter */
- unsigned dlci_num; /* number of DLCs (access node) */
- unsigned dlci[100]; /* List of all DLCIs */
-} wan_fr_conf_t;
-
-/*----------------------------------------------------------------------------
- * PPP-specific link-level configuration.
- */
-typedef struct wan_ppp_conf
-{
- unsigned restart_tmr; /* restart timer */
- unsigned auth_rsrt_tmr; /* authentication timer */
- unsigned auth_wait_tmr; /* authentication timer */
- unsigned mdm_fail_tmr; /* modem failure timer */
- unsigned dtr_drop_tmr; /* DTR drop timer */
- unsigned connect_tmout; /* connection timeout */
- unsigned conf_retry; /* max. retry */
- unsigned term_retry; /* max. retry */
- unsigned fail_retry; /* max. retry */
- unsigned auth_retry; /* max. retry */
- unsigned auth_options; /* authentication opt. */
- unsigned ip_options; /* IP options */
- char authenticator; /* AUTHENTICATOR or not */
- char ip_mode; /* Static/Host/Peer */
-} wan_ppp_conf_t;
-
-/*----------------------------------------------------------------------------
- * CHDLC-specific link-level configuration.
- */
-typedef struct wan_chdlc_conf
-{
- unsigned char ignore_dcd; /* Protocol options: */
- unsigned char ignore_cts; /* Ignore these to determine */
- unsigned char ignore_keepalive; /* link status (Yes or No) */
- unsigned char hdlc_streaming; /* hdlc_streaming mode (Y/N) */
- unsigned char receive_only; /* no transmit buffering (Y/N) */
- unsigned keepalive_tx_tmr; /* transmit keepalive timer */
- unsigned keepalive_rx_tmr; /* receive keepalive timer */
- unsigned keepalive_err_margin; /* keepalive_error_tolerance */
- unsigned slarp_timer; /* SLARP request timer */
-} wan_chdlc_conf_t;
-
-
-/*----------------------------------------------------------------------------
- * WAN device configuration. Passed to ROUTER_SETUP IOCTL.
- */
-typedef struct wandev_conf
-{
- unsigned magic; /* magic number (for verification) */
- unsigned config_id; /* configuration structure identifier */
- /****** hardware configuration ******/
- unsigned ioport; /* adapter I/O port base */
- unsigned long maddr; /* dual-port memory address */
- unsigned msize; /* dual-port memory size */
- int irq; /* interrupt request level */
- int dma; /* DMA request level */
- char S514_CPU_no[1]; /* S514 PCI adapter CPU number ('A' or 'B') */
- unsigned PCI_slot_no; /* S514 PCI adapter slot number */
- char auto_pci_cfg; /* S515 PCI automatic slot detection */
- char comm_port; /* Communication Port (PRI=0, SEC=1) */
- unsigned bps; /* data transfer rate */
- unsigned mtu; /* maximum transmit unit size */
- unsigned udp_port; /* UDP port for management */
- unsigned char ttl; /* Time To Live for UDP security */
- unsigned char ft1; /* FT1 Configurator Option */
- char interface; /* RS-232/V.35, etc. */
- char clocking; /* external/internal */
- char line_coding; /* NRZ/NRZI/FM0/FM1, etc. */
- char station; /* DTE/DCE, primary/secondary, etc. */
- char connection; /* permanent/switched/on-demand */
- char read_mode; /* read mode: Polling or interrupt */
- char receive_only; /* disable tx buffers */
- char tty; /* Create a fake tty device */
- unsigned tty_major; /* Major number for wanpipe tty device */
- unsigned tty_minor; /* Minor number for wanpipe tty device */
- unsigned tty_mode; /* TTY operation mode SYNC or ASYNC */
- char backup; /* Backup Mode */
- unsigned hw_opt[4]; /* other hardware options */
- unsigned reserved[4];
- /****** arbitrary data ***************/
- unsigned data_size; /* data buffer size */
- void* data; /* data buffer, e.g. firmware */
- union /****** protocol-specific ************/
- {
- wan_x25_conf_t x25; /* X.25 configuration */
- wan_ppp_conf_t ppp; /* PPP configuration */
- wan_fr_conf_t fr; /* frame relay configuration */
- wan_chdlc_conf_t chdlc; /* Cisco HDLC configuration */
- } u;
-} wandev_conf_t;
-
-/* 'config_id' definitions */
-#define WANCONFIG_X25 101 /* X.25 link */
-#define WANCONFIG_FR 102 /* frame relay link */
-#define WANCONFIG_PPP 103 /* synchronous PPP link */
-#define WANCONFIG_CHDLC 104 /* Cisco HDLC Link */
-#define WANCONFIG_BSC 105 /* BiSync Streaming */
-#define WANCONFIG_HDLC 106 /* HDLC Support */
-#define WANCONFIG_MPPP 107 /* Multi Port PPP over RAW CHDLC */
-
-/*
- * Configuration options defines.
- */
-/* general options */
-#define WANOPT_OFF 0
-#define WANOPT_ON 1
-#define WANOPT_NO 0
-#define WANOPT_YES 1
-
-/* intercace options */
-#define WANOPT_RS232 0
-#define WANOPT_V35 1
-
-/* data encoding options */
-#define WANOPT_NRZ 0
-#define WANOPT_NRZI 1
-#define WANOPT_FM0 2
-#define WANOPT_FM1 3
-
-/* link type options */
-#define WANOPT_POINTTOPOINT 0 /* RTS always active */
-#define WANOPT_MULTIDROP 1 /* RTS is active when transmitting */
-
-/* clocking options */
-#define WANOPT_EXTERNAL 0
-#define WANOPT_INTERNAL 1
-
-/* station options */
-#define WANOPT_DTE 0
-#define WANOPT_DCE 1
-#define WANOPT_CPE 0
-#define WANOPT_NODE 1
-#define WANOPT_SECONDARY 0
-#define WANOPT_PRIMARY 1
-
-/* connection options */
-#define WANOPT_PERMANENT 0 /* DTR always active */
-#define WANOPT_SWITCHED 1 /* use DTR to setup link (dial-up) */
-#define WANOPT_ONDEMAND 2 /* activate DTR only before sending */
-
-/* frame relay in-channel signalling */
-#define WANOPT_FR_ANSI 1 /* ANSI T1.617 Annex D */
-#define WANOPT_FR_Q933 2 /* ITU Q.933A */
-#define WANOPT_FR_LMI 3 /* LMI */
-
-/* PPP IP Mode Options */
-#define WANOPT_PPP_STATIC 0
-#define WANOPT_PPP_HOST 1
-#define WANOPT_PPP_PEER 2
-
-/* ASY Mode Options */
-#define WANOPT_ONE 1
-#define WANOPT_TWO 2
-#define WANOPT_ONE_AND_HALF 3
-
-#define WANOPT_NONE 0
-#define WANOPT_ODD 1
-#define WANOPT_EVEN 2
-
-/* CHDLC Protocol Options */
-/* DF Commented out for now.
-
-#define WANOPT_CHDLC_NO_DCD IGNORE_DCD_FOR_LINK_STAT
-#define WANOPT_CHDLC_NO_CTS IGNORE_CTS_FOR_LINK_STAT
-#define WANOPT_CHDLC_NO_KEEPALIVE IGNORE_KPALV_FOR_LINK_STAT
-*/
-
-/* Port options */
-#define WANOPT_PRI 0
-#define WANOPT_SEC 1
-/* read mode */
-#define WANOPT_INTR 0
-#define WANOPT_POLL 1
-
-
-#define WANOPT_TTY_SYNC 0
-#define WANOPT_TTY_ASYNC 1
-/*----------------------------------------------------------------------------
- * WAN Link Status Info (for ROUTER_STAT IOCTL).
- */
-typedef struct wandev_stat
-{
- unsigned state; /* link state */
- unsigned ndev; /* number of configured interfaces */
-
- /* link/interface configuration */
- unsigned connection; /* permanent/switched/on-demand */
- unsigned media_type; /* Frame relay/PPP/X.25/SDLC, etc. */
- unsigned mtu; /* max. transmit unit for this device */
-
- /* physical level statistics */
- unsigned modem_status; /* modem status */
- unsigned rx_frames; /* received frames count */
- unsigned rx_overruns; /* receiver overrun error count */
- unsigned rx_crc_err; /* receive CRC error count */
- unsigned rx_aborts; /* received aborted frames count */
- unsigned rx_bad_length; /* unexpetedly long/short frames count */
- unsigned rx_dropped; /* frames discarded at device level */
- unsigned tx_frames; /* transmitted frames count */
- unsigned tx_underruns; /* aborted transmissions (underruns) count */
- unsigned tx_timeouts; /* transmission timeouts */
- unsigned tx_rejects; /* other transmit errors */
-
- /* media level statistics */
- unsigned rx_bad_format; /* frames with invalid format */
- unsigned rx_bad_addr; /* frames with invalid media address */
- unsigned tx_retries; /* frames re-transmitted */
- unsigned reserved[16]; /* reserved for future use */
-} wandev_stat_t;
-
-/* 'state' defines */
-enum wan_states
-{
- WAN_UNCONFIGURED, /* link/channel is not configured */
- WAN_DISCONNECTED, /* link/channel is disconnected */
- WAN_CONNECTING, /* connection is in progress */
- WAN_CONNECTED, /* link/channel is operational */
- WAN_LIMIT, /* for verification only */
- WAN_DUALPORT, /* for Dual Port cards */
- WAN_DISCONNECTING,
- WAN_FT1_READY /* FT1 Configurator Ready */
-};
-
-enum {
- WAN_LOCAL_IP,
- WAN_POINTOPOINT_IP,
- WAN_NETMASK_IP,
- WAN_BROADCAST_IP
-};
-
-/* 'modem_status' masks */
-#define WAN_MODEM_CTS 0x0001 /* CTS line active */
-#define WAN_MODEM_DCD 0x0002 /* DCD line active */
-#define WAN_MODEM_DTR 0x0010 /* DTR line active */
-#define WAN_MODEM_RTS 0x0020 /* RTS line active */
-
-/*----------------------------------------------------------------------------
- * WAN interface (logical channel) configuration (for ROUTER_IFNEW IOCTL).
- */
-typedef struct wanif_conf
-{
- unsigned magic; /* magic number */
- unsigned config_id; /* configuration identifier */
- char name[WAN_IFNAME_SZ+1]; /* interface name, ASCIIZ */
- char addr[WAN_ADDRESS_SZ+1]; /* media address, ASCIIZ */
- char usedby[USED_BY_FIELD]; /* used by API or WANPIPE */
- unsigned idle_timeout; /* sec, before disconnecting */
- unsigned hold_timeout; /* sec, before re-connecting */
- unsigned cir; /* Committed Information Rate fwd,bwd*/
- unsigned bc; /* Committed Burst Size fwd, bwd */
- unsigned be; /* Excess Burst Size fwd, bwd */
- unsigned char enable_IPX; /* Enable or Disable IPX */
- unsigned char inarp; /* Send Inverse ARP requests Y/N */
- unsigned inarp_interval; /* sec, between InARP requests */
- unsigned long network_number; /* Network Number for IPX */
- char mc; /* Multicast on or off */
- char local_addr[WAN_ADDRESS_SZ+1];/* local media address, ASCIIZ */
- unsigned char port; /* board port */
- unsigned char protocol; /* prococol used in this channel (TCPOX25 or X25) */
- char pap; /* PAP enabled or disabled */
- char chap; /* CHAP enabled or disabled */
- unsigned char userid[511]; /* List of User Id */
- unsigned char passwd[511]; /* List of passwords */
- unsigned char sysname[31]; /* Name of the system */
- unsigned char ignore_dcd; /* Protocol options: */
- unsigned char ignore_cts; /* Ignore these to determine */
- unsigned char ignore_keepalive; /* link status (Yes or No) */
- unsigned char hdlc_streaming; /* Hdlc streaming mode (Y/N) */
- unsigned keepalive_tx_tmr; /* transmit keepalive timer */
- unsigned keepalive_rx_tmr; /* receive keepalive timer */
- unsigned keepalive_err_margin; /* keepalive_error_tolerance */
- unsigned slarp_timer; /* SLARP request timer */
- unsigned char ttl; /* Time To Live for UDP security */
- char interface; /* RS-232/V.35, etc. */
- char clocking; /* external/internal */
- unsigned bps; /* data transfer rate */
- unsigned mtu; /* maximum transmit unit size */
- unsigned char if_down; /* brind down interface when disconnected */
- unsigned char gateway; /* Is this interface a gateway */
- unsigned char true_if_encoding; /* Set the dev->type to true board protocol */
-
- unsigned char asy_data_trans; /* async API options */
- unsigned char rts_hs_for_receive; /* async Protocol options */
- unsigned char xon_xoff_hs_for_receive;
- unsigned char xon_xoff_hs_for_transmit;
- unsigned char dcd_hs_for_transmit;
- unsigned char cts_hs_for_transmit;
- unsigned char async_mode;
- unsigned tx_bits_per_char;
- unsigned rx_bits_per_char;
- unsigned stop_bits;
- unsigned char parity;
- unsigned break_timer;
- unsigned inter_char_timer;
- unsigned rx_complete_length;
- unsigned xon_char;
- unsigned xoff_char;
- unsigned char receive_only; /* no transmit buffering (Y/N) */
-} wanif_conf_t;
-
-#ifdef __KERNEL__
-/****** Kernel Interface ****************************************************/
-
-#include <linux/fs.h> /* support for device drivers */
-#include <linux/proc_fs.h> /* proc filesystem pragmatics */
-#include <linux/netdevice.h> /* support for network drivers */
-#include <linux/spinlock.h> /* Support for SMP Locking */
-
-/*----------------------------------------------------------------------------
- * WAN device data space.
- */
-struct wan_device {
- unsigned magic; /* magic number */
- char* name; /* -> WAN device name (ASCIIZ) */
- void* private; /* -> driver private data */
- unsigned config_id; /* Configuration ID */
- /****** hardware configuration ******/
- unsigned ioport; /* adapter I/O port base #1 */
- char S514_cpu_no[1]; /* PCI CPU Number */
- unsigned char S514_slot_no; /* PCI Slot Number */
- unsigned long maddr; /* dual-port memory address */
- unsigned msize; /* dual-port memory size */
- int irq; /* interrupt request level */
- int dma; /* DMA request level */
- unsigned bps; /* data transfer rate */
- unsigned mtu; /* max physical transmit unit size */
- unsigned udp_port; /* UDP port for management */
- unsigned char ttl; /* Time To Live for UDP security */
- unsigned enable_tx_int; /* Transmit Interrupt enabled or not */
- char interface; /* RS-232/V.35, etc. */
- char clocking; /* external/internal */
- char line_coding; /* NRZ/NRZI/FM0/FM1, etc. */
- char station; /* DTE/DCE, primary/secondary, etc. */
- char connection; /* permanent/switched/on-demand */
- char signalling; /* Signalling RS232 or V35 */
- char read_mode; /* read mode: Polling or interrupt */
- char new_if_cnt; /* Number of interfaces per wanpipe */
- char del_if_cnt; /* Number of times del_if() gets called */
- unsigned char piggyback; /* Piggibacking a port */
- unsigned hw_opt[4]; /* other hardware options */
- /****** status and statistics *******/
- char state; /* device state */
- char api_status; /* device api status */
- struct net_device_stats stats; /* interface statistics */
- unsigned reserved[16]; /* reserved for future use */
- unsigned long critical; /* critical section flag */
- spinlock_t lock; /* Support for SMP Locking */
-
- /****** device management methods ***/
- int (*setup) (struct wan_device *wandev, wandev_conf_t *conf);
- int (*shutdown) (struct wan_device *wandev);
- int (*update) (struct wan_device *wandev);
- int (*ioctl) (struct wan_device *wandev, unsigned cmd,
- unsigned long arg);
- int (*new_if)(struct wan_device *wandev, struct net_device *dev,
- wanif_conf_t *conf);
- int (*del_if)(struct wan_device *wandev, struct net_device *dev);
- /****** maintained by the router ****/
- struct wan_device* next; /* -> next device */
- struct net_device* dev; /* list of network interfaces */
- unsigned ndev; /* number of interfaces */
- struct proc_dir_entry *dent; /* proc filesystem entry */
-};
-
-/* Public functions available for device drivers */
-extern int register_wan_device(struct wan_device *wandev);
-extern int unregister_wan_device(char *name);
-
-/* Proc interface functions. These must not be called by the drivers! */
-extern int wanrouter_proc_init(void);
-extern void wanrouter_proc_cleanup(void);
-extern int wanrouter_proc_add(struct wan_device *wandev);
-extern int wanrouter_proc_delete(struct wan_device *wandev);
-extern long wanrouter_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
-
-/* Public Data */
-/* list of registered devices */
-extern struct wan_device *wanrouter_router_devlist;
-
-#endif /* __KERNEL__ */
-#endif /* _ROUTER_H */
diff --git a/ANDROID_3.4.5/include/linux/watchdog.h b/ANDROID_3.4.5/include/linux/watchdog.h
deleted file mode 100644
index ac40716b..00000000
--- a/ANDROID_3.4.5/include/linux/watchdog.h
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Generic watchdog defines. Derived from..
- *
- * Berkshire PC Watchdog Defines
- * by Ken Hollis <khollis@bitgate.com>
- *
- */
-
-#ifndef _LINUX_WATCHDOG_H
-#define _LINUX_WATCHDOG_H
-
-#include <linux/ioctl.h>
-#include <linux/types.h>
-
-#define WATCHDOG_IOCTL_BASE 'W'
-
-struct watchdog_info {
- __u32 options; /* Options the card/driver supports */
- __u32 firmware_version; /* Firmware version of the card */
- __u8 identity[32]; /* Identity of the board */
-};
-
-#define WDIOC_GETSUPPORT _IOR(WATCHDOG_IOCTL_BASE, 0, struct watchdog_info)
-#define WDIOC_GETSTATUS _IOR(WATCHDOG_IOCTL_BASE, 1, int)
-#define WDIOC_GETBOOTSTATUS _IOR(WATCHDOG_IOCTL_BASE, 2, int)
-#define WDIOC_GETTEMP _IOR(WATCHDOG_IOCTL_BASE, 3, int)
-#define WDIOC_SETOPTIONS _IOR(WATCHDOG_IOCTL_BASE, 4, int)
-#define WDIOC_KEEPALIVE _IOR(WATCHDOG_IOCTL_BASE, 5, int)
-#define WDIOC_SETTIMEOUT _IOWR(WATCHDOG_IOCTL_BASE, 6, int)
-#define WDIOC_GETTIMEOUT _IOR(WATCHDOG_IOCTL_BASE, 7, int)
-#define WDIOC_SETPRETIMEOUT _IOWR(WATCHDOG_IOCTL_BASE, 8, int)
-#define WDIOC_GETPRETIMEOUT _IOR(WATCHDOG_IOCTL_BASE, 9, int)
-#define WDIOC_GETTIMELEFT _IOR(WATCHDOG_IOCTL_BASE, 10, int)
-
-#define WDIOF_UNKNOWN -1 /* Unknown flag error */
-#define WDIOS_UNKNOWN -1 /* Unknown status error */
-
-#define WDIOF_OVERHEAT 0x0001 /* Reset due to CPU overheat */
-#define WDIOF_FANFAULT 0x0002 /* Fan failed */
-#define WDIOF_EXTERN1 0x0004 /* External relay 1 */
-#define WDIOF_EXTERN2 0x0008 /* External relay 2 */
-#define WDIOF_POWERUNDER 0x0010 /* Power bad/power fault */
-#define WDIOF_CARDRESET 0x0020 /* Card previously reset the CPU */
-#define WDIOF_POWEROVER 0x0040 /* Power over voltage */
-#define WDIOF_SETTIMEOUT 0x0080 /* Set timeout (in seconds) */
-#define WDIOF_MAGICCLOSE 0x0100 /* Supports magic close char */
-#define WDIOF_PRETIMEOUT 0x0200 /* Pretimeout (in seconds), get/set */
-#define WDIOF_KEEPALIVEPING 0x8000 /* Keep alive ping reply */
-
-#define WDIOS_DISABLECARD 0x0001 /* Turn off the watchdog timer */
-#define WDIOS_ENABLECARD 0x0002 /* Turn on the watchdog timer */
-#define WDIOS_TEMPPANIC 0x0004 /* Kernel panic on temperature trip */
-
-#ifdef __KERNEL__
-
-#include <linux/bitops.h>
-
-struct watchdog_ops;
-struct watchdog_device;
-
-/** struct watchdog_ops - The watchdog-devices operations
- *
- * @owner: The module owner.
- * @start: The routine for starting the watchdog device.
- * @stop: The routine for stopping the watchdog device.
- * @ping: The routine that sends a keepalive ping to the watchdog device.
- * @status: The routine that shows the status of the watchdog device.
- * @set_timeout:The routine for setting the watchdog devices timeout value.
- * @get_timeleft:The routine that get's the time that's left before a reset.
- * @ioctl: The routines that handles extra ioctl calls.
- *
- * The watchdog_ops structure contains a list of low-level operations
- * that control a watchdog device. It also contains the module that owns
- * these operations. The start and stop function are mandatory, all other
- * functions are optonal.
- */
-struct watchdog_ops {
- struct module *owner;
- /* mandatory operations */
- int (*start)(struct watchdog_device *);
- int (*stop)(struct watchdog_device *);
- /* optional operations */
- int (*ping)(struct watchdog_device *);
- unsigned int (*status)(struct watchdog_device *);
- int (*set_timeout)(struct watchdog_device *, unsigned int);
- unsigned int (*get_timeleft)(struct watchdog_device *);
- long (*ioctl)(struct watchdog_device *, unsigned int, unsigned long);
-};
-
-/** struct watchdog_device - The structure that defines a watchdog device
- *
- * @info: Pointer to a watchdog_info structure.
- * @ops: Pointer to the list of watchdog operations.
- * @bootstatus: Status of the watchdog device at boot.
- * @timeout: The watchdog devices timeout value.
- * @min_timeout:The watchdog devices minimum timeout value.
- * @max_timeout:The watchdog devices maximum timeout value.
- * @driver-data:Pointer to the drivers private data.
- * @status: Field that contains the devices internal status bits.
- *
- * The watchdog_device structure contains all information about a
- * watchdog timer device.
- *
- * The driver-data field may not be accessed directly. It must be accessed
- * via the watchdog_set_drvdata and watchdog_get_drvdata helpers.
- */
-struct watchdog_device {
- const struct watchdog_info *info;
- const struct watchdog_ops *ops;
- unsigned int bootstatus;
- unsigned int timeout;
- unsigned int min_timeout;
- unsigned int max_timeout;
- void *driver_data;
- unsigned long status;
-/* Bit numbers for status flags */
-#define WDOG_ACTIVE 0 /* Is the watchdog running/active */
-#define WDOG_DEV_OPEN 1 /* Opened via /dev/watchdog ? */
-#define WDOG_ALLOW_RELEASE 2 /* Did we receive the magic char ? */
-#define WDOG_NO_WAY_OUT 3 /* Is 'nowayout' feature set ? */
-};
-
-#ifdef CONFIG_WATCHDOG_NOWAYOUT
-#define WATCHDOG_NOWAYOUT 1
-#define WATCHDOG_NOWAYOUT_INIT_STATUS (1 << WDOG_NO_WAY_OUT)
-#else
-#define WATCHDOG_NOWAYOUT 0
-#define WATCHDOG_NOWAYOUT_INIT_STATUS 0
-#endif
-
-/* Use the following function to set the nowayout feature */
-static inline void watchdog_set_nowayout(struct watchdog_device *wdd, bool nowayout)
-{
- if (nowayout)
- set_bit(WDOG_NO_WAY_OUT, &wdd->status);
-}
-
-/* Use the following functions to manipulate watchdog driver specific data */
-static inline void watchdog_set_drvdata(struct watchdog_device *wdd, void *data)
-{
- wdd->driver_data = data;
-}
-
-static inline void *watchdog_get_drvdata(struct watchdog_device *wdd)
-{
- return wdd->driver_data;
-}
-
-/* drivers/watchdog/core/watchdog_core.c */
-extern int watchdog_register_device(struct watchdog_device *);
-extern void watchdog_unregister_device(struct watchdog_device *);
-
-#endif /* __KERNEL__ */
-
-#endif /* ifndef _LINUX_WATCHDOG_H */
diff --git a/ANDROID_3.4.5/include/linux/wifi_tiwlan.h b/ANDROID_3.4.5/include/linux/wifi_tiwlan.h
deleted file mode 100644
index f07e0679..00000000
--- a/ANDROID_3.4.5/include/linux/wifi_tiwlan.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* include/linux/wifi_tiwlan.h
- *
- * Copyright (C) 2008 Google, Inc.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-#ifndef _LINUX_WIFI_TIWLAN_H_
-#define _LINUX_WIFI_TIWLAN_H_
-
-#include <linux/wlan_plat.h>
-
-#define WMPA_NUMBER_OF_SECTIONS 3
-#define WMPA_NUMBER_OF_BUFFERS 160
-#define WMPA_SECTION_HEADER 24
-#define WMPA_SECTION_SIZE_0 (WMPA_NUMBER_OF_BUFFERS * 64)
-#define WMPA_SECTION_SIZE_1 (WMPA_NUMBER_OF_BUFFERS * 256)
-#define WMPA_SECTION_SIZE_2 (WMPA_NUMBER_OF_BUFFERS * 2048)
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/wimax.h b/ANDROID_3.4.5/include/linux/wimax.h
deleted file mode 100644
index 9f6b77af..00000000
--- a/ANDROID_3.4.5/include/linux/wimax.h
+++ /dev/null
@@ -1,239 +0,0 @@
-/*
- * Linux WiMax
- * API for user space
- *
- *
- * Copyright (C) 2007-2008 Intel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Intel Corporation nor the names of its
- * contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- *
- * Intel Corporation <linux-wimax@intel.com>
- * Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
- * - Initial implementation
- *
- *
- * This file declares the user/kernel protocol that is spoken over
- * Generic Netlink, as well as any type declaration that is to be used
- * by kernel and user space.
- *
- * It is intended for user space to clone it verbatim to use it as a
- * primary reference for definitions.
- *
- * Stuff intended for kernel usage as well as full protocol and stack
- * documentation is rooted in include/net/wimax.h.
- */
-
-#ifndef __LINUX__WIMAX_H__
-#define __LINUX__WIMAX_H__
-
-#include <linux/types.h>
-
-enum {
- /**
- * Version of the interface (unsigned decimal, MMm, max 25.5)
- * M - Major: change if removing or modifying an existing call.
- * m - minor: change when adding a new call
- */
- WIMAX_GNL_VERSION = 01,
- /* Generic NetLink attributes */
- WIMAX_GNL_ATTR_INVALID = 0x00,
- WIMAX_GNL_ATTR_MAX = 10,
-};
-
-
-/*
- * Generic NetLink operations
- *
- * Most of these map to an API call; _OP_ stands for operation, _RP_
- * for reply and _RE_ for report (aka: signal).
- */
-enum {
- WIMAX_GNL_OP_MSG_FROM_USER, /* User to kernel message */
- WIMAX_GNL_OP_MSG_TO_USER, /* Kernel to user message */
- WIMAX_GNL_OP_RFKILL, /* Run wimax_rfkill() */
- WIMAX_GNL_OP_RESET, /* Run wimax_rfkill() */
- WIMAX_GNL_RE_STATE_CHANGE, /* Report: status change */
- WIMAX_GNL_OP_STATE_GET, /* Request for current state */
-};
-
-
-/* Message from user / to user */
-enum {
- WIMAX_GNL_MSG_IFIDX = 1,
- WIMAX_GNL_MSG_PIPE_NAME,
- WIMAX_GNL_MSG_DATA,
-};
-
-
-/*
- * wimax_rfkill()
- *
- * The state of the radio (ON/OFF) is mapped to the rfkill subsystem's
- * switch state (DISABLED/ENABLED).
- */
-enum wimax_rf_state {
- WIMAX_RF_OFF = 0, /* Radio is off, rfkill on/enabled */
- WIMAX_RF_ON = 1, /* Radio is on, rfkill off/disabled */
- WIMAX_RF_QUERY = 2,
-};
-
-/* Attributes */
-enum {
- WIMAX_GNL_RFKILL_IFIDX = 1,
- WIMAX_GNL_RFKILL_STATE,
-};
-
-
-/* Attributes for wimax_reset() */
-enum {
- WIMAX_GNL_RESET_IFIDX = 1,
-};
-
-/* Attributes for wimax_state_get() */
-enum {
- WIMAX_GNL_STGET_IFIDX = 1,
-};
-
-/*
- * Attributes for the Report State Change
- *
- * For now we just have the old and new states; new attributes might
- * be added later on.
- */
-enum {
- WIMAX_GNL_STCH_IFIDX = 1,
- WIMAX_GNL_STCH_STATE_OLD,
- WIMAX_GNL_STCH_STATE_NEW,
-};
-
-
-/**
- * enum wimax_st - The different states of a WiMAX device
- * @__WIMAX_ST_NULL: The device structure has been allocated and zeroed,
- * but still wimax_dev_add() hasn't been called. There is no state.
- *
- * @WIMAX_ST_DOWN: The device has been registered with the WiMAX and
- * networking stacks, but it is not initialized (normally that is
- * done with 'ifconfig DEV up' [or equivalent], which can upload
- * firmware and enable communications with the device).
- * In this state, the device is powered down and using as less
- * power as possible.
- * This state is the default after a call to wimax_dev_add(). It
- * is ok to have drivers move directly to %WIMAX_ST_UNINITIALIZED
- * or %WIMAX_ST_RADIO_OFF in _probe() after the call to
- * wimax_dev_add().
- * It is recommended that the driver leaves this state when
- * calling 'ifconfig DEV up' and enters it back on 'ifconfig DEV
- * down'.
- *
- * @__WIMAX_ST_QUIESCING: The device is being torn down, so no API
- * operations are allowed to proceed except the ones needed to
- * complete the device clean up process.
- *
- * @WIMAX_ST_UNINITIALIZED: [optional] Communication with the device
- * is setup, but the device still requires some configuration
- * before being operational.
- * Some WiMAX API calls might work.
- *
- * @WIMAX_ST_RADIO_OFF: The device is fully up; radio is off (wether
- * by hardware or software switches).
- * It is recommended to always leave the device in this state
- * after initialization.
- *
- * @WIMAX_ST_READY: The device is fully up and radio is on.
- *
- * @WIMAX_ST_SCANNING: [optional] The device has been instructed to
- * scan. In this state, the device cannot be actively connected to
- * a network.
- *
- * @WIMAX_ST_CONNECTING: The device is connecting to a network. This
- * state exists because in some devices, the connect process can
- * include a number of negotiations between user space, kernel
- * space and the device. User space needs to know what the device
- * is doing. If the connect sequence in a device is atomic and
- * fast, the device can transition directly to CONNECTED
- *
- * @WIMAX_ST_CONNECTED: The device is connected to a network.
- *
- * @__WIMAX_ST_INVALID: This is an invalid state used to mark the
- * maximum numeric value of states.
- *
- * Description:
- *
- * Transitions from one state to another one are atomic and can only
- * be caused in kernel space with wimax_state_change(). To read the
- * state, use wimax_state_get().
- *
- * States starting with __ are internal and shall not be used or
- * referred to by drivers or userspace. They look ugly, but that's the
- * point -- if any use is made non-internal to the stack, it is easier
- * to catch on review.
- *
- * All API operations [with well defined exceptions] will take the
- * device mutex before starting and then check the state. If the state
- * is %__WIMAX_ST_NULL, %WIMAX_ST_DOWN, %WIMAX_ST_UNINITIALIZED or
- * %__WIMAX_ST_QUIESCING, it will drop the lock and quit with
- * -%EINVAL, -%ENOMEDIUM, -%ENOTCONN or -%ESHUTDOWN.
- *
- * The order of the definitions is important, so we can do numerical
- * comparisons (eg: < %WIMAX_ST_RADIO_OFF means the device is not ready
- * to operate).
- */
-/*
- * The allowed state transitions are described in the table below
- * (states in rows can go to states in columns where there is an X):
- *
- * UNINI RADIO READY SCAN CONNEC CONNEC
- * NULL DOWN QUIESCING TIALIZED OFF NING TING TED
- * NULL - x
- * DOWN - x x x
- * QUIESCING x -
- * UNINITIALIZED x - x
- * RADIO_OFF x - x
- * READY x x - x x x
- * SCANNING x x x - x x
- * CONNECTING x x x x - x
- * CONNECTED x x x -
- *
- * This table not available in kernel-doc because the formatting messes it up.
- */
- enum wimax_st {
- __WIMAX_ST_NULL = 0,
- WIMAX_ST_DOWN,
- __WIMAX_ST_QUIESCING,
- WIMAX_ST_UNINITIALIZED,
- WIMAX_ST_RADIO_OFF,
- WIMAX_ST_READY,
- WIMAX_ST_SCANNING,
- WIMAX_ST_CONNECTING,
- WIMAX_ST_CONNECTED,
- __WIMAX_ST_INVALID /* Always keep last */
-};
-
-
-#endif /* #ifndef __LINUX__WIMAX_H__ */
diff --git a/ANDROID_3.4.5/include/linux/wimax/Kbuild b/ANDROID_3.4.5/include/linux/wimax/Kbuild
deleted file mode 100644
index 3cb4f269..00000000
--- a/ANDROID_3.4.5/include/linux/wimax/Kbuild
+++ /dev/null
@@ -1 +0,0 @@
-header-y += i2400m.h
diff --git a/ANDROID_3.4.5/include/linux/wimax/debug.h b/ANDROID_3.4.5/include/linux/wimax/debug.h
deleted file mode 100644
index aaf24ba1..00000000
--- a/ANDROID_3.4.5/include/linux/wimax/debug.h
+++ /dev/null
@@ -1,526 +0,0 @@
-/*
- * Linux WiMAX
- * Collection of tools to manage debug operations.
- *
- *
- * Copyright (C) 2005-2007 Intel Corporation
- * Inaky Perez-Gonzalez <inaky.perez-gonzalez@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.
- *
- * 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-1301, USA.
- *
- *
- * Don't #include this file directly, read on!
- *
- *
- * EXECUTING DEBUGGING ACTIONS OR NOT
- *
- * The main thing this framework provides is decission power to take a
- * debug action (like printing a message) if the current debug level
- * allows it.
- *
- * The decission power is at two levels: at compile-time (what does
- * not make it is compiled out) and at run-time. The run-time
- * selection is done per-submodule (as they are declared by the user
- * of the framework).
- *
- * A call to d_test(L) (L being the target debug level) returns true
- * if the action should be taken because the current debug levels
- * allow it (both compile and run time).
- *
- * It follows that a call to d_test() that can be determined to be
- * always false at compile time will get the code depending on it
- * compiled out by optimization.
- *
- *
- * DEBUG LEVELS
- *
- * It is up to the caller to define how much a debugging level is.
- *
- * Convention sets 0 as "no debug" (so an action marked as debug level 0
- * will always be taken). The increasing debug levels are used for
- * increased verbosity.
- *
- *
- * USAGE
- *
- * Group the code in modules and submodules inside each module [which
- * in most cases maps to Linux modules and .c files that compose
- * those].
- *
- *
- * For each module, there is:
- *
- * - a MODULENAME (single word, legal C identifier)
- *
- * - a debug-levels.h header file that declares the list of
- * submodules and that is included by all .c files that use
- * the debugging tools. The file name can be anything.
- *
- * - some (optional) .c code to manipulate the runtime debug levels
- * through debugfs.
- *
- * The debug-levels.h file would look like:
- *
- * #ifndef __debug_levels__h__
- * #define __debug_levels__h__
- *
- * #define D_MODULENAME modulename
- * #define D_MASTER 10
- *
- * #include <linux/wimax/debug.h>
- *
- * enum d_module {
- * D_SUBMODULE_DECLARE(submodule_1),
- * D_SUBMODULE_DECLARE(submodule_2),
- * ...
- * D_SUBMODULE_DECLARE(submodule_N)
- * };
- *
- * #endif
- *
- * D_MASTER is the maximum compile-time debug level; any debug actions
- * above this will be out. D_MODULENAME is the module name (legal C
- * identifier), which has to be unique for each module (to avoid
- * namespace collisions during linkage). Note those #defines need to
- * be done before #including debug.h
- *
- * We declare N different submodules whose debug level can be
- * independently controlled during runtime.
- *
- * In a .c file of the module (and only in one of them), define the
- * following code:
- *
- * struct d_level D_LEVEL[] = {
- * D_SUBMODULE_DEFINE(submodule_1),
- * D_SUBMODULE_DEFINE(submodule_2),
- * ...
- * D_SUBMODULE_DEFINE(submodule_N),
- * };
- * size_t D_LEVEL_SIZE = ARRAY_SIZE(D_LEVEL);
- *
- * Externs for d_level_MODULENAME and d_level_size_MODULENAME are used
- * and declared in this file using the D_LEVEL and D_LEVEL_SIZE macros
- * #defined also in this file.
- *
- * To manipulate from user space the levels, create a debugfs dentry
- * and then register each submodule with:
- *
- * result = d_level_register_debugfs("PREFIX_", submodule_X, parent);
- * if (result < 0)
- * goto error;
- *
- * Where PREFIX_ is a name of your chosing. This will create debugfs
- * file with a single numeric value that can be use to tweak it. To
- * remove the entires, just use debugfs_remove_recursive() on 'parent'.
- *
- * NOTE: remember that even if this will show attached to some
- * particular instance of a device, the settings are *global*.
- *
- *
- * On each submodule (for example, .c files), the debug infrastructure
- * should be included like this:
- *
- * #define D_SUBMODULE submodule_x // matches one in debug-levels.h
- * #include "debug-levels.h"
- *
- * after #including all your include files.
- *
- *
- * Now you can use the d_*() macros below [d_test(), d_fnstart(),
- * d_fnend(), d_printf(), d_dump()].
- *
- * If their debug level is greater than D_MASTER, they will be
- * compiled out.
- *
- * If their debug level is lower or equal than D_MASTER but greater
- * than the current debug level of their submodule, they'll be
- * ignored.
- *
- * Otherwise, the action will be performed.
- */
-#ifndef __debug__h__
-#define __debug__h__
-
-#include <linux/types.h>
-#include <linux/slab.h>
-
-struct device;
-
-/* Backend stuff */
-
-/*
- * Debug backend: generate a message header from a 'struct device'
- *
- * @head: buffer where to place the header
- * @head_size: length of @head
- * @dev: pointer to device used to generate a header from. If NULL,
- * an empty ("") header is generated.
- */
-static inline
-void __d_head(char *head, size_t head_size,
- struct device *dev)
-{
- if (dev == NULL)
- head[0] = 0;
- else if ((unsigned long)dev < 4096) {
- printk(KERN_ERR "E: Corrupt dev %p\n", dev);
- WARN_ON(1);
- } else
- snprintf(head, head_size, "%s %s: ",
- dev_driver_string(dev), dev_name(dev));
-}
-
-
-/*
- * Debug backend: log some message if debugging is enabled
- *
- * @l: intended debug level
- * @tag: tag to prefix the message with
- * @dev: 'struct device' associated to this message
- * @f: printf-like format and arguments
- *
- * Note this is optimized out if it doesn't pass the compile-time
- * check; however, it is *always* compiled. This is useful to make
- * sure the printf-like formats and variables are always checked and
- * they don't get bit rot if you have all the debugging disabled.
- */
-#define _d_printf(l, tag, dev, f, a...) \
-do { \
- char head[64]; \
- if (!d_test(l)) \
- break; \
- __d_head(head, sizeof(head), dev); \
- printk(KERN_ERR "%s%s%s: " f, head, __func__, tag, ##a); \
-} while (0)
-
-
-/*
- * CPP sintatic sugar to generate A_B like symbol names when one of
- * the arguments is a a preprocessor #define.
- */
-#define __D_PASTE__(varname, modulename) varname##_##modulename
-#define __D_PASTE(varname, modulename) (__D_PASTE__(varname, modulename))
-#define _D_SUBMODULE_INDEX(_name) (D_SUBMODULE_DECLARE(_name))
-
-
-/*
- * Store a submodule's runtime debug level and name
- */
-struct d_level {
- u8 level;
- const char *name;
-};
-
-
-/*
- * List of available submodules and their debug levels
- *
- * We call them d_level_MODULENAME and d_level_size_MODULENAME; the
- * macros D_LEVEL and D_LEVEL_SIZE contain the name already for
- * convenience.
- *
- * This array and the size are defined on some .c file that is part of
- * the current module.
- */
-#define D_LEVEL __D_PASTE(d_level, D_MODULENAME)
-#define D_LEVEL_SIZE __D_PASTE(d_level_size, D_MODULENAME)
-
-extern struct d_level D_LEVEL[];
-extern size_t D_LEVEL_SIZE;
-
-
-/*
- * Frontend stuff
- *
- *
- * Stuff you need to declare prior to using the actual "debug" actions
- * (defined below).
- */
-
-#ifndef D_MODULENAME
-#error D_MODULENAME is not defined in your debug-levels.h file
-/**
- * D_MODULE - Name of the current module
- *
- * #define in your module's debug-levels.h, making sure it is
- * unique. This has to be a legal C identifier.
- */
-#define D_MODULENAME undefined_modulename
-#endif
-
-
-#ifndef D_MASTER
-#warning D_MASTER not defined, but debug.h included! [see docs]
-/**
- * D_MASTER - Compile time maximum debug level
- *
- * #define in your debug-levels.h file to the maximum debug level the
- * runtime code will be allowed to have. This allows you to provide a
- * main knob.
- *
- * Anything above that level will be optimized out of the compile.
- *
- * Defaults to zero (no debug code compiled in).
- *
- * Maximum one definition per module (at the debug-levels.h file).
- */
-#define D_MASTER 0
-#endif
-
-#ifndef D_SUBMODULE
-#error D_SUBMODULE not defined, but debug.h included! [see docs]
-/**
- * D_SUBMODULE - Name of the current submodule
- *
- * #define in your submodule .c file before #including debug-levels.h
- * to the name of the current submodule as previously declared and
- * defined with D_SUBMODULE_DECLARE() (in your module's
- * debug-levels.h) and D_SUBMODULE_DEFINE().
- *
- * This is used to provide runtime-control over the debug levels.
- *
- * Maximum one per .c file! Can be shared among different .c files
- * (meaning they belong to the same submodule categorization).
- */
-#define D_SUBMODULE undefined_module
-#endif
-
-
-/**
- * D_SUBMODULE_DECLARE - Declare a submodule for runtime debug level control
- *
- * @_name: name of the submodule, restricted to the chars that make up a
- * valid C identifier ([a-zA-Z0-9_]).
- *
- * Declare in the module's debug-levels.h header file as:
- *
- * enum d_module {
- * D_SUBMODULE_DECLARE(submodule_1),
- * D_SUBMODULE_DECLARE(submodule_2),
- * D_SUBMODULE_DECLARE(submodule_3),
- * };
- *
- * Some corresponding .c file needs to have a matching
- * D_SUBMODULE_DEFINE().
- */
-#define D_SUBMODULE_DECLARE(_name) __D_SUBMODULE_##_name
-
-
-/**
- * D_SUBMODULE_DEFINE - Define a submodule for runtime debug level control
- *
- * @_name: name of the submodule, restricted to the chars that make up a
- * valid C identifier ([a-zA-Z0-9_]).
- *
- * Use once per module (in some .c file) as:
- *
- * static
- * struct d_level d_level_SUBMODULENAME[] = {
- * D_SUBMODULE_DEFINE(submodule_1),
- * D_SUBMODULE_DEFINE(submodule_2),
- * D_SUBMODULE_DEFINE(submodule_3),
- * };
- * size_t d_level_size_SUBDMODULENAME = ARRAY_SIZE(d_level_SUBDMODULENAME);
- *
- * Matching D_SUBMODULE_DECLARE()s have to be present in a
- * debug-levels.h header file.
- */
-#define D_SUBMODULE_DEFINE(_name) \
-[__D_SUBMODULE_##_name] = { \
- .level = 0, \
- .name = #_name \
-}
-
-
-
-/* The actual "debug" operations */
-
-
-/**
- * d_test - Returns true if debugging should be enabled
- *
- * @l: intended debug level (unsigned)
- *
- * If the master debug switch is enabled and the current settings are
- * higher or equal to the requested level, then debugging
- * output/actions should be enabled.
- *
- * NOTE:
- *
- * This needs to be coded so that it can be evaluated in compile
- * time; this is why the ugly BUG_ON() is placed in there, so the
- * D_MASTER evaluation compiles all out if it is compile-time false.
- */
-#define d_test(l) \
-({ \
- unsigned __l = l; /* type enforcer */ \
- (D_MASTER) >= __l \
- && ({ \
- BUG_ON(_D_SUBMODULE_INDEX(D_SUBMODULE) >= D_LEVEL_SIZE);\
- D_LEVEL[_D_SUBMODULE_INDEX(D_SUBMODULE)].level >= __l; \
- }); \
-})
-
-
-/**
- * d_fnstart - log message at function start if debugging enabled
- *
- * @l: intended debug level
- * @_dev: 'struct device' pointer, NULL if none (for context)
- * @f: printf-like format and arguments
- */
-#define d_fnstart(l, _dev, f, a...) _d_printf(l, " FNSTART", _dev, f, ## a)
-
-
-/**
- * d_fnend - log message at function end if debugging enabled
- *
- * @l: intended debug level
- * @_dev: 'struct device' pointer, NULL if none (for context)
- * @f: printf-like format and arguments
- */
-#define d_fnend(l, _dev, f, a...) _d_printf(l, " FNEND", _dev, f, ## a)
-
-
-/**
- * d_printf - log message if debugging enabled
- *
- * @l: intended debug level
- * @_dev: 'struct device' pointer, NULL if none (for context)
- * @f: printf-like format and arguments
- */
-#define d_printf(l, _dev, f, a...) _d_printf(l, "", _dev, f, ## a)
-
-
-/**
- * d_dump - log buffer hex dump if debugging enabled
- *
- * @l: intended debug level
- * @_dev: 'struct device' pointer, NULL if none (for context)
- * @f: printf-like format and arguments
- */
-#define d_dump(l, dev, ptr, size) \
-do { \
- char head[64]; \
- if (!d_test(l)) \
- break; \
- __d_head(head, sizeof(head), dev); \
- print_hex_dump(KERN_ERR, head, 0, 16, 1, \
- ((void *) ptr), (size), 0); \
-} while (0)
-
-
-/**
- * Export a submodule's debug level over debugfs as PREFIXSUBMODULE
- *
- * @prefix: string to prefix the name with
- * @submodule: name of submodule (not a string, just the name)
- * @dentry: debugfs parent dentry
- *
- * Returns: 0 if ok, < 0 errno on error.
- *
- * For removing, just use debugfs_remove_recursive() on the parent.
- */
-#define d_level_register_debugfs(prefix, name, parent) \
-({ \
- int rc; \
- struct dentry *fd; \
- struct dentry *verify_parent_type = parent; \
- fd = debugfs_create_u8( \
- prefix #name, 0600, verify_parent_type, \
- &(D_LEVEL[__D_SUBMODULE_ ## name].level)); \
- rc = PTR_ERR(fd); \
- if (IS_ERR(fd) && rc != -ENODEV) \
- printk(KERN_ERR "%s: Can't create debugfs entry %s: " \
- "%d\n", __func__, prefix #name, rc); \
- else \
- rc = 0; \
- rc; \
-})
-
-
-static inline
-void d_submodule_set(struct d_level *d_level, size_t d_level_size,
- const char *submodule, u8 level, const char *tag)
-{
- struct d_level *itr, *top;
- int index = -1;
-
- for (itr = d_level, top = itr + d_level_size; itr < top; itr++) {
- index++;
- if (itr->name == NULL) {
- printk(KERN_ERR "%s: itr->name NULL?? (%p, #%d)\n",
- tag, itr, index);
- continue;
- }
- if (!strcmp(itr->name, submodule)) {
- itr->level = level;
- return;
- }
- }
- printk(KERN_ERR "%s: unknown submodule %s\n", tag, submodule);
-}
-
-
-/**
- * d_parse_params - Parse a string with debug parameters from the
- * command line
- *
- * @d_level: level structure (D_LEVEL)
- * @d_level_size: number of items in the level structure
- * (D_LEVEL_SIZE).
- * @_params: string with the parameters; this is a space (not tab!)
- * separated list of NAME:VALUE, where value is the debug level
- * and NAME is the name of the submodule.
- * @tag: string for error messages (example: MODULE.ARGNAME).
- */
-static inline
-void d_parse_params(struct d_level *d_level, size_t d_level_size,
- const char *_params, const char *tag)
-{
- char submodule[130], *params, *params_orig, *token, *colon;
- unsigned level, tokens;
-
- if (_params == NULL)
- return;
- params_orig = kstrdup(_params, GFP_KERNEL);
- params = params_orig;
- while (1) {
- token = strsep(&params, " ");
- if (token == NULL)
- break;
- if (*token == '\0') /* eat joint spaces */
- continue;
- /* kernel's sscanf %s eats until whitespace, so we
- * replace : by \n so it doesn't get eaten later by
- * strsep */
- colon = strchr(token, ':');
- if (colon != NULL)
- *colon = '\n';
- tokens = sscanf(token, "%s\n%u", submodule, &level);
- if (colon != NULL)
- *colon = ':'; /* set back, for error messages */
- if (tokens == 2)
- d_submodule_set(d_level, d_level_size,
- submodule, level, tag);
- else
- printk(KERN_ERR "%s: can't parse '%s' as a "
- "SUBMODULE:LEVEL (%d tokens)\n",
- tag, token, tokens);
- }
- kfree(params_orig);
-}
-
-#endif /* #ifndef __debug__h__ */
diff --git a/ANDROID_3.4.5/include/linux/wimax/i2400m.h b/ANDROID_3.4.5/include/linux/wimax/i2400m.h
deleted file mode 100644
index 62d35615..00000000
--- a/ANDROID_3.4.5/include/linux/wimax/i2400m.h
+++ /dev/null
@@ -1,572 +0,0 @@
-/*
- * Intel Wireless WiMax Connection 2400m
- * Host-Device protocol interface definitions
- *
- *
- * Copyright (C) 2007-2008 Intel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Intel Corporation nor the names of its
- * contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- *
- * Intel Corporation <linux-wimax@intel.com>
- * Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
- * - Initial implementation
- *
- *
- * This header defines the data structures and constants used to
- * communicate with the device.
- *
- * BOOTMODE/BOOTROM/FIRMWARE UPLOAD PROTOCOL
- *
- * The firmware upload protocol is quite simple and only requires a
- * handful of commands. See drivers/net/wimax/i2400m/fw.c for more
- * details.
- *
- * The BCF data structure is for the firmware file header.
- *
- *
- * THE DATA / CONTROL PROTOCOL
- *
- * This is the normal protocol spoken with the device once the
- * firmware is uploaded. It transports data payloads and control
- * messages back and forth.
- *
- * It consists 'messages' that pack one or more payloads each. The
- * format is described in detail in drivers/net/wimax/i2400m/rx.c and
- * tx.c.
- *
- *
- * THE L3L4 PROTOCOL
- *
- * The term L3L4 refers to Layer 3 (the device), Layer 4 (the
- * driver/host software).
- *
- * This is the control protocol used by the host to control the i2400m
- * device (scan, connect, disconnect...). This is sent to / received
- * as control frames. These frames consist of a header and zero or
- * more TLVs with information. We call each control frame a "message".
- *
- * Each message is composed of:
- *
- * HEADER
- * [TLV0 + PAYLOAD0]
- * [TLV1 + PAYLOAD1]
- * [...]
- * [TLVN + PAYLOADN]
- *
- * The HEADER is defined by 'struct i2400m_l3l4_hdr'. The payloads are
- * defined by a TLV structure (Type Length Value) which is a 'header'
- * (struct i2400m_tlv_hdr) and then the payload.
- *
- * All integers are represented as Little Endian.
- *
- * - REQUESTS AND EVENTS
- *
- * The requests can be clasified as follows:
- *
- * COMMAND: implies a request from the host to the device requesting
- * an action being performed. The device will reply with a
- * message (with the same type as the command), status and
- * no (TLV) payload. Execution of a command might cause
- * events (of different type) to be sent later on as
- * device's state changes.
- *
- * GET/SET: similar to COMMAND, but will not cause other
- * EVENTs. The reply, in the case of GET, will contain
- * TLVs with the requested information.
- *
- * EVENT: asynchronous messages sent from the device, maybe as a
- * consequence of previous COMMANDs but disassociated from
- * them.
- *
- * Only one request might be pending at the same time (ie: don't
- * parallelize nor post another GET request before the previous
- * COMMAND has been acknowledged with it's corresponding reply by the
- * device).
- *
- * The different requests and their formats are described below:
- *
- * I2400M_MT_* Message types
- * I2400M_MS_* Message status (for replies, events)
- * i2400m_tlv_* TLVs
- *
- * data types are named 'struct i2400m_msg_OPNAME', OPNAME matching the
- * operation.
- */
-
-#ifndef __LINUX__WIMAX__I2400M_H__
-#define __LINUX__WIMAX__I2400M_H__
-
-#include <linux/types.h>
-
-
-/*
- * Host Device Interface (HDI) common to all busses
- */
-
-/* Boot-mode (firmware upload mode) commands */
-
-/* Header for the firmware file */
-struct i2400m_bcf_hdr {
- __le32 module_type;
- __le32 header_len;
- __le32 header_version;
- __le32 module_id;
- __le32 module_vendor;
- __le32 date; /* BCD YYYMMDD */
- __le32 size; /* in dwords */
- __le32 key_size; /* in dwords */
- __le32 modulus_size; /* in dwords */
- __le32 exponent_size; /* in dwords */
- __u8 reserved[88];
-} __attribute__ ((packed));
-
-/* Boot mode opcodes */
-enum i2400m_brh_opcode {
- I2400M_BRH_READ = 1,
- I2400M_BRH_WRITE = 2,
- I2400M_BRH_JUMP = 3,
- I2400M_BRH_SIGNED_JUMP = 8,
- I2400M_BRH_HASH_PAYLOAD_ONLY = 9,
-};
-
-/* Boot mode command masks and stuff */
-enum i2400m_brh {
- I2400M_BRH_SIGNATURE = 0xcbbc0000,
- I2400M_BRH_SIGNATURE_MASK = 0xffff0000,
- I2400M_BRH_SIGNATURE_SHIFT = 16,
- I2400M_BRH_OPCODE_MASK = 0x0000000f,
- I2400M_BRH_RESPONSE_MASK = 0x000000f0,
- I2400M_BRH_RESPONSE_SHIFT = 4,
- I2400M_BRH_DIRECT_ACCESS = 0x00000400,
- I2400M_BRH_RESPONSE_REQUIRED = 0x00000200,
- I2400M_BRH_USE_CHECKSUM = 0x00000100,
-};
-
-
-/**
- * i2400m_bootrom_header - Header for a boot-mode command
- *
- * @cmd: the above command descriptor
- * @target_addr: where on the device memory should the action be performed.
- * @data_size: for read/write, amount of data to be read/written
- * @block_checksum: checksum value (if applicable)
- * @payload: the beginning of data attached to this header
- */
-struct i2400m_bootrom_header {
- __le32 command; /* Compose with enum i2400_brh */
- __le32 target_addr;
- __le32 data_size;
- __le32 block_checksum;
- char payload[0];
-} __attribute__ ((packed));
-
-
-/*
- * Data / control protocol
- */
-
-/* Packet types for the host-device interface */
-enum i2400m_pt {
- I2400M_PT_DATA = 0,
- I2400M_PT_CTRL,
- I2400M_PT_TRACE, /* For device debug */
- I2400M_PT_RESET_WARM, /* device reset */
- I2400M_PT_RESET_COLD, /* USB[transport] reset, like reconnect */
- I2400M_PT_EDATA, /* Extended RX data */
- I2400M_PT_ILLEGAL
-};
-
-
-/*
- * Payload for a data packet
- *
- * This is prefixed to each and every outgoing DATA type.
- */
-struct i2400m_pl_data_hdr {
- __le32 reserved;
-} __attribute__((packed));
-
-
-/*
- * Payload for an extended data packet
- *
- * New in fw v1.4
- *
- * @reorder: if this payload has to be reorder or not (and how)
- * @cs: the type of data in the packet, as defined per (802.16e
- * T11.13.19.1). Currently only 2 (IPv4 packet) supported.
- *
- * This is prefixed to each and every INCOMING DATA packet.
- */
-struct i2400m_pl_edata_hdr {
- __le32 reorder; /* bits defined in i2400m_ro */
- __u8 cs;
- __u8 reserved[11];
-} __attribute__((packed));
-
-enum i2400m_cs {
- I2400M_CS_IPV4_0 = 0,
- I2400M_CS_IPV4 = 2,
-};
-
-enum i2400m_ro {
- I2400M_RO_NEEDED = 0x01,
- I2400M_RO_TYPE = 0x03,
- I2400M_RO_TYPE_SHIFT = 1,
- I2400M_RO_CIN = 0x0f,
- I2400M_RO_CIN_SHIFT = 4,
- I2400M_RO_FBN = 0x07ff,
- I2400M_RO_FBN_SHIFT = 8,
- I2400M_RO_SN = 0x07ff,
- I2400M_RO_SN_SHIFT = 21,
-};
-
-enum i2400m_ro_type {
- I2400M_RO_TYPE_RESET = 0,
- I2400M_RO_TYPE_PACKET,
- I2400M_RO_TYPE_WS,
- I2400M_RO_TYPE_PACKET_WS,
-};
-
-
-/* Misc constants */
-enum {
- I2400M_PL_ALIGN = 16, /* Payload data size alignment */
- I2400M_PL_SIZE_MAX = 0x3EFF,
- I2400M_MAX_PLS_IN_MSG = 60,
- /* protocol barkers: sync sequences; for notifications they
- * are sent in groups of four. */
- I2400M_H2D_PREVIEW_BARKER = 0xcafe900d,
- I2400M_COLD_RESET_BARKER = 0xc01dc01d,
- I2400M_WARM_RESET_BARKER = 0x50f750f7,
- I2400M_NBOOT_BARKER = 0xdeadbeef,
- I2400M_SBOOT_BARKER = 0x0ff1c1a1,
- I2400M_SBOOT_BARKER_6050 = 0x80000001,
- I2400M_ACK_BARKER = 0xfeedbabe,
- I2400M_D2H_MSG_BARKER = 0xbeefbabe,
-};
-
-
-/*
- * Hardware payload descriptor
- *
- * Bitfields encoded in a struct to enforce typing semantics.
- *
- * Look in rx.c and tx.c for a full description of the format.
- */
-struct i2400m_pld {
- __le32 val;
-} __attribute__ ((packed));
-
-#define I2400M_PLD_SIZE_MASK 0x00003fff
-#define I2400M_PLD_TYPE_SHIFT 16
-#define I2400M_PLD_TYPE_MASK 0x000f0000
-
-/*
- * Header for a TX message or RX message
- *
- * @barker: preamble
- * @size: used for management of the FIFO queue buffer; before
- * sending, this is converted to be a real preamble. This
- * indicates the real size of the TX message that starts at this
- * point. If the highest bit is set, then this message is to be
- * skipped.
- * @sequence: sequence number of this message
- * @offset: offset where the message itself starts -- see the comments
- * in the file header about message header and payload descriptor
- * alignment.
- * @num_pls: number of payloads in this message
- * @padding: amount of padding bytes at the end of the message to make
- * it be of block-size aligned
- *
- * Look in rx.c and tx.c for a full description of the format.
- */
-struct i2400m_msg_hdr {
- union {
- __le32 barker;
- __u32 size; /* same size type as barker!! */
- };
- union {
- __le32 sequence;
- __u32 offset; /* same size type as barker!! */
- };
- __le16 num_pls;
- __le16 rsv1;
- __le16 padding;
- __le16 rsv2;
- struct i2400m_pld pld[0];
-} __attribute__ ((packed));
-
-
-
-/*
- * L3/L4 control protocol
- */
-
-enum {
- /* Interface version */
- I2400M_L3L4_VERSION = 0x0100,
-};
-
-/* Message types */
-enum i2400m_mt {
- I2400M_MT_RESERVED = 0x0000,
- I2400M_MT_INVALID = 0xffff,
- I2400M_MT_REPORT_MASK = 0x8000,
-
- I2400M_MT_GET_SCAN_RESULT = 0x4202,
- I2400M_MT_SET_SCAN_PARAM = 0x4402,
- I2400M_MT_CMD_RF_CONTROL = 0x4602,
- I2400M_MT_CMD_SCAN = 0x4603,
- I2400M_MT_CMD_CONNECT = 0x4604,
- I2400M_MT_CMD_DISCONNECT = 0x4605,
- I2400M_MT_CMD_EXIT_IDLE = 0x4606,
- I2400M_MT_GET_LM_VERSION = 0x5201,
- I2400M_MT_GET_DEVICE_INFO = 0x5202,
- I2400M_MT_GET_LINK_STATUS = 0x5203,
- I2400M_MT_GET_STATISTICS = 0x5204,
- I2400M_MT_GET_STATE = 0x5205,
- I2400M_MT_GET_MEDIA_STATUS = 0x5206,
- I2400M_MT_SET_INIT_CONFIG = 0x5404,
- I2400M_MT_CMD_INIT = 0x5601,
- I2400M_MT_CMD_TERMINATE = 0x5602,
- I2400M_MT_CMD_MODE_OF_OP = 0x5603,
- I2400M_MT_CMD_RESET_DEVICE = 0x5604,
- I2400M_MT_CMD_MONITOR_CONTROL = 0x5605,
- I2400M_MT_CMD_ENTER_POWERSAVE = 0x5606,
- I2400M_MT_GET_TLS_OPERATION_RESULT = 0x6201,
- I2400M_MT_SET_EAP_SUCCESS = 0x6402,
- I2400M_MT_SET_EAP_FAIL = 0x6403,
- I2400M_MT_SET_EAP_KEY = 0x6404,
- I2400M_MT_CMD_SEND_EAP_RESPONSE = 0x6602,
- I2400M_MT_REPORT_SCAN_RESULT = 0xc002,
- I2400M_MT_REPORT_STATE = 0xd002,
- I2400M_MT_REPORT_POWERSAVE_READY = 0xd005,
- I2400M_MT_REPORT_EAP_REQUEST = 0xe002,
- I2400M_MT_REPORT_EAP_RESTART = 0xe003,
- I2400M_MT_REPORT_ALT_ACCEPT = 0xe004,
- I2400M_MT_REPORT_KEY_REQUEST = 0xe005,
-};
-
-
-/*
- * Message Ack Status codes
- *
- * When a message is replied-to, this status is reported.
- */
-enum i2400m_ms {
- I2400M_MS_DONE_OK = 0,
- I2400M_MS_DONE_IN_PROGRESS = 1,
- I2400M_MS_INVALID_OP = 2,
- I2400M_MS_BAD_STATE = 3,
- I2400M_MS_ILLEGAL_VALUE = 4,
- I2400M_MS_MISSING_PARAMS = 5,
- I2400M_MS_VERSION_ERROR = 6,
- I2400M_MS_ACCESSIBILITY_ERROR = 7,
- I2400M_MS_BUSY = 8,
- I2400M_MS_CORRUPTED_TLV = 9,
- I2400M_MS_UNINITIALIZED = 10,
- I2400M_MS_UNKNOWN_ERROR = 11,
- I2400M_MS_PRODUCTION_ERROR = 12,
- I2400M_MS_NO_RF = 13,
- I2400M_MS_NOT_READY_FOR_POWERSAVE = 14,
- I2400M_MS_THERMAL_CRITICAL = 15,
- I2400M_MS_MAX
-};
-
-
-/**
- * i2400m_tlv - enumeration of the different types of TLVs
- *
- * TLVs stand for type-length-value and are the header for a payload
- * composed of almost anything. Each payload has a type assigned
- * and a length.
- */
-enum i2400m_tlv {
- I2400M_TLV_L4_MESSAGE_VERSIONS = 129,
- I2400M_TLV_SYSTEM_STATE = 141,
- I2400M_TLV_MEDIA_STATUS = 161,
- I2400M_TLV_RF_OPERATION = 162,
- I2400M_TLV_RF_STATUS = 163,
- I2400M_TLV_DEVICE_RESET_TYPE = 132,
- I2400M_TLV_CONFIG_IDLE_PARAMETERS = 601,
- I2400M_TLV_CONFIG_IDLE_TIMEOUT = 611,
- I2400M_TLV_CONFIG_D2H_DATA_FORMAT = 614,
- I2400M_TLV_CONFIG_DL_HOST_REORDER = 615,
-};
-
-
-struct i2400m_tlv_hdr {
- __le16 type;
- __le16 length; /* payload's */
- __u8 pl[0];
-} __attribute__((packed));
-
-
-struct i2400m_l3l4_hdr {
- __le16 type;
- __le16 length; /* payload's */
- __le16 version;
- __le16 resv1;
- __le16 status;
- __le16 resv2;
- struct i2400m_tlv_hdr pl[0];
-} __attribute__((packed));
-
-
-/**
- * i2400m_system_state - different states of the device
- */
-enum i2400m_system_state {
- I2400M_SS_UNINITIALIZED = 1,
- I2400M_SS_INIT,
- I2400M_SS_READY,
- I2400M_SS_SCAN,
- I2400M_SS_STANDBY,
- I2400M_SS_CONNECTING,
- I2400M_SS_WIMAX_CONNECTED,
- I2400M_SS_DATA_PATH_CONNECTED,
- I2400M_SS_IDLE,
- I2400M_SS_DISCONNECTING,
- I2400M_SS_OUT_OF_ZONE,
- I2400M_SS_SLEEPACTIVE,
- I2400M_SS_PRODUCTION,
- I2400M_SS_CONFIG,
- I2400M_SS_RF_OFF,
- I2400M_SS_RF_SHUTDOWN,
- I2400M_SS_DEVICE_DISCONNECT,
- I2400M_SS_MAX,
-};
-
-
-/**
- * i2400m_tlv_system_state - report on the state of the system
- *
- * @state: see enum i2400m_system_state
- */
-struct i2400m_tlv_system_state {
- struct i2400m_tlv_hdr hdr;
- __le32 state;
-} __attribute__((packed));
-
-
-struct i2400m_tlv_l4_message_versions {
- struct i2400m_tlv_hdr hdr;
- __le16 major;
- __le16 minor;
- __le16 branch;
- __le16 reserved;
-} __attribute__((packed));
-
-
-struct i2400m_tlv_detailed_device_info {
- struct i2400m_tlv_hdr hdr;
- __u8 reserved1[400];
- __u8 mac_address[6];
- __u8 reserved2[2];
-} __attribute__((packed));
-
-
-enum i2400m_rf_switch_status {
- I2400M_RF_SWITCH_ON = 1,
- I2400M_RF_SWITCH_OFF = 2,
-};
-
-struct i2400m_tlv_rf_switches_status {
- struct i2400m_tlv_hdr hdr;
- __u8 sw_rf_switch; /* 1 ON, 2 OFF */
- __u8 hw_rf_switch; /* 1 ON, 2 OFF */
- __u8 reserved[2];
-} __attribute__((packed));
-
-
-enum {
- i2400m_rf_operation_on = 1,
- i2400m_rf_operation_off = 2
-};
-
-struct i2400m_tlv_rf_operation {
- struct i2400m_tlv_hdr hdr;
- __le32 status; /* 1 ON, 2 OFF */
-} __attribute__((packed));
-
-
-enum i2400m_tlv_reset_type {
- I2400M_RESET_TYPE_COLD = 1,
- I2400M_RESET_TYPE_WARM
-};
-
-struct i2400m_tlv_device_reset_type {
- struct i2400m_tlv_hdr hdr;
- __le32 reset_type;
-} __attribute__((packed));
-
-
-struct i2400m_tlv_config_idle_parameters {
- struct i2400m_tlv_hdr hdr;
- __le32 idle_timeout; /* 100 to 300000 ms [5min], 100 increments
- * 0 disabled */
- __le32 idle_paging_interval; /* frames */
-} __attribute__((packed));
-
-
-enum i2400m_media_status {
- I2400M_MEDIA_STATUS_LINK_UP = 1,
- I2400M_MEDIA_STATUS_LINK_DOWN,
- I2400M_MEDIA_STATUS_LINK_RENEW,
-};
-
-struct i2400m_tlv_media_status {
- struct i2400m_tlv_hdr hdr;
- __le32 media_status;
-} __attribute__((packed));
-
-
-/* New in v1.4 */
-struct i2400m_tlv_config_idle_timeout {
- struct i2400m_tlv_hdr hdr;
- __le32 timeout; /* 100 to 300000 ms [5min], 100 increments
- * 0 disabled */
-} __attribute__((packed));
-
-/* New in v1.4 -- for backward compat, will be removed */
-struct i2400m_tlv_config_d2h_data_format {
- struct i2400m_tlv_hdr hdr;
- __u8 format; /* 0 old format, 1 enhanced */
- __u8 reserved[3];
-} __attribute__((packed));
-
-/* New in v1.4 */
-struct i2400m_tlv_config_dl_host_reorder {
- struct i2400m_tlv_hdr hdr;
- __u8 reorder; /* 0 disabled, 1 enabled */
- __u8 reserved[3];
-} __attribute__((packed));
-
-
-#endif /* #ifndef __LINUX__WIMAX__I2400M_H__ */
diff --git a/ANDROID_3.4.5/include/linux/wireless.h b/ANDROID_3.4.5/include/linux/wireless.h
deleted file mode 100644
index 4395b28b..00000000
--- a/ANDROID_3.4.5/include/linux/wireless.h
+++ /dev/null
@@ -1,1162 +0,0 @@
-/*
- * This file define a set of standard wireless extensions
- *
- * Version : 22 16.3.07
- *
- * Authors : Jean Tourrilhes - HPL - <jt@hpl.hp.com>
- * Copyright (c) 1997-2007 Jean Tourrilhes, All Rights Reserved.
- */
-
-#ifndef _LINUX_WIRELESS_H
-#define _LINUX_WIRELESS_H
-
-/************************** DOCUMENTATION **************************/
-/*
- * Initial APIs (1996 -> onward) :
- * -----------------------------
- * Basically, the wireless extensions are for now a set of standard ioctl
- * call + /proc/net/wireless
- *
- * The entry /proc/net/wireless give statistics and information on the
- * driver.
- * This is better than having each driver having its entry because
- * its centralised and we may remove the driver module safely.
- *
- * Ioctl are used to configure the driver and issue commands. This is
- * better than command line options of insmod because we may want to
- * change dynamically (while the driver is running) some parameters.
- *
- * The ioctl mechanimsm are copied from standard devices ioctl.
- * We have the list of command plus a structure descibing the
- * data exchanged...
- * Note that to add these ioctl, I was obliged to modify :
- * # net/core/dev.c (two place + add include)
- * # net/ipv4/af_inet.c (one place + add include)
- *
- * /proc/net/wireless is a copy of /proc/net/dev.
- * We have a structure for data passed from the driver to /proc/net/wireless
- * Too add this, I've modified :
- * # net/core/dev.c (two other places)
- * # include/linux/netdevice.h (one place)
- * # include/linux/proc_fs.h (one place)
- *
- * New driver API (2002 -> onward) :
- * -------------------------------
- * This file is only concerned with the user space API and common definitions.
- * The new driver API is defined and documented in :
- * # include/net/iw_handler.h
- *
- * Note as well that /proc/net/wireless implementation has now moved in :
- * # net/core/wireless.c
- *
- * Wireless Events (2002 -> onward) :
- * --------------------------------
- * Events are defined at the end of this file, and implemented in :
- * # net/core/wireless.c
- *
- * Other comments :
- * --------------
- * Do not add here things that are redundant with other mechanisms
- * (drivers init, ifconfig, /proc/net/dev, ...) and with are not
- * wireless specific.
- *
- * These wireless extensions are not magic : each driver has to provide
- * support for them...
- *
- * IMPORTANT NOTE : As everything in the kernel, this is very much a
- * work in progress. Contact me if you have ideas of improvements...
- */
-
-/***************************** INCLUDES *****************************/
-
-#include <linux/types.h> /* for __u* and __s* typedefs */
-#include <linux/socket.h> /* for "struct sockaddr" et al */
-#include <linux/if.h> /* for IFNAMSIZ and co... */
-
-/***************************** VERSION *****************************/
-/*
- * This constant is used to know the availability of the wireless
- * extensions and to know which version of wireless extensions it is
- * (there is some stuff that will be added in the future...)
- * I just plan to increment with each new version.
- */
-#define WIRELESS_EXT 22
-
-/*
- * Changes :
- *
- * V2 to V3
- * --------
- * Alan Cox start some incompatibles changes. I've integrated a bit more.
- * - Encryption renamed to Encode to avoid US regulation problems
- * - Frequency changed from float to struct to avoid problems on old 386
- *
- * V3 to V4
- * --------
- * - Add sensitivity
- *
- * V4 to V5
- * --------
- * - Missing encoding definitions in range
- * - Access points stuff
- *
- * V5 to V6
- * --------
- * - 802.11 support (ESSID ioctls)
- *
- * V6 to V7
- * --------
- * - define IW_ESSID_MAX_SIZE and IW_MAX_AP
- *
- * V7 to V8
- * --------
- * - Changed my e-mail address
- * - More 802.11 support (nickname, rate, rts, frag)
- * - List index in frequencies
- *
- * V8 to V9
- * --------
- * - Support for 'mode of operation' (ad-hoc, managed...)
- * - Support for unicast and multicast power saving
- * - Change encoding to support larger tokens (>64 bits)
- * - Updated iw_params (disable, flags) and use it for NWID
- * - Extracted iw_point from iwreq for clarity
- *
- * V9 to V10
- * ---------
- * - Add PM capability to range structure
- * - Add PM modifier : MAX/MIN/RELATIVE
- * - Add encoding option : IW_ENCODE_NOKEY
- * - Add TxPower ioctls (work like TxRate)
- *
- * V10 to V11
- * ----------
- * - Add WE version in range (help backward/forward compatibility)
- * - Add retry ioctls (work like PM)
- *
- * V11 to V12
- * ----------
- * - Add SIOCSIWSTATS to get /proc/net/wireless programatically
- * - Add DEV PRIVATE IOCTL to avoid collisions in SIOCDEVPRIVATE space
- * - Add new statistics (frag, retry, beacon)
- * - Add average quality (for user space calibration)
- *
- * V12 to V13
- * ----------
- * - Document creation of new driver API.
- * - Extract union iwreq_data from struct iwreq (for new driver API).
- * - Rename SIOCSIWNAME as SIOCSIWCOMMIT
- *
- * V13 to V14
- * ----------
- * - Wireless Events support : define struct iw_event
- * - Define additional specific event numbers
- * - Add "addr" and "param" fields in union iwreq_data
- * - AP scanning stuff (SIOCSIWSCAN and friends)
- *
- * V14 to V15
- * ----------
- * - Add IW_PRIV_TYPE_ADDR for struct sockaddr private arg
- * - Make struct iw_freq signed (both m & e), add explicit padding
- * - Add IWEVCUSTOM for driver specific event/scanning token
- * - Add IW_MAX_GET_SPY for driver returning a lot of addresses
- * - Add IW_TXPOW_RANGE for range of Tx Powers
- * - Add IWEVREGISTERED & IWEVEXPIRED events for Access Points
- * - Add IW_MODE_MONITOR for passive monitor
- *
- * V15 to V16
- * ----------
- * - Increase the number of bitrates in iw_range to 32 (for 802.11g)
- * - Increase the number of frequencies in iw_range to 32 (for 802.11b+a)
- * - Reshuffle struct iw_range for increases, add filler
- * - Increase IW_MAX_AP to 64 for driver returning a lot of addresses
- * - Remove IW_MAX_GET_SPY because conflict with enhanced spy support
- * - Add SIOCSIWTHRSPY/SIOCGIWTHRSPY and "struct iw_thrspy"
- * - Add IW_ENCODE_TEMP and iw_range->encoding_login_index
- *
- * V16 to V17
- * ----------
- * - Add flags to frequency -> auto/fixed
- * - Document (struct iw_quality *)->updated, add new flags (INVALID)
- * - Wireless Event capability in struct iw_range
- * - Add support for relative TxPower (yick !)
- *
- * V17 to V18 (From Jouni Malinen <j@w1.fi>)
- * ----------
- * - Add support for WPA/WPA2
- * - Add extended encoding configuration (SIOCSIWENCODEEXT and
- * SIOCGIWENCODEEXT)
- * - Add SIOCSIWGENIE/SIOCGIWGENIE
- * - Add SIOCSIWMLME
- * - Add SIOCSIWPMKSA
- * - Add struct iw_range bit field for supported encoding capabilities
- * - Add optional scan request parameters for SIOCSIWSCAN
- * - Add SIOCSIWAUTH/SIOCGIWAUTH for setting authentication and WPA
- * related parameters (extensible up to 4096 parameter values)
- * - Add wireless events: IWEVGENIE, IWEVMICHAELMICFAILURE,
- * IWEVASSOCREQIE, IWEVASSOCRESPIE, IWEVPMKIDCAND
- *
- * V18 to V19
- * ----------
- * - Remove (struct iw_point *)->pointer from events and streams
- * - Remove header includes to help user space
- * - Increase IW_ENCODING_TOKEN_MAX from 32 to 64
- * - Add IW_QUAL_ALL_UPDATED and IW_QUAL_ALL_INVALID macros
- * - Add explicit flag to tell stats are in dBm : IW_QUAL_DBM
- * - Add IW_IOCTL_IDX() and IW_EVENT_IDX() macros
- *
- * V19 to V20
- * ----------
- * - RtNetlink requests support (SET/GET)
- *
- * V20 to V21
- * ----------
- * - Remove (struct net_device *)->get_wireless_stats()
- * - Change length in ESSID and NICK to strlen() instead of strlen()+1
- * - Add IW_RETRY_SHORT/IW_RETRY_LONG retry modifiers
- * - Power/Retry relative values no longer * 100000
- * - Add explicit flag to tell stats are in 802.11k RCPI : IW_QUAL_RCPI
- *
- * V21 to V22
- * ----------
- * - Prevent leaking of kernel space in stream on 64 bits.
- */
-
-/**************************** CONSTANTS ****************************/
-
-/* -------------------------- IOCTL LIST -------------------------- */
-
-/* Wireless Identification */
-#define SIOCSIWCOMMIT 0x8B00 /* Commit pending changes to driver */
-#define SIOCGIWNAME 0x8B01 /* get name == wireless protocol */
-/* SIOCGIWNAME is used to verify the presence of Wireless Extensions.
- * Common values : "IEEE 802.11-DS", "IEEE 802.11-FH", "IEEE 802.11b"...
- * Don't put the name of your driver there, it's useless. */
-
-/* Basic operations */
-#define SIOCSIWNWID 0x8B02 /* set network id (pre-802.11) */
-#define SIOCGIWNWID 0x8B03 /* get network id (the cell) */
-#define SIOCSIWFREQ 0x8B04 /* set channel/frequency (Hz) */
-#define SIOCGIWFREQ 0x8B05 /* get channel/frequency (Hz) */
-#define SIOCSIWMODE 0x8B06 /* set operation mode */
-#define SIOCGIWMODE 0x8B07 /* get operation mode */
-#define SIOCSIWSENS 0x8B08 /* set sensitivity (dBm) */
-#define SIOCGIWSENS 0x8B09 /* get sensitivity (dBm) */
-
-/* Informative stuff */
-#define SIOCSIWRANGE 0x8B0A /* Unused */
-#define SIOCGIWRANGE 0x8B0B /* Get range of parameters */
-#define SIOCSIWPRIV 0x8B0C /* Unused */
-#define SIOCGIWPRIV 0x8B0D /* get private ioctl interface info */
-#define SIOCSIWSTATS 0x8B0E /* Unused */
-#define SIOCGIWSTATS 0x8B0F /* Get /proc/net/wireless stats */
-/* SIOCGIWSTATS is strictly used between user space and the kernel, and
- * is never passed to the driver (i.e. the driver will never see it). */
-
-/* Spy support (statistics per MAC address - used for Mobile IP support) */
-#define SIOCSIWSPY 0x8B10 /* set spy addresses */
-#define SIOCGIWSPY 0x8B11 /* get spy info (quality of link) */
-#define SIOCSIWTHRSPY 0x8B12 /* set spy threshold (spy event) */
-#define SIOCGIWTHRSPY 0x8B13 /* get spy threshold */
-
-/* Access Point manipulation */
-#define SIOCSIWAP 0x8B14 /* set access point MAC addresses */
-#define SIOCGIWAP 0x8B15 /* get access point MAC addresses */
-#define SIOCGIWAPLIST 0x8B17 /* Deprecated in favor of scanning */
-#define SIOCSIWSCAN 0x8B18 /* trigger scanning (list cells) */
-#define SIOCGIWSCAN 0x8B19 /* get scanning results */
-
-/* 802.11 specific support */
-#define SIOCSIWESSID 0x8B1A /* set ESSID (network name) */
-#define SIOCGIWESSID 0x8B1B /* get ESSID */
-#define SIOCSIWNICKN 0x8B1C /* set node name/nickname */
-#define SIOCGIWNICKN 0x8B1D /* get node name/nickname */
-/* As the ESSID and NICKN are strings up to 32 bytes long, it doesn't fit
- * within the 'iwreq' structure, so we need to use the 'data' member to
- * point to a string in user space, like it is done for RANGE... */
-
-/* Other parameters useful in 802.11 and some other devices */
-#define SIOCSIWRATE 0x8B20 /* set default bit rate (bps) */
-#define SIOCGIWRATE 0x8B21 /* get default bit rate (bps) */
-#define SIOCSIWRTS 0x8B22 /* set RTS/CTS threshold (bytes) */
-#define SIOCGIWRTS 0x8B23 /* get RTS/CTS threshold (bytes) */
-#define SIOCSIWFRAG 0x8B24 /* set fragmentation thr (bytes) */
-#define SIOCGIWFRAG 0x8B25 /* get fragmentation thr (bytes) */
-#define SIOCSIWTXPOW 0x8B26 /* set transmit power (dBm) */
-#define SIOCGIWTXPOW 0x8B27 /* get transmit power (dBm) */
-#define SIOCSIWRETRY 0x8B28 /* set retry limits and lifetime */
-#define SIOCGIWRETRY 0x8B29 /* get retry limits and lifetime */
-
-/* Encoding stuff (scrambling, hardware security, WEP...) */
-#define SIOCSIWENCODE 0x8B2A /* set encoding token & mode */
-#define SIOCGIWENCODE 0x8B2B /* get encoding token & mode */
-/* Power saving stuff (power management, unicast and multicast) */
-#define SIOCSIWPOWER 0x8B2C /* set Power Management settings */
-#define SIOCGIWPOWER 0x8B2D /* get Power Management settings */
-
-/* WPA : Generic IEEE 802.11 informatiom element (e.g., for WPA/RSN/WMM).
- * This ioctl uses struct iw_point and data buffer that includes IE id and len
- * fields. More than one IE may be included in the request. Setting the generic
- * IE to empty buffer (len=0) removes the generic IE from the driver. Drivers
- * are allowed to generate their own WPA/RSN IEs, but in these cases, drivers
- * are required to report the used IE as a wireless event, e.g., when
- * associating with an AP. */
-#define SIOCSIWGENIE 0x8B30 /* set generic IE */
-#define SIOCGIWGENIE 0x8B31 /* get generic IE */
-
-/* WPA : IEEE 802.11 MLME requests */
-#define SIOCSIWMLME 0x8B16 /* request MLME operation; uses
- * struct iw_mlme */
-/* WPA : Authentication mode parameters */
-#define SIOCSIWAUTH 0x8B32 /* set authentication mode params */
-#define SIOCGIWAUTH 0x8B33 /* get authentication mode params */
-
-/* WPA : Extended version of encoding configuration */
-#define SIOCSIWENCODEEXT 0x8B34 /* set encoding token & mode */
-#define SIOCGIWENCODEEXT 0x8B35 /* get encoding token & mode */
-
-/* WPA2 : PMKSA cache management */
-#define SIOCSIWPMKSA 0x8B36 /* PMKSA cache operation */
-
-/* -------------------- DEV PRIVATE IOCTL LIST -------------------- */
-
-/* These 32 ioctl are wireless device private, for 16 commands.
- * Each driver is free to use them for whatever purpose it chooses,
- * however the driver *must* export the description of those ioctls
- * with SIOCGIWPRIV and *must* use arguments as defined below.
- * If you don't follow those rules, DaveM is going to hate you (reason :
- * it make mixed 32/64bit operation impossible).
- */
-#define SIOCIWFIRSTPRIV 0x8BE0
-#define SIOCIWLASTPRIV 0x8BFF
-/* Previously, we were using SIOCDEVPRIVATE, but we now have our
- * separate range because of collisions with other tools such as
- * 'mii-tool'.
- * We now have 32 commands, so a bit more space ;-).
- * Also, all 'even' commands are only usable by root and don't return the
- * content of ifr/iwr to user (but you are not obliged to use the set/get
- * convention, just use every other two command). More details in iwpriv.c.
- * And I repeat : you are not forced to use them with iwpriv, but you
- * must be compliant with it.
- */
-
-/* ------------------------- IOCTL STUFF ------------------------- */
-
-/* The first and the last (range) */
-#define SIOCIWFIRST 0x8B00
-#define SIOCIWLAST SIOCIWLASTPRIV /* 0x8BFF */
-#define IW_IOCTL_IDX(cmd) ((cmd) - SIOCIWFIRST)
-#define IW_HANDLER(id, func) \
- [IW_IOCTL_IDX(id)] = func
-
-/* Odd : get (world access), even : set (root access) */
-#define IW_IS_SET(cmd) (!((cmd) & 0x1))
-#define IW_IS_GET(cmd) ((cmd) & 0x1)
-
-/* ----------------------- WIRELESS EVENTS ----------------------- */
-/* Those are *NOT* ioctls, do not issue request on them !!! */
-/* Most events use the same identifier as ioctl requests */
-
-#define IWEVTXDROP 0x8C00 /* Packet dropped to excessive retry */
-#define IWEVQUAL 0x8C01 /* Quality part of statistics (scan) */
-#define IWEVCUSTOM 0x8C02 /* Driver specific ascii string */
-#define IWEVREGISTERED 0x8C03 /* Discovered a new node (AP mode) */
-#define IWEVEXPIRED 0x8C04 /* Expired a node (AP mode) */
-#define IWEVGENIE 0x8C05 /* Generic IE (WPA, RSN, WMM, ..)
- * (scan results); This includes id and
- * length fields. One IWEVGENIE may
- * contain more than one IE. Scan
- * results may contain one or more
- * IWEVGENIE events. */
-#define IWEVMICHAELMICFAILURE 0x8C06 /* Michael MIC failure
- * (struct iw_michaelmicfailure)
- */
-#define IWEVASSOCREQIE 0x8C07 /* IEs used in (Re)Association Request.
- * The data includes id and length
- * fields and may contain more than one
- * IE. This event is required in
- * Managed mode if the driver
- * generates its own WPA/RSN IE. This
- * should be sent just before
- * IWEVREGISTERED event for the
- * association. */
-#define IWEVASSOCRESPIE 0x8C08 /* IEs used in (Re)Association
- * Response. The data includes id and
- * length fields and may contain more
- * than one IE. This may be sent
- * between IWEVASSOCREQIE and
- * IWEVREGISTERED events for the
- * association. */
-#define IWEVPMKIDCAND 0x8C09 /* PMKID candidate for RSN
- * pre-authentication
- * (struct iw_pmkid_cand) */
-
-#define IWEVFIRST 0x8C00
-#define IW_EVENT_IDX(cmd) ((cmd) - IWEVFIRST)
-
-/* ------------------------- PRIVATE INFO ------------------------- */
-/*
- * The following is used with SIOCGIWPRIV. It allow a driver to define
- * the interface (name, type of data) for its private ioctl.
- * Privates ioctl are SIOCIWFIRSTPRIV -> SIOCIWLASTPRIV
- */
-
-#define IW_PRIV_TYPE_MASK 0x7000 /* Type of arguments */
-#define IW_PRIV_TYPE_NONE 0x0000
-#define IW_PRIV_TYPE_BYTE 0x1000 /* Char as number */
-#define IW_PRIV_TYPE_CHAR 0x2000 /* Char as character */
-#define IW_PRIV_TYPE_INT 0x4000 /* 32 bits int */
-#define IW_PRIV_TYPE_FLOAT 0x5000 /* struct iw_freq */
-#define IW_PRIV_TYPE_ADDR 0x6000 /* struct sockaddr */
-
-#define IW_PRIV_SIZE_FIXED 0x0800 /* Variable or fixed number of args */
-
-#define IW_PRIV_SIZE_MASK 0x07FF /* Max number of those args */
-
-/*
- * Note : if the number of args is fixed and the size < 16 octets,
- * instead of passing a pointer we will put args in the iwreq struct...
- */
-
-/* ----------------------- OTHER CONSTANTS ----------------------- */
-
-/* Maximum frequencies in the range struct */
-#define IW_MAX_FREQUENCIES 32
-/* Note : if you have something like 80 frequencies,
- * don't increase this constant and don't fill the frequency list.
- * The user will be able to set by channel anyway... */
-
-/* Maximum bit rates in the range struct */
-#define IW_MAX_BITRATES 32
-
-/* Maximum tx powers in the range struct */
-#define IW_MAX_TXPOWER 8
-/* Note : if you more than 8 TXPowers, just set the max and min or
- * a few of them in the struct iw_range. */
-
-/* Maximum of address that you may set with SPY */
-#define IW_MAX_SPY 8
-
-/* Maximum of address that you may get in the
- list of access points in range */
-#define IW_MAX_AP 64
-
-/* Maximum size of the ESSID and NICKN strings */
-#define IW_ESSID_MAX_SIZE 32
-
-/* Modes of operation */
-#define IW_MODE_AUTO 0 /* Let the driver decides */
-#define IW_MODE_ADHOC 1 /* Single cell network */
-#define IW_MODE_INFRA 2 /* Multi cell network, roaming, ... */
-#define IW_MODE_MASTER 3 /* Synchronisation master or Access Point */
-#define IW_MODE_REPEAT 4 /* Wireless Repeater (forwarder) */
-#define IW_MODE_SECOND 5 /* Secondary master/repeater (backup) */
-#define IW_MODE_MONITOR 6 /* Passive monitor (listen only) */
-#define IW_MODE_MESH 7 /* Mesh (IEEE 802.11s) network */
-
-/* Statistics flags (bitmask in updated) */
-#define IW_QUAL_QUAL_UPDATED 0x01 /* Value was updated since last read */
-#define IW_QUAL_LEVEL_UPDATED 0x02
-#define IW_QUAL_NOISE_UPDATED 0x04
-#define IW_QUAL_ALL_UPDATED 0x07
-#define IW_QUAL_DBM 0x08 /* Level + Noise are dBm */
-#define IW_QUAL_QUAL_INVALID 0x10 /* Driver doesn't provide value */
-#define IW_QUAL_LEVEL_INVALID 0x20
-#define IW_QUAL_NOISE_INVALID 0x40
-#define IW_QUAL_RCPI 0x80 /* Level + Noise are 802.11k RCPI */
-#define IW_QUAL_ALL_INVALID 0x70
-
-/* Frequency flags */
-#define IW_FREQ_AUTO 0x00 /* Let the driver decides */
-#define IW_FREQ_FIXED 0x01 /* Force a specific value */
-
-/* Maximum number of size of encoding token available
- * they are listed in the range structure */
-#define IW_MAX_ENCODING_SIZES 8
-
-/* Maximum size of the encoding token in bytes */
-#define IW_ENCODING_TOKEN_MAX 64 /* 512 bits (for now) */
-
-/* Flags for encoding (along with the token) */
-#define IW_ENCODE_INDEX 0x00FF /* Token index (if needed) */
-#define IW_ENCODE_FLAGS 0xFF00 /* Flags defined below */
-#define IW_ENCODE_MODE 0xF000 /* Modes defined below */
-#define IW_ENCODE_DISABLED 0x8000 /* Encoding disabled */
-#define IW_ENCODE_ENABLED 0x0000 /* Encoding enabled */
-#define IW_ENCODE_RESTRICTED 0x4000 /* Refuse non-encoded packets */
-#define IW_ENCODE_OPEN 0x2000 /* Accept non-encoded packets */
-#define IW_ENCODE_NOKEY 0x0800 /* Key is write only, so not present */
-#define IW_ENCODE_TEMP 0x0400 /* Temporary key */
-
-/* Power management flags available (along with the value, if any) */
-#define IW_POWER_ON 0x0000 /* No details... */
-#define IW_POWER_TYPE 0xF000 /* Type of parameter */
-#define IW_POWER_PERIOD 0x1000 /* Value is a period/duration of */
-#define IW_POWER_TIMEOUT 0x2000 /* Value is a timeout (to go asleep) */
-#define IW_POWER_MODE 0x0F00 /* Power Management mode */
-#define IW_POWER_UNICAST_R 0x0100 /* Receive only unicast messages */
-#define IW_POWER_MULTICAST_R 0x0200 /* Receive only multicast messages */
-#define IW_POWER_ALL_R 0x0300 /* Receive all messages though PM */
-#define IW_POWER_FORCE_S 0x0400 /* Force PM procedure for sending unicast */
-#define IW_POWER_REPEATER 0x0800 /* Repeat broadcast messages in PM period */
-#define IW_POWER_MODIFIER 0x000F /* Modify a parameter */
-#define IW_POWER_MIN 0x0001 /* Value is a minimum */
-#define IW_POWER_MAX 0x0002 /* Value is a maximum */
-#define IW_POWER_RELATIVE 0x0004 /* Value is not in seconds/ms/us */
-
-/* Transmit Power flags available */
-#define IW_TXPOW_TYPE 0x00FF /* Type of value */
-#define IW_TXPOW_DBM 0x0000 /* Value is in dBm */
-#define IW_TXPOW_MWATT 0x0001 /* Value is in mW */
-#define IW_TXPOW_RELATIVE 0x0002 /* Value is in arbitrary units */
-#define IW_TXPOW_RANGE 0x1000 /* Range of value between min/max */
-
-/* Retry limits and lifetime flags available */
-#define IW_RETRY_ON 0x0000 /* No details... */
-#define IW_RETRY_TYPE 0xF000 /* Type of parameter */
-#define IW_RETRY_LIMIT 0x1000 /* Maximum number of retries*/
-#define IW_RETRY_LIFETIME 0x2000 /* Maximum duration of retries in us */
-#define IW_RETRY_MODIFIER 0x00FF /* Modify a parameter */
-#define IW_RETRY_MIN 0x0001 /* Value is a minimum */
-#define IW_RETRY_MAX 0x0002 /* Value is a maximum */
-#define IW_RETRY_RELATIVE 0x0004 /* Value is not in seconds/ms/us */
-#define IW_RETRY_SHORT 0x0010 /* Value is for short packets */
-#define IW_RETRY_LONG 0x0020 /* Value is for long packets */
-
-/* Scanning request flags */
-#define IW_SCAN_DEFAULT 0x0000 /* Default scan of the driver */
-#define IW_SCAN_ALL_ESSID 0x0001 /* Scan all ESSIDs */
-#define IW_SCAN_THIS_ESSID 0x0002 /* Scan only this ESSID */
-#define IW_SCAN_ALL_FREQ 0x0004 /* Scan all Frequencies */
-#define IW_SCAN_THIS_FREQ 0x0008 /* Scan only this Frequency */
-#define IW_SCAN_ALL_MODE 0x0010 /* Scan all Modes */
-#define IW_SCAN_THIS_MODE 0x0020 /* Scan only this Mode */
-#define IW_SCAN_ALL_RATE 0x0040 /* Scan all Bit-Rates */
-#define IW_SCAN_THIS_RATE 0x0080 /* Scan only this Bit-Rate */
-/* struct iw_scan_req scan_type */
-#define IW_SCAN_TYPE_ACTIVE 0
-#define IW_SCAN_TYPE_PASSIVE 1
-/* Maximum size of returned data */
-#define IW_SCAN_MAX_DATA 4096 /* In bytes */
-
-/* Scan capability flags - in (struct iw_range *)->scan_capa */
-#define IW_SCAN_CAPA_NONE 0x00
-#define IW_SCAN_CAPA_ESSID 0x01
-#define IW_SCAN_CAPA_BSSID 0x02
-#define IW_SCAN_CAPA_CHANNEL 0x04
-#define IW_SCAN_CAPA_MODE 0x08
-#define IW_SCAN_CAPA_RATE 0x10
-#define IW_SCAN_CAPA_TYPE 0x20
-#define IW_SCAN_CAPA_TIME 0x40
-
-/* Max number of char in custom event - use multiple of them if needed */
-#define IW_CUSTOM_MAX 256 /* In bytes */
-
-/* Generic information element */
-#define IW_GENERIC_IE_MAX 1024
-
-/* MLME requests (SIOCSIWMLME / struct iw_mlme) */
-#define IW_MLME_DEAUTH 0
-#define IW_MLME_DISASSOC 1
-#define IW_MLME_AUTH 2
-#define IW_MLME_ASSOC 3
-
-/* SIOCSIWAUTH/SIOCGIWAUTH struct iw_param flags */
-#define IW_AUTH_INDEX 0x0FFF
-#define IW_AUTH_FLAGS 0xF000
-/* SIOCSIWAUTH/SIOCGIWAUTH parameters (0 .. 4095)
- * (IW_AUTH_INDEX mask in struct iw_param flags; this is the index of the
- * parameter that is being set/get to; value will be read/written to
- * struct iw_param value field) */
-#define IW_AUTH_WPA_VERSION 0
-#define IW_AUTH_CIPHER_PAIRWISE 1
-#define IW_AUTH_CIPHER_GROUP 2
-#define IW_AUTH_KEY_MGMT 3
-#define IW_AUTH_TKIP_COUNTERMEASURES 4
-#define IW_AUTH_DROP_UNENCRYPTED 5
-#define IW_AUTH_80211_AUTH_ALG 6
-#define IW_AUTH_WPA_ENABLED 7
-#define IW_AUTH_RX_UNENCRYPTED_EAPOL 8
-#define IW_AUTH_ROAMING_CONTROL 9
-#define IW_AUTH_PRIVACY_INVOKED 10
-#define IW_AUTH_CIPHER_GROUP_MGMT 11
-#define IW_AUTH_MFP 12
-
-/* IW_AUTH_WPA_VERSION values (bit field) */
-#define IW_AUTH_WPA_VERSION_DISABLED 0x00000001
-#define IW_AUTH_WPA_VERSION_WPA 0x00000002
-#define IW_AUTH_WPA_VERSION_WPA2 0x00000004
-
-/* IW_AUTH_PAIRWISE_CIPHER, IW_AUTH_GROUP_CIPHER, and IW_AUTH_CIPHER_GROUP_MGMT
- * values (bit field) */
-#define IW_AUTH_CIPHER_NONE 0x00000001
-#define IW_AUTH_CIPHER_WEP40 0x00000002
-#define IW_AUTH_CIPHER_TKIP 0x00000004
-#define IW_AUTH_CIPHER_CCMP 0x00000008
-#define IW_AUTH_CIPHER_WEP104 0x00000010
-#define IW_AUTH_CIPHER_AES_CMAC 0x00000020
-
-/* IW_AUTH_KEY_MGMT values (bit field) */
-#define IW_AUTH_KEY_MGMT_802_1X 1
-#define IW_AUTH_KEY_MGMT_PSK 2
-
-/* IW_AUTH_80211_AUTH_ALG values (bit field) */
-#define IW_AUTH_ALG_OPEN_SYSTEM 0x00000001
-#define IW_AUTH_ALG_SHARED_KEY 0x00000002
-#define IW_AUTH_ALG_LEAP 0x00000004
-
-/* IW_AUTH_ROAMING_CONTROL values */
-#define IW_AUTH_ROAMING_ENABLE 0 /* driver/firmware based roaming */
-#define IW_AUTH_ROAMING_DISABLE 1 /* user space program used for roaming
- * control */
-
-/* IW_AUTH_MFP (management frame protection) values */
-#define IW_AUTH_MFP_DISABLED 0 /* MFP disabled */
-#define IW_AUTH_MFP_OPTIONAL 1 /* MFP optional */
-#define IW_AUTH_MFP_REQUIRED 2 /* MFP required */
-
-/* SIOCSIWENCODEEXT definitions */
-#define IW_ENCODE_SEQ_MAX_SIZE 8
-/* struct iw_encode_ext ->alg */
-#define IW_ENCODE_ALG_NONE 0
-#define IW_ENCODE_ALG_WEP 1
-#define IW_ENCODE_ALG_TKIP 2
-#define IW_ENCODE_ALG_CCMP 3
-#define IW_ENCODE_ALG_PMK 4
-#define IW_ENCODE_ALG_AES_CMAC 5
-/* struct iw_encode_ext ->ext_flags */
-#define IW_ENCODE_EXT_TX_SEQ_VALID 0x00000001
-#define IW_ENCODE_EXT_RX_SEQ_VALID 0x00000002
-#define IW_ENCODE_EXT_GROUP_KEY 0x00000004
-#define IW_ENCODE_EXT_SET_TX_KEY 0x00000008
-
-/* IWEVMICHAELMICFAILURE : struct iw_michaelmicfailure ->flags */
-#define IW_MICFAILURE_KEY_ID 0x00000003 /* Key ID 0..3 */
-#define IW_MICFAILURE_GROUP 0x00000004
-#define IW_MICFAILURE_PAIRWISE 0x00000008
-#define IW_MICFAILURE_STAKEY 0x00000010
-#define IW_MICFAILURE_COUNT 0x00000060 /* 1 or 2 (0 = count not supported)
- */
-
-/* Bit field values for enc_capa in struct iw_range */
-#define IW_ENC_CAPA_WPA 0x00000001
-#define IW_ENC_CAPA_WPA2 0x00000002
-#define IW_ENC_CAPA_CIPHER_TKIP 0x00000004
-#define IW_ENC_CAPA_CIPHER_CCMP 0x00000008
-#define IW_ENC_CAPA_4WAY_HANDSHAKE 0x00000010
-
-/* Event capability macros - in (struct iw_range *)->event_capa
- * Because we have more than 32 possible events, we use an array of
- * 32 bit bitmasks. Note : 32 bits = 0x20 = 2^5. */
-#define IW_EVENT_CAPA_BASE(cmd) ((cmd >= SIOCIWFIRSTPRIV) ? \
- (cmd - SIOCIWFIRSTPRIV + 0x60) : \
- (cmd - SIOCIWFIRST))
-#define IW_EVENT_CAPA_INDEX(cmd) (IW_EVENT_CAPA_BASE(cmd) >> 5)
-#define IW_EVENT_CAPA_MASK(cmd) (1 << (IW_EVENT_CAPA_BASE(cmd) & 0x1F))
-/* Event capability constants - event autogenerated by the kernel
- * This list is valid for most 802.11 devices, customise as needed... */
-#define IW_EVENT_CAPA_K_0 (IW_EVENT_CAPA_MASK(0x8B04) | \
- IW_EVENT_CAPA_MASK(0x8B06) | \
- IW_EVENT_CAPA_MASK(0x8B1A))
-#define IW_EVENT_CAPA_K_1 (IW_EVENT_CAPA_MASK(0x8B2A))
-/* "Easy" macro to set events in iw_range (less efficient) */
-#define IW_EVENT_CAPA_SET(event_capa, cmd) (event_capa[IW_EVENT_CAPA_INDEX(cmd)] |= IW_EVENT_CAPA_MASK(cmd))
-#define IW_EVENT_CAPA_SET_KERNEL(event_capa) {event_capa[0] |= IW_EVENT_CAPA_K_0; event_capa[1] |= IW_EVENT_CAPA_K_1; }
-
-
-/****************************** TYPES ******************************/
-
-/* --------------------------- SUBTYPES --------------------------- */
-/*
- * Generic format for most parameters that fit in an int
- */
-struct iw_param
-{
- __s32 value; /* The value of the parameter itself */
- __u8 fixed; /* Hardware should not use auto select */
- __u8 disabled; /* Disable the feature */
- __u16 flags; /* Various specifc flags (if any) */
-};
-
-/*
- * For all data larger than 16 octets, we need to use a
- * pointer to memory allocated in user space.
- */
-struct iw_point
-{
- void __user *pointer; /* Pointer to the data (in user space) */
- __u16 length; /* number of fields or size in bytes */
- __u16 flags; /* Optional params */
-};
-
-#ifdef __KERNEL__
-#ifdef CONFIG_COMPAT
-
-#include <linux/compat.h>
-
-struct compat_iw_point {
- compat_caddr_t pointer;
- __u16 length;
- __u16 flags;
-};
-#endif
-#endif
-
-/*
- * A frequency
- * For numbers lower than 10^9, we encode the number in 'm' and
- * set 'e' to 0
- * For number greater than 10^9, we divide it by the lowest power
- * of 10 to get 'm' lower than 10^9, with 'm'= f / (10^'e')...
- * The power of 10 is in 'e', the result of the division is in 'm'.
- */
-struct iw_freq
-{
- __s32 m; /* Mantissa */
- __s16 e; /* Exponent */
- __u8 i; /* List index (when in range struct) */
- __u8 flags; /* Flags (fixed/auto) */
-};
-
-/*
- * Quality of the link
- */
-struct iw_quality
-{
- __u8 qual; /* link quality (%retries, SNR,
- %missed beacons or better...) */
- __u8 level; /* signal level (dBm) */
- __u8 noise; /* noise level (dBm) */
- __u8 updated; /* Flags to know if updated */
-};
-
-/*
- * Packet discarded in the wireless adapter due to
- * "wireless" specific problems...
- * Note : the list of counter and statistics in net_device_stats
- * is already pretty exhaustive, and you should use that first.
- * This is only additional stats...
- */
-struct iw_discarded
-{
- __u32 nwid; /* Rx : Wrong nwid/essid */
- __u32 code; /* Rx : Unable to code/decode (WEP) */
- __u32 fragment; /* Rx : Can't perform MAC reassembly */
- __u32 retries; /* Tx : Max MAC retries num reached */
- __u32 misc; /* Others cases */
-};
-
-/*
- * Packet/Time period missed in the wireless adapter due to
- * "wireless" specific problems...
- */
-struct iw_missed
-{
- __u32 beacon; /* Missed beacons/superframe */
-};
-
-/*
- * Quality range (for spy threshold)
- */
-struct iw_thrspy
-{
- struct sockaddr addr; /* Source address (hw/mac) */
- struct iw_quality qual; /* Quality of the link */
- struct iw_quality low; /* Low threshold */
- struct iw_quality high; /* High threshold */
-};
-
-/*
- * Optional data for scan request
- *
- * Note: these optional parameters are controlling parameters for the
- * scanning behavior, these do not apply to getting scan results
- * (SIOCGIWSCAN). Drivers are expected to keep a local BSS table and
- * provide a merged results with all BSSes even if the previous scan
- * request limited scanning to a subset, e.g., by specifying an SSID.
- * Especially, scan results are required to include an entry for the
- * current BSS if the driver is in Managed mode and associated with an AP.
- */
-struct iw_scan_req
-{
- __u8 scan_type; /* IW_SCAN_TYPE_{ACTIVE,PASSIVE} */
- __u8 essid_len;
- __u8 num_channels; /* num entries in channel_list;
- * 0 = scan all allowed channels */
- __u8 flags; /* reserved as padding; use zero, this may
- * be used in the future for adding flags
- * to request different scan behavior */
- struct sockaddr bssid; /* ff:ff:ff:ff:ff:ff for broadcast BSSID or
- * individual address of a specific BSS */
-
- /*
- * Use this ESSID if IW_SCAN_THIS_ESSID flag is used instead of using
- * the current ESSID. This allows scan requests for specific ESSID
- * without having to change the current ESSID and potentially breaking
- * the current association.
- */
- __u8 essid[IW_ESSID_MAX_SIZE];
-
- /*
- * Optional parameters for changing the default scanning behavior.
- * These are based on the MLME-SCAN.request from IEEE Std 802.11.
- * TU is 1.024 ms. If these are set to 0, driver is expected to use
- * reasonable default values. min_channel_time defines the time that
- * will be used to wait for the first reply on each channel. If no
- * replies are received, next channel will be scanned after this. If
- * replies are received, total time waited on the channel is defined by
- * max_channel_time.
- */
- __u32 min_channel_time; /* in TU */
- __u32 max_channel_time; /* in TU */
-
- struct iw_freq channel_list[IW_MAX_FREQUENCIES];
-};
-
-/* ------------------------- WPA SUPPORT ------------------------- */
-
-/*
- * Extended data structure for get/set encoding (this is used with
- * SIOCSIWENCODEEXT/SIOCGIWENCODEEXT. struct iw_point and IW_ENCODE_*
- * flags are used in the same way as with SIOCSIWENCODE/SIOCGIWENCODE and
- * only the data contents changes (key data -> this structure, including
- * key data).
- *
- * If the new key is the first group key, it will be set as the default
- * TX key. Otherwise, default TX key index is only changed if
- * IW_ENCODE_EXT_SET_TX_KEY flag is set.
- *
- * Key will be changed with SIOCSIWENCODEEXT in all cases except for
- * special "change TX key index" operation which is indicated by setting
- * key_len = 0 and ext_flags |= IW_ENCODE_EXT_SET_TX_KEY.
- *
- * tx_seq/rx_seq are only used when respective
- * IW_ENCODE_EXT_{TX,RX}_SEQ_VALID flag is set in ext_flags. Normal
- * TKIP/CCMP operation is to set RX seq with SIOCSIWENCODEEXT and start
- * TX seq from zero whenever key is changed. SIOCGIWENCODEEXT is normally
- * used only by an Authenticator (AP or an IBSS station) to get the
- * current TX sequence number. Using TX_SEQ_VALID for SIOCSIWENCODEEXT and
- * RX_SEQ_VALID for SIOCGIWENCODEEXT are optional, but can be useful for
- * debugging/testing.
- */
-struct iw_encode_ext
-{
- __u32 ext_flags; /* IW_ENCODE_EXT_* */
- __u8 tx_seq[IW_ENCODE_SEQ_MAX_SIZE]; /* LSB first */
- __u8 rx_seq[IW_ENCODE_SEQ_MAX_SIZE]; /* LSB first */
- struct sockaddr addr; /* ff:ff:ff:ff:ff:ff for broadcast/multicast
- * (group) keys or unicast address for
- * individual keys */
- __u16 alg; /* IW_ENCODE_ALG_* */
- __u16 key_len;
- __u8 key[0];
-};
-
-/* SIOCSIWMLME data */
-struct iw_mlme
-{
- __u16 cmd; /* IW_MLME_* */
- __u16 reason_code;
- struct sockaddr addr;
-};
-
-/* SIOCSIWPMKSA data */
-#define IW_PMKSA_ADD 1
-#define IW_PMKSA_REMOVE 2
-#define IW_PMKSA_FLUSH 3
-
-#define IW_PMKID_LEN 16
-
-struct iw_pmksa
-{
- __u32 cmd; /* IW_PMKSA_* */
- struct sockaddr bssid;
- __u8 pmkid[IW_PMKID_LEN];
-};
-
-/* IWEVMICHAELMICFAILURE data */
-struct iw_michaelmicfailure
-{
- __u32 flags;
- struct sockaddr src_addr;
- __u8 tsc[IW_ENCODE_SEQ_MAX_SIZE]; /* LSB first */
-};
-
-/* IWEVPMKIDCAND data */
-#define IW_PMKID_CAND_PREAUTH 0x00000001 /* RNS pre-authentication enabled */
-struct iw_pmkid_cand
-{
- __u32 flags; /* IW_PMKID_CAND_* */
- __u32 index; /* the smaller the index, the higher the
- * priority */
- struct sockaddr bssid;
-};
-
-/* ------------------------ WIRELESS STATS ------------------------ */
-/*
- * Wireless statistics (used for /proc/net/wireless)
- */
-struct iw_statistics
-{
- __u16 status; /* Status
- * - device dependent for now */
-
- struct iw_quality qual; /* Quality of the link
- * (instant/mean/max) */
- struct iw_discarded discard; /* Packet discarded counts */
- struct iw_missed miss; /* Packet missed counts */
-};
-
-/* ------------------------ IOCTL REQUEST ------------------------ */
-/*
- * This structure defines the payload of an ioctl, and is used
- * below.
- *
- * Note that this structure should fit on the memory footprint
- * of iwreq (which is the same as ifreq), which mean a max size of
- * 16 octets = 128 bits. Warning, pointers might be 64 bits wide...
- * You should check this when increasing the structures defined
- * above in this file...
- */
-union iwreq_data
-{
- /* Config - generic */
- char name[IFNAMSIZ];
- /* Name : used to verify the presence of wireless extensions.
- * Name of the protocol/provider... */
-
- struct iw_point essid; /* Extended network name */
- struct iw_param nwid; /* network id (or domain - the cell) */
- struct iw_freq freq; /* frequency or channel :
- * 0-1000 = channel
- * > 1000 = frequency in Hz */
-
- struct iw_param sens; /* signal level threshold */
- struct iw_param bitrate; /* default bit rate */
- struct iw_param txpower; /* default transmit power */
- struct iw_param rts; /* RTS threshold threshold */
- struct iw_param frag; /* Fragmentation threshold */
- __u32 mode; /* Operation mode */
- struct iw_param retry; /* Retry limits & lifetime */
-
- struct iw_point encoding; /* Encoding stuff : tokens */
- struct iw_param power; /* PM duration/timeout */
- struct iw_quality qual; /* Quality part of statistics */
-
- struct sockaddr ap_addr; /* Access point address */
- struct sockaddr addr; /* Destination address (hw/mac) */
-
- struct iw_param param; /* Other small parameters */
- struct iw_point data; /* Other large parameters */
-};
-
-/*
- * The structure to exchange data for ioctl.
- * This structure is the same as 'struct ifreq', but (re)defined for
- * convenience...
- * Do I need to remind you about structure size (32 octets) ?
- */
-struct iwreq
-{
- union
- {
- char ifrn_name[IFNAMSIZ]; /* if name, e.g. "eth0" */
- } ifr_ifrn;
-
- /* Data part (defined just above) */
- union iwreq_data u;
-};
-
-/* -------------------------- IOCTL DATA -------------------------- */
-/*
- * For those ioctl which want to exchange mode data that what could
- * fit in the above structure...
- */
-
-/*
- * Range of parameters
- */
-
-struct iw_range
-{
- /* 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; /* IW_SCAN_CAPA_* bit field */
-
- /* Wireless event capability bitmasks */
- __u32 event_capa[6];
-
- /* signal level threshold range */
- __s32 sensitivity;
-
- /* Quality of link & SNR stuff */
- /* Quality range (link, level, noise)
- * If the quality is absolute, it will be in the range [0 ; max_qual],
- * if the quality is dBm, it will be in the range [max_qual ; 0].
- * Don't forget that we use 8 bit arithmetics... */
- struct iw_quality max_qual; /* Quality of the link */
- /* This should contain the average/typical values of the quality
- * indicator. This should be the threshold between a "good" and
- * a "bad" link (example : monitor going from green to orange).
- * Currently, user space apps like quality monitors don't have any
- * way to calibrate the measurement. With this, they can split
- * the range between 0 and max_qual in different quality level
- * (using a geometric subdivision centered on the average).
- * I expect that people doing the user space apps will feedback
- * us on which value we need to put in each driver... */
- struct iw_quality avg_qual; /* Quality of the link */
-
- /* Rates */
- __u8 num_bitrates; /* Number of entries in the list */
- __s32 bitrate[IW_MAX_BITRATES]; /* list, in bps */
-
- /* RTS threshold */
- __s32 min_rts; /* Minimal RTS threshold */
- __s32 max_rts; /* Maximal RTS threshold */
-
- /* Frag threshold */
- __s32 min_frag; /* Minimal frag threshold */
- __s32 max_frag; /* Maximal frag threshold */
-
- /* Power Management duration & timeout */
- __s32 min_pmp; /* Minimal PM period */
- __s32 max_pmp; /* Maximal PM period */
- __s32 min_pmt; /* Minimal PM timeout */
- __s32 max_pmt; /* Maximal PM timeout */
- __u16 pmp_flags; /* How to decode max/min PM period */
- __u16 pmt_flags; /* How to decode max/min PM timeout */
- __u16 pm_capa; /* What PM options are supported */
-
- /* Encoder stuff */
- __u16 encoding_size[IW_MAX_ENCODING_SIZES]; /* Different token sizes */
- __u8 num_encoding_sizes; /* Number of entry in the list */
- __u8 max_encoding_tokens; /* Max number of tokens */
- /* For drivers that need a "login/passwd" form */
- __u8 encoding_login_index; /* token index for login token */
-
- /* Transmit power */
- __u16 txpower_capa; /* What options are supported */
- __u8 num_txpower; /* Number of entries in the list */
- __s32 txpower[IW_MAX_TXPOWER]; /* list, in bps */
-
- /* Wireless Extension version info */
- __u8 we_version_compiled; /* Must be WIRELESS_EXT */
- __u8 we_version_source; /* Last update of source */
-
- /* Retry limits and lifetime */
- __u16 retry_capa; /* What retry options are supported */
- __u16 retry_flags; /* How to decode max/min retry limit */
- __u16 r_time_flags; /* How to decode max/min retry life */
- __s32 min_retry; /* Minimal number of retries */
- __s32 max_retry; /* Maximal number of retries */
- __s32 min_r_time; /* Minimal retry lifetime */
- __s32 max_r_time; /* Maximal retry lifetime */
-
- /* Frequency */
- __u16 num_channels; /* Number of channels [0; num - 1] */
- __u8 num_frequency; /* Number of entry in the list */
- struct iw_freq freq[IW_MAX_FREQUENCIES]; /* list */
- /* Note : this frequency list doesn't need to fit channel numbers,
- * because each entry contain its channel index */
-
- __u32 enc_capa; /* IW_ENC_CAPA_* bit field */
-};
-
-/*
- * Private ioctl interface information
- */
-
-struct iw_priv_args
-{
- __u32 cmd; /* Number of the ioctl to issue */
- __u16 set_args; /* Type and number of args */
- __u16 get_args; /* Type and number of args */
- char name[IFNAMSIZ]; /* Name of the extension */
-};
-
-/* ----------------------- WIRELESS EVENTS ----------------------- */
-/*
- * Wireless events are carried through the rtnetlink socket to user
- * space. They are encapsulated in the IFLA_WIRELESS field of
- * a RTM_NEWLINK message.
- */
-
-/*
- * A Wireless Event. Contains basically the same data as the ioctl...
- */
-struct iw_event
-{
- __u16 len; /* Real length of this stuff */
- __u16 cmd; /* Wireless IOCTL */
- union iwreq_data u; /* IOCTL fixed payload */
-};
-
-/* Size of the Event prefix (including padding and alignement junk) */
-#define IW_EV_LCP_LEN (sizeof(struct iw_event) - sizeof(union iwreq_data))
-/* Size of the various events */
-#define IW_EV_CHAR_LEN (IW_EV_LCP_LEN + IFNAMSIZ)
-#define IW_EV_UINT_LEN (IW_EV_LCP_LEN + sizeof(__u32))
-#define IW_EV_FREQ_LEN (IW_EV_LCP_LEN + sizeof(struct iw_freq))
-#define IW_EV_PARAM_LEN (IW_EV_LCP_LEN + sizeof(struct iw_param))
-#define IW_EV_ADDR_LEN (IW_EV_LCP_LEN + sizeof(struct sockaddr))
-#define IW_EV_QUAL_LEN (IW_EV_LCP_LEN + sizeof(struct iw_quality))
-
-/* iw_point events are special. First, the payload (extra data) come at
- * the end of the event, so they are bigger than IW_EV_POINT_LEN. Second,
- * we omit the pointer, so start at an offset. */
-#define IW_EV_POINT_OFF (((char *) &(((struct iw_point *) NULL)->length)) - \
- (char *) NULL)
-#define IW_EV_POINT_LEN (IW_EV_LCP_LEN + sizeof(struct iw_point) - \
- IW_EV_POINT_OFF)
-
-#ifdef __KERNEL__
-#ifdef CONFIG_COMPAT
-struct __compat_iw_event {
- __u16 len; /* Real length of this stuff */
- __u16 cmd; /* Wireless IOCTL */
- compat_caddr_t pointer;
-};
-#define IW_EV_COMPAT_LCP_LEN offsetof(struct __compat_iw_event, pointer)
-#define IW_EV_COMPAT_POINT_OFF offsetof(struct compat_iw_point, length)
-
-/* Size of the various events for compat */
-#define IW_EV_COMPAT_CHAR_LEN (IW_EV_COMPAT_LCP_LEN + IFNAMSIZ)
-#define IW_EV_COMPAT_UINT_LEN (IW_EV_COMPAT_LCP_LEN + sizeof(__u32))
-#define IW_EV_COMPAT_FREQ_LEN (IW_EV_COMPAT_LCP_LEN + sizeof(struct iw_freq))
-#define IW_EV_COMPAT_PARAM_LEN (IW_EV_COMPAT_LCP_LEN + sizeof(struct iw_param))
-#define IW_EV_COMPAT_ADDR_LEN (IW_EV_COMPAT_LCP_LEN + sizeof(struct sockaddr))
-#define IW_EV_COMPAT_QUAL_LEN (IW_EV_COMPAT_LCP_LEN + sizeof(struct iw_quality))
-#define IW_EV_COMPAT_POINT_LEN \
- (IW_EV_COMPAT_LCP_LEN + sizeof(struct compat_iw_point) - \
- IW_EV_COMPAT_POINT_OFF)
-#endif
-#endif
-
-/* Size of the Event prefix when packed in stream */
-#define IW_EV_LCP_PK_LEN (4)
-/* Size of the various events when packed in stream */
-#define IW_EV_CHAR_PK_LEN (IW_EV_LCP_PK_LEN + IFNAMSIZ)
-#define IW_EV_UINT_PK_LEN (IW_EV_LCP_PK_LEN + sizeof(__u32))
-#define IW_EV_FREQ_PK_LEN (IW_EV_LCP_PK_LEN + sizeof(struct iw_freq))
-#define IW_EV_PARAM_PK_LEN (IW_EV_LCP_PK_LEN + sizeof(struct iw_param))
-#define IW_EV_ADDR_PK_LEN (IW_EV_LCP_PK_LEN + sizeof(struct sockaddr))
-#define IW_EV_QUAL_PK_LEN (IW_EV_LCP_PK_LEN + sizeof(struct iw_quality))
-#define IW_EV_POINT_PK_LEN (IW_EV_LCP_PK_LEN + 4)
-
-#endif /* _LINUX_WIRELESS_H */
diff --git a/ANDROID_3.4.5/include/linux/wl127x-rfkill.h b/ANDROID_3.4.5/include/linux/wl127x-rfkill.h
deleted file mode 100644
index 9057ec63..00000000
--- a/ANDROID_3.4.5/include/linux/wl127x-rfkill.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Bluetooth TI wl127x rfkill power control via GPIO
- *
- * Copyright (C) 2009 Motorola, Inc.
- * Copyright (C) 2008 Texas Instruments
- * Initial code: Pavan Savoy <pavan.savoy@gmail.com> (wl127x_power.c)
- *
- * 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
- *
- */
-
-#ifndef _LINUX_WL127X_RFKILL_H
-#define _LINUX_WL127X_RFKILL_H
-
-#include <linux/rfkill.h>
-
-struct wl127x_rfkill_platform_data {
- int nshutdown_gpio;
-
- struct rfkill *rfkill; /* for driver only */
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/wl12xx.h b/ANDROID_3.4.5/include/linux/wl12xx.h
deleted file mode 100644
index 0d637319..00000000
--- a/ANDROID_3.4.5/include/linux/wl12xx.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * This file is part of wl12xx
- *
- * Copyright (C) 2009 Nokia Corporation
- *
- * Contact: Luciano Coelho <luciano.coelho@nokia.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.
- *
- * 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 _LINUX_WL12XX_H
-#define _LINUX_WL12XX_H
-
-/* Reference clock values */
-enum {
- WL12XX_REFCLOCK_19 = 0, /* 19.2 MHz */
- WL12XX_REFCLOCK_26 = 1, /* 26 MHz */
- WL12XX_REFCLOCK_38 = 2, /* 38.4 MHz */
- WL12XX_REFCLOCK_52 = 3, /* 52 MHz */
- WL12XX_REFCLOCK_38_XTAL = 4, /* 38.4 MHz, XTAL */
- WL12XX_REFCLOCK_26_XTAL = 5, /* 26 MHz, XTAL */
-};
-
-/* TCXO clock values */
-enum {
- WL12XX_TCXOCLOCK_19_2 = 0, /* 19.2MHz */
- WL12XX_TCXOCLOCK_26 = 1, /* 26 MHz */
- WL12XX_TCXOCLOCK_38_4 = 2, /* 38.4MHz */
- WL12XX_TCXOCLOCK_52 = 3, /* 52 MHz */
- WL12XX_TCXOCLOCK_16_368 = 4, /* 16.368 MHz */
- WL12XX_TCXOCLOCK_32_736 = 5, /* 32.736 MHz */
- WL12XX_TCXOCLOCK_16_8 = 6, /* 16.8 MHz */
- WL12XX_TCXOCLOCK_33_6 = 7, /* 33.6 MHz */
-};
-
-struct wl12xx_platform_data {
- void (*set_power)(bool enable);
- /* SDIO only: IRQ number if WLAN_IRQ line is used, 0 for SDIO IRQs */
- int irq;
- bool use_eeprom;
- int board_ref_clock;
- int board_tcxo_clock;
- unsigned long platform_quirks;
- bool pwr_in_suspend;
-
- struct wl1271_if_operations *ops;
-};
-
-/* Platform does not support level trigger interrupts */
-#define WL12XX_PLATFORM_QUIRK_EDGE_IRQ BIT(0)
-
-#ifdef CONFIG_WL12XX_PLATFORM_DATA
-
-int wl12xx_set_platform_data(const struct wl12xx_platform_data *data);
-
-#else
-
-static inline
-int wl12xx_set_platform_data(const struct wl12xx_platform_data *data)
-{
- return -ENOSYS;
-}
-
-#endif
-
-struct wl12xx_platform_data *wl12xx_get_platform_data(void);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/wlan_plat.h b/ANDROID_3.4.5/include/linux/wlan_plat.h
deleted file mode 100644
index 40ec3482..00000000
--- a/ANDROID_3.4.5/include/linux/wlan_plat.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* include/linux/wlan_plat.h
- *
- * Copyright (C) 2010 Google, Inc.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- */
-#ifndef _LINUX_WLAN_PLAT_H_
-#define _LINUX_WLAN_PLAT_H_
-
-struct wifi_platform_data {
- int (*set_power)(int val);
- int (*set_reset)(int val);
- int (*set_carddetect)(int val);
- void *(*mem_prealloc)(int section, unsigned long size);
- int (*get_mac_addr)(unsigned char *buf);
- void *(*get_country_code)(char *ccode);
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/wm97xx.h b/ANDROID_3.4.5/include/linux/wm97xx.h
deleted file mode 100644
index fd98bb96..00000000
--- a/ANDROID_3.4.5/include/linux/wm97xx.h
+++ /dev/null
@@ -1,337 +0,0 @@
-
-/*
- * Register bits and API for Wolfson WM97xx series of codecs
- */
-
-#ifndef _LINUX_WM97XX_H
-#define _LINUX_WM97XX_H
-
-#include <sound/core.h>
-#include <sound/pcm.h>
-#include <sound/ac97_codec.h>
-#include <sound/initval.h>
-#include <linux/types.h>
-#include <linux/list.h>
-#include <linux/input.h> /* Input device layer */
-#include <linux/platform_device.h>
-
-/*
- * WM97xx variants
- */
-#define WM97xx_GENERIC 0x0000
-#define WM97xx_WM1613 0x1613
-
-/*
- * WM97xx AC97 Touchscreen registers
- */
-#define AC97_WM97XX_DIGITISER1 0x76
-#define AC97_WM97XX_DIGITISER2 0x78
-#define AC97_WM97XX_DIGITISER_RD 0x7a
-#define AC97_WM9713_DIG1 0x74
-#define AC97_WM9713_DIG2 AC97_WM97XX_DIGITISER1
-#define AC97_WM9713_DIG3 AC97_WM97XX_DIGITISER2
-
-/*
- * WM97xx register bits
- */
-#define WM97XX_POLL 0x8000 /* initiate a polling measurement */
-#define WM97XX_ADCSEL_X 0x1000 /* x coord measurement */
-#define WM97XX_ADCSEL_Y 0x2000 /* y coord measurement */
-#define WM97XX_ADCSEL_PRES 0x3000 /* pressure measurement */
-#define WM97XX_AUX_ID1 0x4000
-#define WM97XX_AUX_ID2 0x5000
-#define WM97XX_AUX_ID3 0x6000
-#define WM97XX_AUX_ID4 0x7000
-#define WM97XX_ADCSEL_MASK 0x7000 /* ADC selection mask */
-#define WM97XX_COO 0x0800 /* enable coordinate mode */
-#define WM97XX_CTC 0x0400 /* enable continuous mode */
-#define WM97XX_CM_RATE_93 0x0000 /* 93.75Hz continuous rate */
-#define WM97XX_CM_RATE_187 0x0100 /* 187.5Hz continuous rate */
-#define WM97XX_CM_RATE_375 0x0200 /* 375Hz continuous rate */
-#define WM97XX_CM_RATE_750 0x0300 /* 750Hz continuous rate */
-#define WM97XX_CM_RATE_8K 0x00f0 /* 8kHz continuous rate */
-#define WM97XX_CM_RATE_12K 0x01f0 /* 12kHz continuous rate */
-#define WM97XX_CM_RATE_24K 0x02f0 /* 24kHz continuous rate */
-#define WM97XX_CM_RATE_48K 0x03f0 /* 48kHz continuous rate */
-#define WM97XX_CM_RATE_MASK 0x03f0
-#define WM97XX_RATE(i) (((i & 3) << 8) | ((i & 4) ? 0xf0 : 0))
-#define WM97XX_DELAY(i) ((i << 4) & 0x00f0) /* sample delay times */
-#define WM97XX_DELAY_MASK 0x00f0
-#define WM97XX_SLEN 0x0008 /* slot read back enable */
-#define WM97XX_SLT(i) ((i - 5) & 0x7) /* panel slot (5-11) */
-#define WM97XX_SLT_MASK 0x0007
-#define WM97XX_PRP_DETW 0x4000 /* detect on, digitise off, wake */
-#define WM97XX_PRP_DET 0x8000 /* detect on, digitise off, no wake */
-#define WM97XX_PRP_DET_DIG 0xc000 /* setect on, digitise on */
-#define WM97XX_RPR 0x2000 /* wake up on pen down */
-#define WM97XX_PEN_DOWN 0x8000 /* pen is down */
-
-/* WM9712 Bits */
-#define WM9712_45W 0x1000 /* set for 5-wire touchscreen */
-#define WM9712_PDEN 0x0800 /* measure only when pen down */
-#define WM9712_WAIT 0x0200 /* wait until adc is read before next sample */
-#define WM9712_PIL 0x0100 /* current used for pressure measurement. set 400uA else 200uA */
-#define WM9712_MASK_HI 0x0040 /* hi on mask pin (47) stops conversions */
-#define WM9712_MASK_EDGE 0x0080 /* rising/falling edge on pin delays sample */
-#define WM9712_MASK_SYNC 0x00c0 /* rising/falling edge on mask initiates sample */
-#define WM9712_RPU(i) (i&0x3f) /* internal pull up on pen detect (64k / rpu) */
-#define WM9712_PD(i) (0x1 << i) /* power management */
-
-/* WM9712 Registers */
-#define AC97_WM9712_POWER 0x24
-#define AC97_WM9712_REV 0x58
-
-/* WM9705 Bits */
-#define WM9705_PDEN 0x1000 /* measure only when pen is down */
-#define WM9705_PINV 0x0800 /* inverts sense of pen down output */
-#define WM9705_BSEN 0x0400 /* BUSY flag enable, pin47 is 1 when busy */
-#define WM9705_BINV 0x0200 /* invert BUSY (pin47) output */
-#define WM9705_WAIT 0x0100 /* wait until adc is read before next sample */
-#define WM9705_PIL 0x0080 /* current used for pressure measurement. set 400uA else 200uA */
-#define WM9705_PHIZ 0x0040 /* set PHONE and PCBEEP inputs to high impedance */
-#define WM9705_MASK_HI 0x0010 /* hi on mask stops conversions */
-#define WM9705_MASK_EDGE 0x0020 /* rising/falling edge on pin delays sample */
-#define WM9705_MASK_SYNC 0x0030 /* rising/falling edge on mask initiates sample */
-#define WM9705_PDD(i) (i & 0x000f) /* pen detect comparator threshold */
-
-
-/* WM9713 Bits */
-#define WM9713_PDPOL 0x0400 /* Pen down polarity */
-#define WM9713_POLL 0x0200 /* initiate a polling measurement */
-#define WM9713_CTC 0x0100 /* enable continuous mode */
-#define WM9713_ADCSEL_X 0x0002 /* X measurement */
-#define WM9713_ADCSEL_Y 0x0004 /* Y measurement */
-#define WM9713_ADCSEL_PRES 0x0008 /* Pressure measurement */
-#define WM9713_COO 0x0001 /* enable coordinate mode */
-#define WM9713_45W 0x1000 /* set for 5 wire panel */
-#define WM9713_PDEN 0x0800 /* measure only when pen down */
-#define WM9713_ADCSEL_MASK 0x00fe /* ADC selection mask */
-#define WM9713_WAIT 0x0200 /* coordinate wait */
-
-/* AUX ADC ID's */
-#define TS_COMP1 0x0
-#define TS_COMP2 0x1
-#define TS_BMON 0x2
-#define TS_WIPER 0x3
-
-/* ID numbers */
-#define WM97XX_ID1 0x574d
-#define WM9712_ID2 0x4c12
-#define WM9705_ID2 0x4c05
-#define WM9713_ID2 0x4c13
-
-/* Codec GPIO's */
-#define WM97XX_MAX_GPIO 16
-#define WM97XX_GPIO_1 (1 << 1)
-#define WM97XX_GPIO_2 (1 << 2)
-#define WM97XX_GPIO_3 (1 << 3)
-#define WM97XX_GPIO_4 (1 << 4)
-#define WM97XX_GPIO_5 (1 << 5)
-#define WM97XX_GPIO_6 (1 << 6)
-#define WM97XX_GPIO_7 (1 << 7)
-#define WM97XX_GPIO_8 (1 << 8)
-#define WM97XX_GPIO_9 (1 << 9)
-#define WM97XX_GPIO_10 (1 << 10)
-#define WM97XX_GPIO_11 (1 << 11)
-#define WM97XX_GPIO_12 (1 << 12)
-#define WM97XX_GPIO_13 (1 << 13)
-#define WM97XX_GPIO_14 (1 << 14)
-#define WM97XX_GPIO_15 (1 << 15)
-
-
-#define AC97_LINK_FRAME 21 /* time in uS for AC97 link frame */
-
-
-/*---------------- Return codes from sample reading functions ---------------*/
-
-/* More data is available; call the sample gathering function again */
-#define RC_AGAIN 0x00000001
-/* The returned sample is valid */
-#define RC_VALID 0x00000002
-/* The pen is up (the first RC_VALID without RC_PENUP means pen is down) */
-#define RC_PENUP 0x00000004
-/* The pen is down (RC_VALID implies RC_PENDOWN, but sometimes it is helpful
- to tell the handler that the pen is down but we don't know yet his coords,
- so the handler should not sleep or wait for pendown irq) */
-#define RC_PENDOWN 0x00000008
-
-/*
- * The wm97xx driver provides a private API for writing platform-specific
- * drivers.
- */
-
-/* The structure used to return arch specific sampled data into */
-struct wm97xx_data {
- int x;
- int y;
- int p;
-};
-
-/*
- * Codec GPIO status
- */
-enum wm97xx_gpio_status {
- WM97XX_GPIO_HIGH,
- WM97XX_GPIO_LOW
-};
-
-/*
- * Codec GPIO direction
- */
-enum wm97xx_gpio_dir {
- WM97XX_GPIO_IN,
- WM97XX_GPIO_OUT
-};
-
-/*
- * Codec GPIO polarity
- */
-enum wm97xx_gpio_pol {
- WM97XX_GPIO_POL_HIGH,
- WM97XX_GPIO_POL_LOW
-};
-
-/*
- * Codec GPIO sticky
- */
-enum wm97xx_gpio_sticky {
- WM97XX_GPIO_STICKY,
- WM97XX_GPIO_NOTSTICKY
-};
-
-/*
- * Codec GPIO wake
- */
-enum wm97xx_gpio_wake {
- WM97XX_GPIO_WAKE,
- WM97XX_GPIO_NOWAKE
-};
-
-/*
- * Digitiser ioctl commands
- */
-#define WM97XX_DIG_START 0x1
-#define WM97XX_DIG_STOP 0x2
-#define WM97XX_PHY_INIT 0x3
-#define WM97XX_AUX_PREPARE 0x4
-#define WM97XX_DIG_RESTORE 0x5
-
-struct wm97xx;
-
-extern struct wm97xx_codec_drv wm9705_codec;
-extern struct wm97xx_codec_drv wm9712_codec;
-extern struct wm97xx_codec_drv wm9713_codec;
-
-/*
- * Codec driver interface - allows mapping to WM9705/12/13 and newer codecs
- */
-struct wm97xx_codec_drv {
- u16 id;
- char *name;
-
- /* read 1 sample */
- int (*poll_sample) (struct wm97xx *, int adcsel, int *sample);
-
- /* read X,Y,[P] in poll */
- int (*poll_touch) (struct wm97xx *, struct wm97xx_data *);
-
- int (*acc_enable) (struct wm97xx *, int enable);
- void (*phy_init) (struct wm97xx *);
- void (*dig_enable) (struct wm97xx *, int enable);
- void (*dig_restore) (struct wm97xx *);
- void (*aux_prepare) (struct wm97xx *);
-};
-
-
-/* Machine specific and accelerated touch operations */
-struct wm97xx_mach_ops {
-
- /* accelerated touch readback - coords are transmited on AC97 link */
- int acc_enabled;
- void (*acc_pen_up) (struct wm97xx *);
- int (*acc_pen_down) (struct wm97xx *);
- int (*acc_startup) (struct wm97xx *);
- void (*acc_shutdown) (struct wm97xx *);
-
- /* interrupt mask control - required for accelerated operation */
- void (*irq_enable) (struct wm97xx *, int enable);
-
- /* GPIO pin used for accelerated operation */
- int irq_gpio;
-
- /* pre and post sample - can be used to minimise any analog noise */
- void (*pre_sample) (int); /* function to run before sampling */
- void (*post_sample) (int); /* function to run after sampling */
-};
-
-struct wm97xx {
- u16 dig[3], id, gpio[6], misc; /* Cached codec registers */
- u16 dig_save[3]; /* saved during aux reading */
- struct wm97xx_codec_drv *codec; /* attached codec driver*/
- struct input_dev *input_dev; /* touchscreen input device */
- struct snd_ac97 *ac97; /* ALSA codec access */
- struct device *dev; /* ALSA device */
- struct platform_device *battery_dev;
- struct platform_device *touch_dev;
- struct wm97xx_mach_ops *mach_ops;
- struct mutex codec_mutex;
- struct delayed_work ts_reader; /* Used to poll touchscreen */
- unsigned long ts_reader_interval; /* Current interval for timer */
- unsigned long ts_reader_min_interval; /* Minimum interval */
- unsigned int pen_irq; /* Pen IRQ number in use */
- struct workqueue_struct *ts_workq;
- struct work_struct pen_event_work;
- u16 acc_slot; /* AC97 slot used for acc touch data */
- u16 acc_rate; /* acc touch data rate */
- unsigned pen_is_down:1; /* Pen is down */
- unsigned aux_waiting:1; /* aux measurement waiting */
- unsigned pen_probably_down:1; /* used in polling mode */
- u16 variant; /* WM97xx chip variant */
- u16 suspend_mode; /* PRP in suspend mode */
-};
-
-struct wm97xx_batt_pdata {
- int batt_aux;
- int temp_aux;
- int charge_gpio;
- int min_voltage;
- int max_voltage;
- int batt_div;
- int batt_mult;
- int temp_div;
- int temp_mult;
- int batt_tech;
- char *batt_name;
-};
-
-struct wm97xx_pdata {
- struct wm97xx_batt_pdata *batt_pdata; /* battery data */
-};
-
-/*
- * Codec GPIO access (not supported on WM9705)
- * This can be used to set/get codec GPIO and Virtual GPIO status.
- */
-enum wm97xx_gpio_status wm97xx_get_gpio(struct wm97xx *wm, u32 gpio);
-void wm97xx_set_gpio(struct wm97xx *wm, u32 gpio,
- enum wm97xx_gpio_status status);
-void wm97xx_config_gpio(struct wm97xx *wm, u32 gpio,
- enum wm97xx_gpio_dir dir,
- enum wm97xx_gpio_pol pol,
- enum wm97xx_gpio_sticky sticky,
- enum wm97xx_gpio_wake wake);
-
-void wm97xx_set_suspend_mode(struct wm97xx *wm, u16 mode);
-
-/* codec AC97 IO access */
-int wm97xx_reg_read(struct wm97xx *wm, u16 reg);
-void wm97xx_reg_write(struct wm97xx *wm, u16 reg, u16 val);
-
-/* aux adc readback */
-int wm97xx_read_aux_adc(struct wm97xx *wm, u16 adcsel);
-
-/* machine ops */
-int wm97xx_register_mach_ops(struct wm97xx *, struct wm97xx_mach_ops *);
-void wm97xx_unregister_mach_ops(struct wm97xx *);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/wmt-efuse-stub.h b/ANDROID_3.4.5/include/linux/wmt-efuse-stub.h
deleted file mode 100755
index d0111014..00000000
--- a/ANDROID_3.4.5/include/linux/wmt-efuse-stub.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*++
- *
- * Copyright c 2014 WonderMedia Technologies, Inc.
- *
- * 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, see <http://www.gnu.org/licenses/>.
- *
- * WonderMedia Technologies, Inc.
- * 4F, 533, Chung-Cheng Road, Hsin-Tien, Taipei 231, R.O.C
---*/
-
-#ifndef WMT_EFUSE_STUB_H
-/* To assert that only one occurrence is included */
-#define WMT_EFUSE_STUB_H
-
-typedef int (*EFUSE_READ_OTP_STUB) (int type, unsigned char *rbuf, int rlen);
-
-extern EFUSE_READ_OTP_STUB wmt_efuse_read_otp;
-
-#endif /* ifndef WMT_EFUSE_STUB */
-
-/*=== END wmt-efuse-stub.h ==========================================================*/
diff --git a/ANDROID_3.4.5/include/linux/wmt-mb.h b/ANDROID_3.4.5/include/linux/wmt-mb.h
deleted file mode 100755
index c5f3ae84..00000000
--- a/ANDROID_3.4.5/include/linux/wmt-mb.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/*++
- * WonderMedia Memory Block driver
- *
- * Copyright c 2010 WonderMedia Technologies, Inc.
- *
- * 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, see <http://www.gnu.org/licenses/>.
- *
- * WonderMedia Technologies, Inc.
- * 10F, 529, Chung-Cheng Road, Hsin-Tien, Taipei 231, R.O.C
---*/
-#ifndef MEMBLOCK_H
-#define MEMBLOCK_H
-
-#include <linux/types.h>
-
-struct prdt_struct{
- unsigned int addr;
- unsigned short size;
- unsigned short reserve : 15;
- unsigned short EDT : 1;
-}__attribute__((packed)) ;
-
-struct mmu_table_info{
- unsigned int addr;
- unsigned int size;
- unsigned int offset;
-}__attribute__((packed)) ;
-
-// 1 presents the task init that would never be released
-#define MB_DEF_TGID 0
-
-#ifdef CONFIG_WMT_MB_RESERVE_FROM_IO
-#define mb_virt_to_phys(v) mb_do_virt_to_phys(v,MB_DEF_TGID,THE_MB_USER)
-#define mb_phys_to_virt(p) mb_do_phys_to_virt(p,MB_DEF_TGID,THE_MB_USER)
-#else
-#define mb_virt_to_phys(v) virt_to_phys(v)
-#define mb_phys_to_virt(p) phys_to_virt(p)
-#endif
-#define mb_user_to_virt(u) mb_do_user_to_virt(u,MB_DEF_TGID,THE_MB_USER)
-#define mb_user_to_phys(u) mb_do_user_to_phys(u,MB_DEF_TGID,THE_MB_USER)
-/* all addresses are physical */
-#define mb_alloc(s) mb_do_alloc(s,MB_DEF_TGID,THE_MB_USER)
-#define mb_free(p) mb_do_free(p,MB_DEF_TGID,THE_MB_USER)
-#define mb_get(p) mb_do_get(p,MB_DEF_TGID,THE_MB_USER)
-#define mb_put(p) mb_do_put(p,MB_DEF_TGID,THE_MB_USER)
-#define mb_counter(p) mb_do_counter(p,THE_MB_USER)
-
-void *mb_do_phys_to_virt(unsigned long phys, pid_t, char *);
-unsigned long mb_do_virt_to_phys(void *virt, pid_t, char *);
-unsigned long mb_do_user_to_virt(unsigned long, pid_t, char *);
-unsigned long mb_do_user_to_phys(unsigned long, pid_t, char *);
-unsigned long mb_do_alloc(unsigned long, pid_t, char *);
-int mb_do_free(unsigned long, pid_t, char *);
-int mb_do_get(unsigned long, pid_t, char *);
-int mb_do_put(unsigned long, pid_t, char *);
-int mb_do_counter(unsigned long, char *);
-
-int user_to_prdt(
- unsigned long user,
- unsigned int size,
- struct prdt_struct *next,
- unsigned int items);
-
-unsigned int wmt_mmu_table_size(unsigned int size);
-void wmt_mmu_table_dump(struct mmu_table_info *info);
-int wmt_mmu_table_check(
- unsigned int mmuPhys,
- unsigned int mmuSize,
- unsigned int size);
-unsigned int wmt_mmu_table_from_phys(
- unsigned int mmuPhys,
- unsigned int mmuSize,
- unsigned int addr,
- unsigned int size);
-unsigned int wmt_mmu_table_from_user(
- unsigned int mmuPhys,
- unsigned int mmuSize,
- unsigned int user,
- unsigned int size);
-unsigned int wmt_mmu_table_create(
- unsigned int addr,
- unsigned int size,
- unsigned int addrType,
- struct mmu_table_info *info);
-unsigned int wmt_mmu_table_destroy(struct mmu_table_info *info);
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/wmt-se.h b/ANDROID_3.4.5/include/linux/wmt-se.h
deleted file mode 100755
index 41382643..00000000
--- a/ANDROID_3.4.5/include/linux/wmt-se.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*++
- * WonderMedia cipher driver
- *
- * Copyright c 2012 WonderMedia Technologies, Inc.
- *
- * 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, see <http://www.gnu.org/licenses/>.
- *
- * WonderMedia Technologies, Inc.
- * 4F, 533, Chung-Cheng Road, Hsin-Tien, Taipei 231, R.O.C
---*/
-
-#ifndef WMT_SE_H
-/* To assert that only one occurrence is included */
-#define WMT_SE_H
-
-
-typedef int (*SE_FPTR)(unsigned char *buf_in, unsigned char *buf_out, int buf_len);
-
-extern SE_FPTR wmt_se_aes;
-extern SE_FPTR wmt_se_aes_core;
-extern SE_FPTR wmt_se_sha;
-
-
-#endif /* ifndef WMT_SE_H */
-
-/*=== END wmt-se.h ==========================================================*/
diff --git a/ANDROID_3.4.5/include/linux/wmt_battery.h b/ANDROID_3.4.5/include/linux/wmt_battery.h
deleted file mode 100755
index eaca14c1..00000000
--- a/ANDROID_3.4.5/include/linux/wmt_battery.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*++
-linux/arch/arm/mach-wmt/board.c
-
-Copyright (c) 2008 WonderMedia Technologies, Inc.
-
-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, see <http://www.gnu.org/licenses/>.
-
-WonderMedia Technologies, Inc.
-10F, 529, Chung-Cheng Road, Hsin-Tien, Taipei 231, R.O.C.
---*/
-#ifndef _LINUX_WMT_BAT_H
-#define _LINUX_WMT_BAT_H
-
-
-struct wmt_battery_info {
- int batt_aux;
- int temp_aux;
- int charge_gpio;
- int min_voltage;
- int max_voltage;
- int batt_div;
- int batt_mult;
- int temp_div;
- int temp_mult;
- int batt_tech;
- char *batt_name;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/workqueue.h b/ANDROID_3.4.5/include/linux/workqueue.h
deleted file mode 100644
index af155450..00000000
--- a/ANDROID_3.4.5/include/linux/workqueue.h
+++ /dev/null
@@ -1,450 +0,0 @@
-/*
- * workqueue.h --- work queue handling for Linux.
- */
-
-#ifndef _LINUX_WORKQUEUE_H
-#define _LINUX_WORKQUEUE_H
-
-#include <linux/timer.h>
-#include <linux/linkage.h>
-#include <linux/bitops.h>
-#include <linux/lockdep.h>
-#include <linux/threads.h>
-#include <linux/atomic.h>
-
-struct workqueue_struct;
-
-struct work_struct;
-typedef void (*work_func_t)(struct work_struct *work);
-
-/*
- * The first word is the work queue pointer and the flags rolled into
- * one
- */
-#define work_data_bits(work) ((unsigned long *)(&(work)->data))
-
-enum {
- WORK_STRUCT_PENDING_BIT = 0, /* work item is pending execution */
- WORK_STRUCT_DELAYED_BIT = 1, /* work item is delayed */
- WORK_STRUCT_CWQ_BIT = 2, /* data points to cwq */
- WORK_STRUCT_LINKED_BIT = 3, /* next work is linked to this one */
-#ifdef CONFIG_DEBUG_OBJECTS_WORK
- WORK_STRUCT_STATIC_BIT = 4, /* static initializer (debugobjects) */
- WORK_STRUCT_COLOR_SHIFT = 5, /* color for workqueue flushing */
-#else
- WORK_STRUCT_COLOR_SHIFT = 4, /* color for workqueue flushing */
-#endif
-
- WORK_STRUCT_COLOR_BITS = 4,
-
- WORK_STRUCT_PENDING = 1 << WORK_STRUCT_PENDING_BIT,
- WORK_STRUCT_DELAYED = 1 << WORK_STRUCT_DELAYED_BIT,
- WORK_STRUCT_CWQ = 1 << WORK_STRUCT_CWQ_BIT,
- WORK_STRUCT_LINKED = 1 << WORK_STRUCT_LINKED_BIT,
-#ifdef CONFIG_DEBUG_OBJECTS_WORK
- WORK_STRUCT_STATIC = 1 << WORK_STRUCT_STATIC_BIT,
-#else
- WORK_STRUCT_STATIC = 0,
-#endif
-
- /*
- * The last color is no color used for works which don't
- * participate in workqueue flushing.
- */
- WORK_NR_COLORS = (1 << WORK_STRUCT_COLOR_BITS) - 1,
- WORK_NO_COLOR = WORK_NR_COLORS,
-
- /* special cpu IDs */
- WORK_CPU_UNBOUND = NR_CPUS,
- WORK_CPU_NONE = NR_CPUS + 1,
- WORK_CPU_LAST = WORK_CPU_NONE,
-
- /*
- * Reserve 7 bits off of cwq pointer w/ debugobjects turned
- * off. This makes cwqs aligned to 256 bytes and allows 15
- * workqueue flush colors.
- */
- WORK_STRUCT_FLAG_BITS = WORK_STRUCT_COLOR_SHIFT +
- WORK_STRUCT_COLOR_BITS,
-
- WORK_STRUCT_FLAG_MASK = (1UL << WORK_STRUCT_FLAG_BITS) - 1,
- WORK_STRUCT_WQ_DATA_MASK = ~WORK_STRUCT_FLAG_MASK,
- WORK_STRUCT_NO_CPU = WORK_CPU_NONE << WORK_STRUCT_FLAG_BITS,
-
- /* bit mask for work_busy() return values */
- WORK_BUSY_PENDING = 1 << 0,
- WORK_BUSY_RUNNING = 1 << 1,
-};
-
-struct work_struct {
- atomic_long_t data;
- struct list_head entry;
- work_func_t func;
-#ifdef CONFIG_LOCKDEP
- struct lockdep_map lockdep_map;
-#endif
-};
-
-#define WORK_DATA_INIT() ATOMIC_LONG_INIT(WORK_STRUCT_NO_CPU)
-#define WORK_DATA_STATIC_INIT() \
- ATOMIC_LONG_INIT(WORK_STRUCT_NO_CPU | WORK_STRUCT_STATIC)
-
-struct delayed_work {
- struct work_struct work;
- struct timer_list timer;
-};
-
-static inline struct delayed_work *to_delayed_work(struct work_struct *work)
-{
- return container_of(work, struct delayed_work, work);
-}
-
-struct execute_work {
- struct work_struct work;
-};
-
-#ifdef CONFIG_LOCKDEP
-/*
- * NB: because we have to copy the lockdep_map, setting _key
- * here is required, otherwise it could get initialised to the
- * copy of the lockdep_map!
- */
-#define __WORK_INIT_LOCKDEP_MAP(n, k) \
- .lockdep_map = STATIC_LOCKDEP_MAP_INIT(n, k),
-#else
-#define __WORK_INIT_LOCKDEP_MAP(n, k)
-#endif
-
-#define __WORK_INITIALIZER(n, f) { \
- .data = WORK_DATA_STATIC_INIT(), \
- .entry = { &(n).entry, &(n).entry }, \
- .func = (f), \
- __WORK_INIT_LOCKDEP_MAP(#n, &(n)) \
- }
-
-#define __DELAYED_WORK_INITIALIZER(n, f) { \
- .work = __WORK_INITIALIZER((n).work, (f)), \
- .timer = TIMER_INITIALIZER(NULL, 0, 0), \
- }
-
-#define __DEFERRED_WORK_INITIALIZER(n, f) { \
- .work = __WORK_INITIALIZER((n).work, (f)), \
- .timer = TIMER_DEFERRED_INITIALIZER(NULL, 0, 0), \
- }
-
-#define DECLARE_WORK(n, f) \
- struct work_struct n = __WORK_INITIALIZER(n, f)
-
-#define DECLARE_DELAYED_WORK(n, f) \
- struct delayed_work n = __DELAYED_WORK_INITIALIZER(n, f)
-
-#define DECLARE_DEFERRED_WORK(n, f) \
- struct delayed_work n = __DEFERRED_WORK_INITIALIZER(n, f)
-
-/*
- * initialize a work item's function pointer
- */
-#define PREPARE_WORK(_work, _func) \
- do { \
- (_work)->func = (_func); \
- } while (0)
-
-#define PREPARE_DELAYED_WORK(_work, _func) \
- PREPARE_WORK(&(_work)->work, (_func))
-
-#ifdef CONFIG_DEBUG_OBJECTS_WORK
-extern void __init_work(struct work_struct *work, int onstack);
-extern void destroy_work_on_stack(struct work_struct *work);
-static inline unsigned int work_static(struct work_struct *work)
-{
- return *work_data_bits(work) & WORK_STRUCT_STATIC;
-}
-#else
-static inline void __init_work(struct work_struct *work, int onstack) { }
-static inline void destroy_work_on_stack(struct work_struct *work) { }
-static inline unsigned int work_static(struct work_struct *work) { return 0; }
-#endif
-
-/*
- * initialize all of a work item in one go
- *
- * NOTE! No point in using "atomic_long_set()": using a direct
- * assignment of the work data initializer allows the compiler
- * to generate better code.
- */
-#ifdef CONFIG_LOCKDEP
-#define __INIT_WORK(_work, _func, _onstack) \
- do { \
- static struct lock_class_key __key; \
- \
- __init_work((_work), _onstack); \
- (_work)->data = (atomic_long_t) WORK_DATA_INIT(); \
- lockdep_init_map(&(_work)->lockdep_map, #_work, &__key, 0);\
- INIT_LIST_HEAD(&(_work)->entry); \
- PREPARE_WORK((_work), (_func)); \
- } while (0)
-#else
-#define __INIT_WORK(_work, _func, _onstack) \
- do { \
- __init_work((_work), _onstack); \
- (_work)->data = (atomic_long_t) WORK_DATA_INIT(); \
- INIT_LIST_HEAD(&(_work)->entry); \
- PREPARE_WORK((_work), (_func)); \
- } while (0)
-#endif
-
-#define INIT_WORK(_work, _func) \
- do { \
- __INIT_WORK((_work), (_func), 0); \
- } while (0)
-
-#define INIT_WORK_ONSTACK(_work, _func) \
- do { \
- __INIT_WORK((_work), (_func), 1); \
- } while (0)
-
-#define INIT_DELAYED_WORK(_work, _func) \
- do { \
- INIT_WORK(&(_work)->work, (_func)); \
- init_timer(&(_work)->timer); \
- } while (0)
-
-#define INIT_DELAYED_WORK_ONSTACK(_work, _func) \
- do { \
- INIT_WORK_ONSTACK(&(_work)->work, (_func)); \
- init_timer_on_stack(&(_work)->timer); \
- } while (0)
-
-#define INIT_DELAYED_WORK_DEFERRABLE(_work, _func) \
- do { \
- INIT_WORK(&(_work)->work, (_func)); \
- init_timer_deferrable(&(_work)->timer); \
- } while (0)
-
-/**
- * work_pending - Find out whether a work item is currently pending
- * @work: The work item in question
- */
-#define work_pending(work) \
- test_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))
-
-/**
- * delayed_work_pending - Find out whether a delayable work item is currently
- * pending
- * @work: The work item in question
- */
-#define delayed_work_pending(w) \
- work_pending(&(w)->work)
-
-/**
- * work_clear_pending - for internal use only, mark a work item as not pending
- * @work: The work item in question
- */
-#define work_clear_pending(work) \
- clear_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))
-
-/*
- * Workqueue flags and constants. For details, please refer to
- * Documentation/workqueue.txt.
- */
-enum {
- WQ_NON_REENTRANT = 1 << 0, /* guarantee non-reentrance */
- WQ_UNBOUND = 1 << 1, /* not bound to any cpu */
- WQ_FREEZABLE = 1 << 2, /* freeze during suspend */
- WQ_MEM_RECLAIM = 1 << 3, /* may be used for memory reclaim */
- WQ_HIGHPRI = 1 << 4, /* high priority */
- WQ_CPU_INTENSIVE = 1 << 5, /* cpu instensive workqueue */
-
- WQ_DRAINING = 1 << 6, /* internal: workqueue is draining */
- WQ_RESCUER = 1 << 7, /* internal: workqueue has rescuer */
-
- WQ_MAX_ACTIVE = 512, /* I like 512, better ideas? */
- WQ_MAX_UNBOUND_PER_CPU = 4, /* 4 * #cpus for unbound wq */
- WQ_DFL_ACTIVE = WQ_MAX_ACTIVE / 2,
-};
-
-/* unbound wq's aren't per-cpu, scale max_active according to #cpus */
-#define WQ_UNBOUND_MAX_ACTIVE \
- max_t(int, WQ_MAX_ACTIVE, num_possible_cpus() * WQ_MAX_UNBOUND_PER_CPU)
-
-/*
- * System-wide workqueues which are always present.
- *
- * system_wq is the one used by schedule[_delayed]_work[_on]().
- * Multi-CPU multi-threaded. There are users which expect relatively
- * short queue flush time. Don't queue works which can run for too
- * long.
- *
- * system_long_wq is similar to system_wq but may host long running
- * works. Queue flushing might take relatively long.
- *
- * system_nrt_wq is non-reentrant and guarantees that any given work
- * item is never executed in parallel by multiple CPUs. Queue
- * flushing might take relatively long.
- *
- * system_unbound_wq is unbound workqueue. Workers are not bound to
- * any specific CPU, not concurrency managed, and all queued works are
- * executed immediately as long as max_active limit is not reached and
- * resources are available.
- *
- * system_freezable_wq is equivalent to system_wq except that it's
- * freezable.
- *
- * system_nrt_freezable_wq is equivalent to system_nrt_wq except that
- * it's freezable.
- */
-extern struct workqueue_struct *system_wq;
-extern struct workqueue_struct *system_long_wq;
-extern struct workqueue_struct *system_nrt_wq;
-extern struct workqueue_struct *system_unbound_wq;
-extern struct workqueue_struct *system_freezable_wq;
-extern struct workqueue_struct *system_nrt_freezable_wq;
-
-extern struct workqueue_struct *
-__alloc_workqueue_key(const char *fmt, unsigned int flags, int max_active,
- struct lock_class_key *key, const char *lock_name, ...) __printf(1, 6);
-
-/**
- * alloc_workqueue - allocate a workqueue
- * @fmt: printf format for the name of the workqueue
- * @flags: WQ_* flags
- * @max_active: max in-flight work items, 0 for default
- * @args: args for @fmt
- *
- * Allocate a workqueue with the specified parameters. For detailed
- * information on WQ_* flags, please refer to Documentation/workqueue.txt.
- *
- * The __lock_name macro dance is to guarantee that single lock_class_key
- * doesn't end up with different namesm, which isn't allowed by lockdep.
- *
- * RETURNS:
- * Pointer to the allocated workqueue on success, %NULL on failure.
- */
-#ifdef CONFIG_LOCKDEP
-#define alloc_workqueue(fmt, flags, max_active, args...) \
-({ \
- static struct lock_class_key __key; \
- const char *__lock_name; \
- \
- if (__builtin_constant_p(fmt)) \
- __lock_name = (fmt); \
- else \
- __lock_name = #fmt; \
- \
- __alloc_workqueue_key((fmt), (flags), (max_active), \
- &__key, __lock_name, ##args); \
-})
-#else
-#define alloc_workqueue(fmt, flags, max_active, args...) \
- __alloc_workqueue_key((fmt), (flags), (max_active), \
- NULL, NULL, ##args)
-#endif
-
-/**
- * alloc_ordered_workqueue - allocate an ordered workqueue
- * @fmt: printf format for the name of the workqueue
- * @flags: WQ_* flags (only WQ_FREEZABLE and WQ_MEM_RECLAIM are meaningful)
- * @args: args for @fmt
- *
- * Allocate an ordered workqueue. An ordered workqueue executes at
- * most one work item at any given time in the queued order. They are
- * implemented as unbound workqueues with @max_active of one.
- *
- * RETURNS:
- * Pointer to the allocated workqueue on success, %NULL on failure.
- */
-#define alloc_ordered_workqueue(fmt, flags, args...) \
- alloc_workqueue(fmt, WQ_UNBOUND | (flags), 1, ##args)
-
-#define create_workqueue(name) \
- alloc_workqueue((name), WQ_MEM_RECLAIM, 1)
-#define create_freezable_workqueue(name) \
- alloc_workqueue((name), WQ_FREEZABLE | WQ_UNBOUND | WQ_MEM_RECLAIM, 1)
-#define create_singlethread_workqueue(name) \
- alloc_workqueue((name), WQ_UNBOUND | WQ_MEM_RECLAIM, 1)
-
-extern void destroy_workqueue(struct workqueue_struct *wq);
-
-extern int queue_work(struct workqueue_struct *wq, struct work_struct *work);
-extern int queue_work_on(int cpu, struct workqueue_struct *wq,
- struct work_struct *work);
-extern int queue_delayed_work(struct workqueue_struct *wq,
- struct delayed_work *work, unsigned long delay);
-extern int queue_delayed_work_on(int cpu, struct workqueue_struct *wq,
- struct delayed_work *work, unsigned long delay);
-
-extern void flush_workqueue(struct workqueue_struct *wq);
-extern void drain_workqueue(struct workqueue_struct *wq);
-extern void flush_scheduled_work(void);
-
-extern int schedule_work(struct work_struct *work);
-extern int schedule_work_on(int cpu, struct work_struct *work);
-extern int schedule_delayed_work(struct delayed_work *work, unsigned long delay);
-extern int schedule_delayed_work_on(int cpu, struct delayed_work *work,
- unsigned long delay);
-extern int schedule_on_each_cpu(work_func_t func);
-extern int keventd_up(void);
-
-int execute_in_process_context(work_func_t fn, struct execute_work *);
-
-extern bool flush_work(struct work_struct *work);
-extern bool flush_work_sync(struct work_struct *work);
-extern bool cancel_work_sync(struct work_struct *work);
-
-extern bool flush_delayed_work(struct delayed_work *dwork);
-extern bool flush_delayed_work_sync(struct delayed_work *work);
-extern bool cancel_delayed_work_sync(struct delayed_work *dwork);
-
-extern void workqueue_set_max_active(struct workqueue_struct *wq,
- int max_active);
-extern bool workqueue_congested(unsigned int cpu, struct workqueue_struct *wq);
-extern unsigned int work_cpu(struct work_struct *work);
-extern unsigned int work_busy(struct work_struct *work);
-
-/*
- * Kill off a pending schedule_delayed_work(). Note that the work callback
- * function may still be running on return from cancel_delayed_work(), unless
- * it returns 1 and the work doesn't re-arm itself. Run flush_workqueue() or
- * cancel_work_sync() to wait on it.
- */
-static inline bool cancel_delayed_work(struct delayed_work *work)
-{
- bool ret;
-
- ret = del_timer_sync(&work->timer);
- if (ret)
- work_clear_pending(&work->work);
- return ret;
-}
-
-/*
- * Like above, but uses del_timer() instead of del_timer_sync(). This means,
- * if it returns 0 the timer function may be running and the queueing is in
- * progress.
- */
-static inline bool __cancel_delayed_work(struct delayed_work *work)
-{
- bool ret;
-
- ret = del_timer(&work->timer);
- if (ret)
- work_clear_pending(&work->work);
- return ret;
-}
-
-#ifndef CONFIG_SMP
-static inline long work_on_cpu(unsigned int cpu, long (*fn)(void *), void *arg)
-{
- return fn(arg);
-}
-#else
-long work_on_cpu(unsigned int cpu, long (*fn)(void *), void *arg);
-#endif /* CONFIG_SMP */
-
-#ifdef CONFIG_FREEZER
-extern void freeze_workqueues_begin(void);
-extern bool freeze_workqueues_busy(void);
-extern void thaw_workqueues(void);
-#endif /* CONFIG_FREEZER */
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/writeback.h b/ANDROID_3.4.5/include/linux/writeback.h
deleted file mode 100644
index a2b84f59..00000000
--- a/ANDROID_3.4.5/include/linux/writeback.h
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- * include/linux/writeback.h
- */
-#ifndef WRITEBACK_H
-#define WRITEBACK_H
-
-#include <linux/sched.h>
-#include <linux/fs.h>
-
-DECLARE_PER_CPU(int, dirty_throttle_leaks);
-
-/*
- * The 1/4 region under the global dirty thresh is for smooth dirty throttling:
- *
- * (thresh - thresh/DIRTY_FULL_SCOPE, thresh)
- *
- * Further beyond, all dirtier tasks will enter a loop waiting (possibly long
- * time) for the dirty pages to drop, unless written enough pages.
- *
- * The global dirty threshold is normally equal to the global dirty limit,
- * except when the system suddenly allocates a lot of anonymous memory and
- * knocks down the global dirty threshold quickly, in which case the global
- * dirty limit will follow down slowly to prevent livelocking all dirtier tasks.
- */
-#define DIRTY_SCOPE 8
-#define DIRTY_FULL_SCOPE (DIRTY_SCOPE / 2)
-
-struct backing_dev_info;
-
-/*
- * fs/fs-writeback.c
- */
-enum writeback_sync_modes {
- WB_SYNC_NONE, /* Don't wait on anything */
- WB_SYNC_ALL, /* Wait on every mapping */
-};
-
-/*
- * why some writeback work was initiated
- */
-enum wb_reason {
- WB_REASON_BACKGROUND,
- WB_REASON_TRY_TO_FREE_PAGES,
- WB_REASON_SYNC,
- WB_REASON_PERIODIC,
- WB_REASON_LAPTOP_TIMER,
- WB_REASON_FREE_MORE_MEM,
- WB_REASON_FS_FREE_SPACE,
- WB_REASON_FORKER_THREAD,
-
- WB_REASON_MAX,
-};
-extern const char *wb_reason_name[];
-
-/*
- * A control structure which tells the writeback code what to do. These are
- * always on the stack, and hence need no locking. They are always initialised
- * in a manner such that unspecified fields are set to zero.
- */
-struct writeback_control {
- enum writeback_sync_modes sync_mode;
- long nr_to_write; /* Write this many pages, and decrement
- this for each page written */
- long pages_skipped; /* Pages which were not written */
-
- /*
- * For a_ops->writepages(): if start or end are non-zero then this is
- * a hint that the filesystem need only write out the pages inside that
- * byterange. The byte at `end' is included in the writeout request.
- */
- loff_t range_start;
- loff_t range_end;
-
- unsigned for_kupdate:1; /* A kupdate writeback */
- unsigned for_background:1; /* A background writeback */
- unsigned tagged_writepages:1; /* tag-and-write to avoid livelock */
- unsigned for_reclaim:1; /* Invoked from the page allocator */
- unsigned range_cyclic:1; /* range_start is cyclic */
-};
-
-/*
- * fs/fs-writeback.c
- */
-struct bdi_writeback;
-int inode_wait(void *);
-void writeback_inodes_sb(struct super_block *, enum wb_reason reason);
-void writeback_inodes_sb_nr(struct super_block *, unsigned long nr,
- enum wb_reason reason);
-int writeback_inodes_sb_if_idle(struct super_block *, enum wb_reason reason);
-int writeback_inodes_sb_nr_if_idle(struct super_block *, unsigned long nr,
- enum wb_reason reason);
-void sync_inodes_sb(struct super_block *);
-long writeback_inodes_wb(struct bdi_writeback *wb, long nr_pages,
- enum wb_reason reason);
-long wb_do_writeback(struct bdi_writeback *wb, int force_wait);
-void wakeup_flusher_threads(long nr_pages, enum wb_reason reason);
-
-/* writeback.h requires fs.h; it, too, is not included from here. */
-static inline void wait_on_inode(struct inode *inode)
-{
- might_sleep();
- wait_on_bit(&inode->i_state, __I_NEW, inode_wait, TASK_UNINTERRUPTIBLE);
-}
-static inline void inode_sync_wait(struct inode *inode)
-{
- might_sleep();
- wait_on_bit(&inode->i_state, __I_SYNC, inode_wait,
- TASK_UNINTERRUPTIBLE);
-}
-
-
-/*
- * mm/page-writeback.c
- */
-#ifdef CONFIG_BLOCK
-void laptop_io_completion(struct backing_dev_info *info);
-void laptop_sync_completion(void);
-void laptop_mode_sync(struct work_struct *work);
-void laptop_mode_timer_fn(unsigned long data);
-#else
-static inline void laptop_sync_completion(void) { }
-#endif
-void throttle_vm_writeout(gfp_t gfp_mask);
-bool zone_dirty_ok(struct zone *zone);
-
-extern unsigned long global_dirty_limit;
-
-/* These are exported to sysctl. */
-extern int dirty_background_ratio;
-extern unsigned long dirty_background_bytes;
-extern int vm_dirty_ratio;
-extern unsigned long vm_dirty_bytes;
-extern unsigned int dirty_writeback_interval;
-extern unsigned int dirty_expire_interval;
-extern int vm_highmem_is_dirtyable;
-extern int block_dump;
-extern int laptop_mode;
-
-extern int dirty_background_ratio_handler(struct ctl_table *table, int write,
- void __user *buffer, size_t *lenp,
- loff_t *ppos);
-extern int dirty_background_bytes_handler(struct ctl_table *table, int write,
- void __user *buffer, size_t *lenp,
- loff_t *ppos);
-extern int dirty_ratio_handler(struct ctl_table *table, int write,
- void __user *buffer, size_t *lenp,
- loff_t *ppos);
-extern int dirty_bytes_handler(struct ctl_table *table, int write,
- void __user *buffer, size_t *lenp,
- loff_t *ppos);
-
-struct ctl_table;
-int dirty_writeback_centisecs_handler(struct ctl_table *, int,
- void __user *, size_t *, loff_t *);
-
-void global_dirty_limits(unsigned long *pbackground, unsigned long *pdirty);
-unsigned long bdi_dirty_limit(struct backing_dev_info *bdi,
- unsigned long dirty);
-
-void __bdi_update_bandwidth(struct backing_dev_info *bdi,
- unsigned long thresh,
- unsigned long bg_thresh,
- unsigned long dirty,
- unsigned long bdi_thresh,
- unsigned long bdi_dirty,
- unsigned long start_time);
-
-void page_writeback_init(void);
-void balance_dirty_pages_ratelimited_nr(struct address_space *mapping,
- unsigned long nr_pages_dirtied);
-
-static inline void
-balance_dirty_pages_ratelimited(struct address_space *mapping)
-{
- balance_dirty_pages_ratelimited_nr(mapping, 1);
-}
-
-typedef int (*writepage_t)(struct page *page, struct writeback_control *wbc,
- void *data);
-
-int generic_writepages(struct address_space *mapping,
- struct writeback_control *wbc);
-void tag_pages_for_writeback(struct address_space *mapping,
- pgoff_t start, pgoff_t end);
-int write_cache_pages(struct address_space *mapping,
- struct writeback_control *wbc, writepage_t writepage,
- void *data);
-int do_writepages(struct address_space *mapping, struct writeback_control *wbc);
-void set_page_dirty_balance(struct page *page, int page_mkwrite);
-void writeback_set_ratelimit(void);
-void tag_pages_for_writeback(struct address_space *mapping,
- pgoff_t start, pgoff_t end);
-
-void account_page_redirty(struct page *page);
-
-/* pdflush.c */
-extern int nr_pdflush_threads; /* Global so it can be exported to sysctl
- read-only. */
-
-
-#endif /* WRITEBACK_H */
diff --git a/ANDROID_3.4.5/include/linux/x25.h b/ANDROID_3.4.5/include/linux/x25.h
deleted file mode 100644
index 810cce67..00000000
--- a/ANDROID_3.4.5/include/linux/x25.h
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * These are the public elements of the Linux kernel X.25 implementation.
- *
- * History
- * mar/20/00 Daniela Squassoni Disabling/enabling of facilities
- * negotiation.
- * apr/02/05 Shaun Pereira Selective sub address matching with
- * call user data
- */
-
-#ifndef X25_KERNEL_H
-#define X25_KERNEL_H
-
-#include <linux/types.h>
-#include <linux/socket.h>
-
-#define SIOCX25GSUBSCRIP (SIOCPROTOPRIVATE + 0)
-#define SIOCX25SSUBSCRIP (SIOCPROTOPRIVATE + 1)
-#define SIOCX25GFACILITIES (SIOCPROTOPRIVATE + 2)
-#define SIOCX25SFACILITIES (SIOCPROTOPRIVATE + 3)
-#define SIOCX25GCALLUSERDATA (SIOCPROTOPRIVATE + 4)
-#define SIOCX25SCALLUSERDATA (SIOCPROTOPRIVATE + 5)
-#define SIOCX25GCAUSEDIAG (SIOCPROTOPRIVATE + 6)
-#define SIOCX25SCUDMATCHLEN (SIOCPROTOPRIVATE + 7)
-#define SIOCX25CALLACCPTAPPRV (SIOCPROTOPRIVATE + 8)
-#define SIOCX25SENDCALLACCPT (SIOCPROTOPRIVATE + 9)
-#define SIOCX25GDTEFACILITIES (SIOCPROTOPRIVATE + 10)
-#define SIOCX25SDTEFACILITIES (SIOCPROTOPRIVATE + 11)
-#define SIOCX25SCAUSEDIAG (SIOCPROTOPRIVATE + 12)
-
-/*
- * Values for {get,set}sockopt.
- */
-#define X25_QBITINCL 1
-
-/*
- * X.25 Packet Size values.
- */
-#define X25_PS16 4
-#define X25_PS32 5
-#define X25_PS64 6
-#define X25_PS128 7
-#define X25_PS256 8
-#define X25_PS512 9
-#define X25_PS1024 10
-#define X25_PS2048 11
-#define X25_PS4096 12
-
-/*
- * An X.121 address, it is held as ASCII text, null terminated, up to 15
- * digits and a null terminator.
- */
-struct x25_address {
- char x25_addr[16];
-};
-
-/*
- * Linux X.25 Address structure, used for bind, and connect mostly.
- */
-struct sockaddr_x25 {
- __kernel_sa_family_t sx25_family; /* Must be AF_X25 */
- struct x25_address sx25_addr; /* X.121 Address */
-};
-
-/*
- * DTE/DCE subscription options.
- *
- * As this is missing lots of options, user should expect major
- * changes of this structure in 2.5.x which might break compatibilty.
- * The somewhat ugly dimension 200-sizeof() is needed to maintain
- * backward compatibility.
- */
-struct x25_subscrip_struct {
- char device[200-sizeof(unsigned long)];
- unsigned long global_facil_mask; /* 0 to disable negotiation */
- unsigned int extended;
-};
-
-/* values for above global_facil_mask */
-
-#define X25_MASK_REVERSE 0x01
-#define X25_MASK_THROUGHPUT 0x02
-#define X25_MASK_PACKET_SIZE 0x04
-#define X25_MASK_WINDOW_SIZE 0x08
-
-#define X25_MASK_CALLING_AE 0x10
-#define X25_MASK_CALLED_AE 0x20
-
-
-/*
- * Routing table control structure.
- */
-struct x25_route_struct {
- struct x25_address address;
- unsigned int sigdigits;
- char device[200];
-};
-
-/*
- * Facilities structure.
- */
-struct x25_facilities {
- unsigned int winsize_in, winsize_out;
- unsigned int pacsize_in, pacsize_out;
- unsigned int throughput;
- unsigned int reverse;
-};
-
-/*
-* ITU DTE facilities
-* Only the called and calling address
-* extension are currently implemented.
-* The rest are in place to avoid the struct
-* changing size if someone needs them later
-*/
-
-struct x25_dte_facilities {
- __u16 delay_cumul;
- __u16 delay_target;
- __u16 delay_max;
- __u8 min_throughput;
- __u8 expedited;
- __u8 calling_len;
- __u8 called_len;
- __u8 calling_ae[20];
- __u8 called_ae[20];
-};
-
-/*
- * Call User Data structure.
- */
-struct x25_calluserdata {
- unsigned int cudlength;
- unsigned char cuddata[128];
-};
-
-/*
- * Call clearing Cause and Diagnostic structure.
- */
-struct x25_causediag {
- unsigned char cause;
- unsigned char diagnostic;
-};
-
-/*
- * Further optional call user data match length selection
- */
-struct x25_subaddr {
- unsigned int cudmatchlength;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/xattr.h b/ANDROID_3.4.5/include/linux/xattr.h
deleted file mode 100644
index e5d12203..00000000
--- a/ANDROID_3.4.5/include/linux/xattr.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- File: linux/xattr.h
-
- Extended attributes handling.
-
- Copyright (C) 2001 by Andreas Gruenbacher <a.gruenbacher@computer.org>
- Copyright (c) 2001-2002 Silicon Graphics, Inc. All Rights Reserved.
- Copyright (c) 2004 Red Hat, Inc., James Morris <jmorris@redhat.com>
-*/
-#ifndef _LINUX_XATTR_H
-#define _LINUX_XATTR_H
-
-#define XATTR_CREATE 0x1 /* set value, fail if attr already exists */
-#define XATTR_REPLACE 0x2 /* set value, fail if attr does not exist */
-
-/* Namespaces */
-#define XATTR_OS2_PREFIX "os2."
-#define XATTR_OS2_PREFIX_LEN (sizeof (XATTR_OS2_PREFIX) - 1)
-
-#define XATTR_SECURITY_PREFIX "security."
-#define XATTR_SECURITY_PREFIX_LEN (sizeof (XATTR_SECURITY_PREFIX) - 1)
-
-#define XATTR_SYSTEM_PREFIX "system."
-#define XATTR_SYSTEM_PREFIX_LEN (sizeof (XATTR_SYSTEM_PREFIX) - 1)
-
-#define XATTR_TRUSTED_PREFIX "trusted."
-#define XATTR_TRUSTED_PREFIX_LEN (sizeof (XATTR_TRUSTED_PREFIX) - 1)
-
-#define XATTR_USER_PREFIX "user."
-#define XATTR_USER_PREFIX_LEN (sizeof (XATTR_USER_PREFIX) - 1)
-
-/* Security namespace */
-#define XATTR_EVM_SUFFIX "evm"
-#define XATTR_NAME_EVM XATTR_SECURITY_PREFIX XATTR_EVM_SUFFIX
-
-#define XATTR_SELINUX_SUFFIX "selinux"
-#define XATTR_NAME_SELINUX XATTR_SECURITY_PREFIX XATTR_SELINUX_SUFFIX
-
-#define XATTR_SMACK_SUFFIX "SMACK64"
-#define XATTR_SMACK_IPIN "SMACK64IPIN"
-#define XATTR_SMACK_IPOUT "SMACK64IPOUT"
-#define XATTR_SMACK_EXEC "SMACK64EXEC"
-#define XATTR_SMACK_TRANSMUTE "SMACK64TRANSMUTE"
-#define XATTR_SMACK_MMAP "SMACK64MMAP"
-#define XATTR_NAME_SMACK XATTR_SECURITY_PREFIX XATTR_SMACK_SUFFIX
-#define XATTR_NAME_SMACKIPIN XATTR_SECURITY_PREFIX XATTR_SMACK_IPIN
-#define XATTR_NAME_SMACKIPOUT XATTR_SECURITY_PREFIX XATTR_SMACK_IPOUT
-#define XATTR_NAME_SMACKEXEC XATTR_SECURITY_PREFIX XATTR_SMACK_EXEC
-#define XATTR_NAME_SMACKTRANSMUTE XATTR_SECURITY_PREFIX XATTR_SMACK_TRANSMUTE
-#define XATTR_NAME_SMACKMMAP XATTR_SECURITY_PREFIX XATTR_SMACK_MMAP
-
-#define XATTR_CAPS_SUFFIX "capability"
-#define XATTR_NAME_CAPS XATTR_SECURITY_PREFIX XATTR_CAPS_SUFFIX
-
-#define XATTR_POSIX_ACL_ACCESS "posix_acl_access"
-#define XATTR_NAME_POSIX_ACL_ACCESS XATTR_SYSTEM_PREFIX XATTR_POSIX_ACL_ACCESS
-#define XATTR_POSIX_ACL_DEFAULT "posix_acl_default"
-#define XATTR_NAME_POSIX_ACL_DEFAULT XATTR_SYSTEM_PREFIX XATTR_POSIX_ACL_DEFAULT
-
-#ifdef __KERNEL__
-
-#include <linux/types.h>
-
-struct inode;
-struct dentry;
-
-struct xattr_handler {
- const char *prefix;
- int flags; /* fs private flags passed back to the handlers */
- size_t (*list)(struct dentry *dentry, char *list, size_t list_size,
- const char *name, size_t name_len, int handler_flags);
- int (*get)(struct dentry *dentry, const char *name, void *buffer,
- size_t size, int handler_flags);
- int (*set)(struct dentry *dentry, const char *name, const void *buffer,
- size_t size, int flags, int handler_flags);
-};
-
-struct xattr {
- char *name;
- void *value;
- size_t value_len;
-};
-
-ssize_t xattr_getsecurity(struct inode *, const char *, void *, size_t);
-ssize_t vfs_getxattr(struct dentry *, const char *, void *, size_t);
-ssize_t vfs_listxattr(struct dentry *d, char *list, size_t size);
-int __vfs_setxattr_noperm(struct dentry *, const char *, const void *, size_t, int);
-int vfs_setxattr(struct dentry *, const char *, const void *, size_t, int);
-int vfs_removexattr(struct dentry *, const char *);
-
-ssize_t generic_getxattr(struct dentry *dentry, const char *name, void *buffer, size_t size);
-ssize_t generic_listxattr(struct dentry *dentry, char *buffer, size_t buffer_size);
-int generic_setxattr(struct dentry *dentry, const char *name, const void *value, size_t size, int flags);
-int generic_removexattr(struct dentry *dentry, const char *name);
-ssize_t vfs_getxattr_alloc(struct dentry *dentry, const char *name,
- char **xattr_value, size_t size, gfp_t flags);
-int vfs_xattr_cmp(struct dentry *dentry, const char *xattr_name,
- const char *value, size_t size, gfp_t flags);
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_XATTR_H */
diff --git a/ANDROID_3.4.5/include/linux/xfrm.h b/ANDROID_3.4.5/include/linux/xfrm.h
deleted file mode 100644
index 22e61fdf..00000000
--- a/ANDROID_3.4.5/include/linux/xfrm.h
+++ /dev/null
@@ -1,504 +0,0 @@
-#ifndef _LINUX_XFRM_H
-#define _LINUX_XFRM_H
-
-#include <linux/types.h>
-
-/* All of the structures in this file may not change size as they are
- * passed into the kernel from userspace via netlink sockets.
- */
-
-/* Structure to encapsulate addresses. I do not want to use
- * "standard" structure. My apologies.
- */
-typedef union {
- __be32 a4;
- __be32 a6[4];
-} xfrm_address_t;
-
-/* Ident of a specific xfrm_state. It is used on input to lookup
- * the state by (spi,daddr,ah/esp) or to store information about
- * spi, protocol and tunnel address on output.
- */
-struct xfrm_id {
- xfrm_address_t daddr;
- __be32 spi;
- __u8 proto;
-};
-
-struct xfrm_sec_ctx {
- __u8 ctx_doi;
- __u8 ctx_alg;
- __u16 ctx_len;
- __u32 ctx_sid;
- char ctx_str[0];
-};
-
-/* Security Context Domains of Interpretation */
-#define XFRM_SC_DOI_RESERVED 0
-#define XFRM_SC_DOI_LSM 1
-
-/* Security Context Algorithms */
-#define XFRM_SC_ALG_RESERVED 0
-#define XFRM_SC_ALG_SELINUX 1
-
-/* Selector, used as selector both on policy rules (SPD) and SAs. */
-
-struct xfrm_selector {
- xfrm_address_t daddr;
- xfrm_address_t saddr;
- __be16 dport;
- __be16 dport_mask;
- __be16 sport;
- __be16 sport_mask;
- __u16 family;
- __u8 prefixlen_d;
- __u8 prefixlen_s;
- __u8 proto;
- int ifindex;
- __kernel_uid32_t user;
-};
-
-#define XFRM_INF (~(__u64)0)
-
-struct xfrm_lifetime_cfg {
- __u64 soft_byte_limit;
- __u64 hard_byte_limit;
- __u64 soft_packet_limit;
- __u64 hard_packet_limit;
- __u64 soft_add_expires_seconds;
- __u64 hard_add_expires_seconds;
- __u64 soft_use_expires_seconds;
- __u64 hard_use_expires_seconds;
-};
-
-struct xfrm_lifetime_cur {
- __u64 bytes;
- __u64 packets;
- __u64 add_time;
- __u64 use_time;
-};
-
-struct xfrm_replay_state {
- __u32 oseq;
- __u32 seq;
- __u32 bitmap;
-};
-
-struct xfrm_replay_state_esn {
- unsigned int bmp_len;
- __u32 oseq;
- __u32 seq;
- __u32 oseq_hi;
- __u32 seq_hi;
- __u32 replay_window;
- __u32 bmp[0];
-};
-
-struct xfrm_algo {
- char alg_name[64];
- unsigned int alg_key_len; /* in bits */
- char alg_key[0];
-};
-
-struct xfrm_algo_auth {
- char alg_name[64];
- unsigned int alg_key_len; /* in bits */
- unsigned int alg_trunc_len; /* in bits */
- char alg_key[0];
-};
-
-struct xfrm_algo_aead {
- char alg_name[64];
- unsigned int alg_key_len; /* in bits */
- unsigned int alg_icv_len; /* in bits */
- char alg_key[0];
-};
-
-struct xfrm_stats {
- __u32 replay_window;
- __u32 replay;
- __u32 integrity_failed;
-};
-
-enum {
- XFRM_POLICY_TYPE_MAIN = 0,
- XFRM_POLICY_TYPE_SUB = 1,
- XFRM_POLICY_TYPE_MAX = 2,
- XFRM_POLICY_TYPE_ANY = 255
-};
-
-enum {
- XFRM_POLICY_IN = 0,
- XFRM_POLICY_OUT = 1,
- XFRM_POLICY_FWD = 2,
- XFRM_POLICY_MASK = 3,
- XFRM_POLICY_MAX = 3
-};
-
-enum {
- XFRM_SHARE_ANY, /* No limitations */
- XFRM_SHARE_SESSION, /* For this session only */
- XFRM_SHARE_USER, /* For this user only */
- XFRM_SHARE_UNIQUE /* Use once */
-};
-
-#define XFRM_MODE_TRANSPORT 0
-#define XFRM_MODE_TUNNEL 1
-#define XFRM_MODE_ROUTEOPTIMIZATION 2
-#define XFRM_MODE_IN_TRIGGER 3
-#define XFRM_MODE_BEET 4
-#define XFRM_MODE_MAX 5
-
-/* Netlink configuration messages. */
-enum {
- XFRM_MSG_BASE = 0x10,
-
- XFRM_MSG_NEWSA = 0x10,
-#define XFRM_MSG_NEWSA XFRM_MSG_NEWSA
- XFRM_MSG_DELSA,
-#define XFRM_MSG_DELSA XFRM_MSG_DELSA
- XFRM_MSG_GETSA,
-#define XFRM_MSG_GETSA XFRM_MSG_GETSA
-
- XFRM_MSG_NEWPOLICY,
-#define XFRM_MSG_NEWPOLICY XFRM_MSG_NEWPOLICY
- XFRM_MSG_DELPOLICY,
-#define XFRM_MSG_DELPOLICY XFRM_MSG_DELPOLICY
- XFRM_MSG_GETPOLICY,
-#define XFRM_MSG_GETPOLICY XFRM_MSG_GETPOLICY
-
- XFRM_MSG_ALLOCSPI,
-#define XFRM_MSG_ALLOCSPI XFRM_MSG_ALLOCSPI
- XFRM_MSG_ACQUIRE,
-#define XFRM_MSG_ACQUIRE XFRM_MSG_ACQUIRE
- XFRM_MSG_EXPIRE,
-#define XFRM_MSG_EXPIRE XFRM_MSG_EXPIRE
-
- XFRM_MSG_UPDPOLICY,
-#define XFRM_MSG_UPDPOLICY XFRM_MSG_UPDPOLICY
- XFRM_MSG_UPDSA,
-#define XFRM_MSG_UPDSA XFRM_MSG_UPDSA
-
- XFRM_MSG_POLEXPIRE,
-#define XFRM_MSG_POLEXPIRE XFRM_MSG_POLEXPIRE
-
- XFRM_MSG_FLUSHSA,
-#define XFRM_MSG_FLUSHSA XFRM_MSG_FLUSHSA
- XFRM_MSG_FLUSHPOLICY,
-#define XFRM_MSG_FLUSHPOLICY XFRM_MSG_FLUSHPOLICY
-
- XFRM_MSG_NEWAE,
-#define XFRM_MSG_NEWAE XFRM_MSG_NEWAE
- XFRM_MSG_GETAE,
-#define XFRM_MSG_GETAE XFRM_MSG_GETAE
-
- XFRM_MSG_REPORT,
-#define XFRM_MSG_REPORT XFRM_MSG_REPORT
-
- XFRM_MSG_MIGRATE,
-#define XFRM_MSG_MIGRATE XFRM_MSG_MIGRATE
-
- XFRM_MSG_NEWSADINFO,
-#define XFRM_MSG_NEWSADINFO XFRM_MSG_NEWSADINFO
- XFRM_MSG_GETSADINFO,
-#define XFRM_MSG_GETSADINFO XFRM_MSG_GETSADINFO
-
- XFRM_MSG_NEWSPDINFO,
-#define XFRM_MSG_NEWSPDINFO XFRM_MSG_NEWSPDINFO
- XFRM_MSG_GETSPDINFO,
-#define XFRM_MSG_GETSPDINFO XFRM_MSG_GETSPDINFO
-
- XFRM_MSG_MAPPING,
-#define XFRM_MSG_MAPPING XFRM_MSG_MAPPING
- __XFRM_MSG_MAX
-};
-#define XFRM_MSG_MAX (__XFRM_MSG_MAX - 1)
-
-#define XFRM_NR_MSGTYPES (XFRM_MSG_MAX + 1 - XFRM_MSG_BASE)
-
-/*
- * Generic LSM security context for comunicating to user space
- * NOTE: Same format as sadb_x_sec_ctx
- */
-struct xfrm_user_sec_ctx {
- __u16 len;
- __u16 exttype;
- __u8 ctx_alg; /* LSMs: e.g., selinux == 1 */
- __u8 ctx_doi;
- __u16 ctx_len;
-};
-
-struct xfrm_user_tmpl {
- struct xfrm_id id;
- __u16 family;
- xfrm_address_t saddr;
- __u32 reqid;
- __u8 mode;
- __u8 share;
- __u8 optional;
- __u32 aalgos;
- __u32 ealgos;
- __u32 calgos;
-};
-
-struct xfrm_encap_tmpl {
- __u16 encap_type;
- __be16 encap_sport;
- __be16 encap_dport;
- xfrm_address_t encap_oa;
-};
-
-/* AEVENT flags */
-enum xfrm_ae_ftype_t {
- XFRM_AE_UNSPEC,
- XFRM_AE_RTHR=1, /* replay threshold*/
- XFRM_AE_RVAL=2, /* replay value */
- XFRM_AE_LVAL=4, /* lifetime value */
- XFRM_AE_ETHR=8, /* expiry timer threshold */
- XFRM_AE_CR=16, /* Event cause is replay update */
- XFRM_AE_CE=32, /* Event cause is timer expiry */
- XFRM_AE_CU=64, /* Event cause is policy update */
- __XFRM_AE_MAX
-
-#define XFRM_AE_MAX (__XFRM_AE_MAX - 1)
-};
-
-struct xfrm_userpolicy_type {
- __u8 type;
- __u16 reserved1;
- __u8 reserved2;
-};
-
-/* Netlink message attributes. */
-enum xfrm_attr_type_t {
- XFRMA_UNSPEC,
- XFRMA_ALG_AUTH, /* struct xfrm_algo */
- XFRMA_ALG_CRYPT, /* struct xfrm_algo */
- XFRMA_ALG_COMP, /* struct xfrm_algo */
- XFRMA_ENCAP, /* struct xfrm_algo + struct xfrm_encap_tmpl */
- XFRMA_TMPL, /* 1 or more struct xfrm_user_tmpl */
- XFRMA_SA, /* struct xfrm_usersa_info */
- XFRMA_POLICY, /*struct xfrm_userpolicy_info */
- XFRMA_SEC_CTX, /* struct xfrm_sec_ctx */
- XFRMA_LTIME_VAL,
- XFRMA_REPLAY_VAL,
- XFRMA_REPLAY_THRESH,
- XFRMA_ETIMER_THRESH,
- XFRMA_SRCADDR, /* xfrm_address_t */
- XFRMA_COADDR, /* xfrm_address_t */
- XFRMA_LASTUSED, /* unsigned long */
- XFRMA_POLICY_TYPE, /* struct xfrm_userpolicy_type */
- XFRMA_MIGRATE,
- XFRMA_ALG_AEAD, /* struct xfrm_algo_aead */
- XFRMA_KMADDRESS, /* struct xfrm_user_kmaddress */
- XFRMA_ALG_AUTH_TRUNC, /* struct xfrm_algo_auth */
- XFRMA_MARK, /* struct xfrm_mark */
- XFRMA_TFCPAD, /* __u32 */
- XFRMA_REPLAY_ESN_VAL, /* struct xfrm_replay_esn */
- __XFRMA_MAX
-
-#define XFRMA_MAX (__XFRMA_MAX - 1)
-};
-
-struct xfrm_mark {
- __u32 v; /* value */
- __u32 m; /* mask */
-};
-
-enum xfrm_sadattr_type_t {
- XFRMA_SAD_UNSPEC,
- XFRMA_SAD_CNT,
- XFRMA_SAD_HINFO,
- __XFRMA_SAD_MAX
-
-#define XFRMA_SAD_MAX (__XFRMA_SAD_MAX - 1)
-};
-
-struct xfrmu_sadhinfo {
- __u32 sadhcnt; /* current hash bkts */
- __u32 sadhmcnt; /* max allowed hash bkts */
-};
-
-enum xfrm_spdattr_type_t {
- XFRMA_SPD_UNSPEC,
- XFRMA_SPD_INFO,
- XFRMA_SPD_HINFO,
- __XFRMA_SPD_MAX
-
-#define XFRMA_SPD_MAX (__XFRMA_SPD_MAX - 1)
-};
-
-struct xfrmu_spdinfo {
- __u32 incnt;
- __u32 outcnt;
- __u32 fwdcnt;
- __u32 inscnt;
- __u32 outscnt;
- __u32 fwdscnt;
-};
-
-struct xfrmu_spdhinfo {
- __u32 spdhcnt;
- __u32 spdhmcnt;
-};
-
-struct xfrm_usersa_info {
- struct xfrm_selector sel;
- struct xfrm_id id;
- xfrm_address_t saddr;
- struct xfrm_lifetime_cfg lft;
- struct xfrm_lifetime_cur curlft;
- struct xfrm_stats stats;
- __u32 seq;
- __u32 reqid;
- __u16 family;
- __u8 mode; /* XFRM_MODE_xxx */
- __u8 replay_window;
- __u8 flags;
-#define XFRM_STATE_NOECN 1
-#define XFRM_STATE_DECAP_DSCP 2
-#define XFRM_STATE_NOPMTUDISC 4
-#define XFRM_STATE_WILDRECV 8
-#define XFRM_STATE_ICMP 16
-#define XFRM_STATE_AF_UNSPEC 32
-#define XFRM_STATE_ALIGN4 64
-#define XFRM_STATE_ESN 128
-};
-
-struct xfrm_usersa_id {
- xfrm_address_t daddr;
- __be32 spi;
- __u16 family;
- __u8 proto;
-};
-
-struct xfrm_aevent_id {
- struct xfrm_usersa_id sa_id;
- xfrm_address_t saddr;
- __u32 flags;
- __u32 reqid;
-};
-
-struct xfrm_userspi_info {
- struct xfrm_usersa_info info;
- __u32 min;
- __u32 max;
-};
-
-struct xfrm_userpolicy_info {
- struct xfrm_selector sel;
- struct xfrm_lifetime_cfg lft;
- struct xfrm_lifetime_cur curlft;
- __u32 priority;
- __u32 index;
- __u8 dir;
- __u8 action;
-#define XFRM_POLICY_ALLOW 0
-#define XFRM_POLICY_BLOCK 1
- __u8 flags;
-#define XFRM_POLICY_LOCALOK 1 /* Allow user to override global policy */
- /* Automatically expand selector to include matching ICMP payloads. */
-#define XFRM_POLICY_ICMP 2
- __u8 share;
-};
-
-struct xfrm_userpolicy_id {
- struct xfrm_selector sel;
- __u32 index;
- __u8 dir;
-};
-
-struct xfrm_user_acquire {
- struct xfrm_id id;
- xfrm_address_t saddr;
- struct xfrm_selector sel;
- struct xfrm_userpolicy_info policy;
- __u32 aalgos;
- __u32 ealgos;
- __u32 calgos;
- __u32 seq;
-};
-
-struct xfrm_user_expire {
- struct xfrm_usersa_info state;
- __u8 hard;
-};
-
-struct xfrm_user_polexpire {
- struct xfrm_userpolicy_info pol;
- __u8 hard;
-};
-
-struct xfrm_usersa_flush {
- __u8 proto;
-};
-
-struct xfrm_user_report {
- __u8 proto;
- struct xfrm_selector sel;
-};
-
-/* Used by MIGRATE to pass addresses IKE should use to perform
- * SA negotiation with the peer */
-struct xfrm_user_kmaddress {
- xfrm_address_t local;
- xfrm_address_t remote;
- __u32 reserved;
- __u16 family;
-};
-
-struct xfrm_user_migrate {
- xfrm_address_t old_daddr;
- xfrm_address_t old_saddr;
- xfrm_address_t new_daddr;
- xfrm_address_t new_saddr;
- __u8 proto;
- __u8 mode;
- __u16 reserved;
- __u32 reqid;
- __u16 old_family;
- __u16 new_family;
-};
-
-struct xfrm_user_mapping {
- struct xfrm_usersa_id id;
- __u32 reqid;
- xfrm_address_t old_saddr;
- xfrm_address_t new_saddr;
- __be16 old_sport;
- __be16 new_sport;
-};
-
-#ifndef __KERNEL__
-/* backwards compatibility for userspace */
-#define XFRMGRP_ACQUIRE 1
-#define XFRMGRP_EXPIRE 2
-#define XFRMGRP_SA 4
-#define XFRMGRP_POLICY 8
-#define XFRMGRP_REPORT 0x20
-#endif
-
-enum xfrm_nlgroups {
- XFRMNLGRP_NONE,
-#define XFRMNLGRP_NONE XFRMNLGRP_NONE
- XFRMNLGRP_ACQUIRE,
-#define XFRMNLGRP_ACQUIRE XFRMNLGRP_ACQUIRE
- XFRMNLGRP_EXPIRE,
-#define XFRMNLGRP_EXPIRE XFRMNLGRP_EXPIRE
- XFRMNLGRP_SA,
-#define XFRMNLGRP_SA XFRMNLGRP_SA
- XFRMNLGRP_POLICY,
-#define XFRMNLGRP_POLICY XFRMNLGRP_POLICY
- XFRMNLGRP_AEVENTS,
-#define XFRMNLGRP_AEVENTS XFRMNLGRP_AEVENTS
- XFRMNLGRP_REPORT,
-#define XFRMNLGRP_REPORT XFRMNLGRP_REPORT
- XFRMNLGRP_MIGRATE,
-#define XFRMNLGRP_MIGRATE XFRMNLGRP_MIGRATE
- XFRMNLGRP_MAPPING,
-#define XFRMNLGRP_MAPPING XFRMNLGRP_MAPPING
- __XFRMNLGRP_MAX
-};
-#define XFRMNLGRP_MAX (__XFRMNLGRP_MAX - 1)
-
-#endif /* _LINUX_XFRM_H */
diff --git a/ANDROID_3.4.5/include/linux/xilinxfb.h b/ANDROID_3.4.5/include/linux/xilinxfb.h
deleted file mode 100644
index 5a155a96..00000000
--- a/ANDROID_3.4.5/include/linux/xilinxfb.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Platform device data for Xilinx Framebuffer device
- *
- * Copyright 2007 Secret Lab Technologies Ltd.
- *
- * This file is licensed under the terms of the GNU General Public License
- * version 2. This program is licensed "as is" without any warranty of any
- * kind, whether express or implied.
- */
-
-#ifndef __XILINXFB_H__
-#define __XILINXFB_H__
-
-#include <linux/types.h>
-
-/* ML300/403 reference design framebuffer driver platform data struct */
-struct xilinxfb_platform_data {
- u32 rotate_screen; /* Flag to rotate display 180 degrees */
- u32 screen_height_mm; /* Physical dimensions of screen in mm */
- u32 screen_width_mm;
- u32 xres, yres; /* resolution of screen in pixels */
- u32 xvirt, yvirt; /* resolution of memory buffer */
-
- /* Physical address of framebuffer memory; If non-zero, driver
- * will use provided memory address instead of allocating one from
- * the consistent pool. */
- u32 fb_phys;
-};
-
-#endif /* __XILINXFB_H__ */
diff --git a/ANDROID_3.4.5/include/linux/xz.h b/ANDROID_3.4.5/include/linux/xz.h
deleted file mode 100644
index 64cffa6d..00000000
--- a/ANDROID_3.4.5/include/linux/xz.h
+++ /dev/null
@@ -1,264 +0,0 @@
-/*
- * XZ decompressor
- *
- * Authors: Lasse Collin <lasse.collin@tukaani.org>
- * Igor Pavlov <http://7-zip.org/>
- *
- * This file has been put into the public domain.
- * You can do whatever you want with this file.
- */
-
-#ifndef XZ_H
-#define XZ_H
-
-#ifdef __KERNEL__
-# include <linux/stddef.h>
-# include <linux/types.h>
-#else
-# include <stddef.h>
-# include <stdint.h>
-#endif
-
-/* In Linux, this is used to make extern functions static when needed. */
-#ifndef XZ_EXTERN
-# define XZ_EXTERN extern
-#endif
-
-/**
- * enum xz_mode - Operation mode
- *
- * @XZ_SINGLE: Single-call mode. This uses less RAM than
- * than multi-call modes, because the LZMA2
- * dictionary doesn't need to be allocated as
- * part of the decoder state. All required data
- * structures are allocated at initialization,
- * so xz_dec_run() cannot return XZ_MEM_ERROR.
- * @XZ_PREALLOC: Multi-call mode with preallocated LZMA2
- * dictionary buffer. All data structures are
- * allocated at initialization, so xz_dec_run()
- * cannot return XZ_MEM_ERROR.
- * @XZ_DYNALLOC: Multi-call mode. The LZMA2 dictionary is
- * allocated once the required size has been
- * parsed from the stream headers. If the
- * allocation fails, xz_dec_run() will return
- * XZ_MEM_ERROR.
- *
- * It is possible to enable support only for a subset of the above
- * modes at compile time by defining XZ_DEC_SINGLE, XZ_DEC_PREALLOC,
- * or XZ_DEC_DYNALLOC. The xz_dec kernel module is always compiled
- * with support for all operation modes, but the preboot code may
- * be built with fewer features to minimize code size.
- */
-enum xz_mode {
- XZ_SINGLE,
- XZ_PREALLOC,
- XZ_DYNALLOC
-};
-
-/**
- * enum xz_ret - Return codes
- * @XZ_OK: Everything is OK so far. More input or more
- * output space is required to continue. This
- * return code is possible only in multi-call mode
- * (XZ_PREALLOC or XZ_DYNALLOC).
- * @XZ_STREAM_END: Operation finished successfully.
- * @XZ_UNSUPPORTED_CHECK: Integrity check type is not supported. Decoding
- * is still possible in multi-call mode by simply
- * calling xz_dec_run() again.
- * Note that this return value is used only if
- * XZ_DEC_ANY_CHECK was defined at build time,
- * which is not used in the kernel. Unsupported
- * check types return XZ_OPTIONS_ERROR if
- * XZ_DEC_ANY_CHECK was not defined at build time.
- * @XZ_MEM_ERROR: Allocating memory failed. This return code is
- * possible only if the decoder was initialized
- * with XZ_DYNALLOC. The amount of memory that was
- * tried to be allocated was no more than the
- * dict_max argument given to xz_dec_init().
- * @XZ_MEMLIMIT_ERROR: A bigger LZMA2 dictionary would be needed than
- * allowed by the dict_max argument given to
- * xz_dec_init(). This return value is possible
- * only in multi-call mode (XZ_PREALLOC or
- * XZ_DYNALLOC); the single-call mode (XZ_SINGLE)
- * ignores the dict_max argument.
- * @XZ_FORMAT_ERROR: File format was not recognized (wrong magic
- * bytes).
- * @XZ_OPTIONS_ERROR: This implementation doesn't support the requested
- * compression options. In the decoder this means
- * that the header CRC32 matches, but the header
- * itself specifies something that we don't support.
- * @XZ_DATA_ERROR: Compressed data is corrupt.
- * @XZ_BUF_ERROR: Cannot make any progress. Details are slightly
- * different between multi-call and single-call
- * mode; more information below.
- *
- * In multi-call mode, XZ_BUF_ERROR is returned when two consecutive calls
- * to XZ code cannot consume any input and cannot produce any new output.
- * This happens when there is no new input available, or the output buffer
- * is full while at least one output byte is still pending. Assuming your
- * code is not buggy, you can get this error only when decoding a compressed
- * stream that is truncated or otherwise corrupt.
- *
- * In single-call mode, XZ_BUF_ERROR is returned only when the output buffer
- * is too small or the compressed input is corrupt in a way that makes the
- * decoder produce more output than the caller expected. When it is
- * (relatively) clear that the compressed input is truncated, XZ_DATA_ERROR
- * is used instead of XZ_BUF_ERROR.
- */
-enum xz_ret {
- XZ_OK,
- XZ_STREAM_END,
- XZ_UNSUPPORTED_CHECK,
- XZ_MEM_ERROR,
- XZ_MEMLIMIT_ERROR,
- XZ_FORMAT_ERROR,
- XZ_OPTIONS_ERROR,
- XZ_DATA_ERROR,
- XZ_BUF_ERROR
-};
-
-/**
- * struct xz_buf - Passing input and output buffers to XZ code
- * @in: Beginning of the input buffer. This may be NULL if and only
- * if in_pos is equal to in_size.
- * @in_pos: Current position in the input buffer. This must not exceed
- * in_size.
- * @in_size: Size of the input buffer
- * @out: Beginning of the output buffer. This may be NULL if and only
- * if out_pos is equal to out_size.
- * @out_pos: Current position in the output buffer. This must not exceed
- * out_size.
- * @out_size: Size of the output buffer
- *
- * Only the contents of the output buffer from out[out_pos] onward, and
- * the variables in_pos and out_pos are modified by the XZ code.
- */
-struct xz_buf {
- const uint8_t *in;
- size_t in_pos;
- size_t in_size;
-
- uint8_t *out;
- size_t out_pos;
- size_t out_size;
-};
-
-/**
- * struct xz_dec - Opaque type to hold the XZ decoder state
- */
-struct xz_dec;
-
-/**
- * xz_dec_init() - Allocate and initialize a XZ decoder state
- * @mode: Operation mode
- * @dict_max: Maximum size of the LZMA2 dictionary (history buffer) for
- * multi-call decoding. This is ignored in single-call mode
- * (mode == XZ_SINGLE). LZMA2 dictionary is always 2^n bytes
- * or 2^n + 2^(n-1) bytes (the latter sizes are less common
- * in practice), so other values for dict_max don't make sense.
- * In the kernel, dictionary sizes of 64 KiB, 128 KiB, 256 KiB,
- * 512 KiB, and 1 MiB are probably the only reasonable values,
- * except for kernel and initramfs images where a bigger
- * dictionary can be fine and useful.
- *
- * Single-call mode (XZ_SINGLE): xz_dec_run() decodes the whole stream at
- * once. The caller must provide enough output space or the decoding will
- * fail. The output space is used as the dictionary buffer, which is why
- * there is no need to allocate the dictionary as part of the decoder's
- * internal state.
- *
- * Because the output buffer is used as the workspace, streams encoded using
- * a big dictionary are not a problem in single-call mode. It is enough that
- * the output buffer is big enough to hold the actual uncompressed data; it
- * can be smaller than the dictionary size stored in the stream headers.
- *
- * Multi-call mode with preallocated dictionary (XZ_PREALLOC): dict_max bytes
- * of memory is preallocated for the LZMA2 dictionary. This way there is no
- * risk that xz_dec_run() could run out of memory, since xz_dec_run() will
- * never allocate any memory. Instead, if the preallocated dictionary is too
- * small for decoding the given input stream, xz_dec_run() will return
- * XZ_MEMLIMIT_ERROR. Thus, it is important to know what kind of data will be
- * decoded to avoid allocating excessive amount of memory for the dictionary.
- *
- * Multi-call mode with dynamically allocated dictionary (XZ_DYNALLOC):
- * dict_max specifies the maximum allowed dictionary size that xz_dec_run()
- * may allocate once it has parsed the dictionary size from the stream
- * headers. This way excessive allocations can be avoided while still
- * limiting the maximum memory usage to a sane value to prevent running the
- * system out of memory when decompressing streams from untrusted sources.
- *
- * On success, xz_dec_init() returns a pointer to struct xz_dec, which is
- * ready to be used with xz_dec_run(). If memory allocation fails,
- * xz_dec_init() returns NULL.
- */
-XZ_EXTERN struct xz_dec *xz_dec_init(enum xz_mode mode, uint32_t dict_max);
-
-/**
- * xz_dec_run() - Run the XZ decoder
- * @s: Decoder state allocated using xz_dec_init()
- * @b: Input and output buffers
- *
- * The possible return values depend on build options and operation mode.
- * See enum xz_ret for details.
- *
- * Note that if an error occurs in single-call mode (return value is not
- * XZ_STREAM_END), b->in_pos and b->out_pos are not modified and the
- * contents of the output buffer from b->out[b->out_pos] onward are
- * undefined. This is true even after XZ_BUF_ERROR, because with some filter
- * chains, there may be a second pass over the output buffer, and this pass
- * cannot be properly done if the output buffer is truncated. Thus, you
- * cannot give the single-call decoder a too small buffer and then expect to
- * get that amount valid data from the beginning of the stream. You must use
- * the multi-call decoder if you don't want to uncompress the whole stream.
- */
-XZ_EXTERN enum xz_ret xz_dec_run(struct xz_dec *s, struct xz_buf *b);
-
-/**
- * xz_dec_reset() - Reset an already allocated decoder state
- * @s: Decoder state allocated using xz_dec_init()
- *
- * This function can be used to reset the multi-call decoder state without
- * freeing and reallocating memory with xz_dec_end() and xz_dec_init().
- *
- * In single-call mode, xz_dec_reset() is always called in the beginning of
- * xz_dec_run(). Thus, explicit call to xz_dec_reset() is useful only in
- * multi-call mode.
- */
-XZ_EXTERN void xz_dec_reset(struct xz_dec *s);
-
-/**
- * xz_dec_end() - Free the memory allocated for the decoder state
- * @s: Decoder state allocated using xz_dec_init(). If s is NULL,
- * this function does nothing.
- */
-XZ_EXTERN void xz_dec_end(struct xz_dec *s);
-
-/*
- * Standalone build (userspace build or in-kernel build for boot time use)
- * needs a CRC32 implementation. For normal in-kernel use, kernel's own
- * CRC32 module is used instead, and users of this module don't need to
- * care about the functions below.
- */
-#ifndef XZ_INTERNAL_CRC32
-# ifdef __KERNEL__
-# define XZ_INTERNAL_CRC32 0
-# else
-# define XZ_INTERNAL_CRC32 1
-# endif
-#endif
-
-#if XZ_INTERNAL_CRC32
-/*
- * This must be called before any other xz_* function to initialize
- * the CRC32 lookup table.
- */
-XZ_EXTERN void xz_crc32_init(void);
-
-/*
- * Update CRC32 value using the polynomial from IEEE-802.3. To start a new
- * calculation, the third argument must be zero. To continue the calculation,
- * the previously returned value is passed as the third argument.
- */
-XZ_EXTERN uint32_t xz_crc32(const uint8_t *buf, size_t size, uint32_t crc);
-#endif
-#endif
diff --git a/ANDROID_3.4.5/include/linux/yam.h b/ANDROID_3.4.5/include/linux/yam.h
deleted file mode 100644
index 7fe28228..00000000
--- a/ANDROID_3.4.5/include/linux/yam.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/*****************************************************************************/
-
-/*
- * yam.h -- YAM radio modem driver.
- *
- * Copyright (C) 1998 Frederic Rible F1OAT (frible@teaser.fr)
- * Adapted from baycom.c driver written by Thomas Sailer (sailer@ife.ee.ethz.ch)
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * Please note that the GPL allows you to use the driver, NOT the radio.
- * In order to use the radio, you need a license from the communications
- * authority of your country.
- *
- *
- */
-
-/*****************************************************************************/
-
-#define SIOCYAMRESERVED (0)
-#define SIOCYAMSCFG (1) /* Set configuration */
-#define SIOCYAMGCFG (2) /* Get configuration */
-#define SIOCYAMSMCS (3) /* Set mcs data */
-
-#define YAM_IOBASE (1 << 0)
-#define YAM_IRQ (1 << 1)
-#define YAM_BITRATE (1 << 2) /* Bit rate of radio port ->57600 */
-#define YAM_MODE (1 << 3) /* 0=simplex 1=duplex 2=duplex+tempo */
-#define YAM_HOLDDLY (1 << 4) /* duplex tempo (sec) */
-#define YAM_TXDELAY (1 << 5) /* Tx Delay (ms) */
-#define YAM_TXTAIL (1 << 6) /* Tx Tail (ms) */
-#define YAM_PERSIST (1 << 7) /* Persist (ms) */
-#define YAM_SLOTTIME (1 << 8) /* Slottime (ms) */
-#define YAM_BAUDRATE (1 << 9) /* Baud rate of rs232 port ->115200 */
-
-#define YAM_MAXBITRATE 57600
-#define YAM_MAXBAUDRATE 115200
-#define YAM_MAXMODE 2
-#define YAM_MAXHOLDDLY 99
-#define YAM_MAXTXDELAY 999
-#define YAM_MAXTXTAIL 999
-#define YAM_MAXPERSIST 255
-#define YAM_MAXSLOTTIME 999
-
-#define YAM_FPGA_SIZE 5302
-
-struct yamcfg {
- unsigned int mask; /* Mask of commands */
- unsigned int iobase; /* IO Base of COM port */
- unsigned int irq; /* IRQ of COM port */
- unsigned int bitrate; /* Bit rate of radio port */
- unsigned int baudrate; /* Baud rate of the RS232 port */
- unsigned int txdelay; /* TxDelay */
- unsigned int txtail; /* TxTail */
- unsigned int persist; /* Persistence */
- unsigned int slottime; /* Slottime */
- unsigned int mode; /* mode 0 (simp), 1(Dupl), 2(Dupl+delay) */
- unsigned int holddly; /* PTT delay in FullDuplex 2 mode */
-};
-
-struct yamdrv_ioctl_cfg {
- int cmd;
- struct yamcfg cfg;
-};
-
-struct yamdrv_ioctl_mcs {
- int cmd;
- int bitrate;
- unsigned char bits[YAM_FPGA_SIZE];
-};
diff --git a/ANDROID_3.4.5/include/linux/z2_battery.h b/ANDROID_3.4.5/include/linux/z2_battery.h
deleted file mode 100644
index 7b975040..00000000
--- a/ANDROID_3.4.5/include/linux/z2_battery.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef _LINUX_Z2_BATTERY_H
-#define _LINUX_Z2_BATTERY_H
-
-struct z2_battery_info {
- int batt_I2C_bus;
- int batt_I2C_addr;
- int batt_I2C_reg;
- int charge_gpio;
- int min_voltage;
- int max_voltage;
- int batt_div;
- int batt_mult;
- int batt_tech;
- char *batt_name;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/linux/zconf.h b/ANDROID_3.4.5/include/linux/zconf.h
deleted file mode 100644
index 0beb75e3..00000000
--- a/ANDROID_3.4.5/include/linux/zconf.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/* zconf.h -- configuration of the zlib compression library
- * Copyright (C) 1995-1998 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* @(#) $Id$ */
-
-#ifndef _ZCONF_H
-#define _ZCONF_H
-
-/* The memory requirements for deflate are (in bytes):
- (1 << (windowBits+2)) + (1 << (memLevel+9))
- that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values)
- plus a few kilobytes for small objects. For example, if you want to reduce
- the default memory requirements from 256K to 128K, compile with
- make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
- Of course this will generally degrade compression (there's no free lunch).
-
- The memory requirements for inflate are (in bytes) 1 << windowBits
- that is, 32K for windowBits=15 (default value) plus a few kilobytes
- for small objects.
-*/
-
-/* Maximum value for memLevel in deflateInit2 */
-#ifndef MAX_MEM_LEVEL
-# define MAX_MEM_LEVEL 8
-#endif
-
-/* Maximum value for windowBits in deflateInit2 and inflateInit2.
- * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files
- * created by gzip. (Files created by minigzip can still be extracted by
- * gzip.)
- */
-#ifndef MAX_WBITS
-# define MAX_WBITS 15 /* 32K LZ77 window */
-#endif
-
-/* default windowBits for decompression. MAX_WBITS is for compression only */
-#ifndef DEF_WBITS
-# define DEF_WBITS MAX_WBITS
-#endif
-
-/* default memLevel */
-#if MAX_MEM_LEVEL >= 8
-# define DEF_MEM_LEVEL 8
-#else
-# define DEF_MEM_LEVEL MAX_MEM_LEVEL
-#endif
-
- /* Type declarations */
-
-typedef unsigned char Byte; /* 8 bits */
-typedef unsigned int uInt; /* 16 bits or more */
-typedef unsigned long uLong; /* 32 bits or more */
-typedef void *voidp;
-
-#endif /* _ZCONF_H */
diff --git a/ANDROID_3.4.5/include/linux/zlib.h b/ANDROID_3.4.5/include/linux/zlib.h
deleted file mode 100644
index 9c5a6b4d..00000000
--- a/ANDROID_3.4.5/include/linux/zlib.h
+++ /dev/null
@@ -1,711 +0,0 @@
-/* zlib.h -- interface of the 'zlib' general purpose compression library
-
- Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-
- Jean-loup Gailly Mark Adler
- jloup@gzip.org madler@alumni.caltech.edu
-
-
- The data format used by the zlib library is described by RFCs (Request for
- Comments) 1950 to 1952 in the files http://www.ietf.org/rfc/rfc1950.txt
- (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format).
-*/
-
-#ifndef _ZLIB_H
-#define _ZLIB_H
-
-#include <linux/zconf.h>
-
-/* zlib deflate based on ZLIB_VERSION "1.1.3" */
-/* zlib inflate based on ZLIB_VERSION "1.2.3" */
-
-/*
- This is a modified version of zlib for use inside the Linux kernel.
- The main changes are to perform all memory allocation in advance.
-
- Inflation Changes:
- * Z_PACKET_FLUSH is added and used by ppp_deflate. Before returning
- this checks there is no more input data available and the next data
- is a STORED block. It also resets the mode to be read for the next
- data, all as per PPP requirements.
- * Addition of zlib_inflateIncomp which copies incompressible data into
- the history window and adjusts the accoutning without calling
- zlib_inflate itself to inflate the data.
-*/
-
-/*
- The 'zlib' compression library provides in-memory compression and
- decompression functions, including integrity checks of the uncompressed
- data. This version of the library supports only one compression method
- (deflation) but other algorithms will be added later and will have the same
- stream interface.
-
- Compression can be done in a single step if the buffers are large
- enough (for example if an input file is mmap'ed), or can be done by
- repeated calls of the compression function. In the latter case, the
- application must provide more input and/or consume the output
- (providing more output space) before each call.
-
- The compressed data format used by default by the in-memory functions is
- the zlib format, which is a zlib wrapper documented in RFC 1950, wrapped
- around a deflate stream, which is itself documented in RFC 1951.
-
- The library also supports reading and writing files in gzip (.gz) format
- with an interface similar to that of stdio.
-
- The zlib format was designed to be compact and fast for use in memory
- and on communications channels. The gzip format was designed for single-
- file compression on file systems, has a larger header than zlib to maintain
- directory information, and uses a different, slower check method than zlib.
-
- The library does not install any signal handler. The decoder checks
- the consistency of the compressed data, so the library should never
- crash even in case of corrupted input.
-*/
-
-struct internal_state;
-
-typedef struct z_stream_s {
- const Byte *next_in; /* next input byte */
- uInt avail_in; /* number of bytes available at next_in */
- uLong total_in; /* total nb of input bytes read so far */
-
- Byte *next_out; /* next output byte should be put there */
- uInt avail_out; /* remaining free space at next_out */
- uLong total_out; /* total nb of bytes output so far */
-
- char *msg; /* last error message, NULL if no error */
- struct internal_state *state; /* not visible by applications */
-
- void *workspace; /* memory allocated for this stream */
-
- int data_type; /* best guess about the data type: ascii or binary */
- uLong adler; /* adler32 value of the uncompressed data */
- uLong reserved; /* reserved for future use */
-} z_stream;
-
-typedef z_stream *z_streamp;
-
-/*
- The application must update next_in and avail_in when avail_in has
- dropped to zero. It must update next_out and avail_out when avail_out
- has dropped to zero. The application must initialize zalloc, zfree and
- opaque before calling the init function. All other fields are set by the
- compression library and must not be updated by the application.
-
- The opaque value provided by the application will be passed as the first
- parameter for calls of zalloc and zfree. This can be useful for custom
- memory management. The compression library attaches no meaning to the
- opaque value.
-
- zalloc must return NULL if there is not enough memory for the object.
- If zlib is used in a multi-threaded application, zalloc and zfree must be
- thread safe.
-
- On 16-bit systems, the functions zalloc and zfree must be able to allocate
- exactly 65536 bytes, but will not be required to allocate more than this
- if the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS,
- pointers returned by zalloc for objects of exactly 65536 bytes *must*
- have their offset normalized to zero. The default allocation function
- provided by this library ensures this (see zutil.c). To reduce memory
- requirements and avoid any allocation of 64K objects, at the expense of
- compression ratio, compile the library with -DMAX_WBITS=14 (see zconf.h).
-
- The fields total_in and total_out can be used for statistics or
- progress reports. After compression, total_in holds the total size of
- the uncompressed data and may be saved for use in the decompressor
- (particularly if the decompressor wants to decompress everything in
- a single step).
-*/
-
- /* constants */
-
-#define Z_NO_FLUSH 0
-#define Z_PARTIAL_FLUSH 1 /* will be removed, use Z_SYNC_FLUSH instead */
-#define Z_PACKET_FLUSH 2
-#define Z_SYNC_FLUSH 3
-#define Z_FULL_FLUSH 4
-#define Z_FINISH 5
-#define Z_BLOCK 6 /* Only for inflate at present */
-/* Allowed flush values; see deflate() and inflate() below for details */
-
-#define Z_OK 0
-#define Z_STREAM_END 1
-#define Z_NEED_DICT 2
-#define Z_ERRNO (-1)
-#define Z_STREAM_ERROR (-2)
-#define Z_DATA_ERROR (-3)
-#define Z_MEM_ERROR (-4)
-#define Z_BUF_ERROR (-5)
-#define Z_VERSION_ERROR (-6)
-/* Return codes for the compression/decompression functions. Negative
- * values are errors, positive values are used for special but normal events.
- */
-
-#define Z_NO_COMPRESSION 0
-#define Z_BEST_SPEED 1
-#define Z_BEST_COMPRESSION 9
-#define Z_DEFAULT_COMPRESSION (-1)
-/* compression levels */
-
-#define Z_FILTERED 1
-#define Z_HUFFMAN_ONLY 2
-#define Z_DEFAULT_STRATEGY 0
-/* compression strategy; see deflateInit2() below for details */
-
-#define Z_BINARY 0
-#define Z_ASCII 1
-#define Z_UNKNOWN 2
-/* Possible values of the data_type field */
-
-#define Z_DEFLATED 8
-/* The deflate compression method (the only one supported in this version) */
-
- /* basic functions */
-
-extern int zlib_deflate_workspacesize (int windowBits, int memLevel);
-/*
- Returns the number of bytes that needs to be allocated for a per-
- stream workspace with the specified parameters. A pointer to this
- number of bytes should be returned in stream->workspace before
- you call zlib_deflateInit() or zlib_deflateInit2(). If you call
- zlib_deflateInit(), specify windowBits = MAX_WBITS and memLevel =
- MAX_MEM_LEVEL here. If you call zlib_deflateInit2(), the windowBits
- and memLevel parameters passed to zlib_deflateInit2() must not
- exceed those passed here.
-*/
-
-/*
-extern int deflateInit (z_streamp strm, int level);
-
- Initializes the internal stream state for compression. The fields
- zalloc, zfree and opaque must be initialized before by the caller.
- If zalloc and zfree are set to NULL, deflateInit updates them to
- use default allocation functions.
-
- The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9:
- 1 gives best speed, 9 gives best compression, 0 gives no compression at
- all (the input data is simply copied a block at a time).
- Z_DEFAULT_COMPRESSION requests a default compromise between speed and
- compression (currently equivalent to level 6).
-
- deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not
- enough memory, Z_STREAM_ERROR if level is not a valid compression level,
- Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible
- with the version assumed by the caller (ZLIB_VERSION).
- msg is set to null if there is no error message. deflateInit does not
- perform any compression: this will be done by deflate().
-*/
-
-
-extern int zlib_deflate (z_streamp strm, int flush);
-/*
- deflate compresses as much data as possible, and stops when the input
- buffer becomes empty or the output buffer becomes full. It may introduce some
- output latency (reading input without producing any output) except when
- forced to flush.
-
- The detailed semantics are as follows. deflate performs one or both of the
- following actions:
-
- - Compress more input starting at next_in and update next_in and avail_in
- accordingly. If not all input can be processed (because there is not
- enough room in the output buffer), next_in and avail_in are updated and
- processing will resume at this point for the next call of deflate().
-
- - Provide more output starting at next_out and update next_out and avail_out
- accordingly. This action is forced if the parameter flush is non zero.
- Forcing flush frequently degrades the compression ratio, so this parameter
- should be set only when necessary (in interactive applications).
- Some output may be provided even if flush is not set.
-
- Before the call of deflate(), the application should ensure that at least
- one of the actions is possible, by providing more input and/or consuming
- more output, and updating avail_in or avail_out accordingly; avail_out
- should never be zero before the call. The application can consume the
- compressed output when it wants, for example when the output buffer is full
- (avail_out == 0), or after each call of deflate(). If deflate returns Z_OK
- and with zero avail_out, it must be called again after making room in the
- output buffer because there might be more output pending.
-
- If the parameter flush is set to Z_SYNC_FLUSH, all pending output is
- flushed to the output buffer and the output is aligned on a byte boundary, so
- that the decompressor can get all input data available so far. (In particular
- avail_in is zero after the call if enough output space has been provided
- before the call.) Flushing may degrade compression for some compression
- algorithms and so it should be used only when necessary.
-
- If flush is set to Z_FULL_FLUSH, all output is flushed as with
- Z_SYNC_FLUSH, and the compression state is reset so that decompression can
- restart from this point if previous compressed data has been damaged or if
- random access is desired. Using Z_FULL_FLUSH too often can seriously degrade
- the compression.
-
- If deflate returns with avail_out == 0, this function must be called again
- with the same value of the flush parameter and more output space (updated
- avail_out), until the flush is complete (deflate returns with non-zero
- avail_out).
-
- If the parameter flush is set to Z_FINISH, pending input is processed,
- pending output is flushed and deflate returns with Z_STREAM_END if there
- was enough output space; if deflate returns with Z_OK, this function must be
- called again with Z_FINISH and more output space (updated avail_out) but no
- more input data, until it returns with Z_STREAM_END or an error. After
- deflate has returned Z_STREAM_END, the only possible operations on the
- stream are deflateReset or deflateEnd.
-
- Z_FINISH can be used immediately after deflateInit if all the compression
- is to be done in a single step. In this case, avail_out must be at least
- 0.1% larger than avail_in plus 12 bytes. If deflate does not return
- Z_STREAM_END, then it must be called again as described above.
-
- deflate() sets strm->adler to the adler32 checksum of all input read
- so far (that is, total_in bytes).
-
- deflate() may update data_type if it can make a good guess about
- the input data type (Z_ASCII or Z_BINARY). In doubt, the data is considered
- binary. This field is only for information purposes and does not affect
- the compression algorithm in any manner.
-
- deflate() returns Z_OK if some progress has been made (more input
- processed or more output produced), Z_STREAM_END if all input has been
- consumed and all output has been produced (only when flush is set to
- Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example
- if next_in or next_out was NULL), Z_BUF_ERROR if no progress is possible
- (for example avail_in or avail_out was zero).
-*/
-
-
-extern int zlib_deflateEnd (z_streamp strm);
-/*
- All dynamically allocated data structures for this stream are freed.
- This function discards any unprocessed input and does not flush any
- pending output.
-
- deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the
- stream state was inconsistent, Z_DATA_ERROR if the stream was freed
- prematurely (some input or output was discarded). In the error case,
- msg may be set but then points to a static string (which must not be
- deallocated).
-*/
-
-
-extern int zlib_inflate_workspacesize (void);
-/*
- Returns the number of bytes that needs to be allocated for a per-
- stream workspace. A pointer to this number of bytes should be
- returned in stream->workspace before calling zlib_inflateInit().
-*/
-
-/*
-extern int zlib_inflateInit (z_streamp strm);
-
- Initializes the internal stream state for decompression. The fields
- next_in, avail_in, and workspace must be initialized before by
- the caller. If next_in is not NULL and avail_in is large enough (the exact
- value depends on the compression method), inflateInit determines the
- compression method from the zlib header and allocates all data structures
- accordingly; otherwise the allocation will be deferred to the first call of
- inflate. If zalloc and zfree are set to NULL, inflateInit updates them to
- use default allocation functions.
-
- inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough
- memory, Z_VERSION_ERROR if the zlib library version is incompatible with the
- version assumed by the caller. msg is set to null if there is no error
- message. inflateInit does not perform any decompression apart from reading
- the zlib header if present: this will be done by inflate(). (So next_in and
- avail_in may be modified, but next_out and avail_out are unchanged.)
-*/
-
-
-extern int zlib_inflate (z_streamp strm, int flush);
-/*
- inflate decompresses as much data as possible, and stops when the input
- buffer becomes empty or the output buffer becomes full. It may introduce
- some output latency (reading input without producing any output) except when
- forced to flush.
-
- The detailed semantics are as follows. inflate performs one or both of the
- following actions:
-
- - Decompress more input starting at next_in and update next_in and avail_in
- accordingly. If not all input can be processed (because there is not
- enough room in the output buffer), next_in is updated and processing
- will resume at this point for the next call of inflate().
-
- - Provide more output starting at next_out and update next_out and avail_out
- accordingly. inflate() provides as much output as possible, until there
- is no more input data or no more space in the output buffer (see below
- about the flush parameter).
-
- Before the call of inflate(), the application should ensure that at least
- one of the actions is possible, by providing more input and/or consuming
- more output, and updating the next_* and avail_* values accordingly.
- The application can consume the uncompressed output when it wants, for
- example when the output buffer is full (avail_out == 0), or after each
- call of inflate(). If inflate returns Z_OK and with zero avail_out, it
- must be called again after making room in the output buffer because there
- might be more output pending.
-
- The flush parameter of inflate() can be Z_NO_FLUSH, Z_SYNC_FLUSH,
- Z_FINISH, or Z_BLOCK. Z_SYNC_FLUSH requests that inflate() flush as much
- output as possible to the output buffer. Z_BLOCK requests that inflate() stop
- if and when it gets to the next deflate block boundary. When decoding the
- zlib or gzip format, this will cause inflate() to return immediately after
- the header and before the first block. When doing a raw inflate, inflate()
- will go ahead and process the first block, and will return when it gets to
- the end of that block, or when it runs out of data.
-
- The Z_BLOCK option assists in appending to or combining deflate streams.
- Also to assist in this, on return inflate() will set strm->data_type to the
- number of unused bits in the last byte taken from strm->next_in, plus 64
- if inflate() is currently decoding the last block in the deflate stream,
- plus 128 if inflate() returned immediately after decoding an end-of-block
- code or decoding the complete header up to just before the first byte of the
- deflate stream. The end-of-block will not be indicated until all of the
- uncompressed data from that block has been written to strm->next_out. The
- number of unused bits may in general be greater than seven, except when
- bit 7 of data_type is set, in which case the number of unused bits will be
- less than eight.
-
- inflate() should normally be called until it returns Z_STREAM_END or an
- error. However if all decompression is to be performed in a single step
- (a single call of inflate), the parameter flush should be set to
- Z_FINISH. In this case all pending input is processed and all pending
- output is flushed; avail_out must be large enough to hold all the
- uncompressed data. (The size of the uncompressed data may have been saved
- by the compressor for this purpose.) The next operation on this stream must
- be inflateEnd to deallocate the decompression state. The use of Z_FINISH
- is never required, but can be used to inform inflate that a faster approach
- may be used for the single inflate() call.
-
- In this implementation, inflate() always flushes as much output as
- possible to the output buffer, and always uses the faster approach on the
- first call. So the only effect of the flush parameter in this implementation
- is on the return value of inflate(), as noted below, or when it returns early
- because Z_BLOCK is used.
-
- If a preset dictionary is needed after this call (see inflateSetDictionary
- below), inflate sets strm->adler to the adler32 checksum of the dictionary
- chosen by the compressor and returns Z_NEED_DICT; otherwise it sets
- strm->adler to the adler32 checksum of all output produced so far (that is,
- total_out bytes) and returns Z_OK, Z_STREAM_END or an error code as described
- below. At the end of the stream, inflate() checks that its computed adler32
- checksum is equal to that saved by the compressor and returns Z_STREAM_END
- only if the checksum is correct.
-
- inflate() will decompress and check either zlib-wrapped or gzip-wrapped
- deflate data. The header type is detected automatically. Any information
- contained in the gzip header is not retained, so applications that need that
- information should instead use raw inflate, see inflateInit2() below, or
- inflateBack() and perform their own processing of the gzip header and
- trailer.
-
- inflate() returns Z_OK if some progress has been made (more input processed
- or more output produced), Z_STREAM_END if the end of the compressed data has
- been reached and all uncompressed output has been produced, Z_NEED_DICT if a
- preset dictionary is needed at this point, Z_DATA_ERROR if the input data was
- corrupted (input stream not conforming to the zlib format or incorrect check
- value), Z_STREAM_ERROR if the stream structure was inconsistent (for example
- if next_in or next_out was NULL), Z_MEM_ERROR if there was not enough memory,
- Z_BUF_ERROR if no progress is possible or if there was not enough room in the
- output buffer when Z_FINISH is used. Note that Z_BUF_ERROR is not fatal, and
- inflate() can be called again with more input and more output space to
- continue decompressing. If Z_DATA_ERROR is returned, the application may then
- call inflateSync() to look for a good compression block if a partial recovery
- of the data is desired.
-*/
-
-
-extern int zlib_inflateEnd (z_streamp strm);
-/*
- All dynamically allocated data structures for this stream are freed.
- This function discards any unprocessed input and does not flush any
- pending output.
-
- inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state
- was inconsistent. In the error case, msg may be set but then points to a
- static string (which must not be deallocated).
-*/
-
- /* Advanced functions */
-
-/*
- The following functions are needed only in some special applications.
-*/
-
-/*
-extern int deflateInit2 (z_streamp strm,
- int level,
- int method,
- int windowBits,
- int memLevel,
- int strategy);
-
- This is another version of deflateInit with more compression options. The
- fields next_in, zalloc, zfree and opaque must be initialized before by
- the caller.
-
- The method parameter is the compression method. It must be Z_DEFLATED in
- this version of the library.
-
- The windowBits parameter is the base two logarithm of the window size
- (the size of the history buffer). It should be in the range 8..15 for this
- version of the library. Larger values of this parameter result in better
- compression at the expense of memory usage. The default value is 15 if
- deflateInit is used instead.
-
- The memLevel parameter specifies how much memory should be allocated
- for the internal compression state. memLevel=1 uses minimum memory but
- is slow and reduces compression ratio; memLevel=9 uses maximum memory
- for optimal speed. The default value is 8. See zconf.h for total memory
- usage as a function of windowBits and memLevel.
-
- The strategy parameter is used to tune the compression algorithm. Use the
- value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a
- filter (or predictor), or Z_HUFFMAN_ONLY to force Huffman encoding only (no
- string match). Filtered data consists mostly of small values with a
- somewhat random distribution. In this case, the compression algorithm is
- tuned to compress them better. The effect of Z_FILTERED is to force more
- Huffman coding and less string matching; it is somewhat intermediate
- between Z_DEFAULT and Z_HUFFMAN_ONLY. The strategy parameter only affects
- the compression ratio but not the correctness of the compressed output even
- if it is not set appropriately.
-
- deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
- memory, Z_STREAM_ERROR if a parameter is invalid (such as an invalid
- method). msg is set to null if there is no error message. deflateInit2 does
- not perform any compression: this will be done by deflate().
-*/
-
-#if 0
-extern int zlib_deflateSetDictionary (z_streamp strm,
- const Byte *dictionary,
- uInt dictLength);
-#endif
-/*
- Initializes the compression dictionary from the given byte sequence
- without producing any compressed output. This function must be called
- immediately after deflateInit, deflateInit2 or deflateReset, before any
- call of deflate. The compressor and decompressor must use exactly the same
- dictionary (see inflateSetDictionary).
-
- The dictionary should consist of strings (byte sequences) that are likely
- to be encountered later in the data to be compressed, with the most commonly
- used strings preferably put towards the end of the dictionary. Using a
- dictionary is most useful when the data to be compressed is short and can be
- predicted with good accuracy; the data can then be compressed better than
- with the default empty dictionary.
-
- Depending on the size of the compression data structures selected by
- deflateInit or deflateInit2, a part of the dictionary may in effect be
- discarded, for example if the dictionary is larger than the window size in
- deflate or deflate2. Thus the strings most likely to be useful should be
- put at the end of the dictionary, not at the front.
-
- Upon return of this function, strm->adler is set to the Adler32 value
- of the dictionary; the decompressor may later use this value to determine
- which dictionary has been used by the compressor. (The Adler32 value
- applies to the whole dictionary even if only a subset of the dictionary is
- actually used by the compressor.)
-
- deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a
- parameter is invalid (such as NULL dictionary) or the stream state is
- inconsistent (for example if deflate has already been called for this stream
- or if the compression method is bsort). deflateSetDictionary does not
- perform any compression: this will be done by deflate().
-*/
-
-#if 0
-extern int zlib_deflateCopy (z_streamp dest, z_streamp source);
-#endif
-
-/*
- Sets the destination stream as a complete copy of the source stream.
-
- This function can be useful when several compression strategies will be
- tried, for example when there are several ways of pre-processing the input
- data with a filter. The streams that will be discarded should then be freed
- by calling deflateEnd. Note that deflateCopy duplicates the internal
- compression state which can be quite large, so this strategy is slow and
- can consume lots of memory.
-
- deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not
- enough memory, Z_STREAM_ERROR if the source stream state was inconsistent
- (such as zalloc being NULL). msg is left unchanged in both source and
- destination.
-*/
-
-extern int zlib_deflateReset (z_streamp strm);
-/*
- This function is equivalent to deflateEnd followed by deflateInit,
- but does not free and reallocate all the internal compression state.
- The stream will keep the same compression level and any other attributes
- that may have been set by deflateInit2.
-
- deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
- stream state was inconsistent (such as zalloc or state being NULL).
-*/
-
-static inline unsigned long deflateBound(unsigned long s)
-{
- return s + ((s + 7) >> 3) + ((s + 63) >> 6) + 11;
-}
-
-#if 0
-extern int zlib_deflateParams (z_streamp strm, int level, int strategy);
-#endif
-/*
- Dynamically update the compression level and compression strategy. The
- interpretation of level and strategy is as in deflateInit2. This can be
- used to switch between compression and straight copy of the input data, or
- to switch to a different kind of input data requiring a different
- strategy. If the compression level is changed, the input available so far
- is compressed with the old level (and may be flushed); the new level will
- take effect only at the next call of deflate().
-
- Before the call of deflateParams, the stream state must be set as for
- a call of deflate(), since the currently available input may have to
- be compressed and flushed. In particular, strm->avail_out must be non-zero.
-
- deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source
- stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR
- if strm->avail_out was zero.
-*/
-
-/*
-extern int inflateInit2 (z_streamp strm, int windowBits);
-
- This is another version of inflateInit with an extra parameter. The
- fields next_in, avail_in, zalloc, zfree and opaque must be initialized
- before by the caller.
-
- The windowBits parameter is the base two logarithm of the maximum window
- size (the size of the history buffer). It should be in the range 8..15 for
- this version of the library. The default value is 15 if inflateInit is used
- instead. windowBits must be greater than or equal to the windowBits value
- provided to deflateInit2() while compressing, or it must be equal to 15 if
- deflateInit2() was not used. If a compressed stream with a larger window
- size is given as input, inflate() will return with the error code
- Z_DATA_ERROR instead of trying to allocate a larger window.
-
- windowBits can also be -8..-15 for raw inflate. In this case, -windowBits
- determines the window size. inflate() will then process raw deflate data,
- not looking for a zlib or gzip header, not generating a check value, and not
- looking for any check values for comparison at the end of the stream. This
- is for use with other formats that use the deflate compressed data format
- such as zip. Those formats provide their own check values. If a custom
- format is developed using the raw deflate format for compressed data, it is
- recommended that a check value such as an adler32 or a crc32 be applied to
- the uncompressed data as is done in the zlib, gzip, and zip formats. For
- most applications, the zlib format should be used as is. Note that comments
- above on the use in deflateInit2() applies to the magnitude of windowBits.
-
- windowBits can also be greater than 15 for optional gzip decoding. Add
- 32 to windowBits to enable zlib and gzip decoding with automatic header
- detection, or add 16 to decode only the gzip format (the zlib format will
- return a Z_DATA_ERROR). If a gzip stream is being decoded, strm->adler is
- a crc32 instead of an adler32.
-
- inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
- memory, Z_STREAM_ERROR if a parameter is invalid (such as a null strm). msg
- is set to null if there is no error message. inflateInit2 does not perform
- any decompression apart from reading the zlib header if present: this will
- be done by inflate(). (So next_in and avail_in may be modified, but next_out
- and avail_out are unchanged.)
-*/
-
-extern int zlib_inflateSetDictionary (z_streamp strm,
- const Byte *dictionary,
- uInt dictLength);
-/*
- Initializes the decompression dictionary from the given uncompressed byte
- sequence. This function must be called immediately after a call of inflate,
- if that call returned Z_NEED_DICT. The dictionary chosen by the compressor
- can be determined from the adler32 value returned by that call of inflate.
- The compressor and decompressor must use exactly the same dictionary (see
- deflateSetDictionary). For raw inflate, this function can be called
- immediately after inflateInit2() or inflateReset() and before any call of
- inflate() to set the dictionary. The application must insure that the
- dictionary that was used for compression is provided.
-
- inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a
- parameter is invalid (such as NULL dictionary) or the stream state is
- inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the
- expected one (incorrect adler32 value). inflateSetDictionary does not
- perform any decompression: this will be done by subsequent calls of
- inflate().
-*/
-
-#if 0
-extern int zlib_inflateSync (z_streamp strm);
-#endif
-/*
- Skips invalid compressed data until a full flush point (see above the
- description of deflate with Z_FULL_FLUSH) can be found, or until all
- available input is skipped. No output is provided.
-
- inflateSync returns Z_OK if a full flush point has been found, Z_BUF_ERROR
- if no more input was provided, Z_DATA_ERROR if no flush point has been found,
- or Z_STREAM_ERROR if the stream structure was inconsistent. In the success
- case, the application may save the current current value of total_in which
- indicates where valid compressed data was found. In the error case, the
- application may repeatedly call inflateSync, providing more input each time,
- until success or end of the input data.
-*/
-
-extern int zlib_inflateReset (z_streamp strm);
-/*
- This function is equivalent to inflateEnd followed by inflateInit,
- but does not free and reallocate all the internal decompression state.
- The stream will keep attributes that may have been set by inflateInit2.
-
- inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
- stream state was inconsistent (such as zalloc or state being NULL).
-*/
-
-extern int zlib_inflateIncomp (z_stream *strm);
-/*
- This function adds the data at next_in (avail_in bytes) to the output
- history without performing any output. There must be no pending output,
- and the decompressor must be expecting to see the start of a block.
- Calling this function is equivalent to decompressing a stored block
- containing the data at next_in (except that the data is not output).
-*/
-
-#define zlib_deflateInit(strm, level) \
- zlib_deflateInit2((strm), (level), Z_DEFLATED, MAX_WBITS, \
- DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY)
-#define zlib_inflateInit(strm) \
- zlib_inflateInit2((strm), DEF_WBITS)
-
-extern int zlib_deflateInit2(z_streamp strm, int level, int method,
- int windowBits, int memLevel,
- int strategy);
-extern int zlib_inflateInit2(z_streamp strm, int windowBits);
-
-#if !defined(_Z_UTIL_H) && !defined(NO_DUMMY_DECL)
- struct internal_state {int dummy;}; /* hack for buggy compilers */
-#endif
-
-/* Utility function: initialize zlib, unpack binary blob, clean up zlib,
- * return len or negative error code. */
-extern int zlib_inflate_blob(void *dst, unsigned dst_sz, const void *src, unsigned src_sz);
-
-#endif /* _ZLIB_H */
diff --git a/ANDROID_3.4.5/include/linux/zorro.h b/ANDROID_3.4.5/include/linux/zorro.h
deleted file mode 100644
index dff42025..00000000
--- a/ANDROID_3.4.5/include/linux/zorro.h
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
- * linux/zorro.h -- Amiga AutoConfig (Zorro) Bus Definitions
- *
- * Copyright (C) 1995--2003 Geert Uytterhoeven
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file COPYING in the main directory of this archive
- * for more details.
- */
-
-#ifndef _LINUX_ZORRO_H
-#define _LINUX_ZORRO_H
-
-#include <linux/device.h>
-
-
- /*
- * Each Zorro board has a 32-bit ID of the form
- *
- * mmmmmmmmmmmmmmmmppppppppeeeeeeee
- *
- * with
- *
- * mmmmmmmmmmmmmmmm 16-bit Manufacturer ID (assigned by CBM (sigh))
- * pppppppp 8-bit Product ID (assigned by manufacturer)
- * eeeeeeee 8-bit Extended Product ID (currently only used
- * for some GVP boards)
- */
-
-
-#define ZORRO_MANUF(id) ((id) >> 16)
-#define ZORRO_PROD(id) (((id) >> 8) & 0xff)
-#define ZORRO_EPC(id) ((id) & 0xff)
-
-#define ZORRO_ID(manuf, prod, epc) \
- ((ZORRO_MANUF_##manuf << 16) | ((prod) << 8) | (epc))
-
-typedef __u32 zorro_id;
-
-
-/* Include the ID list */
-#include <linux/zorro_ids.h>
-
-
- /*
- * GVP identifies most of its products through the 'extended product code'
- * (epc). The epc has to be ANDed with the GVP_PRODMASK before the
- * identification.
- */
-
-#define GVP_PRODMASK (0xf8)
-#define GVP_SCSICLKMASK (0x01)
-
-enum GVP_flags {
- GVP_IO = 0x01,
- GVP_ACCEL = 0x02,
- GVP_SCSI = 0x04,
- GVP_24BITDMA = 0x08,
- GVP_25BITDMA = 0x10,
- GVP_NOBANK = 0x20,
- GVP_14MHZ = 0x40,
-};
-
-
-struct Node {
- struct Node *ln_Succ; /* Pointer to next (successor) */
- struct Node *ln_Pred; /* Pointer to previous (predecessor) */
- __u8 ln_Type;
- __s8 ln_Pri; /* Priority, for sorting */
- __s8 *ln_Name; /* ID string, null terminated */
-} __attribute__ ((packed));
-
-struct ExpansionRom {
- /* -First 16 bytes of the expansion ROM */
- __u8 er_Type; /* Board type, size and flags */
- __u8 er_Product; /* Product number, assigned by manufacturer */
- __u8 er_Flags; /* Flags */
- __u8 er_Reserved03; /* Must be zero ($ff inverted) */
- __u16 er_Manufacturer; /* Unique ID, ASSIGNED BY COMMODORE-AMIGA! */
- __u32 er_SerialNumber; /* Available for use by manufacturer */
- __u16 er_InitDiagVec; /* Offset to optional "DiagArea" structure */
- __u8 er_Reserved0c;
- __u8 er_Reserved0d;
- __u8 er_Reserved0e;
- __u8 er_Reserved0f;
-} __attribute__ ((packed));
-
-/* er_Type board type bits */
-#define ERT_TYPEMASK 0xc0
-#define ERT_ZORROII 0xc0
-#define ERT_ZORROIII 0x80
-
-/* other bits defined in er_Type */
-#define ERTB_MEMLIST 5 /* Link RAM into free memory list */
-#define ERTF_MEMLIST (1<<5)
-
-struct ConfigDev {
- struct Node cd_Node;
- __u8 cd_Flags; /* (read/write) */
- __u8 cd_Pad; /* reserved */
- struct ExpansionRom cd_Rom; /* copy of board's expansion ROM */
- void *cd_BoardAddr; /* where in memory the board was placed */
- __u32 cd_BoardSize; /* size of board in bytes */
- __u16 cd_SlotAddr; /* which slot number (PRIVATE) */
- __u16 cd_SlotSize; /* number of slots (PRIVATE) */
- void *cd_Driver; /* pointer to node of driver */
- struct ConfigDev *cd_NextCD; /* linked list of drivers to config */
- __u32 cd_Unused[4]; /* for whatever the driver wants */
-} __attribute__ ((packed));
-
-#define ZORRO_NUM_AUTO 16
-
-#ifdef __KERNEL__
-
-#include <linux/init.h>
-#include <linux/ioport.h>
-#include <linux/mod_devicetable.h>
-
-#include <asm/zorro.h>
-
-
- /*
- * Zorro devices
- */
-
-struct zorro_dev {
- struct ExpansionRom rom;
- zorro_id id;
- struct zorro_driver *driver; /* which driver has allocated this device */
- struct device dev; /* Generic device interface */
- u16 slotaddr;
- u16 slotsize;
- char name[64];
- struct resource resource;
-};
-
-#define to_zorro_dev(n) container_of(n, struct zorro_dev, dev)
-
-
- /*
- * Zorro bus
- */
-
-extern struct bus_type zorro_bus_type;
-
-
- /*
- * Zorro device drivers
- */
-
-struct zorro_driver {
- struct list_head node;
- char *name;
- const struct zorro_device_id *id_table; /* NULL if wants all devices */
- int (*probe)(struct zorro_dev *z, const struct zorro_device_id *id); /* New device inserted */
- void (*remove)(struct zorro_dev *z); /* Device removed (NULL if not a hot-plug capable driver) */
- struct device_driver driver;
-};
-
-#define to_zorro_driver(drv) container_of(drv, struct zorro_driver, driver)
-
-
-#define zorro_for_each_dev(dev) \
- for (dev = &zorro_autocon[0]; dev < zorro_autocon+zorro_num_autocon; dev++)
-
-
-/* New-style probing */
-extern int zorro_register_driver(struct zorro_driver *);
-extern void zorro_unregister_driver(struct zorro_driver *);
-extern const struct zorro_device_id *zorro_match_device(const struct zorro_device_id *ids, const struct zorro_dev *z);
-static inline struct zorro_driver *zorro_dev_driver(const struct zorro_dev *z)
-{
- return z->driver;
-}
-
-
-extern unsigned int zorro_num_autocon; /* # of autoconfig devices found */
-extern struct zorro_dev zorro_autocon[ZORRO_NUM_AUTO];
-
-
- /*
- * Zorro Functions
- */
-
-extern struct zorro_dev *zorro_find_device(zorro_id id,
- struct zorro_dev *from);
-
-#define zorro_resource_start(z) ((z)->resource.start)
-#define zorro_resource_end(z) ((z)->resource.end)
-#define zorro_resource_len(z) (resource_size(&(z)->resource))
-#define zorro_resource_flags(z) ((z)->resource.flags)
-
-#define zorro_request_device(z, name) \
- request_mem_region(zorro_resource_start(z), zorro_resource_len(z), name)
-#define zorro_release_device(z) \
- release_mem_region(zorro_resource_start(z), zorro_resource_len(z))
-
-/* Similar to the helpers above, these manipulate per-zorro_dev
- * driver-specific data. They are really just a wrapper around
- * the generic device structure functions of these calls.
- */
-static inline void *zorro_get_drvdata (struct zorro_dev *z)
-{
- return dev_get_drvdata(&z->dev);
-}
-
-static inline void zorro_set_drvdata (struct zorro_dev *z, void *data)
-{
- dev_set_drvdata(&z->dev, data);
-}
-
-
- /*
- * Bitmask indicating portions of available Zorro II RAM that are unused
- * by the system. Every bit represents a 64K chunk, for a maximum of 8MB
- * (128 chunks, physical 0x00200000-0x009fffff).
- *
- * If you want to use (= allocate) portions of this RAM, you should clear
- * the corresponding bits.
- */
-
-extern DECLARE_BITMAP(zorro_unused_z2ram, 128);
-
-#define Z2RAM_START (0x00200000)
-#define Z2RAM_END (0x00a00000)
-#define Z2RAM_SIZE (0x00800000)
-#define Z2RAM_CHUNKSIZE (0x00010000)
-#define Z2RAM_CHUNKMASK (0x0000ffff)
-#define Z2RAM_CHUNKSHIFT (16)
-
-
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_ZORRO_H */
diff --git a/ANDROID_3.4.5/include/linux/zorro_ids.h b/ANDROID_3.4.5/include/linux/zorro_ids.h
deleted file mode 100644
index 74bc53bc..00000000
--- a/ANDROID_3.4.5/include/linux/zorro_ids.h
+++ /dev/null
@@ -1,552 +0,0 @@
-/*
- * Zorro board IDs
- *
- * Please keep sorted.
- */
-
-
-#define ZORRO_MANUF_PACIFIC_PERIPHERALS 0x00D3
-#define ZORRO_PROD_PACIFIC_PERIPHERALS_SE_2000_A500 ZORRO_ID(PACIFIC_PERIPHERALS, 0x00, 0)
-#define ZORRO_PROD_PACIFIC_PERIPHERALS_SCSI ZORRO_ID(PACIFIC_PERIPHERALS, 0x0A, 0)
-
-#define ZORRO_MANUF_MACROSYSTEMS_USA_2 0x0100
-#define ZORRO_PROD_MACROSYSTEMS_WARP_ENGINE ZORRO_ID(MACROSYSTEMS_USA_2, 0x13, 0)
-
-#define ZORRO_MANUF_KUPKE_1 0x00DD
-#define ZORRO_PROD_KUPKE_GOLEM_RAM_BOX_2MB ZORRO_ID(KUPKE_1, 0x00, 0)
-
-#define ZORRO_MANUF_MEMPHIS 0x0100
-#define ZORRO_PROD_MEMPHIS_STORMBRINGER ZORRO_ID(MEMPHIS, 0x00, 0)
-
-#define ZORRO_MANUF_3_STATE 0x0200
-#define ZORRO_PROD_3_STATE_MEGAMIX_2000 ZORRO_ID(3_STATE, 0x02, 0)
-
-#define ZORRO_MANUF_COMMODORE_BRAUNSCHWEIG 0x0201
-#define ZORRO_PROD_CBM_A2088_A2286 ZORRO_ID(COMMODORE_BRAUNSCHWEIG, 0x01, 0)
-#define ZORRO_PROD_CBM_A2286 ZORRO_ID(COMMODORE_BRAUNSCHWEIG, 0x02, 0)
-#define ZORRO_PROD_CBM_A4091_1 ZORRO_ID(COMMODORE_BRAUNSCHWEIG, 0x54, 0)
-#define ZORRO_PROD_CBM_A2386SX_1 ZORRO_ID(COMMODORE_BRAUNSCHWEIG, 0x67, 0)
-
-#define ZORRO_MANUF_COMMODORE_WEST_CHESTER_1 0x0202
-#define ZORRO_PROD_CBM_A2090A ZORRO_ID(COMMODORE_WEST_CHESTER_1, 0x01, 0)
-#define ZORRO_PROD_CBM_A590_A2091_1 ZORRO_ID(COMMODORE_WEST_CHESTER_1, 0x02, 0)
-#define ZORRO_PROD_CBM_A590_A2091_2 ZORRO_ID(COMMODORE_WEST_CHESTER_1, 0x03, 0)
-#define ZORRO_PROD_CBM_A2090B ZORRO_ID(COMMODORE_WEST_CHESTER_1, 0x04, 0)
-#define ZORRO_PROD_CBM_A2060 ZORRO_ID(COMMODORE_WEST_CHESTER_1, 0x09, 0)
-#define ZORRO_PROD_CBM_A590_A2052_A2058_A2091 ZORRO_ID(COMMODORE_WEST_CHESTER_1, 0x0A, 0)
-#define ZORRO_PROD_CBM_A560_RAM ZORRO_ID(COMMODORE_WEST_CHESTER_1, 0x20, 0)
-#define ZORRO_PROD_CBM_A2232_PROTOTYPE ZORRO_ID(COMMODORE_WEST_CHESTER_1, 0x45, 0)
-#define ZORRO_PROD_CBM_A2232 ZORRO_ID(COMMODORE_WEST_CHESTER_1, 0x46, 0)
-#define ZORRO_PROD_CBM_A2620 ZORRO_ID(COMMODORE_WEST_CHESTER_1, 0x50, 0)
-#define ZORRO_PROD_CBM_A2630 ZORRO_ID(COMMODORE_WEST_CHESTER_1, 0x51, 0)
-#define ZORRO_PROD_CBM_A4091_2 ZORRO_ID(COMMODORE_WEST_CHESTER_1, 0x54, 0)
-#define ZORRO_PROD_CBM_A2065_1 ZORRO_ID(COMMODORE_WEST_CHESTER_1, 0x5A, 0)
-#define ZORRO_PROD_CBM_ROMULATOR ZORRO_ID(COMMODORE_WEST_CHESTER_1, 0x60, 0)
-#define ZORRO_PROD_CBM_A3000_TEST_FIXTURE ZORRO_ID(COMMODORE_WEST_CHESTER_1, 0x61, 0)
-#define ZORRO_PROD_CBM_A2386SX_2 ZORRO_ID(COMMODORE_WEST_CHESTER_1, 0x67, 0)
-#define ZORRO_PROD_CBM_A2065_2 ZORRO_ID(COMMODORE_WEST_CHESTER_1, 0x70, 0)
-
-#define ZORRO_MANUF_COMMODORE_WEST_CHESTER_2 0x0203
-#define ZORRO_PROD_CBM_A2090A_CM ZORRO_ID(COMMODORE_WEST_CHESTER_2, 0x03, 0)
-
-#define ZORRO_MANUF_PROGRESSIVE_PERIPHERALS_AND_SYSTEMS_2 0x02F4
-#define ZORRO_PROD_PPS_EXP8000 ZORRO_ID(PROGRESSIVE_PERIPHERALS_AND_SYSTEMS_2, 0x02, 0)
-
-#define ZORRO_MANUF_KOLFF_COMPUTER_SUPPLIES 0x02FF
-#define ZORRO_PROD_KCS_POWER_PC_BOARD ZORRO_ID(KOLFF_COMPUTER_SUPPLIES, 0x00, 0)
-
-#define ZORRO_MANUF_CARDCO_1 0x03EC
-#define ZORRO_PROD_CARDCO_KRONOS_2000_1 ZORRO_ID(CARDCO_1, 0x04, 0)
-#define ZORRO_PROD_CARDCO_A1000_1 ZORRO_ID(CARDCO_1, 0x0C, 0)
-#define ZORRO_PROD_CARDCO_ESCORT ZORRO_ID(CARDCO_1, 0x0E, 0)
-#define ZORRO_PROD_CARDCO_A2410 ZORRO_ID(CARDCO_1, 0xF5, 0)
-
-#define ZORRO_MANUF_A_SQUARED 0x03ED
-#define ZORRO_PROD_A_SQUARED_LIVE_2000 ZORRO_ID(A_SQUARED, 0x01, 0)
-
-#define ZORRO_MANUF_COMSPEC_COMMUNICATIONS 0x03EE
-#define ZORRO_PROD_COMSPEC_COMMUNICATIONS_AX2000 ZORRO_ID(COMSPEC_COMMUNICATIONS, 0x01, 0)
-
-#define ZORRO_MANUF_ANAKIN_RESEARCH 0x03F1
-#define ZORRO_PROD_ANAKIN_RESEARCH_EASYL ZORRO_ID(ANAKIN_RESEARCH, 0x01, 0)
-
-#define ZORRO_MANUF_MICROBOTICS 0x03F2
-#define ZORRO_PROD_MICROBOTICS_STARBOARD_II ZORRO_ID(MICROBOTICS, 0x00, 0)
-#define ZORRO_PROD_MICROBOTICS_STARDRIVE ZORRO_ID(MICROBOTICS, 0x02, 0)
-#define ZORRO_PROD_MICROBOTICS_8_UP_A ZORRO_ID(MICROBOTICS, 0x03, 0)
-#define ZORRO_PROD_MICROBOTICS_8_UP_Z ZORRO_ID(MICROBOTICS, 0x04, 0)
-#define ZORRO_PROD_MICROBOTICS_DELTA_RAM ZORRO_ID(MICROBOTICS, 0x20, 0)
-#define ZORRO_PROD_MICROBOTICS_8_STAR_RAM ZORRO_ID(MICROBOTICS, 0x40, 0)
-#define ZORRO_PROD_MICROBOTICS_8_STAR ZORRO_ID(MICROBOTICS, 0x41, 0)
-#define ZORRO_PROD_MICROBOTICS_VXL_RAM_32 ZORRO_ID(MICROBOTICS, 0x44, 0)
-#define ZORRO_PROD_MICROBOTICS_VXL_68030 ZORRO_ID(MICROBOTICS, 0x45, 0)
-#define ZORRO_PROD_MICROBOTICS_DELTA ZORRO_ID(MICROBOTICS, 0x60, 0)
-#define ZORRO_PROD_MICROBOTICS_MBX_1200_1200Z_RAM ZORRO_ID(MICROBOTICS, 0x81, 0)
-#define ZORRO_PROD_MICROBOTICS_HARDFRAME_2000_1 ZORRO_ID(MICROBOTICS, 0x96, 0)
-#define ZORRO_PROD_MICROBOTICS_HARDFRAME_2000_2 ZORRO_ID(MICROBOTICS, 0x9E, 0)
-#define ZORRO_PROD_MICROBOTICS_MBX_1200_1200Z ZORRO_ID(MICROBOTICS, 0xC1, 0)
-
-#define ZORRO_MANUF_ACCESS_ASSOCIATES_ALEGRA 0x03F4
-
-#define ZORRO_MANUF_EXPANSION_TECHNOLOGIES 0x03F6
-
-#define ZORRO_MANUF_ASDG 0x03FF
-#define ZORRO_PROD_ASDG_MEMORY_1 ZORRO_ID(ASDG, 0x01, 0)
-#define ZORRO_PROD_ASDG_MEMORY_2 ZORRO_ID(ASDG, 0x02, 0)
-#define ZORRO_PROD_ASDG_EB920_LAN_ROVER ZORRO_ID(ASDG, 0xFE, 0)
-#define ZORRO_PROD_ASDG_GPIB_DUALIEEE488_TWIN_X ZORRO_ID(ASDG, 0xFF, 0)
-
-#define ZORRO_MANUF_IMTRONICS_1 0x0404
-#define ZORRO_PROD_IMTRONICS_HURRICANE_2800_1 ZORRO_ID(IMTRONICS_1, 0x39, 0)
-#define ZORRO_PROD_IMTRONICS_HURRICANE_2800_2 ZORRO_ID(IMTRONICS_1, 0x57, 0)
-
-#define ZORRO_MANUF_CBM_UNIVERSITY_OF_LOWELL 0x0406
-#define ZORRO_PROD_CBM_A2410 ZORRO_ID(CBM_UNIVERSITY_OF_LOWELL, 0x00, 0)
-
-#define ZORRO_MANUF_AMERISTAR 0x041D
-#define ZORRO_PROD_AMERISTAR_A2065 ZORRO_ID(AMERISTAR, 0x01, 0)
-#define ZORRO_PROD_AMERISTAR_A560 ZORRO_ID(AMERISTAR, 0x09, 0)
-#define ZORRO_PROD_AMERISTAR_A4066 ZORRO_ID(AMERISTAR, 0x0A, 0)
-
-#define ZORRO_MANUF_SUPRA 0x0420
-#define ZORRO_PROD_SUPRA_SUPRADRIVE_4x4 ZORRO_ID(SUPRA, 0x01, 0)
-#define ZORRO_PROD_SUPRA_1000_RAM ZORRO_ID(SUPRA, 0x02, 0)
-#define ZORRO_PROD_SUPRA_2000_DMA ZORRO_ID(SUPRA, 0x03, 0)
-#define ZORRO_PROD_SUPRA_500 ZORRO_ID(SUPRA, 0x05, 0)
-#define ZORRO_PROD_SUPRA_500_SCSI ZORRO_ID(SUPRA, 0x08, 0)
-#define ZORRO_PROD_SUPRA_500XP_2000_RAM ZORRO_ID(SUPRA, 0x09, 0)
-#define ZORRO_PROD_SUPRA_500RX_2000_RAM ZORRO_ID(SUPRA, 0x0A, 0)
-#define ZORRO_PROD_SUPRA_2400ZI ZORRO_ID(SUPRA, 0x0B, 0)
-#define ZORRO_PROD_SUPRA_500XP_SUPRADRIVE_WORDSYNC ZORRO_ID(SUPRA, 0x0C, 0)
-#define ZORRO_PROD_SUPRA_SUPRADRIVE_WORDSYNC_II ZORRO_ID(SUPRA, 0x0D, 0)
-#define ZORRO_PROD_SUPRA_2400ZIPLUS ZORRO_ID(SUPRA, 0x10, 0)
-
-#define ZORRO_MANUF_COMPUTER_SYSTEMS_ASSOCIATES 0x0422
-#define ZORRO_PROD_CSA_MAGNUM ZORRO_ID(COMPUTER_SYSTEMS_ASSOCIATES, 0x11, 0)
-#define ZORRO_PROD_CSA_12_GAUGE ZORRO_ID(COMPUTER_SYSTEMS_ASSOCIATES, 0x15, 0)
-
-#define ZORRO_MANUF_MARC_MICHAEL_GROTH 0x0439
-
-#define ZORRO_MANUF_M_TECH 0x0502
-#define ZORRO_PROD_MTEC_AT500_1 ZORRO_ID(M_TECH, 0x03, 0)
-
-#define ZORRO_MANUF_GREAT_VALLEY_PRODUCTS_1 0x06E1
-#define ZORRO_PROD_GVP_IMPACT_SERIES_I ZORRO_ID(GREAT_VALLEY_PRODUCTS_1, 0x08, 0)
-
-#define ZORRO_MANUF_BYTEBOX 0x07DA
-#define ZORRO_PROD_BYTEBOX_A500 ZORRO_ID(BYTEBOX, 0x00, 0)
-
-#define ZORRO_MANUF_DKB_POWER_COMPUTING 0x07DC
-#define ZORRO_PROD_DKB_POWER_COMPUTING_SECUREKEY ZORRO_ID(DKB_POWER_COMPUTING, 0x09, 0)
-#define ZORRO_PROD_DKB_POWER_COMPUTING_DKM_3128 ZORRO_ID(DKB_POWER_COMPUTING, 0x0E, 0)
-#define ZORRO_PROD_DKB_POWER_COMPUTING_RAPID_FIRE ZORRO_ID(DKB_POWER_COMPUTING, 0x0F, 0)
-#define ZORRO_PROD_DKB_POWER_COMPUTING_DKM_1202 ZORRO_ID(DKB_POWER_COMPUTING, 0x10, 0)
-#define ZORRO_PROD_DKB_POWER_COMPUTING_COBRA_VIPER_II_68EC030 ZORRO_ID(DKB_POWER_COMPUTING, 0x12, 0)
-#define ZORRO_PROD_DKB_POWER_COMPUTING_WILDFIRE_060_1 ZORRO_ID(DKB_POWER_COMPUTING, 0x17, 0)
-#define ZORRO_PROD_DKB_POWER_COMPUTING_WILDFIRE_060_2 ZORRO_ID(DKB_POWER_COMPUTING, 0xFF, 0)
-
-#define ZORRO_MANUF_GREAT_VALLEY_PRODUCTS_2 0x07E1
-#define ZORRO_PROD_GVP_IMPACT_SERIES_I_4K ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x01, 0)
-#define ZORRO_PROD_GVP_IMPACT_SERIES_I_16K_2 ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x02, 0)
-#define ZORRO_PROD_GVP_IMPACT_SERIES_I_16K_3 ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x03, 0)
-#define ZORRO_PROD_GVP_IMPACT_3001_IDE_1 ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x08, 0)
-#define ZORRO_PROD_GVP_IMPACT_3001_RAM ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x09, 0)
-#define ZORRO_PROD_GVP_IMPACT_SERIES_II_RAM_1 ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0A, 0)
-#define ZORRO_PROD_GVP_EPC_BASE ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0B, 0)
-#define ZORRO_PROD_GVP_GFORCE_040_1 ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0B, 0x20)
-#define ZORRO_PROD_GVP_GFORCE_040_SCSI_1 ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0B, 0x30)
-#define ZORRO_PROD_GVP_A1291 ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0B, 0x40)
-#define ZORRO_PROD_GVP_COMBO_030_R4 ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0B, 0x60)
-#define ZORRO_PROD_GVP_COMBO_030_R4_SCSI ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0B, 0x70)
-#define ZORRO_PROD_GVP_PHONEPAK ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0B, 0x78)
-#define ZORRO_PROD_GVP_IO_EXTENDER ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0B, 0x98)
-#define ZORRO_PROD_GVP_GFORCE_030 ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0B, 0xa0)
-#define ZORRO_PROD_GVP_GFORCE_030_SCSI ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0B, 0xb0)
-#define ZORRO_PROD_GVP_A530 ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0B, 0xc0)
-#define ZORRO_PROD_GVP_A530_SCSI ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0B, 0xd0)
-#define ZORRO_PROD_GVP_COMBO_030_R3 ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0B, 0xe0)
-#define ZORRO_PROD_GVP_COMBO_030_R3_SCSI ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0B, 0xf0)
-#define ZORRO_PROD_GVP_SERIES_II ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0B, 0xf8)
-#define ZORRO_PROD_GVP_IMPACT_3001_IDE_2 ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0D, 0)
-/*#define ZORRO_PROD_GVP_A2000_030 ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0D, 0)*/
-/*#define ZORRO_PROD_GVP_GFORCE_040_SCSI_2 ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x0D, 0)*/
-#define ZORRO_PROD_GVP_GFORCE_040_060 ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x16, 0)
-#define ZORRO_PROD_GVP_IMPACT_VISION_24 ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0x20, 0)
-#define ZORRO_PROD_GVP_GFORCE_040_2 ZORRO_ID(GREAT_VALLEY_PRODUCTS_2, 0xFF, 0)
-
-#define ZORRO_MANUF_CALIFORNIA_ACCESS_SYNERGY 0x07E5
-#define ZORRO_PROD_CALIFORNIA_ACCESS_SYNERGY_MALIBU ZORRO_ID(CALIFORNIA_ACCESS_SYNERGY, 0x01, 0)
-
-#define ZORRO_MANUF_XETEC 0x07E6
-#define ZORRO_PROD_XETEC_FASTCARD ZORRO_ID(XETEC, 0x01, 0)
-#define ZORRO_PROD_XETEC_FASTCARD_RAM ZORRO_ID(XETEC, 0x02, 0)
-#define ZORRO_PROD_XETEC_FASTCARD_PLUS ZORRO_ID(XETEC, 0x03, 0)
-
-#define ZORRO_MANUF_PROGRESSIVE_PERIPHERALS_AND_SYSTEMS 0x07EA
-#define ZORRO_PROD_PPS_MERCURY ZORRO_ID(PROGRESSIVE_PERIPHERALS_AND_SYSTEMS, 0x00, 0)
-#define ZORRO_PROD_PPS_A3000_68040 ZORRO_ID(PROGRESSIVE_PERIPHERALS_AND_SYSTEMS, 0x01, 0)
-#define ZORRO_PROD_PPS_A2000_68040 ZORRO_ID(PROGRESSIVE_PERIPHERALS_AND_SYSTEMS, 0x69, 0)
-#define ZORRO_PROD_PPS_ZEUS ZORRO_ID(PROGRESSIVE_PERIPHERALS_AND_SYSTEMS, 0x96, 0)
-#define ZORRO_PROD_PPS_A500_68040 ZORRO_ID(PROGRESSIVE_PERIPHERALS_AND_SYSTEMS, 0xBB, 0)
-
-#define ZORRO_MANUF_XEBEC 0x07EC
-
-#define ZORRO_MANUF_SPIRIT_TECHNOLOGY 0x07F2
-#define ZORRO_PROD_SPIRIT_TECHNOLOGY_INSIDER_IN1000 ZORRO_ID(SPIRIT_TECHNOLOGY, 0x01, 0)
-#define ZORRO_PROD_SPIRIT_TECHNOLOGY_INSIDER_IN500 ZORRO_ID(SPIRIT_TECHNOLOGY, 0x02, 0)
-#define ZORRO_PROD_SPIRIT_TECHNOLOGY_SIN500 ZORRO_ID(SPIRIT_TECHNOLOGY, 0x03, 0)
-#define ZORRO_PROD_SPIRIT_TECHNOLOGY_HDA_506 ZORRO_ID(SPIRIT_TECHNOLOGY, 0x04, 0)
-#define ZORRO_PROD_SPIRIT_TECHNOLOGY_AX_S ZORRO_ID(SPIRIT_TECHNOLOGY, 0x05, 0)
-#define ZORRO_PROD_SPIRIT_TECHNOLOGY_OCTABYTE ZORRO_ID(SPIRIT_TECHNOLOGY, 0x06, 0)
-#define ZORRO_PROD_SPIRIT_TECHNOLOGY_INMATE ZORRO_ID(SPIRIT_TECHNOLOGY, 0x08, 0)
-
-#define ZORRO_MANUF_SPIRIT_TECHNOLOGY_2 0x07F3
-
-#define ZORRO_MANUF_BSC_ALFADATA_1 0x07FE
-#define ZORRO_PROD_BSC_ALF_3_1 ZORRO_ID(BSC_ALFADATA_1, 0x03, 0)
-
-#define ZORRO_MANUF_BSC_ALFADATA_2 0x0801
-#define ZORRO_PROD_BSC_ALF_2_1 ZORRO_ID(BSC_ALFADATA_2, 0x01, 0)
-#define ZORRO_PROD_BSC_ALF_2_2 ZORRO_ID(BSC_ALFADATA_2, 0x02, 0)
-#define ZORRO_PROD_BSC_ALF_3_2 ZORRO_ID(BSC_ALFADATA_2, 0x03, 0)
-
-#define ZORRO_MANUF_CARDCO_2 0x0802
-#define ZORRO_PROD_CARDCO_KRONOS_2000_2 ZORRO_ID(CARDCO_2, 0x04, 0)
-#define ZORRO_PROD_CARDCO_A1000_2 ZORRO_ID(CARDCO_2, 0x0C, 0)
-
-#define ZORRO_MANUF_JOCHHEIM 0x0804
-#define ZORRO_PROD_JOCHHEIM_RAM ZORRO_ID(JOCHHEIM, 0x01, 0)
-
-#define ZORRO_MANUF_CHECKPOINT_TECHNOLOGIES 0x0807
-#define ZORRO_PROD_CHECKPOINT_TECHNOLOGIES_SERIAL_SOLUTION ZORRO_ID(CHECKPOINT_TECHNOLOGIES, 0x00, 0)
-
-#define ZORRO_MANUF_EDOTRONIK 0x0810
-#define ZORRO_PROD_EDOTRONIK_IEEE_488 ZORRO_ID(EDOTRONIK, 0x01, 0)
-#define ZORRO_PROD_EDOTRONIK_8032 ZORRO_ID(EDOTRONIK, 0x02, 0)
-#define ZORRO_PROD_EDOTRONIK_MULTISERIAL ZORRO_ID(EDOTRONIK, 0x03, 0)
-#define ZORRO_PROD_EDOTRONIK_VIDEODIGITIZER ZORRO_ID(EDOTRONIK, 0x04, 0)
-#define ZORRO_PROD_EDOTRONIK_PARALLEL_IO ZORRO_ID(EDOTRONIK, 0x05, 0)
-#define ZORRO_PROD_EDOTRONIK_PIC_PROTOYPING ZORRO_ID(EDOTRONIK, 0x06, 0)
-#define ZORRO_PROD_EDOTRONIK_ADC ZORRO_ID(EDOTRONIK, 0x07, 0)
-#define ZORRO_PROD_EDOTRONIK_VME ZORRO_ID(EDOTRONIK, 0x08, 0)
-#define ZORRO_PROD_EDOTRONIK_DSP96000 ZORRO_ID(EDOTRONIK, 0x09, 0)
-
-#define ZORRO_MANUF_NES_INC 0x0813
-#define ZORRO_PROD_NES_INC_RAM ZORRO_ID(NES_INC, 0x00, 0)
-
-#define ZORRO_MANUF_ICD 0x0817
-#define ZORRO_PROD_ICD_ADVANTAGE_2000_SCSI ZORRO_ID(ICD, 0x01, 0)
-#define ZORRO_PROD_ICD_ADVANTAGE_IDE ZORRO_ID(ICD, 0x03, 0)
-#define ZORRO_PROD_ICD_ADVANTAGE_2080_RAM ZORRO_ID(ICD, 0x04, 0)
-
-#define ZORRO_MANUF_KUPKE_2 0x0819
-#define ZORRO_PROD_KUPKE_OMTI ZORRO_ID(KUPKE_2, 0x01, 0)
-#define ZORRO_PROD_KUPKE_SCSI_II ZORRO_ID(KUPKE_2, 0x02, 0)
-#define ZORRO_PROD_KUPKE_GOLEM_BOX ZORRO_ID(KUPKE_2, 0x03, 0)
-#define ZORRO_PROD_KUPKE_030_882 ZORRO_ID(KUPKE_2, 0x04, 0)
-#define ZORRO_PROD_KUPKE_SCSI_AT ZORRO_ID(KUPKE_2, 0x05, 0)
-
-#define ZORRO_MANUF_GREAT_VALLEY_PRODUCTS_3 0x081D
-#define ZORRO_PROD_GVP_A2000_RAM8 ZORRO_ID(GREAT_VALLEY_PRODUCTS_3, 0x09, 0)
-#define ZORRO_PROD_GVP_IMPACT_SERIES_II_RAM_2 ZORRO_ID(GREAT_VALLEY_PRODUCTS_3, 0x0A, 0)
-
-#define ZORRO_MANUF_INTERWORKS_NETWORK 0x081E
-
-#define ZORRO_MANUF_HARDITAL_SYNTHESIS 0x0820
-#define ZORRO_PROD_HARDITAL_SYNTHESIS_TQM_68030_68882 ZORRO_ID(HARDITAL_SYNTHESIS, 0x14, 0)
-
-#define ZORRO_MANUF_APPLIED_ENGINEERING 0x0828
-#define ZORRO_PROD_APPLIED_ENGINEERING_DL2000 ZORRO_ID(APPLIED_ENGINEERING, 0x10, 0)
-#define ZORRO_PROD_APPLIED_ENGINEERING_RAM_WORKS ZORRO_ID(APPLIED_ENGINEERING, 0xE0, 0)
-
-#define ZORRO_MANUF_BSC_ALFADATA_3 0x082C
-#define ZORRO_PROD_BSC_OKTAGON_2008 ZORRO_ID(BSC_ALFADATA_3, 0x05, 0)
-#define ZORRO_PROD_BSC_TANDEM_AT_2008_508 ZORRO_ID(BSC_ALFADATA_3, 0x06, 0)
-#define ZORRO_PROD_BSC_ALFA_RAM_1200 ZORRO_ID(BSC_ALFADATA_3, 0x07, 0)
-#define ZORRO_PROD_BSC_OKTAGON_2008_RAM ZORRO_ID(BSC_ALFADATA_3, 0x08, 0)
-#define ZORRO_PROD_BSC_MULTIFACE_I ZORRO_ID(BSC_ALFADATA_3, 0x10, 0)
-#define ZORRO_PROD_BSC_MULTIFACE_II ZORRO_ID(BSC_ALFADATA_3, 0x11, 0)
-#define ZORRO_PROD_BSC_MULTIFACE_III ZORRO_ID(BSC_ALFADATA_3, 0x12, 0)
-#define ZORRO_PROD_BSC_FRAMEMASTER_II ZORRO_ID(BSC_ALFADATA_3, 0x20, 0)
-#define ZORRO_PROD_BSC_GRAFFITI_RAM ZORRO_ID(BSC_ALFADATA_3, 0x21, 0)
-#define ZORRO_PROD_BSC_GRAFFITI_REG ZORRO_ID(BSC_ALFADATA_3, 0x22, 0)
-#define ZORRO_PROD_BSC_ISDN_MASTERCARD ZORRO_ID(BSC_ALFADATA_3, 0x40, 0)
-#define ZORRO_PROD_BSC_ISDN_MASTERCARD_II ZORRO_ID(BSC_ALFADATA_3, 0x41, 0)
-
-#define ZORRO_MANUF_PHOENIX 0x0835
-#define ZORRO_PROD_PHOENIX_ST506 ZORRO_ID(PHOENIX, 0x21, 0)
-#define ZORRO_PROD_PHOENIX_SCSI ZORRO_ID(PHOENIX, 0x22, 0)
-#define ZORRO_PROD_PHOENIX_RAM ZORRO_ID(PHOENIX, 0xBE, 0)
-
-#define ZORRO_MANUF_ADVANCED_STORAGE_SYSTEMS 0x0836
-#define ZORRO_PROD_ADVANCED_STORAGE_SYSTEMS_NEXUS ZORRO_ID(ADVANCED_STORAGE_SYSTEMS, 0x01, 0)
-#define ZORRO_PROD_ADVANCED_STORAGE_SYSTEMS_NEXUS_RAM ZORRO_ID(ADVANCED_STORAGE_SYSTEMS, 0x08, 0)
-
-#define ZORRO_MANUF_IMPULSE 0x0838
-#define ZORRO_PROD_IMPULSE_FIRECRACKER_24 ZORRO_ID(IMPULSE, 0x00, 0)
-
-#define ZORRO_MANUF_IVS 0x0840
-#define ZORRO_PROD_IVS_GRANDSLAM_PIC_2 ZORRO_ID(IVS, 0x02, 0)
-#define ZORRO_PROD_IVS_GRANDSLAM_PIC_1 ZORRO_ID(IVS, 0x04, 0)
-#define ZORRO_PROD_IVS_OVERDRIVE ZORRO_ID(IVS, 0x10, 0)
-#define ZORRO_PROD_IVS_TRUMPCARD_CLASSIC ZORRO_ID(IVS, 0x30, 0)
-#define ZORRO_PROD_IVS_TRUMPCARD_PRO_GRANDSLAM ZORRO_ID(IVS, 0x34, 0)
-#define ZORRO_PROD_IVS_META_4 ZORRO_ID(IVS, 0x40, 0)
-#define ZORRO_PROD_IVS_WAVETOOLS ZORRO_ID(IVS, 0xBF, 0)
-#define ZORRO_PROD_IVS_VECTOR_1 ZORRO_ID(IVS, 0xF3, 0)
-#define ZORRO_PROD_IVS_VECTOR_2 ZORRO_ID(IVS, 0xF4, 0)
-
-#define ZORRO_MANUF_VECTOR_1 0x0841
-#define ZORRO_PROD_VECTOR_CONNECTION_1 ZORRO_ID(VECTOR_1, 0xE3, 0)
-
-#define ZORRO_MANUF_XPERT_PRODEV 0x0845
-#define ZORRO_PROD_XPERT_PRODEV_VISIONA_RAM ZORRO_ID(XPERT_PRODEV, 0x01, 0)
-#define ZORRO_PROD_XPERT_PRODEV_VISIONA_REG ZORRO_ID(XPERT_PRODEV, 0x02, 0)
-#define ZORRO_PROD_XPERT_PRODEV_MERLIN_RAM ZORRO_ID(XPERT_PRODEV, 0x03, 0)
-#define ZORRO_PROD_XPERT_PRODEV_MERLIN_REG_1 ZORRO_ID(XPERT_PRODEV, 0x04, 0)
-#define ZORRO_PROD_XPERT_PRODEV_MERLIN_REG_2 ZORRO_ID(XPERT_PRODEV, 0xC9, 0)
-
-#define ZORRO_MANUF_HYDRA_SYSTEMS 0x0849
-#define ZORRO_PROD_HYDRA_SYSTEMS_AMIGANET ZORRO_ID(HYDRA_SYSTEMS, 0x01, 0)
-
-#define ZORRO_MANUF_SUNRIZE_INDUSTRIES 0x084F
-#define ZORRO_PROD_SUNRIZE_INDUSTRIES_AD1012 ZORRO_ID(SUNRIZE_INDUSTRIES, 0x01, 0)
-#define ZORRO_PROD_SUNRIZE_INDUSTRIES_AD516 ZORRO_ID(SUNRIZE_INDUSTRIES, 0x02, 0)
-#define ZORRO_PROD_SUNRIZE_INDUSTRIES_DD512 ZORRO_ID(SUNRIZE_INDUSTRIES, 0x03, 0)
-
-#define ZORRO_MANUF_TRICERATOPS 0x0850
-#define ZORRO_PROD_TRICERATOPS_MULTI_IO ZORRO_ID(TRICERATOPS, 0x01, 0)
-
-#define ZORRO_MANUF_APPLIED_MAGIC 0x0851
-#define ZORRO_PROD_APPLIED_MAGIC_DMI_RESOLVER ZORRO_ID(APPLIED_MAGIC, 0x01, 0)
-#define ZORRO_PROD_APPLIED_MAGIC_DIGITAL_BROADCASTER ZORRO_ID(APPLIED_MAGIC, 0x06, 0)
-
-#define ZORRO_MANUF_GFX_BASE 0x085E
-#define ZORRO_PROD_GFX_BASE_GDA_1_VRAM ZORRO_ID(GFX_BASE, 0x00, 0)
-#define ZORRO_PROD_GFX_BASE_GDA_1 ZORRO_ID(GFX_BASE, 0x01, 0)
-
-#define ZORRO_MANUF_ROCTEC 0x0860
-#define ZORRO_PROD_ROCTEC_RH_800C ZORRO_ID(ROCTEC, 0x01, 0)
-#define ZORRO_PROD_ROCTEC_RH_800C_RAM ZORRO_ID(ROCTEC, 0x01, 0)
-
-#define ZORRO_MANUF_KATO 0x0861
-#define ZORRO_PROD_KATO_MELODY ZORRO_ID(KATO, 0x80, 0)
-/* ID clash!! */
-#define ZORRO_MANUF_HELFRICH_1 0x0861
-#define ZORRO_PROD_HELFRICH_RAINBOW_II ZORRO_ID(HELFRICH_1, 0x20, 0)
-#define ZORRO_PROD_HELFRICH_RAINBOW_III ZORRO_ID(HELFRICH_1, 0x21, 0)
-
-#define ZORRO_MANUF_ATLANTIS 0x0862
-
-#define ZORRO_MANUF_PROTAR 0x0864
-
-#define ZORRO_MANUF_ACS 0x0865
-
-#define ZORRO_MANUF_SOFTWARE_RESULTS_ENTERPRISES 0x0866
-#define ZORRO_PROD_SOFTWARE_RESULTS_ENTERPRISES_GOLDEN_GATE_2_BUS_PLUS ZORRO_ID(SOFTWARE_RESULTS_ENTERPRISES, 0x01, 0)
-
-#define ZORRO_MANUF_MASOBOSHI 0x086D
-#define ZORRO_PROD_MASOBOSHI_MASTER_CARD_SC201 ZORRO_ID(MASOBOSHI, 0x03, 0)
-#define ZORRO_PROD_MASOBOSHI_MASTER_CARD_MC702 ZORRO_ID(MASOBOSHI, 0x04, 0)
-#define ZORRO_PROD_MASOBOSHI_MVD_819 ZORRO_ID(MASOBOSHI, 0x07, 0)
-
-#define ZORRO_MANUF_MAINHATTAN_DATA 0x086F
-#define ZORRO_PROD_MAINHATTAN_DATA_IDE ZORRO_ID(MAINHATTAN_DATA, 0x01, 0)
-
-#define ZORRO_MANUF_VILLAGE_TRONIC 0x0877
-#define ZORRO_PROD_VILLAGE_TRONIC_DOMINO_RAM ZORRO_ID(VILLAGE_TRONIC, 0x01, 0)
-#define ZORRO_PROD_VILLAGE_TRONIC_DOMINO_REG ZORRO_ID(VILLAGE_TRONIC, 0x02, 0)
-#define ZORRO_PROD_VILLAGE_TRONIC_DOMINO_16M_PROTOTYPE ZORRO_ID(VILLAGE_TRONIC, 0x03, 0)
-#define ZORRO_PROD_VILLAGE_TRONIC_PICASSO_II_II_PLUS_RAM ZORRO_ID(VILLAGE_TRONIC, 0x0B, 0)
-#define ZORRO_PROD_VILLAGE_TRONIC_PICASSO_II_II_PLUS_REG ZORRO_ID(VILLAGE_TRONIC, 0x0C, 0)
-#define ZORRO_PROD_VILLAGE_TRONIC_PICASSO_II_II_PLUS_SEGMENTED_MODE ZORRO_ID(VILLAGE_TRONIC, 0x0D, 0)
-#define ZORRO_PROD_VILLAGE_TRONIC_PICASSO_IV_Z2_RAM1 ZORRO_ID(VILLAGE_TRONIC, 0x15, 0)
-#define ZORRO_PROD_VILLAGE_TRONIC_PICASSO_IV_Z2_RAM2 ZORRO_ID(VILLAGE_TRONIC, 0x16, 0)
-#define ZORRO_PROD_VILLAGE_TRONIC_PICASSO_IV_Z2_REG ZORRO_ID(VILLAGE_TRONIC, 0x17, 0)
-#define ZORRO_PROD_VILLAGE_TRONIC_PICASSO_IV_Z3 ZORRO_ID(VILLAGE_TRONIC, 0x18, 0)
-#define ZORRO_PROD_VILLAGE_TRONIC_ARIADNE ZORRO_ID(VILLAGE_TRONIC, 0xC9, 0)
-#define ZORRO_PROD_VILLAGE_TRONIC_ARIADNE2 ZORRO_ID(VILLAGE_TRONIC, 0xCA, 0)
-
-#define ZORRO_MANUF_UTILITIES_UNLIMITED 0x087B
-#define ZORRO_PROD_UTILITIES_UNLIMITED_EMPLANT_DELUXE ZORRO_ID(UTILITIES_UNLIMITED, 0x15, 0)
-#define ZORRO_PROD_UTILITIES_UNLIMITED_EMPLANT_DELUXE2 ZORRO_ID(UTILITIES_UNLIMITED, 0x20, 0)
-
-#define ZORRO_MANUF_AMITRIX 0x0880
-#define ZORRO_PROD_AMITRIX_MULTI_IO ZORRO_ID(AMITRIX, 0x01, 0)
-#define ZORRO_PROD_AMITRIX_CD_RAM ZORRO_ID(AMITRIX, 0x02, 0)
-
-#define ZORRO_MANUF_ARMAX 0x0885
-#define ZORRO_PROD_ARMAX_OMNIBUS ZORRO_ID(ARMAX, 0x00, 0)
-
-#define ZORRO_MANUF_ZEUS 0x088D
-#define ZORRO_PROD_ZEUS_SPIDER ZORRO_ID(ZEUS, 0x04, 0)
-
-#define ZORRO_MANUF_NEWTEK 0x088F
-#define ZORRO_PROD_NEWTEK_VIDEOTOASTER ZORRO_ID(NEWTEK, 0x00, 0)
-
-#define ZORRO_MANUF_M_TECH_GERMANY 0x0890
-#define ZORRO_PROD_MTEC_AT500_2 ZORRO_ID(M_TECH_GERMANY, 0x01, 0)
-#define ZORRO_PROD_MTEC_68030 ZORRO_ID(M_TECH_GERMANY, 0x03, 0)
-#define ZORRO_PROD_MTEC_68020I ZORRO_ID(M_TECH_GERMANY, 0x06, 0)
-#define ZORRO_PROD_MTEC_A1200_T68030_RTC ZORRO_ID(M_TECH_GERMANY, 0x20, 0)
-#define ZORRO_PROD_MTEC_VIPER_MK_V_E_MATRIX_530 ZORRO_ID(M_TECH_GERMANY, 0x21, 0)
-#define ZORRO_PROD_MTEC_8_MB_RAM ZORRO_ID(M_TECH_GERMANY, 0x22, 0)
-#define ZORRO_PROD_MTEC_VIPER_MK_V_E_MATRIX_530_SCSI_IDE ZORRO_ID(M_TECH_GERMANY, 0x24, 0)
-
-#define ZORRO_MANUF_GREAT_VALLEY_PRODUCTS_4 0x0891
-#define ZORRO_PROD_GVP_EGS_28_24_SPECTRUM_RAM ZORRO_ID(GREAT_VALLEY_PRODUCTS_4, 0x01, 0)
-#define ZORRO_PROD_GVP_EGS_28_24_SPECTRUM_REG ZORRO_ID(GREAT_VALLEY_PRODUCTS_4, 0x02, 0)
-
-#define ZORRO_MANUF_APOLLO_1 0x0892
-#define ZORRO_PROD_APOLLO_A1200 ZORRO_ID(APOLLO_1, 0x01, 0)
-
-#define ZORRO_MANUF_HELFRICH_2 0x0893
-#define ZORRO_PROD_HELFRICH_PICCOLO_RAM ZORRO_ID(HELFRICH_2, 0x05, 0)
-#define ZORRO_PROD_HELFRICH_PICCOLO_REG ZORRO_ID(HELFRICH_2, 0x06, 0)
-#define ZORRO_PROD_HELFRICH_PEGGY_PLUS_MPEG ZORRO_ID(HELFRICH_2, 0x07, 0)
-#define ZORRO_PROD_HELFRICH_VIDEOCRUNCHER ZORRO_ID(HELFRICH_2, 0x08, 0)
-#define ZORRO_PROD_HELFRICH_SD64_RAM ZORRO_ID(HELFRICH_2, 0x0A, 0)
-#define ZORRO_PROD_HELFRICH_SD64_REG ZORRO_ID(HELFRICH_2, 0x0B, 0)
-
-#define ZORRO_MANUF_MACROSYSTEMS_USA 0x089B
-#define ZORRO_PROD_MACROSYSTEMS_WARP_ENGINE_40xx ZORRO_ID(MACROSYSTEMS_USA, 0x13, 0)
-
-#define ZORRO_MANUF_ELBOX_COMPUTER 0x089E
-#define ZORRO_PROD_ELBOX_COMPUTER_1200_4 ZORRO_ID(ELBOX_COMPUTER, 0x06, 0)
-
-#define ZORRO_MANUF_HARMS_PROFESSIONAL 0x0A00
-#define ZORRO_PROD_HARMS_PROFESSIONAL_030_PLUS ZORRO_ID(HARMS_PROFESSIONAL, 0x10, 0)
-#define ZORRO_PROD_HARMS_PROFESSIONAL_3500 ZORRO_ID(HARMS_PROFESSIONAL, 0xD0, 0)
-
-#define ZORRO_MANUF_MICRONIK 0x0A50
-#define ZORRO_PROD_MICRONIK_RCA_120 ZORRO_ID(MICRONIK, 0x0A, 0)
-
-#define ZORRO_MANUF_MICRONIK2 0x0F0F
-#define ZORRO_PROD_MICRONIK2_Z3I ZORRO_ID(MICRONIK2, 0x01, 0)
-
-#define ZORRO_MANUF_MEGAMICRO 0x1000
-#define ZORRO_PROD_MEGAMICRO_SCRAM_500 ZORRO_ID(MEGAMICRO, 0x03, 0)
-#define ZORRO_PROD_MEGAMICRO_SCRAM_500_RAM ZORRO_ID(MEGAMICRO, 0x04, 0)
-
-#define ZORRO_MANUF_IMTRONICS_2 0x1028
-#define ZORRO_PROD_IMTRONICS_HURRICANE_2800_3 ZORRO_ID(IMTRONICS_2, 0x39, 0)
-#define ZORRO_PROD_IMTRONICS_HURRICANE_2800_4 ZORRO_ID(IMTRONICS_2, 0x57, 0)
-
-/* unofficial ID */
-#define ZORRO_MANUF_INDIVIDUAL_COMPUTERS 0x1212
-#define ZORRO_PROD_INDIVIDUAL_COMPUTERS_BUDDHA ZORRO_ID(INDIVIDUAL_COMPUTERS, 0x00, 0)
-#define ZORRO_PROD_INDIVIDUAL_COMPUTERS_X_SURF ZORRO_ID(INDIVIDUAL_COMPUTERS, 0x17, 0)
-#define ZORRO_PROD_INDIVIDUAL_COMPUTERS_CATWEASEL ZORRO_ID(INDIVIDUAL_COMPUTERS, 0x2A, 0)
-
-#define ZORRO_MANUF_KUPKE_3 0x1248
-#define ZORRO_PROD_KUPKE_GOLEM_HD_3000 ZORRO_ID(KUPKE_3, 0x01, 0)
-
-#define ZORRO_MANUF_ITH 0x1388
-#define ZORRO_PROD_ITH_ISDN_MASTER_II ZORRO_ID(ITH, 0x01, 0)
-
-#define ZORRO_MANUF_VMC 0x1389
-#define ZORRO_PROD_VMC_ISDN_BLASTER_Z2 ZORRO_ID(VMC, 0x01, 0)
-#define ZORRO_PROD_VMC_HYPERCOM_4 ZORRO_ID(VMC, 0x02, 0)
-
-#define ZORRO_MANUF_INFORMATION 0x157C
-#define ZORRO_PROD_INFORMATION_ISDN_ENGINE_I ZORRO_ID(INFORMATION, 0x64, 0)
-
-#define ZORRO_MANUF_VORTEX 0x2017
-#define ZORRO_PROD_VORTEX_GOLDEN_GATE_80386SX ZORRO_ID(VORTEX, 0x07, 0)
-#define ZORRO_PROD_VORTEX_GOLDEN_GATE_RAM ZORRO_ID(VORTEX, 0x08, 0)
-#define ZORRO_PROD_VORTEX_GOLDEN_GATE_80486 ZORRO_ID(VORTEX, 0x09, 0)
-
-#define ZORRO_MANUF_EXPANSION_SYSTEMS 0x2062
-#define ZORRO_PROD_EXPANSION_SYSTEMS_DATAFLYER_4000SX ZORRO_ID(EXPANSION_SYSTEMS, 0x01, 0)
-#define ZORRO_PROD_EXPANSION_SYSTEMS_DATAFLYER_4000SX_RAM ZORRO_ID(EXPANSION_SYSTEMS, 0x02, 0)
-
-#define ZORRO_MANUF_READYSOFT 0x2100
-#define ZORRO_PROD_READYSOFT_AMAX_II_IV ZORRO_ID(READYSOFT, 0x01, 0)
-
-#define ZORRO_MANUF_PHASE5 0x2140
-#define ZORRO_PROD_PHASE5_BLIZZARD_RAM ZORRO_ID(PHASE5, 0x01, 0)
-#define ZORRO_PROD_PHASE5_BLIZZARD ZORRO_ID(PHASE5, 0x02, 0)
-#define ZORRO_PROD_PHASE5_BLIZZARD_1220_IV ZORRO_ID(PHASE5, 0x06, 0)
-#define ZORRO_PROD_PHASE5_FASTLANE_Z3_RAM ZORRO_ID(PHASE5, 0x0A, 0)
-#define ZORRO_PROD_PHASE5_BLIZZARD_1230_II_FASTLANE_Z3_CYBERSCSI_CYBERSTORM060 ZORRO_ID(PHASE5, 0x0B, 0)
-#define ZORRO_PROD_PHASE5_BLIZZARD_1220_CYBERSTORM ZORRO_ID(PHASE5, 0x0C, 0)
-#define ZORRO_PROD_PHASE5_BLIZZARD_1230 ZORRO_ID(PHASE5, 0x0D, 0)
-#define ZORRO_PROD_PHASE5_BLIZZARD_1230_IV_1260 ZORRO_ID(PHASE5, 0x11, 0)
-#define ZORRO_PROD_PHASE5_BLIZZARD_2060 ZORRO_ID(PHASE5, 0x18, 0)
-#define ZORRO_PROD_PHASE5_CYBERSTORM_MK_II ZORRO_ID(PHASE5, 0x19, 0)
-#define ZORRO_PROD_PHASE5_CYBERVISION64 ZORRO_ID(PHASE5, 0x22, 0)
-#define ZORRO_PROD_PHASE5_CYBERVISION64_3D_PROTOTYPE ZORRO_ID(PHASE5, 0x32, 0)
-#define ZORRO_PROD_PHASE5_CYBERVISION64_3D ZORRO_ID(PHASE5, 0x43, 0)
-#define ZORRO_PROD_PHASE5_CYBERSTORM_MK_III ZORRO_ID(PHASE5, 0x64, 0)
-#define ZORRO_PROD_PHASE5_BLIZZARD_603E_PLUS ZORRO_ID(PHASE5, 0x6e, 0)
-
-#define ZORRO_MANUF_DPS 0x2169
-#define ZORRO_PROD_DPS_PERSONAL_ANIMATION_RECORDER ZORRO_ID(DPS, 0x01, 0)
-
-#define ZORRO_MANUF_APOLLO_2 0x2200
-#define ZORRO_PROD_APOLLO_A620_68020_1 ZORRO_ID(APOLLO_2, 0x00, 0)
-#define ZORRO_PROD_APOLLO_A620_68020_2 ZORRO_ID(APOLLO_2, 0x01, 0)
-
-#define ZORRO_MANUF_APOLLO_3 0x2222
-#define ZORRO_PROD_APOLLO_AT_APOLLO ZORRO_ID(APOLLO_3, 0x22, 0)
-#define ZORRO_PROD_APOLLO_1230_1240_1260_2030_4040_4060 ZORRO_ID(APOLLO_3, 0x23, 0)
-
-#define ZORRO_MANUF_PETSOFF_LP 0x38A5
-#define ZORRO_PROD_PETSOFF_LP_DELFINA ZORRO_ID(PETSOFF_LP, 0x00, 0)
-#define ZORRO_PROD_PETSOFF_LP_DELFINA_LITE ZORRO_ID(PETSOFF_LP, 0x01, 0)
-
-#define ZORRO_MANUF_UWE_GERLACH 0x3FF7
-#define ZORRO_PROD_UWE_GERLACH_RAM_ROM ZORRO_ID(UWE_GERLACH, 0xd4, 0)
-
-#define ZORRO_MANUF_ACT 0x4231
-#define ZORRO_PROD_ACT_PRELUDE ZORRO_ID(ACT, 0x01, 0)
-
-#define ZORRO_MANUF_MACROSYSTEMS_GERMANY 0x4754
-#define ZORRO_PROD_MACROSYSTEMS_MAESTRO ZORRO_ID(MACROSYSTEMS_GERMANY, 0x03, 0)
-#define ZORRO_PROD_MACROSYSTEMS_VLAB ZORRO_ID(MACROSYSTEMS_GERMANY, 0x04, 0)
-#define ZORRO_PROD_MACROSYSTEMS_MAESTRO_PRO ZORRO_ID(MACROSYSTEMS_GERMANY, 0x05, 0)
-#define ZORRO_PROD_MACROSYSTEMS_RETINA ZORRO_ID(MACROSYSTEMS_GERMANY, 0x06, 0)
-#define ZORRO_PROD_MACROSYSTEMS_MULTI_EVOLUTION ZORRO_ID(MACROSYSTEMS_GERMANY, 0x08, 0)
-#define ZORRO_PROD_MACROSYSTEMS_TOCCATA ZORRO_ID(MACROSYSTEMS_GERMANY, 0x0C, 0)
-#define ZORRO_PROD_MACROSYSTEMS_RETINA_Z3 ZORRO_ID(MACROSYSTEMS_GERMANY, 0x10, 0)
-#define ZORRO_PROD_MACROSYSTEMS_VLAB_MOTION ZORRO_ID(MACROSYSTEMS_GERMANY, 0x12, 0)
-#define ZORRO_PROD_MACROSYSTEMS_ALTAIS ZORRO_ID(MACROSYSTEMS_GERMANY, 0x13, 0)
-#define ZORRO_PROD_MACROSYSTEMS_FALCON_040 ZORRO_ID(MACROSYSTEMS_GERMANY, 0xFD, 0)
-
-#define ZORRO_MANUF_COMBITEC 0x6766
-
-#define ZORRO_MANUF_SKI_PERIPHERALS 0x8000
-#define ZORRO_PROD_SKI_PERIPHERALS_MAST_FIREBALL ZORRO_ID(SKI_PERIPHERALS, 0x08, 0)
-#define ZORRO_PROD_SKI_PERIPHERALS_SCSI_DUAL_SERIAL ZORRO_ID(SKI_PERIPHERALS, 0x80, 0)
-
-#define ZORRO_MANUF_REIS_WARE_2 0xA9AD
-#define ZORRO_PROD_REIS_WARE_SCAN_KING ZORRO_ID(REIS_WARE_2, 0x11, 0)
-
-#define ZORRO_MANUF_CAMERON 0xAA01
-#define ZORRO_PROD_CAMERON_PERSONAL_A4 ZORRO_ID(CAMERON, 0x10, 0)
-
-#define ZORRO_MANUF_REIS_WARE 0xAA11
-#define ZORRO_PROD_REIS_WARE_HANDYSCANNER ZORRO_ID(REIS_WARE, 0x11, 0)
-
-#define ZORRO_MANUF_PHOENIX_2 0xB5A8
-#define ZORRO_PROD_PHOENIX_ST506_2 ZORRO_ID(PHOENIX_2, 0x21, 0)
-#define ZORRO_PROD_PHOENIX_SCSI_2 ZORRO_ID(PHOENIX_2, 0x22, 0)
-#define ZORRO_PROD_PHOENIX_RAM_2 ZORRO_ID(PHOENIX_2, 0xBE, 0)
-
-#define ZORRO_MANUF_COMBITEC_2 0xC008
-#define ZORRO_PROD_COMBITEC_HD ZORRO_ID(COMBITEC_2, 0x2A, 0)
-#define ZORRO_PROD_COMBITEC_SRAM ZORRO_ID(COMBITEC_2, 0x2B, 0)
-
-
- /*
- * Test and illegal Manufacturer IDs.
- */
-
-#define ZORRO_MANUF_HACKER 0x07DB
-#define ZORRO_PROD_GENERAL_PROTOTYPE ZORRO_ID(HACKER, 0x00, 0)
-#define ZORRO_PROD_HACKER_SCSI ZORRO_ID(HACKER, 0x01, 0)
-#define ZORRO_PROD_RESOURCE_MANAGEMENT_FORCE_QUICKNET_QN2000 ZORRO_ID(HACKER, 0x02, 0)
-#define ZORRO_PROD_VECTOR_CONNECTION_2 ZORRO_ID(HACKER, 0xE0, 0)
-#define ZORRO_PROD_VECTOR_CONNECTION_3 ZORRO_ID(HACKER, 0xE1, 0)
-#define ZORRO_PROD_VECTOR_CONNECTION_4 ZORRO_ID(HACKER, 0xE2, 0)
-#define ZORRO_PROD_VECTOR_CONNECTION_5 ZORRO_ID(HACKER, 0xE3, 0)
diff --git a/ANDROID_3.4.5/include/linux/zutil.h b/ANDROID_3.4.5/include/linux/zutil.h
deleted file mode 100644
index 6adfa9a6..00000000
--- a/ANDROID_3.4.5/include/linux/zutil.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/* zutil.h -- internal interface and configuration of the compression library
- * Copyright (C) 1995-1998 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
- part of the implementation of the compression library and is
- subject to change. Applications should only use zlib.h.
- */
-
-/* @(#) $Id: zutil.h,v 1.1 2000/01/01 03:32:23 davem Exp $ */
-
-#ifndef _Z_UTIL_H
-#define _Z_UTIL_H
-
-#include <linux/zlib.h>
-#include <linux/string.h>
-#include <linux/kernel.h>
-
-typedef unsigned char uch;
-typedef unsigned short ush;
-typedef unsigned long ulg;
-
- /* common constants */
-
-#define STORED_BLOCK 0
-#define STATIC_TREES 1
-#define DYN_TREES 2
-/* The three kinds of block type */
-
-#define MIN_MATCH 3
-#define MAX_MATCH 258
-/* The minimum and maximum match lengths */
-
-#define PRESET_DICT 0x20 /* preset dictionary flag in zlib header */
-
- /* target dependencies */
-
- /* Common defaults */
-
-#ifndef OS_CODE
-# define OS_CODE 0x03 /* assume Unix */
-#endif
-
- /* functions */
-
-typedef uLong (*check_func) (uLong check, const Byte *buf,
- uInt len);
-
-
- /* checksum functions */
-
-#define BASE 65521L /* largest prime smaller than 65536 */
-#define NMAX 5552
-/* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */
-
-#define DO1(buf,i) {s1 += buf[i]; s2 += s1;}
-#define DO2(buf,i) DO1(buf,i); DO1(buf,i+1);
-#define DO4(buf,i) DO2(buf,i); DO2(buf,i+2);
-#define DO8(buf,i) DO4(buf,i); DO4(buf,i+4);
-#define DO16(buf) DO8(buf,0); DO8(buf,8);
-
-/* ========================================================================= */
-/*
- Update a running Adler-32 checksum with the bytes buf[0..len-1] and
- return the updated checksum. If buf is NULL, this function returns
- the required initial value for the checksum.
- An Adler-32 checksum is almost as reliable as a CRC32 but can be computed
- much faster. Usage example:
-
- uLong adler = adler32(0L, NULL, 0);
-
- while (read_buffer(buffer, length) != EOF) {
- adler = adler32(adler, buffer, length);
- }
- if (adler != original_adler) error();
-*/
-static inline uLong zlib_adler32(uLong adler,
- const Byte *buf,
- uInt len)
-{
- unsigned long s1 = adler & 0xffff;
- unsigned long s2 = (adler >> 16) & 0xffff;
- int k;
-
- if (buf == NULL) return 1L;
-
- while (len > 0) {
- k = len < NMAX ? len : NMAX;
- len -= k;
- while (k >= 16) {
- DO16(buf);
- buf += 16;
- k -= 16;
- }
- if (k != 0) do {
- s1 += *buf++;
- s2 += s1;
- } while (--k);
- s1 %= BASE;
- s2 %= BASE;
- }
- return (s2 << 16) | s1;
-}
-
-#endif /* _Z_UTIL_H */
diff --git a/ANDROID_3.4.5/include/math-emu/double.h b/ANDROID_3.4.5/include/math-emu/double.h
deleted file mode 100644
index 655ccf1c..00000000
--- a/ANDROID_3.4.5/include/math-emu/double.h
+++ /dev/null
@@ -1,205 +0,0 @@
-/* Software floating-point emulation.
- Definitions for IEEE Double Precision
- Copyright (C) 1997,1998,1999 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Richard Henderson (rth@cygnus.com),
- Jakub Jelinek (jj@ultra.linux.cz),
- David S. Miller (davem@redhat.com) and
- Peter Maydell (pmaydell@chiark.greenend.org.uk).
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifndef __MATH_EMU_DOUBLE_H__
-#define __MATH_EMU_DOUBLE_H__
-
-#if _FP_W_TYPE_SIZE < 32
-#error "Here's a nickel kid. Go buy yourself a real computer."
-#endif
-
-#if _FP_W_TYPE_SIZE < 64
-#define _FP_FRACTBITS_D (2 * _FP_W_TYPE_SIZE)
-#else
-#define _FP_FRACTBITS_D _FP_W_TYPE_SIZE
-#endif
-
-#define _FP_FRACBITS_D 53
-#define _FP_FRACXBITS_D (_FP_FRACTBITS_D - _FP_FRACBITS_D)
-#define _FP_WFRACBITS_D (_FP_WORKBITS + _FP_FRACBITS_D)
-#define _FP_WFRACXBITS_D (_FP_FRACTBITS_D - _FP_WFRACBITS_D)
-#define _FP_EXPBITS_D 11
-#define _FP_EXPBIAS_D 1023
-#define _FP_EXPMAX_D 2047
-
-#define _FP_QNANBIT_D \
- ((_FP_W_TYPE)1 << (_FP_FRACBITS_D-2) % _FP_W_TYPE_SIZE)
-#define _FP_IMPLBIT_D \
- ((_FP_W_TYPE)1 << (_FP_FRACBITS_D-1) % _FP_W_TYPE_SIZE)
-#define _FP_OVERFLOW_D \
- ((_FP_W_TYPE)1 << _FP_WFRACBITS_D % _FP_W_TYPE_SIZE)
-
-#if _FP_W_TYPE_SIZE < 64
-
-union _FP_UNION_D
-{
- double flt;
- struct {
-#if __BYTE_ORDER == __BIG_ENDIAN
- unsigned sign : 1;
- unsigned exp : _FP_EXPBITS_D;
- unsigned frac1 : _FP_FRACBITS_D - (_FP_IMPLBIT_D != 0) - _FP_W_TYPE_SIZE;
- unsigned frac0 : _FP_W_TYPE_SIZE;
-#else
- unsigned frac0 : _FP_W_TYPE_SIZE;
- unsigned frac1 : _FP_FRACBITS_D - (_FP_IMPLBIT_D != 0) - _FP_W_TYPE_SIZE;
- unsigned exp : _FP_EXPBITS_D;
- unsigned sign : 1;
-#endif
- } bits __attribute__((packed));
-};
-
-#define FP_DECL_D(X) _FP_DECL(2,X)
-#define FP_UNPACK_RAW_D(X,val) _FP_UNPACK_RAW_2(D,X,val)
-#define FP_UNPACK_RAW_DP(X,val) _FP_UNPACK_RAW_2_P(D,X,val)
-#define FP_PACK_RAW_D(val,X) _FP_PACK_RAW_2(D,val,X)
-#define FP_PACK_RAW_DP(val,X) \
- do { \
- if (!FP_INHIBIT_RESULTS) \
- _FP_PACK_RAW_2_P(D,val,X); \
- } while (0)
-
-#define FP_UNPACK_D(X,val) \
- do { \
- _FP_UNPACK_RAW_2(D,X,val); \
- _FP_UNPACK_CANONICAL(D,2,X); \
- } while (0)
-
-#define FP_UNPACK_DP(X,val) \
- do { \
- _FP_UNPACK_RAW_2_P(D,X,val); \
- _FP_UNPACK_CANONICAL(D,2,X); \
- } while (0)
-
-#define FP_PACK_D(val,X) \
- do { \
- _FP_PACK_CANONICAL(D,2,X); \
- _FP_PACK_RAW_2(D,val,X); \
- } while (0)
-
-#define FP_PACK_DP(val,X) \
- do { \
- _FP_PACK_CANONICAL(D,2,X); \
- if (!FP_INHIBIT_RESULTS) \
- _FP_PACK_RAW_2_P(D,val,X); \
- } while (0)
-
-#define FP_ISSIGNAN_D(X) _FP_ISSIGNAN(D,2,X)
-#define FP_NEG_D(R,X) _FP_NEG(D,2,R,X)
-#define FP_ADD_D(R,X,Y) _FP_ADD(D,2,R,X,Y)
-#define FP_SUB_D(R,X,Y) _FP_SUB(D,2,R,X,Y)
-#define FP_MUL_D(R,X,Y) _FP_MUL(D,2,R,X,Y)
-#define FP_DIV_D(R,X,Y) _FP_DIV(D,2,R,X,Y)
-#define FP_SQRT_D(R,X) _FP_SQRT(D,2,R,X)
-#define _FP_SQRT_MEAT_D(R,S,T,X,Q) _FP_SQRT_MEAT_2(R,S,T,X,Q)
-
-#define FP_CMP_D(r,X,Y,un) _FP_CMP(D,2,r,X,Y,un)
-#define FP_CMP_EQ_D(r,X,Y) _FP_CMP_EQ(D,2,r,X,Y)
-
-#define FP_TO_INT_D(r,X,rsz,rsg) _FP_TO_INT(D,2,r,X,rsz,rsg)
-#define FP_TO_INT_ROUND_D(r,X,rsz,rsg) _FP_TO_INT_ROUND(D,2,r,X,rsz,rsg)
-#define FP_FROM_INT_D(X,r,rs,rt) _FP_FROM_INT(D,2,X,r,rs,rt)
-
-#define _FP_FRAC_HIGH_D(X) _FP_FRAC_HIGH_2(X)
-#define _FP_FRAC_HIGH_RAW_D(X) _FP_FRAC_HIGH_2(X)
-
-#else
-
-union _FP_UNION_D
-{
- double flt;
- struct {
-#if __BYTE_ORDER == __BIG_ENDIAN
- unsigned sign : 1;
- unsigned exp : _FP_EXPBITS_D;
- unsigned long frac : _FP_FRACBITS_D - (_FP_IMPLBIT_D != 0);
-#else
- unsigned long frac : _FP_FRACBITS_D - (_FP_IMPLBIT_D != 0);
- unsigned exp : _FP_EXPBITS_D;
- unsigned sign : 1;
-#endif
- } bits __attribute__((packed));
-};
-
-#define FP_DECL_D(X) _FP_DECL(1,X)
-#define FP_UNPACK_RAW_D(X,val) _FP_UNPACK_RAW_1(D,X,val)
-#define FP_UNPACK_RAW_DP(X,val) _FP_UNPACK_RAW_1_P(D,X,val)
-#define FP_PACK_RAW_D(val,X) _FP_PACK_RAW_1(D,val,X)
-#define FP_PACK_RAW_DP(val,X) \
- do { \
- if (!FP_INHIBIT_RESULTS) \
- _FP_PACK_RAW_1_P(D,val,X); \
- } while (0)
-
-#define FP_UNPACK_D(X,val) \
- do { \
- _FP_UNPACK_RAW_1(D,X,val); \
- _FP_UNPACK_CANONICAL(D,1,X); \
- } while (0)
-
-#define FP_UNPACK_DP(X,val) \
- do { \
- _FP_UNPACK_RAW_1_P(D,X,val); \
- _FP_UNPACK_CANONICAL(D,1,X); \
- } while (0)
-
-#define FP_PACK_D(val,X) \
- do { \
- _FP_PACK_CANONICAL(D,1,X); \
- _FP_PACK_RAW_1(D,val,X); \
- } while (0)
-
-#define FP_PACK_DP(val,X) \
- do { \
- _FP_PACK_CANONICAL(D,1,X); \
- if (!FP_INHIBIT_RESULTS) \
- _FP_PACK_RAW_1_P(D,val,X); \
- } while (0)
-
-#define FP_ISSIGNAN_D(X) _FP_ISSIGNAN(D,1,X)
-#define FP_NEG_D(R,X) _FP_NEG(D,1,R,X)
-#define FP_ADD_D(R,X,Y) _FP_ADD(D,1,R,X,Y)
-#define FP_SUB_D(R,X,Y) _FP_SUB(D,1,R,X,Y)
-#define FP_MUL_D(R,X,Y) _FP_MUL(D,1,R,X,Y)
-#define FP_DIV_D(R,X,Y) _FP_DIV(D,1,R,X,Y)
-#define FP_SQRT_D(R,X) _FP_SQRT(D,1,R,X)
-#define _FP_SQRT_MEAT_D(R,S,T,X,Q) _FP_SQRT_MEAT_1(R,S,T,X,Q)
-
-/* The implementation of _FP_MUL_D and _FP_DIV_D should be chosen by
- the target machine. */
-
-#define FP_CMP_D(r,X,Y,un) _FP_CMP(D,1,r,X,Y,un)
-#define FP_CMP_EQ_D(r,X,Y) _FP_CMP_EQ(D,1,r,X,Y)
-
-#define FP_TO_INT_D(r,X,rsz,rsg) _FP_TO_INT(D,1,r,X,rsz,rsg)
-#define FP_TO_INT_ROUND_D(r,X,rsz,rsg) _FP_TO_INT_ROUND(D,1,r,X,rsz,rsg)
-#define FP_FROM_INT_D(X,r,rs,rt) _FP_FROM_INT(D,1,X,r,rs,rt)
-
-#define _FP_FRAC_HIGH_D(X) _FP_FRAC_HIGH_1(X)
-#define _FP_FRAC_HIGH_RAW_D(X) _FP_FRAC_HIGH_1(X)
-
-#endif /* W_TYPE_SIZE < 64 */
-
-
-#endif /* __MATH_EMU_DOUBLE_H__ */
diff --git a/ANDROID_3.4.5/include/math-emu/op-1.h b/ANDROID_3.4.5/include/math-emu/op-1.h
deleted file mode 100644
index 3be3bb42..00000000
--- a/ANDROID_3.4.5/include/math-emu/op-1.h
+++ /dev/null
@@ -1,303 +0,0 @@
-/* Software floating-point emulation.
- Basic one-word fraction declaration and manipulation.
- Copyright (C) 1997,1998,1999 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Richard Henderson (rth@cygnus.com),
- Jakub Jelinek (jj@ultra.linux.cz),
- David S. Miller (davem@redhat.com) and
- Peter Maydell (pmaydell@chiark.greenend.org.uk).
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifndef __MATH_EMU_OP_1_H__
-#define __MATH_EMU_OP_1_H__
-
-#define _FP_FRAC_DECL_1(X) _FP_W_TYPE X##_f=0
-#define _FP_FRAC_COPY_1(D,S) (D##_f = S##_f)
-#define _FP_FRAC_SET_1(X,I) (X##_f = I)
-#define _FP_FRAC_HIGH_1(X) (X##_f)
-#define _FP_FRAC_LOW_1(X) (X##_f)
-#define _FP_FRAC_WORD_1(X,w) (X##_f)
-
-#define _FP_FRAC_ADDI_1(X,I) (X##_f += I)
-#define _FP_FRAC_SLL_1(X,N) \
- do { \
- if (__builtin_constant_p(N) && (N) == 1) \
- X##_f += X##_f; \
- else \
- X##_f <<= (N); \
- } while (0)
-#define _FP_FRAC_SRL_1(X,N) (X##_f >>= N)
-
-/* Right shift with sticky-lsb. */
-#define _FP_FRAC_SRS_1(X,N,sz) __FP_FRAC_SRS_1(X##_f, N, sz)
-
-#define __FP_FRAC_SRS_1(X,N,sz) \
- (X = (X >> (N) | (__builtin_constant_p(N) && (N) == 1 \
- ? X & 1 : (X << (_FP_W_TYPE_SIZE - (N))) != 0)))
-
-#define _FP_FRAC_ADD_1(R,X,Y) (R##_f = X##_f + Y##_f)
-#define _FP_FRAC_SUB_1(R,X,Y) (R##_f = X##_f - Y##_f)
-#define _FP_FRAC_DEC_1(X,Y) (X##_f -= Y##_f)
-#define _FP_FRAC_CLZ_1(z, X) __FP_CLZ(z, X##_f)
-
-/* Predicates */
-#define _FP_FRAC_NEGP_1(X) ((_FP_WS_TYPE)X##_f < 0)
-#define _FP_FRAC_ZEROP_1(X) (X##_f == 0)
-#define _FP_FRAC_OVERP_1(fs,X) (X##_f & _FP_OVERFLOW_##fs)
-#define _FP_FRAC_CLEAR_OVERP_1(fs,X) (X##_f &= ~_FP_OVERFLOW_##fs)
-#define _FP_FRAC_EQ_1(X, Y) (X##_f == Y##_f)
-#define _FP_FRAC_GE_1(X, Y) (X##_f >= Y##_f)
-#define _FP_FRAC_GT_1(X, Y) (X##_f > Y##_f)
-
-#define _FP_ZEROFRAC_1 0
-#define _FP_MINFRAC_1 1
-#define _FP_MAXFRAC_1 (~(_FP_WS_TYPE)0)
-
-/*
- * Unpack the raw bits of a native fp value. Do not classify or
- * normalize the data.
- */
-
-#define _FP_UNPACK_RAW_1(fs, X, val) \
- do { \
- union _FP_UNION_##fs _flo; _flo.flt = (val); \
- \
- X##_f = _flo.bits.frac; \
- X##_e = _flo.bits.exp; \
- X##_s = _flo.bits.sign; \
- } while (0)
-
-#define _FP_UNPACK_RAW_1_P(fs, X, val) \
- do { \
- union _FP_UNION_##fs *_flo = \
- (union _FP_UNION_##fs *)(val); \
- \
- X##_f = _flo->bits.frac; \
- X##_e = _flo->bits.exp; \
- X##_s = _flo->bits.sign; \
- } while (0)
-
-/*
- * Repack the raw bits of a native fp value.
- */
-
-#define _FP_PACK_RAW_1(fs, val, X) \
- do { \
- union _FP_UNION_##fs _flo; \
- \
- _flo.bits.frac = X##_f; \
- _flo.bits.exp = X##_e; \
- _flo.bits.sign = X##_s; \
- \
- (val) = _flo.flt; \
- } while (0)
-
-#define _FP_PACK_RAW_1_P(fs, val, X) \
- do { \
- union _FP_UNION_##fs *_flo = \
- (union _FP_UNION_##fs *)(val); \
- \
- _flo->bits.frac = X##_f; \
- _flo->bits.exp = X##_e; \
- _flo->bits.sign = X##_s; \
- } while (0)
-
-
-/*
- * Multiplication algorithms:
- */
-
-/* Basic. Assuming the host word size is >= 2*FRACBITS, we can do the
- multiplication immediately. */
-
-#define _FP_MUL_MEAT_1_imm(wfracbits, R, X, Y) \
- do { \
- R##_f = X##_f * Y##_f; \
- /* Normalize since we know where the msb of the multiplicands \
- were (bit B), we know that the msb of the of the product is \
- at either 2B or 2B-1. */ \
- _FP_FRAC_SRS_1(R, wfracbits-1, 2*wfracbits); \
- } while (0)
-
-/* Given a 1W * 1W => 2W primitive, do the extended multiplication. */
-
-#define _FP_MUL_MEAT_1_wide(wfracbits, R, X, Y, doit) \
- do { \
- _FP_W_TYPE _Z_f0, _Z_f1; \
- doit(_Z_f1, _Z_f0, X##_f, Y##_f); \
- /* Normalize since we know where the msb of the multiplicands \
- were (bit B), we know that the msb of the of the product is \
- at either 2B or 2B-1. */ \
- _FP_FRAC_SRS_2(_Z, wfracbits-1, 2*wfracbits); \
- R##_f = _Z_f0; \
- } while (0)
-
-/* Finally, a simple widening multiply algorithm. What fun! */
-
-#define _FP_MUL_MEAT_1_hard(wfracbits, R, X, Y) \
- do { \
- _FP_W_TYPE _xh, _xl, _yh, _yl, _z_f0, _z_f1, _a_f0, _a_f1; \
- \
- /* split the words in half */ \
- _xh = X##_f >> (_FP_W_TYPE_SIZE/2); \
- _xl = X##_f & (((_FP_W_TYPE)1 << (_FP_W_TYPE_SIZE/2)) - 1); \
- _yh = Y##_f >> (_FP_W_TYPE_SIZE/2); \
- _yl = Y##_f & (((_FP_W_TYPE)1 << (_FP_W_TYPE_SIZE/2)) - 1); \
- \
- /* multiply the pieces */ \
- _z_f0 = _xl * _yl; \
- _a_f0 = _xh * _yl; \
- _a_f1 = _xl * _yh; \
- _z_f1 = _xh * _yh; \
- \
- /* reassemble into two full words */ \
- if ((_a_f0 += _a_f1) < _a_f1) \
- _z_f1 += (_FP_W_TYPE)1 << (_FP_W_TYPE_SIZE/2); \
- _a_f1 = _a_f0 >> (_FP_W_TYPE_SIZE/2); \
- _a_f0 = _a_f0 << (_FP_W_TYPE_SIZE/2); \
- _FP_FRAC_ADD_2(_z, _z, _a); \
- \
- /* normalize */ \
- _FP_FRAC_SRS_2(_z, wfracbits - 1, 2*wfracbits); \
- R##_f = _z_f0; \
- } while (0)
-
-
-/*
- * Division algorithms:
- */
-
-/* Basic. Assuming the host word size is >= 2*FRACBITS, we can do the
- division immediately. Give this macro either _FP_DIV_HELP_imm for
- C primitives or _FP_DIV_HELP_ldiv for the ISO function. Which you
- choose will depend on what the compiler does with divrem4. */
-
-#define _FP_DIV_MEAT_1_imm(fs, R, X, Y, doit) \
- do { \
- _FP_W_TYPE _q, _r; \
- X##_f <<= (X##_f < Y##_f \
- ? R##_e--, _FP_WFRACBITS_##fs \
- : _FP_WFRACBITS_##fs - 1); \
- doit(_q, _r, X##_f, Y##_f); \
- R##_f = _q | (_r != 0); \
- } while (0)
-
-/* GCC's longlong.h defines a 2W / 1W => (1W,1W) primitive udiv_qrnnd
- that may be useful in this situation. This first is for a primitive
- that requires normalization, the second for one that does not. Look
- for UDIV_NEEDS_NORMALIZATION to tell which your machine needs. */
-
-#define _FP_DIV_MEAT_1_udiv_norm(fs, R, X, Y) \
- do { \
- _FP_W_TYPE _nh, _nl, _q, _r, _y; \
- \
- /* Normalize Y -- i.e. make the most significant bit set. */ \
- _y = Y##_f << _FP_WFRACXBITS_##fs; \
- \
- /* Shift X op correspondingly high, that is, up one full word. */ \
- if (X##_f < Y##_f) \
- { \
- R##_e--; \
- _nl = 0; \
- _nh = X##_f; \
- } \
- else \
- { \
- _nl = X##_f << (_FP_W_TYPE_SIZE - 1); \
- _nh = X##_f >> 1; \
- } \
- \
- udiv_qrnnd(_q, _r, _nh, _nl, _y); \
- R##_f = _q | (_r != 0); \
- } while (0)
-
-#define _FP_DIV_MEAT_1_udiv(fs, R, X, Y) \
- do { \
- _FP_W_TYPE _nh, _nl, _q, _r; \
- if (X##_f < Y##_f) \
- { \
- R##_e--; \
- _nl = X##_f << _FP_WFRACBITS_##fs; \
- _nh = X##_f >> _FP_WFRACXBITS_##fs; \
- } \
- else \
- { \
- _nl = X##_f << (_FP_WFRACBITS_##fs - 1); \
- _nh = X##_f >> (_FP_WFRACXBITS_##fs + 1); \
- } \
- udiv_qrnnd(_q, _r, _nh, _nl, Y##_f); \
- R##_f = _q | (_r != 0); \
- } while (0)
-
-
-/*
- * Square root algorithms:
- * We have just one right now, maybe Newton approximation
- * should be added for those machines where division is fast.
- */
-
-#define _FP_SQRT_MEAT_1(R, S, T, X, q) \
- do { \
- while (q != _FP_WORK_ROUND) \
- { \
- T##_f = S##_f + q; \
- if (T##_f <= X##_f) \
- { \
- S##_f = T##_f + q; \
- X##_f -= T##_f; \
- R##_f += q; \
- } \
- _FP_FRAC_SLL_1(X, 1); \
- q >>= 1; \
- } \
- if (X##_f) \
- { \
- if (S##_f < X##_f) \
- R##_f |= _FP_WORK_ROUND; \
- R##_f |= _FP_WORK_STICKY; \
- } \
- } while (0)
-
-/*
- * Assembly/disassembly for converting to/from integral types.
- * No shifting or overflow handled here.
- */
-
-#define _FP_FRAC_ASSEMBLE_1(r, X, rsize) (r = X##_f)
-#define _FP_FRAC_DISASSEMBLE_1(X, r, rsize) (X##_f = r)
-
-
-/*
- * Convert FP values between word sizes
- */
-
-#define _FP_FRAC_CONV_1_1(dfs, sfs, D, S) \
- do { \
- D##_f = S##_f; \
- if (_FP_WFRACBITS_##sfs > _FP_WFRACBITS_##dfs) \
- { \
- if (S##_c != FP_CLS_NAN) \
- _FP_FRAC_SRS_1(D, (_FP_WFRACBITS_##sfs-_FP_WFRACBITS_##dfs), \
- _FP_WFRACBITS_##sfs); \
- else \
- _FP_FRAC_SRL_1(D, (_FP_WFRACBITS_##sfs-_FP_WFRACBITS_##dfs)); \
- } \
- else \
- D##_f <<= _FP_WFRACBITS_##dfs - _FP_WFRACBITS_##sfs; \
- } while (0)
-
-#endif /* __MATH_EMU_OP_1_H__ */
diff --git a/ANDROID_3.4.5/include/math-emu/op-2.h b/ANDROID_3.4.5/include/math-emu/op-2.h
deleted file mode 100644
index 4f26ecc1..00000000
--- a/ANDROID_3.4.5/include/math-emu/op-2.h
+++ /dev/null
@@ -1,613 +0,0 @@
-/* Software floating-point emulation.
- Basic two-word fraction declaration and manipulation.
- Copyright (C) 1997,1998,1999 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Richard Henderson (rth@cygnus.com),
- Jakub Jelinek (jj@ultra.linux.cz),
- David S. Miller (davem@redhat.com) and
- Peter Maydell (pmaydell@chiark.greenend.org.uk).
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifndef __MATH_EMU_OP_2_H__
-#define __MATH_EMU_OP_2_H__
-
-#define _FP_FRAC_DECL_2(X) _FP_W_TYPE X##_f0 = 0, X##_f1 = 0
-#define _FP_FRAC_COPY_2(D,S) (D##_f0 = S##_f0, D##_f1 = S##_f1)
-#define _FP_FRAC_SET_2(X,I) __FP_FRAC_SET_2(X, I)
-#define _FP_FRAC_HIGH_2(X) (X##_f1)
-#define _FP_FRAC_LOW_2(X) (X##_f0)
-#define _FP_FRAC_WORD_2(X,w) (X##_f##w)
-
-#define _FP_FRAC_SLL_2(X,N) \
- do { \
- if ((N) < _FP_W_TYPE_SIZE) \
- { \
- if (__builtin_constant_p(N) && (N) == 1) \
- { \
- X##_f1 = X##_f1 + X##_f1 + (((_FP_WS_TYPE)(X##_f0)) < 0); \
- X##_f0 += X##_f0; \
- } \
- else \
- { \
- X##_f1 = X##_f1 << (N) | X##_f0 >> (_FP_W_TYPE_SIZE - (N)); \
- X##_f0 <<= (N); \
- } \
- } \
- else \
- { \
- X##_f1 = X##_f0 << ((N) - _FP_W_TYPE_SIZE); \
- X##_f0 = 0; \
- } \
- } while (0)
-
-#define _FP_FRAC_SRL_2(X,N) \
- do { \
- if ((N) < _FP_W_TYPE_SIZE) \
- { \
- X##_f0 = X##_f0 >> (N) | X##_f1 << (_FP_W_TYPE_SIZE - (N)); \
- X##_f1 >>= (N); \
- } \
- else \
- { \
- X##_f0 = X##_f1 >> ((N) - _FP_W_TYPE_SIZE); \
- X##_f1 = 0; \
- } \
- } while (0)
-
-/* Right shift with sticky-lsb. */
-#define _FP_FRAC_SRS_2(X,N,sz) \
- do { \
- if ((N) < _FP_W_TYPE_SIZE) \
- { \
- X##_f0 = (X##_f1 << (_FP_W_TYPE_SIZE - (N)) | X##_f0 >> (N) | \
- (__builtin_constant_p(N) && (N) == 1 \
- ? X##_f0 & 1 \
- : (X##_f0 << (_FP_W_TYPE_SIZE - (N))) != 0)); \
- X##_f1 >>= (N); \
- } \
- else \
- { \
- X##_f0 = (X##_f1 >> ((N) - _FP_W_TYPE_SIZE) | \
- (((X##_f1 << (2*_FP_W_TYPE_SIZE - (N))) | X##_f0) != 0)); \
- X##_f1 = 0; \
- } \
- } while (0)
-
-#define _FP_FRAC_ADDI_2(X,I) \
- __FP_FRAC_ADDI_2(X##_f1, X##_f0, I)
-
-#define _FP_FRAC_ADD_2(R,X,Y) \
- __FP_FRAC_ADD_2(R##_f1, R##_f0, X##_f1, X##_f0, Y##_f1, Y##_f0)
-
-#define _FP_FRAC_SUB_2(R,X,Y) \
- __FP_FRAC_SUB_2(R##_f1, R##_f0, X##_f1, X##_f0, Y##_f1, Y##_f0)
-
-#define _FP_FRAC_DEC_2(X,Y) \
- __FP_FRAC_DEC_2(X##_f1, X##_f0, Y##_f1, Y##_f0)
-
-#define _FP_FRAC_CLZ_2(R,X) \
- do { \
- if (X##_f1) \
- __FP_CLZ(R,X##_f1); \
- else \
- { \
- __FP_CLZ(R,X##_f0); \
- R += _FP_W_TYPE_SIZE; \
- } \
- } while(0)
-
-/* Predicates */
-#define _FP_FRAC_NEGP_2(X) ((_FP_WS_TYPE)X##_f1 < 0)
-#define _FP_FRAC_ZEROP_2(X) ((X##_f1 | X##_f0) == 0)
-#define _FP_FRAC_OVERP_2(fs,X) (_FP_FRAC_HIGH_##fs(X) & _FP_OVERFLOW_##fs)
-#define _FP_FRAC_CLEAR_OVERP_2(fs,X) (_FP_FRAC_HIGH_##fs(X) &= ~_FP_OVERFLOW_##fs)
-#define _FP_FRAC_EQ_2(X, Y) (X##_f1 == Y##_f1 && X##_f0 == Y##_f0)
-#define _FP_FRAC_GT_2(X, Y) \
- (X##_f1 > Y##_f1 || (X##_f1 == Y##_f1 && X##_f0 > Y##_f0))
-#define _FP_FRAC_GE_2(X, Y) \
- (X##_f1 > Y##_f1 || (X##_f1 == Y##_f1 && X##_f0 >= Y##_f0))
-
-#define _FP_ZEROFRAC_2 0, 0
-#define _FP_MINFRAC_2 0, 1
-#define _FP_MAXFRAC_2 (~(_FP_WS_TYPE)0), (~(_FP_WS_TYPE)0)
-
-/*
- * Internals
- */
-
-#define __FP_FRAC_SET_2(X,I1,I0) (X##_f0 = I0, X##_f1 = I1)
-
-#define __FP_CLZ_2(R, xh, xl) \
- do { \
- if (xh) \
- __FP_CLZ(R,xh); \
- else \
- { \
- __FP_CLZ(R,xl); \
- R += _FP_W_TYPE_SIZE; \
- } \
- } while(0)
-
-#if 0
-
-#ifndef __FP_FRAC_ADDI_2
-#define __FP_FRAC_ADDI_2(xh, xl, i) \
- (xh += ((xl += i) < i))
-#endif
-#ifndef __FP_FRAC_ADD_2
-#define __FP_FRAC_ADD_2(rh, rl, xh, xl, yh, yl) \
- (rh = xh + yh + ((rl = xl + yl) < xl))
-#endif
-#ifndef __FP_FRAC_SUB_2
-#define __FP_FRAC_SUB_2(rh, rl, xh, xl, yh, yl) \
- (rh = xh - yh - ((rl = xl - yl) > xl))
-#endif
-#ifndef __FP_FRAC_DEC_2
-#define __FP_FRAC_DEC_2(xh, xl, yh, yl) \
- do { \
- UWtype _t = xl; \
- xh -= yh + ((xl -= yl) > _t); \
- } while (0)
-#endif
-
-#else
-
-#undef __FP_FRAC_ADDI_2
-#define __FP_FRAC_ADDI_2(xh, xl, i) add_ssaaaa(xh, xl, xh, xl, 0, i)
-#undef __FP_FRAC_ADD_2
-#define __FP_FRAC_ADD_2 add_ssaaaa
-#undef __FP_FRAC_SUB_2
-#define __FP_FRAC_SUB_2 sub_ddmmss
-#undef __FP_FRAC_DEC_2
-#define __FP_FRAC_DEC_2(xh, xl, yh, yl) sub_ddmmss(xh, xl, xh, xl, yh, yl)
-
-#endif
-
-/*
- * Unpack the raw bits of a native fp value. Do not classify or
- * normalize the data.
- */
-
-#define _FP_UNPACK_RAW_2(fs, X, val) \
- do { \
- union _FP_UNION_##fs _flo; _flo.flt = (val); \
- \
- X##_f0 = _flo.bits.frac0; \
- X##_f1 = _flo.bits.frac1; \
- X##_e = _flo.bits.exp; \
- X##_s = _flo.bits.sign; \
- } while (0)
-
-#define _FP_UNPACK_RAW_2_P(fs, X, val) \
- do { \
- union _FP_UNION_##fs *_flo = \
- (union _FP_UNION_##fs *)(val); \
- \
- X##_f0 = _flo->bits.frac0; \
- X##_f1 = _flo->bits.frac1; \
- X##_e = _flo->bits.exp; \
- X##_s = _flo->bits.sign; \
- } while (0)
-
-
-/*
- * Repack the raw bits of a native fp value.
- */
-
-#define _FP_PACK_RAW_2(fs, val, X) \
- do { \
- union _FP_UNION_##fs _flo; \
- \
- _flo.bits.frac0 = X##_f0; \
- _flo.bits.frac1 = X##_f1; \
- _flo.bits.exp = X##_e; \
- _flo.bits.sign = X##_s; \
- \
- (val) = _flo.flt; \
- } while (0)
-
-#define _FP_PACK_RAW_2_P(fs, val, X) \
- do { \
- union _FP_UNION_##fs *_flo = \
- (union _FP_UNION_##fs *)(val); \
- \
- _flo->bits.frac0 = X##_f0; \
- _flo->bits.frac1 = X##_f1; \
- _flo->bits.exp = X##_e; \
- _flo->bits.sign = X##_s; \
- } while (0)
-
-
-/*
- * Multiplication algorithms:
- */
-
-/* Given a 1W * 1W => 2W primitive, do the extended multiplication. */
-
-#define _FP_MUL_MEAT_2_wide(wfracbits, R, X, Y, doit) \
- do { \
- _FP_FRAC_DECL_4(_z); _FP_FRAC_DECL_2(_b); _FP_FRAC_DECL_2(_c); \
- \
- doit(_FP_FRAC_WORD_4(_z,1), _FP_FRAC_WORD_4(_z,0), X##_f0, Y##_f0); \
- doit(_b_f1, _b_f0, X##_f0, Y##_f1); \
- doit(_c_f1, _c_f0, X##_f1, Y##_f0); \
- doit(_FP_FRAC_WORD_4(_z,3), _FP_FRAC_WORD_4(_z,2), X##_f1, Y##_f1); \
- \
- __FP_FRAC_ADD_3(_FP_FRAC_WORD_4(_z,3),_FP_FRAC_WORD_4(_z,2), \
- _FP_FRAC_WORD_4(_z,1), 0, _b_f1, _b_f0, \
- _FP_FRAC_WORD_4(_z,3),_FP_FRAC_WORD_4(_z,2), \
- _FP_FRAC_WORD_4(_z,1)); \
- __FP_FRAC_ADD_3(_FP_FRAC_WORD_4(_z,3),_FP_FRAC_WORD_4(_z,2), \
- _FP_FRAC_WORD_4(_z,1), 0, _c_f1, _c_f0, \
- _FP_FRAC_WORD_4(_z,3),_FP_FRAC_WORD_4(_z,2), \
- _FP_FRAC_WORD_4(_z,1)); \
- \
- /* Normalize since we know where the msb of the multiplicands \
- were (bit B), we know that the msb of the of the product is \
- at either 2B or 2B-1. */ \
- _FP_FRAC_SRS_4(_z, wfracbits-1, 2*wfracbits); \
- R##_f0 = _FP_FRAC_WORD_4(_z,0); \
- R##_f1 = _FP_FRAC_WORD_4(_z,1); \
- } while (0)
-
-/* Given a 1W * 1W => 2W primitive, do the extended multiplication.
- Do only 3 multiplications instead of four. This one is for machines
- where multiplication is much more expensive than subtraction. */
-
-#define _FP_MUL_MEAT_2_wide_3mul(wfracbits, R, X, Y, doit) \
- do { \
- _FP_FRAC_DECL_4(_z); _FP_FRAC_DECL_2(_b); _FP_FRAC_DECL_2(_c); \
- _FP_W_TYPE _d; \
- int _c1, _c2; \
- \
- _b_f0 = X##_f0 + X##_f1; \
- _c1 = _b_f0 < X##_f0; \
- _b_f1 = Y##_f0 + Y##_f1; \
- _c2 = _b_f1 < Y##_f0; \
- doit(_d, _FP_FRAC_WORD_4(_z,0), X##_f0, Y##_f0); \
- doit(_FP_FRAC_WORD_4(_z,2), _FP_FRAC_WORD_4(_z,1), _b_f0, _b_f1); \
- doit(_c_f1, _c_f0, X##_f1, Y##_f1); \
- \
- _b_f0 &= -_c2; \
- _b_f1 &= -_c1; \
- __FP_FRAC_ADD_3(_FP_FRAC_WORD_4(_z,3),_FP_FRAC_WORD_4(_z,2), \
- _FP_FRAC_WORD_4(_z,1), (_c1 & _c2), 0, _d, \
- 0, _FP_FRAC_WORD_4(_z,2), _FP_FRAC_WORD_4(_z,1)); \
- __FP_FRAC_ADDI_2(_FP_FRAC_WORD_4(_z,3),_FP_FRAC_WORD_4(_z,2), \
- _b_f0); \
- __FP_FRAC_ADDI_2(_FP_FRAC_WORD_4(_z,3),_FP_FRAC_WORD_4(_z,2), \
- _b_f1); \
- __FP_FRAC_DEC_3(_FP_FRAC_WORD_4(_z,3),_FP_FRAC_WORD_4(_z,2), \
- _FP_FRAC_WORD_4(_z,1), \
- 0, _d, _FP_FRAC_WORD_4(_z,0)); \
- __FP_FRAC_DEC_3(_FP_FRAC_WORD_4(_z,3),_FP_FRAC_WORD_4(_z,2), \
- _FP_FRAC_WORD_4(_z,1), 0, _c_f1, _c_f0); \
- __FP_FRAC_ADD_2(_FP_FRAC_WORD_4(_z,3), _FP_FRAC_WORD_4(_z,2), \
- _c_f1, _c_f0, \
- _FP_FRAC_WORD_4(_z,3), _FP_FRAC_WORD_4(_z,2)); \
- \
- /* Normalize since we know where the msb of the multiplicands \
- were (bit B), we know that the msb of the of the product is \
- at either 2B or 2B-1. */ \
- _FP_FRAC_SRS_4(_z, wfracbits-1, 2*wfracbits); \
- R##_f0 = _FP_FRAC_WORD_4(_z,0); \
- R##_f1 = _FP_FRAC_WORD_4(_z,1); \
- } while (0)
-
-#define _FP_MUL_MEAT_2_gmp(wfracbits, R, X, Y) \
- do { \
- _FP_FRAC_DECL_4(_z); \
- _FP_W_TYPE _x[2], _y[2]; \
- _x[0] = X##_f0; _x[1] = X##_f1; \
- _y[0] = Y##_f0; _y[1] = Y##_f1; \
- \
- mpn_mul_n(_z_f, _x, _y, 2); \
- \
- /* Normalize since we know where the msb of the multiplicands \
- were (bit B), we know that the msb of the of the product is \
- at either 2B or 2B-1. */ \
- _FP_FRAC_SRS_4(_z, wfracbits-1, 2*wfracbits); \
- R##_f0 = _z_f[0]; \
- R##_f1 = _z_f[1]; \
- } while (0)
-
-/* Do at most 120x120=240 bits multiplication using double floating
- point multiplication. This is useful if floating point
- multiplication has much bigger throughput than integer multiply.
- It is supposed to work for _FP_W_TYPE_SIZE 64 and wfracbits
- between 106 and 120 only.
- Caller guarantees that X and Y has (1LLL << (wfracbits - 1)) set.
- SETFETZ is a macro which will disable all FPU exceptions and set rounding
- towards zero, RESETFE should optionally reset it back. */
-
-#define _FP_MUL_MEAT_2_120_240_double(wfracbits, R, X, Y, setfetz, resetfe) \
- do { \
- static const double _const[] = { \
- /* 2^-24 */ 5.9604644775390625e-08, \
- /* 2^-48 */ 3.5527136788005009e-15, \
- /* 2^-72 */ 2.1175823681357508e-22, \
- /* 2^-96 */ 1.2621774483536189e-29, \
- /* 2^28 */ 2.68435456e+08, \
- /* 2^4 */ 1.600000e+01, \
- /* 2^-20 */ 9.5367431640625e-07, \
- /* 2^-44 */ 5.6843418860808015e-14, \
- /* 2^-68 */ 3.3881317890172014e-21, \
- /* 2^-92 */ 2.0194839173657902e-28, \
- /* 2^-116 */ 1.2037062152420224e-35}; \
- double _a240, _b240, _c240, _d240, _e240, _f240, \
- _g240, _h240, _i240, _j240, _k240; \
- union { double d; UDItype i; } _l240, _m240, _n240, _o240, \
- _p240, _q240, _r240, _s240; \
- UDItype _t240, _u240, _v240, _w240, _x240, _y240 = 0; \
- \
- if (wfracbits < 106 || wfracbits > 120) \
- abort(); \
- \
- setfetz; \
- \
- _e240 = (double)(long)(X##_f0 & 0xffffff); \
- _j240 = (double)(long)(Y##_f0 & 0xffffff); \
- _d240 = (double)(long)((X##_f0 >> 24) & 0xffffff); \
- _i240 = (double)(long)((Y##_f0 >> 24) & 0xffffff); \
- _c240 = (double)(long)(((X##_f1 << 16) & 0xffffff) | (X##_f0 >> 48)); \
- _h240 = (double)(long)(((Y##_f1 << 16) & 0xffffff) | (Y##_f0 >> 48)); \
- _b240 = (double)(long)((X##_f1 >> 8) & 0xffffff); \
- _g240 = (double)(long)((Y##_f1 >> 8) & 0xffffff); \
- _a240 = (double)(long)(X##_f1 >> 32); \
- _f240 = (double)(long)(Y##_f1 >> 32); \
- _e240 *= _const[3]; \
- _j240 *= _const[3]; \
- _d240 *= _const[2]; \
- _i240 *= _const[2]; \
- _c240 *= _const[1]; \
- _h240 *= _const[1]; \
- _b240 *= _const[0]; \
- _g240 *= _const[0]; \
- _s240.d = _e240*_j240;\
- _r240.d = _d240*_j240 + _e240*_i240;\
- _q240.d = _c240*_j240 + _d240*_i240 + _e240*_h240;\
- _p240.d = _b240*_j240 + _c240*_i240 + _d240*_h240 + _e240*_g240;\
- _o240.d = _a240*_j240 + _b240*_i240 + _c240*_h240 + _d240*_g240 + _e240*_f240;\
- _n240.d = _a240*_i240 + _b240*_h240 + _c240*_g240 + _d240*_f240; \
- _m240.d = _a240*_h240 + _b240*_g240 + _c240*_f240; \
- _l240.d = _a240*_g240 + _b240*_f240; \
- _k240 = _a240*_f240; \
- _r240.d += _s240.d; \
- _q240.d += _r240.d; \
- _p240.d += _q240.d; \
- _o240.d += _p240.d; \
- _n240.d += _o240.d; \
- _m240.d += _n240.d; \
- _l240.d += _m240.d; \
- _k240 += _l240.d; \
- _s240.d -= ((_const[10]+_s240.d)-_const[10]); \
- _r240.d -= ((_const[9]+_r240.d)-_const[9]); \
- _q240.d -= ((_const[8]+_q240.d)-_const[8]); \
- _p240.d -= ((_const[7]+_p240.d)-_const[7]); \
- _o240.d += _const[7]; \
- _n240.d += _const[6]; \
- _m240.d += _const[5]; \
- _l240.d += _const[4]; \
- if (_s240.d != 0.0) _y240 = 1; \
- if (_r240.d != 0.0) _y240 = 1; \
- if (_q240.d != 0.0) _y240 = 1; \
- if (_p240.d != 0.0) _y240 = 1; \
- _t240 = (DItype)_k240; \
- _u240 = _l240.i; \
- _v240 = _m240.i; \
- _w240 = _n240.i; \
- _x240 = _o240.i; \
- R##_f1 = (_t240 << (128 - (wfracbits - 1))) \
- | ((_u240 & 0xffffff) >> ((wfracbits - 1) - 104)); \
- R##_f0 = ((_u240 & 0xffffff) << (168 - (wfracbits - 1))) \
- | ((_v240 & 0xffffff) << (144 - (wfracbits - 1))) \
- | ((_w240 & 0xffffff) << (120 - (wfracbits - 1))) \
- | ((_x240 & 0xffffff) >> ((wfracbits - 1) - 96)) \
- | _y240; \
- resetfe; \
- } while (0)
-
-/*
- * Division algorithms:
- */
-
-#define _FP_DIV_MEAT_2_udiv(fs, R, X, Y) \
- do { \
- _FP_W_TYPE _n_f2, _n_f1, _n_f0, _r_f1, _r_f0, _m_f1, _m_f0; \
- if (_FP_FRAC_GT_2(X, Y)) \
- { \
- _n_f2 = X##_f1 >> 1; \
- _n_f1 = X##_f1 << (_FP_W_TYPE_SIZE - 1) | X##_f0 >> 1; \
- _n_f0 = X##_f0 << (_FP_W_TYPE_SIZE - 1); \
- } \
- else \
- { \
- R##_e--; \
- _n_f2 = X##_f1; \
- _n_f1 = X##_f0; \
- _n_f0 = 0; \
- } \
- \
- /* Normalize, i.e. make the most significant bit of the \
- denominator set. */ \
- _FP_FRAC_SLL_2(Y, _FP_WFRACXBITS_##fs); \
- \
- udiv_qrnnd(R##_f1, _r_f1, _n_f2, _n_f1, Y##_f1); \
- umul_ppmm(_m_f1, _m_f0, R##_f1, Y##_f0); \
- _r_f0 = _n_f0; \
- if (_FP_FRAC_GT_2(_m, _r)) \
- { \
- R##_f1--; \
- _FP_FRAC_ADD_2(_r, Y, _r); \
- if (_FP_FRAC_GE_2(_r, Y) && _FP_FRAC_GT_2(_m, _r)) \
- { \
- R##_f1--; \
- _FP_FRAC_ADD_2(_r, Y, _r); \
- } \
- } \
- _FP_FRAC_DEC_2(_r, _m); \
- \
- if (_r_f1 == Y##_f1) \
- { \
- /* This is a special case, not an optimization \
- (_r/Y##_f1 would not fit into UWtype). \
- As _r is guaranteed to be < Y, R##_f0 can be either \
- (UWtype)-1 or (UWtype)-2. But as we know what kind \
- of bits it is (sticky, guard, round), we don't care. \
- We also don't care what the reminder is, because the \
- guard bit will be set anyway. -jj */ \
- R##_f0 = -1; \
- } \
- else \
- { \
- udiv_qrnnd(R##_f0, _r_f1, _r_f1, _r_f0, Y##_f1); \
- umul_ppmm(_m_f1, _m_f0, R##_f0, Y##_f0); \
- _r_f0 = 0; \
- if (_FP_FRAC_GT_2(_m, _r)) \
- { \
- R##_f0--; \
- _FP_FRAC_ADD_2(_r, Y, _r); \
- if (_FP_FRAC_GE_2(_r, Y) && _FP_FRAC_GT_2(_m, _r)) \
- { \
- R##_f0--; \
- _FP_FRAC_ADD_2(_r, Y, _r); \
- } \
- } \
- if (!_FP_FRAC_EQ_2(_r, _m)) \
- R##_f0 |= _FP_WORK_STICKY; \
- } \
- } while (0)
-
-
-#define _FP_DIV_MEAT_2_gmp(fs, R, X, Y) \
- do { \
- _FP_W_TYPE _x[4], _y[2], _z[4]; \
- _y[0] = Y##_f0; _y[1] = Y##_f1; \
- _x[0] = _x[3] = 0; \
- if (_FP_FRAC_GT_2(X, Y)) \
- { \
- R##_e++; \
- _x[1] = (X##_f0 << (_FP_WFRACBITS_##fs-1 - _FP_W_TYPE_SIZE) | \
- X##_f1 >> (_FP_W_TYPE_SIZE - \
- (_FP_WFRACBITS_##fs-1 - _FP_W_TYPE_SIZE))); \
- _x[2] = X##_f1 << (_FP_WFRACBITS_##fs-1 - _FP_W_TYPE_SIZE); \
- } \
- else \
- { \
- _x[1] = (X##_f0 << (_FP_WFRACBITS_##fs - _FP_W_TYPE_SIZE) | \
- X##_f1 >> (_FP_W_TYPE_SIZE - \
- (_FP_WFRACBITS_##fs - _FP_W_TYPE_SIZE))); \
- _x[2] = X##_f1 << (_FP_WFRACBITS_##fs - _FP_W_TYPE_SIZE); \
- } \
- \
- (void) mpn_divrem (_z, 0, _x, 4, _y, 2); \
- R##_f1 = _z[1]; \
- R##_f0 = _z[0] | ((_x[0] | _x[1]) != 0); \
- } while (0)
-
-
-/*
- * Square root algorithms:
- * We have just one right now, maybe Newton approximation
- * should be added for those machines where division is fast.
- */
-
-#define _FP_SQRT_MEAT_2(R, S, T, X, q) \
- do { \
- while (q) \
- { \
- T##_f1 = S##_f1 + q; \
- if (T##_f1 <= X##_f1) \
- { \
- S##_f1 = T##_f1 + q; \
- X##_f1 -= T##_f1; \
- R##_f1 += q; \
- } \
- _FP_FRAC_SLL_2(X, 1); \
- q >>= 1; \
- } \
- q = (_FP_W_TYPE)1 << (_FP_W_TYPE_SIZE - 1); \
- while (q != _FP_WORK_ROUND) \
- { \
- T##_f0 = S##_f0 + q; \
- T##_f1 = S##_f1; \
- if (T##_f1 < X##_f1 || \
- (T##_f1 == X##_f1 && T##_f0 <= X##_f0)) \
- { \
- S##_f0 = T##_f0 + q; \
- S##_f1 += (T##_f0 > S##_f0); \
- _FP_FRAC_DEC_2(X, T); \
- R##_f0 += q; \
- } \
- _FP_FRAC_SLL_2(X, 1); \
- q >>= 1; \
- } \
- if (X##_f0 | X##_f1) \
- { \
- if (S##_f1 < X##_f1 || \
- (S##_f1 == X##_f1 && S##_f0 < X##_f0)) \
- R##_f0 |= _FP_WORK_ROUND; \
- R##_f0 |= _FP_WORK_STICKY; \
- } \
- } while (0)
-
-
-/*
- * Assembly/disassembly for converting to/from integral types.
- * No shifting or overflow handled here.
- */
-
-#define _FP_FRAC_ASSEMBLE_2(r, X, rsize) \
- do { \
- if (rsize <= _FP_W_TYPE_SIZE) \
- r = X##_f0; \
- else \
- { \
- r = X##_f1; \
- r <<= _FP_W_TYPE_SIZE; \
- r += X##_f0; \
- } \
- } while (0)
-
-#define _FP_FRAC_DISASSEMBLE_2(X, r, rsize) \
- do { \
- X##_f0 = r; \
- X##_f1 = (rsize <= _FP_W_TYPE_SIZE ? 0 : r >> _FP_W_TYPE_SIZE); \
- } while (0)
-
-/*
- * Convert FP values between word sizes
- */
-
-#define _FP_FRAC_CONV_1_2(dfs, sfs, D, S) \
- do { \
- if (S##_c != FP_CLS_NAN) \
- _FP_FRAC_SRS_2(S, (_FP_WFRACBITS_##sfs - _FP_WFRACBITS_##dfs), \
- _FP_WFRACBITS_##sfs); \
- else \
- _FP_FRAC_SRL_2(S, (_FP_WFRACBITS_##sfs - _FP_WFRACBITS_##dfs)); \
- D##_f = S##_f0; \
- } while (0)
-
-#define _FP_FRAC_CONV_2_1(dfs, sfs, D, S) \
- do { \
- D##_f0 = S##_f; \
- D##_f1 = 0; \
- _FP_FRAC_SLL_2(D, (_FP_WFRACBITS_##dfs - _FP_WFRACBITS_##sfs)); \
- } while (0)
-
-#endif
diff --git a/ANDROID_3.4.5/include/math-emu/op-4.h b/ANDROID_3.4.5/include/math-emu/op-4.h
deleted file mode 100644
index ba226f82..00000000
--- a/ANDROID_3.4.5/include/math-emu/op-4.h
+++ /dev/null
@@ -1,692 +0,0 @@
-/* Software floating-point emulation.
- Basic four-word fraction declaration and manipulation.
- Copyright (C) 1997,1998,1999 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Richard Henderson (rth@cygnus.com),
- Jakub Jelinek (jj@ultra.linux.cz),
- David S. Miller (davem@redhat.com) and
- Peter Maydell (pmaydell@chiark.greenend.org.uk).
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifndef __MATH_EMU_OP_4_H__
-#define __MATH_EMU_OP_4_H__
-
-#define _FP_FRAC_DECL_4(X) _FP_W_TYPE X##_f[4]
-#define _FP_FRAC_COPY_4(D,S) \
- (D##_f[0] = S##_f[0], D##_f[1] = S##_f[1], \
- D##_f[2] = S##_f[2], D##_f[3] = S##_f[3])
-#define _FP_FRAC_SET_4(X,I) __FP_FRAC_SET_4(X, I)
-#define _FP_FRAC_HIGH_4(X) (X##_f[3])
-#define _FP_FRAC_LOW_4(X) (X##_f[0])
-#define _FP_FRAC_WORD_4(X,w) (X##_f[w])
-
-#define _FP_FRAC_SLL_4(X,N) \
- do { \
- _FP_I_TYPE _up, _down, _skip, _i; \
- _skip = (N) / _FP_W_TYPE_SIZE; \
- _up = (N) % _FP_W_TYPE_SIZE; \
- _down = _FP_W_TYPE_SIZE - _up; \
- if (!_up) \
- for (_i = 3; _i >= _skip; --_i) \
- X##_f[_i] = X##_f[_i-_skip]; \
- else \
- { \
- for (_i = 3; _i > _skip; --_i) \
- X##_f[_i] = X##_f[_i-_skip] << _up \
- | X##_f[_i-_skip-1] >> _down; \
- X##_f[_i--] = X##_f[0] << _up; \
- } \
- for (; _i >= 0; --_i) \
- X##_f[_i] = 0; \
- } while (0)
-
-/* This one was broken too */
-#define _FP_FRAC_SRL_4(X,N) \
- do { \
- _FP_I_TYPE _up, _down, _skip, _i; \
- _skip = (N) / _FP_W_TYPE_SIZE; \
- _down = (N) % _FP_W_TYPE_SIZE; \
- _up = _FP_W_TYPE_SIZE - _down; \
- if (!_down) \
- for (_i = 0; _i <= 3-_skip; ++_i) \
- X##_f[_i] = X##_f[_i+_skip]; \
- else \
- { \
- for (_i = 0; _i < 3-_skip; ++_i) \
- X##_f[_i] = X##_f[_i+_skip] >> _down \
- | X##_f[_i+_skip+1] << _up; \
- X##_f[_i++] = X##_f[3] >> _down; \
- } \
- for (; _i < 4; ++_i) \
- X##_f[_i] = 0; \
- } while (0)
-
-
-/* Right shift with sticky-lsb.
- * What this actually means is that we do a standard right-shift,
- * but that if any of the bits that fall off the right hand side
- * were one then we always set the LSbit.
- */
-#define _FP_FRAC_SRS_4(X,N,size) \
- do { \
- _FP_I_TYPE _up, _down, _skip, _i; \
- _FP_W_TYPE _s; \
- _skip = (N) / _FP_W_TYPE_SIZE; \
- _down = (N) % _FP_W_TYPE_SIZE; \
- _up = _FP_W_TYPE_SIZE - _down; \
- for (_s = _i = 0; _i < _skip; ++_i) \
- _s |= X##_f[_i]; \
- _s |= X##_f[_i] << _up; \
-/* s is now != 0 if we want to set the LSbit */ \
- if (!_down) \
- for (_i = 0; _i <= 3-_skip; ++_i) \
- X##_f[_i] = X##_f[_i+_skip]; \
- else \
- { \
- for (_i = 0; _i < 3-_skip; ++_i) \
- X##_f[_i] = X##_f[_i+_skip] >> _down \
- | X##_f[_i+_skip+1] << _up; \
- X##_f[_i++] = X##_f[3] >> _down; \
- } \
- for (; _i < 4; ++_i) \
- X##_f[_i] = 0; \
- /* don't fix the LSB until the very end when we're sure f[0] is stable */ \
- X##_f[0] |= (_s != 0); \
- } while (0)
-
-#define _FP_FRAC_ADD_4(R,X,Y) \
- __FP_FRAC_ADD_4(R##_f[3], R##_f[2], R##_f[1], R##_f[0], \
- X##_f[3], X##_f[2], X##_f[1], X##_f[0], \
- Y##_f[3], Y##_f[2], Y##_f[1], Y##_f[0])
-
-#define _FP_FRAC_SUB_4(R,X,Y) \
- __FP_FRAC_SUB_4(R##_f[3], R##_f[2], R##_f[1], R##_f[0], \
- X##_f[3], X##_f[2], X##_f[1], X##_f[0], \
- Y##_f[3], Y##_f[2], Y##_f[1], Y##_f[0])
-
-#define _FP_FRAC_DEC_4(X,Y) \
- __FP_FRAC_DEC_4(X##_f[3], X##_f[2], X##_f[1], X##_f[0], \
- Y##_f[3], Y##_f[2], Y##_f[1], Y##_f[0])
-
-#define _FP_FRAC_ADDI_4(X,I) \
- __FP_FRAC_ADDI_4(X##_f[3], X##_f[2], X##_f[1], X##_f[0], I)
-
-#define _FP_ZEROFRAC_4 0,0,0,0
-#define _FP_MINFRAC_4 0,0,0,1
-#define _FP_MAXFRAC_4 (~(_FP_WS_TYPE)0), (~(_FP_WS_TYPE)0), (~(_FP_WS_TYPE)0), (~(_FP_WS_TYPE)0)
-
-#define _FP_FRAC_ZEROP_4(X) ((X##_f[0] | X##_f[1] | X##_f[2] | X##_f[3]) == 0)
-#define _FP_FRAC_NEGP_4(X) ((_FP_WS_TYPE)X##_f[3] < 0)
-#define _FP_FRAC_OVERP_4(fs,X) (_FP_FRAC_HIGH_##fs(X) & _FP_OVERFLOW_##fs)
-#define _FP_FRAC_CLEAR_OVERP_4(fs,X) (_FP_FRAC_HIGH_##fs(X) &= ~_FP_OVERFLOW_##fs)
-
-#define _FP_FRAC_EQ_4(X,Y) \
- (X##_f[0] == Y##_f[0] && X##_f[1] == Y##_f[1] \
- && X##_f[2] == Y##_f[2] && X##_f[3] == Y##_f[3])
-
-#define _FP_FRAC_GT_4(X,Y) \
- (X##_f[3] > Y##_f[3] || \
- (X##_f[3] == Y##_f[3] && (X##_f[2] > Y##_f[2] || \
- (X##_f[2] == Y##_f[2] && (X##_f[1] > Y##_f[1] || \
- (X##_f[1] == Y##_f[1] && X##_f[0] > Y##_f[0]) \
- )) \
- )) \
- )
-
-#define _FP_FRAC_GE_4(X,Y) \
- (X##_f[3] > Y##_f[3] || \
- (X##_f[3] == Y##_f[3] && (X##_f[2] > Y##_f[2] || \
- (X##_f[2] == Y##_f[2] && (X##_f[1] > Y##_f[1] || \
- (X##_f[1] == Y##_f[1] && X##_f[0] >= Y##_f[0]) \
- )) \
- )) \
- )
-
-
-#define _FP_FRAC_CLZ_4(R,X) \
- do { \
- if (X##_f[3]) \
- { \
- __FP_CLZ(R,X##_f[3]); \
- } \
- else if (X##_f[2]) \
- { \
- __FP_CLZ(R,X##_f[2]); \
- R += _FP_W_TYPE_SIZE; \
- } \
- else if (X##_f[1]) \
- { \
- __FP_CLZ(R,X##_f[2]); \
- R += _FP_W_TYPE_SIZE*2; \
- } \
- else \
- { \
- __FP_CLZ(R,X##_f[0]); \
- R += _FP_W_TYPE_SIZE*3; \
- } \
- } while(0)
-
-
-#define _FP_UNPACK_RAW_4(fs, X, val) \
- do { \
- union _FP_UNION_##fs _flo; _flo.flt = (val); \
- X##_f[0] = _flo.bits.frac0; \
- X##_f[1] = _flo.bits.frac1; \
- X##_f[2] = _flo.bits.frac2; \
- X##_f[3] = _flo.bits.frac3; \
- X##_e = _flo.bits.exp; \
- X##_s = _flo.bits.sign; \
- } while (0)
-
-#define _FP_UNPACK_RAW_4_P(fs, X, val) \
- do { \
- union _FP_UNION_##fs *_flo = \
- (union _FP_UNION_##fs *)(val); \
- \
- X##_f[0] = _flo->bits.frac0; \
- X##_f[1] = _flo->bits.frac1; \
- X##_f[2] = _flo->bits.frac2; \
- X##_f[3] = _flo->bits.frac3; \
- X##_e = _flo->bits.exp; \
- X##_s = _flo->bits.sign; \
- } while (0)
-
-#define _FP_PACK_RAW_4(fs, val, X) \
- do { \
- union _FP_UNION_##fs _flo; \
- _flo.bits.frac0 = X##_f[0]; \
- _flo.bits.frac1 = X##_f[1]; \
- _flo.bits.frac2 = X##_f[2]; \
- _flo.bits.frac3 = X##_f[3]; \
- _flo.bits.exp = X##_e; \
- _flo.bits.sign = X##_s; \
- (val) = _flo.flt; \
- } while (0)
-
-#define _FP_PACK_RAW_4_P(fs, val, X) \
- do { \
- union _FP_UNION_##fs *_flo = \
- (union _FP_UNION_##fs *)(val); \
- \
- _flo->bits.frac0 = X##_f[0]; \
- _flo->bits.frac1 = X##_f[1]; \
- _flo->bits.frac2 = X##_f[2]; \
- _flo->bits.frac3 = X##_f[3]; \
- _flo->bits.exp = X##_e; \
- _flo->bits.sign = X##_s; \
- } while (0)
-
-/*
- * Multiplication algorithms:
- */
-
-/* Given a 1W * 1W => 2W primitive, do the extended multiplication. */
-
-#define _FP_MUL_MEAT_4_wide(wfracbits, R, X, Y, doit) \
- do { \
- _FP_FRAC_DECL_8(_z); _FP_FRAC_DECL_2(_b); _FP_FRAC_DECL_2(_c); \
- _FP_FRAC_DECL_2(_d); _FP_FRAC_DECL_2(_e); _FP_FRAC_DECL_2(_f); \
- \
- doit(_FP_FRAC_WORD_8(_z,1), _FP_FRAC_WORD_8(_z,0), X##_f[0], Y##_f[0]); \
- doit(_b_f1, _b_f0, X##_f[0], Y##_f[1]); \
- doit(_c_f1, _c_f0, X##_f[1], Y##_f[0]); \
- doit(_d_f1, _d_f0, X##_f[1], Y##_f[1]); \
- doit(_e_f1, _e_f0, X##_f[0], Y##_f[2]); \
- doit(_f_f1, _f_f0, X##_f[2], Y##_f[0]); \
- __FP_FRAC_ADD_3(_FP_FRAC_WORD_8(_z,3),_FP_FRAC_WORD_8(_z,2), \
- _FP_FRAC_WORD_8(_z,1), 0,_b_f1,_b_f0, \
- 0,0,_FP_FRAC_WORD_8(_z,1)); \
- __FP_FRAC_ADD_3(_FP_FRAC_WORD_8(_z,3),_FP_FRAC_WORD_8(_z,2), \
- _FP_FRAC_WORD_8(_z,1), 0,_c_f1,_c_f0, \
- _FP_FRAC_WORD_8(_z,3),_FP_FRAC_WORD_8(_z,2), \
- _FP_FRAC_WORD_8(_z,1)); \
- __FP_FRAC_ADD_3(_FP_FRAC_WORD_8(_z,4),_FP_FRAC_WORD_8(_z,3), \
- _FP_FRAC_WORD_8(_z,2), 0,_d_f1,_d_f0, \
- 0,_FP_FRAC_WORD_8(_z,3),_FP_FRAC_WORD_8(_z,2)); \
- __FP_FRAC_ADD_3(_FP_FRAC_WORD_8(_z,4),_FP_FRAC_WORD_8(_z,3), \
- _FP_FRAC_WORD_8(_z,2), 0,_e_f1,_e_f0, \
- _FP_FRAC_WORD_8(_z,4),_FP_FRAC_WORD_8(_z,3), \
- _FP_FRAC_WORD_8(_z,2)); \
- __FP_FRAC_ADD_3(_FP_FRAC_WORD_8(_z,4),_FP_FRAC_WORD_8(_z,3), \
- _FP_FRAC_WORD_8(_z,2), 0,_f_f1,_f_f0, \
- _FP_FRAC_WORD_8(_z,4),_FP_FRAC_WORD_8(_z,3), \
- _FP_FRAC_WORD_8(_z,2)); \
- doit(_b_f1, _b_f0, X##_f[0], Y##_f[3]); \
- doit(_c_f1, _c_f0, X##_f[3], Y##_f[0]); \
- doit(_d_f1, _d_f0, X##_f[1], Y##_f[2]); \
- doit(_e_f1, _e_f0, X##_f[2], Y##_f[1]); \
- __FP_FRAC_ADD_3(_FP_FRAC_WORD_8(_z,5),_FP_FRAC_WORD_8(_z,4), \
- _FP_FRAC_WORD_8(_z,3), 0,_b_f1,_b_f0, \
- 0,_FP_FRAC_WORD_8(_z,4),_FP_FRAC_WORD_8(_z,3)); \
- __FP_FRAC_ADD_3(_FP_FRAC_WORD_8(_z,5),_FP_FRAC_WORD_8(_z,4), \
- _FP_FRAC_WORD_8(_z,3), 0,_c_f1,_c_f0, \
- _FP_FRAC_WORD_8(_z,5),_FP_FRAC_WORD_8(_z,4), \
- _FP_FRAC_WORD_8(_z,3)); \
- __FP_FRAC_ADD_3(_FP_FRAC_WORD_8(_z,5),_FP_FRAC_WORD_8(_z,4), \
- _FP_FRAC_WORD_8(_z,3), 0,_d_f1,_d_f0, \
- _FP_FRAC_WORD_8(_z,5),_FP_FRAC_WORD_8(_z,4), \
- _FP_FRAC_WORD_8(_z,3)); \
- __FP_FRAC_ADD_3(_FP_FRAC_WORD_8(_z,5),_FP_FRAC_WORD_8(_z,4), \
- _FP_FRAC_WORD_8(_z,3), 0,_e_f1,_e_f0, \
- _FP_FRAC_WORD_8(_z,5),_FP_FRAC_WORD_8(_z,4), \
- _FP_FRAC_WORD_8(_z,3)); \
- doit(_b_f1, _b_f0, X##_f[2], Y##_f[2]); \
- doit(_c_f1, _c_f0, X##_f[1], Y##_f[3]); \
- doit(_d_f1, _d_f0, X##_f[3], Y##_f[1]); \
- doit(_e_f1, _e_f0, X##_f[2], Y##_f[3]); \
- doit(_f_f1, _f_f0, X##_f[3], Y##_f[2]); \
- __FP_FRAC_ADD_3(_FP_FRAC_WORD_8(_z,6),_FP_FRAC_WORD_8(_z,5), \
- _FP_FRAC_WORD_8(_z,4), 0,_b_f1,_b_f0, \
- 0,_FP_FRAC_WORD_8(_z,5),_FP_FRAC_WORD_8(_z,4)); \
- __FP_FRAC_ADD_3(_FP_FRAC_WORD_8(_z,6),_FP_FRAC_WORD_8(_z,5), \
- _FP_FRAC_WORD_8(_z,4), 0,_c_f1,_c_f0, \
- _FP_FRAC_WORD_8(_z,6),_FP_FRAC_WORD_8(_z,5), \
- _FP_FRAC_WORD_8(_z,4)); \
- __FP_FRAC_ADD_3(_FP_FRAC_WORD_8(_z,6),_FP_FRAC_WORD_8(_z,5), \
- _FP_FRAC_WORD_8(_z,4), 0,_d_f1,_d_f0, \
- _FP_FRAC_WORD_8(_z,6),_FP_FRAC_WORD_8(_z,5), \
- _FP_FRAC_WORD_8(_z,4)); \
- __FP_FRAC_ADD_3(_FP_FRAC_WORD_8(_z,7),_FP_FRAC_WORD_8(_z,6), \
- _FP_FRAC_WORD_8(_z,5), 0,_e_f1,_e_f0, \
- 0,_FP_FRAC_WORD_8(_z,6),_FP_FRAC_WORD_8(_z,5)); \
- __FP_FRAC_ADD_3(_FP_FRAC_WORD_8(_z,7),_FP_FRAC_WORD_8(_z,6), \
- _FP_FRAC_WORD_8(_z,5), 0,_f_f1,_f_f0, \
- _FP_FRAC_WORD_8(_z,7),_FP_FRAC_WORD_8(_z,6), \
- _FP_FRAC_WORD_8(_z,5)); \
- doit(_b_f1, _b_f0, X##_f[3], Y##_f[3]); \
- __FP_FRAC_ADD_2(_FP_FRAC_WORD_8(_z,7),_FP_FRAC_WORD_8(_z,6), \
- _b_f1,_b_f0, \
- _FP_FRAC_WORD_8(_z,7),_FP_FRAC_WORD_8(_z,6)); \
- \
- /* Normalize since we know where the msb of the multiplicands \
- were (bit B), we know that the msb of the of the product is \
- at either 2B or 2B-1. */ \
- _FP_FRAC_SRS_8(_z, wfracbits-1, 2*wfracbits); \
- __FP_FRAC_SET_4(R, _FP_FRAC_WORD_8(_z,3), _FP_FRAC_WORD_8(_z,2), \
- _FP_FRAC_WORD_8(_z,1), _FP_FRAC_WORD_8(_z,0)); \
- } while (0)
-
-#define _FP_MUL_MEAT_4_gmp(wfracbits, R, X, Y) \
- do { \
- _FP_FRAC_DECL_8(_z); \
- \
- mpn_mul_n(_z_f, _x_f, _y_f, 4); \
- \
- /* Normalize since we know where the msb of the multiplicands \
- were (bit B), we know that the msb of the of the product is \
- at either 2B or 2B-1. */ \
- _FP_FRAC_SRS_8(_z, wfracbits-1, 2*wfracbits); \
- __FP_FRAC_SET_4(R, _FP_FRAC_WORD_8(_z,3), _FP_FRAC_WORD_8(_z,2), \
- _FP_FRAC_WORD_8(_z,1), _FP_FRAC_WORD_8(_z,0)); \
- } while (0)
-
-/*
- * Helper utility for _FP_DIV_MEAT_4_udiv:
- * pppp = m * nnn
- */
-#define umul_ppppmnnn(p3,p2,p1,p0,m,n2,n1,n0) \
- do { \
- UWtype _t; \
- umul_ppmm(p1,p0,m,n0); \
- umul_ppmm(p2,_t,m,n1); \
- __FP_FRAC_ADDI_2(p2,p1,_t); \
- umul_ppmm(p3,_t,m,n2); \
- __FP_FRAC_ADDI_2(p3,p2,_t); \
- } while (0)
-
-/*
- * Division algorithms:
- */
-
-#define _FP_DIV_MEAT_4_udiv(fs, R, X, Y) \
- do { \
- int _i; \
- _FP_FRAC_DECL_4(_n); _FP_FRAC_DECL_4(_m); \
- _FP_FRAC_SET_4(_n, _FP_ZEROFRAC_4); \
- if (_FP_FRAC_GT_4(X, Y)) \
- { \
- _n_f[3] = X##_f[0] << (_FP_W_TYPE_SIZE - 1); \
- _FP_FRAC_SRL_4(X, 1); \
- } \
- else \
- R##_e--; \
- \
- /* Normalize, i.e. make the most significant bit of the \
- denominator set. */ \
- _FP_FRAC_SLL_4(Y, _FP_WFRACXBITS_##fs); \
- \
- for (_i = 3; ; _i--) \
- { \
- if (X##_f[3] == Y##_f[3]) \
- { \
- /* This is a special case, not an optimization \
- (X##_f[3]/Y##_f[3] would not fit into UWtype). \
- As X## is guaranteed to be < Y, R##_f[_i] can be either \
- (UWtype)-1 or (UWtype)-2. */ \
- R##_f[_i] = -1; \
- if (!_i) \
- break; \
- __FP_FRAC_SUB_4(X##_f[3], X##_f[2], X##_f[1], X##_f[0], \
- Y##_f[2], Y##_f[1], Y##_f[0], 0, \
- X##_f[2], X##_f[1], X##_f[0], _n_f[_i]); \
- _FP_FRAC_SUB_4(X, Y, X); \
- if (X##_f[3] > Y##_f[3]) \
- { \
- R##_f[_i] = -2; \
- _FP_FRAC_ADD_4(X, Y, X); \
- } \
- } \
- else \
- { \
- udiv_qrnnd(R##_f[_i], X##_f[3], X##_f[3], X##_f[2], Y##_f[3]); \
- umul_ppppmnnn(_m_f[3], _m_f[2], _m_f[1], _m_f[0], \
- R##_f[_i], Y##_f[2], Y##_f[1], Y##_f[0]); \
- X##_f[2] = X##_f[1]; \
- X##_f[1] = X##_f[0]; \
- X##_f[0] = _n_f[_i]; \
- if (_FP_FRAC_GT_4(_m, X)) \
- { \
- R##_f[_i]--; \
- _FP_FRAC_ADD_4(X, Y, X); \
- if (_FP_FRAC_GE_4(X, Y) && _FP_FRAC_GT_4(_m, X)) \
- { \
- R##_f[_i]--; \
- _FP_FRAC_ADD_4(X, Y, X); \
- } \
- } \
- _FP_FRAC_DEC_4(X, _m); \
- if (!_i) \
- { \
- if (!_FP_FRAC_EQ_4(X, _m)) \
- R##_f[0] |= _FP_WORK_STICKY; \
- break; \
- } \
- } \
- } \
- } while (0)
-
-
-/*
- * Square root algorithms:
- * We have just one right now, maybe Newton approximation
- * should be added for those machines where division is fast.
- */
-
-#define _FP_SQRT_MEAT_4(R, S, T, X, q) \
- do { \
- while (q) \
- { \
- T##_f[3] = S##_f[3] + q; \
- if (T##_f[3] <= X##_f[3]) \
- { \
- S##_f[3] = T##_f[3] + q; \
- X##_f[3] -= T##_f[3]; \
- R##_f[3] += q; \
- } \
- _FP_FRAC_SLL_4(X, 1); \
- q >>= 1; \
- } \
- q = (_FP_W_TYPE)1 << (_FP_W_TYPE_SIZE - 1); \
- while (q) \
- { \
- T##_f[2] = S##_f[2] + q; \
- T##_f[3] = S##_f[3]; \
- if (T##_f[3] < X##_f[3] || \
- (T##_f[3] == X##_f[3] && T##_f[2] <= X##_f[2])) \
- { \
- S##_f[2] = T##_f[2] + q; \
- S##_f[3] += (T##_f[2] > S##_f[2]); \
- __FP_FRAC_DEC_2(X##_f[3], X##_f[2], \
- T##_f[3], T##_f[2]); \
- R##_f[2] += q; \
- } \
- _FP_FRAC_SLL_4(X, 1); \
- q >>= 1; \
- } \
- q = (_FP_W_TYPE)1 << (_FP_W_TYPE_SIZE - 1); \
- while (q) \
- { \
- T##_f[1] = S##_f[1] + q; \
- T##_f[2] = S##_f[2]; \
- T##_f[3] = S##_f[3]; \
- if (T##_f[3] < X##_f[3] || \
- (T##_f[3] == X##_f[3] && (T##_f[2] < X##_f[2] || \
- (T##_f[2] == X##_f[2] && T##_f[1] <= X##_f[1])))) \
- { \
- S##_f[1] = T##_f[1] + q; \
- S##_f[2] += (T##_f[1] > S##_f[1]); \
- S##_f[3] += (T##_f[2] > S##_f[2]); \
- __FP_FRAC_DEC_3(X##_f[3], X##_f[2], X##_f[1], \
- T##_f[3], T##_f[2], T##_f[1]); \
- R##_f[1] += q; \
- } \
- _FP_FRAC_SLL_4(X, 1); \
- q >>= 1; \
- } \
- q = (_FP_W_TYPE)1 << (_FP_W_TYPE_SIZE - 1); \
- while (q != _FP_WORK_ROUND) \
- { \
- T##_f[0] = S##_f[0] + q; \
- T##_f[1] = S##_f[1]; \
- T##_f[2] = S##_f[2]; \
- T##_f[3] = S##_f[3]; \
- if (_FP_FRAC_GE_4(X,T)) \
- { \
- S##_f[0] = T##_f[0] + q; \
- S##_f[1] += (T##_f[0] > S##_f[0]); \
- S##_f[2] += (T##_f[1] > S##_f[1]); \
- S##_f[3] += (T##_f[2] > S##_f[2]); \
- _FP_FRAC_DEC_4(X, T); \
- R##_f[0] += q; \
- } \
- _FP_FRAC_SLL_4(X, 1); \
- q >>= 1; \
- } \
- if (!_FP_FRAC_ZEROP_4(X)) \
- { \
- if (_FP_FRAC_GT_4(X,S)) \
- R##_f[0] |= _FP_WORK_ROUND; \
- R##_f[0] |= _FP_WORK_STICKY; \
- } \
- } while (0)
-
-
-/*
- * Internals
- */
-
-#define __FP_FRAC_SET_4(X,I3,I2,I1,I0) \
- (X##_f[3] = I3, X##_f[2] = I2, X##_f[1] = I1, X##_f[0] = I0)
-
-#ifndef __FP_FRAC_ADD_3
-#define __FP_FRAC_ADD_3(r2,r1,r0,x2,x1,x0,y2,y1,y0) \
- do { \
- int _c1, _c2; \
- r0 = x0 + y0; \
- _c1 = r0 < x0; \
- r1 = x1 + y1; \
- _c2 = r1 < x1; \
- r1 += _c1; \
- _c2 |= r1 < _c1; \
- r2 = x2 + y2 + _c2; \
- } while (0)
-#endif
-
-#ifndef __FP_FRAC_ADD_4
-#define __FP_FRAC_ADD_4(r3,r2,r1,r0,x3,x2,x1,x0,y3,y2,y1,y0) \
- do { \
- int _c1, _c2, _c3; \
- r0 = x0 + y0; \
- _c1 = r0 < x0; \
- r1 = x1 + y1; \
- _c2 = r1 < x1; \
- r1 += _c1; \
- _c2 |= r1 < _c1; \
- r2 = x2 + y2; \
- _c3 = r2 < x2; \
- r2 += _c2; \
- _c3 |= r2 < _c2; \
- r3 = x3 + y3 + _c3; \
- } while (0)
-#endif
-
-#ifndef __FP_FRAC_SUB_3
-#define __FP_FRAC_SUB_3(r2,r1,r0,x2,x1,x0,y2,y1,y0) \
- do { \
- int _c1, _c2; \
- r0 = x0 - y0; \
- _c1 = r0 > x0; \
- r1 = x1 - y1; \
- _c2 = r1 > x1; \
- r1 -= _c1; \
- _c2 |= r1 > _c1; \
- r2 = x2 - y2 - _c2; \
- } while (0)
-#endif
-
-#ifndef __FP_FRAC_SUB_4
-#define __FP_FRAC_SUB_4(r3,r2,r1,r0,x3,x2,x1,x0,y3,y2,y1,y0) \
- do { \
- int _c1, _c2, _c3; \
- r0 = x0 - y0; \
- _c1 = r0 > x0; \
- r1 = x1 - y1; \
- _c2 = r1 > x1; \
- r1 -= _c1; \
- _c2 |= r1 > _c1; \
- r2 = x2 - y2; \
- _c3 = r2 > x2; \
- r2 -= _c2; \
- _c3 |= r2 > _c2; \
- r3 = x3 - y3 - _c3; \
- } while (0)
-#endif
-
-#ifndef __FP_FRAC_DEC_3
-#define __FP_FRAC_DEC_3(x2,x1,x0,y2,y1,y0) \
- do { \
- UWtype _t0, _t1, _t2; \
- _t0 = x0, _t1 = x1, _t2 = x2; \
- __FP_FRAC_SUB_3 (x2, x1, x0, _t2, _t1, _t0, y2, y1, y0); \
- } while (0)
-#endif
-
-#ifndef __FP_FRAC_DEC_4
-#define __FP_FRAC_DEC_4(x3,x2,x1,x0,y3,y2,y1,y0) \
- do { \
- UWtype _t0, _t1, _t2, _t3; \
- _t0 = x0, _t1 = x1, _t2 = x2, _t3 = x3; \
- __FP_FRAC_SUB_4 (x3,x2,x1,x0,_t3,_t2,_t1,_t0, y3,y2,y1,y0); \
- } while (0)
-#endif
-
-#ifndef __FP_FRAC_ADDI_4
-#define __FP_FRAC_ADDI_4(x3,x2,x1,x0,i) \
- do { \
- UWtype _t; \
- _t = ((x0 += i) < i); \
- x1 += _t; _t = (x1 < _t); \
- x2 += _t; _t = (x2 < _t); \
- x3 += _t; \
- } while (0)
-#endif
-
-/* Convert FP values between word sizes. This appears to be more
- * complicated than I'd have expected it to be, so these might be
- * wrong... These macros are in any case somewhat bogus because they
- * use information about what various FRAC_n variables look like
- * internally [eg, that 2 word vars are X_f0 and x_f1]. But so do
- * the ones in op-2.h and op-1.h.
- */
-#define _FP_FRAC_CONV_1_4(dfs, sfs, D, S) \
- do { \
- if (S##_c != FP_CLS_NAN) \
- _FP_FRAC_SRS_4(S, (_FP_WFRACBITS_##sfs - _FP_WFRACBITS_##dfs), \
- _FP_WFRACBITS_##sfs); \
- else \
- _FP_FRAC_SRL_4(S, (_FP_WFRACBITS_##sfs - _FP_WFRACBITS_##dfs)); \
- D##_f = S##_f[0]; \
- } while (0)
-
-#define _FP_FRAC_CONV_2_4(dfs, sfs, D, S) \
- do { \
- if (S##_c != FP_CLS_NAN) \
- _FP_FRAC_SRS_4(S, (_FP_WFRACBITS_##sfs - _FP_WFRACBITS_##dfs), \
- _FP_WFRACBITS_##sfs); \
- else \
- _FP_FRAC_SRL_4(S, (_FP_WFRACBITS_##sfs - _FP_WFRACBITS_##dfs)); \
- D##_f0 = S##_f[0]; \
- D##_f1 = S##_f[1]; \
- } while (0)
-
-/* Assembly/disassembly for converting to/from integral types.
- * No shifting or overflow handled here.
- */
-/* Put the FP value X into r, which is an integer of size rsize. */
-#define _FP_FRAC_ASSEMBLE_4(r, X, rsize) \
- do { \
- if (rsize <= _FP_W_TYPE_SIZE) \
- r = X##_f[0]; \
- else if (rsize <= 2*_FP_W_TYPE_SIZE) \
- { \
- r = X##_f[1]; \
- r <<= _FP_W_TYPE_SIZE; \
- r += X##_f[0]; \
- } \
- else \
- { \
- /* I'm feeling lazy so we deal with int == 3words (implausible)*/ \
- /* and int == 4words as a single case. */ \
- r = X##_f[3]; \
- r <<= _FP_W_TYPE_SIZE; \
- r += X##_f[2]; \
- r <<= _FP_W_TYPE_SIZE; \
- r += X##_f[1]; \
- r <<= _FP_W_TYPE_SIZE; \
- r += X##_f[0]; \
- } \
- } while (0)
-
-/* "No disassemble Number Five!" */
-/* move an integer of size rsize into X's fractional part. We rely on
- * the _f[] array consisting of words of size _FP_W_TYPE_SIZE to avoid
- * having to mask the values we store into it.
- */
-#define _FP_FRAC_DISASSEMBLE_4(X, r, rsize) \
- do { \
- X##_f[0] = r; \
- X##_f[1] = (rsize <= _FP_W_TYPE_SIZE ? 0 : r >> _FP_W_TYPE_SIZE); \
- X##_f[2] = (rsize <= 2*_FP_W_TYPE_SIZE ? 0 : r >> 2*_FP_W_TYPE_SIZE); \
- X##_f[3] = (rsize <= 3*_FP_W_TYPE_SIZE ? 0 : r >> 3*_FP_W_TYPE_SIZE); \
- } while (0)
-
-#define _FP_FRAC_CONV_4_1(dfs, sfs, D, S) \
- do { \
- D##_f[0] = S##_f; \
- D##_f[1] = D##_f[2] = D##_f[3] = 0; \
- _FP_FRAC_SLL_4(D, (_FP_WFRACBITS_##dfs - _FP_WFRACBITS_##sfs)); \
- } while (0)
-
-#define _FP_FRAC_CONV_4_2(dfs, sfs, D, S) \
- do { \
- D##_f[0] = S##_f0; \
- D##_f[1] = S##_f1; \
- D##_f[2] = D##_f[3] = 0; \
- _FP_FRAC_SLL_4(D, (_FP_WFRACBITS_##dfs - _FP_WFRACBITS_##sfs)); \
- } while (0)
-
-#endif
diff --git a/ANDROID_3.4.5/include/math-emu/op-8.h b/ANDROID_3.4.5/include/math-emu/op-8.h
deleted file mode 100644
index 8b8c05eb..00000000
--- a/ANDROID_3.4.5/include/math-emu/op-8.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/* Software floating-point emulation.
- Basic eight-word fraction declaration and manipulation.
- Copyright (C) 1997,1998,1999 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Richard Henderson (rth@cygnus.com),
- Jakub Jelinek (jj@ultra.linux.cz) and
- Peter Maydell (pmaydell@chiark.greenend.org.uk).
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifndef __MATH_EMU_OP_8_H__
-#define __MATH_EMU_OP_8_H__
-
-/* We need just a few things from here for op-4, if we ever need some
- other macros, they can be added. */
-#define _FP_FRAC_DECL_8(X) _FP_W_TYPE X##_f[8]
-#define _FP_FRAC_HIGH_8(X) (X##_f[7])
-#define _FP_FRAC_LOW_8(X) (X##_f[0])
-#define _FP_FRAC_WORD_8(X,w) (X##_f[w])
-
-#define _FP_FRAC_SLL_8(X,N) \
- do { \
- _FP_I_TYPE _up, _down, _skip, _i; \
- _skip = (N) / _FP_W_TYPE_SIZE; \
- _up = (N) % _FP_W_TYPE_SIZE; \
- _down = _FP_W_TYPE_SIZE - _up; \
- if (!_up) \
- for (_i = 7; _i >= _skip; --_i) \
- X##_f[_i] = X##_f[_i-_skip]; \
- else \
- { \
- for (_i = 7; _i > _skip; --_i) \
- X##_f[_i] = X##_f[_i-_skip] << _up \
- | X##_f[_i-_skip-1] >> _down; \
- X##_f[_i--] = X##_f[0] << _up; \
- } \
- for (; _i >= 0; --_i) \
- X##_f[_i] = 0; \
- } while (0)
-
-#define _FP_FRAC_SRL_8(X,N) \
- do { \
- _FP_I_TYPE _up, _down, _skip, _i; \
- _skip = (N) / _FP_W_TYPE_SIZE; \
- _down = (N) % _FP_W_TYPE_SIZE; \
- _up = _FP_W_TYPE_SIZE - _down; \
- if (!_down) \
- for (_i = 0; _i <= 7-_skip; ++_i) \
- X##_f[_i] = X##_f[_i+_skip]; \
- else \
- { \
- for (_i = 0; _i < 7-_skip; ++_i) \
- X##_f[_i] = X##_f[_i+_skip] >> _down \
- | X##_f[_i+_skip+1] << _up; \
- X##_f[_i++] = X##_f[7] >> _down; \
- } \
- for (; _i < 8; ++_i) \
- X##_f[_i] = 0; \
- } while (0)
-
-
-/* Right shift with sticky-lsb.
- * What this actually means is that we do a standard right-shift,
- * but that if any of the bits that fall off the right hand side
- * were one then we always set the LSbit.
- */
-#define _FP_FRAC_SRS_8(X,N,size) \
- do { \
- _FP_I_TYPE _up, _down, _skip, _i; \
- _FP_W_TYPE _s; \
- _skip = (N) / _FP_W_TYPE_SIZE; \
- _down = (N) % _FP_W_TYPE_SIZE; \
- _up = _FP_W_TYPE_SIZE - _down; \
- for (_s = _i = 0; _i < _skip; ++_i) \
- _s |= X##_f[_i]; \
- _s |= X##_f[_i] << _up; \
-/* s is now != 0 if we want to set the LSbit */ \
- if (!_down) \
- for (_i = 0; _i <= 7-_skip; ++_i) \
- X##_f[_i] = X##_f[_i+_skip]; \
- else \
- { \
- for (_i = 0; _i < 7-_skip; ++_i) \
- X##_f[_i] = X##_f[_i+_skip] >> _down \
- | X##_f[_i+_skip+1] << _up; \
- X##_f[_i++] = X##_f[7] >> _down; \
- } \
- for (; _i < 8; ++_i) \
- X##_f[_i] = 0; \
- /* don't fix the LSB until the very end when we're sure f[0] is stable */ \
- X##_f[0] |= (_s != 0); \
- } while (0)
-
-#endif
diff --git a/ANDROID_3.4.5/include/math-emu/op-common.h b/ANDROID_3.4.5/include/math-emu/op-common.h
deleted file mode 100644
index 9696a5e2..00000000
--- a/ANDROID_3.4.5/include/math-emu/op-common.h
+++ /dev/null
@@ -1,871 +0,0 @@
-/* Software floating-point emulation. Common operations.
- Copyright (C) 1997,1998,1999 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Richard Henderson (rth@cygnus.com),
- Jakub Jelinek (jj@ultra.linux.cz),
- David S. Miller (davem@redhat.com) and
- Peter Maydell (pmaydell@chiark.greenend.org.uk).
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifndef __MATH_EMU_OP_COMMON_H__
-#define __MATH_EMU_OP_COMMON_H__
-
-#define _FP_DECL(wc, X) \
- _FP_I_TYPE X##_c=0, X##_s=0, X##_e=0; \
- _FP_FRAC_DECL_##wc(X)
-
-/*
- * Finish truly unpacking a native fp value by classifying the kind
- * of fp value and normalizing both the exponent and the fraction.
- */
-
-#define _FP_UNPACK_CANONICAL(fs, wc, X) \
-do { \
- switch (X##_e) \
- { \
- default: \
- _FP_FRAC_HIGH_RAW_##fs(X) |= _FP_IMPLBIT_##fs; \
- _FP_FRAC_SLL_##wc(X, _FP_WORKBITS); \
- X##_e -= _FP_EXPBIAS_##fs; \
- X##_c = FP_CLS_NORMAL; \
- break; \
- \
- case 0: \
- if (_FP_FRAC_ZEROP_##wc(X)) \
- X##_c = FP_CLS_ZERO; \
- else \
- { \
- /* a denormalized number */ \
- _FP_I_TYPE _shift; \
- _FP_FRAC_CLZ_##wc(_shift, X); \
- _shift -= _FP_FRACXBITS_##fs; \
- _FP_FRAC_SLL_##wc(X, (_shift+_FP_WORKBITS)); \
- X##_e -= _FP_EXPBIAS_##fs - 1 + _shift; \
- X##_c = FP_CLS_NORMAL; \
- FP_SET_EXCEPTION(FP_EX_DENORM); \
- if (FP_DENORM_ZERO) \
- { \
- FP_SET_EXCEPTION(FP_EX_INEXACT); \
- X##_c = FP_CLS_ZERO; \
- } \
- } \
- break; \
- \
- case _FP_EXPMAX_##fs: \
- if (_FP_FRAC_ZEROP_##wc(X)) \
- X##_c = FP_CLS_INF; \
- else \
- { \
- X##_c = FP_CLS_NAN; \
- /* Check for signaling NaN */ \
- if (!(_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs)) \
- FP_SET_EXCEPTION(FP_EX_INVALID | FP_EX_INVALID_SNAN); \
- } \
- break; \
- } \
-} while (0)
-
-/*
- * Before packing the bits back into the native fp result, take care
- * of such mundane things as rounding and overflow. Also, for some
- * kinds of fp values, the original parts may not have been fully
- * extracted -- but that is ok, we can regenerate them now.
- */
-
-#define _FP_PACK_CANONICAL(fs, wc, X) \
-do { \
- switch (X##_c) \
- { \
- case FP_CLS_NORMAL: \
- X##_e += _FP_EXPBIAS_##fs; \
- if (X##_e > 0) \
- { \
- _FP_ROUND(wc, X); \
- if (_FP_FRAC_OVERP_##wc(fs, X)) \
- { \
- _FP_FRAC_CLEAR_OVERP_##wc(fs, X); \
- X##_e++; \
- } \
- _FP_FRAC_SRL_##wc(X, _FP_WORKBITS); \
- if (X##_e >= _FP_EXPMAX_##fs) \
- { \
- /* overflow */ \
- switch (FP_ROUNDMODE) \
- { \
- case FP_RND_NEAREST: \
- X##_c = FP_CLS_INF; \
- break; \
- case FP_RND_PINF: \
- if (!X##_s) X##_c = FP_CLS_INF; \
- break; \
- case FP_RND_MINF: \
- if (X##_s) X##_c = FP_CLS_INF; \
- break; \
- } \
- if (X##_c == FP_CLS_INF) \
- { \
- /* Overflow to infinity */ \
- X##_e = _FP_EXPMAX_##fs; \
- _FP_FRAC_SET_##wc(X, _FP_ZEROFRAC_##wc); \
- } \
- else \
- { \
- /* Overflow to maximum normal */ \
- X##_e = _FP_EXPMAX_##fs - 1; \
- _FP_FRAC_SET_##wc(X, _FP_MAXFRAC_##wc); \
- } \
- FP_SET_EXCEPTION(FP_EX_OVERFLOW); \
- FP_SET_EXCEPTION(FP_EX_INEXACT); \
- } \
- } \
- else \
- { \
- /* we've got a denormalized number */ \
- X##_e = -X##_e + 1; \
- if (X##_e <= _FP_WFRACBITS_##fs) \
- { \
- _FP_FRAC_SRS_##wc(X, X##_e, _FP_WFRACBITS_##fs); \
- if (_FP_FRAC_HIGH_##fs(X) \
- & (_FP_OVERFLOW_##fs >> 1)) \
- { \
- X##_e = 1; \
- _FP_FRAC_SET_##wc(X, _FP_ZEROFRAC_##wc); \
- } \
- else \
- { \
- _FP_ROUND(wc, X); \
- if (_FP_FRAC_HIGH_##fs(X) \
- & (_FP_OVERFLOW_##fs >> 1)) \
- { \
- X##_e = 1; \
- _FP_FRAC_SET_##wc(X, _FP_ZEROFRAC_##wc); \
- FP_SET_EXCEPTION(FP_EX_INEXACT); \
- } \
- else \
- { \
- X##_e = 0; \
- _FP_FRAC_SRL_##wc(X, _FP_WORKBITS); \
- } \
- } \
- if ((FP_CUR_EXCEPTIONS & FP_EX_INEXACT) || \
- (FP_TRAPPING_EXCEPTIONS & FP_EX_UNDERFLOW)) \
- FP_SET_EXCEPTION(FP_EX_UNDERFLOW); \
- } \
- else \
- { \
- /* underflow to zero */ \
- X##_e = 0; \
- if (!_FP_FRAC_ZEROP_##wc(X)) \
- { \
- _FP_FRAC_SET_##wc(X, _FP_MINFRAC_##wc); \
- _FP_ROUND(wc, X); \
- _FP_FRAC_LOW_##wc(X) >>= (_FP_WORKBITS); \
- } \
- FP_SET_EXCEPTION(FP_EX_UNDERFLOW); \
- } \
- } \
- break; \
- \
- case FP_CLS_ZERO: \
- X##_e = 0; \
- _FP_FRAC_SET_##wc(X, _FP_ZEROFRAC_##wc); \
- break; \
- \
- case FP_CLS_INF: \
- X##_e = _FP_EXPMAX_##fs; \
- _FP_FRAC_SET_##wc(X, _FP_ZEROFRAC_##wc); \
- break; \
- \
- case FP_CLS_NAN: \
- X##_e = _FP_EXPMAX_##fs; \
- if (!_FP_KEEPNANFRACP) \
- { \
- _FP_FRAC_SET_##wc(X, _FP_NANFRAC_##fs); \
- X##_s = _FP_NANSIGN_##fs; \
- } \
- else \
- _FP_FRAC_HIGH_RAW_##fs(X) |= _FP_QNANBIT_##fs; \
- break; \
- } \
-} while (0)
-
-/* This one accepts raw argument and not cooked, returns
- * 1 if X is a signaling NaN.
- */
-#define _FP_ISSIGNAN(fs, wc, X) \
-({ \
- int __ret = 0; \
- if (X##_e == _FP_EXPMAX_##fs) \
- { \
- if (!_FP_FRAC_ZEROP_##wc(X) \
- && !(_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs)) \
- __ret = 1; \
- } \
- __ret; \
-})
-
-
-
-
-
-/*
- * Main addition routine. The input values should be cooked.
- */
-
-#define _FP_ADD_INTERNAL(fs, wc, R, X, Y, OP) \
-do { \
- switch (_FP_CLS_COMBINE(X##_c, Y##_c)) \
- { \
- case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_NORMAL): \
- { \
- /* shift the smaller number so that its exponent matches the larger */ \
- _FP_I_TYPE diff = X##_e - Y##_e; \
- \
- if (diff < 0) \
- { \
- diff = -diff; \
- if (diff <= _FP_WFRACBITS_##fs) \
- _FP_FRAC_SRS_##wc(X, diff, _FP_WFRACBITS_##fs); \
- else if (!_FP_FRAC_ZEROP_##wc(X)) \
- _FP_FRAC_SET_##wc(X, _FP_MINFRAC_##wc); \
- R##_e = Y##_e; \
- } \
- else \
- { \
- if (diff > 0) \
- { \
- if (diff <= _FP_WFRACBITS_##fs) \
- _FP_FRAC_SRS_##wc(Y, diff, _FP_WFRACBITS_##fs); \
- else if (!_FP_FRAC_ZEROP_##wc(Y)) \
- _FP_FRAC_SET_##wc(Y, _FP_MINFRAC_##wc); \
- } \
- R##_e = X##_e; \
- } \
- \
- R##_c = FP_CLS_NORMAL; \
- \
- if (X##_s == Y##_s) \
- { \
- R##_s = X##_s; \
- _FP_FRAC_ADD_##wc(R, X, Y); \
- if (_FP_FRAC_OVERP_##wc(fs, R)) \
- { \
- _FP_FRAC_SRS_##wc(R, 1, _FP_WFRACBITS_##fs); \
- R##_e++; \
- } \
- } \
- else \
- { \
- R##_s = X##_s; \
- _FP_FRAC_SUB_##wc(R, X, Y); \
- if (_FP_FRAC_ZEROP_##wc(R)) \
- { \
- /* return an exact zero */ \
- if (FP_ROUNDMODE == FP_RND_MINF) \
- R##_s |= Y##_s; \
- else \
- R##_s &= Y##_s; \
- R##_c = FP_CLS_ZERO; \
- } \
- else \
- { \
- if (_FP_FRAC_NEGP_##wc(R)) \
- { \
- _FP_FRAC_SUB_##wc(R, Y, X); \
- R##_s = Y##_s; \
- } \
- \
- /* renormalize after subtraction */ \
- _FP_FRAC_CLZ_##wc(diff, R); \
- diff -= _FP_WFRACXBITS_##fs; \
- if (diff) \
- { \
- R##_e -= diff; \
- _FP_FRAC_SLL_##wc(R, diff); \
- } \
- } \
- } \
- break; \
- } \
- \
- case _FP_CLS_COMBINE(FP_CLS_NAN,FP_CLS_NAN): \
- _FP_CHOOSENAN(fs, wc, R, X, Y, OP); \
- break; \
- \
- case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_ZERO): \
- R##_e = X##_e; \
- case _FP_CLS_COMBINE(FP_CLS_NAN,FP_CLS_NORMAL): \
- case _FP_CLS_COMBINE(FP_CLS_NAN,FP_CLS_INF): \
- case _FP_CLS_COMBINE(FP_CLS_NAN,FP_CLS_ZERO): \
- _FP_FRAC_COPY_##wc(R, X); \
- R##_s = X##_s; \
- R##_c = X##_c; \
- break; \
- \
- case _FP_CLS_COMBINE(FP_CLS_ZERO,FP_CLS_NORMAL): \
- R##_e = Y##_e; \
- case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_NAN): \
- case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_NAN): \
- case _FP_CLS_COMBINE(FP_CLS_ZERO,FP_CLS_NAN): \
- _FP_FRAC_COPY_##wc(R, Y); \
- R##_s = Y##_s; \
- R##_c = Y##_c; \
- break; \
- \
- case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_INF): \
- if (X##_s != Y##_s) \
- { \
- /* +INF + -INF => NAN */ \
- _FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
- R##_s = _FP_NANSIGN_##fs; \
- R##_c = FP_CLS_NAN; \
- FP_SET_EXCEPTION(FP_EX_INVALID | FP_EX_INVALID_ISI); \
- break; \
- } \
- /* FALLTHRU */ \
- \
- case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_NORMAL): \
- case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_ZERO): \
- R##_s = X##_s; \
- R##_c = FP_CLS_INF; \
- break; \
- \
- case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_INF): \
- case _FP_CLS_COMBINE(FP_CLS_ZERO,FP_CLS_INF): \
- R##_s = Y##_s; \
- R##_c = FP_CLS_INF; \
- break; \
- \
- case _FP_CLS_COMBINE(FP_CLS_ZERO,FP_CLS_ZERO): \
- /* make sure the sign is correct */ \
- if (FP_ROUNDMODE == FP_RND_MINF) \
- R##_s = X##_s | Y##_s; \
- else \
- R##_s = X##_s & Y##_s; \
- R##_c = FP_CLS_ZERO; \
- break; \
- \
- default: \
- abort(); \
- } \
-} while (0)
-
-#define _FP_ADD(fs, wc, R, X, Y) _FP_ADD_INTERNAL(fs, wc, R, X, Y, '+')
-#define _FP_SUB(fs, wc, R, X, Y) \
- do { \
- if (Y##_c != FP_CLS_NAN) Y##_s ^= 1; \
- _FP_ADD_INTERNAL(fs, wc, R, X, Y, '-'); \
- } while (0)
-
-
-/*
- * Main negation routine. FIXME -- when we care about setting exception
- * bits reliably, this will not do. We should examine all of the fp classes.
- */
-
-#define _FP_NEG(fs, wc, R, X) \
- do { \
- _FP_FRAC_COPY_##wc(R, X); \
- R##_c = X##_c; \
- R##_e = X##_e; \
- R##_s = 1 ^ X##_s; \
- } while (0)
-
-
-/*
- * Main multiplication routine. The input values should be cooked.
- */
-
-#define _FP_MUL(fs, wc, R, X, Y) \
-do { \
- R##_s = X##_s ^ Y##_s; \
- switch (_FP_CLS_COMBINE(X##_c, Y##_c)) \
- { \
- case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_NORMAL): \
- R##_c = FP_CLS_NORMAL; \
- R##_e = X##_e + Y##_e + 1; \
- \
- _FP_MUL_MEAT_##fs(R,X,Y); \
- \
- if (_FP_FRAC_OVERP_##wc(fs, R)) \
- _FP_FRAC_SRS_##wc(R, 1, _FP_WFRACBITS_##fs); \
- else \
- R##_e--; \
- break; \
- \
- case _FP_CLS_COMBINE(FP_CLS_NAN,FP_CLS_NAN): \
- _FP_CHOOSENAN(fs, wc, R, X, Y, '*'); \
- break; \
- \
- case _FP_CLS_COMBINE(FP_CLS_NAN,FP_CLS_NORMAL): \
- case _FP_CLS_COMBINE(FP_CLS_NAN,FP_CLS_INF): \
- case _FP_CLS_COMBINE(FP_CLS_NAN,FP_CLS_ZERO): \
- R##_s = X##_s; \
- \
- case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_INF): \
- case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_NORMAL): \
- case _FP_CLS_COMBINE(FP_CLS_ZERO,FP_CLS_NORMAL): \
- case _FP_CLS_COMBINE(FP_CLS_ZERO,FP_CLS_ZERO): \
- _FP_FRAC_COPY_##wc(R, X); \
- R##_c = X##_c; \
- break; \
- \
- case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_NAN): \
- case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_NAN): \
- case _FP_CLS_COMBINE(FP_CLS_ZERO,FP_CLS_NAN): \
- R##_s = Y##_s; \
- \
- case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_INF): \
- case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_ZERO): \
- _FP_FRAC_COPY_##wc(R, Y); \
- R##_c = Y##_c; \
- break; \
- \
- case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_ZERO): \
- case _FP_CLS_COMBINE(FP_CLS_ZERO,FP_CLS_INF): \
- R##_s = _FP_NANSIGN_##fs; \
- R##_c = FP_CLS_NAN; \
- _FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
- FP_SET_EXCEPTION(FP_EX_INVALID | FP_EX_INVALID_IMZ);\
- break; \
- \
- default: \
- abort(); \
- } \
-} while (0)
-
-
-/*
- * Main division routine. The input values should be cooked.
- */
-
-#define _FP_DIV(fs, wc, R, X, Y) \
-do { \
- R##_s = X##_s ^ Y##_s; \
- switch (_FP_CLS_COMBINE(X##_c, Y##_c)) \
- { \
- case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_NORMAL): \
- R##_c = FP_CLS_NORMAL; \
- R##_e = X##_e - Y##_e; \
- \
- _FP_DIV_MEAT_##fs(R,X,Y); \
- break; \
- \
- case _FP_CLS_COMBINE(FP_CLS_NAN,FP_CLS_NAN): \
- _FP_CHOOSENAN(fs, wc, R, X, Y, '/'); \
- break; \
- \
- case _FP_CLS_COMBINE(FP_CLS_NAN,FP_CLS_NORMAL): \
- case _FP_CLS_COMBINE(FP_CLS_NAN,FP_CLS_INF): \
- case _FP_CLS_COMBINE(FP_CLS_NAN,FP_CLS_ZERO): \
- R##_s = X##_s; \
- _FP_FRAC_COPY_##wc(R, X); \
- R##_c = X##_c; \
- break; \
- \
- case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_NAN): \
- case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_NAN): \
- case _FP_CLS_COMBINE(FP_CLS_ZERO,FP_CLS_NAN): \
- R##_s = Y##_s; \
- _FP_FRAC_COPY_##wc(R, Y); \
- R##_c = Y##_c; \
- break; \
- \
- case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_INF): \
- case _FP_CLS_COMBINE(FP_CLS_ZERO,FP_CLS_INF): \
- case _FP_CLS_COMBINE(FP_CLS_ZERO,FP_CLS_NORMAL): \
- R##_c = FP_CLS_ZERO; \
- break; \
- \
- case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_ZERO): \
- FP_SET_EXCEPTION(FP_EX_DIVZERO); \
- case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_ZERO): \
- case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_NORMAL): \
- R##_c = FP_CLS_INF; \
- break; \
- \
- case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_INF): \
- R##_s = _FP_NANSIGN_##fs; \
- R##_c = FP_CLS_NAN; \
- _FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
- FP_SET_EXCEPTION(FP_EX_INVALID | FP_EX_INVALID_IDI);\
- break; \
- \
- case _FP_CLS_COMBINE(FP_CLS_ZERO,FP_CLS_ZERO): \
- R##_s = _FP_NANSIGN_##fs; \
- R##_c = FP_CLS_NAN; \
- _FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
- FP_SET_EXCEPTION(FP_EX_INVALID | FP_EX_INVALID_ZDZ);\
- break; \
- \
- default: \
- abort(); \
- } \
-} while (0)
-
-
-/*
- * Main differential comparison routine. The inputs should be raw not
- * cooked. The return is -1,0,1 for normal values, 2 otherwise.
- */
-
-#define _FP_CMP(fs, wc, ret, X, Y, un) \
- do { \
- /* NANs are unordered */ \
- if ((X##_e == _FP_EXPMAX_##fs && !_FP_FRAC_ZEROP_##wc(X)) \
- || (Y##_e == _FP_EXPMAX_##fs && !_FP_FRAC_ZEROP_##wc(Y))) \
- { \
- ret = un; \
- } \
- else \
- { \
- int __is_zero_x; \
- int __is_zero_y; \
- \
- __is_zero_x = (!X##_e && _FP_FRAC_ZEROP_##wc(X)) ? 1 : 0; \
- __is_zero_y = (!Y##_e && _FP_FRAC_ZEROP_##wc(Y)) ? 1 : 0; \
- \
- if (__is_zero_x && __is_zero_y) \
- ret = 0; \
- else if (__is_zero_x) \
- ret = Y##_s ? 1 : -1; \
- else if (__is_zero_y) \
- ret = X##_s ? -1 : 1; \
- else if (X##_s != Y##_s) \
- ret = X##_s ? -1 : 1; \
- else if (X##_e > Y##_e) \
- ret = X##_s ? -1 : 1; \
- else if (X##_e < Y##_e) \
- ret = X##_s ? 1 : -1; \
- else if (_FP_FRAC_GT_##wc(X, Y)) \
- ret = X##_s ? -1 : 1; \
- else if (_FP_FRAC_GT_##wc(Y, X)) \
- ret = X##_s ? 1 : -1; \
- else \
- ret = 0; \
- } \
- } while (0)
-
-
-/* Simplification for strict equality. */
-
-#define _FP_CMP_EQ(fs, wc, ret, X, Y) \
- do { \
- /* NANs are unordered */ \
- if ((X##_e == _FP_EXPMAX_##fs && !_FP_FRAC_ZEROP_##wc(X)) \
- || (Y##_e == _FP_EXPMAX_##fs && !_FP_FRAC_ZEROP_##wc(Y))) \
- { \
- ret = 1; \
- } \
- else \
- { \
- ret = !(X##_e == Y##_e \
- && _FP_FRAC_EQ_##wc(X, Y) \
- && (X##_s == Y##_s || !X##_e && _FP_FRAC_ZEROP_##wc(X))); \
- } \
- } while (0)
-
-/*
- * Main square root routine. The input value should be cooked.
- */
-
-#define _FP_SQRT(fs, wc, R, X) \
-do { \
- _FP_FRAC_DECL_##wc(T); _FP_FRAC_DECL_##wc(S); \
- _FP_W_TYPE q; \
- switch (X##_c) \
- { \
- case FP_CLS_NAN: \
- _FP_FRAC_COPY_##wc(R, X); \
- R##_s = X##_s; \
- R##_c = FP_CLS_NAN; \
- break; \
- case FP_CLS_INF: \
- if (X##_s) \
- { \
- R##_s = _FP_NANSIGN_##fs; \
- R##_c = FP_CLS_NAN; /* NAN */ \
- _FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
- FP_SET_EXCEPTION(FP_EX_INVALID); \
- } \
- else \
- { \
- R##_s = 0; \
- R##_c = FP_CLS_INF; /* sqrt(+inf) = +inf */ \
- } \
- break; \
- case FP_CLS_ZERO: \
- R##_s = X##_s; \
- R##_c = FP_CLS_ZERO; /* sqrt(+-0) = +-0 */ \
- break; \
- case FP_CLS_NORMAL: \
- R##_s = 0; \
- if (X##_s) \
- { \
- R##_c = FP_CLS_NAN; /* sNAN */ \
- R##_s = _FP_NANSIGN_##fs; \
- _FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
- FP_SET_EXCEPTION(FP_EX_INVALID); \
- break; \
- } \
- R##_c = FP_CLS_NORMAL; \
- if (X##_e & 1) \
- _FP_FRAC_SLL_##wc(X, 1); \
- R##_e = X##_e >> 1; \
- _FP_FRAC_SET_##wc(S, _FP_ZEROFRAC_##wc); \
- _FP_FRAC_SET_##wc(R, _FP_ZEROFRAC_##wc); \
- q = _FP_OVERFLOW_##fs >> 1; \
- _FP_SQRT_MEAT_##wc(R, S, T, X, q); \
- } \
- } while (0)
-
-/*
- * Convert from FP to integer
- */
-
-/* RSIGNED can have following values:
- * 0: the number is required to be 0..(2^rsize)-1, if not, NV is set plus
- * the result is either 0 or (2^rsize)-1 depending on the sign in such case.
- * 1: the number is required to be -(2^(rsize-1))..(2^(rsize-1))-1, if not, NV is
- * set plus the result is either -(2^(rsize-1)) or (2^(rsize-1))-1 depending
- * on the sign in such case.
- * 2: the number is required to be -(2^(rsize-1))..(2^(rsize-1))-1, if not, NV is
- * set plus the result is truncated to fit into destination.
- * -1: the number is required to be -(2^(rsize-1))..(2^rsize)-1, if not, NV is
- * set plus the result is either -(2^(rsize-1)) or (2^(rsize-1))-1 depending
- * on the sign in such case.
- */
-#define _FP_TO_INT(fs, wc, r, X, rsize, rsigned) \
- do { \
- switch (X##_c) \
- { \
- case FP_CLS_NORMAL: \
- if (X##_e < 0) \
- { \
- FP_SET_EXCEPTION(FP_EX_INEXACT); \
- case FP_CLS_ZERO: \
- r = 0; \
- } \
- else if (X##_e >= rsize - (rsigned > 0 || X##_s) \
- || (!rsigned && X##_s)) \
- { /* overflow */ \
- case FP_CLS_NAN: \
- case FP_CLS_INF: \
- if (rsigned == 2) \
- { \
- if (X##_c != FP_CLS_NORMAL \
- || X##_e >= rsize - 1 + _FP_WFRACBITS_##fs) \
- r = 0; \
- else \
- { \
- _FP_FRAC_SLL_##wc(X, (X##_e - _FP_WFRACBITS_##fs + 1)); \
- _FP_FRAC_ASSEMBLE_##wc(r, X, rsize); \
- } \
- } \
- else if (rsigned) \
- { \
- r = 1; \
- r <<= rsize - 1; \
- r -= 1 - X##_s; \
- } \
- else \
- { \
- r = 0; \
- if (X##_s) \
- r = ~r; \
- } \
- FP_SET_EXCEPTION(FP_EX_INVALID); \
- } \
- else \
- { \
- if (_FP_W_TYPE_SIZE*wc < rsize) \
- { \
- _FP_FRAC_ASSEMBLE_##wc(r, X, rsize); \
- r <<= X##_e - _FP_WFRACBITS_##fs; \
- } \
- else \
- { \
- if (X##_e >= _FP_WFRACBITS_##fs) \
- _FP_FRAC_SLL_##wc(X, (X##_e - _FP_WFRACBITS_##fs + 1)); \
- else if (X##_e < _FP_WFRACBITS_##fs - 1) \
- { \
- _FP_FRAC_SRS_##wc(X, (_FP_WFRACBITS_##fs - X##_e - 2), \
- _FP_WFRACBITS_##fs); \
- if (_FP_FRAC_LOW_##wc(X) & 1) \
- FP_SET_EXCEPTION(FP_EX_INEXACT); \
- _FP_FRAC_SRL_##wc(X, 1); \
- } \
- _FP_FRAC_ASSEMBLE_##wc(r, X, rsize); \
- } \
- if (rsigned && X##_s) \
- r = -r; \
- } \
- break; \
- } \
- } while (0)
-
-#define _FP_TO_INT_ROUND(fs, wc, r, X, rsize, rsigned) \
- do { \
- r = 0; \
- switch (X##_c) \
- { \
- case FP_CLS_NORMAL: \
- if (X##_e >= _FP_FRACBITS_##fs - 1) \
- { \
- if (X##_e < rsize - 1 + _FP_WFRACBITS_##fs) \
- { \
- if (X##_e >= _FP_WFRACBITS_##fs - 1) \
- { \
- _FP_FRAC_ASSEMBLE_##wc(r, X, rsize); \
- r <<= X##_e - _FP_WFRACBITS_##fs + 1; \
- } \
- else \
- { \
- _FP_FRAC_SRL_##wc(X, _FP_WORKBITS - X##_e \
- + _FP_FRACBITS_##fs - 1); \
- _FP_FRAC_ASSEMBLE_##wc(r, X, rsize); \
- } \
- } \
- } \
- else \
- { \
- if (X##_e <= -_FP_WORKBITS - 1) \
- _FP_FRAC_SET_##wc(X, _FP_MINFRAC_##wc); \
- else \
- _FP_FRAC_SRS_##wc(X, _FP_FRACBITS_##fs - 1 - X##_e, \
- _FP_WFRACBITS_##fs); \
- _FP_ROUND(wc, X); \
- _FP_FRAC_SRL_##wc(X, _FP_WORKBITS); \
- _FP_FRAC_ASSEMBLE_##wc(r, X, rsize); \
- } \
- if (rsigned && X##_s) \
- r = -r; \
- if (X##_e >= rsize - (rsigned > 0 || X##_s) \
- || (!rsigned && X##_s)) \
- { /* overflow */ \
- case FP_CLS_NAN: \
- case FP_CLS_INF: \
- if (!rsigned) \
- { \
- r = 0; \
- if (X##_s) \
- r = ~r; \
- } \
- else if (rsigned != 2) \
- { \
- r = 1; \
- r <<= rsize - 1; \
- r -= 1 - X##_s; \
- } \
- FP_SET_EXCEPTION(FP_EX_INVALID); \
- } \
- break; \
- case FP_CLS_ZERO: \
- break; \
- } \
- } while (0)
-
-#define _FP_FROM_INT(fs, wc, X, r, rsize, rtype) \
- do { \
- if (r) \
- { \
- unsigned rtype ur_; \
- X##_c = FP_CLS_NORMAL; \
- \
- if ((X##_s = (r < 0))) \
- ur_ = (unsigned rtype) -r; \
- else \
- ur_ = (unsigned rtype) r; \
- if (rsize <= _FP_W_TYPE_SIZE) \
- __FP_CLZ(X##_e, ur_); \
- else \
- __FP_CLZ_2(X##_e, (_FP_W_TYPE)(ur_ >> _FP_W_TYPE_SIZE), \
- (_FP_W_TYPE)ur_); \
- if (rsize < _FP_W_TYPE_SIZE) \
- X##_e -= (_FP_W_TYPE_SIZE - rsize); \
- X##_e = rsize - X##_e - 1; \
- \
- if (_FP_FRACBITS_##fs < rsize && _FP_WFRACBITS_##fs <= X##_e) \
- __FP_FRAC_SRS_1(ur_, (X##_e - _FP_WFRACBITS_##fs + 1), rsize);\
- _FP_FRAC_DISASSEMBLE_##wc(X, ur_, rsize); \
- if ((_FP_WFRACBITS_##fs - X##_e - 1) > 0) \
- _FP_FRAC_SLL_##wc(X, (_FP_WFRACBITS_##fs - X##_e - 1)); \
- } \
- else \
- { \
- X##_c = FP_CLS_ZERO, X##_s = 0; \
- } \
- } while (0)
-
-
-#define FP_CONV(dfs,sfs,dwc,swc,D,S) \
- do { \
- _FP_FRAC_CONV_##dwc##_##swc(dfs, sfs, D, S); \
- D##_e = S##_e; \
- D##_c = S##_c; \
- D##_s = S##_s; \
- } while (0)
-
-/*
- * Helper primitives.
- */
-
-/* Count leading zeros in a word. */
-
-#ifndef __FP_CLZ
-#if _FP_W_TYPE_SIZE < 64
-/* this is just to shut the compiler up about shifts > word length -- PMM 02/1998 */
-#define __FP_CLZ(r, x) \
- do { \
- _FP_W_TYPE _t = (x); \
- r = _FP_W_TYPE_SIZE - 1; \
- if (_t > 0xffff) r -= 16; \
- if (_t > 0xffff) _t >>= 16; \
- if (_t > 0xff) r -= 8; \
- if (_t > 0xff) _t >>= 8; \
- if (_t & 0xf0) r -= 4; \
- if (_t & 0xf0) _t >>= 4; \
- if (_t & 0xc) r -= 2; \
- if (_t & 0xc) _t >>= 2; \
- if (_t & 0x2) r -= 1; \
- } while (0)
-#else /* not _FP_W_TYPE_SIZE < 64 */
-#define __FP_CLZ(r, x) \
- do { \
- _FP_W_TYPE _t = (x); \
- r = _FP_W_TYPE_SIZE - 1; \
- if (_t > 0xffffffff) r -= 32; \
- if (_t > 0xffffffff) _t >>= 32; \
- if (_t > 0xffff) r -= 16; \
- if (_t > 0xffff) _t >>= 16; \
- if (_t > 0xff) r -= 8; \
- if (_t > 0xff) _t >>= 8; \
- if (_t & 0xf0) r -= 4; \
- if (_t & 0xf0) _t >>= 4; \
- if (_t & 0xc) r -= 2; \
- if (_t & 0xc) _t >>= 2; \
- if (_t & 0x2) r -= 1; \
- } while (0)
-#endif /* not _FP_W_TYPE_SIZE < 64 */
-#endif /* ndef __FP_CLZ */
-
-#define _FP_DIV_HELP_imm(q, r, n, d) \
- do { \
- q = n / d, r = n % d; \
- } while (0)
-
-#endif /* __MATH_EMU_OP_COMMON_H__ */
diff --git a/ANDROID_3.4.5/include/math-emu/quad.h b/ANDROID_3.4.5/include/math-emu/quad.h
deleted file mode 100644
index 61611362..00000000
--- a/ANDROID_3.4.5/include/math-emu/quad.h
+++ /dev/null
@@ -1,208 +0,0 @@
-/* Software floating-point emulation.
- Definitions for IEEE Quad Precision.
- Copyright (C) 1997,1998,1999 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Richard Henderson (rth@cygnus.com),
- Jakub Jelinek (jj@ultra.linux.cz),
- David S. Miller (davem@redhat.com) and
- Peter Maydell (pmaydell@chiark.greenend.org.uk).
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifndef __MATH_EMU_QUAD_H__
-#define __MATH_EMU_QUAD_H__
-
-#if _FP_W_TYPE_SIZE < 32
-#error "Here's a nickel, kid. Go buy yourself a real computer."
-#endif
-
-#if _FP_W_TYPE_SIZE < 64
-#define _FP_FRACTBITS_Q (4*_FP_W_TYPE_SIZE)
-#else
-#define _FP_FRACTBITS_Q (2*_FP_W_TYPE_SIZE)
-#endif
-
-#define _FP_FRACBITS_Q 113
-#define _FP_FRACXBITS_Q (_FP_FRACTBITS_Q - _FP_FRACBITS_Q)
-#define _FP_WFRACBITS_Q (_FP_WORKBITS + _FP_FRACBITS_Q)
-#define _FP_WFRACXBITS_Q (_FP_FRACTBITS_Q - _FP_WFRACBITS_Q)
-#define _FP_EXPBITS_Q 15
-#define _FP_EXPBIAS_Q 16383
-#define _FP_EXPMAX_Q 32767
-
-#define _FP_QNANBIT_Q \
- ((_FP_W_TYPE)1 << (_FP_FRACBITS_Q-2) % _FP_W_TYPE_SIZE)
-#define _FP_IMPLBIT_Q \
- ((_FP_W_TYPE)1 << (_FP_FRACBITS_Q-1) % _FP_W_TYPE_SIZE)
-#define _FP_OVERFLOW_Q \
- ((_FP_W_TYPE)1 << (_FP_WFRACBITS_Q % _FP_W_TYPE_SIZE))
-
-#if _FP_W_TYPE_SIZE < 64
-
-union _FP_UNION_Q
-{
- long double flt;
- struct
- {
-#if __BYTE_ORDER == __BIG_ENDIAN
- unsigned sign : 1;
- unsigned exp : _FP_EXPBITS_Q;
- unsigned long frac3 : _FP_FRACBITS_Q - (_FP_IMPLBIT_Q != 0)-(_FP_W_TYPE_SIZE * 3);
- unsigned long frac2 : _FP_W_TYPE_SIZE;
- unsigned long frac1 : _FP_W_TYPE_SIZE;
- unsigned long frac0 : _FP_W_TYPE_SIZE;
-#else
- unsigned long frac0 : _FP_W_TYPE_SIZE;
- unsigned long frac1 : _FP_W_TYPE_SIZE;
- unsigned long frac2 : _FP_W_TYPE_SIZE;
- unsigned long frac3 : _FP_FRACBITS_Q - (_FP_IMPLBIT_Q != 0)-(_FP_W_TYPE_SIZE * 3);
- unsigned exp : _FP_EXPBITS_Q;
- unsigned sign : 1;
-#endif /* not bigendian */
- } bits __attribute__((packed));
-};
-
-
-#define FP_DECL_Q(X) _FP_DECL(4,X)
-#define FP_UNPACK_RAW_Q(X,val) _FP_UNPACK_RAW_4(Q,X,val)
-#define FP_UNPACK_RAW_QP(X,val) _FP_UNPACK_RAW_4_P(Q,X,val)
-#define FP_PACK_RAW_Q(val,X) _FP_PACK_RAW_4(Q,val,X)
-#define FP_PACK_RAW_QP(val,X) \
- do { \
- if (!FP_INHIBIT_RESULTS) \
- _FP_PACK_RAW_4_P(Q,val,X); \
- } while (0)
-
-#define FP_UNPACK_Q(X,val) \
- do { \
- _FP_UNPACK_RAW_4(Q,X,val); \
- _FP_UNPACK_CANONICAL(Q,4,X); \
- } while (0)
-
-#define FP_UNPACK_QP(X,val) \
- do { \
- _FP_UNPACK_RAW_4_P(Q,X,val); \
- _FP_UNPACK_CANONICAL(Q,4,X); \
- } while (0)
-
-#define FP_PACK_Q(val,X) \
- do { \
- _FP_PACK_CANONICAL(Q,4,X); \
- _FP_PACK_RAW_4(Q,val,X); \
- } while (0)
-
-#define FP_PACK_QP(val,X) \
- do { \
- _FP_PACK_CANONICAL(Q,4,X); \
- if (!FP_INHIBIT_RESULTS) \
- _FP_PACK_RAW_4_P(Q,val,X); \
- } while (0)
-
-#define FP_ISSIGNAN_Q(X) _FP_ISSIGNAN(Q,4,X)
-#define FP_NEG_Q(R,X) _FP_NEG(Q,4,R,X)
-#define FP_ADD_Q(R,X,Y) _FP_ADD(Q,4,R,X,Y)
-#define FP_SUB_Q(R,X,Y) _FP_SUB(Q,4,R,X,Y)
-#define FP_MUL_Q(R,X,Y) _FP_MUL(Q,4,R,X,Y)
-#define FP_DIV_Q(R,X,Y) _FP_DIV(Q,4,R,X,Y)
-#define FP_SQRT_Q(R,X) _FP_SQRT(Q,4,R,X)
-#define _FP_SQRT_MEAT_Q(R,S,T,X,Q) _FP_SQRT_MEAT_4(R,S,T,X,Q)
-
-#define FP_CMP_Q(r,X,Y,un) _FP_CMP(Q,4,r,X,Y,un)
-#define FP_CMP_EQ_Q(r,X,Y) _FP_CMP_EQ(Q,4,r,X,Y)
-
-#define FP_TO_INT_Q(r,X,rsz,rsg) _FP_TO_INT(Q,4,r,X,rsz,rsg)
-#define FP_TO_INT_ROUND_Q(r,X,rsz,rsg) _FP_TO_INT_ROUND(Q,4,r,X,rsz,rsg)
-#define FP_FROM_INT_Q(X,r,rs,rt) _FP_FROM_INT(Q,4,X,r,rs,rt)
-
-#define _FP_FRAC_HIGH_Q(X) _FP_FRAC_HIGH_4(X)
-#define _FP_FRAC_HIGH_RAW_Q(X) _FP_FRAC_HIGH_4(X)
-
-#else /* not _FP_W_TYPE_SIZE < 64 */
-union _FP_UNION_Q
-{
- long double flt /* __attribute__((mode(TF))) */ ;
- struct {
-#if __BYTE_ORDER == __BIG_ENDIAN
- unsigned sign : 1;
- unsigned exp : _FP_EXPBITS_Q;
- unsigned long frac1 : _FP_FRACBITS_Q-(_FP_IMPLBIT_Q != 0)-_FP_W_TYPE_SIZE;
- unsigned long frac0 : _FP_W_TYPE_SIZE;
-#else
- unsigned long frac0 : _FP_W_TYPE_SIZE;
- unsigned long frac1 : _FP_FRACBITS_Q-(_FP_IMPLBIT_Q != 0)-_FP_W_TYPE_SIZE;
- unsigned exp : _FP_EXPBITS_Q;
- unsigned sign : 1;
-#endif
- } bits;
-};
-
-#define FP_DECL_Q(X) _FP_DECL(2,X)
-#define FP_UNPACK_RAW_Q(X,val) _FP_UNPACK_RAW_2(Q,X,val)
-#define FP_UNPACK_RAW_QP(X,val) _FP_UNPACK_RAW_2_P(Q,X,val)
-#define FP_PACK_RAW_Q(val,X) _FP_PACK_RAW_2(Q,val,X)
-#define FP_PACK_RAW_QP(val,X) \
- do { \
- if (!FP_INHIBIT_RESULTS) \
- _FP_PACK_RAW_2_P(Q,val,X); \
- } while (0)
-
-#define FP_UNPACK_Q(X,val) \
- do { \
- _FP_UNPACK_RAW_2(Q,X,val); \
- _FP_UNPACK_CANONICAL(Q,2,X); \
- } while (0)
-
-#define FP_UNPACK_QP(X,val) \
- do { \
- _FP_UNPACK_RAW_2_P(Q,X,val); \
- _FP_UNPACK_CANONICAL(Q,2,X); \
- } while (0)
-
-#define FP_PACK_Q(val,X) \
- do { \
- _FP_PACK_CANONICAL(Q,2,X); \
- _FP_PACK_RAW_2(Q,val,X); \
- } while (0)
-
-#define FP_PACK_QP(val,X) \
- do { \
- _FP_PACK_CANONICAL(Q,2,X); \
- if (!FP_INHIBIT_RESULTS) \
- _FP_PACK_RAW_2_P(Q,val,X); \
- } while (0)
-
-#define FP_ISSIGNAN_Q(X) _FP_ISSIGNAN(Q,2,X)
-#define FP_NEG_Q(R,X) _FP_NEG(Q,2,R,X)
-#define FP_ADD_Q(R,X,Y) _FP_ADD(Q,2,R,X,Y)
-#define FP_SUB_Q(R,X,Y) _FP_SUB(Q,2,R,X,Y)
-#define FP_MUL_Q(R,X,Y) _FP_MUL(Q,2,R,X,Y)
-#define FP_DIV_Q(R,X,Y) _FP_DIV(Q,2,R,X,Y)
-#define FP_SQRT_Q(R,X) _FP_SQRT(Q,2,R,X)
-#define _FP_SQRT_MEAT_Q(R,S,T,X,Q) _FP_SQRT_MEAT_2(R,S,T,X,Q)
-
-#define FP_CMP_Q(r,X,Y,un) _FP_CMP(Q,2,r,X,Y,un)
-#define FP_CMP_EQ_Q(r,X,Y) _FP_CMP_EQ(Q,2,r,X,Y)
-
-#define FP_TO_INT_Q(r,X,rsz,rsg) _FP_TO_INT(Q,2,r,X,rsz,rsg)
-#define FP_TO_INT_ROUND_Q(r,X,rsz,rsg) _FP_TO_INT_ROUND(Q,2,r,X,rsz,rsg)
-#define FP_FROM_INT_Q(X,r,rs,rt) _FP_FROM_INT(Q,2,X,r,rs,rt)
-
-#define _FP_FRAC_HIGH_Q(X) _FP_FRAC_HIGH_2(X)
-#define _FP_FRAC_HIGH_RAW_Q(X) _FP_FRAC_HIGH_2(X)
-
-#endif /* not _FP_W_TYPE_SIZE < 64 */
-
-#endif /* __MATH_EMU_QUAD_H__ */
diff --git a/ANDROID_3.4.5/include/math-emu/single.h b/ANDROID_3.4.5/include/math-emu/single.h
deleted file mode 100644
index 87f90b0f..00000000
--- a/ANDROID_3.4.5/include/math-emu/single.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/* Software floating-point emulation.
- Definitions for IEEE Single Precision.
- Copyright (C) 1997,1998,1999 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Richard Henderson (rth@cygnus.com),
- Jakub Jelinek (jj@ultra.linux.cz),
- David S. Miller (davem@redhat.com) and
- Peter Maydell (pmaydell@chiark.greenend.org.uk).
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifndef __MATH_EMU_SINGLE_H__
-#define __MATH_EMU_SINGLE_H__
-
-#if _FP_W_TYPE_SIZE < 32
-#error "Here's a nickel kid. Go buy yourself a real computer."
-#endif
-
-#define _FP_FRACBITS_S 24
-#define _FP_FRACXBITS_S (_FP_W_TYPE_SIZE - _FP_FRACBITS_S)
-#define _FP_WFRACBITS_S (_FP_WORKBITS + _FP_FRACBITS_S)
-#define _FP_WFRACXBITS_S (_FP_W_TYPE_SIZE - _FP_WFRACBITS_S)
-#define _FP_EXPBITS_S 8
-#define _FP_EXPBIAS_S 127
-#define _FP_EXPMAX_S 255
-#define _FP_QNANBIT_S ((_FP_W_TYPE)1 << (_FP_FRACBITS_S-2))
-#define _FP_IMPLBIT_S ((_FP_W_TYPE)1 << (_FP_FRACBITS_S-1))
-#define _FP_OVERFLOW_S ((_FP_W_TYPE)1 << (_FP_WFRACBITS_S))
-
-/* The implementation of _FP_MUL_MEAT_S and _FP_DIV_MEAT_S should be
- chosen by the target machine. */
-
-union _FP_UNION_S
-{
- float flt;
- struct {
-#if __BYTE_ORDER == __BIG_ENDIAN
- unsigned sign : 1;
- unsigned exp : _FP_EXPBITS_S;
- unsigned frac : _FP_FRACBITS_S - (_FP_IMPLBIT_S != 0);
-#else
- unsigned frac : _FP_FRACBITS_S - (_FP_IMPLBIT_S != 0);
- unsigned exp : _FP_EXPBITS_S;
- unsigned sign : 1;
-#endif
- } bits __attribute__((packed));
-};
-
-#define FP_DECL_S(X) _FP_DECL(1,X)
-#define FP_UNPACK_RAW_S(X,val) _FP_UNPACK_RAW_1(S,X,val)
-#define FP_UNPACK_RAW_SP(X,val) _FP_UNPACK_RAW_1_P(S,X,val)
-#define FP_PACK_RAW_S(val,X) _FP_PACK_RAW_1(S,val,X)
-#define FP_PACK_RAW_SP(val,X) \
- do { \
- if (!FP_INHIBIT_RESULTS) \
- _FP_PACK_RAW_1_P(S,val,X); \
- } while (0)
-
-#define FP_UNPACK_S(X,val) \
- do { \
- _FP_UNPACK_RAW_1(S,X,val); \
- _FP_UNPACK_CANONICAL(S,1,X); \
- } while (0)
-
-#define FP_UNPACK_SP(X,val) \
- do { \
- _FP_UNPACK_RAW_1_P(S,X,val); \
- _FP_UNPACK_CANONICAL(S,1,X); \
- } while (0)
-
-#define FP_PACK_S(val,X) \
- do { \
- _FP_PACK_CANONICAL(S,1,X); \
- _FP_PACK_RAW_1(S,val,X); \
- } while (0)
-
-#define FP_PACK_SP(val,X) \
- do { \
- _FP_PACK_CANONICAL(S,1,X); \
- if (!FP_INHIBIT_RESULTS) \
- _FP_PACK_RAW_1_P(S,val,X); \
- } while (0)
-
-#define FP_ISSIGNAN_S(X) _FP_ISSIGNAN(S,1,X)
-#define FP_NEG_S(R,X) _FP_NEG(S,1,R,X)
-#define FP_ADD_S(R,X,Y) _FP_ADD(S,1,R,X,Y)
-#define FP_SUB_S(R,X,Y) _FP_SUB(S,1,R,X,Y)
-#define FP_MUL_S(R,X,Y) _FP_MUL(S,1,R,X,Y)
-#define FP_DIV_S(R,X,Y) _FP_DIV(S,1,R,X,Y)
-#define FP_SQRT_S(R,X) _FP_SQRT(S,1,R,X)
-#define _FP_SQRT_MEAT_S(R,S,T,X,Q) _FP_SQRT_MEAT_1(R,S,T,X,Q)
-
-#define FP_CMP_S(r,X,Y,un) _FP_CMP(S,1,r,X,Y,un)
-#define FP_CMP_EQ_S(r,X,Y) _FP_CMP_EQ(S,1,r,X,Y)
-
-#define FP_TO_INT_S(r,X,rsz,rsg) _FP_TO_INT(S,1,r,X,rsz,rsg)
-#define FP_TO_INT_ROUND_S(r,X,rsz,rsg) _FP_TO_INT_ROUND(S,1,r,X,rsz,rsg)
-#define FP_FROM_INT_S(X,r,rs,rt) _FP_FROM_INT(S,1,X,r,rs,rt)
-
-#define _FP_FRAC_HIGH_S(X) _FP_FRAC_HIGH_1(X)
-#define _FP_FRAC_HIGH_RAW_S(X) _FP_FRAC_HIGH_1(X)
-
-#endif /* __MATH_EMU_SINGLE_H__ */
diff --git a/ANDROID_3.4.5/include/math-emu/soft-fp.h b/ANDROID_3.4.5/include/math-emu/soft-fp.h
deleted file mode 100644
index 3f284bc0..00000000
--- a/ANDROID_3.4.5/include/math-emu/soft-fp.h
+++ /dev/null
@@ -1,207 +0,0 @@
-/* Software floating-point emulation.
- Copyright (C) 1997,1998,1999 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Richard Henderson (rth@cygnus.com),
- Jakub Jelinek (jj@ultra.linux.cz),
- David S. Miller (davem@redhat.com) and
- Peter Maydell (pmaydell@chiark.greenend.org.uk).
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifndef __MATH_EMU_SOFT_FP_H__
-#define __MATH_EMU_SOFT_FP_H__
-
-#include <asm/sfp-machine.h>
-
-/* Allow sfp-machine to have its own byte order definitions. */
-#ifndef __BYTE_ORDER
-#include <endian.h>
-#endif
-
-#define _FP_WORKBITS 3
-#define _FP_WORK_LSB ((_FP_W_TYPE)1 << 3)
-#define _FP_WORK_ROUND ((_FP_W_TYPE)1 << 2)
-#define _FP_WORK_GUARD ((_FP_W_TYPE)1 << 1)
-#define _FP_WORK_STICKY ((_FP_W_TYPE)1 << 0)
-
-#ifndef FP_RND_NEAREST
-# define FP_RND_NEAREST 0
-# define FP_RND_ZERO 1
-# define FP_RND_PINF 2
-# define FP_RND_MINF 3
-#ifndef FP_ROUNDMODE
-# define FP_ROUNDMODE FP_RND_NEAREST
-#endif
-#endif
-
-/* By default don't care about exceptions. */
-#ifndef FP_EX_INVALID
-#define FP_EX_INVALID 0
-#endif
-#ifndef FP_EX_INVALID_SNAN
-#define FP_EX_INVALID_SNAN 0
-#endif
-/* inf - inf */
-#ifndef FP_EX_INVALID_ISI
-#define FP_EX_INVALID_ISI 0
-#endif
-/* inf / inf */
-#ifndef FP_EX_INVALID_IDI
-#define FP_EX_INVALID_IDI 0
-#endif
-/* 0 / 0 */
-#ifndef FP_EX_INVALID_ZDZ
-#define FP_EX_INVALID_ZDZ 0
-#endif
-/* inf * 0 */
-#ifndef FP_EX_INVALID_IMZ
-#define FP_EX_INVALID_IMZ 0
-#endif
-#ifndef FP_EX_OVERFLOW
-#define FP_EX_OVERFLOW 0
-#endif
-#ifndef FP_EX_UNDERFLOW
-#define FP_EX_UNDERFLOW
-#endif
-#ifndef FP_EX_DIVZERO
-#define FP_EX_DIVZERO 0
-#endif
-#ifndef FP_EX_INEXACT
-#define FP_EX_INEXACT 0
-#endif
-#ifndef FP_EX_DENORM
-#define FP_EX_DENORM 0
-#endif
-
-#ifdef _FP_DECL_EX
-#define FP_DECL_EX \
- int _fex = 0; \
- _FP_DECL_EX
-#else
-#define FP_DECL_EX int _fex = 0
-#endif
-
-#ifndef FP_INIT_ROUNDMODE
-#define FP_INIT_ROUNDMODE do {} while (0)
-#endif
-
-#ifndef FP_HANDLE_EXCEPTIONS
-#define FP_HANDLE_EXCEPTIONS do {} while (0)
-#endif
-
-/* By default we never flush denormal input operands to signed zero. */
-#ifndef FP_DENORM_ZERO
-#define FP_DENORM_ZERO 0
-#endif
-
-#ifndef FP_INHIBIT_RESULTS
-/* By default we write the results always.
- * sfp-machine may override this and e.g.
- * check if some exceptions are unmasked
- * and inhibit it in such a case.
- */
-#define FP_INHIBIT_RESULTS 0
-#endif
-
-#ifndef FP_TRAPPING_EXCEPTIONS
-#define FP_TRAPPING_EXCEPTIONS 0
-#endif
-
-#define FP_SET_EXCEPTION(ex) \
- _fex |= (ex)
-
-#define FP_UNSET_EXCEPTION(ex) \
- _fex &= ~(ex)
-
-#define FP_CUR_EXCEPTIONS \
- (_fex)
-
-#define FP_CLEAR_EXCEPTIONS \
- _fex = 0
-
-#define _FP_ROUND_NEAREST(wc, X) \
-do { \
- if ((_FP_FRAC_LOW_##wc(X) & 15) != _FP_WORK_ROUND) \
- _FP_FRAC_ADDI_##wc(X, _FP_WORK_ROUND); \
-} while (0)
-
-#define _FP_ROUND_ZERO(wc, X) 0
-
-#define _FP_ROUND_PINF(wc, X) \
-do { \
- if (!X##_s && (_FP_FRAC_LOW_##wc(X) & 7)) \
- _FP_FRAC_ADDI_##wc(X, _FP_WORK_LSB); \
-} while (0)
-
-#define _FP_ROUND_MINF(wc, X) \
-do { \
- if (X##_s && (_FP_FRAC_LOW_##wc(X) & 7)) \
- _FP_FRAC_ADDI_##wc(X, _FP_WORK_LSB); \
-} while (0)
-
-#define _FP_ROUND(wc, X) \
-do { \
- if (_FP_FRAC_LOW_##wc(X) & 7) \
- FP_SET_EXCEPTION(FP_EX_INEXACT); \
- switch (FP_ROUNDMODE) \
- { \
- case FP_RND_NEAREST: \
- _FP_ROUND_NEAREST(wc,X); \
- break; \
- case FP_RND_ZERO: \
- _FP_ROUND_ZERO(wc,X); \
- break; \
- case FP_RND_PINF: \
- _FP_ROUND_PINF(wc,X); \
- break; \
- case FP_RND_MINF: \
- _FP_ROUND_MINF(wc,X); \
- break; \
- } \
-} while (0)
-
-#define FP_CLS_NORMAL 0
-#define FP_CLS_ZERO 1
-#define FP_CLS_INF 2
-#define FP_CLS_NAN 3
-
-#define _FP_CLS_COMBINE(x,y) (((x) << 2) | (y))
-
-#include <math-emu/op-1.h>
-#include <math-emu/op-2.h>
-#include <math-emu/op-4.h>
-#include <math-emu/op-8.h>
-#include <math-emu/op-common.h>
-
-/* Sigh. Silly things longlong.h needs. */
-#define UWtype _FP_W_TYPE
-#define W_TYPE_SIZE _FP_W_TYPE_SIZE
-
-typedef int SItype __attribute__((mode(SI)));
-typedef int DItype __attribute__((mode(DI)));
-typedef unsigned int USItype __attribute__((mode(SI)));
-typedef unsigned int UDItype __attribute__((mode(DI)));
-#if _FP_W_TYPE_SIZE == 32
-typedef unsigned int UHWtype __attribute__((mode(HI)));
-#elif _FP_W_TYPE_SIZE == 64
-typedef USItype UHWtype;
-#endif
-
-#ifndef umul_ppmm
-#include <stdlib/longlong.h>
-#endif
-
-#endif /* __MATH_EMU_SOFT_FP_H__ */
diff --git a/ANDROID_3.4.5/include/media/adp1653.h b/ANDROID_3.4.5/include/media/adp1653.h
deleted file mode 100644
index 50a1af88..00000000
--- a/ANDROID_3.4.5/include/media/adp1653.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * include/media/adp1653.h
- *
- * Copyright (C) 2008--2011 Nokia Corporation
- *
- * Contact: Sakari Ailus <sakari.ailus@maxwell.research.nokia.com>
- *
- * Contributors:
- * Sakari Ailus <sakari.ailus@maxwell.research.nokia.com>
- * Tuukka Toivonen <tuukkat76@gmail.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.
- *
- * 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 ADP1653_H
-#define ADP1653_H
-
-#include <linux/i2c.h>
-#include <linux/mutex.h>
-#include <linux/videodev2.h>
-#include <media/v4l2-ctrls.h>
-#include <media/v4l2-subdev.h>
-
-#define ADP1653_NAME "adp1653"
-#define ADP1653_I2C_ADDR (0x60 >> 1)
-
-/* Register definitions */
-#define ADP1653_REG_OUT_SEL 0x00
-#define ADP1653_REG_OUT_SEL_HPLED_TORCH_MIN 0x01
-#define ADP1653_REG_OUT_SEL_HPLED_TORCH_MAX 0x0b
-#define ADP1653_REG_OUT_SEL_HPLED_FLASH_MIN 0x0c
-#define ADP1653_REG_OUT_SEL_HPLED_FLASH_MAX 0x1f
-#define ADP1653_REG_OUT_SEL_HPLED_SHIFT 3
-#define ADP1653_REG_OUT_SEL_ILED_MAX 0x07
-#define ADP1653_REG_OUT_SEL_ILED_SHIFT 0
-
-#define ADP1653_REG_CONFIG 0x01
-#define ADP1653_REG_CONFIG_TMR_CFG (1 << 4)
-#define ADP1653_REG_CONFIG_TMR_SET_MAX 0x0f
-#define ADP1653_REG_CONFIG_TMR_SET_SHIFT 0
-
-#define ADP1653_REG_SW_STROBE 0x02
-#define ADP1653_REG_SW_STROBE_SW_STROBE (1 << 0)
-
-#define ADP1653_REG_FAULT 0x03
-#define ADP1653_REG_FAULT_FLT_SCP (1 << 3)
-#define ADP1653_REG_FAULT_FLT_OT (1 << 2)
-#define ADP1653_REG_FAULT_FLT_TMR (1 << 1)
-#define ADP1653_REG_FAULT_FLT_OV (1 << 0)
-
-#define ADP1653_INDICATOR_INTENSITY_MIN 0
-#define ADP1653_INDICATOR_INTENSITY_STEP 2500
-#define ADP1653_INDICATOR_INTENSITY_MAX \
- (ADP1653_REG_OUT_SEL_ILED_MAX * ADP1653_INDICATOR_INTENSITY_STEP)
-#define ADP1653_INDICATOR_INTENSITY_uA_TO_REG(a) \
- ((a) / ADP1653_INDICATOR_INTENSITY_STEP)
-#define ADP1653_INDICATOR_INTENSITY_REG_TO_uA(a) \
- ((a) * ADP1653_INDICATOR_INTENSITY_STEP)
-
-#define ADP1653_FLASH_INTENSITY_BASE 35
-#define ADP1653_FLASH_INTENSITY_STEP 15
-#define ADP1653_FLASH_INTENSITY_MIN \
- (ADP1653_FLASH_INTENSITY_BASE \
- + ADP1653_REG_OUT_SEL_HPLED_FLASH_MIN * ADP1653_FLASH_INTENSITY_STEP)
-#define ADP1653_FLASH_INTENSITY_MAX \
- (ADP1653_FLASH_INTENSITY_MIN + \
- (ADP1653_REG_OUT_SEL_HPLED_FLASH_MAX - \
- ADP1653_REG_OUT_SEL_HPLED_FLASH_MIN + 1) * \
- ADP1653_FLASH_INTENSITY_STEP)
-
-#define ADP1653_FLASH_INTENSITY_mA_TO_REG(a) \
- ((a) < ADP1653_FLASH_INTENSITY_BASE ? 0 : \
- (((a) - ADP1653_FLASH_INTENSITY_BASE) / ADP1653_FLASH_INTENSITY_STEP))
-#define ADP1653_FLASH_INTENSITY_REG_TO_mA(a) \
- ((a) * ADP1653_FLASH_INTENSITY_STEP + ADP1653_FLASH_INTENSITY_BASE)
-
-#define ADP1653_TORCH_INTENSITY_MIN \
- (ADP1653_FLASH_INTENSITY_BASE \
- + ADP1653_REG_OUT_SEL_HPLED_TORCH_MIN * ADP1653_FLASH_INTENSITY_STEP)
-#define ADP1653_TORCH_INTENSITY_MAX \
- (ADP1653_TORCH_INTENSITY_MIN + \
- (ADP1653_REG_OUT_SEL_HPLED_TORCH_MAX - \
- ADP1653_REG_OUT_SEL_HPLED_TORCH_MIN + 1) * \
- ADP1653_FLASH_INTENSITY_STEP)
-
-struct adp1653_platform_data {
- int (*power)(struct v4l2_subdev *sd, int on);
-
- u32 max_flash_timeout; /* flash light timeout in us */
- u32 max_flash_intensity; /* led intensity, flash mode */
- u32 max_torch_intensity; /* led intensity, torch mode */
- u32 max_indicator_intensity; /* indicator led intensity */
-};
-
-#define to_adp1653_flash(sd) container_of(sd, struct adp1653_flash, subdev)
-
-struct adp1653_flash {
- struct v4l2_subdev subdev;
- struct adp1653_platform_data *platform_data;
-
- struct v4l2_ctrl_handler ctrls;
- struct v4l2_ctrl *led_mode;
- struct v4l2_ctrl *flash_timeout;
- struct v4l2_ctrl *flash_intensity;
- struct v4l2_ctrl *torch_intensity;
- struct v4l2_ctrl *indicator_intensity;
-
- struct mutex power_lock;
- int power_count;
- int fault;
-};
-
-#endif /* ADP1653_H */
diff --git a/ANDROID_3.4.5/include/media/adv7183.h b/ANDROID_3.4.5/include/media/adv7183.h
deleted file mode 100644
index c5c2d377..00000000
--- a/ANDROID_3.4.5/include/media/adv7183.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * adv7183.h - definition for adv7183 inputs and outputs
- *
- * Copyright (c) 2011 Analog Devices Inc.
- *
- * 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.
- *
- * 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.
- */
-
-#ifndef _ADV7183_H_
-#define _ADV7183_H_
-
-/* ADV7183 HW inputs */
-#define ADV7183_COMPOSITE0 0 /* CVBS in on AIN1 */
-#define ADV7183_COMPOSITE1 1 /* CVBS in on AIN2 */
-#define ADV7183_COMPOSITE2 2 /* CVBS in on AIN3 */
-#define ADV7183_COMPOSITE3 3 /* CVBS in on AIN4 */
-#define ADV7183_COMPOSITE4 4 /* CVBS in on AIN5 */
-#define ADV7183_COMPOSITE5 5 /* CVBS in on AIN6 */
-#define ADV7183_COMPOSITE6 6 /* CVBS in on AIN7 */
-#define ADV7183_COMPOSITE7 7 /* CVBS in on AIN8 */
-#define ADV7183_COMPOSITE8 8 /* CVBS in on AIN9 */
-#define ADV7183_COMPOSITE9 9 /* CVBS in on AIN10 */
-#define ADV7183_COMPOSITE10 10 /* CVBS in on AIN11 */
-
-#define ADV7183_SVIDEO0 11 /* Y on AIN1, C on AIN4 */
-#define ADV7183_SVIDEO1 12 /* Y on AIN2, C on AIN5 */
-#define ADV7183_SVIDEO2 13 /* Y on AIN3, C on AIN6 */
-
-#define ADV7183_COMPONENT0 14 /* Y on AIN1, Pr on AIN4, Pb on AIN5 */
-#define ADV7183_COMPONENT1 15 /* Y on AIN2, Pr on AIN3, Pb on AIN6 */
-
-/* ADV7183 HW outputs */
-#define ADV7183_8BIT_OUT 0
-#define ADV7183_16BIT_OUT 1
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/adv7343.h b/ANDROID_3.4.5/include/media/adv7343.h
deleted file mode 100644
index d6f8a4e1..00000000
--- a/ANDROID_3.4.5/include/media/adv7343.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * ADV7343 header file
- *
- * Copyright (C) 2009 Texas Instruments Incorporated - http://www.ti.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 version 2.
- *
- * This program is distributed .as is. WITHOUT ANY WARRANTY of any
- * kind, whether express or implied; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
-
-#ifndef ADV7343_H
-#define ADV7343_H
-
-#define ADV7343_COMPOSITE_ID (0)
-#define ADV7343_COMPONENT_ID (1)
-#define ADV7343_SVIDEO_ID (2)
-
-#endif /* End of #ifndef ADV7343_H */
diff --git a/ANDROID_3.4.5/include/media/ak881x.h b/ANDROID_3.4.5/include/media/ak881x.h
deleted file mode 100644
index b7f2add5..00000000
--- a/ANDROID_3.4.5/include/media/ak881x.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Header for AK8813 / AK8814 TV-ecoders from Asahi Kasei Microsystems Co., Ltd. (AKM)
- *
- * Copyright (C) 2010, Guennadi Liakhovetski <g.liakhovetski@gmx.de>
- *
- * 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.
- */
-
-#ifndef AK881X_H
-#define AK881X_H
-
-#define AK881X_IF_MODE_MASK (3 << 0)
-#define AK881X_IF_MODE_BT656 (0 << 0)
-#define AK881X_IF_MODE_MASTER (1 << 0)
-#define AK881X_IF_MODE_SLAVE (2 << 0)
-#define AK881X_FIELD (1 << 2)
-#define AK881X_COMPONENT (1 << 3)
-
-struct ak881x_pdata {
- unsigned long flags;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/as3645a.h b/ANDROID_3.4.5/include/media/as3645a.h
deleted file mode 100644
index 5075496d..00000000
--- a/ANDROID_3.4.5/include/media/as3645a.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * include/media/as3645a.h
- *
- * Copyright (C) 2008-2011 Nokia Corporation
- *
- * Contact: Laurent Pinchart <laurent.pinchart@ideasonboard.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.
- *
- * 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 __AS3645A_H__
-#define __AS3645A_H__
-
-#include <media/v4l2-subdev.h>
-
-#define AS3645A_NAME "as3645a"
-#define AS3645A_I2C_ADDR (0x60 >> 1) /* W:0x60, R:0x61 */
-
-#define AS3645A_FLASH_TIMEOUT_MIN 100000 /* us */
-#define AS3645A_FLASH_TIMEOUT_MAX 850000
-#define AS3645A_FLASH_TIMEOUT_STEP 50000
-
-#define AS3645A_FLASH_INTENSITY_MIN 200 /* mA */
-#define AS3645A_FLASH_INTENSITY_MAX_1LED 500
-#define AS3645A_FLASH_INTENSITY_MAX_2LEDS 400
-#define AS3645A_FLASH_INTENSITY_STEP 20
-
-#define AS3645A_TORCH_INTENSITY_MIN 20 /* mA */
-#define AS3645A_TORCH_INTENSITY_MAX 160
-#define AS3645A_TORCH_INTENSITY_STEP 20
-
-#define AS3645A_INDICATOR_INTENSITY_MIN 0 /* uA */
-#define AS3645A_INDICATOR_INTENSITY_MAX 10000
-#define AS3645A_INDICATOR_INTENSITY_STEP 2500
-
-/*
- * as3645a_platform_data - Flash controller platform data
- * @set_power: Set power callback
- * @vref: VREF offset (0=0V, 1=+0.3V, 2=-0.3V, 3=+0.6V)
- * @peak: Inductor peak current limit (0=1.25A, 1=1.5A, 2=1.75A, 3=2.0A)
- * @ext_strobe: True if external flash strobe can be used
- * @flash_max_current: Max flash current (mA, <= AS3645A_FLASH_INTENSITY_MAX)
- * @torch_max_current: Max torch current (mA, >= AS3645A_TORCH_INTENSITY_MAX)
- * @timeout_max: Max flash timeout (us, <= AS3645A_FLASH_TIMEOUT_MAX)
- */
-struct as3645a_platform_data {
- int (*set_power)(struct v4l2_subdev *subdev, int on);
- unsigned int vref;
- unsigned int peak;
- bool ext_strobe;
-
- /* Flash and torch currents and timeout limits */
- unsigned int flash_max_current;
- unsigned int torch_max_current;
- unsigned int timeout_max;
-};
-
-#endif /* __AS3645A_H__ */
diff --git a/ANDROID_3.4.5/include/media/atmel-isi.h b/ANDROID_3.4.5/include/media/atmel-isi.h
deleted file mode 100644
index 65682307..00000000
--- a/ANDROID_3.4.5/include/media/atmel-isi.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Register definitions for the Atmel Image Sensor Interface.
- *
- * Copyright (C) 2011 Atmel Corporation
- * Josh Wu, <josh.wu@atmel.com>
- *
- * Based on previous work by Lars Haring, <lars.haring@atmel.com>
- * and Sedji Gaouaou
- *
- * 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.
- */
-#ifndef __ATMEL_ISI_H__
-#define __ATMEL_ISI_H__
-
-#include <linux/types.h>
-
-/* ISI_V2 register offsets */
-#define ISI_CFG1 0x0000
-#define ISI_CFG2 0x0004
-#define ISI_PSIZE 0x0008
-#define ISI_PDECF 0x000c
-#define ISI_Y2R_SET0 0x0010
-#define ISI_Y2R_SET1 0x0014
-#define ISI_R2Y_SET0 0x0018
-#define ISI_R2Y_SET1 0x001C
-#define ISI_R2Y_SET2 0x0020
-#define ISI_CTRL 0x0024
-#define ISI_STATUS 0x0028
-#define ISI_INTEN 0x002C
-#define ISI_INTDIS 0x0030
-#define ISI_INTMASK 0x0034
-#define ISI_DMA_CHER 0x0038
-#define ISI_DMA_CHDR 0x003C
-#define ISI_DMA_CHSR 0x0040
-#define ISI_DMA_P_ADDR 0x0044
-#define ISI_DMA_P_CTRL 0x0048
-#define ISI_DMA_P_DSCR 0x004C
-#define ISI_DMA_C_ADDR 0x0050
-#define ISI_DMA_C_CTRL 0x0054
-#define ISI_DMA_C_DSCR 0x0058
-
-/* Bitfields in CFG1 */
-#define ISI_CFG1_HSYNC_POL_ACTIVE_LOW (1 << 2)
-#define ISI_CFG1_VSYNC_POL_ACTIVE_LOW (1 << 3)
-#define ISI_CFG1_PIXCLK_POL_ACTIVE_FALLING (1 << 4)
-#define ISI_CFG1_EMB_SYNC (1 << 6)
-#define ISI_CFG1_CRC_SYNC (1 << 7)
-/* Constants for FRATE(ISI_V2) */
-#define ISI_CFG1_FRATE_CAPTURE_ALL (0 << 8)
-#define ISI_CFG1_FRATE_DIV_2 (1 << 8)
-#define ISI_CFG1_FRATE_DIV_3 (2 << 8)
-#define ISI_CFG1_FRATE_DIV_4 (3 << 8)
-#define ISI_CFG1_FRATE_DIV_5 (4 << 8)
-#define ISI_CFG1_FRATE_DIV_6 (5 << 8)
-#define ISI_CFG1_FRATE_DIV_7 (6 << 8)
-#define ISI_CFG1_FRATE_DIV_8 (7 << 8)
-#define ISI_CFG1_DISCR (1 << 11)
-#define ISI_CFG1_FULL_MODE (1 << 12)
-
-/* Bitfields in CFG2 */
-#define ISI_CFG2_GRAYSCALE (1 << 13)
-/* Constants for YCC_SWAP(ISI_V2) */
-#define ISI_CFG2_YCC_SWAP_DEFAULT (0 << 28)
-#define ISI_CFG2_YCC_SWAP_MODE_1 (1 << 28)
-#define ISI_CFG2_YCC_SWAP_MODE_2 (2 << 28)
-#define ISI_CFG2_YCC_SWAP_MODE_3 (3 << 28)
-#define ISI_CFG2_IM_VSIZE_OFFSET 0
-#define ISI_CFG2_IM_HSIZE_OFFSET 16
-#define ISI_CFG2_IM_VSIZE_MASK (0x7FF << ISI_CFG2_IM_VSIZE_OFFSET)
-#define ISI_CFG2_IM_HSIZE_MASK (0x7FF << ISI_CFG2_IM_HSIZE_OFFSET)
-
-/* Bitfields in CTRL */
-/* Also using in SR(ISI_V2) */
-#define ISI_CTRL_EN (1 << 0)
-#define ISI_CTRL_CDC (1 << 8)
-/* Also using in SR/IER/IDR/IMR(ISI_V2) */
-#define ISI_CTRL_DIS (1 << 1)
-#define ISI_CTRL_SRST (1 << 2)
-
-/* Bitfields in SR */
-#define ISI_SR_SIP (1 << 19)
-/* Also using in SR/IER/IDR/IMR */
-#define ISI_SR_VSYNC (1 << 10)
-#define ISI_SR_PXFR_DONE (1 << 16)
-#define ISI_SR_CXFR_DONE (1 << 17)
-#define ISI_SR_P_OVR (1 << 24)
-#define ISI_SR_C_OVR (1 << 25)
-#define ISI_SR_CRC_ERR (1 << 26)
-#define ISI_SR_FR_OVR (1 << 27)
-
-/* Bitfields in DMA_C_CTRL & in DMA_P_CTRL */
-#define ISI_DMA_CTRL_FETCH (1 << 0)
-#define ISI_DMA_CTRL_WB (1 << 1)
-#define ISI_DMA_CTRL_IEN (1 << 2)
-#define ISI_DMA_CTRL_DONE (1 << 3)
-
-/* Bitfields in DMA_CHSR/CHER/CHDR */
-#define ISI_DMA_CHSR_P_CH (1 << 0)
-#define ISI_DMA_CHSR_C_CH (1 << 1)
-
-/* Definition for isi_platform_data */
-#define ISI_DATAWIDTH_8 0x01
-#define ISI_DATAWIDTH_10 0x02
-
-struct isi_platform_data {
- u8 has_emb_sync;
- u8 emb_crc_sync;
- u8 hsync_act_low;
- u8 vsync_act_low;
- u8 pclk_act_falling;
- u8 full_mode;
- u32 data_width_flags;
- /* Using for ISI_CFG1 */
- u32 frate;
- /* Using for ISI_MCK */
- u32 mck_hz;
-};
-
-#endif /* __ATMEL_ISI_H__ */
diff --git a/ANDROID_3.4.5/include/media/blackfin/bfin_capture.h b/ANDROID_3.4.5/include/media/blackfin/bfin_capture.h
deleted file mode 100644
index 2038a8a3..00000000
--- a/ANDROID_3.4.5/include/media/blackfin/bfin_capture.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef _BFIN_CAPTURE_H_
-#define _BFIN_CAPTURE_H_
-
-#include <linux/i2c.h>
-
-struct v4l2_input;
-struct ppi_info;
-
-struct bcap_route {
- u32 input;
- u32 output;
-};
-
-struct bfin_capture_config {
- /* card name */
- char *card_name;
- /* inputs available at the sub device */
- struct v4l2_input *inputs;
- /* number of inputs supported */
- int num_inputs;
- /* routing information for each input */
- struct bcap_route *routes;
- /* i2c bus adapter no */
- int i2c_adapter_id;
- /* i2c subdevice board info */
- struct i2c_board_info board_info;
- /* ppi board info */
- const struct ppi_info *ppi_info;
- /* ppi control */
- unsigned long ppi_control;
- /* ppi interrupt mask */
- u32 int_mask;
- /* horizontal blanking clocks */
- int blank_clocks;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/blackfin/ppi.h b/ANDROID_3.4.5/include/media/blackfin/ppi.h
deleted file mode 100644
index 8f72f8a0..00000000
--- a/ANDROID_3.4.5/include/media/blackfin/ppi.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Analog Devices PPI header file
- *
- * Copyright (c) 2011 Analog Devices Inc.
- *
- * 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.
- *
- * 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.
- */
-
-#ifndef _PPI_H_
-#define _PPI_H_
-
-#include <linux/interrupt.h>
-
-#ifdef EPPI_EN
-#define PORT_EN EPPI_EN
-#define DMA32 0
-#define PACK_EN PACKEN
-#endif
-
-struct ppi_if;
-
-struct ppi_params {
- int width;
- int height;
- int bpp;
- unsigned long ppi_control;
- u32 int_mask;
- int blank_clocks;
-};
-
-struct ppi_ops {
- int (*attach_irq)(struct ppi_if *ppi, irq_handler_t handler);
- void (*detach_irq)(struct ppi_if *ppi);
- int (*start)(struct ppi_if *ppi);
- int (*stop)(struct ppi_if *ppi);
- int (*set_params)(struct ppi_if *ppi, struct ppi_params *params);
- void (*update_addr)(struct ppi_if *ppi, unsigned long addr);
-};
-
-enum ppi_type {
- PPI_TYPE_PPI,
- PPI_TYPE_EPPI,
-};
-
-struct ppi_info {
- enum ppi_type type;
- int dma_ch;
- int irq_err;
- void __iomem *base;
- const unsigned short *pin_req;
-};
-
-struct ppi_if {
- unsigned long ppi_control;
- const struct ppi_ops *ops;
- const struct ppi_info *info;
- bool err_int;
- void *priv;
-};
-
-struct ppi_if *ppi_create_instance(const struct ppi_info *info);
-void ppi_delete_instance(struct ppi_if *ppi);
-#endif
diff --git a/ANDROID_3.4.5/include/media/bt819.h b/ANDROID_3.4.5/include/media/bt819.h
deleted file mode 100644
index 8025f4bc..00000000
--- a/ANDROID_3.4.5/include/media/bt819.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- bt819.h - bt819 notifications
-
- Copyright (C) 2009 Hans Verkuil (hverkuil@xs4all.nl)
-
- 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
-
-#ifndef _BT819_H_
-#define _BT819_H_
-
-#include <linux/ioctl.h>
-
-/* v4l2_device notifications. */
-
-/* Needed to reset the FIFO buffer when changing the input
- or the video standard.
-
- Note: these ioctls that internal to the kernel and are never called
- from userspace. */
-#define BT819_FIFO_RESET_LOW _IO('b', 0)
-#define BT819_FIFO_RESET_HIGH _IO('b', 1)
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/cs5345.h b/ANDROID_3.4.5/include/media/cs5345.h
deleted file mode 100644
index 6ccae24e..00000000
--- a/ANDROID_3.4.5/include/media/cs5345.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- cs5345.h - definition for cs5345 inputs and outputs
-
- Copyright (C) 2007 Hans Verkuil (hverkuil@xs4all.nl)
-
- 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
-
-#ifndef _CS5345_H_
-#define _CS5345_H_
-
-/* CS5345 HW inputs */
-#define CS5345_IN_MIC 0
-#define CS5345_IN_1 1
-#define CS5345_IN_2 2
-#define CS5345_IN_3 3
-#define CS5345_IN_4 4
-#define CS5345_IN_5 5
-#define CS5345_IN_6 6
-
-#define CS5345_MCLK_1 0x00
-#define CS5345_MCLK_1_5 0x10
-#define CS5345_MCLK_2 0x20
-#define CS5345_MCLK_3 0x30
-#define CS5345_MCLK_4 0x40
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/cs53l32a.h b/ANDROID_3.4.5/include/media/cs53l32a.h
deleted file mode 100644
index bf76197d..00000000
--- a/ANDROID_3.4.5/include/media/cs53l32a.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- cs53l32a.h - definition for cs53l32a inputs and outputs
-
- Copyright (C) 2006 Hans Verkuil (hverkuil@xs4all.nl)
-
- 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
-
-#ifndef _CS53L32A_H_
-#define _CS53L32A_H_
-
-/* There are 2 physical inputs, but the second input can be
- placed in two modes, the first mode bypasses the PGA (gain),
- the second goes through the PGA. Hence there are three
- possible inputs to choose from. */
-
-/* CS53L32A HW inputs */
-#define CS53L32A_IN0 0
-#define CS53L32A_IN1 1
-#define CS53L32A_IN2 2
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/cx2341x.h b/ANDROID_3.4.5/include/media/cx2341x.h
deleted file mode 100644
index 9635eeba..00000000
--- a/ANDROID_3.4.5/include/media/cx2341x.h
+++ /dev/null
@@ -1,295 +0,0 @@
-/*
- cx23415/6/8 header containing common defines.
-
- 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
- */
-
-#ifndef CX2341X_H
-#define CX2341X_H
-
-#include <media/v4l2-ctrls.h>
-
-enum cx2341x_port {
- CX2341X_PORT_MEMORY = 0,
- CX2341X_PORT_STREAMING = 1,
- CX2341X_PORT_SERIAL = 2
-};
-
-enum cx2341x_cap {
- CX2341X_CAP_HAS_SLICED_VBI = 1 << 0,
- CX2341X_CAP_HAS_TS = 1 << 1,
- CX2341X_CAP_HAS_AC3 = 1 << 2,
-};
-
-struct cx2341x_mpeg_params {
- /* misc */
- u32 capabilities;
- enum cx2341x_port port;
- u16 width;
- u16 height;
- u16 is_50hz;
-
- /* stream */
- enum v4l2_mpeg_stream_type stream_type;
- enum v4l2_mpeg_stream_vbi_fmt stream_vbi_fmt;
- u16 stream_insert_nav_packets;
-
- /* audio */
- enum v4l2_mpeg_audio_sampling_freq audio_sampling_freq;
- enum v4l2_mpeg_audio_encoding audio_encoding;
- enum v4l2_mpeg_audio_l2_bitrate audio_l2_bitrate;
- enum v4l2_mpeg_audio_ac3_bitrate audio_ac3_bitrate;
- enum v4l2_mpeg_audio_mode audio_mode;
- enum v4l2_mpeg_audio_mode_extension audio_mode_extension;
- enum v4l2_mpeg_audio_emphasis audio_emphasis;
- enum v4l2_mpeg_audio_crc audio_crc;
- u32 audio_properties;
- u16 audio_mute;
-
- /* video */
- enum v4l2_mpeg_video_encoding video_encoding;
- enum v4l2_mpeg_video_aspect video_aspect;
- u16 video_b_frames;
- u16 video_gop_size;
- u16 video_gop_closure;
- enum v4l2_mpeg_video_bitrate_mode video_bitrate_mode;
- u32 video_bitrate;
- u32 video_bitrate_peak;
- u16 video_temporal_decimation;
- u16 video_mute;
- u32 video_mute_yuv;
-
- /* encoding filters */
- enum v4l2_mpeg_cx2341x_video_spatial_filter_mode video_spatial_filter_mode;
- u16 video_spatial_filter;
- enum v4l2_mpeg_cx2341x_video_luma_spatial_filter_type video_luma_spatial_filter_type;
- enum v4l2_mpeg_cx2341x_video_chroma_spatial_filter_type video_chroma_spatial_filter_type;
- enum v4l2_mpeg_cx2341x_video_temporal_filter_mode video_temporal_filter_mode;
- u16 video_temporal_filter;
- enum v4l2_mpeg_cx2341x_video_median_filter_type video_median_filter_type;
- u16 video_luma_median_filter_top;
- u16 video_luma_median_filter_bottom;
- u16 video_chroma_median_filter_top;
- u16 video_chroma_median_filter_bottom;
-};
-
-#define CX2341X_MBOX_MAX_DATA 16
-
-extern const u32 cx2341x_mpeg_ctrls[];
-typedef int (*cx2341x_mbox_func)(void *priv, u32 cmd, int in, int out,
- u32 data[CX2341X_MBOX_MAX_DATA]);
-int cx2341x_update(void *priv, cx2341x_mbox_func func,
- const struct cx2341x_mpeg_params *old,
- const struct cx2341x_mpeg_params *new);
-int cx2341x_ctrl_query(const struct cx2341x_mpeg_params *params,
- struct v4l2_queryctrl *qctrl);
-const char * const *cx2341x_ctrl_get_menu(const struct cx2341x_mpeg_params *p, u32 id);
-int cx2341x_ext_ctrls(struct cx2341x_mpeg_params *params, int busy,
- struct v4l2_ext_controls *ctrls, unsigned int cmd);
-void cx2341x_fill_defaults(struct cx2341x_mpeg_params *p);
-void cx2341x_log_status(const struct cx2341x_mpeg_params *p, const char *prefix);
-
-struct cx2341x_handler;
-
-struct cx2341x_handler_ops {
- /* needed for the video clock freq */
- int (*s_audio_sampling_freq)(struct cx2341x_handler *hdl, u32 val);
- /* needed for dualwatch */
- int (*s_audio_mode)(struct cx2341x_handler *hdl, u32 val);
- /* needed for setting up the video resolution */
- int (*s_video_encoding)(struct cx2341x_handler *hdl, u32 val);
- /* needed for setting up the sliced vbi insertion data structures */
- int (*s_stream_vbi_fmt)(struct cx2341x_handler *hdl, u32 val);
-};
-
-struct cx2341x_handler {
- u32 capabilities;
- enum cx2341x_port port;
- u16 width;
- u16 height;
- u16 is_50hz;
- u32 audio_properties;
-
- struct v4l2_ctrl_handler hdl;
- void *priv;
- cx2341x_mbox_func func;
- const struct cx2341x_handler_ops *ops;
-
- struct v4l2_ctrl *stream_vbi_fmt;
-
- struct {
- /* audio cluster */
- struct v4l2_ctrl *audio_sampling_freq;
- struct v4l2_ctrl *audio_encoding;
- struct v4l2_ctrl *audio_l2_bitrate;
- struct v4l2_ctrl *audio_mode;
- struct v4l2_ctrl *audio_mode_extension;
- struct v4l2_ctrl *audio_emphasis;
- struct v4l2_ctrl *audio_crc;
- struct v4l2_ctrl *audio_ac3_bitrate;
- };
-
- struct {
- /* video gop cluster */
- struct v4l2_ctrl *video_b_frames;
- struct v4l2_ctrl *video_gop_size;
- };
-
- struct {
- /* stream type cluster */
- struct v4l2_ctrl *stream_type;
- struct v4l2_ctrl *video_encoding;
- struct v4l2_ctrl *video_bitrate_mode;
- struct v4l2_ctrl *video_bitrate;
- struct v4l2_ctrl *video_bitrate_peak;
- };
-
- struct {
- /* video mute cluster */
- struct v4l2_ctrl *video_mute;
- struct v4l2_ctrl *video_mute_yuv;
- };
-
- struct {
- /* video filter mode cluster */
- struct v4l2_ctrl *video_spatial_filter_mode;
- struct v4l2_ctrl *video_temporal_filter_mode;
- struct v4l2_ctrl *video_median_filter_type;
- };
-
- struct {
- /* video filter type cluster */
- struct v4l2_ctrl *video_luma_spatial_filter_type;
- struct v4l2_ctrl *video_chroma_spatial_filter_type;
- };
-
- struct {
- /* video filter cluster */
- struct v4l2_ctrl *video_spatial_filter;
- struct v4l2_ctrl *video_temporal_filter;
- };
-
- struct {
- /* video median cluster */
- struct v4l2_ctrl *video_luma_median_filter_top;
- struct v4l2_ctrl *video_luma_median_filter_bottom;
- struct v4l2_ctrl *video_chroma_median_filter_top;
- struct v4l2_ctrl *video_chroma_median_filter_bottom;
- };
-};
-
-int cx2341x_handler_init(struct cx2341x_handler *cxhdl,
- unsigned nr_of_controls_hint);
-void cx2341x_handler_set_50hz(struct cx2341x_handler *cxhdl, int is_50hz);
-int cx2341x_handler_setup(struct cx2341x_handler *cxhdl);
-void cx2341x_handler_set_busy(struct cx2341x_handler *cxhdl, int busy);
-
-/* Firmware names */
-#define CX2341X_FIRM_ENC_FILENAME "v4l-cx2341x-enc.fw"
-/* Decoder firmware for the cx23415 only */
-#define CX2341X_FIRM_DEC_FILENAME "v4l-cx2341x-dec.fw"
-
-/* Firmware API commands */
-
-/* MPEG decoder API, specific to the cx23415 */
-#define CX2341X_DEC_PING_FW 0x00
-#define CX2341X_DEC_START_PLAYBACK 0x01
-#define CX2341X_DEC_STOP_PLAYBACK 0x02
-#define CX2341X_DEC_SET_PLAYBACK_SPEED 0x03
-#define CX2341X_DEC_STEP_VIDEO 0x05
-#define CX2341X_DEC_SET_DMA_BLOCK_SIZE 0x08
-#define CX2341X_DEC_GET_XFER_INFO 0x09
-#define CX2341X_DEC_GET_DMA_STATUS 0x0a
-#define CX2341X_DEC_SCHED_DMA_FROM_HOST 0x0b
-#define CX2341X_DEC_PAUSE_PLAYBACK 0x0d
-#define CX2341X_DEC_HALT_FW 0x0e
-#define CX2341X_DEC_SET_STANDARD 0x10
-#define CX2341X_DEC_GET_VERSION 0x11
-#define CX2341X_DEC_SET_STREAM_INPUT 0x14
-#define CX2341X_DEC_GET_TIMING_INFO 0x15
-#define CX2341X_DEC_SET_AUDIO_MODE 0x16
-#define CX2341X_DEC_SET_EVENT_NOTIFICATION 0x17
-#define CX2341X_DEC_SET_DISPLAY_BUFFERS 0x18
-#define CX2341X_DEC_EXTRACT_VBI 0x19
-#define CX2341X_DEC_SET_DECODER_SOURCE 0x1a
-#define CX2341X_DEC_SET_PREBUFFERING 0x1e
-
-/* MPEG encoder API */
-#define CX2341X_ENC_PING_FW 0x80
-#define CX2341X_ENC_START_CAPTURE 0x81
-#define CX2341X_ENC_STOP_CAPTURE 0x82
-#define CX2341X_ENC_SET_AUDIO_ID 0x89
-#define CX2341X_ENC_SET_VIDEO_ID 0x8b
-#define CX2341X_ENC_SET_PCR_ID 0x8d
-#define CX2341X_ENC_SET_FRAME_RATE 0x8f
-#define CX2341X_ENC_SET_FRAME_SIZE 0x91
-#define CX2341X_ENC_SET_BIT_RATE 0x95
-#define CX2341X_ENC_SET_GOP_PROPERTIES 0x97
-#define CX2341X_ENC_SET_ASPECT_RATIO 0x99
-#define CX2341X_ENC_SET_DNR_FILTER_MODE 0x9b
-#define CX2341X_ENC_SET_DNR_FILTER_PROPS 0x9d
-#define CX2341X_ENC_SET_CORING_LEVELS 0x9f
-#define CX2341X_ENC_SET_SPATIAL_FILTER_TYPE 0xa1
-#define CX2341X_ENC_SET_VBI_LINE 0xb7
-#define CX2341X_ENC_SET_STREAM_TYPE 0xb9
-#define CX2341X_ENC_SET_OUTPUT_PORT 0xbb
-#define CX2341X_ENC_SET_AUDIO_PROPERTIES 0xbd
-#define CX2341X_ENC_HALT_FW 0xc3
-#define CX2341X_ENC_GET_VERSION 0xc4
-#define CX2341X_ENC_SET_GOP_CLOSURE 0xc5
-#define CX2341X_ENC_GET_SEQ_END 0xc6
-#define CX2341X_ENC_SET_PGM_INDEX_INFO 0xc7
-#define CX2341X_ENC_SET_VBI_CONFIG 0xc8
-#define CX2341X_ENC_SET_DMA_BLOCK_SIZE 0xc9
-#define CX2341X_ENC_GET_PREV_DMA_INFO_MB_10 0xca
-#define CX2341X_ENC_GET_PREV_DMA_INFO_MB_9 0xcb
-#define CX2341X_ENC_SCHED_DMA_TO_HOST 0xcc
-#define CX2341X_ENC_INITIALIZE_INPUT 0xcd
-#define CX2341X_ENC_SET_FRAME_DROP_RATE 0xd0
-#define CX2341X_ENC_PAUSE_ENCODER 0xd2
-#define CX2341X_ENC_REFRESH_INPUT 0xd3
-#define CX2341X_ENC_SET_COPYRIGHT 0xd4
-#define CX2341X_ENC_SET_EVENT_NOTIFICATION 0xd5
-#define CX2341X_ENC_SET_NUM_VSYNC_LINES 0xd6
-#define CX2341X_ENC_SET_PLACEHOLDER 0xd7
-#define CX2341X_ENC_MUTE_VIDEO 0xd9
-#define CX2341X_ENC_MUTE_AUDIO 0xda
-#define CX2341X_ENC_SET_VERT_CROP_LINE 0xdb
-#define CX2341X_ENC_MISC 0xdc
-
-/* OSD API, specific to the cx23415 */
-#define CX2341X_OSD_GET_FRAMEBUFFER 0x41
-#define CX2341X_OSD_GET_PIXEL_FORMAT 0x42
-#define CX2341X_OSD_SET_PIXEL_FORMAT 0x43
-#define CX2341X_OSD_GET_STATE 0x44
-#define CX2341X_OSD_SET_STATE 0x45
-#define CX2341X_OSD_GET_OSD_COORDS 0x46
-#define CX2341X_OSD_SET_OSD_COORDS 0x47
-#define CX2341X_OSD_GET_SCREEN_COORDS 0x48
-#define CX2341X_OSD_SET_SCREEN_COORDS 0x49
-#define CX2341X_OSD_GET_GLOBAL_ALPHA 0x4a
-#define CX2341X_OSD_SET_GLOBAL_ALPHA 0x4b
-#define CX2341X_OSD_SET_BLEND_COORDS 0x4c
-#define CX2341X_OSD_GET_FLICKER_STATE 0x4f
-#define CX2341X_OSD_SET_FLICKER_STATE 0x50
-#define CX2341X_OSD_BLT_COPY 0x52
-#define CX2341X_OSD_BLT_FILL 0x53
-#define CX2341X_OSD_BLT_TEXT 0x54
-#define CX2341X_OSD_SET_FRAMEBUFFER_WINDOW 0x56
-#define CX2341X_OSD_SET_CHROMA_KEY 0x60
-#define CX2341X_OSD_GET_ALPHA_CONTENT_INDEX 0x61
-#define CX2341X_OSD_SET_ALPHA_CONTENT_INDEX 0x62
-
-#endif /* CX2341X_H */
diff --git a/ANDROID_3.4.5/include/media/cx25840.h b/ANDROID_3.4.5/include/media/cx25840.h
deleted file mode 100644
index 783c5bdd..00000000
--- a/ANDROID_3.4.5/include/media/cx25840.h
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- cx25840.h - definition for cx25840/1/2/3 inputs
-
- Copyright (C) 2006 Hans Verkuil (hverkuil@xs4all.nl)
-
- 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
-
-#ifndef _CX25840_H_
-#define _CX25840_H_
-
-/* Note that the cx25840 driver requires that the bridge driver calls the
- v4l2_subdev's init operation in order to load the driver's firmware.
- Without this the audio standard detection will fail and you will
- only get mono.
-
- Since loading the firmware is often problematic when the driver is
- compiled into the kernel I recommend postponing calling this function
- until the first open of the video device. Another reason for
- postponing it is that loading this firmware takes a long time (seconds)
- due to the slow i2c bus speed. So it will speed up the boot process if
- you can avoid loading the fw as long as the video device isn't used. */
-
-enum cx25840_video_input {
- /* Composite video inputs In1-In8 */
- CX25840_COMPOSITE1 = 1,
- CX25840_COMPOSITE2,
- CX25840_COMPOSITE3,
- CX25840_COMPOSITE4,
- CX25840_COMPOSITE5,
- CX25840_COMPOSITE6,
- CX25840_COMPOSITE7,
- CX25840_COMPOSITE8,
-
- /* S-Video inputs consist of one luma input (In1-In8) ORed with one
- chroma input (In5-In8) */
- CX25840_SVIDEO_LUMA1 = 0x10,
- CX25840_SVIDEO_LUMA2 = 0x20,
- CX25840_SVIDEO_LUMA3 = 0x30,
- CX25840_SVIDEO_LUMA4 = 0x40,
- CX25840_SVIDEO_LUMA5 = 0x50,
- CX25840_SVIDEO_LUMA6 = 0x60,
- CX25840_SVIDEO_LUMA7 = 0x70,
- CX25840_SVIDEO_LUMA8 = 0x80,
- CX25840_SVIDEO_CHROMA4 = 0x400,
- CX25840_SVIDEO_CHROMA5 = 0x500,
- CX25840_SVIDEO_CHROMA6 = 0x600,
- CX25840_SVIDEO_CHROMA7 = 0x700,
- CX25840_SVIDEO_CHROMA8 = 0x800,
-
- /* S-Video aliases for common luma/chroma combinations */
- CX25840_SVIDEO1 = 0x510,
- CX25840_SVIDEO2 = 0x620,
- CX25840_SVIDEO3 = 0x730,
- CX25840_SVIDEO4 = 0x840,
-
- /* Allow frames to specify specific input configurations */
- CX25840_VIN1_CH1 = 0x80000000,
- CX25840_VIN2_CH1 = 0x80000001,
- CX25840_VIN3_CH1 = 0x80000002,
- CX25840_VIN4_CH1 = 0x80000003,
- CX25840_VIN5_CH1 = 0x80000004,
- CX25840_VIN6_CH1 = 0x80000005,
- CX25840_VIN7_CH1 = 0x80000006,
- CX25840_VIN8_CH1 = 0x80000007,
- CX25840_VIN4_CH2 = 0x80000000,
- CX25840_VIN5_CH2 = 0x80000010,
- CX25840_VIN6_CH2 = 0x80000020,
- CX25840_NONE_CH2 = 0x80000030,
- CX25840_VIN7_CH3 = 0x80000000,
- CX25840_VIN8_CH3 = 0x80000040,
- CX25840_NONE0_CH3 = 0x80000080,
- CX25840_NONE1_CH3 = 0x800000c0,
- CX25840_SVIDEO_ON = 0x80000100,
- CX25840_COMPONENT_ON = 0x80000200,
- CX25840_DIF_ON = 0x80000400,
-};
-
-enum cx25840_audio_input {
- /* Audio inputs: serial or In4-In8 */
- CX25840_AUDIO_SERIAL,
- CX25840_AUDIO4 = 4,
- CX25840_AUDIO5,
- CX25840_AUDIO6,
- CX25840_AUDIO7,
- CX25840_AUDIO8,
-};
-
-enum cx25840_io_pin {
- CX25840_PIN_DVALID_PRGM0 = 0,
- CX25840_PIN_FIELD_PRGM1,
- CX25840_PIN_HRESET_PRGM2,
- CX25840_PIN_VRESET_HCTL_PRGM3,
- CX25840_PIN_IRQ_N_PRGM4,
- CX25840_PIN_IR_TX_PRGM6,
- CX25840_PIN_IR_RX_PRGM5,
- CX25840_PIN_GPIO0_PRGM8,
- CX25840_PIN_GPIO1_PRGM9,
- CX25840_PIN_SA_SDIN, /* Alternate GP Input only */
- CX25840_PIN_SA_SDOUT, /* Alternate GP Input only */
- CX25840_PIN_PLL_CLK_PRGM7,
- CX25840_PIN_CHIP_SEL_VIPCLK, /* Output only */
-};
-
-enum cx25840_io_pad {
- /* Output pads */
- CX25840_PAD_DEFAULT = 0,
- CX25840_PAD_ACTIVE,
- CX25840_PAD_VACTIVE,
- CX25840_PAD_CBFLAG,
- CX25840_PAD_VID_DATA_EXT0,
- CX25840_PAD_VID_DATA_EXT1,
- CX25840_PAD_GPO0,
- CX25840_PAD_GPO1,
- CX25840_PAD_GPO2,
- CX25840_PAD_GPO3,
- CX25840_PAD_IRQ_N,
- CX25840_PAD_AC_SYNC,
- CX25840_PAD_AC_SDOUT,
- CX25840_PAD_PLL_CLK,
- CX25840_PAD_VRESET,
- CX25840_PAD_RESERVED,
- /* Pads for PLL_CLK output only */
- CX25840_PAD_XTI_X5_DLL,
- CX25840_PAD_AUX_PLL,
- CX25840_PAD_VID_PLL,
- CX25840_PAD_XTI,
- /* Input Pads */
- CX25840_PAD_GPI0,
- CX25840_PAD_GPI1,
- CX25840_PAD_GPI2,
- CX25840_PAD_GPI3,
-};
-
-enum cx25840_io_pin_strength {
- CX25840_PIN_DRIVE_MEDIUM = 0,
- CX25840_PIN_DRIVE_SLOW,
- CX25840_PIN_DRIVE_FAST,
-};
-
-enum cx23885_io_pin {
- CX23885_PIN_IR_RX_GPIO19,
- CX23885_PIN_IR_TX_GPIO20,
- CX23885_PIN_I2S_SDAT_GPIO21,
- CX23885_PIN_I2S_WCLK_GPIO22,
- CX23885_PIN_I2S_BCLK_GPIO23,
- CX23885_PIN_IRQ_N_GPIO16,
-};
-
-enum cx23885_io_pad {
- CX23885_PAD_IR_RX,
- CX23885_PAD_GPIO19,
- CX23885_PAD_IR_TX,
- CX23885_PAD_GPIO20,
- CX23885_PAD_I2S_SDAT,
- CX23885_PAD_GPIO21,
- CX23885_PAD_I2S_WCLK,
- CX23885_PAD_GPIO22,
- CX23885_PAD_I2S_BCLK,
- CX23885_PAD_GPIO23,
- CX23885_PAD_IRQ_N,
- CX23885_PAD_GPIO16,
-};
-
-/* pvr150_workaround activates a workaround for a hardware bug that is
- present in Hauppauge PVR-150 (and possibly PVR-500) cards that have
- certain NTSC tuners (tveeprom tuner model numbers 85, 99 and 112). The
- audio autodetect fails on some channels for these models and the workaround
- is to select the audio standard explicitly. Many thanks to Hauppauge for
- providing this information.
- This platform data only needs to be supplied by the ivtv driver. */
-struct cx25840_platform_data {
- int pvr150_workaround;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/davinci/ccdc_types.h b/ANDROID_3.4.5/include/media/davinci/ccdc_types.h
deleted file mode 100644
index 5773874b..00000000
--- a/ANDROID_3.4.5/include/media/davinci/ccdc_types.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2008-2009 Texas Instruments Inc
- *
- * 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
- *
- **************************************************************************/
-#ifndef _CCDC_TYPES_H
-#define _CCDC_TYPES_H
-enum ccdc_pixfmt {
- CCDC_PIXFMT_RAW,
- CCDC_PIXFMT_YCBCR_16BIT,
- CCDC_PIXFMT_YCBCR_8BIT
-};
-
-enum ccdc_frmfmt {
- CCDC_FRMFMT_PROGRESSIVE,
- CCDC_FRMFMT_INTERLACED
-};
-
-/* PIXEL ORDER IN MEMORY from LSB to MSB */
-/* only applicable for 8-bit input mode */
-enum ccdc_pixorder {
- CCDC_PIXORDER_YCBYCR,
- CCDC_PIXORDER_CBYCRY,
-};
-
-enum ccdc_buftype {
- CCDC_BUFTYPE_FLD_INTERLEAVED,
- CCDC_BUFTYPE_FLD_SEPARATED
-};
-#endif
diff --git a/ANDROID_3.4.5/include/media/davinci/dm355_ccdc.h b/ANDROID_3.4.5/include/media/davinci/dm355_ccdc.h
deleted file mode 100644
index adf2fe4b..00000000
--- a/ANDROID_3.4.5/include/media/davinci/dm355_ccdc.h
+++ /dev/null
@@ -1,321 +0,0 @@
-/*
- * Copyright (C) 2005-2009 Texas Instruments Inc
- *
- * 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
- */
-#ifndef _DM355_CCDC_H
-#define _DM355_CCDC_H
-#include <media/davinci/ccdc_types.h>
-#include <media/davinci/vpfe_types.h>
-
-/* enum for No of pixel per line to be avg. in Black Clamping */
-enum ccdc_sample_length {
- CCDC_SAMPLE_1PIXELS,
- CCDC_SAMPLE_2PIXELS,
- CCDC_SAMPLE_4PIXELS,
- CCDC_SAMPLE_8PIXELS,
- CCDC_SAMPLE_16PIXELS
-};
-
-/* enum for No of lines in Black Clamping */
-enum ccdc_sample_line {
- CCDC_SAMPLE_1LINES,
- CCDC_SAMPLE_2LINES,
- CCDC_SAMPLE_4LINES,
- CCDC_SAMPLE_8LINES,
- CCDC_SAMPLE_16LINES
-};
-
-/* enum for Alaw gama width */
-enum ccdc_gamma_width {
- CCDC_GAMMA_BITS_13_4,
- CCDC_GAMMA_BITS_12_3,
- CCDC_GAMMA_BITS_11_2,
- CCDC_GAMMA_BITS_10_1,
- CCDC_GAMMA_BITS_09_0
-};
-
-enum ccdc_colpats {
- CCDC_RED,
- CCDC_GREEN_RED,
- CCDC_GREEN_BLUE,
- CCDC_BLUE
-};
-
-struct ccdc_col_pat {
- enum ccdc_colpats olop;
- enum ccdc_colpats olep;
- enum ccdc_colpats elop;
- enum ccdc_colpats elep;
-};
-
-enum ccdc_datasft {
- CCDC_DATA_NO_SHIFT,
- CCDC_DATA_SHIFT_1BIT,
- CCDC_DATA_SHIFT_2BIT,
- CCDC_DATA_SHIFT_3BIT,
- CCDC_DATA_SHIFT_4BIT,
- CCDC_DATA_SHIFT_5BIT,
- CCDC_DATA_SHIFT_6BIT
-};
-
-enum ccdc_data_size {
- CCDC_DATA_16BITS,
- CCDC_DATA_15BITS,
- CCDC_DATA_14BITS,
- CCDC_DATA_13BITS,
- CCDC_DATA_12BITS,
- CCDC_DATA_11BITS,
- CCDC_DATA_10BITS,
- CCDC_DATA_8BITS
-};
-enum ccdc_mfilt1 {
- CCDC_NO_MEDIAN_FILTER1,
- CCDC_AVERAGE_FILTER1,
- CCDC_MEDIAN_FILTER1
-};
-
-enum ccdc_mfilt2 {
- CCDC_NO_MEDIAN_FILTER2,
- CCDC_AVERAGE_FILTER2,
- CCDC_MEDIAN_FILTER2
-};
-
-/* structure for ALaw */
-struct ccdc_a_law {
- /* Enable/disable A-Law */
- unsigned char enable;
- /* Gama Width Input */
- enum ccdc_gamma_width gama_wd;
-};
-
-/* structure for Black Clamping */
-struct ccdc_black_clamp {
- /* only if bClampEnable is TRUE */
- unsigned char b_clamp_enable;
- /* only if bClampEnable is TRUE */
- enum ccdc_sample_length sample_pixel;
- /* only if bClampEnable is TRUE */
- enum ccdc_sample_line sample_ln;
- /* only if bClampEnable is TRUE */
- unsigned short start_pixel;
- /* only if bClampEnable is FALSE */
- unsigned short sgain;
- unsigned short dc_sub;
-};
-
-/* structure for Black Level Compensation */
-struct ccdc_black_compensation {
- /* Constant value to subtract from Red component */
- unsigned char r;
- /* Constant value to subtract from Gr component */
- unsigned char gr;
- /* Constant value to subtract from Blue component */
- unsigned char b;
- /* Constant value to subtract from Gb component */
- unsigned char gb;
-};
-
-struct ccdc_float {
- int integer;
- unsigned int decimal;
-};
-
-#define CCDC_CSC_COEFF_TABLE_SIZE 16
-/* structure for color space converter */
-struct ccdc_csc {
- unsigned char enable;
- /*
- * S8Q5. Use 2 decimal precision, user values range from -3.00 to 3.99.
- * example - to use 1.03, set integer part as 1, and decimal part as 3
- * to use -1.03, set integer part as -1 and decimal part as 3
- */
- struct ccdc_float coeff[CCDC_CSC_COEFF_TABLE_SIZE];
-};
-
-/* Structures for Vertical Defect Correction*/
-enum ccdc_vdf_csl {
- CCDC_VDF_NORMAL,
- CCDC_VDF_HORZ_INTERPOL_SAT,
- CCDC_VDF_HORZ_INTERPOL
-};
-
-enum ccdc_vdf_cuda {
- CCDC_VDF_WHOLE_LINE_CORRECT,
- CCDC_VDF_UPPER_DISABLE
-};
-
-enum ccdc_dfc_mwr {
- CCDC_DFC_MWR_WRITE_COMPLETE,
- CCDC_DFC_WRITE_REG
-};
-
-enum ccdc_dfc_mrd {
- CCDC_DFC_READ_COMPLETE,
- CCDC_DFC_READ_REG
-};
-
-enum ccdc_dfc_ma_rst {
- CCDC_DFC_INCR_ADDR,
- CCDC_DFC_CLR_ADDR
-};
-
-enum ccdc_dfc_mclr {
- CCDC_DFC_CLEAR_COMPLETE,
- CCDC_DFC_CLEAR
-};
-
-struct ccdc_dft_corr_ctl {
- enum ccdc_vdf_csl vdfcsl;
- enum ccdc_vdf_cuda vdfcuda;
- unsigned int vdflsft;
-};
-
-struct ccdc_dft_corr_mem_ctl {
- enum ccdc_dfc_mwr dfcmwr;
- enum ccdc_dfc_mrd dfcmrd;
- enum ccdc_dfc_ma_rst dfcmarst;
- enum ccdc_dfc_mclr dfcmclr;
-};
-
-#define CCDC_DFT_TABLE_SIZE 16
-/*
- * Main Structure for vertical defect correction. Vertical defect
- * correction can correct up to 16 defects if defects less than 16
- * then pad the rest with 0
- */
-struct ccdc_vertical_dft {
- unsigned char ver_dft_en;
- unsigned char gen_dft_en;
- unsigned int saturation_ctl;
- struct ccdc_dft_corr_ctl dft_corr_ctl;
- struct ccdc_dft_corr_mem_ctl dft_corr_mem_ctl;
- int table_size;
- unsigned int dft_corr_horz[CCDC_DFT_TABLE_SIZE];
- unsigned int dft_corr_vert[CCDC_DFT_TABLE_SIZE];
- unsigned int dft_corr_sub1[CCDC_DFT_TABLE_SIZE];
- unsigned int dft_corr_sub2[CCDC_DFT_TABLE_SIZE];
- unsigned int dft_corr_sub3[CCDC_DFT_TABLE_SIZE];
-};
-
-struct ccdc_data_offset {
- unsigned char horz_offset;
- unsigned char vert_offset;
-};
-
-/*
- * Structure for CCDC configuration parameters for raw capture mode passed
- * by application
- */
-struct ccdc_config_params_raw {
- /* data shift to be applied before storing */
- enum ccdc_datasft datasft;
- /* data size value from 8 to 16 bits */
- enum ccdc_data_size data_sz;
- /* median filter for sdram */
- enum ccdc_mfilt1 mfilt1;
- enum ccdc_mfilt2 mfilt2;
- /* low pass filter enable/disable */
- unsigned char lpf_enable;
- /* Threshold of median filter */
- int med_filt_thres;
- /*
- * horz and vertical data offset. Appliable for defect correction
- * and lsc
- */
- struct ccdc_data_offset data_offset;
- /* Structure for Optional A-Law */
- struct ccdc_a_law alaw;
- /* Structure for Optical Black Clamp */
- struct ccdc_black_clamp blk_clamp;
- /* Structure for Black Compensation */
- struct ccdc_black_compensation blk_comp;
- /* struture for vertical Defect Correction Module Configuration */
- struct ccdc_vertical_dft vertical_dft;
- /* structure for color space converter Module Configuration */
- struct ccdc_csc csc;
- /* color patters for bayer capture */
- struct ccdc_col_pat col_pat_field0;
- struct ccdc_col_pat col_pat_field1;
-};
-
-#ifdef __KERNEL__
-#include <linux/io.h>
-
-#define CCDC_WIN_PAL {0, 0, 720, 576}
-#define CCDC_WIN_VGA {0, 0, 640, 480}
-
-struct ccdc_params_ycbcr {
- /* pixel format */
- enum ccdc_pixfmt pix_fmt;
- /* progressive or interlaced frame */
- enum ccdc_frmfmt frm_fmt;
- /* video window */
- struct v4l2_rect win;
- /* field id polarity */
- enum vpfe_pin_pol fid_pol;
- /* vertical sync polarity */
- enum vpfe_pin_pol vd_pol;
- /* horizontal sync polarity */
- enum vpfe_pin_pol hd_pol;
- /* enable BT.656 embedded sync mode */
- int bt656_enable;
- /* cb:y:cr:y or y:cb:y:cr in memory */
- enum ccdc_pixorder pix_order;
- /* interleaved or separated fields */
- enum ccdc_buftype buf_type;
-};
-
-/* Gain applied to Raw Bayer data */
-struct ccdc_gain {
- unsigned short r_ye;
- unsigned short gr_cy;
- unsigned short gb_g;
- unsigned short b_mg;
-};
-
-/* Structure for CCDC configuration parameters for raw capture mode */
-struct ccdc_params_raw {
- /* pixel format */
- enum ccdc_pixfmt pix_fmt;
- /* progressive or interlaced frame */
- enum ccdc_frmfmt frm_fmt;
- /* video window */
- struct v4l2_rect win;
- /* field id polarity */
- enum vpfe_pin_pol fid_pol;
- /* vertical sync polarity */
- enum vpfe_pin_pol vd_pol;
- /* horizontal sync polarity */
- enum vpfe_pin_pol hd_pol;
- /* interleaved or separated fields */
- enum ccdc_buftype buf_type;
- /* Gain values */
- struct ccdc_gain gain;
- /* offset */
- unsigned int ccdc_offset;
- /* horizontal flip enable */
- unsigned char horz_flip_enable;
- /*
- * enable to store the image in inverse order in memory
- * (bottom to top)
- */
- unsigned char image_invert_enable;
- /* Configurable part of raw data */
- struct ccdc_config_params_raw config_params;
-};
-
-#endif
-#endif /* DM355_CCDC_H */
diff --git a/ANDROID_3.4.5/include/media/davinci/dm644x_ccdc.h b/ANDROID_3.4.5/include/media/davinci/dm644x_ccdc.h
deleted file mode 100644
index 3e178eb5..00000000
--- a/ANDROID_3.4.5/include/media/davinci/dm644x_ccdc.h
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * Copyright (C) 2006-2009 Texas Instruments Inc
- *
- * 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
- */
-#ifndef _DM644X_CCDC_H
-#define _DM644X_CCDC_H
-#include <media/davinci/ccdc_types.h>
-#include <media/davinci/vpfe_types.h>
-
-/* enum for No of pixel per line to be avg. in Black Clamping*/
-enum ccdc_sample_length {
- CCDC_SAMPLE_1PIXELS,
- CCDC_SAMPLE_2PIXELS,
- CCDC_SAMPLE_4PIXELS,
- CCDC_SAMPLE_8PIXELS,
- CCDC_SAMPLE_16PIXELS
-};
-
-/* enum for No of lines in Black Clamping */
-enum ccdc_sample_line {
- CCDC_SAMPLE_1LINES,
- CCDC_SAMPLE_2LINES,
- CCDC_SAMPLE_4LINES,
- CCDC_SAMPLE_8LINES,
- CCDC_SAMPLE_16LINES
-};
-
-/* enum for Alaw gama width */
-enum ccdc_gama_width {
- CCDC_GAMMA_BITS_15_6,
- CCDC_GAMMA_BITS_14_5,
- CCDC_GAMMA_BITS_13_4,
- CCDC_GAMMA_BITS_12_3,
- CCDC_GAMMA_BITS_11_2,
- CCDC_GAMMA_BITS_10_1,
- CCDC_GAMMA_BITS_09_0
-};
-
-enum ccdc_data_size {
- CCDC_DATA_16BITS,
- CCDC_DATA_15BITS,
- CCDC_DATA_14BITS,
- CCDC_DATA_13BITS,
- CCDC_DATA_12BITS,
- CCDC_DATA_11BITS,
- CCDC_DATA_10BITS,
- CCDC_DATA_8BITS
-};
-
-/* structure for ALaw */
-struct ccdc_a_law {
- /* Enable/disable A-Law */
- unsigned char enable;
- /* Gama Width Input */
- enum ccdc_gama_width gama_wd;
-};
-
-/* structure for Black Clamping */
-struct ccdc_black_clamp {
- unsigned char enable;
- /* only if bClampEnable is TRUE */
- enum ccdc_sample_length sample_pixel;
- /* only if bClampEnable is TRUE */
- enum ccdc_sample_line sample_ln;
- /* only if bClampEnable is TRUE */
- unsigned short start_pixel;
- /* only if bClampEnable is TRUE */
- unsigned short sgain;
- /* only if bClampEnable is FALSE */
- unsigned short dc_sub;
-};
-
-/* structure for Black Level Compensation */
-struct ccdc_black_compensation {
- /* Constant value to subtract from Red component */
- char r;
- /* Constant value to subtract from Gr component */
- char gr;
- /* Constant value to subtract from Blue component */
- char b;
- /* Constant value to subtract from Gb component */
- char gb;
-};
-
-/* structure for fault pixel correction */
-struct ccdc_fault_pixel {
- /* Enable or Disable fault pixel correction */
- unsigned char enable;
- /* Number of fault pixel */
- unsigned short fp_num;
- /* Address of fault pixel table */
- unsigned int fpc_table_addr;
-};
-
-/* Structure for CCDC configuration parameters for raw capture mode passed
- * by application
- */
-struct ccdc_config_params_raw {
- /* data size value from 8 to 16 bits */
- enum ccdc_data_size data_sz;
- /* Structure for Optional A-Law */
- struct ccdc_a_law alaw;
- /* Structure for Optical Black Clamp */
- struct ccdc_black_clamp blk_clamp;
- /* Structure for Black Compensation */
- struct ccdc_black_compensation blk_comp;
- /* Structure for Fault Pixel Module Configuration */
- struct ccdc_fault_pixel fault_pxl;
-};
-
-
-#ifdef __KERNEL__
-#include <linux/io.h>
-/* Define to enable/disable video port */
-#define FP_NUM_BYTES 4
-/* Define for extra pixel/line and extra lines/frame */
-#define NUM_EXTRAPIXELS 8
-#define NUM_EXTRALINES 8
-
-/* settings for commonly used video formats */
-#define CCDC_WIN_PAL {0, 0, 720, 576}
-/* ntsc square pixel */
-#define CCDC_WIN_VGA {0, 0, (640 + NUM_EXTRAPIXELS), (480 + NUM_EXTRALINES)}
-
-/* Structure for CCDC configuration parameters for raw capture mode */
-struct ccdc_params_raw {
- /* pixel format */
- enum ccdc_pixfmt pix_fmt;
- /* progressive or interlaced frame */
- enum ccdc_frmfmt frm_fmt;
- /* video window */
- struct v4l2_rect win;
- /* field id polarity */
- enum vpfe_pin_pol fid_pol;
- /* vertical sync polarity */
- enum vpfe_pin_pol vd_pol;
- /* horizontal sync polarity */
- enum vpfe_pin_pol hd_pol;
- /* interleaved or separated fields */
- enum ccdc_buftype buf_type;
- /*
- * enable to store the image in inverse
- * order in memory(bottom to top)
- */
- unsigned char image_invert_enable;
- /* configurable paramaters */
- struct ccdc_config_params_raw config_params;
-};
-
-struct ccdc_params_ycbcr {
- /* pixel format */
- enum ccdc_pixfmt pix_fmt;
- /* progressive or interlaced frame */
- enum ccdc_frmfmt frm_fmt;
- /* video window */
- struct v4l2_rect win;
- /* field id polarity */
- enum vpfe_pin_pol fid_pol;
- /* vertical sync polarity */
- enum vpfe_pin_pol vd_pol;
- /* horizontal sync polarity */
- enum vpfe_pin_pol hd_pol;
- /* enable BT.656 embedded sync mode */
- int bt656_enable;
- /* cb:y:cr:y or y:cb:y:cr in memory */
- enum ccdc_pixorder pix_order;
- /* interleaved or separated fields */
- enum ccdc_buftype buf_type;
-};
-#endif
-#endif /* _DM644X_CCDC_H */
diff --git a/ANDROID_3.4.5/include/media/davinci/isif.h b/ANDROID_3.4.5/include/media/davinci/isif.h
deleted file mode 100644
index 7f3d76a4..00000000
--- a/ANDROID_3.4.5/include/media/davinci/isif.h
+++ /dev/null
@@ -1,531 +0,0 @@
-/*
- * Copyright (C) 2008-2009 Texas Instruments Inc
- *
- * 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
- *
- * isif header file
- */
-#ifndef _ISIF_H
-#define _ISIF_H
-
-#include <media/davinci/ccdc_types.h>
-#include <media/davinci/vpfe_types.h>
-
-/* isif float type S8Q8/U8Q8 */
-struct isif_float_8 {
- /* 8 bit integer part */
- __u8 integer;
- /* 8 bit decimal part */
- __u8 decimal;
-};
-
-/* isif float type U16Q16/S16Q16 */
-struct isif_float_16 {
- /* 16 bit integer part */
- __u16 integer;
- /* 16 bit decimal part */
- __u16 decimal;
-};
-
-/************************************************************************
- * Vertical Defect Correction parameters
- ***********************************************************************/
-/* Defect Correction (DFC) table entry */
-struct isif_vdfc_entry {
- /* vertical position of defect */
- __u16 pos_vert;
- /* horizontal position of defect */
- __u16 pos_horz;
- /*
- * Defect level of Vertical line defect position. This is subtracted
- * from the data at the defect position
- */
- __u8 level_at_pos;
- /*
- * Defect level of the pixels upper than the vertical line defect.
- * This is subtracted from the data
- */
- __u8 level_up_pixels;
- /*
- * Defect level of the pixels lower than the vertical line defect.
- * This is subtracted from the data
- */
- __u8 level_low_pixels;
-};
-
-#define ISIF_VDFC_TABLE_SIZE 8
-struct isif_dfc {
- /* enable vertical defect correction */
- __u8 en;
- /* Defect level subtraction. Just fed through if saturating */
-#define ISIF_VDFC_NORMAL 0
- /*
- * Defect level subtraction. Horizontal interpolation ((i-2)+(i+2))/2
- * if data saturating
- */
-#define ISIF_VDFC_HORZ_INTERPOL_IF_SAT 1
- /* Horizontal interpolation (((i-2)+(i+2))/2) */
-#define ISIF_VDFC_HORZ_INTERPOL 2
- /* one of the vertical defect correction modes above */
- __u8 corr_mode;
- /* 0 - whole line corrected, 1 - not pixels upper than the defect */
- __u8 corr_whole_line;
-#define ISIF_VDFC_NO_SHIFT 0
-#define ISIF_VDFC_SHIFT_1 1
-#define ISIF_VDFC_SHIFT_2 2
-#define ISIF_VDFC_SHIFT_3 3
-#define ISIF_VDFC_SHIFT_4 4
- /*
- * defect level shift value. level_at_pos, level_upper_pos,
- * and level_lower_pos can be shifted up by this value. Choose
- * one of the values above
- */
- __u8 def_level_shift;
- /* defect saturation level */
- __u16 def_sat_level;
- /* number of vertical defects. Max is ISIF_VDFC_TABLE_SIZE */
- __u16 num_vdefects;
- /* VDFC table ptr */
- struct isif_vdfc_entry table[ISIF_VDFC_TABLE_SIZE];
-};
-
-struct isif_horz_bclamp {
-
- /* Horizontal clamp disabled. Only vertical clamp value is subtracted */
-#define ISIF_HORZ_BC_DISABLE 0
- /*
- * Horizontal clamp value is calculated and subtracted from image data
- * along with vertical clamp value
- */
-#define ISIF_HORZ_BC_CLAMP_CALC_ENABLED 1
- /*
- * Horizontal clamp value calculated from previous image is subtracted
- * from image data along with vertical clamp value.
- */
-#define ISIF_HORZ_BC_CLAMP_NOT_UPDATED 2
- /* horizontal clamp mode. One of the values above */
- __u8 mode;
- /*
- * pixel value limit enable.
- * 0 - limit disabled
- * 1 - pixel value limited to 1023
- */
- __u8 clamp_pix_limit;
- /* Select Most left window for bc calculation */
-#define ISIF_SEL_MOST_LEFT_WIN 0
- /* Select Most right window for bc calculation */
-#define ISIF_SEL_MOST_RIGHT_WIN 1
- /* Select most left or right window for clamp val calculation */
- __u8 base_win_sel_calc;
- /* Window count per color for calculation. range 1-32 */
- __u8 win_count_calc;
- /* Window start position - horizontal for calculation. 0 - 8191 */
- __u16 win_start_h_calc;
- /* Window start position - vertical for calculation 0 - 8191 */
- __u16 win_start_v_calc;
-#define ISIF_HORZ_BC_SZ_H_2PIXELS 0
-#define ISIF_HORZ_BC_SZ_H_4PIXELS 1
-#define ISIF_HORZ_BC_SZ_H_8PIXELS 2
-#define ISIF_HORZ_BC_SZ_H_16PIXELS 3
- /* Width of the sample window in pixels for calculation */
- __u8 win_h_sz_calc;
-#define ISIF_HORZ_BC_SZ_V_32PIXELS 0
-#define ISIF_HORZ_BC_SZ_V_64PIXELS 1
-#define ISIF_HORZ_BC_SZ_V_128PIXELS 2
-#define ISIF_HORZ_BC_SZ_V_256PIXELS 3
- /* Height of the sample window in pixels for calculation */
- __u8 win_v_sz_calc;
-};
-
-/************************************************************************
- * Black Clamp parameters
- ***********************************************************************/
-struct isif_vert_bclamp {
- /* Reset value used is the clamp value calculated */
-#define ISIF_VERT_BC_USE_HORZ_CLAMP_VAL 0
- /* Reset value used is reset_clamp_val configured */
-#define ISIF_VERT_BC_USE_CONFIG_CLAMP_VAL 1
- /* No update, previous image value is used */
-#define ISIF_VERT_BC_NO_UPDATE 2
- /*
- * Reset value selector for vertical clamp calculation. Use one of
- * the above values
- */
- __u8 reset_val_sel;
- /* U8Q8. Line average coefficient used in vertical clamp calculation */
- __u8 line_ave_coef;
- /* Height of the optical black region for calculation */
- __u16 ob_v_sz_calc;
- /* Optical black region start position - horizontal. 0 - 8191 */
- __u16 ob_start_h;
- /* Optical black region start position - vertical 0 - 8191 */
- __u16 ob_start_v;
-};
-
-struct isif_black_clamp {
- /*
- * This offset value is added irrespective of the clamp enable status.
- * S13
- */
- __u16 dc_offset;
- /*
- * Enable black/digital clamp value to be subtracted from the image data
- */
- __u8 en;
- /*
- * black clamp mode. same/separate clamp for 4 colors
- * 0 - disable - same clamp value for all colors
- * 1 - clamp value calculated separately for all colors
- */
- __u8 bc_mode_color;
- /* Vrtical start position for bc subtraction */
- __u16 vert_start_sub;
- /* Black clamp for horizontal direction */
- struct isif_horz_bclamp horz;
- /* Black clamp for vertical direction */
- struct isif_vert_bclamp vert;
-};
-
-/*************************************************************************
-** Color Space Conversion (CSC)
-*************************************************************************/
-#define ISIF_CSC_NUM_COEFF 16
-struct isif_color_space_conv {
- /* Enable color space conversion */
- __u8 en;
- /*
- * csc coeffient table. S8Q5, M00 at index 0, M01 at index 1, and
- * so forth
- */
- struct isif_float_8 coeff[ISIF_CSC_NUM_COEFF];
-};
-
-
-/*************************************************************************
-** Black Compensation parameters
-*************************************************************************/
-struct isif_black_comp {
- /* Comp for Red */
- __s8 r_comp;
- /* Comp for Gr */
- __s8 gr_comp;
- /* Comp for Blue */
- __s8 b_comp;
- /* Comp for Gb */
- __s8 gb_comp;
-};
-
-/*************************************************************************
-** Gain parameters
-*************************************************************************/
-struct isif_gain {
- /* Gain for Red or ye */
- struct isif_float_16 r_ye;
- /* Gain for Gr or cy */
- struct isif_float_16 gr_cy;
- /* Gain for Gb or g */
- struct isif_float_16 gb_g;
- /* Gain for Blue or mg */
- struct isif_float_16 b_mg;
-};
-
-#define ISIF_LINEAR_TAB_SIZE 192
-/*************************************************************************
-** Linearization parameters
-*************************************************************************/
-struct isif_linearize {
- /* Enable or Disable linearization of data */
- __u8 en;
- /* Shift value applied */
- __u8 corr_shft;
- /* scale factor applied U11Q10 */
- struct isif_float_16 scale_fact;
- /* Size of the linear table */
- __u16 table[ISIF_LINEAR_TAB_SIZE];
-};
-
-/* Color patterns */
-#define ISIF_RED 0
-#define ISIF_GREEN_RED 1
-#define ISIF_GREEN_BLUE 2
-#define ISIF_BLUE 3
-struct isif_col_pat {
- __u8 olop;
- __u8 olep;
- __u8 elop;
- __u8 elep;
-};
-
-/*************************************************************************
-** Data formatter parameters
-*************************************************************************/
-struct isif_fmtplen {
- /*
- * number of program entries for SET0, range 1 - 16
- * when fmtmode is ISIF_SPLIT, 1 - 8 when fmtmode is
- * ISIF_COMBINE
- */
- __u16 plen0;
- /*
- * number of program entries for SET1, range 1 - 16
- * when fmtmode is ISIF_SPLIT, 1 - 8 when fmtmode is
- * ISIF_COMBINE
- */
- __u16 plen1;
- /**
- * number of program entries for SET2, range 1 - 16
- * when fmtmode is ISIF_SPLIT, 1 - 8 when fmtmode is
- * ISIF_COMBINE
- */
- __u16 plen2;
- /**
- * number of program entries for SET3, range 1 - 16
- * when fmtmode is ISIF_SPLIT, 1 - 8 when fmtmode is
- * ISIF_COMBINE
- */
- __u16 plen3;
-};
-
-struct isif_fmt_cfg {
-#define ISIF_SPLIT 0
-#define ISIF_COMBINE 1
- /* Split or combine or line alternate */
- __u8 fmtmode;
- /* enable or disable line alternating mode */
- __u8 ln_alter_en;
-#define ISIF_1LINE 0
-#define ISIF_2LINES 1
-#define ISIF_3LINES 2
-#define ISIF_4LINES 3
- /* Split/combine line number */
- __u8 lnum;
- /* Address increment Range 1 - 16 */
- __u8 addrinc;
-};
-
-struct isif_fmt_addr_ptr {
- /* Initial address */
- __u32 init_addr;
- /* output line number */
-#define ISIF_1STLINE 0
-#define ISIF_2NDLINE 1
-#define ISIF_3RDLINE 2
-#define ISIF_4THLINE 3
- __u8 out_line;
-};
-
-struct isif_fmtpgm_ap {
- /* program address pointer */
- __u8 pgm_aptr;
- /* program address increment or decrement */
- __u8 pgmupdt;
-};
-
-struct isif_data_formatter {
- /* Enable/Disable data formatter */
- __u8 en;
- /* data formatter configuration */
- struct isif_fmt_cfg cfg;
- /* Formatter program entries length */
- struct isif_fmtplen plen;
- /* first pixel in a line fed to formatter */
- __u16 fmtrlen;
- /* HD interval for output line. Only valid when split line */
- __u16 fmthcnt;
- /* formatter address pointers */
- struct isif_fmt_addr_ptr fmtaddr_ptr[16];
- /* program enable/disable */
- __u8 pgm_en[32];
- /* program address pointers */
- struct isif_fmtpgm_ap fmtpgm_ap[32];
-};
-
-struct isif_df_csc {
- /* Color Space Conversion confguration, 0 - csc, 1 - df */
- __u8 df_or_csc;
- /* csc configuration valid if df_or_csc is 0 */
- struct isif_color_space_conv csc;
- /* data formatter configuration valid if df_or_csc is 1 */
- struct isif_data_formatter df;
- /* start pixel in a line at the input */
- __u32 start_pix;
- /* number of pixels in input line */
- __u32 num_pixels;
- /* start line at the input */
- __u32 start_line;
- /* number of lines at the input */
- __u32 num_lines;
-};
-
-struct isif_gain_offsets_adj {
- /* Gain adjustment per color */
- struct isif_gain gain;
- /* Offset adjustment */
- __u16 offset;
- /* Enable or Disable Gain adjustment for SDRAM data */
- __u8 gain_sdram_en;
- /* Enable or Disable Gain adjustment for IPIPE data */
- __u8 gain_ipipe_en;
- /* Enable or Disable Gain adjustment for H3A data */
- __u8 gain_h3a_en;
- /* Enable or Disable Gain adjustment for SDRAM data */
- __u8 offset_sdram_en;
- /* Enable or Disable Gain adjustment for IPIPE data */
- __u8 offset_ipipe_en;
- /* Enable or Disable Gain adjustment for H3A data */
- __u8 offset_h3a_en;
-};
-
-struct isif_cul {
- /* Horizontal Cull pattern for odd lines */
- __u8 hcpat_odd;
- /* Horizontal Cull pattern for even lines */
- __u8 hcpat_even;
- /* Vertical Cull pattern */
- __u8 vcpat;
- /* Enable or disable lpf. Apply when cull is enabled */
- __u8 en_lpf;
-};
-
-struct isif_compress {
-#define ISIF_ALAW 0
-#define ISIF_DPCM 1
-#define ISIF_NO_COMPRESSION 2
- /* Compression Algorithm used */
- __u8 alg;
- /* Choose Predictor1 for DPCM compression */
-#define ISIF_DPCM_PRED1 0
- /* Choose Predictor2 for DPCM compression */
-#define ISIF_DPCM_PRED2 1
- /* Predictor for DPCM compression */
- __u8 pred;
-};
-
-/* all the stuff in this struct will be provided by userland */
-struct isif_config_params_raw {
- /* Linearization parameters for image sensor data input */
- struct isif_linearize linearize;
- /* Data formatter or CSC */
- struct isif_df_csc df_csc;
- /* Defect Pixel Correction (DFC) confguration */
- struct isif_dfc dfc;
- /* Black/Digital Clamp configuration */
- struct isif_black_clamp bclamp;
- /* Gain, offset adjustments */
- struct isif_gain_offsets_adj gain_offset;
- /* Culling */
- struct isif_cul culling;
- /* A-Law and DPCM compression options */
- struct isif_compress compress;
- /* horizontal offset for Gain/LSC/DFC */
- __u16 horz_offset;
- /* vertical offset for Gain/LSC/DFC */
- __u16 vert_offset;
- /* color pattern for field 0 */
- struct isif_col_pat col_pat_field0;
- /* color pattern for field 1 */
- struct isif_col_pat col_pat_field1;
-#define ISIF_NO_SHIFT 0
-#define ISIF_1BIT_SHIFT 1
-#define ISIF_2BIT_SHIFT 2
-#define ISIF_3BIT_SHIFT 3
-#define ISIF_4BIT_SHIFT 4
-#define ISIF_5BIT_SHIFT 5
-#define ISIF_6BIT_SHIFT 6
- /* Data shift applied before storing to SDRAM */
- __u8 data_shift;
- /* enable input test pattern generation */
- __u8 test_pat_gen;
-};
-
-#ifdef __KERNEL__
-struct isif_ycbcr_config {
- /* isif pixel format */
- enum ccdc_pixfmt pix_fmt;
- /* isif frame format */
- enum ccdc_frmfmt frm_fmt;
- /* ISIF crop window */
- struct v4l2_rect win;
- /* field polarity */
- enum vpfe_pin_pol fid_pol;
- /* interface VD polarity */
- enum vpfe_pin_pol vd_pol;
- /* interface HD polarity */
- enum vpfe_pin_pol hd_pol;
- /* isif pix order. Only used for ycbcr capture */
- enum ccdc_pixorder pix_order;
- /* isif buffer type. Only used for ycbcr capture */
- enum ccdc_buftype buf_type;
-};
-
-/* MSB of image data connected to sensor port */
-enum isif_data_msb {
- ISIF_BIT_MSB_15,
- ISIF_BIT_MSB_14,
- ISIF_BIT_MSB_13,
- ISIF_BIT_MSB_12,
- ISIF_BIT_MSB_11,
- ISIF_BIT_MSB_10,
- ISIF_BIT_MSB_9,
- ISIF_BIT_MSB_8,
- ISIF_BIT_MSB_7
-};
-
-enum isif_cfa_pattern {
- ISIF_CFA_PAT_MOSAIC,
- ISIF_CFA_PAT_STRIPE
-};
-
-struct isif_params_raw {
- /* isif pixel format */
- enum ccdc_pixfmt pix_fmt;
- /* isif frame format */
- enum ccdc_frmfmt frm_fmt;
- /* video window */
- struct v4l2_rect win;
- /* field polarity */
- enum vpfe_pin_pol fid_pol;
- /* interface VD polarity */
- enum vpfe_pin_pol vd_pol;
- /* interface HD polarity */
- enum vpfe_pin_pol hd_pol;
- /* buffer type. Applicable for interlaced mode */
- enum ccdc_buftype buf_type;
- /* Gain values */
- struct isif_gain gain;
- /* cfa pattern */
- enum isif_cfa_pattern cfa_pat;
- /* Data MSB position */
- enum isif_data_msb data_msb;
- /* Enable horizontal flip */
- unsigned char horz_flip_en;
- /* Enable image invert vertically */
- unsigned char image_invert_en;
-
- /* all the userland defined stuff*/
- struct isif_config_params_raw config_params;
-};
-
-enum isif_data_pack {
- ISIF_PACK_16BIT,
- ISIF_PACK_12BIT,
- ISIF_PACK_8BIT
-};
-
-#define ISIF_WIN_NTSC {0, 0, 720, 480}
-#define ISIF_WIN_VGA {0, 0, 640, 480}
-
-#endif
-#endif
diff --git a/ANDROID_3.4.5/include/media/davinci/vpbe.h b/ANDROID_3.4.5/include/media/davinci/vpbe.h
deleted file mode 100644
index 8bc1b3c0..00000000
--- a/ANDROID_3.4.5/include/media/davinci/vpbe.h
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * Copyright (C) 2010 Texas Instruments Inc
- *
- * 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.
- *
- * 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
- */
-#ifndef _VPBE_H
-#define _VPBE_H
-
-#include <linux/videodev2.h>
-#include <linux/i2c.h>
-
-#include <media/v4l2-dev.h>
-#include <media/v4l2-ioctl.h>
-#include <media/v4l2-device.h>
-#include <media/davinci/vpbe_osd.h>
-#include <media/davinci/vpbe_venc.h>
-#include <media/davinci/vpbe_types.h>
-
-/* OSD configuration info */
-struct osd_config_info {
- char module_name[32];
-};
-
-struct vpbe_output {
- struct v4l2_output output;
- /*
- * If output capabilities include dv_preset, list supported presets
- * below
- */
- char *subdev_name;
- /*
- * defualt_mode identifies the default timings set at the venc or
- * external encoder.
- */
- char *default_mode;
- /*
- * Fields below are used for supporting multiple modes. For example,
- * LCD panel might support different modes and they are listed here.
- * Similarly for supporting external encoders, lcd controller port
- * requires a set of non-standard timing values to be listed here for
- * each supported mode since venc is used in non-standard timing mode
- * for interfacing with external encoder similar to configuring lcd
- * panel timings
- */
- unsigned int num_modes;
- struct vpbe_enc_mode_info *modes;
- /*
- * Bus configuration goes here for external encoders. Some encoders
- * may require multiple interface types for each of the output. For
- * example, SD modes would use YCC8 where as HD mode would use YCC16.
- * Not sure if this is needed on a per mode basis instead of per
- * output basis. If per mode is needed, we may have to move this to
- * mode_info structure
- */
- enum v4l2_mbus_pixelcode if_params;
-};
-
-/* encoder configuration info */
-struct encoder_config_info {
- char module_name[32];
- /* Is this an i2c device ? */
- unsigned int is_i2c:1;
- /* i2c subdevice board info */
- struct i2c_board_info board_info;
-};
-
-/*amplifier configuration info */
-struct amp_config_info {
- char module_name[32];
- /* Is this an i2c device ? */
- unsigned int is_i2c:1;
- /* i2c subdevice board info */
- struct i2c_board_info board_info;
-};
-
-/* structure for defining vpbe display subsystem components */
-struct vpbe_config {
- char module_name[32];
- /* i2c bus adapter no */
- int i2c_adapter_id;
- struct osd_config_info osd;
- struct encoder_config_info venc;
- /* external encoder information goes here */
- int num_ext_encoders;
- struct encoder_config_info *ext_encoders;
- /* amplifier information goes here */
- struct amp_config_info *amp;
- int num_outputs;
- /* Order is venc outputs followed by LCD and then external encoders */
- struct vpbe_output *outputs;
-};
-
-struct vpbe_device;
-
-struct vpbe_device_ops {
- /* crop cap for the display */
- int (*g_cropcap)(struct vpbe_device *vpbe_dev,
- struct v4l2_cropcap *cropcap);
-
- /* Enumerate the outputs */
- int (*enum_outputs)(struct vpbe_device *vpbe_dev,
- struct v4l2_output *output);
-
- /* Set output to the given index */
- int (*set_output)(struct vpbe_device *vpbe_dev,
- int index);
-
- /* Get current output */
- unsigned int (*get_output)(struct vpbe_device *vpbe_dev);
-
- /* Set DV preset at current output */
- int (*s_dv_preset)(struct vpbe_device *vpbe_dev,
- struct v4l2_dv_preset *dv_preset);
-
- /* Get DV presets supported at the output */
- int (*g_dv_preset)(struct vpbe_device *vpbe_dev,
- struct v4l2_dv_preset *dv_preset);
-
- /* Enumerate the DV Presets supported at the output */
- int (*enum_dv_presets)(struct vpbe_device *vpbe_dev,
- struct v4l2_dv_enum_preset *preset_info);
-
- /* Set std at the output */
- int (*s_std)(struct vpbe_device *vpbe_dev, v4l2_std_id *std_id);
-
- /* Get the current std at the output */
- int (*g_std)(struct vpbe_device *vpbe_dev, v4l2_std_id *std_id);
-
- /* initialize the device */
- int (*initialize)(struct device *dev, struct vpbe_device *vpbe_dev);
-
- /* De-initialize the device */
- void (*deinitialize)(struct device *dev, struct vpbe_device *vpbe_dev);
-
- /* Get the current mode info */
- int (*get_mode_info)(struct vpbe_device *vpbe_dev,
- struct vpbe_enc_mode_info*);
-
- /*
- * Set the current mode in the encoder. Alternate way of setting
- * standard or DV preset or custom timings in the encoder
- */
- int (*set_mode)(struct vpbe_device *vpbe_dev,
- struct vpbe_enc_mode_info*);
- /* Power management operations */
- int (*suspend)(struct vpbe_device *vpbe_dev);
- int (*resume)(struct vpbe_device *vpbe_dev);
-};
-
-/* struct for vpbe device */
-struct vpbe_device {
- /* V4l2 device */
- struct v4l2_device v4l2_dev;
- /* vpbe dispay controller cfg */
- struct vpbe_config *cfg;
- /* parent device */
- struct device *pdev;
- /* external encoder v4l2 sub devices */
- struct v4l2_subdev **encoders;
- /* current encoder index */
- int current_sd_index;
- /* external amplifier v4l2 subdevice */
- struct v4l2_subdev *amp;
- struct mutex lock;
- /* device initialized */
- int initialized;
- /* vpbe dac clock */
- struct clk *dac_clk;
- /* osd_device pointer */
- struct osd_state *osd_device;
- /* venc device pointer */
- struct venc_platform_data *venc_device;
- /*
- * fields below are accessed by users of vpbe_device. Not the
- * ones above
- */
-
- /* current output */
- int current_out_index;
- /* lock used by caller to do atomic operation on vpbe device */
- /* current timings set in the controller */
- struct vpbe_enc_mode_info current_timings;
- /* venc sub device */
- struct v4l2_subdev *venc;
- /* device operations below */
- struct vpbe_device_ops ops;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/davinci/vpbe_display.h b/ANDROID_3.4.5/include/media/davinci/vpbe_display.h
deleted file mode 100644
index dbf6b376..00000000
--- a/ANDROID_3.4.5/include/media/davinci/vpbe_display.h
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.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 version 2.
- *
- * This program is distributed WITHOUT ANY WARRANTY of any
- * kind, whether express or implied; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
-#ifndef VPBE_DISPLAY_H
-#define VPBE_DISPLAY_H
-
-/* Header files */
-#include <linux/videodev2.h>
-#include <media/v4l2-common.h>
-#include <media/videobuf-dma-contig.h>
-#include <media/davinci/vpbe_types.h>
-#include <media/davinci/vpbe_osd.h>
-#include <media/davinci/vpbe.h>
-
-#define VPBE_DISPLAY_MAX_DEVICES 2
-
-enum vpbe_display_device_id {
- VPBE_DISPLAY_DEVICE_0,
- VPBE_DISPLAY_DEVICE_1
-};
-
-#define VPBE_DISPLAY_DRV_NAME "vpbe-display"
-
-#define VPBE_DISPLAY_MAJOR_RELEASE 1
-#define VPBE_DISPLAY_MINOR_RELEASE 0
-#define VPBE_DISPLAY_BUILD 1
-#define VPBE_DISPLAY_VERSION_CODE ((VPBE_DISPLAY_MAJOR_RELEASE << 16) | \
- (VPBE_DISPLAY_MINOR_RELEASE << 8) | \
- VPBE_DISPLAY_BUILD)
-
-#define VPBE_DISPLAY_VALID_FIELD(field) ((V4L2_FIELD_NONE == field) || \
- (V4L2_FIELD_ANY == field) || (V4L2_FIELD_INTERLACED == field))
-
-/* Exp ratio numerator and denominator constants */
-#define VPBE_DISPLAY_H_EXP_RATIO_N 9
-#define VPBE_DISPLAY_H_EXP_RATIO_D 8
-#define VPBE_DISPLAY_V_EXP_RATIO_N 6
-#define VPBE_DISPLAY_V_EXP_RATIO_D 5
-
-/* Zoom multiplication factor */
-#define VPBE_DISPLAY_ZOOM_4X 4
-#define VPBE_DISPLAY_ZOOM_2X 2
-
-/* Structures */
-struct display_layer_info {
- int enable;
- /* Layer ID used by Display Manager */
- enum osd_layer id;
- struct osd_layer_config config;
- enum osd_zoom_factor h_zoom;
- enum osd_zoom_factor v_zoom;
- enum osd_h_exp_ratio h_exp;
- enum osd_v_exp_ratio v_exp;
-};
-
-/* vpbe display object structure */
-struct vpbe_layer {
- /* number of buffers in fbuffers */
- unsigned int numbuffers;
- /* Pointer to the vpbe_display */
- struct vpbe_display *disp_dev;
- /* Pointer pointing to current v4l2_buffer */
- struct videobuf_buffer *cur_frm;
- /* Pointer pointing to next v4l2_buffer */
- struct videobuf_buffer *next_frm;
- /* videobuf specific parameters
- * Buffer queue used in video-buf
- */
- struct videobuf_queue buffer_queue;
- /* Queue of filled frames */
- struct list_head dma_queue;
- /* Used in video-buf */
- spinlock_t irqlock;
- /* V4l2 specific parameters */
- /* Identifies video device for this layer */
- struct video_device video_dev;
- /* This field keeps track of type of buffer exchange mechanism user
- * has selected
- */
- enum v4l2_memory memory;
- /* Used to keep track of state of the priority */
- struct v4l2_prio_state prio;
- /* Used to store pixel format */
- struct v4l2_pix_format pix_fmt;
- enum v4l2_field buf_field;
- /* Video layer configuration params */
- struct display_layer_info layer_info;
- /* vpbe specific parameters
- * enable window for display
- */
- unsigned char window_enable;
- /* number of open instances of the layer */
- unsigned int usrs;
- /* number of users performing IO */
- unsigned int io_usrs;
- /* Indicates id of the field which is being displayed */
- unsigned int field_id;
- /* Indicates whether streaming started */
- unsigned char started;
- /* Identifies device object */
- enum vpbe_display_device_id device_id;
- /* facilitation of ioctl ops lock by v4l2*/
- struct mutex opslock;
- u8 layer_first_int;
-};
-
-/* vpbe device structure */
-struct vpbe_display {
- /* layer specific parameters */
- /* lock for isr updates to buf layers*/
- spinlock_t dma_queue_lock;
- /* C-Plane offset from start of y-plane */
- unsigned int cbcr_ofst;
- struct vpbe_layer *dev[VPBE_DISPLAY_MAX_DEVICES];
- struct vpbe_device *vpbe_dev;
- struct osd_state *osd_device;
-};
-
-/* File handle structure */
-struct vpbe_fh {
- /* vpbe device structure */
- struct vpbe_display *disp_dev;
- /* pointer to layer object for opened device */
- struct vpbe_layer *layer;
- /* Indicates whether this file handle is doing IO */
- unsigned char io_allowed;
- /* Used to keep track priority of this instance */
- enum v4l2_priority prio;
-};
-
-struct buf_config_params {
- unsigned char min_numbuffers;
- unsigned char numbuffers[VPBE_DISPLAY_MAX_DEVICES];
- unsigned int min_bufsize[VPBE_DISPLAY_MAX_DEVICES];
- unsigned int layer_bufsize[VPBE_DISPLAY_MAX_DEVICES];
-};
-
-#endif /* VPBE_DISPLAY_H */
diff --git a/ANDROID_3.4.5/include/media/davinci/vpbe_osd.h b/ANDROID_3.4.5/include/media/davinci/vpbe_osd.h
deleted file mode 100644
index d7e397a4..00000000
--- a/ANDROID_3.4.5/include/media/davinci/vpbe_osd.h
+++ /dev/null
@@ -1,394 +0,0 @@
-/*
- * Copyright (C) 2007-2009 Texas Instruments Inc
- * Copyright (C) 2007 MontaVista Software, Inc.
- *
- * Andy Lowe (alowe@mvista.com), MontaVista Software
- * - Initial version
- * Murali Karicheri (mkaricheri@gmail.com), Texas Instruments Ltd.
- * - ported to sub device interface
- *
- * 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..
- *
- * 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
- *
- */
-#ifndef _OSD_H
-#define _OSD_H
-
-#include <media/davinci/vpbe_types.h>
-
-#define VPBE_OSD_SUBDEV_NAME "vpbe-osd"
-
-/**
- * enum osd_layer
- * @WIN_OSD0: On-Screen Display Window 0
- * @WIN_VID0: Video Window 0
- * @WIN_OSD1: On-Screen Display Window 1
- * @WIN_VID1: Video Window 1
- *
- * Description:
- * An enumeration of the osd display layers.
- */
-enum osd_layer {
- WIN_OSD0,
- WIN_VID0,
- WIN_OSD1,
- WIN_VID1,
-};
-
-/**
- * enum osd_win_layer
- * @OSDWIN_OSD0: On-Screen Display Window 0
- * @OSDWIN_OSD1: On-Screen Display Window 1
- *
- * Description:
- * An enumeration of the OSD Window layers.
- */
-enum osd_win_layer {
- OSDWIN_OSD0,
- OSDWIN_OSD1,
-};
-
-/**
- * enum osd_pix_format
- * @PIXFMT_1BPP: 1-bit-per-pixel bitmap
- * @PIXFMT_2BPP: 2-bits-per-pixel bitmap
- * @PIXFMT_4BPP: 4-bits-per-pixel bitmap
- * @PIXFMT_8BPP: 8-bits-per-pixel bitmap
- * @PIXFMT_RGB565: 16-bits-per-pixel RGB565
- * @PIXFMT_YCbCrI: YUV 4:2:2
- * @PIXFMT_RGB888: 24-bits-per-pixel RGB888
- * @PIXFMT_YCrCbI: YUV 4:2:2 with chroma swap
- * @PIXFMT_NV12: YUV 4:2:0 planar
- * @PIXFMT_OSD_ATTR: OSD Attribute Window pixel format (4bpp)
- *
- * Description:
- * An enumeration of the DaVinci pixel formats.
- */
-enum osd_pix_format {
- PIXFMT_1BPP = 0,
- PIXFMT_2BPP,
- PIXFMT_4BPP,
- PIXFMT_8BPP,
- PIXFMT_RGB565,
- PIXFMT_YCbCrI,
- PIXFMT_RGB888,
- PIXFMT_YCrCbI,
- PIXFMT_NV12,
- PIXFMT_OSD_ATTR,
-};
-
-/**
- * enum osd_h_exp_ratio
- * @H_EXP_OFF: no expansion (1/1)
- * @H_EXP_9_OVER_8: 9/8 expansion ratio
- * @H_EXP_3_OVER_2: 3/2 expansion ratio
- *
- * Description:
- * An enumeration of the available horizontal expansion ratios.
- */
-enum osd_h_exp_ratio {
- H_EXP_OFF,
- H_EXP_9_OVER_8,
- H_EXP_3_OVER_2,
-};
-
-/**
- * enum osd_v_exp_ratio
- * @V_EXP_OFF: no expansion (1/1)
- * @V_EXP_6_OVER_5: 6/5 expansion ratio
- *
- * Description:
- * An enumeration of the available vertical expansion ratios.
- */
-enum osd_v_exp_ratio {
- V_EXP_OFF,
- V_EXP_6_OVER_5,
-};
-
-/**
- * enum osd_zoom_factor
- * @ZOOM_X1: no zoom (x1)
- * @ZOOM_X2: x2 zoom
- * @ZOOM_X4: x4 zoom
- *
- * Description:
- * An enumeration of the available zoom factors.
- */
-enum osd_zoom_factor {
- ZOOM_X1,
- ZOOM_X2,
- ZOOM_X4,
-};
-
-/**
- * enum osd_clut
- * @ROM_CLUT: ROM CLUT
- * @RAM_CLUT: RAM CLUT
- *
- * Description:
- * An enumeration of the available Color Lookup Tables (CLUTs).
- */
-enum osd_clut {
- ROM_CLUT,
- RAM_CLUT,
-};
-
-/**
- * enum osd_rom_clut
- * @ROM_CLUT0: Macintosh CLUT
- * @ROM_CLUT1: CLUT from DM270 and prior devices
- *
- * Description:
- * An enumeration of the ROM Color Lookup Table (CLUT) options.
- */
-enum osd_rom_clut {
- ROM_CLUT0,
- ROM_CLUT1,
-};
-
-/**
- * enum osd_blending_factor
- * @OSD_0_VID_8: OSD pixels are fully transparent
- * @OSD_1_VID_7: OSD pixels contribute 1/8, video pixels contribute 7/8
- * @OSD_2_VID_6: OSD pixels contribute 2/8, video pixels contribute 6/8
- * @OSD_3_VID_5: OSD pixels contribute 3/8, video pixels contribute 5/8
- * @OSD_4_VID_4: OSD pixels contribute 4/8, video pixels contribute 4/8
- * @OSD_5_VID_3: OSD pixels contribute 5/8, video pixels contribute 3/8
- * @OSD_6_VID_2: OSD pixels contribute 6/8, video pixels contribute 2/8
- * @OSD_8_VID_0: OSD pixels are fully opaque
- *
- * Description:
- * An enumeration of the DaVinci pixel blending factor options.
- */
-enum osd_blending_factor {
- OSD_0_VID_8,
- OSD_1_VID_7,
- OSD_2_VID_6,
- OSD_3_VID_5,
- OSD_4_VID_4,
- OSD_5_VID_3,
- OSD_6_VID_2,
- OSD_8_VID_0,
-};
-
-/**
- * enum osd_blink_interval
- * @BLINK_X1: blink interval is 1 vertical refresh cycle
- * @BLINK_X2: blink interval is 2 vertical refresh cycles
- * @BLINK_X3: blink interval is 3 vertical refresh cycles
- * @BLINK_X4: blink interval is 4 vertical refresh cycles
- *
- * Description:
- * An enumeration of the DaVinci pixel blinking interval options.
- */
-enum osd_blink_interval {
- BLINK_X1,
- BLINK_X2,
- BLINK_X3,
- BLINK_X4,
-};
-
-/**
- * enum osd_cursor_h_width
- * @H_WIDTH_1: horizontal line width is 1 pixel
- * @H_WIDTH_4: horizontal line width is 4 pixels
- * @H_WIDTH_8: horizontal line width is 8 pixels
- * @H_WIDTH_12: horizontal line width is 12 pixels
- * @H_WIDTH_16: horizontal line width is 16 pixels
- * @H_WIDTH_20: horizontal line width is 20 pixels
- * @H_WIDTH_24: horizontal line width is 24 pixels
- * @H_WIDTH_28: horizontal line width is 28 pixels
- */
-enum osd_cursor_h_width {
- H_WIDTH_1,
- H_WIDTH_4,
- H_WIDTH_8,
- H_WIDTH_12,
- H_WIDTH_16,
- H_WIDTH_20,
- H_WIDTH_24,
- H_WIDTH_28,
-};
-
-/**
- * enum davinci_cursor_v_width
- * @V_WIDTH_1: vertical line width is 1 line
- * @V_WIDTH_2: vertical line width is 2 lines
- * @V_WIDTH_4: vertical line width is 4 lines
- * @V_WIDTH_6: vertical line width is 6 lines
- * @V_WIDTH_8: vertical line width is 8 lines
- * @V_WIDTH_10: vertical line width is 10 lines
- * @V_WIDTH_12: vertical line width is 12 lines
- * @V_WIDTH_14: vertical line width is 14 lines
- */
-enum osd_cursor_v_width {
- V_WIDTH_1,
- V_WIDTH_2,
- V_WIDTH_4,
- V_WIDTH_6,
- V_WIDTH_8,
- V_WIDTH_10,
- V_WIDTH_12,
- V_WIDTH_14,
-};
-
-/**
- * struct osd_cursor_config
- * @xsize: horizontal size in pixels
- * @ysize: vertical size in lines
- * @xpos: horizontal offset in pixels from the left edge of the display
- * @ypos: vertical offset in lines from the top of the display
- * @interlaced: Non-zero if the display is interlaced, or zero otherwise
- * @h_width: horizontal line width
- * @v_width: vertical line width
- * @clut: the CLUT selector (ROM or RAM) for the cursor color
- * @clut_index: an index into the CLUT for the cursor color
- *
- * Description:
- * A structure describing the configuration parameters of the hardware
- * rectangular cursor.
- */
-struct osd_cursor_config {
- unsigned xsize;
- unsigned ysize;
- unsigned xpos;
- unsigned ypos;
- int interlaced;
- enum osd_cursor_h_width h_width;
- enum osd_cursor_v_width v_width;
- enum osd_clut clut;
- unsigned char clut_index;
-};
-
-/**
- * struct osd_layer_config
- * @pixfmt: pixel format
- * @line_length: offset in bytes between start of each line in memory
- * @xsize: number of horizontal pixels displayed per line
- * @ysize: number of lines displayed
- * @xpos: horizontal offset in pixels from the left edge of the display
- * @ypos: vertical offset in lines from the top of the display
- * @interlaced: Non-zero if the display is interlaced, or zero otherwise
- *
- * Description:
- * A structure describing the configuration parameters of an On-Screen Display
- * (OSD) or video layer related to how the image is stored in memory.
- * @line_length must be a multiple of the cache line size (32 bytes).
- */
-struct osd_layer_config {
- enum osd_pix_format pixfmt;
- unsigned line_length;
- unsigned xsize;
- unsigned ysize;
- unsigned xpos;
- unsigned ypos;
- int interlaced;
-};
-
-/* parameters that apply on a per-window (OSD or video) basis */
-struct osd_window_state {
- int is_allocated;
- int is_enabled;
- unsigned long fb_base_phys;
- enum osd_zoom_factor h_zoom;
- enum osd_zoom_factor v_zoom;
- struct osd_layer_config lconfig;
-};
-
-/* parameters that apply on a per-OSD-window basis */
-struct osd_osdwin_state {
- enum osd_clut clut;
- enum osd_blending_factor blend;
- int colorkey_blending;
- unsigned colorkey;
- int rec601_attenuation;
- /* index is pixel value */
- unsigned char palette_map[16];
-};
-
-/* hardware rectangular cursor parameters */
-struct osd_cursor_state {
- int is_enabled;
- struct osd_cursor_config config;
-};
-
-struct osd_state;
-
-struct vpbe_osd_ops {
- int (*initialize)(struct osd_state *sd);
- int (*request_layer)(struct osd_state *sd, enum osd_layer layer);
- void (*release_layer)(struct osd_state *sd, enum osd_layer layer);
- int (*enable_layer)(struct osd_state *sd, enum osd_layer layer,
- int otherwin);
- void (*disable_layer)(struct osd_state *sd, enum osd_layer layer);
- int (*set_layer_config)(struct osd_state *sd, enum osd_layer layer,
- struct osd_layer_config *lconfig);
- void (*get_layer_config)(struct osd_state *sd, enum osd_layer layer,
- struct osd_layer_config *lconfig);
- void (*start_layer)(struct osd_state *sd, enum osd_layer layer,
- unsigned long fb_base_phys,
- unsigned long cbcr_ofst);
- void (*set_left_margin)(struct osd_state *sd, u32 val);
- void (*set_top_margin)(struct osd_state *sd, u32 val);
- void (*set_interpolation_filter)(struct osd_state *sd, int filter);
- int (*set_vid_expansion)(struct osd_state *sd,
- enum osd_h_exp_ratio h_exp,
- enum osd_v_exp_ratio v_exp);
- void (*get_vid_expansion)(struct osd_state *sd,
- enum osd_h_exp_ratio *h_exp,
- enum osd_v_exp_ratio *v_exp);
- void (*set_zoom)(struct osd_state *sd, enum osd_layer layer,
- enum osd_zoom_factor h_zoom,
- enum osd_zoom_factor v_zoom);
-};
-
-struct osd_state {
- enum vpbe_version vpbe_type;
- spinlock_t lock;
- struct device *dev;
- dma_addr_t osd_base_phys;
- unsigned long osd_base;
- unsigned long osd_size;
- /* 1-->the isr will toggle the VID0 ping-pong buffer */
- int pingpong;
- int interpolation_filter;
- int field_inversion;
- enum osd_h_exp_ratio osd_h_exp;
- enum osd_v_exp_ratio osd_v_exp;
- enum osd_h_exp_ratio vid_h_exp;
- enum osd_v_exp_ratio vid_v_exp;
- enum osd_clut backg_clut;
- unsigned backg_clut_index;
- enum osd_rom_clut rom_clut;
- int is_blinking;
- /* attribute window blinking enabled */
- enum osd_blink_interval blink;
- /* YCbCrI or YCrCbI */
- enum osd_pix_format yc_pixfmt;
- /* columns are Y, Cb, Cr */
- unsigned char clut_ram[256][3];
- struct osd_cursor_state cursor;
- /* OSD0, VID0, OSD1, VID1 */
- struct osd_window_state win[4];
- /* OSD0, OSD1 */
- struct osd_osdwin_state osdwin[2];
- /* OSD device Operations */
- struct vpbe_osd_ops ops;
-};
-
-struct osd_platform_data {
- enum vpbe_version vpbe_type;
- int field_inv_wa_enable;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/davinci/vpbe_types.h b/ANDROID_3.4.5/include/media/davinci/vpbe_types.h
deleted file mode 100644
index 727f5517..00000000
--- a/ANDROID_3.4.5/include/media/davinci/vpbe_types.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (C) 2010 Texas Instruments Inc
- *
- * 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.
- *
- * 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
- */
-#ifndef _VPBE_TYPES_H
-#define _VPBE_TYPES_H
-
-enum vpbe_version {
- VPBE_VERSION_1 = 1,
- VPBE_VERSION_2,
- VPBE_VERSION_3,
-};
-
-/* vpbe_timing_type - Timing types used in vpbe device */
-enum vpbe_enc_timings_type {
- VPBE_ENC_STD = 0x1,
- VPBE_ENC_DV_PRESET = 0x2,
- VPBE_ENC_CUSTOM_TIMINGS = 0x4,
- /* Used when set timings through FB device interface */
- VPBE_ENC_TIMINGS_INVALID = 0x8,
-};
-
-union vpbe_timings {
- v4l2_std_id std_id;
- unsigned int dv_preset;
-};
-
-/*
- * struct vpbe_enc_mode_info
- * @name: ptr to name string of the standard, "NTSC", "PAL" etc
- * @std: standard or non-standard mode. 1 - standard, 0 - nonstandard
- * @interlaced: 1 - interlaced, 0 - non interlaced/progressive
- * @xres: x or horizontal resolution of the display
- * @yres: y or vertical resolution of the display
- * @fps: frame per second
- * @left_margin: left margin of the display
- * @right_margin: right margin of the display
- * @upper_margin: upper margin of the display
- * @lower_margin: lower margin of the display
- * @hsync_len: h-sync length
- * @vsync_len: v-sync length
- * @flags: bit field: bit usage is documented below
- *
- * Description:
- * Structure holding timing and resolution information of a standard.
- * Used by vpbe_device to set required non-standard timing in the
- * venc when lcd controller output is connected to a external encoder.
- * A table of timings is maintained in vpbe device to set this in
- * venc when external encoder is connected to lcd controller output.
- * Encoder may provide a g_dv_timings() API to override these values
- * as needed.
- *
- * Notes
- * ------
- * if_type should be used only by encoder manager and encoder.
- * flags usage
- * b0 (LSB) - hsync polarity, 0 - negative, 1 - positive
- * b1 - vsync polarity, 0 - negative, 1 - positive
- * b2 - field id polarity, 0 - negative, 1 - positive
- */
-struct vpbe_enc_mode_info {
- unsigned char *name;
- enum vpbe_enc_timings_type timings_type;
- union vpbe_timings timings;
- unsigned int interlaced;
- unsigned int xres;
- unsigned int yres;
- struct v4l2_fract aspect;
- struct v4l2_fract fps;
- unsigned int left_margin;
- unsigned int right_margin;
- unsigned int upper_margin;
- unsigned int lower_margin;
- unsigned int hsync_len;
- unsigned int vsync_len;
- unsigned int flags;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/davinci/vpbe_venc.h b/ANDROID_3.4.5/include/media/davinci/vpbe_venc.h
deleted file mode 100644
index 6b57334f..00000000
--- a/ANDROID_3.4.5/include/media/davinci/vpbe_venc.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2010 Texas Instruments Inc
- *
- * 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.
- *
- * 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
- */
-#ifndef _VPBE_VENC_H
-#define _VPBE_VENC_H
-
-#include <media/v4l2-subdev.h>
-#include <media/davinci/vpbe_types.h>
-
-#define VPBE_VENC_SUBDEV_NAME "vpbe-venc"
-
-/* venc events */
-#define VENC_END_OF_FRAME BIT(0)
-#define VENC_FIRST_FIELD BIT(1)
-#define VENC_SECOND_FIELD BIT(2)
-
-struct venc_platform_data {
- enum vpbe_version venc_type;
- int (*setup_pinmux)(enum v4l2_mbus_pixelcode if_type,
- int field);
- int (*setup_clock)(enum vpbe_enc_timings_type type,
- unsigned int mode);
- int (*setup_if_config)(enum v4l2_mbus_pixelcode pixcode);
- /* Number of LCD outputs supported */
- int num_lcd_outputs;
- struct vpbe_if_params *lcd_if_params;
-};
-
-enum venc_ioctls {
- VENC_GET_FLD = 1,
-};
-
-/* exported functions */
-struct v4l2_subdev *venc_sub_dev_init(struct v4l2_device *v4l2_dev,
- const char *venc_name);
-#endif
diff --git a/ANDROID_3.4.5/include/media/davinci/vpfe_capture.h b/ANDROID_3.4.5/include/media/davinci/vpfe_capture.h
deleted file mode 100644
index cc973ed8..00000000
--- a/ANDROID_3.4.5/include/media/davinci/vpfe_capture.h
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * Copyright (C) 2008-2009 Texas Instruments Inc
- *
- * 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
- */
-
-#ifndef _VPFE_CAPTURE_H
-#define _VPFE_CAPTURE_H
-
-#ifdef __KERNEL__
-
-/* Header files */
-#include <media/v4l2-dev.h>
-#include <linux/videodev2.h>
-#include <linux/clk.h>
-#include <linux/i2c.h>
-#include <media/v4l2-ioctl.h>
-#include <media/v4l2-device.h>
-#include <media/videobuf-dma-contig.h>
-#include <media/davinci/vpfe_types.h>
-
-#define VPFE_CAPTURE_NUM_DECODERS 5
-
-/* Macros */
-#define VPFE_MAJOR_RELEASE 0
-#define VPFE_MINOR_RELEASE 0
-#define VPFE_BUILD 1
-#define VPFE_CAPTURE_VERSION_CODE ((VPFE_MAJOR_RELEASE << 16) | \
- (VPFE_MINOR_RELEASE << 8) | \
- VPFE_BUILD)
-
-#define CAPTURE_DRV_NAME "vpfe-capture"
-
-struct vpfe_pixel_format {
- struct v4l2_fmtdesc fmtdesc;
- /* bytes per pixel */
- int bpp;
-};
-
-struct vpfe_std_info {
- int active_pixels;
- int active_lines;
- /* current frame format */
- int frame_format;
-};
-
-struct vpfe_route {
- u32 input;
- u32 output;
-};
-
-struct vpfe_subdev_info {
- /* Sub device name */
- char name[32];
- /* Sub device group id */
- int grp_id;
- /* Number of inputs supported */
- int num_inputs;
- /* inputs available at the sub device */
- struct v4l2_input *inputs;
- /* Sub dev routing information for each input */
- struct vpfe_route *routes;
- /* check if sub dev supports routing */
- int can_route;
- /* ccdc bus/interface configuration */
- struct vpfe_hw_if_param ccdc_if_params;
- /* i2c subdevice board info */
- struct i2c_board_info board_info;
-};
-
-struct vpfe_config {
- /* Number of sub devices connected to vpfe */
- int num_subdevs;
- /* i2c bus adapter no */
- int i2c_adapter_id;
- /* information about each subdev */
- struct vpfe_subdev_info *sub_devs;
- /* evm card info */
- char *card_name;
- /* ccdc name */
- char *ccdc;
- /* vpfe clock */
- struct clk *vpssclk;
- struct clk *slaveclk;
- /* Function for Clearing the interrupt */
- void (*clr_intr)(int vdint);
-};
-
-struct vpfe_device {
- /* V4l2 specific parameters */
- /* Identifies video device for this channel */
- struct video_device *video_dev;
- /* sub devices */
- struct v4l2_subdev **sd;
- /* vpfe cfg */
- struct vpfe_config *cfg;
- /* V4l2 device */
- struct v4l2_device v4l2_dev;
- /* parent device */
- struct device *pdev;
- /* Used to keep track of state of the priority */
- struct v4l2_prio_state prio;
- /* number of open instances of the channel */
- u32 usrs;
- /* Indicates id of the field which is being displayed */
- u32 field_id;
- /* flag to indicate whether decoder is initialized */
- u8 initialized;
- /* current interface type */
- struct vpfe_hw_if_param vpfe_if_params;
- /* ptr to currently selected sub device */
- struct vpfe_subdev_info *current_subdev;
- /* current input at the sub device */
- int current_input;
- /* Keeps track of the information about the standard */
- struct vpfe_std_info std_info;
- /* std index into std table */
- int std_index;
- /* CCDC IRQs used when CCDC/ISIF output to SDRAM */
- unsigned int ccdc_irq0;
- unsigned int ccdc_irq1;
- /* number of buffers in fbuffers */
- u32 numbuffers;
- /* List of buffer pointers for storing frames */
- u8 *fbuffers[VIDEO_MAX_FRAME];
- /* Pointer pointing to current v4l2_buffer */
- struct videobuf_buffer *cur_frm;
- /* Pointer pointing to next v4l2_buffer */
- struct videobuf_buffer *next_frm;
- /*
- * This field keeps track of type of buffer exchange mechanism
- * user has selected
- */
- enum v4l2_memory memory;
- /* Used to store pixel format */
- struct v4l2_format fmt;
- /*
- * used when IMP is chained to store the crop window which
- * is different from the image window
- */
- struct v4l2_rect crop;
- /* Buffer queue used in video-buf */
- struct videobuf_queue buffer_queue;
- /* Queue of filled frames */
- struct list_head dma_queue;
- /* Used in video-buf */
- spinlock_t irqlock;
- /* IRQ lock for DMA queue */
- spinlock_t dma_queue_lock;
- /* lock used to access this structure */
- struct mutex lock;
- /* number of users performing IO */
- u32 io_usrs;
- /* Indicates whether streaming started */
- u8 started;
- /*
- * offset where second field starts from the starting of the
- * buffer for field separated YCbCr formats
- */
- u32 field_off;
-};
-
-/* File handle structure */
-struct vpfe_fh {
- struct vpfe_device *vpfe_dev;
- /* Indicates whether this file handle is doing IO */
- u8 io_allowed;
- /* Used to keep track priority of this instance */
- enum v4l2_priority prio;
-};
-
-struct vpfe_config_params {
- u8 min_numbuffers;
- u8 numbuffers;
- u32 min_bufsize;
- u32 device_bufsize;
-};
-
-#endif /* End of __KERNEL__ */
-/**
- * VPFE_CMD_S_CCDC_RAW_PARAMS - EXPERIMENTAL IOCTL to set raw capture params
- * This can be used to configure modules such as defect pixel correction,
- * color space conversion, culling etc. This is an experimental ioctl that
- * will change in future kernels. So use this ioctl with care !
- * TODO: This is to be split into multiple ioctls and also explore the
- * possibility of extending the v4l2 api to include this
- **/
-#define VPFE_CMD_S_CCDC_RAW_PARAMS _IOW('V', BASE_VIDIOC_PRIVATE + 1, \
- void *)
-#endif /* _DAVINCI_VPFE_H */
diff --git a/ANDROID_3.4.5/include/media/davinci/vpfe_types.h b/ANDROID_3.4.5/include/media/davinci/vpfe_types.h
deleted file mode 100644
index 76fb74ba..00000000
--- a/ANDROID_3.4.5/include/media/davinci/vpfe_types.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2008-2009 Texas Instruments Inc
- *
- * 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
- */
-#ifndef _VPFE_TYPES_H
-#define _VPFE_TYPES_H
-
-#ifdef __KERNEL__
-
-enum vpfe_pin_pol {
- VPFE_PINPOL_POSITIVE,
- VPFE_PINPOL_NEGATIVE
-};
-
-enum vpfe_hw_if_type {
- /* BT656 - 8 bit */
- VPFE_BT656,
- /* BT1120 - 16 bit */
- VPFE_BT1120,
- /* Raw Bayer */
- VPFE_RAW_BAYER,
- /* YCbCr - 8 bit with external sync */
- VPFE_YCBCR_SYNC_8,
- /* YCbCr - 16 bit with external sync */
- VPFE_YCBCR_SYNC_16,
- /* BT656 - 10 bit */
- VPFE_BT656_10BIT
-};
-
-/* interface description */
-struct vpfe_hw_if_param {
- enum vpfe_hw_if_type if_type;
- enum vpfe_pin_pol hdpol;
- enum vpfe_pin_pol vdpol;
-};
-
-#endif
-#endif
diff --git a/ANDROID_3.4.5/include/media/davinci/vpif_types.h b/ANDROID_3.4.5/include/media/davinci/vpif_types.h
deleted file mode 100644
index bd8217c2..00000000
--- a/ANDROID_3.4.5/include/media/davinci/vpif_types.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (C) 2011 Texas Instruments Inc
- *
- * 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.
- *
- * 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
- */
-#ifndef _VPIF_TYPES_H
-#define _VPIF_TYPES_H
-
-#include <linux/i2c.h>
-
-#define VPIF_CAPTURE_MAX_CHANNELS 2
-
-enum vpif_if_type {
- VPIF_IF_BT656,
- VPIF_IF_BT1120,
- VPIF_IF_RAW_BAYER
-};
-
-struct vpif_interface {
- enum vpif_if_type if_type;
- unsigned hd_pol:1;
- unsigned vd_pol:1;
- unsigned fid_pol:1;
-};
-
-struct vpif_subdev_info {
- const char *name;
- struct i2c_board_info board_info;
- u32 input;
- u32 output;
- unsigned can_route:1;
- struct vpif_interface vpif_if;
-};
-
-struct vpif_display_config {
- int (*set_clock)(int, int);
- struct vpif_subdev_info *subdevinfo;
- int subdev_count;
- const char **output;
- int output_count;
- const char *card_name;
-};
-
-struct vpif_input {
- struct v4l2_input input;
- const char *subdev_name;
-};
-
-struct vpif_capture_chan_config {
- const struct vpif_input *inputs;
- int input_count;
-};
-
-struct vpif_capture_config {
- int (*setup_input_channel_mode)(int);
- int (*setup_input_path)(int, const char *);
- struct vpif_capture_chan_config chan_config[VPIF_CAPTURE_MAX_CHANNELS];
- struct vpif_subdev_info *subdev_info;
- int subdev_count;
- const char *card_name;
-};
-#endif /* _VPIF_TYPES_H */
diff --git a/ANDROID_3.4.5/include/media/davinci/vpss.h b/ANDROID_3.4.5/include/media/davinci/vpss.h
deleted file mode 100644
index b586495b..00000000
--- a/ANDROID_3.4.5/include/media/davinci/vpss.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright (C) 2009 Texas Instruments Inc
- *
- * 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
- *
- * vpss - video processing subsystem module header file.
- *
- * Include this header file if a driver needs to configure vpss system
- * module. It exports a set of library functions for video drivers to
- * configure vpss system module functions such as clock enable/disable,
- * vpss interrupt mux to arm, and other common vpss system module
- * functions.
- */
-#ifndef _VPSS_H
-#define _VPSS_H
-
-/* selector for ccdc input selection on DM355 */
-enum vpss_ccdc_source_sel {
- VPSS_CCDCIN,
- VPSS_HSSIIN,
- VPSS_PGLPBK, /* for DM365 only */
- VPSS_CCDCPG /* for DM365 only */
-};
-
-struct vpss_sync_pol {
- unsigned int ccdpg_hdpol:1;
- unsigned int ccdpg_vdpol:1;
-};
-
-struct vpss_pg_frame_size {
- short hlpfr;
- short pplen;
-};
-
-/* Used for enable/disable VPSS Clock */
-enum vpss_clock_sel {
- /* DM355/DM365 */
- VPSS_CCDC_CLOCK,
- VPSS_IPIPE_CLOCK,
- VPSS_H3A_CLOCK,
- VPSS_CFALD_CLOCK,
- /*
- * When using VPSS_VENC_CLOCK_SEL in vpss_enable_clock() api
- * following applies:-
- * en = 0 selects ENC_CLK
- * en = 1 selects ENC_CLK/2
- */
- VPSS_VENC_CLOCK_SEL,
- VPSS_VPBE_CLOCK,
- /* DM365 only clocks */
- VPSS_IPIPEIF_CLOCK,
- VPSS_RSZ_CLOCK,
- VPSS_BL_CLOCK,
- /*
- * When using VPSS_PCLK_INTERNAL in vpss_enable_clock() api
- * following applies:-
- * en = 0 disable internal PCLK
- * en = 1 enables internal PCLK
- */
- VPSS_PCLK_INTERNAL,
- /*
- * When using VPSS_PSYNC_CLOCK_SEL in vpss_enable_clock() api
- * following applies:-
- * en = 0 enables MMR clock
- * en = 1 enables VPSS clock
- */
- VPSS_PSYNC_CLOCK_SEL,
- VPSS_LDC_CLOCK_SEL,
- VPSS_OSD_CLOCK_SEL,
- VPSS_FDIF_CLOCK,
- VPSS_LDC_CLOCK
-};
-
-/* select input to ccdc on dm355 */
-int vpss_select_ccdc_source(enum vpss_ccdc_source_sel src_sel);
-/* enable/disable a vpss clock, 0 - success, -1 - failure */
-int vpss_enable_clock(enum vpss_clock_sel clock_sel, int en);
-/* set sync polarity, only for DM365*/
-void dm365_vpss_set_sync_pol(struct vpss_sync_pol);
-/* set the PG_FRAME_SIZE register, only for DM365 */
-void dm365_vpss_set_pg_frame_size(struct vpss_pg_frame_size);
-
-/* wbl reset for dm644x */
-enum vpss_wbl_sel {
- VPSS_PCR_AEW_WBL_0 = 16,
- VPSS_PCR_AF_WBL_0,
- VPSS_PCR_RSZ4_WBL_0,
- VPSS_PCR_RSZ3_WBL_0,
- VPSS_PCR_RSZ2_WBL_0,
- VPSS_PCR_RSZ1_WBL_0,
- VPSS_PCR_PREV_WBL_0,
- VPSS_PCR_CCDC_WBL_O,
-};
-/* clear wbl overflow flag for DM6446 */
-int vpss_clear_wbl_overflow(enum vpss_wbl_sel wbl_sel);
-#endif
diff --git a/ANDROID_3.4.5/include/media/gpio-ir-recv.h b/ANDROID_3.4.5/include/media/gpio-ir-recv.h
deleted file mode 100644
index 67797bf5..00000000
--- a/ANDROID_3.4.5/include/media/gpio-ir-recv.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright (c) 2012, Code Aurora Forum. 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 version 2 and
- * only version 2 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.
- */
-
-#ifndef __GPIO_IR_RECV_H__
-#define __GPIO_IR_RECV_H__
-
-struct gpio_ir_recv_platform_data {
- int gpio_nr;
- bool active_low;
-};
-
-#endif /* __GPIO_IR_RECV_H__ */
-
diff --git a/ANDROID_3.4.5/include/media/i2c-addr.h b/ANDROID_3.4.5/include/media/i2c-addr.h
deleted file mode 100644
index 5d0f5605..00000000
--- a/ANDROID_3.4.5/include/media/i2c-addr.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * V4L I2C address list
- *
- *
- * Copyright (C) 2006 Mauro Carvalho Chehab <mchehab@infradead.org>
- * Based on a previous mapping by
- * Ralph Metzler (rjkm@thp.uni-koeln.de)
- * Gerd Knorr <kraxel@goldbach.in-berlin.de>
- *
- */
-
-/* bttv address list */
-#define I2C_ADDR_TSA5522 0xc2
-#define I2C_ADDR_TDA7432 0x8a
-#define I2C_ADDR_TDA8425 0x82
-#define I2C_ADDR_TDA9840 0x84
-#define I2C_ADDR_TDA9850 0xb6 /* also used by 9855,9873 */
-#define I2C_ADDR_TDA9874 0xb0 /* also used by 9875 */
-#define I2C_ADDR_TDA9875 0xb0
-#define I2C_ADDR_HAUPEE 0xa0
-#define I2C_ADDR_STBEE 0xae
-#define I2C_ADDR_VHX 0xc0
-#define I2C_ADDR_MSP3400 0x80
-#define I2C_ADDR_MSP3400_ALT 0x88
-#define I2C_ADDR_TEA6300 0x80 /* also used by 6320 */
-#define I2C_ADDR_DPL3518 0x84
-#define I2C_ADDR_TDA9887 0x86
-
-/*
- * i2c bus addresses for the chips supported by tvaudio.c
- */
-
-#define I2C_ADDR_TDA8425 0x82
-#define I2C_ADDR_TDA9840 0x84 /* also used by TA8874Z */
-#define I2C_ADDR_TDA985x_L 0xb4 /* also used by 9873 */
-#define I2C_ADDR_TDA985x_H 0xb6
-#define I2C_ADDR_TDA9874 0xb0 /* also used by 9875 */
-
-#define I2C_ADDR_TEA6300 0x80 /* also used by 6320 */
-#define I2C_ADDR_TEA6420 0x98
-
-#define I2C_ADDR_PIC16C54 0x96 /* PV951 */
diff --git a/ANDROID_3.4.5/include/media/ir-kbd-i2c.h b/ANDROID_3.4.5/include/media/ir-kbd-i2c.h
deleted file mode 100644
index 768aa779..00000000
--- a/ANDROID_3.4.5/include/media/ir-kbd-i2c.h
+++ /dev/null
@@ -1,52 +0,0 @@
-#ifndef _IR_I2C
-#define _IR_I2C
-
-#include <media/rc-core.h>
-
-#define DEFAULT_POLLING_INTERVAL 100 /* ms */
-
-struct IR_i2c;
-
-struct IR_i2c {
- char *ir_codes;
- struct i2c_client *c;
- struct rc_dev *rc;
-
- /* Used to avoid fast repeating */
- unsigned char old;
-
- u32 polling_interval; /* in ms */
-
- struct delayed_work work;
- char name[32];
- char phys[32];
- int (*get_key)(struct IR_i2c*, u32*, u32*);
-};
-
-enum ir_kbd_get_key_fn {
- IR_KBD_GET_KEY_CUSTOM = 0,
- IR_KBD_GET_KEY_PIXELVIEW,
- IR_KBD_GET_KEY_HAUP,
- IR_KBD_GET_KEY_KNC1,
- IR_KBD_GET_KEY_FUSIONHDTV,
- IR_KBD_GET_KEY_HAUP_XVR,
- IR_KBD_GET_KEY_AVERMEDIA_CARDBUS,
-};
-
-/* Can be passed when instantiating an ir_video i2c device */
-struct IR_i2c_init_data {
- char *ir_codes;
- const char *name;
- u64 type; /* RC_TYPE_RC5, etc */
- u32 polling_interval; /* 0 means DEFAULT_POLLING_INTERVAL */
-
- /*
- * Specify either a function pointer or a value indicating one of
- * ir_kbd_i2c's internal get_key functions
- */
- int (*get_key)(struct IR_i2c*, u32*, u32*);
- enum ir_kbd_get_key_fn internal_get_key_func;
-
- struct rc_dev *rc_dev;
-};
-#endif
diff --git a/ANDROID_3.4.5/include/media/lirc.h b/ANDROID_3.4.5/include/media/lirc.h
deleted file mode 100644
index 4b3ab296..00000000
--- a/ANDROID_3.4.5/include/media/lirc.h
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * lirc.h - linux infrared remote control header file
- * last modified 2010/07/13 by Jarod Wilson
- */
-
-#ifndef _LINUX_LIRC_H
-#define _LINUX_LIRC_H
-
-#include <linux/types.h>
-#include <linux/ioctl.h>
-
-#define PULSE_BIT 0x01000000
-#define PULSE_MASK 0x00FFFFFF
-
-#define LIRC_MODE2_SPACE 0x00000000
-#define LIRC_MODE2_PULSE 0x01000000
-#define LIRC_MODE2_FREQUENCY 0x02000000
-#define LIRC_MODE2_TIMEOUT 0x03000000
-
-#define LIRC_VALUE_MASK 0x00FFFFFF
-#define LIRC_MODE2_MASK 0xFF000000
-
-#define LIRC_SPACE(val) (((val)&LIRC_VALUE_MASK) | LIRC_MODE2_SPACE)
-#define LIRC_PULSE(val) (((val)&LIRC_VALUE_MASK) | LIRC_MODE2_PULSE)
-#define LIRC_FREQUENCY(val) (((val)&LIRC_VALUE_MASK) | LIRC_MODE2_FREQUENCY)
-#define LIRC_TIMEOUT(val) (((val)&LIRC_VALUE_MASK) | LIRC_MODE2_TIMEOUT)
-
-#define LIRC_VALUE(val) ((val)&LIRC_VALUE_MASK)
-#define LIRC_MODE2(val) ((val)&LIRC_MODE2_MASK)
-
-#define LIRC_IS_SPACE(val) (LIRC_MODE2(val) == LIRC_MODE2_SPACE)
-#define LIRC_IS_PULSE(val) (LIRC_MODE2(val) == LIRC_MODE2_PULSE)
-#define LIRC_IS_FREQUENCY(val) (LIRC_MODE2(val) == LIRC_MODE2_FREQUENCY)
-#define LIRC_IS_TIMEOUT(val) (LIRC_MODE2(val) == LIRC_MODE2_TIMEOUT)
-
-/* used heavily by lirc userspace */
-#define lirc_t int
-
-/*** 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_LIRCCODE 0x00000010
-
-
-#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_LIRCCODE LIRC_MODE2SEND(LIRC_MODE_LIRCCODE)
-
-#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_LIRCCODE LIRC_MODE2REC(LIRC_MODE_LIRCCODE)
-
-#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_SET_REC_TIMEOUT 0x10000000
-#define LIRC_CAN_SET_REC_FILTER 0x08000000
-
-#define LIRC_CAN_MEASURE_CARRIER 0x02000000
-#define LIRC_CAN_USE_WIDEBAND_RECEIVER 0x04000000
-
-#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, __u32)
-
-#define LIRC_GET_SEND_MODE _IOR('i', 0x00000001, __u32)
-#define LIRC_GET_REC_MODE _IOR('i', 0x00000002, __u32)
-#define LIRC_GET_SEND_CARRIER _IOR('i', 0x00000003, __u32)
-#define LIRC_GET_REC_CARRIER _IOR('i', 0x00000004, __u32)
-#define LIRC_GET_SEND_DUTY_CYCLE _IOR('i', 0x00000005, __u32)
-#define LIRC_GET_REC_DUTY_CYCLE _IOR('i', 0x00000006, __u32)
-#define LIRC_GET_REC_RESOLUTION _IOR('i', 0x00000007, __u32)
-
-#define LIRC_GET_MIN_TIMEOUT _IOR('i', 0x00000008, __u32)
-#define LIRC_GET_MAX_TIMEOUT _IOR('i', 0x00000009, __u32)
-
-#define LIRC_GET_MIN_FILTER_PULSE _IOR('i', 0x0000000a, __u32)
-#define LIRC_GET_MAX_FILTER_PULSE _IOR('i', 0x0000000b, __u32)
-#define LIRC_GET_MIN_FILTER_SPACE _IOR('i', 0x0000000c, __u32)
-#define LIRC_GET_MAX_FILTER_SPACE _IOR('i', 0x0000000d, __u32)
-
-/* code length in bits, currently only for LIRC_MODE_LIRCCODE */
-#define LIRC_GET_LENGTH _IOR('i', 0x0000000f, __u32)
-
-#define LIRC_SET_SEND_MODE _IOW('i', 0x00000011, __u32)
-#define LIRC_SET_REC_MODE _IOW('i', 0x00000012, __u32)
-/* Note: these can reset the according pulse_width */
-#define LIRC_SET_SEND_CARRIER _IOW('i', 0x00000013, __u32)
-#define LIRC_SET_REC_CARRIER _IOW('i', 0x00000014, __u32)
-#define LIRC_SET_SEND_DUTY_CYCLE _IOW('i', 0x00000015, __u32)
-#define LIRC_SET_REC_DUTY_CYCLE _IOW('i', 0x00000016, __u32)
-#define LIRC_SET_TRANSMITTER_MASK _IOW('i', 0x00000017, __u32)
-
-/*
- * when a timeout != 0 is set the driver will send a
- * LIRC_MODE2_TIMEOUT data packet, otherwise LIRC_MODE2_TIMEOUT is
- * never sent, timeout is disabled by default
- */
-#define LIRC_SET_REC_TIMEOUT _IOW('i', 0x00000018, __u32)
-
-/* 1 enables, 0 disables timeout reports in MODE2 */
-#define LIRC_SET_REC_TIMEOUT_REPORTS _IOW('i', 0x00000019, __u32)
-
-/*
- * pulses shorter than this are filtered out by hardware (software
- * emulation in lirc_dev?)
- */
-#define LIRC_SET_REC_FILTER_PULSE _IOW('i', 0x0000001a, __u32)
-/*
- * spaces shorter than this are filtered out by hardware (software
- * emulation in lirc_dev?)
- */
-#define LIRC_SET_REC_FILTER_SPACE _IOW('i', 0x0000001b, __u32)
-/*
- * if filter cannot be set independently for pulse/space, this should
- * be used
- */
-#define LIRC_SET_REC_FILTER _IOW('i', 0x0000001c, __u32)
-
-/*
- * if enabled from the next key press on the driver will send
- * LIRC_MODE2_FREQUENCY packets
- */
-#define LIRC_SET_MEASURE_CARRIER_MODE _IOW('i', 0x0000001d, __u32)
-
-/*
- * 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, __u32)
-#define LIRC_SET_REC_CARRIER_RANGE _IOW('i', 0x0000001f, __u32)
-
-#define LIRC_NOTIFY_DECODE _IO('i', 0x00000020)
-
-#define LIRC_SETUP_START _IO('i', 0x00000021)
-#define LIRC_SETUP_END _IO('i', 0x00000022)
-
-#define LIRC_SET_WIDEBAND_RECEIVER _IOW('i', 0x00000023, __u32)
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/lirc_dev.h b/ANDROID_3.4.5/include/media/lirc_dev.h
deleted file mode 100644
index 168dd0b1..00000000
--- a/ANDROID_3.4.5/include/media/lirc_dev.h
+++ /dev/null
@@ -1,225 +0,0 @@
-/*
- * LIRC base driver
- *
- * by Artur Lipowski <alipowski@interia.pl>
- * This code is licensed under GNU GPL
- *
- */
-
-#ifndef _LINUX_LIRC_DEV_H
-#define _LINUX_LIRC_DEV_H
-
-#define MAX_IRCTL_DEVICES 8
-#define BUFLEN 16
-
-#define mod(n, div) ((n) % (div))
-
-#include <linux/slab.h>
-#include <linux/fs.h>
-#include <linux/ioctl.h>
-#include <linux/poll.h>
-#include <linux/kfifo.h>
-#include <media/lirc.h>
-
-struct lirc_buffer {
- wait_queue_head_t wait_poll;
- spinlock_t fifo_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 */
- struct kfifo fifo;
- u8 fifo_initialized;
-};
-
-static inline void lirc_buffer_clear(struct lirc_buffer *buf)
-{
- unsigned long flags;
-
- if (buf->fifo_initialized) {
- spin_lock_irqsave(&buf->fifo_lock, flags);
- kfifo_reset(&buf->fifo);
- spin_unlock_irqrestore(&buf->fifo_lock, flags);
- } else
- WARN(1, "calling %s on an uninitialized lirc_buffer\n",
- __func__);
-}
-
-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->fifo_lock);
- buf->chunk_size = chunk_size;
- buf->size = size;
- ret = kfifo_alloc(&buf->fifo, size * chunk_size, GFP_KERNEL);
- if (ret == 0)
- buf->fifo_initialized = 1;
-
- return ret;
-}
-
-static inline void lirc_buffer_free(struct lirc_buffer *buf)
-{
- if (buf->fifo_initialized) {
- kfifo_free(&buf->fifo);
- buf->fifo_initialized = 0;
- } else
- WARN(1, "calling %s on an uninitialized lirc_buffer\n",
- __func__);
-}
-
-static inline int lirc_buffer_len(struct lirc_buffer *buf)
-{
- int len;
- unsigned long flags;
-
- spin_lock_irqsave(&buf->fifo_lock, flags);
- len = kfifo_len(&buf->fifo);
- spin_unlock_irqrestore(&buf->fifo_lock, flags);
-
- return len;
-}
-
-static inline int lirc_buffer_full(struct lirc_buffer *buf)
-{
- return lirc_buffer_len(buf) == buf->size * buf->chunk_size;
-}
-
-static inline int lirc_buffer_empty(struct lirc_buffer *buf)
-{
- return !lirc_buffer_len(buf);
-}
-
-static inline int lirc_buffer_available(struct lirc_buffer *buf)
-{
- return buf->size - (lirc_buffer_len(buf) / buf->chunk_size);
-}
-
-static inline unsigned int lirc_buffer_read(struct lirc_buffer *buf,
- unsigned char *dest)
-{
- unsigned int ret = 0;
-
- if (lirc_buffer_len(buf) >= buf->chunk_size)
- ret = kfifo_out_locked(&buf->fifo, dest, buf->chunk_size,
- &buf->fifo_lock);
- return ret;
-
-}
-
-static inline unsigned int lirc_buffer_write(struct lirc_buffer *buf,
- unsigned char *orig)
-{
- unsigned int ret;
-
- ret = kfifo_in_locked(&buf->fifo, orig, buf->chunk_size,
- &buf->fifo_lock);
-
- return ret;
-}
-
-struct lirc_driver {
- char name[40];
- int minor;
- __u32 code_length;
- unsigned int buffer_size; /* in chunks holding one code each */
- int sample_rate;
- __u32 features;
-
- unsigned int chunk_size;
-
- void *data;
- int min_timeout;
- int max_timeout;
- int (*add_to_buf) (void *data, struct lirc_buffer *buf);
- struct lirc_buffer *rbuf;
- int (*set_use_inc) (void *data);
- void (*set_use_dec) (void *data);
- const 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:
- *
- * 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
- *
- * 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 p 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);
-
-/* default file operations
- * used by drivers if they override only some operations
- */
-int lirc_dev_fop_open(struct inode *inode, struct file *file);
-int lirc_dev_fop_close(struct inode *inode, struct file *file);
-unsigned int lirc_dev_fop_poll(struct file *file, poll_table *wait);
-long lirc_dev_fop_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
-ssize_t lirc_dev_fop_read(struct file *file, char __user *buffer, size_t length,
- loff_t *ppos);
-ssize_t lirc_dev_fop_write(struct file *file, const char __user *buffer,
- size_t length, loff_t *ppos);
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/m52790.h b/ANDROID_3.4.5/include/media/m52790.h
deleted file mode 100644
index 7ddffae3..00000000
--- a/ANDROID_3.4.5/include/media/m52790.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- m52790.h - definition for m52790 inputs and outputs
-
- Copyright (C) 2007 Hans Verkuil (hverkuil@xs4all.nl)
-
- 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
-
-#ifndef _M52790_H_
-#define _M52790_H_
-
-/* Input routing switch 1 */
-
-#define M52790_SW1_IN_MASK 0x0003
-#define M52790_SW1_IN_TUNER 0x0000
-#define M52790_SW1_IN_V2 0x0001
-#define M52790_SW1_IN_V3 0x0002
-#define M52790_SW1_IN_V4 0x0003
-
-/* Selects component input instead of composite */
-#define M52790_SW1_YCMIX 0x0004
-
-
-/* Input routing switch 2 */
-
-#define M52790_SW2_IN_MASK 0x0300
-#define M52790_SW2_IN_TUNER 0x0000
-#define M52790_SW2_IN_V2 0x0100
-#define M52790_SW2_IN_V3 0x0200
-#define M52790_SW2_IN_V4 0x0300
-
-/* Selects component input instead of composite */
-#define M52790_SW2_YCMIX 0x0400
-
-
-/* Output routing switch 1 */
-
-/* Enable 6dB amplifier for composite out */
-#define M52790_SW1_V_AMP 0x0008
-
-/* Enable 6dB amplifier for component out */
-#define M52790_SW1_YC_AMP 0x0010
-
-/* Audio output mode */
-#define M52790_SW1_AUDIO_MASK 0x00c0
-#define M52790_SW1_AUDIO_MUTE 0x0000
-#define M52790_SW1_AUDIO_R 0x0040
-#define M52790_SW1_AUDIO_L 0x0080
-#define M52790_SW1_AUDIO_STEREO 0x00c0
-
-
-/* Output routing switch 2 */
-
-/* Enable 6dB amplifier for composite out */
-#define M52790_SW2_V_AMP 0x0800
-
-/* Enable 6dB amplifier for component out */
-#define M52790_SW2_YC_AMP 0x1000
-
-/* Audio output mode */
-#define M52790_SW2_AUDIO_MASK 0xc000
-#define M52790_SW2_AUDIO_MUTE 0x0000
-#define M52790_SW2_AUDIO_R 0x4000
-#define M52790_SW2_AUDIO_L 0x8000
-#define M52790_SW2_AUDIO_STEREO 0xc000
-
-
-/* Common values */
-#define M52790_IN_TUNER (M52790_SW1_IN_TUNER | M52790_SW2_IN_TUNER)
-#define M52790_IN_V2 (M52790_SW1_IN_V2 | M52790_SW2_IN_V2)
-#define M52790_IN_V3 (M52790_SW1_IN_V3 | M52790_SW2_IN_V3)
-#define M52790_IN_V4 (M52790_SW1_IN_V4 | M52790_SW2_IN_V4)
-
-#define M52790_OUT_STEREO (M52790_SW1_AUDIO_STEREO | \
- M52790_SW2_AUDIO_STEREO)
-#define M52790_OUT_AMP_STEREO (M52790_SW1_AUDIO_STEREO | \
- M52790_SW1_V_AMP | \
- M52790_SW2_AUDIO_STEREO | \
- M52790_SW2_V_AMP)
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/m5mols.h b/ANDROID_3.4.5/include/media/m5mols.h
deleted file mode 100644
index 4a825ae5..00000000
--- a/ANDROID_3.4.5/include/media/m5mols.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Driver header for M-5MOLS 8M Pixel camera sensor with ISP
- *
- * Copyright (C) 2011 Samsung Electronics Co., Ltd.
- * Author: HeungJun Kim <riverful.kim@samsung.com>
- *
- * Copyright (C) 2009 Samsung Electronics Co., Ltd.
- * Author: Dongsoo Nathaniel Kim <dongsoo45.kim@samsung.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 MEDIA_M5MOLS_H
-#define MEDIA_M5MOLS_H
-
-/**
- * struct m5mols_platform_data - platform data for M-5MOLS driver
- * @gpio_reset: GPIO driving the reset pin of M-5MOLS
- * @reset_polarity: active state for gpio_reset pin, 0 or 1
- * @set_power: an additional callback to the board setup code
- * to be called after enabling and before disabling
- * the sensor's supply regulators
- */
-struct m5mols_platform_data {
- int gpio_reset;
- u8 reset_polarity;
- int (*set_power)(struct device *dev, int on);
-};
-
-#endif /* MEDIA_M5MOLS_H */
diff --git a/ANDROID_3.4.5/include/media/media-device.h b/ANDROID_3.4.5/include/media/media-device.h
deleted file mode 100644
index eaade981..00000000
--- a/ANDROID_3.4.5/include/media/media-device.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Media device
- *
- * Copyright (C) 2010 Nokia Corporation
- *
- * Contacts: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
- * Sakari Ailus <sakari.ailus@iki.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.
- *
- * 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
- */
-
-#ifndef _MEDIA_DEVICE_H
-#define _MEDIA_DEVICE_H
-
-#include <linux/list.h>
-#include <linux/mutex.h>
-#include <linux/spinlock.h>
-
-#include <media/media-devnode.h>
-#include <media/media-entity.h>
-
-struct device;
-
-/**
- * struct media_device - Media device
- * @dev: Parent device
- * @devnode: Media device node
- * @model: Device model name
- * @serial: Device serial number (optional)
- * @bus_info: Unique and stable device location identifier
- * @hw_revision: Hardware device revision
- * @driver_version: Device driver version
- * @entity_id: ID of the next entity to be registered
- * @entities: List of registered entities
- * @lock: Entities list lock
- * @graph_mutex: Entities graph operation lock
- *
- * This structure represents an abstract high-level media device. It allows easy
- * access to entities and provides basic media device-level support. The
- * structure can be allocated directly or embedded in a larger structure.
- *
- * The parent @dev is a physical device. It must be set before registering the
- * media device.
- *
- * @model is a descriptive model name exported through sysfs. It doesn't have to
- * be unique.
- */
-struct media_device {
- /* dev->driver_data points to this struct. */
- struct device *dev;
- struct media_devnode devnode;
-
- char model[32];
- char serial[40];
- char bus_info[32];
- u32 hw_revision;
- u32 driver_version;
-
- u32 entity_id;
- struct list_head entities;
-
- /* Protects the entities list */
- spinlock_t lock;
- /* Serializes graph operations. */
- struct mutex graph_mutex;
-
- int (*link_notify)(struct media_pad *source,
- struct media_pad *sink, u32 flags);
-};
-
-/* media_devnode to media_device */
-#define to_media_device(node) container_of(node, struct media_device, devnode)
-
-int __must_check media_device_register(struct media_device *mdev);
-void media_device_unregister(struct media_device *mdev);
-
-int __must_check media_device_register_entity(struct media_device *mdev,
- struct media_entity *entity);
-void media_device_unregister_entity(struct media_entity *entity);
-
-/* Iterate over all entities. */
-#define media_device_for_each_entity(entity, mdev) \
- list_for_each_entry(entity, &(mdev)->entities, list)
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/media-devnode.h b/ANDROID_3.4.5/include/media/media-devnode.h
deleted file mode 100644
index f6caafc8..00000000
--- a/ANDROID_3.4.5/include/media/media-devnode.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Media device node
- *
- * Copyright (C) 2010 Nokia Corporation
- *
- * Contacts: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
- * Sakari Ailus <sakari.ailus@iki.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.
- *
- * 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
- *
- * --
- *
- * Common functions for media-related drivers to register and unregister media
- * device nodes.
- */
-
-#ifndef _MEDIA_DEVNODE_H
-#define _MEDIA_DEVNODE_H
-
-#include <linux/poll.h>
-#include <linux/fs.h>
-#include <linux/device.h>
-#include <linux/cdev.h>
-
-/*
- * Flag to mark the media_devnode struct as registered. Drivers must not touch
- * this flag directly, it will be set and cleared by media_devnode_register and
- * media_devnode_unregister.
- */
-#define MEDIA_FLAG_REGISTERED 0
-
-struct media_file_operations {
- struct module *owner;
- ssize_t (*read) (struct file *, char __user *, size_t, loff_t *);
- ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *);
- unsigned int (*poll) (struct file *, struct poll_table_struct *);
- long (*ioctl) (struct file *, unsigned int, unsigned long);
- int (*open) (struct file *);
- int (*release) (struct file *);
-};
-
-/**
- * struct media_devnode - Media device node
- * @parent: parent device
- * @minor: device node minor number
- * @flags: flags, combination of the MEDIA_FLAG_* constants
- *
- * This structure represents a media-related device node.
- *
- * The @parent is a physical device. It must be set by core or device drivers
- * before registering the node.
- */
-struct media_devnode {
- /* device ops */
- const struct media_file_operations *fops;
-
- /* sysfs */
- struct device dev; /* media device */
- struct cdev cdev; /* character device */
- struct device *parent; /* device parent */
-
- /* device info */
- int minor;
- unsigned long flags; /* Use bitops to access flags */
-
- /* callbacks */
- void (*release)(struct media_devnode *mdev);
-};
-
-/* dev to media_devnode */
-#define to_media_devnode(cd) container_of(cd, struct media_devnode, dev)
-
-int __must_check media_devnode_register(struct media_devnode *mdev);
-void media_devnode_unregister(struct media_devnode *mdev);
-
-static inline struct media_devnode *media_devnode_data(struct file *filp)
-{
- return filp->private_data;
-}
-
-static inline int media_devnode_is_registered(struct media_devnode *mdev)
-{
- return test_bit(MEDIA_FLAG_REGISTERED, &mdev->flags);
-}
-
-#endif /* _MEDIA_DEVNODE_H */
diff --git a/ANDROID_3.4.5/include/media/media-entity.h b/ANDROID_3.4.5/include/media/media-entity.h
deleted file mode 100644
index 29e7bba7..00000000
--- a/ANDROID_3.4.5/include/media/media-entity.h
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * Media entity
- *
- * Copyright (C) 2010 Nokia Corporation
- *
- * Contacts: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
- * Sakari Ailus <sakari.ailus@iki.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.
- *
- * 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
- */
-
-#ifndef _MEDIA_ENTITY_H
-#define _MEDIA_ENTITY_H
-
-#include <linux/list.h>
-#include <linux/media.h>
-
-struct media_pipeline {
-};
-
-struct media_link {
- struct media_pad *source; /* Source pad */
- struct media_pad *sink; /* Sink pad */
- struct media_link *reverse; /* Link in the reverse direction */
- unsigned long flags; /* Link flags (MEDIA_LNK_FL_*) */
-};
-
-struct media_pad {
- struct media_entity *entity; /* Entity this pad belongs to */
- u16 index; /* Pad index in the entity pads array */
- unsigned long flags; /* Pad flags (MEDIA_PAD_FL_*) */
-};
-
-struct media_entity_operations {
- int (*link_setup)(struct media_entity *entity,
- const struct media_pad *local,
- const struct media_pad *remote, u32 flags);
-};
-
-struct media_entity {
- struct list_head list;
- struct media_device *parent; /* Media device this entity belongs to*/
- u32 id; /* Entity ID, unique in the parent media
- * device context */
- const char *name; /* Entity name */
- u32 type; /* Entity type (MEDIA_ENT_T_*) */
- u32 revision; /* Entity revision, driver specific */
- unsigned long flags; /* Entity flags (MEDIA_ENT_FL_*) */
- u32 group_id; /* Entity group ID */
-
- u16 num_pads; /* Number of sink and source pads */
- u16 num_links; /* Number of existing links, both
- * enabled and disabled */
- u16 num_backlinks; /* Number of backlinks */
- u16 max_links; /* Maximum number of links */
-
- struct media_pad *pads; /* Pads array (num_pads elements) */
- struct media_link *links; /* Links array (max_links elements)*/
-
- const struct media_entity_operations *ops; /* Entity operations */
-
- /* Reference counts must never be negative, but are signed integers on
- * purpose: a simple WARN_ON(<0) check can be used to detect reference
- * count bugs that would make them negative.
- */
- int stream_count; /* Stream count for the entity. */
- int use_count; /* Use count for the entity. */
-
- struct media_pipeline *pipe; /* Pipeline this entity belongs to. */
-
- union {
- /* Node specifications */
- struct {
- u32 major;
- u32 minor;
- } v4l;
- struct {
- u32 major;
- u32 minor;
- } fb;
- struct {
- u32 card;
- u32 device;
- u32 subdevice;
- } alsa;
- int dvb;
-
- /* Sub-device specifications */
- /* Nothing needed yet */
- } info;
-};
-
-static inline u32 media_entity_type(struct media_entity *entity)
-{
- return entity->type & MEDIA_ENT_TYPE_MASK;
-}
-
-static inline u32 media_entity_subtype(struct media_entity *entity)
-{
- return entity->type & MEDIA_ENT_SUBTYPE_MASK;
-}
-
-#define MEDIA_ENTITY_ENUM_MAX_DEPTH 16
-
-struct media_entity_graph {
- struct {
- struct media_entity *entity;
- int link;
- } stack[MEDIA_ENTITY_ENUM_MAX_DEPTH];
- int top;
-};
-
-int media_entity_init(struct media_entity *entity, u16 num_pads,
- struct media_pad *pads, u16 extra_links);
-void media_entity_cleanup(struct media_entity *entity);
-
-int media_entity_create_link(struct media_entity *source, u16 source_pad,
- struct media_entity *sink, u16 sink_pad, u32 flags);
-int __media_entity_setup_link(struct media_link *link, u32 flags);
-int media_entity_setup_link(struct media_link *link, u32 flags);
-struct media_link *media_entity_find_link(struct media_pad *source,
- struct media_pad *sink);
-struct media_pad *media_entity_remote_source(struct media_pad *pad);
-
-struct media_entity *media_entity_get(struct media_entity *entity);
-void media_entity_put(struct media_entity *entity);
-
-void media_entity_graph_walk_start(struct media_entity_graph *graph,
- struct media_entity *entity);
-struct media_entity *
-media_entity_graph_walk_next(struct media_entity_graph *graph);
-void media_entity_pipeline_start(struct media_entity *entity,
- struct media_pipeline *pipe);
-void media_entity_pipeline_stop(struct media_entity *entity);
-
-#define media_entity_call(entity, operation, args...) \
- (((entity)->ops && (entity)->ops->operation) ? \
- (entity)->ops->operation((entity) , ##args) : -ENOIOCTLCMD)
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/mmp-camera.h b/ANDROID_3.4.5/include/media/mmp-camera.h
deleted file mode 100644
index 7611963a..00000000
--- a/ANDROID_3.4.5/include/media/mmp-camera.h
+++ /dev/null
@@ -1,9 +0,0 @@
-/*
- * Information for the Marvell Armada MMP camera
- */
-
-struct mmp_camera_platform_data {
- struct platform_device *i2c_device;
- int sensor_power_gpio;
- int sensor_reset_gpio;
-};
diff --git a/ANDROID_3.4.5/include/media/msp3400.h b/ANDROID_3.4.5/include/media/msp3400.h
deleted file mode 100644
index 90cf22ad..00000000
--- a/ANDROID_3.4.5/include/media/msp3400.h
+++ /dev/null
@@ -1,226 +0,0 @@
-/*
- msp3400.h - definition for msp3400 inputs and outputs
-
- Copyright (C) 2006 Hans Verkuil (hverkuil@xs4all.nl)
-
- 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
-
-#ifndef _MSP3400_H_
-#define _MSP3400_H_
-
-/* msp3400 routing
- ===============
-
- The msp3400 has a complicated routing scheme with many possible
- combinations. The details are all in the datasheets but I will try
- to give a short description here.
-
- Inputs
- ======
-
- There are 1) tuner inputs, 2) I2S inputs, 3) SCART inputs. You will have
- to select which tuner input to use and which SCART input to use. The
- selected tuner input, the selected SCART input and all I2S inputs go to
- the DSP (the tuner input first goes through the demodulator).
-
- The DSP handles things like volume, bass/treble, balance, and some chips
- have support for surround sound. It has several outputs: MAIN, AUX, I2S
- and SCART1/2. Each output can select which DSP input to use. So the MAIN
- output can select the tuner input while at the same time the SCART1 output
- uses the I2S input.
-
- Outputs
- =======
-
- Most DSP outputs are also the outputs of the msp3400. However, the SCART
- outputs of the msp3400 can select which input to use: either the SCART1 or
- SCART2 output from the DSP, or the msp3400 SCART inputs, thus completely
- bypassing the DSP.
-
- Summary
- =======
-
- So to specify a complete routing scheme for the msp3400 you will have to
- specify in the 'input' arg of the s_routing function:
-
- 1) which tuner input to use
- 2) which SCART input to use
- 3) which DSP input to use for each DSP output
-
- And in the 'output' arg of the s_routing function you specify:
-
- 1) which SCART input to use for each SCART output
-
- Depending on how the msp is wired to the other components you can
- ignore or mute certain inputs or outputs.
-
- Also, depending on the msp version only a subset of the inputs or
- outputs may be present. At the end of this header some tables are
- added containing a list of what is available for each msp version.
- */
-
-/* Inputs to the DSP unit: two independent selections have to be made:
- 1) the tuner (SIF) input
- 2) the SCART input
- Bits 0-2 are used for the SCART input select, bit 3 is used for the tuner
- input, bits 4-7 are reserved.
- */
-
-/* SCART input to DSP selection */
-#define MSP_IN_SCART1 0 /* Pin SC1_IN */
-#define MSP_IN_SCART2 1 /* Pin SC2_IN */
-#define MSP_IN_SCART3 2 /* Pin SC3_IN */
-#define MSP_IN_SCART4 3 /* Pin SC4_IN */
-#define MSP_IN_MONO 6 /* Pin MONO_IN */
-#define MSP_IN_MUTE 7 /* Mute DSP input */
-#define MSP_SCART_TO_DSP(in) (in)
-/* Tuner input to demodulator and DSP selection */
-#define MSP_IN_TUNER1 0 /* Analog Sound IF input pin ANA_IN1 */
-#define MSP_IN_TUNER2 1 /* Analog Sound IF input pin ANA_IN2 */
-#define MSP_TUNER_TO_DSP(in) ((in) << 3)
-
-/* The msp has up to 5 DSP outputs, each output can independently select
- a DSP input.
-
- The DSP outputs are: loudspeaker output (aka MAIN), headphones output
- (aka AUX), SCART1 DA output, SCART2 DA output and an I2S output.
- There also is a quasi-peak detector output, but that is not used by
- this driver and is set to the same input as the loudspeaker output.
- Not all outputs are supported by all msp models. Setting the input
- of an unsupported output will be ignored by the driver.
-
- There are up to 16 DSP inputs to choose from, so each output is
- assigned 4 bits.
-
- Note: the 44x8G can mix two inputs and feed the result back to the
- DSP. This is currently not implemented. Also not implemented is the
- multi-channel capable I2S3 input of the 44x0G. If someone can demonstrate
- a need for one of those features then additional support can be added. */
-#define MSP_DSP_IN_TUNER 0 /* Tuner DSP input */
-#define MSP_DSP_IN_SCART 2 /* SCART DSP input */
-#define MSP_DSP_IN_I2S1 5 /* I2S1 DSP input */
-#define MSP_DSP_IN_I2S2 6 /* I2S2 DSP input */
-#define MSP_DSP_IN_I2S3 7 /* I2S3 DSP input */
-#define MSP_DSP_IN_MAIN_AVC 11 /* MAIN AVC processed DSP input */
-#define MSP_DSP_IN_MAIN 12 /* MAIN DSP input */
-#define MSP_DSP_IN_AUX 13 /* AUX DSP input */
-#define MSP_DSP_TO_MAIN(in) ((in) << 4)
-#define MSP_DSP_TO_AUX(in) ((in) << 8)
-#define MSP_DSP_TO_SCART1(in) ((in) << 12)
-#define MSP_DSP_TO_SCART2(in) ((in) << 16)
-#define MSP_DSP_TO_I2S(in) ((in) << 20)
-
-/* Output SCART select: the SCART outputs can select which input
- to use. */
-#define MSP_SC_IN_SCART1 0 /* SCART1 input, bypassing the DSP */
-#define MSP_SC_IN_SCART2 1 /* SCART2 input, bypassing the DSP */
-#define MSP_SC_IN_SCART3 2 /* SCART3 input, bypassing the DSP */
-#define MSP_SC_IN_SCART4 3 /* SCART4 input, bypassing the DSP */
-#define MSP_SC_IN_DSP_SCART1 4 /* DSP SCART1 input */
-#define MSP_SC_IN_DSP_SCART2 5 /* DSP SCART2 input */
-#define MSP_SC_IN_MONO 6 /* MONO input, bypassing the DSP */
-#define MSP_SC_IN_MUTE 7 /* MUTE output */
-#define MSP_SC_TO_SCART1(in) (in)
-#define MSP_SC_TO_SCART2(in) ((in) << 4)
-
-/* Shortcut macros */
-#define MSP_INPUT(sc, t, main_aux_src, sc_i2s_src) \
- (MSP_SCART_TO_DSP(sc) | \
- MSP_TUNER_TO_DSP(t) | \
- MSP_DSP_TO_MAIN(main_aux_src) | \
- MSP_DSP_TO_AUX(main_aux_src) | \
- MSP_DSP_TO_SCART1(sc_i2s_src) | \
- MSP_DSP_TO_SCART2(sc_i2s_src) | \
- MSP_DSP_TO_I2S(sc_i2s_src))
-#define MSP_INPUT_DEFAULT MSP_INPUT(MSP_IN_SCART1, MSP_IN_TUNER1, \
- MSP_DSP_IN_TUNER, MSP_DSP_IN_TUNER)
-#define MSP_OUTPUT(sc) \
- (MSP_SC_TO_SCART1(sc) | \
- MSP_SC_TO_SCART2(sc))
-/* This equals the RESET position of the msp3400 ACB register */
-#define MSP_OUTPUT_DEFAULT (MSP_SC_TO_SCART1(MSP_SC_IN_SCART3) | \
- MSP_SC_TO_SCART2(MSP_SC_IN_DSP_SCART1))
-
-/* Tuner inputs vs. msp version */
-/* Chip TUNER_1 TUNER_2
- -------------------------
- msp34x0b y y
- msp34x0c y y
- msp34x0d y y
- msp34x5d y n
- msp34x7d y n
- msp34x0g y y
- msp34x1g y y
- msp34x2g y y
- msp34x5g y n
- msp34x7g y n
- msp44x0g y y
- msp44x8g y y
- */
-
-/* SCART inputs vs. msp version */
-/* Chip SC1 SC2 SC3 SC4
- -------------------------
- msp34x0b y y y n
- msp34x0c y y y n
- msp34x0d y y y y
- msp34x5d y y n n
- msp34x7d y n n n
- msp34x0g y y y y
- msp34x1g y y y y
- msp34x2g y y y y
- msp34x5g y y n n
- msp34x7g y n n n
- msp44x0g y y y y
- msp44x8g y y y y
- */
-
-/* DSP inputs vs. msp version (tuner and SCART inputs are always available) */
-/* Chip I2S1 I2S2 I2S3 MAIN_AVC MAIN AUX
- ------------------------------------------
- msp34x0b y n n n n n
- msp34x0c y y n n n n
- msp34x0d y y n n n n
- msp34x5d y y n n n n
- msp34x7d n n n n n n
- msp34x0g y y n n n n
- msp34x1g y y n n n n
- msp34x2g y y n y y y
- msp34x5g y y n n n n
- msp34x7g n n n n n n
- msp44x0g y y y y y y
- msp44x8g y y y n n n
- */
-
-/* DSP outputs vs. msp version */
-/* Chip MAIN AUX SCART1 SCART2 I2S
- ------------------------------------
- msp34x0b y y y n y
- msp34x0c y y y n y
- msp34x0d y y y y y
- msp34x5d y n y n y
- msp34x7d y n y n n
- msp34x0g y y y y y
- msp34x1g y y y y y
- msp34x2g y y y y y
- msp34x5g y n y n y
- msp34x7g y n y n n
- msp44x0g y y y y y
- msp44x8g y y y y y
- */
-
-#endif /* MSP3400_H */
-
diff --git a/ANDROID_3.4.5/include/media/mt9m032.h b/ANDROID_3.4.5/include/media/mt9m032.h
deleted file mode 100644
index c3a78114..00000000
--- a/ANDROID_3.4.5/include/media/mt9m032.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Driver for MT9M032 CMOS Image Sensor from Micron
- *
- * Copyright (C) 2010-2011 Lund Engineering
- * Contact: Gil Lund <gwlund@lundeng.com>
- * Author: Martin Hostettler <martin@neutronstar.dyndns.org>
- *
- * 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.
- *
- * 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 MT9M032_H
-#define MT9M032_H
-
-#define MT9M032_NAME "mt9m032"
-#define MT9M032_I2C_ADDR (0xb8 >> 1)
-
-struct mt9m032_platform_data {
- u32 ext_clock;
- u32 pix_clock;
- bool invert_pixclock;
-
-};
-#endif /* MT9M032_H */
diff --git a/ANDROID_3.4.5/include/media/mt9p031.h b/ANDROID_3.4.5/include/media/mt9p031.h
deleted file mode 100644
index 96448c7a..00000000
--- a/ANDROID_3.4.5/include/media/mt9p031.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef MT9P031_H
-#define MT9P031_H
-
-struct v4l2_subdev;
-
-enum {
- MT9P031_COLOR_VERSION,
- MT9P031_MONOCHROME_VERSION,
-};
-
-struct mt9p031_platform_data {
- int (*set_xclk)(struct v4l2_subdev *subdev, int hz);
- int (*reset)(struct v4l2_subdev *subdev, int active);
- int ext_freq; /* input frequency to the mt9p031 for PLL dividers */
- int target_freq; /* frequency target for the PLL */
- int version; /* MT9P031_COLOR_VERSION or MT9P031_MONOCHROME_VERSION */
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/mt9t001.h b/ANDROID_3.4.5/include/media/mt9t001.h
deleted file mode 100644
index e839a78b..00000000
--- a/ANDROID_3.4.5/include/media/mt9t001.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef _MEDIA_MT9T001_H
-#define _MEDIA_MT9T001_H
-
-struct mt9t001_platform_data {
- unsigned int clk_pol:1;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/mt9t112.h b/ANDROID_3.4.5/include/media/mt9t112.h
deleted file mode 100644
index a43c74ab..00000000
--- a/ANDROID_3.4.5/include/media/mt9t112.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* mt9t112 Camera
- *
- * Copyright (C) 2009 Renesas Solutions Corp.
- * Kuninori Morimoto <morimoto.kuninori@renesas.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.
- */
-
-#ifndef __MT9T112_H__
-#define __MT9T112_H__
-
-#define MT9T112_FLAG_PCLK_RISING_EDGE (1 << 0)
-#define MT9T112_FLAG_DATAWIDTH_8 (1 << 1) /* default width is 10 */
-
-struct mt9t112_pll_divider {
- u8 m, n;
- u8 p1, p2, p3, p4, p5, p6, p7;
-};
-
-/*
- * mt9t112 camera info
- */
-struct mt9t112_camera_info {
- u32 flags;
- struct mt9t112_pll_divider divider;
-};
-
-#endif /* __MT9T112_H__ */
diff --git a/ANDROID_3.4.5/include/media/mt9v011.h b/ANDROID_3.4.5/include/media/mt9v011.h
deleted file mode 100644
index ea29fc74..00000000
--- a/ANDROID_3.4.5/include/media/mt9v011.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/* mt9v011 sensor
- *
- * Copyright (C) 2011 Hans Verkuil <hverkuil@xs4all.nl>
- *
- * 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.
- */
-
-#ifndef __MT9V011_H__
-#define __MT9V011_H__
-
-struct mt9v011_platform_data {
- unsigned xtal; /* Hz */
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/mt9v032.h b/ANDROID_3.4.5/include/media/mt9v032.h
deleted file mode 100644
index 5e27f9be..00000000
--- a/ANDROID_3.4.5/include/media/mt9v032.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef _MEDIA_MT9V032_H
-#define _MEDIA_MT9V032_H
-
-struct v4l2_subdev;
-
-struct mt9v032_platform_data {
- unsigned int clk_pol:1;
-
- void (*set_clock)(struct v4l2_subdev *subdev, unsigned int rate);
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/noon010pc30.h b/ANDROID_3.4.5/include/media/noon010pc30.h
deleted file mode 100644
index 58eafee3..00000000
--- a/ANDROID_3.4.5/include/media/noon010pc30.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Driver header for NOON010PC30L camera sensor chip.
- *
- * Copyright (c) 2010 Samsung Electronics, Co. Ltd
- * Contact: Sylwester Nawrocki <s.nawrocki@samsung.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 NOON010PC30_H
-#define NOON010PC30_H
-
-/**
- * @clk_rate: the clock frequency in Hz
- * @gpio_nreset: GPIO driving nRESET pin
- * @gpio_nstby: GPIO driving nSTBY pin
- */
-
-struct noon010pc30_platform_data {
- unsigned long clk_rate;
- int gpio_nreset;
- int gpio_nstby;
-};
-
-#endif /* NOON010PC30_H */
diff --git a/ANDROID_3.4.5/include/media/omap1_camera.h b/ANDROID_3.4.5/include/media/omap1_camera.h
deleted file mode 100644
index 819767cf..00000000
--- a/ANDROID_3.4.5/include/media/omap1_camera.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Header for V4L2 SoC Camera driver for OMAP1 Camera Interface
- *
- * Copyright (C) 2010, Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
- *
- * 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.
- */
-
-#ifndef __MEDIA_OMAP1_CAMERA_H_
-#define __MEDIA_OMAP1_CAMERA_H_
-
-#include <linux/bitops.h>
-
-#define OMAP1_CAMERA_IOSIZE 0x1c
-
-enum omap1_cam_vb_mode {
- OMAP1_CAM_DMA_CONTIG = 0,
- OMAP1_CAM_DMA_SG,
-};
-
-#define OMAP1_CAMERA_MIN_BUF_COUNT(x) ((x) == OMAP1_CAM_DMA_CONTIG ? 3 : 2)
-
-struct omap1_cam_platform_data {
- unsigned long camexclk_khz;
- unsigned long lclk_khz_max;
- unsigned long flags;
-};
-
-#define OMAP1_CAMERA_LCLK_RISING BIT(0)
-#define OMAP1_CAMERA_RST_LOW BIT(1)
-#define OMAP1_CAMERA_RST_HIGH BIT(2)
-
-#endif /* __MEDIA_OMAP1_CAMERA_H_ */
diff --git a/ANDROID_3.4.5/include/media/omap3isp.h b/ANDROID_3.4.5/include/media/omap3isp.h
deleted file mode 100644
index 042849a3..00000000
--- a/ANDROID_3.4.5/include/media/omap3isp.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * omap3isp.h
- *
- * TI OMAP3 ISP - Platform data
- *
- * Copyright (C) 2011 Nokia Corporation
- *
- * Contacts: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
- * Sakari Ailus <sakari.ailus@iki.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.
- *
- * 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 __MEDIA_OMAP3ISP_H__
-#define __MEDIA_OMAP3ISP_H__
-
-struct i2c_board_info;
-struct isp_device;
-
-enum isp_interface_type {
- ISP_INTERFACE_PARALLEL,
- ISP_INTERFACE_CSI2A_PHY2,
- ISP_INTERFACE_CCP2B_PHY1,
- ISP_INTERFACE_CCP2B_PHY2,
- ISP_INTERFACE_CSI2C_PHY1,
-};
-
-enum {
- ISP_BRIDGE_DISABLE = 0,
- ISP_BRIDGE_LITTLE_ENDIAN = 2,
- ISP_BRIDGE_BIG_ENDIAN = 3,
-};
-
-enum {
- ISP_LANE_SHIFT_0 = 0,
- ISP_LANE_SHIFT_2 = 1,
- ISP_LANE_SHIFT_4 = 2,
- ISP_LANE_SHIFT_6 = 3,
-};
-
-/**
- * struct isp_parallel_platform_data - Parallel interface platform data
- * @data_lane_shift: Data lane shifter
- * ISP_LANE_SHIFT_0 - CAMEXT[13:0] -> CAM[13:0]
- * ISP_LANE_SHIFT_2 - CAMEXT[13:2] -> CAM[11:0]
- * ISP_LANE_SHIFT_4 - CAMEXT[13:4] -> CAM[9:0]
- * ISP_LANE_SHIFT_6 - CAMEXT[13:6] -> CAM[7:0]
- * @clk_pol: Pixel clock polarity
- * 0 - Sample on rising edge, 1 - Sample on falling edge
- * @hs_pol: Horizontal synchronization polarity
- * 0 - Active high, 1 - Active low
- * @vs_pol: Vertical synchronization polarity
- * 0 - Active high, 1 - Active low
- * @bridge: CCDC Bridge input control
- * ISP_BRIDGE_DISABLE - Disable
- * ISP_BRIDGE_LITTLE_ENDIAN - Little endian
- * ISP_BRIDGE_BIG_ENDIAN - Big endian
- */
-struct isp_parallel_platform_data {
- unsigned int data_lane_shift:2;
- unsigned int clk_pol:1;
- unsigned int hs_pol:1;
- unsigned int vs_pol:1;
- unsigned int bridge:2;
-};
-
-enum {
- ISP_CCP2_PHY_DATA_CLOCK = 0,
- ISP_CCP2_PHY_DATA_STROBE = 1,
-};
-
-enum {
- ISP_CCP2_MODE_MIPI = 0,
- ISP_CCP2_MODE_CCP2 = 1,
-};
-
-/**
- * struct isp_ccp2_platform_data - CCP2 interface platform data
- * @strobe_clk_pol: Strobe/clock polarity
- * 0 - Non Inverted, 1 - Inverted
- * @crc: Enable the cyclic redundancy check
- * @ccp2_mode: Enable CCP2 compatibility mode
- * ISP_CCP2_MODE_MIPI - MIPI-CSI1 mode
- * ISP_CCP2_MODE_CCP2 - CCP2 mode
- * @phy_layer: Physical layer selection
- * ISP_CCP2_PHY_DATA_CLOCK - Data/clock physical layer
- * ISP_CCP2_PHY_DATA_STROBE - Data/strobe physical layer
- * @vpclk_div: Video port output clock control
- */
-struct isp_ccp2_platform_data {
- unsigned int strobe_clk_pol:1;
- unsigned int crc:1;
- unsigned int ccp2_mode:1;
- unsigned int phy_layer:1;
- unsigned int vpclk_div:2;
-};
-
-/**
- * struct isp_csi2_platform_data - CSI2 interface platform data
- * @crc: Enable the cyclic redundancy check
- * @vpclk_div: Video port output clock control
- */
-struct isp_csi2_platform_data {
- unsigned crc:1;
- unsigned vpclk_div:2;
-};
-
-struct isp_subdev_i2c_board_info {
- struct i2c_board_info *board_info;
- int i2c_adapter_id;
-};
-
-struct isp_v4l2_subdevs_group {
- struct isp_subdev_i2c_board_info *subdevs;
- enum isp_interface_type interface;
- union {
- struct isp_parallel_platform_data parallel;
- struct isp_ccp2_platform_data ccp2;
- struct isp_csi2_platform_data csi2;
- } bus; /* gcc < 4.6.0 chokes on anonymous union initializers */
-};
-
-struct isp_platform_data {
- struct isp_v4l2_subdevs_group *subdevs;
- void (*set_constraints)(struct isp_device *isp, bool enable);
-};
-
-#endif /* __MEDIA_OMAP3ISP_H__ */
diff --git a/ANDROID_3.4.5/include/media/ov7670.h b/ANDROID_3.4.5/include/media/ov7670.h
deleted file mode 100644
index b133bc12..00000000
--- a/ANDROID_3.4.5/include/media/ov7670.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * A V4L2 driver for OmniVision OV7670 cameras.
- *
- * Copyright 2010 One Laptop Per Child
- *
- * This file may be distributed under the terms of the GNU General
- * Public License, version 2.
- */
-
-#ifndef __OV7670_H
-#define __OV7670_H
-
-struct ov7670_config {
- int min_width; /* Filter out smaller sizes */
- int min_height; /* Filter out smaller sizes */
- int clock_speed; /* External clock speed (MHz) */
- bool use_smbus; /* Use smbus I/O instead of I2C */
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/ov772x.h b/ANDROID_3.4.5/include/media/ov772x.h
deleted file mode 100644
index 00dbb7c4..00000000
--- a/ANDROID_3.4.5/include/media/ov772x.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * ov772x Camera
- *
- * Copyright (C) 2008 Renesas Solutions Corp.
- * Kuninori Morimoto <morimoto.kuninori@renesas.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.
- */
-
-#ifndef __OV772X_H__
-#define __OV772X_H__
-
-/* for flags */
-#define OV772X_FLAG_VFLIP (1 << 0) /* Vertical flip image */
-#define OV772X_FLAG_HFLIP (1 << 1) /* Horizontal flip image */
-
-/*
- * for Edge ctrl
- *
- * strength also control Auto or Manual Edge Control Mode
- * see also OV772X_MANUAL_EDGE_CTRL
- */
-struct ov772x_edge_ctrl {
- unsigned char strength;
- unsigned char threshold;
- unsigned char upper;
- unsigned char lower;
-};
-
-#define OV772X_MANUAL_EDGE_CTRL 0x80 /* un-used bit of strength */
-#define OV772X_EDGE_STRENGTH_MASK 0x1F
-#define OV772X_EDGE_THRESHOLD_MASK 0x0F
-#define OV772X_EDGE_UPPER_MASK 0xFF
-#define OV772X_EDGE_LOWER_MASK 0xFF
-
-#define OV772X_AUTO_EDGECTRL(u, l) \
-{ \
- .upper = (u & OV772X_EDGE_UPPER_MASK), \
- .lower = (l & OV772X_EDGE_LOWER_MASK), \
-}
-
-#define OV772X_MANUAL_EDGECTRL(s, t) \
-{ \
- .strength = (s & OV772X_EDGE_STRENGTH_MASK) | \
- OV772X_MANUAL_EDGE_CTRL, \
- .threshold = (t & OV772X_EDGE_THRESHOLD_MASK), \
-}
-
-/*
- * ov772x camera info
- */
-struct ov772x_camera_info {
- unsigned long flags;
- struct ov772x_edge_ctrl edgectrl;
-};
-
-#endif /* __OV772X_H__ */
diff --git a/ANDROID_3.4.5/include/media/radio-si4713.h b/ANDROID_3.4.5/include/media/radio-si4713.h
deleted file mode 100644
index f6aae29c..00000000
--- a/ANDROID_3.4.5/include/media/radio-si4713.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * include/media/radio-si4713.h
- *
- * Board related data definitions for Si4713 radio transmitter chip.
- *
- * Copyright (c) 2009 Nokia Corporation
- * Contact: Eduardo Valentin <eduardo.valentin@nokia.com>
- *
- * This file is licensed under the terms of the GNU General Public License
- * version 2. This program is licensed "as is" without any warranty of any
- * kind, whether express or implied.
- *
- */
-
-#ifndef RADIO_SI4713_H
-#define RADIO_SI4713_H
-
-#include <linux/i2c.h>
-
-#define SI4713_NAME "radio-si4713"
-
-/*
- * Platform dependent definition
- */
-struct radio_si4713_platform_data {
- int i2c_bus;
- struct i2c_board_info *subdev_board_info;
-};
-
-#endif /* ifndef RADIO_SI4713_H*/
diff --git a/ANDROID_3.4.5/include/media/rc-core.h b/ANDROID_3.4.5/include/media/rc-core.h
deleted file mode 100644
index b0c494a6..00000000
--- a/ANDROID_3.4.5/include/media/rc-core.h
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
- * Remote Controller core header
- *
- * Copyright (C) 2009-2010 by Mauro Carvalho Chehab <mchehab@redhat.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 version 2 of the License.
- *
- * 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 _RC_CORE
-#define _RC_CORE
-
-#include <linux/spinlock.h>
-#include <linux/kfifo.h>
-#include <linux/time.h>
-#include <linux/timer.h>
-#include <media/rc-map.h>
-
-extern int rc_core_debug;
-#define IR_dprintk(level, fmt, ...) \
-do { \
- if (rc_core_debug >= level) \
- pr_debug("%s: " fmt, __func__, ##__VA_ARGS__); \
-} while (0)
-
-enum rc_driver_type {
- RC_DRIVER_SCANCODE = 0, /* Driver or hardware generates a scancode */
- RC_DRIVER_IR_RAW, /* Needs a Infra-Red pulse/space decoder */
-};
-
-/**
- * struct rc_dev - represents a remote control device
- * @dev: driver model's view of this device
- * @input_name: name of the input child device
- * @input_phys: physical path to the input child device
- * @input_id: id of the input child device (struct input_id)
- * @driver_name: name of the hardware driver which registered this device
- * @map_name: name of the default keymap
- * @rc_map: current scan/key table
- * @lock: used to ensure we've filled in all protocol details before
- * anyone can call show_protocols or store_protocols
- * @devno: unique remote control device number
- * @raw: additional data for raw pulse/space devices
- * @input_dev: the input child device used to communicate events to userspace
- * @driver_type: specifies if protocol decoding is done in hardware or software
- * @idle: used to keep track of RX state
- * @allowed_protos: bitmask with the supported RC_TYPE_* protocols
- * @scanmask: some hardware decoders are not capable of providing the full
- * scancode to the application. As this is a hardware limit, we can't do
- * anything with it. Yet, as the same keycode table can be used with other
- * devices, a mask is provided to allow its usage. Drivers should generally
- * leave this field in blank
- * @priv: driver-specific data
- * @keylock: protects the remaining members of the struct
- * @keypressed: whether a key is currently pressed
- * @keyup_jiffies: time (in jiffies) when the current keypress should be released
- * @timer_keyup: timer for releasing a keypress
- * @last_keycode: keycode of last keypress
- * @last_scancode: scancode of last keypress
- * @last_toggle: toggle value of last command
- * @timeout: optional time after which device stops sending data
- * @min_timeout: minimum timeout supported by device
- * @max_timeout: maximum timeout supported by device
- * @rx_resolution : resolution (in ns) of input sampler
- * @tx_resolution: resolution (in ns) of output sampler
- * @change_protocol: allow changing the protocol used on hardware decoders
- * @open: callback to allow drivers to enable polling/irq when IR input device
- * is opened.
- * @close: callback to allow drivers to disable polling/irq when IR input device
- * is opened.
- * @s_tx_mask: set transmitter mask (for devices with multiple tx outputs)
- * @s_tx_carrier: set transmit carrier frequency
- * @s_tx_duty_cycle: set transmit duty cycle (0% - 100%)
- * @s_rx_carrier: inform driver about carrier it is expected to handle
- * @tx_ir: transmit IR
- * @s_idle: enable/disable hardware idle mode, upon which,
- * device doesn't interrupt host until it sees IR pulses
- * @s_learning_mode: enable wide band receiver used for learning
- * @s_carrier_report: enable carrier reports
- */
-struct rc_dev {
- struct device dev;
- const char *input_name;
- const char *input_phys;
- struct input_id input_id;
- char *driver_name;
- const char *map_name;
- struct rc_map rc_map;
- struct mutex lock;
- unsigned long devno;
- struct ir_raw_event_ctrl *raw;
- struct input_dev *input_dev;
- enum rc_driver_type driver_type;
- bool idle;
- u64 allowed_protos;
- u32 scanmask;
- void *priv;
- spinlock_t keylock;
- bool keypressed;
- unsigned long keyup_jiffies;
- struct timer_list timer_keyup;
- u32 last_keycode;
- u32 last_scancode;
- u8 last_toggle;
- u32 timeout;
- u32 min_timeout;
- u32 max_timeout;
- u32 rx_resolution;
- u32 tx_resolution;
- int (*change_protocol)(struct rc_dev *dev, u64 rc_type);
- int (*open)(struct rc_dev *dev);
- void (*close)(struct rc_dev *dev);
- int (*s_tx_mask)(struct rc_dev *dev, u32 mask);
- int (*s_tx_carrier)(struct rc_dev *dev, u32 carrier);
- int (*s_tx_duty_cycle)(struct rc_dev *dev, u32 duty_cycle);
- int (*s_rx_carrier_range)(struct rc_dev *dev, u32 min, u32 max);
- int (*tx_ir)(struct rc_dev *dev, unsigned *txbuf, unsigned n);
- void (*s_idle)(struct rc_dev *dev, bool enable);
- int (*s_learning_mode)(struct rc_dev *dev, int enable);
- int (*s_carrier_report) (struct rc_dev *dev, int enable);
-};
-
-#define to_rc_dev(d) container_of(d, struct rc_dev, dev)
-
-/*
- * From rc-main.c
- * Those functions can be used on any type of Remote Controller. They
- * basically creates an input_dev and properly reports the device as a
- * Remote Controller, at sys/class/rc.
- */
-
-struct rc_dev *rc_allocate_device(void);
-void rc_free_device(struct rc_dev *dev);
-int rc_register_device(struct rc_dev *dev);
-void rc_unregister_device(struct rc_dev *dev);
-
-void rc_repeat(struct rc_dev *dev);
-void rc_keydown(struct rc_dev *dev, int scancode, u8 toggle);
-void rc_keydown_notimeout(struct rc_dev *dev, int scancode, u8 toggle);
-void rc_keyup(struct rc_dev *dev);
-u32 rc_g_keycode_from_table(struct rc_dev *dev, u32 scancode);
-
-/*
- * From rc-raw.c
- * The Raw interface is specific to InfraRed. It may be a good idea to
- * split it later into a separate header.
- */
-
-enum raw_event_type {
- IR_SPACE = (1 << 0),
- IR_PULSE = (1 << 1),
- IR_START_EVENT = (1 << 2),
- IR_STOP_EVENT = (1 << 3),
-};
-
-struct ir_raw_event {
- union {
- u32 duration;
-
- struct {
- u32 carrier;
- u8 duty_cycle;
- };
- };
-
- unsigned pulse:1;
- unsigned reset:1;
- unsigned timeout:1;
- unsigned carrier_report:1;
-};
-
-#define DEFINE_IR_RAW_EVENT(event) \
- struct ir_raw_event event = { \
- { .duration = 0 } , \
- .pulse = 0, \
- .reset = 0, \
- .timeout = 0, \
- .carrier_report = 0 }
-
-static inline void init_ir_raw_event(struct ir_raw_event *ev)
-{
- memset(ev, 0, sizeof(*ev));
-}
-
-#define IR_MAX_DURATION 0xFFFFFFFF /* a bit more than 4 seconds */
-#define US_TO_NS(usec) ((usec) * 1000)
-#define MS_TO_US(msec) ((msec) * 1000)
-#define MS_TO_NS(msec) ((msec) * 1000 * 1000)
-
-void ir_raw_event_handle(struct rc_dev *dev);
-int ir_raw_event_store(struct rc_dev *dev, struct ir_raw_event *ev);
-int ir_raw_event_store_edge(struct rc_dev *dev, enum raw_event_type type);
-int ir_raw_event_store_with_filter(struct rc_dev *dev,
- struct ir_raw_event *ev);
-void ir_raw_event_set_idle(struct rc_dev *dev, bool idle);
-
-static inline void ir_raw_event_reset(struct rc_dev *dev)
-{
- DEFINE_IR_RAW_EVENT(ev);
- ev.reset = true;
-
- ir_raw_event_store(dev, &ev);
- ir_raw_event_handle(dev);
-}
-
-/* extract mask bits out of data and pack them into the result */
-static inline u32 ir_extract_bits(u32 data, u32 mask)
-{
- u32 vbit = 1, value = 0;
-
- do {
- if (mask & 1) {
- if (data & 1)
- value |= vbit;
- vbit <<= 1;
- }
- data >>= 1;
- } while (mask >>= 1);
-
- return value;
-}
-
-#endif /* _RC_CORE */
diff --git a/ANDROID_3.4.5/include/media/rc-map.h b/ANDROID_3.4.5/include/media/rc-map.h
deleted file mode 100644
index 8db6741c..00000000
--- a/ANDROID_3.4.5/include/media/rc-map.h
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * rc-map.h - define RC map names used by RC drivers
- *
- * Copyright (c) 2010 by Mauro Carvalho Chehab <mchehab@redhat.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/input.h>
-
-#define RC_TYPE_UNKNOWN 0
-#define RC_TYPE_RC5 (1 << 0) /* Philips RC5 protocol */
-#define RC_TYPE_NEC (1 << 1)
-#define RC_TYPE_RC6 (1 << 2) /* Philips RC6 protocol */
-#define RC_TYPE_JVC (1 << 3) /* JVC protocol */
-#define RC_TYPE_SONY (1 << 4) /* Sony12/15/20 protocol */
-#define RC_TYPE_RC5_SZ (1 << 5) /* RC5 variant used by Streamzap */
-#define RC_TYPE_SANYO (1 << 6) /* Sanyo protocol */
-#define RC_TYPE_MCE_KBD (1 << 29) /* RC6-ish MCE keyboard/mouse */
-#define RC_TYPE_LIRC (1 << 30) /* Pass raw IR to lirc userspace */
-#define RC_TYPE_OTHER (1u << 31)
-
-#define RC_TYPE_ALL (RC_TYPE_RC5 | RC_TYPE_NEC | RC_TYPE_RC6 | \
- RC_TYPE_JVC | RC_TYPE_SONY | RC_TYPE_LIRC | \
- RC_TYPE_RC5_SZ | RC_TYPE_SANYO | RC_TYPE_MCE_KBD | \
- RC_TYPE_OTHER)
-
-struct rc_map_table {
- u32 scancode;
- u32 keycode;
-};
-
-struct rc_map {
- struct rc_map_table *scan;
- unsigned int size; /* Max number of entries */
- unsigned int len; /* Used number of entries */
- unsigned int alloc; /* Size of *scan in bytes */
- u64 rc_type;
- const char *name;
- spinlock_t lock;
-};
-
-struct rc_map_list {
- struct list_head list;
- struct rc_map map;
-};
-
-/* Routines from rc-map.c */
-
-int rc_map_register(struct rc_map_list *map);
-void rc_map_unregister(struct rc_map_list *map);
-struct rc_map *rc_map_get(const char *name);
-void rc_map_init(void);
-
-/* Names of the several keytables defined in-kernel */
-
-#define RC_MAP_ADSTECH_DVB_T_PCI "rc-adstech-dvb-t-pci"
-#define RC_MAP_ALINK_DTU_M "rc-alink-dtu-m"
-#define RC_MAP_ANYSEE "rc-anysee"
-#define RC_MAP_APAC_VIEWCOMP "rc-apac-viewcomp"
-#define RC_MAP_ASUS_PC39 "rc-asus-pc39"
-#define RC_MAP_ATI_TV_WONDER_HD_600 "rc-ati-tv-wonder-hd-600"
-#define RC_MAP_ATI_X10 "rc-ati-x10"
-#define RC_MAP_AVERMEDIA_A16D "rc-avermedia-a16d"
-#define RC_MAP_AVERMEDIA_CARDBUS "rc-avermedia-cardbus"
-#define RC_MAP_AVERMEDIA_DVBT "rc-avermedia-dvbt"
-#define RC_MAP_AVERMEDIA_M135A "rc-avermedia-m135a"
-#define RC_MAP_AVERMEDIA_M733A_RM_K6 "rc-avermedia-m733a-rm-k6"
-#define RC_MAP_AVERMEDIA_RM_KS "rc-avermedia-rm-ks"
-#define RC_MAP_AVERMEDIA "rc-avermedia"
-#define RC_MAP_AVERTV_303 "rc-avertv-303"
-#define RC_MAP_AZUREWAVE_AD_TU700 "rc-azurewave-ad-tu700"
-#define RC_MAP_BEHOLD_COLUMBUS "rc-behold-columbus"
-#define RC_MAP_BEHOLD "rc-behold"
-#define RC_MAP_BUDGET_CI_OLD "rc-budget-ci-old"
-#define RC_MAP_CINERGY_1400 "rc-cinergy-1400"
-#define RC_MAP_CINERGY "rc-cinergy"
-#define RC_MAP_DIB0700_NEC_TABLE "rc-dib0700-nec"
-#define RC_MAP_DIB0700_RC5_TABLE "rc-dib0700-rc5"
-#define RC_MAP_DIGITALNOW_TINYTWIN "rc-digitalnow-tinytwin"
-#define RC_MAP_DIGITTRADE "rc-digittrade"
-#define RC_MAP_DM1105_NEC "rc-dm1105-nec"
-#define RC_MAP_DNTV_LIVE_DVBT_PRO "rc-dntv-live-dvbt-pro"
-#define RC_MAP_DNTV_LIVE_DVB_T "rc-dntv-live-dvb-t"
-#define RC_MAP_EMPTY "rc-empty"
-#define RC_MAP_EM_TERRATEC "rc-em-terratec"
-#define RC_MAP_ENCORE_ENLTV2 "rc-encore-enltv2"
-#define RC_MAP_ENCORE_ENLTV_FM53 "rc-encore-enltv-fm53"
-#define RC_MAP_ENCORE_ENLTV "rc-encore-enltv"
-#define RC_MAP_EVGA_INDTUBE "rc-evga-indtube"
-#define RC_MAP_EZTV "rc-eztv"
-#define RC_MAP_FLYDVB "rc-flydvb"
-#define RC_MAP_FLYVIDEO "rc-flyvideo"
-#define RC_MAP_FUSIONHDTV_MCE "rc-fusionhdtv-mce"
-#define RC_MAP_GADMEI_RM008Z "rc-gadmei-rm008z"
-#define RC_MAP_GENIUS_TVGO_A11MCE "rc-genius-tvgo-a11mce"
-#define RC_MAP_GOTVIEW7135 "rc-gotview7135"
-#define RC_MAP_HAUPPAUGE_NEW "rc-hauppauge"
-#define RC_MAP_IMON_MCE "rc-imon-mce"
-#define RC_MAP_IMON_PAD "rc-imon-pad"
-#define RC_MAP_IODATA_BCTV7E "rc-iodata-bctv7e"
-#define RC_MAP_IT913X_V1 "rc-it913x-v1"
-#define RC_MAP_IT913X_V2 "rc-it913x-v2"
-#define RC_MAP_KAIOMY "rc-kaiomy"
-#define RC_MAP_KWORLD_315U "rc-kworld-315u"
-#define RC_MAP_KWORLD_PC150U "rc-kworld-pc150u"
-#define RC_MAP_KWORLD_PLUS_TV_ANALOG "rc-kworld-plus-tv-analog"
-#define RC_MAP_LEADTEK_Y04G0051 "rc-leadtek-y04g0051"
-#define RC_MAP_LIRC "rc-lirc"
-#define RC_MAP_LME2510 "rc-lme2510"
-#define RC_MAP_MANLI "rc-manli"
-#define RC_MAP_MEDION_X10 "rc-medion-x10"
-#define RC_MAP_MSI_DIGIVOX_II "rc-msi-digivox-ii"
-#define RC_MAP_MSI_DIGIVOX_III "rc-msi-digivox-iii"
-#define RC_MAP_MSI_TVANYWHERE_PLUS "rc-msi-tvanywhere-plus"
-#define RC_MAP_MSI_TVANYWHERE "rc-msi-tvanywhere"
-#define RC_MAP_NEBULA "rc-nebula"
-#define RC_MAP_NEC_TERRATEC_CINERGY_XS "rc-nec-terratec-cinergy-xs"
-#define RC_MAP_NORWOOD "rc-norwood"
-#define RC_MAP_NPGTECH "rc-npgtech"
-#define RC_MAP_PCTV_SEDNA "rc-pctv-sedna"
-#define RC_MAP_PINNACLE_COLOR "rc-pinnacle-color"
-#define RC_MAP_PINNACLE_GREY "rc-pinnacle-grey"
-#define RC_MAP_PINNACLE_PCTV_HD "rc-pinnacle-pctv-hd"
-#define RC_MAP_PIXELVIEW_NEW "rc-pixelview-new"
-#define RC_MAP_PIXELVIEW "rc-pixelview"
-#define RC_MAP_PIXELVIEW_002T "rc-pixelview-002t"
-#define RC_MAP_PIXELVIEW_MK12 "rc-pixelview-mk12"
-#define RC_MAP_POWERCOLOR_REAL_ANGEL "rc-powercolor-real-angel"
-#define RC_MAP_PROTEUS_2309 "rc-proteus-2309"
-#define RC_MAP_PURPLETV "rc-purpletv"
-#define RC_MAP_PV951 "rc-pv951"
-#define RC_MAP_HAUPPAUGE "rc-hauppauge"
-#define RC_MAP_RC5_TV "rc-rc5-tv"
-#define RC_MAP_RC6_MCE "rc-rc6-mce"
-#define RC_MAP_REAL_AUDIO_220_32_KEYS "rc-real-audio-220-32-keys"
-#define RC_MAP_SNAPSTREAM_FIREFLY "rc-snapstream-firefly"
-#define RC_MAP_STREAMZAP "rc-streamzap"
-#define RC_MAP_TBS_NEC "rc-tbs-nec"
-#define RC_MAP_TECHNISAT_USB2 "rc-technisat-usb2"
-#define RC_MAP_TERRATEC_CINERGY_XS "rc-terratec-cinergy-xs"
-#define RC_MAP_TERRATEC_SLIM "rc-terratec-slim"
-#define RC_MAP_TERRATEC_SLIM_2 "rc-terratec-slim-2"
-#define RC_MAP_TEVII_NEC "rc-tevii-nec"
-#define RC_MAP_TIVO "rc-tivo"
-#define RC_MAP_TOTAL_MEDIA_IN_HAND "rc-total-media-in-hand"
-#define RC_MAP_TREKSTOR "rc-trekstor"
-#define RC_MAP_TT_1500 "rc-tt-1500"
-#define RC_MAP_TWINHAN_VP1027_DVBS "rc-twinhan1027"
-#define RC_MAP_VIDEOMATE_K100 "rc-videomate-k100"
-#define RC_MAP_VIDEOMATE_S350 "rc-videomate-s350"
-#define RC_MAP_VIDEOMATE_TV_PVR "rc-videomate-tv-pvr"
-#define RC_MAP_WINFAST "rc-winfast"
-#define RC_MAP_WINFAST_USBII_DELUXE "rc-winfast-usbii-deluxe"
-
-/*
- * Please, do not just append newer Remote Controller names at the end.
- * The names should be ordered in alphabetical order
- */
diff --git a/ANDROID_3.4.5/include/media/rj54n1cb0c.h b/ANDROID_3.4.5/include/media/rj54n1cb0c.h
deleted file mode 100644
index 8ae3288a..00000000
--- a/ANDROID_3.4.5/include/media/rj54n1cb0c.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * RJ54N1CB0C Private data
- *
- * Copyright (C) 2009, Guennadi Liakhovetski <g.liakhovetski@gmx.de>
- *
- * 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.
- */
-
-#ifndef __RJ54N1CB0C_H__
-#define __RJ54N1CB0C_H__
-
-struct rj54n1_pdata {
- unsigned int mclk_freq;
- bool ioctl_high;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/s5k6aa.h b/ANDROID_3.4.5/include/media/s5k6aa.h
deleted file mode 100644
index ba34f705..00000000
--- a/ANDROID_3.4.5/include/media/s5k6aa.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * S5K6AAFX camera sensor driver header
- *
- * Copyright (C) 2011 Samsung Electronics Co., 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; either version 2 of the License, or
- * (at your option) any later version.
- */
-
-#ifndef S5K6AA_H
-#define S5K6AA_H
-
-#include <media/v4l2-mediabus.h>
-
-/**
- * struct s5k6aa_gpio - data structure describing a GPIO
- * @gpio: GPIO number
- * @level: indicates active state of the @gpio
- */
-struct s5k6aa_gpio {
- int gpio;
- int level;
-};
-
-/**
- * struct s5k6aa_platform_data - s5k6aa driver platform data
- * @set_power: an additional callback to the board code, called
- * after enabling the regulators and before switching
- * the sensor off
- * @mclk_frequency: sensor's master clock frequency in Hz
- * @gpio_reset: GPIO driving RESET pin
- * @gpio_stby: GPIO driving STBY pin
- * @nlanes: maximum number of MIPI-CSI lanes used
- * @horiz_flip: default horizontal image flip value, non zero to enable
- * @vert_flip: default vertical image flip value, non zero to enable
- */
-
-struct s5k6aa_platform_data {
- int (*set_power)(int enable);
- unsigned long mclk_frequency;
- struct s5k6aa_gpio gpio_reset;
- struct s5k6aa_gpio gpio_stby;
- enum v4l2_mbus_type bus_type;
- u8 nlanes;
- u8 horiz_flip;
- u8 vert_flip;
-};
-
-#endif /* S5K6AA_H */
diff --git a/ANDROID_3.4.5/include/media/s5p_fimc.h b/ANDROID_3.4.5/include/media/s5p_fimc.h
deleted file mode 100644
index 688fb3f1..00000000
--- a/ANDROID_3.4.5/include/media/s5p_fimc.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Samsung S5P SoC camera interface driver header
- *
- * Copyright (c) 2010 Samsung Electronics Co., Ltd
- * Author: Sylwester Nawrocki, <s.nawrocki@samsung.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.
- */
-
-#ifndef S5P_FIMC_H_
-#define S5P_FIMC_H_
-
-enum cam_bus_type {
- FIMC_ITU_601 = 1,
- FIMC_ITU_656,
- FIMC_MIPI_CSI2,
- FIMC_LCD_WB, /* FIFO link from LCD mixer */
-};
-
-struct i2c_board_info;
-
-/**
- * struct s5p_fimc_isp_info - image sensor information required for host
- * interace configuration.
- *
- * @board_info: pointer to I2C subdevice's board info
- * @clk_frequency: frequency of the clock the host interface provides to sensor
- * @bus_type: determines bus type, MIPI, ITU-R BT.601 etc.
- * @csi_data_align: MIPI-CSI interface data alignment in bits
- * @i2c_bus_num: i2c control bus id the sensor is attached to
- * @mux_id: FIMC camera interface multiplexer index (separate for MIPI and ITU)
- * @clk_id: index of the SoC peripheral clock for sensors
- * @flags: the parallel bus flags defining signals polarity (V4L2_MBUS_*)
- */
-struct s5p_fimc_isp_info {
- struct i2c_board_info *board_info;
- unsigned long clk_frequency;
- enum cam_bus_type bus_type;
- u16 csi_data_align;
- u16 i2c_bus_num;
- u16 mux_id;
- u16 flags;
- u8 clk_id;
-};
-
-/**
- * struct s5p_platform_fimc - camera host interface platform data
- *
- * @isp_info: properties of camera sensor required for host interface setup
- * @num_clients: the number of attached image sensors
- */
-struct s5p_platform_fimc {
- struct s5p_fimc_isp_info *isp_info;
- int num_clients;
-};
-
-/*
- * v4l2_device notification id. This is only for internal use in the kernel.
- * Sensor subdevs should issue S5P_FIMC_TX_END_NOTIFY notification in single
- * frame capture mode when there is only one VSYNC pulse issued by the sensor
- * at begining of the frame transmission.
- */
-#define S5P_FIMC_TX_END_NOTIFY _IO('e', 0)
-
-#endif /* S5P_FIMC_H_ */
diff --git a/ANDROID_3.4.5/include/media/s5p_hdmi.h b/ANDROID_3.4.5/include/media/s5p_hdmi.h
deleted file mode 100644
index 361a751f..00000000
--- a/ANDROID_3.4.5/include/media/s5p_hdmi.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Driver header for S5P HDMI chip.
- *
- * Copyright (c) 2011 Samsung Electronics, Co. Ltd
- * Contact: Tomasz Stanislawski <t.stanislaws@samsung.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 S5P_HDMI_H
-#define S5P_HDMI_H
-
-struct i2c_board_info;
-
-/**
- * @hdmiphy_bus: controller id for HDMIPHY bus
- * @hdmiphy_info: template for HDMIPHY I2C device
- * @mhl_bus: controller id for MHL control bus
- * @mhl_info: template for MHL I2C device
- *
- * NULL pointer for *_info fields indicates that
- * the corresponding chip is not present
- */
-struct s5p_hdmi_platform_data {
- int hdmiphy_bus;
- struct i2c_board_info *hdmiphy_info;
- int mhl_bus;
- struct i2c_board_info *mhl_info;
-};
-
-#endif /* S5P_HDMI_H */
-
diff --git a/ANDROID_3.4.5/include/media/saa6588.h b/ANDROID_3.4.5/include/media/saa6588.h
deleted file mode 100644
index 2c3c4420..00000000
--- a/ANDROID_3.4.5/include/media/saa6588.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
-
- Types and defines needed for RDS. This is included by
- saa6588.c and every driver (e.g. bttv-driver.c) that wants
- to use the saa6588 module.
-
- (c) 2005 by Hans J. Koch
-
- 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-*/
-
-#ifndef _SAA6588_H
-#define _SAA6588_H
-
-struct saa6588_command {
- unsigned int block_count;
- int result;
- unsigned char __user *buffer;
- struct file *instance;
- poll_table *event_list;
-};
-
-/* These ioctls are internal to the kernel */
-#define SAA6588_CMD_OPEN _IOW('R', 1, int)
-#define SAA6588_CMD_CLOSE _IOW('R', 2, int)
-#define SAA6588_CMD_READ _IOR('R', 3, int)
-#define SAA6588_CMD_POLL _IOR('R', 4, int)
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/saa6752hs.h b/ANDROID_3.4.5/include/media/saa6752hs.h
deleted file mode 100644
index 3b8686ea..00000000
--- a/ANDROID_3.4.5/include/media/saa6752hs.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- saa6752hs.h - definition for saa6752hs MPEG encoder
-
- Copyright (C) 2003 Andrew de Quincey <adq@lidskialf.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., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
-
-
-/*
- * Local variables:
- * c-basic-offset: 8
- * End:
- */
diff --git a/ANDROID_3.4.5/include/media/saa7115.h b/ANDROID_3.4.5/include/media/saa7115.h
deleted file mode 100644
index bab21271..00000000
--- a/ANDROID_3.4.5/include/media/saa7115.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- saa7115.h - definition for saa7111/3/4/5 inputs and frequency flags
-
- Copyright (C) 2006 Hans Verkuil (hverkuil@xs4all.nl)
-
- 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
-
-#ifndef _SAA7115_H_
-#define _SAA7115_H_
-
-/* SAA7111/3/4/5 HW inputs */
-#define SAA7115_COMPOSITE0 0
-#define SAA7115_COMPOSITE1 1
-#define SAA7115_COMPOSITE2 2
-#define SAA7115_COMPOSITE3 3
-#define SAA7115_COMPOSITE4 4 /* not available for the saa7111/3 */
-#define SAA7115_COMPOSITE5 5 /* not available for the saa7111/3 */
-#define SAA7115_SVIDEO0 6
-#define SAA7115_SVIDEO1 7
-#define SAA7115_SVIDEO2 8
-#define SAA7115_SVIDEO3 9
-
-/* SAA7115 v4l2_crystal_freq frequency values */
-#define SAA7115_FREQ_32_11_MHZ 32110000 /* 32.11 MHz crystal, SAA7114/5 only */
-#define SAA7115_FREQ_24_576_MHZ 24576000 /* 24.576 MHz crystal */
-
-/* SAA7115 v4l2_crystal_freq audio clock control flags */
-#define SAA7115_FREQ_FL_UCGC (1 << 0) /* SA 3A[7], UCGC, SAA7115 only */
-#define SAA7115_FREQ_FL_CGCDIV (1 << 1) /* SA 3A[6], CGCDIV, SAA7115 only */
-#define SAA7115_FREQ_FL_APLL (1 << 2) /* SA 3A[3], APLL, SAA7114/5 only */
-
-#define SAA7115_IPORT_ON 1
-#define SAA7115_IPORT_OFF 0
-
-/* SAA7111 specific output flags */
-#define SAA7111_VBI_BYPASS 2
-#define SAA7111_FMT_YUV422 0x00
-#define SAA7111_FMT_RGB 0x40
-#define SAA7111_FMT_CCIR 0x80
-#define SAA7111_FMT_YUV411 0xc0
-
-#endif
-
diff --git a/ANDROID_3.4.5/include/media/saa7127.h b/ANDROID_3.4.5/include/media/saa7127.h
deleted file mode 100644
index bbcf8621..00000000
--- a/ANDROID_3.4.5/include/media/saa7127.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- saa7127.h - definition for saa7126/7/8/9 inputs/outputs
-
- Copyright (C) 2006 Hans Verkuil (hverkuil@xs4all.nl)
-
- 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
-
-#ifndef _SAA7127_H_
-#define _SAA7127_H_
-
-/* Enumeration for the supported input types */
-enum saa7127_input_type {
- SAA7127_INPUT_TYPE_NORMAL,
- SAA7127_INPUT_TYPE_TEST_IMAGE
-};
-
-/* Enumeration for the supported output signal types */
-enum saa7127_output_type {
- SAA7127_OUTPUT_TYPE_BOTH,
- SAA7127_OUTPUT_TYPE_COMPOSITE,
- SAA7127_OUTPUT_TYPE_SVIDEO,
- SAA7127_OUTPUT_TYPE_RGB,
- SAA7127_OUTPUT_TYPE_YUV_C,
- SAA7127_OUTPUT_TYPE_YUV_V
-};
-
-#endif
-
diff --git a/ANDROID_3.4.5/include/media/saa7146.h b/ANDROID_3.4.5/include/media/saa7146.h
deleted file mode 100644
index 0f037e8e..00000000
--- a/ANDROID_3.4.5/include/media/saa7146.h
+++ /dev/null
@@ -1,475 +0,0 @@
-#ifndef __SAA7146__
-#define __SAA7146__
-
-#include <linux/delay.h> /* for delay-stuff */
-#include <linux/slab.h> /* for kmalloc/kfree */
-#include <linux/pci.h> /* for pci-config-stuff, vendor ids etc. */
-#include <linux/init.h> /* for "__init" */
-#include <linux/interrupt.h> /* for IMMEDIATE_BH */
-#include <linux/kmod.h> /* for kernel module loader */
-#include <linux/i2c.h> /* for i2c subsystem */
-#include <asm/io.h> /* for accessing devices */
-#include <linux/stringify.h>
-#include <linux/mutex.h>
-#include <linux/scatterlist.h>
-#include <media/v4l2-device.h>
-
-#include <linux/vmalloc.h> /* for vmalloc() */
-#include <linux/mm.h> /* for vmalloc_to_page() */
-
-#define SAA7146_VERSION_CODE 0x000600 /* 0.6.0 */
-
-#define saa7146_write(sxy,adr,dat) writel((dat),(sxy->mem+(adr)))
-#define saa7146_read(sxy,adr) readl(sxy->mem+(adr))
-
-extern unsigned int saa7146_debug;
-
-#ifndef DEBUG_VARIABLE
- #define DEBUG_VARIABLE saa7146_debug
-#endif
-
-#define ERR(fmt, ...) pr_err("%s: " fmt, __func__, ##__VA_ARGS__)
-
-#define _DBG(mask, fmt, ...) \
-do { \
- if (DEBUG_VARIABLE & mask) \
- pr_debug("%s(): " fmt, __func__, ##__VA_ARGS__); \
-} while (0)
-
-/* simple debug messages */
-#define DEB_S(fmt, ...) _DBG(0x01, fmt, ##__VA_ARGS__)
-/* more detailed debug messages */
-#define DEB_D(fmt, ...) _DBG(0x02, fmt, ##__VA_ARGS__)
-/* print enter and exit of functions */
-#define DEB_EE(fmt, ...) _DBG(0x04, fmt, ##__VA_ARGS__)
-/* i2c debug messages */
-#define DEB_I2C(fmt, ...) _DBG(0x08, fmt, ##__VA_ARGS__)
-/* vbi debug messages */
-#define DEB_VBI(fmt, ...) _DBG(0x10, fmt, ##__VA_ARGS__)
-/* interrupt debug messages */
-#define DEB_INT(fmt, ...) _DBG(0x20, fmt, ##__VA_ARGS__)
-/* capture debug messages */
-#define DEB_CAP(fmt, ...) _DBG(0x40, fmt, ##__VA_ARGS__)
-
-#define SAA7146_ISR_CLEAR(x,y) \
- saa7146_write(x, ISR, (y));
-
-struct module;
-
-struct saa7146_dev;
-struct saa7146_extension;
-struct saa7146_vv;
-
-/* saa7146 page table */
-struct saa7146_pgtable {
- unsigned int size;
- __le32 *cpu;
- dma_addr_t dma;
- /* used for offsets for u,v planes for planar capture modes */
- unsigned long offset;
- /* used for custom pagetables (used for example by budget dvb cards) */
- struct scatterlist *slist;
- int nents;
-};
-
-struct saa7146_pci_extension_data {
- struct saa7146_extension *ext;
- void *ext_priv; /* most likely a name string */
-};
-
-#define MAKE_EXTENSION_PCI(x_var, x_vendor, x_device) \
- { \
- .vendor = PCI_VENDOR_ID_PHILIPS, \
- .device = PCI_DEVICE_ID_PHILIPS_SAA7146, \
- .subvendor = x_vendor, \
- .subdevice = x_device, \
- .driver_data = (unsigned long)& x_var, \
- }
-
-struct saa7146_extension
-{
- char name[32]; /* name of the device */
-#define SAA7146_USE_I2C_IRQ 0x1
-#define SAA7146_I2C_SHORT_DELAY 0x2
- int flags;
-
- /* pairs of subvendor and subdevice ids for
- supported devices, last entry 0xffff, 0xfff */
- struct module *module;
- struct pci_driver driver;
- struct pci_device_id *pci_tbl;
-
- /* extension functions */
- int (*probe)(struct saa7146_dev *);
- int (*attach)(struct saa7146_dev *, struct saa7146_pci_extension_data *);
- int (*detach)(struct saa7146_dev*);
-
- u32 irq_mask; /* mask to indicate, which irq-events are handled by the extension */
- void (*irq_func)(struct saa7146_dev*, u32* irq_mask);
-};
-
-struct saa7146_dma
-{
- dma_addr_t dma_handle;
- __le32 *cpu_addr;
-};
-
-struct saa7146_dev
-{
- struct module *module;
-
- struct list_head item;
-
- struct v4l2_device v4l2_dev;
-
- /* different device locks */
- spinlock_t slock;
- struct mutex v4l2_lock;
-
- unsigned char __iomem *mem; /* pointer to mapped IO memory */
- u32 revision; /* chip revision; needed for bug-workarounds*/
-
- /* pci-device & irq stuff*/
- char name[32];
- struct pci_dev *pci;
- u32 int_todo;
- spinlock_t int_slock;
-
- /* extension handling */
- struct saa7146_extension *ext; /* indicates if handled by extension */
- void *ext_priv; /* pointer for extension private use (most likely some private data) */
- struct saa7146_ext_vv *ext_vv_data;
-
- /* per device video/vbi informations (if available) */
- struct saa7146_vv *vv_data;
- void (*vv_callback)(struct saa7146_dev *dev, unsigned long status);
-
- /* i2c-stuff */
- struct mutex i2c_lock;
-
- u32 i2c_bitrate;
- struct saa7146_dma d_i2c; /* pointer to i2c memory */
- wait_queue_head_t i2c_wq;
- int i2c_op;
-
- /* memories */
- struct saa7146_dma d_rps0;
- struct saa7146_dma d_rps1;
-};
-
-static inline struct saa7146_dev *to_saa7146_dev(struct v4l2_device *v4l2_dev)
-{
- return container_of(v4l2_dev, struct saa7146_dev, v4l2_dev);
-}
-
-/* from saa7146_i2c.c */
-int saa7146_i2c_adapter_prepare(struct saa7146_dev *dev, struct i2c_adapter *i2c_adapter, u32 bitrate);
-
-/* from saa7146_core.c */
-extern struct list_head saa7146_devices;
-extern struct mutex saa7146_devices_lock;
-int saa7146_register_extension(struct saa7146_extension*);
-int saa7146_unregister_extension(struct saa7146_extension*);
-struct saa7146_format* saa7146_format_by_fourcc(struct saa7146_dev *dev, int fourcc);
-int saa7146_pgtable_alloc(struct pci_dev *pci, struct saa7146_pgtable *pt);
-void saa7146_pgtable_free(struct pci_dev *pci, struct saa7146_pgtable *pt);
-int saa7146_pgtable_build_single(struct pci_dev *pci, struct saa7146_pgtable *pt, struct scatterlist *list, int length );
-void *saa7146_vmalloc_build_pgtable(struct pci_dev *pci, long length, struct saa7146_pgtable *pt);
-void saa7146_vfree_destroy_pgtable(struct pci_dev *pci, void *mem, struct saa7146_pgtable *pt);
-void saa7146_setgpio(struct saa7146_dev *dev, int port, u32 data);
-int saa7146_wait_for_debi_done(struct saa7146_dev *dev, int nobusyloop);
-
-/* some memory sizes */
-#define SAA7146_I2C_MEM ( 1*PAGE_SIZE)
-#define SAA7146_RPS_MEM ( 1*PAGE_SIZE)
-
-/* some i2c constants */
-#define SAA7146_I2C_TIMEOUT 100 /* i2c-timeout-value in ms */
-#define SAA7146_I2C_RETRIES 3 /* how many times shall we retry an i2c-operation? */
-#define SAA7146_I2C_DELAY 5 /* time we wait after certain i2c-operations */
-
-/* unsorted defines */
-#define ME1 0x0000000800
-#define PV1 0x0000000008
-
-/* gpio defines */
-#define SAA7146_GPIO_INPUT 0x00
-#define SAA7146_GPIO_IRQHI 0x10
-#define SAA7146_GPIO_IRQLO 0x20
-#define SAA7146_GPIO_IRQHL 0x30
-#define SAA7146_GPIO_OUTLO 0x40
-#define SAA7146_GPIO_OUTHI 0x50
-
-/* debi defines */
-#define DEBINOSWAP 0x000e0000
-
-/* define for the register programming sequencer (rps) */
-#define CMD_NOP 0x00000000 /* No operation */
-#define CMD_CLR_EVENT 0x00000000 /* Clear event */
-#define CMD_SET_EVENT 0x10000000 /* Set signal event */
-#define CMD_PAUSE 0x20000000 /* Pause */
-#define CMD_CHECK_LATE 0x30000000 /* Check late */
-#define CMD_UPLOAD 0x40000000 /* Upload */
-#define CMD_STOP 0x50000000 /* Stop */
-#define CMD_INTERRUPT 0x60000000 /* Interrupt */
-#define CMD_JUMP 0x80000000 /* Jump */
-#define CMD_WR_REG 0x90000000 /* Write (load) register */
-#define CMD_RD_REG 0xa0000000 /* Read (store) register */
-#define CMD_WR_REG_MASK 0xc0000000 /* Write register with mask */
-
-#define CMD_OAN MASK_27
-#define CMD_INV MASK_26
-#define CMD_SIG4 MASK_25
-#define CMD_SIG3 MASK_24
-#define CMD_SIG2 MASK_23
-#define CMD_SIG1 MASK_22
-#define CMD_SIG0 MASK_21
-#define CMD_O_FID_B MASK_14
-#define CMD_E_FID_B MASK_13
-#define CMD_O_FID_A MASK_12
-#define CMD_E_FID_A MASK_11
-
-/* some events and command modifiers for rps1 squarewave generator */
-#define EVT_HS (1<<15) // Source Line Threshold reached
-#define EVT_VBI_B (1<<9) // VSYNC Event
-#define RPS_OAN (1<<27) // 1: OR events, 0: AND events
-#define RPS_INV (1<<26) // Invert (compound) event
-#define GPIO3_MSK 0xFF000000 // GPIO #3 control bits
-
-/* Bit mask constants */
-#define MASK_00 0x00000001 /* Mask value for bit 0 */
-#define MASK_01 0x00000002 /* Mask value for bit 1 */
-#define MASK_02 0x00000004 /* Mask value for bit 2 */
-#define MASK_03 0x00000008 /* Mask value for bit 3 */
-#define MASK_04 0x00000010 /* Mask value for bit 4 */
-#define MASK_05 0x00000020 /* Mask value for bit 5 */
-#define MASK_06 0x00000040 /* Mask value for bit 6 */
-#define MASK_07 0x00000080 /* Mask value for bit 7 */
-#define MASK_08 0x00000100 /* Mask value for bit 8 */
-#define MASK_09 0x00000200 /* Mask value for bit 9 */
-#define MASK_10 0x00000400 /* Mask value for bit 10 */
-#define MASK_11 0x00000800 /* Mask value for bit 11 */
-#define MASK_12 0x00001000 /* Mask value for bit 12 */
-#define MASK_13 0x00002000 /* Mask value for bit 13 */
-#define MASK_14 0x00004000 /* Mask value for bit 14 */
-#define MASK_15 0x00008000 /* Mask value for bit 15 */
-#define MASK_16 0x00010000 /* Mask value for bit 16 */
-#define MASK_17 0x00020000 /* Mask value for bit 17 */
-#define MASK_18 0x00040000 /* Mask value for bit 18 */
-#define MASK_19 0x00080000 /* Mask value for bit 19 */
-#define MASK_20 0x00100000 /* Mask value for bit 20 */
-#define MASK_21 0x00200000 /* Mask value for bit 21 */
-#define MASK_22 0x00400000 /* Mask value for bit 22 */
-#define MASK_23 0x00800000 /* Mask value for bit 23 */
-#define MASK_24 0x01000000 /* Mask value for bit 24 */
-#define MASK_25 0x02000000 /* Mask value for bit 25 */
-#define MASK_26 0x04000000 /* Mask value for bit 26 */
-#define MASK_27 0x08000000 /* Mask value for bit 27 */
-#define MASK_28 0x10000000 /* Mask value for bit 28 */
-#define MASK_29 0x20000000 /* Mask value for bit 29 */
-#define MASK_30 0x40000000 /* Mask value for bit 30 */
-#define MASK_31 0x80000000 /* Mask value for bit 31 */
-
-#define MASK_B0 0x000000ff /* Mask value for byte 0 */
-#define MASK_B1 0x0000ff00 /* Mask value for byte 1 */
-#define MASK_B2 0x00ff0000 /* Mask value for byte 2 */
-#define MASK_B3 0xff000000 /* Mask value for byte 3 */
-
-#define MASK_W0 0x0000ffff /* Mask value for word 0 */
-#define MASK_W1 0xffff0000 /* Mask value for word 1 */
-
-#define MASK_PA 0xfffffffc /* Mask value for physical address */
-#define MASK_PR 0xfffffffe /* Mask value for protection register */
-#define MASK_ER 0xffffffff /* Mask value for the entire register */
-
-#define MASK_NONE 0x00000000 /* No mask */
-
-/* register aliases */
-#define BASE_ODD1 0x00 /* Video DMA 1 registers */
-#define BASE_EVEN1 0x04
-#define PROT_ADDR1 0x08
-#define PITCH1 0x0C
-#define BASE_PAGE1 0x10 /* Video DMA 1 base page */
-#define NUM_LINE_BYTE1 0x14
-
-#define BASE_ODD2 0x18 /* Video DMA 2 registers */
-#define BASE_EVEN2 0x1C
-#define PROT_ADDR2 0x20
-#define PITCH2 0x24
-#define BASE_PAGE2 0x28 /* Video DMA 2 base page */
-#define NUM_LINE_BYTE2 0x2C
-
-#define BASE_ODD3 0x30 /* Video DMA 3 registers */
-#define BASE_EVEN3 0x34
-#define PROT_ADDR3 0x38
-#define PITCH3 0x3C
-#define BASE_PAGE3 0x40 /* Video DMA 3 base page */
-#define NUM_LINE_BYTE3 0x44
-
-#define PCI_BT_V1 0x48 /* Video/FIFO 1 */
-#define PCI_BT_V2 0x49 /* Video/FIFO 2 */
-#define PCI_BT_V3 0x4A /* Video/FIFO 3 */
-#define PCI_BT_DEBI 0x4B /* DEBI */
-#define PCI_BT_A 0x4C /* Audio */
-
-#define DD1_INIT 0x50 /* Init setting of DD1 interface */
-
-#define DD1_STREAM_B 0x54 /* DD1 B video data stream handling */
-#define DD1_STREAM_A 0x56 /* DD1 A video data stream handling */
-
-#define BRS_CTRL 0x58 /* BRS control register */
-#define HPS_CTRL 0x5C /* HPS control register */
-#define HPS_V_SCALE 0x60 /* HPS vertical scale */
-#define HPS_V_GAIN 0x64 /* HPS vertical ACL and gain */
-#define HPS_H_PRESCALE 0x68 /* HPS horizontal prescale */
-#define HPS_H_SCALE 0x6C /* HPS horizontal scale */
-#define BCS_CTRL 0x70 /* BCS control */
-#define CHROMA_KEY_RANGE 0x74
-#define CLIP_FORMAT_CTRL 0x78 /* HPS outputs formats & clipping */
-
-#define DEBI_CONFIG 0x7C
-#define DEBI_COMMAND 0x80
-#define DEBI_PAGE 0x84
-#define DEBI_AD 0x88
-
-#define I2C_TRANSFER 0x8C
-#define I2C_STATUS 0x90
-
-#define BASE_A1_IN 0x94 /* Audio 1 input DMA */
-#define PROT_A1_IN 0x98
-#define PAGE_A1_IN 0x9C
-
-#define BASE_A1_OUT 0xA0 /* Audio 1 output DMA */
-#define PROT_A1_OUT 0xA4
-#define PAGE_A1_OUT 0xA8
-
-#define BASE_A2_IN 0xAC /* Audio 2 input DMA */
-#define PROT_A2_IN 0xB0
-#define PAGE_A2_IN 0xB4
-
-#define BASE_A2_OUT 0xB8 /* Audio 2 output DMA */
-#define PROT_A2_OUT 0xBC
-#define PAGE_A2_OUT 0xC0
-
-#define RPS_PAGE0 0xC4 /* RPS task 0 page register */
-#define RPS_PAGE1 0xC8 /* RPS task 1 page register */
-
-#define RPS_THRESH0 0xCC /* HBI threshold for task 0 */
-#define RPS_THRESH1 0xD0 /* HBI threshold for task 1 */
-
-#define RPS_TOV0 0xD4 /* RPS timeout for task 0 */
-#define RPS_TOV1 0xD8 /* RPS timeout for task 1 */
-
-#define IER 0xDC /* Interrupt enable register */
-
-#define GPIO_CTRL 0xE0 /* GPIO 0-3 register */
-
-#define EC1SSR 0xE4 /* Event cnt set 1 source select */
-#define EC2SSR 0xE8 /* Event cnt set 2 source select */
-#define ECT1R 0xEC /* Event cnt set 1 thresholds */
-#define ECT2R 0xF0 /* Event cnt set 2 thresholds */
-
-#define ACON1 0xF4
-#define ACON2 0xF8
-
-#define MC1 0xFC /* Main control register 1 */
-#define MC2 0x100 /* Main control register 2 */
-
-#define RPS_ADDR0 0x104 /* RPS task 0 address register */
-#define RPS_ADDR1 0x108 /* RPS task 1 address register */
-
-#define ISR 0x10C /* Interrupt status register */
-#define PSR 0x110 /* Primary status register */
-#define SSR 0x114 /* Secondary status register */
-
-#define EC1R 0x118 /* Event counter set 1 register */
-#define EC2R 0x11C /* Event counter set 2 register */
-
-#define PCI_VDP1 0x120 /* Video DMA pointer of FIFO 1 */
-#define PCI_VDP2 0x124 /* Video DMA pointer of FIFO 2 */
-#define PCI_VDP3 0x128 /* Video DMA pointer of FIFO 3 */
-#define PCI_ADP1 0x12C /* Audio DMA pointer of audio out 1 */
-#define PCI_ADP2 0x130 /* Audio DMA pointer of audio in 1 */
-#define PCI_ADP3 0x134 /* Audio DMA pointer of audio out 2 */
-#define PCI_ADP4 0x138 /* Audio DMA pointer of audio in 2 */
-#define PCI_DMA_DDP 0x13C /* DEBI DMA pointer */
-
-#define LEVEL_REP 0x140,
-#define A_TIME_SLOT1 0x180, /* from 180 - 1BC */
-#define A_TIME_SLOT2 0x1C0, /* from 1C0 - 1FC */
-
-/* isr masks */
-#define SPCI_PPEF 0x80000000 /* PCI parity error */
-#define SPCI_PABO 0x40000000 /* PCI access error (target or master abort) */
-#define SPCI_PPED 0x20000000 /* PCI parity error on 'real time data' */
-#define SPCI_RPS_I1 0x10000000 /* Interrupt issued by RPS1 */
-#define SPCI_RPS_I0 0x08000000 /* Interrupt issued by RPS0 */
-#define SPCI_RPS_LATE1 0x04000000 /* RPS task 1 is late */
-#define SPCI_RPS_LATE0 0x02000000 /* RPS task 0 is late */
-#define SPCI_RPS_E1 0x01000000 /* RPS error from task 1 */
-#define SPCI_RPS_E0 0x00800000 /* RPS error from task 0 */
-#define SPCI_RPS_TO1 0x00400000 /* RPS timeout task 1 */
-#define SPCI_RPS_TO0 0x00200000 /* RPS timeout task 0 */
-#define SPCI_UPLD 0x00100000 /* RPS in upload */
-#define SPCI_DEBI_S 0x00080000 /* DEBI status */
-#define SPCI_DEBI_E 0x00040000 /* DEBI error */
-#define SPCI_IIC_S 0x00020000 /* I2C status */
-#define SPCI_IIC_E 0x00010000 /* I2C error */
-#define SPCI_A2_IN 0x00008000 /* Audio 2 input DMA protection / limit */
-#define SPCI_A2_OUT 0x00004000 /* Audio 2 output DMA protection / limit */
-#define SPCI_A1_IN 0x00002000 /* Audio 1 input DMA protection / limit */
-#define SPCI_A1_OUT 0x00001000 /* Audio 1 output DMA protection / limit */
-#define SPCI_AFOU 0x00000800 /* Audio FIFO over- / underflow */
-#define SPCI_V_PE 0x00000400 /* Video protection address */
-#define SPCI_VFOU 0x00000200 /* Video FIFO over- / underflow */
-#define SPCI_FIDA 0x00000100 /* Field ID video port A */
-#define SPCI_FIDB 0x00000080 /* Field ID video port B */
-#define SPCI_PIN3 0x00000040 /* GPIO pin 3 */
-#define SPCI_PIN2 0x00000020 /* GPIO pin 2 */
-#define SPCI_PIN1 0x00000010 /* GPIO pin 1 */
-#define SPCI_PIN0 0x00000008 /* GPIO pin 0 */
-#define SPCI_ECS 0x00000004 /* Event counter 1, 2, 4, 5 */
-#define SPCI_EC3S 0x00000002 /* Event counter 3 */
-#define SPCI_EC0S 0x00000001 /* Event counter 0 */
-
-/* i2c */
-#define SAA7146_I2C_ABORT (1<<7)
-#define SAA7146_I2C_SPERR (1<<6)
-#define SAA7146_I2C_APERR (1<<5)
-#define SAA7146_I2C_DTERR (1<<4)
-#define SAA7146_I2C_DRERR (1<<3)
-#define SAA7146_I2C_AL (1<<2)
-#define SAA7146_I2C_ERR (1<<1)
-#define SAA7146_I2C_BUSY (1<<0)
-
-#define SAA7146_I2C_START (0x3)
-#define SAA7146_I2C_CONT (0x2)
-#define SAA7146_I2C_STOP (0x1)
-#define SAA7146_I2C_NOP (0x0)
-
-#define SAA7146_I2C_BUS_BIT_RATE_6400 (0x500)
-#define SAA7146_I2C_BUS_BIT_RATE_3200 (0x100)
-#define SAA7146_I2C_BUS_BIT_RATE_480 (0x400)
-#define SAA7146_I2C_BUS_BIT_RATE_320 (0x600)
-#define SAA7146_I2C_BUS_BIT_RATE_240 (0x700)
-#define SAA7146_I2C_BUS_BIT_RATE_120 (0x000)
-#define SAA7146_I2C_BUS_BIT_RATE_80 (0x200)
-#define SAA7146_I2C_BUS_BIT_RATE_60 (0x300)
-
-static inline void SAA7146_IER_DISABLE(struct saa7146_dev *x, unsigned y)
-{
- unsigned long flags;
- spin_lock_irqsave(&x->int_slock, flags);
- saa7146_write(x, IER, saa7146_read(x, IER) & ~y);
- spin_unlock_irqrestore(&x->int_slock, flags);
-}
-
-static inline void SAA7146_IER_ENABLE(struct saa7146_dev *x, unsigned y)
-{
- unsigned long flags;
- spin_lock_irqsave(&x->int_slock, flags);
- saa7146_write(x, IER, saa7146_read(x, IER) | y);
- spin_unlock_irqrestore(&x->int_slock, flags);
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/saa7146_vv.h b/ANDROID_3.4.5/include/media/saa7146_vv.h
deleted file mode 100644
index 4aeff96f..00000000
--- a/ANDROID_3.4.5/include/media/saa7146_vv.h
+++ /dev/null
@@ -1,264 +0,0 @@
-#ifndef __SAA7146_VV__
-#define __SAA7146_VV__
-
-#include <media/v4l2-common.h>
-#include <media/v4l2-ioctl.h>
-#include <media/saa7146.h>
-#include <media/videobuf-dma-sg.h>
-
-#define MAX_SAA7146_CAPTURE_BUFFERS 32 /* arbitrary */
-#define BUFFER_TIMEOUT (HZ/2) /* 0.5 seconds */
-
-#define WRITE_RPS0(x) do { \
- dev->d_rps0.cpu_addr[ count++ ] = cpu_to_le32(x); \
- } while (0);
-
-#define WRITE_RPS1(x) do { \
- dev->d_rps1.cpu_addr[ count++ ] = cpu_to_le32(x); \
- } while (0);
-
-struct saa7146_video_dma {
- u32 base_odd;
- u32 base_even;
- u32 prot_addr;
- u32 pitch;
- u32 base_page;
- u32 num_line_byte;
-};
-
-#define FORMAT_BYTE_SWAP 0x1
-#define FORMAT_IS_PLANAR 0x2
-
-struct saa7146_format {
- char *name;
- u32 pixelformat;
- u32 trans;
- u8 depth;
- u8 flags;
- u8 swap;
-};
-
-struct saa7146_standard
-{
- char *name;
- v4l2_std_id id;
-
- int v_offset; /* number of lines of vertical offset before processing */
- int v_field; /* number of lines in a field for HPS to process */
-
- int h_offset; /* horizontal offset of processing window */
- int h_pixels; /* number of horizontal pixels to process */
-
- int v_max_out;
- int h_max_out;
-};
-
-/* buffer for one video/vbi frame */
-struct saa7146_buf {
- /* common v4l buffer stuff -- must be first */
- struct videobuf_buffer vb;
-
- /* saa7146 specific */
- struct v4l2_pix_format *fmt;
- int (*activate)(struct saa7146_dev *dev,
- struct saa7146_buf *buf,
- struct saa7146_buf *next);
-
- /* page tables */
- struct saa7146_pgtable pt[3];
-};
-
-struct saa7146_dmaqueue {
- struct saa7146_dev *dev;
- struct saa7146_buf *curr;
- struct list_head queue;
- struct timer_list timeout;
-};
-
-struct saa7146_overlay {
- struct saa7146_fh *fh;
- struct v4l2_window win;
- struct v4l2_clip clips[16];
- int nclips;
-};
-
-/* per open data */
-struct saa7146_fh {
- struct saa7146_dev *dev;
- /* if this is a vbi or capture open */
- enum v4l2_buf_type type;
-
- /* video overlay */
- struct saa7146_overlay ov;
-
- /* video capture */
- struct videobuf_queue video_q;
- struct v4l2_pix_format video_fmt;
-
- /* vbi capture */
- struct videobuf_queue vbi_q;
- struct v4l2_vbi_format vbi_fmt;
- struct timer_list vbi_read_timeout;
-
- unsigned int resources; /* resource management for device open */
-};
-
-#define STATUS_OVERLAY 0x01
-#define STATUS_CAPTURE 0x02
-
-struct saa7146_vv
-{
- /* vbi capture */
- struct saa7146_dmaqueue vbi_q;
- /* vbi workaround interrupt queue */
- wait_queue_head_t vbi_wq;
- int vbi_fieldcount;
- struct saa7146_fh *vbi_streaming;
-
- int video_status;
- struct saa7146_fh *video_fh;
-
- /* video overlay */
- struct v4l2_framebuffer ov_fb;
- struct saa7146_format *ov_fmt;
- struct saa7146_overlay *ov_data;
- struct saa7146_fh *ov_suspend;
-
- /* video capture */
- struct saa7146_dmaqueue video_q;
- enum v4l2_field last_field;
-
- /* common: fixme? shouldn't this be in saa7146_fh?
- (this leads to a more complicated question: shall the driver
- store the different settings (for example S_INPUT) for every open
- and restore it appropriately, or should all settings be common for
- all opens? currently, we do the latter, like all other
- drivers do... */
- struct saa7146_standard *standard;
-
- int vflip;
- int hflip;
- int current_hps_source;
- int current_hps_sync;
-
- struct saa7146_dma d_clipping; /* pointer to clipping memory */
-
- unsigned int resources; /* resource management for device */
-};
-
-/* flags */
-#define SAA7146_USE_PORT_B_FOR_VBI 0x2 /* use input port b for vbi hardware bug workaround */
-
-struct saa7146_ext_vv
-{
- /* informations about the video capabilities of the device */
- int inputs;
- int audios;
- u32 capabilities;
- int flags;
-
- /* additionally supported transmission standards */
- struct saa7146_standard *stds;
- int num_stds;
- int (*std_callback)(struct saa7146_dev*, struct saa7146_standard *);
-
- /* the extension can override this */
- struct v4l2_ioctl_ops ops;
- /* pointer to the saa7146 core ops */
- const struct v4l2_ioctl_ops *core_ops;
-
- struct v4l2_file_operations vbi_fops;
-};
-
-struct saa7146_use_ops {
- void (*init)(struct saa7146_dev *, struct saa7146_vv *);
- int(*open)(struct saa7146_dev *, struct file *);
- void (*release)(struct saa7146_dev *, struct file *);
- void (*irq_done)(struct saa7146_dev *, unsigned long status);
- ssize_t (*read)(struct file *, char __user *, size_t, loff_t *);
-};
-
-/* from saa7146_fops.c */
-int saa7146_register_device(struct video_device **vid, struct saa7146_dev* dev, char *name, int type);
-int saa7146_unregister_device(struct video_device **vid, struct saa7146_dev* dev);
-void saa7146_buffer_finish(struct saa7146_dev *dev, struct saa7146_dmaqueue *q, int state);
-void saa7146_buffer_next(struct saa7146_dev *dev, struct saa7146_dmaqueue *q,int vbi);
-int saa7146_buffer_queue(struct saa7146_dev *dev, struct saa7146_dmaqueue *q, struct saa7146_buf *buf);
-void saa7146_buffer_timeout(unsigned long data);
-void saa7146_dma_free(struct saa7146_dev* dev,struct videobuf_queue *q,
- struct saa7146_buf *buf);
-
-int saa7146_vv_init(struct saa7146_dev* dev, struct saa7146_ext_vv *ext_vv);
-int saa7146_vv_release(struct saa7146_dev* dev);
-
-/* from saa7146_hlp.c */
-int saa7146_enable_overlay(struct saa7146_fh *fh);
-void saa7146_disable_overlay(struct saa7146_fh *fh);
-
-void saa7146_set_capture(struct saa7146_dev *dev, struct saa7146_buf *buf, struct saa7146_buf *next);
-void saa7146_write_out_dma(struct saa7146_dev* dev, int which, struct saa7146_video_dma* vdma) ;
-void saa7146_set_hps_source_and_sync(struct saa7146_dev *saa, int source, int sync);
-void saa7146_set_gpio(struct saa7146_dev *saa, u8 pin, u8 data);
-
-/* from saa7146_video.c */
-extern const struct v4l2_ioctl_ops saa7146_video_ioctl_ops;
-extern struct saa7146_use_ops saa7146_video_uops;
-int saa7146_start_preview(struct saa7146_fh *fh);
-int saa7146_stop_preview(struct saa7146_fh *fh);
-long saa7146_video_do_ioctl(struct file *file, unsigned int cmd, void *arg);
-
-/* from saa7146_vbi.c */
-extern struct saa7146_use_ops saa7146_vbi_uops;
-
-/* resource management functions */
-int saa7146_res_get(struct saa7146_fh *fh, unsigned int bit);
-void saa7146_res_free(struct saa7146_fh *fh, unsigned int bits);
-
-#define RESOURCE_DMA1_HPS 0x1
-#define RESOURCE_DMA2_CLP 0x2
-#define RESOURCE_DMA3_BRS 0x4
-
-/* saa7146 source inputs */
-#define SAA7146_HPS_SOURCE_PORT_A 0x00
-#define SAA7146_HPS_SOURCE_PORT_B 0x01
-#define SAA7146_HPS_SOURCE_YPB_CPA 0x02
-#define SAA7146_HPS_SOURCE_YPA_CPB 0x03
-
-/* sync inputs */
-#define SAA7146_HPS_SYNC_PORT_A 0x00
-#define SAA7146_HPS_SYNC_PORT_B 0x01
-
-/* some memory sizes */
-/* max. 16 clipping rectangles */
-#define SAA7146_CLIPPING_MEM (16 * 4 * sizeof(u32))
-
-/* some defines for the various clipping-modes */
-#define SAA7146_CLIPPING_RECT 0x4
-#define SAA7146_CLIPPING_RECT_INVERTED 0x5
-#define SAA7146_CLIPPING_MASK 0x6
-#define SAA7146_CLIPPING_MASK_INVERTED 0x7
-
-/* output formats: each entry holds four informations */
-#define RGB08_COMPOSED 0x0217 /* composed is used in the sense of "not-planar" */
-/* this means: planar?=0, yuv2rgb-conversation-mode=2, dither=yes(=1), format-mode = 7 */
-#define RGB15_COMPOSED 0x0213
-#define RGB16_COMPOSED 0x0210
-#define RGB24_COMPOSED 0x0201
-#define RGB32_COMPOSED 0x0202
-
-#define Y8 0x0006
-#define YUV411_COMPOSED 0x0003
-#define YUV422_COMPOSED 0x0000
-/* this means: planar?=1, yuv2rgb-conversion-mode=0, dither=no(=0), format-mode = b */
-#define YUV411_DECOMPOSED 0x100b
-#define YUV422_DECOMPOSED 0x1009
-#define YUV420_DECOMPOSED 0x100a
-
-#define IS_PLANAR(x) (x & 0xf000)
-
-/* misc defines */
-#define SAA7146_NO_SWAP (0x0)
-#define SAA7146_TWO_BYTE_SWAP (0x1)
-#define SAA7146_FOUR_BYTE_SWAP (0x2)
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/sh_mobile_ceu.h b/ANDROID_3.4.5/include/media/sh_mobile_ceu.h
deleted file mode 100644
index a90a765f..00000000
--- a/ANDROID_3.4.5/include/media/sh_mobile_ceu.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef __ASM_SH_MOBILE_CEU_H__
-#define __ASM_SH_MOBILE_CEU_H__
-
-#define SH_CEU_FLAG_USE_8BIT_BUS (1 << 0) /* use 8bit bus width */
-#define SH_CEU_FLAG_USE_16BIT_BUS (1 << 1) /* use 16bit bus width */
-#define SH_CEU_FLAG_HSYNC_LOW (1 << 2) /* default High if possible */
-#define SH_CEU_FLAG_VSYNC_LOW (1 << 3) /* default High if possible */
-
-struct device;
-struct resource;
-
-struct sh_mobile_ceu_companion {
- u32 num_resources;
- struct resource *resource;
- int id;
- void *platform_data;
-};
-
-struct sh_mobile_ceu_info {
- unsigned long flags;
- int max_width;
- int max_height;
- struct sh_mobile_ceu_companion *csi2;
-};
-
-#endif /* __ASM_SH_MOBILE_CEU_H__ */
diff --git a/ANDROID_3.4.5/include/media/sh_mobile_csi2.h b/ANDROID_3.4.5/include/media/sh_mobile_csi2.h
deleted file mode 100644
index c586c4f7..00000000
--- a/ANDROID_3.4.5/include/media/sh_mobile_csi2.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Driver header for the SH-Mobile MIPI CSI-2 unit
- *
- * Copyright (C) 2010, Guennadi Liakhovetski <g.liakhovetski@gmx.de>
- *
- * 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.
- */
-
-#ifndef SH_MIPI_CSI
-#define SH_MIPI_CSI
-
-#include <linux/list.h>
-
-enum sh_csi2_phy {
- SH_CSI2_PHY_MAIN,
- SH_CSI2_PHY_SUB,
-};
-
-enum sh_csi2_type {
- SH_CSI2C,
- SH_CSI2I,
-};
-
-#define SH_CSI2_CRC (1 << 0)
-#define SH_CSI2_ECC (1 << 1)
-
-struct platform_device;
-
-struct sh_csi2_client_config {
- enum sh_csi2_phy phy;
- unsigned char lanes; /* bitmask[3:0] */
- unsigned char channel; /* 0..3 */
- struct platform_device *pdev; /* client platform device */
-};
-
-struct v4l2_device;
-
-struct sh_csi2_pdata {
- enum sh_csi2_type type;
- unsigned int flags;
- struct sh_csi2_client_config *clients;
- int num_clients;
- struct v4l2_device *v4l2_dev;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/sh_vou.h b/ANDROID_3.4.5/include/media/sh_vou.h
deleted file mode 100644
index ec3ba9a5..00000000
--- a/ANDROID_3.4.5/include/media/sh_vou.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * SuperH Video Output Unit (VOU) driver header
- *
- * Copyright (C) 2010, Guennadi Liakhovetski <g.liakhovetski@gmx.de>
- *
- * 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.
- */
-#ifndef SH_VOU_H
-#define SH_VOU_H
-
-#include <linux/i2c.h>
-
-/* Bus flags */
-#define SH_VOU_PCLK_FALLING (1 << 0)
-#define SH_VOU_HSYNC_LOW (1 << 1)
-#define SH_VOU_VSYNC_LOW (1 << 2)
-
-enum sh_vou_bus_fmt {
- SH_VOU_BUS_8BIT,
- SH_VOU_BUS_16BIT,
- SH_VOU_BUS_BT656,
-};
-
-struct sh_vou_pdata {
- enum sh_vou_bus_fmt bus_fmt;
- int i2c_adap;
- struct i2c_board_info *board_info;
- unsigned long flags;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/si4713.h b/ANDROID_3.4.5/include/media/si4713.h
deleted file mode 100644
index ed7353e8..00000000
--- a/ANDROID_3.4.5/include/media/si4713.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * include/media/si4713.h
- *
- * Board related data definitions for Si4713 i2c device driver.
- *
- * Copyright (c) 2009 Nokia Corporation
- * Contact: Eduardo Valentin <eduardo.valentin@nokia.com>
- *
- * This file is licensed under the terms of the GNU General Public License
- * version 2. This program is licensed "as is" without any warranty of any
- * kind, whether express or implied.
- *
- */
-
-#ifndef SI4713_H
-#define SI4713_H
-
-/* The SI4713 I2C sensor chip has a fixed slave address of 0xc6 or 0x22. */
-#define SI4713_I2C_ADDR_BUSEN_HIGH 0x63
-#define SI4713_I2C_ADDR_BUSEN_LOW 0x11
-
-/*
- * Platform dependent definition
- */
-struct si4713_platform_data {
- int gpio_reset; /* < 0 if not used */
-};
-
-/*
- * Structure to query for Received Noise Level (RNL).
- */
-struct si4713_rnl {
- __u32 index; /* modulator index */
- __u32 frequency; /* frequency to peform rnl measurement */
- __s32 rnl; /* result of measurement in dBuV */
- __u32 reserved[4]; /* drivers and apps must init this to 0 */
-};
-
-/*
- * This is the ioctl number to query for rnl. Users must pass a
- * struct si4713_rnl pointer specifying desired frequency in 'frequency' field
- * following driver capabilities (i.e V4L2_TUNER_CAP_LOW).
- * Driver must return measured value in the same struture, filling 'rnl' field.
- */
-#define SI4713_IOC_MEASURE_RNL _IOWR('V', BASE_VIDIOC_PRIVATE + 0, \
- struct si4713_rnl)
-
-#endif /* ifndef SI4713_H*/
diff --git a/ANDROID_3.4.5/include/media/sii9234.h b/ANDROID_3.4.5/include/media/sii9234.h
deleted file mode 100644
index 6a4a809f..00000000
--- a/ANDROID_3.4.5/include/media/sii9234.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Driver header for SII9234 MHL converter chip.
- *
- * Copyright (c) 2011 Samsung Electronics, Co. Ltd
- * Contact: Tomasz Stanislawski <t.stanislaws@samsung.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 SII9234_H
-#define SII9234_H
-
-/**
- * @gpio_n_reset: GPIO driving nRESET pin
- */
-
-struct sii9234_platform_data {
- int gpio_n_reset;
-};
-
-#endif /* SII9234_H */
diff --git a/ANDROID_3.4.5/include/media/soc_camera.h b/ANDROID_3.4.5/include/media/soc_camera.h
deleted file mode 100644
index cad374bd..00000000
--- a/ANDROID_3.4.5/include/media/soc_camera.h
+++ /dev/null
@@ -1,291 +0,0 @@
-/*
- * camera image capture (abstract) bus driver header
- *
- * Copyright (C) 2006, Sascha Hauer, Pengutronix
- * Copyright (C) 2008, Guennadi Liakhovetski <kernel@pengutronix.de>
- *
- * 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.
- */
-
-#ifndef SOC_CAMERA_H
-#define SOC_CAMERA_H
-
-#include <linux/bitops.h>
-#include <linux/device.h>
-#include <linux/mutex.h>
-#include <linux/pm.h>
-#include <linux/videodev2.h>
-#include <media/videobuf-core.h>
-#include <media/videobuf2-core.h>
-#include <media/v4l2-ctrls.h>
-#include <media/v4l2-device.h>
-
-struct file;
-struct soc_camera_link;
-
-struct soc_camera_device {
- struct list_head list; /* list of all registered devices */
- struct soc_camera_link *link;
- struct device *pdev; /* Platform device */
- struct device *parent; /* Camera host device */
- struct device *control; /* E.g., the i2c client */
- s32 user_width;
- s32 user_height;
- u32 bytesperline; /* for padding, zero if unused */
- u32 sizeimage;
- enum v4l2_colorspace colorspace;
- unsigned char iface; /* Host number */
- unsigned char devnum; /* Device number per host */
- struct soc_camera_sense *sense; /* See comment in struct definition */
- struct video_device *vdev;
- struct v4l2_ctrl_handler ctrl_handler;
- const struct soc_camera_format_xlate *current_fmt;
- struct soc_camera_format_xlate *user_formats;
- int num_user_formats;
- enum v4l2_field field; /* Preserve field over close() */
- void *host_priv; /* Per-device host private data */
- /* soc_camera.c private count. Only accessed with .video_lock held */
- int use_count;
- struct mutex video_lock; /* Protects device data */
- struct file *streamer; /* stream owner */
- union {
- struct videobuf_queue vb_vidq;
- struct vb2_queue vb2_vidq;
- };
-};
-
-struct soc_camera_host {
- struct v4l2_device v4l2_dev;
- struct list_head list;
- struct mutex host_lock; /* Protect during probing */
- unsigned char nr; /* Host number */
- void *priv;
- const char *drv_name;
- struct soc_camera_host_ops *ops;
-};
-
-struct soc_camera_host_ops {
- struct module *owner;
- int (*add)(struct soc_camera_device *);
- void (*remove)(struct soc_camera_device *);
- /*
- * .get_formats() is called for each client device format, but
- * .put_formats() is only called once. Further, if any of the calls to
- * .get_formats() fail, .put_formats() will not be called at all, the
- * failing .get_formats() must then clean up internally.
- */
- int (*get_formats)(struct soc_camera_device *, unsigned int,
- struct soc_camera_format_xlate *);
- void (*put_formats)(struct soc_camera_device *);
- int (*cropcap)(struct soc_camera_device *, struct v4l2_cropcap *);
- int (*get_crop)(struct soc_camera_device *, struct v4l2_crop *);
- int (*set_crop)(struct soc_camera_device *, struct v4l2_crop *);
- /*
- * The difference to .set_crop() is, that .set_livecrop is not allowed
- * to change the output sizes
- */
- int (*set_livecrop)(struct soc_camera_device *, struct v4l2_crop *);
- int (*set_fmt)(struct soc_camera_device *, struct v4l2_format *);
- int (*try_fmt)(struct soc_camera_device *, struct v4l2_format *);
- void (*init_videobuf)(struct videobuf_queue *,
- struct soc_camera_device *);
- int (*init_videobuf2)(struct vb2_queue *,
- struct soc_camera_device *);
- int (*reqbufs)(struct soc_camera_device *, struct v4l2_requestbuffers *);
- int (*querycap)(struct soc_camera_host *, struct v4l2_capability *);
- int (*set_bus_param)(struct soc_camera_device *);
- int (*get_parm)(struct soc_camera_device *, struct v4l2_streamparm *);
- int (*set_parm)(struct soc_camera_device *, struct v4l2_streamparm *);
- int (*enum_fsizes)(struct soc_camera_device *, struct v4l2_frmsizeenum *);
- unsigned int (*poll)(struct file *, poll_table *);
-};
-
-#define SOCAM_SENSOR_INVERT_PCLK (1 << 0)
-#define SOCAM_SENSOR_INVERT_MCLK (1 << 1)
-#define SOCAM_SENSOR_INVERT_HSYNC (1 << 2)
-#define SOCAM_SENSOR_INVERT_VSYNC (1 << 3)
-#define SOCAM_SENSOR_INVERT_DATA (1 << 4)
-
-struct i2c_board_info;
-struct regulator_bulk_data;
-
-struct soc_camera_link {
- /* Camera bus id, used to match a camera and a bus */
- int bus_id;
- /* Per camera SOCAM_SENSOR_* bus flags */
- unsigned long flags;
- int i2c_adapter_id;
- struct i2c_board_info *board_info;
- const char *module_name;
- void *priv;
-
- /* Optional regulators that have to be managed on power on/off events */
- struct regulator_bulk_data *regulators;
- int num_regulators;
-
- /*
- * For non-I2C devices platform has to provide methods to add a device
- * to the system and to remove it
- */
- int (*add_device)(struct soc_camera_device *);
- void (*del_device)(struct soc_camera_device *);
- /* Optional callbacks to power on or off and reset the sensor */
- int (*power)(struct device *, int);
- int (*reset)(struct device *);
- /*
- * some platforms may support different data widths than the sensors
- * native ones due to different data line routing. Let the board code
- * overwrite the width flags.
- */
- int (*set_bus_param)(struct soc_camera_link *, unsigned long flags);
- unsigned long (*query_bus_param)(struct soc_camera_link *);
- void (*free_bus)(struct soc_camera_link *);
-};
-
-static inline struct soc_camera_host *to_soc_camera_host(
- const struct device *dev)
-{
- struct v4l2_device *v4l2_dev = dev_get_drvdata(dev);
-
- return container_of(v4l2_dev, struct soc_camera_host, v4l2_dev);
-}
-
-static inline struct soc_camera_link *to_soc_camera_link(
- const struct soc_camera_device *icd)
-{
- return icd->link;
-}
-
-static inline struct device *to_soc_camera_control(
- const struct soc_camera_device *icd)
-{
- return icd->control;
-}
-
-static inline struct v4l2_subdev *soc_camera_to_subdev(
- const struct soc_camera_device *icd)
-{
- struct device *control = to_soc_camera_control(icd);
- return dev_get_drvdata(control);
-}
-
-int soc_camera_host_register(struct soc_camera_host *ici);
-void soc_camera_host_unregister(struct soc_camera_host *ici);
-
-const struct soc_camera_format_xlate *soc_camera_xlate_by_fourcc(
- struct soc_camera_device *icd, unsigned int fourcc);
-
-/**
- * struct soc_camera_format_xlate - match between host and sensor formats
- * @code: code of a sensor provided format
- * @host_fmt: host format after host translation from code
- *
- * Host and sensor translation structure. Used in table of host and sensor
- * formats matchings in soc_camera_device. A host can override the generic list
- * generation by implementing get_formats(), and use it for format checks and
- * format setup.
- */
-struct soc_camera_format_xlate {
- enum v4l2_mbus_pixelcode code;
- const struct soc_mbus_pixelfmt *host_fmt;
-};
-
-#define SOCAM_SENSE_PCLK_CHANGED (1 << 0)
-
-/**
- * This struct can be attached to struct soc_camera_device by the host driver
- * to request sense from the camera, for example, when calling .set_fmt(). The
- * host then can check which flags are set and verify respective values if any.
- * For example, if SOCAM_SENSE_PCLK_CHANGED is set, it means, pixclock has
- * changed during this operation. After completion the host should detach sense.
- *
- * @flags ored SOCAM_SENSE_* flags
- * @master_clock if the host wants to be informed about pixel-clock
- * change, it better set master_clock.
- * @pixel_clock_max maximum pixel clock frequency supported by the host,
- * camera is not allowed to exceed this.
- * @pixel_clock if the camera driver changed pixel clock during this
- * operation, it sets SOCAM_SENSE_PCLK_CHANGED, uses
- * master_clock to calculate the new pixel-clock and
- * sets this field.
- */
-struct soc_camera_sense {
- unsigned long flags;
- unsigned long master_clock;
- unsigned long pixel_clock_max;
- unsigned long pixel_clock;
-};
-
-#define SOCAM_DATAWIDTH(x) BIT((x) - 1)
-#define SOCAM_DATAWIDTH_4 SOCAM_DATAWIDTH(4)
-#define SOCAM_DATAWIDTH_8 SOCAM_DATAWIDTH(8)
-#define SOCAM_DATAWIDTH_9 SOCAM_DATAWIDTH(9)
-#define SOCAM_DATAWIDTH_10 SOCAM_DATAWIDTH(10)
-#define SOCAM_DATAWIDTH_15 SOCAM_DATAWIDTH(15)
-#define SOCAM_DATAWIDTH_16 SOCAM_DATAWIDTH(16)
-
-#define SOCAM_DATAWIDTH_MASK (SOCAM_DATAWIDTH_4 | SOCAM_DATAWIDTH_8 | \
- SOCAM_DATAWIDTH_9 | SOCAM_DATAWIDTH_10 | \
- SOCAM_DATAWIDTH_15 | SOCAM_DATAWIDTH_16)
-
-static inline void soc_camera_limit_side(int *start, int *length,
- unsigned int start_min,
- unsigned int length_min, unsigned int length_max)
-{
- if (*length < length_min)
- *length = length_min;
- else if (*length > length_max)
- *length = length_max;
-
- if (*start < start_min)
- *start = start_min;
- else if (*start > start_min + length_max - *length)
- *start = start_min + length_max - *length;
-}
-
-unsigned long soc_camera_apply_sensor_flags(struct soc_camera_link *icl,
- unsigned long flags);
-unsigned long soc_camera_apply_board_flags(struct soc_camera_link *icl,
- const struct v4l2_mbus_config *cfg);
-
-/* This is only temporary here - until v4l2-subdev begins to link to video_device */
-#include <linux/i2c.h>
-static inline struct video_device *soc_camera_i2c_to_vdev(const struct i2c_client *client)
-{
- struct v4l2_subdev *sd = i2c_get_clientdata(client);
- struct soc_camera_device *icd = v4l2_get_subdev_hostdata(sd);
- return icd ? icd->vdev : NULL;
-}
-
-static inline struct soc_camera_link *soc_camera_i2c_to_link(const struct i2c_client *client)
-{
- return client->dev.platform_data;
-}
-
-static inline struct v4l2_subdev *soc_camera_vdev_to_subdev(const struct video_device *vdev)
-{
- struct soc_camera_device *icd = dev_get_drvdata(vdev->parent);
- return soc_camera_to_subdev(icd);
-}
-
-static inline struct soc_camera_device *soc_camera_from_vb2q(const struct vb2_queue *vq)
-{
- return container_of(vq, struct soc_camera_device, vb2_vidq);
-}
-
-static inline struct soc_camera_device *soc_camera_from_vbq(const struct videobuf_queue *vq)
-{
- return container_of(vq, struct soc_camera_device, vb_vidq);
-}
-
-static inline u32 soc_camera_grp_id(const struct soc_camera_device *icd)
-{
- return (icd->iface << 8) | (icd->devnum + 1);
-}
-
-void soc_camera_lock(struct vb2_queue *vq);
-void soc_camera_unlock(struct vb2_queue *vq);
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/soc_camera_platform.h b/ANDROID_3.4.5/include/media/soc_camera_platform.h
deleted file mode 100644
index 8aa4200a..00000000
--- a/ANDROID_3.4.5/include/media/soc_camera_platform.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Generic Platform Camera Driver Header
- *
- * Copyright (C) 2008 Magnus Damm
- *
- * 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.
- */
-
-#ifndef __SOC_CAMERA_H__
-#define __SOC_CAMERA_H__
-
-#include <linux/videodev2.h>
-#include <media/soc_camera.h>
-#include <media/v4l2-mediabus.h>
-
-struct device;
-
-struct soc_camera_platform_info {
- const char *format_name;
- unsigned long format_depth;
- struct v4l2_mbus_framefmt format;
- unsigned long mbus_param;
- enum v4l2_mbus_type mbus_type;
- struct soc_camera_device *icd;
- int (*set_capture)(struct soc_camera_platform_info *info, int enable);
-};
-
-static inline void soc_camera_platform_release(struct platform_device **pdev)
-{
- *pdev = NULL;
-}
-
-static inline int soc_camera_platform_add(struct soc_camera_device *icd,
- struct platform_device **pdev,
- struct soc_camera_link *plink,
- void (*release)(struct device *dev),
- int id)
-{
- struct soc_camera_platform_info *info = plink->priv;
- int ret;
-
- if (icd->link != plink)
- return -ENODEV;
-
- if (*pdev)
- return -EBUSY;
-
- *pdev = platform_device_alloc("soc_camera_platform", id);
- if (!*pdev)
- return -ENOMEM;
-
- info->icd = icd;
-
- (*pdev)->dev.platform_data = info;
- (*pdev)->dev.release = release;
-
- ret = platform_device_add(*pdev);
- if (ret < 0) {
- platform_device_put(*pdev);
- *pdev = NULL;
- info->icd = NULL;
- }
-
- return ret;
-}
-
-static inline void soc_camera_platform_del(const struct soc_camera_device *icd,
- struct platform_device *pdev,
- const struct soc_camera_link *plink)
-{
- if (icd->link != plink || !pdev)
- return;
-
- platform_device_unregister(pdev);
-}
-
-#endif /* __SOC_CAMERA_H__ */
diff --git a/ANDROID_3.4.5/include/media/soc_mediabus.h b/ANDROID_3.4.5/include/media/soc_mediabus.h
deleted file mode 100644
index 73f1e7eb..00000000
--- a/ANDROID_3.4.5/include/media/soc_mediabus.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * SoC-camera Media Bus API extensions
- *
- * Copyright (C) 2009, Guennadi Liakhovetski <g.liakhovetski@gmx.de>
- *
- * 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.
- */
-
-#ifndef SOC_MEDIABUS_H
-#define SOC_MEDIABUS_H
-
-#include <linux/videodev2.h>
-#include <linux/v4l2-mediabus.h>
-
-/**
- * enum soc_mbus_packing - data packing types on the media-bus
- * @SOC_MBUS_PACKING_NONE: no packing, bit-for-bit transfer to RAM, one
- * sample represents one pixel
- * @SOC_MBUS_PACKING_2X8_PADHI: 16 bits transferred in 2 8-bit samples, in the
- * possibly incomplete byte high bits are padding
- * @SOC_MBUS_PACKING_2X8_PADLO: as above, but low bits are padding
- * @SOC_MBUS_PACKING_EXTEND16: sample width (e.g., 10 bits) has to be extended
- * to 16 bits
- * @SOC_MBUS_PACKING_VARIABLE: compressed formats with variable packing
- * @SOC_MBUS_PACKING_1_5X8: used for packed YUV 4:2:0 formats, where 4
- * pixels occupy 6 bytes in RAM
- */
-enum soc_mbus_packing {
- SOC_MBUS_PACKING_NONE,
- SOC_MBUS_PACKING_2X8_PADHI,
- SOC_MBUS_PACKING_2X8_PADLO,
- SOC_MBUS_PACKING_EXTEND16,
- SOC_MBUS_PACKING_VARIABLE,
- SOC_MBUS_PACKING_1_5X8,
-};
-
-/**
- * enum soc_mbus_order - sample order on the media bus
- * @SOC_MBUS_ORDER_LE: least significant sample first
- * @SOC_MBUS_ORDER_BE: most significant sample first
- */
-enum soc_mbus_order {
- SOC_MBUS_ORDER_LE,
- SOC_MBUS_ORDER_BE,
-};
-
-/**
- * struct soc_mbus_pixelfmt - Data format on the media bus
- * @name: Name of the format
- * @fourcc: Fourcc code, that will be obtained if the data is
- * stored in memory in the following way:
- * @packing: Type of sample-packing, that has to be used
- * @order: Sample order when storing in memory
- * @bits_per_sample: How many bits the bridge has to sample
- */
-struct soc_mbus_pixelfmt {
- const char *name;
- u32 fourcc;
- enum soc_mbus_packing packing;
- enum soc_mbus_order order;
- u8 bits_per_sample;
-};
-
-/**
- * struct soc_mbus_lookup - Lookup FOURCC IDs by mediabus codes for pass-through
- * @code: mediabus pixel-code
- * @fmt: pixel format description
- */
-struct soc_mbus_lookup {
- enum v4l2_mbus_pixelcode code;
- struct soc_mbus_pixelfmt fmt;
-};
-
-const struct soc_mbus_pixelfmt *soc_mbus_find_fmtdesc(
- enum v4l2_mbus_pixelcode code,
- const struct soc_mbus_lookup *lookup,
- int n);
-const struct soc_mbus_pixelfmt *soc_mbus_get_fmtdesc(
- enum v4l2_mbus_pixelcode code);
-s32 soc_mbus_bytes_per_line(u32 width, const struct soc_mbus_pixelfmt *mf);
-int soc_mbus_samples_per_pixel(const struct soc_mbus_pixelfmt *mf,
- unsigned int *numerator, unsigned int *denominator);
-unsigned int soc_mbus_config_compatible(const struct v4l2_mbus_config *cfg,
- unsigned int flags);
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/sr030pc30.h b/ANDROID_3.4.5/include/media/sr030pc30.h
deleted file mode 100644
index 6f901a65..00000000
--- a/ANDROID_3.4.5/include/media/sr030pc30.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Driver header for SR030PC30 camera sensor
- *
- * Copyright (c) 2010 Samsung Electronics, Co. Ltd
- * Contact: Sylwester Nawrocki <s.nawrocki@samsung.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 SR030PC30_H
-#define SR030PC30_H
-
-struct sr030pc30_platform_data {
- unsigned long clk_rate; /* master clock frequency in Hz */
- int (*set_power)(struct device *dev, int on);
-};
-
-#endif /* SR030PC30_H */
diff --git a/ANDROID_3.4.5/include/media/timb_radio.h b/ANDROID_3.4.5/include/media/timb_radio.h
deleted file mode 100644
index a40a6a34..00000000
--- a/ANDROID_3.4.5/include/media/timb_radio.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * timb_radio.h Platform struct for the Timberdale radio driver
- * Copyright (c) 2009 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.
- *
- * 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.
- */
-
-#ifndef _TIMB_RADIO_
-#define _TIMB_RADIO_ 1
-
-#include <linux/i2c.h>
-
-struct timb_radio_platform_data {
- int i2c_adapter; /* I2C adapter where the tuner and dsp are attached */
- struct i2c_board_info *tuner;
- struct i2c_board_info *dsp;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/timb_video.h b/ANDROID_3.4.5/include/media/timb_video.h
deleted file mode 100644
index 70ae4397..00000000
--- a/ANDROID_3.4.5/include/media/timb_video.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * timb_video.h Platform struct for the Timberdale video driver
- * Copyright (c) 2009-2010 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.
- *
- * 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.
- */
-
-#ifndef _TIMB_VIDEO_
-#define _TIMB_VIDEO_ 1
-
-#include <linux/i2c.h>
-
-struct timb_video_platform_data {
- int dma_channel;
- int i2c_adapter; /* The I2C adapter where the encoder is attached */
- struct {
- const char *module_name;
- struct i2c_board_info *info;
- } encoder;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/tuner-types.h b/ANDROID_3.4.5/include/media/tuner-types.h
deleted file mode 100644
index ab03c534..00000000
--- a/ANDROID_3.4.5/include/media/tuner-types.h
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * descriptions for simple tuners.
- */
-
-#ifndef __TUNER_TYPES_H__
-#define __TUNER_TYPES_H__
-
-enum param_type {
- TUNER_PARAM_TYPE_RADIO,
- TUNER_PARAM_TYPE_PAL,
- TUNER_PARAM_TYPE_SECAM,
- TUNER_PARAM_TYPE_NTSC,
- TUNER_PARAM_TYPE_DIGITAL,
-};
-
-struct tuner_range {
- unsigned short limit;
- unsigned char config;
- unsigned char cb;
-};
-
-struct tuner_params {
- enum param_type type;
-
- /* Many Philips based tuners have a comment like this in their
- * datasheet:
- *
- * For channel selection involving band switching, and to ensure
- * smooth tuning to the desired channel without causing
- * unnecessary charge pump action, it is recommended to consider
- * the difference between wanted channel frequency and the
- * current channel frequency. Unnecessary charge pump action
- * will result in very low tuning voltage which may drive the
- * oscillator to extreme conditions.
- *
- * Set cb_first_if_lower_freq to 1, if this check is
- * required for this tuner.
- *
- * I tested this for PAL by first setting the TV frequency to
- * 203 MHz and then switching to 96.6 MHz FM radio. The result was
- * static unless the control byte was sent first.
- */
- unsigned int cb_first_if_lower_freq:1;
- /* Set to 1 if this tuner uses a tda9887 */
- unsigned int has_tda9887:1;
- /* Many Philips tuners use tda9887 PORT1 to select the FM radio
- sensitivity. If this setting is 1, then set PORT1 to 1 to
- get proper FM reception. */
- unsigned int port1_fm_high_sensitivity:1;
- /* Some Philips tuners use tda9887 PORT2 to select the FM radio
- sensitivity. If this setting is 1, then set PORT2 to 1 to
- get proper FM reception. */
- unsigned int port2_fm_high_sensitivity:1;
- /* Some Philips tuners use tda9887 cGainNormal to select the FM radio
- sensitivity. If this setting is 1, e register will use cGainNormal
- instead of cGainLow. */
- unsigned int fm_gain_normal:1;
- /* Most tuners with a tda9887 use QSS mode. Some (cheaper) tuners
- use Intercarrier mode. If this setting is 1, then the tuner
- needs to be set to intercarrier mode. */
- unsigned int intercarrier_mode:1;
- /* This setting sets the default value for PORT1.
- 0 means inactive, 1 means active. Note: the actual bit
- value written to the tda9887 is inverted. So a 0 here
- means a 1 in the B6 bit. */
- unsigned int port1_active:1;
- /* This setting sets the default value for PORT2.
- 0 means inactive, 1 means active. Note: the actual bit
- value written to the tda9887 is inverted. So a 0 here
- means a 1 in the B7 bit. */
- unsigned int port2_active:1;
- /* Sometimes PORT1 is inverted when the SECAM-L' standard is selected.
- Set this bit to 1 if this is needed. */
- unsigned int port1_invert_for_secam_lc:1;
- /* Sometimes PORT2 is inverted when the SECAM-L' standard is selected.
- Set this bit to 1 if this is needed. */
- unsigned int port2_invert_for_secam_lc:1;
- /* Some cards require PORT1 to be 1 for mono Radio FM and 0 for stereo. */
- unsigned int port1_set_for_fm_mono:1;
- /* Select 18% (or according to datasheet 0%) L standard PLL gating,
- vs the driver default of 36%. */
- unsigned int default_pll_gating_18:1;
- /* IF to use in radio mode. Tuners with a separate radio IF filter
- seem to use 10.7, while those without use 33.3 for PAL/SECAM tuners
- and 41.3 for NTSC tuners. 0 = 10.7, 1 = 33.3, 2 = 41.3 */
- unsigned int radio_if:2;
- /* Default tda9887 TOP value in dB for the low band. Default is 0.
- Range: -16:+15 */
- signed int default_top_low:5;
- /* Default tda9887 TOP value in dB for the mid band. Default is 0.
- Range: -16:+15 */
- signed int default_top_mid:5;
- /* Default tda9887 TOP value in dB for the high band. Default is 0.
- Range: -16:+15 */
- signed int default_top_high:5;
- /* Default tda9887 TOP value in dB for SECAM-L/L' for the low band.
- Default is 0. Several tuners require a different TOP value for
- the SECAM-L/L' standards. Range: -16:+15 */
- signed int default_top_secam_low:5;
- /* Default tda9887 TOP value in dB for SECAM-L/L' for the mid band.
- Default is 0. Several tuners require a different TOP value for
- the SECAM-L/L' standards. Range: -16:+15 */
- signed int default_top_secam_mid:5;
- /* Default tda9887 TOP value in dB for SECAM-L/L' for the high band.
- Default is 0. Several tuners require a different TOP value for
- the SECAM-L/L' standards. Range: -16:+15 */
- signed int default_top_secam_high:5;
-
- u16 iffreq;
-
- unsigned int count;
- struct tuner_range *ranges;
-};
-
-struct tunertype {
- char *name;
- unsigned int count;
- struct tuner_params *params;
-
- u16 min;
- u16 max;
- u32 stepsize;
-
- u8 *initdata;
- u8 *sleepdata;
-};
-
-extern struct tunertype tuners[];
-extern unsigned const int tuner_count;
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/tuner.h b/ANDROID_3.4.5/include/media/tuner.h
deleted file mode 100644
index 926aff9b..00000000
--- a/ANDROID_3.4.5/include/media/tuner.h
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
- tuner.h - definition for different tuners
-
- Copyright (C) 1997 Markus Schroeder (schroedm@uni-duesseldorf.de)
- minor modifications by Ralph Metzler (rjkm@thp.uni-koeln.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., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
-
-#ifndef _TUNER_H
-#define _TUNER_H
-#ifdef __KERNEL__
-
-#include <linux/videodev2.h>
-
-#define ADDR_UNSET (255)
-
-#define TUNER_TEMIC_PAL 0 /* 4002 FH5 (3X 7756, 9483) */
-#define TUNER_PHILIPS_PAL_I 1
-#define TUNER_PHILIPS_NTSC 2
-#define TUNER_PHILIPS_SECAM 3 /* you must actively select B/G, L, L` */
-
-#define TUNER_ABSENT 4
-#define TUNER_PHILIPS_PAL 5
-#define TUNER_TEMIC_NTSC 6 /* 4032 FY5 (3X 7004, 9498, 9789) */
-#define TUNER_TEMIC_PAL_I 7 /* 4062 FY5 (3X 8501, 9957) */
-
-#define TUNER_TEMIC_4036FY5_NTSC 8 /* 4036 FY5 (3X 1223, 1981, 7686) */
-#define TUNER_ALPS_TSBH1_NTSC 9
-#define TUNER_ALPS_TSBE1_PAL 10
-#define TUNER_ALPS_TSBB5_PAL_I 11
-
-#define TUNER_ALPS_TSBE5_PAL 12
-#define TUNER_ALPS_TSBC5_PAL 13
-#define TUNER_TEMIC_4006FH5_PAL 14 /* 4006 FH5 (3X 9500, 9501, 7291) */
-#define TUNER_ALPS_TSHC6_NTSC 15
-
-#define TUNER_TEMIC_PAL_DK 16 /* 4016 FY5 (3X 1392, 1393) */
-#define TUNER_PHILIPS_NTSC_M 17
-#define TUNER_TEMIC_4066FY5_PAL_I 18 /* 4066 FY5 (3X 7032, 7035) */
-#define TUNER_TEMIC_4006FN5_MULTI_PAL 19 /* B/G, I and D/K autodetected (3X 7595, 7606, 7657) */
-
-#define TUNER_TEMIC_4009FR5_PAL 20 /* incl. FM radio (3X 7607, 7488, 7711) */
-#define TUNER_TEMIC_4039FR5_NTSC 21 /* incl. FM radio (3X 7246, 7578, 7732) */
-#define TUNER_TEMIC_4046FM5 22 /* you must actively select B/G, D/K, I, L, L` ! (3X 7804, 7806, 8103, 8104) */
-#define TUNER_PHILIPS_PAL_DK 23
-
-#define TUNER_PHILIPS_FQ1216ME 24 /* you must actively select B/G/D/K, I, L, L` */
-#define TUNER_LG_PAL_I_FM 25
-#define TUNER_LG_PAL_I 26
-#define TUNER_LG_NTSC_FM 27
-
-#define TUNER_LG_PAL_FM 28
-#define TUNER_LG_PAL 29
-#define TUNER_TEMIC_4009FN5_MULTI_PAL_FM 30 /* B/G, I and D/K autodetected (3X 8155, 8160, 8163) */
-#define TUNER_SHARP_2U5JF5540_NTSC 31
-
-#define TUNER_Samsung_PAL_TCPM9091PD27 32
-#define TUNER_MT2032 33
-#define TUNER_TEMIC_4106FH5 34 /* 4106 FH5 (3X 7808, 7865) */
-#define TUNER_TEMIC_4012FY5 35 /* 4012 FY5 (3X 0971, 1099) */
-
-#define TUNER_TEMIC_4136FY5 36 /* 4136 FY5 (3X 7708, 7746) */
-#define TUNER_LG_PAL_NEW_TAPC 37
-#define TUNER_PHILIPS_FM1216ME_MK3 38
-#define TUNER_LG_NTSC_NEW_TAPC 39
-
-#define TUNER_HITACHI_NTSC 40
-#define TUNER_PHILIPS_PAL_MK 41
-#define TUNER_PHILIPS_FCV1236D 42
-#define TUNER_PHILIPS_FM1236_MK3 43
-
-#define TUNER_PHILIPS_4IN1 44 /* ATI TV Wonder Pro - Conexant */
-/* Microtune merged with Temic 12/31/1999 partially financed by Alps - these may be similar to Temic */
-#define TUNER_MICROTUNE_4049FM5 45
-#define TUNER_PANASONIC_VP27 46
-#define TUNER_LG_NTSC_TAPE 47
-
-#define TUNER_TNF_8831BGFF 48
-#define TUNER_MICROTUNE_4042FI5 49 /* DViCO FusionHDTV 3 Gold-Q - 4042 FI5 (3X 8147) */
-#define TUNER_TCL_2002N 50
-#define TUNER_PHILIPS_FM1256_IH3 51
-
-#define TUNER_THOMSON_DTT7610 52
-#define TUNER_PHILIPS_FQ1286 53
-#define TUNER_PHILIPS_TDA8290 54
-#define TUNER_TCL_2002MB 55 /* Hauppauge PVR-150 PAL */
-
-#define TUNER_PHILIPS_FQ1216AME_MK4 56 /* Hauppauge PVR-150 PAL */
-#define TUNER_PHILIPS_FQ1236A_MK4 57 /* Hauppauge PVR-500MCE NTSC */
-#define TUNER_YMEC_TVF_8531MF 58
-#define TUNER_YMEC_TVF_5533MF 59 /* Pixelview Pro Ultra NTSC */
-
-#define TUNER_THOMSON_DTT761X 60 /* DTT 7611 7611A 7612 7613 7613A 7614 7615 7615A */
-#define TUNER_TENA_9533_DI 61
-#define TUNER_TEA5767 62 /* Only FM Radio Tuner */
-#define TUNER_PHILIPS_FMD1216ME_MK3 63
-
-#define TUNER_LG_TDVS_H06XF 64 /* TDVS H061F, H062F, H064F */
-#define TUNER_YMEC_TVF66T5_B_DFF 65 /* Acorp Y878F */
-#define TUNER_LG_TALN 66
-#define TUNER_PHILIPS_TD1316 67
-
-#define TUNER_PHILIPS_TUV1236D 68 /* ATI HDTV Wonder */
-#define TUNER_TNF_5335MF 69 /* Sabrent Bt848 */
-#define TUNER_SAMSUNG_TCPN_2121P30A 70 /* Hauppauge PVR-500MCE NTSC */
-#define TUNER_XC2028 71
-
-#define TUNER_THOMSON_FE6600 72 /* DViCO FusionHDTV DVB-T Hybrid */
-#define TUNER_SAMSUNG_TCPG_6121P30A 73 /* Hauppauge PVR-500 PAL */
-#define TUNER_TDA9887 74 /* This tuner should be used only internally */
-#define TUNER_TEA5761 75 /* Only FM Radio Tuner */
-#define TUNER_XC5000 76 /* Xceive Silicon Tuner */
-#define TUNER_TCL_MF02GIP_5N 77 /* TCL MF02GIP_5N */
-#define TUNER_PHILIPS_FMD1216MEX_MK3 78
-#define TUNER_PHILIPS_FM1216MK5 79
-#define TUNER_PHILIPS_FQ1216LME_MK3 80 /* Active loopthrough, no FM */
-
-#define TUNER_PARTSNIC_PTI_5NF05 81
-#define TUNER_PHILIPS_CU1216L 82
-#define TUNER_NXP_TDA18271 83
-#define TUNER_SONY_BTF_PXN01Z 84
-#define TUNER_PHILIPS_FQ1236_MK5 85 /* NTSC, TDA9885, no FM radio */
-#define TUNER_TENA_TNF_5337 86
-
-#define TUNER_XC4000 87 /* Xceive Silicon Tuner */
-#define TUNER_XC5000C 88 /* Xceive Silicon Tuner */
-
-/* tv card specific */
-#define TDA9887_PRESENT (1<<0)
-#define TDA9887_PORT1_INACTIVE (1<<1)
-#define TDA9887_PORT2_INACTIVE (1<<2)
-#define TDA9887_QSS (1<<3)
-#define TDA9887_INTERCARRIER (1<<4)
-#define TDA9887_PORT1_ACTIVE (1<<5)
-#define TDA9887_PORT2_ACTIVE (1<<6)
-#define TDA9887_INTERCARRIER_NTSC (1<<7)
-/* Tuner takeover point adjustment, in dB, -16 <= top <= 15 */
-#define TDA9887_TOP_MASK (0x3f << 8)
-#define TDA9887_TOP_SET (1 << 13)
-#define TDA9887_TOP(top) (TDA9887_TOP_SET | (((16 + (top)) & 0x1f) << 8))
-
-/* config options */
-#define TDA9887_DEEMPHASIS_MASK (3<<16)
-#define TDA9887_DEEMPHASIS_NONE (1<<16)
-#define TDA9887_DEEMPHASIS_50 (2<<16)
-#define TDA9887_DEEMPHASIS_75 (3<<16)
-#define TDA9887_AUTOMUTE (1<<18)
-#define TDA9887_GATING_18 (1<<19)
-#define TDA9887_GAIN_NORMAL (1<<20)
-#define TDA9887_RIF_41_3 (1<<21) /* radio IF1 41.3 vs 33.3 */
-
-enum tuner_mode {
- T_RADIO = 1 << V4L2_TUNER_RADIO,
- T_ANALOG_TV = 1 << V4L2_TUNER_ANALOG_TV,
- /* Don't need to map V4L2_TUNER_DIGITAL_TV, as tuner-core won't use it */
-};
-
-/* Older boards only had a single tuner device. Nowadays multiple tuner
- devices may be present on a single board. Using TUNER_SET_TYPE_ADDR
- to pass the tuner_setup structure it is possible to setup each tuner
- device in turn.
-
- Since multiple devices may be present it is no longer sufficient to
- send a command to a single i2c device. Instead you should broadcast
- the command to all i2c devices.
-
- By setting the mode_mask correctly you can select which commands are
- accepted by a specific tuner device. For example, set mode_mask to
- T_RADIO if the device is a radio-only tuner. That specific tuner will
- only accept commands when the tuner is in radio mode and ignore them
- when the tuner is set to TV mode.
- */
-
-struct tuner_setup {
- unsigned short addr; /* I2C address */
- unsigned int type; /* Tuner type */
- unsigned int mode_mask; /* Allowed tuner modes */
- unsigned int config; /* configuraion for more complex tuners */
- int (*tuner_callback) (void *dev, int component, int cmd, int arg);
-};
-
-#endif /* __KERNEL__ */
-
-#endif /* _TUNER_H */
diff --git a/ANDROID_3.4.5/include/media/tvaudio.h b/ANDROID_3.4.5/include/media/tvaudio.h
deleted file mode 100644
index 1ac81846..00000000
--- a/ANDROID_3.4.5/include/media/tvaudio.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- tvaudio.h - definition for tvaudio inputs
-
- Copyright (C) 2006 Hans Verkuil (hverkuil@xs4all.nl)
-
- 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
-
-#ifndef _TVAUDIO_H
-#define _TVAUDIO_H
-
-#include <media/i2c-addr.h>
-
-/* The tvaudio module accepts the following inputs: */
-#define TVAUDIO_INPUT_TUNER 0
-#define TVAUDIO_INPUT_RADIO 1
-#define TVAUDIO_INPUT_EXTERN 2
-#define TVAUDIO_INPUT_INTERN 3
-
-static inline const unsigned short *tvaudio_addrs(void)
-{
- static const unsigned short addrs[] = {
- I2C_ADDR_TDA8425 >> 1,
- I2C_ADDR_TEA6300 >> 1,
- I2C_ADDR_TEA6420 >> 1,
- I2C_ADDR_TDA9840 >> 1,
- I2C_ADDR_TDA985x_L >> 1,
- I2C_ADDR_TDA985x_H >> 1,
- I2C_ADDR_TDA9874 >> 1,
- I2C_ADDR_PIC16C54 >> 1,
- I2C_CLIENT_END
- };
-
- return addrs;
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/tveeprom.h b/ANDROID_3.4.5/include/media/tveeprom.h
deleted file mode 100644
index a8ad75a9..00000000
--- a/ANDROID_3.4.5/include/media/tveeprom.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- */
-
-struct tveeprom {
- u32 has_radio;
- /* If has_ir == 0, then it is unknown what the IR capabilities are,
- otherwise:
- bit 0: 1 (= IR capabilities are known)
- bit 1: IR receiver present
- bit 2: IR transmitter (blaster) present */
- u32 has_ir;
- u32 has_MAC_address; /* 0: no MAC, 1: MAC present, 2: unknown */
-
- u32 tuner_type;
- u32 tuner_formats;
- u32 tuner_hauppauge_model;
-
- u32 tuner2_type;
- u32 tuner2_formats;
- u32 tuner2_hauppauge_model;
-
- u32 digitizer;
- u32 digitizer_formats;
-
- u32 audio_processor;
- u32 decoder_processor;
-
- u32 model;
- u32 revision;
- u32 serial_number;
- char rev_str[5];
- u8 MAC_address[6];
-};
-
-void tveeprom_hauppauge_analog(struct i2c_client *c, struct tveeprom *tvee,
- unsigned char *eeprom_data);
-
-int tveeprom_read(struct i2c_client *c, unsigned char *eedata, int len);
diff --git a/ANDROID_3.4.5/include/media/tvp514x.h b/ANDROID_3.4.5/include/media/tvp514x.h
deleted file mode 100644
index 74387e83..00000000
--- a/ANDROID_3.4.5/include/media/tvp514x.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * drivers/media/video/tvp514x.h
- *
- * Copyright (C) 2008 Texas Instruments Inc
- * Author: Vaibhav Hiremath <hvaibhav@ti.com>
- *
- * Contributors:
- * Sivaraj R <sivaraj@ti.com>
- * Brijesh R Jadav <brijesh.j@ti.com>
- * Hardik Shah <hardik.shah@ti.com>
- * Manjunath Hadli <mrh@ti.com>
- * Karicheri Muralidharan <m-karicheri2@ti.com>
- *
- * This package 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.
- *
- * 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.
- *
- */
-
-#ifndef _TVP514X_H
-#define _TVP514X_H
-
-/*
- * Other macros
- */
-#define TVP514X_MODULE_NAME "tvp514x"
-
-#define TVP514X_XCLK_BT656 (27000000)
-
-/* Number of pixels and number of lines per frame for different standards */
-#define NTSC_NUM_ACTIVE_PIXELS (720)
-#define NTSC_NUM_ACTIVE_LINES (480)
-#define PAL_NUM_ACTIVE_PIXELS (720)
-#define PAL_NUM_ACTIVE_LINES (576)
-
-/**
- * enum tvp514x_input - enum for different decoder input pin
- * configuration.
- */
-enum tvp514x_input {
- /*
- * CVBS input selection
- */
- INPUT_CVBS_VI1A = 0x0,
- INPUT_CVBS_VI1B,
- INPUT_CVBS_VI1C,
- INPUT_CVBS_VI2A = 0x04,
- INPUT_CVBS_VI2B,
- INPUT_CVBS_VI2C,
- INPUT_CVBS_VI3A = 0x08,
- INPUT_CVBS_VI3B,
- INPUT_CVBS_VI3C,
- INPUT_CVBS_VI4A = 0x0C,
- /*
- * S-Video input selection
- */
- INPUT_SVIDEO_VI2A_VI1A = 0x44,
- INPUT_SVIDEO_VI2B_VI1B,
- INPUT_SVIDEO_VI2C_VI1C,
- INPUT_SVIDEO_VI2A_VI3A = 0x54,
- INPUT_SVIDEO_VI2B_VI3B,
- INPUT_SVIDEO_VI2C_VI3C,
- INPUT_SVIDEO_VI4A_VI1A = 0x4C,
- INPUT_SVIDEO_VI4A_VI1B,
- INPUT_SVIDEO_VI4A_VI1C,
- INPUT_SVIDEO_VI4A_VI3A = 0x5C,
- INPUT_SVIDEO_VI4A_VI3B,
- INPUT_SVIDEO_VI4A_VI3C,
-
- /* Need to add entries for
- * RGB, YPbPr and SCART.
- */
- INPUT_INVALID
-};
-
-/**
- * enum tvp514x_output - enum for output format
- * supported.
- *
- */
-enum tvp514x_output {
- OUTPUT_10BIT_422_EMBEDDED_SYNC = 0,
- OUTPUT_20BIT_422_SEPERATE_SYNC,
- OUTPUT_10BIT_422_SEPERATE_SYNC = 3,
- OUTPUT_INVALID
-};
-
-/**
- * struct tvp514x_platform_data - Platform data values and access functions.
- * @power_set: Power state access function, zero is off, non-zero is on.
- * @ifparm: Interface parameters access function.
- * @priv_data_set: Device private data (pointer) access function.
- * @clk_polarity: Clock polarity of the current interface.
- * @ hs_polarity: HSYNC Polarity configuration for current interface.
- * @ vs_polarity: VSYNC Polarity configuration for current interface.
- */
-struct tvp514x_platform_data {
- /* Interface control params */
- bool clk_polarity;
- bool hs_polarity;
- bool vs_polarity;
-};
-
-
-#endif /* ifndef _TVP514X_H */
diff --git a/ANDROID_3.4.5/include/media/tvp5150.h b/ANDROID_3.4.5/include/media/tvp5150.h
deleted file mode 100644
index 72bd2a2b..00000000
--- a/ANDROID_3.4.5/include/media/tvp5150.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- tvp5150.h - definition for tvp5150 inputs
-
- Copyright (C) 2006 Hans Verkuil (hverkuil@xs4all.nl)
-
- 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
-
-#ifndef _TVP5150_H_
-#define _TVP5150_H_
-
-/* TVP5150 HW inputs */
-#define TVP5150_COMPOSITE0 0
-#define TVP5150_COMPOSITE1 1
-#define TVP5150_SVIDEO 2
-
-/* TVP5150 HW outputs */
-#define TVP5150_NORMAL 0
-#define TVP5150_BLACK_SCREEN 1
-
-#endif
-
diff --git a/ANDROID_3.4.5/include/media/tvp7002.h b/ANDROID_3.4.5/include/media/tvp7002.h
deleted file mode 100644
index ee435345..00000000
--- a/ANDROID_3.4.5/include/media/tvp7002.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Texas Instruments Triple 8-/10-BIT 165-/110-MSPS Video and Graphics
- * Digitizer with Horizontal PLL registers
- *
- * Copyright (C) 2009 Texas Instruments Inc
- * Author: Santiago Nunez-Corrales <santiago.nunez@ridgerun.com>
- *
- * This code is partially based upon the TVP5150 driver
- * written by Mauro Carvalho Chehab (mchehab@infradead.org),
- * the TVP514x driver written by Vaibhav Hiremath <hvaibhav@ti.com>
- * and the TVP7002 driver in the TI LSP 2.10.00.14
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-#ifndef _TVP7002_H_
-#define _TVP7002_H_
-
-/* Platform-dependent data
- *
- * clk_polarity:
- * 0 -> data clocked out on rising edge of DATACLK signal
- * 1 -> data clocked out on falling edge of DATACLK signal
- * hs_polarity:
- * 0 -> active low HSYNC output
- * 1 -> active high HSYNC output
- * sog_polarity:
- * 0 -> normal operation
- * 1 -> operation with polarity inverted
- * vs_polarity:
- * 0 -> active low VSYNC output
- * 1 -> active high VSYNC output
- * fid_polarity:
- * 0 -> the field ID output is set to logic 1 for an odd
- * field (field 1) and set to logic 0 for an even
- * field (field 0).
- * 1 -> operation with polarity inverted.
- */
-struct tvp7002_config {
- u8 clk_polarity;
- u8 hs_polarity;
- u8 vs_polarity;
- u8 fid_polarity;
- u8 sog_polarity;
-};
-#endif
diff --git a/ANDROID_3.4.5/include/media/tw9910.h b/ANDROID_3.4.5/include/media/tw9910.h
deleted file mode 100644
index 90bcf1fa..00000000
--- a/ANDROID_3.4.5/include/media/tw9910.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * tw9910 Driver header
- *
- * Copyright (C) 2008 Renesas Solutions Corp.
- * Kuninori Morimoto <morimoto.kuninori@renesas.com>
- *
- * Based on ov772x.h
- *
- * Copyright (C) Kuninori Morimoto <morimoto.kuninori@renesas.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.
- */
-
-#ifndef __TW9910_H__
-#define __TW9910_H__
-
-#include <media/soc_camera.h>
-
-enum tw9910_mpout_pin {
- TW9910_MPO_VLOSS,
- TW9910_MPO_HLOCK,
- TW9910_MPO_SLOCK,
- TW9910_MPO_VLOCK,
- TW9910_MPO_MONO,
- TW9910_MPO_DET50,
- TW9910_MPO_FIELD,
- TW9910_MPO_RTCO,
-};
-
-struct tw9910_video_info {
- unsigned long buswidth;
- enum tw9910_mpout_pin mpout;
-};
-
-
-#endif /* __TW9910_H__ */
diff --git a/ANDROID_3.4.5/include/media/upd64031a.h b/ANDROID_3.4.5/include/media/upd64031a.h
deleted file mode 100644
index 3ad6a32e..00000000
--- a/ANDROID_3.4.5/include/media/upd64031a.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * upd64031a - NEC Electronics Ghost Reduction input defines
- *
- * 2006 by Hans Verkuil (hverkuil@xs4all.nl)
- *
- * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef _UPD64031A_H_
-#define _UPD64031A_H_
-
-/* Ghost reduction modes */
-#define UPD64031A_GR_ON 0
-#define UPD64031A_GR_OFF 1
-#define UPD64031A_GR_THROUGH 3
-
-/* Direct 3D/YCS Connection */
-#define UPD64031A_3DYCS_DISABLE (0 << 2)
-#define UPD64031A_3DYCS_COMPOSITE (2 << 2)
-#define UPD64031A_3DYCS_SVIDEO (3 << 2)
-
-/* Composite sync digital separation circuit */
-#define UPD64031A_COMPOSITE_EXTERNAL (1 << 4)
-
-/* Vertical sync digital separation circuit */
-#define UPD64031A_VERTICAL_EXTERNAL (1 << 5)
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/upd64083.h b/ANDROID_3.4.5/include/media/upd64083.h
deleted file mode 100644
index 59b6f32b..00000000
--- a/ANDROID_3.4.5/include/media/upd64083.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * upd6408x - NEC Electronics 3-Dimensional Y/C separation input defines
- *
- * 2006 by Hans Verkuil (hverkuil@xs4all.nl)
- *
- * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef _UPD64083_H_
-#define _UPD64083_H_
-
-/* There are two bits of information that the driver needs in order
- to select the correct routing: the operating mode and the selection
- of the Y input (external or internal).
-
- The first two operating modes expect a composite signal on the Y input,
- the second two operating modes use both the Y and C inputs.
-
- Normally YCS_MODE is used for tuner and composite inputs, and the
- YCNR mode is used for S-Video inputs.
-
- The external Y-ADC is selected when the composite input comes from a
- upd64031a ghost reduction device. If this device is not present, or
- the input is a S-Video signal, then the internal Y-ADC input should
- be used. */
-
-/* Operating modes: */
-
-/* YCS mode: Y/C separation (burst locked clocking) */
-#define UPD64083_YCS_MODE 0
-/* YCS+ mode: 2D Y/C separation and YCNR (burst locked clocking) */
-#define UPD64083_YCS_PLUS_MODE 1
-
-/* Note: the following two modes cannot be used in combination with the
- external Y-ADC. */
-/* MNNR mode: frame comb type YNR+C delay (line locked clocking) */
-#define UPD64083_MNNR_MODE 2
-/* YCNR mode: frame recursive YCNR (burst locked clocking) */
-#define UPD64083_YCNR_MODE 3
-
-/* Select external Y-ADC: this should be set if this device is used in
- combination with the upd64031a ghost reduction device.
- Otherwise leave at 0 (use internal Y-ADC). */
-#define UPD64083_EXT_Y_ADC (1 << 2)
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/v4l2-chip-ident.h b/ANDROID_3.4.5/include/media/v4l2-chip-ident.h
deleted file mode 100644
index 7395c815..00000000
--- a/ANDROID_3.4.5/include/media/v4l2-chip-ident.h
+++ /dev/null
@@ -1,332 +0,0 @@
-/*
- v4l2 chip identifiers header
-
- This header provides a list of chip identifiers that can be returned
- through the VIDIOC_DBG_G_CHIP_IDENT ioctl.
-
- Copyright (C) 2007 Hans Verkuil <hverkuil@xs4all.nl>
-
- 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
- */
-
-#ifndef V4L2_CHIP_IDENT_H_
-#define V4L2_CHIP_IDENT_H_
-
-/* VIDIOC_DBG_G_CHIP_IDENT: identifies the actual chip installed on the board */
-
-/* KEEP THIS LIST ORDERED BY ID!
- Otherwise it will be hard to see which ranges are already in use when
- adding support to a new chip family. */
-enum {
- /* general idents: reserved range 0-49 */
- V4L2_IDENT_NONE = 0, /* No chip matched */
- V4L2_IDENT_AMBIGUOUS = 1, /* Match too general, multiple chips matched */
- V4L2_IDENT_UNKNOWN = 2, /* Chip found, but cannot identify */
-
- /* module tvaudio: reserved range 50-99 */
- V4L2_IDENT_TVAUDIO = 50, /* A tvaudio chip, unknown which it is exactly */
-
- /* Sony IMX074 */
- V4L2_IDENT_IMX074 = 74,
-
- /* module saa7110: just ident 100 */
- V4L2_IDENT_SAA7110 = 100,
-
- /* module saa7115: reserved range 101-149 */
- V4L2_IDENT_SAA7111 = 101,
- V4L2_IDENT_SAA7111A = 102,
- V4L2_IDENT_SAA7113 = 103,
- V4L2_IDENT_SAA7114 = 104,
- V4L2_IDENT_SAA7115 = 105,
- V4L2_IDENT_SAA7118 = 108,
-
- /* module saa7127: reserved range 150-199 */
- V4L2_IDENT_SAA7127 = 157,
- V4L2_IDENT_SAA7129 = 159,
-
- /* module cx25840: reserved range 200-249 */
- V4L2_IDENT_CX25836 = 236,
- V4L2_IDENT_CX25837 = 237,
- V4L2_IDENT_CX25840 = 240,
- V4L2_IDENT_CX25841 = 241,
- V4L2_IDENT_CX25842 = 242,
- V4L2_IDENT_CX25843 = 243,
-
- /* OmniVision sensors: reserved range 250-299 */
- V4L2_IDENT_OV7670 = 250,
- V4L2_IDENT_OV7720 = 251,
- V4L2_IDENT_OV7725 = 252,
- V4L2_IDENT_OV7660 = 253,
- V4L2_IDENT_OV9650 = 254,
- V4L2_IDENT_OV9655 = 255,
- V4L2_IDENT_SOI968 = 256,
- V4L2_IDENT_OV9640 = 257,
- V4L2_IDENT_OV6650 = 258,
- V4L2_IDENT_OV2640 = 259,
- V4L2_IDENT_OV9740 = 260,
- V4L2_IDENT_OV5642 = 261,
-
- /* module saa7146: reserved range 300-309 */
- V4L2_IDENT_SAA7146 = 300,
-
- /* Conexant MPEG encoder/decoders: reserved range 400-420 */
- V4L2_IDENT_CX23418_843 = 403, /* Integrated A/V Decoder on the '418 */
- V4L2_IDENT_CX23415 = 415,
- V4L2_IDENT_CX23416 = 416,
- V4L2_IDENT_CX23417 = 417,
- V4L2_IDENT_CX23418 = 418,
-
- /* module bt819: reserved range 810-819 */
- V4L2_IDENT_BT815A = 815,
- V4L2_IDENT_BT817A = 817,
- V4L2_IDENT_BT819A = 819,
-
- /* module au0828 */
- V4L2_IDENT_AU0828 = 828,
-
- /* module bt856: just ident 856 */
- V4L2_IDENT_BT856 = 856,
-
- /* module bt866: just ident 866 */
- V4L2_IDENT_BT866 = 866,
-
- /* module ks0127: reserved range 1120-1129 */
- V4L2_IDENT_KS0122S = 1122,
- V4L2_IDENT_KS0127 = 1127,
- V4L2_IDENT_KS0127B = 1128,
-
- /* module indycam: just ident 2000 */
- V4L2_IDENT_INDYCAM = 2000,
-
- /* module vp27smpx: just ident 2700 */
- V4L2_IDENT_VP27SMPX = 2700,
-
- /* module vpx3220: reserved range: 3210-3229 */
- V4L2_IDENT_VPX3214C = 3214,
- V4L2_IDENT_VPX3216B = 3216,
- V4L2_IDENT_VPX3220A = 3220,
-
- /* VX855 just ident 3409 */
- /* Other via devs could use 3314, 3324, 3327, 3336, 3364, 3353 */
- V4L2_IDENT_VIA_VX855 = 3409,
-
- /* module tvp5150 */
- V4L2_IDENT_TVP5150 = 5150,
-
- /* module saa5246a: just ident 5246 */
- V4L2_IDENT_SAA5246A = 5246,
-
- /* module saa5249: just ident 5249 */
- V4L2_IDENT_SAA5249 = 5249,
-
- /* module cs5345: just ident 5345 */
- V4L2_IDENT_CS5345 = 5345,
-
- /* module tea6415c: just ident 6415 */
- V4L2_IDENT_TEA6415C = 6415,
-
- /* module tea6420: just ident 6420 */
- V4L2_IDENT_TEA6420 = 6420,
-
- /* module saa6588: just ident 6588 */
- V4L2_IDENT_SAA6588 = 6588,
-
- /* module vs6624: just ident 6624 */
- V4L2_IDENT_VS6624 = 6624,
-
- /* module saa6752hs: reserved range 6750-6759 */
- V4L2_IDENT_SAA6752HS = 6752,
- V4L2_IDENT_SAA6752HS_AC3 = 6753,
-
- /* modules tef6862: just ident 6862 */
- V4L2_IDENT_TEF6862 = 6862,
-
- /* module tvp7002: just ident 7002 */
- V4L2_IDENT_TVP7002 = 7002,
-
- /* module adv7170: just ident 7170 */
- V4L2_IDENT_ADV7170 = 7170,
-
- /* module adv7175: just ident 7175 */
- V4L2_IDENT_ADV7175 = 7175,
-
- /* module adv7180: just ident 7180 */
- V4L2_IDENT_ADV7180 = 7180,
-
- /* module adv7183: just ident 7183 */
- V4L2_IDENT_ADV7183 = 7183,
-
- /* module saa7185: just ident 7185 */
- V4L2_IDENT_SAA7185 = 7185,
-
- /* module saa7191: just ident 7191 */
- V4L2_IDENT_SAA7191 = 7191,
-
- /* module ths7303: just ident 7303 */
- V4L2_IDENT_THS7303 = 7303,
-
- /* module adv7343: just ident 7343 */
- V4L2_IDENT_ADV7343 = 7343,
-
- /* module saa7706h: just ident 7706 */
- V4L2_IDENT_SAA7706H = 7706,
-
- /* module mt9v011, just ident 8243 */
- V4L2_IDENT_MT9V011 = 8243,
-
- /* module wm8739: just ident 8739 */
- V4L2_IDENT_WM8739 = 8739,
-
- /* module wm8775: just ident 8775 */
- V4L2_IDENT_WM8775 = 8775,
-
- /* Marvell controllers starting at 8801 */
- V4L2_IDENT_CAFE = 8801,
- V4L2_IDENT_ARMADA610 = 8802,
-
- /* AKM AK8813/AK8814 */
- V4L2_IDENT_AK8813 = 8813,
- V4L2_IDENT_AK8814 = 8814,
-
- /* module cx23885 and cx25840 */
- V4L2_IDENT_CX23885 = 8850,
- V4L2_IDENT_CX23885_AV = 8851, /* Integrated A/V decoder */
- V4L2_IDENT_CX23887 = 8870,
- V4L2_IDENT_CX23887_AV = 8871, /* Integrated A/V decoder */
- V4L2_IDENT_CX23888 = 8880,
- V4L2_IDENT_CX23888_AV = 8881, /* Integrated A/V decoder */
- V4L2_IDENT_CX23888_IR = 8882, /* Integrated infrared controller */
-
- /* module tda9840: just ident 9840 */
- V4L2_IDENT_TDA9840 = 9840,
-
- /* module tw9910: just ident 9910 */
- V4L2_IDENT_TW9910 = 9910,
-
- /* module sn9c20x: just ident 10000 */
- V4L2_IDENT_SN9C20X = 10000,
-
- /* module cx231xx and cx25840 */
- V4L2_IDENT_CX2310X_AV = 23099, /* Integrated A/V decoder; not in '100 */
- V4L2_IDENT_CX23100 = 23100,
- V4L2_IDENT_CX23101 = 23101,
- V4L2_IDENT_CX23102 = 23102,
-
- /* module msp3400: reserved range 34000-34999 for msp34xx */
- V4L2_IDENT_MSPX4XX = 34000, /* generic MSPX4XX identifier, only
- use internally (tveeprom.c). */
-
- V4L2_IDENT_MSP3400B = 34002,
- V4L2_IDENT_MSP3400C = 34003,
- V4L2_IDENT_MSP3400D = 34004,
- V4L2_IDENT_MSP3400G = 34007,
- V4L2_IDENT_MSP3401G = 34017,
- V4L2_IDENT_MSP3402G = 34027,
- V4L2_IDENT_MSP3405D = 34054,
- V4L2_IDENT_MSP3405G = 34057,
- V4L2_IDENT_MSP3407D = 34074,
- V4L2_IDENT_MSP3407G = 34077,
-
- V4L2_IDENT_MSP3410B = 34102,
- V4L2_IDENT_MSP3410C = 34103,
- V4L2_IDENT_MSP3410D = 34104,
- V4L2_IDENT_MSP3410G = 34107,
- V4L2_IDENT_MSP3411G = 34117,
- V4L2_IDENT_MSP3412G = 34127,
- V4L2_IDENT_MSP3415D = 34154,
- V4L2_IDENT_MSP3415G = 34157,
- V4L2_IDENT_MSP3417D = 34174,
- V4L2_IDENT_MSP3417G = 34177,
-
- V4L2_IDENT_MSP3420G = 34207,
- V4L2_IDENT_MSP3421G = 34217,
- V4L2_IDENT_MSP3422G = 34227,
- V4L2_IDENT_MSP3425G = 34257,
- V4L2_IDENT_MSP3427G = 34277,
-
- V4L2_IDENT_MSP3430G = 34307,
- V4L2_IDENT_MSP3431G = 34317,
- V4L2_IDENT_MSP3435G = 34357,
- V4L2_IDENT_MSP3437G = 34377,
-
- V4L2_IDENT_MSP3440G = 34407,
- V4L2_IDENT_MSP3441G = 34417,
- V4L2_IDENT_MSP3442G = 34427,
- V4L2_IDENT_MSP3445G = 34457,
- V4L2_IDENT_MSP3447G = 34477,
-
- V4L2_IDENT_MSP3450G = 34507,
- V4L2_IDENT_MSP3451G = 34517,
- V4L2_IDENT_MSP3452G = 34527,
- V4L2_IDENT_MSP3455G = 34557,
- V4L2_IDENT_MSP3457G = 34577,
-
- V4L2_IDENT_MSP3460G = 34607,
- V4L2_IDENT_MSP3461G = 34617,
- V4L2_IDENT_MSP3465G = 34657,
- V4L2_IDENT_MSP3467G = 34677,
-
- /* module msp3400: reserved range 44000-44999 for msp44xx */
- V4L2_IDENT_MSP4400G = 44007,
- V4L2_IDENT_MSP4408G = 44087,
- V4L2_IDENT_MSP4410G = 44107,
- V4L2_IDENT_MSP4418G = 44187,
- V4L2_IDENT_MSP4420G = 44207,
- V4L2_IDENT_MSP4428G = 44287,
- V4L2_IDENT_MSP4440G = 44407,
- V4L2_IDENT_MSP4448G = 44487,
- V4L2_IDENT_MSP4450G = 44507,
- V4L2_IDENT_MSP4458G = 44587,
-
- /* Micron CMOS sensor chips: 45000-45099 */
- V4L2_IDENT_MT9M001C12ST = 45000,
- V4L2_IDENT_MT9M001C12STM = 45005,
- V4L2_IDENT_MT9M111 = 45007,
- V4L2_IDENT_MT9M112 = 45008,
- V4L2_IDENT_MT9V022IX7ATC = 45010, /* No way to detect "normal" I77ATx */
- V4L2_IDENT_MT9V022IX7ATM = 45015, /* and "lead free" IA7ATx chips */
- V4L2_IDENT_MT9T031 = 45020,
- V4L2_IDENT_MT9T111 = 45021,
- V4L2_IDENT_MT9T112 = 45022,
- V4L2_IDENT_MT9V111 = 45031,
- V4L2_IDENT_MT9V112 = 45032,
-
- /* HV7131R CMOS sensor: just ident 46000 */
- V4L2_IDENT_HV7131R = 46000,
-
- /* Sharp RJ54N1CB0C, 0xCB0C = 51980 */
- V4L2_IDENT_RJ54N1CB0C = 51980,
-
- /* module m52790: just ident 52790 */
- V4L2_IDENT_M52790 = 52790,
-
- /* module cs53132a: just ident 53132 */
- V4L2_IDENT_CS53l32A = 53132,
-
- /* modules upd61151 MPEG2 encoder: just ident 54000 */
- V4L2_IDENT_UPD61161 = 54000,
- /* modules upd61152 MPEG2 encoder with AC3: just ident 54001 */
- V4L2_IDENT_UPD61162 = 54001,
-
- /* module upd64031a: just ident 64031 */
- V4L2_IDENT_UPD64031A = 64031,
-
- /* module upd64083: just ident 64083 */
- V4L2_IDENT_UPD64083 = 64083,
-
- /* Don't just add new IDs at the end: KEEP THIS LIST ORDERED BY ID! */
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/v4l2-common.h b/ANDROID_3.4.5/include/media/v4l2-common.h
deleted file mode 100644
index a298ec49..00000000
--- a/ANDROID_3.4.5/include/media/v4l2-common.h
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- v4l2 common internal API header
-
- This header contains internal shared ioctl definitions for use by the
- internal low-level v4l2 drivers.
- Each ioctl begins with VIDIOC_INT_ to clearly mark that it is an internal
- define,
-
- Copyright (C) 2005 Hans Verkuil <hverkuil@xs4all.nl>
-
- 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
- */
-
-#ifndef V4L2_COMMON_H_
-#define V4L2_COMMON_H_
-
-#include <media/v4l2-dev.h>
-
-/* Common printk constucts for v4l-i2c drivers. These macros create a unique
- prefix consisting of the driver name, the adapter number and the i2c
- address. */
-#define v4l_printk(level, name, adapter, addr, fmt, arg...) \
- printk(level "%s %d-%04x: " fmt, name, i2c_adapter_id(adapter), addr , ## arg)
-
-#define v4l_client_printk(level, client, fmt, arg...) \
- v4l_printk(level, (client)->driver->driver.name, (client)->adapter, \
- (client)->addr, fmt , ## arg)
-
-#define v4l_err(client, fmt, arg...) \
- v4l_client_printk(KERN_ERR, client, fmt , ## arg)
-
-#define v4l_warn(client, fmt, arg...) \
- v4l_client_printk(KERN_WARNING, client, fmt , ## arg)
-
-#define v4l_info(client, fmt, arg...) \
- v4l_client_printk(KERN_INFO, client, fmt , ## arg)
-
-/* These three macros assume that the debug level is set with a module
- parameter called 'debug'. */
-#define v4l_dbg(level, debug, client, fmt, arg...) \
- do { \
- if (debug >= (level)) \
- v4l_client_printk(KERN_DEBUG, client, fmt , ## arg); \
- } while (0)
-
-/* ------------------------------------------------------------------------- */
-
-/* These printk constructs can be used with v4l2_device and v4l2_subdev */
-#define v4l2_printk(level, dev, fmt, arg...) \
- printk(level "%s: " fmt, (dev)->name , ## arg)
-
-#define v4l2_err(dev, fmt, arg...) \
- v4l2_printk(KERN_ERR, dev, fmt , ## arg)
-
-#define v4l2_warn(dev, fmt, arg...) \
- v4l2_printk(KERN_WARNING, dev, fmt , ## arg)
-
-#define v4l2_info(dev, fmt, arg...) \
- v4l2_printk(KERN_INFO, dev, fmt , ## arg)
-
-/* These three macros assume that the debug level is set with a module
- parameter called 'debug'. */
-#define v4l2_dbg(level, debug, dev, fmt, arg...) \
- do { \
- if (debug >= (level)) \
- v4l2_printk(KERN_DEBUG, dev, fmt , ## arg); \
- } while (0)
-
-/* ------------------------------------------------------------------------- */
-
-/* Control helper functions */
-
-int v4l2_ctrl_check(struct v4l2_ext_control *ctrl, struct v4l2_queryctrl *qctrl,
- const char * const *menu_items);
-const char *v4l2_ctrl_get_name(u32 id);
-const char * const *v4l2_ctrl_get_menu(u32 id);
-int v4l2_ctrl_query_fill(struct v4l2_queryctrl *qctrl, s32 min, s32 max, s32 step, s32 def);
-int v4l2_ctrl_query_menu(struct v4l2_querymenu *qmenu,
- struct v4l2_queryctrl *qctrl, const char * const *menu_items);
-#define V4L2_CTRL_MENU_IDS_END (0xffffffff)
-int v4l2_ctrl_query_menu_valid_items(struct v4l2_querymenu *qmenu, const u32 *ids);
-
-/* Note: ctrl_classes points to an array of u32 pointers. Each u32 array is a
- 0-terminated array of control IDs. Each array must be sorted low to high
- and belong to the same control class. The array of u32 pointers must also
- be sorted, from low class IDs to high class IDs. */
-u32 v4l2_ctrl_next(const u32 * const *ctrl_classes, u32 id);
-
-/* ------------------------------------------------------------------------- */
-
-/* Register/chip ident helper function */
-
-struct i2c_client; /* forward reference */
-int v4l2_chip_match_i2c_client(struct i2c_client *c, const struct v4l2_dbg_match *match);
-int v4l2_chip_ident_i2c_client(struct i2c_client *c, struct v4l2_dbg_chip_ident *chip,
- u32 ident, u32 revision);
-int v4l2_chip_match_host(const struct v4l2_dbg_match *match);
-
-/* ------------------------------------------------------------------------- */
-
-/* I2C Helper functions */
-
-struct i2c_driver;
-struct i2c_adapter;
-struct i2c_client;
-struct i2c_device_id;
-struct v4l2_device;
-struct v4l2_subdev;
-struct v4l2_subdev_ops;
-
-
-/* Load an i2c module and return an initialized v4l2_subdev struct.
- The client_type argument is the name of the chip that's on the adapter. */
-struct v4l2_subdev *v4l2_i2c_new_subdev(struct v4l2_device *v4l2_dev,
- struct i2c_adapter *adapter, const char *client_type,
- u8 addr, const unsigned short *probe_addrs);
-
-struct i2c_board_info;
-
-struct v4l2_subdev *v4l2_i2c_new_subdev_board(struct v4l2_device *v4l2_dev,
- struct i2c_adapter *adapter, struct i2c_board_info *info,
- const unsigned short *probe_addrs);
-
-/* Initialize an v4l2_subdev with data from an i2c_client struct */
-void v4l2_i2c_subdev_init(struct v4l2_subdev *sd, struct i2c_client *client,
- const struct v4l2_subdev_ops *ops);
-/* Return i2c client address of v4l2_subdev. */
-unsigned short v4l2_i2c_subdev_addr(struct v4l2_subdev *sd);
-
-enum v4l2_i2c_tuner_type {
- ADDRS_RADIO, /* Radio tuner addresses */
- ADDRS_DEMOD, /* Demod tuner addresses */
- ADDRS_TV, /* TV tuner addresses */
- /* TV tuner addresses if demod is present, this excludes
- addresses used by the demodulator from the list of
- candidates. */
- ADDRS_TV_WITH_DEMOD,
-};
-/* Return a list of I2C tuner addresses to probe. Use only if the tuner
- addresses are unknown. */
-const unsigned short *v4l2_i2c_tuner_addrs(enum v4l2_i2c_tuner_type type);
-
-/* ------------------------------------------------------------------------- */
-
-/* SPI Helper functions */
-#if defined(CONFIG_SPI)
-
-#include <linux/spi/spi.h>
-
-struct spi_device;
-
-/* Load an spi module and return an initialized v4l2_subdev struct.
- The client_type argument is the name of the chip that's on the adapter. */
-struct v4l2_subdev *v4l2_spi_new_subdev(struct v4l2_device *v4l2_dev,
- struct spi_master *master, struct spi_board_info *info);
-
-/* Initialize an v4l2_subdev with data from an spi_device struct */
-void v4l2_spi_subdev_init(struct v4l2_subdev *sd, struct spi_device *spi,
- const struct v4l2_subdev_ops *ops);
-#endif
-
-/* ------------------------------------------------------------------------- */
-
-/* Note: these remaining ioctls/structs should be removed as well, but they are
- still used in tuner-simple.c (TUNER_SET_CONFIG), cx18/ivtv (RESET) and
- v4l2-int-device.h (v4l2_routing). To remove these ioctls some more cleanup
- is needed in those modules. */
-
-/* s_config */
-struct v4l2_priv_tun_config {
- int tuner;
- void *priv;
-};
-#define TUNER_SET_CONFIG _IOW('d', 92, struct v4l2_priv_tun_config)
-
-#define VIDIOC_INT_RESET _IOW ('d', 102, u32)
-
-struct v4l2_routing {
- u32 input;
- u32 output;
-};
-
-/* ------------------------------------------------------------------------- */
-
-/* Miscellaneous helper functions */
-
-void v4l_bound_align_image(unsigned int *w, unsigned int wmin,
- unsigned int wmax, unsigned int walign,
- unsigned int *h, unsigned int hmin,
- unsigned int hmax, unsigned int halign,
- unsigned int salign);
-int v4l_fill_dv_preset_info(u32 preset, struct v4l2_dv_enum_preset *info);
-
-struct v4l2_discrete_probe {
- const struct v4l2_frmsize_discrete *sizes;
- int num_sizes;
-};
-
-const struct v4l2_frmsize_discrete *v4l2_find_nearest_format(
- const struct v4l2_discrete_probe *probe,
- s32 width, s32 height);
-
-#endif /* V4L2_COMMON_H_ */
diff --git a/ANDROID_3.4.5/include/media/v4l2-ctrls.h b/ANDROID_3.4.5/include/media/v4l2-ctrls.h
deleted file mode 100644
index 11e67562..00000000
--- a/ANDROID_3.4.5/include/media/v4l2-ctrls.h
+++ /dev/null
@@ -1,528 +0,0 @@
-/*
- V4L2 controls support header.
-
- Copyright (C) 2010 Hans Verkuil <hverkuil@xs4all.nl>
-
- 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
- */
-
-#ifndef _V4L2_CTRLS_H
-#define _V4L2_CTRLS_H
-
-#include <linux/list.h>
-#include <linux/videodev2.h>
-
-/* forward references */
-struct v4l2_ctrl_handler;
-struct v4l2_ctrl_helper;
-struct v4l2_ctrl;
-struct video_device;
-struct v4l2_subdev;
-struct v4l2_subscribed_event;
-struct v4l2_fh;
-struct poll_table_struct;
-
-/** struct v4l2_ctrl_ops - The control operations that the driver has to provide.
- * @g_volatile_ctrl: Get a new value for this control. Generally only relevant
- * for volatile (and usually read-only) controls such as a control
- * that returns the current signal strength which changes
- * continuously.
- * If not set, then the currently cached value will be returned.
- * @try_ctrl: Test whether the control's value is valid. Only relevant when
- * the usual min/max/step checks are not sufficient.
- * @s_ctrl: Actually set the new control value. s_ctrl is compulsory. The
- * ctrl->handler->lock is held when these ops are called, so no
- * one else can access controls owned by that handler.
- */
-struct v4l2_ctrl_ops {
- int (*g_volatile_ctrl)(struct v4l2_ctrl *ctrl);
- int (*try_ctrl)(struct v4l2_ctrl *ctrl);
- int (*s_ctrl)(struct v4l2_ctrl *ctrl);
-};
-
-/** struct v4l2_ctrl - The control structure.
- * @node: The list node.
- * @ev_subs: The list of control event subscriptions.
- * @handler: The handler that owns the control.
- * @cluster: Point to start of cluster array.
- * @ncontrols: Number of controls in cluster array.
- * @done: Internal flag: set for each processed control.
- * @is_new: Set when the user specified a new value for this control. It
- * is also set when called from v4l2_ctrl_handler_setup. Drivers
- * should never set this flag.
- * @is_private: If set, then this control is private to its handler and it
- * will not be added to any other handlers. Drivers can set
- * this flag.
- * @is_auto: If set, then this control selects whether the other cluster
- * members are in 'automatic' mode or 'manual' mode. This is
- * used for autogain/gain type clusters. Drivers should never
- * set this flag directly.
- * @has_volatiles: If set, then one or more members of the cluster are volatile.
- * Drivers should never touch this flag.
- * @manual_mode_value: If the is_auto flag is set, then this is the value
- * of the auto control that determines if that control is in
- * manual mode. So if the value of the auto control equals this
- * value, then the whole cluster is in manual mode. Drivers should
- * never set this flag directly.
- * @ops: The control ops.
- * @id: The control ID.
- * @name: The control name.
- * @type: The control type.
- * @minimum: The control's minimum value.
- * @maximum: The control's maximum value.
- * @default_value: The control's default value.
- * @step: The control's step value for non-menu controls.
- * @menu_skip_mask: The control's skip mask for menu controls. This makes it
- * easy to skip menu items that are not valid. If bit X is set,
- * then menu item X is skipped. Of course, this only works for
- * menus with <= 32 menu items. There are no menus that come
- * close to that number, so this is OK. Should we ever need more,
- * then this will have to be extended to a u64 or a bit array.
- * @qmenu: A const char * array for all menu items. Array entries that are
- * empty strings ("") correspond to non-existing menu items (this
- * is in addition to the menu_skip_mask above). The last entry
- * must be NULL.
- * @flags: The control's flags.
- * @cur: The control's current value.
- * @val: The control's new s32 value.
- * @val64: The control's new s64 value.
- * @string: The control's new string value.
- * @priv: The control's private pointer. For use by the driver. It is
- * untouched by the control framework. Note that this pointer is
- * not freed when the control is deleted. Should this be needed
- * then a new internal bitfield can be added to tell the framework
- * to free this pointer.
- */
-struct v4l2_ctrl {
- /* Administrative fields */
- struct list_head node;
- struct list_head ev_subs;
- struct v4l2_ctrl_handler *handler;
- struct v4l2_ctrl **cluster;
- unsigned ncontrols;
- unsigned int done:1;
-
- unsigned int is_new:1;
- unsigned int is_private:1;
- unsigned int is_auto:1;
- unsigned int has_volatiles:1;
- unsigned int manual_mode_value:8;
-
- const struct v4l2_ctrl_ops *ops;
- u32 id;
- const char *name;
- enum v4l2_ctrl_type type;
- s32 minimum, maximum, default_value;
- union {
- u32 step;
- u32 menu_skip_mask;
- };
- const char * const *qmenu;
- unsigned long flags;
- union {
- s32 val;
- s64 val64;
- char *string;
- } cur;
- union {
- s32 val;
- s64 val64;
- char *string;
- };
- void *priv;
-};
-
-/** struct v4l2_ctrl_ref - The control reference.
- * @node: List node for the sorted list.
- * @next: Single-link list node for the hash.
- * @ctrl: The actual control information.
- * @helper: Pointer to helper struct. Used internally in prepare_ext_ctrls().
- *
- * Each control handler has a list of these refs. The list_head is used to
- * keep a sorted-by-control-ID list of all controls, while the next pointer
- * is used to link the control in the hash's bucket.
- */
-struct v4l2_ctrl_ref {
- struct list_head node;
- struct v4l2_ctrl_ref *next;
- struct v4l2_ctrl *ctrl;
- struct v4l2_ctrl_helper *helper;
-};
-
-/** struct v4l2_ctrl_handler - The control handler keeps track of all the
- * controls: both the controls owned by the handler and those inherited
- * from other handlers.
- * @lock: Lock to control access to this handler and its controls.
- * @ctrls: The list of controls owned by this handler.
- * @ctrl_refs: The list of control references.
- * @cached: The last found control reference. It is common that the same
- * control is needed multiple times, so this is a simple
- * optimization.
- * @buckets: Buckets for the hashing. Allows for quick control lookup.
- * @nr_of_buckets: Total number of buckets in the array.
- * @error: The error code of the first failed control addition.
- */
-struct v4l2_ctrl_handler {
- struct mutex lock;
- struct list_head ctrls;
- struct list_head ctrl_refs;
- struct v4l2_ctrl_ref *cached;
- struct v4l2_ctrl_ref **buckets;
- u16 nr_of_buckets;
- int error;
-};
-
-/** struct v4l2_ctrl_config - Control configuration structure.
- * @ops: The control ops.
- * @id: The control ID.
- * @name: The control name.
- * @type: The control type.
- * @min: The control's minimum value.
- * @max: The control's maximum value.
- * @step: The control's step value for non-menu controls.
- * @def: The control's default value.
- * @flags: The control's flags.
- * @menu_skip_mask: The control's skip mask for menu controls. This makes it
- * easy to skip menu items that are not valid. If bit X is set,
- * then menu item X is skipped. Of course, this only works for
- * menus with <= 32 menu items. There are no menus that come
- * close to that number, so this is OK. Should we ever need more,
- * then this will have to be extended to a u64 or a bit array.
- * @qmenu: A const char * array for all menu items. Array entries that are
- * empty strings ("") correspond to non-existing menu items (this
- * is in addition to the menu_skip_mask above). The last entry
- * must be NULL.
- * @is_private: If set, then this control is private to its handler and it
- * will not be added to any other handlers.
- */
-struct v4l2_ctrl_config {
- const struct v4l2_ctrl_ops *ops;
- u32 id;
- const char *name;
- enum v4l2_ctrl_type type;
- s32 min;
- s32 max;
- u32 step;
- s32 def;
- u32 flags;
- u32 menu_skip_mask;
- const char * const *qmenu;
- unsigned int is_private:1;
-};
-
-/** v4l2_ctrl_fill() - Fill in the control fields based on the control ID.
- *
- * This works for all standard V4L2 controls.
- * For non-standard controls it will only fill in the given arguments
- * and @name will be NULL.
- *
- * This function will overwrite the contents of @name, @type and @flags.
- * The contents of @min, @max, @step and @def may be modified depending on
- * the type.
- *
- * Do not use in drivers! It is used internally for backwards compatibility
- * control handling only. Once all drivers are converted to use the new
- * control framework this function will no longer be exported.
- */
-void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type,
- s32 *min, s32 *max, s32 *step, s32 *def, u32 *flags);
-
-
-/** v4l2_ctrl_handler_init() - Initialize the control handler.
- * @hdl: The control handler.
- * @nr_of_controls_hint: A hint of how many controls this handler is
- * expected to refer to. This is the total number, so including
- * any inherited controls. It doesn't have to be precise, but if
- * it is way off, then you either waste memory (too many buckets
- * are allocated) or the control lookup becomes slower (not enough
- * buckets are allocated, so there are more slow list lookups).
- * It will always work, though.
- *
- * Returns an error if the buckets could not be allocated. This error will
- * also be stored in @hdl->error.
- */
-int v4l2_ctrl_handler_init(struct v4l2_ctrl_handler *hdl,
- unsigned nr_of_controls_hint);
-
-/** v4l2_ctrl_handler_free() - Free all controls owned by the handler and free
- * the control list.
- * @hdl: The control handler.
- *
- * Does nothing if @hdl == NULL.
- */
-void v4l2_ctrl_handler_free(struct v4l2_ctrl_handler *hdl);
-
-/** v4l2_ctrl_handler_setup() - Call the s_ctrl op for all controls belonging
- * to the handler to initialize the hardware to the current control values.
- * @hdl: The control handler.
- *
- * Button controls will be skipped, as are read-only controls.
- *
- * If @hdl == NULL, then this just returns 0.
- */
-int v4l2_ctrl_handler_setup(struct v4l2_ctrl_handler *hdl);
-
-/** v4l2_ctrl_handler_log_status() - Log all controls owned by the handler.
- * @hdl: The control handler.
- * @prefix: The prefix to use when logging the control values. If the
- * prefix does not end with a space, then ": " will be added
- * after the prefix. If @prefix == NULL, then no prefix will be
- * used.
- *
- * For use with VIDIOC_LOG_STATUS.
- *
- * Does nothing if @hdl == NULL.
- */
-void v4l2_ctrl_handler_log_status(struct v4l2_ctrl_handler *hdl,
- const char *prefix);
-
-/** v4l2_ctrl_new_custom() - Allocate and initialize a new custom V4L2
- * control.
- * @hdl: The control handler.
- * @cfg: The control's configuration data.
- * @priv: The control's driver-specific private data.
- *
- * If the &v4l2_ctrl struct could not be allocated then NULL is returned
- * and @hdl->error is set to the error code (if it wasn't set already).
- */
-struct v4l2_ctrl *v4l2_ctrl_new_custom(struct v4l2_ctrl_handler *hdl,
- const struct v4l2_ctrl_config *cfg, void *priv);
-
-/** v4l2_ctrl_new_std() - Allocate and initialize a new standard V4L2 non-menu control.
- * @hdl: The control handler.
- * @ops: The control ops.
- * @id: The control ID.
- * @min: The control's minimum value.
- * @max: The control's maximum value.
- * @step: The control's step value
- * @def: The control's default value.
- *
- * If the &v4l2_ctrl struct could not be allocated, or the control
- * ID is not known, then NULL is returned and @hdl->error is set to the
- * appropriate error code (if it wasn't set already).
- *
- * If @id refers to a menu control, then this function will return NULL.
- *
- * Use v4l2_ctrl_new_std_menu() when adding menu controls.
- */
-struct v4l2_ctrl *v4l2_ctrl_new_std(struct v4l2_ctrl_handler *hdl,
- const struct v4l2_ctrl_ops *ops,
- u32 id, s32 min, s32 max, u32 step, s32 def);
-
-/** v4l2_ctrl_new_std_menu() - Allocate and initialize a new standard V4L2 menu control.
- * @hdl: The control handler.
- * @ops: The control ops.
- * @id: The control ID.
- * @max: The control's maximum value.
- * @mask: The control's skip mask for menu controls. This makes it
- * easy to skip menu items that are not valid. If bit X is set,
- * then menu item X is skipped. Of course, this only works for
- * menus with <= 32 menu items. There are no menus that come
- * close to that number, so this is OK. Should we ever need more,
- * then this will have to be extended to a u64 or a bit array.
- * @def: The control's default value.
- *
- * Same as v4l2_ctrl_new_std(), but @min is set to 0 and the @mask value
- * determines which menu items are to be skipped.
- *
- * If @id refers to a non-menu control, then this function will return NULL.
- */
-struct v4l2_ctrl *v4l2_ctrl_new_std_menu(struct v4l2_ctrl_handler *hdl,
- const struct v4l2_ctrl_ops *ops,
- u32 id, s32 max, s32 mask, s32 def);
-
-/** v4l2_ctrl_add_ctrl() - Add a control from another handler to this handler.
- * @hdl: The control handler.
- * @ctrl: The control to add.
- *
- * It will return NULL if it was unable to add the control reference.
- * If the control already belonged to the handler, then it will do
- * nothing and just return @ctrl.
- */
-struct v4l2_ctrl *v4l2_ctrl_add_ctrl(struct v4l2_ctrl_handler *hdl,
- struct v4l2_ctrl *ctrl);
-
-/** v4l2_ctrl_add_handler() - Add all controls from handler @add to
- * handler @hdl.
- * @hdl: The control handler.
- * @add: The control handler whose controls you want to add to
- * the @hdl control handler.
- *
- * Does nothing if either of the two is a NULL pointer.
- * In case of an error @hdl->error will be set to the error code (if it
- * wasn't set already).
- */
-int v4l2_ctrl_add_handler(struct v4l2_ctrl_handler *hdl,
- struct v4l2_ctrl_handler *add);
-
-
-/** v4l2_ctrl_cluster() - Mark all controls in the cluster as belonging to that cluster.
- * @ncontrols: The number of controls in this cluster.
- * @controls: The cluster control array of size @ncontrols.
- */
-void v4l2_ctrl_cluster(unsigned ncontrols, struct v4l2_ctrl **controls);
-
-
-/** v4l2_ctrl_auto_cluster() - Mark all controls in the cluster as belonging to
- * that cluster and set it up for autofoo/foo-type handling.
- * @ncontrols: The number of controls in this cluster.
- * @controls: The cluster control array of size @ncontrols. The first control
- * must be the 'auto' control (e.g. autogain, autoexposure, etc.)
- * @manual_val: The value for the first control in the cluster that equals the
- * manual setting.
- * @set_volatile: If true, then all controls except the first auto control will
- * be volatile.
- *
- * Use for control groups where one control selects some automatic feature and
- * the other controls are only active whenever the automatic feature is turned
- * off (manual mode). Typical examples: autogain vs gain, auto-whitebalance vs
- * red and blue balance, etc.
- *
- * The behavior of such controls is as follows:
- *
- * When the autofoo control is set to automatic, then any manual controls
- * are set to inactive and any reads will call g_volatile_ctrl (if the control
- * was marked volatile).
- *
- * When the autofoo control is set to manual, then any manual controls will
- * be marked active, and any reads will just return the current value without
- * going through g_volatile_ctrl.
- *
- * In addition, this function will set the V4L2_CTRL_FLAG_UPDATE flag
- * on the autofoo control and V4L2_CTRL_FLAG_INACTIVE on the foo control(s)
- * if autofoo is in auto mode.
- */
-void v4l2_ctrl_auto_cluster(unsigned ncontrols, struct v4l2_ctrl **controls,
- u8 manual_val, bool set_volatile);
-
-
-/** v4l2_ctrl_find() - Find a control with the given ID.
- * @hdl: The control handler.
- * @id: The control ID to find.
- *
- * If @hdl == NULL this will return NULL as well. Will lock the handler so
- * do not use from inside &v4l2_ctrl_ops.
- */
-struct v4l2_ctrl *v4l2_ctrl_find(struct v4l2_ctrl_handler *hdl, u32 id);
-
-/** v4l2_ctrl_activate() - Make the control active or inactive.
- * @ctrl: The control to (de)activate.
- * @active: True if the control should become active.
- *
- * This sets or clears the V4L2_CTRL_FLAG_INACTIVE flag atomically.
- * Does nothing if @ctrl == NULL.
- * This will usually be called from within the s_ctrl op.
- * The V4L2_EVENT_CTRL event will be generated afterwards.
- *
- * This function assumes that the control handler is locked.
- */
-void v4l2_ctrl_activate(struct v4l2_ctrl *ctrl, bool active);
-
-/** v4l2_ctrl_grab() - Mark the control as grabbed or not grabbed.
- * @ctrl: The control to (de)activate.
- * @grabbed: True if the control should become grabbed.
- *
- * This sets or clears the V4L2_CTRL_FLAG_GRABBED flag atomically.
- * Does nothing if @ctrl == NULL.
- * The V4L2_EVENT_CTRL event will be generated afterwards.
- * This will usually be called when starting or stopping streaming in the
- * driver.
- *
- * This function assumes that the control handler is not locked and will
- * take the lock itself.
- */
-void v4l2_ctrl_grab(struct v4l2_ctrl *ctrl, bool grabbed);
-
-/** v4l2_ctrl_lock() - Helper function to lock the handler
- * associated with the control.
- * @ctrl: The control to lock.
- */
-static inline void v4l2_ctrl_lock(struct v4l2_ctrl *ctrl)
-{
- mutex_lock(&ctrl->handler->lock);
-}
-
-/** v4l2_ctrl_lock() - Helper function to unlock the handler
- * associated with the control.
- * @ctrl: The control to unlock.
- */
-static inline void v4l2_ctrl_unlock(struct v4l2_ctrl *ctrl)
-{
- mutex_unlock(&ctrl->handler->lock);
-}
-
-/** v4l2_ctrl_g_ctrl() - Helper function to get the control's value from within a driver.
- * @ctrl: The control.
- *
- * This returns the control's value safely by going through the control
- * framework. This function will lock the control's handler, so it cannot be
- * used from within the &v4l2_ctrl_ops functions.
- *
- * This function is for integer type controls only.
- */
-s32 v4l2_ctrl_g_ctrl(struct v4l2_ctrl *ctrl);
-
-/** v4l2_ctrl_s_ctrl() - Helper function to set the control's value from within a driver.
- * @ctrl: The control.
- * @val: The new value.
- *
- * This set the control's new value safely by going through the control
- * framework. This function will lock the control's handler, so it cannot be
- * used from within the &v4l2_ctrl_ops functions.
- *
- * This function is for integer type controls only.
- */
-int v4l2_ctrl_s_ctrl(struct v4l2_ctrl *ctrl, s32 val);
-
-/* Internal helper functions that deal with control events. */
-void v4l2_ctrl_add_event(struct v4l2_ctrl *ctrl,
- struct v4l2_subscribed_event *sev);
-void v4l2_ctrl_del_event(struct v4l2_ctrl *ctrl,
- struct v4l2_subscribed_event *sev);
-
-/* Can be used as a vidioc_log_status function that just dumps all controls
- associated with the filehandle. */
-int v4l2_ctrl_log_status(struct file *file, void *fh);
-
-/* Can be used as a vidioc_subscribe_event function that just subscribes
- control events. */
-int v4l2_ctrl_subscribe_event(struct v4l2_fh *fh,
- struct v4l2_event_subscription *sub);
-
-/* Can be used as a poll function that just polls for control events. */
-unsigned int v4l2_ctrl_poll(struct file *file, struct poll_table_struct *wait);
-
-/* Helpers for ioctl_ops. If hdl == NULL then they will all return -EINVAL. */
-int v4l2_queryctrl(struct v4l2_ctrl_handler *hdl, struct v4l2_queryctrl *qc);
-int v4l2_querymenu(struct v4l2_ctrl_handler *hdl, struct v4l2_querymenu *qm);
-int v4l2_g_ctrl(struct v4l2_ctrl_handler *hdl, struct v4l2_control *ctrl);
-int v4l2_s_ctrl(struct v4l2_fh *fh, struct v4l2_ctrl_handler *hdl,
- struct v4l2_control *ctrl);
-int v4l2_g_ext_ctrls(struct v4l2_ctrl_handler *hdl, struct v4l2_ext_controls *c);
-int v4l2_try_ext_ctrls(struct v4l2_ctrl_handler *hdl, struct v4l2_ext_controls *c);
-int v4l2_s_ext_ctrls(struct v4l2_fh *fh, struct v4l2_ctrl_handler *hdl,
- struct v4l2_ext_controls *c);
-
-/* Helpers for subdevices. If the associated ctrl_handler == NULL then they
- will all return -EINVAL. */
-int v4l2_subdev_queryctrl(struct v4l2_subdev *sd, struct v4l2_queryctrl *qc);
-int v4l2_subdev_querymenu(struct v4l2_subdev *sd, struct v4l2_querymenu *qm);
-int v4l2_subdev_g_ext_ctrls(struct v4l2_subdev *sd, struct v4l2_ext_controls *cs);
-int v4l2_subdev_try_ext_ctrls(struct v4l2_subdev *sd, struct v4l2_ext_controls *cs);
-int v4l2_subdev_s_ext_ctrls(struct v4l2_subdev *sd, struct v4l2_ext_controls *cs);
-int v4l2_subdev_g_ctrl(struct v4l2_subdev *sd, struct v4l2_control *ctrl);
-int v4l2_subdev_s_ctrl(struct v4l2_subdev *sd, struct v4l2_control *ctrl);
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/v4l2-dev.h b/ANDROID_3.4.5/include/media/v4l2-dev.h
deleted file mode 100644
index 96d22215..00000000
--- a/ANDROID_3.4.5/include/media/v4l2-dev.h
+++ /dev/null
@@ -1,206 +0,0 @@
-/*
- *
- * V 4 L 2 D R I V E R H E L P E R A P I
- *
- * Moved from videodev2.h
- *
- * Some commonly needed functions for drivers (v4l2-common.o module)
- */
-#ifndef _V4L2_DEV_H
-#define _V4L2_DEV_H
-
-#include <linux/poll.h>
-#include <linux/fs.h>
-#include <linux/device.h>
-#include <linux/cdev.h>
-#include <linux/mutex.h>
-#include <linux/videodev2.h>
-
-#include <media/media-entity.h>
-
-#define VIDEO_MAJOR 81
-
-#define VFL_TYPE_GRABBER 0
-#define VFL_TYPE_VBI 1
-#define VFL_TYPE_RADIO 2
-#define VFL_TYPE_SUBDEV 3
-#define VFL_TYPE_MAX 4
-
-struct v4l2_ioctl_callbacks;
-struct video_device;
-struct v4l2_device;
-struct v4l2_ctrl_handler;
-
-/* Flag to mark the video_device struct as registered.
- Drivers can clear this flag if they want to block all future
- device access. It is cleared by video_unregister_device. */
-#define V4L2_FL_REGISTERED (0)
-/* file->private_data points to struct v4l2_fh */
-#define V4L2_FL_USES_V4L2_FH (1)
-/* Use the prio field of v4l2_fh for core priority checking */
-#define V4L2_FL_USE_FH_PRIO (2)
-
-/* Priority helper functions */
-
-struct v4l2_prio_state {
- atomic_t prios[4];
-};
-
-void v4l2_prio_init(struct v4l2_prio_state *global);
-int v4l2_prio_change(struct v4l2_prio_state *global, enum v4l2_priority *local,
- enum v4l2_priority new);
-void v4l2_prio_open(struct v4l2_prio_state *global, enum v4l2_priority *local);
-void v4l2_prio_close(struct v4l2_prio_state *global, enum v4l2_priority local);
-enum v4l2_priority v4l2_prio_max(struct v4l2_prio_state *global);
-int v4l2_prio_check(struct v4l2_prio_state *global, enum v4l2_priority local);
-
-
-struct v4l2_file_operations {
- struct module *owner;
- ssize_t (*read) (struct file *, char __user *, size_t, loff_t *);
- ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *);
- unsigned int (*poll) (struct file *, struct poll_table_struct *);
- long (*ioctl) (struct file *, unsigned int, unsigned long);
- long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long);
-#ifdef CONFIG_COMPAT
- long (*compat_ioctl32) (struct file *, unsigned int, unsigned long);
-#endif
- unsigned long (*get_unmapped_area) (struct file *, unsigned long,
- unsigned long, unsigned long, unsigned long);
- int (*mmap) (struct file *, struct vm_area_struct *);
- int (*open) (struct file *);
- int (*release) (struct file *);
-};
-
-/*
- * Newer version of video_device, handled by videodev2.c
- * This version moves redundant code from video device code to
- * the common handler
- */
-
-struct video_device
-{
-#if defined(CONFIG_MEDIA_CONTROLLER)
- struct media_entity entity;
-#endif
- /* device ops */
- const struct v4l2_file_operations *fops;
-
- /* sysfs */
- struct device dev; /* v4l device */
- struct cdev *cdev; /* character device */
-
- /* Set either parent or v4l2_dev if your driver uses v4l2_device */
- struct device *parent; /* device parent */
- struct v4l2_device *v4l2_dev; /* v4l2_device parent */
-
- /* Control handler associated with this device node. May be NULL. */
- struct v4l2_ctrl_handler *ctrl_handler;
-
- /* Priority state. If NULL, then v4l2_dev->prio will be used. */
- struct v4l2_prio_state *prio;
-
- /* device info */
- char name[32];
- int vfl_type;
- /* 'minor' is set to -1 if the registration failed */
- int minor;
- u16 num;
- /* use bitops to set/clear/test flags */
- unsigned long flags;
- /* attribute to differentiate multiple indices on one physical device */
- int index;
-
- /* V4L2 file handles */
- spinlock_t fh_lock; /* Lock for all v4l2_fhs */
- struct list_head fh_list; /* List of struct v4l2_fh */
-
- int debug; /* Activates debug level*/
-
- /* Video standard vars */
- v4l2_std_id tvnorms; /* Supported tv norms */
- v4l2_std_id current_norm; /* Current tvnorm */
-
- /* callbacks */
- void (*release)(struct video_device *vdev);
-
- /* ioctl callbacks */
- const struct v4l2_ioctl_ops *ioctl_ops;
-
- /* serialization lock */
- struct mutex *lock;
-};
-
-#define media_entity_to_video_device(__e) \
- container_of(__e, struct video_device, entity)
-/* dev to video-device */
-#define to_video_device(cd) container_of(cd, struct video_device, dev)
-
-int __must_check __video_register_device(struct video_device *vdev, int type,
- int nr, int warn_if_nr_in_use, struct module *owner);
-
-/* Register video devices. Note that if video_register_device fails,
- the release() callback of the video_device structure is *not* called, so
- the caller is responsible for freeing any data. Usually that means that
- you call video_device_release() on failure. */
-static inline int __must_check video_register_device(struct video_device *vdev,
- int type, int nr)
-{
- return __video_register_device(vdev, type, nr, 1, vdev->fops->owner);
-}
-
-/* Same as video_register_device, but no warning is issued if the desired
- device node number was already in use. */
-static inline int __must_check video_register_device_no_warn(
- struct video_device *vdev, int type, int nr)
-{
- return __video_register_device(vdev, type, nr, 0, vdev->fops->owner);
-}
-
-/* Unregister video devices. Will do nothing if vdev == NULL or
- video_is_registered() returns false. */
-void video_unregister_device(struct video_device *vdev);
-
-/* helper functions to alloc/release struct video_device, the
- latter can also be used for video_device->release(). */
-struct video_device * __must_check video_device_alloc(void);
-
-/* this release function frees the vdev pointer */
-void video_device_release(struct video_device *vdev);
-
-/* this release function does nothing, use when the video_device is a
- static global struct. Note that having a static video_device is
- a dubious construction at best. */
-void video_device_release_empty(struct video_device *vdev);
-
-/* helper functions to access driver private data. */
-static inline void *video_get_drvdata(struct video_device *vdev)
-{
- return dev_get_drvdata(&vdev->dev);
-}
-
-static inline void video_set_drvdata(struct video_device *vdev, void *data)
-{
- dev_set_drvdata(&vdev->dev, data);
-}
-
-struct video_device *video_devdata(struct file *file);
-
-/* Combine video_get_drvdata and video_devdata as this is
- used very often. */
-static inline void *video_drvdata(struct file *file)
-{
- return video_get_drvdata(video_devdata(file));
-}
-
-static inline const char *video_device_node_name(struct video_device *vdev)
-{
- return dev_name(&vdev->dev);
-}
-
-static inline int video_is_registered(struct video_device *vdev)
-{
- return test_bit(V4L2_FL_REGISTERED, &vdev->flags);
-}
-
-#endif /* _V4L2_DEV_H */
diff --git a/ANDROID_3.4.5/include/media/v4l2-device.h b/ANDROID_3.4.5/include/media/v4l2-device.h
deleted file mode 100644
index d61febfb..00000000
--- a/ANDROID_3.4.5/include/media/v4l2-device.h
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- V4L2 device support header.
-
- Copyright (C) 2008 Hans Verkuil <hverkuil@xs4all.nl>
-
- 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
- */
-
-#ifndef _V4L2_DEVICE_H
-#define _V4L2_DEVICE_H
-
-#include <media/media-device.h>
-#include <media/v4l2-subdev.h>
-#include <media/v4l2-dev.h>
-
-/* Each instance of a V4L2 device should create the v4l2_device struct,
- either stand-alone or embedded in a larger struct.
-
- It allows easy access to sub-devices (see v4l2-subdev.h) and provides
- basic V4L2 device-level support.
- */
-
-#define V4L2_DEVICE_NAME_SIZE (20 + 16)
-
-struct v4l2_ctrl_handler;
-
-struct v4l2_device {
- /* dev->driver_data points to this struct.
- Note: dev might be NULL if there is no parent device
- as is the case with e.g. ISA devices. */
- struct device *dev;
-#if defined(CONFIG_MEDIA_CONTROLLER)
- struct media_device *mdev;
-#endif
- /* used to keep track of the registered subdevs */
- struct list_head subdevs;
- /* lock this struct; can be used by the driver as well if this
- struct is embedded into a larger struct. */
- spinlock_t lock;
- /* unique device name, by default the driver name + bus ID */
- char name[V4L2_DEVICE_NAME_SIZE];
- /* notify callback called by some sub-devices. */
- void (*notify)(struct v4l2_subdev *sd,
- unsigned int notification, void *arg);
- /* The control handler. May be NULL. */
- struct v4l2_ctrl_handler *ctrl_handler;
- /* Device's priority state */
- struct v4l2_prio_state prio;
- /* BKL replacement mutex. Temporary solution only. */
- struct mutex ioctl_lock;
- /* Keep track of the references to this struct. */
- struct kref ref;
- /* Release function that is called when the ref count goes to 0. */
- void (*release)(struct v4l2_device *v4l2_dev);
-};
-
-static inline void v4l2_device_get(struct v4l2_device *v4l2_dev)
-{
- kref_get(&v4l2_dev->ref);
-}
-
-int v4l2_device_put(struct v4l2_device *v4l2_dev);
-
-/* Initialize v4l2_dev and make dev->driver_data point to v4l2_dev.
- dev may be NULL in rare cases (ISA devices). In that case you
- must fill in the v4l2_dev->name field before calling this function. */
-int __must_check v4l2_device_register(struct device *dev, struct v4l2_device *v4l2_dev);
-
-/* Optional function to initialize the name field of struct v4l2_device using
- the driver name and a driver-global atomic_t instance.
- This function will increment the instance counter and returns the instance
- value used in the name.
-
- Example:
-
- static atomic_t drv_instance = ATOMIC_INIT(0);
-
- ...
-
- instance = v4l2_device_set_name(&v4l2_dev, "foo", &drv_instance);
-
- The first time this is called the name field will be set to foo0 and
- this function returns 0. If the name ends with a digit (e.g. cx18),
- then the name will be set to cx18-0 since cx180 looks really odd. */
-int v4l2_device_set_name(struct v4l2_device *v4l2_dev, const char *basename,
- atomic_t *instance);
-
-/* Set v4l2_dev->dev to NULL. Call when the USB parent disconnects.
- Since the parent disappears this ensures that v4l2_dev doesn't have an
- invalid parent pointer. */
-void v4l2_device_disconnect(struct v4l2_device *v4l2_dev);
-
-/* Unregister all sub-devices and any other resources related to v4l2_dev. */
-void v4l2_device_unregister(struct v4l2_device *v4l2_dev);
-
-/* Register a subdev with a v4l2 device. While registered the subdev module
- is marked as in-use. An error is returned if the module is no longer
- loaded when you attempt to register it. */
-int __must_check v4l2_device_register_subdev(struct v4l2_device *v4l2_dev,
- struct v4l2_subdev *sd);
-/* Unregister a subdev with a v4l2 device. Can also be called if the subdev
- wasn't registered. In that case it will do nothing. */
-void v4l2_device_unregister_subdev(struct v4l2_subdev *sd);
-
-/* Register device nodes for all subdev of the v4l2 device that are marked with
- * the V4L2_SUBDEV_FL_HAS_DEVNODE flag.
- */
-int __must_check
-v4l2_device_register_subdev_nodes(struct v4l2_device *v4l2_dev);
-
-/* Iterate over all subdevs. */
-#define v4l2_device_for_each_subdev(sd, v4l2_dev) \
- list_for_each_entry(sd, &(v4l2_dev)->subdevs, list)
-
-/* Call the specified callback for all subdevs matching the condition.
- Ignore any errors. Note that you cannot add or delete a subdev
- while walking the subdevs list. */
-#define __v4l2_device_call_subdevs_p(v4l2_dev, sd, cond, o, f, args...) \
- do { \
- list_for_each_entry((sd), &(v4l2_dev)->subdevs, list) \
- if ((cond) && (sd)->ops->o && (sd)->ops->o->f) \
- (sd)->ops->o->f((sd) , ##args); \
- } while (0)
-
-#define __v4l2_device_call_subdevs(v4l2_dev, cond, o, f, args...) \
- do { \
- struct v4l2_subdev *__sd; \
- \
- __v4l2_device_call_subdevs_p(v4l2_dev, __sd, cond, o, \
- f , ##args); \
- } while (0)
-
-/* Call the specified callback for all subdevs matching the condition.
- If the callback returns an error other than 0 or -ENOIOCTLCMD, then
- return with that error code. Note that you cannot add or delete a
- subdev while walking the subdevs list. */
-#define __v4l2_device_call_subdevs_until_err_p(v4l2_dev, sd, cond, o, f, args...) \
-({ \
- long __err = 0; \
- \
- list_for_each_entry((sd), &(v4l2_dev)->subdevs, list) { \
- if ((cond) && (sd)->ops->o && (sd)->ops->o->f) \
- __err = (sd)->ops->o->f((sd) , ##args); \
- if (__err && __err != -ENOIOCTLCMD) \
- break; \
- } \
- (__err == -ENOIOCTLCMD) ? 0 : __err; \
-})
-
-#define __v4l2_device_call_subdevs_until_err(v4l2_dev, cond, o, f, args...) \
-({ \
- struct v4l2_subdev *__sd; \
- __v4l2_device_call_subdevs_until_err_p(v4l2_dev, __sd, cond, o, \
- f , ##args); \
-})
-
-/* Call the specified callback for all subdevs matching grp_id (if 0, then
- match them all). Ignore any errors. Note that you cannot add or delete
- a subdev while walking the subdevs list. */
-#define v4l2_device_call_all(v4l2_dev, grpid, o, f, args...) \
- do { \
- struct v4l2_subdev *__sd; \
- \
- __v4l2_device_call_subdevs_p(v4l2_dev, __sd, \
- !(grpid) || __sd->grp_id == (grpid), o, f , \
- ##args); \
- } while (0)
-
-/* Call the specified callback for all subdevs matching grp_id (if 0, then
- match them all). If the callback returns an error other than 0 or
- -ENOIOCTLCMD, then return with that error code. Note that you cannot
- add or delete a subdev while walking the subdevs list. */
-#define v4l2_device_call_until_err(v4l2_dev, grpid, o, f, args...) \
-({ \
- struct v4l2_subdev *__sd; \
- __v4l2_device_call_subdevs_until_err_p(v4l2_dev, __sd, \
- !(grpid) || __sd->grp_id == (grpid), o, f , \
- ##args); \
-})
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/v4l2-event.h b/ANDROID_3.4.5/include/media/v4l2-event.h
deleted file mode 100644
index 5f14e889..00000000
--- a/ANDROID_3.4.5/include/media/v4l2-event.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * v4l2-event.h
- *
- * V4L2 events.
- *
- * Copyright (C) 2009--2010 Nokia Corporation.
- *
- * Contact: Sakari Ailus <sakari.ailus@maxwell.research.nokia.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.
- *
- * 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 V4L2_EVENT_H
-#define V4L2_EVENT_H
-
-#include <linux/types.h>
-#include <linux/videodev2.h>
-#include <linux/wait.h>
-
-/*
- * Overview:
- *
- * Events are subscribed per-filehandle. An event specification consists of a
- * type and is optionally associated with an object identified through the
- * 'id' field. So an event is uniquely identified by the (type, id) tuple.
- *
- * The v4l2-fh struct has a list of subscribed events. The v4l2_subscribed_event
- * struct is added to that list, one for every subscribed event.
- *
- * Each v4l2_subscribed_event struct ends with an array of v4l2_kevent structs.
- * This array (ringbuffer, really) is used to store any events raised by the
- * driver. The v4l2_kevent struct links into the 'available' list of the
- * v4l2_fh struct so VIDIOC_DQEVENT will know which event to dequeue first.
- *
- * Finally, if the event subscription is associated with a particular object
- * such as a V4L2 control, then that object needs to know about that as well
- * so that an event can be raised by that object. So the 'node' field can
- * be used to link the v4l2_subscribed_event struct into a list of that
- * object.
- *
- * So to summarize:
- *
- * struct v4l2_fh has two lists: one of the subscribed events, and one of the
- * pending events.
- *
- * struct v4l2_subscribed_event has a ringbuffer of raised (pending) events of
- * that particular type.
- *
- * If struct v4l2_subscribed_event is associated with a specific object, then
- * that object will have an internal list of struct v4l2_subscribed_event so
- * it knows who subscribed an event to that object.
- */
-
-struct v4l2_fh;
-struct v4l2_subscribed_event;
-struct video_device;
-
-/** struct v4l2_kevent - Internal kernel event struct.
- * @list: List node for the v4l2_fh->available list.
- * @sev: Pointer to parent v4l2_subscribed_event.
- * @event: The event itself.
- */
-struct v4l2_kevent {
- struct list_head list;
- struct v4l2_subscribed_event *sev;
- struct v4l2_event event;
-};
-
-/** struct v4l2_subscribed_event - Internal struct representing a subscribed event.
- * @list: List node for the v4l2_fh->subscribed list.
- * @type: Event type.
- * @id: Associated object ID (e.g. control ID). 0 if there isn't any.
- * @flags: Copy of v4l2_event_subscription->flags.
- * @fh: Filehandle that subscribed to this event.
- * @node: List node that hooks into the object's event list (if there is one).
- * @replace: Optional callback that can replace event 'old' with event 'new'.
- * @merge: Optional callback that can merge event 'old' into event 'new'.
- * @elems: The number of elements in the events array.
- * @first: The index of the events containing the oldest available event.
- * @in_use: The number of queued events.
- * @events: An array of @elems events.
- */
-struct v4l2_subscribed_event {
- struct list_head list;
- u32 type;
- u32 id;
- u32 flags;
- struct v4l2_fh *fh;
- struct list_head node;
- void (*replace)(struct v4l2_event *old,
- const struct v4l2_event *new);
- void (*merge)(const struct v4l2_event *old,
- struct v4l2_event *new);
- unsigned elems;
- unsigned first;
- unsigned in_use;
- struct v4l2_kevent events[];
-};
-
-int v4l2_event_dequeue(struct v4l2_fh *fh, struct v4l2_event *event,
- int nonblocking);
-void v4l2_event_queue(struct video_device *vdev, const struct v4l2_event *ev);
-void v4l2_event_queue_fh(struct v4l2_fh *fh, const struct v4l2_event *ev);
-int v4l2_event_pending(struct v4l2_fh *fh);
-int v4l2_event_subscribe(struct v4l2_fh *fh,
- struct v4l2_event_subscription *sub, unsigned elems);
-int v4l2_event_unsubscribe(struct v4l2_fh *fh,
- struct v4l2_event_subscription *sub);
-void v4l2_event_unsubscribe_all(struct v4l2_fh *fh);
-
-#endif /* V4L2_EVENT_H */
diff --git a/ANDROID_3.4.5/include/media/v4l2-fh.h b/ANDROID_3.4.5/include/media/v4l2-fh.h
deleted file mode 100644
index 52513c22..00000000
--- a/ANDROID_3.4.5/include/media/v4l2-fh.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * v4l2-fh.h
- *
- * V4L2 file handle. Store per file handle data for the V4L2
- * framework. Using file handles is optional for the drivers.
- *
- * Copyright (C) 2009--2010 Nokia Corporation.
- *
- * Contact: Sakari Ailus <sakari.ailus@maxwell.research.nokia.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.
- *
- * 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 V4L2_FH_H
-#define V4L2_FH_H
-
-#include <linux/list.h>
-
-struct video_device;
-struct v4l2_ctrl_handler;
-
-struct v4l2_fh {
- struct list_head list;
- struct video_device *vdev;
- struct v4l2_ctrl_handler *ctrl_handler;
- enum v4l2_priority prio;
-
- /* Events */
- wait_queue_head_t wait;
- struct list_head subscribed; /* Subscribed events */
- struct list_head available; /* Dequeueable event */
- unsigned int navailable;
- u32 sequence;
-};
-
-/*
- * Initialise the file handle. Parts of the V4L2 framework using the
- * file handles should be initialised in this function. Must be called
- * from driver's v4l2_file_operations->open() handler if the driver
- * uses v4l2_fh.
- */
-void v4l2_fh_init(struct v4l2_fh *fh, struct video_device *vdev);
-/*
- * Add the fh to the list of file handles on a video_device. The file
- * handle must be initialised first.
- */
-void v4l2_fh_add(struct v4l2_fh *fh);
-/*
- * Can be used as the open() op of v4l2_file_operations.
- * It allocates a v4l2_fh and inits and adds it to the video_device associated
- * with the file pointer.
- */
-int v4l2_fh_open(struct file *filp);
-/*
- * Remove file handle from the list of file handles. Must be called in
- * v4l2_file_operations->release() handler if the driver uses v4l2_fh.
- * On error filp->private_data will be NULL, otherwise it will point to
- * the v4l2_fh struct.
- */
-void v4l2_fh_del(struct v4l2_fh *fh);
-/*
- * Release resources related to a file handle. Parts of the V4L2
- * framework using the v4l2_fh must release their resources here, too.
- * Must be called in v4l2_file_operations->release() handler if the
- * driver uses v4l2_fh.
- */
-void v4l2_fh_exit(struct v4l2_fh *fh);
-/*
- * Can be used as the release() op of v4l2_file_operations.
- * It deletes and exits the v4l2_fh associated with the file pointer and
- * frees it. It will do nothing if filp->private_data (the pointer to the
- * v4l2_fh struct) is NULL. This function always returns 0.
- */
-int v4l2_fh_release(struct file *filp);
-/*
- * Returns 1 if this filehandle is the only filehandle opened for the
- * associated video_device. If fh is NULL, then it returns 0.
- */
-int v4l2_fh_is_singular(struct v4l2_fh *fh);
-/*
- * Helper function with struct file as argument. If filp->private_data is
- * NULL, then it will return 0.
- */
-static inline int v4l2_fh_is_singular_file(struct file *filp)
-{
- return v4l2_fh_is_singular(filp->private_data);
-}
-
-#endif /* V4L2_EVENT_H */
diff --git a/ANDROID_3.4.5/include/media/v4l2-int-device.h b/ANDROID_3.4.5/include/media/v4l2-int-device.h
deleted file mode 100644
index e6aa2318..00000000
--- a/ANDROID_3.4.5/include/media/v4l2-int-device.h
+++ /dev/null
@@ -1,308 +0,0 @@
-/*
- * include/media/v4l2-int-device.h
- *
- * V4L2 internal ioctl interface.
- *
- * Copyright (C) 2007 Nokia Corporation.
- *
- * Contact: Sakari Ailus <sakari.ailus@nokia.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.
- *
- * 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 V4L2_INT_DEVICE_H
-#define V4L2_INT_DEVICE_H
-
-#include <media/v4l2-common.h>
-
-#define V4L2NAMESIZE 32
-
-/*
- *
- * The internal V4L2 device interface core.
- *
- */
-
-enum v4l2_int_type {
- v4l2_int_type_master = 1,
- v4l2_int_type_slave
-};
-
-struct module;
-
-struct v4l2_int_device;
-
-struct v4l2_int_master {
- int (*attach)(struct v4l2_int_device *slave);
- void (*detach)(struct v4l2_int_device *slave);
-};
-
-typedef int (v4l2_int_ioctl_func)(struct v4l2_int_device *);
-typedef int (v4l2_int_ioctl_func_0)(struct v4l2_int_device *);
-typedef int (v4l2_int_ioctl_func_1)(struct v4l2_int_device *, void *);
-
-struct v4l2_int_ioctl_desc {
- int num;
- v4l2_int_ioctl_func *func;
-};
-
-struct v4l2_int_slave {
- /* Don't touch master. */
- struct v4l2_int_device *master;
-
- char attach_to[V4L2NAMESIZE];
-
- int num_ioctls;
- struct v4l2_int_ioctl_desc *ioctls;
-};
-
-struct v4l2_int_device {
- /* Don't touch head. */
- struct list_head head;
-
- struct module *module;
-
- char name[V4L2NAMESIZE];
-
- enum v4l2_int_type type;
- union {
- struct v4l2_int_master *master;
- struct v4l2_int_slave *slave;
- } u;
-
- void *priv;
-};
-
-void v4l2_int_device_try_attach_all(void);
-
-int v4l2_int_device_register(struct v4l2_int_device *d);
-void v4l2_int_device_unregister(struct v4l2_int_device *d);
-
-int v4l2_int_ioctl_0(struct v4l2_int_device *d, int cmd);
-int v4l2_int_ioctl_1(struct v4l2_int_device *d, int cmd, void *arg);
-
-/*
- *
- * Types and definitions for IOCTL commands.
- *
- */
-
-enum v4l2_power {
- V4L2_POWER_OFF = 0,
- V4L2_POWER_ON,
- V4L2_POWER_STANDBY,
-};
-
-/* Slave interface type. */
-enum v4l2_if_type {
- /*
- * Parallel 8-, 10- or 12-bit interface, used by for example
- * on certain image sensors.
- */
- V4L2_IF_TYPE_BT656,
-};
-
-enum v4l2_if_type_bt656_mode {
- /*
- * Modes without Bt synchronisation codes. Separate
- * synchronisation signal lines are used.
- */
- V4L2_IF_TYPE_BT656_MODE_NOBT_8BIT,
- V4L2_IF_TYPE_BT656_MODE_NOBT_10BIT,
- V4L2_IF_TYPE_BT656_MODE_NOBT_12BIT,
- /*
- * Use Bt synchronisation codes. The vertical and horizontal
- * synchronisation is done based on synchronisation codes.
- */
- V4L2_IF_TYPE_BT656_MODE_BT_8BIT,
- V4L2_IF_TYPE_BT656_MODE_BT_10BIT,
-};
-
-struct v4l2_if_type_bt656 {
- /*
- * 0: Frame begins when vsync is high.
- * 1: Frame begins when vsync changes from low to high.
- */
- unsigned frame_start_on_rising_vs:1;
- /* Use Bt synchronisation codes for sync correction. */
- unsigned bt_sync_correct:1;
- /* Swap every two adjacent image data elements. */
- unsigned swap:1;
- /* Inverted latch clock polarity from slave. */
- unsigned latch_clk_inv:1;
- /* Hs polarity. 0 is active high, 1 active low. */
- unsigned nobt_hs_inv:1;
- /* Vs polarity. 0 is active high, 1 active low. */
- unsigned nobt_vs_inv:1;
- enum v4l2_if_type_bt656_mode mode;
- /* Minimum accepted bus clock for slave (in Hz). */
- u32 clock_min;
- /* Maximum accepted bus clock for slave. */
- u32 clock_max;
- /*
- * Current wish of the slave. May only change in response to
- * ioctls that affect image capture.
- */
- u32 clock_curr;
-};
-
-struct v4l2_ifparm {
- enum v4l2_if_type if_type;
- union {
- struct v4l2_if_type_bt656 bt656;
- } u;
-};
-
-/* IOCTL command numbers. */
-enum v4l2_int_ioctl_num {
- /*
- *
- * "Proper" V4L ioctls, as in struct video_device.
- *
- */
- vidioc_int_enum_fmt_cap_num = 1,
- vidioc_int_g_fmt_cap_num,
- vidioc_int_s_fmt_cap_num,
- vidioc_int_try_fmt_cap_num,
- vidioc_int_queryctrl_num,
- vidioc_int_g_ctrl_num,
- vidioc_int_s_ctrl_num,
- vidioc_int_cropcap_num,
- vidioc_int_g_crop_num,
- vidioc_int_s_crop_num,
- vidioc_int_g_parm_num,
- vidioc_int_s_parm_num,
- vidioc_int_querystd_num,
- vidioc_int_s_std_num,
- vidioc_int_s_video_routing_num,
-
- /*
- *
- * Strictly internal ioctls.
- *
- */
- /* Initialise the device when slave attaches to the master. */
- vidioc_int_dev_init_num = 1000,
- /* Delinitialise the device at slave detach. */
- vidioc_int_dev_exit_num,
- /* Set device power state. */
- vidioc_int_s_power_num,
- /*
- * Get slave private data, e.g. platform-specific slave
- * configuration used by the master.
- */
- vidioc_int_g_priv_num,
- /* Get slave interface parameters. */
- vidioc_int_g_ifparm_num,
- /* Does the slave need to be reset after VIDIOC_DQBUF? */
- vidioc_int_g_needs_reset_num,
- vidioc_int_enum_framesizes_num,
- vidioc_int_enum_frameintervals_num,
-
- /*
- *
- * VIDIOC_INT_* ioctls.
- *
- */
- /* VIDIOC_INT_RESET */
- vidioc_int_reset_num,
- /* VIDIOC_INT_INIT */
- vidioc_int_init_num,
- /* VIDIOC_DBG_G_CHIP_IDENT */
- vidioc_int_g_chip_ident_num,
-
- /*
- *
- * Start of private ioctls.
- *
- */
- vidioc_int_priv_start_num = 2000,
-};
-
-/*
- *
- * IOCTL wrapper functions for better type checking.
- *
- */
-
-#define V4L2_INT_WRAPPER_0(name) \
- static inline int vidioc_int_##name(struct v4l2_int_device *d) \
- { \
- return v4l2_int_ioctl_0(d, vidioc_int_##name##_num); \
- } \
- \
- static inline struct v4l2_int_ioctl_desc \
- vidioc_int_##name##_cb(int (*func) \
- (struct v4l2_int_device *)) \
- { \
- struct v4l2_int_ioctl_desc desc; \
- \
- desc.num = vidioc_int_##name##_num; \
- desc.func = (v4l2_int_ioctl_func *)func; \
- \
- return desc; \
- }
-
-#define V4L2_INT_WRAPPER_1(name, arg_type, asterisk) \
- static inline int vidioc_int_##name(struct v4l2_int_device *d, \
- arg_type asterisk arg) \
- { \
- return v4l2_int_ioctl_1(d, vidioc_int_##name##_num, \
- (void *)(unsigned long)arg); \
- } \
- \
- static inline struct v4l2_int_ioctl_desc \
- vidioc_int_##name##_cb(int (*func) \
- (struct v4l2_int_device *, \
- arg_type asterisk)) \
- { \
- struct v4l2_int_ioctl_desc desc; \
- \
- desc.num = vidioc_int_##name##_num; \
- desc.func = (v4l2_int_ioctl_func *)func; \
- \
- return desc; \
- }
-
-V4L2_INT_WRAPPER_1(enum_fmt_cap, struct v4l2_fmtdesc, *);
-V4L2_INT_WRAPPER_1(g_fmt_cap, struct v4l2_format, *);
-V4L2_INT_WRAPPER_1(s_fmt_cap, struct v4l2_format, *);
-V4L2_INT_WRAPPER_1(try_fmt_cap, struct v4l2_format, *);
-V4L2_INT_WRAPPER_1(queryctrl, struct v4l2_queryctrl, *);
-V4L2_INT_WRAPPER_1(g_ctrl, struct v4l2_control, *);
-V4L2_INT_WRAPPER_1(s_ctrl, struct v4l2_control, *);
-V4L2_INT_WRAPPER_1(cropcap, struct v4l2_cropcap, *);
-V4L2_INT_WRAPPER_1(g_crop, struct v4l2_crop, *);
-V4L2_INT_WRAPPER_1(s_crop, struct v4l2_crop, *);
-V4L2_INT_WRAPPER_1(g_parm, struct v4l2_streamparm, *);
-V4L2_INT_WRAPPER_1(s_parm, struct v4l2_streamparm, *);
-V4L2_INT_WRAPPER_1(querystd, v4l2_std_id, *);
-V4L2_INT_WRAPPER_1(s_std, v4l2_std_id, *);
-V4L2_INT_WRAPPER_1(s_video_routing, struct v4l2_routing, *);
-
-V4L2_INT_WRAPPER_0(dev_init);
-V4L2_INT_WRAPPER_0(dev_exit);
-V4L2_INT_WRAPPER_1(s_power, enum v4l2_power, );
-V4L2_INT_WRAPPER_1(g_priv, void, *);
-V4L2_INT_WRAPPER_1(g_ifparm, struct v4l2_ifparm, *);
-V4L2_INT_WRAPPER_1(g_needs_reset, void, *);
-V4L2_INT_WRAPPER_1(enum_framesizes, struct v4l2_frmsizeenum, *);
-V4L2_INT_WRAPPER_1(enum_frameintervals, struct v4l2_frmivalenum, *);
-
-V4L2_INT_WRAPPER_0(reset);
-V4L2_INT_WRAPPER_0(init);
-V4L2_INT_WRAPPER_1(g_chip_ident, int, *);
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/v4l2-ioctl.h b/ANDROID_3.4.5/include/media/v4l2-ioctl.h
deleted file mode 100644
index 3cb939cd..00000000
--- a/ANDROID_3.4.5/include/media/v4l2-ioctl.h
+++ /dev/null
@@ -1,336 +0,0 @@
-/*
- *
- * V 4 L 2 D R I V E R H E L P E R A P I
- *
- * Moved from videodev2.h
- *
- * Some commonly needed functions for drivers (v4l2-common.o module)
- */
-#ifndef _V4L2_IOCTL_H
-#define _V4L2_IOCTL_H
-
-#include <linux/poll.h>
-#include <linux/fs.h>
-#include <linux/mutex.h>
-#include <linux/compiler.h> /* need __user */
-#include <linux/videodev2.h>
-
-struct v4l2_fh;
-
-struct v4l2_ioctl_ops {
- /* ioctl callbacks */
-
- /* VIDIOC_QUERYCAP handler */
- int (*vidioc_querycap)(struct file *file, void *fh, struct v4l2_capability *cap);
-
- /* Priority handling */
- int (*vidioc_g_priority) (struct file *file, void *fh,
- enum v4l2_priority *p);
- int (*vidioc_s_priority) (struct file *file, void *fh,
- enum v4l2_priority p);
-
- /* VIDIOC_ENUM_FMT handlers */
- int (*vidioc_enum_fmt_vid_cap) (struct file *file, void *fh,
- struct v4l2_fmtdesc *f);
- int (*vidioc_enum_fmt_vid_overlay) (struct file *file, void *fh,
- struct v4l2_fmtdesc *f);
- int (*vidioc_enum_fmt_vid_out) (struct file *file, void *fh,
- struct v4l2_fmtdesc *f);
- int (*vidioc_enum_fmt_vid_cap_mplane)(struct file *file, void *fh,
- struct v4l2_fmtdesc *f);
- int (*vidioc_enum_fmt_vid_out_mplane)(struct file *file, void *fh,
- struct v4l2_fmtdesc *f);
- int (*vidioc_enum_fmt_type_private)(struct file *file, void *fh,
- struct v4l2_fmtdesc *f);
-
- /* VIDIOC_G_FMT handlers */
- int (*vidioc_g_fmt_vid_cap) (struct file *file, void *fh,
- struct v4l2_format *f);
- int (*vidioc_g_fmt_vid_overlay)(struct file *file, void *fh,
- struct v4l2_format *f);
- int (*vidioc_g_fmt_vid_out) (struct file *file, void *fh,
- struct v4l2_format *f);
- int (*vidioc_g_fmt_vid_out_overlay)(struct file *file, void *fh,
- struct v4l2_format *f);
- int (*vidioc_g_fmt_vbi_cap) (struct file *file, void *fh,
- struct v4l2_format *f);
- int (*vidioc_g_fmt_vbi_out) (struct file *file, void *fh,
- struct v4l2_format *f);
- int (*vidioc_g_fmt_sliced_vbi_cap)(struct file *file, void *fh,
- struct v4l2_format *f);
- int (*vidioc_g_fmt_sliced_vbi_out)(struct file *file, void *fh,
- struct v4l2_format *f);
- int (*vidioc_g_fmt_vid_cap_mplane)(struct file *file, void *fh,
- struct v4l2_format *f);
- int (*vidioc_g_fmt_vid_out_mplane)(struct file *file, void *fh,
- struct v4l2_format *f);
- int (*vidioc_g_fmt_type_private)(struct file *file, void *fh,
- struct v4l2_format *f);
-
- /* VIDIOC_S_FMT handlers */
- int (*vidioc_s_fmt_vid_cap) (struct file *file, void *fh,
- struct v4l2_format *f);
- int (*vidioc_s_fmt_vid_overlay)(struct file *file, void *fh,
- struct v4l2_format *f);
- int (*vidioc_s_fmt_vid_out) (struct file *file, void *fh,
- struct v4l2_format *f);
- int (*vidioc_s_fmt_vid_out_overlay)(struct file *file, void *fh,
- struct v4l2_format *f);
- int (*vidioc_s_fmt_vbi_cap) (struct file *file, void *fh,
- struct v4l2_format *f);
- int (*vidioc_s_fmt_vbi_out) (struct file *file, void *fh,
- struct v4l2_format *f);
- int (*vidioc_s_fmt_sliced_vbi_cap)(struct file *file, void *fh,
- struct v4l2_format *f);
- int (*vidioc_s_fmt_sliced_vbi_out)(struct file *file, void *fh,
- struct v4l2_format *f);
- int (*vidioc_s_fmt_vid_cap_mplane)(struct file *file, void *fh,
- struct v4l2_format *f);
- int (*vidioc_s_fmt_vid_out_mplane)(struct file *file, void *fh,
- struct v4l2_format *f);
- int (*vidioc_s_fmt_type_private)(struct file *file, void *fh,
- struct v4l2_format *f);
-
- /* VIDIOC_TRY_FMT handlers */
- int (*vidioc_try_fmt_vid_cap) (struct file *file, void *fh,
- struct v4l2_format *f);
- int (*vidioc_try_fmt_vid_overlay)(struct file *file, void *fh,
- struct v4l2_format *f);
- int (*vidioc_try_fmt_vid_out) (struct file *file, void *fh,
- struct v4l2_format *f);
- int (*vidioc_try_fmt_vid_out_overlay)(struct file *file, void *fh,
- struct v4l2_format *f);
- int (*vidioc_try_fmt_vbi_cap) (struct file *file, void *fh,
- struct v4l2_format *f);
- int (*vidioc_try_fmt_vbi_out) (struct file *file, void *fh,
- struct v4l2_format *f);
- int (*vidioc_try_fmt_sliced_vbi_cap)(struct file *file, void *fh,
- struct v4l2_format *f);
- int (*vidioc_try_fmt_sliced_vbi_out)(struct file *file, void *fh,
- struct v4l2_format *f);
- int (*vidioc_try_fmt_vid_cap_mplane)(struct file *file, void *fh,
- struct v4l2_format *f);
- int (*vidioc_try_fmt_vid_out_mplane)(struct file *file, void *fh,
- struct v4l2_format *f);
- int (*vidioc_try_fmt_type_private)(struct file *file, void *fh,
- struct v4l2_format *f);
-
- /* Buffer handlers */
- int (*vidioc_reqbufs) (struct file *file, void *fh, struct v4l2_requestbuffers *b);
- int (*vidioc_querybuf)(struct file *file, void *fh, struct v4l2_buffer *b);
- int (*vidioc_qbuf) (struct file *file, void *fh, struct v4l2_buffer *b);
- int (*vidioc_dqbuf) (struct file *file, void *fh, struct v4l2_buffer *b);
-
- int (*vidioc_create_bufs)(struct file *file, void *fh, struct v4l2_create_buffers *b);
- int (*vidioc_prepare_buf)(struct file *file, void *fh, struct v4l2_buffer *b);
-
- int (*vidioc_overlay) (struct file *file, void *fh, unsigned int i);
- int (*vidioc_g_fbuf) (struct file *file, void *fh,
- struct v4l2_framebuffer *a);
- int (*vidioc_s_fbuf) (struct file *file, void *fh,
- struct v4l2_framebuffer *a);
-
- /* Stream on/off */
- int (*vidioc_streamon) (struct file *file, void *fh, enum v4l2_buf_type i);
- int (*vidioc_streamoff)(struct file *file, void *fh, enum v4l2_buf_type i);
-
- /* Standard handling
- ENUMSTD is handled by videodev.c
- */
- int (*vidioc_g_std) (struct file *file, void *fh, v4l2_std_id *norm);
- int (*vidioc_s_std) (struct file *file, void *fh, v4l2_std_id *norm);
- int (*vidioc_querystd) (struct file *file, void *fh, v4l2_std_id *a);
-
- /* Input handling */
- int (*vidioc_enum_input)(struct file *file, void *fh,
- struct v4l2_input *inp);
- int (*vidioc_g_input) (struct file *file, void *fh, unsigned int *i);
- int (*vidioc_s_input) (struct file *file, void *fh, unsigned int i);
-
- /* Output handling */
- int (*vidioc_enum_output) (struct file *file, void *fh,
- struct v4l2_output *a);
- int (*vidioc_g_output) (struct file *file, void *fh, unsigned int *i);
- int (*vidioc_s_output) (struct file *file, void *fh, unsigned int i);
-
- /* Control handling */
- int (*vidioc_queryctrl) (struct file *file, void *fh,
- struct v4l2_queryctrl *a);
- int (*vidioc_g_ctrl) (struct file *file, void *fh,
- struct v4l2_control *a);
- int (*vidioc_s_ctrl) (struct file *file, void *fh,
- struct v4l2_control *a);
- int (*vidioc_g_ext_ctrls) (struct file *file, void *fh,
- struct v4l2_ext_controls *a);
- int (*vidioc_s_ext_ctrls) (struct file *file, void *fh,
- struct v4l2_ext_controls *a);
- int (*vidioc_try_ext_ctrls) (struct file *file, void *fh,
- struct v4l2_ext_controls *a);
- int (*vidioc_querymenu) (struct file *file, void *fh,
- struct v4l2_querymenu *a);
-
- /* Audio ioctls */
- int (*vidioc_enumaudio) (struct file *file, void *fh,
- struct v4l2_audio *a);
- int (*vidioc_g_audio) (struct file *file, void *fh,
- struct v4l2_audio *a);
- int (*vidioc_s_audio) (struct file *file, void *fh,
- struct v4l2_audio *a);
-
- /* Audio out ioctls */
- int (*vidioc_enumaudout) (struct file *file, void *fh,
- struct v4l2_audioout *a);
- int (*vidioc_g_audout) (struct file *file, void *fh,
- struct v4l2_audioout *a);
- int (*vidioc_s_audout) (struct file *file, void *fh,
- struct v4l2_audioout *a);
- int (*vidioc_g_modulator) (struct file *file, void *fh,
- struct v4l2_modulator *a);
- int (*vidioc_s_modulator) (struct file *file, void *fh,
- struct v4l2_modulator *a);
- /* Crop ioctls */
- int (*vidioc_cropcap) (struct file *file, void *fh,
- struct v4l2_cropcap *a);
- int (*vidioc_g_crop) (struct file *file, void *fh,
- struct v4l2_crop *a);
- int (*vidioc_s_crop) (struct file *file, void *fh,
- struct v4l2_crop *a);
- int (*vidioc_g_selection) (struct file *file, void *fh,
- struct v4l2_selection *s);
- int (*vidioc_s_selection) (struct file *file, void *fh,
- struct v4l2_selection *s);
- /* Compression ioctls */
- int (*vidioc_g_jpegcomp) (struct file *file, void *fh,
- struct v4l2_jpegcompression *a);
- int (*vidioc_s_jpegcomp) (struct file *file, void *fh,
- struct v4l2_jpegcompression *a);
- int (*vidioc_g_enc_index) (struct file *file, void *fh,
- struct v4l2_enc_idx *a);
- int (*vidioc_encoder_cmd) (struct file *file, void *fh,
- struct v4l2_encoder_cmd *a);
- int (*vidioc_try_encoder_cmd) (struct file *file, void *fh,
- struct v4l2_encoder_cmd *a);
- int (*vidioc_decoder_cmd) (struct file *file, void *fh,
- struct v4l2_decoder_cmd *a);
- int (*vidioc_try_decoder_cmd) (struct file *file, void *fh,
- struct v4l2_decoder_cmd *a);
-
- /* Stream type-dependent parameter ioctls */
- int (*vidioc_g_parm) (struct file *file, void *fh,
- struct v4l2_streamparm *a);
- int (*vidioc_s_parm) (struct file *file, void *fh,
- struct v4l2_streamparm *a);
-
- /* Tuner ioctls */
- int (*vidioc_g_tuner) (struct file *file, void *fh,
- struct v4l2_tuner *a);
- int (*vidioc_s_tuner) (struct file *file, void *fh,
- struct v4l2_tuner *a);
- int (*vidioc_g_frequency) (struct file *file, void *fh,
- struct v4l2_frequency *a);
- int (*vidioc_s_frequency) (struct file *file, void *fh,
- struct v4l2_frequency *a);
-
- /* Sliced VBI cap */
- int (*vidioc_g_sliced_vbi_cap) (struct file *file, void *fh,
- struct v4l2_sliced_vbi_cap *a);
-
- /* Log status ioctl */
- int (*vidioc_log_status) (struct file *file, void *fh);
-
- int (*vidioc_s_hw_freq_seek) (struct file *file, void *fh,
- struct v4l2_hw_freq_seek *a);
-
- /* Debugging ioctls */
-#ifdef CONFIG_VIDEO_ADV_DEBUG
- int (*vidioc_g_register) (struct file *file, void *fh,
- struct v4l2_dbg_register *reg);
- int (*vidioc_s_register) (struct file *file, void *fh,
- struct v4l2_dbg_register *reg);
-#endif
- int (*vidioc_g_chip_ident) (struct file *file, void *fh,
- struct v4l2_dbg_chip_ident *chip);
-
- int (*vidioc_enum_framesizes) (struct file *file, void *fh,
- struct v4l2_frmsizeenum *fsize);
-
- int (*vidioc_enum_frameintervals) (struct file *file, void *fh,
- struct v4l2_frmivalenum *fival);
-
- /* DV Timings IOCTLs */
- int (*vidioc_enum_dv_presets) (struct file *file, void *fh,
- struct v4l2_dv_enum_preset *preset);
-
- int (*vidioc_s_dv_preset) (struct file *file, void *fh,
- struct v4l2_dv_preset *preset);
- int (*vidioc_g_dv_preset) (struct file *file, void *fh,
- struct v4l2_dv_preset *preset);
- int (*vidioc_query_dv_preset) (struct file *file, void *fh,
- struct v4l2_dv_preset *qpreset);
- int (*vidioc_s_dv_timings) (struct file *file, void *fh,
- struct v4l2_dv_timings *timings);
- int (*vidioc_g_dv_timings) (struct file *file, void *fh,
- struct v4l2_dv_timings *timings);
-
- int (*vidioc_subscribe_event) (struct v4l2_fh *fh,
- struct v4l2_event_subscription *sub);
- int (*vidioc_unsubscribe_event)(struct v4l2_fh *fh,
- struct v4l2_event_subscription *sub);
-
- /* For other private ioctls */
- long (*vidioc_default) (struct file *file, void *fh,
- bool valid_prio, int cmd, void *arg);
-};
-
-
-/* v4l debugging and diagnostics */
-
-/* Debug bitmask flags to be used on V4L2 */
-#define V4L2_DEBUG_IOCTL 0x01
-#define V4L2_DEBUG_IOCTL_ARG 0x02
-
-/* Use this macro for non-I2C drivers. Pass the driver name as the first arg. */
-#define v4l_print_ioctl(name, cmd) \
- do { \
- printk(KERN_DEBUG "%s: ", name); \
- v4l_printk_ioctl(cmd); \
- } while (0)
-
-/* Use this macro in I2C drivers where 'client' is the struct i2c_client
- pointer */
-#define v4l_i2c_print_ioctl(client, cmd) \
- do { \
- v4l_client_printk(KERN_DEBUG, client, ""); \
- v4l_printk_ioctl(cmd); \
- } while (0)
-
-/* Video standard functions */
-extern const char *v4l2_norm_to_name(v4l2_std_id id);
-extern void v4l2_video_std_frame_period(int id, struct v4l2_fract *frameperiod);
-extern int v4l2_video_std_construct(struct v4l2_standard *vs,
- int id, const char *name);
-/* Prints the ioctl in a human-readable format */
-extern void v4l_printk_ioctl(unsigned int cmd);
-
-/* names for fancy debug output */
-extern const char *v4l2_field_names[];
-extern const char *v4l2_type_names[];
-
-#ifdef CONFIG_COMPAT
-/* 32 Bits compatibility layer for 64 bits processors */
-extern long v4l2_compat_ioctl32(struct file *file, unsigned int cmd,
- unsigned long arg);
-#endif
-
-typedef long (*v4l2_kioctl)(struct file *file,
- unsigned int cmd, void *arg);
-
-/* Include support for obsoleted stuff */
-extern long video_usercopy(struct file *file, unsigned int cmd,
- unsigned long arg, v4l2_kioctl func);
-
-/* Standard handlers for V4L ioctl's */
-extern long video_ioctl2(struct file *file,
- unsigned int cmd, unsigned long arg);
-
-#endif /* _V4L2_IOCTL_H */
diff --git a/ANDROID_3.4.5/include/media/v4l2-mediabus.h b/ANDROID_3.4.5/include/media/v4l2-mediabus.h
deleted file mode 100644
index 83ae07e5..00000000
--- a/ANDROID_3.4.5/include/media/v4l2-mediabus.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Media Bus API header
- *
- * Copyright (C) 2009, Guennadi Liakhovetski <g.liakhovetski@gmx.de>
- *
- * 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.
- */
-
-#ifndef V4L2_MEDIABUS_H
-#define V4L2_MEDIABUS_H
-
-#include <linux/v4l2-mediabus.h>
-
-/* Parallel flags */
-/*
- * Can the client run in master or in slave mode. By "Master mode" an operation
- * mode is meant, when the client (e.g., a camera sensor) is producing
- * horizontal and vertical synchronisation. In "Slave mode" the host is
- * providing these signals to the slave.
- */
-#define V4L2_MBUS_MASTER (1 << 0)
-#define V4L2_MBUS_SLAVE (1 << 1)
-/*
- * Signal polarity flags
- * Note: in BT.656 mode HSYNC, FIELD, and VSYNC are unused
- * V4L2_MBUS_[HV]SYNC* flags should be also used for specifying
- * configuration of hardware that uses [HV]REF signals
- */
-#define V4L2_MBUS_HSYNC_ACTIVE_HIGH (1 << 2)
-#define V4L2_MBUS_HSYNC_ACTIVE_LOW (1 << 3)
-#define V4L2_MBUS_VSYNC_ACTIVE_HIGH (1 << 4)
-#define V4L2_MBUS_VSYNC_ACTIVE_LOW (1 << 5)
-#define V4L2_MBUS_PCLK_SAMPLE_RISING (1 << 6)
-#define V4L2_MBUS_PCLK_SAMPLE_FALLING (1 << 7)
-#define V4L2_MBUS_DATA_ACTIVE_HIGH (1 << 8)
-#define V4L2_MBUS_DATA_ACTIVE_LOW (1 << 9)
-/* FIELD = 0/1 - Field1 (odd)/Field2 (even) */
-#define V4L2_MBUS_FIELD_EVEN_HIGH (1 << 10)
-/* FIELD = 1/0 - Field1 (odd)/Field2 (even) */
-#define V4L2_MBUS_FIELD_EVEN_LOW (1 << 11)
-
-/* Serial flags */
-/* How many lanes the client can use */
-#define V4L2_MBUS_CSI2_1_LANE (1 << 0)
-#define V4L2_MBUS_CSI2_2_LANE (1 << 1)
-#define V4L2_MBUS_CSI2_3_LANE (1 << 2)
-#define V4L2_MBUS_CSI2_4_LANE (1 << 3)
-/* On which channels it can send video data */
-#define V4L2_MBUS_CSI2_CHANNEL_0 (1 << 4)
-#define V4L2_MBUS_CSI2_CHANNEL_1 (1 << 5)
-#define V4L2_MBUS_CSI2_CHANNEL_2 (1 << 6)
-#define V4L2_MBUS_CSI2_CHANNEL_3 (1 << 7)
-/* Does it support only continuous or also non-continuous clock mode */
-#define V4L2_MBUS_CSI2_CONTINUOUS_CLOCK (1 << 8)
-#define V4L2_MBUS_CSI2_NONCONTINUOUS_CLOCK (1 << 9)
-
-#define V4L2_MBUS_CSI2_LANES (V4L2_MBUS_CSI2_1_LANE | V4L2_MBUS_CSI2_2_LANE | \
- V4L2_MBUS_CSI2_3_LANE | V4L2_MBUS_CSI2_4_LANE)
-#define V4L2_MBUS_CSI2_CHANNELS (V4L2_MBUS_CSI2_CHANNEL_0 | V4L2_MBUS_CSI2_CHANNEL_1 | \
- V4L2_MBUS_CSI2_CHANNEL_2 | V4L2_MBUS_CSI2_CHANNEL_3)
-
-/**
- * v4l2_mbus_type - media bus type
- * @V4L2_MBUS_PARALLEL: parallel interface with hsync and vsync
- * @V4L2_MBUS_BT656: parallel interface with embedded synchronisation, can
- * also be used for BT.1120
- * @V4L2_MBUS_CSI2: MIPI CSI-2 serial interface
- */
-enum v4l2_mbus_type {
- V4L2_MBUS_PARALLEL,
- V4L2_MBUS_BT656,
- V4L2_MBUS_CSI2,
-};
-
-/**
- * v4l2_mbus_config - media bus configuration
- * @type: in: interface type
- * @flags: in / out: configuration flags, depending on @type
- */
-struct v4l2_mbus_config {
- enum v4l2_mbus_type type;
- unsigned int flags;
-};
-
-static inline void v4l2_fill_pix_format(struct v4l2_pix_format *pix_fmt,
- const struct v4l2_mbus_framefmt *mbus_fmt)
-{
- pix_fmt->width = mbus_fmt->width;
- pix_fmt->height = mbus_fmt->height;
- pix_fmt->field = mbus_fmt->field;
- pix_fmt->colorspace = mbus_fmt->colorspace;
-}
-
-static inline void v4l2_fill_mbus_format(struct v4l2_mbus_framefmt *mbus_fmt,
- const struct v4l2_pix_format *pix_fmt,
- enum v4l2_mbus_pixelcode code)
-{
- mbus_fmt->width = pix_fmt->width;
- mbus_fmt->height = pix_fmt->height;
- mbus_fmt->field = pix_fmt->field;
- mbus_fmt->colorspace = pix_fmt->colorspace;
- mbus_fmt->code = code;
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/v4l2-mem2mem.h b/ANDROID_3.4.5/include/media/v4l2-mem2mem.h
deleted file mode 100644
index 16ac4733..00000000
--- a/ANDROID_3.4.5/include/media/v4l2-mem2mem.h
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * Memory-to-memory device framework for Video for Linux 2.
- *
- * Helper functions for devices that use memory buffers for both source
- * and destination.
- *
- * Copyright (c) 2009 Samsung Electronics Co., Ltd.
- * Pawel Osciak, <pawel@osciak.com>
- * Marek Szyprowski, <m.szyprowski@samsung.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 _MEDIA_V4L2_MEM2MEM_H
-#define _MEDIA_V4L2_MEM2MEM_H
-
-#include <media/videobuf2-core.h>
-
-/**
- * struct v4l2_m2m_ops - mem-to-mem device driver callbacks
- * @device_run: required. Begin the actual job (transaction) inside this
- * callback.
- * The job does NOT have to end before this callback returns
- * (and it will be the usual case). When the job finishes,
- * v4l2_m2m_job_finish() has to be called.
- * @job_ready: optional. Should return 0 if the driver does not have a job
- * fully prepared to run yet (i.e. it will not be able to finish a
- * transaction without sleeping). If not provided, it will be
- * assumed that one source and one destination buffer are all
- * that is required for the driver to perform one full transaction.
- * This method may not sleep.
- * @job_abort: required. Informs the driver that it has to abort the currently
- * running transaction as soon as possible (i.e. as soon as it can
- * stop the device safely; e.g. in the next interrupt handler),
- * even if the transaction would not have been finished by then.
- * After the driver performs the necessary steps, it has to call
- * v4l2_m2m_job_finish() (as if the transaction ended normally).
- * This function does not have to (and will usually not) wait
- * until the device enters a state when it can be stopped.
- */
-struct v4l2_m2m_ops {
- void (*device_run)(void *priv);
- int (*job_ready)(void *priv);
- void (*job_abort)(void *priv);
- void (*lock)(void *priv);
- void (*unlock)(void *priv);
-};
-
-struct v4l2_m2m_dev;
-
-struct v4l2_m2m_queue_ctx {
-/* private: internal use only */
- struct vb2_queue q;
-
- /* Queue for buffers ready to be processed as soon as this
- * instance receives access to the device */
- struct list_head rdy_queue;
- spinlock_t rdy_spinlock;
- u8 num_rdy;
-};
-
-struct v4l2_m2m_ctx {
-/* private: internal use only */
- struct v4l2_m2m_dev *m2m_dev;
-
- /* Capture (output to memory) queue context */
- struct v4l2_m2m_queue_ctx cap_q_ctx;
-
- /* Output (input from memory) queue context */
- struct v4l2_m2m_queue_ctx out_q_ctx;
-
- /* For device job queue */
- struct list_head queue;
- unsigned long job_flags;
- wait_queue_head_t finished;
-
- /* Instance private data */
- void *priv;
-};
-
-struct v4l2_m2m_buffer {
- struct vb2_buffer vb;
- struct list_head list;
-};
-
-void *v4l2_m2m_get_curr_priv(struct v4l2_m2m_dev *m2m_dev);
-
-struct vb2_queue *v4l2_m2m_get_vq(struct v4l2_m2m_ctx *m2m_ctx,
- enum v4l2_buf_type type);
-
-void v4l2_m2m_job_finish(struct v4l2_m2m_dev *m2m_dev,
- struct v4l2_m2m_ctx *m2m_ctx);
-
-static inline void
-v4l2_m2m_buf_done(struct vb2_buffer *buf, enum vb2_buffer_state state)
-{
- vb2_buffer_done(buf, state);
-}
-
-int v4l2_m2m_reqbufs(struct file *file, struct v4l2_m2m_ctx *m2m_ctx,
- struct v4l2_requestbuffers *reqbufs);
-
-int v4l2_m2m_querybuf(struct file *file, struct v4l2_m2m_ctx *m2m_ctx,
- struct v4l2_buffer *buf);
-
-int v4l2_m2m_qbuf(struct file *file, struct v4l2_m2m_ctx *m2m_ctx,
- struct v4l2_buffer *buf);
-int v4l2_m2m_dqbuf(struct file *file, struct v4l2_m2m_ctx *m2m_ctx,
- struct v4l2_buffer *buf);
-
-int v4l2_m2m_streamon(struct file *file, struct v4l2_m2m_ctx *m2m_ctx,
- enum v4l2_buf_type type);
-int v4l2_m2m_streamoff(struct file *file, struct v4l2_m2m_ctx *m2m_ctx,
- enum v4l2_buf_type type);
-
-unsigned int v4l2_m2m_poll(struct file *file, struct v4l2_m2m_ctx *m2m_ctx,
- struct poll_table_struct *wait);
-
-int v4l2_m2m_mmap(struct file *file, struct v4l2_m2m_ctx *m2m_ctx,
- struct vm_area_struct *vma);
-
-struct v4l2_m2m_dev *v4l2_m2m_init(struct v4l2_m2m_ops *m2m_ops);
-void v4l2_m2m_release(struct v4l2_m2m_dev *m2m_dev);
-
-struct v4l2_m2m_ctx *v4l2_m2m_ctx_init(struct v4l2_m2m_dev *m2m_dev,
- void *drv_priv,
- int (*queue_init)(void *priv, struct vb2_queue *src_vq, struct vb2_queue *dst_vq));
-
-void v4l2_m2m_ctx_release(struct v4l2_m2m_ctx *m2m_ctx);
-
-void v4l2_m2m_buf_queue(struct v4l2_m2m_ctx *m2m_ctx, struct vb2_buffer *vb);
-
-/**
- * v4l2_m2m_num_src_bufs_ready() - return the number of source buffers ready for
- * use
- */
-static inline
-unsigned int v4l2_m2m_num_src_bufs_ready(struct v4l2_m2m_ctx *m2m_ctx)
-{
- return m2m_ctx->cap_q_ctx.num_rdy;
-}
-
-/**
- * v4l2_m2m_num_src_bufs_ready() - return the number of destination buffers
- * ready for use
- */
-static inline
-unsigned int v4l2_m2m_num_dst_bufs_ready(struct v4l2_m2m_ctx *m2m_ctx)
-{
- return m2m_ctx->out_q_ctx.num_rdy;
-}
-
-void *v4l2_m2m_next_buf(struct v4l2_m2m_queue_ctx *q_ctx);
-
-/**
- * v4l2_m2m_next_src_buf() - return next source buffer from the list of ready
- * buffers
- */
-static inline void *v4l2_m2m_next_src_buf(struct v4l2_m2m_ctx *m2m_ctx)
-{
- return v4l2_m2m_next_buf(&m2m_ctx->out_q_ctx);
-}
-
-/**
- * v4l2_m2m_next_dst_buf() - return next destination buffer from the list of
- * ready buffers
- */
-static inline void *v4l2_m2m_next_dst_buf(struct v4l2_m2m_ctx *m2m_ctx)
-{
- return v4l2_m2m_next_buf(&m2m_ctx->cap_q_ctx);
-}
-
-/**
- * v4l2_m2m_get_src_vq() - return vb2_queue for source buffers
- */
-static inline
-struct vb2_queue *v4l2_m2m_get_src_vq(struct v4l2_m2m_ctx *m2m_ctx)
-{
- return &m2m_ctx->out_q_ctx.q;
-}
-
-/**
- * v4l2_m2m_get_dst_vq() - return vb2_queue for destination buffers
- */
-static inline
-struct vb2_queue *v4l2_m2m_get_dst_vq(struct v4l2_m2m_ctx *m2m_ctx)
-{
- return &m2m_ctx->cap_q_ctx.q;
-}
-
-void *v4l2_m2m_buf_remove(struct v4l2_m2m_queue_ctx *q_ctx);
-
-/**
- * v4l2_m2m_src_buf_remove() - take off a source buffer from the list of ready
- * buffers and return it
- */
-static inline void *v4l2_m2m_src_buf_remove(struct v4l2_m2m_ctx *m2m_ctx)
-{
- return v4l2_m2m_buf_remove(&m2m_ctx->out_q_ctx);
-}
-
-/**
- * v4l2_m2m_dst_buf_remove() - take off a destination buffer from the list of
- * ready buffers and return it
- */
-static inline void *v4l2_m2m_dst_buf_remove(struct v4l2_m2m_ctx *m2m_ctx)
-{
- return v4l2_m2m_buf_remove(&m2m_ctx->cap_q_ctx);
-}
-
-#endif /* _MEDIA_V4L2_MEM2MEM_H */
-
diff --git a/ANDROID_3.4.5/include/media/v4l2-subdev.h b/ANDROID_3.4.5/include/media/v4l2-subdev.h
deleted file mode 100644
index f0f3358d..00000000
--- a/ANDROID_3.4.5/include/media/v4l2-subdev.h
+++ /dev/null
@@ -1,613 +0,0 @@
-/*
- V4L2 sub-device support header.
-
- Copyright (C) 2008 Hans Verkuil <hverkuil@xs4all.nl>
-
- 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
- */
-
-#ifndef _V4L2_SUBDEV_H
-#define _V4L2_SUBDEV_H
-
-#include <linux/v4l2-subdev.h>
-#include <media/media-entity.h>
-#include <media/v4l2-common.h>
-#include <media/v4l2-dev.h>
-#include <media/v4l2-fh.h>
-#include <media/v4l2-mediabus.h>
-
-/* generic v4l2_device notify callback notification values */
-#define V4L2_SUBDEV_IR_RX_NOTIFY _IOW('v', 0, u32)
-#define V4L2_SUBDEV_IR_RX_FIFO_SERVICE_REQ 0x00000001
-#define V4L2_SUBDEV_IR_RX_END_OF_RX_DETECTED 0x00000002
-#define V4L2_SUBDEV_IR_RX_HW_FIFO_OVERRUN 0x00000004
-#define V4L2_SUBDEV_IR_RX_SW_FIFO_OVERRUN 0x00000008
-
-#define V4L2_SUBDEV_IR_TX_NOTIFY _IOW('v', 1, u32)
-#define V4L2_SUBDEV_IR_TX_FIFO_SERVICE_REQ 0x00000001
-
-struct v4l2_device;
-struct v4l2_ctrl_handler;
-struct v4l2_event_subscription;
-struct v4l2_fh;
-struct v4l2_subdev;
-struct v4l2_subdev_fh;
-struct tuner_setup;
-
-/* decode_vbi_line */
-struct v4l2_decode_vbi_line {
- u32 is_second_field; /* Set to 0 for the first (odd) field,
- set to 1 for the second (even) field. */
- u8 *p; /* Pointer to the sliced VBI data from the decoder.
- On exit points to the start of the payload. */
- u32 line; /* Line number of the sliced VBI data (1-23) */
- u32 type; /* VBI service type (V4L2_SLICED_*). 0 if no service found */
-};
-
-/* Sub-devices are devices that are connected somehow to the main bridge
- device. These devices are usually audio/video muxers/encoders/decoders or
- sensors and webcam controllers.
-
- Usually these devices are controlled through an i2c bus, but other busses
- may also be used.
-
- The v4l2_subdev struct provides a way of accessing these devices in a
- generic manner. Most operations that these sub-devices support fall in
- a few categories: core ops, audio ops, video ops and tuner ops.
-
- More categories can be added if needed, although this should remain a
- limited set (no more than approx. 8 categories).
-
- Each category has its own set of ops that subdev drivers can implement.
-
- A subdev driver can leave the pointer to the category ops NULL if
- it does not implement them (e.g. an audio subdev will generally not
- implement the video category ops). The exception is the core category:
- this must always be present.
-
- These ops are all used internally so it is no problem to change, remove
- or add ops or move ops from one to another category. Currently these
- ops are based on the original ioctls, but since ops are not limited to
- one argument there is room for improvement here once all i2c subdev
- drivers are converted to use these ops.
- */
-
-/* Core ops: it is highly recommended to implement at least these ops:
-
- g_chip_ident
- log_status
- g_register
- s_register
-
- This provides basic debugging support.
-
- The ioctl ops is meant for generic ioctl-like commands. Depending on
- the use-case it might be better to use subdev-specific ops (currently
- not yet implemented) since ops provide proper type-checking.
- */
-
-/* Subdevice external IO pin configuration */
-#define V4L2_SUBDEV_IO_PIN_DISABLE (1 << 0) /* ENABLE assumed */
-#define V4L2_SUBDEV_IO_PIN_OUTPUT (1 << 1)
-#define V4L2_SUBDEV_IO_PIN_INPUT (1 << 2)
-#define V4L2_SUBDEV_IO_PIN_SET_VALUE (1 << 3) /* Set output value */
-#define V4L2_SUBDEV_IO_PIN_ACTIVE_LOW (1 << 4) /* ACTIVE HIGH assumed */
-
-struct v4l2_subdev_io_pin_config {
- u32 flags; /* V4L2_SUBDEV_IO_PIN_* flags for this pin's config */
- u8 pin; /* Chip external IO pin to configure */
- u8 function; /* Internal signal pad/function to route to IO pin */
- u8 value; /* Initial value for pin - e.g. GPIO output value */
- u8 strength; /* Pin drive strength */
-};
-
-/*
- s_io_pin_config: configure one or more chip I/O pins for chips that
- multiplex different internal signal pads out to IO pins. This function
- takes a pointer to an array of 'n' pin configuration entries, one for
- each pin being configured. This function could be called at times
- other than just subdevice initialization.
-
- init: initialize the sensor registors to some sort of reasonable default
- values. Do not use for new drivers and should be removed in existing
- drivers.
-
- load_fw: load firmware.
-
- reset: generic reset command. The argument selects which subsystems to
- reset. Passing 0 will always reset the whole chip. Do not use for new
- drivers without discussing this first on the linux-media mailinglist.
- There should be no reason normally to reset a device.
-
- s_gpio: set GPIO pins. Very simple right now, might need to be extended with
- a direction argument if needed.
-
- s_power: puts subdevice in power saving mode (on == 0) or normal operation
- mode (on == 1).
-
- interrupt_service_routine: Called by the bridge chip's interrupt service
- handler, when an interrupt status has be raised due to this subdev,
- so that this subdev can handle the details. It may schedule work to be
- performed later. It must not sleep. *Called from an IRQ context*.
- */
-struct v4l2_subdev_core_ops {
- int (*g_chip_ident)(struct v4l2_subdev *sd, struct v4l2_dbg_chip_ident *chip);
- int (*log_status)(struct v4l2_subdev *sd);
- int (*s_io_pin_config)(struct v4l2_subdev *sd, size_t n,
- struct v4l2_subdev_io_pin_config *pincfg);
- int (*init)(struct v4l2_subdev *sd, u32 val);
- int (*load_fw)(struct v4l2_subdev *sd);
- int (*reset)(struct v4l2_subdev *sd, u32 val);
- int (*s_gpio)(struct v4l2_subdev *sd, u32 val);
- int (*queryctrl)(struct v4l2_subdev *sd, struct v4l2_queryctrl *qc);
- int (*g_ctrl)(struct v4l2_subdev *sd, struct v4l2_control *ctrl);
- int (*s_ctrl)(struct v4l2_subdev *sd, struct v4l2_control *ctrl);
- int (*g_ext_ctrls)(struct v4l2_subdev *sd, struct v4l2_ext_controls *ctrls);
- int (*s_ext_ctrls)(struct v4l2_subdev *sd, struct v4l2_ext_controls *ctrls);
- int (*try_ext_ctrls)(struct v4l2_subdev *sd, struct v4l2_ext_controls *ctrls);
- int (*querymenu)(struct v4l2_subdev *sd, struct v4l2_querymenu *qm);
- int (*g_std)(struct v4l2_subdev *sd, v4l2_std_id *norm);
- int (*s_std)(struct v4l2_subdev *sd, v4l2_std_id norm);
- long (*ioctl)(struct v4l2_subdev *sd, unsigned int cmd, void *arg);
-#ifdef CONFIG_VIDEO_ADV_DEBUG
- int (*g_register)(struct v4l2_subdev *sd, struct v4l2_dbg_register *reg);
- int (*s_register)(struct v4l2_subdev *sd, struct v4l2_dbg_register *reg);
-#endif
- int (*s_power)(struct v4l2_subdev *sd, int on);
- int (*interrupt_service_routine)(struct v4l2_subdev *sd,
- u32 status, bool *handled);
- int (*subscribe_event)(struct v4l2_subdev *sd, struct v4l2_fh *fh,
- struct v4l2_event_subscription *sub);
- int (*unsubscribe_event)(struct v4l2_subdev *sd, struct v4l2_fh *fh,
- struct v4l2_event_subscription *sub);
-};
-
-/* s_radio: v4l device was opened in radio mode.
-
- g_frequency: freq->type must be filled in. Normally done by video_ioctl2
- or the bridge driver.
-
- g_tuner:
- s_tuner: vt->type must be filled in. Normally done by video_ioctl2 or the
- bridge driver.
-
- s_type_addr: sets tuner type and its I2C addr.
-
- s_config: sets tda9887 specific stuff, like port1, port2 and qss
- */
-struct v4l2_subdev_tuner_ops {
- int (*s_radio)(struct v4l2_subdev *sd);
- int (*s_frequency)(struct v4l2_subdev *sd, struct v4l2_frequency *freq);
- int (*g_frequency)(struct v4l2_subdev *sd, struct v4l2_frequency *freq);
- int (*g_tuner)(struct v4l2_subdev *sd, struct v4l2_tuner *vt);
- int (*s_tuner)(struct v4l2_subdev *sd, struct v4l2_tuner *vt);
- int (*g_modulator)(struct v4l2_subdev *sd, struct v4l2_modulator *vm);
- int (*s_modulator)(struct v4l2_subdev *sd, struct v4l2_modulator *vm);
- int (*s_type_addr)(struct v4l2_subdev *sd, struct tuner_setup *type);
- int (*s_config)(struct v4l2_subdev *sd, const struct v4l2_priv_tun_config *config);
-};
-
-/* s_clock_freq: set the frequency (in Hz) of the audio clock output.
- Used to slave an audio processor to the video decoder, ensuring that
- audio and video remain synchronized. Usual values for the frequency
- are 48000, 44100 or 32000 Hz. If the frequency is not supported, then
- -EINVAL is returned.
-
- s_i2s_clock_freq: sets I2S speed in bps. This is used to provide a standard
- way to select I2S clock used by driving digital audio streams at some
- board designs. Usual values for the frequency are 1024000 and 2048000.
- If the frequency is not supported, then -EINVAL is returned.
-
- s_routing: used to define the input and/or output pins of an audio chip,
- and any additional configuration data.
- Never attempt to use user-level input IDs (e.g. Composite, S-Video,
- Tuner) at this level. An i2c device shouldn't know about whether an
- input pin is connected to a Composite connector, become on another
- board or platform it might be connected to something else entirely.
- The calling driver is responsible for mapping a user-level input to
- the right pins on the i2c device.
- */
-struct v4l2_subdev_audio_ops {
- int (*s_clock_freq)(struct v4l2_subdev *sd, u32 freq);
- int (*s_i2s_clock_freq)(struct v4l2_subdev *sd, u32 freq);
- int (*s_routing)(struct v4l2_subdev *sd, u32 input, u32 output, u32 config);
- int (*s_stream)(struct v4l2_subdev *sd, int enable);
-};
-
-/*
- s_std_output: set v4l2_std_id for video OUTPUT devices. This is ignored by
- video input devices.
-
- g_std_output: get current standard for video OUTPUT devices. This is ignored
- by video input devices.
-
- g_tvnorms_output: get v4l2_std_id with all standards supported by video
- OUTPUT device. This is ignored by video input devices.
-
- s_crystal_freq: sets the frequency of the crystal used to generate the
- clocks in Hz. An extra flags field allows device specific configuration
- regarding clock frequency dividers, etc. If not used, then set flags
- to 0. If the frequency is not supported, then -EINVAL is returned.
-
- g_input_status: get input status. Same as the status field in the v4l2_input
- struct.
-
- s_routing: see s_routing in audio_ops, except this version is for video
- devices.
-
- s_dv_preset: set dv (Digital Video) preset in the sub device. Similar to
- s_std()
-
- g_dv_preset: get current dv (Digital Video) preset in the sub device.
-
- query_dv_preset: query dv preset in the sub device. This is similar to
- querystd()
-
- s_dv_timings(): Set custom dv timings in the sub device. This is used
- when sub device is capable of setting detailed timing information
- in the hardware to generate/detect the video signal.
-
- g_dv_timings(): Get custom dv timings in the sub device.
-
- enum_mbus_fmt: enumerate pixel formats, provided by a video data source
-
- g_mbus_fmt: get the current pixel format, provided by a video data source
-
- try_mbus_fmt: try to set a pixel format on a video data source
-
- s_mbus_fmt: set a pixel format on a video data source
-
- g_mbus_config: get supported mediabus configurations
-
- s_mbus_config: set a certain mediabus configuration. This operation is added
- for compatibility with soc-camera drivers and should not be used by new
- software.
- */
-struct v4l2_subdev_video_ops {
- int (*s_routing)(struct v4l2_subdev *sd, u32 input, u32 output, u32 config);
- int (*s_crystal_freq)(struct v4l2_subdev *sd, u32 freq, u32 flags);
- int (*s_std_output)(struct v4l2_subdev *sd, v4l2_std_id std);
- int (*g_std_output)(struct v4l2_subdev *sd, v4l2_std_id *std);
- int (*querystd)(struct v4l2_subdev *sd, v4l2_std_id *std);
- int (*g_tvnorms_output)(struct v4l2_subdev *sd, v4l2_std_id *std);
- int (*g_input_status)(struct v4l2_subdev *sd, u32 *status);
- int (*s_stream)(struct v4l2_subdev *sd, int enable);
- int (*cropcap)(struct v4l2_subdev *sd, struct v4l2_cropcap *cc);
- int (*g_crop)(struct v4l2_subdev *sd, struct v4l2_crop *crop);
- int (*s_crop)(struct v4l2_subdev *sd, struct v4l2_crop *crop);
- int (*g_parm)(struct v4l2_subdev *sd, struct v4l2_streamparm *param);
- int (*s_parm)(struct v4l2_subdev *sd, struct v4l2_streamparm *param);
- int (*g_frame_interval)(struct v4l2_subdev *sd,
- struct v4l2_subdev_frame_interval *interval);
- int (*s_frame_interval)(struct v4l2_subdev *sd,
- struct v4l2_subdev_frame_interval *interval);
- int (*enum_framesizes)(struct v4l2_subdev *sd, struct v4l2_frmsizeenum *fsize);
- int (*enum_frameintervals)(struct v4l2_subdev *sd, struct v4l2_frmivalenum *fival);
- int (*enum_dv_presets) (struct v4l2_subdev *sd,
- struct v4l2_dv_enum_preset *preset);
- int (*s_dv_preset)(struct v4l2_subdev *sd,
- struct v4l2_dv_preset *preset);
- int (*g_dv_preset)(struct v4l2_subdev *sd,
- struct v4l2_dv_preset *preset);
- int (*query_dv_preset)(struct v4l2_subdev *sd,
- struct v4l2_dv_preset *preset);
- int (*s_dv_timings)(struct v4l2_subdev *sd,
- struct v4l2_dv_timings *timings);
- int (*g_dv_timings)(struct v4l2_subdev *sd,
- struct v4l2_dv_timings *timings);
- int (*enum_mbus_fmt)(struct v4l2_subdev *sd, unsigned int index,
- enum v4l2_mbus_pixelcode *code);
- int (*enum_mbus_fsizes)(struct v4l2_subdev *sd,
- struct v4l2_frmsizeenum *fsize);
- int (*g_mbus_fmt)(struct v4l2_subdev *sd,
- struct v4l2_mbus_framefmt *fmt);
- int (*try_mbus_fmt)(struct v4l2_subdev *sd,
- struct v4l2_mbus_framefmt *fmt);
- int (*s_mbus_fmt)(struct v4l2_subdev *sd,
- struct v4l2_mbus_framefmt *fmt);
- int (*g_mbus_config)(struct v4l2_subdev *sd,
- struct v4l2_mbus_config *cfg);
- int (*s_mbus_config)(struct v4l2_subdev *sd,
- const struct v4l2_mbus_config *cfg);
-};
-
-/*
- decode_vbi_line: video decoders that support sliced VBI need to implement
- this ioctl. Field p of the v4l2_sliced_vbi_line struct is set to the
- start of the VBI data that was generated by the decoder. The driver
- then parses the sliced VBI data and sets the other fields in the
- struct accordingly. The pointer p is updated to point to the start of
- the payload which can be copied verbatim into the data field of the
- v4l2_sliced_vbi_data struct. If no valid VBI data was found, then the
- type field is set to 0 on return.
-
- s_vbi_data: used to generate VBI signals on a video signal.
- v4l2_sliced_vbi_data is filled with the data packets that should be
- output. Note that if you set the line field to 0, then that VBI signal
- is disabled. If no valid VBI data was found, then the type field is
- set to 0 on return.
-
- g_vbi_data: used to obtain the sliced VBI packet from a readback register.
- Not all video decoders support this. If no data is available because
- the readback register contains invalid or erroneous data -EIO is
- returned. Note that you must fill in the 'id' member and the 'field'
- member (to determine whether CC data from the first or second field
- should be obtained).
-
- s_raw_fmt: setup the video encoder/decoder for raw VBI.
-
- g_sliced_fmt: retrieve the current sliced VBI settings.
-
- s_sliced_fmt: setup the sliced VBI settings.
- */
-struct v4l2_subdev_vbi_ops {
- int (*decode_vbi_line)(struct v4l2_subdev *sd, struct v4l2_decode_vbi_line *vbi_line);
- int (*s_vbi_data)(struct v4l2_subdev *sd, const struct v4l2_sliced_vbi_data *vbi_data);
- int (*g_vbi_data)(struct v4l2_subdev *sd, struct v4l2_sliced_vbi_data *vbi_data);
- int (*g_sliced_vbi_cap)(struct v4l2_subdev *sd, struct v4l2_sliced_vbi_cap *cap);
- int (*s_raw_fmt)(struct v4l2_subdev *sd, struct v4l2_vbi_format *fmt);
- int (*g_sliced_fmt)(struct v4l2_subdev *sd, struct v4l2_sliced_vbi_format *fmt);
- int (*s_sliced_fmt)(struct v4l2_subdev *sd, struct v4l2_sliced_vbi_format *fmt);
-};
-
-/**
- * struct v4l2_subdev_sensor_ops - v4l2-subdev sensor operations
- * @g_skip_top_lines: number of lines at the top of the image to be skipped.
- * This is needed for some sensors, which always corrupt
- * several top lines of the output image, or which send their
- * metadata in them.
- * @g_skip_frames: number of frames to skip at stream start. This is needed for
- * buggy sensors that generate faulty frames when they are
- * turned on.
- */
-struct v4l2_subdev_sensor_ops {
- int (*g_skip_top_lines)(struct v4l2_subdev *sd, u32 *lines);
- int (*g_skip_frames)(struct v4l2_subdev *sd, u32 *frames);
-};
-
-/*
- [rt]x_g_parameters: Get the current operating parameters and state of the
- the IR receiver or transmitter.
-
- [rt]x_s_parameters: Set the current operating parameters and state of the
- the IR receiver or transmitter. It is recommended to call
- [rt]x_g_parameters first to fill out the current state, and only change
- the fields that need to be changed. Upon return, the actual device
- operating parameters and state will be returned. Note that hardware
- limitations may prevent the actual settings from matching the requested
- settings - e.g. an actual carrier setting of 35,904 Hz when 36,000 Hz
- was requested. An exception is when the shutdown parameter is true.
- The last used operational parameters will be returned, but the actual
- state of the hardware be different to minimize power consumption and
- processing when shutdown is true.
-
- rx_read: Reads received codes or pulse width data.
- The semantics are similar to a non-blocking read() call.
-
- tx_write: Writes codes or pulse width data for transmission.
- The semantics are similar to a non-blocking write() call.
- */
-
-enum v4l2_subdev_ir_mode {
- V4L2_SUBDEV_IR_MODE_PULSE_WIDTH, /* uses struct ir_raw_event records */
-};
-
-struct v4l2_subdev_ir_parameters {
- /* Either Rx or Tx */
- unsigned int bytes_per_data_element; /* of data in read or write call */
- enum v4l2_subdev_ir_mode mode;
-
- bool enable;
- bool interrupt_enable;
- bool shutdown; /* true: set hardware to low/no power, false: normal */
-
- bool modulation; /* true: uses carrier, false: baseband */
- u32 max_pulse_width; /* ns, valid only for baseband signal */
- unsigned int carrier_freq; /* Hz, valid only for modulated signal*/
- unsigned int duty_cycle; /* percent, valid only for modulated signal*/
- bool invert_level; /* invert signal level */
-
- /* Tx only */
- bool invert_carrier_sense; /* Send 0/space as a carrier burst */
-
- /* Rx only */
- u32 noise_filter_min_width; /* ns, min time of a valid pulse */
- unsigned int carrier_range_lower; /* Hz, valid only for modulated sig */
- unsigned int carrier_range_upper; /* Hz, valid only for modulated sig */
- u32 resolution; /* ns */
-};
-
-struct v4l2_subdev_ir_ops {
- /* Receiver */
- int (*rx_read)(struct v4l2_subdev *sd, u8 *buf, size_t count,
- ssize_t *num);
-
- int (*rx_g_parameters)(struct v4l2_subdev *sd,
- struct v4l2_subdev_ir_parameters *params);
- int (*rx_s_parameters)(struct v4l2_subdev *sd,
- struct v4l2_subdev_ir_parameters *params);
-
- /* Transmitter */
- int (*tx_write)(struct v4l2_subdev *sd, u8 *buf, size_t count,
- ssize_t *num);
-
- int (*tx_g_parameters)(struct v4l2_subdev *sd,
- struct v4l2_subdev_ir_parameters *params);
- int (*tx_s_parameters)(struct v4l2_subdev *sd,
- struct v4l2_subdev_ir_parameters *params);
-};
-
-struct v4l2_subdev_pad_ops {
- int (*enum_mbus_code)(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh,
- struct v4l2_subdev_mbus_code_enum *code);
- int (*enum_frame_size)(struct v4l2_subdev *sd,
- struct v4l2_subdev_fh *fh,
- struct v4l2_subdev_frame_size_enum *fse);
- int (*enum_frame_interval)(struct v4l2_subdev *sd,
- struct v4l2_subdev_fh *fh,
- struct v4l2_subdev_frame_interval_enum *fie);
- int (*get_fmt)(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh,
- struct v4l2_subdev_format *format);
- int (*set_fmt)(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh,
- struct v4l2_subdev_format *format);
- int (*set_crop)(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh,
- struct v4l2_subdev_crop *crop);
- int (*get_crop)(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh,
- struct v4l2_subdev_crop *crop);
-};
-
-struct v4l2_subdev_ops {
- const struct v4l2_subdev_core_ops *core;
- const struct v4l2_subdev_tuner_ops *tuner;
- const struct v4l2_subdev_audio_ops *audio;
- const struct v4l2_subdev_video_ops *video;
- const struct v4l2_subdev_vbi_ops *vbi;
- const struct v4l2_subdev_ir_ops *ir;
- const struct v4l2_subdev_sensor_ops *sensor;
- const struct v4l2_subdev_pad_ops *pad;
-};
-
-/*
- * Internal ops. Never call this from drivers, only the v4l2 framework can call
- * these ops.
- *
- * registered: called when this subdev is registered. When called the v4l2_dev
- * field is set to the correct v4l2_device.
- *
- * unregistered: called when this subdev is unregistered. When called the
- * v4l2_dev field is still set to the correct v4l2_device.
- *
- * open: called when the subdev device node is opened by an application.
- *
- * close: called when the subdev device node is closed.
- */
-struct v4l2_subdev_internal_ops {
- int (*registered)(struct v4l2_subdev *sd);
- void (*unregistered)(struct v4l2_subdev *sd);
- int (*open)(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh);
- int (*close)(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh);
-};
-
-#define V4L2_SUBDEV_NAME_SIZE 32
-
-/* Set this flag if this subdev is a i2c device. */
-#define V4L2_SUBDEV_FL_IS_I2C (1U << 0)
-/* Set this flag if this subdev is a spi device. */
-#define V4L2_SUBDEV_FL_IS_SPI (1U << 1)
-/* Set this flag if this subdev needs a device node. */
-#define V4L2_SUBDEV_FL_HAS_DEVNODE (1U << 2)
-/* Set this flag if this subdev generates events. */
-#define V4L2_SUBDEV_FL_HAS_EVENTS (1U << 3)
-
-/* Each instance of a subdev driver should create this struct, either
- stand-alone or embedded in a larger struct.
- */
-struct v4l2_subdev {
-#if defined(CONFIG_MEDIA_CONTROLLER)
- struct media_entity entity;
-#endif
- struct list_head list;
- struct module *owner;
- u32 flags;
- struct v4l2_device *v4l2_dev;
- const struct v4l2_subdev_ops *ops;
- /* Never call these internal ops from within a driver! */
- const struct v4l2_subdev_internal_ops *internal_ops;
- /* The control handler of this subdev. May be NULL. */
- struct v4l2_ctrl_handler *ctrl_handler;
- /* name must be unique */
- char name[V4L2_SUBDEV_NAME_SIZE];
- /* can be used to group similar subdevs, value is driver-specific */
- u32 grp_id;
- /* pointer to private data */
- void *dev_priv;
- void *host_priv;
- /* subdev device node */
- struct video_device *devnode;
-};
-
-#define media_entity_to_v4l2_subdev(ent) \
- container_of(ent, struct v4l2_subdev, entity)
-#define vdev_to_v4l2_subdev(vdev) \
- video_get_drvdata(vdev)
-
-/*
- * Used for storing subdev information per file handle
- */
-struct v4l2_subdev_fh {
- struct v4l2_fh vfh;
-#if defined(CONFIG_VIDEO_V4L2_SUBDEV_API)
- struct v4l2_mbus_framefmt *try_fmt;
- struct v4l2_rect *try_crop;
-#endif
-};
-
-#define to_v4l2_subdev_fh(fh) \
- container_of(fh, struct v4l2_subdev_fh, vfh)
-
-#if defined(CONFIG_VIDEO_V4L2_SUBDEV_API)
-static inline struct v4l2_mbus_framefmt *
-v4l2_subdev_get_try_format(struct v4l2_subdev_fh *fh, unsigned int pad)
-{
- return &fh->try_fmt[pad];
-}
-
-static inline struct v4l2_rect *
-v4l2_subdev_get_try_crop(struct v4l2_subdev_fh *fh, unsigned int pad)
-{
- return &fh->try_crop[pad];
-}
-#endif
-
-extern const struct v4l2_file_operations v4l2_subdev_fops;
-
-static inline void v4l2_set_subdevdata(struct v4l2_subdev *sd, void *p)
-{
- sd->dev_priv = p;
-}
-
-static inline void *v4l2_get_subdevdata(const struct v4l2_subdev *sd)
-{
- return sd->dev_priv;
-}
-
-static inline void v4l2_set_subdev_hostdata(struct v4l2_subdev *sd, void *p)
-{
- sd->host_priv = p;
-}
-
-static inline void *v4l2_get_subdev_hostdata(const struct v4l2_subdev *sd)
-{
- return sd->host_priv;
-}
-
-void v4l2_subdev_init(struct v4l2_subdev *sd,
- const struct v4l2_subdev_ops *ops);
-
-/* Call an ops of a v4l2_subdev, doing the right checks against
- NULL pointers.
-
- Example: err = v4l2_subdev_call(sd, core, g_chip_ident, &chip);
- */
-#define v4l2_subdev_call(sd, o, f, args...) \
- (!(sd) ? -ENODEV : (((sd)->ops->o && (sd)->ops->o->f) ? \
- (sd)->ops->o->f((sd) , ##args) : -ENOIOCTLCMD))
-
-/* Send a notification to v4l2_device. */
-#define v4l2_subdev_notify(sd, notification, arg) \
- ((!(sd) || !(sd)->v4l2_dev || !(sd)->v4l2_dev->notify) ? -ENODEV : \
- (sd)->v4l2_dev->notify((sd), (notification), (arg)))
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/videobuf-core.h b/ANDROID_3.4.5/include/media/videobuf-core.h
deleted file mode 100644
index 90ed895e..00000000
--- a/ANDROID_3.4.5/include/media/videobuf-core.h
+++ /dev/null
@@ -1,238 +0,0 @@
-/*
- * generic helper functions for handling video4linux capture buffers
- *
- * (c) 2007 Mauro Carvalho Chehab, <mchehab@infradead.org>
- *
- * Highly based on video-buf written originally by:
- * (c) 2001,02 Gerd Knorr <kraxel@bytesex.org>
- * (c) 2006 Mauro Carvalho Chehab, <mchehab@infradead.org>
- * (c) 2006 Ted Walther and John Sokol
- *
- * 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
- */
-
-#ifndef _VIDEOBUF_CORE_H
-#define _VIDEOBUF_CORE_H
-
-#include <linux/poll.h>
-#include <linux/videodev2.h>
-
-#define UNSET (-1U)
-
-
-struct videobuf_buffer;
-struct videobuf_queue;
-
-/* --------------------------------------------------------------------- */
-
-/*
- * A small set of helper functions to manage video4linux buffers.
- *
- * struct videobuf_buffer holds the data structures used by the helper
- * functions, additionally some commonly used fields for v4l buffers
- * (width, height, lists, waitqueue) are in there. That struct should
- * be used as first element in the drivers buffer struct.
- *
- * about the mmap helpers (videobuf_mmap_*):
- *
- * The mmaper function allows to map any subset of contingous buffers.
- * This includes one mmap() call for all buffers (which the original
- * video4linux API uses) as well as one mmap() for every single buffer
- * (which v4l2 uses).
- *
- * If there is a valid mapping for a buffer, buffer->baddr/bsize holds
- * userspace address + size which can be feeded into the
- * videobuf_dma_init_user function listed above.
- *
- */
-
-struct videobuf_mapping {
- unsigned int count;
- struct videobuf_queue *q;
-};
-
-enum videobuf_state {
- VIDEOBUF_NEEDS_INIT = 0,
- VIDEOBUF_PREPARED = 1,
- VIDEOBUF_QUEUED = 2,
- VIDEOBUF_ACTIVE = 3,
- VIDEOBUF_DONE = 4,
- VIDEOBUF_ERROR = 5,
- VIDEOBUF_IDLE = 6,
-};
-
-struct videobuf_buffer {
- unsigned int i;
- u32 magic;
-
- /* info about the buffer */
- unsigned int width;
- unsigned int height;
- unsigned int bytesperline; /* use only if != 0 */
- unsigned long size;
- unsigned int input;
- enum v4l2_field field;
- enum videobuf_state state;
- struct list_head stream; /* QBUF/DQBUF list */
-
- /* touched by irq handler */
- struct list_head queue;
- wait_queue_head_t done;
- unsigned int field_count;
- struct timeval ts;
-
- /* Memory type */
- enum v4l2_memory memory;
-
- /* buffer size */
- size_t bsize;
-
- /* buffer offset (mmap + overlay) */
- size_t boff;
-
- /* buffer addr (userland ptr!) */
- unsigned long baddr;
-
- /* for mmap'ed buffers */
- struct videobuf_mapping *map;
-
- /* Private pointer to allow specific methods to store their data */
- int privsize;
- void *priv;
-};
-
-struct videobuf_queue_ops {
- int (*buf_setup)(struct videobuf_queue *q,
- unsigned int *count, unsigned int *size);
- int (*buf_prepare)(struct videobuf_queue *q,
- struct videobuf_buffer *vb,
- enum v4l2_field field);
- void (*buf_queue)(struct videobuf_queue *q,
- struct videobuf_buffer *vb);
- void (*buf_release)(struct videobuf_queue *q,
- struct videobuf_buffer *vb);
-};
-
-#define MAGIC_QTYPE_OPS 0x12261003
-
-/* Helper operations - device type dependent */
-struct videobuf_qtype_ops {
- u32 magic;
-
- struct videobuf_buffer *(*alloc_vb)(size_t size);
- void *(*vaddr) (struct videobuf_buffer *buf);
- int (*iolock) (struct videobuf_queue *q,
- struct videobuf_buffer *vb,
- struct v4l2_framebuffer *fbuf);
- int (*sync) (struct videobuf_queue *q,
- struct videobuf_buffer *buf);
- int (*mmap_mapper) (struct videobuf_queue *q,
- struct videobuf_buffer *buf,
- struct vm_area_struct *vma);
-};
-
-struct videobuf_queue {
- struct mutex vb_lock;
- struct mutex *ext_lock;
- spinlock_t *irqlock;
- struct device *dev;
-
- wait_queue_head_t wait; /* wait if queue is empty */
-
- enum v4l2_buf_type type;
- unsigned int inputs; /* for V4L2_BUF_FLAG_INPUT */
- unsigned int msize;
- enum v4l2_field field;
- enum v4l2_field last; /* for field=V4L2_FIELD_ALTERNATE */
- struct videobuf_buffer *bufs[VIDEO_MAX_FRAME];
- const struct videobuf_queue_ops *ops;
- struct videobuf_qtype_ops *int_ops;
-
- unsigned int streaming:1;
- unsigned int reading:1;
-
- /* capture via mmap() + ioctl(QBUF/DQBUF) */
- struct list_head stream;
-
- /* capture via read() */
- unsigned int read_off;
- struct videobuf_buffer *read_buf;
-
- /* driver private data */
- void *priv_data;
-};
-
-static inline void videobuf_queue_lock(struct videobuf_queue *q)
-{
- if (!q->ext_lock)
- mutex_lock(&q->vb_lock);
-}
-
-static inline void videobuf_queue_unlock(struct videobuf_queue *q)
-{
- if (!q->ext_lock)
- mutex_unlock(&q->vb_lock);
-}
-
-int videobuf_waiton(struct videobuf_queue *q, struct videobuf_buffer *vb,
- int non_blocking, int intr);
-int videobuf_iolock(struct videobuf_queue *q, struct videobuf_buffer *vb,
- struct v4l2_framebuffer *fbuf);
-
-struct videobuf_buffer *videobuf_alloc_vb(struct videobuf_queue *q);
-
-/* Used on videobuf-dvb */
-void *videobuf_queue_to_vaddr(struct videobuf_queue *q,
- struct videobuf_buffer *buf);
-
-void videobuf_queue_core_init(struct videobuf_queue *q,
- const struct videobuf_queue_ops *ops,
- struct device *dev,
- spinlock_t *irqlock,
- enum v4l2_buf_type type,
- enum v4l2_field field,
- unsigned int msize,
- void *priv,
- struct videobuf_qtype_ops *int_ops,
- struct mutex *ext_lock);
-int videobuf_queue_is_busy(struct videobuf_queue *q);
-void videobuf_queue_cancel(struct videobuf_queue *q);
-
-enum v4l2_field videobuf_next_field(struct videobuf_queue *q);
-int videobuf_reqbufs(struct videobuf_queue *q,
- struct v4l2_requestbuffers *req);
-int videobuf_querybuf(struct videobuf_queue *q, struct v4l2_buffer *b);
-int videobuf_qbuf(struct videobuf_queue *q,
- struct v4l2_buffer *b);
-int videobuf_dqbuf(struct videobuf_queue *q,
- struct v4l2_buffer *b, int nonblocking);
-int videobuf_streamon(struct videobuf_queue *q);
-int videobuf_streamoff(struct videobuf_queue *q);
-
-void videobuf_stop(struct videobuf_queue *q);
-
-int videobuf_read_start(struct videobuf_queue *q);
-void videobuf_read_stop(struct videobuf_queue *q);
-ssize_t videobuf_read_stream(struct videobuf_queue *q,
- char __user *data, size_t count, loff_t *ppos,
- int vbihack, int nonblocking);
-ssize_t videobuf_read_one(struct videobuf_queue *q,
- char __user *data, size_t count, loff_t *ppos,
- int nonblocking);
-unsigned int videobuf_poll_stream(struct file *file,
- struct videobuf_queue *q,
- poll_table *wait);
-
-int videobuf_mmap_setup(struct videobuf_queue *q,
- unsigned int bcount, unsigned int bsize,
- enum v4l2_memory memory);
-int __videobuf_mmap_setup(struct videobuf_queue *q,
- unsigned int bcount, unsigned int bsize,
- enum v4l2_memory memory);
-int videobuf_mmap_free(struct videobuf_queue *q);
-int videobuf_mmap_mapper(struct videobuf_queue *q,
- struct vm_area_struct *vma);
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/videobuf-dma-contig.h b/ANDROID_3.4.5/include/media/videobuf-dma-contig.h
deleted file mode 100644
index f0ed8254..00000000
--- a/ANDROID_3.4.5/include/media/videobuf-dma-contig.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * helper functions for physically contiguous capture buffers
- *
- * The functions support hardware lacking scatter gather support
- * (i.e. the buffers must be linear in physical memory)
- *
- * Copyright (c) 2008 Magnus Damm
- *
- * 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
- */
-#ifndef _VIDEOBUF_DMA_CONTIG_H
-#define _VIDEOBUF_DMA_CONTIG_H
-
-#include <linux/dma-mapping.h>
-#include <media/videobuf-core.h>
-
-void videobuf_queue_dma_contig_init(struct videobuf_queue *q,
- const struct videobuf_queue_ops *ops,
- struct device *dev,
- spinlock_t *irqlock,
- enum v4l2_buf_type type,
- enum v4l2_field field,
- unsigned int msize,
- void *priv,
- struct mutex *ext_lock);
-
-dma_addr_t videobuf_to_dma_contig(struct videobuf_buffer *buf);
-void videobuf_dma_contig_free(struct videobuf_queue *q,
- struct videobuf_buffer *buf);
-
-#endif /* _VIDEOBUF_DMA_CONTIG_H */
diff --git a/ANDROID_3.4.5/include/media/videobuf-dma-sg.h b/ANDROID_3.4.5/include/media/videobuf-dma-sg.h
deleted file mode 100644
index d8fb6012..00000000
--- a/ANDROID_3.4.5/include/media/videobuf-dma-sg.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * helper functions for SG DMA video4linux capture buffers
- *
- * The functions expect the hardware being able to scatter gather
- * (i.e. the buffers are not linear in physical memory, but fragmented
- * into PAGE_SIZE chunks). They also assume the driver does not need
- * to touch the video data.
- *
- * (c) 2007 Mauro Carvalho Chehab, <mchehab@infradead.org>
- *
- * Highly based on video-buf written originally by:
- * (c) 2001,02 Gerd Knorr <kraxel@bytesex.org>
- * (c) 2006 Mauro Carvalho Chehab, <mchehab@infradead.org>
- * (c) 2006 Ted Walther and John Sokol
- *
- * 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
- */
-#ifndef _VIDEOBUF_DMA_SG_H
-#define _VIDEOBUF_DMA_SG_H
-
-#include <media/videobuf-core.h>
-
-/* --------------------------------------------------------------------- */
-
-/*
- * A small set of helper functions to manage buffers (both userland
- * and kernel) for DMA.
- *
- * videobuf_dma_init_*()
- * creates a buffer. The userland version takes a userspace
- * pointer + length. The kernel version just wants the size and
- * does memory allocation too using vmalloc_32().
- *
- * videobuf_dma_*()
- * see Documentation/DMA-API-HOWTO.txt, these functions to
- * basically the same. The map function does also build a
- * scatterlist for the buffer (and unmap frees it ...)
- *
- * videobuf_dma_free()
- * no comment ...
- *
- */
-
-struct videobuf_dmabuf {
- u32 magic;
-
- /* for userland buffer */
- int offset;
- size_t size;
- struct page **pages;
-
- /* for kernel buffers */
- void *vaddr;
-
- /* for overlay buffers (pci-pci dma) */
- dma_addr_t bus_addr;
-
- /* common */
- struct scatterlist *sglist;
- int sglen;
- int nr_pages;
- int direction;
-};
-
-struct videobuf_dma_sg_memory {
- u32 magic;
-
- /* for mmap'ed buffers */
- struct videobuf_dmabuf dma;
-};
-
-/*
- * Scatter-gather DMA buffer API.
- *
- * These functions provide a simple way to create a page list and a
- * scatter-gather list from a kernel, userspace of physical address and map the
- * memory for DMA operation.
- *
- * Despite the name, this is totally unrelated to videobuf, except that
- * videobuf-dma-sg uses the same API internally.
- */
-void videobuf_dma_init(struct videobuf_dmabuf *dma);
-int videobuf_dma_init_user(struct videobuf_dmabuf *dma, int direction,
- unsigned long data, unsigned long size);
-int videobuf_dma_init_kernel(struct videobuf_dmabuf *dma, int direction,
- int nr_pages);
-int videobuf_dma_init_overlay(struct videobuf_dmabuf *dma, int direction,
- dma_addr_t addr, int nr_pages);
-int videobuf_dma_free(struct videobuf_dmabuf *dma);
-
-int videobuf_dma_map(struct device *dev, struct videobuf_dmabuf *dma);
-int videobuf_dma_unmap(struct device *dev, struct videobuf_dmabuf *dma);
-struct videobuf_dmabuf *videobuf_to_dma(struct videobuf_buffer *buf);
-
-void *videobuf_sg_alloc(size_t size);
-
-void videobuf_queue_sg_init(struct videobuf_queue *q,
- const struct videobuf_queue_ops *ops,
- struct device *dev,
- spinlock_t *irqlock,
- enum v4l2_buf_type type,
- enum v4l2_field field,
- unsigned int msize,
- void *priv,
- struct mutex *ext_lock);
-
-#endif /* _VIDEOBUF_DMA_SG_H */
-
diff --git a/ANDROID_3.4.5/include/media/videobuf-dvb.h b/ANDROID_3.4.5/include/media/videobuf-dvb.h
deleted file mode 100644
index bf365721..00000000
--- a/ANDROID_3.4.5/include/media/videobuf-dvb.h
+++ /dev/null
@@ -1,66 +0,0 @@
-#include <dvbdev.h>
-#include <dmxdev.h>
-#include <dvb_demux.h>
-#include <dvb_net.h>
-#include <dvb_frontend.h>
-
-#ifndef _VIDEOBUF_DVB_H_
-#define _VIDEOBUF_DVB_H_
-
-struct videobuf_dvb {
- /* filling that the job of the driver */
- char *name;
- struct dvb_frontend *frontend;
- struct videobuf_queue dvbq;
-
- /* video-buf-dvb state info */
- struct mutex lock;
- struct task_struct *thread;
- int nfeeds;
-
- /* videobuf_dvb_(un)register manges this */
- struct dvb_demux demux;
- struct dmxdev dmxdev;
- struct dmx_frontend fe_hw;
- struct dmx_frontend fe_mem;
- struct dvb_net net;
-};
-
-struct videobuf_dvb_frontend {
- struct list_head felist;
- int id;
- struct videobuf_dvb dvb;
-};
-
-struct videobuf_dvb_frontends {
- struct list_head felist;
- struct mutex lock;
- struct dvb_adapter adapter;
- int active_fe_id; /* Indicates which frontend in the felist is in use */
- int gate; /* Frontend with gate control 0=!MFE,1=fe0,2=fe1 etc */
-};
-
-int videobuf_dvb_register_bus(struct videobuf_dvb_frontends *f,
- struct module *module,
- void *adapter_priv,
- struct device *device,
- short *adapter_nr,
- int mfe_shared,
- int (*fe_ioctl_override)(struct dvb_frontend *,
- unsigned int, void *, unsigned int));
-
-void videobuf_dvb_unregister_bus(struct videobuf_dvb_frontends *f);
-
-struct videobuf_dvb_frontend * videobuf_dvb_alloc_frontend(struct videobuf_dvb_frontends *f, int id);
-void videobuf_dvb_dealloc_frontends(struct videobuf_dvb_frontends *f);
-
-struct videobuf_dvb_frontend * videobuf_dvb_get_frontend(struct videobuf_dvb_frontends *f, int id);
-int videobuf_dvb_find_frontend(struct videobuf_dvb_frontends *f, struct dvb_frontend *p);
-
-#endif /* _VIDEOBUF_DVB_H_ */
-
-/*
- * Local variables:
- * c-basic-offset: 8
- * End:
- */
diff --git a/ANDROID_3.4.5/include/media/videobuf-vmalloc.h b/ANDROID_3.4.5/include/media/videobuf-vmalloc.h
deleted file mode 100644
index 486a97ef..00000000
--- a/ANDROID_3.4.5/include/media/videobuf-vmalloc.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * helper functions for vmalloc capture buffers
- *
- * The functions expect the hardware being able to scatter gather
- * (i.e. the buffers are not linear in physical memory, but fragmented
- * into PAGE_SIZE chunks). They also assume the driver does not need
- * to touch the video data.
- *
- * (c) 2007 Mauro Carvalho Chehab, <mchehab@infradead.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
- */
-#ifndef _VIDEOBUF_VMALLOC_H
-#define _VIDEOBUF_VMALLOC_H
-
-#include <media/videobuf-core.h>
-
-/* --------------------------------------------------------------------- */
-
-struct videobuf_vmalloc_memory {
- u32 magic;
-
- void *vaddr;
-
- /* remap_vmalloc_range seems to need to run
- * after mmap() on some cases */
- struct vm_area_struct *vma;
-};
-
-void videobuf_queue_vmalloc_init(struct videobuf_queue *q,
- const struct videobuf_queue_ops *ops,
- struct device *dev,
- spinlock_t *irqlock,
- enum v4l2_buf_type type,
- enum v4l2_field field,
- unsigned int msize,
- void *priv,
- struct mutex *ext_lock);
-
-void *videobuf_to_vmalloc(struct videobuf_buffer *buf);
-
-void videobuf_vmalloc_free(struct videobuf_buffer *buf);
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/videobuf2-core.h b/ANDROID_3.4.5/include/media/videobuf2-core.h
deleted file mode 100644
index a15d1f1b..00000000
--- a/ANDROID_3.4.5/include/media/videobuf2-core.h
+++ /dev/null
@@ -1,407 +0,0 @@
-/*
- * videobuf2-core.h - V4L2 driver helper framework
- *
- * Copyright (C) 2010 Samsung Electronics
- *
- * Author: Pawel Osciak <pawel@osciak.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.
- */
-#ifndef _MEDIA_VIDEOBUF2_CORE_H
-#define _MEDIA_VIDEOBUF2_CORE_H
-
-#include <linux/mm_types.h>
-#include <linux/mutex.h>
-#include <linux/poll.h>
-#include <linux/videodev2.h>
-
-struct vb2_alloc_ctx;
-struct vb2_fileio_data;
-
-/**
- * struct vb2_mem_ops - memory handling/memory allocator operations
- * @alloc: allocate video memory and, optionally, allocator private data,
- * return NULL on failure or a pointer to allocator private,
- * per-buffer data on success; the returned private structure
- * will then be passed as buf_priv argument to other ops in this
- * structure
- * @put: inform the allocator that the buffer will no longer be used;
- * usually will result in the allocator freeing the buffer (if
- * no other users of this buffer are present); the buf_priv
- * argument is the allocator private per-buffer structure
- * previously returned from the alloc callback
- * @get_userptr: acquire userspace memory for a hardware operation; used for
- * USERPTR memory types; vaddr is the address passed to the
- * videobuf layer when queuing a video buffer of USERPTR type;
- * should return an allocator private per-buffer structure
- * associated with the buffer on success, NULL on failure;
- * the returned private structure will then be passed as buf_priv
- * argument to other ops in this structure
- * @put_userptr: inform the allocator that a USERPTR buffer will no longer
- * be used
- * @vaddr: return a kernel virtual address to a given memory buffer
- * associated with the passed private structure or NULL if no
- * such mapping exists
- * @cookie: return allocator specific cookie for a given memory buffer
- * associated with the passed private structure or NULL if not
- * available
- * @num_users: return the current number of users of a memory buffer;
- * return 1 if the videobuf layer (or actually the driver using
- * it) is the only user
- * @mmap: setup a userspace mapping for a given memory buffer under
- * the provided virtual memory region
- *
- * Required ops for USERPTR types: get_userptr, put_userptr.
- * Required ops for MMAP types: alloc, put, num_users, mmap.
- * Required ops for read/write access types: alloc, put, num_users, vaddr
- */
-struct vb2_mem_ops {
- void *(*alloc)(void *alloc_ctx, unsigned long size);
- void (*put)(void *buf_priv);
-
- void *(*get_userptr)(void *alloc_ctx, unsigned long vaddr,
- unsigned long size, int write);
- void (*put_userptr)(void *buf_priv);
-
- void *(*vaddr)(void *buf_priv);
- void *(*cookie)(void *buf_priv);
-
- unsigned int (*num_users)(void *buf_priv);
-
- int (*mmap)(void *buf_priv, struct vm_area_struct *vma);
-};
-
-struct vb2_plane {
- void *mem_priv;
-};
-
-/**
- * enum vb2_io_modes - queue access methods
- * @VB2_MMAP: driver supports MMAP with streaming API
- * @VB2_USERPTR: driver supports USERPTR with streaming API
- * @VB2_READ: driver supports read() style access
- * @VB2_WRITE: driver supports write() style access
- */
-enum vb2_io_modes {
- VB2_MMAP = (1 << 0),
- VB2_USERPTR = (1 << 1),
- VB2_READ = (1 << 2),
- VB2_WRITE = (1 << 3),
-};
-
-/**
- * enum vb2_fileio_flags - flags for selecting a mode of the file io emulator,
- * by default the 'streaming' style is used by the file io emulator
- * @VB2_FILEIO_READ_ONCE: report EOF after reading the first buffer
- * @VB2_FILEIO_WRITE_IMMEDIATELY: queue buffer after each write() call
- */
-enum vb2_fileio_flags {
- VB2_FILEIO_READ_ONCE = (1 << 0),
- VB2_FILEIO_WRITE_IMMEDIATELY = (1 << 1),
-};
-
-/**
- * enum vb2_buffer_state - current video buffer state
- * @VB2_BUF_STATE_DEQUEUED: buffer under userspace control
- * @VB2_BUF_STATE_PREPARED: buffer prepared in videobuf and by the driver
- * @VB2_BUF_STATE_QUEUED: buffer queued in videobuf, but not in driver
- * @VB2_BUF_STATE_ACTIVE: buffer queued in driver and possibly used
- * in a hardware operation
- * @VB2_BUF_STATE_DONE: buffer returned from driver to videobuf, but
- * not yet dequeued to userspace
- * @VB2_BUF_STATE_ERROR: same as above, but the operation on the buffer
- * has ended with an error, which will be reported
- * to the userspace when it is dequeued
- */
-enum vb2_buffer_state {
- VB2_BUF_STATE_DEQUEUED,
- VB2_BUF_STATE_PREPARED,
- VB2_BUF_STATE_QUEUED,
- VB2_BUF_STATE_ACTIVE,
- VB2_BUF_STATE_DONE,
- VB2_BUF_STATE_ERROR,
-};
-
-struct vb2_queue;
-
-/**
- * struct vb2_buffer - represents a video buffer
- * @v4l2_buf: struct v4l2_buffer associated with this buffer; can
- * be read by the driver and relevant entries can be
- * changed by the driver in case of CAPTURE types
- * (such as timestamp)
- * @v4l2_planes: struct v4l2_planes associated with this buffer; can
- * be read by the driver and relevant entries can be
- * changed by the driver in case of CAPTURE types
- * (such as bytesused); NOTE that even for single-planar
- * types, the v4l2_planes[0] struct should be used
- * instead of v4l2_buf for filling bytesused - drivers
- * should use the vb2_set_plane_payload() function for that
- * @vb2_queue: the queue to which this driver belongs
- * @num_planes: number of planes in the buffer
- * on an internal driver queue
- * @state: current buffer state; do not change
- * @queued_entry: entry on the queued buffers list, which holds all
- * buffers queued from userspace
- * @done_entry: entry on the list that stores all buffers ready to
- * be dequeued to userspace
- * @planes: private per-plane information; do not change
- */
-struct vb2_buffer {
- struct v4l2_buffer v4l2_buf;
- struct v4l2_plane v4l2_planes[VIDEO_MAX_PLANES];
-
- struct vb2_queue *vb2_queue;
-
- unsigned int num_planes;
-
-/* Private: internal use only */
- enum vb2_buffer_state state;
-
- struct list_head queued_entry;
- struct list_head done_entry;
-
- struct vb2_plane planes[VIDEO_MAX_PLANES];
-};
-
-/**
- * struct vb2_ops - driver-specific callbacks
- *
- * @queue_setup: called from VIDIOC_REQBUFS and VIDIOC_CREATE_BUFS
- * handlers before memory allocation, or, if
- * *num_planes != 0, after the allocation to verify a
- * smaller number of buffers. Driver should return
- * the required number of buffers in *num_buffers, the
- * required number of planes per buffer in *num_planes; the
- * size of each plane should be set in the sizes[] array
- * and optional per-plane allocator specific context in the
- * alloc_ctxs[] array. When called from VIDIOC_REQBUFS,
- * fmt == NULL, the driver has to use the currently
- * configured format and *num_buffers is the total number
- * of buffers, that are being allocated. When called from
- * VIDIOC_CREATE_BUFS, fmt != NULL and it describes the
- * target frame format. In this case *num_buffers are being
- * allocated additionally to q->num_buffers.
- * @wait_prepare: release any locks taken while calling vb2 functions;
- * it is called before an ioctl needs to wait for a new
- * buffer to arrive; required to avoid a deadlock in
- * blocking access type
- * @wait_finish: reacquire all locks released in the previous callback;
- * required to continue operation after sleeping while
- * waiting for a new buffer to arrive
- * @buf_init: called once after allocating a buffer (in MMAP case)
- * or after acquiring a new USERPTR buffer; drivers may
- * perform additional buffer-related initialization;
- * initialization failure (return != 0) will prevent
- * queue setup from completing successfully; optional
- * @buf_prepare: called every time the buffer is queued from userspace
- * and from the VIDIOC_PREPARE_BUF ioctl; drivers may
- * perform any initialization required before each hardware
- * operation in this callback; if an error is returned, the
- * buffer will not be queued in driver; optional
- * @buf_finish: called before every dequeue of the buffer back to
- * userspace; drivers may perform any operations required
- * before userspace accesses the buffer; optional
- * @buf_cleanup: called once before the buffer is freed; drivers may
- * perform any additional cleanup; optional
- * @start_streaming: called once to enter 'streaming' state; the driver may
- * receive buffers with @buf_queue callback before
- * @start_streaming is called; the driver gets the number
- * of already queued buffers in count parameter; driver
- * can return an error if hardware fails or not enough
- * buffers has been queued, in such case all buffers that
- * have been already given by the @buf_queue callback are
- * invalidated.
- * @stop_streaming: called when 'streaming' state must be disabled; driver
- * should stop any DMA transactions or wait until they
- * finish and give back all buffers it got from buf_queue()
- * callback; may use vb2_wait_for_all_buffers() function
- * @buf_queue: passes buffer vb to the driver; driver may start
- * hardware operation on this buffer; driver should give
- * the buffer back by calling vb2_buffer_done() function;
- * it is allways called after calling STREAMON ioctl;
- * might be called before start_streaming callback if user
- * pre-queued buffers before calling STREAMON
- */
-struct vb2_ops {
- int (*queue_setup)(struct vb2_queue *q, const struct v4l2_format *fmt,
- unsigned int *num_buffers, unsigned int *num_planes,
- unsigned int sizes[], void *alloc_ctxs[]);
-
- void (*wait_prepare)(struct vb2_queue *q);
- void (*wait_finish)(struct vb2_queue *q);
-
- int (*buf_init)(struct vb2_buffer *vb);
- int (*buf_prepare)(struct vb2_buffer *vb);
- int (*buf_finish)(struct vb2_buffer *vb);
- void (*buf_cleanup)(struct vb2_buffer *vb);
-
- int (*start_streaming)(struct vb2_queue *q, unsigned int count);
- int (*stop_streaming)(struct vb2_queue *q);
-
- void (*buf_queue)(struct vb2_buffer *vb);
-};
-
-/**
- * struct vb2_queue - a videobuf queue
- *
- * @type: queue type (see V4L2_BUF_TYPE_* in linux/videodev2.h
- * @io_modes: supported io methods (see vb2_io_modes enum)
- * @io_flags: additional io flags (see vb2_fileio_flags enum)
- * @ops: driver-specific callbacks
- * @mem_ops: memory allocator specific callbacks
- * @drv_priv: driver private data
- * @buf_struct_size: size of the driver-specific buffer structure;
- * "0" indicates the driver doesn't want to use a custom buffer
- * structure type, so sizeof(struct vb2_buffer) will is used
- *
- * @memory: current memory type used
- * @bufs: videobuf buffer structures
- * @num_buffers: number of allocated/used buffers
- * @queued_list: list of buffers currently queued from userspace
- * @queued_count: number of buffers owned by the driver
- * @done_list: list of buffers ready to be dequeued to userspace
- * @done_lock: lock to protect done_list list
- * @done_wq: waitqueue for processes waiting for buffers ready to be dequeued
- * @alloc_ctx: memory type/allocator-specific contexts for each plane
- * @streaming: current streaming state
- * @fileio: file io emulator internal data, used only if emulator is active
- */
-struct vb2_queue {
- enum v4l2_buf_type type;
- unsigned int io_modes;
- unsigned int io_flags;
-
- const struct vb2_ops *ops;
- const struct vb2_mem_ops *mem_ops;
- void *drv_priv;
- unsigned int buf_struct_size;
-
-/* private: internal use only */
- enum v4l2_memory memory;
- struct vb2_buffer *bufs[VIDEO_MAX_FRAME];
- unsigned int num_buffers;
-
- struct list_head queued_list;
-
- atomic_t queued_count;
- struct list_head done_list;
- spinlock_t done_lock;
- wait_queue_head_t done_wq;
-
- void *alloc_ctx[VIDEO_MAX_PLANES];
- unsigned int plane_sizes[VIDEO_MAX_PLANES];
-
- unsigned int streaming:1;
-
- struct vb2_fileio_data *fileio;
-};
-
-void *vb2_plane_vaddr(struct vb2_buffer *vb, unsigned int plane_no);
-void *vb2_plane_cookie(struct vb2_buffer *vb, unsigned int plane_no);
-
-void vb2_buffer_done(struct vb2_buffer *vb, enum vb2_buffer_state state);
-int vb2_wait_for_all_buffers(struct vb2_queue *q);
-
-int vb2_querybuf(struct vb2_queue *q, struct v4l2_buffer *b);
-int vb2_reqbufs(struct vb2_queue *q, struct v4l2_requestbuffers *req);
-
-int vb2_create_bufs(struct vb2_queue *q, struct v4l2_create_buffers *create);
-int vb2_prepare_buf(struct vb2_queue *q, struct v4l2_buffer *b);
-
-int vb2_queue_init(struct vb2_queue *q);
-
-void vb2_queue_release(struct vb2_queue *q);
-
-int vb2_qbuf(struct vb2_queue *q, struct v4l2_buffer *b);
-int vb2_dqbuf(struct vb2_queue *q, struct v4l2_buffer *b, bool nonblocking);
-
-int vb2_streamon(struct vb2_queue *q, enum v4l2_buf_type type);
-int vb2_streamoff(struct vb2_queue *q, enum v4l2_buf_type type);
-
-int vb2_mmap(struct vb2_queue *q, struct vm_area_struct *vma);
-#ifndef CONFIG_MMU
-unsigned long vb2_get_unmapped_area(struct vb2_queue *q,
- unsigned long addr,
- unsigned long len,
- unsigned long pgoff,
- unsigned long flags);
-#endif
-unsigned int vb2_poll(struct vb2_queue *q, struct file *file, poll_table *wait);
-size_t vb2_read(struct vb2_queue *q, char __user *data, size_t count,
- loff_t *ppos, int nonblock);
-size_t vb2_write(struct vb2_queue *q, char __user *data, size_t count,
- loff_t *ppos, int nonblock);
-
-/**
- * vb2_is_streaming() - return streaming status of the queue
- * @q: videobuf queue
- */
-static inline bool vb2_is_streaming(struct vb2_queue *q)
-{
- return q->streaming;
-}
-
-/**
- * vb2_is_busy() - return busy status of the queue
- * @q: videobuf queue
- *
- * This function checks if queue has any buffers allocated.
- */
-static inline bool vb2_is_busy(struct vb2_queue *q)
-{
- return (q->num_buffers > 0);
-}
-
-/**
- * vb2_get_drv_priv() - return driver private data associated with the queue
- * @q: videobuf queue
- */
-static inline void *vb2_get_drv_priv(struct vb2_queue *q)
-{
- return q->drv_priv;
-}
-
-/**
- * vb2_set_plane_payload() - set bytesused for the plane plane_no
- * @vb: buffer for which plane payload should be set
- * @plane_no: plane number for which payload should be set
- * @size: payload in bytes
- */
-static inline void vb2_set_plane_payload(struct vb2_buffer *vb,
- unsigned int plane_no, unsigned long size)
-{
- if (plane_no < vb->num_planes)
- vb->v4l2_planes[plane_no].bytesused = size;
-}
-
-/**
- * vb2_get_plane_payload() - get bytesused for the plane plane_no
- * @vb: buffer for which plane payload should be set
- * @plane_no: plane number for which payload should be set
- * @size: payload in bytes
- */
-static inline unsigned long vb2_get_plane_payload(struct vb2_buffer *vb,
- unsigned int plane_no)
-{
- if (plane_no < vb->num_planes)
- return vb->v4l2_planes[plane_no].bytesused;
- return 0;
-}
-
-/**
- * vb2_plane_size() - return plane size in bytes
- * @vb: buffer for which plane size should be returned
- * @plane_no: plane number for which size should be returned
- */
-static inline unsigned long
-vb2_plane_size(struct vb2_buffer *vb, unsigned int plane_no)
-{
- if (plane_no < vb->num_planes)
- return vb->v4l2_planes[plane_no].length;
- return 0;
-}
-
-#endif /* _MEDIA_VIDEOBUF2_CORE_H */
diff --git a/ANDROID_3.4.5/include/media/videobuf2-dma-contig.h b/ANDROID_3.4.5/include/media/videobuf2-dma-contig.h
deleted file mode 100644
index 19ae1e35..00000000
--- a/ANDROID_3.4.5/include/media/videobuf2-dma-contig.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * videobuf2-dma-coherent.h - DMA coherent memory allocator for videobuf2
- *
- * Copyright (C) 2010 Samsung Electronics
- *
- * Author: Pawel Osciak <pawel@osciak.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.
- */
-
-#ifndef _MEDIA_VIDEOBUF2_DMA_COHERENT_H
-#define _MEDIA_VIDEOBUF2_DMA_COHERENT_H
-
-#include <media/videobuf2-core.h>
-#include <linux/dma-mapping.h>
-
-static inline dma_addr_t
-vb2_dma_contig_plane_dma_addr(struct vb2_buffer *vb, unsigned int plane_no)
-{
- dma_addr_t *addr = vb2_plane_cookie(vb, plane_no);
-
- return *addr;
-}
-
-void *vb2_dma_contig_init_ctx(struct device *dev);
-void vb2_dma_contig_cleanup_ctx(void *alloc_ctx);
-
-extern const struct vb2_mem_ops vb2_dma_contig_memops;
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/videobuf2-dma-sg.h b/ANDROID_3.4.5/include/media/videobuf2-dma-sg.h
deleted file mode 100644
index 0038526b..00000000
--- a/ANDROID_3.4.5/include/media/videobuf2-dma-sg.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * videobuf2-dma-sg.h - DMA scatter/gather memory allocator for videobuf2
- *
- * Copyright (C) 2010 Samsung Electronics
- *
- * Author: Andrzej Pietrasiewicz <andrzej.p@samsung.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.
- */
-
-#ifndef _MEDIA_VIDEOBUF2_DMA_SG_H
-#define _MEDIA_VIDEOBUF2_DMA_SG_H
-
-#include <media/videobuf2-core.h>
-
-struct vb2_dma_sg_desc {
- unsigned long size;
- unsigned int num_pages;
- struct scatterlist *sglist;
-};
-
-static inline struct vb2_dma_sg_desc *vb2_dma_sg_plane_desc(
- struct vb2_buffer *vb, unsigned int plane_no)
-{
- return (struct vb2_dma_sg_desc *)vb2_plane_cookie(vb, plane_no);
-}
-
-extern const struct vb2_mem_ops vb2_dma_sg_memops;
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/videobuf2-memops.h b/ANDROID_3.4.5/include/media/videobuf2-memops.h
deleted file mode 100644
index 84e1f6c0..00000000
--- a/ANDROID_3.4.5/include/media/videobuf2-memops.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * videobuf2-memops.h - generic memory handling routines for videobuf2
- *
- * Copyright (C) 2010 Samsung Electronics
- *
- * Author: Pawel Osciak <pawel@osciak.com>
- * Marek Szyprowski <m.szyprowski@samsung.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.
- */
-
-#ifndef _MEDIA_VIDEOBUF2_MEMOPS_H
-#define _MEDIA_VIDEOBUF2_MEMOPS_H
-
-#include <media/videobuf2-core.h>
-
-/**
- * vb2_vmarea_handler - common vma refcount tracking handler
- * @refcount: pointer to refcount entry in the buffer
- * @put: callback to function that decreases buffer refcount
- * @arg: argument for @put callback
- */
-struct vb2_vmarea_handler {
- atomic_t *refcount;
- void (*put)(void *arg);
- void *arg;
-};
-
-extern const struct vm_operations_struct vb2_common_vm_ops;
-
-int vb2_get_contig_userptr(unsigned long vaddr, unsigned long size,
- struct vm_area_struct **res_vma, dma_addr_t *res_pa);
-
-int vb2_mmap_pfn_range(struct vm_area_struct *vma, unsigned long paddr,
- unsigned long size,
- const struct vm_operations_struct *vm_ops,
- void *priv);
-
-struct vm_area_struct *vb2_get_vma(struct vm_area_struct *vma);
-void vb2_put_vma(struct vm_area_struct *vma);
-
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/videobuf2-vmalloc.h b/ANDROID_3.4.5/include/media/videobuf2-vmalloc.h
deleted file mode 100644
index 93a76b43..00000000
--- a/ANDROID_3.4.5/include/media/videobuf2-vmalloc.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * videobuf2-vmalloc.h - vmalloc memory allocator for videobuf2
- *
- * Copyright (C) 2010 Samsung Electronics
- *
- * Author: Pawel Osciak <pawel@osciak.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.
- */
-
-#ifndef _MEDIA_VIDEOBUF2_VMALLOC_H
-#define _MEDIA_VIDEOBUF2_VMALLOC_H
-
-#include <media/videobuf2-core.h>
-
-extern const struct vb2_mem_ops vb2_vmalloc_memops;
-
-#endif
diff --git a/ANDROID_3.4.5/include/media/wm8775.h b/ANDROID_3.4.5/include/media/wm8775.h
deleted file mode 100644
index d0e801a9..00000000
--- a/ANDROID_3.4.5/include/media/wm8775.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- wm8775.h - definition for wm8775 inputs and outputs
-
- Copyright (C) 2006 Hans Verkuil (hverkuil@xs4all.nl)
-
- 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
-
-#ifndef _WM8775_H_
-#define _WM8775_H_
-
-/* The WM8775 has 4 inputs and one output. Zero or more inputs
- are multiplexed together to the output. Hence there are
- 16 combinations.
- If only one input is active (the normal case) then the
- input values 1, 2, 4 or 8 should be used. */
-
-#define WM8775_AIN1 1
-#define WM8775_AIN2 2
-#define WM8775_AIN3 4
-#define WM8775_AIN4 8
-
-
-struct wm8775_platform_data {
- /*
- * FIXME: Instead, we should parametrize the params
- * that need different settings between ivtv, pvrusb2, and Nova-S
- */
- bool is_nova_s;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/misc/altera.h b/ANDROID_3.4.5/include/misc/altera.h
deleted file mode 100644
index 94c0c618..00000000
--- a/ANDROID_3.4.5/include/misc/altera.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * altera.h
- *
- * altera FPGA driver
- *
- * Copyright (C) Altera Corporation 1998-2001
- * Copyright (C) 2010 NetUP Inc.
- * Copyright (C) 2010 Igor M. Liplianin <liplianin@netup.ru>
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef _ALTERA_H_
-#define _ALTERA_H_
-
-struct altera_config {
- void *dev;
- u8 *action;
- int (*jtag_io) (void *dev, int tms, int tdi, int tdo);
-};
-
-#if defined(CONFIG_ALTERA_STAPL) || \
- (defined(CONFIG_ALTERA_STAPL_MODULE) && defined(MODULE))
-
-extern int altera_init(struct altera_config *config, const struct firmware *fw);
-#else
-
-static inline int altera_init(struct altera_config *config,
- const struct firmware *fw)
-{
- printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
- return 0;
-}
-#endif /* CONFIG_ALTERA_STAPL */
-
-#endif /* _ALTERA_H_ */
diff --git a/ANDROID_3.4.5/include/mtd/Kbuild b/ANDROID_3.4.5/include/mtd/Kbuild
deleted file mode 100644
index 192f8fb7..00000000
--- a/ANDROID_3.4.5/include/mtd/Kbuild
+++ /dev/null
@@ -1,5 +0,0 @@
-header-y += inftl-user.h
-header-y += mtd-abi.h
-header-y += mtd-user.h
-header-y += nftl-user.h
-header-y += ubi-user.h
diff --git a/ANDROID_3.4.5/include/mtd/inftl-user.h b/ANDROID_3.4.5/include/mtd/inftl-user.h
deleted file mode 100644
index 8376bd1a..00000000
--- a/ANDROID_3.4.5/include/mtd/inftl-user.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Parts of INFTL headers shared with userspace
- *
- */
-
-#ifndef __MTD_INFTL_USER_H__
-#define __MTD_INFTL_USER_H__
-
-#include <linux/types.h>
-
-#define OSAK_VERSION 0x5120
-#define PERCENTUSED 98
-
-#define SECTORSIZE 512
-
-/* Block Control Information */
-
-struct inftl_bci {
- __u8 ECCsig[6];
- __u8 Status;
- __u8 Status1;
-} __attribute__((packed));
-
-struct inftl_unithead1 {
- __u16 virtualUnitNo;
- __u16 prevUnitNo;
- __u8 ANAC;
- __u8 NACs;
- __u8 parityPerField;
- __u8 discarded;
-} __attribute__((packed));
-
-struct inftl_unithead2 {
- __u8 parityPerField;
- __u8 ANAC;
- __u16 prevUnitNo;
- __u16 virtualUnitNo;
- __u8 NACs;
- __u8 discarded;
-} __attribute__((packed));
-
-struct inftl_unittail {
- __u8 Reserved[4];
- __u16 EraseMark;
- __u16 EraseMark1;
-} __attribute__((packed));
-
-union inftl_uci {
- struct inftl_unithead1 a;
- struct inftl_unithead2 b;
- struct inftl_unittail c;
-};
-
-struct inftl_oob {
- struct inftl_bci b;
- union inftl_uci u;
-};
-
-
-/* INFTL Media Header */
-
-struct INFTLPartition {
- __u32 virtualUnits;
- __u32 firstUnit;
- __u32 lastUnit;
- __u32 flags;
- __u32 spareUnits;
- __u32 Reserved0;
- __u32 Reserved1;
-} __attribute__((packed));
-
-struct INFTLMediaHeader {
- char bootRecordID[8];
- __u32 NoOfBootImageBlocks;
- __u32 NoOfBinaryPartitions;
- __u32 NoOfBDTLPartitions;
- __u32 BlockMultiplierBits;
- __u32 FormatFlags;
- __u32 OsakVersion;
- __u32 PercentUsed;
- struct INFTLPartition Partitions[4];
-} __attribute__((packed));
-
-/* Partition flag types */
-#define INFTL_BINARY 0x20000000
-#define INFTL_BDTL 0x40000000
-#define INFTL_LAST 0x80000000
-
-#endif /* __MTD_INFTL_USER_H__ */
-
-
diff --git a/ANDROID_3.4.5/include/mtd/mtd-abi.h b/ANDROID_3.4.5/include/mtd/mtd-abi.h
deleted file mode 100644
index fd098721..00000000
--- a/ANDROID_3.4.5/include/mtd/mtd-abi.h
+++ /dev/null
@@ -1,302 +0,0 @@
-/*
- * Copyright © 1999-2010 David Woodhouse <dwmw2@infradead.org> et al.
- *
- * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef __MTD_ABI_H__
-#define __MTD_ABI_H__
-
-#include <linux/types.h>
-
-struct erase_info_user {
- __u32 start;
- __u32 length;
-};
-
-struct erase_info_user64 {
- __u64 start;
- __u64 length;
-};
-
-struct mtd_oob_buf {
- __u32 start;
- __u32 length;
- unsigned char __user *ptr;
-};
-
-struct mtd_oob_buf64 {
- __u64 start;
- __u32 pad;
- __u32 length;
- __u64 usr_ptr;
-};
-
-/**
- * MTD operation modes
- *
- * @MTD_OPS_PLACE_OOB: OOB data are placed at the given offset (default)
- * @MTD_OPS_AUTO_OOB: OOB data are automatically placed at the free areas
- * which are defined by the internal ecclayout
- * @MTD_OPS_RAW: data are transferred as-is, with no error correction;
- * this mode implies %MTD_OPS_PLACE_OOB
- *
- * These modes can be passed to ioctl(MEMWRITE) and are also used internally.
- * See notes on "MTD file modes" for discussion on %MTD_OPS_RAW vs.
- * %MTD_FILE_MODE_RAW.
- */
-enum {
- MTD_OPS_PLACE_OOB = 0,
- MTD_OPS_AUTO_OOB = 1,
- MTD_OPS_RAW = 2,
-};
-
-/**
- * struct mtd_write_req - data structure for requesting a write operation
- *
- * @start: start address
- * @len: length of data buffer
- * @ooblen: length of OOB buffer
- * @usr_data: user-provided data buffer
- * @usr_oob: user-provided OOB buffer
- * @mode: MTD mode (see "MTD operation modes")
- * @padding: reserved, must be set to 0
- *
- * This structure supports ioctl(MEMWRITE) operations, allowing data and/or OOB
- * writes in various modes. To write to OOB-only, set @usr_data == NULL, and to
- * write data-only, set @usr_oob == NULL. However, setting both @usr_data and
- * @usr_oob to NULL is not allowed.
- */
-struct mtd_write_req {
- __u64 start;
- __u64 len;
- __u64 ooblen;
- __u64 usr_data;
- __u64 usr_oob;
- __u8 mode;
- __u8 padding[7];
-};
-
-#define MTD_ABSENT 0
-#define MTD_RAM 1
-#define MTD_ROM 2
-#define MTD_NORFLASH 3
-#define MTD_NANDFLASH 4
-#define MTD_DATAFLASH 6
-#define MTD_UBIVOLUME 7
-#define MTD_MLCNANDFLASH 8
-
-#define MTD_WRITEABLE 0x400 /* Device is writeable */
-#define MTD_BIT_WRITEABLE 0x800 /* Single bits can be flipped */
-#define MTD_NO_ERASE 0x1000 /* No erase necessary */
-#define MTD_POWERUP_LOCK 0x2000 /* Always locked after reset */
-
-/* Some common devices / combinations of capabilities */
-#define MTD_CAP_ROM 0
-#define MTD_CAP_RAM (MTD_WRITEABLE | MTD_BIT_WRITEABLE | MTD_NO_ERASE)
-#define MTD_CAP_NORFLASH (MTD_WRITEABLE | MTD_BIT_WRITEABLE)
-#define MTD_CAP_NANDFLASH (MTD_WRITEABLE)
-
-/* Obsolete ECC byte placement modes (used with obsolete MEMGETOOBSEL) */
-#define MTD_NANDECC_OFF 0 // Switch off ECC (Not recommended)
-#define MTD_NANDECC_PLACE 1 // Use the given placement in the structure (YAFFS1 legacy mode)
-#define MTD_NANDECC_AUTOPLACE 2 // Use the default placement scheme
-#define MTD_NANDECC_PLACEONLY 3 // Use the given placement in the structure (Do not store ecc result on read)
-#define MTD_NANDECC_AUTOPL_USR 4 // Use the given autoplacement scheme rather than using the default
-
-/* OTP mode selection */
-#define MTD_OTP_OFF 0
-#define MTD_OTP_FACTORY 1
-#define MTD_OTP_USER 2
-
-struct mtd_info_user {
- __u8 type;
- __u32 flags;
- __u32 size; /* Total size of the MTD */
- __u32 erasesize;
- __u32 writesize;
- __u32 oobsize; /* Amount of OOB data per block (e.g. 16) */
- __u64 padding; /* Old obsolete field; do not use */
-};
-
-struct region_info_user {
- __u32 offset; /* At which this region starts,
- * from the beginning of the MTD */
- __u32 erasesize; /* For this region */
- __u32 numblocks; /* Number of blocks in this region */
- __u32 regionindex;
-};
-
-struct otp_info {
- __u32 start;
- __u32 length;
- __u32 locked;
-};
-
-struct env_info_user {
- char varname[200];
- char *varpoint;
- char varval[512];
- int varlen;
-};
-
-enum {
- SIGNED_IMAGE_TYPE_WLOAD,
- SIGNED_IMAGE_TYPE_UBOOT,
- SIGNED_IMAGE_TYPE_UBOOT_ENV,
-};
-
-struct write_signed_image {
- int type;
- char * img_data;
- int img_len;
- char * sig_data;
- int sig_len;
- int flags; /* == 0 now */
-};
-/*
- * Note, the following ioctl existed in the past and was removed:
- * #define MEMSETOOBSEL _IOW('M', 9, struct nand_oobinfo)
- * Try to avoid adding a new ioctl with the same ioctl number.
- */
-
-/* Get basic MTD characteristics info (better to use sysfs) */
-#define MEMGETINFO _IOR('M', 1, struct mtd_info_user)
-/* Erase segment of MTD */
-#define MEMERASE _IOW('M', 2, struct erase_info_user)
-/* Write out-of-band data from MTD */
-#define MEMWRITEOOB _IOWR('M', 3, struct mtd_oob_buf)
-/* Read out-of-band data from MTD */
-#define MEMREADOOB _IOWR('M', 4, struct mtd_oob_buf)
-/* Lock a chip (for MTD that supports it) */
-#define MEMLOCK _IOW('M', 5, struct erase_info_user)
-/* Unlock a chip (for MTD that supports it) */
-#define MEMUNLOCK _IOW('M', 6, struct erase_info_user)
-/* Get the number of different erase regions */
-#define MEMGETREGIONCOUNT _IOR('M', 7, int)
-/* Get information about the erase region for a specific index */
-#define MEMGETREGIONINFO _IOWR('M', 8, struct region_info_user)
-/* Get info about OOB modes (e.g., RAW, PLACE, AUTO) - legacy interface */
-#define MEMGETOOBSEL _IOR('M', 10, struct nand_oobinfo)
-/* Check if an eraseblock is bad */
-#define MEMGETBADBLOCK _IOW('M', 11, __kernel_loff_t)
-/* Mark an eraseblock as bad */
-#define MEMSETBADBLOCK _IOW('M', 12, __kernel_loff_t)
-/* Set OTP (One-Time Programmable) mode (factory vs. user) */
-#define OTPSELECT _IOR('M', 13, int)
-/* Get number of OTP (One-Time Programmable) regions */
-#define OTPGETREGIONCOUNT _IOW('M', 14, int)
-/* Get all OTP (One-Time Programmable) info about MTD */
-#define OTPGETREGIONINFO _IOW('M', 15, struct otp_info)
-/* Lock a given range of user data (must be in mode %MTD_FILE_MODE_OTP_USER) */
-#define OTPLOCK _IOR('M', 16, struct otp_info)
-/* Get ECC layout (deprecated) */
-#define ECCGETLAYOUT _IOR('M', 17, struct nand_ecclayout_user)
-/* Get statistics about corrected/uncorrected errors */
-#define ECCGETSTATS _IOR('M', 18, struct mtd_ecc_stats)
-/* Set MTD mode on a per-file-descriptor basis (see "MTD file modes") */
-#define MTDFILEMODE _IO('M', 19)
-/* Erase segment of MTD (supports 64-bit address) */
-#define MEMERASE64 _IOW('M', 20, struct erase_info_user64)
-/* Write data to OOB (64-bit version) */
-#define MEMWRITEOOB64 _IOWR('M', 21, struct mtd_oob_buf64)
-/* Read data from OOB (64-bit version) */
-#define MEMREADOOB64 _IOWR('M', 22, struct mtd_oob_buf64)
-/* Check if chip is locked (for MTD that supports it) */
-#define MEMISLOCKED _IOR('M', 23, struct erase_info_user)
-/*
- * Most generic write interface; can write in-band and/or out-of-band in various
- * modes (see "struct mtd_write_req"). This ioctl is not supported for flashes
- * without OOB, e.g., NOR flash.
- */
-#define MEMWRITE _IOWR('M', 24, struct mtd_write_req)
-#define MEMGETENV _IOR('M', 128, struct env_info_user)
-#define MEMSETENV _IOR('M', 129, struct env_info_user)
-#define MEM_WRITE_SIGNED_IMAGE _IOR('M', 130, struct write_signed_image)
-
-/*
- * Obsolete legacy interface. Keep it in order not to break userspace
- * interfaces
- */
-struct nand_oobinfo {
- __u32 useecc;
- __u32 eccbytes;
- __u32 oobfree[8][2];
- __u32 eccpos[32];
-};
-
-struct nand_oobfree {
- __u32 offset;
- __u32 length;
-};
-
-#define MTD_MAX_OOBFREE_ENTRIES 8
-#define MTD_MAX_ECCPOS_ENTRIES 64
-/*
- * OBSOLETE: ECC layout control structure. Exported to user-space via ioctl
- * ECCGETLAYOUT for backwards compatbility and should not be mistaken as a
- * complete set of ECC information. The ioctl truncates the larger internal
- * structure to retain binary compatibility with the static declaration of the
- * ioctl. Note that the "MTD_MAX_..._ENTRIES" macros represent the max size of
- * the user struct, not the MAX size of the internal struct nand_ecclayout.
- */
-struct nand_ecclayout_user {
- __u32 eccbytes;
- __u32 eccpos[MTD_MAX_ECCPOS_ENTRIES];
- __u32 oobavail;
- struct nand_oobfree oobfree[MTD_MAX_OOBFREE_ENTRIES];
-};
-
-/**
- * struct mtd_ecc_stats - error correction stats
- *
- * @corrected: number of corrected bits
- * @failed: number of uncorrectable errors
- * @badblocks: number of bad blocks in this partition
- * @bbtblocks: number of blocks reserved for bad block tables
- */
-struct mtd_ecc_stats {
- __u32 corrected;
- __u32 failed;
- __u32 badblocks;
- __u32 bbtblocks;
-};
-
-/*
- * MTD file modes - for read/write access to MTD
- *
- * @MTD_FILE_MODE_NORMAL: OTP disabled, ECC enabled
- * @MTD_FILE_MODE_OTP_FACTORY: OTP enabled in factory mode
- * @MTD_FILE_MODE_OTP_USER: OTP enabled in user mode
- * @MTD_FILE_MODE_RAW: OTP disabled, ECC disabled
- *
- * These modes can be set via ioctl(MTDFILEMODE). The mode mode will be retained
- * separately for each open file descriptor.
- *
- * Note: %MTD_FILE_MODE_RAW provides the same functionality as %MTD_OPS_RAW -
- * raw access to the flash, without error correction or autoplacement schemes.
- * Wherever possible, the MTD_OPS_* mode will override the MTD_FILE_MODE_* mode
- * (e.g., when using ioctl(MEMWRITE)), but in some cases, the MTD_FILE_MODE is
- * used out of necessity (e.g., `write()', ioctl(MEMWRITEOOB64)).
- */
-enum mtd_file_modes {
- MTD_FILE_MODE_NORMAL = MTD_OTP_OFF,
- MTD_FILE_MODE_OTP_FACTORY = MTD_OTP_FACTORY,
- MTD_FILE_MODE_OTP_USER = MTD_OTP_USER,
- MTD_FILE_MODE_RAW,
-};
-
-#endif /* __MTD_ABI_H__ */
diff --git a/ANDROID_3.4.5/include/mtd/mtd-user.h b/ANDROID_3.4.5/include/mtd/mtd-user.h
deleted file mode 100644
index d1ddd4a8..00000000
--- a/ANDROID_3.4.5/include/mtd/mtd-user.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright © 1999-2010 David Woodhouse <dwmw2@infradead.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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef __MTD_USER_H__
-#define __MTD_USER_H__
-
-#include <stdint.h>
-
-/* This file is blessed for inclusion by userspace */
-#include <mtd/mtd-abi.h>
-
-typedef struct mtd_info_user mtd_info_t;
-typedef struct erase_info_user erase_info_t;
-typedef struct region_info_user region_info_t;
-typedef struct nand_oobinfo nand_oobinfo_t;
-typedef struct nand_ecclayout_user nand_ecclayout_t;
-typedef struct env_info_user env_data_t;
-
-#endif /* __MTD_USER_H__ */
diff --git a/ANDROID_3.4.5/include/mtd/nftl-user.h b/ANDROID_3.4.5/include/mtd/nftl-user.h
deleted file mode 100644
index bdeabd86..00000000
--- a/ANDROID_3.4.5/include/mtd/nftl-user.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright © 1999-2010 David Woodhouse <dwmw2@infradead.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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef __MTD_NFTL_USER_H__
-#define __MTD_NFTL_USER_H__
-
-#include <linux/types.h>
-
-/* Block Control Information */
-
-struct nftl_bci {
- unsigned char ECCSig[6];
- __u8 Status;
- __u8 Status1;
-}__attribute__((packed));
-
-/* Unit Control Information */
-
-struct nftl_uci0 {
- __u16 VirtUnitNum;
- __u16 ReplUnitNum;
- __u16 SpareVirtUnitNum;
- __u16 SpareReplUnitNum;
-} __attribute__((packed));
-
-struct nftl_uci1 {
- __u32 WearInfo;
- __u16 EraseMark;
- __u16 EraseMark1;
-} __attribute__((packed));
-
-struct nftl_uci2 {
- __u16 FoldMark;
- __u16 FoldMark1;
- __u32 unused;
-} __attribute__((packed));
-
-union nftl_uci {
- struct nftl_uci0 a;
- struct nftl_uci1 b;
- struct nftl_uci2 c;
-};
-
-struct nftl_oob {
- struct nftl_bci b;
- union nftl_uci u;
-};
-
-/* NFTL Media Header */
-
-struct NFTLMediaHeader {
- char DataOrgID[6];
- __u16 NumEraseUnits;
- __u16 FirstPhysicalEUN;
- __u32 FormattedSize;
- unsigned char UnitSizeFactor;
-} __attribute__((packed));
-
-#define MAX_ERASE_ZONES (8192 - 512)
-
-#define ERASE_MARK 0x3c69
-#define SECTOR_FREE 0xff
-#define SECTOR_USED 0x55
-#define SECTOR_IGNORE 0x11
-#define SECTOR_DELETED 0x00
-
-#define FOLD_MARK_IN_PROGRESS 0x5555
-
-#define ZONE_GOOD 0xff
-#define ZONE_BAD_ORIGINAL 0
-#define ZONE_BAD_MARKED 7
-
-
-#endif /* __MTD_NFTL_USER_H__ */
diff --git a/ANDROID_3.4.5/include/mtd/ubi-user.h b/ANDROID_3.4.5/include/mtd/ubi-user.h
deleted file mode 100644
index ae9230a9..00000000
--- a/ANDROID_3.4.5/include/mtd/ubi-user.h
+++ /dev/null
@@ -1,415 +0,0 @@
-/*
- * Copyright © International Business Machines Corp., 2006
- *
- * 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
- *
- * Author: Artem Bityutskiy (Битюцкий Артём)
- */
-
-#ifndef __UBI_USER_H__
-#define __UBI_USER_H__
-
-#include <linux/types.h>
-
-/*
- * UBI device creation (the same as MTD device attachment)
- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- *
- * MTD devices may be attached using %UBI_IOCATT ioctl command of the UBI
- * control device. The caller has to properly fill and pass
- * &struct ubi_attach_req object - UBI will attach the MTD device specified in
- * the request and return the newly created UBI device number as the ioctl
- * return value.
- *
- * UBI device deletion (the same as MTD device detachment)
- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- *
- * An UBI device maybe deleted with %UBI_IOCDET ioctl command of the UBI
- * control device.
- *
- * UBI volume creation
- * ~~~~~~~~~~~~~~~~~~~
- *
- * UBI volumes are created via the %UBI_IOCMKVOL ioctl command of UBI character
- * device. A &struct ubi_mkvol_req object has to be properly filled and a
- * pointer to it has to be passed to the ioctl.
- *
- * UBI volume deletion
- * ~~~~~~~~~~~~~~~~~~~
- *
- * To delete a volume, the %UBI_IOCRMVOL ioctl command of the UBI character
- * device should be used. A pointer to the 32-bit volume ID hast to be passed
- * to the ioctl.
- *
- * UBI volume re-size
- * ~~~~~~~~~~~~~~~~~~
- *
- * To re-size a volume, the %UBI_IOCRSVOL ioctl command of the UBI character
- * device should be used. A &struct ubi_rsvol_req object has to be properly
- * filled and a pointer to it has to be passed to the ioctl.
- *
- * UBI volumes re-name
- * ~~~~~~~~~~~~~~~~~~~
- *
- * To re-name several volumes atomically at one go, the %UBI_IOCRNVOL command
- * of the UBI character device should be used. A &struct ubi_rnvol_req object
- * has to be properly filled and a pointer to it has to be passed to the ioctl.
- *
- * UBI volume update
- * ~~~~~~~~~~~~~~~~~
- *
- * Volume update should be done via the %UBI_IOCVOLUP ioctl command of the
- * corresponding UBI volume character device. A pointer to a 64-bit update
- * size should be passed to the ioctl. After this, UBI expects user to write
- * this number of bytes to the volume character device. The update is finished
- * when the claimed number of bytes is passed. So, the volume update sequence
- * is something like:
- *
- * fd = open("/dev/my_volume");
- * ioctl(fd, UBI_IOCVOLUP, &image_size);
- * write(fd, buf, image_size);
- * close(fd);
- *
- * Logical eraseblock erase
- * ~~~~~~~~~~~~~~~~~~~~~~~~
- *
- * To erase a logical eraseblock, the %UBI_IOCEBER ioctl command of the
- * corresponding UBI volume character device should be used. This command
- * unmaps the requested logical eraseblock, makes sure the corresponding
- * physical eraseblock is successfully erased, and returns.
- *
- * Atomic logical eraseblock change
- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- *
- * Atomic logical eraseblock change operation is called using the %UBI_IOCEBCH
- * ioctl command of the corresponding UBI volume character device. A pointer to
- * a &struct ubi_leb_change_req object has to be passed to the ioctl. Then the
- * user is expected to write the requested amount of bytes (similarly to what
- * should be done in case of the "volume update" ioctl).
- *
- * Logical eraseblock map
- * ~~~~~~~~~~~~~~~~~~~~~
- *
- * To map a logical eraseblock to a physical eraseblock, the %UBI_IOCEBMAP
- * ioctl command should be used. A pointer to a &struct ubi_map_req object is
- * expected to be passed. The ioctl maps the requested logical eraseblock to
- * a physical eraseblock and returns. Only non-mapped logical eraseblocks can
- * be mapped. If the logical eraseblock specified in the request is already
- * mapped to a physical eraseblock, the ioctl fails and returns error.
- *
- * Logical eraseblock unmap
- * ~~~~~~~~~~~~~~~~~~~~~~~~
- *
- * To unmap a logical eraseblock to a physical eraseblock, the %UBI_IOCEBUNMAP
- * ioctl command should be used. The ioctl unmaps the logical eraseblocks,
- * schedules corresponding physical eraseblock for erasure, and returns. Unlike
- * the "LEB erase" command, it does not wait for the physical eraseblock being
- * erased. Note, the side effect of this is that if an unclean reboot happens
- * after the unmap ioctl returns, you may find the LEB mapped again to the same
- * physical eraseblock after the UBI is run again.
- *
- * Check if logical eraseblock is mapped
- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- *
- * To check if a logical eraseblock is mapped to a physical eraseblock, the
- * %UBI_IOCEBISMAP ioctl command should be used. It returns %0 if the LEB is
- * not mapped, and %1 if it is mapped.
- *
- * Set an UBI volume property
- * ~~~~~~~~~~~~~~~~~~~~~~~~~
- *
- * To set an UBI volume property the %UBI_IOCSETPROP ioctl command should be
- * used. A pointer to a &struct ubi_set_vol_prop_req object is expected to be
- * passed. The object describes which property should be set, and to which value
- * it should be set.
- */
-
-/*
- * When a new UBI volume or UBI device is created, users may either specify the
- * volume/device number they want to create or to let UBI automatically assign
- * the number using these constants.
- */
-#define UBI_VOL_NUM_AUTO (-1)
-#define UBI_DEV_NUM_AUTO (-1)
-
-/* Maximum volume name length */
-#define UBI_MAX_VOLUME_NAME 127
-
-/* ioctl commands of UBI character devices */
-
-#define UBI_IOC_MAGIC 'o'
-
-/* Create an UBI volume */
-#define UBI_IOCMKVOL _IOW(UBI_IOC_MAGIC, 0, struct ubi_mkvol_req)
-/* Remove an UBI volume */
-#define UBI_IOCRMVOL _IOW(UBI_IOC_MAGIC, 1, __s32)
-/* Re-size an UBI volume */
-#define UBI_IOCRSVOL _IOW(UBI_IOC_MAGIC, 2, struct ubi_rsvol_req)
-/* Re-name volumes */
-#define UBI_IOCRNVOL _IOW(UBI_IOC_MAGIC, 3, struct ubi_rnvol_req)
-
-/* ioctl commands of the UBI control character device */
-
-#define UBI_CTRL_IOC_MAGIC 'o'
-
-/* Attach an MTD device */
-#define UBI_IOCATT _IOW(UBI_CTRL_IOC_MAGIC, 64, struct ubi_attach_req)
-/* Detach an MTD device */
-#define UBI_IOCDET _IOW(UBI_CTRL_IOC_MAGIC, 65, __s32)
-
-/* ioctl commands of UBI volume character devices */
-
-#define UBI_VOL_IOC_MAGIC 'O'
-
-/* Start UBI volume update */
-#define UBI_IOCVOLUP _IOW(UBI_VOL_IOC_MAGIC, 0, __s64)
-/* LEB erasure command, used for debugging, disabled by default */
-#define UBI_IOCEBER _IOW(UBI_VOL_IOC_MAGIC, 1, __s32)
-/* Atomic LEB change command */
-#define UBI_IOCEBCH _IOW(UBI_VOL_IOC_MAGIC, 2, __s32)
-/* Map LEB command */
-#define UBI_IOCEBMAP _IOW(UBI_VOL_IOC_MAGIC, 3, struct ubi_map_req)
-/* Unmap LEB command */
-#define UBI_IOCEBUNMAP _IOW(UBI_VOL_IOC_MAGIC, 4, __s32)
-/* Check if LEB is mapped command */
-#define UBI_IOCEBISMAP _IOR(UBI_VOL_IOC_MAGIC, 5, __s32)
-/* Set an UBI volume property */
-#define UBI_IOCSETVOLPROP _IOW(UBI_VOL_IOC_MAGIC, 6, \
- struct ubi_set_vol_prop_req)
-
-/* Maximum MTD device name length supported by UBI */
-#define MAX_UBI_MTD_NAME_LEN 127
-
-/* Maximum amount of UBI volumes that can be re-named at one go */
-#define UBI_MAX_RNVOL 32
-
-/*
- * UBI data type hint constants.
- *
- * UBI_LONGTERM: long-term data
- * UBI_SHORTTERM: short-term data
- * UBI_UNKNOWN: data persistence is unknown
- *
- * These constants are used when data is written to UBI volumes in order to
- * help the UBI wear-leveling unit to find more appropriate physical
- * eraseblocks.
- */
-enum {
- UBI_LONGTERM = 1,
- UBI_SHORTTERM = 2,
- UBI_UNKNOWN = 3,
-};
-
-/*
- * UBI volume type constants.
- *
- * @UBI_DYNAMIC_VOLUME: dynamic volume
- * @UBI_STATIC_VOLUME: static volume
- */
-enum {
- UBI_DYNAMIC_VOLUME = 3,
- UBI_STATIC_VOLUME = 4,
-};
-
-/*
- * UBI set volume property ioctl constants.
- *
- * @UBI_VOL_PROP_DIRECT_WRITE: allow (any non-zero value) or disallow (value 0)
- * user to directly write and erase individual
- * eraseblocks on dynamic volumes
- */
-enum {
- UBI_VOL_PROP_DIRECT_WRITE = 1,
-};
-
-/**
- * struct ubi_attach_req - attach MTD device request.
- * @ubi_num: UBI device number to create
- * @mtd_num: MTD device number to attach
- * @vid_hdr_offset: VID header offset (use defaults if %0)
- * @padding: reserved for future, not used, has to be zeroed
- *
- * This data structure is used to specify MTD device UBI has to attach and the
- * parameters it has to use. The number which should be assigned to the new UBI
- * device is passed in @ubi_num. UBI may automatically assign the number if
- * @UBI_DEV_NUM_AUTO is passed. In this case, the device number is returned in
- * @ubi_num.
- *
- * Most applications should pass %0 in @vid_hdr_offset to make UBI use default
- * offset of the VID header within physical eraseblocks. The default offset is
- * the next min. I/O unit after the EC header. For example, it will be offset
- * 512 in case of a 512 bytes page NAND flash with no sub-page support. Or
- * it will be 512 in case of a 2KiB page NAND flash with 4 512-byte sub-pages.
- *
- * But in rare cases, if this optimizes things, the VID header may be placed to
- * a different offset. For example, the boot-loader might do things faster if
- * the VID header sits at the end of the first 2KiB NAND page with 4 sub-pages.
- * As the boot-loader would not normally need to read EC headers (unless it
- * needs UBI in RW mode), it might be faster to calculate ECC. This is weird
- * example, but it real-life example. So, in this example, @vid_hdr_offer would
- * be 2KiB-64 bytes = 1984. Note, that this position is not even 512-bytes
- * aligned, which is OK, as UBI is clever enough to realize this is 4th
- * sub-page of the first page and add needed padding.
- */
-struct ubi_attach_req {
- __s32 ubi_num;
- __s32 mtd_num;
- __s32 vid_hdr_offset;
- __s16 max_beb_per1024;
- __s8 padding[10];
-};
-
-/**
- * struct ubi_mkvol_req - volume description data structure used in
- * volume creation requests.
- * @vol_id: volume number
- * @alignment: volume alignment
- * @bytes: volume size in bytes
- * @vol_type: volume type (%UBI_DYNAMIC_VOLUME or %UBI_STATIC_VOLUME)
- * @padding1: reserved for future, not used, has to be zeroed
- * @name_len: volume name length
- * @padding2: reserved for future, not used, has to be zeroed
- * @name: volume name
- *
- * This structure is used by user-space programs when creating new volumes. The
- * @used_bytes field is only necessary when creating static volumes.
- *
- * The @alignment field specifies the required alignment of the volume logical
- * eraseblock. This means, that the size of logical eraseblocks will be aligned
- * to this number, i.e.,
- * (UBI device logical eraseblock size) mod (@alignment) = 0.
- *
- * To put it differently, the logical eraseblock of this volume may be slightly
- * shortened in order to make it properly aligned. The alignment has to be
- * multiple of the flash minimal input/output unit, or %1 to utilize the entire
- * available space of logical eraseblocks.
- *
- * The @alignment field may be useful, for example, when one wants to maintain
- * a block device on top of an UBI volume. In this case, it is desirable to fit
- * an integer number of blocks in logical eraseblocks of this UBI volume. With
- * alignment it is possible to update this volume using plane UBI volume image
- * BLOBs, without caring about how to properly align them.
- */
-struct ubi_mkvol_req {
- __s32 vol_id;
- __s32 alignment;
- __s64 bytes;
- __s8 vol_type;
- __s8 padding1;
- __s16 name_len;
- __s8 padding2[4];
- char name[UBI_MAX_VOLUME_NAME + 1];
-} __packed;
-
-/**
- * struct ubi_rsvol_req - a data structure used in volume re-size requests.
- * @vol_id: ID of the volume to re-size
- * @bytes: new size of the volume in bytes
- *
- * Re-sizing is possible for both dynamic and static volumes. But while dynamic
- * volumes may be re-sized arbitrarily, static volumes cannot be made to be
- * smaller than the number of bytes they bear. To arbitrarily shrink a static
- * volume, it must be wiped out first (by means of volume update operation with
- * zero number of bytes).
- */
-struct ubi_rsvol_req {
- __s64 bytes;
- __s32 vol_id;
-} __packed;
-
-/**
- * struct ubi_rnvol_req - volumes re-name request.
- * @count: count of volumes to re-name
- * @padding1: reserved for future, not used, has to be zeroed
- * @vol_id: ID of the volume to re-name
- * @name_len: name length
- * @padding2: reserved for future, not used, has to be zeroed
- * @name: new volume name
- *
- * UBI allows to re-name up to %32 volumes at one go. The count of volumes to
- * re-name is specified in the @count field. The ID of the volumes to re-name
- * and the new names are specified in the @vol_id and @name fields.
- *
- * The UBI volume re-name operation is atomic, which means that should power cut
- * happen, the volumes will have either old name or new name. So the possible
- * use-cases of this command is atomic upgrade. Indeed, to upgrade, say, volumes
- * A and B one may create temporary volumes %A1 and %B1 with the new contents,
- * then atomically re-name A1->A and B1->B, in which case old %A and %B will
- * be removed.
- *
- * If it is not desirable to remove old A and B, the re-name request has to
- * contain 4 entries: A1->A, A->A1, B1->B, B->B1, in which case old A1 and B1
- * become A and B, and old A and B will become A1 and B1.
- *
- * It is also OK to request: A1->A, A1->X, B1->B, B->Y, in which case old A1
- * and B1 become A and B, and old A and B become X and Y.
- *
- * In other words, in case of re-naming into an existing volume name, the
- * existing volume is removed, unless it is re-named as well at the same
- * re-name request.
- */
-struct ubi_rnvol_req {
- __s32 count;
- __s8 padding1[12];
- struct {
- __s32 vol_id;
- __s16 name_len;
- __s8 padding2[2];
- char name[UBI_MAX_VOLUME_NAME + 1];
- } ents[UBI_MAX_RNVOL];
-} __packed;
-
-/**
- * struct ubi_leb_change_req - a data structure used in atomic LEB change
- * requests.
- * @lnum: logical eraseblock number to change
- * @bytes: how many bytes will be written to the logical eraseblock
- * @dtype: data type (%UBI_LONGTERM, %UBI_SHORTTERM, %UBI_UNKNOWN)
- * @padding: reserved for future, not used, has to be zeroed
- */
-struct ubi_leb_change_req {
- __s32 lnum;
- __s32 bytes;
- __s8 dtype;
- __s8 padding[7];
-} __packed;
-
-/**
- * struct ubi_map_req - a data structure used in map LEB requests.
- * @lnum: logical eraseblock number to unmap
- * @dtype: data type (%UBI_LONGTERM, %UBI_SHORTTERM, %UBI_UNKNOWN)
- * @padding: reserved for future, not used, has to be zeroed
- */
-struct ubi_map_req {
- __s32 lnum;
- __s8 dtype;
- __s8 padding[3];
-} __packed;
-
-
-/**
- * struct ubi_set_vol_prop_req - a data structure used to set an UBI volume
- * property.
- * @property: property to set (%UBI_VOL_PROP_DIRECT_WRITE)
- * @padding: reserved for future, not used, has to be zeroed
- * @value: value to set
- */
-struct ubi_set_vol_prop_req {
- __u8 property;
- __u8 padding[7];
- __u64 value;
-} __packed;
-
-#endif /* __UBI_USER_H__ */
diff --git a/ANDROID_3.4.5/include/net/9p/9p.h b/ANDROID_3.4.5/include/net/9p/9p.h
deleted file mode 100644
index 7184853c..00000000
--- a/ANDROID_3.4.5/include/net/9p/9p.h
+++ /dev/null
@@ -1,577 +0,0 @@
-/*
- * include/net/9p/9p.h
- *
- * 9P protocol definitions.
- *
- * Copyright (C) 2005 by Latchesar Ionkov <lucho@ionkov.net>
- * Copyright (C) 2004 by Eric Van Hensbergen <ericvh@gmail.com>
- * Copyright (C) 2002 by Ron Minnich <rminnich@lanl.gov>
- *
- * 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.
- *
- * 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:
- * Free Software Foundation
- * 51 Franklin Street, Fifth Floor
- * Boston, MA 02111-1301 USA
- *
- */
-
-#ifndef NET_9P_H
-#define NET_9P_H
-
-/**
- * enum p9_debug_flags - bits for mount time debug parameter
- * @P9_DEBUG_ERROR: more verbose error messages including original error string
- * @P9_DEBUG_9P: 9P protocol tracing
- * @P9_DEBUG_VFS: VFS API tracing
- * @P9_DEBUG_CONV: protocol conversion tracing
- * @P9_DEBUG_MUX: trace management of concurrent transactions
- * @P9_DEBUG_TRANS: transport tracing
- * @P9_DEBUG_SLABS: memory management tracing
- * @P9_DEBUG_FCALL: verbose dump of protocol messages
- * @P9_DEBUG_FID: fid allocation/deallocation tracking
- * @P9_DEBUG_PKT: packet marshalling/unmarshalling
- * @P9_DEBUG_FSC: FS-cache tracing
- * @P9_DEBUG_VPKT: Verbose packet debugging (full packet dump)
- *
- * These flags are passed at mount time to turn on various levels of
- * verbosity and tracing which will be output to the system logs.
- */
-
-enum p9_debug_flags {
- P9_DEBUG_ERROR = (1<<0),
- P9_DEBUG_9P = (1<<2),
- P9_DEBUG_VFS = (1<<3),
- P9_DEBUG_CONV = (1<<4),
- P9_DEBUG_MUX = (1<<5),
- P9_DEBUG_TRANS = (1<<6),
- P9_DEBUG_SLABS = (1<<7),
- P9_DEBUG_FCALL = (1<<8),
- P9_DEBUG_FID = (1<<9),
- P9_DEBUG_PKT = (1<<10),
- P9_DEBUG_FSC = (1<<11),
- P9_DEBUG_VPKT = (1<<12),
-};
-
-#ifdef CONFIG_NET_9P_DEBUG
-extern unsigned int p9_debug_level;
-__printf(3, 4)
-void _p9_debug(enum p9_debug_flags level, const char *func,
- const char *fmt, ...);
-#define p9_debug(level, fmt, ...) \
- _p9_debug(level, __func__, fmt, ##__VA_ARGS__)
-#else
-#define p9_debug(level, fmt, ...) \
- no_printk(fmt, ##__VA_ARGS__)
-#endif
-
-/**
- * enum p9_msg_t - 9P message types
- * @P9_TLERROR: not used
- * @P9_RLERROR: response for any failed request for 9P2000.L
- * @P9_TSTATFS: file system status request
- * @P9_RSTATFS: file system status response
- * @P9_TSYMLINK: make symlink request
- * @P9_RSYMLINK: make symlink response
- * @P9_TMKNOD: create a special file object request
- * @P9_RMKNOD: create a special file object response
- * @P9_TLCREATE: prepare a handle for I/O on an new file for 9P2000.L
- * @P9_RLCREATE: response with file access information for 9P2000.L
- * @P9_TRENAME: rename request
- * @P9_RRENAME: rename response
- * @P9_TMKDIR: create a directory request
- * @P9_RMKDIR: create a directory response
- * @P9_TVERSION: version handshake request
- * @P9_RVERSION: version handshake response
- * @P9_TAUTH: request to establish authentication channel
- * @P9_RAUTH: response with authentication information
- * @P9_TATTACH: establish user access to file service
- * @P9_RATTACH: response with top level handle to file hierarchy
- * @P9_TERROR: not used
- * @P9_RERROR: response for any failed request
- * @P9_TFLUSH: request to abort a previous request
- * @P9_RFLUSH: response when previous request has been cancelled
- * @P9_TWALK: descend a directory hierarchy
- * @P9_RWALK: response with new handle for position within hierarchy
- * @P9_TOPEN: prepare a handle for I/O on an existing file
- * @P9_ROPEN: response with file access information
- * @P9_TCREATE: prepare a handle for I/O on a new file
- * @P9_RCREATE: response with file access information
- * @P9_TREAD: request to transfer data from a file or directory
- * @P9_RREAD: response with data requested
- * @P9_TWRITE: reuqest to transfer data to a file
- * @P9_RWRITE: response with out much data was transferred to file
- * @P9_TCLUNK: forget about a handle to an entity within the file system
- * @P9_RCLUNK: response when server has forgotten about the handle
- * @P9_TREMOVE: request to remove an entity from the hierarchy
- * @P9_RREMOVE: response when server has removed the entity
- * @P9_TSTAT: request file entity attributes
- * @P9_RSTAT: response with file entity attributes
- * @P9_TWSTAT: request to update file entity attributes
- * @P9_RWSTAT: response when file entity attributes are updated
- *
- * There are 14 basic operations in 9P2000, paired as
- * requests and responses. The one special case is ERROR
- * as there is no @P9_TERROR request for clients to transmit to
- * the server, but the server may respond to any other request
- * with an @P9_RERROR.
- *
- * See Also: http://plan9.bell-labs.com/sys/man/5/INDEX.html
- */
-
-enum p9_msg_t {
- P9_TLERROR = 6,
- P9_RLERROR,
- P9_TSTATFS = 8,
- P9_RSTATFS,
- P9_TLOPEN = 12,
- P9_RLOPEN,
- P9_TLCREATE = 14,
- P9_RLCREATE,
- P9_TSYMLINK = 16,
- P9_RSYMLINK,
- P9_TMKNOD = 18,
- P9_RMKNOD,
- P9_TRENAME = 20,
- P9_RRENAME,
- P9_TREADLINK = 22,
- P9_RREADLINK,
- P9_TGETATTR = 24,
- P9_RGETATTR,
- P9_TSETATTR = 26,
- P9_RSETATTR,
- P9_TXATTRWALK = 30,
- P9_RXATTRWALK,
- P9_TXATTRCREATE = 32,
- P9_RXATTRCREATE,
- P9_TREADDIR = 40,
- P9_RREADDIR,
- P9_TFSYNC = 50,
- P9_RFSYNC,
- P9_TLOCK = 52,
- P9_RLOCK,
- P9_TGETLOCK = 54,
- P9_RGETLOCK,
- P9_TLINK = 70,
- P9_RLINK,
- P9_TMKDIR = 72,
- P9_RMKDIR,
- P9_TRENAMEAT = 74,
- P9_RRENAMEAT,
- P9_TUNLINKAT = 76,
- P9_RUNLINKAT,
- P9_TVERSION = 100,
- P9_RVERSION,
- P9_TAUTH = 102,
- P9_RAUTH,
- P9_TATTACH = 104,
- P9_RATTACH,
- P9_TERROR = 106,
- P9_RERROR,
- P9_TFLUSH = 108,
- P9_RFLUSH,
- P9_TWALK = 110,
- P9_RWALK,
- P9_TOPEN = 112,
- P9_ROPEN,
- P9_TCREATE = 114,
- P9_RCREATE,
- P9_TREAD = 116,
- P9_RREAD,
- P9_TWRITE = 118,
- P9_RWRITE,
- P9_TCLUNK = 120,
- P9_RCLUNK,
- P9_TREMOVE = 122,
- P9_RREMOVE,
- P9_TSTAT = 124,
- P9_RSTAT,
- P9_TWSTAT = 126,
- P9_RWSTAT,
-};
-
-/**
- * enum p9_open_mode_t - 9P open modes
- * @P9_OREAD: open file for reading only
- * @P9_OWRITE: open file for writing only
- * @P9_ORDWR: open file for reading or writing
- * @P9_OEXEC: open file for execution
- * @P9_OTRUNC: truncate file to zero-length before opening it
- * @P9_OREXEC: close the file when an exec(2) system call is made
- * @P9_ORCLOSE: remove the file when the file is closed
- * @P9_OAPPEND: open the file and seek to the end
- * @P9_OEXCL: only create a file, do not open it
- *
- * 9P open modes differ slightly from Posix standard modes.
- * In particular, there are extra modes which specify different
- * semantic behaviors than may be available on standard Posix
- * systems. For example, @P9_OREXEC and @P9_ORCLOSE are modes that
- * most likely will not be issued from the Linux VFS client, but may
- * be supported by servers.
- *
- * See Also: http://plan9.bell-labs.com/magic/man2html/2/open
- */
-
-enum p9_open_mode_t {
- P9_OREAD = 0x00,
- P9_OWRITE = 0x01,
- P9_ORDWR = 0x02,
- P9_OEXEC = 0x03,
- P9_OTRUNC = 0x10,
- P9_OREXEC = 0x20,
- P9_ORCLOSE = 0x40,
- P9_OAPPEND = 0x80,
- P9_OEXCL = 0x1000,
-};
-
-/**
- * enum p9_perm_t - 9P permissions
- * @P9_DMDIR: mode bit for directories
- * @P9_DMAPPEND: mode bit for is append-only
- * @P9_DMEXCL: mode bit for excluse use (only one open handle allowed)
- * @P9_DMMOUNT: mode bit for mount points
- * @P9_DMAUTH: mode bit for authentication file
- * @P9_DMTMP: mode bit for non-backed-up files
- * @P9_DMSYMLINK: mode bit for symbolic links (9P2000.u)
- * @P9_DMLINK: mode bit for hard-link (9P2000.u)
- * @P9_DMDEVICE: mode bit for device files (9P2000.u)
- * @P9_DMNAMEDPIPE: mode bit for named pipe (9P2000.u)
- * @P9_DMSOCKET: mode bit for socket (9P2000.u)
- * @P9_DMSETUID: mode bit for setuid (9P2000.u)
- * @P9_DMSETGID: mode bit for setgid (9P2000.u)
- * @P9_DMSETVTX: mode bit for sticky bit (9P2000.u)
- *
- * 9P permissions differ slightly from Posix standard modes.
- *
- * See Also: http://plan9.bell-labs.com/magic/man2html/2/stat
- */
-enum p9_perm_t {
- P9_DMDIR = 0x80000000,
- P9_DMAPPEND = 0x40000000,
- P9_DMEXCL = 0x20000000,
- P9_DMMOUNT = 0x10000000,
- P9_DMAUTH = 0x08000000,
- P9_DMTMP = 0x04000000,
-/* 9P2000.u extensions */
- P9_DMSYMLINK = 0x02000000,
- P9_DMLINK = 0x01000000,
- P9_DMDEVICE = 0x00800000,
- P9_DMNAMEDPIPE = 0x00200000,
- P9_DMSOCKET = 0x00100000,
- P9_DMSETUID = 0x00080000,
- P9_DMSETGID = 0x00040000,
- P9_DMSETVTX = 0x00010000,
-};
-
-/* 9p2000.L open flags */
-#define P9_DOTL_RDONLY 00000000
-#define P9_DOTL_WRONLY 00000001
-#define P9_DOTL_RDWR 00000002
-#define P9_DOTL_NOACCESS 00000003
-#define P9_DOTL_CREATE 00000100
-#define P9_DOTL_EXCL 00000200
-#define P9_DOTL_NOCTTY 00000400
-#define P9_DOTL_TRUNC 00001000
-#define P9_DOTL_APPEND 00002000
-#define P9_DOTL_NONBLOCK 00004000
-#define P9_DOTL_DSYNC 00010000
-#define P9_DOTL_FASYNC 00020000
-#define P9_DOTL_DIRECT 00040000
-#define P9_DOTL_LARGEFILE 00100000
-#define P9_DOTL_DIRECTORY 00200000
-#define P9_DOTL_NOFOLLOW 00400000
-#define P9_DOTL_NOATIME 01000000
-#define P9_DOTL_CLOEXEC 02000000
-#define P9_DOTL_SYNC 04000000
-
-/* 9p2000.L at flags */
-#define P9_DOTL_AT_REMOVEDIR 0x200
-
-/* 9p2000.L lock type */
-#define P9_LOCK_TYPE_RDLCK 0
-#define P9_LOCK_TYPE_WRLCK 1
-#define P9_LOCK_TYPE_UNLCK 2
-
-/**
- * enum p9_qid_t - QID types
- * @P9_QTDIR: directory
- * @P9_QTAPPEND: append-only
- * @P9_QTEXCL: excluse use (only one open handle allowed)
- * @P9_QTMOUNT: mount points
- * @P9_QTAUTH: authentication file
- * @P9_QTTMP: non-backed-up files
- * @P9_QTSYMLINK: symbolic links (9P2000.u)
- * @P9_QTLINK: hard-link (9P2000.u)
- * @P9_QTFILE: normal files
- *
- * QID types are a subset of permissions - they are primarily
- * used to differentiate semantics for a file system entity via
- * a jump-table. Their value is also the most significant 16 bits
- * of the permission_t
- *
- * See Also: http://plan9.bell-labs.com/magic/man2html/2/stat
- */
-enum p9_qid_t {
- P9_QTDIR = 0x80,
- P9_QTAPPEND = 0x40,
- P9_QTEXCL = 0x20,
- P9_QTMOUNT = 0x10,
- P9_QTAUTH = 0x08,
- P9_QTTMP = 0x04,
- P9_QTSYMLINK = 0x02,
- P9_QTLINK = 0x01,
- P9_QTFILE = 0x00,
-};
-
-/* 9P Magic Numbers */
-#define P9_NOTAG (u16)(~0)
-#define P9_NOFID (u32)(~0)
-#define P9_MAXWELEM 16
-
-/* ample room for Twrite/Rread header */
-#define P9_IOHDRSZ 24
-
-/* Room for readdir header */
-#define P9_READDIRHDRSZ 24
-
-/* size of header for zero copy read/write */
-#define P9_ZC_HDR_SZ 4096
-
-/**
- * struct p9_qid - file system entity information
- * @type: 8-bit type &p9_qid_t
- * @version: 16-bit monotonically incrementing version number
- * @path: 64-bit per-server-unique ID for a file system element
- *
- * qids are identifiers used by 9P servers to track file system
- * entities. The type is used to differentiate semantics for operations
- * on the entity (ie. read means something different on a directory than
- * on a file). The path provides a server unique index for an entity
- * (roughly analogous to an inode number), while the version is updated
- * every time a file is modified and can be used to maintain cache
- * coherency between clients and serves.
- * Servers will often differentiate purely synthetic entities by setting
- * their version to 0, signaling that they should never be cached and
- * should be accessed synchronously.
- *
- * See Also://plan9.bell-labs.com/magic/man2html/2/stat
- */
-
-struct p9_qid {
- u8 type;
- u32 version;
- u64 path;
-};
-
-/**
- * struct p9_wstat - file system metadata information
- * @size: length prefix for this stat structure instance
- * @type: the type of the server (equivalent to a major number)
- * @dev: the sub-type of the server (equivalent to a minor number)
- * @qid: unique id from the server of type &p9_qid
- * @mode: Plan 9 format permissions of type &p9_perm_t
- * @atime: Last access/read time
- * @mtime: Last modify/write time
- * @length: file length
- * @name: last element of path (aka filename)
- * @uid: owner name
- * @gid: group owner
- * @muid: last modifier
- * @extension: area used to encode extended UNIX support
- * @n_uid: numeric user id of owner (part of 9p2000.u extension)
- * @n_gid: numeric group id (part of 9p2000.u extension)
- * @n_muid: numeric user id of laster modifier (part of 9p2000.u extension)
- *
- * See Also: http://plan9.bell-labs.com/magic/man2html/2/stat
- */
-
-struct p9_wstat {
- u16 size;
- u16 type;
- u32 dev;
- struct p9_qid qid;
- u32 mode;
- u32 atime;
- u32 mtime;
- u64 length;
- char *name;
- char *uid;
- char *gid;
- char *muid;
- char *extension; /* 9p2000.u extensions */
- u32 n_uid; /* 9p2000.u extensions */
- u32 n_gid; /* 9p2000.u extensions */
- u32 n_muid; /* 9p2000.u extensions */
-};
-
-struct p9_stat_dotl {
- u64 st_result_mask;
- struct p9_qid qid;
- u32 st_mode;
- u32 st_uid;
- u32 st_gid;
- u64 st_nlink;
- u64 st_rdev;
- u64 st_size;
- u64 st_blksize;
- u64 st_blocks;
- u64 st_atime_sec;
- u64 st_atime_nsec;
- u64 st_mtime_sec;
- u64 st_mtime_nsec;
- u64 st_ctime_sec;
- u64 st_ctime_nsec;
- u64 st_btime_sec;
- u64 st_btime_nsec;
- u64 st_gen;
- u64 st_data_version;
-};
-
-#define P9_STATS_MODE 0x00000001ULL
-#define P9_STATS_NLINK 0x00000002ULL
-#define P9_STATS_UID 0x00000004ULL
-#define P9_STATS_GID 0x00000008ULL
-#define P9_STATS_RDEV 0x00000010ULL
-#define P9_STATS_ATIME 0x00000020ULL
-#define P9_STATS_MTIME 0x00000040ULL
-#define P9_STATS_CTIME 0x00000080ULL
-#define P9_STATS_INO 0x00000100ULL
-#define P9_STATS_SIZE 0x00000200ULL
-#define P9_STATS_BLOCKS 0x00000400ULL
-
-#define P9_STATS_BTIME 0x00000800ULL
-#define P9_STATS_GEN 0x00001000ULL
-#define P9_STATS_DATA_VERSION 0x00002000ULL
-
-#define P9_STATS_BASIC 0x000007ffULL /* Mask for fields up to BLOCKS */
-#define P9_STATS_ALL 0x00003fffULL /* Mask for All fields above */
-
-/**
- * struct p9_iattr_dotl - P9 inode attribute for setattr
- * @valid: bitfield specifying which fields are valid
- * same as in struct iattr
- * @mode: File permission bits
- * @uid: user id of owner
- * @gid: group id
- * @size: File size
- * @atime_sec: Last access time, seconds
- * @atime_nsec: Last access time, nanoseconds
- * @mtime_sec: Last modification time, seconds
- * @mtime_nsec: Last modification time, nanoseconds
- */
-
-struct p9_iattr_dotl {
- u32 valid;
- u32 mode;
- u32 uid;
- u32 gid;
- u64 size;
- u64 atime_sec;
- u64 atime_nsec;
- u64 mtime_sec;
- u64 mtime_nsec;
-};
-
-#define P9_LOCK_SUCCESS 0
-#define P9_LOCK_BLOCKED 1
-#define P9_LOCK_ERROR 2
-#define P9_LOCK_GRACE 3
-
-#define P9_LOCK_FLAGS_BLOCK 1
-#define P9_LOCK_FLAGS_RECLAIM 2
-
-/* struct p9_flock: POSIX lock structure
- * @type - type of lock
- * @flags - lock flags
- * @start - starting offset of the lock
- * @length - number of bytes
- * @proc_id - process id which wants to take lock
- * @client_id - client id
- */
-
-struct p9_flock {
- u8 type;
- u32 flags;
- u64 start;
- u64 length;
- u32 proc_id;
- char *client_id;
-};
-
-/* struct p9_getlock: getlock structure
- * @type - type of lock
- * @start - starting offset of the lock
- * @length - number of bytes
- * @proc_id - process id which wants to take lock
- * @client_id - client id
- */
-
-struct p9_getlock {
- u8 type;
- u64 start;
- u64 length;
- u32 proc_id;
- char *client_id;
-};
-
-struct p9_rstatfs {
- u32 type;
- u32 bsize;
- u64 blocks;
- u64 bfree;
- u64 bavail;
- u64 files;
- u64 ffree;
- u64 fsid;
- u32 namelen;
-};
-
-/**
- * struct p9_fcall - primary packet structure
- * @size: prefixed length of the structure
- * @id: protocol operating identifier of type &p9_msg_t
- * @tag: transaction id of the request
- * @offset: used by marshalling routines to track current position in buffer
- * @capacity: used by marshalling routines to track total malloc'd capacity
- * @sdata: payload
- *
- * &p9_fcall represents the structure for all 9P RPC
- * transactions. Requests are packaged into fcalls, and reponses
- * must be extracted from them.
- *
- * See Also: http://plan9.bell-labs.com/magic/man2html/2/fcall
- */
-
-struct p9_fcall {
- u32 size;
- u8 id;
- u16 tag;
-
- size_t offset;
- size_t capacity;
-
- u8 *sdata;
-};
-
-struct p9_idpool;
-
-int p9_errstr2errno(char *errstr, int len);
-
-struct p9_idpool *p9_idpool_create(void);
-void p9_idpool_destroy(struct p9_idpool *);
-int p9_idpool_get(struct p9_idpool *p);
-void p9_idpool_put(int id, struct p9_idpool *p);
-int p9_idpool_check(int id, struct p9_idpool *p);
-
-int p9_error_init(void);
-int p9_trans_fd_init(void);
-void p9_trans_fd_exit(void);
-#endif /* NET_9P_H */
diff --git a/ANDROID_3.4.5/include/net/9p/client.h b/ANDROID_3.4.5/include/net/9p/client.h
deleted file mode 100644
index fc9b90b0..00000000
--- a/ANDROID_3.4.5/include/net/9p/client.h
+++ /dev/null
@@ -1,271 +0,0 @@
-/*
- * include/net/9p/client.h
- *
- * 9P Client Definitions
- *
- * Copyright (C) 2008 by Eric Van Hensbergen <ericvh@gmail.com>
- * Copyright (C) 2007 by Latchesar Ionkov <lucho@ionkov.net>
- *
- * 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.
- *
- * 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:
- * Free Software Foundation
- * 51 Franklin Street, Fifth Floor
- * Boston, MA 02111-1301 USA
- *
- */
-
-#ifndef NET_9P_CLIENT_H
-#define NET_9P_CLIENT_H
-
-/* Number of requests per row */
-#define P9_ROW_MAXTAG 255
-
-/** enum p9_proto_versions - 9P protocol versions
- * @p9_proto_legacy: 9P Legacy mode, pre-9P2000.u
- * @p9_proto_2000u: 9P2000.u extension
- * @p9_proto_2000L: 9P2000.L extension
- */
-
-enum p9_proto_versions{
- p9_proto_legacy,
- p9_proto_2000u,
- p9_proto_2000L,
-};
-
-
-/**
- * enum p9_trans_status - different states of underlying transports
- * @Connected: transport is connected and healthy
- * @Disconnected: transport has been disconnected
- * @Hung: transport is connected by wedged
- *
- * This enumeration details the various states a transport
- * instatiation can be in.
- */
-
-enum p9_trans_status {
- Connected,
- BeginDisconnect,
- Disconnected,
- Hung,
-};
-
-/**
- * enum p9_req_status_t - status of a request
- * @REQ_STATUS_IDLE: request slot unused
- * @REQ_STATUS_ALLOC: request has been allocated but not sent
- * @REQ_STATUS_UNSENT: request waiting to be sent
- * @REQ_STATUS_SENT: request sent to server
- * @REQ_STATUS_FLSH: a flush has been sent for this request
- * @REQ_STATUS_RCVD: response received from server
- * @REQ_STATUS_FLSHD: request has been flushed
- * @REQ_STATUS_ERROR: request encountered an error on the client side
- *
- * The @REQ_STATUS_IDLE state is used to mark a request slot as unused
- * but use is actually tracked by the idpool structure which handles tag
- * id allocation.
- *
- */
-
-enum p9_req_status_t {
- REQ_STATUS_IDLE,
- REQ_STATUS_ALLOC,
- REQ_STATUS_UNSENT,
- REQ_STATUS_SENT,
- REQ_STATUS_FLSH,
- REQ_STATUS_RCVD,
- REQ_STATUS_FLSHD,
- REQ_STATUS_ERROR,
-};
-
-/**
- * struct p9_req_t - request slots
- * @status: status of this request slot
- * @t_err: transport error
- * @flush_tag: tag of request being flushed (for flush requests)
- * @wq: wait_queue for the client to block on for this request
- * @tc: the request fcall structure
- * @rc: the response fcall structure
- * @aux: transport specific data (provided for trans_fd migration)
- * @req_list: link for higher level objects to chain requests
- *
- * Transport use an array to track outstanding requests
- * instead of a list. While this may incurr overhead during initial
- * allocation or expansion, it makes request lookup much easier as the
- * tag id is a index into an array. (We use tag+1 so that we can accommodate
- * the -1 tag for the T_VERSION request).
- * This also has the nice effect of only having to allocate wait_queues
- * once, instead of constantly allocating and freeing them. Its possible
- * other resources could benefit from this scheme as well.
- *
- */
-
-struct p9_req_t {
- int status;
- int t_err;
- wait_queue_head_t *wq;
- struct p9_fcall *tc;
- struct p9_fcall *rc;
- void *aux;
-
- struct list_head req_list;
-};
-
-/**
- * struct p9_client - per client instance state
- * @lock: protect @fidlist
- * @msize: maximum data size negotiated by protocol
- * @dotu: extension flags negotiated by protocol
- * @proto_version: 9P protocol version to use
- * @trans_mod: module API instantiated with this client
- * @trans: tranport instance state and API
- * @conn: connection state information used by trans_fd
- * @fidpool: fid handle accounting for session
- * @fidlist: List of active fid handles
- * @tagpool - transaction id accounting for session
- * @reqs - 2D array of requests
- * @max_tag - current maximum tag id allocated
- *
- * The client structure is used to keep track of various per-client
- * state that has been instantiated.
- * In order to minimize per-transaction overhead we use a
- * simple array to lookup requests instead of a hash table
- * or linked list. In order to support larger number of
- * transactions, we make this a 2D array, allocating new rows
- * when we need to grow the total number of the transactions.
- *
- * Each row is 256 requests and we'll support up to 256 rows for
- * a total of 64k concurrent requests per session.
- *
- * Bugs: duplicated data and potentially unnecessary elements.
- */
-
-struct p9_client {
- spinlock_t lock; /* protect client structure */
- unsigned int msize;
- unsigned char proto_version;
- struct p9_trans_module *trans_mod;
- enum p9_trans_status status;
- void *trans;
- struct p9_conn *conn;
-
- struct p9_idpool *fidpool;
- struct list_head fidlist;
-
- struct p9_idpool *tagpool;
- struct p9_req_t *reqs[P9_ROW_MAXTAG];
- int max_tag;
-};
-
-/**
- * struct p9_fid - file system entity handle
- * @clnt: back pointer to instantiating &p9_client
- * @fid: numeric identifier for this handle
- * @mode: current mode of this fid (enum?)
- * @qid: the &p9_qid server identifier this handle points to
- * @iounit: the server reported maximum transaction size for this file
- * @uid: the numeric uid of the local user who owns this handle
- * @rdir: readdir accounting structure (allocated on demand)
- * @flist: per-client-instance fid tracking
- * @dlist: per-dentry fid tracking
- *
- * TODO: This needs lots of explanation.
- */
-
-struct p9_fid {
- struct p9_client *clnt;
- u32 fid;
- int mode;
- struct p9_qid qid;
- u32 iounit;
- uid_t uid;
-
- void *rdir;
-
- struct list_head flist;
- struct list_head dlist; /* list of all fids attached to a dentry */
-};
-
-/**
- * struct p9_dirent - directory entry structure
- * @qid: The p9 server qid for this dirent
- * @d_off: offset to the next dirent
- * @d_type: type of file
- * @d_name: file name
- */
-
-struct p9_dirent {
- struct p9_qid qid;
- u64 d_off;
- unsigned char d_type;
- char d_name[256];
-};
-
-int p9_client_statfs(struct p9_fid *fid, struct p9_rstatfs *sb);
-int p9_client_rename(struct p9_fid *fid, struct p9_fid *newdirfid,
- const char *name);
-int p9_client_renameat(struct p9_fid *olddirfid, const char *old_name,
- struct p9_fid *newdirfid, const char *new_name);
-struct p9_client *p9_client_create(const char *dev_name, char *options);
-void p9_client_destroy(struct p9_client *clnt);
-void p9_client_disconnect(struct p9_client *clnt);
-void p9_client_begin_disconnect(struct p9_client *clnt);
-struct p9_fid *p9_client_attach(struct p9_client *clnt, struct p9_fid *afid,
- char *uname, u32 n_uname, char *aname);
-struct p9_fid *p9_client_walk(struct p9_fid *oldfid, uint16_t nwname,
- char **wnames, int clone);
-int p9_client_open(struct p9_fid *fid, int mode);
-int p9_client_fcreate(struct p9_fid *fid, char *name, u32 perm, int mode,
- char *extension);
-int p9_client_link(struct p9_fid *fid, struct p9_fid *oldfid, char *newname);
-int p9_client_symlink(struct p9_fid *fid, char *name, char *symname, gid_t gid,
- struct p9_qid *qid);
-int p9_client_create_dotl(struct p9_fid *ofid, char *name, u32 flags, u32 mode,
- gid_t gid, struct p9_qid *qid);
-int p9_client_clunk(struct p9_fid *fid);
-int p9_client_fsync(struct p9_fid *fid, int datasync);
-int p9_client_remove(struct p9_fid *fid);
-int p9_client_unlinkat(struct p9_fid *dfid, const char *name, int flags);
-int p9_client_read(struct p9_fid *fid, char *data, char __user *udata,
- u64 offset, u32 count);
-int p9_client_write(struct p9_fid *fid, char *data, const char __user *udata,
- u64 offset, u32 count);
-int p9_client_readdir(struct p9_fid *fid, char *data, u32 count, u64 offset);
-int p9dirent_read(struct p9_client *clnt, char *buf, int len,
- struct p9_dirent *dirent);
-struct p9_wstat *p9_client_stat(struct p9_fid *fid);
-int p9_client_wstat(struct p9_fid *fid, struct p9_wstat *wst);
-int p9_client_setattr(struct p9_fid *fid, struct p9_iattr_dotl *attr);
-
-struct p9_stat_dotl *p9_client_getattr_dotl(struct p9_fid *fid,
- u64 request_mask);
-
-int p9_client_mknod_dotl(struct p9_fid *oldfid, char *name, int mode,
- dev_t rdev, gid_t gid, struct p9_qid *);
-int p9_client_mkdir_dotl(struct p9_fid *fid, char *name, int mode,
- gid_t gid, struct p9_qid *);
-int p9_client_lock_dotl(struct p9_fid *fid, struct p9_flock *flock, u8 *status);
-int p9_client_getlock_dotl(struct p9_fid *fid, struct p9_getlock *fl);
-struct p9_req_t *p9_tag_lookup(struct p9_client *, u16);
-void p9_client_cb(struct p9_client *c, struct p9_req_t *req);
-
-int p9_parse_header(struct p9_fcall *, int32_t *, int8_t *, int16_t *, int);
-int p9stat_read(struct p9_client *, char *, int, struct p9_wstat *);
-void p9stat_free(struct p9_wstat *);
-
-int p9_is_proto_dotu(struct p9_client *clnt);
-int p9_is_proto_dotl(struct p9_client *clnt);
-struct p9_fid *p9_client_xattrwalk(struct p9_fid *, const char *, u64 *);
-int p9_client_xattrcreate(struct p9_fid *, const char *, u64, int);
-int p9_client_readlink(struct p9_fid *fid, char **target);
-
-#endif /* NET_9P_CLIENT_H */
diff --git a/ANDROID_3.4.5/include/net/9p/transport.h b/ANDROID_3.4.5/include/net/9p/transport.h
deleted file mode 100644
index adcbb20f..00000000
--- a/ANDROID_3.4.5/include/net/9p/transport.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * include/net/9p/transport.h
- *
- * Transport Definition
- *
- * Copyright (C) 2005 by Latchesar Ionkov <lucho@ionkov.net>
- * Copyright (C) 2004-2008 by Eric Van Hensbergen <ericvh@gmail.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.
- *
- * 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:
- * Free Software Foundation
- * 51 Franklin Street, Fifth Floor
- * Boston, MA 02111-1301 USA
- *
- */
-
-#ifndef NET_9P_TRANSPORT_H
-#define NET_9P_TRANSPORT_H
-
-/**
- * struct p9_trans_module - transport module interface
- * @list: used to maintain a list of currently available transports
- * @name: the human-readable name of the transport
- * @maxsize: transport provided maximum packet size
- * @pref: Preferences of this transport
- * @def: set if this transport should be considered the default
- * @create: member function to create a new connection on this transport
- * @close: member function to discard a connection on this transport
- * @request: member function to issue a request to the transport
- * @cancel: member function to cancel a request (if it hasn't been sent)
- *
- * This is the basic API for a transport module which is registered by the
- * transport module with the 9P core network module and used by the client
- * to instantiate a new connection on a transport.
- *
- * The transport module list is protected by v9fs_trans_lock.
- */
-
-struct p9_trans_module {
- struct list_head list;
- char *name; /* name of transport */
- int maxsize; /* max message size of transport */
- int def; /* this transport should be default */
- struct module *owner;
- int (*create)(struct p9_client *, const char *, char *);
- void (*close) (struct p9_client *);
- int (*request) (struct p9_client *, struct p9_req_t *req);
- int (*cancel) (struct p9_client *, struct p9_req_t *req);
- int (*zc_request)(struct p9_client *, struct p9_req_t *,
- char *, char *, int , int, int, int);
-};
-
-void v9fs_register_trans(struct p9_trans_module *m);
-void v9fs_unregister_trans(struct p9_trans_module *m);
-struct p9_trans_module *v9fs_get_trans_by_name(char *s);
-struct p9_trans_module *v9fs_get_default_trans(void);
-void v9fs_put_trans(struct p9_trans_module *m);
-#endif /* NET_9P_TRANSPORT_H */
diff --git a/ANDROID_3.4.5/include/net/act_api.h b/ANDROID_3.4.5/include/net/act_api.h
deleted file mode 100644
index c739531e..00000000
--- a/ANDROID_3.4.5/include/net/act_api.h
+++ /dev/null
@@ -1,126 +0,0 @@
-#ifndef __NET_ACT_API_H
-#define __NET_ACT_API_H
-
-/*
- * Public police action API for classifiers/qdiscs
- */
-
-#include <net/sch_generic.h>
-#include <net/pkt_sched.h>
-
-struct tcf_common {
- struct tcf_common *tcfc_next;
- u32 tcfc_index;
- int tcfc_refcnt;
- int tcfc_bindcnt;
- u32 tcfc_capab;
- int tcfc_action;
- struct tcf_t tcfc_tm;
- struct gnet_stats_basic_packed tcfc_bstats;
- struct gnet_stats_queue tcfc_qstats;
- struct gnet_stats_rate_est tcfc_rate_est;
- spinlock_t tcfc_lock;
- struct rcu_head tcfc_rcu;
-};
-#define tcf_next common.tcfc_next
-#define tcf_index common.tcfc_index
-#define tcf_refcnt common.tcfc_refcnt
-#define tcf_bindcnt common.tcfc_bindcnt
-#define tcf_capab common.tcfc_capab
-#define tcf_action common.tcfc_action
-#define tcf_tm common.tcfc_tm
-#define tcf_bstats common.tcfc_bstats
-#define tcf_qstats common.tcfc_qstats
-#define tcf_rate_est common.tcfc_rate_est
-#define tcf_lock common.tcfc_lock
-#define tcf_rcu common.tcfc_rcu
-
-struct tcf_police {
- struct tcf_common common;
- int tcfp_result;
- u32 tcfp_ewma_rate;
- u32 tcfp_burst;
- u32 tcfp_mtu;
- u32 tcfp_toks;
- u32 tcfp_ptoks;
- psched_time_t tcfp_t_c;
- struct qdisc_rate_table *tcfp_R_tab;
- struct qdisc_rate_table *tcfp_P_tab;
-};
-#define to_police(pc) \
- container_of(pc, struct tcf_police, common)
-
-struct tcf_hashinfo {
- struct tcf_common **htab;
- unsigned int hmask;
- rwlock_t *lock;
-};
-
-static inline unsigned int tcf_hash(u32 index, unsigned int hmask)
-{
- return index & hmask;
-}
-
-#ifdef CONFIG_NET_CLS_ACT
-
-#define ACT_P_CREATED 1
-#define ACT_P_DELETED 1
-
-struct tcf_act_hdr {
- struct tcf_common common;
-};
-
-struct tc_action {
- void *priv;
- const struct tc_action_ops *ops;
- __u32 type; /* for backward compat(TCA_OLD_COMPAT) */
- __u32 order;
- struct tc_action *next;
-};
-
-#define TCA_CAP_NONE 0
-struct tc_action_ops {
- struct tc_action_ops *next;
- struct tcf_hashinfo *hinfo;
- char kind[IFNAMSIZ];
- __u32 type; /* TBD to match kind */
- __u32 capab; /* capabilities includes 4 bit version */
- struct module *owner;
- int (*act)(struct sk_buff *, const struct tc_action *, struct tcf_result *);
- int (*get_stats)(struct sk_buff *, struct tc_action *);
- int (*dump)(struct sk_buff *, struct tc_action *, int, int);
- int (*cleanup)(struct tc_action *, int bind);
- int (*lookup)(struct tc_action *, u32);
- int (*init)(struct nlattr *, struct nlattr *, struct tc_action *, int , int);
- int (*walk)(struct sk_buff *, struct netlink_callback *, int, struct tc_action *);
-};
-
-extern struct tcf_common *tcf_hash_lookup(u32 index,
- struct tcf_hashinfo *hinfo);
-extern void tcf_hash_destroy(struct tcf_common *p, struct tcf_hashinfo *hinfo);
-extern int tcf_hash_release(struct tcf_common *p, int bind,
- struct tcf_hashinfo *hinfo);
-extern int tcf_generic_walker(struct sk_buff *skb, struct netlink_callback *cb,
- int type, struct tc_action *a);
-extern u32 tcf_hash_new_index(u32 *idx_gen, struct tcf_hashinfo *hinfo);
-extern int tcf_hash_search(struct tc_action *a, u32 index);
-extern struct tcf_common *tcf_hash_check(u32 index, struct tc_action *a,
- int bind, struct tcf_hashinfo *hinfo);
-extern struct tcf_common *tcf_hash_create(u32 index, struct nlattr *est,
- struct tc_action *a, int size,
- int bind, u32 *idx_gen,
- struct tcf_hashinfo *hinfo);
-extern void tcf_hash_insert(struct tcf_common *p, struct tcf_hashinfo *hinfo);
-
-extern int tcf_register_action(struct tc_action_ops *a);
-extern int tcf_unregister_action(struct tc_action_ops *a);
-extern void tcf_action_destroy(struct tc_action *a, int bind);
-extern int tcf_action_exec(struct sk_buff *skb, const struct tc_action *a, struct tcf_result *res);
-extern struct tc_action *tcf_action_init(struct nlattr *nla, struct nlattr *est, char *n, int ovr, int bind);
-extern struct tc_action *tcf_action_init_1(struct nlattr *nla, struct nlattr *est, char *n, int ovr, int bind);
-extern int tcf_action_dump(struct sk_buff *skb, struct tc_action *a, int, int);
-extern int tcf_action_dump_old(struct sk_buff *skb, struct tc_action *a, int, int);
-extern int tcf_action_dump_1(struct sk_buff *skb, struct tc_action *a, int, int);
-extern int tcf_action_copy_stats (struct sk_buff *,struct tc_action *, int);
-#endif /* CONFIG_NET_CLS_ACT */
-#endif
diff --git a/ANDROID_3.4.5/include/net/activity_stats.h b/ANDROID_3.4.5/include/net/activity_stats.h
deleted file mode 100644
index 10e4c150..00000000
--- a/ANDROID_3.4.5/include/net/activity_stats.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (C) 2010 Google, Inc.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * Author: Mike Chan (mike@android.com)
- */
-
-#ifndef __activity_stats_h
-#define __activity_stats_h
-
-#ifdef CONFIG_NET_ACTIVITY_STATS
-void activity_stats_update(void);
-#else
-#define activity_stats_update(void) {}
-#endif
-
-#endif /* _NET_ACTIVITY_STATS_H */
diff --git a/ANDROID_3.4.5/include/net/addrconf.h b/ANDROID_3.4.5/include/net/addrconf.h
deleted file mode 100644
index 757a1763..00000000
--- a/ANDROID_3.4.5/include/net/addrconf.h
+++ /dev/null
@@ -1,285 +0,0 @@
-#ifndef _ADDRCONF_H
-#define _ADDRCONF_H
-
-#define MAX_RTR_SOLICITATIONS 3
-#define RTR_SOLICITATION_INTERVAL (4*HZ)
-
-#define MIN_VALID_LIFETIME (2*3600) /* 2 hours */
-
-#define TEMP_VALID_LIFETIME (7*86400)
-#define TEMP_PREFERRED_LIFETIME (86400)
-#define REGEN_MAX_RETRY (3)
-#define MAX_DESYNC_FACTOR (600)
-
-#define ADDR_CHECK_FREQUENCY (120*HZ)
-
-#define IPV6_MAX_ADDRESSES 16
-
-#include <linux/in.h>
-#include <linux/in6.h>
-
-struct prefix_info {
- __u8 type;
- __u8 length;
- __u8 prefix_len;
-
-#if defined(__BIG_ENDIAN_BITFIELD)
- __u8 onlink : 1,
- autoconf : 1,
- reserved : 6;
-#elif defined(__LITTLE_ENDIAN_BITFIELD)
- __u8 reserved : 6,
- autoconf : 1,
- onlink : 1;
-#else
-#error "Please fix <asm/byteorder.h>"
-#endif
- __be32 valid;
- __be32 prefered;
- __be32 reserved2;
-
- struct in6_addr prefix;
-};
-
-
-#include <linux/netdevice.h>
-#include <net/if_inet6.h>
-#include <net/ipv6.h>
-
-#define IN6_ADDR_HSIZE 16
-
-extern int addrconf_init(void);
-extern void addrconf_cleanup(void);
-
-extern int addrconf_add_ifaddr(struct net *net,
- void __user *arg);
-extern int addrconf_del_ifaddr(struct net *net,
- void __user *arg);
-extern int addrconf_set_dstaddr(struct net *net,
- void __user *arg);
-
-extern int ipv6_chk_addr(struct net *net,
- const struct in6_addr *addr,
- struct net_device *dev,
- int strict);
-
-#if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE)
-extern int ipv6_chk_home_addr(struct net *net,
- const struct in6_addr *addr);
-#endif
-
-extern int ipv6_chk_prefix(const struct in6_addr *addr,
- struct net_device *dev);
-
-extern struct inet6_ifaddr *ipv6_get_ifaddr(struct net *net,
- const struct in6_addr *addr,
- struct net_device *dev,
- int strict);
-
-extern int ipv6_dev_get_saddr(struct net *net,
- struct net_device *dev,
- const struct in6_addr *daddr,
- unsigned int srcprefs,
- struct in6_addr *saddr);
-extern int ipv6_get_lladdr(struct net_device *dev,
- struct in6_addr *addr,
- unsigned char banned_flags);
-extern int ipv6_rcv_saddr_equal(const struct sock *sk,
- const struct sock *sk2);
-extern void addrconf_join_solict(struct net_device *dev,
- const struct in6_addr *addr);
-extern void addrconf_leave_solict(struct inet6_dev *idev,
- const struct in6_addr *addr);
-
-static inline unsigned long addrconf_timeout_fixup(u32 timeout,
- unsigned unit)
-{
- if (timeout == 0xffffffff)
- return ~0UL;
-
- /*
- * Avoid arithmetic overflow.
- * Assuming unit is constant and non-zero, this "if" statement
- * will go away on 64bit archs.
- */
- if (0xfffffffe > LONG_MAX / unit && timeout > LONG_MAX / unit)
- return LONG_MAX / unit;
-
- return timeout;
-}
-
-static inline int addrconf_finite_timeout(unsigned long timeout)
-{
- return ~timeout;
-}
-
-/*
- * IPv6 Address Label subsystem (addrlabel.c)
- */
-extern int ipv6_addr_label_init(void);
-extern void ipv6_addr_label_cleanup(void);
-extern void ipv6_addr_label_rtnl_register(void);
-extern u32 ipv6_addr_label(struct net *net,
- const struct in6_addr *addr,
- int type, int ifindex);
-
-/*
- * multicast prototypes (mcast.c)
- */
-extern int ipv6_sock_mc_join(struct sock *sk, int ifindex,
- const struct in6_addr *addr);
-extern int ipv6_sock_mc_drop(struct sock *sk, int ifindex,
- const struct in6_addr *addr);
-extern void ipv6_sock_mc_close(struct sock *sk);
-extern int inet6_mc_check(struct sock *sk,
- const struct in6_addr *mc_addr,
- const struct in6_addr *src_addr);
-
-extern int ipv6_dev_mc_inc(struct net_device *dev, const struct in6_addr *addr);
-extern int __ipv6_dev_mc_dec(struct inet6_dev *idev, const struct in6_addr *addr);
-extern int ipv6_dev_mc_dec(struct net_device *dev, const struct in6_addr *addr);
-extern void ipv6_mc_up(struct inet6_dev *idev);
-extern void ipv6_mc_down(struct inet6_dev *idev);
-extern void ipv6_mc_unmap(struct inet6_dev *idev);
-extern void ipv6_mc_remap(struct inet6_dev *idev);
-extern void ipv6_mc_init_dev(struct inet6_dev *idev);
-extern void ipv6_mc_destroy_dev(struct inet6_dev *idev);
-extern void addrconf_dad_failure(struct inet6_ifaddr *ifp);
-
-extern int ipv6_chk_mcast_addr(struct net_device *dev,
- const struct in6_addr *group,
- const struct in6_addr *src_addr);
-extern int ipv6_is_mld(struct sk_buff *skb, int nexthdr);
-
-extern void addrconf_prefix_rcv(struct net_device *dev,
- u8 *opt, int len, bool sllao);
-
-/*
- * anycast prototypes (anycast.c)
- */
-extern int ipv6_sock_ac_join(struct sock *sk,int ifindex, const struct in6_addr *addr);
-extern int ipv6_sock_ac_drop(struct sock *sk,int ifindex, const struct in6_addr *addr);
-extern void ipv6_sock_ac_close(struct sock *sk);
-
-extern int ipv6_dev_ac_inc(struct net_device *dev, const struct in6_addr *addr);
-extern int __ipv6_dev_ac_dec(struct inet6_dev *idev, const struct in6_addr *addr);
-extern int ipv6_chk_acast_addr(struct net *net, struct net_device *dev,
- const struct in6_addr *addr);
-
-
-/* Device notifier */
-extern int register_inet6addr_notifier(struct notifier_block *nb);
-extern int unregister_inet6addr_notifier(struct notifier_block *nb);
-
-/**
- * __in6_dev_get - get inet6_dev pointer from netdevice
- * @dev: network device
- *
- * Caller must hold rcu_read_lock or RTNL, because this function
- * does not take a reference on the inet6_dev.
- */
-static inline struct inet6_dev *__in6_dev_get(const struct net_device *dev)
-{
- return rcu_dereference_rtnl(dev->ip6_ptr);
-}
-
-/**
- * in6_dev_get - get inet6_dev pointer from netdevice
- * @dev: network device
- *
- * This version can be used in any context, and takes a reference
- * on the inet6_dev. Callers must use in6_dev_put() later to
- * release this reference.
- */
-static inline struct inet6_dev *in6_dev_get(const struct net_device *dev)
-{
- struct inet6_dev *idev;
-
- rcu_read_lock();
- idev = rcu_dereference(dev->ip6_ptr);
- if (idev)
- atomic_inc(&idev->refcnt);
- rcu_read_unlock();
- return idev;
-}
-
-extern void in6_dev_finish_destroy(struct inet6_dev *idev);
-
-static inline void in6_dev_put(struct inet6_dev *idev)
-{
- if (atomic_dec_and_test(&idev->refcnt))
- in6_dev_finish_destroy(idev);
-}
-
-static inline void __in6_dev_put(struct inet6_dev *idev)
-{
- atomic_dec(&idev->refcnt);
-}
-
-static inline void in6_dev_hold(struct inet6_dev *idev)
-{
- atomic_inc(&idev->refcnt);
-}
-
-extern void inet6_ifa_finish_destroy(struct inet6_ifaddr *ifp);
-
-static inline void in6_ifa_put(struct inet6_ifaddr *ifp)
-{
- if (atomic_dec_and_test(&ifp->refcnt))
- inet6_ifa_finish_destroy(ifp);
-}
-
-static inline void __in6_ifa_put(struct inet6_ifaddr *ifp)
-{
- atomic_dec(&ifp->refcnt);
-}
-
-static inline void in6_ifa_hold(struct inet6_ifaddr *ifp)
-{
- atomic_inc(&ifp->refcnt);
-}
-
-
-/*
- * compute link-local solicited-node multicast address
- */
-
-static inline void addrconf_addr_solict_mult(const struct in6_addr *addr,
- struct in6_addr *solicited)
-{
- ipv6_addr_set(solicited,
- htonl(0xFF020000), 0,
- htonl(0x1),
- htonl(0xFF000000) | addr->s6_addr32[3]);
-}
-
-static inline int ipv6_addr_is_multicast(const struct in6_addr *addr)
-{
- return (addr->s6_addr32[0] & htonl(0xFF000000)) == htonl(0xFF000000);
-}
-
-static inline int ipv6_addr_is_ll_all_nodes(const struct in6_addr *addr)
-{
- return ((addr->s6_addr32[0] ^ htonl(0xff020000)) |
- addr->s6_addr32[1] | addr->s6_addr32[2] |
- (addr->s6_addr32[3] ^ htonl(0x00000001))) == 0;
-}
-
-static inline int ipv6_addr_is_ll_all_routers(const struct in6_addr *addr)
-{
- return ((addr->s6_addr32[0] ^ htonl(0xff020000)) |
- addr->s6_addr32[1] | addr->s6_addr32[2] |
- (addr->s6_addr32[3] ^ htonl(0x00000002))) == 0;
-}
-
-static inline int ipv6_addr_is_isatap(const struct in6_addr *addr)
-{
- return (addr->s6_addr32[2] | htonl(0x02000000)) == htonl(0x02005EFE);
-}
-
-#ifdef CONFIG_PROC_FS
-extern int if6_proc_init(void);
-extern void if6_proc_exit(void);
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/af_ieee802154.h b/ANDROID_3.4.5/include/net/af_ieee802154.h
deleted file mode 100644
index 75e64c7a..00000000
--- a/ANDROID_3.4.5/include/net/af_ieee802154.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * IEEE 802.15.4 inteface for userspace
- *
- * Copyright 2007, 2008 Siemens AG
- *
- * 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.
- *
- * 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-1301 USA.
- *
- * Written by:
- * Sergey Lapin <slapin@ossfans.org>
- * Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
- */
-
-#ifndef _AF_IEEE802154_H
-#define _AF_IEEE802154_H
-
-#include <linux/socket.h> /* for sa_family_t */
-
-enum {
- IEEE802154_ADDR_NONE = 0x0,
- /* RESERVED = 0x01, */
- IEEE802154_ADDR_SHORT = 0x2, /* 16-bit address + PANid */
- IEEE802154_ADDR_LONG = 0x3, /* 64-bit address + PANid */
-};
-
-/* address length, octets */
-#define IEEE802154_ADDR_LEN 8
-
-struct ieee802154_addr {
- int addr_type;
- u16 pan_id;
- union {
- u8 hwaddr[IEEE802154_ADDR_LEN];
- u16 short_addr;
- };
-};
-
-#define IEEE802154_PANID_BROADCAST 0xffff
-#define IEEE802154_ADDR_BROADCAST 0xffff
-#define IEEE802154_ADDR_UNDEF 0xfffe
-
-struct sockaddr_ieee802154 {
- sa_family_t family; /* AF_IEEE802154 */
- struct ieee802154_addr addr;
-};
-
-/* get/setsockopt */
-#define SOL_IEEE802154 0
-
-#define WPAN_WANTACK 0
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/af_rxrpc.h b/ANDROID_3.4.5/include/net/af_rxrpc.h
deleted file mode 100644
index 03e6e945..00000000
--- a/ANDROID_3.4.5/include/net/af_rxrpc.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* RxRPC kernel service interface definitions
- *
- * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
- * Written by David Howells (dhowells@redhat.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 _NET_RXRPC_H
-#define _NET_RXRPC_H
-
-#include <linux/rxrpc.h>
-
-struct rxrpc_call;
-
-/*
- * the mark applied to socket buffers that may be intercepted
- */
-enum {
- RXRPC_SKB_MARK_DATA, /* data message */
- RXRPC_SKB_MARK_FINAL_ACK, /* final ACK received message */
- RXRPC_SKB_MARK_BUSY, /* server busy message */
- RXRPC_SKB_MARK_REMOTE_ABORT, /* remote abort message */
- RXRPC_SKB_MARK_NET_ERROR, /* network error message */
- RXRPC_SKB_MARK_LOCAL_ERROR, /* local error message */
- RXRPC_SKB_MARK_NEW_CALL, /* local error message */
-};
-
-typedef void (*rxrpc_interceptor_t)(struct sock *, unsigned long,
- struct sk_buff *);
-extern void rxrpc_kernel_intercept_rx_messages(struct socket *,
- rxrpc_interceptor_t);
-extern struct rxrpc_call *rxrpc_kernel_begin_call(struct socket *,
- struct sockaddr_rxrpc *,
- struct key *,
- unsigned long,
- gfp_t);
-extern int rxrpc_kernel_send_data(struct rxrpc_call *, struct msghdr *,
- size_t);
-extern void rxrpc_kernel_abort_call(struct rxrpc_call *, u32);
-extern void rxrpc_kernel_end_call(struct rxrpc_call *);
-extern bool rxrpc_kernel_is_data_last(struct sk_buff *);
-extern u32 rxrpc_kernel_get_abort_code(struct sk_buff *);
-extern int rxrpc_kernel_get_error_number(struct sk_buff *);
-extern void rxrpc_kernel_data_delivered(struct sk_buff *);
-extern void rxrpc_kernel_free_skb(struct sk_buff *);
-extern struct rxrpc_call *rxrpc_kernel_accept_call(struct socket *,
- unsigned long);
-extern int rxrpc_kernel_reject_call(struct socket *);
-
-#endif /* _NET_RXRPC_H */
diff --git a/ANDROID_3.4.5/include/net/af_unix.h b/ANDROID_3.4.5/include/net/af_unix.h
deleted file mode 100644
index ca68e2ce..00000000
--- a/ANDROID_3.4.5/include/net/af_unix.h
+++ /dev/null
@@ -1,78 +0,0 @@
-#ifndef __LINUX_NET_AFUNIX_H
-#define __LINUX_NET_AFUNIX_H
-
-#include <linux/socket.h>
-#include <linux/un.h>
-#include <linux/mutex.h>
-#include <net/sock.h>
-
-extern void unix_inflight(struct file *fp);
-extern void unix_notinflight(struct file *fp);
-extern void unix_gc(void);
-extern void wait_for_unix_gc(void);
-extern struct sock *unix_get_socket(struct file *filp);
-extern struct sock *unix_peer_get(struct sock *);
-
-#define UNIX_HASH_SIZE 256
-
-extern unsigned int unix_tot_inflight;
-extern spinlock_t unix_table_lock;
-extern struct hlist_head unix_socket_table[UNIX_HASH_SIZE + 1];
-
-struct unix_address {
- atomic_t refcnt;
- int len;
- unsigned hash;
- struct sockaddr_un name[0];
-};
-
-struct unix_skb_parms {
- struct pid *pid; /* Skb credentials */
- const struct cred *cred;
- struct scm_fp_list *fp; /* Passed files */
-#ifdef CONFIG_SECURITY_NETWORK
- u32 secid; /* Security ID */
-#endif
-};
-
-#define UNIXCB(skb) (*(struct unix_skb_parms *)&((skb)->cb))
-#define UNIXSID(skb) (&UNIXCB((skb)).secid)
-
-#define unix_state_lock(s) spin_lock(&unix_sk(s)->lock)
-#define unix_state_unlock(s) spin_unlock(&unix_sk(s)->lock)
-#define unix_state_lock_nested(s) \
- spin_lock_nested(&unix_sk(s)->lock, \
- SINGLE_DEPTH_NESTING)
-
-/* The AF_UNIX socket */
-struct unix_sock {
- /* WARNING: sk has to be the first member */
- struct sock sk;
- struct unix_address *addr;
- struct path path;
- struct mutex readlock;
- struct sock *peer;
- struct sock *other;
- struct list_head link;
- atomic_long_t inflight;
- spinlock_t lock;
- unsigned int gc_candidate : 1;
- unsigned int gc_maybe_cycle : 1;
- unsigned char recursion_level;
- struct socket_wq peer_wq;
-};
-#define unix_sk(__sk) ((struct unix_sock *)__sk)
-
-#define peer_wait peer_wq.wait
-
-long unix_inq_len(struct sock *sk);
-long unix_outq_len(struct sock *sk);
-
-#ifdef CONFIG_SYSCTL
-extern int unix_sysctl_register(struct net *net);
-extern void unix_sysctl_unregister(struct net *net);
-#else
-static inline int unix_sysctl_register(struct net *net) { return 0; }
-static inline void unix_sysctl_unregister(struct net *net) {}
-#endif
-#endif
diff --git a/ANDROID_3.4.5/include/net/ah.h b/ANDROID_3.4.5/include/net/ah.h
deleted file mode 100644
index ca95b989..00000000
--- a/ANDROID_3.4.5/include/net/ah.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef _NET_AH_H
-#define _NET_AH_H
-
-#include <linux/skbuff.h>
-
-/* This is the maximum truncated ICV length that we know of. */
-#define MAX_AH_AUTH_LEN 64
-
-struct crypto_ahash;
-
-struct ah_data {
- int icv_full_len;
- int icv_trunc_len;
-
- struct crypto_ahash *ahash;
-};
-
-struct ip_auth_hdr;
-
-static inline struct ip_auth_hdr *ip_auth_hdr(const struct sk_buff *skb)
-{
- return (struct ip_auth_hdr *)skb_transport_header(skb);
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/arp.h b/ANDROID_3.4.5/include/net/arp.h
deleted file mode 100644
index 4a1f3fb5..00000000
--- a/ANDROID_3.4.5/include/net/arp.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/* linux/net/inet/arp.h */
-#ifndef _ARP_H
-#define _ARP_H
-
-#include <linux/if_arp.h>
-#include <net/neighbour.h>
-
-
-extern struct neigh_table arp_tbl;
-
-static inline u32 arp_hashfn(u32 key, const struct net_device *dev, u32 hash_rnd)
-{
- u32 val = key ^ dev->ifindex;
-
- return val * hash_rnd;
-}
-
-static inline struct neighbour *__ipv4_neigh_lookup(struct net_device *dev, u32 key)
-{
- struct neigh_hash_table *nht;
- struct neighbour *n;
- u32 hash_val;
-
- rcu_read_lock_bh();
- nht = rcu_dereference_bh(arp_tbl.nht);
- hash_val = arp_hashfn(key, dev, nht->hash_rnd[0]) >> (32 - nht->hash_shift);
- for (n = rcu_dereference_bh(nht->hash_buckets[hash_val]);
- n != NULL;
- n = rcu_dereference_bh(n->next)) {
- if (n->dev == dev && *(u32 *)n->primary_key == key) {
- if (!atomic_inc_not_zero(&n->refcnt))
- n = NULL;
- break;
- }
- }
- rcu_read_unlock_bh();
-
- return n;
-}
-
-extern void arp_init(void);
-extern int arp_find(unsigned char *haddr, struct sk_buff *skb);
-extern int arp_ioctl(struct net *net, unsigned int cmd, void __user *arg);
-extern void arp_send(int type, int ptype, __be32 dest_ip,
- struct net_device *dev, __be32 src_ip,
- const unsigned char *dest_hw,
- const unsigned char *src_hw, const unsigned char *th);
-extern int arp_mc_map(__be32 addr, u8 *haddr, struct net_device *dev, int dir);
-extern void arp_ifdown(struct net_device *dev);
-
-extern struct sk_buff *arp_create(int type, int ptype, __be32 dest_ip,
- struct net_device *dev, __be32 src_ip,
- const unsigned char *dest_hw,
- const unsigned char *src_hw,
- const unsigned char *target_hw);
-extern void arp_xmit(struct sk_buff *skb);
-int arp_invalidate(struct net_device *dev, __be32 ip);
-
-#endif /* _ARP_H */
diff --git a/ANDROID_3.4.5/include/net/atmclip.h b/ANDROID_3.4.5/include/net/atmclip.h
deleted file mode 100644
index 5865924d..00000000
--- a/ANDROID_3.4.5/include/net/atmclip.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* net/atm/atmarp.h - RFC1577 ATM ARP */
-
-/* Written 1995-2000 by Werner Almesberger, EPFL LRC/ICA */
-
-
-#ifndef _ATMCLIP_H
-#define _ATMCLIP_H
-
-#include <linux/netdevice.h>
-#include <linux/atm.h>
-#include <linux/atmdev.h>
-#include <linux/atmarp.h>
-#include <linux/spinlock.h>
-#include <net/neighbour.h>
-
-
-#define CLIP_VCC(vcc) ((struct clip_vcc *) ((vcc)->user_back))
-
-struct sk_buff;
-
-struct clip_vcc {
- struct atm_vcc *vcc; /* VCC descriptor */
- struct atmarp_entry *entry; /* ATMARP table entry, NULL if IP addr.
- isn't known yet */
- int xoff; /* 1 if send buffer is full */
- unsigned char encap; /* 0: NULL, 1: LLC/SNAP */
- unsigned long last_use; /* last send or receive operation */
- unsigned long idle_timeout; /* keep open idle for so many jiffies*/
- void (*old_push)(struct atm_vcc *vcc,struct sk_buff *skb);
- /* keep old push fn for chaining */
- void (*old_pop)(struct atm_vcc *vcc,struct sk_buff *skb);
- /* keep old pop fn for chaining */
- struct clip_vcc *next; /* next VCC */
-};
-
-
-struct atmarp_entry {
- struct clip_vcc *vccs; /* active VCCs; NULL if resolution is
- pending */
- unsigned long expires; /* entry expiration time */
- struct neighbour *neigh; /* neighbour back-pointer */
-};
-
-#define PRIV(dev) ((struct clip_priv *) netdev_priv(dev))
-
-struct clip_priv {
- int number; /* for convenience ... */
- spinlock_t xoff_lock; /* ensures that pop is atomic (SMP) */
- struct net_device *next; /* next CLIP interface */
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/ax25.h b/ANDROID_3.4.5/include/net/ax25.h
deleted file mode 100644
index 94e09d36..00000000
--- a/ANDROID_3.4.5/include/net/ax25.h
+++ /dev/null
@@ -1,451 +0,0 @@
-/*
- * Declarations of AX.25 type objects.
- *
- * Alan Cox (GW4PTS) 10/11/93
- */
-#ifndef _AX25_H
-#define _AX25_H
-
-#include <linux/ax25.h>
-#include <linux/spinlock.h>
-#include <linux/timer.h>
-#include <linux/list.h>
-#include <linux/slab.h>
-#include <linux/atomic.h>
-
-#define AX25_T1CLAMPLO 1
-#define AX25_T1CLAMPHI (30 * HZ)
-
-#define AX25_BPQ_HEADER_LEN 16
-#define AX25_KISS_HEADER_LEN 1
-
-#define AX25_HEADER_LEN 17
-#define AX25_ADDR_LEN 7
-#define AX25_DIGI_HEADER_LEN (AX25_MAX_DIGIS * AX25_ADDR_LEN)
-#define AX25_MAX_HEADER_LEN (AX25_HEADER_LEN + AX25_DIGI_HEADER_LEN)
-
-/* AX.25 Protocol IDs */
-#define AX25_P_ROSE 0x01
-#define AX25_P_VJCOMP 0x06 /* Compressed TCP/IP packet */
- /* Van Jacobsen (RFC 1144) */
-#define AX25_P_VJUNCOMP 0x07 /* Uncompressed TCP/IP packet */
- /* Van Jacobsen (RFC 1144) */
-#define AX25_P_SEGMENT 0x08 /* Segmentation fragment */
-#define AX25_P_TEXNET 0xc3 /* TEXTNET datagram protocol */
-#define AX25_P_LQ 0xc4 /* Link Quality Protocol */
-#define AX25_P_ATALK 0xca /* Appletalk */
-#define AX25_P_ATALK_ARP 0xcb /* Appletalk ARP */
-#define AX25_P_IP 0xcc /* ARPA Internet Protocol */
-#define AX25_P_ARP 0xcd /* ARPA Address Resolution */
-#define AX25_P_FLEXNET 0xce /* FlexNet */
-#define AX25_P_NETROM 0xcf /* NET/ROM */
-#define AX25_P_TEXT 0xF0 /* No layer 3 protocol impl. */
-
-/* AX.25 Segment control values */
-#define AX25_SEG_REM 0x7F
-#define AX25_SEG_FIRST 0x80
-
-#define AX25_CBIT 0x80 /* Command/Response bit */
-#define AX25_EBIT 0x01 /* HDLC Address Extension bit */
-#define AX25_HBIT 0x80 /* Has been repeated bit */
-
-#define AX25_SSSID_SPARE 0x60 /* Unused bits in SSID for standard AX.25 */
-#define AX25_ESSID_SPARE 0x20 /* Unused bits in SSID for extended AX.25 */
-#define AX25_DAMA_FLAG 0x20 /* Well, it is *NOT* unused! (dl1bke 951121 */
-
-#define AX25_COND_ACK_PENDING 0x01
-#define AX25_COND_REJECT 0x02
-#define AX25_COND_PEER_RX_BUSY 0x04
-#define AX25_COND_OWN_RX_BUSY 0x08
-#define AX25_COND_DAMA_MODE 0x10
-
-#ifndef _LINUX_NETDEVICE_H
-#include <linux/netdevice.h>
-#endif
-
-/* Upper sub-layer (LAPB) definitions */
-
-/* Control field templates */
-#define AX25_I 0x00 /* Information frames */
-#define AX25_S 0x01 /* Supervisory frames */
-#define AX25_RR 0x01 /* Receiver ready */
-#define AX25_RNR 0x05 /* Receiver not ready */
-#define AX25_REJ 0x09 /* Reject */
-#define AX25_U 0x03 /* Unnumbered frames */
-#define AX25_SABM 0x2f /* Set Asynchronous Balanced Mode */
-#define AX25_SABME 0x6f /* Set Asynchronous Balanced Mode Extended */
-#define AX25_DISC 0x43 /* Disconnect */
-#define AX25_DM 0x0f /* Disconnected mode */
-#define AX25_UA 0x63 /* Unnumbered acknowledge */
-#define AX25_FRMR 0x87 /* Frame reject */
-#define AX25_UI 0x03 /* Unnumbered information */
-#define AX25_XID 0xaf /* Exchange information */
-#define AX25_TEST 0xe3 /* Test */
-
-#define AX25_PF 0x10 /* Poll/final bit for standard AX.25 */
-#define AX25_EPF 0x01 /* Poll/final bit for extended AX.25 */
-
-#define AX25_ILLEGAL 0x100 /* Impossible to be a real frame type */
-
-#define AX25_POLLOFF 0
-#define AX25_POLLON 1
-
-/* AX25 L2 C-bit */
-#define AX25_COMMAND 1
-#define AX25_RESPONSE 2
-
-/* Define Link State constants. */
-
-enum {
- AX25_STATE_0, /* Listening */
- AX25_STATE_1, /* SABM sent */
- AX25_STATE_2, /* DISC sent */
- AX25_STATE_3, /* Established */
- AX25_STATE_4 /* Recovery */
-};
-
-#define AX25_MODULUS 8 /* Standard AX.25 modulus */
-#define AX25_EMODULUS 128 /* Extended AX.25 modulus */
-
-enum {
- AX25_PROTO_STD_SIMPLEX,
- AX25_PROTO_STD_DUPLEX,
-#ifdef CONFIG_AX25_DAMA_SLAVE
- AX25_PROTO_DAMA_SLAVE,
-#ifdef CONFIG_AX25_DAMA_MASTER
- AX25_PROTO_DAMA_MASTER,
-#define AX25_PROTO_MAX AX25_PROTO_DAMA_MASTER
-#endif
-#endif
- __AX25_PROTO_MAX,
- AX25_PROTO_MAX = __AX25_PROTO_MAX -1
-};
-
-enum {
- AX25_VALUES_IPDEFMODE, /* 0=DG 1=VC */
- AX25_VALUES_AXDEFMODE, /* 0=Normal 1=Extended Seq Nos */
- AX25_VALUES_BACKOFF, /* 0=None 1=Linear 2=Exponential */
- AX25_VALUES_CONMODE, /* Allow connected modes - 0=No 1=no "PID text" 2=all PIDs */
- AX25_VALUES_WINDOW, /* Default window size for standard AX.25 */
- AX25_VALUES_EWINDOW, /* Default window size for extended AX.25 */
- AX25_VALUES_T1, /* Default T1 timeout value */
- AX25_VALUES_T2, /* Default T2 timeout value */
- AX25_VALUES_T3, /* Default T3 timeout value */
- AX25_VALUES_IDLE, /* Connected mode idle timer */
- AX25_VALUES_N2, /* Default N2 value */
- AX25_VALUES_PACLEN, /* AX.25 MTU */
- AX25_VALUES_PROTOCOL, /* Std AX.25, DAMA Slave, DAMA Master */
- AX25_VALUES_DS_TIMEOUT, /* DAMA Slave timeout */
- AX25_MAX_VALUES /* THIS MUST REMAIN THE LAST ENTRY OF THIS LIST */
-};
-
-#define AX25_DEF_IPDEFMODE 0 /* Datagram */
-#define AX25_DEF_AXDEFMODE 0 /* Normal */
-#define AX25_DEF_BACKOFF 1 /* Linear backoff */
-#define AX25_DEF_CONMODE 2 /* Connected mode allowed */
-#define AX25_DEF_WINDOW 2 /* Window=2 */
-#define AX25_DEF_EWINDOW 32 /* Module-128 Window=32 */
-#define AX25_DEF_T1 10000 /* T1=10s */
-#define AX25_DEF_T2 3000 /* T2=3s */
-#define AX25_DEF_T3 300000 /* T3=300s */
-#define AX25_DEF_N2 10 /* N2=10 */
-#define AX25_DEF_IDLE 0 /* Idle=None */
-#define AX25_DEF_PACLEN 256 /* Paclen=256 */
-#define AX25_DEF_PROTOCOL AX25_PROTO_STD_SIMPLEX /* Standard AX.25 */
-#define AX25_DEF_DS_TIMEOUT 180000 /* DAMA timeout 3 minutes */
-
-typedef struct ax25_uid_assoc {
- struct hlist_node uid_node;
- atomic_t refcount;
- uid_t uid;
- ax25_address call;
-} ax25_uid_assoc;
-
-#define ax25_uid_for_each(__ax25, node, list) \
- hlist_for_each_entry(__ax25, node, list, uid_node)
-
-#define ax25_uid_hold(ax25) \
- atomic_inc(&((ax25)->refcount))
-
-static inline void ax25_uid_put(ax25_uid_assoc *assoc)
-{
- if (atomic_dec_and_test(&assoc->refcount)) {
- kfree(assoc);
- }
-}
-
-typedef struct {
- ax25_address calls[AX25_MAX_DIGIS];
- unsigned char repeated[AX25_MAX_DIGIS];
- unsigned char ndigi;
- signed char lastrepeat;
-} ax25_digi;
-
-typedef struct ax25_route {
- struct ax25_route *next;
- atomic_t refcount;
- ax25_address callsign;
- struct net_device *dev;
- ax25_digi *digipeat;
- char ip_mode;
-} ax25_route;
-
-static inline void ax25_hold_route(ax25_route *ax25_rt)
-{
- atomic_inc(&ax25_rt->refcount);
-}
-
-extern void __ax25_put_route(ax25_route *ax25_rt);
-
-static inline void ax25_put_route(ax25_route *ax25_rt)
-{
- if (atomic_dec_and_test(&ax25_rt->refcount))
- __ax25_put_route(ax25_rt);
-}
-
-typedef struct {
- char slave; /* slave_mode? */
- struct timer_list slave_timer; /* timeout timer */
- unsigned short slave_timeout; /* when? */
-} ax25_dama_info;
-
-struct ctl_table;
-
-typedef struct ax25_dev {
- struct ax25_dev *next;
- struct net_device *dev;
- struct net_device *forward;
- struct ctl_table *systable;
- int values[AX25_MAX_VALUES];
-#if defined(CONFIG_AX25_DAMA_SLAVE) || defined(CONFIG_AX25_DAMA_MASTER)
- ax25_dama_info dama;
-#endif
-} ax25_dev;
-
-typedef struct ax25_cb {
- struct hlist_node ax25_node;
- ax25_address source_addr, dest_addr;
- ax25_digi *digipeat;
- ax25_dev *ax25_dev;
- unsigned char iamdigi;
- unsigned char state, modulus, pidincl;
- unsigned short vs, vr, va;
- unsigned char condition, backoff;
- unsigned char n2, n2count;
- struct timer_list t1timer, t2timer, t3timer, idletimer;
- unsigned long t1, t2, t3, idle, rtt;
- unsigned short paclen, fragno, fraglen;
- struct sk_buff_head write_queue;
- struct sk_buff_head reseq_queue;
- struct sk_buff_head ack_queue;
- struct sk_buff_head frag_queue;
- unsigned char window;
- struct timer_list timer, dtimer;
- struct sock *sk; /* Backlink to socket */
- atomic_t refcount;
-} ax25_cb;
-
-#define ax25_sk(__sk) ((ax25_cb *)(__sk)->sk_protinfo)
-
-#define ax25_for_each(__ax25, node, list) \
- hlist_for_each_entry(__ax25, node, list, ax25_node)
-
-#define ax25_cb_hold(__ax25) \
- atomic_inc(&((__ax25)->refcount))
-
-static __inline__ void ax25_cb_put(ax25_cb *ax25)
-{
- if (atomic_dec_and_test(&ax25->refcount)) {
- kfree(ax25->digipeat);
- kfree(ax25);
- }
-}
-
-static inline __be16 ax25_type_trans(struct sk_buff *skb, struct net_device *dev)
-{
- skb->dev = dev;
- skb_reset_mac_header(skb);
- skb->pkt_type = PACKET_HOST;
- return htons(ETH_P_AX25);
-}
-
-/* af_ax25.c */
-extern struct hlist_head ax25_list;
-extern spinlock_t ax25_list_lock;
-extern void ax25_cb_add(ax25_cb *);
-struct sock *ax25_find_listener(ax25_address *, int, struct net_device *, int);
-struct sock *ax25_get_socket(ax25_address *, ax25_address *, int);
-extern ax25_cb *ax25_find_cb(ax25_address *, ax25_address *, ax25_digi *, struct net_device *);
-extern void ax25_send_to_raw(ax25_address *, struct sk_buff *, int);
-extern void ax25_destroy_socket(ax25_cb *);
-extern ax25_cb * __must_check ax25_create_cb(void);
-extern void ax25_fillin_cb(ax25_cb *, ax25_dev *);
-extern struct sock *ax25_make_new(struct sock *, struct ax25_dev *);
-
-/* ax25_addr.c */
-extern const ax25_address ax25_bcast;
-extern const ax25_address ax25_defaddr;
-extern const ax25_address null_ax25_address;
-extern char *ax2asc(char *buf, const ax25_address *);
-extern void asc2ax(ax25_address *addr, const char *callsign);
-extern int ax25cmp(const ax25_address *, const ax25_address *);
-extern int ax25digicmp(const ax25_digi *, const ax25_digi *);
-extern const unsigned char *ax25_addr_parse(const unsigned char *, int,
- ax25_address *, ax25_address *, ax25_digi *, int *, int *);
-extern int ax25_addr_build(unsigned char *, const ax25_address *,
- const ax25_address *, const ax25_digi *, int, int);
-extern int ax25_addr_size(const ax25_digi *);
-extern void ax25_digi_invert(const ax25_digi *, ax25_digi *);
-
-/* ax25_dev.c */
-extern ax25_dev *ax25_dev_list;
-extern spinlock_t ax25_dev_lock;
-
-static inline ax25_dev *ax25_dev_ax25dev(struct net_device *dev)
-{
- return dev->ax25_ptr;
-}
-
-extern ax25_dev *ax25_addr_ax25dev(ax25_address *);
-extern void ax25_dev_device_up(struct net_device *);
-extern void ax25_dev_device_down(struct net_device *);
-extern int ax25_fwd_ioctl(unsigned int, struct ax25_fwd_struct *);
-extern struct net_device *ax25_fwd_dev(struct net_device *);
-extern void ax25_dev_free(void);
-
-/* ax25_ds_in.c */
-extern int ax25_ds_frame_in(ax25_cb *, struct sk_buff *, int);
-
-/* ax25_ds_subr.c */
-extern void ax25_ds_nr_error_recovery(ax25_cb *);
-extern void ax25_ds_enquiry_response(ax25_cb *);
-extern void ax25_ds_establish_data_link(ax25_cb *);
-extern void ax25_dev_dama_off(ax25_dev *);
-extern void ax25_dama_on(ax25_cb *);
-extern void ax25_dama_off(ax25_cb *);
-
-/* ax25_ds_timer.c */
-extern void ax25_ds_setup_timer(ax25_dev *);
-extern void ax25_ds_set_timer(ax25_dev *);
-extern void ax25_ds_del_timer(ax25_dev *);
-extern void ax25_ds_timer(ax25_cb *);
-extern void ax25_ds_t1_timeout(ax25_cb *);
-extern void ax25_ds_heartbeat_expiry(ax25_cb *);
-extern void ax25_ds_t3timer_expiry(ax25_cb *);
-extern void ax25_ds_idletimer_expiry(ax25_cb *);
-
-/* ax25_iface.c */
-
-struct ax25_protocol {
- struct ax25_protocol *next;
- unsigned int pid;
- int (*func)(struct sk_buff *, ax25_cb *);
-};
-
-extern void ax25_register_pid(struct ax25_protocol *ap);
-extern void ax25_protocol_release(unsigned int);
-
-struct ax25_linkfail {
- struct hlist_node lf_node;
- void (*func)(ax25_cb *, int);
-};
-
-extern void ax25_linkfail_register(struct ax25_linkfail *lf);
-extern void ax25_linkfail_release(struct ax25_linkfail *lf);
-extern int __must_check ax25_listen_register(ax25_address *,
- struct net_device *);
-extern void ax25_listen_release(ax25_address *, struct net_device *);
-extern int (*ax25_protocol_function(unsigned int))(struct sk_buff *, ax25_cb *);
-extern int ax25_listen_mine(ax25_address *, struct net_device *);
-extern void ax25_link_failed(ax25_cb *, int);
-extern int ax25_protocol_is_registered(unsigned int);
-
-/* ax25_in.c */
-extern int ax25_rx_iframe(ax25_cb *, struct sk_buff *);
-extern int ax25_kiss_rcv(struct sk_buff *, struct net_device *, struct packet_type *, struct net_device *);
-
-/* ax25_ip.c */
-extern int ax25_hard_header(struct sk_buff *, struct net_device *,
- unsigned short, const void *,
- const void *, unsigned int);
-extern int ax25_rebuild_header(struct sk_buff *);
-extern const struct header_ops ax25_header_ops;
-
-/* ax25_out.c */
-extern ax25_cb *ax25_send_frame(struct sk_buff *, int, ax25_address *, ax25_address *, ax25_digi *, struct net_device *);
-extern void ax25_output(ax25_cb *, int, struct sk_buff *);
-extern void ax25_kick(ax25_cb *);
-extern void ax25_transmit_buffer(ax25_cb *, struct sk_buff *, int);
-extern void ax25_queue_xmit(struct sk_buff *skb, struct net_device *dev);
-extern int ax25_check_iframes_acked(ax25_cb *, unsigned short);
-
-/* ax25_route.c */
-extern void ax25_rt_device_down(struct net_device *);
-extern int ax25_rt_ioctl(unsigned int, void __user *);
-extern const struct file_operations ax25_route_fops;
-extern ax25_route *ax25_get_route(ax25_address *addr, struct net_device *dev);
-extern int ax25_rt_autobind(ax25_cb *, ax25_address *);
-extern struct sk_buff *ax25_rt_build_path(struct sk_buff *, ax25_address *, ax25_address *, ax25_digi *);
-extern void ax25_rt_free(void);
-
-/* ax25_std_in.c */
-extern int ax25_std_frame_in(ax25_cb *, struct sk_buff *, int);
-
-/* ax25_std_subr.c */
-extern void ax25_std_nr_error_recovery(ax25_cb *);
-extern void ax25_std_establish_data_link(ax25_cb *);
-extern void ax25_std_transmit_enquiry(ax25_cb *);
-extern void ax25_std_enquiry_response(ax25_cb *);
-extern void ax25_std_timeout_response(ax25_cb *);
-
-/* ax25_std_timer.c */
-extern void ax25_std_heartbeat_expiry(ax25_cb *);
-extern void ax25_std_t1timer_expiry(ax25_cb *);
-extern void ax25_std_t2timer_expiry(ax25_cb *);
-extern void ax25_std_t3timer_expiry(ax25_cb *);
-extern void ax25_std_idletimer_expiry(ax25_cb *);
-
-/* ax25_subr.c */
-extern void ax25_clear_queues(ax25_cb *);
-extern void ax25_frames_acked(ax25_cb *, unsigned short);
-extern void ax25_requeue_frames(ax25_cb *);
-extern int ax25_validate_nr(ax25_cb *, unsigned short);
-extern int ax25_decode(ax25_cb *, struct sk_buff *, int *, int *, int *);
-extern void ax25_send_control(ax25_cb *, int, int, int);
-extern void ax25_return_dm(struct net_device *, ax25_address *, ax25_address *, ax25_digi *);
-extern void ax25_calculate_t1(ax25_cb *);
-extern void ax25_calculate_rtt(ax25_cb *);
-extern void ax25_disconnect(ax25_cb *, int);
-
-/* ax25_timer.c */
-extern void ax25_setup_timers(ax25_cb *);
-extern void ax25_start_heartbeat(ax25_cb *);
-extern void ax25_start_t1timer(ax25_cb *);
-extern void ax25_start_t2timer(ax25_cb *);
-extern void ax25_start_t3timer(ax25_cb *);
-extern void ax25_start_idletimer(ax25_cb *);
-extern void ax25_stop_heartbeat(ax25_cb *);
-extern void ax25_stop_t1timer(ax25_cb *);
-extern void ax25_stop_t2timer(ax25_cb *);
-extern void ax25_stop_t3timer(ax25_cb *);
-extern void ax25_stop_idletimer(ax25_cb *);
-extern int ax25_t1timer_running(ax25_cb *);
-extern unsigned long ax25_display_timer(struct timer_list *);
-
-/* ax25_uid.c */
-extern int ax25_uid_policy;
-extern ax25_uid_assoc *ax25_findbyuid(uid_t);
-extern int __must_check ax25_uid_ioctl(int, struct sockaddr_ax25 *);
-extern const struct file_operations ax25_uid_fops;
-extern void ax25_uid_free(void);
-
-/* sysctl_net_ax25.c */
-#ifdef CONFIG_SYSCTL
-extern void ax25_register_sysctl(void);
-extern void ax25_unregister_sysctl(void);
-#else
-static inline void ax25_register_sysctl(void) {};
-static inline void ax25_unregister_sysctl(void) {};
-#endif /* CONFIG_SYSCTL */
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/ax88796.h b/ANDROID_3.4.5/include/net/ax88796.h
deleted file mode 100644
index b9a3beca..00000000
--- a/ANDROID_3.4.5/include/net/ax88796.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* include/net/ax88796.h
- *
- * Copyright 2005 Simtec Electronics
- * Ben Dooks <ben@simtec.co.uk>
- *
- * 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.
- *
-*/
-
-#ifndef __NET_AX88796_PLAT_H
-#define __NET_AX88796_PLAT_H
-
-#define AXFLG_HAS_EEPROM (1<<0)
-#define AXFLG_MAC_FROMDEV (1<<1) /* device already has MAC */
-#define AXFLG_HAS_93CX6 (1<<2) /* use eeprom_93cx6 driver */
-#define AXFLG_MAC_FROMPLATFORM (1<<3) /* MAC given by platform data */
-
-struct ax_plat_data {
- unsigned int flags;
- unsigned char wordlength; /* 1 or 2 */
- unsigned char dcr_val; /* default value for DCR */
- unsigned char rcr_val; /* default value for RCR */
- unsigned char gpoc_val; /* default value for GPOC */
- u32 *reg_offsets; /* register offsets */
- u8 *mac_addr; /* MAC addr (only used when
- AXFLG_MAC_FROMPLATFORM is used */
-};
-
-#endif /* __NET_AX88796_PLAT_H */
diff --git a/ANDROID_3.4.5/include/net/bluetooth/bluetooth.h b/ANDROID_3.4.5/include/net/bluetooth/bluetooth.h
deleted file mode 100644
index a65910bd..00000000
--- a/ANDROID_3.4.5/include/net/bluetooth/bluetooth.h
+++ /dev/null
@@ -1,290 +0,0 @@
-/*
- BlueZ - Bluetooth protocol stack for Linux
- Copyright (C) 2000-2001 Qualcomm Incorporated
-
- Written 2000,2001 by Maxim Krasnyansky <maxk@qualcomm.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;
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.
- IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) AND AUTHOR(S) BE LIABLE FOR ANY
- CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
- ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PATENTS,
- COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS, RELATING TO USE OF THIS
- SOFTWARE IS DISCLAIMED.
-*/
-
-#ifndef __BLUETOOTH_H
-#define __BLUETOOTH_H
-
-#include <asm/types.h>
-#include <asm/byteorder.h>
-#include <linux/list.h>
-#include <linux/poll.h>
-#include <net/sock.h>
-
-#ifndef AF_BLUETOOTH
-#define AF_BLUETOOTH 31
-#define PF_BLUETOOTH AF_BLUETOOTH
-#endif
-
-/* Bluetooth versions */
-#define BLUETOOTH_VER_1_1 1
-#define BLUETOOTH_VER_1_2 2
-#define BLUETOOTH_VER_2_0 3
-
-/* Reserv for core and drivers use */
-#define BT_SKB_RESERVE 8
-
-#define BTPROTO_L2CAP 0
-#define BTPROTO_HCI 1
-#define BTPROTO_SCO 2
-#define BTPROTO_RFCOMM 3
-#define BTPROTO_BNEP 4
-#define BTPROTO_CMTP 5
-#define BTPROTO_HIDP 6
-#define BTPROTO_AVDTP 7
-
-#define SOL_HCI 0
-#define SOL_L2CAP 6
-#define SOL_SCO 17
-#define SOL_RFCOMM 18
-
-#define BT_SECURITY 4
-struct bt_security {
- __u8 level;
- __u8 key_size;
-};
-#define BT_SECURITY_SDP 0
-#define BT_SECURITY_LOW 1
-#define BT_SECURITY_MEDIUM 2
-#define BT_SECURITY_HIGH 3
-
-#define BT_DEFER_SETUP 7
-
-#define BT_FLUSHABLE 8
-
-#define BT_FLUSHABLE_OFF 0
-#define BT_FLUSHABLE_ON 1
-
-#define BT_POWER 9
-struct bt_power {
- __u8 force_active;
-};
-#define BT_POWER_FORCE_ACTIVE_OFF 0
-#define BT_POWER_FORCE_ACTIVE_ON 1
-
-#define BT_CHANNEL_POLICY 10
-
-/* BR/EDR only (default policy)
- * AMP controllers cannot be used.
- * Channel move requests from the remote device are denied.
- * If the L2CAP channel is currently using AMP, move the channel to BR/EDR.
- */
-#define BT_CHANNEL_POLICY_BREDR_ONLY 0
-
-/* BR/EDR Preferred
- * Allow use of AMP controllers.
- * If the L2CAP channel is currently on AMP, move it to BR/EDR.
- * Channel move requests from the remote device are allowed.
- */
-#define BT_CHANNEL_POLICY_BREDR_PREFERRED 1
-
-/* AMP Preferred
- * Allow use of AMP controllers
- * If the L2CAP channel is currently on BR/EDR and AMP controller
- * resources are available, initiate a channel move to AMP.
- * Channel move requests from the remote device are allowed.
- * If the L2CAP socket has not been connected yet, try to create
- * and configure the channel directly on an AMP controller rather
- * than BR/EDR.
- */
-#define BT_CHANNEL_POLICY_AMP_PREFERRED 2
-
-__printf(1, 2)
-int bt_info(const char *fmt, ...);
-__printf(1, 2)
-int bt_err(const char *fmt, ...);
-
-#define BT_INFO(fmt, ...) bt_info(fmt "\n", ##__VA_ARGS__)
-#define BT_ERR(fmt, ...) bt_err(fmt "\n", ##__VA_ARGS__)
-#define BT_DBG(fmt, ...) pr_debug(fmt "\n", ##__VA_ARGS__)
-
-/* Connection and socket states */
-enum {
- BT_CONNECTED = 1, /* Equal to TCP_ESTABLISHED to make net code happy */
- BT_OPEN,
- BT_BOUND,
- BT_LISTEN,
- BT_CONNECT,
- BT_CONNECT2,
- BT_CONFIG,
- BT_DISCONN,
- BT_CLOSED
-};
-
-/* If unused will be removed by compiler */
-static inline const char *state_to_string(int state)
-{
- switch (state) {
- case BT_CONNECTED:
- return "BT_CONNECTED";
- case BT_OPEN:
- return "BT_OPEN";
- case BT_BOUND:
- return "BT_BOUND";
- case BT_LISTEN:
- return "BT_LISTEN";
- case BT_CONNECT:
- return "BT_CONNECT";
- case BT_CONNECT2:
- return "BT_CONNECT2";
- case BT_CONFIG:
- return "BT_CONFIG";
- case BT_DISCONN:
- return "BT_DISCONN";
- case BT_CLOSED:
- return "BT_CLOSED";
- }
-
- return "invalid state";
-}
-
-/* BD Address */
-typedef struct {
- __u8 b[6];
-} __packed bdaddr_t;
-
-#define BDADDR_ANY (&(bdaddr_t) {{0, 0, 0, 0, 0, 0}})
-#define BDADDR_LOCAL (&(bdaddr_t) {{0, 0, 0, 0xff, 0xff, 0xff}})
-
-/* Copy, swap, convert BD Address */
-static inline int bacmp(bdaddr_t *ba1, bdaddr_t *ba2)
-{
- return memcmp(ba1, ba2, sizeof(bdaddr_t));
-}
-static inline void bacpy(bdaddr_t *dst, bdaddr_t *src)
-{
- memcpy(dst, src, sizeof(bdaddr_t));
-}
-
-void baswap(bdaddr_t *dst, bdaddr_t *src);
-char *batostr(bdaddr_t *ba);
-bdaddr_t *strtoba(char *str);
-
-/* Common socket structures and functions */
-
-#define bt_sk(__sk) ((struct bt_sock *) __sk)
-
-struct bt_sock {
- struct sock sk;
- bdaddr_t src;
- bdaddr_t dst;
- struct list_head accept_q;
- struct sock *parent;
- u32 defer_setup;
- bool suspended;
-};
-
-struct bt_sock_list {
- struct hlist_head head;
- rwlock_t lock;
-};
-
-int bt_sock_register(int proto, const struct net_proto_family *ops);
-int bt_sock_unregister(int proto);
-void bt_sock_link(struct bt_sock_list *l, struct sock *s);
-void bt_sock_unlink(struct bt_sock_list *l, struct sock *s);
-int bt_sock_recvmsg(struct kiocb *iocb, struct socket *sock,
- struct msghdr *msg, size_t len, int flags);
-int bt_sock_stream_recvmsg(struct kiocb *iocb, struct socket *sock,
- struct msghdr *msg, size_t len, int flags);
-uint bt_sock_poll(struct file * file, struct socket *sock, poll_table *wait);
-int bt_sock_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg);
-int bt_sock_wait_state(struct sock *sk, int state, unsigned long timeo);
-
-void bt_accept_enqueue(struct sock *parent, struct sock *sk);
-void bt_accept_unlink(struct sock *sk);
-struct sock *bt_accept_dequeue(struct sock *parent, struct socket *newsock);
-
-/* Skb helpers */
-struct bt_skb_cb {
- __u8 pkt_type;
- __u8 incoming;
- __u16 expect;
- __u16 tx_seq;
- __u8 retries;
- __u8 sar;
- __u8 force_active;
-};
-#define bt_cb(skb) ((struct bt_skb_cb *)((skb)->cb))
-
-static inline struct sk_buff *bt_skb_alloc(unsigned int len, gfp_t how)
-{
- struct sk_buff *skb;
-
- if ((skb = alloc_skb(len + BT_SKB_RESERVE, how))) {
- skb_reserve(skb, BT_SKB_RESERVE);
- bt_cb(skb)->incoming = 0;
- }
- return skb;
-}
-
-static inline struct sk_buff *bt_skb_send_alloc(struct sock *sk,
- unsigned long len, int nb, int *err)
-{
- struct sk_buff *skb;
-
- release_sock(sk);
- if ((skb = sock_alloc_send_skb(sk, len + BT_SKB_RESERVE, nb, err))) {
- skb_reserve(skb, BT_SKB_RESERVE);
- bt_cb(skb)->incoming = 0;
- }
- lock_sock(sk);
-
- if (!skb && *err)
- return NULL;
-
- *err = sock_error(sk);
- if (*err)
- goto out;
-
- if (sk->sk_shutdown) {
- *err = -ECONNRESET;
- goto out;
- }
-
- return skb;
-
-out:
- kfree_skb(skb);
- return NULL;
-}
-
-int bt_to_errno(__u16 code);
-
-extern int hci_sock_init(void);
-extern void hci_sock_cleanup(void);
-
-extern int bt_sysfs_init(void);
-extern void bt_sysfs_cleanup(void);
-
-extern struct dentry *bt_debugfs;
-
-int l2cap_init(void);
-void l2cap_exit(void);
-
-int sco_init(void);
-void sco_exit(void);
-
-void bt_sock_reclassify_lock(struct sock *sk, int proto);
-
-#endif /* __BLUETOOTH_H */
diff --git a/ANDROID_3.4.5/include/net/bluetooth/hci.h b/ANDROID_3.4.5/include/net/bluetooth/hci.h
deleted file mode 100644
index 78132a8a..00000000
--- a/ANDROID_3.4.5/include/net/bluetooth/hci.h
+++ /dev/null
@@ -1,1441 +0,0 @@
-/*
- BlueZ - Bluetooth protocol stack for Linux
- Copyright (C) 2000-2001 Qualcomm Incorporated
-
- Written 2000,2001 by Maxim Krasnyansky <maxk@qualcomm.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;
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.
- IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) AND AUTHOR(S) BE LIABLE FOR ANY
- CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
- ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PATENTS,
- COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS, RELATING TO USE OF THIS
- SOFTWARE IS DISCLAIMED.
-*/
-
-#ifndef __HCI_H
-#define __HCI_H
-
-#define HCI_MAX_ACL_SIZE 1024
-#define HCI_MAX_SCO_SIZE 255
-#define HCI_MAX_EVENT_SIZE 260
-#define HCI_MAX_FRAME_SIZE (HCI_MAX_ACL_SIZE + 4)
-
-/* HCI dev events */
-#define HCI_DEV_REG 1
-#define HCI_DEV_UNREG 2
-#define HCI_DEV_UP 3
-#define HCI_DEV_DOWN 4
-#define HCI_DEV_SUSPEND 5
-#define HCI_DEV_RESUME 6
-
-/* HCI notify events */
-#define HCI_NOTIFY_CONN_ADD 1
-#define HCI_NOTIFY_CONN_DEL 2
-#define HCI_NOTIFY_VOICE_SETTING 3
-
-/* HCI bus types */
-#define HCI_VIRTUAL 0
-#define HCI_USB 1
-#define HCI_PCCARD 2
-#define HCI_UART 3
-#define HCI_RS232 4
-#define HCI_PCI 5
-#define HCI_SDIO 6
-
-/* HCI controller types */
-#define HCI_BREDR 0x00
-#define HCI_AMP 0x01
-
-/* HCI device quirks */
-enum {
- HCI_QUIRK_NO_RESET,
- HCI_QUIRK_RAW_DEVICE,
- HCI_QUIRK_FIXUP_BUFFER_SIZE
-};
-
-/* HCI device flags */
-enum {
- HCI_UP,
- HCI_INIT,
- HCI_RUNNING,
-
- HCI_PSCAN,
- HCI_ISCAN,
- HCI_AUTH,
- HCI_ENCRYPT,
- HCI_INQUIRY,
-
- HCI_RAW,
-
- HCI_RESET,
-};
-
-/*
- * BR/EDR and/or LE controller flags: the flags defined here should represent
- * states from the controller.
- */
-enum {
- HCI_SETUP,
- HCI_AUTO_OFF,
- HCI_MGMT,
- HCI_PAIRABLE,
- HCI_SERVICE_CACHE,
- HCI_LINK_KEYS,
- HCI_DEBUG_KEYS,
- HCI_UNREGISTER,
-
- HCI_LE_SCAN,
- HCI_SSP_ENABLED,
- HCI_HS_ENABLED,
- HCI_LE_ENABLED,
- HCI_CONNECTABLE,
- HCI_DISCOVERABLE,
- HCI_LINK_SECURITY,
- HCI_PENDING_CLASS,
-};
-
-/* HCI ioctl defines */
-#define HCIDEVUP _IOW('H', 201, int)
-#define HCIDEVDOWN _IOW('H', 202, int)
-#define HCIDEVRESET _IOW('H', 203, int)
-#define HCIDEVRESTAT _IOW('H', 204, int)
-
-#define HCIGETDEVLIST _IOR('H', 210, int)
-#define HCIGETDEVINFO _IOR('H', 211, int)
-#define HCIGETCONNLIST _IOR('H', 212, int)
-#define HCIGETCONNINFO _IOR('H', 213, int)
-#define HCIGETAUTHINFO _IOR('H', 215, int)
-
-#define HCISETRAW _IOW('H', 220, int)
-#define HCISETSCAN _IOW('H', 221, int)
-#define HCISETAUTH _IOW('H', 222, int)
-#define HCISETENCRYPT _IOW('H', 223, int)
-#define HCISETPTYPE _IOW('H', 224, int)
-#define HCISETLINKPOL _IOW('H', 225, int)
-#define HCISETLINKMODE _IOW('H', 226, int)
-#define HCISETACLMTU _IOW('H', 227, int)
-#define HCISETSCOMTU _IOW('H', 228, int)
-
-#define HCIBLOCKADDR _IOW('H', 230, int)
-#define HCIUNBLOCKADDR _IOW('H', 231, int)
-
-#define HCIINQUIRY _IOR('H', 240, int)
-
-/* HCI timeouts */
-#define HCI_CONNECT_TIMEOUT (40000) /* 40 seconds */
-#define HCI_DISCONN_TIMEOUT (2000) /* 2 seconds */
-#define HCI_PAIRING_TIMEOUT (60000) /* 60 seconds */
-#define HCI_IDLE_TIMEOUT (6000) /* 6 seconds */
-#define HCI_INIT_TIMEOUT (10000) /* 10 seconds */
-#define HCI_CMD_TIMEOUT (1000) /* 1 seconds */
-#define HCI_ACL_TX_TIMEOUT (45000) /* 45 seconds */
-
-/* HCI data types */
-#define HCI_COMMAND_PKT 0x01
-#define HCI_ACLDATA_PKT 0x02
-#define HCI_SCODATA_PKT 0x03
-#define HCI_EVENT_PKT 0x04
-#define HCI_VENDOR_PKT 0xff
-
-/* HCI packet types */
-#define HCI_DM1 0x0008
-#define HCI_DM3 0x0400
-#define HCI_DM5 0x4000
-#define HCI_DH1 0x0010
-#define HCI_DH3 0x0800
-#define HCI_DH5 0x8000
-
-#define HCI_HV1 0x0020
-#define HCI_HV2 0x0040
-#define HCI_HV3 0x0080
-
-#define SCO_PTYPE_MASK (HCI_HV1 | HCI_HV2 | HCI_HV3)
-#define ACL_PTYPE_MASK (~SCO_PTYPE_MASK)
-
-/* eSCO packet types */
-#define ESCO_HV1 0x0001
-#define ESCO_HV2 0x0002
-#define ESCO_HV3 0x0004
-#define ESCO_EV3 0x0008
-#define ESCO_EV4 0x0010
-#define ESCO_EV5 0x0020
-#define ESCO_2EV3 0x0040
-#define ESCO_3EV3 0x0080
-#define ESCO_2EV5 0x0100
-#define ESCO_3EV5 0x0200
-
-#define SCO_ESCO_MASK (ESCO_HV1 | ESCO_HV2 | ESCO_HV3)
-#define EDR_ESCO_MASK (ESCO_2EV3 | ESCO_3EV3 | ESCO_2EV5 | ESCO_3EV5)
-#define ALL_ESCO_MASK (SCO_ESCO_MASK | ESCO_EV3 | ESCO_EV4 | ESCO_EV5 | \
- EDR_ESCO_MASK)
-
-/* ACL flags */
-#define ACL_START_NO_FLUSH 0x00
-#define ACL_CONT 0x01
-#define ACL_START 0x02
-#define ACL_ACTIVE_BCAST 0x04
-#define ACL_PICO_BCAST 0x08
-
-/* Baseband links */
-#define SCO_LINK 0x00
-#define ACL_LINK 0x01
-#define ESCO_LINK 0x02
-/* Low Energy links do not have defined link type. Use invented one */
-#define LE_LINK 0x80
-
-/* LMP features */
-#define LMP_3SLOT 0x01
-#define LMP_5SLOT 0x02
-#define LMP_ENCRYPT 0x04
-#define LMP_SOFFSET 0x08
-#define LMP_TACCURACY 0x10
-#define LMP_RSWITCH 0x20
-#define LMP_HOLD 0x40
-#define LMP_SNIFF 0x80
-
-#define LMP_PARK 0x01
-#define LMP_RSSI 0x02
-#define LMP_QUALITY 0x04
-#define LMP_SCO 0x08
-#define LMP_HV2 0x10
-#define LMP_HV3 0x20
-#define LMP_ULAW 0x40
-#define LMP_ALAW 0x80
-
-#define LMP_CVSD 0x01
-#define LMP_PSCHEME 0x02
-#define LMP_PCONTROL 0x04
-
-#define LMP_RSSI_INQ 0x40
-#define LMP_ESCO 0x80
-
-#define LMP_EV4 0x01
-#define LMP_EV5 0x02
-#define LMP_NO_BREDR 0x20
-#define LMP_LE 0x40
-
-#define LMP_SNIFF_SUBR 0x02
-#define LMP_PAUSE_ENC 0x04
-#define LMP_EDR_ESCO_2M 0x20
-#define LMP_EDR_ESCO_3M 0x40
-#define LMP_EDR_3S_ESCO 0x80
-
-#define LMP_EXT_INQ 0x01
-#define LMP_SIMUL_LE_BR 0x02
-#define LMP_SIMPLE_PAIR 0x08
-#define LMP_NO_FLUSH 0x40
-
-#define LMP_LSTO 0x01
-#define LMP_INQ_TX_PWR 0x02
-#define LMP_EXTFEATURES 0x80
-
-/* Extended LMP features */
-#define LMP_HOST_SSP 0x01
-#define LMP_HOST_LE 0x02
-#define LMP_HOST_LE_BREDR 0x04
-
-/* Connection modes */
-#define HCI_CM_ACTIVE 0x0000
-#define HCI_CM_HOLD 0x0001
-#define HCI_CM_SNIFF 0x0002
-#define HCI_CM_PARK 0x0003
-
-/* Link policies */
-#define HCI_LP_RSWITCH 0x0001
-#define HCI_LP_HOLD 0x0002
-#define HCI_LP_SNIFF 0x0004
-#define HCI_LP_PARK 0x0008
-
-/* Link modes */
-#define HCI_LM_ACCEPT 0x8000
-#define HCI_LM_MASTER 0x0001
-#define HCI_LM_AUTH 0x0002
-#define HCI_LM_ENCRYPT 0x0004
-#define HCI_LM_TRUSTED 0x0008
-#define HCI_LM_RELIABLE 0x0010
-#define HCI_LM_SECURE 0x0020
-
-/* Authentication types */
-#define HCI_AT_NO_BONDING 0x00
-#define HCI_AT_NO_BONDING_MITM 0x01
-#define HCI_AT_DEDICATED_BONDING 0x02
-#define HCI_AT_DEDICATED_BONDING_MITM 0x03
-#define HCI_AT_GENERAL_BONDING 0x04
-#define HCI_AT_GENERAL_BONDING_MITM 0x05
-
-/* Link Key types */
-#define HCI_LK_COMBINATION 0x00
-#define HCI_LK_LOCAL_UNIT 0x01
-#define HCI_LK_REMOTE_UNIT 0x02
-#define HCI_LK_DEBUG_COMBINATION 0x03
-#define HCI_LK_UNAUTH_COMBINATION 0x04
-#define HCI_LK_AUTH_COMBINATION 0x05
-#define HCI_LK_CHANGED_COMBINATION 0x06
-/* The spec doesn't define types for SMP keys, the _MASTER suffix is implied */
-#define HCI_SMP_STK 0x80
-#define HCI_SMP_STK_SLAVE 0x81
-#define HCI_SMP_LTK 0x82
-#define HCI_SMP_LTK_SLAVE 0x83
-
-/* ---- HCI Error Codes ---- */
-#define HCI_ERROR_AUTH_FAILURE 0x05
-#define HCI_ERROR_REJ_BAD_ADDR 0x0f
-#define HCI_ERROR_REMOTE_USER_TERM 0x13
-#define HCI_ERROR_LOCAL_HOST_TERM 0x16
-#define HCI_ERROR_PAIRING_NOT_ALLOWED 0x18
-
-/* Flow control modes */
-#define HCI_FLOW_CTL_MODE_PACKET_BASED 0x00
-#define HCI_FLOW_CTL_MODE_BLOCK_BASED 0x01
-
-/* Extended Inquiry Response field types */
-#define EIR_FLAGS 0x01 /* flags */
-#define EIR_UUID16_SOME 0x02 /* 16-bit UUID, more available */
-#define EIR_UUID16_ALL 0x03 /* 16-bit UUID, all listed */
-#define EIR_UUID32_SOME 0x04 /* 32-bit UUID, more available */
-#define EIR_UUID32_ALL 0x05 /* 32-bit UUID, all listed */
-#define EIR_UUID128_SOME 0x06 /* 128-bit UUID, more available */
-#define EIR_UUID128_ALL 0x07 /* 128-bit UUID, all listed */
-#define EIR_NAME_SHORT 0x08 /* shortened local name */
-#define EIR_NAME_COMPLETE 0x09 /* complete local name */
-#define EIR_TX_POWER 0x0A /* transmit power level */
-#define EIR_CLASS_OF_DEV 0x0D /* Class of Device */
-#define EIR_SSP_HASH_C 0x0E /* Simple Pairing Hash C */
-#define EIR_SSP_RAND_R 0x0F /* Simple Pairing Randomizer R */
-#define EIR_DEVICE_ID 0x10 /* device ID */
-
-/* ----- HCI Commands ---- */
-#define HCI_OP_NOP 0x0000
-
-#define HCI_OP_INQUIRY 0x0401
-struct hci_cp_inquiry {
- __u8 lap[3];
- __u8 length;
- __u8 num_rsp;
-} __packed;
-
-#define HCI_OP_INQUIRY_CANCEL 0x0402
-
-#define HCI_OP_EXIT_PERIODIC_INQ 0x0404
-
-#define HCI_OP_CREATE_CONN 0x0405
-struct hci_cp_create_conn {
- bdaddr_t bdaddr;
- __le16 pkt_type;
- __u8 pscan_rep_mode;
- __u8 pscan_mode;
- __le16 clock_offset;
- __u8 role_switch;
-} __packed;
-
-#define HCI_OP_DISCONNECT 0x0406
-struct hci_cp_disconnect {
- __le16 handle;
- __u8 reason;
-} __packed;
-
-#define HCI_OP_ADD_SCO 0x0407
-struct hci_cp_add_sco {
- __le16 handle;
- __le16 pkt_type;
-} __packed;
-
-#define HCI_OP_CREATE_CONN_CANCEL 0x0408
-struct hci_cp_create_conn_cancel {
- bdaddr_t bdaddr;
-} __packed;
-
-#define HCI_OP_ACCEPT_CONN_REQ 0x0409
-struct hci_cp_accept_conn_req {
- bdaddr_t bdaddr;
- __u8 role;
-} __packed;
-
-#define HCI_OP_REJECT_CONN_REQ 0x040a
-struct hci_cp_reject_conn_req {
- bdaddr_t bdaddr;
- __u8 reason;
-} __packed;
-
-#define HCI_OP_LINK_KEY_REPLY 0x040b
-struct hci_cp_link_key_reply {
- bdaddr_t bdaddr;
- __u8 link_key[16];
-} __packed;
-
-#define HCI_OP_LINK_KEY_NEG_REPLY 0x040c
-struct hci_cp_link_key_neg_reply {
- bdaddr_t bdaddr;
-} __packed;
-
-#define HCI_OP_PIN_CODE_REPLY 0x040d
-struct hci_cp_pin_code_reply {
- bdaddr_t bdaddr;
- __u8 pin_len;
- __u8 pin_code[16];
-} __packed;
-struct hci_rp_pin_code_reply {
- __u8 status;
- bdaddr_t bdaddr;
-} __packed;
-
-#define HCI_OP_PIN_CODE_NEG_REPLY 0x040e
-struct hci_cp_pin_code_neg_reply {
- bdaddr_t bdaddr;
-} __packed;
-struct hci_rp_pin_code_neg_reply {
- __u8 status;
- bdaddr_t bdaddr;
-} __packed;
-
-#define HCI_OP_CHANGE_CONN_PTYPE 0x040f
-struct hci_cp_change_conn_ptype {
- __le16 handle;
- __le16 pkt_type;
-} __packed;
-
-#define HCI_OP_AUTH_REQUESTED 0x0411
-struct hci_cp_auth_requested {
- __le16 handle;
-} __packed;
-
-#define HCI_OP_SET_CONN_ENCRYPT 0x0413
-struct hci_cp_set_conn_encrypt {
- __le16 handle;
- __u8 encrypt;
-} __packed;
-
-#define HCI_OP_CHANGE_CONN_LINK_KEY 0x0415
-struct hci_cp_change_conn_link_key {
- __le16 handle;
-} __packed;
-
-#define HCI_OP_REMOTE_NAME_REQ 0x0419
-struct hci_cp_remote_name_req {
- bdaddr_t bdaddr;
- __u8 pscan_rep_mode;
- __u8 pscan_mode;
- __le16 clock_offset;
-} __packed;
-
-#define HCI_OP_REMOTE_NAME_REQ_CANCEL 0x041a
-struct hci_cp_remote_name_req_cancel {
- bdaddr_t bdaddr;
-} __packed;
-
-#define HCI_OP_READ_REMOTE_FEATURES 0x041b
-struct hci_cp_read_remote_features {
- __le16 handle;
-} __packed;
-
-#define HCI_OP_READ_REMOTE_EXT_FEATURES 0x041c
-struct hci_cp_read_remote_ext_features {
- __le16 handle;
- __u8 page;
-} __packed;
-
-#define HCI_OP_READ_REMOTE_VERSION 0x041d
-struct hci_cp_read_remote_version {
- __le16 handle;
-} __packed;
-
-#define HCI_OP_SETUP_SYNC_CONN 0x0428
-struct hci_cp_setup_sync_conn {
- __le16 handle;
- __le32 tx_bandwidth;
- __le32 rx_bandwidth;
- __le16 max_latency;
- __le16 voice_setting;
- __u8 retrans_effort;
- __le16 pkt_type;
-} __packed;
-
-#define HCI_OP_ACCEPT_SYNC_CONN_REQ 0x0429
-struct hci_cp_accept_sync_conn_req {
- bdaddr_t bdaddr;
- __le32 tx_bandwidth;
- __le32 rx_bandwidth;
- __le16 max_latency;
- __le16 content_format;
- __u8 retrans_effort;
- __le16 pkt_type;
-} __packed;
-
-#define HCI_OP_REJECT_SYNC_CONN_REQ 0x042a
-struct hci_cp_reject_sync_conn_req {
- bdaddr_t bdaddr;
- __u8 reason;
-} __packed;
-
-#define HCI_OP_IO_CAPABILITY_REPLY 0x042b
-struct hci_cp_io_capability_reply {
- bdaddr_t bdaddr;
- __u8 capability;
- __u8 oob_data;
- __u8 authentication;
-} __packed;
-
-#define HCI_OP_USER_CONFIRM_REPLY 0x042c
-struct hci_cp_user_confirm_reply {
- bdaddr_t bdaddr;
-} __packed;
-struct hci_rp_user_confirm_reply {
- __u8 status;
- bdaddr_t bdaddr;
-} __packed;
-
-#define HCI_OP_USER_CONFIRM_NEG_REPLY 0x042d
-
-#define HCI_OP_USER_PASSKEY_REPLY 0x042e
-struct hci_cp_user_passkey_reply {
- bdaddr_t bdaddr;
- __le32 passkey;
-} __packed;
-
-#define HCI_OP_USER_PASSKEY_NEG_REPLY 0x042f
-
-#define HCI_OP_REMOTE_OOB_DATA_REPLY 0x0430
-struct hci_cp_remote_oob_data_reply {
- bdaddr_t bdaddr;
- __u8 hash[16];
- __u8 randomizer[16];
-} __packed;
-
-#define HCI_OP_REMOTE_OOB_DATA_NEG_REPLY 0x0433
-struct hci_cp_remote_oob_data_neg_reply {
- bdaddr_t bdaddr;
-} __packed;
-
-#define HCI_OP_IO_CAPABILITY_NEG_REPLY 0x0434
-struct hci_cp_io_capability_neg_reply {
- bdaddr_t bdaddr;
- __u8 reason;
-} __packed;
-
-#define HCI_OP_SNIFF_MODE 0x0803
-struct hci_cp_sniff_mode {
- __le16 handle;
- __le16 max_interval;
- __le16 min_interval;
- __le16 attempt;
- __le16 timeout;
-} __packed;
-
-#define HCI_OP_EXIT_SNIFF_MODE 0x0804
-struct hci_cp_exit_sniff_mode {
- __le16 handle;
-} __packed;
-
-#define HCI_OP_ROLE_DISCOVERY 0x0809
-struct hci_cp_role_discovery {
- __le16 handle;
-} __packed;
-struct hci_rp_role_discovery {
- __u8 status;
- __le16 handle;
- __u8 role;
-} __packed;
-
-#define HCI_OP_SWITCH_ROLE 0x080b
-struct hci_cp_switch_role {
- bdaddr_t bdaddr;
- __u8 role;
-} __packed;
-
-#define HCI_OP_READ_LINK_POLICY 0x080c
-struct hci_cp_read_link_policy {
- __le16 handle;
-} __packed;
-struct hci_rp_read_link_policy {
- __u8 status;
- __le16 handle;
- __le16 policy;
-} __packed;
-
-#define HCI_OP_WRITE_LINK_POLICY 0x080d
-struct hci_cp_write_link_policy {
- __le16 handle;
- __le16 policy;
-} __packed;
-struct hci_rp_write_link_policy {
- __u8 status;
- __le16 handle;
-} __packed;
-
-#define HCI_OP_READ_DEF_LINK_POLICY 0x080e
-struct hci_rp_read_def_link_policy {
- __u8 status;
- __le16 policy;
-} __packed;
-
-#define HCI_OP_WRITE_DEF_LINK_POLICY 0x080f
-struct hci_cp_write_def_link_policy {
- __le16 policy;
-} __packed;
-
-#define HCI_OP_SNIFF_SUBRATE 0x0811
-struct hci_cp_sniff_subrate {
- __le16 handle;
- __le16 max_latency;
- __le16 min_remote_timeout;
- __le16 min_local_timeout;
-} __packed;
-
-#define HCI_OP_SET_EVENT_MASK 0x0c01
-struct hci_cp_set_event_mask {
- __u8 mask[8];
-} __packed;
-
-#define HCI_OP_RESET 0x0c03
-
-#define HCI_OP_SET_EVENT_FLT 0x0c05
-struct hci_cp_set_event_flt {
- __u8 flt_type;
- __u8 cond_type;
- __u8 condition[0];
-} __packed;
-
-/* Filter types */
-#define HCI_FLT_CLEAR_ALL 0x00
-#define HCI_FLT_INQ_RESULT 0x01
-#define HCI_FLT_CONN_SETUP 0x02
-
-/* CONN_SETUP Condition types */
-#define HCI_CONN_SETUP_ALLOW_ALL 0x00
-#define HCI_CONN_SETUP_ALLOW_CLASS 0x01
-#define HCI_CONN_SETUP_ALLOW_BDADDR 0x02
-
-/* CONN_SETUP Conditions */
-#define HCI_CONN_SETUP_AUTO_OFF 0x01
-#define HCI_CONN_SETUP_AUTO_ON 0x02
-
-#define HCI_OP_DELETE_STORED_LINK_KEY 0x0c12
-struct hci_cp_delete_stored_link_key {
- bdaddr_t bdaddr;
- __u8 delete_all;
-} __packed;
-
-#define HCI_MAX_NAME_LENGTH 248
-
-#define HCI_OP_WRITE_LOCAL_NAME 0x0c13
-struct hci_cp_write_local_name {
- __u8 name[HCI_MAX_NAME_LENGTH];
-} __packed;
-
-#define HCI_OP_READ_LOCAL_NAME 0x0c14
-struct hci_rp_read_local_name {
- __u8 status;
- __u8 name[HCI_MAX_NAME_LENGTH];
-} __packed;
-
-#define HCI_OP_WRITE_CA_TIMEOUT 0x0c16
-
-#define HCI_OP_WRITE_PG_TIMEOUT 0x0c18
-
-#define HCI_OP_WRITE_SCAN_ENABLE 0x0c1a
- #define SCAN_DISABLED 0x00
- #define SCAN_INQUIRY 0x01
- #define SCAN_PAGE 0x02
-
-#define HCI_OP_READ_AUTH_ENABLE 0x0c1f
-
-#define HCI_OP_WRITE_AUTH_ENABLE 0x0c20
- #define AUTH_DISABLED 0x00
- #define AUTH_ENABLED 0x01
-
-#define HCI_OP_READ_ENCRYPT_MODE 0x0c21
-
-#define HCI_OP_WRITE_ENCRYPT_MODE 0x0c22
- #define ENCRYPT_DISABLED 0x00
- #define ENCRYPT_P2P 0x01
- #define ENCRYPT_BOTH 0x02
-
-#define HCI_OP_READ_CLASS_OF_DEV 0x0c23
-struct hci_rp_read_class_of_dev {
- __u8 status;
- __u8 dev_class[3];
-} __packed;
-
-#define HCI_OP_WRITE_CLASS_OF_DEV 0x0c24
-struct hci_cp_write_class_of_dev {
- __u8 dev_class[3];
-} __packed;
-
-#define HCI_OP_READ_VOICE_SETTING 0x0c25
-struct hci_rp_read_voice_setting {
- __u8 status;
- __le16 voice_setting;
-} __packed;
-
-#define HCI_OP_WRITE_VOICE_SETTING 0x0c26
-struct hci_cp_write_voice_setting {
- __le16 voice_setting;
-} __packed;
-
-#define HCI_OP_HOST_BUFFER_SIZE 0x0c33
-struct hci_cp_host_buffer_size {
- __le16 acl_mtu;
- __u8 sco_mtu;
- __le16 acl_max_pkt;
- __le16 sco_max_pkt;
-} __packed;
-
-#define HCI_OP_WRITE_INQUIRY_MODE 0x0c45
-
-#define HCI_MAX_EIR_LENGTH 240
-
-#define HCI_OP_WRITE_EIR 0x0c52
-struct hci_cp_write_eir {
- __u8 fec;
- __u8 data[HCI_MAX_EIR_LENGTH];
-} __packed;
-
-#define HCI_OP_READ_SSP_MODE 0x0c55
-struct hci_rp_read_ssp_mode {
- __u8 status;
- __u8 mode;
-} __packed;
-
-#define HCI_OP_WRITE_SSP_MODE 0x0c56
-struct hci_cp_write_ssp_mode {
- __u8 mode;
-} __packed;
-
-#define HCI_OP_READ_LOCAL_OOB_DATA 0x0c57
-struct hci_rp_read_local_oob_data {
- __u8 status;
- __u8 hash[16];
- __u8 randomizer[16];
-} __packed;
-
-#define HCI_OP_READ_INQ_RSP_TX_POWER 0x0c58
-
-#define HCI_OP_READ_FLOW_CONTROL_MODE 0x0c66
-struct hci_rp_read_flow_control_mode {
- __u8 status;
- __u8 mode;
-} __packed;
-
-#define HCI_OP_WRITE_LE_HOST_SUPPORTED 0x0c6d
-struct hci_cp_write_le_host_supported {
- __u8 le;
- __u8 simul;
-} __packed;
-
-#define HCI_OP_READ_LOCAL_VERSION 0x1001
-struct hci_rp_read_local_version {
- __u8 status;
- __u8 hci_ver;
- __le16 hci_rev;
- __u8 lmp_ver;
- __le16 manufacturer;
- __le16 lmp_subver;
-} __packed;
-
-#define HCI_OP_READ_LOCAL_COMMANDS 0x1002
-struct hci_rp_read_local_commands {
- __u8 status;
- __u8 commands[64];
-} __packed;
-
-#define HCI_OP_READ_LOCAL_FEATURES 0x1003
-struct hci_rp_read_local_features {
- __u8 status;
- __u8 features[8];
-} __packed;
-
-#define HCI_OP_READ_LOCAL_EXT_FEATURES 0x1004
-struct hci_cp_read_local_ext_features {
- __u8 page;
-} __packed;
-struct hci_rp_read_local_ext_features {
- __u8 status;
- __u8 page;
- __u8 max_page;
- __u8 features[8];
-} __packed;
-
-#define HCI_OP_READ_BUFFER_SIZE 0x1005
-struct hci_rp_read_buffer_size {
- __u8 status;
- __le16 acl_mtu;
- __u8 sco_mtu;
- __le16 acl_max_pkt;
- __le16 sco_max_pkt;
-} __packed;
-
-#define HCI_OP_READ_BD_ADDR 0x1009
-struct hci_rp_read_bd_addr {
- __u8 status;
- bdaddr_t bdaddr;
-} __packed;
-
-#define HCI_OP_READ_DATA_BLOCK_SIZE 0x100a
-struct hci_rp_read_data_block_size {
- __u8 status;
- __le16 max_acl_len;
- __le16 block_len;
- __le16 num_blocks;
-} __packed;
-
-#define HCI_OP_WRITE_PAGE_SCAN_ACTIVITY 0x0c1c
-struct hci_cp_write_page_scan_activity {
- __le16 interval;
- __le16 window;
-} __packed;
-
-#define HCI_OP_WRITE_PAGE_SCAN_TYPE 0x0c47
- #define PAGE_SCAN_TYPE_STANDARD 0x00
- #define PAGE_SCAN_TYPE_INTERLACED 0x01
-
-#define HCI_OP_READ_LOCAL_AMP_INFO 0x1409
-struct hci_rp_read_local_amp_info {
- __u8 status;
- __u8 amp_status;
- __le32 total_bw;
- __le32 max_bw;
- __le32 min_latency;
- __le32 max_pdu;
- __u8 amp_type;
- __le16 pal_cap;
- __le16 max_assoc_size;
- __le32 max_flush_to;
- __le32 be_flush_to;
-} __packed;
-
-#define HCI_OP_LE_SET_EVENT_MASK 0x2001
-struct hci_cp_le_set_event_mask {
- __u8 mask[8];
-} __packed;
-
-#define HCI_OP_LE_READ_BUFFER_SIZE 0x2002
-struct hci_rp_le_read_buffer_size {
- __u8 status;
- __le16 le_mtu;
- __u8 le_max_pkt;
-} __packed;
-
-#define HCI_OP_LE_SET_SCAN_PARAM 0x200b
-struct hci_cp_le_set_scan_param {
- __u8 type;
- __le16 interval;
- __le16 window;
- __u8 own_address_type;
- __u8 filter_policy;
-} __packed;
-
-#define LE_SCANNING_DISABLED 0x00
-#define LE_SCANNING_ENABLED 0x01
-
-#define HCI_OP_LE_SET_SCAN_ENABLE 0x200c
-struct hci_cp_le_set_scan_enable {
- __u8 enable;
- __u8 filter_dup;
-} __packed;
-
-#define HCI_OP_LE_CREATE_CONN 0x200d
-struct hci_cp_le_create_conn {
- __le16 scan_interval;
- __le16 scan_window;
- __u8 filter_policy;
- __u8 peer_addr_type;
- bdaddr_t peer_addr;
- __u8 own_address_type;
- __le16 conn_interval_min;
- __le16 conn_interval_max;
- __le16 conn_latency;
- __le16 supervision_timeout;
- __le16 min_ce_len;
- __le16 max_ce_len;
-} __packed;
-
-#define HCI_OP_LE_CREATE_CONN_CANCEL 0x200e
-
-#define HCI_OP_LE_CONN_UPDATE 0x2013
-struct hci_cp_le_conn_update {
- __le16 handle;
- __le16 conn_interval_min;
- __le16 conn_interval_max;
- __le16 conn_latency;
- __le16 supervision_timeout;
- __le16 min_ce_len;
- __le16 max_ce_len;
-} __packed;
-
-#define HCI_OP_LE_START_ENC 0x2019
-struct hci_cp_le_start_enc {
- __le16 handle;
- __u8 rand[8];
- __le16 ediv;
- __u8 ltk[16];
-} __packed;
-
-#define HCI_OP_LE_LTK_REPLY 0x201a
-struct hci_cp_le_ltk_reply {
- __le16 handle;
- __u8 ltk[16];
-} __packed;
-struct hci_rp_le_ltk_reply {
- __u8 status;
- __le16 handle;
-} __packed;
-
-#define HCI_OP_LE_LTK_NEG_REPLY 0x201b
-struct hci_cp_le_ltk_neg_reply {
- __le16 handle;
-} __packed;
-struct hci_rp_le_ltk_neg_reply {
- __u8 status;
- __le16 handle;
-} __packed;
-
-/* ---- HCI Events ---- */
-#define HCI_EV_INQUIRY_COMPLETE 0x01
-
-#define HCI_EV_INQUIRY_RESULT 0x02
-struct inquiry_info {
- bdaddr_t bdaddr;
- __u8 pscan_rep_mode;
- __u8 pscan_period_mode;
- __u8 pscan_mode;
- __u8 dev_class[3];
- __le16 clock_offset;
-} __packed;
-
-#define HCI_EV_CONN_COMPLETE 0x03
-struct hci_ev_conn_complete {
- __u8 status;
- __le16 handle;
- bdaddr_t bdaddr;
- __u8 link_type;
- __u8 encr_mode;
-} __packed;
-
-#define HCI_EV_CONN_REQUEST 0x04
-struct hci_ev_conn_request {
- bdaddr_t bdaddr;
- __u8 dev_class[3];
- __u8 link_type;
-} __packed;
-
-#define HCI_EV_DISCONN_COMPLETE 0x05
-struct hci_ev_disconn_complete {
- __u8 status;
- __le16 handle;
- __u8 reason;
-} __packed;
-
-#define HCI_EV_AUTH_COMPLETE 0x06
-struct hci_ev_auth_complete {
- __u8 status;
- __le16 handle;
-} __packed;
-
-#define HCI_EV_REMOTE_NAME 0x07
-struct hci_ev_remote_name {
- __u8 status;
- bdaddr_t bdaddr;
- __u8 name[HCI_MAX_NAME_LENGTH];
-} __packed;
-
-#define HCI_EV_ENCRYPT_CHANGE 0x08
-struct hci_ev_encrypt_change {
- __u8 status;
- __le16 handle;
- __u8 encrypt;
-} __packed;
-
-#define HCI_EV_CHANGE_LINK_KEY_COMPLETE 0x09
-struct hci_ev_change_link_key_complete {
- __u8 status;
- __le16 handle;
-} __packed;
-
-#define HCI_EV_REMOTE_FEATURES 0x0b
-struct hci_ev_remote_features {
- __u8 status;
- __le16 handle;
- __u8 features[8];
-} __packed;
-
-#define HCI_EV_REMOTE_VERSION 0x0c
-struct hci_ev_remote_version {
- __u8 status;
- __le16 handle;
- __u8 lmp_ver;
- __le16 manufacturer;
- __le16 lmp_subver;
-} __packed;
-
-#define HCI_EV_QOS_SETUP_COMPLETE 0x0d
-struct hci_qos {
- __u8 service_type;
- __u32 token_rate;
- __u32 peak_bandwidth;
- __u32 latency;
- __u32 delay_variation;
-} __packed;
-struct hci_ev_qos_setup_complete {
- __u8 status;
- __le16 handle;
- struct hci_qos qos;
-} __packed;
-
-#define HCI_EV_CMD_COMPLETE 0x0e
-struct hci_ev_cmd_complete {
- __u8 ncmd;
- __le16 opcode;
-} __packed;
-
-#define HCI_EV_CMD_STATUS 0x0f
-struct hci_ev_cmd_status {
- __u8 status;
- __u8 ncmd;
- __le16 opcode;
-} __packed;
-
-#define HCI_EV_ROLE_CHANGE 0x12
-struct hci_ev_role_change {
- __u8 status;
- bdaddr_t bdaddr;
- __u8 role;
-} __packed;
-
-#define HCI_EV_NUM_COMP_PKTS 0x13
-struct hci_comp_pkts_info {
- __le16 handle;
- __le16 count;
-} __packed;
-
-struct hci_ev_num_comp_pkts {
- __u8 num_hndl;
- struct hci_comp_pkts_info handles[0];
-} __packed;
-
-#define HCI_EV_MODE_CHANGE 0x14
-struct hci_ev_mode_change {
- __u8 status;
- __le16 handle;
- __u8 mode;
- __le16 interval;
-} __packed;
-
-#define HCI_EV_PIN_CODE_REQ 0x16
-struct hci_ev_pin_code_req {
- bdaddr_t bdaddr;
-} __packed;
-
-#define HCI_EV_LINK_KEY_REQ 0x17
-struct hci_ev_link_key_req {
- bdaddr_t bdaddr;
-} __packed;
-
-#define HCI_EV_LINK_KEY_NOTIFY 0x18
-struct hci_ev_link_key_notify {
- bdaddr_t bdaddr;
- __u8 link_key[16];
- __u8 key_type;
-} __packed;
-
-#define HCI_EV_CLOCK_OFFSET 0x1c
-struct hci_ev_clock_offset {
- __u8 status;
- __le16 handle;
- __le16 clock_offset;
-} __packed;
-
-#define HCI_EV_PKT_TYPE_CHANGE 0x1d
-struct hci_ev_pkt_type_change {
- __u8 status;
- __le16 handle;
- __le16 pkt_type;
-} __packed;
-
-#define HCI_EV_PSCAN_REP_MODE 0x20
-struct hci_ev_pscan_rep_mode {
- bdaddr_t bdaddr;
- __u8 pscan_rep_mode;
-} __packed;
-
-#define HCI_EV_INQUIRY_RESULT_WITH_RSSI 0x22
-struct inquiry_info_with_rssi {
- bdaddr_t bdaddr;
- __u8 pscan_rep_mode;
- __u8 pscan_period_mode;
- __u8 dev_class[3];
- __le16 clock_offset;
- __s8 rssi;
-} __packed;
-struct inquiry_info_with_rssi_and_pscan_mode {
- bdaddr_t bdaddr;
- __u8 pscan_rep_mode;
- __u8 pscan_period_mode;
- __u8 pscan_mode;
- __u8 dev_class[3];
- __le16 clock_offset;
- __s8 rssi;
-} __packed;
-
-#define HCI_EV_REMOTE_EXT_FEATURES 0x23
-struct hci_ev_remote_ext_features {
- __u8 status;
- __le16 handle;
- __u8 page;
- __u8 max_page;
- __u8 features[8];
-} __packed;
-
-#define HCI_EV_SYNC_CONN_COMPLETE 0x2c
-struct hci_ev_sync_conn_complete {
- __u8 status;
- __le16 handle;
- bdaddr_t bdaddr;
- __u8 link_type;
- __u8 tx_interval;
- __u8 retrans_window;
- __le16 rx_pkt_len;
- __le16 tx_pkt_len;
- __u8 air_mode;
-} __packed;
-
-#define HCI_EV_SYNC_CONN_CHANGED 0x2d
-struct hci_ev_sync_conn_changed {
- __u8 status;
- __le16 handle;
- __u8 tx_interval;
- __u8 retrans_window;
- __le16 rx_pkt_len;
- __le16 tx_pkt_len;
-} __packed;
-
-#define HCI_EV_SNIFF_SUBRATE 0x2e
-struct hci_ev_sniff_subrate {
- __u8 status;
- __le16 handle;
- __le16 max_tx_latency;
- __le16 max_rx_latency;
- __le16 max_remote_timeout;
- __le16 max_local_timeout;
-} __packed;
-
-#define HCI_EV_EXTENDED_INQUIRY_RESULT 0x2f
-struct extended_inquiry_info {
- bdaddr_t bdaddr;
- __u8 pscan_rep_mode;
- __u8 pscan_period_mode;
- __u8 dev_class[3];
- __le16 clock_offset;
- __s8 rssi;
- __u8 data[240];
-} __packed;
-
-#define HCI_EV_IO_CAPA_REQUEST 0x31
-struct hci_ev_io_capa_request {
- bdaddr_t bdaddr;
-} __packed;
-
-#define HCI_EV_IO_CAPA_REPLY 0x32
-struct hci_ev_io_capa_reply {
- bdaddr_t bdaddr;
- __u8 capability;
- __u8 oob_data;
- __u8 authentication;
-} __packed;
-
-#define HCI_EV_USER_CONFIRM_REQUEST 0x33
-struct hci_ev_user_confirm_req {
- bdaddr_t bdaddr;
- __le32 passkey;
-} __packed;
-
-#define HCI_EV_USER_PASSKEY_REQUEST 0x34
-struct hci_ev_user_passkey_req {
- bdaddr_t bdaddr;
-} __packed;
-
-#define HCI_EV_REMOTE_OOB_DATA_REQUEST 0x35
-struct hci_ev_remote_oob_data_request {
- bdaddr_t bdaddr;
-} __packed;
-
-#define HCI_EV_SIMPLE_PAIR_COMPLETE 0x36
-struct hci_ev_simple_pair_complete {
- __u8 status;
- bdaddr_t bdaddr;
-} __packed;
-
-#define HCI_EV_REMOTE_HOST_FEATURES 0x3d
-struct hci_ev_remote_host_features {
- bdaddr_t bdaddr;
- __u8 features[8];
-} __packed;
-
-#define HCI_EV_LE_META 0x3e
-struct hci_ev_le_meta {
- __u8 subevent;
-} __packed;
-
-#define HCI_EV_NUM_COMP_BLOCKS 0x48
-struct hci_comp_blocks_info {
- __le16 handle;
- __le16 pkts;
- __le16 blocks;
-} __packed;
-
-struct hci_ev_num_comp_blocks {
- __le16 num_blocks;
- __u8 num_hndl;
- struct hci_comp_blocks_info handles[0];
-} __packed;
-
-/* Low energy meta events */
-#define HCI_EV_LE_CONN_COMPLETE 0x01
-struct hci_ev_le_conn_complete {
- __u8 status;
- __le16 handle;
- __u8 role;
- __u8 bdaddr_type;
- bdaddr_t bdaddr;
- __le16 interval;
- __le16 latency;
- __le16 supervision_timeout;
- __u8 clk_accurancy;
-} __packed;
-
-#define HCI_EV_LE_LTK_REQ 0x05
-struct hci_ev_le_ltk_req {
- __le16 handle;
- __u8 random[8];
- __le16 ediv;
-} __packed;
-
-/* Advertising report event types */
-#define ADV_IND 0x00
-#define ADV_DIRECT_IND 0x01
-#define ADV_SCAN_IND 0x02
-#define ADV_NONCONN_IND 0x03
-#define ADV_SCAN_RSP 0x04
-
-#define ADDR_LE_DEV_PUBLIC 0x00
-#define ADDR_LE_DEV_RANDOM 0x01
-
-#define HCI_EV_LE_ADVERTISING_REPORT 0x02
-struct hci_ev_le_advertising_info {
- __u8 evt_type;
- __u8 bdaddr_type;
- bdaddr_t bdaddr;
- __u8 length;
- __u8 data[0];
-} __packed;
-
-/* Internal events generated by Bluetooth stack */
-#define HCI_EV_STACK_INTERNAL 0xfd
-struct hci_ev_stack_internal {
- __u16 type;
- __u8 data[0];
-} __packed;
-
-#define HCI_EV_SI_DEVICE 0x01
-struct hci_ev_si_device {
- __u16 event;
- __u16 dev_id;
-} __packed;
-
-#define HCI_EV_SI_SECURITY 0x02
-struct hci_ev_si_security {
- __u16 event;
- __u16 proto;
- __u16 subproto;
- __u8 incoming;
-} __packed;
-
-/* ---- HCI Packet structures ---- */
-#define HCI_COMMAND_HDR_SIZE 3
-#define HCI_EVENT_HDR_SIZE 2
-#define HCI_ACL_HDR_SIZE 4
-#define HCI_SCO_HDR_SIZE 3
-
-struct hci_command_hdr {
- __le16 opcode; /* OCF & OGF */
- __u8 plen;
-} __packed;
-
-struct hci_event_hdr {
- __u8 evt;
- __u8 plen;
-} __packed;
-
-struct hci_acl_hdr {
- __le16 handle; /* Handle & Flags(PB, BC) */
- __le16 dlen;
-} __packed;
-
-struct hci_sco_hdr {
- __le16 handle;
- __u8 dlen;
-} __packed;
-
-#include <linux/skbuff.h>
-static inline struct hci_event_hdr *hci_event_hdr(const struct sk_buff *skb)
-{
- return (struct hci_event_hdr *) skb->data;
-}
-
-static inline struct hci_acl_hdr *hci_acl_hdr(const struct sk_buff *skb)
-{
- return (struct hci_acl_hdr *) skb->data;
-}
-
-static inline struct hci_sco_hdr *hci_sco_hdr(const struct sk_buff *skb)
-{
- return (struct hci_sco_hdr *) skb->data;
-}
-
-/* Command opcode pack/unpack */
-#define hci_opcode_pack(ogf, ocf) (__u16) ((ocf & 0x03ff)|(ogf << 10))
-#define hci_opcode_ogf(op) (op >> 10)
-#define hci_opcode_ocf(op) (op & 0x03ff)
-
-/* ACL handle and flags pack/unpack */
-#define hci_handle_pack(h, f) (__u16) ((h & 0x0fff)|(f << 12))
-#define hci_handle(h) (h & 0x0fff)
-#define hci_flags(h) (h >> 12)
-
-/* ---- HCI Sockets ---- */
-
-/* Socket options */
-#define HCI_DATA_DIR 1
-#define HCI_FILTER 2
-#define HCI_TIME_STAMP 3
-
-/* CMSG flags */
-#define HCI_CMSG_DIR 0x0001
-#define HCI_CMSG_TSTAMP 0x0002
-
-struct sockaddr_hci {
- sa_family_t hci_family;
- unsigned short hci_dev;
- unsigned short hci_channel;
-};
-#define HCI_DEV_NONE 0xffff
-
-#define HCI_CHANNEL_RAW 0
-#define HCI_CHANNEL_MONITOR 2
-#define HCI_CHANNEL_CONTROL 3
-
-struct hci_filter {
- unsigned long type_mask;
- unsigned long event_mask[2];
- __le16 opcode;
-};
-
-struct hci_ufilter {
- __u32 type_mask;
- __u32 event_mask[2];
- __le16 opcode;
-};
-
-#define HCI_FLT_TYPE_BITS 31
-#define HCI_FLT_EVENT_BITS 63
-#define HCI_FLT_OGF_BITS 63
-#define HCI_FLT_OCF_BITS 127
-
-/* ---- HCI Ioctl requests structures ---- */
-struct hci_dev_stats {
- __u32 err_rx;
- __u32 err_tx;
- __u32 cmd_tx;
- __u32 evt_rx;
- __u32 acl_tx;
- __u32 acl_rx;
- __u32 sco_tx;
- __u32 sco_rx;
- __u32 byte_rx;
- __u32 byte_tx;
-};
-
-struct hci_dev_info {
- __u16 dev_id;
- char name[8];
-
- bdaddr_t bdaddr;
-
- __u32 flags;
- __u8 type;
-
- __u8 features[8];
-
- __u32 pkt_type;
- __u32 link_policy;
- __u32 link_mode;
-
- __u16 acl_mtu;
- __u16 acl_pkts;
- __u16 sco_mtu;
- __u16 sco_pkts;
-
- struct hci_dev_stats stat;
-};
-
-struct hci_conn_info {
- __u16 handle;
- bdaddr_t bdaddr;
- __u8 type;
- __u8 out;
- __u16 state;
- __u32 link_mode;
- __u32 mtu;
- __u32 cnt;
- __u32 pkts;
-};
-
-struct hci_dev_req {
- __u16 dev_id;
- __u32 dev_opt;
-};
-
-struct hci_dev_list_req {
- __u16 dev_num;
- struct hci_dev_req dev_req[0]; /* hci_dev_req structures */
-};
-
-struct hci_conn_list_req {
- __u16 dev_id;
- __u16 conn_num;
- struct hci_conn_info conn_info[0];
-};
-
-struct hci_conn_info_req {
- bdaddr_t bdaddr;
- __u8 type;
- struct hci_conn_info conn_info[0];
-};
-
-struct hci_auth_info_req {
- bdaddr_t bdaddr;
- __u8 type;
-};
-
-struct hci_inquiry_req {
- __u16 dev_id;
- __u16 flags;
- __u8 lap[3];
- __u8 length;
- __u8 num_rsp;
-};
-#define IREQ_CACHE_FLUSH 0x0001
-
-extern bool enable_hs;
-extern bool enable_le;
-
-#endif /* __HCI_H */
diff --git a/ANDROID_3.4.5/include/net/bluetooth/hci_core.h b/ANDROID_3.4.5/include/net/bluetooth/hci_core.h
deleted file mode 100644
index 392b2cab..00000000
--- a/ANDROID_3.4.5/include/net/bluetooth/hci_core.h
+++ /dev/null
@@ -1,1080 +0,0 @@
-/*
- BlueZ - Bluetooth protocol stack for Linux
- Copyright (c) 2000-2001, 2010, Code Aurora Forum. All rights reserved.
-
- Written 2000,2001 by Maxim Krasnyansky <maxk@qualcomm.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;
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.
- IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) AND AUTHOR(S) BE LIABLE FOR ANY
- CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
- ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PATENTS,
- COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS, RELATING TO USE OF THIS
- SOFTWARE IS DISCLAIMED.
-*/
-
-#ifndef __HCI_CORE_H
-#define __HCI_CORE_H
-
-#include <linux/interrupt.h>
-#include <net/bluetooth/hci.h>
-
-/* HCI priority */
-#define HCI_PRIO_MAX 7
-
-/* HCI Core structures */
-struct inquiry_data {
- bdaddr_t bdaddr;
- __u8 pscan_rep_mode;
- __u8 pscan_period_mode;
- __u8 pscan_mode;
- __u8 dev_class[3];
- __le16 clock_offset;
- __s8 rssi;
- __u8 ssp_mode;
-};
-
-struct inquiry_entry {
- struct list_head all; /* inq_cache.all */
- struct list_head list; /* unknown or resolve */
- enum {
- NAME_NOT_KNOWN,
- NAME_NEEDED,
- NAME_PENDING,
- NAME_KNOWN,
- } name_state;
- __u32 timestamp;
- struct inquiry_data data;
-};
-
-struct discovery_state {
- int type;
- enum {
- DISCOVERY_STOPPED,
- DISCOVERY_STARTING,
- DISCOVERY_FINDING,
- DISCOVERY_RESOLVING,
- DISCOVERY_STOPPING,
- } state;
- struct list_head all; /* All devices found during inquiry */
- struct list_head unknown; /* Name state not known */
- struct list_head resolve; /* Name needs to be resolved */
- __u32 timestamp;
-};
-
-struct hci_conn_hash {
- struct list_head list;
- unsigned int acl_num;
- unsigned int sco_num;
- unsigned int le_num;
-};
-
-struct bdaddr_list {
- struct list_head list;
- bdaddr_t bdaddr;
-};
-
-struct bt_uuid {
- struct list_head list;
- u8 uuid[16];
- u8 svc_hint;
-};
-
-struct smp_ltk {
- struct list_head list;
- bdaddr_t bdaddr;
- u8 bdaddr_type;
- u8 authenticated;
- u8 type;
- u8 enc_size;
- __le16 ediv;
- u8 rand[8];
- u8 val[16];
-} __packed;
-
-struct link_key {
- struct list_head list;
- bdaddr_t bdaddr;
- u8 type;
- u8 val[16];
- u8 pin_len;
-};
-
-struct oob_data {
- struct list_head list;
- bdaddr_t bdaddr;
- u8 hash[16];
- u8 randomizer[16];
-};
-
-struct adv_entry {
- struct list_head list;
- bdaddr_t bdaddr;
- u8 bdaddr_type;
-};
-
-struct le_scan_params {
- u8 type;
- u16 interval;
- u16 window;
- int timeout;
-};
-
-#define HCI_MAX_SHORT_NAME_LENGTH 10
-
-#define NUM_REASSEMBLY 4
-struct hci_dev {
- struct list_head list;
- struct mutex lock;
-
- char name[8];
- unsigned long flags;
- __u16 id;
- __u8 bus;
- __u8 dev_type;
- bdaddr_t bdaddr;
- __u8 dev_name[HCI_MAX_NAME_LENGTH];
- __u8 short_name[HCI_MAX_SHORT_NAME_LENGTH];
- __u8 eir[HCI_MAX_EIR_LENGTH];
- __u8 dev_class[3];
- __u8 major_class;
- __u8 minor_class;
- __u8 features[8];
- __u8 host_features[8];
- __u8 commands[64];
- __u8 hci_ver;
- __u16 hci_rev;
- __u8 lmp_ver;
- __u16 manufacturer;
- __le16 lmp_subver;
- __u16 voice_setting;
- __u8 io_capability;
-
- __u16 pkt_type;
- __u16 esco_type;
- __u16 link_policy;
- __u16 link_mode;
-
- __u32 idle_timeout;
- __u16 sniff_min_interval;
- __u16 sniff_max_interval;
-
- __u8 amp_status;
- __u32 amp_total_bw;
- __u32 amp_max_bw;
- __u32 amp_min_latency;
- __u32 amp_max_pdu;
- __u8 amp_type;
- __u16 amp_pal_cap;
- __u16 amp_assoc_size;
- __u32 amp_max_flush_to;
- __u32 amp_be_flush_to;
-
- __u8 flow_ctl_mode;
-
- unsigned int auto_accept_delay;
-
- unsigned long quirks;
-
- atomic_t cmd_cnt;
- unsigned int acl_cnt;
- unsigned int sco_cnt;
- unsigned int le_cnt;
-
- unsigned int acl_mtu;
- unsigned int sco_mtu;
- unsigned int le_mtu;
- unsigned int acl_pkts;
- unsigned int sco_pkts;
- unsigned int le_pkts;
-
- __u16 block_len;
- __u16 block_mtu;
- __u16 num_blocks;
- __u16 block_cnt;
-
- unsigned long acl_last_tx;
- unsigned long sco_last_tx;
- unsigned long le_last_tx;
-
- struct workqueue_struct *workqueue;
-
- struct work_struct power_on;
- struct delayed_work power_off;
-
- __u16 discov_timeout;
- struct delayed_work discov_off;
-
- struct delayed_work service_cache;
-
- struct timer_list cmd_timer;
-
- struct work_struct rx_work;
- struct work_struct cmd_work;
- struct work_struct tx_work;
-
- struct sk_buff_head rx_q;
- struct sk_buff_head raw_q;
- struct sk_buff_head cmd_q;
-
- struct sk_buff *sent_cmd;
- struct sk_buff *reassembly[NUM_REASSEMBLY];
-
- struct mutex req_lock;
- wait_queue_head_t req_wait_q;
- __u32 req_status;
- __u32 req_result;
-
- __u16 init_last_cmd;
-
- struct list_head mgmt_pending;
-
- struct discovery_state discovery;
- struct hci_conn_hash conn_hash;
- struct list_head blacklist;
-
- struct list_head uuids;
-
- struct list_head link_keys;
-
- struct list_head long_term_keys;
-
- struct list_head remote_oob_data;
-
- struct list_head adv_entries;
- struct delayed_work adv_work;
-
- struct hci_dev_stats stat;
-
- struct sk_buff_head driver_init;
-
- void *core_data;
-
- atomic_t promisc;
-
- struct dentry *debugfs;
-
- struct device *parent;
- struct device dev;
-
- struct rfkill *rfkill;
-
- unsigned long dev_flags;
-
- struct delayed_work le_scan_disable;
-
- struct work_struct le_scan;
- struct le_scan_params le_scan_params;
-
- int (*open)(struct hci_dev *hdev);
- int (*close)(struct hci_dev *hdev);
- int (*flush)(struct hci_dev *hdev);
- int (*send)(struct sk_buff *skb);
- void (*notify)(struct hci_dev *hdev, unsigned int evt);
- int (*ioctl)(struct hci_dev *hdev, unsigned int cmd, unsigned long arg);
-};
-
-struct hci_conn {
- struct list_head list;
-
- atomic_t refcnt;
-
- bdaddr_t dst;
- __u8 dst_type;
- __u16 handle;
- __u16 state;
- __u8 mode;
- __u8 type;
- bool out;
- __u8 attempt;
- __u8 dev_class[3];
- __u8 features[8];
- __u16 interval;
- __u16 pkt_type;
- __u16 link_policy;
- __u32 link_mode;
- __u8 key_type;
- __u8 auth_type;
- __u8 sec_level;
- __u8 pending_sec_level;
- __u8 pin_length;
- __u8 enc_key_size;
- __u8 io_capability;
- __u16 disc_timeout;
- unsigned long flags;
-
- __u8 remote_cap;
- __u8 remote_auth;
- bool flush_key;
-
- unsigned int sent;
-
- struct sk_buff_head data_q;
- struct list_head chan_list;
-
- struct delayed_work disc_work;
- struct timer_list idle_timer;
- struct timer_list auto_accept_timer;
-
- struct device dev;
- atomic_t devref;
-
- struct hci_dev *hdev;
- void *l2cap_data;
- void *sco_data;
- void *smp_conn;
-
- struct hci_conn *link;
-
- void (*connect_cfm_cb) (struct hci_conn *conn, u8 status);
- void (*security_cfm_cb) (struct hci_conn *conn, u8 status);
- void (*disconn_cfm_cb) (struct hci_conn *conn, u8 reason);
-};
-
-struct hci_chan {
- struct list_head list;
-
- struct hci_conn *conn;
- struct sk_buff_head data_q;
- unsigned int sent;
-};
-
-extern struct list_head hci_dev_list;
-extern struct list_head hci_cb_list;
-extern rwlock_t hci_dev_list_lock;
-extern rwlock_t hci_cb_list_lock;
-
-/* ----- HCI interface to upper protocols ----- */
-extern int l2cap_connect_ind(struct hci_dev *hdev, bdaddr_t *bdaddr);
-extern int l2cap_connect_cfm(struct hci_conn *hcon, u8 status);
-extern int l2cap_disconn_ind(struct hci_conn *hcon);
-extern int l2cap_disconn_cfm(struct hci_conn *hcon, u8 reason);
-extern int l2cap_security_cfm(struct hci_conn *hcon, u8 status, u8 encrypt);
-extern int l2cap_recv_acldata(struct hci_conn *hcon, struct sk_buff *skb, u16 flags);
-
-extern int sco_connect_ind(struct hci_dev *hdev, bdaddr_t *bdaddr);
-extern int sco_connect_cfm(struct hci_conn *hcon, __u8 status);
-extern int sco_disconn_cfm(struct hci_conn *hcon, __u8 reason);
-extern int sco_recv_scodata(struct hci_conn *hcon, struct sk_buff *skb);
-
-/* ----- Inquiry cache ----- */
-#define INQUIRY_CACHE_AGE_MAX (HZ*30) /* 30 seconds */
-#define INQUIRY_ENTRY_AGE_MAX (HZ*60) /* 60 seconds */
-
-static inline void discovery_init(struct hci_dev *hdev)
-{
- hdev->discovery.state = DISCOVERY_STOPPED;
- INIT_LIST_HEAD(&hdev->discovery.all);
- INIT_LIST_HEAD(&hdev->discovery.unknown);
- INIT_LIST_HEAD(&hdev->discovery.resolve);
-}
-
-bool hci_discovery_active(struct hci_dev *hdev);
-
-void hci_discovery_set_state(struct hci_dev *hdev, int state);
-
-static inline int inquiry_cache_empty(struct hci_dev *hdev)
-{
- return list_empty(&hdev->discovery.all);
-}
-
-static inline long inquiry_cache_age(struct hci_dev *hdev)
-{
- struct discovery_state *c = &hdev->discovery;
- return jiffies - c->timestamp;
-}
-
-static inline long inquiry_entry_age(struct inquiry_entry *e)
-{
- return jiffies - e->timestamp;
-}
-
-struct inquiry_entry *hci_inquiry_cache_lookup(struct hci_dev *hdev,
- bdaddr_t *bdaddr);
-struct inquiry_entry *hci_inquiry_cache_lookup_unknown(struct hci_dev *hdev,
- bdaddr_t *bdaddr);
-struct inquiry_entry *hci_inquiry_cache_lookup_resolve(struct hci_dev *hdev,
- bdaddr_t *bdaddr,
- int state);
-void hci_inquiry_cache_update_resolve(struct hci_dev *hdev,
- struct inquiry_entry *ie);
-bool hci_inquiry_cache_update(struct hci_dev *hdev, struct inquiry_data *data,
- bool name_known, bool *ssp);
-
-/* ----- HCI Connections ----- */
-enum {
- HCI_CONN_AUTH_PEND,
- HCI_CONN_REAUTH_PEND,
- HCI_CONN_ENCRYPT_PEND,
- HCI_CONN_RSWITCH_PEND,
- HCI_CONN_MODE_CHANGE_PEND,
- HCI_CONN_SCO_SETUP_PEND,
- HCI_CONN_LE_SMP_PEND,
- HCI_CONN_MGMT_CONNECTED,
- HCI_CONN_SSP_ENABLED,
- HCI_CONN_POWER_SAVE,
- HCI_CONN_REMOTE_OOB,
-};
-
-static inline bool hci_conn_ssp_enabled(struct hci_conn *conn)
-{
- struct hci_dev *hdev = conn->hdev;
- return (test_bit(HCI_SSP_ENABLED, &hdev->dev_flags) &&
- test_bit(HCI_CONN_SSP_ENABLED, &conn->flags));
-}
-
-static inline void hci_conn_hash_init(struct hci_dev *hdev)
-{
- struct hci_conn_hash *h = &hdev->conn_hash;
- INIT_LIST_HEAD(&h->list);
- h->acl_num = 0;
- h->sco_num = 0;
- h->le_num = 0;
-}
-
-static inline void hci_conn_hash_add(struct hci_dev *hdev, struct hci_conn *c)
-{
- struct hci_conn_hash *h = &hdev->conn_hash;
- list_add_rcu(&c->list, &h->list);
- switch (c->type) {
- case ACL_LINK:
- h->acl_num++;
- break;
- case LE_LINK:
- h->le_num++;
- break;
- case SCO_LINK:
- case ESCO_LINK:
- h->sco_num++;
- break;
- }
-}
-
-static inline void hci_conn_hash_del(struct hci_dev *hdev, struct hci_conn *c)
-{
- struct hci_conn_hash *h = &hdev->conn_hash;
-
- list_del_rcu(&c->list);
- synchronize_rcu();
-
- switch (c->type) {
- case ACL_LINK:
- h->acl_num--;
- break;
- case LE_LINK:
- h->le_num--;
- break;
- case SCO_LINK:
- case ESCO_LINK:
- h->sco_num--;
- break;
- }
-}
-
-static inline unsigned int hci_conn_num(struct hci_dev *hdev, __u8 type)
-{
- struct hci_conn_hash *h = &hdev->conn_hash;
- switch (type) {
- case ACL_LINK:
- return h->acl_num;
- case LE_LINK:
- return h->le_num;
- case SCO_LINK:
- case ESCO_LINK:
- return h->sco_num;
- default:
- return 0;
- }
-}
-
-static inline struct hci_conn *hci_conn_hash_lookup_handle(struct hci_dev *hdev,
- __u16 handle)
-{
- struct hci_conn_hash *h = &hdev->conn_hash;
- struct hci_conn *c;
-
- rcu_read_lock();
-
- list_for_each_entry_rcu(c, &h->list, list) {
- if (c->handle == handle) {
- rcu_read_unlock();
- return c;
- }
- }
- rcu_read_unlock();
-
- return NULL;
-}
-
-static inline struct hci_conn *hci_conn_hash_lookup_ba(struct hci_dev *hdev,
- __u8 type, bdaddr_t *ba)
-{
- struct hci_conn_hash *h = &hdev->conn_hash;
- struct hci_conn *c;
-
- rcu_read_lock();
-
- list_for_each_entry_rcu(c, &h->list, list) {
- if (c->type == type && !bacmp(&c->dst, ba)) {
- rcu_read_unlock();
- return c;
- }
- }
-
- rcu_read_unlock();
-
- return NULL;
-}
-
-static inline struct hci_conn *hci_conn_hash_lookup_state(struct hci_dev *hdev,
- __u8 type, __u16 state)
-{
- struct hci_conn_hash *h = &hdev->conn_hash;
- struct hci_conn *c;
-
- rcu_read_lock();
-
- list_for_each_entry_rcu(c, &h->list, list) {
- if (c->type == type && c->state == state) {
- rcu_read_unlock();
- return c;
- }
- }
-
- rcu_read_unlock();
-
- return NULL;
-}
-
-void hci_acl_connect(struct hci_conn *conn);
-void hci_acl_disconn(struct hci_conn *conn, __u8 reason);
-void hci_add_sco(struct hci_conn *conn, __u16 handle);
-void hci_setup_sync(struct hci_conn *conn, __u16 handle);
-void hci_sco_setup(struct hci_conn *conn, __u8 status);
-
-struct hci_conn *hci_conn_add(struct hci_dev *hdev, int type,
- __u16 pkt_type, bdaddr_t *dst);
-int hci_conn_del(struct hci_conn *conn);
-void hci_conn_hash_flush(struct hci_dev *hdev);
-void hci_conn_check_pending(struct hci_dev *hdev);
-
-struct hci_chan *hci_chan_create(struct hci_conn *conn);
-int hci_chan_del(struct hci_chan *chan);
-void hci_chan_list_flush(struct hci_conn *conn);
-
-struct hci_conn *hci_connect(struct hci_dev *hdev, int type,
- __u16 pkt_type, bdaddr_t *dst,
- __u8 sec_level, __u8 auth_type);
-int hci_conn_check_link_mode(struct hci_conn *conn);
-int hci_conn_check_secure(struct hci_conn *conn, __u8 sec_level);
-int hci_conn_security(struct hci_conn *conn, __u8 sec_level, __u8 auth_type);
-int hci_conn_change_link_key(struct hci_conn *conn);
-int hci_conn_switch_role(struct hci_conn *conn, __u8 role);
-
-void hci_conn_enter_active_mode(struct hci_conn *conn, __u8 force_active);
-
-void hci_conn_hold_device(struct hci_conn *conn);
-void hci_conn_put_device(struct hci_conn *conn);
-
-static inline void hci_conn_hold(struct hci_conn *conn)
-{
- atomic_inc(&conn->refcnt);
- cancel_delayed_work(&conn->disc_work);
-}
-
-static inline void hci_conn_put(struct hci_conn *conn)
-{
- if (atomic_dec_and_test(&conn->refcnt)) {
- unsigned long timeo;
- if (conn->type == ACL_LINK || conn->type == LE_LINK) {
- del_timer(&conn->idle_timer);
- if (conn->state == BT_CONNECTED) {
- timeo = msecs_to_jiffies(conn->disc_timeout);
- if (!conn->out)
- timeo *= 20;
- } else {
- timeo = msecs_to_jiffies(10);
- }
- } else {
- timeo = msecs_to_jiffies(10);
- }
- cancel_delayed_work(&conn->disc_work);
- queue_delayed_work(conn->hdev->workqueue,
- &conn->disc_work, timeo);
- }
-}
-
-/* ----- HCI Devices ----- */
-static inline void hci_dev_put(struct hci_dev *d)
-{
- put_device(&d->dev);
-}
-
-static inline struct hci_dev *hci_dev_hold(struct hci_dev *d)
-{
- get_device(&d->dev);
- return d;
-}
-
-#define hci_dev_lock(d) mutex_lock(&d->lock)
-#define hci_dev_unlock(d) mutex_unlock(&d->lock)
-
-#define to_hci_dev(d) container_of(d, struct hci_dev, dev)
-#define to_hci_conn(c) container_of(c, struct hci_conn, dev)
-
-static inline void *hci_get_drvdata(struct hci_dev *hdev)
-{
- return dev_get_drvdata(&hdev->dev);
-}
-
-static inline void hci_set_drvdata(struct hci_dev *hdev, void *data)
-{
- dev_set_drvdata(&hdev->dev, data);
-}
-
-struct hci_dev *hci_dev_get(int index);
-struct hci_dev *hci_get_route(bdaddr_t *src, bdaddr_t *dst);
-
-struct hci_dev *hci_alloc_dev(void);
-void hci_free_dev(struct hci_dev *hdev);
-int hci_register_dev(struct hci_dev *hdev);
-void hci_unregister_dev(struct hci_dev *hdev);
-int hci_suspend_dev(struct hci_dev *hdev);
-int hci_resume_dev(struct hci_dev *hdev);
-int hci_dev_open(__u16 dev);
-int hci_dev_close(__u16 dev);
-int hci_dev_reset(__u16 dev);
-int hci_dev_reset_stat(__u16 dev);
-int hci_dev_cmd(unsigned int cmd, void __user *arg);
-int hci_get_dev_list(void __user *arg);
-int hci_get_dev_info(void __user *arg);
-int hci_get_conn_list(void __user *arg);
-int hci_get_conn_info(struct hci_dev *hdev, void __user *arg);
-int hci_get_auth_info(struct hci_dev *hdev, void __user *arg);
-int hci_inquiry(void __user *arg);
-
-struct bdaddr_list *hci_blacklist_lookup(struct hci_dev *hdev, bdaddr_t *bdaddr);
-int hci_blacklist_clear(struct hci_dev *hdev);
-int hci_blacklist_add(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 type);
-int hci_blacklist_del(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 type);
-
-int hci_uuids_clear(struct hci_dev *hdev);
-
-int hci_link_keys_clear(struct hci_dev *hdev);
-struct link_key *hci_find_link_key(struct hci_dev *hdev, bdaddr_t *bdaddr);
-int hci_add_link_key(struct hci_dev *hdev, struct hci_conn *conn, int new_key,
- bdaddr_t *bdaddr, u8 *val, u8 type, u8 pin_len);
-struct smp_ltk *hci_find_ltk(struct hci_dev *hdev, __le16 ediv, u8 rand[8]);
-int hci_add_ltk(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 addr_type, u8 type,
- int new_key, u8 authenticated, u8 tk[16], u8 enc_size, u16 ediv,
- u8 rand[8]);
-struct smp_ltk *hci_find_ltk_by_addr(struct hci_dev *hdev, bdaddr_t *bdaddr,
- u8 addr_type);
-int hci_remove_ltk(struct hci_dev *hdev, bdaddr_t *bdaddr);
-int hci_smp_ltks_clear(struct hci_dev *hdev);
-int hci_remove_link_key(struct hci_dev *hdev, bdaddr_t *bdaddr);
-
-int hci_remote_oob_data_clear(struct hci_dev *hdev);
-struct oob_data *hci_find_remote_oob_data(struct hci_dev *hdev,
- bdaddr_t *bdaddr);
-int hci_add_remote_oob_data(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 *hash,
- u8 *randomizer);
-int hci_remove_remote_oob_data(struct hci_dev *hdev, bdaddr_t *bdaddr);
-
-#define ADV_CLEAR_TIMEOUT (3*60*HZ) /* Three minutes */
-int hci_adv_entries_clear(struct hci_dev *hdev);
-struct adv_entry *hci_find_adv_entry(struct hci_dev *hdev, bdaddr_t *bdaddr);
-int hci_add_adv_entry(struct hci_dev *hdev,
- struct hci_ev_le_advertising_info *ev);
-
-void hci_del_off_timer(struct hci_dev *hdev);
-
-void hci_event_packet(struct hci_dev *hdev, struct sk_buff *skb);
-
-int hci_recv_frame(struct sk_buff *skb);
-int hci_recv_fragment(struct hci_dev *hdev, int type, void *data, int count);
-int hci_recv_stream_fragment(struct hci_dev *hdev, void *data, int count);
-
-void hci_init_sysfs(struct hci_dev *hdev);
-int hci_add_sysfs(struct hci_dev *hdev);
-void hci_del_sysfs(struct hci_dev *hdev);
-void hci_conn_init_sysfs(struct hci_conn *conn);
-void hci_conn_add_sysfs(struct hci_conn *conn);
-void hci_conn_del_sysfs(struct hci_conn *conn);
-
-#define SET_HCIDEV_DEV(hdev, pdev) ((hdev)->parent = (pdev))
-
-/* ----- LMP capabilities ----- */
-#define lmp_rswitch_capable(dev) ((dev)->features[0] & LMP_RSWITCH)
-#define lmp_encrypt_capable(dev) ((dev)->features[0] & LMP_ENCRYPT)
-#define lmp_sniff_capable(dev) ((dev)->features[0] & LMP_SNIFF)
-#define lmp_sniffsubr_capable(dev) ((dev)->features[5] & LMP_SNIFF_SUBR)
-#define lmp_esco_capable(dev) ((dev)->features[3] & LMP_ESCO)
-#define lmp_ssp_capable(dev) ((dev)->features[6] & LMP_SIMPLE_PAIR)
-#define lmp_no_flush_capable(dev) ((dev)->features[6] & LMP_NO_FLUSH)
-#define lmp_le_capable(dev) ((dev)->features[4] & LMP_LE)
-#define lmp_bredr_capable(dev) (!((dev)->features[4] & LMP_NO_BREDR))
-
-/* ----- Extended LMP capabilities ----- */
-#define lmp_host_le_capable(dev) ((dev)->host_features[0] & LMP_HOST_LE)
-
-/* ----- HCI protocols ----- */
-static inline int hci_proto_connect_ind(struct hci_dev *hdev, bdaddr_t *bdaddr,
- __u8 type)
-{
- switch (type) {
- case ACL_LINK:
- return l2cap_connect_ind(hdev, bdaddr);
-
- case SCO_LINK:
- case ESCO_LINK:
- return sco_connect_ind(hdev, bdaddr);
-
- default:
- BT_ERR("unknown link type %d", type);
- return -EINVAL;
- }
-}
-
-static inline void hci_proto_connect_cfm(struct hci_conn *conn, __u8 status)
-{
- switch (conn->type) {
- case ACL_LINK:
- case LE_LINK:
- l2cap_connect_cfm(conn, status);
- break;
-
- case SCO_LINK:
- case ESCO_LINK:
- sco_connect_cfm(conn, status);
- break;
-
- default:
- BT_ERR("unknown link type %d", conn->type);
- break;
- }
-
- if (conn->connect_cfm_cb)
- conn->connect_cfm_cb(conn, status);
-}
-
-static inline int hci_proto_disconn_ind(struct hci_conn *conn)
-{
- if (conn->type != ACL_LINK && conn->type != LE_LINK)
- return HCI_ERROR_REMOTE_USER_TERM;
-
- return l2cap_disconn_ind(conn);
-}
-
-static inline void hci_proto_disconn_cfm(struct hci_conn *conn, __u8 reason)
-{
- switch (conn->type) {
- case ACL_LINK:
- case LE_LINK:
- l2cap_disconn_cfm(conn, reason);
- break;
-
- case SCO_LINK:
- case ESCO_LINK:
- sco_disconn_cfm(conn, reason);
- break;
-
- default:
- BT_ERR("unknown link type %d", conn->type);
- break;
- }
-
- if (conn->disconn_cfm_cb)
- conn->disconn_cfm_cb(conn, reason);
-}
-
-static inline void hci_proto_auth_cfm(struct hci_conn *conn, __u8 status)
-{
- __u8 encrypt;
-
- if (conn->type != ACL_LINK && conn->type != LE_LINK)
- return;
-
- if (test_bit(HCI_CONN_ENCRYPT_PEND, &conn->flags))
- return;
-
- encrypt = (conn->link_mode & HCI_LM_ENCRYPT) ? 0x01 : 0x00;
- l2cap_security_cfm(conn, status, encrypt);
-
- if (conn->security_cfm_cb)
- conn->security_cfm_cb(conn, status);
-}
-
-static inline void hci_proto_encrypt_cfm(struct hci_conn *conn, __u8 status,
- __u8 encrypt)
-{
- if (conn->type != ACL_LINK && conn->type != LE_LINK)
- return;
-
- l2cap_security_cfm(conn, status, encrypt);
-
- if (conn->security_cfm_cb)
- conn->security_cfm_cb(conn, status);
-}
-
-/* ----- HCI callbacks ----- */
-struct hci_cb {
- struct list_head list;
-
- char *name;
-
- void (*security_cfm) (struct hci_conn *conn, __u8 status,
- __u8 encrypt);
- void (*key_change_cfm) (struct hci_conn *conn, __u8 status);
- void (*role_switch_cfm) (struct hci_conn *conn, __u8 status, __u8 role);
-};
-
-static inline void hci_auth_cfm(struct hci_conn *conn, __u8 status)
-{
- struct list_head *p;
- __u8 encrypt;
-
- hci_proto_auth_cfm(conn, status);
-
- if (test_bit(HCI_CONN_ENCRYPT_PEND, &conn->flags))
- return;
-
- encrypt = (conn->link_mode & HCI_LM_ENCRYPT) ? 0x01 : 0x00;
-
- read_lock(&hci_cb_list_lock);
- list_for_each(p, &hci_cb_list) {
- struct hci_cb *cb = list_entry(p, struct hci_cb, list);
- if (cb->security_cfm)
- cb->security_cfm(conn, status, encrypt);
- }
- read_unlock(&hci_cb_list_lock);
-}
-
-static inline void hci_encrypt_cfm(struct hci_conn *conn, __u8 status,
- __u8 encrypt)
-{
- struct list_head *p;
-
- if (conn->sec_level == BT_SECURITY_SDP)
- conn->sec_level = BT_SECURITY_LOW;
-
- if (conn->pending_sec_level > conn->sec_level)
- conn->sec_level = conn->pending_sec_level;
-
- hci_proto_encrypt_cfm(conn, status, encrypt);
-
- read_lock(&hci_cb_list_lock);
- list_for_each(p, &hci_cb_list) {
- struct hci_cb *cb = list_entry(p, struct hci_cb, list);
- if (cb->security_cfm)
- cb->security_cfm(conn, status, encrypt);
- }
- read_unlock(&hci_cb_list_lock);
-}
-
-static inline void hci_key_change_cfm(struct hci_conn *conn, __u8 status)
-{
- struct list_head *p;
-
- read_lock(&hci_cb_list_lock);
- list_for_each(p, &hci_cb_list) {
- struct hci_cb *cb = list_entry(p, struct hci_cb, list);
- if (cb->key_change_cfm)
- cb->key_change_cfm(conn, status);
- }
- read_unlock(&hci_cb_list_lock);
-}
-
-static inline void hci_role_switch_cfm(struct hci_conn *conn, __u8 status,
- __u8 role)
-{
- struct list_head *p;
-
- read_lock(&hci_cb_list_lock);
- list_for_each(p, &hci_cb_list) {
- struct hci_cb *cb = list_entry(p, struct hci_cb, list);
- if (cb->role_switch_cfm)
- cb->role_switch_cfm(conn, status, role);
- }
- read_unlock(&hci_cb_list_lock);
-}
-
-static inline bool eir_has_data_type(u8 *data, size_t data_len, u8 type)
-{
- size_t parsed = 0;
-
- if (data_len < 2)
- return false;
-
- while (parsed < data_len - 1) {
- u8 field_len = data[0];
-
- if (field_len == 0)
- break;
-
- parsed += field_len + 1;
-
- if (parsed > data_len)
- break;
-
- if (data[1] == type)
- return true;
-
- data += field_len + 1;
- }
-
- return false;
-}
-
-static inline u16 eir_append_data(u8 *eir, u16 eir_len, u8 type, u8 *data,
- u8 data_len)
-{
- eir[eir_len++] = sizeof(type) + data_len;
- eir[eir_len++] = type;
- memcpy(&eir[eir_len], data, data_len);
- eir_len += data_len;
-
- return eir_len;
-}
-
-int hci_register_cb(struct hci_cb *hcb);
-int hci_unregister_cb(struct hci_cb *hcb);
-
-int hci_send_cmd(struct hci_dev *hdev, __u16 opcode, __u32 plen, void *param);
-void hci_send_acl(struct hci_chan *chan, struct sk_buff *skb, __u16 flags);
-void hci_send_sco(struct hci_conn *conn, struct sk_buff *skb);
-
-void *hci_sent_cmd_data(struct hci_dev *hdev, __u16 opcode);
-
-/* ----- HCI Sockets ----- */
-void hci_send_to_sock(struct hci_dev *hdev, struct sk_buff *skb);
-void hci_send_to_control(struct sk_buff *skb, struct sock *skip_sk);
-void hci_send_to_monitor(struct hci_dev *hdev, struct sk_buff *skb);
-
-void hci_sock_dev_event(struct hci_dev *hdev, int event);
-
-/* Management interface */
-#define MGMT_ADDR_BREDR 0x00
-#define MGMT_ADDR_LE_PUBLIC 0x01
-#define MGMT_ADDR_LE_RANDOM 0x02
-#define MGMT_ADDR_INVALID 0xff
-
-#define DISCOV_TYPE_BREDR (BIT(MGMT_ADDR_BREDR))
-#define DISCOV_TYPE_LE (BIT(MGMT_ADDR_LE_PUBLIC) | \
- BIT(MGMT_ADDR_LE_RANDOM))
-#define DISCOV_TYPE_INTERLEAVED (BIT(MGMT_ADDR_BREDR) | \
- BIT(MGMT_ADDR_LE_PUBLIC) | \
- BIT(MGMT_ADDR_LE_RANDOM))
-
-int mgmt_control(struct sock *sk, struct msghdr *msg, size_t len);
-int mgmt_index_added(struct hci_dev *hdev);
-int mgmt_index_removed(struct hci_dev *hdev);
-int mgmt_powered(struct hci_dev *hdev, u8 powered);
-int mgmt_discoverable(struct hci_dev *hdev, u8 discoverable);
-int mgmt_connectable(struct hci_dev *hdev, u8 connectable);
-int mgmt_write_scan_failed(struct hci_dev *hdev, u8 scan, u8 status);
-int mgmt_new_link_key(struct hci_dev *hdev, struct link_key *key,
- bool persistent);
-int mgmt_device_connected(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 link_type,
- u8 addr_type, u32 flags, u8 *name, u8 name_len,
- u8 *dev_class);
-int mgmt_device_disconnected(struct hci_dev *hdev, bdaddr_t *bdaddr,
- u8 link_type, u8 addr_type);
-int mgmt_disconnect_failed(struct hci_dev *hdev, bdaddr_t *bdaddr,
- u8 link_type, u8 addr_type, u8 status);
-int mgmt_connect_failed(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 link_type,
- u8 addr_type, u8 status);
-int mgmt_pin_code_request(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 secure);
-int mgmt_pin_code_reply_complete(struct hci_dev *hdev, bdaddr_t *bdaddr,
- u8 status);
-int mgmt_pin_code_neg_reply_complete(struct hci_dev *hdev, bdaddr_t *bdaddr,
- u8 status);
-int mgmt_user_confirm_request(struct hci_dev *hdev, bdaddr_t *bdaddr,
- u8 link_type, u8 addr_type, __le32 value,
- u8 confirm_hint);
-int mgmt_user_confirm_reply_complete(struct hci_dev *hdev, bdaddr_t *bdaddr,
- u8 link_type, u8 addr_type, u8 status);
-int mgmt_user_confirm_neg_reply_complete(struct hci_dev *hdev, bdaddr_t *bdaddr,
- u8 link_type, u8 addr_type, u8 status);
-int mgmt_user_passkey_request(struct hci_dev *hdev, bdaddr_t *bdaddr,
- u8 link_type, u8 addr_type);
-int mgmt_user_passkey_reply_complete(struct hci_dev *hdev, bdaddr_t *bdaddr,
- u8 link_type, u8 addr_type, u8 status);
-int mgmt_user_passkey_neg_reply_complete(struct hci_dev *hdev, bdaddr_t *bdaddr,
- u8 link_type, u8 addr_type, u8 status);
-int mgmt_auth_failed(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 link_type,
- u8 addr_type, u8 status);
-int mgmt_auth_enable_complete(struct hci_dev *hdev, u8 status);
-int mgmt_ssp_enable_complete(struct hci_dev *hdev, u8 enable, u8 status);
-int mgmt_set_class_of_dev_complete(struct hci_dev *hdev, u8 *dev_class,
- u8 status);
-int mgmt_set_local_name_complete(struct hci_dev *hdev, u8 *name, u8 status);
-int mgmt_read_local_oob_data_reply_complete(struct hci_dev *hdev, u8 *hash,
- u8 *randomizer, u8 status);
-int mgmt_le_enable_complete(struct hci_dev *hdev, u8 enable, u8 status);
-int mgmt_device_found(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 link_type,
- u8 addr_type, u8 *dev_class, s8 rssi, u8 cfm_name,
- u8 ssp, u8 *eir, u16 eir_len);
-int mgmt_remote_name(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 link_type,
- u8 addr_type, s8 rssi, u8 *name, u8 name_len);
-int mgmt_start_discovery_failed(struct hci_dev *hdev, u8 status);
-int mgmt_stop_discovery_failed(struct hci_dev *hdev, u8 status);
-int mgmt_discovering(struct hci_dev *hdev, u8 discovering);
-int mgmt_interleaved_discovery(struct hci_dev *hdev);
-int mgmt_device_blocked(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 type);
-int mgmt_device_unblocked(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 type);
-
-int mgmt_new_ltk(struct hci_dev *hdev, struct smp_ltk *key, u8 persistent);
-
-/* HCI info for socket */
-#define hci_pi(sk) ((struct hci_pinfo *) sk)
-
-struct hci_pinfo {
- struct bt_sock bt;
- struct hci_dev *hdev;
- struct hci_filter filter;
- __u32 cmsg_mask;
- unsigned short channel;
-};
-
-/* HCI security filter */
-#define HCI_SFLT_MAX_OGF 5
-
-struct hci_sec_filter {
- __u32 type_mask;
- __u32 event_mask[2];
- __u32 ocf_mask[HCI_SFLT_MAX_OGF + 1][4];
-};
-
-/* ----- HCI requests ----- */
-#define HCI_REQ_DONE 0
-#define HCI_REQ_PEND 1
-#define HCI_REQ_CANCELED 2
-
-#define hci_req_lock(d) mutex_lock(&d->req_lock)
-#define hci_req_unlock(d) mutex_unlock(&d->req_lock)
-
-void hci_req_complete(struct hci_dev *hdev, __u16 cmd, int result);
-
-void hci_le_conn_update(struct hci_conn *conn, u16 min, u16 max,
- u16 latency, u16 to_multiplier);
-void hci_le_start_enc(struct hci_conn *conn, __le16 ediv, __u8 rand[8],
- __u8 ltk[16]);
-void hci_le_ltk_reply(struct hci_conn *conn, u8 ltk[16]);
-void hci_le_ltk_neg_reply(struct hci_conn *conn);
-
-int hci_do_inquiry(struct hci_dev *hdev, u8 length);
-int hci_cancel_inquiry(struct hci_dev *hdev);
-int hci_le_scan(struct hci_dev *hdev, u8 type, u16 interval, u16 window,
- int timeout);
-
-#endif /* __HCI_CORE_H */
diff --git a/ANDROID_3.4.5/include/net/bluetooth/hci_mon.h b/ANDROID_3.4.5/include/net/bluetooth/hci_mon.h
deleted file mode 100644
index 77d1e576..00000000
--- a/ANDROID_3.4.5/include/net/bluetooth/hci_mon.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- BlueZ - Bluetooth protocol stack for Linux
-
- Copyright (C) 2011-2012 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;
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.
- IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) AND AUTHOR(S) BE LIABLE FOR ANY
- CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
- ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PATENTS,
- COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS, RELATING TO USE OF THIS
- SOFTWARE IS DISCLAIMED.
-*/
-
-#ifndef __HCI_MON_H
-#define __HCI_MON_H
-
-struct hci_mon_hdr {
- __le16 opcode;
- __le16 index;
- __le16 len;
-} __packed;
-#define HCI_MON_HDR_SIZE 6
-
-#define HCI_MON_NEW_INDEX 0
-#define HCI_MON_DEL_INDEX 1
-#define HCI_MON_COMMAND_PKT 2
-#define HCI_MON_EVENT_PKT 3
-#define HCI_MON_ACL_TX_PKT 4
-#define HCI_MON_ACL_RX_PKT 5
-#define HCI_MON_SCO_TX_PKT 6
-#define HCI_MON_SCO_RX_PKT 7
-
-struct hci_mon_new_index {
- __u8 type;
- __u8 bus;
- bdaddr_t bdaddr;
- char name[8];
-} __packed;
-#define HCI_MON_NEW_INDEX_SIZE 16
-
-#endif /* __HCI_MON_H */
diff --git a/ANDROID_3.4.5/include/net/bluetooth/l2cap.h b/ANDROID_3.4.5/include/net/bluetooth/l2cap.h
deleted file mode 100644
index 9b242c6b..00000000
--- a/ANDROID_3.4.5/include/net/bluetooth/l2cap.h
+++ /dev/null
@@ -1,865 +0,0 @@
-/*
- BlueZ - Bluetooth protocol stack for Linux
- Copyright (C) 2000-2001 Qualcomm Incorporated
- Copyright (C) 2009-2010 Gustavo F. Padovan <gustavo@padovan.org>
- Copyright (C) 2010 Google Inc.
-
- Written 2000,2001 by Maxim Krasnyansky <maxk@qualcomm.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;
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.
- IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) AND AUTHOR(S) BE LIABLE FOR ANY
- CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
- ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PATENTS,
- COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS, RELATING TO USE OF THIS
- SOFTWARE IS DISCLAIMED.
-*/
-
-#ifndef __L2CAP_H
-#define __L2CAP_H
-
-#include <asm/unaligned.h>
-
-/* L2CAP defaults */
-#define L2CAP_DEFAULT_MTU 672
-#define L2CAP_DEFAULT_MIN_MTU 48
-#define L2CAP_DEFAULT_FLUSH_TO 0xffff
-#define L2CAP_DEFAULT_TX_WINDOW 63
-#define L2CAP_DEFAULT_EXT_WINDOW 0x3FFF
-#define L2CAP_DEFAULT_MAX_TX 3
-#define L2CAP_DEFAULT_RETRANS_TO 2000 /* 2 seconds */
-#define L2CAP_DEFAULT_MONITOR_TO 12000 /* 12 seconds */
-#define L2CAP_DEFAULT_MAX_PDU_SIZE 1009 /* Sized for 3-DH5 packet */
-#define L2CAP_DEFAULT_ACK_TO 200
-#define L2CAP_LE_DEFAULT_MTU 23
-#define L2CAP_DEFAULT_MAX_SDU_SIZE 0xFFFF
-#define L2CAP_DEFAULT_SDU_ITIME 0xFFFFFFFF
-#define L2CAP_DEFAULT_ACC_LAT 0xFFFFFFFF
-
-#define L2CAP_DISC_TIMEOUT msecs_to_jiffies(100)
-#define L2CAP_DISC_REJ_TIMEOUT msecs_to_jiffies(5000)
-#define L2CAP_ENC_TIMEOUT msecs_to_jiffies(5000)
-#define L2CAP_CONN_TIMEOUT msecs_to_jiffies(40000)
-#define L2CAP_INFO_TIMEOUT msecs_to_jiffies(4000)
-
-/* L2CAP socket address */
-struct sockaddr_l2 {
- sa_family_t l2_family;
- __le16 l2_psm;
- bdaddr_t l2_bdaddr;
- __le16 l2_cid;
-};
-
-/* L2CAP socket options */
-#define L2CAP_OPTIONS 0x01
-struct l2cap_options {
- __u16 omtu;
- __u16 imtu;
- __u16 flush_to;
- __u8 mode;
- __u8 fcs;
- __u8 max_tx;
- __u16 txwin_size;
-};
-
-#define L2CAP_CONNINFO 0x02
-struct l2cap_conninfo {
- __u16 hci_handle;
- __u8 dev_class[3];
-};
-
-#define L2CAP_LM 0x03
-#define L2CAP_LM_MASTER 0x0001
-#define L2CAP_LM_AUTH 0x0002
-#define L2CAP_LM_ENCRYPT 0x0004
-#define L2CAP_LM_TRUSTED 0x0008
-#define L2CAP_LM_RELIABLE 0x0010
-#define L2CAP_LM_SECURE 0x0020
-
-/* L2CAP command codes */
-#define L2CAP_COMMAND_REJ 0x01
-#define L2CAP_CONN_REQ 0x02
-#define L2CAP_CONN_RSP 0x03
-#define L2CAP_CONF_REQ 0x04
-#define L2CAP_CONF_RSP 0x05
-#define L2CAP_DISCONN_REQ 0x06
-#define L2CAP_DISCONN_RSP 0x07
-#define L2CAP_ECHO_REQ 0x08
-#define L2CAP_ECHO_RSP 0x09
-#define L2CAP_INFO_REQ 0x0a
-#define L2CAP_INFO_RSP 0x0b
-#define L2CAP_CREATE_CHAN_REQ 0x0c
-#define L2CAP_CREATE_CHAN_RSP 0x0d
-#define L2CAP_MOVE_CHAN_REQ 0x0e
-#define L2CAP_MOVE_CHAN_RSP 0x0f
-#define L2CAP_MOVE_CHAN_CFM 0x10
-#define L2CAP_MOVE_CHAN_CFM_RSP 0x11
-#define L2CAP_CONN_PARAM_UPDATE_REQ 0x12
-#define L2CAP_CONN_PARAM_UPDATE_RSP 0x13
-
-/* L2CAP extended feature mask */
-#define L2CAP_FEAT_FLOWCTL 0x00000001
-#define L2CAP_FEAT_RETRANS 0x00000002
-#define L2CAP_FEAT_BIDIR_QOS 0x00000004
-#define L2CAP_FEAT_ERTM 0x00000008
-#define L2CAP_FEAT_STREAMING 0x00000010
-#define L2CAP_FEAT_FCS 0x00000020
-#define L2CAP_FEAT_EXT_FLOW 0x00000040
-#define L2CAP_FEAT_FIXED_CHAN 0x00000080
-#define L2CAP_FEAT_EXT_WINDOW 0x00000100
-#define L2CAP_FEAT_UCD 0x00000200
-
-/* L2CAP checksum option */
-#define L2CAP_FCS_NONE 0x00
-#define L2CAP_FCS_CRC16 0x01
-
-/* L2CAP fixed channels */
-#define L2CAP_FC_L2CAP 0x02
-#define L2CAP_FC_A2MP 0x08
-
-/* L2CAP Control Field bit masks */
-#define L2CAP_CTRL_SAR 0xC000
-#define L2CAP_CTRL_REQSEQ 0x3F00
-#define L2CAP_CTRL_TXSEQ 0x007E
-#define L2CAP_CTRL_SUPERVISE 0x000C
-
-#define L2CAP_CTRL_RETRANS 0x0080
-#define L2CAP_CTRL_FINAL 0x0080
-#define L2CAP_CTRL_POLL 0x0010
-#define L2CAP_CTRL_FRAME_TYPE 0x0001 /* I- or S-Frame */
-
-#define L2CAP_CTRL_TXSEQ_SHIFT 1
-#define L2CAP_CTRL_SUPER_SHIFT 2
-#define L2CAP_CTRL_REQSEQ_SHIFT 8
-#define L2CAP_CTRL_SAR_SHIFT 14
-
-/* L2CAP Extended Control Field bit mask */
-#define L2CAP_EXT_CTRL_TXSEQ 0xFFFC0000
-#define L2CAP_EXT_CTRL_SAR 0x00030000
-#define L2CAP_EXT_CTRL_SUPERVISE 0x00030000
-#define L2CAP_EXT_CTRL_REQSEQ 0x0000FFFC
-
-#define L2CAP_EXT_CTRL_POLL 0x00040000
-#define L2CAP_EXT_CTRL_FINAL 0x00000002
-#define L2CAP_EXT_CTRL_FRAME_TYPE 0x00000001 /* I- or S-Frame */
-
-#define L2CAP_EXT_CTRL_REQSEQ_SHIFT 2
-#define L2CAP_EXT_CTRL_SAR_SHIFT 16
-#define L2CAP_EXT_CTRL_SUPER_SHIFT 16
-#define L2CAP_EXT_CTRL_TXSEQ_SHIFT 18
-
-/* L2CAP Supervisory Function */
-#define L2CAP_SUPER_RR 0x00
-#define L2CAP_SUPER_REJ 0x01
-#define L2CAP_SUPER_RNR 0x02
-#define L2CAP_SUPER_SREJ 0x03
-
-/* L2CAP Segmentation and Reassembly */
-#define L2CAP_SAR_UNSEGMENTED 0x00
-#define L2CAP_SAR_START 0x01
-#define L2CAP_SAR_END 0x02
-#define L2CAP_SAR_CONTINUE 0x03
-
-/* L2CAP Command rej. reasons */
-#define L2CAP_REJ_NOT_UNDERSTOOD 0x0000
-#define L2CAP_REJ_MTU_EXCEEDED 0x0001
-#define L2CAP_REJ_INVALID_CID 0x0002
-
-/* L2CAP structures */
-struct l2cap_hdr {
- __le16 len;
- __le16 cid;
-} __packed;
-#define L2CAP_HDR_SIZE 4
-#define L2CAP_ENH_HDR_SIZE 6
-#define L2CAP_EXT_HDR_SIZE 8
-
-#define L2CAP_FCS_SIZE 2
-#define L2CAP_SDULEN_SIZE 2
-#define L2CAP_PSMLEN_SIZE 2
-
-struct l2cap_cmd_hdr {
- __u8 code;
- __u8 ident;
- __le16 len;
-} __packed;
-#define L2CAP_CMD_HDR_SIZE 4
-
-struct l2cap_cmd_rej_unk {
- __le16 reason;
-} __packed;
-
-struct l2cap_cmd_rej_mtu {
- __le16 reason;
- __le16 max_mtu;
-} __packed;
-
-struct l2cap_cmd_rej_cid {
- __le16 reason;
- __le16 scid;
- __le16 dcid;
-} __packed;
-
-struct l2cap_conn_req {
- __le16 psm;
- __le16 scid;
-} __packed;
-
-struct l2cap_conn_rsp {
- __le16 dcid;
- __le16 scid;
- __le16 result;
- __le16 status;
-} __packed;
-
-/* channel indentifier */
-#define L2CAP_CID_SIGNALING 0x0001
-#define L2CAP_CID_CONN_LESS 0x0002
-#define L2CAP_CID_LE_DATA 0x0004
-#define L2CAP_CID_LE_SIGNALING 0x0005
-#define L2CAP_CID_SMP 0x0006
-#define L2CAP_CID_DYN_START 0x0040
-#define L2CAP_CID_DYN_END 0xffff
-
-/* connect/create channel results */
-#define L2CAP_CR_SUCCESS 0x0000
-#define L2CAP_CR_PEND 0x0001
-#define L2CAP_CR_BAD_PSM 0x0002
-#define L2CAP_CR_SEC_BLOCK 0x0003
-#define L2CAP_CR_NO_MEM 0x0004
-#define L2CAP_CR_BAD_AMP 0x0005
-
-/* connect/create channel status */
-#define L2CAP_CS_NO_INFO 0x0000
-#define L2CAP_CS_AUTHEN_PEND 0x0001
-#define L2CAP_CS_AUTHOR_PEND 0x0002
-
-struct l2cap_conf_req {
- __le16 dcid;
- __le16 flags;
- __u8 data[0];
-} __packed;
-
-struct l2cap_conf_rsp {
- __le16 scid;
- __le16 flags;
- __le16 result;
- __u8 data[0];
-} __packed;
-
-#define L2CAP_CONF_SUCCESS 0x0000
-#define L2CAP_CONF_UNACCEPT 0x0001
-#define L2CAP_CONF_REJECT 0x0002
-#define L2CAP_CONF_UNKNOWN 0x0003
-#define L2CAP_CONF_PENDING 0x0004
-#define L2CAP_CONF_EFS_REJECT 0x0005
-
-struct l2cap_conf_opt {
- __u8 type;
- __u8 len;
- __u8 val[0];
-} __packed;
-#define L2CAP_CONF_OPT_SIZE 2
-
-#define L2CAP_CONF_HINT 0x80
-#define L2CAP_CONF_MASK 0x7f
-
-#define L2CAP_CONF_MTU 0x01
-#define L2CAP_CONF_FLUSH_TO 0x02
-#define L2CAP_CONF_QOS 0x03
-#define L2CAP_CONF_RFC 0x04
-#define L2CAP_CONF_FCS 0x05
-#define L2CAP_CONF_EFS 0x06
-#define L2CAP_CONF_EWS 0x07
-
-#define L2CAP_CONF_MAX_SIZE 22
-
-struct l2cap_conf_rfc {
- __u8 mode;
- __u8 txwin_size;
- __u8 max_transmit;
- __le16 retrans_timeout;
- __le16 monitor_timeout;
- __le16 max_pdu_size;
-} __packed;
-
-#define L2CAP_MODE_BASIC 0x00
-#define L2CAP_MODE_RETRANS 0x01
-#define L2CAP_MODE_FLOWCTL 0x02
-#define L2CAP_MODE_ERTM 0x03
-#define L2CAP_MODE_STREAMING 0x04
-
-struct l2cap_conf_efs {
- __u8 id;
- __u8 stype;
- __le16 msdu;
- __le32 sdu_itime;
- __le32 acc_lat;
- __le32 flush_to;
-} __packed;
-
-#define L2CAP_SERV_NOTRAFIC 0x00
-#define L2CAP_SERV_BESTEFFORT 0x01
-#define L2CAP_SERV_GUARANTEED 0x02
-
-#define L2CAP_BESTEFFORT_ID 0x01
-
-struct l2cap_disconn_req {
- __le16 dcid;
- __le16 scid;
-} __packed;
-
-struct l2cap_disconn_rsp {
- __le16 dcid;
- __le16 scid;
-} __packed;
-
-struct l2cap_info_req {
- __le16 type;
-} __packed;
-
-struct l2cap_info_rsp {
- __le16 type;
- __le16 result;
- __u8 data[0];
-} __packed;
-
-struct l2cap_create_chan_req {
- __le16 psm;
- __le16 scid;
- __u8 amp_id;
-} __packed;
-
-struct l2cap_create_chan_rsp {
- __le16 dcid;
- __le16 scid;
- __le16 result;
- __le16 status;
-} __packed;
-
-struct l2cap_move_chan_req {
- __le16 icid;
- __u8 dest_amp_id;
-} __packed;
-
-struct l2cap_move_chan_rsp {
- __le16 icid;
- __le16 result;
-} __packed;
-
-#define L2CAP_MR_SUCCESS 0x0000
-#define L2CAP_MR_PEND 0x0001
-#define L2CAP_MR_BAD_ID 0x0002
-#define L2CAP_MR_SAME_ID 0x0003
-#define L2CAP_MR_NOT_SUPP 0x0004
-#define L2CAP_MR_COLLISION 0x0005
-#define L2CAP_MR_NOT_ALLOWED 0x0006
-
-struct l2cap_move_chan_cfm {
- __le16 icid;
- __le16 result;
-} __packed;
-
-#define L2CAP_MC_CONFIRMED 0x0000
-#define L2CAP_MC_UNCONFIRMED 0x0001
-
-struct l2cap_move_chan_cfm_rsp {
- __le16 icid;
-} __packed;
-
-/* info type */
-#define L2CAP_IT_CL_MTU 0x0001
-#define L2CAP_IT_FEAT_MASK 0x0002
-#define L2CAP_IT_FIXED_CHAN 0x0003
-
-/* info result */
-#define L2CAP_IR_SUCCESS 0x0000
-#define L2CAP_IR_NOTSUPP 0x0001
-
-struct l2cap_conn_param_update_req {
- __le16 min;
- __le16 max;
- __le16 latency;
- __le16 to_multiplier;
-} __packed;
-
-struct l2cap_conn_param_update_rsp {
- __le16 result;
-} __packed;
-
-/* Connection Parameters result */
-#define L2CAP_CONN_PARAM_ACCEPTED 0x0000
-#define L2CAP_CONN_PARAM_REJECTED 0x0001
-
-/* ----- L2CAP channels and connections ----- */
-struct srej_list {
- __u16 tx_seq;
- struct list_head list;
-};
-
-struct l2cap_chan {
- struct sock *sk;
-
- struct l2cap_conn *conn;
-
- __u8 state;
-
- atomic_t refcnt;
-
- __le16 psm;
- __u16 dcid;
- __u16 scid;
-
- __u16 imtu;
- __u16 omtu;
- __u16 flush_to;
- __u8 mode;
- __u8 chan_type;
- __u8 chan_policy;
-
- __le16 sport;
-
- __u8 sec_level;
-
- __u8 ident;
-
- __u8 conf_req[64];
- __u8 conf_len;
- __u8 num_conf_req;
- __u8 num_conf_rsp;
-
- __u8 fcs;
-
- __u16 tx_win;
- __u16 tx_win_max;
- __u8 max_tx;
- __u16 retrans_timeout;
- __u16 monitor_timeout;
- __u16 mps;
-
- unsigned long conf_state;
- unsigned long conn_state;
- unsigned long flags;
-
- __u16 next_tx_seq;
- __u16 expected_ack_seq;
- __u16 expected_tx_seq;
- __u16 buffer_seq;
- __u16 buffer_seq_srej;
- __u16 srej_save_reqseq;
- __u16 frames_sent;
- __u16 unacked_frames;
- __u8 retry_count;
- __u8 num_acked;
- __u16 sdu_len;
- struct sk_buff *sdu;
- struct sk_buff *sdu_last_frag;
-
- __u16 remote_tx_win;
- __u8 remote_max_tx;
- __u16 remote_mps;
-
- __u8 local_id;
- __u8 local_stype;
- __u16 local_msdu;
- __u32 local_sdu_itime;
- __u32 local_acc_lat;
- __u32 local_flush_to;
-
- __u8 remote_id;
- __u8 remote_stype;
- __u16 remote_msdu;
- __u32 remote_sdu_itime;
- __u32 remote_acc_lat;
- __u32 remote_flush_to;
-
- struct delayed_work chan_timer;
- struct delayed_work retrans_timer;
- struct delayed_work monitor_timer;
- struct delayed_work ack_timer;
-
- struct sk_buff *tx_send_head;
- struct sk_buff_head tx_q;
- struct sk_buff_head srej_q;
- struct list_head srej_l;
-
- struct list_head list;
- struct list_head global_l;
-
- void *data;
- struct l2cap_ops *ops;
- struct mutex lock;
-};
-
-struct l2cap_ops {
- char *name;
-
- struct l2cap_chan *(*new_connection) (void *data);
- int (*recv) (void *data, struct sk_buff *skb);
- void (*close) (void *data);
- void (*state_change) (void *data, int state);
- struct sk_buff *(*alloc_skb) (struct l2cap_chan *chan,
- unsigned long len, int nb, int *err);
-
-};
-
-struct l2cap_conn {
- struct hci_conn *hcon;
- struct hci_chan *hchan;
-
- bdaddr_t *dst;
- bdaddr_t *src;
-
- unsigned int mtu;
-
- __u32 feat_mask;
- __u8 fixed_chan_mask;
-
- __u8 info_state;
- __u8 info_ident;
-
- struct delayed_work info_timer;
-
- spinlock_t lock;
-
- struct sk_buff *rx_skb;
- __u32 rx_len;
- __u8 tx_ident;
-
- __u8 disc_reason;
-
- struct delayed_work security_timer;
- struct smp_chan *smp_chan;
-
- struct list_head chan_l;
- struct mutex chan_lock;
-};
-
-#define L2CAP_INFO_CL_MTU_REQ_SENT 0x01
-#define L2CAP_INFO_FEAT_MASK_REQ_SENT 0x04
-#define L2CAP_INFO_FEAT_MASK_REQ_DONE 0x08
-
-#define L2CAP_CHAN_RAW 1
-#define L2CAP_CHAN_CONN_LESS 2
-#define L2CAP_CHAN_CONN_ORIENTED 3
-
-/* ----- L2CAP socket info ----- */
-#define l2cap_pi(sk) ((struct l2cap_pinfo *) sk)
-
-struct l2cap_pinfo {
- struct bt_sock bt;
- struct l2cap_chan *chan;
- struct sk_buff *rx_busy_skb;
-};
-
-enum {
- CONF_REQ_SENT,
- CONF_INPUT_DONE,
- CONF_OUTPUT_DONE,
- CONF_MTU_DONE,
- CONF_MODE_DONE,
- CONF_CONNECT_PEND,
- CONF_NO_FCS_RECV,
- CONF_STATE2_DEVICE,
- CONF_EWS_RECV,
- CONF_LOC_CONF_PEND,
- CONF_REM_CONF_PEND,
-};
-
-#define L2CAP_CONF_MAX_CONF_REQ 2
-#define L2CAP_CONF_MAX_CONF_RSP 2
-
-enum {
- CONN_SREJ_SENT,
- CONN_WAIT_F,
- CONN_SREJ_ACT,
- CONN_SEND_PBIT,
- CONN_REMOTE_BUSY,
- CONN_LOCAL_BUSY,
- CONN_REJ_ACT,
- CONN_SEND_FBIT,
- CONN_RNR_SENT,
-};
-
-/* Definitions for flags in l2cap_chan */
-enum {
- FLAG_ROLE_SWITCH,
- FLAG_FORCE_ACTIVE,
- FLAG_FORCE_RELIABLE,
- FLAG_FLUSHABLE,
- FLAG_EXT_CTRL,
- FLAG_EFS_ENABLE,
-};
-
-static inline void l2cap_chan_hold(struct l2cap_chan *c)
-{
- atomic_inc(&c->refcnt);
-}
-
-static inline void l2cap_chan_put(struct l2cap_chan *c)
-{
- if (atomic_dec_and_test(&c->refcnt))
- kfree(c);
-}
-
-static inline void l2cap_chan_lock(struct l2cap_chan *chan)
-{
- mutex_lock(&chan->lock);
-}
-
-static inline void l2cap_chan_unlock(struct l2cap_chan *chan)
-{
- mutex_unlock(&chan->lock);
-}
-
-static inline void l2cap_set_timer(struct l2cap_chan *chan,
- struct delayed_work *work, long timeout)
-{
- BT_DBG("chan %p state %s timeout %ld", chan,
- state_to_string(chan->state), timeout);
-
- if (!cancel_delayed_work(work))
- l2cap_chan_hold(chan);
- schedule_delayed_work(work, timeout);
-}
-
-static inline bool l2cap_clear_timer(struct l2cap_chan *chan,
- struct delayed_work *work)
-{
- bool ret;
-
- ret = cancel_delayed_work(work);
- if (ret)
- l2cap_chan_put(chan);
-
- return ret;
-}
-
-#define __set_chan_timer(c, t) l2cap_set_timer(c, &c->chan_timer, (t))
-#define __clear_chan_timer(c) l2cap_clear_timer(c, &c->chan_timer)
-#define __set_retrans_timer(c) l2cap_set_timer(c, &c->retrans_timer, \
- msecs_to_jiffies(L2CAP_DEFAULT_RETRANS_TO));
-#define __clear_retrans_timer(c) l2cap_clear_timer(c, &c->retrans_timer)
-#define __set_monitor_timer(c) l2cap_set_timer(c, &c->monitor_timer, \
- msecs_to_jiffies(L2CAP_DEFAULT_MONITOR_TO));
-#define __clear_monitor_timer(c) l2cap_clear_timer(c, &c->monitor_timer)
-#define __set_ack_timer(c) l2cap_set_timer(c, &chan->ack_timer, \
- msecs_to_jiffies(L2CAP_DEFAULT_ACK_TO));
-#define __clear_ack_timer(c) l2cap_clear_timer(c, &c->ack_timer)
-
-static inline int __seq_offset(struct l2cap_chan *chan, __u16 seq1, __u16 seq2)
-{
- int offset;
-
- offset = (seq1 - seq2) % (chan->tx_win_max + 1);
- if (offset < 0)
- offset += (chan->tx_win_max + 1);
-
- return offset;
-}
-
-static inline __u16 __next_seq(struct l2cap_chan *chan, __u16 seq)
-{
- return (seq + 1) % (chan->tx_win_max + 1);
-}
-
-static inline int l2cap_tx_window_full(struct l2cap_chan *ch)
-{
- int sub;
-
- sub = (ch->next_tx_seq - ch->expected_ack_seq) % 64;
-
- if (sub < 0)
- sub += 64;
-
- return sub == ch->remote_tx_win;
-}
-
-static inline __u16 __get_reqseq(struct l2cap_chan *chan, __u32 ctrl)
-{
- if (test_bit(FLAG_EXT_CTRL, &chan->flags))
- return (ctrl & L2CAP_EXT_CTRL_REQSEQ) >>
- L2CAP_EXT_CTRL_REQSEQ_SHIFT;
- else
- return (ctrl & L2CAP_CTRL_REQSEQ) >> L2CAP_CTRL_REQSEQ_SHIFT;
-}
-
-static inline __u32 __set_reqseq(struct l2cap_chan *chan, __u32 reqseq)
-{
- if (test_bit(FLAG_EXT_CTRL, &chan->flags))
- return (reqseq << L2CAP_EXT_CTRL_REQSEQ_SHIFT) &
- L2CAP_EXT_CTRL_REQSEQ;
- else
- return (reqseq << L2CAP_CTRL_REQSEQ_SHIFT) & L2CAP_CTRL_REQSEQ;
-}
-
-static inline __u16 __get_txseq(struct l2cap_chan *chan, __u32 ctrl)
-{
- if (test_bit(FLAG_EXT_CTRL, &chan->flags))
- return (ctrl & L2CAP_EXT_CTRL_TXSEQ) >>
- L2CAP_EXT_CTRL_TXSEQ_SHIFT;
- else
- return (ctrl & L2CAP_CTRL_TXSEQ) >> L2CAP_CTRL_TXSEQ_SHIFT;
-}
-
-static inline __u32 __set_txseq(struct l2cap_chan *chan, __u32 txseq)
-{
- if (test_bit(FLAG_EXT_CTRL, &chan->flags))
- return (txseq << L2CAP_EXT_CTRL_TXSEQ_SHIFT) &
- L2CAP_EXT_CTRL_TXSEQ;
- else
- return (txseq << L2CAP_CTRL_TXSEQ_SHIFT) & L2CAP_CTRL_TXSEQ;
-}
-
-static inline bool __is_sframe(struct l2cap_chan *chan, __u32 ctrl)
-{
- if (test_bit(FLAG_EXT_CTRL, &chan->flags))
- return ctrl & L2CAP_EXT_CTRL_FRAME_TYPE;
- else
- return ctrl & L2CAP_CTRL_FRAME_TYPE;
-}
-
-static inline __u32 __set_sframe(struct l2cap_chan *chan)
-{
- if (test_bit(FLAG_EXT_CTRL, &chan->flags))
- return L2CAP_EXT_CTRL_FRAME_TYPE;
- else
- return L2CAP_CTRL_FRAME_TYPE;
-}
-
-static inline __u8 __get_ctrl_sar(struct l2cap_chan *chan, __u32 ctrl)
-{
- if (test_bit(FLAG_EXT_CTRL, &chan->flags))
- return (ctrl & L2CAP_EXT_CTRL_SAR) >> L2CAP_EXT_CTRL_SAR_SHIFT;
- else
- return (ctrl & L2CAP_CTRL_SAR) >> L2CAP_CTRL_SAR_SHIFT;
-}
-
-static inline __u32 __set_ctrl_sar(struct l2cap_chan *chan, __u32 sar)
-{
- if (test_bit(FLAG_EXT_CTRL, &chan->flags))
- return (sar << L2CAP_EXT_CTRL_SAR_SHIFT) & L2CAP_EXT_CTRL_SAR;
- else
- return (sar << L2CAP_CTRL_SAR_SHIFT) & L2CAP_CTRL_SAR;
-}
-
-static inline bool __is_sar_start(struct l2cap_chan *chan, __u32 ctrl)
-{
- return __get_ctrl_sar(chan, ctrl) == L2CAP_SAR_START;
-}
-
-static inline __u32 __get_sar_mask(struct l2cap_chan *chan)
-{
- if (test_bit(FLAG_EXT_CTRL, &chan->flags))
- return L2CAP_EXT_CTRL_SAR;
- else
- return L2CAP_CTRL_SAR;
-}
-
-static inline __u8 __get_ctrl_super(struct l2cap_chan *chan, __u32 ctrl)
-{
- if (test_bit(FLAG_EXT_CTRL, &chan->flags))
- return (ctrl & L2CAP_EXT_CTRL_SUPERVISE) >>
- L2CAP_EXT_CTRL_SUPER_SHIFT;
- else
- return (ctrl & L2CAP_CTRL_SUPERVISE) >> L2CAP_CTRL_SUPER_SHIFT;
-}
-
-static inline __u32 __set_ctrl_super(struct l2cap_chan *chan, __u32 super)
-{
- if (test_bit(FLAG_EXT_CTRL, &chan->flags))
- return (super << L2CAP_EXT_CTRL_SUPER_SHIFT) &
- L2CAP_EXT_CTRL_SUPERVISE;
- else
- return (super << L2CAP_CTRL_SUPER_SHIFT) &
- L2CAP_CTRL_SUPERVISE;
-}
-
-static inline __u32 __set_ctrl_final(struct l2cap_chan *chan)
-{
- if (test_bit(FLAG_EXT_CTRL, &chan->flags))
- return L2CAP_EXT_CTRL_FINAL;
- else
- return L2CAP_CTRL_FINAL;
-}
-
-static inline bool __is_ctrl_final(struct l2cap_chan *chan, __u32 ctrl)
-{
- if (test_bit(FLAG_EXT_CTRL, &chan->flags))
- return ctrl & L2CAP_EXT_CTRL_FINAL;
- else
- return ctrl & L2CAP_CTRL_FINAL;
-}
-
-static inline __u32 __set_ctrl_poll(struct l2cap_chan *chan)
-{
- if (test_bit(FLAG_EXT_CTRL, &chan->flags))
- return L2CAP_EXT_CTRL_POLL;
- else
- return L2CAP_CTRL_POLL;
-}
-
-static inline bool __is_ctrl_poll(struct l2cap_chan *chan, __u32 ctrl)
-{
- if (test_bit(FLAG_EXT_CTRL, &chan->flags))
- return ctrl & L2CAP_EXT_CTRL_POLL;
- else
- return ctrl & L2CAP_CTRL_POLL;
-}
-
-static inline __u32 __get_control(struct l2cap_chan *chan, void *p)
-{
- if (test_bit(FLAG_EXT_CTRL, &chan->flags))
- return get_unaligned_le32(p);
- else
- return get_unaligned_le16(p);
-}
-
-static inline void __put_control(struct l2cap_chan *chan, __u32 control,
- void *p)
-{
- if (test_bit(FLAG_EXT_CTRL, &chan->flags))
- return put_unaligned_le32(control, p);
- else
- return put_unaligned_le16(control, p);
-}
-
-static inline __u8 __ctrl_size(struct l2cap_chan *chan)
-{
- if (test_bit(FLAG_EXT_CTRL, &chan->flags))
- return L2CAP_EXT_HDR_SIZE - L2CAP_HDR_SIZE;
- else
- return L2CAP_ENH_HDR_SIZE - L2CAP_HDR_SIZE;
-}
-
-extern bool disable_ertm;
-
-int l2cap_init_sockets(void);
-void l2cap_cleanup_sockets(void);
-
-void __l2cap_connect_rsp_defer(struct l2cap_chan *chan);
-int __l2cap_wait_ack(struct sock *sk);
-
-int l2cap_add_psm(struct l2cap_chan *chan, bdaddr_t *src, __le16 psm);
-int l2cap_add_scid(struct l2cap_chan *chan, __u16 scid);
-
-struct l2cap_chan *l2cap_chan_create(struct sock *sk);
-void l2cap_chan_close(struct l2cap_chan *chan, int reason);
-void l2cap_chan_destroy(struct l2cap_chan *chan);
-int l2cap_chan_connect(struct l2cap_chan *chan, __le16 psm, u16 cid,
- bdaddr_t *dst);
-int l2cap_chan_send(struct l2cap_chan *chan, struct msghdr *msg, size_t len,
- u32 priority);
-void l2cap_chan_busy(struct l2cap_chan *chan, int busy);
-int l2cap_chan_check_security(struct l2cap_chan *chan);
-
-#endif /* __L2CAP_H */
diff --git a/ANDROID_3.4.5/include/net/bluetooth/mgmt.h b/ANDROID_3.4.5/include/net/bluetooth/mgmt.h
deleted file mode 100644
index ebfd91fc..00000000
--- a/ANDROID_3.4.5/include/net/bluetooth/mgmt.h
+++ /dev/null
@@ -1,462 +0,0 @@
-/*
- BlueZ - Bluetooth protocol stack for Linux
-
- Copyright (C) 2010 Nokia Corporation
- Copyright (C) 2011-2012 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;
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.
- IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) AND AUTHOR(S) BE LIABLE FOR ANY
- CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
- ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PATENTS,
- COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS, RELATING TO USE OF THIS
- SOFTWARE IS DISCLAIMED.
-*/
-
-#define MGMT_INDEX_NONE 0xFFFF
-
-#define MGMT_STATUS_SUCCESS 0x00
-#define MGMT_STATUS_UNKNOWN_COMMAND 0x01
-#define MGMT_STATUS_NOT_CONNECTED 0x02
-#define MGMT_STATUS_FAILED 0x03
-#define MGMT_STATUS_CONNECT_FAILED 0x04
-#define MGMT_STATUS_AUTH_FAILED 0x05
-#define MGMT_STATUS_NOT_PAIRED 0x06
-#define MGMT_STATUS_NO_RESOURCES 0x07
-#define MGMT_STATUS_TIMEOUT 0x08
-#define MGMT_STATUS_ALREADY_CONNECTED 0x09
-#define MGMT_STATUS_BUSY 0x0a
-#define MGMT_STATUS_REJECTED 0x0b
-#define MGMT_STATUS_NOT_SUPPORTED 0x0c
-#define MGMT_STATUS_INVALID_PARAMS 0x0d
-#define MGMT_STATUS_DISCONNECTED 0x0e
-#define MGMT_STATUS_NOT_POWERED 0x0f
-#define MGMT_STATUS_CANCELLED 0x10
-#define MGMT_STATUS_INVALID_INDEX 0x11
-
-struct mgmt_hdr {
- __le16 opcode;
- __le16 index;
- __le16 len;
-} __packed;
-
-struct mgmt_addr_info {
- bdaddr_t bdaddr;
- __u8 type;
-} __packed;
-#define MGMT_ADDR_INFO_SIZE 7
-
-#define MGMT_OP_READ_VERSION 0x0001
-#define MGMT_READ_VERSION_SIZE 0
-struct mgmt_rp_read_version {
- __u8 version;
- __le16 revision;
-} __packed;
-
-#define MGMT_OP_READ_COMMANDS 0x0002
-#define MGMT_READ_COMMANDS_SIZE 0
-struct mgmt_rp_read_commands {
- __le16 num_commands;
- __le16 num_events;
- __le16 opcodes[0];
-} __packed;
-
-#define MGMT_OP_READ_INDEX_LIST 0x0003
-#define MGMT_READ_INDEX_LIST_SIZE 0
-struct mgmt_rp_read_index_list {
- __le16 num_controllers;
- __le16 index[0];
-} __packed;
-
-/* Reserve one extra byte for names in management messages so that they
- * are always guaranteed to be nul-terminated */
-#define MGMT_MAX_NAME_LENGTH (HCI_MAX_NAME_LENGTH + 1)
-#define MGMT_MAX_SHORT_NAME_LENGTH (HCI_MAX_SHORT_NAME_LENGTH + 1)
-
-#define MGMT_SETTING_POWERED 0x00000001
-#define MGMT_SETTING_CONNECTABLE 0x00000002
-#define MGMT_SETTING_FAST_CONNECTABLE 0x00000004
-#define MGMT_SETTING_DISCOVERABLE 0x00000008
-#define MGMT_SETTING_PAIRABLE 0x00000010
-#define MGMT_SETTING_LINK_SECURITY 0x00000020
-#define MGMT_SETTING_SSP 0x00000040
-#define MGMT_SETTING_BREDR 0x00000080
-#define MGMT_SETTING_HS 0x00000100
-#define MGMT_SETTING_LE 0x00000200
-
-#define MGMT_OP_READ_INFO 0x0004
-#define MGMT_READ_INFO_SIZE 0
-struct mgmt_rp_read_info {
- bdaddr_t bdaddr;
- __u8 version;
- __le16 manufacturer;
- __le32 supported_settings;
- __le32 current_settings;
- __u8 dev_class[3];
- __u8 name[MGMT_MAX_NAME_LENGTH];
- __u8 short_name[MGMT_MAX_SHORT_NAME_LENGTH];
-} __packed;
-
-struct mgmt_mode {
- __u8 val;
-} __packed;
-
-#define MGMT_SETTING_SIZE 1
-
-#define MGMT_OP_SET_POWERED 0x0005
-
-#define MGMT_OP_SET_DISCOVERABLE 0x0006
-struct mgmt_cp_set_discoverable {
- __u8 val;
- __le16 timeout;
-} __packed;
-#define MGMT_SET_DISCOVERABLE_SIZE 3
-
-#define MGMT_OP_SET_CONNECTABLE 0x0007
-
-#define MGMT_OP_SET_FAST_CONNECTABLE 0x0008
-
-#define MGMT_OP_SET_PAIRABLE 0x0009
-
-#define MGMT_OP_SET_LINK_SECURITY 0x000A
-
-#define MGMT_OP_SET_SSP 0x000B
-
-#define MGMT_OP_SET_HS 0x000C
-
-#define MGMT_OP_SET_LE 0x000D
-#define MGMT_OP_SET_DEV_CLASS 0x000E
-struct mgmt_cp_set_dev_class {
- __u8 major;
- __u8 minor;
-} __packed;
-#define MGMT_SET_DEV_CLASS_SIZE 2
-
-#define MGMT_OP_SET_LOCAL_NAME 0x000F
-struct mgmt_cp_set_local_name {
- __u8 name[MGMT_MAX_NAME_LENGTH];
- __u8 short_name[MGMT_MAX_SHORT_NAME_LENGTH];
-} __packed;
-#define MGMT_SET_LOCAL_NAME_SIZE 260
-
-#define MGMT_OP_ADD_UUID 0x0010
-struct mgmt_cp_add_uuid {
- __u8 uuid[16];
- __u8 svc_hint;
-} __packed;
-#define MGMT_ADD_UUID_SIZE 17
-
-#define MGMT_OP_REMOVE_UUID 0x0011
-struct mgmt_cp_remove_uuid {
- __u8 uuid[16];
-} __packed;
-#define MGMT_REMOVE_UUID_SIZE 16
-
-struct mgmt_link_key_info {
- struct mgmt_addr_info addr;
- __u8 type;
- __u8 val[16];
- __u8 pin_len;
-} __packed;
-
-#define MGMT_OP_LOAD_LINK_KEYS 0x0012
-struct mgmt_cp_load_link_keys {
- __u8 debug_keys;
- __le16 key_count;
- struct mgmt_link_key_info keys[0];
-} __packed;
-#define MGMT_LOAD_LINK_KEYS_SIZE 3
-
-struct mgmt_ltk_info {
- struct mgmt_addr_info addr;
- __u8 authenticated;
- __u8 master;
- __u8 enc_size;
- __le16 ediv;
- __u8 rand[8];
- __u8 val[16];
-} __packed;
-
-#define MGMT_OP_LOAD_LONG_TERM_KEYS 0x0013
-struct mgmt_cp_load_long_term_keys {
- __le16 key_count;
- struct mgmt_ltk_info keys[0];
-} __packed;
-#define MGMT_LOAD_LONG_TERM_KEYS_SIZE 2
-
-#define MGMT_OP_DISCONNECT 0x0014
-struct mgmt_cp_disconnect {
- struct mgmt_addr_info addr;
-} __packed;
-#define MGMT_DISCONNECT_SIZE MGMT_ADDR_INFO_SIZE
-struct mgmt_rp_disconnect {
- struct mgmt_addr_info addr;
-} __packed;
-
-#define MGMT_OP_GET_CONNECTIONS 0x0015
-#define MGMT_GET_CONNECTIONS_SIZE 0
-struct mgmt_rp_get_connections {
- __le16 conn_count;
- struct mgmt_addr_info addr[0];
-} __packed;
-
-#define MGMT_OP_PIN_CODE_REPLY 0x0016
-struct mgmt_cp_pin_code_reply {
- struct mgmt_addr_info addr;
- __u8 pin_len;
- __u8 pin_code[16];
-} __packed;
-#define MGMT_PIN_CODE_REPLY_SIZE (MGMT_ADDR_INFO_SIZE + 17)
-struct mgmt_rp_pin_code_reply {
- struct mgmt_addr_info addr;
-} __packed;
-
-#define MGMT_OP_PIN_CODE_NEG_REPLY 0x0017
-struct mgmt_cp_pin_code_neg_reply {
- struct mgmt_addr_info addr;
-} __packed;
-#define MGMT_PIN_CODE_NEG_REPLY_SIZE MGMT_ADDR_INFO_SIZE
-
-#define MGMT_OP_SET_IO_CAPABILITY 0x0018
-struct mgmt_cp_set_io_capability {
- __u8 io_capability;
-} __packed;
-#define MGMT_SET_IO_CAPABILITY_SIZE 1
-
-#define MGMT_OP_PAIR_DEVICE 0x0019
-struct mgmt_cp_pair_device {
- struct mgmt_addr_info addr;
- __u8 io_cap;
-} __packed;
-#define MGMT_PAIR_DEVICE_SIZE (MGMT_ADDR_INFO_SIZE + 1)
-struct mgmt_rp_pair_device {
- struct mgmt_addr_info addr;
-} __packed;
-
-#define MGMT_OP_CANCEL_PAIR_DEVICE 0x001A
-#define MGMT_CANCEL_PAIR_DEVICE_SIZE MGMT_ADDR_INFO_SIZE
-
-#define MGMT_OP_UNPAIR_DEVICE 0x001B
-struct mgmt_cp_unpair_device {
- struct mgmt_addr_info addr;
- __u8 disconnect;
-} __packed;
-#define MGMT_UNPAIR_DEVICE_SIZE (MGMT_ADDR_INFO_SIZE + 1)
-struct mgmt_rp_unpair_device {
- struct mgmt_addr_info addr;
-};
-
-#define MGMT_OP_USER_CONFIRM_REPLY 0x001C
-struct mgmt_cp_user_confirm_reply {
- struct mgmt_addr_info addr;
-} __packed;
-#define MGMT_USER_CONFIRM_REPLY_SIZE MGMT_ADDR_INFO_SIZE
-struct mgmt_rp_user_confirm_reply {
- struct mgmt_addr_info addr;
-} __packed;
-
-#define MGMT_OP_USER_CONFIRM_NEG_REPLY 0x001D
-struct mgmt_cp_user_confirm_neg_reply {
- struct mgmt_addr_info addr;
-} __packed;
-#define MGMT_USER_CONFIRM_NEG_REPLY_SIZE MGMT_ADDR_INFO_SIZE
-
-#define MGMT_OP_USER_PASSKEY_REPLY 0x001E
-struct mgmt_cp_user_passkey_reply {
- struct mgmt_addr_info addr;
- __le32 passkey;
-} __packed;
-#define MGMT_USER_PASSKEY_REPLY_SIZE (MGMT_ADDR_INFO_SIZE + 4)
-struct mgmt_rp_user_passkey_reply {
- struct mgmt_addr_info addr;
-} __packed;
-
-#define MGMT_OP_USER_PASSKEY_NEG_REPLY 0x001F
-struct mgmt_cp_user_passkey_neg_reply {
- struct mgmt_addr_info addr;
-} __packed;
-#define MGMT_USER_PASSKEY_NEG_REPLY_SIZE MGMT_ADDR_INFO_SIZE
-
-#define MGMT_OP_READ_LOCAL_OOB_DATA 0x0020
-#define MGMT_READ_LOCAL_OOB_DATA_SIZE 0
-struct mgmt_rp_read_local_oob_data {
- __u8 hash[16];
- __u8 randomizer[16];
-} __packed;
-
-#define MGMT_OP_ADD_REMOTE_OOB_DATA 0x0021
-struct mgmt_cp_add_remote_oob_data {
- struct mgmt_addr_info addr;
- __u8 hash[16];
- __u8 randomizer[16];
-} __packed;
-#define MGMT_ADD_REMOTE_OOB_DATA_SIZE (MGMT_ADDR_INFO_SIZE + 32)
-
-#define MGMT_OP_REMOVE_REMOTE_OOB_DATA 0x0022
-struct mgmt_cp_remove_remote_oob_data {
- struct mgmt_addr_info addr;
-} __packed;
-#define MGMT_REMOVE_REMOTE_OOB_DATA_SIZE MGMT_ADDR_INFO_SIZE
-
-#define MGMT_OP_START_DISCOVERY 0x0023
-struct mgmt_cp_start_discovery {
- __u8 type;
-} __packed;
-#define MGMT_START_DISCOVERY_SIZE 1
-
-#define MGMT_OP_STOP_DISCOVERY 0x0024
-struct mgmt_cp_stop_discovery {
- __u8 type;
-} __packed;
-#define MGMT_STOP_DISCOVERY_SIZE 1
-
-#define MGMT_OP_CONFIRM_NAME 0x0025
-struct mgmt_cp_confirm_name {
- struct mgmt_addr_info addr;
- __u8 name_known;
-} __packed;
-#define MGMT_CONFIRM_NAME_SIZE (MGMT_ADDR_INFO_SIZE + 1)
-struct mgmt_rp_confirm_name {
- struct mgmt_addr_info addr;
-} __packed;
-
-#define MGMT_OP_BLOCK_DEVICE 0x0026
-struct mgmt_cp_block_device {
- struct mgmt_addr_info addr;
-} __packed;
-#define MGMT_BLOCK_DEVICE_SIZE MGMT_ADDR_INFO_SIZE
-
-#define MGMT_OP_UNBLOCK_DEVICE 0x0027
-struct mgmt_cp_unblock_device {
- struct mgmt_addr_info addr;
-} __packed;
-#define MGMT_UNBLOCK_DEVICE_SIZE MGMT_ADDR_INFO_SIZE
-
-#define MGMT_EV_CMD_COMPLETE 0x0001
-struct mgmt_ev_cmd_complete {
- __le16 opcode;
- __u8 status;
- __u8 data[0];
-} __packed;
-
-#define MGMT_EV_CMD_STATUS 0x0002
-struct mgmt_ev_cmd_status {
- __le16 opcode;
- __u8 status;
-} __packed;
-
-#define MGMT_EV_CONTROLLER_ERROR 0x0003
-struct mgmt_ev_controller_error {
- __u8 error_code;
-} __packed;
-
-#define MGMT_EV_INDEX_ADDED 0x0004
-
-#define MGMT_EV_INDEX_REMOVED 0x0005
-
-#define MGMT_EV_NEW_SETTINGS 0x0006
-
-#define MGMT_EV_CLASS_OF_DEV_CHANGED 0x0007
-struct mgmt_ev_class_of_dev_changed {
- __u8 dev_class[3];
-};
-
-#define MGMT_EV_LOCAL_NAME_CHANGED 0x0008
-struct mgmt_ev_local_name_changed {
- __u8 name[MGMT_MAX_NAME_LENGTH];
- __u8 short_name[MGMT_MAX_SHORT_NAME_LENGTH];
-} __packed;
-
-#define MGMT_EV_NEW_LINK_KEY 0x0009
-struct mgmt_ev_new_link_key {
- __u8 store_hint;
- struct mgmt_link_key_info key;
-} __packed;
-
-#define MGMT_EV_NEW_LONG_TERM_KEY 0x000A
-struct mgmt_ev_new_long_term_key {
- __u8 store_hint;
- struct mgmt_ltk_info key;
-} __packed;
-
-#define MGMT_EV_DEVICE_CONNECTED 0x000B
-struct mgmt_ev_device_connected {
- struct mgmt_addr_info addr;
- __le32 flags;
- __le16 eir_len;
- __u8 eir[0];
-} __packed;
-
-#define MGMT_EV_DEVICE_DISCONNECTED 0x000C
-
-#define MGMT_EV_CONNECT_FAILED 0x000D
-struct mgmt_ev_connect_failed {
- struct mgmt_addr_info addr;
- __u8 status;
-} __packed;
-
-#define MGMT_EV_PIN_CODE_REQUEST 0x000E
-struct mgmt_ev_pin_code_request {
- struct mgmt_addr_info addr;
- __u8 secure;
-} __packed;
-
-#define MGMT_EV_USER_CONFIRM_REQUEST 0x000F
-struct mgmt_ev_user_confirm_request {
- struct mgmt_addr_info addr;
- __u8 confirm_hint;
- __le32 value;
-} __packed;
-
-#define MGMT_EV_USER_PASSKEY_REQUEST 0x0010
-struct mgmt_ev_user_passkey_request {
- struct mgmt_addr_info addr;
-} __packed;
-
-#define MGMT_EV_AUTH_FAILED 0x0011
-struct mgmt_ev_auth_failed {
- struct mgmt_addr_info addr;
- __u8 status;
-} __packed;
-
-#define MGMT_DEV_FOUND_CONFIRM_NAME 0x01
-#define MGMT_DEV_FOUND_LEGACY_PAIRING 0x02
-
-#define MGMT_EV_DEVICE_FOUND 0x0012
-struct mgmt_ev_device_found {
- struct mgmt_addr_info addr;
- __s8 rssi;
- __u8 flags[4];
- __le16 eir_len;
- __u8 eir[0];
-} __packed;
-
-#define MGMT_EV_DISCOVERING 0x0013
-struct mgmt_ev_discovering {
- __u8 type;
- __u8 discovering;
-} __packed;
-
-#define MGMT_EV_DEVICE_BLOCKED 0x0014
-struct mgmt_ev_device_blocked {
- struct mgmt_addr_info addr;
-} __packed;
-
-#define MGMT_EV_DEVICE_UNBLOCKED 0x0015
-struct mgmt_ev_device_unblocked {
- struct mgmt_addr_info addr;
-} __packed;
-
-#define MGMT_EV_DEVICE_UNPAIRED 0x0016
-struct mgmt_ev_device_unpaired {
- struct mgmt_addr_info addr;
-} __packed;
diff --git a/ANDROID_3.4.5/include/net/bluetooth/rfcomm.h b/ANDROID_3.4.5/include/net/bluetooth/rfcomm.h
deleted file mode 100644
index e2e3ecad..00000000
--- a/ANDROID_3.4.5/include/net/bluetooth/rfcomm.h
+++ /dev/null
@@ -1,372 +0,0 @@
-/*
- RFCOMM implementation for Linux Bluetooth stack (BlueZ)
- Copyright (C) 2002 Maxim Krasnyansky <maxk@qualcomm.com>
- Copyright (C) 2002 Marcel Holtmann <marcel@holtmann.org>
-
- 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;
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.
- IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) AND AUTHOR(S) BE LIABLE FOR ANY
- CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
- ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PATENTS,
- COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS, RELATING TO USE OF THIS
- SOFTWARE IS DISCLAIMED.
-*/
-
-#ifndef __RFCOMM_H
-#define __RFCOMM_H
-
-#define RFCOMM_PSM 3
-
-#define RFCOMM_CONN_TIMEOUT (HZ * 30)
-#define RFCOMM_DISC_TIMEOUT (HZ * 20)
-#define RFCOMM_AUTH_TIMEOUT (HZ * 25)
-#define RFCOMM_IDLE_TIMEOUT (HZ * 2)
-
-#define RFCOMM_DEFAULT_MTU 127
-#define RFCOMM_DEFAULT_CREDITS 7
-
-#define RFCOMM_MAX_L2CAP_MTU 1013
-#define RFCOMM_MAX_CREDITS 40
-
-#define RFCOMM_SKB_HEAD_RESERVE 8
-#define RFCOMM_SKB_TAIL_RESERVE 2
-#define RFCOMM_SKB_RESERVE (RFCOMM_SKB_HEAD_RESERVE + RFCOMM_SKB_TAIL_RESERVE)
-
-#define RFCOMM_SABM 0x2f
-#define RFCOMM_DISC 0x43
-#define RFCOMM_UA 0x63
-#define RFCOMM_DM 0x0f
-#define RFCOMM_UIH 0xef
-
-#define RFCOMM_TEST 0x08
-#define RFCOMM_FCON 0x28
-#define RFCOMM_FCOFF 0x18
-#define RFCOMM_MSC 0x38
-#define RFCOMM_RPN 0x24
-#define RFCOMM_RLS 0x14
-#define RFCOMM_PN 0x20
-#define RFCOMM_NSC 0x04
-
-#define RFCOMM_V24_FC 0x02
-#define RFCOMM_V24_RTC 0x04
-#define RFCOMM_V24_RTR 0x08
-#define RFCOMM_V24_IC 0x40
-#define RFCOMM_V24_DV 0x80
-
-#define RFCOMM_RPN_BR_2400 0x0
-#define RFCOMM_RPN_BR_4800 0x1
-#define RFCOMM_RPN_BR_7200 0x2
-#define RFCOMM_RPN_BR_9600 0x3
-#define RFCOMM_RPN_BR_19200 0x4
-#define RFCOMM_RPN_BR_38400 0x5
-#define RFCOMM_RPN_BR_57600 0x6
-#define RFCOMM_RPN_BR_115200 0x7
-#define RFCOMM_RPN_BR_230400 0x8
-
-#define RFCOMM_RPN_DATA_5 0x0
-#define RFCOMM_RPN_DATA_6 0x1
-#define RFCOMM_RPN_DATA_7 0x2
-#define RFCOMM_RPN_DATA_8 0x3
-
-#define RFCOMM_RPN_STOP_1 0
-#define RFCOMM_RPN_STOP_15 1
-
-#define RFCOMM_RPN_PARITY_NONE 0x0
-#define RFCOMM_RPN_PARITY_ODD 0x1
-#define RFCOMM_RPN_PARITY_EVEN 0x3
-#define RFCOMM_RPN_PARITY_MARK 0x5
-#define RFCOMM_RPN_PARITY_SPACE 0x7
-
-#define RFCOMM_RPN_FLOW_NONE 0x00
-
-#define RFCOMM_RPN_XON_CHAR 0x11
-#define RFCOMM_RPN_XOFF_CHAR 0x13
-
-#define RFCOMM_RPN_PM_BITRATE 0x0001
-#define RFCOMM_RPN_PM_DATA 0x0002
-#define RFCOMM_RPN_PM_STOP 0x0004
-#define RFCOMM_RPN_PM_PARITY 0x0008
-#define RFCOMM_RPN_PM_PARITY_TYPE 0x0010
-#define RFCOMM_RPN_PM_XON 0x0020
-#define RFCOMM_RPN_PM_XOFF 0x0040
-#define RFCOMM_RPN_PM_FLOW 0x3F00
-
-#define RFCOMM_RPN_PM_ALL 0x3F7F
-
-struct rfcomm_hdr {
- u8 addr;
- u8 ctrl;
- u8 len; /* Actual size can be 2 bytes */
-} __packed;
-
-struct rfcomm_cmd {
- u8 addr;
- u8 ctrl;
- u8 len;
- u8 fcs;
-} __packed;
-
-struct rfcomm_mcc {
- u8 type;
- u8 len;
-} __packed;
-
-struct rfcomm_pn {
- u8 dlci;
- u8 flow_ctrl;
- u8 priority;
- u8 ack_timer;
- __le16 mtu;
- u8 max_retrans;
- u8 credits;
-} __packed;
-
-struct rfcomm_rpn {
- u8 dlci;
- u8 bit_rate;
- u8 line_settings;
- u8 flow_ctrl;
- u8 xon_char;
- u8 xoff_char;
- __le16 param_mask;
-} __packed;
-
-struct rfcomm_rls {
- u8 dlci;
- u8 status;
-} __packed;
-
-struct rfcomm_msc {
- u8 dlci;
- u8 v24_sig;
-} __packed;
-
-/* ---- Core structures, flags etc ---- */
-
-struct rfcomm_session {
- struct list_head list;
- struct socket *sock;
- struct timer_list timer;
- unsigned long state;
- unsigned long flags;
- atomic_t refcnt;
- int initiator;
-
- /* Default DLC parameters */
- int cfc;
- uint mtu;
-
- struct list_head dlcs;
-};
-
-struct rfcomm_dlc {
- struct list_head list;
- struct rfcomm_session *session;
- struct sk_buff_head tx_queue;
- struct timer_list timer;
-
- spinlock_t lock;
- unsigned long state;
- unsigned long flags;
- atomic_t refcnt;
- u8 dlci;
- u8 addr;
- u8 priority;
- u8 v24_sig;
- u8 remote_v24_sig;
- u8 mscex;
- u8 out;
- u8 sec_level;
- u8 role_switch;
- u32 defer_setup;
-
- uint mtu;
- uint cfc;
- uint rx_credits;
- uint tx_credits;
-
- void *owner;
-
- void (*data_ready)(struct rfcomm_dlc *d, struct sk_buff *skb);
- void (*state_change)(struct rfcomm_dlc *d, int err);
- void (*modem_status)(struct rfcomm_dlc *d, u8 v24_sig);
-};
-
-/* DLC and session flags */
-#define RFCOMM_RX_THROTTLED 0
-#define RFCOMM_TX_THROTTLED 1
-#define RFCOMM_TIMED_OUT 2
-#define RFCOMM_MSC_PENDING 3
-#define RFCOMM_SEC_PENDING 4
-#define RFCOMM_AUTH_PENDING 5
-#define RFCOMM_AUTH_ACCEPT 6
-#define RFCOMM_AUTH_REJECT 7
-#define RFCOMM_DEFER_SETUP 8
-#define RFCOMM_ENC_DROP 9
-
-/* Scheduling flags and events */
-#define RFCOMM_SCHED_WAKEUP 31
-
-/* MSC exchange flags */
-#define RFCOMM_MSCEX_TX 1
-#define RFCOMM_MSCEX_RX 2
-#define RFCOMM_MSCEX_OK (RFCOMM_MSCEX_TX + RFCOMM_MSCEX_RX)
-
-/* CFC states */
-#define RFCOMM_CFC_UNKNOWN -1
-#define RFCOMM_CFC_DISABLED 0
-#define RFCOMM_CFC_ENABLED RFCOMM_MAX_CREDITS
-
-/* ---- RFCOMM SEND RPN ---- */
-int rfcomm_send_rpn(struct rfcomm_session *s, int cr, u8 dlci,
- u8 bit_rate, u8 data_bits, u8 stop_bits,
- u8 parity, u8 flow_ctrl_settings,
- u8 xon_char, u8 xoff_char, u16 param_mask);
-
-/* ---- RFCOMM DLCs (channels) ---- */
-struct rfcomm_dlc *rfcomm_dlc_alloc(gfp_t prio);
-void rfcomm_dlc_free(struct rfcomm_dlc *d);
-int rfcomm_dlc_open(struct rfcomm_dlc *d, bdaddr_t *src, bdaddr_t *dst,
- u8 channel);
-int rfcomm_dlc_close(struct rfcomm_dlc *d, int reason);
-int rfcomm_dlc_send(struct rfcomm_dlc *d, struct sk_buff *skb);
-int rfcomm_dlc_set_modem_status(struct rfcomm_dlc *d, u8 v24_sig);
-int rfcomm_dlc_get_modem_status(struct rfcomm_dlc *d, u8 *v24_sig);
-void rfcomm_dlc_accept(struct rfcomm_dlc *d);
-
-#define rfcomm_dlc_lock(d) spin_lock(&d->lock)
-#define rfcomm_dlc_unlock(d) spin_unlock(&d->lock)
-
-static inline void rfcomm_dlc_hold(struct rfcomm_dlc *d)
-{
- atomic_inc(&d->refcnt);
-}
-
-static inline void rfcomm_dlc_put(struct rfcomm_dlc *d)
-{
- if (atomic_dec_and_test(&d->refcnt))
- rfcomm_dlc_free(d);
-}
-
-extern void __rfcomm_dlc_throttle(struct rfcomm_dlc *d);
-extern void __rfcomm_dlc_unthrottle(struct rfcomm_dlc *d);
-
-static inline void rfcomm_dlc_throttle(struct rfcomm_dlc *d)
-{
- if (!test_and_set_bit(RFCOMM_RX_THROTTLED, &d->flags))
- __rfcomm_dlc_throttle(d);
-}
-
-static inline void rfcomm_dlc_unthrottle(struct rfcomm_dlc *d)
-{
- if (test_and_clear_bit(RFCOMM_RX_THROTTLED, &d->flags))
- __rfcomm_dlc_unthrottle(d);
-}
-
-/* ---- RFCOMM sessions ---- */
-void rfcomm_session_getaddr(struct rfcomm_session *s, bdaddr_t *src,
- bdaddr_t *dst);
-
-static inline void rfcomm_session_hold(struct rfcomm_session *s)
-{
- atomic_inc(&s->refcnt);
-}
-
-/* ---- RFCOMM sockets ---- */
-struct sockaddr_rc {
- sa_family_t rc_family;
- bdaddr_t rc_bdaddr;
- u8 rc_channel;
-};
-
-#define RFCOMM_CONNINFO 0x02
-struct rfcomm_conninfo {
- __u16 hci_handle;
- __u8 dev_class[3];
-};
-
-#define RFCOMM_LM 0x03
-#define RFCOMM_LM_MASTER 0x0001
-#define RFCOMM_LM_AUTH 0x0002
-#define RFCOMM_LM_ENCRYPT 0x0004
-#define RFCOMM_LM_TRUSTED 0x0008
-#define RFCOMM_LM_RELIABLE 0x0010
-#define RFCOMM_LM_SECURE 0x0020
-
-#define rfcomm_pi(sk) ((struct rfcomm_pinfo *) sk)
-
-struct rfcomm_pinfo {
- struct bt_sock bt;
- struct rfcomm_dlc *dlc;
- u8 channel;
- u8 sec_level;
- u8 role_switch;
-};
-
-int rfcomm_init_sockets(void);
-void rfcomm_cleanup_sockets(void);
-
-int rfcomm_connect_ind(struct rfcomm_session *s, u8 channel,
- struct rfcomm_dlc **d);
-
-/* ---- RFCOMM TTY ---- */
-#define RFCOMM_MAX_DEV 256
-
-#define RFCOMMCREATEDEV _IOW('R', 200, int)
-#define RFCOMMRELEASEDEV _IOW('R', 201, int)
-#define RFCOMMGETDEVLIST _IOR('R', 210, int)
-#define RFCOMMGETDEVINFO _IOR('R', 211, int)
-#define RFCOMMSTEALDLC _IOW('R', 220, int)
-
-#define RFCOMM_REUSE_DLC 0
-#define RFCOMM_RELEASE_ONHUP 1
-#define RFCOMM_HANGUP_NOW 2
-#define RFCOMM_TTY_ATTACHED 3
-#define RFCOMM_TTY_RELEASED 4
-
-struct rfcomm_dev_req {
- s16 dev_id;
- u32 flags;
- bdaddr_t src;
- bdaddr_t dst;
- u8 channel;
-};
-
-struct rfcomm_dev_info {
- s16 id;
- u32 flags;
- u16 state;
- bdaddr_t src;
- bdaddr_t dst;
- u8 channel;
-};
-
-struct rfcomm_dev_list_req {
- u16 dev_num;
- struct rfcomm_dev_info dev_info[0];
-};
-
-int rfcomm_dev_ioctl(struct sock *sk, unsigned int cmd, void __user *arg);
-
-#ifdef CONFIG_BT_RFCOMM_TTY
-int rfcomm_init_ttys(void);
-void rfcomm_cleanup_ttys(void);
-#else
-static inline int rfcomm_init_ttys(void)
-{
- return 0;
-}
-static inline void rfcomm_cleanup_ttys(void)
-{
-}
-#endif
-#endif /* __RFCOMM_H */
diff --git a/ANDROID_3.4.5/include/net/bluetooth/sco.h b/ANDROID_3.4.5/include/net/bluetooth/sco.h
deleted file mode 100644
index 6d1857ab..00000000
--- a/ANDROID_3.4.5/include/net/bluetooth/sco.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- BlueZ - Bluetooth protocol stack for Linux
- Copyright (C) 2000-2001 Qualcomm Incorporated
-
- Written 2000,2001 by Maxim Krasnyansky <maxk@qualcomm.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;
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.
- IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) AND AUTHOR(S) BE LIABLE FOR ANY
- CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
- ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PATENTS,
- COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS, RELATING TO USE OF THIS
- SOFTWARE IS DISCLAIMED.
-*/
-
-#ifndef __SCO_H
-#define __SCO_H
-
-/* SCO defaults */
-#define SCO_DEFAULT_MTU 500
-#define SCO_DEFAULT_FLUSH_TO 0xFFFF
-
-#define SCO_CONN_TIMEOUT (HZ * 40)
-#define SCO_DISCONN_TIMEOUT (HZ * 2)
-#define SCO_CONN_IDLE_TIMEOUT (HZ * 60)
-
-/* SCO socket address */
-struct sockaddr_sco {
- sa_family_t sco_family;
- bdaddr_t sco_bdaddr;
- __u16 sco_pkt_type;
-};
-
-/* SCO socket options */
-#define SCO_OPTIONS 0x01
-struct sco_options {
- __u16 mtu;
-};
-
-#define SCO_CONNINFO 0x02
-struct sco_conninfo {
- __u16 hci_handle;
- __u8 dev_class[3];
-};
-
-/* ---- SCO connections ---- */
-struct sco_conn {
- struct hci_conn *hcon;
-
- bdaddr_t *dst;
- bdaddr_t *src;
-
- spinlock_t lock;
- struct sock *sk;
-
- unsigned int mtu;
-};
-
-#define sco_conn_lock(c) spin_lock(&c->lock);
-#define sco_conn_unlock(c) spin_unlock(&c->lock);
-
-/* ----- SCO socket info ----- */
-#define sco_pi(sk) ((struct sco_pinfo *) sk)
-
-struct sco_pinfo {
- struct bt_sock bt;
- __u16 pkt_type;
-
- struct sco_conn *conn;
-};
-
-#endif /* __SCO_H */
diff --git a/ANDROID_3.4.5/include/net/bluetooth/smp.h b/ANDROID_3.4.5/include/net/bluetooth/smp.h
deleted file mode 100644
index 7b3acdd2..00000000
--- a/ANDROID_3.4.5/include/net/bluetooth/smp.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- BlueZ - Bluetooth protocol stack for Linux
- Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-
- 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;
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.
- IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) AND AUTHOR(S) BE LIABLE FOR ANY
- CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
- ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PATENTS,
- COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS, RELATING TO USE OF THIS
- SOFTWARE IS DISCLAIMED.
-*/
-
-#ifndef __SMP_H
-#define __SMP_H
-
-struct smp_command_hdr {
- __u8 code;
-} __packed;
-
-#define SMP_CMD_PAIRING_REQ 0x01
-#define SMP_CMD_PAIRING_RSP 0x02
-struct smp_cmd_pairing {
- __u8 io_capability;
- __u8 oob_flag;
- __u8 auth_req;
- __u8 max_key_size;
- __u8 init_key_dist;
- __u8 resp_key_dist;
-} __packed;
-
-#define SMP_IO_DISPLAY_ONLY 0x00
-#define SMP_IO_DISPLAY_YESNO 0x01
-#define SMP_IO_KEYBOARD_ONLY 0x02
-#define SMP_IO_NO_INPUT_OUTPUT 0x03
-#define SMP_IO_KEYBOARD_DISPLAY 0x04
-
-#define SMP_OOB_NOT_PRESENT 0x00
-#define SMP_OOB_PRESENT 0x01
-
-#define SMP_DIST_ENC_KEY 0x01
-#define SMP_DIST_ID_KEY 0x02
-#define SMP_DIST_SIGN 0x04
-
-#define SMP_AUTH_NONE 0x00
-#define SMP_AUTH_BONDING 0x01
-#define SMP_AUTH_MITM 0x04
-
-#define SMP_CMD_PAIRING_CONFIRM 0x03
-struct smp_cmd_pairing_confirm {
- __u8 confirm_val[16];
-} __packed;
-
-#define SMP_CMD_PAIRING_RANDOM 0x04
-struct smp_cmd_pairing_random {
- __u8 rand_val[16];
-} __packed;
-
-#define SMP_CMD_PAIRING_FAIL 0x05
-struct smp_cmd_pairing_fail {
- __u8 reason;
-} __packed;
-
-#define SMP_CMD_ENCRYPT_INFO 0x06
-struct smp_cmd_encrypt_info {
- __u8 ltk[16];
-} __packed;
-
-#define SMP_CMD_MASTER_IDENT 0x07
-struct smp_cmd_master_ident {
- __u16 ediv;
- __u8 rand[8];
-} __packed;
-
-#define SMP_CMD_IDENT_INFO 0x08
-struct smp_cmd_ident_info {
- __u8 irk[16];
-} __packed;
-
-#define SMP_CMD_IDENT_ADDR_INFO 0x09
-struct smp_cmd_ident_addr_info {
- __u8 addr_type;
- bdaddr_t bdaddr;
-} __packed;
-
-#define SMP_CMD_SIGN_INFO 0x0a
-struct smp_cmd_sign_info {
- __u8 csrk[16];
-} __packed;
-
-#define SMP_CMD_SECURITY_REQ 0x0b
-struct smp_cmd_security_req {
- __u8 auth_req;
-} __packed;
-
-#define SMP_PASSKEY_ENTRY_FAILED 0x01
-#define SMP_OOB_NOT_AVAIL 0x02
-#define SMP_AUTH_REQUIREMENTS 0x03
-#define SMP_CONFIRM_FAILED 0x04
-#define SMP_PAIRING_NOTSUPP 0x05
-#define SMP_ENC_KEY_SIZE 0x06
-#define SMP_CMD_NOTSUPP 0x07
-#define SMP_UNSPECIFIED 0x08
-#define SMP_REPEATED_ATTEMPTS 0x09
-
-#define SMP_MIN_ENC_KEY_SIZE 7
-#define SMP_MAX_ENC_KEY_SIZE 16
-
-#define SMP_FLAG_TK_VALID 1
-#define SMP_FLAG_CFM_PENDING 2
-#define SMP_FLAG_MITM_AUTH 3
-
-struct smp_chan {
- struct l2cap_conn *conn;
- u8 preq[7]; /* SMP Pairing Request */
- u8 prsp[7]; /* SMP Pairing Response */
- u8 prnd[16]; /* SMP Pairing Random (local) */
- u8 rrnd[16]; /* SMP Pairing Random (remote) */
- u8 pcnf[16]; /* SMP Pairing Confirm */
- u8 tk[16]; /* SMP Temporary Key */
- u8 enc_key_size;
- unsigned long smp_flags;
- struct crypto_blkcipher *tfm;
- struct work_struct confirm;
- struct work_struct random;
-
-};
-
-/* SMP Commands */
-int smp_conn_security(struct l2cap_conn *conn, __u8 sec_level);
-int smp_sig_channel(struct l2cap_conn *conn, struct sk_buff *skb);
-int smp_distribute_keys(struct l2cap_conn *conn, __u8 force);
-int smp_user_confirm_reply(struct hci_conn *conn, u16 mgmt_op, __le32 passkey);
-
-void smp_chan_destroy(struct l2cap_conn *conn);
-
-#endif /* __SMP_H */
diff --git a/ANDROID_3.4.5/include/net/caif/caif_dev.h b/ANDROID_3.4.5/include/net/caif/caif_dev.h
deleted file mode 100644
index ef2dd943..00000000
--- a/ANDROID_3.4.5/include/net/caif/caif_dev.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson AB 2010
- * Author: Sjur Brendeland/ sjur.brandeland@stericsson.com
- * License terms: GNU General Public License (GPL) version 2
- */
-
-#ifndef CAIF_DEV_H_
-#define CAIF_DEV_H_
-
-#include <net/caif/caif_layer.h>
-#include <net/caif/cfcnfg.h>
-#include <net/caif/caif_device.h>
-#include <linux/caif/caif_socket.h>
-#include <linux/if.h>
-#include <linux/net.h>
-
-/**
- * struct caif_param - CAIF parameters.
- * @size: Length of data
- * @data: Binary Data Blob
- */
-struct caif_param {
- u16 size;
- u8 data[256];
-};
-
-/**
- * struct caif_connect_request - Request data for CAIF channel setup.
- * @protocol: Type of CAIF protocol to use (at, datagram etc)
- * @sockaddr: Socket address to connect.
- * @priority: Priority of the connection.
- * @link_selector: Link selector (high bandwidth or low latency)
- * @ifindex: kernel index of the interface.
- * @param: Connect Request parameters (CAIF_SO_REQ_PARAM).
- *
- * This struct is used when connecting a CAIF channel.
- * It contains all CAIF channel configuration options.
- */
-struct caif_connect_request {
- enum caif_protocol_type protocol;
- struct sockaddr_caif sockaddr;
- enum caif_channel_priority priority;
- enum caif_link_selector link_selector;
- int ifindex;
- struct caif_param param;
-};
-
-/**
- * caif_connect_client - Connect a client to CAIF Core Stack.
- * @config: Channel setup parameters, specifying what address
- * to connect on the Modem.
- * @client_layer: User implementation of client layer. This layer
- * MUST have receive and control callback functions
- * implemented.
- * @ifindex: Link layer interface index used for this connection.
- * @headroom: Head room needed by CAIF protocol.
- * @tailroom: Tail room needed by CAIF protocol.
- *
- * This function connects a CAIF channel. The Client must implement
- * the struct cflayer. This layer represents the Client layer and holds
- * receive functions and control callback functions. Control callback
- * function will receive information about connect/disconnect responses,
- * flow control etc (see enum caif_control).
- * E.g. CAIF Socket will call this function for each socket it connects
- * and have one client_layer instance for each socket.
- */
-int caif_connect_client(struct net *net,
- struct caif_connect_request *conn_req,
- struct cflayer *client_layer, int *ifindex,
- int *headroom, int *tailroom);
-
-/**
- * caif_disconnect_client - Disconnects a client from the CAIF stack.
- *
- * @client_layer: Client layer to be disconnected.
- */
-int caif_disconnect_client(struct net *net, struct cflayer *client_layer);
-
-
-/**
- * caif_client_register_refcnt - register ref-count functions provided by client.
- *
- * @adapt_layer: Client layer using CAIF Stack.
- * @hold: Function provided by client layer increasing ref-count
- * @put: Function provided by client layer decreasing ref-count
- *
- * Client of the CAIF Stack must register functions for reference counting.
- * These functions are called by the CAIF Stack for every upstream packet,
- * and must therefore be implemented efficiently.
- *
- * Client should call caif_free_client when reference count degrease to zero.
- */
-
-void caif_client_register_refcnt(struct cflayer *adapt_layer,
- void (*hold)(struct cflayer *lyr),
- void (*put)(struct cflayer *lyr));
-/**
- * caif_free_client - Free memory used to manage the client in the CAIF Stack.
- *
- * @client_layer: Client layer to be removed.
- *
- * This function must be called from client layer in order to free memory.
- * Caller must guarantee that no packets are in flight upstream when calling
- * this function.
- */
-void caif_free_client(struct cflayer *adap_layer);
-
-/**
- * struct caif_enroll_dev - Enroll a net-device as a CAIF Link layer
- * @dev: Network device to enroll.
- * @caifdev: Configuration information from CAIF Link Layer
- * @link_support: Link layer support layer
- * @head_room: Head room needed by link support layer
- * @layer: Lowest layer in CAIF stack
- * @rcv_fun: Receive function for CAIF stack.
- *
- * This function enroll a CAIF link layer into CAIF Stack and
- * expects the interface to be able to handle CAIF payload.
- * The link_support layer is used to add any Link Layer specific
- * framing.
- */
-void caif_enroll_dev(struct net_device *dev, struct caif_dev_common *caifdev,
- struct cflayer *link_support, int head_room,
- struct cflayer **layer, int (**rcv_func)(
- struct sk_buff *, struct net_device *,
- struct packet_type *, struct net_device *));
-
-#endif /* CAIF_DEV_H_ */
diff --git a/ANDROID_3.4.5/include/net/caif/caif_device.h b/ANDROID_3.4.5/include/net/caif/caif_device.h
deleted file mode 100644
index d02f044a..00000000
--- a/ANDROID_3.4.5/include/net/caif/caif_device.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson AB 2010
- * Author: Sjur Brendeland/ sjur.brandeland@stericsson.com
- * License terms: GNU General Public License (GPL) version 2
- */
-
-#ifndef CAIF_DEVICE_H_
-#define CAIF_DEVICE_H_
-#include <linux/kernel.h>
-#include <linux/net.h>
-#include <linux/netdevice.h>
-#include <linux/caif/caif_socket.h>
-#include <net/caif/caif_device.h>
-
-/**
- * struct caif_dev_common - data shared between CAIF drivers and stack.
- * @flowctrl: Flow Control callback function. This function is
- * supplied by CAIF Core Stack and is used by CAIF
- * Link Layer to send flow-stop to CAIF Core.
- * The flow information will be distributed to all
- * clients of CAIF.
- *
- * @link_select: Profile of device, either high-bandwidth or
- * low-latency. This member is set by CAIF Link
- * Layer Device in order to indicate if this device
- * is a high bandwidth or low latency device.
- *
- * @use_frag: CAIF Frames may be fragmented.
- * Is set by CAIF Link Layer in order to indicate if the
- * interface receives fragmented frames that must be
- * assembled by CAIF Core Layer.
- *
- * @use_fcs: Indicate if Frame CheckSum (fcs) is used.
- * Is set if the physical interface is
- * using Frame Checksum on the CAIF Frames.
- *
- * @use_stx: Indicate STart of frame eXtension (stx) in use.
- * Is set if the CAIF Link Layer expects
- * CAIF Frames to start with the STX byte.
- *
- * This structure is shared between the CAIF drivers and the CAIF stack.
- * It is used by the device to register its behavior.
- * CAIF Core layer must set the member flowctrl in order to supply
- * CAIF Link Layer with the flow control function.
- *
- */
- struct caif_dev_common {
- void (*flowctrl)(struct net_device *net, int on);
- enum caif_link_selector link_select;
- int use_frag;
- int use_fcs;
- int use_stx;
-};
-
-#endif /* CAIF_DEVICE_H_ */
diff --git a/ANDROID_3.4.5/include/net/caif/caif_hsi.h b/ANDROID_3.4.5/include/net/caif/caif_hsi.h
deleted file mode 100644
index 6db8ecf5..00000000
--- a/ANDROID_3.4.5/include/net/caif/caif_hsi.h
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson AB 2010
- * Contact: Sjur Brendeland / sjur.brandeland@stericsson.com
- * Author: Daniel Martensson / daniel.martensson@stericsson.com
- * Dmitry.Tarnyagin / dmitry.tarnyagin@stericsson.com
- * License terms: GNU General Public License (GPL) version 2
- */
-
-#ifndef CAIF_HSI_H_
-#define CAIF_HSI_H_
-
-#include <net/caif/caif_layer.h>
-#include <net/caif/caif_device.h>
-#include <linux/atomic.h>
-
-/*
- * Maximum number of CAIF frames that can reside in the same HSI frame.
- */
-#define CFHSI_MAX_PKTS 15
-
-/*
- * Maximum number of bytes used for the frame that can be embedded in the
- * HSI descriptor.
- */
-#define CFHSI_MAX_EMB_FRM_SZ 96
-
-/*
- * Decides if HSI buffers should be prefilled with 0xFF pattern for easier
- * debugging. Both TX and RX buffers will be filled before the transfer.
- */
-#define CFHSI_DBG_PREFILL 0
-
-/* Structure describing a HSI packet descriptor. */
-#pragma pack(1) /* Byte alignment. */
-struct cfhsi_desc {
- u8 header;
- u8 offset;
- u16 cffrm_len[CFHSI_MAX_PKTS];
- u8 emb_frm[CFHSI_MAX_EMB_FRM_SZ];
-};
-#pragma pack() /* Default alignment. */
-
-/* Size of the complete HSI packet descriptor. */
-#define CFHSI_DESC_SZ (sizeof(struct cfhsi_desc))
-
-/*
- * Size of the complete HSI packet descriptor excluding the optional embedded
- * CAIF frame.
- */
-#define CFHSI_DESC_SHORT_SZ (CFHSI_DESC_SZ - CFHSI_MAX_EMB_FRM_SZ)
-
-/*
- * Maximum bytes transferred in one transfer.
- */
-#define CFHSI_MAX_CAIF_FRAME_SZ 4096
-
-#define CFHSI_MAX_PAYLOAD_SZ (CFHSI_MAX_PKTS * CFHSI_MAX_CAIF_FRAME_SZ)
-
-/* Size of the complete HSI TX buffer. */
-#define CFHSI_BUF_SZ_TX (CFHSI_DESC_SZ + CFHSI_MAX_PAYLOAD_SZ)
-
-/* Size of the complete HSI RX buffer. */
-#define CFHSI_BUF_SZ_RX ((2 * CFHSI_DESC_SZ) + CFHSI_MAX_PAYLOAD_SZ)
-
-/* Bitmasks for the HSI descriptor. */
-#define CFHSI_PIGGY_DESC (0x01 << 7)
-
-#define CFHSI_TX_STATE_IDLE 0
-#define CFHSI_TX_STATE_XFER 1
-
-#define CFHSI_RX_STATE_DESC 0
-#define CFHSI_RX_STATE_PAYLOAD 1
-
-/* Bitmasks for power management. */
-#define CFHSI_WAKE_UP 0
-#define CFHSI_WAKE_UP_ACK 1
-#define CFHSI_WAKE_DOWN_ACK 2
-#define CFHSI_AWAKE 3
-#define CFHSI_WAKELOCK_HELD 4
-#define CFHSI_SHUTDOWN 5
-#define CFHSI_FLUSH_FIFO 6
-
-#ifndef CFHSI_INACTIVITY_TOUT
-#define CFHSI_INACTIVITY_TOUT (1 * HZ)
-#endif /* CFHSI_INACTIVITY_TOUT */
-
-#ifndef CFHSI_WAKE_TOUT
-#define CFHSI_WAKE_TOUT (3 * HZ)
-#endif /* CFHSI_WAKE_TOUT */
-
-#ifndef CFHSI_MAX_RX_RETRIES
-#define CFHSI_MAX_RX_RETRIES (10 * HZ)
-#endif
-
-/* Structure implemented by the CAIF HSI driver. */
-struct cfhsi_drv {
- void (*tx_done_cb) (struct cfhsi_drv *drv);
- void (*rx_done_cb) (struct cfhsi_drv *drv);
- void (*wake_up_cb) (struct cfhsi_drv *drv);
- void (*wake_down_cb) (struct cfhsi_drv *drv);
-};
-
-/* Structure implemented by HSI device. */
-struct cfhsi_dev {
- int (*cfhsi_up) (struct cfhsi_dev *dev);
- int (*cfhsi_down) (struct cfhsi_dev *dev);
- int (*cfhsi_tx) (u8 *ptr, int len, struct cfhsi_dev *dev);
- int (*cfhsi_rx) (u8 *ptr, int len, struct cfhsi_dev *dev);
- int (*cfhsi_wake_up) (struct cfhsi_dev *dev);
- int (*cfhsi_wake_down) (struct cfhsi_dev *dev);
- int (*cfhsi_get_peer_wake) (struct cfhsi_dev *dev, bool *status);
- int (*cfhsi_fifo_occupancy)(struct cfhsi_dev *dev, size_t *occupancy);
- int (*cfhsi_rx_cancel)(struct cfhsi_dev *dev);
- struct cfhsi_drv *drv;
-};
-
-/* Structure holds status of received CAIF frames processing */
-struct cfhsi_rx_state {
- int state;
- int nfrms;
- int pld_len;
- int retries;
- bool piggy_desc;
-};
-
-/* Structure implemented by CAIF HSI drivers. */
-struct cfhsi {
- struct caif_dev_common cfdev;
- struct net_device *ndev;
- struct platform_device *pdev;
- struct sk_buff_head qhead;
- struct cfhsi_drv drv;
- struct cfhsi_dev *dev;
- int tx_state;
- struct cfhsi_rx_state rx_state;
- unsigned long inactivity_timeout;
- int rx_len;
- u8 *rx_ptr;
- u8 *tx_buf;
- u8 *rx_buf;
- u8 *rx_flip_buf;
- spinlock_t lock;
- int flow_off_sent;
- u32 q_low_mark;
- u32 q_high_mark;
- struct list_head list;
- struct work_struct wake_up_work;
- struct work_struct wake_down_work;
- struct work_struct out_of_sync_work;
- struct workqueue_struct *wq;
- wait_queue_head_t wake_up_wait;
- wait_queue_head_t wake_down_wait;
- wait_queue_head_t flush_fifo_wait;
- struct timer_list timer;
- struct timer_list rx_slowpath_timer;
- unsigned long bits;
-};
-
-extern struct platform_driver cfhsi_driver;
-
-#endif /* CAIF_HSI_H_ */
diff --git a/ANDROID_3.4.5/include/net/caif/caif_layer.h b/ANDROID_3.4.5/include/net/caif/caif_layer.h
deleted file mode 100644
index 0f3a3912..00000000
--- a/ANDROID_3.4.5/include/net/caif/caif_layer.h
+++ /dev/null
@@ -1,279 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson AB 2010
- * Author: Sjur Brendeland / sjur.brandeland@stericsson.com
- * License terms: GNU General Public License (GPL) version 2
- */
-
-#ifndef CAIF_LAYER_H_
-#define CAIF_LAYER_H_
-
-#include <linux/list.h>
-
-struct cflayer;
-struct cfpkt;
-struct cfpktq;
-struct caif_payload_info;
-struct caif_packet_funcs;
-
-#define CAIF_LAYER_NAME_SZ 16
-
-/**
- * caif_assert() - Assert function for CAIF.
- * @assert: expression to evaluate.
- *
- * This function will print a error message and a do WARN_ON if the
- * assertion failes. Normally this will do a stack up at the current location.
- */
-#define caif_assert(assert) \
-do { \
- if (!(assert)) { \
- pr_err("caif:Assert detected:'%s'\n", #assert); \
- WARN_ON(!(assert)); \
- } \
-} while (0)
-
-/**
- * enum caif_ctrlcmd - CAIF Stack Control Signaling sent in layer.ctrlcmd().
- *
- * @CAIF_CTRLCMD_FLOW_OFF_IND: Flow Control is OFF, transmit function
- * should stop sending data
- *
- * @CAIF_CTRLCMD_FLOW_ON_IND: Flow Control is ON, transmit function
- * can start sending data
- *
- * @CAIF_CTRLCMD_REMOTE_SHUTDOWN_IND: Remote end modem has decided to close
- * down channel
- *
- * @CAIF_CTRLCMD_INIT_RSP: Called initially when the layer below
- * has finished initialization
- *
- * @CAIF_CTRLCMD_DEINIT_RSP: Called when de-initialization is
- * complete
- *
- * @CAIF_CTRLCMD_INIT_FAIL_RSP: Called if initialization fails
- *
- * @_CAIF_CTRLCMD_PHYIF_FLOW_OFF_IND: CAIF Link layer temporarily cannot
- * send more packets.
- * @_CAIF_CTRLCMD_PHYIF_FLOW_ON_IND: Called if CAIF Link layer is able
- * to send packets again.
- * @_CAIF_CTRLCMD_PHYIF_DOWN_IND: Called if CAIF Link layer is going
- * down.
- *
- * These commands are sent upwards in the CAIF stack to the CAIF Client.
- * They are used for signaling originating from the modem or CAIF Link Layer.
- * These are either responses (*_RSP) or events (*_IND).
- */
-enum caif_ctrlcmd {
- CAIF_CTRLCMD_FLOW_OFF_IND,
- CAIF_CTRLCMD_FLOW_ON_IND,
- CAIF_CTRLCMD_REMOTE_SHUTDOWN_IND,
- CAIF_CTRLCMD_INIT_RSP,
- CAIF_CTRLCMD_DEINIT_RSP,
- CAIF_CTRLCMD_INIT_FAIL_RSP,
- _CAIF_CTRLCMD_PHYIF_FLOW_OFF_IND,
- _CAIF_CTRLCMD_PHYIF_FLOW_ON_IND,
- _CAIF_CTRLCMD_PHYIF_DOWN_IND,
-};
-
-/**
- * enum caif_modemcmd - Modem Control Signaling, sent from CAIF Client
- * to the CAIF Link Layer or modem.
- *
- * @CAIF_MODEMCMD_FLOW_ON_REQ: Flow Control is ON, transmit function
- * can start sending data.
- *
- * @CAIF_MODEMCMD_FLOW_OFF_REQ: Flow Control is OFF, transmit function
- * should stop sending data.
- *
- * @_CAIF_MODEMCMD_PHYIF_USEFULL: Notify physical layer that it is in use
- *
- * @_CAIF_MODEMCMD_PHYIF_USELESS: Notify physical layer that it is
- * no longer in use.
- *
- * These are requests sent 'downwards' in the stack.
- * Flow ON, OFF can be indicated to the modem.
- */
-enum caif_modemcmd {
- CAIF_MODEMCMD_FLOW_ON_REQ = 0,
- CAIF_MODEMCMD_FLOW_OFF_REQ = 1,
- _CAIF_MODEMCMD_PHYIF_USEFULL = 3,
- _CAIF_MODEMCMD_PHYIF_USELESS = 4
-};
-
-/**
- * enum caif_direction - CAIF Packet Direction.
- * Indicate if a packet is to be sent out or to be received in.
- * @CAIF_DIR_IN: Incoming packet received.
- * @CAIF_DIR_OUT: Outgoing packet to be transmitted.
- */
-enum caif_direction {
- CAIF_DIR_IN = 0,
- CAIF_DIR_OUT = 1
-};
-
-/**
- * struct cflayer - CAIF Stack layer.
- * Defines the framework for the CAIF Core Stack.
- * @up: Pointer up to the layer above.
- * @dn: Pointer down to the layer below.
- * @node: List node used when layer participate in a list.
- * @receive: Packet receive function.
- * @transmit: Packet transmit funciton.
- * @ctrlcmd: Used for control signalling upwards in the stack.
- * @modemcmd: Used for control signaling downwards in the stack.
- * @id: The identity of this layer
- * @name: Name of the layer.
- *
- * This structure defines the layered structure in CAIF.
- *
- * It defines CAIF layering structure, used by all CAIF Layers and the
- * layers interfacing CAIF.
- *
- * In order to integrate with CAIF an adaptation layer on top of the CAIF stack
- * and PHY layer below the CAIF stack
- * must be implemented. These layer must follow the design principles below.
- *
- * Principles for layering of protocol layers:
- * - All layers must use this structure. If embedding it, then place this
- * structure first in the layer specific structure.
- *
- * - Each layer should not depend on any others layer's private data.
- *
- * - In order to send data upwards do
- * layer->up->receive(layer->up, packet);
- *
- * - In order to send data downwards do
- * layer->dn->transmit(layer->dn, info, packet);
- */
-struct cflayer {
- struct cflayer *up;
- struct cflayer *dn;
- struct list_head node;
-
- /*
- * receive() - Receive Function (non-blocking).
- * Contract: Each layer must implement a receive function passing the
- * CAIF packets upwards in the stack.
- * Packet handling rules:
- * - The CAIF packet (cfpkt) ownership is passed to the
- * called receive function. This means that the the
- * packet cannot be accessed after passing it to the
- * above layer using up->receive().
- *
- * - If parsing of the packet fails, the packet must be
- * destroyed and negative error code returned
- * from the function.
- * EXCEPTION: If the framing layer (cffrml) returns
- * -EILSEQ, the packet is not freed.
- *
- * - If parsing succeeds (and above layers return OK) then
- * the function must return a value >= 0.
- *
- * Returns result < 0 indicates an error, 0 or positive value
- * indicates success.
- *
- * @layr: Pointer to the current layer the receive function is
- * implemented for (this pointer).
- * @cfpkt: Pointer to CaifPacket to be handled.
- */
- int (*receive)(struct cflayer *layr, struct cfpkt *cfpkt);
-
- /*
- * transmit() - Transmit Function (non-blocking).
- * Contract: Each layer must implement a transmit function passing the
- * CAIF packet downwards in the stack.
- * Packet handling rules:
- * - The CAIF packet (cfpkt) ownership is passed to the
- * transmit function. This means that the the packet
- * cannot be accessed after passing it to the below
- * layer using dn->transmit().
- *
- * - Upon error the packet ownership is still passed on,
- * so the packet shall be freed where error is detected.
- * Callers of the transmit function shall not free packets,
- * but errors shall be returned.
- *
- * - Return value less than zero means error, zero or
- * greater than zero means OK.
- *
- * Returns result < 0 indicates an error, 0 or positive value
- * indicates success.
- *
- * @layr: Pointer to the current layer the receive function
- * isimplemented for (this pointer).
- * @cfpkt: Pointer to CaifPacket to be handled.
- */
- int (*transmit) (struct cflayer *layr, struct cfpkt *cfpkt);
-
- /*
- * cttrlcmd() - Control Function upwards in CAIF Stack (non-blocking).
- * Used for signaling responses (CAIF_CTRLCMD_*_RSP)
- * and asynchronous events from the modem (CAIF_CTRLCMD_*_IND)
- *
- * @layr: Pointer to the current layer the receive function
- * is implemented for (this pointer).
- * @ctrl: Control Command.
- */
- void (*ctrlcmd) (struct cflayer *layr, enum caif_ctrlcmd ctrl,
- int phyid);
-
- /*
- * modemctrl() - Control Function used for controlling the modem.
- * Used to signal down-wards in the CAIF stack.
- * Returns 0 on success, < 0 upon failure.
- *
- * @layr: Pointer to the current layer the receive function
- * is implemented for (this pointer).
- * @ctrl: Control Command.
- */
- int (*modemcmd) (struct cflayer *layr, enum caif_modemcmd ctrl);
-
- unsigned int id;
- char name[CAIF_LAYER_NAME_SZ];
-};
-
-/**
- * layer_set_up() - Set the up pointer for a specified layer.
- * @layr: Layer where up pointer shall be set.
- * @above: Layer above.
- */
-#define layer_set_up(layr, above) ((layr)->up = (struct cflayer *)(above))
-
-/**
- * layer_set_dn() - Set the down pointer for a specified layer.
- * @layr: Layer where down pointer shall be set.
- * @below: Layer below.
- */
-#define layer_set_dn(layr, below) ((layr)->dn = (struct cflayer *)(below))
-
-/**
- * struct dev_info - Physical Device info information about physical layer.
- * @dev: Pointer to native physical device.
- * @id: Physical ID of the physical connection used by the
- * logical CAIF connection. Used by service layers to
- * identify their physical id to Caif MUX (CFMUXL)so
- * that the MUX can add the correct physical ID to the
- * packet.
- */
-struct dev_info {
- void *dev;
- unsigned int id;
-};
-
-/**
- * struct caif_payload_info - Payload information embedded in packet (sk_buff).
- *
- * @dev_info: Information about the receiving device.
- *
- * @hdr_len: Header length, used to align pay load on 32bit boundary.
- *
- * @channel_id: Channel ID of the logical CAIF connection.
- * Used by mux to insert channel id into the caif packet.
- */
-struct caif_payload_info {
- struct dev_info *dev_info;
- unsigned short hdr_len;
- unsigned short channel_id;
-};
-
-#endif /* CAIF_LAYER_H_ */
diff --git a/ANDROID_3.4.5/include/net/caif/caif_shm.h b/ANDROID_3.4.5/include/net/caif/caif_shm.h
deleted file mode 100644
index 5bcce554..00000000
--- a/ANDROID_3.4.5/include/net/caif/caif_shm.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson AB 2010
- * Contact: Sjur Brendeland / sjur.brandeland@stericsson.com
- * Author: Amarnath Revanna / amarnath.bangalore.revanna@stericsson.com
- * License terms: GNU General Public License (GPL) version 2
- */
-
-#ifndef CAIF_SHM_H_
-#define CAIF_SHM_H_
-
-struct shmdev_layer {
- u32 shm_base_addr;
- u32 shm_total_sz;
- u32 shm_id;
- u32 shm_loopback;
- void *hmbx;
- int (*pshmdev_mbxsend) (u32 shm_id, u32 mbx_msg);
- int (*pshmdev_mbxsetup) (void *pshmdrv_cb,
- struct shmdev_layer *pshm_dev, void *pshm_drv);
- struct net_device *pshm_netdev;
-};
-
-extern int caif_shmcore_probe(struct shmdev_layer *pshm_dev);
-extern void caif_shmcore_remove(struct net_device *pshm_netdev);
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/caif/caif_spi.h b/ANDROID_3.4.5/include/net/caif/caif_spi.h
deleted file mode 100644
index aa6a485b..00000000
--- a/ANDROID_3.4.5/include/net/caif/caif_spi.h
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson AB 2010
- * Author: Daniel Martensson / Daniel.Martensson@stericsson.com
- * License terms: GNU General Public License (GPL) version 2
- */
-
-#ifndef CAIF_SPI_H_
-#define CAIF_SPI_H_
-
-#include <net/caif/caif_device.h>
-
-#define SPI_CMD_WR 0x00
-#define SPI_CMD_RD 0x01
-#define SPI_CMD_EOT 0x02
-#define SPI_CMD_IND 0x04
-
-#define SPI_DMA_BUF_LEN 8192
-
-#define WL_SZ 2 /* 16 bits. */
-#define SPI_CMD_SZ 4 /* 32 bits. */
-#define SPI_IND_SZ 4 /* 32 bits. */
-
-#define SPI_XFER 0
-#define SPI_SS_ON 1
-#define SPI_SS_OFF 2
-#define SPI_TERMINATE 3
-
-/* Minimum time between different levels is 50 microseconds. */
-#define MIN_TRANSITION_TIME_USEC 50
-
-/* Defines for calculating duration of SPI transfers for a particular
- * number of bytes.
- */
-#define SPI_MASTER_CLK_MHZ 13
-#define SPI_XFER_TIME_USEC(bytes, clk) (((bytes) * 8) / clk)
-
-/* Normally this should be aligned on the modem in order to benefit from full
- * duplex transfers. However a size of 8188 provokes errors when running with
- * the modem. These errors occur when packet sizes approaches 4 kB of data.
- */
-#define CAIF_MAX_SPI_FRAME 4092
-
-/* Maximum number of uplink CAIF frames that can reside in the same SPI frame.
- * This number should correspond with the modem setting. The application side
- * CAIF accepts any number of embedded downlink CAIF frames.
- */
-#define CAIF_MAX_SPI_PKTS 9
-
-/* Decides if SPI buffers should be prefilled with 0xFF pattern for easier
- * debugging. Both TX and RX buffers will be filled before the transfer.
- */
-#define CFSPI_DBG_PREFILL 0
-
-/* Structure describing a SPI transfer. */
-struct cfspi_xfer {
- u16 tx_dma_len;
- u16 rx_dma_len;
- void *va_tx[2];
- dma_addr_t pa_tx[2];
- void *va_rx;
- dma_addr_t pa_rx;
-};
-
-/* Structure implemented by the SPI interface. */
-struct cfspi_ifc {
- void (*ss_cb) (bool assert, struct cfspi_ifc *ifc);
- void (*xfer_done_cb) (struct cfspi_ifc *ifc);
- void *priv;
-};
-
-/* Structure implemented by SPI clients. */
-struct cfspi_dev {
- int (*init_xfer) (struct cfspi_xfer *xfer, struct cfspi_dev *dev);
- void (*sig_xfer) (bool xfer, struct cfspi_dev *dev);
- struct cfspi_ifc *ifc;
- char *name;
- u32 clk_mhz;
- void *priv;
-};
-
-/* Enumeration describing the CAIF SPI state. */
-enum cfspi_state {
- CFSPI_STATE_WAITING = 0,
- CFSPI_STATE_AWAKE,
- CFSPI_STATE_FETCH_PKT,
- CFSPI_STATE_GET_NEXT,
- CFSPI_STATE_INIT_XFER,
- CFSPI_STATE_WAIT_ACTIVE,
- CFSPI_STATE_SIG_ACTIVE,
- CFSPI_STATE_WAIT_XFER_DONE,
- CFSPI_STATE_XFER_DONE,
- CFSPI_STATE_WAIT_INACTIVE,
- CFSPI_STATE_SIG_INACTIVE,
- CFSPI_STATE_DELIVER_PKT,
- CFSPI_STATE_MAX,
-};
-
-/* Structure implemented by SPI physical interfaces. */
-struct cfspi {
- struct caif_dev_common cfdev;
- struct net_device *ndev;
- struct platform_device *pdev;
- struct sk_buff_head qhead;
- struct sk_buff_head chead;
- u16 cmd;
- u16 tx_cpck_len;
- u16 tx_npck_len;
- u16 rx_cpck_len;
- u16 rx_npck_len;
- struct cfspi_ifc ifc;
- struct cfspi_xfer xfer;
- struct cfspi_dev *dev;
- unsigned long state;
- struct work_struct work;
- struct workqueue_struct *wq;
- struct list_head list;
- int flow_off_sent;
- u32 qd_low_mark;
- u32 qd_high_mark;
- struct completion comp;
- wait_queue_head_t wait;
- spinlock_t lock;
- bool flow_stop;
- bool slave;
- bool slave_talked;
-#ifdef CONFIG_DEBUG_FS
- enum cfspi_state dbg_state;
- u16 pcmd;
- u16 tx_ppck_len;
- u16 rx_ppck_len;
- struct dentry *dbgfs_dir;
- struct dentry *dbgfs_state;
- struct dentry *dbgfs_frame;
-#endif /* CONFIG_DEBUG_FS */
-};
-
-extern int spi_frm_align;
-extern int spi_up_head_align;
-extern int spi_up_tail_align;
-extern int spi_down_head_align;
-extern int spi_down_tail_align;
-extern struct platform_driver cfspi_spi_driver;
-
-void cfspi_dbg_state(struct cfspi *cfspi, int state);
-int cfspi_xmitfrm(struct cfspi *cfspi, u8 *buf, size_t len);
-int cfspi_xmitlen(struct cfspi *cfspi);
-int cfspi_rxfrm(struct cfspi *cfspi, u8 *buf, size_t len);
-int cfspi_spi_remove(struct platform_device *pdev);
-int cfspi_spi_probe(struct platform_device *pdev);
-int cfspi_xmitfrm(struct cfspi *cfspi, u8 *buf, size_t len);
-int cfspi_xmitlen(struct cfspi *cfspi);
-int cfspi_rxfrm(struct cfspi *cfspi, u8 *buf, size_t len);
-void cfspi_xfer(struct work_struct *work);
-
-#endif /* CAIF_SPI_H_ */
diff --git a/ANDROID_3.4.5/include/net/caif/cfcnfg.h b/ANDROID_3.4.5/include/net/caif/cfcnfg.h
deleted file mode 100644
index 90b4ff8b..00000000
--- a/ANDROID_3.4.5/include/net/caif/cfcnfg.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson AB 2010
- * Author: Sjur Brendeland/sjur.brandeland@stericsson.com
- * License terms: GNU General Public License (GPL) version 2
- */
-
-#ifndef CFCNFG_H_
-#define CFCNFG_H_
-#include <linux/spinlock.h>
-#include <linux/netdevice.h>
-#include <net/caif/caif_layer.h>
-#include <net/caif/cfctrl.h>
-
-struct cfcnfg;
-
-/**
- * enum cfcnfg_phy_preference - Physical preference HW Abstraction
- *
- * @CFPHYPREF_UNSPECIFIED: Default physical interface
- *
- * @CFPHYPREF_LOW_LAT: Default physical interface for low-latency
- * traffic
- * @CFPHYPREF_HIGH_BW: Default physical interface for high-bandwidth
- * traffic
- * @CFPHYPREF_LOOP: TEST only Loopback interface simulating modem
- * responses.
- *
- */
-enum cfcnfg_phy_preference {
- CFPHYPREF_UNSPECIFIED,
- CFPHYPREF_LOW_LAT,
- CFPHYPREF_HIGH_BW,
- CFPHYPREF_LOOP
-};
-
-/**
- * cfcnfg_create() - Get the CAIF configuration object given network.
- * @net: Network for the CAIF configuration object.
- */
-struct cfcnfg *get_cfcnfg(struct net *net);
-
-/**
- * cfcnfg_create() - Create the CAIF configuration object.
- */
-struct cfcnfg *cfcnfg_create(void);
-
-/**
- * cfcnfg_remove() - Remove the CFCNFG object
- * @cfg: config object
- */
-void cfcnfg_remove(struct cfcnfg *cfg);
-
-/**
- * cfcnfg_add_phy_layer() - Adds a physical layer to the CAIF stack.
- * @cnfg: Pointer to a CAIF configuration object, created by
- * cfcnfg_create().
- * @dev: Pointer to link layer device
- * @phy_layer: Specify the physical layer. The transmit function
- * MUST be set in the structure.
- * @pref: The phy (link layer) preference.
- * @link_support: Protocol implementation for link layer specific protocol.
- * @fcs: Specify if checksum is used in CAIF Framing Layer.
- * @head_room: Head space needed by link specific protocol.
- */
-void
-cfcnfg_add_phy_layer(struct cfcnfg *cnfg,
- struct net_device *dev, struct cflayer *phy_layer,
- enum cfcnfg_phy_preference pref,
- struct cflayer *link_support,
- bool fcs, int head_room);
-
-/**
- * cfcnfg_del_phy_layer - Deletes an phy layer from the CAIF stack.
- *
- * @cnfg: Pointer to a CAIF configuration object, created by
- * cfcnfg_create().
- * @phy_layer: Adaptation layer to be removed.
- */
-int cfcnfg_del_phy_layer(struct cfcnfg *cnfg, struct cflayer *phy_layer);
-
-/**
- * cfcnfg_set_phy_state() - Set the state of the physical interface device.
- * @cnfg: Configuration object
- * @phy_layer: Physical Layer representation
- * @up: State of device
- */
-int cfcnfg_set_phy_state(struct cfcnfg *cnfg, struct cflayer *phy_layer,
- bool up);
-
-#endif /* CFCNFG_H_ */
diff --git a/ANDROID_3.4.5/include/net/caif/cfctrl.h b/ANDROID_3.4.5/include/net/caif/cfctrl.h
deleted file mode 100644
index 9e5425b4..00000000
--- a/ANDROID_3.4.5/include/net/caif/cfctrl.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson AB 2010
- * Author: Sjur Brendeland/sjur.brandeland@stericsson.com
- * License terms: GNU General Public License (GPL) version 2
- */
-
-#ifndef CFCTRL_H_
-#define CFCTRL_H_
-#include <net/caif/caif_layer.h>
-#include <net/caif/cfsrvl.h>
-
-/* CAIF Control packet commands */
-enum cfctrl_cmd {
- CFCTRL_CMD_LINK_SETUP = 0,
- CFCTRL_CMD_LINK_DESTROY = 1,
- CFCTRL_CMD_LINK_ERR = 2,
- CFCTRL_CMD_ENUM = 3,
- CFCTRL_CMD_SLEEP = 4,
- CFCTRL_CMD_WAKE = 5,
- CFCTRL_CMD_LINK_RECONF = 6,
- CFCTRL_CMD_START_REASON = 7,
- CFCTRL_CMD_RADIO_SET = 8,
- CFCTRL_CMD_MODEM_SET = 9,
- CFCTRL_CMD_MASK = 0xf
-};
-
-/* Channel types */
-enum cfctrl_srv {
- CFCTRL_SRV_DECM = 0,
- CFCTRL_SRV_VEI = 1,
- CFCTRL_SRV_VIDEO = 2,
- CFCTRL_SRV_DBG = 3,
- CFCTRL_SRV_DATAGRAM = 4,
- CFCTRL_SRV_RFM = 5,
- CFCTRL_SRV_UTIL = 6,
- CFCTRL_SRV_MASK = 0xf
-};
-
-#define CFCTRL_RSP_BIT 0x20
-#define CFCTRL_ERR_BIT 0x10
-
-struct cfctrl_rsp {
- void (*linksetup_rsp)(struct cflayer *layer, u8 linkid,
- enum cfctrl_srv serv, u8 phyid,
- struct cflayer *adapt_layer);
- void (*linkdestroy_rsp)(struct cflayer *layer, u8 linkid);
- void (*linkerror_ind)(void);
- void (*enum_rsp)(void);
- void (*sleep_rsp)(void);
- void (*wake_rsp)(void);
- void (*restart_rsp)(void);
- void (*radioset_rsp)(void);
- void (*reject_rsp)(struct cflayer *layer, u8 linkid,
- struct cflayer *client_layer);
-};
-
-/* Link Setup Parameters for CAIF-Links. */
-struct cfctrl_link_param {
- enum cfctrl_srv linktype;/* (T3,T0) Type of Channel */
- u8 priority; /* (P4,P0) Priority of the channel */
- u8 phyid; /* (U2-U0) Physical interface to connect */
- u8 endpoint; /* (E1,E0) Endpoint for data channels */
- u8 chtype; /* (H1,H0) Channel-Type, applies to
- * VEI, DEBUG */
- union {
- struct {
- u8 connid; /* (D7,D0) Video LinkId */
- } video;
-
- struct {
- u32 connid; /* (N31,Ngit0) Connection ID used
- * for Datagram */
- } datagram;
-
- struct {
- u32 connid; /* Connection ID used for RFM */
- char volume[20]; /* Volume to mount for RFM */
- } rfm; /* Configuration for RFM */
-
- struct {
- u16 fifosize_kb; /* Psock FIFO size in KB */
- u16 fifosize_bufs; /* Psock # signal buffers */
- char name[16]; /* Name of the PSOCK service */
- u8 params[255]; /* Link setup Parameters> */
- u16 paramlen; /* Length of Link Setup
- * Parameters */
- } utility; /* Configuration for Utility Links (Psock) */
- } u;
-};
-
-/* This structure is used internally in CFCTRL */
-struct cfctrl_request_info {
- int sequence_no;
- enum cfctrl_cmd cmd;
- u8 channel_id;
- struct cfctrl_link_param param;
- struct cflayer *client_layer;
- struct list_head list;
-};
-
-struct cfctrl {
- struct cfsrvl serv;
- struct cfctrl_rsp res;
- atomic_t req_seq_no;
- atomic_t rsp_seq_no;
- struct list_head list;
- /* Protects from simultaneous access to first_req list */
- spinlock_t info_list_lock;
-#ifndef CAIF_NO_LOOP
- u8 loop_linkid;
- int loop_linkused[256];
- /* Protects simultaneous access to loop_linkid and loop_linkused */
- spinlock_t loop_linkid_lock;
-#endif
-
-};
-
-void cfctrl_enum_req(struct cflayer *cfctrl, u8 physlinkid);
-int cfctrl_linkup_request(struct cflayer *cfctrl,
- struct cfctrl_link_param *param,
- struct cflayer *user_layer);
-int cfctrl_linkdown_req(struct cflayer *cfctrl, u8 linkid,
- struct cflayer *client);
-
-struct cflayer *cfctrl_create(void);
-struct cfctrl_rsp *cfctrl_get_respfuncs(struct cflayer *layer);
-int cfctrl_cancel_req(struct cflayer *layr, struct cflayer *adap_layer);
-void cfctrl_remove(struct cflayer *layr);
-
-#endif /* CFCTRL_H_ */
diff --git a/ANDROID_3.4.5/include/net/caif/cffrml.h b/ANDROID_3.4.5/include/net/caif/cffrml.h
deleted file mode 100644
index afac1a48..00000000
--- a/ANDROID_3.4.5/include/net/caif/cffrml.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson AB 2010
- * Author: Sjur Brendeland/sjur.brandeland@stericsson.com
- * License terms: GNU General Public License (GPL) version 2
- */
-
-#ifndef CFFRML_H_
-#define CFFRML_H_
-#include <net/caif/caif_layer.h>
-#include <linux/netdevice.h>
-
-struct cffrml;
-struct cflayer *cffrml_create(u16 phyid, bool use_fcs);
-void cffrml_free(struct cflayer *layr);
-void cffrml_set_uplayer(struct cflayer *this, struct cflayer *up);
-void cffrml_set_dnlayer(struct cflayer *this, struct cflayer *dn);
-void cffrml_put(struct cflayer *layr);
-void cffrml_hold(struct cflayer *layr);
-int cffrml_refcnt_read(struct cflayer *layr);
-
-#endif /* CFFRML_H_ */
diff --git a/ANDROID_3.4.5/include/net/caif/cfmuxl.h b/ANDROID_3.4.5/include/net/caif/cfmuxl.h
deleted file mode 100644
index 5847a196..00000000
--- a/ANDROID_3.4.5/include/net/caif/cfmuxl.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson AB 2010
- * Author: Sjur Brendeland/sjur.brandeland@stericsson.com
- * License terms: GNU General Public License (GPL) version 2
- */
-
-#ifndef CFMUXL_H_
-#define CFMUXL_H_
-#include <net/caif/caif_layer.h>
-
-struct cfsrvl;
-struct cffrml;
-
-struct cflayer *cfmuxl_create(void);
-int cfmuxl_set_uplayer(struct cflayer *layr, struct cflayer *up, u8 linkid);
-struct cflayer *cfmuxl_remove_dnlayer(struct cflayer *layr, u8 phyid);
-int cfmuxl_set_dnlayer(struct cflayer *layr, struct cflayer *up, u8 phyid);
-struct cflayer *cfmuxl_remove_uplayer(struct cflayer *layr, u8 linkid);
-
-#endif /* CFMUXL_H_ */
diff --git a/ANDROID_3.4.5/include/net/caif/cfpkt.h b/ANDROID_3.4.5/include/net/caif/cfpkt.h
deleted file mode 100644
index 6bd200a4..00000000
--- a/ANDROID_3.4.5/include/net/caif/cfpkt.h
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson AB 2010
- * Author: Sjur Brendeland/sjur.brandeland@stericsson.com
- * License terms: GNU General Public License (GPL) version 2
- */
-
-#ifndef CFPKT_H_
-#define CFPKT_H_
-#include <net/caif/caif_layer.h>
-#include <linux/types.h>
-struct cfpkt;
-
-/* Create a CAIF packet.
- * len: Length of packet to be created
- * @return New packet.
- */
-struct cfpkt *cfpkt_create(u16 len);
-
-/*
- * Destroy a CAIF Packet.
- * pkt Packet to be destoyed.
- */
-void cfpkt_destroy(struct cfpkt *pkt);
-
-/*
- * Extract header from packet.
- *
- * pkt Packet to extract header data from.
- * data Pointer to copy the header data into.
- * len Length of head data to copy.
- * @return zero on success and error code upon failure
- */
-int cfpkt_extr_head(struct cfpkt *pkt, void *data, u16 len);
-
-/*
- * Peek header from packet.
- * Reads data from packet without changing packet.
- *
- * pkt Packet to extract header data from.
- * data Pointer to copy the header data into.
- * len Length of head data to copy.
- * @return zero on success and error code upon failure
- */
-int cfpkt_peek_head(struct cfpkt *pkt, void *data, u16 len);
-
-/*
- * Extract header from trailer (end of packet).
- *
- * pkt Packet to extract header data from.
- * data Pointer to copy the trailer data into.
- * len Length of header data to copy.
- * @return zero on success and error code upon failure
- */
-int cfpkt_extr_trail(struct cfpkt *pkt, void *data, u16 len);
-
-/*
- * Add header to packet.
- *
- *
- * pkt Packet to add header data to.
- * data Pointer to data to copy into the header.
- * len Length of header data to copy.
- * @return zero on success and error code upon failure
- */
-int cfpkt_add_head(struct cfpkt *pkt, const void *data, u16 len);
-
-/*
- * Add trailer to packet.
- *
- *
- * pkt Packet to add trailer data to.
- * data Pointer to data to copy into the trailer.
- * len Length of trailer data to copy.
- * @return zero on success and error code upon failure
- */
-int cfpkt_add_trail(struct cfpkt *pkt, const void *data, u16 len);
-
-/*
- * Pad trailer on packet.
- * Moves data pointer in packet, no content copied.
- *
- * pkt Packet in which to pad trailer.
- * len Length of padding to add.
- * @return zero on success and error code upon failure
- */
-int cfpkt_pad_trail(struct cfpkt *pkt, u16 len);
-
-/*
- * Add a single byte to packet body (tail).
- *
- * pkt Packet in which to add byte.
- * data Byte to add.
- * @return zero on success and error code upon failure
- */
-int cfpkt_addbdy(struct cfpkt *pkt, const u8 data);
-
-/*
- * Add a data to packet body (tail).
- *
- * pkt Packet in which to add data.
- * data Pointer to data to copy into the packet body.
- * len Length of data to add.
- * @return zero on success and error code upon failure
- */
-int cfpkt_add_body(struct cfpkt *pkt, const void *data, u16 len);
-
-/*
- * Checks whether there are more data to process in packet.
- * pkt Packet to check.
- * @return true if more data are available in packet false otherwise
- */
-bool cfpkt_more(struct cfpkt *pkt);
-
-/*
- * Checks whether the packet is erroneous,
- * i.e. if it has been attempted to extract more data than available in packet
- * or writing more data than has been allocated in cfpkt_create().
- * pkt Packet to check.
- * @return true on error false otherwise
- */
-bool cfpkt_erroneous(struct cfpkt *pkt);
-
-/*
- * Get the packet length.
- * pkt Packet to get length from.
- * @return Number of bytes in packet.
- */
-u16 cfpkt_getlen(struct cfpkt *pkt);
-
-/*
- * Set the packet length, by adjusting the trailer pointer according to length.
- * pkt Packet to set length.
- * len Packet length.
- * @return Number of bytes in packet.
- */
-int cfpkt_setlen(struct cfpkt *pkt, u16 len);
-
-/*
- * cfpkt_append - Appends a packet's data to another packet.
- * dstpkt: Packet to append data into, WILL BE FREED BY THIS FUNCTION
- * addpkt: Packet to be appended and automatically released,
- * WILL BE FREED BY THIS FUNCTION.
- * expectlen: Packet's expected total length. This should be considered
- * as a hint.
- * NB: Input packets will be destroyed after appending and cannot be used
- * after calling this function.
- * @return The new appended packet.
- */
-struct cfpkt *cfpkt_append(struct cfpkt *dstpkt, struct cfpkt *addpkt,
- u16 expectlen);
-
-/*
- * cfpkt_split - Split a packet into two packets at the specified split point.
- * pkt: Packet to be split (will contain the first part of the data on exit)
- * pos: Position to split packet in two parts.
- * @return The new packet, containing the second part of the data.
- */
-struct cfpkt *cfpkt_split(struct cfpkt *pkt, u16 pos);
-
-/*
- * Iteration function, iterates the packet buffers from start to end.
- *
- * Checksum iteration function used to iterate buffers
- * (we may have packets consisting of a chain of buffers)
- * pkt: Packet to calculate checksum for
- * iter_func: Function pointer to iteration function
- * chks: Checksum calculated so far.
- * buf: Pointer to the buffer to checksum
- * len: Length of buf.
- * data: Initial checksum value.
- * @return Checksum of buffer.
- */
-
-u16 cfpkt_iterate(struct cfpkt *pkt,
- u16 (*iter_func)(u16 chks, void *buf, u16 len),
- u16 data);
-
-/* Map from a "native" packet (e.g. Linux Socket Buffer) to a CAIF packet.
- * dir - Direction indicating whether this packet is to be sent or received.
- * nativepkt - The native packet to be transformed to a CAIF packet
- * @return The mapped CAIF Packet CFPKT.
- */
-struct cfpkt *cfpkt_fromnative(enum caif_direction dir, void *nativepkt);
-
-/* Map from a CAIF packet to a "native" packet (e.g. Linux Socket Buffer).
- * pkt - The CAIF packet to be transformed into a "native" packet.
- * @return The native packet transformed from a CAIF packet.
- */
-void *cfpkt_tonative(struct cfpkt *pkt);
-
-
-/*
- * Returns packet information for a packet.
- * pkt Packet to get info from;
- * @return Packet information
- */
-struct caif_payload_info *cfpkt_info(struct cfpkt *pkt);
-#endif /* CFPKT_H_ */
diff --git a/ANDROID_3.4.5/include/net/caif/cfserl.h b/ANDROID_3.4.5/include/net/caif/cfserl.h
deleted file mode 100644
index f121299a..00000000
--- a/ANDROID_3.4.5/include/net/caif/cfserl.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson AB 2010
- * Author: Sjur Brendeland/sjur.brandeland@stericsson.com
- * License terms: GNU General Public License (GPL) version 2
- */
-
-#ifndef CFSERL_H_
-#define CFSERL_H_
-#include <net/caif/caif_layer.h>
-
-struct cflayer *cfserl_create(int instance, bool use_stx);
-#endif
diff --git a/ANDROID_3.4.5/include/net/caif/cfsrvl.h b/ANDROID_3.4.5/include/net/caif/cfsrvl.h
deleted file mode 100644
index 0f590524..00000000
--- a/ANDROID_3.4.5/include/net/caif/cfsrvl.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson AB 2010
- * Author: Sjur Brendeland/sjur.brandeland@stericsson.com
- * License terms: GNU General Public License (GPL) version 2
- */
-
-#ifndef CFSRVL_H_
-#define CFSRVL_H_
-#include <linux/list.h>
-#include <linux/stddef.h>
-#include <linux/types.h>
-#include <linux/kref.h>
-#include <linux/rculist.h>
-
-struct cfsrvl {
- struct cflayer layer;
- bool open;
- bool phy_flow_on;
- bool modem_flow_on;
- bool supports_flowctrl;
- void (*release)(struct cflayer *layer);
- struct dev_info dev_info;
- void (*hold)(struct cflayer *lyr);
- void (*put)(struct cflayer *lyr);
- struct rcu_head rcu;
-};
-
-struct cflayer *cfvei_create(u8 linkid, struct dev_info *dev_info);
-struct cflayer *cfdgml_create(u8 linkid, struct dev_info *dev_info);
-struct cflayer *cfutill_create(u8 linkid, struct dev_info *dev_info);
-struct cflayer *cfvidl_create(u8 linkid, struct dev_info *dev_info);
-struct cflayer *cfrfml_create(u8 linkid, struct dev_info *dev_info,
- int mtu_size);
-struct cflayer *cfdbgl_create(u8 linkid, struct dev_info *dev_info);
-
-void cfsrvl_ctrlcmd(struct cflayer *layr, enum caif_ctrlcmd ctrl,
- int phyid);
-
-bool cfsrvl_phyid_match(struct cflayer *layer, int phyid);
-
-void cfsrvl_init(struct cfsrvl *service,
- u8 channel_id,
- struct dev_info *dev_info,
- bool supports_flowctrl);
-bool cfsrvl_ready(struct cfsrvl *service, int *err);
-u8 cfsrvl_getphyid(struct cflayer *layer);
-
-static inline void cfsrvl_get(struct cflayer *layr)
-{
- struct cfsrvl *s = container_of(layr, struct cfsrvl, layer);
- if (layr == NULL || layr->up == NULL || s->hold == NULL)
- return;
-
- s->hold(layr->up);
-}
-
-static inline void cfsrvl_put(struct cflayer *layr)
-{
- struct cfsrvl *s = container_of(layr, struct cfsrvl, layer);
- if (layr == NULL || layr->up == NULL || s->hold == NULL)
- return;
-
- s->put(layr->up);
-}
-#endif /* CFSRVL_H_ */
diff --git a/ANDROID_3.4.5/include/net/cfg80211-wext.h b/ANDROID_3.4.5/include/net/cfg80211-wext.h
deleted file mode 100644
index 25baddc4..00000000
--- a/ANDROID_3.4.5/include/net/cfg80211-wext.h
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef __NET_CFG80211_WEXT_H
-#define __NET_CFG80211_WEXT_H
-/*
- * 802.11 device and configuration interface -- wext handlers
- *
- * Copyright 2006-2010 Johannes Berg <johannes@sipsolutions.net>
- *
- * 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/netdevice.h>
-#include <linux/wireless.h>
-#include <net/iw_handler.h>
-
-/*
- * Temporary wext handlers & helper functions
- *
- * These are used only by drivers that aren't yet fully
- * converted to cfg80211.
- */
-int cfg80211_wext_giwname(struct net_device *dev,
- struct iw_request_info *info,
- char *name, char *extra);
-int cfg80211_wext_siwmode(struct net_device *dev, struct iw_request_info *info,
- u32 *mode, char *extra);
-int cfg80211_wext_giwmode(struct net_device *dev, struct iw_request_info *info,
- u32 *mode, char *extra);
-int cfg80211_wext_siwscan(struct net_device *dev,
- struct iw_request_info *info,
- union iwreq_data *wrqu, char *extra);
-int cfg80211_wext_giwscan(struct net_device *dev,
- struct iw_request_info *info,
- struct iw_point *data, char *extra);
-int cfg80211_wext_giwrange(struct net_device *dev,
- struct iw_request_info *info,
- struct iw_point *data, char *extra);
-int cfg80211_wext_siwrts(struct net_device *dev,
- struct iw_request_info *info,
- struct iw_param *rts, char *extra);
-int cfg80211_wext_giwrts(struct net_device *dev,
- struct iw_request_info *info,
- struct iw_param *rts, char *extra);
-int cfg80211_wext_siwfrag(struct net_device *dev,
- struct iw_request_info *info,
- struct iw_param *frag, char *extra);
-int cfg80211_wext_giwfrag(struct net_device *dev,
- struct iw_request_info *info,
- struct iw_param *frag, char *extra);
-int cfg80211_wext_giwretry(struct net_device *dev,
- struct iw_request_info *info,
- struct iw_param *retry, char *extra);
-
-#endif /* __NET_CFG80211_WEXT_H */
diff --git a/ANDROID_3.4.5/include/net/cfg80211.h b/ANDROID_3.4.5/include/net/cfg80211.h
deleted file mode 100644
index 83d800c3..00000000
--- a/ANDROID_3.4.5/include/net/cfg80211.h
+++ /dev/null
@@ -1,3399 +0,0 @@
-#ifndef __NET_CFG80211_H
-#define __NET_CFG80211_H
-/*
- * 802.11 device and configuration interface
- *
- * Copyright 2006-2010 Johannes Berg <johannes@sipsolutions.net>
- *
- * 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/netdevice.h>
-#include <linux/debugfs.h>
-#include <linux/list.h>
-#include <linux/bug.h>
-#include <linux/netlink.h>
-#include <linux/skbuff.h>
-#include <linux/nl80211.h>
-#include <linux/if_ether.h>
-#include <linux/ieee80211.h>
-#include <net/regulatory.h>
-
-/**
- * DOC: Introduction
- *
- * cfg80211 is the configuration API for 802.11 devices in Linux. It bridges
- * userspace and drivers, and offers some utility functionality associated
- * with 802.11. cfg80211 must, directly or indirectly via mac80211, be used
- * by all modern wireless drivers in Linux, so that they offer a consistent
- * API through nl80211. For backward compatibility, cfg80211 also offers
- * wireless extensions to userspace, but hides them from drivers completely.
- *
- * Additionally, cfg80211 contains code to help enforce regulatory spectrum
- * use restrictions.
- */
-
-
-/**
- * DOC: Device registration
- *
- * In order for a driver to use cfg80211, it must register the hardware device
- * with cfg80211. This happens through a number of hardware capability structs
- * described below.
- *
- * The fundamental structure for each device is the 'wiphy', of which each
- * instance describes a physical wireless device connected to the system. Each
- * such wiphy can have zero, one, or many virtual interfaces associated with
- * it, which need to be identified as such by pointing the network interface's
- * @ieee80211_ptr pointer to a &struct wireless_dev which further describes
- * the wireless part of the interface, normally this struct is embedded in the
- * network interface's private data area. Drivers can optionally allow creating
- * or destroying virtual interfaces on the fly, but without at least one or the
- * ability to create some the wireless device isn't useful.
- *
- * Each wiphy structure contains device capability information, and also has
- * a pointer to the various operations the driver offers. The definitions and
- * structures here describe these capabilities in detail.
- */
-
-/*
- * wireless hardware capability structures
- */
-
-/**
- * enum ieee80211_band - supported frequency bands
- *
- * The bands are assigned this way because the supported
- * bitrates differ in these bands.
- *
- * @IEEE80211_BAND_2GHZ: 2.4GHz ISM band
- * @IEEE80211_BAND_5GHZ: around 5GHz band (4.9-5.7)
- * @IEEE80211_NUM_BANDS: number of defined bands
- */
-enum ieee80211_band {
- IEEE80211_BAND_2GHZ = NL80211_BAND_2GHZ,
- IEEE80211_BAND_5GHZ = NL80211_BAND_5GHZ,
-
- /* keep last */
- IEEE80211_NUM_BANDS
-};
-
-/**
- * enum ieee80211_channel_flags - channel flags
- *
- * Channel flags set by the regulatory control code.
- *
- * @IEEE80211_CHAN_DISABLED: This channel is disabled.
- * @IEEE80211_CHAN_PASSIVE_SCAN: Only passive scanning is permitted
- * on this channel.
- * @IEEE80211_CHAN_NO_IBSS: IBSS is not allowed on this channel.
- * @IEEE80211_CHAN_RADAR: Radar detection is required on this channel.
- * @IEEE80211_CHAN_NO_HT40PLUS: extension channel above this channel
- * is not permitted.
- * @IEEE80211_CHAN_NO_HT40MINUS: extension channel below this channel
- * is not permitted.
- */
-enum ieee80211_channel_flags {
- IEEE80211_CHAN_DISABLED = 1<<0,
- IEEE80211_CHAN_PASSIVE_SCAN = 1<<1,
- IEEE80211_CHAN_NO_IBSS = 1<<2,
- IEEE80211_CHAN_RADAR = 1<<3,
- IEEE80211_CHAN_NO_HT40PLUS = 1<<4,
- IEEE80211_CHAN_NO_HT40MINUS = 1<<5,
-};
-
-#define IEEE80211_CHAN_NO_HT40 \
- (IEEE80211_CHAN_NO_HT40PLUS | IEEE80211_CHAN_NO_HT40MINUS)
-
-/**
- * struct ieee80211_channel - channel definition
- *
- * This structure describes a single channel for use
- * with cfg80211.
- *
- * @center_freq: center frequency in MHz
- * @hw_value: hardware-specific value for the channel
- * @flags: channel flags from &enum ieee80211_channel_flags.
- * @orig_flags: channel flags at registration time, used by regulatory
- * code to support devices with additional restrictions
- * @band: band this channel belongs to.
- * @max_antenna_gain: maximum antenna gain in dBi
- * @max_power: maximum transmission power (in dBm)
- * @max_reg_power: maximum regulatory transmission power (in dBm)
- * @beacon_found: helper to regulatory code to indicate when a beacon
- * has been found on this channel. Use regulatory_hint_found_beacon()
- * to enable this, this is useful only on 5 GHz band.
- * @orig_mag: internal use
- * @orig_mpwr: internal use
- */
-struct ieee80211_channel {
- enum ieee80211_band band;
- u16 center_freq;
- u16 hw_value;
- u32 flags;
- int max_antenna_gain;
- int max_power;
- int max_reg_power;
- bool beacon_found;
- u32 orig_flags;
- int orig_mag, orig_mpwr;
-};
-
-/**
- * enum ieee80211_rate_flags - rate flags
- *
- * Hardware/specification flags for rates. These are structured
- * in a way that allows using the same bitrate structure for
- * different bands/PHY modes.
- *
- * @IEEE80211_RATE_SHORT_PREAMBLE: Hardware can send with short
- * preamble on this bitrate; only relevant in 2.4GHz band and
- * with CCK rates.
- * @IEEE80211_RATE_MANDATORY_A: This bitrate is a mandatory rate
- * when used with 802.11a (on the 5 GHz band); filled by the
- * core code when registering the wiphy.
- * @IEEE80211_RATE_MANDATORY_B: This bitrate is a mandatory rate
- * when used with 802.11b (on the 2.4 GHz band); filled by the
- * core code when registering the wiphy.
- * @IEEE80211_RATE_MANDATORY_G: This bitrate is a mandatory rate
- * when used with 802.11g (on the 2.4 GHz band); filled by the
- * core code when registering the wiphy.
- * @IEEE80211_RATE_ERP_G: This is an ERP rate in 802.11g mode.
- */
-enum ieee80211_rate_flags {
- IEEE80211_RATE_SHORT_PREAMBLE = 1<<0,
- IEEE80211_RATE_MANDATORY_A = 1<<1,
- IEEE80211_RATE_MANDATORY_B = 1<<2,
- IEEE80211_RATE_MANDATORY_G = 1<<3,
- IEEE80211_RATE_ERP_G = 1<<4,
-};
-
-/**
- * struct ieee80211_rate - bitrate definition
- *
- * This structure describes a bitrate that an 802.11 PHY can
- * operate with. The two values @hw_value and @hw_value_short
- * are only for driver use when pointers to this structure are
- * passed around.
- *
- * @flags: rate-specific flags
- * @bitrate: bitrate in units of 100 Kbps
- * @hw_value: driver/hardware value for this rate
- * @hw_value_short: driver/hardware value for this rate when
- * short preamble is used
- */
-struct ieee80211_rate {
- u32 flags;
- u16 bitrate;
- u16 hw_value, hw_value_short;
-};
-
-/**
- * struct ieee80211_sta_ht_cap - STA's HT capabilities
- *
- * This structure describes most essential parameters needed
- * to describe 802.11n HT capabilities for an STA.
- *
- * @ht_supported: is HT supported by the STA
- * @cap: HT capabilities map as described in 802.11n spec
- * @ampdu_factor: Maximum A-MPDU length factor
- * @ampdu_density: Minimum A-MPDU spacing
- * @mcs: Supported MCS rates
- */
-struct ieee80211_sta_ht_cap {
- u16 cap; /* use IEEE80211_HT_CAP_ */
- bool ht_supported;
- u8 ampdu_factor;
- u8 ampdu_density;
- struct ieee80211_mcs_info mcs;
-};
-
-/**
- * struct ieee80211_supported_band - frequency band definition
- *
- * This structure describes a frequency band a wiphy
- * is able to operate in.
- *
- * @channels: Array of channels the hardware can operate in
- * in this band.
- * @band: the band this structure represents
- * @n_channels: Number of channels in @channels
- * @bitrates: Array of bitrates the hardware can operate with
- * in this band. Must be sorted to give a valid "supported
- * rates" IE, i.e. CCK rates first, then OFDM.
- * @n_bitrates: Number of bitrates in @bitrates
- * @ht_cap: HT capabilities in this band
- */
-struct ieee80211_supported_band {
- struct ieee80211_channel *channels;
- struct ieee80211_rate *bitrates;
- enum ieee80211_band band;
- int n_channels;
- int n_bitrates;
- struct ieee80211_sta_ht_cap ht_cap;
-};
-
-/*
- * Wireless hardware/device configuration structures and methods
- */
-
-/**
- * DOC: Actions and configuration
- *
- * Each wireless device and each virtual interface offer a set of configuration
- * operations and other actions that are invoked by userspace. Each of these
- * actions is described in the operations structure, and the parameters these
- * operations use are described separately.
- *
- * Additionally, some operations are asynchronous and expect to get status
- * information via some functions that drivers need to call.
- *
- * Scanning and BSS list handling with its associated functionality is described
- * in a separate chapter.
- */
-
-/**
- * struct vif_params - describes virtual interface parameters
- * @use_4addr: use 4-address frames
- */
-struct vif_params {
- int use_4addr;
-};
-
-/**
- * struct key_params - key information
- *
- * Information about a key
- *
- * @key: key material
- * @key_len: length of key material
- * @cipher: cipher suite selector
- * @seq: sequence counter (IV/PN) for TKIP and CCMP keys, only used
- * with the get_key() callback, must be in little endian,
- * length given by @seq_len.
- * @seq_len: length of @seq.
- */
-struct key_params {
- u8 *key;
- u8 *seq;
- int key_len;
- int seq_len;
- u32 cipher;
-};
-
-/**
- * enum survey_info_flags - survey information flags
- *
- * @SURVEY_INFO_NOISE_DBM: noise (in dBm) was filled in
- * @SURVEY_INFO_IN_USE: channel is currently being used
- * @SURVEY_INFO_CHANNEL_TIME: channel active time (in ms) was filled in
- * @SURVEY_INFO_CHANNEL_TIME_BUSY: channel busy time was filled in
- * @SURVEY_INFO_CHANNEL_TIME_EXT_BUSY: extension channel busy time was filled in
- * @SURVEY_INFO_CHANNEL_TIME_RX: channel receive time was filled in
- * @SURVEY_INFO_CHANNEL_TIME_TX: channel transmit time was filled in
- *
- * Used by the driver to indicate which info in &struct survey_info
- * it has filled in during the get_survey().
- */
-enum survey_info_flags {
- SURVEY_INFO_NOISE_DBM = 1<<0,
- SURVEY_INFO_IN_USE = 1<<1,
- SURVEY_INFO_CHANNEL_TIME = 1<<2,
- SURVEY_INFO_CHANNEL_TIME_BUSY = 1<<3,
- SURVEY_INFO_CHANNEL_TIME_EXT_BUSY = 1<<4,
- SURVEY_INFO_CHANNEL_TIME_RX = 1<<5,
- SURVEY_INFO_CHANNEL_TIME_TX = 1<<6,
-};
-
-/**
- * struct survey_info - channel survey response
- *
- * @channel: the channel this survey record reports, mandatory
- * @filled: bitflag of flags from &enum survey_info_flags
- * @noise: channel noise in dBm. This and all following fields are
- * optional
- * @channel_time: amount of time in ms the radio spent on the channel
- * @channel_time_busy: amount of time the primary channel was sensed busy
- * @channel_time_ext_busy: amount of time the extension channel was sensed busy
- * @channel_time_rx: amount of time the radio spent receiving data
- * @channel_time_tx: amount of time the radio spent transmitting data
- *
- * Used by dump_survey() to report back per-channel survey information.
- *
- * This structure can later be expanded with things like
- * channel duty cycle etc.
- */
-struct survey_info {
- struct ieee80211_channel *channel;
- u64 channel_time;
- u64 channel_time_busy;
- u64 channel_time_ext_busy;
- u64 channel_time_rx;
- u64 channel_time_tx;
- u32 filled;
- s8 noise;
-};
-
-/**
- * struct cfg80211_crypto_settings - Crypto settings
- * @wpa_versions: indicates which, if any, WPA versions are enabled
- * (from enum nl80211_wpa_versions)
- * @cipher_group: group key cipher suite (or 0 if unset)
- * @n_ciphers_pairwise: number of AP supported unicast ciphers
- * @ciphers_pairwise: unicast key cipher suites
- * @n_akm_suites: number of AKM suites
- * @akm_suites: AKM suites
- * @control_port: Whether user space controls IEEE 802.1X port, i.e.,
- * sets/clears %NL80211_STA_FLAG_AUTHORIZED. If true, the driver is
- * required to assume that the port is unauthorized until authorized by
- * user space. Otherwise, port is marked authorized by default.
- * @control_port_ethertype: the control port protocol that should be
- * allowed through even on unauthorized ports
- * @control_port_no_encrypt: TRUE to prevent encryption of control port
- * protocol frames.
- */
-struct cfg80211_crypto_settings {
- u32 wpa_versions;
- u32 cipher_group;
- int n_ciphers_pairwise;
- u32 ciphers_pairwise[NL80211_MAX_NR_CIPHER_SUITES];
- int n_akm_suites;
- u32 akm_suites[NL80211_MAX_NR_AKM_SUITES];
- bool control_port;
- __be16 control_port_ethertype;
- bool control_port_no_encrypt;
-};
-
-/**
- * struct cfg80211_beacon_data - beacon data
- * @head: head portion of beacon (before TIM IE)
- * or %NULL if not changed
- * @tail: tail portion of beacon (after TIM IE)
- * or %NULL if not changed
- * @head_len: length of @head
- * @tail_len: length of @tail
- * @beacon_ies: extra information element(s) to add into Beacon frames or %NULL
- * @beacon_ies_len: length of beacon_ies in octets
- * @proberesp_ies: extra information element(s) to add into Probe Response
- * frames or %NULL
- * @proberesp_ies_len: length of proberesp_ies in octets
- * @assocresp_ies: extra information element(s) to add into (Re)Association
- * Response frames or %NULL
- * @assocresp_ies_len: length of assocresp_ies in octets
- * @probe_resp_len: length of probe response template (@probe_resp)
- * @probe_resp: probe response template (AP mode only)
- */
-struct cfg80211_beacon_data {
- const u8 *head, *tail;
- const u8 *beacon_ies;
- const u8 *proberesp_ies;
- const u8 *assocresp_ies;
- const u8 *probe_resp;
-
- size_t head_len, tail_len;
- size_t beacon_ies_len;
- size_t proberesp_ies_len;
- size_t assocresp_ies_len;
- size_t probe_resp_len;
-};
-
-/**
- * struct cfg80211_ap_settings - AP configuration
- *
- * Used to configure an AP interface.
- *
- * @beacon: beacon data
- * @beacon_interval: beacon interval
- * @dtim_period: DTIM period
- * @ssid: SSID to be used in the BSS (note: may be %NULL if not provided from
- * user space)
- * @ssid_len: length of @ssid
- * @hidden_ssid: whether to hide the SSID in Beacon/Probe Response frames
- * @crypto: crypto settings
- * @privacy: the BSS uses privacy
- * @auth_type: Authentication type (algorithm)
- * @inactivity_timeout: time in seconds to determine station's inactivity.
- */
-struct cfg80211_ap_settings {
- struct cfg80211_beacon_data beacon;
-
- int beacon_interval, dtim_period;
- const u8 *ssid;
- size_t ssid_len;
- enum nl80211_hidden_ssid hidden_ssid;
- struct cfg80211_crypto_settings crypto;
- bool privacy;
- enum nl80211_auth_type auth_type;
- int inactivity_timeout;
-};
-
-/**
- * enum plink_action - actions to perform in mesh peers
- *
- * @PLINK_ACTION_INVALID: action 0 is reserved
- * @PLINK_ACTION_OPEN: start mesh peer link establishment
- * @PLINK_ACTION_BLOCK: block traffic from this mesh peer
- */
-enum plink_actions {
- PLINK_ACTION_INVALID,
- PLINK_ACTION_OPEN,
- PLINK_ACTION_BLOCK,
-};
-
-/**
- * enum station_parameters_apply_mask - station parameter values to apply
- * @STATION_PARAM_APPLY_UAPSD: apply new uAPSD parameters (uapsd_queues, max_sp)
- *
- * Not all station parameters have in-band "no change" signalling,
- * for those that don't these flags will are used.
- */
-enum station_parameters_apply_mask {
- STATION_PARAM_APPLY_UAPSD = BIT(0),
-};
-
-/**
- * struct station_parameters - station parameters
- *
- * Used to change and create a new station.
- *
- * @vlan: vlan interface station should belong to
- * @supported_rates: supported rates in IEEE 802.11 format
- * (or NULL for no change)
- * @supported_rates_len: number of supported rates
- * @sta_flags_mask: station flags that changed
- * (bitmask of BIT(NL80211_STA_FLAG_...))
- * @sta_flags_set: station flags values
- * (bitmask of BIT(NL80211_STA_FLAG_...))
- * @listen_interval: listen interval or -1 for no change
- * @aid: AID or zero for no change
- * @plink_action: plink action to take
- * @plink_state: set the peer link state for a station
- * @ht_capa: HT capabilities of station
- * @uapsd_queues: bitmap of queues configured for uapsd. same format
- * as the AC bitmap in the QoS info field
- * @max_sp: max Service Period. same format as the MAX_SP in the
- * QoS info field (but already shifted down)
- * @sta_modify_mask: bitmap indicating which parameters changed
- * (for those that don't have a natural "no change" value),
- * see &enum station_parameters_apply_mask
- */
-struct station_parameters {
- u8 *supported_rates;
- struct net_device *vlan;
- u32 sta_flags_mask, sta_flags_set;
- u32 sta_modify_mask;
- int listen_interval;
- u16 aid;
- u8 supported_rates_len;
- u8 plink_action;
- u8 plink_state;
- struct ieee80211_ht_cap *ht_capa;
- u8 uapsd_queues;
- u8 max_sp;
-};
-
-/**
- * enum station_info_flags - station information flags
- *
- * Used by the driver to indicate which info in &struct station_info
- * it has filled in during get_station() or dump_station().
- *
- * @STATION_INFO_INACTIVE_TIME: @inactive_time filled
- * @STATION_INFO_RX_BYTES: @rx_bytes filled
- * @STATION_INFO_TX_BYTES: @tx_bytes filled
- * @STATION_INFO_LLID: @llid filled
- * @STATION_INFO_PLID: @plid filled
- * @STATION_INFO_PLINK_STATE: @plink_state filled
- * @STATION_INFO_SIGNAL: @signal filled
- * @STATION_INFO_TX_BITRATE: @txrate fields are filled
- * (tx_bitrate, tx_bitrate_flags and tx_bitrate_mcs)
- * @STATION_INFO_RX_PACKETS: @rx_packets filled
- * @STATION_INFO_TX_PACKETS: @tx_packets filled
- * @STATION_INFO_TX_RETRIES: @tx_retries filled
- * @STATION_INFO_TX_FAILED: @tx_failed filled
- * @STATION_INFO_RX_DROP_MISC: @rx_dropped_misc filled
- * @STATION_INFO_SIGNAL_AVG: @signal_avg filled
- * @STATION_INFO_RX_BITRATE: @rxrate fields are filled
- * @STATION_INFO_BSS_PARAM: @bss_param filled
- * @STATION_INFO_CONNECTED_TIME: @connected_time filled
- * @STATION_INFO_ASSOC_REQ_IES: @assoc_req_ies filled
- * @STATION_INFO_STA_FLAGS: @sta_flags filled
- * @STATION_INFO_BEACON_LOSS_COUNT: @beacon_loss_count filled
- */
-enum station_info_flags {
- STATION_INFO_INACTIVE_TIME = 1<<0,
- STATION_INFO_RX_BYTES = 1<<1,
- STATION_INFO_TX_BYTES = 1<<2,
- STATION_INFO_LLID = 1<<3,
- STATION_INFO_PLID = 1<<4,
- STATION_INFO_PLINK_STATE = 1<<5,
- STATION_INFO_SIGNAL = 1<<6,
- STATION_INFO_TX_BITRATE = 1<<7,
- STATION_INFO_RX_PACKETS = 1<<8,
- STATION_INFO_TX_PACKETS = 1<<9,
- STATION_INFO_TX_RETRIES = 1<<10,
- STATION_INFO_TX_FAILED = 1<<11,
- STATION_INFO_RX_DROP_MISC = 1<<12,
- STATION_INFO_SIGNAL_AVG = 1<<13,
- STATION_INFO_RX_BITRATE = 1<<14,
- STATION_INFO_BSS_PARAM = 1<<15,
- STATION_INFO_CONNECTED_TIME = 1<<16,
- STATION_INFO_ASSOC_REQ_IES = 1<<17,
- STATION_INFO_STA_FLAGS = 1<<18,
- STATION_INFO_BEACON_LOSS_COUNT = 1<<19
-};
-
-/**
- * enum station_info_rate_flags - bitrate info flags
- *
- * Used by the driver to indicate the specific rate transmission
- * type for 802.11n transmissions.
- *
- * @RATE_INFO_FLAGS_MCS: @tx_bitrate_mcs filled
- * @RATE_INFO_FLAGS_40_MHZ_WIDTH: 40 Mhz width transmission
- * @RATE_INFO_FLAGS_SHORT_GI: 400ns guard interval
- */
-enum rate_info_flags {
- RATE_INFO_FLAGS_MCS = 1<<0,
- RATE_INFO_FLAGS_40_MHZ_WIDTH = 1<<1,
- RATE_INFO_FLAGS_SHORT_GI = 1<<2,
-};
-
-/**
- * struct rate_info - bitrate information
- *
- * Information about a receiving or transmitting bitrate
- *
- * @flags: bitflag of flags from &enum rate_info_flags
- * @mcs: mcs index if struct describes a 802.11n bitrate
- * @legacy: bitrate in 100kbit/s for 802.11abg
- */
-struct rate_info {
- u8 flags;
- u8 mcs;
- u16 legacy;
-};
-
-/**
- * enum station_info_rate_flags - bitrate info flags
- *
- * Used by the driver to indicate the specific rate transmission
- * type for 802.11n transmissions.
- *
- * @BSS_PARAM_FLAGS_CTS_PROT: whether CTS protection is enabled
- * @BSS_PARAM_FLAGS_SHORT_PREAMBLE: whether short preamble is enabled
- * @BSS_PARAM_FLAGS_SHORT_SLOT_TIME: whether short slot time is enabled
- */
-enum bss_param_flags {
- BSS_PARAM_FLAGS_CTS_PROT = 1<<0,
- BSS_PARAM_FLAGS_SHORT_PREAMBLE = 1<<1,
- BSS_PARAM_FLAGS_SHORT_SLOT_TIME = 1<<2,
-};
-
-/**
- * struct sta_bss_parameters - BSS parameters for the attached station
- *
- * Information about the currently associated BSS
- *
- * @flags: bitflag of flags from &enum bss_param_flags
- * @dtim_period: DTIM period for the BSS
- * @beacon_interval: beacon interval
- */
-struct sta_bss_parameters {
- u8 flags;
- u8 dtim_period;
- u16 beacon_interval;
-};
-
-/**
- * struct station_info - station information
- *
- * Station information filled by driver for get_station() and dump_station.
- *
- * @filled: bitflag of flags from &enum station_info_flags
- * @connected_time: time(in secs) since a station is last connected
- * @inactive_time: time since last station activity (tx/rx) in milliseconds
- * @rx_bytes: bytes received from this station
- * @tx_bytes: bytes transmitted to this station
- * @llid: mesh local link id
- * @plid: mesh peer link id
- * @plink_state: mesh peer link state
- * @signal: the signal strength, type depends on the wiphy's signal_type
- NOTE: For CFG80211_SIGNAL_TYPE_MBM, value is expressed in _dBm_.
- * @signal_avg: avg signal strength, type depends on the wiphy's signal_type
- NOTE: For CFG80211_SIGNAL_TYPE_MBM, value is expressed in _dBm_.
- * @txrate: current unicast bitrate from this station
- * @rxrate: current unicast bitrate to this station
- * @rx_packets: packets received from this station
- * @tx_packets: packets transmitted to this station
- * @tx_retries: cumulative retry counts
- * @tx_failed: number of failed transmissions (retries exceeded, no ACK)
- * @rx_dropped_misc: Dropped for un-specified reason.
- * @bss_param: current BSS parameters
- * @generation: generation number for nl80211 dumps.
- * This number should increase every time the list of stations
- * changes, i.e. when a station is added or removed, so that
- * userspace can tell whether it got a consistent snapshot.
- * @assoc_req_ies: IEs from (Re)Association Request.
- * This is used only when in AP mode with drivers that do not use
- * user space MLME/SME implementation. The information is provided for
- * the cfg80211_new_sta() calls to notify user space of the IEs.
- * @assoc_req_ies_len: Length of assoc_req_ies buffer in octets.
- * @sta_flags: station flags mask & values
- * @beacon_loss_count: Number of times beacon loss event has triggered.
- */
-struct station_info {
- u32 filled;
- u32 connected_time;
- u32 inactive_time;
- u32 rx_bytes;
- u32 tx_bytes;
- u16 llid;
- u16 plid;
- u8 plink_state;
- s8 signal;
- s8 signal_avg;
- struct rate_info txrate;
- struct rate_info rxrate;
- u32 rx_packets;
- u32 tx_packets;
- u32 tx_retries;
- u32 tx_failed;
- u32 rx_dropped_misc;
- struct sta_bss_parameters bss_param;
- struct nl80211_sta_flag_update sta_flags;
-
- int generation;
-
- const u8 *assoc_req_ies;
- size_t assoc_req_ies_len;
-
- u32 beacon_loss_count;
-
- /*
- * Note: Add a new enum station_info_flags value for each new field and
- * use it to check which fields are initialized.
- */
-};
-
-/**
- * enum monitor_flags - monitor flags
- *
- * Monitor interface configuration flags. Note that these must be the bits
- * according to the nl80211 flags.
- *
- * @MONITOR_FLAG_FCSFAIL: pass frames with bad FCS
- * @MONITOR_FLAG_PLCPFAIL: pass frames with bad PLCP
- * @MONITOR_FLAG_CONTROL: pass control frames
- * @MONITOR_FLAG_OTHER_BSS: disable BSSID filtering
- * @MONITOR_FLAG_COOK_FRAMES: report frames after processing
- */
-enum monitor_flags {
- MONITOR_FLAG_FCSFAIL = 1<<NL80211_MNTR_FLAG_FCSFAIL,
- MONITOR_FLAG_PLCPFAIL = 1<<NL80211_MNTR_FLAG_PLCPFAIL,
- MONITOR_FLAG_CONTROL = 1<<NL80211_MNTR_FLAG_CONTROL,
- MONITOR_FLAG_OTHER_BSS = 1<<NL80211_MNTR_FLAG_OTHER_BSS,
- MONITOR_FLAG_COOK_FRAMES = 1<<NL80211_MNTR_FLAG_COOK_FRAMES,
-};
-
-/**
- * enum mpath_info_flags - mesh path information flags
- *
- * Used by the driver to indicate which info in &struct mpath_info it has filled
- * in during get_station() or dump_station().
- *
- * @MPATH_INFO_FRAME_QLEN: @frame_qlen filled
- * @MPATH_INFO_SN: @sn filled
- * @MPATH_INFO_METRIC: @metric filled
- * @MPATH_INFO_EXPTIME: @exptime filled
- * @MPATH_INFO_DISCOVERY_TIMEOUT: @discovery_timeout filled
- * @MPATH_INFO_DISCOVERY_RETRIES: @discovery_retries filled
- * @MPATH_INFO_FLAGS: @flags filled
- */
-enum mpath_info_flags {
- MPATH_INFO_FRAME_QLEN = BIT(0),
- MPATH_INFO_SN = BIT(1),
- MPATH_INFO_METRIC = BIT(2),
- MPATH_INFO_EXPTIME = BIT(3),
- MPATH_INFO_DISCOVERY_TIMEOUT = BIT(4),
- MPATH_INFO_DISCOVERY_RETRIES = BIT(5),
- MPATH_INFO_FLAGS = BIT(6),
-};
-
-/**
- * struct mpath_info - mesh path information
- *
- * Mesh path information filled by driver for get_mpath() and dump_mpath().
- *
- * @filled: bitfield of flags from &enum mpath_info_flags
- * @frame_qlen: number of queued frames for this destination
- * @sn: target sequence number
- * @metric: metric (cost) of this mesh path
- * @exptime: expiration time for the mesh path from now, in msecs
- * @flags: mesh path flags
- * @discovery_timeout: total mesh path discovery timeout, in msecs
- * @discovery_retries: mesh path discovery retries
- * @generation: generation number for nl80211 dumps.
- * This number should increase every time the list of mesh paths
- * changes, i.e. when a station is added or removed, so that
- * userspace can tell whether it got a consistent snapshot.
- */
-struct mpath_info {
- u32 filled;
- u32 frame_qlen;
- u32 sn;
- u32 metric;
- u32 exptime;
- u32 discovery_timeout;
- u8 discovery_retries;
- u8 flags;
-
- int generation;
-};
-
-/**
- * struct bss_parameters - BSS parameters
- *
- * Used to change BSS parameters (mainly for AP mode).
- *
- * @use_cts_prot: Whether to use CTS protection
- * (0 = no, 1 = yes, -1 = do not change)
- * @use_short_preamble: Whether the use of short preambles is allowed
- * (0 = no, 1 = yes, -1 = do not change)
- * @use_short_slot_time: Whether the use of short slot time is allowed
- * (0 = no, 1 = yes, -1 = do not change)
- * @basic_rates: basic rates in IEEE 802.11 format
- * (or NULL for no change)
- * @basic_rates_len: number of basic rates
- * @ap_isolate: do not forward packets between connected stations
- * @ht_opmode: HT Operation mode
- * (u16 = opmode, -1 = do not change)
- */
-struct bss_parameters {
- int use_cts_prot;
- int use_short_preamble;
- int use_short_slot_time;
- u8 *basic_rates;
- u8 basic_rates_len;
- int ap_isolate;
- int ht_opmode;
-};
-
-/*
- * struct mesh_config - 802.11s mesh configuration
- *
- * These parameters can be changed while the mesh is active.
- */
-struct mesh_config {
- /* Timeouts in ms */
- /* Mesh plink management parameters */
- u16 dot11MeshRetryTimeout;
- u16 dot11MeshConfirmTimeout;
- u16 dot11MeshHoldingTimeout;
- u16 dot11MeshMaxPeerLinks;
- u8 dot11MeshMaxRetries;
- u8 dot11MeshTTL;
- /* ttl used in path selection information elements */
- u8 element_ttl;
- bool auto_open_plinks;
- /* HWMP parameters */
- u8 dot11MeshHWMPmaxPREQretries;
- u32 path_refresh_time;
- u16 min_discovery_timeout;
- u32 dot11MeshHWMPactivePathTimeout;
- u16 dot11MeshHWMPpreqMinInterval;
- u16 dot11MeshHWMPperrMinInterval;
- u16 dot11MeshHWMPnetDiameterTraversalTime;
- u8 dot11MeshHWMPRootMode;
- u16 dot11MeshHWMPRannInterval;
- /* This is missnamed in draft 12.0: dot11MeshGateAnnouncementProtocol
- * set to true only means that the station will announce others it's a
- * mesh gate, but not necessarily using the gate announcement protocol.
- * Still keeping the same nomenclature to be in sync with the spec. */
- bool dot11MeshGateAnnouncementProtocol;
- bool dot11MeshForwarding;
- s32 rssi_threshold;
-};
-
-/**
- * struct mesh_setup - 802.11s mesh setup configuration
- * @mesh_id: the mesh ID
- * @mesh_id_len: length of the mesh ID, at least 1 and at most 32 bytes
- * @path_sel_proto: which path selection protocol to use
- * @path_metric: which metric to use
- * @ie: vendor information elements (optional)
- * @ie_len: length of vendor information elements
- * @is_authenticated: this mesh requires authentication
- * @is_secure: this mesh uses security
- * @mcast_rate: multicat rate for Mesh Node [6Mbps is the default for 802.11a]
- *
- * These parameters are fixed when the mesh is created.
- */
-struct mesh_setup {
- const u8 *mesh_id;
- u8 mesh_id_len;
- u8 path_sel_proto;
- u8 path_metric;
- const u8 *ie;
- u8 ie_len;
- bool is_authenticated;
- bool is_secure;
- int mcast_rate[IEEE80211_NUM_BANDS];
-};
-
-/**
- * struct ieee80211_txq_params - TX queue parameters
- * @queue: TX queue identifier (NL80211_TXQ_Q_*)
- * @txop: Maximum burst time in units of 32 usecs, 0 meaning disabled
- * @cwmin: Minimum contention window [a value of the form 2^n-1 in the range
- * 1..32767]
- * @cwmax: Maximum contention window [a value of the form 2^n-1 in the range
- * 1..32767]
- * @aifs: Arbitration interframe space [0..255]
- */
-struct ieee80211_txq_params {
- enum nl80211_txq_q queue;
- u16 txop;
- u16 cwmin;
- u16 cwmax;
- u8 aifs;
-};
-
-/* from net/wireless.h */
-struct wiphy;
-
-/**
- * DOC: Scanning and BSS list handling
- *
- * The scanning process itself is fairly simple, but cfg80211 offers quite
- * a bit of helper functionality. To start a scan, the scan operation will
- * be invoked with a scan definition. This scan definition contains the
- * channels to scan, and the SSIDs to send probe requests for (including the
- * wildcard, if desired). A passive scan is indicated by having no SSIDs to
- * probe. Additionally, a scan request may contain extra information elements
- * that should be added to the probe request. The IEs are guaranteed to be
- * well-formed, and will not exceed the maximum length the driver advertised
- * in the wiphy structure.
- *
- * When scanning finds a BSS, cfg80211 needs to be notified of that, because
- * it is responsible for maintaining the BSS list; the driver should not
- * maintain a list itself. For this notification, various functions exist.
- *
- * Since drivers do not maintain a BSS list, there are also a number of
- * functions to search for a BSS and obtain information about it from the
- * BSS structure cfg80211 maintains. The BSS list is also made available
- * to userspace.
- */
-
-/**
- * struct cfg80211_ssid - SSID description
- * @ssid: the SSID
- * @ssid_len: length of the ssid
- */
-struct cfg80211_ssid {
- u8 ssid[IEEE80211_MAX_SSID_LEN];
- u8 ssid_len;
-};
-
-/**
- * struct cfg80211_scan_request - scan request description
- *
- * @ssids: SSIDs to scan for (active scan only)
- * @n_ssids: number of SSIDs
- * @channels: channels to scan on.
- * @n_channels: total number of channels to scan
- * @ie: optional information element(s) to add into Probe Request or %NULL
- * @ie_len: length of ie in octets
- * @rates: bitmap of rates to advertise for each band
- * @wiphy: the wiphy this was for
- * @dev: the interface
- * @aborted: (internal) scan request was notified as aborted
- * @no_cck: used to send probe requests at non CCK rate in 2GHz band
- */
-struct cfg80211_scan_request {
- struct cfg80211_ssid *ssids;
- int n_ssids;
- u32 n_channels;
- const u8 *ie;
- size_t ie_len;
-
- u32 rates[IEEE80211_NUM_BANDS];
-
- /* internal */
- struct wiphy *wiphy;
- struct net_device *dev;
- bool aborted;
- bool no_cck;
-
- /* keep last */
- struct ieee80211_channel *channels[0];
-};
-
-/**
- * struct cfg80211_match_set - sets of attributes to match
- *
- * @ssid: SSID to be matched
- */
-struct cfg80211_match_set {
- struct cfg80211_ssid ssid;
-};
-
-/**
- * struct cfg80211_sched_scan_request - scheduled scan request description
- *
- * @ssids: SSIDs to scan for (passed in the probe_reqs in active scans)
- * @n_ssids: number of SSIDs
- * @n_channels: total number of channels to scan
- * @interval: interval between each scheduled scan cycle
- * @ie: optional information element(s) to add into Probe Request or %NULL
- * @ie_len: length of ie in octets
- * @match_sets: sets of parameters to be matched for a scan result
- * entry to be considered valid and to be passed to the host
- * (others are filtered out).
- * If ommited, all results are passed.
- * @n_match_sets: number of match sets
- * @wiphy: the wiphy this was for
- * @dev: the interface
- * @channels: channels to scan
- */
-struct cfg80211_sched_scan_request {
- struct cfg80211_ssid *ssids;
- int n_ssids;
- u32 n_channels;
- u32 interval;
- const u8 *ie;
- size_t ie_len;
- struct cfg80211_match_set *match_sets;
- int n_match_sets;
-
- /* internal */
- struct wiphy *wiphy;
- struct net_device *dev;
-
- /* keep last */
- struct ieee80211_channel *channels[0];
-};
-
-/**
- * enum cfg80211_signal_type - signal type
- *
- * @CFG80211_SIGNAL_TYPE_NONE: no signal strength information available
- * @CFG80211_SIGNAL_TYPE_MBM: signal strength in mBm (100*dBm)
- * @CFG80211_SIGNAL_TYPE_UNSPEC: signal strength, increasing from 0 through 100
- */
-enum cfg80211_signal_type {
- CFG80211_SIGNAL_TYPE_NONE,
- CFG80211_SIGNAL_TYPE_MBM,
- CFG80211_SIGNAL_TYPE_UNSPEC,
-};
-
-/**
- * struct cfg80211_bss - BSS description
- *
- * This structure describes a BSS (which may also be a mesh network)
- * for use in scan results and similar.
- *
- * @channel: channel this BSS is on
- * @bssid: BSSID of the BSS
- * @tsf: timestamp of last received update
- * @beacon_interval: the beacon interval as from the frame
- * @capability: the capability field in host byte order
- * @information_elements: the information elements (Note that there
- * is no guarantee that these are well-formed!); this is a pointer to
- * either the beacon_ies or proberesp_ies depending on whether Probe
- * Response frame has been received
- * @len_information_elements: total length of the information elements
- * @beacon_ies: the information elements from the last Beacon frame
- * @len_beacon_ies: total length of the beacon_ies
- * @proberesp_ies: the information elements from the last Probe Response frame
- * @len_proberesp_ies: total length of the proberesp_ies
- * @signal: signal strength value (type depends on the wiphy's signal_type)
- * @free_priv: function pointer to free private data
- * @priv: private area for driver use, has at least wiphy->bss_priv_size bytes
- */
-struct cfg80211_bss {
- struct ieee80211_channel *channel;
-
- u8 bssid[ETH_ALEN];
- u64 tsf;
- u16 beacon_interval;
- u16 capability;
- u8 *information_elements;
- size_t len_information_elements;
- u8 *beacon_ies;
- size_t len_beacon_ies;
- u8 *proberesp_ies;
- size_t len_proberesp_ies;
-
- s32 signal;
-
- void (*free_priv)(struct cfg80211_bss *bss);
- u8 priv[0] __attribute__((__aligned__(sizeof(void *))));
-};
-
-/**
- * ieee80211_bss_get_ie - find IE with given ID
- * @bss: the bss to search
- * @ie: the IE ID
- * Returns %NULL if not found.
- */
-const u8 *ieee80211_bss_get_ie(struct cfg80211_bss *bss, u8 ie);
-
-
-/**
- * struct cfg80211_auth_request - Authentication request data
- *
- * This structure provides information needed to complete IEEE 802.11
- * authentication.
- *
- * @bss: The BSS to authenticate with.
- * @auth_type: Authentication type (algorithm)
- * @ie: Extra IEs to add to Authentication frame or %NULL
- * @ie_len: Length of ie buffer in octets
- * @key_len: length of WEP key for shared key authentication
- * @key_idx: index of WEP key for shared key authentication
- * @key: WEP key for shared key authentication
- */
-struct cfg80211_auth_request {
- struct cfg80211_bss *bss;
- const u8 *ie;
- size_t ie_len;
- enum nl80211_auth_type auth_type;
- const u8 *key;
- u8 key_len, key_idx;
-};
-
-/**
- * enum cfg80211_assoc_req_flags - Over-ride default behaviour in association.
- *
- * @ASSOC_REQ_DISABLE_HT: Disable HT (802.11n)
- */
-enum cfg80211_assoc_req_flags {
- ASSOC_REQ_DISABLE_HT = BIT(0),
-};
-
-/**
- * struct cfg80211_assoc_request - (Re)Association request data
- *
- * This structure provides information needed to complete IEEE 802.11
- * (re)association.
- * @bss: The BSS to associate with. If the call is successful the driver
- * is given a reference that it must release, normally via a call to
- * cfg80211_send_rx_assoc(), or, if association timed out, with a
- * call to cfg80211_put_bss() (in addition to calling
- * cfg80211_send_assoc_timeout())
- * @ie: Extra IEs to add to (Re)Association Request frame or %NULL
- * @ie_len: Length of ie buffer in octets
- * @use_mfp: Use management frame protection (IEEE 802.11w) in this association
- * @crypto: crypto settings
- * @prev_bssid: previous BSSID, if not %NULL use reassociate frame
- * @flags: See &enum cfg80211_assoc_req_flags
- * @ht_capa: HT Capabilities over-rides. Values set in ht_capa_mask
- * will be used in ht_capa. Un-supported values will be ignored.
- * @ht_capa_mask: The bits of ht_capa which are to be used.
- */
-struct cfg80211_assoc_request {
- struct cfg80211_bss *bss;
- const u8 *ie, *prev_bssid;
- size_t ie_len;
- struct cfg80211_crypto_settings crypto;
- bool use_mfp;
- u32 flags;
- struct ieee80211_ht_cap ht_capa;
- struct ieee80211_ht_cap ht_capa_mask;
-};
-
-/**
- * struct cfg80211_deauth_request - Deauthentication request data
- *
- * This structure provides information needed to complete IEEE 802.11
- * deauthentication.
- *
- * @bssid: the BSSID of the BSS to deauthenticate from
- * @ie: Extra IEs to add to Deauthentication frame or %NULL
- * @ie_len: Length of ie buffer in octets
- * @reason_code: The reason code for the deauthentication
- */
-struct cfg80211_deauth_request {
- const u8 *bssid;
- const u8 *ie;
- size_t ie_len;
- u16 reason_code;
-};
-
-/**
- * struct cfg80211_disassoc_request - Disassociation request data
- *
- * This structure provides information needed to complete IEEE 802.11
- * disassocation.
- *
- * @bss: the BSS to disassociate from
- * @ie: Extra IEs to add to Disassociation frame or %NULL
- * @ie_len: Length of ie buffer in octets
- * @reason_code: The reason code for the disassociation
- * @local_state_change: This is a request for a local state only, i.e., no
- * Disassociation frame is to be transmitted.
- */
-struct cfg80211_disassoc_request {
- struct cfg80211_bss *bss;
- const u8 *ie;
- size_t ie_len;
- u16 reason_code;
- bool local_state_change;
-};
-
-/**
- * struct cfg80211_ibss_params - IBSS parameters
- *
- * This structure defines the IBSS parameters for the join_ibss()
- * method.
- *
- * @ssid: The SSID, will always be non-null.
- * @ssid_len: The length of the SSID, will always be non-zero.
- * @bssid: Fixed BSSID requested, maybe be %NULL, if set do not
- * search for IBSSs with a different BSSID.
- * @channel: The channel to use if no IBSS can be found to join.
- * @channel_type: channel type (HT mode)
- * @channel_fixed: The channel should be fixed -- do not search for
- * IBSSs to join on other channels.
- * @ie: information element(s) to include in the beacon
- * @ie_len: length of that
- * @beacon_interval: beacon interval to use
- * @privacy: this is a protected network, keys will be configured
- * after joining
- * @control_port: whether user space controls IEEE 802.1X port, i.e.,
- * sets/clears %NL80211_STA_FLAG_AUTHORIZED. If true, the driver is
- * required to assume that the port is unauthorized until authorized by
- * user space. Otherwise, port is marked authorized by default.
- * @basic_rates: bitmap of basic rates to use when creating the IBSS
- * @mcast_rate: per-band multicast rate index + 1 (0: disabled)
- */
-struct cfg80211_ibss_params {
- u8 *ssid;
- u8 *bssid;
- struct ieee80211_channel *channel;
- enum nl80211_channel_type channel_type;
- u8 *ie;
- u8 ssid_len, ie_len;
- u16 beacon_interval;
- u32 basic_rates;
- bool channel_fixed;
- bool privacy;
- bool control_port;
- int mcast_rate[IEEE80211_NUM_BANDS];
-};
-
-/**
- * struct cfg80211_connect_params - Connection parameters
- *
- * This structure provides information needed to complete IEEE 802.11
- * authentication and association.
- *
- * @channel: The channel to use or %NULL if not specified (auto-select based
- * on scan results)
- * @bssid: The AP BSSID or %NULL if not specified (auto-select based on scan
- * results)
- * @ssid: SSID
- * @ssid_len: Length of ssid in octets
- * @auth_type: Authentication type (algorithm)
- * @ie: IEs for association request
- * @ie_len: Length of assoc_ie in octets
- * @privacy: indicates whether privacy-enabled APs should be used
- * @crypto: crypto settings
- * @key_len: length of WEP key for shared key authentication
- * @key_idx: index of WEP key for shared key authentication
- * @key: WEP key for shared key authentication
- * @flags: See &enum cfg80211_assoc_req_flags
- * @bg_scan_period: Background scan period in seconds
- * or -1 to indicate that default value is to be used.
- * @ht_capa: HT Capabilities over-rides. Values set in ht_capa_mask
- * will be used in ht_capa. Un-supported values will be ignored.
- * @ht_capa_mask: The bits of ht_capa which are to be used.
- */
-struct cfg80211_connect_params {
- struct ieee80211_channel *channel;
- u8 *bssid;
- u8 *ssid;
- size_t ssid_len;
- enum nl80211_auth_type auth_type;
- u8 *ie;
- size_t ie_len;
- bool privacy;
- struct cfg80211_crypto_settings crypto;
- const u8 *key;
- u8 key_len, key_idx;
- u32 flags;
- int bg_scan_period;
- struct ieee80211_ht_cap ht_capa;
- struct ieee80211_ht_cap ht_capa_mask;
-};
-
-/**
- * enum wiphy_params_flags - set_wiphy_params bitfield values
- * @WIPHY_PARAM_RETRY_SHORT: wiphy->retry_short has changed
- * @WIPHY_PARAM_RETRY_LONG: wiphy->retry_long has changed
- * @WIPHY_PARAM_FRAG_THRESHOLD: wiphy->frag_threshold has changed
- * @WIPHY_PARAM_RTS_THRESHOLD: wiphy->rts_threshold has changed
- * @WIPHY_PARAM_COVERAGE_CLASS: coverage class changed
- */
-enum wiphy_params_flags {
- WIPHY_PARAM_RETRY_SHORT = 1 << 0,
- WIPHY_PARAM_RETRY_LONG = 1 << 1,
- WIPHY_PARAM_FRAG_THRESHOLD = 1 << 2,
- WIPHY_PARAM_RTS_THRESHOLD = 1 << 3,
- WIPHY_PARAM_COVERAGE_CLASS = 1 << 4,
-};
-
-/*
- * cfg80211_bitrate_mask - masks for bitrate control
- */
-struct cfg80211_bitrate_mask {
- struct {
- u32 legacy;
- u8 mcs[IEEE80211_HT_MCS_MASK_LEN];
- } control[IEEE80211_NUM_BANDS];
-};
-/**
- * struct cfg80211_pmksa - PMK Security Association
- *
- * This structure is passed to the set/del_pmksa() method for PMKSA
- * caching.
- *
- * @bssid: The AP's BSSID.
- * @pmkid: The PMK material itself.
- */
-struct cfg80211_pmksa {
- u8 *bssid;
- u8 *pmkid;
-};
-
-/**
- * struct cfg80211_wowlan_trig_pkt_pattern - packet pattern
- * @mask: bitmask where to match pattern and where to ignore bytes,
- * one bit per byte, in same format as nl80211
- * @pattern: bytes to match where bitmask is 1
- * @pattern_len: length of pattern (in bytes)
- *
- * Internal note: @mask and @pattern are allocated in one chunk of
- * memory, free @mask only!
- */
-struct cfg80211_wowlan_trig_pkt_pattern {
- u8 *mask, *pattern;
- int pattern_len;
-};
-
-/**
- * struct cfg80211_wowlan - Wake on Wireless-LAN support info
- *
- * This structure defines the enabled WoWLAN triggers for the device.
- * @any: wake up on any activity -- special trigger if device continues
- * operating as normal during suspend
- * @disconnect: wake up if getting disconnected
- * @magic_pkt: wake up on receiving magic packet
- * @patterns: wake up on receiving packet matching a pattern
- * @n_patterns: number of patterns
- * @gtk_rekey_failure: wake up on GTK rekey failure
- * @eap_identity_req: wake up on EAP identity request packet
- * @four_way_handshake: wake up on 4-way handshake
- * @rfkill_release: wake up when rfkill is released
- */
-struct cfg80211_wowlan {
- bool any, disconnect, magic_pkt, gtk_rekey_failure,
- eap_identity_req, four_way_handshake,
- rfkill_release;
- struct cfg80211_wowlan_trig_pkt_pattern *patterns;
- int n_patterns;
-};
-
-/**
- * struct cfg80211_gtk_rekey_data - rekey data
- * @kek: key encryption key
- * @kck: key confirmation key
- * @replay_ctr: replay counter
- */
-struct cfg80211_gtk_rekey_data {
- u8 kek[NL80211_KEK_LEN];
- u8 kck[NL80211_KCK_LEN];
- u8 replay_ctr[NL80211_REPLAY_CTR_LEN];
-};
-
-/**
- * struct cfg80211_ops - backend description for wireless configuration
- *
- * This struct is registered by fullmac card drivers and/or wireless stacks
- * in order to handle configuration requests on their interfaces.
- *
- * All callbacks except where otherwise noted should return 0
- * on success or a negative error code.
- *
- * All operations are currently invoked under rtnl for consistency with the
- * wireless extensions but this is subject to reevaluation as soon as this
- * code is used more widely and we have a first user without wext.
- *
- * @suspend: wiphy device needs to be suspended. The variable @wow will
- * be %NULL or contain the enabled Wake-on-Wireless triggers that are
- * configured for the device.
- * @resume: wiphy device needs to be resumed
- *
- * @add_virtual_intf: create a new virtual interface with the given name,
- * must set the struct wireless_dev's iftype. Beware: You must create
- * the new netdev in the wiphy's network namespace! Returns the netdev,
- * or an ERR_PTR.
- *
- * @del_virtual_intf: remove the virtual interface determined by ifindex.
- *
- * @change_virtual_intf: change type/configuration of virtual interface,
- * keep the struct wireless_dev's iftype updated.
- *
- * @add_key: add a key with the given parameters. @mac_addr will be %NULL
- * when adding a group key.
- *
- * @get_key: get information about the key with the given parameters.
- * @mac_addr will be %NULL when requesting information for a group
- * key. All pointers given to the @callback function need not be valid
- * after it returns. This function should return an error if it is
- * not possible to retrieve the key, -ENOENT if it doesn't exist.
- *
- * @del_key: remove a key given the @mac_addr (%NULL for a group key)
- * and @key_index, return -ENOENT if the key doesn't exist.
- *
- * @set_default_key: set the default key on an interface
- *
- * @set_default_mgmt_key: set the default management frame key on an interface
- *
- * @set_rekey_data: give the data necessary for GTK rekeying to the driver
- *
- * @start_ap: Start acting in AP mode defined by the parameters.
- * @change_beacon: Change the beacon parameters for an access point mode
- * interface. This should reject the call when AP mode wasn't started.
- * @stop_ap: Stop being an AP, including stopping beaconing.
- *
- * @add_station: Add a new station.
- * @del_station: Remove a station; @mac may be NULL to remove all stations.
- * @change_station: Modify a given station. Note that flags changes are not much
- * validated in cfg80211, in particular the auth/assoc/authorized flags
- * might come to the driver in invalid combinations -- make sure to check
- * them, also against the existing state! Also, supported_rates changes are
- * not checked in station mode -- drivers need to reject (or ignore) them
- * for anything but TDLS peers.
- * @get_station: get station information for the station identified by @mac
- * @dump_station: dump station callback -- resume dump at index @idx
- *
- * @add_mpath: add a fixed mesh path
- * @del_mpath: delete a given mesh path
- * @change_mpath: change a given mesh path
- * @get_mpath: get a mesh path for the given parameters
- * @dump_mpath: dump mesh path callback -- resume dump at index @idx
- * @join_mesh: join the mesh network with the specified parameters
- * @leave_mesh: leave the current mesh network
- *
- * @get_mesh_config: Get the current mesh configuration
- *
- * @update_mesh_config: Update mesh parameters on a running mesh.
- * The mask is a bitfield which tells us which parameters to
- * set, and which to leave alone.
- *
- * @change_bss: Modify parameters for a given BSS.
- *
- * @set_txq_params: Set TX queue parameters
- *
- * @set_channel: Set channel for a given wireless interface. Some devices
- * may support multi-channel operation (by channel hopping) so cfg80211
- * doesn't verify much. Note, however, that the passed netdev may be
- * %NULL as well if the user requested changing the channel for the
- * device itself, or for a monitor interface.
- * @get_channel: Get the current operating channel, should return %NULL if
- * there's no single defined operating channel if for example the
- * device implements channel hopping for multi-channel virtual interfaces.
- *
- * @scan: Request to do a scan. If returning zero, the scan request is given
- * the driver, and will be valid until passed to cfg80211_scan_done().
- * For scan results, call cfg80211_inform_bss(); you can call this outside
- * the scan/scan_done bracket too.
- *
- * @auth: Request to authenticate with the specified peer
- * @assoc: Request to (re)associate with the specified peer
- * @deauth: Request to deauthenticate from the specified peer
- * @disassoc: Request to disassociate from the specified peer
- *
- * @connect: Connect to the ESS with the specified parameters. When connected,
- * call cfg80211_connect_result() with status code %WLAN_STATUS_SUCCESS.
- * If the connection fails for some reason, call cfg80211_connect_result()
- * with the status from the AP.
- * @disconnect: Disconnect from the BSS/ESS.
- *
- * @join_ibss: Join the specified IBSS (or create if necessary). Once done, call
- * cfg80211_ibss_joined(), also call that function when changing BSSID due
- * to a merge.
- * @leave_ibss: Leave the IBSS.
- *
- * @set_wiphy_params: Notify that wiphy parameters have changed;
- * @changed bitfield (see &enum wiphy_params_flags) describes which values
- * have changed. The actual parameter values are available in
- * struct wiphy. If returning an error, no value should be changed.
- *
- * @set_tx_power: set the transmit power according to the parameters,
- * the power passed is in mBm, to get dBm use MBM_TO_DBM().
- * @get_tx_power: store the current TX power into the dbm variable;
- * return 0 if successful
- *
- * @set_wds_peer: set the WDS peer for a WDS interface
- *
- * @rfkill_poll: polls the hw rfkill line, use cfg80211 reporting
- * functions to adjust rfkill hw state
- *
- * @dump_survey: get site survey information.
- *
- * @remain_on_channel: Request the driver to remain awake on the specified
- * channel for the specified duration to complete an off-channel
- * operation (e.g., public action frame exchange). When the driver is
- * ready on the requested channel, it must indicate this with an event
- * notification by calling cfg80211_ready_on_channel().
- * @cancel_remain_on_channel: Cancel an on-going remain-on-channel operation.
- * This allows the operation to be terminated prior to timeout based on
- * the duration value.
- * @mgmt_tx: Transmit a management frame.
- * @mgmt_tx_cancel_wait: Cancel the wait time from transmitting a management
- * frame on another channel
- *
- * @testmode_cmd: run a test mode command
- * @testmode_dump: Implement a test mode dump. The cb->args[2] and up may be
- * used by the function, but 0 and 1 must not be touched. Additionally,
- * return error codes other than -ENOBUFS and -ENOENT will terminate the
- * dump and return to userspace with an error, so be careful. If any data
- * was passed in from userspace then the data/len arguments will be present
- * and point to the data contained in %NL80211_ATTR_TESTDATA.
- *
- * @set_bitrate_mask: set the bitrate mask configuration
- *
- * @set_pmksa: Cache a PMKID for a BSSID. This is mostly useful for fullmac
- * devices running firmwares capable of generating the (re) association
- * RSN IE. It allows for faster roaming between WPA2 BSSIDs.
- * @del_pmksa: Delete a cached PMKID.
- * @flush_pmksa: Flush all cached PMKIDs.
- * @set_power_mgmt: Configure WLAN power management. A timeout value of -1
- * allows the driver to adjust the dynamic ps timeout value.
- * @set_cqm_rssi_config: Configure connection quality monitor RSSI threshold.
- * @sched_scan_start: Tell the driver to start a scheduled scan.
- * @sched_scan_stop: Tell the driver to stop an ongoing scheduled
- * scan. The driver_initiated flag specifies whether the driver
- * itself has informed that the scan has stopped.
- *
- * @mgmt_frame_register: Notify driver that a management frame type was
- * registered. Note that this callback may not sleep, and cannot run
- * concurrently with itself.
- *
- * @set_antenna: Set antenna configuration (tx_ant, rx_ant) on the device.
- * Parameters are bitmaps of allowed antennas to use for TX/RX. Drivers may
- * reject TX/RX mask combinations they cannot support by returning -EINVAL
- * (also see nl80211.h @NL80211_ATTR_WIPHY_ANTENNA_TX).
- *
- * @get_antenna: Get current antenna configuration from device (tx_ant, rx_ant).
- *
- * @set_ringparam: Set tx and rx ring sizes.
- *
- * @get_ringparam: Get tx and rx ring current and maximum sizes.
- *
- * @tdls_mgmt: Transmit a TDLS management frame.
- * @tdls_oper: Perform a high-level TDLS operation (e.g. TDLS link setup).
- *
- * @probe_client: probe an associated client, must return a cookie that it
- * later passes to cfg80211_probe_status().
- *
- * @set_noack_map: Set the NoAck Map for the TIDs.
- */
-struct cfg80211_ops {
- int (*suspend)(struct wiphy *wiphy, struct cfg80211_wowlan *wow);
- int (*resume)(struct wiphy *wiphy);
-
- struct net_device * (*add_virtual_intf)(struct wiphy *wiphy,
- char *name,
- enum nl80211_iftype type,
- u32 *flags,
- struct vif_params *params);
- int (*del_virtual_intf)(struct wiphy *wiphy, struct net_device *dev);
- int (*change_virtual_intf)(struct wiphy *wiphy,
- struct net_device *dev,
- enum nl80211_iftype type, u32 *flags,
- struct vif_params *params);
-
- int (*add_key)(struct wiphy *wiphy, struct net_device *netdev,
- u8 key_index, bool pairwise, const u8 *mac_addr,
- struct key_params *params);
- int (*get_key)(struct wiphy *wiphy, struct net_device *netdev,
- u8 key_index, bool pairwise, const u8 *mac_addr,
- void *cookie,
- void (*callback)(void *cookie, struct key_params*));
- int (*del_key)(struct wiphy *wiphy, struct net_device *netdev,
- u8 key_index, bool pairwise, const u8 *mac_addr);
- int (*set_default_key)(struct wiphy *wiphy,
- struct net_device *netdev,
- u8 key_index, bool unicast, bool multicast);
- int (*set_default_mgmt_key)(struct wiphy *wiphy,
- struct net_device *netdev,
- u8 key_index);
-
- int (*start_ap)(struct wiphy *wiphy, struct net_device *dev,
- struct cfg80211_ap_settings *settings);
- int (*change_beacon)(struct wiphy *wiphy, struct net_device *dev,
- struct cfg80211_beacon_data *info);
- int (*stop_ap)(struct wiphy *wiphy, struct net_device *dev);
-
-
- int (*add_station)(struct wiphy *wiphy, struct net_device *dev,
- u8 *mac, struct station_parameters *params);
- int (*del_station)(struct wiphy *wiphy, struct net_device *dev,
- u8 *mac);
- int (*change_station)(struct wiphy *wiphy, struct net_device *dev,
- u8 *mac, struct station_parameters *params);
- int (*get_station)(struct wiphy *wiphy, struct net_device *dev,
- u8 *mac, struct station_info *sinfo);
- int (*dump_station)(struct wiphy *wiphy, struct net_device *dev,
- int idx, u8 *mac, struct station_info *sinfo);
-
- int (*add_mpath)(struct wiphy *wiphy, struct net_device *dev,
- u8 *dst, u8 *next_hop);
- int (*del_mpath)(struct wiphy *wiphy, struct net_device *dev,
- u8 *dst);
- int (*change_mpath)(struct wiphy *wiphy, struct net_device *dev,
- u8 *dst, u8 *next_hop);
- int (*get_mpath)(struct wiphy *wiphy, struct net_device *dev,
- u8 *dst, u8 *next_hop,
- struct mpath_info *pinfo);
- int (*dump_mpath)(struct wiphy *wiphy, struct net_device *dev,
- int idx, u8 *dst, u8 *next_hop,
- struct mpath_info *pinfo);
- int (*get_mesh_config)(struct wiphy *wiphy,
- struct net_device *dev,
- struct mesh_config *conf);
- int (*update_mesh_config)(struct wiphy *wiphy,
- struct net_device *dev, u32 mask,
- const struct mesh_config *nconf);
- int (*join_mesh)(struct wiphy *wiphy, struct net_device *dev,
- const struct mesh_config *conf,
- const struct mesh_setup *setup);
- int (*leave_mesh)(struct wiphy *wiphy, struct net_device *dev);
-
- int (*change_bss)(struct wiphy *wiphy, struct net_device *dev,
- struct bss_parameters *params);
-
- int (*set_txq_params)(struct wiphy *wiphy, struct net_device *dev,
- struct ieee80211_txq_params *params);
-
- int (*set_channel)(struct wiphy *wiphy, struct net_device *dev,
- struct ieee80211_channel *chan,
- enum nl80211_channel_type channel_type);
-
- int (*scan)(struct wiphy *wiphy, struct net_device *dev,
- struct cfg80211_scan_request *request);
-
- int (*auth)(struct wiphy *wiphy, struct net_device *dev,
- struct cfg80211_auth_request *req);
- int (*assoc)(struct wiphy *wiphy, struct net_device *dev,
- struct cfg80211_assoc_request *req);
- int (*deauth)(struct wiphy *wiphy, struct net_device *dev,
- struct cfg80211_deauth_request *req);
- int (*disassoc)(struct wiphy *wiphy, struct net_device *dev,
- struct cfg80211_disassoc_request *req);
-
- int (*connect)(struct wiphy *wiphy, struct net_device *dev,
- struct cfg80211_connect_params *sme);
- int (*disconnect)(struct wiphy *wiphy, struct net_device *dev,
- u16 reason_code);
-
- int (*join_ibss)(struct wiphy *wiphy, struct net_device *dev,
- struct cfg80211_ibss_params *params);
- int (*leave_ibss)(struct wiphy *wiphy, struct net_device *dev);
-
- int (*set_wiphy_params)(struct wiphy *wiphy, u32 changed);
-
- int (*set_tx_power)(struct wiphy *wiphy,
- enum nl80211_tx_power_setting type, int mbm);
- int (*get_tx_power)(struct wiphy *wiphy, int *dbm);
-
- int (*set_wds_peer)(struct wiphy *wiphy, struct net_device *dev,
- const u8 *addr);
-
- void (*rfkill_poll)(struct wiphy *wiphy);
-
-#ifdef CONFIG_NL80211_TESTMODE
- int (*testmode_cmd)(struct wiphy *wiphy, void *data, int len);
- int (*testmode_dump)(struct wiphy *wiphy, struct sk_buff *skb,
- struct netlink_callback *cb,
- void *data, int len);
-#endif
-
- int (*set_bitrate_mask)(struct wiphy *wiphy,
- struct net_device *dev,
- const u8 *peer,
- const struct cfg80211_bitrate_mask *mask);
-
- int (*dump_survey)(struct wiphy *wiphy, struct net_device *netdev,
- int idx, struct survey_info *info);
-
- int (*set_pmksa)(struct wiphy *wiphy, struct net_device *netdev,
- struct cfg80211_pmksa *pmksa);
- int (*del_pmksa)(struct wiphy *wiphy, struct net_device *netdev,
- struct cfg80211_pmksa *pmksa);
- int (*flush_pmksa)(struct wiphy *wiphy, struct net_device *netdev);
-
- int (*remain_on_channel)(struct wiphy *wiphy,
- struct net_device *dev,
- struct ieee80211_channel *chan,
- enum nl80211_channel_type channel_type,
- unsigned int duration,
- u64 *cookie);
- int (*cancel_remain_on_channel)(struct wiphy *wiphy,
- struct net_device *dev,
- u64 cookie);
-
- int (*mgmt_tx)(struct wiphy *wiphy, struct net_device *dev,
- struct ieee80211_channel *chan, bool offchan,
- enum nl80211_channel_type channel_type,
- bool channel_type_valid, unsigned int wait,
- const u8 *buf, size_t len, bool no_cck,
- bool dont_wait_for_ack, u64 *cookie);
- int (*mgmt_tx_cancel_wait)(struct wiphy *wiphy,
- struct net_device *dev,
- u64 cookie);
-
- int (*set_power_mgmt)(struct wiphy *wiphy, struct net_device *dev,
- bool enabled, int timeout);
-
- int (*set_cqm_rssi_config)(struct wiphy *wiphy,
- struct net_device *dev,
- s32 rssi_thold, u32 rssi_hyst);
-
- void (*mgmt_frame_register)(struct wiphy *wiphy,
- struct net_device *dev,
- u16 frame_type, bool reg);
-
- int (*set_antenna)(struct wiphy *wiphy, u32 tx_ant, u32 rx_ant);
- int (*get_antenna)(struct wiphy *wiphy, u32 *tx_ant, u32 *rx_ant);
-
- int (*set_ringparam)(struct wiphy *wiphy, u32 tx, u32 rx);
- void (*get_ringparam)(struct wiphy *wiphy,
- u32 *tx, u32 *tx_max, u32 *rx, u32 *rx_max);
-
- int (*sched_scan_start)(struct wiphy *wiphy,
- struct net_device *dev,
- struct cfg80211_sched_scan_request *request);
- int (*sched_scan_stop)(struct wiphy *wiphy, struct net_device *dev);
-
- int (*set_rekey_data)(struct wiphy *wiphy, struct net_device *dev,
- struct cfg80211_gtk_rekey_data *data);
-
- int (*tdls_mgmt)(struct wiphy *wiphy, struct net_device *dev,
- u8 *peer, u8 action_code, u8 dialog_token,
- u16 status_code, const u8 *buf, size_t len);
- int (*tdls_oper)(struct wiphy *wiphy, struct net_device *dev,
- u8 *peer, enum nl80211_tdls_operation oper);
-
- int (*probe_client)(struct wiphy *wiphy, struct net_device *dev,
- const u8 *peer, u64 *cookie);
-
- int (*set_noack_map)(struct wiphy *wiphy,
- struct net_device *dev,
- u16 noack_map);
-
- struct ieee80211_channel *(*get_channel)(struct wiphy *wiphy);
-};
-
-/*
- * wireless hardware and networking interfaces structures
- * and registration/helper functions
- */
-
-/**
- * enum wiphy_flags - wiphy capability flags
- *
- * @WIPHY_FLAG_CUSTOM_REGULATORY: tells us the driver for this device
- * has its own custom regulatory domain and cannot identify the
- * ISO / IEC 3166 alpha2 it belongs to. When this is enabled
- * we will disregard the first regulatory hint (when the
- * initiator is %REGDOM_SET_BY_CORE).
- * @WIPHY_FLAG_STRICT_REGULATORY: tells us the driver for this device will
- * ignore regulatory domain settings until it gets its own regulatory
- * domain via its regulatory_hint() unless the regulatory hint is
- * from a country IE. After its gets its own regulatory domain it will
- * only allow further regulatory domain settings to further enhance
- * compliance. For example if channel 13 and 14 are disabled by this
- * regulatory domain no user regulatory domain can enable these channels
- * at a later time. This can be used for devices which do not have
- * calibration information guaranteed for frequencies or settings
- * outside of its regulatory domain. If used in combination with
- * WIPHY_FLAG_CUSTOM_REGULATORY the inspected country IE power settings
- * will be followed.
- * @WIPHY_FLAG_DISABLE_BEACON_HINTS: enable this if your driver needs to ensure
- * that passive scan flags and beaconing flags may not be lifted by
- * cfg80211 due to regulatory beacon hints. For more information on beacon
- * hints read the documenation for regulatory_hint_found_beacon()
- * @WIPHY_FLAG_NETNS_OK: if not set, do not allow changing the netns of this
- * wiphy at all
- * @WIPHY_FLAG_ENFORCE_COMBINATIONS: Set this flag to enforce interface
- * combinations for this device. This flag is used for backward
- * compatibility only until all drivers advertise combinations and
- * they will always be enforced.
- * @WIPHY_FLAG_PS_ON_BY_DEFAULT: if set to true, powersave will be enabled
- * by default -- this flag will be set depending on the kernel's default
- * on wiphy_new(), but can be changed by the driver if it has a good
- * reason to override the default
- * @WIPHY_FLAG_4ADDR_AP: supports 4addr mode even on AP (with a single station
- * on a VLAN interface)
- * @WIPHY_FLAG_4ADDR_STATION: supports 4addr mode even as a station
- * @WIPHY_FLAG_CONTROL_PORT_PROTOCOL: This device supports setting the
- * control port protocol ethertype. The device also honours the
- * control_port_no_encrypt flag.
- * @WIPHY_FLAG_IBSS_RSN: The device supports IBSS RSN.
- * @WIPHY_FLAG_MESH_AUTH: The device supports mesh authentication by routing
- * auth frames to userspace. See @NL80211_MESH_SETUP_USERSPACE_AUTH.
- * @WIPHY_FLAG_SUPPORTS_SCHED_SCAN: The device supports scheduled scans.
- * @WIPHY_FLAG_SUPPORTS_FW_ROAM: The device supports roaming feature in the
- * firmware.
- * @WIPHY_FLAG_AP_UAPSD: The device supports uapsd on AP.
- * @WIPHY_FLAG_SUPPORTS_TDLS: The device supports TDLS (802.11z) operation.
- * @WIPHY_FLAG_TDLS_EXTERNAL_SETUP: The device does not handle TDLS (802.11z)
- * link setup/discovery operations internally. Setup, discovery and
- * teardown packets should be sent through the @NL80211_CMD_TDLS_MGMT
- * command. When this flag is not set, @NL80211_CMD_TDLS_OPER should be
- * used for asking the driver/firmware to perform a TDLS operation.
- * @WIPHY_FLAG_HAVE_AP_SME: device integrates AP SME
- * @WIPHY_FLAG_REPORTS_OBSS: the device will report beacons from other BSSes
- * when there are virtual interfaces in AP mode by calling
- * cfg80211_report_obss_beacon().
- * @WIPHY_FLAG_AP_PROBE_RESP_OFFLOAD: When operating as an AP, the device
- * responds to probe-requests in hardware.
- * @WIPHY_FLAG_OFFCHAN_TX: Device supports direct off-channel TX.
- * @WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL: Device supports remain-on-channel call.
- */
-enum wiphy_flags {
- WIPHY_FLAG_CUSTOM_REGULATORY = BIT(0),
- WIPHY_FLAG_STRICT_REGULATORY = BIT(1),
- WIPHY_FLAG_DISABLE_BEACON_HINTS = BIT(2),
- WIPHY_FLAG_NETNS_OK = BIT(3),
- WIPHY_FLAG_PS_ON_BY_DEFAULT = BIT(4),
- WIPHY_FLAG_4ADDR_AP = BIT(5),
- WIPHY_FLAG_4ADDR_STATION = BIT(6),
- WIPHY_FLAG_CONTROL_PORT_PROTOCOL = BIT(7),
- WIPHY_FLAG_IBSS_RSN = BIT(8),
- WIPHY_FLAG_MESH_AUTH = BIT(10),
- WIPHY_FLAG_SUPPORTS_SCHED_SCAN = BIT(11),
- WIPHY_FLAG_ENFORCE_COMBINATIONS = BIT(12),
- WIPHY_FLAG_SUPPORTS_FW_ROAM = BIT(13),
- WIPHY_FLAG_AP_UAPSD = BIT(14),
- WIPHY_FLAG_SUPPORTS_TDLS = BIT(15),
- WIPHY_FLAG_TDLS_EXTERNAL_SETUP = BIT(16),
- WIPHY_FLAG_HAVE_AP_SME = BIT(17),
- WIPHY_FLAG_REPORTS_OBSS = BIT(18),
- WIPHY_FLAG_AP_PROBE_RESP_OFFLOAD = BIT(19),
- WIPHY_FLAG_OFFCHAN_TX = BIT(20),
- WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL = BIT(21),
-};
-
-/**
- * struct ieee80211_iface_limit - limit on certain interface types
- * @max: maximum number of interfaces of these types
- * @types: interface types (bits)
- */
-struct ieee80211_iface_limit {
- u16 max;
- u16 types;
-};
-
-/**
- * struct ieee80211_iface_combination - possible interface combination
- * @limits: limits for the given interface types
- * @n_limits: number of limitations
- * @num_different_channels: can use up to this many different channels
- * @max_interfaces: maximum number of interfaces in total allowed in this
- * group
- * @beacon_int_infra_match: In this combination, the beacon intervals
- * between infrastructure and AP types must match. This is required
- * only in special cases.
- *
- * These examples can be expressed as follows:
- *
- * Allow #STA <= 1, #AP <= 1, matching BI, channels = 1, 2 total:
- *
- * struct ieee80211_iface_limit limits1[] = {
- * { .max = 1, .types = BIT(NL80211_IFTYPE_STATION), },
- * { .max = 1, .types = BIT(NL80211_IFTYPE_AP}, },
- * };
- * struct ieee80211_iface_combination combination1 = {
- * .limits = limits1,
- * .n_limits = ARRAY_SIZE(limits1),
- * .max_interfaces = 2,
- * .beacon_int_infra_match = true,
- * };
- *
- *
- * Allow #{AP, P2P-GO} <= 8, channels = 1, 8 total:
- *
- * struct ieee80211_iface_limit limits2[] = {
- * { .max = 8, .types = BIT(NL80211_IFTYPE_AP) |
- * BIT(NL80211_IFTYPE_P2P_GO), },
- * };
- * struct ieee80211_iface_combination combination2 = {
- * .limits = limits2,
- * .n_limits = ARRAY_SIZE(limits2),
- * .max_interfaces = 8,
- * .num_different_channels = 1,
- * };
- *
- *
- * Allow #STA <= 1, #{P2P-client,P2P-GO} <= 3 on two channels, 4 total.
- * This allows for an infrastructure connection and three P2P connections.
- *
- * struct ieee80211_iface_limit limits3[] = {
- * { .max = 1, .types = BIT(NL80211_IFTYPE_STATION), },
- * { .max = 3, .types = BIT(NL80211_IFTYPE_P2P_GO) |
- * BIT(NL80211_IFTYPE_P2P_CLIENT), },
- * };
- * struct ieee80211_iface_combination combination3 = {
- * .limits = limits3,
- * .n_limits = ARRAY_SIZE(limits3),
- * .max_interfaces = 4,
- * .num_different_channels = 2,
- * };
- */
-struct ieee80211_iface_combination {
- const struct ieee80211_iface_limit *limits;
- u32 num_different_channels;
- u16 max_interfaces;
- u8 n_limits;
- bool beacon_int_infra_match;
-};
-
-struct mac_address {
- u8 addr[ETH_ALEN];
-};
-
-struct ieee80211_txrx_stypes {
- u16 tx, rx;
-};
-
-/**
- * enum wiphy_wowlan_support_flags - WoWLAN support flags
- * @WIPHY_WOWLAN_ANY: supports wakeup for the special "any"
- * trigger that keeps the device operating as-is and
- * wakes up the host on any activity, for example a
- * received packet that passed filtering; note that the
- * packet should be preserved in that case
- * @WIPHY_WOWLAN_MAGIC_PKT: supports wakeup on magic packet
- * (see nl80211.h)
- * @WIPHY_WOWLAN_DISCONNECT: supports wakeup on disconnect
- * @WIPHY_WOWLAN_SUPPORTS_GTK_REKEY: supports GTK rekeying while asleep
- * @WIPHY_WOWLAN_GTK_REKEY_FAILURE: supports wakeup on GTK rekey failure
- * @WIPHY_WOWLAN_EAP_IDENTITY_REQ: supports wakeup on EAP identity request
- * @WIPHY_WOWLAN_4WAY_HANDSHAKE: supports wakeup on 4-way handshake failure
- * @WIPHY_WOWLAN_RFKILL_RELEASE: supports wakeup on RF-kill release
- */
-enum wiphy_wowlan_support_flags {
- WIPHY_WOWLAN_ANY = BIT(0),
- WIPHY_WOWLAN_MAGIC_PKT = BIT(1),
- WIPHY_WOWLAN_DISCONNECT = BIT(2),
- WIPHY_WOWLAN_SUPPORTS_GTK_REKEY = BIT(3),
- WIPHY_WOWLAN_GTK_REKEY_FAILURE = BIT(4),
- WIPHY_WOWLAN_EAP_IDENTITY_REQ = BIT(5),
- WIPHY_WOWLAN_4WAY_HANDSHAKE = BIT(6),
- WIPHY_WOWLAN_RFKILL_RELEASE = BIT(7),
-};
-
-/**
- * struct wiphy_wowlan_support - WoWLAN support data
- * @flags: see &enum wiphy_wowlan_support_flags
- * @n_patterns: number of supported wakeup patterns
- * (see nl80211.h for the pattern definition)
- * @pattern_max_len: maximum length of each pattern
- * @pattern_min_len: minimum length of each pattern
- */
-struct wiphy_wowlan_support {
- u32 flags;
- int n_patterns;
- int pattern_max_len;
- int pattern_min_len;
-};
-
-/**
- * struct wiphy - wireless hardware description
- * @reg_notifier: the driver's regulatory notification callback,
- * note that if your driver uses wiphy_apply_custom_regulatory()
- * the reg_notifier's request can be passed as NULL
- * @regd: the driver's regulatory domain, if one was requested via
- * the regulatory_hint() API. This can be used by the driver
- * on the reg_notifier() if it chooses to ignore future
- * regulatory domain changes caused by other drivers.
- * @signal_type: signal type reported in &struct cfg80211_bss.
- * @cipher_suites: supported cipher suites
- * @n_cipher_suites: number of supported cipher suites
- * @retry_short: Retry limit for short frames (dot11ShortRetryLimit)
- * @retry_long: Retry limit for long frames (dot11LongRetryLimit)
- * @frag_threshold: Fragmentation threshold (dot11FragmentationThreshold);
- * -1 = fragmentation disabled, only odd values >= 256 used
- * @rts_threshold: RTS threshold (dot11RTSThreshold); -1 = RTS/CTS disabled
- * @_net: the network namespace this wiphy currently lives in
- * @perm_addr: permanent MAC address of this device
- * @addr_mask: If the device supports multiple MAC addresses by masking,
- * set this to a mask with variable bits set to 1, e.g. if the last
- * four bits are variable then set it to 00:...:00:0f. The actual
- * variable bits shall be determined by the interfaces added, with
- * interfaces not matching the mask being rejected to be brought up.
- * @n_addresses: number of addresses in @addresses.
- * @addresses: If the device has more than one address, set this pointer
- * to a list of addresses (6 bytes each). The first one will be used
- * by default for perm_addr. In this case, the mask should be set to
- * all-zeroes. In this case it is assumed that the device can handle
- * the same number of arbitrary MAC addresses.
- * @registered: protects ->resume and ->suspend sysfs callbacks against
- * unregister hardware
- * @debugfsdir: debugfs directory used for this wiphy, will be renamed
- * automatically on wiphy renames
- * @dev: (virtual) struct device for this wiphy
- * @registered: helps synchronize suspend/resume with wiphy unregister
- * @wext: wireless extension handlers
- * @priv: driver private data (sized according to wiphy_new() parameter)
- * @interface_modes: bitmask of interfaces types valid for this wiphy,
- * must be set by driver
- * @iface_combinations: Valid interface combinations array, should not
- * list single interface types.
- * @n_iface_combinations: number of entries in @iface_combinations array.
- * @software_iftypes: bitmask of software interface types, these are not
- * subject to any restrictions since they are purely managed in SW.
- * @flags: wiphy flags, see &enum wiphy_flags
- * @features: features advertised to nl80211, see &enum nl80211_feature_flags.
- * @bss_priv_size: each BSS struct has private data allocated with it,
- * this variable determines its size
- * @max_scan_ssids: maximum number of SSIDs the device can scan for in
- * any given scan
- * @max_sched_scan_ssids: maximum number of SSIDs the device can scan
- * for in any given scheduled scan
- * @max_match_sets: maximum number of match sets the device can handle
- * when performing a scheduled scan, 0 if filtering is not
- * supported.
- * @max_scan_ie_len: maximum length of user-controlled IEs device can
- * add to probe request frames transmitted during a scan, must not
- * include fixed IEs like supported rates
- * @max_sched_scan_ie_len: same as max_scan_ie_len, but for scheduled
- * scans
- * @coverage_class: current coverage class
- * @fw_version: firmware version for ethtool reporting
- * @hw_version: hardware version for ethtool reporting
- * @max_num_pmkids: maximum number of PMKIDs supported by device
- * @privid: a pointer that drivers can use to identify if an arbitrary
- * wiphy is theirs, e.g. in global notifiers
- * @bands: information about bands/channels supported by this device
- *
- * @mgmt_stypes: bitmasks of frame subtypes that can be subscribed to or
- * transmitted through nl80211, points to an array indexed by interface
- * type
- *
- * @available_antennas_tx: bitmap of antennas which are available to be
- * configured as TX antennas. Antenna configuration commands will be
- * rejected unless this or @available_antennas_rx is set.
- *
- * @available_antennas_rx: bitmap of antennas which are available to be
- * configured as RX antennas. Antenna configuration commands will be
- * rejected unless this or @available_antennas_tx is set.
- *
- * @probe_resp_offload:
- * Bitmap of supported protocols for probe response offloading.
- * See &enum nl80211_probe_resp_offload_support_attr. Only valid
- * when the wiphy flag @WIPHY_FLAG_AP_PROBE_RESP_OFFLOAD is set.
- *
- * @max_remain_on_channel_duration: Maximum time a remain-on-channel operation
- * may request, if implemented.
- *
- * @wowlan: WoWLAN support information
- *
- * @ap_sme_capa: AP SME capabilities, flags from &enum nl80211_ap_sme_features.
- * @ht_capa_mod_mask: Specify what ht_cap values can be over-ridden.
- * If null, then none can be over-ridden.
- */
-struct wiphy {
- /* assign these fields before you register the wiphy */
-
- /* permanent MAC address(es) */
- u8 perm_addr[ETH_ALEN];
- u8 addr_mask[ETH_ALEN];
-
- struct mac_address *addresses;
-
- const struct ieee80211_txrx_stypes *mgmt_stypes;
-
- const struct ieee80211_iface_combination *iface_combinations;
- int n_iface_combinations;
- u16 software_iftypes;
-
- u16 n_addresses;
-
- /* Supported interface modes, OR together BIT(NL80211_IFTYPE_...) */
- u16 interface_modes;
-
- u32 flags, features;
-
- u32 ap_sme_capa;
-
- enum cfg80211_signal_type signal_type;
-
- int bss_priv_size;
- u8 max_scan_ssids;
- u8 max_sched_scan_ssids;
- u8 max_match_sets;
- u16 max_scan_ie_len;
- u16 max_sched_scan_ie_len;
-
- int n_cipher_suites;
- const u32 *cipher_suites;
-
- u8 retry_short;
- u8 retry_long;
- u32 frag_threshold;
- u32 rts_threshold;
- u8 coverage_class;
-
- char fw_version[ETHTOOL_BUSINFO_LEN];
- u32 hw_version;
-
- struct wiphy_wowlan_support wowlan;
-
- u16 max_remain_on_channel_duration;
-
- u8 max_num_pmkids;
-
- u32 available_antennas_tx;
- u32 available_antennas_rx;
-
- /*
- * Bitmap of supported protocols for probe response offloading
- * see &enum nl80211_probe_resp_offload_support_attr. Only valid
- * when the wiphy flag @WIPHY_FLAG_AP_PROBE_RESP_OFFLOAD is set.
- */
- u32 probe_resp_offload;
-
- /* If multiple wiphys are registered and you're handed e.g.
- * a regular netdev with assigned ieee80211_ptr, you won't
- * know whether it points to a wiphy your driver has registered
- * or not. Assign this to something global to your driver to
- * help determine whether you own this wiphy or not. */
- const void *privid;
-
- struct ieee80211_supported_band *bands[IEEE80211_NUM_BANDS];
-
- /* Lets us get back the wiphy on the callback */
- int (*reg_notifier)(struct wiphy *wiphy,
- struct regulatory_request *request);
-
- /* fields below are read-only, assigned by cfg80211 */
-
- const struct ieee80211_regdomain *regd;
-
- /* the item in /sys/class/ieee80211/ points to this,
- * you need use set_wiphy_dev() (see below) */
- struct device dev;
-
- /* protects ->resume, ->suspend sysfs callbacks against unregister hw */
- bool registered;
-
- /* dir in debugfs: ieee80211/<wiphyname> */
- struct dentry *debugfsdir;
-
- const struct ieee80211_ht_cap *ht_capa_mod_mask;
-
-#ifdef CONFIG_NET_NS
- /* the network namespace this phy lives in currently */
- struct net *_net;
-#endif
-
-#ifdef CONFIG_CFG80211_WEXT
- const struct iw_handler_def *wext;
-#endif
-
- char priv[0] __attribute__((__aligned__(NETDEV_ALIGN)));
-};
-
-static inline struct net *wiphy_net(struct wiphy *wiphy)
-{
- return read_pnet(&wiphy->_net);
-}
-
-static inline void wiphy_net_set(struct wiphy *wiphy, struct net *net)
-{
- write_pnet(&wiphy->_net, net);
-}
-
-/**
- * wiphy_priv - return priv from wiphy
- *
- * @wiphy: the wiphy whose priv pointer to return
- */
-static inline void *wiphy_priv(struct wiphy *wiphy)
-{
- BUG_ON(!wiphy);
- return &wiphy->priv;
-}
-
-/**
- * priv_to_wiphy - return the wiphy containing the priv
- *
- * @priv: a pointer previously returned by wiphy_priv
- */
-static inline struct wiphy *priv_to_wiphy(void *priv)
-{
- BUG_ON(!priv);
- return container_of(priv, struct wiphy, priv);
-}
-
-/**
- * set_wiphy_dev - set device pointer for wiphy
- *
- * @wiphy: The wiphy whose device to bind
- * @dev: The device to parent it to
- */
-static inline void set_wiphy_dev(struct wiphy *wiphy, struct device *dev)
-{
- wiphy->dev.parent = dev;
-}
-
-/**
- * wiphy_dev - get wiphy dev pointer
- *
- * @wiphy: The wiphy whose device struct to look up
- */
-static inline struct device *wiphy_dev(struct wiphy *wiphy)
-{
- return wiphy->dev.parent;
-}
-
-/**
- * wiphy_name - get wiphy name
- *
- * @wiphy: The wiphy whose name to return
- */
-static inline const char *wiphy_name(const struct wiphy *wiphy)
-{
- return dev_name(&wiphy->dev);
-}
-
-/**
- * wiphy_new - create a new wiphy for use with cfg80211
- *
- * @ops: The configuration operations for this device
- * @sizeof_priv: The size of the private area to allocate
- *
- * Create a new wiphy and associate the given operations with it.
- * @sizeof_priv bytes are allocated for private use.
- *
- * The returned pointer must be assigned to each netdev's
- * ieee80211_ptr for proper operation.
- */
-struct wiphy *wiphy_new(const struct cfg80211_ops *ops, int sizeof_priv);
-
-/**
- * wiphy_register - register a wiphy with cfg80211
- *
- * @wiphy: The wiphy to register.
- *
- * Returns a non-negative wiphy index or a negative error code.
- */
-extern int wiphy_register(struct wiphy *wiphy);
-
-/**
- * wiphy_unregister - deregister a wiphy from cfg80211
- *
- * @wiphy: The wiphy to unregister.
- *
- * After this call, no more requests can be made with this priv
- * pointer, but the call may sleep to wait for an outstanding
- * request that is being handled.
- */
-extern void wiphy_unregister(struct wiphy *wiphy);
-
-/**
- * wiphy_free - free wiphy
- *
- * @wiphy: The wiphy to free
- */
-extern void wiphy_free(struct wiphy *wiphy);
-
-/* internal structs */
-struct cfg80211_conn;
-struct cfg80211_internal_bss;
-struct cfg80211_cached_keys;
-
-/**
- * struct wireless_dev - wireless per-netdev state
- *
- * This structure must be allocated by the driver/stack
- * that uses the ieee80211_ptr field in struct net_device
- * (this is intentional so it can be allocated along with
- * the netdev.)
- *
- * @wiphy: pointer to hardware description
- * @iftype: interface type
- * @list: (private) Used to collect the interfaces
- * @netdev: (private) Used to reference back to the netdev
- * @current_bss: (private) Used by the internal configuration code
- * @channel: (private) Used by the internal configuration code to track
- * user-set AP, monitor and WDS channels for wireless extensions
- * @bssid: (private) Used by the internal configuration code
- * @ssid: (private) Used by the internal configuration code
- * @ssid_len: (private) Used by the internal configuration code
- * @mesh_id_len: (private) Used by the internal configuration code
- * @mesh_id_up_len: (private) Used by the internal configuration code
- * @wext: (private) Used by the internal wireless extensions compat code
- * @use_4addr: indicates 4addr mode is used on this interface, must be
- * set by driver (if supported) on add_interface BEFORE registering the
- * netdev and may otherwise be used by driver read-only, will be update
- * by cfg80211 on change_interface
- * @mgmt_registrations: list of registrations for management frames
- * @mgmt_registrations_lock: lock for the list
- * @mtx: mutex used to lock data in this struct
- * @cleanup_work: work struct used for cleanup that can't be done directly
- * @beacon_interval: beacon interval used on this device for transmitting
- * beacons, 0 when not valid
- */
-struct wireless_dev {
- struct wiphy *wiphy;
- enum nl80211_iftype iftype;
-
- /* the remainder of this struct should be private to cfg80211 */
- struct list_head list;
- struct net_device *netdev;
-
- struct list_head mgmt_registrations;
- spinlock_t mgmt_registrations_lock;
-
- struct mutex mtx;
-
- struct work_struct cleanup_work;
-
- bool use_4addr;
-
- /* currently used for IBSS and SME - might be rearranged later */
- u8 ssid[IEEE80211_MAX_SSID_LEN];
- u8 ssid_len, mesh_id_len, mesh_id_up_len;
- enum {
- CFG80211_SME_IDLE,
- CFG80211_SME_CONNECTING,
- CFG80211_SME_CONNECTED,
- } sme_state;
- struct cfg80211_conn *conn;
- struct cfg80211_cached_keys *connect_keys;
-
- struct list_head event_list;
- spinlock_t event_lock;
-
- struct cfg80211_internal_bss *current_bss; /* associated / joined */
- struct ieee80211_channel *channel;
-
- bool ps;
- int ps_timeout;
-
- int beacon_interval;
-
- u32 ap_unexpected_nlpid;
-
-#ifdef CONFIG_CFG80211_WEXT
- /* wext data */
- struct {
- struct cfg80211_ibss_params ibss;
- struct cfg80211_connect_params connect;
- struct cfg80211_cached_keys *keys;
- u8 *ie;
- size_t ie_len;
- u8 bssid[ETH_ALEN], prev_bssid[ETH_ALEN];
- u8 ssid[IEEE80211_MAX_SSID_LEN];
- s8 default_key, default_mgmt_key;
- bool prev_bssid_valid;
- } wext;
-#endif
-};
-
-/**
- * wdev_priv - return wiphy priv from wireless_dev
- *
- * @wdev: The wireless device whose wiphy's priv pointer to return
- */
-static inline void *wdev_priv(struct wireless_dev *wdev)
-{
- BUG_ON(!wdev);
- return wiphy_priv(wdev->wiphy);
-}
-
-/**
- * DOC: Utility functions
- *
- * cfg80211 offers a number of utility functions that can be useful.
- */
-
-/**
- * ieee80211_channel_to_frequency - convert channel number to frequency
- * @chan: channel number
- * @band: band, necessary due to channel number overlap
- */
-extern int ieee80211_channel_to_frequency(int chan, enum ieee80211_band band);
-
-/**
- * ieee80211_frequency_to_channel - convert frequency to channel number
- * @freq: center frequency
- */
-extern int ieee80211_frequency_to_channel(int freq);
-
-/*
- * Name indirection necessary because the ieee80211 code also has
- * a function named "ieee80211_get_channel", so if you include
- * cfg80211's header file you get cfg80211's version, if you try
- * to include both header files you'll (rightfully!) get a symbol
- * clash.
- */
-extern struct ieee80211_channel *__ieee80211_get_channel(struct wiphy *wiphy,
- int freq);
-/**
- * ieee80211_get_channel - get channel struct from wiphy for specified frequency
- * @wiphy: the struct wiphy to get the channel for
- * @freq: the center frequency of the channel
- */
-static inline struct ieee80211_channel *
-ieee80211_get_channel(struct wiphy *wiphy, int freq)
-{
- return __ieee80211_get_channel(wiphy, freq);
-}
-
-/**
- * ieee80211_get_response_rate - get basic rate for a given rate
- *
- * @sband: the band to look for rates in
- * @basic_rates: bitmap of basic rates
- * @bitrate: the bitrate for which to find the basic rate
- *
- * This function returns the basic rate corresponding to a given
- * bitrate, that is the next lower bitrate contained in the basic
- * rate map, which is, for this function, given as a bitmap of
- * indices of rates in the band's bitrate table.
- */
-struct ieee80211_rate *
-ieee80211_get_response_rate(struct ieee80211_supported_band *sband,
- u32 basic_rates, int bitrate);
-
-/*
- * Radiotap parsing functions -- for controlled injection support
- *
- * Implemented in net/wireless/radiotap.c
- * Documentation in Documentation/networking/radiotap-headers.txt
- */
-
-struct radiotap_align_size {
- uint8_t align:4, size:4;
-};
-
-struct ieee80211_radiotap_namespace {
- const struct radiotap_align_size *align_size;
- int n_bits;
- uint32_t oui;
- uint8_t subns;
-};
-
-struct ieee80211_radiotap_vendor_namespaces {
- const struct ieee80211_radiotap_namespace *ns;
- int n_ns;
-};
-
-/**
- * struct ieee80211_radiotap_iterator - tracks walk thru present radiotap args
- * @this_arg_index: index of current arg, valid after each successful call
- * to ieee80211_radiotap_iterator_next()
- * @this_arg: pointer to current radiotap arg; it is valid after each
- * call to ieee80211_radiotap_iterator_next() but also after
- * ieee80211_radiotap_iterator_init() where it will point to
- * the beginning of the actual data portion
- * @this_arg_size: length of the current arg, for convenience
- * @current_namespace: pointer to the current namespace definition
- * (or internally %NULL if the current namespace is unknown)
- * @is_radiotap_ns: indicates whether the current namespace is the default
- * radiotap namespace or not
- *
- * @_rtheader: pointer to the radiotap header we are walking through
- * @_max_length: length of radiotap header in cpu byte ordering
- * @_arg_index: next argument index
- * @_arg: next argument pointer
- * @_next_bitmap: internal pointer to next present u32
- * @_bitmap_shifter: internal shifter for curr u32 bitmap, b0 set == arg present
- * @_vns: vendor namespace definitions
- * @_next_ns_data: beginning of the next namespace's data
- * @_reset_on_ext: internal; reset the arg index to 0 when going to the
- * next bitmap word
- *
- * Describes the radiotap parser state. Fields prefixed with an underscore
- * must not be used by users of the parser, only by the parser internally.
- */
-
-struct ieee80211_radiotap_iterator {
- struct ieee80211_radiotap_header *_rtheader;
- const struct ieee80211_radiotap_vendor_namespaces *_vns;
- const struct ieee80211_radiotap_namespace *current_namespace;
-
- unsigned char *_arg, *_next_ns_data;
- __le32 *_next_bitmap;
-
- unsigned char *this_arg;
- int this_arg_index;
- int this_arg_size;
-
- int is_radiotap_ns;
-
- int _max_length;
- int _arg_index;
- uint32_t _bitmap_shifter;
- int _reset_on_ext;
-};
-
-extern int ieee80211_radiotap_iterator_init(
- struct ieee80211_radiotap_iterator *iterator,
- struct ieee80211_radiotap_header *radiotap_header,
- int max_length, const struct ieee80211_radiotap_vendor_namespaces *vns);
-
-extern int ieee80211_radiotap_iterator_next(
- struct ieee80211_radiotap_iterator *iterator);
-
-
-extern const unsigned char rfc1042_header[6];
-extern const unsigned char bridge_tunnel_header[6];
-
-/**
- * ieee80211_get_hdrlen_from_skb - get header length from data
- *
- * Given an skb with a raw 802.11 header at the data pointer this function
- * returns the 802.11 header length in bytes (not including encryption
- * headers). If the data in the sk_buff is too short to contain a valid 802.11
- * header the function returns 0.
- *
- * @skb: the frame
- */
-unsigned int ieee80211_get_hdrlen_from_skb(const struct sk_buff *skb);
-
-/**
- * ieee80211_hdrlen - get header length in bytes from frame control
- * @fc: frame control field in little-endian format
- */
-unsigned int __attribute_const__ ieee80211_hdrlen(__le16 fc);
-
-/**
- * DOC: Data path helpers
- *
- * In addition to generic utilities, cfg80211 also offers
- * functions that help implement the data path for devices
- * that do not do the 802.11/802.3 conversion on the device.
- */
-
-/**
- * ieee80211_data_to_8023 - convert an 802.11 data frame to 802.3
- * @skb: the 802.11 data frame
- * @addr: the device MAC address
- * @iftype: the virtual interface type
- */
-int ieee80211_data_to_8023(struct sk_buff *skb, const u8 *addr,
- enum nl80211_iftype iftype);
-
-/**
- * ieee80211_data_from_8023 - convert an 802.3 frame to 802.11
- * @skb: the 802.3 frame
- * @addr: the device MAC address
- * @iftype: the virtual interface type
- * @bssid: the network bssid (used only for iftype STATION and ADHOC)
- * @qos: build 802.11 QoS data frame
- */
-int ieee80211_data_from_8023(struct sk_buff *skb, const u8 *addr,
- enum nl80211_iftype iftype, u8 *bssid, bool qos);
-
-/**
- * ieee80211_amsdu_to_8023s - decode an IEEE 802.11n A-MSDU frame
- *
- * Decode an IEEE 802.11n A-MSDU frame and convert it to a list of
- * 802.3 frames. The @list will be empty if the decode fails. The
- * @skb is consumed after the function returns.
- *
- * @skb: The input IEEE 802.11n A-MSDU frame.
- * @list: The output list of 802.3 frames. It must be allocated and
- * initialized by by the caller.
- * @addr: The device MAC address.
- * @iftype: The device interface type.
- * @extra_headroom: The hardware extra headroom for SKBs in the @list.
- * @has_80211_header: Set it true if SKB is with IEEE 802.11 header.
- */
-void ieee80211_amsdu_to_8023s(struct sk_buff *skb, struct sk_buff_head *list,
- const u8 *addr, enum nl80211_iftype iftype,
- const unsigned int extra_headroom,
- bool has_80211_header);
-
-/**
- * cfg80211_classify8021d - determine the 802.1p/1d tag for a data frame
- * @skb: the data frame
- */
-unsigned int cfg80211_classify8021d(struct sk_buff *skb);
-
-/**
- * cfg80211_find_ie - find information element in data
- *
- * @eid: element ID
- * @ies: data consisting of IEs
- * @len: length of data
- *
- * This function will return %NULL if the element ID could
- * not be found or if the element is invalid (claims to be
- * longer than the given data), or a pointer to the first byte
- * of the requested element, that is the byte containing the
- * element ID. There are no checks on the element length
- * other than having to fit into the given data.
- */
-const u8 *cfg80211_find_ie(u8 eid, const u8 *ies, int len);
-
-/**
- * cfg80211_find_vendor_ie - find vendor specific information element in data
- *
- * @oui: vendor OUI
- * @oui_type: vendor-specific OUI type
- * @ies: data consisting of IEs
- * @len: length of data
- *
- * This function will return %NULL if the vendor specific element ID
- * could not be found or if the element is invalid (claims to be
- * longer than the given data), or a pointer to the first byte
- * of the requested element, that is the byte containing the
- * element ID. There are no checks on the element length
- * other than having to fit into the given data.
- */
-const u8 *cfg80211_find_vendor_ie(unsigned int oui, u8 oui_type,
- const u8 *ies, int len);
-
-/**
- * DOC: Regulatory enforcement infrastructure
- *
- * TODO
- */
-
-/**
- * regulatory_hint - driver hint to the wireless core a regulatory domain
- * @wiphy: the wireless device giving the hint (used only for reporting
- * conflicts)
- * @alpha2: the ISO/IEC 3166 alpha2 the driver claims its regulatory domain
- * should be in. If @rd is set this should be NULL. Note that if you
- * set this to NULL you should still set rd->alpha2 to some accepted
- * alpha2.
- *
- * Wireless drivers can use this function to hint to the wireless core
- * what it believes should be the current regulatory domain by
- * giving it an ISO/IEC 3166 alpha2 country code it knows its regulatory
- * domain should be in or by providing a completely build regulatory domain.
- * If the driver provides an ISO/IEC 3166 alpha2 userspace will be queried
- * for a regulatory domain structure for the respective country.
- *
- * The wiphy must have been registered to cfg80211 prior to this call.
- * For cfg80211 drivers this means you must first use wiphy_register(),
- * for mac80211 drivers you must first use ieee80211_register_hw().
- *
- * Drivers should check the return value, its possible you can get
- * an -ENOMEM.
- */
-extern int regulatory_hint(struct wiphy *wiphy, const char *alpha2);
-
-/**
- * wiphy_apply_custom_regulatory - apply a custom driver regulatory domain
- * @wiphy: the wireless device we want to process the regulatory domain on
- * @regd: the custom regulatory domain to use for this wiphy
- *
- * Drivers can sometimes have custom regulatory domains which do not apply
- * to a specific country. Drivers can use this to apply such custom regulatory
- * domains. This routine must be called prior to wiphy registration. The
- * custom regulatory domain will be trusted completely and as such previous
- * default channel settings will be disregarded. If no rule is found for a
- * channel on the regulatory domain the channel will be disabled.
- */
-extern void wiphy_apply_custom_regulatory(
- struct wiphy *wiphy,
- const struct ieee80211_regdomain *regd);
-
-/**
- * freq_reg_info - get regulatory information for the given frequency
- * @wiphy: the wiphy for which we want to process this rule for
- * @center_freq: Frequency in KHz for which we want regulatory information for
- * @desired_bw_khz: the desired max bandwidth you want to use per
- * channel. Note that this is still 20 MHz if you want to use HT40
- * as HT40 makes use of two channels for its 40 MHz width bandwidth.
- * If set to 0 we'll assume you want the standard 20 MHz.
- * @reg_rule: the regulatory rule which we have for this frequency
- *
- * Use this function to get the regulatory rule for a specific frequency on
- * a given wireless device. If the device has a specific regulatory domain
- * it wants to follow we respect that unless a country IE has been received
- * and processed already.
- *
- * Returns 0 if it was able to find a valid regulatory rule which does
- * apply to the given center_freq otherwise it returns non-zero. It will
- * also return -ERANGE if we determine the given center_freq does not even have
- * a regulatory rule for a frequency range in the center_freq's band. See
- * freq_in_rule_band() for our current definition of a band -- this is purely
- * subjective and right now its 802.11 specific.
- */
-extern int freq_reg_info(struct wiphy *wiphy,
- u32 center_freq,
- u32 desired_bw_khz,
- const struct ieee80211_reg_rule **reg_rule);
-
-/*
- * callbacks for asynchronous cfg80211 methods, notification
- * functions and BSS handling helpers
- */
-
-/**
- * cfg80211_scan_done - notify that scan finished
- *
- * @request: the corresponding scan request
- * @aborted: set to true if the scan was aborted for any reason,
- * userspace will be notified of that
- */
-void cfg80211_scan_done(struct cfg80211_scan_request *request, bool aborted);
-
-/**
- * cfg80211_sched_scan_results - notify that new scan results are available
- *
- * @wiphy: the wiphy which got scheduled scan results
- */
-void cfg80211_sched_scan_results(struct wiphy *wiphy);
-
-/**
- * cfg80211_sched_scan_stopped - notify that the scheduled scan has stopped
- *
- * @wiphy: the wiphy on which the scheduled scan stopped
- *
- * The driver can call this function to inform cfg80211 that the
- * scheduled scan had to be stopped, for whatever reason. The driver
- * is then called back via the sched_scan_stop operation when done.
- */
-void cfg80211_sched_scan_stopped(struct wiphy *wiphy);
-
-/**
- * cfg80211_inform_bss_frame - inform cfg80211 of a received BSS frame
- *
- * @wiphy: the wiphy reporting the BSS
- * @channel: The channel the frame was received on
- * @mgmt: the management frame (probe response or beacon)
- * @len: length of the management frame
- * @signal: the signal strength, type depends on the wiphy's signal_type
- * @gfp: context flags
- *
- * This informs cfg80211 that BSS information was found and
- * the BSS should be updated/added.
- *
- * NOTE: Returns a referenced struct, must be released with cfg80211_put_bss()!
- */
-struct cfg80211_bss * __must_check
-cfg80211_inform_bss_frame(struct wiphy *wiphy,
- struct ieee80211_channel *channel,
- struct ieee80211_mgmt *mgmt, size_t len,
- s32 signal, gfp_t gfp);
-
-/**
- * cfg80211_inform_bss - inform cfg80211 of a new BSS
- *
- * @wiphy: the wiphy reporting the BSS
- * @channel: The channel the frame was received on
- * @bssid: the BSSID of the BSS
- * @tsf: the TSF sent by the peer in the beacon/probe response (or 0)
- * @capability: the capability field sent by the peer
- * @beacon_interval: the beacon interval announced by the peer
- * @ie: additional IEs sent by the peer
- * @ielen: length of the additional IEs
- * @signal: the signal strength, type depends on the wiphy's signal_type
- * @gfp: context flags
- *
- * This informs cfg80211 that BSS information was found and
- * the BSS should be updated/added.
- *
- * NOTE: Returns a referenced struct, must be released with cfg80211_put_bss()!
- */
-struct cfg80211_bss * __must_check
-cfg80211_inform_bss(struct wiphy *wiphy,
- struct ieee80211_channel *channel,
- const u8 *bssid, u64 tsf, u16 capability,
- u16 beacon_interval, const u8 *ie, size_t ielen,
- s32 signal, gfp_t gfp);
-
-struct cfg80211_bss *cfg80211_get_bss(struct wiphy *wiphy,
- struct ieee80211_channel *channel,
- const u8 *bssid,
- const u8 *ssid, size_t ssid_len,
- u16 capa_mask, u16 capa_val);
-static inline struct cfg80211_bss *
-cfg80211_get_ibss(struct wiphy *wiphy,
- struct ieee80211_channel *channel,
- const u8 *ssid, size_t ssid_len)
-{
- return cfg80211_get_bss(wiphy, channel, NULL, ssid, ssid_len,
- WLAN_CAPABILITY_IBSS, WLAN_CAPABILITY_IBSS);
-}
-
-struct cfg80211_bss *cfg80211_get_mesh(struct wiphy *wiphy,
- struct ieee80211_channel *channel,
- const u8 *meshid, size_t meshidlen,
- const u8 *meshcfg);
-/**
- * cfg80211_ref_bss - reference BSS struct
- * @bss: the BSS struct to reference
- *
- * Increments the refcount of the given BSS struct.
- */
-void cfg80211_ref_bss(struct cfg80211_bss *bss);
-
-/**
- * cfg80211_put_bss - unref BSS struct
- * @bss: the BSS struct
- *
- * Decrements the refcount of the given BSS struct.
- */
-void cfg80211_put_bss(struct cfg80211_bss *bss);
-
-/**
- * cfg80211_unlink_bss - unlink BSS from internal data structures
- * @wiphy: the wiphy
- * @bss: the bss to remove
- *
- * This function removes the given BSS from the internal data structures
- * thereby making it no longer show up in scan results etc. Use this
- * function when you detect a BSS is gone. Normally BSSes will also time
- * out, so it is not necessary to use this function at all.
- */
-void cfg80211_unlink_bss(struct wiphy *wiphy, struct cfg80211_bss *bss);
-
-/**
- * cfg80211_send_rx_auth - notification of processed authentication
- * @dev: network device
- * @buf: authentication frame (header + body)
- * @len: length of the frame data
- *
- * This function is called whenever an authentication has been processed in
- * station mode. The driver is required to call either this function or
- * cfg80211_send_auth_timeout() to indicate the result of cfg80211_ops::auth()
- * call. This function may sleep.
- */
-void cfg80211_send_rx_auth(struct net_device *dev, const u8 *buf, size_t len);
-
-/**
- * cfg80211_send_auth_timeout - notification of timed out authentication
- * @dev: network device
- * @addr: The MAC address of the device with which the authentication timed out
- *
- * This function may sleep.
- */
-void cfg80211_send_auth_timeout(struct net_device *dev, const u8 *addr);
-
-/**
- * cfg80211_send_rx_assoc - notification of processed association
- * @dev: network device
- * @bss: the BSS struct association was requested for, the struct reference
- * is owned by cfg80211 after this call
- * @buf: (re)association response frame (header + body)
- * @len: length of the frame data
- *
- * This function is called whenever a (re)association response has been
- * processed in station mode. The driver is required to call either this
- * function or cfg80211_send_assoc_timeout() to indicate the result of
- * cfg80211_ops::assoc() call. This function may sleep.
- */
-void cfg80211_send_rx_assoc(struct net_device *dev, struct cfg80211_bss *bss,
- const u8 *buf, size_t len);
-
-/**
- * cfg80211_send_assoc_timeout - notification of timed out association
- * @dev: network device
- * @addr: The MAC address of the device with which the association timed out
- *
- * This function may sleep.
- */
-void cfg80211_send_assoc_timeout(struct net_device *dev, const u8 *addr);
-
-/**
- * cfg80211_send_deauth - notification of processed deauthentication
- * @dev: network device
- * @buf: deauthentication frame (header + body)
- * @len: length of the frame data
- *
- * This function is called whenever deauthentication has been processed in
- * station mode. This includes both received deauthentication frames and
- * locally generated ones. This function may sleep.
- */
-void cfg80211_send_deauth(struct net_device *dev, const u8 *buf, size_t len);
-
-/**
- * __cfg80211_send_deauth - notification of processed deauthentication
- * @dev: network device
- * @buf: deauthentication frame (header + body)
- * @len: length of the frame data
- *
- * Like cfg80211_send_deauth(), but doesn't take the wdev lock.
- */
-void __cfg80211_send_deauth(struct net_device *dev, const u8 *buf, size_t len);
-
-/**
- * cfg80211_send_disassoc - notification of processed disassociation
- * @dev: network device
- * @buf: disassociation response frame (header + body)
- * @len: length of the frame data
- *
- * This function is called whenever disassociation has been processed in
- * station mode. This includes both received disassociation frames and locally
- * generated ones. This function may sleep.
- */
-void cfg80211_send_disassoc(struct net_device *dev, const u8 *buf, size_t len);
-
-/**
- * __cfg80211_send_disassoc - notification of processed disassociation
- * @dev: network device
- * @buf: disassociation response frame (header + body)
- * @len: length of the frame data
- *
- * Like cfg80211_send_disassoc(), but doesn't take the wdev lock.
- */
-void __cfg80211_send_disassoc(struct net_device *dev, const u8 *buf,
- size_t len);
-
-/**
- * cfg80211_send_unprot_deauth - notification of unprotected deauthentication
- * @dev: network device
- * @buf: deauthentication frame (header + body)
- * @len: length of the frame data
- *
- * This function is called whenever a received Deauthentication frame has been
- * dropped in station mode because of MFP being used but the Deauthentication
- * frame was not protected. This function may sleep.
- */
-void cfg80211_send_unprot_deauth(struct net_device *dev, const u8 *buf,
- size_t len);
-
-/**
- * cfg80211_send_unprot_disassoc - notification of unprotected disassociation
- * @dev: network device
- * @buf: disassociation frame (header + body)
- * @len: length of the frame data
- *
- * This function is called whenever a received Disassociation frame has been
- * dropped in station mode because of MFP being used but the Disassociation
- * frame was not protected. This function may sleep.
- */
-void cfg80211_send_unprot_disassoc(struct net_device *dev, const u8 *buf,
- size_t len);
-
-/**
- * cfg80211_michael_mic_failure - notification of Michael MIC failure (TKIP)
- * @dev: network device
- * @addr: The source MAC address of the frame
- * @key_type: The key type that the received frame used
- * @key_id: Key identifier (0..3). Can be -1 if missing.
- * @tsc: The TSC value of the frame that generated the MIC failure (6 octets)
- * @gfp: allocation flags
- *
- * This function is called whenever the local MAC detects a MIC failure in a
- * received frame. This matches with MLME-MICHAELMICFAILURE.indication()
- * primitive.
- */
-void cfg80211_michael_mic_failure(struct net_device *dev, const u8 *addr,
- enum nl80211_key_type key_type, int key_id,
- const u8 *tsc, gfp_t gfp);
-
-/**
- * cfg80211_ibss_joined - notify cfg80211 that device joined an IBSS
- *
- * @dev: network device
- * @bssid: the BSSID of the IBSS joined
- * @gfp: allocation flags
- *
- * This function notifies cfg80211 that the device joined an IBSS or
- * switched to a different BSSID. Before this function can be called,
- * either a beacon has to have been received from the IBSS, or one of
- * the cfg80211_inform_bss{,_frame} functions must have been called
- * with the locally generated beacon -- this guarantees that there is
- * always a scan result for this IBSS. cfg80211 will handle the rest.
- */
-void cfg80211_ibss_joined(struct net_device *dev, const u8 *bssid, gfp_t gfp);
-
-/**
- * cfg80211_notify_new_candidate - notify cfg80211 of a new mesh peer candidate
- *
- * @dev: network device
- * @macaddr: the MAC address of the new candidate
- * @ie: information elements advertised by the peer candidate
- * @ie_len: lenght of the information elements buffer
- * @gfp: allocation flags
- *
- * This function notifies cfg80211 that the mesh peer candidate has been
- * detected, most likely via a beacon or, less likely, via a probe response.
- * cfg80211 then sends a notification to userspace.
- */
-void cfg80211_notify_new_peer_candidate(struct net_device *dev,
- const u8 *macaddr, const u8 *ie, u8 ie_len, gfp_t gfp);
-
-/**
- * DOC: RFkill integration
- *
- * RFkill integration in cfg80211 is almost invisible to drivers,
- * as cfg80211 automatically registers an rfkill instance for each
- * wireless device it knows about. Soft kill is also translated
- * into disconnecting and turning all interfaces off, drivers are
- * expected to turn off the device when all interfaces are down.
- *
- * However, devices may have a hard RFkill line, in which case they
- * also need to interact with the rfkill subsystem, via cfg80211.
- * They can do this with a few helper functions documented here.
- */
-
-/**
- * wiphy_rfkill_set_hw_state - notify cfg80211 about hw block state
- * @wiphy: the wiphy
- * @blocked: block status
- */
-void wiphy_rfkill_set_hw_state(struct wiphy *wiphy, bool blocked);
-
-/**
- * wiphy_rfkill_start_polling - start polling rfkill
- * @wiphy: the wiphy
- */
-void wiphy_rfkill_start_polling(struct wiphy *wiphy);
-
-/**
- * wiphy_rfkill_stop_polling - stop polling rfkill
- * @wiphy: the wiphy
- */
-void wiphy_rfkill_stop_polling(struct wiphy *wiphy);
-
-#ifdef CONFIG_NL80211_TESTMODE
-/**
- * DOC: Test mode
- *
- * Test mode is a set of utility functions to allow drivers to
- * interact with driver-specific tools to aid, for instance,
- * factory programming.
- *
- * This chapter describes how drivers interact with it, for more
- * information see the nl80211 book's chapter on it.
- */
-
-/**
- * cfg80211_testmode_alloc_reply_skb - allocate testmode reply
- * @wiphy: the wiphy
- * @approxlen: an upper bound of the length of the data that will
- * be put into the skb
- *
- * This function allocates and pre-fills an skb for a reply to
- * the testmode command. Since it is intended for a reply, calling
- * it outside of the @testmode_cmd operation is invalid.
- *
- * The returned skb (or %NULL if any errors happen) is pre-filled
- * with the wiphy index and set up in a way that any data that is
- * put into the skb (with skb_put(), nla_put() or similar) will end
- * up being within the %NL80211_ATTR_TESTDATA attribute, so all that
- * needs to be done with the skb is adding data for the corresponding
- * userspace tool which can then read that data out of the testdata
- * attribute. You must not modify the skb in any other way.
- *
- * When done, call cfg80211_testmode_reply() with the skb and return
- * its error code as the result of the @testmode_cmd operation.
- */
-struct sk_buff *cfg80211_testmode_alloc_reply_skb(struct wiphy *wiphy,
- int approxlen);
-
-/**
- * cfg80211_testmode_reply - send the reply skb
- * @skb: The skb, must have been allocated with
- * cfg80211_testmode_alloc_reply_skb()
- *
- * Returns an error code or 0 on success, since calling this
- * function will usually be the last thing before returning
- * from the @testmode_cmd you should return the error code.
- * Note that this function consumes the skb regardless of the
- * return value.
- */
-int cfg80211_testmode_reply(struct sk_buff *skb);
-
-/**
- * cfg80211_testmode_alloc_event_skb - allocate testmode event
- * @wiphy: the wiphy
- * @approxlen: an upper bound of the length of the data that will
- * be put into the skb
- * @gfp: allocation flags
- *
- * This function allocates and pre-fills an skb for an event on the
- * testmode multicast group.
- *
- * The returned skb (or %NULL if any errors happen) is set up in the
- * same way as with cfg80211_testmode_alloc_reply_skb() but prepared
- * for an event. As there, you should simply add data to it that will
- * then end up in the %NL80211_ATTR_TESTDATA attribute. Again, you must
- * not modify the skb in any other way.
- *
- * When done filling the skb, call cfg80211_testmode_event() with the
- * skb to send the event.
- */
-struct sk_buff *cfg80211_testmode_alloc_event_skb(struct wiphy *wiphy,
- int approxlen, gfp_t gfp);
-
-/**
- * cfg80211_testmode_event - send the event
- * @skb: The skb, must have been allocated with
- * cfg80211_testmode_alloc_event_skb()
- * @gfp: allocation flags
- *
- * This function sends the given @skb, which must have been allocated
- * by cfg80211_testmode_alloc_event_skb(), as an event. It always
- * consumes it.
- */
-void cfg80211_testmode_event(struct sk_buff *skb, gfp_t gfp);
-
-#define CFG80211_TESTMODE_CMD(cmd) .testmode_cmd = (cmd),
-#define CFG80211_TESTMODE_DUMP(cmd) .testmode_dump = (cmd),
-#else
-#define CFG80211_TESTMODE_CMD(cmd)
-#define CFG80211_TESTMODE_DUMP(cmd)
-#endif
-
-/**
- * cfg80211_connect_result - notify cfg80211 of connection result
- *
- * @dev: network device
- * @bssid: the BSSID of the AP
- * @req_ie: association request IEs (maybe be %NULL)
- * @req_ie_len: association request IEs length
- * @resp_ie: association response IEs (may be %NULL)
- * @resp_ie_len: assoc response IEs length
- * @status: status code, 0 for successful connection, use
- * %WLAN_STATUS_UNSPECIFIED_FAILURE if your device cannot give you
- * the real status code for failures.
- * @gfp: allocation flags
- *
- * It should be called by the underlying driver whenever connect() has
- * succeeded.
- */
-void cfg80211_connect_result(struct net_device *dev, const u8 *bssid,
- const u8 *req_ie, size_t req_ie_len,
- const u8 *resp_ie, size_t resp_ie_len,
- u16 status, gfp_t gfp);
-
-/**
- * cfg80211_roamed - notify cfg80211 of roaming
- *
- * @dev: network device
- * @channel: the channel of the new AP
- * @bssid: the BSSID of the new AP
- * @req_ie: association request IEs (maybe be %NULL)
- * @req_ie_len: association request IEs length
- * @resp_ie: association response IEs (may be %NULL)
- * @resp_ie_len: assoc response IEs length
- * @gfp: allocation flags
- *
- * It should be called by the underlying driver whenever it roamed
- * from one AP to another while connected.
- */
-void cfg80211_roamed(struct net_device *dev,
- struct ieee80211_channel *channel,
- const u8 *bssid,
- const u8 *req_ie, size_t req_ie_len,
- const u8 *resp_ie, size_t resp_ie_len, gfp_t gfp);
-
-/**
- * cfg80211_roamed_bss - notify cfg80211 of roaming
- *
- * @dev: network device
- * @bss: entry of bss to which STA got roamed
- * @req_ie: association request IEs (maybe be %NULL)
- * @req_ie_len: association request IEs length
- * @resp_ie: association response IEs (may be %NULL)
- * @resp_ie_len: assoc response IEs length
- * @gfp: allocation flags
- *
- * This is just a wrapper to notify cfg80211 of roaming event with driver
- * passing bss to avoid a race in timeout of the bss entry. It should be
- * called by the underlying driver whenever it roamed from one AP to another
- * while connected. Drivers which have roaming implemented in firmware
- * may use this function to avoid a race in bss entry timeout where the bss
- * entry of the new AP is seen in the driver, but gets timed out by the time
- * it is accessed in __cfg80211_roamed() due to delay in scheduling
- * rdev->event_work. In case of any failures, the reference is released
- * either in cfg80211_roamed_bss() or in __cfg80211_romed(), Otherwise,
- * it will be released while diconneting from the current bss.
- */
-void cfg80211_roamed_bss(struct net_device *dev, struct cfg80211_bss *bss,
- const u8 *req_ie, size_t req_ie_len,
- const u8 *resp_ie, size_t resp_ie_len, gfp_t gfp);
-
-/**
- * cfg80211_disconnected - notify cfg80211 that connection was dropped
- *
- * @dev: network device
- * @ie: information elements of the deauth/disassoc frame (may be %NULL)
- * @ie_len: length of IEs
- * @reason: reason code for the disconnection, set it to 0 if unknown
- * @gfp: allocation flags
- *
- * After it calls this function, the driver should enter an idle state
- * and not try to connect to any AP any more.
- */
-void cfg80211_disconnected(struct net_device *dev, u16 reason,
- u8 *ie, size_t ie_len, gfp_t gfp);
-
-/**
- * cfg80211_ready_on_channel - notification of remain_on_channel start
- * @dev: network device
- * @cookie: the request cookie
- * @chan: The current channel (from remain_on_channel request)
- * @channel_type: Channel type
- * @duration: Duration in milliseconds that the driver intents to remain on the
- * channel
- * @gfp: allocation flags
- */
-void cfg80211_ready_on_channel(struct net_device *dev, u64 cookie,
- struct ieee80211_channel *chan,
- enum nl80211_channel_type channel_type,
- unsigned int duration, gfp_t gfp);
-
-/**
- * cfg80211_remain_on_channel_expired - remain_on_channel duration expired
- * @dev: network device
- * @cookie: the request cookie
- * @chan: The current channel (from remain_on_channel request)
- * @channel_type: Channel type
- * @gfp: allocation flags
- */
-void cfg80211_remain_on_channel_expired(struct net_device *dev,
- u64 cookie,
- struct ieee80211_channel *chan,
- enum nl80211_channel_type channel_type,
- gfp_t gfp);
-
-
-/**
- * cfg80211_new_sta - notify userspace about station
- *
- * @dev: the netdev
- * @mac_addr: the station's address
- * @sinfo: the station information
- * @gfp: allocation flags
- */
-void cfg80211_new_sta(struct net_device *dev, const u8 *mac_addr,
- struct station_info *sinfo, gfp_t gfp);
-
-/**
- * cfg80211_del_sta - notify userspace about deletion of a station
- *
- * @dev: the netdev
- * @mac_addr: the station's address
- * @gfp: allocation flags
- */
-void cfg80211_del_sta(struct net_device *dev, const u8 *mac_addr, gfp_t gfp);
-
-/**
- * cfg80211_rx_mgmt - notification of received, unprocessed management frame
- * @dev: network device
- * @freq: Frequency on which the frame was received in MHz
- * @sig_dbm: signal strength in mBm, or 0 if unknown
- * @buf: Management frame (header + body)
- * @len: length of the frame data
- * @gfp: context flags
- *
- * Returns %true if a user space application has registered for this frame.
- * For action frames, that makes it responsible for rejecting unrecognized
- * action frames; %false otherwise, in which case for action frames the
- * driver is responsible for rejecting the frame.
- *
- * This function is called whenever an Action frame is received for a station
- * mode interface, but is not processed in kernel.
- */
-bool cfg80211_rx_mgmt(struct net_device *dev, int freq, int sig_dbm,
- const u8 *buf, size_t len, gfp_t gfp);
-
-/**
- * cfg80211_mgmt_tx_status - notification of TX status for management frame
- * @dev: network device
- * @cookie: Cookie returned by cfg80211_ops::mgmt_tx()
- * @buf: Management frame (header + body)
- * @len: length of the frame data
- * @ack: Whether frame was acknowledged
- * @gfp: context flags
- *
- * This function is called whenever a management frame was requested to be
- * transmitted with cfg80211_ops::mgmt_tx() to report the TX status of the
- * transmission attempt.
- */
-void cfg80211_mgmt_tx_status(struct net_device *dev, u64 cookie,
- const u8 *buf, size_t len, bool ack, gfp_t gfp);
-
-
-/**
- * cfg80211_cqm_rssi_notify - connection quality monitoring rssi event
- * @dev: network device
- * @rssi_event: the triggered RSSI event
- * @gfp: context flags
- *
- * This function is called when a configured connection quality monitoring
- * rssi threshold reached event occurs.
- */
-void cfg80211_cqm_rssi_notify(struct net_device *dev,
- enum nl80211_cqm_rssi_threshold_event rssi_event,
- gfp_t gfp);
-
-/**
- * cfg80211_cqm_pktloss_notify - notify userspace about packetloss to peer
- * @dev: network device
- * @peer: peer's MAC address
- * @num_packets: how many packets were lost -- should be a fixed threshold
- * but probably no less than maybe 50, or maybe a throughput dependent
- * threshold (to account for temporary interference)
- * @gfp: context flags
- */
-void cfg80211_cqm_pktloss_notify(struct net_device *dev,
- const u8 *peer, u32 num_packets, gfp_t gfp);
-
-/**
- * cfg80211_gtk_rekey_notify - notify userspace about driver rekeying
- * @dev: network device
- * @bssid: BSSID of AP (to avoid races)
- * @replay_ctr: new replay counter
- * @gfp: allocation flags
- */
-void cfg80211_gtk_rekey_notify(struct net_device *dev, const u8 *bssid,
- const u8 *replay_ctr, gfp_t gfp);
-
-/**
- * cfg80211_pmksa_candidate_notify - notify about PMKSA caching candidate
- * @dev: network device
- * @index: candidate index (the smaller the index, the higher the priority)
- * @bssid: BSSID of AP
- * @preauth: Whether AP advertises support for RSN pre-authentication
- * @gfp: allocation flags
- */
-void cfg80211_pmksa_candidate_notify(struct net_device *dev, int index,
- const u8 *bssid, bool preauth, gfp_t gfp);
-
-/**
- * cfg80211_rx_spurious_frame - inform userspace about a spurious frame
- * @dev: The device the frame matched to
- * @addr: the transmitter address
- * @gfp: context flags
- *
- * This function is used in AP mode (only!) to inform userspace that
- * a spurious class 3 frame was received, to be able to deauth the
- * sender.
- * Returns %true if the frame was passed to userspace (or this failed
- * for a reason other than not having a subscription.)
- */
-bool cfg80211_rx_spurious_frame(struct net_device *dev,
- const u8 *addr, gfp_t gfp);
-
-/**
- * cfg80211_rx_unexpected_4addr_frame - inform about unexpected WDS frame
- * @dev: The device the frame matched to
- * @addr: the transmitter address
- * @gfp: context flags
- *
- * This function is used in AP mode (only!) to inform userspace that
- * an associated station sent a 4addr frame but that wasn't expected.
- * It is allowed and desirable to send this event only once for each
- * station to avoid event flooding.
- * Returns %true if the frame was passed to userspace (or this failed
- * for a reason other than not having a subscription.)
- */
-bool cfg80211_rx_unexpected_4addr_frame(struct net_device *dev,
- const u8 *addr, gfp_t gfp);
-
-/**
- * cfg80211_probe_status - notify userspace about probe status
- * @dev: the device the probe was sent on
- * @addr: the address of the peer
- * @cookie: the cookie filled in @probe_client previously
- * @acked: indicates whether probe was acked or not
- * @gfp: allocation flags
- */
-void cfg80211_probe_status(struct net_device *dev, const u8 *addr,
- u64 cookie, bool acked, gfp_t gfp);
-
-/**
- * cfg80211_report_obss_beacon - report beacon from other APs
- * @wiphy: The wiphy that received the beacon
- * @frame: the frame
- * @len: length of the frame
- * @freq: frequency the frame was received on
- * @sig_dbm: signal strength in mBm, or 0 if unknown
- * @gfp: allocation flags
- *
- * Use this function to report to userspace when a beacon was
- * received. It is not useful to call this when there is no
- * netdev that is in AP/GO mode.
- */
-void cfg80211_report_obss_beacon(struct wiphy *wiphy,
- const u8 *frame, size_t len,
- int freq, int sig_dbm, gfp_t gfp);
-
-/*
- * cfg80211_can_beacon_sec_chan - test if ht40 on extension channel can be used
- * @wiphy: the wiphy
- * @chan: main channel
- * @channel_type: HT mode
- */
-int cfg80211_can_beacon_sec_chan(struct wiphy *wiphy,
- struct ieee80211_channel *chan,
- enum nl80211_channel_type channel_type);
-
-/*
- * cfg80211_calculate_bitrate - calculate actual bitrate (in 100Kbps units)
- * @rate: given rate_info to calculate bitrate from
- *
- * return 0 if MCS index >= 32
- */
-u16 cfg80211_calculate_bitrate(struct rate_info *rate);
-
-/* Logging, debugging and troubleshooting/diagnostic helpers. */
-
-/* wiphy_printk helpers, similar to dev_printk */
-
-#define wiphy_printk(level, wiphy, format, args...) \
- dev_printk(level, &(wiphy)->dev, format, ##args)
-#define wiphy_emerg(wiphy, format, args...) \
- dev_emerg(&(wiphy)->dev, format, ##args)
-#define wiphy_alert(wiphy, format, args...) \
- dev_alert(&(wiphy)->dev, format, ##args)
-#define wiphy_crit(wiphy, format, args...) \
- dev_crit(&(wiphy)->dev, format, ##args)
-#define wiphy_err(wiphy, format, args...) \
- dev_err(&(wiphy)->dev, format, ##args)
-#define wiphy_warn(wiphy, format, args...) \
- dev_warn(&(wiphy)->dev, format, ##args)
-#define wiphy_notice(wiphy, format, args...) \
- dev_notice(&(wiphy)->dev, format, ##args)
-#define wiphy_info(wiphy, format, args...) \
- dev_info(&(wiphy)->dev, format, ##args)
-
-#define wiphy_debug(wiphy, format, args...) \
- wiphy_printk(KERN_DEBUG, wiphy, format, ##args)
-
-#define wiphy_dbg(wiphy, format, args...) \
- dev_dbg(&(wiphy)->dev, format, ##args)
-
-#if defined(VERBOSE_DEBUG)
-#define wiphy_vdbg wiphy_dbg
-#else
-#define wiphy_vdbg(wiphy, format, args...) \
-({ \
- if (0) \
- wiphy_printk(KERN_DEBUG, wiphy, format, ##args); \
- 0; \
-})
-#endif
-
-/*
- * wiphy_WARN() acts like wiphy_printk(), but with the key difference
- * of using a WARN/WARN_ON to get the message out, including the
- * file/line information and a backtrace.
- */
-#define wiphy_WARN(wiphy, format, args...) \
- WARN(1, "wiphy: %s\n" format, wiphy_name(wiphy), ##args);
-
-#endif /* __NET_CFG80211_H */
diff --git a/ANDROID_3.4.5/include/net/checksum.h b/ANDROID_3.4.5/include/net/checksum.h
deleted file mode 100644
index ba55d8b8..00000000
--- a/ANDROID_3.4.5/include/net/checksum.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Checksumming functions for IP, TCP, UDP and so on
- *
- * Authors: Jorge Cwik, <jorge@laser.satlink.net>
- * Arnt Gulbrandsen, <agulbra@nvg.unit.no>
- * Borrows very liberally from tcp.c and ip.c, see those
- * files for more names.
- *
- * 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 _CHECKSUM_H
-#define _CHECKSUM_H
-
-#include <linux/errno.h>
-#include <asm/types.h>
-#include <asm/byteorder.h>
-#include <asm/uaccess.h>
-#include <asm/checksum.h>
-
-#ifndef _HAVE_ARCH_COPY_AND_CSUM_FROM_USER
-static inline
-__wsum csum_and_copy_from_user (const void __user *src, void *dst,
- int len, __wsum sum, int *err_ptr)
-{
- if (access_ok(VERIFY_READ, src, len))
- return csum_partial_copy_from_user(src, dst, len, sum, err_ptr);
-
- if (len)
- *err_ptr = -EFAULT;
-
- return sum;
-}
-#endif
-
-#ifndef HAVE_CSUM_COPY_USER
-static __inline__ __wsum csum_and_copy_to_user
-(const void *src, void __user *dst, int len, __wsum sum, int *err_ptr)
-{
- sum = csum_partial(src, len, sum);
-
- if (access_ok(VERIFY_WRITE, dst, len)) {
- if (copy_to_user(dst, src, len) == 0)
- return sum;
- }
- if (len)
- *err_ptr = -EFAULT;
-
- return (__force __wsum)-1; /* invalid checksum */
-}
-#endif
-
-static inline __wsum csum_add(__wsum csum, __wsum addend)
-{
- u32 res = (__force u32)csum;
- res += (__force u32)addend;
- return (__force __wsum)(res + (res < (__force u32)addend));
-}
-
-static inline __wsum csum_sub(__wsum csum, __wsum addend)
-{
- return csum_add(csum, ~addend);
-}
-
-static inline __wsum
-csum_block_add(__wsum csum, __wsum csum2, int offset)
-{
- u32 sum = (__force u32)csum2;
- if (offset&1)
- sum = ((sum&0xFF00FF)<<8)+((sum>>8)&0xFF00FF);
- return csum_add(csum, (__force __wsum)sum);
-}
-
-static inline __wsum
-csum_block_sub(__wsum csum, __wsum csum2, int offset)
-{
- u32 sum = (__force u32)csum2;
- if (offset&1)
- sum = ((sum&0xFF00FF)<<8)+((sum>>8)&0xFF00FF);
- return csum_sub(csum, (__force __wsum)sum);
-}
-
-static inline __wsum csum_unfold(__sum16 n)
-{
- return (__force __wsum)n;
-}
-
-#define CSUM_MANGLED_0 ((__force __sum16)0xffff)
-
-static inline void csum_replace4(__sum16 *sum, __be32 from, __be32 to)
-{
- __be32 diff[] = { ~from, to };
-
- *sum = csum_fold(csum_partial(diff, sizeof(diff), ~csum_unfold(*sum)));
-}
-
-static inline void csum_replace2(__sum16 *sum, __be16 from, __be16 to)
-{
- csum_replace4(sum, (__force __be32)from, (__force __be32)to);
-}
-
-struct sk_buff;
-extern void inet_proto_csum_replace4(__sum16 *sum, struct sk_buff *skb,
- __be32 from, __be32 to, int pseudohdr);
-
-static inline void inet_proto_csum_replace2(__sum16 *sum, struct sk_buff *skb,
- __be16 from, __be16 to,
- int pseudohdr)
-{
- inet_proto_csum_replace4(sum, skb, (__force __be32)from,
- (__force __be32)to, pseudohdr);
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/cipso_ipv4.h b/ANDROID_3.4.5/include/net/cipso_ipv4.h
deleted file mode 100644
index a7a683e3..00000000
--- a/ANDROID_3.4.5/include/net/cipso_ipv4.h
+++ /dev/null
@@ -1,319 +0,0 @@
-/*
- * CIPSO - Commercial IP Security Option
- *
- * This is an implementation of the CIPSO 2.2 protocol as specified in
- * draft-ietf-cipso-ipsecurity-01.txt with additional tag types as found in
- * FIPS-188, copies of both documents can be found in the Documentation
- * directory. While CIPSO never became a full IETF RFC standard many vendors
- * have chosen to adopt the protocol and over the years it has become a
- * de-facto standard for labeled networking.
- *
- * Author: Paul Moore <paul@paul-moore.com>
- *
- */
-
-/*
- * (c) Copyright Hewlett-Packard Development Company, L.P., 2006
- *
- * 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
- *
- */
-
-#ifndef _CIPSO_IPV4_H
-#define _CIPSO_IPV4_H
-
-#include <linux/types.h>
-#include <linux/rcupdate.h>
-#include <linux/list.h>
-#include <linux/net.h>
-#include <linux/skbuff.h>
-#include <net/netlabel.h>
-#include <net/request_sock.h>
-#include <linux/atomic.h>
-#include <asm/unaligned.h>
-
-/* known doi values */
-#define CIPSO_V4_DOI_UNKNOWN 0x00000000
-
-/* standard tag types */
-#define CIPSO_V4_TAG_INVALID 0
-#define CIPSO_V4_TAG_RBITMAP 1
-#define CIPSO_V4_TAG_ENUM 2
-#define CIPSO_V4_TAG_RANGE 5
-#define CIPSO_V4_TAG_PBITMAP 6
-#define CIPSO_V4_TAG_FREEFORM 7
-
-/* non-standard tag types (tags > 127) */
-#define CIPSO_V4_TAG_LOCAL 128
-
-/* doi mapping types */
-#define CIPSO_V4_MAP_UNKNOWN 0
-#define CIPSO_V4_MAP_TRANS 1
-#define CIPSO_V4_MAP_PASS 2
-#define CIPSO_V4_MAP_LOCAL 3
-
-/* limits */
-#define CIPSO_V4_MAX_REM_LVLS 255
-#define CIPSO_V4_INV_LVL 0x80000000
-#define CIPSO_V4_MAX_LOC_LVLS (CIPSO_V4_INV_LVL - 1)
-#define CIPSO_V4_MAX_REM_CATS 65534
-#define CIPSO_V4_INV_CAT 0x80000000
-#define CIPSO_V4_MAX_LOC_CATS (CIPSO_V4_INV_CAT - 1)
-
-/*
- * CIPSO DOI definitions
- */
-
-/* DOI definition struct */
-#define CIPSO_V4_TAG_MAXCNT 5
-struct cipso_v4_doi {
- u32 doi;
- u32 type;
- union {
- struct cipso_v4_std_map_tbl *std;
- } map;
- u8 tags[CIPSO_V4_TAG_MAXCNT];
-
- atomic_t refcount;
- struct list_head list;
- struct rcu_head rcu;
-};
-
-/* Standard CIPSO mapping table */
-/* NOTE: the highest order bit (i.e. 0x80000000) is an 'invalid' flag, if the
- * bit is set then consider that value as unspecified, meaning the
- * mapping for that particular level/category is invalid */
-struct cipso_v4_std_map_tbl {
- struct {
- u32 *cipso;
- u32 *local;
- u32 cipso_size;
- u32 local_size;
- } lvl;
- struct {
- u32 *cipso;
- u32 *local;
- u32 cipso_size;
- u32 local_size;
- } cat;
-};
-
-/*
- * Sysctl Variables
- */
-
-#ifdef CONFIG_NETLABEL
-extern int cipso_v4_cache_enabled;
-extern int cipso_v4_cache_bucketsize;
-extern int cipso_v4_rbm_optfmt;
-extern int cipso_v4_rbm_strictvalid;
-#endif
-
-/*
- * Helper Functions
- */
-
-#define CIPSO_V4_OPTEXIST(x) (IPCB(x)->opt.cipso != 0)
-#define CIPSO_V4_OPTPTR(x) (skb_network_header(x) + IPCB(x)->opt.cipso)
-
-/*
- * DOI List Functions
- */
-
-#ifdef CONFIG_NETLABEL
-int cipso_v4_doi_add(struct cipso_v4_doi *doi_def,
- struct netlbl_audit *audit_info);
-void cipso_v4_doi_free(struct cipso_v4_doi *doi_def);
-int cipso_v4_doi_remove(u32 doi, struct netlbl_audit *audit_info);
-struct cipso_v4_doi *cipso_v4_doi_getdef(u32 doi);
-void cipso_v4_doi_putdef(struct cipso_v4_doi *doi_def);
-int cipso_v4_doi_walk(u32 *skip_cnt,
- int (*callback) (struct cipso_v4_doi *doi_def, void *arg),
- void *cb_arg);
-#else
-static inline int cipso_v4_doi_add(struct cipso_v4_doi *doi_def,
- struct netlbl_audit *audit_info)
-{
- return -ENOSYS;
-}
-
-static inline void cipso_v4_doi_free(struct cipso_v4_doi *doi_def)
-{
- return;
-}
-
-static inline int cipso_v4_doi_remove(u32 doi,
- struct netlbl_audit *audit_info)
-{
- return 0;
-}
-
-static inline struct cipso_v4_doi *cipso_v4_doi_getdef(u32 doi)
-{
- return NULL;
-}
-
-static inline int cipso_v4_doi_walk(u32 *skip_cnt,
- int (*callback) (struct cipso_v4_doi *doi_def, void *arg),
- void *cb_arg)
-{
- return 0;
-}
-
-static inline int cipso_v4_doi_domhsh_add(struct cipso_v4_doi *doi_def,
- const char *domain)
-{
- return -ENOSYS;
-}
-
-static inline int cipso_v4_doi_domhsh_remove(struct cipso_v4_doi *doi_def,
- const char *domain)
-{
- return 0;
-}
-#endif /* CONFIG_NETLABEL */
-
-/*
- * Label Mapping Cache Functions
- */
-
-#ifdef CONFIG_NETLABEL
-void cipso_v4_cache_invalidate(void);
-int cipso_v4_cache_add(const struct sk_buff *skb,
- const struct netlbl_lsm_secattr *secattr);
-#else
-static inline void cipso_v4_cache_invalidate(void)
-{
- return;
-}
-
-static inline int cipso_v4_cache_add(const struct sk_buff *skb,
- const struct netlbl_lsm_secattr *secattr)
-{
- return 0;
-}
-#endif /* CONFIG_NETLABEL */
-
-/*
- * Protocol Handling Functions
- */
-
-#ifdef CONFIG_NETLABEL
-void cipso_v4_error(struct sk_buff *skb, int error, u32 gateway);
-int cipso_v4_sock_setattr(struct sock *sk,
- const struct cipso_v4_doi *doi_def,
- const struct netlbl_lsm_secattr *secattr);
-void cipso_v4_sock_delattr(struct sock *sk);
-int cipso_v4_sock_getattr(struct sock *sk, struct netlbl_lsm_secattr *secattr);
-int cipso_v4_req_setattr(struct request_sock *req,
- const struct cipso_v4_doi *doi_def,
- const struct netlbl_lsm_secattr *secattr);
-void cipso_v4_req_delattr(struct request_sock *req);
-int cipso_v4_skbuff_setattr(struct sk_buff *skb,
- const struct cipso_v4_doi *doi_def,
- const struct netlbl_lsm_secattr *secattr);
-int cipso_v4_skbuff_delattr(struct sk_buff *skb);
-int cipso_v4_skbuff_getattr(const struct sk_buff *skb,
- struct netlbl_lsm_secattr *secattr);
-int cipso_v4_validate(const struct sk_buff *skb, unsigned char **option);
-#else
-static inline void cipso_v4_error(struct sk_buff *skb,
- int error,
- u32 gateway)
-{
- return;
-}
-
-static inline int cipso_v4_sock_setattr(struct sock *sk,
- const struct cipso_v4_doi *doi_def,
- const struct netlbl_lsm_secattr *secattr)
-{
- return -ENOSYS;
-}
-
-static inline void cipso_v4_sock_delattr(struct sock *sk)
-{
-}
-
-static inline int cipso_v4_sock_getattr(struct sock *sk,
- struct netlbl_lsm_secattr *secattr)
-{
- return -ENOSYS;
-}
-
-static inline int cipso_v4_req_setattr(struct request_sock *req,
- const struct cipso_v4_doi *doi_def,
- const struct netlbl_lsm_secattr *secattr)
-{
- return -ENOSYS;
-}
-
-static inline void cipso_v4_req_delattr(struct request_sock *req)
-{
- return;
-}
-
-static inline int cipso_v4_skbuff_setattr(struct sk_buff *skb,
- const struct cipso_v4_doi *doi_def,
- const struct netlbl_lsm_secattr *secattr)
-{
- return -ENOSYS;
-}
-
-static inline int cipso_v4_skbuff_delattr(struct sk_buff *skb)
-{
- return -ENOSYS;
-}
-
-static inline int cipso_v4_skbuff_getattr(const struct sk_buff *skb,
- struct netlbl_lsm_secattr *secattr)
-{
- return -ENOSYS;
-}
-
-static inline int cipso_v4_validate(const struct sk_buff *skb,
- unsigned char **option)
-{
- unsigned char *opt = *option;
- unsigned char err_offset = 0;
- u8 opt_len = opt[1];
- u8 opt_iter;
-
- if (opt_len < 8) {
- err_offset = 1;
- goto out;
- }
-
- if (get_unaligned_be32(&opt[2]) == 0) {
- err_offset = 2;
- goto out;
- }
-
- for (opt_iter = 6; opt_iter < opt_len;) {
- if (opt[opt_iter + 1] > (opt_len - opt_iter)) {
- err_offset = opt_iter + 1;
- goto out;
- }
- opt_iter += opt[opt_iter + 1];
- }
-
-out:
- *option = opt + err_offset;
- return err_offset;
-
-}
-#endif /* CONFIG_NETLABEL */
-
-#endif /* _CIPSO_IPV4_H */
diff --git a/ANDROID_3.4.5/include/net/cls_cgroup.h b/ANDROID_3.4.5/include/net/cls_cgroup.h
deleted file mode 100644
index a4dc5b02..00000000
--- a/ANDROID_3.4.5/include/net/cls_cgroup.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * cls_cgroup.h Control Group Classifier
- *
- * Authors: Thomas Graf <tgraf@suug.ch>
- *
- * 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 _NET_CLS_CGROUP_H
-#define _NET_CLS_CGROUP_H
-
-#include <linux/cgroup.h>
-#include <linux/hardirq.h>
-#include <linux/rcupdate.h>
-
-#ifdef CONFIG_CGROUPS
-struct cgroup_cls_state
-{
- struct cgroup_subsys_state css;
- u32 classid;
-};
-
-#ifdef CONFIG_NET_CLS_CGROUP
-static inline u32 task_cls_classid(struct task_struct *p)
-{
- int classid;
-
- if (in_interrupt())
- return 0;
-
- rcu_read_lock();
- classid = container_of(task_subsys_state(p, net_cls_subsys_id),
- struct cgroup_cls_state, css)->classid;
- rcu_read_unlock();
-
- return classid;
-}
-#else
-extern int net_cls_subsys_id;
-
-static inline u32 task_cls_classid(struct task_struct *p)
-{
- int id;
- u32 classid = 0;
-
- if (in_interrupt())
- return 0;
-
- rcu_read_lock();
- id = rcu_dereference_index_check(net_cls_subsys_id,
- rcu_read_lock_held());
- if (id >= 0)
- classid = container_of(task_subsys_state(p, id),
- struct cgroup_cls_state, css)->classid;
- rcu_read_unlock();
-
- return classid;
-}
-#endif
-#else
-static inline u32 task_cls_classid(struct task_struct *p)
-{
- return 0;
-}
-#endif
-#endif /* _NET_CLS_CGROUP_H */
diff --git a/ANDROID_3.4.5/include/net/compat.h b/ANDROID_3.4.5/include/net/compat.h
deleted file mode 100644
index a974ae92..00000000
--- a/ANDROID_3.4.5/include/net/compat.h
+++ /dev/null
@@ -1,63 +0,0 @@
-#ifndef NET_COMPAT_H
-#define NET_COMPAT_H
-
-
-struct sock;
-
-#if defined(CONFIG_COMPAT)
-
-#include <linux/compat.h>
-
-struct compat_msghdr {
- compat_uptr_t msg_name; /* void * */
- compat_int_t msg_namelen;
- compat_uptr_t msg_iov; /* struct compat_iovec * */
- compat_size_t msg_iovlen;
- compat_uptr_t msg_control; /* void * */
- compat_size_t msg_controllen;
- compat_uint_t msg_flags;
-};
-
-struct compat_mmsghdr {
- struct compat_msghdr msg_hdr;
- compat_uint_t msg_len;
-};
-
-struct compat_cmsghdr {
- compat_size_t cmsg_len;
- compat_int_t cmsg_level;
- compat_int_t cmsg_type;
-};
-
-extern int compat_sock_get_timestamp(struct sock *, struct timeval __user *);
-extern int compat_sock_get_timestampns(struct sock *, struct timespec __user *);
-
-#else /* defined(CONFIG_COMPAT) */
-/*
- * To avoid compiler warnings:
- */
-#define compat_msghdr msghdr
-#define compat_mmsghdr mmsghdr
-#endif /* defined(CONFIG_COMPAT) */
-
-extern int get_compat_msghdr(struct msghdr *, struct compat_msghdr __user *);
-extern int verify_compat_iovec(struct msghdr *, struct iovec *, struct sockaddr_storage *, int);
-extern asmlinkage long compat_sys_sendmsg(int,struct compat_msghdr __user *,unsigned);
-extern asmlinkage long compat_sys_sendmmsg(int, struct compat_mmsghdr __user *,
- unsigned, unsigned);
-extern asmlinkage long compat_sys_recvmsg(int,struct compat_msghdr __user *,unsigned);
-extern asmlinkage long compat_sys_recvmmsg(int, struct compat_mmsghdr __user *,
- unsigned, unsigned,
- struct compat_timespec __user *);
-extern asmlinkage long compat_sys_getsockopt(int, int, int, char __user *, int __user *);
-extern int put_cmsg_compat(struct msghdr*, int, int, int, void *);
-
-extern int cmsghdr_from_user_compat_to_kern(struct msghdr *, struct sock *, unsigned char *, int);
-
-extern int compat_mc_setsockopt(struct sock *, int, int, char __user *, unsigned int,
- int (*)(struct sock *, int, int, char __user *, unsigned int));
-extern int compat_mc_getsockopt(struct sock *, int, int, char __user *,
- int __user *, int (*)(struct sock *, int, int, char __user *,
- int __user *));
-
-#endif /* NET_COMPAT_H */
diff --git a/ANDROID_3.4.5/include/net/datalink.h b/ANDROID_3.4.5/include/net/datalink.h
deleted file mode 100644
index deb7ca75..00000000
--- a/ANDROID_3.4.5/include/net/datalink.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef _NET_INET_DATALINK_H_
-#define _NET_INET_DATALINK_H_
-
-struct datalink_proto {
- unsigned char type[8];
-
- struct llc_sap *sap;
-
- unsigned short header_length;
-
- int (*rcvfunc)(struct sk_buff *, struct net_device *,
- struct packet_type *, struct net_device *);
- int (*request)(struct datalink_proto *, struct sk_buff *,
- unsigned char *);
- struct list_head node;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/dcbevent.h b/ANDROID_3.4.5/include/net/dcbevent.h
deleted file mode 100644
index 443626ed..00000000
--- a/ANDROID_3.4.5/include/net/dcbevent.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2010, Intel Corporation.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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.
- *
- * Author: John Fastabend <john.r.fastabend@intel.com>
- */
-
-#ifndef _DCB_EVENT_H
-#define _DCB_EVENT_H
-
-enum dcbevent_notif_type {
- DCB_APP_EVENT = 1,
-};
-
-#ifdef CONFIG_DCB
-extern int register_dcbevent_notifier(struct notifier_block *nb);
-extern int unregister_dcbevent_notifier(struct notifier_block *nb);
-extern int call_dcbevent_notifiers(unsigned long val, void *v);
-#else
-static inline int
-register_dcbevent_notifier(struct notifier_block *nb)
-{
- return 0;
-}
-
-static inline int unregister_dcbevent_notifier(struct notifier_block *nb)
-{
- return 0;
-}
-
-static inline int call_dcbevent_notifiers(unsigned long val, void *v)
-{
- return 0;
-}
-#endif /* CONFIG_DCB */
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/dcbnl.h b/ANDROID_3.4.5/include/net/dcbnl.h
deleted file mode 100644
index f55c980d..00000000
--- a/ANDROID_3.4.5/include/net/dcbnl.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (c) 2008, Intel Corporation.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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.
- *
- * Author: Lucy Liu <lucy.liu@intel.com>
- */
-
-#ifndef __NET_DCBNL_H__
-#define __NET_DCBNL_H__
-
-#include <linux/dcbnl.h>
-
-struct dcb_app_type {
- int ifindex;
- struct dcb_app app;
- struct list_head list;
- u8 dcbx;
-};
-
-int dcb_setapp(struct net_device *, struct dcb_app *);
-u8 dcb_getapp(struct net_device *, struct dcb_app *);
-int dcb_ieee_setapp(struct net_device *, struct dcb_app *);
-int dcb_ieee_delapp(struct net_device *, struct dcb_app *);
-u8 dcb_ieee_getapp_mask(struct net_device *, struct dcb_app *);
-
-int dcbnl_ieee_notify(struct net_device *dev, int event, int cmd,
- u32 seq, u32 pid);
-int dcbnl_cee_notify(struct net_device *dev, int event, int cmd,
- u32 seq, u32 pid);
-
-/*
- * Ops struct for the netlink callbacks. Used by DCB-enabled drivers through
- * the netdevice struct.
- */
-struct dcbnl_rtnl_ops {
- /* IEEE 802.1Qaz std */
- int (*ieee_getets) (struct net_device *, struct ieee_ets *);
- int (*ieee_setets) (struct net_device *, struct ieee_ets *);
- int (*ieee_getpfc) (struct net_device *, struct ieee_pfc *);
- int (*ieee_setpfc) (struct net_device *, struct ieee_pfc *);
- int (*ieee_getapp) (struct net_device *, struct dcb_app *);
- int (*ieee_setapp) (struct net_device *, struct dcb_app *);
- int (*ieee_delapp) (struct net_device *, struct dcb_app *);
- int (*ieee_peer_getets) (struct net_device *, struct ieee_ets *);
- int (*ieee_peer_getpfc) (struct net_device *, struct ieee_pfc *);
-
- /* CEE std */
- u8 (*getstate)(struct net_device *);
- u8 (*setstate)(struct net_device *, u8);
- void (*getpermhwaddr)(struct net_device *, u8 *);
- void (*setpgtccfgtx)(struct net_device *, int, u8, u8, u8, u8);
- void (*setpgbwgcfgtx)(struct net_device *, int, u8);
- void (*setpgtccfgrx)(struct net_device *, int, u8, u8, u8, u8);
- void (*setpgbwgcfgrx)(struct net_device *, int, u8);
- void (*getpgtccfgtx)(struct net_device *, int, u8 *, u8 *, u8 *, u8 *);
- void (*getpgbwgcfgtx)(struct net_device *, int, u8 *);
- void (*getpgtccfgrx)(struct net_device *, int, u8 *, u8 *, u8 *, u8 *);
- void (*getpgbwgcfgrx)(struct net_device *, int, u8 *);
- void (*setpfccfg)(struct net_device *, int, u8);
- void (*getpfccfg)(struct net_device *, int, u8 *);
- u8 (*setall)(struct net_device *);
- u8 (*getcap)(struct net_device *, int, u8 *);
- int (*getnumtcs)(struct net_device *, int, u8 *);
- int (*setnumtcs)(struct net_device *, int, u8);
- u8 (*getpfcstate)(struct net_device *);
- void (*setpfcstate)(struct net_device *, u8);
- void (*getbcncfg)(struct net_device *, int, u32 *);
- void (*setbcncfg)(struct net_device *, int, u32);
- void (*getbcnrp)(struct net_device *, int, u8 *);
- void (*setbcnrp)(struct net_device *, int, u8);
- u8 (*setapp)(struct net_device *, u8, u16, u8);
- u8 (*getapp)(struct net_device *, u8, u16);
- u8 (*getfeatcfg)(struct net_device *, int, u8 *);
- u8 (*setfeatcfg)(struct net_device *, int, u8);
-
- /* DCBX configuration */
- u8 (*getdcbx)(struct net_device *);
- u8 (*setdcbx)(struct net_device *, u8);
-
- /* peer apps */
- int (*peer_getappinfo)(struct net_device *, struct dcb_peer_app_info *,
- u16 *);
- int (*peer_getapptable)(struct net_device *, struct dcb_app *);
-
- /* CEE peer */
- int (*cee_peer_getpg) (struct net_device *, struct cee_pg *);
- int (*cee_peer_getpfc) (struct net_device *, struct cee_pfc *);
-};
-
-#endif /* __NET_DCBNL_H__ */
diff --git a/ANDROID_3.4.5/include/net/dn.h b/ANDROID_3.4.5/include/net/dn.h
deleted file mode 100644
index 814af0b9..00000000
--- a/ANDROID_3.4.5/include/net/dn.h
+++ /dev/null
@@ -1,233 +0,0 @@
-#ifndef _NET_DN_H
-#define _NET_DN_H
-
-#include <linux/dn.h>
-#include <net/sock.h>
-#include <net/flow.h>
-#include <asm/byteorder.h>
-#include <asm/unaligned.h>
-
-struct dn_scp /* Session Control Port */
-{
- unsigned char state;
-#define DN_O 1 /* Open */
-#define DN_CR 2 /* Connect Receive */
-#define DN_DR 3 /* Disconnect Reject */
-#define DN_DRC 4 /* Discon. Rej. Complete*/
-#define DN_CC 5 /* Connect Confirm */
-#define DN_CI 6 /* Connect Initiate */
-#define DN_NR 7 /* No resources */
-#define DN_NC 8 /* No communication */
-#define DN_CD 9 /* Connect Delivery */
-#define DN_RJ 10 /* Rejected */
-#define DN_RUN 11 /* Running */
-#define DN_DI 12 /* Disconnect Initiate */
-#define DN_DIC 13 /* Disconnect Complete */
-#define DN_DN 14 /* Disconnect Notificat */
-#define DN_CL 15 /* Closed */
-#define DN_CN 16 /* Closed Notification */
-
- __le16 addrloc;
- __le16 addrrem;
- __u16 numdat;
- __u16 numoth;
- __u16 numoth_rcv;
- __u16 numdat_rcv;
- __u16 ackxmt_dat;
- __u16 ackxmt_oth;
- __u16 ackrcv_dat;
- __u16 ackrcv_oth;
- __u8 flowrem_sw;
- __u8 flowloc_sw;
-#define DN_SEND 2
-#define DN_DONTSEND 1
-#define DN_NOCHANGE 0
- __u16 flowrem_dat;
- __u16 flowrem_oth;
- __u16 flowloc_dat;
- __u16 flowloc_oth;
- __u8 services_rem;
- __u8 services_loc;
- __u8 info_rem;
- __u8 info_loc;
-
- __u16 segsize_rem;
- __u16 segsize_loc;
-
- __u8 nonagle;
- __u8 multi_ireq;
- __u8 accept_mode;
- unsigned long seg_total; /* Running total of current segment */
-
- struct optdata_dn conndata_in;
- struct optdata_dn conndata_out;
- struct optdata_dn discdata_in;
- struct optdata_dn discdata_out;
- struct accessdata_dn accessdata;
-
- struct sockaddr_dn addr; /* Local address */
- struct sockaddr_dn peer; /* Remote address */
-
- /*
- * In this case the RTT estimation is not specified in the
- * docs, nor is any back off algorithm. Here we follow well
- * known tcp algorithms with a few small variations.
- *
- * snd_window: Max number of packets we send before we wait for
- * an ack to come back. This will become part of a
- * more complicated scheme when we support flow
- * control.
- *
- * nsp_srtt: Round-Trip-Time (x8) in jiffies. This is a rolling
- * average.
- * nsp_rttvar: Round-Trip-Time-Varience (x4) in jiffies. This is the
- * varience of the smoothed average (but calculated in
- * a simpler way than for normal statistical varience
- * calculations).
- *
- * nsp_rxtshift: Backoff counter. Value is zero normally, each time
- * a packet is lost is increases by one until an ack
- * is received. Its used to index an array of backoff
- * multipliers.
- */
-#define NSP_MIN_WINDOW 1
-#define NSP_MAX_WINDOW (0x07fe)
- unsigned long max_window;
- unsigned long snd_window;
-#define NSP_INITIAL_SRTT (HZ)
- unsigned long nsp_srtt;
-#define NSP_INITIAL_RTTVAR (HZ*3)
- unsigned long nsp_rttvar;
-#define NSP_MAXRXTSHIFT 12
- unsigned long nsp_rxtshift;
-
- /*
- * Output queues, one for data, one for otherdata/linkservice
- */
- struct sk_buff_head data_xmit_queue;
- struct sk_buff_head other_xmit_queue;
-
- /*
- * Input queue for other data
- */
- struct sk_buff_head other_receive_queue;
- int other_report;
-
- /*
- * Stuff to do with the slow timer
- */
- unsigned long stamp; /* time of last transmit */
- unsigned long persist;
- int (*persist_fxn)(struct sock *sk);
- unsigned long keepalive;
- void (*keepalive_fxn)(struct sock *sk);
-
- /*
- * This stuff is for the fast timer for delayed acks
- */
- struct timer_list delack_timer;
- int delack_pending;
- void (*delack_fxn)(struct sock *sk);
-
-};
-
-static inline struct dn_scp *DN_SK(struct sock *sk)
-{
- return (struct dn_scp *)(sk + 1);
-}
-
-/*
- * src,dst : Source and Destination DECnet addresses
- * hops : Number of hops through the network
- * dst_port, src_port : NSP port numbers
- * services, info : Useful data extracted from conninit messages
- * rt_flags : Routing flags byte
- * nsp_flags : NSP layer flags byte
- * segsize : Size of segment
- * segnum : Number, for data, otherdata and linkservice
- * xmit_count : Number of times we've transmitted this skb
- * stamp : Time stamp of most recent transmission, used in RTT calculations
- * iif: Input interface number
- *
- * As a general policy, this structure keeps all addresses in network
- * byte order, and all else in host byte order. Thus dst, src, dst_port
- * and src_port are in network order. All else is in host order.
- *
- */
-#define DN_SKB_CB(skb) ((struct dn_skb_cb *)(skb)->cb)
-struct dn_skb_cb {
- __le16 dst;
- __le16 src;
- __u16 hops;
- __le16 dst_port;
- __le16 src_port;
- __u8 services;
- __u8 info;
- __u8 rt_flags;
- __u8 nsp_flags;
- __u16 segsize;
- __u16 segnum;
- __u16 xmit_count;
- unsigned long stamp;
- int iif;
-};
-
-static inline __le16 dn_eth2dn(unsigned char *ethaddr)
-{
- return get_unaligned((__le16 *)(ethaddr + 4));
-}
-
-static inline __le16 dn_saddr2dn(struct sockaddr_dn *saddr)
-{
- return *(__le16 *)saddr->sdn_nodeaddr;
-}
-
-static inline void dn_dn2eth(unsigned char *ethaddr, __le16 addr)
-{
- __u16 a = le16_to_cpu(addr);
- ethaddr[0] = 0xAA;
- ethaddr[1] = 0x00;
- ethaddr[2] = 0x04;
- ethaddr[3] = 0x00;
- ethaddr[4] = (__u8)(a & 0xff);
- ethaddr[5] = (__u8)(a >> 8);
-}
-
-static inline void dn_sk_ports_copy(struct flowidn *fld, struct dn_scp *scp)
-{
- fld->fld_sport = scp->addrloc;
- fld->fld_dport = scp->addrrem;
-}
-
-extern unsigned dn_mss_from_pmtu(struct net_device *dev, int mtu);
-
-#define DN_MENUVER_ACC 0x01
-#define DN_MENUVER_USR 0x02
-#define DN_MENUVER_PRX 0x04
-#define DN_MENUVER_UIC 0x08
-
-extern struct sock *dn_sklist_find_listener(struct sockaddr_dn *addr);
-extern struct sock *dn_find_by_skb(struct sk_buff *skb);
-#define DN_ASCBUF_LEN 9
-extern char *dn_addr2asc(__u16, char *);
-extern int dn_destroy_timer(struct sock *sk);
-
-extern int dn_sockaddr2username(struct sockaddr_dn *addr, unsigned char *buf, unsigned char type);
-extern int dn_username2sockaddr(unsigned char *data, int len, struct sockaddr_dn *addr, unsigned char *type);
-
-extern void dn_start_slow_timer(struct sock *sk);
-extern void dn_stop_slow_timer(struct sock *sk);
-
-extern __le16 decnet_address;
-extern int decnet_debug_level;
-extern int decnet_time_wait;
-extern int decnet_dn_count;
-extern int decnet_di_count;
-extern int decnet_dr_count;
-extern int decnet_no_fc_max_cwnd;
-
-extern long sysctl_decnet_mem[3];
-extern int sysctl_decnet_wmem[3];
-extern int sysctl_decnet_rmem[3];
-
-#endif /* _NET_DN_H */
diff --git a/ANDROID_3.4.5/include/net/dn_dev.h b/ANDROID_3.4.5/include/net/dn_dev.h
deleted file mode 100644
index b9e32db0..00000000
--- a/ANDROID_3.4.5/include/net/dn_dev.h
+++ /dev/null
@@ -1,198 +0,0 @@
-#ifndef _NET_DN_DEV_H
-#define _NET_DN_DEV_H
-
-
-struct dn_dev;
-
-struct dn_ifaddr {
- struct dn_ifaddr __rcu *ifa_next;
- struct dn_dev *ifa_dev;
- __le16 ifa_local;
- __le16 ifa_address;
- __u8 ifa_flags;
- __u8 ifa_scope;
- char ifa_label[IFNAMSIZ];
- struct rcu_head rcu;
-};
-
-#define DN_DEV_S_RU 0 /* Run - working normally */
-#define DN_DEV_S_CR 1 /* Circuit Rejected */
-#define DN_DEV_S_DS 2 /* Data Link Start */
-#define DN_DEV_S_RI 3 /* Routing Layer Initialize */
-#define DN_DEV_S_RV 4 /* Routing Layer Verify */
-#define DN_DEV_S_RC 5 /* Routing Layer Complete */
-#define DN_DEV_S_OF 6 /* Off */
-#define DN_DEV_S_HA 7 /* Halt */
-
-
-/*
- * The dn_dev_parms structure contains the set of parameters
- * for each device (hence inclusion in the dn_dev structure)
- * and an array is used to store the default types of supported
- * device (in dn_dev.c).
- *
- * The type field matches the ARPHRD_ constants and is used in
- * searching the list for supported devices when new devices
- * come up.
- *
- * The mode field is used to find out if a device is broadcast,
- * multipoint, or pointopoint. Please note that DECnet thinks
- * different ways about devices to the rest of the kernel
- * so the normal IFF_xxx flags are invalid here. For devices
- * which can be any combination of the previously mentioned
- * attributes, you can set this on a per device basis by
- * installing an up() routine.
- *
- * The device state field, defines the initial state in which the
- * device will come up. In the dn_dev structure, it is the actual
- * state.
- *
- * Things have changed here. I've killed timer1 since it's a user space
- * issue for a user space routing deamon to sort out. The kernel does
- * not need to be bothered with it.
- *
- * Timers:
- * t2 - Rate limit timer, min time between routing and hello messages
- * t3 - Hello timer, send hello messages when it expires
- *
- * Callbacks:
- * up() - Called to initialize device, return value can veto use of
- * device with DECnet.
- * down() - Called to turn device off when it goes down
- * timer3() - Called once for each ifaddr when timer 3 goes off
- *
- * sysctl - Hook for sysctl things
- *
- */
-struct dn_dev_parms {
- int type; /* ARPHRD_xxx */
- int mode; /* Broadcast, Unicast, Mulitpoint */
-#define DN_DEV_BCAST 1
-#define DN_DEV_UCAST 2
-#define DN_DEV_MPOINT 4
- int state; /* Initial state */
- int forwarding; /* 0=EndNode, 1=L1Router, 2=L2Router */
- unsigned long t2; /* Default value of t2 */
- unsigned long t3; /* Default value of t3 */
- int priority; /* Priority to be a router */
- char *name; /* Name for sysctl */
- int (*up)(struct net_device *);
- void (*down)(struct net_device *);
- void (*timer3)(struct net_device *, struct dn_ifaddr *ifa);
- void *sysctl;
-};
-
-
-struct dn_dev {
- struct dn_ifaddr __rcu *ifa_list;
- struct net_device *dev;
- struct dn_dev_parms parms;
- char use_long;
- struct timer_list timer;
- unsigned long t3;
- struct neigh_parms *neigh_parms;
- __u8 addr[ETH_ALEN];
- struct neighbour *router; /* Default router on circuit */
- struct neighbour *peer; /* Peer on pointopoint links */
- unsigned long uptime; /* Time device went up in jiffies */
-};
-
-struct dn_short_packet {
- __u8 msgflg;
- __le16 dstnode;
- __le16 srcnode;
- __u8 forward;
-} __packed;
-
-struct dn_long_packet {
- __u8 msgflg;
- __u8 d_area;
- __u8 d_subarea;
- __u8 d_id[6];
- __u8 s_area;
- __u8 s_subarea;
- __u8 s_id[6];
- __u8 nl2;
- __u8 visit_ct;
- __u8 s_class;
- __u8 pt;
-} __packed;
-
-/*------------------------- DRP - Routing messages ---------------------*/
-
-struct endnode_hello_message {
- __u8 msgflg;
- __u8 tiver[3];
- __u8 id[6];
- __u8 iinfo;
- __le16 blksize;
- __u8 area;
- __u8 seed[8];
- __u8 neighbor[6];
- __le16 timer;
- __u8 mpd;
- __u8 datalen;
- __u8 data[2];
-} __packed;
-
-struct rtnode_hello_message {
- __u8 msgflg;
- __u8 tiver[3];
- __u8 id[6];
- __u8 iinfo;
- __le16 blksize;
- __u8 priority;
- __u8 area;
- __le16 timer;
- __u8 mpd;
-} __packed;
-
-
-extern void dn_dev_init(void);
-extern void dn_dev_cleanup(void);
-
-extern int dn_dev_ioctl(unsigned int cmd, void __user *arg);
-
-extern void dn_dev_devices_off(void);
-extern void dn_dev_devices_on(void);
-
-extern void dn_dev_init_pkt(struct sk_buff *skb);
-extern void dn_dev_veri_pkt(struct sk_buff *skb);
-extern void dn_dev_hello(struct sk_buff *skb);
-
-extern void dn_dev_up(struct net_device *);
-extern void dn_dev_down(struct net_device *);
-
-extern int dn_dev_set_default(struct net_device *dev, int force);
-extern struct net_device *dn_dev_get_default(void);
-extern int dn_dev_bind_default(__le16 *addr);
-
-extern int register_dnaddr_notifier(struct notifier_block *nb);
-extern int unregister_dnaddr_notifier(struct notifier_block *nb);
-
-static inline int dn_dev_islocal(struct net_device *dev, __le16 addr)
-{
- struct dn_dev *dn_db;
- struct dn_ifaddr *ifa;
- int res = 0;
-
- rcu_read_lock();
- dn_db = rcu_dereference(dev->dn_ptr);
- if (dn_db == NULL) {
- printk(KERN_DEBUG "dn_dev_islocal: Called for non DECnet device\n");
- goto out;
- }
-
- for (ifa = rcu_dereference(dn_db->ifa_list);
- ifa != NULL;
- ifa = rcu_dereference(ifa->ifa_next))
- if ((addr ^ ifa->ifa_local) == 0) {
- res = 1;
- break;
- }
-out:
- rcu_read_unlock();
- return res;
-}
-
-#endif /* _NET_DN_DEV_H */
diff --git a/ANDROID_3.4.5/include/net/dn_fib.h b/ANDROID_3.4.5/include/net/dn_fib.h
deleted file mode 100644
index 782ef7cb..00000000
--- a/ANDROID_3.4.5/include/net/dn_fib.h
+++ /dev/null
@@ -1,184 +0,0 @@
-#ifndef _NET_DN_FIB_H
-#define _NET_DN_FIB_H
-
-/* WARNING: The ordering of these elements must match ordering
- * of RTA_* rtnetlink attribute numbers.
- */
-struct dn_kern_rta {
- void *rta_dst;
- void *rta_src;
- int *rta_iif;
- int *rta_oif;
- void *rta_gw;
- u32 *rta_priority;
- void *rta_prefsrc;
- struct rtattr *rta_mx;
- struct rtattr *rta_mp;
- unsigned char *rta_protoinfo;
- u32 *rta_flow;
- struct rta_cacheinfo *rta_ci;
- struct rta_session *rta_sess;
-};
-
-struct dn_fib_res {
- struct fib_rule *r;
- struct dn_fib_info *fi;
- unsigned char prefixlen;
- unsigned char nh_sel;
- unsigned char type;
- unsigned char scope;
-};
-
-struct dn_fib_nh {
- struct net_device *nh_dev;
- unsigned nh_flags;
- unsigned char nh_scope;
- int nh_weight;
- int nh_power;
- int nh_oif;
- __le16 nh_gw;
-};
-
-struct dn_fib_info {
- struct dn_fib_info *fib_next;
- struct dn_fib_info *fib_prev;
- int fib_treeref;
- atomic_t fib_clntref;
- int fib_dead;
- unsigned fib_flags;
- int fib_protocol;
- __le16 fib_prefsrc;
- __u32 fib_priority;
- __u32 fib_metrics[RTAX_MAX];
- int fib_nhs;
- int fib_power;
- struct dn_fib_nh fib_nh[0];
-#define dn_fib_dev fib_nh[0].nh_dev
-};
-
-
-#define DN_FIB_RES_RESET(res) ((res).nh_sel = 0)
-#define DN_FIB_RES_NH(res) ((res).fi->fib_nh[(res).nh_sel])
-
-#define DN_FIB_RES_PREFSRC(res) ((res).fi->fib_prefsrc ? : __dn_fib_res_prefsrc(&res))
-#define DN_FIB_RES_GW(res) (DN_FIB_RES_NH(res).nh_gw)
-#define DN_FIB_RES_DEV(res) (DN_FIB_RES_NH(res).nh_dev)
-#define DN_FIB_RES_OIF(res) (DN_FIB_RES_NH(res).nh_oif)
-
-typedef struct {
- __le16 datum;
-} dn_fib_key_t;
-
-typedef struct {
- __le16 datum;
-} dn_fib_hash_t;
-
-typedef struct {
- __u16 datum;
-} dn_fib_idx_t;
-
-struct dn_fib_node {
- struct dn_fib_node *fn_next;
- struct dn_fib_info *fn_info;
-#define DN_FIB_INFO(f) ((f)->fn_info)
- dn_fib_key_t fn_key;
- u8 fn_type;
- u8 fn_scope;
- u8 fn_state;
-};
-
-
-struct dn_fib_table {
- struct hlist_node hlist;
- u32 n;
-
- int (*insert)(struct dn_fib_table *t, struct rtmsg *r,
- struct dn_kern_rta *rta, struct nlmsghdr *n,
- struct netlink_skb_parms *req);
- int (*delete)(struct dn_fib_table *t, struct rtmsg *r,
- struct dn_kern_rta *rta, struct nlmsghdr *n,
- struct netlink_skb_parms *req);
- int (*lookup)(struct dn_fib_table *t, const struct flowidn *fld,
- struct dn_fib_res *res);
- int (*flush)(struct dn_fib_table *t);
- int (*dump)(struct dn_fib_table *t, struct sk_buff *skb, struct netlink_callback *cb);
-
- unsigned char data[0];
-};
-
-#ifdef CONFIG_DECNET_ROUTER
-/*
- * dn_fib.c
- */
-extern void dn_fib_init(void);
-extern void dn_fib_cleanup(void);
-
-extern int dn_fib_ioctl(struct socket *sock, unsigned int cmd,
- unsigned long arg);
-extern struct dn_fib_info *dn_fib_create_info(const struct rtmsg *r,
- struct dn_kern_rta *rta,
- const struct nlmsghdr *nlh, int *errp);
-extern int dn_fib_semantic_match(int type, struct dn_fib_info *fi,
- const struct flowidn *fld,
- struct dn_fib_res *res);
-extern void dn_fib_release_info(struct dn_fib_info *fi);
-extern __le16 dn_fib_get_attr16(struct rtattr *attr, int attrlen, int type);
-extern void dn_fib_flush(void);
-extern void dn_fib_select_multipath(const struct flowidn *fld,
- struct dn_fib_res *res);
-
-/*
- * dn_tables.c
- */
-extern struct dn_fib_table *dn_fib_get_table(u32 n, int creat);
-extern struct dn_fib_table *dn_fib_empty_table(void);
-extern void dn_fib_table_init(void);
-extern void dn_fib_table_cleanup(void);
-
-/*
- * dn_rules.c
- */
-extern void dn_fib_rules_init(void);
-extern void dn_fib_rules_cleanup(void);
-extern unsigned dnet_addr_type(__le16 addr);
-extern int dn_fib_lookup(struct flowidn *fld, struct dn_fib_res *res);
-
-extern int dn_fib_dump(struct sk_buff *skb, struct netlink_callback *cb);
-
-extern void dn_fib_free_info(struct dn_fib_info *fi);
-
-static inline void dn_fib_info_put(struct dn_fib_info *fi)
-{
- if (atomic_dec_and_test(&fi->fib_clntref))
- dn_fib_free_info(fi);
-}
-
-static inline void dn_fib_res_put(struct dn_fib_res *res)
-{
- if (res->fi)
- dn_fib_info_put(res->fi);
- if (res->r)
- fib_rule_put(res->r);
-}
-
-#else /* Endnode */
-
-#define dn_fib_init() do { } while(0)
-#define dn_fib_cleanup() do { } while(0)
-
-#define dn_fib_lookup(fl, res) (-ESRCH)
-#define dn_fib_info_put(fi) do { } while(0)
-#define dn_fib_select_multipath(fl, res) do { } while(0)
-#define dn_fib_rules_policy(saddr,res,flags) (0)
-#define dn_fib_res_put(res) do { } while(0)
-
-#endif /* CONFIG_DECNET_ROUTER */
-
-static inline __le16 dnet_make_mask(int n)
-{
- if (n)
- return cpu_to_le16(~((1 << (16 - n)) - 1));
- return cpu_to_le16(0);
-}
-
-#endif /* _NET_DN_FIB_H */
diff --git a/ANDROID_3.4.5/include/net/dn_neigh.h b/ANDROID_3.4.5/include/net/dn_neigh.h
deleted file mode 100644
index 4cb4ae7f..00000000
--- a/ANDROID_3.4.5/include/net/dn_neigh.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef _NET_DN_NEIGH_H
-#define _NET_DN_NEIGH_H
-
-/*
- * The position of the first two fields of
- * this structure are critical - SJW
- */
-struct dn_neigh {
- struct neighbour n;
- __le16 addr;
- unsigned long flags;
-#define DN_NDFLAG_R1 0x0001 /* Router L1 */
-#define DN_NDFLAG_R2 0x0002 /* Router L2 */
-#define DN_NDFLAG_P3 0x0004 /* Phase III Node */
- unsigned long blksize;
- __u8 priority;
-};
-
-extern void dn_neigh_init(void);
-extern void dn_neigh_cleanup(void);
-extern int dn_neigh_router_hello(struct sk_buff *skb);
-extern int dn_neigh_endnode_hello(struct sk_buff *skb);
-extern void dn_neigh_pointopoint_hello(struct sk_buff *skb);
-extern int dn_neigh_elist(struct net_device *dev, unsigned char *ptr, int n);
-
-extern struct neigh_table dn_neigh_table;
-
-#endif /* _NET_DN_NEIGH_H */
diff --git a/ANDROID_3.4.5/include/net/dn_nsp.h b/ANDROID_3.4.5/include/net/dn_nsp.h
deleted file mode 100644
index e43a2893..00000000
--- a/ANDROID_3.4.5/include/net/dn_nsp.h
+++ /dev/null
@@ -1,201 +0,0 @@
-#ifndef _NET_DN_NSP_H
-#define _NET_DN_NSP_H
-/******************************************************************************
- (c) 1995-1998 E.M. Serrat emserrat@geocities.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
- 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.
-*******************************************************************************/
-/* dn_nsp.c functions prototyping */
-
-extern void dn_nsp_send_data_ack(struct sock *sk);
-extern void dn_nsp_send_oth_ack(struct sock *sk);
-extern void dn_nsp_delayed_ack(struct sock *sk);
-extern void dn_send_conn_ack(struct sock *sk);
-extern void dn_send_conn_conf(struct sock *sk, gfp_t gfp);
-extern void dn_nsp_send_disc(struct sock *sk, unsigned char type,
- unsigned short reason, gfp_t gfp);
-extern void dn_nsp_return_disc(struct sk_buff *skb, unsigned char type,
- unsigned short reason);
-extern void dn_nsp_send_link(struct sock *sk, unsigned char lsflags, char fcval);
-extern void dn_nsp_send_conninit(struct sock *sk, unsigned char flags);
-
-extern void dn_nsp_output(struct sock *sk);
-extern int dn_nsp_check_xmit_queue(struct sock *sk, struct sk_buff *skb, struct sk_buff_head *q, unsigned short acknum);
-extern void dn_nsp_queue_xmit(struct sock *sk, struct sk_buff *skb, gfp_t gfp, int oob);
-extern unsigned long dn_nsp_persist(struct sock *sk);
-extern int dn_nsp_xmit_timeout(struct sock *sk);
-
-extern int dn_nsp_rx(struct sk_buff *);
-extern int dn_nsp_backlog_rcv(struct sock *sk, struct sk_buff *skb);
-
-extern struct sk_buff *dn_alloc_skb(struct sock *sk, int size, gfp_t pri);
-extern struct sk_buff *dn_alloc_send_skb(struct sock *sk, size_t *size, int noblock, long timeo, int *err);
-
-#define NSP_REASON_OK 0 /* No error */
-#define NSP_REASON_NR 1 /* No resources */
-#define NSP_REASON_UN 2 /* Unrecognised node name */
-#define NSP_REASON_SD 3 /* Node shutting down */
-#define NSP_REASON_ID 4 /* Invalid destination end user */
-#define NSP_REASON_ER 5 /* End user lacks resources */
-#define NSP_REASON_OB 6 /* Object too busy */
-#define NSP_REASON_US 7 /* Unspecified error */
-#define NSP_REASON_TP 8 /* Third-Party abort */
-#define NSP_REASON_EA 9 /* End user has aborted the link */
-#define NSP_REASON_IF 10 /* Invalid node name format */
-#define NSP_REASON_LS 11 /* Local node shutdown */
-#define NSP_REASON_LL 32 /* Node lacks logical-link resources */
-#define NSP_REASON_LE 33 /* End user lacks logical-link resources */
-#define NSP_REASON_UR 34 /* Unacceptable RQSTRID or PASSWORD field */
-#define NSP_REASON_UA 36 /* Unacceptable ACCOUNT field */
-#define NSP_REASON_TM 38 /* End user timed out logical link */
-#define NSP_REASON_NU 39 /* Node unreachable */
-#define NSP_REASON_NL 41 /* No-link message */
-#define NSP_REASON_DC 42 /* Disconnect confirm */
-#define NSP_REASON_IO 43 /* Image data field overflow */
-
-#define NSP_DISCINIT 0x38
-#define NSP_DISCCONF 0x48
-
-/*------------------------- NSP - messages ------------------------------*/
-/* Data Messages */
-/*---------------*/
-
-/* Data Messages (data segment/interrupt/link service) */
-
-struct nsp_data_seg_msg {
- __u8 msgflg;
- __le16 dstaddr;
- __le16 srcaddr;
-} __packed;
-
-struct nsp_data_opt_msg {
- __le16 acknum;
- __le16 segnum;
- __le16 lsflgs;
-} __packed;
-
-struct nsp_data_opt_msg1 {
- __le16 acknum;
- __le16 segnum;
-} __packed;
-
-
-/* Acknowledgment Message (data/other data) */
-struct nsp_data_ack_msg {
- __u8 msgflg;
- __le16 dstaddr;
- __le16 srcaddr;
- __le16 acknum;
-} __packed;
-
-/* Connect Acknowledgment Message */
-struct nsp_conn_ack_msg {
- __u8 msgflg;
- __le16 dstaddr;
-} __packed;
-
-
-/* Connect Initiate/Retransmit Initiate/Connect Confirm */
-struct nsp_conn_init_msg {
- __u8 msgflg;
-#define NSP_CI 0x18 /* Connect Initiate */
-#define NSP_RCI 0x68 /* Retrans. Conn Init */
- __le16 dstaddr;
- __le16 srcaddr;
- __u8 services;
-#define NSP_FC_NONE 0x00 /* Flow Control None */
-#define NSP_FC_SRC 0x04 /* Seg Req. Count */
-#define NSP_FC_SCMC 0x08 /* Sess. Control Mess */
-#define NSP_FC_MASK 0x0c /* FC type mask */
- __u8 info;
- __le16 segsize;
-} __packed;
-
-/* Disconnect Initiate/Disconnect Confirm */
-struct nsp_disconn_init_msg {
- __u8 msgflg;
- __le16 dstaddr;
- __le16 srcaddr;
- __le16 reason;
-} __packed;
-
-
-
-struct srcobj_fmt {
- __u8 format;
- __u8 task;
- __le16 grpcode;
- __le16 usrcode;
- __u8 dlen;
-} __packed;
-
-/*
- * A collection of functions for manipulating the sequence
- * numbers used in NSP. Similar in operation to the functions
- * of the same name in TCP.
- */
-static __inline__ int dn_before(__u16 seq1, __u16 seq2)
-{
- seq1 &= 0x0fff;
- seq2 &= 0x0fff;
-
- return (int)((seq1 - seq2) & 0x0fff) > 2048;
-}
-
-
-static __inline__ int dn_after(__u16 seq1, __u16 seq2)
-{
- seq1 &= 0x0fff;
- seq2 &= 0x0fff;
-
- return (int)((seq2 - seq1) & 0x0fff) > 2048;
-}
-
-static __inline__ int dn_equal(__u16 seq1, __u16 seq2)
-{
- return ((seq1 ^ seq2) & 0x0fff) == 0;
-}
-
-static __inline__ int dn_before_or_equal(__u16 seq1, __u16 seq2)
-{
- return (dn_before(seq1, seq2) || dn_equal(seq1, seq2));
-}
-
-static __inline__ void seq_add(__u16 *seq, __u16 off)
-{
- (*seq) += off;
- (*seq) &= 0x0fff;
-}
-
-static __inline__ int seq_next(__u16 seq1, __u16 seq2)
-{
- return dn_equal(seq1 + 1, seq2);
-}
-
-/*
- * Can we delay the ack ?
- */
-static __inline__ int sendack(__u16 seq)
-{
- return (int)((seq & 0x1000) ? 0 : 1);
-}
-
-/*
- * Is socket congested ?
- */
-static __inline__ int dn_congested(struct sock *sk)
-{
- return atomic_read(&sk->sk_rmem_alloc) > (sk->sk_rcvbuf >> 1);
-}
-
-#define DN_MAX_NSP_DATA_HEADER (11)
-
-#endif /* _NET_DN_NSP_H */
diff --git a/ANDROID_3.4.5/include/net/dn_route.h b/ANDROID_3.4.5/include/net/dn_route.h
deleted file mode 100644
index 81712cfa..00000000
--- a/ANDROID_3.4.5/include/net/dn_route.h
+++ /dev/null
@@ -1,117 +0,0 @@
-#ifndef _NET_DN_ROUTE_H
-#define _NET_DN_ROUTE_H
-
-/******************************************************************************
- (c) 1995-1998 E.M. Serrat emserrat@geocities.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
- 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.
-*******************************************************************************/
-
-extern struct sk_buff *dn_alloc_skb(struct sock *sk, int size, gfp_t pri);
-extern int dn_route_output_sock(struct dst_entry **pprt, struct flowidn *, struct sock *sk, int flags);
-extern int dn_cache_dump(struct sk_buff *skb, struct netlink_callback *cb);
-extern void dn_rt_cache_flush(int delay);
-
-/* Masks for flags field */
-#define DN_RT_F_PID 0x07 /* Mask for packet type */
-#define DN_RT_F_PF 0x80 /* Padding Follows */
-#define DN_RT_F_VER 0x40 /* Version =0 discard packet if ==1 */
-#define DN_RT_F_IE 0x20 /* Intra Ethernet, Reserved in short pkt */
-#define DN_RT_F_RTS 0x10 /* Packet is being returned to sender */
-#define DN_RT_F_RQR 0x08 /* Return packet to sender upon non-delivery */
-
-/* Mask for types of routing packets */
-#define DN_RT_PKT_MSK 0x06
-/* Types of routing packets */
-#define DN_RT_PKT_SHORT 0x02 /* Short routing packet */
-#define DN_RT_PKT_LONG 0x06 /* Long routing packet */
-
-/* Mask for control/routing selection */
-#define DN_RT_PKT_CNTL 0x01 /* Set to 1 if a control packet */
-/* Types of control packets */
-#define DN_RT_CNTL_MSK 0x0f /* Mask for control packets */
-#define DN_RT_PKT_INIT 0x01 /* Initialisation packet */
-#define DN_RT_PKT_VERI 0x03 /* Verification Message */
-#define DN_RT_PKT_HELO 0x05 /* Hello and Test Message */
-#define DN_RT_PKT_L1RT 0x07 /* Level 1 Routing Message */
-#define DN_RT_PKT_L2RT 0x09 /* Level 2 Routing Message */
-#define DN_RT_PKT_ERTH 0x0b /* Ethernet Router Hello */
-#define DN_RT_PKT_EEDH 0x0d /* Ethernet EndNode Hello */
-
-/* Values for info field in hello message */
-#define DN_RT_INFO_TYPE 0x03 /* Type mask */
-#define DN_RT_INFO_L1RT 0x02 /* L1 Router */
-#define DN_RT_INFO_L2RT 0x01 /* L2 Router */
-#define DN_RT_INFO_ENDN 0x03 /* EndNode */
-#define DN_RT_INFO_VERI 0x04 /* Verification Reqd. */
-#define DN_RT_INFO_RJCT 0x08 /* Reject Flag, Reserved */
-#define DN_RT_INFO_VFLD 0x10 /* Verification Failed, Reserved */
-#define DN_RT_INFO_NOML 0x20 /* No Multicast traffic accepted */
-#define DN_RT_INFO_BLKR 0x40 /* Blocking Requested */
-
-/*
- * The fl structure is what we used to look up the route.
- * The rt_saddr & rt_daddr entries are the same as key.saddr & key.daddr
- * except for local input routes, where the rt_saddr = fl.fld_dst and
- * rt_daddr = fl.fld_src to allow the route to be used for returning
- * packets to the originating host.
- */
-struct dn_route {
- struct dst_entry dst;
-
- struct flowidn fld;
-
- __le16 rt_saddr;
- __le16 rt_daddr;
- __le16 rt_gateway;
- __le16 rt_local_src; /* Source used for forwarding packets */
- __le16 rt_src_map;
- __le16 rt_dst_map;
-
- unsigned rt_flags;
- unsigned rt_type;
-};
-
-static inline bool dn_is_input_route(struct dn_route *rt)
-{
- return rt->fld.flowidn_iif != 0;
-}
-
-static inline bool dn_is_output_route(struct dn_route *rt)
-{
- return rt->fld.flowidn_iif == 0;
-}
-
-extern void dn_route_init(void);
-extern void dn_route_cleanup(void);
-
-#include <net/sock.h>
-#include <linux/if_arp.h>
-
-static inline void dn_rt_send(struct sk_buff *skb)
-{
- dev_queue_xmit(skb);
-}
-
-static inline void dn_rt_finish_output(struct sk_buff *skb, char *dst, char *src)
-{
- struct net_device *dev = skb->dev;
-
- if ((dev->type != ARPHRD_ETHER) && (dev->type != ARPHRD_LOOPBACK))
- dst = NULL;
-
- if (dev_hard_header(skb, dev, ETH_P_DNA_RT, dst, src, skb->len) >= 0)
- dn_rt_send(skb);
- else
- kfree_skb(skb);
-}
-
-#endif /* _NET_DN_ROUTE_H */
diff --git a/ANDROID_3.4.5/include/net/dsa.h b/ANDROID_3.4.5/include/net/dsa.h
deleted file mode 100644
index 7828ebf9..00000000
--- a/ANDROID_3.4.5/include/net/dsa.h
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- * include/net/dsa.h - Driver for Distributed Switch Architecture switch chips
- * Copyright (c) 2008-2009 Marvell Semiconductor
- *
- * 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_NET_DSA_H
-#define __LINUX_NET_DSA_H
-
-#include <linux/if_ether.h>
-#include <linux/list.h>
-#include <linux/timer.h>
-#include <linux/workqueue.h>
-
-#define DSA_MAX_SWITCHES 4
-#define DSA_MAX_PORTS 12
-
-struct dsa_chip_data {
- /*
- * How to access the switch configuration registers.
- */
- struct device *mii_bus;
- int sw_addr;
-
- /*
- * The names of the switch's ports. Use "cpu" to
- * designate the switch port that the cpu is connected to,
- * "dsa" to indicate that this port is a DSA link to
- * another switch, NULL to indicate the port is unused,
- * or any other string to indicate this is a physical port.
- */
- char *port_names[DSA_MAX_PORTS];
-
- /*
- * An array (with nr_chips elements) of which element [a]
- * indicates which port on this switch should be used to
- * send packets to that are destined for switch a. Can be
- * NULL if there is only one switch chip.
- */
- s8 *rtable;
-};
-
-struct dsa_platform_data {
- /*
- * Reference to a Linux network interface that connects
- * to the root switch chip of the tree.
- */
- struct device *netdev;
-
- /*
- * Info structs describing each of the switch chips
- * connected via this network interface.
- */
- int nr_chips;
- struct dsa_chip_data *chip;
-};
-
-struct dsa_switch_tree {
- /*
- * Configuration data for the platform device that owns
- * this dsa switch tree instance.
- */
- struct dsa_platform_data *pd;
-
- /*
- * Reference to network device to use, and which tagging
- * protocol to use.
- */
- struct net_device *master_netdev;
- __be16 tag_protocol;
-
- /*
- * The switch and port to which the CPU is attached.
- */
- s8 cpu_switch;
- s8 cpu_port;
-
- /*
- * Link state polling.
- */
- int link_poll_needed;
- struct work_struct link_poll_work;
- struct timer_list link_poll_timer;
-
- /*
- * Data for the individual switch chips.
- */
- struct dsa_switch *ds[DSA_MAX_SWITCHES];
-};
-
-struct dsa_switch {
- /*
- * Parent switch tree, and switch index.
- */
- struct dsa_switch_tree *dst;
- int index;
-
- /*
- * Configuration data for this switch.
- */
- struct dsa_chip_data *pd;
-
- /*
- * The used switch driver.
- */
- struct dsa_switch_driver *drv;
-
- /*
- * Reference to mii bus to use.
- */
- struct mii_bus *master_mii_bus;
-
- /*
- * Slave mii_bus and devices for the individual ports.
- */
- u32 dsa_port_mask;
- u32 phys_port_mask;
- struct mii_bus *slave_mii_bus;
- struct net_device *ports[DSA_MAX_PORTS];
-};
-
-static inline bool dsa_is_cpu_port(struct dsa_switch *ds, int p)
-{
- return !!(ds->index == ds->dst->cpu_switch && p == ds->dst->cpu_port);
-}
-
-static inline u8 dsa_upstream_port(struct dsa_switch *ds)
-{
- struct dsa_switch_tree *dst = ds->dst;
-
- /*
- * If this is the root switch (i.e. the switch that connects
- * to the CPU), return the cpu port number on this switch.
- * Else return the (DSA) port number that connects to the
- * switch that is one hop closer to the cpu.
- */
- if (dst->cpu_switch == ds->index)
- return dst->cpu_port;
- else
- return ds->pd->rtable[dst->cpu_switch];
-}
-
-struct dsa_switch_driver {
- struct list_head list;
-
- __be16 tag_protocol;
- int priv_size;
-
- /*
- * Probing and setup.
- */
- char *(*probe)(struct mii_bus *bus, int sw_addr);
- int (*setup)(struct dsa_switch *ds);
- int (*set_addr)(struct dsa_switch *ds, u8 *addr);
-
- /*
- * Access to the switch's PHY registers.
- */
- int (*phy_read)(struct dsa_switch *ds, int port, int regnum);
- int (*phy_write)(struct dsa_switch *ds, int port,
- int regnum, u16 val);
-
- /*
- * Link state polling and IRQ handling.
- */
- void (*poll_link)(struct dsa_switch *ds);
-
- /*
- * ethtool hardware statistics.
- */
- void (*get_strings)(struct dsa_switch *ds, int port, uint8_t *data);
- void (*get_ethtool_stats)(struct dsa_switch *ds,
- int port, uint64_t *data);
- int (*get_sset_count)(struct dsa_switch *ds);
-};
-
-void register_switch_driver(struct dsa_switch_driver *type);
-void unregister_switch_driver(struct dsa_switch_driver *type);
-
-/*
- * The original DSA tag format and some other tag formats have no
- * ethertype, which means that we need to add a little hack to the
- * networking receive path to make sure that received frames get
- * the right ->protocol assigned to them when one of those tag
- * formats is in use.
- */
-static inline bool dsa_uses_dsa_tags(struct dsa_switch_tree *dst)
-{
- return !!(dst->tag_protocol == htons(ETH_P_DSA));
-}
-
-static inline bool dsa_uses_trailer_tags(struct dsa_switch_tree *dst)
-{
- return !!(dst->tag_protocol == htons(ETH_P_TRAILER));
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/dsfield.h b/ANDROID_3.4.5/include/net/dsfield.h
deleted file mode 100644
index 8a8d4e06..00000000
--- a/ANDROID_3.4.5/include/net/dsfield.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* include/net/dsfield.h - Manipulation of the Differentiated Services field */
-
-/* Written 1998-2000 by Werner Almesberger, EPFL ICA */
-
-
-#ifndef __NET_DSFIELD_H
-#define __NET_DSFIELD_H
-
-#include <linux/types.h>
-#include <linux/ip.h>
-#include <linux/ipv6.h>
-#include <asm/byteorder.h>
-
-
-static inline __u8 ipv4_get_dsfield(const struct iphdr *iph)
-{
- return iph->tos;
-}
-
-
-static inline __u8 ipv6_get_dsfield(const struct ipv6hdr *ipv6h)
-{
- return ntohs(*(const __be16 *)ipv6h) >> 4;
-}
-
-
-static inline void ipv4_change_dsfield(struct iphdr *iph,__u8 mask,
- __u8 value)
-{
- __u32 check = ntohs((__force __be16)iph->check);
- __u8 dsfield;
-
- dsfield = (iph->tos & mask) | value;
- check += iph->tos;
- if ((check+1) >> 16) check = (check+1) & 0xffff;
- check -= dsfield;
- check += check >> 16; /* adjust carry */
- iph->check = (__force __sum16)htons(check);
- iph->tos = dsfield;
-}
-
-
-static inline void ipv6_change_dsfield(struct ipv6hdr *ipv6h,__u8 mask,
- __u8 value)
-{
- __u16 tmp;
-
- tmp = ntohs(*(__be16 *) ipv6h);
- tmp = (tmp & ((mask << 4) | 0xf00f)) | (value << 4);
- *(__be16 *) ipv6h = htons(tmp);
-}
-
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/dst.h b/ANDROID_3.4.5/include/net/dst.h
deleted file mode 100644
index 8197eadc..00000000
--- a/ANDROID_3.4.5/include/net/dst.h
+++ /dev/null
@@ -1,473 +0,0 @@
-/*
- * net/dst.h Protocol independent destination cache definitions.
- *
- * Authors: Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru>
- *
- */
-
-#ifndef _NET_DST_H
-#define _NET_DST_H
-
-#include <net/dst_ops.h>
-#include <linux/netdevice.h>
-#include <linux/rtnetlink.h>
-#include <linux/rcupdate.h>
-#include <linux/bug.h>
-#include <linux/jiffies.h>
-#include <net/neighbour.h>
-#include <asm/processor.h>
-
-#define DST_GC_MIN (HZ/10)
-#define DST_GC_INC (HZ/2)
-#define DST_GC_MAX (120*HZ)
-
-/* Each dst_entry has reference count and sits in some parent list(s).
- * When it is removed from parent list, it is "freed" (dst_free).
- * After this it enters dead state (dst->obsolete > 0) and if its refcnt
- * is zero, it can be destroyed immediately, otherwise it is added
- * to gc list and garbage collector periodically checks the refcnt.
- */
-
-struct sk_buff;
-
-struct dst_entry {
- struct rcu_head rcu_head;
- struct dst_entry *child;
- struct net_device *dev;
- struct dst_ops *ops;
- unsigned long _metrics;
- union {
- unsigned long expires;
- /* point to where the dst_entry copied from */
- struct dst_entry *from;
- };
- struct dst_entry *path;
- struct neighbour __rcu *_neighbour;
-#ifdef CONFIG_XFRM
- struct xfrm_state *xfrm;
-#else
- void *__pad1;
-#endif
- int (*input)(struct sk_buff*);
- int (*output)(struct sk_buff*);
-
- int flags;
-#define DST_HOST 0x0001
-#define DST_NOXFRM 0x0002
-#define DST_NOPOLICY 0x0004
-#define DST_NOHASH 0x0008
-#define DST_NOCACHE 0x0010
-#define DST_NOCOUNT 0x0020
-#define DST_NOPEER 0x0040
-#define DST_FAKE_RTABLE 0x0080
-#define DST_XFRM_TUNNEL 0x0100
-
- short error;
- short obsolete;
- unsigned short header_len; /* more space at head required */
- unsigned short trailer_len; /* space to reserve at tail */
-#ifdef CONFIG_IP_ROUTE_CLASSID
- __u32 tclassid;
-#else
- __u32 __pad2;
-#endif
-
- /*
- * Align __refcnt to a 64 bytes alignment
- * (L1_CACHE_SIZE would be too much)
- */
-#ifdef CONFIG_64BIT
- long __pad_to_align_refcnt[2];
-#endif
- /*
- * __refcnt wants to be on a different cache line from
- * input/output/ops or performance tanks badly
- */
- atomic_t __refcnt; /* client references */
- int __use;
- unsigned long lastuse;
- union {
- struct dst_entry *next;
- struct rtable __rcu *rt_next;
- struct rt6_info *rt6_next;
- struct dn_route __rcu *dn_next;
- };
-};
-
-static inline struct neighbour *dst_get_neighbour_noref(struct dst_entry *dst)
-{
- return rcu_dereference(dst->_neighbour);
-}
-
-static inline struct neighbour *dst_get_neighbour_noref_raw(struct dst_entry *dst)
-{
- return rcu_dereference_raw(dst->_neighbour);
-}
-
-static inline void dst_set_neighbour(struct dst_entry *dst, struct neighbour *neigh)
-{
- rcu_assign_pointer(dst->_neighbour, neigh);
-}
-
-extern u32 *dst_cow_metrics_generic(struct dst_entry *dst, unsigned long old);
-extern const u32 dst_default_metrics[RTAX_MAX];
-
-#define DST_METRICS_READ_ONLY 0x1UL
-#define __DST_METRICS_PTR(Y) \
- ((u32 *)((Y) & ~DST_METRICS_READ_ONLY))
-#define DST_METRICS_PTR(X) __DST_METRICS_PTR((X)->_metrics)
-
-static inline bool dst_metrics_read_only(const struct dst_entry *dst)
-{
- return dst->_metrics & DST_METRICS_READ_ONLY;
-}
-
-extern void __dst_destroy_metrics_generic(struct dst_entry *dst, unsigned long old);
-
-static inline void dst_destroy_metrics_generic(struct dst_entry *dst)
-{
- unsigned long val = dst->_metrics;
- if (!(val & DST_METRICS_READ_ONLY))
- __dst_destroy_metrics_generic(dst, val);
-}
-
-static inline u32 *dst_metrics_write_ptr(struct dst_entry *dst)
-{
- unsigned long p = dst->_metrics;
-
- BUG_ON(!p);
-
- if (p & DST_METRICS_READ_ONLY)
- return dst->ops->cow_metrics(dst, p);
- return __DST_METRICS_PTR(p);
-}
-
-/* This may only be invoked before the entry has reached global
- * visibility.
- */
-static inline void dst_init_metrics(struct dst_entry *dst,
- const u32 *src_metrics,
- bool read_only)
-{
- dst->_metrics = ((unsigned long) src_metrics) |
- (read_only ? DST_METRICS_READ_ONLY : 0);
-}
-
-static inline void dst_copy_metrics(struct dst_entry *dest, const struct dst_entry *src)
-{
- u32 *dst_metrics = dst_metrics_write_ptr(dest);
-
- if (dst_metrics) {
- u32 *src_metrics = DST_METRICS_PTR(src);
-
- memcpy(dst_metrics, src_metrics, RTAX_MAX * sizeof(u32));
- }
-}
-
-static inline u32 *dst_metrics_ptr(struct dst_entry *dst)
-{
- return DST_METRICS_PTR(dst);
-}
-
-static inline u32
-dst_metric_raw(const struct dst_entry *dst, const int metric)
-{
- u32 *p = DST_METRICS_PTR(dst);
-
- return p[metric-1];
-}
-
-static inline u32
-dst_metric(const struct dst_entry *dst, const int metric)
-{
- WARN_ON_ONCE(metric == RTAX_HOPLIMIT ||
- metric == RTAX_ADVMSS ||
- metric == RTAX_MTU);
- return dst_metric_raw(dst, metric);
-}
-
-static inline u32
-dst_metric_advmss(const struct dst_entry *dst)
-{
- u32 advmss = dst_metric_raw(dst, RTAX_ADVMSS);
-
- if (!advmss)
- advmss = dst->ops->default_advmss(dst);
-
- return advmss;
-}
-
-static inline void dst_metric_set(struct dst_entry *dst, int metric, u32 val)
-{
- u32 *p = dst_metrics_write_ptr(dst);
-
- if (p)
- p[metric-1] = val;
-}
-
-static inline u32
-dst_feature(const struct dst_entry *dst, u32 feature)
-{
- return dst_metric(dst, RTAX_FEATURES) & feature;
-}
-
-static inline u32 dst_mtu(const struct dst_entry *dst)
-{
- return dst->ops->mtu(dst);
-}
-
-/* RTT metrics are stored in milliseconds for user ABI, but used as jiffies */
-static inline unsigned long dst_metric_rtt(const struct dst_entry *dst, int metric)
-{
- return msecs_to_jiffies(dst_metric(dst, metric));
-}
-
-static inline void set_dst_metric_rtt(struct dst_entry *dst, int metric,
- unsigned long rtt)
-{
- dst_metric_set(dst, metric, jiffies_to_msecs(rtt));
-}
-
-static inline u32
-dst_allfrag(const struct dst_entry *dst)
-{
- int ret = dst_feature(dst, RTAX_FEATURE_ALLFRAG);
- return ret;
-}
-
-static inline int
-dst_metric_locked(const struct dst_entry *dst, int metric)
-{
- return dst_metric(dst, RTAX_LOCK) & (1<<metric);
-}
-
-static inline void dst_hold(struct dst_entry * dst)
-{
- /*
- * If your kernel compilation stops here, please check
- * __pad_to_align_refcnt declaration in struct dst_entry
- */
- BUILD_BUG_ON(offsetof(struct dst_entry, __refcnt) & 63);
- atomic_inc(&dst->__refcnt);
-}
-
-static inline void dst_use(struct dst_entry *dst, unsigned long time)
-{
- dst_hold(dst);
- dst->__use++;
- dst->lastuse = time;
-}
-
-static inline void dst_use_noref(struct dst_entry *dst, unsigned long time)
-{
- dst->__use++;
- dst->lastuse = time;
-}
-
-static inline
-struct dst_entry * dst_clone(struct dst_entry * dst)
-{
- if (dst)
- atomic_inc(&dst->__refcnt);
- return dst;
-}
-
-extern void dst_release(struct dst_entry *dst);
-
-static inline void refdst_drop(unsigned long refdst)
-{
- if (!(refdst & SKB_DST_NOREF))
- dst_release((struct dst_entry *)(refdst & SKB_DST_PTRMASK));
-}
-
-/**
- * skb_dst_drop - drops skb dst
- * @skb: buffer
- *
- * Drops dst reference count if a reference was taken.
- */
-static inline void skb_dst_drop(struct sk_buff *skb)
-{
- if (skb->_skb_refdst) {
- refdst_drop(skb->_skb_refdst);
- skb->_skb_refdst = 0UL;
- }
-}
-
-static inline void skb_dst_copy(struct sk_buff *nskb, const struct sk_buff *oskb)
-{
- nskb->_skb_refdst = oskb->_skb_refdst;
- if (!(nskb->_skb_refdst & SKB_DST_NOREF))
- dst_clone(skb_dst(nskb));
-}
-
-/**
- * skb_dst_force - makes sure skb dst is refcounted
- * @skb: buffer
- *
- * If dst is not yet refcounted, let's do it
- */
-static inline void skb_dst_force(struct sk_buff *skb)
-{
- if (skb_dst_is_noref(skb)) {
- WARN_ON(!rcu_read_lock_held());
- skb->_skb_refdst &= ~SKB_DST_NOREF;
- dst_clone(skb_dst(skb));
- }
-}
-
-
-/**
- * __skb_tunnel_rx - prepare skb for rx reinsert
- * @skb: buffer
- * @dev: tunnel device
- *
- * After decapsulation, packet is going to re-enter (netif_rx()) our stack,
- * so make some cleanups. (no accounting done)
- */
-static inline void __skb_tunnel_rx(struct sk_buff *skb, struct net_device *dev)
-{
- skb->dev = dev;
-
- /*
- * Clear rxhash so that we can recalulate the hash for the
- * encapsulated packet, unless we have already determine the hash
- * over the L4 4-tuple.
- */
- if (!skb->l4_rxhash)
- skb->rxhash = 0;
- skb_set_queue_mapping(skb, 0);
- skb_dst_drop(skb);
- nf_reset(skb);
-}
-
-/**
- * skb_tunnel_rx - prepare skb for rx reinsert
- * @skb: buffer
- * @dev: tunnel device
- *
- * After decapsulation, packet is going to re-enter (netif_rx()) our stack,
- * so make some cleanups, and perform accounting.
- * Note: this accounting is not SMP safe.
- */
-static inline void skb_tunnel_rx(struct sk_buff *skb, struct net_device *dev)
-{
- /* TODO : stats should be SMP safe */
- dev->stats.rx_packets++;
- dev->stats.rx_bytes += skb->len;
- __skb_tunnel_rx(skb, dev);
-}
-
-/* Children define the path of the packet through the
- * Linux networking. Thus, destinations are stackable.
- */
-
-static inline struct dst_entry *skb_dst_pop(struct sk_buff *skb)
-{
- struct dst_entry *child = dst_clone(skb_dst(skb)->child);
-
- skb_dst_drop(skb);
- return child;
-}
-
-extern int dst_discard(struct sk_buff *skb);
-extern void *dst_alloc(struct dst_ops * ops, struct net_device *dev,
- int initial_ref, int initial_obsolete, int flags);
-extern void __dst_free(struct dst_entry * dst);
-extern struct dst_entry *dst_destroy(struct dst_entry * dst);
-
-static inline void dst_free(struct dst_entry * dst)
-{
- if (dst->obsolete > 1)
- return;
- if (!atomic_read(&dst->__refcnt)) {
- dst = dst_destroy(dst);
- if (!dst)
- return;
- }
- __dst_free(dst);
-}
-
-static inline void dst_rcu_free(struct rcu_head *head)
-{
- struct dst_entry *dst = container_of(head, struct dst_entry, rcu_head);
- dst_free(dst);
-}
-
-static inline void dst_confirm(struct dst_entry *dst)
-{
- if (dst) {
- struct neighbour *n;
-
- rcu_read_lock();
- n = dst_get_neighbour_noref(dst);
- neigh_confirm(n);
- rcu_read_unlock();
- }
-}
-
-static inline struct neighbour *dst_neigh_lookup(const struct dst_entry *dst, const void *daddr)
-{
- return dst->ops->neigh_lookup(dst, daddr);
-}
-
-static inline void dst_link_failure(struct sk_buff *skb)
-{
- struct dst_entry *dst = skb_dst(skb);
- if (dst && dst->ops && dst->ops->link_failure)
- dst->ops->link_failure(skb);
-}
-
-static inline void dst_set_expires(struct dst_entry *dst, int timeout)
-{
- unsigned long expires = jiffies + timeout;
-
- if (expires == 0)
- expires = 1;
-
- if (dst->expires == 0 || time_before(expires, dst->expires))
- dst->expires = expires;
-}
-
-/* Output packet to network from transport. */
-static inline int dst_output(struct sk_buff *skb)
-{
- return skb_dst(skb)->output(skb);
-}
-
-/* Input packet from network to transport. */
-static inline int dst_input(struct sk_buff *skb)
-{
- return skb_dst(skb)->input(skb);
-}
-
-static inline struct dst_entry *dst_check(struct dst_entry *dst, u32 cookie)
-{
- if (dst->obsolete)
- dst = dst->ops->check(dst, cookie);
- return dst;
-}
-
-extern void dst_init(void);
-
-/* Flags for xfrm_lookup flags argument. */
-enum {
- XFRM_LOOKUP_ICMP = 1 << 0,
-};
-
-struct flowi;
-#ifndef CONFIG_XFRM
-static inline struct dst_entry *xfrm_lookup(struct net *net,
- struct dst_entry *dst_orig,
- const struct flowi *fl, struct sock *sk,
- int flags)
-{
- return dst_orig;
-}
-#else
-extern struct dst_entry *xfrm_lookup(struct net *net, struct dst_entry *dst_orig,
- const struct flowi *fl, struct sock *sk,
- int flags);
-#endif
-
-#endif /* _NET_DST_H */
diff --git a/ANDROID_3.4.5/include/net/dst_ops.h b/ANDROID_3.4.5/include/net/dst_ops.h
deleted file mode 100644
index e1c2ee0e..00000000
--- a/ANDROID_3.4.5/include/net/dst_ops.h
+++ /dev/null
@@ -1,68 +0,0 @@
-#ifndef _NET_DST_OPS_H
-#define _NET_DST_OPS_H
-#include <linux/types.h>
-#include <linux/percpu_counter.h>
-#include <linux/cache.h>
-
-struct dst_entry;
-struct kmem_cachep;
-struct net_device;
-struct sk_buff;
-
-struct dst_ops {
- unsigned short family;
- __be16 protocol;
- unsigned gc_thresh;
-
- int (*gc)(struct dst_ops *ops);
- struct dst_entry * (*check)(struct dst_entry *, __u32 cookie);
- unsigned int (*default_advmss)(const struct dst_entry *);
- unsigned int (*mtu)(const struct dst_entry *);
- u32 * (*cow_metrics)(struct dst_entry *, unsigned long);
- void (*destroy)(struct dst_entry *);
- void (*ifdown)(struct dst_entry *,
- struct net_device *dev, int how);
- struct dst_entry * (*negative_advice)(struct dst_entry *);
- void (*link_failure)(struct sk_buff *);
- void (*update_pmtu)(struct dst_entry *dst, u32 mtu);
- int (*local_out)(struct sk_buff *skb);
- struct neighbour * (*neigh_lookup)(const struct dst_entry *dst, const void *daddr);
-
- struct kmem_cache *kmem_cachep;
-
- struct percpu_counter pcpuc_entries ____cacheline_aligned_in_smp;
-};
-
-static inline int dst_entries_get_fast(struct dst_ops *dst)
-{
- return percpu_counter_read_positive(&dst->pcpuc_entries);
-}
-
-static inline int dst_entries_get_slow(struct dst_ops *dst)
-{
- int res;
-
- local_bh_disable();
- res = percpu_counter_sum_positive(&dst->pcpuc_entries);
- local_bh_enable();
- return res;
-}
-
-static inline void dst_entries_add(struct dst_ops *dst, int val)
-{
- local_bh_disable();
- percpu_counter_add(&dst->pcpuc_entries, val);
- local_bh_enable();
-}
-
-static inline int dst_entries_init(struct dst_ops *dst)
-{
- return percpu_counter_init(&dst->pcpuc_entries, 0);
-}
-
-static inline void dst_entries_destroy(struct dst_ops *dst)
-{
- percpu_counter_destroy(&dst->pcpuc_entries);
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/esp.h b/ANDROID_3.4.5/include/net/esp.h
deleted file mode 100644
index d5845133..00000000
--- a/ANDROID_3.4.5/include/net/esp.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef _NET_ESP_H
-#define _NET_ESP_H
-
-#include <linux/skbuff.h>
-
-struct crypto_aead;
-
-struct esp_data {
- /* 0..255 */
- int padlen;
-
- /* Confidentiality & Integrity */
- struct crypto_aead *aead;
-};
-
-extern void *pskb_put(struct sk_buff *skb, struct sk_buff *tail, int len);
-
-struct ip_esp_hdr;
-
-static inline struct ip_esp_hdr *ip_esp_hdr(const struct sk_buff *skb)
-{
- return (struct ip_esp_hdr *)skb_transport_header(skb);
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/ethoc.h b/ANDROID_3.4.5/include/net/ethoc.h
deleted file mode 100644
index 96f3789b..00000000
--- a/ANDROID_3.4.5/include/net/ethoc.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * linux/include/net/ethoc.h
- *
- * Copyright (C) 2008-2009 Avionic Design GmbH
- *
- * 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.
- *
- * Written by Thierry Reding <thierry.reding@avionic-design.de>
- */
-
-#ifndef LINUX_NET_ETHOC_H
-#define LINUX_NET_ETHOC_H 1
-
-struct ethoc_platform_data {
- u8 hwaddr[IFHWADDRLEN];
- s8 phy_id;
-};
-
-#endif /* !LINUX_NET_ETHOC_H */
-
diff --git a/ANDROID_3.4.5/include/net/fib_rules.h b/ANDROID_3.4.5/include/net/fib_rules.h
deleted file mode 100644
index 075f1e3a..00000000
--- a/ANDROID_3.4.5/include/net/fib_rules.h
+++ /dev/null
@@ -1,119 +0,0 @@
-#ifndef __NET_FIB_RULES_H
-#define __NET_FIB_RULES_H
-
-#include <linux/types.h>
-#include <linux/slab.h>
-#include <linux/netdevice.h>
-#include <linux/fib_rules.h>
-#include <net/flow.h>
-#include <net/rtnetlink.h>
-
-struct fib_rule {
- struct list_head list;
- atomic_t refcnt;
- int iifindex;
- int oifindex;
- u32 mark;
- u32 mark_mask;
- u32 pref;
- u32 flags;
- u32 table;
- u8 action;
- u32 target;
- struct fib_rule __rcu *ctarget;
- char iifname[IFNAMSIZ];
- char oifname[IFNAMSIZ];
- struct rcu_head rcu;
- struct net * fr_net;
-};
-
-struct fib_lookup_arg {
- void *lookup_ptr;
- void *result;
- struct fib_rule *rule;
- int flags;
-#define FIB_LOOKUP_NOREF 1
-};
-
-struct fib_rules_ops {
- int family;
- struct list_head list;
- int rule_size;
- int addr_size;
- int unresolved_rules;
- int nr_goto_rules;
-
- int (*action)(struct fib_rule *,
- struct flowi *, int,
- struct fib_lookup_arg *);
- int (*match)(struct fib_rule *,
- struct flowi *, int);
- int (*configure)(struct fib_rule *,
- struct sk_buff *,
- struct fib_rule_hdr *,
- struct nlattr **);
- int (*compare)(struct fib_rule *,
- struct fib_rule_hdr *,
- struct nlattr **);
- int (*fill)(struct fib_rule *, struct sk_buff *,
- struct fib_rule_hdr *);
- u32 (*default_pref)(struct fib_rules_ops *ops);
- size_t (*nlmsg_payload)(struct fib_rule *);
-
- /* Called after modifications to the rules set, must flush
- * the route cache if one exists. */
- void (*flush_cache)(struct fib_rules_ops *ops);
-
- int nlgroup;
- const struct nla_policy *policy;
- struct list_head rules_list;
- struct module *owner;
- struct net *fro_net;
- struct rcu_head rcu;
-};
-
-#define FRA_GENERIC_POLICY \
- [FRA_IIFNAME] = { .type = NLA_STRING, .len = IFNAMSIZ - 1 }, \
- [FRA_OIFNAME] = { .type = NLA_STRING, .len = IFNAMSIZ - 1 }, \
- [FRA_PRIORITY] = { .type = NLA_U32 }, \
- [FRA_FWMARK] = { .type = NLA_U32 }, \
- [FRA_FWMASK] = { .type = NLA_U32 }, \
- [FRA_TABLE] = { .type = NLA_U32 }, \
- [FRA_GOTO] = { .type = NLA_U32 }
-
-static inline void fib_rule_get(struct fib_rule *rule)
-{
- atomic_inc(&rule->refcnt);
-}
-
-static inline void fib_rule_put_rcu(struct rcu_head *head)
-{
- struct fib_rule *rule = container_of(head, struct fib_rule, rcu);
- release_net(rule->fr_net);
- kfree(rule);
-}
-
-static inline void fib_rule_put(struct fib_rule *rule)
-{
- if (atomic_dec_and_test(&rule->refcnt))
- call_rcu(&rule->rcu, fib_rule_put_rcu);
-}
-
-static inline u32 frh_get_table(struct fib_rule_hdr *frh, struct nlattr **nla)
-{
- if (nla[FRA_TABLE])
- return nla_get_u32(nla[FRA_TABLE]);
- return frh->table;
-}
-
-extern struct fib_rules_ops *fib_rules_register(const struct fib_rules_ops *, struct net *);
-extern void fib_rules_unregister(struct fib_rules_ops *);
-
-extern int fib_rules_lookup(struct fib_rules_ops *,
- struct flowi *, int flags,
- struct fib_lookup_arg *);
-extern int fib_default_rule_add(struct fib_rules_ops *,
- u32 pref, u32 table,
- u32 flags);
-extern u32 fib_default_rule_pref(struct fib_rules_ops *ops);
-#endif
diff --git a/ANDROID_3.4.5/include/net/flow.h b/ANDROID_3.4.5/include/net/flow.h
deleted file mode 100644
index 6c469dbd..00000000
--- a/ANDROID_3.4.5/include/net/flow.h
+++ /dev/null
@@ -1,226 +0,0 @@
-/*
- *
- * Generic internet FLOW.
- *
- */
-
-#ifndef _NET_FLOW_H
-#define _NET_FLOW_H
-
-#include <linux/socket.h>
-#include <linux/in6.h>
-#include <linux/atomic.h>
-
-struct flowi_common {
- int flowic_oif;
- int flowic_iif;
- __u32 flowic_mark;
- __u8 flowic_tos;
- __u8 flowic_scope;
- __u8 flowic_proto;
- __u8 flowic_flags;
-#define FLOWI_FLAG_ANYSRC 0x01
-#define FLOWI_FLAG_PRECOW_METRICS 0x02
-#define FLOWI_FLAG_CAN_SLEEP 0x04
- __u32 flowic_secid;
-};
-
-union flowi_uli {
- struct {
- __be16 dport;
- __be16 sport;
- } ports;
-
- struct {
- __u8 type;
- __u8 code;
- } icmpt;
-
- struct {
- __le16 dport;
- __le16 sport;
- } dnports;
-
- __be32 spi;
- __be32 gre_key;
-
- struct {
- __u8 type;
- } mht;
-};
-
-struct flowi4 {
- struct flowi_common __fl_common;
-#define flowi4_oif __fl_common.flowic_oif
-#define flowi4_iif __fl_common.flowic_iif
-#define flowi4_mark __fl_common.flowic_mark
-#define flowi4_tos __fl_common.flowic_tos
-#define flowi4_scope __fl_common.flowic_scope
-#define flowi4_proto __fl_common.flowic_proto
-#define flowi4_flags __fl_common.flowic_flags
-#define flowi4_secid __fl_common.flowic_secid
-
- /* (saddr,daddr) must be grouped, same order as in IP header */
- __be32 saddr;
- __be32 daddr;
-
- union flowi_uli uli;
-#define fl4_sport uli.ports.sport
-#define fl4_dport uli.ports.dport
-#define fl4_icmp_type uli.icmpt.type
-#define fl4_icmp_code uli.icmpt.code
-#define fl4_ipsec_spi uli.spi
-#define fl4_mh_type uli.mht.type
-#define fl4_gre_key uli.gre_key
-} __attribute__((__aligned__(BITS_PER_LONG/8)));
-
-static inline void flowi4_init_output(struct flowi4 *fl4, int oif,
- __u32 mark, __u8 tos, __u8 scope,
- __u8 proto, __u8 flags,
- __be32 daddr, __be32 saddr,
- __be16 dport, __be16 sport)
-{
- fl4->flowi4_oif = oif;
- fl4->flowi4_iif = 0;
- fl4->flowi4_mark = mark;
- fl4->flowi4_tos = tos;
- fl4->flowi4_scope = scope;
- fl4->flowi4_proto = proto;
- fl4->flowi4_flags = flags;
- fl4->flowi4_secid = 0;
- fl4->daddr = daddr;
- fl4->saddr = saddr;
- fl4->fl4_dport = dport;
- fl4->fl4_sport = sport;
-}
-
-/* Reset some input parameters after previous lookup */
-static inline void flowi4_update_output(struct flowi4 *fl4, int oif, __u8 tos,
- __be32 daddr, __be32 saddr)
-{
- fl4->flowi4_oif = oif;
- fl4->flowi4_tos = tos;
- fl4->daddr = daddr;
- fl4->saddr = saddr;
-}
-
-
-struct flowi6 {
- struct flowi_common __fl_common;
-#define flowi6_oif __fl_common.flowic_oif
-#define flowi6_iif __fl_common.flowic_iif
-#define flowi6_mark __fl_common.flowic_mark
-#define flowi6_tos __fl_common.flowic_tos
-#define flowi6_scope __fl_common.flowic_scope
-#define flowi6_proto __fl_common.flowic_proto
-#define flowi6_flags __fl_common.flowic_flags
-#define flowi6_secid __fl_common.flowic_secid
- struct in6_addr daddr;
- struct in6_addr saddr;
- __be32 flowlabel;
- union flowi_uli uli;
-#define fl6_sport uli.ports.sport
-#define fl6_dport uli.ports.dport
-#define fl6_icmp_type uli.icmpt.type
-#define fl6_icmp_code uli.icmpt.code
-#define fl6_ipsec_spi uli.spi
-#define fl6_mh_type uli.mht.type
-#define fl6_gre_key uli.gre_key
-} __attribute__((__aligned__(BITS_PER_LONG/8)));
-
-struct flowidn {
- struct flowi_common __fl_common;
-#define flowidn_oif __fl_common.flowic_oif
-#define flowidn_iif __fl_common.flowic_iif
-#define flowidn_mark __fl_common.flowic_mark
-#define flowidn_scope __fl_common.flowic_scope
-#define flowidn_proto __fl_common.flowic_proto
-#define flowidn_flags __fl_common.flowic_flags
- __le16 daddr;
- __le16 saddr;
- union flowi_uli uli;
-#define fld_sport uli.ports.sport
-#define fld_dport uli.ports.dport
-} __attribute__((__aligned__(BITS_PER_LONG/8)));
-
-struct flowi {
- union {
- struct flowi_common __fl_common;
- struct flowi4 ip4;
- struct flowi6 ip6;
- struct flowidn dn;
- } u;
-#define flowi_oif u.__fl_common.flowic_oif
-#define flowi_iif u.__fl_common.flowic_iif
-#define flowi_mark u.__fl_common.flowic_mark
-#define flowi_tos u.__fl_common.flowic_tos
-#define flowi_scope u.__fl_common.flowic_scope
-#define flowi_proto u.__fl_common.flowic_proto
-#define flowi_flags u.__fl_common.flowic_flags
-#define flowi_secid u.__fl_common.flowic_secid
-} __attribute__((__aligned__(BITS_PER_LONG/8)));
-
-static inline struct flowi *flowi4_to_flowi(struct flowi4 *fl4)
-{
- return container_of(fl4, struct flowi, u.ip4);
-}
-
-static inline struct flowi *flowi6_to_flowi(struct flowi6 *fl6)
-{
- return container_of(fl6, struct flowi, u.ip6);
-}
-
-static inline struct flowi *flowidn_to_flowi(struct flowidn *fldn)
-{
- return container_of(fldn, struct flowi, u.dn);
-}
-
-typedef unsigned long flow_compare_t;
-
-static inline size_t flow_key_size(u16 family)
-{
- switch (family) {
- case AF_INET:
- BUILD_BUG_ON(sizeof(struct flowi4) % sizeof(flow_compare_t));
- return sizeof(struct flowi4) / sizeof(flow_compare_t);
- case AF_INET6:
- BUILD_BUG_ON(sizeof(struct flowi6) % sizeof(flow_compare_t));
- return sizeof(struct flowi6) / sizeof(flow_compare_t);
- case AF_DECnet:
- BUILD_BUG_ON(sizeof(struct flowidn) % sizeof(flow_compare_t));
- return sizeof(struct flowidn) / sizeof(flow_compare_t);
- }
- return 0;
-}
-
-#define FLOW_DIR_IN 0
-#define FLOW_DIR_OUT 1
-#define FLOW_DIR_FWD 2
-
-struct net;
-struct sock;
-struct flow_cache_ops;
-
-struct flow_cache_object {
- const struct flow_cache_ops *ops;
-};
-
-struct flow_cache_ops {
- struct flow_cache_object *(*get)(struct flow_cache_object *);
- int (*check)(struct flow_cache_object *);
- void (*delete)(struct flow_cache_object *);
-};
-
-typedef struct flow_cache_object *(*flow_resolve_t)(
- struct net *net, const struct flowi *key, u16 family,
- u8 dir, struct flow_cache_object *oldobj, void *ctx);
-
-extern struct flow_cache_object *flow_cache_lookup(
- struct net *net, const struct flowi *key, u16 family,
- u8 dir, flow_resolve_t resolver, void *ctx);
-
-extern void flow_cache_flush(void);
-extern void flow_cache_flush_deferred(void);
-extern atomic_t flow_cache_genid;
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/flow_keys.h b/ANDROID_3.4.5/include/net/flow_keys.h
deleted file mode 100644
index 80461c1a..00000000
--- a/ANDROID_3.4.5/include/net/flow_keys.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef _NET_FLOW_KEYS_H
-#define _NET_FLOW_KEYS_H
-
-struct flow_keys {
- /* (src,dst) must be grouped, in the same way than in IP header */
- __be32 src;
- __be32 dst;
- union {
- __be32 ports;
- __be16 port16[2];
- };
- u8 ip_proto;
-};
-
-extern bool skb_flow_dissect(const struct sk_buff *skb, struct flow_keys *flow);
-#endif
diff --git a/ANDROID_3.4.5/include/net/garp.h b/ANDROID_3.4.5/include/net/garp.h
deleted file mode 100644
index 834d8add..00000000
--- a/ANDROID_3.4.5/include/net/garp.h
+++ /dev/null
@@ -1,130 +0,0 @@
-#ifndef _NET_GARP_H
-#define _NET_GARP_H
-
-#include <net/stp.h>
-
-#define GARP_PROTOCOL_ID 0x1
-#define GARP_END_MARK 0x0
-
-struct garp_pdu_hdr {
- __be16 protocol;
-};
-
-struct garp_msg_hdr {
- u8 attrtype;
-};
-
-enum garp_attr_event {
- GARP_LEAVE_ALL,
- GARP_JOIN_EMPTY,
- GARP_JOIN_IN,
- GARP_LEAVE_EMPTY,
- GARP_LEAVE_IN,
- GARP_EMPTY,
-};
-
-struct garp_attr_hdr {
- u8 len;
- u8 event;
- u8 data[];
-};
-
-struct garp_skb_cb {
- u8 cur_type;
-};
-
-static inline struct garp_skb_cb *garp_cb(struct sk_buff *skb)
-{
- BUILD_BUG_ON(sizeof(struct garp_skb_cb) >
- FIELD_SIZEOF(struct sk_buff, cb));
- return (struct garp_skb_cb *)skb->cb;
-}
-
-enum garp_applicant_state {
- GARP_APPLICANT_INVALID,
- GARP_APPLICANT_VA,
- GARP_APPLICANT_AA,
- GARP_APPLICANT_QA,
- GARP_APPLICANT_LA,
- GARP_APPLICANT_VP,
- GARP_APPLICANT_AP,
- GARP_APPLICANT_QP,
- GARP_APPLICANT_VO,
- GARP_APPLICANT_AO,
- GARP_APPLICANT_QO,
- __GARP_APPLICANT_MAX
-};
-#define GARP_APPLICANT_MAX (__GARP_APPLICANT_MAX - 1)
-
-enum garp_event {
- GARP_EVENT_REQ_JOIN,
- GARP_EVENT_REQ_LEAVE,
- GARP_EVENT_R_JOIN_IN,
- GARP_EVENT_R_JOIN_EMPTY,
- GARP_EVENT_R_EMPTY,
- GARP_EVENT_R_LEAVE_IN,
- GARP_EVENT_R_LEAVE_EMPTY,
- GARP_EVENT_TRANSMIT_PDU,
- __GARP_EVENT_MAX
-};
-#define GARP_EVENT_MAX (__GARP_EVENT_MAX - 1)
-
-enum garp_action {
- GARP_ACTION_NONE,
- GARP_ACTION_S_JOIN_IN,
- GARP_ACTION_S_LEAVE_EMPTY,
-};
-
-struct garp_attr {
- struct rb_node node;
- enum garp_applicant_state state;
- u8 type;
- u8 dlen;
- unsigned char data[];
-};
-
-enum garp_applications {
- GARP_APPLICATION_GVRP,
- __GARP_APPLICATION_MAX
-};
-#define GARP_APPLICATION_MAX (__GARP_APPLICATION_MAX - 1)
-
-struct garp_application {
- enum garp_applications type;
- unsigned int maxattr;
- struct stp_proto proto;
-};
-
-struct garp_applicant {
- struct garp_application *app;
- struct net_device *dev;
- struct timer_list join_timer;
-
- spinlock_t lock;
- struct sk_buff_head queue;
- struct sk_buff *pdu;
- struct rb_root gid;
- struct rcu_head rcu;
-};
-
-struct garp_port {
- struct garp_applicant __rcu *applicants[GARP_APPLICATION_MAX + 1];
- struct rcu_head rcu;
-};
-
-extern int garp_register_application(struct garp_application *app);
-extern void garp_unregister_application(struct garp_application *app);
-
-extern int garp_init_applicant(struct net_device *dev,
- struct garp_application *app);
-extern void garp_uninit_applicant(struct net_device *dev,
- struct garp_application *app);
-
-extern int garp_request_join(const struct net_device *dev,
- const struct garp_application *app,
- const void *data, u8 len, u8 type);
-extern void garp_request_leave(const struct net_device *dev,
- const struct garp_application *app,
- const void *data, u8 len, u8 type);
-
-#endif /* _NET_GARP_H */
diff --git a/ANDROID_3.4.5/include/net/gen_stats.h b/ANDROID_3.4.5/include/net/gen_stats.h
deleted file mode 100644
index a79b6cfb..00000000
--- a/ANDROID_3.4.5/include/net/gen_stats.h
+++ /dev/null
@@ -1,50 +0,0 @@
-#ifndef __NET_GEN_STATS_H
-#define __NET_GEN_STATS_H
-
-#include <linux/gen_stats.h>
-#include <linux/socket.h>
-#include <linux/rtnetlink.h>
-#include <linux/pkt_sched.h>
-
-struct gnet_dump {
- spinlock_t * lock;
- struct sk_buff * skb;
- struct nlattr * tail;
-
- /* Backward compatibility */
- int compat_tc_stats;
- int compat_xstats;
- void * xstats;
- int xstats_len;
- struct tc_stats tc_stats;
-};
-
-extern int gnet_stats_start_copy(struct sk_buff *skb, int type,
- spinlock_t *lock, struct gnet_dump *d);
-
-extern int gnet_stats_start_copy_compat(struct sk_buff *skb, int type,
- int tc_stats_type,int xstats_type,
- spinlock_t *lock, struct gnet_dump *d);
-
-extern int gnet_stats_copy_basic(struct gnet_dump *d,
- struct gnet_stats_basic_packed *b);
-extern int gnet_stats_copy_rate_est(struct gnet_dump *d,
- const struct gnet_stats_basic_packed *b,
- struct gnet_stats_rate_est *r);
-extern int gnet_stats_copy_queue(struct gnet_dump *d,
- struct gnet_stats_queue *q);
-extern int gnet_stats_copy_app(struct gnet_dump *d, void *st, int len);
-
-extern int gnet_stats_finish_copy(struct gnet_dump *d);
-
-extern int gen_new_estimator(struct gnet_stats_basic_packed *bstats,
- struct gnet_stats_rate_est *rate_est,
- spinlock_t *stats_lock, struct nlattr *opt);
-extern void gen_kill_estimator(struct gnet_stats_basic_packed *bstats,
- struct gnet_stats_rate_est *rate_est);
-extern int gen_replace_estimator(struct gnet_stats_basic_packed *bstats,
- struct gnet_stats_rate_est *rate_est,
- spinlock_t *stats_lock, struct nlattr *opt);
-extern bool gen_estimator_active(const struct gnet_stats_basic_packed *bstats,
- const struct gnet_stats_rate_est *rate_est);
-#endif
diff --git a/ANDROID_3.4.5/include/net/genetlink.h b/ANDROID_3.4.5/include/net/genetlink.h
deleted file mode 100644
index ccb68880..00000000
--- a/ANDROID_3.4.5/include/net/genetlink.h
+++ /dev/null
@@ -1,317 +0,0 @@
-#ifndef __NET_GENERIC_NETLINK_H
-#define __NET_GENERIC_NETLINK_H
-
-#include <linux/genetlink.h>
-#include <net/netlink.h>
-#include <net/net_namespace.h>
-
-/**
- * struct genl_multicast_group - generic netlink multicast group
- * @name: name of the multicast group, names are per-family
- * @id: multicast group ID, assigned by the core, to use with
- * genlmsg_multicast().
- * @list: list entry for linking
- * @family: pointer to family, need not be set before registering
- */
-struct genl_multicast_group {
- struct genl_family *family; /* private */
- struct list_head list; /* private */
- char name[GENL_NAMSIZ];
- u32 id;
-};
-
-struct genl_ops;
-struct genl_info;
-
-/**
- * struct genl_family - generic netlink family
- * @id: protocol family idenfitier
- * @hdrsize: length of user specific header in bytes
- * @name: name of family
- * @version: protocol version
- * @maxattr: maximum number of attributes supported
- * @netnsok: set to true if the family can handle network
- * namespaces and should be presented in all of them
- * @pre_doit: called before an operation's doit callback, it may
- * do additional, common, filtering and return an error
- * @post_doit: called after an operation's doit callback, it may
- * undo operations done by pre_doit, for example release locks
- * @attrbuf: buffer to store parsed attributes
- * @ops_list: list of all assigned operations
- * @family_list: family list
- * @mcast_groups: multicast groups list
- */
-struct genl_family {
- unsigned int id;
- unsigned int hdrsize;
- char name[GENL_NAMSIZ];
- unsigned int version;
- unsigned int maxattr;
- bool netnsok;
- int (*pre_doit)(struct genl_ops *ops,
- struct sk_buff *skb,
- struct genl_info *info);
- void (*post_doit)(struct genl_ops *ops,
- struct sk_buff *skb,
- struct genl_info *info);
- struct nlattr ** attrbuf; /* private */
- struct list_head ops_list; /* private */
- struct list_head family_list; /* private */
- struct list_head mcast_groups; /* private */
-};
-
-/**
- * struct genl_info - receiving information
- * @snd_seq: sending sequence number
- * @snd_pid: netlink pid of sender
- * @nlhdr: netlink message header
- * @genlhdr: generic netlink message header
- * @userhdr: user specific header
- * @attrs: netlink attributes
- * @_net: network namespace
- * @user_ptr: user pointers
- */
-struct genl_info {
- u32 snd_seq;
- u32 snd_pid;
- struct nlmsghdr * nlhdr;
- struct genlmsghdr * genlhdr;
- void * userhdr;
- struct nlattr ** attrs;
-#ifdef CONFIG_NET_NS
- struct net * _net;
-#endif
- void * user_ptr[2];
-};
-
-static inline struct net *genl_info_net(struct genl_info *info)
-{
- return read_pnet(&info->_net);
-}
-
-static inline void genl_info_net_set(struct genl_info *info, struct net *net)
-{
- write_pnet(&info->_net, net);
-}
-
-/**
- * struct genl_ops - generic netlink operations
- * @cmd: command identifier
- * @internal_flags: flags used by the family
- * @flags: flags
- * @policy: attribute validation policy
- * @doit: standard command callback
- * @dumpit: callback for dumpers
- * @done: completion callback for dumps
- * @ops_list: operations list
- */
-struct genl_ops {
- u8 cmd;
- u8 internal_flags;
- unsigned int flags;
- const struct nla_policy *policy;
- int (*doit)(struct sk_buff *skb,
- struct genl_info *info);
- int (*dumpit)(struct sk_buff *skb,
- struct netlink_callback *cb);
- int (*done)(struct netlink_callback *cb);
- struct list_head ops_list;
-};
-
-extern int genl_register_family(struct genl_family *family);
-extern int genl_register_family_with_ops(struct genl_family *family,
- struct genl_ops *ops, size_t n_ops);
-extern int genl_unregister_family(struct genl_family *family);
-extern int genl_register_ops(struct genl_family *, struct genl_ops *ops);
-extern int genl_unregister_ops(struct genl_family *, struct genl_ops *ops);
-extern int genl_register_mc_group(struct genl_family *family,
- struct genl_multicast_group *grp);
-extern void genl_unregister_mc_group(struct genl_family *family,
- struct genl_multicast_group *grp);
-extern void genl_notify(struct sk_buff *skb, struct net *net, u32 pid,
- u32 group, struct nlmsghdr *nlh, gfp_t flags);
-
-void *genlmsg_put(struct sk_buff *skb, u32 pid, u32 seq,
- struct genl_family *family, int flags, u8 cmd);
-
-/**
- * genlmsg_nlhdr - Obtain netlink header from user specified header
- * @user_hdr: user header as returned from genlmsg_put()
- * @family: generic netlink family
- *
- * Returns pointer to netlink header.
- */
-static inline struct nlmsghdr *genlmsg_nlhdr(void *user_hdr,
- struct genl_family *family)
-{
- return (struct nlmsghdr *)((char *)user_hdr -
- family->hdrsize -
- GENL_HDRLEN -
- NLMSG_HDRLEN);
-}
-
-/**
- * genl_dump_check_consistent - check if sequence is consistent and advertise if not
- * @cb: netlink callback structure that stores the sequence number
- * @user_hdr: user header as returned from genlmsg_put()
- * @family: generic netlink family
- *
- * Cf. nl_dump_check_consistent(), this just provides a wrapper to make it
- * simpler to use with generic netlink.
- */
-static inline void genl_dump_check_consistent(struct netlink_callback *cb,
- void *user_hdr,
- struct genl_family *family)
-{
- nl_dump_check_consistent(cb, genlmsg_nlhdr(user_hdr, family));
-}
-
-/**
- * genlmsg_put_reply - Add generic netlink header to a reply message
- * @skb: socket buffer holding the message
- * @info: receiver info
- * @family: generic netlink family
- * @flags: netlink message flags
- * @cmd: generic netlink command
- *
- * Returns pointer to user specific header
- */
-static inline void *genlmsg_put_reply(struct sk_buff *skb,
- struct genl_info *info,
- struct genl_family *family,
- int flags, u8 cmd)
-{
- return genlmsg_put(skb, info->snd_pid, info->snd_seq, family,
- flags, cmd);
-}
-
-/**
- * genlmsg_end - Finalize a generic netlink message
- * @skb: socket buffer the message is stored in
- * @hdr: user specific header
- */
-static inline int genlmsg_end(struct sk_buff *skb, void *hdr)
-{
- return nlmsg_end(skb, hdr - GENL_HDRLEN - NLMSG_HDRLEN);
-}
-
-/**
- * genlmsg_cancel - Cancel construction of a generic netlink message
- * @skb: socket buffer the message is stored in
- * @hdr: generic netlink message header
- */
-static inline void genlmsg_cancel(struct sk_buff *skb, void *hdr)
-{
- if (hdr)
- nlmsg_cancel(skb, hdr - GENL_HDRLEN - NLMSG_HDRLEN);
-}
-
-/**
- * genlmsg_multicast_netns - multicast a netlink message to a specific netns
- * @net: the net namespace
- * @skb: netlink message as socket buffer
- * @pid: own netlink pid to avoid sending to yourself
- * @group: multicast group id
- * @flags: allocation flags
- */
-static inline int genlmsg_multicast_netns(struct net *net, struct sk_buff *skb,
- u32 pid, unsigned int group, gfp_t flags)
-{
- return nlmsg_multicast(net->genl_sock, skb, pid, group, flags);
-}
-
-/**
- * genlmsg_multicast - multicast a netlink message to the default netns
- * @skb: netlink message as socket buffer
- * @pid: own netlink pid to avoid sending to yourself
- * @group: multicast group id
- * @flags: allocation flags
- */
-static inline int genlmsg_multicast(struct sk_buff *skb, u32 pid,
- unsigned int group, gfp_t flags)
-{
- return genlmsg_multicast_netns(&init_net, skb, pid, group, flags);
-}
-
-/**
- * genlmsg_multicast_allns - multicast a netlink message to all net namespaces
- * @skb: netlink message as socket buffer
- * @pid: own netlink pid to avoid sending to yourself
- * @group: multicast group id
- * @flags: allocation flags
- *
- * This function must hold the RTNL or rcu_read_lock().
- */
-int genlmsg_multicast_allns(struct sk_buff *skb, u32 pid,
- unsigned int group, gfp_t flags);
-
-/**
- * genlmsg_unicast - unicast a netlink message
- * @skb: netlink message as socket buffer
- * @pid: netlink pid of the destination socket
- */
-static inline int genlmsg_unicast(struct net *net, struct sk_buff *skb, u32 pid)
-{
- return nlmsg_unicast(net->genl_sock, skb, pid);
-}
-
-/**
- * genlmsg_reply - reply to a request
- * @skb: netlink message to be sent back
- * @info: receiver information
- */
-static inline int genlmsg_reply(struct sk_buff *skb, struct genl_info *info)
-{
- return genlmsg_unicast(genl_info_net(info), skb, info->snd_pid);
-}
-
-/**
- * gennlmsg_data - head of message payload
- * @gnlh: genetlink message header
- */
-static inline void *genlmsg_data(const struct genlmsghdr *gnlh)
-{
- return ((unsigned char *) gnlh + GENL_HDRLEN);
-}
-
-/**
- * genlmsg_len - length of message payload
- * @gnlh: genetlink message header
- */
-static inline int genlmsg_len(const struct genlmsghdr *gnlh)
-{
- struct nlmsghdr *nlh = (struct nlmsghdr *)((unsigned char *)gnlh -
- NLMSG_HDRLEN);
- return (nlh->nlmsg_len - GENL_HDRLEN - NLMSG_HDRLEN);
-}
-
-/**
- * genlmsg_msg_size - length of genetlink message not including padding
- * @payload: length of message payload
- */
-static inline int genlmsg_msg_size(int payload)
-{
- return GENL_HDRLEN + payload;
-}
-
-/**
- * genlmsg_total_size - length of genetlink message including padding
- * @payload: length of message payload
- */
-static inline int genlmsg_total_size(int payload)
-{
- return NLMSG_ALIGN(genlmsg_msg_size(payload));
-}
-
-/**
- * genlmsg_new - Allocate a new generic netlink message
- * @payload: size of the message payload
- * @flags: the type of memory to allocate.
- */
-static inline struct sk_buff *genlmsg_new(size_t payload, gfp_t flags)
-{
- return nlmsg_new(genlmsg_total_size(payload), flags);
-}
-
-
-#endif /* __NET_GENERIC_NETLINK_H */
diff --git a/ANDROID_3.4.5/include/net/gre.h b/ANDROID_3.4.5/include/net/gre.h
deleted file mode 100644
index 82665474..00000000
--- a/ANDROID_3.4.5/include/net/gre.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef __LINUX_GRE_H
-#define __LINUX_GRE_H
-
-#include <linux/skbuff.h>
-
-#define GREPROTO_CISCO 0
-#define GREPROTO_PPTP 1
-#define GREPROTO_MAX 2
-
-struct gre_protocol {
- int (*handler)(struct sk_buff *skb);
- void (*err_handler)(struct sk_buff *skb, u32 info);
-};
-
-int gre_add_protocol(const struct gre_protocol *proto, u8 version);
-int gre_del_protocol(const struct gre_protocol *proto, u8 version);
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/icmp.h b/ANDROID_3.4.5/include/net/icmp.h
deleted file mode 100644
index 75d61564..00000000
--- a/ANDROID_3.4.5/include/net/icmp.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Definitions for the ICMP module.
- *
- * Version: @(#)icmp.h 1.0.4 05/13/93
- *
- * Authors: Ross Biro
- * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.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.
- */
-#ifndef _ICMP_H
-#define _ICMP_H
-
-#include <linux/icmp.h>
-
-#include <net/inet_sock.h>
-#include <net/snmp.h>
-
-struct icmp_err {
- int errno;
- unsigned fatal:1;
-};
-
-extern const struct icmp_err icmp_err_convert[];
-#define ICMP_INC_STATS(net, field) SNMP_INC_STATS((net)->mib.icmp_statistics, field)
-#define ICMP_INC_STATS_BH(net, field) SNMP_INC_STATS_BH((net)->mib.icmp_statistics, field)
-#define ICMPMSGOUT_INC_STATS(net, field) SNMP_INC_STATS_ATOMIC_LONG((net)->mib.icmpmsg_statistics, field+256)
-#define ICMPMSGIN_INC_STATS_BH(net, field) SNMP_INC_STATS_ATOMIC_LONG((net)->mib.icmpmsg_statistics, field)
-
-struct dst_entry;
-struct net_proto_family;
-struct sk_buff;
-struct net;
-
-extern void icmp_send(struct sk_buff *skb_in, int type, int code, __be32 info);
-extern int icmp_rcv(struct sk_buff *skb);
-extern int icmp_ioctl(struct sock *sk, int cmd, unsigned long arg);
-extern int icmp_init(void);
-extern void icmp_out_count(struct net *net, unsigned char type);
-
-#endif /* _ICMP_H */
diff --git a/ANDROID_3.4.5/include/net/ieee80211_radiotap.h b/ANDROID_3.4.5/include/net/ieee80211_radiotap.h
deleted file mode 100644
index 71392545..00000000
--- a/ANDROID_3.4.5/include/net/ieee80211_radiotap.h
+++ /dev/null
@@ -1,283 +0,0 @@
-/*
- * Copyright (c) 2003, 2004 David Young. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. The name of David Young may not be used to endorse or promote
- * products derived from this software without specific prior
- * written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY DAVID YOUNG ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DAVID
- * YOUNG BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- */
-
-/*
- * Modifications to fit into the linux IEEE 802.11 stack,
- * Mike Kershaw (dragorn@kismetwireless.net)
- */
-
-#ifndef IEEE80211RADIOTAP_H
-#define IEEE80211RADIOTAP_H
-
-#include <linux/if_ether.h>
-#include <linux/kernel.h>
-#include <asm/unaligned.h>
-
-/* Base version of the radiotap packet header data */
-#define PKTHDR_RADIOTAP_VERSION 0
-
-/* A generic radio capture format is desirable. There is one for
- * Linux, but it is neither rigidly defined (there were not even
- * units given for some fields) nor easily extensible.
- *
- * I suggest the following extensible radio capture format. It is
- * based on a bitmap indicating which fields are present.
- *
- * I am trying to describe precisely what the application programmer
- * should expect in the following, and for that reason I tell the
- * units and origin of each measurement (where it applies), or else I
- * use sufficiently weaselly language ("is a monotonically nondecreasing
- * function of...") that I cannot set false expectations for lawyerly
- * readers.
- */
-
-/*
- * The radio capture header precedes the 802.11 header.
- * All data in the header is little endian on all platforms.
- */
-struct ieee80211_radiotap_header {
- u8 it_version; /* Version 0. Only increases
- * for drastic changes,
- * introduction of compatible
- * new fields does not count.
- */
- u8 it_pad;
- __le16 it_len; /* length of the whole
- * header in bytes, including
- * it_version, it_pad,
- * it_len, and data fields.
- */
- __le32 it_present; /* A bitmap telling which
- * fields are present. Set bit 31
- * (0x80000000) to extend the
- * bitmap by another 32 bits.
- * Additional extensions are made
- * by setting bit 31.
- */
-} __packed;
-
-/* Name Data type Units
- * ---- --------- -----
- *
- * IEEE80211_RADIOTAP_TSFT __le64 microseconds
- *
- * Value in microseconds of the MAC's 64-bit 802.11 Time
- * Synchronization Function timer when the first bit of the
- * MPDU arrived at the MAC. For received frames, only.
- *
- * IEEE80211_RADIOTAP_CHANNEL 2 x __le16 MHz, bitmap
- *
- * Tx/Rx frequency in MHz, followed by flags (see below).
- *
- * IEEE80211_RADIOTAP_FHSS __le16 see below
- *
- * For frequency-hopping radios, the hop set (first byte)
- * and pattern (second byte).
- *
- * IEEE80211_RADIOTAP_RATE u8 500kb/s
- *
- * Tx/Rx data rate
- *
- * IEEE80211_RADIOTAP_DBM_ANTSIGNAL s8 decibels from
- * one milliwatt (dBm)
- *
- * RF signal power at the antenna, decibel difference from
- * one milliwatt.
- *
- * IEEE80211_RADIOTAP_DBM_ANTNOISE s8 decibels from
- * one milliwatt (dBm)
- *
- * RF noise power at the antenna, decibel difference from one
- * milliwatt.
- *
- * IEEE80211_RADIOTAP_DB_ANTSIGNAL u8 decibel (dB)
- *
- * RF signal power at the antenna, decibel difference from an
- * arbitrary, fixed reference.
- *
- * IEEE80211_RADIOTAP_DB_ANTNOISE u8 decibel (dB)
- *
- * RF noise power at the antenna, decibel difference from an
- * arbitrary, fixed reference point.
- *
- * IEEE80211_RADIOTAP_LOCK_QUALITY __le16 unitless
- *
- * Quality of Barker code lock. Unitless. Monotonically
- * nondecreasing with "better" lock strength. Called "Signal
- * Quality" in datasheets. (Is there a standard way to measure
- * this?)
- *
- * IEEE80211_RADIOTAP_TX_ATTENUATION __le16 unitless
- *
- * Transmit power expressed as unitless distance from max
- * power set at factory calibration. 0 is max power.
- * Monotonically nondecreasing with lower power levels.
- *
- * IEEE80211_RADIOTAP_DB_TX_ATTENUATION __le16 decibels (dB)
- *
- * Transmit power expressed as decibel distance from max power
- * set at factory calibration. 0 is max power. Monotonically
- * nondecreasing with lower power levels.
- *
- * IEEE80211_RADIOTAP_DBM_TX_POWER s8 decibels from
- * one milliwatt (dBm)
- *
- * Transmit power expressed as dBm (decibels from a 1 milliwatt
- * reference). This is the absolute power level measured at
- * the antenna port.
- *
- * IEEE80211_RADIOTAP_FLAGS u8 bitmap
- *
- * Properties of transmitted and received frames. See flags
- * defined below.
- *
- * IEEE80211_RADIOTAP_ANTENNA u8 antenna index
- *
- * Unitless indication of the Rx/Tx antenna for this packet.
- * The first antenna is antenna 0.
- *
- * IEEE80211_RADIOTAP_RX_FLAGS __le16 bitmap
- *
- * Properties of received frames. See flags defined below.
- *
- * IEEE80211_RADIOTAP_TX_FLAGS __le16 bitmap
- *
- * Properties of transmitted frames. See flags defined below.
- *
- * IEEE80211_RADIOTAP_RTS_RETRIES u8 data
- *
- * Number of rts retries a transmitted frame used.
- *
- * IEEE80211_RADIOTAP_DATA_RETRIES u8 data
- *
- * Number of unicast retries a transmitted frame used.
- *
- * IEEE80211_RADIOTAP_MCS u8, u8, u8 unitless
- *
- * Contains a bitmap of known fields/flags, the flags, and
- * the MCS index.
- *
- */
-enum ieee80211_radiotap_type {
- IEEE80211_RADIOTAP_TSFT = 0,
- IEEE80211_RADIOTAP_FLAGS = 1,
- IEEE80211_RADIOTAP_RATE = 2,
- IEEE80211_RADIOTAP_CHANNEL = 3,
- IEEE80211_RADIOTAP_FHSS = 4,
- IEEE80211_RADIOTAP_DBM_ANTSIGNAL = 5,
- IEEE80211_RADIOTAP_DBM_ANTNOISE = 6,
- IEEE80211_RADIOTAP_LOCK_QUALITY = 7,
- IEEE80211_RADIOTAP_TX_ATTENUATION = 8,
- IEEE80211_RADIOTAP_DB_TX_ATTENUATION = 9,
- IEEE80211_RADIOTAP_DBM_TX_POWER = 10,
- IEEE80211_RADIOTAP_ANTENNA = 11,
- IEEE80211_RADIOTAP_DB_ANTSIGNAL = 12,
- IEEE80211_RADIOTAP_DB_ANTNOISE = 13,
- IEEE80211_RADIOTAP_RX_FLAGS = 14,
- IEEE80211_RADIOTAP_TX_FLAGS = 15,
- IEEE80211_RADIOTAP_RTS_RETRIES = 16,
- IEEE80211_RADIOTAP_DATA_RETRIES = 17,
-
- IEEE80211_RADIOTAP_MCS = 19,
-
- /* valid in every it_present bitmap, even vendor namespaces */
- IEEE80211_RADIOTAP_RADIOTAP_NAMESPACE = 29,
- IEEE80211_RADIOTAP_VENDOR_NAMESPACE = 30,
- IEEE80211_RADIOTAP_EXT = 31
-};
-
-/* Channel flags. */
-#define IEEE80211_CHAN_TURBO 0x0010 /* Turbo channel */
-#define IEEE80211_CHAN_CCK 0x0020 /* CCK channel */
-#define IEEE80211_CHAN_OFDM 0x0040 /* OFDM channel */
-#define IEEE80211_CHAN_2GHZ 0x0080 /* 2 GHz spectrum channel. */
-#define IEEE80211_CHAN_5GHZ 0x0100 /* 5 GHz spectrum channel */
-#define IEEE80211_CHAN_PASSIVE 0x0200 /* Only passive scan allowed */
-#define IEEE80211_CHAN_DYN 0x0400 /* Dynamic CCK-OFDM channel */
-#define IEEE80211_CHAN_GFSK 0x0800 /* GFSK channel (FHSS PHY) */
-
-/* For IEEE80211_RADIOTAP_FLAGS */
-#define IEEE80211_RADIOTAP_F_CFP 0x01 /* sent/received
- * during CFP
- */
-#define IEEE80211_RADIOTAP_F_SHORTPRE 0x02 /* sent/received
- * with short
- * preamble
- */
-#define IEEE80211_RADIOTAP_F_WEP 0x04 /* sent/received
- * with WEP encryption
- */
-#define IEEE80211_RADIOTAP_F_FRAG 0x08 /* sent/received
- * with fragmentation
- */
-#define IEEE80211_RADIOTAP_F_FCS 0x10 /* frame includes FCS */
-#define IEEE80211_RADIOTAP_F_DATAPAD 0x20 /* frame has padding between
- * 802.11 header and payload
- * (to 32-bit boundary)
- */
-#define IEEE80211_RADIOTAP_F_BADFCS 0x40 /* bad FCS */
-
-/* For IEEE80211_RADIOTAP_RX_FLAGS */
-#define IEEE80211_RADIOTAP_F_RX_BADPLCP 0x0002 /* frame has bad PLCP */
-
-/* For IEEE80211_RADIOTAP_TX_FLAGS */
-#define IEEE80211_RADIOTAP_F_TX_FAIL 0x0001 /* failed due to excessive
- * retries */
-#define IEEE80211_RADIOTAP_F_TX_CTS 0x0002 /* used cts 'protection' */
-#define IEEE80211_RADIOTAP_F_TX_RTS 0x0004 /* used rts/cts handshake */
-#define IEEE80211_RADIOTAP_F_TX_NOACK 0x0008 /* don't expect an ack */
-
-
-/* For IEEE80211_RADIOTAP_MCS */
-#define IEEE80211_RADIOTAP_MCS_HAVE_BW 0x01
-#define IEEE80211_RADIOTAP_MCS_HAVE_MCS 0x02
-#define IEEE80211_RADIOTAP_MCS_HAVE_GI 0x04
-#define IEEE80211_RADIOTAP_MCS_HAVE_FMT 0x08
-#define IEEE80211_RADIOTAP_MCS_HAVE_FEC 0x10
-
-#define IEEE80211_RADIOTAP_MCS_BW_MASK 0x03
-#define IEEE80211_RADIOTAP_MCS_BW_20 0
-#define IEEE80211_RADIOTAP_MCS_BW_40 1
-#define IEEE80211_RADIOTAP_MCS_BW_20L 2
-#define IEEE80211_RADIOTAP_MCS_BW_20U 3
-#define IEEE80211_RADIOTAP_MCS_SGI 0x04
-#define IEEE80211_RADIOTAP_MCS_FMT_GF 0x08
-#define IEEE80211_RADIOTAP_MCS_FEC_LDPC 0x10
-
-
-/* helpers */
-static inline int ieee80211_get_radiotap_len(unsigned char *data)
-{
- struct ieee80211_radiotap_header *hdr =
- (struct ieee80211_radiotap_header *)data;
-
- return get_unaligned_le16(&hdr->it_len);
-}
-
-#endif /* IEEE80211_RADIOTAP_H */
diff --git a/ANDROID_3.4.5/include/net/ieee802154.h b/ANDROID_3.4.5/include/net/ieee802154.h
deleted file mode 100644
index ee59f8b1..00000000
--- a/ANDROID_3.4.5/include/net/ieee802154.h
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * IEEE802.15.4-2003 specification
- *
- * Copyright (C) 2007, 2008 Siemens AG
- *
- * 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.
- *
- * 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-1301 USA.
- *
- * Written by:
- * Pavel Smolenskiy <pavel.smolenskiy@gmail.com>
- * Maxim Gorbachyov <maxim.gorbachev@siemens.com>
- * Maxim Osipov <maxim.osipov@siemens.com>
- * Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
- * Alexander Smirnov <alex.bluesman.smirnov@gmail.com>
- */
-
-#ifndef NET_IEEE802154_H
-#define NET_IEEE802154_H
-
-#define IEEE802154_MTU 127
-
-#define IEEE802154_FC_TYPE_BEACON 0x0 /* Frame is beacon */
-#define IEEE802154_FC_TYPE_DATA 0x1 /* Frame is data */
-#define IEEE802154_FC_TYPE_ACK 0x2 /* Frame is acknowledgment */
-#define IEEE802154_FC_TYPE_MAC_CMD 0x3 /* Frame is MAC command */
-
-#define IEEE802154_FC_TYPE_SHIFT 0
-#define IEEE802154_FC_TYPE_MASK ((1 << 3) - 1)
-#define IEEE802154_FC_TYPE(x) ((x & IEEE802154_FC_TYPE_MASK) >> IEEE802154_FC_TYPE_SHIFT)
-#define IEEE802154_FC_SET_TYPE(v, x) do { \
- v = (((v) & ~IEEE802154_FC_TYPE_MASK) | \
- (((x) << IEEE802154_FC_TYPE_SHIFT) & IEEE802154_FC_TYPE_MASK)); \
- } while (0)
-
-#define IEEE802154_FC_SECEN (1 << 3)
-#define IEEE802154_FC_FRPEND (1 << 4)
-#define IEEE802154_FC_ACK_REQ (1 << 5)
-#define IEEE802154_FC_INTRA_PAN (1 << 6)
-
-#define IEEE802154_FC_SAMODE_SHIFT 14
-#define IEEE802154_FC_SAMODE_MASK (3 << IEEE802154_FC_SAMODE_SHIFT)
-#define IEEE802154_FC_DAMODE_SHIFT 10
-#define IEEE802154_FC_DAMODE_MASK (3 << IEEE802154_FC_DAMODE_SHIFT)
-
-#define IEEE802154_FC_SAMODE(x) \
- (((x) & IEEE802154_FC_SAMODE_MASK) >> IEEE802154_FC_SAMODE_SHIFT)
-
-#define IEEE802154_FC_DAMODE(x) \
- (((x) & IEEE802154_FC_DAMODE_MASK) >> IEEE802154_FC_DAMODE_SHIFT)
-
-
-/* MAC footer size */
-#define IEEE802154_MFR_SIZE 2 /* 2 octets */
-
-/* MAC's Command Frames Identifiers */
-#define IEEE802154_CMD_ASSOCIATION_REQ 0x01
-#define IEEE802154_CMD_ASSOCIATION_RESP 0x02
-#define IEEE802154_CMD_DISASSOCIATION_NOTIFY 0x03
-#define IEEE802154_CMD_DATA_REQ 0x04
-#define IEEE802154_CMD_PANID_CONFLICT_NOTIFY 0x05
-#define IEEE802154_CMD_ORPHAN_NOTIFY 0x06
-#define IEEE802154_CMD_BEACON_REQ 0x07
-#define IEEE802154_CMD_COORD_REALIGN_NOTIFY 0x08
-#define IEEE802154_CMD_GTS_REQ 0x09
-
-/*
- * The return values of MAC operations
- */
-enum {
- /*
- * The requested operation was completed successfully.
- * For a transmission request, this value indicates
- * a successful transmission.
- */
- IEEE802154_SUCCESS = 0x0,
-
- /* The beacon was lost following a synchronization request. */
- IEEE802154_BEACON_LOSS = 0xe0,
- /*
- * A transmission could not take place due to activity on the
- * channel, i.e., the CSMA-CA mechanism has failed.
- */
- IEEE802154_CHNL_ACCESS_FAIL = 0xe1,
- /* The GTS request has been denied by the PAN coordinator. */
- IEEE802154_DENINED = 0xe2,
- /* The attempt to disable the transceiver has failed. */
- IEEE802154_DISABLE_TRX_FAIL = 0xe3,
- /*
- * The received frame induces a failed security check according to
- * the security suite.
- */
- IEEE802154_FAILED_SECURITY_CHECK = 0xe4,
- /*
- * The frame resulting from secure processing has a length that is
- * greater than aMACMaxFrameSize.
- */
- IEEE802154_FRAME_TOO_LONG = 0xe5,
- /*
- * The requested GTS transmission failed because the specified GTS
- * either did not have a transmit GTS direction or was not defined.
- */
- IEEE802154_INVALID_GTS = 0xe6,
- /*
- * A request to purge an MSDU from the transaction queue was made using
- * an MSDU handle that was not found in the transaction table.
- */
- IEEE802154_INVALID_HANDLE = 0xe7,
- /* A parameter in the primitive is out of the valid range.*/
- IEEE802154_INVALID_PARAMETER = 0xe8,
- /* No acknowledgment was received after aMaxFrameRetries. */
- IEEE802154_NO_ACK = 0xe9,
- /* A scan operation failed to find any network beacons.*/
- IEEE802154_NO_BEACON = 0xea,
- /* No response data were available following a request. */
- IEEE802154_NO_DATA = 0xeb,
- /* The operation failed because a short address was not allocated. */
- IEEE802154_NO_SHORT_ADDRESS = 0xec,
- /*
- * A receiver enable request was unsuccessful because it could not be
- * completed within the CAP.
- */
- IEEE802154_OUT_OF_CAP = 0xed,
- /*
- * A PAN identifier conflict has been detected and communicated to the
- * PAN coordinator.
- */
- IEEE802154_PANID_CONFLICT = 0xee,
- /* A coordinator realignment command has been received. */
- IEEE802154_REALIGMENT = 0xef,
- /* The transaction has expired and its information discarded. */
- IEEE802154_TRANSACTION_EXPIRED = 0xf0,
- /* There is no capacity to store the transaction. */
- IEEE802154_TRANSACTION_OVERFLOW = 0xf1,
- /*
- * The transceiver was in the transmitter enabled state when the
- * receiver was requested to be enabled.
- */
- IEEE802154_TX_ACTIVE = 0xf2,
- /* The appropriate key is not available in the ACL. */
- IEEE802154_UNAVAILABLE_KEY = 0xf3,
- /*
- * A SET/GET request was issued with the identifier of a PIB attribute
- * that is not supported.
- */
- IEEE802154_UNSUPPORTED_ATTR = 0xf4,
- /*
- * A request to perform a scan operation failed because the MLME was
- * in the process of performing a previously initiated scan operation.
- */
- IEEE802154_SCAN_IN_PROGRESS = 0xfc,
-};
-
-
-#endif
-
-
diff --git a/ANDROID_3.4.5/include/net/ieee802154_netdev.h b/ANDROID_3.4.5/include/net/ieee802154_netdev.h
deleted file mode 100644
index 57430555..00000000
--- a/ANDROID_3.4.5/include/net/ieee802154_netdev.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * An interface between IEEE802.15.4 device and rest of the kernel.
- *
- * Copyright (C) 2007, 2008, 2009 Siemens AG
- *
- * 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.
- *
- * 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-1301 USA.
- *
- * Written by:
- * Pavel Smolenskiy <pavel.smolenskiy@gmail.com>
- * Maxim Gorbachyov <maxim.gorbachev@siemens.com>
- * Maxim Osipov <maxim.osipov@siemens.com>
- * Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
- */
-
-#ifndef IEEE802154_NETDEVICE_H
-#define IEEE802154_NETDEVICE_H
-
-/*
- * A control block of skb passed between the ARPHRD_IEEE802154 device
- * and other stack parts.
- */
-struct ieee802154_mac_cb {
- u8 lqi;
- struct ieee802154_addr sa;
- struct ieee802154_addr da;
- u8 flags;
- u8 seq;
-};
-
-static inline struct ieee802154_mac_cb *mac_cb(struct sk_buff *skb)
-{
- return (struct ieee802154_mac_cb *)skb->cb;
-}
-
-#define MAC_CB_FLAG_TYPEMASK ((1 << 3) - 1)
-
-#define MAC_CB_FLAG_ACKREQ (1 << 3)
-#define MAC_CB_FLAG_SECEN (1 << 4)
-#define MAC_CB_FLAG_INTRAPAN (1 << 5)
-
-static inline int mac_cb_is_ackreq(struct sk_buff *skb)
-{
- return mac_cb(skb)->flags & MAC_CB_FLAG_ACKREQ;
-}
-
-static inline int mac_cb_is_secen(struct sk_buff *skb)
-{
- return mac_cb(skb)->flags & MAC_CB_FLAG_SECEN;
-}
-
-static inline int mac_cb_is_intrapan(struct sk_buff *skb)
-{
- return mac_cb(skb)->flags & MAC_CB_FLAG_INTRAPAN;
-}
-
-static inline int mac_cb_type(struct sk_buff *skb)
-{
- return mac_cb(skb)->flags & MAC_CB_FLAG_TYPEMASK;
-}
-
-#define IEEE802154_MAC_SCAN_ED 0
-#define IEEE802154_MAC_SCAN_ACTIVE 1
-#define IEEE802154_MAC_SCAN_PASSIVE 2
-#define IEEE802154_MAC_SCAN_ORPHAN 3
-
-struct wpan_phy;
-/*
- * This should be located at net_device->ml_priv
- *
- * get_phy should increment the reference counting on returned phy.
- * Use wpan_wpy_put to put that reference.
- */
-struct ieee802154_mlme_ops {
- int (*assoc_req)(struct net_device *dev,
- struct ieee802154_addr *addr,
- u8 channel, u8 page, u8 cap);
- int (*assoc_resp)(struct net_device *dev,
- struct ieee802154_addr *addr,
- u16 short_addr, u8 status);
- int (*disassoc_req)(struct net_device *dev,
- struct ieee802154_addr *addr,
- u8 reason);
- int (*start_req)(struct net_device *dev,
- struct ieee802154_addr *addr,
- u8 channel, u8 page, u8 bcn_ord, u8 sf_ord,
- u8 pan_coord, u8 blx, u8 coord_realign);
- int (*scan_req)(struct net_device *dev,
- u8 type, u32 channels, u8 page, u8 duration);
-
- struct wpan_phy *(*get_phy)(const struct net_device *dev);
-
- /*
- * FIXME: these should become the part of PIB/MIB interface.
- * However we still don't have IB interface of any kind
- */
- u16 (*get_pan_id)(const struct net_device *dev);
- u16 (*get_short_addr)(const struct net_device *dev);
- u8 (*get_dsn)(const struct net_device *dev);
- u8 (*get_bsn)(const struct net_device *dev);
-};
-
-static inline struct ieee802154_mlme_ops *ieee802154_mlme_ops(
- const struct net_device *dev)
-{
- return dev->ml_priv;
-}
-
-#endif
-
-
diff --git a/ANDROID_3.4.5/include/net/if_inet6.h b/ANDROID_3.4.5/include/net/if_inet6.h
deleted file mode 100644
index 51a7031b..00000000
--- a/ANDROID_3.4.5/include/net/if_inet6.h
+++ /dev/null
@@ -1,304 +0,0 @@
-/*
- * inet6 interface/address list definitions
- * Linux INET6 implementation
- *
- * Authors:
- * Pedro Roque <roque@di.fc.ul.pt>
- *
- *
- * 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 _NET_IF_INET6_H
-#define _NET_IF_INET6_H
-
-#include <net/snmp.h>
-#include <linux/ipv6.h>
-
-/* inet6_dev.if_flags */
-
-#define IF_RA_OTHERCONF 0x80
-#define IF_RA_MANAGED 0x40
-#define IF_RA_RCVD 0x20
-#define IF_RS_SENT 0x10
-#define IF_READY 0x80000000
-
-/* prefix flags */
-#define IF_PREFIX_ONLINK 0x01
-#define IF_PREFIX_AUTOCONF 0x02
-
-enum {
- INET6_IFADDR_STATE_DAD,
- INET6_IFADDR_STATE_POSTDAD,
- INET6_IFADDR_STATE_UP,
- INET6_IFADDR_STATE_DEAD,
-};
-
-struct inet6_ifaddr {
- struct in6_addr addr;
- __u32 prefix_len;
-
- /* In seconds, relative to tstamp. Expiry is at tstamp + HZ * lft. */
- __u32 valid_lft;
- __u32 prefered_lft;
- atomic_t refcnt;
- spinlock_t lock;
- spinlock_t state_lock;
-
- int state;
-
- __u8 probes;
- __u8 flags;
-
- __u16 scope;
-
- unsigned long cstamp; /* created timestamp */
- unsigned long tstamp; /* updated timestamp */
-
- struct timer_list timer;
-
- struct inet6_dev *idev;
- struct rt6_info *rt;
-
- struct hlist_node addr_lst;
- struct list_head if_list;
-
-#ifdef CONFIG_IPV6_PRIVACY
- struct list_head tmp_list;
- struct inet6_ifaddr *ifpub;
- int regen_count;
-#endif
- struct rcu_head rcu;
-};
-
-struct ip6_sf_socklist {
- unsigned int sl_max;
- unsigned int sl_count;
- struct in6_addr sl_addr[0];
-};
-
-#define IP6_SFLSIZE(count) (sizeof(struct ip6_sf_socklist) + \
- (count) * sizeof(struct in6_addr))
-
-#define IP6_SFBLOCK 10 /* allocate this many at once */
-
-struct ipv6_mc_socklist {
- struct in6_addr addr;
- int ifindex;
- struct ipv6_mc_socklist __rcu *next;
- rwlock_t sflock;
- unsigned int sfmode; /* MCAST_{INCLUDE,EXCLUDE} */
- struct ip6_sf_socklist *sflist;
- struct rcu_head rcu;
-};
-
-struct ip6_sf_list {
- struct ip6_sf_list *sf_next;
- struct in6_addr sf_addr;
- unsigned long sf_count[2]; /* include/exclude counts */
- unsigned char sf_gsresp; /* include in g & s response? */
- unsigned char sf_oldin; /* change state */
- unsigned char sf_crcount; /* retrans. left to send */
-};
-
-#define MAF_TIMER_RUNNING 0x01
-#define MAF_LAST_REPORTER 0x02
-#define MAF_LOADED 0x04
-#define MAF_NOREPORT 0x08
-#define MAF_GSQUERY 0x10
-
-struct ifmcaddr6 {
- struct in6_addr mca_addr;
- struct inet6_dev *idev;
- struct ifmcaddr6 *next;
- struct ip6_sf_list *mca_sources;
- struct ip6_sf_list *mca_tomb;
- unsigned int mca_sfmode;
- unsigned char mca_crcount;
- unsigned long mca_sfcount[2];
- struct timer_list mca_timer;
- unsigned mca_flags;
- int mca_users;
- atomic_t mca_refcnt;
- spinlock_t mca_lock;
- unsigned long mca_cstamp;
- unsigned long mca_tstamp;
-};
-
-/* Anycast stuff */
-
-struct ipv6_ac_socklist {
- struct in6_addr acl_addr;
- int acl_ifindex;
- struct ipv6_ac_socklist *acl_next;
-};
-
-struct ifacaddr6 {
- struct in6_addr aca_addr;
- struct inet6_dev *aca_idev;
- struct rt6_info *aca_rt;
- struct ifacaddr6 *aca_next;
- int aca_users;
- atomic_t aca_refcnt;
- spinlock_t aca_lock;
- unsigned long aca_cstamp;
- unsigned long aca_tstamp;
-};
-
-#define IFA_HOST IPV6_ADDR_LOOPBACK
-#define IFA_LINK IPV6_ADDR_LINKLOCAL
-#define IFA_SITE IPV6_ADDR_SITELOCAL
-
-struct ipv6_devstat {
- struct proc_dir_entry *proc_dir_entry;
- DEFINE_SNMP_STAT(struct ipstats_mib, ipv6);
- DEFINE_SNMP_STAT_ATOMIC(struct icmpv6_mib_device, icmpv6dev);
- DEFINE_SNMP_STAT_ATOMIC(struct icmpv6msg_mib_device, icmpv6msgdev);
-};
-
-struct inet6_dev {
- struct net_device *dev;
-
- struct list_head addr_list;
-
- struct ifmcaddr6 *mc_list;
- struct ifmcaddr6 *mc_tomb;
- spinlock_t mc_lock;
- unsigned char mc_qrv;
- unsigned char mc_gq_running;
- unsigned char mc_ifc_count;
- unsigned long mc_v1_seen;
- unsigned long mc_maxdelay;
- struct timer_list mc_gq_timer; /* general query timer */
- struct timer_list mc_ifc_timer; /* interface change timer */
-
- struct ifacaddr6 *ac_list;
- rwlock_t lock;
- atomic_t refcnt;
- __u32 if_flags;
- int dead;
-
-#ifdef CONFIG_IPV6_PRIVACY
- u8 rndid[8];
- struct timer_list regen_timer;
- struct list_head tempaddr_list;
-#endif
-
- struct neigh_parms *nd_parms;
- struct inet6_dev *next;
- struct ipv6_devconf cnf;
- struct ipv6_devstat stats;
- unsigned long tstamp; /* ipv6InterfaceTable update timestamp */
- struct rcu_head rcu;
-};
-
-static inline void ipv6_eth_mc_map(const struct in6_addr *addr, char *buf)
-{
- /*
- * +-------+-------+-------+-------+-------+-------+
- * | 33 | 33 | DST13 | DST14 | DST15 | DST16 |
- * +-------+-------+-------+-------+-------+-------+
- */
-
- buf[0]= 0x33;
- buf[1]= 0x33;
-
- memcpy(buf + 2, &addr->s6_addr32[3], sizeof(__u32));
-}
-
-static inline void ipv6_tr_mc_map(const struct in6_addr *addr, char *buf)
-{
- /* All nodes FF01::1, FF02::1, FF02::1:FFxx:xxxx */
-
- if (((addr->s6_addr[0] == 0xFF) &&
- ((addr->s6_addr[1] == 0x01) || (addr->s6_addr[1] == 0x02)) &&
- (addr->s6_addr16[1] == 0) &&
- (addr->s6_addr32[1] == 0) &&
- (addr->s6_addr32[2] == 0) &&
- (addr->s6_addr16[6] == 0) &&
- (addr->s6_addr[15] == 1)) ||
- ((addr->s6_addr[0] == 0xFF) &&
- (addr->s6_addr[1] == 0x02) &&
- (addr->s6_addr16[1] == 0) &&
- (addr->s6_addr32[1] == 0) &&
- (addr->s6_addr16[4] == 0) &&
- (addr->s6_addr[10] == 0) &&
- (addr->s6_addr[11] == 1) &&
- (addr->s6_addr[12] == 0xff)))
- {
- buf[0]=0xC0;
- buf[1]=0x00;
- buf[2]=0x01;
- buf[3]=0x00;
- buf[4]=0x00;
- buf[5]=0x00;
- /* All routers FF0x::2 */
- } else if ((addr->s6_addr[0] ==0xff) &&
- ((addr->s6_addr[1] & 0xF0) == 0) &&
- (addr->s6_addr16[1] == 0) &&
- (addr->s6_addr32[1] == 0) &&
- (addr->s6_addr32[2] == 0) &&
- (addr->s6_addr16[6] == 0) &&
- (addr->s6_addr[15] == 2))
- {
- buf[0]=0xC0;
- buf[1]=0x00;
- buf[2]=0x02;
- buf[3]=0x00;
- buf[4]=0x00;
- buf[5]=0x00;
- } else {
- unsigned char i ;
-
- i = addr->s6_addr[15] & 7 ;
- buf[0]=0xC0;
- buf[1]=0x00;
- buf[2]=0x00;
- buf[3]=0x01 << i ;
- buf[4]=0x00;
- buf[5]=0x00;
- }
-}
-
-static inline void ipv6_arcnet_mc_map(const struct in6_addr *addr, char *buf)
-{
- buf[0] = 0x00;
-}
-
-static inline void ipv6_ib_mc_map(const struct in6_addr *addr,
- const unsigned char *broadcast, char *buf)
-{
- unsigned char scope = broadcast[5] & 0xF;
-
- buf[0] = 0; /* Reserved */
- buf[1] = 0xff; /* Multicast QPN */
- buf[2] = 0xff;
- buf[3] = 0xff;
- buf[4] = 0xff;
- buf[5] = 0x10 | scope; /* scope from broadcast address */
- buf[6] = 0x60; /* IPv6 signature */
- buf[7] = 0x1b;
- buf[8] = broadcast[8]; /* P_Key */
- buf[9] = broadcast[9];
- memcpy(buf + 10, addr->s6_addr + 6, 10);
-}
-
-static inline int ipv6_ipgre_mc_map(const struct in6_addr *addr,
- const unsigned char *broadcast, char *buf)
-{
- if ((broadcast[0] | broadcast[1] | broadcast[2] | broadcast[3]) != 0) {
- memcpy(buf, broadcast, 4);
- } else {
- /* v4mapped? */
- if ((addr->s6_addr32[0] | addr->s6_addr32[1] |
- (addr->s6_addr32[2] ^ htonl(0x0000ffff))) != 0)
- return -EINVAL;
- memcpy(buf, &addr->s6_addr32[3], 4);
- }
- return 0;
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/inet6_connection_sock.h b/ANDROID_3.4.5/include/net/inet6_connection_sock.h
deleted file mode 100644
index 3207e58e..00000000
--- a/ANDROID_3.4.5/include/net/inet6_connection_sock.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * NET Generic infrastructure for INET6 connection oriented protocols.
- *
- * Authors: Many people, see the TCPv6 sources
- *
- * From code originally in TCPv6
- *
- * 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 _INET6_CONNECTION_SOCK_H
-#define _INET6_CONNECTION_SOCK_H
-
-#include <linux/types.h>
-
-struct in6_addr;
-struct inet_bind_bucket;
-struct request_sock;
-struct sk_buff;
-struct sock;
-struct sockaddr;
-
-extern int inet6_csk_bind_conflict(const struct sock *sk,
- const struct inet_bind_bucket *tb);
-
-extern struct dst_entry* inet6_csk_route_req(struct sock *sk,
- const struct request_sock *req);
-
-extern struct request_sock *inet6_csk_search_req(const struct sock *sk,
- struct request_sock ***prevp,
- const __be16 rport,
- const struct in6_addr *raddr,
- const struct in6_addr *laddr,
- const int iif);
-
-extern void inet6_csk_reqsk_queue_hash_add(struct sock *sk,
- struct request_sock *req,
- const unsigned long timeout);
-
-extern void inet6_csk_addr2sockaddr(struct sock *sk, struct sockaddr *uaddr);
-
-extern int inet6_csk_xmit(struct sk_buff *skb, struct flowi *fl);
-#endif /* _INET6_CONNECTION_SOCK_H */
diff --git a/ANDROID_3.4.5/include/net/inet6_hashtables.h b/ANDROID_3.4.5/include/net/inet6_hashtables.h
deleted file mode 100644
index 00cbb438..00000000
--- a/ANDROID_3.4.5/include/net/inet6_hashtables.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Authors: Lotsa people, from code originally in tcp
- *
- * 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 _INET6_HASHTABLES_H
-#define _INET6_HASHTABLES_H
-
-
-#if IS_ENABLED(CONFIG_IPV6)
-#include <linux/in6.h>
-#include <linux/ipv6.h>
-#include <linux/types.h>
-#include <linux/jhash.h>
-
-#include <net/inet_sock.h>
-
-#include <net/ipv6.h>
-#include <net/netns/hash.h>
-
-struct inet_hashinfo;
-
-/* I have no idea if this is a good hash for v6 or not. -DaveM */
-static inline unsigned int inet6_ehashfn(struct net *net,
- const struct in6_addr *laddr, const u16 lport,
- const struct in6_addr *faddr, const __be16 fport)
-{
- u32 ports = (lport ^ (__force u16)fport);
-
- return jhash_3words((__force u32)laddr->s6_addr32[3],
- (__force u32)faddr->s6_addr32[3],
- ports, inet_ehash_secret + net_hash_mix(net));
-}
-
-static inline int inet6_sk_ehashfn(const struct sock *sk)
-{
- const struct inet_sock *inet = inet_sk(sk);
- const struct ipv6_pinfo *np = inet6_sk(sk);
- const struct in6_addr *laddr = &np->rcv_saddr;
- const struct in6_addr *faddr = &np->daddr;
- const __u16 lport = inet->inet_num;
- const __be16 fport = inet->inet_dport;
- struct net *net = sock_net(sk);
-
- return inet6_ehashfn(net, laddr, lport, faddr, fport);
-}
-
-extern int __inet6_hash(struct sock *sk, struct inet_timewait_sock *twp);
-
-/*
- * Sockets in TCP_CLOSE state are _always_ taken out of the hash, so
- * we need not check it for TCP lookups anymore, thanks Alexey. -DaveM
- *
- * The sockhash lock must be held as a reader here.
- */
-extern struct sock *__inet6_lookup_established(struct net *net,
- struct inet_hashinfo *hashinfo,
- const struct in6_addr *saddr,
- const __be16 sport,
- const struct in6_addr *daddr,
- const u16 hnum,
- const int dif);
-
-extern struct sock *inet6_lookup_listener(struct net *net,
- struct inet_hashinfo *hashinfo,
- const struct in6_addr *daddr,
- const unsigned short hnum,
- const int dif);
-
-static inline struct sock *__inet6_lookup(struct net *net,
- struct inet_hashinfo *hashinfo,
- const struct in6_addr *saddr,
- const __be16 sport,
- const struct in6_addr *daddr,
- const u16 hnum,
- const int dif)
-{
- struct sock *sk = __inet6_lookup_established(net, hashinfo, saddr,
- sport, daddr, hnum, dif);
- if (sk)
- return sk;
-
- return inet6_lookup_listener(net, hashinfo, daddr, hnum, dif);
-}
-
-static inline struct sock *__inet6_lookup_skb(struct inet_hashinfo *hashinfo,
- struct sk_buff *skb,
- const __be16 sport,
- const __be16 dport)
-{
- struct sock *sk;
-
- if (unlikely(sk = skb_steal_sock(skb)))
- return sk;
- else return __inet6_lookup(dev_net(skb_dst(skb)->dev), hashinfo,
- &ipv6_hdr(skb)->saddr, sport,
- &ipv6_hdr(skb)->daddr, ntohs(dport),
- inet6_iif(skb));
-}
-
-extern struct sock *inet6_lookup(struct net *net, struct inet_hashinfo *hashinfo,
- const struct in6_addr *saddr, const __be16 sport,
- const struct in6_addr *daddr, const __be16 dport,
- const int dif);
-#endif /* IS_ENABLED(CONFIG_IPV6) */
-#endif /* _INET6_HASHTABLES_H */
diff --git a/ANDROID_3.4.5/include/net/inet_common.h b/ANDROID_3.4.5/include/net/inet_common.h
deleted file mode 100644
index 22fac989..00000000
--- a/ANDROID_3.4.5/include/net/inet_common.h
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef _INET_COMMON_H
-#define _INET_COMMON_H
-
-extern const struct proto_ops inet_stream_ops;
-extern const struct proto_ops inet_dgram_ops;
-
-/*
- * INET4 prototypes used by INET6
- */
-
-struct msghdr;
-struct sock;
-struct sockaddr;
-struct socket;
-
-extern int inet_release(struct socket *sock);
-extern int inet_stream_connect(struct socket *sock, struct sockaddr * uaddr,
- int addr_len, int flags);
-extern int inet_dgram_connect(struct socket *sock, struct sockaddr * uaddr,
- int addr_len, int flags);
-extern int inet_accept(struct socket *sock, struct socket *newsock, int flags);
-extern int inet_sendmsg(struct kiocb *iocb, struct socket *sock,
- struct msghdr *msg, size_t size);
-extern ssize_t inet_sendpage(struct socket *sock, struct page *page, int offset,
- size_t size, int flags);
-extern int inet_recvmsg(struct kiocb *iocb, struct socket *sock,
- struct msghdr *msg, size_t size, int flags);
-extern int inet_shutdown(struct socket *sock, int how);
-extern int inet_listen(struct socket *sock, int backlog);
-extern void inet_sock_destruct(struct sock *sk);
-extern int inet_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len);
-extern int inet_getname(struct socket *sock, struct sockaddr *uaddr,
- int *uaddr_len, int peer);
-extern int inet_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg);
-extern int inet_ctl_sock_create(struct sock **sk, unsigned short family,
- unsigned short type, unsigned char protocol,
- struct net *net);
-
-static inline void inet_ctl_sock_destroy(struct sock *sk)
-{
- sk_release_kernel(sk);
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/inet_connection_sock.h b/ANDROID_3.4.5/include/net/inet_connection_sock.h
deleted file mode 100644
index dbf9aab3..00000000
--- a/ANDROID_3.4.5/include/net/inet_connection_sock.h
+++ /dev/null
@@ -1,339 +0,0 @@
-/*
- * NET Generic infrastructure for INET connection oriented protocols.
- *
- * Definitions for inet_connection_sock
- *
- * Authors: Many people, see the TCP sources
- *
- * From code originally in TCP
- *
- * 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 _INET_CONNECTION_SOCK_H
-#define _INET_CONNECTION_SOCK_H
-
-#include <linux/compiler.h>
-#include <linux/string.h>
-#include <linux/timer.h>
-#include <linux/poll.h>
-
-#include <net/inet_sock.h>
-#include <net/request_sock.h>
-
-#define INET_CSK_DEBUG 1
-
-/* Cancel timers, when they are not required. */
-#undef INET_CSK_CLEAR_TIMERS
-
-struct inet_bind_bucket;
-struct tcp_congestion_ops;
-
-/*
- * Pointers to address related TCP functions
- * (i.e. things that depend on the address family)
- */
-struct inet_connection_sock_af_ops {
- int (*queue_xmit)(struct sk_buff *skb, struct flowi *fl);
- void (*send_check)(struct sock *sk, struct sk_buff *skb);
- int (*rebuild_header)(struct sock *sk);
- int (*conn_request)(struct sock *sk, struct sk_buff *skb);
- struct sock *(*syn_recv_sock)(struct sock *sk, struct sk_buff *skb,
- struct request_sock *req,
- struct dst_entry *dst);
- struct inet_peer *(*get_peer)(struct sock *sk, bool *release_it);
- u16 net_header_len;
- u16 sockaddr_len;
- int (*setsockopt)(struct sock *sk, int level, int optname,
- char __user *optval, unsigned int optlen);
- int (*getsockopt)(struct sock *sk, int level, int optname,
- char __user *optval, int __user *optlen);
-#ifdef CONFIG_COMPAT
- int (*compat_setsockopt)(struct sock *sk,
- int level, int optname,
- char __user *optval, unsigned int optlen);
- int (*compat_getsockopt)(struct sock *sk,
- int level, int optname,
- char __user *optval, int __user *optlen);
-#endif
- void (*addr2sockaddr)(struct sock *sk, struct sockaddr *);
- int (*bind_conflict)(const struct sock *sk,
- const struct inet_bind_bucket *tb);
-};
-
-/** inet_connection_sock - INET connection oriented sock
- *
- * @icsk_accept_queue: FIFO of established children
- * @icsk_bind_hash: Bind node
- * @icsk_timeout: Timeout
- * @icsk_retransmit_timer: Resend (no ack)
- * @icsk_rto: Retransmit timeout
- * @icsk_pmtu_cookie Last pmtu seen by socket
- * @icsk_ca_ops Pluggable congestion control hook
- * @icsk_af_ops Operations which are AF_INET{4,6} specific
- * @icsk_ca_state: Congestion control state
- * @icsk_retransmits: Number of unrecovered [RTO] timeouts
- * @icsk_pending: Scheduled timer event
- * @icsk_backoff: Backoff
- * @icsk_syn_retries: Number of allowed SYN (or equivalent) retries
- * @icsk_probes_out: unanswered 0 window probes
- * @icsk_ext_hdr_len: Network protocol overhead (IP/IPv6 options)
- * @icsk_ack: Delayed ACK control data
- * @icsk_mtup; MTU probing control data
- */
-struct inet_connection_sock {
- /* inet_sock has to be the first member! */
- struct inet_sock icsk_inet;
- struct request_sock_queue icsk_accept_queue;
- struct inet_bind_bucket *icsk_bind_hash;
- unsigned long icsk_timeout;
- struct timer_list icsk_retransmit_timer;
- struct timer_list icsk_delack_timer;
- __u32 icsk_rto;
- __u32 icsk_pmtu_cookie;
- const struct tcp_congestion_ops *icsk_ca_ops;
- const struct inet_connection_sock_af_ops *icsk_af_ops;
- unsigned int (*icsk_sync_mss)(struct sock *sk, u32 pmtu);
- __u8 icsk_ca_state;
- __u8 icsk_retransmits;
- __u8 icsk_pending;
- __u8 icsk_backoff;
- __u8 icsk_syn_retries;
- __u8 icsk_probes_out;
- __u16 icsk_ext_hdr_len;
- struct {
- __u8 pending; /* ACK is pending */
- __u8 quick; /* Scheduled number of quick acks */
- __u8 pingpong; /* The session is interactive */
- __u8 blocked; /* Delayed ACK was blocked by socket lock */
- __u32 ato; /* Predicted tick of soft clock */
- unsigned long timeout; /* Currently scheduled timeout */
- __u32 lrcvtime; /* timestamp of last received data packet */
- __u16 last_seg_size; /* Size of last incoming segment */
- __u16 rcv_mss; /* MSS used for delayed ACK decisions */
- } icsk_ack;
- struct {
- int enabled;
-
- /* Range of MTUs to search */
- int search_high;
- int search_low;
-
- /* Information on the current probe. */
- int probe_size;
- } icsk_mtup;
- u32 icsk_ca_priv[16];
- u32 icsk_user_timeout;
-#define ICSK_CA_PRIV_SIZE (16 * sizeof(u32))
-};
-
-#define ICSK_TIME_RETRANS 1 /* Retransmit timer */
-#define ICSK_TIME_DACK 2 /* Delayed ack timer */
-#define ICSK_TIME_PROBE0 3 /* Zero window probe timer */
-
-static inline struct inet_connection_sock *inet_csk(const struct sock *sk)
-{
- return (struct inet_connection_sock *)sk;
-}
-
-static inline void *inet_csk_ca(const struct sock *sk)
-{
- return (void *)inet_csk(sk)->icsk_ca_priv;
-}
-
-extern struct sock *inet_csk_clone_lock(const struct sock *sk,
- const struct request_sock *req,
- const gfp_t priority);
-
-enum inet_csk_ack_state_t {
- ICSK_ACK_SCHED = 1,
- ICSK_ACK_TIMER = 2,
- ICSK_ACK_PUSHED = 4,
- ICSK_ACK_PUSHED2 = 8
-};
-
-extern void inet_csk_init_xmit_timers(struct sock *sk,
- void (*retransmit_handler)(unsigned long),
- void (*delack_handler)(unsigned long),
- void (*keepalive_handler)(unsigned long));
-extern void inet_csk_clear_xmit_timers(struct sock *sk);
-
-static inline void inet_csk_schedule_ack(struct sock *sk)
-{
- inet_csk(sk)->icsk_ack.pending |= ICSK_ACK_SCHED;
-}
-
-static inline int inet_csk_ack_scheduled(const struct sock *sk)
-{
- return inet_csk(sk)->icsk_ack.pending & ICSK_ACK_SCHED;
-}
-
-static inline void inet_csk_delack_init(struct sock *sk)
-{
- memset(&inet_csk(sk)->icsk_ack, 0, sizeof(inet_csk(sk)->icsk_ack));
-}
-
-extern void inet_csk_delete_keepalive_timer(struct sock *sk);
-extern void inet_csk_reset_keepalive_timer(struct sock *sk, unsigned long timeout);
-
-#ifdef INET_CSK_DEBUG
-extern const char inet_csk_timer_bug_msg[];
-#endif
-
-static inline void inet_csk_clear_xmit_timer(struct sock *sk, const int what)
-{
- struct inet_connection_sock *icsk = inet_csk(sk);
-
- if (what == ICSK_TIME_RETRANS || what == ICSK_TIME_PROBE0) {
- icsk->icsk_pending = 0;
-#ifdef INET_CSK_CLEAR_TIMERS
- sk_stop_timer(sk, &icsk->icsk_retransmit_timer);
-#endif
- } else if (what == ICSK_TIME_DACK) {
- icsk->icsk_ack.blocked = icsk->icsk_ack.pending = 0;
-#ifdef INET_CSK_CLEAR_TIMERS
- sk_stop_timer(sk, &icsk->icsk_delack_timer);
-#endif
- }
-#ifdef INET_CSK_DEBUG
- else {
- pr_debug("%s", inet_csk_timer_bug_msg);
- }
-#endif
-}
-
-/*
- * Reset the retransmission timer
- */
-static inline void inet_csk_reset_xmit_timer(struct sock *sk, const int what,
- unsigned long when,
- const unsigned long max_when)
-{
- struct inet_connection_sock *icsk = inet_csk(sk);
-
- if (when > max_when) {
-#ifdef INET_CSK_DEBUG
- pr_debug("reset_xmit_timer: sk=%p %d when=0x%lx, caller=%p\n",
- sk, what, when, current_text_addr());
-#endif
- when = max_when;
- }
-
- if (what == ICSK_TIME_RETRANS || what == ICSK_TIME_PROBE0) {
- icsk->icsk_pending = what;
- icsk->icsk_timeout = jiffies + when;
- sk_reset_timer(sk, &icsk->icsk_retransmit_timer, icsk->icsk_timeout);
- } else if (what == ICSK_TIME_DACK) {
- icsk->icsk_ack.pending |= ICSK_ACK_TIMER;
- icsk->icsk_ack.timeout = jiffies + when;
- sk_reset_timer(sk, &icsk->icsk_delack_timer, icsk->icsk_ack.timeout);
- }
-#ifdef INET_CSK_DEBUG
- else {
- pr_debug("%s", inet_csk_timer_bug_msg);
- }
-#endif
-}
-
-extern struct sock *inet_csk_accept(struct sock *sk, int flags, int *err);
-
-extern struct request_sock *inet_csk_search_req(const struct sock *sk,
- struct request_sock ***prevp,
- const __be16 rport,
- const __be32 raddr,
- const __be32 laddr);
-extern int inet_csk_bind_conflict(const struct sock *sk,
- const struct inet_bind_bucket *tb);
-extern int inet_csk_get_port(struct sock *sk, unsigned short snum);
-
-extern struct dst_entry* inet_csk_route_req(struct sock *sk,
- struct flowi4 *fl4,
- const struct request_sock *req);
-extern struct dst_entry* inet_csk_route_child_sock(struct sock *sk,
- struct sock *newsk,
- const struct request_sock *req);
-
-static inline void inet_csk_reqsk_queue_add(struct sock *sk,
- struct request_sock *req,
- struct sock *child)
-{
- reqsk_queue_add(&inet_csk(sk)->icsk_accept_queue, req, sk, child);
-}
-
-extern void inet_csk_reqsk_queue_hash_add(struct sock *sk,
- struct request_sock *req,
- unsigned long timeout);
-
-static inline void inet_csk_reqsk_queue_removed(struct sock *sk,
- struct request_sock *req)
-{
- if (reqsk_queue_removed(&inet_csk(sk)->icsk_accept_queue, req) == 0)
- inet_csk_delete_keepalive_timer(sk);
-}
-
-static inline void inet_csk_reqsk_queue_added(struct sock *sk,
- const unsigned long timeout)
-{
- if (reqsk_queue_added(&inet_csk(sk)->icsk_accept_queue) == 0)
- inet_csk_reset_keepalive_timer(sk, timeout);
-}
-
-static inline int inet_csk_reqsk_queue_len(const struct sock *sk)
-{
- return reqsk_queue_len(&inet_csk(sk)->icsk_accept_queue);
-}
-
-static inline int inet_csk_reqsk_queue_young(const struct sock *sk)
-{
- return reqsk_queue_len_young(&inet_csk(sk)->icsk_accept_queue);
-}
-
-static inline int inet_csk_reqsk_queue_is_full(const struct sock *sk)
-{
- return reqsk_queue_is_full(&inet_csk(sk)->icsk_accept_queue);
-}
-
-static inline void inet_csk_reqsk_queue_unlink(struct sock *sk,
- struct request_sock *req,
- struct request_sock **prev)
-{
- reqsk_queue_unlink(&inet_csk(sk)->icsk_accept_queue, req, prev);
-}
-
-static inline void inet_csk_reqsk_queue_drop(struct sock *sk,
- struct request_sock *req,
- struct request_sock **prev)
-{
- inet_csk_reqsk_queue_unlink(sk, req, prev);
- inet_csk_reqsk_queue_removed(sk, req);
- reqsk_free(req);
-}
-
-extern void inet_csk_reqsk_queue_prune(struct sock *parent,
- const unsigned long interval,
- const unsigned long timeout,
- const unsigned long max_rto);
-
-extern void inet_csk_destroy_sock(struct sock *sk);
-
-/*
- * LISTEN is a special case for poll..
- */
-static inline unsigned int inet_csk_listen_poll(const struct sock *sk)
-{
- return !reqsk_queue_empty(&inet_csk(sk)->icsk_accept_queue) ?
- (POLLIN | POLLRDNORM) : 0;
-}
-
-extern int inet_csk_listen_start(struct sock *sk, const int nr_table_entries);
-extern void inet_csk_listen_stop(struct sock *sk);
-
-extern void inet_csk_addr2sockaddr(struct sock *sk, struct sockaddr *uaddr);
-
-extern int inet_csk_compat_getsockopt(struct sock *sk, int level, int optname,
- char __user *optval, int __user *optlen);
-extern int inet_csk_compat_setsockopt(struct sock *sk, int level, int optname,
- char __user *optval, unsigned int optlen);
-#endif /* _INET_CONNECTION_SOCK_H */
diff --git a/ANDROID_3.4.5/include/net/inet_ecn.h b/ANDROID_3.4.5/include/net/inet_ecn.h
deleted file mode 100644
index 2fa14691..00000000
--- a/ANDROID_3.4.5/include/net/inet_ecn.h
+++ /dev/null
@@ -1,148 +0,0 @@
-#ifndef _INET_ECN_H_
-#define _INET_ECN_H_
-
-#include <linux/ip.h>
-#include <linux/skbuff.h>
-
-#include <net/inet_sock.h>
-#include <net/dsfield.h>
-
-enum {
- INET_ECN_NOT_ECT = 0,
- INET_ECN_ECT_1 = 1,
- INET_ECN_ECT_0 = 2,
- INET_ECN_CE = 3,
- INET_ECN_MASK = 3,
-};
-
-static inline int INET_ECN_is_ce(__u8 dsfield)
-{
- return (dsfield & INET_ECN_MASK) == INET_ECN_CE;
-}
-
-static inline int INET_ECN_is_not_ect(__u8 dsfield)
-{
- return (dsfield & INET_ECN_MASK) == INET_ECN_NOT_ECT;
-}
-
-static inline int INET_ECN_is_capable(__u8 dsfield)
-{
- return dsfield & INET_ECN_ECT_0;
-}
-
-/*
- * RFC 3168 9.1.1
- * The full-functionality option for ECN encapsulation is to copy the
- * ECN codepoint of the inside header to the outside header on
- * encapsulation if the inside header is not-ECT or ECT, and to set the
- * ECN codepoint of the outside header to ECT(0) if the ECN codepoint of
- * the inside header is CE.
- */
-static inline __u8 INET_ECN_encapsulate(__u8 outer, __u8 inner)
-{
- outer &= ~INET_ECN_MASK;
- outer |= !INET_ECN_is_ce(inner) ? (inner & INET_ECN_MASK) :
- INET_ECN_ECT_0;
- return outer;
-}
-
-static inline void INET_ECN_xmit(struct sock *sk)
-{
- inet_sk(sk)->tos |= INET_ECN_ECT_0;
- if (inet6_sk(sk) != NULL)
- inet6_sk(sk)->tclass |= INET_ECN_ECT_0;
-}
-
-static inline void INET_ECN_dontxmit(struct sock *sk)
-{
- inet_sk(sk)->tos &= ~INET_ECN_MASK;
- if (inet6_sk(sk) != NULL)
- inet6_sk(sk)->tclass &= ~INET_ECN_MASK;
-}
-
-#define IP6_ECN_flow_init(label) do { \
- (label) &= ~htonl(INET_ECN_MASK << 20); \
- } while (0)
-
-#define IP6_ECN_flow_xmit(sk, label) do { \
- if (INET_ECN_is_capable(inet6_sk(sk)->tclass)) \
- (label) |= htonl(INET_ECN_ECT_0 << 20); \
- } while (0)
-
-static inline int IP_ECN_set_ce(struct iphdr *iph)
-{
- u32 check = (__force u32)iph->check;
- u32 ecn = (iph->tos + 1) & INET_ECN_MASK;
-
- /*
- * After the last operation we have (in binary):
- * INET_ECN_NOT_ECT => 01
- * INET_ECN_ECT_1 => 10
- * INET_ECN_ECT_0 => 11
- * INET_ECN_CE => 00
- */
- if (!(ecn & 2))
- return !ecn;
-
- /*
- * The following gives us:
- * INET_ECN_ECT_1 => check += htons(0xFFFD)
- * INET_ECN_ECT_0 => check += htons(0xFFFE)
- */
- check += (__force u16)htons(0xFFFB) + (__force u16)htons(ecn);
-
- iph->check = (__force __sum16)(check + (check>=0xFFFF));
- iph->tos |= INET_ECN_CE;
- return 1;
-}
-
-static inline void IP_ECN_clear(struct iphdr *iph)
-{
- iph->tos &= ~INET_ECN_MASK;
-}
-
-static inline void ipv4_copy_dscp(unsigned int dscp, struct iphdr *inner)
-{
- dscp &= ~INET_ECN_MASK;
- ipv4_change_dsfield(inner, INET_ECN_MASK, dscp);
-}
-
-struct ipv6hdr;
-
-static inline int IP6_ECN_set_ce(struct ipv6hdr *iph)
-{
- if (INET_ECN_is_not_ect(ipv6_get_dsfield(iph)))
- return 0;
- *(__be32*)iph |= htonl(INET_ECN_CE << 20);
- return 1;
-}
-
-static inline void IP6_ECN_clear(struct ipv6hdr *iph)
-{
- *(__be32*)iph &= ~htonl(INET_ECN_MASK << 20);
-}
-
-static inline void ipv6_copy_dscp(unsigned int dscp, struct ipv6hdr *inner)
-{
- dscp &= ~INET_ECN_MASK;
- ipv6_change_dsfield(inner, INET_ECN_MASK, dscp);
-}
-
-static inline int INET_ECN_set_ce(struct sk_buff *skb)
-{
- switch (skb->protocol) {
- case cpu_to_be16(ETH_P_IP):
- if (skb->network_header + sizeof(struct iphdr) <= skb->tail)
- return IP_ECN_set_ce(ip_hdr(skb));
- break;
-
- case cpu_to_be16(ETH_P_IPV6):
- if (skb->network_header + sizeof(struct ipv6hdr) <= skb->tail)
- return IP6_ECN_set_ce(ipv6_hdr(skb));
- break;
- }
-
- return 0;
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/inet_frag.h b/ANDROID_3.4.5/include/net/inet_frag.h
deleted file mode 100644
index 16ff29a7..00000000
--- a/ANDROID_3.4.5/include/net/inet_frag.h
+++ /dev/null
@@ -1,74 +0,0 @@
-#ifndef __NET_FRAG_H__
-#define __NET_FRAG_H__
-
-struct netns_frags {
- int nqueues;
- atomic_t mem;
- struct list_head lru_list;
-
- /* sysctls */
- int timeout;
- int high_thresh;
- int low_thresh;
-};
-
-struct inet_frag_queue {
- struct hlist_node list;
- struct netns_frags *net;
- struct list_head lru_list; /* lru list member */
- spinlock_t lock;
- atomic_t refcnt;
- struct timer_list timer; /* when will this queue expire? */
- struct sk_buff *fragments; /* list of received fragments */
- struct sk_buff *fragments_tail;
- ktime_t stamp;
- int len; /* total length of orig datagram */
- int meat;
- __u8 last_in; /* first/last segment arrived? */
-
-#define INET_FRAG_COMPLETE 4
-#define INET_FRAG_FIRST_IN 2
-#define INET_FRAG_LAST_IN 1
-};
-
-#define INETFRAGS_HASHSZ 64
-
-struct inet_frags {
- struct hlist_head hash[INETFRAGS_HASHSZ];
- rwlock_t lock;
- u32 rnd;
- int qsize;
- int secret_interval;
- struct timer_list secret_timer;
-
- unsigned int (*hashfn)(struct inet_frag_queue *);
- void (*constructor)(struct inet_frag_queue *q,
- void *arg);
- void (*destructor)(struct inet_frag_queue *);
- void (*skb_free)(struct sk_buff *);
- int (*match)(struct inet_frag_queue *q,
- void *arg);
- void (*frag_expire)(unsigned long data);
-};
-
-void inet_frags_init(struct inet_frags *);
-void inet_frags_fini(struct inet_frags *);
-
-void inet_frags_init_net(struct netns_frags *nf);
-void inet_frags_exit_net(struct netns_frags *nf, struct inet_frags *f);
-
-void inet_frag_kill(struct inet_frag_queue *q, struct inet_frags *f);
-void inet_frag_destroy(struct inet_frag_queue *q,
- struct inet_frags *f, int *work);
-int inet_frag_evictor(struct netns_frags *nf, struct inet_frags *f);
-struct inet_frag_queue *inet_frag_find(struct netns_frags *nf,
- struct inet_frags *f, void *key, unsigned int hash)
- __releases(&f->lock);
-
-static inline void inet_frag_put(struct inet_frag_queue *q, struct inet_frags *f)
-{
- if (atomic_dec_and_test(&q->refcnt))
- inet_frag_destroy(q, f, NULL);
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/inet_hashtables.h b/ANDROID_3.4.5/include/net/inet_hashtables.h
deleted file mode 100644
index 808fc5f7..00000000
--- a/ANDROID_3.4.5/include/net/inet_hashtables.h
+++ /dev/null
@@ -1,402 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Authors: Lotsa people, from code originally in tcp
- *
- * 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 _INET_HASHTABLES_H
-#define _INET_HASHTABLES_H
-
-
-#include <linux/interrupt.h>
-#include <linux/ip.h>
-#include <linux/ipv6.h>
-#include <linux/list.h>
-#include <linux/slab.h>
-#include <linux/socket.h>
-#include <linux/spinlock.h>
-#include <linux/types.h>
-#include <linux/wait.h>
-#include <linux/vmalloc.h>
-
-#include <net/inet_connection_sock.h>
-#include <net/inet_sock.h>
-#include <net/sock.h>
-#include <net/route.h>
-#include <net/tcp_states.h>
-#include <net/netns/hash.h>
-
-#include <linux/atomic.h>
-#include <asm/byteorder.h>
-
-/* This is for all connections with a full identity, no wildcards.
- * One chain is dedicated to TIME_WAIT sockets.
- * I'll experiment with dynamic table growth later.
- */
-struct inet_ehash_bucket {
- struct hlist_nulls_head chain;
- struct hlist_nulls_head twchain;
-};
-
-/* There are a few simple rules, which allow for local port reuse by
- * an application. In essence:
- *
- * 1) Sockets bound to different interfaces may share a local port.
- * Failing that, goto test 2.
- * 2) If all sockets have sk->sk_reuse set, and none of them are in
- * TCP_LISTEN state, the port may be shared.
- * Failing that, goto test 3.
- * 3) If all sockets are bound to a specific inet_sk(sk)->rcv_saddr local
- * address, and none of them are the same, the port may be
- * shared.
- * Failing this, the port cannot be shared.
- *
- * The interesting point, is test #2. This is what an FTP server does
- * all day. To optimize this case we use a specific flag bit defined
- * below. As we add sockets to a bind bucket list, we perform a
- * check of: (newsk->sk_reuse && (newsk->sk_state != TCP_LISTEN))
- * As long as all sockets added to a bind bucket pass this test,
- * the flag bit will be set.
- * The resulting situation is that tcp_v[46]_verify_bind() can just check
- * for this flag bit, if it is set and the socket trying to bind has
- * sk->sk_reuse set, we don't even have to walk the owners list at all,
- * we return that it is ok to bind this socket to the requested local port.
- *
- * Sounds like a lot of work, but it is worth it. In a more naive
- * implementation (ie. current FreeBSD etc.) the entire list of ports
- * must be walked for each data port opened by an ftp server. Needless
- * to say, this does not scale at all. With a couple thousand FTP
- * users logged onto your box, isn't it nice to know that new data
- * ports are created in O(1) time? I thought so. ;-) -DaveM
- */
-struct inet_bind_bucket {
-#ifdef CONFIG_NET_NS
- struct net *ib_net;
-#endif
- unsigned short port;
- signed short fastreuse;
- int num_owners;
- struct hlist_node node;
- struct hlist_head owners;
-};
-
-static inline struct net *ib_net(struct inet_bind_bucket *ib)
-{
- return read_pnet(&ib->ib_net);
-}
-
-#define inet_bind_bucket_for_each(tb, pos, head) \
- hlist_for_each_entry(tb, pos, head, node)
-
-struct inet_bind_hashbucket {
- spinlock_t lock;
- struct hlist_head chain;
-};
-
-/*
- * Sockets can be hashed in established or listening table
- * We must use different 'nulls' end-of-chain value for listening
- * hash table, or we might find a socket that was closed and
- * reallocated/inserted into established hash table
- */
-#define LISTENING_NULLS_BASE (1U << 29)
-struct inet_listen_hashbucket {
- spinlock_t lock;
- struct hlist_nulls_head head;
-};
-
-/* This is for listening sockets, thus all sockets which possess wildcards. */
-#define INET_LHTABLE_SIZE 32 /* Yes, really, this is all you need. */
-
-struct inet_hashinfo {
- /* This is for sockets with full identity only. Sockets here will
- * always be without wildcards and will have the following invariant:
- *
- * TCP_ESTABLISHED <= sk->sk_state < TCP_CLOSE
- *
- * TIME_WAIT sockets use a separate chain (twchain).
- */
- struct inet_ehash_bucket *ehash;
- spinlock_t *ehash_locks;
- unsigned int ehash_mask;
- unsigned int ehash_locks_mask;
-
- /* Ok, let's try this, I give up, we do need a local binding
- * TCP hash as well as the others for fast bind/connect.
- */
- struct inet_bind_hashbucket *bhash;
-
- unsigned int bhash_size;
- /* 4 bytes hole on 64 bit */
-
- struct kmem_cache *bind_bucket_cachep;
-
- /* All the above members are written once at bootup and
- * never written again _or_ are predominantly read-access.
- *
- * Now align to a new cache line as all the following members
- * might be often dirty.
- */
- /* All sockets in TCP_LISTEN state will be in here. This is the only
- * table where wildcard'd TCP sockets can exist. Hash function here
- * is just local port number.
- */
- struct inet_listen_hashbucket listening_hash[INET_LHTABLE_SIZE]
- ____cacheline_aligned_in_smp;
-
- atomic_t bsockets;
-};
-
-static inline struct inet_ehash_bucket *inet_ehash_bucket(
- struct inet_hashinfo *hashinfo,
- unsigned int hash)
-{
- return &hashinfo->ehash[hash & hashinfo->ehash_mask];
-}
-
-static inline spinlock_t *inet_ehash_lockp(
- struct inet_hashinfo *hashinfo,
- unsigned int hash)
-{
- return &hashinfo->ehash_locks[hash & hashinfo->ehash_locks_mask];
-}
-
-static inline int inet_ehash_locks_alloc(struct inet_hashinfo *hashinfo)
-{
- unsigned int i, size = 256;
-#if defined(CONFIG_PROVE_LOCKING)
- unsigned int nr_pcpus = 2;
-#else
- unsigned int nr_pcpus = num_possible_cpus();
-#endif
- if (nr_pcpus >= 4)
- size = 512;
- if (nr_pcpus >= 8)
- size = 1024;
- if (nr_pcpus >= 16)
- size = 2048;
- if (nr_pcpus >= 32)
- size = 4096;
- if (sizeof(spinlock_t) != 0) {
-#ifdef CONFIG_NUMA
- if (size * sizeof(spinlock_t) > PAGE_SIZE)
- hashinfo->ehash_locks = vmalloc(size * sizeof(spinlock_t));
- else
-#endif
- hashinfo->ehash_locks = kmalloc(size * sizeof(spinlock_t),
- GFP_KERNEL);
- if (!hashinfo->ehash_locks)
- return ENOMEM;
- for (i = 0; i < size; i++)
- spin_lock_init(&hashinfo->ehash_locks[i]);
- }
- hashinfo->ehash_locks_mask = size - 1;
- return 0;
-}
-
-static inline void inet_ehash_locks_free(struct inet_hashinfo *hashinfo)
-{
- if (hashinfo->ehash_locks) {
-#ifdef CONFIG_NUMA
- unsigned int size = (hashinfo->ehash_locks_mask + 1) *
- sizeof(spinlock_t);
- if (size > PAGE_SIZE)
- vfree(hashinfo->ehash_locks);
- else
-#endif
- kfree(hashinfo->ehash_locks);
- hashinfo->ehash_locks = NULL;
- }
-}
-
-extern struct inet_bind_bucket *
- inet_bind_bucket_create(struct kmem_cache *cachep,
- struct net *net,
- struct inet_bind_hashbucket *head,
- const unsigned short snum);
-extern void inet_bind_bucket_destroy(struct kmem_cache *cachep,
- struct inet_bind_bucket *tb);
-
-static inline int inet_bhashfn(struct net *net,
- const __u16 lport, const int bhash_size)
-{
- return (lport + net_hash_mix(net)) & (bhash_size - 1);
-}
-
-extern void inet_bind_hash(struct sock *sk, struct inet_bind_bucket *tb,
- const unsigned short snum);
-
-/* These can have wildcards, don't try too hard. */
-static inline int inet_lhashfn(struct net *net, const unsigned short num)
-{
- return (num + net_hash_mix(net)) & (INET_LHTABLE_SIZE - 1);
-}
-
-static inline int inet_sk_listen_hashfn(const struct sock *sk)
-{
- return inet_lhashfn(sock_net(sk), inet_sk(sk)->inet_num);
-}
-
-/* Caller must disable local BH processing. */
-extern int __inet_inherit_port(struct sock *sk, struct sock *child);
-
-extern void inet_put_port(struct sock *sk);
-
-void inet_hashinfo_init(struct inet_hashinfo *h);
-
-extern int __inet_hash_nolisten(struct sock *sk, struct inet_timewait_sock *tw);
-extern void inet_hash(struct sock *sk);
-extern void inet_unhash(struct sock *sk);
-
-extern struct sock *__inet_lookup_listener(struct net *net,
- struct inet_hashinfo *hashinfo,
- const __be32 daddr,
- const unsigned short hnum,
- const int dif);
-
-static inline struct sock *inet_lookup_listener(struct net *net,
- struct inet_hashinfo *hashinfo,
- __be32 daddr, __be16 dport, int dif)
-{
- return __inet_lookup_listener(net, hashinfo, daddr, ntohs(dport), dif);
-}
-
-/* Socket demux engine toys. */
-/* What happens here is ugly; there's a pair of adjacent fields in
- struct inet_sock; __be16 dport followed by __u16 num. We want to
- search by pair, so we combine the keys into a single 32bit value
- and compare with 32bit value read from &...->dport. Let's at least
- make sure that it's not mixed with anything else...
- On 64bit targets we combine comparisons with pair of adjacent __be32
- fields in the same way.
-*/
-typedef __u32 __bitwise __portpair;
-#ifdef __BIG_ENDIAN
-#define INET_COMBINED_PORTS(__sport, __dport) \
- ((__force __portpair)(((__force __u32)(__be16)(__sport) << 16) | (__u32)(__dport)))
-#else /* __LITTLE_ENDIAN */
-#define INET_COMBINED_PORTS(__sport, __dport) \
- ((__force __portpair)(((__u32)(__dport) << 16) | (__force __u32)(__be16)(__sport)))
-#endif
-
-#if (BITS_PER_LONG == 64)
-typedef __u64 __bitwise __addrpair;
-#ifdef __BIG_ENDIAN
-#define INET_ADDR_COOKIE(__name, __saddr, __daddr) \
- const __addrpair __name = (__force __addrpair) ( \
- (((__force __u64)(__be32)(__saddr)) << 32) | \
- ((__force __u64)(__be32)(__daddr)));
-#else /* __LITTLE_ENDIAN */
-#define INET_ADDR_COOKIE(__name, __saddr, __daddr) \
- const __addrpair __name = (__force __addrpair) ( \
- (((__force __u64)(__be32)(__daddr)) << 32) | \
- ((__force __u64)(__be32)(__saddr)));
-#endif /* __BIG_ENDIAN */
-#define INET_MATCH(__sk, __net, __hash, __cookie, __saddr, __daddr, __ports, __dif)\
- (((__sk)->sk_hash == (__hash)) && net_eq(sock_net(__sk), (__net)) && \
- ((*((__addrpair *)&(inet_sk(__sk)->inet_daddr))) == (__cookie)) && \
- ((*((__portpair *)&(inet_sk(__sk)->inet_dport))) == (__ports)) && \
- (!((__sk)->sk_bound_dev_if) || ((__sk)->sk_bound_dev_if == (__dif))))
-#define INET_TW_MATCH(__sk, __net, __hash, __cookie, __saddr, __daddr, __ports, __dif)\
- (((__sk)->sk_hash == (__hash)) && net_eq(sock_net(__sk), (__net)) && \
- ((*((__addrpair *)&(inet_twsk(__sk)->tw_daddr))) == (__cookie)) && \
- ((*((__portpair *)&(inet_twsk(__sk)->tw_dport))) == (__ports)) && \
- (!((__sk)->sk_bound_dev_if) || ((__sk)->sk_bound_dev_if == (__dif))))
-#else /* 32-bit arch */
-#define INET_ADDR_COOKIE(__name, __saddr, __daddr)
-#define INET_MATCH(__sk, __net, __hash, __cookie, __saddr, __daddr, __ports, __dif) \
- (((__sk)->sk_hash == (__hash)) && net_eq(sock_net(__sk), (__net)) && \
- (inet_sk(__sk)->inet_daddr == (__saddr)) && \
- (inet_sk(__sk)->inet_rcv_saddr == (__daddr)) && \
- ((*((__portpair *)&(inet_sk(__sk)->inet_dport))) == (__ports)) && \
- (!((__sk)->sk_bound_dev_if) || ((__sk)->sk_bound_dev_if == (__dif))))
-#define INET_TW_MATCH(__sk, __net, __hash,__cookie, __saddr, __daddr, __ports, __dif) \
- (((__sk)->sk_hash == (__hash)) && net_eq(sock_net(__sk), (__net)) && \
- (inet_twsk(__sk)->tw_daddr == (__saddr)) && \
- (inet_twsk(__sk)->tw_rcv_saddr == (__daddr)) && \
- ((*((__portpair *)&(inet_twsk(__sk)->tw_dport))) == (__ports)) && \
- (!((__sk)->sk_bound_dev_if) || ((__sk)->sk_bound_dev_if == (__dif))))
-#endif /* 64-bit arch */
-
-/*
- * Sockets in TCP_CLOSE state are _always_ taken out of the hash, so we need
- * not check it for lookups anymore, thanks Alexey. -DaveM
- *
- * Local BH must be disabled here.
- */
-extern struct sock * __inet_lookup_established(struct net *net,
- struct inet_hashinfo *hashinfo,
- const __be32 saddr, const __be16 sport,
- const __be32 daddr, const u16 hnum, const int dif);
-
-static inline struct sock *
- inet_lookup_established(struct net *net, struct inet_hashinfo *hashinfo,
- const __be32 saddr, const __be16 sport,
- const __be32 daddr, const __be16 dport,
- const int dif)
-{
- return __inet_lookup_established(net, hashinfo, saddr, sport, daddr,
- ntohs(dport), dif);
-}
-
-static inline struct sock *__inet_lookup(struct net *net,
- struct inet_hashinfo *hashinfo,
- const __be32 saddr, const __be16 sport,
- const __be32 daddr, const __be16 dport,
- const int dif)
-{
- u16 hnum = ntohs(dport);
- struct sock *sk = __inet_lookup_established(net, hashinfo,
- saddr, sport, daddr, hnum, dif);
-
- return sk ? : __inet_lookup_listener(net, hashinfo, daddr, hnum, dif);
-}
-
-static inline struct sock *inet_lookup(struct net *net,
- struct inet_hashinfo *hashinfo,
- const __be32 saddr, const __be16 sport,
- const __be32 daddr, const __be16 dport,
- const int dif)
-{
- struct sock *sk;
-
- local_bh_disable();
- sk = __inet_lookup(net, hashinfo, saddr, sport, daddr, dport, dif);
- local_bh_enable();
-
- return sk;
-}
-
-static inline struct sock *__inet_lookup_skb(struct inet_hashinfo *hashinfo,
- struct sk_buff *skb,
- const __be16 sport,
- const __be16 dport)
-{
- struct sock *sk;
- const struct iphdr *iph = ip_hdr(skb);
-
- if (unlikely(sk = skb_steal_sock(skb)))
- return sk;
- else
- return __inet_lookup(dev_net(skb_dst(skb)->dev), hashinfo,
- iph->saddr, sport,
- iph->daddr, dport, inet_iif(skb));
-}
-
-extern int __inet_hash_connect(struct inet_timewait_death_row *death_row,
- struct sock *sk,
- u32 port_offset,
- int (*check_established)(struct inet_timewait_death_row *,
- struct sock *, __u16, struct inet_timewait_sock **),
- int (*hash)(struct sock *sk, struct inet_timewait_sock *twp));
-
-extern int inet_hash_connect(struct inet_timewait_death_row *death_row,
- struct sock *sk);
-#endif /* _INET_HASHTABLES_H */
diff --git a/ANDROID_3.4.5/include/net/inet_sock.h b/ANDROID_3.4.5/include/net/inet_sock.h
deleted file mode 100644
index ae17e135..00000000
--- a/ANDROID_3.4.5/include/net/inet_sock.h
+++ /dev/null
@@ -1,253 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Definitions for inet_sock
- *
- * Authors: Many, reorganised here by
- * Arnaldo Carvalho de Melo <acme@mandriva.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 _INET_SOCK_H
-#define _INET_SOCK_H
-
-
-#include <linux/kmemcheck.h>
-#include <linux/string.h>
-#include <linux/types.h>
-#include <linux/jhash.h>
-#include <linux/netdevice.h>
-
-#include <net/flow.h>
-#include <net/sock.h>
-#include <net/request_sock.h>
-#include <net/netns/hash.h>
-
-/** struct ip_options - IP Options
- *
- * @faddr - Saved first hop address
- * @nexthop - Saved nexthop address in LSRR and SSRR
- * @is_data - Options in __data, rather than skb
- * @is_strictroute - Strict source route
- * @srr_is_hit - Packet destination addr was our one
- * @is_changed - IP checksum more not valid
- * @rr_needaddr - Need to record addr of outgoing dev
- * @ts_needtime - Need to record timestamp
- * @ts_needaddr - Need to record addr of outgoing dev
- */
-struct ip_options {
- __be32 faddr;
- __be32 nexthop;
- unsigned char optlen;
- unsigned char srr;
- unsigned char rr;
- unsigned char ts;
- unsigned char is_strictroute:1,
- srr_is_hit:1,
- is_changed:1,
- rr_needaddr:1,
- ts_needtime:1,
- ts_needaddr:1;
- unsigned char router_alert;
- unsigned char cipso;
- unsigned char __pad2;
- unsigned char __data[0];
-};
-
-struct ip_options_rcu {
- struct rcu_head rcu;
- struct ip_options opt;
-};
-
-struct ip_options_data {
- struct ip_options_rcu opt;
- char data[40];
-};
-
-struct inet_request_sock {
- struct request_sock req;
-#if IS_ENABLED(CONFIG_IPV6)
- u16 inet6_rsk_offset;
-#endif
- __be16 loc_port;
- __be32 loc_addr;
- __be32 rmt_addr;
- __be16 rmt_port;
- kmemcheck_bitfield_begin(flags);
- u16 snd_wscale : 4,
- rcv_wscale : 4,
- tstamp_ok : 1,
- sack_ok : 1,
- wscale_ok : 1,
- ecn_ok : 1,
- acked : 1,
- no_srccheck: 1;
- kmemcheck_bitfield_end(flags);
- struct ip_options_rcu *opt;
-};
-
-static inline struct inet_request_sock *inet_rsk(const struct request_sock *sk)
-{
- return (struct inet_request_sock *)sk;
-}
-
-struct inet_cork {
- unsigned int flags;
- __be32 addr;
- struct ip_options *opt;
- unsigned int fragsize;
- struct dst_entry *dst;
- int length; /* Total length of all frames */
- struct page *page;
- u32 off;
- u8 tx_flags;
-};
-
-struct inet_cork_full {
- struct inet_cork base;
- struct flowi fl;
-};
-
-struct ip_mc_socklist;
-struct ipv6_pinfo;
-struct rtable;
-
-/** struct inet_sock - representation of INET sockets
- *
- * @sk - ancestor class
- * @pinet6 - pointer to IPv6 control block
- * @inet_daddr - Foreign IPv4 addr
- * @inet_rcv_saddr - Bound local IPv4 addr
- * @inet_dport - Destination port
- * @inet_num - Local port
- * @inet_saddr - Sending source
- * @uc_ttl - Unicast TTL
- * @inet_sport - Source port
- * @inet_id - ID counter for DF pkts
- * @tos - TOS
- * @mc_ttl - Multicasting TTL
- * @is_icsk - is this an inet_connection_sock?
- * @uc_index - Unicast outgoing device index
- * @mc_index - Multicast device index
- * @mc_list - Group array
- * @cork - info to build ip hdr on each ip frag while socket is corked
- */
-struct inet_sock {
- /* sk and pinet6 has to be the first two members of inet_sock */
- struct sock sk;
-#if IS_ENABLED(CONFIG_IPV6)
- struct ipv6_pinfo *pinet6;
-#endif
- /* Socket demultiplex comparisons on incoming packets. */
-#define inet_daddr sk.__sk_common.skc_daddr
-#define inet_rcv_saddr sk.__sk_common.skc_rcv_saddr
-
- __be16 inet_dport;
- __u16 inet_num;
- __be32 inet_saddr;
- __s16 uc_ttl;
- __u16 cmsg_flags;
- __be16 inet_sport;
- __u16 inet_id;
-
- struct ip_options_rcu __rcu *inet_opt;
- __u8 tos;
- __u8 min_ttl;
- __u8 mc_ttl;
- __u8 pmtudisc;
- __u8 recverr:1,
- is_icsk:1,
- freebind:1,
- hdrincl:1,
- mc_loop:1,
- transparent:1,
- mc_all:1,
- nodefrag:1;
- __u8 rcv_tos;
- int uc_index;
- int mc_index;
- __be32 mc_addr;
- struct ip_mc_socklist __rcu *mc_list;
- struct inet_cork_full cork;
-};
-
-#define IPCORK_OPT 1 /* ip-options has been held in ipcork.opt */
-#define IPCORK_ALLFRAG 2 /* always fragment (for ipv6 for now) */
-
-static inline struct inet_sock *inet_sk(const struct sock *sk)
-{
- return (struct inet_sock *)sk;
-}
-
-static inline void __inet_sk_copy_descendant(struct sock *sk_to,
- const struct sock *sk_from,
- const int ancestor_size)
-{
- memcpy(inet_sk(sk_to) + 1, inet_sk(sk_from) + 1,
- sk_from->sk_prot->obj_size - ancestor_size);
-}
-#if !(IS_ENABLED(CONFIG_IPV6))
-static inline void inet_sk_copy_descendant(struct sock *sk_to,
- const struct sock *sk_from)
-{
- __inet_sk_copy_descendant(sk_to, sk_from, sizeof(struct inet_sock));
-}
-#endif
-
-extern int inet_sk_rebuild_header(struct sock *sk);
-
-extern u32 inet_ehash_secret;
-extern void build_ehash_secret(void);
-
-static inline unsigned int inet_ehashfn(struct net *net,
- const __be32 laddr, const __u16 lport,
- const __be32 faddr, const __be16 fport)
-{
- return jhash_3words((__force __u32) laddr,
- (__force __u32) faddr,
- ((__u32) lport) << 16 | (__force __u32)fport,
- inet_ehash_secret + net_hash_mix(net));
-}
-
-static inline int inet_sk_ehashfn(const struct sock *sk)
-{
- const struct inet_sock *inet = inet_sk(sk);
- const __be32 laddr = inet->inet_rcv_saddr;
- const __u16 lport = inet->inet_num;
- const __be32 faddr = inet->inet_daddr;
- const __be16 fport = inet->inet_dport;
- struct net *net = sock_net(sk);
-
- return inet_ehashfn(net, laddr, lport, faddr, fport);
-}
-
-static inline struct request_sock *inet_reqsk_alloc(struct request_sock_ops *ops)
-{
- struct request_sock *req = reqsk_alloc(ops);
- struct inet_request_sock *ireq = inet_rsk(req);
-
- if (req != NULL) {
- kmemcheck_annotate_bitfield(ireq, flags);
- ireq->opt = NULL;
- }
-
- return req;
-}
-
-static inline __u8 inet_sk_flowi_flags(const struct sock *sk)
-{
- __u8 flags = 0;
-
- if (inet_sk(sk)->transparent || inet_sk(sk)->hdrincl)
- flags |= FLOWI_FLAG_ANYSRC;
- if (sk->sk_protocol == IPPROTO_TCP)
- flags |= FLOWI_FLAG_PRECOW_METRICS;
- return flags;
-}
-
-#endif /* _INET_SOCK_H */
diff --git a/ANDROID_3.4.5/include/net/inet_timewait_sock.h b/ANDROID_3.4.5/include/net/inet_timewait_sock.h
deleted file mode 100644
index ba52c830..00000000
--- a/ANDROID_3.4.5/include/net/inet_timewait_sock.h
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Definitions for a generic INET TIMEWAIT sock
- *
- * From code originally in net/tcp.h
- *
- * 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 _INET_TIMEWAIT_SOCK_
-#define _INET_TIMEWAIT_SOCK_
-
-
-#include <linux/kmemcheck.h>
-#include <linux/list.h>
-#include <linux/timer.h>
-#include <linux/types.h>
-#include <linux/workqueue.h>
-
-#include <net/inet_sock.h>
-#include <net/sock.h>
-#include <net/tcp_states.h>
-#include <net/timewait_sock.h>
-
-#include <linux/atomic.h>
-
-struct inet_hashinfo;
-
-#define INET_TWDR_RECYCLE_SLOTS_LOG 5
-#define INET_TWDR_RECYCLE_SLOTS (1 << INET_TWDR_RECYCLE_SLOTS_LOG)
-
-/*
- * If time > 4sec, it is "slow" path, no recycling is required,
- * so that we select tick to get range about 4 seconds.
- */
-#if HZ <= 16 || HZ > 4096
-# error Unsupported: HZ <= 16 or HZ > 4096
-#elif HZ <= 32
-# define INET_TWDR_RECYCLE_TICK (5 + 2 - INET_TWDR_RECYCLE_SLOTS_LOG)
-#elif HZ <= 64
-# define INET_TWDR_RECYCLE_TICK (6 + 2 - INET_TWDR_RECYCLE_SLOTS_LOG)
-#elif HZ <= 128
-# define INET_TWDR_RECYCLE_TICK (7 + 2 - INET_TWDR_RECYCLE_SLOTS_LOG)
-#elif HZ <= 256
-# define INET_TWDR_RECYCLE_TICK (8 + 2 - INET_TWDR_RECYCLE_SLOTS_LOG)
-#elif HZ <= 512
-# define INET_TWDR_RECYCLE_TICK (9 + 2 - INET_TWDR_RECYCLE_SLOTS_LOG)
-#elif HZ <= 1024
-# define INET_TWDR_RECYCLE_TICK (10 + 2 - INET_TWDR_RECYCLE_SLOTS_LOG)
-#elif HZ <= 2048
-# define INET_TWDR_RECYCLE_TICK (11 + 2 - INET_TWDR_RECYCLE_SLOTS_LOG)
-#else
-# define INET_TWDR_RECYCLE_TICK (12 + 2 - INET_TWDR_RECYCLE_SLOTS_LOG)
-#endif
-
-/* TIME_WAIT reaping mechanism. */
-#define INET_TWDR_TWKILL_SLOTS 8 /* Please keep this a power of 2. */
-
-#define INET_TWDR_TWKILL_QUOTA 100
-
-struct inet_timewait_death_row {
- /* Short-time timewait calendar */
- int twcal_hand;
- unsigned long twcal_jiffie;
- struct timer_list twcal_timer;
- struct hlist_head twcal_row[INET_TWDR_RECYCLE_SLOTS];
-
- spinlock_t death_lock;
- int tw_count;
- int period;
- u32 thread_slots;
- struct work_struct twkill_work;
- struct timer_list tw_timer;
- int slot;
- struct hlist_head cells[INET_TWDR_TWKILL_SLOTS];
- struct inet_hashinfo *hashinfo;
- int sysctl_tw_recycle;
- int sysctl_max_tw_buckets;
-};
-
-extern void inet_twdr_hangman(unsigned long data);
-extern void inet_twdr_twkill_work(struct work_struct *work);
-extern void inet_twdr_twcal_tick(unsigned long data);
-
-struct inet_bind_bucket;
-
-/*
- * This is a TIME_WAIT sock. It works around the memory consumption
- * problems of sockets in such a state on heavily loaded servers, but
- * without violating the protocol specification.
- */
-struct inet_timewait_sock {
- /*
- * Now struct sock also uses sock_common, so please just
- * don't add nothing before this first member (__tw_common) --acme
- */
- struct sock_common __tw_common;
-#define tw_family __tw_common.skc_family
-#define tw_state __tw_common.skc_state
-#define tw_reuse __tw_common.skc_reuse
-#define tw_bound_dev_if __tw_common.skc_bound_dev_if
-#define tw_node __tw_common.skc_nulls_node
-#define tw_bind_node __tw_common.skc_bind_node
-#define tw_refcnt __tw_common.skc_refcnt
-#define tw_hash __tw_common.skc_hash
-#define tw_prot __tw_common.skc_prot
-#define tw_net __tw_common.skc_net
-#define tw_daddr __tw_common.skc_daddr
-#define tw_rcv_saddr __tw_common.skc_rcv_saddr
- int tw_timeout;
- volatile unsigned char tw_substate;
- unsigned char tw_rcv_wscale;
-
- /* Socket demultiplex comparisons on incoming packets. */
- /* these three are in inet_sock */
- __be16 tw_sport;
- __be16 tw_dport;
- __u16 tw_num;
- kmemcheck_bitfield_begin(flags);
- /* And these are ours. */
- unsigned int tw_ipv6only : 1,
- tw_transparent : 1,
- tw_pad : 6, /* 6 bits hole */
- tw_tos : 8,
- tw_ipv6_offset : 16;
- kmemcheck_bitfield_end(flags);
- unsigned long tw_ttd;
- struct inet_bind_bucket *tw_tb;
- struct hlist_node tw_death_node;
-};
-#define tw_tclass tw_tos
-
-static inline void inet_twsk_add_node_rcu(struct inet_timewait_sock *tw,
- struct hlist_nulls_head *list)
-{
- hlist_nulls_add_head_rcu(&tw->tw_node, list);
-}
-
-static inline void inet_twsk_add_bind_node(struct inet_timewait_sock *tw,
- struct hlist_head *list)
-{
- hlist_add_head(&tw->tw_bind_node, list);
-}
-
-static inline int inet_twsk_dead_hashed(const struct inet_timewait_sock *tw)
-{
- return !hlist_unhashed(&tw->tw_death_node);
-}
-
-static inline void inet_twsk_dead_node_init(struct inet_timewait_sock *tw)
-{
- tw->tw_death_node.pprev = NULL;
-}
-
-static inline void __inet_twsk_del_dead_node(struct inet_timewait_sock *tw)
-{
- __hlist_del(&tw->tw_death_node);
- inet_twsk_dead_node_init(tw);
-}
-
-static inline int inet_twsk_del_dead_node(struct inet_timewait_sock *tw)
-{
- if (inet_twsk_dead_hashed(tw)) {
- __inet_twsk_del_dead_node(tw);
- return 1;
- }
- return 0;
-}
-
-#define inet_twsk_for_each(tw, node, head) \
- hlist_nulls_for_each_entry(tw, node, head, tw_node)
-
-#define inet_twsk_for_each_inmate(tw, node, jail) \
- hlist_for_each_entry(tw, node, jail, tw_death_node)
-
-#define inet_twsk_for_each_inmate_safe(tw, node, safe, jail) \
- hlist_for_each_entry_safe(tw, node, safe, jail, tw_death_node)
-
-static inline struct inet_timewait_sock *inet_twsk(const struct sock *sk)
-{
- return (struct inet_timewait_sock *)sk;
-}
-
-static inline __be32 sk_rcv_saddr(const struct sock *sk)
-{
-/* both inet_sk() and inet_twsk() store rcv_saddr in skc_rcv_saddr */
- return sk->__sk_common.skc_rcv_saddr;
-}
-
-extern void inet_twsk_put(struct inet_timewait_sock *tw);
-
-extern int inet_twsk_unhash(struct inet_timewait_sock *tw);
-
-extern int inet_twsk_bind_unhash(struct inet_timewait_sock *tw,
- struct inet_hashinfo *hashinfo);
-
-extern struct inet_timewait_sock *inet_twsk_alloc(const struct sock *sk,
- const int state);
-
-extern void __inet_twsk_hashdance(struct inet_timewait_sock *tw,
- struct sock *sk,
- struct inet_hashinfo *hashinfo);
-
-extern void inet_twsk_schedule(struct inet_timewait_sock *tw,
- struct inet_timewait_death_row *twdr,
- const int timeo, const int timewait_len);
-extern void inet_twsk_deschedule(struct inet_timewait_sock *tw,
- struct inet_timewait_death_row *twdr);
-
-extern void inet_twsk_purge(struct inet_hashinfo *hashinfo,
- struct inet_timewait_death_row *twdr, int family);
-
-static inline
-struct net *twsk_net(const struct inet_timewait_sock *twsk)
-{
- return read_pnet(&twsk->tw_net);
-}
-
-static inline
-void twsk_net_set(struct inet_timewait_sock *twsk, struct net *net)
-{
- write_pnet(&twsk->tw_net, net);
-}
-#endif /* _INET_TIMEWAIT_SOCK_ */
diff --git a/ANDROID_3.4.5/include/net/inetpeer.h b/ANDROID_3.4.5/include/net/inetpeer.h
deleted file mode 100644
index 2040bff9..00000000
--- a/ANDROID_3.4.5/include/net/inetpeer.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * INETPEER - A storage for permanent information about peers
- *
- * Authors: Andrey V. Savochkin <saw@msu.ru>
- */
-
-#ifndef _NET_INETPEER_H
-#define _NET_INETPEER_H
-
-#include <linux/types.h>
-#include <linux/init.h>
-#include <linux/jiffies.h>
-#include <linux/spinlock.h>
-#include <linux/rtnetlink.h>
-#include <net/ipv6.h>
-#include <linux/atomic.h>
-
-struct inetpeer_addr_base {
- union {
- __be32 a4;
- __be32 a6[4];
- };
-};
-
-struct inetpeer_addr {
- struct inetpeer_addr_base addr;
- __u16 family;
-};
-
-struct inet_peer {
- /* group together avl_left,avl_right,v4daddr to speedup lookups */
- struct inet_peer __rcu *avl_left, *avl_right;
- struct inetpeer_addr daddr;
- __u32 avl_height;
-
- u32 metrics[RTAX_MAX];
- u32 rate_tokens; /* rate limiting for ICMP */
- unsigned long rate_last;
- unsigned long pmtu_expires;
- u32 pmtu_orig;
- u32 pmtu_learned;
- struct inetpeer_addr_base redirect_learned;
- union {
- struct list_head gc_list;
- struct rcu_head gc_rcu;
- };
- /*
- * Once inet_peer is queued for deletion (refcnt == -1), following fields
- * are not available: rid, ip_id_count, tcp_ts, tcp_ts_stamp
- * We can share memory with rcu_head to help keep inet_peer small.
- */
- union {
- struct {
- atomic_t rid; /* Frag reception counter */
- atomic_t ip_id_count; /* IP ID for the next packet */
- __u32 tcp_ts;
- __u32 tcp_ts_stamp;
- };
- struct rcu_head rcu;
- struct inet_peer *gc_next;
- };
-
- /* following fields might be frequently dirtied */
- __u32 dtime; /* the time of last use of not referenced entries */
- atomic_t refcnt;
-};
-
-void inet_initpeers(void) __init;
-
-#define INETPEER_METRICS_NEW (~(u32) 0)
-
-static inline bool inet_metrics_new(const struct inet_peer *p)
-{
- return p->metrics[RTAX_LOCK-1] == INETPEER_METRICS_NEW;
-}
-
-/* can be called with or without local BH being disabled */
-struct inet_peer *inet_getpeer(const struct inetpeer_addr *daddr, int create);
-
-static inline struct inet_peer *inet_getpeer_v4(__be32 v4daddr, int create)
-{
- struct inetpeer_addr daddr;
-
- daddr.addr.a4 = v4daddr;
- daddr.family = AF_INET;
- return inet_getpeer(&daddr, create);
-}
-
-static inline struct inet_peer *inet_getpeer_v6(const struct in6_addr *v6daddr, int create)
-{
- struct inetpeer_addr daddr;
-
- *(struct in6_addr *)daddr.addr.a6 = *v6daddr;
- daddr.family = AF_INET6;
- return inet_getpeer(&daddr, create);
-}
-
-/* can be called from BH context or outside */
-extern void inet_putpeer(struct inet_peer *p);
-extern bool inet_peer_xrlim_allow(struct inet_peer *peer, int timeout);
-
-extern void inetpeer_invalidate_tree(int family);
-
-/*
- * temporary check to make sure we dont access rid, ip_id_count, tcp_ts,
- * tcp_ts_stamp if no refcount is taken on inet_peer
- */
-static inline void inet_peer_refcheck(const struct inet_peer *p)
-{
- WARN_ON_ONCE(atomic_read(&p->refcnt) <= 0);
-}
-
-
-/* can be called with or without local BH being disabled */
-static inline int inet_getid(struct inet_peer *p, int more)
-{
- int old, new;
- more++;
- inet_peer_refcheck(p);
- do {
- old = atomic_read(&p->ip_id_count);
- new = old + more;
- if (!new)
- new = 1;
- } while (atomic_cmpxchg(&p->ip_id_count, old, new) != old);
- return new;
-}
-
-#endif /* _NET_INETPEER_H */
diff --git a/ANDROID_3.4.5/include/net/ip.h b/ANDROID_3.4.5/include/net/ip.h
deleted file mode 100644
index b53d65f2..00000000
--- a/ANDROID_3.4.5/include/net/ip.h
+++ /dev/null
@@ -1,475 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Definitions for the IP module.
- *
- * Version: @(#)ip.h 1.0.2 05/07/93
- *
- * Authors: Ross Biro
- * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
- * Alan Cox, <gw4pts@gw4pts.ampr.org>
- *
- * Changes:
- * Mike McLagan : Routing by source
- *
- * 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 _IP_H
-#define _IP_H
-
-#include <linux/types.h>
-#include <linux/ip.h>
-#include <linux/in.h>
-#include <linux/skbuff.h>
-
-#include <net/inet_sock.h>
-#include <net/snmp.h>
-#include <net/flow.h>
-
-struct sock;
-
-struct inet_skb_parm {
- struct ip_options opt; /* Compiled IP options */
- unsigned char flags;
-
-#define IPSKB_FORWARDED 1
-#define IPSKB_XFRM_TUNNEL_SIZE 2
-#define IPSKB_XFRM_TRANSFORMED 4
-#define IPSKB_FRAG_COMPLETE 8
-#define IPSKB_REROUTED 16
-};
-
-static inline unsigned int ip_hdrlen(const struct sk_buff *skb)
-{
- return ip_hdr(skb)->ihl * 4;
-}
-
-struct ipcm_cookie {
- __be32 addr;
- int oif;
- struct ip_options_rcu *opt;
- __u8 tx_flags;
-};
-
-#define IPCB(skb) ((struct inet_skb_parm*)((skb)->cb))
-
-struct ip_ra_chain {
- struct ip_ra_chain __rcu *next;
- struct sock *sk;
- union {
- void (*destructor)(struct sock *);
- struct sock *saved_sk;
- };
- struct rcu_head rcu;
-};
-
-extern struct ip_ra_chain __rcu *ip_ra_chain;
-
-/* IP flags. */
-#define IP_CE 0x8000 /* Flag: "Congestion" */
-#define IP_DF 0x4000 /* Flag: "Don't Fragment" */
-#define IP_MF 0x2000 /* Flag: "More Fragments" */
-#define IP_OFFSET 0x1FFF /* "Fragment Offset" part */
-
-#define IP_FRAG_TIME (30 * HZ) /* fragment lifetime */
-
-struct msghdr;
-struct net_device;
-struct packet_type;
-struct rtable;
-struct sockaddr;
-
-extern int igmp_mc_proc_init(void);
-
-/*
- * Functions provided by ip.c
- */
-
-extern int ip_build_and_send_pkt(struct sk_buff *skb, struct sock *sk,
- __be32 saddr, __be32 daddr,
- struct ip_options_rcu *opt);
-extern int ip_rcv(struct sk_buff *skb, struct net_device *dev,
- struct packet_type *pt, struct net_device *orig_dev);
-extern int ip_local_deliver(struct sk_buff *skb);
-extern int ip_mr_input(struct sk_buff *skb);
-extern int ip_output(struct sk_buff *skb);
-extern int ip_mc_output(struct sk_buff *skb);
-extern int ip_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *));
-extern int ip_do_nat(struct sk_buff *skb);
-extern void ip_send_check(struct iphdr *ip);
-extern int __ip_local_out(struct sk_buff *skb);
-extern int ip_local_out(struct sk_buff *skb);
-extern int ip_queue_xmit(struct sk_buff *skb, struct flowi *fl);
-extern void ip_init(void);
-extern int ip_append_data(struct sock *sk, struct flowi4 *fl4,
- int getfrag(void *from, char *to, int offset, int len,
- int odd, struct sk_buff *skb),
- void *from, int len, int protolen,
- struct ipcm_cookie *ipc,
- struct rtable **rt,
- unsigned int flags);
-extern int ip_generic_getfrag(void *from, char *to, int offset, int len, int odd, struct sk_buff *skb);
-extern ssize_t ip_append_page(struct sock *sk, struct flowi4 *fl4, struct page *page,
- int offset, size_t size, int flags);
-extern struct sk_buff *__ip_make_skb(struct sock *sk,
- struct flowi4 *fl4,
- struct sk_buff_head *queue,
- struct inet_cork *cork);
-extern int ip_send_skb(struct sk_buff *skb);
-extern int ip_push_pending_frames(struct sock *sk, struct flowi4 *fl4);
-extern void ip_flush_pending_frames(struct sock *sk);
-extern struct sk_buff *ip_make_skb(struct sock *sk,
- struct flowi4 *fl4,
- int getfrag(void *from, char *to, int offset, int len,
- int odd, struct sk_buff *skb),
- void *from, int length, int transhdrlen,
- struct ipcm_cookie *ipc,
- struct rtable **rtp,
- unsigned int flags);
-
-static inline struct sk_buff *ip_finish_skb(struct sock *sk, struct flowi4 *fl4)
-{
- return __ip_make_skb(sk, fl4, &sk->sk_write_queue, &inet_sk(sk)->cork.base);
-}
-
-/* datagram.c */
-extern int ip4_datagram_connect(struct sock *sk,
- struct sockaddr *uaddr, int addr_len);
-
-/*
- * Map a multicast IP onto multicast MAC for type Token Ring.
- * This conforms to RFC1469 Option 2 Multicasting i.e.
- * using a functional address to transmit / receive
- * multicast packets.
- */
-
-static inline void ip_tr_mc_map(__be32 addr, char *buf)
-{
- buf[0]=0xC0;
- buf[1]=0x00;
- buf[2]=0x00;
- buf[3]=0x04;
- buf[4]=0x00;
- buf[5]=0x00;
-}
-
-struct ip_reply_arg {
- struct kvec iov[1];
- int flags;
- __wsum csum;
- int csumoffset; /* u16 offset of csum in iov[0].iov_base */
- /* -1 if not needed */
- int bound_dev_if;
- u8 tos;
-};
-
-#define IP_REPLY_ARG_NOSRCCHECK 1
-
-static inline __u8 ip_reply_arg_flowi_flags(const struct ip_reply_arg *arg)
-{
- return (arg->flags & IP_REPLY_ARG_NOSRCCHECK) ? FLOWI_FLAG_ANYSRC : 0;
-}
-
-void ip_send_reply(struct sock *sk, struct sk_buff *skb, __be32 daddr,
- const struct ip_reply_arg *arg, unsigned int len);
-
-struct ipv4_config {
- int log_martians;
- int no_pmtu_disc;
-};
-
-extern struct ipv4_config ipv4_config;
-#define IP_INC_STATS(net, field) SNMP_INC_STATS64((net)->mib.ip_statistics, field)
-#define IP_INC_STATS_BH(net, field) SNMP_INC_STATS64_BH((net)->mib.ip_statistics, field)
-#define IP_ADD_STATS(net, field, val) SNMP_ADD_STATS64((net)->mib.ip_statistics, field, val)
-#define IP_ADD_STATS_BH(net, field, val) SNMP_ADD_STATS64_BH((net)->mib.ip_statistics, field, val)
-#define IP_UPD_PO_STATS(net, field, val) SNMP_UPD_PO_STATS64((net)->mib.ip_statistics, field, val)
-#define IP_UPD_PO_STATS_BH(net, field, val) SNMP_UPD_PO_STATS64_BH((net)->mib.ip_statistics, field, val)
-#define NET_INC_STATS(net, field) SNMP_INC_STATS((net)->mib.net_statistics, field)
-#define NET_INC_STATS_BH(net, field) SNMP_INC_STATS_BH((net)->mib.net_statistics, field)
-#define NET_INC_STATS_USER(net, field) SNMP_INC_STATS_USER((net)->mib.net_statistics, field)
-#define NET_ADD_STATS_BH(net, field, adnd) SNMP_ADD_STATS_BH((net)->mib.net_statistics, field, adnd)
-#define NET_ADD_STATS_USER(net, field, adnd) SNMP_ADD_STATS_USER((net)->mib.net_statistics, field, adnd)
-
-extern unsigned long snmp_fold_field(void __percpu *mib[], int offt);
-#if BITS_PER_LONG==32
-extern u64 snmp_fold_field64(void __percpu *mib[], int offt, size_t sync_off);
-#else
-static inline u64 snmp_fold_field64(void __percpu *mib[], int offt, size_t syncp_off)
-{
- return snmp_fold_field(mib, offt);
-}
-#endif
-extern int snmp_mib_init(void __percpu *ptr[2], size_t mibsize, size_t align);
-extern void snmp_mib_free(void __percpu *ptr[2]);
-
-extern struct local_ports {
- seqlock_t lock;
- int range[2];
-} sysctl_local_ports;
-extern void inet_get_local_port_range(int *low, int *high);
-
-extern unsigned long *sysctl_local_reserved_ports;
-static inline int inet_is_reserved_local_port(int port)
-{
- return test_bit(port, sysctl_local_reserved_ports);
-}
-
-extern int sysctl_ip_nonlocal_bind;
-
-extern struct ctl_path net_core_path[];
-extern struct ctl_path net_ipv4_ctl_path[];
-
-/* From inetpeer.c */
-extern int inet_peer_threshold;
-extern int inet_peer_minttl;
-extern int inet_peer_maxttl;
-
-/* From ip_output.c */
-extern int sysctl_ip_dynaddr;
-
-extern void ipfrag_init(void);
-
-extern void ip_static_sysctl_init(void);
-
-static inline bool ip_is_fragment(const struct iphdr *iph)
-{
- return (iph->frag_off & htons(IP_MF | IP_OFFSET)) != 0;
-}
-
-#ifdef CONFIG_INET
-#include <net/dst.h>
-
-/* The function in 2.2 was invalid, producing wrong result for
- * check=0xFEFF. It was noticed by Arthur Skawina _year_ ago. --ANK(000625) */
-static inline
-int ip_decrease_ttl(struct iphdr *iph)
-{
- u32 check = (__force u32)iph->check;
- check += (__force u32)htons(0x0100);
- iph->check = (__force __sum16)(check + (check>=0xFFFF));
- return --iph->ttl;
-}
-
-static inline
-int ip_dont_fragment(struct sock *sk, struct dst_entry *dst)
-{
- return inet_sk(sk)->pmtudisc == IP_PMTUDISC_DO ||
- (inet_sk(sk)->pmtudisc == IP_PMTUDISC_WANT &&
- !(dst_metric_locked(dst, RTAX_MTU)));
-}
-
-extern void __ip_select_ident(struct iphdr *iph, struct dst_entry *dst, int more);
-
-static inline void ip_select_ident(struct iphdr *iph, struct dst_entry *dst, struct sock *sk)
-{
- if (iph->frag_off & htons(IP_DF)) {
- /* This is only to work around buggy Windows95/2000
- * VJ compression implementations. If the ID field
- * does not change, they drop every other packet in
- * a TCP stream using header compression.
- */
- iph->id = (sk && inet_sk(sk)->inet_daddr) ?
- htons(inet_sk(sk)->inet_id++) : 0;
- } else
- __ip_select_ident(iph, dst, 0);
-}
-
-static inline void ip_select_ident_more(struct iphdr *iph, struct dst_entry *dst, struct sock *sk, int more)
-{
- if (iph->frag_off & htons(IP_DF)) {
- if (sk && inet_sk(sk)->inet_daddr) {
- iph->id = htons(inet_sk(sk)->inet_id);
- inet_sk(sk)->inet_id += 1 + more;
- } else
- iph->id = 0;
- } else
- __ip_select_ident(iph, dst, more);
-}
-
-/*
- * Map a multicast IP onto multicast MAC for type ethernet.
- */
-
-static inline void ip_eth_mc_map(__be32 naddr, char *buf)
-{
- __u32 addr=ntohl(naddr);
- buf[0]=0x01;
- buf[1]=0x00;
- buf[2]=0x5e;
- buf[5]=addr&0xFF;
- addr>>=8;
- buf[4]=addr&0xFF;
- addr>>=8;
- buf[3]=addr&0x7F;
-}
-
-/*
- * Map a multicast IP onto multicast MAC for type IP-over-InfiniBand.
- * Leave P_Key as 0 to be filled in by driver.
- */
-
-static inline void ip_ib_mc_map(__be32 naddr, const unsigned char *broadcast, char *buf)
-{
- __u32 addr;
- unsigned char scope = broadcast[5] & 0xF;
-
- buf[0] = 0; /* Reserved */
- buf[1] = 0xff; /* Multicast QPN */
- buf[2] = 0xff;
- buf[3] = 0xff;
- addr = ntohl(naddr);
- buf[4] = 0xff;
- buf[5] = 0x10 | scope; /* scope from broadcast address */
- buf[6] = 0x40; /* IPv4 signature */
- buf[7] = 0x1b;
- buf[8] = broadcast[8]; /* P_Key */
- buf[9] = broadcast[9];
- buf[10] = 0;
- buf[11] = 0;
- buf[12] = 0;
- buf[13] = 0;
- buf[14] = 0;
- buf[15] = 0;
- buf[19] = addr & 0xff;
- addr >>= 8;
- buf[18] = addr & 0xff;
- addr >>= 8;
- buf[17] = addr & 0xff;
- addr >>= 8;
- buf[16] = addr & 0x0f;
-}
-
-static inline void ip_ipgre_mc_map(__be32 naddr, const unsigned char *broadcast, char *buf)
-{
- if ((broadcast[0] | broadcast[1] | broadcast[2] | broadcast[3]) != 0)
- memcpy(buf, broadcast, 4);
- else
- memcpy(buf, &naddr, sizeof(naddr));
-}
-
-#if IS_ENABLED(CONFIG_IPV6)
-#include <linux/ipv6.h>
-#endif
-
-static __inline__ void inet_reset_saddr(struct sock *sk)
-{
- inet_sk(sk)->inet_rcv_saddr = inet_sk(sk)->inet_saddr = 0;
-#if IS_ENABLED(CONFIG_IPV6)
- if (sk->sk_family == PF_INET6) {
- struct ipv6_pinfo *np = inet6_sk(sk);
-
- memset(&np->saddr, 0, sizeof(np->saddr));
- memset(&np->rcv_saddr, 0, sizeof(np->rcv_saddr));
- }
-#endif
-}
-
-#endif
-
-static inline int sk_mc_loop(struct sock *sk)
-{
- if (!sk)
- return 1;
- switch (sk->sk_family) {
- case AF_INET:
- return inet_sk(sk)->mc_loop;
-#if IS_ENABLED(CONFIG_IPV6)
- case AF_INET6:
- return inet6_sk(sk)->mc_loop;
-#endif
- }
- WARN_ON(1);
- return 1;
-}
-
-extern bool ip_call_ra_chain(struct sk_buff *skb);
-
-/*
- * Functions provided by ip_fragment.c
- */
-
-enum ip_defrag_users {
- IP_DEFRAG_LOCAL_DELIVER,
- IP_DEFRAG_CALL_RA_CHAIN,
- IP_DEFRAG_CONNTRACK_IN,
- __IP_DEFRAG_CONNTRACK_IN_END = IP_DEFRAG_CONNTRACK_IN + USHRT_MAX,
- IP_DEFRAG_CONNTRACK_OUT,
- __IP_DEFRAG_CONNTRACK_OUT_END = IP_DEFRAG_CONNTRACK_OUT + USHRT_MAX,
- IP_DEFRAG_CONNTRACK_BRIDGE_IN,
- __IP_DEFRAG_CONNTRACK_BRIDGE_IN = IP_DEFRAG_CONNTRACK_BRIDGE_IN + USHRT_MAX,
- IP_DEFRAG_VS_IN,
- IP_DEFRAG_VS_OUT,
- IP_DEFRAG_VS_FWD,
- IP_DEFRAG_AF_PACKET,
- IP_DEFRAG_MACVLAN,
-};
-
-int ip_defrag(struct sk_buff *skb, u32 user);
-#ifdef CONFIG_INET
-struct sk_buff *ip_check_defrag(struct sk_buff *skb, u32 user);
-#else
-static inline struct sk_buff *ip_check_defrag(struct sk_buff *skb, u32 user)
-{
- return skb;
-}
-#endif
-int ip_frag_mem(struct net *net);
-int ip_frag_nqueues(struct net *net);
-
-/*
- * Functions provided by ip_forward.c
- */
-
-extern int ip_forward(struct sk_buff *skb);
-
-/*
- * Functions provided by ip_options.c
- */
-
-extern void ip_options_build(struct sk_buff *skb, struct ip_options *opt,
- __be32 daddr, struct rtable *rt, int is_frag);
-extern int ip_options_echo(struct ip_options *dopt, struct sk_buff *skb);
-extern void ip_options_fragment(struct sk_buff *skb);
-extern int ip_options_compile(struct net *net,
- struct ip_options *opt, struct sk_buff *skb);
-extern int ip_options_get(struct net *net, struct ip_options_rcu **optp,
- unsigned char *data, int optlen);
-extern int ip_options_get_from_user(struct net *net, struct ip_options_rcu **optp,
- unsigned char __user *data, int optlen);
-extern void ip_options_undo(struct ip_options * opt);
-extern void ip_forward_options(struct sk_buff *skb);
-extern int ip_options_rcv_srr(struct sk_buff *skb);
-
-/*
- * Functions provided by ip_sockglue.c
- */
-
-extern void ipv4_pktinfo_prepare(struct sk_buff *skb);
-extern void ip_cmsg_recv(struct msghdr *msg, struct sk_buff *skb);
-extern int ip_cmsg_send(struct net *net,
- struct msghdr *msg, struct ipcm_cookie *ipc);
-extern int ip_setsockopt(struct sock *sk, int level, int optname, char __user *optval, unsigned int optlen);
-extern int ip_getsockopt(struct sock *sk, int level, int optname, char __user *optval, int __user *optlen);
-extern int compat_ip_setsockopt(struct sock *sk, int level,
- int optname, char __user *optval, unsigned int optlen);
-extern int compat_ip_getsockopt(struct sock *sk, int level,
- int optname, char __user *optval, int __user *optlen);
-extern int ip_ra_control(struct sock *sk, unsigned char on, void (*destructor)(struct sock *));
-
-extern int ip_recv_error(struct sock *sk, struct msghdr *msg, int len);
-extern void ip_icmp_error(struct sock *sk, struct sk_buff *skb, int err,
- __be16 port, u32 info, u8 *payload);
-extern void ip_local_error(struct sock *sk, int err, __be32 daddr, __be16 dport,
- u32 info);
-
-#ifdef CONFIG_PROC_FS
-extern int ip_misc_proc_init(void);
-#endif
-
-#endif /* _IP_H */
diff --git a/ANDROID_3.4.5/include/net/ip6_checksum.h b/ANDROID_3.4.5/include/net/ip6_checksum.h
deleted file mode 100644
index bc1b0fda..00000000
--- a/ANDROID_3.4.5/include/net/ip6_checksum.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Checksumming functions for IPv6
- *
- * Authors: Jorge Cwik, <jorge@laser.satlink.net>
- * Arnt Gulbrandsen, <agulbra@nvg.unit.no>
- * Borrows very liberally from tcp.c and ip.c, see those
- * files for more names.
- *
- * 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.
- */
-
-/*
- * Fixes:
- *
- * Ralf Baechle : generic ipv6 checksum
- * <ralf@waldorf-gmbh.de>
- */
-
-#ifndef _CHECKSUM_IPV6_H
-#define _CHECKSUM_IPV6_H
-
-#include <asm/types.h>
-#include <asm/byteorder.h>
-#include <net/ip.h>
-#include <asm/checksum.h>
-#include <linux/in6.h>
-
-#ifndef _HAVE_ARCH_IPV6_CSUM
-
-static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr,
- const struct in6_addr *daddr,
- __u32 len, unsigned short proto,
- __wsum csum)
-{
-
- int carry;
- __u32 ulen;
- __u32 uproto;
- __u32 sum = (__force u32)csum;
-
- sum += (__force u32)saddr->s6_addr32[0];
- carry = (sum < (__force u32)saddr->s6_addr32[0]);
- sum += carry;
-
- sum += (__force u32)saddr->s6_addr32[1];
- carry = (sum < (__force u32)saddr->s6_addr32[1]);
- sum += carry;
-
- sum += (__force u32)saddr->s6_addr32[2];
- carry = (sum < (__force u32)saddr->s6_addr32[2]);
- sum += carry;
-
- sum += (__force u32)saddr->s6_addr32[3];
- carry = (sum < (__force u32)saddr->s6_addr32[3]);
- sum += carry;
-
- sum += (__force u32)daddr->s6_addr32[0];
- carry = (sum < (__force u32)daddr->s6_addr32[0]);
- sum += carry;
-
- sum += (__force u32)daddr->s6_addr32[1];
- carry = (sum < (__force u32)daddr->s6_addr32[1]);
- sum += carry;
-
- sum += (__force u32)daddr->s6_addr32[2];
- carry = (sum < (__force u32)daddr->s6_addr32[2]);
- sum += carry;
-
- sum += (__force u32)daddr->s6_addr32[3];
- carry = (sum < (__force u32)daddr->s6_addr32[3]);
- sum += carry;
-
- ulen = (__force u32)htonl((__u32) len);
- sum += ulen;
- carry = (sum < ulen);
- sum += carry;
-
- uproto = (__force u32)htonl(proto);
- sum += uproto;
- carry = (sum < uproto);
- sum += carry;
-
- return csum_fold((__force __wsum)sum);
-}
-
-#endif
-#endif
diff --git a/ANDROID_3.4.5/include/net/ip6_fib.h b/ANDROID_3.4.5/include/net/ip6_fib.h
deleted file mode 100644
index 0ae759a6..00000000
--- a/ANDROID_3.4.5/include/net/ip6_fib.h
+++ /dev/null
@@ -1,288 +0,0 @@
-/*
- * Linux INET6 implementation
- *
- * Authors:
- * Pedro Roque <roque@di.fc.ul.pt>
- *
- * 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 _IP6_FIB_H
-#define _IP6_FIB_H
-
-#include <linux/ipv6_route.h>
-#include <linux/rtnetlink.h>
-#include <linux/spinlock.h>
-#include <net/dst.h>
-#include <net/flow.h>
-#include <net/netlink.h>
-#include <net/inetpeer.h>
-
-#ifdef CONFIG_IPV6_MULTIPLE_TABLES
-#define FIB6_TABLE_HASHSZ 256
-#else
-#define FIB6_TABLE_HASHSZ 1
-#endif
-
-struct rt6_info;
-
-struct fib6_config {
- u32 fc_table;
- u32 fc_metric;
- int fc_dst_len;
- int fc_src_len;
- int fc_ifindex;
- u32 fc_flags;
- u32 fc_protocol;
-
- struct in6_addr fc_dst;
- struct in6_addr fc_src;
- struct in6_addr fc_prefsrc;
- struct in6_addr fc_gateway;
-
- unsigned long fc_expires;
- struct nlattr *fc_mx;
- int fc_mx_len;
-
- struct nl_info fc_nlinfo;
-};
-
-struct fib6_node {
- struct fib6_node *parent;
- struct fib6_node *left;
- struct fib6_node *right;
-#ifdef CONFIG_IPV6_SUBTREES
- struct fib6_node *subtree;
-#endif
- struct rt6_info *leaf;
-
- __u16 fn_bit; /* bit key */
- __u16 fn_flags;
- __u32 fn_sernum;
- struct rt6_info *rr_ptr;
-};
-
-#ifndef CONFIG_IPV6_SUBTREES
-#define FIB6_SUBTREE(fn) NULL
-#else
-#define FIB6_SUBTREE(fn) ((fn)->subtree)
-#endif
-
-/*
- * routing information
- *
- */
-
-struct rt6key {
- struct in6_addr addr;
- int plen;
-};
-
-struct fib6_table;
-
-struct rt6_info {
- struct dst_entry dst;
-
- /*
- * Tail elements of dst_entry (__refcnt etc.)
- * and these elements (rarely used in hot path) are in
- * the same cache line.
- */
- struct fib6_table *rt6i_table;
- struct fib6_node *rt6i_node;
-
- struct in6_addr rt6i_gateway;
-
- atomic_t rt6i_ref;
-
- /* These are in a separate cache line. */
- struct rt6key rt6i_dst ____cacheline_aligned_in_smp;
- u32 rt6i_flags;
- struct rt6key rt6i_src;
- struct rt6key rt6i_prefsrc;
- u32 rt6i_metric;
- u32 rt6i_peer_genid;
-
- struct inet6_dev *rt6i_idev;
- struct inet_peer *rt6i_peer;
-
-#ifdef CONFIG_XFRM
- u32 rt6i_flow_cache_genid;
-#endif
- /* more non-fragment space at head required */
- unsigned short rt6i_nfheader_len;
-
- u8 rt6i_protocol;
-};
-
-static inline struct inet6_dev *ip6_dst_idev(struct dst_entry *dst)
-{
- return ((struct rt6_info *)dst)->rt6i_idev;
-}
-
-static inline void rt6_clean_expires(struct rt6_info *rt)
-{
- if (!(rt->rt6i_flags & RTF_EXPIRES) && rt->dst.from)
- dst_release(rt->dst.from);
-
- rt->rt6i_flags &= ~RTF_EXPIRES;
- rt->dst.from = NULL;
-}
-
-static inline void rt6_set_expires(struct rt6_info *rt, unsigned long expires)
-{
- if (!(rt->rt6i_flags & RTF_EXPIRES) && rt->dst.from)
- dst_release(rt->dst.from);
-
- rt->rt6i_flags |= RTF_EXPIRES;
- rt->dst.expires = expires;
-}
-
-static inline void rt6_update_expires(struct rt6_info *rt, int timeout)
-{
- if (!(rt->rt6i_flags & RTF_EXPIRES)) {
- if (rt->dst.from)
- dst_release(rt->dst.from);
- /* dst_set_expires relies on expires == 0
- * if it has not been set previously.
- */
- rt->dst.expires = 0;
- }
-
- dst_set_expires(&rt->dst, timeout);
- rt->rt6i_flags |= RTF_EXPIRES;
-}
-
-static inline void rt6_set_from(struct rt6_info *rt, struct rt6_info *from)
-{
- struct dst_entry *new = (struct dst_entry *) from;
-
- if (!(rt->rt6i_flags & RTF_EXPIRES) && rt->dst.from) {
- if (new == rt->dst.from)
- return;
- dst_release(rt->dst.from);
- }
-
- rt->rt6i_flags &= ~RTF_EXPIRES;
- rt->dst.from = new;
- dst_hold(new);
-}
-
-struct fib6_walker_t {
- struct list_head lh;
- struct fib6_node *root, *node;
- struct rt6_info *leaf;
- unsigned char state;
- unsigned char prune;
- unsigned int skip;
- unsigned int count;
- int (*func)(struct fib6_walker_t *);
- void *args;
-};
-
-struct rt6_statistics {
- __u32 fib_nodes;
- __u32 fib_route_nodes;
- __u32 fib_rt_alloc; /* permanent routes */
- __u32 fib_rt_entries; /* rt entries in table */
- __u32 fib_rt_cache; /* cache routes */
- __u32 fib_discarded_routes;
-};
-
-#define RTN_TL_ROOT 0x0001
-#define RTN_ROOT 0x0002 /* tree root node */
-#define RTN_RTINFO 0x0004 /* node with valid routing info */
-
-/*
- * priority levels (or metrics)
- *
- */
-
-
-struct fib6_table {
- struct hlist_node tb6_hlist;
- u32 tb6_id;
- rwlock_t tb6_lock;
- struct fib6_node tb6_root;
-};
-
-#define RT6_TABLE_UNSPEC RT_TABLE_UNSPEC
-#define RT6_TABLE_MAIN RT_TABLE_MAIN
-#define RT6_TABLE_DFLT RT6_TABLE_MAIN
-#define RT6_TABLE_INFO RT6_TABLE_MAIN
-#define RT6_TABLE_PREFIX RT6_TABLE_MAIN
-
-#ifdef CONFIG_IPV6_MULTIPLE_TABLES
-#define FIB6_TABLE_MIN 1
-#define FIB6_TABLE_MAX RT_TABLE_MAX
-#define RT6_TABLE_LOCAL RT_TABLE_LOCAL
-#else
-#define FIB6_TABLE_MIN RT_TABLE_MAIN
-#define FIB6_TABLE_MAX FIB6_TABLE_MIN
-#define RT6_TABLE_LOCAL RT6_TABLE_MAIN
-#endif
-
-typedef struct rt6_info *(*pol_lookup_t)(struct net *,
- struct fib6_table *,
- struct flowi6 *, int);
-
-/*
- * exported functions
- */
-
-extern struct fib6_table *fib6_get_table(struct net *net, u32 id);
-extern struct fib6_table *fib6_new_table(struct net *net, u32 id);
-extern struct dst_entry *fib6_rule_lookup(struct net *net,
- struct flowi6 *fl6, int flags,
- pol_lookup_t lookup);
-
-extern struct fib6_node *fib6_lookup(struct fib6_node *root,
- const struct in6_addr *daddr,
- const struct in6_addr *saddr);
-
-struct fib6_node *fib6_locate(struct fib6_node *root,
- const struct in6_addr *daddr, int dst_len,
- const struct in6_addr *saddr, int src_len);
-
-extern void fib6_clean_all_ro(struct net *net,
- int (*func)(struct rt6_info *, void *arg),
- int prune, void *arg);
-
-extern void fib6_clean_all(struct net *net,
- int (*func)(struct rt6_info *, void *arg),
- int prune, void *arg);
-
-extern int fib6_add(struct fib6_node *root,
- struct rt6_info *rt,
- struct nl_info *info);
-
-extern int fib6_del(struct rt6_info *rt,
- struct nl_info *info);
-
-extern void inet6_rt_notify(int event, struct rt6_info *rt,
- struct nl_info *info);
-
-extern void fib6_run_gc(unsigned long expires,
- struct net *net);
-
-extern void fib6_gc_cleanup(void);
-
-extern int fib6_init(void);
-
-#ifdef CONFIG_IPV6_MULTIPLE_TABLES
-extern int fib6_rules_init(void);
-extern void fib6_rules_cleanup(void);
-#else
-static inline int fib6_rules_init(void)
-{
- return 0;
-}
-static inline void fib6_rules_cleanup(void)
-{
- return ;
-}
-#endif
-#endif
diff --git a/ANDROID_3.4.5/include/net/ip6_route.h b/ANDROID_3.4.5/include/net/ip6_route.h
deleted file mode 100644
index 2ad92ca4..00000000
--- a/ANDROID_3.4.5/include/net/ip6_route.h
+++ /dev/null
@@ -1,195 +0,0 @@
-#ifndef _NET_IP6_ROUTE_H
-#define _NET_IP6_ROUTE_H
-
-#define IP6_RT_PRIO_USER 1024
-#define IP6_RT_PRIO_ADDRCONF 256
-
-struct route_info {
- __u8 type;
- __u8 length;
- __u8 prefix_len;
-#if defined(__BIG_ENDIAN_BITFIELD)
- __u8 reserved_h:3,
- route_pref:2,
- reserved_l:3;
-#elif defined(__LITTLE_ENDIAN_BITFIELD)
- __u8 reserved_l:3,
- route_pref:2,
- reserved_h:3;
-#endif
- __be32 lifetime;
- __u8 prefix[0]; /* 0,8 or 16 */
-};
-
-#include <net/flow.h>
-#include <net/ip6_fib.h>
-#include <net/sock.h>
-#include <linux/ip.h>
-#include <linux/ipv6.h>
-
-#define RT6_LOOKUP_F_IFACE 0x00000001
-#define RT6_LOOKUP_F_REACHABLE 0x00000002
-#define RT6_LOOKUP_F_HAS_SADDR 0x00000004
-#define RT6_LOOKUP_F_SRCPREF_TMP 0x00000008
-#define RT6_LOOKUP_F_SRCPREF_PUBLIC 0x00000010
-#define RT6_LOOKUP_F_SRCPREF_COA 0x00000020
-
-/*
- * rt6_srcprefs2flags() and rt6_flags2srcprefs() translate
- * between IPV6_ADDR_PREFERENCES socket option values
- * IPV6_PREFER_SRC_TMP = 0x1
- * IPV6_PREFER_SRC_PUBLIC = 0x2
- * IPV6_PREFER_SRC_COA = 0x4
- * and above RT6_LOOKUP_F_SRCPREF_xxx flags.
- */
-static inline int rt6_srcprefs2flags(unsigned int srcprefs)
-{
- /* No need to bitmask because srcprefs have only 3 bits. */
- return srcprefs << 3;
-}
-
-static inline unsigned int rt6_flags2srcprefs(int flags)
-{
- return (flags >> 3) & 7;
-}
-
-extern void rt6_bind_peer(struct rt6_info *rt,
- int create);
-
-static inline struct inet_peer *rt6_get_peer(struct rt6_info *rt)
-{
- if (rt->rt6i_peer)
- return rt->rt6i_peer;
-
- rt6_bind_peer(rt, 0);
- return rt->rt6i_peer;
-}
-
-extern void ip6_route_input(struct sk_buff *skb);
-
-extern struct dst_entry * ip6_route_output(struct net *net,
- const struct sock *sk,
- struct flowi6 *fl6);
-extern struct dst_entry * ip6_route_lookup(struct net *net,
- struct flowi6 *fl6, int flags);
-
-extern int ip6_route_init(void);
-extern void ip6_route_cleanup(void);
-
-extern int ipv6_route_ioctl(struct net *net,
- unsigned int cmd,
- void __user *arg);
-
-extern int ip6_route_add(struct fib6_config *cfg);
-extern int ip6_ins_rt(struct rt6_info *);
-extern int ip6_del_rt(struct rt6_info *);
-
-extern int ip6_route_get_saddr(struct net *net,
- struct rt6_info *rt,
- const struct in6_addr *daddr,
- unsigned int prefs,
- struct in6_addr *saddr);
-
-extern struct rt6_info *rt6_lookup(struct net *net,
- const struct in6_addr *daddr,
- const struct in6_addr *saddr,
- int oif, int flags);
-
-extern struct dst_entry *icmp6_dst_alloc(struct net_device *dev,
- struct neighbour *neigh,
- struct flowi6 *fl6);
-extern int icmp6_dst_gc(void);
-
-extern void fib6_force_start_gc(struct net *net);
-
-extern struct rt6_info *addrconf_dst_alloc(struct inet6_dev *idev,
- const struct in6_addr *addr,
- bool anycast);
-
-extern int ip6_dst_hoplimit(struct dst_entry *dst);
-
-/*
- * support functions for ND
- *
- */
-extern struct rt6_info * rt6_get_dflt_router(const struct in6_addr *addr,
- struct net_device *dev);
-extern struct rt6_info * rt6_add_dflt_router(const struct in6_addr *gwaddr,
- struct net_device *dev,
- unsigned int pref);
-
-extern void rt6_purge_dflt_routers(struct net *net);
-
-extern int rt6_route_rcv(struct net_device *dev,
- u8 *opt, int len,
- const struct in6_addr *gwaddr);
-
-extern void rt6_redirect(const struct in6_addr *dest,
- const struct in6_addr *src,
- const struct in6_addr *saddr,
- struct neighbour *neigh,
- u8 *lladdr,
- int on_link);
-
-extern void rt6_pmtu_discovery(const struct in6_addr *daddr,
- const struct in6_addr *saddr,
- struct net_device *dev,
- u32 pmtu);
-
-struct netlink_callback;
-
-struct rt6_rtnl_dump_arg {
- struct sk_buff *skb;
- struct netlink_callback *cb;
- struct net *net;
-};
-
-extern int rt6_dump_route(struct rt6_info *rt, void *p_arg);
-extern void rt6_ifdown(struct net *net, struct net_device *dev);
-extern void rt6_mtu_change(struct net_device *dev, unsigned mtu);
-extern void rt6_remove_prefsrc(struct inet6_ifaddr *ifp);
-
-
-/*
- * Store a destination cache entry in a socket
- */
-static inline void __ip6_dst_store(struct sock *sk, struct dst_entry *dst,
- struct in6_addr *daddr, struct in6_addr *saddr)
-{
- struct ipv6_pinfo *np = inet6_sk(sk);
- struct rt6_info *rt = (struct rt6_info *) dst;
-
- sk_setup_caps(sk, dst);
- np->daddr_cache = daddr;
-#ifdef CONFIG_IPV6_SUBTREES
- np->saddr_cache = saddr;
-#endif
- np->dst_cookie = rt->rt6i_node ? rt->rt6i_node->fn_sernum : 0;
-}
-
-static inline void ip6_dst_store(struct sock *sk, struct dst_entry *dst,
- struct in6_addr *daddr, struct in6_addr *saddr)
-{
- spin_lock(&sk->sk_dst_lock);
- __ip6_dst_store(sk, dst, daddr, saddr);
- spin_unlock(&sk->sk_dst_lock);
-}
-
-static inline int ipv6_unicast_destination(struct sk_buff *skb)
-{
- struct rt6_info *rt = (struct rt6_info *) skb_dst(skb);
-
- return rt->rt6i_flags & RTF_LOCAL;
-}
-
-int ip6_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *));
-
-static inline int ip6_skb_dst_mtu(struct sk_buff *skb)
-{
- struct ipv6_pinfo *np = skb->sk ? inet6_sk(skb->sk) : NULL;
-
- return (np && np->pmtudisc == IPV6_PMTUDISC_PROBE) ?
- skb_dst(skb)->dev->mtu : dst_mtu(skb_dst(skb));
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/ip6_tunnel.h b/ANDROID_3.4.5/include/net/ip6_tunnel.h
deleted file mode 100644
index fc73e667..00000000
--- a/ANDROID_3.4.5/include/net/ip6_tunnel.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef _NET_IP6_TUNNEL_H
-#define _NET_IP6_TUNNEL_H
-
-#include <linux/ipv6.h>
-#include <linux/netdevice.h>
-#include <linux/ip6_tunnel.h>
-
-/* capable of sending packets */
-#define IP6_TNL_F_CAP_XMIT 0x10000
-/* capable of receiving packets */
-#define IP6_TNL_F_CAP_RCV 0x20000
-
-/* IPv6 tunnel */
-
-struct ip6_tnl {
- struct ip6_tnl __rcu *next; /* next tunnel in list */
- struct net_device *dev; /* virtual device associated with tunnel */
- struct ip6_tnl_parm parms; /* tunnel configuration parameters */
- struct flowi fl; /* flowi template for xmit */
- struct dst_entry *dst_cache; /* cached dst */
- u32 dst_cookie;
-};
-
-/* Tunnel encapsulation limit destination sub-option */
-
-struct ipv6_tlv_tnl_enc_lim {
- __u8 type; /* type-code for option */
- __u8 length; /* option length */
- __u8 encap_limit; /* tunnel encapsulation limit */
-} __packed;
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/ip_fib.h b/ANDROID_3.4.5/include/net/ip_fib.h
deleted file mode 100644
index 10422ef1..00000000
--- a/ANDROID_3.4.5/include/net/ip_fib.h
+++ /dev/null
@@ -1,285 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Definitions for the Forwarding Information Base.
- *
- * Authors: A.N.Kuznetsov, <kuznet@ms2.inr.ac.ru>
- *
- * 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 _NET_IP_FIB_H
-#define _NET_IP_FIB_H
-
-#include <net/flow.h>
-#include <linux/seq_file.h>
-#include <net/fib_rules.h>
-
-struct fib_config {
- u8 fc_dst_len;
- u8 fc_tos;
- u8 fc_protocol;
- u8 fc_scope;
- u8 fc_type;
- /* 3 bytes unused */
- u32 fc_table;
- __be32 fc_dst;
- __be32 fc_gw;
- int fc_oif;
- u32 fc_flags;
- u32 fc_priority;
- __be32 fc_prefsrc;
- struct nlattr *fc_mx;
- struct rtnexthop *fc_mp;
- int fc_mx_len;
- int fc_mp_len;
- u32 fc_flow;
- u32 fc_nlflags;
- struct nl_info fc_nlinfo;
- };
-
-struct fib_info;
-
-struct fib_nh {
- struct net_device *nh_dev;
- struct hlist_node nh_hash;
- struct fib_info *nh_parent;
- unsigned nh_flags;
- unsigned char nh_scope;
-#ifdef CONFIG_IP_ROUTE_MULTIPATH
- int nh_weight;
- int nh_power;
-#endif
-#ifdef CONFIG_IP_ROUTE_CLASSID
- __u32 nh_tclassid;
-#endif
- int nh_oif;
- __be32 nh_gw;
- __be32 nh_saddr;
- int nh_saddr_genid;
-};
-
-/*
- * This structure contains data shared by many of routes.
- */
-
-struct fib_info {
- struct hlist_node fib_hash;
- struct hlist_node fib_lhash;
- struct net *fib_net;
- int fib_treeref;
- atomic_t fib_clntref;
- unsigned fib_flags;
- unsigned char fib_dead;
- unsigned char fib_protocol;
- unsigned char fib_scope;
- __be32 fib_prefsrc;
- u32 fib_priority;
- u32 *fib_metrics;
-#define fib_mtu fib_metrics[RTAX_MTU-1]
-#define fib_window fib_metrics[RTAX_WINDOW-1]
-#define fib_rtt fib_metrics[RTAX_RTT-1]
-#define fib_advmss fib_metrics[RTAX_ADVMSS-1]
- int fib_nhs;
-#ifdef CONFIG_IP_ROUTE_MULTIPATH
- int fib_power;
-#endif
- struct rcu_head rcu;
- struct fib_nh fib_nh[0];
-#define fib_dev fib_nh[0].nh_dev
-};
-
-
-#ifdef CONFIG_IP_MULTIPLE_TABLES
-struct fib_rule;
-#endif
-
-struct fib_table;
-struct fib_result {
- unsigned char prefixlen;
- unsigned char nh_sel;
- unsigned char type;
- unsigned char scope;
- struct fib_info *fi;
- struct fib_table *table;
- struct list_head *fa_head;
-#ifdef CONFIG_IP_MULTIPLE_TABLES
- struct fib_rule *r;
-#endif
-};
-
-struct fib_result_nl {
- __be32 fl_addr; /* To be looked up*/
- u32 fl_mark;
- unsigned char fl_tos;
- unsigned char fl_scope;
- unsigned char tb_id_in;
-
- unsigned char tb_id; /* Results */
- unsigned char prefixlen;
- unsigned char nh_sel;
- unsigned char type;
- unsigned char scope;
- int err;
-};
-
-#ifdef CONFIG_IP_ROUTE_MULTIPATH
-
-#define FIB_RES_NH(res) ((res).fi->fib_nh[(res).nh_sel])
-
-#define FIB_TABLE_HASHSZ 2
-
-#else /* CONFIG_IP_ROUTE_MULTIPATH */
-
-#define FIB_RES_NH(res) ((res).fi->fib_nh[0])
-
-#define FIB_TABLE_HASHSZ 256
-
-#endif /* CONFIG_IP_ROUTE_MULTIPATH */
-
-extern __be32 fib_info_update_nh_saddr(struct net *net, struct fib_nh *nh);
-
-#define FIB_RES_SADDR(net, res) \
- ((FIB_RES_NH(res).nh_saddr_genid == \
- atomic_read(&(net)->ipv4.dev_addr_genid)) ? \
- FIB_RES_NH(res).nh_saddr : \
- fib_info_update_nh_saddr((net), &FIB_RES_NH(res)))
-#define FIB_RES_GW(res) (FIB_RES_NH(res).nh_gw)
-#define FIB_RES_DEV(res) (FIB_RES_NH(res).nh_dev)
-#define FIB_RES_OIF(res) (FIB_RES_NH(res).nh_oif)
-
-#define FIB_RES_PREFSRC(net, res) ((res).fi->fib_prefsrc ? : \
- FIB_RES_SADDR(net, res))
-
-struct fib_table {
- struct hlist_node tb_hlist;
- u32 tb_id;
- int tb_default;
- int tb_num_default;
- unsigned long tb_data[0];
-};
-
-extern int fib_table_lookup(struct fib_table *tb, const struct flowi4 *flp,
- struct fib_result *res, int fib_flags);
-extern int fib_table_insert(struct fib_table *, struct fib_config *);
-extern int fib_table_delete(struct fib_table *, struct fib_config *);
-extern int fib_table_dump(struct fib_table *table, struct sk_buff *skb,
- struct netlink_callback *cb);
-extern int fib_table_flush(struct fib_table *table);
-extern void fib_free_table(struct fib_table *tb);
-
-
-
-#ifndef CONFIG_IP_MULTIPLE_TABLES
-
-#define TABLE_LOCAL_INDEX 0
-#define TABLE_MAIN_INDEX 1
-
-static inline struct fib_table *fib_get_table(struct net *net, u32 id)
-{
- struct hlist_head *ptr;
-
- ptr = id == RT_TABLE_LOCAL ?
- &net->ipv4.fib_table_hash[TABLE_LOCAL_INDEX] :
- &net->ipv4.fib_table_hash[TABLE_MAIN_INDEX];
- return hlist_entry(ptr->first, struct fib_table, tb_hlist);
-}
-
-static inline struct fib_table *fib_new_table(struct net *net, u32 id)
-{
- return fib_get_table(net, id);
-}
-
-static inline int fib_lookup(struct net *net, const struct flowi4 *flp,
- struct fib_result *res)
-{
- struct fib_table *table;
-
- table = fib_get_table(net, RT_TABLE_LOCAL);
- if (!fib_table_lookup(table, flp, res, FIB_LOOKUP_NOREF))
- return 0;
-
- table = fib_get_table(net, RT_TABLE_MAIN);
- if (!fib_table_lookup(table, flp, res, FIB_LOOKUP_NOREF))
- return 0;
- return -ENETUNREACH;
-}
-
-#else /* CONFIG_IP_MULTIPLE_TABLES */
-extern int __net_init fib4_rules_init(struct net *net);
-extern void __net_exit fib4_rules_exit(struct net *net);
-
-#ifdef CONFIG_IP_ROUTE_CLASSID
-extern u32 fib_rules_tclass(const struct fib_result *res);
-#endif
-
-extern int fib_lookup(struct net *n, struct flowi4 *flp, struct fib_result *res);
-
-extern struct fib_table *fib_new_table(struct net *net, u32 id);
-extern struct fib_table *fib_get_table(struct net *net, u32 id);
-
-#endif /* CONFIG_IP_MULTIPLE_TABLES */
-
-/* Exported by fib_frontend.c */
-extern const struct nla_policy rtm_ipv4_policy[];
-extern void ip_fib_init(void);
-extern int fib_validate_source(struct sk_buff *skb, __be32 src, __be32 dst,
- u8 tos, int oif, struct net_device *dev,
- __be32 *spec_dst, u32 *itag);
-extern void fib_select_default(struct fib_result *res);
-
-/* Exported by fib_semantics.c */
-extern int ip_fib_check_default(__be32 gw, struct net_device *dev);
-extern int fib_sync_down_dev(struct net_device *dev, int force);
-extern int fib_sync_down_addr(struct net *net, __be32 local);
-extern void fib_update_nh_saddrs(struct net_device *dev);
-extern int fib_sync_up(struct net_device *dev);
-extern void fib_select_multipath(struct fib_result *res);
-
-/* Exported by fib_trie.c */
-extern void fib_trie_init(void);
-extern struct fib_table *fib_trie_table(u32 id);
-
-static inline void fib_combine_itag(u32 *itag, const struct fib_result *res)
-{
-#ifdef CONFIG_IP_ROUTE_CLASSID
-#ifdef CONFIG_IP_MULTIPLE_TABLES
- u32 rtag;
-#endif
- *itag = FIB_RES_NH(*res).nh_tclassid<<16;
-#ifdef CONFIG_IP_MULTIPLE_TABLES
- rtag = fib_rules_tclass(res);
- if (*itag == 0)
- *itag = (rtag<<16);
- *itag |= (rtag>>16);
-#endif
-#endif
-}
-
-extern void free_fib_info(struct fib_info *fi);
-
-static inline void fib_info_put(struct fib_info *fi)
-{
- if (atomic_dec_and_test(&fi->fib_clntref))
- free_fib_info(fi);
-}
-
-#ifdef CONFIG_PROC_FS
-extern int __net_init fib_proc_init(struct net *net);
-extern void __net_exit fib_proc_exit(struct net *net);
-#else
-static inline int fib_proc_init(struct net *net)
-{
- return 0;
-}
-static inline void fib_proc_exit(struct net *net)
-{
-}
-#endif
-
-#endif /* _NET_FIB_H */
diff --git a/ANDROID_3.4.5/include/net/ip_vs.h b/ANDROID_3.4.5/include/net/ip_vs.h
deleted file mode 100644
index 72522f08..00000000
--- a/ANDROID_3.4.5/include/net/ip_vs.h
+++ /dev/null
@@ -1,1426 +0,0 @@
-/*
- * IP Virtual Server
- * data structure and functionality definitions
- */
-
-#ifndef _NET_IP_VS_H
-#define _NET_IP_VS_H
-
-#include <linux/ip_vs.h> /* definitions shared with userland */
-
-#include <asm/types.h> /* for __uXX types */
-
-#include <linux/sysctl.h> /* for ctl_path */
-#include <linux/list.h> /* for struct list_head */
-#include <linux/spinlock.h> /* for struct rwlock_t */
-#include <linux/atomic.h> /* for struct atomic_t */
-#include <linux/compiler.h>
-#include <linux/timer.h>
-#include <linux/bug.h>
-
-#include <net/checksum.h>
-#include <linux/netfilter.h> /* for union nf_inet_addr */
-#include <linux/ip.h>
-#include <linux/ipv6.h> /* for struct ipv6hdr */
-#include <net/ipv6.h>
-#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
-#include <net/netfilter/nf_conntrack.h>
-#endif
-#include <net/net_namespace.h> /* Netw namespace */
-
-/*
- * Generic access of ipvs struct
- */
-static inline struct netns_ipvs *net_ipvs(struct net* net)
-{
- return net->ipvs;
-}
-/*
- * Get net ptr from skb in traffic cases
- * use skb_sknet when call is from userland (ioctl or netlink)
- */
-static inline struct net *skb_net(const struct sk_buff *skb)
-{
-#ifdef CONFIG_NET_NS
-#ifdef CONFIG_IP_VS_DEBUG
- /*
- * This is used for debug only.
- * Start with the most likely hit
- * End with BUG
- */
- if (likely(skb->dev && skb->dev->nd_net))
- return dev_net(skb->dev);
- if (skb_dst(skb) && skb_dst(skb)->dev)
- return dev_net(skb_dst(skb)->dev);
- WARN(skb->sk, "Maybe skb_sknet should be used in %s() at line:%d\n",
- __func__, __LINE__);
- if (likely(skb->sk && skb->sk->sk_net))
- return sock_net(skb->sk);
- pr_err("There is no net ptr to find in the skb in %s() line:%d\n",
- __func__, __LINE__);
- BUG();
-#else
- return dev_net(skb->dev ? : skb_dst(skb)->dev);
-#endif
-#else
- return &init_net;
-#endif
-}
-
-static inline struct net *skb_sknet(const struct sk_buff *skb)
-{
-#ifdef CONFIG_NET_NS
-#ifdef CONFIG_IP_VS_DEBUG
- /* Start with the most likely hit */
- if (likely(skb->sk && skb->sk->sk_net))
- return sock_net(skb->sk);
- WARN(skb->dev, "Maybe skb_net should be used instead in %s() line:%d\n",
- __func__, __LINE__);
- if (likely(skb->dev && skb->dev->nd_net))
- return dev_net(skb->dev);
- pr_err("There is no net ptr to find in the skb in %s() line:%d\n",
- __func__, __LINE__);
- BUG();
-#else
- return sock_net(skb->sk);
-#endif
-#else
- return &init_net;
-#endif
-}
-/*
- * This one needed for single_open_net since net is stored directly in
- * private not as a struct i.e. seq_file_net can't be used.
- */
-static inline struct net *seq_file_single_net(struct seq_file *seq)
-{
-#ifdef CONFIG_NET_NS
- return (struct net *)seq->private;
-#else
- return &init_net;
-#endif
-}
-
-/* Connections' size value needed by ip_vs_ctl.c */
-extern int ip_vs_conn_tab_size;
-
-
-struct ip_vs_iphdr {
- int len;
- __u8 protocol;
- union nf_inet_addr saddr;
- union nf_inet_addr daddr;
-};
-
-static inline void
-ip_vs_fill_iphdr(int af, const void *nh, struct ip_vs_iphdr *iphdr)
-{
-#ifdef CONFIG_IP_VS_IPV6
- if (af == AF_INET6) {
- const struct ipv6hdr *iph = nh;
- iphdr->len = sizeof(struct ipv6hdr);
- iphdr->protocol = iph->nexthdr;
- iphdr->saddr.in6 = iph->saddr;
- iphdr->daddr.in6 = iph->daddr;
- } else
-#endif
- {
- const struct iphdr *iph = nh;
- iphdr->len = iph->ihl * 4;
- iphdr->protocol = iph->protocol;
- iphdr->saddr.ip = iph->saddr;
- iphdr->daddr.ip = iph->daddr;
- }
-}
-
-static inline void ip_vs_addr_copy(int af, union nf_inet_addr *dst,
- const union nf_inet_addr *src)
-{
-#ifdef CONFIG_IP_VS_IPV6
- if (af == AF_INET6)
- dst->in6 = src->in6;
- else
-#endif
- dst->ip = src->ip;
-}
-
-static inline int ip_vs_addr_equal(int af, const union nf_inet_addr *a,
- const union nf_inet_addr *b)
-{
-#ifdef CONFIG_IP_VS_IPV6
- if (af == AF_INET6)
- return ipv6_addr_equal(&a->in6, &b->in6);
-#endif
- return a->ip == b->ip;
-}
-
-#ifdef CONFIG_IP_VS_DEBUG
-#include <linux/net.h>
-
-extern int ip_vs_get_debug_level(void);
-
-static inline const char *ip_vs_dbg_addr(int af, char *buf, size_t buf_len,
- const union nf_inet_addr *addr,
- int *idx)
-{
- int len;
-#ifdef CONFIG_IP_VS_IPV6
- if (af == AF_INET6)
- len = snprintf(&buf[*idx], buf_len - *idx, "[%pI6]",
- &addr->in6) + 1;
- else
-#endif
- len = snprintf(&buf[*idx], buf_len - *idx, "%pI4",
- &addr->ip) + 1;
-
- *idx += len;
- BUG_ON(*idx > buf_len + 1);
- return &buf[*idx - len];
-}
-
-#define IP_VS_DBG_BUF(level, msg, ...) \
- do { \
- char ip_vs_dbg_buf[160]; \
- int ip_vs_dbg_idx = 0; \
- if (level <= ip_vs_get_debug_level()) \
- printk(KERN_DEBUG pr_fmt(msg), ##__VA_ARGS__); \
- } while (0)
-#define IP_VS_ERR_BUF(msg...) \
- do { \
- char ip_vs_dbg_buf[160]; \
- int ip_vs_dbg_idx = 0; \
- pr_err(msg); \
- } while (0)
-
-/* Only use from within IP_VS_DBG_BUF() or IP_VS_ERR_BUF macros */
-#define IP_VS_DBG_ADDR(af, addr) \
- ip_vs_dbg_addr(af, ip_vs_dbg_buf, \
- sizeof(ip_vs_dbg_buf), addr, \
- &ip_vs_dbg_idx)
-
-#define IP_VS_DBG(level, msg, ...) \
- do { \
- if (level <= ip_vs_get_debug_level()) \
- printk(KERN_DEBUG pr_fmt(msg), ##__VA_ARGS__); \
- } while (0)
-#define IP_VS_DBG_RL(msg, ...) \
- do { \
- if (net_ratelimit()) \
- printk(KERN_DEBUG pr_fmt(msg), ##__VA_ARGS__); \
- } while (0)
-#define IP_VS_DBG_PKT(level, af, pp, skb, ofs, msg) \
- do { \
- if (level <= ip_vs_get_debug_level()) \
- pp->debug_packet(af, pp, skb, ofs, msg); \
- } while (0)
-#define IP_VS_DBG_RL_PKT(level, af, pp, skb, ofs, msg) \
- do { \
- if (level <= ip_vs_get_debug_level() && \
- net_ratelimit()) \
- pp->debug_packet(af, pp, skb, ofs, msg); \
- } while (0)
-#else /* NO DEBUGGING at ALL */
-#define IP_VS_DBG_BUF(level, msg...) do {} while (0)
-#define IP_VS_ERR_BUF(msg...) do {} while (0)
-#define IP_VS_DBG(level, msg...) do {} while (0)
-#define IP_VS_DBG_RL(msg...) do {} while (0)
-#define IP_VS_DBG_PKT(level, af, pp, skb, ofs, msg) do {} while (0)
-#define IP_VS_DBG_RL_PKT(level, af, pp, skb, ofs, msg) do {} while (0)
-#endif
-
-#define IP_VS_BUG() BUG()
-#define IP_VS_ERR_RL(msg, ...) \
- do { \
- if (net_ratelimit()) \
- pr_err(msg, ##__VA_ARGS__); \
- } while (0)
-
-#ifdef CONFIG_IP_VS_DEBUG
-#define EnterFunction(level) \
- do { \
- if (level <= ip_vs_get_debug_level()) \
- printk(KERN_DEBUG \
- pr_fmt("Enter: %s, %s line %i\n"), \
- __func__, __FILE__, __LINE__); \
- } while (0)
-#define LeaveFunction(level) \
- do { \
- if (level <= ip_vs_get_debug_level()) \
- printk(KERN_DEBUG \
- pr_fmt("Leave: %s, %s line %i\n"), \
- __func__, __FILE__, __LINE__); \
- } while (0)
-#else
-#define EnterFunction(level) do {} while (0)
-#define LeaveFunction(level) do {} while (0)
-#endif
-
-#define IP_VS_WAIT_WHILE(expr) while (expr) { cpu_relax(); }
-
-
-/*
- * The port number of FTP service (in network order).
- */
-#define FTPPORT cpu_to_be16(21)
-#define FTPDATA cpu_to_be16(20)
-
-/*
- * TCP State Values
- */
-enum {
- IP_VS_TCP_S_NONE = 0,
- IP_VS_TCP_S_ESTABLISHED,
- IP_VS_TCP_S_SYN_SENT,
- IP_VS_TCP_S_SYN_RECV,
- IP_VS_TCP_S_FIN_WAIT,
- IP_VS_TCP_S_TIME_WAIT,
- IP_VS_TCP_S_CLOSE,
- IP_VS_TCP_S_CLOSE_WAIT,
- IP_VS_TCP_S_LAST_ACK,
- IP_VS_TCP_S_LISTEN,
- IP_VS_TCP_S_SYNACK,
- IP_VS_TCP_S_LAST
-};
-
-/*
- * UDP State Values
- */
-enum {
- IP_VS_UDP_S_NORMAL,
- IP_VS_UDP_S_LAST,
-};
-
-/*
- * ICMP State Values
- */
-enum {
- IP_VS_ICMP_S_NORMAL,
- IP_VS_ICMP_S_LAST,
-};
-
-/*
- * SCTP State Values
- */
-enum ip_vs_sctp_states {
- IP_VS_SCTP_S_NONE,
- IP_VS_SCTP_S_INIT_CLI,
- IP_VS_SCTP_S_INIT_SER,
- IP_VS_SCTP_S_INIT_ACK_CLI,
- IP_VS_SCTP_S_INIT_ACK_SER,
- IP_VS_SCTP_S_ECHO_CLI,
- IP_VS_SCTP_S_ECHO_SER,
- IP_VS_SCTP_S_ESTABLISHED,
- IP_VS_SCTP_S_SHUT_CLI,
- IP_VS_SCTP_S_SHUT_SER,
- IP_VS_SCTP_S_SHUT_ACK_CLI,
- IP_VS_SCTP_S_SHUT_ACK_SER,
- IP_VS_SCTP_S_CLOSED,
- IP_VS_SCTP_S_LAST
-};
-
-/*
- * Delta sequence info structure
- * Each ip_vs_conn has 2 (output AND input seq. changes).
- * Only used in the VS/NAT.
- */
-struct ip_vs_seq {
- __u32 init_seq; /* Add delta from this seq */
- __u32 delta; /* Delta in sequence numbers */
- __u32 previous_delta; /* Delta in sequence numbers
- before last resized pkt */
-};
-
-/*
- * counters per cpu
- */
-struct ip_vs_counters {
- __u32 conns; /* connections scheduled */
- __u32 inpkts; /* incoming packets */
- __u32 outpkts; /* outgoing packets */
- __u64 inbytes; /* incoming bytes */
- __u64 outbytes; /* outgoing bytes */
-};
-/*
- * Stats per cpu
- */
-struct ip_vs_cpu_stats {
- struct ip_vs_counters ustats;
- struct u64_stats_sync syncp;
-};
-
-/*
- * IPVS statistics objects
- */
-struct ip_vs_estimator {
- struct list_head list;
-
- u64 last_inbytes;
- u64 last_outbytes;
- u32 last_conns;
- u32 last_inpkts;
- u32 last_outpkts;
-
- u32 cps;
- u32 inpps;
- u32 outpps;
- u32 inbps;
- u32 outbps;
-};
-
-struct ip_vs_stats {
- struct ip_vs_stats_user ustats; /* statistics */
- struct ip_vs_estimator est; /* estimator */
- struct ip_vs_cpu_stats *cpustats; /* per cpu counters */
- spinlock_t lock; /* spin lock */
- struct ip_vs_stats_user ustats0; /* reset values */
-};
-
-struct dst_entry;
-struct iphdr;
-struct ip_vs_conn;
-struct ip_vs_app;
-struct sk_buff;
-struct ip_vs_proto_data;
-
-struct ip_vs_protocol {
- struct ip_vs_protocol *next;
- char *name;
- u16 protocol;
- u16 num_states;
- int dont_defrag;
-
- void (*init)(struct ip_vs_protocol *pp);
-
- void (*exit)(struct ip_vs_protocol *pp);
-
- int (*init_netns)(struct net *net, struct ip_vs_proto_data *pd);
-
- void (*exit_netns)(struct net *net, struct ip_vs_proto_data *pd);
-
- int (*conn_schedule)(int af, struct sk_buff *skb,
- struct ip_vs_proto_data *pd,
- int *verdict, struct ip_vs_conn **cpp);
-
- struct ip_vs_conn *
- (*conn_in_get)(int af,
- const struct sk_buff *skb,
- const struct ip_vs_iphdr *iph,
- unsigned int proto_off,
- int inverse);
-
- struct ip_vs_conn *
- (*conn_out_get)(int af,
- const struct sk_buff *skb,
- const struct ip_vs_iphdr *iph,
- unsigned int proto_off,
- int inverse);
-
- int (*snat_handler)(struct sk_buff *skb,
- struct ip_vs_protocol *pp, struct ip_vs_conn *cp);
-
- int (*dnat_handler)(struct sk_buff *skb,
- struct ip_vs_protocol *pp, struct ip_vs_conn *cp);
-
- int (*csum_check)(int af, struct sk_buff *skb,
- struct ip_vs_protocol *pp);
-
- const char *(*state_name)(int state);
-
- void (*state_transition)(struct ip_vs_conn *cp, int direction,
- const struct sk_buff *skb,
- struct ip_vs_proto_data *pd);
-
- int (*register_app)(struct net *net, struct ip_vs_app *inc);
-
- void (*unregister_app)(struct net *net, struct ip_vs_app *inc);
-
- int (*app_conn_bind)(struct ip_vs_conn *cp);
-
- void (*debug_packet)(int af, struct ip_vs_protocol *pp,
- const struct sk_buff *skb,
- int offset,
- const char *msg);
-
- void (*timeout_change)(struct ip_vs_proto_data *pd, int flags);
-};
-
-/*
- * protocol data per netns
- */
-struct ip_vs_proto_data {
- struct ip_vs_proto_data *next;
- struct ip_vs_protocol *pp;
- int *timeout_table; /* protocol timeout table */
- atomic_t appcnt; /* counter of proto app incs. */
- struct tcp_states_t *tcp_state_table;
-};
-
-extern struct ip_vs_protocol *ip_vs_proto_get(unsigned short proto);
-extern struct ip_vs_proto_data *ip_vs_proto_data_get(struct net *net,
- unsigned short proto);
-
-struct ip_vs_conn_param {
- struct net *net;
- const union nf_inet_addr *caddr;
- const union nf_inet_addr *vaddr;
- __be16 cport;
- __be16 vport;
- __u16 protocol;
- u16 af;
-
- const struct ip_vs_pe *pe;
- char *pe_data;
- __u8 pe_data_len;
-};
-
-/*
- * IP_VS structure allocated for each dynamically scheduled connection
- */
-struct ip_vs_conn {
- struct hlist_node c_list; /* hashed list heads */
-#ifdef CONFIG_NET_NS
- struct net *net; /* Name space */
-#endif
- /* Protocol, addresses and port numbers */
- u16 af; /* address family */
- __be16 cport;
- __be16 vport;
- __be16 dport;
- __u32 fwmark; /* Fire wall mark from skb */
- union nf_inet_addr caddr; /* client address */
- union nf_inet_addr vaddr; /* virtual address */
- union nf_inet_addr daddr; /* destination address */
- volatile __u32 flags; /* status flags */
- __u16 protocol; /* Which protocol (TCP/UDP) */
-
- /* counter and timer */
- atomic_t refcnt; /* reference count */
- struct timer_list timer; /* Expiration timer */
- volatile unsigned long timeout; /* timeout */
-
- /* Flags and state transition */
- spinlock_t lock; /* lock for state transition */
- volatile __u16 state; /* state info */
- volatile __u16 old_state; /* old state, to be used for
- * state transition triggerd
- * synchronization
- */
-
- /* Control members */
- struct ip_vs_conn *control; /* Master control connection */
- atomic_t n_control; /* Number of controlled ones */
- struct ip_vs_dest *dest; /* real server */
- atomic_t in_pkts; /* incoming packet counter */
-
- /* packet transmitter for different forwarding methods. If it
- mangles the packet, it must return NF_DROP or better NF_STOLEN,
- otherwise this must be changed to a sk_buff **.
- NF_ACCEPT can be returned when destination is local.
- */
- int (*packet_xmit)(struct sk_buff *skb, struct ip_vs_conn *cp,
- struct ip_vs_protocol *pp);
-
- /* Note: we can group the following members into a structure,
- in order to save more space, and the following members are
- only used in VS/NAT anyway */
- struct ip_vs_app *app; /* bound ip_vs_app object */
- void *app_data; /* Application private data */
- struct ip_vs_seq in_seq; /* incoming seq. struct */
- struct ip_vs_seq out_seq; /* outgoing seq. struct */
-
- const struct ip_vs_pe *pe;
- char *pe_data;
- __u8 pe_data_len;
-};
-
-/*
- * To save some memory in conn table when name space is disabled.
- */
-static inline struct net *ip_vs_conn_net(const struct ip_vs_conn *cp)
-{
-#ifdef CONFIG_NET_NS
- return cp->net;
-#else
- return &init_net;
-#endif
-}
-static inline void ip_vs_conn_net_set(struct ip_vs_conn *cp, struct net *net)
-{
-#ifdef CONFIG_NET_NS
- cp->net = net;
-#endif
-}
-
-static inline int ip_vs_conn_net_eq(const struct ip_vs_conn *cp,
- struct net *net)
-{
-#ifdef CONFIG_NET_NS
- return cp->net == net;
-#else
- return 1;
-#endif
-}
-
-/*
- * Extended internal versions of struct ip_vs_service_user and
- * ip_vs_dest_user for IPv6 support.
- *
- * We need these to conveniently pass around service and destination
- * options, but unfortunately, we also need to keep the old definitions to
- * maintain userspace backwards compatibility for the setsockopt interface.
- */
-struct ip_vs_service_user_kern {
- /* virtual service addresses */
- u16 af;
- u16 protocol;
- union nf_inet_addr addr; /* virtual ip address */
- u16 port;
- u32 fwmark; /* firwall mark of service */
-
- /* virtual service options */
- char *sched_name;
- char *pe_name;
- unsigned flags; /* virtual service flags */
- unsigned timeout; /* persistent timeout in sec */
- u32 netmask; /* persistent netmask */
-};
-
-
-struct ip_vs_dest_user_kern {
- /* destination server address */
- union nf_inet_addr addr;
- u16 port;
-
- /* real server options */
- unsigned conn_flags; /* connection flags */
- int weight; /* destination weight */
-
- /* thresholds for active connections */
- u32 u_threshold; /* upper threshold */
- u32 l_threshold; /* lower threshold */
-};
-
-
-/*
- * The information about the virtual service offered to the net
- * and the forwarding entries
- */
-struct ip_vs_service {
- struct list_head s_list; /* for normal service table */
- struct list_head f_list; /* for fwmark-based service table */
- atomic_t refcnt; /* reference counter */
- atomic_t usecnt; /* use counter */
-
- u16 af; /* address family */
- __u16 protocol; /* which protocol (TCP/UDP) */
- union nf_inet_addr addr; /* IP address for virtual service */
- __be16 port; /* port number for the service */
- __u32 fwmark; /* firewall mark of the service */
- unsigned flags; /* service status flags */
- unsigned timeout; /* persistent timeout in ticks */
- __be32 netmask; /* grouping granularity */
- struct net *net;
-
- struct list_head destinations; /* real server d-linked list */
- __u32 num_dests; /* number of servers */
- struct ip_vs_stats stats; /* statistics for the service */
- struct ip_vs_app *inc; /* bind conns to this app inc */
-
- /* for scheduling */
- struct ip_vs_scheduler *scheduler; /* bound scheduler object */
- rwlock_t sched_lock; /* lock sched_data */
- void *sched_data; /* scheduler application data */
-
- /* alternate persistence engine */
- struct ip_vs_pe *pe;
-};
-
-
-/*
- * The real server destination forwarding entry
- * with ip address, port number, and so on.
- */
-struct ip_vs_dest {
- struct list_head n_list; /* for the dests in the service */
- struct list_head d_list; /* for table with all the dests */
-
- u16 af; /* address family */
- __be16 port; /* port number of the server */
- union nf_inet_addr addr; /* IP address of the server */
- volatile unsigned flags; /* dest status flags */
- atomic_t conn_flags; /* flags to copy to conn */
- atomic_t weight; /* server weight */
-
- atomic_t refcnt; /* reference counter */
- struct ip_vs_stats stats; /* statistics */
-
- /* connection counters and thresholds */
- atomic_t activeconns; /* active connections */
- atomic_t inactconns; /* inactive connections */
- atomic_t persistconns; /* persistent connections */
- __u32 u_threshold; /* upper threshold */
- __u32 l_threshold; /* lower threshold */
-
- /* for destination cache */
- spinlock_t dst_lock; /* lock of dst_cache */
- struct dst_entry *dst_cache; /* destination cache entry */
- u32 dst_rtos; /* RT_TOS(tos) for dst */
- u32 dst_cookie;
- union nf_inet_addr dst_saddr;
-
- /* for virtual service */
- struct ip_vs_service *svc; /* service it belongs to */
- __u16 protocol; /* which protocol (TCP/UDP) */
- __be16 vport; /* virtual port number */
- union nf_inet_addr vaddr; /* virtual IP address */
- __u32 vfwmark; /* firewall mark of service */
-};
-
-
-/*
- * The scheduler object
- */
-struct ip_vs_scheduler {
- struct list_head n_list; /* d-linked list head */
- char *name; /* scheduler name */
- atomic_t refcnt; /* reference counter */
- struct module *module; /* THIS_MODULE/NULL */
-
- /* scheduler initializing service */
- int (*init_service)(struct ip_vs_service *svc);
- /* scheduling service finish */
- int (*done_service)(struct ip_vs_service *svc);
- /* scheduler updating service */
- int (*update_service)(struct ip_vs_service *svc);
-
- /* selecting a server from the given service */
- struct ip_vs_dest* (*schedule)(struct ip_vs_service *svc,
- const struct sk_buff *skb);
-};
-
-/* The persistence engine object */
-struct ip_vs_pe {
- struct list_head n_list; /* d-linked list head */
- char *name; /* scheduler name */
- atomic_t refcnt; /* reference counter */
- struct module *module; /* THIS_MODULE/NULL */
-
- /* get the connection template, if any */
- int (*fill_param)(struct ip_vs_conn_param *p, struct sk_buff *skb);
- bool (*ct_match)(const struct ip_vs_conn_param *p,
- struct ip_vs_conn *ct);
- u32 (*hashkey_raw)(const struct ip_vs_conn_param *p, u32 initval,
- bool inverse);
- int (*show_pe_data)(const struct ip_vs_conn *cp, char *buf);
-};
-
-/*
- * The application module object (a.k.a. app incarnation)
- */
-struct ip_vs_app {
- struct list_head a_list; /* member in app list */
- int type; /* IP_VS_APP_TYPE_xxx */
- char *name; /* application module name */
- __u16 protocol;
- struct module *module; /* THIS_MODULE/NULL */
- struct list_head incs_list; /* list of incarnations */
-
- /* members for application incarnations */
- struct list_head p_list; /* member in proto app list */
- struct ip_vs_app *app; /* its real application */
- __be16 port; /* port number in net order */
- atomic_t usecnt; /* usage counter */
-
- /*
- * output hook: Process packet in inout direction, diff set for TCP.
- * Return: 0=Error, 1=Payload Not Mangled/Mangled but checksum is ok,
- * 2=Mangled but checksum was not updated
- */
- int (*pkt_out)(struct ip_vs_app *, struct ip_vs_conn *,
- struct sk_buff *, int *diff);
-
- /*
- * input hook: Process packet in outin direction, diff set for TCP.
- * Return: 0=Error, 1=Payload Not Mangled/Mangled but checksum is ok,
- * 2=Mangled but checksum was not updated
- */
- int (*pkt_in)(struct ip_vs_app *, struct ip_vs_conn *,
- struct sk_buff *, int *diff);
-
- /* ip_vs_app initializer */
- int (*init_conn)(struct ip_vs_app *, struct ip_vs_conn *);
-
- /* ip_vs_app finish */
- int (*done_conn)(struct ip_vs_app *, struct ip_vs_conn *);
-
-
- /* not used now */
- int (*bind_conn)(struct ip_vs_app *, struct ip_vs_conn *,
- struct ip_vs_protocol *);
-
- void (*unbind_conn)(struct ip_vs_app *, struct ip_vs_conn *);
-
- int * timeout_table;
- int * timeouts;
- int timeouts_size;
-
- int (*conn_schedule)(struct sk_buff *skb, struct ip_vs_app *app,
- int *verdict, struct ip_vs_conn **cpp);
-
- struct ip_vs_conn *
- (*conn_in_get)(const struct sk_buff *skb, struct ip_vs_app *app,
- const struct iphdr *iph, unsigned int proto_off,
- int inverse);
-
- struct ip_vs_conn *
- (*conn_out_get)(const struct sk_buff *skb, struct ip_vs_app *app,
- const struct iphdr *iph, unsigned int proto_off,
- int inverse);
-
- int (*state_transition)(struct ip_vs_conn *cp, int direction,
- const struct sk_buff *skb,
- struct ip_vs_app *app);
-
- void (*timeout_change)(struct ip_vs_app *app, int flags);
-};
-
-/* IPVS in network namespace */
-struct netns_ipvs {
- int gen; /* Generation */
- int enable; /* enable like nf_hooks do */
- /*
- * Hash table: for real service lookups
- */
- #define IP_VS_RTAB_BITS 4
- #define IP_VS_RTAB_SIZE (1 << IP_VS_RTAB_BITS)
- #define IP_VS_RTAB_MASK (IP_VS_RTAB_SIZE - 1)
-
- struct list_head rs_table[IP_VS_RTAB_SIZE];
- /* ip_vs_app */
- struct list_head app_list;
- /* ip_vs_ftp */
- struct ip_vs_app *ftp_app;
- /* ip_vs_proto */
- #define IP_VS_PROTO_TAB_SIZE 32 /* must be power of 2 */
- struct ip_vs_proto_data *proto_data_table[IP_VS_PROTO_TAB_SIZE];
- /* ip_vs_proto_tcp */
-#ifdef CONFIG_IP_VS_PROTO_TCP
- #define TCP_APP_TAB_BITS 4
- #define TCP_APP_TAB_SIZE (1 << TCP_APP_TAB_BITS)
- #define TCP_APP_TAB_MASK (TCP_APP_TAB_SIZE - 1)
- struct list_head tcp_apps[TCP_APP_TAB_SIZE];
- spinlock_t tcp_app_lock;
-#endif
- /* ip_vs_proto_udp */
-#ifdef CONFIG_IP_VS_PROTO_UDP
- #define UDP_APP_TAB_BITS 4
- #define UDP_APP_TAB_SIZE (1 << UDP_APP_TAB_BITS)
- #define UDP_APP_TAB_MASK (UDP_APP_TAB_SIZE - 1)
- struct list_head udp_apps[UDP_APP_TAB_SIZE];
- spinlock_t udp_app_lock;
-#endif
- /* ip_vs_proto_sctp */
-#ifdef CONFIG_IP_VS_PROTO_SCTP
- #define SCTP_APP_TAB_BITS 4
- #define SCTP_APP_TAB_SIZE (1 << SCTP_APP_TAB_BITS)
- #define SCTP_APP_TAB_MASK (SCTP_APP_TAB_SIZE - 1)
- /* Hash table for SCTP application incarnations */
- struct list_head sctp_apps[SCTP_APP_TAB_SIZE];
- spinlock_t sctp_app_lock;
-#endif
- /* ip_vs_conn */
- atomic_t conn_count; /* connection counter */
-
- /* ip_vs_ctl */
- struct ip_vs_stats tot_stats; /* Statistics & est. */
-
- int num_services; /* no of virtual services */
-
- rwlock_t rs_lock; /* real services table */
- /* Trash for destinations */
- struct list_head dest_trash;
- /* Service counters */
- atomic_t ftpsvc_counter;
- atomic_t nullsvc_counter;
-
-#ifdef CONFIG_SYSCTL
- /* 1/rate drop and drop-entry variables */
- struct delayed_work defense_work; /* Work handler */
- int drop_rate;
- int drop_counter;
- atomic_t dropentry;
- /* locks in ctl.c */
- spinlock_t dropentry_lock; /* drop entry handling */
- spinlock_t droppacket_lock; /* drop packet handling */
- spinlock_t securetcp_lock; /* state and timeout tables */
-
- /* sys-ctl struct */
- struct ctl_table_header *sysctl_hdr;
- struct ctl_table *sysctl_tbl;
-#endif
-
- /* sysctl variables */
- int sysctl_amemthresh;
- int sysctl_am_droprate;
- int sysctl_drop_entry;
- int sysctl_drop_packet;
- int sysctl_secure_tcp;
-#ifdef CONFIG_IP_VS_NFCT
- int sysctl_conntrack;
-#endif
- int sysctl_snat_reroute;
- int sysctl_sync_ver;
- int sysctl_cache_bypass;
- int sysctl_expire_nodest_conn;
- int sysctl_expire_quiescent_template;
- int sysctl_sync_threshold[2];
- int sysctl_nat_icmp_send;
-
- /* ip_vs_lblc */
- int sysctl_lblc_expiration;
- struct ctl_table_header *lblc_ctl_header;
- struct ctl_table *lblc_ctl_table;
- /* ip_vs_lblcr */
- int sysctl_lblcr_expiration;
- struct ctl_table_header *lblcr_ctl_header;
- struct ctl_table *lblcr_ctl_table;
- /* ip_vs_est */
- struct list_head est_list; /* estimator list */
- spinlock_t est_lock;
- struct timer_list est_timer; /* Estimation timer */
- /* ip_vs_sync */
- struct list_head sync_queue;
- spinlock_t sync_lock;
- struct ip_vs_sync_buff *sync_buff;
- spinlock_t sync_buff_lock;
- struct sockaddr_in sync_mcast_addr;
- struct task_struct *master_thread;
- struct task_struct *backup_thread;
- int send_mesg_maxlen;
- int recv_mesg_maxlen;
- volatile int sync_state;
- volatile int master_syncid;
- volatile int backup_syncid;
- struct mutex sync_mutex;
- /* multicast interface name */
- char master_mcast_ifn[IP_VS_IFNAME_MAXLEN];
- char backup_mcast_ifn[IP_VS_IFNAME_MAXLEN];
- /* net name space ptr */
- struct net *net; /* Needed by timer routines */
-};
-
-#define DEFAULT_SYNC_THRESHOLD 3
-#define DEFAULT_SYNC_PERIOD 50
-#define DEFAULT_SYNC_VER 1
-
-#ifdef CONFIG_SYSCTL
-
-static inline int sysctl_sync_threshold(struct netns_ipvs *ipvs)
-{
- return ipvs->sysctl_sync_threshold[0];
-}
-
-static inline int sysctl_sync_period(struct netns_ipvs *ipvs)
-{
- return ipvs->sysctl_sync_threshold[1];
-}
-
-static inline int sysctl_sync_ver(struct netns_ipvs *ipvs)
-{
- return ipvs->sysctl_sync_ver;
-}
-
-#else
-
-static inline int sysctl_sync_threshold(struct netns_ipvs *ipvs)
-{
- return DEFAULT_SYNC_THRESHOLD;
-}
-
-static inline int sysctl_sync_period(struct netns_ipvs *ipvs)
-{
- return DEFAULT_SYNC_PERIOD;
-}
-
-static inline int sysctl_sync_ver(struct netns_ipvs *ipvs)
-{
- return DEFAULT_SYNC_VER;
-}
-
-#endif
-
-/*
- * IPVS core functions
- * (from ip_vs_core.c)
- */
-extern const char *ip_vs_proto_name(unsigned proto);
-extern void ip_vs_init_hash_table(struct list_head *table, int rows);
-#define IP_VS_INIT_HASH_TABLE(t) ip_vs_init_hash_table((t), ARRAY_SIZE((t)))
-
-#define IP_VS_APP_TYPE_FTP 1
-
-/*
- * ip_vs_conn handling functions
- * (from ip_vs_conn.c)
- */
-
-enum {
- IP_VS_DIR_INPUT = 0,
- IP_VS_DIR_OUTPUT,
- IP_VS_DIR_INPUT_ONLY,
- IP_VS_DIR_LAST,
-};
-
-static inline void ip_vs_conn_fill_param(struct net *net, int af, int protocol,
- const union nf_inet_addr *caddr,
- __be16 cport,
- const union nf_inet_addr *vaddr,
- __be16 vport,
- struct ip_vs_conn_param *p)
-{
- p->net = net;
- p->af = af;
- p->protocol = protocol;
- p->caddr = caddr;
- p->cport = cport;
- p->vaddr = vaddr;
- p->vport = vport;
- p->pe = NULL;
- p->pe_data = NULL;
-}
-
-struct ip_vs_conn *ip_vs_conn_in_get(const struct ip_vs_conn_param *p);
-struct ip_vs_conn *ip_vs_ct_in_get(const struct ip_vs_conn_param *p);
-
-struct ip_vs_conn * ip_vs_conn_in_get_proto(int af, const struct sk_buff *skb,
- const struct ip_vs_iphdr *iph,
- unsigned int proto_off,
- int inverse);
-
-struct ip_vs_conn *ip_vs_conn_out_get(const struct ip_vs_conn_param *p);
-
-struct ip_vs_conn * ip_vs_conn_out_get_proto(int af, const struct sk_buff *skb,
- const struct ip_vs_iphdr *iph,
- unsigned int proto_off,
- int inverse);
-
-/* put back the conn without restarting its timer */
-static inline void __ip_vs_conn_put(struct ip_vs_conn *cp)
-{
- atomic_dec(&cp->refcnt);
-}
-extern void ip_vs_conn_put(struct ip_vs_conn *cp);
-extern void ip_vs_conn_fill_cport(struct ip_vs_conn *cp, __be16 cport);
-
-struct ip_vs_conn *ip_vs_conn_new(const struct ip_vs_conn_param *p,
- const union nf_inet_addr *daddr,
- __be16 dport, unsigned flags,
- struct ip_vs_dest *dest, __u32 fwmark);
-extern void ip_vs_conn_expire_now(struct ip_vs_conn *cp);
-
-extern const char * ip_vs_state_name(__u16 proto, int state);
-
-extern void ip_vs_tcp_conn_listen(struct net *net, struct ip_vs_conn *cp);
-extern int ip_vs_check_template(struct ip_vs_conn *ct);
-extern void ip_vs_random_dropentry(struct net *net);
-extern int ip_vs_conn_init(void);
-extern void ip_vs_conn_cleanup(void);
-
-static inline void ip_vs_control_del(struct ip_vs_conn *cp)
-{
- struct ip_vs_conn *ctl_cp = cp->control;
- if (!ctl_cp) {
- IP_VS_ERR_BUF("request control DEL for uncontrolled: "
- "%s:%d to %s:%d\n",
- IP_VS_DBG_ADDR(cp->af, &cp->caddr),
- ntohs(cp->cport),
- IP_VS_DBG_ADDR(cp->af, &cp->vaddr),
- ntohs(cp->vport));
-
- return;
- }
-
- IP_VS_DBG_BUF(7, "DELeting control for: "
- "cp.dst=%s:%d ctl_cp.dst=%s:%d\n",
- IP_VS_DBG_ADDR(cp->af, &cp->caddr),
- ntohs(cp->cport),
- IP_VS_DBG_ADDR(cp->af, &ctl_cp->caddr),
- ntohs(ctl_cp->cport));
-
- cp->control = NULL;
- if (atomic_read(&ctl_cp->n_control) == 0) {
- IP_VS_ERR_BUF("BUG control DEL with n=0 : "
- "%s:%d to %s:%d\n",
- IP_VS_DBG_ADDR(cp->af, &cp->caddr),
- ntohs(cp->cport),
- IP_VS_DBG_ADDR(cp->af, &cp->vaddr),
- ntohs(cp->vport));
-
- return;
- }
- atomic_dec(&ctl_cp->n_control);
-}
-
-static inline void
-ip_vs_control_add(struct ip_vs_conn *cp, struct ip_vs_conn *ctl_cp)
-{
- if (cp->control) {
- IP_VS_ERR_BUF("request control ADD for already controlled: "
- "%s:%d to %s:%d\n",
- IP_VS_DBG_ADDR(cp->af, &cp->caddr),
- ntohs(cp->cport),
- IP_VS_DBG_ADDR(cp->af, &cp->vaddr),
- ntohs(cp->vport));
-
- ip_vs_control_del(cp);
- }
-
- IP_VS_DBG_BUF(7, "ADDing control for: "
- "cp.dst=%s:%d ctl_cp.dst=%s:%d\n",
- IP_VS_DBG_ADDR(cp->af, &cp->caddr),
- ntohs(cp->cport),
- IP_VS_DBG_ADDR(cp->af, &ctl_cp->caddr),
- ntohs(ctl_cp->cport));
-
- cp->control = ctl_cp;
- atomic_inc(&ctl_cp->n_control);
-}
-
-/*
- * IPVS netns init & cleanup functions
- */
-extern int ip_vs_estimator_net_init(struct net *net);
-extern int ip_vs_control_net_init(struct net *net);
-extern int ip_vs_protocol_net_init(struct net *net);
-extern int ip_vs_app_net_init(struct net *net);
-extern int ip_vs_conn_net_init(struct net *net);
-extern int ip_vs_sync_net_init(struct net *net);
-extern void ip_vs_conn_net_cleanup(struct net *net);
-extern void ip_vs_app_net_cleanup(struct net *net);
-extern void ip_vs_protocol_net_cleanup(struct net *net);
-extern void ip_vs_control_net_cleanup(struct net *net);
-extern void ip_vs_estimator_net_cleanup(struct net *net);
-extern void ip_vs_sync_net_cleanup(struct net *net);
-extern void ip_vs_service_net_cleanup(struct net *net);
-
-/*
- * IPVS application functions
- * (from ip_vs_app.c)
- */
-#define IP_VS_APP_MAX_PORTS 8
-extern int register_ip_vs_app(struct net *net, struct ip_vs_app *app);
-extern void unregister_ip_vs_app(struct net *net, struct ip_vs_app *app);
-extern int ip_vs_bind_app(struct ip_vs_conn *cp, struct ip_vs_protocol *pp);
-extern void ip_vs_unbind_app(struct ip_vs_conn *cp);
-extern int register_ip_vs_app_inc(struct net *net, struct ip_vs_app *app,
- __u16 proto, __u16 port);
-extern int ip_vs_app_inc_get(struct ip_vs_app *inc);
-extern void ip_vs_app_inc_put(struct ip_vs_app *inc);
-
-extern int ip_vs_app_pkt_out(struct ip_vs_conn *, struct sk_buff *skb);
-extern int ip_vs_app_pkt_in(struct ip_vs_conn *, struct sk_buff *skb);
-
-void ip_vs_bind_pe(struct ip_vs_service *svc, struct ip_vs_pe *pe);
-void ip_vs_unbind_pe(struct ip_vs_service *svc);
-int register_ip_vs_pe(struct ip_vs_pe *pe);
-int unregister_ip_vs_pe(struct ip_vs_pe *pe);
-struct ip_vs_pe *ip_vs_pe_getbyname(const char *name);
-struct ip_vs_pe *__ip_vs_pe_getbyname(const char *pe_name);
-
-/*
- * Use a #define to avoid all of module.h just for these trivial ops
- */
-#define ip_vs_pe_get(pe) \
- if (pe && pe->module) \
- __module_get(pe->module);
-
-#define ip_vs_pe_put(pe) \
- if (pe && pe->module) \
- module_put(pe->module);
-
-/*
- * IPVS protocol functions (from ip_vs_proto.c)
- */
-extern int ip_vs_protocol_init(void);
-extern void ip_vs_protocol_cleanup(void);
-extern void ip_vs_protocol_timeout_change(struct netns_ipvs *ipvs, int flags);
-extern int *ip_vs_create_timeout_table(int *table, int size);
-extern int
-ip_vs_set_state_timeout(int *table, int num, const char *const *names,
- const char *name, int to);
-extern void
-ip_vs_tcpudp_debug_packet(int af, struct ip_vs_protocol *pp,
- const struct sk_buff *skb,
- int offset, const char *msg);
-
-extern struct ip_vs_protocol ip_vs_protocol_tcp;
-extern struct ip_vs_protocol ip_vs_protocol_udp;
-extern struct ip_vs_protocol ip_vs_protocol_icmp;
-extern struct ip_vs_protocol ip_vs_protocol_esp;
-extern struct ip_vs_protocol ip_vs_protocol_ah;
-extern struct ip_vs_protocol ip_vs_protocol_sctp;
-
-/*
- * Registering/unregistering scheduler functions
- * (from ip_vs_sched.c)
- */
-extern int register_ip_vs_scheduler(struct ip_vs_scheduler *scheduler);
-extern int unregister_ip_vs_scheduler(struct ip_vs_scheduler *scheduler);
-extern int ip_vs_bind_scheduler(struct ip_vs_service *svc,
- struct ip_vs_scheduler *scheduler);
-extern int ip_vs_unbind_scheduler(struct ip_vs_service *svc);
-extern struct ip_vs_scheduler *ip_vs_scheduler_get(const char *sched_name);
-extern void ip_vs_scheduler_put(struct ip_vs_scheduler *scheduler);
-extern struct ip_vs_conn *
-ip_vs_schedule(struct ip_vs_service *svc, struct sk_buff *skb,
- struct ip_vs_proto_data *pd, int *ignored);
-extern int ip_vs_leave(struct ip_vs_service *svc, struct sk_buff *skb,
- struct ip_vs_proto_data *pd);
-
-extern void ip_vs_scheduler_err(struct ip_vs_service *svc, const char *msg);
-
-
-/*
- * IPVS control data and functions (from ip_vs_ctl.c)
- */
-extern struct ip_vs_stats ip_vs_stats;
-extern const struct ctl_path net_vs_ctl_path[];
-extern int sysctl_ip_vs_sync_ver;
-
-extern void ip_vs_sync_switch_mode(struct net *net, int mode);
-extern struct ip_vs_service *
-ip_vs_service_get(struct net *net, int af, __u32 fwmark, __u16 protocol,
- const union nf_inet_addr *vaddr, __be16 vport);
-
-static inline void ip_vs_service_put(struct ip_vs_service *svc)
-{
- atomic_dec(&svc->usecnt);
-}
-
-extern struct ip_vs_dest *
-ip_vs_lookup_real_service(struct net *net, int af, __u16 protocol,
- const union nf_inet_addr *daddr, __be16 dport);
-
-extern int ip_vs_use_count_inc(void);
-extern void ip_vs_use_count_dec(void);
-extern int ip_vs_register_nl_ioctl(void);
-extern void ip_vs_unregister_nl_ioctl(void);
-extern int ip_vs_control_init(void);
-extern void ip_vs_control_cleanup(void);
-extern struct ip_vs_dest *
-ip_vs_find_dest(struct net *net, int af, const union nf_inet_addr *daddr,
- __be16 dport, const union nf_inet_addr *vaddr, __be16 vport,
- __u16 protocol, __u32 fwmark, __u32 flags);
-extern struct ip_vs_dest *ip_vs_try_bind_dest(struct ip_vs_conn *cp);
-
-
-/*
- * IPVS sync daemon data and function prototypes
- * (from ip_vs_sync.c)
- */
-extern int start_sync_thread(struct net *net, int state, char *mcast_ifn,
- __u8 syncid);
-extern int stop_sync_thread(struct net *net, int state);
-extern void ip_vs_sync_conn(struct net *net, struct ip_vs_conn *cp);
-
-
-/*
- * IPVS rate estimator prototypes (from ip_vs_est.c)
- */
-extern void ip_vs_start_estimator(struct net *net, struct ip_vs_stats *stats);
-extern void ip_vs_stop_estimator(struct net *net, struct ip_vs_stats *stats);
-extern void ip_vs_zero_estimator(struct ip_vs_stats *stats);
-extern void ip_vs_read_estimator(struct ip_vs_stats_user *dst,
- struct ip_vs_stats *stats);
-
-/*
- * Various IPVS packet transmitters (from ip_vs_xmit.c)
- */
-extern int ip_vs_null_xmit
-(struct sk_buff *skb, struct ip_vs_conn *cp, struct ip_vs_protocol *pp);
-extern int ip_vs_bypass_xmit
-(struct sk_buff *skb, struct ip_vs_conn *cp, struct ip_vs_protocol *pp);
-extern int ip_vs_nat_xmit
-(struct sk_buff *skb, struct ip_vs_conn *cp, struct ip_vs_protocol *pp);
-extern int ip_vs_tunnel_xmit
-(struct sk_buff *skb, struct ip_vs_conn *cp, struct ip_vs_protocol *pp);
-extern int ip_vs_dr_xmit
-(struct sk_buff *skb, struct ip_vs_conn *cp, struct ip_vs_protocol *pp);
-extern int ip_vs_icmp_xmit
-(struct sk_buff *skb, struct ip_vs_conn *cp, struct ip_vs_protocol *pp,
- int offset, unsigned int hooknum);
-extern void ip_vs_dst_reset(struct ip_vs_dest *dest);
-
-#ifdef CONFIG_IP_VS_IPV6
-extern int ip_vs_bypass_xmit_v6
-(struct sk_buff *skb, struct ip_vs_conn *cp, struct ip_vs_protocol *pp);
-extern int ip_vs_nat_xmit_v6
-(struct sk_buff *skb, struct ip_vs_conn *cp, struct ip_vs_protocol *pp);
-extern int ip_vs_tunnel_xmit_v6
-(struct sk_buff *skb, struct ip_vs_conn *cp, struct ip_vs_protocol *pp);
-extern int ip_vs_dr_xmit_v6
-(struct sk_buff *skb, struct ip_vs_conn *cp, struct ip_vs_protocol *pp);
-extern int ip_vs_icmp_xmit_v6
-(struct sk_buff *skb, struct ip_vs_conn *cp, struct ip_vs_protocol *pp,
- int offset, unsigned int hooknum);
-#endif
-
-#ifdef CONFIG_SYSCTL
-/*
- * This is a simple mechanism to ignore packets when
- * we are loaded. Just set ip_vs_drop_rate to 'n' and
- * we start to drop 1/rate of the packets
- */
-
-static inline int ip_vs_todrop(struct netns_ipvs *ipvs)
-{
- if (!ipvs->drop_rate)
- return 0;
- if (--ipvs->drop_counter > 0)
- return 0;
- ipvs->drop_counter = ipvs->drop_rate;
- return 1;
-}
-#else
-static inline int ip_vs_todrop(struct netns_ipvs *ipvs) { return 0; }
-#endif
-
-/*
- * ip_vs_fwd_tag returns the forwarding tag of the connection
- */
-#define IP_VS_FWD_METHOD(cp) (cp->flags & IP_VS_CONN_F_FWD_MASK)
-
-static inline char ip_vs_fwd_tag(struct ip_vs_conn *cp)
-{
- char fwd;
-
- switch (IP_VS_FWD_METHOD(cp)) {
- case IP_VS_CONN_F_MASQ:
- fwd = 'M'; break;
- case IP_VS_CONN_F_LOCALNODE:
- fwd = 'L'; break;
- case IP_VS_CONN_F_TUNNEL:
- fwd = 'T'; break;
- case IP_VS_CONN_F_DROUTE:
- fwd = 'R'; break;
- case IP_VS_CONN_F_BYPASS:
- fwd = 'B'; break;
- default:
- fwd = '?'; break;
- }
- return fwd;
-}
-
-extern void ip_vs_nat_icmp(struct sk_buff *skb, struct ip_vs_protocol *pp,
- struct ip_vs_conn *cp, int dir);
-
-#ifdef CONFIG_IP_VS_IPV6
-extern void ip_vs_nat_icmp_v6(struct sk_buff *skb, struct ip_vs_protocol *pp,
- struct ip_vs_conn *cp, int dir);
-#endif
-
-extern __sum16 ip_vs_checksum_complete(struct sk_buff *skb, int offset);
-
-static inline __wsum ip_vs_check_diff4(__be32 old, __be32 new, __wsum oldsum)
-{
- __be32 diff[2] = { ~old, new };
-
- return csum_partial(diff, sizeof(diff), oldsum);
-}
-
-#ifdef CONFIG_IP_VS_IPV6
-static inline __wsum ip_vs_check_diff16(const __be32 *old, const __be32 *new,
- __wsum oldsum)
-{
- __be32 diff[8] = { ~old[3], ~old[2], ~old[1], ~old[0],
- new[3], new[2], new[1], new[0] };
-
- return csum_partial(diff, sizeof(diff), oldsum);
-}
-#endif
-
-static inline __wsum ip_vs_check_diff2(__be16 old, __be16 new, __wsum oldsum)
-{
- __be16 diff[2] = { ~old, new };
-
- return csum_partial(diff, sizeof(diff), oldsum);
-}
-
-/*
- * Forget current conntrack (unconfirmed) and attach notrack entry
- */
-static inline void ip_vs_notrack(struct sk_buff *skb)
-{
-#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
- enum ip_conntrack_info ctinfo;
- struct nf_conn *ct = nf_ct_get(skb, &ctinfo);
-
- if (!ct || !nf_ct_is_untracked(ct)) {
- nf_reset(skb);
- skb->nfct = &nf_ct_untracked_get()->ct_general;
- skb->nfctinfo = IP_CT_NEW;
- nf_conntrack_get(skb->nfct);
- }
-#endif
-}
-
-#ifdef CONFIG_IP_VS_NFCT
-/*
- * Netfilter connection tracking
- * (from ip_vs_nfct.c)
- */
-static inline int ip_vs_conntrack_enabled(struct netns_ipvs *ipvs)
-{
-#ifdef CONFIG_SYSCTL
- return ipvs->sysctl_conntrack;
-#else
- return 0;
-#endif
-}
-
-extern void ip_vs_update_conntrack(struct sk_buff *skb, struct ip_vs_conn *cp,
- int outin);
-extern int ip_vs_confirm_conntrack(struct sk_buff *skb);
-extern void ip_vs_nfct_expect_related(struct sk_buff *skb, struct nf_conn *ct,
- struct ip_vs_conn *cp, u_int8_t proto,
- const __be16 port, int from_rs);
-extern void ip_vs_conn_drop_conntrack(struct ip_vs_conn *cp);
-
-#else
-
-static inline int ip_vs_conntrack_enabled(struct netns_ipvs *ipvs)
-{
- return 0;
-}
-
-static inline void ip_vs_update_conntrack(struct sk_buff *skb,
- struct ip_vs_conn *cp, int outin)
-{
-}
-
-static inline int ip_vs_confirm_conntrack(struct sk_buff *skb)
-{
- return NF_ACCEPT;
-}
-
-static inline void ip_vs_conn_drop_conntrack(struct ip_vs_conn *cp)
-{
-}
-/* CONFIG_IP_VS_NFCT */
-#endif
-
-static inline unsigned int
-ip_vs_dest_conn_overhead(struct ip_vs_dest *dest)
-{
- /*
- * We think the overhead of processing active connections is 256
- * times higher than that of inactive connections in average. (This
- * 256 times might not be accurate, we will change it later) We
- * use the following formula to estimate the overhead now:
- * dest->activeconns*256 + dest->inactconns
- */
- return (atomic_read(&dest->activeconns) << 8) +
- atomic_read(&dest->inactconns);
-}
-
-#endif /* _NET_IP_VS_H */
diff --git a/ANDROID_3.4.5/include/net/ipcomp.h b/ANDROID_3.4.5/include/net/ipcomp.h
deleted file mode 100644
index cc4f30cd..00000000
--- a/ANDROID_3.4.5/include/net/ipcomp.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef _NET_IPCOMP_H
-#define _NET_IPCOMP_H
-
-#include <linux/types.h>
-
-#define IPCOMP_SCRATCH_SIZE 65400
-
-struct crypto_comp;
-
-struct ipcomp_data {
- u16 threshold;
- struct crypto_comp * __percpu *tfms;
-};
-
-struct ip_comp_hdr;
-struct sk_buff;
-struct xfrm_state;
-
-int ipcomp_input(struct xfrm_state *x, struct sk_buff *skb);
-int ipcomp_output(struct xfrm_state *x, struct sk_buff *skb);
-void ipcomp_destroy(struct xfrm_state *x);
-int ipcomp_init_state(struct xfrm_state *x);
-
-static inline struct ip_comp_hdr *ip_comp_hdr(const struct sk_buff *skb)
-{
- return (struct ip_comp_hdr *)skb_transport_header(skb);
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/ipconfig.h b/ANDROID_3.4.5/include/net/ipconfig.h
deleted file mode 100644
index c74cc1bd..00000000
--- a/ANDROID_3.4.5/include/net/ipconfig.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (C) 1997 Martin Mares
- *
- * Automatic IP Layer Configuration
- */
-
-/* The following are initdata: */
-
-extern int ic_proto_enabled; /* Protocols enabled (see IC_xxx) */
-extern int ic_set_manually; /* IPconfig parameters set manually */
-
-extern __be32 ic_myaddr; /* My IP address */
-extern __be32 ic_gateway; /* Gateway IP address */
-
-extern __be32 ic_servaddr; /* Boot server IP address */
-
-extern __be32 root_server_addr; /* Address of NFS server */
-extern u8 root_server_path[]; /* Path to mount as root */
-
-
-/* bits in ic_proto_{enabled,used} */
-#define IC_PROTO 0xFF /* Protocols mask: */
-#define IC_BOOTP 0x01 /* BOOTP (or DHCP, see below) */
-#define IC_RARP 0x02 /* RARP */
-#define IC_USE_DHCP 0x100 /* If on, use DHCP instead of BOOTP */
diff --git a/ANDROID_3.4.5/include/net/ipip.h b/ANDROID_3.4.5/include/net/ipip.h
deleted file mode 100644
index a32654d5..00000000
--- a/ANDROID_3.4.5/include/net/ipip.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef __NET_IPIP_H
-#define __NET_IPIP_H 1
-
-#include <linux/if_tunnel.h>
-#include <net/ip.h>
-
-/* Keep error state on tunnel for 30 sec */
-#define IPTUNNEL_ERR_TIMEO (30*HZ)
-
-/* 6rd prefix/relay information */
-struct ip_tunnel_6rd_parm {
- struct in6_addr prefix;
- __be32 relay_prefix;
- u16 prefixlen;
- u16 relay_prefixlen;
-};
-
-struct ip_tunnel {
- struct ip_tunnel __rcu *next;
- struct net_device *dev;
-
- int err_count; /* Number of arrived ICMP errors */
- unsigned long err_time; /* Time when the last ICMP error arrived */
-
- /* These four fields used only by GRE */
- __u32 i_seqno; /* The last seen seqno */
- __u32 o_seqno; /* The last output seqno */
- int hlen; /* Precalculated GRE header length */
- int mlink;
-
- struct ip_tunnel_parm parms;
-
- /* for SIT */
-#ifdef CONFIG_IPV6_SIT_6RD
- struct ip_tunnel_6rd_parm ip6rd;
-#endif
- struct ip_tunnel_prl_entry __rcu *prl; /* potential router list */
- unsigned int prl_count; /* # of entries in PRL */
-};
-
-struct ip_tunnel_prl_entry {
- struct ip_tunnel_prl_entry __rcu *next;
- __be32 addr;
- u16 flags;
- struct rcu_head rcu_head;
-};
-
-#define __IPTUNNEL_XMIT(stats1, stats2) do { \
- int err; \
- int pkt_len = skb->len - skb_transport_offset(skb); \
- \
- skb->ip_summed = CHECKSUM_NONE; \
- ip_select_ident(iph, &rt->dst, NULL); \
- \
- err = ip_local_out(skb); \
- if (likely(net_xmit_eval(err) == 0)) { \
- (stats1)->tx_bytes += pkt_len; \
- (stats1)->tx_packets++; \
- } else { \
- (stats2)->tx_errors++; \
- (stats2)->tx_aborted_errors++; \
- } \
-} while (0)
-
-#define IPTUNNEL_XMIT() __IPTUNNEL_XMIT(txq, stats)
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/ipv6.h b/ANDROID_3.4.5/include/net/ipv6.h
deleted file mode 100644
index a5a9e4df..00000000
--- a/ANDROID_3.4.5/include/net/ipv6.h
+++ /dev/null
@@ -1,688 +0,0 @@
-/*
- * Linux INET6 implementation
- *
- * Authors:
- * Pedro Roque <roque@di.fc.ul.pt>
- *
- * 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 _NET_IPV6_H
-#define _NET_IPV6_H
-
-#include <linux/ipv6.h>
-#include <linux/hardirq.h>
-#include <net/if_inet6.h>
-#include <net/ndisc.h>
-#include <net/flow.h>
-#include <net/snmp.h>
-
-#define SIN6_LEN_RFC2133 24
-
-#define IPV6_MAXPLEN 65535
-
-/*
- * NextHeader field of IPv6 header
- */
-
-#define NEXTHDR_HOP 0 /* Hop-by-hop option header. */
-#define NEXTHDR_TCP 6 /* TCP segment. */
-#define NEXTHDR_UDP 17 /* UDP message. */
-#define NEXTHDR_IPV6 41 /* IPv6 in IPv6 */
-#define NEXTHDR_ROUTING 43 /* Routing header. */
-#define NEXTHDR_FRAGMENT 44 /* Fragmentation/reassembly header. */
-#define NEXTHDR_ESP 50 /* Encapsulating security payload. */
-#define NEXTHDR_AUTH 51 /* Authentication header. */
-#define NEXTHDR_ICMP 58 /* ICMP for IPv6. */
-#define NEXTHDR_NONE 59 /* No next header */
-#define NEXTHDR_DEST 60 /* Destination options header. */
-#define NEXTHDR_MOBILITY 135 /* Mobility header. */
-
-#define NEXTHDR_MAX 255
-
-
-
-#define IPV6_DEFAULT_HOPLIMIT 64
-#define IPV6_DEFAULT_MCASTHOPS 1
-
-/*
- * Addr type
- *
- * type - unicast | multicast
- * scope - local | site | global
- * v4 - compat
- * v4mapped
- * any
- * loopback
- */
-
-#define IPV6_ADDR_ANY 0x0000U
-
-#define IPV6_ADDR_UNICAST 0x0001U
-#define IPV6_ADDR_MULTICAST 0x0002U
-
-#define IPV6_ADDR_LOOPBACK 0x0010U
-#define IPV6_ADDR_LINKLOCAL 0x0020U
-#define IPV6_ADDR_SITELOCAL 0x0040U
-
-#define IPV6_ADDR_COMPATv4 0x0080U
-
-#define IPV6_ADDR_SCOPE_MASK 0x00f0U
-
-#define IPV6_ADDR_MAPPED 0x1000U
-
-/*
- * Addr scopes
- */
-#define IPV6_ADDR_MC_SCOPE(a) \
- ((a)->s6_addr[1] & 0x0f) /* nonstandard */
-#define __IPV6_ADDR_SCOPE_INVALID -1
-#define IPV6_ADDR_SCOPE_NODELOCAL 0x01
-#define IPV6_ADDR_SCOPE_LINKLOCAL 0x02
-#define IPV6_ADDR_SCOPE_SITELOCAL 0x05
-#define IPV6_ADDR_SCOPE_ORGLOCAL 0x08
-#define IPV6_ADDR_SCOPE_GLOBAL 0x0e
-
-/*
- * Addr flags
- */
-#define IPV6_ADDR_MC_FLAG_TRANSIENT(a) \
- ((a)->s6_addr[1] & 0x10)
-#define IPV6_ADDR_MC_FLAG_PREFIX(a) \
- ((a)->s6_addr[1] & 0x20)
-#define IPV6_ADDR_MC_FLAG_RENDEZVOUS(a) \
- ((a)->s6_addr[1] & 0x40)
-
-/*
- * fragmentation header
- */
-
-struct frag_hdr {
- __u8 nexthdr;
- __u8 reserved;
- __be16 frag_off;
- __be32 identification;
-};
-
-#define IP6_MF 0x0001
-
-#include <net/sock.h>
-
-/* sysctls */
-extern int sysctl_mld_max_msf;
-extern struct ctl_path net_ipv6_ctl_path[];
-
-#define _DEVINC(net, statname, modifier, idev, field) \
-({ \
- struct inet6_dev *_idev = (idev); \
- if (likely(_idev != NULL)) \
- SNMP_INC_STATS##modifier((_idev)->stats.statname, (field)); \
- SNMP_INC_STATS##modifier((net)->mib.statname##_statistics, (field));\
-})
-
-/* per device counters are atomic_long_t */
-#define _DEVINCATOMIC(net, statname, modifier, idev, field) \
-({ \
- struct inet6_dev *_idev = (idev); \
- if (likely(_idev != NULL)) \
- SNMP_INC_STATS_ATOMIC_LONG((_idev)->stats.statname##dev, (field)); \
- SNMP_INC_STATS##modifier((net)->mib.statname##_statistics, (field));\
-})
-
-/* per device and per net counters are atomic_long_t */
-#define _DEVINC_ATOMIC_ATOMIC(net, statname, idev, field) \
-({ \
- struct inet6_dev *_idev = (idev); \
- if (likely(_idev != NULL)) \
- SNMP_INC_STATS_ATOMIC_LONG((_idev)->stats.statname##dev, (field)); \
- SNMP_INC_STATS_ATOMIC_LONG((net)->mib.statname##_statistics, (field));\
-})
-
-#define _DEVADD(net, statname, modifier, idev, field, val) \
-({ \
- struct inet6_dev *_idev = (idev); \
- if (likely(_idev != NULL)) \
- SNMP_ADD_STATS##modifier((_idev)->stats.statname, (field), (val)); \
- SNMP_ADD_STATS##modifier((net)->mib.statname##_statistics, (field), (val));\
-})
-
-#define _DEVUPD(net, statname, modifier, idev, field, val) \
-({ \
- struct inet6_dev *_idev = (idev); \
- if (likely(_idev != NULL)) \
- SNMP_UPD_PO_STATS##modifier((_idev)->stats.statname, field, (val)); \
- SNMP_UPD_PO_STATS##modifier((net)->mib.statname##_statistics, field, (val));\
-})
-
-/* MIBs */
-
-#define IP6_INC_STATS(net, idev,field) \
- _DEVINC(net, ipv6, 64, idev, field)
-#define IP6_INC_STATS_BH(net, idev,field) \
- _DEVINC(net, ipv6, 64_BH, idev, field)
-#define IP6_ADD_STATS(net, idev,field,val) \
- _DEVADD(net, ipv6, 64, idev, field, val)
-#define IP6_ADD_STATS_BH(net, idev,field,val) \
- _DEVADD(net, ipv6, 64_BH, idev, field, val)
-#define IP6_UPD_PO_STATS(net, idev,field,val) \
- _DEVUPD(net, ipv6, 64, idev, field, val)
-#define IP6_UPD_PO_STATS_BH(net, idev,field,val) \
- _DEVUPD(net, ipv6, 64_BH, idev, field, val)
-#define ICMP6_INC_STATS(net, idev, field) \
- _DEVINCATOMIC(net, icmpv6, , idev, field)
-#define ICMP6_INC_STATS_BH(net, idev, field) \
- _DEVINCATOMIC(net, icmpv6, _BH, idev, field)
-
-#define ICMP6MSGOUT_INC_STATS(net, idev, field) \
- _DEVINC_ATOMIC_ATOMIC(net, icmpv6msg, idev, field +256)
-#define ICMP6MSGOUT_INC_STATS_BH(net, idev, field) \
- _DEVINC_ATOMIC_ATOMIC(net, icmpv6msg, idev, field +256)
-#define ICMP6MSGIN_INC_STATS_BH(net, idev, field) \
- _DEVINC_ATOMIC_ATOMIC(net, icmpv6msg, idev, field)
-
-struct ip6_ra_chain {
- struct ip6_ra_chain *next;
- struct sock *sk;
- int sel;
- void (*destructor)(struct sock *);
-};
-
-extern struct ip6_ra_chain *ip6_ra_chain;
-extern rwlock_t ip6_ra_lock;
-
-/*
- This structure is prepared by protocol, when parsing
- ancillary data and passed to IPv6.
- */
-
-struct ipv6_txoptions {
- /* Length of this structure */
- int tot_len;
-
- /* length of extension headers */
-
- __u16 opt_flen; /* after fragment hdr */
- __u16 opt_nflen; /* before fragment hdr */
-
- struct ipv6_opt_hdr *hopopt;
- struct ipv6_opt_hdr *dst0opt;
- struct ipv6_rt_hdr *srcrt; /* Routing Header */
- struct ipv6_opt_hdr *dst1opt;
-
- /* Option buffer, as read by IPV6_PKTOPTIONS, starts here. */
-};
-
-struct ip6_flowlabel {
- struct ip6_flowlabel *next;
- __be32 label;
- atomic_t users;
- struct in6_addr dst;
- struct ipv6_txoptions *opt;
- unsigned long linger;
- u8 share;
- u32 owner;
- unsigned long lastuse;
- unsigned long expires;
- struct net *fl_net;
-};
-
-#define IPV6_FLOWINFO_MASK cpu_to_be32(0x0FFFFFFF)
-#define IPV6_FLOWLABEL_MASK cpu_to_be32(0x000FFFFF)
-
-struct ipv6_fl_socklist {
- struct ipv6_fl_socklist *next;
- struct ip6_flowlabel *fl;
-};
-
-extern struct ip6_flowlabel *fl6_sock_lookup(struct sock *sk, __be32 label);
-extern struct ipv6_txoptions *fl6_merge_options(struct ipv6_txoptions * opt_space,
- struct ip6_flowlabel * fl,
- struct ipv6_txoptions * fopt);
-extern void fl6_free_socklist(struct sock *sk);
-extern int ipv6_flowlabel_opt(struct sock *sk, char __user *optval, int optlen);
-extern int ip6_flowlabel_init(void);
-extern void ip6_flowlabel_cleanup(void);
-
-static inline void fl6_sock_release(struct ip6_flowlabel *fl)
-{
- if (fl)
- atomic_dec(&fl->users);
-}
-
-extern void icmpv6_notify(struct sk_buff *skb, u8 type, u8 code, __be32 info);
-
-int icmpv6_push_pending_frames(struct sock *sk, struct flowi6 *fl6,
- struct icmp6hdr *thdr, int len);
-
-struct dst_entry *icmpv6_route_lookup(struct net *net, struct sk_buff *skb,
- struct sock *sk, struct flowi6 *fl6);
-
-extern int ip6_ra_control(struct sock *sk, int sel);
-
-extern int ipv6_parse_hopopts(struct sk_buff *skb);
-
-extern struct ipv6_txoptions * ipv6_dup_options(struct sock *sk, struct ipv6_txoptions *opt);
-extern struct ipv6_txoptions * ipv6_renew_options(struct sock *sk, struct ipv6_txoptions *opt,
- int newtype,
- struct ipv6_opt_hdr __user *newopt,
- int newoptlen);
-struct ipv6_txoptions *ipv6_fixup_options(struct ipv6_txoptions *opt_space,
- struct ipv6_txoptions *opt);
-
-extern int ipv6_opt_accepted(struct sock *sk, struct sk_buff *skb);
-
-int ip6_frag_nqueues(struct net *net);
-int ip6_frag_mem(struct net *net);
-
-#define IPV6_FRAG_HIGH_THRESH (256 * 1024) /* 262144 */
-#define IPV6_FRAG_LOW_THRESH (192 * 1024) /* 196608 */
-#define IPV6_FRAG_TIMEOUT (60 * HZ) /* 60 seconds */
-
-extern int __ipv6_addr_type(const struct in6_addr *addr);
-static inline int ipv6_addr_type(const struct in6_addr *addr)
-{
- return __ipv6_addr_type(addr) & 0xffff;
-}
-
-static inline int ipv6_addr_scope(const struct in6_addr *addr)
-{
- return __ipv6_addr_type(addr) & IPV6_ADDR_SCOPE_MASK;
-}
-
-static inline int __ipv6_addr_src_scope(int type)
-{
- return (type == IPV6_ADDR_ANY) ? __IPV6_ADDR_SCOPE_INVALID : (type >> 16);
-}
-
-static inline int ipv6_addr_src_scope(const struct in6_addr *addr)
-{
- return __ipv6_addr_src_scope(__ipv6_addr_type(addr));
-}
-
-static inline bool __ipv6_addr_needs_scope_id(int type)
-{
- return type & IPV6_ADDR_LINKLOCAL ||
- (type & IPV6_ADDR_MULTICAST &&
- (type & (IPV6_ADDR_LOOPBACK|IPV6_ADDR_LINKLOCAL)));
-}
-
-static inline __u32 ipv6_iface_scope_id(const struct in6_addr *addr, int iface)
-{
- return __ipv6_addr_needs_scope_id(__ipv6_addr_type(addr)) ? iface : 0;
-}
-
-static inline int ipv6_addr_cmp(const struct in6_addr *a1, const struct in6_addr *a2)
-{
- return memcmp(a1, a2, sizeof(struct in6_addr));
-}
-
-static inline int
-ipv6_masked_addr_cmp(const struct in6_addr *a1, const struct in6_addr *m,
- const struct in6_addr *a2)
-{
- return !!(((a1->s6_addr32[0] ^ a2->s6_addr32[0]) & m->s6_addr32[0]) |
- ((a1->s6_addr32[1] ^ a2->s6_addr32[1]) & m->s6_addr32[1]) |
- ((a1->s6_addr32[2] ^ a2->s6_addr32[2]) & m->s6_addr32[2]) |
- ((a1->s6_addr32[3] ^ a2->s6_addr32[3]) & m->s6_addr32[3]));
-}
-
-static inline void ipv6_addr_prefix(struct in6_addr *pfx,
- const struct in6_addr *addr,
- int plen)
-{
- /* caller must guarantee 0 <= plen <= 128 */
- int o = plen >> 3,
- b = plen & 0x7;
-
- memset(pfx->s6_addr, 0, sizeof(pfx->s6_addr));
- memcpy(pfx->s6_addr, addr, o);
- if (b != 0)
- pfx->s6_addr[o] = addr->s6_addr[o] & (0xff00 >> b);
-}
-
-static inline void ipv6_addr_set(struct in6_addr *addr,
- __be32 w1, __be32 w2,
- __be32 w3, __be32 w4)
-{
- addr->s6_addr32[0] = w1;
- addr->s6_addr32[1] = w2;
- addr->s6_addr32[2] = w3;
- addr->s6_addr32[3] = w4;
-}
-
-static inline int ipv6_addr_equal(const struct in6_addr *a1,
- const struct in6_addr *a2)
-{
- return ((a1->s6_addr32[0] ^ a2->s6_addr32[0]) |
- (a1->s6_addr32[1] ^ a2->s6_addr32[1]) |
- (a1->s6_addr32[2] ^ a2->s6_addr32[2]) |
- (a1->s6_addr32[3] ^ a2->s6_addr32[3])) == 0;
-}
-
-static inline int __ipv6_prefix_equal(const __be32 *a1, const __be32 *a2,
- unsigned int prefixlen)
-{
- unsigned pdw, pbi;
-
- /* check complete u32 in prefix */
- pdw = prefixlen >> 5;
- if (pdw && memcmp(a1, a2, pdw << 2))
- return 0;
-
- /* check incomplete u32 in prefix */
- pbi = prefixlen & 0x1f;
- if (pbi && ((a1[pdw] ^ a2[pdw]) & htonl((0xffffffff) << (32 - pbi))))
- return 0;
-
- return 1;
-}
-
-static inline int ipv6_prefix_equal(const struct in6_addr *a1,
- const struct in6_addr *a2,
- unsigned int prefixlen)
-{
- return __ipv6_prefix_equal(a1->s6_addr32, a2->s6_addr32,
- prefixlen);
-}
-
-struct inet_frag_queue;
-
-enum ip6_defrag_users {
- IP6_DEFRAG_LOCAL_DELIVER,
- IP6_DEFRAG_CONNTRACK_IN,
- __IP6_DEFRAG_CONNTRACK_IN = IP6_DEFRAG_CONNTRACK_IN + USHRT_MAX,
- IP6_DEFRAG_CONNTRACK_OUT,
- __IP6_DEFRAG_CONNTRACK_OUT = IP6_DEFRAG_CONNTRACK_OUT + USHRT_MAX,
- IP6_DEFRAG_CONNTRACK_BRIDGE_IN,
- __IP6_DEFRAG_CONNTRACK_BRIDGE_IN = IP6_DEFRAG_CONNTRACK_BRIDGE_IN + USHRT_MAX,
-};
-
-struct ip6_create_arg {
- __be32 id;
- u32 user;
- const struct in6_addr *src;
- const struct in6_addr *dst;
-};
-
-void ip6_frag_init(struct inet_frag_queue *q, void *a);
-int ip6_frag_match(struct inet_frag_queue *q, void *a);
-
-static inline int ipv6_addr_any(const struct in6_addr *a)
-{
- return (a->s6_addr32[0] | a->s6_addr32[1] |
- a->s6_addr32[2] | a->s6_addr32[3]) == 0;
-}
-
-static inline int ipv6_addr_loopback(const struct in6_addr *a)
-{
- return (a->s6_addr32[0] | a->s6_addr32[1] |
- a->s6_addr32[2] | (a->s6_addr32[3] ^ htonl(1))) == 0;
-}
-
-static inline int ipv6_addr_v4mapped(const struct in6_addr *a)
-{
- return (a->s6_addr32[0] | a->s6_addr32[1] |
- (a->s6_addr32[2] ^ htonl(0x0000ffff))) == 0;
-}
-
-/*
- * Check for a RFC 4843 ORCHID address
- * (Overlay Routable Cryptographic Hash Identifiers)
- */
-static inline int ipv6_addr_orchid(const struct in6_addr *a)
-{
- return (a->s6_addr32[0] & htonl(0xfffffff0)) == htonl(0x20010010);
-}
-
-static inline void ipv6_addr_set_v4mapped(const __be32 addr,
- struct in6_addr *v4mapped)
-{
- ipv6_addr_set(v4mapped,
- 0, 0,
- htonl(0x0000FFFF),
- addr);
-}
-
-/*
- * find the first different bit between two addresses
- * length of address must be a multiple of 32bits
- */
-static inline int __ipv6_addr_diff(const void *token1, const void *token2, int addrlen)
-{
- const __be32 *a1 = token1, *a2 = token2;
- int i;
-
- addrlen >>= 2;
-
- for (i = 0; i < addrlen; i++) {
- __be32 xb = a1[i] ^ a2[i];
- if (xb)
- return i * 32 + 31 - __fls(ntohl(xb));
- }
-
- /*
- * we should *never* get to this point since that
- * would mean the addrs are equal
- *
- * However, we do get to it 8) And exacly, when
- * addresses are equal 8)
- *
- * ip route add 1111::/128 via ...
- * ip route add 1111::/64 via ...
- * and we are here.
- *
- * Ideally, this function should stop comparison
- * at prefix length. It does not, but it is still OK,
- * if returned value is greater than prefix length.
- * --ANK (980803)
- */
- return addrlen << 5;
-}
-
-static inline int ipv6_addr_diff(const struct in6_addr *a1, const struct in6_addr *a2)
-{
- return __ipv6_addr_diff(a1, a2, sizeof(struct in6_addr));
-}
-
-extern void ipv6_select_ident(struct frag_hdr *fhdr, struct rt6_info *rt);
-
-/*
- * Prototypes exported by ipv6
- */
-
-/*
- * rcv function (called from netdevice level)
- */
-
-extern int ipv6_rcv(struct sk_buff *skb,
- struct net_device *dev,
- struct packet_type *pt,
- struct net_device *orig_dev);
-
-extern int ip6_rcv_finish(struct sk_buff *skb);
-
-/*
- * upper-layer output functions
- */
-extern int ip6_xmit(struct sock *sk,
- struct sk_buff *skb,
- struct flowi6 *fl6,
- struct ipv6_txoptions *opt,
- int tclass);
-
-extern int ip6_nd_hdr(struct sock *sk,
- struct sk_buff *skb,
- struct net_device *dev,
- const struct in6_addr *saddr,
- const struct in6_addr *daddr,
- int proto, int len);
-
-extern int ip6_find_1stfragopt(struct sk_buff *skb, u8 **nexthdr);
-
-extern int ip6_append_data(struct sock *sk,
- int getfrag(void *from, char *to, int offset, int len, int odd, struct sk_buff *skb),
- void *from,
- int length,
- int transhdrlen,
- int hlimit,
- int tclass,
- struct ipv6_txoptions *opt,
- struct flowi6 *fl6,
- struct rt6_info *rt,
- unsigned int flags,
- int dontfrag);
-
-extern int ip6_push_pending_frames(struct sock *sk);
-
-extern void ip6_flush_pending_frames(struct sock *sk);
-
-extern int ip6_dst_lookup(struct sock *sk,
- struct dst_entry **dst,
- struct flowi6 *fl6);
-extern struct dst_entry * ip6_dst_lookup_flow(struct sock *sk,
- struct flowi6 *fl6,
- const struct in6_addr *final_dst,
- bool can_sleep);
-extern struct dst_entry * ip6_sk_dst_lookup_flow(struct sock *sk,
- struct flowi6 *fl6,
- const struct in6_addr *final_dst,
- bool can_sleep);
-extern struct dst_entry * ip6_blackhole_route(struct net *net,
- struct dst_entry *orig_dst);
-
-/*
- * skb processing functions
- */
-
-extern int ip6_output(struct sk_buff *skb);
-extern int ip6_forward(struct sk_buff *skb);
-extern int ip6_input(struct sk_buff *skb);
-extern int ip6_mc_input(struct sk_buff *skb);
-
-extern int __ip6_local_out(struct sk_buff *skb);
-extern int ip6_local_out(struct sk_buff *skb);
-
-/*
- * Extension header (options) processing
- */
-
-extern void ipv6_push_nfrag_opts(struct sk_buff *skb,
- struct ipv6_txoptions *opt,
- u8 *proto,
- struct in6_addr **daddr_p);
-extern void ipv6_push_frag_opts(struct sk_buff *skb,
- struct ipv6_txoptions *opt,
- u8 *proto);
-
-extern int ipv6_skip_exthdr(const struct sk_buff *, int start,
- u8 *nexthdrp, __be16 *frag_offp);
-
-extern int ipv6_ext_hdr(u8 nexthdr);
-
-extern int ipv6_find_tlv(struct sk_buff *skb, int offset, int type);
-
-extern struct in6_addr *fl6_update_dst(struct flowi6 *fl6,
- const struct ipv6_txoptions *opt,
- struct in6_addr *orig);
-
-/*
- * socket options (ipv6_sockglue.c)
- */
-
-extern int ipv6_setsockopt(struct sock *sk, int level,
- int optname,
- char __user *optval,
- unsigned int optlen);
-extern int ipv6_getsockopt(struct sock *sk, int level,
- int optname,
- char __user *optval,
- int __user *optlen);
-extern int compat_ipv6_setsockopt(struct sock *sk,
- int level,
- int optname,
- char __user *optval,
- unsigned int optlen);
-extern int compat_ipv6_getsockopt(struct sock *sk,
- int level,
- int optname,
- char __user *optval,
- int __user *optlen);
-
-extern int ip6_datagram_connect(struct sock *sk,
- struct sockaddr *addr, int addr_len);
-
-extern int ipv6_recv_error(struct sock *sk, struct msghdr *msg, int len);
-extern int ipv6_recv_rxpmtu(struct sock *sk, struct msghdr *msg, int len);
-extern void ipv6_icmp_error(struct sock *sk, struct sk_buff *skb, int err, __be16 port,
- u32 info, u8 *payload);
-extern void ipv6_local_error(struct sock *sk, int err, struct flowi6 *fl6, u32 info);
-extern void ipv6_local_rxpmtu(struct sock *sk, struct flowi6 *fl6, u32 mtu);
-
-extern int inet6_release(struct socket *sock);
-extern int inet6_bind(struct socket *sock, struct sockaddr *uaddr,
- int addr_len);
-extern int inet6_getname(struct socket *sock, struct sockaddr *uaddr,
- int *uaddr_len, int peer);
-extern int inet6_ioctl(struct socket *sock, unsigned int cmd,
- unsigned long arg);
-
-extern int inet6_hash_connect(struct inet_timewait_death_row *death_row,
- struct sock *sk);
-
-/*
- * reassembly.c
- */
-extern const struct proto_ops inet6_stream_ops;
-extern const struct proto_ops inet6_dgram_ops;
-
-struct group_source_req;
-struct group_filter;
-
-extern int ip6_mc_source(int add, int omode, struct sock *sk,
- struct group_source_req *pgsr);
-extern int ip6_mc_msfilter(struct sock *sk, struct group_filter *gsf);
-extern int ip6_mc_msfget(struct sock *sk, struct group_filter *gsf,
- struct group_filter __user *optval,
- int __user *optlen);
-extern unsigned int inet6_hash_frag(__be32 id, const struct in6_addr *saddr,
- const struct in6_addr *daddr, u32 rnd);
-
-#ifdef CONFIG_PROC_FS
-extern int ac6_proc_init(struct net *net);
-extern void ac6_proc_exit(struct net *net);
-extern int raw6_proc_init(void);
-extern void raw6_proc_exit(void);
-extern int tcp6_proc_init(struct net *net);
-extern void tcp6_proc_exit(struct net *net);
-extern int udp6_proc_init(struct net *net);
-extern void udp6_proc_exit(struct net *net);
-extern int udplite6_proc_init(void);
-extern void udplite6_proc_exit(void);
-extern int ipv6_misc_proc_init(void);
-extern void ipv6_misc_proc_exit(void);
-extern int snmp6_register_dev(struct inet6_dev *idev);
-extern int snmp6_unregister_dev(struct inet6_dev *idev);
-
-#else
-static inline int ac6_proc_init(struct net *net) { return 0; }
-static inline void ac6_proc_exit(struct net *net) { }
-static inline int snmp6_register_dev(struct inet6_dev *idev) { return 0; }
-static inline int snmp6_unregister_dev(struct inet6_dev *idev) { return 0; }
-#endif
-
-#ifdef CONFIG_SYSCTL
-extern ctl_table ipv6_route_table_template[];
-extern ctl_table ipv6_icmp_table_template[];
-
-extern struct ctl_table *ipv6_icmp_sysctl_init(struct net *net);
-extern struct ctl_table *ipv6_route_sysctl_init(struct net *net);
-extern int ipv6_sysctl_register(void);
-extern void ipv6_sysctl_unregister(void);
-extern int ipv6_static_sysctl_register(void);
-extern void ipv6_static_sysctl_unregister(void);
-#endif
-
-#endif /* _NET_IPV6_H */
diff --git a/ANDROID_3.4.5/include/net/ipx.h b/ANDROID_3.4.5/include/net/ipx.h
deleted file mode 100644
index c1fec6b4..00000000
--- a/ANDROID_3.4.5/include/net/ipx.h
+++ /dev/null
@@ -1,160 +0,0 @@
-#ifndef _NET_INET_IPX_H_
-#define _NET_INET_IPX_H_
-/*
- * The following information is in its entirety obtained from:
- *
- * Novell 'IPX Router Specification' Version 1.10
- * Part No. 107-000029-001
- *
- * Which is available from ftp.novell.com
- */
-
-#include <linux/netdevice.h>
-#include <net/datalink.h>
-#include <linux/ipx.h>
-#include <linux/list.h>
-#include <linux/slab.h>
-
-struct ipx_address {
- __be32 net;
- __u8 node[IPX_NODE_LEN];
- __be16 sock;
-};
-
-#define ipx_broadcast_node "\377\377\377\377\377\377"
-#define ipx_this_node "\0\0\0\0\0\0"
-
-#define IPX_MAX_PPROP_HOPS 8
-
-struct ipxhdr {
- __be16 ipx_checksum __packed;
-#define IPX_NO_CHECKSUM cpu_to_be16(0xFFFF)
- __be16 ipx_pktsize __packed;
- __u8 ipx_tctrl;
- __u8 ipx_type;
-#define IPX_TYPE_UNKNOWN 0x00
-#define IPX_TYPE_RIP 0x01 /* may also be 0 */
-#define IPX_TYPE_SAP 0x04 /* may also be 0 */
-#define IPX_TYPE_SPX 0x05 /* SPX protocol */
-#define IPX_TYPE_NCP 0x11 /* $lots for docs on this (SPIT) */
-#define IPX_TYPE_PPROP 0x14 /* complicated flood fill brdcast */
- struct ipx_address ipx_dest __packed;
- struct ipx_address ipx_source __packed;
-};
-
-static __inline__ struct ipxhdr *ipx_hdr(struct sk_buff *skb)
-{
- return (struct ipxhdr *)skb_transport_header(skb);
-}
-
-struct ipx_interface {
- /* IPX address */
- __be32 if_netnum;
- unsigned char if_node[IPX_NODE_LEN];
- atomic_t refcnt;
-
- /* physical device info */
- struct net_device *if_dev;
- struct datalink_proto *if_dlink;
- __be16 if_dlink_type;
-
- /* socket support */
- unsigned short if_sknum;
- struct hlist_head if_sklist;
- spinlock_t if_sklist_lock;
-
- /* administrative overhead */
- int if_ipx_offset;
- unsigned char if_internal;
- unsigned char if_primary;
-
- struct list_head node; /* node in ipx_interfaces list */
-};
-
-struct ipx_route {
- __be32 ir_net;
- struct ipx_interface *ir_intrfc;
- unsigned char ir_routed;
- unsigned char ir_router_node[IPX_NODE_LEN];
- struct list_head node; /* node in ipx_routes list */
- atomic_t refcnt;
-};
-
-struct ipx_cb {
- u8 ipx_tctrl;
- __be32 ipx_dest_net;
- __be32 ipx_source_net;
- struct {
- __be32 netnum;
- int index;
- } last_hop;
-};
-
-#include <net/sock.h>
-
-struct ipx_sock {
- /* struct sock has to be the first member of ipx_sock */
- struct sock sk;
- struct ipx_address dest_addr;
- struct ipx_interface *intrfc;
- __be16 port;
-#ifdef CONFIG_IPX_INTERN
- unsigned char node[IPX_NODE_LEN];
-#endif
- unsigned short type;
- /*
- * To handle special ncp connection-handling sockets for mars_nwe,
- * the connection number must be stored in the socket.
- */
- unsigned short ipx_ncp_conn;
-};
-
-static inline struct ipx_sock *ipx_sk(struct sock *sk)
-{
- return (struct ipx_sock *)sk;
-}
-
-#define IPX_SKB_CB(__skb) ((struct ipx_cb *)&((__skb)->cb[0]))
-
-#define IPX_MIN_EPHEMERAL_SOCKET 0x4000
-#define IPX_MAX_EPHEMERAL_SOCKET 0x7fff
-
-extern struct list_head ipx_routes;
-extern rwlock_t ipx_routes_lock;
-
-extern struct list_head ipx_interfaces;
-extern struct ipx_interface *ipx_interfaces_head(void);
-extern spinlock_t ipx_interfaces_lock;
-
-extern struct ipx_interface *ipx_primary_net;
-
-extern int ipx_proc_init(void);
-extern void ipx_proc_exit(void);
-
-extern const char *ipx_frame_name(__be16);
-extern const char *ipx_device_name(struct ipx_interface *intrfc);
-
-static __inline__ void ipxitf_hold(struct ipx_interface *intrfc)
-{
- atomic_inc(&intrfc->refcnt);
-}
-
-extern void ipxitf_down(struct ipx_interface *intrfc);
-
-static __inline__ void ipxitf_put(struct ipx_interface *intrfc)
-{
- if (atomic_dec_and_test(&intrfc->refcnt))
- ipxitf_down(intrfc);
-}
-
-static __inline__ void ipxrtr_hold(struct ipx_route *rt)
-{
- atomic_inc(&rt->refcnt);
-}
-
-static __inline__ void ipxrtr_put(struct ipx_route *rt)
-{
- if (atomic_dec_and_test(&rt->refcnt))
- kfree(rt);
-}
-#endif /* _NET_INET_IPX_H_ */
diff --git a/ANDROID_3.4.5/include/net/irda/af_irda.h b/ANDROID_3.4.5/include/net/irda/af_irda.h
deleted file mode 100644
index 0df57493..00000000
--- a/ANDROID_3.4.5/include/net/irda/af_irda.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*********************************************************************
- *
- * Filename: af_irda.h
- * Version: 1.0
- * Description: IrDA sockets declarations
- * Status: Stable
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Tue Dec 9 21:13:12 1997
- * Modified at: Fri Jan 28 13:16:32 2000
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- * Copyright (c) 1998-2000 Dag Brattli, All Rights Reserved.
- * Copyright (c) 2000-2002 Jean Tourrilhes <jt@hpl.hp.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.
- *
- * Neither Dag Brattli nor University of Tromsø admit liability nor
- * provide warranty for any of this software. This material is
- * provided "AS-IS" and at no charge.
- *
- ********************************************************************/
-
-#ifndef AF_IRDA_H
-#define AF_IRDA_H
-
-#include <linux/irda.h>
-#include <net/irda/irda.h>
-#include <net/irda/iriap.h> /* struct iriap_cb */
-#include <net/irda/irias_object.h> /* struct ias_value */
-#include <net/irda/irlmp.h> /* struct lsap_cb */
-#include <net/irda/irttp.h> /* struct tsap_cb */
-#include <net/irda/discovery.h> /* struct discovery_t */
-#include <net/sock.h>
-
-/* IrDA Socket */
-struct irda_sock {
- /* struct sock has to be the first member of irda_sock */
- struct sock sk;
- __u32 saddr; /* my local address */
- __u32 daddr; /* peer address */
-
- struct lsap_cb *lsap; /* LSAP used by Ultra */
- __u8 pid; /* Protocol IP (PID) used by Ultra */
-
- struct tsap_cb *tsap; /* TSAP used by this connection */
- __u8 dtsap_sel; /* remote TSAP address */
- __u8 stsap_sel; /* local TSAP address */
-
- __u32 max_sdu_size_rx;
- __u32 max_sdu_size_tx;
- __u32 max_data_size;
- __u8 max_header_size;
- struct qos_info qos_tx;
-
- __u16_host_order mask; /* Hint bits mask */
- __u16_host_order hints; /* Hint bits */
-
- void *ckey; /* IrLMP client handle */
- void *skey; /* IrLMP service handle */
-
- struct ias_object *ias_obj; /* Our service name + lsap in IAS */
- struct iriap_cb *iriap; /* Used to query remote IAS */
- struct ias_value *ias_result; /* Result of remote IAS query */
-
- hashbin_t *cachelog; /* Result of discovery query */
- __u32 cachedaddr; /* Result of selective discovery query */
-
- int nslots; /* Number of slots to use for discovery */
-
- int errno; /* status of the IAS query */
-
- wait_queue_head_t query_wait; /* Wait for the answer to a query */
- struct timer_list watchdog; /* Timeout for discovery */
-
- LOCAL_FLOW tx_flow;
- LOCAL_FLOW rx_flow;
-};
-
-static inline struct irda_sock *irda_sk(struct sock *sk)
-{
- return (struct irda_sock *)sk;
-}
-
-#endif /* AF_IRDA_H */
diff --git a/ANDROID_3.4.5/include/net/irda/crc.h b/ANDROID_3.4.5/include/net/irda/crc.h
deleted file mode 100644
index f202296d..00000000
--- a/ANDROID_3.4.5/include/net/irda/crc.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*********************************************************************
- *
- * Filename: crc.h
- * Version:
- * Description: CRC routines
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Mon Aug 4 20:40:53 1997
- * Modified at: Sun May 2 20:25:23 1999
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- ********************************************************************/
-
-#ifndef IRDA_CRC_H
-#define IRDA_CRC_H
-
-#include <linux/types.h>
-#include <linux/crc-ccitt.h>
-
-#define INIT_FCS 0xffff /* Initial FCS value */
-#define GOOD_FCS 0xf0b8 /* Good final FCS value */
-
-/* Recompute the FCS with one more character appended. */
-#define irda_fcs(fcs, c) crc_ccitt_byte(fcs, c)
-
-/* Recompute the FCS with len bytes appended. */
-#define irda_calc_crc16(fcs, buf, len) crc_ccitt(fcs, buf, len)
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/irda/discovery.h b/ANDROID_3.4.5/include/net/irda/discovery.h
deleted file mode 100644
index 0ce93398..00000000
--- a/ANDROID_3.4.5/include/net/irda/discovery.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/*********************************************************************
- *
- * Filename: discovery.h
- * Version:
- * Description:
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Tue Apr 6 16:53:53 1999
- * Modified at: Tue Oct 5 10:05:10 1999
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- * Copyright (c) 1999 Dag Brattli, All Rights Reserved.
- * Copyright (c) 2000-2002 Jean Tourrilhes <jt@hpl.hp.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
- *
- ********************************************************************/
-
-#ifndef DISCOVERY_H
-#define DISCOVERY_H
-
-#include <asm/param.h>
-
-#include <net/irda/irda.h>
-#include <net/irda/irqueue.h> /* irda_queue_t */
-#include <net/irda/irlap_event.h> /* LAP_REASON */
-
-#define DISCOVERY_EXPIRE_TIMEOUT (2*sysctl_discovery_timeout*HZ)
-#define DISCOVERY_DEFAULT_SLOTS 0
-
-/*
- * This type is used by the protocols that transmit 16 bits words in
- * little endian format. A little endian machine stores MSB of word in
- * byte[1] and LSB in byte[0]. A big endian machine stores MSB in byte[0]
- * and LSB in byte[1].
- *
- * This structure is used in the code for things that are endian neutral
- * but that fit in a word so that we can manipulate them efficiently.
- * By endian neutral, I mean things that are really an array of bytes,
- * and always used as such, for example the hint bits. Jean II
- */
-typedef union {
- __u16 word;
- __u8 byte[2];
-} __u16_host_order;
-
-/* Types of discovery */
-typedef enum {
- DISCOVERY_LOG, /* What's in our discovery log */
- DISCOVERY_ACTIVE, /* Doing our own discovery on the medium */
- DISCOVERY_PASSIVE, /* Peer doing discovery on the medium */
- EXPIRY_TIMEOUT, /* Entry expired due to timeout */
-} DISCOVERY_MODE;
-
-#define NICKNAME_MAX_LEN 21
-
-/* Basic discovery information about a peer */
-typedef struct irda_device_info discinfo_t; /* linux/irda.h */
-
-/*
- * The DISCOVERY structure is used for both discovery requests and responses
- */
-typedef struct discovery_t {
- irda_queue_t q; /* Must be first! */
-
- discinfo_t data; /* Basic discovery information */
- int name_len; /* Length of nickname */
-
- LAP_REASON condition; /* More info about the discovery */
- int gen_addr_bit; /* Need to generate a new device
- * address? */
- int nslots; /* Number of slots to use when
- * discovering */
- unsigned long timestamp; /* Last time discovered */
- unsigned long firststamp; /* First time discovered */
-} discovery_t;
-
-void irlmp_add_discovery(hashbin_t *cachelog, discovery_t *discovery);
-void irlmp_add_discovery_log(hashbin_t *cachelog, hashbin_t *log);
-void irlmp_expire_discoveries(hashbin_t *log, __u32 saddr, int force);
-struct irda_device_info *irlmp_copy_discoveries(hashbin_t *log, int *pn,
- __u16 mask, int old_entries);
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/irda/ircomm_core.h b/ANDROID_3.4.5/include/net/irda/ircomm_core.h
deleted file mode 100644
index 69b610ac..00000000
--- a/ANDROID_3.4.5/include/net/irda/ircomm_core.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/*********************************************************************
- *
- * Filename: ircomm_core.h
- * Version:
- * Description:
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Wed Jun 9 08:58:43 1999
- * Modified at: Mon Dec 13 11:52:29 1999
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- * Copyright (c) 1999 Dag Brattli, 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
- *
- ********************************************************************/
-
-#ifndef IRCOMM_CORE_H
-#define IRCOMM_CORE_H
-
-#include <net/irda/irda.h>
-#include <net/irda/irqueue.h>
-#include <net/irda/ircomm_event.h>
-
-#define IRCOMM_MAGIC 0x98347298
-#define IRCOMM_HEADER_SIZE 1
-
-struct ircomm_cb; /* Forward decl. */
-
-/*
- * A small call-table, so we don't have to check the service-type whenever
- * we want to do something
- */
-typedef struct {
- int (*data_request)(struct ircomm_cb *, struct sk_buff *, int clen);
- int (*connect_request)(struct ircomm_cb *, struct sk_buff *,
- struct ircomm_info *);
- int (*connect_response)(struct ircomm_cb *, struct sk_buff *);
- int (*disconnect_request)(struct ircomm_cb *, struct sk_buff *,
- struct ircomm_info *);
-} call_t;
-
-struct ircomm_cb {
- irda_queue_t queue;
- magic_t magic;
-
- notify_t notify;
- call_t issue;
-
- int state;
- int line; /* Which TTY line we are using */
-
- struct tsap_cb *tsap;
- struct lsap_cb *lsap;
-
- __u8 dlsap_sel; /* Destination LSAP/TSAP selector */
- __u8 slsap_sel; /* Source LSAP/TSAP selector */
-
- __u32 saddr; /* Source device address (link we are using) */
- __u32 daddr; /* Destination device address */
-
- int max_header_size; /* Header space we must reserve for each frame */
- int max_data_size; /* The amount of data we can fill in each frame */
-
- LOCAL_FLOW flow_status; /* Used by ircomm_lmp */
- int pkt_count; /* Number of frames we have sent to IrLAP */
-
- __u8 service_type;
-};
-
-extern hashbin_t *ircomm;
-
-struct ircomm_cb *ircomm_open(notify_t *notify, __u8 service_type, int line);
-int ircomm_close(struct ircomm_cb *self);
-
-int ircomm_data_request(struct ircomm_cb *self, struct sk_buff *skb);
-void ircomm_data_indication(struct ircomm_cb *self, struct sk_buff *skb);
-void ircomm_process_data(struct ircomm_cb *self, struct sk_buff *skb);
-int ircomm_control_request(struct ircomm_cb *self, struct sk_buff *skb);
-int ircomm_connect_request(struct ircomm_cb *self, __u8 dlsap_sel,
- __u32 saddr, __u32 daddr, struct sk_buff *skb,
- __u8 service_type);
-void ircomm_connect_indication(struct ircomm_cb *self, struct sk_buff *skb,
- struct ircomm_info *info);
-void ircomm_connect_confirm(struct ircomm_cb *self, struct sk_buff *skb,
- struct ircomm_info *info);
-int ircomm_connect_response(struct ircomm_cb *self, struct sk_buff *userdata);
-int ircomm_disconnect_request(struct ircomm_cb *self, struct sk_buff *userdata);
-void ircomm_disconnect_indication(struct ircomm_cb *self, struct sk_buff *skb,
- struct ircomm_info *info);
-void ircomm_flow_request(struct ircomm_cb *self, LOCAL_FLOW flow);
-
-#define ircomm_is_connected(self) (self->state == IRCOMM_CONN)
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/irda/ircomm_event.h b/ANDROID_3.4.5/include/net/irda/ircomm_event.h
deleted file mode 100644
index bc0c6f31..00000000
--- a/ANDROID_3.4.5/include/net/irda/ircomm_event.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/*********************************************************************
- *
- * Filename: ircomm_event.h
- * Version:
- * Description:
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Sun Jun 6 23:51:13 1999
- * Modified at: Thu Jun 10 08:36:25 1999
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- * Copyright (c) 1999 Dag Brattli, 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
- *
- ********************************************************************/
-
-#ifndef IRCOMM_EVENT_H
-#define IRCOMM_EVENT_H
-
-#include <net/irda/irmod.h>
-
-typedef enum {
- IRCOMM_IDLE,
- IRCOMM_WAITI,
- IRCOMM_WAITR,
- IRCOMM_CONN,
-} IRCOMM_STATE;
-
-/* IrCOMM Events */
-typedef enum {
- IRCOMM_CONNECT_REQUEST,
- IRCOMM_CONNECT_RESPONSE,
- IRCOMM_TTP_CONNECT_INDICATION,
- IRCOMM_LMP_CONNECT_INDICATION,
- IRCOMM_TTP_CONNECT_CONFIRM,
- IRCOMM_LMP_CONNECT_CONFIRM,
-
- IRCOMM_LMP_DISCONNECT_INDICATION,
- IRCOMM_TTP_DISCONNECT_INDICATION,
- IRCOMM_DISCONNECT_REQUEST,
-
- IRCOMM_TTP_DATA_INDICATION,
- IRCOMM_LMP_DATA_INDICATION,
- IRCOMM_DATA_REQUEST,
- IRCOMM_CONTROL_REQUEST,
- IRCOMM_CONTROL_INDICATION,
-} IRCOMM_EVENT;
-
-/*
- * Used for passing information through the state-machine
- */
-struct ircomm_info {
- __u32 saddr; /* Source device address */
- __u32 daddr; /* Destination device address */
- __u8 dlsap_sel;
- LM_REASON reason; /* Reason for disconnect */
- __u32 max_data_size;
- __u32 max_header_size;
-
- struct qos_info *qos;
-};
-
-extern const char *const ircomm_state[];
-
-struct ircomm_cb; /* Forward decl. */
-
-int ircomm_do_event(struct ircomm_cb *self, IRCOMM_EVENT event,
- struct sk_buff *skb, struct ircomm_info *info);
-void ircomm_next_state(struct ircomm_cb *self, IRCOMM_STATE state);
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/irda/ircomm_lmp.h b/ANDROID_3.4.5/include/net/irda/ircomm_lmp.h
deleted file mode 100644
index ae02106b..00000000
--- a/ANDROID_3.4.5/include/net/irda/ircomm_lmp.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*********************************************************************
- *
- * Filename: ircomm_lmp.h
- * Version:
- * Description:
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Wed Jun 9 10:06:07 1999
- * Modified at: Fri Aug 13 07:32:32 1999
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- * Copyright (c) 1999 Dag Brattli, 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
- *
- ********************************************************************/
-
-#ifndef IRCOMM_LMP_H
-#define IRCOMM_LMP_H
-
-#include <net/irda/ircomm_core.h>
-
-int ircomm_open_lsap(struct ircomm_cb *self);
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/irda/ircomm_param.h b/ANDROID_3.4.5/include/net/irda/ircomm_param.h
deleted file mode 100644
index e6678800..00000000
--- a/ANDROID_3.4.5/include/net/irda/ircomm_param.h
+++ /dev/null
@@ -1,149 +0,0 @@
-/*********************************************************************
- *
- * Filename: ircomm_param.h
- * Version: 1.0
- * Description: Parameter handling for the IrCOMM protocol
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Mon Jun 7 08:47:28 1999
- * Modified at: Wed Aug 25 13:46:33 1999
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- * Copyright (c) 1999 Dag Brattli, 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
- *
- ********************************************************************/
-
-#ifndef IRCOMM_PARAMS_H
-#define IRCOMM_PARAMS_H
-
-#include <net/irda/parameters.h>
-
-/* Parameters common to all service types */
-#define IRCOMM_SERVICE_TYPE 0x00
-#define IRCOMM_PORT_TYPE 0x01 /* Only used in LM-IAS */
-#define IRCOMM_PORT_NAME 0x02 /* Only used in LM-IAS */
-
-/* Parameters for both 3 wire and 9 wire */
-#define IRCOMM_DATA_RATE 0x10
-#define IRCOMM_DATA_FORMAT 0x11
-#define IRCOMM_FLOW_CONTROL 0x12
-#define IRCOMM_XON_XOFF 0x13
-#define IRCOMM_ENQ_ACK 0x14
-#define IRCOMM_LINE_STATUS 0x15
-#define IRCOMM_BREAK 0x16
-
-/* Parameters for 9 wire */
-#define IRCOMM_DTE 0x20
-#define IRCOMM_DCE 0x21
-#define IRCOMM_POLL 0x22
-
-/* Service type (details) */
-#define IRCOMM_3_WIRE_RAW 0x01
-#define IRCOMM_3_WIRE 0x02
-#define IRCOMM_9_WIRE 0x04
-#define IRCOMM_CENTRONICS 0x08
-
-/* Port type (details) */
-#define IRCOMM_SERIAL 0x00
-#define IRCOMM_PARALLEL 0x01
-
-/* Data format (details) */
-#define IRCOMM_WSIZE_5 0x00
-#define IRCOMM_WSIZE_6 0x01
-#define IRCOMM_WSIZE_7 0x02
-#define IRCOMM_WSIZE_8 0x03
-
-#define IRCOMM_1_STOP_BIT 0x00
-#define IRCOMM_2_STOP_BIT 0x04 /* 1.5 if char len 5 */
-
-#define IRCOMM_PARITY_DISABLE 0x00
-#define IRCOMM_PARITY_ENABLE 0x08
-
-#define IRCOMM_PARITY_ODD 0x00
-#define IRCOMM_PARITY_EVEN 0x10
-#define IRCOMM_PARITY_MARK 0x20
-#define IRCOMM_PARITY_SPACE 0x30
-
-/* Flow control */
-#define IRCOMM_XON_XOFF_IN 0x01
-#define IRCOMM_XON_XOFF_OUT 0x02
-#define IRCOMM_RTS_CTS_IN 0x04
-#define IRCOMM_RTS_CTS_OUT 0x08
-#define IRCOMM_DSR_DTR_IN 0x10
-#define IRCOMM_DSR_DTR_OUT 0x20
-#define IRCOMM_ENQ_ACK_IN 0x40
-#define IRCOMM_ENQ_ACK_OUT 0x80
-
-/* Line status */
-#define IRCOMM_OVERRUN_ERROR 0x02
-#define IRCOMM_PARITY_ERROR 0x04
-#define IRCOMM_FRAMING_ERROR 0x08
-
-/* DTE (Data terminal equipment) line settings */
-#define IRCOMM_DELTA_DTR 0x01
-#define IRCOMM_DELTA_RTS 0x02
-#define IRCOMM_DTR 0x04
-#define IRCOMM_RTS 0x08
-
-/* DCE (Data communications equipment) line settings */
-#define IRCOMM_DELTA_CTS 0x01 /* Clear to send has changed */
-#define IRCOMM_DELTA_DSR 0x02 /* Data set ready has changed */
-#define IRCOMM_DELTA_RI 0x04 /* Ring indicator has changed */
-#define IRCOMM_DELTA_CD 0x08 /* Carrier detect has changed */
-#define IRCOMM_CTS 0x10 /* Clear to send is high */
-#define IRCOMM_DSR 0x20 /* Data set ready is high */
-#define IRCOMM_RI 0x40 /* Ring indicator is high */
-#define IRCOMM_CD 0x80 /* Carrier detect is high */
-#define IRCOMM_DCE_DELTA_ANY 0x0f
-
-/*
- * Parameter state
- */
-struct ircomm_params {
- /* General control params */
- __u8 service_type;
- __u8 port_type;
- char port_name[32];
-
- /* Control params for 3- and 9-wire service type */
- __u32 data_rate; /* Data rate in bps */
- __u8 data_format;
- __u8 flow_control;
- char xonxoff[2];
- char enqack[2];
- __u8 line_status;
- __u8 _break;
-
- __u8 null_modem;
-
- /* Control params for 9-wire service type */
- __u8 dte;
- __u8 dce;
- __u8 poll;
-
- /* Control params for Centronics service type */
-};
-
-struct ircomm_tty_cb; /* Forward decl. */
-
-int ircomm_param_request(struct ircomm_tty_cb *self, __u8 pi, int flush);
-
-extern pi_param_info_t ircomm_param_info;
-
-#endif /* IRCOMM_PARAMS_H */
-
diff --git a/ANDROID_3.4.5/include/net/irda/ircomm_ttp.h b/ANDROID_3.4.5/include/net/irda/ircomm_ttp.h
deleted file mode 100644
index 403081ed..00000000
--- a/ANDROID_3.4.5/include/net/irda/ircomm_ttp.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*********************************************************************
- *
- * Filename: ircomm_ttp.h
- * Version:
- * Description:
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Wed Jun 9 10:06:07 1999
- * Modified at: Fri Aug 13 07:32:22 1999
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- * Copyright (c) 1999 Dag Brattli, 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
- *
- ********************************************************************/
-
-#ifndef IRCOMM_TTP_H
-#define IRCOMM_TTP_H
-
-#include <net/irda/ircomm_core.h>
-
-int ircomm_open_tsap(struct ircomm_cb *self);
-
-#endif
-
diff --git a/ANDROID_3.4.5/include/net/irda/ircomm_tty.h b/ANDROID_3.4.5/include/net/irda/ircomm_tty.h
deleted file mode 100644
index 59ba38bc..00000000
--- a/ANDROID_3.4.5/include/net/irda/ircomm_tty.h
+++ /dev/null
@@ -1,138 +0,0 @@
-/*********************************************************************
- *
- * Filename: ircomm_tty.h
- * Version:
- * Description:
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Sun Jun 6 23:24:22 1999
- * Modified at: Fri Jan 28 13:16:57 2000
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- * Copyright (c) 1999-2000 Dag Brattli, 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
- *
- ********************************************************************/
-
-#ifndef IRCOMM_TTY_H
-#define IRCOMM_TTY_H
-
-#include <linux/serial.h>
-#include <linux/termios.h>
-#include <linux/timer.h>
-#include <linux/tty.h> /* struct tty_struct */
-
-#include <net/irda/irias_object.h>
-#include <net/irda/ircomm_core.h>
-#include <net/irda/ircomm_param.h>
-
-#define IRCOMM_TTY_PORTS 32
-#define IRCOMM_TTY_MAGIC 0x3432
-#define IRCOMM_TTY_MAJOR 161
-#define IRCOMM_TTY_MINOR 0
-
-/* This is used as an initial value to max_header_size before the proper
- * value is filled in (5 for ttp, 4 for lmp). This allow us to detect
- * the state of the underlying connection. - Jean II */
-#define IRCOMM_TTY_HDR_UNINITIALISED 16
-/* Same for payload size. See qos.c for the smallest max data size */
-#define IRCOMM_TTY_DATA_UNINITIALISED (64 - IRCOMM_TTY_HDR_UNINITIALISED)
-
-/* Those are really defined in include/linux/serial.h - Jean II */
-#define ASYNC_B_INITIALIZED 31 /* Serial port was initialized */
-#define ASYNC_B_NORMAL_ACTIVE 29 /* Normal device is active */
-#define ASYNC_B_CLOSING 27 /* Serial port is closing */
-
-/*
- * IrCOMM TTY driver state
- */
-struct ircomm_tty_cb {
- irda_queue_t queue; /* Must be first */
- magic_t magic;
-
- int state; /* Connect state */
-
- struct tty_struct *tty;
- struct ircomm_cb *ircomm; /* IrCOMM layer instance */
-
- struct sk_buff *tx_skb; /* Transmit buffer */
- struct sk_buff *ctrl_skb; /* Control data buffer */
-
- /* Parameters */
- struct ircomm_params settings;
-
- __u8 service_type; /* The service that we support */
- int client; /* True if we are a client */
- LOCAL_FLOW flow; /* IrTTP flow status */
-
- int line;
- unsigned long flags;
-
- __u8 dlsap_sel;
- __u8 slsap_sel;
-
- __u32 saddr;
- __u32 daddr;
-
- __u32 max_data_size; /* Max data we can transmit in one packet */
- __u32 max_header_size; /* The amount of header space we must reserve */
- __u32 tx_data_size; /* Max data size of current tx_skb */
-
- struct iriap_cb *iriap; /* Instance used for querying remote IAS */
- struct ias_object* obj;
- void *skey;
- void *ckey;
-
- wait_queue_head_t open_wait;
- wait_queue_head_t close_wait;
- struct timer_list watchdog_timer;
- struct work_struct tqueue;
-
- unsigned short close_delay;
- unsigned short closing_wait; /* time to wait before closing */
-
- int open_count;
- int blocked_open; /* # of blocked opens */
-
- /* Protect concurent access to :
- * o self->open_count
- * o self->ctrl_skb
- * o self->tx_skb
- * Maybe other things may gain to be protected as well...
- * Jean II */
- spinlock_t spinlock;
-};
-
-void ircomm_tty_start(struct tty_struct *tty);
-void ircomm_tty_check_modem_status(struct ircomm_tty_cb *self);
-
-extern int ircomm_tty_tiocmget(struct tty_struct *tty);
-extern int ircomm_tty_tiocmset(struct tty_struct *tty,
- unsigned int set, unsigned int clear);
-extern int ircomm_tty_ioctl(struct tty_struct *tty,
- unsigned int cmd, unsigned long arg);
-extern void ircomm_tty_set_termios(struct tty_struct *tty,
- struct ktermios *old_termios);
-
-#endif
-
-
-
-
-
-
-
diff --git a/ANDROID_3.4.5/include/net/irda/ircomm_tty_attach.h b/ANDROID_3.4.5/include/net/irda/ircomm_tty_attach.h
deleted file mode 100644
index 0a63bbb9..00000000
--- a/ANDROID_3.4.5/include/net/irda/ircomm_tty_attach.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*********************************************************************
- *
- * Filename: ircomm_tty_attach.h
- * Version:
- * Description:
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Wed Jun 9 15:55:18 1999
- * Modified at: Fri Dec 10 21:04:55 1999
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- * Copyright (c) 1999 Dag Brattli, 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
- *
- ********************************************************************/
-
-#ifndef IRCOMM_TTY_ATTACH_H
-#define IRCOMM_TTY_ATTACH_H
-
-#include <net/irda/ircomm_tty.h>
-
-typedef enum {
- IRCOMM_TTY_IDLE,
- IRCOMM_TTY_SEARCH,
- IRCOMM_TTY_QUERY_PARAMETERS,
- IRCOMM_TTY_QUERY_LSAP_SEL,
- IRCOMM_TTY_SETUP,
- IRCOMM_TTY_READY,
-} IRCOMM_TTY_STATE;
-
-/* IrCOMM TTY Events */
-typedef enum {
- IRCOMM_TTY_ATTACH_CABLE,
- IRCOMM_TTY_DETACH_CABLE,
- IRCOMM_TTY_DATA_REQUEST,
- IRCOMM_TTY_DATA_INDICATION,
- IRCOMM_TTY_DISCOVERY_REQUEST,
- IRCOMM_TTY_DISCOVERY_INDICATION,
- IRCOMM_TTY_CONNECT_CONFIRM,
- IRCOMM_TTY_CONNECT_INDICATION,
- IRCOMM_TTY_DISCONNECT_REQUEST,
- IRCOMM_TTY_DISCONNECT_INDICATION,
- IRCOMM_TTY_WD_TIMER_EXPIRED,
- IRCOMM_TTY_GOT_PARAMETERS,
- IRCOMM_TTY_GOT_LSAPSEL,
-} IRCOMM_TTY_EVENT;
-
-/* Used for passing information through the state-machine */
-struct ircomm_tty_info {
- __u32 saddr; /* Source device address */
- __u32 daddr; /* Destination device address */
- __u8 dlsap_sel;
-};
-
-extern const char *const ircomm_state[];
-extern const char *const ircomm_tty_state[];
-
-int ircomm_tty_do_event(struct ircomm_tty_cb *self, IRCOMM_TTY_EVENT event,
- struct sk_buff *skb, struct ircomm_tty_info *info);
-
-
-int ircomm_tty_attach_cable(struct ircomm_tty_cb *self);
-void ircomm_tty_detach_cable(struct ircomm_tty_cb *self);
-void ircomm_tty_connect_confirm(void *instance, void *sap,
- struct qos_info *qos,
- __u32 max_sdu_size,
- __u8 max_header_size,
- struct sk_buff *skb);
-void ircomm_tty_disconnect_indication(void *instance, void *sap,
- LM_REASON reason,
- struct sk_buff *skb);
-void ircomm_tty_connect_indication(void *instance, void *sap,
- struct qos_info *qos,
- __u32 max_sdu_size,
- __u8 max_header_size,
- struct sk_buff *skb);
-int ircomm_tty_send_initial_parameters(struct ircomm_tty_cb *self);
-void ircomm_tty_link_established(struct ircomm_tty_cb *self);
-
-#endif /* IRCOMM_TTY_ATTACH_H */
diff --git a/ANDROID_3.4.5/include/net/irda/irda.h b/ANDROID_3.4.5/include/net/irda/irda.h
deleted file mode 100644
index 3bed61d3..00000000
--- a/ANDROID_3.4.5/include/net/irda/irda.h
+++ /dev/null
@@ -1,131 +0,0 @@
-/*********************************************************************
- *
- * Filename: irda.h
- * Version: 1.0
- * Description: IrDA common include file for kernel internal use
- * Status: Stable
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Tue Dec 9 21:13:12 1997
- * Modified at: Fri Jan 28 13:16:32 2000
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- * Copyright (c) 1998-2000 Dag Brattli, All Rights Reserved.
- * Copyright (c) 2000-2002 Jean Tourrilhes <jt@hpl.hp.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.
- *
- * Neither Dag Brattli nor University of Tromsø admit liability nor
- * provide warranty for any of this software. This material is
- * provided "AS-IS" and at no charge.
- *
- ********************************************************************/
-
-#ifndef NET_IRDA_H
-#define NET_IRDA_H
-
-#include <linux/skbuff.h> /* struct sk_buff */
-#include <linux/kernel.h>
-#include <linux/if.h> /* sa_family_t in <linux/irda.h> */
-#include <linux/irda.h>
-
-typedef __u32 magic_t;
-
-#ifndef TRUE
-#define TRUE 1
-#endif
-
-#ifndef FALSE
-#define FALSE 0
-#endif
-
-/* Hack to do small backoff when setting media busy in IrLAP */
-#ifndef SMALL
-#define SMALL 5
-#endif
-
-#ifndef IRDA_MIN /* Lets not mix this MIN with other header files */
-#define IRDA_MIN(a, b) (((a) < (b)) ? (a) : (b))
-#endif
-
-#ifndef IRDA_ALIGN
-# define IRDA_ALIGN __attribute__((aligned))
-#endif
-
-#ifdef CONFIG_IRDA_DEBUG
-
-extern unsigned int irda_debug;
-
-/* use 0 for production, 1 for verification, >2 for debug */
-#define IRDA_DEBUG_LEVEL 0
-
-#define IRDA_DEBUG(n, args...) \
-do { if (irda_debug >= (n)) \
- printk(KERN_DEBUG args); \
-} while (0)
-#define IRDA_ASSERT(expr, func) \
-do { if(!(expr)) { \
- printk( "Assertion failed! %s:%s:%d %s\n", \
- __FILE__,__func__,__LINE__,(#expr) ); \
- func } } while (0)
-#define IRDA_ASSERT_LABEL(label) label
-#else
-#define IRDA_DEBUG(n, args...) do { } while (0)
-#define IRDA_ASSERT(expr, func) do { (void)(expr); } while (0)
-#define IRDA_ASSERT_LABEL(label)
-#endif /* CONFIG_IRDA_DEBUG */
-
-#define IRDA_WARNING(args...) do { if (net_ratelimit()) printk(KERN_WARNING args); } while (0)
-#define IRDA_MESSAGE(args...) do { if (net_ratelimit()) printk(KERN_INFO args); } while (0)
-#define IRDA_ERROR(args...) do { if (net_ratelimit()) printk(KERN_ERR args); } while (0)
-
-/*
- * Magic numbers used by Linux-IrDA. Random numbers which must be unique to
- * give the best protection
- */
-
-#define IRTTY_MAGIC 0x2357
-#define LAP_MAGIC 0x1357
-#define LMP_MAGIC 0x4321
-#define LMP_LSAP_MAGIC 0x69333
-#define LMP_LAP_MAGIC 0x3432
-#define IRDA_DEVICE_MAGIC 0x63454
-#define IAS_MAGIC 0x007
-#define TTP_MAGIC 0x241169
-#define TTP_TSAP_MAGIC 0x4345
-#define IROBEX_MAGIC 0x341324
-#define HB_MAGIC 0x64534
-#define IRLAN_MAGIC 0x754
-#define IAS_OBJECT_MAGIC 0x34234
-#define IAS_ATTRIB_MAGIC 0x45232
-#define IRDA_TASK_MAGIC 0x38423
-
-#define IAS_DEVICE_ID 0x0000 /* Defined by IrDA, IrLMP section 4.1 (page 68) */
-#define IAS_PNP_ID 0xd342
-#define IAS_OBEX_ID 0x34323
-#define IAS_IRLAN_ID 0x34234
-#define IAS_IRCOMM_ID 0x2343
-#define IAS_IRLPT_ID 0x9876
-
-struct net_device;
-struct packet_type;
-
-extern void irda_proc_register(void);
-extern void irda_proc_unregister(void);
-
-extern int irda_sysctl_register(void);
-extern void irda_sysctl_unregister(void);
-
-extern int irsock_init(void);
-extern void irsock_cleanup(void);
-
-extern int irda_nl_register(void);
-extern void irda_nl_unregister(void);
-
-extern int irlap_driver_rcv(struct sk_buff *skb, struct net_device *dev,
- struct packet_type *ptype,
- struct net_device *orig_dev);
-
-#endif /* NET_IRDA_H */
diff --git a/ANDROID_3.4.5/include/net/irda/irda_device.h b/ANDROID_3.4.5/include/net/irda/irda_device.h
deleted file mode 100644
index 94c852d4..00000000
--- a/ANDROID_3.4.5/include/net/irda/irda_device.h
+++ /dev/null
@@ -1,287 +0,0 @@
-/*********************************************************************
- *
- * Filename: irda_device.h
- * Version: 0.9
- * Description: Contains various declarations used by the drivers
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Tue Apr 14 12:41:42 1998
- * Modified at: Mon Mar 20 09:08:57 2000
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- * Copyright (c) 1999-2000 Dag Brattli, All Rights Reserved.
- * Copyright (c) 1998 Thomas Davis, <ratbert@radiks.net>,
- * Copyright (c) 2000-2002 Jean Tourrilhes <jt@hpl.hp.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
- *
- ********************************************************************/
-
-/*
- * This header contains all the IrDA definitions a driver really
- * needs, and therefore the driver should not need to include
- * any other IrDA headers - Jean II
- */
-
-#ifndef IRDA_DEVICE_H
-#define IRDA_DEVICE_H
-
-#include <linux/tty.h>
-#include <linux/netdevice.h>
-#include <linux/spinlock.h>
-#include <linux/skbuff.h> /* struct sk_buff */
-#include <linux/irda.h>
-#include <linux/types.h>
-
-#include <net/pkt_sched.h>
-#include <net/irda/irda.h>
-#include <net/irda/qos.h> /* struct qos_info */
-#include <net/irda/irqueue.h> /* irda_queue_t */
-
-/* A few forward declarations (to make compiler happy) */
-struct irlap_cb;
-
-/* Some non-standard interface flags (should not conflict with any in if.h) */
-#define IFF_SIR 0x0001 /* Supports SIR speeds */
-#define IFF_MIR 0x0002 /* Supports MIR speeds */
-#define IFF_FIR 0x0004 /* Supports FIR speeds */
-#define IFF_VFIR 0x0008 /* Supports VFIR speeds */
-#define IFF_PIO 0x0010 /* Supports PIO transfer of data */
-#define IFF_DMA 0x0020 /* Supports DMA transfer of data */
-#define IFF_SHM 0x0040 /* Supports shared memory data transfers */
-#define IFF_DONGLE 0x0080 /* Interface has a dongle attached */
-#define IFF_AIR 0x0100 /* Supports Advanced IR (AIR) standards */
-
-#define IO_XMIT 0x01
-#define IO_RECV 0x02
-
-typedef enum {
- IRDA_IRLAP, /* IrDA mode, and deliver to IrLAP */
- IRDA_RAW, /* IrDA mode */
- SHARP_ASK,
- TV_REMOTE, /* Also known as Consumer Electronics IR */
-} INFRARED_MODE;
-
-typedef enum {
- IRDA_TASK_INIT, /* All tasks are initialized with this state */
- IRDA_TASK_DONE, /* Signals that the task is finished */
- IRDA_TASK_WAIT,
- IRDA_TASK_WAIT1,
- IRDA_TASK_WAIT2,
- IRDA_TASK_WAIT3,
- IRDA_TASK_CHILD_INIT, /* Initializing child task */
- IRDA_TASK_CHILD_WAIT, /* Waiting for child task to finish */
- IRDA_TASK_CHILD_DONE /* Child task is finished */
-} IRDA_TASK_STATE;
-
-struct irda_task;
-typedef int (*IRDA_TASK_CALLBACK) (struct irda_task *task);
-
-struct irda_task {
- irda_queue_t q;
- magic_t magic;
-
- IRDA_TASK_STATE state;
- IRDA_TASK_CALLBACK function;
- IRDA_TASK_CALLBACK finished;
-
- struct irda_task *parent;
- struct timer_list timer;
-
- void *instance; /* Instance being called */
- void *param; /* Parameter to be used by instance */
-};
-
-/* Dongle info */
-struct dongle_reg;
-typedef struct {
- struct dongle_reg *issue; /* Registration info */
- struct net_device *dev; /* Device we are attached to */
- struct irda_task *speed_task; /* Task handling speed change */
- struct irda_task *reset_task; /* Task handling reset */
- __u32 speed; /* Current speed */
-
- /* Callbacks to the IrDA device driver */
- int (*set_mode)(struct net_device *, int mode);
- int (*read)(struct net_device *dev, __u8 *buf, int len);
- int (*write)(struct net_device *dev, __u8 *buf, int len);
- int (*set_dtr_rts)(struct net_device *dev, int dtr, int rts);
-} dongle_t;
-
-/* Dongle registration info */
-struct dongle_reg {
- irda_queue_t q; /* Must be first */
- IRDA_DONGLE type;
-
- void (*open)(dongle_t *dongle, struct qos_info *qos);
- void (*close)(dongle_t *dongle);
- int (*reset)(struct irda_task *task);
- int (*change_speed)(struct irda_task *task);
- struct module *owner;
-};
-
-/*
- * Per-packet information we need to hide inside sk_buff
- * (must not exceed 48 bytes, check with struct sk_buff)
- * The default_qdisc_pad field is a temporary hack.
- */
-struct irda_skb_cb {
- unsigned int default_qdisc_pad;
- magic_t magic; /* Be sure that we can trust the information */
- __u32 next_speed; /* The Speed to be set *after* this frame */
- __u16 mtt; /* Minimum turn around time */
- __u16 xbofs; /* Number of xbofs required, used by SIR mode */
- __u16 next_xbofs; /* Number of xbofs required *after* this frame */
- void *context; /* May be used by drivers */
- void (*destructor)(struct sk_buff *skb); /* Used for flow control */
- __u16 xbofs_delay; /* Number of xbofs used for generating the mtt */
- __u8 line; /* Used by IrCOMM in IrLPT mode */
-};
-
-/* Chip specific info */
-typedef struct {
- int cfg_base; /* Config register IO base */
- int sir_base; /* SIR IO base */
- int fir_base; /* FIR IO base */
- int mem_base; /* Shared memory base */
- int sir_ext; /* Length of SIR iobase */
- int fir_ext; /* Length of FIR iobase */
- int irq, irq2; /* Interrupts used */
- int dma, dma2; /* DMA channel(s) used */
- int fifo_size; /* FIFO size */
- int irqflags; /* interrupt flags (ie, IRQF_SHARED|IRQF_DISABLED) */
- int direction; /* Link direction, used by some FIR drivers */
- int enabled; /* Powered on? */
- int suspended; /* Suspended by APM */
- __u32 speed; /* Currently used speed */
- __u32 new_speed; /* Speed we must change to when Tx is finished */
- int dongle_id; /* Dongle or transceiver currently used */
-} chipio_t;
-
-/* IO buffer specific info (inspired by struct sk_buff) */
-typedef struct {
- int state; /* Receiving state (transmit state not used) */
- int in_frame; /* True if receiving frame */
-
- __u8 *head; /* start of buffer */
- __u8 *data; /* start of data in buffer */
-
- int len; /* current length of data */
- int truesize; /* total allocated size of buffer */
- __u16 fcs;
-
- struct sk_buff *skb; /* ZeroCopy Rx in async_unwrap_char() */
-} iobuff_t;
-
-/* Maximum SIR frame (skb) that we expect to receive *unwrapped*.
- * Max LAP MTU (I field) is 2048 bytes max (IrLAP 1.1, chapt 6.6.5, p40).
- * Max LAP header is 2 bytes (for now).
- * Max CRC is 2 bytes at SIR, 4 bytes at FIR.
- * Need 1 byte for skb_reserve() to align IP header for IrLAN.
- * Add a few extra bytes just to be safe (buffer is power of two anyway)
- * Jean II */
-#define IRDA_SKB_MAX_MTU 2064
-/* Maximum SIR frame that we expect to send, wrapped (i.e. with XBOFS
- * and escaped characters on top of above). */
-#define IRDA_SIR_MAX_FRAME 4269
-
-/* The SIR unwrapper async_unwrap_char() will use a Rx-copy-break mechanism
- * when using the optional ZeroCopy Rx, where only small frames are memcpy
- * to a smaller skb to save memory. This is the threshold under which copy
- * will happen (and over which it won't happen).
- * Some FIR drivers may use this #define as well...
- * This is the same value as various Ethernet drivers. - Jean II */
-#define IRDA_RX_COPY_THRESHOLD 256
-
-/* Function prototypes */
-int irda_device_init(void);
-void irda_device_cleanup(void);
-
-/* IrLAP entry points used by the drivers.
- * We declare them here to avoid the driver pulling a whole bunch stack
- * headers they don't really need - Jean II */
-struct irlap_cb *irlap_open(struct net_device *dev, struct qos_info *qos,
- const char *hw_name);
-void irlap_close(struct irlap_cb *self);
-
-/* Interface to be uses by IrLAP */
-void irda_device_set_media_busy(struct net_device *dev, int status);
-int irda_device_is_media_busy(struct net_device *dev);
-int irda_device_is_receiving(struct net_device *dev);
-
-/* Interface for internal use */
-static inline int irda_device_txqueue_empty(const struct net_device *dev)
-{
- return qdisc_all_tx_empty(dev);
-}
-int irda_device_set_raw_mode(struct net_device* self, int status);
-struct net_device *alloc_irdadev(int sizeof_priv);
-
-void irda_setup_dma(int channel, dma_addr_t buffer, int count, int mode);
-
-/*
- * Function irda_get_mtt (skb)
- *
- * Utility function for getting the minimum turnaround time out of
- * the skb, where it has been hidden in the cb field.
- */
-static inline __u16 irda_get_mtt(const struct sk_buff *skb)
-{
- const struct irda_skb_cb *cb = (const struct irda_skb_cb *) skb->cb;
- return (cb->magic == LAP_MAGIC) ? cb->mtt : 10000;
-}
-
-/*
- * Function irda_get_next_speed (skb)
- *
- * Extract the speed that should be set *after* this frame from the skb
- *
- * Note : return -1 for user space frames
- */
-static inline __u32 irda_get_next_speed(const struct sk_buff *skb)
-{
- const struct irda_skb_cb *cb = (const struct irda_skb_cb *) skb->cb;
- return (cb->magic == LAP_MAGIC) ? cb->next_speed : -1;
-}
-
-/*
- * Function irda_get_next_xbofs (skb)
- *
- * Extract the xbofs that should be set for this frame from the skb
- *
- * Note : default to 10 for user space frames
- */
-static inline __u16 irda_get_xbofs(const struct sk_buff *skb)
-{
- const struct irda_skb_cb *cb = (const struct irda_skb_cb *) skb->cb;
- return (cb->magic == LAP_MAGIC) ? cb->xbofs : 10;
-}
-
-/*
- * Function irda_get_next_xbofs (skb)
- *
- * Extract the xbofs that should be set *after* this frame from the skb
- *
- * Note : return -1 for user space frames
- */
-static inline __u16 irda_get_next_xbofs(const struct sk_buff *skb)
-{
- const struct irda_skb_cb *cb = (const struct irda_skb_cb *) skb->cb;
- return (cb->magic == LAP_MAGIC) ? cb->next_xbofs : -1;
-}
-#endif /* IRDA_DEVICE_H */
-
-
diff --git a/ANDROID_3.4.5/include/net/irda/iriap.h b/ANDROID_3.4.5/include/net/irda/iriap.h
deleted file mode 100644
index fcc89649..00000000
--- a/ANDROID_3.4.5/include/net/irda/iriap.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/*********************************************************************
- *
- * Filename: iriap.h
- * Version: 0.5
- * Description: Information Access Protocol (IAP)
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Thu Aug 21 00:02:07 1997
- * Modified at: Sat Dec 25 16:42:09 1999
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- * Copyright (c) 1997-1999 Dag Brattli <dagb@cs.uit.no>,
- * 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.
- *
- * Neither Dag Brattli nor University of Tromsø admit liability nor
- * provide warranty for any of this software. This material is
- * provided "AS-IS" and at no charge.
- *
- ********************************************************************/
-
-#ifndef IRIAP_H
-#define IRIAP_H
-
-#include <linux/types.h>
-#include <linux/skbuff.h>
-
-#include <net/irda/iriap_event.h>
-#include <net/irda/irias_object.h>
-#include <net/irda/irqueue.h> /* irda_queue_t */
-#include <net/irda/timer.h> /* struct timer_list */
-
-#define IAP_LST 0x80
-#define IAP_ACK 0x40
-
-#define IAS_SERVER 0
-#define IAS_CLIENT 1
-
-/* IrIAP Op-codes */
-#define GET_INFO_BASE 0x01
-#define GET_OBJECTS 0x02
-#define GET_VALUE 0x03
-#define GET_VALUE_BY_CLASS 0x04
-#define GET_OBJECT_INFO 0x05
-#define GET_ATTRIB_NAMES 0x06
-
-#define IAS_SUCCESS 0
-#define IAS_CLASS_UNKNOWN 1
-#define IAS_ATTRIB_UNKNOWN 2
-#define IAS_DISCONNECT 10
-
-typedef void (*CONFIRM_CALLBACK)(int result, __u16 obj_id,
- struct ias_value *value, void *priv);
-
-struct iriap_cb {
- irda_queue_t q; /* Must be first */
- magic_t magic; /* Magic cookie */
-
- int mode; /* Client or server */
-
- __u32 saddr;
- __u32 daddr;
- __u8 operation;
-
- struct sk_buff *request_skb;
- struct lsap_cb *lsap;
- __u8 slsap_sel;
-
- /* Client states */
- IRIAP_STATE client_state;
- IRIAP_STATE call_state;
-
- /* Server states */
- IRIAP_STATE server_state;
- IRIAP_STATE r_connect_state;
-
- CONFIRM_CALLBACK confirm;
- void *priv; /* Used to identify client */
-
- __u8 max_header_size;
- __u32 max_data_size;
-
- struct timer_list watchdog_timer;
-};
-
-int iriap_init(void);
-void iriap_cleanup(void);
-
-struct iriap_cb *iriap_open(__u8 slsap_sel, int mode, void *priv,
- CONFIRM_CALLBACK callback);
-void iriap_close(struct iriap_cb *self);
-
-int iriap_getvaluebyclass_request(struct iriap_cb *self,
- __u32 saddr, __u32 daddr,
- char *name, char *attr);
-void iriap_connect_request(struct iriap_cb *self);
-void iriap_send_ack( struct iriap_cb *self);
-void iriap_call_indication(struct iriap_cb *self, struct sk_buff *skb);
-
-void iriap_register_server(void);
-
-#endif
-
-
diff --git a/ANDROID_3.4.5/include/net/irda/iriap_event.h b/ANDROID_3.4.5/include/net/irda/iriap_event.h
deleted file mode 100644
index 89747f06..00000000
--- a/ANDROID_3.4.5/include/net/irda/iriap_event.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/*********************************************************************
- *
- * Filename: iriap_event.h
- * Version:
- * Description:
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Mon Aug 4 20:40:53 1997
- * Modified at: Sun Oct 31 22:02:54 1999
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- * Copyright (c) 1998-1999 Dag Brattli <dagb@cs.uit.no>, 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.
- *
- * Neither Dag Brattli nor University of Tromsø admit liability nor
- * provide warranty for any of this software. This material is
- * provided "AS-IS" and at no charge.
- *
- ********************************************************************/
-
-#ifndef IRIAP_FSM_H
-#define IRIAP_FSM_H
-
-/* Forward because of circular include dependecies */
-struct iriap_cb;
-
-/* IrIAP states */
-typedef enum {
- /* Client */
- S_DISCONNECT,
- S_CONNECTING,
- S_CALL,
-
- /* S-Call */
- S_MAKE_CALL,
- S_CALLING,
- S_OUTSTANDING,
- S_REPLYING,
- S_WAIT_FOR_CALL,
- S_WAIT_ACTIVE,
-
- /* Server */
- R_DISCONNECT,
- R_CALL,
-
- /* R-Connect */
- R_WAITING,
- R_WAIT_ACTIVE,
- R_RECEIVING,
- R_EXECUTE,
- R_RETURNING,
-} IRIAP_STATE;
-
-typedef enum {
- IAP_CALL_REQUEST,
- IAP_CALL_REQUEST_GVBC,
- IAP_CALL_RESPONSE,
- IAP_RECV_F_LST,
- IAP_LM_DISCONNECT_INDICATION,
- IAP_LM_CONNECT_INDICATION,
- IAP_LM_CONNECT_CONFIRM,
-} IRIAP_EVENT;
-
-void iriap_next_client_state (struct iriap_cb *self, IRIAP_STATE state);
-void iriap_next_call_state (struct iriap_cb *self, IRIAP_STATE state);
-void iriap_next_server_state (struct iriap_cb *self, IRIAP_STATE state);
-void iriap_next_r_connect_state(struct iriap_cb *self, IRIAP_STATE state);
-
-
-void iriap_do_client_event(struct iriap_cb *self, IRIAP_EVENT event,
- struct sk_buff *skb);
-void iriap_do_call_event (struct iriap_cb *self, IRIAP_EVENT event,
- struct sk_buff *skb);
-
-void iriap_do_server_event (struct iriap_cb *self, IRIAP_EVENT event,
- struct sk_buff *skb);
-void iriap_do_r_connect_event(struct iriap_cb *self, IRIAP_EVENT event,
- struct sk_buff *skb);
-
-#endif /* IRIAP_FSM_H */
-
diff --git a/ANDROID_3.4.5/include/net/irda/irias_object.h b/ANDROID_3.4.5/include/net/irda/irias_object.h
deleted file mode 100644
index 83f78081..00000000
--- a/ANDROID_3.4.5/include/net/irda/irias_object.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/*********************************************************************
- *
- * Filename: irias_object.h
- * Version:
- * Description:
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Thu Oct 1 22:49:50 1998
- * Modified at: Wed Dec 15 11:20:57 1999
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- * Copyright (c) 1998-1999 Dag Brattli, 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.
- *
- * Neither Dag Brattli nor University of Tromsø admit liability nor
- * provide warranty for any of this software. This material is
- * provided "AS-IS" and at no charge.
- *
- ********************************************************************/
-
-#ifndef LM_IAS_OBJECT_H
-#define LM_IAS_OBJECT_H
-
-#include <net/irda/irda.h>
-#include <net/irda/irqueue.h>
-
-/* LM-IAS Attribute types */
-#define IAS_MISSING 0
-#define IAS_INTEGER 1
-#define IAS_OCT_SEQ 2
-#define IAS_STRING 3
-
-/* Object ownership of attributes (user or kernel) */
-#define IAS_KERNEL_ATTR 0
-#define IAS_USER_ATTR 1
-
-/*
- * LM-IAS Object
- */
-struct ias_object {
- irda_queue_t q; /* Must be first! */
- magic_t magic;
-
- char *name;
- int id;
- hashbin_t *attribs;
-};
-
-/*
- * Values used by LM-IAS attributes
- */
-struct ias_value {
- __u8 type; /* Value description */
- __u8 owner; /* Managed from user/kernel space */
- int charset; /* Only used by string type */
- int len;
-
- /* Value */
- union {
- int integer;
- char *string;
- __u8 *oct_seq;
- } t;
-};
-
-/*
- * Attributes used by LM-IAS objects
- */
-struct ias_attrib {
- irda_queue_t q; /* Must be first! */
- int magic;
-
- char *name; /* Attribute name */
- struct ias_value *value; /* Attribute value */
-};
-
-struct ias_object *irias_new_object(char *name, int id);
-void irias_insert_object(struct ias_object *obj);
-int irias_delete_object(struct ias_object *obj);
-int irias_delete_attrib(struct ias_object *obj, struct ias_attrib *attrib,
- int cleanobject);
-void __irias_delete_object(struct ias_object *obj);
-
-void irias_add_integer_attrib(struct ias_object *obj, char *name, int value,
- int user);
-void irias_add_string_attrib(struct ias_object *obj, char *name, char *value,
- int user);
-void irias_add_octseq_attrib(struct ias_object *obj, char *name, __u8 *octets,
- int len, int user);
-int irias_object_change_attribute(char *obj_name, char *attrib_name,
- struct ias_value *new_value);
-struct ias_object *irias_find_object(char *name);
-struct ias_attrib *irias_find_attrib(struct ias_object *obj, char *name);
-
-struct ias_value *irias_new_string_value(char *string);
-struct ias_value *irias_new_integer_value(int integer);
-struct ias_value *irias_new_octseq_value(__u8 *octseq , int len);
-struct ias_value *irias_new_missing_value(void);
-void irias_delete_value(struct ias_value *value);
-
-extern struct ias_value irias_missing;
-extern hashbin_t *irias_objects;
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/irda/irlan_client.h b/ANDROID_3.4.5/include/net/irda/irlan_client.h
deleted file mode 100644
index fa8455ed..00000000
--- a/ANDROID_3.4.5/include/net/irda/irlan_client.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*********************************************************************
- *
- * Filename: irlan_client.h
- * Version: 0.3
- * Description: IrDA LAN access layer
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Sun Aug 31 20:14:37 1997
- * Modified at: Thu Apr 22 14:13:34 1999
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- * Copyright (c) 1998 Dag Brattli <dagb@cs.uit.no>, 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.
- *
- * Neither Dag Brattli nor University of Tromsø admit liability nor
- * provide warranty for any of this software. This material is
- * provided "AS-IS" and at no charge.
- *
- ********************************************************************/
-
-#ifndef IRLAN_CLIENT_H
-#define IRLAN_CLIENT_H
-
-#include <linux/kernel.h>
-#include <linux/types.h>
-#include <linux/skbuff.h>
-#include <linux/netdevice.h>
-
-#include <net/irda/irias_object.h>
-#include <net/irda/irlan_event.h>
-
-void irlan_client_discovery_indication(discinfo_t *, DISCOVERY_MODE, void *);
-void irlan_client_wakeup(struct irlan_cb *self, __u32 saddr, __u32 daddr);
-
-void irlan_client_parse_response(struct irlan_cb *self, struct sk_buff *skb);
-void irlan_client_get_value_confirm(int result, __u16 obj_id,
- struct ias_value *value, void *priv);
-#endif
diff --git a/ANDROID_3.4.5/include/net/irda/irlan_common.h b/ANDROID_3.4.5/include/net/irda/irlan_common.h
deleted file mode 100644
index 0af8b8df..00000000
--- a/ANDROID_3.4.5/include/net/irda/irlan_common.h
+++ /dev/null
@@ -1,229 +0,0 @@
-/*********************************************************************
- *
- * Filename: irlan_common.h
- * Version: 0.8
- * Description: IrDA LAN access layer
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Sun Aug 31 20:14:37 1997
- * Modified at: Sun Oct 31 19:41:24 1999
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- * Copyright (c) 1998-1999 Dag Brattli <dagb@cs.uit.no>,
- * 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.
- *
- * Neither Dag Brattli nor University of Tromsø admit liability nor
- * provide warranty for any of this software. This material is
- * provided "AS-IS" and at no charge.
- *
- ********************************************************************/
-
-#ifndef IRLAN_H
-#define IRLAN_H
-
-#include <asm/param.h> /* for HZ */
-
-#include <linux/kernel.h>
-#include <linux/types.h>
-#include <linux/skbuff.h>
-#include <linux/netdevice.h>
-
-#include <net/irda/irttp.h>
-
-#define IRLAN_MTU 1518
-#define IRLAN_TIMEOUT 10*HZ /* 10 seconds */
-
-/* Command packet types */
-#define CMD_GET_PROVIDER_INFO 0
-#define CMD_GET_MEDIA_CHAR 1
-#define CMD_OPEN_DATA_CHANNEL 2
-#define CMD_CLOSE_DATA_CHAN 3
-#define CMD_RECONNECT_DATA_CHAN 4
-#define CMD_FILTER_OPERATION 5
-
-/* Some responses */
-#define RSP_SUCCESS 0
-#define RSP_INSUFFICIENT_RESOURCES 1
-#define RSP_INVALID_COMMAND_FORMAT 2
-#define RSP_COMMAND_NOT_SUPPORTED 3
-#define RSP_PARAM_NOT_SUPPORTED 4
-#define RSP_VALUE_NOT_SUPPORTED 5
-#define RSP_NOT_OPEN 6
-#define RSP_AUTHENTICATION_REQUIRED 7
-#define RSP_INVALID_PASSWORD 8
-#define RSP_PROTOCOL_ERROR 9
-#define RSP_ASYNCHRONOUS_ERROR 255
-
-/* Media types */
-#define MEDIA_802_3 1
-#define MEDIA_802_5 2
-
-/* Filter parameters */
-#define DATA_CHAN 1
-#define FILTER_TYPE 2
-#define FILTER_MODE 3
-
-/* Filter types */
-#define IRLAN_DIRECTED 0x01
-#define IRLAN_FUNCTIONAL 0x02
-#define IRLAN_GROUP 0x04
-#define IRLAN_MAC_FRAME 0x08
-#define IRLAN_MULTICAST 0x10
-#define IRLAN_BROADCAST 0x20
-#define IRLAN_IPX_SOCKET 0x40
-
-/* Filter modes */
-#define ALL 1
-#define FILTER 2
-#define NONE 3
-
-/* Filter operations */
-#define GET 1
-#define CLEAR 2
-#define ADD 3
-#define REMOVE 4
-#define DYNAMIC 5
-
-/* Access types */
-#define ACCESS_DIRECT 1
-#define ACCESS_PEER 2
-#define ACCESS_HOSTED 3
-
-#define IRLAN_BYTE 0
-#define IRLAN_SHORT 1
-#define IRLAN_ARRAY 2
-
-/* IrLAN sits on top if IrTTP */
-#define IRLAN_MAX_HEADER (TTP_HEADER+LMP_HEADER)
-/* 1 byte for the command code and 1 byte for the parameter count */
-#define IRLAN_CMD_HEADER 2
-
-#define IRLAN_STRING_PARAMETER_LEN(name, value) (1 + strlen((name)) + 2 \
- + strlen ((value)))
-#define IRLAN_BYTE_PARAMETER_LEN(name) (1 + strlen((name)) + 2 + 1)
-#define IRLAN_SHORT_PARAMETER_LEN(name) (1 + strlen((name)) + 2 + 2)
-
-/*
- * IrLAN client
- */
-struct irlan_client_cb {
- int state;
-
- int open_retries;
-
- struct tsap_cb *tsap_ctrl;
- __u32 max_sdu_size;
- __u8 max_header_size;
-
- int access_type; /* Access type of provider */
- __u8 reconnect_key[255];
- __u8 key_len;
-
- __u16 recv_arb_val;
- __u16 max_frame;
- int filter_type;
-
- int unicast_open;
- int broadcast_open;
-
- int tx_busy;
- struct sk_buff_head txq; /* Transmit control queue */
-
- struct iriap_cb *iriap;
-
- struct timer_list kick_timer;
-};
-
-/*
- * IrLAN provider
- */
-struct irlan_provider_cb {
- int state;
-
- struct tsap_cb *tsap_ctrl;
- __u32 max_sdu_size;
- __u8 max_header_size;
-
- /*
- * Store some values here which are used by the provider to parse
- * the filter operations
- */
- int data_chan;
- int filter_type;
- int filter_mode;
- int filter_operation;
- int filter_entry;
- int access_type; /* Access type */
- __u16 send_arb_val;
-
- __u8 mac_address[6]; /* Generated MAC address for peer device */
-};
-
-/*
- * IrLAN control block
- */
-struct irlan_cb {
- int magic;
- struct list_head dev_list;
- struct net_device *dev; /* Ethernet device structure*/
-
- __u32 saddr; /* Source device address */
- __u32 daddr; /* Destination device address */
- int disconnect_reason; /* Why we got disconnected */
-
- int media; /* Media type */
- __u8 version[2]; /* IrLAN version */
-
- struct tsap_cb *tsap_data; /* Data TSAP */
-
- int use_udata; /* Use Unit Data transfers */
-
- __u8 stsap_sel_data; /* Source data TSAP selector */
- __u8 dtsap_sel_data; /* Destination data TSAP selector */
- __u8 dtsap_sel_ctrl; /* Destination ctrl TSAP selector */
-
- struct irlan_client_cb client; /* Client specific fields */
- struct irlan_provider_cb provider; /* Provider specific fields */
-
- __u32 max_sdu_size;
- __u8 max_header_size;
-
- wait_queue_head_t open_wait;
- struct timer_list watchdog_timer;
-};
-
-void irlan_close(struct irlan_cb *self);
-void irlan_close_tsaps(struct irlan_cb *self);
-
-int irlan_register_netdev(struct irlan_cb *self);
-void irlan_ias_register(struct irlan_cb *self, __u8 tsap_sel);
-void irlan_start_watchdog_timer(struct irlan_cb *self, int timeout);
-
-void irlan_open_data_tsap(struct irlan_cb *self);
-
-int irlan_run_ctrl_tx_queue(struct irlan_cb *self);
-
-struct irlan_cb *irlan_get_any(void);
-void irlan_get_provider_info(struct irlan_cb *self);
-void irlan_get_media_char(struct irlan_cb *self);
-void irlan_open_data_channel(struct irlan_cb *self);
-void irlan_close_data_channel(struct irlan_cb *self);
-void irlan_set_multicast_filter(struct irlan_cb *self, int status);
-void irlan_set_broadcast_filter(struct irlan_cb *self, int status);
-
-int irlan_insert_byte_param(struct sk_buff *skb, char *param, __u8 value);
-int irlan_insert_short_param(struct sk_buff *skb, char *param, __u16 value);
-int irlan_insert_string_param(struct sk_buff *skb, char *param, char *value);
-int irlan_insert_array_param(struct sk_buff *skb, char *name, __u8 *value,
- __u16 value_len);
-
-int irlan_extract_param(__u8 *buf, char *name, char *value, __u16 *len);
-
-#endif
-
-
diff --git a/ANDROID_3.4.5/include/net/irda/irlan_eth.h b/ANDROID_3.4.5/include/net/irda/irlan_eth.h
deleted file mode 100644
index de5c8169..00000000
--- a/ANDROID_3.4.5/include/net/irda/irlan_eth.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*********************************************************************
- *
- * Filename: irlan_eth.h
- * Version:
- * Description:
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Thu Oct 15 08:36:58 1998
- * Modified at: Fri May 14 23:29:00 1999
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- * Copyright (c) 1998-1999 Dag Brattli, 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.
- *
- * Neither Dag Brattli nor University of Tromsø admit liability nor
- * provide warranty for any of this software. This material is
- * provided "AS-IS" and at no charge.
- *
- ********************************************************************/
-
-#ifndef IRLAN_ETH_H
-#define IRLAN_ETH_H
-
-struct net_device *alloc_irlandev(const char *name);
-int irlan_eth_receive(void *instance, void *sap, struct sk_buff *skb);
-
-void irlan_eth_flow_indication( void *instance, void *sap, LOCAL_FLOW flow);
-#endif
diff --git a/ANDROID_3.4.5/include/net/irda/irlan_event.h b/ANDROID_3.4.5/include/net/irda/irlan_event.h
deleted file mode 100644
index 018b5a77..00000000
--- a/ANDROID_3.4.5/include/net/irda/irlan_event.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/*********************************************************************
- *
- * Filename: irlan_event.h
- * Version:
- * Description: LAN access
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Sun Aug 31 20:14:37 1997
- * Modified at: Tue Feb 2 09:45:17 1999
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- * Copyright (c) 1997 Dag Brattli <dagb@cs.uit.no>, 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.
- *
- * Neither Dag Brattli nor University of Tromsø admit liability nor
- * provide warranty for any of this software. This material is
- * provided "AS-IS" and at no charge.
- *
- ********************************************************************/
-
-#ifndef IRLAN_EVENT_H
-#define IRLAN_EVENT_H
-
-#include <linux/kernel.h>
-#include <linux/skbuff.h>
-
-#include <net/irda/irlan_common.h>
-
-typedef enum {
- IRLAN_IDLE,
- IRLAN_QUERY,
- IRLAN_CONN,
- IRLAN_INFO,
- IRLAN_MEDIA,
- IRLAN_OPEN,
- IRLAN_WAIT,
- IRLAN_ARB,
- IRLAN_DATA,
- IRLAN_CLOSE,
- IRLAN_SYNC
-} IRLAN_STATE;
-
-typedef enum {
- IRLAN_DISCOVERY_INDICATION,
- IRLAN_IAS_PROVIDER_AVAIL,
- IRLAN_IAS_PROVIDER_NOT_AVAIL,
- IRLAN_LAP_DISCONNECT,
- IRLAN_LMP_DISCONNECT,
- IRLAN_CONNECT_COMPLETE,
- IRLAN_DATA_INDICATION,
- IRLAN_DATA_CONNECT_INDICATION,
- IRLAN_RETRY_CONNECT,
-
- IRLAN_CONNECT_INDICATION,
- IRLAN_GET_INFO_CMD,
- IRLAN_GET_MEDIA_CMD,
- IRLAN_OPEN_DATA_CMD,
- IRLAN_FILTER_CONFIG_CMD,
-
- IRLAN_CHECK_CON_ARB,
- IRLAN_PROVIDER_SIGNAL,
-
- IRLAN_WATCHDOG_TIMEOUT,
-} IRLAN_EVENT;
-
-extern const char * const irlan_state[];
-
-void irlan_do_client_event(struct irlan_cb *self, IRLAN_EVENT event,
- struct sk_buff *skb);
-
-void irlan_do_provider_event(struct irlan_cb *self, IRLAN_EVENT event,
- struct sk_buff *skb);
-
-void irlan_next_client_state(struct irlan_cb *self, IRLAN_STATE state);
-void irlan_next_provider_state(struct irlan_cb *self, IRLAN_STATE state);
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/irda/irlan_filter.h b/ANDROID_3.4.5/include/net/irda/irlan_filter.h
deleted file mode 100644
index a5a25394..00000000
--- a/ANDROID_3.4.5/include/net/irda/irlan_filter.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*********************************************************************
- *
- * Filename: irlan_filter.h
- * Version:
- * Description:
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Fri Jan 29 15:24:08 1999
- * Modified at: Sun Feb 7 23:35:31 1999
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- * Copyright (c) 1998 Dag Brattli, 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.
- *
- * Neither Dag Brattli nor University of Tromsø admit liability nor
- * provide warranty for any of this software. This material is
- * provided "AS-IS" and at no charge.
- *
- ********************************************************************/
-
-#ifndef IRLAN_FILTER_H
-#define IRLAN_FILTER_H
-
-void irlan_check_command_param(struct irlan_cb *self, char *param,
- char *value);
-void irlan_filter_request(struct irlan_cb *self, struct sk_buff *skb);
-#ifdef CONFIG_PROC_FS
-void irlan_print_filter(struct seq_file *seq, int filter_type);
-#endif
-
-#endif /* IRLAN_FILTER_H */
diff --git a/ANDROID_3.4.5/include/net/irda/irlan_provider.h b/ANDROID_3.4.5/include/net/irda/irlan_provider.h
deleted file mode 100644
index 92f3b0e1..00000000
--- a/ANDROID_3.4.5/include/net/irda/irlan_provider.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*********************************************************************
- *
- * Filename: irlan_provider.h
- * Version: 0.1
- * Description: IrDA LAN access layer
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Sun Aug 31 20:14:37 1997
- * Modified at: Sun May 9 12:26:11 1999
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- * Copyright (c) 1998-1999 Dag Brattli <dagb@cs.uit.no>, 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.
- *
- * Neither Dag Brattli nor University of Tromsø admit liability nor
- * provide warranty for any of this software. This material is
- * provided "AS-IS" and at no charge.
- *
- ********************************************************************/
-
-#ifndef IRLAN_SERVER_H
-#define IRLAN_SERVER_H
-
-#include <linux/kernel.h>
-#include <linux/types.h>
-#include <linux/skbuff.h>
-#include <linux/netdevice.h>
-
-#include <net/irda/irlan_common.h>
-
-void irlan_provider_ctrl_disconnect_indication(void *instance, void *sap,
- LM_REASON reason,
- struct sk_buff *skb);
-
-
-void irlan_provider_connect_response(struct irlan_cb *, struct tsap_cb *);
-
-int irlan_parse_open_data_cmd(struct irlan_cb *self, struct sk_buff *skb);
-int irlan_provider_parse_command(struct irlan_cb *self, int cmd,
- struct sk_buff *skb);
-
-void irlan_provider_send_reply(struct irlan_cb *self, int command,
- int ret_code);
-int irlan_provider_open_ctrl_tsap(struct irlan_cb *self);
-
-#endif
-
-
diff --git a/ANDROID_3.4.5/include/net/irda/irlap.h b/ANDROID_3.4.5/include/net/irda/irlap.h
deleted file mode 100644
index fb4b76d5..00000000
--- a/ANDROID_3.4.5/include/net/irda/irlap.h
+++ /dev/null
@@ -1,311 +0,0 @@
-/*********************************************************************
- *
- * Filename: irlap.h
- * Version: 0.8
- * Description: An IrDA LAP driver for Linux
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Mon Aug 4 20:40:53 1997
- * Modified at: Fri Dec 10 13:21:17 1999
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- * Copyright (c) 1998-1999 Dag Brattli <dagb@cs.uit.no>,
- * All Rights Reserved.
- * Copyright (c) 2000-2002 Jean Tourrilhes <jt@hpl.hp.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.
- *
- * Neither Dag Brattli nor University of Tromsø admit liability nor
- * provide warranty for any of this software. This material is
- * provided "AS-IS" and at no charge.
- *
- ********************************************************************/
-
-#ifndef IRLAP_H
-#define IRLAP_H
-
-#include <linux/types.h>
-#include <linux/skbuff.h>
-#include <linux/netdevice.h>
-#include <linux/timer.h>
-
-#include <net/irda/irqueue.h> /* irda_queue_t */
-#include <net/irda/qos.h> /* struct qos_info */
-#include <net/irda/discovery.h> /* discovery_t */
-#include <net/irda/irlap_event.h> /* IRLAP_STATE, ... */
-#include <net/irda/irmod.h> /* struct notify_t */
-
-#define CONFIG_IRDA_DYNAMIC_WINDOW 1
-
-#define LAP_RELIABLE 1
-#define LAP_UNRELIABLE 0
-
-#define LAP_ADDR_HEADER 1 /* IrLAP Address Header */
-#define LAP_CTRL_HEADER 1 /* IrLAP Control Header */
-
-/* May be different when we get VFIR */
-#define LAP_MAX_HEADER (LAP_ADDR_HEADER + LAP_CTRL_HEADER)
-
-/* Each IrDA device gets a random 32 bits IRLAP device address */
-#define LAP_ALEN 4
-
-#define BROADCAST 0xffffffff /* Broadcast device address */
-#define CBROADCAST 0xfe /* Connection broadcast address */
-#define XID_FORMAT 0x01 /* Discovery XID format */
-
-/* Nobody seems to use this constant. */
-#define LAP_WINDOW_SIZE 8
-/* We keep the LAP queue very small to minimise the amount of buffering.
- * this improve latency and reduce resource consumption.
- * This work only because we have synchronous refilling of IrLAP through
- * the flow control mechanism (via scheduler and IrTTP).
- * 2 buffers is the minimum we can work with, one that we send while polling
- * IrTTP, and another to know that we should not send the pf bit.
- * Jean II */
-#define LAP_HIGH_THRESHOLD 2
-/* Some rare non TTP clients don't implement flow control, and
- * so don't comply with the above limit (and neither with this one).
- * For IAP and management, it doesn't matter, because they never transmit much.
- *.For IrLPT, this should be fixed.
- * - Jean II */
-#define LAP_MAX_QUEUE 10
-/* Please note that all IrDA management frames (LMP/TTP conn req/disc and
- * IAS queries) fall in the second category and are sent to LAP even if TTP
- * is stopped. This means that those frames will wait only a maximum of
- * two (2) data frames before beeing sent on the "wire", which speed up
- * new socket setup when the link is saturated.
- * Same story for two sockets competing for the medium : if one saturates
- * the LAP, when the other want to transmit it only has to wait for
- * maximum three (3) packets (2 + one scheduling), which improve performance
- * of delay sensitive applications.
- * Jean II */
-
-#define NR_EXPECTED 1
-#define NR_UNEXPECTED 0
-#define NR_INVALID -1
-
-#define NS_EXPECTED 1
-#define NS_UNEXPECTED 0
-#define NS_INVALID -1
-
-/*
- * Meta information passed within the IrLAP state machine
- */
-struct irlap_info {
- __u8 caddr; /* Connection address */
- __u8 control; /* Frame type */
- __u8 cmd;
-
- __u32 saddr;
- __u32 daddr;
-
- int pf; /* Poll/final bit set */
-
- __u8 nr; /* Sequence number of next frame expected */
- __u8 ns; /* Sequence number of frame sent */
-
- int S; /* Number of slots */
- int slot; /* Random chosen slot */
- int s; /* Current slot */
-
- discovery_t *discovery; /* Discovery information */
-};
-
-/* Main structure of IrLAP */
-struct irlap_cb {
- irda_queue_t q; /* Must be first */
- magic_t magic;
-
- /* Device we are attached to */
- struct net_device *netdev;
- char hw_name[2*IFNAMSIZ + 1];
-
- /* Connection state */
- volatile IRLAP_STATE state; /* Current state */
-
- /* Timers used by IrLAP */
- struct timer_list query_timer;
- struct timer_list slot_timer;
- struct timer_list discovery_timer;
- struct timer_list final_timer;
- struct timer_list poll_timer;
- struct timer_list wd_timer;
- struct timer_list backoff_timer;
-
- /* Media busy stuff */
- struct timer_list media_busy_timer;
- int media_busy;
-
- /* Timeouts which will be different with different turn time */
- int slot_timeout;
- int poll_timeout;
- int final_timeout;
- int wd_timeout;
-
- struct sk_buff_head txq; /* Frames to be transmitted */
- struct sk_buff_head txq_ultra;
-
- __u8 caddr; /* Connection address */
- __u32 saddr; /* Source device address */
- __u32 daddr; /* Destination device address */
-
- int retry_count; /* Times tried to establish connection */
- int add_wait; /* True if we are waiting for frame */
-
- __u8 connect_pending;
- __u8 disconnect_pending;
-
- /* To send a faster RR if tx queue empty */
-#ifdef CONFIG_IRDA_FAST_RR
- int fast_RR_timeout;
- int fast_RR;
-#endif /* CONFIG_IRDA_FAST_RR */
-
- int N1; /* N1 * F-timer = Negitiated link disconnect warning threshold */
- int N2; /* N2 * F-timer = Negitiated link disconnect time */
- int N3; /* Connection retry count */
-
- int local_busy;
- int remote_busy;
- int xmitflag;
-
- __u8 vs; /* Next frame to be sent */
- __u8 vr; /* Next frame to be received */
- __u8 va; /* Last frame acked */
- int window; /* Nr of I-frames allowed to send */
- int window_size; /* Current negotiated window size */
-
-#ifdef CONFIG_IRDA_DYNAMIC_WINDOW
- __u32 line_capacity; /* Number of bytes allowed to send */
- __u32 bytes_left; /* Number of bytes still allowed to transmit */
-#endif /* CONFIG_IRDA_DYNAMIC_WINDOW */
-
- struct sk_buff_head wx_list;
-
- __u8 ack_required;
-
- /* XID parameters */
- __u8 S; /* Number of slots */
- __u8 slot; /* Random chosen slot */
- __u8 s; /* Current slot */
- int frame_sent; /* Have we sent reply? */
-
- hashbin_t *discovery_log;
- discovery_t *discovery_cmd;
-
- __u32 speed; /* Link speed */
-
- struct qos_info qos_tx; /* QoS requested by peer */
- struct qos_info qos_rx; /* QoS requested by self */
- struct qos_info *qos_dev; /* QoS supported by device */
-
- notify_t notify; /* Callbacks to IrLMP */
-
- int mtt_required; /* Minimum turnaround time required */
- int xbofs_delay; /* Nr of XBOF's used to MTT */
- int bofs_count; /* Negotiated extra BOFs */
- int next_bofs; /* Negotiated extra BOFs after next frame */
-
- int mode; /* IrLAP mode (primary, secondary or monitor) */
-};
-
-/*
- * Function prototypes
- */
-int irlap_init(void);
-void irlap_cleanup(void);
-
-struct irlap_cb *irlap_open(struct net_device *dev, struct qos_info *qos,
- const char *hw_name);
-void irlap_close(struct irlap_cb *self);
-
-void irlap_connect_request(struct irlap_cb *self, __u32 daddr,
- struct qos_info *qos, int sniff);
-void irlap_connect_response(struct irlap_cb *self, struct sk_buff *skb);
-void irlap_connect_indication(struct irlap_cb *self, struct sk_buff *skb);
-void irlap_connect_confirm(struct irlap_cb *, struct sk_buff *skb);
-
-void irlap_data_indication(struct irlap_cb *, struct sk_buff *, int unreliable);
-void irlap_data_request(struct irlap_cb *, struct sk_buff *, int unreliable);
-
-#ifdef CONFIG_IRDA_ULTRA
-void irlap_unitdata_request(struct irlap_cb *, struct sk_buff *);
-void irlap_unitdata_indication(struct irlap_cb *, struct sk_buff *);
-#endif /* CONFIG_IRDA_ULTRA */
-
-void irlap_disconnect_request(struct irlap_cb *);
-void irlap_disconnect_indication(struct irlap_cb *, LAP_REASON reason);
-
-void irlap_status_indication(struct irlap_cb *, int quality_of_link);
-
-void irlap_test_request(__u8 *info, int len);
-
-void irlap_discovery_request(struct irlap_cb *, discovery_t *discovery);
-void irlap_discovery_confirm(struct irlap_cb *, hashbin_t *discovery_log);
-void irlap_discovery_indication(struct irlap_cb *, discovery_t *discovery);
-
-void irlap_reset_indication(struct irlap_cb *self);
-void irlap_reset_confirm(void);
-
-void irlap_update_nr_received(struct irlap_cb *, int nr);
-int irlap_validate_nr_received(struct irlap_cb *, int nr);
-int irlap_validate_ns_received(struct irlap_cb *, int ns);
-
-int irlap_generate_rand_time_slot(int S, int s);
-void irlap_initiate_connection_state(struct irlap_cb *);
-void irlap_flush_all_queues(struct irlap_cb *);
-void irlap_wait_min_turn_around(struct irlap_cb *, struct qos_info *);
-
-void irlap_apply_default_connection_parameters(struct irlap_cb *self);
-void irlap_apply_connection_parameters(struct irlap_cb *self, int now);
-
-#define IRLAP_GET_HEADER_SIZE(self) (LAP_MAX_HEADER)
-#define IRLAP_GET_TX_QUEUE_LEN(self) skb_queue_len(&self->txq)
-
-/* Return TRUE if the node is in primary mode (i.e. master)
- * - Jean II */
-static inline int irlap_is_primary(struct irlap_cb *self)
-{
- int ret;
- switch(self->state) {
- case LAP_XMIT_P:
- case LAP_NRM_P:
- ret = 1;
- break;
- case LAP_XMIT_S:
- case LAP_NRM_S:
- ret = 0;
- break;
- default:
- ret = -1;
- }
- return ret;
-}
-
-/* Clear a pending IrLAP disconnect. - Jean II */
-static inline void irlap_clear_disconnect(struct irlap_cb *self)
-{
- self->disconnect_pending = FALSE;
-}
-
-/*
- * Function irlap_next_state (self, state)
- *
- * Switches state and provides debug information
- *
- */
-static inline void irlap_next_state(struct irlap_cb *self, IRLAP_STATE state)
-{
- /*
- if (!self || self->magic != LAP_MAGIC)
- return;
-
- IRDA_DEBUG(4, "next LAP state = %s\n", irlap_state[state]);
- */
- self->state = state;
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/irda/irlap_event.h b/ANDROID_3.4.5/include/net/irda/irlap_event.h
deleted file mode 100644
index 4c90824c..00000000
--- a/ANDROID_3.4.5/include/net/irda/irlap_event.h
+++ /dev/null
@@ -1,131 +0,0 @@
-/*********************************************************************
- *
- *
- * Filename: irlap_event.h
- * Version: 0.1
- * Description:
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Sat Aug 16 00:59:29 1997
- * Modified at: Tue Dec 21 11:20:30 1999
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- * Copyright (c) 1998-1999 Dag Brattli <dagb@cs.uit.no>,
- * All Rights Reserved.
- * Copyright (c) 2000-2002 Jean Tourrilhes <jt@hpl.hp.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
- *
- ********************************************************************/
-
-#ifndef IRLAP_EVENT_H
-#define IRLAP_EVENT_H
-
-#include <net/irda/irda.h>
-
-/* A few forward declarations (to make compiler happy) */
-struct irlap_cb;
-struct irlap_info;
-
-/* IrLAP States */
-typedef enum {
- LAP_NDM, /* Normal disconnected mode */
- LAP_QUERY,
- LAP_REPLY,
- LAP_CONN, /* Connect indication */
- LAP_SETUP, /* Setting up connection */
- LAP_OFFLINE, /* A really boring state */
- LAP_XMIT_P,
- LAP_PCLOSE,
- LAP_NRM_P, /* Normal response mode as primary */
- LAP_RESET_WAIT,
- LAP_RESET,
- LAP_NRM_S, /* Normal response mode as secondary */
- LAP_XMIT_S,
- LAP_SCLOSE,
- LAP_RESET_CHECK,
-} IRLAP_STATE;
-
-/* IrLAP Events */
-typedef enum {
- /* Services events */
- DISCOVERY_REQUEST,
- CONNECT_REQUEST,
- CONNECT_RESPONSE,
- DISCONNECT_REQUEST,
- DATA_REQUEST,
- RESET_REQUEST,
- RESET_RESPONSE,
-
- /* Send events */
- SEND_I_CMD,
- SEND_UI_FRAME,
-
- /* Receive events */
- RECV_DISCOVERY_XID_CMD,
- RECV_DISCOVERY_XID_RSP,
- RECV_SNRM_CMD,
- RECV_TEST_CMD,
- RECV_TEST_RSP,
- RECV_UA_RSP,
- RECV_DM_RSP,
- RECV_RD_RSP,
- RECV_I_CMD,
- RECV_I_RSP,
- RECV_UI_FRAME,
- RECV_FRMR_RSP,
- RECV_RR_CMD,
- RECV_RR_RSP,
- RECV_RNR_CMD,
- RECV_RNR_RSP,
- RECV_REJ_CMD,
- RECV_REJ_RSP,
- RECV_SREJ_CMD,
- RECV_SREJ_RSP,
- RECV_DISC_CMD,
-
- /* Timer events */
- SLOT_TIMER_EXPIRED,
- QUERY_TIMER_EXPIRED,
- FINAL_TIMER_EXPIRED,
- POLL_TIMER_EXPIRED,
- DISCOVERY_TIMER_EXPIRED,
- WD_TIMER_EXPIRED,
- BACKOFF_TIMER_EXPIRED,
- MEDIA_BUSY_TIMER_EXPIRED,
-} IRLAP_EVENT;
-
-/*
- * Disconnect reason code
- */
-typedef enum { /* FIXME check the two first reason codes */
- LAP_DISC_INDICATION=1, /* Received a disconnect request from peer */
- LAP_NO_RESPONSE, /* To many retransmits without response */
- LAP_RESET_INDICATION, /* To many retransmits, or invalid nr/ns */
- LAP_FOUND_NONE, /* No devices were discovered */
- LAP_MEDIA_BUSY,
- LAP_PRIMARY_CONFLICT,
-} LAP_REASON;
-
-extern const char *const irlap_state[];
-
-void irlap_do_event(struct irlap_cb *self, IRLAP_EVENT event,
- struct sk_buff *skb, struct irlap_info *info);
-void irlap_print_event(IRLAP_EVENT event);
-
-extern int irlap_qos_negotiate(struct irlap_cb *self, struct sk_buff *skb);
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/irda/irlap_frame.h b/ANDROID_3.4.5/include/net/irda/irlap_frame.h
deleted file mode 100644
index 6b1dc4f8..00000000
--- a/ANDROID_3.4.5/include/net/irda/irlap_frame.h
+++ /dev/null
@@ -1,169 +0,0 @@
-/*********************************************************************
- *
- * Filename: irlap_frame.h
- * Version: 0.9
- * Description: IrLAP frame declarations
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Tue Aug 19 10:27:26 1997
- * Modified at: Sat Dec 25 21:07:26 1999
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- * Copyright (c) 1997-1999 Dag Brattli <dagb@cs.uit.no>,
- * All Rights Reserved.
- * Copyright (c) 2000-2002 Jean Tourrilhes <jt@hpl.hp.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
- *
- ********************************************************************/
-
-#ifndef IRLAP_FRAME_H
-#define IRLAP_FRAME_H
-
-#include <linux/skbuff.h>
-
-#include <net/irda/irda.h>
-
-/* A few forward declarations (to make compiler happy) */
-struct irlap_cb;
-struct discovery_t;
-
-/* Frame types and templates */
-#define INVALID 0xff
-
-/* Unnumbered (U) commands */
-#define SNRM_CMD 0x83 /* Set Normal Response Mode */
-#define DISC_CMD 0x43 /* Disconnect */
-#define XID_CMD 0x2f /* Exchange Station Identification */
-#define TEST_CMD 0xe3 /* Test */
-
-/* Unnumbered responses */
-#define RNRM_RSP 0x83 /* Request Normal Response Mode */
-#define UA_RSP 0x63 /* Unnumbered Acknowledgement */
-#define FRMR_RSP 0x87 /* Frame Reject */
-#define DM_RSP 0x0f /* Disconnect Mode */
-#define RD_RSP 0x43 /* Request Disconnection */
-#define XID_RSP 0xaf /* Exchange Station Identification */
-#define TEST_RSP 0xe3 /* Test frame */
-
-/* Supervisory (S) */
-#define RR 0x01 /* Receive Ready */
-#define REJ 0x09 /* Reject */
-#define RNR 0x05 /* Receive Not Ready */
-#define SREJ 0x0d /* Selective Reject */
-
-/* Information (I) */
-#define I_FRAME 0x00 /* Information Format */
-#define UI_FRAME 0x03 /* Unnumbered Information */
-
-#define CMD_FRAME 0x01
-#define RSP_FRAME 0x00
-
-#define PF_BIT 0x10 /* Poll/final bit */
-
-/* Some IrLAP field lengths */
-/*
- * Only baud rate triplet is 4 bytes (PV can be 2 bytes).
- * All others params (7) are 3 bytes, so that's 7*3 + 1*4 bytes.
- */
-#define IRLAP_NEGOCIATION_PARAMS_LEN 25
-#define IRLAP_DISCOVERY_INFO_LEN 32
-
-struct disc_frame {
- __u8 caddr; /* Connection address */
- __u8 control;
-} __packed;
-
-struct xid_frame {
- __u8 caddr; /* Connection address */
- __u8 control;
- __u8 ident; /* Should always be XID_FORMAT */
- __le32 saddr; /* Source device address */
- __le32 daddr; /* Destination device address */
- __u8 flags; /* Discovery flags */
- __u8 slotnr;
- __u8 version;
-} __packed;
-
-struct test_frame {
- __u8 caddr; /* Connection address */
- __u8 control;
- __le32 saddr; /* Source device address */
- __le32 daddr; /* Destination device address */
-} __packed;
-
-struct ua_frame {
- __u8 caddr;
- __u8 control;
- __le32 saddr; /* Source device address */
- __le32 daddr; /* Dest device address */
-} __packed;
-
-struct dm_frame {
- __u8 caddr; /* Connection address */
- __u8 control;
-} __packed;
-
-struct rd_frame {
- __u8 caddr; /* Connection address */
- __u8 control;
-} __packed;
-
-struct rr_frame {
- __u8 caddr; /* Connection address */
- __u8 control;
-} __packed;
-
-struct i_frame {
- __u8 caddr;
- __u8 control;
-} __packed;
-
-struct snrm_frame {
- __u8 caddr;
- __u8 control;
- __le32 saddr;
- __le32 daddr;
- __u8 ncaddr;
-} __packed;
-
-void irlap_queue_xmit(struct irlap_cb *self, struct sk_buff *skb);
-void irlap_send_discovery_xid_frame(struct irlap_cb *, int S, __u8 s,
- __u8 command,
- struct discovery_t *discovery);
-void irlap_send_snrm_frame(struct irlap_cb *, struct qos_info *);
-void irlap_send_test_frame(struct irlap_cb *self, __u8 caddr, __u32 daddr,
- struct sk_buff *cmd);
-void irlap_send_ua_response_frame(struct irlap_cb *, struct qos_info *);
-void irlap_send_dm_frame(struct irlap_cb *self);
-void irlap_send_rd_frame(struct irlap_cb *self);
-void irlap_send_disc_frame(struct irlap_cb *self);
-void irlap_send_rr_frame(struct irlap_cb *self, int command);
-
-void irlap_send_data_primary(struct irlap_cb *, struct sk_buff *);
-void irlap_send_data_primary_poll(struct irlap_cb *, struct sk_buff *);
-void irlap_send_data_secondary(struct irlap_cb *, struct sk_buff *);
-void irlap_send_data_secondary_final(struct irlap_cb *, struct sk_buff *);
-void irlap_resend_rejected_frames(struct irlap_cb *, int command);
-void irlap_resend_rejected_frame(struct irlap_cb *self, int command);
-
-void irlap_send_ui_frame(struct irlap_cb *self, struct sk_buff *skb,
- __u8 caddr, int command);
-
-extern int irlap_insert_qos_negotiation_params(struct irlap_cb *self,
- struct sk_buff *skb);
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/irda/irlmp.h b/ANDROID_3.4.5/include/net/irda/irlmp.h
deleted file mode 100644
index fff11b7f..00000000
--- a/ANDROID_3.4.5/include/net/irda/irlmp.h
+++ /dev/null
@@ -1,294 +0,0 @@
-/*********************************************************************
- *
- * Filename: irlmp.h
- * Version: 0.9
- * Description: IrDA Link Management Protocol (LMP) layer
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Sun Aug 17 20:54:32 1997
- * Modified at: Fri Dec 10 13:23:01 1999
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- * Copyright (c) 1998-1999 Dag Brattli <dagb@cs.uit.no>,
- * All Rights Reserved.
- * Copyright (c) 2000-2002 Jean Tourrilhes <jt@hpl.hp.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.
- *
- * Neither Dag Brattli nor University of Tromsø admit liability nor
- * provide warranty for any of this software. This material is
- * provided "AS-IS" and at no charge.
- *
- ********************************************************************/
-
-#ifndef IRLMP_H
-#define IRLMP_H
-
-#include <asm/param.h> /* for HZ */
-
-#include <linux/types.h>
-
-#include <net/irda/irda.h>
-#include <net/irda/qos.h>
-#include <net/irda/irlap.h> /* LAP_MAX_HEADER, ... */
-#include <net/irda/irlmp_event.h>
-#include <net/irda/irqueue.h>
-#include <net/irda/discovery.h>
-
-/* LSAP-SEL's */
-#define LSAP_MASK 0x7f
-#define LSAP_IAS 0x00
-#define LSAP_ANY 0xff
-#define LSAP_MAX 0x6f /* 0x70-0x7f are reserved */
-#define LSAP_CONNLESS 0x70 /* Connectionless LSAP, mostly used for Ultra */
-
-#define DEV_ADDR_ANY 0xffffffff
-
-#define LMP_HEADER 2 /* Dest LSAP + Source LSAP */
-#define LMP_CONTROL_HEADER 4 /* LMP_HEADER + opcode + parameter */
-#define LMP_PID_HEADER 1 /* Used by Ultra */
-#define LMP_MAX_HEADER (LMP_CONTROL_HEADER+LAP_MAX_HEADER)
-
-#define LM_MAX_CONNECTIONS 10
-
-#define LM_IDLE_TIMEOUT 2*HZ /* 2 seconds for now */
-
-typedef enum {
- S_PNP = 0,
- S_PDA,
- S_COMPUTER,
- S_PRINTER,
- S_MODEM,
- S_FAX,
- S_LAN,
- S_TELEPHONY,
- S_COMM,
- S_OBEX,
- S_ANY,
- S_END,
-} SERVICE;
-
-/* For selective discovery */
-typedef void (*DISCOVERY_CALLBACK1) (discinfo_t *, DISCOVERY_MODE, void *);
-/* For expiry (the same) */
-typedef void (*DISCOVERY_CALLBACK2) (discinfo_t *, DISCOVERY_MODE, void *);
-
-typedef struct {
- irda_queue_t queue; /* Must be first */
-
- __u16_host_order hints; /* Hint bits */
-} irlmp_service_t;
-
-typedef struct {
- irda_queue_t queue; /* Must be first */
-
- __u16_host_order hint_mask;
-
- DISCOVERY_CALLBACK1 disco_callback; /* Selective discovery */
- DISCOVERY_CALLBACK2 expir_callback; /* Selective expiration */
- void *priv; /* Used to identify client */
-} irlmp_client_t;
-
-/*
- * Information about each logical LSAP connection
- */
-struct lsap_cb {
- irda_queue_t queue; /* Must be first */
- magic_t magic;
-
- unsigned long connected; /* set_bit used on this */
- int persistent;
-
- __u8 slsap_sel; /* Source (this) LSAP address */
- __u8 dlsap_sel; /* Destination LSAP address (if connected) */
-#ifdef CONFIG_IRDA_ULTRA
- __u8 pid; /* Used by connectionless LSAP */
-#endif /* CONFIG_IRDA_ULTRA */
- struct sk_buff *conn_skb; /* Store skb here while connecting */
-
- struct timer_list watchdog_timer;
-
- LSAP_STATE lsap_state; /* Connection state */
- notify_t notify; /* Indication/Confirm entry points */
- struct qos_info qos; /* QoS for this connection */
-
- struct lap_cb *lap; /* Pointer to LAP connection structure */
-};
-
-/*
- * Used for caching the last slsap->dlsap->handle mapping
- *
- * We don't need to keep/match the remote address in the cache because
- * we are associated with a specific LAP (which implies it).
- * Jean II
- */
-typedef struct {
- int valid;
-
- __u8 slsap_sel;
- __u8 dlsap_sel;
- struct lsap_cb *lsap;
-} CACHE_ENTRY;
-
-/*
- * Information about each registred IrLAP layer
- */
-struct lap_cb {
- irda_queue_t queue; /* Must be first */
- magic_t magic;
-
- int reason; /* LAP disconnect reason */
-
- IRLMP_STATE lap_state;
-
- struct irlap_cb *irlap; /* Instance of IrLAP layer */
- hashbin_t *lsaps; /* LSAP associated with this link */
- struct lsap_cb *flow_next; /* Next lsap to be polled for Tx */
-
- __u8 caddr; /* Connection address */
- __u32 saddr; /* Source device address */
- __u32 daddr; /* Destination device address */
-
- struct qos_info *qos; /* LAP QoS for this session */
- struct timer_list idle_timer;
-
-#ifdef CONFIG_IRDA_CACHE_LAST_LSAP
- /* The lsap cache was moved from struct irlmp_cb to here because
- * it must be associated with the specific LAP. Also, this
- * improves performance. - Jean II */
- CACHE_ENTRY cache; /* Caching last slsap->dlsap->handle mapping */
-#endif
-};
-
-/*
- * Main structure for IrLMP
- */
-struct irlmp_cb {
- magic_t magic;
-
- __u8 conflict_flag;
-
- discovery_t discovery_cmd; /* Discovery command to use by IrLAP */
- discovery_t discovery_rsp; /* Discovery response to use by IrLAP */
-
- /* Last lsap picked automatically by irlmp_find_free_slsap() */
- int last_lsap_sel;
-
- struct timer_list discovery_timer;
-
- hashbin_t *links; /* IrLAP connection table */
- hashbin_t *unconnected_lsaps;
- hashbin_t *clients;
- hashbin_t *services;
-
- hashbin_t *cachelog; /* Current discovery log */
-
- int running;
-
- __u16_host_order hints; /* Hint bits */
-};
-
-/* Prototype declarations */
-int irlmp_init(void);
-void irlmp_cleanup(void);
-struct lsap_cb *irlmp_open_lsap(__u8 slsap, notify_t *notify, __u8 pid);
-void irlmp_close_lsap( struct lsap_cb *self);
-
-__u16 irlmp_service_to_hint(int service);
-void *irlmp_register_service(__u16 hints);
-int irlmp_unregister_service(void *handle);
-void *irlmp_register_client(__u16 hint_mask, DISCOVERY_CALLBACK1 disco_clb,
- DISCOVERY_CALLBACK2 expir_clb, void *priv);
-int irlmp_unregister_client(void *handle);
-int irlmp_update_client(void *handle, __u16 hint_mask,
- DISCOVERY_CALLBACK1 disco_clb,
- DISCOVERY_CALLBACK2 expir_clb, void *priv);
-
-void irlmp_register_link(struct irlap_cb *, __u32 saddr, notify_t *);
-void irlmp_unregister_link(__u32 saddr);
-
-int irlmp_connect_request(struct lsap_cb *, __u8 dlsap_sel,
- __u32 saddr, __u32 daddr,
- struct qos_info *, struct sk_buff *);
-void irlmp_connect_indication(struct lsap_cb *self, struct sk_buff *skb);
-int irlmp_connect_response(struct lsap_cb *, struct sk_buff *);
-void irlmp_connect_confirm(struct lsap_cb *, struct sk_buff *);
-struct lsap_cb *irlmp_dup(struct lsap_cb *self, void *instance);
-
-void irlmp_disconnect_indication(struct lsap_cb *self, LM_REASON reason,
- struct sk_buff *userdata);
-int irlmp_disconnect_request(struct lsap_cb *, struct sk_buff *userdata);
-
-void irlmp_discovery_confirm(hashbin_t *discovery_log, DISCOVERY_MODE mode);
-void irlmp_discovery_request(int nslots);
-discinfo_t *irlmp_get_discoveries(int *pn, __u16 mask, int nslots);
-void irlmp_do_expiry(void);
-void irlmp_do_discovery(int nslots);
-discovery_t *irlmp_get_discovery_response(void);
-void irlmp_discovery_expiry(discinfo_t *expiry, int number);
-
-int irlmp_data_request(struct lsap_cb *, struct sk_buff *);
-void irlmp_data_indication(struct lsap_cb *, struct sk_buff *);
-
-int irlmp_udata_request(struct lsap_cb *, struct sk_buff *);
-void irlmp_udata_indication(struct lsap_cb *, struct sk_buff *);
-
-#ifdef CONFIG_IRDA_ULTRA
-int irlmp_connless_data_request(struct lsap_cb *, struct sk_buff *, __u8);
-void irlmp_connless_data_indication(struct lsap_cb *, struct sk_buff *);
-#endif /* CONFIG_IRDA_ULTRA */
-
-void irlmp_status_indication(struct lap_cb *, LINK_STATUS link, LOCK_STATUS lock);
-void irlmp_flow_indication(struct lap_cb *self, LOCAL_FLOW flow);
-
-LM_REASON irlmp_convert_lap_reason(LAP_REASON);
-
-static inline __u32 irlmp_get_saddr(const struct lsap_cb *self)
-{
- return (self && self->lap) ? self->lap->saddr : 0;
-}
-
-static inline __u32 irlmp_get_daddr(const struct lsap_cb *self)
-{
- return (self && self->lap) ? self->lap->daddr : 0;
-}
-
-extern const char *irlmp_reasons[];
-extern int sysctl_discovery_timeout;
-extern int sysctl_discovery_slots;
-extern int sysctl_discovery;
-extern int sysctl_lap_keepalive_time; /* in ms, default is LM_IDLE_TIMEOUT */
-extern struct irlmp_cb *irlmp;
-
-/* Check if LAP queue is full.
- * Used by IrTTP for low control, see comments in irlap.h - Jean II */
-static inline int irlmp_lap_tx_queue_full(struct lsap_cb *self)
-{
- if (self == NULL)
- return 0;
- if (self->lap == NULL)
- return 0;
- if (self->lap->irlap == NULL)
- return 0;
-
- return IRLAP_GET_TX_QUEUE_LEN(self->lap->irlap) >= LAP_HIGH_THRESHOLD;
-}
-
-/* After doing a irlmp_dup(), this get one of the two socket back into
- * a state where it's waiting incomming connections.
- * Note : this can be used *only* if the socket is not yet connected
- * (i.e. NO irlmp_connect_response() done on this socket).
- * - Jean II */
-static inline void irlmp_listen(struct lsap_cb *self)
-{
- self->dlsap_sel = LSAP_ANY;
- self->lap = NULL;
- self->lsap_state = LSAP_DISCONNECTED;
- /* Started when we received the LM_CONNECT_INDICATION */
- del_timer(&self->watchdog_timer);
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/irda/irlmp_event.h b/ANDROID_3.4.5/include/net/irda/irlmp_event.h
deleted file mode 100644
index 9e4ec17a..00000000
--- a/ANDROID_3.4.5/include/net/irda/irlmp_event.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/*********************************************************************
- *
- * Filename: irlmp_event.h
- * Version: 0.1
- * Description: IrDA-LMP event handling
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Mon Aug 4 20:40:53 1997
- * Modified at: Thu Jul 8 12:18:54 1999
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- * Copyright (c) 1997, 1999 Dag Brattli <dagb@cs.uit.no>,
- * All Rights Reserved.
- * Copyright (c) 2000-2002 Jean Tourrilhes <jt@hpl.hp.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.
- *
- * Neither Dag Brattli nor University of Tromsø admit liability nor
- * provide warranty for any of this software. This material is
- * provided "AS-IS" and at no charge.
- *
- ********************************************************************/
-
-#ifndef IRLMP_EVENT_H
-#define IRLMP_EVENT_H
-
-/* A few forward declarations (to make compiler happy) */
-struct irlmp_cb;
-struct lsap_cb;
-struct lap_cb;
-struct discovery_t;
-
-/* LAP states */
-typedef enum {
- /* IrLAP connection control states */
- LAP_STANDBY, /* No LAP connection */
- LAP_U_CONNECT, /* Starting LAP connection */
- LAP_ACTIVE, /* LAP connection is active */
-} IRLMP_STATE;
-
-/* LSAP connection control states */
-typedef enum {
- LSAP_DISCONNECTED, /* No LSAP connection */
- LSAP_CONNECT, /* Connect indication from peer */
- LSAP_CONNECT_PEND, /* Connect request from service user */
- LSAP_DATA_TRANSFER_READY, /* LSAP connection established */
- LSAP_SETUP, /* Trying to set up LSAP connection */
- LSAP_SETUP_PEND, /* Request to start LAP connection */
-} LSAP_STATE;
-
-typedef enum {
- /* LSAP events */
- LM_CONNECT_REQUEST,
- LM_CONNECT_CONFIRM,
- LM_CONNECT_RESPONSE,
- LM_CONNECT_INDICATION,
-
- LM_DISCONNECT_INDICATION,
- LM_DISCONNECT_REQUEST,
-
- LM_DATA_REQUEST,
- LM_UDATA_REQUEST,
- LM_DATA_INDICATION,
- LM_UDATA_INDICATION,
-
- LM_WATCHDOG_TIMEOUT,
-
- /* IrLAP events */
- LM_LAP_CONNECT_REQUEST,
- LM_LAP_CONNECT_INDICATION,
- LM_LAP_CONNECT_CONFIRM,
- LM_LAP_DISCONNECT_INDICATION,
- LM_LAP_DISCONNECT_REQUEST,
- LM_LAP_DISCOVERY_REQUEST,
- LM_LAP_DISCOVERY_CONFIRM,
- LM_LAP_IDLE_TIMEOUT,
-} IRLMP_EVENT;
-
-extern const char *const irlmp_state[];
-extern const char *const irlsap_state[];
-
-void irlmp_watchdog_timer_expired(void *data);
-void irlmp_discovery_timer_expired(void *data);
-void irlmp_idle_timer_expired(void *data);
-
-void irlmp_do_lap_event(struct lap_cb *self, IRLMP_EVENT event,
- struct sk_buff *skb);
-int irlmp_do_lsap_event(struct lsap_cb *self, IRLMP_EVENT event,
- struct sk_buff *skb);
-
-#endif /* IRLMP_EVENT_H */
-
-
-
-
diff --git a/ANDROID_3.4.5/include/net/irda/irlmp_frame.h b/ANDROID_3.4.5/include/net/irda/irlmp_frame.h
deleted file mode 100644
index 1906eb71..00000000
--- a/ANDROID_3.4.5/include/net/irda/irlmp_frame.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*********************************************************************
- *
- * Filename: irlmp_frame.h
- * Version: 0.9
- * Description:
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Tue Aug 19 02:09:59 1997
- * Modified at: Fri Dec 10 13:21:53 1999
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- * Copyright (c) 1997, 1999 Dag Brattli <dagb@cs.uit.no>,
- * 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.
- *
- * Neither Dag Brattli nor University of Tromsø admit liability nor
- * provide warranty for any of this software. This material is
- * provided "AS-IS" and at no charge.
- *
- ********************************************************************/
-
-#ifndef IRMLP_FRAME_H
-#define IRMLP_FRAME_H
-
-#include <linux/skbuff.h>
-
-#include <net/irda/discovery.h>
-
-/* IrLMP frame opcodes */
-#define CONNECT_CMD 0x01
-#define CONNECT_CNF 0x81
-#define DISCONNECT 0x02
-#define ACCESSMODE_CMD 0x03
-#define ACCESSMODE_CNF 0x83
-
-#define CONTROL_BIT 0x80
-
-void irlmp_send_data_pdu(struct lap_cb *self, __u8 dlsap, __u8 slsap,
- int expedited, struct sk_buff *skb);
-void irlmp_send_lcf_pdu(struct lap_cb *self, __u8 dlsap, __u8 slsap,
- __u8 opcode, struct sk_buff *skb);
-void irlmp_link_data_indication(struct lap_cb *, struct sk_buff *,
- int unreliable);
-#ifdef CONFIG_IRDA_ULTRA
-void irlmp_link_unitdata_indication(struct lap_cb *, struct sk_buff *);
-#endif /* CONFIG_IRDA_ULTRA */
-
-void irlmp_link_connect_indication(struct lap_cb *, __u32 saddr, __u32 daddr,
- struct qos_info *qos, struct sk_buff *skb);
-void irlmp_link_connect_request(__u32 daddr);
-void irlmp_link_connect_confirm(struct lap_cb *self, struct qos_info *qos,
- struct sk_buff *skb);
-void irlmp_link_disconnect_indication(struct lap_cb *, struct irlap_cb *,
- LAP_REASON reason, struct sk_buff *);
-void irlmp_link_discovery_confirm(struct lap_cb *self, hashbin_t *log);
-void irlmp_link_discovery_indication(struct lap_cb *, discovery_t *discovery);
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/irda/irmod.h b/ANDROID_3.4.5/include/net/irda/irmod.h
deleted file mode 100644
index 86f0dbb8..00000000
--- a/ANDROID_3.4.5/include/net/irda/irmod.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/*********************************************************************
- *
- * Filename: irmod.h
- * Version: 0.3
- * Description: IrDA module and utilities functions
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Mon Dec 15 13:58:52 1997
- * Modified at: Fri Jan 28 13:15:24 2000
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- * Copyright (c) 1998-2000 Dag Brattli, All Rights Reserved.
- * Copyright (c) 2000-2002 Jean Tourrilhes <jt@hpl.hp.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.
- *
- * Neither Dag Brattli nor University of Tromsø admit liability nor
- * provide warranty for any of this software. This material is
- * provided "AS-IS" and at no charg.
- *
- ********************************************************************/
-
-#ifndef IRMOD_H
-#define IRMOD_H
-
-/* Misc status information */
-typedef enum {
- STATUS_OK,
- STATUS_ABORTED,
- STATUS_NO_ACTIVITY,
- STATUS_NOISY,
- STATUS_REMOTE,
-} LINK_STATUS;
-
-typedef enum {
- LOCK_NO_CHANGE,
- LOCK_LOCKED,
- LOCK_UNLOCKED,
-} LOCK_STATUS;
-
-typedef enum { FLOW_STOP, FLOW_START } LOCAL_FLOW;
-
-/*
- * IrLMP disconnect reasons. The order is very important, since they
- * correspond to disconnect reasons sent in IrLMP disconnect frames, so
- * please do not touch :-)
- */
-typedef enum {
- LM_USER_REQUEST = 1, /* User request */
- LM_LAP_DISCONNECT, /* Unexpected IrLAP disconnect */
- LM_CONNECT_FAILURE, /* Failed to establish IrLAP connection */
- LM_LAP_RESET, /* IrLAP reset */
- LM_INIT_DISCONNECT, /* Link Management initiated disconnect */
- LM_LSAP_NOTCONN, /* Data delivered on unconnected LSAP */
- LM_NON_RESP_CLIENT, /* Non responsive LM-MUX client */
- LM_NO_AVAIL_CLIENT, /* No available LM-MUX client */
- LM_CONN_HALF_OPEN, /* Connection is half open */
- LM_BAD_SOURCE_ADDR, /* Illegal source address (i.e 0x00) */
-} LM_REASON;
-#define LM_UNKNOWN 0xff /* Unspecified disconnect reason */
-
-/* A few forward declarations (to make compiler happy) */
-struct qos_info; /* in <net/irda/qos.h> */
-
-/*
- * Notify structure used between transport and link management layers
- */
-typedef struct {
- int (*data_indication)(void *priv, void *sap, struct sk_buff *skb);
- int (*udata_indication)(void *priv, void *sap, struct sk_buff *skb);
- void (*connect_confirm)(void *instance, void *sap,
- struct qos_info *qos, __u32 max_sdu_size,
- __u8 max_header_size, struct sk_buff *skb);
- void (*connect_indication)(void *instance, void *sap,
- struct qos_info *qos, __u32 max_sdu_size,
- __u8 max_header_size, struct sk_buff *skb);
- void (*disconnect_indication)(void *instance, void *sap,
- LM_REASON reason, struct sk_buff *);
- void (*flow_indication)(void *instance, void *sap, LOCAL_FLOW flow);
- void (*status_indication)(void *instance,
- LINK_STATUS link, LOCK_STATUS lock);
- void *instance; /* Layer instance pointer */
- char name[16]; /* Name of layer */
-} notify_t;
-
-#define NOTIFY_MAX_NAME 16
-
-/* Zero the notify structure */
-void irda_notify_init(notify_t *notify);
-
-/* Locking wrapper - Note the inverted logic on irda_lock().
- * Those function basically return false if the lock is already in the
- * position you want to set it. - Jean II */
-#define irda_lock(lock) (! test_and_set_bit(0, (void *) (lock)))
-#define irda_unlock(lock) (test_and_clear_bit(0, (void *) (lock)))
-
-#endif /* IRMOD_H */
-
-
-
-
-
-
-
-
-
diff --git a/ANDROID_3.4.5/include/net/irda/irqueue.h b/ANDROID_3.4.5/include/net/irda/irqueue.h
deleted file mode 100644
index 37f512bd..00000000
--- a/ANDROID_3.4.5/include/net/irda/irqueue.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/*********************************************************************
- *
- * Filename: irqueue.h
- * Version: 0.3
- * Description: General queue implementation
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Tue Jun 9 13:26:50 1998
- * Modified at: Thu Oct 7 13:25:16 1999
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- * Copyright (C) 1998-1999, Aage Kvalnes <aage@cs.uit.no>
- * Copyright (c) 1998, Dag Brattli
- * All Rights Reserved.
- *
- * This code is taken from the Vortex Operating System written by Aage
- * Kvalnes and has been ported to Linux and Linux/IR by Dag Brattli
- *
- * 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.
- *
- * Neither Dag Brattli nor University of Tromsø admit liability nor
- * provide warranty for any of this software. This material is
- * provided "AS-IS" and at no charge.
- *
- ********************************************************************/
-
-#include <linux/types.h>
-#include <linux/spinlock.h>
-
-#ifndef IRDA_QUEUE_H
-#define IRDA_QUEUE_H
-
-#define NAME_SIZE 32
-
-/*
- * Hash types (some flags can be xored)
- * See comments in irqueue.c for which one to use...
- */
-#define HB_NOLOCK 0 /* No concurent access prevention */
-#define HB_LOCK 1 /* Prevent concurent write with global lock */
-
-/*
- * Hash defines
- */
-#define HASHBIN_SIZE 8
-#define HASHBIN_MASK 0x7
-
-#ifndef IRDA_ALIGN
-#define IRDA_ALIGN __attribute__((aligned))
-#endif
-
-#define Q_NULL { NULL, NULL, "", 0 }
-
-typedef void (*FREE_FUNC)(void *arg);
-
-struct irda_queue {
- struct irda_queue *q_next;
- struct irda_queue *q_prev;
-
- char q_name[NAME_SIZE];
- long q_hash; /* Must be able to cast a (void *) */
-};
-typedef struct irda_queue irda_queue_t;
-
-typedef struct hashbin_t {
- __u32 magic;
- int hb_type;
- int hb_size;
- spinlock_t hb_spinlock; /* HB_LOCK - Can be used by the user */
-
- irda_queue_t* hb_queue[HASHBIN_SIZE] IRDA_ALIGN;
-
- irda_queue_t* hb_current;
-} hashbin_t;
-
-hashbin_t *hashbin_new(int type);
-int hashbin_delete(hashbin_t* hashbin, FREE_FUNC func);
-int hashbin_clear(hashbin_t* hashbin, FREE_FUNC free_func);
-void hashbin_insert(hashbin_t* hashbin, irda_queue_t* entry, long hashv,
- const char* name);
-void* hashbin_remove(hashbin_t* hashbin, long hashv, const char* name);
-void* hashbin_remove_first(hashbin_t *hashbin);
-void* hashbin_remove_this( hashbin_t* hashbin, irda_queue_t* entry);
-void* hashbin_find(hashbin_t* hashbin, long hashv, const char* name);
-void* hashbin_lock_find(hashbin_t* hashbin, long hashv, const char* name);
-void* hashbin_find_next(hashbin_t* hashbin, long hashv, const char* name,
- void ** pnext);
-irda_queue_t *hashbin_get_first(hashbin_t *hashbin);
-irda_queue_t *hashbin_get_next(hashbin_t *hashbin);
-
-#define HASHBIN_GET_SIZE(hashbin) hashbin->hb_size
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/irda/irttp.h b/ANDROID_3.4.5/include/net/irda/irttp.h
deleted file mode 100644
index af4b8772..00000000
--- a/ANDROID_3.4.5/include/net/irda/irttp.h
+++ /dev/null
@@ -1,210 +0,0 @@
-/*********************************************************************
- *
- * Filename: irttp.h
- * Version: 1.0
- * Description: Tiny Transport Protocol (TTP) definitions
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Sun Aug 31 20:14:31 1997
- * Modified at: Sun Dec 12 13:09:07 1999
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- * Copyright (c) 1998-1999 Dag Brattli <dagb@cs.uit.no>,
- * All Rights Reserved.
- * Copyright (c) 2000-2002 Jean Tourrilhes <jt@hpl.hp.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.
- *
- * Neither Dag Brattli nor University of Tromsø admit liability nor
- * provide warranty for any of this software. This material is
- * provided "AS-IS" and at no charge.
- *
- ********************************************************************/
-
-#ifndef IRTTP_H
-#define IRTTP_H
-
-#include <linux/types.h>
-#include <linux/skbuff.h>
-#include <linux/spinlock.h>
-
-#include <net/irda/irda.h>
-#include <net/irda/irlmp.h> /* struct lsap_cb */
-#include <net/irda/qos.h> /* struct qos_info */
-#include <net/irda/irqueue.h>
-
-#define TTP_MAX_CONNECTIONS LM_MAX_CONNECTIONS
-#define TTP_HEADER 1
-#define TTP_MAX_HEADER (TTP_HEADER + LMP_MAX_HEADER)
-#define TTP_SAR_HEADER 5
-#define TTP_PARAMETERS 0x80
-#define TTP_MORE 0x80
-
-/* Transmission queue sizes */
-/* Worst case scenario, two window of data - Jean II */
-#define TTP_TX_MAX_QUEUE 14
-/* We need to keep at least 5 frames to make sure that we can refill
- * appropriately the LAP layer. LAP keeps only two buffers, and we need
- * to have 7 to make a full window - Jean II */
-#define TTP_TX_LOW_THRESHOLD 5
-/* Most clients are synchronous with respect to flow control, so we can
- * keep a low number of Tx buffers in TTP - Jean II */
-#define TTP_TX_HIGH_THRESHOLD 7
-
-/* Receive queue sizes */
-/* Minimum of credit that the peer should hold.
- * If the peer has less credits than 9 frames, we will explicitly send
- * him some credits (through irttp_give_credit() and a specific frame).
- * Note that when we give credits it's likely that it won't be sent in
- * this LAP window, but in the next one. So, we make sure that the peer
- * has something to send while waiting for credits (one LAP window == 7
- * + 1 frames while he process the credits). - Jean II */
-#define TTP_RX_MIN_CREDIT 8
-/* This is the default maximum number of credits held by the peer, so the
- * default maximum number of frames he can send us before needing flow
- * control answer from us (this may be negociated differently at TSAP setup).
- * We want to minimise the number of times we have to explicitly send some
- * credit to the peer, hoping we can piggyback it on the return data. In
- * particular, it doesn't make sense for us to send credit more than once
- * per LAP window.
- * Moreover, giving credits has some latency, so we need strictly more than
- * a LAP window, otherwise we may already have credits in our Tx queue.
- * But on the other hand, we don't want to keep too many Rx buffer here
- * before starting to flow control the other end, so make it exactly one
- * LAP window + 1 + MIN_CREDITS. - Jean II */
-#define TTP_RX_DEFAULT_CREDIT 16
-/* Maximum number of credits we can allow the peer to have, and therefore
- * maximum Rx queue size.
- * Note that we try to deliver packets to the higher layer every time we
- * receive something, so in normal mode the Rx queue will never contains
- * more than one or two packets. - Jean II */
-#define TTP_RX_MAX_CREDIT 21
-
-/* What clients should use when calling ttp_open_tsap() */
-#define DEFAULT_INITIAL_CREDIT TTP_RX_DEFAULT_CREDIT
-
-/* Some priorities for disconnect requests */
-#define P_NORMAL 0
-#define P_HIGH 1
-
-#define TTP_SAR_DISABLE 0
-#define TTP_SAR_UNBOUND 0xffffffff
-
-/* Parameters */
-#define TTP_MAX_SDU_SIZE 0x01
-
-/*
- * This structure contains all data associated with one instance of a TTP
- * connection.
- */
-struct tsap_cb {
- irda_queue_t q; /* Must be first */
- magic_t magic; /* Just in case */
-
- __u8 stsap_sel; /* Source TSAP */
- __u8 dtsap_sel; /* Destination TSAP */
-
- struct lsap_cb *lsap; /* Corresponding LSAP to this TSAP */
-
- __u8 connected; /* TSAP connected */
-
- __u8 initial_credit; /* Initial credit to give peer */
-
- int avail_credit; /* Available credit to return to peer */
- int remote_credit; /* Credit held by peer TTP entity */
- int send_credit; /* Credit held by local TTP entity */
-
- struct sk_buff_head tx_queue; /* Frames to be transmitted */
- struct sk_buff_head rx_queue; /* Received frames */
- struct sk_buff_head rx_fragments;
- int tx_queue_lock;
- int rx_queue_lock;
- spinlock_t lock;
-
- notify_t notify; /* Callbacks to client layer */
-
- struct net_device_stats stats;
- struct timer_list todo_timer;
-
- __u32 max_seg_size; /* Max data that fit into an IrLAP frame */
- __u8 max_header_size;
-
- int rx_sdu_busy; /* RxSdu.busy */
- __u32 rx_sdu_size; /* Current size of a partially received frame */
- __u32 rx_max_sdu_size; /* Max receive user data size */
-
- int tx_sdu_busy; /* TxSdu.busy */
- __u32 tx_max_sdu_size; /* Max transmit user data size */
-
- int close_pend; /* Close, but disconnect_pend */
- unsigned long disconnect_pend; /* Disconnect, but still data to send */
- struct sk_buff *disconnect_skb;
-};
-
-struct irttp_cb {
- magic_t magic;
- hashbin_t *tsaps;
-};
-
-int irttp_init(void);
-void irttp_cleanup(void);
-
-struct tsap_cb *irttp_open_tsap(__u8 stsap_sel, int credit, notify_t *notify);
-int irttp_close_tsap(struct tsap_cb *self);
-
-int irttp_data_request(struct tsap_cb *self, struct sk_buff *skb);
-int irttp_udata_request(struct tsap_cb *self, struct sk_buff *skb);
-
-int irttp_connect_request(struct tsap_cb *self, __u8 dtsap_sel,
- __u32 saddr, __u32 daddr,
- struct qos_info *qos, __u32 max_sdu_size,
- struct sk_buff *userdata);
-int irttp_connect_response(struct tsap_cb *self, __u32 max_sdu_size,
- struct sk_buff *userdata);
-int irttp_disconnect_request(struct tsap_cb *self, struct sk_buff *skb,
- int priority);
-void irttp_flow_request(struct tsap_cb *self, LOCAL_FLOW flow);
-struct tsap_cb *irttp_dup(struct tsap_cb *self, void *instance);
-
-static inline __u32 irttp_get_saddr(struct tsap_cb *self)
-{
- return irlmp_get_saddr(self->lsap);
-}
-
-static inline __u32 irttp_get_daddr(struct tsap_cb *self)
-{
- return irlmp_get_daddr(self->lsap);
-}
-
-static inline __u32 irttp_get_max_seg_size(struct tsap_cb *self)
-{
- return self->max_seg_size;
-}
-
-/* After doing a irttp_dup(), this get one of the two socket back into
- * a state where it's waiting incomming connections.
- * Note : this can be used *only* if the socket is not yet connected
- * (i.e. NO irttp_connect_response() done on this socket).
- * - Jean II */
-static inline void irttp_listen(struct tsap_cb *self)
-{
- irlmp_listen(self->lsap);
- self->dtsap_sel = LSAP_ANY;
-}
-
-/* Return TRUE if the node is in primary mode (i.e. master)
- * - Jean II */
-static inline int irttp_is_primary(struct tsap_cb *self)
-{
- if ((self == NULL) ||
- (self->lsap == NULL) ||
- (self->lsap->lap == NULL) ||
- (self->lsap->lap->irlap == NULL))
- return -2;
- return irlap_is_primary(self->lsap->lap->irlap);
-}
-
-#endif /* IRTTP_H */
diff --git a/ANDROID_3.4.5/include/net/irda/parameters.h b/ANDROID_3.4.5/include/net/irda/parameters.h
deleted file mode 100644
index c0d93884..00000000
--- a/ANDROID_3.4.5/include/net/irda/parameters.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/*********************************************************************
- *
- * Filename: parameters.h
- * Version: 1.0
- * Description: A more general way to handle (pi,pl,pv) parameters
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Mon Jun 7 08:47:28 1999
- * Modified at: Sun Jan 30 14:05:14 2000
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- * Copyright (c) 1999-2000 Dag Brattli, 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
- *
- * Michel Dänzer <daenzer@debian.org>, 10/2001
- * - simplify irda_pv_t to avoid endianness issues
- *
- ********************************************************************/
-
-#ifndef IRDA_PARAMS_H
-#define IRDA_PARAMS_H
-
-/*
- * The currently supported types. Beware not to change the sequence since
- * it a good reason why the sized integers has a value equal to their size
- */
-typedef enum {
- PV_INTEGER, /* Integer of any (pl) length */
- PV_INT_8_BITS, /* Integer of 8 bits in length */
- PV_INT_16_BITS, /* Integer of 16 bits in length */
- PV_STRING, /* \0 terminated string */
- PV_INT_32_BITS, /* Integer of 32 bits in length */
- PV_OCT_SEQ, /* Octet sequence */
- PV_NO_VALUE /* Does not contain any value (pl=0) */
-} PV_TYPE;
-
-/* Bit 7 of type field */
-#define PV_BIG_ENDIAN 0x80
-#define PV_LITTLE_ENDIAN 0x00
-#define PV_MASK 0x7f /* To mask away endian bit */
-
-#define PV_PUT 0
-#define PV_GET 1
-
-typedef union {
- char *c;
- __u32 i;
- __u32 *ip;
-} irda_pv_t;
-
-typedef struct {
- __u8 pi;
- __u8 pl;
- irda_pv_t pv;
-} irda_param_t;
-
-typedef int (*PI_HANDLER)(void *self, irda_param_t *param, int get);
-typedef int (*PV_HANDLER)(void *self, __u8 *buf, int len, __u8 pi,
- PV_TYPE type, PI_HANDLER func);
-
-typedef struct {
- PI_HANDLER func; /* Handler for this parameter identifier */
- PV_TYPE type; /* Data type for this parameter */
-} pi_minor_info_t;
-
-typedef struct {
- pi_minor_info_t *pi_minor_call_table;
- int len;
-} pi_major_info_t;
-
-typedef struct {
- pi_major_info_t *tables;
- int len;
- __u8 pi_mask;
- int pi_major_offset;
-} pi_param_info_t;
-
-int irda_param_pack(__u8 *buf, char *fmt, ...);
-
-int irda_param_insert(void *self, __u8 pi, __u8 *buf, int len,
- pi_param_info_t *info);
-int irda_param_extract_all(void *self, __u8 *buf, int len,
- pi_param_info_t *info);
-
-#define irda_param_insert_byte(buf,pi,pv) irda_param_pack(buf,"bbb",pi,1,pv)
-
-#endif /* IRDA_PARAMS_H */
-
diff --git a/ANDROID_3.4.5/include/net/irda/qos.h b/ANDROID_3.4.5/include/net/irda/qos.h
deleted file mode 100644
index cc577dc0..00000000
--- a/ANDROID_3.4.5/include/net/irda/qos.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/*********************************************************************
- *
- * Filename: qos.h
- * Version: 1.0
- * Description: Quality of Service definitions
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Fri Sep 19 23:21:09 1997
- * Modified at: Thu Dec 2 13:51:54 1999
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- * Copyright (c) 1999 Dag Brattli, 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
- *
- ********************************************************************/
-
-#ifndef IRDA_QOS_H
-#define IRDA_QOS_H
-
-#include <linux/skbuff.h>
-
-#include <net/irda/parameters.h>
-
-#define PI_BAUD_RATE 0x01
-#define PI_MAX_TURN_TIME 0x82
-#define PI_DATA_SIZE 0x83
-#define PI_WINDOW_SIZE 0x84
-#define PI_ADD_BOFS 0x85
-#define PI_MIN_TURN_TIME 0x86
-#define PI_LINK_DISC 0x08
-
-#define IR_115200_MAX 0x3f
-
-/* Baud rates (first byte) */
-#define IR_2400 0x01
-#define IR_9600 0x02
-#define IR_19200 0x04
-#define IR_38400 0x08
-#define IR_57600 0x10
-#define IR_115200 0x20
-#define IR_576000 0x40
-#define IR_1152000 0x80
-
-/* Baud rates (second byte) */
-#define IR_4000000 0x01
-#define IR_16000000 0x02
-
-/* Quality of Service information */
-typedef struct {
- __u32 value;
- __u16 bits; /* LSB is first byte, MSB is second byte */
-} qos_value_t;
-
-struct qos_info {
- magic_t magic;
-
- qos_value_t baud_rate; /* IR_11520O | ... */
- qos_value_t max_turn_time;
- qos_value_t data_size;
- qos_value_t window_size;
- qos_value_t additional_bofs;
- qos_value_t min_turn_time;
- qos_value_t link_disc_time;
-
- qos_value_t power;
-};
-
-extern int sysctl_max_baud_rate;
-extern int sysctl_max_inactive_time;
-
-void irda_init_max_qos_capabilies(struct qos_info *qos);
-void irda_qos_compute_intersection(struct qos_info *, struct qos_info *);
-
-__u32 irlap_max_line_capacity(__u32 speed, __u32 max_turn_time);
-
-void irda_qos_bits_to_value(struct qos_info *qos);
-
-/* So simple, how could we not inline those two ?
- * Note : one byte is 10 bits if you include start and stop bits
- * Jean II */
-#define irlap_min_turn_time_in_bytes(speed, min_turn_time) ( \
- speed * min_turn_time / 10000000 \
-)
-#define irlap_xbofs_in_usec(speed, xbofs) ( \
- xbofs * 10000000 / speed \
-)
-
-#endif
-
diff --git a/ANDROID_3.4.5/include/net/irda/timer.h b/ANDROID_3.4.5/include/net/irda/timer.h
deleted file mode 100644
index cb2615cc..00000000
--- a/ANDROID_3.4.5/include/net/irda/timer.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/*********************************************************************
- *
- * Filename: timer.h
- * Version:
- * Description:
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Sat Aug 16 00:59:29 1997
- * Modified at: Thu Oct 7 12:25:24 1999
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- * Copyright (c) 1997, 1998-1999 Dag Brattli <dagb@cs.uit.no>,
- * All Rights Reserved.
- * Copyright (c) 2000-2002 Jean Tourrilhes <jt@hpl.hp.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.
- *
- * Neither Dag Brattli nor University of Tromsø admit liability nor
- * provide warranty for any of this software. This material is
- * provided "AS-IS" and at no charge.
- *
- ********************************************************************/
-
-#ifndef TIMER_H
-#define TIMER_H
-
-#include <linux/timer.h>
-#include <linux/jiffies.h>
-
-#include <asm/param.h> /* for HZ */
-
-#include <net/irda/irda.h>
-
-/* A few forward declarations (to make compiler happy) */
-struct irlmp_cb;
-struct irlap_cb;
-struct lsap_cb;
-struct lap_cb;
-
-/*
- * Timeout definitions, some defined in IrLAP 6.13.5 - p. 92
- */
-#define POLL_TIMEOUT (450*HZ/1000) /* Must never exceed 500 ms */
-#define FINAL_TIMEOUT (500*HZ/1000) /* Must never exceed 500 ms */
-
-/*
- * Normally twice of p-timer. Note 3, IrLAP 6.3.11.2 - p. 60 suggests
- * at least twice duration of the P-timer.
- */
-#define WD_TIMEOUT (POLL_TIMEOUT*2)
-
-#define MEDIABUSY_TIMEOUT (500*HZ/1000) /* 500 msec */
-#define SMALLBUSY_TIMEOUT (100*HZ/1000) /* 100 msec - IrLAP 6.13.4 */
-
-/*
- * Slot timer must never exceed 85 ms, and must always be at least 25 ms,
- * suggested to 75-85 msec by IrDA lite. This doesn't work with a lot of
- * devices, and other stackes uses a lot more, so it's best we do it as well
- * (Note : this is the default value and sysctl overides it - Jean II)
- */
-#define SLOT_TIMEOUT (90*HZ/1000)
-
-/*
- * The latest discovery frame (XID) is longer due to the extra discovery
- * information (hints, device name...). This is its extra length.
- * We use that when setting the query timeout. Jean II
- */
-#define XIDEXTRA_TIMEOUT (34*HZ/1000) /* 34 msec */
-
-#define WATCHDOG_TIMEOUT (20*HZ) /* 20 sec */
-
-typedef void (*TIMER_CALLBACK)(void *);
-
-static inline void irda_start_timer(struct timer_list *ptimer, int timeout,
- void* data, TIMER_CALLBACK callback)
-{
- ptimer->function = (void (*)(unsigned long)) callback;
- ptimer->data = (unsigned long) data;
-
- /* Set new value for timer (update or add timer).
- * We use mod_timer() because it's more efficient and also
- * safer with respect to race conditions - Jean II */
- mod_timer(ptimer, jiffies + timeout);
-}
-
-
-void irlap_start_slot_timer(struct irlap_cb *self, int timeout);
-void irlap_start_query_timer(struct irlap_cb *self, int S, int s);
-void irlap_start_final_timer(struct irlap_cb *self, int timeout);
-void irlap_start_wd_timer(struct irlap_cb *self, int timeout);
-void irlap_start_backoff_timer(struct irlap_cb *self, int timeout);
-
-void irlap_start_mbusy_timer(struct irlap_cb *self, int timeout);
-void irlap_stop_mbusy_timer(struct irlap_cb *);
-
-void irlmp_start_watchdog_timer(struct lsap_cb *, int timeout);
-void irlmp_start_discovery_timer(struct irlmp_cb *, int timeout);
-void irlmp_start_idle_timer(struct lap_cb *, int timeout);
-void irlmp_stop_idle_timer(struct lap_cb *self);
-
-#endif
-
diff --git a/ANDROID_3.4.5/include/net/irda/wrapper.h b/ANDROID_3.4.5/include/net/irda/wrapper.h
deleted file mode 100644
index eef53ebe..00000000
--- a/ANDROID_3.4.5/include/net/irda/wrapper.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*********************************************************************
- *
- * Filename: wrapper.h
- * Version: 1.2
- * Description: IrDA SIR async wrapper layer
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Mon Aug 4 20:40:53 1997
- * Modified at: Tue Jan 11 12:37:29 2000
- * Modified by: Dag Brattli <dagb@cs.uit.no>
- *
- * Copyright (c) 1998-2000 Dag Brattli <dagb@cs.uit.no>,
- * 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.
- *
- * Neither Dag Brattli nor University of Tromsø admit liability nor
- * provide warranty for any of this software. This material is
- * provided "AS-IS" and at no charge.
- *
- ********************************************************************/
-
-#ifndef WRAPPER_H
-#define WRAPPER_H
-
-#include <linux/types.h>
-#include <linux/skbuff.h>
-#include <linux/netdevice.h>
-
-#include <net/irda/irda_device.h> /* iobuff_t */
-
-#define BOF 0xc0 /* Beginning of frame */
-#define XBOF 0xff
-#define EOF 0xc1 /* End of frame */
-#define CE 0x7d /* Control escape */
-
-#define STA BOF /* Start flag */
-#define STO EOF /* End flag */
-
-#define IRDA_TRANS 0x20 /* Asynchronous transparency modifier */
-
-/* States for receiving a frame in async mode */
-enum {
- OUTSIDE_FRAME,
- BEGIN_FRAME,
- LINK_ESCAPE,
- INSIDE_FRAME
-};
-
-/* Proto definitions */
-int async_wrap_skb(struct sk_buff *skb, __u8 *tx_buff, int buffsize);
-void async_unwrap_char(struct net_device *dev, struct net_device_stats *stats,
- iobuff_t *buf, __u8 byte);
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/iucv/af_iucv.h b/ANDROID_3.4.5/include/net/iucv/af_iucv.h
deleted file mode 100644
index cc7c1973..00000000
--- a/ANDROID_3.4.5/include/net/iucv/af_iucv.h
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Copyright 2006 IBM Corporation
- * IUCV protocol stack for Linux on zSeries
- * Version 1.0
- * Author(s): Jennifer Hunt <jenhunt@us.ibm.com>
- *
- */
-
-#ifndef __AFIUCV_H
-#define __AFIUCV_H
-
-#include <asm/types.h>
-#include <asm/byteorder.h>
-#include <linux/list.h>
-#include <linux/poll.h>
-#include <linux/socket.h>
-#include <net/iucv/iucv.h>
-
-#ifndef AF_IUCV
-#define AF_IUCV 32
-#define PF_IUCV AF_IUCV
-#endif
-
-/* Connection and socket states */
-enum {
- IUCV_CONNECTED = 1,
- IUCV_OPEN,
- IUCV_BOUND,
- IUCV_LISTEN,
- IUCV_DISCONN,
- IUCV_CLOSING,
- IUCV_CLOSED
-};
-
-#define IUCV_QUEUELEN_DEFAULT 65535
-#define IUCV_HIPER_MSGLIM_DEFAULT 128
-#define IUCV_CONN_TIMEOUT (HZ * 40)
-#define IUCV_DISCONN_TIMEOUT (HZ * 2)
-#define IUCV_CONN_IDLE_TIMEOUT (HZ * 60)
-#define IUCV_BUFSIZE_DEFAULT 32768
-
-/* IUCV socket address */
-struct sockaddr_iucv {
- sa_family_t siucv_family;
- unsigned short siucv_port; /* Reserved */
- unsigned int siucv_addr; /* Reserved */
- char siucv_nodeid[8]; /* Reserved */
- char siucv_user_id[8]; /* Guest User Id */
- char siucv_name[8]; /* Application Name */
-};
-
-
-/* Common socket structures and functions */
-struct sock_msg_q {
- struct iucv_path *path;
- struct iucv_message msg;
- struct list_head list;
- spinlock_t lock;
-};
-
-#define AF_IUCV_FLAG_ACK 0x1
-#define AF_IUCV_FLAG_SYN 0x2
-#define AF_IUCV_FLAG_FIN 0x4
-#define AF_IUCV_FLAG_WIN 0x8
-#define AF_IUCV_FLAG_SHT 0x10
-
-struct af_iucv_trans_hdr {
- u16 magic;
- u8 version;
- u8 flags;
- u16 window;
- char destNodeID[8];
- char destUserID[8];
- char destAppName[16];
- char srcNodeID[8];
- char srcUserID[8];
- char srcAppName[16]; /* => 70 bytes */
- struct iucv_message iucv_hdr; /* => 33 bytes */
- u8 pad; /* total 104 bytes */
-} __packed;
-
-enum iucv_tx_notify {
- /* transmission of skb is completed and was successful */
- TX_NOTIFY_OK = 0,
- /* target is unreachable */
- TX_NOTIFY_UNREACHABLE = 1,
- /* transfer pending queue full */
- TX_NOTIFY_TPQFULL = 2,
- /* general error */
- TX_NOTIFY_GENERALERROR = 3,
- /* transmission of skb is pending - may interleave
- * with TX_NOTIFY_DELAYED_* */
- TX_NOTIFY_PENDING = 4,
- /* transmission of skb was done successfully (delayed) */
- TX_NOTIFY_DELAYED_OK = 5,
- /* target unreachable (detected delayed) */
- TX_NOTIFY_DELAYED_UNREACHABLE = 6,
- /* general error (detected delayed) */
- TX_NOTIFY_DELAYED_GENERALERROR = 7,
-};
-
-#define iucv_sk(__sk) ((struct iucv_sock *) __sk)
-
-#define AF_IUCV_TRANS_IUCV 0
-#define AF_IUCV_TRANS_HIPER 1
-
-struct iucv_sock {
- struct sock sk;
- char src_user_id[8];
- char src_name[8];
- char dst_user_id[8];
- char dst_name[8];
- struct list_head accept_q;
- spinlock_t accept_q_lock;
- struct sock *parent;
- struct iucv_path *path;
- struct net_device *hs_dev;
- struct sk_buff_head send_skb_q;
- struct sk_buff_head backlog_skb_q;
- struct sock_msg_q message_q;
- unsigned int send_tag;
- u8 flags;
- u16 msglimit;
- u16 msglimit_peer;
- atomic_t msg_sent;
- atomic_t msg_recv;
- atomic_t pendings;
- int transport;
- void (*sk_txnotify)(struct sk_buff *skb,
- enum iucv_tx_notify n);
-};
-
-/* iucv socket options (SOL_IUCV) */
-#define SO_IPRMDATA_MSG 0x0080 /* send/recv IPRM_DATA msgs */
-#define SO_MSGLIMIT 0x1000 /* get/set IUCV MSGLIMIT */
-#define SO_MSGSIZE 0x0800 /* get maximum msgsize */
-
-/* iucv related control messages (scm) */
-#define SCM_IUCV_TRGCLS 0x0001 /* target class control message */
-
-struct iucv_sock_list {
- struct hlist_head head;
- rwlock_t lock;
- atomic_t autobind_name;
-};
-
-unsigned int iucv_sock_poll(struct file *file, struct socket *sock,
- poll_table *wait);
-void iucv_sock_link(struct iucv_sock_list *l, struct sock *s);
-void iucv_sock_unlink(struct iucv_sock_list *l, struct sock *s);
-void iucv_accept_enqueue(struct sock *parent, struct sock *sk);
-void iucv_accept_unlink(struct sock *sk);
-struct sock *iucv_accept_dequeue(struct sock *parent, struct socket *newsock);
-
-#endif /* __IUCV_H */
diff --git a/ANDROID_3.4.5/include/net/iucv/iucv.h b/ANDROID_3.4.5/include/net/iucv/iucv.h
deleted file mode 100644
index 0894ced3..00000000
--- a/ANDROID_3.4.5/include/net/iucv/iucv.h
+++ /dev/null
@@ -1,495 +0,0 @@
-/*
- * drivers/s390/net/iucv.h
- * IUCV base support.
- *
- * S390 version
- * Copyright 2000, 2006 IBM Corporation
- * Author(s):Alan Altmark (Alan_Altmark@us.ibm.com)
- * Xenia Tkatschow (xenia@us.ibm.com)
- * Rewritten for af_iucv:
- * Martin Schwidefsky <schwidefsky@de.ibm.com>
- *
- *
- * Functionality:
- * To explore any of the IUCV functions, one must first register their
- * program using iucv_register(). Once your program has successfully
- * completed a register, it can exploit the other functions.
- * For furthur reference on all IUCV functionality, refer to the
- * CP Programming Services book, also available on the web thru
- * www.vm.ibm.com/pubs, manual # SC24-6084
- *
- * Definition of Return Codes
- * - All positive return codes including zero are reflected back
- * from CP. The definition of each return code can be found in
- * CP Programming Services book.
- * - Return Code of:
- * -EINVAL: Invalid value
- * -ENOMEM: storage allocation failed
- */
-
-#include <linux/types.h>
-#include <linux/slab.h>
-#include <asm/debug.h>
-
-/*
- * IUCV option flags usable by device drivers:
- *
- * IUCV_IPRMDATA Indicates that your program can handle a message in the
- * parameter list / a message is sent in the parameter list.
- * Used for iucv_path_accept, iucv_path_connect,
- * iucv_message_reply, iucv_message_send, iucv_message_send2way.
- * IUCV_IPQUSCE Indicates that you do not want to receive messages on this
- * path until an iucv_path_resume is issued.
- * Used for iucv_path_accept, iucv_path_connect.
- * IUCV_IPBUFLST Indicates that an address list is used for the message data.
- * Used for iucv_message_receive, iucv_message_send,
- * iucv_message_send2way.
- * IUCV_IPPRTY Specifies that you want to send priority messages.
- * Used for iucv_path_accept, iucv_path_connect,
- * iucv_message_reply, iucv_message_send, iucv_message_send2way.
- * IUCV_IPSYNC Indicates a synchronous send request.
- * Used for iucv_message_send, iucv_message_send2way.
- * IUCV_IPANSLST Indicates that an address list is used for the reply data.
- * Used for iucv_message_reply, iucv_message_send2way.
- * IUCV_IPLOCAL Specifies that the communication partner has to be on the
- * local system. If local is specified no target class can be
- * specified.
- * Used for iucv_path_connect.
- *
- * All flags are defined in the input field IPFLAGS1 of each function
- * and can be found in CP Programming Services.
- */
-#define IUCV_IPRMDATA 0x80
-#define IUCV_IPQUSCE 0x40
-#define IUCV_IPBUFLST 0x40
-#define IUCV_IPPRTY 0x20
-#define IUCV_IPANSLST 0x08
-#define IUCV_IPSYNC 0x04
-#define IUCV_IPLOCAL 0x01
-
-/*
- * iucv_array : Defines buffer array.
- * Inside the array may be 31- bit addresses and 31-bit lengths.
- * Use a pointer to an iucv_array as the buffer, reply or answer
- * parameter on iucv_message_send, iucv_message_send2way, iucv_message_receive
- * and iucv_message_reply if IUCV_IPBUFLST or IUCV_IPANSLST are used.
- */
-struct iucv_array {
- u32 address;
- u32 length;
-} __attribute__ ((aligned (8)));
-
-extern struct bus_type iucv_bus;
-extern struct device *iucv_root;
-
-/*
- * struct iucv_path
- * pathid: 16 bit path identification
- * msglim: 16 bit message limit
- * flags: properties of the path: IPRMDATA, IPQUSCE, IPPRTY
- * handler: address of iucv handler structure
- * private: private information of the handler associated with the path
- * list: list_head for the iucv_handler path list.
- */
-struct iucv_path {
- u16 pathid;
- u16 msglim;
- u8 flags;
- void *private;
- struct iucv_handler *handler;
- struct list_head list;
-};
-
-/*
- * struct iucv_message
- * id: 32 bit message id
- * audit: 32 bit error information of purged or replied messages
- * class: 32 bit target class of a message (source class for replies)
- * tag: 32 bit tag to be associated with the message
- * length: 32 bit length of the message / reply
- * reply_size: 32 bit maximum allowed length of the reply
- * rmmsg: 8 byte inline message
- * flags: message properties (IUCV_IPPRTY)
- */
-struct iucv_message {
- u32 id;
- u32 audit;
- u32 class;
- u32 tag;
- u32 length;
- u32 reply_size;
- u8 rmmsg[8];
- u8 flags;
-} __packed;
-
-/*
- * struct iucv_handler
- *
- * A vector of functions that handle IUCV interrupts. Each functions gets
- * a parameter area as defined by the CP Programming Services and private
- * pointer that is provided by the user of the interface.
- */
-struct iucv_handler {
- /*
- * The path_pending function is called after an iucv interrupt
- * type 0x01 has been received. The base code allocates a path
- * structure and "asks" the handler if this path belongs to the
- * handler. To accept the path the path_pending function needs
- * to call iucv_path_accept and return 0. If the callback returns
- * a value != 0 the iucv base code will continue with the next
- * handler. The order in which the path_pending functions are
- * called is the order of the registration of the iucv handlers
- * to the base code.
- */
- int (*path_pending)(struct iucv_path *, u8 ipvmid[8], u8 ipuser[16]);
- /*
- * The path_complete function is called after an iucv interrupt
- * type 0x02 has been received for a path that has been established
- * for this handler with iucv_path_connect and got accepted by the
- * peer with iucv_path_accept.
- */
- void (*path_complete)(struct iucv_path *, u8 ipuser[16]);
- /*
- * The path_severed function is called after an iucv interrupt
- * type 0x03 has been received. The communication peer shutdown
- * his end of the communication path. The path still exists and
- * remaining messages can be received until a iucv_path_sever
- * shuts down the other end of the path as well.
- */
- void (*path_severed)(struct iucv_path *, u8 ipuser[16]);
- /*
- * The path_quiesced function is called after an icuv interrupt
- * type 0x04 has been received. The communication peer has quiesced
- * the path. Delivery of messages is stopped until iucv_path_resume
- * has been called.
- */
- void (*path_quiesced)(struct iucv_path *, u8 ipuser[16]);
- /*
- * The path_resumed function is called after an icuv interrupt
- * type 0x05 has been received. The communication peer has resumed
- * the path.
- */
- void (*path_resumed)(struct iucv_path *, u8 ipuser[16]);
- /*
- * The message_pending function is called after an icuv interrupt
- * type 0x06 or type 0x07 has been received. A new message is
- * available and can be received with iucv_message_receive.
- */
- void (*message_pending)(struct iucv_path *, struct iucv_message *);
- /*
- * The message_complete function is called after an icuv interrupt
- * type 0x08 or type 0x09 has been received. A message send with
- * iucv_message_send2way has been replied to. The reply can be
- * received with iucv_message_receive.
- */
- void (*message_complete)(struct iucv_path *, struct iucv_message *);
-
- struct list_head list;
- struct list_head paths;
-};
-
-/**
- * iucv_register:
- * @handler: address of iucv handler structure
- * @smp: != 0 indicates that the handler can deal with out of order messages
- *
- * Registers a driver with IUCV.
- *
- * Returns 0 on success, -ENOMEM if the memory allocation for the pathid
- * table failed, or -EIO if IUCV_DECLARE_BUFFER failed on all cpus.
- */
-int iucv_register(struct iucv_handler *handler, int smp);
-
-/**
- * iucv_unregister
- * @handler: address of iucv handler structure
- * @smp: != 0 indicates that the handler can deal with out of order messages
- *
- * Unregister driver from IUCV.
- */
-void iucv_unregister(struct iucv_handler *handle, int smp);
-
-/**
- * iucv_path_alloc
- * @msglim: initial message limit
- * @flags: initial flags
- * @gfp: kmalloc allocation flag
- *
- * Allocate a new path structure for use with iucv_connect.
- *
- * Returns NULL if the memory allocation failed or a pointer to the
- * path structure.
- */
-static inline struct iucv_path *iucv_path_alloc(u16 msglim, u8 flags, gfp_t gfp)
-{
- struct iucv_path *path;
-
- path = kzalloc(sizeof(struct iucv_path), gfp);
- if (path) {
- path->msglim = msglim;
- path->flags = flags;
- }
- return path;
-}
-
-/**
- * iucv_path_free
- * @path: address of iucv path structure
- *
- * Frees a path structure.
- */
-static inline void iucv_path_free(struct iucv_path *path)
-{
- kfree(path);
-}
-
-/**
- * iucv_path_accept
- * @path: address of iucv path structure
- * @handler: address of iucv handler structure
- * @userdata: 16 bytes of data reflected to the communication partner
- * @private: private data passed to interrupt handlers for this path
- *
- * This function is issued after the user received a connection pending
- * external interrupt and now wishes to complete the IUCV communication path.
- *
- * Returns the result of the CP IUCV call.
- */
-int iucv_path_accept(struct iucv_path *path, struct iucv_handler *handler,
- u8 userdata[16], void *private);
-
-/**
- * iucv_path_connect
- * @path: address of iucv path structure
- * @handler: address of iucv handler structure
- * @userid: 8-byte user identification
- * @system: 8-byte target system identification
- * @userdata: 16 bytes of data reflected to the communication partner
- * @private: private data passed to interrupt handlers for this path
- *
- * This function establishes an IUCV path. Although the connect may complete
- * successfully, you are not able to use the path until you receive an IUCV
- * Connection Complete external interrupt.
- *
- * Returns the result of the CP IUCV call.
- */
-int iucv_path_connect(struct iucv_path *path, struct iucv_handler *handler,
- u8 userid[8], u8 system[8], u8 userdata[16],
- void *private);
-
-/**
- * iucv_path_quiesce:
- * @path: address of iucv path structure
- * @userdata: 16 bytes of data reflected to the communication partner
- *
- * This function temporarily suspends incoming messages on an IUCV path.
- * You can later reactivate the path by invoking the iucv_resume function.
- *
- * Returns the result from the CP IUCV call.
- */
-int iucv_path_quiesce(struct iucv_path *path, u8 userdata[16]);
-
-/**
- * iucv_path_resume:
- * @path: address of iucv path structure
- * @userdata: 16 bytes of data reflected to the communication partner
- *
- * This function resumes incoming messages on an IUCV path that has
- * been stopped with iucv_path_quiesce.
- *
- * Returns the result from the CP IUCV call.
- */
-int iucv_path_resume(struct iucv_path *path, u8 userdata[16]);
-
-/**
- * iucv_path_sever
- * @path: address of iucv path structure
- * @userdata: 16 bytes of data reflected to the communication partner
- *
- * This function terminates an IUCV path.
- *
- * Returns the result from the CP IUCV call.
- */
-int iucv_path_sever(struct iucv_path *path, u8 userdata[16]);
-
-/**
- * iucv_message_purge
- * @path: address of iucv path structure
- * @msg: address of iucv msg structure
- * @srccls: source class of message
- *
- * Cancels a message you have sent.
- *
- * Returns the result from the CP IUCV call.
- */
-int iucv_message_purge(struct iucv_path *path, struct iucv_message *msg,
- u32 srccls);
-
-/**
- * iucv_message_receive
- * @path: address of iucv path structure
- * @msg: address of iucv msg structure
- * @flags: flags that affect how the message is received (IUCV_IPBUFLST)
- * @buffer: address of data buffer or address of struct iucv_array
- * @size: length of data buffer
- * @residual:
- *
- * This function receives messages that are being sent to you over
- * established paths. This function will deal with RMDATA messages
- * embedded in struct iucv_message as well.
- *
- * Locking: local_bh_enable/local_bh_disable
- *
- * Returns the result from the CP IUCV call.
- */
-int iucv_message_receive(struct iucv_path *path, struct iucv_message *msg,
- u8 flags, void *buffer, size_t size, size_t *residual);
-
-/**
- * __iucv_message_receive
- * @path: address of iucv path structure
- * @msg: address of iucv msg structure
- * @flags: flags that affect how the message is received (IUCV_IPBUFLST)
- * @buffer: address of data buffer or address of struct iucv_array
- * @size: length of data buffer
- * @residual:
- *
- * This function receives messages that are being sent to you over
- * established paths. This function will deal with RMDATA messages
- * embedded in struct iucv_message as well.
- *
- * Locking: no locking.
- *
- * Returns the result from the CP IUCV call.
- */
-int __iucv_message_receive(struct iucv_path *path, struct iucv_message *msg,
- u8 flags, void *buffer, size_t size,
- size_t *residual);
-
-/**
- * iucv_message_reject
- * @path: address of iucv path structure
- * @msg: address of iucv msg structure
- *
- * The reject function refuses a specified message. Between the time you
- * are notified of a message and the time that you complete the message,
- * the message may be rejected.
- *
- * Returns the result from the CP IUCV call.
- */
-int iucv_message_reject(struct iucv_path *path, struct iucv_message *msg);
-
-/**
- * iucv_message_reply
- * @path: address of iucv path structure
- * @msg: address of iucv msg structure
- * @flags: how the reply is sent (IUCV_IPRMDATA, IUCV_IPPRTY, IUCV_IPBUFLST)
- * @reply: address of data buffer or address of struct iucv_array
- * @size: length of reply data buffer
- *
- * This function responds to the two-way messages that you receive. You
- * must identify completely the message to which you wish to reply. ie,
- * pathid, msgid, and trgcls. Prmmsg signifies the data is moved into
- * the parameter list.
- *
- * Returns the result from the CP IUCV call.
- */
-int iucv_message_reply(struct iucv_path *path, struct iucv_message *msg,
- u8 flags, void *reply, size_t size);
-
-/**
- * iucv_message_send
- * @path: address of iucv path structure
- * @msg: address of iucv msg structure
- * @flags: how the message is sent (IUCV_IPRMDATA, IUCV_IPPRTY, IUCV_IPBUFLST)
- * @srccls: source class of message
- * @buffer: address of data buffer or address of struct iucv_array
- * @size: length of send buffer
- *
- * This function transmits data to another application. Data to be
- * transmitted is in a buffer and this is a one-way message and the
- * receiver will not reply to the message.
- *
- * Locking: local_bh_enable/local_bh_disable
- *
- * Returns the result from the CP IUCV call.
- */
-int iucv_message_send(struct iucv_path *path, struct iucv_message *msg,
- u8 flags, u32 srccls, void *buffer, size_t size);
-
-/**
- * __iucv_message_send
- * @path: address of iucv path structure
- * @msg: address of iucv msg structure
- * @flags: how the message is sent (IUCV_IPRMDATA, IUCV_IPPRTY, IUCV_IPBUFLST)
- * @srccls: source class of message
- * @buffer: address of data buffer or address of struct iucv_array
- * @size: length of send buffer
- *
- * This function transmits data to another application. Data to be
- * transmitted is in a buffer and this is a one-way message and the
- * receiver will not reply to the message.
- *
- * Locking: no locking.
- *
- * Returns the result from the CP IUCV call.
- */
-int __iucv_message_send(struct iucv_path *path, struct iucv_message *msg,
- u8 flags, u32 srccls, void *buffer, size_t size);
-
-/**
- * iucv_message_send2way
- * @path: address of iucv path structure
- * @msg: address of iucv msg structure
- * @flags: how the message is sent and the reply is received
- * (IUCV_IPRMDATA, IUCV_IPBUFLST, IUCV_IPPRTY, IUCV_ANSLST)
- * @srccls: source class of message
- * @buffer: address of data buffer or address of struct iucv_array
- * @size: length of send buffer
- * @ansbuf: address of answer buffer or address of struct iucv_array
- * @asize: size of reply buffer
- *
- * This function transmits data to another application. Data to be
- * transmitted is in a buffer. The receiver of the send is expected to
- * reply to the message and a buffer is provided into which IUCV moves
- * the reply to this message.
- *
- * Returns the result from the CP IUCV call.
- */
-int iucv_message_send2way(struct iucv_path *path, struct iucv_message *msg,
- u8 flags, u32 srccls, void *buffer, size_t size,
- void *answer, size_t asize, size_t *residual);
-
-struct iucv_interface {
- int (*message_receive)(struct iucv_path *path, struct iucv_message *msg,
- u8 flags, void *buffer, size_t size, size_t *residual);
- int (*__message_receive)(struct iucv_path *path,
- struct iucv_message *msg, u8 flags, void *buffer, size_t size,
- size_t *residual);
- int (*message_reply)(struct iucv_path *path, struct iucv_message *msg,
- u8 flags, void *reply, size_t size);
- int (*message_reject)(struct iucv_path *path, struct iucv_message *msg);
- int (*message_send)(struct iucv_path *path, struct iucv_message *msg,
- u8 flags, u32 srccls, void *buffer, size_t size);
- int (*__message_send)(struct iucv_path *path, struct iucv_message *msg,
- u8 flags, u32 srccls, void *buffer, size_t size);
- int (*message_send2way)(struct iucv_path *path,
- struct iucv_message *msg, u8 flags, u32 srccls, void *buffer,
- size_t size, void *answer, size_t asize, size_t *residual);
- int (*message_purge)(struct iucv_path *path, struct iucv_message *msg,
- u32 srccls);
- int (*path_accept)(struct iucv_path *path, struct iucv_handler *handler,
- u8 userdata[16], void *private);
- int (*path_connect)(struct iucv_path *path,
- struct iucv_handler *handler,
- u8 userid[8], u8 system[8], u8 userdata[16], void *private);
- int (*path_quiesce)(struct iucv_path *path, u8 userdata[16]);
- int (*path_resume)(struct iucv_path *path, u8 userdata[16]);
- int (*path_sever)(struct iucv_path *path, u8 userdata[16]);
- int (*iucv_register)(struct iucv_handler *handler, int smp);
- void (*iucv_unregister)(struct iucv_handler *handler, int smp);
- struct bus_type *bus;
- struct device *root;
-};
-
-extern struct iucv_interface iucv_if;
diff --git a/ANDROID_3.4.5/include/net/iw_handler.h b/ANDROID_3.4.5/include/net/iw_handler.h
deleted file mode 100644
index 5d5a6a47..00000000
--- a/ANDROID_3.4.5/include/net/iw_handler.h
+++ /dev/null
@@ -1,587 +0,0 @@
-/*
- * This file define the new driver API for Wireless Extensions
- *
- * Version : 8 16.3.07
- *
- * Authors : Jean Tourrilhes - HPL - <jt@hpl.hp.com>
- * Copyright (c) 2001-2007 Jean Tourrilhes, All Rights Reserved.
- */
-
-#ifndef _IW_HANDLER_H
-#define _IW_HANDLER_H
-
-/************************** DOCUMENTATION **************************/
-/*
- * Initial driver API (1996 -> onward) :
- * -----------------------------------
- * The initial API just sends the IOCTL request received from user space
- * to the driver (via the driver ioctl handler). The driver has to
- * handle all the rest...
- *
- * The initial API also defines a specific handler in struct net_device
- * to handle wireless statistics.
- *
- * The initial APIs served us well and has proven a reasonably good design.
- * However, there is a few shortcommings :
- * o No events, everything is a request to the driver.
- * o Large ioctl function in driver with gigantic switch statement
- * (i.e. spaghetti code).
- * o Driver has to mess up with copy_to/from_user, and in many cases
- * does it unproperly. Common mistakes are :
- * * buffer overflows (no checks or off by one checks)
- * * call copy_to/from_user with irq disabled
- * o The user space interface is tied to ioctl because of the use
- * copy_to/from_user.
- *
- * New driver API (2002 -> onward) :
- * -------------------------------
- * The new driver API is just a bunch of standard functions (handlers),
- * each handling a specific Wireless Extension. The driver just export
- * the list of handler it supports, and those will be called apropriately.
- *
- * I tried to keep the main advantage of the previous API (simplicity,
- * efficiency and light weight), and also I provide a good dose of backward
- * compatibility (most structures are the same, driver can use both API
- * simultaneously, ...).
- * Hopefully, I've also addressed the shortcomming of the initial API.
- *
- * The advantage of the new API are :
- * o Handling of Extensions in driver broken in small contained functions
- * o Tighter checks of ioctl before calling the driver
- * o Flexible commit strategy (at least, the start of it)
- * o Backward compatibility (can be mixed with old API)
- * o Driver doesn't have to worry about memory and user-space issues
- * The last point is important for the following reasons :
- * o You are now able to call the new driver API from any API you
- * want (including from within other parts of the kernel).
- * o Common mistakes are avoided (buffer overflow, user space copy
- * with irq disabled and so on).
- *
- * The Drawback of the new API are :
- * o bloat (especially kernel)
- * o need to migrate existing drivers to new API
- * My initial testing shows that the new API adds around 3kB to the kernel
- * and save between 0 and 5kB from a typical driver.
- * Also, as all structures and data types are unchanged, the migration is
- * quite straightforward (but tedious).
- *
- * ---
- *
- * The new driver API is defined below in this file. User space should
- * not be aware of what's happening down there...
- *
- * A new kernel wrapper is in charge of validating the IOCTLs and calling
- * the appropriate driver handler. This is implemented in :
- * # net/core/wireless.c
- *
- * The driver export the list of handlers in :
- * # include/linux/netdevice.h (one place)
- *
- * The new driver API is available for WIRELESS_EXT >= 13.
- * Good luck with migration to the new API ;-)
- */
-
-/* ---------------------- THE IMPLEMENTATION ---------------------- */
-/*
- * Some of the choice I've made are pretty controversials. Defining an
- * API is very much weighting compromises. This goes into some of the
- * details and the thinking behind the implementation.
- *
- * Implementation goals :
- * --------------------
- * The implementation goals were as follow :
- * o Obvious : you should not need a PhD to understand what's happening,
- * the benefit is easier maintenance.
- * o Flexible : it should accommodate a wide variety of driver
- * implementations and be as flexible as the old API.
- * o Lean : it should be efficient memory wise to minimise the impact
- * on kernel footprint.
- * o Transparent to user space : the large number of user space
- * applications that use Wireless Extensions should not need
- * any modifications.
- *
- * Array of functions versus Struct of functions
- * ---------------------------------------------
- * 1) Having an array of functions allow the kernel code to access the
- * handler in a single lookup, which is much more efficient (think hash
- * table here).
- * 2) The only drawback is that driver writer may put their handler in
- * the wrong slot. This is trivial to test (I set the frequency, the
- * bitrate changes). Once the handler is in the proper slot, it will be
- * there forever, because the array is only extended at the end.
- * 3) Backward/forward compatibility : adding new handler just require
- * extending the array, so you can put newer driver in older kernel
- * without having to patch the kernel code (and vice versa).
- *
- * All handler are of the same generic type
- * ----------------------------------------
- * That's a feature !!!
- * 1) Having a generic handler allow to have generic code, which is more
- * efficient. If each of the handler was individually typed I would need
- * to add a big switch in the kernel (== more bloat). This solution is
- * more scalable, adding new Wireless Extensions doesn't add new code.
- * 2) You can use the same handler in different slots of the array. For
- * hardware, it may be more efficient or logical to handle multiple
- * Wireless Extensions with a single function, and the API allow you to
- * do that. (An example would be a single record on the card to control
- * both bitrate and frequency, the handler would read the old record,
- * modify it according to info->cmd and rewrite it).
- *
- * Functions prototype uses union iwreq_data
- * -----------------------------------------
- * Some would have preferred functions defined this way :
- * static int mydriver_ioctl_setrate(struct net_device *dev,
- * long rate, int auto)
- * 1) The kernel code doesn't "validate" the content of iwreq_data, and
- * can't do it (different hardware may have different notion of what a
- * valid frequency is), so we don't pretend that we do it.
- * 2) The above form is not extendable. If I want to add a flag (for
- * example to distinguish setting max rate and basic rate), I would
- * break the prototype. Using iwreq_data is more flexible.
- * 3) Also, the above form is not generic (see above).
- * 4) I don't expect driver developper using the wrong field of the
- * union (Doh !), so static typechecking doesn't add much value.
- * 5) Lastly, you can skip the union by doing :
- * static int mydriver_ioctl_setrate(struct net_device *dev,
- * struct iw_request_info *info,
- * struct iw_param *rrq,
- * char *extra)
- * And then adding the handler in the array like this :
- * (iw_handler) mydriver_ioctl_setrate, // SIOCSIWRATE
- *
- * Using functions and not a registry
- * ----------------------------------
- * Another implementation option would have been for every instance to
- * define a registry (a struct containing all the Wireless Extensions)
- * and only have a function to commit the registry to the hardware.
- * 1) This approach can be emulated by the current code, but not
- * vice versa.
- * 2) Some drivers don't keep any configuration in the driver, for them
- * adding such a registry would be a significant bloat.
- * 3) The code to translate from Wireless Extension to native format is
- * needed anyway, so it would not reduce significantely the amount of code.
- * 4) The current approach only selectively translate Wireless Extensions
- * to native format and only selectively set, whereas the registry approach
- * would require to translate all WE and set all parameters for any single
- * change.
- * 5) For many Wireless Extensions, the GET operation return the current
- * dynamic value, not the value that was set.
- *
- * This header is <net/iw_handler.h>
- * ---------------------------------
- * 1) This header is kernel space only and should not be exported to
- * user space. Headers in "include/linux/" are exported, headers in
- * "include/net/" are not.
- *
- * Mixed 32/64 bit issues
- * ----------------------
- * The Wireless Extensions are designed to be 64 bit clean, by using only
- * datatypes with explicit storage size.
- * There are some issues related to kernel and user space using different
- * memory model, and in particular 64bit kernel with 32bit user space.
- * The problem is related to struct iw_point, that contains a pointer
- * that *may* need to be translated.
- * This is quite messy. The new API doesn't solve this problem (it can't),
- * but is a step in the right direction :
- * 1) Meta data about each ioctl is easily available, so we know what type
- * of translation is needed.
- * 2) The move of data between kernel and user space is only done in a single
- * place in the kernel, so adding specific hooks in there is possible.
- * 3) In the long term, it allows to move away from using ioctl as the
- * user space API.
- *
- * So many comments and so few code
- * --------------------------------
- * That's a feature. Comments won't bloat the resulting kernel binary.
- */
-
-/***************************** INCLUDES *****************************/
-
-#include <linux/wireless.h> /* IOCTL user space API */
-#include <linux/if_ether.h>
-
-/***************************** VERSION *****************************/
-/*
- * This constant is used to know which version of the driver API is
- * available. Hopefully, this will be pretty stable and no changes
- * will be needed...
- * I just plan to increment with each new version.
- */
-#define IW_HANDLER_VERSION 8
-
-/*
- * Changes :
- *
- * V2 to V3
- * --------
- * - Move event definition in <linux/wireless.h>
- * - Add Wireless Event support :
- * o wireless_send_event() prototype
- * o iwe_stream_add_event/point() inline functions
- * V3 to V4
- * --------
- * - Reshuffle IW_HEADER_TYPE_XXX to map IW_PRIV_TYPE_XXX changes
- *
- * V4 to V5
- * --------
- * - Add new spy support : struct iw_spy_data & prototypes
- *
- * V5 to V6
- * --------
- * - Change the way we get to spy_data method for added safety
- * - Remove spy #ifdef, they are always on -> cleaner code
- * - Add IW_DESCR_FLAG_NOMAX flag for very large requests
- * - Start migrating get_wireless_stats to struct iw_handler_def
- *
- * V6 to V7
- * --------
- * - Add struct ieee80211_device pointer in struct iw_public_data
- * - Remove (struct iw_point *)->pointer from events and streams
- * - Remove spy_offset from struct iw_handler_def
- * - Add "check" version of event macros for ieee802.11 stack
- *
- * V7 to V8
- * ----------
- * - Prevent leaking of kernel space in stream on 64 bits.
- */
-
-/**************************** CONSTANTS ****************************/
-
-/* Enhanced spy support available */
-#define IW_WIRELESS_SPY
-#define IW_WIRELESS_THRSPY
-
-/* Special error message for the driver to indicate that we
- * should do a commit after return from the iw_handler */
-#define EIWCOMMIT EINPROGRESS
-
-/* Flags available in struct iw_request_info */
-#define IW_REQUEST_FLAG_COMPAT 0x0001 /* Compat ioctl call */
-
-/* Type of headers we know about (basically union iwreq_data) */
-#define IW_HEADER_TYPE_NULL 0 /* Not available */
-#define IW_HEADER_TYPE_CHAR 2 /* char [IFNAMSIZ] */
-#define IW_HEADER_TYPE_UINT 4 /* __u32 */
-#define IW_HEADER_TYPE_FREQ 5 /* struct iw_freq */
-#define IW_HEADER_TYPE_ADDR 6 /* struct sockaddr */
-#define IW_HEADER_TYPE_POINT 8 /* struct iw_point */
-#define IW_HEADER_TYPE_PARAM 9 /* struct iw_param */
-#define IW_HEADER_TYPE_QUAL 10 /* struct iw_quality */
-
-/* Handling flags */
-/* Most are not implemented. I just use them as a reminder of some
- * cool features we might need one day ;-) */
-#define IW_DESCR_FLAG_NONE 0x0000 /* Obvious */
-/* Wrapper level flags */
-#define IW_DESCR_FLAG_DUMP 0x0001 /* Not part of the dump command */
-#define IW_DESCR_FLAG_EVENT 0x0002 /* Generate an event on SET */
-#define IW_DESCR_FLAG_RESTRICT 0x0004 /* GET : request is ROOT only */
- /* SET : Omit payload from generated iwevent */
-#define IW_DESCR_FLAG_NOMAX 0x0008 /* GET : no limit on request size */
-/* Driver level flags */
-#define IW_DESCR_FLAG_WAIT 0x0100 /* Wait for driver event */
-
-/****************************** TYPES ******************************/
-
-/* ----------------------- WIRELESS HANDLER ----------------------- */
-/*
- * A wireless handler is just a standard function, that looks like the
- * ioctl handler.
- * We also define there how a handler list look like... As the Wireless
- * Extension space is quite dense, we use a simple array, which is faster
- * (that's the perfect hash table ;-).
- */
-
-/*
- * Meta data about the request passed to the iw_handler.
- * Most handlers can safely ignore what's in there.
- * The 'cmd' field might come handy if you want to use the same handler
- * for multiple command...
- * This struct is also my long term insurance. I can add new fields here
- * without breaking the prototype of iw_handler...
- */
-struct iw_request_info {
- __u16 cmd; /* Wireless Extension command */
- __u16 flags; /* More to come ;-) */
-};
-
-struct net_device;
-
-/*
- * This is how a function handling a Wireless Extension should look
- * like (both get and set, standard and private).
- */
-typedef int (*iw_handler)(struct net_device *dev, struct iw_request_info *info,
- union iwreq_data *wrqu, char *extra);
-
-/*
- * This define all the handler that the driver export.
- * As you need only one per driver type, please use a static const
- * shared by all driver instances... Same for the members...
- * This will be linked from net_device in <linux/netdevice.h>
- */
-struct iw_handler_def {
-
- /* Array of handlers for standard ioctls
- * We will call dev->wireless_handlers->standard[ioctl - SIOCIWFIRST]
- */
- const iw_handler * standard;
- /* Number of handlers defined (more precisely, index of the
- * last defined handler + 1) */
- __u16 num_standard;
-
-#ifdef CONFIG_WEXT_PRIV
- __u16 num_private;
- /* Number of private arg description */
- __u16 num_private_args;
- /* Array of handlers for private ioctls
- * Will call dev->wireless_handlers->private[ioctl - SIOCIWFIRSTPRIV]
- */
- const iw_handler * private;
-
- /* Arguments of private handler. This one is just a list, so you
- * can put it in any order you want and should not leave holes...
- * We will automatically export that to user space... */
- const struct iw_priv_args * private_args;
-#endif
-
- /* New location of get_wireless_stats, to de-bloat struct net_device.
- * The old pointer in struct net_device will be gradually phased
- * out, and drivers are encouraged to use this one... */
- struct iw_statistics* (*get_wireless_stats)(struct net_device *dev);
-};
-
-/* ---------------------- IOCTL DESCRIPTION ---------------------- */
-/*
- * One of the main goal of the new interface is to deal entirely with
- * user space/kernel space memory move.
- * For that, we need to know :
- * o if iwreq is a pointer or contain the full data
- * o what is the size of the data to copy
- *
- * For private IOCTLs, we use the same rules as used by iwpriv and
- * defined in struct iw_priv_args.
- *
- * For standard IOCTLs, things are quite different and we need to
- * use the stuctures below. Actually, this struct is also more
- * efficient, but that's another story...
- */
-
-/*
- * Describe how a standard IOCTL looks like.
- */
-struct iw_ioctl_description {
- __u8 header_type; /* NULL, iw_point or other */
- __u8 token_type; /* Future */
- __u16 token_size; /* Granularity of payload */
- __u16 min_tokens; /* Min acceptable token number */
- __u16 max_tokens; /* Max acceptable token number */
- __u32 flags; /* Special handling of the request */
-};
-
-/* Need to think of short header translation table. Later. */
-
-/* --------------------- ENHANCED SPY SUPPORT --------------------- */
-/*
- * In the old days, the driver was handling spy support all by itself.
- * Now, the driver can delegate this task to Wireless Extensions.
- * It needs to include this struct in its private part and use the
- * standard spy iw_handler.
- */
-
-/*
- * Instance specific spy data, i.e. addresses spied and quality for them.
- */
-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];
-};
-
-/* --------------------- DEVICE WIRELESS DATA --------------------- */
-/*
- * This is all the wireless data specific to a device instance that
- * is managed by the core of Wireless Extensions or the 802.11 layer.
- * We only keep pointer to those structures, so that a driver is free
- * to share them between instances.
- * This structure should be initialised before registering the device.
- * Access to this data follow the same rules as any other struct net_device
- * data (i.e. valid as long as struct net_device exist, same locking rules).
- */
-/* Forward declaration */
-struct libipw_device;
-/* The struct */
-struct iw_public_data {
- /* Driver enhanced spy support */
- struct iw_spy_data * spy_data;
- /* Legacy structure managed by the ipw2x00-specific IEEE 802.11 layer */
- struct libipw_device * libipw;
-};
-
-/**************************** PROTOTYPES ****************************/
-/*
- * Functions part of the Wireless Extensions (defined in net/core/wireless.c).
- * Those may be called only within the kernel.
- */
-
-/* First : function strictly used inside the kernel */
-
-/* Handle /proc/net/wireless, called in net/code/dev.c */
-extern int dev_get_wireless_info(char * buffer, char **start, off_t offset,
- int length);
-
-/* Second : functions that may be called by driver modules */
-
-/* Send a single event to user space */
-extern void wireless_send_event(struct net_device * dev,
- unsigned int cmd,
- union iwreq_data * wrqu,
- const char * extra);
-
-/* We may need a function to send a stream of events to user space.
- * More on that later... */
-
-/* Standard handler for SIOCSIWSPY */
-extern int iw_handler_set_spy(struct net_device * dev,
- struct iw_request_info * info,
- union iwreq_data * wrqu,
- char * extra);
-/* Standard handler for SIOCGIWSPY */
-extern int iw_handler_get_spy(struct net_device * dev,
- struct iw_request_info * info,
- union iwreq_data * wrqu,
- char * extra);
-/* Standard handler for SIOCSIWTHRSPY */
-extern int iw_handler_set_thrspy(struct net_device * dev,
- struct iw_request_info *info,
- union iwreq_data * wrqu,
- char * extra);
-/* Standard handler for SIOCGIWTHRSPY */
-extern int iw_handler_get_thrspy(struct net_device * dev,
- struct iw_request_info *info,
- union iwreq_data * wrqu,
- char * extra);
-/* Driver call to update spy records */
-extern void wireless_spy_update(struct net_device * dev,
- unsigned char * address,
- struct iw_quality * wstats);
-
-/************************* INLINE FUNTIONS *************************/
-/*
- * Function that are so simple that it's more efficient inlining them
- */
-
-static inline int iwe_stream_lcp_len(struct iw_request_info *info)
-{
-#ifdef CONFIG_COMPAT
- if (info->flags & IW_REQUEST_FLAG_COMPAT)
- return IW_EV_COMPAT_LCP_LEN;
-#endif
- return IW_EV_LCP_LEN;
-}
-
-static inline int iwe_stream_point_len(struct iw_request_info *info)
-{
-#ifdef CONFIG_COMPAT
- if (info->flags & IW_REQUEST_FLAG_COMPAT)
- return IW_EV_COMPAT_POINT_LEN;
-#endif
- return IW_EV_POINT_LEN;
-}
-
-static inline int iwe_stream_event_len_adjust(struct iw_request_info *info,
- int event_len)
-{
-#ifdef CONFIG_COMPAT
- if (info->flags & IW_REQUEST_FLAG_COMPAT) {
- event_len -= IW_EV_LCP_LEN;
- event_len += IW_EV_COMPAT_LCP_LEN;
- }
-#endif
-
- return event_len;
-}
-
-/*------------------------------------------------------------------*/
-/*
- * Wrapper to add an Wireless Event to a stream of events.
- */
-static inline char *
-iwe_stream_add_event(struct iw_request_info *info, char *stream, char *ends,
- struct iw_event *iwe, int event_len)
-{
- int lcp_len = iwe_stream_lcp_len(info);
-
- event_len = iwe_stream_event_len_adjust(info, event_len);
-
- /* Check if it's possible */
- if(likely((stream + event_len) < ends)) {
- iwe->len = event_len;
- /* Beware of alignement issues on 64 bits */
- memcpy(stream, (char *) iwe, IW_EV_LCP_PK_LEN);
- memcpy(stream + lcp_len, &iwe->u,
- event_len - lcp_len);
- stream += event_len;
- }
- return stream;
-}
-
-/*------------------------------------------------------------------*/
-/*
- * Wrapper to add an short Wireless Event containing a pointer to a
- * stream of events.
- */
-static inline char *
-iwe_stream_add_point(struct iw_request_info *info, char *stream, char *ends,
- struct iw_event *iwe, char *extra)
-{
- int event_len = iwe_stream_point_len(info) + iwe->u.data.length;
- int point_len = iwe_stream_point_len(info);
- int lcp_len = iwe_stream_lcp_len(info);
-
- /* Check if it's possible */
- if(likely((stream + event_len) < ends)) {
- iwe->len = event_len;
- memcpy(stream, (char *) iwe, IW_EV_LCP_PK_LEN);
- memcpy(stream + lcp_len,
- ((char *) &iwe->u) + IW_EV_POINT_OFF,
- IW_EV_POINT_PK_LEN - IW_EV_LCP_PK_LEN);
- memcpy(stream + point_len, extra, iwe->u.data.length);
- stream += event_len;
- }
- return stream;
-}
-
-/*------------------------------------------------------------------*/
-/*
- * Wrapper to add a value to a Wireless Event in a stream of events.
- * Be careful, this one is tricky to use properly :
- * At the first run, you need to have (value = event + IW_EV_LCP_LEN).
- */
-static inline char *
-iwe_stream_add_value(struct iw_request_info *info, char *event, char *value,
- char *ends, struct iw_event *iwe, int event_len)
-{
- int lcp_len = iwe_stream_lcp_len(info);
-
- /* Don't duplicate LCP */
- event_len -= IW_EV_LCP_LEN;
-
- /* Check if it's possible */
- if(likely((value + event_len) < ends)) {
- /* Add new value */
- memcpy(value, &iwe->u, event_len);
- value += event_len;
- /* Patch LCP */
- iwe->len = value - event;
- memcpy(event, (char *) iwe, lcp_len);
- }
- return value;
-}
-
-#endif /* _IW_HANDLER_H */
diff --git a/ANDROID_3.4.5/include/net/lapb.h b/ANDROID_3.4.5/include/net/lapb.h
deleted file mode 100644
index fd2bf572..00000000
--- a/ANDROID_3.4.5/include/net/lapb.h
+++ /dev/null
@@ -1,152 +0,0 @@
-#ifndef _LAPB_H
-#define _LAPB_H
-#include <linux/lapb.h>
-
-#define LAPB_HEADER_LEN 20 /* LAPB over Ethernet + a bit more */
-
-#define LAPB_ACK_PENDING_CONDITION 0x01
-#define LAPB_REJECT_CONDITION 0x02
-#define LAPB_PEER_RX_BUSY_CONDITION 0x04
-
-/* Control field templates */
-#define LAPB_I 0x00 /* Information frames */
-#define LAPB_S 0x01 /* Supervisory frames */
-#define LAPB_U 0x03 /* Unnumbered frames */
-
-#define LAPB_RR 0x01 /* Receiver ready */
-#define LAPB_RNR 0x05 /* Receiver not ready */
-#define LAPB_REJ 0x09 /* Reject */
-
-#define LAPB_SABM 0x2F /* Set Asynchronous Balanced Mode */
-#define LAPB_SABME 0x6F /* Set Asynchronous Balanced Mode Extended */
-#define LAPB_DISC 0x43 /* Disconnect */
-#define LAPB_DM 0x0F /* Disconnected mode */
-#define LAPB_UA 0x63 /* Unnumbered acknowledge */
-#define LAPB_FRMR 0x87 /* Frame reject */
-
-#define LAPB_ILLEGAL 0x100 /* Impossible to be a real frame type */
-
-#define LAPB_SPF 0x10 /* Poll/final bit for standard LAPB */
-#define LAPB_EPF 0x01 /* Poll/final bit for extended LAPB */
-
-#define LAPB_FRMR_W 0x01 /* Control field invalid */
-#define LAPB_FRMR_X 0x02 /* I field invalid */
-#define LAPB_FRMR_Y 0x04 /* I field too long */
-#define LAPB_FRMR_Z 0x08 /* Invalid N(R) */
-
-#define LAPB_POLLOFF 0
-#define LAPB_POLLON 1
-
-/* LAPB C-bit */
-#define LAPB_COMMAND 1
-#define LAPB_RESPONSE 2
-
-#define LAPB_ADDR_A 0x03
-#define LAPB_ADDR_B 0x01
-#define LAPB_ADDR_C 0x0F
-#define LAPB_ADDR_D 0x07
-
-/* Define Link State constants. */
-enum {
- LAPB_STATE_0, /* Disconnected State */
- LAPB_STATE_1, /* Awaiting Connection State */
- LAPB_STATE_2, /* Awaiting Disconnection State */
- LAPB_STATE_3, /* Data Transfer State */
- LAPB_STATE_4 /* Frame Reject State */
-};
-
-#define LAPB_DEFAULT_MODE (LAPB_STANDARD | LAPB_SLP | LAPB_DTE)
-#define LAPB_DEFAULT_WINDOW 7 /* Window=7 */
-#define LAPB_DEFAULT_T1 (5 * HZ) /* T1=5s */
-#define LAPB_DEFAULT_T2 (1 * HZ) /* T2=1s */
-#define LAPB_DEFAULT_N2 20 /* N2=20 */
-
-#define LAPB_SMODULUS 8
-#define LAPB_EMODULUS 128
-
-/*
- * Information about the current frame.
- */
-struct lapb_frame {
- unsigned short type; /* Parsed type */
- unsigned short nr, ns; /* N(R), N(S) */
- unsigned char cr; /* Command/Response */
- unsigned char pf; /* Poll/Final */
- unsigned char control[2]; /* Original control data*/
-};
-
-/*
- * The per LAPB connection control structure.
- */
-struct lapb_cb {
- struct list_head node;
- struct net_device *dev;
-
- /* Link status fields */
- unsigned int mode;
- unsigned char state;
- unsigned short vs, vr, va;
- unsigned char condition;
- unsigned short n2, n2count;
- unsigned short t1, t2;
- struct timer_list t1timer, t2timer;
-
- /* Internal control information */
- struct sk_buff_head write_queue;
- struct sk_buff_head ack_queue;
- unsigned char window;
- const struct lapb_register_struct *callbacks;
-
- /* FRMR control information */
- struct lapb_frame frmr_data;
- unsigned char frmr_type;
-
- atomic_t refcnt;
-};
-
-/* lapb_iface.c */
-extern void lapb_connect_confirmation(struct lapb_cb *lapb, int);
-extern void lapb_connect_indication(struct lapb_cb *lapb, int);
-extern void lapb_disconnect_confirmation(struct lapb_cb *lapb, int);
-extern void lapb_disconnect_indication(struct lapb_cb *lapb, int);
-extern int lapb_data_indication(struct lapb_cb *lapb, struct sk_buff *);
-extern int lapb_data_transmit(struct lapb_cb *lapb, struct sk_buff *);
-
-/* lapb_in.c */
-extern void lapb_data_input(struct lapb_cb *lapb, struct sk_buff *);
-
-/* lapb_out.c */
-extern void lapb_kick(struct lapb_cb *lapb);
-extern void lapb_transmit_buffer(struct lapb_cb *lapb, struct sk_buff *, int);
-extern void lapb_establish_data_link(struct lapb_cb *lapb);
-extern void lapb_enquiry_response(struct lapb_cb *lapb);
-extern void lapb_timeout_response(struct lapb_cb *lapb);
-extern void lapb_check_iframes_acked(struct lapb_cb *lapb, unsigned short);
-extern void lapb_check_need_response(struct lapb_cb *lapb, int, int);
-
-/* lapb_subr.c */
-extern void lapb_clear_queues(struct lapb_cb *lapb);
-extern void lapb_frames_acked(struct lapb_cb *lapb, unsigned short);
-extern void lapb_requeue_frames(struct lapb_cb *lapb);
-extern int lapb_validate_nr(struct lapb_cb *lapb, unsigned short);
-extern int lapb_decode(struct lapb_cb *lapb, struct sk_buff *, struct lapb_frame *);
-extern void lapb_send_control(struct lapb_cb *lapb, int, int, int);
-extern void lapb_transmit_frmr(struct lapb_cb *lapb);
-
-/* lapb_timer.c */
-extern void lapb_start_t1timer(struct lapb_cb *lapb);
-extern void lapb_start_t2timer(struct lapb_cb *lapb);
-extern void lapb_stop_t1timer(struct lapb_cb *lapb);
-extern void lapb_stop_t2timer(struct lapb_cb *lapb);
-extern int lapb_t1timer_running(struct lapb_cb *lapb);
-
-/*
- * Debug levels.
- * 0 = Off
- * 1 = State Changes
- * 2 = Packets I/O and State Changes
- * 3 = Hex dumps, Packets I/O and State Changes.
- */
-#define LAPB_DEBUG 0
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/lib80211.h b/ANDROID_3.4.5/include/net/lib80211.h
deleted file mode 100644
index d178c26a..00000000
--- a/ANDROID_3.4.5/include/net/lib80211.h
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * lib80211.h -- common bits for IEEE802.11 wireless drivers
- *
- * Copyright (c) 2008, John W. Linville <linville@tuxdriver.com>
- *
- * Some bits copied from old ieee80211 component, w/ original copyright
- * notices below:
- *
- * 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
- * <j@w1.fi>
- * Copyright (c) 2002-2003, Jouni Malinen <j@w1.fi>
- *
- * Adaption to a generic IEEE 802.11 stack by James Ketrenos
- * <jketreno@linux.intel.com>
- *
- * Copyright (c) 2004, Intel Corporation
- *
- */
-
-#ifndef LIB80211_H
-#define LIB80211_H
-
-#include <linux/types.h>
-#include <linux/list.h>
-#include <linux/atomic.h>
-#include <linux/if.h>
-#include <linux/skbuff.h>
-#include <linux/ieee80211.h>
-#include <linux/timer.h>
-/* print_ssid() is intended to be used in debug (and possibly error)
- * messages. It should never be used for passing ssid to user space. */
-const char *print_ssid(char *buf, const char *ssid, u8 ssid_len);
-#define DECLARE_SSID_BUF(var) char var[IEEE80211_MAX_SSID_LEN * 4 + 1] __maybe_unused
-
-#define NUM_WEP_KEYS 4
-
-enum {
- IEEE80211_CRYPTO_TKIP_COUNTERMEASURES = (1 << 0),
-};
-
-struct module;
-
-struct lib80211_crypto_ops {
- const char *name;
- struct list_head list;
-
- /* 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);
-
- 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);
-
- /* Crypto specific flag get/set for configuration settings */
- unsigned long (*get_flags) (void *priv);
- unsigned long (*set_flags) (unsigned long flags, 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_mpdu_prefix_len, extra_mpdu_postfix_len;
- int extra_msdu_prefix_len, extra_msdu_postfix_len;
-
- struct module *owner;
-};
-
-struct lib80211_crypt_data {
- struct list_head list; /* delayed deletion list */
- struct lib80211_crypto_ops *ops;
- void *priv;
- atomic_t refcnt;
-};
-
-struct lib80211_crypt_info {
- char *name;
- /* Most clients will already have a lock,
- so just point to that. */
- spinlock_t *lock;
-
- struct lib80211_crypt_data *crypt[NUM_WEP_KEYS];
- int tx_keyidx; /* default TX key index (crypt[tx_keyidx]) */
- struct list_head crypt_deinit_list;
- struct timer_list crypt_deinit_timer;
- int crypt_quiesced;
-};
-
-int lib80211_crypt_info_init(struct lib80211_crypt_info *info, char *name,
- spinlock_t *lock);
-void lib80211_crypt_info_free(struct lib80211_crypt_info *info);
-int lib80211_register_crypto_ops(struct lib80211_crypto_ops *ops);
-int lib80211_unregister_crypto_ops(struct lib80211_crypto_ops *ops);
-struct lib80211_crypto_ops *lib80211_get_crypto_ops(const char *name);
-void lib80211_crypt_delayed_deinit(struct lib80211_crypt_info *info,
- struct lib80211_crypt_data **crypt);
-
-#endif /* LIB80211_H */
diff --git a/ANDROID_3.4.5/include/net/llc.h b/ANDROID_3.4.5/include/net/llc.h
deleted file mode 100644
index 226c846c..00000000
--- a/ANDROID_3.4.5/include/net/llc.h
+++ /dev/null
@@ -1,159 +0,0 @@
-#ifndef LLC_H
-#define LLC_H
-/*
- * Copyright (c) 1997 by Procom Technology, Inc.
- * 2001-2003 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
- *
- * This program can be redistributed or modified under the terms of the
- * GNU General Public License as published by the Free Software Foundation.
- * This program is distributed without any warranty or implied warranty
- * of merchantability or fitness for a particular purpose.
- *
- * See the GNU General Public License for more details.
- */
-
-#include <linux/if.h>
-#include <linux/if_ether.h>
-#include <linux/list.h>
-#include <linux/spinlock.h>
-#include <linux/rculist_nulls.h>
-#include <linux/hash.h>
-#include <linux/jhash.h>
-
-#include <linux/atomic.h>
-
-struct net_device;
-struct packet_type;
-struct sk_buff;
-
-struct llc_addr {
- unsigned char lsap;
- unsigned char mac[IFHWADDRLEN];
-};
-
-#define LLC_SAP_STATE_INACTIVE 1
-#define LLC_SAP_STATE_ACTIVE 2
-
-#define LLC_SK_DEV_HASH_BITS 6
-#define LLC_SK_DEV_HASH_ENTRIES (1<<LLC_SK_DEV_HASH_BITS)
-
-#define LLC_SK_LADDR_HASH_BITS 6
-#define LLC_SK_LADDR_HASH_ENTRIES (1<<LLC_SK_LADDR_HASH_BITS)
-
-/**
- * struct llc_sap - Defines the SAP component
- *
- * @station - station this sap belongs to
- * @state - sap state
- * @p_bit - only lowest-order bit used
- * @f_bit - only lowest-order bit used
- * @laddr - SAP value in this 'lsap'
- * @node - entry in station sap_list
- * @sk_list - LLC sockets this one manages
- */
-struct llc_sap {
- unsigned char state;
- unsigned char p_bit;
- unsigned char f_bit;
- atomic_t refcnt;
- int (*rcv_func)(struct sk_buff *skb,
- struct net_device *dev,
- struct packet_type *pt,
- struct net_device *orig_dev);
- struct llc_addr laddr;
- struct list_head node;
- spinlock_t sk_lock;
- int sk_count;
- struct hlist_nulls_head sk_laddr_hash[LLC_SK_LADDR_HASH_ENTRIES];
- struct hlist_head sk_dev_hash[LLC_SK_DEV_HASH_ENTRIES];
-};
-
-static inline
-struct hlist_head *llc_sk_dev_hash(struct llc_sap *sap, int ifindex)
-{
- return &sap->sk_dev_hash[ifindex % LLC_SK_DEV_HASH_ENTRIES];
-}
-
-static inline
-u32 llc_sk_laddr_hashfn(struct llc_sap *sap, const struct llc_addr *laddr)
-{
- return hash_32(jhash(laddr->mac, sizeof(laddr->mac), 0),
- LLC_SK_LADDR_HASH_BITS);
-}
-
-static inline
-struct hlist_nulls_head *llc_sk_laddr_hash(struct llc_sap *sap,
- const struct llc_addr *laddr)
-{
- return &sap->sk_laddr_hash[llc_sk_laddr_hashfn(sap, laddr)];
-}
-
-#define LLC_DEST_INVALID 0 /* Invalid LLC PDU type */
-#define LLC_DEST_SAP 1 /* Type 1 goes here */
-#define LLC_DEST_CONN 2 /* Type 2 goes here */
-
-extern struct list_head llc_sap_list;
-extern spinlock_t llc_sap_list_lock;
-
-extern int llc_rcv(struct sk_buff *skb, struct net_device *dev,
- struct packet_type *pt, struct net_device *orig_dev);
-
-extern int llc_mac_hdr_init(struct sk_buff *skb,
- const unsigned char *sa, const unsigned char *da);
-
-extern void llc_add_pack(int type, void (*handler)(struct llc_sap *sap,
- struct sk_buff *skb));
-extern void llc_remove_pack(int type);
-
-extern void llc_set_station_handler(void (*handler)(struct sk_buff *skb));
-
-extern struct llc_sap *llc_sap_open(unsigned char lsap,
- int (*rcv)(struct sk_buff *skb,
- struct net_device *dev,
- struct packet_type *pt,
- struct net_device *orig_dev));
-static inline void llc_sap_hold(struct llc_sap *sap)
-{
- atomic_inc(&sap->refcnt);
-}
-
-extern void llc_sap_close(struct llc_sap *sap);
-
-static inline void llc_sap_put(struct llc_sap *sap)
-{
- if (atomic_dec_and_test(&sap->refcnt))
- llc_sap_close(sap);
-}
-
-extern struct llc_sap *llc_sap_find(unsigned char sap_value);
-
-extern int llc_build_and_send_ui_pkt(struct llc_sap *sap, struct sk_buff *skb,
- unsigned char *dmac, unsigned char dsap);
-
-extern void llc_sap_handler(struct llc_sap *sap, struct sk_buff *skb);
-extern void llc_conn_handler(struct llc_sap *sap, struct sk_buff *skb);
-
-extern int llc_station_init(void);
-extern void llc_station_exit(void);
-
-#ifdef CONFIG_PROC_FS
-extern int llc_proc_init(void);
-extern void llc_proc_exit(void);
-#else
-#define llc_proc_init() (0)
-#define llc_proc_exit() do { } while(0)
-#endif /* CONFIG_PROC_FS */
-#ifdef CONFIG_SYSCTL
-extern int llc_sysctl_init(void);
-extern void llc_sysctl_exit(void);
-
-extern int sysctl_llc2_ack_timeout;
-extern int sysctl_llc2_busy_timeout;
-extern int sysctl_llc2_p_timeout;
-extern int sysctl_llc2_rej_timeout;
-extern int sysctl_llc_station_ack_timeout;
-#else
-#define llc_sysctl_init() (0)
-#define llc_sysctl_exit() do { } while(0)
-#endif /* CONFIG_SYSCTL */
-#endif /* LLC_H */
diff --git a/ANDROID_3.4.5/include/net/llc_c_ac.h b/ANDROID_3.4.5/include/net/llc_c_ac.h
deleted file mode 100644
index df83f69d..00000000
--- a/ANDROID_3.4.5/include/net/llc_c_ac.h
+++ /dev/null
@@ -1,202 +0,0 @@
-#ifndef LLC_C_AC_H
-#define LLC_C_AC_H
-/*
- * Copyright (c) 1997 by Procom Technology,Inc.
- * 2001 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
- *
- * This program can be redistributed or modified under the terms of the
- * GNU General Public License as published by the Free Software Foundation.
- * This program is distributed without any warranty or implied warranty
- * of merchantability or fitness for a particular purpose.
- *
- * See the GNU General Public License for more details.
- */
-/* Connection component state transition actions */
-/*
- * Connection state transition actions
- * (Fb = F bit; Pb = P bit; Xb = X bit)
- */
-#define LLC_CONN_AC_CLR_REMOTE_BUSY 1
-#define LLC_CONN_AC_CONN_IND 2
-#define LLC_CONN_AC_CONN_CONFIRM 3
-#define LLC_CONN_AC_DATA_IND 4
-#define LLC_CONN_AC_DISC_IND 5
-#define LLC_CONN_AC_RESET_IND 6
-#define LLC_CONN_AC_RESET_CONFIRM 7
-#define LLC_CONN_AC_REPORT_STATUS 8
-#define LLC_CONN_AC_CLR_REMOTE_BUSY_IF_Fb_EQ_1 9
-#define LLC_CONN_AC_STOP_REJ_TMR_IF_DATA_FLAG_EQ_2 10
-#define LLC_CONN_AC_SEND_DISC_CMD_Pb_SET_X 11
-#define LLC_CONN_AC_SEND_DM_RSP_Fb_SET_Pb 12
-#define LLC_CONN_AC_SEND_DM_RSP_Fb_SET_1 13
-#define LLC_CONN_AC_SEND_DM_RSP_Fb_SET_F_FLAG 14
-#define LLC_CONN_AC_SEND_FRMR_RSP_Fb_SET_X 15
-#define LLC_CONN_AC_RESEND_FRMR_RSP_Fb_SET_0 16
-#define LLC_CONN_AC_RESEND_FRMR_RSP_Fb_SET_Pb 17
-#define LLC_CONN_AC_SEND_I_CMD_Pb_SET_1 18
-#define LLC_CONN_AC_RESEND_I_CMD_Pb_SET_1 19
-#define LLC_CONN_AC_RESEND_I_CMD_Pb_SET_1_OR_SEND_RR 20
-#define LLC_CONN_AC_SEND_I_XXX_Xb_SET_0 21
-#define LLC_CONN_AC_RESEND_I_XXX_Xb_SET_0 22
-#define LLC_CONN_AC_RESEND_I_XXX_Xb_SET_0_OR_SEND_RR 23
-#define LLC_CONN_AC_RESEND_I_RSP_Fb_SET_1 24
-#define LLC_CONN_AC_SEND_REJ_CMD_Pb_SET_1 25
-#define LLC_CONN_AC_SEND_REJ_RSP_Fb_SET_1 26
-#define LLC_CONN_AC_SEND_REJ_XXX_Xb_SET_0 27
-#define LLC_CONN_AC_SEND_RNR_CMD_Pb_SET_1 28
-#define LLC_CONN_AC_SEND_RNR_RSP_Fb_SET_1 29
-#define LLC_CONN_AC_SEND_RNR_XXX_Xb_SET_0 30
-#define LLC_CONN_AC_SET_REMOTE_BUSY 31
-#define LLC_CONN_AC_OPTIONAL_SEND_RNR_XXX_Xb_SET_0 32
-#define LLC_CONN_AC_SEND_RR_CMD_Pb_SET_1 33
-#define LLC_CONN_AC_SEND_ACK_CMD_Pb_SET_1 34
-#define LLC_CONN_AC_SEND_RR_RSP_Fb_SET_1 35
-#define LLC_CONN_AC_SEND_ACK_RSP_Fb_SET_1 36
-#define LLC_CONN_AC_SEND_RR_XXX_Xb_SET_0 37
-#define LLC_CONN_AC_SEND_ACK_XXX_Xb_SET_0 38
-#define LLC_CONN_AC_SEND_SABME_CMD_Pb_SET_X 39
-#define LLC_CONN_AC_SEND_UA_RSP_Fb_SET_Pb 40
-#define LLC_CONN_AC_SEND_UA_RSP_Fb_SET_F_FLAG 41
-#define LLC_CONN_AC_S_FLAG_SET_0 42
-#define LLC_CONN_AC_S_FLAG_SET_1 43
-#define LLC_CONN_AC_START_P_TMR 44
-#define LLC_CONN_AC_START_ACK_TMR 45
-#define LLC_CONN_AC_START_REJ_TMR 46
-#define LLC_CONN_AC_START_ACK_TMR_IF_NOT_RUNNING 47
-#define LLC_CONN_AC_STOP_ACK_TMR 48
-#define LLC_CONN_AC_STOP_P_TMR 49
-#define LLC_CONN_AC_STOP_REJ_TMR 50
-#define LLC_CONN_AC_STOP_ALL_TMRS 51
-#define LLC_CONN_AC_STOP_OTHER_TMRS 52
-#define LLC_CONN_AC_UPDATE_Nr_RECEIVED 53
-#define LLC_CONN_AC_UPDATE_P_FLAG 54
-#define LLC_CONN_AC_DATA_FLAG_SET_2 55
-#define LLC_CONN_AC_DATA_FLAG_SET_0 56
-#define LLC_CONN_AC_DATA_FLAG_SET_1 57
-#define LLC_CONN_AC_DATA_FLAG_SET_1_IF_DATA_FLAG_EQ_0 58
-#define LLC_CONN_AC_P_FLAG_SET_0 59
-#define LLC_CONN_AC_P_FLAG_SET_P 60
-#define LLC_CONN_AC_REMOTE_BUSY_SET_0 61
-#define LLC_CONN_AC_RETRY_CNT_SET_0 62
-#define LLC_CONN_AC_RETRY_CNT_INC_BY_1 63
-#define LLC_CONN_AC_Vr_SET_0 64
-#define LLC_CONN_AC_Vr_INC_BY_1 65
-#define LLC_CONN_AC_Vs_SET_0 66
-#define LLC_CONN_AC_Vs_SET_Nr 67
-#define LLC_CONN_AC_F_FLAG_SET_P 68
-#define LLC_CONN_AC_STOP_SENDACK_TMR 70
-#define LLC_CONN_AC_START_SENDACK_TMR_IF_NOT_RUNNING 71
-
-typedef int (*llc_conn_action_t)(struct sock *sk, struct sk_buff *skb);
-
-extern int llc_conn_ac_clear_remote_busy(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ac_conn_ind(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ac_conn_confirm(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_data_ind(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_disc_ind(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_rst_ind(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_rst_confirm(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_clear_remote_busy_if_f_eq_1(struct sock* sk,
- struct sk_buff *skb);
-extern int llc_conn_ac_stop_rej_tmr_if_data_flag_eq_2(struct sock* sk,
- struct sk_buff *skb);
-extern int llc_conn_ac_send_disc_cmd_p_set_x(struct sock* sk,
- struct sk_buff *skb);
-extern int llc_conn_ac_send_dm_rsp_f_set_p(struct sock* sk,
- struct sk_buff *skb);
-extern int llc_conn_ac_send_dm_rsp_f_set_1(struct sock* sk,
- struct sk_buff *skb);
-extern int llc_conn_ac_send_frmr_rsp_f_set_x(struct sock* sk,
- struct sk_buff *skb);
-extern int llc_conn_ac_resend_frmr_rsp_f_set_0(struct sock* sk,
- struct sk_buff *skb);
-extern int llc_conn_ac_resend_frmr_rsp_f_set_p(struct sock* sk,
- struct sk_buff *skb);
-extern int llc_conn_ac_send_i_cmd_p_set_1(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_send_i_xxx_x_set_0(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_resend_i_xxx_x_set_0(struct sock* sk,
- struct sk_buff *skb);
-extern int llc_conn_ac_resend_i_xxx_x_set_0_or_send_rr(struct sock* sk,
- struct sk_buff *skb);
-extern int llc_conn_ac_resend_i_rsp_f_set_1(struct sock* sk,
- struct sk_buff *skb);
-extern int llc_conn_ac_send_rej_cmd_p_set_1(struct sock* sk,
- struct sk_buff *skb);
-extern int llc_conn_ac_send_rej_rsp_f_set_1(struct sock* sk,
- struct sk_buff *skb);
-extern int llc_conn_ac_send_rej_xxx_x_set_0(struct sock* sk,
- struct sk_buff *skb);
-extern int llc_conn_ac_send_rnr_cmd_p_set_1(struct sock* sk,
- struct sk_buff *skb);
-extern int llc_conn_ac_send_rnr_rsp_f_set_1(struct sock* sk,
- struct sk_buff *skb);
-extern int llc_conn_ac_send_rnr_xxx_x_set_0(struct sock* sk,
- struct sk_buff *skb);
-extern int llc_conn_ac_set_remote_busy(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_opt_send_rnr_xxx_x_set_0(struct sock* sk,
- struct sk_buff *skb);
-extern int llc_conn_ac_send_rr_cmd_p_set_1(struct sock* sk,
- struct sk_buff *skb);
-extern int llc_conn_ac_send_rr_rsp_f_set_1(struct sock* sk,
- struct sk_buff *skb);
-extern int llc_conn_ac_send_ack_rsp_f_set_1(struct sock* sk,
- struct sk_buff *skb);
-extern int llc_conn_ac_send_rr_xxx_x_set_0(struct sock* sk,
- struct sk_buff *skb);
-extern int llc_conn_ac_send_ack_xxx_x_set_0(struct sock* sk,
- struct sk_buff *skb);
-extern int llc_conn_ac_send_sabme_cmd_p_set_x(struct sock* sk,
- struct sk_buff *skb);
-extern int llc_conn_ac_send_ua_rsp_f_set_p(struct sock* sk,
- struct sk_buff *skb);
-extern int llc_conn_ac_set_s_flag_0(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_set_s_flag_1(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_start_p_timer(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_start_ack_timer(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_start_rej_timer(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_start_ack_tmr_if_not_running(struct sock* sk,
- struct sk_buff *skb);
-extern int llc_conn_ac_stop_ack_timer(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_stop_p_timer(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_stop_rej_timer(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_stop_all_timers(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_stop_other_timers(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_upd_nr_received(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_inc_tx_win_size(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_dec_tx_win_size(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_upd_p_flag(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_set_data_flag_2(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_set_data_flag_0(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_set_data_flag_1(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_set_data_flag_1_if_data_flag_eq_0(struct sock* sk,
- struct sk_buff *skb);
-extern int llc_conn_ac_set_p_flag_0(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_set_remote_busy_0(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_set_retry_cnt_0(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_set_cause_flag_0(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_set_cause_flag_1(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_inc_retry_cnt_by_1(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_set_vr_0(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_inc_vr_by_1(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_set_vs_0(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_set_vs_nr(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_rst_vs(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_upd_vs(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_disc(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_reset(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_disc_confirm(struct sock* sk, struct sk_buff *skb);
-extern u8 llc_circular_between(u8 a, u8 b, u8 c);
-extern int llc_conn_ac_send_ack_if_needed(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_adjust_npta_by_rr(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_adjust_npta_by_rnr(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_rst_sendack_flag(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_send_i_rsp_as_ack(struct sock* sk, struct sk_buff *skb);
-extern int llc_conn_ac_send_i_as_ack(struct sock* sk, struct sk_buff *skb);
-
-extern void llc_conn_busy_tmr_cb(unsigned long timeout_data);
-extern void llc_conn_pf_cycle_tmr_cb(unsigned long timeout_data);
-extern void llc_conn_ack_tmr_cb(unsigned long timeout_data);
-extern void llc_conn_rej_tmr_cb(unsigned long timeout_data);
-
-extern void llc_conn_set_p_flag(struct sock *sk, u8 value);
-#endif /* LLC_C_AC_H */
diff --git a/ANDROID_3.4.5/include/net/llc_c_ev.h b/ANDROID_3.4.5/include/net/llc_c_ev.h
deleted file mode 100644
index 23a40938..00000000
--- a/ANDROID_3.4.5/include/net/llc_c_ev.h
+++ /dev/null
@@ -1,269 +0,0 @@
-#ifndef LLC_C_EV_H
-#define LLC_C_EV_H
-/*
- * Copyright (c) 1997 by Procom Technology,Inc.
- * 2001 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
- *
- * This program can be redistributed or modified under the terms of the
- * GNU General Public License as published by the Free Software Foundation.
- * This program is distributed without any warranty or implied warranty
- * of merchantability or fitness for a particular purpose.
- *
- * See the GNU General Public License for more details.
- */
-
-#include <net/sock.h>
-
-/* Connection component state transition event qualifiers */
-/* Types of events (possible values in 'ev->type') */
-#define LLC_CONN_EV_TYPE_SIMPLE 1
-#define LLC_CONN_EV_TYPE_CONDITION 2
-#define LLC_CONN_EV_TYPE_PRIM 3
-#define LLC_CONN_EV_TYPE_PDU 4 /* command/response PDU */
-#define LLC_CONN_EV_TYPE_ACK_TMR 5
-#define LLC_CONN_EV_TYPE_P_TMR 6
-#define LLC_CONN_EV_TYPE_REJ_TMR 7
-#define LLC_CONN_EV_TYPE_BUSY_TMR 8
-#define LLC_CONN_EV_TYPE_RPT_STATUS 9
-#define LLC_CONN_EV_TYPE_SENDACK_TMR 10
-
-#define NBR_CONN_EV 5
-/* Connection events which cause state transitions when fully qualified */
-
-#define LLC_CONN_EV_CONN_REQ 1
-#define LLC_CONN_EV_CONN_RESP 2
-#define LLC_CONN_EV_DATA_REQ 3
-#define LLC_CONN_EV_DISC_REQ 4
-#define LLC_CONN_EV_RESET_REQ 5
-#define LLC_CONN_EV_RESET_RESP 6
-#define LLC_CONN_EV_LOCAL_BUSY_DETECTED 7
-#define LLC_CONN_EV_LOCAL_BUSY_CLEARED 8
-#define LLC_CONN_EV_RX_BAD_PDU 9
-#define LLC_CONN_EV_RX_DISC_CMD_Pbit_SET_X 10
-#define LLC_CONN_EV_RX_DM_RSP_Fbit_SET_X 11
-#define LLC_CONN_EV_RX_FRMR_RSP_Fbit_SET_X 12
-#define LLC_CONN_EV_RX_I_CMD_Pbit_SET_X 13
-#define LLC_CONN_EV_RX_I_CMD_Pbit_SET_X_UNEXPD_Ns 14
-#define LLC_CONN_EV_RX_I_CMD_Pbit_SET_X_INVAL_Ns 15
-#define LLC_CONN_EV_RX_I_RSP_Fbit_SET_X 16
-#define LLC_CONN_EV_RX_I_RSP_Fbit_SET_X_UNEXPD_Ns 17
-#define LLC_CONN_EV_RX_I_RSP_Fbit_SET_X_INVAL_Ns 18
-#define LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_X 19
-#define LLC_CONN_EV_RX_REJ_RSP_Fbit_SET_X 20
-#define LLC_CONN_EV_RX_RNR_CMD_Pbit_SET_X 21
-#define LLC_CONN_EV_RX_RNR_RSP_Fbit_SET_X 22
-#define LLC_CONN_EV_RX_RR_CMD_Pbit_SET_X 23
-#define LLC_CONN_EV_RX_RR_RSP_Fbit_SET_X 24
-#define LLC_CONN_EV_RX_SABME_CMD_Pbit_SET_X 25
-#define LLC_CONN_EV_RX_UA_RSP_Fbit_SET_X 26
-#define LLC_CONN_EV_RX_XXX_CMD_Pbit_SET_X 27
-#define LLC_CONN_EV_RX_XXX_RSP_Fbit_SET_X 28
-#define LLC_CONN_EV_RX_XXX_YYY 29
-#define LLC_CONN_EV_RX_ZZZ_CMD_Pbit_SET_X_INVAL_Nr 30
-#define LLC_CONN_EV_RX_ZZZ_RSP_Fbit_SET_X_INVAL_Nr 31
-#define LLC_CONN_EV_P_TMR_EXP 32
-#define LLC_CONN_EV_ACK_TMR_EXP 33
-#define LLC_CONN_EV_REJ_TMR_EXP 34
-#define LLC_CONN_EV_BUSY_TMR_EXP 35
-#define LLC_CONN_EV_RX_XXX_CMD_Pbit_SET_1 36
-#define LLC_CONN_EV_RX_XXX_CMD_Pbit_SET_0 37
-#define LLC_CONN_EV_RX_I_CMD_Pbit_SET_0_UNEXPD_Ns 38
-#define LLC_CONN_EV_RX_I_RSP_Fbit_SET_0_UNEXPD_Ns 39
-#define LLC_CONN_EV_RX_I_RSP_Fbit_SET_1_UNEXPD_Ns 40
-#define LLC_CONN_EV_RX_I_CMD_Pbit_SET_1_UNEXPD_Ns 41
-#define LLC_CONN_EV_RX_I_CMD_Pbit_SET_0 42
-#define LLC_CONN_EV_RX_I_RSP_Fbit_SET_0 43
-#define LLC_CONN_EV_RX_I_CMD_Pbit_SET_1 44
-#define LLC_CONN_EV_RX_RR_CMD_Pbit_SET_0 45
-#define LLC_CONN_EV_RX_RR_RSP_Fbit_SET_0 46
-#define LLC_CONN_EV_RX_RR_RSP_Fbit_SET_1 47
-#define LLC_CONN_EV_RX_RR_CMD_Pbit_SET_1 48
-#define LLC_CONN_EV_RX_RNR_CMD_Pbit_SET_0 49
-#define LLC_CONN_EV_RX_RNR_RSP_Fbit_SET_0 50
-#define LLC_CONN_EV_RX_RNR_RSP_Fbit_SET_1 51
-#define LLC_CONN_EV_RX_RNR_CMD_Pbit_SET_1 52
-#define LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_0 53
-#define LLC_CONN_EV_RX_REJ_RSP_Fbit_SET_0 54
-#define LLC_CONN_EV_RX_REJ_CMD_Pbit_SET_1 55
-#define LLC_CONN_EV_RX_I_RSP_Fbit_SET_1 56
-#define LLC_CONN_EV_RX_REJ_RSP_Fbit_SET_1 57
-#define LLC_CONN_EV_RX_XXX_RSP_Fbit_SET_1 58
-#define LLC_CONN_EV_TX_BUFF_FULL 59
-
-#define LLC_CONN_EV_INIT_P_F_CYCLE 100
-/*
- * Connection event qualifiers; for some events a certain combination of
- * these qualifiers must be TRUE before event recognized valid for state;
- * these constants act as indexes into the Event Qualifier function
- * table
- */
-#define LLC_CONN_EV_QFY_DATA_FLAG_EQ_1 1
-#define LLC_CONN_EV_QFY_DATA_FLAG_EQ_0 2
-#define LLC_CONN_EV_QFY_DATA_FLAG_EQ_2 3
-#define LLC_CONN_EV_QFY_P_FLAG_EQ_1 4
-#define LLC_CONN_EV_QFY_P_FLAG_EQ_0 5
-#define LLC_CONN_EV_QFY_P_FLAG_EQ_Fbit 6
-#define LLC_CONN_EV_QFY_REMOTE_BUSY_EQ_0 7
-#define LLC_CONN_EV_QFY_RETRY_CNT_LT_N2 8
-#define LLC_CONN_EV_QFY_RETRY_CNT_GTE_N2 9
-#define LLC_CONN_EV_QFY_S_FLAG_EQ_1 10
-#define LLC_CONN_EV_QFY_S_FLAG_EQ_0 11
-#define LLC_CONN_EV_QFY_INIT_P_F_CYCLE 12
-
-struct llc_conn_state_ev {
- u8 type;
- u8 prim;
- u8 prim_type;
- u8 reason;
- u8 status;
- u8 ind_prim;
- u8 cfm_prim;
-};
-
-static __inline__ struct llc_conn_state_ev *llc_conn_ev(struct sk_buff *skb)
-{
- return (struct llc_conn_state_ev *)skb->cb;
-}
-
-typedef int (*llc_conn_ev_t)(struct sock *sk, struct sk_buff *skb);
-typedef int (*llc_conn_ev_qfyr_t)(struct sock *sk, struct sk_buff *skb);
-
-extern int llc_conn_ev_conn_req(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ev_data_req(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ev_disc_req(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ev_rst_req(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ev_local_busy_detected(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_local_busy_cleared(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ev_rx_bad_pdu(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ev_rx_disc_cmd_pbit_set_x(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_dm_rsp_fbit_set_x(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_frmr_rsp_fbit_set_x(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_i_cmd_pbit_set_x_inval_ns(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_i_rsp_fbit_set_x(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_i_rsp_fbit_set_x_unexpd_ns(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_i_rsp_fbit_set_x_inval_ns(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_rej_rsp_fbit_set_x(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_sabme_cmd_pbit_set_x(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_ua_rsp_fbit_set_x(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_xxx_cmd_pbit_set_x(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_xxx_rsp_fbit_set_x(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_zzz_cmd_pbit_set_x_inval_nr(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_zzz_rsp_fbit_set_x_inval_nr(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_p_tmr_exp(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ev_ack_tmr_exp(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ev_rej_tmr_exp(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ev_busy_tmr_exp(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ev_sendack_tmr_exp(struct sock *sk, struct sk_buff *skb);
-/* NOT_USED functions and their variations */
-extern int llc_conn_ev_rx_xxx_cmd_pbit_set_1(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_xxx_rsp_fbit_set_1(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_i_cmd_pbit_set_0_unexpd_ns(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_i_cmd_pbit_set_1_unexpd_ns(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_i_cmd_pbit_set_0(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_i_cmd_pbit_set_1(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_i_rsp_fbit_set_0_unexpd_ns(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_i_rsp_fbit_set_1_unexpd_ns(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_i_rsp_fbit_set_0(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_i_rsp_fbit_set_1(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_rr_cmd_pbit_set_0(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_rr_cmd_pbit_set_1(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_rr_rsp_fbit_set_0(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_rr_rsp_fbit_set_1(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_rnr_cmd_pbit_set_0(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_rnr_cmd_pbit_set_1(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_rnr_rsp_fbit_set_0(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_rnr_rsp_fbit_set_1(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_rej_cmd_pbit_set_0(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_rej_cmd_pbit_set_1(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_rej_rsp_fbit_set_0(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_rej_rsp_fbit_set_1(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_rx_any_frame(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ev_tx_buffer_full(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ev_init_p_f_cycle(struct sock *sk, struct sk_buff *skb);
-
-/* Available connection action qualifiers */
-extern int llc_conn_ev_qlfy_data_flag_eq_1(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_data_flag_eq_0(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_data_flag_eq_2(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_p_flag_eq_1(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_last_frame_eq_1(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_last_frame_eq_0(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_p_flag_eq_0(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_p_flag_eq_f(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_remote_busy_eq_0(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_remote_busy_eq_1(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_retry_cnt_lt_n2(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_retry_cnt_gte_n2(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_s_flag_eq_1(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_s_flag_eq_0(struct sock *sk, struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_cause_flag_eq_1(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_cause_flag_eq_0(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_set_status_conn(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_set_status_disc(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_set_status_failed(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_set_status_remote_busy(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_set_status_refuse(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_set_status_conflict(struct sock *sk,
- struct sk_buff *skb);
-extern int llc_conn_ev_qlfy_set_status_rst_done(struct sock *sk,
- struct sk_buff *skb);
-
-static __inline__ int llc_conn_space(struct sock *sk, struct sk_buff *skb)
-{
- return atomic_read(&sk->sk_rmem_alloc) + skb->truesize <
- (unsigned)sk->sk_rcvbuf;
-}
-#endif /* LLC_C_EV_H */
diff --git a/ANDROID_3.4.5/include/net/llc_c_st.h b/ANDROID_3.4.5/include/net/llc_c_st.h
deleted file mode 100644
index 0e79cfba..00000000
--- a/ANDROID_3.4.5/include/net/llc_c_st.h
+++ /dev/null
@@ -1,48 +0,0 @@
-#ifndef LLC_C_ST_H
-#define LLC_C_ST_H
-/*
- * Copyright (c) 1997 by Procom Technology,Inc.
- * 2001 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
- *
- * This program can be redistributed or modified under the terms of the
- * GNU General Public License as published by the Free Software Foundation.
- * This program is distributed without any warranty or implied warranty
- * of merchantability or fitness for a particular purpose.
- *
- * See the GNU General Public License for more details.
- */
-/* Connection component state management */
-/* connection states */
-#define LLC_CONN_OUT_OF_SVC 0 /* prior to allocation */
-
-#define LLC_CONN_STATE_ADM 1 /* disc, initial state */
-#define LLC_CONN_STATE_SETUP 2 /* disconnected state */
-#define LLC_CONN_STATE_NORMAL 3 /* connected state */
-#define LLC_CONN_STATE_BUSY 4 /* connected state */
-#define LLC_CONN_STATE_REJ 5 /* connected state */
-#define LLC_CONN_STATE_AWAIT 6 /* connected state */
-#define LLC_CONN_STATE_AWAIT_BUSY 7 /* connected state */
-#define LLC_CONN_STATE_AWAIT_REJ 8 /* connected state */
-#define LLC_CONN_STATE_D_CONN 9 /* disconnected state */
-#define LLC_CONN_STATE_RESET 10 /* disconnected state */
-#define LLC_CONN_STATE_ERROR 11 /* disconnected state */
-#define LLC_CONN_STATE_TEMP 12 /* disconnected state */
-
-#define NBR_CONN_STATES 12 /* size of state table */
-#define NO_STATE_CHANGE 100
-
-/* Connection state table structure */
-struct llc_conn_state_trans {
- llc_conn_ev_t ev;
- u8 next_state;
- llc_conn_ev_qfyr_t *ev_qualifiers;
- llc_conn_action_t *ev_actions;
-};
-
-struct llc_conn_state {
- u8 current_state;
- struct llc_conn_state_trans **transitions;
-};
-
-extern struct llc_conn_state llc_conn_state_table[];
-#endif /* LLC_C_ST_H */
diff --git a/ANDROID_3.4.5/include/net/llc_conn.h b/ANDROID_3.4.5/include/net/llc_conn.h
deleted file mode 100644
index 2f97d8dd..00000000
--- a/ANDROID_3.4.5/include/net/llc_conn.h
+++ /dev/null
@@ -1,122 +0,0 @@
-#ifndef LLC_CONN_H
-#define LLC_CONN_H
-/*
- * Copyright (c) 1997 by Procom Technology, Inc.
- * 2001, 2002 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
- *
- * This program can be redistributed or modified under the terms of the
- * GNU General Public License as published by the Free Software Foundation.
- * This program is distributed without any warranty or implied warranty
- * of merchantability or fitness for a particular purpose.
- *
- * See the GNU General Public License for more details.
- */
-#include <linux/timer.h>
-#include <net/llc_if.h>
-#include <net/sock.h>
-#include <linux/llc.h>
-
-#define LLC_EVENT 1
-#define LLC_PACKET 2
-
-#define LLC2_P_TIME 2
-#define LLC2_ACK_TIME 1
-#define LLC2_REJ_TIME 3
-#define LLC2_BUSY_TIME 3
-
-struct llc_timer {
- struct timer_list timer;
- unsigned long expire; /* timer expire time */
-};
-
-struct llc_sock {
- /* struct sock must be the first member of llc_sock */
- struct sock sk;
- struct sockaddr_llc addr; /* address sock is bound to */
- u8 state; /* state of connection */
- struct llc_sap *sap; /* pointer to parent SAP */
- struct llc_addr laddr; /* lsap/mac pair */
- struct llc_addr daddr; /* dsap/mac pair */
- struct net_device *dev; /* device to send to remote */
- u32 copied_seq; /* head of yet unread data */
- u8 retry_count; /* number of retries */
- u8 ack_must_be_send;
- u8 first_pdu_Ns;
- u8 npta;
- struct llc_timer ack_timer;
- struct llc_timer pf_cycle_timer;
- struct llc_timer rej_sent_timer;
- struct llc_timer busy_state_timer; /* ind busy clr at remote LLC */
- u8 vS; /* seq# next in-seq I-PDU tx'd*/
- u8 vR; /* seq# next in-seq I-PDU rx'd*/
- u32 n2; /* max nbr re-tx's for timeout*/
- u32 n1; /* max nbr octets in I PDU */
- u8 k; /* tx window size; max = 127 */
- u8 rw; /* rx window size; max = 127 */
- u8 p_flag; /* state flags */
- u8 f_flag;
- u8 s_flag;
- u8 data_flag;
- u8 remote_busy_flag;
- u8 cause_flag;
- struct sk_buff_head pdu_unack_q; /* PUDs sent/waiting ack */
- u16 link; /* network layer link number */
- u8 X; /* a temporary variable */
- u8 ack_pf; /* this flag indicates what is
- the P-bit of acknowledge */
- u8 failed_data_req; /* recognize that already exist a
- failed llc_data_req_handler
- (tx_buffer_full or unacceptable
- state */
- u8 dec_step;
- u8 inc_cntr;
- u8 dec_cntr;
- u8 connect_step;
- u8 last_nr; /* NR of last pdu received */
- u32 rx_pdu_hdr; /* used for saving header of last pdu
- received and caused sending FRMR.
- Used for resending FRMR */
- u32 cmsg_flags;
- struct hlist_node dev_hash_node;
-};
-
-static inline struct llc_sock *llc_sk(const struct sock *sk)
-{
- return (struct llc_sock *)sk;
-}
-
-static __inline__ void llc_set_backlog_type(struct sk_buff *skb, char type)
-{
- skb->cb[sizeof(skb->cb) - 1] = type;
-}
-
-static __inline__ char llc_backlog_type(struct sk_buff *skb)
-{
- return skb->cb[sizeof(skb->cb) - 1];
-}
-
-extern struct sock *llc_sk_alloc(struct net *net, int family, gfp_t priority,
- struct proto *prot);
-extern void llc_sk_free(struct sock *sk);
-
-extern void llc_sk_reset(struct sock *sk);
-
-/* Access to a connection */
-extern int llc_conn_state_process(struct sock *sk, struct sk_buff *skb);
-extern void llc_conn_send_pdu(struct sock *sk, struct sk_buff *skb);
-extern void llc_conn_rtn_pdu(struct sock *sk, struct sk_buff *skb);
-extern void llc_conn_resend_i_pdu_as_cmd(struct sock *sk, u8 nr,
- u8 first_p_bit);
-extern void llc_conn_resend_i_pdu_as_rsp(struct sock *sk, u8 nr,
- u8 first_f_bit);
-extern int llc_conn_remove_acked_pdus(struct sock *conn, u8 nr,
- u16 *how_many_unacked);
-extern struct sock *llc_lookup_established(struct llc_sap *sap,
- struct llc_addr *daddr,
- struct llc_addr *laddr);
-extern void llc_sap_add_socket(struct llc_sap *sap, struct sock *sk);
-extern void llc_sap_remove_socket(struct llc_sap *sap, struct sock *sk);
-
-extern u8 llc_data_accept_state(u8 state);
-extern void llc_build_offset_table(void);
-#endif /* LLC_CONN_H */
diff --git a/ANDROID_3.4.5/include/net/llc_if.h b/ANDROID_3.4.5/include/net/llc_if.h
deleted file mode 100644
index b595a004..00000000
--- a/ANDROID_3.4.5/include/net/llc_if.h
+++ /dev/null
@@ -1,99 +0,0 @@
-#ifndef LLC_IF_H
-#define LLC_IF_H
-/*
- * Copyright (c) 1997 by Procom Technology,Inc.
- * 2001 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
- *
- * This program can be redistributed or modified under the terms of the
- * GNU General Public License as published by the Free Software Foundation.
- * This program is distributed without any warranty or implied warranty
- * of merchantability or fitness for a particular purpose.
- *
- * See the GNU General Public License for more details.
- */
-/* Defines LLC interface to network layer */
-/* Available primitives */
-#include <linux/if.h>
-#include <linux/if_arp.h>
-#include <linux/llc.h>
-#include <linux/etherdevice.h>
-#include <net/llc.h>
-
-#define LLC_DATAUNIT_PRIM 1
-#define LLC_CONN_PRIM 2
-#define LLC_DATA_PRIM 3
-#define LLC_DISC_PRIM 4
-#define LLC_RESET_PRIM 5
-#define LLC_FLOWCONTROL_PRIM 6 /* Not supported at this time */
-#define LLC_DISABLE_PRIM 7
-#define LLC_XID_PRIM 8
-#define LLC_TEST_PRIM 9
-#define LLC_SAP_ACTIVATION 10
-#define LLC_SAP_DEACTIVATION 11
-
-#define LLC_NBR_PRIMITIVES 11
-
-#define LLC_IND 1
-#define LLC_CONFIRM 2
-
-/* Primitive type */
-#define LLC_PRIM_TYPE_REQ 1
-#define LLC_PRIM_TYPE_IND 2
-#define LLC_PRIM_TYPE_RESP 3
-#define LLC_PRIM_TYPE_CONFIRM 4
-
-/* Reset reasons, remote entity or local LLC */
-#define LLC_RESET_REASON_REMOTE 1
-#define LLC_RESET_REASON_LOCAL 2
-
-/* Disconnect reasons */
-#define LLC_DISC_REASON_RX_DM_RSP_PDU 0
-#define LLC_DISC_REASON_RX_DISC_CMD_PDU 1
-#define LLC_DISC_REASON_ACK_TMR_EXP 2
-
-/* Confirm reasons */
-#define LLC_STATUS_CONN 0 /* connect confirm & reset confirm */
-#define LLC_STATUS_DISC 1 /* connect confirm & reset confirm */
-#define LLC_STATUS_FAILED 2 /* connect confirm & reset confirm */
-#define LLC_STATUS_IMPOSSIBLE 3 /* connect confirm */
-#define LLC_STATUS_RECEIVED 4 /* data conn */
-#define LLC_STATUS_REMOTE_BUSY 5 /* data conn */
-#define LLC_STATUS_REFUSE 6 /* data conn */
-#define LLC_STATUS_CONFLICT 7 /* disconnect conn */
-#define LLC_STATUS_RESET_DONE 8 /* */
-
-/**
- * llc_mac_null - determines if a address is a null mac address
- * @mac: Mac address to test if null.
- *
- * Determines if a given address is a null mac address. Returns 0 if the
- * address is not a null mac, 1 if the address is a null mac.
- */
-static inline int llc_mac_null(const u8 *mac)
-{
- return is_zero_ether_addr(mac);
-}
-
-static inline int llc_mac_multicast(const u8 *mac)
-{
- return is_multicast_ether_addr(mac);
-}
-/**
- * llc_mac_match - determines if two mac addresses are the same
- * @mac1: First mac address to compare.
- * @mac2: Second mac address to compare.
- *
- * Determines if two given mac address are the same. Returns 0 if there
- * is not a complete match up to len, 1 if a complete match up to len is
- * found.
- */
-static inline int llc_mac_match(const u8 *mac1, const u8 *mac2)
-{
- return !compare_ether_addr(mac1, mac2);
-}
-
-extern int llc_establish_connection(struct sock *sk, u8 *lmac,
- u8 *dmac, u8 dsap);
-extern int llc_build_and_send_pkt(struct sock *sk, struct sk_buff *skb);
-extern int llc_send_disc(struct sock *sk);
-#endif /* LLC_IF_H */
diff --git a/ANDROID_3.4.5/include/net/llc_pdu.h b/ANDROID_3.4.5/include/net/llc_pdu.h
deleted file mode 100644
index f57e7d46..00000000
--- a/ANDROID_3.4.5/include/net/llc_pdu.h
+++ /dev/null
@@ -1,437 +0,0 @@
-#ifndef LLC_PDU_H
-#define LLC_PDU_H
-/*
- * Copyright (c) 1997 by Procom Technology,Inc.
- * 2001-2003 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
- *
- * This program can be redistributed or modified under the terms of the
- * GNU General Public License as published by the Free Software Foundation.
- * This program is distributed without any warranty or implied warranty
- * of merchantability or fitness for a particular purpose.
- *
- * See the GNU General Public License for more details.
- */
-
-#include <linux/if_ether.h>
-#include <linux/if_tr.h>
-
-/* Lengths of frame formats */
-#define LLC_PDU_LEN_I 4 /* header and 2 control bytes */
-#define LLC_PDU_LEN_S 4
-#define LLC_PDU_LEN_U 3 /* header and 1 control byte */
-/* Known SAP addresses */
-#define LLC_GLOBAL_SAP 0xFF
-#define LLC_NULL_SAP 0x00 /* not network-layer visible */
-#define LLC_MGMT_INDIV 0x02 /* station LLC mgmt indiv addr */
-#define LLC_MGMT_GRP 0x03 /* station LLC mgmt group addr */
-#define LLC_RDE_SAP 0xA6 /* route ... */
-
-/* SAP field bit masks */
-#define LLC_ISO_RESERVED_SAP 0x02
-#define LLC_SAP_GROUP_DSAP 0x01
-#define LLC_SAP_RESP_SSAP 0x01
-
-/* Group/individual DSAP indicator is DSAP field */
-#define LLC_PDU_GROUP_DSAP_MASK 0x01
-#define LLC_PDU_IS_GROUP_DSAP(pdu) \
- ((pdu->dsap & LLC_PDU_GROUP_DSAP_MASK) ? 0 : 1)
-#define LLC_PDU_IS_INDIV_DSAP(pdu) \
- (!(pdu->dsap & LLC_PDU_GROUP_DSAP_MASK) ? 0 : 1)
-
-/* Command/response PDU indicator in SSAP field */
-#define LLC_PDU_CMD_RSP_MASK 0x01
-#define LLC_PDU_CMD 0
-#define LLC_PDU_RSP 1
-#define LLC_PDU_IS_CMD(pdu) ((pdu->ssap & LLC_PDU_RSP) ? 0 : 1)
-#define LLC_PDU_IS_RSP(pdu) ((pdu->ssap & LLC_PDU_RSP) ? 1 : 0)
-
-/* Get PDU type from 2 lowest-order bits of control field first byte */
-#define LLC_PDU_TYPE_I_MASK 0x01 /* 16-bit control field */
-#define LLC_PDU_TYPE_S_MASK 0x03
-#define LLC_PDU_TYPE_U_MASK 0x03 /* 8-bit control field */
-#define LLC_PDU_TYPE_MASK 0x03
-
-#define LLC_PDU_TYPE_I 0 /* first bit */
-#define LLC_PDU_TYPE_S 1 /* first two bits */
-#define LLC_PDU_TYPE_U 3 /* first two bits */
-
-#define LLC_PDU_TYPE_IS_I(pdu) \
- ((!(pdu->ctrl_1 & LLC_PDU_TYPE_I_MASK)) ? 1 : 0)
-
-#define LLC_PDU_TYPE_IS_U(pdu) \
- (((pdu->ctrl_1 & LLC_PDU_TYPE_U_MASK) == LLC_PDU_TYPE_U) ? 1 : 0)
-
-#define LLC_PDU_TYPE_IS_S(pdu) \
- (((pdu->ctrl_1 & LLC_PDU_TYPE_S_MASK) == LLC_PDU_TYPE_S) ? 1 : 0)
-
-/* U-format PDU control field masks */
-#define LLC_U_PF_BIT_MASK 0x10 /* P/F bit mask */
-#define LLC_U_PF_IS_1(pdu) ((pdu->ctrl_1 & LLC_U_PF_BIT_MASK) ? 1 : 0)
-#define LLC_U_PF_IS_0(pdu) ((!(pdu->ctrl_1 & LLC_U_PF_BIT_MASK)) ? 1 : 0)
-
-#define LLC_U_PDU_CMD_MASK 0xEC /* cmd/rsp mask */
-#define LLC_U_PDU_CMD(pdu) (pdu->ctrl_1 & LLC_U_PDU_CMD_MASK)
-#define LLC_U_PDU_RSP(pdu) (pdu->ctrl_1 & LLC_U_PDU_CMD_MASK)
-
-#define LLC_1_PDU_CMD_UI 0x00 /* Type 1 cmds/rsps */
-#define LLC_1_PDU_CMD_XID 0xAC
-#define LLC_1_PDU_CMD_TEST 0xE0
-
-#define LLC_2_PDU_CMD_SABME 0x6C /* Type 2 cmds/rsps */
-#define LLC_2_PDU_CMD_DISC 0x40
-#define LLC_2_PDU_RSP_UA 0x60
-#define LLC_2_PDU_RSP_DM 0x0C
-#define LLC_2_PDU_RSP_FRMR 0x84
-
-/* Type 1 operations */
-
-/* XID information field bit masks */
-
-/* LLC format identifier (byte 1) */
-#define LLC_XID_FMT_ID 0x81 /* first byte must be this */
-
-/* LLC types/classes identifier (byte 2) */
-#define LLC_XID_CLASS_ZEROS_MASK 0xE0 /* these must be zeros */
-#define LLC_XID_CLASS_MASK 0x1F /* AND with byte to get below */
-
-#define LLC_XID_NULL_CLASS_1 0x01 /* if NULL LSAP...use these */
-#define LLC_XID_NULL_CLASS_2 0x03
-#define LLC_XID_NULL_CLASS_3 0x05
-#define LLC_XID_NULL_CLASS_4 0x07
-
-#define LLC_XID_NNULL_TYPE_1 0x01 /* if non-NULL LSAP...use these */
-#define LLC_XID_NNULL_TYPE_2 0x02
-#define LLC_XID_NNULL_TYPE_3 0x04
-#define LLC_XID_NNULL_TYPE_1_2 0x03
-#define LLC_XID_NNULL_TYPE_1_3 0x05
-#define LLC_XID_NNULL_TYPE_2_3 0x06
-#define LLC_XID_NNULL_ALL 0x07
-
-/* Sender Receive Window (byte 3) */
-#define LLC_XID_RW_MASK 0xFE /* AND with value to get below */
-
-#define LLC_XID_MIN_RW 0x02 /* lowest-order bit always zero */
-
-/* Type 2 operations */
-
-#define LLC_2_SEQ_NBR_MODULO ((u8) 128)
-
-/* I-PDU masks ('ctrl' is I-PDU control word) */
-#define LLC_I_GET_NS(pdu) (u8)((pdu->ctrl_1 & 0xFE) >> 1)
-#define LLC_I_GET_NR(pdu) (u8)((pdu->ctrl_2 & 0xFE) >> 1)
-
-#define LLC_I_PF_BIT_MASK 0x01
-
-#define LLC_I_PF_IS_0(pdu) ((!(pdu->ctrl_2 & LLC_I_PF_BIT_MASK)) ? 1 : 0)
-#define LLC_I_PF_IS_1(pdu) ((pdu->ctrl_2 & LLC_I_PF_BIT_MASK) ? 1 : 0)
-
-/* S-PDU supervisory commands and responses */
-
-#define LLC_S_PDU_CMD_MASK 0x0C
-#define LLC_S_PDU_CMD(pdu) (pdu->ctrl_1 & LLC_S_PDU_CMD_MASK)
-#define LLC_S_PDU_RSP(pdu) (pdu->ctrl_1 & LLC_S_PDU_CMD_MASK)
-
-#define LLC_2_PDU_CMD_RR 0x00 /* rx ready cmd */
-#define LLC_2_PDU_RSP_RR 0x00 /* rx ready rsp */
-#define LLC_2_PDU_CMD_REJ 0x08 /* reject PDU cmd */
-#define LLC_2_PDU_RSP_REJ 0x08 /* reject PDU rsp */
-#define LLC_2_PDU_CMD_RNR 0x04 /* rx not ready cmd */
-#define LLC_2_PDU_RSP_RNR 0x04 /* rx not ready rsp */
-
-#define LLC_S_PF_BIT_MASK 0x01
-#define LLC_S_PF_IS_0(pdu) ((!(pdu->ctrl_2 & LLC_S_PF_BIT_MASK)) ? 1 : 0)
-#define LLC_S_PF_IS_1(pdu) ((pdu->ctrl_2 & LLC_S_PF_BIT_MASK) ? 1 : 0)
-
-#define PDU_SUPV_GET_Nr(pdu) ((pdu->ctrl_2 & 0xFE) >> 1)
-#define PDU_GET_NEXT_Vr(sn) (++sn & ~LLC_2_SEQ_NBR_MODULO)
-
-/* FRMR information field macros */
-
-#define FRMR_INFO_LENGTH 5 /* 5 bytes of information */
-
-/*
- * info is pointer to FRMR info field structure; 'rej_ctrl' is byte pointer
- * (if U-PDU) or word pointer to rejected PDU control field
- */
-#define FRMR_INFO_SET_REJ_CNTRL(info,rej_ctrl) \
- info->rej_pdu_ctrl = ((*((u8 *) rej_ctrl) & \
- LLC_PDU_TYPE_U) != LLC_PDU_TYPE_U ? \
- (u16)*((u16 *) rej_ctrl) : \
- (((u16) *((u8 *) rej_ctrl)) & 0x00FF))
-
-/*
- * Info is pointer to FRMR info field structure; 'vs' is a byte containing
- * send state variable value in low-order 7 bits (insure the lowest-order
- * bit remains zero (0))
- */
-#define FRMR_INFO_SET_Vs(info,vs) (info->curr_ssv = (((u8) vs) << 1))
-#define FRMR_INFO_SET_Vr(info,vr) (info->curr_rsv = (((u8) vr) << 1))
-
-/*
- * Info is pointer to FRMR info field structure; 'cr' is a byte containing
- * the C/R bit value in the low-order bit
- */
-#define FRMR_INFO_SET_C_R_BIT(info, cr) (info->curr_rsv |= (((u8) cr) & 0x01))
-
-/*
- * In the remaining five macros, 'info' is pointer to FRMR info field
- * structure; 'ind' is a byte containing the bit value to set in the
- * lowest-order bit)
- */
-#define FRMR_INFO_SET_INVALID_PDU_CTRL_IND(info, ind) \
- (info->ind_bits = ((info->ind_bits & 0xFE) | (((u8) ind) & 0x01)))
-
-#define FRMR_INFO_SET_INVALID_PDU_INFO_IND(info, ind) \
- (info->ind_bits = ( (info->ind_bits & 0xFD) | (((u8) ind) & 0x02)))
-
-#define FRMR_INFO_SET_PDU_INFO_2LONG_IND(info, ind) \
- (info->ind_bits = ( (info->ind_bits & 0xFB) | (((u8) ind) & 0x04)))
-
-#define FRMR_INFO_SET_PDU_INVALID_Nr_IND(info, ind) \
- (info->ind_bits = ( (info->ind_bits & 0xF7) | (((u8) ind) & 0x08)))
-
-#define FRMR_INFO_SET_PDU_INVALID_Ns_IND(info, ind) \
- (info->ind_bits = ( (info->ind_bits & 0xEF) | (((u8) ind) & 0x10)))
-
-/* Sequence-numbered PDU format (4 bytes in length) */
-struct llc_pdu_sn {
- u8 dsap;
- u8 ssap;
- u8 ctrl_1;
- u8 ctrl_2;
-} __packed;
-
-static inline struct llc_pdu_sn *llc_pdu_sn_hdr(struct sk_buff *skb)
-{
- return (struct llc_pdu_sn *)skb_network_header(skb);
-}
-
-/* Un-numbered PDU format (3 bytes in length) */
-struct llc_pdu_un {
- u8 dsap;
- u8 ssap;
- u8 ctrl_1;
-} __packed;
-
-static inline struct llc_pdu_un *llc_pdu_un_hdr(struct sk_buff *skb)
-{
- return (struct llc_pdu_un *)skb_network_header(skb);
-}
-
-/**
- * llc_pdu_header_init - initializes pdu header
- * @skb: input skb that header must be set into it.
- * @type: type of PDU (U, I or S).
- * @ssap: source sap.
- * @dsap: destination sap.
- * @cr: command/response bit (0 or 1).
- *
- * This function sets DSAP, SSAP and command/Response bit in LLC header.
- */
-static inline void llc_pdu_header_init(struct sk_buff *skb, u8 type,
- u8 ssap, u8 dsap, u8 cr)
-{
- const int hlen = type == LLC_PDU_TYPE_U ? 3 : 4;
- struct llc_pdu_un *pdu;
-
- skb_push(skb, hlen);
- skb_reset_network_header(skb);
- pdu = llc_pdu_un_hdr(skb);
- pdu->dsap = dsap;
- pdu->ssap = ssap;
- pdu->ssap |= cr;
-}
-
-/**
- * llc_pdu_decode_sa - extracs source address (MAC) of input frame
- * @skb: input skb that source address must be extracted from it.
- * @sa: pointer to source address (6 byte array).
- *
- * This function extracts source address(MAC) of input frame.
- */
-static inline void llc_pdu_decode_sa(struct sk_buff *skb, u8 *sa)
-{
- if (skb->protocol == htons(ETH_P_802_2))
- memcpy(sa, eth_hdr(skb)->h_source, ETH_ALEN);
- else if (skb->protocol == htons(ETH_P_TR_802_2)) {
- memcpy(sa, tr_hdr(skb)->saddr, ETH_ALEN);
- *sa &= 0x7F;
- }
-}
-
-/**
- * llc_pdu_decode_da - extracts dest address of input frame
- * @skb: input skb that destination address must be extracted from it
- * @sa: pointer to destination address (6 byte array).
- *
- * This function extracts destination address(MAC) of input frame.
- */
-static inline void llc_pdu_decode_da(struct sk_buff *skb, u8 *da)
-{
- if (skb->protocol == htons(ETH_P_802_2))
- memcpy(da, eth_hdr(skb)->h_dest, ETH_ALEN);
- else if (skb->protocol == htons(ETH_P_TR_802_2))
- memcpy(da, tr_hdr(skb)->daddr, ETH_ALEN);
-}
-
-/**
- * llc_pdu_decode_ssap - extracts source SAP of input frame
- * @skb: input skb that source SAP must be extracted from it.
- * @ssap: source SAP (output argument).
- *
- * This function extracts source SAP of input frame. Right bit of SSAP is
- * command/response bit.
- */
-static inline void llc_pdu_decode_ssap(struct sk_buff *skb, u8 *ssap)
-{
- *ssap = llc_pdu_un_hdr(skb)->ssap & 0xFE;
-}
-
-/**
- * llc_pdu_decode_dsap - extracts dest SAP of input frame
- * @skb: input skb that destination SAP must be extracted from it.
- * @dsap: destination SAP (output argument).
- *
- * This function extracts destination SAP of input frame. right bit of
- * DSAP designates individual/group SAP.
- */
-static inline void llc_pdu_decode_dsap(struct sk_buff *skb, u8 *dsap)
-{
- *dsap = llc_pdu_un_hdr(skb)->dsap & 0xFE;
-}
-
-/**
- * llc_pdu_init_as_ui_cmd - sets LLC header as UI PDU
- * @skb: input skb that header must be set into it.
- *
- * This function sets third byte of LLC header as a UI PDU.
- */
-static inline void llc_pdu_init_as_ui_cmd(struct sk_buff *skb)
-{
- struct llc_pdu_un *pdu = llc_pdu_un_hdr(skb);
-
- pdu->ctrl_1 = LLC_PDU_TYPE_U;
- pdu->ctrl_1 |= LLC_1_PDU_CMD_UI;
-}
-
-/**
- * llc_pdu_init_as_test_cmd - sets PDU as TEST
- * @skb - Address of the skb to build
- *
- * Sets a PDU as TEST
- */
-static inline void llc_pdu_init_as_test_cmd(struct sk_buff *skb)
-{
- struct llc_pdu_un *pdu = llc_pdu_un_hdr(skb);
-
- pdu->ctrl_1 = LLC_PDU_TYPE_U;
- pdu->ctrl_1 |= LLC_1_PDU_CMD_TEST;
- pdu->ctrl_1 |= LLC_U_PF_BIT_MASK;
-}
-
-/**
- * llc_pdu_init_as_test_rsp - build TEST response PDU
- * @skb: Address of the skb to build
- * @ev_skb: The received TEST command PDU frame
- *
- * Builds a pdu frame as a TEST response.
- */
-static inline void llc_pdu_init_as_test_rsp(struct sk_buff *skb,
- struct sk_buff *ev_skb)
-{
- struct llc_pdu_un *pdu = llc_pdu_un_hdr(skb);
-
- pdu->ctrl_1 = LLC_PDU_TYPE_U;
- pdu->ctrl_1 |= LLC_1_PDU_CMD_TEST;
- pdu->ctrl_1 |= LLC_U_PF_BIT_MASK;
- if (ev_skb->protocol == htons(ETH_P_802_2)) {
- struct llc_pdu_un *ev_pdu = llc_pdu_un_hdr(ev_skb);
- int dsize;
-
- dsize = ntohs(eth_hdr(ev_skb)->h_proto) - 3;
- memcpy(((u8 *)pdu) + 3, ((u8 *)ev_pdu) + 3, dsize);
- skb_put(skb, dsize);
- }
-}
-
-/* LLC Type 1 XID command/response information fields format */
-struct llc_xid_info {
- u8 fmt_id; /* always 0x81 for LLC */
- u8 type; /* different if NULL/non-NULL LSAP */
- u8 rw; /* sender receive window */
-} __packed;
-
-/**
- * llc_pdu_init_as_xid_cmd - sets bytes 3, 4 & 5 of LLC header as XID
- * @skb: input skb that header must be set into it.
- *
- * This function sets third,fourth,fifth and sixth bytes of LLC header as
- * a XID PDU.
- */
-static inline void llc_pdu_init_as_xid_cmd(struct sk_buff *skb,
- u8 svcs_supported, u8 rx_window)
-{
- struct llc_xid_info *xid_info;
- struct llc_pdu_un *pdu = llc_pdu_un_hdr(skb);
-
- pdu->ctrl_1 = LLC_PDU_TYPE_U;
- pdu->ctrl_1 |= LLC_1_PDU_CMD_XID;
- pdu->ctrl_1 |= LLC_U_PF_BIT_MASK;
- xid_info = (struct llc_xid_info *)(((u8 *)&pdu->ctrl_1) + 1);
- xid_info->fmt_id = LLC_XID_FMT_ID; /* 0x81 */
- xid_info->type = svcs_supported;
- xid_info->rw = rx_window << 1; /* size of receive window */
- skb_put(skb, sizeof(struct llc_xid_info));
-}
-
-/**
- * llc_pdu_init_as_xid_rsp - builds XID response PDU
- * @skb: Address of the skb to build
- * @svcs_supported: The class of the LLC (I or II)
- * @rx_window: The size of the receive window of the LLC
- *
- * Builds a pdu frame as an XID response.
- */
-static inline void llc_pdu_init_as_xid_rsp(struct sk_buff *skb,
- u8 svcs_supported, u8 rx_window)
-{
- struct llc_xid_info *xid_info;
- struct llc_pdu_un *pdu = llc_pdu_un_hdr(skb);
-
- pdu->ctrl_1 = LLC_PDU_TYPE_U;
- pdu->ctrl_1 |= LLC_1_PDU_CMD_XID;
- pdu->ctrl_1 |= LLC_U_PF_BIT_MASK;
-
- xid_info = (struct llc_xid_info *)(((u8 *)&pdu->ctrl_1) + 1);
- xid_info->fmt_id = LLC_XID_FMT_ID;
- xid_info->type = svcs_supported;
- xid_info->rw = rx_window << 1;
- skb_put(skb, sizeof(struct llc_xid_info));
-}
-
-/* LLC Type 2 FRMR response information field format */
-struct llc_frmr_info {
- u16 rej_pdu_ctrl; /* bits 1-8 if U-PDU */
- u8 curr_ssv; /* current send state variable val */
- u8 curr_rsv; /* current receive state variable */
- u8 ind_bits; /* indicator bits set with macro */
-} __packed;
-
-extern void llc_pdu_set_cmd_rsp(struct sk_buff *skb, u8 type);
-extern void llc_pdu_set_pf_bit(struct sk_buff *skb, u8 bit_value);
-extern void llc_pdu_decode_pf_bit(struct sk_buff *skb, u8 *pf_bit);
-extern void llc_pdu_init_as_disc_cmd(struct sk_buff *skb, u8 p_bit);
-extern void llc_pdu_init_as_i_cmd(struct sk_buff *skb, u8 p_bit, u8 ns, u8 nr);
-extern void llc_pdu_init_as_rej_cmd(struct sk_buff *skb, u8 p_bit, u8 nr);
-extern void llc_pdu_init_as_rnr_cmd(struct sk_buff *skb, u8 p_bit, u8 nr);
-extern void llc_pdu_init_as_rr_cmd(struct sk_buff *skb, u8 p_bit, u8 nr);
-extern void llc_pdu_init_as_sabme_cmd(struct sk_buff *skb, u8 p_bit);
-extern void llc_pdu_init_as_dm_rsp(struct sk_buff *skb, u8 f_bit);
-extern void llc_pdu_init_as_frmr_rsp(struct sk_buff *skb,
- struct llc_pdu_sn *prev_pdu,
- u8 f_bit, u8 vs, u8 vr, u8 vzyxw);
-extern void llc_pdu_init_as_rr_rsp(struct sk_buff *skb, u8 f_bit, u8 nr);
-extern void llc_pdu_init_as_rej_rsp(struct sk_buff *skb, u8 f_bit, u8 nr);
-extern void llc_pdu_init_as_rnr_rsp(struct sk_buff *skb, u8 f_bit, u8 nr);
-extern void llc_pdu_init_as_ua_rsp(struct sk_buff *skb, u8 f_bit);
-#endif /* LLC_PDU_H */
diff --git a/ANDROID_3.4.5/include/net/llc_s_ac.h b/ANDROID_3.4.5/include/net/llc_s_ac.h
deleted file mode 100644
index 37a3bbd0..00000000
--- a/ANDROID_3.4.5/include/net/llc_s_ac.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef LLC_S_AC_H
-#define LLC_S_AC_H
-/*
- * Copyright (c) 1997 by Procom Technology,Inc.
- * 2001 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
- *
- * This program can be redistributed or modified under the terms of the
- * GNU General Public License as published by the Free Software Foundation.
- * This program is distributed without any warranty or implied warranty
- * of merchantability or fitness for a particular purpose.
- *
- * See the GNU General Public License for more details.
- */
-/* SAP component actions */
-#define SAP_ACT_UNITDATA_IND 1
-#define SAP_ACT_SEND_UI 2
-#define SAP_ACT_SEND_XID_C 3
-#define SAP_ACT_SEND_XID_R 4
-#define SAP_ACT_SEND_TEST_C 5
-#define SAP_ACT_SEND_TEST_R 6
-#define SAP_ACT_REPORT_STATUS 7
-#define SAP_ACT_XID_IND 8
-#define SAP_ACT_TEST_IND 9
-
-/* All action functions must look like this */
-typedef int (*llc_sap_action_t)(struct llc_sap *sap, struct sk_buff *skb);
-
-extern int llc_sap_action_unitdata_ind(struct llc_sap *sap,
- struct sk_buff *skb);
-extern int llc_sap_action_send_ui(struct llc_sap *sap, struct sk_buff *skb);
-extern int llc_sap_action_send_xid_c(struct llc_sap *sap, struct sk_buff *skb);
-extern int llc_sap_action_send_xid_r(struct llc_sap *sap, struct sk_buff *skb);
-extern int llc_sap_action_send_test_c(struct llc_sap *sap, struct sk_buff *skb);
-extern int llc_sap_action_send_test_r(struct llc_sap *sap, struct sk_buff *skb);
-extern int llc_sap_action_report_status(struct llc_sap *sap,
- struct sk_buff *skb);
-extern int llc_sap_action_xid_ind(struct llc_sap *sap, struct sk_buff *skb);
-extern int llc_sap_action_test_ind(struct llc_sap *sap, struct sk_buff *skb);
-#endif /* LLC_S_AC_H */
diff --git a/ANDROID_3.4.5/include/net/llc_s_ev.h b/ANDROID_3.4.5/include/net/llc_s_ev.h
deleted file mode 100644
index e3acb932..00000000
--- a/ANDROID_3.4.5/include/net/llc_s_ev.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef LLC_S_EV_H
-#define LLC_S_EV_H
-/*
- * Copyright (c) 1997 by Procom Technology,Inc.
- * 2001 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
- *
- * This program can be redistributed or modified under the terms of the
- * GNU General Public License as published by the Free Software Foundation.
- * This program is distributed without any warranty or implied warranty
- * of merchantability or fitness for a particular purpose.
- *
- * See the GNU General Public License for more details.
- */
-
-#include <linux/skbuff.h>
-
-/* Defines SAP component events */
-/* Types of events (possible values in 'ev->type') */
-#define LLC_SAP_EV_TYPE_SIMPLE 1
-#define LLC_SAP_EV_TYPE_CONDITION 2
-#define LLC_SAP_EV_TYPE_PRIM 3
-#define LLC_SAP_EV_TYPE_PDU 4 /* command/response PDU */
-#define LLC_SAP_EV_TYPE_ACK_TMR 5
-#define LLC_SAP_EV_TYPE_RPT_STATUS 6
-
-#define LLC_SAP_EV_ACTIVATION_REQ 1
-#define LLC_SAP_EV_RX_UI 2
-#define LLC_SAP_EV_UNITDATA_REQ 3
-#define LLC_SAP_EV_XID_REQ 4
-#define LLC_SAP_EV_RX_XID_C 5
-#define LLC_SAP_EV_RX_XID_R 6
-#define LLC_SAP_EV_TEST_REQ 7
-#define LLC_SAP_EV_RX_TEST_C 8
-#define LLC_SAP_EV_RX_TEST_R 9
-#define LLC_SAP_EV_DEACTIVATION_REQ 10
-
-struct llc_sap_state_ev {
- u8 prim;
- u8 prim_type;
- u8 type;
- u8 reason;
- u8 ind_cfm_flag;
- struct llc_addr saddr;
- struct llc_addr daddr;
-};
-
-static __inline__ struct llc_sap_state_ev *llc_sap_ev(struct sk_buff *skb)
-{
- return (struct llc_sap_state_ev *)skb->cb;
-}
-
-struct llc_sap;
-
-typedef int (*llc_sap_ev_t)(struct llc_sap *sap, struct sk_buff *skb);
-
-extern int llc_sap_ev_activation_req(struct llc_sap *sap, struct sk_buff *skb);
-extern int llc_sap_ev_rx_ui(struct llc_sap *sap, struct sk_buff *skb);
-extern int llc_sap_ev_unitdata_req(struct llc_sap *sap, struct sk_buff *skb);
-extern int llc_sap_ev_xid_req(struct llc_sap *sap, struct sk_buff *skb);
-extern int llc_sap_ev_rx_xid_c(struct llc_sap *sap, struct sk_buff *skb);
-extern int llc_sap_ev_rx_xid_r(struct llc_sap *sap, struct sk_buff *skb);
-extern int llc_sap_ev_test_req(struct llc_sap *sap, struct sk_buff *skb);
-extern int llc_sap_ev_rx_test_c(struct llc_sap *sap, struct sk_buff *skb);
-extern int llc_sap_ev_rx_test_r(struct llc_sap *sap, struct sk_buff *skb);
-extern int llc_sap_ev_deactivation_req(struct llc_sap *sap,
- struct sk_buff *skb);
-#endif /* LLC_S_EV_H */
diff --git a/ANDROID_3.4.5/include/net/llc_s_st.h b/ANDROID_3.4.5/include/net/llc_s_st.h
deleted file mode 100644
index 567c681f..00000000
--- a/ANDROID_3.4.5/include/net/llc_s_st.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef LLC_S_ST_H
-#define LLC_S_ST_H
-/*
- * Copyright (c) 1997 by Procom Technology,Inc.
- * 2001 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
- *
- * This program can be redistributed or modified under the terms of the
- * GNU General Public License as published by the Free Software Foundation.
- * This program is distributed without any warranty or implied warranty
- * of merchantability or fitness for a particular purpose.
- *
- * See the GNU General Public License for more details.
- */
-
-#define LLC_NR_SAP_STATES 2 /* size of state table */
-
-/* structures and types */
-/* SAP state table structure */
-struct llc_sap_state_trans {
- llc_sap_ev_t ev;
- u8 next_state;
- llc_sap_action_t *ev_actions;
-};
-
-struct llc_sap_state {
- u8 curr_state;
- struct llc_sap_state_trans **transitions;
-};
-
-/* only access to SAP state table */
-extern struct llc_sap_state llc_sap_state_table[LLC_NR_SAP_STATES];
-#endif /* LLC_S_ST_H */
diff --git a/ANDROID_3.4.5/include/net/llc_sap.h b/ANDROID_3.4.5/include/net/llc_sap.h
deleted file mode 100644
index ed25bec2..00000000
--- a/ANDROID_3.4.5/include/net/llc_sap.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef LLC_SAP_H
-#define LLC_SAP_H
-
-#include <asm/types.h>
-
-/*
- * Copyright (c) 1997 by Procom Technology,Inc.
- * 2001-2003 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
- *
- * This program can be redistributed or modified under the terms of the
- * GNU General Public License as published by the Free Software Foundation.
- * This program is distributed without any warranty or implied warranty
- * of merchantability or fitness for a particular purpose.
- *
- * See the GNU General Public License for more details.
- */
-struct llc_sap;
-struct net_device;
-struct sk_buff;
-struct sock;
-
-extern void llc_sap_rtn_pdu(struct llc_sap *sap, struct sk_buff *skb);
-extern void llc_save_primitive(struct sock *sk, struct sk_buff* skb,
- unsigned char prim);
-extern struct sk_buff *llc_alloc_frame(struct sock *sk, struct net_device *dev,
- u8 type, u32 data_size);
-
-extern void llc_build_and_send_test_pkt(struct llc_sap *sap,
- struct sk_buff *skb,
- unsigned char *dmac,
- unsigned char dsap);
-extern void llc_build_and_send_xid_pkt(struct llc_sap *sap,
- struct sk_buff *skb,
- unsigned char *dmac,
- unsigned char dsap);
-#endif /* LLC_SAP_H */
diff --git a/ANDROID_3.4.5/include/net/mac80211.h b/ANDROID_3.4.5/include/net/mac80211.h
deleted file mode 100644
index 9210bdc7..00000000
--- a/ANDROID_3.4.5/include/net/mac80211.h
+++ /dev/null
@@ -1,3713 +0,0 @@
-/*
- * mac80211 <-> driver interface
- *
- * Copyright 2002-2005, Devicescape Software, Inc.
- * Copyright 2006-2007 Jiri Benc <jbenc@suse.cz>
- * Copyright 2007-2010 Johannes Berg <johannes@sipsolutions.net>
- *
- * 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.
- */
-
-#ifndef MAC80211_H
-#define MAC80211_H
-
-#include <linux/bug.h>
-#include <linux/kernel.h>
-#include <linux/if_ether.h>
-#include <linux/skbuff.h>
-#include <linux/ieee80211.h>
-#include <net/cfg80211.h>
-#include <asm/unaligned.h>
-
-/**
- * DOC: Introduction
- *
- * mac80211 is the Linux stack for 802.11 hardware that implements
- * only partial functionality in hard- or firmware. This document
- * defines the interface between mac80211 and low-level hardware
- * drivers.
- */
-
-/**
- * DOC: Calling mac80211 from interrupts
- *
- * Only ieee80211_tx_status_irqsafe() and ieee80211_rx_irqsafe() can be
- * called in hardware interrupt context. The low-level driver must not call any
- * other functions in hardware interrupt context. If there is a need for such
- * call, the low-level driver should first ACK the interrupt and perform the
- * IEEE 802.11 code call after this, e.g. from a scheduled workqueue or even
- * tasklet function.
- *
- * NOTE: If the driver opts to use the _irqsafe() functions, it may not also
- * use the non-IRQ-safe functions!
- */
-
-/**
- * DOC: Warning
- *
- * If you're reading this document and not the header file itself, it will
- * be incomplete because not all documentation has been converted yet.
- */
-
-/**
- * DOC: Frame format
- *
- * As a general rule, when frames are passed between mac80211 and the driver,
- * they start with the IEEE 802.11 header and include the same octets that are
- * sent over the air except for the FCS which should be calculated by the
- * hardware.
- *
- * There are, however, various exceptions to this rule for advanced features:
- *
- * The first exception is for hardware encryption and decryption offload
- * where the IV/ICV may or may not be generated in hardware.
- *
- * Secondly, when the hardware handles fragmentation, the frame handed to
- * the driver from mac80211 is the MSDU, not the MPDU.
- *
- * Finally, for received frames, the driver is able to indicate that it has
- * filled a radiotap header and put that in front of the frame; if it does
- * not do so then mac80211 may add this under certain circumstances.
- */
-
-/**
- * DOC: mac80211 workqueue
- *
- * mac80211 provides its own workqueue for drivers and internal mac80211 use.
- * The workqueue is a single threaded workqueue and can only be accessed by
- * helpers for sanity checking. Drivers must ensure all work added onto the
- * mac80211 workqueue should be cancelled on the driver stop() callback.
- *
- * mac80211 will flushed the workqueue upon interface removal and during
- * suspend.
- *
- * All work performed on the mac80211 workqueue must not acquire the RTNL lock.
- *
- */
-
-struct device;
-
-/**
- * enum ieee80211_max_queues - maximum number of queues
- *
- * @IEEE80211_MAX_QUEUES: Maximum number of regular device queues.
- */
-enum ieee80211_max_queues {
- IEEE80211_MAX_QUEUES = 4,
-};
-
-/**
- * enum ieee80211_ac_numbers - AC numbers as used in mac80211
- * @IEEE80211_AC_VO: voice
- * @IEEE80211_AC_VI: video
- * @IEEE80211_AC_BE: best effort
- * @IEEE80211_AC_BK: background
- */
-enum ieee80211_ac_numbers {
- IEEE80211_AC_VO = 0,
- IEEE80211_AC_VI = 1,
- IEEE80211_AC_BE = 2,
- IEEE80211_AC_BK = 3,
-};
-#define IEEE80211_NUM_ACS 4
-
-/**
- * struct ieee80211_tx_queue_params - transmit queue configuration
- *
- * The information provided in this structure is required for QoS
- * transmit queue configuration. Cf. IEEE 802.11 7.3.2.29.
- *
- * @aifs: arbitration interframe space [0..255]
- * @cw_min: minimum contention window [a value of the form
- * 2^n-1 in the range 1..32767]
- * @cw_max: maximum contention window [like @cw_min]
- * @txop: maximum burst time in units of 32 usecs, 0 meaning disabled
- * @uapsd: is U-APSD mode enabled for the queue
- */
-struct ieee80211_tx_queue_params {
- u16 txop;
- u16 cw_min;
- u16 cw_max;
- u8 aifs;
- bool uapsd;
-};
-
-struct ieee80211_low_level_stats {
- unsigned int dot11ACKFailureCount;
- unsigned int dot11RTSFailureCount;
- unsigned int dot11FCSErrorCount;
- unsigned int dot11RTSSuccessCount;
-};
-
-/**
- * enum ieee80211_bss_change - BSS change notification flags
- *
- * These flags are used with the bss_info_changed() callback
- * to indicate which BSS parameter changed.
- *
- * @BSS_CHANGED_ASSOC: association status changed (associated/disassociated),
- * also implies a change in the AID.
- * @BSS_CHANGED_ERP_CTS_PROT: CTS protection changed
- * @BSS_CHANGED_ERP_PREAMBLE: preamble changed
- * @BSS_CHANGED_ERP_SLOT: slot timing changed
- * @BSS_CHANGED_HT: 802.11n parameters changed
- * @BSS_CHANGED_BASIC_RATES: Basic rateset changed
- * @BSS_CHANGED_BEACON_INT: Beacon interval changed
- * @BSS_CHANGED_BSSID: BSSID changed, for whatever
- * reason (IBSS and managed mode)
- * @BSS_CHANGED_BEACON: Beacon data changed, retrieve
- * new beacon (beaconing modes)
- * @BSS_CHANGED_BEACON_ENABLED: Beaconing should be
- * enabled/disabled (beaconing modes)
- * @BSS_CHANGED_CQM: Connection quality monitor config changed
- * @BSS_CHANGED_IBSS: IBSS join status changed
- * @BSS_CHANGED_ARP_FILTER: Hardware ARP filter address list or state changed.
- * @BSS_CHANGED_QOS: QoS for this association was enabled/disabled. Note
- * that it is only ever disabled for station mode.
- * @BSS_CHANGED_IDLE: Idle changed for this BSS/interface.
- * @BSS_CHANGED_SSID: SSID changed for this BSS (AP mode)
- * @BSS_CHANGED_AP_PROBE_RESP: Probe Response changed for this BSS (AP mode)
- */
-enum ieee80211_bss_change {
- BSS_CHANGED_ASSOC = 1<<0,
- BSS_CHANGED_ERP_CTS_PROT = 1<<1,
- BSS_CHANGED_ERP_PREAMBLE = 1<<2,
- BSS_CHANGED_ERP_SLOT = 1<<3,
- BSS_CHANGED_HT = 1<<4,
- BSS_CHANGED_BASIC_RATES = 1<<5,
- BSS_CHANGED_BEACON_INT = 1<<6,
- BSS_CHANGED_BSSID = 1<<7,
- BSS_CHANGED_BEACON = 1<<8,
- BSS_CHANGED_BEACON_ENABLED = 1<<9,
- BSS_CHANGED_CQM = 1<<10,
- BSS_CHANGED_IBSS = 1<<11,
- BSS_CHANGED_ARP_FILTER = 1<<12,
- BSS_CHANGED_QOS = 1<<13,
- BSS_CHANGED_IDLE = 1<<14,
- BSS_CHANGED_SSID = 1<<15,
- BSS_CHANGED_AP_PROBE_RESP = 1<<16,
-
- /* when adding here, make sure to change ieee80211_reconfig */
-};
-
-/*
- * The maximum number of IPv4 addresses listed for ARP filtering. If the number
- * of addresses for an interface increase beyond this value, hardware ARP
- * filtering will be disabled.
- */
-#define IEEE80211_BSS_ARP_ADDR_LIST_LEN 4
-
-/**
- * enum ieee80211_rssi_event - RSSI threshold event
- * An indicator for when RSSI goes below/above a certain threshold.
- * @RSSI_EVENT_HIGH: AP's rssi crossed the high threshold set by the driver.
- * @RSSI_EVENT_LOW: AP's rssi crossed the low threshold set by the driver.
- */
-enum ieee80211_rssi_event {
- RSSI_EVENT_HIGH,
- RSSI_EVENT_LOW,
-};
-
-/**
- * struct ieee80211_bss_conf - holds the BSS's changing parameters
- *
- * This structure keeps information about a BSS (and an association
- * to that BSS) that can change during the lifetime of the BSS.
- *
- * @assoc: association status
- * @ibss_joined: indicates whether this station is part of an IBSS
- * or not
- * @aid: association ID number, valid only when @assoc is true
- * @use_cts_prot: use CTS protection
- * @use_short_preamble: use 802.11b short preamble;
- * if the hardware cannot handle this it must set the
- * IEEE80211_HW_2GHZ_SHORT_PREAMBLE_INCAPABLE hardware flag
- * @use_short_slot: use short slot time (only relevant for ERP);
- * if the hardware cannot handle this it must set the
- * IEEE80211_HW_2GHZ_SHORT_SLOT_INCAPABLE hardware flag
- * @dtim_period: num of beacons before the next DTIM, for beaconing,
- * valid in station mode only while @assoc is true and if also
- * requested by %IEEE80211_HW_NEED_DTIM_PERIOD (cf. also hw conf
- * @ps_dtim_period)
- * @last_tsf: last beacon's/probe response's TSF timestamp (could be old
- * as it may have been received during scanning long ago)
- * @beacon_int: beacon interval
- * @assoc_capability: capabilities taken from assoc resp
- * @basic_rates: bitmap of basic rates, each bit stands for an
- * index into the rate table configured by the driver in
- * the current band.
- * @mcast_rate: per-band multicast rate index + 1 (0: disabled)
- * @bssid: The BSSID for this BSS
- * @enable_beacon: whether beaconing should be enabled or not
- * @channel_type: Channel type for this BSS -- the hardware might be
- * configured for HT40+ while this BSS only uses no-HT, for
- * example.
- * @ht_operation_mode: HT operation mode (like in &struct ieee80211_ht_info).
- * This field is only valid when the channel type is one of the HT types.
- * @cqm_rssi_thold: Connection quality monitor RSSI threshold, a zero value
- * implies disabled
- * @cqm_rssi_hyst: Connection quality monitor RSSI hysteresis
- * @arp_addr_list: List of IPv4 addresses for hardware ARP filtering. The
- * may filter ARP queries targeted for other addresses than listed here.
- * The driver must allow ARP queries targeted for all address listed here
- * to pass through. An empty list implies no ARP queries need to pass.
- * @arp_addr_cnt: Number of addresses currently on the list.
- * @arp_filter_enabled: Enable ARP filtering - if enabled, the hardware may
- * filter ARP queries based on the @arp_addr_list, if disabled, the
- * hardware must not perform any ARP filtering. Note, that the filter will
- * be enabled also in promiscuous mode.
- * @qos: This is a QoS-enabled BSS.
- * @idle: This interface is idle. There's also a global idle flag in the
- * hardware config which may be more appropriate depending on what
- * your driver/device needs to do.
- * @ssid: The SSID of the current vif. Only valid in AP-mode.
- * @ssid_len: Length of SSID given in @ssid.
- * @hidden_ssid: The SSID of the current vif is hidden. Only valid in AP-mode.
- */
-struct ieee80211_bss_conf {
- const u8 *bssid;
- /* association related data */
- bool assoc, ibss_joined;
- u16 aid;
- /* erp related data */
- bool use_cts_prot;
- bool use_short_preamble;
- bool use_short_slot;
- bool enable_beacon;
- u8 dtim_period;
- u16 beacon_int;
- u16 assoc_capability;
- u64 last_tsf;
- u32 basic_rates;
- int mcast_rate[IEEE80211_NUM_BANDS];
- u16 ht_operation_mode;
- s32 cqm_rssi_thold;
- u32 cqm_rssi_hyst;
- enum nl80211_channel_type channel_type;
- __be32 arp_addr_list[IEEE80211_BSS_ARP_ADDR_LIST_LEN];
- u8 arp_addr_cnt;
- bool arp_filter_enabled;
- bool qos;
- bool idle;
- u8 ssid[IEEE80211_MAX_SSID_LEN];
- size_t ssid_len;
- bool hidden_ssid;
-};
-
-/**
- * enum mac80211_tx_control_flags - flags to describe transmission information/status
- *
- * These flags are used with the @flags member of &ieee80211_tx_info.
- *
- * @IEEE80211_TX_CTL_REQ_TX_STATUS: require TX status callback for this frame.
- * @IEEE80211_TX_CTL_ASSIGN_SEQ: The driver has to assign a sequence
- * number to this frame, taking care of not overwriting the fragment
- * number and increasing the sequence number only when the
- * IEEE80211_TX_CTL_FIRST_FRAGMENT flag is set. mac80211 will properly
- * assign sequence numbers to QoS-data frames but cannot do so correctly
- * for non-QoS-data and management frames because beacons need them from
- * that counter as well and mac80211 cannot guarantee proper sequencing.
- * If this flag is set, the driver should instruct the hardware to
- * assign a sequence number to the frame or assign one itself. Cf. IEEE
- * 802.11-2007 7.1.3.4.1 paragraph 3. This flag will always be set for
- * beacons and always be clear for frames without a sequence number field.
- * @IEEE80211_TX_CTL_NO_ACK: tell the low level not to wait for an ack
- * @IEEE80211_TX_CTL_CLEAR_PS_FILT: clear powersave filter for destination
- * station
- * @IEEE80211_TX_CTL_FIRST_FRAGMENT: this is a first fragment of the frame
- * @IEEE80211_TX_CTL_SEND_AFTER_DTIM: send this frame after DTIM beacon
- * @IEEE80211_TX_CTL_AMPDU: this frame should be sent as part of an A-MPDU
- * @IEEE80211_TX_CTL_INJECTED: Frame was injected, internal to mac80211.
- * @IEEE80211_TX_STAT_TX_FILTERED: The frame was not transmitted
- * because the destination STA was in powersave mode. Note that to
- * avoid race conditions, the filter must be set by the hardware or
- * firmware upon receiving a frame that indicates that the station
- * went to sleep (must be done on device to filter frames already on
- * the queue) and may only be unset after mac80211 gives the OK for
- * that by setting the IEEE80211_TX_CTL_CLEAR_PS_FILT (see above),
- * since only then is it guaranteed that no more frames are in the
- * hardware queue.
- * @IEEE80211_TX_STAT_ACK: Frame was acknowledged
- * @IEEE80211_TX_STAT_AMPDU: The frame was aggregated, so status
- * is for the whole aggregation.
- * @IEEE80211_TX_STAT_AMPDU_NO_BACK: no block ack was returned,
- * so consider using block ack request (BAR).
- * @IEEE80211_TX_CTL_RATE_CTRL_PROBE: internal to mac80211, can be
- * set by rate control algorithms to indicate probe rate, will
- * be cleared for fragmented frames (except on the last fragment)
- * @IEEE80211_TX_INTFL_NEED_TXPROCESSING: completely internal to mac80211,
- * used to indicate that a pending frame requires TX processing before
- * it can be sent out.
- * @IEEE80211_TX_INTFL_RETRIED: completely internal to mac80211,
- * used to indicate that a frame was already retried due to PS
- * @IEEE80211_TX_INTFL_DONT_ENCRYPT: completely internal to mac80211,
- * used to indicate frame should not be encrypted
- * @IEEE80211_TX_CTL_NO_PS_BUFFER: This frame is a response to a poll
- * frame (PS-Poll or uAPSD) or a non-bufferable MMPDU and must
- * be sent although the station is in powersave mode.
- * @IEEE80211_TX_CTL_MORE_FRAMES: More frames will be passed to the
- * transmit function after the current frame, this can be used
- * by drivers to kick the DMA queue only if unset or when the
- * queue gets full.
- * @IEEE80211_TX_INTFL_RETRANSMISSION: This frame is being retransmitted
- * after TX status because the destination was asleep, it must not
- * be modified again (no seqno assignment, crypto, etc.)
- * @IEEE80211_TX_INTFL_NL80211_FRAME_TX: Frame was requested through nl80211
- * MLME command (internal to mac80211 to figure out whether to send TX
- * status to user space)
- * @IEEE80211_TX_CTL_LDPC: tells the driver to use LDPC for this frame
- * @IEEE80211_TX_CTL_STBC: Enables Space-Time Block Coding (STBC) for this
- * frame and selects the maximum number of streams that it can use.
- * @IEEE80211_TX_CTL_TX_OFFCHAN: Marks this packet to be transmitted on
- * the off-channel channel when a remain-on-channel offload is done
- * in hardware -- normal packets still flow and are expected to be
- * handled properly by the device.
- * @IEEE80211_TX_INTFL_TKIP_MIC_FAILURE: Marks this packet to be used for TKIP
- * testing. It will be sent out with incorrect Michael MIC key to allow
- * TKIP countermeasures to be tested.
- * @IEEE80211_TX_CTL_NO_CCK_RATE: This frame will be sent at non CCK rate.
- * This flag is actually used for management frame especially for P2P
- * frames not being sent at CCK rate in 2GHz band.
- * @IEEE80211_TX_STATUS_EOSP: This packet marks the end of service period,
- * when its status is reported the service period ends. For frames in
- * an SP that mac80211 transmits, it is already set; for driver frames
- * the driver may set this flag. It is also used to do the same for
- * PS-Poll responses.
- * @IEEE80211_TX_CTL_USE_MINRATE: This frame will be sent at lowest rate.
- * This flag is used to send nullfunc frame at minimum rate when
- * the nullfunc is used for connection monitoring purpose.
- * @IEEE80211_TX_CTL_DONTFRAG: Don't fragment this packet even if it
- * would be fragmented by size (this is optional, only used for
- * monitor injection).
- *
- * Note: If you have to add new flags to the enumeration, then don't
- * forget to update %IEEE80211_TX_TEMPORARY_FLAGS when necessary.
- */
-enum mac80211_tx_control_flags {
- IEEE80211_TX_CTL_REQ_TX_STATUS = BIT(0),
- IEEE80211_TX_CTL_ASSIGN_SEQ = BIT(1),
- IEEE80211_TX_CTL_NO_ACK = BIT(2),
- IEEE80211_TX_CTL_CLEAR_PS_FILT = BIT(3),
- IEEE80211_TX_CTL_FIRST_FRAGMENT = BIT(4),
- IEEE80211_TX_CTL_SEND_AFTER_DTIM = BIT(5),
- IEEE80211_TX_CTL_AMPDU = BIT(6),
- IEEE80211_TX_CTL_INJECTED = BIT(7),
- IEEE80211_TX_STAT_TX_FILTERED = BIT(8),
- IEEE80211_TX_STAT_ACK = BIT(9),
- IEEE80211_TX_STAT_AMPDU = BIT(10),
- IEEE80211_TX_STAT_AMPDU_NO_BACK = BIT(11),
- IEEE80211_TX_CTL_RATE_CTRL_PROBE = BIT(12),
- IEEE80211_TX_INTFL_NEED_TXPROCESSING = BIT(14),
- IEEE80211_TX_INTFL_RETRIED = BIT(15),
- IEEE80211_TX_INTFL_DONT_ENCRYPT = BIT(16),
- IEEE80211_TX_CTL_NO_PS_BUFFER = BIT(17),
- IEEE80211_TX_CTL_MORE_FRAMES = BIT(18),
- IEEE80211_TX_INTFL_RETRANSMISSION = BIT(19),
- /* hole at 20, use later */
- IEEE80211_TX_INTFL_NL80211_FRAME_TX = BIT(21),
- IEEE80211_TX_CTL_LDPC = BIT(22),
- IEEE80211_TX_CTL_STBC = BIT(23) | BIT(24),
- IEEE80211_TX_CTL_TX_OFFCHAN = BIT(25),
- IEEE80211_TX_INTFL_TKIP_MIC_FAILURE = BIT(26),
- IEEE80211_TX_CTL_NO_CCK_RATE = BIT(27),
- IEEE80211_TX_STATUS_EOSP = BIT(28),
- IEEE80211_TX_CTL_USE_MINRATE = BIT(29),
- IEEE80211_TX_CTL_DONTFRAG = BIT(30),
-};
-
-#define IEEE80211_TX_CTL_STBC_SHIFT 23
-
-/*
- * This definition is used as a mask to clear all temporary flags, which are
- * set by the tx handlers for each transmission attempt by the mac80211 stack.
- */
-#define IEEE80211_TX_TEMPORARY_FLAGS (IEEE80211_TX_CTL_NO_ACK | \
- IEEE80211_TX_CTL_CLEAR_PS_FILT | IEEE80211_TX_CTL_FIRST_FRAGMENT | \
- IEEE80211_TX_CTL_SEND_AFTER_DTIM | IEEE80211_TX_CTL_AMPDU | \
- IEEE80211_TX_STAT_TX_FILTERED | IEEE80211_TX_STAT_ACK | \
- IEEE80211_TX_STAT_AMPDU | IEEE80211_TX_STAT_AMPDU_NO_BACK | \
- IEEE80211_TX_CTL_RATE_CTRL_PROBE | IEEE80211_TX_CTL_NO_PS_BUFFER | \
- IEEE80211_TX_CTL_MORE_FRAMES | IEEE80211_TX_CTL_LDPC | \
- IEEE80211_TX_CTL_STBC | IEEE80211_TX_STATUS_EOSP)
-
-/**
- * enum mac80211_rate_control_flags - per-rate flags set by the
- * Rate Control algorithm.
- *
- * These flags are set by the Rate control algorithm for each rate during tx,
- * in the @flags member of struct ieee80211_tx_rate.
- *
- * @IEEE80211_TX_RC_USE_RTS_CTS: Use RTS/CTS exchange for this rate.
- * @IEEE80211_TX_RC_USE_CTS_PROTECT: CTS-to-self protection is required.
- * This is set if the current BSS requires ERP protection.
- * @IEEE80211_TX_RC_USE_SHORT_PREAMBLE: Use short preamble.
- * @IEEE80211_TX_RC_MCS: HT rate.
- * @IEEE80211_TX_RC_GREEN_FIELD: Indicates whether this rate should be used in
- * Greenfield mode.
- * @IEEE80211_TX_RC_40_MHZ_WIDTH: Indicates if the Channel Width should be 40 MHz.
- * @IEEE80211_TX_RC_DUP_DATA: The frame should be transmitted on both of the
- * adjacent 20 MHz channels, if the current channel type is
- * NL80211_CHAN_HT40MINUS or NL80211_CHAN_HT40PLUS.
- * @IEEE80211_TX_RC_SHORT_GI: Short Guard interval should be used for this rate.
- */
-enum mac80211_rate_control_flags {
- IEEE80211_TX_RC_USE_RTS_CTS = BIT(0),
- IEEE80211_TX_RC_USE_CTS_PROTECT = BIT(1),
- IEEE80211_TX_RC_USE_SHORT_PREAMBLE = BIT(2),
-
- /* rate index is an MCS rate number instead of an index */
- IEEE80211_TX_RC_MCS = BIT(3),
- IEEE80211_TX_RC_GREEN_FIELD = BIT(4),
- IEEE80211_TX_RC_40_MHZ_WIDTH = BIT(5),
- IEEE80211_TX_RC_DUP_DATA = BIT(6),
- IEEE80211_TX_RC_SHORT_GI = BIT(7),
-};
-
-
-/* there are 40 bytes if you don't need the rateset to be kept */
-#define IEEE80211_TX_INFO_DRIVER_DATA_SIZE 40
-
-/* if you do need the rateset, then you have less space */
-#define IEEE80211_TX_INFO_RATE_DRIVER_DATA_SIZE 24
-
-/* maximum number of rate stages */
-#define IEEE80211_TX_MAX_RATES 5
-
-/**
- * struct ieee80211_tx_rate - rate selection/status
- *
- * @idx: rate index to attempt to send with
- * @flags: rate control flags (&enum mac80211_rate_control_flags)
- * @count: number of tries in this rate before going to the next rate
- *
- * A value of -1 for @idx indicates an invalid rate and, if used
- * in an array of retry rates, that no more rates should be tried.
- *
- * When used for transmit status reporting, the driver should
- * always report the rate along with the flags it used.
- *
- * &struct ieee80211_tx_info contains an array of these structs
- * in the control information, and it will be filled by the rate
- * control algorithm according to what should be sent. For example,
- * if this array contains, in the format { <idx>, <count> } the
- * information
- * { 3, 2 }, { 2, 2 }, { 1, 4 }, { -1, 0 }, { -1, 0 }
- * then this means that the frame should be transmitted
- * up to twice at rate 3, up to twice at rate 2, and up to four
- * times at rate 1 if it doesn't get acknowledged. Say it gets
- * acknowledged by the peer after the fifth attempt, the status
- * information should then contain
- * { 3, 2 }, { 2, 2 }, { 1, 1 }, { -1, 0 } ...
- * since it was transmitted twice at rate 3, twice at rate 2
- * and once at rate 1 after which we received an acknowledgement.
- */
-struct ieee80211_tx_rate {
- s8 idx;
- u8 count;
- u8 flags;
-} __packed;
-
-/**
- * struct ieee80211_tx_info - skb transmit information
- *
- * This structure is placed in skb->cb for three uses:
- * (1) mac80211 TX control - mac80211 tells the driver what to do
- * (2) driver internal use (if applicable)
- * (3) TX status information - driver tells mac80211 what happened
- *
- * The TX control's sta pointer is only valid during the ->tx call,
- * it may be NULL.
- *
- * @flags: transmit info flags, defined above
- * @band: the band to transmit on (use for checking for races)
- * @antenna_sel_tx: antenna to use, 0 for automatic diversity
- * @ack_frame_id: internal frame ID for TX status, used internally
- * @control: union for control data
- * @status: union for status data
- * @driver_data: array of driver_data pointers
- * @ampdu_ack_len: number of acked aggregated frames.
- * relevant only if IEEE80211_TX_STAT_AMPDU was set.
- * @ampdu_len: number of aggregated frames.
- * relevant only if IEEE80211_TX_STAT_AMPDU was set.
- * @ack_signal: signal strength of the ACK frame
- */
-struct ieee80211_tx_info {
- /* common information */
- u32 flags;
- u8 band;
-
- u8 antenna_sel_tx;
-
- u16 ack_frame_id;
-
- union {
- struct {
- union {
- /* rate control */
- struct {
- struct ieee80211_tx_rate rates[
- IEEE80211_TX_MAX_RATES];
- s8 rts_cts_rate_idx;
- };
- /* only needed before rate control */
- unsigned long jiffies;
- };
- /* NB: vif can be NULL for injected frames */
- struct ieee80211_vif *vif;
- struct ieee80211_key_conf *hw_key;
- struct ieee80211_sta *sta;
- } control;
- struct {
- struct ieee80211_tx_rate rates[IEEE80211_TX_MAX_RATES];
- u8 ampdu_ack_len;
- int ack_signal;
- u8 ampdu_len;
- /* 15 bytes free */
- } status;
- struct {
- struct ieee80211_tx_rate driver_rates[
- IEEE80211_TX_MAX_RATES];
- void *rate_driver_data[
- IEEE80211_TX_INFO_RATE_DRIVER_DATA_SIZE / sizeof(void *)];
- };
- void *driver_data[
- IEEE80211_TX_INFO_DRIVER_DATA_SIZE / sizeof(void *)];
- };
-};
-
-/**
- * struct ieee80211_sched_scan_ies - scheduled scan IEs
- *
- * This structure is used to pass the appropriate IEs to be used in scheduled
- * scans for all bands. It contains both the IEs passed from the userspace
- * and the ones generated by mac80211.
- *
- * @ie: array with the IEs for each supported band
- * @len: array with the total length of the IEs for each band
- */
-struct ieee80211_sched_scan_ies {
- u8 *ie[IEEE80211_NUM_BANDS];
- size_t len[IEEE80211_NUM_BANDS];
-};
-
-static inline struct ieee80211_tx_info *IEEE80211_SKB_CB(struct sk_buff *skb)
-{
- return (struct ieee80211_tx_info *)skb->cb;
-}
-
-static inline struct ieee80211_rx_status *IEEE80211_SKB_RXCB(struct sk_buff *skb)
-{
- return (struct ieee80211_rx_status *)skb->cb;
-}
-
-/**
- * ieee80211_tx_info_clear_status - clear TX status
- *
- * @info: The &struct ieee80211_tx_info to be cleared.
- *
- * When the driver passes an skb back to mac80211, it must report
- * a number of things in TX status. This function clears everything
- * in the TX status but the rate control information (it does clear
- * the count since you need to fill that in anyway).
- *
- * NOTE: You can only use this function if you do NOT use
- * info->driver_data! Use info->rate_driver_data
- * instead if you need only the less space that allows.
- */
-static inline void
-ieee80211_tx_info_clear_status(struct ieee80211_tx_info *info)
-{
- int i;
-
- BUILD_BUG_ON(offsetof(struct ieee80211_tx_info, status.rates) !=
- offsetof(struct ieee80211_tx_info, control.rates));
- BUILD_BUG_ON(offsetof(struct ieee80211_tx_info, status.rates) !=
- offsetof(struct ieee80211_tx_info, driver_rates));
- BUILD_BUG_ON(offsetof(struct ieee80211_tx_info, status.rates) != 8);
- /* clear the rate counts */
- for (i = 0; i < IEEE80211_TX_MAX_RATES; i++)
- info->status.rates[i].count = 0;
-
- BUILD_BUG_ON(
- offsetof(struct ieee80211_tx_info, status.ampdu_ack_len) != 23);
- memset(&info->status.ampdu_ack_len, 0,
- sizeof(struct ieee80211_tx_info) -
- offsetof(struct ieee80211_tx_info, status.ampdu_ack_len));
-}
-
-
-/**
- * enum mac80211_rx_flags - receive flags
- *
- * These flags are used with the @flag member of &struct ieee80211_rx_status.
- * @RX_FLAG_MMIC_ERROR: Michael MIC error was reported on this frame.
- * Use together with %RX_FLAG_MMIC_STRIPPED.
- * @RX_FLAG_DECRYPTED: This frame was decrypted in hardware.
- * @RX_FLAG_MMIC_STRIPPED: the Michael MIC is stripped off this frame,
- * verification has been done by the hardware.
- * @RX_FLAG_IV_STRIPPED: The IV/ICV are stripped from this frame.
- * If this flag is set, the stack cannot do any replay detection
- * hence the driver or hardware will have to do that.
- * @RX_FLAG_FAILED_FCS_CRC: Set this flag if the FCS check failed on
- * the frame.
- * @RX_FLAG_FAILED_PLCP_CRC: Set this flag if the PCLP check failed on
- * the frame.
- * @RX_FLAG_MACTIME_MPDU: The timestamp passed in the RX status (@mactime
- * field) is valid and contains the time the first symbol of the MPDU
- * was received. This is useful in monitor mode and for proper IBSS
- * merging.
- * @RX_FLAG_SHORTPRE: Short preamble was used for this frame
- * @RX_FLAG_HT: HT MCS was used and rate_idx is MCS index
- * @RX_FLAG_40MHZ: HT40 (40 MHz) was used
- * @RX_FLAG_SHORT_GI: Short guard interval was used
- * @RX_FLAG_NO_SIGNAL_VAL: The signal strength value is not present.
- * Valid only for data frames (mainly A-MPDU)
- */
-enum mac80211_rx_flags {
- RX_FLAG_MMIC_ERROR = 1<<0,
- RX_FLAG_DECRYPTED = 1<<1,
- RX_FLAG_MMIC_STRIPPED = 1<<3,
- RX_FLAG_IV_STRIPPED = 1<<4,
- RX_FLAG_FAILED_FCS_CRC = 1<<5,
- RX_FLAG_FAILED_PLCP_CRC = 1<<6,
- RX_FLAG_MACTIME_MPDU = 1<<7,
- RX_FLAG_SHORTPRE = 1<<8,
- RX_FLAG_HT = 1<<9,
- RX_FLAG_40MHZ = 1<<10,
- RX_FLAG_SHORT_GI = 1<<11,
- RX_FLAG_NO_SIGNAL_VAL = 1<<12,
-};
-
-/**
- * struct ieee80211_rx_status - receive status
- *
- * The low-level driver should provide this information (the subset
- * supported by hardware) to the 802.11 code with each received
- * frame, in the skb's control buffer (cb).
- *
- * @mactime: value in microseconds of the 64-bit Time Synchronization Function
- * (TSF) timer when the first data symbol (MPDU) arrived at the hardware.
- * @band: the active band when this frame was received
- * @freq: frequency the radio was tuned to when receiving this frame, in MHz
- * @signal: signal strength when receiving this frame, either in dBm, in dB or
- * unspecified depending on the hardware capabilities flags
- * @IEEE80211_HW_SIGNAL_*
- * @antenna: antenna used
- * @rate_idx: index of data rate into band's supported rates or MCS index if
- * HT rates are use (RX_FLAG_HT)
- * @flag: %RX_FLAG_*
- * @rx_flags: internal RX flags for mac80211
- */
-struct ieee80211_rx_status {
- u64 mactime;
- enum ieee80211_band band;
- int freq;
- int signal;
- int antenna;
- int rate_idx;
- int flag;
- unsigned int rx_flags;
-};
-
-/**
- * enum ieee80211_conf_flags - configuration flags
- *
- * Flags to define PHY configuration options
- *
- * @IEEE80211_CONF_MONITOR: there's a monitor interface present -- use this
- * to determine for example whether to calculate timestamps for packets
- * or not, do not use instead of filter flags!
- * @IEEE80211_CONF_PS: Enable 802.11 power save mode (managed mode only).
- * This is the power save mode defined by IEEE 802.11-2007 section 11.2,
- * meaning that the hardware still wakes up for beacons, is able to
- * transmit frames and receive the possible acknowledgment frames.
- * Not to be confused with hardware specific wakeup/sleep states,
- * driver is responsible for that. See the section "Powersave support"
- * for more.
- * @IEEE80211_CONF_IDLE: The device is running, but idle; if the flag is set
- * the driver should be prepared to handle configuration requests but
- * may turn the device off as much as possible. Typically, this flag will
- * be set when an interface is set UP but not associated or scanning, but
- * it can also be unset in that case when monitor interfaces are active.
- * @IEEE80211_CONF_OFFCHANNEL: The device is currently not on its main
- * operating channel.
- */
-enum ieee80211_conf_flags {
- IEEE80211_CONF_MONITOR = (1<<0),
- IEEE80211_CONF_PS = (1<<1),
- IEEE80211_CONF_IDLE = (1<<2),
- IEEE80211_CONF_OFFCHANNEL = (1<<3),
-};
-
-
-/**
- * enum ieee80211_conf_changed - denotes which configuration changed
- *
- * @IEEE80211_CONF_CHANGE_LISTEN_INTERVAL: the listen interval changed
- * @IEEE80211_CONF_CHANGE_MONITOR: the monitor flag changed
- * @IEEE80211_CONF_CHANGE_PS: the PS flag or dynamic PS timeout changed
- * @IEEE80211_CONF_CHANGE_POWER: the TX power changed
- * @IEEE80211_CONF_CHANGE_CHANNEL: the channel/channel_type changed
- * @IEEE80211_CONF_CHANGE_RETRY_LIMITS: retry limits changed
- * @IEEE80211_CONF_CHANGE_IDLE: Idle flag changed
- * @IEEE80211_CONF_CHANGE_SMPS: Spatial multiplexing powersave mode changed
- */
-enum ieee80211_conf_changed {
- IEEE80211_CONF_CHANGE_SMPS = BIT(1),
- IEEE80211_CONF_CHANGE_LISTEN_INTERVAL = BIT(2),
- IEEE80211_CONF_CHANGE_MONITOR = BIT(3),
- IEEE80211_CONF_CHANGE_PS = BIT(4),
- IEEE80211_CONF_CHANGE_POWER = BIT(5),
- IEEE80211_CONF_CHANGE_CHANNEL = BIT(6),
- IEEE80211_CONF_CHANGE_RETRY_LIMITS = BIT(7),
- IEEE80211_CONF_CHANGE_IDLE = BIT(8),
-};
-
-/**
- * enum ieee80211_smps_mode - spatial multiplexing power save mode
- *
- * @IEEE80211_SMPS_AUTOMATIC: automatic
- * @IEEE80211_SMPS_OFF: off
- * @IEEE80211_SMPS_STATIC: static
- * @IEEE80211_SMPS_DYNAMIC: dynamic
- * @IEEE80211_SMPS_NUM_MODES: internal, don't use
- */
-enum ieee80211_smps_mode {
- IEEE80211_SMPS_AUTOMATIC,
- IEEE80211_SMPS_OFF,
- IEEE80211_SMPS_STATIC,
- IEEE80211_SMPS_DYNAMIC,
-
- /* keep last */
- IEEE80211_SMPS_NUM_MODES,
-};
-
-/**
- * struct ieee80211_conf - configuration of the device
- *
- * This struct indicates how the driver shall configure the hardware.
- *
- * @flags: configuration flags defined above
- *
- * @listen_interval: listen interval in units of beacon interval
- * @max_sleep_period: the maximum number of beacon intervals to sleep for
- * before checking the beacon for a TIM bit (managed mode only); this
- * value will be only achievable between DTIM frames, the hardware
- * needs to check for the multicast traffic bit in DTIM beacons.
- * This variable is valid only when the CONF_PS flag is set.
- * @ps_dtim_period: The DTIM period of the AP we're connected to, for use
- * in power saving. Power saving will not be enabled until a beacon
- * has been received and the DTIM period is known.
- * @dynamic_ps_timeout: The dynamic powersave timeout (in ms), see the
- * powersave documentation below. This variable is valid only when
- * the CONF_PS flag is set.
- *
- * @power_level: requested transmit power (in dBm)
- *
- * @channel: the channel to tune to
- * @channel_type: the channel (HT) type
- *
- * @long_frame_max_tx_count: Maximum number of transmissions for a "long" frame
- * (a frame not RTS protected), called "dot11LongRetryLimit" in 802.11,
- * but actually means the number of transmissions not the number of retries
- * @short_frame_max_tx_count: Maximum number of transmissions for a "short"
- * frame, called "dot11ShortRetryLimit" in 802.11, but actually means the
- * number of transmissions not the number of retries
- *
- * @smps_mode: spatial multiplexing powersave mode; note that
- * %IEEE80211_SMPS_STATIC is used when the device is not
- * configured for an HT channel
- */
-struct ieee80211_conf {
- u32 flags;
- int power_level, dynamic_ps_timeout;
- int max_sleep_period;
-
- u16 listen_interval;
- u8 ps_dtim_period;
-
- u8 long_frame_max_tx_count, short_frame_max_tx_count;
-
- struct ieee80211_channel *channel;
- enum nl80211_channel_type channel_type;
- enum ieee80211_smps_mode smps_mode;
-};
-
-/**
- * struct ieee80211_channel_switch - holds the channel switch data
- *
- * The information provided in this structure is required for channel switch
- * operation.
- *
- * @timestamp: value in microseconds of the 64-bit Time Synchronization
- * Function (TSF) timer when the frame containing the channel switch
- * announcement was received. This is simply the rx.mactime parameter
- * the driver passed into mac80211.
- * @block_tx: Indicates whether transmission must be blocked before the
- * scheduled channel switch, as indicated by the AP.
- * @channel: the new channel to switch to
- * @count: the number of TBTT's until the channel switch event
- */
-struct ieee80211_channel_switch {
- u64 timestamp;
- bool block_tx;
- struct ieee80211_channel *channel;
- u8 count;
-};
-
-/**
- * enum ieee80211_vif_flags - virtual interface flags
- *
- * @IEEE80211_VIF_BEACON_FILTER: the device performs beacon filtering
- * on this virtual interface to avoid unnecessary CPU wakeups
- * @IEEE80211_VIF_SUPPORTS_CQM_RSSI: the device can do connection quality
- * monitoring on this virtual interface -- i.e. it can monitor
- * connection quality related parameters, such as the RSSI level and
- * provide notifications if configured trigger levels are reached.
- */
-enum ieee80211_vif_flags {
- IEEE80211_VIF_BEACON_FILTER = BIT(0),
- IEEE80211_VIF_SUPPORTS_CQM_RSSI = BIT(1),
-};
-
-/**
- * struct ieee80211_vif - per-interface data
- *
- * Data in this structure is continually present for driver
- * use during the life of a virtual interface.
- *
- * @type: type of this virtual interface
- * @bss_conf: BSS configuration for this interface, either our own
- * or the BSS we're associated to
- * @addr: address of this interface
- * @p2p: indicates whether this AP or STA interface is a p2p
- * interface, i.e. a GO or p2p-sta respectively
- * @driver_flags: flags/capabilities the driver has for this interface,
- * these need to be set (or cleared) when the interface is added
- * or, if supported by the driver, the interface type is changed
- * at runtime, mac80211 will never touch this field
- * @drv_priv: data area for driver use, will always be aligned to
- * sizeof(void *).
- */
-struct ieee80211_vif {
- enum nl80211_iftype type;
- struct ieee80211_bss_conf bss_conf;
- u8 addr[ETH_ALEN];
- bool p2p;
- u32 driver_flags;
- /* must be last */
- u8 drv_priv[0] __attribute__((__aligned__(sizeof(void *))));
-};
-
-static inline bool ieee80211_vif_is_mesh(struct ieee80211_vif *vif)
-{
-#ifdef CONFIG_MAC80211_MESH
- return vif->type == NL80211_IFTYPE_MESH_POINT;
-#endif
- return false;
-}
-
-/**
- * enum ieee80211_key_flags - key flags
- *
- * These flags are used for communication about keys between the driver
- * and mac80211, with the @flags parameter of &struct ieee80211_key_conf.
- *
- * @IEEE80211_KEY_FLAG_WMM_STA: Set by mac80211, this flag indicates
- * that the STA this key will be used with could be using QoS.
- * @IEEE80211_KEY_FLAG_GENERATE_IV: This flag should be set by the
- * driver to indicate that it requires IV generation for this
- * particular key.
- * @IEEE80211_KEY_FLAG_GENERATE_MMIC: This flag should be set by
- * the driver for a TKIP key if it requires Michael MIC
- * generation in software.
- * @IEEE80211_KEY_FLAG_PAIRWISE: Set by mac80211, this flag indicates
- * that the key is pairwise rather then a shared key.
- * @IEEE80211_KEY_FLAG_SW_MGMT: This flag should be set by the driver for a
- * CCMP key if it requires CCMP encryption of management frames (MFP) to
- * be done in software.
- * @IEEE80211_KEY_FLAG_PUT_IV_SPACE: This flag should be set by the driver
- * for a CCMP key if space should be prepared for the IV, but the IV
- * itself should not be generated. Do not set together with
- * @IEEE80211_KEY_FLAG_GENERATE_IV on the same key.
- */
-enum ieee80211_key_flags {
- IEEE80211_KEY_FLAG_WMM_STA = 1<<0,
- IEEE80211_KEY_FLAG_GENERATE_IV = 1<<1,
- IEEE80211_KEY_FLAG_GENERATE_MMIC= 1<<2,
- IEEE80211_KEY_FLAG_PAIRWISE = 1<<3,
- IEEE80211_KEY_FLAG_SW_MGMT = 1<<4,
- IEEE80211_KEY_FLAG_PUT_IV_SPACE = 1<<5,
-};
-
-/**
- * struct ieee80211_key_conf - key information
- *
- * This key information is given by mac80211 to the driver by
- * the set_key() callback in &struct ieee80211_ops.
- *
- * @hw_key_idx: To be set by the driver, this is the key index the driver
- * wants to be given when a frame is transmitted and needs to be
- * encrypted in hardware.
- * @cipher: The key's cipher suite selector.
- * @flags: key flags, see &enum ieee80211_key_flags.
- * @keyidx: the key index (0-3)
- * @keylen: key material length
- * @key: key material. For ALG_TKIP the key is encoded as a 256-bit (32 byte)
- * data block:
- * - Temporal Encryption Key (128 bits)
- * - Temporal Authenticator Tx MIC Key (64 bits)
- * - Temporal Authenticator Rx MIC Key (64 bits)
- * @icv_len: The ICV length for this key type
- * @iv_len: The IV length for this key type
- */
-struct ieee80211_key_conf {
- u32 cipher;
- u8 icv_len;
- u8 iv_len;
- u8 hw_key_idx;
- u8 flags;
- s8 keyidx;
- u8 keylen;
- u8 key[0];
-};
-
-/**
- * enum set_key_cmd - key command
- *
- * Used with the set_key() callback in &struct ieee80211_ops, this
- * indicates whether a key is being removed or added.
- *
- * @SET_KEY: a key is set
- * @DISABLE_KEY: a key must be disabled
- */
-enum set_key_cmd {
- SET_KEY, DISABLE_KEY,
-};
-
-/**
- * enum ieee80211_sta_state - station state
- *
- * @IEEE80211_STA_NOTEXIST: station doesn't exist at all,
- * this is a special state for add/remove transitions
- * @IEEE80211_STA_NONE: station exists without special state
- * @IEEE80211_STA_AUTH: station is authenticated
- * @IEEE80211_STA_ASSOC: station is associated
- * @IEEE80211_STA_AUTHORIZED: station is authorized (802.1X)
- */
-enum ieee80211_sta_state {
- /* NOTE: These need to be ordered correctly! */
- IEEE80211_STA_NOTEXIST,
- IEEE80211_STA_NONE,
- IEEE80211_STA_AUTH,
- IEEE80211_STA_ASSOC,
- IEEE80211_STA_AUTHORIZED,
-};
-
-/**
- * struct ieee80211_sta - station table entry
- *
- * A station table entry represents a station we are possibly
- * communicating with. Since stations are RCU-managed in
- * mac80211, any ieee80211_sta pointer you get access to must
- * either be protected by rcu_read_lock() explicitly or implicitly,
- * or you must take good care to not use such a pointer after a
- * call to your sta_remove callback that removed it.
- *
- * @addr: MAC address
- * @aid: AID we assigned to the station if we're an AP
- * @supp_rates: Bitmap of supported rates (per band)
- * @ht_cap: HT capabilities of this STA; restricted to our own TX capabilities
- * @wme: indicates whether the STA supports WME. Only valid during AP-mode.
- * @drv_priv: data area for driver use, will always be aligned to
- * sizeof(void *), size is determined in hw information.
- * @uapsd_queues: bitmap of queues configured for uapsd. Only valid
- * if wme is supported.
- * @max_sp: max Service Period. Only valid if wme is supported.
- */
-struct ieee80211_sta {
- u32 supp_rates[IEEE80211_NUM_BANDS];
- u8 addr[ETH_ALEN];
- u16 aid;
- struct ieee80211_sta_ht_cap ht_cap;
- bool wme;
- u8 uapsd_queues;
- u8 max_sp;
-
- /* must be last */
- u8 drv_priv[0] __attribute__((__aligned__(sizeof(void *))));
-};
-
-/**
- * enum sta_notify_cmd - sta notify command
- *
- * Used with the sta_notify() callback in &struct ieee80211_ops, this
- * indicates if an associated station made a power state transition.
- *
- * @STA_NOTIFY_SLEEP: a station is now sleeping
- * @STA_NOTIFY_AWAKE: a sleeping station woke up
- */
-enum sta_notify_cmd {
- STA_NOTIFY_SLEEP, STA_NOTIFY_AWAKE,
-};
-
-/**
- * enum ieee80211_hw_flags - hardware flags
- *
- * These flags are used to indicate hardware capabilities to
- * the stack. Generally, flags here should have their meaning
- * done in a way that the simplest hardware doesn't need setting
- * any particular flags. There are some exceptions to this rule,
- * however, so you are advised to review these flags carefully.
- *
- * @IEEE80211_HW_HAS_RATE_CONTROL:
- * The hardware or firmware includes rate control, and cannot be
- * controlled by the stack. As such, no rate control algorithm
- * should be instantiated, and the TX rate reported to userspace
- * will be taken from the TX status instead of the rate control
- * algorithm.
- * Note that this requires that the driver implement a number of
- * callbacks so it has the correct information, it needs to have
- * the @set_rts_threshold callback and must look at the BSS config
- * @use_cts_prot for G/N protection, @use_short_slot for slot
- * timing in 2.4 GHz and @use_short_preamble for preambles for
- * CCK frames.
- *
- * @IEEE80211_HW_RX_INCLUDES_FCS:
- * Indicates that received frames passed to the stack include
- * the FCS at the end.
- *
- * @IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING:
- * Some wireless LAN chipsets buffer broadcast/multicast frames
- * for power saving stations in the hardware/firmware and others
- * rely on the host system for such buffering. This option is used
- * to configure the IEEE 802.11 upper layer to buffer broadcast and
- * multicast frames when there are power saving stations so that
- * the driver can fetch them with ieee80211_get_buffered_bc().
- *
- * @IEEE80211_HW_2GHZ_SHORT_SLOT_INCAPABLE:
- * Hardware is not capable of short slot operation on the 2.4 GHz band.
- *
- * @IEEE80211_HW_2GHZ_SHORT_PREAMBLE_INCAPABLE:
- * Hardware is not capable of receiving frames with short preamble on
- * the 2.4 GHz band.
- *
- * @IEEE80211_HW_SIGNAL_UNSPEC:
- * Hardware can provide signal values but we don't know its units. We
- * expect values between 0 and @max_signal.
- * If possible please provide dB or dBm instead.
- *
- * @IEEE80211_HW_SIGNAL_DBM:
- * Hardware gives signal values in dBm, decibel difference from
- * one milliwatt. This is the preferred method since it is standardized
- * between different devices. @max_signal does not need to be set.
- *
- * @IEEE80211_HW_SPECTRUM_MGMT:
- * Hardware supports spectrum management defined in 802.11h
- * Measurement, Channel Switch, Quieting, TPC
- *
- * @IEEE80211_HW_AMPDU_AGGREGATION:
- * Hardware supports 11n A-MPDU aggregation.
- *
- * @IEEE80211_HW_SUPPORTS_PS:
- * Hardware has power save support (i.e. can go to sleep).
- *
- * @IEEE80211_HW_PS_NULLFUNC_STACK:
- * Hardware requires nullfunc frame handling in stack, implies
- * stack support for dynamic PS.
- *
- * @IEEE80211_HW_SUPPORTS_DYNAMIC_PS:
- * Hardware has support for dynamic PS.
- *
- * @IEEE80211_HW_MFP_CAPABLE:
- * Hardware supports management frame protection (MFP, IEEE 802.11w).
- *
- * @IEEE80211_HW_SUPPORTS_STATIC_SMPS:
- * Hardware supports static spatial multiplexing powersave,
- * ie. can turn off all but one chain even on HT connections
- * that should be using more chains.
- *
- * @IEEE80211_HW_SUPPORTS_DYNAMIC_SMPS:
- * Hardware supports dynamic spatial multiplexing powersave,
- * ie. can turn off all but one chain and then wake the rest
- * up as required after, for example, rts/cts handshake.
- *
- * @IEEE80211_HW_SUPPORTS_UAPSD:
- * Hardware supports Unscheduled Automatic Power Save Delivery
- * (U-APSD) in managed mode. The mode is configured with
- * conf_tx() operation.
- *
- * @IEEE80211_HW_REPORTS_TX_ACK_STATUS:
- * Hardware can provide ack status reports of Tx frames to
- * the stack.
- *
- * @IEEE80211_HW_CONNECTION_MONITOR:
- * The hardware performs its own connection monitoring, including
- * periodic keep-alives to the AP and probing the AP on beacon loss.
- * When this flag is set, signaling beacon-loss will cause an immediate
- * change to disassociated state.
- *
- * @IEEE80211_HW_NEED_DTIM_PERIOD:
- * This device needs to know the DTIM period for the BSS before
- * associating.
- *
- * @IEEE80211_HW_SUPPORTS_PER_STA_GTK: The device's crypto engine supports
- * per-station GTKs as used by IBSS RSN or during fast transition. If
- * the device doesn't support per-station GTKs, but can be asked not
- * to decrypt group addressed frames, then IBSS RSN support is still
- * possible but software crypto will be used. Advertise the wiphy flag
- * only in that case.
- *
- * @IEEE80211_HW_AP_LINK_PS: When operating in AP mode the device
- * autonomously manages the PS status of connected stations. When
- * this flag is set mac80211 will not trigger PS mode for connected
- * stations based on the PM bit of incoming frames.
- * Use ieee80211_start_ps()/ieee8021_end_ps() to manually configure
- * the PS mode of connected stations.
- *
- * @IEEE80211_HW_TX_AMPDU_SETUP_IN_HW: The device handles TX A-MPDU session
- * setup strictly in HW. mac80211 should not attempt to do this in
- * software.
- *
- * @IEEE80211_HW_SCAN_WHILE_IDLE: The device can do hw scan while
- * being idle (i.e. mac80211 doesn't have to go idle-off during the
- * the scan).
- */
-enum ieee80211_hw_flags {
- IEEE80211_HW_HAS_RATE_CONTROL = 1<<0,
- IEEE80211_HW_RX_INCLUDES_FCS = 1<<1,
- IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING = 1<<2,
- IEEE80211_HW_2GHZ_SHORT_SLOT_INCAPABLE = 1<<3,
- IEEE80211_HW_2GHZ_SHORT_PREAMBLE_INCAPABLE = 1<<4,
- IEEE80211_HW_SIGNAL_UNSPEC = 1<<5,
- IEEE80211_HW_SIGNAL_DBM = 1<<6,
- IEEE80211_HW_NEED_DTIM_PERIOD = 1<<7,
- IEEE80211_HW_SPECTRUM_MGMT = 1<<8,
- IEEE80211_HW_AMPDU_AGGREGATION = 1<<9,
- IEEE80211_HW_SUPPORTS_PS = 1<<10,
- IEEE80211_HW_PS_NULLFUNC_STACK = 1<<11,
- IEEE80211_HW_SUPPORTS_DYNAMIC_PS = 1<<12,
- IEEE80211_HW_MFP_CAPABLE = 1<<13,
- /* reuse bit 14 */
- IEEE80211_HW_SUPPORTS_STATIC_SMPS = 1<<15,
- IEEE80211_HW_SUPPORTS_DYNAMIC_SMPS = 1<<16,
- IEEE80211_HW_SUPPORTS_UAPSD = 1<<17,
- IEEE80211_HW_REPORTS_TX_ACK_STATUS = 1<<18,
- IEEE80211_HW_CONNECTION_MONITOR = 1<<19,
- /* reuse bit 20 */
- IEEE80211_HW_SUPPORTS_PER_STA_GTK = 1<<21,
- IEEE80211_HW_AP_LINK_PS = 1<<22,
- IEEE80211_HW_TX_AMPDU_SETUP_IN_HW = 1<<23,
- IEEE80211_HW_SCAN_WHILE_IDLE = 1<<24,
-};
-
-/**
- * struct ieee80211_hw - hardware information and state
- *
- * This structure contains the configuration and hardware
- * information for an 802.11 PHY.
- *
- * @wiphy: This points to the &struct wiphy allocated for this
- * 802.11 PHY. You must fill in the @perm_addr and @dev
- * members of this structure using SET_IEEE80211_DEV()
- * and SET_IEEE80211_PERM_ADDR(). Additionally, all supported
- * bands (with channels, bitrates) are registered here.
- *
- * @conf: &struct ieee80211_conf, device configuration, don't use.
- *
- * @priv: pointer to private area that was allocated for driver use
- * along with this structure.
- *
- * @flags: hardware flags, see &enum ieee80211_hw_flags.
- *
- * @extra_tx_headroom: headroom to reserve in each transmit skb
- * for use by the driver (e.g. for transmit headers.)
- *
- * @channel_change_time: time (in microseconds) it takes to change channels.
- *
- * @max_signal: Maximum value for signal (rssi) in RX information, used
- * only when @IEEE80211_HW_SIGNAL_UNSPEC or @IEEE80211_HW_SIGNAL_DB
- *
- * @max_listen_interval: max listen interval in units of beacon interval
- * that HW supports
- *
- * @queues: number of available hardware transmit queues for
- * data packets. WMM/QoS requires at least four, these
- * queues need to have configurable access parameters.
- *
- * @rate_control_algorithm: rate control algorithm for this hardware.
- * If unset (NULL), the default algorithm will be used. Must be
- * set before calling ieee80211_register_hw().
- *
- * @vif_data_size: size (in bytes) of the drv_priv data area
- * within &struct ieee80211_vif.
- * @sta_data_size: size (in bytes) of the drv_priv data area
- * within &struct ieee80211_sta.
- *
- * @max_rates: maximum number of alternate rate retry stages the hw
- * can handle.
- * @max_report_rates: maximum number of alternate rate retry stages
- * the hw can report back.
- * @max_rate_tries: maximum number of tries for each stage
- *
- * @napi_weight: weight used for NAPI polling. You must specify an
- * appropriate value here if a napi_poll operation is provided
- * by your driver.
- *
- * @max_rx_aggregation_subframes: maximum buffer size (number of
- * sub-frames) to be used for A-MPDU block ack receiver
- * aggregation.
- * This is only relevant if the device has restrictions on the
- * number of subframes, if it relies on mac80211 to do reordering
- * it shouldn't be set.
- *
- * @max_tx_aggregation_subframes: maximum number of subframes in an
- * aggregate an HT driver will transmit, used by the peer as a
- * hint to size its reorder buffer.
- */
-struct ieee80211_hw {
- struct ieee80211_conf conf;
- struct wiphy *wiphy;
- const char *rate_control_algorithm;
- void *priv;
- u32 flags;
- unsigned int extra_tx_headroom;
- int channel_change_time;
- int vif_data_size;
- int sta_data_size;
- int napi_weight;
- u16 queues;
- u16 max_listen_interval;
- s8 max_signal;
- u8 max_rates;
- u8 max_report_rates;
- u8 max_rate_tries;
- u8 max_rx_aggregation_subframes;
- u8 max_tx_aggregation_subframes;
-};
-
-/**
- * wiphy_to_ieee80211_hw - return a mac80211 driver hw struct from a wiphy
- *
- * @wiphy: the &struct wiphy which we want to query
- *
- * mac80211 drivers can use this to get to their respective
- * &struct ieee80211_hw. Drivers wishing to get to their own private
- * structure can then access it via hw->priv. Note that mac802111 drivers should
- * not use wiphy_priv() to try to get their private driver structure as this
- * is already used internally by mac80211.
- */
-struct ieee80211_hw *wiphy_to_ieee80211_hw(struct wiphy *wiphy);
-
-/**
- * SET_IEEE80211_DEV - set device for 802.11 hardware
- *
- * @hw: the &struct ieee80211_hw to set the device for
- * @dev: the &struct device of this 802.11 device
- */
-static inline void SET_IEEE80211_DEV(struct ieee80211_hw *hw, struct device *dev)
-{
- set_wiphy_dev(hw->wiphy, dev);
-}
-
-/**
- * SET_IEEE80211_PERM_ADDR - set the permanent MAC address for 802.11 hardware
- *
- * @hw: the &struct ieee80211_hw to set the MAC address for
- * @addr: the address to set
- */
-static inline void SET_IEEE80211_PERM_ADDR(struct ieee80211_hw *hw, u8 *addr)
-{
- memcpy(hw->wiphy->perm_addr, addr, ETH_ALEN);
-}
-
-static inline struct ieee80211_rate *
-ieee80211_get_tx_rate(const struct ieee80211_hw *hw,
- const struct ieee80211_tx_info *c)
-{
- if (WARN_ON_ONCE(c->control.rates[0].idx < 0))
- return NULL;
- return &hw->wiphy->bands[c->band]->bitrates[c->control.rates[0].idx];
-}
-
-static inline struct ieee80211_rate *
-ieee80211_get_rts_cts_rate(const struct ieee80211_hw *hw,
- const struct ieee80211_tx_info *c)
-{
- if (c->control.rts_cts_rate_idx < 0)
- return NULL;
- return &hw->wiphy->bands[c->band]->bitrates[c->control.rts_cts_rate_idx];
-}
-
-static inline struct ieee80211_rate *
-ieee80211_get_alt_retry_rate(const struct ieee80211_hw *hw,
- const struct ieee80211_tx_info *c, int idx)
-{
- if (c->control.rates[idx + 1].idx < 0)
- return NULL;
- return &hw->wiphy->bands[c->band]->bitrates[c->control.rates[idx + 1].idx];
-}
-
-/**
- * ieee80211_free_txskb - free TX skb
- * @hw: the hardware
- * @skb: the skb
- *
- * Free a transmit skb. Use this funtion when some failure
- * to transmit happened and thus status cannot be reported.
- */
-void ieee80211_free_txskb(struct ieee80211_hw *hw, struct sk_buff *skb);
-
-/**
- * DOC: Hardware crypto acceleration
- *
- * mac80211 is capable of taking advantage of many hardware
- * acceleration designs for encryption and decryption operations.
- *
- * The set_key() callback in the &struct ieee80211_ops for a given
- * device is called to enable hardware acceleration of encryption and
- * decryption. The callback takes a @sta parameter that will be NULL
- * for default keys or keys used for transmission only, or point to
- * the station information for the peer for individual keys.
- * Multiple transmission keys with the same key index may be used when
- * VLANs are configured for an access point.
- *
- * When transmitting, the TX control data will use the @hw_key_idx
- * selected by the driver by modifying the &struct ieee80211_key_conf
- * pointed to by the @key parameter to the set_key() function.
- *
- * The set_key() call for the %SET_KEY command should return 0 if
- * the key is now in use, -%EOPNOTSUPP or -%ENOSPC if it couldn't be
- * added; if you return 0 then hw_key_idx must be assigned to the
- * hardware key index, you are free to use the full u8 range.
- *
- * When the cmd is %DISABLE_KEY then it must succeed.
- *
- * Note that it is permissible to not decrypt a frame even if a key
- * for it has been uploaded to hardware, the stack will not make any
- * decision based on whether a key has been uploaded or not but rather
- * based on the receive flags.
- *
- * The &struct ieee80211_key_conf structure pointed to by the @key
- * parameter is guaranteed to be valid until another call to set_key()
- * removes it, but it can only be used as a cookie to differentiate
- * keys.
- *
- * In TKIP some HW need to be provided a phase 1 key, for RX decryption
- * acceleration (i.e. iwlwifi). Those drivers should provide update_tkip_key
- * handler.
- * The update_tkip_key() call updates the driver with the new phase 1 key.
- * This happens every time the iv16 wraps around (every 65536 packets). The
- * set_key() call will happen only once for each key (unless the AP did
- * rekeying), it will not include a valid phase 1 key. The valid phase 1 key is
- * provided by update_tkip_key only. The trigger that makes mac80211 call this
- * handler is software decryption with wrap around of iv16.
- */
-
-/**
- * DOC: Powersave support
- *
- * mac80211 has support for various powersave implementations.
- *
- * First, it can support hardware that handles all powersaving by itself,
- * such hardware should simply set the %IEEE80211_HW_SUPPORTS_PS hardware
- * flag. In that case, it will be told about the desired powersave mode
- * with the %IEEE80211_CONF_PS flag depending on the association status.
- * The hardware must take care of sending nullfunc frames when necessary,
- * i.e. when entering and leaving powersave mode. The hardware is required
- * to look at the AID in beacons and signal to the AP that it woke up when
- * it finds traffic directed to it.
- *
- * %IEEE80211_CONF_PS flag enabled means that the powersave mode defined in
- * IEEE 802.11-2007 section 11.2 is enabled. This is not to be confused
- * with hardware wakeup and sleep states. Driver is responsible for waking
- * up the hardware before issuing commands to the hardware and putting it
- * back to sleep at appropriate times.
- *
- * When PS is enabled, hardware needs to wakeup for beacons and receive the
- * buffered multicast/broadcast frames after the beacon. Also it must be
- * possible to send frames and receive the acknowledment frame.
- *
- * Other hardware designs cannot send nullfunc frames by themselves and also
- * need software support for parsing the TIM bitmap. This is also supported
- * by mac80211 by combining the %IEEE80211_HW_SUPPORTS_PS and
- * %IEEE80211_HW_PS_NULLFUNC_STACK flags. The hardware is of course still
- * required to pass up beacons. The hardware is still required to handle
- * waking up for multicast traffic; if it cannot the driver must handle that
- * as best as it can, mac80211 is too slow to do that.
- *
- * Dynamic powersave is an extension to normal powersave in which the
- * hardware stays awake for a user-specified period of time after sending a
- * frame so that reply frames need not be buffered and therefore delayed to
- * the next wakeup. It's compromise of getting good enough latency when
- * there's data traffic and still saving significantly power in idle
- * periods.
- *
- * Dynamic powersave is simply supported by mac80211 enabling and disabling
- * PS based on traffic. Driver needs to only set %IEEE80211_HW_SUPPORTS_PS
- * flag and mac80211 will handle everything automatically. Additionally,
- * hardware having support for the dynamic PS feature may set the
- * %IEEE80211_HW_SUPPORTS_DYNAMIC_PS flag to indicate that it can support
- * dynamic PS mode itself. The driver needs to look at the
- * @dynamic_ps_timeout hardware configuration value and use it that value
- * whenever %IEEE80211_CONF_PS is set. In this case mac80211 will disable
- * dynamic PS feature in stack and will just keep %IEEE80211_CONF_PS
- * enabled whenever user has enabled powersave.
- *
- * Some hardware need to toggle a single shared antenna between WLAN and
- * Bluetooth to facilitate co-existence. These types of hardware set
- * limitations on the use of host controlled dynamic powersave whenever there
- * is simultaneous WLAN and Bluetooth traffic. For these types of hardware, the
- * driver may request temporarily going into full power save, in order to
- * enable toggling the antenna between BT and WLAN. If the driver requests
- * disabling dynamic powersave, the @dynamic_ps_timeout value will be
- * temporarily set to zero until the driver re-enables dynamic powersave.
- *
- * Driver informs U-APSD client support by enabling
- * %IEEE80211_HW_SUPPORTS_UAPSD flag. The mode is configured through the
- * uapsd paramater in conf_tx() operation. Hardware needs to send the QoS
- * Nullfunc frames and stay awake until the service period has ended. To
- * utilize U-APSD, dynamic powersave is disabled for voip AC and all frames
- * from that AC are transmitted with powersave enabled.
- *
- * Note: U-APSD client mode is not yet supported with
- * %IEEE80211_HW_PS_NULLFUNC_STACK.
- */
-
-/**
- * DOC: Beacon filter support
- *
- * Some hardware have beacon filter support to reduce host cpu wakeups
- * which will reduce system power consumption. It usually works so that
- * the firmware creates a checksum of the beacon but omits all constantly
- * changing elements (TSF, TIM etc). Whenever the checksum changes the
- * beacon is forwarded to the host, otherwise it will be just dropped. That
- * way the host will only receive beacons where some relevant information
- * (for example ERP protection or WMM settings) have changed.
- *
- * Beacon filter support is advertised with the %IEEE80211_VIF_BEACON_FILTER
- * interface capability. The driver needs to enable beacon filter support
- * whenever power save is enabled, that is %IEEE80211_CONF_PS is set. When
- * power save is enabled, the stack will not check for beacon loss and the
- * driver needs to notify about loss of beacons with ieee80211_beacon_loss().
- *
- * The time (or number of beacons missed) until the firmware notifies the
- * driver of a beacon loss event (which in turn causes the driver to call
- * ieee80211_beacon_loss()) should be configurable and will be controlled
- * by mac80211 and the roaming algorithm in the future.
- *
- * Since there may be constantly changing information elements that nothing
- * in the software stack cares about, we will, in the future, have mac80211
- * tell the driver which information elements are interesting in the sense
- * that we want to see changes in them. This will include
- * - a list of information element IDs
- * - a list of OUIs for the vendor information element
- *
- * Ideally, the hardware would filter out any beacons without changes in the
- * requested elements, but if it cannot support that it may, at the expense
- * of some efficiency, filter out only a subset. For example, if the device
- * doesn't support checking for OUIs it should pass up all changes in all
- * vendor information elements.
- *
- * Note that change, for the sake of simplification, also includes information
- * elements appearing or disappearing from the beacon.
- *
- * Some hardware supports an "ignore list" instead, just make sure nothing
- * that was requested is on the ignore list, and include commonly changing
- * information element IDs in the ignore list, for example 11 (BSS load) and
- * the various vendor-assigned IEs with unknown contents (128, 129, 133-136,
- * 149, 150, 155, 156, 173, 176, 178, 179, 219); for forward compatibility
- * it could also include some currently unused IDs.
- *
- *
- * In addition to these capabilities, hardware should support notifying the
- * host of changes in the beacon RSSI. This is relevant to implement roaming
- * when no traffic is flowing (when traffic is flowing we see the RSSI of
- * the received data packets). This can consist in notifying the host when
- * the RSSI changes significantly or when it drops below or rises above
- * configurable thresholds. In the future these thresholds will also be
- * configured by mac80211 (which gets them from userspace) to implement
- * them as the roaming algorithm requires.
- *
- * If the hardware cannot implement this, the driver should ask it to
- * periodically pass beacon frames to the host so that software can do the
- * signal strength threshold checking.
- */
-
-/**
- * DOC: Spatial multiplexing power save
- *
- * SMPS (Spatial multiplexing power save) is a mechanism to conserve
- * power in an 802.11n implementation. For details on the mechanism
- * and rationale, please refer to 802.11 (as amended by 802.11n-2009)
- * "11.2.3 SM power save".
- *
- * The mac80211 implementation is capable of sending action frames
- * to update the AP about the station's SMPS mode, and will instruct
- * the driver to enter the specific mode. It will also announce the
- * requested SMPS mode during the association handshake. Hardware
- * support for this feature is required, and can be indicated by
- * hardware flags.
- *
- * The default mode will be "automatic", which nl80211/cfg80211
- * defines to be dynamic SMPS in (regular) powersave, and SMPS
- * turned off otherwise.
- *
- * To support this feature, the driver must set the appropriate
- * hardware support flags, and handle the SMPS flag to the config()
- * operation. It will then with this mechanism be instructed to
- * enter the requested SMPS mode while associated to an HT AP.
- */
-
-/**
- * DOC: Frame filtering
- *
- * mac80211 requires to see many management frames for proper
- * operation, and users may want to see many more frames when
- * in monitor mode. However, for best CPU usage and power consumption,
- * having as few frames as possible percolate through the stack is
- * desirable. Hence, the hardware should filter as much as possible.
- *
- * To achieve this, mac80211 uses filter flags (see below) to tell
- * the driver's configure_filter() function which frames should be
- * passed to mac80211 and which should be filtered out.
- *
- * Before configure_filter() is invoked, the prepare_multicast()
- * callback is invoked with the parameters @mc_count and @mc_list
- * for the combined multicast address list of all virtual interfaces.
- * It's use is optional, and it returns a u64 that is passed to
- * configure_filter(). Additionally, configure_filter() has the
- * arguments @changed_flags telling which flags were changed and
- * @total_flags with the new flag states.
- *
- * If your device has no multicast address filters your driver will
- * need to check both the %FIF_ALLMULTI flag and the @mc_count
- * parameter to see whether multicast frames should be accepted
- * or dropped.
- *
- * All unsupported flags in @total_flags must be cleared.
- * Hardware does not support a flag if it is incapable of _passing_
- * the frame to the stack. Otherwise the driver must ignore
- * the flag, but not clear it.
- * You must _only_ clear the flag (announce no support for the
- * flag to mac80211) if you are not able to pass the packet type
- * to the stack (so the hardware always filters it).
- * So for example, you should clear @FIF_CONTROL, if your hardware
- * always filters control frames. If your hardware always passes
- * control frames to the kernel and is incapable of filtering them,
- * you do _not_ clear the @FIF_CONTROL flag.
- * This rule applies to all other FIF flags as well.
- */
-
-/**
- * DOC: AP support for powersaving clients
- *
- * In order to implement AP and P2P GO modes, mac80211 has support for
- * client powersaving, both "legacy" PS (PS-Poll/null data) and uAPSD.
- * There currently is no support for sAPSD.
- *
- * There is one assumption that mac80211 makes, namely that a client
- * will not poll with PS-Poll and trigger with uAPSD at the same time.
- * Both are supported, and both can be used by the same client, but
- * they can't be used concurrently by the same client. This simplifies
- * the driver code.
- *
- * The first thing to keep in mind is that there is a flag for complete
- * driver implementation: %IEEE80211_HW_AP_LINK_PS. If this flag is set,
- * mac80211 expects the driver to handle most of the state machine for
- * powersaving clients and will ignore the PM bit in incoming frames.
- * Drivers then use ieee80211_sta_ps_transition() to inform mac80211 of
- * stations' powersave transitions. In this mode, mac80211 also doesn't
- * handle PS-Poll/uAPSD.
- *
- * In the mode without %IEEE80211_HW_AP_LINK_PS, mac80211 will check the
- * PM bit in incoming frames for client powersave transitions. When a
- * station goes to sleep, we will stop transmitting to it. There is,
- * however, a race condition: a station might go to sleep while there is
- * data buffered on hardware queues. If the device has support for this
- * it will reject frames, and the driver should give the frames back to
- * mac80211 with the %IEEE80211_TX_STAT_TX_FILTERED flag set which will
- * cause mac80211 to retry the frame when the station wakes up. The
- * driver is also notified of powersave transitions by calling its
- * @sta_notify callback.
- *
- * When the station is asleep, it has three choices: it can wake up,
- * it can PS-Poll, or it can possibly start a uAPSD service period.
- * Waking up is implemented by simply transmitting all buffered (and
- * filtered) frames to the station. This is the easiest case. When
- * the station sends a PS-Poll or a uAPSD trigger frame, mac80211
- * will inform the driver of this with the @allow_buffered_frames
- * callback; this callback is optional. mac80211 will then transmit
- * the frames as usual and set the %IEEE80211_TX_CTL_NO_PS_BUFFER
- * on each frame. The last frame in the service period (or the only
- * response to a PS-Poll) also has %IEEE80211_TX_STATUS_EOSP set to
- * indicate that it ends the service period; as this frame must have
- * TX status report it also sets %IEEE80211_TX_CTL_REQ_TX_STATUS.
- * When TX status is reported for this frame, the service period is
- * marked has having ended and a new one can be started by the peer.
- *
- * Additionally, non-bufferable MMPDUs can also be transmitted by
- * mac80211 with the %IEEE80211_TX_CTL_NO_PS_BUFFER set in them.
- *
- * Another race condition can happen on some devices like iwlwifi
- * when there are frames queued for the station and it wakes up
- * or polls; the frames that are already queued could end up being
- * transmitted first instead, causing reordering and/or wrong
- * processing of the EOSP. The cause is that allowing frames to be
- * transmitted to a certain station is out-of-band communication to
- * the device. To allow this problem to be solved, the driver can
- * call ieee80211_sta_block_awake() if frames are buffered when it
- * is notified that the station went to sleep. When all these frames
- * have been filtered (see above), it must call the function again
- * to indicate that the station is no longer blocked.
- *
- * If the driver buffers frames in the driver for aggregation in any
- * way, it must use the ieee80211_sta_set_buffered() call when it is
- * notified of the station going to sleep to inform mac80211 of any
- * TIDs that have frames buffered. Note that when a station wakes up
- * this information is reset (hence the requirement to call it when
- * informed of the station going to sleep). Then, when a service
- * period starts for any reason, @release_buffered_frames is called
- * with the number of frames to be released and which TIDs they are
- * to come from. In this case, the driver is responsible for setting
- * the EOSP (for uAPSD) and MORE_DATA bits in the released frames,
- * to help the @more_data paramter is passed to tell the driver if
- * there is more data on other TIDs -- the TIDs to release frames
- * from are ignored since mac80211 doesn't know how many frames the
- * buffers for those TIDs contain.
- *
- * If the driver also implement GO mode, where absence periods may
- * shorten service periods (or abort PS-Poll responses), it must
- * filter those response frames except in the case of frames that
- * are buffered in the driver -- those must remain buffered to avoid
- * reordering. Because it is possible that no frames are released
- * in this case, the driver must call ieee80211_sta_eosp_irqsafe()
- * to indicate to mac80211 that the service period ended anyway.
- *
- * Finally, if frames from multiple TIDs are released from mac80211
- * but the driver might reorder them, it must clear & set the flags
- * appropriately (only the last frame may have %IEEE80211_TX_STATUS_EOSP)
- * and also take care of the EOSP and MORE_DATA bits in the frame.
- * The driver may also use ieee80211_sta_eosp_irqsafe() in this case.
- */
-
-/**
- * enum ieee80211_filter_flags - hardware filter flags
- *
- * These flags determine what the filter in hardware should be
- * programmed to let through and what should not be passed to the
- * stack. It is always safe to pass more frames than requested,
- * but this has negative impact on power consumption.
- *
- * @FIF_PROMISC_IN_BSS: promiscuous mode within your BSS,
- * think of the BSS as your network segment and then this corresponds
- * to the regular ethernet device promiscuous mode.
- *
- * @FIF_ALLMULTI: pass all multicast frames, this is used if requested
- * by the user or if the hardware is not capable of filtering by
- * multicast address.
- *
- * @FIF_FCSFAIL: pass frames with failed FCS (but you need to set the
- * %RX_FLAG_FAILED_FCS_CRC for them)
- *
- * @FIF_PLCPFAIL: pass frames with failed PLCP CRC (but you need to set
- * the %RX_FLAG_FAILED_PLCP_CRC for them
- *
- * @FIF_BCN_PRBRESP_PROMISC: This flag is set during scanning to indicate
- * to the hardware that it should not filter beacons or probe responses
- * by BSSID. Filtering them can greatly reduce the amount of processing
- * mac80211 needs to do and the amount of CPU wakeups, so you should
- * honour this flag if possible.
- *
- * @FIF_CONTROL: pass control frames (except for PS Poll), if PROMISC_IN_BSS
- * is not set then only those addressed to this station.
- *
- * @FIF_OTHER_BSS: pass frames destined to other BSSes
- *
- * @FIF_PSPOLL: pass PS Poll frames, if PROMISC_IN_BSS is not set then only
- * those addressed to this station.
- *
- * @FIF_PROBE_REQ: pass probe request frames
- */
-enum ieee80211_filter_flags {
- FIF_PROMISC_IN_BSS = 1<<0,
- FIF_ALLMULTI = 1<<1,
- FIF_FCSFAIL = 1<<2,
- FIF_PLCPFAIL = 1<<3,
- FIF_BCN_PRBRESP_PROMISC = 1<<4,
- FIF_CONTROL = 1<<5,
- FIF_OTHER_BSS = 1<<6,
- FIF_PSPOLL = 1<<7,
- FIF_PROBE_REQ = 1<<8,
-};
-
-/**
- * enum ieee80211_ampdu_mlme_action - A-MPDU actions
- *
- * These flags are used with the ampdu_action() callback in
- * &struct ieee80211_ops to indicate which action is needed.
- *
- * Note that drivers MUST be able to deal with a TX aggregation
- * session being stopped even before they OK'ed starting it by
- * calling ieee80211_start_tx_ba_cb_irqsafe, because the peer
- * might receive the addBA frame and send a delBA right away!
- *
- * @IEEE80211_AMPDU_RX_START: start Rx aggregation
- * @IEEE80211_AMPDU_RX_STOP: stop Rx aggregation
- * @IEEE80211_AMPDU_TX_START: start Tx aggregation
- * @IEEE80211_AMPDU_TX_STOP: stop Tx aggregation
- * @IEEE80211_AMPDU_TX_OPERATIONAL: TX aggregation has become operational
- */
-enum ieee80211_ampdu_mlme_action {
- IEEE80211_AMPDU_RX_START,
- IEEE80211_AMPDU_RX_STOP,
- IEEE80211_AMPDU_TX_START,
- IEEE80211_AMPDU_TX_STOP,
- IEEE80211_AMPDU_TX_OPERATIONAL,
-};
-
-/**
- * enum ieee80211_frame_release_type - frame release reason
- * @IEEE80211_FRAME_RELEASE_PSPOLL: frame released for PS-Poll
- * @IEEE80211_FRAME_RELEASE_UAPSD: frame(s) released due to
- * frame received on trigger-enabled AC
- */
-enum ieee80211_frame_release_type {
- IEEE80211_FRAME_RELEASE_PSPOLL,
- IEEE80211_FRAME_RELEASE_UAPSD,
-};
-
-/**
- * struct ieee80211_ops - callbacks from mac80211 to the driver
- *
- * This structure contains various callbacks that the driver may
- * handle or, in some cases, must handle, for example to configure
- * the hardware to a new channel or to transmit a frame.
- *
- * @tx: Handler that 802.11 module calls for each transmitted frame.
- * skb contains the buffer starting from the IEEE 802.11 header.
- * The low-level driver should send the frame out based on
- * configuration in the TX control data. This handler should,
- * preferably, never fail and stop queues appropriately.
- * This must be implemented if @tx_frags is not.
- * Must be atomic.
- *
- * @tx_frags: Called to transmit multiple fragments of a single MSDU.
- * This handler must consume all fragments, sending out some of
- * them only is useless and it can't ask for some of them to be
- * queued again. If the frame is not fragmented the queue has a
- * single SKB only. To avoid issues with the networking stack
- * when TX status is reported the frames should be removed from
- * the skb queue.
- * If this is used, the tx_info @vif and @sta pointers will be
- * invalid -- you must not use them in that case.
- * This must be implemented if @tx isn't.
- * Must be atomic.
- *
- * @start: Called before the first netdevice attached to the hardware
- * is enabled. This should turn on the hardware and must turn on
- * frame reception (for possibly enabled monitor interfaces.)
- * Returns negative error codes, these may be seen in userspace,
- * or zero.
- * When the device is started it should not have a MAC address
- * to avoid acknowledging frames before a non-monitor device
- * is added.
- * Must be implemented and can sleep.
- *
- * @stop: Called after last netdevice attached to the hardware
- * is disabled. This should turn off the hardware (at least
- * it must turn off frame reception.)
- * May be called right after add_interface if that rejects
- * an interface. If you added any work onto the mac80211 workqueue
- * you should ensure to cancel it on this callback.
- * Must be implemented and can sleep.
- *
- * @suspend: Suspend the device; mac80211 itself will quiesce before and
- * stop transmitting and doing any other configuration, and then
- * ask the device to suspend. This is only invoked when WoWLAN is
- * configured, otherwise the device is deconfigured completely and
- * reconfigured at resume time.
- * The driver may also impose special conditions under which it
- * wants to use the "normal" suspend (deconfigure), say if it only
- * supports WoWLAN when the device is associated. In this case, it
- * must return 1 from this function.
- *
- * @resume: If WoWLAN was configured, this indicates that mac80211 is
- * now resuming its operation, after this the device must be fully
- * functional again. If this returns an error, the only way out is
- * to also unregister the device. If it returns 1, then mac80211
- * will also go through the regular complete restart on resume.
- *
- * @add_interface: Called when a netdevice attached to the hardware is
- * enabled. Because it is not called for monitor mode devices, @start
- * and @stop must be implemented.
- * The driver should perform any initialization it needs before
- * the device can be enabled. The initial configuration for the
- * interface is given in the conf parameter.
- * The callback may refuse to add an interface by returning a
- * negative error code (which will be seen in userspace.)
- * Must be implemented and can sleep.
- *
- * @change_interface: Called when a netdevice changes type. This callback
- * is optional, but only if it is supported can interface types be
- * switched while the interface is UP. The callback may sleep.
- * Note that while an interface is being switched, it will not be
- * found by the interface iteration callbacks.
- *
- * @remove_interface: Notifies a driver that an interface is going down.
- * The @stop callback is called after this if it is the last interface
- * and no monitor interfaces are present.
- * When all interfaces are removed, the MAC address in the hardware
- * must be cleared so the device no longer acknowledges packets,
- * the mac_addr member of the conf structure is, however, set to the
- * MAC address of the device going away.
- * Hence, this callback must be implemented. It can sleep.
- *
- * @config: Handler for configuration requests. IEEE 802.11 code calls this
- * function to change hardware configuration, e.g., channel.
- * This function should never fail but returns a negative error code
- * if it does. The callback can sleep.
- *
- * @bss_info_changed: Handler for configuration requests related to BSS
- * parameters that may vary during BSS's lifespan, and may affect low
- * level driver (e.g. assoc/disassoc status, erp parameters).
- * This function should not be used if no BSS has been set, unless
- * for association indication. The @changed parameter indicates which
- * of the bss parameters has changed when a call is made. The callback
- * can sleep.
- *
- * @prepare_multicast: Prepare for multicast filter configuration.
- * This callback is optional, and its return value is passed
- * to configure_filter(). This callback must be atomic.
- *
- * @configure_filter: Configure the device's RX filter.
- * See the section "Frame filtering" for more information.
- * This callback must be implemented and can sleep.
- *
- * @set_tim: Set TIM bit. mac80211 calls this function when a TIM bit
- * must be set or cleared for a given STA. Must be atomic.
- *
- * @set_key: See the section "Hardware crypto acceleration"
- * This callback is only called between add_interface and
- * remove_interface calls, i.e. while the given virtual interface
- * is enabled.
- * Returns a negative error code if the key can't be added.
- * The callback can sleep.
- *
- * @update_tkip_key: See the section "Hardware crypto acceleration"
- * This callback will be called in the context of Rx. Called for drivers
- * which set IEEE80211_KEY_FLAG_TKIP_REQ_RX_P1_KEY.
- * The callback must be atomic.
- *
- * @set_rekey_data: If the device supports GTK rekeying, for example while the
- * host is suspended, it can assign this callback to retrieve the data
- * necessary to do GTK rekeying, this is the KEK, KCK and replay counter.
- * After rekeying was done it should (for example during resume) notify
- * userspace of the new replay counter using ieee80211_gtk_rekey_notify().
- *
- * @hw_scan: Ask the hardware to service the scan request, no need to start
- * the scan state machine in stack. The scan must honour the channel
- * configuration done by the regulatory agent in the wiphy's
- * registered bands. The hardware (or the driver) needs to make sure
- * that power save is disabled.
- * The @req ie/ie_len members are rewritten by mac80211 to contain the
- * entire IEs after the SSID, so that drivers need not look at these
- * at all but just send them after the SSID -- mac80211 includes the
- * (extended) supported rates and HT information (where applicable).
- * When the scan finishes, ieee80211_scan_completed() must be called;
- * note that it also must be called when the scan cannot finish due to
- * any error unless this callback returned a negative error code.
- * The callback can sleep.
- *
- * @cancel_hw_scan: Ask the low-level tp cancel the active hw scan.
- * The driver should ask the hardware to cancel the scan (if possible),
- * but the scan will be completed only after the driver will call
- * ieee80211_scan_completed().
- * This callback is needed for wowlan, to prevent enqueueing a new
- * scan_work after the low-level driver was already suspended.
- * The callback can sleep.
- *
- * @sched_scan_start: Ask the hardware to start scanning repeatedly at
- * specific intervals. The driver must call the
- * ieee80211_sched_scan_results() function whenever it finds results.
- * This process will continue until sched_scan_stop is called.
- *
- * @sched_scan_stop: Tell the hardware to stop an ongoing scheduled scan.
- *
- * @sw_scan_start: Notifier function that is called just before a software scan
- * is started. Can be NULL, if the driver doesn't need this notification.
- * The callback can sleep.
- *
- * @sw_scan_complete: Notifier function that is called just after a
- * software scan finished. Can be NULL, if the driver doesn't need
- * this notification.
- * The callback can sleep.
- *
- * @get_stats: Return low-level statistics.
- * Returns zero if statistics are available.
- * The callback can sleep.
- *
- * @get_tkip_seq: If your device implements TKIP encryption in hardware this
- * callback should be provided to read the TKIP transmit IVs (both IV32
- * and IV16) for the given key from hardware.
- * The callback must be atomic.
- *
- * @set_frag_threshold: Configuration of fragmentation threshold. Assign this
- * if the device does fragmentation by itself; if this callback is
- * implemented then the stack will not do fragmentation.
- * The callback can sleep.
- *
- * @set_rts_threshold: Configuration of RTS threshold (if device needs it)
- * The callback can sleep.
- *
- * @sta_add: Notifies low level driver about addition of an associated station,
- * AP, IBSS/WDS/mesh peer etc. This callback can sleep.
- *
- * @sta_remove: Notifies low level driver about removal of an associated
- * station, AP, IBSS/WDS/mesh peer etc. This callback can sleep.
- *
- * @sta_notify: Notifies low level driver about power state transition of an
- * associated station, AP, IBSS/WDS/mesh peer etc. For a VIF operating
- * in AP mode, this callback will not be called when the flag
- * %IEEE80211_HW_AP_LINK_PS is set. Must be atomic.
- *
- * @sta_state: Notifies low level driver about state transition of a
- * station (which can be the AP, a client, IBSS/WDS/mesh peer etc.)
- * This callback is mutually exclusive with @sta_add/@sta_remove.
- * It must not fail for down transitions but may fail for transitions
- * up the list of states.
- * The callback can sleep.
- *
- * @conf_tx: Configure TX queue parameters (EDCF (aifs, cw_min, cw_max),
- * bursting) for a hardware TX queue.
- * Returns a negative error code on failure.
- * The callback can sleep.
- *
- * @get_tsf: Get the current TSF timer value from firmware/hardware. Currently,
- * this is only used for IBSS mode BSSID merging and debugging. Is not a
- * required function.
- * The callback can sleep.
- *
- * @set_tsf: Set the TSF timer to the specified value in the firmware/hardware.
- * Currently, this is only used for IBSS mode debugging. Is not a
- * required function.
- * The callback can sleep.
- *
- * @reset_tsf: Reset the TSF timer and allow firmware/hardware to synchronize
- * with other STAs in the IBSS. This is only used in IBSS mode. This
- * function is optional if the firmware/hardware takes full care of
- * TSF synchronization.
- * The callback can sleep.
- *
- * @tx_last_beacon: Determine whether the last IBSS beacon was sent by us.
- * This is needed only for IBSS mode and the result of this function is
- * used to determine whether to reply to Probe Requests.
- * Returns non-zero if this device sent the last beacon.
- * The callback can sleep.
- *
- * @ampdu_action: Perform a certain A-MPDU action
- * The RA/TID combination determines the destination and TID we want
- * the ampdu action to be performed for. The action is defined through
- * ieee80211_ampdu_mlme_action. Starting sequence number (@ssn)
- * is the first frame we expect to perform the action on. Notice
- * that TX/RX_STOP can pass NULL for this parameter.
- * The @buf_size parameter is only valid when the action is set to
- * %IEEE80211_AMPDU_TX_OPERATIONAL and indicates the peer's reorder
- * buffer size (number of subframes) for this session -- the driver
- * may neither send aggregates containing more subframes than this
- * nor send aggregates in a way that lost frames would exceed the
- * buffer size. If just limiting the aggregate size, this would be
- * possible with a buf_size of 8:
- * - TX: 1.....7
- * - RX: 2....7 (lost frame #1)
- * - TX: 8..1...
- * which is invalid since #1 was now re-transmitted well past the
- * buffer size of 8. Correct ways to retransmit #1 would be:
- * - TX: 1 or 18 or 81
- * Even "189" would be wrong since 1 could be lost again.
- *
- * Returns a negative error code on failure.
- * The callback can sleep.
- *
- * @get_survey: Return per-channel survey information
- *
- * @rfkill_poll: Poll rfkill hardware state. If you need this, you also
- * need to set wiphy->rfkill_poll to %true before registration,
- * and need to call wiphy_rfkill_set_hw_state() in the callback.
- * The callback can sleep.
- *
- * @set_coverage_class: Set slot time for given coverage class as specified
- * in IEEE 802.11-2007 section 17.3.8.6 and modify ACK timeout
- * accordingly. This callback is not required and may sleep.
- *
- * @testmode_cmd: Implement a cfg80211 test mode command.
- * The callback can sleep.
- * @testmode_dump: Implement a cfg80211 test mode dump. The callback can sleep.
- *
- * @flush: Flush all pending frames from the hardware queue, making sure
- * that the hardware queues are empty. If the parameter @drop is set
- * to %true, pending frames may be dropped. The callback can sleep.
- *
- * @channel_switch: Drivers that need (or want) to offload the channel
- * switch operation for CSAs received from the AP may implement this
- * callback. They must then call ieee80211_chswitch_done() to indicate
- * completion of the channel switch.
- *
- * @napi_poll: Poll Rx queue for incoming data frames.
- *
- * @set_antenna: Set antenna configuration (tx_ant, rx_ant) on the device.
- * Parameters are bitmaps of allowed antennas to use for TX/RX. Drivers may
- * reject TX/RX mask combinations they cannot support by returning -EINVAL
- * (also see nl80211.h @NL80211_ATTR_WIPHY_ANTENNA_TX).
- *
- * @get_antenna: Get current antenna configuration from device (tx_ant, rx_ant).
- *
- * @remain_on_channel: Starts an off-channel period on the given channel, must
- * call back to ieee80211_ready_on_channel() when on that channel. Note
- * that normal channel traffic is not stopped as this is intended for hw
- * offload. Frames to transmit on the off-channel channel are transmitted
- * normally except for the %IEEE80211_TX_CTL_TX_OFFCHAN flag. When the
- * duration (which will always be non-zero) expires, the driver must call
- * ieee80211_remain_on_channel_expired(). This callback may sleep.
- * @cancel_remain_on_channel: Requests that an ongoing off-channel period is
- * aborted before it expires. This callback may sleep.
- *
- * @set_ringparam: Set tx and rx ring sizes.
- *
- * @get_ringparam: Get tx and rx ring current and maximum sizes.
- *
- * @tx_frames_pending: Check if there is any pending frame in the hardware
- * queues before entering power save.
- *
- * @set_bitrate_mask: Set a mask of rates to be used for rate control selection
- * when transmitting a frame. Currently only legacy rates are handled.
- * The callback can sleep.
- * @rssi_callback: Notify driver when the average RSSI goes above/below
- * thresholds that were registered previously. The callback can sleep.
- *
- * @release_buffered_frames: Release buffered frames according to the given
- * parameters. In the case where the driver buffers some frames for
- * sleeping stations mac80211 will use this callback to tell the driver
- * to release some frames, either for PS-poll or uAPSD.
- * Note that if the @more_data paramter is %false the driver must check
- * if there are more frames on the given TIDs, and if there are more than
- * the frames being released then it must still set the more-data bit in
- * the frame. If the @more_data parameter is %true, then of course the
- * more-data bit must always be set.
- * The @tids parameter tells the driver which TIDs to release frames
- * from, for PS-poll it will always have only a single bit set.
- * In the case this is used for a PS-poll initiated release, the
- * @num_frames parameter will always be 1 so code can be shared. In
- * this case the driver must also set %IEEE80211_TX_STATUS_EOSP flag
- * on the TX status (and must report TX status) so that the PS-poll
- * period is properly ended. This is used to avoid sending multiple
- * responses for a retried PS-poll frame.
- * In the case this is used for uAPSD, the @num_frames parameter may be
- * bigger than one, but the driver may send fewer frames (it must send
- * at least one, however). In this case it is also responsible for
- * setting the EOSP flag in the QoS header of the frames. Also, when the
- * service period ends, the driver must set %IEEE80211_TX_STATUS_EOSP
- * on the last frame in the SP. Alternatively, it may call the function
- * ieee80211_sta_eosp_irqsafe() to inform mac80211 of the end of the SP.
- * This callback must be atomic.
- * @allow_buffered_frames: Prepare device to allow the given number of frames
- * to go out to the given station. The frames will be sent by mac80211
- * via the usual TX path after this call. The TX information for frames
- * released will also have the %IEEE80211_TX_CTL_NO_PS_BUFFER flag set
- * and the last one will also have %IEEE80211_TX_STATUS_EOSP set. In case
- * frames from multiple TIDs are released and the driver might reorder
- * them between the TIDs, it must set the %IEEE80211_TX_STATUS_EOSP flag
- * on the last frame and clear it on all others and also handle the EOSP
- * bit in the QoS header correctly. Alternatively, it can also call the
- * ieee80211_sta_eosp_irqsafe() function.
- * The @tids parameter is a bitmap and tells the driver which TIDs the
- * frames will be on; it will at most have two bits set.
- * This callback must be atomic.
- */
-struct ieee80211_ops {
- void (*tx)(struct ieee80211_hw *hw, struct sk_buff *skb);
- void (*tx_frags)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
- struct ieee80211_sta *sta, struct sk_buff_head *skbs);
- int (*start)(struct ieee80211_hw *hw);
- void (*stop)(struct ieee80211_hw *hw);
-#ifdef CONFIG_PM
- int (*suspend)(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan);
- int (*resume)(struct ieee80211_hw *hw);
-#endif
- int (*add_interface)(struct ieee80211_hw *hw,
- struct ieee80211_vif *vif);
- int (*change_interface)(struct ieee80211_hw *hw,
- struct ieee80211_vif *vif,
- enum nl80211_iftype new_type, bool p2p);
- void (*remove_interface)(struct ieee80211_hw *hw,
- struct ieee80211_vif *vif);
- int (*config)(struct ieee80211_hw *hw, u32 changed);
- void (*bss_info_changed)(struct ieee80211_hw *hw,
- struct ieee80211_vif *vif,
- struct ieee80211_bss_conf *info,
- u32 changed);
-
- u64 (*prepare_multicast)(struct ieee80211_hw *hw,
- struct netdev_hw_addr_list *mc_list);
- void (*configure_filter)(struct ieee80211_hw *hw,
- unsigned int changed_flags,
- unsigned int *total_flags,
- u64 multicast);
- int (*set_tim)(struct ieee80211_hw *hw, struct ieee80211_sta *sta,
- bool set);
- int (*set_key)(struct ieee80211_hw *hw, enum set_key_cmd cmd,
- struct ieee80211_vif *vif, struct ieee80211_sta *sta,
- struct ieee80211_key_conf *key);
- void (*update_tkip_key)(struct ieee80211_hw *hw,
- struct ieee80211_vif *vif,
- struct ieee80211_key_conf *conf,
- struct ieee80211_sta *sta,
- u32 iv32, u16 *phase1key);
- void (*set_rekey_data)(struct ieee80211_hw *hw,
- struct ieee80211_vif *vif,
- struct cfg80211_gtk_rekey_data *data);
- int (*hw_scan)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
- struct cfg80211_scan_request *req);
- void (*cancel_hw_scan)(struct ieee80211_hw *hw,
- struct ieee80211_vif *vif);
- int (*sched_scan_start)(struct ieee80211_hw *hw,
- struct ieee80211_vif *vif,
- struct cfg80211_sched_scan_request *req,
- struct ieee80211_sched_scan_ies *ies);
- void (*sched_scan_stop)(struct ieee80211_hw *hw,
- struct ieee80211_vif *vif);
- void (*sw_scan_start)(struct ieee80211_hw *hw);
- void (*sw_scan_complete)(struct ieee80211_hw *hw);
- int (*get_stats)(struct ieee80211_hw *hw,
- struct ieee80211_low_level_stats *stats);
- void (*get_tkip_seq)(struct ieee80211_hw *hw, u8 hw_key_idx,
- u32 *iv32, u16 *iv16);
- int (*set_frag_threshold)(struct ieee80211_hw *hw, u32 value);
- int (*set_rts_threshold)(struct ieee80211_hw *hw, u32 value);
- int (*sta_add)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
- struct ieee80211_sta *sta);
- int (*sta_remove)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
- struct ieee80211_sta *sta);
- void (*sta_notify)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
- enum sta_notify_cmd, struct ieee80211_sta *sta);
- int (*sta_state)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
- struct ieee80211_sta *sta,
- enum ieee80211_sta_state old_state,
- enum ieee80211_sta_state new_state);
- int (*conf_tx)(struct ieee80211_hw *hw,
- struct ieee80211_vif *vif, u16 queue,
- const struct ieee80211_tx_queue_params *params);
- u64 (*get_tsf)(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
- void (*set_tsf)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
- u64 tsf);
- void (*reset_tsf)(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
- int (*tx_last_beacon)(struct ieee80211_hw *hw);
- int (*ampdu_action)(struct ieee80211_hw *hw,
- struct ieee80211_vif *vif,
- enum ieee80211_ampdu_mlme_action action,
- struct ieee80211_sta *sta, u16 tid, u16 *ssn,
- u8 buf_size);
- int (*get_survey)(struct ieee80211_hw *hw, int idx,
- struct survey_info *survey);
- void (*rfkill_poll)(struct ieee80211_hw *hw);
- void (*set_coverage_class)(struct ieee80211_hw *hw, u8 coverage_class);
-#ifdef CONFIG_NL80211_TESTMODE
- int (*testmode_cmd)(struct ieee80211_hw *hw, void *data, int len);
- int (*testmode_dump)(struct ieee80211_hw *hw, struct sk_buff *skb,
- struct netlink_callback *cb,
- void *data, int len);
-#endif
- void (*flush)(struct ieee80211_hw *hw, bool drop);
- void (*channel_switch)(struct ieee80211_hw *hw,
- struct ieee80211_channel_switch *ch_switch);
- int (*napi_poll)(struct ieee80211_hw *hw, int budget);
- int (*set_antenna)(struct ieee80211_hw *hw, u32 tx_ant, u32 rx_ant);
- int (*get_antenna)(struct ieee80211_hw *hw, u32 *tx_ant, u32 *rx_ant);
-
- int (*remain_on_channel)(struct ieee80211_hw *hw,
- struct ieee80211_channel *chan,
- enum nl80211_channel_type channel_type,
- int duration);
- int (*cancel_remain_on_channel)(struct ieee80211_hw *hw);
- int (*set_ringparam)(struct ieee80211_hw *hw, u32 tx, u32 rx);
- void (*get_ringparam)(struct ieee80211_hw *hw,
- u32 *tx, u32 *tx_max, u32 *rx, u32 *rx_max);
- bool (*tx_frames_pending)(struct ieee80211_hw *hw);
- int (*set_bitrate_mask)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
- const struct cfg80211_bitrate_mask *mask);
- void (*rssi_callback)(struct ieee80211_hw *hw,
- enum ieee80211_rssi_event rssi_event);
-
- void (*allow_buffered_frames)(struct ieee80211_hw *hw,
- struct ieee80211_sta *sta,
- u16 tids, int num_frames,
- enum ieee80211_frame_release_type reason,
- bool more_data);
- void (*release_buffered_frames)(struct ieee80211_hw *hw,
- struct ieee80211_sta *sta,
- u16 tids, int num_frames,
- enum ieee80211_frame_release_type reason,
- bool more_data);
-};
-
-/**
- * ieee80211_alloc_hw - Allocate a new hardware device
- *
- * This must be called once for each hardware device. The returned pointer
- * must be used to refer to this device when calling other functions.
- * mac80211 allocates a private data area for the driver pointed to by
- * @priv in &struct ieee80211_hw, the size of this area is given as
- * @priv_data_len.
- *
- * @priv_data_len: length of private data
- * @ops: callbacks for this device
- */
-struct ieee80211_hw *ieee80211_alloc_hw(size_t priv_data_len,
- const struct ieee80211_ops *ops);
-
-/**
- * ieee80211_register_hw - Register hardware device
- *
- * You must call this function before any other functions in
- * mac80211. Note that before a hardware can be registered, you
- * need to fill the contained wiphy's information.
- *
- * @hw: the device to register as returned by ieee80211_alloc_hw()
- */
-int ieee80211_register_hw(struct ieee80211_hw *hw);
-
-/**
- * struct ieee80211_tpt_blink - throughput blink description
- * @throughput: throughput in Kbit/sec
- * @blink_time: blink time in milliseconds
- * (full cycle, ie. one off + one on period)
- */
-struct ieee80211_tpt_blink {
- int throughput;
- int blink_time;
-};
-
-/**
- * enum ieee80211_tpt_led_trigger_flags - throughput trigger flags
- * @IEEE80211_TPT_LEDTRIG_FL_RADIO: enable blinking with radio
- * @IEEE80211_TPT_LEDTRIG_FL_WORK: enable blinking when working
- * @IEEE80211_TPT_LEDTRIG_FL_CONNECTED: enable blinking when at least one
- * interface is connected in some way, including being an AP
- */
-enum ieee80211_tpt_led_trigger_flags {
- IEEE80211_TPT_LEDTRIG_FL_RADIO = BIT(0),
- IEEE80211_TPT_LEDTRIG_FL_WORK = BIT(1),
- IEEE80211_TPT_LEDTRIG_FL_CONNECTED = BIT(2),
-};
-
-#ifdef CONFIG_MAC80211_LEDS
-extern char *__ieee80211_get_tx_led_name(struct ieee80211_hw *hw);
-extern char *__ieee80211_get_rx_led_name(struct ieee80211_hw *hw);
-extern char *__ieee80211_get_assoc_led_name(struct ieee80211_hw *hw);
-extern char *__ieee80211_get_radio_led_name(struct ieee80211_hw *hw);
-extern char *__ieee80211_create_tpt_led_trigger(
- struct ieee80211_hw *hw, unsigned int flags,
- const struct ieee80211_tpt_blink *blink_table,
- unsigned int blink_table_len);
-#endif
-/**
- * ieee80211_get_tx_led_name - get name of TX LED
- *
- * mac80211 creates a transmit LED trigger for each wireless hardware
- * that can be used to drive LEDs if your driver registers a LED device.
- * This function returns the name (or %NULL if not configured for LEDs)
- * of the trigger so you can automatically link the LED device.
- *
- * @hw: the hardware to get the LED trigger name for
- */
-static inline char *ieee80211_get_tx_led_name(struct ieee80211_hw *hw)
-{
-#ifdef CONFIG_MAC80211_LEDS
- return __ieee80211_get_tx_led_name(hw);
-#else
- return NULL;
-#endif
-}
-
-/**
- * ieee80211_get_rx_led_name - get name of RX LED
- *
- * mac80211 creates a receive LED trigger for each wireless hardware
- * that can be used to drive LEDs if your driver registers a LED device.
- * This function returns the name (or %NULL if not configured for LEDs)
- * of the trigger so you can automatically link the LED device.
- *
- * @hw: the hardware to get the LED trigger name for
- */
-static inline char *ieee80211_get_rx_led_name(struct ieee80211_hw *hw)
-{
-#ifdef CONFIG_MAC80211_LEDS
- return __ieee80211_get_rx_led_name(hw);
-#else
- return NULL;
-#endif
-}
-
-/**
- * ieee80211_get_assoc_led_name - get name of association LED
- *
- * mac80211 creates a association LED trigger for each wireless hardware
- * that can be used to drive LEDs if your driver registers a LED device.
- * This function returns the name (or %NULL if not configured for LEDs)
- * of the trigger so you can automatically link the LED device.
- *
- * @hw: the hardware to get the LED trigger name for
- */
-static inline char *ieee80211_get_assoc_led_name(struct ieee80211_hw *hw)
-{
-#ifdef CONFIG_MAC80211_LEDS
- return __ieee80211_get_assoc_led_name(hw);
-#else
- return NULL;
-#endif
-}
-
-/**
- * ieee80211_get_radio_led_name - get name of radio LED
- *
- * mac80211 creates a radio change LED trigger for each wireless hardware
- * that can be used to drive LEDs if your driver registers a LED device.
- * This function returns the name (or %NULL if not configured for LEDs)
- * of the trigger so you can automatically link the LED device.
- *
- * @hw: the hardware to get the LED trigger name for
- */
-static inline char *ieee80211_get_radio_led_name(struct ieee80211_hw *hw)
-{
-#ifdef CONFIG_MAC80211_LEDS
- return __ieee80211_get_radio_led_name(hw);
-#else
- return NULL;
-#endif
-}
-
-/**
- * ieee80211_create_tpt_led_trigger - create throughput LED trigger
- * @hw: the hardware to create the trigger for
- * @flags: trigger flags, see &enum ieee80211_tpt_led_trigger_flags
- * @blink_table: the blink table -- needs to be ordered by throughput
- * @blink_table_len: size of the blink table
- *
- * This function returns %NULL (in case of error, or if no LED
- * triggers are configured) or the name of the new trigger.
- * This function must be called before ieee80211_register_hw().
- */
-static inline char *
-ieee80211_create_tpt_led_trigger(struct ieee80211_hw *hw, unsigned int flags,
- const struct ieee80211_tpt_blink *blink_table,
- unsigned int blink_table_len)
-{
-#ifdef CONFIG_MAC80211_LEDS
- return __ieee80211_create_tpt_led_trigger(hw, flags, blink_table,
- blink_table_len);
-#else
- return NULL;
-#endif
-}
-
-/**
- * ieee80211_unregister_hw - Unregister a hardware device
- *
- * This function instructs mac80211 to free allocated resources
- * and unregister netdevices from the networking subsystem.
- *
- * @hw: the hardware to unregister
- */
-void ieee80211_unregister_hw(struct ieee80211_hw *hw);
-
-/**
- * ieee80211_free_hw - free hardware descriptor
- *
- * This function frees everything that was allocated, including the
- * private data for the driver. You must call ieee80211_unregister_hw()
- * before calling this function.
- *
- * @hw: the hardware to free
- */
-void ieee80211_free_hw(struct ieee80211_hw *hw);
-
-/**
- * ieee80211_restart_hw - restart hardware completely
- *
- * Call this function when the hardware was restarted for some reason
- * (hardware error, ...) and the driver is unable to restore its state
- * by itself. mac80211 assumes that at this point the driver/hardware
- * is completely uninitialised and stopped, it starts the process by
- * calling the ->start() operation. The driver will need to reset all
- * internal state that it has prior to calling this function.
- *
- * @hw: the hardware to restart
- */
-void ieee80211_restart_hw(struct ieee80211_hw *hw);
-
-/** ieee80211_napi_schedule - schedule NAPI poll
- *
- * Use this function to schedule NAPI polling on a device.
- *
- * @hw: the hardware to start polling
- */
-void ieee80211_napi_schedule(struct ieee80211_hw *hw);
-
-/** ieee80211_napi_complete - complete NAPI polling
- *
- * Use this function to finish NAPI polling on a device.
- *
- * @hw: the hardware to stop polling
- */
-void ieee80211_napi_complete(struct ieee80211_hw *hw);
-
-/**
- * ieee80211_rx - receive frame
- *
- * Use this function to hand received frames to mac80211. The receive
- * buffer in @skb must start with an IEEE 802.11 header. In case of a
- * paged @skb is used, the driver is recommended to put the ieee80211
- * header of the frame on the linear part of the @skb to avoid memory
- * allocation and/or memcpy by the stack.
- *
- * This function may not be called in IRQ context. Calls to this function
- * for a single hardware must be synchronized against each other. Calls to
- * this function, ieee80211_rx_ni() and ieee80211_rx_irqsafe() may not be
- * mixed for a single hardware.
- *
- * In process context use instead ieee80211_rx_ni().
- *
- * @hw: the hardware this frame came in on
- * @skb: the buffer to receive, owned by mac80211 after this call
- */
-void ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb);
-
-/**
- * ieee80211_rx_irqsafe - receive frame
- *
- * Like ieee80211_rx() but can be called in IRQ context
- * (internally defers to a tasklet.)
- *
- * Calls to this function, ieee80211_rx() or ieee80211_rx_ni() may not
- * be mixed for a single hardware.
- *
- * @hw: the hardware this frame came in on
- * @skb: the buffer to receive, owned by mac80211 after this call
- */
-void ieee80211_rx_irqsafe(struct ieee80211_hw *hw, struct sk_buff *skb);
-
-/**
- * ieee80211_rx_ni - receive frame (in process context)
- *
- * Like ieee80211_rx() but can be called in process context
- * (internally disables bottom halves).
- *
- * Calls to this function, ieee80211_rx() and ieee80211_rx_irqsafe() may
- * not be mixed for a single hardware.
- *
- * @hw: the hardware this frame came in on
- * @skb: the buffer to receive, owned by mac80211 after this call
- */
-static inline void ieee80211_rx_ni(struct ieee80211_hw *hw,
- struct sk_buff *skb)
-{
- local_bh_disable();
- ieee80211_rx(hw, skb);
- local_bh_enable();
-}
-
-/**
- * ieee80211_sta_ps_transition - PS transition for connected sta
- *
- * When operating in AP mode with the %IEEE80211_HW_AP_LINK_PS
- * flag set, use this function to inform mac80211 about a connected station
- * entering/leaving PS mode.
- *
- * This function may not be called in IRQ context or with softirqs enabled.
- *
- * Calls to this function for a single hardware must be synchronized against
- * each other.
- *
- * The function returns -EINVAL when the requested PS mode is already set.
- *
- * @sta: currently connected sta
- * @start: start or stop PS
- */
-int ieee80211_sta_ps_transition(struct ieee80211_sta *sta, bool start);
-
-/**
- * ieee80211_sta_ps_transition_ni - PS transition for connected sta
- * (in process context)
- *
- * Like ieee80211_sta_ps_transition() but can be called in process context
- * (internally disables bottom halves). Concurrent call restriction still
- * applies.
- *
- * @sta: currently connected sta
- * @start: start or stop PS
- */
-static inline int ieee80211_sta_ps_transition_ni(struct ieee80211_sta *sta,
- bool start)
-{
- int ret;
-
- local_bh_disable();
- ret = ieee80211_sta_ps_transition(sta, start);
- local_bh_enable();
-
- return ret;
-}
-
-/*
- * The TX headroom reserved by mac80211 for its own tx_status functions.
- * This is enough for the radiotap header.
- */
-#define IEEE80211_TX_STATUS_HEADROOM 14
-
-/**
- * ieee80211_sta_set_buffered - inform mac80211 about driver-buffered frames
- * @sta: &struct ieee80211_sta pointer for the sleeping station
- * @tid: the TID that has buffered frames
- * @buffered: indicates whether or not frames are buffered for this TID
- *
- * If a driver buffers frames for a powersave station instead of passing
- * them back to mac80211 for retransmission, the station may still need
- * to be told that there are buffered frames via the TIM bit.
- *
- * This function informs mac80211 whether or not there are frames that are
- * buffered in the driver for a given TID; mac80211 can then use this data
- * to set the TIM bit (NOTE: This may call back into the driver's set_tim
- * call! Beware of the locking!)
- *
- * If all frames are released to the station (due to PS-poll or uAPSD)
- * then the driver needs to inform mac80211 that there no longer are
- * frames buffered. However, when the station wakes up mac80211 assumes
- * that all buffered frames will be transmitted and clears this data,
- * drivers need to make sure they inform mac80211 about all buffered
- * frames on the sleep transition (sta_notify() with %STA_NOTIFY_SLEEP).
- *
- * Note that technically mac80211 only needs to know this per AC, not per
- * TID, but since driver buffering will inevitably happen per TID (since
- * it is related to aggregation) it is easier to make mac80211 map the
- * TID to the AC as required instead of keeping track in all drivers that
- * use this API.
- */
-void ieee80211_sta_set_buffered(struct ieee80211_sta *sta,
- u8 tid, bool buffered);
-
-/**
- * ieee80211_tx_status - transmit status callback
- *
- * Call this function for all transmitted frames after they have been
- * transmitted. It is permissible to not call this function for
- * multicast frames but this can affect statistics.
- *
- * This function may not be called in IRQ context. Calls to this function
- * for a single hardware must be synchronized against each other. Calls
- * to this function, ieee80211_tx_status_ni() and ieee80211_tx_status_irqsafe()
- * may not be mixed for a single hardware.
- *
- * @hw: the hardware the frame was transmitted by
- * @skb: the frame that was transmitted, owned by mac80211 after this call
- */
-void ieee80211_tx_status(struct ieee80211_hw *hw,
- struct sk_buff *skb);
-
-/**
- * ieee80211_tx_status_ni - transmit status callback (in process context)
- *
- * Like ieee80211_tx_status() but can be called in process context.
- *
- * Calls to this function, ieee80211_tx_status() and
- * ieee80211_tx_status_irqsafe() may not be mixed
- * for a single hardware.
- *
- * @hw: the hardware the frame was transmitted by
- * @skb: the frame that was transmitted, owned by mac80211 after this call
- */
-static inline void ieee80211_tx_status_ni(struct ieee80211_hw *hw,
- struct sk_buff *skb)
-{
- local_bh_disable();
- ieee80211_tx_status(hw, skb);
- local_bh_enable();
-}
-
-/**
- * ieee80211_tx_status_irqsafe - IRQ-safe transmit status callback
- *
- * Like ieee80211_tx_status() but can be called in IRQ context
- * (internally defers to a tasklet.)
- *
- * Calls to this function, ieee80211_tx_status() and
- * ieee80211_tx_status_ni() may not be mixed for a single hardware.
- *
- * @hw: the hardware the frame was transmitted by
- * @skb: the frame that was transmitted, owned by mac80211 after this call
- */
-void ieee80211_tx_status_irqsafe(struct ieee80211_hw *hw,
- struct sk_buff *skb);
-
-/**
- * ieee80211_report_low_ack - report non-responding station
- *
- * When operating in AP-mode, call this function to report a non-responding
- * connected STA.
- *
- * @sta: the non-responding connected sta
- * @num_packets: number of packets sent to @sta without a response
- */
-void ieee80211_report_low_ack(struct ieee80211_sta *sta, u32 num_packets);
-
-/**
- * ieee80211_beacon_get_tim - beacon generation function
- * @hw: pointer obtained from ieee80211_alloc_hw().
- * @vif: &struct ieee80211_vif pointer from the add_interface callback.
- * @tim_offset: pointer to variable that will receive the TIM IE offset.
- * Set to 0 if invalid (in non-AP modes).
- * @tim_length: pointer to variable that will receive the TIM IE length,
- * (including the ID and length bytes!).
- * Set to 0 if invalid (in non-AP modes).
- *
- * If the driver implements beaconing modes, it must use this function to
- * obtain the beacon frame/template.
- *
- * If the beacon frames are generated by the host system (i.e., not in
- * hardware/firmware), the driver uses this function to get each beacon
- * frame from mac80211 -- it is responsible for calling this function
- * before the beacon is needed (e.g. based on hardware interrupt).
- *
- * If the beacon frames are generated by the device, then the driver
- * must use the returned beacon as the template and change the TIM IE
- * according to the current DTIM parameters/TIM bitmap.
- *
- * The driver is responsible for freeing the returned skb.
- */
-struct sk_buff *ieee80211_beacon_get_tim(struct ieee80211_hw *hw,
- struct ieee80211_vif *vif,
- u16 *tim_offset, u16 *tim_length);
-
-/**
- * ieee80211_beacon_get - beacon generation function
- * @hw: pointer obtained from ieee80211_alloc_hw().
- * @vif: &struct ieee80211_vif pointer from the add_interface callback.
- *
- * See ieee80211_beacon_get_tim().
- */
-static inline struct sk_buff *ieee80211_beacon_get(struct ieee80211_hw *hw,
- struct ieee80211_vif *vif)
-{
- return ieee80211_beacon_get_tim(hw, vif, NULL, NULL);
-}
-
-/**
- * ieee80211_proberesp_get - retrieve a Probe Response template
- * @hw: pointer obtained from ieee80211_alloc_hw().
- * @vif: &struct ieee80211_vif pointer from the add_interface callback.
- *
- * Creates a Probe Response template which can, for example, be uploaded to
- * hardware. The destination address should be set by the caller.
- *
- * Can only be called in AP mode.
- */
-struct sk_buff *ieee80211_proberesp_get(struct ieee80211_hw *hw,
- struct ieee80211_vif *vif);
-
-/**
- * ieee80211_pspoll_get - retrieve a PS Poll template
- * @hw: pointer obtained from ieee80211_alloc_hw().
- * @vif: &struct ieee80211_vif pointer from the add_interface callback.
- *
- * Creates a PS Poll a template which can, for example, uploaded to
- * hardware. The template must be updated after association so that correct
- * AID, BSSID and MAC address is used.
- *
- * Note: Caller (or hardware) is responsible for setting the
- * &IEEE80211_FCTL_PM bit.
- */
-struct sk_buff *ieee80211_pspoll_get(struct ieee80211_hw *hw,
- struct ieee80211_vif *vif);
-
-/**
- * ieee80211_nullfunc_get - retrieve a nullfunc template
- * @hw: pointer obtained from ieee80211_alloc_hw().
- * @vif: &struct ieee80211_vif pointer from the add_interface callback.
- *
- * Creates a Nullfunc template which can, for example, uploaded to
- * hardware. The template must be updated after association so that correct
- * BSSID and address is used.
- *
- * Note: Caller (or hardware) is responsible for setting the
- * &IEEE80211_FCTL_PM bit as well as Duration and Sequence Control fields.
- */
-struct sk_buff *ieee80211_nullfunc_get(struct ieee80211_hw *hw,
- struct ieee80211_vif *vif);
-
-/**
- * ieee80211_probereq_get - retrieve a Probe Request template
- * @hw: pointer obtained from ieee80211_alloc_hw().
- * @vif: &struct ieee80211_vif pointer from the add_interface callback.
- * @ssid: SSID buffer
- * @ssid_len: length of SSID
- * @ie: buffer containing all IEs except SSID for the template
- * @ie_len: length of the IE buffer
- *
- * Creates a Probe Request template which can, for example, be uploaded to
- * hardware.
- */
-struct sk_buff *ieee80211_probereq_get(struct ieee80211_hw *hw,
- struct ieee80211_vif *vif,
- const u8 *ssid, size_t ssid_len,
- const u8 *ie, size_t ie_len);
-
-/**
- * ieee80211_rts_get - RTS frame generation function
- * @hw: pointer obtained from ieee80211_alloc_hw().
- * @vif: &struct ieee80211_vif pointer from the add_interface callback.
- * @frame: pointer to the frame that is going to be protected by the RTS.
- * @frame_len: the frame length (in octets).
- * @frame_txctl: &struct ieee80211_tx_info of the frame.
- * @rts: The buffer where to store the RTS frame.
- *
- * If the RTS frames are generated by the host system (i.e., not in
- * hardware/firmware), the low-level driver uses this function to receive
- * the next RTS frame from the 802.11 code. The low-level is responsible
- * for calling this function before and RTS frame is needed.
- */
-void ieee80211_rts_get(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
- const void *frame, size_t frame_len,
- const struct ieee80211_tx_info *frame_txctl,
- struct ieee80211_rts *rts);
-
-/**
- * ieee80211_rts_duration - Get the duration field for an RTS frame
- * @hw: pointer obtained from ieee80211_alloc_hw().
- * @vif: &struct ieee80211_vif pointer from the add_interface callback.
- * @frame_len: the length of the frame that is going to be protected by the RTS.
- * @frame_txctl: &struct ieee80211_tx_info of the frame.
- *
- * If the RTS is generated in firmware, but the host system must provide
- * the duration field, the low-level driver uses this function to receive
- * the duration field value in little-endian byteorder.
- */
-__le16 ieee80211_rts_duration(struct ieee80211_hw *hw,
- struct ieee80211_vif *vif, size_t frame_len,
- const struct ieee80211_tx_info *frame_txctl);
-
-/**
- * ieee80211_ctstoself_get - CTS-to-self frame generation function
- * @hw: pointer obtained from ieee80211_alloc_hw().
- * @vif: &struct ieee80211_vif pointer from the add_interface callback.
- * @frame: pointer to the frame that is going to be protected by the CTS-to-self.
- * @frame_len: the frame length (in octets).
- * @frame_txctl: &struct ieee80211_tx_info of the frame.
- * @cts: The buffer where to store the CTS-to-self frame.
- *
- * If the CTS-to-self frames are generated by the host system (i.e., not in
- * hardware/firmware), the low-level driver uses this function to receive
- * the next CTS-to-self frame from the 802.11 code. The low-level is responsible
- * for calling this function before and CTS-to-self frame is needed.
- */
-void ieee80211_ctstoself_get(struct ieee80211_hw *hw,
- struct ieee80211_vif *vif,
- const void *frame, size_t frame_len,
- const struct ieee80211_tx_info *frame_txctl,
- struct ieee80211_cts *cts);
-
-/**
- * ieee80211_ctstoself_duration - Get the duration field for a CTS-to-self frame
- * @hw: pointer obtained from ieee80211_alloc_hw().
- * @vif: &struct ieee80211_vif pointer from the add_interface callback.
- * @frame_len: the length of the frame that is going to be protected by the CTS-to-self.
- * @frame_txctl: &struct ieee80211_tx_info of the frame.
- *
- * If the CTS-to-self is generated in firmware, but the host system must provide
- * the duration field, the low-level driver uses this function to receive
- * the duration field value in little-endian byteorder.
- */
-__le16 ieee80211_ctstoself_duration(struct ieee80211_hw *hw,
- struct ieee80211_vif *vif,
- size_t frame_len,
- const struct ieee80211_tx_info *frame_txctl);
-
-/**
- * ieee80211_generic_frame_duration - Calculate the duration field for a frame
- * @hw: pointer obtained from ieee80211_alloc_hw().
- * @vif: &struct ieee80211_vif pointer from the add_interface callback.
- * @frame_len: the length of the frame.
- * @rate: the rate at which the frame is going to be transmitted.
- *
- * Calculate the duration field of some generic frame, given its
- * length and transmission rate (in 100kbps).
- */
-__le16 ieee80211_generic_frame_duration(struct ieee80211_hw *hw,
- struct ieee80211_vif *vif,
- size_t frame_len,
- struct ieee80211_rate *rate);
-
-/**
- * ieee80211_get_buffered_bc - accessing buffered broadcast and multicast frames
- * @hw: pointer as obtained from ieee80211_alloc_hw().
- * @vif: &struct ieee80211_vif pointer from the add_interface callback.
- *
- * Function for accessing buffered broadcast and multicast frames. If
- * hardware/firmware does not implement buffering of broadcast/multicast
- * frames when power saving is used, 802.11 code buffers them in the host
- * memory. The low-level driver uses this function to fetch next buffered
- * frame. In most cases, this is used when generating beacon frame. This
- * function returns a pointer to the next buffered skb or NULL if no more
- * buffered frames are available.
- *
- * Note: buffered frames are returned only after DTIM beacon frame was
- * generated with ieee80211_beacon_get() and the low-level driver must thus
- * call ieee80211_beacon_get() first. ieee80211_get_buffered_bc() returns
- * NULL if the previous generated beacon was not DTIM, so the low-level driver
- * does not need to check for DTIM beacons separately and should be able to
- * use common code for all beacons.
- */
-struct sk_buff *
-ieee80211_get_buffered_bc(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
-
-/**
- * ieee80211_get_tkip_p1k_iv - get a TKIP phase 1 key for IV32
- *
- * This function returns the TKIP phase 1 key for the given IV32.
- *
- * @keyconf: the parameter passed with the set key
- * @iv32: IV32 to get the P1K for
- * @p1k: a buffer to which the key will be written, as 5 u16 values
- */
-void ieee80211_get_tkip_p1k_iv(struct ieee80211_key_conf *keyconf,
- u32 iv32, u16 *p1k);
-
-/**
- * ieee80211_get_tkip_p1k - get a TKIP phase 1 key
- *
- * This function returns the TKIP phase 1 key for the IV32 taken
- * from the given packet.
- *
- * @keyconf: the parameter passed with the set key
- * @skb: the packet to take the IV32 value from that will be encrypted
- * with this P1K
- * @p1k: a buffer to which the key will be written, as 5 u16 values
- */
-static inline void ieee80211_get_tkip_p1k(struct ieee80211_key_conf *keyconf,
- struct sk_buff *skb, u16 *p1k)
-{
- struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
- const u8 *data = (u8 *)hdr + ieee80211_hdrlen(hdr->frame_control);
- u32 iv32 = get_unaligned_le32(&data[4]);
-
- ieee80211_get_tkip_p1k_iv(keyconf, iv32, p1k);
-}
-
-/**
- * ieee80211_get_tkip_rx_p1k - get a TKIP phase 1 key for RX
- *
- * This function returns the TKIP phase 1 key for the given IV32
- * and transmitter address.
- *
- * @keyconf: the parameter passed with the set key
- * @ta: TA that will be used with the key
- * @iv32: IV32 to get the P1K for
- * @p1k: a buffer to which the key will be written, as 5 u16 values
- */
-void ieee80211_get_tkip_rx_p1k(struct ieee80211_key_conf *keyconf,
- const u8 *ta, u32 iv32, u16 *p1k);
-
-/**
- * ieee80211_get_tkip_p2k - get a TKIP phase 2 key
- *
- * This function computes the TKIP RC4 key for the IV values
- * in the packet.
- *
- * @keyconf: the parameter passed with the set key
- * @skb: the packet to take the IV32/IV16 values from that will be
- * encrypted with this key
- * @p2k: a buffer to which the key will be written, 16 bytes
- */
-void ieee80211_get_tkip_p2k(struct ieee80211_key_conf *keyconf,
- struct sk_buff *skb, u8 *p2k);
-
-/**
- * struct ieee80211_key_seq - key sequence counter
- *
- * @tkip: TKIP data, containing IV32 and IV16 in host byte order
- * @ccmp: PN data, most significant byte first (big endian,
- * reverse order than in packet)
- * @aes_cmac: PN data, most significant byte first (big endian,
- * reverse order than in packet)
- */
-struct ieee80211_key_seq {
- union {
- struct {
- u32 iv32;
- u16 iv16;
- } tkip;
- struct {
- u8 pn[6];
- } ccmp;
- struct {
- u8 pn[6];
- } aes_cmac;
- };
-};
-
-/**
- * ieee80211_get_key_tx_seq - get key TX sequence counter
- *
- * @keyconf: the parameter passed with the set key
- * @seq: buffer to receive the sequence data
- *
- * This function allows a driver to retrieve the current TX IV/PN
- * for the given key. It must not be called if IV generation is
- * offloaded to the device.
- *
- * Note that this function may only be called when no TX processing
- * can be done concurrently, for example when queues are stopped
- * and the stop has been synchronized.
- */
-void ieee80211_get_key_tx_seq(struct ieee80211_key_conf *keyconf,
- struct ieee80211_key_seq *seq);
-
-/**
- * ieee80211_get_key_rx_seq - get key RX sequence counter
- *
- * @keyconf: the parameter passed with the set key
- * @tid: The TID, or -1 for the management frame value (CCMP only);
- * the value on TID 0 is also used for non-QoS frames. For
- * CMAC, only TID 0 is valid.
- * @seq: buffer to receive the sequence data
- *
- * This function allows a driver to retrieve the current RX IV/PNs
- * for the given key. It must not be called if IV checking is done
- * by the device and not by mac80211.
- *
- * Note that this function may only be called when no RX processing
- * can be done concurrently.
- */
-void ieee80211_get_key_rx_seq(struct ieee80211_key_conf *keyconf,
- int tid, struct ieee80211_key_seq *seq);
-
-/**
- * ieee80211_gtk_rekey_notify - notify userspace supplicant of rekeying
- * @vif: virtual interface the rekeying was done on
- * @bssid: The BSSID of the AP, for checking association
- * @replay_ctr: the new replay counter after GTK rekeying
- * @gfp: allocation flags
- */
-void ieee80211_gtk_rekey_notify(struct ieee80211_vif *vif, const u8 *bssid,
- const u8 *replay_ctr, gfp_t gfp);
-
-/**
- * ieee80211_wake_queue - wake specific queue
- * @hw: pointer as obtained from ieee80211_alloc_hw().
- * @queue: queue number (counted from zero).
- *
- * Drivers should use this function instead of netif_wake_queue.
- */
-void ieee80211_wake_queue(struct ieee80211_hw *hw, int queue);
-
-/**
- * ieee80211_stop_queue - stop specific queue
- * @hw: pointer as obtained from ieee80211_alloc_hw().
- * @queue: queue number (counted from zero).
- *
- * Drivers should use this function instead of netif_stop_queue.
- */
-void ieee80211_stop_queue(struct ieee80211_hw *hw, int queue);
-
-/**
- * ieee80211_queue_stopped - test status of the queue
- * @hw: pointer as obtained from ieee80211_alloc_hw().
- * @queue: queue number (counted from zero).
- *
- * Drivers should use this function instead of netif_stop_queue.
- */
-
-int ieee80211_queue_stopped(struct ieee80211_hw *hw, int queue);
-
-/**
- * ieee80211_stop_queues - stop all queues
- * @hw: pointer as obtained from ieee80211_alloc_hw().
- *
- * Drivers should use this function instead of netif_stop_queue.
- */
-void ieee80211_stop_queues(struct ieee80211_hw *hw);
-
-/**
- * ieee80211_wake_queues - wake all queues
- * @hw: pointer as obtained from ieee80211_alloc_hw().
- *
- * Drivers should use this function instead of netif_wake_queue.
- */
-void ieee80211_wake_queues(struct ieee80211_hw *hw);
-
-/**
- * ieee80211_scan_completed - completed hardware scan
- *
- * When hardware scan offload is used (i.e. the hw_scan() callback is
- * assigned) this function needs to be called by the driver to notify
- * mac80211 that the scan finished. This function can be called from
- * any context, including hardirq context.
- *
- * @hw: the hardware that finished the scan
- * @aborted: set to true if scan was aborted
- */
-void ieee80211_scan_completed(struct ieee80211_hw *hw, bool aborted);
-
-/**
- * ieee80211_sched_scan_results - got results from scheduled scan
- *
- * When a scheduled scan is running, this function needs to be called by the
- * driver whenever there are new scan results available.
- *
- * @hw: the hardware that is performing scheduled scans
- */
-void ieee80211_sched_scan_results(struct ieee80211_hw *hw);
-
-/**
- * ieee80211_sched_scan_stopped - inform that the scheduled scan has stopped
- *
- * When a scheduled scan is running, this function can be called by
- * the driver if it needs to stop the scan to perform another task.
- * Usual scenarios are drivers that cannot continue the scheduled scan
- * while associating, for instance.
- *
- * @hw: the hardware that is performing scheduled scans
- */
-void ieee80211_sched_scan_stopped(struct ieee80211_hw *hw);
-
-/**
- * ieee80211_iterate_active_interfaces - iterate active interfaces
- *
- * This function iterates over the interfaces associated with a given
- * hardware that are currently active and calls the callback for them.
- * This function allows the iterator function to sleep, when the iterator
- * function is atomic @ieee80211_iterate_active_interfaces_atomic can
- * be used.
- * Does not iterate over a new interface during add_interface()
- *
- * @hw: the hardware struct of which the interfaces should be iterated over
- * @iterator: the iterator function to call
- * @data: first argument of the iterator function
- */
-void ieee80211_iterate_active_interfaces(struct ieee80211_hw *hw,
- void (*iterator)(void *data, u8 *mac,
- struct ieee80211_vif *vif),
- void *data);
-
-/**
- * ieee80211_iterate_active_interfaces_atomic - iterate active interfaces
- *
- * This function iterates over the interfaces associated with a given
- * hardware that are currently active and calls the callback for them.
- * This function requires the iterator callback function to be atomic,
- * if that is not desired, use @ieee80211_iterate_active_interfaces instead.
- * Does not iterate over a new interface during add_interface()
- *
- * @hw: the hardware struct of which the interfaces should be iterated over
- * @iterator: the iterator function to call, cannot sleep
- * @data: first argument of the iterator function
- */
-void ieee80211_iterate_active_interfaces_atomic(struct ieee80211_hw *hw,
- void (*iterator)(void *data,
- u8 *mac,
- struct ieee80211_vif *vif),
- void *data);
-
-/**
- * ieee80211_queue_work - add work onto the mac80211 workqueue
- *
- * Drivers and mac80211 use this to add work onto the mac80211 workqueue.
- * This helper ensures drivers are not queueing work when they should not be.
- *
- * @hw: the hardware struct for the interface we are adding work for
- * @work: the work we want to add onto the mac80211 workqueue
- */
-void ieee80211_queue_work(struct ieee80211_hw *hw, struct work_struct *work);
-
-/**
- * ieee80211_queue_delayed_work - add work onto the mac80211 workqueue
- *
- * Drivers and mac80211 use this to queue delayed work onto the mac80211
- * workqueue.
- *
- * @hw: the hardware struct for the interface we are adding work for
- * @dwork: delayable work to queue onto the mac80211 workqueue
- * @delay: number of jiffies to wait before queueing
- */
-void ieee80211_queue_delayed_work(struct ieee80211_hw *hw,
- struct delayed_work *dwork,
- unsigned long delay);
-
-/**
- * ieee80211_start_tx_ba_session - Start a tx Block Ack session.
- * @sta: the station for which to start a BA session
- * @tid: the TID to BA on.
- * @timeout: session timeout value (in TUs)
- *
- * Return: success if addBA request was sent, failure otherwise
- *
- * Although mac80211/low level driver/user space application can estimate
- * the need to start aggregation on a certain RA/TID, the session level
- * will be managed by the mac80211.
- */
-int ieee80211_start_tx_ba_session(struct ieee80211_sta *sta, u16 tid,
- u16 timeout);
-
-/**
- * ieee80211_start_tx_ba_cb_irqsafe - low level driver ready to aggregate.
- * @vif: &struct ieee80211_vif pointer from the add_interface callback
- * @ra: receiver address of the BA session recipient.
- * @tid: the TID to BA on.
- *
- * This function must be called by low level driver once it has
- * finished with preparations for the BA session. It can be called
- * from any context.
- */
-void ieee80211_start_tx_ba_cb_irqsafe(struct ieee80211_vif *vif, const u8 *ra,
- u16 tid);
-
-/**
- * ieee80211_stop_tx_ba_session - Stop a Block Ack session.
- * @sta: the station whose BA session to stop
- * @tid: the TID to stop BA.
- *
- * Return: negative error if the TID is invalid, or no aggregation active
- *
- * Although mac80211/low level driver/user space application can estimate
- * the need to stop aggregation on a certain RA/TID, the session level
- * will be managed by the mac80211.
- */
-int ieee80211_stop_tx_ba_session(struct ieee80211_sta *sta, u16 tid);
-
-/**
- * ieee80211_stop_tx_ba_cb_irqsafe - low level driver ready to stop aggregate.
- * @vif: &struct ieee80211_vif pointer from the add_interface callback
- * @ra: receiver address of the BA session recipient.
- * @tid: the desired TID to BA on.
- *
- * This function must be called by low level driver once it has
- * finished with preparations for the BA session tear down. It
- * can be called from any context.
- */
-void ieee80211_stop_tx_ba_cb_irqsafe(struct ieee80211_vif *vif, const u8 *ra,
- u16 tid);
-
-/**
- * ieee80211_find_sta - find a station
- *
- * @vif: virtual interface to look for station on
- * @addr: station's address
- *
- * This function must be called under RCU lock and the
- * resulting pointer is only valid under RCU lock as well.
- */
-struct ieee80211_sta *ieee80211_find_sta(struct ieee80211_vif *vif,
- const u8 *addr);
-
-/**
- * ieee80211_find_sta_by_ifaddr - find a station on hardware
- *
- * @hw: pointer as obtained from ieee80211_alloc_hw()
- * @addr: remote station's address
- * @localaddr: local address (vif->sdata->vif.addr). Use NULL for 'any'.
- *
- * This function must be called under RCU lock and the
- * resulting pointer is only valid under RCU lock as well.
- *
- * NOTE: You may pass NULL for localaddr, but then you will just get
- * the first STA that matches the remote address 'addr'.
- * We can have multiple STA associated with multiple
- * logical stations (e.g. consider a station connecting to another
- * BSSID on the same AP hardware without disconnecting first).
- * In this case, the result of this method with localaddr NULL
- * is not reliable.
- *
- * DO NOT USE THIS FUNCTION with localaddr NULL if at all possible.
- */
-struct ieee80211_sta *ieee80211_find_sta_by_ifaddr(struct ieee80211_hw *hw,
- const u8 *addr,
- const u8 *localaddr);
-
-/**
- * ieee80211_sta_block_awake - block station from waking up
- * @hw: the hardware
- * @pubsta: the station
- * @block: whether to block or unblock
- *
- * Some devices require that all frames that are on the queues
- * for a specific station that went to sleep are flushed before
- * a poll response or frames after the station woke up can be
- * delivered to that it. Note that such frames must be rejected
- * by the driver as filtered, with the appropriate status flag.
- *
- * This function allows implementing this mode in a race-free
- * manner.
- *
- * To do this, a driver must keep track of the number of frames
- * still enqueued for a specific station. If this number is not
- * zero when the station goes to sleep, the driver must call
- * this function to force mac80211 to consider the station to
- * be asleep regardless of the station's actual state. Once the
- * number of outstanding frames reaches zero, the driver must
- * call this function again to unblock the station. That will
- * cause mac80211 to be able to send ps-poll responses, and if
- * the station queried in the meantime then frames will also
- * be sent out as a result of this. Additionally, the driver
- * will be notified that the station woke up some time after
- * it is unblocked, regardless of whether the station actually
- * woke up while blocked or not.
- */
-void ieee80211_sta_block_awake(struct ieee80211_hw *hw,
- struct ieee80211_sta *pubsta, bool block);
-
-/**
- * ieee80211_sta_eosp - notify mac80211 about end of SP
- * @pubsta: the station
- *
- * When a device transmits frames in a way that it can't tell
- * mac80211 in the TX status about the EOSP, it must clear the
- * %IEEE80211_TX_STATUS_EOSP bit and call this function instead.
- * This applies for PS-Poll as well as uAPSD.
- *
- * Note that there is no non-_irqsafe version right now as
- * it wasn't needed, but just like _tx_status() and _rx()
- * must not be mixed in irqsafe/non-irqsafe versions, this
- * function must not be mixed with those either. Use the
- * all irqsafe, or all non-irqsafe, don't mix! If you need
- * the non-irqsafe version of this, you need to add it.
- */
-void ieee80211_sta_eosp_irqsafe(struct ieee80211_sta *pubsta);
-
-/**
- * ieee80211_iter_keys - iterate keys programmed into the device
- * @hw: pointer obtained from ieee80211_alloc_hw()
- * @vif: virtual interface to iterate, may be %NULL for all
- * @iter: iterator function that will be called for each key
- * @iter_data: custom data to pass to the iterator function
- *
- * This function can be used to iterate all the keys known to
- * mac80211, even those that weren't previously programmed into
- * the device. This is intended for use in WoWLAN if the device
- * needs reprogramming of the keys during suspend. Note that due
- * to locking reasons, it is also only safe to call this at few
- * spots since it must hold the RTNL and be able to sleep.
- *
- * The order in which the keys are iterated matches the order
- * in which they were originally installed and handed to the
- * set_key callback.
- */
-void ieee80211_iter_keys(struct ieee80211_hw *hw,
- struct ieee80211_vif *vif,
- void (*iter)(struct ieee80211_hw *hw,
- struct ieee80211_vif *vif,
- struct ieee80211_sta *sta,
- struct ieee80211_key_conf *key,
- void *data),
- void *iter_data);
-
-/**
- * ieee80211_ap_probereq_get - retrieve a Probe Request template
- * @hw: pointer obtained from ieee80211_alloc_hw().
- * @vif: &struct ieee80211_vif pointer from the add_interface callback.
- *
- * Creates a Probe Request template which can, for example, be uploaded to
- * hardware. The template is filled with bssid, ssid and supported rate
- * information. This function must only be called from within the
- * .bss_info_changed callback function and only in managed mode. The function
- * is only useful when the interface is associated, otherwise it will return
- * NULL.
- */
-struct sk_buff *ieee80211_ap_probereq_get(struct ieee80211_hw *hw,
- struct ieee80211_vif *vif);
-
-/**
- * ieee80211_beacon_loss - inform hardware does not receive beacons
- *
- * @vif: &struct ieee80211_vif pointer from the add_interface callback.
- *
- * When beacon filtering is enabled with %IEEE80211_VIF_BEACON_FILTER and
- * %IEEE80211_CONF_PS is set, the driver needs to inform whenever the
- * hardware is not receiving beacons with this function.
- */
-void ieee80211_beacon_loss(struct ieee80211_vif *vif);
-
-/**
- * ieee80211_connection_loss - inform hardware has lost connection to the AP
- *
- * @vif: &struct ieee80211_vif pointer from the add_interface callback.
- *
- * When beacon filtering is enabled with %IEEE80211_VIF_BEACON_FILTER, and
- * %IEEE80211_CONF_PS and %IEEE80211_HW_CONNECTION_MONITOR are set, the driver
- * needs to inform if the connection to the AP has been lost.
- *
- * This function will cause immediate change to disassociated state,
- * without connection recovery attempts.
- */
-void ieee80211_connection_loss(struct ieee80211_vif *vif);
-
-/**
- * ieee80211_resume_disconnect - disconnect from AP after resume
- *
- * @vif: &struct ieee80211_vif pointer from the add_interface callback.
- *
- * Instructs mac80211 to disconnect from the AP after resume.
- * Drivers can use this after WoWLAN if they know that the
- * connection cannot be kept up, for example because keys were
- * used while the device was asleep but the replay counters or
- * similar cannot be retrieved from the device during resume.
- *
- * Note that due to implementation issues, if the driver uses
- * the reconfiguration functionality during resume the interface
- * will still be added as associated first during resume and then
- * disconnect normally later.
- *
- * This function can only be called from the resume callback and
- * the driver must not be holding any of its own locks while it
- * calls this function, or at least not any locks it needs in the
- * key configuration paths (if it supports HW crypto).
- */
-void ieee80211_resume_disconnect(struct ieee80211_vif *vif);
-
-/**
- * ieee80211_disable_dyn_ps - force mac80211 to temporarily disable dynamic psm
- *
- * @vif: &struct ieee80211_vif pointer from the add_interface callback.
- *
- * Some hardware require full power save to manage simultaneous BT traffic
- * on the WLAN frequency. Full PSM is required periodically, whenever there are
- * burst of BT traffic. The hardware gets information of BT traffic via
- * hardware co-existence lines, and consequentially requests mac80211 to
- * (temporarily) enter full psm.
- * This function will only temporarily disable dynamic PS, not enable PSM if
- * it was not already enabled.
- * The driver must make sure to re-enable dynamic PS using
- * ieee80211_enable_dyn_ps() if the driver has disabled it.
- *
- */
-void ieee80211_disable_dyn_ps(struct ieee80211_vif *vif);
-
-/**
- * ieee80211_enable_dyn_ps - restore dynamic psm after being disabled
- *
- * @vif: &struct ieee80211_vif pointer from the add_interface callback.
- *
- * This function restores dynamic PS after being temporarily disabled via
- * ieee80211_disable_dyn_ps(). Each ieee80211_disable_dyn_ps() call must
- * be coupled with an eventual call to this function.
- *
- */
-void ieee80211_enable_dyn_ps(struct ieee80211_vif *vif);
-
-/**
- * ieee80211_cqm_rssi_notify - inform a configured connection quality monitoring
- * rssi threshold triggered
- *
- * @vif: &struct ieee80211_vif pointer from the add_interface callback.
- * @rssi_event: the RSSI trigger event type
- * @gfp: context flags
- *
- * When the %IEEE80211_VIF_SUPPORTS_CQM_RSSI is set, and a connection quality
- * monitoring is configured with an rssi threshold, the driver will inform
- * whenever the rssi level reaches the threshold.
- */
-void ieee80211_cqm_rssi_notify(struct ieee80211_vif *vif,
- enum nl80211_cqm_rssi_threshold_event rssi_event,
- gfp_t gfp);
-
-/**
- * ieee80211_get_operstate - get the operstate of the vif
- *
- * @vif: &struct ieee80211_vif pointer from the add_interface callback.
- *
- * The driver might need to know the operstate of the net_device
- * (specifically, whether the link is IF_OPER_UP after resume)
- */
-unsigned char ieee80211_get_operstate(struct ieee80211_vif *vif);
-
-/**
- * ieee80211_chswitch_done - Complete channel switch process
- * @vif: &struct ieee80211_vif pointer from the add_interface callback.
- * @success: make the channel switch successful or not
- *
- * Complete the channel switch post-process: set the new operational channel
- * and wake up the suspended queues.
- */
-void ieee80211_chswitch_done(struct ieee80211_vif *vif, bool success);
-
-/**
- * ieee80211_request_smps - request SM PS transition
- * @vif: &struct ieee80211_vif pointer from the add_interface callback.
- * @smps_mode: new SM PS mode
- *
- * This allows the driver to request an SM PS transition in managed
- * mode. This is useful when the driver has more information than
- * the stack about possible interference, for example by bluetooth.
- */
-void ieee80211_request_smps(struct ieee80211_vif *vif,
- enum ieee80211_smps_mode smps_mode);
-
-/**
- * ieee80211_key_removed - disable hw acceleration for key
- * @key_conf: The key hw acceleration should be disabled for
- *
- * This allows drivers to indicate that the given key has been
- * removed from hardware acceleration, due to a new key that
- * was added. Don't use this if the key can continue to be used
- * for TX, if the key restriction is on RX only it is permitted
- * to keep the key for TX only and not call this function.
- *
- * Due to locking constraints, it may only be called during
- * @set_key. This function must be allowed to sleep, and the
- * key it tries to disable may still be used until it returns.
- */
-void ieee80211_key_removed(struct ieee80211_key_conf *key_conf);
-
-/**
- * ieee80211_ready_on_channel - notification of remain-on-channel start
- * @hw: pointer as obtained from ieee80211_alloc_hw()
- */
-void ieee80211_ready_on_channel(struct ieee80211_hw *hw);
-
-/**
- * ieee80211_remain_on_channel_expired - remain_on_channel duration expired
- * @hw: pointer as obtained from ieee80211_alloc_hw()
- */
-void ieee80211_remain_on_channel_expired(struct ieee80211_hw *hw);
-
-/**
- * ieee80211_stop_rx_ba_session - callback to stop existing BA sessions
- *
- * in order not to harm the system performance and user experience, the device
- * may request not to allow any rx ba session and tear down existing rx ba
- * sessions based on system constraints such as periodic BT activity that needs
- * to limit wlan activity (eg.sco or a2dp)."
- * in such cases, the intention is to limit the duration of the rx ppdu and
- * therefore prevent the peer device to use a-mpdu aggregation.
- *
- * @vif: &struct ieee80211_vif pointer from the add_interface callback.
- * @ba_rx_bitmap: Bit map of open rx ba per tid
- * @addr: & to bssid mac address
- */
-void ieee80211_stop_rx_ba_session(struct ieee80211_vif *vif, u16 ba_rx_bitmap,
- const u8 *addr);
-
-/**
- * ieee80211_send_bar - send a BlockAckReq frame
- *
- * can be used to flush pending frames from the peer's aggregation reorder
- * buffer.
- *
- * @vif: &struct ieee80211_vif pointer from the add_interface callback.
- * @ra: the peer's destination address
- * @tid: the TID of the aggregation session
- * @ssn: the new starting sequence number for the receiver
- */
-void ieee80211_send_bar(struct ieee80211_vif *vif, u8 *ra, u16 tid, u16 ssn);
-
-/* Rate control API */
-
-/**
- * enum rate_control_changed - flags to indicate which parameter changed
- *
- * @IEEE80211_RC_HT_CHANGED: The HT parameters of the operating channel have
- * changed, rate control algorithm can update its internal state if needed.
- * @IEEE80211_RC_SMPS_CHANGED: The SMPS state of the station changed, the rate
- * control algorithm needs to adjust accordingly.
- */
-enum rate_control_changed {
- IEEE80211_RC_HT_CHANGED = BIT(0),
- IEEE80211_RC_SMPS_CHANGED = BIT(1),
-};
-
-/**
- * struct ieee80211_tx_rate_control - rate control information for/from RC algo
- *
- * @hw: The hardware the algorithm is invoked for.
- * @sband: The band this frame is being transmitted on.
- * @bss_conf: the current BSS configuration
- * @skb: the skb that will be transmitted, the control information in it needs
- * to be filled in
- * @reported_rate: The rate control algorithm can fill this in to indicate
- * which rate should be reported to userspace as the current rate and
- * used for rate calculations in the mesh network.
- * @rts: whether RTS will be used for this frame because it is longer than the
- * RTS threshold
- * @short_preamble: whether mac80211 will request short-preamble transmission
- * if the selected rate supports it
- * @max_rate_idx: user-requested maximum (legacy) rate
- * (deprecated; this will be removed once drivers get updated to use
- * rate_idx_mask)
- * @rate_idx_mask: user-requested (legacy) rate mask
- * @rate_idx_mcs_mask: user-requested MCS rate mask
- * @bss: whether this frame is sent out in AP or IBSS mode
- */
-struct ieee80211_tx_rate_control {
- struct ieee80211_hw *hw;
- struct ieee80211_supported_band *sband;
- struct ieee80211_bss_conf *bss_conf;
- struct sk_buff *skb;
- struct ieee80211_tx_rate reported_rate;
- bool rts, short_preamble;
- u8 max_rate_idx;
- u32 rate_idx_mask;
- u8 rate_idx_mcs_mask[IEEE80211_HT_MCS_MASK_LEN];
- bool bss;
-};
-
-struct rate_control_ops {
- struct module *module;
- const char *name;
- void *(*alloc)(struct ieee80211_hw *hw, struct dentry *debugfsdir);
- void (*free)(void *priv);
-
- void *(*alloc_sta)(void *priv, struct ieee80211_sta *sta, gfp_t gfp);
- void (*rate_init)(void *priv, struct ieee80211_supported_band *sband,
- struct ieee80211_sta *sta, void *priv_sta);
- void (*rate_update)(void *priv, struct ieee80211_supported_band *sband,
- struct ieee80211_sta *sta,
- void *priv_sta, u32 changed,
- enum nl80211_channel_type oper_chan_type);
- void (*free_sta)(void *priv, struct ieee80211_sta *sta,
- void *priv_sta);
-
- void (*tx_status)(void *priv, struct ieee80211_supported_band *sband,
- struct ieee80211_sta *sta, void *priv_sta,
- struct sk_buff *skb);
- void (*get_rate)(void *priv, struct ieee80211_sta *sta, void *priv_sta,
- struct ieee80211_tx_rate_control *txrc);
-
- void (*add_sta_debugfs)(void *priv, void *priv_sta,
- struct dentry *dir);
- void (*remove_sta_debugfs)(void *priv, void *priv_sta);
-};
-
-static inline int rate_supported(struct ieee80211_sta *sta,
- enum ieee80211_band band,
- int index)
-{
- return (sta == NULL || sta->supp_rates[band] & BIT(index));
-}
-
-/**
- * rate_control_send_low - helper for drivers for management/no-ack frames
- *
- * Rate control algorithms that agree to use the lowest rate to
- * send management frames and NO_ACK data with the respective hw
- * retries should use this in the beginning of their mac80211 get_rate
- * callback. If true is returned the rate control can simply return.
- * If false is returned we guarantee that sta and sta and priv_sta is
- * not null.
- *
- * Rate control algorithms wishing to do more intelligent selection of
- * rate for multicast/broadcast frames may choose to not use this.
- *
- * @sta: &struct ieee80211_sta pointer to the target destination. Note
- * that this may be null.
- * @priv_sta: private rate control structure. This may be null.
- * @txrc: rate control information we sholud populate for mac80211.
- */
-bool rate_control_send_low(struct ieee80211_sta *sta,
- void *priv_sta,
- struct ieee80211_tx_rate_control *txrc);
-
-
-static inline s8
-rate_lowest_index(struct ieee80211_supported_band *sband,
- struct ieee80211_sta *sta)
-{
- int i;
-
- for (i = 0; i < sband->n_bitrates; i++)
- if (rate_supported(sta, sband->band, i))
- return i;
-
- /* warn when we cannot find a rate. */
- WARN_ON_ONCE(1);
-
- /* and return 0 (the lowest index) */
- return 0;
-}
-
-static inline
-bool rate_usable_index_exists(struct ieee80211_supported_band *sband,
- struct ieee80211_sta *sta)
-{
- unsigned int i;
-
- for (i = 0; i < sband->n_bitrates; i++)
- if (rate_supported(sta, sband->band, i))
- return true;
- return false;
-}
-
-int ieee80211_rate_control_register(struct rate_control_ops *ops);
-void ieee80211_rate_control_unregister(struct rate_control_ops *ops);
-
-static inline bool
-conf_is_ht20(struct ieee80211_conf *conf)
-{
- return conf->channel_type == NL80211_CHAN_HT20;
-}
-
-static inline bool
-conf_is_ht40_minus(struct ieee80211_conf *conf)
-{
- return conf->channel_type == NL80211_CHAN_HT40MINUS;
-}
-
-static inline bool
-conf_is_ht40_plus(struct ieee80211_conf *conf)
-{
- return conf->channel_type == NL80211_CHAN_HT40PLUS;
-}
-
-static inline bool
-conf_is_ht40(struct ieee80211_conf *conf)
-{
- return conf_is_ht40_minus(conf) || conf_is_ht40_plus(conf);
-}
-
-static inline bool
-conf_is_ht(struct ieee80211_conf *conf)
-{
- return conf->channel_type != NL80211_CHAN_NO_HT;
-}
-
-static inline enum nl80211_iftype
-ieee80211_iftype_p2p(enum nl80211_iftype type, bool p2p)
-{
- if (p2p) {
- switch (type) {
- case NL80211_IFTYPE_STATION:
- return NL80211_IFTYPE_P2P_CLIENT;
- case NL80211_IFTYPE_AP:
- return NL80211_IFTYPE_P2P_GO;
- default:
- break;
- }
- }
- return type;
-}
-
-static inline enum nl80211_iftype
-ieee80211_vif_type_p2p(struct ieee80211_vif *vif)
-{
- return ieee80211_iftype_p2p(vif->type, vif->p2p);
-}
-
-void ieee80211_enable_rssi_reports(struct ieee80211_vif *vif,
- int rssi_min_thold,
- int rssi_max_thold);
-
-void ieee80211_disable_rssi_reports(struct ieee80211_vif *vif);
-
-int ieee80211_add_srates_ie(struct ieee80211_vif *vif, struct sk_buff *skb);
-
-int ieee80211_add_ext_srates_ie(struct ieee80211_vif *vif,
- struct sk_buff *skb);
-#endif /* MAC80211_H */
diff --git a/ANDROID_3.4.5/include/net/mip6.h b/ANDROID_3.4.5/include/net/mip6.h
deleted file mode 100644
index 26ba99b5..00000000
--- a/ANDROID_3.4.5/include/net/mip6.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C)2003-2006 Helsinki University of Technology
- * Copyright (C)2003-2006 USAGI/WIDE Project
- *
- * 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
- */
-/*
- * Authors:
- * Noriaki TAKAMIYA @USAGI
- * Masahide NAKAMURA @USAGI
- * YOSHIFUJI Hideaki @USAGI
- */
-#ifndef _NET_MIP6_H
-#define _NET_MIP6_H
-
-#include <linux/skbuff.h>
-#include <net/sock.h>
-
-/*
- * Mobility Header
- */
-struct ip6_mh {
- __u8 ip6mh_proto;
- __u8 ip6mh_hdrlen;
- __u8 ip6mh_type;
- __u8 ip6mh_reserved;
- __u16 ip6mh_cksum;
- /* Followed by type specific messages */
- __u8 data[0];
-} __packed;
-
-#define IP6_MH_TYPE_BRR 0 /* Binding Refresh Request */
-#define IP6_MH_TYPE_HOTI 1 /* HOTI Message */
-#define IP6_MH_TYPE_COTI 2 /* COTI Message */
-#define IP6_MH_TYPE_HOT 3 /* HOT Message */
-#define IP6_MH_TYPE_COT 4 /* COT Message */
-#define IP6_MH_TYPE_BU 5 /* Binding Update */
-#define IP6_MH_TYPE_BACK 6 /* Binding ACK */
-#define IP6_MH_TYPE_BERROR 7 /* Binding Error */
-#define IP6_MH_TYPE_MAX IP6_MH_TYPE_BERROR
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/mld.h b/ANDROID_3.4.5/include/net/mld.h
deleted file mode 100644
index 467143cd..00000000
--- a/ANDROID_3.4.5/include/net/mld.h
+++ /dev/null
@@ -1,75 +0,0 @@
-#ifndef LINUX_MLD_H
-#define LINUX_MLD_H
-
-#include <linux/in6.h>
-#include <linux/icmpv6.h>
-
-/* MLDv1 Query/Report/Done */
-struct mld_msg {
- struct icmp6hdr mld_hdr;
- struct in6_addr mld_mca;
-};
-
-#define mld_type mld_hdr.icmp6_type
-#define mld_code mld_hdr.icmp6_code
-#define mld_cksum mld_hdr.icmp6_cksum
-#define mld_maxdelay mld_hdr.icmp6_maxdelay
-#define mld_reserved mld_hdr.icmp6_dataun.un_data16[1]
-
-/* Multicast Listener Discovery version 2 headers */
-/* MLDv2 Report */
-struct mld2_grec {
- __u8 grec_type;
- __u8 grec_auxwords;
- __be16 grec_nsrcs;
- struct in6_addr grec_mca;
- struct in6_addr grec_src[0];
-};
-
-struct mld2_report {
- struct icmp6hdr mld2r_hdr;
- struct mld2_grec mld2r_grec[0];
-};
-
-#define mld2r_type mld2r_hdr.icmp6_type
-#define mld2r_resv1 mld2r_hdr.icmp6_code
-#define mld2r_cksum mld2r_hdr.icmp6_cksum
-#define mld2r_resv2 mld2r_hdr.icmp6_dataun.un_data16[0]
-#define mld2r_ngrec mld2r_hdr.icmp6_dataun.un_data16[1]
-
-/* MLDv2 Query */
-struct mld2_query {
- struct icmp6hdr mld2q_hdr;
- struct in6_addr mld2q_mca;
-#if defined(__LITTLE_ENDIAN_BITFIELD)
- __u8 mld2q_qrv:3,
- mld2q_suppress:1,
- mld2q_resv2:4;
-#elif defined(__BIG_ENDIAN_BITFIELD)
- __u8 mld2q_resv2:4,
- mld2q_suppress:1,
- mld2q_qrv:3;
-#else
-#error "Please fix <asm/byteorder.h>"
-#endif
- __u8 mld2q_qqic;
- __be16 mld2q_nsrcs;
- struct in6_addr mld2q_srcs[0];
-};
-
-#define mld2q_type mld2q_hdr.icmp6_type
-#define mld2q_code mld2q_hdr.icmp6_code
-#define mld2q_cksum mld2q_hdr.icmp6_cksum
-#define mld2q_mrc mld2q_hdr.icmp6_maxdelay
-#define mld2q_resv1 mld2q_hdr.icmp6_dataun.un_data16[1]
-
-/* Max Response Code */
-#define MLDV2_MASK(value, nb) ((nb)>=32 ? (value) : ((1<<(nb))-1) & (value))
-#define MLDV2_EXP(thresh, nbmant, nbexp, value) \
- ((value) < (thresh) ? (value) : \
- ((MLDV2_MASK(value, nbmant) | (1<<(nbmant))) << \
- (MLDV2_MASK((value) >> (nbmant), nbexp) + (nbexp))))
-
-#define MLDV2_MRC(value) MLDV2_EXP(0x8000, 12, 3, value)
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/ndisc.h b/ANDROID_3.4.5/include/net/ndisc.h
deleted file mode 100644
index 6f9c25a7..00000000
--- a/ANDROID_3.4.5/include/net/ndisc.h
+++ /dev/null
@@ -1,183 +0,0 @@
-#ifndef _NDISC_H
-#define _NDISC_H
-
-/*
- * ICMP codes for neighbour discovery messages
- */
-
-#define NDISC_ROUTER_SOLICITATION 133
-#define NDISC_ROUTER_ADVERTISEMENT 134
-#define NDISC_NEIGHBOUR_SOLICITATION 135
-#define NDISC_NEIGHBOUR_ADVERTISEMENT 136
-#define NDISC_REDIRECT 137
-
-/*
- * Router type: cross-layer information from link-layer to
- * IPv6 layer reported by certain link types (e.g., RFC4214).
- */
-#define NDISC_NODETYPE_UNSPEC 0 /* unspecified (default) */
-#define NDISC_NODETYPE_HOST 1 /* host or unauthorized router */
-#define NDISC_NODETYPE_NODEFAULT 2 /* non-default router */
-#define NDISC_NODETYPE_DEFAULT 3 /* default router */
-
-/*
- * ndisc options
- */
-
-enum {
- __ND_OPT_PREFIX_INFO_END = 0,
- ND_OPT_SOURCE_LL_ADDR = 1, /* RFC2461 */
- ND_OPT_TARGET_LL_ADDR = 2, /* RFC2461 */
- ND_OPT_PREFIX_INFO = 3, /* RFC2461 */
- ND_OPT_REDIRECT_HDR = 4, /* RFC2461 */
- ND_OPT_MTU = 5, /* RFC2461 */
- __ND_OPT_ARRAY_MAX,
- ND_OPT_ROUTE_INFO = 24, /* RFC4191 */
- ND_OPT_RDNSS = 25, /* RFC5006 */
- __ND_OPT_MAX
-};
-
-#define MAX_RTR_SOLICITATION_DELAY HZ
-
-#define ND_REACHABLE_TIME (30*HZ)
-#define ND_RETRANS_TIMER HZ
-
-#include <linux/compiler.h>
-#include <linux/icmpv6.h>
-#include <linux/in6.h>
-#include <linux/types.h>
-
-#include <net/neighbour.h>
-
-struct ctl_table;
-struct inet6_dev;
-struct net_device;
-struct net_proto_family;
-struct sk_buff;
-
-extern struct neigh_table nd_tbl;
-
-struct nd_msg {
- struct icmp6hdr icmph;
- struct in6_addr target;
- __u8 opt[0];
-};
-
-struct rs_msg {
- struct icmp6hdr icmph;
- __u8 opt[0];
-};
-
-struct ra_msg {
- struct icmp6hdr icmph;
- __be32 reachable_time;
- __be32 retrans_timer;
-};
-
-struct nd_opt_hdr {
- __u8 nd_opt_type;
- __u8 nd_opt_len;
-} __packed;
-
-static inline u32 ndisc_hashfn(const void *pkey, const struct net_device *dev, __u32 *hash_rnd)
-{
- const u32 *p32 = pkey;
-
- return (((p32[0] ^ dev->ifindex) * hash_rnd[0]) +
- (p32[1] * hash_rnd[1]) +
- (p32[2] * hash_rnd[2]) +
- (p32[3] * hash_rnd[3]));
-}
-
-static inline struct neighbour *__ipv6_neigh_lookup(struct neigh_table *tbl, struct net_device *dev, const void *pkey)
-{
- struct neigh_hash_table *nht;
- const u32 *p32 = pkey;
- struct neighbour *n;
- u32 hash_val;
-
- rcu_read_lock_bh();
- nht = rcu_dereference_bh(tbl->nht);
- hash_val = ndisc_hashfn(pkey, dev, nht->hash_rnd) >> (32 - nht->hash_shift);
- for (n = rcu_dereference_bh(nht->hash_buckets[hash_val]);
- n != NULL;
- n = rcu_dereference_bh(n->next)) {
- u32 *n32 = (u32 *) n->primary_key;
- if (n->dev == dev &&
- ((n32[0] ^ p32[0]) | (n32[1] ^ p32[1]) |
- (n32[2] ^ p32[2]) | (n32[3] ^ p32[3])) == 0) {
- if (!atomic_inc_not_zero(&n->refcnt))
- n = NULL;
- break;
- }
- }
- rcu_read_unlock_bh();
-
- return n;
-}
-
-extern int ndisc_init(void);
-
-extern void ndisc_cleanup(void);
-
-extern int ndisc_rcv(struct sk_buff *skb);
-
-extern void ndisc_send_ns(struct net_device *dev,
- struct neighbour *neigh,
- const struct in6_addr *solicit,
- const struct in6_addr *daddr,
- const struct in6_addr *saddr);
-
-extern void ndisc_send_rs(struct net_device *dev,
- const struct in6_addr *saddr,
- const struct in6_addr *daddr);
-
-extern void ndisc_send_redirect(struct sk_buff *skb,
- const struct in6_addr *target);
-
-extern int ndisc_mc_map(const struct in6_addr *addr, char *buf,
- struct net_device *dev, int dir);
-
-extern struct sk_buff *ndisc_build_skb(struct net_device *dev,
- const struct in6_addr *daddr,
- const struct in6_addr *saddr,
- struct icmp6hdr *icmp6h,
- const struct in6_addr *target,
- int llinfo);
-
-extern void ndisc_send_skb(struct sk_buff *skb,
- struct net_device *dev,
- struct neighbour *neigh,
- const struct in6_addr *daddr,
- const struct in6_addr *saddr,
- struct icmp6hdr *icmp6h);
-
-
-
-/*
- * IGMP
- */
-extern int igmp6_init(void);
-
-extern void igmp6_cleanup(void);
-
-extern int igmp6_event_query(struct sk_buff *skb);
-
-extern int igmp6_event_report(struct sk_buff *skb);
-
-
-#ifdef CONFIG_SYSCTL
-extern int ndisc_ifinfo_sysctl_change(struct ctl_table *ctl,
- int write,
- void __user *buffer,
- size_t *lenp,
- loff_t *ppos);
-int ndisc_ifinfo_sysctl_strategy(ctl_table *ctl,
- void __user *oldval, size_t __user *oldlenp,
- void __user *newval, size_t newlen);
-#endif
-
-extern void inet6_ifinfo_notify(int event,
- struct inet6_dev *idev);
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/neighbour.h b/ANDROID_3.4.5/include/net/neighbour.h
deleted file mode 100644
index 34c996f4..00000000
--- a/ANDROID_3.4.5/include/net/neighbour.h
+++ /dev/null
@@ -1,407 +0,0 @@
-#ifndef _NET_NEIGHBOUR_H
-#define _NET_NEIGHBOUR_H
-
-#include <linux/neighbour.h>
-
-/*
- * Generic neighbour manipulation
- *
- * Authors:
- * Pedro Roque <roque@di.fc.ul.pt>
- * Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
- *
- * Changes:
- *
- * Harald Welte: <laforge@gnumonks.org>
- * - Add neighbour cache statistics like rtstat
- */
-
-#include <linux/atomic.h>
-#include <linux/netdevice.h>
-#include <linux/skbuff.h>
-#include <linux/rcupdate.h>
-#include <linux/seq_file.h>
-
-#include <linux/err.h>
-#include <linux/sysctl.h>
-#include <linux/workqueue.h>
-#include <net/rtnetlink.h>
-
-/*
- * NUD stands for "neighbor unreachability detection"
- */
-
-#define NUD_IN_TIMER (NUD_INCOMPLETE|NUD_REACHABLE|NUD_DELAY|NUD_PROBE)
-#define NUD_VALID (NUD_PERMANENT|NUD_NOARP|NUD_REACHABLE|NUD_PROBE|NUD_STALE|NUD_DELAY)
-#define NUD_CONNECTED (NUD_PERMANENT|NUD_NOARP|NUD_REACHABLE)
-
-struct neighbour;
-
-struct neigh_parms {
-#ifdef CONFIG_NET_NS
- struct net *net;
-#endif
- struct net_device *dev;
- struct neigh_parms *next;
- int (*neigh_setup)(struct neighbour *);
- void (*neigh_cleanup)(struct neighbour *);
- struct neigh_table *tbl;
-
- void *sysctl_table;
-
- int dead;
- atomic_t refcnt;
- struct rcu_head rcu_head;
-
- int base_reachable_time;
- int retrans_time;
- int gc_staletime;
- int reachable_time;
- int delay_probe_time;
-
- int queue_len_bytes;
- int ucast_probes;
- int app_probes;
- int mcast_probes;
- int anycast_delay;
- int proxy_delay;
- int proxy_qlen;
- int locktime;
-};
-
-struct neigh_statistics {
- unsigned long allocs; /* number of allocated neighs */
- unsigned long destroys; /* number of destroyed neighs */
- unsigned long hash_grows; /* number of hash resizes */
-
- unsigned long res_failed; /* number of failed resolutions */
-
- unsigned long lookups; /* number of lookups */
- unsigned long hits; /* number of hits (among lookups) */
-
- unsigned long rcv_probes_mcast; /* number of received mcast ipv6 */
- unsigned long rcv_probes_ucast; /* number of received ucast ipv6 */
-
- unsigned long periodic_gc_runs; /* number of periodic GC runs */
- unsigned long forced_gc_runs; /* number of forced GC runs */
-
- unsigned long unres_discards; /* number of unresolved drops */
-};
-
-#define NEIGH_CACHE_STAT_INC(tbl, field) this_cpu_inc((tbl)->stats->field)
-
-struct neighbour {
- struct neighbour __rcu *next;
- struct neigh_table *tbl;
- struct neigh_parms *parms;
- unsigned long confirmed;
- unsigned long updated;
- rwlock_t lock;
- atomic_t refcnt;
- struct sk_buff_head arp_queue;
- unsigned int arp_queue_len_bytes;
- struct timer_list timer;
- unsigned long used;
- atomic_t probes;
- __u8 flags;
- __u8 nud_state;
- __u8 type;
- __u8 dead;
- seqlock_t ha_lock;
- unsigned char ha[ALIGN(MAX_ADDR_LEN, sizeof(unsigned long))];
- struct hh_cache hh;
- int (*output)(struct neighbour *, struct sk_buff *);
- const struct neigh_ops *ops;
- struct rcu_head rcu;
- struct net_device *dev;
- u8 primary_key[0];
-};
-
-struct neigh_ops {
- int family;
- void (*solicit)(struct neighbour *, struct sk_buff *);
- void (*error_report)(struct neighbour *, struct sk_buff *);
- int (*output)(struct neighbour *, struct sk_buff *);
- int (*connected_output)(struct neighbour *, struct sk_buff *);
-};
-
-struct pneigh_entry {
- struct pneigh_entry *next;
-#ifdef CONFIG_NET_NS
- struct net *net;
-#endif
- struct net_device *dev;
- u8 flags;
- u8 key[0];
-};
-
-/*
- * neighbour table manipulation
- */
-
-#define NEIGH_NUM_HASH_RND 4
-
-struct neigh_hash_table {
- struct neighbour __rcu **hash_buckets;
- unsigned int hash_shift;
- __u32 hash_rnd[NEIGH_NUM_HASH_RND];
- struct rcu_head rcu;
-};
-
-
-struct neigh_table {
- struct neigh_table *next;
- int family;
- int entry_size;
- int key_len;
- __u32 (*hash)(const void *pkey,
- const struct net_device *dev,
- __u32 *hash_rnd);
- int (*constructor)(struct neighbour *);
- int (*pconstructor)(struct pneigh_entry *);
- void (*pdestructor)(struct pneigh_entry *);
- void (*proxy_redo)(struct sk_buff *skb);
- char *id;
- struct neigh_parms parms;
- /* HACK. gc_* should follow parms without a gap! */
- int gc_interval;
- int gc_thresh1;
- int gc_thresh2;
- int gc_thresh3;
- unsigned long last_flush;
- struct delayed_work gc_work;
- struct timer_list proxy_timer;
- struct sk_buff_head proxy_queue;
- atomic_t entries;
- rwlock_t lock;
- unsigned long last_rand;
- struct neigh_statistics __percpu *stats;
- struct neigh_hash_table __rcu *nht;
- struct pneigh_entry **phash_buckets;
-};
-
-#define NEIGH_PRIV_ALIGN sizeof(long long)
-
-static inline void *neighbour_priv(const struct neighbour *n)
-{
- return (char *)n + ALIGN(sizeof(*n) + n->tbl->key_len, NEIGH_PRIV_ALIGN);
-}
-
-/* flags for neigh_update() */
-#define NEIGH_UPDATE_F_OVERRIDE 0x00000001
-#define NEIGH_UPDATE_F_WEAK_OVERRIDE 0x00000002
-#define NEIGH_UPDATE_F_OVERRIDE_ISROUTER 0x00000004
-#define NEIGH_UPDATE_F_ISROUTER 0x40000000
-#define NEIGH_UPDATE_F_ADMIN 0x80000000
-
-extern void neigh_table_init(struct neigh_table *tbl);
-extern void neigh_table_init_no_netlink(struct neigh_table *tbl);
-extern int neigh_table_clear(struct neigh_table *tbl);
-extern struct neighbour * neigh_lookup(struct neigh_table *tbl,
- const void *pkey,
- struct net_device *dev);
-extern struct neighbour * neigh_lookup_nodev(struct neigh_table *tbl,
- struct net *net,
- const void *pkey);
-extern struct neighbour * neigh_create(struct neigh_table *tbl,
- const void *pkey,
- struct net_device *dev);
-extern void neigh_destroy(struct neighbour *neigh);
-extern int __neigh_event_send(struct neighbour *neigh, struct sk_buff *skb);
-extern int neigh_update(struct neighbour *neigh, const u8 *lladdr, u8 new,
- u32 flags);
-extern void neigh_changeaddr(struct neigh_table *tbl, struct net_device *dev);
-extern int neigh_ifdown(struct neigh_table *tbl, struct net_device *dev);
-extern int neigh_resolve_output(struct neighbour *neigh, struct sk_buff *skb);
-extern int neigh_connected_output(struct neighbour *neigh, struct sk_buff *skb);
-extern int neigh_compat_output(struct neighbour *neigh, struct sk_buff *skb);
-extern int neigh_direct_output(struct neighbour *neigh, struct sk_buff *skb);
-extern struct neighbour *neigh_event_ns(struct neigh_table *tbl,
- u8 *lladdr, void *saddr,
- struct net_device *dev);
-
-extern struct neigh_parms *neigh_parms_alloc(struct net_device *dev, struct neigh_table *tbl);
-extern void neigh_parms_release(struct neigh_table *tbl, struct neigh_parms *parms);
-
-static inline
-struct net *neigh_parms_net(const struct neigh_parms *parms)
-{
- return read_pnet(&parms->net);
-}
-
-extern unsigned long neigh_rand_reach_time(unsigned long base);
-
-extern void pneigh_enqueue(struct neigh_table *tbl, struct neigh_parms *p,
- struct sk_buff *skb);
-extern struct pneigh_entry *pneigh_lookup(struct neigh_table *tbl, struct net *net, const void *key, struct net_device *dev, int creat);
-extern struct pneigh_entry *__pneigh_lookup(struct neigh_table *tbl,
- struct net *net,
- const void *key,
- struct net_device *dev);
-extern int pneigh_delete(struct neigh_table *tbl, struct net *net, const void *key, struct net_device *dev);
-
-static inline
-struct net *pneigh_net(const struct pneigh_entry *pneigh)
-{
- return read_pnet(&pneigh->net);
-}
-
-extern void neigh_app_ns(struct neighbour *n);
-extern void neigh_for_each(struct neigh_table *tbl, void (*cb)(struct neighbour *, void *), void *cookie);
-extern void __neigh_for_each_release(struct neigh_table *tbl, int (*cb)(struct neighbour *));
-extern void pneigh_for_each(struct neigh_table *tbl, void (*cb)(struct pneigh_entry *));
-
-struct neigh_seq_state {
- struct seq_net_private p;
- struct neigh_table *tbl;
- struct neigh_hash_table *nht;
- void *(*neigh_sub_iter)(struct neigh_seq_state *state,
- struct neighbour *n, loff_t *pos);
- unsigned int bucket;
- unsigned int flags;
-#define NEIGH_SEQ_NEIGH_ONLY 0x00000001
-#define NEIGH_SEQ_IS_PNEIGH 0x00000002
-#define NEIGH_SEQ_SKIP_NOARP 0x00000004
-};
-extern void *neigh_seq_start(struct seq_file *, loff_t *, struct neigh_table *, unsigned int);
-extern void *neigh_seq_next(struct seq_file *, void *, loff_t *);
-extern void neigh_seq_stop(struct seq_file *, void *);
-
-extern int neigh_sysctl_register(struct net_device *dev,
- struct neigh_parms *p,
- char *p_name,
- proc_handler *proc_handler);
-extern void neigh_sysctl_unregister(struct neigh_parms *p);
-
-static inline void __neigh_parms_put(struct neigh_parms *parms)
-{
- atomic_dec(&parms->refcnt);
-}
-
-static inline struct neigh_parms *neigh_parms_clone(struct neigh_parms *parms)
-{
- atomic_inc(&parms->refcnt);
- return parms;
-}
-
-/*
- * Neighbour references
- */
-
-static inline void neigh_release(struct neighbour *neigh)
-{
- if (atomic_dec_and_test(&neigh->refcnt))
- neigh_destroy(neigh);
-}
-
-static inline struct neighbour * neigh_clone(struct neighbour *neigh)
-{
- if (neigh)
- atomic_inc(&neigh->refcnt);
- return neigh;
-}
-
-#define neigh_hold(n) atomic_inc(&(n)->refcnt)
-
-static inline void neigh_confirm(struct neighbour *neigh)
-{
- if (neigh)
- neigh->confirmed = jiffies;
-}
-
-static inline int neigh_event_send(struct neighbour *neigh, struct sk_buff *skb)
-{
- unsigned long now = jiffies;
-
- if (neigh->used != now)
- neigh->used = now;
- if (!(neigh->nud_state&(NUD_CONNECTED|NUD_DELAY|NUD_PROBE)))
- return __neigh_event_send(neigh, skb);
- return 0;
-}
-
-#ifdef CONFIG_BRIDGE_NETFILTER
-static inline int neigh_hh_bridge(struct hh_cache *hh, struct sk_buff *skb)
-{
- unsigned seq, hh_alen;
-
- do {
- seq = read_seqbegin(&hh->hh_lock);
- hh_alen = HH_DATA_ALIGN(ETH_HLEN);
- memcpy(skb->data - hh_alen, hh->hh_data, ETH_ALEN + hh_alen - ETH_HLEN);
- } while (read_seqretry(&hh->hh_lock, seq));
- return 0;
-}
-#endif
-
-static inline int neigh_hh_output(struct hh_cache *hh, struct sk_buff *skb)
-{
- unsigned seq;
- int hh_len;
-
- do {
- int hh_alen;
-
- seq = read_seqbegin(&hh->hh_lock);
- hh_len = hh->hh_len;
- hh_alen = HH_DATA_ALIGN(hh_len);
- memcpy(skb->data - hh_alen, hh->hh_data, hh_alen);
- } while (read_seqretry(&hh->hh_lock, seq));
-
- skb_push(skb, hh_len);
- return dev_queue_xmit(skb);
-}
-
-static inline int neigh_output(struct neighbour *n, struct sk_buff *skb)
-{
- struct hh_cache *hh = &n->hh;
- if ((n->nud_state & NUD_CONNECTED) && hh->hh_len)
- return neigh_hh_output(hh, skb);
- else
- return n->output(n, skb);
-}
-
-static inline struct neighbour *
-__neigh_lookup(struct neigh_table *tbl, const void *pkey, struct net_device *dev, int creat)
-{
- struct neighbour *n = neigh_lookup(tbl, pkey, dev);
-
- if (n || !creat)
- return n;
-
- n = neigh_create(tbl, pkey, dev);
- return IS_ERR(n) ? NULL : n;
-}
-
-static inline struct neighbour *
-__neigh_lookup_errno(struct neigh_table *tbl, const void *pkey,
- struct net_device *dev)
-{
- struct neighbour *n = neigh_lookup(tbl, pkey, dev);
-
- if (n)
- return n;
-
- return neigh_create(tbl, pkey, dev);
-}
-
-struct neighbour_cb {
- unsigned long sched_next;
- unsigned int flags;
-};
-
-#define LOCALLY_ENQUEUED 0x1
-
-#define NEIGH_CB(skb) ((struct neighbour_cb *)(skb)->cb)
-
-static inline void neigh_ha_snapshot(char *dst, const struct neighbour *n,
- const struct net_device *dev)
-{
- unsigned int seq;
-
- do {
- seq = read_seqbegin(&n->ha_lock);
- memcpy(dst, n->ha, dev->addr_len);
- } while (read_seqretry(&n->ha_lock, seq));
-}
-#endif
diff --git a/ANDROID_3.4.5/include/net/net_namespace.h b/ANDROID_3.4.5/include/net/net_namespace.h
deleted file mode 100644
index ee547c14..00000000
--- a/ANDROID_3.4.5/include/net/net_namespace.h
+++ /dev/null
@@ -1,292 +0,0 @@
-/*
- * Operations on the network namespace
- */
-#ifndef __NET_NET_NAMESPACE_H
-#define __NET_NET_NAMESPACE_H
-
-#include <linux/atomic.h>
-#include <linux/workqueue.h>
-#include <linux/list.h>
-#include <linux/sysctl.h>
-
-#include <net/netns/core.h>
-#include <net/netns/mib.h>
-#include <net/netns/unix.h>
-#include <net/netns/packet.h>
-#include <net/netns/ipv4.h>
-#include <net/netns/ipv6.h>
-#include <net/netns/dccp.h>
-#include <net/netns/x_tables.h>
-#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
-#include <net/netns/conntrack.h>
-#endif
-#include <net/netns/xfrm.h>
-
-struct proc_dir_entry;
-struct net_device;
-struct sock;
-struct ctl_table_header;
-struct net_generic;
-struct sock;
-struct netns_ipvs;
-
-
-#define NETDEV_HASHBITS 8
-#define NETDEV_HASHENTRIES (1 << NETDEV_HASHBITS)
-
-struct net {
- atomic_t passive; /* To decided when the network
- * namespace should be freed.
- */
- atomic_t count; /* To decided when the network
- * namespace should be shut down.
- */
-#ifdef NETNS_REFCNT_DEBUG
- atomic_t use_count; /* To track references we
- * destroy on demand
- */
-#endif
- spinlock_t rules_mod_lock;
-
- struct list_head list; /* list of network namespaces */
- struct list_head cleanup_list; /* namespaces on death row */
- struct list_head exit_list; /* Use only net_mutex */
-
- struct proc_dir_entry *proc_net;
- struct proc_dir_entry *proc_net_stat;
-
-#ifdef CONFIG_SYSCTL
- struct ctl_table_set sysctls;
-#endif
-
- struct sock *rtnl; /* rtnetlink socket */
- struct sock *genl_sock;
-
- struct list_head dev_base_head;
- struct hlist_head *dev_name_head;
- struct hlist_head *dev_index_head;
- unsigned int dev_base_seq; /* protected by rtnl_mutex */
-
- /* core fib_rules */
- struct list_head rules_ops;
-
-
- struct net_device *loopback_dev; /* The loopback */
- struct netns_core core;
- struct netns_mib mib;
- struct netns_packet packet;
- struct netns_unix unx;
- struct netns_ipv4 ipv4;
-#if IS_ENABLED(CONFIG_IPV6)
- struct netns_ipv6 ipv6;
-#endif
-#if defined(CONFIG_IP_DCCP) || defined(CONFIG_IP_DCCP_MODULE)
- struct netns_dccp dccp;
-#endif
-#ifdef CONFIG_NETFILTER
- struct netns_xt xt;
-#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
- struct netns_ct ct;
-#endif
- struct sock *nfnl;
- struct sock *nfnl_stash;
-#endif
-#ifdef CONFIG_WEXT_CORE
- struct sk_buff_head wext_nlevents;
-#endif
- struct net_generic __rcu *gen;
-
- /* Note : following structs are cache line aligned */
-#ifdef CONFIG_XFRM
- struct netns_xfrm xfrm;
-#endif
- struct netns_ipvs *ipvs;
-};
-
-
-#include <linux/seq_file_net.h>
-
-/* Init's network namespace */
-extern struct net init_net;
-
-#ifdef CONFIG_NET
-extern struct net *copy_net_ns(unsigned long flags, struct net *net_ns);
-
-#else /* CONFIG_NET */
-static inline struct net *copy_net_ns(unsigned long flags, struct net *net_ns)
-{
- /* There is nothing to copy so this is a noop */
- return net_ns;
-}
-#endif /* CONFIG_NET */
-
-
-extern struct list_head net_namespace_list;
-
-extern struct net *get_net_ns_by_pid(pid_t pid);
-extern struct net *get_net_ns_by_fd(int pid);
-
-#ifdef CONFIG_NET_NS
-extern void __put_net(struct net *net);
-
-static inline struct net *get_net(struct net *net)
-{
- atomic_inc(&net->count);
- return net;
-}
-
-static inline struct net *maybe_get_net(struct net *net)
-{
- /* Used when we know struct net exists but we
- * aren't guaranteed a previous reference count
- * exists. If the reference count is zero this
- * function fails and returns NULL.
- */
- if (!atomic_inc_not_zero(&net->count))
- net = NULL;
- return net;
-}
-
-static inline void put_net(struct net *net)
-{
- if (atomic_dec_and_test(&net->count))
- __put_net(net);
-}
-
-static inline
-int net_eq(const struct net *net1, const struct net *net2)
-{
- return net1 == net2;
-}
-
-extern void net_drop_ns(void *);
-
-#else
-
-static inline struct net *get_net(struct net *net)
-{
- return net;
-}
-
-static inline void put_net(struct net *net)
-{
-}
-
-static inline struct net *maybe_get_net(struct net *net)
-{
- return net;
-}
-
-static inline
-int net_eq(const struct net *net1, const struct net *net2)
-{
- return 1;
-}
-
-#define net_drop_ns NULL
-#endif
-
-
-#ifdef NETNS_REFCNT_DEBUG
-static inline struct net *hold_net(struct net *net)
-{
- if (net)
- atomic_inc(&net->use_count);
- return net;
-}
-
-static inline void release_net(struct net *net)
-{
- if (net)
- atomic_dec(&net->use_count);
-}
-#else
-static inline struct net *hold_net(struct net *net)
-{
- return net;
-}
-
-static inline void release_net(struct net *net)
-{
-}
-#endif
-
-#ifdef CONFIG_NET_NS
-
-static inline void write_pnet(struct net **pnet, struct net *net)
-{
- *pnet = net;
-}
-
-static inline struct net *read_pnet(struct net * const *pnet)
-{
- return *pnet;
-}
-
-#else
-
-#define write_pnet(pnet, net) do { (void)(net);} while (0)
-#define read_pnet(pnet) (&init_net)
-
-#endif
-
-#define for_each_net(VAR) \
- list_for_each_entry(VAR, &net_namespace_list, list)
-
-#define for_each_net_rcu(VAR) \
- list_for_each_entry_rcu(VAR, &net_namespace_list, list)
-
-#ifdef CONFIG_NET_NS
-#define __net_init
-#define __net_exit
-#define __net_initdata
-#else
-#define __net_init __init
-#define __net_exit __exit_refok
-#define __net_initdata __initdata
-#endif
-
-struct pernet_operations {
- struct list_head list;
- int (*init)(struct net *net);
- void (*exit)(struct net *net);
- void (*exit_batch)(struct list_head *net_exit_list);
- int *id;
- size_t size;
-};
-
-/*
- * Use these carefully. If you implement a network device and it
- * needs per network namespace operations use device pernet operations,
- * otherwise use pernet subsys operations.
- *
- * Network interfaces need to be removed from a dying netns _before_
- * subsys notifiers can be called, as most of the network code cleanup
- * (which is done from subsys notifiers) runs with the assumption that
- * dev_remove_pack has been called so no new packets will arrive during
- * and after the cleanup functions have been called. dev_remove_pack
- * is not per namespace so instead the guarantee of no more packets
- * arriving in a network namespace is provided by ensuring that all
- * network devices and all sockets have left the network namespace
- * before the cleanup methods are called.
- *
- * For the longest time the ipv4 icmp code was registered as a pernet
- * device which caused kernel oops, and panics during network
- * namespace cleanup. So please don't get this wrong.
- */
-extern int register_pernet_subsys(struct pernet_operations *);
-extern void unregister_pernet_subsys(struct pernet_operations *);
-extern int register_pernet_device(struct pernet_operations *);
-extern void unregister_pernet_device(struct pernet_operations *);
-
-struct ctl_path;
-struct ctl_table;
-struct ctl_table_header;
-
-extern struct ctl_table_header *register_net_sysctl_table(struct net *net,
- const struct ctl_path *path, struct ctl_table *table);
-extern struct ctl_table_header *register_net_sysctl_rotable(
- const struct ctl_path *path, struct ctl_table *table);
-extern void unregister_net_sysctl_table(struct ctl_table_header *header);
-
-#endif /* __NET_NET_NAMESPACE_H */
diff --git a/ANDROID_3.4.5/include/net/net_ratelimit.h b/ANDROID_3.4.5/include/net/net_ratelimit.h
deleted file mode 100644
index 7727b424..00000000
--- a/ANDROID_3.4.5/include/net/net_ratelimit.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef _LINUX_NET_RATELIMIT_H
-#define _LINUX_NET_RATELIMIT_H
-
-#include <linux/ratelimit.h>
-
-extern struct ratelimit_state net_ratelimit_state;
-
-#endif /* _LINUX_NET_RATELIMIT_H */
diff --git a/ANDROID_3.4.5/include/net/netdma.h b/ANDROID_3.4.5/include/net/netdma.h
deleted file mode 100644
index 8ba8ce28..00000000
--- a/ANDROID_3.4.5/include/net/netdma.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright(c) 2004 - 2006 Intel Corporation. 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 COPYING.
- */
-#ifndef NETDMA_H
-#define NETDMA_H
-#ifdef CONFIG_NET_DMA
-#include <linux/dmaengine.h>
-#include <linux/skbuff.h>
-
-int dma_skb_copy_datagram_iovec(struct dma_chan* chan,
- struct sk_buff *skb, int offset, struct iovec *to,
- size_t len, struct dma_pinned_list *pinned_list);
-
-#endif /* CONFIG_NET_DMA */
-#endif /* NETDMA_H */
diff --git a/ANDROID_3.4.5/include/net/netevent.h b/ANDROID_3.4.5/include/net/netevent.h
deleted file mode 100644
index 086f8a5b..00000000
--- a/ANDROID_3.4.5/include/net/netevent.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef _NET_EVENT_H
-#define _NET_EVENT_H
-
-/*
- * Generic netevent notifiers
- *
- * Authors:
- * Tom Tucker <tom@opengridcomputing.com>
- * Steve Wise <swise@opengridcomputing.com>
- *
- * Changes:
- */
-
-struct dst_entry;
-
-struct netevent_redirect {
- struct dst_entry *old;
- struct dst_entry *new;
-};
-
-enum netevent_notif_type {
- NETEVENT_NEIGH_UPDATE = 1, /* arg is struct neighbour ptr */
- NETEVENT_REDIRECT, /* arg is struct netevent_redirect ptr */
-};
-
-extern int register_netevent_notifier(struct notifier_block *nb);
-extern int unregister_netevent_notifier(struct notifier_block *nb);
-extern int call_netevent_notifiers(unsigned long val, void *v);
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/netfilter/ipv4/nf_conntrack_ipv4.h b/ANDROID_3.4.5/include/net/netfilter/ipv4/nf_conntrack_ipv4.h
deleted file mode 100644
index 7573d52a..00000000
--- a/ANDROID_3.4.5/include/net/netfilter/ipv4/nf_conntrack_ipv4.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * IPv4 support for nf_conntrack.
- *
- * 23 Mar 2004: Yasuyuki Kozakai @ USAGI <yasuyuki.kozakai@toshiba.co.jp>
- * - move L3 protocol dependent part from include/linux/netfilter_ipv4/
- * ip_conntarck.h
- */
-
-#ifndef _NF_CONNTRACK_IPV4_H
-#define _NF_CONNTRACK_IPV4_H
-
-
-extern struct nf_conntrack_l3proto nf_conntrack_l3proto_ipv4;
-
-extern struct nf_conntrack_l4proto nf_conntrack_l4proto_tcp4;
-extern struct nf_conntrack_l4proto nf_conntrack_l4proto_udp4;
-extern struct nf_conntrack_l4proto nf_conntrack_l4proto_icmp;
-
-extern int nf_conntrack_ipv4_compat_init(void);
-extern void nf_conntrack_ipv4_compat_fini(void);
-
-extern void need_ipv4_conntrack(void);
-
-#endif /*_NF_CONNTRACK_IPV4_H*/
diff --git a/ANDROID_3.4.5/include/net/netfilter/ipv4/nf_defrag_ipv4.h b/ANDROID_3.4.5/include/net/netfilter/ipv4/nf_defrag_ipv4.h
deleted file mode 100644
index 6b00ea38..00000000
--- a/ANDROID_3.4.5/include/net/netfilter/ipv4/nf_defrag_ipv4.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef _NF_DEFRAG_IPV4_H
-#define _NF_DEFRAG_IPV4_H
-
-extern void nf_defrag_ipv4_enable(void);
-
-#endif /* _NF_DEFRAG_IPV4_H */
diff --git a/ANDROID_3.4.5/include/net/netfilter/ipv6/nf_conntrack_icmpv6.h b/ANDROID_3.4.5/include/net/netfilter/ipv6/nf_conntrack_icmpv6.h
deleted file mode 100644
index 67edd50a..00000000
--- a/ANDROID_3.4.5/include/net/netfilter/ipv6/nf_conntrack_icmpv6.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * ICMPv6 tracking.
- *
- * 21 Apl 2004: Yasuyuki Kozakai @USAGI <yasuyuki.kozakai@toshiba.co.jp>
- * - separated from nf_conntrack_icmp.h
- *
- * Derived from include/linux/netfiter_ipv4/ip_conntrack_icmp.h
- */
-
-#ifndef _NF_CONNTRACK_ICMPV6_H
-#define _NF_CONNTRACK_ICMPV6_H
-
-#ifndef ICMPV6_NI_QUERY
-#define ICMPV6_NI_QUERY 139
-#endif
-#ifndef ICMPV6_NI_REPLY
-#define ICMPV6_NI_REPLY 140
-#endif
-
-#endif /* _NF_CONNTRACK_ICMPV6_H */
diff --git a/ANDROID_3.4.5/include/net/netfilter/ipv6/nf_conntrack_ipv6.h b/ANDROID_3.4.5/include/net/netfilter/ipv6/nf_conntrack_ipv6.h
deleted file mode 100644
index a4c99368..00000000
--- a/ANDROID_3.4.5/include/net/netfilter/ipv6/nf_conntrack_ipv6.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef _NF_CONNTRACK_IPV6_H
-#define _NF_CONNTRACK_IPV6_H
-
-extern struct nf_conntrack_l3proto nf_conntrack_l3proto_ipv6;
-
-extern struct nf_conntrack_l4proto nf_conntrack_l4proto_tcp6;
-extern struct nf_conntrack_l4proto nf_conntrack_l4proto_udp6;
-extern struct nf_conntrack_l4proto nf_conntrack_l4proto_icmpv6;
-
-#include <linux/sysctl.h>
-extern struct ctl_table nf_ct_ipv6_sysctl_table[];
-
-#endif /* _NF_CONNTRACK_IPV6_H*/
diff --git a/ANDROID_3.4.5/include/net/netfilter/ipv6/nf_defrag_ipv6.h b/ANDROID_3.4.5/include/net/netfilter/ipv6/nf_defrag_ipv6.h
deleted file mode 100644
index fd79c9a1..00000000
--- a/ANDROID_3.4.5/include/net/netfilter/ipv6/nf_defrag_ipv6.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef _NF_DEFRAG_IPV6_H
-#define _NF_DEFRAG_IPV6_H
-
-extern void nf_defrag_ipv6_enable(void);
-
-extern int nf_ct_frag6_init(void);
-extern void nf_ct_frag6_cleanup(void);
-extern struct sk_buff *nf_ct_frag6_gather(struct sk_buff *skb, u32 user);
-extern void nf_ct_frag6_output(unsigned int hooknum, struct sk_buff *skb,
- struct net_device *in,
- struct net_device *out,
- int (*okfn)(struct sk_buff *));
-
-struct inet_frags_ctl;
-
-#endif /* _NF_DEFRAG_IPV6_H */
diff --git a/ANDROID_3.4.5/include/net/netfilter/nf_conntrack.h b/ANDROID_3.4.5/include/net/netfilter/nf_conntrack.h
deleted file mode 100644
index ab86036b..00000000
--- a/ANDROID_3.4.5/include/net/netfilter/nf_conntrack.h
+++ /dev/null
@@ -1,336 +0,0 @@
-/*
- * Connection state tracking for netfilter. This is separated from,
- * but required by, the (future) NAT layer; it can also be used by an iptables
- * extension.
- *
- * 16 Dec 2003: Yasuyuki Kozakai @USAGI <yasuyuki.kozakai@toshiba.co.jp>
- * - generalize L3 protocol dependent part.
- *
- * Derived from include/linux/netfiter_ipv4/ip_conntrack.h
- */
-
-#ifndef _NF_CONNTRACK_H
-#define _NF_CONNTRACK_H
-
-#include <linux/netfilter/nf_conntrack_common.h>
-
-#include <linux/bitops.h>
-#include <linux/compiler.h>
-#include <linux/atomic.h>
-
-#include <linux/netfilter/nf_conntrack_tcp.h>
-#include <linux/netfilter/nf_conntrack_dccp.h>
-#include <linux/netfilter/nf_conntrack_sctp.h>
-#include <linux/netfilter/nf_conntrack_proto_gre.h>
-#include <net/netfilter/ipv6/nf_conntrack_icmpv6.h>
-
-#include <net/netfilter/nf_conntrack_tuple.h>
-
-/* per conntrack: protocol private data */
-union nf_conntrack_proto {
- /* insert conntrack proto private data here */
- struct nf_ct_dccp dccp;
- struct ip_ct_sctp sctp;
- struct ip_ct_tcp tcp;
- struct nf_ct_gre gre;
-};
-
-union nf_conntrack_expect_proto {
- /* insert expect proto private data here */
-};
-
-/* Add protocol helper include file here */
-#include <linux/netfilter/nf_conntrack_ftp.h>
-#include <linux/netfilter/nf_conntrack_pptp.h>
-#include <linux/netfilter/nf_conntrack_h323.h>
-#include <linux/netfilter/nf_conntrack_sane.h>
-#include <linux/netfilter/nf_conntrack_sip.h>
-
-/* per conntrack: application helper private data */
-union nf_conntrack_help {
- /* insert conntrack helper private data (master) here */
-#if defined(CONFIG_NF_CONNTRACK_FTP) || defined(CONFIG_NF_CONNTRACK_FTP_MODULE)
- struct nf_ct_ftp_master ct_ftp_info;
-#endif
-#if defined(CONFIG_NF_CONNTRACK_PPTP) || \
- defined(CONFIG_NF_CONNTRACK_PPTP_MODULE)
- struct nf_ct_pptp_master ct_pptp_info;
-#endif
-#if defined(CONFIG_NF_CONNTRACK_H323) || \
- defined(CONFIG_NF_CONNTRACK_H323_MODULE)
- struct nf_ct_h323_master ct_h323_info;
-#endif
-#if defined(CONFIG_NF_CONNTRACK_SANE) || \
- defined(CONFIG_NF_CONNTRACK_SANE_MODULE)
- struct nf_ct_sane_master ct_sane_info;
-#endif
-#if defined(CONFIG_NF_CONNTRACK_SIP) || defined(CONFIG_NF_CONNTRACK_SIP_MODULE)
- struct nf_ct_sip_master ct_sip_info;
-#endif
-};
-
-#include <linux/types.h>
-#include <linux/skbuff.h>
-#include <linux/timer.h>
-
-#ifdef CONFIG_NETFILTER_DEBUG
-#define NF_CT_ASSERT(x) WARN_ON(!(x))
-#else
-#define NF_CT_ASSERT(x)
-#endif
-
-struct nf_conntrack_helper;
-
-/* Must be kept in sync with the classes defined by helpers */
-#define NF_CT_MAX_EXPECT_CLASSES 4
-
-/* nf_conn feature for connections that have a helper */
-struct nf_conn_help {
- /* Helper. if any */
- struct nf_conntrack_helper __rcu *helper;
-
- union nf_conntrack_help help;
-
- struct hlist_head expectations;
-
- /* Current number of expected connections */
- u8 expecting[NF_CT_MAX_EXPECT_CLASSES];
-};
-
-#include <net/netfilter/ipv4/nf_conntrack_ipv4.h>
-#include <net/netfilter/ipv6/nf_conntrack_ipv6.h>
-
-struct nf_conn {
- /* Usage count in here is 1 for hash table/destruct timer, 1 per skb,
- plus 1 for any connection(s) we are `master' for */
- struct nf_conntrack ct_general;
-
- spinlock_t lock;
-
- /* XXX should I move this to the tail ? - Y.K */
- /* These are my tuples; original and reply */
- struct nf_conntrack_tuple_hash tuplehash[IP_CT_DIR_MAX];
-
- /* Have we seen traffic both ways yet? (bitset) */
- unsigned long status;
-
- /* If we were expected by an expectation, this will be it */
- struct nf_conn *master;
-
- /* Timer function; drops refcnt when it goes off. */
- struct timer_list timeout;
-
-#if defined(CONFIG_NF_CONNTRACK_MARK)
- u_int32_t mark;
-#endif
-
-#ifdef CONFIG_NF_CONNTRACK_SECMARK
- u_int32_t secmark;
-#endif
-
- /* Extensions */
- struct nf_ct_ext *ext;
-#ifdef CONFIG_NET_NS
- struct net *ct_net;
-#endif
-
- /* Storage reserved for other modules, must be the last member */
- union nf_conntrack_proto proto;
-};
-
-static inline struct nf_conn *
-nf_ct_tuplehash_to_ctrack(const struct nf_conntrack_tuple_hash *hash)
-{
- return container_of(hash, struct nf_conn,
- tuplehash[hash->tuple.dst.dir]);
-}
-
-static inline u_int16_t nf_ct_l3num(const struct nf_conn *ct)
-{
- return ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.src.l3num;
-}
-
-static inline u_int8_t nf_ct_protonum(const struct nf_conn *ct)
-{
- return ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.dst.protonum;
-}
-
-#define nf_ct_tuple(ct, dir) (&(ct)->tuplehash[dir].tuple)
-
-/* get master conntrack via master expectation */
-#define master_ct(conntr) (conntr->master)
-
-extern struct net init_net;
-
-static inline struct net *nf_ct_net(const struct nf_conn *ct)
-{
- return read_pnet(&ct->ct_net);
-}
-
-/* Alter reply tuple (maybe alter helper). */
-extern void
-nf_conntrack_alter_reply(struct nf_conn *ct,
- const struct nf_conntrack_tuple *newreply);
-
-/* Is this tuple taken? (ignoring any belonging to the given
- conntrack). */
-extern int
-nf_conntrack_tuple_taken(const struct nf_conntrack_tuple *tuple,
- const struct nf_conn *ignored_conntrack);
-
-/* Return conntrack_info and tuple hash for given skb. */
-static inline struct nf_conn *
-nf_ct_get(const struct sk_buff *skb, enum ip_conntrack_info *ctinfo)
-{
- *ctinfo = skb->nfctinfo;
- return (struct nf_conn *)skb->nfct;
-}
-
-/* decrement reference count on a conntrack */
-static inline void nf_ct_put(struct nf_conn *ct)
-{
- NF_CT_ASSERT(ct);
- nf_conntrack_put(&ct->ct_general);
-}
-
-/* Protocol module loading */
-extern int nf_ct_l3proto_try_module_get(unsigned short l3proto);
-extern void nf_ct_l3proto_module_put(unsigned short l3proto);
-
-/*
- * Allocate a hashtable of hlist_head (if nulls == 0),
- * or hlist_nulls_head (if nulls == 1)
- */
-extern void *nf_ct_alloc_hashtable(unsigned int *sizep, int nulls);
-
-extern void nf_ct_free_hashtable(void *hash, unsigned int size);
-
-extern struct nf_conntrack_tuple_hash *
-__nf_conntrack_find(struct net *net, u16 zone,
- const struct nf_conntrack_tuple *tuple);
-
-extern int nf_conntrack_hash_check_insert(struct nf_conn *ct);
-extern void nf_ct_delete_from_lists(struct nf_conn *ct);
-extern void nf_ct_insert_dying_list(struct nf_conn *ct);
-
-extern void nf_conntrack_flush_report(struct net *net, u32 pid, int report);
-
-extern bool nf_ct_get_tuplepr(const struct sk_buff *skb,
- unsigned int nhoff, u_int16_t l3num,
- struct nf_conntrack_tuple *tuple);
-extern bool nf_ct_invert_tuplepr(struct nf_conntrack_tuple *inverse,
- const struct nf_conntrack_tuple *orig);
-
-extern void __nf_ct_refresh_acct(struct nf_conn *ct,
- enum ip_conntrack_info ctinfo,
- const struct sk_buff *skb,
- unsigned long extra_jiffies,
- int do_acct);
-
-/* Refresh conntrack for this many jiffies and do accounting */
-static inline void nf_ct_refresh_acct(struct nf_conn *ct,
- enum ip_conntrack_info ctinfo,
- const struct sk_buff *skb,
- unsigned long extra_jiffies)
-{
- __nf_ct_refresh_acct(ct, ctinfo, skb, extra_jiffies, 1);
-}
-
-/* Refresh conntrack for this many jiffies */
-static inline void nf_ct_refresh(struct nf_conn *ct,
- const struct sk_buff *skb,
- unsigned long extra_jiffies)
-{
- __nf_ct_refresh_acct(ct, 0, skb, extra_jiffies, 0);
-}
-
-extern bool __nf_ct_kill_acct(struct nf_conn *ct,
- enum ip_conntrack_info ctinfo,
- const struct sk_buff *skb,
- int do_acct);
-
-/* kill conntrack and do accounting */
-static inline bool nf_ct_kill_acct(struct nf_conn *ct,
- enum ip_conntrack_info ctinfo,
- const struct sk_buff *skb)
-{
- return __nf_ct_kill_acct(ct, ctinfo, skb, 1);
-}
-
-/* kill conntrack without accounting */
-static inline bool nf_ct_kill(struct nf_conn *ct)
-{
- return __nf_ct_kill_acct(ct, 0, NULL, 0);
-}
-
-/* These are for NAT. Icky. */
-extern s16 (*nf_ct_nat_offset)(const struct nf_conn *ct,
- enum ip_conntrack_dir dir,
- u32 seq);
-
-/* Fake conntrack entry for untracked connections */
-DECLARE_PER_CPU(struct nf_conn, nf_conntrack_untracked);
-static inline struct nf_conn *nf_ct_untracked_get(void)
-{
- return &__raw_get_cpu_var(nf_conntrack_untracked);
-}
-extern void nf_ct_untracked_status_or(unsigned long bits);
-
-/* Iterate over all conntracks: if iter returns true, it's deleted. */
-extern void
-nf_ct_iterate_cleanup(struct net *net, int (*iter)(struct nf_conn *i, void *data), void *data);
-extern void nf_conntrack_free(struct nf_conn *ct);
-extern struct nf_conn *
-nf_conntrack_alloc(struct net *net, u16 zone,
- const struct nf_conntrack_tuple *orig,
- const struct nf_conntrack_tuple *repl,
- gfp_t gfp);
-
-static inline int nf_ct_is_template(const struct nf_conn *ct)
-{
- return test_bit(IPS_TEMPLATE_BIT, &ct->status);
-}
-
-/* It's confirmed if it is, or has been in the hash table. */
-static inline int nf_ct_is_confirmed(struct nf_conn *ct)
-{
- return test_bit(IPS_CONFIRMED_BIT, &ct->status);
-}
-
-static inline int nf_ct_is_dying(struct nf_conn *ct)
-{
- return test_bit(IPS_DYING_BIT, &ct->status);
-}
-
-static inline int nf_ct_is_untracked(const struct nf_conn *ct)
-{
- return test_bit(IPS_UNTRACKED_BIT, &ct->status);
-}
-
-/* Packet is received from loopback */
-static inline bool nf_is_loopback_packet(const struct sk_buff *skb)
-{
- return skb->dev && skb->skb_iif && skb->dev->flags & IFF_LOOPBACK;
-}
-
-struct kernel_param;
-
-extern int nf_conntrack_set_hashsize(const char *val, struct kernel_param *kp);
-extern unsigned int nf_conntrack_htable_size;
-extern unsigned int nf_conntrack_max;
-extern unsigned int nf_conntrack_hash_rnd;
-void init_nf_conntrack_hash_rnd(void);
-
-#define NF_CT_STAT_INC(net, count) \
- __this_cpu_inc((net)->ct.stat->count)
-#define NF_CT_STAT_INC_ATOMIC(net, count) \
-do { \
- local_bh_disable(); \
- __this_cpu_inc((net)->ct.stat->count); \
- local_bh_enable(); \
-} while (0)
-
-#define MODULE_ALIAS_NFCT_HELPER(helper) \
- MODULE_ALIAS("nfct-helper-" helper)
-
-#endif /* _NF_CONNTRACK_H */
diff --git a/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_acct.h b/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_acct.h
deleted file mode 100644
index 463ae8e1..00000000
--- a/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_acct.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * (C) 2008 Krzysztof Piotr Oledzki <ole@ans.pl>
- *
- * 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.
- */
-
-#ifndef _NF_CONNTRACK_ACCT_H
-#define _NF_CONNTRACK_ACCT_H
-#include <net/net_namespace.h>
-#include <linux/netfilter/nf_conntrack_common.h>
-#include <linux/netfilter/nf_conntrack_tuple_common.h>
-#include <net/netfilter/nf_conntrack.h>
-#include <net/netfilter/nf_conntrack_extend.h>
-
-struct nf_conn_counter {
- atomic64_t packets;
- atomic64_t bytes;
-};
-
-static inline
-struct nf_conn_counter *nf_conn_acct_find(const struct nf_conn *ct)
-{
- return nf_ct_ext_find(ct, NF_CT_EXT_ACCT);
-}
-
-static inline
-struct nf_conn_counter *nf_ct_acct_ext_add(struct nf_conn *ct, gfp_t gfp)
-{
- struct net *net = nf_ct_net(ct);
- struct nf_conn_counter *acct;
-
- if (!net->ct.sysctl_acct)
- return NULL;
-
- acct = nf_ct_ext_add(ct, NF_CT_EXT_ACCT, gfp);
- if (!acct)
- pr_debug("failed to add accounting extension area");
-
-
- return acct;
-};
-
-extern unsigned int
-seq_print_acct(struct seq_file *s, const struct nf_conn *ct, int dir);
-
-/* Check if connection tracking accounting is enabled */
-static inline bool nf_ct_acct_enabled(struct net *net)
-{
- return net->ct.sysctl_acct != 0;
-}
-
-/* Enable/disable connection tracking accounting */
-static inline void nf_ct_set_acct(struct net *net, bool enable)
-{
- net->ct.sysctl_acct = enable;
-}
-
-extern int nf_conntrack_acct_init(struct net *net);
-extern void nf_conntrack_acct_fini(struct net *net);
-
-#endif /* _NF_CONNTRACK_ACCT_H */
diff --git a/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_core.h b/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_core.h
deleted file mode 100644
index aced0851..00000000
--- a/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_core.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * This header is used to share core functionality between the
- * standalone connection tracking module, and the compatibility layer's use
- * of connection tracking.
- *
- * 16 Dec 2003: Yasuyuki Kozakai @USAGI <yasuyuki.kozakai@toshiba.co.jp>
- * - generalize L3 protocol dependent part.
- *
- * Derived from include/linux/netfiter_ipv4/ip_conntrack_core.h
- */
-
-#ifndef _NF_CONNTRACK_CORE_H
-#define _NF_CONNTRACK_CORE_H
-
-#include <linux/netfilter.h>
-#include <net/netfilter/nf_conntrack_l3proto.h>
-#include <net/netfilter/nf_conntrack_l4proto.h>
-#include <net/netfilter/nf_conntrack_ecache.h>
-
-/* This header is used to share core functionality between the
- standalone connection tracking module, and the compatibility layer's use
- of connection tracking. */
-extern unsigned int nf_conntrack_in(struct net *net,
- u_int8_t pf,
- unsigned int hooknum,
- struct sk_buff *skb);
-
-extern int nf_conntrack_init(struct net *net);
-extern void nf_conntrack_cleanup(struct net *net);
-
-extern int nf_conntrack_proto_init(void);
-extern void nf_conntrack_proto_fini(void);
-
-extern bool
-nf_ct_get_tuple(const struct sk_buff *skb,
- unsigned int nhoff,
- unsigned int dataoff,
- u_int16_t l3num,
- u_int8_t protonum,
- struct nf_conntrack_tuple *tuple,
- const struct nf_conntrack_l3proto *l3proto,
- const struct nf_conntrack_l4proto *l4proto);
-
-extern bool
-nf_ct_invert_tuple(struct nf_conntrack_tuple *inverse,
- const struct nf_conntrack_tuple *orig,
- const struct nf_conntrack_l3proto *l3proto,
- const struct nf_conntrack_l4proto *l4proto);
-
-/* Find a connection corresponding to a tuple. */
-extern struct nf_conntrack_tuple_hash *
-nf_conntrack_find_get(struct net *net, u16 zone,
- const struct nf_conntrack_tuple *tuple);
-
-extern int __nf_conntrack_confirm(struct sk_buff *skb);
-
-/* Confirm a connection: returns NF_DROP if packet must be dropped. */
-static inline int nf_conntrack_confirm(struct sk_buff *skb)
-{
- struct nf_conn *ct = (struct nf_conn *)skb->nfct;
- int ret = NF_ACCEPT;
-
- if (ct && !nf_ct_is_untracked(ct)) {
- if (!nf_ct_is_confirmed(ct))
- ret = __nf_conntrack_confirm(skb);
- if (likely(ret == NF_ACCEPT))
- nf_ct_deliver_cached_events(ct);
- }
- return ret;
-}
-
-int
-print_tuple(struct seq_file *s, const struct nf_conntrack_tuple *tuple,
- const struct nf_conntrack_l3proto *l3proto,
- const struct nf_conntrack_l4proto *proto);
-
-extern spinlock_t nf_conntrack_lock ;
-
-#endif /* _NF_CONNTRACK_CORE_H */
diff --git a/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_ecache.h b/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_ecache.h
deleted file mode 100644
index a88fb693..00000000
--- a/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_ecache.h
+++ /dev/null
@@ -1,245 +0,0 @@
-/*
- * connection tracking event cache.
- */
-
-#ifndef _NF_CONNTRACK_ECACHE_H
-#define _NF_CONNTRACK_ECACHE_H
-#include <net/netfilter/nf_conntrack.h>
-
-#include <net/net_namespace.h>
-#include <net/netfilter/nf_conntrack_expect.h>
-#include <linux/netfilter/nf_conntrack_common.h>
-#include <linux/netfilter/nf_conntrack_tuple_common.h>
-#include <net/netfilter/nf_conntrack_extend.h>
-
-struct nf_conntrack_ecache {
- unsigned long cache; /* bitops want long */
- unsigned long missed; /* missed events */
- u16 ctmask; /* bitmask of ct events to be delivered */
- u16 expmask; /* bitmask of expect events to be delivered */
- u32 pid; /* netlink pid of destroyer */
-};
-
-static inline struct nf_conntrack_ecache *
-nf_ct_ecache_find(const struct nf_conn *ct)
-{
-#ifdef CONFIG_NF_CONNTRACK_EVENTS
- return nf_ct_ext_find(ct, NF_CT_EXT_ECACHE);
-#else
- return NULL;
-#endif
-}
-
-static inline struct nf_conntrack_ecache *
-nf_ct_ecache_ext_add(struct nf_conn *ct, u16 ctmask, u16 expmask, gfp_t gfp)
-{
-#ifdef CONFIG_NF_CONNTRACK_EVENTS
- struct net *net = nf_ct_net(ct);
- struct nf_conntrack_ecache *e;
-
- if (!ctmask && !expmask && net->ct.sysctl_events) {
- ctmask = ~0;
- expmask = ~0;
- }
- if (!ctmask && !expmask)
- return NULL;
-
- e = nf_ct_ext_add(ct, NF_CT_EXT_ECACHE, gfp);
- if (e) {
- e->ctmask = ctmask;
- e->expmask = expmask;
- }
- return e;
-#else
- return NULL;
-#endif
-};
-
-#ifdef CONFIG_NF_CONNTRACK_EVENTS
-/* This structure is passed to event handler */
-struct nf_ct_event {
- struct nf_conn *ct;
- u32 pid;
- int report;
-};
-
-struct nf_ct_event_notifier {
- int (*fcn)(unsigned int events, struct nf_ct_event *item);
-};
-
-extern int nf_conntrack_register_notifier(struct net *net, struct nf_ct_event_notifier *nb);
-extern void nf_conntrack_unregister_notifier(struct net *net, struct nf_ct_event_notifier *nb);
-
-extern void nf_ct_deliver_cached_events(struct nf_conn *ct);
-
-static inline void
-nf_conntrack_event_cache(enum ip_conntrack_events event, struct nf_conn *ct)
-{
- struct net *net = nf_ct_net(ct);
- struct nf_conntrack_ecache *e;
-
- if (net->ct.nf_conntrack_event_cb == NULL)
- return;
-
- e = nf_ct_ecache_find(ct);
- if (e == NULL)
- return;
-
- set_bit(event, &e->cache);
-}
-
-static inline int
-nf_conntrack_eventmask_report(unsigned int eventmask,
- struct nf_conn *ct,
- u32 pid,
- int report)
-{
- int ret = 0;
- struct net *net = nf_ct_net(ct);
- struct nf_ct_event_notifier *notify;
- struct nf_conntrack_ecache *e;
-
- rcu_read_lock();
- notify = rcu_dereference(net->ct.nf_conntrack_event_cb);
- if (notify == NULL)
- goto out_unlock;
-
- e = nf_ct_ecache_find(ct);
- if (e == NULL)
- goto out_unlock;
-
- if (nf_ct_is_confirmed(ct) && !nf_ct_is_dying(ct)) {
- struct nf_ct_event item = {
- .ct = ct,
- .pid = e->pid ? e->pid : pid,
- .report = report
- };
- /* This is a resent of a destroy event? If so, skip missed */
- unsigned long missed = e->pid ? 0 : e->missed;
-
- if (!((eventmask | missed) & e->ctmask))
- goto out_unlock;
-
- ret = notify->fcn(eventmask | missed, &item);
- if (unlikely(ret < 0 || missed)) {
- spin_lock_bh(&ct->lock);
- if (ret < 0) {
- /* This is a destroy event that has been
- * triggered by a process, we store the PID
- * to include it in the retransmission. */
- if (eventmask & (1 << IPCT_DESTROY) &&
- e->pid == 0 && pid != 0)
- e->pid = pid;
- else
- e->missed |= eventmask;
- } else
- e->missed &= ~missed;
- spin_unlock_bh(&ct->lock);
- }
- }
-out_unlock:
- rcu_read_unlock();
- return ret;
-}
-
-static inline int
-nf_conntrack_event_report(enum ip_conntrack_events event, struct nf_conn *ct,
- u32 pid, int report)
-{
- return nf_conntrack_eventmask_report(1 << event, ct, pid, report);
-}
-
-static inline int
-nf_conntrack_event(enum ip_conntrack_events event, struct nf_conn *ct)
-{
- return nf_conntrack_eventmask_report(1 << event, ct, 0, 0);
-}
-
-struct nf_exp_event {
- struct nf_conntrack_expect *exp;
- u32 pid;
- int report;
-};
-
-struct nf_exp_event_notifier {
- int (*fcn)(unsigned int events, struct nf_exp_event *item);
-};
-
-extern int nf_ct_expect_register_notifier(struct net *net, struct nf_exp_event_notifier *nb);
-extern void nf_ct_expect_unregister_notifier(struct net *net, struct nf_exp_event_notifier *nb);
-
-static inline void
-nf_ct_expect_event_report(enum ip_conntrack_expect_events event,
- struct nf_conntrack_expect *exp,
- u32 pid,
- int report)
-{
- struct net *net = nf_ct_exp_net(exp);
- struct nf_exp_event_notifier *notify;
- struct nf_conntrack_ecache *e;
-
- rcu_read_lock();
- notify = rcu_dereference(net->ct.nf_expect_event_cb);
- if (notify == NULL)
- goto out_unlock;
-
- e = nf_ct_ecache_find(exp->master);
- if (e == NULL)
- goto out_unlock;
-
- if (e->expmask & (1 << event)) {
- struct nf_exp_event item = {
- .exp = exp,
- .pid = pid,
- .report = report
- };
- notify->fcn(1 << event, &item);
- }
-out_unlock:
- rcu_read_unlock();
-}
-
-static inline void
-nf_ct_expect_event(enum ip_conntrack_expect_events event,
- struct nf_conntrack_expect *exp)
-{
- nf_ct_expect_event_report(event, exp, 0, 0);
-}
-
-extern int nf_conntrack_ecache_init(struct net *net);
-extern void nf_conntrack_ecache_fini(struct net *net);
-
-#else /* CONFIG_NF_CONNTRACK_EVENTS */
-
-static inline void nf_conntrack_event_cache(enum ip_conntrack_events event,
- struct nf_conn *ct) {}
-static inline int nf_conntrack_eventmask_report(unsigned int eventmask,
- struct nf_conn *ct,
- u32 pid,
- int report) { return 0; }
-static inline int nf_conntrack_event(enum ip_conntrack_events event,
- struct nf_conn *ct) { return 0; }
-static inline int nf_conntrack_event_report(enum ip_conntrack_events event,
- struct nf_conn *ct,
- u32 pid,
- int report) { return 0; }
-static inline void nf_ct_deliver_cached_events(const struct nf_conn *ct) {}
-static inline void nf_ct_expect_event(enum ip_conntrack_expect_events event,
- struct nf_conntrack_expect *exp) {}
-static inline void nf_ct_expect_event_report(enum ip_conntrack_expect_events e,
- struct nf_conntrack_expect *exp,
- u32 pid,
- int report) {}
-
-static inline int nf_conntrack_ecache_init(struct net *net)
-{
- return 0;
-}
-
-static inline void nf_conntrack_ecache_fini(struct net *net)
-{
-}
-#endif /* CONFIG_NF_CONNTRACK_EVENTS */
-
-#endif /*_NF_CONNTRACK_ECACHE_H*/
-
diff --git a/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_expect.h b/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_expect.h
deleted file mode 100644
index 4619caad..00000000
--- a/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_expect.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * connection tracking expectations.
- */
-
-#ifndef _NF_CONNTRACK_EXPECT_H
-#define _NF_CONNTRACK_EXPECT_H
-#include <net/netfilter/nf_conntrack.h>
-
-extern unsigned int nf_ct_expect_hsize;
-extern unsigned int nf_ct_expect_max;
-
-struct nf_conntrack_expect {
- /* Conntrack expectation list member */
- struct hlist_node lnode;
-
- /* Hash member */
- struct hlist_node hnode;
-
- /* We expect this tuple, with the following mask */
- struct nf_conntrack_tuple tuple;
- struct nf_conntrack_tuple_mask mask;
-
- /* Function to call after setup and insertion */
- void (*expectfn)(struct nf_conn *new,
- struct nf_conntrack_expect *this);
-
- /* Helper to assign to new connection */
- struct nf_conntrack_helper *helper;
-
- /* The conntrack of the master connection */
- struct nf_conn *master;
-
- /* Timer function; deletes the expectation. */
- struct timer_list timeout;
-
- /* Usage count. */
- atomic_t use;
-
- /* Flags */
- unsigned int flags;
-
- /* Expectation class */
- unsigned int class;
-
-#ifdef CONFIG_NF_NAT_NEEDED
- __be32 saved_ip;
- /* This is the original per-proto part, used to map the
- * expected connection the way the recipient expects. */
- union nf_conntrack_man_proto saved_proto;
- /* Direction relative to the master connection. */
- enum ip_conntrack_dir dir;
-#endif
-
- struct rcu_head rcu;
-};
-
-static inline struct net *nf_ct_exp_net(struct nf_conntrack_expect *exp)
-{
- return nf_ct_net(exp->master);
-}
-
-struct nf_conntrack_expect_policy {
- unsigned int max_expected;
- unsigned int timeout;
- const char *name;
-};
-
-#define NF_CT_EXPECT_CLASS_DEFAULT 0
-
-int nf_conntrack_expect_init(struct net *net);
-void nf_conntrack_expect_fini(struct net *net);
-
-struct nf_conntrack_expect *
-__nf_ct_expect_find(struct net *net, u16 zone,
- const struct nf_conntrack_tuple *tuple);
-
-struct nf_conntrack_expect *
-nf_ct_expect_find_get(struct net *net, u16 zone,
- const struct nf_conntrack_tuple *tuple);
-
-struct nf_conntrack_expect *
-nf_ct_find_expectation(struct net *net, u16 zone,
- const struct nf_conntrack_tuple *tuple);
-
-void nf_ct_unlink_expect_report(struct nf_conntrack_expect *exp,
- u32 pid, int report);
-static inline void nf_ct_unlink_expect(struct nf_conntrack_expect *exp)
-{
- nf_ct_unlink_expect_report(exp, 0, 0);
-}
-
-void nf_ct_remove_expectations(struct nf_conn *ct);
-void nf_ct_unexpect_related(struct nf_conntrack_expect *exp);
-
-/* Allocate space for an expectation: this is mandatory before calling
- nf_ct_expect_related. You will have to call put afterwards. */
-struct nf_conntrack_expect *nf_ct_expect_alloc(struct nf_conn *me);
-void nf_ct_expect_init(struct nf_conntrack_expect *, unsigned int, u_int8_t,
- const union nf_inet_addr *,
- const union nf_inet_addr *,
- u_int8_t, const __be16 *, const __be16 *);
-void nf_ct_expect_put(struct nf_conntrack_expect *exp);
-int nf_ct_expect_related_report(struct nf_conntrack_expect *expect,
- u32 pid, int report);
-static inline int nf_ct_expect_related(struct nf_conntrack_expect *expect)
-{
- return nf_ct_expect_related_report(expect, 0, 0);
-}
-
-#endif /*_NF_CONNTRACK_EXPECT_H*/
-
diff --git a/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_extend.h b/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_extend.h
deleted file mode 100644
index 96755c37..00000000
--- a/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_extend.h
+++ /dev/null
@@ -1,110 +0,0 @@
-#ifndef _NF_CONNTRACK_EXTEND_H
-#define _NF_CONNTRACK_EXTEND_H
-
-#include <linux/slab.h>
-
-#include <net/netfilter/nf_conntrack.h>
-
-enum nf_ct_ext_id {
- NF_CT_EXT_HELPER,
-#if defined(CONFIG_NF_NAT) || defined(CONFIG_NF_NAT_MODULE)
- NF_CT_EXT_NAT,
-#endif
- NF_CT_EXT_ACCT,
-#ifdef CONFIG_NF_CONNTRACK_EVENTS
- NF_CT_EXT_ECACHE,
-#endif
-#ifdef CONFIG_NF_CONNTRACK_ZONES
- NF_CT_EXT_ZONE,
-#endif
-#ifdef CONFIG_NF_CONNTRACK_TIMESTAMP
- NF_CT_EXT_TSTAMP,
-#endif
-#ifdef CONFIG_NF_CONNTRACK_TIMEOUT
- NF_CT_EXT_TIMEOUT,
-#endif
- NF_CT_EXT_NUM,
-};
-
-#define NF_CT_EXT_HELPER_TYPE struct nf_conn_help
-#define NF_CT_EXT_NAT_TYPE struct nf_conn_nat
-#define NF_CT_EXT_ACCT_TYPE struct nf_conn_counter
-#define NF_CT_EXT_ECACHE_TYPE struct nf_conntrack_ecache
-#define NF_CT_EXT_ZONE_TYPE struct nf_conntrack_zone
-#define NF_CT_EXT_TSTAMP_TYPE struct nf_conn_tstamp
-#define NF_CT_EXT_TIMEOUT_TYPE struct nf_conn_timeout
-
-/* Extensions: optional stuff which isn't permanently in struct. */
-struct nf_ct_ext {
- struct rcu_head rcu;
- u8 offset[NF_CT_EXT_NUM];
- u8 len;
- char data[0];
-};
-
-static inline bool __nf_ct_ext_exist(const struct nf_ct_ext *ext, u8 id)
-{
- return !!ext->offset[id];
-}
-
-static inline bool nf_ct_ext_exist(const struct nf_conn *ct, u8 id)
-{
- return (ct->ext && __nf_ct_ext_exist(ct->ext, id));
-}
-
-static inline void *__nf_ct_ext_find(const struct nf_conn *ct, u8 id)
-{
- if (!nf_ct_ext_exist(ct, id))
- return NULL;
-
- return (void *)ct->ext + ct->ext->offset[id];
-}
-#define nf_ct_ext_find(ext, id) \
- ((id##_TYPE *)__nf_ct_ext_find((ext), (id)))
-
-/* Destroy all relationships */
-extern void __nf_ct_ext_destroy(struct nf_conn *ct);
-static inline void nf_ct_ext_destroy(struct nf_conn *ct)
-{
- if (ct->ext)
- __nf_ct_ext_destroy(ct);
-}
-
-/* Free operation. If you want to free a object referred from private area,
- * please implement __nf_ct_ext_free() and call it.
- */
-static inline void nf_ct_ext_free(struct nf_conn *ct)
-{
- if (ct->ext)
- kfree(ct->ext);
-}
-
-/* Add this type, returns pointer to data or NULL. */
-void *
-__nf_ct_ext_add(struct nf_conn *ct, enum nf_ct_ext_id id, gfp_t gfp);
-#define nf_ct_ext_add(ct, id, gfp) \
- ((id##_TYPE *)__nf_ct_ext_add((ct), (id), (gfp)))
-
-#define NF_CT_EXT_F_PREALLOC 0x0001
-
-struct nf_ct_ext_type {
- /* Destroys relationships (can be NULL). */
- void (*destroy)(struct nf_conn *ct);
- /* Called when realloacted (can be NULL).
- Contents has already been moved. */
- void (*move)(void *new, void *old);
-
- enum nf_ct_ext_id id;
-
- unsigned int flags;
-
- /* Length and min alignment. */
- u8 len;
- u8 align;
- /* initial size of nf_ct_ext. */
- u8 alloc_size;
-};
-
-int nf_ct_extend_register(struct nf_ct_ext_type *type);
-void nf_ct_extend_unregister(struct nf_ct_ext_type *type);
-#endif /* _NF_CONNTRACK_EXTEND_H */
diff --git a/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_helper.h b/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_helper.h
deleted file mode 100644
index 5767dc24..00000000
--- a/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_helper.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * connection tracking helpers.
- *
- * 16 Dec 2003: Yasuyuki Kozakai @USAGI <yasuyuki.kozakai@toshiba.co.jp>
- * - generalize L3 protocol dependent part.
- *
- * Derived from include/linux/netfiter_ipv4/ip_conntrack_helper.h
- */
-
-#ifndef _NF_CONNTRACK_HELPER_H
-#define _NF_CONNTRACK_HELPER_H
-#include <net/netfilter/nf_conntrack.h>
-#include <net/netfilter/nf_conntrack_extend.h>
-
-struct module;
-
-#define NF_CT_HELPER_NAME_LEN 16
-
-struct nf_conntrack_helper {
- struct hlist_node hnode; /* Internal use. */
-
- const char *name; /* name of the module */
- struct module *me; /* pointer to self */
- const struct nf_conntrack_expect_policy *expect_policy;
-
- /* Tuple of things we will help (compared against server response) */
- struct nf_conntrack_tuple tuple;
-
- /* Function to call when data passes; return verdict, or -1 to
- invalidate. */
- int (*help)(struct sk_buff *skb,
- unsigned int protoff,
- struct nf_conn *ct,
- enum ip_conntrack_info conntrackinfo);
-
- void (*destroy)(struct nf_conn *ct);
-
- int (*to_nlattr)(struct sk_buff *skb, const struct nf_conn *ct);
- unsigned int expect_class_max;
-};
-
-extern struct nf_conntrack_helper *
-__nf_conntrack_helper_find(const char *name, u16 l3num, u8 protonum);
-
-extern struct nf_conntrack_helper *
-nf_conntrack_helper_try_module_get(const char *name, u16 l3num, u8 protonum);
-
-extern int nf_conntrack_helper_register(struct nf_conntrack_helper *);
-extern void nf_conntrack_helper_unregister(struct nf_conntrack_helper *);
-
-extern struct nf_conn_help *nf_ct_helper_ext_add(struct nf_conn *ct, gfp_t gfp);
-
-extern int __nf_ct_try_assign_helper(struct nf_conn *ct, struct nf_conn *tmpl,
- gfp_t flags);
-
-extern void nf_ct_helper_destroy(struct nf_conn *ct);
-
-static inline struct nf_conn_help *nfct_help(const struct nf_conn *ct)
-{
- return nf_ct_ext_find(ct, NF_CT_EXT_HELPER);
-}
-
-extern int nf_conntrack_helper_init(void);
-extern void nf_conntrack_helper_fini(void);
-
-extern int nf_conntrack_broadcast_help(struct sk_buff *skb,
- unsigned int protoff,
- struct nf_conn *ct,
- enum ip_conntrack_info ctinfo,
- unsigned int timeout);
-
-struct nf_ct_helper_expectfn {
- struct list_head head;
- const char *name;
- void (*expectfn)(struct nf_conn *ct, struct nf_conntrack_expect *exp);
-};
-
-void nf_ct_helper_expectfn_register(struct nf_ct_helper_expectfn *n);
-void nf_ct_helper_expectfn_unregister(struct nf_ct_helper_expectfn *n);
-struct nf_ct_helper_expectfn *
-nf_ct_helper_expectfn_find_by_name(const char *name);
-struct nf_ct_helper_expectfn *
-nf_ct_helper_expectfn_find_by_symbol(const void *symbol);
-
-#endif /*_NF_CONNTRACK_HELPER_H*/
diff --git a/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_l3proto.h b/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_l3proto.h
deleted file mode 100644
index e8010f44..00000000
--- a/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_l3proto.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright (C)2003,2004 USAGI/WIDE Project
- *
- * Header for use in defining a given L3 protocol for connection tracking.
- *
- * Author:
- * Yasuyuki Kozakai @USAGI <yasuyuki.kozakai@toshiba.co.jp>
- *
- * Derived from include/netfilter_ipv4/ip_conntrack_protocol.h
- */
-
-#ifndef _NF_CONNTRACK_L3PROTO_H
-#define _NF_CONNTRACK_L3PROTO_H
-#include <linux/netlink.h>
-#include <net/netlink.h>
-#include <linux/seq_file.h>
-#include <net/netfilter/nf_conntrack.h>
-
-struct nf_conntrack_l3proto {
- /* L3 Protocol Family number. ex) PF_INET */
- u_int16_t l3proto;
-
- /* Protocol name */
- const char *name;
-
- /*
- * Try to fill in the third arg: nhoff is offset of l3 proto
- * hdr. Return true if possible.
- */
- bool (*pkt_to_tuple)(const struct sk_buff *skb, unsigned int nhoff,
- struct nf_conntrack_tuple *tuple);
-
- /*
- * Invert the per-proto part of the tuple: ie. turn xmit into reply.
- * Some packets can't be inverted: return 0 in that case.
- */
- bool (*invert_tuple)(struct nf_conntrack_tuple *inverse,
- const struct nf_conntrack_tuple *orig);
-
- /* Print out the per-protocol part of the tuple. */
- int (*print_tuple)(struct seq_file *s,
- const struct nf_conntrack_tuple *);
-
- /*
- * Called before tracking.
- * *dataoff: offset of protocol header (TCP, UDP,...) in skb
- * *protonum: protocol number
- */
- int (*get_l4proto)(const struct sk_buff *skb, unsigned int nhoff,
- unsigned int *dataoff, u_int8_t *protonum);
-
- int (*tuple_to_nlattr)(struct sk_buff *skb,
- const struct nf_conntrack_tuple *t);
-
- /*
- * Calculate size of tuple nlattr
- */
- int (*nlattr_tuple_size)(void);
-
- int (*nlattr_to_tuple)(struct nlattr *tb[],
- struct nf_conntrack_tuple *t);
- const struct nla_policy *nla_policy;
-
- size_t nla_size;
-
-#ifdef CONFIG_SYSCTL
- struct ctl_table_header *ctl_table_header;
- struct ctl_path *ctl_table_path;
- struct ctl_table *ctl_table;
-#endif /* CONFIG_SYSCTL */
-
- /* Module (if any) which this is connected to. */
- struct module *me;
-};
-
-extern struct nf_conntrack_l3proto __rcu *nf_ct_l3protos[AF_MAX];
-
-/* Protocol registration. */
-extern int nf_conntrack_l3proto_register(struct nf_conntrack_l3proto *proto);
-extern void nf_conntrack_l3proto_unregister(struct nf_conntrack_l3proto *proto);
-extern struct nf_conntrack_l3proto *nf_ct_l3proto_find_get(u_int16_t l3proto);
-extern void nf_ct_l3proto_put(struct nf_conntrack_l3proto *p);
-
-/* Existing built-in protocols */
-extern struct nf_conntrack_l3proto nf_conntrack_l3proto_generic;
-
-static inline struct nf_conntrack_l3proto *
-__nf_ct_l3proto_find(u_int16_t l3proto)
-{
- if (unlikely(l3proto >= AF_MAX))
- return &nf_conntrack_l3proto_generic;
- return rcu_dereference(nf_ct_l3protos[l3proto]);
-}
-
-#endif /*_NF_CONNTRACK_L3PROTO_H*/
diff --git a/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_l4proto.h b/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_l4proto.h
deleted file mode 100644
index 3b572bb2..00000000
--- a/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_l4proto.h
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Header for use in defining a given L4 protocol for connection tracking.
- *
- * 16 Dec 2003: Yasuyuki Kozakai @USAGI <yasuyuki.kozakai@toshiba.co.jp>
- * - generalized L3 protocol dependent part.
- *
- * Derived from include/linux/netfiter_ipv4/ip_conntrack_protcol.h
- */
-
-#ifndef _NF_CONNTRACK_L4PROTO_H
-#define _NF_CONNTRACK_L4PROTO_H
-#include <linux/netlink.h>
-#include <net/netlink.h>
-#include <net/netfilter/nf_conntrack.h>
-
-struct seq_file;
-
-struct nf_conntrack_l4proto {
- /* L3 Protocol number. */
- u_int16_t l3proto;
-
- /* L4 Protocol number. */
- u_int8_t l4proto;
-
- /* Try to fill in the third arg: dataoff is offset past network protocol
- hdr. Return true if possible. */
- bool (*pkt_to_tuple)(const struct sk_buff *skb, unsigned int dataoff,
- struct nf_conntrack_tuple *tuple);
-
- /* Invert the per-proto part of the tuple: ie. turn xmit into reply.
- * Some packets can't be inverted: return 0 in that case.
- */
- bool (*invert_tuple)(struct nf_conntrack_tuple *inverse,
- const struct nf_conntrack_tuple *orig);
-
- /* Returns verdict for packet, or -1 for invalid. */
- int (*packet)(struct nf_conn *ct,
- const struct sk_buff *skb,
- unsigned int dataoff,
- enum ip_conntrack_info ctinfo,
- u_int8_t pf,
- unsigned int hooknum,
- unsigned int *timeouts);
-
- /* Called when a new connection for this protocol found;
- * returns TRUE if it's OK. If so, packet() called next. */
- bool (*new)(struct nf_conn *ct, const struct sk_buff *skb,
- unsigned int dataoff, unsigned int *timeouts);
-
- /* Called when a conntrack entry is destroyed */
- void (*destroy)(struct nf_conn *ct);
-
- int (*error)(struct net *net, struct nf_conn *tmpl, struct sk_buff *skb,
- unsigned int dataoff, enum ip_conntrack_info *ctinfo,
- u_int8_t pf, unsigned int hooknum);
-
- /* Print out the per-protocol part of the tuple. Return like seq_* */
- int (*print_tuple)(struct seq_file *s,
- const struct nf_conntrack_tuple *);
-
- /* Print out the private part of the conntrack. */
- int (*print_conntrack)(struct seq_file *s, struct nf_conn *);
-
- /* Return the array of timeouts for this protocol. */
- unsigned int *(*get_timeouts)(struct net *net);
-
- /* convert protoinfo to nfnetink attributes */
- int (*to_nlattr)(struct sk_buff *skb, struct nlattr *nla,
- struct nf_conn *ct);
- /* Calculate protoinfo nlattr size */
- int (*nlattr_size)(void);
-
- /* convert nfnetlink attributes to protoinfo */
- int (*from_nlattr)(struct nlattr *tb[], struct nf_conn *ct);
-
- int (*tuple_to_nlattr)(struct sk_buff *skb,
- const struct nf_conntrack_tuple *t);
- /* Calculate tuple nlattr size */
- int (*nlattr_tuple_size)(void);
- int (*nlattr_to_tuple)(struct nlattr *tb[],
- struct nf_conntrack_tuple *t);
- const struct nla_policy *nla_policy;
-
- size_t nla_size;
-
-#if IS_ENABLED(CONFIG_NF_CT_NETLINK_TIMEOUT)
- struct {
- size_t obj_size;
- int (*nlattr_to_obj)(struct nlattr *tb[], void *data);
- int (*obj_to_nlattr)(struct sk_buff *skb, const void *data);
-
- unsigned int nlattr_max;
- const struct nla_policy *nla_policy;
- } ctnl_timeout;
-#endif
-
-#ifdef CONFIG_SYSCTL
- struct ctl_table_header **ctl_table_header;
- struct ctl_table *ctl_table;
- unsigned int *ctl_table_users;
-#ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT
- struct ctl_table_header *ctl_compat_table_header;
- struct ctl_table *ctl_compat_table;
-#endif
-#endif
- /* Protocol name */
- const char *name;
-
- /* Module (if any) which this is connected to. */
- struct module *me;
-};
-
-/* Existing built-in generic protocol */
-extern struct nf_conntrack_l4proto nf_conntrack_l4proto_generic;
-
-#define MAX_NF_CT_PROTO 256
-
-extern struct nf_conntrack_l4proto *
-__nf_ct_l4proto_find(u_int16_t l3proto, u_int8_t l4proto);
-
-extern struct nf_conntrack_l4proto *
-nf_ct_l4proto_find_get(u_int16_t l3proto, u_int8_t l4proto);
-extern void nf_ct_l4proto_put(struct nf_conntrack_l4proto *p);
-
-/* Protocol registration. */
-extern int nf_conntrack_l4proto_register(struct nf_conntrack_l4proto *proto);
-extern void nf_conntrack_l4proto_unregister(struct nf_conntrack_l4proto *proto);
-
-/* Generic netlink helpers */
-extern int nf_ct_port_tuple_to_nlattr(struct sk_buff *skb,
- const struct nf_conntrack_tuple *tuple);
-extern int nf_ct_port_nlattr_to_tuple(struct nlattr *tb[],
- struct nf_conntrack_tuple *t);
-extern int nf_ct_port_nlattr_tuple_size(void);
-extern const struct nla_policy nf_ct_port_nla_policy[];
-
-#ifdef CONFIG_SYSCTL
-#ifdef DEBUG_INVALID_PACKETS
-#define LOG_INVALID(net, proto) \
- ((net)->ct.sysctl_log_invalid == (proto) || \
- (net)->ct.sysctl_log_invalid == IPPROTO_RAW)
-#else
-#define LOG_INVALID(net, proto) \
- (((net)->ct.sysctl_log_invalid == (proto) || \
- (net)->ct.sysctl_log_invalid == IPPROTO_RAW) \
- && net_ratelimit())
-#endif
-#else
-static inline int LOG_INVALID(struct net *net, int proto) { return 0; }
-#endif /* CONFIG_SYSCTL */
-
-#endif /*_NF_CONNTRACK_PROTOCOL_H*/
diff --git a/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_timeout.h b/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_timeout.h
deleted file mode 100644
index 34ec89f8..00000000
--- a/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_timeout.h
+++ /dev/null
@@ -1,78 +0,0 @@
-#ifndef _NF_CONNTRACK_TIMEOUT_H
-#define _NF_CONNTRACK_TIMEOUT_H
-
-#include <net/net_namespace.h>
-#include <linux/netfilter/nf_conntrack_common.h>
-#include <linux/netfilter/nf_conntrack_tuple_common.h>
-#include <net/netfilter/nf_conntrack.h>
-#include <net/netfilter/nf_conntrack_extend.h>
-
-#define CTNL_TIMEOUT_NAME_MAX 32
-
-struct ctnl_timeout {
- struct list_head head;
- struct rcu_head rcu_head;
- atomic_t refcnt;
- char name[CTNL_TIMEOUT_NAME_MAX];
- __u16 l3num;
- struct nf_conntrack_l4proto *l4proto;
- char data[0];
-};
-
-struct nf_conn_timeout {
- struct ctnl_timeout *timeout;
-};
-
-#define NF_CT_TIMEOUT_EXT_DATA(__t) (unsigned int *) &((__t)->timeout->data)
-
-static inline
-struct nf_conn_timeout *nf_ct_timeout_find(const struct nf_conn *ct)
-{
-#ifdef CONFIG_NF_CONNTRACK_TIMEOUT
- return nf_ct_ext_find(ct, NF_CT_EXT_TIMEOUT);
-#else
- return NULL;
-#endif
-}
-
-static inline
-struct nf_conn_timeout *nf_ct_timeout_ext_add(struct nf_conn *ct,
- struct ctnl_timeout *timeout,
- gfp_t gfp)
-{
-#ifdef CONFIG_NF_CONNTRACK_TIMEOUT
- struct nf_conn_timeout *timeout_ext;
-
- timeout_ext = nf_ct_ext_add(ct, NF_CT_EXT_TIMEOUT, gfp);
- if (timeout_ext == NULL)
- return NULL;
-
- timeout_ext->timeout = timeout;
-
- return timeout_ext;
-#else
- return NULL;
-#endif
-};
-
-#ifdef CONFIG_NF_CONNTRACK_TIMEOUT
-extern int nf_conntrack_timeout_init(struct net *net);
-extern void nf_conntrack_timeout_fini(struct net *net);
-#else
-static inline int nf_conntrack_timeout_init(struct net *net)
-{
- return 0;
-}
-
-static inline void nf_conntrack_timeout_fini(struct net *net)
-{
- return;
-}
-#endif /* CONFIG_NF_CONNTRACK_TIMEOUT */
-
-#ifdef CONFIG_NF_CONNTRACK_TIMEOUT
-extern struct ctnl_timeout *(*nf_ct_timeout_find_get_hook)(const char *name);
-extern void (*nf_ct_timeout_put_hook)(struct ctnl_timeout *timeout);
-#endif
-
-#endif /* _NF_CONNTRACK_TIMEOUT_H */
diff --git a/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_timestamp.h b/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_timestamp.h
deleted file mode 100644
index fc9c82b1..00000000
--- a/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_timestamp.h
+++ /dev/null
@@ -1,65 +0,0 @@
-#ifndef _NF_CONNTRACK_TSTAMP_H
-#define _NF_CONNTRACK_TSTAMP_H
-
-#include <net/net_namespace.h>
-#include <linux/netfilter/nf_conntrack_common.h>
-#include <linux/netfilter/nf_conntrack_tuple_common.h>
-#include <net/netfilter/nf_conntrack.h>
-#include <net/netfilter/nf_conntrack_extend.h>
-
-struct nf_conn_tstamp {
- u_int64_t start;
- u_int64_t stop;
-};
-
-static inline
-struct nf_conn_tstamp *nf_conn_tstamp_find(const struct nf_conn *ct)
-{
-#ifdef CONFIG_NF_CONNTRACK_TIMESTAMP
- return nf_ct_ext_find(ct, NF_CT_EXT_TSTAMP);
-#else
- return NULL;
-#endif
-}
-
-static inline
-struct nf_conn_tstamp *nf_ct_tstamp_ext_add(struct nf_conn *ct, gfp_t gfp)
-{
-#ifdef CONFIG_NF_CONNTRACK_TIMESTAMP
- struct net *net = nf_ct_net(ct);
-
- if (!net->ct.sysctl_tstamp)
- return NULL;
-
- return nf_ct_ext_add(ct, NF_CT_EXT_TSTAMP, gfp);
-#else
- return NULL;
-#endif
-};
-
-static inline bool nf_ct_tstamp_enabled(struct net *net)
-{
- return net->ct.sysctl_tstamp != 0;
-}
-
-static inline void nf_ct_set_tstamp(struct net *net, bool enable)
-{
- net->ct.sysctl_tstamp = enable;
-}
-
-#ifdef CONFIG_NF_CONNTRACK_TIMESTAMP
-extern int nf_conntrack_tstamp_init(struct net *net);
-extern void nf_conntrack_tstamp_fini(struct net *net);
-#else
-static inline int nf_conntrack_tstamp_init(struct net *net)
-{
- return 0;
-}
-
-static inline void nf_conntrack_tstamp_fini(struct net *net)
-{
- return;
-}
-#endif /* CONFIG_NF_CONNTRACK_TIMESTAMP */
-
-#endif /* _NF_CONNTRACK_TSTAMP_H */
diff --git a/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_tuple.h b/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_tuple.h
deleted file mode 100644
index aea3f822..00000000
--- a/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_tuple.h
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- * Definitions and Declarations for tuple.
- *
- * 16 Dec 2003: Yasuyuki Kozakai @USAGI <yasuyuki.kozakai@toshiba.co.jp>
- * - generalize L3 protocol dependent part.
- *
- * Derived from include/linux/netfiter_ipv4/ip_conntrack_tuple.h
- */
-
-#ifndef _NF_CONNTRACK_TUPLE_H
-#define _NF_CONNTRACK_TUPLE_H
-
-#include <linux/netfilter/x_tables.h>
-#include <linux/netfilter/nf_conntrack_tuple_common.h>
-#include <linux/list_nulls.h>
-
-/* A `tuple' is a structure containing the information to uniquely
- identify a connection. ie. if two packets have the same tuple, they
- are in the same connection; if not, they are not.
-
- We divide the structure along "manipulatable" and
- "non-manipulatable" lines, for the benefit of the NAT code.
-*/
-
-#define NF_CT_TUPLE_L3SIZE ARRAY_SIZE(((union nf_inet_addr *)NULL)->all)
-
-/* The manipulable part of the tuple. */
-struct nf_conntrack_man {
- union nf_inet_addr u3;
- union nf_conntrack_man_proto u;
- /* Layer 3 protocol */
- u_int16_t l3num;
-};
-
-/* This contains the information to distinguish a connection. */
-struct nf_conntrack_tuple {
- struct nf_conntrack_man src;
-
- /* These are the parts of the tuple which are fixed. */
- struct {
- union nf_inet_addr u3;
- union {
- /* Add other protocols here. */
- __be16 all;
-
- struct {
- __be16 port;
- } tcp;
- struct {
- __be16 port;
- } udp;
- struct {
- u_int8_t type, code;
- } icmp;
- struct {
- __be16 port;
- } dccp;
- struct {
- __be16 port;
- } sctp;
- struct {
- __be16 key;
- } gre;
- } u;
-
- /* The protocol. */
- u_int8_t protonum;
-
- /* The direction (for tuplehash) */
- u_int8_t dir;
- } dst;
-};
-
-struct nf_conntrack_tuple_mask {
- struct {
- union nf_inet_addr u3;
- union nf_conntrack_man_proto u;
- } src;
-};
-
-static inline void nf_ct_dump_tuple_ip(const struct nf_conntrack_tuple *t)
-{
-#ifdef DEBUG
- printk("tuple %p: %u %pI4:%hu -> %pI4:%hu\n",
- t, t->dst.protonum,
- &t->src.u3.ip, ntohs(t->src.u.all),
- &t->dst.u3.ip, ntohs(t->dst.u.all));
-#endif
-}
-
-static inline void nf_ct_dump_tuple_ipv6(const struct nf_conntrack_tuple *t)
-{
-#ifdef DEBUG
- printk("tuple %p: %u %pI6 %hu -> %pI6 %hu\n",
- t, t->dst.protonum,
- t->src.u3.all, ntohs(t->src.u.all),
- t->dst.u3.all, ntohs(t->dst.u.all));
-#endif
-}
-
-static inline void nf_ct_dump_tuple(const struct nf_conntrack_tuple *t)
-{
- switch (t->src.l3num) {
- case AF_INET:
- nf_ct_dump_tuple_ip(t);
- break;
- case AF_INET6:
- nf_ct_dump_tuple_ipv6(t);
- break;
- }
-}
-
-/* If we're the first tuple, it's the original dir. */
-#define NF_CT_DIRECTION(h) \
- ((enum ip_conntrack_dir)(h)->tuple.dst.dir)
-
-/* Connections have two entries in the hash table: one for each way */
-struct nf_conntrack_tuple_hash {
- struct hlist_nulls_node hnnode;
- struct nf_conntrack_tuple tuple;
-};
-
-static inline bool __nf_ct_tuple_src_equal(const struct nf_conntrack_tuple *t1,
- const struct nf_conntrack_tuple *t2)
-{
- return (nf_inet_addr_cmp(&t1->src.u3, &t2->src.u3) &&
- t1->src.u.all == t2->src.u.all &&
- t1->src.l3num == t2->src.l3num);
-}
-
-static inline bool __nf_ct_tuple_dst_equal(const struct nf_conntrack_tuple *t1,
- const struct nf_conntrack_tuple *t2)
-{
- return (nf_inet_addr_cmp(&t1->dst.u3, &t2->dst.u3) &&
- t1->dst.u.all == t2->dst.u.all &&
- t1->dst.protonum == t2->dst.protonum);
-}
-
-static inline bool nf_ct_tuple_equal(const struct nf_conntrack_tuple *t1,
- const struct nf_conntrack_tuple *t2)
-{
- return __nf_ct_tuple_src_equal(t1, t2) &&
- __nf_ct_tuple_dst_equal(t1, t2);
-}
-
-static inline bool
-nf_ct_tuple_mask_equal(const struct nf_conntrack_tuple_mask *m1,
- const struct nf_conntrack_tuple_mask *m2)
-{
- return (nf_inet_addr_cmp(&m1->src.u3, &m2->src.u3) &&
- m1->src.u.all == m2->src.u.all);
-}
-
-static inline bool
-nf_ct_tuple_src_mask_cmp(const struct nf_conntrack_tuple *t1,
- const struct nf_conntrack_tuple *t2,
- const struct nf_conntrack_tuple_mask *mask)
-{
- int count;
-
- for (count = 0; count < NF_CT_TUPLE_L3SIZE; count++) {
- if ((t1->src.u3.all[count] ^ t2->src.u3.all[count]) &
- mask->src.u3.all[count])
- return false;
- }
-
- if ((t1->src.u.all ^ t2->src.u.all) & mask->src.u.all)
- return false;
-
- if (t1->src.l3num != t2->src.l3num ||
- t1->dst.protonum != t2->dst.protonum)
- return false;
-
- return true;
-}
-
-static inline bool
-nf_ct_tuple_mask_cmp(const struct nf_conntrack_tuple *t,
- const struct nf_conntrack_tuple *tuple,
- const struct nf_conntrack_tuple_mask *mask)
-{
- return nf_ct_tuple_src_mask_cmp(t, tuple, mask) &&
- __nf_ct_tuple_dst_equal(t, tuple);
-}
-
-#endif /* _NF_CONNTRACK_TUPLE_H */
diff --git a/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_zones.h b/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_zones.h
deleted file mode 100644
index 034efe8d..00000000
--- a/ANDROID_3.4.5/include/net/netfilter/nf_conntrack_zones.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef _NF_CONNTRACK_ZONES_H
-#define _NF_CONNTRACK_ZONES_H
-
-#define NF_CT_DEFAULT_ZONE 0
-
-#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
-#include <net/netfilter/nf_conntrack_extend.h>
-
-struct nf_conntrack_zone {
- u16 id;
-};
-
-static inline u16 nf_ct_zone(const struct nf_conn *ct)
-{
-#ifdef CONFIG_NF_CONNTRACK_ZONES
- struct nf_conntrack_zone *nf_ct_zone;
- nf_ct_zone = nf_ct_ext_find(ct, NF_CT_EXT_ZONE);
- if (nf_ct_zone)
- return nf_ct_zone->id;
-#endif
- return NF_CT_DEFAULT_ZONE;
-}
-
-#endif /* CONFIG_NF_CONNTRACK || CONFIG_NF_CONNTRACK_MODULE */
-#endif /* _NF_CONNTRACK_ZONES_H */
diff --git a/ANDROID_3.4.5/include/net/netfilter/nf_log.h b/ANDROID_3.4.5/include/net/netfilter/nf_log.h
deleted file mode 100644
index e991bd0a..00000000
--- a/ANDROID_3.4.5/include/net/netfilter/nf_log.h
+++ /dev/null
@@ -1,65 +0,0 @@
-#ifndef _NF_LOG_H
-#define _NF_LOG_H
-
-#include <linux/netfilter.h>
-
-/* those NF_LOG_* defines and struct nf_loginfo are legacy definitios that will
- * disappear once iptables is replaced with pkttables. Please DO NOT use them
- * for any new code! */
-#define NF_LOG_TCPSEQ 0x01 /* Log TCP sequence numbers */
-#define NF_LOG_TCPOPT 0x02 /* Log TCP options */
-#define NF_LOG_IPOPT 0x04 /* Log IP options */
-#define NF_LOG_UID 0x08 /* Log UID owning local socket */
-#define NF_LOG_MASK 0x0f
-
-#define NF_LOG_TYPE_LOG 0x01
-#define NF_LOG_TYPE_ULOG 0x02
-
-struct nf_loginfo {
- u_int8_t type;
- union {
- struct {
- u_int32_t copy_len;
- u_int16_t group;
- u_int16_t qthreshold;
- } ulog;
- struct {
- u_int8_t level;
- u_int8_t logflags;
- } log;
- } u;
-};
-
-typedef void nf_logfn(u_int8_t pf,
- unsigned int hooknum,
- const struct sk_buff *skb,
- const struct net_device *in,
- const struct net_device *out,
- const struct nf_loginfo *li,
- const char *prefix);
-
-struct nf_logger {
- struct module *me;
- nf_logfn *logfn;
- char *name;
- struct list_head list[NFPROTO_NUMPROTO];
-};
-
-/* Function to register/unregister log function. */
-int nf_log_register(u_int8_t pf, struct nf_logger *logger);
-void nf_log_unregister(struct nf_logger *logger);
-
-int nf_log_bind_pf(u_int8_t pf, const struct nf_logger *logger);
-void nf_log_unbind_pf(u_int8_t pf);
-
-/* Calls the registered backend logging function */
-__printf(7, 8)
-void nf_log_packet(u_int8_t pf,
- unsigned int hooknum,
- const struct sk_buff *skb,
- const struct net_device *in,
- const struct net_device *out,
- const struct nf_loginfo *li,
- const char *fmt, ...);
-
-#endif /* _NF_LOG_H */
diff --git a/ANDROID_3.4.5/include/net/netfilter/nf_nat.h b/ANDROID_3.4.5/include/net/netfilter/nf_nat.h
deleted file mode 100644
index b4de990b..00000000
--- a/ANDROID_3.4.5/include/net/netfilter/nf_nat.h
+++ /dev/null
@@ -1,69 +0,0 @@
-#ifndef _NF_NAT_H
-#define _NF_NAT_H
-#include <linux/netfilter_ipv4.h>
-#include <linux/netfilter/nf_nat.h>
-#include <net/netfilter/nf_conntrack_tuple.h>
-
-enum nf_nat_manip_type {
- NF_NAT_MANIP_SRC,
- NF_NAT_MANIP_DST
-};
-
-/* SRC manip occurs POST_ROUTING or LOCAL_IN */
-#define HOOK2MANIP(hooknum) ((hooknum) != NF_INET_POST_ROUTING && \
- (hooknum) != NF_INET_LOCAL_IN)
-
-/* NAT sequence number modifications */
-struct nf_nat_seq {
- /* position of the last TCP sequence number modification (if any) */
- u_int32_t correction_pos;
-
- /* sequence number offset before and after last modification */
- int16_t offset_before, offset_after;
-};
-
-#include <linux/list.h>
-#include <linux/netfilter/nf_conntrack_pptp.h>
-#include <net/netfilter/nf_conntrack_extend.h>
-
-/* per conntrack: nat application helper private data */
-union nf_conntrack_nat_help {
- /* insert nat helper private data here */
-#if defined(CONFIG_NF_NAT_PPTP) || defined(CONFIG_NF_NAT_PPTP_MODULE)
- struct nf_nat_pptp nat_pptp_info;
-#endif
-};
-
-struct nf_conn;
-
-/* The structure embedded in the conntrack structure. */
-struct nf_conn_nat {
- struct hlist_node bysource;
- struct nf_nat_seq seq[IP_CT_DIR_MAX];
- struct nf_conn *ct;
- union nf_conntrack_nat_help help;
-#if defined(CONFIG_IP_NF_TARGET_MASQUERADE) || \
- defined(CONFIG_IP_NF_TARGET_MASQUERADE_MODULE)
- int masq_index;
-#endif
-};
-
-/* Set up the info structure to map into this range. */
-extern unsigned int nf_nat_setup_info(struct nf_conn *ct,
- const struct nf_nat_ipv4_range *range,
- enum nf_nat_manip_type maniptype);
-
-/* Is this tuple already taken? (not by us)*/
-extern int nf_nat_used_tuple(const struct nf_conntrack_tuple *tuple,
- const struct nf_conn *ignored_conntrack);
-
-static inline struct nf_conn_nat *nfct_nat(const struct nf_conn *ct)
-{
-#if defined(CONFIG_NF_NAT) || defined(CONFIG_NF_NAT_MODULE)
- return nf_ct_ext_find(ct, NF_CT_EXT_NAT);
-#else
- return NULL;
-#endif
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/netfilter/nf_nat_core.h b/ANDROID_3.4.5/include/net/netfilter/nf_nat_core.h
deleted file mode 100644
index b13d8d18..00000000
--- a/ANDROID_3.4.5/include/net/netfilter/nf_nat_core.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef _NF_NAT_CORE_H
-#define _NF_NAT_CORE_H
-#include <linux/list.h>
-#include <net/netfilter/nf_conntrack.h>
-#include <net/netfilter/nf_nat.h>
-
-/* This header used to share core functionality between the standalone
- NAT module, and the compatibility layer's use of NAT for masquerading. */
-
-extern unsigned int nf_nat_packet(struct nf_conn *ct,
- enum ip_conntrack_info ctinfo,
- unsigned int hooknum,
- struct sk_buff *skb);
-
-extern int nf_nat_icmp_reply_translation(struct nf_conn *ct,
- enum ip_conntrack_info ctinfo,
- unsigned int hooknum,
- struct sk_buff *skb);
-
-static inline int nf_nat_initialized(struct nf_conn *ct,
- enum nf_nat_manip_type manip)
-{
- if (manip == NF_NAT_MANIP_SRC)
- return ct->status & IPS_SRC_NAT_DONE;
- else
- return ct->status & IPS_DST_NAT_DONE;
-}
-
-struct nlattr;
-
-extern int
-(*nfnetlink_parse_nat_setup_hook)(struct nf_conn *ct,
- enum nf_nat_manip_type manip,
- const struct nlattr *attr);
-
-#endif /* _NF_NAT_CORE_H */
diff --git a/ANDROID_3.4.5/include/net/netfilter/nf_nat_helper.h b/ANDROID_3.4.5/include/net/netfilter/nf_nat_helper.h
deleted file mode 100644
index 02bb6c29..00000000
--- a/ANDROID_3.4.5/include/net/netfilter/nf_nat_helper.h
+++ /dev/null
@@ -1,57 +0,0 @@
-#ifndef _NF_NAT_HELPER_H
-#define _NF_NAT_HELPER_H
-/* NAT protocol helper routines. */
-
-#include <net/netfilter/nf_conntrack.h>
-
-struct sk_buff;
-
-/* These return true or false. */
-extern int __nf_nat_mangle_tcp_packet(struct sk_buff *skb,
- struct nf_conn *ct,
- enum ip_conntrack_info ctinfo,
- unsigned int match_offset,
- unsigned int match_len,
- const char *rep_buffer,
- unsigned int rep_len, bool adjust);
-
-static inline int nf_nat_mangle_tcp_packet(struct sk_buff *skb,
- struct nf_conn *ct,
- enum ip_conntrack_info ctinfo,
- unsigned int match_offset,
- unsigned int match_len,
- const char *rep_buffer,
- unsigned int rep_len)
-{
- return __nf_nat_mangle_tcp_packet(skb, ct, ctinfo,
- match_offset, match_len,
- rep_buffer, rep_len, true);
-}
-
-extern int nf_nat_mangle_udp_packet(struct sk_buff *skb,
- struct nf_conn *ct,
- enum ip_conntrack_info ctinfo,
- unsigned int match_offset,
- unsigned int match_len,
- const char *rep_buffer,
- unsigned int rep_len);
-
-extern void nf_nat_set_seq_adjust(struct nf_conn *ct,
- enum ip_conntrack_info ctinfo,
- __be32 seq, s16 off);
-extern int nf_nat_seq_adjust(struct sk_buff *skb,
- struct nf_conn *ct,
- enum ip_conntrack_info ctinfo);
-extern int (*nf_nat_seq_adjust_hook)(struct sk_buff *skb,
- struct nf_conn *ct,
- enum ip_conntrack_info ctinfo);
-
-/* Setup NAT on this expected conntrack so it follows master, but goes
- * to port ct->master->saved_proto. */
-extern void nf_nat_follow_master(struct nf_conn *ct,
- struct nf_conntrack_expect *this);
-
-extern s16 nf_nat_get_offset(const struct nf_conn *ct,
- enum ip_conntrack_dir dir,
- u32 seq);
-#endif
diff --git a/ANDROID_3.4.5/include/net/netfilter/nf_nat_protocol.h b/ANDROID_3.4.5/include/net/netfilter/nf_nat_protocol.h
deleted file mode 100644
index 7b0b5116..00000000
--- a/ANDROID_3.4.5/include/net/netfilter/nf_nat_protocol.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Header for use in defining a given protocol. */
-#ifndef _NF_NAT_PROTOCOL_H
-#define _NF_NAT_PROTOCOL_H
-#include <net/netfilter/nf_nat.h>
-#include <linux/netfilter/nfnetlink_conntrack.h>
-
-struct nf_nat_ipv4_range;
-
-struct nf_nat_protocol {
- /* Protocol number. */
- unsigned int protonum;
-
- /* Translate a packet to the target according to manip type.
- Return true if succeeded. */
- bool (*manip_pkt)(struct sk_buff *skb,
- unsigned int iphdroff,
- const struct nf_conntrack_tuple *tuple,
- enum nf_nat_manip_type maniptype);
-
- /* Is the manipable part of the tuple between min and max incl? */
- bool (*in_range)(const struct nf_conntrack_tuple *tuple,
- enum nf_nat_manip_type maniptype,
- const union nf_conntrack_man_proto *min,
- const union nf_conntrack_man_proto *max);
-
- /* Alter the per-proto part of the tuple (depending on
- maniptype), to give a unique tuple in the given range if
- possible. Per-protocol part of tuple is initialized to the
- incoming packet. */
- void (*unique_tuple)(struct nf_conntrack_tuple *tuple,
- const struct nf_nat_ipv4_range *range,
- enum nf_nat_manip_type maniptype,
- const struct nf_conn *ct);
-
- int (*nlattr_to_range)(struct nlattr *tb[],
- struct nf_nat_ipv4_range *range);
-};
-
-/* Protocol registration. */
-extern int nf_nat_protocol_register(const struct nf_nat_protocol *proto);
-extern void nf_nat_protocol_unregister(const struct nf_nat_protocol *proto);
-
-/* Built-in protocols. */
-extern const struct nf_nat_protocol nf_nat_protocol_tcp;
-extern const struct nf_nat_protocol nf_nat_protocol_udp;
-extern const struct nf_nat_protocol nf_nat_protocol_icmp;
-extern const struct nf_nat_protocol nf_nat_unknown_protocol;
-
-extern int init_protocols(void) __init;
-extern void cleanup_protocols(void);
-extern const struct nf_nat_protocol *find_nat_proto(u_int16_t protonum);
-
-extern bool nf_nat_proto_in_range(const struct nf_conntrack_tuple *tuple,
- enum nf_nat_manip_type maniptype,
- const union nf_conntrack_man_proto *min,
- const union nf_conntrack_man_proto *max);
-
-extern void nf_nat_proto_unique_tuple(struct nf_conntrack_tuple *tuple,
- const struct nf_nat_ipv4_range *range,
- enum nf_nat_manip_type maniptype,
- const struct nf_conn *ct,
- u_int16_t *rover);
-
-extern int nf_nat_proto_nlattr_to_range(struct nlattr *tb[],
- struct nf_nat_ipv4_range *range);
-
-#endif /*_NF_NAT_PROTO_H*/
diff --git a/ANDROID_3.4.5/include/net/netfilter/nf_nat_rule.h b/ANDROID_3.4.5/include/net/netfilter/nf_nat_rule.h
deleted file mode 100644
index 2890bdc4..00000000
--- a/ANDROID_3.4.5/include/net/netfilter/nf_nat_rule.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef _NF_NAT_RULE_H
-#define _NF_NAT_RULE_H
-#include <net/netfilter/nf_conntrack.h>
-#include <net/netfilter/nf_nat.h>
-#include <linux/netfilter_ipv4/ip_tables.h>
-
-extern int nf_nat_rule_init(void) __init;
-extern void nf_nat_rule_cleanup(void);
-extern int nf_nat_rule_find(struct sk_buff *skb,
- unsigned int hooknum,
- const struct net_device *in,
- const struct net_device *out,
- struct nf_conn *ct);
-
-#endif /* _NF_NAT_RULE_H */
diff --git a/ANDROID_3.4.5/include/net/netfilter/nf_queue.h b/ANDROID_3.4.5/include/net/netfilter/nf_queue.h
deleted file mode 100644
index 252fd101..00000000
--- a/ANDROID_3.4.5/include/net/netfilter/nf_queue.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef _NF_QUEUE_H
-#define _NF_QUEUE_H
-
-/* Each queued (to userspace) skbuff has one of these. */
-struct nf_queue_entry {
- struct list_head list;
- struct sk_buff *skb;
- unsigned int id;
-
- struct nf_hook_ops *elem;
- u_int8_t pf;
- unsigned int hook;
- struct net_device *indev;
- struct net_device *outdev;
- int (*okfn)(struct sk_buff *);
-};
-
-#define nf_queue_entry_reroute(x) ((void *)x + sizeof(struct nf_queue_entry))
-
-/* Packet queuing */
-struct nf_queue_handler {
- int (*outfn)(struct nf_queue_entry *entry,
- unsigned int queuenum);
- char *name;
-};
-
-extern int nf_register_queue_handler(u_int8_t pf,
- const struct nf_queue_handler *qh);
-extern int nf_unregister_queue_handler(u_int8_t pf,
- const struct nf_queue_handler *qh);
-extern void nf_unregister_queue_handlers(const struct nf_queue_handler *qh);
-extern void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict);
-
-#endif /* _NF_QUEUE_H */
diff --git a/ANDROID_3.4.5/include/net/netfilter/nf_tproxy_core.h b/ANDROID_3.4.5/include/net/netfilter/nf_tproxy_core.h
deleted file mode 100644
index 75ca9291..00000000
--- a/ANDROID_3.4.5/include/net/netfilter/nf_tproxy_core.h
+++ /dev/null
@@ -1,208 +0,0 @@
-#ifndef _NF_TPROXY_CORE_H
-#define _NF_TPROXY_CORE_H
-
-#include <linux/types.h>
-#include <linux/in.h>
-#include <linux/skbuff.h>
-#include <net/sock.h>
-#include <net/inet_hashtables.h>
-#include <net/inet6_hashtables.h>
-#include <net/tcp.h>
-
-#define NFT_LOOKUP_ANY 0
-#define NFT_LOOKUP_LISTENER 1
-#define NFT_LOOKUP_ESTABLISHED 2
-
-/* look up and get a reference to a matching socket */
-
-
-/* This function is used by the 'TPROXY' target and the 'socket'
- * match. The following lookups are supported:
- *
- * Explicit TProxy target rule
- * ===========================
- *
- * This is used when the user wants to intercept a connection matching
- * an explicit iptables rule. In this case the sockets are assumed
- * matching in preference order:
- *
- * - match: if there's a fully established connection matching the
- * _packet_ tuple, it is returned, assuming the redirection
- * already took place and we process a packet belonging to an
- * established connection
- *
- * - match: if there's a listening socket matching the redirection
- * (e.g. on-port & on-ip of the connection), it is returned,
- * regardless if it was bound to 0.0.0.0 or an explicit
- * address. The reasoning is that if there's an explicit rule, it
- * does not really matter if the listener is bound to an interface
- * or to 0. The user already stated that he wants redirection
- * (since he added the rule).
- *
- * "socket" match based redirection (no specific rule)
- * ===================================================
- *
- * There are connections with dynamic endpoints (e.g. FTP data
- * connection) that the user is unable to add explicit rules
- * for. These are taken care of by a generic "socket" rule. It is
- * assumed that the proxy application is trusted to open such
- * connections without explicit iptables rule (except of course the
- * generic 'socket' rule). In this case the following sockets are
- * matched in preference order:
- *
- * - match: if there's a fully established connection matching the
- * _packet_ tuple
- *
- * - match: if there's a non-zero bound listener (possibly with a
- * non-local address) We don't accept zero-bound listeners, since
- * then local services could intercept traffic going through the
- * box.
- *
- * Please note that there's an overlap between what a TPROXY target
- * and a socket match will match. Normally if you have both rules the
- * "socket" match will be the first one, effectively all packets
- * belonging to established connections going through that one.
- */
-static inline struct sock *
-nf_tproxy_get_sock_v4(struct net *net, const u8 protocol,
- const __be32 saddr, const __be32 daddr,
- const __be16 sport, const __be16 dport,
- const struct net_device *in, int lookup_type)
-{
- struct sock *sk;
-
- /* look up socket */
- switch (protocol) {
- case IPPROTO_TCP:
- switch (lookup_type) {
- case NFT_LOOKUP_ANY:
- sk = __inet_lookup(net, &tcp_hashinfo,
- saddr, sport, daddr, dport,
- in->ifindex);
- break;
- case NFT_LOOKUP_LISTENER:
- sk = inet_lookup_listener(net, &tcp_hashinfo,
- daddr, dport,
- in->ifindex);
-
- /* NOTE: we return listeners even if bound to
- * 0.0.0.0, those are filtered out in
- * xt_socket, since xt_TPROXY needs 0 bound
- * listeners too */
-
- break;
- case NFT_LOOKUP_ESTABLISHED:
- sk = inet_lookup_established(net, &tcp_hashinfo,
- saddr, sport, daddr, dport,
- in->ifindex);
- break;
- default:
- WARN_ON(1);
- sk = NULL;
- break;
- }
- break;
- case IPPROTO_UDP:
- sk = udp4_lib_lookup(net, saddr, sport, daddr, dport,
- in->ifindex);
- if (sk && lookup_type != NFT_LOOKUP_ANY) {
- int connected = (sk->sk_state == TCP_ESTABLISHED);
- int wildcard = (inet_sk(sk)->inet_rcv_saddr == 0);
-
- /* NOTE: we return listeners even if bound to
- * 0.0.0.0, those are filtered out in
- * xt_socket, since xt_TPROXY needs 0 bound
- * listeners too */
- if ((lookup_type == NFT_LOOKUP_ESTABLISHED && (!connected || wildcard)) ||
- (lookup_type == NFT_LOOKUP_LISTENER && connected)) {
- sock_put(sk);
- sk = NULL;
- }
- }
- break;
- default:
- WARN_ON(1);
- sk = NULL;
- }
-
- pr_debug("tproxy socket lookup: proto %u %08x:%u -> %08x:%u, lookup type: %d, sock %p\n",
- protocol, ntohl(saddr), ntohs(sport), ntohl(daddr), ntohs(dport), lookup_type, sk);
-
- return sk;
-}
-
-#if IS_ENABLED(CONFIG_IPV6)
-static inline struct sock *
-nf_tproxy_get_sock_v6(struct net *net, const u8 protocol,
- const struct in6_addr *saddr, const struct in6_addr *daddr,
- const __be16 sport, const __be16 dport,
- const struct net_device *in, int lookup_type)
-{
- struct sock *sk;
-
- /* look up socket */
- switch (protocol) {
- case IPPROTO_TCP:
- switch (lookup_type) {
- case NFT_LOOKUP_ANY:
- sk = inet6_lookup(net, &tcp_hashinfo,
- saddr, sport, daddr, dport,
- in->ifindex);
- break;
- case NFT_LOOKUP_LISTENER:
- sk = inet6_lookup_listener(net, &tcp_hashinfo,
- daddr, ntohs(dport),
- in->ifindex);
-
- /* NOTE: we return listeners even if bound to
- * 0.0.0.0, those are filtered out in
- * xt_socket, since xt_TPROXY needs 0 bound
- * listeners too */
-
- break;
- case NFT_LOOKUP_ESTABLISHED:
- sk = __inet6_lookup_established(net, &tcp_hashinfo,
- saddr, sport, daddr, ntohs(dport),
- in->ifindex);
- break;
- default:
- WARN_ON(1);
- sk = NULL;
- break;
- }
- break;
- case IPPROTO_UDP:
- sk = udp6_lib_lookup(net, saddr, sport, daddr, dport,
- in->ifindex);
- if (sk && lookup_type != NFT_LOOKUP_ANY) {
- int connected = (sk->sk_state == TCP_ESTABLISHED);
- int wildcard = ipv6_addr_any(&inet6_sk(sk)->rcv_saddr);
-
- /* NOTE: we return listeners even if bound to
- * 0.0.0.0, those are filtered out in
- * xt_socket, since xt_TPROXY needs 0 bound
- * listeners too */
- if ((lookup_type == NFT_LOOKUP_ESTABLISHED && (!connected || wildcard)) ||
- (lookup_type == NFT_LOOKUP_LISTENER && connected)) {
- sock_put(sk);
- sk = NULL;
- }
- }
- break;
- default:
- WARN_ON(1);
- sk = NULL;
- }
-
- pr_debug("tproxy socket lookup: proto %u %pI6:%u -> %pI6:%u, lookup type: %d, sock %p\n",
- protocol, saddr, ntohs(sport), daddr, ntohs(dport), lookup_type, sk);
-
- return sk;
-}
-#endif
-
-/* assign a socket to the skb -- consumes sk */
-void
-nf_tproxy_assign_sock(struct sk_buff *skb, struct sock *sk);
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/netfilter/nfnetlink_log.h b/ANDROID_3.4.5/include/net/netfilter/nfnetlink_log.h
deleted file mode 100644
index e2dec42c..00000000
--- a/ANDROID_3.4.5/include/net/netfilter/nfnetlink_log.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef _KER_NFNETLINK_LOG_H
-#define _KER_NFNETLINK_LOG_H
-
-void
-nfulnl_log_packet(u_int8_t pf,
- unsigned int hooknum,
- const struct sk_buff *skb,
- const struct net_device *in,
- const struct net_device *out,
- const struct nf_loginfo *li_user,
- const char *prefix);
-
-#define NFULNL_COPY_DISABLED 0xff
-
-#endif /* _KER_NFNETLINK_LOG_H */
-
diff --git a/ANDROID_3.4.5/include/net/netfilter/xt_log.h b/ANDROID_3.4.5/include/net/netfilter/xt_log.h
deleted file mode 100644
index 9d9756cc..00000000
--- a/ANDROID_3.4.5/include/net/netfilter/xt_log.h
+++ /dev/null
@@ -1,54 +0,0 @@
-#define S_SIZE (1024 - (sizeof(unsigned int) + 1))
-
-struct sbuff {
- unsigned int count;
- char buf[S_SIZE + 1];
-};
-static struct sbuff emergency, *emergency_ptr = &emergency;
-
-static __printf(2, 3) int sb_add(struct sbuff *m, const char *f, ...)
-{
- va_list args;
- int len;
-
- if (likely(m->count < S_SIZE)) {
- va_start(args, f);
- len = vsnprintf(m->buf + m->count, S_SIZE - m->count, f, args);
- va_end(args);
- if (likely(m->count + len < S_SIZE)) {
- m->count += len;
- return 0;
- }
- }
- m->count = S_SIZE;
- printk_once(KERN_ERR KBUILD_MODNAME " please increase S_SIZE\n");
- return -1;
-}
-
-static struct sbuff *sb_open(void)
-{
- struct sbuff *m = kmalloc(sizeof(*m), GFP_ATOMIC);
-
- if (unlikely(!m)) {
- local_bh_disable();
- do {
- m = xchg(&emergency_ptr, NULL);
- } while (!m);
- }
- m->count = 0;
- return m;
-}
-
-static void sb_close(struct sbuff *m)
-{
- m->buf[m->count] = 0;
- printk("%s\n", m->buf);
-
- if (likely(m != &emergency))
- kfree(m);
- else {
- emergency_ptr = m;
- local_bh_enable();
- }
-}
-
diff --git a/ANDROID_3.4.5/include/net/netfilter/xt_rateest.h b/ANDROID_3.4.5/include/net/netfilter/xt_rateest.h
deleted file mode 100644
index 5a2978d1..00000000
--- a/ANDROID_3.4.5/include/net/netfilter/xt_rateest.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef _XT_RATEEST_H
-#define _XT_RATEEST_H
-
-struct xt_rateest {
- /* keep lock and bstats on same cache line to speedup xt_rateest_tg() */
- struct gnet_stats_basic_packed bstats;
- spinlock_t lock;
- /* keep rstats and lock on same cache line to speedup xt_rateest_mt() */
- struct gnet_stats_rate_est rstats;
-
- /* following fields not accessed in hot path */
- struct hlist_node list;
- char name[IFNAMSIZ];
- unsigned int refcnt;
- struct gnet_estimator params;
- struct rcu_head rcu;
-};
-
-extern struct xt_rateest *xt_rateest_lookup(const char *name);
-extern void xt_rateest_put(struct xt_rateest *est);
-
-#endif /* _XT_RATEEST_H */
diff --git a/ANDROID_3.4.5/include/net/netlabel.h b/ANDROID_3.4.5/include/net/netlabel.h
deleted file mode 100644
index f6744097..00000000
--- a/ANDROID_3.4.5/include/net/netlabel.h
+++ /dev/null
@@ -1,590 +0,0 @@
-/*
- * NetLabel System
- *
- * The NetLabel system manages static and dynamic label mappings for network
- * protocols such as CIPSO and RIPSO.
- *
- * Author: Paul Moore <paul@paul-moore.com>
- *
- */
-
-/*
- * (c) Copyright Hewlett-Packard Development Company, L.P., 2006, 2008
- *
- * 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
- *
- */
-
-#ifndef _NETLABEL_H
-#define _NETLABEL_H
-
-#include <linux/types.h>
-#include <linux/slab.h>
-#include <linux/net.h>
-#include <linux/skbuff.h>
-#include <linux/in.h>
-#include <linux/in6.h>
-#include <net/netlink.h>
-#include <net/request_sock.h>
-#include <linux/atomic.h>
-
-struct cipso_v4_doi;
-
-/*
- * NetLabel - A management interface for maintaining network packet label
- * mapping tables for explicit packet labling protocols.
- *
- * Network protocols such as CIPSO and RIPSO require a label translation layer
- * to convert the label on the packet into something meaningful on the host
- * machine. In the current Linux implementation these mapping tables live
- * inside the kernel; NetLabel provides a mechanism for user space applications
- * to manage these mapping tables.
- *
- * NetLabel makes use of the Generic NETLINK mechanism as a transport layer to
- * send messages between kernel and user space. The general format of a
- * NetLabel message is shown below:
- *
- * +-----------------+-------------------+--------- --- -- -
- * | struct nlmsghdr | struct genlmsghdr | payload
- * +-----------------+-------------------+--------- --- -- -
- *
- * The 'nlmsghdr' and 'genlmsghdr' structs should be dealt with like normal.
- * The payload is dependent on the subsystem specified in the
- * 'nlmsghdr->nlmsg_type' and should be defined below, supporting functions
- * should be defined in the corresponding net/netlabel/netlabel_<subsys>.h|c
- * file. All of the fields in the NetLabel payload are NETLINK attributes, see
- * the include/net/netlink.h file for more information on NETLINK attributes.
- *
- */
-
-/*
- * NetLabel NETLINK protocol
- */
-
-/* NetLabel NETLINK protocol version
- * 1: initial version
- * 2: added static labels for unlabeled connections
- * 3: network selectors added to the NetLabel/LSM domain mapping and the
- * CIPSO_V4_MAP_LOCAL CIPSO mapping was added
- */
-#define NETLBL_PROTO_VERSION 3
-
-/* NetLabel NETLINK types/families */
-#define NETLBL_NLTYPE_NONE 0
-#define NETLBL_NLTYPE_MGMT 1
-#define NETLBL_NLTYPE_MGMT_NAME "NLBL_MGMT"
-#define NETLBL_NLTYPE_RIPSO 2
-#define NETLBL_NLTYPE_RIPSO_NAME "NLBL_RIPSO"
-#define NETLBL_NLTYPE_CIPSOV4 3
-#define NETLBL_NLTYPE_CIPSOV4_NAME "NLBL_CIPSOv4"
-#define NETLBL_NLTYPE_CIPSOV6 4
-#define NETLBL_NLTYPE_CIPSOV6_NAME "NLBL_CIPSOv6"
-#define NETLBL_NLTYPE_UNLABELED 5
-#define NETLBL_NLTYPE_UNLABELED_NAME "NLBL_UNLBL"
-#define NETLBL_NLTYPE_ADDRSELECT 6
-#define NETLBL_NLTYPE_ADDRSELECT_NAME "NLBL_ADRSEL"
-
-/*
- * NetLabel - Kernel API for accessing the network packet label mappings.
- *
- * The following functions are provided for use by other kernel modules,
- * specifically kernel LSM modules, to provide a consistent, transparent API
- * for dealing with explicit packet labeling protocols such as CIPSO and
- * RIPSO. The functions defined here are implemented in the
- * net/netlabel/netlabel_kapi.c file.
- *
- */
-
-/* NetLabel audit information */
-struct netlbl_audit {
- u32 secid;
- uid_t loginuid;
- u32 sessionid;
-};
-
-/*
- * LSM security attributes
- */
-
-/**
- * struct netlbl_lsm_cache - NetLabel LSM security attribute cache
- * @refcount: atomic reference counter
- * @free: LSM supplied function to free the cache data
- * @data: LSM supplied cache data
- *
- * Description:
- * This structure is provided for LSMs which wish to make use of the NetLabel
- * caching mechanism to store LSM specific data/attributes in the NetLabel
- * cache. If the LSM has to perform a lot of translation from the NetLabel
- * security attributes into it's own internal representation then the cache
- * mechanism can provide a way to eliminate some or all of that translation
- * overhead on a cache hit.
- *
- */
-struct netlbl_lsm_cache {
- atomic_t refcount;
- void (*free) (const void *data);
- void *data;
-};
-
-/**
- * struct netlbl_lsm_secattr_catmap - NetLabel LSM secattr category bitmap
- * @startbit: the value of the lowest order bit in the bitmap
- * @bitmap: the category bitmap
- * @next: pointer to the next bitmap "node" or NULL
- *
- * Description:
- * This structure is used to represent category bitmaps. Due to the large
- * number of categories supported by most labeling protocols it is not
- * practical to transfer a full bitmap internally so NetLabel adopts a sparse
- * bitmap structure modeled after SELinux's ebitmap structure.
- * The catmap bitmap field MUST be a power of two in length and large
- * enough to hold at least 240 bits. Special care (i.e. check the code!)
- * should be used when changing these values as the LSM implementation
- * probably has functions which rely on the sizes of these types to speed
- * processing.
- *
- */
-#define NETLBL_CATMAP_MAPTYPE u64
-#define NETLBL_CATMAP_MAPCNT 4
-#define NETLBL_CATMAP_MAPSIZE (sizeof(NETLBL_CATMAP_MAPTYPE) * 8)
-#define NETLBL_CATMAP_SIZE (NETLBL_CATMAP_MAPSIZE * \
- NETLBL_CATMAP_MAPCNT)
-#define NETLBL_CATMAP_BIT (NETLBL_CATMAP_MAPTYPE)0x01
-struct netlbl_lsm_secattr_catmap {
- u32 startbit;
- NETLBL_CATMAP_MAPTYPE bitmap[NETLBL_CATMAP_MAPCNT];
- struct netlbl_lsm_secattr_catmap *next;
-};
-
-/**
- * struct netlbl_lsm_secattr - NetLabel LSM security attributes
- * @flags: indicate structure attributes, see NETLBL_SECATTR_*
- * @type: indicate the NLTYPE of the attributes
- * @domain: the NetLabel LSM domain
- * @cache: NetLabel LSM specific cache
- * @attr.mls: MLS sensitivity label
- * @attr.mls.cat: MLS category bitmap
- * @attr.mls.lvl: MLS sensitivity level
- * @attr.secid: LSM specific secid token
- *
- * Description:
- * This structure is used to pass security attributes between NetLabel and the
- * LSM modules. The flags field is used to specify which fields within the
- * struct are valid and valid values can be created by bitwise OR'ing the
- * NETLBL_SECATTR_* defines. The domain field is typically set by the LSM to
- * specify domain specific configuration settings and is not usually used by
- * NetLabel itself when returning security attributes to the LSM.
- *
- */
-struct netlbl_lsm_secattr {
- u32 flags;
- /* bitmap values for 'flags' */
-#define NETLBL_SECATTR_NONE 0x00000000
-#define NETLBL_SECATTR_DOMAIN 0x00000001
-#define NETLBL_SECATTR_DOMAIN_CPY (NETLBL_SECATTR_DOMAIN | \
- NETLBL_SECATTR_FREE_DOMAIN)
-#define NETLBL_SECATTR_CACHE 0x00000002
-#define NETLBL_SECATTR_MLS_LVL 0x00000004
-#define NETLBL_SECATTR_MLS_CAT 0x00000008
-#define NETLBL_SECATTR_SECID 0x00000010
- /* bitmap meta-values for 'flags' */
-#define NETLBL_SECATTR_FREE_DOMAIN 0x01000000
-#define NETLBL_SECATTR_CACHEABLE (NETLBL_SECATTR_MLS_LVL | \
- NETLBL_SECATTR_MLS_CAT | \
- NETLBL_SECATTR_SECID)
- u32 type;
- char *domain;
- struct netlbl_lsm_cache *cache;
- struct {
- struct {
- struct netlbl_lsm_secattr_catmap *cat;
- u32 lvl;
- } mls;
- u32 secid;
- } attr;
-};
-
-/*
- * LSM security attribute operations (inline)
- */
-
-/**
- * netlbl_secattr_cache_alloc - Allocate and initialize a secattr cache
- * @flags: the memory allocation flags
- *
- * Description:
- * Allocate and initialize a netlbl_lsm_cache structure. Returns a pointer
- * on success, NULL on failure.
- *
- */
-static inline struct netlbl_lsm_cache *netlbl_secattr_cache_alloc(gfp_t flags)
-{
- struct netlbl_lsm_cache *cache;
-
- cache = kzalloc(sizeof(*cache), flags);
- if (cache)
- atomic_set(&cache->refcount, 1);
- return cache;
-}
-
-/**
- * netlbl_secattr_cache_free - Frees a netlbl_lsm_cache struct
- * @cache: the struct to free
- *
- * Description:
- * Frees @secattr including all of the internal buffers.
- *
- */
-static inline void netlbl_secattr_cache_free(struct netlbl_lsm_cache *cache)
-{
- if (!atomic_dec_and_test(&cache->refcount))
- return;
-
- if (cache->free)
- cache->free(cache->data);
- kfree(cache);
-}
-
-/**
- * netlbl_secattr_catmap_alloc - Allocate a LSM secattr catmap
- * @flags: memory allocation flags
- *
- * Description:
- * Allocate memory for a LSM secattr catmap, returns a pointer on success, NULL
- * on failure.
- *
- */
-static inline struct netlbl_lsm_secattr_catmap *netlbl_secattr_catmap_alloc(
- gfp_t flags)
-{
- return kzalloc(sizeof(struct netlbl_lsm_secattr_catmap), flags);
-}
-
-/**
- * netlbl_secattr_catmap_free - Free a LSM secattr catmap
- * @catmap: the category bitmap
- *
- * Description:
- * Free a LSM secattr catmap.
- *
- */
-static inline void netlbl_secattr_catmap_free(
- struct netlbl_lsm_secattr_catmap *catmap)
-{
- struct netlbl_lsm_secattr_catmap *iter;
-
- do {
- iter = catmap;
- catmap = catmap->next;
- kfree(iter);
- } while (catmap);
-}
-
-/**
- * netlbl_secattr_init - Initialize a netlbl_lsm_secattr struct
- * @secattr: the struct to initialize
- *
- * Description:
- * Initialize an already allocated netlbl_lsm_secattr struct.
- *
- */
-static inline void netlbl_secattr_init(struct netlbl_lsm_secattr *secattr)
-{
- memset(secattr, 0, sizeof(*secattr));
-}
-
-/**
- * netlbl_secattr_destroy - Clears a netlbl_lsm_secattr struct
- * @secattr: the struct to clear
- *
- * Description:
- * Destroys the @secattr struct, including freeing all of the internal buffers.
- * The struct must be reset with a call to netlbl_secattr_init() before reuse.
- *
- */
-static inline void netlbl_secattr_destroy(struct netlbl_lsm_secattr *secattr)
-{
- if (secattr->flags & NETLBL_SECATTR_FREE_DOMAIN)
- kfree(secattr->domain);
- if (secattr->flags & NETLBL_SECATTR_CACHE)
- netlbl_secattr_cache_free(secattr->cache);
- if (secattr->flags & NETLBL_SECATTR_MLS_CAT)
- netlbl_secattr_catmap_free(secattr->attr.mls.cat);
-}
-
-/**
- * netlbl_secattr_alloc - Allocate and initialize a netlbl_lsm_secattr struct
- * @flags: the memory allocation flags
- *
- * Description:
- * Allocate and initialize a netlbl_lsm_secattr struct. Returns a valid
- * pointer on success, or NULL on failure.
- *
- */
-static inline struct netlbl_lsm_secattr *netlbl_secattr_alloc(gfp_t flags)
-{
- return kzalloc(sizeof(struct netlbl_lsm_secattr), flags);
-}
-
-/**
- * netlbl_secattr_free - Frees a netlbl_lsm_secattr struct
- * @secattr: the struct to free
- *
- * Description:
- * Frees @secattr including all of the internal buffers.
- *
- */
-static inline void netlbl_secattr_free(struct netlbl_lsm_secattr *secattr)
-{
- netlbl_secattr_destroy(secattr);
- kfree(secattr);
-}
-
-#ifdef CONFIG_NETLABEL
-/*
- * LSM configuration operations
- */
-int netlbl_cfg_map_del(const char *domain,
- u16 family,
- const void *addr,
- const void *mask,
- struct netlbl_audit *audit_info);
-int netlbl_cfg_unlbl_map_add(const char *domain,
- u16 family,
- const void *addr,
- const void *mask,
- struct netlbl_audit *audit_info);
-int netlbl_cfg_unlbl_static_add(struct net *net,
- const char *dev_name,
- const void *addr,
- const void *mask,
- u16 family,
- u32 secid,
- struct netlbl_audit *audit_info);
-int netlbl_cfg_unlbl_static_del(struct net *net,
- const char *dev_name,
- const void *addr,
- const void *mask,
- u16 family,
- struct netlbl_audit *audit_info);
-int netlbl_cfg_cipsov4_add(struct cipso_v4_doi *doi_def,
- struct netlbl_audit *audit_info);
-void netlbl_cfg_cipsov4_del(u32 doi, struct netlbl_audit *audit_info);
-int netlbl_cfg_cipsov4_map_add(u32 doi,
- const char *domain,
- const struct in_addr *addr,
- const struct in_addr *mask,
- struct netlbl_audit *audit_info);
-/*
- * LSM security attribute operations
- */
-int netlbl_secattr_catmap_walk(struct netlbl_lsm_secattr_catmap *catmap,
- u32 offset);
-int netlbl_secattr_catmap_walk_rng(struct netlbl_lsm_secattr_catmap *catmap,
- u32 offset);
-int netlbl_secattr_catmap_setbit(struct netlbl_lsm_secattr_catmap *catmap,
- u32 bit,
- gfp_t flags);
-int netlbl_secattr_catmap_setrng(struct netlbl_lsm_secattr_catmap *catmap,
- u32 start,
- u32 end,
- gfp_t flags);
-
-/*
- * LSM protocol operations (NetLabel LSM/kernel API)
- */
-int netlbl_enabled(void);
-int netlbl_sock_setattr(struct sock *sk,
- u16 family,
- const struct netlbl_lsm_secattr *secattr);
-void netlbl_sock_delattr(struct sock *sk);
-int netlbl_sock_getattr(struct sock *sk,
- struct netlbl_lsm_secattr *secattr);
-int netlbl_conn_setattr(struct sock *sk,
- struct sockaddr *addr,
- const struct netlbl_lsm_secattr *secattr);
-int netlbl_req_setattr(struct request_sock *req,
- const struct netlbl_lsm_secattr *secattr);
-void netlbl_req_delattr(struct request_sock *req);
-int netlbl_skbuff_setattr(struct sk_buff *skb,
- u16 family,
- const struct netlbl_lsm_secattr *secattr);
-int netlbl_skbuff_getattr(const struct sk_buff *skb,
- u16 family,
- struct netlbl_lsm_secattr *secattr);
-void netlbl_skbuff_err(struct sk_buff *skb, int error, int gateway);
-
-/*
- * LSM label mapping cache operations
- */
-void netlbl_cache_invalidate(void);
-int netlbl_cache_add(const struct sk_buff *skb,
- const struct netlbl_lsm_secattr *secattr);
-
-/*
- * Protocol engine operations
- */
-struct audit_buffer *netlbl_audit_start(int type,
- struct netlbl_audit *audit_info);
-#else
-static inline int netlbl_cfg_map_del(const char *domain,
- u16 family,
- const void *addr,
- const void *mask,
- struct netlbl_audit *audit_info)
-{
- return -ENOSYS;
-}
-static inline int netlbl_cfg_unlbl_map_add(const char *domain,
- u16 family,
- void *addr,
- void *mask,
- struct netlbl_audit *audit_info)
-{
- return -ENOSYS;
-}
-static inline int netlbl_cfg_unlbl_static_add(struct net *net,
- const char *dev_name,
- const void *addr,
- const void *mask,
- u16 family,
- u32 secid,
- struct netlbl_audit *audit_info)
-{
- return -ENOSYS;
-}
-static inline int netlbl_cfg_unlbl_static_del(struct net *net,
- const char *dev_name,
- const void *addr,
- const void *mask,
- u16 family,
- struct netlbl_audit *audit_info)
-{
- return -ENOSYS;
-}
-static inline int netlbl_cfg_cipsov4_add(struct cipso_v4_doi *doi_def,
- struct netlbl_audit *audit_info)
-{
- return -ENOSYS;
-}
-static inline void netlbl_cfg_cipsov4_del(u32 doi,
- struct netlbl_audit *audit_info)
-{
- return;
-}
-static inline int netlbl_cfg_cipsov4_map_add(u32 doi,
- const char *domain,
- const struct in_addr *addr,
- const struct in_addr *mask,
- struct netlbl_audit *audit_info)
-{
- return -ENOSYS;
-}
-static inline int netlbl_secattr_catmap_walk(
- struct netlbl_lsm_secattr_catmap *catmap,
- u32 offset)
-{
- return -ENOENT;
-}
-static inline int netlbl_secattr_catmap_walk_rng(
- struct netlbl_lsm_secattr_catmap *catmap,
- u32 offset)
-{
- return -ENOENT;
-}
-static inline int netlbl_secattr_catmap_setbit(
- struct netlbl_lsm_secattr_catmap *catmap,
- u32 bit,
- gfp_t flags)
-{
- return 0;
-}
-static inline int netlbl_secattr_catmap_setrng(
- struct netlbl_lsm_secattr_catmap *catmap,
- u32 start,
- u32 end,
- gfp_t flags)
-{
- return 0;
-}
-static inline int netlbl_enabled(void)
-{
- return 0;
-}
-static inline int netlbl_sock_setattr(struct sock *sk,
- u16 family,
- const struct netlbl_lsm_secattr *secattr)
-{
- return -ENOSYS;
-}
-static inline void netlbl_sock_delattr(struct sock *sk)
-{
-}
-static inline int netlbl_sock_getattr(struct sock *sk,
- struct netlbl_lsm_secattr *secattr)
-{
- return -ENOSYS;
-}
-static inline int netlbl_conn_setattr(struct sock *sk,
- struct sockaddr *addr,
- const struct netlbl_lsm_secattr *secattr)
-{
- return -ENOSYS;
-}
-static inline int netlbl_req_setattr(struct request_sock *req,
- const struct netlbl_lsm_secattr *secattr)
-{
- return -ENOSYS;
-}
-static inline void netlbl_req_delattr(struct request_sock *req)
-{
- return;
-}
-static inline int netlbl_skbuff_setattr(struct sk_buff *skb,
- u16 family,
- const struct netlbl_lsm_secattr *secattr)
-{
- return -ENOSYS;
-}
-static inline int netlbl_skbuff_getattr(const struct sk_buff *skb,
- u16 family,
- struct netlbl_lsm_secattr *secattr)
-{
- return -ENOSYS;
-}
-static inline void netlbl_skbuff_err(struct sk_buff *skb,
- int error,
- int gateway)
-{
- return;
-}
-static inline void netlbl_cache_invalidate(void)
-{
- return;
-}
-static inline int netlbl_cache_add(const struct sk_buff *skb,
- const struct netlbl_lsm_secattr *secattr)
-{
- return 0;
-}
-static inline struct audit_buffer *netlbl_audit_start(int type,
- struct netlbl_audit *audit_info)
-{
- return NULL;
-}
-#endif /* CONFIG_NETLABEL */
-
-#endif /* _NETLABEL_H */
diff --git a/ANDROID_3.4.5/include/net/netlink.h b/ANDROID_3.4.5/include/net/netlink.h
deleted file mode 100644
index f394fe5d..00000000
--- a/ANDROID_3.4.5/include/net/netlink.h
+++ /dev/null
@@ -1,1072 +0,0 @@
-#ifndef __NET_NETLINK_H
-#define __NET_NETLINK_H
-
-#include <linux/types.h>
-#include <linux/netlink.h>
-#include <linux/jiffies.h>
-
-/* ========================================================================
- * Netlink Messages and Attributes Interface (As Seen On TV)
- * ------------------------------------------------------------------------
- * Messages Interface
- * ------------------------------------------------------------------------
- *
- * Message Format:
- * <--- nlmsg_total_size(payload) --->
- * <-- nlmsg_msg_size(payload) ->
- * +----------+- - -+-------------+- - -+-------- - -
- * | nlmsghdr | Pad | Payload | Pad | nlmsghdr
- * +----------+- - -+-------------+- - -+-------- - -
- * nlmsg_data(nlh)---^ ^
- * nlmsg_next(nlh)-----------------------+
- *
- * Payload Format:
- * <---------------------- nlmsg_len(nlh) --------------------->
- * <------ hdrlen ------> <- nlmsg_attrlen(nlh, hdrlen) ->
- * +----------------------+- - -+--------------------------------+
- * | Family Header | Pad | Attributes |
- * +----------------------+- - -+--------------------------------+
- * nlmsg_attrdata(nlh, hdrlen)---^
- *
- * Data Structures:
- * struct nlmsghdr netlink message header
- *
- * Message Construction:
- * nlmsg_new() create a new netlink message
- * nlmsg_put() add a netlink message to an skb
- * nlmsg_put_answer() callback based nlmsg_put()
- * nlmsg_end() finalize netlink message
- * nlmsg_get_pos() return current position in message
- * nlmsg_trim() trim part of message
- * nlmsg_cancel() cancel message construction
- * nlmsg_free() free a netlink message
- *
- * Message Sending:
- * nlmsg_multicast() multicast message to several groups
- * nlmsg_unicast() unicast a message to a single socket
- * nlmsg_notify() send notification message
- *
- * Message Length Calculations:
- * nlmsg_msg_size(payload) length of message w/o padding
- * nlmsg_total_size(payload) length of message w/ padding
- * nlmsg_padlen(payload) length of padding at tail
- *
- * Message Payload Access:
- * nlmsg_data(nlh) head of message payload
- * nlmsg_len(nlh) length of message payload
- * nlmsg_attrdata(nlh, hdrlen) head of attributes data
- * nlmsg_attrlen(nlh, hdrlen) length of attributes data
- *
- * Message Parsing:
- * nlmsg_ok(nlh, remaining) does nlh fit into remaining bytes?
- * nlmsg_next(nlh, remaining) get next netlink message
- * nlmsg_parse() parse attributes of a message
- * nlmsg_find_attr() find an attribute in a message
- * nlmsg_for_each_msg() loop over all messages
- * nlmsg_validate() validate netlink message incl. attrs
- * nlmsg_for_each_attr() loop over all attributes
- *
- * Misc:
- * nlmsg_report() report back to application?
- *
- * ------------------------------------------------------------------------
- * Attributes Interface
- * ------------------------------------------------------------------------
- *
- * Attribute Format:
- * <------- nla_total_size(payload) ------->
- * <---- nla_attr_size(payload) ----->
- * +----------+- - -+- - - - - - - - - +- - -+-------- - -
- * | Header | Pad | Payload | Pad | Header
- * +----------+- - -+- - - - - - - - - +- - -+-------- - -
- * <- nla_len(nla) -> ^
- * nla_data(nla)----^ |
- * nla_next(nla)-----------------------------'
- *
- * Data Structures:
- * struct nlattr netlink attribute header
- *
- * Attribute Construction:
- * nla_reserve(skb, type, len) reserve room for an attribute
- * nla_reserve_nohdr(skb, len) reserve room for an attribute w/o hdr
- * nla_put(skb, type, len, data) add attribute to skb
- * nla_put_nohdr(skb, len, data) add attribute w/o hdr
- * nla_append(skb, len, data) append data to skb
- *
- * Attribute Construction for Basic Types:
- * nla_put_u8(skb, type, value) add u8 attribute to skb
- * nla_put_u16(skb, type, value) add u16 attribute to skb
- * nla_put_u32(skb, type, value) add u32 attribute to skb
- * nla_put_u64(skb, type, value) add u64 attribute to skb
- * nla_put_string(skb, type, str) add string attribute to skb
- * nla_put_flag(skb, type) add flag attribute to skb
- * nla_put_msecs(skb, type, jiffies) add msecs attribute to skb
- *
- * Exceptions Based Attribute Construction:
- * NLA_PUT(skb, type, len, data) add attribute to skb
- * NLA_PUT_U8(skb, type, value) add u8 attribute to skb
- * NLA_PUT_U16(skb, type, value) add u16 attribute to skb
- * NLA_PUT_U32(skb, type, value) add u32 attribute to skb
- * NLA_PUT_U64(skb, type, value) add u64 attribute to skb
- * NLA_PUT_STRING(skb, type, str) add string attribute to skb
- * NLA_PUT_FLAG(skb, type) add flag attribute to skb
- * NLA_PUT_MSECS(skb, type, jiffies) add msecs attribute to skb
- *
- * The meaning of these functions is equal to their lower case
- * variants but they jump to the label nla_put_failure in case
- * of a failure.
- *
- * Nested Attributes Construction:
- * nla_nest_start(skb, type) start a nested attribute
- * nla_nest_end(skb, nla) finalize a nested attribute
- * nla_nest_cancel(skb, nla) cancel nested attribute construction
- *
- * Attribute Length Calculations:
- * nla_attr_size(payload) length of attribute w/o padding
- * nla_total_size(payload) length of attribute w/ padding
- * nla_padlen(payload) length of padding
- *
- * Attribute Payload Access:
- * nla_data(nla) head of attribute payload
- * nla_len(nla) length of attribute payload
- *
- * Attribute Payload Access for Basic Types:
- * nla_get_u8(nla) get payload for a u8 attribute
- * nla_get_u16(nla) get payload for a u16 attribute
- * nla_get_u32(nla) get payload for a u32 attribute
- * nla_get_u64(nla) get payload for a u64 attribute
- * nla_get_flag(nla) return 1 if flag is true
- * nla_get_msecs(nla) get payload for a msecs attribute
- *
- * Attribute Misc:
- * nla_memcpy(dest, nla, count) copy attribute into memory
- * nla_memcmp(nla, data, size) compare attribute with memory area
- * nla_strlcpy(dst, nla, size) copy attribute to a sized string
- * nla_strcmp(nla, str) compare attribute with string
- *
- * Attribute Parsing:
- * nla_ok(nla, remaining) does nla fit into remaining bytes?
- * nla_next(nla, remaining) get next netlink attribute
- * nla_validate() validate a stream of attributes
- * nla_validate_nested() validate a stream of nested attributes
- * nla_find() find attribute in stream of attributes
- * nla_find_nested() find attribute in nested attributes
- * nla_parse() parse and validate stream of attrs
- * nla_parse_nested() parse nested attribuets
- * nla_for_each_attr() loop over all attributes
- * nla_for_each_nested() loop over the nested attributes
- *=========================================================================
- */
-
- /**
- * Standard attribute types to specify validation policy
- */
-enum {
- NLA_UNSPEC,
- NLA_U8,
- NLA_U16,
- NLA_U32,
- NLA_U64,
- NLA_STRING,
- NLA_FLAG,
- NLA_MSECS,
- NLA_NESTED,
- NLA_NESTED_COMPAT,
- NLA_NUL_STRING,
- NLA_BINARY,
- __NLA_TYPE_MAX,
-};
-
-#define NLA_TYPE_MAX (__NLA_TYPE_MAX - 1)
-
-/**
- * struct nla_policy - attribute validation policy
- * @type: Type of attribute or NLA_UNSPEC
- * @len: Type specific length of payload
- *
- * Policies are defined as arrays of this struct, the array must be
- * accessible by attribute type up to the highest identifier to be expected.
- *
- * Meaning of `len' field:
- * NLA_STRING Maximum length of string
- * NLA_NUL_STRING Maximum length of string (excluding NUL)
- * NLA_FLAG Unused
- * NLA_BINARY Maximum length of attribute payload
- * NLA_NESTED Don't use `len' field -- length verification is
- * done by checking len of nested header (or empty)
- * NLA_NESTED_COMPAT Minimum length of structure payload
- * NLA_U8, NLA_U16,
- * NLA_U32, NLA_U64,
- * NLA_MSECS Leaving the length field zero will verify the
- * given type fits, using it verifies minimum length
- * just like "All other"
- * All other Minimum length of attribute payload
- *
- * Example:
- * static const struct nla_policy my_policy[ATTR_MAX+1] = {
- * [ATTR_FOO] = { .type = NLA_U16 },
- * [ATTR_BAR] = { .type = NLA_STRING, .len = BARSIZ },
- * [ATTR_BAZ] = { .len = sizeof(struct mystruct) },
- * };
- */
-struct nla_policy {
- u16 type;
- u16 len;
-};
-
-/**
- * struct nl_info - netlink source information
- * @nlh: Netlink message header of original request
- * @pid: Netlink PID of requesting application
- */
-struct nl_info {
- struct nlmsghdr *nlh;
- struct net *nl_net;
- u32 pid;
-};
-
-extern int netlink_rcv_skb(struct sk_buff *skb,
- int (*cb)(struct sk_buff *,
- struct nlmsghdr *));
-extern int nlmsg_notify(struct sock *sk, struct sk_buff *skb,
- u32 pid, unsigned int group, int report,
- gfp_t flags);
-
-extern int nla_validate(const struct nlattr *head,
- int len, int maxtype,
- const struct nla_policy *policy);
-extern int nla_parse(struct nlattr **tb, int maxtype,
- const struct nlattr *head, int len,
- const struct nla_policy *policy);
-extern int nla_policy_len(const struct nla_policy *, int);
-extern struct nlattr * nla_find(const struct nlattr *head,
- int len, int attrtype);
-extern size_t nla_strlcpy(char *dst, const struct nlattr *nla,
- size_t dstsize);
-extern int nla_memcpy(void *dest, const struct nlattr *src, int count);
-extern int nla_memcmp(const struct nlattr *nla, const void *data,
- size_t size);
-extern int nla_strcmp(const struct nlattr *nla, const char *str);
-extern struct nlattr * __nla_reserve(struct sk_buff *skb, int attrtype,
- int attrlen);
-extern void * __nla_reserve_nohdr(struct sk_buff *skb, int attrlen);
-extern struct nlattr * nla_reserve(struct sk_buff *skb, int attrtype,
- int attrlen);
-extern void * nla_reserve_nohdr(struct sk_buff *skb, int attrlen);
-extern void __nla_put(struct sk_buff *skb, int attrtype,
- int attrlen, const void *data);
-extern void __nla_put_nohdr(struct sk_buff *skb, int attrlen,
- const void *data);
-extern int nla_put(struct sk_buff *skb, int attrtype,
- int attrlen, const void *data);
-extern int nla_put_nohdr(struct sk_buff *skb, int attrlen,
- const void *data);
-extern int nla_append(struct sk_buff *skb, int attrlen,
- const void *data);
-
-/**************************************************************************
- * Netlink Messages
- **************************************************************************/
-
-/**
- * nlmsg_msg_size - length of netlink message not including padding
- * @payload: length of message payload
- */
-static inline int nlmsg_msg_size(int payload)
-{
- return NLMSG_HDRLEN + payload;
-}
-
-/**
- * nlmsg_total_size - length of netlink message including padding
- * @payload: length of message payload
- */
-static inline int nlmsg_total_size(int payload)
-{
- return NLMSG_ALIGN(nlmsg_msg_size(payload));
-}
-
-/**
- * nlmsg_padlen - length of padding at the message's tail
- * @payload: length of message payload
- */
-static inline int nlmsg_padlen(int payload)
-{
- return nlmsg_total_size(payload) - nlmsg_msg_size(payload);
-}
-
-/**
- * nlmsg_data - head of message payload
- * @nlh: netlink message header
- */
-static inline void *nlmsg_data(const struct nlmsghdr *nlh)
-{
- return (unsigned char *) nlh + NLMSG_HDRLEN;
-}
-
-/**
- * nlmsg_len - length of message payload
- * @nlh: netlink message header
- */
-static inline int nlmsg_len(const struct nlmsghdr *nlh)
-{
- return nlh->nlmsg_len - NLMSG_HDRLEN;
-}
-
-/**
- * nlmsg_attrdata - head of attributes data
- * @nlh: netlink message header
- * @hdrlen: length of family specific header
- */
-static inline struct nlattr *nlmsg_attrdata(const struct nlmsghdr *nlh,
- int hdrlen)
-{
- unsigned char *data = nlmsg_data(nlh);
- return (struct nlattr *) (data + NLMSG_ALIGN(hdrlen));
-}
-
-/**
- * nlmsg_attrlen - length of attributes data
- * @nlh: netlink message header
- * @hdrlen: length of family specific header
- */
-static inline int nlmsg_attrlen(const struct nlmsghdr *nlh, int hdrlen)
-{
- return nlmsg_len(nlh) - NLMSG_ALIGN(hdrlen);
-}
-
-/**
- * nlmsg_ok - check if the netlink message fits into the remaining bytes
- * @nlh: netlink message header
- * @remaining: number of bytes remaining in message stream
- */
-static inline int nlmsg_ok(const struct nlmsghdr *nlh, int remaining)
-{
- return (remaining >= (int) sizeof(struct nlmsghdr) &&
- nlh->nlmsg_len >= sizeof(struct nlmsghdr) &&
- nlh->nlmsg_len <= remaining);
-}
-
-/**
- * nlmsg_next - next netlink message in message stream
- * @nlh: netlink message header
- * @remaining: number of bytes remaining in message stream
- *
- * Returns the next netlink message in the message stream and
- * decrements remaining by the size of the current message.
- */
-static inline struct nlmsghdr *
-nlmsg_next(const struct nlmsghdr *nlh, int *remaining)
-{
- int totlen = NLMSG_ALIGN(nlh->nlmsg_len);
-
- *remaining -= totlen;
-
- return (struct nlmsghdr *) ((unsigned char *) nlh + totlen);
-}
-
-/**
- * nlmsg_parse - parse attributes of a netlink message
- * @nlh: netlink message header
- * @hdrlen: length of family specific header
- * @tb: destination array with maxtype+1 elements
- * @maxtype: maximum attribute type to be expected
- * @policy: validation policy
- *
- * See nla_parse()
- */
-static inline int nlmsg_parse(const struct nlmsghdr *nlh, int hdrlen,
- struct nlattr *tb[], int maxtype,
- const struct nla_policy *policy)
-{
- if (nlh->nlmsg_len < nlmsg_msg_size(hdrlen))
- return -EINVAL;
-
- return nla_parse(tb, maxtype, nlmsg_attrdata(nlh, hdrlen),
- nlmsg_attrlen(nlh, hdrlen), policy);
-}
-
-/**
- * nlmsg_find_attr - find a specific attribute in a netlink message
- * @nlh: netlink message header
- * @hdrlen: length of familiy specific header
- * @attrtype: type of attribute to look for
- *
- * Returns the first attribute which matches the specified type.
- */
-static inline struct nlattr *nlmsg_find_attr(const struct nlmsghdr *nlh,
- int hdrlen, int attrtype)
-{
- return nla_find(nlmsg_attrdata(nlh, hdrlen),
- nlmsg_attrlen(nlh, hdrlen), attrtype);
-}
-
-/**
- * nlmsg_validate - validate a netlink message including attributes
- * @nlh: netlinket message header
- * @hdrlen: length of familiy specific header
- * @maxtype: maximum attribute type to be expected
- * @policy: validation policy
- */
-static inline int nlmsg_validate(const struct nlmsghdr *nlh,
- int hdrlen, int maxtype,
- const struct nla_policy *policy)
-{
- if (nlh->nlmsg_len < nlmsg_msg_size(hdrlen))
- return -EINVAL;
-
- return nla_validate(nlmsg_attrdata(nlh, hdrlen),
- nlmsg_attrlen(nlh, hdrlen), maxtype, policy);
-}
-
-/**
- * nlmsg_report - need to report back to application?
- * @nlh: netlink message header
- *
- * Returns 1 if a report back to the application is requested.
- */
-static inline int nlmsg_report(const struct nlmsghdr *nlh)
-{
- return !!(nlh->nlmsg_flags & NLM_F_ECHO);
-}
-
-/**
- * nlmsg_for_each_attr - iterate over a stream of attributes
- * @pos: loop counter, set to current attribute
- * @nlh: netlink message header
- * @hdrlen: length of familiy specific header
- * @rem: initialized to len, holds bytes currently remaining in stream
- */
-#define nlmsg_for_each_attr(pos, nlh, hdrlen, rem) \
- nla_for_each_attr(pos, nlmsg_attrdata(nlh, hdrlen), \
- nlmsg_attrlen(nlh, hdrlen), rem)
-
-/**
- * nlmsg_put - Add a new netlink message to an skb
- * @skb: socket buffer to store message in
- * @pid: netlink process id
- * @seq: sequence number of message
- * @type: message type
- * @payload: length of message payload
- * @flags: message flags
- *
- * Returns NULL if the tailroom of the skb is insufficient to store
- * the message header and payload.
- */
-static inline struct nlmsghdr *nlmsg_put(struct sk_buff *skb, u32 pid, u32 seq,
- int type, int payload, int flags)
-{
- if (unlikely(skb_tailroom(skb) < nlmsg_total_size(payload)))
- return NULL;
-
- return __nlmsg_put(skb, pid, seq, type, payload, flags);
-}
-
-/**
- * nlmsg_put_answer - Add a new callback based netlink message to an skb
- * @skb: socket buffer to store message in
- * @cb: netlink callback
- * @type: message type
- * @payload: length of message payload
- * @flags: message flags
- *
- * Returns NULL if the tailroom of the skb is insufficient to store
- * the message header and payload.
- */
-static inline struct nlmsghdr *nlmsg_put_answer(struct sk_buff *skb,
- struct netlink_callback *cb,
- int type, int payload,
- int flags)
-{
- return nlmsg_put(skb, NETLINK_CB(cb->skb).pid, cb->nlh->nlmsg_seq,
- type, payload, flags);
-}
-
-/**
- * nlmsg_new - Allocate a new netlink message
- * @payload: size of the message payload
- * @flags: the type of memory to allocate.
- *
- * Use NLMSG_DEFAULT_SIZE if the size of the payload isn't known
- * and a good default is needed.
- */
-static inline struct sk_buff *nlmsg_new(size_t payload, gfp_t flags)
-{
- return alloc_skb(nlmsg_total_size(payload), flags);
-}
-
-/**
- * nlmsg_end - Finalize a netlink message
- * @skb: socket buffer the message is stored in
- * @nlh: netlink message header
- *
- * Corrects the netlink message header to include the appeneded
- * attributes. Only necessary if attributes have been added to
- * the message.
- *
- * Returns the total data length of the skb.
- */
-static inline int nlmsg_end(struct sk_buff *skb, struct nlmsghdr *nlh)
-{
- nlh->nlmsg_len = skb_tail_pointer(skb) - (unsigned char *)nlh;
-
- return skb->len;
-}
-
-/**
- * nlmsg_get_pos - return current position in netlink message
- * @skb: socket buffer the message is stored in
- *
- * Returns a pointer to the current tail of the message.
- */
-static inline void *nlmsg_get_pos(struct sk_buff *skb)
-{
- return skb_tail_pointer(skb);
-}
-
-/**
- * nlmsg_trim - Trim message to a mark
- * @skb: socket buffer the message is stored in
- * @mark: mark to trim to
- *
- * Trims the message to the provided mark.
- */
-static inline void nlmsg_trim(struct sk_buff *skb, const void *mark)
-{
- if (mark)
- skb_trim(skb, (unsigned char *) mark - skb->data);
-}
-
-/**
- * nlmsg_cancel - Cancel construction of a netlink message
- * @skb: socket buffer the message is stored in
- * @nlh: netlink message header
- *
- * Removes the complete netlink message including all
- * attributes from the socket buffer again.
- */
-static inline void nlmsg_cancel(struct sk_buff *skb, struct nlmsghdr *nlh)
-{
- nlmsg_trim(skb, nlh);
-}
-
-/**
- * nlmsg_free - free a netlink message
- * @skb: socket buffer of netlink message
- */
-static inline void nlmsg_free(struct sk_buff *skb)
-{
- kfree_skb(skb);
-}
-
-/**
- * nlmsg_multicast - multicast a netlink message
- * @sk: netlink socket to spread messages to
- * @skb: netlink message as socket buffer
- * @pid: own netlink pid to avoid sending to yourself
- * @group: multicast group id
- * @flags: allocation flags
- */
-static inline int nlmsg_multicast(struct sock *sk, struct sk_buff *skb,
- u32 pid, unsigned int group, gfp_t flags)
-{
- int err;
-
- NETLINK_CB(skb).dst_group = group;
-
- err = netlink_broadcast(sk, skb, pid, group, flags);
- if (err > 0)
- err = 0;
-
- return err;
-}
-
-/**
- * nlmsg_unicast - unicast a netlink message
- * @sk: netlink socket to spread message to
- * @skb: netlink message as socket buffer
- * @pid: netlink pid of the destination socket
- */
-static inline int nlmsg_unicast(struct sock *sk, struct sk_buff *skb, u32 pid)
-{
- int err;
-
- err = netlink_unicast(sk, skb, pid, MSG_DONTWAIT);
- if (err > 0)
- err = 0;
-
- return err;
-}
-
-/**
- * nlmsg_for_each_msg - iterate over a stream of messages
- * @pos: loop counter, set to current message
- * @head: head of message stream
- * @len: length of message stream
- * @rem: initialized to len, holds bytes currently remaining in stream
- */
-#define nlmsg_for_each_msg(pos, head, len, rem) \
- for (pos = head, rem = len; \
- nlmsg_ok(pos, rem); \
- pos = nlmsg_next(pos, &(rem)))
-
-/**
- * nl_dump_check_consistent - check if sequence is consistent and advertise if not
- * @cb: netlink callback structure that stores the sequence number
- * @nlh: netlink message header to write the flag to
- *
- * This function checks if the sequence (generation) number changed during dump
- * and if it did, advertises it in the netlink message header.
- *
- * The correct way to use it is to set cb->seq to the generation counter when
- * all locks for dumping have been acquired, and then call this function for
- * each message that is generated.
- *
- * Note that due to initialisation concerns, 0 is an invalid sequence number
- * and must not be used by code that uses this functionality.
- */
-static inline void
-nl_dump_check_consistent(struct netlink_callback *cb,
- struct nlmsghdr *nlh)
-{
- if (cb->prev_seq && cb->seq != cb->prev_seq)
- nlh->nlmsg_flags |= NLM_F_DUMP_INTR;
- cb->prev_seq = cb->seq;
-}
-
-/**************************************************************************
- * Netlink Attributes
- **************************************************************************/
-
-/**
- * nla_attr_size - length of attribute not including padding
- * @payload: length of payload
- */
-static inline int nla_attr_size(int payload)
-{
- return NLA_HDRLEN + payload;
-}
-
-/**
- * nla_total_size - total length of attribute including padding
- * @payload: length of payload
- */
-static inline int nla_total_size(int payload)
-{
- return NLA_ALIGN(nla_attr_size(payload));
-}
-
-/**
- * nla_padlen - length of padding at the tail of attribute
- * @payload: length of payload
- */
-static inline int nla_padlen(int payload)
-{
- return nla_total_size(payload) - nla_attr_size(payload);
-}
-
-/**
- * nla_type - attribute type
- * @nla: netlink attribute
- */
-static inline int nla_type(const struct nlattr *nla)
-{
- return nla->nla_type & NLA_TYPE_MASK;
-}
-
-/**
- * nla_data - head of payload
- * @nla: netlink attribute
- */
-static inline void *nla_data(const struct nlattr *nla)
-{
- return (char *) nla + NLA_HDRLEN;
-}
-
-/**
- * nla_len - length of payload
- * @nla: netlink attribute
- */
-static inline int nla_len(const struct nlattr *nla)
-{
- return nla->nla_len - NLA_HDRLEN;
-}
-
-/**
- * nla_ok - check if the netlink attribute fits into the remaining bytes
- * @nla: netlink attribute
- * @remaining: number of bytes remaining in attribute stream
- */
-static inline int nla_ok(const struct nlattr *nla, int remaining)
-{
- return remaining >= (int) sizeof(*nla) &&
- nla->nla_len >= sizeof(*nla) &&
- nla->nla_len <= remaining;
-}
-
-/**
- * nla_next - next netlink attribute in attribute stream
- * @nla: netlink attribute
- * @remaining: number of bytes remaining in attribute stream
- *
- * Returns the next netlink attribute in the attribute stream and
- * decrements remaining by the size of the current attribute.
- */
-static inline struct nlattr *nla_next(const struct nlattr *nla, int *remaining)
-{
- int totlen = NLA_ALIGN(nla->nla_len);
-
- *remaining -= totlen;
- return (struct nlattr *) ((char *) nla + totlen);
-}
-
-/**
- * nla_find_nested - find attribute in a set of nested attributes
- * @nla: attribute containing the nested attributes
- * @attrtype: type of attribute to look for
- *
- * Returns the first attribute which matches the specified type.
- */
-static inline struct nlattr *
-nla_find_nested(const struct nlattr *nla, int attrtype)
-{
- return nla_find(nla_data(nla), nla_len(nla), attrtype);
-}
-
-/**
- * nla_parse_nested - parse nested attributes
- * @tb: destination array with maxtype+1 elements
- * @maxtype: maximum attribute type to be expected
- * @nla: attribute containing the nested attributes
- * @policy: validation policy
- *
- * See nla_parse()
- */
-static inline int nla_parse_nested(struct nlattr *tb[], int maxtype,
- const struct nlattr *nla,
- const struct nla_policy *policy)
-{
- return nla_parse(tb, maxtype, nla_data(nla), nla_len(nla), policy);
-}
-
-/**
- * nla_put_u8 - Add a u8 netlink attribute to a socket buffer
- * @skb: socket buffer to add attribute to
- * @attrtype: attribute type
- * @value: numeric value
- */
-static inline int nla_put_u8(struct sk_buff *skb, int attrtype, u8 value)
-{
- return nla_put(skb, attrtype, sizeof(u8), &value);
-}
-
-/**
- * nla_put_u16 - Add a u16 netlink attribute to a socket buffer
- * @skb: socket buffer to add attribute to
- * @attrtype: attribute type
- * @value: numeric value
- */
-static inline int nla_put_u16(struct sk_buff *skb, int attrtype, u16 value)
-{
- return nla_put(skb, attrtype, sizeof(u16), &value);
-}
-
-/**
- * nla_put_u32 - Add a u32 netlink attribute to a socket buffer
- * @skb: socket buffer to add attribute to
- * @attrtype: attribute type
- * @value: numeric value
- */
-static inline int nla_put_u32(struct sk_buff *skb, int attrtype, u32 value)
-{
- return nla_put(skb, attrtype, sizeof(u32), &value);
-}
-
-/**
- * nla_put_64 - Add a u64 netlink attribute to a socket buffer
- * @skb: socket buffer to add attribute to
- * @attrtype: attribute type
- * @value: numeric value
- */
-static inline int nla_put_u64(struct sk_buff *skb, int attrtype, u64 value)
-{
- return nla_put(skb, attrtype, sizeof(u64), &value);
-}
-
-/**
- * nla_put_string - Add a string netlink attribute to a socket buffer
- * @skb: socket buffer to add attribute to
- * @attrtype: attribute type
- * @str: NUL terminated string
- */
-static inline int nla_put_string(struct sk_buff *skb, int attrtype,
- const char *str)
-{
- return nla_put(skb, attrtype, strlen(str) + 1, str);
-}
-
-/**
- * nla_put_flag - Add a flag netlink attribute to a socket buffer
- * @skb: socket buffer to add attribute to
- * @attrtype: attribute type
- */
-static inline int nla_put_flag(struct sk_buff *skb, int attrtype)
-{
- return nla_put(skb, attrtype, 0, NULL);
-}
-
-/**
- * nla_put_msecs - Add a msecs netlink attribute to a socket buffer
- * @skb: socket buffer to add attribute to
- * @attrtype: attribute type
- * @jiffies: number of msecs in jiffies
- */
-static inline int nla_put_msecs(struct sk_buff *skb, int attrtype,
- unsigned long jiffies)
-{
- u64 tmp = jiffies_to_msecs(jiffies);
- return nla_put(skb, attrtype, sizeof(u64), &tmp);
-}
-
-#define NLA_PUT(skb, attrtype, attrlen, data) \
- do { \
- if (unlikely(nla_put(skb, attrtype, attrlen, data) < 0)) \
- goto nla_put_failure; \
- } while(0)
-
-#define NLA_PUT_TYPE(skb, type, attrtype, value) \
- do { \
- type __tmp = value; \
- NLA_PUT(skb, attrtype, sizeof(type), &__tmp); \
- } while(0)
-
-#define NLA_PUT_U8(skb, attrtype, value) \
- NLA_PUT_TYPE(skb, u8, attrtype, value)
-
-#define NLA_PUT_U16(skb, attrtype, value) \
- NLA_PUT_TYPE(skb, u16, attrtype, value)
-
-#define NLA_PUT_LE16(skb, attrtype, value) \
- NLA_PUT_TYPE(skb, __le16, attrtype, value)
-
-#define NLA_PUT_BE16(skb, attrtype, value) \
- NLA_PUT_TYPE(skb, __be16, attrtype, value)
-
-#define NLA_PUT_NET16(skb, attrtype, value) \
- NLA_PUT_BE16(skb, attrtype | NLA_F_NET_BYTEORDER, value)
-
-#define NLA_PUT_U32(skb, attrtype, value) \
- NLA_PUT_TYPE(skb, u32, attrtype, value)
-
-#define NLA_PUT_BE32(skb, attrtype, value) \
- NLA_PUT_TYPE(skb, __be32, attrtype, value)
-
-#define NLA_PUT_NET32(skb, attrtype, value) \
- NLA_PUT_BE32(skb, attrtype | NLA_F_NET_BYTEORDER, value)
-
-#define NLA_PUT_U64(skb, attrtype, value) \
- NLA_PUT_TYPE(skb, u64, attrtype, value)
-
-#define NLA_PUT_BE64(skb, attrtype, value) \
- NLA_PUT_TYPE(skb, __be64, attrtype, value)
-
-#define NLA_PUT_NET64(skb, attrtype, value) \
- NLA_PUT_BE64(skb, attrtype | NLA_F_NET_BYTEORDER, value)
-
-#define NLA_PUT_STRING(skb, attrtype, value) \
- NLA_PUT(skb, attrtype, strlen(value) + 1, value)
-
-#define NLA_PUT_FLAG(skb, attrtype) \
- NLA_PUT(skb, attrtype, 0, NULL)
-
-#define NLA_PUT_MSECS(skb, attrtype, jiffies) \
- NLA_PUT_U64(skb, attrtype, jiffies_to_msecs(jiffies))
-
-/**
- * nla_get_u32 - return payload of u32 attribute
- * @nla: u32 netlink attribute
- */
-static inline u32 nla_get_u32(const struct nlattr *nla)
-{
- return *(u32 *) nla_data(nla);
-}
-
-/**
- * nla_get_be32 - return payload of __be32 attribute
- * @nla: __be32 netlink attribute
- */
-static inline __be32 nla_get_be32(const struct nlattr *nla)
-{
- return *(__be32 *) nla_data(nla);
-}
-
-/**
- * nla_get_u16 - return payload of u16 attribute
- * @nla: u16 netlink attribute
- */
-static inline u16 nla_get_u16(const struct nlattr *nla)
-{
- return *(u16 *) nla_data(nla);
-}
-
-/**
- * nla_get_be16 - return payload of __be16 attribute
- * @nla: __be16 netlink attribute
- */
-static inline __be16 nla_get_be16(const struct nlattr *nla)
-{
- return *(__be16 *) nla_data(nla);
-}
-
-/**
- * nla_get_le16 - return payload of __le16 attribute
- * @nla: __le16 netlink attribute
- */
-static inline __le16 nla_get_le16(const struct nlattr *nla)
-{
- return *(__le16 *) nla_data(nla);
-}
-
-/**
- * nla_get_u8 - return payload of u8 attribute
- * @nla: u8 netlink attribute
- */
-static inline u8 nla_get_u8(const struct nlattr *nla)
-{
- return *(u8 *) nla_data(nla);
-}
-
-/**
- * nla_get_u64 - return payload of u64 attribute
- * @nla: u64 netlink attribute
- */
-static inline u64 nla_get_u64(const struct nlattr *nla)
-{
- u64 tmp;
-
- nla_memcpy(&tmp, nla, sizeof(tmp));
-
- return tmp;
-}
-
-/**
- * nla_get_be64 - return payload of __be64 attribute
- * @nla: __be64 netlink attribute
- */
-static inline __be64 nla_get_be64(const struct nlattr *nla)
-{
- __be64 tmp;
-
- nla_memcpy(&tmp, nla, sizeof(tmp));
-
- return tmp;
-}
-
-/**
- * nla_get_flag - return payload of flag attribute
- * @nla: flag netlink attribute
- */
-static inline int nla_get_flag(const struct nlattr *nla)
-{
- return !!nla;
-}
-
-/**
- * nla_get_msecs - return payload of msecs attribute
- * @nla: msecs netlink attribute
- *
- * Returns the number of milliseconds in jiffies.
- */
-static inline unsigned long nla_get_msecs(const struct nlattr *nla)
-{
- u64 msecs = nla_get_u64(nla);
-
- return msecs_to_jiffies((unsigned long) msecs);
-}
-
-/**
- * nla_nest_start - Start a new level of nested attributes
- * @skb: socket buffer to add attributes to
- * @attrtype: attribute type of container
- *
- * Returns the container attribute
- */
-static inline struct nlattr *nla_nest_start(struct sk_buff *skb, int attrtype)
-{
- struct nlattr *start = (struct nlattr *)skb_tail_pointer(skb);
-
- if (nla_put(skb, attrtype, 0, NULL) < 0)
- return NULL;
-
- return start;
-}
-
-/**
- * nla_nest_end - Finalize nesting of attributes
- * @skb: socket buffer the attributes are stored in
- * @start: container attribute
- *
- * Corrects the container attribute header to include the all
- * appeneded attributes.
- *
- * Returns the total data length of the skb.
- */
-static inline int nla_nest_end(struct sk_buff *skb, struct nlattr *start)
-{
- start->nla_len = skb_tail_pointer(skb) - (unsigned char *)start;
- return skb->len;
-}
-
-/**
- * nla_nest_cancel - Cancel nesting of attributes
- * @skb: socket buffer the message is stored in
- * @start: container attribute
- *
- * Removes the container attribute and including all nested
- * attributes. Returns -EMSGSIZE
- */
-static inline void nla_nest_cancel(struct sk_buff *skb, struct nlattr *start)
-{
- nlmsg_trim(skb, start);
-}
-
-/**
- * nla_validate_nested - Validate a stream of nested attributes
- * @start: container attribute
- * @maxtype: maximum attribute type to be expected
- * @policy: validation policy
- *
- * Validates all attributes in the nested attribute stream against the
- * specified policy. Attributes with a type exceeding maxtype will be
- * ignored. See documenation of struct nla_policy for more details.
- *
- * Returns 0 on success or a negative error code.
- */
-static inline int nla_validate_nested(const struct nlattr *start, int maxtype,
- const struct nla_policy *policy)
-{
- return nla_validate(nla_data(start), nla_len(start), maxtype, policy);
-}
-
-/**
- * nla_for_each_attr - iterate over a stream of attributes
- * @pos: loop counter, set to current attribute
- * @head: head of attribute stream
- * @len: length of attribute stream
- * @rem: initialized to len, holds bytes currently remaining in stream
- */
-#define nla_for_each_attr(pos, head, len, rem) \
- for (pos = head, rem = len; \
- nla_ok(pos, rem); \
- pos = nla_next(pos, &(rem)))
-
-/**
- * nla_for_each_nested - iterate over nested attributes
- * @pos: loop counter, set to current attribute
- * @nla: attribute containing the nested attributes
- * @rem: initialized to len, holds bytes currently remaining in stream
- */
-#define nla_for_each_nested(pos, nla, rem) \
- nla_for_each_attr(pos, nla_data(nla), nla_len(nla), rem)
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/netns/conntrack.h b/ANDROID_3.4.5/include/net/netns/conntrack.h
deleted file mode 100644
index 7a911eca..00000000
--- a/ANDROID_3.4.5/include/net/netns/conntrack.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef __NETNS_CONNTRACK_H
-#define __NETNS_CONNTRACK_H
-
-#include <linux/list.h>
-#include <linux/list_nulls.h>
-#include <linux/atomic.h>
-
-struct ctl_table_header;
-struct nf_conntrack_ecache;
-
-struct netns_ct {
- atomic_t count;
- unsigned int expect_count;
- unsigned int htable_size;
- struct kmem_cache *nf_conntrack_cachep;
- struct hlist_nulls_head *hash;
- struct hlist_head *expect_hash;
- struct hlist_nulls_head unconfirmed;
- struct hlist_nulls_head dying;
- struct ip_conntrack_stat __percpu *stat;
- struct nf_ct_event_notifier __rcu *nf_conntrack_event_cb;
- struct nf_exp_event_notifier __rcu *nf_expect_event_cb;
- int sysctl_events;
- unsigned int sysctl_events_retry_timeout;
- int sysctl_acct;
- int sysctl_tstamp;
- int sysctl_checksum;
- unsigned int sysctl_log_invalid; /* Log invalid packets */
-#ifdef CONFIG_SYSCTL
- struct ctl_table_header *sysctl_header;
- struct ctl_table_header *acct_sysctl_header;
- struct ctl_table_header *tstamp_sysctl_header;
- struct ctl_table_header *event_sysctl_header;
-#endif
- char *slabname;
-};
-#endif
diff --git a/ANDROID_3.4.5/include/net/netns/core.h b/ANDROID_3.4.5/include/net/netns/core.h
deleted file mode 100644
index 78eb1ff7..00000000
--- a/ANDROID_3.4.5/include/net/netns/core.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef __NETNS_CORE_H__
-#define __NETNS_CORE_H__
-
-struct ctl_table_header;
-struct prot_inuse;
-
-struct netns_core {
- /* core sysctls */
- struct ctl_table_header *sysctl_hdr;
-
- int sysctl_somaxconn;
-
- struct prot_inuse __percpu *inuse;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/netns/dccp.h b/ANDROID_3.4.5/include/net/netns/dccp.h
deleted file mode 100644
index 98d2a7ce..00000000
--- a/ANDROID_3.4.5/include/net/netns/dccp.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef __NETNS_DCCP_H__
-#define __NETNS_DCCP_H__
-
-struct sock;
-
-struct netns_dccp {
- struct sock *v4_ctl_sk;
- struct sock *v6_ctl_sk;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/netns/generic.h b/ANDROID_3.4.5/include/net/netns/generic.h
deleted file mode 100644
index 0931618c..00000000
--- a/ANDROID_3.4.5/include/net/netns/generic.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * generic net pointers
- */
-
-#ifndef __NET_GENERIC_H__
-#define __NET_GENERIC_H__
-
-#include <linux/bug.h>
-#include <linux/rcupdate.h>
-
-/*
- * Generic net pointers are to be used by modules to put some private
- * stuff on the struct net without explicit struct net modification
- *
- * The rules are simple:
- * 1. set pernet_operations->id. After register_pernet_device you
- * will have the id of your private pointer.
- * 2. set pernet_operations->size to have the code allocate and free
- * a private structure pointed to from struct net.
- * 3. do not change this pointer while the net is alive;
- * 4. do not try to have any private reference on the net_generic object.
- *
- * After accomplishing all of the above, the private pointer can be
- * accessed with the net_generic() call.
- */
-
-struct net_generic {
- unsigned int len;
- struct rcu_head rcu;
-
- void *ptr[0];
-};
-
-static inline void *net_generic(const struct net *net, int id)
-{
- struct net_generic *ng;
- void *ptr;
-
- rcu_read_lock();
- ng = rcu_dereference(net->gen);
- BUG_ON(id == 0 || id > ng->len);
- ptr = ng->ptr[id - 1];
- rcu_read_unlock();
-
- BUG_ON(!ptr);
- return ptr;
-}
-#endif
diff --git a/ANDROID_3.4.5/include/net/netns/hash.h b/ANDROID_3.4.5/include/net/netns/hash.h
deleted file mode 100644
index 548d78f2..00000000
--- a/ANDROID_3.4.5/include/net/netns/hash.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef __NET_NS_HASH_H__
-#define __NET_NS_HASH_H__
-
-#include <asm/cache.h>
-
-struct net;
-
-static inline unsigned net_hash_mix(struct net *net)
-{
-#ifdef CONFIG_NET_NS
- /*
- * shift this right to eliminate bits, that are
- * always zeroed
- */
-
- return (unsigned)(((unsigned long)net) >> L1_CACHE_SHIFT);
-#else
- return 0;
-#endif
-}
-#endif
diff --git a/ANDROID_3.4.5/include/net/netns/ipv4.h b/ANDROID_3.4.5/include/net/netns/ipv4.h
deleted file mode 100644
index bbd023a1..00000000
--- a/ANDROID_3.4.5/include/net/netns/ipv4.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * ipv4 in net namespaces
- */
-
-#ifndef __NETNS_IPV4_H__
-#define __NETNS_IPV4_H__
-
-#include <net/inet_frag.h>
-
-struct ctl_table_header;
-struct ipv4_devconf;
-struct fib_rules_ops;
-struct hlist_head;
-struct sock;
-
-struct netns_ipv4 {
-#ifdef CONFIG_SYSCTL
- struct ctl_table_header *forw_hdr;
- struct ctl_table_header *frags_hdr;
- struct ctl_table_header *ipv4_hdr;
- struct ctl_table_header *route_hdr;
-#endif
- struct ipv4_devconf *devconf_all;
- struct ipv4_devconf *devconf_dflt;
-#ifdef CONFIG_IP_MULTIPLE_TABLES
- struct fib_rules_ops *rules_ops;
-#endif
- struct hlist_head *fib_table_hash;
- struct sock *fibnl;
-
- struct sock **icmp_sk;
- struct sock *tcp_sock;
-
- struct netns_frags frags;
-#ifdef CONFIG_NETFILTER
- struct xt_table *iptable_filter;
- struct xt_table *iptable_mangle;
- struct xt_table *iptable_raw;
- struct xt_table *arptable_filter;
-#ifdef CONFIG_SECURITY
- struct xt_table *iptable_security;
-#endif
- struct xt_table *nat_table;
- struct hlist_head *nat_bysource;
- unsigned int nat_htable_size;
-#endif
-
- int sysctl_icmp_echo_ignore_all;
- int sysctl_icmp_echo_ignore_broadcasts;
- int sysctl_icmp_ignore_bogus_error_responses;
- int sysctl_icmp_ratelimit;
- int sysctl_icmp_ratemask;
- int sysctl_icmp_errors_use_inbound_ifaddr;
- int sysctl_rt_cache_rebuild_count;
- int current_rt_cache_rebuild_count;
-
- unsigned int sysctl_ping_group_range[2];
- long sysctl_tcp_mem[3];
-
- atomic_t rt_genid;
- atomic_t dev_addr_genid;
-
-#ifdef CONFIG_IP_MROUTE
-#ifndef CONFIG_IP_MROUTE_MULTIPLE_TABLES
- struct mr_table *mrt;
-#else
- struct list_head mr_tables;
- struct fib_rules_ops *mr_rules_ops;
-#endif
-#endif
-};
-#endif
diff --git a/ANDROID_3.4.5/include/net/netns/ipv6.h b/ANDROID_3.4.5/include/net/netns/ipv6.h
deleted file mode 100644
index 81abfcb2..00000000
--- a/ANDROID_3.4.5/include/net/netns/ipv6.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * ipv6 in net namespaces
- */
-
-#include <net/inet_frag.h>
-
-#ifndef __NETNS_IPV6_H__
-#define __NETNS_IPV6_H__
-#include <net/dst_ops.h>
-
-struct ctl_table_header;
-
-struct netns_sysctl_ipv6 {
-#ifdef CONFIG_SYSCTL
- struct ctl_table_header *table;
- struct ctl_table_header *frags_hdr;
-#endif
- int bindv6only;
- int flush_delay;
- int ip6_rt_max_size;
- int ip6_rt_gc_min_interval;
- int ip6_rt_gc_timeout;
- int ip6_rt_gc_interval;
- int ip6_rt_gc_elasticity;
- int ip6_rt_mtu_expires;
- int ip6_rt_min_advmss;
- int icmpv6_time;
-};
-
-struct netns_ipv6 {
- struct netns_sysctl_ipv6 sysctl;
- struct ipv6_devconf *devconf_all;
- struct ipv6_devconf *devconf_dflt;
- struct netns_frags frags;
-#ifdef CONFIG_NETFILTER
- struct xt_table *ip6table_filter;
- struct xt_table *ip6table_mangle;
- struct xt_table *ip6table_raw;
-#ifdef CONFIG_SECURITY
- struct xt_table *ip6table_security;
-#endif
-#endif
- struct rt6_info *ip6_null_entry;
- struct rt6_statistics *rt6_stats;
- struct timer_list ip6_fib_timer;
- struct hlist_head *fib_table_hash;
- struct fib6_table *fib6_main_tbl;
- struct dst_ops ip6_dst_ops;
- unsigned int ip6_rt_gc_expire;
- unsigned long ip6_rt_last_gc;
-#ifdef CONFIG_IPV6_MULTIPLE_TABLES
- struct rt6_info *ip6_prohibit_entry;
- struct rt6_info *ip6_blk_hole_entry;
- struct fib6_table *fib6_local_tbl;
- struct fib_rules_ops *fib6_rules_ops;
-#endif
- struct sock **icmp_sk;
- struct sock *ndisc_sk;
- struct sock *tcp_sk;
- struct sock *igmp_sk;
-#ifdef CONFIG_IPV6_MROUTE
-#ifndef CONFIG_IPV6_MROUTE_MULTIPLE_TABLES
- struct mr6_table *mrt6;
-#else
- struct list_head mr6_tables;
- struct fib_rules_ops *mr6_rules_ops;
-#endif
-#endif
-};
-#endif
diff --git a/ANDROID_3.4.5/include/net/netns/mib.h b/ANDROID_3.4.5/include/net/netns/mib.h
deleted file mode 100644
index d542a4b2..00000000
--- a/ANDROID_3.4.5/include/net/netns/mib.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef __NETNS_MIB_H__
-#define __NETNS_MIB_H__
-
-#include <net/snmp.h>
-
-struct netns_mib {
- DEFINE_SNMP_STAT(struct tcp_mib, tcp_statistics);
- DEFINE_SNMP_STAT(struct ipstats_mib, ip_statistics);
- DEFINE_SNMP_STAT(struct linux_mib, net_statistics);
- DEFINE_SNMP_STAT(struct udp_mib, udp_statistics);
- DEFINE_SNMP_STAT(struct udp_mib, udplite_statistics);
- DEFINE_SNMP_STAT(struct icmp_mib, icmp_statistics);
- DEFINE_SNMP_STAT_ATOMIC(struct icmpmsg_mib, icmpmsg_statistics);
-
-#if IS_ENABLED(CONFIG_IPV6)
- struct proc_dir_entry *proc_net_devsnmp6;
- DEFINE_SNMP_STAT(struct udp_mib, udp_stats_in6);
- DEFINE_SNMP_STAT(struct udp_mib, udplite_stats_in6);
- DEFINE_SNMP_STAT(struct ipstats_mib, ipv6_statistics);
- DEFINE_SNMP_STAT(struct icmpv6_mib, icmpv6_statistics);
- DEFINE_SNMP_STAT_ATOMIC(struct icmpv6msg_mib, icmpv6msg_statistics);
-#endif
-#ifdef CONFIG_XFRM_STATISTICS
- DEFINE_SNMP_STAT(struct linux_xfrm_mib, xfrm_statistics);
-#endif
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/netns/packet.h b/ANDROID_3.4.5/include/net/netns/packet.h
deleted file mode 100644
index cb4e894c..00000000
--- a/ANDROID_3.4.5/include/net/netns/packet.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * Packet network namespace
- */
-#ifndef __NETNS_PACKET_H__
-#define __NETNS_PACKET_H__
-
-#include <linux/rculist.h>
-#include <linux/spinlock.h>
-
-struct netns_packet {
- spinlock_t sklist_lock;
- struct hlist_head sklist;
-};
-
-#endif /* __NETNS_PACKET_H__ */
diff --git a/ANDROID_3.4.5/include/net/netns/unix.h b/ANDROID_3.4.5/include/net/netns/unix.h
deleted file mode 100644
index 284649d4..00000000
--- a/ANDROID_3.4.5/include/net/netns/unix.h
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * Unix network namespace
- */
-#ifndef __NETNS_UNIX_H__
-#define __NETNS_UNIX_H__
-
-struct ctl_table_header;
-struct netns_unix {
- int sysctl_max_dgram_qlen;
- struct ctl_table_header *ctl;
-};
-
-#endif /* __NETNS_UNIX_H__ */
diff --git a/ANDROID_3.4.5/include/net/netns/x_tables.h b/ANDROID_3.4.5/include/net/netns/x_tables.h
deleted file mode 100644
index 591db7d6..00000000
--- a/ANDROID_3.4.5/include/net/netns/x_tables.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef __NETNS_X_TABLES_H
-#define __NETNS_X_TABLES_H
-
-#include <linux/list.h>
-#include <linux/netfilter.h>
-
-struct ebt_table;
-
-struct netns_xt {
- struct list_head tables[NFPROTO_NUMPROTO];
-#if defined(CONFIG_BRIDGE_NF_EBTABLES) || \
- defined(CONFIG_BRIDGE_NF_EBTABLES_MODULE)
- struct ebt_table *broute_table;
- struct ebt_table *frame_filter;
- struct ebt_table *frame_nat;
-#endif
-};
-#endif
diff --git a/ANDROID_3.4.5/include/net/netns/xfrm.h b/ANDROID_3.4.5/include/net/netns/xfrm.h
deleted file mode 100644
index 5299e69a..00000000
--- a/ANDROID_3.4.5/include/net/netns/xfrm.h
+++ /dev/null
@@ -1,64 +0,0 @@
-#ifndef __NETNS_XFRM_H
-#define __NETNS_XFRM_H
-
-#include <linux/list.h>
-#include <linux/wait.h>
-#include <linux/workqueue.h>
-#include <linux/xfrm.h>
-#include <net/dst_ops.h>
-
-struct ctl_table_header;
-
-struct xfrm_policy_hash {
- struct hlist_head *table;
- unsigned int hmask;
-};
-
-struct netns_xfrm {
- struct list_head state_all;
- /*
- * Hash table to find appropriate SA towards given target (endpoint of
- * tunnel or destination of transport mode) allowed by selector.
- *
- * Main use is finding SA after policy selected tunnel or transport
- * mode. Also, it can be used by ah/esp icmp error handler to find
- * offending SA.
- */
- struct hlist_head *state_bydst;
- struct hlist_head *state_bysrc;
- struct hlist_head *state_byspi;
- unsigned int state_hmask;
- unsigned int state_num;
- struct work_struct state_hash_work;
- struct hlist_head state_gc_list;
- struct work_struct state_gc_work;
-
- wait_queue_head_t km_waitq;
-
- struct list_head policy_all;
- struct hlist_head *policy_byidx;
- unsigned int policy_idx_hmask;
- struct hlist_head policy_inexact[XFRM_POLICY_MAX * 2];
- struct xfrm_policy_hash policy_bydst[XFRM_POLICY_MAX * 2];
- unsigned int policy_count[XFRM_POLICY_MAX * 2];
- struct work_struct policy_hash_work;
-
-
- struct sock *nlsk;
- struct sock *nlsk_stash;
-
- u32 sysctl_aevent_etime;
- u32 sysctl_aevent_rseqth;
- int sysctl_larval_drop;
- u32 sysctl_acq_expires;
-#ifdef CONFIG_SYSCTL
- struct ctl_table_header *sysctl_hdr;
-#endif
-
- struct dst_ops xfrm4_dst_ops;
-#if IS_ENABLED(CONFIG_IPV6)
- struct dst_ops xfrm6_dst_ops;
-#endif
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/netprio_cgroup.h b/ANDROID_3.4.5/include/net/netprio_cgroup.h
deleted file mode 100644
index d58fdec4..00000000
--- a/ANDROID_3.4.5/include/net/netprio_cgroup.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * netprio_cgroup.h Control Group Priority set
- *
- *
- * Authors: Neil Horman <nhorman@tuxdriver.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 _NETPRIO_CGROUP_H
-#define _NETPRIO_CGROUP_H
-#include <linux/cgroup.h>
-#include <linux/hardirq.h>
-#include <linux/rcupdate.h>
-
-
-struct netprio_map {
- struct rcu_head rcu;
- u32 priomap_len;
- u32 priomap[];
-};
-
-#ifdef CONFIG_CGROUPS
-
-struct cgroup_netprio_state {
- struct cgroup_subsys_state css;
- u32 prioidx;
-};
-
-#ifndef CONFIG_NETPRIO_CGROUP
-extern int net_prio_subsys_id;
-#endif
-
-extern void sock_update_netprioidx(struct sock *sk);
-
-#if IS_BUILTIN(CONFIG_NETPRIO_CGROUP)
-
-static inline u32 task_netprioidx(struct task_struct *p)
-{
- struct cgroup_netprio_state *state;
- u32 idx;
-
- rcu_read_lock();
- state = container_of(task_subsys_state(p, net_prio_subsys_id),
- struct cgroup_netprio_state, css);
- idx = state->prioidx;
- rcu_read_unlock();
- return idx;
-}
-
-#elif IS_MODULE(CONFIG_NETPRIO_CGROUP)
-
-static inline u32 task_netprioidx(struct task_struct *p)
-{
- struct cgroup_netprio_state *state;
- int subsys_id;
- u32 idx = 0;
-
- rcu_read_lock();
- subsys_id = rcu_dereference_index_check(net_prio_subsys_id,
- rcu_read_lock_held());
- if (subsys_id >= 0) {
- state = container_of(task_subsys_state(p, subsys_id),
- struct cgroup_netprio_state, css);
- idx = state->prioidx;
- }
- rcu_read_unlock();
- return idx;
-}
-
-#else
-
-static inline u32 task_netprioidx(struct task_struct *p)
-{
- return 0;
-}
-
-#endif /* CONFIG_NETPRIO_CGROUP */
-
-#else
-#define sock_update_netprioidx(sk)
-#endif
-
-#endif /* _NET_CLS_CGROUP_H */
diff --git a/ANDROID_3.4.5/include/net/netrom.h b/ANDROID_3.4.5/include/net/netrom.h
deleted file mode 100644
index f0793c1c..00000000
--- a/ANDROID_3.4.5/include/net/netrom.h
+++ /dev/null
@@ -1,270 +0,0 @@
-/*
- * Declarations of NET/ROM type objects.
- *
- * Jonathan Naylor G4KLX 9/4/95
- */
-
-#ifndef _NETROM_H
-#define _NETROM_H
-
-#include <linux/netrom.h>
-#include <linux/list.h>
-#include <linux/slab.h>
-#include <net/sock.h>
-
-#define NR_NETWORK_LEN 15
-#define NR_TRANSPORT_LEN 5
-
-#define NR_PROTO_IP 0x0C
-
-#define NR_PROTOEXT 0x00
-#define NR_CONNREQ 0x01
-#define NR_CONNACK 0x02
-#define NR_DISCREQ 0x03
-#define NR_DISCACK 0x04
-#define NR_INFO 0x05
-#define NR_INFOACK 0x06
-#define NR_RESET 0x07
-
-#define NR_CHOKE_FLAG 0x80
-#define NR_NAK_FLAG 0x40
-#define NR_MORE_FLAG 0x20
-
-/* Define Link State constants. */
-enum {
- NR_STATE_0,
- NR_STATE_1,
- NR_STATE_2,
- NR_STATE_3
-};
-
-#define NR_COND_ACK_PENDING 0x01
-#define NR_COND_REJECT 0x02
-#define NR_COND_PEER_RX_BUSY 0x04
-#define NR_COND_OWN_RX_BUSY 0x08
-
-#define NR_DEFAULT_T1 120000 /* Outstanding frames - 120 seconds */
-#define NR_DEFAULT_T2 5000 /* Response delay - 5 seconds */
-#define NR_DEFAULT_N2 3 /* Number of Retries - 3 */
-#define NR_DEFAULT_T4 180000 /* Busy Delay - 180 seconds */
-#define NR_DEFAULT_IDLE 0 /* No Activity Timeout - none */
-#define NR_DEFAULT_WINDOW 4 /* Default Window Size - 4 */
-#define NR_DEFAULT_OBS 6 /* Default Obsolescence Count - 6 */
-#define NR_DEFAULT_QUAL 10 /* Default Neighbour Quality - 10 */
-#define NR_DEFAULT_TTL 16 /* Default Time To Live - 16 */
-#define NR_DEFAULT_ROUTING 1 /* Is routing enabled ? */
-#define NR_DEFAULT_FAILS 2 /* Link fails until route fails */
-#define NR_DEFAULT_RESET 0 /* Sent / accept reset cmds? */
-
-#define NR_MODULUS 256
-#define NR_MAX_WINDOW_SIZE 127 /* Maximum Window Allowable - 127 */
-#define NR_MAX_PACKET_SIZE 236 /* Maximum Packet Length - 236 */
-
-struct nr_sock {
- struct sock sock;
- ax25_address user_addr, source_addr, dest_addr;
- struct net_device *device;
- unsigned char my_index, my_id;
- unsigned char your_index, your_id;
- unsigned char state, condition, bpqext, window;
- unsigned short vs, vr, va, vl;
- unsigned char n2, n2count;
- unsigned long t1, t2, t4, idle;
- unsigned short fraglen;
- struct timer_list t1timer;
- struct timer_list t2timer;
- struct timer_list t4timer;
- struct timer_list idletimer;
- struct sk_buff_head ack_queue;
- struct sk_buff_head reseq_queue;
- struct sk_buff_head frag_queue;
-};
-
-#define nr_sk(sk) ((struct nr_sock *)(sk))
-
-struct nr_neigh {
- struct hlist_node neigh_node;
- ax25_address callsign;
- ax25_digi *digipeat;
- ax25_cb *ax25;
- struct net_device *dev;
- unsigned char quality;
- unsigned char locked;
- unsigned short count;
- unsigned int number;
- unsigned char failed;
- atomic_t refcount;
-};
-
-struct nr_route {
- unsigned char quality;
- unsigned char obs_count;
- struct nr_neigh *neighbour;
-};
-
-struct nr_node {
- struct hlist_node node_node;
- ax25_address callsign;
- char mnemonic[7];
- unsigned char which;
- unsigned char count;
- struct nr_route routes[3];
- atomic_t refcount;
- spinlock_t node_lock;
-};
-
-/*********************************************************************
- * nr_node & nr_neigh lists, refcounting and locking
- *********************************************************************/
-
-#define nr_node_hold(__nr_node) \
- atomic_inc(&((__nr_node)->refcount))
-
-static __inline__ void nr_node_put(struct nr_node *nr_node)
-{
- if (atomic_dec_and_test(&nr_node->refcount)) {
- kfree(nr_node);
- }
-}
-
-#define nr_neigh_hold(__nr_neigh) \
- atomic_inc(&((__nr_neigh)->refcount))
-
-static __inline__ void nr_neigh_put(struct nr_neigh *nr_neigh)
-{
- if (atomic_dec_and_test(&nr_neigh->refcount)) {
- if (nr_neigh->ax25)
- ax25_cb_put(nr_neigh->ax25);
- kfree(nr_neigh->digipeat);
- kfree(nr_neigh);
- }
-}
-
-/* nr_node_lock and nr_node_unlock also hold/put the node's refcounter.
- */
-static __inline__ void nr_node_lock(struct nr_node *nr_node)
-{
- nr_node_hold(nr_node);
- spin_lock_bh(&nr_node->node_lock);
-}
-
-static __inline__ void nr_node_unlock(struct nr_node *nr_node)
-{
- spin_unlock_bh(&nr_node->node_lock);
- nr_node_put(nr_node);
-}
-
-#define nr_neigh_for_each(__nr_neigh, node, list) \
- hlist_for_each_entry(__nr_neigh, node, list, neigh_node)
-
-#define nr_neigh_for_each_safe(__nr_neigh, node, node2, list) \
- hlist_for_each_entry_safe(__nr_neigh, node, node2, list, neigh_node)
-
-#define nr_node_for_each(__nr_node, node, list) \
- hlist_for_each_entry(__nr_node, node, list, node_node)
-
-#define nr_node_for_each_safe(__nr_node, node, node2, list) \
- hlist_for_each_entry_safe(__nr_node, node, node2, list, node_node)
-
-
-/*********************************************************************/
-
-/* af_netrom.c */
-extern int sysctl_netrom_default_path_quality;
-extern int sysctl_netrom_obsolescence_count_initialiser;
-extern int sysctl_netrom_network_ttl_initialiser;
-extern int sysctl_netrom_transport_timeout;
-extern int sysctl_netrom_transport_maximum_tries;
-extern int sysctl_netrom_transport_acknowledge_delay;
-extern int sysctl_netrom_transport_busy_delay;
-extern int sysctl_netrom_transport_requested_window_size;
-extern int sysctl_netrom_transport_no_activity_timeout;
-extern int sysctl_netrom_routing_control;
-extern int sysctl_netrom_link_fails_count;
-extern int sysctl_netrom_reset_circuit;
-
-extern int nr_rx_frame(struct sk_buff *, struct net_device *);
-extern void nr_destroy_socket(struct sock *);
-
-/* nr_dev.c */
-extern int nr_rx_ip(struct sk_buff *, struct net_device *);
-extern void nr_setup(struct net_device *);
-
-/* nr_in.c */
-extern int nr_process_rx_frame(struct sock *, struct sk_buff *);
-
-/* nr_loopback.c */
-extern void nr_loopback_init(void);
-extern void nr_loopback_clear(void);
-extern int nr_loopback_queue(struct sk_buff *);
-
-/* nr_out.c */
-extern void nr_output(struct sock *, struct sk_buff *);
-extern void nr_send_nak_frame(struct sock *);
-extern void nr_kick(struct sock *);
-extern void nr_transmit_buffer(struct sock *, struct sk_buff *);
-extern void nr_establish_data_link(struct sock *);
-extern void nr_enquiry_response(struct sock *);
-extern void nr_check_iframes_acked(struct sock *, unsigned short);
-
-/* nr_route.c */
-extern void nr_rt_device_down(struct net_device *);
-extern struct net_device *nr_dev_first(void);
-extern struct net_device *nr_dev_get(ax25_address *);
-extern int nr_rt_ioctl(unsigned int, void __user *);
-extern void nr_link_failed(ax25_cb *, int);
-extern int nr_route_frame(struct sk_buff *, ax25_cb *);
-extern const struct file_operations nr_nodes_fops;
-extern const struct file_operations nr_neigh_fops;
-extern void nr_rt_free(void);
-
-/* nr_subr.c */
-extern void nr_clear_queues(struct sock *);
-extern void nr_frames_acked(struct sock *, unsigned short);
-extern void nr_requeue_frames(struct sock *);
-extern int nr_validate_nr(struct sock *, unsigned short);
-extern int nr_in_rx_window(struct sock *, unsigned short);
-extern void nr_write_internal(struct sock *, int);
-
-extern void __nr_transmit_reply(struct sk_buff *skb, int mine,
- unsigned char cmdflags);
-
-/*
- * This routine is called when a Connect Acknowledge with the Choke Flag
- * set is needed to refuse a connection.
- */
-#define nr_transmit_refusal(skb, mine) \
-do { \
- __nr_transmit_reply((skb), (mine), NR_CONNACK | NR_CHOKE_FLAG); \
-} while (0)
-
-/*
- * This routine is called when we don't have a circuit matching an incoming
- * NET/ROM packet. This is an G8PZT Xrouter extension.
- */
-#define nr_transmit_reset(skb, mine) \
-do { \
- __nr_transmit_reply((skb), (mine), NR_RESET); \
-} while (0)
-
-extern void nr_disconnect(struct sock *, int);
-
-/* nr_timer.c */
-extern void nr_init_timers(struct sock *sk);
-extern void nr_start_heartbeat(struct sock *);
-extern void nr_start_t1timer(struct sock *);
-extern void nr_start_t2timer(struct sock *);
-extern void nr_start_t4timer(struct sock *);
-extern void nr_start_idletimer(struct sock *);
-extern void nr_stop_heartbeat(struct sock *);
-extern void nr_stop_t1timer(struct sock *);
-extern void nr_stop_t2timer(struct sock *);
-extern void nr_stop_t4timer(struct sock *);
-extern void nr_stop_idletimer(struct sock *);
-extern int nr_t1timer_running(struct sock *);
-
-/* sysctl_net_netrom.c */
-extern void nr_register_sysctl(void);
-extern void nr_unregister_sysctl(void);
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/nexthop.h b/ANDROID_3.4.5/include/net/nexthop.h
deleted file mode 100644
index 3334dbfa..00000000
--- a/ANDROID_3.4.5/include/net/nexthop.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef __NET_NEXTHOP_H
-#define __NET_NEXTHOP_H
-
-#include <linux/rtnetlink.h>
-#include <net/netlink.h>
-
-static inline int rtnh_ok(const struct rtnexthop *rtnh, int remaining)
-{
- return remaining >= sizeof(*rtnh) &&
- rtnh->rtnh_len >= sizeof(*rtnh) &&
- rtnh->rtnh_len <= remaining;
-}
-
-static inline struct rtnexthop *rtnh_next(const struct rtnexthop *rtnh,
- int *remaining)
-{
- int totlen = NLA_ALIGN(rtnh->rtnh_len);
-
- *remaining -= totlen;
- return (struct rtnexthop *) ((char *) rtnh + totlen);
-}
-
-static inline struct nlattr *rtnh_attrs(const struct rtnexthop *rtnh)
-{
- return (struct nlattr *) ((char *) rtnh + NLA_ALIGN(sizeof(*rtnh)));
-}
-
-static inline int rtnh_attrlen(const struct rtnexthop *rtnh)
-{
- return rtnh->rtnh_len - NLA_ALIGN(sizeof(*rtnh));
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/nfc/nci.h b/ANDROID_3.4.5/include/net/nfc/nci.h
deleted file mode 100644
index 276094b9..00000000
--- a/ANDROID_3.4.5/include/net/nfc/nci.h
+++ /dev/null
@@ -1,364 +0,0 @@
-/*
- * The NFC Controller Interface is the communication protocol between an
- * NFC Controller (NFCC) and a Device Host (DH).
- *
- * Copyright (C) 2011 Texas Instruments, Inc.
- *
- * Written by Ilan Elias <ilane@ti.com>
- *
- * Acknowledgements:
- * This file is based on hci.h, which was written
- * by Maxim Krasnyansky.
- *
- * 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
- *
- * 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
- *
- */
-
-#ifndef __NCI_H
-#define __NCI_H
-
-/* NCI constants */
-#define NCI_MAX_NUM_MAPPING_CONFIGS 10
-#define NCI_MAX_NUM_RF_CONFIGS 10
-#define NCI_MAX_NUM_CONN 10
-
-/* NCI Status Codes */
-#define NCI_STATUS_OK 0x00
-#define NCI_STATUS_REJECTED 0x01
-#define NCI_STATUS_RF_FRAME_CORRUPTED 0x02
-#define NCI_STATUS_FAILED 0x03
-#define NCI_STATUS_NOT_INITIALIZED 0x04
-#define NCI_STATUS_SYNTAX_ERROR 0x05
-#define NCI_STATUS_SEMANTIC_ERROR 0x06
-#define NCI_STATUS_UNKNOWN_GID 0x07
-#define NCI_STATUS_UNKNOWN_OID 0x08
-#define NCI_STATUS_INVALID_PARAM 0x09
-#define NCI_STATUS_MESSAGE_SIZE_EXCEEDED 0x0a
-/* Discovery Specific Status Codes */
-#define NCI_STATUS_DISCOVERY_ALREADY_STARTED 0xa0
-#define NCI_STATUS_DISCOVERY_TARGET_ACTIVATION_FAILED 0xa1
-#define NCI_STATUS_DISCOVERY_TEAR_DOWN 0xa2
-/* RF Interface Specific Status Codes */
-#define NCI_STATUS_RF_TRANSMISSION_ERROR 0xb0
-#define NCI_STATUS_RF_PROTOCOL_ERROR 0xb1
-#define NCI_STATUS_RF_TIMEOUT_ERROR 0xb2
-/* NFCEE Interface Specific Status Codes */
-#define NCI_STATUS_NFCEE_INTERFACE_ACTIVATION_FAILED 0xc0
-#define NCI_STATUS_NFCEE_TRANSMISSION_ERROR 0xc1
-#define NCI_STATUS_NFCEE_PROTOCOL_ERROR 0xc2
-#define NCI_STATUS_NFCEE_TIMEOUT_ERROR 0xc3
-
-/* NCI RF Technology and Mode */
-#define NCI_NFC_A_PASSIVE_POLL_MODE 0x00
-#define NCI_NFC_B_PASSIVE_POLL_MODE 0x01
-#define NCI_NFC_F_PASSIVE_POLL_MODE 0x02
-#define NCI_NFC_A_ACTIVE_POLL_MODE 0x03
-#define NCI_NFC_F_ACTIVE_POLL_MODE 0x05
-#define NCI_NFC_15693_PASSIVE_POLL_MODE 0x06
-#define NCI_NFC_A_PASSIVE_LISTEN_MODE 0x80
-#define NCI_NFC_B_PASSIVE_LISTEN_MODE 0x81
-#define NCI_NFC_F_PASSIVE_LISTEN_MODE 0x82
-#define NCI_NFC_A_ACTIVE_LISTEN_MODE 0x83
-#define NCI_NFC_F_ACTIVE_LISTEN_MODE 0x85
-#define NCI_NFC_15693_PASSIVE_LISTEN_MODE 0x86
-
-/* NCI RF Technologies */
-#define NCI_NFC_RF_TECHNOLOGY_A 0x00
-#define NCI_NFC_RF_TECHNOLOGY_B 0x01
-#define NCI_NFC_RF_TECHNOLOGY_F 0x02
-#define NCI_NFC_RF_TECHNOLOGY_15693 0x03
-
-/* NCI Bit Rates */
-#define NCI_NFC_BIT_RATE_106 0x00
-#define NCI_NFC_BIT_RATE_212 0x01
-#define NCI_NFC_BIT_RATE_424 0x02
-#define NCI_NFC_BIT_RATE_848 0x03
-#define NCI_NFC_BIT_RATE_1695 0x04
-#define NCI_NFC_BIT_RATE_3390 0x05
-#define NCI_NFC_BIT_RATE_6780 0x06
-
-/* NCI RF Protocols */
-#define NCI_RF_PROTOCOL_UNKNOWN 0x00
-#define NCI_RF_PROTOCOL_T1T 0x01
-#define NCI_RF_PROTOCOL_T2T 0x02
-#define NCI_RF_PROTOCOL_T3T 0x03
-#define NCI_RF_PROTOCOL_ISO_DEP 0x04
-#define NCI_RF_PROTOCOL_NFC_DEP 0x05
-
-/* NCI RF Interfaces */
-#define NCI_RF_INTERFACE_NFCEE_DIRECT 0x00
-#define NCI_RF_INTERFACE_FRAME 0x01
-#define NCI_RF_INTERFACE_ISO_DEP 0x02
-#define NCI_RF_INTERFACE_NFC_DEP 0x03
-
-/* NCI Reset types */
-#define NCI_RESET_TYPE_KEEP_CONFIG 0x00
-#define NCI_RESET_TYPE_RESET_CONFIG 0x01
-
-/* NCI Static RF connection ID */
-#define NCI_STATIC_RF_CONN_ID 0x00
-
-/* NCI Data Flow Control */
-#define NCI_DATA_FLOW_CONTROL_NOT_USED 0xff
-
-/* NCI RF_DISCOVER_MAP_CMD modes */
-#define NCI_DISC_MAP_MODE_POLL 0x01
-#define NCI_DISC_MAP_MODE_LISTEN 0x02
-
-/* NCI Discover Notification Type */
-#define NCI_DISCOVER_NTF_TYPE_LAST 0x00
-#define NCI_DISCOVER_NTF_TYPE_LAST_NFCC 0x01
-#define NCI_DISCOVER_NTF_TYPE_MORE 0x02
-
-/* NCI Deactivation Type */
-#define NCI_DEACTIVATE_TYPE_IDLE_MODE 0x00
-#define NCI_DEACTIVATE_TYPE_SLEEP_MODE 0x01
-#define NCI_DEACTIVATE_TYPE_SLEEP_AF_MODE 0x02
-#define NCI_DEACTIVATE_TYPE_DISCOVERY 0x03
-
-/* Message Type (MT) */
-#define NCI_MT_DATA_PKT 0x00
-#define NCI_MT_CMD_PKT 0x01
-#define NCI_MT_RSP_PKT 0x02
-#define NCI_MT_NTF_PKT 0x03
-
-#define nci_mt(hdr) (((hdr)[0]>>5)&0x07)
-#define nci_mt_set(hdr, mt) ((hdr)[0] |= (__u8)(((mt)&0x07)<<5))
-
-/* Packet Boundary Flag (PBF) */
-#define NCI_PBF_LAST 0x00
-#define NCI_PBF_CONT 0x01
-
-#define nci_pbf(hdr) (__u8)(((hdr)[0]>>4)&0x01)
-#define nci_pbf_set(hdr, pbf) ((hdr)[0] |= (__u8)(((pbf)&0x01)<<4))
-
-/* Control Opcode manipulation */
-#define nci_opcode_pack(gid, oid) (__u16)((((__u16)((gid)&0x0f))<<8)|\
- ((__u16)((oid)&0x3f)))
-#define nci_opcode(hdr) nci_opcode_pack(hdr[0], hdr[1])
-#define nci_opcode_gid(op) (__u8)(((op)&0x0f00)>>8)
-#define nci_opcode_oid(op) (__u8)((op)&0x003f)
-
-/* Payload Length */
-#define nci_plen(hdr) (__u8)((hdr)[2])
-
-/* Connection ID */
-#define nci_conn_id(hdr) (__u8)(((hdr)[0])&0x0f)
-
-/* GID values */
-#define NCI_GID_CORE 0x0
-#define NCI_GID_RF_MGMT 0x1
-#define NCI_GID_NFCEE_MGMT 0x2
-#define NCI_GID_PROPRIETARY 0xf
-
-/* ---- NCI Packet structures ---- */
-#define NCI_CTRL_HDR_SIZE 3
-#define NCI_DATA_HDR_SIZE 3
-
-struct nci_ctrl_hdr {
- __u8 gid; /* MT & PBF & GID */
- __u8 oid;
- __u8 plen;
-} __packed;
-
-struct nci_data_hdr {
- __u8 conn_id; /* MT & PBF & ConnID */
- __u8 rfu;
- __u8 plen;
-} __packed;
-
-/* ------------------------ */
-/* ----- NCI Commands ---- */
-/* ------------------------ */
-#define NCI_OP_CORE_RESET_CMD nci_opcode_pack(NCI_GID_CORE, 0x00)
-struct nci_core_reset_cmd {
- __u8 reset_type;
-} __packed;
-
-#define NCI_OP_CORE_INIT_CMD nci_opcode_pack(NCI_GID_CORE, 0x01)
-
-#define NCI_OP_RF_DISCOVER_MAP_CMD nci_opcode_pack(NCI_GID_RF_MGMT, 0x00)
-struct disc_map_config {
- __u8 rf_protocol;
- __u8 mode;
- __u8 rf_interface;
-} __packed;
-
-struct nci_rf_disc_map_cmd {
- __u8 num_mapping_configs;
- struct disc_map_config mapping_configs
- [NCI_MAX_NUM_MAPPING_CONFIGS];
-} __packed;
-
-#define NCI_OP_RF_DISCOVER_CMD nci_opcode_pack(NCI_GID_RF_MGMT, 0x03)
-struct disc_config {
- __u8 rf_tech_and_mode;
- __u8 frequency;
-} __packed;
-
-struct nci_rf_disc_cmd {
- __u8 num_disc_configs;
- struct disc_config disc_configs[NCI_MAX_NUM_RF_CONFIGS];
-} __packed;
-
-#define NCI_OP_RF_DISCOVER_SELECT_CMD nci_opcode_pack(NCI_GID_RF_MGMT, 0x04)
-struct nci_rf_discover_select_cmd {
- __u8 rf_discovery_id;
- __u8 rf_protocol;
- __u8 rf_interface;
-} __packed;
-
-#define NCI_OP_RF_DEACTIVATE_CMD nci_opcode_pack(NCI_GID_RF_MGMT, 0x06)
-struct nci_rf_deactivate_cmd {
- __u8 type;
-} __packed;
-
-/* ----------------------- */
-/* ---- NCI Responses ---- */
-/* ----------------------- */
-#define NCI_OP_CORE_RESET_RSP nci_opcode_pack(NCI_GID_CORE, 0x00)
-struct nci_core_reset_rsp {
- __u8 status;
- __u8 nci_ver;
- __u8 config_status;
-} __packed;
-
-#define NCI_OP_CORE_INIT_RSP nci_opcode_pack(NCI_GID_CORE, 0x01)
-struct nci_core_init_rsp_1 {
- __u8 status;
- __le32 nfcc_features;
- __u8 num_supported_rf_interfaces;
- __u8 supported_rf_interfaces[0]; /* variable size array */
- /* continuted in nci_core_init_rsp_2 */
-} __packed;
-
-struct nci_core_init_rsp_2 {
- __u8 max_logical_connections;
- __le16 max_routing_table_size;
- __u8 max_ctrl_pkt_payload_len;
- __le16 max_size_for_large_params;
- __u8 manufact_id;
- __le32 manufact_specific_info;
-} __packed;
-
-#define NCI_OP_RF_DISCOVER_MAP_RSP nci_opcode_pack(NCI_GID_RF_MGMT, 0x00)
-
-#define NCI_OP_RF_DISCOVER_RSP nci_opcode_pack(NCI_GID_RF_MGMT, 0x03)
-
-#define NCI_OP_RF_DISCOVER_SELECT_RSP nci_opcode_pack(NCI_GID_RF_MGMT, 0x04)
-
-#define NCI_OP_RF_DEACTIVATE_RSP nci_opcode_pack(NCI_GID_RF_MGMT, 0x06)
-
-/* --------------------------- */
-/* ---- NCI Notifications ---- */
-/* --------------------------- */
-#define NCI_OP_CORE_CONN_CREDITS_NTF nci_opcode_pack(NCI_GID_CORE, 0x06)
-struct conn_credit_entry {
- __u8 conn_id;
- __u8 credits;
-} __packed;
-
-struct nci_core_conn_credit_ntf {
- __u8 num_entries;
- struct conn_credit_entry conn_entries[NCI_MAX_NUM_CONN];
-} __packed;
-
-#define NCI_OP_CORE_GENERIC_ERROR_NTF nci_opcode_pack(NCI_GID_CORE, 0x07)
-
-#define NCI_OP_CORE_INTF_ERROR_NTF nci_opcode_pack(NCI_GID_CORE, 0x08)
-struct nci_core_intf_error_ntf {
- __u8 status;
- __u8 conn_id;
-} __packed;
-
-#define NCI_OP_RF_DISCOVER_NTF nci_opcode_pack(NCI_GID_RF_MGMT, 0x03)
-struct rf_tech_specific_params_nfca_poll {
- __u16 sens_res;
- __u8 nfcid1_len; /* 0, 4, 7, or 10 Bytes */
- __u8 nfcid1[10];
- __u8 sel_res_len; /* 0 or 1 Bytes */
- __u8 sel_res;
-} __packed;
-
-struct rf_tech_specific_params_nfcb_poll {
- __u8 sensb_res_len;
- __u8 sensb_res[12]; /* 11 or 12 Bytes */
-} __packed;
-
-struct rf_tech_specific_params_nfcf_poll {
- __u8 bit_rate;
- __u8 sensf_res_len;
- __u8 sensf_res[18]; /* 16 or 18 Bytes */
-} __packed;
-
-struct nci_rf_discover_ntf {
- __u8 rf_discovery_id;
- __u8 rf_protocol;
- __u8 rf_tech_and_mode;
- __u8 rf_tech_specific_params_len;
-
- union {
- struct rf_tech_specific_params_nfca_poll nfca_poll;
- struct rf_tech_specific_params_nfcb_poll nfcb_poll;
- struct rf_tech_specific_params_nfcf_poll nfcf_poll;
- } rf_tech_specific_params;
-
- __u8 ntf_type;
-} __packed;
-
-#define NCI_OP_RF_INTF_ACTIVATED_NTF nci_opcode_pack(NCI_GID_RF_MGMT, 0x05)
-struct activation_params_nfca_poll_iso_dep {
- __u8 rats_res_len;
- __u8 rats_res[20];
-};
-
-struct activation_params_nfcb_poll_iso_dep {
- __u8 attrib_res_len;
- __u8 attrib_res[50];
-};
-
-struct nci_rf_intf_activated_ntf {
- __u8 rf_discovery_id;
- __u8 rf_interface;
- __u8 rf_protocol;
- __u8 activation_rf_tech_and_mode;
- __u8 max_data_pkt_payload_size;
- __u8 initial_num_credits;
- __u8 rf_tech_specific_params_len;
-
- union {
- struct rf_tech_specific_params_nfca_poll nfca_poll;
- struct rf_tech_specific_params_nfcb_poll nfcb_poll;
- struct rf_tech_specific_params_nfcf_poll nfcf_poll;
- } rf_tech_specific_params;
-
- __u8 data_exch_rf_tech_and_mode;
- __u8 data_exch_tx_bit_rate;
- __u8 data_exch_rx_bit_rate;
- __u8 activation_params_len;
-
- union {
- struct activation_params_nfca_poll_iso_dep nfca_poll_iso_dep;
- struct activation_params_nfcb_poll_iso_dep nfcb_poll_iso_dep;
- } activation_params;
-
-} __packed;
-
-#define NCI_OP_RF_DEACTIVATE_NTF nci_opcode_pack(NCI_GID_RF_MGMT, 0x06)
-struct nci_rf_deactivate_ntf {
- __u8 type;
- __u8 reason;
-} __packed;
-
-#endif /* __NCI_H */
diff --git a/ANDROID_3.4.5/include/net/nfc/nci_core.h b/ANDROID_3.4.5/include/net/nfc/nci_core.h
deleted file mode 100644
index feba7402..00000000
--- a/ANDROID_3.4.5/include/net/nfc/nci_core.h
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * The NFC Controller Interface is the communication protocol between an
- * NFC Controller (NFCC) and a Device Host (DH).
- *
- * Copyright (C) 2011 Texas Instruments, Inc.
- *
- * Written by Ilan Elias <ilane@ti.com>
- *
- * Acknowledgements:
- * This file is based on hci_core.h, which was written
- * by Maxim Krasnyansky.
- *
- * 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
- *
- * 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
- *
- */
-
-#ifndef __NCI_CORE_H
-#define __NCI_CORE_H
-
-#include <linux/interrupt.h>
-#include <linux/skbuff.h>
-
-#include <net/nfc/nfc.h>
-#include <net/nfc/nci.h>
-
-/* NCI device flags */
-enum nci_flag {
- NCI_INIT,
- NCI_UP,
- NCI_DATA_EXCHANGE,
- NCI_DATA_EXCHANGE_TO,
-};
-
-/* NCI device states */
-enum nci_state {
- NCI_IDLE,
- NCI_DISCOVERY,
- NCI_W4_ALL_DISCOVERIES,
- NCI_W4_HOST_SELECT,
- NCI_POLL_ACTIVE,
-};
-
-/* NCI timeouts */
-#define NCI_RESET_TIMEOUT 5000
-#define NCI_INIT_TIMEOUT 5000
-#define NCI_RF_DISC_TIMEOUT 5000
-#define NCI_RF_DISC_SELECT_TIMEOUT 5000
-#define NCI_RF_DEACTIVATE_TIMEOUT 30000
-#define NCI_CMD_TIMEOUT 5000
-#define NCI_DATA_TIMEOUT 700
-
-struct nci_dev;
-
-struct nci_ops {
- int (*open)(struct nci_dev *ndev);
- int (*close)(struct nci_dev *ndev);
- int (*send)(struct sk_buff *skb);
-};
-
-#define NCI_MAX_SUPPORTED_RF_INTERFACES 4
-#define NCI_MAX_DISCOVERED_TARGETS 10
-
-/* NCI Core structures */
-struct nci_dev {
- struct nfc_dev *nfc_dev;
- struct nci_ops *ops;
-
- int tx_headroom;
- int tx_tailroom;
-
- atomic_t state;
- unsigned long flags;
-
- atomic_t cmd_cnt;
- atomic_t credits_cnt;
-
- struct timer_list cmd_timer;
- struct timer_list data_timer;
-
- struct workqueue_struct *cmd_wq;
- struct work_struct cmd_work;
-
- struct workqueue_struct *rx_wq;
- struct work_struct rx_work;
-
- struct workqueue_struct *tx_wq;
- struct work_struct tx_work;
-
- struct sk_buff_head cmd_q;
- struct sk_buff_head rx_q;
- struct sk_buff_head tx_q;
-
- struct mutex req_lock;
- struct completion req_completion;
- __u32 req_status;
- __u32 req_result;
-
- void *driver_data;
-
- __u32 poll_prots;
- __u32 target_active_prot;
-
- struct nfc_target targets[NCI_MAX_DISCOVERED_TARGETS];
- int n_targets;
-
- /* received during NCI_OP_CORE_RESET_RSP */
- __u8 nci_ver;
-
- /* received during NCI_OP_CORE_INIT_RSP */
- __u32 nfcc_features;
- __u8 num_supported_rf_interfaces;
- __u8 supported_rf_interfaces
- [NCI_MAX_SUPPORTED_RF_INTERFACES];
- __u8 max_logical_connections;
- __u16 max_routing_table_size;
- __u8 max_ctrl_pkt_payload_len;
- __u16 max_size_for_large_params;
- __u8 manufact_id;
- __u32 manufact_specific_info;
-
- /* received during NCI_OP_RF_INTF_ACTIVATED_NTF */
- __u8 max_data_pkt_payload_size;
- __u8 initial_num_credits;
-
- /* stored during nci_data_exchange */
- data_exchange_cb_t data_exchange_cb;
- void *data_exchange_cb_context;
- struct sk_buff *rx_data_reassembly;
-};
-
-/* ----- NCI Devices ----- */
-struct nci_dev *nci_allocate_device(struct nci_ops *ops,
- __u32 supported_protocols,
- int tx_headroom,
- int tx_tailroom);
-void nci_free_device(struct nci_dev *ndev);
-int nci_register_device(struct nci_dev *ndev);
-void nci_unregister_device(struct nci_dev *ndev);
-int nci_recv_frame(struct sk_buff *skb);
-
-static inline struct sk_buff *nci_skb_alloc(struct nci_dev *ndev,
- unsigned int len,
- gfp_t how)
-{
- struct sk_buff *skb;
-
- skb = alloc_skb(len + ndev->tx_headroom + ndev->tx_tailroom, how);
- if (skb)
- skb_reserve(skb, ndev->tx_headroom);
-
- return skb;
-}
-
-static inline void nci_set_parent_dev(struct nci_dev *ndev, struct device *dev)
-{
- nfc_set_parent_dev(ndev->nfc_dev, dev);
-}
-
-static inline void nci_set_drvdata(struct nci_dev *ndev, void *data)
-{
- ndev->driver_data = data;
-}
-
-static inline void *nci_get_drvdata(struct nci_dev *ndev)
-{
- return ndev->driver_data;
-}
-
-void nci_rsp_packet(struct nci_dev *ndev, struct sk_buff *skb);
-void nci_ntf_packet(struct nci_dev *ndev, struct sk_buff *skb);
-void nci_rx_data_packet(struct nci_dev *ndev, struct sk_buff *skb);
-int nci_send_cmd(struct nci_dev *ndev, __u16 opcode, __u8 plen, void *payload);
-int nci_send_data(struct nci_dev *ndev, __u8 conn_id, struct sk_buff *skb);
-void nci_data_exchange_complete(struct nci_dev *ndev, struct sk_buff *skb,
- int err);
-void nci_clear_target_list(struct nci_dev *ndev);
-
-/* ----- NCI requests ----- */
-#define NCI_REQ_DONE 0
-#define NCI_REQ_PEND 1
-#define NCI_REQ_CANCELED 2
-
-void nci_req_complete(struct nci_dev *ndev, int result);
-
-/* ----- NCI status code ----- */
-int nci_to_errno(__u8 code);
-
-#endif /* __NCI_CORE_H */
diff --git a/ANDROID_3.4.5/include/net/nfc/nfc.h b/ANDROID_3.4.5/include/net/nfc/nfc.h
deleted file mode 100644
index bac070bf..00000000
--- a/ANDROID_3.4.5/include/net/nfc/nfc.h
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- * Copyright (C) 2011 Instituto Nokia de Tecnologia
- *
- * Authors:
- * Lauro Ramos Venancio <lauro.venancio@openbossa.org>
- * Aloisio Almeida Jr <aloisio.almeida@openbossa.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.
- */
-
-#ifndef __NET_NFC_H
-#define __NET_NFC_H
-
-#include <linux/nfc.h>
-#include <linux/device.h>
-#include <linux/skbuff.h>
-
-#define nfc_dev_info(dev, fmt, arg...) dev_info((dev), "NFC: " fmt "\n", ## arg)
-#define nfc_dev_err(dev, fmt, arg...) dev_err((dev), "NFC: " fmt "\n", ## arg)
-#define nfc_dev_dbg(dev, fmt, arg...) dev_dbg((dev), fmt "\n", ## arg)
-
-struct nfc_dev;
-
-/**
- * data_exchange_cb_t - Definition of nfc_data_exchange callback
- *
- * @context: nfc_data_exchange cb_context parameter
- * @skb: response data
- * @err: If an error has occurred during data exchange, it is the
- * error number. Zero means no error.
- *
- * When a rx or tx package is lost or corrupted or the target gets out
- * of the operating field, err is -EIO.
- */
-typedef void (*data_exchange_cb_t)(void *context, struct sk_buff *skb,
- int err);
-
-struct nfc_ops {
- int (*dev_up)(struct nfc_dev *dev);
- int (*dev_down)(struct nfc_dev *dev);
- int (*start_poll)(struct nfc_dev *dev, u32 protocols);
- void (*stop_poll)(struct nfc_dev *dev);
- int (*dep_link_up)(struct nfc_dev *dev, int target_idx, u8 comm_mode,
- u8 *gb, size_t gb_len);
- int (*dep_link_down)(struct nfc_dev *dev);
- int (*activate_target)(struct nfc_dev *dev, u32 target_idx,
- u32 protocol);
- void (*deactivate_target)(struct nfc_dev *dev, u32 target_idx);
- int (*data_exchange)(struct nfc_dev *dev, u32 target_idx,
- struct sk_buff *skb, data_exchange_cb_t cb,
- void *cb_context);
-};
-
-#define NFC_TARGET_IDX_ANY -1
-#define NFC_MAX_GT_LEN 48
-
-struct nfc_target {
- u32 idx;
- u32 supported_protocols;
- u16 sens_res;
- u8 sel_res;
- u8 nfcid1_len;
- u8 nfcid1[NFC_NFCID1_MAXSIZE];
- u8 sensb_res_len;
- u8 sensb_res[NFC_SENSB_RES_MAXSIZE];
- u8 sensf_res_len;
- u8 sensf_res[NFC_SENSF_RES_MAXSIZE];
-};
-
-struct nfc_genl_data {
- u32 poll_req_pid;
- struct mutex genl_data_mutex;
-};
-
-struct nfc_dev {
- unsigned idx;
- struct nfc_target *targets;
- int n_targets;
- int targets_generation;
- spinlock_t targets_lock;
- struct device dev;
- bool dev_up;
- bool polling;
- bool remote_activated;
- bool dep_link_up;
- u32 dep_rf_mode;
- struct nfc_genl_data genl_data;
- u32 supported_protocols;
-
- int tx_headroom;
- int tx_tailroom;
-
- struct nfc_ops *ops;
-};
-#define to_nfc_dev(_dev) container_of(_dev, struct nfc_dev, dev)
-
-extern struct class nfc_class;
-
-struct nfc_dev *nfc_allocate_device(struct nfc_ops *ops,
- u32 supported_protocols,
- int tx_headroom,
- int tx_tailroom);
-
-/**
- * nfc_free_device - free nfc device
- *
- * @dev: The nfc device to free
- */
-static inline void nfc_free_device(struct nfc_dev *dev)
-{
- put_device(&dev->dev);
-}
-
-int nfc_register_device(struct nfc_dev *dev);
-
-void nfc_unregister_device(struct nfc_dev *dev);
-
-/**
- * nfc_set_parent_dev - set the parent device
- *
- * @nfc_dev: The nfc device whose parent is being set
- * @dev: The parent device
- */
-static inline void nfc_set_parent_dev(struct nfc_dev *nfc_dev,
- struct device *dev)
-{
- nfc_dev->dev.parent = dev;
-}
-
-/**
- * nfc_set_drvdata - set driver specifc data
- *
- * @dev: The nfc device
- * @data: Pointer to driver specifc data
- */
-static inline void nfc_set_drvdata(struct nfc_dev *dev, void *data)
-{
- dev_set_drvdata(&dev->dev, data);
-}
-
-/**
- * nfc_get_drvdata - get driver specifc data
- *
- * @dev: The nfc device
- */
-static inline void *nfc_get_drvdata(struct nfc_dev *dev)
-{
- return dev_get_drvdata(&dev->dev);
-}
-
-/**
- * nfc_device_name - get the nfc device name
- *
- * @dev: The nfc device whose name to return
- */
-static inline const char *nfc_device_name(struct nfc_dev *dev)
-{
- return dev_name(&dev->dev);
-}
-
-struct sk_buff *nfc_alloc_send_skb(struct nfc_dev *dev, struct sock *sk,
- unsigned int flags, unsigned int size,
- unsigned int *err);
-struct sk_buff *nfc_alloc_recv_skb(unsigned int size, gfp_t gfp);
-
-int nfc_set_remote_general_bytes(struct nfc_dev *dev,
- u8 *gt, u8 gt_len);
-
-int nfc_targets_found(struct nfc_dev *dev,
- struct nfc_target *targets, int ntargets);
-
-int nfc_dep_link_is_up(struct nfc_dev *dev, u32 target_idx,
- u8 comm_mode, u8 rf_mode);
-
-#endif /* __NET_NFC_H */
diff --git a/ANDROID_3.4.5/include/net/nl802154.h b/ANDROID_3.4.5/include/net/nl802154.h
deleted file mode 100644
index 99d2ba1c..00000000
--- a/ANDROID_3.4.5/include/net/nl802154.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * nl802154.h
- *
- * Copyright (C) 2007, 2008, 2009 Siemens AG
- *
- * 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.
- *
- * 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-1301 USA.
- *
- */
-
-#ifndef IEEE802154_NL_H
-#define IEEE802154_NL_H
-
-struct net_device;
-struct ieee802154_addr;
-
-/**
- * ieee802154_nl_assoc_indic - Notify userland of an association request.
- * @dev: The network device on which this association request was
- * received.
- * @addr: The address of the device requesting association.
- * @cap: The capability information field from the device.
- *
- * This informs a userland coordinator of a device requesting to
- * associate with the PAN controlled by the coordinator.
- *
- * Note: This is in section 7.3.1 of the IEEE 802.15.4-2006 document.
- */
-int ieee802154_nl_assoc_indic(struct net_device *dev,
- struct ieee802154_addr *addr, u8 cap);
-
-/**
- * ieee802154_nl_assoc_confirm - Notify userland of association.
- * @dev: The device which has completed association.
- * @short_addr: The short address assigned to the device.
- * @status: The status of the association.
- *
- * Inform userland of the result of an association request. If the
- * association request included asking the coordinator to allocate
- * a short address then it is returned in @short_addr.
- *
- * Note: This is in section 7.3.2 of the IEEE 802.15.4 document.
- */
-int ieee802154_nl_assoc_confirm(struct net_device *dev,
- u16 short_addr, u8 status);
-
-/**
- * ieee802154_nl_disassoc_indic - Notify userland of disassociation.
- * @dev: The device on which disassociation was indicated.
- * @addr: The device which is disassociating.
- * @reason: The reason for the disassociation.
- *
- * Inform userland that a device has disassociated from the network.
- *
- * Note: This is in section 7.3.3 of the IEEE 802.15.4 document.
- */
-int ieee802154_nl_disassoc_indic(struct net_device *dev,
- struct ieee802154_addr *addr, u8 reason);
-
-/**
- * ieee802154_nl_disassoc_confirm - Notify userland of disassociation
- * completion.
- * @dev: The device on which disassociation was ordered.
- * @status: The result of the disassociation.
- *
- * Inform userland of the result of requesting that a device
- * disassociate, or the result of requesting that we disassociate from
- * a PAN managed by another coordinator.
- *
- * Note: This is in section 7.1.4.3 of the IEEE 802.15.4 document.
- */
-int ieee802154_nl_disassoc_confirm(struct net_device *dev,
- u8 status);
-
-/**
- * ieee802154_nl_scan_confirm - Notify userland of completion of scan.
- * @dev: The device which was instructed to scan.
- * @status: The status of the scan operation.
- * @scan_type: What type of scan was performed.
- * @unscanned: Any channels that the device was unable to scan.
- * @edl: The energy levels (if a passive scan).
- *
- *
- * Note: This is in section 7.1.11 of the IEEE 802.15.4 document.
- * Note: This API does not permit the return of an active scan result.
- */
-int ieee802154_nl_scan_confirm(struct net_device *dev,
- u8 status, u8 scan_type, u32 unscanned, u8 page,
- u8 *edl/*, struct list_head *pan_desc_list */);
-
-/**
- * ieee802154_nl_beacon_indic - Notify userland of a received beacon.
- * @dev: The device on which a beacon was received.
- * @panid: The PAN of the coordinator.
- * @coord_addr: The short address of the coordinator on that PAN.
- *
- * Note: This is in section 7.1.5 of the IEEE 802.15.4 document.
- * Note: This API does not provide extended information such as what
- * channel the PAN is on or what the LQI of the beacon frame was on
- * receipt.
- * Note: This API cannot indicate a beacon frame for a coordinator
- * operating in long addressing mode.
- */
-int ieee802154_nl_beacon_indic(struct net_device *dev, u16 panid,
- u16 coord_addr);
-
-/**
- * ieee802154_nl_start_confirm - Notify userland of completion of start.
- * @dev: The device which was instructed to scan.
- * @status: The status of the scan operation.
- *
- * Note: This is in section 7.1.14 of the IEEE 802.15.4 document.
- */
-int ieee802154_nl_start_confirm(struct net_device *dev, u8 status);
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/p8022.h b/ANDROID_3.4.5/include/net/p8022.h
deleted file mode 100644
index 42e9fac5..00000000
--- a/ANDROID_3.4.5/include/net/p8022.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef _NET_P8022_H
-#define _NET_P8022_H
-extern struct datalink_proto *
- register_8022_client(unsigned char type,
- int (*func)(struct sk_buff *skb,
- struct net_device *dev,
- struct packet_type *pt,
- struct net_device *orig_dev));
-extern void unregister_8022_client(struct datalink_proto *proto);
-
-extern struct datalink_proto *make_8023_client(void);
-extern void destroy_8023_client(struct datalink_proto *dl);
-#endif
diff --git a/ANDROID_3.4.5/include/net/phonet/gprs.h b/ANDROID_3.4.5/include/net/phonet/gprs.h
deleted file mode 100644
index 928daf59..00000000
--- a/ANDROID_3.4.5/include/net/phonet/gprs.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * File: pep_gprs.h
- *
- * GPRS over Phonet pipe end point socket
- *
- * Copyright (C) 2008 Nokia Corporation.
- *
- * Author: Rémi Denis-Courmont <remi.denis-courmont@nokia.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.
- *
- * 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 NET_PHONET_GPRS_H
-#define NET_PHONET_GPRS_H
-
-struct sock;
-struct sk_buff;
-
-int pep_writeable(struct sock *sk);
-int pep_write(struct sock *sk, struct sk_buff *skb);
-struct sk_buff *pep_read(struct sock *sk);
-
-int gprs_attach(struct sock *sk);
-void gprs_detach(struct sock *sk);
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/phonet/pep.h b/ANDROID_3.4.5/include/net/phonet/pep.h
deleted file mode 100644
index b669fe6d..00000000
--- a/ANDROID_3.4.5/include/net/phonet/pep.h
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * File: pep.h
- *
- * Phonet Pipe End Point sockets definitions
- *
- * Copyright (C) 2008 Nokia 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.
- *
- * 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 NET_PHONET_PEP_H
-#define NET_PHONET_PEP_H
-
-struct pep_sock {
- struct pn_sock pn_sk;
-
- /* XXX: union-ify listening vs connected stuff ? */
- /* Listening socket stuff: */
- struct hlist_head hlist;
-
- /* Connected socket stuff: */
- struct sock *listener;
- struct sk_buff_head ctrlreq_queue;
-#define PNPIPE_CTRLREQ_MAX 10
- atomic_t tx_credits;
- int ifindex;
- u16 peer_type; /* peer type/subtype */
- u8 pipe_handle;
-
- u8 rx_credits;
- u8 rx_fc; /* RX flow control */
- u8 tx_fc; /* TX flow control */
- u8 init_enable; /* auto-enable at creation */
- u8 aligned;
-};
-
-static inline struct pep_sock *pep_sk(struct sock *sk)
-{
- return (struct pep_sock *)sk;
-}
-
-extern const struct proto_ops phonet_stream_ops;
-
-/* Pipe protocol definitions */
-struct pnpipehdr {
- u8 utid; /* transaction ID */
- u8 message_id;
- u8 pipe_handle;
- union {
- u8 state_after_connect; /* connect request */
- u8 state_after_reset; /* reset request */
- u8 error_code; /* any response */
- u8 pep_type; /* status indication */
- u8 data[1];
- };
-};
-#define other_pep_type data[1]
-
-static inline struct pnpipehdr *pnp_hdr(struct sk_buff *skb)
-{
- return (struct pnpipehdr *)skb_transport_header(skb);
-}
-
-#define MAX_PNPIPE_HEADER (MAX_PHONET_HEADER + 4)
-
-enum {
- PNS_PIPE_CREATE_REQ = 0x00,
- PNS_PIPE_CREATE_RESP,
- PNS_PIPE_REMOVE_REQ,
- PNS_PIPE_REMOVE_RESP,
-
- PNS_PIPE_DATA = 0x20,
- PNS_PIPE_ALIGNED_DATA,
-
- PNS_PEP_CONNECT_REQ = 0x40,
- PNS_PEP_CONNECT_RESP,
- PNS_PEP_DISCONNECT_REQ,
- PNS_PEP_DISCONNECT_RESP,
- PNS_PEP_RESET_REQ,
- PNS_PEP_RESET_RESP,
- PNS_PEP_ENABLE_REQ,
- PNS_PEP_ENABLE_RESP,
- PNS_PEP_CTRL_REQ,
- PNS_PEP_CTRL_RESP,
- PNS_PEP_DISABLE_REQ = 0x4C,
- PNS_PEP_DISABLE_RESP,
-
- PNS_PEP_STATUS_IND = 0x60,
- PNS_PIPE_CREATED_IND,
- PNS_PIPE_RESET_IND = 0x63,
- PNS_PIPE_ENABLED_IND,
- PNS_PIPE_REDIRECTED_IND,
- PNS_PIPE_DISABLED_IND = 0x66,
-};
-
-#define PN_PIPE_INVALID_HANDLE 0xff
-#define PN_PEP_TYPE_COMMON 0x00
-
-/* Phonet pipe status indication */
-enum {
- PN_PEP_IND_FLOW_CONTROL,
- PN_PEP_IND_ID_MCFC_GRANT_CREDITS,
-};
-
-/* Phonet pipe error codes */
-enum {
- PN_PIPE_NO_ERROR,
- PN_PIPE_ERR_INVALID_PARAM,
- PN_PIPE_ERR_INVALID_HANDLE,
- PN_PIPE_ERR_INVALID_CTRL_ID,
- PN_PIPE_ERR_NOT_ALLOWED,
- PN_PIPE_ERR_PEP_IN_USE,
- PN_PIPE_ERR_OVERLOAD,
- PN_PIPE_ERR_DEV_DISCONNECTED,
- PN_PIPE_ERR_TIMEOUT,
- PN_PIPE_ERR_ALL_PIPES_IN_USE,
- PN_PIPE_ERR_GENERAL,
- PN_PIPE_ERR_NOT_SUPPORTED,
-};
-
-/* Phonet pipe states */
-enum {
- PN_PIPE_DISABLE,
- PN_PIPE_ENABLE,
-};
-
-/* Phonet pipe sub-block types */
-enum {
- PN_PIPE_SB_CREATE_REQ_PEP_SUB_TYPE,
- PN_PIPE_SB_CONNECT_REQ_PEP_SUB_TYPE,
- PN_PIPE_SB_REDIRECT_REQ_PEP_SUB_TYPE,
- PN_PIPE_SB_NEGOTIATED_FC,
- PN_PIPE_SB_REQUIRED_FC_TX,
- PN_PIPE_SB_PREFERRED_FC_RX,
- PN_PIPE_SB_ALIGNED_DATA,
-};
-
-/* Phonet pipe flow control models */
-enum {
- PN_NO_FLOW_CONTROL,
- PN_LEGACY_FLOW_CONTROL,
- PN_ONE_CREDIT_FLOW_CONTROL,
- PN_MULTI_CREDIT_FLOW_CONTROL,
- PN_MAX_FLOW_CONTROL,
-};
-
-#define pn_flow_safe(fc) ((fc) >> 1)
-
-/* Phonet pipe flow control states */
-enum {
- PEP_IND_EMPTY,
- PEP_IND_BUSY,
- PEP_IND_READY,
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/phonet/phonet.h b/ANDROID_3.4.5/include/net/phonet/phonet.h
deleted file mode 100644
index 68e50975..00000000
--- a/ANDROID_3.4.5/include/net/phonet/phonet.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * File: af_phonet.h
- *
- * Phonet sockets kernel definitions
- *
- * Copyright (C) 2008 Nokia 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.
- *
- * 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 AF_PHONET_H
-#define AF_PHONET_H
-
-/*
- * The lower layers may not require more space, ever. Make sure it's
- * enough.
- */
-#define MAX_PHONET_HEADER (8 + MAX_HEADER)
-
-/*
- * Every Phonet* socket has this structure first in its
- * protocol-specific structure under name c.
- */
-struct pn_sock {
- struct sock sk;
- u16 sobject;
- u16 dobject;
- u8 resource;
-};
-
-static inline struct pn_sock *pn_sk(struct sock *sk)
-{
- return (struct pn_sock *)sk;
-}
-
-extern const struct proto_ops phonet_dgram_ops;
-
-void pn_sock_init(void);
-struct sock *pn_find_sock_by_sa(struct net *net, const struct sockaddr_pn *sa);
-void pn_deliver_sock_broadcast(struct net *net, struct sk_buff *skb);
-void phonet_get_local_port_range(int *min, int *max);
-void pn_sock_hash(struct sock *sk);
-void pn_sock_unhash(struct sock *sk);
-int pn_sock_get_port(struct sock *sk, unsigned short sport);
-
-struct sock *pn_find_sock_by_res(struct net *net, u8 res);
-int pn_sock_bind_res(struct sock *sock, u8 res);
-int pn_sock_unbind_res(struct sock *sk, u8 res);
-void pn_sock_unbind_all_res(struct sock *sk);
-
-int pn_skb_send(struct sock *sk, struct sk_buff *skb,
- const struct sockaddr_pn *target);
-
-static inline struct phonethdr *pn_hdr(struct sk_buff *skb)
-{
- return (struct phonethdr *)skb_network_header(skb);
-}
-
-static inline struct phonetmsg *pn_msg(struct sk_buff *skb)
-{
- return (struct phonetmsg *)skb_transport_header(skb);
-}
-
-/*
- * Get the other party's sockaddr from received skb. The skb begins
- * with a Phonet header.
- */
-static inline
-void pn_skb_get_src_sockaddr(struct sk_buff *skb, struct sockaddr_pn *sa)
-{
- struct phonethdr *ph = pn_hdr(skb);
- u16 obj = pn_object(ph->pn_sdev, ph->pn_sobj);
-
- sa->spn_family = AF_PHONET;
- pn_sockaddr_set_object(sa, obj);
- pn_sockaddr_set_resource(sa, ph->pn_res);
- memset(sa->spn_zero, 0, sizeof(sa->spn_zero));
-}
-
-static inline
-void pn_skb_get_dst_sockaddr(struct sk_buff *skb, struct sockaddr_pn *sa)
-{
- struct phonethdr *ph = pn_hdr(skb);
- u16 obj = pn_object(ph->pn_rdev, ph->pn_robj);
-
- sa->spn_family = AF_PHONET;
- pn_sockaddr_set_object(sa, obj);
- pn_sockaddr_set_resource(sa, ph->pn_res);
- memset(sa->spn_zero, 0, sizeof(sa->spn_zero));
-}
-
-/* Protocols in Phonet protocol family. */
-struct phonet_protocol {
- const struct proto_ops *ops;
- struct proto *prot;
- int sock_type;
-};
-
-int phonet_proto_register(unsigned int protocol, struct phonet_protocol *pp);
-void phonet_proto_unregister(unsigned int protocol, struct phonet_protocol *pp);
-
-int phonet_sysctl_init(void);
-void phonet_sysctl_exit(void);
-int isi_register(void);
-void isi_unregister(void);
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/phonet/pn_dev.h b/ANDROID_3.4.5/include/net/phonet/pn_dev.h
deleted file mode 100644
index 8639de57..00000000
--- a/ANDROID_3.4.5/include/net/phonet/pn_dev.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * File: pn_dev.h
- *
- * Phonet network device
- *
- * Copyright (C) 2008 Nokia 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.
- *
- * 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 PN_DEV_H
-#define PN_DEV_H
-
-struct phonet_device_list {
- struct list_head list;
- struct mutex lock;
-};
-
-struct phonet_device_list *phonet_device_list(struct net *net);
-
-struct phonet_device {
- struct list_head list;
- struct net_device *netdev;
- DECLARE_BITMAP(addrs, 64);
- struct rcu_head rcu;
-};
-
-int phonet_device_init(void);
-void phonet_device_exit(void);
-int phonet_netlink_register(void);
-struct net_device *phonet_device_get(struct net *net);
-
-int phonet_address_add(struct net_device *dev, u8 addr);
-int phonet_address_del(struct net_device *dev, u8 addr);
-u8 phonet_address_get(struct net_device *dev, u8 addr);
-int phonet_address_lookup(struct net *net, u8 addr);
-void phonet_address_notify(int event, struct net_device *dev, u8 addr);
-
-int phonet_route_add(struct net_device *dev, u8 daddr);
-int phonet_route_del(struct net_device *dev, u8 daddr);
-void rtm_phonet_notify(int event, struct net_device *dev, u8 dst);
-struct net_device *phonet_route_get_rcu(struct net *net, u8 daddr);
-struct net_device *phonet_route_output(struct net *net, u8 daddr);
-
-#define PN_NO_ADDR 0xff
-
-extern const struct file_operations pn_sock_seq_fops;
-extern const struct file_operations pn_res_seq_fops;
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/ping.h b/ANDROID_3.4.5/include/net/ping.h
deleted file mode 100644
index b1717ae9..00000000
--- a/ANDROID_3.4.5/include/net/ping.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Definitions for the "ping" 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 of the License, or (at your option) any later version.
- */
-#ifndef _PING_H
-#define _PING_H
-
-#include <net/icmp.h>
-#include <net/netns/hash.h>
-
-/* PING_HTABLE_SIZE must be power of 2 */
-#define PING_HTABLE_SIZE 64
-#define PING_HTABLE_MASK (PING_HTABLE_SIZE-1)
-
-#define ping_portaddr_for_each_entry(__sk, node, list) \
- hlist_nulls_for_each_entry(__sk, node, list, sk_nulls_node)
-
-/*
- * gid_t is either uint or ushort. We want to pass it to
- * proc_dointvec_minmax(), so it must not be larger than MAX_INT
- */
-#define GID_T_MAX (((gid_t)~0U) >> 1)
-
-/* Compatibility glue so we can support IPv6 when it's compiled as a module */
-struct pingv6_ops {
- int (*ipv6_recv_error)(struct sock *sk, struct msghdr *msg, int len);
- int (*datagram_recv_ctl)(struct sock *sk, struct msghdr *msg,
- struct sk_buff *skb);
- int (*icmpv6_err_convert)(u8 type, u8 code, int *err);
- void (*ipv6_icmp_error)(struct sock *sk, struct sk_buff *skb, int err,
- __be16 port, u32 info, u8 *payload);
- int (*ipv6_chk_addr)(struct net *net, const struct in6_addr *addr,
- struct net_device *dev, int strict);
-};
-
-struct ping_table {
- struct hlist_nulls_head hash[PING_HTABLE_SIZE];
- rwlock_t lock;
-};
-
-struct ping_iter_state {
- struct seq_net_private p;
- int bucket;
-};
-
-extern struct proto ping_prot;
-extern struct ping_table ping_table;
-#if IS_ENABLED(CONFIG_IPV6)
-extern struct pingv6_ops pingv6_ops;
-#endif
-
-struct pingfakehdr {
- struct icmphdr icmph;
- struct iovec *iov;
- sa_family_t family;
- __wsum wcheck;
-};
-
-int ping_get_port(struct sock *sk, unsigned short ident);
-void ping_hash(struct sock *sk);
-void ping_unhash(struct sock *sk);
-
-int ping_init_sock(struct sock *sk);
-void ping_close(struct sock *sk, long timeout);
-int ping_bind(struct sock *sk, struct sockaddr *uaddr, int addr_len);
-void ping_err(struct sk_buff *skb, int offset, u32 info);
-void ping_v4_err(struct sk_buff *skb, u32 info);
-int ping_getfrag(void *from, char *to, int offset, int fraglen, int odd,
- struct sk_buff *);
-
-int ping_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
- size_t len, int noblock, int flags, int *addr_len);
-int ping_common_sendmsg(int family, struct msghdr *msg, size_t len,
- void *user_icmph, size_t icmph_len);
-int ping_v4_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
- size_t len);
-int ping_v6_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
- size_t len);
-int ping_queue_rcv_skb(struct sock *sk, struct sk_buff *skb);
-void ping_rcv(struct sk_buff *skb);
-
-#ifdef CONFIG_PROC_FS
-extern int __init ping_proc_init(void);
-extern void ping_proc_exit(void);
-#endif
-
-void __init ping_init(void);
-int __init pingv6_init(void);
-void pingv6_exit(void);
-
-#endif /* _PING_H */
diff --git a/ANDROID_3.4.5/include/net/pkt_cls.h b/ANDROID_3.4.5/include/net/pkt_cls.h
deleted file mode 100644
index 9fcc680a..00000000
--- a/ANDROID_3.4.5/include/net/pkt_cls.h
+++ /dev/null
@@ -1,359 +0,0 @@
-#ifndef __NET_PKT_CLS_H
-#define __NET_PKT_CLS_H
-
-#include <linux/pkt_cls.h>
-#include <net/sch_generic.h>
-#include <net/act_api.h>
-
-/* Basic packet classifier frontend definitions. */
-
-struct tcf_walker {
- int stop;
- int skip;
- int count;
- int (*fn)(struct tcf_proto *, unsigned long node, struct tcf_walker *);
-};
-
-extern int register_tcf_proto_ops(struct tcf_proto_ops *ops);
-extern int unregister_tcf_proto_ops(struct tcf_proto_ops *ops);
-
-static inline unsigned long
-__cls_set_class(unsigned long *clp, unsigned long cl)
-{
- unsigned long old_cl;
-
- old_cl = *clp;
- *clp = cl;
- return old_cl;
-}
-
-static inline unsigned long
-cls_set_class(struct tcf_proto *tp, unsigned long *clp,
- unsigned long cl)
-{
- unsigned long old_cl;
-
- tcf_tree_lock(tp);
- old_cl = __cls_set_class(clp, cl);
- tcf_tree_unlock(tp);
-
- return old_cl;
-}
-
-static inline void
-tcf_bind_filter(struct tcf_proto *tp, struct tcf_result *r, unsigned long base)
-{
- unsigned long cl;
-
- cl = tp->q->ops->cl_ops->bind_tcf(tp->q, base, r->classid);
- cl = cls_set_class(tp, &r->class, cl);
- if (cl)
- tp->q->ops->cl_ops->unbind_tcf(tp->q, cl);
-}
-
-static inline void
-tcf_unbind_filter(struct tcf_proto *tp, struct tcf_result *r)
-{
- unsigned long cl;
-
- if ((cl = __cls_set_class(&r->class, 0)) != 0)
- tp->q->ops->cl_ops->unbind_tcf(tp->q, cl);
-}
-
-struct tcf_exts {
-#ifdef CONFIG_NET_CLS_ACT
- struct tc_action *action;
-#endif
-};
-
-/* Map to export classifier specific extension TLV types to the
- * generic extensions API. Unsupported extensions must be set to 0.
- */
-struct tcf_ext_map {
- int action;
- int police;
-};
-
-/**
- * tcf_exts_is_predicative - check if a predicative extension is present
- * @exts: tc filter extensions handle
- *
- * Returns 1 if a predicative extension is present, i.e. an extension which
- * might cause further actions and thus overrule the regular tcf_result.
- */
-static inline int
-tcf_exts_is_predicative(struct tcf_exts *exts)
-{
-#ifdef CONFIG_NET_CLS_ACT
- return !!exts->action;
-#else
- return 0;
-#endif
-}
-
-/**
- * tcf_exts_is_available - check if at least one extension is present
- * @exts: tc filter extensions handle
- *
- * Returns 1 if at least one extension is present.
- */
-static inline int
-tcf_exts_is_available(struct tcf_exts *exts)
-{
- /* All non-predicative extensions must be added here. */
- return tcf_exts_is_predicative(exts);
-}
-
-/**
- * tcf_exts_exec - execute tc filter extensions
- * @skb: socket buffer
- * @exts: tc filter extensions handle
- * @res: desired result
- *
- * Executes all configured extensions. Returns 0 on a normal execution,
- * a negative number if the filter must be considered unmatched or
- * a positive action code (TC_ACT_*) which must be returned to the
- * underlying layer.
- */
-static inline int
-tcf_exts_exec(struct sk_buff *skb, struct tcf_exts *exts,
- struct tcf_result *res)
-{
-#ifdef CONFIG_NET_CLS_ACT
- if (exts->action)
- return tcf_action_exec(skb, exts->action, res);
-#endif
- return 0;
-}
-
-extern int tcf_exts_validate(struct tcf_proto *tp, struct nlattr **tb,
- struct nlattr *rate_tlv, struct tcf_exts *exts,
- const struct tcf_ext_map *map);
-extern void tcf_exts_destroy(struct tcf_proto *tp, struct tcf_exts *exts);
-extern void tcf_exts_change(struct tcf_proto *tp, struct tcf_exts *dst,
- struct tcf_exts *src);
-extern int tcf_exts_dump(struct sk_buff *skb, struct tcf_exts *exts,
- const struct tcf_ext_map *map);
-extern int tcf_exts_dump_stats(struct sk_buff *skb, struct tcf_exts *exts,
- const struct tcf_ext_map *map);
-
-/**
- * struct tcf_pkt_info - packet information
- */
-struct tcf_pkt_info {
- unsigned char * ptr;
- int nexthdr;
-};
-
-#ifdef CONFIG_NET_EMATCH
-
-struct tcf_ematch_ops;
-
-/**
- * struct tcf_ematch - extended match (ematch)
- *
- * @matchid: identifier to allow userspace to reidentify a match
- * @flags: flags specifying attributes and the relation to other matches
- * @ops: the operations lookup table of the corresponding ematch module
- * @datalen: length of the ematch specific configuration data
- * @data: ematch specific data
- */
-struct tcf_ematch {
- struct tcf_ematch_ops * ops;
- unsigned long data;
- unsigned int datalen;
- u16 matchid;
- u16 flags;
-};
-
-static inline int tcf_em_is_container(struct tcf_ematch *em)
-{
- return !em->ops;
-}
-
-static inline int tcf_em_is_simple(struct tcf_ematch *em)
-{
- return em->flags & TCF_EM_SIMPLE;
-}
-
-static inline int tcf_em_is_inverted(struct tcf_ematch *em)
-{
- return em->flags & TCF_EM_INVERT;
-}
-
-static inline int tcf_em_last_match(struct tcf_ematch *em)
-{
- return (em->flags & TCF_EM_REL_MASK) == TCF_EM_REL_END;
-}
-
-static inline int tcf_em_early_end(struct tcf_ematch *em, int result)
-{
- if (tcf_em_last_match(em))
- return 1;
-
- if (result == 0 && em->flags & TCF_EM_REL_AND)
- return 1;
-
- if (result != 0 && em->flags & TCF_EM_REL_OR)
- return 1;
-
- return 0;
-}
-
-/**
- * struct tcf_ematch_tree - ematch tree handle
- *
- * @hdr: ematch tree header supplied by userspace
- * @matches: array of ematches
- */
-struct tcf_ematch_tree {
- struct tcf_ematch_tree_hdr hdr;
- struct tcf_ematch * matches;
-
-};
-
-/**
- * struct tcf_ematch_ops - ematch module operations
- *
- * @kind: identifier (kind) of this ematch module
- * @datalen: length of expected configuration data (optional)
- * @change: called during validation (optional)
- * @match: called during ematch tree evaluation, must return 1/0
- * @destroy: called during destroyage (optional)
- * @dump: called during dumping process (optional)
- * @owner: owner, must be set to THIS_MODULE
- * @link: link to previous/next ematch module (internal use)
- */
-struct tcf_ematch_ops {
- int kind;
- int datalen;
- int (*change)(struct tcf_proto *, void *,
- int, struct tcf_ematch *);
- int (*match)(struct sk_buff *, struct tcf_ematch *,
- struct tcf_pkt_info *);
- void (*destroy)(struct tcf_proto *,
- struct tcf_ematch *);
- int (*dump)(struct sk_buff *, struct tcf_ematch *);
- struct module *owner;
- struct list_head link;
-};
-
-extern int tcf_em_register(struct tcf_ematch_ops *);
-extern void tcf_em_unregister(struct tcf_ematch_ops *);
-extern int tcf_em_tree_validate(struct tcf_proto *, struct nlattr *,
- struct tcf_ematch_tree *);
-extern void tcf_em_tree_destroy(struct tcf_proto *, struct tcf_ematch_tree *);
-extern int tcf_em_tree_dump(struct sk_buff *, struct tcf_ematch_tree *, int);
-extern int __tcf_em_tree_match(struct sk_buff *, struct tcf_ematch_tree *,
- struct tcf_pkt_info *);
-
-/**
- * tcf_em_tree_change - replace ematch tree of a running classifier
- *
- * @tp: classifier kind handle
- * @dst: destination ematch tree variable
- * @src: source ematch tree (temporary tree from tcf_em_tree_validate)
- *
- * This functions replaces the ematch tree in @dst with the ematch
- * tree in @src. The classifier in charge of the ematch tree may be
- * running.
- */
-static inline void tcf_em_tree_change(struct tcf_proto *tp,
- struct tcf_ematch_tree *dst,
- struct tcf_ematch_tree *src)
-{
- tcf_tree_lock(tp);
- memcpy(dst, src, sizeof(*dst));
- tcf_tree_unlock(tp);
-}
-
-/**
- * tcf_em_tree_match - evaulate an ematch tree
- *
- * @skb: socket buffer of the packet in question
- * @tree: ematch tree to be used for evaluation
- * @info: packet information examined by classifier
- *
- * This function matches @skb against the ematch tree in @tree by going
- * through all ematches respecting their logic relations returning
- * as soon as the result is obvious.
- *
- * Returns 1 if the ematch tree as-one matches, no ematches are configured
- * or ematch is not enabled in the kernel, otherwise 0 is returned.
- */
-static inline int tcf_em_tree_match(struct sk_buff *skb,
- struct tcf_ematch_tree *tree,
- struct tcf_pkt_info *info)
-{
- if (tree->hdr.nmatches)
- return __tcf_em_tree_match(skb, tree, info);
- else
- return 1;
-}
-
-#define MODULE_ALIAS_TCF_EMATCH(kind) MODULE_ALIAS("ematch-kind-" __stringify(kind))
-
-#else /* CONFIG_NET_EMATCH */
-
-struct tcf_ematch_tree {
-};
-
-#define tcf_em_tree_validate(tp, tb, t) ((void)(t), 0)
-#define tcf_em_tree_destroy(tp, t) do { (void)(t); } while(0)
-#define tcf_em_tree_dump(skb, t, tlv) (0)
-#define tcf_em_tree_change(tp, dst, src) do { } while(0)
-#define tcf_em_tree_match(skb, t, info) ((void)(info), 1)
-
-#endif /* CONFIG_NET_EMATCH */
-
-static inline unsigned char * tcf_get_base_ptr(struct sk_buff *skb, int layer)
-{
- switch (layer) {
- case TCF_LAYER_LINK:
- return skb->data;
- case TCF_LAYER_NETWORK:
- return skb_network_header(skb);
- case TCF_LAYER_TRANSPORT:
- return skb_transport_header(skb);
- }
-
- return NULL;
-}
-
-static inline int tcf_valid_offset(const struct sk_buff *skb,
- const unsigned char *ptr, const int len)
-{
- return likely((ptr + len) <= skb_tail_pointer(skb) &&
- ptr >= skb->head &&
- (ptr <= (ptr + len)));
-}
-
-#ifdef CONFIG_NET_CLS_IND
-#include <net/net_namespace.h>
-
-static inline int
-tcf_change_indev(struct tcf_proto *tp, char *indev, struct nlattr *indev_tlv)
-{
- if (nla_strlcpy(indev, indev_tlv, IFNAMSIZ) >= IFNAMSIZ)
- return -EINVAL;
- return 0;
-}
-
-static inline int
-tcf_match_indev(struct sk_buff *skb, char *indev)
-{
- struct net_device *dev;
-
- if (indev[0]) {
- if (!skb->skb_iif)
- return 0;
- dev = __dev_get_by_index(dev_net(skb->dev), skb->skb_iif);
- if (!dev || strcmp(indev, dev->name))
- return 0;
- }
-
- return 1;
-}
-#endif /* CONFIG_NET_CLS_IND */
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/pkt_sched.h b/ANDROID_3.4.5/include/net/pkt_sched.h
deleted file mode 100644
index fffdc603..00000000
--- a/ANDROID_3.4.5/include/net/pkt_sched.h
+++ /dev/null
@@ -1,115 +0,0 @@
-#ifndef __NET_PKT_SCHED_H
-#define __NET_PKT_SCHED_H
-
-#include <linux/jiffies.h>
-#include <linux/ktime.h>
-#include <net/sch_generic.h>
-
-struct qdisc_walker {
- int stop;
- int skip;
- int count;
- int (*fn)(struct Qdisc *, unsigned long cl, struct qdisc_walker *);
-};
-
-#define QDISC_ALIGNTO 64
-#define QDISC_ALIGN(len) (((len) + QDISC_ALIGNTO-1) & ~(QDISC_ALIGNTO-1))
-
-static inline void *qdisc_priv(struct Qdisc *q)
-{
- return (char *) q + QDISC_ALIGN(sizeof(struct Qdisc));
-}
-
-/*
- Timer resolution MUST BE < 10% of min_schedulable_packet_size/bandwidth
-
- Normal IP packet size ~ 512byte, hence:
-
- 0.5Kbyte/1Mbyte/sec = 0.5msec, so that we need 50usec timer for
- 10Mbit ethernet.
-
- 10msec resolution -> <50Kbit/sec.
-
- The result: [34]86 is not good choice for QoS router :-(
-
- The things are not so bad, because we may use artificial
- clock evaluated by integration of network data flow
- in the most critical places.
- */
-
-typedef u64 psched_time_t;
-typedef long psched_tdiff_t;
-
-/* Avoid doing 64 bit divide */
-#define PSCHED_SHIFT 6
-#define PSCHED_TICKS2NS(x) ((s64)(x) << PSCHED_SHIFT)
-#define PSCHED_NS2TICKS(x) ((x) >> PSCHED_SHIFT)
-
-#define PSCHED_TICKS_PER_SEC PSCHED_NS2TICKS(NSEC_PER_SEC)
-#define PSCHED_PASTPERFECT 0
-
-static inline psched_time_t psched_get_time(void)
-{
- return PSCHED_NS2TICKS(ktime_to_ns(ktime_get()));
-}
-
-static inline psched_tdiff_t
-psched_tdiff_bounded(psched_time_t tv1, psched_time_t tv2, psched_time_t bound)
-{
- return min(tv1 - tv2, bound);
-}
-
-struct qdisc_watchdog {
- struct hrtimer timer;
- struct Qdisc *qdisc;
-};
-
-extern void qdisc_watchdog_init(struct qdisc_watchdog *wd, struct Qdisc *qdisc);
-extern void qdisc_watchdog_schedule(struct qdisc_watchdog *wd,
- psched_time_t expires);
-extern void qdisc_watchdog_cancel(struct qdisc_watchdog *wd);
-
-extern struct Qdisc_ops pfifo_qdisc_ops;
-extern struct Qdisc_ops bfifo_qdisc_ops;
-extern struct Qdisc_ops pfifo_head_drop_qdisc_ops;
-
-extern int fifo_set_limit(struct Qdisc *q, unsigned int limit);
-extern struct Qdisc *fifo_create_dflt(struct Qdisc *sch, struct Qdisc_ops *ops,
- unsigned int limit);
-
-extern int register_qdisc(struct Qdisc_ops *qops);
-extern int unregister_qdisc(struct Qdisc_ops *qops);
-extern void qdisc_list_del(struct Qdisc *q);
-extern struct Qdisc *qdisc_lookup(struct net_device *dev, u32 handle);
-extern struct Qdisc *qdisc_lookup_class(struct net_device *dev, u32 handle);
-extern struct qdisc_rate_table *qdisc_get_rtab(struct tc_ratespec *r,
- struct nlattr *tab);
-extern void qdisc_put_rtab(struct qdisc_rate_table *tab);
-extern void qdisc_put_stab(struct qdisc_size_table *tab);
-extern void qdisc_warn_nonwc(char *txt, struct Qdisc *qdisc);
-extern int sch_direct_xmit(struct sk_buff *skb, struct Qdisc *q,
- struct net_device *dev, struct netdev_queue *txq,
- spinlock_t *root_lock);
-
-extern void __qdisc_run(struct Qdisc *q);
-
-static inline void qdisc_run(struct Qdisc *q)
-{
- if (qdisc_run_begin(q))
- __qdisc_run(q);
-}
-
-extern int tc_classify_compat(struct sk_buff *skb, const struct tcf_proto *tp,
- struct tcf_result *res);
-extern int tc_classify(struct sk_buff *skb, const struct tcf_proto *tp,
- struct tcf_result *res);
-
-/* Calculate maximal size of packet seen by hard_start_xmit
- routine of this device.
- */
-static inline unsigned psched_mtu(const struct net_device *dev)
-{
- return dev->mtu + dev->hard_header_len;
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/protocol.h b/ANDROID_3.4.5/include/net/protocol.h
deleted file mode 100644
index 875f4895..00000000
--- a/ANDROID_3.4.5/include/net/protocol.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Definitions for the protocol dispatcher.
- *
- * Version: @(#)protocol.h 1.0.2 05/07/93
- *
- * Author: Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.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.
- *
- * Changes:
- * Alan Cox : Added a name field and a frag handler
- * field for later.
- * Alan Cox : Cleaned up, and sorted types.
- * Pedro Roque : inet6 protocols
- */
-
-#ifndef _PROTOCOL_H
-#define _PROTOCOL_H
-
-#include <linux/in6.h>
-#if IS_ENABLED(CONFIG_IPV6)
-#include <linux/ipv6.h>
-#endif
-
-#define MAX_INET_PROTOS 256 /* Must be a power of 2 */
-
-
-/* This is used to register protocols. */
-struct net_protocol {
- int (*handler)(struct sk_buff *skb);
- void (*err_handler)(struct sk_buff *skb, u32 info);
- int (*gso_send_check)(struct sk_buff *skb);
- struct sk_buff *(*gso_segment)(struct sk_buff *skb,
- netdev_features_t features);
- struct sk_buff **(*gro_receive)(struct sk_buff **head,
- struct sk_buff *skb);
- int (*gro_complete)(struct sk_buff *skb);
- unsigned int no_policy:1,
- netns_ok:1;
-};
-
-#if IS_ENABLED(CONFIG_IPV6)
-struct inet6_protocol {
- int (*handler)(struct sk_buff *skb);
-
- void (*err_handler)(struct sk_buff *skb,
- struct inet6_skb_parm *opt,
- u8 type, u8 code, int offset,
- __be32 info);
-
- int (*gso_send_check)(struct sk_buff *skb);
- struct sk_buff *(*gso_segment)(struct sk_buff *skb,
- netdev_features_t features);
- struct sk_buff **(*gro_receive)(struct sk_buff **head,
- struct sk_buff *skb);
- int (*gro_complete)(struct sk_buff *skb);
-
- unsigned int flags; /* INET6_PROTO_xxx */
-};
-
-#define INET6_PROTO_NOPOLICY 0x1
-#define INET6_PROTO_FINAL 0x2
-/* This should be set for any extension header which is compatible with GSO. */
-#define INET6_PROTO_GSO_EXTHDR 0x4
-#endif
-
-/* This is used to register socket interfaces for IP protocols. */
-struct inet_protosw {
- struct list_head list;
-
- /* These two fields form the lookup key. */
- unsigned short type; /* This is the 2nd argument to socket(2). */
- unsigned short protocol; /* This is the L4 protocol number. */
-
- struct proto *prot;
- const struct proto_ops *ops;
-
- char no_check; /* checksum on rcv/xmit/none? */
- unsigned char flags; /* See INET_PROTOSW_* below. */
-};
-#define INET_PROTOSW_REUSE 0x01 /* Are ports automatically reusable? */
-#define INET_PROTOSW_PERMANENT 0x02 /* Permanent protocols are unremovable. */
-#define INET_PROTOSW_ICSK 0x04 /* Is this an inet_connection_sock? */
-
-extern const struct net_protocol __rcu *inet_protos[MAX_INET_PROTOS];
-
-#if IS_ENABLED(CONFIG_IPV6)
-extern const struct inet6_protocol __rcu *inet6_protos[MAX_INET_PROTOS];
-#endif
-
-extern int inet_add_protocol(const struct net_protocol *prot, unsigned char num);
-extern int inet_del_protocol(const struct net_protocol *prot, unsigned char num);
-extern void inet_register_protosw(struct inet_protosw *p);
-extern void inet_unregister_protosw(struct inet_protosw *p);
-
-#if IS_ENABLED(CONFIG_IPV6)
-extern int inet6_add_protocol(const struct inet6_protocol *prot, unsigned char num);
-extern int inet6_del_protocol(const struct inet6_protocol *prot, unsigned char num);
-extern int inet6_register_protosw(struct inet_protosw *p);
-extern void inet6_unregister_protosw(struct inet_protosw *p);
-#endif
-
-#endif /* _PROTOCOL_H */
diff --git a/ANDROID_3.4.5/include/net/psnap.h b/ANDROID_3.4.5/include/net/psnap.h
deleted file mode 100644
index fe456c29..00000000
--- a/ANDROID_3.4.5/include/net/psnap.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef _NET_PSNAP_H
-#define _NET_PSNAP_H
-
-extern struct datalink_proto *
-register_snap_client(const unsigned char *desc,
- int (*rcvfunc)(struct sk_buff *, struct net_device *,
- struct packet_type *,
- struct net_device *orig_dev));
-extern void unregister_snap_client(struct datalink_proto *proto);
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/raw.h b/ANDROID_3.4.5/include/net/raw.h
deleted file mode 100644
index 42ce6fe7..00000000
--- a/ANDROID_3.4.5/include/net/raw.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Definitions for the RAW-IP module.
- *
- * Version: @(#)raw.h 1.0.2 05/07/93
- *
- * Author: Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.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.
- */
-#ifndef _RAW_H
-#define _RAW_H
-
-
-#include <net/protocol.h>
-#include <linux/icmp.h>
-
-extern struct proto raw_prot;
-
-void raw_icmp_error(struct sk_buff *, int, u32);
-int raw_local_deliver(struct sk_buff *, int);
-
-extern int raw_rcv(struct sock *, struct sk_buff *);
-
-#define RAW_HTABLE_SIZE MAX_INET_PROTOS
-
-struct raw_hashinfo {
- rwlock_t lock;
- struct hlist_head ht[RAW_HTABLE_SIZE];
-};
-
-#ifdef CONFIG_PROC_FS
-extern int raw_proc_init(void);
-extern void raw_proc_exit(void);
-
-struct raw_iter_state {
- struct seq_net_private p;
- int bucket;
- struct raw_hashinfo *h;
-};
-
-static inline struct raw_iter_state *raw_seq_private(struct seq_file *seq)
-{
- return seq->private;
-}
-void *raw_seq_start(struct seq_file *seq, loff_t *pos);
-void *raw_seq_next(struct seq_file *seq, void *v, loff_t *pos);
-void raw_seq_stop(struct seq_file *seq, void *v);
-int raw_seq_open(struct inode *ino, struct file *file,
- struct raw_hashinfo *h, const struct seq_operations *ops);
-
-#endif
-
-void raw_hash_sk(struct sock *sk);
-void raw_unhash_sk(struct sock *sk);
-
-struct raw_sock {
- /* inet_sock has to be the first member */
- struct inet_sock inet;
- struct icmp_filter filter;
- u32 ipmr_table;
-};
-
-static inline struct raw_sock *raw_sk(const struct sock *sk)
-{
- return (struct raw_sock *)sk;
-}
-
-#endif /* _RAW_H */
diff --git a/ANDROID_3.4.5/include/net/rawv6.h b/ANDROID_3.4.5/include/net/rawv6.h
deleted file mode 100644
index cf757723..00000000
--- a/ANDROID_3.4.5/include/net/rawv6.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef _NET_RAWV6_H
-#define _NET_RAWV6_H
-
-#include <net/protocol.h>
-
-void raw6_icmp_error(struct sk_buff *, int nexthdr,
- u8 type, u8 code, int inner_offset, __be32);
-int raw6_local_deliver(struct sk_buff *, int);
-
-extern int rawv6_rcv(struct sock *sk,
- struct sk_buff *skb);
-
-#if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE)
-int rawv6_mh_filter_register(int (*filter)(struct sock *sock,
- struct sk_buff *skb));
-int rawv6_mh_filter_unregister(int (*filter)(struct sock *sock,
- struct sk_buff *skb));
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/red.h b/ANDROID_3.4.5/include/net/red.h
deleted file mode 100644
index ef46058d..00000000
--- a/ANDROID_3.4.5/include/net/red.h
+++ /dev/null
@@ -1,405 +0,0 @@
-#ifndef __NET_SCHED_RED_H
-#define __NET_SCHED_RED_H
-
-#include <linux/types.h>
-#include <linux/bug.h>
-#include <net/pkt_sched.h>
-#include <net/inet_ecn.h>
-#include <net/dsfield.h>
-#include <linux/reciprocal_div.h>
-
-/* Random Early Detection (RED) algorithm.
- =======================================
-
- Source: Sally Floyd and Van Jacobson, "Random Early Detection Gateways
- for Congestion Avoidance", 1993, IEEE/ACM Transactions on Networking.
-
- This file codes a "divisionless" version of RED algorithm
- as written down in Fig.17 of the paper.
-
- Short description.
- ------------------
-
- When a new packet arrives we calculate the average queue length:
-
- avg = (1-W)*avg + W*current_queue_len,
-
- W is the filter time constant (chosen as 2^(-Wlog)), it controls
- the inertia of the algorithm. To allow larger bursts, W should be
- decreased.
-
- if (avg > th_max) -> packet marked (dropped).
- if (avg < th_min) -> packet passes.
- if (th_min < avg < th_max) we calculate probability:
-
- Pb = max_P * (avg - th_min)/(th_max-th_min)
-
- and mark (drop) packet with this probability.
- Pb changes from 0 (at avg==th_min) to max_P (avg==th_max).
- max_P should be small (not 1), usually 0.01..0.02 is good value.
-
- max_P is chosen as a number, so that max_P/(th_max-th_min)
- is a negative power of two in order arithmetics to contain
- only shifts.
-
-
- Parameters, settable by user:
- -----------------------------
-
- qth_min - bytes (should be < qth_max/2)
- qth_max - bytes (should be at least 2*qth_min and less limit)
- Wlog - bits (<32) log(1/W).
- Plog - bits (<32)
-
- Plog is related to max_P by formula:
-
- max_P = (qth_max-qth_min)/2^Plog;
-
- F.e. if qth_max=128K and qth_min=32K, then Plog=22
- corresponds to max_P=0.02
-
- Scell_log
- Stab
-
- Lookup table for log((1-W)^(t/t_ave).
-
-
- NOTES:
-
- Upper bound on W.
- -----------------
-
- If you want to allow bursts of L packets of size S,
- you should choose W:
-
- L + 1 - th_min/S < (1-(1-W)^L)/W
-
- th_min/S = 32 th_min/S = 4
-
- log(W) L
- -1 33
- -2 35
- -3 39
- -4 46
- -5 57
- -6 75
- -7 101
- -8 135
- -9 190
- etc.
- */
-
-/*
- * Adaptative RED : An Algorithm for Increasing the Robustness of RED's AQM
- * (Sally FLoyd, Ramakrishna Gummadi, and Scott Shenker) August 2001
- *
- * Every 500 ms:
- * if (avg > target and max_p <= 0.5)
- * increase max_p : max_p += alpha;
- * else if (avg < target and max_p >= 0.01)
- * decrease max_p : max_p *= beta;
- *
- * target :[qth_min + 0.4*(qth_min - qth_max),
- * qth_min + 0.6*(qth_min - qth_max)].
- * alpha : min(0.01, max_p / 4)
- * beta : 0.9
- * max_P is a Q0.32 fixed point number (with 32 bits mantissa)
- * max_P between 0.01 and 0.5 (1% - 50%) [ Its no longer a negative power of two ]
- */
-#define RED_ONE_PERCENT ((u32)DIV_ROUND_CLOSEST(1ULL<<32, 100))
-
-#define MAX_P_MIN (1 * RED_ONE_PERCENT)
-#define MAX_P_MAX (50 * RED_ONE_PERCENT)
-#define MAX_P_ALPHA(val) min(MAX_P_MIN, val / 4)
-
-#define RED_STAB_SIZE 256
-#define RED_STAB_MASK (RED_STAB_SIZE - 1)
-
-struct red_stats {
- u32 prob_drop; /* Early probability drops */
- u32 prob_mark; /* Early probability marks */
- u32 forced_drop; /* Forced drops, qavg > max_thresh */
- u32 forced_mark; /* Forced marks, qavg > max_thresh */
- u32 pdrop; /* Drops due to queue limits */
- u32 other; /* Drops due to drop() calls */
-};
-
-struct red_parms {
- /* Parameters */
- u32 qth_min; /* Min avg length threshold: Wlog scaled */
- u32 qth_max; /* Max avg length threshold: Wlog scaled */
- u32 Scell_max;
- u32 max_P; /* probability, [0 .. 1.0] 32 scaled */
- u32 max_P_reciprocal; /* reciprocal_value(max_P / qth_delta) */
- u32 qth_delta; /* max_th - min_th */
- u32 target_min; /* min_th + 0.4*(max_th - min_th) */
- u32 target_max; /* min_th + 0.6*(max_th - min_th) */
- u8 Scell_log;
- u8 Wlog; /* log(W) */
- u8 Plog; /* random number bits */
- u8 Stab[RED_STAB_SIZE];
-};
-
-struct red_vars {
- /* Variables */
- int qcount; /* Number of packets since last random
- number generation */
- u32 qR; /* Cached random number */
-
- unsigned long qavg; /* Average queue length: Wlog scaled */
- ktime_t qidlestart; /* Start of current idle period */
-};
-
-static inline u32 red_maxp(u8 Plog)
-{
- return Plog < 32 ? (~0U >> Plog) : ~0U;
-}
-
-static inline void red_set_vars(struct red_vars *v)
-{
- /* Reset average queue length, the value is strictly bound
- * to the parameters below, reseting hurts a bit but leaving
- * it might result in an unreasonable qavg for a while. --TGR
- */
- v->qavg = 0;
-
- v->qcount = -1;
-}
-
-static inline void red_set_parms(struct red_parms *p,
- u32 qth_min, u32 qth_max, u8 Wlog, u8 Plog,
- u8 Scell_log, u8 *stab, u32 max_P)
-{
- int delta = qth_max - qth_min;
- u32 max_p_delta;
-
- p->qth_min = qth_min << Wlog;
- p->qth_max = qth_max << Wlog;
- p->Wlog = Wlog;
- p->Plog = Plog;
- if (delta < 0)
- delta = 1;
- p->qth_delta = delta;
- if (!max_P) {
- max_P = red_maxp(Plog);
- max_P *= delta; /* max_P = (qth_max - qth_min)/2^Plog */
- }
- p->max_P = max_P;
- max_p_delta = max_P / delta;
- max_p_delta = max(max_p_delta, 1U);
- p->max_P_reciprocal = reciprocal_value(max_p_delta);
-
- /* RED Adaptative target :
- * [min_th + 0.4*(min_th - max_th),
- * min_th + 0.6*(min_th - max_th)].
- */
- delta /= 5;
- p->target_min = qth_min + 2*delta;
- p->target_max = qth_min + 3*delta;
-
- p->Scell_log = Scell_log;
- p->Scell_max = (255 << Scell_log);
-
- if (stab)
- memcpy(p->Stab, stab, sizeof(p->Stab));
-}
-
-static inline int red_is_idling(const struct red_vars *v)
-{
- return v->qidlestart.tv64 != 0;
-}
-
-static inline void red_start_of_idle_period(struct red_vars *v)
-{
- v->qidlestart = ktime_get();
-}
-
-static inline void red_end_of_idle_period(struct red_vars *v)
-{
- v->qidlestart.tv64 = 0;
-}
-
-static inline void red_restart(struct red_vars *v)
-{
- red_end_of_idle_period(v);
- v->qavg = 0;
- v->qcount = -1;
-}
-
-static inline unsigned long red_calc_qavg_from_idle_time(const struct red_parms *p,
- const struct red_vars *v)
-{
- s64 delta = ktime_us_delta(ktime_get(), v->qidlestart);
- long us_idle = min_t(s64, delta, p->Scell_max);
- int shift;
-
- /*
- * The problem: ideally, average length queue recalcultion should
- * be done over constant clock intervals. This is too expensive, so
- * that the calculation is driven by outgoing packets.
- * When the queue is idle we have to model this clock by hand.
- *
- * SF+VJ proposed to "generate":
- *
- * m = idletime / (average_pkt_size / bandwidth)
- *
- * dummy packets as a burst after idle time, i.e.
- *
- * v->qavg *= (1-W)^m
- *
- * This is an apparently overcomplicated solution (f.e. we have to
- * precompute a table to make this calculation in reasonable time)
- * I believe that a simpler model may be used here,
- * but it is field for experiments.
- */
-
- shift = p->Stab[(us_idle >> p->Scell_log) & RED_STAB_MASK];
-
- if (shift)
- return v->qavg >> shift;
- else {
- /* Approximate initial part of exponent with linear function:
- *
- * (1-W)^m ~= 1-mW + ...
- *
- * Seems, it is the best solution to
- * problem of too coarse exponent tabulation.
- */
- us_idle = (v->qavg * (u64)us_idle) >> p->Scell_log;
-
- if (us_idle < (v->qavg >> 1))
- return v->qavg - us_idle;
- else
- return v->qavg >> 1;
- }
-}
-
-static inline unsigned long red_calc_qavg_no_idle_time(const struct red_parms *p,
- const struct red_vars *v,
- unsigned int backlog)
-{
- /*
- * NOTE: v->qavg is fixed point number with point at Wlog.
- * The formula below is equvalent to floating point
- * version:
- *
- * qavg = qavg*(1-W) + backlog*W;
- *
- * --ANK (980924)
- */
- return v->qavg + (backlog - (v->qavg >> p->Wlog));
-}
-
-static inline unsigned long red_calc_qavg(const struct red_parms *p,
- const struct red_vars *v,
- unsigned int backlog)
-{
- if (!red_is_idling(v))
- return red_calc_qavg_no_idle_time(p, v, backlog);
- else
- return red_calc_qavg_from_idle_time(p, v);
-}
-
-
-static inline u32 red_random(const struct red_parms *p)
-{
- return reciprocal_divide(net_random(), p->max_P_reciprocal);
-}
-
-static inline int red_mark_probability(const struct red_parms *p,
- const struct red_vars *v,
- unsigned long qavg)
-{
- /* The formula used below causes questions.
-
- OK. qR is random number in the interval
- (0..1/max_P)*(qth_max-qth_min)
- i.e. 0..(2^Plog). If we used floating point
- arithmetics, it would be: (2^Plog)*rnd_num,
- where rnd_num is less 1.
-
- Taking into account, that qavg have fixed
- point at Wlog, two lines
- below have the following floating point equivalent:
-
- max_P*(qavg - qth_min)/(qth_max-qth_min) < rnd/qcount
-
- Any questions? --ANK (980924)
- */
- return !(((qavg - p->qth_min) >> p->Wlog) * v->qcount < v->qR);
-}
-
-enum {
- RED_BELOW_MIN_THRESH,
- RED_BETWEEN_TRESH,
- RED_ABOVE_MAX_TRESH,
-};
-
-static inline int red_cmp_thresh(const struct red_parms *p, unsigned long qavg)
-{
- if (qavg < p->qth_min)
- return RED_BELOW_MIN_THRESH;
- else if (qavg >= p->qth_max)
- return RED_ABOVE_MAX_TRESH;
- else
- return RED_BETWEEN_TRESH;
-}
-
-enum {
- RED_DONT_MARK,
- RED_PROB_MARK,
- RED_HARD_MARK,
-};
-
-static inline int red_action(const struct red_parms *p,
- struct red_vars *v,
- unsigned long qavg)
-{
- switch (red_cmp_thresh(p, qavg)) {
- case RED_BELOW_MIN_THRESH:
- v->qcount = -1;
- return RED_DONT_MARK;
-
- case RED_BETWEEN_TRESH:
- if (++v->qcount) {
- if (red_mark_probability(p, v, qavg)) {
- v->qcount = 0;
- v->qR = red_random(p);
- return RED_PROB_MARK;
- }
- } else
- v->qR = red_random(p);
-
- return RED_DONT_MARK;
-
- case RED_ABOVE_MAX_TRESH:
- v->qcount = -1;
- return RED_HARD_MARK;
- }
-
- BUG();
- return RED_DONT_MARK;
-}
-
-static inline void red_adaptative_algo(struct red_parms *p, struct red_vars *v)
-{
- unsigned long qavg;
- u32 max_p_delta;
-
- qavg = v->qavg;
- if (red_is_idling(v))
- qavg = red_calc_qavg_from_idle_time(p, v);
-
- /* v->qavg is fixed point number with point at Wlog */
- qavg >>= p->Wlog;
-
- if (qavg > p->target_max && p->max_P <= MAX_P_MAX)
- p->max_P += MAX_P_ALPHA(p->max_P); /* maxp = maxp + alpha */
- else if (qavg < p->target_min && p->max_P >= MAX_P_MIN)
- p->max_P = (p->max_P/10)*9; /* maxp = maxp * Beta */
-
- max_p_delta = DIV_ROUND_CLOSEST(p->max_P, p->qth_delta);
- max_p_delta = max(max_p_delta, 1U);
- p->max_P_reciprocal = reciprocal_value(max_p_delta);
-}
-#endif
diff --git a/ANDROID_3.4.5/include/net/regulatory.h b/ANDROID_3.4.5/include/net/regulatory.h
deleted file mode 100644
index a5f79933..00000000
--- a/ANDROID_3.4.5/include/net/regulatory.h
+++ /dev/null
@@ -1,122 +0,0 @@
-#ifndef __NET_REGULATORY_H
-#define __NET_REGULATORY_H
-/*
- * regulatory support structures
- *
- * Copyright 2008-2009 Luis R. Rodriguez <mcgrof@qca.qualcomm.com>
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-
-/**
- * enum environment_cap - Environment parsed from country IE
- * @ENVIRON_ANY: indicates country IE applies to both indoor and
- * outdoor operation.
- * @ENVIRON_INDOOR: indicates country IE applies only to indoor operation
- * @ENVIRON_OUTDOOR: indicates country IE applies only to outdoor operation
- */
-enum environment_cap {
- ENVIRON_ANY,
- ENVIRON_INDOOR,
- ENVIRON_OUTDOOR,
-};
-
-/**
- * struct regulatory_request - used to keep track of regulatory requests
- *
- * @wiphy_idx: this is set if this request's initiator is
- * %REGDOM_SET_BY_COUNTRY_IE or %REGDOM_SET_BY_DRIVER. This
- * can be used by the wireless core to deal with conflicts
- * and potentially inform users of which devices specifically
- * cased the conflicts.
- * @initiator: indicates who sent this request, could be any of
- * of those set in nl80211_reg_initiator (%NL80211_REGDOM_SET_BY_*)
- * @alpha2: the ISO / IEC 3166 alpha2 country code of the requested
- * regulatory domain. We have a few special codes:
- * 00 - World regulatory domain
- * 99 - built by driver but a specific alpha2 cannot be determined
- * 98 - result of an intersection between two regulatory domains
- * 97 - regulatory domain has not yet been configured
- * @dfs_region: If CRDA responded with a regulatory domain that requires
- * DFS master operation on a known DFS region (NL80211_DFS_*),
- * dfs_region represents that region. Drivers can use this and the
- * @alpha2 to adjust their device's DFS parameters as required.
- * @intersect: indicates whether the wireless core should intersect
- * the requested regulatory domain with the presently set regulatory
- * domain.
- * @processed: indicates whether or not this requests has already been
- * processed. When the last request is processed it means that the
- * currently regulatory domain set on cfg80211 is updated from
- * CRDA and can be used by other regulatory requests. When a
- * the last request is not yet processed we must yield until it
- * is processed before processing any new requests.
- * @country_ie_checksum: checksum of the last processed and accepted
- * country IE
- * @country_ie_env: lets us know if the AP is telling us we are outdoor,
- * indoor, or if it doesn't matter
- * @list: used to insert into the reg_requests_list linked list
- */
-struct regulatory_request {
- int wiphy_idx;
- enum nl80211_reg_initiator initiator;
- char alpha2[2];
- u8 dfs_region;
- bool intersect;
- bool processed;
- enum environment_cap country_ie_env;
- struct list_head list;
-};
-
-struct ieee80211_freq_range {
- u32 start_freq_khz;
- u32 end_freq_khz;
- u32 max_bandwidth_khz;
-};
-
-struct ieee80211_power_rule {
- u32 max_antenna_gain;
- u32 max_eirp;
-};
-
-struct ieee80211_reg_rule {
- struct ieee80211_freq_range freq_range;
- struct ieee80211_power_rule power_rule;
- u32 flags;
-};
-
-struct ieee80211_regdomain {
- u32 n_reg_rules;
- char alpha2[2];
- u8 dfs_region;
- struct ieee80211_reg_rule reg_rules[];
-};
-
-#define MHZ_TO_KHZ(freq) ((freq) * 1000)
-#define KHZ_TO_MHZ(freq) ((freq) / 1000)
-#define DBI_TO_MBI(gain) ((gain) * 100)
-#define MBI_TO_DBI(gain) ((gain) / 100)
-#define DBM_TO_MBM(gain) ((gain) * 100)
-#define MBM_TO_DBM(gain) ((gain) / 100)
-
-#define REG_RULE(start, end, bw, gain, eirp, reg_flags) \
-{ \
- .freq_range.start_freq_khz = MHZ_TO_KHZ(start), \
- .freq_range.end_freq_khz = MHZ_TO_KHZ(end), \
- .freq_range.max_bandwidth_khz = MHZ_TO_KHZ(bw), \
- .power_rule.max_antenna_gain = DBI_TO_MBI(gain),\
- .power_rule.max_eirp = DBM_TO_MBM(eirp), \
- .flags = reg_flags, \
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/request_sock.h b/ANDROID_3.4.5/include/net/request_sock.h
deleted file mode 100644
index 4c0766e2..00000000
--- a/ANDROID_3.4.5/include/net/request_sock.h
+++ /dev/null
@@ -1,258 +0,0 @@
-/*
- * NET Generic infrastructure for Network protocols.
- *
- * Definitions for request_sock
- *
- * Authors: Arnaldo Carvalho de Melo <acme@conectiva.com.br>
- *
- * From code originally in include/net/tcp.h
- *
- * 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 _REQUEST_SOCK_H
-#define _REQUEST_SOCK_H
-
-#include <linux/slab.h>
-#include <linux/spinlock.h>
-#include <linux/types.h>
-#include <linux/bug.h>
-
-#include <net/sock.h>
-
-struct request_sock;
-struct sk_buff;
-struct dst_entry;
-struct proto;
-
-/* empty to "strongly type" an otherwise void parameter.
- */
-struct request_values {
-};
-
-struct request_sock_ops {
- int family;
- int obj_size;
- struct kmem_cache *slab;
- char *slab_name;
- int (*rtx_syn_ack)(struct sock *sk,
- struct request_sock *req,
- struct request_values *rvp);
- void (*send_ack)(struct sock *sk, struct sk_buff *skb,
- struct request_sock *req);
- void (*send_reset)(struct sock *sk,
- struct sk_buff *skb);
- void (*destructor)(struct request_sock *req);
- void (*syn_ack_timeout)(struct sock *sk,
- struct request_sock *req);
-};
-
-/* struct request_sock - mini sock to represent a connection request
- */
-struct request_sock {
- struct request_sock *dl_next; /* Must be first member! */
- u16 mss;
- u8 retrans;
- u8 cookie_ts; /* syncookie: encode tcpopts in timestamp */
- /* The following two fields can be easily recomputed I think -AK */
- u32 window_clamp; /* window clamp at creation time */
- u32 rcv_wnd; /* rcv_wnd offered first time */
- u32 ts_recent;
- unsigned long expires;
- const struct request_sock_ops *rsk_ops;
- struct sock *sk;
- u32 secid;
- u32 peer_secid;
-};
-
-static inline struct request_sock *reqsk_alloc(const struct request_sock_ops *ops)
-{
- struct request_sock *req = kmem_cache_alloc(ops->slab, GFP_ATOMIC);
-
- if (req != NULL)
- req->rsk_ops = ops;
-
- return req;
-}
-
-static inline void __reqsk_free(struct request_sock *req)
-{
- kmem_cache_free(req->rsk_ops->slab, req);
-}
-
-static inline void reqsk_free(struct request_sock *req)
-{
- req->rsk_ops->destructor(req);
- __reqsk_free(req);
-}
-
-extern int sysctl_max_syn_backlog;
-
-/** struct listen_sock - listen state
- *
- * @max_qlen_log - log_2 of maximal queued SYNs/REQUESTs
- */
-struct listen_sock {
- u8 max_qlen_log;
- u8 synflood_warned;
- /* 2 bytes hole, try to use */
- int qlen;
- int qlen_young;
- int clock_hand;
- u32 hash_rnd;
- u32 nr_table_entries;
- struct request_sock *syn_table[0];
-};
-
-/** struct request_sock_queue - queue of request_socks
- *
- * @rskq_accept_head - FIFO head of established children
- * @rskq_accept_tail - FIFO tail of established children
- * @rskq_defer_accept - User waits for some data after accept()
- * @syn_wait_lock - serializer
- *
- * %syn_wait_lock is necessary only to avoid proc interface having to grab the main
- * lock sock while browsing the listening hash (otherwise it's deadlock prone).
- *
- * This lock is acquired in read mode only from listening_get_next() seq_file
- * op and it's acquired in write mode _only_ from code that is actively
- * changing rskq_accept_head. All readers that are holding the master sock lock
- * don't need to grab this lock in read mode too as rskq_accept_head. writes
- * are always protected from the main sock lock.
- */
-struct request_sock_queue {
- struct request_sock *rskq_accept_head;
- struct request_sock *rskq_accept_tail;
- rwlock_t syn_wait_lock;
- u8 rskq_defer_accept;
- /* 3 bytes hole, try to pack */
- struct listen_sock *listen_opt;
-};
-
-extern int reqsk_queue_alloc(struct request_sock_queue *queue,
- unsigned int nr_table_entries);
-
-extern void __reqsk_queue_destroy(struct request_sock_queue *queue);
-extern void reqsk_queue_destroy(struct request_sock_queue *queue);
-
-static inline struct request_sock *
- reqsk_queue_yank_acceptq(struct request_sock_queue *queue)
-{
- struct request_sock *req = queue->rskq_accept_head;
-
- queue->rskq_accept_head = NULL;
- return req;
-}
-
-static inline int reqsk_queue_empty(struct request_sock_queue *queue)
-{
- return queue->rskq_accept_head == NULL;
-}
-
-static inline void reqsk_queue_unlink(struct request_sock_queue *queue,
- struct request_sock *req,
- struct request_sock **prev_req)
-{
- write_lock(&queue->syn_wait_lock);
- *prev_req = req->dl_next;
- write_unlock(&queue->syn_wait_lock);
-}
-
-static inline void reqsk_queue_add(struct request_sock_queue *queue,
- struct request_sock *req,
- struct sock *parent,
- struct sock *child)
-{
- req->sk = child;
- sk_acceptq_added(parent);
-
- if (queue->rskq_accept_head == NULL)
- queue->rskq_accept_head = req;
- else
- queue->rskq_accept_tail->dl_next = req;
-
- queue->rskq_accept_tail = req;
- req->dl_next = NULL;
-}
-
-static inline struct request_sock *reqsk_queue_remove(struct request_sock_queue *queue)
-{
- struct request_sock *req = queue->rskq_accept_head;
-
- WARN_ON(req == NULL);
-
- queue->rskq_accept_head = req->dl_next;
- if (queue->rskq_accept_head == NULL)
- queue->rskq_accept_tail = NULL;
-
- return req;
-}
-
-static inline struct sock *reqsk_queue_get_child(struct request_sock_queue *queue,
- struct sock *parent)
-{
- struct request_sock *req = reqsk_queue_remove(queue);
- struct sock *child = req->sk;
-
- WARN_ON(child == NULL);
-
- sk_acceptq_removed(parent);
- __reqsk_free(req);
- return child;
-}
-
-static inline int reqsk_queue_removed(struct request_sock_queue *queue,
- struct request_sock *req)
-{
- struct listen_sock *lopt = queue->listen_opt;
-
- if (req->retrans == 0)
- --lopt->qlen_young;
-
- return --lopt->qlen;
-}
-
-static inline int reqsk_queue_added(struct request_sock_queue *queue)
-{
- struct listen_sock *lopt = queue->listen_opt;
- const int prev_qlen = lopt->qlen;
-
- lopt->qlen_young++;
- lopt->qlen++;
- return prev_qlen;
-}
-
-static inline int reqsk_queue_len(const struct request_sock_queue *queue)
-{
- return queue->listen_opt != NULL ? queue->listen_opt->qlen : 0;
-}
-
-static inline int reqsk_queue_len_young(const struct request_sock_queue *queue)
-{
- return queue->listen_opt->qlen_young;
-}
-
-static inline int reqsk_queue_is_full(const struct request_sock_queue *queue)
-{
- return queue->listen_opt->qlen >> queue->listen_opt->max_qlen_log;
-}
-
-static inline void reqsk_queue_hash_req(struct request_sock_queue *queue,
- u32 hash, struct request_sock *req,
- unsigned long timeout)
-{
- struct listen_sock *lopt = queue->listen_opt;
-
- req->expires = jiffies + timeout;
- req->retrans = 0;
- req->sk = NULL;
- req->dl_next = lopt->syn_table[hash];
-
- write_lock(&queue->syn_wait_lock);
- lopt->syn_table[hash] = req;
- write_unlock(&queue->syn_wait_lock);
-}
-
-#endif /* _REQUEST_SOCK_H */
diff --git a/ANDROID_3.4.5/include/net/rose.h b/ANDROID_3.4.5/include/net/rose.h
deleted file mode 100644
index 555dd198..00000000
--- a/ANDROID_3.4.5/include/net/rose.h
+++ /dev/null
@@ -1,241 +0,0 @@
-/*
- * Declarations of Rose type objects.
- *
- * Jonathan Naylor G4KLX 25/8/96
- */
-
-#ifndef _ROSE_H
-#define _ROSE_H
-
-#include <linux/rose.h>
-#include <net/sock.h>
-
-#define ROSE_ADDR_LEN 5
-
-#define ROSE_MIN_LEN 3
-
-#define ROSE_CALL_REQ_ADDR_LEN_OFF 3
-#define ROSE_CALL_REQ_ADDR_LEN_VAL 0xAA /* each address is 10 digits */
-#define ROSE_CALL_REQ_DEST_ADDR_OFF 4
-#define ROSE_CALL_REQ_SRC_ADDR_OFF 9
-#define ROSE_CALL_REQ_FACILITIES_OFF 14
-
-#define ROSE_GFI 0x10
-#define ROSE_Q_BIT 0x80
-#define ROSE_D_BIT 0x40
-#define ROSE_M_BIT 0x10
-
-#define ROSE_CALL_REQUEST 0x0B
-#define ROSE_CALL_ACCEPTED 0x0F
-#define ROSE_CLEAR_REQUEST 0x13
-#define ROSE_CLEAR_CONFIRMATION 0x17
-#define ROSE_DATA 0x00
-#define ROSE_INTERRUPT 0x23
-#define ROSE_INTERRUPT_CONFIRMATION 0x27
-#define ROSE_RR 0x01
-#define ROSE_RNR 0x05
-#define ROSE_REJ 0x09
-#define ROSE_RESET_REQUEST 0x1B
-#define ROSE_RESET_CONFIRMATION 0x1F
-#define ROSE_REGISTRATION_REQUEST 0xF3
-#define ROSE_REGISTRATION_CONFIRMATION 0xF7
-#define ROSE_RESTART_REQUEST 0xFB
-#define ROSE_RESTART_CONFIRMATION 0xFF
-#define ROSE_DIAGNOSTIC 0xF1
-#define ROSE_ILLEGAL 0xFD
-
-/* Define Link State constants. */
-
-enum {
- ROSE_STATE_0, /* Ready */
- ROSE_STATE_1, /* Awaiting Call Accepted */
- ROSE_STATE_2, /* Awaiting Clear Confirmation */
- ROSE_STATE_3, /* Data Transfer */
- ROSE_STATE_4, /* Awaiting Reset Confirmation */
- ROSE_STATE_5 /* Deferred Call Acceptance */
-};
-
-#define ROSE_DEFAULT_T0 180000 /* Default T10 T20 value */
-#define ROSE_DEFAULT_T1 200000 /* Default T11 T21 value */
-#define ROSE_DEFAULT_T2 180000 /* Default T12 T22 value */
-#define ROSE_DEFAULT_T3 180000 /* Default T13 T23 value */
-#define ROSE_DEFAULT_HB 5000 /* Default Holdback value */
-#define ROSE_DEFAULT_IDLE 0 /* No Activity Timeout - none */
-#define ROSE_DEFAULT_ROUTING 1 /* Default routing flag */
-#define ROSE_DEFAULT_FAIL_TIMEOUT 120000 /* Time until link considered usable */
-#define ROSE_DEFAULT_MAXVC 50 /* Maximum number of VCs per neighbour */
-#define ROSE_DEFAULT_WINDOW_SIZE 7 /* Default window size */
-
-#define ROSE_MODULUS 8
-#define ROSE_MAX_PACKET_SIZE 251 /* Maximum packet size */
-
-#define ROSE_COND_ACK_PENDING 0x01
-#define ROSE_COND_PEER_RX_BUSY 0x02
-#define ROSE_COND_OWN_RX_BUSY 0x04
-
-#define FAC_NATIONAL 0x00
-#define FAC_CCITT 0x0F
-
-#define FAC_NATIONAL_RAND 0x7F
-#define FAC_NATIONAL_FLAGS 0x3F
-#define FAC_NATIONAL_DEST_DIGI 0xE9
-#define FAC_NATIONAL_SRC_DIGI 0xEB
-#define FAC_NATIONAL_FAIL_CALL 0xED
-#define FAC_NATIONAL_FAIL_ADD 0xEE
-#define FAC_NATIONAL_DIGIS 0xEF
-
-#define FAC_CCITT_DEST_NSAP 0xC9
-#define FAC_CCITT_SRC_NSAP 0xCB
-
-struct rose_neigh {
- struct rose_neigh *next;
- ax25_address callsign;
- ax25_digi *digipeat;
- ax25_cb *ax25;
- struct net_device *dev;
- unsigned short count;
- unsigned short use;
- unsigned int number;
- char restarted;
- char dce_mode;
- char loopback;
- struct sk_buff_head queue;
- struct timer_list t0timer;
- struct timer_list ftimer;
-};
-
-struct rose_node {
- struct rose_node *next;
- rose_address address;
- unsigned short mask;
- unsigned char count;
- char loopback;
- struct rose_neigh *neighbour[3];
-};
-
-struct rose_route {
- struct rose_route *next;
- unsigned int lci1, lci2;
- rose_address src_addr, dest_addr;
- ax25_address src_call, dest_call;
- struct rose_neigh *neigh1, *neigh2;
- unsigned int rand;
-};
-
-struct rose_sock {
- struct sock sock;
- rose_address source_addr, dest_addr;
- ax25_address source_call, dest_call;
- unsigned char source_ndigis, dest_ndigis;
- ax25_address source_digis[ROSE_MAX_DIGIS];
- ax25_address dest_digis[ROSE_MAX_DIGIS];
- struct rose_neigh *neighbour;
- struct net_device *device;
- unsigned int lci, rand;
- unsigned char state, condition, qbitincl, defer;
- unsigned char cause, diagnostic;
- unsigned short vs, vr, va, vl;
- unsigned long t1, t2, t3, hb, idle;
-#ifdef M_BIT
- unsigned short fraglen;
- struct sk_buff_head frag_queue;
-#endif
- struct sk_buff_head ack_queue;
- struct rose_facilities_struct facilities;
- struct timer_list timer;
- struct timer_list idletimer;
-};
-
-#define rose_sk(sk) ((struct rose_sock *)(sk))
-
-/* af_rose.c */
-extern ax25_address rose_callsign;
-extern int sysctl_rose_restart_request_timeout;
-extern int sysctl_rose_call_request_timeout;
-extern int sysctl_rose_reset_request_timeout;
-extern int sysctl_rose_clear_request_timeout;
-extern int sysctl_rose_no_activity_timeout;
-extern int sysctl_rose_ack_hold_back_timeout;
-extern int sysctl_rose_routing_control;
-extern int sysctl_rose_link_fail_timeout;
-extern int sysctl_rose_maximum_vcs;
-extern int sysctl_rose_window_size;
-extern int rosecmp(rose_address *, rose_address *);
-extern int rosecmpm(rose_address *, rose_address *, unsigned short);
-extern char *rose2asc(char *buf, const rose_address *);
-extern struct sock *rose_find_socket(unsigned int, struct rose_neigh *);
-extern void rose_kill_by_neigh(struct rose_neigh *);
-extern unsigned int rose_new_lci(struct rose_neigh *);
-extern int rose_rx_call_request(struct sk_buff *, struct net_device *, struct rose_neigh *, unsigned int);
-extern void rose_destroy_socket(struct sock *);
-
-/* rose_dev.c */
-extern void rose_setup(struct net_device *);
-
-/* rose_in.c */
-extern int rose_process_rx_frame(struct sock *, struct sk_buff *);
-
-/* rose_link.c */
-extern void rose_start_ftimer(struct rose_neigh *);
-extern void rose_stop_ftimer(struct rose_neigh *);
-extern void rose_stop_t0timer(struct rose_neigh *);
-extern int rose_ftimer_running(struct rose_neigh *);
-extern void rose_link_rx_restart(struct sk_buff *, struct rose_neigh *, unsigned short);
-extern void rose_transmit_clear_request(struct rose_neigh *, unsigned int, unsigned char, unsigned char);
-extern void rose_transmit_link(struct sk_buff *, struct rose_neigh *);
-
-/* rose_loopback.c */
-extern void rose_loopback_init(void);
-extern void rose_loopback_clear(void);
-extern int rose_loopback_queue(struct sk_buff *, struct rose_neigh *);
-
-/* rose_out.c */
-extern void rose_kick(struct sock *);
-extern void rose_enquiry_response(struct sock *);
-
-/* rose_route.c */
-extern struct rose_neigh *rose_loopback_neigh;
-extern const struct file_operations rose_neigh_fops;
-extern const struct file_operations rose_nodes_fops;
-extern const struct file_operations rose_routes_fops;
-
-extern void rose_add_loopback_neigh(void);
-extern int __must_check rose_add_loopback_node(rose_address *);
-extern void rose_del_loopback_node(rose_address *);
-extern void rose_rt_device_down(struct net_device *);
-extern void rose_link_device_down(struct net_device *);
-extern struct net_device *rose_dev_first(void);
-extern struct net_device *rose_dev_get(rose_address *);
-extern struct rose_route *rose_route_free_lci(unsigned int, struct rose_neigh *);
-extern struct rose_neigh *rose_get_neigh(rose_address *, unsigned char *, unsigned char *, int);
-extern int rose_rt_ioctl(unsigned int, void __user *);
-extern void rose_link_failed(ax25_cb *, int);
-extern int rose_route_frame(struct sk_buff *, ax25_cb *);
-extern void rose_rt_free(void);
-
-/* rose_subr.c */
-extern void rose_clear_queues(struct sock *);
-extern void rose_frames_acked(struct sock *, unsigned short);
-extern void rose_requeue_frames(struct sock *);
-extern int rose_validate_nr(struct sock *, unsigned short);
-extern void rose_write_internal(struct sock *, int);
-extern int rose_decode(struct sk_buff *, int *, int *, int *, int *, int *);
-extern int rose_parse_facilities(unsigned char *, unsigned int, struct rose_facilities_struct *);
-extern void rose_disconnect(struct sock *, int, int, int);
-
-/* rose_timer.c */
-extern void rose_start_heartbeat(struct sock *);
-extern void rose_start_t1timer(struct sock *);
-extern void rose_start_t2timer(struct sock *);
-extern void rose_start_t3timer(struct sock *);
-extern void rose_start_hbtimer(struct sock *);
-extern void rose_start_idletimer(struct sock *);
-extern void rose_stop_heartbeat(struct sock *);
-extern void rose_stop_timer(struct sock *);
-extern void rose_stop_idletimer(struct sock *);
-
-/* sysctl_net_rose.c */
-extern void rose_register_sysctl(void);
-extern void rose_unregister_sysctl(void);
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/route.h b/ANDROID_3.4.5/include/net/route.h
deleted file mode 100644
index b1c0d5b5..00000000
--- a/ANDROID_3.4.5/include/net/route.h
+++ /dev/null
@@ -1,324 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Definitions for the IP router.
- *
- * Version: @(#)route.h 1.0.4 05/27/93
- *
- * Authors: Ross Biro
- * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
- * Fixes:
- * Alan Cox : Reformatted. Added ip_rt_local()
- * Alan Cox : Support for TCP parameters.
- * Alexey Kuznetsov: Major changes for new routing code.
- * Mike McLagan : Routing by source
- * Robert Olsson : Added rt_cache statistics
- *
- * 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 _ROUTE_H
-#define _ROUTE_H
-
-#include <net/dst.h>
-#include <net/inetpeer.h>
-#include <net/flow.h>
-#include <net/inet_sock.h>
-#include <linux/in_route.h>
-#include <linux/rtnetlink.h>
-#include <linux/route.h>
-#include <linux/ip.h>
-#include <linux/cache.h>
-#include <linux/security.h>
-
-#define RTO_ONLINK 0x01
-
-#define RT_CONN_FLAGS(sk) (RT_TOS(inet_sk(sk)->tos) | sock_flag(sk, SOCK_LOCALROUTE))
-
-struct fib_nh;
-struct inet_peer;
-struct fib_info;
-struct rtable {
- struct dst_entry dst;
-
- /* Lookup key. */
- __be32 rt_key_dst;
- __be32 rt_key_src;
-
- int rt_genid;
- unsigned rt_flags;
- __u16 rt_type;
- __u8 rt_key_tos;
-
- __be32 rt_dst; /* Path destination */
- __be32 rt_src; /* Path source */
- int rt_route_iif;
- int rt_iif;
- int rt_oif;
- __u32 rt_mark;
-
- /* Info on neighbour */
- __be32 rt_gateway;
-
- /* Miscellaneous cached information */
- __be32 rt_spec_dst; /* RFC1122 specific destination */
- u32 rt_peer_genid;
- struct inet_peer *peer; /* long-living peer info */
- struct fib_info *fi; /* for client ref to shared metrics */
-};
-
-static inline bool rt_is_input_route(const struct rtable *rt)
-{
- return rt->rt_route_iif != 0;
-}
-
-static inline bool rt_is_output_route(const struct rtable *rt)
-{
- return rt->rt_route_iif == 0;
-}
-
-struct ip_rt_acct {
- __u32 o_bytes;
- __u32 o_packets;
- __u32 i_bytes;
- __u32 i_packets;
-};
-
-struct rt_cache_stat {
- unsigned int in_hit;
- unsigned int in_slow_tot;
- unsigned int in_slow_mc;
- unsigned int in_no_route;
- unsigned int in_brd;
- unsigned int in_martian_dst;
- unsigned int in_martian_src;
- unsigned int out_hit;
- unsigned int out_slow_tot;
- unsigned int out_slow_mc;
- unsigned int gc_total;
- unsigned int gc_ignored;
- unsigned int gc_goal_miss;
- unsigned int gc_dst_overflow;
- unsigned int in_hlist_search;
- unsigned int out_hlist_search;
-};
-
-extern struct ip_rt_acct __percpu *ip_rt_acct;
-
-struct in_device;
-extern int ip_rt_init(void);
-extern void ip_rt_redirect(__be32 old_gw, __be32 dst, __be32 new_gw,
- __be32 src, struct net_device *dev);
-extern void rt_cache_flush(struct net *net, int how);
-extern void rt_cache_flush_batch(struct net *net);
-extern struct rtable *__ip_route_output_key(struct net *, struct flowi4 *flp);
-extern struct rtable *ip_route_output_flow(struct net *, struct flowi4 *flp,
- struct sock *sk);
-extern struct dst_entry *ipv4_blackhole_route(struct net *net, struct dst_entry *dst_orig);
-
-static inline struct rtable *ip_route_output_key(struct net *net, struct flowi4 *flp)
-{
- return ip_route_output_flow(net, flp, NULL);
-}
-
-static inline struct rtable *ip_route_output(struct net *net, __be32 daddr,
- __be32 saddr, u8 tos, int oif)
-{
- struct flowi4 fl4 = {
- .flowi4_oif = oif,
- .daddr = daddr,
- .saddr = saddr,
- .flowi4_tos = tos,
- };
- return ip_route_output_key(net, &fl4);
-}
-
-static inline struct rtable *ip_route_output_ports(struct net *net, struct flowi4 *fl4,
- struct sock *sk,
- __be32 daddr, __be32 saddr,
- __be16 dport, __be16 sport,
- __u8 proto, __u8 tos, int oif)
-{
- flowi4_init_output(fl4, oif, sk ? sk->sk_mark : 0, tos,
- RT_SCOPE_UNIVERSE, proto,
- sk ? inet_sk_flowi_flags(sk) : 0,
- daddr, saddr, dport, sport);
- if (sk)
- security_sk_classify_flow(sk, flowi4_to_flowi(fl4));
- return ip_route_output_flow(net, fl4, sk);
-}
-
-static inline struct rtable *ip_route_output_gre(struct net *net, struct flowi4 *fl4,
- __be32 daddr, __be32 saddr,
- __be32 gre_key, __u8 tos, int oif)
-{
- memset(fl4, 0, sizeof(*fl4));
- fl4->flowi4_oif = oif;
- fl4->daddr = daddr;
- fl4->saddr = saddr;
- fl4->flowi4_tos = tos;
- fl4->flowi4_proto = IPPROTO_GRE;
- fl4->fl4_gre_key = gre_key;
- return ip_route_output_key(net, fl4);
-}
-
-extern int ip_route_input_common(struct sk_buff *skb, __be32 dst, __be32 src,
- u8 tos, struct net_device *devin, bool noref);
-
-static inline int ip_route_input(struct sk_buff *skb, __be32 dst, __be32 src,
- u8 tos, struct net_device *devin)
-{
- return ip_route_input_common(skb, dst, src, tos, devin, false);
-}
-
-static inline int ip_route_input_noref(struct sk_buff *skb, __be32 dst, __be32 src,
- u8 tos, struct net_device *devin)
-{
- return ip_route_input_common(skb, dst, src, tos, devin, true);
-}
-
-extern unsigned short ip_rt_frag_needed(struct net *net, const struct iphdr *iph,
- unsigned short new_mtu, struct net_device *dev);
-extern void ip_rt_send_redirect(struct sk_buff *skb);
-
-extern unsigned inet_addr_type(struct net *net, __be32 addr);
-extern unsigned inet_dev_addr_type(struct net *net, const struct net_device *dev, __be32 addr);
-extern void ip_rt_multicast_event(struct in_device *);
-extern int ip_rt_ioctl(struct net *, unsigned int cmd, void __user *arg);
-extern void ip_rt_get_source(u8 *src, struct sk_buff *skb, struct rtable *rt);
-extern int ip_rt_dump(struct sk_buff *skb, struct netlink_callback *cb);
-
-struct in_ifaddr;
-extern void fib_add_ifaddr(struct in_ifaddr *);
-extern void fib_del_ifaddr(struct in_ifaddr *, struct in_ifaddr *);
-
-static inline void ip_rt_put(struct rtable * rt)
-{
- if (rt)
- dst_release(&rt->dst);
-}
-
-#define IPTOS_RT_MASK (IPTOS_TOS_MASK & ~3)
-
-extern const __u8 ip_tos2prio[16];
-
-static inline char rt_tos2priority(u8 tos)
-{
- return ip_tos2prio[IPTOS_TOS(tos)>>1];
-}
-
-/* ip_route_connect() and ip_route_newports() work in tandem whilst
- * binding a socket for a new outgoing connection.
- *
- * In order to use IPSEC properly, we must, in the end, have a
- * route that was looked up using all available keys including source
- * and destination ports.
- *
- * However, if a source port needs to be allocated (the user specified
- * a wildcard source port) we need to obtain addressing information
- * in order to perform that allocation.
- *
- * So ip_route_connect() looks up a route using wildcarded source and
- * destination ports in the key, simply so that we can get a pair of
- * addresses to use for port allocation.
- *
- * Later, once the ports are allocated, ip_route_newports() will make
- * another route lookup if needed to make sure we catch any IPSEC
- * rules keyed on the port information.
- *
- * The callers allocate the flow key on their stack, and must pass in
- * the same flowi4 object to both the ip_route_connect() and the
- * ip_route_newports() calls.
- */
-
-static inline void ip_route_connect_init(struct flowi4 *fl4, __be32 dst, __be32 src,
- u32 tos, int oif, u8 protocol,
- __be16 sport, __be16 dport,
- struct sock *sk, bool can_sleep)
-{
- __u8 flow_flags = 0;
-
- if (inet_sk(sk)->transparent)
- flow_flags |= FLOWI_FLAG_ANYSRC;
- if (protocol == IPPROTO_TCP)
- flow_flags |= FLOWI_FLAG_PRECOW_METRICS;
- if (can_sleep)
- flow_flags |= FLOWI_FLAG_CAN_SLEEP;
-
- flowi4_init_output(fl4, oif, sk->sk_mark, tos, RT_SCOPE_UNIVERSE,
- protocol, flow_flags, dst, src, dport, sport);
-}
-
-static inline struct rtable *ip_route_connect(struct flowi4 *fl4,
- __be32 dst, __be32 src, u32 tos,
- int oif, u8 protocol,
- __be16 sport, __be16 dport,
- struct sock *sk, bool can_sleep)
-{
- struct net *net = sock_net(sk);
- struct rtable *rt;
-
- ip_route_connect_init(fl4, dst, src, tos, oif, protocol,
- sport, dport, sk, can_sleep);
-
- if (!dst || !src) {
- rt = __ip_route_output_key(net, fl4);
- if (IS_ERR(rt))
- return rt;
- ip_rt_put(rt);
- flowi4_update_output(fl4, oif, tos, fl4->daddr, fl4->saddr);
- }
- security_sk_classify_flow(sk, flowi4_to_flowi(fl4));
- return ip_route_output_flow(net, fl4, sk);
-}
-
-static inline struct rtable *ip_route_newports(struct flowi4 *fl4, struct rtable *rt,
- __be16 orig_sport, __be16 orig_dport,
- __be16 sport, __be16 dport,
- struct sock *sk)
-{
- if (sport != orig_sport || dport != orig_dport) {
- fl4->fl4_dport = dport;
- fl4->fl4_sport = sport;
- ip_rt_put(rt);
- flowi4_update_output(fl4, sk->sk_bound_dev_if,
- RT_CONN_FLAGS(sk), fl4->daddr,
- fl4->saddr);
- security_sk_classify_flow(sk, flowi4_to_flowi(fl4));
- return ip_route_output_flow(sock_net(sk), fl4, sk);
- }
- return rt;
-}
-
-extern void rt_bind_peer(struct rtable *rt, __be32 daddr, int create);
-
-static inline struct inet_peer *rt_get_peer(struct rtable *rt, __be32 daddr)
-{
- if (rt->peer)
- return rt->peer;
-
- rt_bind_peer(rt, daddr, 0);
- return rt->peer;
-}
-
-static inline int inet_iif(const struct sk_buff *skb)
-{
- return skb_rtable(skb)->rt_iif;
-}
-
-extern int sysctl_ip_default_ttl;
-
-static inline int ip4_dst_hoplimit(const struct dst_entry *dst)
-{
- int hoplimit = dst_metric_raw(dst, RTAX_HOPLIMIT);
-
- if (hoplimit == 0)
- hoplimit = sysctl_ip_default_ttl;
- return hoplimit;
-}
-
-#endif /* _ROUTE_H */
diff --git a/ANDROID_3.4.5/include/net/rtnetlink.h b/ANDROID_3.4.5/include/net/rtnetlink.h
deleted file mode 100644
index 37029390..00000000
--- a/ANDROID_3.4.5/include/net/rtnetlink.h
+++ /dev/null
@@ -1,133 +0,0 @@
-#ifndef __NET_RTNETLINK_H
-#define __NET_RTNETLINK_H
-
-#include <linux/rtnetlink.h>
-#include <net/netlink.h>
-
-typedef int (*rtnl_doit_func)(struct sk_buff *, struct nlmsghdr *, void *);
-typedef int (*rtnl_dumpit_func)(struct sk_buff *, struct netlink_callback *);
-typedef u16 (*rtnl_calcit_func)(struct sk_buff *, struct nlmsghdr *);
-
-extern int __rtnl_register(int protocol, int msgtype,
- rtnl_doit_func, rtnl_dumpit_func,
- rtnl_calcit_func);
-extern void rtnl_register(int protocol, int msgtype,
- rtnl_doit_func, rtnl_dumpit_func,
- rtnl_calcit_func);
-extern int rtnl_unregister(int protocol, int msgtype);
-extern void rtnl_unregister_all(int protocol);
-
-static inline int rtnl_msg_family(const struct nlmsghdr *nlh)
-{
- if (nlmsg_len(nlh) >= sizeof(struct rtgenmsg))
- return ((struct rtgenmsg *) nlmsg_data(nlh))->rtgen_family;
- else
- return AF_UNSPEC;
-}
-
-/**
- * struct rtnl_link_ops - rtnetlink link operations
- *
- * @list: Used internally
- * @kind: Identifier
- * @maxtype: Highest device specific netlink attribute number
- * @policy: Netlink policy for device specific attribute validation
- * @validate: Optional validation function for netlink/changelink parameters
- * @priv_size: sizeof net_device private space
- * @setup: net_device setup function
- * @newlink: Function for configuring and registering a new device
- * @changelink: Function for changing parameters of an existing device
- * @dellink: Function to remove a device
- * @get_size: Function to calculate required room for dumping device
- * specific netlink attributes
- * @fill_info: Function to dump device specific netlink attributes
- * @get_xstats_size: Function to calculate required room for dumping devic
- * specific statistics
- * @fill_xstats: Function to dump device specific statistics
- */
-struct rtnl_link_ops {
- struct list_head list;
-
- const char *kind;
-
- size_t priv_size;
- void (*setup)(struct net_device *dev);
-
- int maxtype;
- const struct nla_policy *policy;
- int (*validate)(struct nlattr *tb[],
- struct nlattr *data[]);
-
- int (*newlink)(struct net *src_net,
- struct net_device *dev,
- struct nlattr *tb[],
- struct nlattr *data[]);
- int (*changelink)(struct net_device *dev,
- struct nlattr *tb[],
- struct nlattr *data[]);
- void (*dellink)(struct net_device *dev,
- struct list_head *head);
-
- size_t (*get_size)(const struct net_device *dev);
- int (*fill_info)(struct sk_buff *skb,
- const struct net_device *dev);
-
- size_t (*get_xstats_size)(const struct net_device *dev);
- int (*fill_xstats)(struct sk_buff *skb,
- const struct net_device *dev);
- int (*get_tx_queues)(struct net *net, struct nlattr *tb[],
- unsigned int *tx_queues,
- unsigned int *real_tx_queues);
-};
-
-extern int __rtnl_link_register(struct rtnl_link_ops *ops);
-extern void __rtnl_link_unregister(struct rtnl_link_ops *ops);
-
-extern int rtnl_link_register(struct rtnl_link_ops *ops);
-extern void rtnl_link_unregister(struct rtnl_link_ops *ops);
-
-/**
- * struct rtnl_af_ops - rtnetlink address family operations
- *
- * @list: Used internally
- * @family: Address family
- * @fill_link_af: Function to fill IFLA_AF_SPEC with address family
- * specific netlink attributes.
- * @get_link_af_size: Function to calculate size of address family specific
- * netlink attributes exlusive the container attribute.
- * @validate_link_af: Validate a IFLA_AF_SPEC attribute, must check attr
- * for invalid configuration settings.
- * @set_link_af: Function to parse a IFLA_AF_SPEC attribute and modify
- * net_device accordingly.
- */
-struct rtnl_af_ops {
- struct list_head list;
- int family;
-
- int (*fill_link_af)(struct sk_buff *skb,
- const struct net_device *dev);
- size_t (*get_link_af_size)(const struct net_device *dev);
-
- int (*validate_link_af)(const struct net_device *dev,
- const struct nlattr *attr);
- int (*set_link_af)(struct net_device *dev,
- const struct nlattr *attr);
-};
-
-extern int __rtnl_af_register(struct rtnl_af_ops *ops);
-extern void __rtnl_af_unregister(struct rtnl_af_ops *ops);
-
-extern int rtnl_af_register(struct rtnl_af_ops *ops);
-extern void rtnl_af_unregister(struct rtnl_af_ops *ops);
-
-
-extern struct net *rtnl_link_get_net(struct net *src_net, struct nlattr *tb[]);
-extern struct net_device *rtnl_create_link(struct net *src_net, struct net *net,
- char *ifname, const struct rtnl_link_ops *ops, struct nlattr *tb[]);
-extern int rtnl_configure_link(struct net_device *dev,
- const struct ifinfomsg *ifm);
-extern const struct nla_policy ifla_policy[IFLA_MAX+1];
-
-#define MODULE_ALIAS_RTNL_LINK(kind) MODULE_ALIAS("rtnl-link-" kind)
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/sch_generic.h b/ANDROID_3.4.5/include/net/sch_generic.h
deleted file mode 100644
index 9d7d54a0..00000000
--- a/ANDROID_3.4.5/include/net/sch_generic.h
+++ /dev/null
@@ -1,674 +0,0 @@
-#ifndef __NET_SCHED_GENERIC_H
-#define __NET_SCHED_GENERIC_H
-
-#include <linux/netdevice.h>
-#include <linux/types.h>
-#include <linux/rcupdate.h>
-#include <linux/pkt_sched.h>
-#include <linux/pkt_cls.h>
-#include <net/gen_stats.h>
-#include <net/rtnetlink.h>
-
-struct Qdisc_ops;
-struct qdisc_walker;
-struct tcf_walker;
-struct module;
-
-struct qdisc_rate_table {
- struct tc_ratespec rate;
- u32 data[256];
- struct qdisc_rate_table *next;
- int refcnt;
-};
-
-enum qdisc_state_t {
- __QDISC_STATE_SCHED,
- __QDISC_STATE_DEACTIVATED,
- __QDISC_STATE_THROTTLED,
-};
-
-/*
- * following bits are only changed while qdisc lock is held
- */
-enum qdisc___state_t {
- __QDISC___STATE_RUNNING = 1,
-};
-
-struct qdisc_size_table {
- struct rcu_head rcu;
- struct list_head list;
- struct tc_sizespec szopts;
- int refcnt;
- u16 data[];
-};
-
-struct Qdisc {
- int (*enqueue)(struct sk_buff *skb, struct Qdisc *dev);
- struct sk_buff * (*dequeue)(struct Qdisc *dev);
- unsigned int flags;
-#define TCQ_F_BUILTIN 1
-#define TCQ_F_INGRESS 2
-#define TCQ_F_CAN_BYPASS 4
-#define TCQ_F_MQROOT 8
-#define TCQ_F_WARN_NONWC (1 << 16)
- int padded;
- const struct Qdisc_ops *ops;
- struct qdisc_size_table __rcu *stab;
- struct list_head list;
- u32 handle;
- u32 parent;
- atomic_t refcnt;
- struct gnet_stats_rate_est rate_est;
- int (*reshape_fail)(struct sk_buff *skb,
- struct Qdisc *q);
-
- void *u32_node;
-
- /* This field is deprecated, but it is still used by CBQ
- * and it will live until better solution will be invented.
- */
- struct Qdisc *__parent;
- struct netdev_queue *dev_queue;
- struct Qdisc *next_sched;
-
- struct sk_buff *gso_skb;
- /*
- * For performance sake on SMP, we put highly modified fields at the end
- */
- unsigned long state;
- struct sk_buff_head q;
- struct gnet_stats_basic_packed bstats;
- unsigned int __state;
- struct gnet_stats_queue qstats;
- struct rcu_head rcu_head;
- spinlock_t busylock;
- u32 limit;
-};
-
-static inline bool qdisc_is_running(const struct Qdisc *qdisc)
-{
- return (qdisc->__state & __QDISC___STATE_RUNNING) ? true : false;
-}
-
-static inline bool qdisc_run_begin(struct Qdisc *qdisc)
-{
- if (qdisc_is_running(qdisc))
- return false;
- qdisc->__state |= __QDISC___STATE_RUNNING;
- return true;
-}
-
-static inline void qdisc_run_end(struct Qdisc *qdisc)
-{
- qdisc->__state &= ~__QDISC___STATE_RUNNING;
-}
-
-static inline bool qdisc_is_throttled(const struct Qdisc *qdisc)
-{
- return test_bit(__QDISC_STATE_THROTTLED, &qdisc->state) ? true : false;
-}
-
-static inline void qdisc_throttled(struct Qdisc *qdisc)
-{
- set_bit(__QDISC_STATE_THROTTLED, &qdisc->state);
-}
-
-static inline void qdisc_unthrottled(struct Qdisc *qdisc)
-{
- clear_bit(__QDISC_STATE_THROTTLED, &qdisc->state);
-}
-
-struct Qdisc_class_ops {
- /* Child qdisc manipulation */
- struct netdev_queue * (*select_queue)(struct Qdisc *, struct tcmsg *);
- int (*graft)(struct Qdisc *, unsigned long cl,
- struct Qdisc *, struct Qdisc **);
- struct Qdisc * (*leaf)(struct Qdisc *, unsigned long cl);
- void (*qlen_notify)(struct Qdisc *, unsigned long);
-
- /* Class manipulation routines */
- unsigned long (*get)(struct Qdisc *, u32 classid);
- void (*put)(struct Qdisc *, unsigned long);
- int (*change)(struct Qdisc *, u32, u32,
- struct nlattr **, unsigned long *);
- int (*delete)(struct Qdisc *, unsigned long);
- void (*walk)(struct Qdisc *, struct qdisc_walker * arg);
-
- /* Filter manipulation */
- struct tcf_proto ** (*tcf_chain)(struct Qdisc *, unsigned long);
- unsigned long (*bind_tcf)(struct Qdisc *, unsigned long,
- u32 classid);
- void (*unbind_tcf)(struct Qdisc *, unsigned long);
-
- /* rtnetlink specific */
- int (*dump)(struct Qdisc *, unsigned long,
- struct sk_buff *skb, struct tcmsg*);
- int (*dump_stats)(struct Qdisc *, unsigned long,
- struct gnet_dump *);
-};
-
-struct Qdisc_ops {
- struct Qdisc_ops *next;
- const struct Qdisc_class_ops *cl_ops;
- char id[IFNAMSIZ];
- int priv_size;
-
- int (*enqueue)(struct sk_buff *, struct Qdisc *);
- struct sk_buff * (*dequeue)(struct Qdisc *);
- struct sk_buff * (*peek)(struct Qdisc *);
- unsigned int (*drop)(struct Qdisc *);
-
- int (*init)(struct Qdisc *, struct nlattr *arg);
- void (*reset)(struct Qdisc *);
- void (*destroy)(struct Qdisc *);
- int (*change)(struct Qdisc *, struct nlattr *arg);
- void (*attach)(struct Qdisc *);
-
- int (*dump)(struct Qdisc *, struct sk_buff *);
- int (*dump_stats)(struct Qdisc *, struct gnet_dump *);
-
- struct module *owner;
-};
-
-
-struct tcf_result {
- unsigned long class;
- u32 classid;
-};
-
-struct tcf_proto_ops {
- struct tcf_proto_ops *next;
- char kind[IFNAMSIZ];
-
- int (*classify)(struct sk_buff *,
- const struct tcf_proto *,
- struct tcf_result *);
- int (*init)(struct tcf_proto*);
- void (*destroy)(struct tcf_proto*);
-
- unsigned long (*get)(struct tcf_proto*, u32 handle);
- void (*put)(struct tcf_proto*, unsigned long);
- int (*change)(struct tcf_proto*, unsigned long,
- u32 handle, struct nlattr **,
- unsigned long *);
- int (*delete)(struct tcf_proto*, unsigned long);
- void (*walk)(struct tcf_proto*, struct tcf_walker *arg);
-
- /* rtnetlink specific */
- int (*dump)(struct tcf_proto*, unsigned long,
- struct sk_buff *skb, struct tcmsg*);
-
- struct module *owner;
-};
-
-struct tcf_proto {
- /* Fast access part */
- struct tcf_proto *next;
- void *root;
- int (*classify)(struct sk_buff *,
- const struct tcf_proto *,
- struct tcf_result *);
- __be16 protocol;
-
- /* All the rest */
- u32 prio;
- u32 classid;
- struct Qdisc *q;
- void *data;
- const struct tcf_proto_ops *ops;
-};
-
-struct qdisc_skb_cb {
- unsigned int pkt_len;
- u16 bond_queue_mapping;
- u16 _pad;
- unsigned char data[20];
-};
-
-static inline void qdisc_cb_private_validate(const struct sk_buff *skb, int sz)
-{
- struct qdisc_skb_cb *qcb;
-
- BUILD_BUG_ON(sizeof(skb->cb) < offsetof(struct qdisc_skb_cb, data) + sz);
- BUILD_BUG_ON(sizeof(qcb->data) < sz);
-}
-
-static inline int qdisc_qlen(const struct Qdisc *q)
-{
- return q->q.qlen;
-}
-
-static inline struct qdisc_skb_cb *qdisc_skb_cb(const struct sk_buff *skb)
-{
- return (struct qdisc_skb_cb *)skb->cb;
-}
-
-static inline spinlock_t *qdisc_lock(struct Qdisc *qdisc)
-{
- return &qdisc->q.lock;
-}
-
-static inline struct Qdisc *qdisc_root(const struct Qdisc *qdisc)
-{
- return qdisc->dev_queue->qdisc;
-}
-
-static inline struct Qdisc *qdisc_root_sleeping(const struct Qdisc *qdisc)
-{
- return qdisc->dev_queue->qdisc_sleeping;
-}
-
-/* The qdisc root lock is a mechanism by which to top level
- * of a qdisc tree can be locked from any qdisc node in the
- * forest. This allows changing the configuration of some
- * aspect of the qdisc tree while blocking out asynchronous
- * qdisc access in the packet processing paths.
- *
- * It is only legal to do this when the root will not change
- * on us. Otherwise we'll potentially lock the wrong qdisc
- * root. This is enforced by holding the RTNL semaphore, which
- * all users of this lock accessor must do.
- */
-static inline spinlock_t *qdisc_root_lock(const struct Qdisc *qdisc)
-{
- struct Qdisc *root = qdisc_root(qdisc);
-
- ASSERT_RTNL();
- return qdisc_lock(root);
-}
-
-static inline spinlock_t *qdisc_root_sleeping_lock(const struct Qdisc *qdisc)
-{
- struct Qdisc *root = qdisc_root_sleeping(qdisc);
-
- ASSERT_RTNL();
- return qdisc_lock(root);
-}
-
-static inline struct net_device *qdisc_dev(const struct Qdisc *qdisc)
-{
- return qdisc->dev_queue->dev;
-}
-
-static inline void sch_tree_lock(const struct Qdisc *q)
-{
- spin_lock_bh(qdisc_root_sleeping_lock(q));
-}
-
-static inline void sch_tree_unlock(const struct Qdisc *q)
-{
- spin_unlock_bh(qdisc_root_sleeping_lock(q));
-}
-
-#define tcf_tree_lock(tp) sch_tree_lock((tp)->q)
-#define tcf_tree_unlock(tp) sch_tree_unlock((tp)->q)
-
-extern struct Qdisc noop_qdisc;
-extern struct Qdisc_ops noop_qdisc_ops;
-extern struct Qdisc_ops pfifo_fast_ops;
-extern struct Qdisc_ops mq_qdisc_ops;
-
-struct Qdisc_class_common {
- u32 classid;
- struct hlist_node hnode;
-};
-
-struct Qdisc_class_hash {
- struct hlist_head *hash;
- unsigned int hashsize;
- unsigned int hashmask;
- unsigned int hashelems;
-};
-
-static inline unsigned int qdisc_class_hash(u32 id, u32 mask)
-{
- id ^= id >> 8;
- id ^= id >> 4;
- return id & mask;
-}
-
-static inline struct Qdisc_class_common *
-qdisc_class_find(const struct Qdisc_class_hash *hash, u32 id)
-{
- struct Qdisc_class_common *cl;
- struct hlist_node *n;
- unsigned int h;
-
- h = qdisc_class_hash(id, hash->hashmask);
- hlist_for_each_entry(cl, n, &hash->hash[h], hnode) {
- if (cl->classid == id)
- return cl;
- }
- return NULL;
-}
-
-extern int qdisc_class_hash_init(struct Qdisc_class_hash *);
-extern void qdisc_class_hash_insert(struct Qdisc_class_hash *, struct Qdisc_class_common *);
-extern void qdisc_class_hash_remove(struct Qdisc_class_hash *, struct Qdisc_class_common *);
-extern void qdisc_class_hash_grow(struct Qdisc *, struct Qdisc_class_hash *);
-extern void qdisc_class_hash_destroy(struct Qdisc_class_hash *);
-
-extern void dev_init_scheduler(struct net_device *dev);
-extern void dev_shutdown(struct net_device *dev);
-extern void dev_activate(struct net_device *dev);
-extern void dev_deactivate(struct net_device *dev);
-extern void dev_deactivate_many(struct list_head *head);
-extern struct Qdisc *dev_graft_qdisc(struct netdev_queue *dev_queue,
- struct Qdisc *qdisc);
-extern void qdisc_reset(struct Qdisc *qdisc);
-extern void qdisc_destroy(struct Qdisc *qdisc);
-extern void qdisc_tree_decrease_qlen(struct Qdisc *qdisc, unsigned int n);
-extern struct Qdisc *qdisc_alloc(struct netdev_queue *dev_queue,
- struct Qdisc_ops *ops);
-extern struct Qdisc *qdisc_create_dflt(struct netdev_queue *dev_queue,
- struct Qdisc_ops *ops, u32 parentid);
-extern void __qdisc_calculate_pkt_len(struct sk_buff *skb,
- const struct qdisc_size_table *stab);
-extern void tcf_destroy(struct tcf_proto *tp);
-extern void tcf_destroy_chain(struct tcf_proto **fl);
-
-/* Reset all TX qdiscs greater then index of a device. */
-static inline void qdisc_reset_all_tx_gt(struct net_device *dev, unsigned int i)
-{
- struct Qdisc *qdisc;
-
- for (; i < dev->num_tx_queues; i++) {
- qdisc = netdev_get_tx_queue(dev, i)->qdisc;
- if (qdisc) {
- spin_lock_bh(qdisc_lock(qdisc));
- qdisc_reset(qdisc);
- spin_unlock_bh(qdisc_lock(qdisc));
- }
- }
-}
-
-static inline void qdisc_reset_all_tx(struct net_device *dev)
-{
- qdisc_reset_all_tx_gt(dev, 0);
-}
-
-/* Are all TX queues of the device empty? */
-static inline bool qdisc_all_tx_empty(const struct net_device *dev)
-{
- unsigned int i;
- for (i = 0; i < dev->num_tx_queues; i++) {
- struct netdev_queue *txq = netdev_get_tx_queue(dev, i);
- const struct Qdisc *q = txq->qdisc;
-
- if (q->q.qlen)
- return false;
- }
- return true;
-}
-
-/* Are any of the TX qdiscs changing? */
-static inline bool qdisc_tx_changing(const struct net_device *dev)
-{
- unsigned int i;
- for (i = 0; i < dev->num_tx_queues; i++) {
- struct netdev_queue *txq = netdev_get_tx_queue(dev, i);
- if (txq->qdisc != txq->qdisc_sleeping)
- return true;
- }
- return false;
-}
-
-/* Is the device using the noop qdisc on all queues? */
-static inline bool qdisc_tx_is_noop(const struct net_device *dev)
-{
- unsigned int i;
- for (i = 0; i < dev->num_tx_queues; i++) {
- struct netdev_queue *txq = netdev_get_tx_queue(dev, i);
- if (txq->qdisc != &noop_qdisc)
- return false;
- }
- return true;
-}
-
-static inline unsigned int qdisc_pkt_len(const struct sk_buff *skb)
-{
- return qdisc_skb_cb(skb)->pkt_len;
-}
-
-/* additional qdisc xmit flags (NET_XMIT_MASK in linux/netdevice.h) */
-enum net_xmit_qdisc_t {
- __NET_XMIT_STOLEN = 0x00010000,
- __NET_XMIT_BYPASS = 0x00020000,
-};
-
-#ifdef CONFIG_NET_CLS_ACT
-#define net_xmit_drop_count(e) ((e) & __NET_XMIT_STOLEN ? 0 : 1)
-#else
-#define net_xmit_drop_count(e) (1)
-#endif
-
-static inline void qdisc_calculate_pkt_len(struct sk_buff *skb,
- const struct Qdisc *sch)
-{
-#ifdef CONFIG_NET_SCHED
- struct qdisc_size_table *stab = rcu_dereference_bh(sch->stab);
-
- if (stab)
- __qdisc_calculate_pkt_len(skb, stab);
-#endif
-}
-
-static inline int qdisc_enqueue(struct sk_buff *skb, struct Qdisc *sch)
-{
- qdisc_calculate_pkt_len(skb, sch);
- return sch->enqueue(skb, sch);
-}
-
-static inline int qdisc_enqueue_root(struct sk_buff *skb, struct Qdisc *sch)
-{
- qdisc_skb_cb(skb)->pkt_len = skb->len;
- return qdisc_enqueue(skb, sch) & NET_XMIT_MASK;
-}
-
-
-static inline void bstats_update(struct gnet_stats_basic_packed *bstats,
- const struct sk_buff *skb)
-{
- bstats->bytes += qdisc_pkt_len(skb);
- bstats->packets += skb_is_gso(skb) ? skb_shinfo(skb)->gso_segs : 1;
-}
-
-static inline void qdisc_bstats_update(struct Qdisc *sch,
- const struct sk_buff *skb)
-{
- bstats_update(&sch->bstats, skb);
-}
-
-static inline int __qdisc_enqueue_tail(struct sk_buff *skb, struct Qdisc *sch,
- struct sk_buff_head *list)
-{
- __skb_queue_tail(list, skb);
- sch->qstats.backlog += qdisc_pkt_len(skb);
-
- return NET_XMIT_SUCCESS;
-}
-
-static inline int qdisc_enqueue_tail(struct sk_buff *skb, struct Qdisc *sch)
-{
- return __qdisc_enqueue_tail(skb, sch, &sch->q);
-}
-
-static inline struct sk_buff *__qdisc_dequeue_head(struct Qdisc *sch,
- struct sk_buff_head *list)
-{
- struct sk_buff *skb = __skb_dequeue(list);
-
- if (likely(skb != NULL)) {
- sch->qstats.backlog -= qdisc_pkt_len(skb);
- qdisc_bstats_update(sch, skb);
- }
-
- return skb;
-}
-
-static inline struct sk_buff *qdisc_dequeue_head(struct Qdisc *sch)
-{
- return __qdisc_dequeue_head(sch, &sch->q);
-}
-
-static inline unsigned int __qdisc_queue_drop_head(struct Qdisc *sch,
- struct sk_buff_head *list)
-{
- struct sk_buff *skb = __skb_dequeue(list);
-
- if (likely(skb != NULL)) {
- unsigned int len = qdisc_pkt_len(skb);
- sch->qstats.backlog -= len;
- kfree_skb(skb);
- return len;
- }
-
- return 0;
-}
-
-static inline unsigned int qdisc_queue_drop_head(struct Qdisc *sch)
-{
- return __qdisc_queue_drop_head(sch, &sch->q);
-}
-
-static inline struct sk_buff *__qdisc_dequeue_tail(struct Qdisc *sch,
- struct sk_buff_head *list)
-{
- struct sk_buff *skb = __skb_dequeue_tail(list);
-
- if (likely(skb != NULL))
- sch->qstats.backlog -= qdisc_pkt_len(skb);
-
- return skb;
-}
-
-static inline struct sk_buff *qdisc_dequeue_tail(struct Qdisc *sch)
-{
- return __qdisc_dequeue_tail(sch, &sch->q);
-}
-
-static inline struct sk_buff *qdisc_peek_head(struct Qdisc *sch)
-{
- return skb_peek(&sch->q);
-}
-
-/* generic pseudo peek method for non-work-conserving qdisc */
-static inline struct sk_buff *qdisc_peek_dequeued(struct Qdisc *sch)
-{
- /* we can reuse ->gso_skb because peek isn't called for root qdiscs */
- if (!sch->gso_skb) {
- sch->gso_skb = sch->dequeue(sch);
- if (sch->gso_skb)
- /* it's still part of the queue */
- sch->q.qlen++;
- }
-
- return sch->gso_skb;
-}
-
-/* use instead of qdisc->dequeue() for all qdiscs queried with ->peek() */
-static inline struct sk_buff *qdisc_dequeue_peeked(struct Qdisc *sch)
-{
- struct sk_buff *skb = sch->gso_skb;
-
- if (skb) {
- sch->gso_skb = NULL;
- sch->q.qlen--;
- } else {
- skb = sch->dequeue(sch);
- }
-
- return skb;
-}
-
-static inline void __qdisc_reset_queue(struct Qdisc *sch,
- struct sk_buff_head *list)
-{
- /*
- * We do not know the backlog in bytes of this list, it
- * is up to the caller to correct it
- */
- __skb_queue_purge(list);
-}
-
-static inline void qdisc_reset_queue(struct Qdisc *sch)
-{
- __qdisc_reset_queue(sch, &sch->q);
- sch->qstats.backlog = 0;
-}
-
-static inline unsigned int __qdisc_queue_drop(struct Qdisc *sch,
- struct sk_buff_head *list)
-{
- struct sk_buff *skb = __qdisc_dequeue_tail(sch, list);
-
- if (likely(skb != NULL)) {
- unsigned int len = qdisc_pkt_len(skb);
- kfree_skb(skb);
- return len;
- }
-
- return 0;
-}
-
-static inline unsigned int qdisc_queue_drop(struct Qdisc *sch)
-{
- return __qdisc_queue_drop(sch, &sch->q);
-}
-
-static inline int qdisc_drop(struct sk_buff *skb, struct Qdisc *sch)
-{
- kfree_skb(skb);
- sch->qstats.drops++;
-
- return NET_XMIT_DROP;
-}
-
-static inline int qdisc_reshape_fail(struct sk_buff *skb, struct Qdisc *sch)
-{
- sch->qstats.drops++;
-
-#ifdef CONFIG_NET_CLS_ACT
- if (sch->reshape_fail == NULL || sch->reshape_fail(skb, sch))
- goto drop;
-
- return NET_XMIT_SUCCESS;
-
-drop:
-#endif
- kfree_skb(skb);
- return NET_XMIT_DROP;
-}
-
-/* Length to Time (L2T) lookup in a qdisc_rate_table, to determine how
- long it will take to send a packet given its size.
- */
-static inline u32 qdisc_l2t(struct qdisc_rate_table* rtab, unsigned int pktlen)
-{
- int slot = pktlen + rtab->rate.cell_align + rtab->rate.overhead;
- if (slot < 0)
- slot = 0;
- slot >>= rtab->rate.cell_log;
- if (slot > 255)
- return rtab->data[255]*(slot >> 8) + rtab->data[slot & 0xFF];
- return rtab->data[slot];
-}
-
-#ifdef CONFIG_NET_CLS_ACT
-static inline struct sk_buff *skb_act_clone(struct sk_buff *skb, gfp_t gfp_mask,
- int action)
-{
- struct sk_buff *n;
-
- n = skb_clone(skb, gfp_mask);
-
- if (n) {
- n->tc_verd = SET_TC_VERD(n->tc_verd, 0);
- n->tc_verd = CLR_TC_OK2MUNGE(n->tc_verd);
- n->tc_verd = CLR_TC_MUNGED(n->tc_verd);
- }
- return n;
-}
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/scm.h b/ANDROID_3.4.5/include/net/scm.h
deleted file mode 100644
index 0c0017ce..00000000
--- a/ANDROID_3.4.5/include/net/scm.h
+++ /dev/null
@@ -1,131 +0,0 @@
-#ifndef __LINUX_NET_SCM_H
-#define __LINUX_NET_SCM_H
-
-#include <linux/limits.h>
-#include <linux/net.h>
-#include <linux/security.h>
-#include <linux/pid.h>
-#include <linux/nsproxy.h>
-
-/* Well, we should have at least one descriptor open
- * to accept passed FDs 8)
- */
-#define SCM_MAX_FD 253
-
-struct scm_fp_list {
- struct list_head list;
- short count;
- short max;
- struct file *fp[SCM_MAX_FD];
-};
-
-struct scm_cookie {
- struct pid *pid; /* Skb credentials */
- const struct cred *cred;
- struct scm_fp_list *fp; /* Passed files */
- struct ucred creds; /* Skb credentials */
-#ifdef CONFIG_SECURITY_NETWORK
- u32 secid; /* Passed security ID */
-#endif
-};
-
-extern void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm);
-extern void scm_detach_fds_compat(struct msghdr *msg, struct scm_cookie *scm);
-extern int __scm_send(struct socket *sock, struct msghdr *msg, struct scm_cookie *scm);
-extern void __scm_destroy(struct scm_cookie *scm);
-extern struct scm_fp_list * scm_fp_dup(struct scm_fp_list *fpl);
-
-#ifdef CONFIG_SECURITY_NETWORK
-static __inline__ void unix_get_peersec_dgram(struct socket *sock, struct scm_cookie *scm)
-{
- security_socket_getpeersec_dgram(sock, NULL, &scm->secid);
-}
-#else
-static __inline__ void unix_get_peersec_dgram(struct socket *sock, struct scm_cookie *scm)
-{ }
-#endif /* CONFIG_SECURITY_NETWORK */
-
-static __inline__ void scm_set_cred(struct scm_cookie *scm,
- struct pid *pid, const struct cred *cred)
-{
- scm->pid = get_pid(pid);
- scm->cred = cred ? get_cred(cred) : NULL;
- cred_to_ucred(pid, cred, &scm->creds);
-}
-
-static __inline__ void scm_destroy_cred(struct scm_cookie *scm)
-{
- put_pid(scm->pid);
- scm->pid = NULL;
-
- if (scm->cred)
- put_cred(scm->cred);
- scm->cred = NULL;
-}
-
-static __inline__ void scm_destroy(struct scm_cookie *scm)
-{
- scm_destroy_cred(scm);
- if (scm && scm->fp)
- __scm_destroy(scm);
-}
-
-static __inline__ int scm_send(struct socket *sock, struct msghdr *msg,
- struct scm_cookie *scm, bool forcecreds)
-{
- memset(scm, 0, sizeof(*scm));
- if (forcecreds)
- scm_set_cred(scm, task_tgid(current), current_cred());
- unix_get_peersec_dgram(sock, scm);
- if (msg->msg_controllen <= 0)
- return 0;
- return __scm_send(sock, msg, scm);
-}
-
-#ifdef CONFIG_SECURITY_NETWORK
-static inline void scm_passec(struct socket *sock, struct msghdr *msg, struct scm_cookie *scm)
-{
- char *secdata;
- u32 seclen;
- int err;
-
- if (test_bit(SOCK_PASSSEC, &sock->flags)) {
- err = security_secid_to_secctx(scm->secid, &secdata, &seclen);
-
- if (!err) {
- put_cmsg(msg, SOL_SOCKET, SCM_SECURITY, seclen, secdata);
- security_release_secctx(secdata, seclen);
- }
- }
-}
-#else
-static inline void scm_passec(struct socket *sock, struct msghdr *msg, struct scm_cookie *scm)
-{ }
-#endif /* CONFIG_SECURITY_NETWORK */
-
-static __inline__ void scm_recv(struct socket *sock, struct msghdr *msg,
- struct scm_cookie *scm, int flags)
-{
- if (!msg->msg_control) {
- if (test_bit(SOCK_PASSCRED, &sock->flags) || scm->fp)
- msg->msg_flags |= MSG_CTRUNC;
- scm_destroy(scm);
- return;
- }
-
- if (test_bit(SOCK_PASSCRED, &sock->flags))
- put_cmsg(msg, SOL_SOCKET, SCM_CREDENTIALS, sizeof(scm->creds), &scm->creds);
-
- scm_destroy_cred(scm);
-
- scm_passec(sock, msg, scm);
-
- if (!scm->fp)
- return;
-
- scm_detach_fds(msg, scm);
-}
-
-
-#endif /* __LINUX_NET_SCM_H */
-
diff --git a/ANDROID_3.4.5/include/net/sctp/auth.h b/ANDROID_3.4.5/include/net/sctp/auth.h
deleted file mode 100644
index 49bc9577..00000000
--- a/ANDROID_3.4.5/include/net/sctp/auth.h
+++ /dev/null
@@ -1,127 +0,0 @@
-/* SCTP kernel implementation
- * (C) Copyright 2007 Hewlett-Packard Development Company, L.P.
- *
- * This file is part of the SCTP kernel implementation
- *
- * This SCTP implementation 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 SCTP implementation 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 GNU CC; see the file COPYING. If not, write to
- * the Free Software Foundation, 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- *
- * Please send any bug reports or fixes you make to the
- * email address(es):
- * lksctp developers <lksctp-developers@lists.sourceforge.net>
- *
- * Or submit a bug report through the following website:
- * http://www.sf.net/projects/lksctp
- *
- * Written or modified by:
- * Vlad Yasevich <vladislav.yasevich@hp.com>
- *
- * Any bugs reported given to us we will try to fix... any fixes shared will
- * be incorporated into the next SCTP release.
- */
-
-#ifndef __sctp_auth_h__
-#define __sctp_auth_h__
-
-#include <linux/list.h>
-#include <linux/crypto.h>
-
-struct sctp_endpoint;
-struct sctp_association;
-struct sctp_authkey;
-struct sctp_hmacalgo;
-
-/*
- * Define a generic struct that will hold all the info
- * necessary for an HMAC transform
- */
-struct sctp_hmac {
- __u16 hmac_id; /* one of the above ids */
- char *hmac_name; /* name for loading */
- __u16 hmac_len; /* length of the signature */
-};
-
-/* This is generic structure that containst authentication bytes used
- * as keying material. It's a what is referred to as byte-vector all
- * over SCTP-AUTH
- */
-struct sctp_auth_bytes {
- atomic_t refcnt;
- __u32 len;
- __u8 data[];
-};
-
-/* Definition for a shared key, weather endpoint or association */
-struct sctp_shared_key {
- struct list_head key_list;
- __u16 key_id;
- struct sctp_auth_bytes *key;
-};
-
-#define key_for_each(__key, __list_head) \
- list_for_each_entry(__key, __list_head, key_list)
-
-#define key_for_each_safe(__key, __tmp, __list_head) \
- list_for_each_entry_safe(__key, __tmp, __list_head, key_list)
-
-static inline void sctp_auth_key_hold(struct sctp_auth_bytes *key)
-{
- if (!key)
- return;
-
- atomic_inc(&key->refcnt);
-}
-
-void sctp_auth_key_put(struct sctp_auth_bytes *key);
-struct sctp_shared_key *sctp_auth_shkey_create(__u16 key_id, gfp_t gfp);
-void sctp_auth_destroy_keys(struct list_head *keys);
-int sctp_auth_asoc_init_active_key(struct sctp_association *asoc, gfp_t gfp);
-struct sctp_shared_key *sctp_auth_get_shkey(
- const struct sctp_association *asoc,
- __u16 key_id);
-int sctp_auth_asoc_copy_shkeys(const struct sctp_endpoint *ep,
- struct sctp_association *asoc,
- gfp_t gfp);
-int sctp_auth_init_hmacs(struct sctp_endpoint *ep, gfp_t gfp);
-void sctp_auth_destroy_hmacs(struct crypto_hash *auth_hmacs[]);
-struct sctp_hmac *sctp_auth_get_hmac(__u16 hmac_id);
-struct sctp_hmac *sctp_auth_asoc_get_hmac(const struct sctp_association *asoc);
-void sctp_auth_asoc_set_default_hmac(struct sctp_association *asoc,
- struct sctp_hmac_algo_param *hmacs);
-int sctp_auth_asoc_verify_hmac_id(const struct sctp_association *asoc,
- __be16 hmac_id);
-int sctp_auth_send_cid(sctp_cid_t chunk, const struct sctp_association *asoc);
-int sctp_auth_recv_cid(sctp_cid_t chunk, const struct sctp_association *asoc);
-void sctp_auth_calculate_hmac(const struct sctp_association *asoc,
- struct sk_buff *skb,
- struct sctp_auth_chunk *auth, gfp_t gfp);
-
-/* API Helpers */
-int sctp_auth_ep_add_chunkid(struct sctp_endpoint *ep, __u8 chunk_id);
-int sctp_auth_ep_set_hmacs(struct sctp_endpoint *ep,
- struct sctp_hmacalgo *hmacs);
-int sctp_auth_set_key(struct sctp_endpoint *ep,
- struct sctp_association *asoc,
- struct sctp_authkey *auth_key);
-int sctp_auth_set_active_key(struct sctp_endpoint *ep,
- struct sctp_association *asoc,
- __u16 key_id);
-int sctp_auth_del_key_id(struct sctp_endpoint *ep,
- struct sctp_association *asoc,
- __u16 key_id);
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/sctp/checksum.h b/ANDROID_3.4.5/include/net/sctp/checksum.h
deleted file mode 100644
index befc8d2a..00000000
--- a/ANDROID_3.4.5/include/net/sctp/checksum.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/* SCTP kernel reference Implementation
- * Copyright (c) 1999-2001 Motorola, Inc.
- * Copyright (c) 2001-2003 International Business Machines, Corp.
- *
- * This file is part of the SCTP kernel reference Implementation
- *
- * SCTP Checksum functions
- *
- * The SCTP reference implementation 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.
- *
- * The SCTP reference implementation 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 GNU CC; see the file COPYING. If not, write to
- * the Free Software Foundation, 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- *
- * Please send any bug reports or fixes you make to the
- * email address(es):
- * lksctp developers <lksctp-developers@lists.sourceforge.net>
- *
- * Or submit a bug report through the following website:
- * http://www.sf.net/projects/lksctp
- *
- * Written or modified by:
- * Dinakaran Joseph
- * Jon Grimm <jgrimm@us.ibm.com>
- * Sridhar Samudrala <sri@us.ibm.com>
- *
- * Rewritten to use libcrc32c by:
- * Vlad Yasevich <vladislav.yasevich@hp.com>
- *
- * Any bugs reported given to us we will try to fix... any fixes shared will
- * be incorporated into the next SCTP release.
- */
-
-#include <linux/types.h>
-#include <net/sctp/sctp.h>
-#include <linux/crc32c.h>
-
-static inline __u32 sctp_crc32c(__u32 crc, u8 *buffer, u16 length)
-{
- return crc32c(crc, buffer, length);
-}
-
-static inline __u32 sctp_start_cksum(__u8 *buffer, __u16 length)
-{
- __u32 crc = ~(__u32)0;
- __u8 zero[sizeof(__u32)] = {0};
-
- /* Optimize this routine to be SCTP specific, knowing how
- * to skip the checksum field of the SCTP header.
- */
-
- /* Calculate CRC up to the checksum. */
- crc = sctp_crc32c(crc, buffer, sizeof(struct sctphdr) - sizeof(__u32));
-
- /* Skip checksum field of the header. */
- crc = sctp_crc32c(crc, zero, sizeof(__u32));
-
- /* Calculate the rest of the CRC. */
- crc = sctp_crc32c(crc, &buffer[sizeof(struct sctphdr)],
- length - sizeof(struct sctphdr));
- return crc;
-}
-
-static inline __u32 sctp_update_cksum(__u8 *buffer, __u16 length, __u32 crc32)
-{
- return sctp_crc32c(crc32, buffer, length);
-}
-
-static inline __le32 sctp_end_cksum(__be32 crc32)
-{
- return cpu_to_le32(~crc32);
-}
diff --git a/ANDROID_3.4.5/include/net/sctp/command.h b/ANDROID_3.4.5/include/net/sctp/command.h
deleted file mode 100644
index 712b3beb..00000000
--- a/ANDROID_3.4.5/include/net/sctp/command.h
+++ /dev/null
@@ -1,225 +0,0 @@
-/* SCTP kernel Implementation
- * (C) Copyright IBM Corp. 2001, 2004
- * Copyright (C) 1999-2001 Cisco, Motorola
- *
- * This file is part of the SCTP kernel implementation
- *
- * These are the definitions needed for the command object.
- *
- * This SCTP implementation 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 SCTP implementation 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 GNU CC; see the file COPYING. If not, write to
- * the Free Software Foundation, 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- *
- * Please send any bug reports or fixes you make to one of the
- * following email addresses:
- *
- * La Monte H.P. Yarroll <piggy@acm.org>
- * Karl Knutson <karl@athena.chicago.il.us>
- * Ardelle Fan <ardelle.fan@intel.com>
- * Sridhar Samudrala <sri@us.ibm.com>
- *
- * Any bugs reported given to us we will try to fix... any fixes shared will
- * be incorporated into the next SCTP release.
- */
-
-
-#ifndef __net_sctp_command_h__
-#define __net_sctp_command_h__
-
-#include <net/sctp/constants.h>
-#include <net/sctp/structs.h>
-
-
-typedef enum {
- SCTP_CMD_NOP = 0, /* Do nothing. */
- SCTP_CMD_NEW_ASOC, /* Register a new association. */
- SCTP_CMD_DELETE_TCB, /* Delete the current association. */
- SCTP_CMD_NEW_STATE, /* Enter a new state. */
- SCTP_CMD_REPORT_TSN, /* Record the arrival of a TSN. */
- SCTP_CMD_GEN_SACK, /* Send a Selective ACK (maybe). */
- SCTP_CMD_PROCESS_SACK, /* Process an inbound SACK. */
- SCTP_CMD_GEN_INIT_ACK, /* Generate an INIT ACK chunk. */
- SCTP_CMD_PEER_INIT, /* Process a INIT from the peer. */
- SCTP_CMD_GEN_COOKIE_ECHO, /* Generate a COOKIE ECHO chunk. */
- SCTP_CMD_CHUNK_ULP, /* Send a chunk to the sockets layer. */
- SCTP_CMD_EVENT_ULP, /* Send a notification to the sockets layer. */
- SCTP_CMD_REPLY, /* Send a chunk to our peer. */
- SCTP_CMD_SEND_PKT, /* Send a full packet to our peer. */
- SCTP_CMD_RETRAN, /* Mark a transport for retransmission. */
- SCTP_CMD_ECN_CE, /* Do delayed CE processing. */
- SCTP_CMD_ECN_ECNE, /* Do delayed ECNE processing. */
- SCTP_CMD_ECN_CWR, /* Do delayed CWR processing. */
- SCTP_CMD_TIMER_START, /* Start a timer. */
- SCTP_CMD_TIMER_START_ONCE, /* Start a timer once */
- SCTP_CMD_TIMER_RESTART, /* Restart a timer. */
- SCTP_CMD_TIMER_STOP, /* Stop a timer. */
- SCTP_CMD_INIT_CHOOSE_TRANSPORT, /* Choose transport for an INIT. */
- SCTP_CMD_INIT_COUNTER_RESET, /* Reset init counter. */
- SCTP_CMD_INIT_COUNTER_INC, /* Increment init counter. */
- SCTP_CMD_INIT_RESTART, /* High level, do init timer work. */
- SCTP_CMD_COOKIEECHO_RESTART, /* High level, do cookie-echo timer work. */
- SCTP_CMD_INIT_FAILED, /* High level, do init failure work. */
- SCTP_CMD_REPORT_DUP, /* Report a duplicate TSN. */
- SCTP_CMD_STRIKE, /* Mark a strike against a transport. */
- SCTP_CMD_HB_TIMERS_START, /* Start the heartbeat timers. */
- SCTP_CMD_HB_TIMER_UPDATE, /* Update a heartbeat timers. */
- SCTP_CMD_HB_TIMERS_STOP, /* Stop the heartbeat timers. */
- SCTP_CMD_TRANSPORT_HB_SENT, /* Reset the status of a transport. */
- SCTP_CMD_TRANSPORT_IDLE, /* Do manipulations on idle transport */
- SCTP_CMD_TRANSPORT_ON, /* Mark the transport as active. */
- SCTP_CMD_REPORT_ERROR, /* Pass this error back out of the sm. */
- SCTP_CMD_REPORT_BAD_TAG, /* Verification tags didn't match. */
- SCTP_CMD_PROCESS_CTSN, /* Sideeffect from shutdown. */
- SCTP_CMD_ASSOC_FAILED, /* Handle association failure. */
- SCTP_CMD_DISCARD_PACKET, /* Discard the whole packet. */
- SCTP_CMD_GEN_SHUTDOWN, /* Generate a SHUTDOWN chunk. */
- SCTP_CMD_UPDATE_ASSOC, /* Update association information. */
- SCTP_CMD_PURGE_OUTQUEUE, /* Purge all data waiting to be sent. */
- SCTP_CMD_SETUP_T2, /* Hi-level, setup T2-shutdown parms. */
- SCTP_CMD_RTO_PENDING, /* Set transport's rto_pending. */
- SCTP_CMD_PART_DELIVER, /* Partial data delivery considerations. */
- SCTP_CMD_RENEGE, /* Renege data on an association. */
- SCTP_CMD_SETUP_T4, /* ADDIP, setup T4 RTO timer parms. */
- SCTP_CMD_PROCESS_OPERR, /* Process an ERROR chunk. */
- SCTP_CMD_REPORT_FWDTSN, /* Report new cumulative TSN Ack. */
- SCTP_CMD_PROCESS_FWDTSN, /* Skips were reported, so process further. */
- SCTP_CMD_CLEAR_INIT_TAG, /* Clears association peer's inittag. */
- SCTP_CMD_DEL_NON_PRIMARY, /* Removes non-primary peer transports. */
- SCTP_CMD_T3_RTX_TIMERS_STOP, /* Stops T3-rtx pending timers */
- SCTP_CMD_FORCE_PRIM_RETRAN, /* Forces retrans. over primary path. */
- SCTP_CMD_SET_SK_ERR, /* Set sk_err */
- SCTP_CMD_ASSOC_CHANGE, /* generate and send assoc_change event */
- SCTP_CMD_ADAPTATION_IND, /* generate and send adaptation event */
- SCTP_CMD_ASSOC_SHKEY, /* generate the association shared keys */
- SCTP_CMD_T1_RETRAN, /* Mark for retransmission after T1 timeout */
- SCTP_CMD_UPDATE_INITTAG, /* Update peer inittag */
- SCTP_CMD_SEND_MSG, /* Send the whole use message */
- SCTP_CMD_SEND_NEXT_ASCONF, /* Send the next ASCONF after ACK */
- SCTP_CMD_PURGE_ASCONF_QUEUE, /* Purge all asconf queues.*/
- SCTP_CMD_SET_ASOC, /* Restore association context */
- SCTP_CMD_LAST
-} sctp_verb_t;
-
-/* How many commands can you put in an sctp_cmd_seq_t?
- * This is a rather arbitrary number, ideally derived from a careful
- * analysis of the state functions, but in reality just taken from
- * thin air in the hopes othat we don't trigger a kernel panic.
- */
-#define SCTP_MAX_NUM_COMMANDS 14
-
-typedef union {
- __s32 i32;
- __u32 u32;
- __be32 be32;
- __u16 u16;
- __u8 u8;
- int error;
- __be16 err;
- sctp_state_t state;
- sctp_event_timeout_t to;
- unsigned long zero;
- void *ptr;
- struct sctp_chunk *chunk;
- struct sctp_association *asoc;
- struct sctp_transport *transport;
- struct sctp_bind_addr *bp;
- sctp_init_chunk_t *init;
- struct sctp_ulpevent *ulpevent;
- struct sctp_packet *packet;
- sctp_sackhdr_t *sackh;
- struct sctp_datamsg *msg;
-} sctp_arg_t;
-
-/* We are simulating ML type constructors here.
- *
- * SCTP_ARG_CONSTRUCTOR(NAME, TYPE, ELT) builds a function called
- * SCTP_NAME() which takes an argument of type TYPE and returns an
- * sctp_arg_t. It does this by inserting the sole argument into the
- * ELT union element of a local sctp_arg_t.
- *
- * E.g., SCTP_ARG_CONSTRUCTOR(I32, __s32, i32) builds SCTP_I32(arg),
- * which takes an __s32 and returns a sctp_arg_t containing the
- * __s32. So, after foo = SCTP_I32(arg), foo.i32 == arg.
- */
-static inline sctp_arg_t SCTP_NULL(void)
-{
- sctp_arg_t retval; retval.ptr = NULL; return retval;
-}
-static inline sctp_arg_t SCTP_NOFORCE(void)
-{
- sctp_arg_t retval = {.zero = 0UL}; retval.i32 = 0; return retval;
-}
-static inline sctp_arg_t SCTP_FORCE(void)
-{
- sctp_arg_t retval = {.zero = 0UL}; retval.i32 = 1; return retval;
-}
-
-#define SCTP_ARG_CONSTRUCTOR(name, type, elt) \
-static inline sctp_arg_t \
-SCTP_## name (type arg) \
-{ sctp_arg_t retval = {.zero = 0UL}; retval.elt = arg; return retval; }
-
-SCTP_ARG_CONSTRUCTOR(I32, __s32, i32)
-SCTP_ARG_CONSTRUCTOR(U32, __u32, u32)
-SCTP_ARG_CONSTRUCTOR(BE32, __be32, be32)
-SCTP_ARG_CONSTRUCTOR(U16, __u16, u16)
-SCTP_ARG_CONSTRUCTOR(U8, __u8, u8)
-SCTP_ARG_CONSTRUCTOR(ERROR, int, error)
-SCTP_ARG_CONSTRUCTOR(PERR, __be16, err) /* protocol error */
-SCTP_ARG_CONSTRUCTOR(STATE, sctp_state_t, state)
-SCTP_ARG_CONSTRUCTOR(TO, sctp_event_timeout_t, to)
-SCTP_ARG_CONSTRUCTOR(PTR, void *, ptr)
-SCTP_ARG_CONSTRUCTOR(CHUNK, struct sctp_chunk *, chunk)
-SCTP_ARG_CONSTRUCTOR(ASOC, struct sctp_association *, asoc)
-SCTP_ARG_CONSTRUCTOR(TRANSPORT, struct sctp_transport *, transport)
-SCTP_ARG_CONSTRUCTOR(BA, struct sctp_bind_addr *, bp)
-SCTP_ARG_CONSTRUCTOR(PEER_INIT, sctp_init_chunk_t *, init)
-SCTP_ARG_CONSTRUCTOR(ULPEVENT, struct sctp_ulpevent *, ulpevent)
-SCTP_ARG_CONSTRUCTOR(PACKET, struct sctp_packet *, packet)
-SCTP_ARG_CONSTRUCTOR(SACKH, sctp_sackhdr_t *, sackh)
-SCTP_ARG_CONSTRUCTOR(DATAMSG, struct sctp_datamsg *, msg)
-
-typedef struct {
- sctp_arg_t obj;
- sctp_verb_t verb;
-} sctp_cmd_t;
-
-typedef struct {
- sctp_cmd_t cmds[SCTP_MAX_NUM_COMMANDS];
- __u8 next_free_slot;
- __u8 next_cmd;
-} sctp_cmd_seq_t;
-
-
-/* Initialize a block of memory as a command sequence.
- * Return 0 if the initialization fails.
- */
-int sctp_init_cmd_seq(sctp_cmd_seq_t *seq);
-
-/* Add a command to an sctp_cmd_seq_t.
- *
- * Use the SCTP_* constructors defined by SCTP_ARG_CONSTRUCTOR() above
- * to wrap data which goes in the obj argument.
- */
-void sctp_add_cmd_sf(sctp_cmd_seq_t *seq, sctp_verb_t verb, sctp_arg_t obj);
-
-/* Return the next command structure in an sctp_cmd_seq.
- * Return NULL at the end of the sequence.
- */
-sctp_cmd_t *sctp_next_cmd(sctp_cmd_seq_t *seq);
-
-#endif /* __net_sctp_command_h__ */
-
diff --git a/ANDROID_3.4.5/include/net/sctp/constants.h b/ANDROID_3.4.5/include/net/sctp/constants.h
deleted file mode 100644
index 942b864f..00000000
--- a/ANDROID_3.4.5/include/net/sctp/constants.h
+++ /dev/null
@@ -1,442 +0,0 @@
-/* SCTP kernel implementation
- * (C) Copyright IBM Corp. 2001, 2004
- * Copyright (c) 1999-2000 Cisco, Inc.
- * Copyright (c) 1999-2001 Motorola, Inc.
- * Copyright (c) 2001 Intel Corp.
- *
- * This file is part of the SCTP kernel implementation
- *
- * This SCTP implementation 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 SCTP implementation 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 GNU CC; see the file COPYING. If not, write to
- * the Free Software Foundation, 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- *
- * Please send any bug reports or fixes you make to the
- * email address(es):
- * lksctp developers <lksctp-developers@lists.sourceforge.net>
- *
- * Or submit a bug report through the following website:
- * http://www.sf.net/projects/lksctp
- *
- * Written or modified by:
- * La Monte H.P. Yarroll <piggy@acm.org>
- * Karl Knutson <karl@athena.chicago.il.us>
- * Randall Stewart <randall@stewart.chicago.il.us>
- * Ken Morneau <kmorneau@cisco.com>
- * Qiaobing Xie <qxie1@motorola.com>
- * Xingang Guo <xingang.guo@intel.com>
- * Sridhar Samudrala <samudrala@us.ibm.com>
- * Daisy Chang <daisyc@us.ibm.com>
- *
- * Any bugs reported given to us we will try to fix... any fixes shared will
- * be incorporated into the next SCTP release.
- */
-
-#ifndef __sctp_constants_h__
-#define __sctp_constants_h__
-
-#include <linux/sctp.h>
-#include <linux/ipv6.h> /* For ipv6hdr. */
-#include <net/sctp/user.h>
-#include <net/tcp_states.h> /* For TCP states used in sctp_sock_state_t */
-
-/* Value used for stream negotiation. */
-enum { SCTP_MAX_STREAM = 0xffff };
-enum { SCTP_DEFAULT_OUTSTREAMS = 10 };
-enum { SCTP_DEFAULT_INSTREAMS = SCTP_MAX_STREAM };
-
-/* Since CIDs are sparse, we need all four of the following
- * symbols. CIDs are dense through SCTP_CID_BASE_MAX.
- */
-#define SCTP_CID_BASE_MAX SCTP_CID_SHUTDOWN_COMPLETE
-
-#define SCTP_NUM_BASE_CHUNK_TYPES (SCTP_CID_BASE_MAX + 1)
-
-#define SCTP_NUM_ADDIP_CHUNK_TYPES 2
-
-#define SCTP_NUM_PRSCTP_CHUNK_TYPES 1
-
-#define SCTP_NUM_AUTH_CHUNK_TYPES 1
-
-#define SCTP_NUM_CHUNK_TYPES (SCTP_NUM_BASE_CHUNK_TYPES + \
- SCTP_NUM_ADDIP_CHUNK_TYPES +\
- SCTP_NUM_PRSCTP_CHUNK_TYPES +\
- SCTP_NUM_AUTH_CHUNK_TYPES)
-
-/* These are the different flavours of event. */
-typedef enum {
-
- SCTP_EVENT_T_CHUNK = 1,
- SCTP_EVENT_T_TIMEOUT,
- SCTP_EVENT_T_OTHER,
- SCTP_EVENT_T_PRIMITIVE
-
-} sctp_event_t;
-
-/* As a convenience for the state machine, we append SCTP_EVENT_* and
- * SCTP_ULP_* to the list of possible chunks.
- */
-
-typedef enum {
- SCTP_EVENT_TIMEOUT_NONE = 0,
- SCTP_EVENT_TIMEOUT_T1_COOKIE,
- SCTP_EVENT_TIMEOUT_T1_INIT,
- SCTP_EVENT_TIMEOUT_T2_SHUTDOWN,
- SCTP_EVENT_TIMEOUT_T3_RTX,
- SCTP_EVENT_TIMEOUT_T4_RTO,
- SCTP_EVENT_TIMEOUT_T5_SHUTDOWN_GUARD,
- SCTP_EVENT_TIMEOUT_HEARTBEAT,
- SCTP_EVENT_TIMEOUT_SACK,
- SCTP_EVENT_TIMEOUT_AUTOCLOSE,
-} sctp_event_timeout_t;
-
-#define SCTP_EVENT_TIMEOUT_MAX SCTP_EVENT_TIMEOUT_AUTOCLOSE
-#define SCTP_NUM_TIMEOUT_TYPES (SCTP_EVENT_TIMEOUT_MAX + 1)
-
-typedef enum {
- SCTP_EVENT_NO_PENDING_TSN = 0,
- SCTP_EVENT_ICMP_PROTO_UNREACH,
-} sctp_event_other_t;
-
-#define SCTP_EVENT_OTHER_MAX SCTP_EVENT_ICMP_PROTO_UNREACH
-#define SCTP_NUM_OTHER_TYPES (SCTP_EVENT_OTHER_MAX + 1)
-
-/* These are primitive requests from the ULP. */
-typedef enum {
- SCTP_PRIMITIVE_ASSOCIATE = 0,
- SCTP_PRIMITIVE_SHUTDOWN,
- SCTP_PRIMITIVE_ABORT,
- SCTP_PRIMITIVE_SEND,
- SCTP_PRIMITIVE_REQUESTHEARTBEAT,
- SCTP_PRIMITIVE_ASCONF,
-} sctp_event_primitive_t;
-
-#define SCTP_EVENT_PRIMITIVE_MAX SCTP_PRIMITIVE_ASCONF
-#define SCTP_NUM_PRIMITIVE_TYPES (SCTP_EVENT_PRIMITIVE_MAX + 1)
-
-/* We define here a utility type for manipulating subtypes.
- * The subtype constructors all work like this:
- *
- * sctp_subtype_t foo = SCTP_ST_CHUNK(SCTP_CID_INIT);
- */
-
-typedef union {
- sctp_cid_t chunk;
- sctp_event_timeout_t timeout;
- sctp_event_other_t other;
- sctp_event_primitive_t primitive;
-} sctp_subtype_t;
-
-#define SCTP_SUBTYPE_CONSTRUCTOR(_name, _type, _elt) \
-static inline sctp_subtype_t \
-SCTP_ST_## _name (_type _arg) \
-{ sctp_subtype_t _retval; _retval._elt = _arg; return _retval; }
-
-SCTP_SUBTYPE_CONSTRUCTOR(CHUNK, sctp_cid_t, chunk)
-SCTP_SUBTYPE_CONSTRUCTOR(TIMEOUT, sctp_event_timeout_t, timeout)
-SCTP_SUBTYPE_CONSTRUCTOR(OTHER, sctp_event_other_t, other)
-SCTP_SUBTYPE_CONSTRUCTOR(PRIMITIVE, sctp_event_primitive_t, primitive)
-
-
-#define sctp_chunk_is_data(a) (a->chunk_hdr->type == SCTP_CID_DATA)
-
-/* Calculate the actual data size in a data chunk */
-#define SCTP_DATA_SNDSIZE(c) ((int)((unsigned long)(c->chunk_end)\
- - (unsigned long)(c->chunk_hdr)\
- - sizeof(sctp_data_chunk_t)))
-
-/* Internal error codes */
-typedef enum {
-
- SCTP_IERROR_NO_ERROR = 0,
- SCTP_IERROR_BASE = 1000,
- SCTP_IERROR_NO_COOKIE,
- SCTP_IERROR_BAD_SIG,
- SCTP_IERROR_STALE_COOKIE,
- SCTP_IERROR_NOMEM,
- SCTP_IERROR_MALFORMED,
- SCTP_IERROR_BAD_TAG,
- SCTP_IERROR_BIG_GAP,
- SCTP_IERROR_DUP_TSN,
- SCTP_IERROR_HIGH_TSN,
- SCTP_IERROR_IGNORE_TSN,
- SCTP_IERROR_NO_DATA,
- SCTP_IERROR_BAD_STREAM,
- SCTP_IERROR_BAD_PORTS,
- SCTP_IERROR_AUTH_BAD_HMAC,
- SCTP_IERROR_AUTH_BAD_KEYID,
- SCTP_IERROR_PROTO_VIOLATION,
- SCTP_IERROR_ERROR,
- SCTP_IERROR_ABORT,
-} sctp_ierror_t;
-
-
-
-/* SCTP state defines for internal state machine */
-typedef enum {
-
- SCTP_STATE_CLOSED = 0,
- SCTP_STATE_COOKIE_WAIT = 1,
- SCTP_STATE_COOKIE_ECHOED = 2,
- SCTP_STATE_ESTABLISHED = 3,
- SCTP_STATE_SHUTDOWN_PENDING = 4,
- SCTP_STATE_SHUTDOWN_SENT = 5,
- SCTP_STATE_SHUTDOWN_RECEIVED = 6,
- SCTP_STATE_SHUTDOWN_ACK_SENT = 7,
-
-} sctp_state_t;
-
-#define SCTP_STATE_MAX SCTP_STATE_SHUTDOWN_ACK_SENT
-#define SCTP_STATE_NUM_STATES (SCTP_STATE_MAX + 1)
-
-/* These are values for sk->state.
- * For a UDP-style SCTP socket, the states are defined as follows
- * - A socket in SCTP_SS_CLOSED state indicates that it is not willing to
- * accept new associations, but it can initiate the creation of new ones.
- * - A socket in SCTP_SS_LISTENING state indicates that it is willing to
- * accept new associations and can initiate the creation of new ones.
- * - A socket in SCTP_SS_ESTABLISHED state indicates that it is a peeled off
- * socket with one association.
- * For a TCP-style SCTP socket, the states are defined as follows
- * - A socket in SCTP_SS_CLOSED state indicates that it is not willing to
- * accept new associations, but it can initiate the creation of new ones.
- * - A socket in SCTP_SS_LISTENING state indicates that it is willing to
- * accept new associations, but cannot initiate the creation of new ones.
- * - A socket in SCTP_SS_ESTABLISHED state indicates that it has a single
- * association.
- */
-typedef enum {
- SCTP_SS_CLOSED = TCP_CLOSE,
- SCTP_SS_LISTENING = TCP_LISTEN,
- SCTP_SS_ESTABLISHING = TCP_SYN_SENT,
- SCTP_SS_ESTABLISHED = TCP_ESTABLISHED,
- SCTP_SS_CLOSING = TCP_CLOSING,
-} sctp_sock_state_t;
-
-/* These functions map various type to printable names. */
-const char *sctp_cname(const sctp_subtype_t); /* chunk types */
-const char *sctp_oname(const sctp_subtype_t); /* other events */
-const char *sctp_tname(const sctp_subtype_t); /* timeouts */
-const char *sctp_pname(const sctp_subtype_t); /* primitives */
-
-/* This is a table of printable names of sctp_state_t's. */
-extern const char *const sctp_state_tbl[];
-extern const char *const sctp_evttype_tbl[];
-extern const char *const sctp_status_tbl[];
-
-/* Maximum chunk length considering padding requirements. */
-enum { SCTP_MAX_CHUNK_LEN = ((1<<16) - sizeof(__u32)) };
-
-/* Encourage Cookie-Echo bundling by pre-fragmenting chunks a little
- * harder (until reaching ESTABLISHED state).
- */
-enum { SCTP_ARBITRARY_COOKIE_ECHO_LEN = 200 };
-
-/* Guess at how big to make the TSN mapping array.
- * We guarantee that we can handle at least this big a gap between the
- * cumulative ACK and the highest TSN. In practice, we can often
- * handle up to twice this value.
- *
- * NEVER make this more than 32767 (2^15-1). The Gap Ack Blocks in a
- * SACK (see section 3.3.4) are only 16 bits, so 2*SCTP_TSN_MAP_SIZE
- * must be less than 65535 (2^16 - 1), or we will have overflow
- * problems creating SACK's.
- */
-#define SCTP_TSN_MAP_INITIAL BITS_PER_LONG
-#define SCTP_TSN_MAP_INCREMENT SCTP_TSN_MAP_INITIAL
-#define SCTP_TSN_MAP_SIZE 4096
-
-/* We will not record more than this many duplicate TSNs between two
- * SACKs. The minimum PMTU is 576. Remove all the headers and there
- * is enough room for 131 duplicate reports. Round down to the
- * nearest power of 2.
- */
-enum { SCTP_MIN_PMTU = 576 };
-enum { SCTP_MAX_DUP_TSNS = 16 };
-enum { SCTP_MAX_GABS = 16 };
-
-/* Heartbeat interval - 30 secs */
-#define SCTP_DEFAULT_TIMEOUT_HEARTBEAT (30*1000)
-
-/* Delayed sack timer - 200ms */
-#define SCTP_DEFAULT_TIMEOUT_SACK (200)
-
-/* RTO.Initial - 3 seconds
- * RTO.Min - 1 second
- * RTO.Max - 60 seconds
- * RTO.Alpha - 1/8
- * RTO.Beta - 1/4
- */
-#define SCTP_RTO_INITIAL (3 * 1000)
-#define SCTP_RTO_MIN (1 * 1000)
-#define SCTP_RTO_MAX (60 * 1000)
-
-#define SCTP_RTO_ALPHA 3 /* 1/8 when converted to right shifts. */
-#define SCTP_RTO_BETA 2 /* 1/4 when converted to right shifts. */
-
-/* Maximum number of new data packets that can be sent in a burst. */
-#define SCTP_DEFAULT_MAX_BURST 4
-
-#define SCTP_CLOCK_GRANULARITY 1 /* 1 jiffy */
-
-#define SCTP_DEFAULT_COOKIE_LIFE (60 * 1000) /* 60 seconds */
-
-#define SCTP_DEFAULT_MINWINDOW 1500 /* default minimum rwnd size */
-#define SCTP_DEFAULT_MAXWINDOW 65535 /* default rwnd size */
-#define SCTP_DEFAULT_RWND_SHIFT 4 /* by default, update on 1/16 of
- * rcvbuf, which is 1/8 of initial
- * window
- */
-#define SCTP_DEFAULT_MAXSEGMENT 1500 /* MTU size, this is the limit
- * to which we will raise the P-MTU.
- */
-#define SCTP_DEFAULT_MINSEGMENT 512 /* MTU size ... if no mtu disc */
-#define SCTP_HOW_MANY_SECRETS 2 /* How many secrets I keep */
-#define SCTP_SECRET_SIZE 32 /* Number of octets in a 256 bits. */
-
-#define SCTP_SIGNATURE_SIZE 20 /* size of a SLA-1 signature */
-
-#define SCTP_COOKIE_MULTIPLE 32 /* Pad out our cookie to make our hash
- * functions simpler to write.
- */
-
-#if defined (CONFIG_SCTP_HMAC_MD5)
-#define SCTP_COOKIE_HMAC_ALG "hmac(md5)"
-#elif defined (CONFIG_SCTP_HMAC_SHA1)
-#define SCTP_COOKIE_HMAC_ALG "hmac(sha1)"
-#else
-#define SCTP_COOKIE_HMAC_ALG NULL
-#endif
-
-/* These return values describe the success or failure of a number of
- * routines which form the lower interface to SCTP_outqueue.
- */
-typedef enum {
- SCTP_XMIT_OK,
- SCTP_XMIT_PMTU_FULL,
- SCTP_XMIT_RWND_FULL,
- SCTP_XMIT_NAGLE_DELAY,
-} sctp_xmit_t;
-
-/* These are the commands for manipulating transports. */
-typedef enum {
- SCTP_TRANSPORT_UP,
- SCTP_TRANSPORT_DOWN,
-} sctp_transport_cmd_t;
-
-/* These are the address scopes defined mainly for IPv4 addresses
- * based on draft of SCTP IPv4 scoping <draft-stewart-tsvwg-sctp-ipv4-00.txt>.
- * These scopes are hopefully generic enough to be used on scoping both
- * IPv4 and IPv6 addresses in SCTP.
- * At this point, the IPv6 scopes will be mapped to these internal scopes
- * as much as possible.
- */
-typedef enum {
- SCTP_SCOPE_GLOBAL, /* IPv4 global addresses */
- SCTP_SCOPE_PRIVATE, /* IPv4 private addresses */
- SCTP_SCOPE_LINK, /* IPv4 link local address */
- SCTP_SCOPE_LOOPBACK, /* IPv4 loopback address */
- SCTP_SCOPE_UNUSABLE, /* IPv4 unusable addresses */
-} sctp_scope_t;
-
-typedef enum {
- SCTP_SCOPE_POLICY_DISABLE, /* Disable IPv4 address scoping */
- SCTP_SCOPE_POLICY_ENABLE, /* Enable IPv4 address scoping */
- SCTP_SCOPE_POLICY_PRIVATE, /* Follow draft but allow IPv4 private addresses */
- SCTP_SCOPE_POLICY_LINK, /* Follow draft but allow IPv4 link local addresses */
-} sctp_scope_policy_t;
-
-/* Based on IPv4 scoping <draft-stewart-tsvwg-sctp-ipv4-00.txt>,
- * SCTP IPv4 unusable addresses: 0.0.0.0/8, 224.0.0.0/4, 198.18.0.0/24,
- * 192.88.99.0/24.
- * Also, RFC 8.4, non-unicast addresses are not considered valid SCTP
- * addresses.
- */
-#define IS_IPV4_UNUSABLE_ADDRESS(a) \
- ((htonl(INADDR_BROADCAST) == a) || \
- ipv4_is_multicast(a) || \
- ipv4_is_zeronet(a) || \
- ipv4_is_test_198(a) || \
- ipv4_is_anycast_6to4(a))
-
-/* Flags used for the bind address copy functions. */
-#define SCTP_ADDR6_ALLOWED 0x00000001 /* IPv6 address is allowed by
- local sock family */
-#define SCTP_ADDR4_PEERSUPP 0x00000002 /* IPv4 address is supported by
- peer */
-#define SCTP_ADDR6_PEERSUPP 0x00000004 /* IPv6 address is supported by
- peer */
-
-/* Reasons to retransmit. */
-typedef enum {
- SCTP_RTXR_T3_RTX,
- SCTP_RTXR_FAST_RTX,
- SCTP_RTXR_PMTUD,
- SCTP_RTXR_T1_RTX,
-} sctp_retransmit_reason_t;
-
-/* Reasons to lower cwnd. */
-typedef enum {
- SCTP_LOWER_CWND_T3_RTX,
- SCTP_LOWER_CWND_FAST_RTX,
- SCTP_LOWER_CWND_ECNE,
- SCTP_LOWER_CWND_INACTIVE,
-} sctp_lower_cwnd_t;
-
-
-/* SCTP-AUTH Necessary constants */
-
-/* SCTP-AUTH, Section 3.3
- *
- * The following Table 2 shows the currently defined values for HMAC
- * identifiers.
- *
- * +-----------------+--------------------------+
- * | HMAC Identifier | Message Digest Algorithm |
- * +-----------------+--------------------------+
- * | 0 | Reserved |
- * | 1 | SHA-1 defined in [8] |
- * | 2 | Reserved |
- * | 3 | SHA-256 defined in [8] |
- * +-----------------+--------------------------+
- */
-enum {
- SCTP_AUTH_HMAC_ID_RESERVED_0,
- SCTP_AUTH_HMAC_ID_SHA1,
- SCTP_AUTH_HMAC_ID_RESERVED_2,
-#if defined (CONFIG_CRYPTO_SHA256) || defined (CONFIG_CRYPTO_SHA256_MODULE)
- SCTP_AUTH_HMAC_ID_SHA256,
-#endif
- __SCTP_AUTH_HMAC_MAX
-};
-
-#define SCTP_AUTH_HMAC_ID_MAX __SCTP_AUTH_HMAC_MAX - 1
-#define SCTP_AUTH_NUM_HMACS __SCTP_AUTH_HMAC_MAX
-#define SCTP_SHA1_SIG_SIZE 20
-#define SCTP_SHA256_SIG_SIZE 32
-
-/* SCTP-AUTH, Section 3.2
- * The chunk types for INIT, INIT-ACK, SHUTDOWN-COMPLETE and AUTH chunks
- * MUST NOT be listed in the CHUNKS parameter
- */
-#define SCTP_NUM_NOAUTH_CHUNKS 4
-#define SCTP_AUTH_MAX_CHUNKS (SCTP_NUM_CHUNK_TYPES - SCTP_NUM_NOAUTH_CHUNKS)
-
-/* SCTP-AUTH Section 6.1
- * The RANDOM parameter MUST contain a 32 byte random number.
- */
-#define SCTP_AUTH_RANDOM_LENGTH 32
-
-#endif /* __sctp_constants_h__ */
diff --git a/ANDROID_3.4.5/include/net/sctp/sctp.h b/ANDROID_3.4.5/include/net/sctp/sctp.h
deleted file mode 100644
index a2ef8146..00000000
--- a/ANDROID_3.4.5/include/net/sctp/sctp.h
+++ /dev/null
@@ -1,720 +0,0 @@
-/* SCTP kernel implementation
- * (C) Copyright IBM Corp. 2001, 2004
- * Copyright (c) 1999-2000 Cisco, Inc.
- * Copyright (c) 1999-2001 Motorola, Inc.
- * Copyright (c) 2001-2003 Intel Corp.
- *
- * This file is part of the SCTP kernel implementation
- *
- * The base lksctp header.
- *
- * This SCTP implementation 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 SCTP implementation 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 GNU CC; see the file COPYING. If not, write to
- * the Free Software Foundation, 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- *
- * Please send any bug reports or fixes you make to the
- * email address(es):
- * lksctp developers <lksctp-developers@lists.sourceforge.net>
- *
- * Or submit a bug report through the following website:
- * http://www.sf.net/projects/lksctp
- *
- * Written or modified by:
- * La Monte H.P. Yarroll <piggy@acm.org>
- * Xingang Guo <xingang.guo@intel.com>
- * Jon Grimm <jgrimm@us.ibm.com>
- * Daisy Chang <daisyc@us.ibm.com>
- * Sridhar Samudrala <sri@us.ibm.com>
- * Ardelle Fan <ardelle.fan@intel.com>
- * Ryan Layer <rmlayer@us.ibm.com>
- * Kevin Gao <kevin.gao@intel.com>
- *
- * Any bugs reported given to us we will try to fix... any fixes shared will
- * be incorporated into the next SCTP release.
- */
-
-#ifndef __net_sctp_h__
-#define __net_sctp_h__
-
-/* Header Strategy.
- * Start getting some control over the header file depencies:
- * includes
- * constants
- * structs
- * prototypes
- * macros, externs, and inlines
- *
- * Move test_frame specific items out of the kernel headers
- * and into the test frame headers. This is not perfect in any sense
- * and will continue to evolve.
- */
-
-#include <linux/types.h>
-#include <linux/slab.h>
-#include <linux/in.h>
-#include <linux/tty.h>
-#include <linux/proc_fs.h>
-#include <linux/spinlock.h>
-#include <linux/jiffies.h>
-#include <linux/idr.h>
-
-#if IS_ENABLED(CONFIG_IPV6)
-#include <net/ipv6.h>
-#include <net/ip6_route.h>
-#endif
-
-#include <asm/uaccess.h>
-#include <asm/page.h>
-#include <net/sock.h>
-#include <net/snmp.h>
-#include <net/sctp/structs.h>
-#include <net/sctp/constants.h>
-
-
-/* Set SCTP_DEBUG flag via config if not already set. */
-#ifndef SCTP_DEBUG
-#ifdef CONFIG_SCTP_DBG_MSG
-#define SCTP_DEBUG 1
-#else
-#define SCTP_DEBUG 0
-#endif /* CONFIG_SCTP_DBG */
-#endif /* SCTP_DEBUG */
-
-#ifdef CONFIG_IP_SCTP_MODULE
-#define SCTP_PROTOSW_FLAG 0
-#else /* static! */
-#define SCTP_PROTOSW_FLAG INET_PROTOSW_PERMANENT
-#endif
-
-
-/* Certain internal static functions need to be exported when
- * compiled into the test frame.
- */
-#ifndef SCTP_STATIC
-#define SCTP_STATIC static
-#endif
-
-/*
- * Function declarations.
- */
-
-/*
- * sctp/protocol.c
- */
-extern struct sock *sctp_get_ctl_sock(void);
-extern int sctp_copy_local_addr_list(struct sctp_bind_addr *,
- sctp_scope_t, gfp_t gfp,
- int flags);
-extern struct sctp_pf *sctp_get_pf_specific(sa_family_t family);
-extern int sctp_register_pf(struct sctp_pf *, sa_family_t);
-extern void sctp_addr_wq_mgmt(struct sctp_sockaddr_entry *, int);
-
-/*
- * sctp/socket.c
- */
-int sctp_backlog_rcv(struct sock *sk, struct sk_buff *skb);
-int sctp_inet_listen(struct socket *sock, int backlog);
-void sctp_write_space(struct sock *sk);
-void sctp_data_ready(struct sock *sk, int len);
-unsigned int sctp_poll(struct file *file, struct socket *sock,
- poll_table *wait);
-void sctp_sock_rfree(struct sk_buff *skb);
-void sctp_copy_sock(struct sock *newsk, struct sock *sk,
- struct sctp_association *asoc);
-extern struct percpu_counter sctp_sockets_allocated;
-extern int sctp_asconf_mgmt(struct sctp_sock *, struct sctp_sockaddr_entry *);
-
-/*
- * sctp/primitive.c
- */
-int sctp_primitive_ASSOCIATE(struct sctp_association *, void *arg);
-int sctp_primitive_SHUTDOWN(struct sctp_association *, void *arg);
-int sctp_primitive_ABORT(struct sctp_association *, void *arg);
-int sctp_primitive_SEND(struct sctp_association *, void *arg);
-int sctp_primitive_REQUESTHEARTBEAT(struct sctp_association *, void *arg);
-int sctp_primitive_ASCONF(struct sctp_association *, void *arg);
-
-/*
- * sctp/input.c
- */
-int sctp_rcv(struct sk_buff *skb);
-void sctp_v4_err(struct sk_buff *skb, u32 info);
-void sctp_hash_established(struct sctp_association *);
-void sctp_unhash_established(struct sctp_association *);
-void sctp_hash_endpoint(struct sctp_endpoint *);
-void sctp_unhash_endpoint(struct sctp_endpoint *);
-struct sock *sctp_err_lookup(int family, struct sk_buff *,
- struct sctphdr *, struct sctp_association **,
- struct sctp_transport **);
-void sctp_err_finish(struct sock *, struct sctp_association *);
-void sctp_icmp_frag_needed(struct sock *, struct sctp_association *,
- struct sctp_transport *t, __u32 pmtu);
-void sctp_icmp_proto_unreachable(struct sock *sk,
- struct sctp_association *asoc,
- struct sctp_transport *t);
-void sctp_backlog_migrate(struct sctp_association *assoc,
- struct sock *oldsk, struct sock *newsk);
-
-/*
- * sctp/proc.c
- */
-int sctp_snmp_proc_init(void);
-void sctp_snmp_proc_exit(void);
-int sctp_eps_proc_init(void);
-void sctp_eps_proc_exit(void);
-int sctp_assocs_proc_init(void);
-void sctp_assocs_proc_exit(void);
-int sctp_remaddr_proc_init(void);
-void sctp_remaddr_proc_exit(void);
-
-
-/*
- * Module global variables
- */
-
- /*
- * sctp/protocol.c
- */
-extern struct kmem_cache *sctp_chunk_cachep __read_mostly;
-extern struct kmem_cache *sctp_bucket_cachep __read_mostly;
-
-/*
- * Section: Macros, externs, and inlines
- */
-
-
-#ifdef TEST_FRAME
-#include <test_frame.h>
-#else
-
-/* spin lock wrappers. */
-#define sctp_spin_lock_irqsave(lock, flags) spin_lock_irqsave(lock, flags)
-#define sctp_spin_unlock_irqrestore(lock, flags) \
- spin_unlock_irqrestore(lock, flags)
-#define sctp_local_bh_disable() local_bh_disable()
-#define sctp_local_bh_enable() local_bh_enable()
-#define sctp_spin_lock(lock) spin_lock(lock)
-#define sctp_spin_unlock(lock) spin_unlock(lock)
-#define sctp_write_lock(lock) write_lock(lock)
-#define sctp_write_unlock(lock) write_unlock(lock)
-#define sctp_read_lock(lock) read_lock(lock)
-#define sctp_read_unlock(lock) read_unlock(lock)
-
-/* sock lock wrappers. */
-#define sctp_lock_sock(sk) lock_sock(sk)
-#define sctp_release_sock(sk) release_sock(sk)
-#define sctp_bh_lock_sock(sk) bh_lock_sock(sk)
-#define sctp_bh_unlock_sock(sk) bh_unlock_sock(sk)
-
-/* SCTP SNMP MIB stats handlers */
-DECLARE_SNMP_STAT(struct sctp_mib, sctp_statistics);
-#define SCTP_INC_STATS(field) SNMP_INC_STATS(sctp_statistics, field)
-#define SCTP_INC_STATS_BH(field) SNMP_INC_STATS_BH(sctp_statistics, field)
-#define SCTP_INC_STATS_USER(field) SNMP_INC_STATS_USER(sctp_statistics, field)
-#define SCTP_DEC_STATS(field) SNMP_DEC_STATS(sctp_statistics, field)
-
-#endif /* !TEST_FRAME */
-
-/* sctp mib definitions */
-enum {
- SCTP_MIB_NUM = 0,
- SCTP_MIB_CURRESTAB, /* CurrEstab */
- SCTP_MIB_ACTIVEESTABS, /* ActiveEstabs */
- SCTP_MIB_PASSIVEESTABS, /* PassiveEstabs */
- SCTP_MIB_ABORTEDS, /* Aborteds */
- SCTP_MIB_SHUTDOWNS, /* Shutdowns */
- SCTP_MIB_OUTOFBLUES, /* OutOfBlues */
- SCTP_MIB_CHECKSUMERRORS, /* ChecksumErrors */
- SCTP_MIB_OUTCTRLCHUNKS, /* OutCtrlChunks */
- SCTP_MIB_OUTORDERCHUNKS, /* OutOrderChunks */
- SCTP_MIB_OUTUNORDERCHUNKS, /* OutUnorderChunks */
- SCTP_MIB_INCTRLCHUNKS, /* InCtrlChunks */
- SCTP_MIB_INORDERCHUNKS, /* InOrderChunks */
- SCTP_MIB_INUNORDERCHUNKS, /* InUnorderChunks */
- SCTP_MIB_FRAGUSRMSGS, /* FragUsrMsgs */
- SCTP_MIB_REASMUSRMSGS, /* ReasmUsrMsgs */
- SCTP_MIB_OUTSCTPPACKS, /* OutSCTPPacks */
- SCTP_MIB_INSCTPPACKS, /* InSCTPPacks */
- SCTP_MIB_T1_INIT_EXPIREDS,
- SCTP_MIB_T1_COOKIE_EXPIREDS,
- SCTP_MIB_T2_SHUTDOWN_EXPIREDS,
- SCTP_MIB_T3_RTX_EXPIREDS,
- SCTP_MIB_T4_RTO_EXPIREDS,
- SCTP_MIB_T5_SHUTDOWN_GUARD_EXPIREDS,
- SCTP_MIB_DELAY_SACK_EXPIREDS,
- SCTP_MIB_AUTOCLOSE_EXPIREDS,
- SCTP_MIB_T1_RETRANSMITS,
- SCTP_MIB_T3_RETRANSMITS,
- SCTP_MIB_PMTUD_RETRANSMITS,
- SCTP_MIB_FAST_RETRANSMITS,
- SCTP_MIB_IN_PKT_SOFTIRQ,
- SCTP_MIB_IN_PKT_BACKLOG,
- SCTP_MIB_IN_PKT_DISCARDS,
- SCTP_MIB_IN_DATA_CHUNK_DISCARDS,
- __SCTP_MIB_MAX
-};
-
-#define SCTP_MIB_MAX __SCTP_MIB_MAX
-struct sctp_mib {
- unsigned long mibs[SCTP_MIB_MAX];
-};
-
-
-/* Print debugging messages. */
-#if SCTP_DEBUG
-extern int sctp_debug_flag;
-#define SCTP_DEBUG_PRINTK(fmt, args...) \
-do { \
- if (sctp_debug_flag) \
- printk(KERN_DEBUG pr_fmt(fmt), ##args); \
-} while (0)
-#define SCTP_DEBUG_PRINTK_CONT(fmt, args...) \
-do { \
- if (sctp_debug_flag) \
- pr_cont(fmt, ##args); \
-} while (0)
-#define SCTP_DEBUG_PRINTK_IPADDR(fmt_lead, fmt_trail, \
- args_lead, addr, args_trail...) \
-do { \
- const union sctp_addr *_addr = (addr); \
- if (sctp_debug_flag) { \
- if (_addr->sa.sa_family == AF_INET6) { \
- printk(KERN_DEBUG \
- pr_fmt(fmt_lead "%pI6" fmt_trail), \
- args_lead, \
- &_addr->v6.sin6_addr, \
- args_trail); \
- } else { \
- printk(KERN_DEBUG \
- pr_fmt(fmt_lead "%pI4" fmt_trail), \
- args_lead, \
- &_addr->v4.sin_addr.s_addr, \
- args_trail); \
- } \
- } \
-} while (0)
-#define SCTP_ENABLE_DEBUG { sctp_debug_flag = 1; }
-#define SCTP_DISABLE_DEBUG { sctp_debug_flag = 0; }
-
-#define SCTP_ASSERT(expr, str, func) \
- if (!(expr)) { \
- SCTP_DEBUG_PRINTK("Assertion Failed: %s(%s) at %s:%s:%d\n", \
- str, (#expr), __FILE__, __func__, __LINE__); \
- func; \
- }
-
-#else /* SCTP_DEBUG */
-
-#define SCTP_DEBUG_PRINTK(whatever...)
-#define SCTP_DEBUG_PRINTK_CONT(fmt, args...)
-#define SCTP_DEBUG_PRINTK_IPADDR(whatever...)
-#define SCTP_ENABLE_DEBUG
-#define SCTP_DISABLE_DEBUG
-#define SCTP_ASSERT(expr, str, func)
-
-#endif /* SCTP_DEBUG */
-
-
-/*
- * Macros for keeping a global reference of object allocations.
- */
-#ifdef CONFIG_SCTP_DBG_OBJCNT
-
-extern atomic_t sctp_dbg_objcnt_sock;
-extern atomic_t sctp_dbg_objcnt_ep;
-extern atomic_t sctp_dbg_objcnt_assoc;
-extern atomic_t sctp_dbg_objcnt_transport;
-extern atomic_t sctp_dbg_objcnt_chunk;
-extern atomic_t sctp_dbg_objcnt_bind_addr;
-extern atomic_t sctp_dbg_objcnt_bind_bucket;
-extern atomic_t sctp_dbg_objcnt_addr;
-extern atomic_t sctp_dbg_objcnt_ssnmap;
-extern atomic_t sctp_dbg_objcnt_datamsg;
-extern atomic_t sctp_dbg_objcnt_keys;
-
-/* Macros to atomically increment/decrement objcnt counters. */
-#define SCTP_DBG_OBJCNT_INC(name) \
-atomic_inc(&sctp_dbg_objcnt_## name)
-#define SCTP_DBG_OBJCNT_DEC(name) \
-atomic_dec(&sctp_dbg_objcnt_## name)
-#define SCTP_DBG_OBJCNT(name) \
-atomic_t sctp_dbg_objcnt_## name = ATOMIC_INIT(0)
-
-/* Macro to help create new entries in in the global array of
- * objcnt counters.
- */
-#define SCTP_DBG_OBJCNT_ENTRY(name) \
-{.label= #name, .counter= &sctp_dbg_objcnt_## name}
-
-void sctp_dbg_objcnt_init(void);
-void sctp_dbg_objcnt_exit(void);
-
-#else
-
-#define SCTP_DBG_OBJCNT_INC(name)
-#define SCTP_DBG_OBJCNT_DEC(name)
-
-static inline void sctp_dbg_objcnt_init(void) { return; }
-static inline void sctp_dbg_objcnt_exit(void) { return; }
-
-#endif /* CONFIG_SCTP_DBG_OBJCOUNT */
-
-#if defined CONFIG_SYSCTL
-void sctp_sysctl_register(void);
-void sctp_sysctl_unregister(void);
-#else
-static inline void sctp_sysctl_register(void) { return; }
-static inline void sctp_sysctl_unregister(void) { return; }
-#endif
-
-/* Size of Supported Address Parameter for 'x' address types. */
-#define SCTP_SAT_LEN(x) (sizeof(struct sctp_paramhdr) + (x) * sizeof(__u16))
-
-#if IS_ENABLED(CONFIG_IPV6)
-
-void sctp_v6_pf_init(void);
-void sctp_v6_pf_exit(void);
-int sctp_v6_protosw_init(void);
-void sctp_v6_protosw_exit(void);
-int sctp_v6_add_protocol(void);
-void sctp_v6_del_protocol(void);
-
-#else /* #ifdef defined(CONFIG_IPV6) */
-
-static inline void sctp_v6_pf_init(void) { return; }
-static inline void sctp_v6_pf_exit(void) { return; }
-static inline int sctp_v6_protosw_init(void) { return 0; }
-static inline void sctp_v6_protosw_exit(void) { return; }
-static inline int sctp_v6_add_protocol(void) { return 0; }
-static inline void sctp_v6_del_protocol(void) { return; }
-
-#endif /* #if defined(CONFIG_IPV6) */
-
-
-/* Map an association to an assoc_id. */
-static inline sctp_assoc_t sctp_assoc2id(const struct sctp_association *asoc)
-{
- return asoc ? asoc->assoc_id : 0;
-}
-
-/* Look up the association by its id. */
-struct sctp_association *sctp_id2assoc(struct sock *sk, sctp_assoc_t id);
-
-int sctp_do_peeloff(struct sock *sk, sctp_assoc_t id, struct socket **sockp);
-
-/* A macro to walk a list of skbs. */
-#define sctp_skb_for_each(pos, head, tmp) \
- skb_queue_walk_safe(head, pos, tmp)
-
-/* A helper to append an entire skb list (list) to another (head). */
-static inline void sctp_skb_list_tail(struct sk_buff_head *list,
- struct sk_buff_head *head)
-{
- unsigned long flags;
-
- sctp_spin_lock_irqsave(&head->lock, flags);
- sctp_spin_lock(&list->lock);
-
- skb_queue_splice_tail_init(list, head);
-
- sctp_spin_unlock(&list->lock);
- sctp_spin_unlock_irqrestore(&head->lock, flags);
-}
-
-/**
- * sctp_list_dequeue - remove from the head of the queue
- * @list: list to dequeue from
- *
- * Remove the head of the list. The head item is
- * returned or %NULL if the list is empty.
- */
-
-static inline struct list_head *sctp_list_dequeue(struct list_head *list)
-{
- struct list_head *result = NULL;
-
- if (list->next != list) {
- result = list->next;
- list->next = result->next;
- list->next->prev = list;
- INIT_LIST_HEAD(result);
- }
- return result;
-}
-
-/* SCTP version of skb_set_owner_r. We need this one because
- * of the way we have to do receive buffer accounting on bundled
- * chunks.
- */
-static inline void sctp_skb_set_owner_r(struct sk_buff *skb, struct sock *sk)
-{
- struct sctp_ulpevent *event = sctp_skb2event(skb);
-
- skb_orphan(skb);
- skb->sk = sk;
- skb->destructor = sctp_sock_rfree;
- atomic_add(event->rmem_len, &sk->sk_rmem_alloc);
- /*
- * This mimics the behavior of skb_set_owner_r
- */
- sk->sk_forward_alloc -= event->rmem_len;
-}
-
-/* Tests if the list has one and only one entry. */
-static inline int sctp_list_single_entry(struct list_head *head)
-{
- return (head->next != head) && (head->next == head->prev);
-}
-
-/* Generate a random jitter in the range of -50% ~ +50% of input RTO. */
-static inline __s32 sctp_jitter(__u32 rto)
-{
- static __u32 sctp_rand;
- __s32 ret;
-
- /* Avoid divide by zero. */
- if (!rto)
- rto = 1;
-
- sctp_rand += jiffies;
- sctp_rand ^= (sctp_rand << 12);
- sctp_rand ^= (sctp_rand >> 20);
-
- /* Choose random number from 0 to rto, then move to -50% ~ +50%
- * of rto.
- */
- ret = sctp_rand % rto - (rto >> 1);
- return ret;
-}
-
-/* Break down data chunks at this point. */
-static inline int sctp_frag_point(const struct sctp_association *asoc, int pmtu)
-{
- struct sctp_sock *sp = sctp_sk(asoc->base.sk);
- int frag = pmtu;
-
- frag -= sp->pf->af->net_header_len;
- frag -= sizeof(struct sctphdr) + sizeof(struct sctp_data_chunk);
-
- if (asoc->user_frag)
- frag = min_t(int, frag, asoc->user_frag);
-
- frag = min_t(int, frag, SCTP_MAX_CHUNK_LEN);
-
- return frag;
-}
-
-static inline void sctp_assoc_pending_pmtu(struct sctp_association *asoc)
-{
-
- sctp_assoc_sync_pmtu(asoc);
- asoc->pmtu_pending = 0;
-}
-
-/* Walk through a list of TLV parameters. Don't trust the
- * individual parameter lengths and instead depend on
- * the chunk length to indicate when to stop. Make sure
- * there is room for a param header too.
- */
-#define sctp_walk_params(pos, chunk, member)\
-_sctp_walk_params((pos), (chunk), ntohs((chunk)->chunk_hdr.length), member)
-
-#define _sctp_walk_params(pos, chunk, end, member)\
-for (pos.v = chunk->member;\
- pos.v <= (void *)chunk + end - ntohs(pos.p->length) &&\
- ntohs(pos.p->length) >= sizeof(sctp_paramhdr_t);\
- pos.v += WORD_ROUND(ntohs(pos.p->length)))
-
-#define sctp_walk_errors(err, chunk_hdr)\
-_sctp_walk_errors((err), (chunk_hdr), ntohs((chunk_hdr)->length))
-
-#define _sctp_walk_errors(err, chunk_hdr, end)\
-for (err = (sctp_errhdr_t *)((void *)chunk_hdr + \
- sizeof(sctp_chunkhdr_t));\
- (void *)err <= (void *)chunk_hdr + end - ntohs(err->length) &&\
- ntohs(err->length) >= sizeof(sctp_errhdr_t); \
- err = (sctp_errhdr_t *)((void *)err + WORD_ROUND(ntohs(err->length))))
-
-#define sctp_walk_fwdtsn(pos, chunk)\
-_sctp_walk_fwdtsn((pos), (chunk), ntohs((chunk)->chunk_hdr->length) - sizeof(struct sctp_fwdtsn_chunk))
-
-#define _sctp_walk_fwdtsn(pos, chunk, end)\
-for (pos = chunk->subh.fwdtsn_hdr->skip;\
- (void *)pos <= (void *)chunk->subh.fwdtsn_hdr->skip + end - sizeof(struct sctp_fwdtsn_skip);\
- pos++)
-
-/* Round an int up to the next multiple of 4. */
-#define WORD_ROUND(s) (((s)+3)&~3)
-
-/* Make a new instance of type. */
-#define t_new(type, flags) (type *)kzalloc(sizeof(type), flags)
-
-/* Compare two timevals. */
-#define tv_lt(s, t) \
- (s.tv_sec < t.tv_sec || (s.tv_sec == t.tv_sec && s.tv_usec < t.tv_usec))
-
-/* Add tv1 to tv2. */
-#define TIMEVAL_ADD(tv1, tv2) \
-({ \
- suseconds_t usecs = (tv2).tv_usec + (tv1).tv_usec; \
- time_t secs = (tv2).tv_sec + (tv1).tv_sec; \
-\
- if (usecs >= 1000000) { \
- usecs -= 1000000; \
- secs++; \
- } \
- (tv2).tv_sec = secs; \
- (tv2).tv_usec = usecs; \
-})
-
-/* External references. */
-
-extern struct proto sctp_prot;
-extern struct proto sctpv6_prot;
-extern struct proc_dir_entry *proc_net_sctp;
-void sctp_put_port(struct sock *sk);
-
-extern struct idr sctp_assocs_id;
-extern spinlock_t sctp_assocs_id_lock;
-
-/* Static inline functions. */
-
-/* Convert from an IP version number to an Address Family symbol. */
-static inline int ipver2af(__u8 ipver)
-{
- switch (ipver) {
- case 4:
- return AF_INET;
- case 6:
- return AF_INET6;
- default:
- return 0;
- }
-}
-
-/* Convert from an address parameter type to an address family. */
-static inline int param_type2af(__be16 type)
-{
- switch (type) {
- case SCTP_PARAM_IPV4_ADDRESS:
- return AF_INET;
- case SCTP_PARAM_IPV6_ADDRESS:
- return AF_INET6;
- default:
- return 0;
- }
-}
-
-/* Perform some sanity checks. */
-static inline int sctp_sanity_check(void)
-{
- SCTP_ASSERT(sizeof(struct sctp_ulpevent) <=
- sizeof(((struct sk_buff *)0)->cb),
- "SCTP: ulpevent does not fit in skb!\n", return 0);
-
- return 1;
-}
-
-/* Warning: The following hash functions assume a power of two 'size'. */
-/* This is the hash function for the SCTP port hash table. */
-static inline int sctp_phashfn(__u16 lport)
-{
- return lport & (sctp_port_hashsize - 1);
-}
-
-/* This is the hash function for the endpoint hash table. */
-static inline int sctp_ep_hashfn(__u16 lport)
-{
- return lport & (sctp_ep_hashsize - 1);
-}
-
-/* This is the hash function for the association hash table. */
-static inline int sctp_assoc_hashfn(__u16 lport, __u16 rport)
-{
- int h = (lport << 16) + rport;
- h ^= h>>8;
- return h & (sctp_assoc_hashsize - 1);
-}
-
-/* This is the hash function for the association hash table. This is
- * not used yet, but could be used as a better hash function when
- * we have a vtag.
- */
-static inline int sctp_vtag_hashfn(__u16 lport, __u16 rport, __u32 vtag)
-{
- int h = (lport << 16) + rport;
- h ^= vtag;
- return h & (sctp_assoc_hashsize - 1);
-}
-
-#define sctp_for_each_hentry(epb, node, head) \
- hlist_for_each_entry(epb, node, head, node)
-
-/* Is a socket of this style? */
-#define sctp_style(sk, style) __sctp_style((sk), (SCTP_SOCKET_##style))
-static inline int __sctp_style(const struct sock *sk, sctp_socket_type_t style)
-{
- return sctp_sk(sk)->type == style;
-}
-
-/* Is the association in this state? */
-#define sctp_state(asoc, state) __sctp_state((asoc), (SCTP_STATE_##state))
-static inline int __sctp_state(const struct sctp_association *asoc,
- sctp_state_t state)
-{
- return asoc->state == state;
-}
-
-/* Is the socket in this state? */
-#define sctp_sstate(sk, state) __sctp_sstate((sk), (SCTP_SS_##state))
-static inline int __sctp_sstate(const struct sock *sk, sctp_sock_state_t state)
-{
- return sk->sk_state == state;
-}
-
-/* Map v4-mapped v6 address back to v4 address */
-static inline void sctp_v6_map_v4(union sctp_addr *addr)
-{
- addr->v4.sin_family = AF_INET;
- addr->v4.sin_port = addr->v6.sin6_port;
- addr->v4.sin_addr.s_addr = addr->v6.sin6_addr.s6_addr32[3];
-}
-
-/* Map v4 address to v4-mapped v6 address */
-static inline void sctp_v4_map_v6(union sctp_addr *addr)
-{
- addr->v6.sin6_family = AF_INET6;
- addr->v6.sin6_port = addr->v4.sin_port;
- addr->v6.sin6_addr.s6_addr32[3] = addr->v4.sin_addr.s_addr;
- addr->v6.sin6_addr.s6_addr32[0] = 0;
- addr->v6.sin6_addr.s6_addr32[1] = 0;
- addr->v6.sin6_addr.s6_addr32[2] = htonl(0x0000ffff);
-}
-
-/* The cookie is always 0 since this is how it's used in the
- * pmtu code.
- */
-static inline struct dst_entry *sctp_transport_dst_check(struct sctp_transport *t)
-{
- if (t->dst && !dst_check(t->dst, 0)) {
- dst_release(t->dst);
- t->dst = NULL;
- }
-
- return t->dst;
-}
-
-#endif /* __net_sctp_h__ */
diff --git a/ANDROID_3.4.5/include/net/sctp/sm.h b/ANDROID_3.4.5/include/net/sctp/sm.h
deleted file mode 100644
index 9148632b..00000000
--- a/ANDROID_3.4.5/include/net/sctp/sm.h
+++ /dev/null
@@ -1,448 +0,0 @@
-/* SCTP kernel implementation
- * (C) Copyright IBM Corp. 2001, 2004
- * Copyright (c) 1999-2000 Cisco, Inc.
- * Copyright (c) 1999-2001 Motorola, Inc.
- * Copyright (c) 2001 Intel Corp.
- *
- * This file is part of the SCTP kernel implementation
- *
- * These are definitions needed by the state machine.
- *
- * This SCTP implementation 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 SCTP implementation 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 GNU CC; see the file COPYING. If not, write to
- * the Free Software Foundation, 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- *
- * Please send any bug reports or fixes you make to the
- * email addresses:
- * lksctp developers <lksctp-developers@lists.sourceforge.net>
- *
- * Or submit a bug report through the following website:
- * http://www.sf.net/projects/lksctp
- *
- * Written or modified by:
- * La Monte H.P. Yarroll <piggy@acm.org>
- * Karl Knutson <karl@athena.chicago.il.us>
- * Xingang Guo <xingang.guo@intel.com>
- * Jon Grimm <jgrimm@us.ibm.com>
- * Dajiang Zhang <dajiang.zhang@nokia.com>
- * Sridhar Samudrala <sri@us.ibm.com>
- * Daisy Chang <daisyc@us.ibm.com>
- * Ardelle Fan <ardelle.fan@intel.com>
- * Kevin Gao <kevin.gao@intel.com>
- *
- * Any bugs reported given to us we will try to fix... any fixes shared will
- * be incorporated into the next SCTP release.
- */
-
-#include <linux/types.h>
-#include <linux/compiler.h>
-#include <linux/slab.h>
-#include <linux/in.h>
-#include <net/sctp/command.h>
-#include <net/sctp/sctp.h>
-
-#ifndef __sctp_sm_h__
-#define __sctp_sm_h__
-
-/*
- * Possible values for the disposition are:
- */
-typedef enum {
- SCTP_DISPOSITION_DISCARD, /* No further processing. */
- SCTP_DISPOSITION_CONSUME, /* Process return values normally. */
- SCTP_DISPOSITION_NOMEM, /* We ran out of memory--recover. */
- SCTP_DISPOSITION_DELETE_TCB, /* Close the association. */
- SCTP_DISPOSITION_ABORT, /* Close the association NOW. */
- SCTP_DISPOSITION_VIOLATION, /* The peer is misbehaving. */
- SCTP_DISPOSITION_NOT_IMPL, /* This entry is not implemented. */
- SCTP_DISPOSITION_ERROR, /* This is plain old user error. */
- SCTP_DISPOSITION_BUG, /* This is a bug. */
-} sctp_disposition_t;
-
-typedef struct {
- int name;
- int action;
-} sctp_sm_command_t;
-
-typedef sctp_disposition_t (sctp_state_fn_t) (const struct sctp_endpoint *,
- const struct sctp_association *,
- const sctp_subtype_t type,
- void *arg,
- sctp_cmd_seq_t *);
-typedef void (sctp_timer_event_t) (unsigned long);
-typedef struct {
- sctp_state_fn_t *fn;
- const char *name;
-} sctp_sm_table_entry_t;
-
-/* A naming convention of "sctp_sf_xxx" applies to all the state functions
- * currently in use.
- */
-
-/* Prototypes for generic state functions. */
-sctp_state_fn_t sctp_sf_not_impl;
-sctp_state_fn_t sctp_sf_bug;
-
-/* Prototypes for gener timer state functions. */
-sctp_state_fn_t sctp_sf_timer_ignore;
-
-/* Prototypes for chunk state functions. */
-sctp_state_fn_t sctp_sf_do_9_1_abort;
-sctp_state_fn_t sctp_sf_cookie_wait_abort;
-sctp_state_fn_t sctp_sf_cookie_echoed_abort;
-sctp_state_fn_t sctp_sf_shutdown_pending_abort;
-sctp_state_fn_t sctp_sf_shutdown_sent_abort;
-sctp_state_fn_t sctp_sf_shutdown_ack_sent_abort;
-sctp_state_fn_t sctp_sf_do_5_1B_init;
-sctp_state_fn_t sctp_sf_do_5_1C_ack;
-sctp_state_fn_t sctp_sf_do_5_1D_ce;
-sctp_state_fn_t sctp_sf_do_5_1E_ca;
-sctp_state_fn_t sctp_sf_do_4_C;
-sctp_state_fn_t sctp_sf_eat_data_6_2;
-sctp_state_fn_t sctp_sf_eat_data_fast_4_4;
-sctp_state_fn_t sctp_sf_eat_sack_6_2;
-sctp_state_fn_t sctp_sf_operr_notify;
-sctp_state_fn_t sctp_sf_t1_init_timer_expire;
-sctp_state_fn_t sctp_sf_t1_cookie_timer_expire;
-sctp_state_fn_t sctp_sf_t2_timer_expire;
-sctp_state_fn_t sctp_sf_t4_timer_expire;
-sctp_state_fn_t sctp_sf_t5_timer_expire;
-sctp_state_fn_t sctp_sf_sendbeat_8_3;
-sctp_state_fn_t sctp_sf_beat_8_3;
-sctp_state_fn_t sctp_sf_backbeat_8_3;
-sctp_state_fn_t sctp_sf_do_9_2_final;
-sctp_state_fn_t sctp_sf_do_9_2_shutdown;
-sctp_state_fn_t sctp_sf_do_9_2_shut_ctsn;
-sctp_state_fn_t sctp_sf_do_ecn_cwr;
-sctp_state_fn_t sctp_sf_do_ecne;
-sctp_state_fn_t sctp_sf_ootb;
-sctp_state_fn_t sctp_sf_pdiscard;
-sctp_state_fn_t sctp_sf_violation;
-sctp_state_fn_t sctp_sf_discard_chunk;
-sctp_state_fn_t sctp_sf_do_5_2_1_siminit;
-sctp_state_fn_t sctp_sf_do_5_2_2_dupinit;
-sctp_state_fn_t sctp_sf_do_5_2_3_initack;
-sctp_state_fn_t sctp_sf_do_5_2_4_dupcook;
-sctp_state_fn_t sctp_sf_unk_chunk;
-sctp_state_fn_t sctp_sf_do_8_5_1_E_sa;
-sctp_state_fn_t sctp_sf_cookie_echoed_err;
-sctp_state_fn_t sctp_sf_do_asconf;
-sctp_state_fn_t sctp_sf_do_asconf_ack;
-sctp_state_fn_t sctp_sf_do_9_2_reshutack;
-sctp_state_fn_t sctp_sf_eat_fwd_tsn;
-sctp_state_fn_t sctp_sf_eat_fwd_tsn_fast;
-sctp_state_fn_t sctp_sf_eat_auth;
-
-/* Prototypes for primitive event state functions. */
-sctp_state_fn_t sctp_sf_do_prm_asoc;
-sctp_state_fn_t sctp_sf_do_prm_send;
-sctp_state_fn_t sctp_sf_do_9_2_prm_shutdown;
-sctp_state_fn_t sctp_sf_cookie_wait_prm_shutdown;
-sctp_state_fn_t sctp_sf_cookie_echoed_prm_shutdown;
-sctp_state_fn_t sctp_sf_do_9_1_prm_abort;
-sctp_state_fn_t sctp_sf_cookie_wait_prm_abort;
-sctp_state_fn_t sctp_sf_cookie_echoed_prm_abort;
-sctp_state_fn_t sctp_sf_shutdown_pending_prm_abort;
-sctp_state_fn_t sctp_sf_shutdown_sent_prm_abort;
-sctp_state_fn_t sctp_sf_shutdown_ack_sent_prm_abort;
-sctp_state_fn_t sctp_sf_error_closed;
-sctp_state_fn_t sctp_sf_error_shutdown;
-sctp_state_fn_t sctp_sf_ignore_primitive;
-sctp_state_fn_t sctp_sf_do_prm_requestheartbeat;
-sctp_state_fn_t sctp_sf_do_prm_asconf;
-
-/* Prototypes for other event state functions. */
-sctp_state_fn_t sctp_sf_do_no_pending_tsn;
-sctp_state_fn_t sctp_sf_do_9_2_start_shutdown;
-sctp_state_fn_t sctp_sf_do_9_2_shutdown_ack;
-sctp_state_fn_t sctp_sf_ignore_other;
-sctp_state_fn_t sctp_sf_cookie_wait_icmp_abort;
-
-/* Prototypes for timeout event state functions. */
-sctp_state_fn_t sctp_sf_do_6_3_3_rtx;
-sctp_state_fn_t sctp_sf_do_6_2_sack;
-sctp_state_fn_t sctp_sf_autoclose_timer_expire;
-
-/* Prototypes for utility support functions. */
-__u8 sctp_get_chunk_type(struct sctp_chunk *chunk);
-const sctp_sm_table_entry_t *sctp_sm_lookup_event(sctp_event_t,
- sctp_state_t,
- sctp_subtype_t);
-int sctp_chunk_iif(const struct sctp_chunk *);
-struct sctp_association *sctp_make_temp_asoc(const struct sctp_endpoint *,
- struct sctp_chunk *,
- gfp_t gfp);
-__u32 sctp_generate_verification_tag(void);
-void sctp_populate_tie_tags(__u8 *cookie, __u32 curTag, __u32 hisTag);
-
-/* Prototypes for chunk-building functions. */
-struct sctp_chunk *sctp_make_init(const struct sctp_association *,
- const struct sctp_bind_addr *,
- gfp_t gfp, int vparam_len);
-struct sctp_chunk *sctp_make_init_ack(const struct sctp_association *,
- const struct sctp_chunk *,
- const gfp_t gfp,
- const int unkparam_len);
-struct sctp_chunk *sctp_make_cookie_echo(const struct sctp_association *,
- const struct sctp_chunk *);
-struct sctp_chunk *sctp_make_cookie_ack(const struct sctp_association *,
- const struct sctp_chunk *);
-struct sctp_chunk *sctp_make_cwr(const struct sctp_association *,
- const __u32 lowest_tsn,
- const struct sctp_chunk *);
-struct sctp_chunk * sctp_make_datafrag_empty(struct sctp_association *,
- const struct sctp_sndrcvinfo *sinfo,
- int len, const __u8 flags,
- __u16 ssn);
-struct sctp_chunk *sctp_make_ecne(const struct sctp_association *,
- const __u32);
-struct sctp_chunk *sctp_make_sack(const struct sctp_association *);
-struct sctp_chunk *sctp_make_shutdown(const struct sctp_association *asoc,
- const struct sctp_chunk *chunk);
-struct sctp_chunk *sctp_make_shutdown_ack(const struct sctp_association *asoc,
- const struct sctp_chunk *);
-struct sctp_chunk *sctp_make_shutdown_complete(const struct sctp_association *,
- const struct sctp_chunk *);
-void sctp_init_cause(struct sctp_chunk *, __be16 cause, size_t);
-struct sctp_chunk *sctp_make_abort(const struct sctp_association *,
- const struct sctp_chunk *,
- const size_t hint);
-struct sctp_chunk *sctp_make_abort_no_data(const struct sctp_association *,
- const struct sctp_chunk *,
- __u32 tsn);
-struct sctp_chunk *sctp_make_abort_user(const struct sctp_association *,
- const struct msghdr *, size_t msg_len);
-struct sctp_chunk *sctp_make_abort_violation(const struct sctp_association *,
- const struct sctp_chunk *,
- const __u8 *,
- const size_t );
-struct sctp_chunk *sctp_make_violation_paramlen(const struct sctp_association *,
- const struct sctp_chunk *,
- struct sctp_paramhdr *);
-struct sctp_chunk *sctp_make_heartbeat(const struct sctp_association *,
- const struct sctp_transport *);
-struct sctp_chunk *sctp_make_heartbeat_ack(const struct sctp_association *,
- const struct sctp_chunk *,
- const void *payload,
- const size_t paylen);
-struct sctp_chunk *sctp_make_op_error(const struct sctp_association *,
- const struct sctp_chunk *chunk,
- __be16 cause_code,
- const void *payload,
- size_t paylen,
- size_t reserve_tail);
-
-struct sctp_chunk *sctp_make_asconf_update_ip(struct sctp_association *,
- union sctp_addr *,
- struct sockaddr *,
- int, __be16);
-struct sctp_chunk *sctp_make_asconf_set_prim(struct sctp_association *asoc,
- union sctp_addr *addr);
-int sctp_verify_asconf(const struct sctp_association *asoc,
- struct sctp_paramhdr *param_hdr, void *chunk_end,
- struct sctp_paramhdr **errp);
-struct sctp_chunk *sctp_process_asconf(struct sctp_association *asoc,
- struct sctp_chunk *asconf);
-int sctp_process_asconf_ack(struct sctp_association *asoc,
- struct sctp_chunk *asconf_ack);
-struct sctp_chunk *sctp_make_fwdtsn(const struct sctp_association *asoc,
- __u32 new_cum_tsn, size_t nstreams,
- struct sctp_fwdtsn_skip *skiplist);
-struct sctp_chunk *sctp_make_auth(const struct sctp_association *asoc);
-
-void sctp_chunk_assign_tsn(struct sctp_chunk *);
-void sctp_chunk_assign_ssn(struct sctp_chunk *);
-
-/* Prototypes for statetable processing. */
-
-int sctp_do_sm(sctp_event_t event_type, sctp_subtype_t subtype,
- sctp_state_t state,
- struct sctp_endpoint *,
- struct sctp_association *asoc,
- void *event_arg,
- gfp_t gfp);
-
-/* 2nd level prototypes */
-void sctp_generate_t3_rtx_event(unsigned long peer);
-void sctp_generate_heartbeat_event(unsigned long peer);
-void sctp_generate_proto_unreach_event(unsigned long peer);
-
-void sctp_ootb_pkt_free(struct sctp_packet *);
-
-struct sctp_association *sctp_unpack_cookie(const struct sctp_endpoint *,
- const struct sctp_association *,
- struct sctp_chunk *,
- gfp_t gfp, int *err,
- struct sctp_chunk **err_chk_p);
-int sctp_addip_addr_config(struct sctp_association *, sctp_param_t,
- struct sockaddr_storage*, int);
-
-/* 3rd level prototypes */
-__u32 sctp_generate_tag(const struct sctp_endpoint *);
-__u32 sctp_generate_tsn(const struct sctp_endpoint *);
-
-/* Extern declarations for major data structures. */
-extern sctp_timer_event_t *sctp_timer_events[SCTP_NUM_TIMEOUT_TYPES];
-
-
-/* Get the size of a DATA chunk payload. */
-static inline __u16 sctp_data_size(struct sctp_chunk *chunk)
-{
- __u16 size;
-
- size = ntohs(chunk->chunk_hdr->length);
- size -= sizeof(sctp_data_chunk_t);
-
- return size;
-}
-
-/* Compare two TSNs */
-
-/* RFC 1982 - Serial Number Arithmetic
- *
- * 2. Comparison
- * Then, s1 is said to be equal to s2 if and only if i1 is equal to i2,
- * in all other cases, s1 is not equal to s2.
- *
- * s1 is said to be less than s2 if, and only if, s1 is not equal to s2,
- * and
- *
- * (i1 < i2 and i2 - i1 < 2^(SERIAL_BITS - 1)) or
- * (i1 > i2 and i1 - i2 > 2^(SERIAL_BITS - 1))
- *
- * s1 is said to be greater than s2 if, and only if, s1 is not equal to
- * s2, and
- *
- * (i1 < i2 and i2 - i1 > 2^(SERIAL_BITS - 1)) or
- * (i1 > i2 and i1 - i2 < 2^(SERIAL_BITS - 1))
- */
-
-/*
- * RFC 2960
- * 1.6 Serial Number Arithmetic
- *
- * Comparisons and arithmetic on TSNs in this document SHOULD use Serial
- * Number Arithmetic as defined in [RFC1982] where SERIAL_BITS = 32.
- */
-
-enum {
- TSN_SIGN_BIT = (1<<31)
-};
-
-static inline int TSN_lt(__u32 s, __u32 t)
-{
- return ((s) - (t)) & TSN_SIGN_BIT;
-}
-
-static inline int TSN_lte(__u32 s, __u32 t)
-{
- return ((s) == (t)) || (((s) - (t)) & TSN_SIGN_BIT);
-}
-
-/* Compare two SSNs */
-
-/*
- * RFC 2960
- * 1.6 Serial Number Arithmetic
- *
- * Comparisons and arithmetic on Stream Sequence Numbers in this document
- * SHOULD use Serial Number Arithmetic as defined in [RFC1982] where
- * SERIAL_BITS = 16.
- */
-enum {
- SSN_SIGN_BIT = (1<<15)
-};
-
-static inline int SSN_lt(__u16 s, __u16 t)
-{
- return ((s) - (t)) & SSN_SIGN_BIT;
-}
-
-static inline int SSN_lte(__u16 s, __u16 t)
-{
- return ((s) == (t)) || (((s) - (t)) & SSN_SIGN_BIT);
-}
-
-/*
- * ADDIP 3.1.1
- * The valid range of Serial Number is from 0 to 4294967295 (2**32 - 1). Serial
- * Numbers wrap back to 0 after reaching 4294967295.
- */
-enum {
- ADDIP_SERIAL_SIGN_BIT = (1<<31)
-};
-
-static inline int ADDIP_SERIAL_gte(__u16 s, __u16 t)
-{
- return ((s) == (t)) || (((t) - (s)) & ADDIP_SERIAL_SIGN_BIT);
-}
-
-/* Check VTAG of the packet matches the sender's own tag. */
-static inline int
-sctp_vtag_verify(const struct sctp_chunk *chunk,
- const struct sctp_association *asoc)
-{
- /* RFC 2960 Sec 8.5 When receiving an SCTP packet, the endpoint
- * MUST ensure that the value in the Verification Tag field of
- * the received SCTP packet matches its own Tag. If the received
- * Verification Tag value does not match the receiver's own
- * tag value, the receiver shall silently discard the packet...
- */
- if (ntohl(chunk->sctp_hdr->vtag) == asoc->c.my_vtag)
- return 1;
-
- return 0;
-}
-
-/* Check VTAG of the packet matches the sender's own tag and the T bit is
- * not set, OR its peer's tag and the T bit is set in the Chunk Flags.
- */
-static inline int
-sctp_vtag_verify_either(const struct sctp_chunk *chunk,
- const struct sctp_association *asoc)
-{
- /* RFC 2960 Section 8.5.1, sctpimpguide Section 2.41
- *
- * B) The receiver of a ABORT MUST accept the packet
- * if the Verification Tag field of the packet matches its own tag
- * and the T bit is not set
- * OR
- * it is set to its peer's tag and the T bit is set in the Chunk
- * Flags.
- * Otherwise, the receiver MUST silently discard the packet
- * and take no further action.
- *
- * C) The receiver of a SHUTDOWN COMPLETE shall accept the packet
- * if the Verification Tag field of the packet matches its own tag
- * and the T bit is not set
- * OR
- * it is set to its peer's tag and the T bit is set in the Chunk
- * Flags.
- * Otherwise, the receiver MUST silently discard the packet
- * and take no further action. An endpoint MUST ignore the
- * SHUTDOWN COMPLETE if it is not in the SHUTDOWN-ACK-SENT state.
- */
- if ((!sctp_test_T_bit(chunk) &&
- (ntohl(chunk->sctp_hdr->vtag) == asoc->c.my_vtag)) ||
- (sctp_test_T_bit(chunk) && asoc->c.peer_vtag &&
- (ntohl(chunk->sctp_hdr->vtag) == asoc->c.peer_vtag))) {
- return 1;
- }
-
- return 0;
-}
-
-#endif /* __sctp_sm_h__ */
diff --git a/ANDROID_3.4.5/include/net/sctp/structs.h b/ANDROID_3.4.5/include/net/sctp/structs.h
deleted file mode 100644
index 88949a99..00000000
--- a/ANDROID_3.4.5/include/net/sctp/structs.h
+++ /dev/null
@@ -1,2037 +0,0 @@
-/* SCTP kernel implementation
- * (C) Copyright IBM Corp. 2001, 2004
- * Copyright (c) 1999-2000 Cisco, Inc.
- * Copyright (c) 1999-2001 Motorola, Inc.
- * Copyright (c) 2001 Intel Corp.
- *
- * This file is part of the SCTP kernel implementation
- *
- * This SCTP implementation 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 SCTP implementation 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 GNU CC; see the file COPYING. If not, write to
- * the Free Software Foundation, 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- *
- * Please send any bug reports or fixes you make to the
- * email addresses:
- * lksctp developers <lksctp-developers@lists.sourceforge.net>
- *
- * Or submit a bug report through the following website:
- * http://www.sf.net/projects/lksctp
- *
- * Written or modified by:
- * Randall Stewart <randall@sctp.chicago.il.us>
- * Ken Morneau <kmorneau@cisco.com>
- * Qiaobing Xie <qxie1@email.mot.com>
- * La Monte H.P. Yarroll <piggy@acm.org>
- * Karl Knutson <karl@athena.chicago.il.us>
- * Jon Grimm <jgrimm@us.ibm.com>
- * Xingang Guo <xingang.guo@intel.com>
- * Hui Huang <hui.huang@nokia.com>
- * Sridhar Samudrala <sri@us.ibm.com>
- * Daisy Chang <daisyc@us.ibm.com>
- * Dajiang Zhang <dajiang.zhang@nokia.com>
- * Ardelle Fan <ardelle.fan@intel.com>
- * Ryan Layer <rmlayer@us.ibm.com>
- * Anup Pemmaiah <pemmaiah@cc.usu.edu>
- * Kevin Gao <kevin.gao@intel.com>
- *
- * Any bugs reported given to us we will try to fix... any fixes shared will
- * be incorporated into the next SCTP release.
- */
-
-#ifndef __sctp_structs_h__
-#define __sctp_structs_h__
-
-#include <linux/time.h> /* We get struct timespec. */
-#include <linux/socket.h> /* linux/in.h needs this!! */
-#include <linux/in.h> /* We get struct sockaddr_in. */
-#include <linux/in6.h> /* We get struct in6_addr */
-#include <linux/ipv6.h>
-#include <asm/param.h> /* We get MAXHOSTNAMELEN. */
-#include <linux/atomic.h> /* This gets us atomic counters. */
-#include <linux/skbuff.h> /* We need sk_buff_head. */
-#include <linux/workqueue.h> /* We need tq_struct. */
-#include <linux/sctp.h> /* We need sctp* header structs. */
-#include <net/sctp/auth.h> /* We need auth specific structs */
-
-/* A convenience structure for handling sockaddr structures.
- * We should wean ourselves off this.
- */
-union sctp_addr {
- struct sockaddr_in v4;
- struct sockaddr_in6 v6;
- struct sockaddr sa;
-};
-
-/* Forward declarations for data structures. */
-struct sctp_globals;
-struct sctp_endpoint;
-struct sctp_association;
-struct sctp_transport;
-struct sctp_packet;
-struct sctp_chunk;
-struct sctp_inq;
-struct sctp_outq;
-struct sctp_bind_addr;
-struct sctp_ulpq;
-struct sctp_ep_common;
-struct sctp_ssnmap;
-struct crypto_hash;
-
-
-#include <net/sctp/tsnmap.h>
-#include <net/sctp/ulpevent.h>
-#include <net/sctp/ulpqueue.h>
-
-/* Structures useful for managing bind/connect. */
-
-struct sctp_bind_bucket {
- unsigned short port;
- unsigned short fastreuse;
- struct hlist_node node;
- struct hlist_head owner;
-};
-
-struct sctp_bind_hashbucket {
- spinlock_t lock;
- struct hlist_head chain;
-};
-
-/* Used for hashing all associations. */
-struct sctp_hashbucket {
- rwlock_t lock;
- struct hlist_head chain;
-} __attribute__((__aligned__(8)));
-
-
-/* The SCTP globals structure. */
-extern struct sctp_globals {
- /* RFC2960 Section 14. Suggested SCTP Protocol Parameter Values
- *
- * The following protocol parameters are RECOMMENDED:
- *
- * RTO.Initial - 3 seconds
- * RTO.Min - 1 second
- * RTO.Max - 60 seconds
- * RTO.Alpha - 1/8 (3 when converted to right shifts.)
- * RTO.Beta - 1/4 (2 when converted to right shifts.)
- */
- unsigned int rto_initial;
- unsigned int rto_min;
- unsigned int rto_max;
-
- /* Note: rto_alpha and rto_beta are really defined as inverse
- * powers of two to facilitate integer operations.
- */
- int rto_alpha;
- int rto_beta;
-
- /* Max.Burst - 4 */
- int max_burst;
-
- /* Whether Cookie Preservative is enabled(1) or not(0) */
- int cookie_preserve_enable;
-
- /* Valid.Cookie.Life - 60 seconds */
- unsigned int valid_cookie_life;
-
- /* Delayed SACK timeout 200ms default*/
- unsigned int sack_timeout;
-
- /* HB.interval - 30 seconds */
- unsigned int hb_interval;
-
- /* Association.Max.Retrans - 10 attempts
- * Path.Max.Retrans - 5 attempts (per destination address)
- * Max.Init.Retransmits - 8 attempts
- */
- int max_retrans_association;
- int max_retrans_path;
- int max_retrans_init;
-
- /*
- * Policy for preforming sctp/socket accounting
- * 0 - do socket level accounting, all assocs share sk_sndbuf
- * 1 - do sctp accounting, each asoc may use sk_sndbuf bytes
- */
- int sndbuf_policy;
-
- /*
- * Policy for preforming sctp/socket accounting
- * 0 - do socket level accounting, all assocs share sk_rcvbuf
- * 1 - do sctp accounting, each asoc may use sk_rcvbuf bytes
- */
- int rcvbuf_policy;
-
- /* The following variables are implementation specific. */
-
- /* Default initialization values to be applied to new associations. */
- __u16 max_instreams;
- __u16 max_outstreams;
-
- /* This is a list of groups of functions for each address
- * family that we support.
- */
- struct list_head address_families;
-
- /* This is the hash of all endpoints. */
- int ep_hashsize;
- struct sctp_hashbucket *ep_hashtable;
-
- /* This is the hash of all associations. */
- int assoc_hashsize;
- struct sctp_hashbucket *assoc_hashtable;
-
- /* This is the sctp port control hash. */
- int port_hashsize;
- struct sctp_bind_hashbucket *port_hashtable;
-
- /* This is the global local address list.
- * We actively maintain this complete list of addresses on
- * the system by catching address add/delete events.
- *
- * It is a list of sctp_sockaddr_entry.
- */
- struct list_head local_addr_list;
- int default_auto_asconf;
- struct list_head addr_waitq;
- struct timer_list addr_wq_timer;
- struct list_head auto_asconf_splist;
- spinlock_t addr_wq_lock;
-
- /* Lock that protects the local_addr_list writers */
- spinlock_t addr_list_lock;
-
- /* Flag to indicate if addip is enabled. */
- int addip_enable;
- int addip_noauth_enable;
-
- /* Flag to indicate if PR-SCTP is enabled. */
- int prsctp_enable;
-
- /* Flag to idicate if SCTP-AUTH is enabled */
- int auth_enable;
-
- /*
- * Policy to control SCTP IPv4 address scoping
- * 0 - Disable IPv4 address scoping
- * 1 - Enable IPv4 address scoping
- * 2 - Selectively allow only IPv4 private addresses
- * 3 - Selectively allow only IPv4 link local address
- */
- int ipv4_scope_policy;
-
- /* Flag to indicate whether computing and verifying checksum
- * is disabled. */
- bool checksum_disable;
-
- /* Threshold for rwnd update SACKS. Receive buffer shifted this many
- * bits is an indicator of when to send and window update SACK.
- */
- int rwnd_update_shift;
-
- /* Threshold for autoclose timeout, in seconds. */
- unsigned long max_autoclose;
-} sctp_globals;
-
-#define sctp_rto_initial (sctp_globals.rto_initial)
-#define sctp_rto_min (sctp_globals.rto_min)
-#define sctp_rto_max (sctp_globals.rto_max)
-#define sctp_rto_alpha (sctp_globals.rto_alpha)
-#define sctp_rto_beta (sctp_globals.rto_beta)
-#define sctp_max_burst (sctp_globals.max_burst)
-#define sctp_valid_cookie_life (sctp_globals.valid_cookie_life)
-#define sctp_cookie_preserve_enable (sctp_globals.cookie_preserve_enable)
-#define sctp_max_retrans_association (sctp_globals.max_retrans_association)
-#define sctp_sndbuf_policy (sctp_globals.sndbuf_policy)
-#define sctp_rcvbuf_policy (sctp_globals.rcvbuf_policy)
-#define sctp_max_retrans_path (sctp_globals.max_retrans_path)
-#define sctp_max_retrans_init (sctp_globals.max_retrans_init)
-#define sctp_sack_timeout (sctp_globals.sack_timeout)
-#define sctp_hb_interval (sctp_globals.hb_interval)
-#define sctp_max_instreams (sctp_globals.max_instreams)
-#define sctp_max_outstreams (sctp_globals.max_outstreams)
-#define sctp_address_families (sctp_globals.address_families)
-#define sctp_ep_hashsize (sctp_globals.ep_hashsize)
-#define sctp_ep_hashtable (sctp_globals.ep_hashtable)
-#define sctp_assoc_hashsize (sctp_globals.assoc_hashsize)
-#define sctp_assoc_hashtable (sctp_globals.assoc_hashtable)
-#define sctp_port_hashsize (sctp_globals.port_hashsize)
-#define sctp_port_hashtable (sctp_globals.port_hashtable)
-#define sctp_local_addr_list (sctp_globals.local_addr_list)
-#define sctp_local_addr_lock (sctp_globals.addr_list_lock)
-#define sctp_auto_asconf_splist (sctp_globals.auto_asconf_splist)
-#define sctp_addr_waitq (sctp_globals.addr_waitq)
-#define sctp_addr_wq_timer (sctp_globals.addr_wq_timer)
-#define sctp_addr_wq_lock (sctp_globals.addr_wq_lock)
-#define sctp_default_auto_asconf (sctp_globals.default_auto_asconf)
-#define sctp_scope_policy (sctp_globals.ipv4_scope_policy)
-#define sctp_addip_enable (sctp_globals.addip_enable)
-#define sctp_addip_noauth (sctp_globals.addip_noauth_enable)
-#define sctp_prsctp_enable (sctp_globals.prsctp_enable)
-#define sctp_auth_enable (sctp_globals.auth_enable)
-#define sctp_checksum_disable (sctp_globals.checksum_disable)
-#define sctp_rwnd_upd_shift (sctp_globals.rwnd_update_shift)
-#define sctp_max_autoclose (sctp_globals.max_autoclose)
-
-/* SCTP Socket type: UDP or TCP style. */
-typedef enum {
- SCTP_SOCKET_UDP = 0,
- SCTP_SOCKET_UDP_HIGH_BANDWIDTH,
- SCTP_SOCKET_TCP
-} sctp_socket_type_t;
-
-/* Per socket SCTP information. */
-struct sctp_sock {
- /* inet_sock has to be the first member of sctp_sock */
- struct inet_sock inet;
- /* What kind of a socket is this? */
- sctp_socket_type_t type;
-
- /* PF_ family specific functions. */
- struct sctp_pf *pf;
-
- /* Access to HMAC transform. */
- struct crypto_hash *hmac;
-
- /* What is our base endpointer? */
- struct sctp_endpoint *ep;
-
- struct sctp_bind_bucket *bind_hash;
- /* Various Socket Options. */
- __u16 default_stream;
- __u32 default_ppid;
- __u16 default_flags;
- __u32 default_context;
- __u32 default_timetolive;
- __u32 default_rcv_context;
- int max_burst;
-
- /* Heartbeat interval: The endpoint sends out a Heartbeat chunk to
- * the destination address every heartbeat interval. This value
- * will be inherited by all new associations.
- */
- __u32 hbinterval;
-
- /* This is the max_retrans value for new associations. */
- __u16 pathmaxrxt;
-
- /* The initial Path MTU to use for new associations. */
- __u32 pathmtu;
-
- /* The default SACK delay timeout for new associations. */
- __u32 sackdelay;
- __u32 sackfreq;
-
- /* Flags controlling Heartbeat, SACK delay, and Path MTU Discovery. */
- __u32 param_flags;
-
- struct sctp_initmsg initmsg;
- struct sctp_rtoinfo rtoinfo;
- struct sctp_paddrparams paddrparam;
- struct sctp_event_subscribe subscribe;
- struct sctp_assocparams assocparams;
- int user_frag;
- __u32 autoclose;
- __u8 nodelay;
- __u8 disable_fragments;
- __u8 v4mapped;
- __u8 frag_interleave;
- __u32 adaptation_ind;
- __u32 pd_point;
-
- atomic_t pd_mode;
- /* Receive to here while partial delivery is in effect. */
- struct sk_buff_head pd_lobby;
- struct list_head auto_asconf_list;
- int do_auto_asconf;
-};
-
-static inline struct sctp_sock *sctp_sk(const struct sock *sk)
-{
- return (struct sctp_sock *)sk;
-}
-
-static inline struct sock *sctp_opt2sk(const struct sctp_sock *sp)
-{
- return (struct sock *)sp;
-}
-
-#if IS_ENABLED(CONFIG_IPV6)
-struct sctp6_sock {
- struct sctp_sock sctp;
- struct ipv6_pinfo inet6;
-};
-#endif /* CONFIG_IPV6 */
-
-
-/* This is our APPLICATION-SPECIFIC state cookie.
- * THIS IS NOT DICTATED BY THE SPECIFICATION.
- */
-/* These are the parts of an association which we send in the cookie.
- * Most of these are straight out of:
- * RFC2960 12.2 Parameters necessary per association (i.e. the TCB)
- *
- */
-
-struct sctp_cookie {
-
- /* My : Tag expected in every inbound packet and sent
- * Verification: in the INIT or INIT ACK chunk.
- * Tag :
- */
- __u32 my_vtag;
-
- /* Peer's : Tag expected in every outbound packet except
- * Verification: in the INIT chunk.
- * Tag :
- */
- __u32 peer_vtag;
-
- /* The rest of these are not from the spec, but really need to
- * be in the cookie.
- */
-
- /* My Tie Tag : Assist in discovering a restarting association. */
- __u32 my_ttag;
-
- /* Peer's Tie Tag: Assist in discovering a restarting association. */
- __u32 peer_ttag;
-
- /* When does this cookie expire? */
- struct timeval expiration;
-
- /* Number of inbound/outbound streams which are set
- * and negotiated during the INIT process.
- */
- __u16 sinit_num_ostreams;
- __u16 sinit_max_instreams;
-
- /* This is the first sequence number I used. */
- __u32 initial_tsn;
-
- /* This holds the originating address of the INIT packet. */
- union sctp_addr peer_addr;
-
- /* IG Section 2.35.3
- * Include the source port of the INIT-ACK
- */
- __u16 my_port;
-
- __u8 prsctp_capable;
-
- /* Padding for future use */
- __u8 padding;
-
- __u32 adaptation_ind;
-
- __u8 auth_random[sizeof(sctp_paramhdr_t) + SCTP_AUTH_RANDOM_LENGTH];
- __u8 auth_hmacs[SCTP_AUTH_NUM_HMACS * sizeof(__u16) + 2];
- __u8 auth_chunks[sizeof(sctp_paramhdr_t) + SCTP_AUTH_MAX_CHUNKS];
-
- /* This is a shim for my peer's INIT packet, followed by
- * a copy of the raw address list of the association.
- * The length of the raw address list is saved in the
- * raw_addr_list_len field, which will be used at the time when
- * the association TCB is re-constructed from the cookie.
- */
- __u32 raw_addr_list_len;
- struct sctp_init_chunk peer_init[0];
-};
-
-
-/* The format of our cookie that we send to our peer. */
-struct sctp_signed_cookie {
- __u8 signature[SCTP_SECRET_SIZE];
- __u32 __pad; /* force sctp_cookie alignment to 64 bits */
- struct sctp_cookie c;
-} __packed;
-
-/* This is another convenience type to allocate memory for address
- * params for the maximum size and pass such structures around
- * internally.
- */
-union sctp_addr_param {
- struct sctp_paramhdr p;
- struct sctp_ipv4addr_param v4;
- struct sctp_ipv6addr_param v6;
-};
-
-/* A convenience type to allow walking through the various
- * parameters and avoid casting all over the place.
- */
-union sctp_params {
- void *v;
- struct sctp_paramhdr *p;
- struct sctp_cookie_preserve_param *life;
- struct sctp_hostname_param *dns;
- struct sctp_cookie_param *cookie;
- struct sctp_supported_addrs_param *sat;
- struct sctp_ipv4addr_param *v4;
- struct sctp_ipv6addr_param *v6;
- union sctp_addr_param *addr;
- struct sctp_adaptation_ind_param *aind;
- struct sctp_supported_ext_param *ext;
- struct sctp_random_param *random;
- struct sctp_chunks_param *chunks;
- struct sctp_hmac_algo_param *hmac_algo;
- struct sctp_addip_param *addip;
-};
-
-/* RFC 2960. Section 3.3.5 Heartbeat.
- * Heartbeat Information: variable length
- * The Sender-specific Heartbeat Info field should normally include
- * information about the sender's current time when this HEARTBEAT
- * chunk is sent and the destination transport address to which this
- * HEARTBEAT is sent (see Section 8.3).
- */
-typedef struct sctp_sender_hb_info {
- struct sctp_paramhdr param_hdr;
- union sctp_addr daddr;
- unsigned long sent_at;
- __u64 hb_nonce;
-} __packed sctp_sender_hb_info_t;
-
-/*
- * RFC 2960 1.3.2 Sequenced Delivery within Streams
- *
- * The term "stream" is used in SCTP to refer to a sequence of user
- * messages that are to be delivered to the upper-layer protocol in
- * order with respect to other messages within the same stream. This is
- * in contrast to its usage in TCP, where it refers to a sequence of
- * bytes (in this document a byte is assumed to be eight bits).
- * ...
- *
- * This is the structure we use to track both our outbound and inbound
- * SSN, or Stream Sequence Numbers.
- */
-
-struct sctp_stream {
- __u16 *ssn;
- unsigned int len;
-};
-
-struct sctp_ssnmap {
- struct sctp_stream in;
- struct sctp_stream out;
- int malloced;
-};
-
-struct sctp_ssnmap *sctp_ssnmap_new(__u16 in, __u16 out,
- gfp_t gfp);
-void sctp_ssnmap_free(struct sctp_ssnmap *map);
-void sctp_ssnmap_clear(struct sctp_ssnmap *map);
-
-/* What is the current SSN number for this stream? */
-static inline __u16 sctp_ssn_peek(struct sctp_stream *stream, __u16 id)
-{
- return stream->ssn[id];
-}
-
-/* Return the next SSN number for this stream. */
-static inline __u16 sctp_ssn_next(struct sctp_stream *stream, __u16 id)
-{
- return stream->ssn[id]++;
-}
-
-/* Skip over this ssn and all below. */
-static inline void sctp_ssn_skip(struct sctp_stream *stream, __u16 id,
- __u16 ssn)
-{
- stream->ssn[id] = ssn+1;
-}
-
-/*
- * Pointers to address related SCTP functions.
- * (i.e. things that depend on the address family.)
- */
-struct sctp_af {
- int (*sctp_xmit) (struct sk_buff *skb,
- struct sctp_transport *);
- int (*setsockopt) (struct sock *sk,
- int level,
- int optname,
- char __user *optval,
- unsigned int optlen);
- int (*getsockopt) (struct sock *sk,
- int level,
- int optname,
- char __user *optval,
- int __user *optlen);
- int (*compat_setsockopt) (struct sock *sk,
- int level,
- int optname,
- char __user *optval,
- unsigned int optlen);
- int (*compat_getsockopt) (struct sock *sk,
- int level,
- int optname,
- char __user *optval,
- int __user *optlen);
- void (*get_dst) (struct sctp_transport *t,
- union sctp_addr *saddr,
- struct flowi *fl,
- struct sock *sk);
- void (*get_saddr) (struct sctp_sock *sk,
- struct sctp_transport *t,
- struct flowi *fl);
- void (*copy_addrlist) (struct list_head *,
- struct net_device *);
- int (*cmp_addr) (const union sctp_addr *addr1,
- const union sctp_addr *addr2);
- void (*addr_copy) (union sctp_addr *dst,
- union sctp_addr *src);
- void (*from_skb) (union sctp_addr *,
- struct sk_buff *skb,
- int saddr);
- void (*from_sk) (union sctp_addr *,
- struct sock *sk);
- void (*to_sk_saddr) (union sctp_addr *,
- struct sock *sk);
- void (*to_sk_daddr) (union sctp_addr *,
- struct sock *sk);
- void (*from_addr_param) (union sctp_addr *,
- union sctp_addr_param *,
- __be16 port, int iif);
- int (*to_addr_param) (const union sctp_addr *,
- union sctp_addr_param *);
- int (*addr_valid) (union sctp_addr *,
- struct sctp_sock *,
- const struct sk_buff *);
- sctp_scope_t (*scope) (union sctp_addr *);
- void (*inaddr_any) (union sctp_addr *, __be16);
- int (*is_any) (const union sctp_addr *);
- int (*available) (union sctp_addr *,
- struct sctp_sock *);
- int (*skb_iif) (const struct sk_buff *sk);
- int (*is_ce) (const struct sk_buff *sk);
- void (*seq_dump_addr)(struct seq_file *seq,
- union sctp_addr *addr);
- void (*ecn_capable)(struct sock *sk);
- __u16 net_header_len;
- int sockaddr_len;
- sa_family_t sa_family;
- struct list_head list;
-};
-
-struct sctp_af *sctp_get_af_specific(sa_family_t);
-int sctp_register_af(struct sctp_af *);
-
-/* Protocol family functions. */
-struct sctp_pf {
- void (*event_msgname)(struct sctp_ulpevent *, char *, int *);
- void (*skb_msgname) (struct sk_buff *, char *, int *);
- int (*af_supported) (sa_family_t, struct sctp_sock *);
- int (*cmp_addr) (const union sctp_addr *,
- const union sctp_addr *,
- struct sctp_sock *);
- int (*bind_verify) (struct sctp_sock *, union sctp_addr *);
- int (*send_verify) (struct sctp_sock *, union sctp_addr *);
- int (*supported_addrs)(const struct sctp_sock *, __be16 *);
- struct sock *(*create_accept_sk) (struct sock *sk,
- struct sctp_association *asoc);
- void (*addr_v4map) (struct sctp_sock *, union sctp_addr *);
- struct sctp_af *af;
-};
-
-
-/* Structure to track chunk fragments that have been acked, but peer
- * fragments of the same message have not.
- */
-struct sctp_datamsg {
- /* Chunks waiting to be submitted to lower layer. */
- struct list_head chunks;
- /* Reference counting. */
- atomic_t refcnt;
- /* When is this message no longer interesting to the peer? */
- unsigned long expires_at;
- /* Did the messenge fail to send? */
- int send_error;
- u8 send_failed:1,
- can_abandon:1, /* can chunks from this message can be abandoned. */
- can_delay; /* should this message be Nagle delayed */
-};
-
-struct sctp_datamsg *sctp_datamsg_from_user(struct sctp_association *,
- struct sctp_sndrcvinfo *,
- struct msghdr *, int len);
-void sctp_datamsg_free(struct sctp_datamsg *);
-void sctp_datamsg_put(struct sctp_datamsg *);
-void sctp_chunk_fail(struct sctp_chunk *, int error);
-int sctp_chunk_abandoned(struct sctp_chunk *);
-
-/* RFC2960 1.4 Key Terms
- *
- * o Chunk: A unit of information within an SCTP packet, consisting of
- * a chunk header and chunk-specific content.
- *
- * As a matter of convenience, we remember the SCTP common header for
- * each chunk as well as a few other header pointers...
- */
-struct sctp_chunk {
- struct list_head list;
-
- atomic_t refcnt;
-
- /* This is our link to the per-transport transmitted list. */
- struct list_head transmitted_list;
-
- /* This field is used by chunks that hold fragmented data.
- * For the first fragment this is the list that holds the rest of
- * fragments. For the remaining fragments, this is the link to the
- * frag_list maintained in the first fragment.
- */
- struct list_head frag_list;
-
- /* This points to the sk_buff containing the actual data. */
- struct sk_buff *skb;
-
- /* These are the SCTP headers by reverse order in a packet.
- * Note that some of these may happen more than once. In that
- * case, we point at the "current" one, whatever that means
- * for that level of header.
- */
-
- /* We point this at the FIRST TLV parameter to chunk_hdr. */
- union sctp_params param_hdr;
- union {
- __u8 *v;
- struct sctp_datahdr *data_hdr;
- struct sctp_inithdr *init_hdr;
- struct sctp_sackhdr *sack_hdr;
- struct sctp_heartbeathdr *hb_hdr;
- struct sctp_sender_hb_info *hbs_hdr;
- struct sctp_shutdownhdr *shutdown_hdr;
- struct sctp_signed_cookie *cookie_hdr;
- struct sctp_ecnehdr *ecne_hdr;
- struct sctp_cwrhdr *ecn_cwr_hdr;
- struct sctp_errhdr *err_hdr;
- struct sctp_addiphdr *addip_hdr;
- struct sctp_fwdtsn_hdr *fwdtsn_hdr;
- struct sctp_authhdr *auth_hdr;
- } subh;
-
- __u8 *chunk_end;
-
- struct sctp_chunkhdr *chunk_hdr;
- struct sctphdr *sctp_hdr;
-
- /* This needs to be recoverable for SCTP_SEND_FAILED events. */
- struct sctp_sndrcvinfo sinfo;
-
- /* Which association does this belong to? */
- struct sctp_association *asoc;
-
- /* What endpoint received this chunk? */
- struct sctp_ep_common *rcvr;
-
- /* We fill this in if we are calculating RTT. */
- unsigned long sent_at;
-
- /* What is the origin IP address for this chunk? */
- union sctp_addr source;
- /* Destination address for this chunk. */
- union sctp_addr dest;
-
- /* For outbound message, track all fragments for SEND_FAILED. */
- struct sctp_datamsg *msg;
-
- /* For an inbound chunk, this tells us where it came from.
- * For an outbound chunk, it tells us where we'd like it to
- * go. It is NULL if we have no preference.
- */
- struct sctp_transport *transport;
-
- /* SCTP-AUTH: For the special case inbound processing of COOKIE-ECHO
- * we need save a pointer to the AUTH chunk, since the SCTP-AUTH
- * spec violates the principle premis that all chunks are processed
- * in order.
- */
- struct sk_buff *auth_chunk;
-
-#define SCTP_CAN_FRTX 0x0
-#define SCTP_NEED_FRTX 0x1
-#define SCTP_DONT_FRTX 0x2
- __u16 rtt_in_progress:1, /* This chunk used for RTT calc? */
- has_tsn:1, /* Does this chunk have a TSN yet? */
- has_ssn:1, /* Does this chunk have a SSN yet? */
- singleton:1, /* Only chunk in the packet? */
- end_of_packet:1, /* Last chunk in the packet? */
- ecn_ce_done:1, /* Have we processed the ECN CE bit? */
- pdiscard:1, /* Discard the whole packet now? */
- tsn_gap_acked:1, /* Is this chunk acked by a GAP ACK? */
- data_accepted:1, /* At least 1 chunk accepted */
- auth:1, /* IN: was auth'ed | OUT: needs auth */
- has_asconf:1, /* IN: have seen an asconf before */
- tsn_missing_report:2, /* Data chunk missing counter. */
- fast_retransmit:2; /* Is this chunk fast retransmitted? */
-};
-
-void sctp_chunk_hold(struct sctp_chunk *);
-void sctp_chunk_put(struct sctp_chunk *);
-int sctp_user_addto_chunk(struct sctp_chunk *chunk, int off, int len,
- struct iovec *data);
-void sctp_chunk_free(struct sctp_chunk *);
-void *sctp_addto_chunk(struct sctp_chunk *, int len, const void *data);
-void *sctp_addto_chunk_fixed(struct sctp_chunk *, int len, const void *data);
-struct sctp_chunk *sctp_chunkify(struct sk_buff *,
- const struct sctp_association *,
- struct sock *);
-void sctp_init_addrs(struct sctp_chunk *, union sctp_addr *,
- union sctp_addr *);
-const union sctp_addr *sctp_source(const struct sctp_chunk *chunk);
-
-enum {
- SCTP_ADDR_NEW, /* new address added to assoc/ep */
- SCTP_ADDR_SRC, /* address can be used as source */
- SCTP_ADDR_DEL, /* address about to be deleted */
-};
-
-/* This is a structure for holding either an IPv6 or an IPv4 address. */
-struct sctp_sockaddr_entry {
- struct list_head list;
- struct rcu_head rcu;
- union sctp_addr a;
- __u8 state;
- __u8 valid;
-};
-
-#define SCTP_ADDRESS_TICK_DELAY 500
-
-typedef struct sctp_chunk *(sctp_packet_phandler_t)(struct sctp_association *);
-
-/* This structure holds lists of chunks as we are assembling for
- * transmission.
- */
-struct sctp_packet {
- /* These are the SCTP header values (host order) for the packet. */
- __u16 source_port;
- __u16 destination_port;
- __u32 vtag;
-
- /* This contains the payload chunks. */
- struct list_head chunk_list;
-
- /* This is the overhead of the sctp and ip headers. */
- size_t overhead;
- /* This is the total size of all chunks INCLUDING padding. */
- size_t size;
-
- /* The packet is destined for this transport address.
- * The function we finally use to pass down to the next lower
- * layer lives in the transport structure.
- */
- struct sctp_transport *transport;
-
- /* pointer to the auth chunk for this packet */
- struct sctp_chunk *auth;
-
- u8 has_cookie_echo:1, /* This packet contains a COOKIE-ECHO chunk. */
- has_sack:1, /* This packet contains a SACK chunk. */
- has_auth:1, /* This packet contains an AUTH chunk */
- has_data:1, /* This packet contains at least 1 DATA chunk */
- ipfragok:1, /* So let ip fragment this packet */
- malloced:1; /* Is it malloced? */
-};
-
-struct sctp_packet *sctp_packet_init(struct sctp_packet *,
- struct sctp_transport *,
- __u16 sport, __u16 dport);
-struct sctp_packet *sctp_packet_config(struct sctp_packet *, __u32 vtag, int);
-sctp_xmit_t sctp_packet_transmit_chunk(struct sctp_packet *,
- struct sctp_chunk *, int);
-sctp_xmit_t sctp_packet_append_chunk(struct sctp_packet *,
- struct sctp_chunk *);
-int sctp_packet_transmit(struct sctp_packet *);
-void sctp_packet_free(struct sctp_packet *);
-
-static inline int sctp_packet_empty(struct sctp_packet *packet)
-{
- return packet->size == packet->overhead;
-}
-
-/* This represents a remote transport address.
- * For local transport addresses, we just use union sctp_addr.
- *
- * RFC2960 Section 1.4 Key Terms
- *
- * o Transport address: A Transport Address is traditionally defined
- * by Network Layer address, Transport Layer protocol and Transport
- * Layer port number. In the case of SCTP running over IP, a
- * transport address is defined by the combination of an IP address
- * and an SCTP port number (where SCTP is the Transport protocol).
- *
- * RFC2960 Section 7.1 SCTP Differences from TCP Congestion control
- *
- * o The sender keeps a separate congestion control parameter set for
- * each of the destination addresses it can send to (not each
- * source-destination pair but for each destination). The parameters
- * should decay if the address is not used for a long enough time
- * period.
- *
- */
-struct sctp_transport {
- /* A list of transports. */
- struct list_head transports;
-
- /* Reference counting. */
- atomic_t refcnt;
- __u32 dead:1,
- /* RTO-Pending : A flag used to track if one of the DATA
- * chunks sent to this address is currently being
- * used to compute a RTT. If this flag is 0,
- * the next DATA chunk sent to this destination
- * should be used to compute a RTT and this flag
- * should be set. Every time the RTT
- * calculation completes (i.e. the DATA chunk
- * is SACK'd) clear this flag.
- */
- rto_pending:1,
-
- /*
- * hb_sent : a flag that signals that we have a pending
- * heartbeat.
- */
- hb_sent:1,
-
- /* Is the Path MTU update pending on this tranport */
- pmtu_pending:1,
-
- /* Is this structure kfree()able? */
- malloced:1;
-
- struct flowi fl;
-
- /* This is the peer's IP address and port. */
- union sctp_addr ipaddr;
-
- /* These are the functions we call to handle LLP stuff. */
- struct sctp_af *af_specific;
-
- /* Which association do we belong to? */
- struct sctp_association *asoc;
-
- /* RFC2960
- *
- * 12.3 Per Transport Address Data
- *
- * For each destination transport address in the peer's
- * address list derived from the INIT or INIT ACK chunk, a
- * number of data elements needs to be maintained including:
- */
- /* RTO : The current retransmission timeout value. */
- unsigned long rto;
-
- __u32 rtt; /* This is the most recent RTT. */
-
- /* RTTVAR : The current RTT variation. */
- __u32 rttvar;
-
- /* SRTT : The current smoothed round trip time. */
- __u32 srtt;
-
- /*
- * These are the congestion stats.
- */
- /* cwnd : The current congestion window. */
- __u32 cwnd; /* This is the actual cwnd. */
-
- /* ssthresh : The current slow start threshold value. */
- __u32 ssthresh;
-
- /* partial : The tracking method for increase of cwnd when in
- * bytes acked : congestion avoidance mode (see Section 6.2.2)
- */
- __u32 partial_bytes_acked;
-
- /* Data that has been sent, but not acknowledged. */
- __u32 flight_size;
-
- __u32 burst_limited; /* Holds old cwnd when max.burst is applied */
-
- /* Destination */
- struct dst_entry *dst;
- /* Source address. */
- union sctp_addr saddr;
-
- /* Heartbeat interval: The endpoint sends out a Heartbeat chunk to
- * the destination address every heartbeat interval.
- */
- unsigned long hbinterval;
-
- /* SACK delay timeout */
- unsigned long sackdelay;
- __u32 sackfreq;
-
- /* When was the last time (in jiffies) that we heard from this
- * transport? We use this to pick new active and retran paths.
- */
- unsigned long last_time_heard;
-
- /* Last time(in jiffies) when cwnd is reduced due to the congestion
- * indication based on ECNE chunk.
- */
- unsigned long last_time_ecne_reduced;
-
- /* This is the max_retrans value for the transport and will
- * be initialized from the assocs value. This can be changed
- * using SCTP_SET_PEER_ADDR_PARAMS socket option.
- */
- __u16 pathmaxrxt;
-
- /* PMTU : The current known path MTU. */
- __u32 pathmtu;
-
- /* Flags controlling Heartbeat, SACK delay, and Path MTU Discovery. */
- __u32 param_flags;
-
- /* The number of times INIT has been sent on this transport. */
- int init_sent_count;
-
- /* state : The current state of this destination,
- * : i.e. SCTP_ACTIVE, SCTP_INACTIVE, SCTP_UNKNOWN.
- */
- int state;
-
- /* These are the error stats for this destination. */
-
- /* Error count : The current error count for this destination. */
- unsigned short error_count;
-
- /* Per : A timer used by each destination.
- * Destination :
- * Timer :
- *
- * [Everywhere else in the text this is called T3-rtx. -ed]
- */
- struct timer_list T3_rtx_timer;
-
- /* Heartbeat timer is per destination. */
- struct timer_list hb_timer;
-
- /* Timer to handle ICMP proto unreachable envets */
- struct timer_list proto_unreach_timer;
-
- /* Since we're using per-destination retransmission timers
- * (see above), we're also using per-destination "transmitted"
- * queues. This probably ought to be a private struct
- * accessible only within the outqueue, but it's not, yet.
- */
- struct list_head transmitted;
-
- /* We build bundle-able packets for this transport here. */
- struct sctp_packet packet;
-
- /* This is the list of transports that have chunks to send. */
- struct list_head send_ready;
-
- /* State information saved for SFR_CACC algorithm. The key
- * idea in SFR_CACC is to maintain state at the sender on a
- * per-destination basis when a changeover happens.
- * char changeover_active;
- * char cycling_changeover;
- * __u32 next_tsn_at_change;
- * char cacc_saw_newack;
- */
- struct {
- /* An unsigned integer, which stores the next TSN to be
- * used by the sender, at the moment of changeover.
- */
- __u32 next_tsn_at_change;
-
- /* A flag which indicates the occurrence of a changeover */
- char changeover_active;
-
- /* A flag which indicates whether the change of primary is
- * the first switch to this destination address during an
- * active switch.
- */
- char cycling_changeover;
-
- /* A temporary flag, which is used during the processing of
- * a SACK to estimate the causative TSN(s)'s group.
- */
- char cacc_saw_newack;
- } cacc;
-
- /* 64-bit random number sent with heartbeat. */
- __u64 hb_nonce;
-};
-
-struct sctp_transport *sctp_transport_new(const union sctp_addr *,
- gfp_t);
-void sctp_transport_set_owner(struct sctp_transport *,
- struct sctp_association *);
-void sctp_transport_route(struct sctp_transport *, union sctp_addr *,
- struct sctp_sock *);
-void sctp_transport_pmtu(struct sctp_transport *, struct sock *sk);
-void sctp_transport_free(struct sctp_transport *);
-void sctp_transport_reset_timers(struct sctp_transport *);
-void sctp_transport_hold(struct sctp_transport *);
-void sctp_transport_put(struct sctp_transport *);
-void sctp_transport_update_rto(struct sctp_transport *, __u32);
-void sctp_transport_raise_cwnd(struct sctp_transport *, __u32, __u32);
-void sctp_transport_lower_cwnd(struct sctp_transport *, sctp_lower_cwnd_t);
-void sctp_transport_burst_limited(struct sctp_transport *);
-void sctp_transport_burst_reset(struct sctp_transport *);
-unsigned long sctp_transport_timeout(struct sctp_transport *);
-void sctp_transport_reset(struct sctp_transport *);
-void sctp_transport_update_pmtu(struct sctp_transport *, u32);
-void sctp_transport_immediate_rtx(struct sctp_transport *);
-
-
-/* This is the structure we use to queue packets as they come into
- * SCTP. We write packets to it and read chunks from it.
- */
-struct sctp_inq {
- /* This is actually a queue of sctp_chunk each
- * containing a partially decoded packet.
- */
- struct list_head in_chunk_list;
- /* This is the packet which is currently off the in queue and is
- * being worked on through the inbound chunk processing.
- */
- struct sctp_chunk *in_progress;
-
- /* This is the delayed task to finish delivering inbound
- * messages.
- */
- struct work_struct immediate;
-
- int malloced; /* Is this structure kfree()able? */
-};
-
-void sctp_inq_init(struct sctp_inq *);
-void sctp_inq_free(struct sctp_inq *);
-void sctp_inq_push(struct sctp_inq *, struct sctp_chunk *packet);
-struct sctp_chunk *sctp_inq_pop(struct sctp_inq *);
-struct sctp_chunkhdr *sctp_inq_peek(struct sctp_inq *);
-void sctp_inq_set_th_handler(struct sctp_inq *, work_func_t);
-
-/* This is the structure we use to hold outbound chunks. You push
- * chunks in and they automatically pop out the other end as bundled
- * packets (it calls (*output_handler)()).
- *
- * This structure covers sections 6.3, 6.4, 6.7, 6.8, 6.10, 7., 8.1,
- * and 8.2 of the v13 draft.
- *
- * It handles retransmissions. The connection to the timeout portion
- * of the state machine is through sctp_..._timeout() and timeout_handler.
- *
- * If you feed it SACKs, it will eat them.
- *
- * If you give it big chunks, it will fragment them.
- *
- * It assigns TSN's to data chunks. This happens at the last possible
- * instant before transmission.
- *
- * When free()'d, it empties itself out via output_handler().
- */
-struct sctp_outq {
- struct sctp_association *asoc;
-
- /* Data pending that has never been transmitted. */
- struct list_head out_chunk_list;
-
- unsigned out_qlen; /* Total length of queued data chunks. */
-
- /* Error of send failed, may used in SCTP_SEND_FAILED event. */
- unsigned error;
-
- /* These are control chunks we want to send. */
- struct list_head control_chunk_list;
-
- /* These are chunks that have been sacked but are above the
- * CTSN, or cumulative tsn ack point.
- */
- struct list_head sacked;
-
- /* Put chunks on this list to schedule them for
- * retransmission.
- */
- struct list_head retransmit;
-
- /* Put chunks on this list to save them for FWD TSN processing as
- * they were abandoned.
- */
- struct list_head abandoned;
-
- /* How many unackd bytes do we have in-flight? */
- __u32 outstanding_bytes;
-
- /* Are we doing fast-rtx on this queue */
- char fast_rtx;
-
- /* Corked? */
- char cork;
-
- /* Is this structure empty? */
- char empty;
-
- /* Are we kfree()able? */
- char malloced;
-};
-
-void sctp_outq_init(struct sctp_association *, struct sctp_outq *);
-void sctp_outq_teardown(struct sctp_outq *);
-void sctp_outq_free(struct sctp_outq*);
-int sctp_outq_tail(struct sctp_outq *, struct sctp_chunk *chunk);
-int sctp_outq_sack(struct sctp_outq *, struct sctp_sackhdr *);
-int sctp_outq_is_empty(const struct sctp_outq *);
-void sctp_outq_restart(struct sctp_outq *);
-
-void sctp_retransmit(struct sctp_outq *, struct sctp_transport *,
- sctp_retransmit_reason_t);
-void sctp_retransmit_mark(struct sctp_outq *, struct sctp_transport *, __u8);
-int sctp_outq_uncork(struct sctp_outq *);
-/* Uncork and flush an outqueue. */
-static inline void sctp_outq_cork(struct sctp_outq *q)
-{
- q->cork = 1;
-}
-
-/* These bind address data fields common between endpoints and associations */
-struct sctp_bind_addr {
-
- /* RFC 2960 12.1 Parameters necessary for the SCTP instance
- *
- * SCTP Port: The local SCTP port number the endpoint is
- * bound to.
- */
- __u16 port;
-
- /* RFC 2960 12.1 Parameters necessary for the SCTP instance
- *
- * Address List: The list of IP addresses that this instance
- * has bound. This information is passed to one's
- * peer(s) in INIT and INIT ACK chunks.
- */
- struct list_head address_list;
-
- int malloced; /* Are we kfree()able? */
-};
-
-void sctp_bind_addr_init(struct sctp_bind_addr *, __u16 port);
-void sctp_bind_addr_free(struct sctp_bind_addr *);
-int sctp_bind_addr_copy(struct sctp_bind_addr *dest,
- const struct sctp_bind_addr *src,
- sctp_scope_t scope, gfp_t gfp,
- int flags);
-int sctp_bind_addr_dup(struct sctp_bind_addr *dest,
- const struct sctp_bind_addr *src,
- gfp_t gfp);
-int sctp_add_bind_addr(struct sctp_bind_addr *, union sctp_addr *,
- __u8 addr_state, gfp_t gfp);
-int sctp_del_bind_addr(struct sctp_bind_addr *, union sctp_addr *);
-int sctp_bind_addr_match(struct sctp_bind_addr *, const union sctp_addr *,
- struct sctp_sock *);
-int sctp_bind_addr_conflict(struct sctp_bind_addr *, const union sctp_addr *,
- struct sctp_sock *, struct sctp_sock *);
-int sctp_bind_addr_state(const struct sctp_bind_addr *bp,
- const union sctp_addr *addr);
-union sctp_addr *sctp_find_unmatch_addr(struct sctp_bind_addr *bp,
- const union sctp_addr *addrs,
- int addrcnt,
- struct sctp_sock *opt);
-union sctp_params sctp_bind_addrs_to_raw(const struct sctp_bind_addr *bp,
- int *addrs_len,
- gfp_t gfp);
-int sctp_raw_to_bind_addrs(struct sctp_bind_addr *bp, __u8 *raw, int len,
- __u16 port, gfp_t gfp);
-
-sctp_scope_t sctp_scope(const union sctp_addr *);
-int sctp_in_scope(const union sctp_addr *addr, const sctp_scope_t scope);
-int sctp_is_any(struct sock *sk, const union sctp_addr *addr);
-int sctp_addr_is_valid(const union sctp_addr *addr);
-int sctp_is_ep_boundall(struct sock *sk);
-
-
-/* What type of endpoint? */
-typedef enum {
- SCTP_EP_TYPE_SOCKET,
- SCTP_EP_TYPE_ASSOCIATION,
-} sctp_endpoint_type_t;
-
-/*
- * A common base class to bridge the implmentation view of a
- * socket (usually listening) endpoint versus an association's
- * local endpoint.
- * This common structure is useful for several purposes:
- * 1) Common interface for lookup routines.
- * a) Subfunctions work for either endpoint or association
- * b) Single interface to lookup allows hiding the lookup lock rather
- * than acquiring it externally.
- * 2) Common interface for the inbound chunk handling/state machine.
- * 3) Common object handling routines for reference counting, etc.
- * 4) Disentangle association lookup from endpoint lookup, where we
- * do not have to find our endpoint to find our association.
- *
- */
-
-struct sctp_ep_common {
- /* Fields to help us manage our entries in the hash tables. */
- struct hlist_node node;
- int hashent;
-
- /* Runtime type information. What kind of endpoint is this? */
- sctp_endpoint_type_t type;
-
- /* Some fields to help us manage this object.
- * refcnt - Reference count access to this object.
- * dead - Do not attempt to use this object.
- * malloced - Do we need to kfree this object?
- */
- atomic_t refcnt;
- char dead;
- char malloced;
-
- /* What socket does this endpoint belong to? */
- struct sock *sk;
-
- /* This is where we receive inbound chunks. */
- struct sctp_inq inqueue;
-
- /* This substructure includes the defining parameters of the
- * endpoint:
- * bind_addr.port is our shared port number.
- * bind_addr.address_list is our set of local IP addresses.
- */
- struct sctp_bind_addr bind_addr;
-};
-
-
-/* RFC Section 1.4 Key Terms
- *
- * o SCTP endpoint: The logical sender/receiver of SCTP packets. On a
- * multi-homed host, an SCTP endpoint is represented to its peers as a
- * combination of a set of eligible destination transport addresses to
- * which SCTP packets can be sent and a set of eligible source
- * transport addresses from which SCTP packets can be received.
- * All transport addresses used by an SCTP endpoint must use the
- * same port number, but can use multiple IP addresses. A transport
- * address used by an SCTP endpoint must not be used by another
- * SCTP endpoint. In other words, a transport address is unique
- * to an SCTP endpoint.
- *
- * From an implementation perspective, each socket has one of these.
- * A TCP-style socket will have exactly one association on one of
- * these. An UDP-style socket will have multiple associations hanging
- * off one of these.
- */
-
-struct sctp_endpoint {
- /* Common substructure for endpoint and association. */
- struct sctp_ep_common base;
-
- /* Associations: A list of current associations and mappings
- * to the data consumers for each association. This
- * may be in the form of a hash table or other
- * implementation dependent structure. The data
- * consumers may be process identification
- * information such as file descriptors, named pipe
- * pointer, or table pointers dependent on how SCTP
- * is implemented.
- */
- /* This is really a list of struct sctp_association entries. */
- struct list_head asocs;
-
- /* Secret Key: A secret key used by this endpoint to compute
- * the MAC. This SHOULD be a cryptographic quality
- * random number with a sufficient length.
- * Discussion in [RFC1750] can be helpful in
- * selection of the key.
- */
- __u8 secret_key[SCTP_HOW_MANY_SECRETS][SCTP_SECRET_SIZE];
- int current_key;
- int last_key;
- int key_changed_at;
-
- /* digest: This is a digest of the sctp cookie. This field is
- * only used on the receive path when we try to validate
- * that the cookie has not been tampered with. We put
- * this here so we pre-allocate this once and can re-use
- * on every receive.
- */
- __u8 *digest;
-
- /* sendbuf acct. policy. */
- __u32 sndbuf_policy;
-
- /* rcvbuf acct. policy. */
- __u32 rcvbuf_policy;
-
- /* SCTP AUTH: array of the HMACs that will be allocated
- * we need this per association so that we don't serialize
- */
- struct crypto_hash **auth_hmacs;
-
- /* SCTP-AUTH: hmacs for the endpoint encoded into parameter */
- struct sctp_hmac_algo_param *auth_hmacs_list;
-
- /* SCTP-AUTH: chunks to authenticate encoded into parameter */
- struct sctp_chunks_param *auth_chunk_list;
-
- /* SCTP-AUTH: endpoint shared keys */
- struct list_head endpoint_shared_keys;
- __u16 active_key_id;
-};
-
-/* Recover the outter endpoint structure. */
-static inline struct sctp_endpoint *sctp_ep(struct sctp_ep_common *base)
-{
- struct sctp_endpoint *ep;
-
- ep = container_of(base, struct sctp_endpoint, base);
- return ep;
-}
-
-/* These are function signatures for manipulating endpoints. */
-struct sctp_endpoint *sctp_endpoint_new(struct sock *, gfp_t);
-void sctp_endpoint_free(struct sctp_endpoint *);
-void sctp_endpoint_put(struct sctp_endpoint *);
-void sctp_endpoint_hold(struct sctp_endpoint *);
-void sctp_endpoint_add_asoc(struct sctp_endpoint *, struct sctp_association *);
-struct sctp_association *sctp_endpoint_lookup_assoc(
- const struct sctp_endpoint *ep,
- const union sctp_addr *paddr,
- struct sctp_transport **);
-int sctp_endpoint_is_peeled_off(struct sctp_endpoint *,
- const union sctp_addr *);
-struct sctp_endpoint *sctp_endpoint_is_match(struct sctp_endpoint *,
- const union sctp_addr *);
-int sctp_has_association(const union sctp_addr *laddr,
- const union sctp_addr *paddr);
-
-int sctp_verify_init(const struct sctp_association *asoc, sctp_cid_t,
- sctp_init_chunk_t *peer_init, struct sctp_chunk *chunk,
- struct sctp_chunk **err_chunk);
-int sctp_process_init(struct sctp_association *, struct sctp_chunk *chunk,
- const union sctp_addr *peer,
- sctp_init_chunk_t *init, gfp_t gfp);
-__u32 sctp_generate_tag(const struct sctp_endpoint *);
-__u32 sctp_generate_tsn(const struct sctp_endpoint *);
-
-struct sctp_inithdr_host {
- __u32 init_tag;
- __u32 a_rwnd;
- __u16 num_outbound_streams;
- __u16 num_inbound_streams;
- __u32 initial_tsn;
-};
-
-/* RFC2960
- *
- * 12. Recommended Transmission Control Block (TCB) Parameters
- *
- * This section details a recommended set of parameters that should
- * be contained within the TCB for an implementation. This section is
- * for illustrative purposes and should not be deemed as requirements
- * on an implementation or as an exhaustive list of all parameters
- * inside an SCTP TCB. Each implementation may need its own additional
- * parameters for optimization.
- */
-
-
-/* Here we have information about each individual association. */
-struct sctp_association {
-
- /* A base structure common to endpoint and association.
- * In this context, it represents the associations's view
- * of the local endpoint of the association.
- */
- struct sctp_ep_common base;
-
- /* Associations on the same socket. */
- struct list_head asocs;
-
- /* association id. */
- sctp_assoc_t assoc_id;
-
- /* This is our parent endpoint. */
- struct sctp_endpoint *ep;
-
- /* These are those association elements needed in the cookie. */
- struct sctp_cookie c;
-
- /* This is all information about our peer. */
- struct {
- /* rwnd
- *
- * Peer Rwnd : Current calculated value of the peer's rwnd.
- */
- __u32 rwnd;
-
- /* transport_addr_list
- *
- * Peer : A list of SCTP transport addresses that the
- * Transport : peer is bound to. This information is derived
- * Address : from the INIT or INIT ACK and is used to
- * List : associate an inbound packet with a given
- * : association. Normally this information is
- * : hashed or keyed for quick lookup and access
- * : of the TCB.
- * : The list is also initialized with the list
- * : of addresses passed with the sctp_connectx()
- * : call.
- *
- * It is a list of SCTP_transport's.
- */
- struct list_head transport_addr_list;
-
- /* transport_count
- *
- * Peer : A count of the number of peer addresses
- * Transport : in the Peer Transport Address List.
- * Address :
- * Count :
- */
- __u16 transport_count;
-
- /* port
- * The transport layer port number.
- */
- __u16 port;
-
- /* primary_path
- *
- * Primary : This is the current primary destination
- * Path : transport address of the peer endpoint. It
- * : may also specify a source transport address
- * : on this endpoint.
- *
- * All of these paths live on transport_addr_list.
- *
- * At the bakeoffs, we discovered that the intent of
- * primaryPath is that it only changes when the ULP
- * asks to have it changed. We add the activePath to
- * designate the connection we are currently using to
- * transmit new data and most control chunks.
- */
- struct sctp_transport *primary_path;
-
- /* Cache the primary path address here, when we
- * need a an address for msg_name.
- */
- union sctp_addr primary_addr;
-
- /* active_path
- * The path that we are currently using to
- * transmit new data and most control chunks.
- */
- struct sctp_transport *active_path;
-
- /* retran_path
- *
- * RFC2960 6.4 Multi-homed SCTP Endpoints
- * ...
- * Furthermore, when its peer is multi-homed, an
- * endpoint SHOULD try to retransmit a chunk to an
- * active destination transport address that is
- * different from the last destination address to
- * which the DATA chunk was sent.
- */
- struct sctp_transport *retran_path;
-
- /* Pointer to last transport I have sent on. */
- struct sctp_transport *last_sent_to;
-
- /* This is the last transport I have received DATA on. */
- struct sctp_transport *last_data_from;
-
- /*
- * Mapping An array of bits or bytes indicating which out of
- * Array order TSN's have been received (relative to the
- * Last Rcvd TSN). If no gaps exist, i.e. no out of
- * order packets have been received, this array
- * will be set to all zero. This structure may be
- * in the form of a circular buffer or bit array.
- *
- * Last Rcvd : This is the last TSN received in
- * TSN : sequence. This value is set initially by
- * : taking the peer's Initial TSN, received in
- * : the INIT or INIT ACK chunk, and subtracting
- * : one from it.
- *
- * Throughout most of the specification this is called the
- * "Cumulative TSN ACK Point". In this case, we
- * ignore the advice in 12.2 in favour of the term
- * used in the bulk of the text. This value is hidden
- * in tsn_map--we get it by calling sctp_tsnmap_get_ctsn().
- */
- struct sctp_tsnmap tsn_map;
-
- /* Ack State : This flag indicates if the next received
- * : packet is to be responded to with a
- * : SACK. This is initializedto 0. When a packet
- * : is received it is incremented. If this value
- * : reaches 2 or more, a SACK is sent and the
- * : value is reset to 0. Note: This is used only
- * : when no DATA chunks are received out of
- * : order. When DATA chunks are out of order,
- * : SACK's are not delayed (see Section 6).
- */
- __u8 sack_needed; /* Do we need to sack the peer? */
- __u32 sack_cnt;
-
- /* These are capabilities which our peer advertised. */
- __u8 ecn_capable:1, /* Can peer do ECN? */
- ipv4_address:1, /* Peer understands IPv4 addresses? */
- ipv6_address:1, /* Peer understands IPv6 addresses? */
- hostname_address:1, /* Peer understands DNS addresses? */
- asconf_capable:1, /* Does peer support ADDIP? */
- prsctp_capable:1, /* Can peer do PR-SCTP? */
- auth_capable:1; /* Is peer doing SCTP-AUTH? */
-
- __u32 adaptation_ind; /* Adaptation Code point. */
-
- /* This mask is used to disable sending the ASCONF chunk
- * with specified parameter to peer.
- */
- __be16 addip_disabled_mask;
-
- struct sctp_inithdr_host i;
- int cookie_len;
- void *cookie;
-
- /* ADDIP Section 4.2 Upon reception of an ASCONF Chunk.
- * C1) ... "Peer-Serial-Number'. This value MUST be initialized to the
- * Initial TSN Value minus 1
- */
- __u32 addip_serial;
-
- /* SCTP-AUTH: We need to know pears random number, hmac list
- * and authenticated chunk list. All that is part of the
- * cookie and these are just pointers to those locations
- */
- sctp_random_param_t *peer_random;
- sctp_chunks_param_t *peer_chunks;
- sctp_hmac_algo_param_t *peer_hmacs;
- } peer;
-
- /* State : A state variable indicating what state the
- * : association is in, i.e. COOKIE-WAIT,
- * : COOKIE-ECHOED, ESTABLISHED, SHUTDOWN-PENDING,
- * : SHUTDOWN-SENT, SHUTDOWN-RECEIVED, SHUTDOWN-ACK-SENT.
- *
- * Note: No "CLOSED" state is illustrated since if a
- * association is "CLOSED" its TCB SHOULD be removed.
- *
- * In this implementation we DO have a CLOSED
- * state which is used during initiation and shutdown.
- *
- * State takes values from SCTP_STATE_*.
- */
- sctp_state_t state;
-
- /* The cookie life I award for any cookie. */
- struct timeval cookie_life;
-
- /* Overall : The overall association error count.
- * Error Count : [Clear this any time I get something.]
- */
- int overall_error_count;
-
- /* These are the association's initial, max, and min RTO values.
- * These values will be initialized by system defaults, but can
- * be modified via the SCTP_RTOINFO socket option.
- */
- unsigned long rto_initial;
- unsigned long rto_max;
- unsigned long rto_min;
-
- /* Maximum number of new data packets that can be sent in a burst. */
- int max_burst;
-
- /* This is the max_retrans value for the association. This value will
- * be initialized initialized from system defaults, but can be
- * modified by the SCTP_ASSOCINFO socket option.
- */
- int max_retrans;
-
- /* Maximum number of times the endpoint will retransmit INIT */
- __u16 max_init_attempts;
-
- /* How many times have we resent an INIT? */
- __u16 init_retries;
-
- /* The largest timeout or RTO value to use in attempting an INIT */
- unsigned long max_init_timeo;
-
- /* Heartbeat interval: The endpoint sends out a Heartbeat chunk to
- * the destination address every heartbeat interval. This value
- * will be inherited by all new transports.
- */
- unsigned long hbinterval;
-
- /* This is the max_retrans value for new transports in the
- * association.
- */
- __u16 pathmaxrxt;
-
- /* Flag that path mtu update is pending */
- __u8 pmtu_pending;
-
- /* Association : The smallest PMTU discovered for all of the
- * PMTU : peer's transport addresses.
- */
- __u32 pathmtu;
-
- /* Flags controlling Heartbeat, SACK delay, and Path MTU Discovery. */
- __u32 param_flags;
-
- /* SACK delay timeout */
- unsigned long sackdelay;
- __u32 sackfreq;
-
-
- unsigned long timeouts[SCTP_NUM_TIMEOUT_TYPES];
- struct timer_list timers[SCTP_NUM_TIMEOUT_TYPES];
-
- /* Transport to which SHUTDOWN chunk was last sent. */
- struct sctp_transport *shutdown_last_sent_to;
-
- /* How many times have we resent a SHUTDOWN */
- int shutdown_retries;
-
- /* Transport to which INIT chunk was last sent. */
- struct sctp_transport *init_last_sent_to;
-
- /* Next TSN : The next TSN number to be assigned to a new
- * : DATA chunk. This is sent in the INIT or INIT
- * : ACK chunk to the peer and incremented each
- * : time a DATA chunk is assigned a TSN
- * : (normally just prior to transmit or during
- * : fragmentation).
- */
- __u32 next_tsn;
-
- /*
- * Last Rcvd : This is the last TSN received in sequence. This value
- * TSN : is set initially by taking the peer's Initial TSN,
- * : received in the INIT or INIT ACK chunk, and
- * : subtracting one from it.
- *
- * Most of RFC 2960 refers to this as the Cumulative TSN Ack Point.
- */
-
- __u32 ctsn_ack_point;
-
- /* PR-SCTP Advanced.Peer.Ack.Point */
- __u32 adv_peer_ack_point;
-
- /* Highest TSN that is acknowledged by incoming SACKs. */
- __u32 highest_sacked;
-
- /* TSN marking the fast recovery exit point */
- __u32 fast_recovery_exit;
-
- /* Flag to track the current fast recovery state */
- __u8 fast_recovery;
-
- /* The number of unacknowledged data chunks. Reported through
- * the SCTP_STATUS sockopt.
- */
- __u16 unack_data;
-
- /* The total number of data chunks that we've had to retransmit
- * as the result of a T3 timer expiration
- */
- __u32 rtx_data_chunks;
-
- /* This is the association's receive buffer space. This value is used
- * to set a_rwnd field in an INIT or a SACK chunk.
- */
- __u32 rwnd;
-
- /* This is the last advertised value of rwnd over a SACK chunk. */
- __u32 a_rwnd;
-
- /* Number of bytes by which the rwnd has slopped. The rwnd is allowed
- * to slop over a maximum of the association's frag_point.
- */
- __u32 rwnd_over;
-
- /* Keeps treack of rwnd pressure. This happens when we have
- * a window, but not recevie buffer (i.e small packets). This one
- * is releases slowly (1 PMTU at a time ).
- */
- __u32 rwnd_press;
-
- /* This is the sndbuf size in use for the association.
- * This corresponds to the sndbuf size for the association,
- * as specified in the sk->sndbuf.
- */
- int sndbuf_used;
-
- /* This is the amount of memory that this association has allocated
- * in the receive path at any given time.
- */
- atomic_t rmem_alloc;
-
- /* This is the wait queue head for send requests waiting on
- * the association sndbuf space.
- */
- wait_queue_head_t wait;
-
- /* The message size at which SCTP fragmentation will occur. */
- __u32 frag_point;
- __u32 user_frag;
-
- /* Counter used to count INIT errors. */
- int init_err_counter;
-
- /* Count the number of INIT cycles (for doubling timeout). */
- int init_cycle;
-
- /* Default send parameters. */
- __u16 default_stream;
- __u16 default_flags;
- __u32 default_ppid;
- __u32 default_context;
- __u32 default_timetolive;
-
- /* Default receive parameters */
- __u32 default_rcv_context;
-
- /* This tracks outbound ssn for a given stream. */
- struct sctp_ssnmap *ssnmap;
-
- /* All outbound chunks go through this structure. */
- struct sctp_outq outqueue;
-
- /* A smart pipe that will handle reordering and fragmentation,
- * as well as handle passing events up to the ULP.
- */
- struct sctp_ulpq ulpq;
-
- /* Last TSN that caused an ECNE Chunk to be sent. */
- __u32 last_ecne_tsn;
-
- /* Last TSN that caused a CWR Chunk to be sent. */
- __u32 last_cwr_tsn;
-
- /* How many duplicated TSNs have we seen? */
- int numduptsns;
-
- /* Number of seconds of idle time before an association is closed.
- * In the association context, this is really used as a boolean
- * since the real timeout is stored in the timeouts array
- */
- __u32 autoclose;
-
- /* These are to support
- * "SCTP Extensions for Dynamic Reconfiguration of IP Addresses
- * and Enforcement of Flow and Message Limits"
- * <draft-ietf-tsvwg-addip-sctp-02.txt>
- * or "ADDIP" for short.
- */
-
-
-
- /* ADDIP Section 4.1.1 Congestion Control of ASCONF Chunks
- *
- * R1) One and only one ASCONF Chunk MAY be in transit and
- * unacknowledged at any one time. If a sender, after sending
- * an ASCONF chunk, decides it needs to transfer another
- * ASCONF Chunk, it MUST wait until the ASCONF-ACK Chunk
- * returns from the previous ASCONF Chunk before sending a
- * subsequent ASCONF. Note this restriction binds each side,
- * so at any time two ASCONF may be in-transit on any given
- * association (one sent from each endpoint).
- *
- * [This is our one-and-only-one ASCONF in flight. If we do
- * not have an ASCONF in flight, this is NULL.]
- */
- struct sctp_chunk *addip_last_asconf;
-
- /* ADDIP Section 5.2 Upon reception of an ASCONF Chunk.
- *
- * This is needed to implement itmes E1 - E4 of the updated
- * spec. Here is the justification:
- *
- * Since the peer may bundle multiple ASCONF chunks toward us,
- * we now need the ability to cache multiple ACKs. The section
- * describes in detail how they are cached and cleaned up.
- */
- struct list_head asconf_ack_list;
-
- /* These ASCONF chunks are waiting to be sent.
- *
- * These chunaks can't be pushed to outqueue until receiving
- * ASCONF_ACK for the previous ASCONF indicated by
- * addip_last_asconf, so as to guarantee that only one ASCONF
- * is in flight at any time.
- *
- * ADDIP Section 4.1.1 Congestion Control of ASCONF Chunks
- *
- * In defining the ASCONF Chunk transfer procedures, it is
- * essential that these transfers MUST NOT cause congestion
- * within the network. To achieve this, we place these
- * restrictions on the transfer of ASCONF Chunks:
- *
- * R1) One and only one ASCONF Chunk MAY be in transit and
- * unacknowledged at any one time. If a sender, after sending
- * an ASCONF chunk, decides it needs to transfer another
- * ASCONF Chunk, it MUST wait until the ASCONF-ACK Chunk
- * returns from the previous ASCONF Chunk before sending a
- * subsequent ASCONF. Note this restriction binds each side,
- * so at any time two ASCONF may be in-transit on any given
- * association (one sent from each endpoint).
- *
- *
- * [I really think this is EXACTLY the sort of intelligence
- * which already resides in sctp_outq. Please move this
- * queue and its supporting logic down there. --piggy]
- */
- struct list_head addip_chunk_list;
-
- /* ADDIP Section 4.1 ASCONF Chunk Procedures
- *
- * A2) A serial number should be assigned to the Chunk. The
- * serial number SHOULD be a monotonically increasing
- * number. The serial number SHOULD be initialized at
- * the start of the association to the same value as the
- * Initial TSN and every time a new ASCONF chunk is created
- * it is incremented by one after assigning the serial number
- * to the newly created chunk.
- *
- * ADDIP
- * 3.1.1 Address/Stream Configuration Change Chunk (ASCONF)
- *
- * Serial Number : 32 bits (unsigned integer)
- *
- * This value represents a Serial Number for the ASCONF
- * Chunk. The valid range of Serial Number is from 0 to
- * 4294967295 (2^32 - 1). Serial Numbers wrap back to 0
- * after reaching 4294967295.
- */
- __u32 addip_serial;
- union sctp_addr *asconf_addr_del_pending;
- int src_out_of_asoc_ok;
- struct sctp_transport *new_transport;
-
- /* SCTP AUTH: list of the endpoint shared keys. These
- * keys are provided out of band by the user applicaton
- * and can't change during the lifetime of the association
- */
- struct list_head endpoint_shared_keys;
-
- /* SCTP AUTH:
- * The current generated assocaition shared key (secret)
- */
- struct sctp_auth_bytes *asoc_shared_key;
-
- /* SCTP AUTH: hmac id of the first peer requested algorithm
- * that we support.
- */
- __u16 default_hmac_id;
-
- __u16 active_key_id;
-
- __u8 need_ecne:1, /* Need to send an ECNE Chunk? */
- temp:1; /* Is it a temporary association? */
-};
-
-
-/* An eyecatcher for determining if we are really looking at an
- * association data structure.
- */
-enum {
- SCTP_ASSOC_EYECATCHER = 0xa550c123,
-};
-
-/* Recover the outter association structure. */
-static inline struct sctp_association *sctp_assoc(struct sctp_ep_common *base)
-{
- struct sctp_association *asoc;
-
- asoc = container_of(base, struct sctp_association, base);
- return asoc;
-}
-
-/* These are function signatures for manipulating associations. */
-
-
-struct sctp_association *
-sctp_association_new(const struct sctp_endpoint *, const struct sock *,
- sctp_scope_t scope, gfp_t gfp);
-void sctp_association_free(struct sctp_association *);
-void sctp_association_put(struct sctp_association *);
-void sctp_association_hold(struct sctp_association *);
-
-struct sctp_transport *sctp_assoc_choose_alter_transport(
- struct sctp_association *, struct sctp_transport *);
-void sctp_assoc_update_retran_path(struct sctp_association *);
-struct sctp_transport *sctp_assoc_lookup_paddr(const struct sctp_association *,
- const union sctp_addr *);
-int sctp_assoc_lookup_laddr(struct sctp_association *asoc,
- const union sctp_addr *laddr);
-struct sctp_transport *sctp_assoc_add_peer(struct sctp_association *,
- const union sctp_addr *address,
- const gfp_t gfp,
- const int peer_state);
-void sctp_assoc_del_peer(struct sctp_association *asoc,
- const union sctp_addr *addr);
-void sctp_assoc_rm_peer(struct sctp_association *asoc,
- struct sctp_transport *peer);
-void sctp_assoc_control_transport(struct sctp_association *,
- struct sctp_transport *,
- sctp_transport_cmd_t, sctp_sn_error_t);
-struct sctp_transport *sctp_assoc_lookup_tsn(struct sctp_association *, __u32);
-struct sctp_transport *sctp_assoc_is_match(struct sctp_association *,
- const union sctp_addr *,
- const union sctp_addr *);
-void sctp_assoc_migrate(struct sctp_association *, struct sock *);
-void sctp_assoc_update(struct sctp_association *old,
- struct sctp_association *new);
-
-__u32 sctp_association_get_next_tsn(struct sctp_association *);
-
-void sctp_assoc_sync_pmtu(struct sctp_association *);
-void sctp_assoc_rwnd_increase(struct sctp_association *, unsigned);
-void sctp_assoc_rwnd_decrease(struct sctp_association *, unsigned);
-void sctp_assoc_set_primary(struct sctp_association *,
- struct sctp_transport *);
-void sctp_assoc_del_nonprimary_peers(struct sctp_association *,
- struct sctp_transport *);
-int sctp_assoc_set_bind_addr_from_ep(struct sctp_association *,
- sctp_scope_t, gfp_t);
-int sctp_assoc_set_bind_addr_from_cookie(struct sctp_association *,
- struct sctp_cookie*,
- gfp_t gfp);
-int sctp_assoc_set_id(struct sctp_association *, gfp_t);
-void sctp_assoc_clean_asconf_ack_cache(const struct sctp_association *asoc);
-struct sctp_chunk *sctp_assoc_lookup_asconf_ack(
- const struct sctp_association *asoc,
- __be32 serial);
-void sctp_asconf_queue_teardown(struct sctp_association *asoc);
-
-int sctp_cmp_addr_exact(const union sctp_addr *ss1,
- const union sctp_addr *ss2);
-struct sctp_chunk *sctp_get_ecne_prepend(struct sctp_association *asoc);
-
-/* A convenience structure to parse out SCTP specific CMSGs. */
-typedef struct sctp_cmsgs {
- struct sctp_initmsg *init;
- struct sctp_sndrcvinfo *info;
-} sctp_cmsgs_t;
-
-/* Structure for tracking memory objects */
-typedef struct {
- char *label;
- atomic_t *counter;
-} sctp_dbg_objcnt_entry_t;
-
-#endif /* __sctp_structs_h__ */
diff --git a/ANDROID_3.4.5/include/net/sctp/tsnmap.h b/ANDROID_3.4.5/include/net/sctp/tsnmap.h
deleted file mode 100644
index e7728bc1..00000000
--- a/ANDROID_3.4.5/include/net/sctp/tsnmap.h
+++ /dev/null
@@ -1,178 +0,0 @@
-/* SCTP kernel implementation
- * (C) Copyright IBM Corp. 2001, 2004
- * Copyright (c) 1999-2000 Cisco, Inc.
- * Copyright (c) 1999-2001 Motorola, Inc.
- * Copyright (c) 2001 Intel Corp.
- *
- * This file is part of the SCTP kernel implementation
- *
- * These are the definitions needed for the tsnmap type. The tsnmap is used
- * to track out of order TSNs received.
- *
- * This SCTP implementation 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 SCTP implementation 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 GNU CC; see the file COPYING. If not, write to
- * the Free Software Foundation, 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- *
- * Please send any bug reports or fixes you make to the
- * email address(es):
- * lksctp developers <lksctp-developers@lists.sourceforge.net>
- *
- * Or submit a bug report through the following website:
- * http://www.sf.net/projects/lksctp
- *
- * Written or modified by:
- * Jon Grimm <jgrimm@us.ibm.com>
- * La Monte H.P. Yarroll <piggy@acm.org>
- * Karl Knutson <karl@athena.chicago.il.us>
- * Sridhar Samudrala <sri@us.ibm.com>
- *
- * Any bugs reported given to us we will try to fix... any fixes shared will
- * be incorporated into the next SCTP release.
- */
-#include <net/sctp/constants.h>
-
-#ifndef __sctp_tsnmap_h__
-#define __sctp_tsnmap_h__
-
-/* RFC 2960 12.2 Parameters necessary per association (i.e. the TCB)
- * Mapping An array of bits or bytes indicating which out of
- * Array order TSN's have been received (relative to the
- * Last Rcvd TSN). If no gaps exist, i.e. no out of
- * order packets have been received, this array
- * will be set to all zero. This structure may be
- * in the form of a circular buffer or bit array.
- */
-struct sctp_tsnmap {
- /* This array counts the number of chunks with each TSN.
- * It points at one of the two buffers with which we will
- * ping-pong between.
- */
- unsigned long *tsn_map;
-
- /* This is the TSN at tsn_map[0]. */
- __u32 base_tsn;
-
- /* Last Rcvd : This is the last TSN received in
- * TSN : sequence. This value is set initially by
- * : taking the peer's Initial TSN, received in
- * : the INIT or INIT ACK chunk, and subtracting
- * : one from it.
- *
- * Throughout most of the specification this is called the
- * "Cumulative TSN ACK Point". In this case, we
- * ignore the advice in 12.2 in favour of the term
- * used in the bulk of the text.
- */
- __u32 cumulative_tsn_ack_point;
-
- /* This is the highest TSN we've marked. */
- __u32 max_tsn_seen;
-
- /* This is the minimum number of TSNs we can track. This corresponds
- * to the size of tsn_map. Note: the overflow_map allows us to
- * potentially track more than this quantity.
- */
- __u16 len;
-
- /* Data chunks pending receipt. used by SCTP_STATUS sockopt */
- __u16 pending_data;
-
- /* Record duplicate TSNs here. We clear this after
- * every SACK. Store up to SCTP_MAX_DUP_TSNS worth of
- * information.
- */
- __u16 num_dup_tsns;
- __be32 dup_tsns[SCTP_MAX_DUP_TSNS];
-};
-
-struct sctp_tsnmap_iter {
- __u32 start;
-};
-
-/* Initialize a block of memory as a tsnmap. */
-struct sctp_tsnmap *sctp_tsnmap_init(struct sctp_tsnmap *, __u16 len,
- __u32 initial_tsn, gfp_t gfp);
-
-void sctp_tsnmap_free(struct sctp_tsnmap *map);
-
-/* Test the tracking state of this TSN.
- * Returns:
- * 0 if the TSN has not yet been seen
- * >0 if the TSN has been seen (duplicate)
- * <0 if the TSN is invalid (too large to track)
- */
-int sctp_tsnmap_check(const struct sctp_tsnmap *, __u32 tsn);
-
-/* Mark this TSN as seen. */
-int sctp_tsnmap_mark(struct sctp_tsnmap *, __u32 tsn);
-
-/* Mark this TSN and all lower as seen. */
-void sctp_tsnmap_skip(struct sctp_tsnmap *map, __u32 tsn);
-
-/* Retrieve the Cumulative TSN ACK Point. */
-static inline __u32 sctp_tsnmap_get_ctsn(const struct sctp_tsnmap *map)
-{
- return map->cumulative_tsn_ack_point;
-}
-
-/* Retrieve the highest TSN we've seen. */
-static inline __u32 sctp_tsnmap_get_max_tsn_seen(const struct sctp_tsnmap *map)
-{
- return map->max_tsn_seen;
-}
-
-/* How many duplicate TSNs are stored? */
-static inline __u16 sctp_tsnmap_num_dups(struct sctp_tsnmap *map)
-{
- return map->num_dup_tsns;
-}
-
-/* Return pointer to duplicate tsn array as needed by SACK. */
-static inline __be32 *sctp_tsnmap_get_dups(struct sctp_tsnmap *map)
-{
- map->num_dup_tsns = 0;
- return map->dup_tsns;
-}
-
-/* How many gap ack blocks do we have recorded? */
-__u16 sctp_tsnmap_num_gabs(struct sctp_tsnmap *map,
- struct sctp_gap_ack_block *gabs);
-
-/* Refresh the count on pending data. */
-__u16 sctp_tsnmap_pending(struct sctp_tsnmap *map);
-
-/* Is there a gap in the TSN map? */
-static inline int sctp_tsnmap_has_gap(const struct sctp_tsnmap *map)
-{
- return map->cumulative_tsn_ack_point != map->max_tsn_seen;
-}
-
-/* Mark a duplicate TSN. Note: limit the storage of duplicate TSN
- * information.
- */
-static inline void sctp_tsnmap_mark_dup(struct sctp_tsnmap *map, __u32 tsn)
-{
- if (map->num_dup_tsns < SCTP_MAX_DUP_TSNS)
- map->dup_tsns[map->num_dup_tsns++] = htonl(tsn);
-}
-
-/* Renege a TSN that was seen. */
-void sctp_tsnmap_renege(struct sctp_tsnmap *, __u32 tsn);
-
-/* Is there a gap in the TSN map? */
-int sctp_tsnmap_has_gap(const struct sctp_tsnmap *);
-
-#endif /* __sctp_tsnmap_h__ */
diff --git a/ANDROID_3.4.5/include/net/sctp/ulpevent.h b/ANDROID_3.4.5/include/net/sctp/ulpevent.h
deleted file mode 100644
index ca4693b4..00000000
--- a/ANDROID_3.4.5/include/net/sctp/ulpevent.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/* SCTP kernel implementation
- * (C) Copyright IBM Corp. 2001, 2004
- * Copyright (c) 1999-2000 Cisco, Inc.
- * Copyright (c) 1999-2001 Motorola, Inc.
- * Copyright (c) 2001 Intel Corp.
- * Copyright (c) 2001 Nokia, Inc.
- * Copyright (c) 2001 La Monte H.P. Yarroll
- *
- * These are the definitions needed for the sctp_ulpevent type. The
- * sctp_ulpevent type is used to carry information from the state machine
- * upwards to the ULP.
- *
- * This file is part of the SCTP kernel implementation
- *
- * This SCTP implementation 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 SCTP implementation 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 GNU CC; see the file COPYING. If not, write to
- * the Free Software Foundation, 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- *
- * Please send any bug reports or fixes you make to the
- * email address(es):
- * lksctp developers <lksctp-developers@lists.sourceforge.net>
- *
- * Or submit a bug report through the following website:
- * http://www.sf.net/projects/lksctp
- *
- * Written or modified by:
- * Jon Grimm <jgrimm@us.ibm.com>
- * La Monte H.P. Yarroll <piggy@acm.org>
- * Karl Knutson <karl@athena.chicago.il.us>
- * Sridhar Samudrala <sri@us.ibm.com>
- *
- * Any bugs reported given to us we will try to fix... any fixes shared will
- * be incorporated into the next SCTP release.
- */
-
-#ifndef __sctp_ulpevent_h__
-#define __sctp_ulpevent_h__
-
-/* A structure to carry information to the ULP (e.g. Sockets API) */
-/* Warning: This sits inside an skb.cb[] area. Be very careful of
- * growing this structure as it is at the maximum limit now.
- */
-struct sctp_ulpevent {
- struct sctp_association *asoc;
- __u16 stream;
- __u16 ssn;
- __u16 flags;
- __u32 ppid;
- __u32 tsn;
- __u32 cumtsn;
- int msg_flags;
- int iif;
- unsigned int rmem_len;
-};
-
-/* Retrieve the skb this event sits inside of. */
-static inline struct sk_buff *sctp_event2skb(const struct sctp_ulpevent *ev)
-{
- return container_of((void *)ev, struct sk_buff, cb);
-}
-
-/* Retrieve & cast the event sitting inside the skb. */
-static inline struct sctp_ulpevent *sctp_skb2event(struct sk_buff *skb)
-{
- return (struct sctp_ulpevent *)skb->cb;
-}
-
-void sctp_ulpevent_free(struct sctp_ulpevent *);
-int sctp_ulpevent_is_notification(const struct sctp_ulpevent *);
-unsigned int sctp_queue_purge_ulpevents(struct sk_buff_head *list);
-
-struct sctp_ulpevent *sctp_ulpevent_make_assoc_change(
- const struct sctp_association *asoc,
- __u16 flags,
- __u16 state,
- __u16 error,
- __u16 outbound,
- __u16 inbound,
- struct sctp_chunk *chunk,
- gfp_t gfp);
-
-struct sctp_ulpevent *sctp_ulpevent_make_peer_addr_change(
- const struct sctp_association *asoc,
- const struct sockaddr_storage *aaddr,
- int flags,
- int state,
- int error,
- gfp_t gfp);
-
-struct sctp_ulpevent *sctp_ulpevent_make_remote_error(
- const struct sctp_association *asoc,
- struct sctp_chunk *chunk,
- __u16 flags,
- gfp_t gfp);
-struct sctp_ulpevent *sctp_ulpevent_make_send_failed(
- const struct sctp_association *asoc,
- struct sctp_chunk *chunk,
- __u16 flags,
- __u32 error,
- gfp_t gfp);
-
-struct sctp_ulpevent *sctp_ulpevent_make_shutdown_event(
- const struct sctp_association *asoc,
- __u16 flags,
- gfp_t gfp);
-
-struct sctp_ulpevent *sctp_ulpevent_make_pdapi(
- const struct sctp_association *asoc,
- __u32 indication, gfp_t gfp);
-
-struct sctp_ulpevent *sctp_ulpevent_make_adaptation_indication(
- const struct sctp_association *asoc, gfp_t gfp);
-
-struct sctp_ulpevent *sctp_ulpevent_make_rcvmsg(struct sctp_association *asoc,
- struct sctp_chunk *chunk,
- gfp_t gfp);
-
-struct sctp_ulpevent *sctp_ulpevent_make_authkey(
- const struct sctp_association *asoc, __u16 key_id,
- __u32 indication, gfp_t gfp);
-
-struct sctp_ulpevent *sctp_ulpevent_make_sender_dry_event(
- const struct sctp_association *asoc, gfp_t gfp);
-
-void sctp_ulpevent_read_sndrcvinfo(const struct sctp_ulpevent *event,
- struct msghdr *);
-__u16 sctp_ulpevent_get_notification_type(const struct sctp_ulpevent *event);
-
-/* Is this event type enabled? */
-static inline int sctp_ulpevent_type_enabled(__u16 sn_type,
- struct sctp_event_subscribe *mask)
-{
- char *amask = (char *) mask;
- return amask[sn_type - SCTP_SN_TYPE_BASE];
-}
-
-/* Given an event subscription, is this event enabled? */
-static inline int sctp_ulpevent_is_enabled(const struct sctp_ulpevent *event,
- struct sctp_event_subscribe *mask)
-{
- __u16 sn_type;
- int enabled = 1;
-
- if (sctp_ulpevent_is_notification(event)) {
- sn_type = sctp_ulpevent_get_notification_type(event);
- enabled = sctp_ulpevent_type_enabled(sn_type, mask);
- }
- return enabled;
-}
-
-#endif /* __sctp_ulpevent_h__ */
-
-
-
-
-
-
-
diff --git a/ANDROID_3.4.5/include/net/sctp/ulpqueue.h b/ANDROID_3.4.5/include/net/sctp/ulpqueue.h
deleted file mode 100644
index 2e5ee0d8..00000000
--- a/ANDROID_3.4.5/include/net/sctp/ulpqueue.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/* SCTP kernel implementation
- * (C) Copyright IBM Corp. 2001, 2004
- * Copyright (c) 1999-2000 Cisco, Inc.
- * Copyright (c) 1999-2001 Motorola, Inc.
- * Copyright (c) 2001 Intel Corp.
- * Copyright (c) 2001 Nokia, Inc.
- * Copyright (c) 2001 La Monte H.P. Yarroll
- *
- * These are the definitions needed for the sctp_ulpq type. The
- * sctp_ulpq is the interface between the Upper Layer Protocol, or ULP,
- * and the core SCTP state machine. This is the component which handles
- * reassembly and ordering.
- *
- * This SCTP implementation 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 SCTP implementation 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 GNU CC; see the file COPYING. If not, write to
- * the Free Software Foundation, 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- *
- * Please send any bug reports or fixes you make to the
- * email addresses:
- * lksctp developers <lksctp-developers@lists.sourceforge.net>
- *
- * Or submit a bug report through the following website:
- * http://www.sf.net/projects/lksctp
- *
- * Written or modified by:
- * Jon Grimm <jgrimm@us.ibm.com>
- * La Monte H.P. Yarroll <piggy@acm.org>
- * Sridhar Samudrala <sri@us.ibm.com>
- *
- * Any bugs reported given to us we will try to fix... any fixes shared will
- * be incorporated into the next SCTP release.
- */
-
-#ifndef __sctp_ulpqueue_h__
-#define __sctp_ulpqueue_h__
-
-/* A structure to carry information to the ULP (e.g. Sockets API) */
-struct sctp_ulpq {
- char malloced;
- char pd_mode;
- struct sctp_association *asoc;
- struct sk_buff_head reasm;
- struct sk_buff_head lobby;
-};
-
-/* Prototypes. */
-struct sctp_ulpq *sctp_ulpq_init(struct sctp_ulpq *,
- struct sctp_association *);
-void sctp_ulpq_flush(struct sctp_ulpq *ulpq);
-void sctp_ulpq_free(struct sctp_ulpq *);
-
-/* Add a new DATA chunk for processing. */
-int sctp_ulpq_tail_data(struct sctp_ulpq *, struct sctp_chunk *, gfp_t);
-
-/* Add a new event for propagation to the ULP. */
-int sctp_ulpq_tail_event(struct sctp_ulpq *, struct sctp_ulpevent *ev);
-
-/* Renege previously received chunks. */
-void sctp_ulpq_renege(struct sctp_ulpq *, struct sctp_chunk *, gfp_t);
-
-/* Perform partial delivery. */
-void sctp_ulpq_partial_delivery(struct sctp_ulpq *, struct sctp_chunk *, gfp_t);
-
-/* Abort the partial delivery. */
-void sctp_ulpq_abort_pd(struct sctp_ulpq *, gfp_t);
-
-/* Clear the partial data delivery condition on this socket. */
-int sctp_clear_pd(struct sock *sk, struct sctp_association *asoc);
-
-/* Skip over an SSN. */
-void sctp_ulpq_skip(struct sctp_ulpq *ulpq, __u16 sid, __u16 ssn);
-
-void sctp_ulpq_reasm_flushtsn(struct sctp_ulpq *, __u32);
-#endif /* __sctp_ulpqueue_h__ */
-
-
-
-
-
-
-
diff --git a/ANDROID_3.4.5/include/net/sctp/user.h b/ANDROID_3.4.5/include/net/sctp/user.h
deleted file mode 100644
index 0842ef00..00000000
--- a/ANDROID_3.4.5/include/net/sctp/user.h
+++ /dev/null
@@ -1,744 +0,0 @@
-/* SCTP kernel implementation
- * (C) Copyright IBM Corp. 2001, 2004
- * Copyright (c) 1999-2000 Cisco, Inc.
- * Copyright (c) 1999-2001 Motorola, Inc.
- * Copyright (c) 2002 Intel Corp.
- *
- * This file is part of the SCTP kernel implementation
- *
- * This header represents the structures and constants needed to support
- * the SCTP Extension to the Sockets API.
- *
- * This SCTP implementation 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 SCTP implementation 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 GNU CC; see the file COPYING. If not, write to
- * the Free Software Foundation, 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- *
- * Please send any bug reports or fixes you make to the
- * email address(es):
- * lksctp developers <lksctp-developers@lists.sourceforge.net>
- *
- * Or submit a bug report through the following website:
- * http://www.sf.net/projects/lksctp
- *
- * Written or modified by:
- * La Monte H.P. Yarroll <piggy@acm.org>
- * R. Stewart <randall@sctp.chicago.il.us>
- * K. Morneau <kmorneau@cisco.com>
- * Q. Xie <qxie1@email.mot.com>
- * Karl Knutson <karl@athena.chicago.il.us>
- * Jon Grimm <jgrimm@us.ibm.com>
- * Daisy Chang <daisyc@us.ibm.com>
- * Ryan Layer <rmlayer@us.ibm.com>
- * Ardelle Fan <ardelle.fan@intel.com>
- * Sridhar Samudrala <sri@us.ibm.com>
- *
- * Any bugs reported given to us we will try to fix... any fixes shared will
- * be incorporated into the next SCTP release.
- */
-
-#ifndef __net_sctp_user_h__
-#define __net_sctp_user_h__
-
-#include <linux/types.h>
-#include <linux/socket.h>
-
-typedef __s32 sctp_assoc_t;
-
-/* The following symbols come from the Sockets API Extensions for
- * SCTP <draft-ietf-tsvwg-sctpsocket-07.txt>.
- */
-#define SCTP_RTOINFO 0
-#define SCTP_ASSOCINFO 1
-#define SCTP_INITMSG 2
-#define SCTP_NODELAY 3 /* Get/set nodelay option. */
-#define SCTP_AUTOCLOSE 4
-#define SCTP_SET_PEER_PRIMARY_ADDR 5
-#define SCTP_PRIMARY_ADDR 6
-#define SCTP_ADAPTATION_LAYER 7
-#define SCTP_DISABLE_FRAGMENTS 8
-#define SCTP_PEER_ADDR_PARAMS 9
-#define SCTP_DEFAULT_SEND_PARAM 10
-#define SCTP_EVENTS 11
-#define SCTP_I_WANT_MAPPED_V4_ADDR 12 /* Turn on/off mapped v4 addresses */
-#define SCTP_MAXSEG 13 /* Get/set maximum fragment. */
-#define SCTP_STATUS 14
-#define SCTP_GET_PEER_ADDR_INFO 15
-#define SCTP_DELAYED_ACK_TIME 16
-#define SCTP_DELAYED_ACK SCTP_DELAYED_ACK_TIME
-#define SCTP_DELAYED_SACK SCTP_DELAYED_ACK_TIME
-#define SCTP_CONTEXT 17
-#define SCTP_FRAGMENT_INTERLEAVE 18
-#define SCTP_PARTIAL_DELIVERY_POINT 19 /* Set/Get partial delivery point */
-#define SCTP_MAX_BURST 20 /* Set/Get max burst */
-#define SCTP_AUTH_CHUNK 21 /* Set only: add a chunk type to authenticate */
-#define SCTP_HMAC_IDENT 22
-#define SCTP_AUTH_KEY 23
-#define SCTP_AUTH_ACTIVE_KEY 24
-#define SCTP_AUTH_DELETE_KEY 25
-#define SCTP_PEER_AUTH_CHUNKS 26 /* Read only */
-#define SCTP_LOCAL_AUTH_CHUNKS 27 /* Read only */
-#define SCTP_GET_ASSOC_NUMBER 28 /* Read only */
-#define SCTP_GET_ASSOC_ID_LIST 29 /* Read only */
-#define SCTP_AUTO_ASCONF 30
-
-/* Internal Socket Options. Some of the sctp library functions are
- * implemented using these socket options.
- */
-#define SCTP_SOCKOPT_BINDX_ADD 100 /* BINDX requests for adding addrs */
-#define SCTP_SOCKOPT_BINDX_REM 101 /* BINDX requests for removing addrs. */
-#define SCTP_SOCKOPT_PEELOFF 102 /* peel off association. */
-/* Options 104-106 are deprecated and removed. Do not use this space */
-#define SCTP_SOCKOPT_CONNECTX_OLD 107 /* CONNECTX old requests. */
-#define SCTP_GET_PEER_ADDRS 108 /* Get all peer address. */
-#define SCTP_GET_LOCAL_ADDRS 109 /* Get all local address. */
-#define SCTP_SOCKOPT_CONNECTX 110 /* CONNECTX requests. */
-#define SCTP_SOCKOPT_CONNECTX3 111 /* CONNECTX requests (updated) */
-
-/*
- * 5.2.1 SCTP Initiation Structure (SCTP_INIT)
- *
- * This cmsghdr structure provides information for initializing new
- * SCTP associations with sendmsg(). The SCTP_INITMSG socket option
- * uses this same data structure. This structure is not used for
- * recvmsg().
- *
- * cmsg_level cmsg_type cmsg_data[]
- * ------------ ------------ ----------------------
- * IPPROTO_SCTP SCTP_INIT struct sctp_initmsg
- *
- */
-struct sctp_initmsg {
- __u16 sinit_num_ostreams;
- __u16 sinit_max_instreams;
- __u16 sinit_max_attempts;
- __u16 sinit_max_init_timeo;
-};
-
-/*
- * 5.2.2 SCTP Header Information Structure (SCTP_SNDRCV)
- *
- * This cmsghdr structure specifies SCTP options for sendmsg() and
- * describes SCTP header information about a received message through
- * recvmsg().
- *
- * cmsg_level cmsg_type cmsg_data[]
- * ------------ ------------ ----------------------
- * IPPROTO_SCTP SCTP_SNDRCV struct sctp_sndrcvinfo
- *
- */
-struct sctp_sndrcvinfo {
- __u16 sinfo_stream;
- __u16 sinfo_ssn;
- __u16 sinfo_flags;
- __u32 sinfo_ppid;
- __u32 sinfo_context;
- __u32 sinfo_timetolive;
- __u32 sinfo_tsn;
- __u32 sinfo_cumtsn;
- sctp_assoc_t sinfo_assoc_id;
-};
-
-/*
- * sinfo_flags: 16 bits (unsigned integer)
- *
- * This field may contain any of the following flags and is composed of
- * a bitwise OR of these values.
- */
-
-enum sctp_sinfo_flags {
- SCTP_UNORDERED = 1, /* Send/receive message unordered. */
- SCTP_ADDR_OVER = 2, /* Override the primary destination. */
- SCTP_ABORT=4, /* Send an ABORT message to the peer. */
- SCTP_SACK_IMMEDIATELY = 8, /* SACK should be sent without delay */
- SCTP_EOF=MSG_FIN, /* Initiate graceful shutdown process. */
-};
-
-
-/* These are cmsg_types. */
-typedef enum sctp_cmsg_type {
- SCTP_INIT, /* 5.2.1 SCTP Initiation Structure */
- SCTP_SNDRCV, /* 5.2.2 SCTP Header Information Structure */
-} sctp_cmsg_t;
-
-
-/*
- * 5.3.1.1 SCTP_ASSOC_CHANGE
- *
- * Communication notifications inform the ULP that an SCTP association
- * has either begun or ended. The identifier for a new association is
- * provided by this notificaion. The notification information has the
- * following format:
- *
- */
-struct sctp_assoc_change {
- __u16 sac_type;
- __u16 sac_flags;
- __u32 sac_length;
- __u16 sac_state;
- __u16 sac_error;
- __u16 sac_outbound_streams;
- __u16 sac_inbound_streams;
- sctp_assoc_t sac_assoc_id;
- __u8 sac_info[0];
-};
-
-/*
- * sac_state: 32 bits (signed integer)
- *
- * This field holds one of a number of values that communicate the
- * event that happened to the association. They include:
- *
- * Note: The following state names deviate from the API draft as
- * the names clash too easily with other kernel symbols.
- */
-enum sctp_sac_state {
- SCTP_COMM_UP,
- SCTP_COMM_LOST,
- SCTP_RESTART,
- SCTP_SHUTDOWN_COMP,
- SCTP_CANT_STR_ASSOC,
-};
-
-/*
- * 5.3.1.2 SCTP_PEER_ADDR_CHANGE
- *
- * When a destination address on a multi-homed peer encounters a change
- * an interface details event is sent. The information has the
- * following structure:
- */
-struct sctp_paddr_change {
- __u16 spc_type;
- __u16 spc_flags;
- __u32 spc_length;
- struct sockaddr_storage spc_aaddr;
- int spc_state;
- int spc_error;
- sctp_assoc_t spc_assoc_id;
-} __attribute__((packed, aligned(4)));
-
-/*
- * spc_state: 32 bits (signed integer)
- *
- * This field holds one of a number of values that communicate the
- * event that happened to the address. They include:
- */
-enum sctp_spc_state {
- SCTP_ADDR_AVAILABLE,
- SCTP_ADDR_UNREACHABLE,
- SCTP_ADDR_REMOVED,
- SCTP_ADDR_ADDED,
- SCTP_ADDR_MADE_PRIM,
- SCTP_ADDR_CONFIRMED,
-};
-
-
-/*
- * 5.3.1.3 SCTP_REMOTE_ERROR
- *
- * A remote peer may send an Operational Error message to its peer.
- * This message indicates a variety of error conditions on an
- * association. The entire error TLV as it appears on the wire is
- * included in a SCTP_REMOTE_ERROR event. Please refer to the SCTP
- * specification [SCTP] and any extensions for a list of possible
- * error formats. SCTP error TLVs have the format:
- */
-struct sctp_remote_error {
- __u16 sre_type;
- __u16 sre_flags;
- __u32 sre_length;
- __u16 sre_error;
- sctp_assoc_t sre_assoc_id;
- __u8 sre_data[0];
-};
-
-
-/*
- * 5.3.1.4 SCTP_SEND_FAILED
- *
- * If SCTP cannot deliver a message it may return the message as a
- * notification.
- */
-struct sctp_send_failed {
- __u16 ssf_type;
- __u16 ssf_flags;
- __u32 ssf_length;
- __u32 ssf_error;
- struct sctp_sndrcvinfo ssf_info;
- sctp_assoc_t ssf_assoc_id;
- __u8 ssf_data[0];
-};
-
-/*
- * ssf_flags: 16 bits (unsigned integer)
- *
- * The flag value will take one of the following values
- *
- * SCTP_DATA_UNSENT - Indicates that the data was never put on
- * the wire.
- *
- * SCTP_DATA_SENT - Indicates that the data was put on the wire.
- * Note that this does not necessarily mean that the
- * data was (or was not) successfully delivered.
- */
-enum sctp_ssf_flags {
- SCTP_DATA_UNSENT,
- SCTP_DATA_SENT,
-};
-
-/*
- * 5.3.1.5 SCTP_SHUTDOWN_EVENT
- *
- * When a peer sends a SHUTDOWN, SCTP delivers this notification to
- * inform the application that it should cease sending data.
- */
-struct sctp_shutdown_event {
- __u16 sse_type;
- __u16 sse_flags;
- __u32 sse_length;
- sctp_assoc_t sse_assoc_id;
-};
-
-/*
- * 5.3.1.6 SCTP_ADAPTATION_INDICATION
- *
- * When a peer sends a Adaptation Layer Indication parameter , SCTP
- * delivers this notification to inform the application
- * that of the peers requested adaptation layer.
- */
-struct sctp_adaptation_event {
- __u16 sai_type;
- __u16 sai_flags;
- __u32 sai_length;
- __u32 sai_adaptation_ind;
- sctp_assoc_t sai_assoc_id;
-};
-
-/*
- * 5.3.1.7 SCTP_PARTIAL_DELIVERY_EVENT
- *
- * When a receiver is engaged in a partial delivery of a
- * message this notification will be used to indicate
- * various events.
- */
-struct sctp_pdapi_event {
- __u16 pdapi_type;
- __u16 pdapi_flags;
- __u32 pdapi_length;
- __u32 pdapi_indication;
- sctp_assoc_t pdapi_assoc_id;
-};
-
-enum { SCTP_PARTIAL_DELIVERY_ABORTED=0, };
-
-struct sctp_authkey_event {
- __u16 auth_type;
- __u16 auth_flags;
- __u32 auth_length;
- __u16 auth_keynumber;
- __u16 auth_altkeynumber;
- __u32 auth_indication;
- sctp_assoc_t auth_assoc_id;
-};
-
-enum { SCTP_AUTH_NEWKEY = 0, };
-
-/*
- * 6.1.9. SCTP_SENDER_DRY_EVENT
- *
- * When the SCTP stack has no more user data to send or retransmit, this
- * notification is given to the user. Also, at the time when a user app
- * subscribes to this event, if there is no data to be sent or
- * retransmit, the stack will immediately send up this notification.
- */
-struct sctp_sender_dry_event {
- __u16 sender_dry_type;
- __u16 sender_dry_flags;
- __u32 sender_dry_length;
- sctp_assoc_t sender_dry_assoc_id;
-};
-
-/*
- * Described in Section 7.3
- * Ancillary Data and Notification Interest Options
- */
-struct sctp_event_subscribe {
- __u8 sctp_data_io_event;
- __u8 sctp_association_event;
- __u8 sctp_address_event;
- __u8 sctp_send_failure_event;
- __u8 sctp_peer_error_event;
- __u8 sctp_shutdown_event;
- __u8 sctp_partial_delivery_event;
- __u8 sctp_adaptation_layer_event;
- __u8 sctp_authentication_event;
- __u8 sctp_sender_dry_event;
-};
-
-/*
- * 5.3.1 SCTP Notification Structure
- *
- * The notification structure is defined as the union of all
- * notification types.
- *
- */
-union sctp_notification {
- struct {
- __u16 sn_type; /* Notification type. */
- __u16 sn_flags;
- __u32 sn_length;
- } sn_header;
- struct sctp_assoc_change sn_assoc_change;
- struct sctp_paddr_change sn_paddr_change;
- struct sctp_remote_error sn_remote_error;
- struct sctp_send_failed sn_send_failed;
- struct sctp_shutdown_event sn_shutdown_event;
- struct sctp_adaptation_event sn_adaptation_event;
- struct sctp_pdapi_event sn_pdapi_event;
- struct sctp_authkey_event sn_authkey_event;
- struct sctp_sender_dry_event sn_sender_dry_event;
-};
-
-/* Section 5.3.1
- * All standard values for sn_type flags are greater than 2^15.
- * Values from 2^15 and down are reserved.
- */
-
-enum sctp_sn_type {
- SCTP_SN_TYPE_BASE = (1<<15),
- SCTP_ASSOC_CHANGE,
- SCTP_PEER_ADDR_CHANGE,
- SCTP_SEND_FAILED,
- SCTP_REMOTE_ERROR,
- SCTP_SHUTDOWN_EVENT,
- SCTP_PARTIAL_DELIVERY_EVENT,
- SCTP_ADAPTATION_INDICATION,
- SCTP_AUTHENTICATION_EVENT,
-#define SCTP_AUTHENTICATION_INDICATION SCTP_AUTHENTICATION_EVENT
- SCTP_SENDER_DRY_EVENT,
-};
-
-/* Notification error codes used to fill up the error fields in some
- * notifications.
- * SCTP_PEER_ADDRESS_CHAGE : spc_error
- * SCTP_ASSOC_CHANGE : sac_error
- * These names should be potentially included in the draft 04 of the SCTP
- * sockets API specification.
- */
-typedef enum sctp_sn_error {
- SCTP_FAILED_THRESHOLD,
- SCTP_RECEIVED_SACK,
- SCTP_HEARTBEAT_SUCCESS,
- SCTP_RESPONSE_TO_USER_REQ,
- SCTP_INTERNAL_ERROR,
- SCTP_SHUTDOWN_GUARD_EXPIRES,
- SCTP_PEER_FAULTY,
-} sctp_sn_error_t;
-
-/*
- * 7.1.1 Retransmission Timeout Parameters (SCTP_RTOINFO)
- *
- * The protocol parameters used to initialize and bound retransmission
- * timeout (RTO) are tunable. See [SCTP] for more information on how
- * these parameters are used in RTO calculation.
- */
-struct sctp_rtoinfo {
- sctp_assoc_t srto_assoc_id;
- __u32 srto_initial;
- __u32 srto_max;
- __u32 srto_min;
-};
-
-/*
- * 7.1.2 Association Parameters (SCTP_ASSOCINFO)
- *
- * This option is used to both examine and set various association and
- * endpoint parameters.
- */
-struct sctp_assocparams {
- sctp_assoc_t sasoc_assoc_id;
- __u16 sasoc_asocmaxrxt;
- __u16 sasoc_number_peer_destinations;
- __u32 sasoc_peer_rwnd;
- __u32 sasoc_local_rwnd;
- __u32 sasoc_cookie_life;
-};
-
-/*
- * 7.1.9 Set Peer Primary Address (SCTP_SET_PEER_PRIMARY_ADDR)
- *
- * Requests that the peer mark the enclosed address as the association
- * primary. The enclosed address must be one of the association's
- * locally bound addresses. The following structure is used to make a
- * set primary request:
- */
-struct sctp_setpeerprim {
- sctp_assoc_t sspp_assoc_id;
- struct sockaddr_storage sspp_addr;
-} __attribute__((packed, aligned(4)));
-
-/*
- * 7.1.10 Set Primary Address (SCTP_PRIMARY_ADDR)
- *
- * Requests that the local SCTP stack use the enclosed peer address as
- * the association primary. The enclosed address must be one of the
- * association peer's addresses. The following structure is used to
- * make a set peer primary request:
- */
-struct sctp_prim {
- sctp_assoc_t ssp_assoc_id;
- struct sockaddr_storage ssp_addr;
-} __attribute__((packed, aligned(4)));
-
-/*
- * 7.1.11 Set Adaptation Layer Indicator (SCTP_ADAPTATION_LAYER)
- *
- * Requests that the local endpoint set the specified Adaptation Layer
- * Indication parameter for all future INIT and INIT-ACK exchanges.
- */
-struct sctp_setadaptation {
- __u32 ssb_adaptation_ind;
-};
-
-/*
- * 7.1.13 Peer Address Parameters (SCTP_PEER_ADDR_PARAMS)
- *
- * Applications can enable or disable heartbeats for any peer address
- * of an association, modify an address's heartbeat interval, force a
- * heartbeat to be sent immediately, and adjust the address's maximum
- * number of retransmissions sent before an address is considered
- * unreachable. The following structure is used to access and modify an
- * address's parameters:
- */
-enum sctp_spp_flags {
- SPP_HB_ENABLE = 1<<0, /*Enable heartbeats*/
- SPP_HB_DISABLE = 1<<1, /*Disable heartbeats*/
- SPP_HB = SPP_HB_ENABLE | SPP_HB_DISABLE,
- SPP_HB_DEMAND = 1<<2, /*Send heartbeat immediately*/
- SPP_PMTUD_ENABLE = 1<<3, /*Enable PMTU discovery*/
- SPP_PMTUD_DISABLE = 1<<4, /*Disable PMTU discovery*/
- SPP_PMTUD = SPP_PMTUD_ENABLE | SPP_PMTUD_DISABLE,
- SPP_SACKDELAY_ENABLE = 1<<5, /*Enable SACK*/
- SPP_SACKDELAY_DISABLE = 1<<6, /*Disable SACK*/
- SPP_SACKDELAY = SPP_SACKDELAY_ENABLE | SPP_SACKDELAY_DISABLE,
- SPP_HB_TIME_IS_ZERO = 1<<7, /* Set HB delay to 0 */
-};
-
-struct sctp_paddrparams {
- sctp_assoc_t spp_assoc_id;
- struct sockaddr_storage spp_address;
- __u32 spp_hbinterval;
- __u16 spp_pathmaxrxt;
- __u32 spp_pathmtu;
- __u32 spp_sackdelay;
- __u32 spp_flags;
-} __attribute__((packed, aligned(4)));
-
-/*
- * 7.1.18. Add a chunk that must be authenticated (SCTP_AUTH_CHUNK)
- *
- * This set option adds a chunk type that the user is requesting to be
- * received only in an authenticated way. Changes to the list of chunks
- * will only effect future associations on the socket.
- */
-struct sctp_authchunk {
- __u8 sauth_chunk;
-};
-
-/*
- * 7.1.19. Get or set the list of supported HMAC Identifiers (SCTP_HMAC_IDENT)
- *
- * This option gets or sets the list of HMAC algorithms that the local
- * endpoint requires the peer to use.
-*/
-struct sctp_hmacalgo {
- __u32 shmac_num_idents;
- __u16 shmac_idents[];
-};
-
-/*
- * 7.1.20. Set a shared key (SCTP_AUTH_KEY)
- *
- * This option will set a shared secret key which is used to build an
- * association shared key.
- */
-struct sctp_authkey {
- sctp_assoc_t sca_assoc_id;
- __u16 sca_keynumber;
- __u16 sca_keylength;
- __u8 sca_key[];
-};
-
-/*
- * 7.1.21. Get or set the active shared key (SCTP_AUTH_ACTIVE_KEY)
- *
- * This option will get or set the active shared key to be used to build
- * the association shared key.
- */
-
-struct sctp_authkeyid {
- sctp_assoc_t scact_assoc_id;
- __u16 scact_keynumber;
-};
-
-
-/*
- * 7.1.23. Get or set delayed ack timer (SCTP_DELAYED_SACK)
- *
- * This option will effect the way delayed acks are performed. This
- * option allows you to get or set the delayed ack time, in
- * milliseconds. It also allows changing the delayed ack frequency.
- * Changing the frequency to 1 disables the delayed sack algorithm. If
- * the assoc_id is 0, then this sets or gets the endpoints default
- * values. If the assoc_id field is non-zero, then the set or get
- * effects the specified association for the one to many model (the
- * assoc_id field is ignored by the one to one model). Note that if
- * sack_delay or sack_freq are 0 when setting this option, then the
- * current values will remain unchanged.
- */
-struct sctp_sack_info {
- sctp_assoc_t sack_assoc_id;
- uint32_t sack_delay;
- uint32_t sack_freq;
-};
-
-struct sctp_assoc_value {
- sctp_assoc_t assoc_id;
- uint32_t assoc_value;
-};
-
-/*
- * 7.2.2 Peer Address Information
- *
- * Applications can retrieve information about a specific peer address
- * of an association, including its reachability state, congestion
- * window, and retransmission timer values. This information is
- * read-only. The following structure is used to access this
- * information:
- */
-struct sctp_paddrinfo {
- sctp_assoc_t spinfo_assoc_id;
- struct sockaddr_storage spinfo_address;
- __s32 spinfo_state;
- __u32 spinfo_cwnd;
- __u32 spinfo_srtt;
- __u32 spinfo_rto;
- __u32 spinfo_mtu;
-} __attribute__((packed, aligned(4)));
-
-/* Peer addresses's state. */
-/* UNKNOWN: Peer address passed by the upper layer in sendmsg or connect[x]
- * calls.
- * UNCONFIRMED: Peer address received in INIT/INIT-ACK address parameters.
- * Not yet confirmed by a heartbeat and not available for data
- * transfers.
- * ACTIVE : Peer address confirmed, active and available for data transfers.
- * INACTIVE: Peer address inactive and not available for data transfers.
- */
-enum sctp_spinfo_state {
- SCTP_INACTIVE,
- SCTP_ACTIVE,
- SCTP_UNCONFIRMED,
- SCTP_UNKNOWN = 0xffff /* Value used for transport state unknown */
-};
-
-/*
- * 7.2.1 Association Status (SCTP_STATUS)
- *
- * Applications can retrieve current status information about an
- * association, including association state, peer receiver window size,
- * number of unacked data chunks, and number of data chunks pending
- * receipt. This information is read-only. The following structure is
- * used to access this information:
- */
-struct sctp_status {
- sctp_assoc_t sstat_assoc_id;
- __s32 sstat_state;
- __u32 sstat_rwnd;
- __u16 sstat_unackdata;
- __u16 sstat_penddata;
- __u16 sstat_instrms;
- __u16 sstat_outstrms;
- __u32 sstat_fragmentation_point;
- struct sctp_paddrinfo sstat_primary;
-};
-
-/*
- * 7.2.3. Get the list of chunks the peer requires to be authenticated
- * (SCTP_PEER_AUTH_CHUNKS)
- *
- * This option gets a list of chunks for a specified association that
- * the peer requires to be received authenticated only.
- */
-struct sctp_authchunks {
- sctp_assoc_t gauth_assoc_id;
- __u32 gauth_number_of_chunks;
- uint8_t gauth_chunks[];
-};
-
-/*
- * 8.2.6. Get the Current Identifiers of Associations
- * (SCTP_GET_ASSOC_ID_LIST)
- *
- * This option gets the current list of SCTP association identifiers of
- * the SCTP associations handled by a one-to-many style socket.
- */
-struct sctp_assoc_ids {
- __u32 gaids_number_of_ids;
- sctp_assoc_t gaids_assoc_id[];
-};
-
-/*
- * 8.3, 8.5 get all peer/local addresses in an association.
- * This parameter struct is used by SCTP_GET_PEER_ADDRS and
- * SCTP_GET_LOCAL_ADDRS socket options used internally to implement
- * sctp_getpaddrs() and sctp_getladdrs() API.
- */
-struct sctp_getaddrs_old {
- sctp_assoc_t assoc_id;
- int addr_num;
- struct sockaddr __user *addrs;
-};
-struct sctp_getaddrs {
- sctp_assoc_t assoc_id; /*input*/
- __u32 addr_num; /*output*/
- __u8 addrs[0]; /*output, variable size*/
-};
-
-/* These are bit fields for msghdr->msg_flags. See section 5.1. */
-/* On user space Linux, these live in <bits/socket.h> as an enum. */
-enum sctp_msg_flags {
- MSG_NOTIFICATION = 0x8000,
-#define MSG_NOTIFICATION MSG_NOTIFICATION
-};
-
-/*
- * 8.1 sctp_bindx()
- *
- * The flags parameter is formed from the bitwise OR of zero or more of the
- * following currently defined flags:
- */
-#define SCTP_BINDX_ADD_ADDR 0x01
-#define SCTP_BINDX_REM_ADDR 0x02
-
-/* This is the structure that is passed as an argument(optval) to
- * getsockopt(SCTP_SOCKOPT_PEELOFF).
- */
-typedef struct {
- sctp_assoc_t associd;
- int sd;
-} sctp_peeloff_arg_t;
-
-#endif /* __net_sctp_user_h__ */
diff --git a/ANDROID_3.4.5/include/net/secure_seq.h b/ANDROID_3.4.5/include/net/secure_seq.h
deleted file mode 100644
index c2e542b2..00000000
--- a/ANDROID_3.4.5/include/net/secure_seq.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef _NET_SECURE_SEQ
-#define _NET_SECURE_SEQ
-
-#include <linux/types.h>
-
-extern __u32 secure_ip_id(__be32 daddr);
-extern __u32 secure_ipv6_id(const __be32 daddr[4]);
-extern u32 secure_ipv4_port_ephemeral(__be32 saddr, __be32 daddr, __be16 dport);
-extern u32 secure_ipv6_port_ephemeral(const __be32 *saddr, const __be32 *daddr,
- __be16 dport);
-extern __u32 secure_tcp_sequence_number(__be32 saddr, __be32 daddr,
- __be16 sport, __be16 dport);
-extern __u32 secure_tcpv6_sequence_number(const __be32 *saddr, const __be32 *daddr,
- __be16 sport, __be16 dport);
-extern u64 secure_dccp_sequence_number(__be32 saddr, __be32 daddr,
- __be16 sport, __be16 dport);
-extern u64 secure_dccpv6_sequence_number(__be32 *saddr, __be32 *daddr,
- __be16 sport, __be16 dport);
-
-#endif /* _NET_SECURE_SEQ */
diff --git a/ANDROID_3.4.5/include/net/slhc_vj.h b/ANDROID_3.4.5/include/net/slhc_vj.h
deleted file mode 100644
index 8716d594..00000000
--- a/ANDROID_3.4.5/include/net/slhc_vj.h
+++ /dev/null
@@ -1,183 +0,0 @@
-#ifndef _SLHC_H
-#define _SLHC_H
-/*
- * Definitions for tcp compression routines.
- *
- * $Header: slcompress.h,v 1.10 89/12/31 08:53:02 van Exp $
- *
- * Copyright (c) 1989 Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by the University of California, Berkeley. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Van Jacobson (van@helios.ee.lbl.gov), Dec 31, 1989:
- * - Initial distribution.
- *
- *
- * modified for KA9Q Internet Software Package by
- * Katie Stevens (dkstevens@ucdavis.edu)
- * University of California, Davis
- * Computing Services
- * - 01-31-90 initial adaptation
- *
- * - Feb 1991 Bill_Simpson@um.cc.umich.edu
- * variable number of conversation slots
- * allow zero or one slots
- * separate routines
- * status display
- */
-
-/*
- * Compressed packet format:
- *
- * The first octet contains the packet type (top 3 bits), TCP
- * 'push' bit, and flags that indicate which of the 4 TCP sequence
- * numbers have changed (bottom 5 bits). The next octet is a
- * conversation number that associates a saved IP/TCP header with
- * the compressed packet. The next two octets are the TCP checksum
- * from the original datagram. The next 0 to 15 octets are
- * sequence number changes, one change per bit set in the header
- * (there may be no changes and there are two special cases where
- * the receiver implicitly knows what changed -- see below).
- *
- * There are 5 numbers which can change (they are always inserted
- * in the following order): TCP urgent pointer, window,
- * acknowledgment, sequence number and IP ID. (The urgent pointer
- * is different from the others in that its value is sent, not the
- * change in value.) Since typical use of SLIP links is biased
- * toward small packets (see comments on MTU/MSS below), changes
- * use a variable length coding with one octet for numbers in the
- * range 1 - 255 and 3 octets (0, MSB, LSB) for numbers in the
- * range 256 - 65535 or 0. (If the change in sequence number or
- * ack is more than 65535, an uncompressed packet is sent.)
- */
-
-/*
- * Packet types (must not conflict with IP protocol version)
- *
- * The top nibble of the first octet is the packet type. There are
- * three possible types: IP (not proto TCP or tcp with one of the
- * control flags set); uncompressed TCP (a normal IP/TCP packet but
- * with the 8-bit protocol field replaced by an 8-bit connection id --
- * this type of packet syncs the sender & receiver); and compressed
- * TCP (described above).
- *
- * LSB of 4-bit field is TCP "PUSH" bit (a worthless anachronism) and
- * is logically part of the 4-bit "changes" field that follows. Top
- * three bits are actual packet type. For backward compatibility
- * and in the interest of conserving bits, numbers are chosen so the
- * IP protocol version number (4) which normally appears in this nibble
- * means "IP packet".
- */
-
-
-#include <linux/ip.h>
-#include <linux/tcp.h>
-
-/* SLIP compression masks for len/vers byte */
-#define SL_TYPE_IP 0x40
-#define SL_TYPE_UNCOMPRESSED_TCP 0x70
-#define SL_TYPE_COMPRESSED_TCP 0x80
-#define SL_TYPE_ERROR 0x00
-
-/* Bits in first octet of compressed packet */
-#define NEW_C 0x40 /* flag bits for what changed in a packet */
-#define NEW_I 0x20
-#define NEW_S 0x08
-#define NEW_A 0x04
-#define NEW_W 0x02
-#define NEW_U 0x01
-
-/* reserved, special-case values of above */
-#define SPECIAL_I (NEW_S|NEW_W|NEW_U) /* echoed interactive traffic */
-#define SPECIAL_D (NEW_S|NEW_A|NEW_W|NEW_U) /* unidirectional data */
-#define SPECIALS_MASK (NEW_S|NEW_A|NEW_W|NEW_U)
-
-#define TCP_PUSH_BIT 0x10
-
-/*
- * data type and sizes conversion assumptions:
- *
- * VJ code KA9Q style generic
- * u_char byte_t unsigned char 8 bits
- * u_short int16 unsigned short 16 bits
- * u_int int16 unsigned short 16 bits
- * u_long unsigned long unsigned long 32 bits
- * int int32 long 32 bits
- */
-
-typedef __u8 byte_t;
-typedef __u32 int32;
-
-/*
- * "state" data for each active tcp conversation on the wire. This is
- * basically a copy of the entire IP/TCP header from the last packet
- * we saw from the conversation together with a small identifier
- * the transmit & receive ends of the line use to locate saved header.
- */
-struct cstate {
- byte_t cs_this; /* connection id number (xmit) */
- struct cstate *next; /* next in ring (xmit) */
- struct iphdr cs_ip; /* ip/tcp hdr from most recent packet */
- struct tcphdr cs_tcp;
- unsigned char cs_ipopt[64];
- unsigned char cs_tcpopt[64];
- int cs_hsize;
-};
-#define NULLSLSTATE (struct cstate *)0
-
-/*
- * all the state data for one serial line (we need one of these per line).
- */
-struct slcompress {
- struct cstate *tstate; /* transmit connection states (array)*/
- struct cstate *rstate; /* receive connection states (array)*/
-
- byte_t tslot_limit; /* highest transmit slot id (0-l)*/
- byte_t rslot_limit; /* highest receive slot id (0-l)*/
-
- byte_t xmit_oldest; /* oldest xmit in ring */
- byte_t xmit_current; /* most recent xmit id */
- byte_t recv_current; /* most recent rcvd id */
-
- byte_t flags;
-#define SLF_TOSS 0x01 /* tossing rcvd frames until id received */
-
- int32 sls_o_nontcp; /* outbound non-TCP packets */
- int32 sls_o_tcp; /* outbound TCP packets */
- int32 sls_o_uncompressed; /* outbound uncompressed packets */
- int32 sls_o_compressed; /* outbound compressed packets */
- int32 sls_o_searches; /* searches for connection state */
- int32 sls_o_misses; /* times couldn't find conn. state */
-
- int32 sls_i_uncompressed; /* inbound uncompressed packets */
- int32 sls_i_compressed; /* inbound compressed packets */
- int32 sls_i_error; /* inbound error packets */
- int32 sls_i_tossed; /* inbound packets tossed because of error */
-
- int32 sls_i_runt;
- int32 sls_i_badcheck;
-};
-#define NULLSLCOMPR (struct slcompress *)0
-
-/* In slhc.c: */
-struct slcompress *slhc_init(int rslots, int tslots);
-void slhc_free(struct slcompress *comp);
-
-int slhc_compress(struct slcompress *comp, unsigned char *icp, int isize,
- unsigned char *ocp, unsigned char **cpp, int compress_cid);
-int slhc_uncompress(struct slcompress *comp, unsigned char *icp, int isize);
-int slhc_remember(struct slcompress *comp, unsigned char *icp, int isize);
-int slhc_toss(struct slcompress *comp);
-
-#endif /* _SLHC_H */
diff --git a/ANDROID_3.4.5/include/net/snmp.h b/ANDROID_3.4.5/include/net/snmp.h
deleted file mode 100644
index 0147b901..00000000
--- a/ANDROID_3.4.5/include/net/snmp.h
+++ /dev/null
@@ -1,217 +0,0 @@
-/*
- *
- * SNMP MIB entries for the IP subsystem.
- *
- * Alan Cox <gw4pts@gw4pts.ampr.org>
- *
- * We don't chose to implement SNMP in the kernel (this would
- * be silly as SNMP is a pain in the backside in places). We do
- * however need to collect the MIB statistics and export them
- * out of /proc (eventually)
- *
- * 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 _SNMP_H
-#define _SNMP_H
-
-#include <linux/cache.h>
-#include <linux/snmp.h>
-#include <linux/smp.h>
-
-/*
- * Mibs are stored in array of unsigned long.
- */
-/*
- * struct snmp_mib{}
- * - list of entries for particular API (such as /proc/net/snmp)
- * - name of entries.
- */
-struct snmp_mib {
- const char *name;
- int entry;
-};
-
-#define SNMP_MIB_ITEM(_name,_entry) { \
- .name = _name, \
- .entry = _entry, \
-}
-
-#define SNMP_MIB_SENTINEL { \
- .name = NULL, \
- .entry = 0, \
-}
-
-/*
- * We use unsigned longs for most mibs but u64 for ipstats.
- */
-#include <linux/u64_stats_sync.h>
-
-/* IPstats */
-#define IPSTATS_MIB_MAX __IPSTATS_MIB_MAX
-struct ipstats_mib {
- /* mibs[] must be first field of struct ipstats_mib */
- u64 mibs[IPSTATS_MIB_MAX];
- struct u64_stats_sync syncp;
-};
-
-/* ICMP */
-#define ICMP_MIB_MAX __ICMP_MIB_MAX
-struct icmp_mib {
- unsigned long mibs[ICMP_MIB_MAX];
-};
-
-#define ICMPMSG_MIB_MAX __ICMPMSG_MIB_MAX
-struct icmpmsg_mib {
- atomic_long_t mibs[ICMPMSG_MIB_MAX];
-};
-
-/* ICMP6 (IPv6-ICMP) */
-#define ICMP6_MIB_MAX __ICMP6_MIB_MAX
-/* per network ns counters */
-struct icmpv6_mib {
- unsigned long mibs[ICMP6_MIB_MAX];
-};
-/* per device counters, (shared on all cpus) */
-struct icmpv6_mib_device {
- atomic_long_t mibs[ICMP6_MIB_MAX];
-};
-
-#define ICMP6MSG_MIB_MAX __ICMP6MSG_MIB_MAX
-/* per network ns counters */
-struct icmpv6msg_mib {
- atomic_long_t mibs[ICMP6MSG_MIB_MAX];
-};
-/* per device counters, (shared on all cpus) */
-struct icmpv6msg_mib_device {
- atomic_long_t mibs[ICMP6MSG_MIB_MAX];
-};
-
-
-/* TCP */
-#define TCP_MIB_MAX __TCP_MIB_MAX
-struct tcp_mib {
- unsigned long mibs[TCP_MIB_MAX];
-};
-
-/* UDP */
-#define UDP_MIB_MAX __UDP_MIB_MAX
-struct udp_mib {
- unsigned long mibs[UDP_MIB_MAX];
-};
-
-/* Linux */
-#define LINUX_MIB_MAX __LINUX_MIB_MAX
-struct linux_mib {
- unsigned long mibs[LINUX_MIB_MAX];
-};
-
-/* Linux Xfrm */
-#define LINUX_MIB_XFRMMAX __LINUX_MIB_XFRMMAX
-struct linux_xfrm_mib {
- unsigned long mibs[LINUX_MIB_XFRMMAX];
-};
-
-#define SNMP_ARRAY_SZ 1
-
-#define DEFINE_SNMP_STAT(type, name) \
- __typeof__(type) __percpu *name[SNMP_ARRAY_SZ]
-#define DEFINE_SNMP_STAT_ATOMIC(type, name) \
- __typeof__(type) *name
-#define DECLARE_SNMP_STAT(type, name) \
- extern __typeof__(type) __percpu *name[SNMP_ARRAY_SZ]
-
-#define SNMP_INC_STATS_BH(mib, field) \
- __this_cpu_inc(mib[0]->mibs[field])
-
-#define SNMP_INC_STATS_USER(mib, field) \
- this_cpu_inc(mib[0]->mibs[field])
-
-#define SNMP_INC_STATS_ATOMIC_LONG(mib, field) \
- atomic_long_inc(&mib->mibs[field])
-
-#define SNMP_INC_STATS(mib, field) \
- this_cpu_inc(mib[0]->mibs[field])
-
-#define SNMP_DEC_STATS(mib, field) \
- this_cpu_dec(mib[0]->mibs[field])
-
-#define SNMP_ADD_STATS_BH(mib, field, addend) \
- __this_cpu_add(mib[0]->mibs[field], addend)
-
-#define SNMP_ADD_STATS_USER(mib, field, addend) \
- this_cpu_add(mib[0]->mibs[field], addend)
-
-#define SNMP_ADD_STATS(mib, field, addend) \
- this_cpu_add(mib[0]->mibs[field], addend)
-/*
- * Use "__typeof__(*mib[0]) *ptr" instead of "__typeof__(mib[0]) ptr"
- * to make @ptr a non-percpu pointer.
- */
-#define SNMP_UPD_PO_STATS(mib, basefield, addend) \
- do { \
- this_cpu_inc(mib[0]->mibs[basefield##PKTS]); \
- this_cpu_add(mib[0]->mibs[basefield##OCTETS], addend); \
- } while (0)
-#define SNMP_UPD_PO_STATS_BH(mib, basefield, addend) \
- do { \
- __this_cpu_inc(mib[0]->mibs[basefield##PKTS]); \
- __this_cpu_add(mib[0]->mibs[basefield##OCTETS], addend); \
- } while (0)
-
-
-#if BITS_PER_LONG==32
-
-#define SNMP_ADD_STATS64_BH(mib, field, addend) \
- do { \
- __typeof__(*mib[0]) *ptr = __this_cpu_ptr((mib)[0]); \
- u64_stats_update_begin(&ptr->syncp); \
- ptr->mibs[field] += addend; \
- u64_stats_update_end(&ptr->syncp); \
- } while (0)
-
-#define SNMP_ADD_STATS64_USER(mib, field, addend) \
- do { \
- local_bh_disable(); \
- SNMP_ADD_STATS64_BH(mib, field, addend); \
- local_bh_enable(); \
- } while (0)
-
-#define SNMP_ADD_STATS64(mib, field, addend) \
- SNMP_ADD_STATS64_USER(mib, field, addend)
-
-#define SNMP_INC_STATS64_BH(mib, field) SNMP_ADD_STATS64_BH(mib, field, 1)
-#define SNMP_INC_STATS64_USER(mib, field) SNMP_ADD_STATS64_USER(mib, field, 1)
-#define SNMP_INC_STATS64(mib, field) SNMP_ADD_STATS64(mib, field, 1)
-#define SNMP_UPD_PO_STATS64_BH(mib, basefield, addend) \
- do { \
- __typeof__(*mib[0]) *ptr; \
- ptr = __this_cpu_ptr((mib)[0]); \
- u64_stats_update_begin(&ptr->syncp); \
- ptr->mibs[basefield##PKTS]++; \
- ptr->mibs[basefield##OCTETS] += addend; \
- u64_stats_update_end(&ptr->syncp); \
- } while (0)
-#define SNMP_UPD_PO_STATS64(mib, basefield, addend) \
- do { \
- local_bh_disable(); \
- SNMP_UPD_PO_STATS64_BH(mib, basefield, addend); \
- local_bh_enable(); \
- } while (0)
-#else
-#define SNMP_INC_STATS64_BH(mib, field) SNMP_INC_STATS_BH(mib, field)
-#define SNMP_INC_STATS64_USER(mib, field) SNMP_INC_STATS_USER(mib, field)
-#define SNMP_INC_STATS64(mib, field) SNMP_INC_STATS(mib, field)
-#define SNMP_DEC_STATS64(mib, field) SNMP_DEC_STATS(mib, field)
-#define SNMP_ADD_STATS64_BH(mib, field, addend) SNMP_ADD_STATS_BH(mib, field, addend)
-#define SNMP_ADD_STATS64_USER(mib, field, addend) SNMP_ADD_STATS_USER(mib, field, addend)
-#define SNMP_ADD_STATS64(mib, field, addend) SNMP_ADD_STATS(mib, field, addend)
-#define SNMP_UPD_PO_STATS64(mib, basefield, addend) SNMP_UPD_PO_STATS(mib, basefield, addend)
-#define SNMP_UPD_PO_STATS64_BH(mib, basefield, addend) SNMP_UPD_PO_STATS_BH(mib, basefield, addend)
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/sock.h b/ANDROID_3.4.5/include/net/sock.h
deleted file mode 100644
index 5a0a58ac..00000000
--- a/ANDROID_3.4.5/include/net/sock.h
+++ /dev/null
@@ -1,2157 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Definitions for the AF_INET socket handler.
- *
- * Version: @(#)sock.h 1.0.4 05/13/93
- *
- * Authors: Ross Biro
- * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
- * Corey Minyard <wf-rch!minyard@relay.EU.net>
- * Florian La Roche <flla@stud.uni-sb.de>
- *
- * Fixes:
- * Alan Cox : Volatiles in skbuff pointers. See
- * skbuff comments. May be overdone,
- * better to prove they can be removed
- * than the reverse.
- * Alan Cox : Added a zapped field for tcp to note
- * a socket is reset and must stay shut up
- * Alan Cox : New fields for options
- * Pauline Middelink : identd support
- * Alan Cox : Eliminate low level recv/recvfrom
- * David S. Miller : New socket lookup architecture.
- * Steve Whitehouse: Default routines for sock_ops
- * Arnaldo C. Melo : removed net_pinfo, tp_pinfo and made
- * protinfo be just a void pointer, as the
- * protocol specific parts were moved to
- * respective headers and ipv4/v6, etc now
- * use private slabcaches for its socks
- * Pedro Hortas : New flags field for socket options
- *
- *
- * 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 _SOCK_H
-#define _SOCK_H
-
-#include <linux/hardirq.h>
-#include <linux/kernel.h>
-#include <linux/list.h>
-#include <linux/list_nulls.h>
-#include <linux/timer.h>
-#include <linux/cache.h>
-#include <linux/lockdep.h>
-#include <linux/netdevice.h>
-#include <linux/skbuff.h> /* struct sk_buff */
-#include <linux/mm.h>
-#include <linux/security.h>
-#include <linux/slab.h>
-#include <linux/uaccess.h>
-#include <linux/memcontrol.h>
-#include <linux/res_counter.h>
-#include <linux/static_key.h>
-#include <linux/aio.h>
-#include <linux/sched.h>
-
-#include <linux/filter.h>
-#include <linux/rculist_nulls.h>
-#include <linux/poll.h>
-
-#include <linux/atomic.h>
-#include <net/dst.h>
-#include <net/checksum.h>
-
-struct cgroup;
-struct cgroup_subsys;
-#ifdef CONFIG_NET
-int mem_cgroup_sockets_init(struct cgroup *cgrp, struct cgroup_subsys *ss);
-void mem_cgroup_sockets_destroy(struct cgroup *cgrp);
-#else
-static inline
-int mem_cgroup_sockets_init(struct cgroup *cgrp, struct cgroup_subsys *ss)
-{
- return 0;
-}
-static inline
-void mem_cgroup_sockets_destroy(struct cgroup *cgrp)
-{
-}
-#endif
-/*
- * This structure really needs to be cleaned up.
- * Most of it is for TCP, and not used by any of
- * the other protocols.
- */
-
-/* Define this to get the SOCK_DBG debugging facility. */
-#define SOCK_DEBUGGING
-#ifdef SOCK_DEBUGGING
-#define SOCK_DEBUG(sk, msg...) do { if ((sk) && sock_flag((sk), SOCK_DBG)) \
- printk(KERN_DEBUG msg); } while (0)
-#else
-/* Validate arguments and do nothing */
-static inline __printf(2, 3)
-void SOCK_DEBUG(struct sock *sk, const char *msg, ...)
-{
-}
-#endif
-
-/* This is the per-socket lock. The spinlock provides a synchronization
- * between user contexts and software interrupt processing, whereas the
- * mini-semaphore synchronizes multiple users amongst themselves.
- */
-typedef struct {
- spinlock_t slock;
- int owned;
- wait_queue_head_t wq;
- /*
- * We express the mutex-alike socket_lock semantics
- * to the lock validator by explicitly managing
- * the slock as a lock variant (in addition to
- * the slock itself):
- */
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
- struct lockdep_map dep_map;
-#endif
-} socket_lock_t;
-
-struct sock;
-struct proto;
-struct net;
-
-/**
- * struct sock_common - minimal network layer representation of sockets
- * @skc_daddr: Foreign IPv4 addr
- * @skc_rcv_saddr: Bound local IPv4 addr
- * @skc_hash: hash value used with various protocol lookup tables
- * @skc_u16hashes: two u16 hash values used by UDP lookup tables
- * @skc_family: network address family
- * @skc_state: Connection state
- * @skc_reuse: %SO_REUSEADDR setting
- * @skc_bound_dev_if: bound device index if != 0
- * @skc_bind_node: bind hash linkage for various protocol lookup tables
- * @skc_portaddr_node: second hash linkage for UDP/UDP-Lite protocol
- * @skc_prot: protocol handlers inside a network family
- * @skc_net: reference to the network namespace of this socket
- * @skc_node: main hash linkage for various protocol lookup tables
- * @skc_nulls_node: main hash linkage for TCP/UDP/UDP-Lite protocol
- * @skc_tx_queue_mapping: tx queue number for this connection
- * @skc_refcnt: reference count
- *
- * This is the minimal network layer representation of sockets, the header
- * for struct sock and struct inet_timewait_sock.
- */
-struct sock_common {
- /* skc_daddr and skc_rcv_saddr must be grouped :
- * cf INET_MATCH() and INET_TW_MATCH()
- */
- __be32 skc_daddr;
- __be32 skc_rcv_saddr;
-
- union {
- unsigned int skc_hash;
- __u16 skc_u16hashes[2];
- };
- unsigned short skc_family;
- volatile unsigned char skc_state;
- unsigned char skc_reuse;
- int skc_bound_dev_if;
- union {
- struct hlist_node skc_bind_node;
- struct hlist_nulls_node skc_portaddr_node;
- };
- struct proto *skc_prot;
-#ifdef CONFIG_NET_NS
- struct net *skc_net;
-#endif
- /*
- * fields between dontcopy_begin/dontcopy_end
- * are not copied in sock_copy()
- */
- /* private: */
- int skc_dontcopy_begin[0];
- /* public: */
- union {
- struct hlist_node skc_node;
- struct hlist_nulls_node skc_nulls_node;
- };
- int skc_tx_queue_mapping;
- atomic_t skc_refcnt;
- /* private: */
- int skc_dontcopy_end[0];
- /* public: */
-};
-
-struct cg_proto;
-/**
- * struct sock - network layer representation of sockets
- * @__sk_common: shared layout with inet_timewait_sock
- * @sk_shutdown: mask of %SEND_SHUTDOWN and/or %RCV_SHUTDOWN
- * @sk_userlocks: %SO_SNDBUF and %SO_RCVBUF settings
- * @sk_lock: synchronizer
- * @sk_rcvbuf: size of receive buffer in bytes
- * @sk_wq: sock wait queue and async head
- * @sk_dst_cache: destination cache
- * @sk_dst_lock: destination cache lock
- * @sk_policy: flow policy
- * @sk_receive_queue: incoming packets
- * @sk_wmem_alloc: transmit queue bytes committed
- * @sk_write_queue: Packet sending queue
- * @sk_async_wait_queue: DMA copied packets
- * @sk_omem_alloc: "o" is "option" or "other"
- * @sk_wmem_queued: persistent queue size
- * @sk_forward_alloc: space allocated forward
- * @sk_allocation: allocation mode
- * @sk_sndbuf: size of send buffer in bytes
- * @sk_flags: %SO_LINGER (l_onoff), %SO_BROADCAST, %SO_KEEPALIVE,
- * %SO_OOBINLINE settings, %SO_TIMESTAMPING settings
- * @sk_no_check: %SO_NO_CHECK setting, wether or not checkup packets
- * @sk_route_caps: route capabilities (e.g. %NETIF_F_TSO)
- * @sk_route_nocaps: forbidden route capabilities (e.g NETIF_F_GSO_MASK)
- * @sk_gso_type: GSO type (e.g. %SKB_GSO_TCPV4)
- * @sk_gso_max_size: Maximum GSO segment size to build
- * @sk_lingertime: %SO_LINGER l_linger setting
- * @sk_backlog: always used with the per-socket spinlock held
- * @sk_callback_lock: used with the callbacks in the end of this struct
- * @sk_error_queue: rarely used
- * @sk_prot_creator: sk_prot of original sock creator (see ipv6_setsockopt,
- * IPV6_ADDRFORM for instance)
- * @sk_err: last error
- * @sk_err_soft: errors that don't cause failure but are the cause of a
- * persistent failure not just 'timed out'
- * @sk_drops: raw/udp drops counter
- * @sk_ack_backlog: current listen backlog
- * @sk_max_ack_backlog: listen backlog set in listen()
- * @sk_priority: %SO_PRIORITY setting
- * @sk_cgrp_prioidx: socket group's priority map index
- * @sk_type: socket type (%SOCK_STREAM, etc)
- * @sk_protocol: which protocol this socket belongs in this network family
- * @sk_peer_pid: &struct pid for this socket's peer
- * @sk_peer_cred: %SO_PEERCRED setting
- * @sk_rcvlowat: %SO_RCVLOWAT setting
- * @sk_rcvtimeo: %SO_RCVTIMEO setting
- * @sk_sndtimeo: %SO_SNDTIMEO setting
- * @sk_rxhash: flow hash received from netif layer
- * @sk_filter: socket filtering instructions
- * @sk_protinfo: private area, net family specific, when not using slab
- * @sk_timer: sock cleanup timer
- * @sk_stamp: time stamp of last packet received
- * @sk_socket: Identd and reporting IO signals
- * @sk_user_data: RPC layer private data
- * @sk_sndmsg_page: cached page for sendmsg
- * @sk_sndmsg_off: cached offset for sendmsg
- * @sk_peek_off: current peek_offset value
- * @sk_send_head: front of stuff to transmit
- * @sk_security: used by security modules
- * @sk_mark: generic packet mark
- * @sk_classid: this socket's cgroup classid
- * @sk_cgrp: this socket's cgroup-specific proto data
- * @sk_write_pending: a write to stream socket waits to start
- * @sk_state_change: callback to indicate change in the state of the sock
- * @sk_data_ready: callback to indicate there is data to be processed
- * @sk_write_space: callback to indicate there is bf sending space available
- * @sk_error_report: callback to indicate errors (e.g. %MSG_ERRQUEUE)
- * @sk_backlog_rcv: callback to process the backlog
- * @sk_destruct: called at sock freeing time, i.e. when all refcnt == 0
- */
-struct sock {
- /*
- * Now struct inet_timewait_sock also uses sock_common, so please just
- * don't add nothing before this first member (__sk_common) --acme
- */
- struct sock_common __sk_common;
-#define sk_node __sk_common.skc_node
-#define sk_nulls_node __sk_common.skc_nulls_node
-#define sk_refcnt __sk_common.skc_refcnt
-#define sk_tx_queue_mapping __sk_common.skc_tx_queue_mapping
-
-#define sk_dontcopy_begin __sk_common.skc_dontcopy_begin
-#define sk_dontcopy_end __sk_common.skc_dontcopy_end
-#define sk_hash __sk_common.skc_hash
-#define sk_family __sk_common.skc_family
-#define sk_state __sk_common.skc_state
-#define sk_reuse __sk_common.skc_reuse
-#define sk_bound_dev_if __sk_common.skc_bound_dev_if
-#define sk_bind_node __sk_common.skc_bind_node
-#define sk_prot __sk_common.skc_prot
-#define sk_net __sk_common.skc_net
- socket_lock_t sk_lock;
- struct sk_buff_head sk_receive_queue;
- /*
- * The backlog queue is special, it is always used with
- * the per-socket spinlock held and requires low latency
- * access. Therefore we special case it's implementation.
- * Note : rmem_alloc is in this structure to fill a hole
- * on 64bit arches, not because its logically part of
- * backlog.
- */
- struct {
- atomic_t rmem_alloc;
- int len;
- struct sk_buff *head;
- struct sk_buff *tail;
- } sk_backlog;
-#define sk_rmem_alloc sk_backlog.rmem_alloc
- int sk_forward_alloc;
-#ifdef CONFIG_RPS
- __u32 sk_rxhash;
-#endif
- atomic_t sk_drops;
- int sk_rcvbuf;
-
- struct sk_filter __rcu *sk_filter;
- struct socket_wq __rcu *sk_wq;
-
-#ifdef CONFIG_NET_DMA
- struct sk_buff_head sk_async_wait_queue;
-#endif
-
-#ifdef CONFIG_XFRM
- struct xfrm_policy *sk_policy[2];
-#endif
- unsigned long sk_flags;
- struct dst_entry *sk_dst_cache;
- spinlock_t sk_dst_lock;
- atomic_t sk_wmem_alloc;
- atomic_t sk_omem_alloc;
- int sk_sndbuf;
- struct sk_buff_head sk_write_queue;
- kmemcheck_bitfield_begin(flags);
- unsigned int sk_shutdown : 2,
- sk_no_check : 2,
- sk_userlocks : 4,
- sk_protocol : 8,
- sk_type : 16;
- kmemcheck_bitfield_end(flags);
- int sk_wmem_queued;
- gfp_t sk_allocation;
- netdev_features_t sk_route_caps;
- netdev_features_t sk_route_nocaps;
- int sk_gso_type;
- unsigned int sk_gso_max_size;
- int sk_rcvlowat;
- unsigned long sk_lingertime;
- struct sk_buff_head sk_error_queue;
- struct proto *sk_prot_creator;
- rwlock_t sk_callback_lock;
- int sk_err,
- sk_err_soft;
- unsigned short sk_ack_backlog;
- unsigned short sk_max_ack_backlog;
- __u32 sk_priority;
-#ifdef CONFIG_CGROUPS
- __u32 sk_cgrp_prioidx;
-#endif
- struct pid *sk_peer_pid;
- const struct cred *sk_peer_cred;
- long sk_rcvtimeo;
- long sk_sndtimeo;
- void *sk_protinfo;
- struct timer_list sk_timer;
- ktime_t sk_stamp;
- struct socket *sk_socket;
- void *sk_user_data;
- struct page *sk_sndmsg_page;
- struct sk_buff *sk_send_head;
- __u32 sk_sndmsg_off;
- __s32 sk_peek_off;
- int sk_write_pending;
-#ifdef CONFIG_SECURITY
- void *sk_security;
-#endif
- __u32 sk_mark;
- u32 sk_classid;
- struct cg_proto *sk_cgrp;
- void (*sk_state_change)(struct sock *sk);
- void (*sk_data_ready)(struct sock *sk, int bytes);
- void (*sk_write_space)(struct sock *sk);
- void (*sk_error_report)(struct sock *sk);
- int (*sk_backlog_rcv)(struct sock *sk,
- struct sk_buff *skb);
- void (*sk_destruct)(struct sock *sk);
-};
-
-static inline int sk_peek_offset(struct sock *sk, int flags)
-{
- if ((flags & MSG_PEEK) && (sk->sk_peek_off >= 0))
- return sk->sk_peek_off;
- else
- return 0;
-}
-
-static inline void sk_peek_offset_bwd(struct sock *sk, int val)
-{
- if (sk->sk_peek_off >= 0) {
- if (sk->sk_peek_off >= val)
- sk->sk_peek_off -= val;
- else
- sk->sk_peek_off = 0;
- }
-}
-
-static inline void sk_peek_offset_fwd(struct sock *sk, int val)
-{
- if (sk->sk_peek_off >= 0)
- sk->sk_peek_off += val;
-}
-
-/*
- * Hashed lists helper routines
- */
-static inline struct sock *sk_entry(const struct hlist_node *node)
-{
- return hlist_entry(node, struct sock, sk_node);
-}
-
-static inline struct sock *__sk_head(const struct hlist_head *head)
-{
- return hlist_entry(head->first, struct sock, sk_node);
-}
-
-static inline struct sock *sk_head(const struct hlist_head *head)
-{
- return hlist_empty(head) ? NULL : __sk_head(head);
-}
-
-static inline struct sock *__sk_nulls_head(const struct hlist_nulls_head *head)
-{
- return hlist_nulls_entry(head->first, struct sock, sk_nulls_node);
-}
-
-static inline struct sock *sk_nulls_head(const struct hlist_nulls_head *head)
-{
- return hlist_nulls_empty(head) ? NULL : __sk_nulls_head(head);
-}
-
-static inline struct sock *sk_next(const struct sock *sk)
-{
- return sk->sk_node.next ?
- hlist_entry(sk->sk_node.next, struct sock, sk_node) : NULL;
-}
-
-static inline struct sock *sk_nulls_next(const struct sock *sk)
-{
- return (!is_a_nulls(sk->sk_nulls_node.next)) ?
- hlist_nulls_entry(sk->sk_nulls_node.next,
- struct sock, sk_nulls_node) :
- NULL;
-}
-
-static inline int sk_unhashed(const struct sock *sk)
-{
- return hlist_unhashed(&sk->sk_node);
-}
-
-static inline int sk_hashed(const struct sock *sk)
-{
- return !sk_unhashed(sk);
-}
-
-static __inline__ void sk_node_init(struct hlist_node *node)
-{
- node->pprev = NULL;
-}
-
-static __inline__ void sk_nulls_node_init(struct hlist_nulls_node *node)
-{
- node->pprev = NULL;
-}
-
-static __inline__ void __sk_del_node(struct sock *sk)
-{
- __hlist_del(&sk->sk_node);
-}
-
-/* NB: equivalent to hlist_del_init_rcu */
-static __inline__ int __sk_del_node_init(struct sock *sk)
-{
- if (sk_hashed(sk)) {
- __sk_del_node(sk);
- sk_node_init(&sk->sk_node);
- return 1;
- }
- return 0;
-}
-
-/* Grab socket reference count. This operation is valid only
- when sk is ALREADY grabbed f.e. it is found in hash table
- or a list and the lookup is made under lock preventing hash table
- modifications.
- */
-
-static inline void sock_hold(struct sock *sk)
-{
- atomic_inc(&sk->sk_refcnt);
-}
-
-/* Ungrab socket in the context, which assumes that socket refcnt
- cannot hit zero, f.e. it is true in context of any socketcall.
- */
-static inline void __sock_put(struct sock *sk)
-{
- atomic_dec(&sk->sk_refcnt);
-}
-
-static __inline__ int sk_del_node_init(struct sock *sk)
-{
- int rc = __sk_del_node_init(sk);
-
- if (rc) {
- /* paranoid for a while -acme */
- WARN_ON(atomic_read(&sk->sk_refcnt) == 1);
- __sock_put(sk);
- }
- return rc;
-}
-#define sk_del_node_init_rcu(sk) sk_del_node_init(sk)
-
-static __inline__ int __sk_nulls_del_node_init_rcu(struct sock *sk)
-{
- if (sk_hashed(sk)) {
- hlist_nulls_del_init_rcu(&sk->sk_nulls_node);
- return 1;
- }
- return 0;
-}
-
-static __inline__ int sk_nulls_del_node_init_rcu(struct sock *sk)
-{
- int rc = __sk_nulls_del_node_init_rcu(sk);
-
- if (rc) {
- /* paranoid for a while -acme */
- WARN_ON(atomic_read(&sk->sk_refcnt) == 1);
- __sock_put(sk);
- }
- return rc;
-}
-
-static __inline__ void __sk_add_node(struct sock *sk, struct hlist_head *list)
-{
- hlist_add_head(&sk->sk_node, list);
-}
-
-static __inline__ void sk_add_node(struct sock *sk, struct hlist_head *list)
-{
- sock_hold(sk);
- __sk_add_node(sk, list);
-}
-
-static __inline__ void sk_add_node_rcu(struct sock *sk, struct hlist_head *list)
-{
- sock_hold(sk);
- hlist_add_head_rcu(&sk->sk_node, list);
-}
-
-static __inline__ void __sk_nulls_add_node_rcu(struct sock *sk, struct hlist_nulls_head *list)
-{
- hlist_nulls_add_head_rcu(&sk->sk_nulls_node, list);
-}
-
-static __inline__ void sk_nulls_add_node_rcu(struct sock *sk, struct hlist_nulls_head *list)
-{
- sock_hold(sk);
- __sk_nulls_add_node_rcu(sk, list);
-}
-
-static __inline__ void __sk_del_bind_node(struct sock *sk)
-{
- __hlist_del(&sk->sk_bind_node);
-}
-
-static __inline__ void sk_add_bind_node(struct sock *sk,
- struct hlist_head *list)
-{
- hlist_add_head(&sk->sk_bind_node, list);
-}
-
-#define sk_for_each(__sk, node, list) \
- hlist_for_each_entry(__sk, node, list, sk_node)
-#define sk_for_each_rcu(__sk, node, list) \
- hlist_for_each_entry_rcu(__sk, node, list, sk_node)
-#define sk_nulls_for_each(__sk, node, list) \
- hlist_nulls_for_each_entry(__sk, node, list, sk_nulls_node)
-#define sk_nulls_for_each_rcu(__sk, node, list) \
- hlist_nulls_for_each_entry_rcu(__sk, node, list, sk_nulls_node)
-#define sk_for_each_from(__sk, node) \
- if (__sk && ({ node = &(__sk)->sk_node; 1; })) \
- hlist_for_each_entry_from(__sk, node, sk_node)
-#define sk_nulls_for_each_from(__sk, node) \
- if (__sk && ({ node = &(__sk)->sk_nulls_node; 1; })) \
- hlist_nulls_for_each_entry_from(__sk, node, sk_nulls_node)
-#define sk_for_each_safe(__sk, node, tmp, list) \
- hlist_for_each_entry_safe(__sk, node, tmp, list, sk_node)
-#define sk_for_each_bound(__sk, node, list) \
- hlist_for_each_entry(__sk, node, list, sk_bind_node)
-
-/* Sock flags */
-enum sock_flags {
- SOCK_DEAD,
- SOCK_DONE,
- SOCK_URGINLINE,
- SOCK_KEEPOPEN,
- SOCK_LINGER,
- SOCK_DESTROY,
- SOCK_BROADCAST,
- SOCK_TIMESTAMP,
- SOCK_ZAPPED,
- SOCK_USE_WRITE_QUEUE, /* whether to call sk->sk_write_space in sock_wfree */
- SOCK_DBG, /* %SO_DEBUG setting */
- SOCK_RCVTSTAMP, /* %SO_TIMESTAMP setting */
- SOCK_RCVTSTAMPNS, /* %SO_TIMESTAMPNS setting */
- SOCK_LOCALROUTE, /* route locally only, %SO_DONTROUTE setting */
- SOCK_QUEUE_SHRUNK, /* write queue has been shrunk recently */
- SOCK_TIMESTAMPING_TX_HARDWARE, /* %SOF_TIMESTAMPING_TX_HARDWARE */
- SOCK_TIMESTAMPING_TX_SOFTWARE, /* %SOF_TIMESTAMPING_TX_SOFTWARE */
- SOCK_TIMESTAMPING_RX_HARDWARE, /* %SOF_TIMESTAMPING_RX_HARDWARE */
- SOCK_TIMESTAMPING_RX_SOFTWARE, /* %SOF_TIMESTAMPING_RX_SOFTWARE */
- SOCK_TIMESTAMPING_SOFTWARE, /* %SOF_TIMESTAMPING_SOFTWARE */
- SOCK_TIMESTAMPING_RAW_HARDWARE, /* %SOF_TIMESTAMPING_RAW_HARDWARE */
- SOCK_TIMESTAMPING_SYS_HARDWARE, /* %SOF_TIMESTAMPING_SYS_HARDWARE */
- SOCK_FASYNC, /* fasync() active */
- SOCK_RXQ_OVFL,
- SOCK_ZEROCOPY, /* buffers from userspace */
- SOCK_WIFI_STATUS, /* push wifi status to userspace */
- SOCK_NOFCS, /* Tell NIC not to do the Ethernet FCS.
- * Will use last 4 bytes of packet sent from
- * user-space instead.
- */
-};
-
-static inline void sock_copy_flags(struct sock *nsk, struct sock *osk)
-{
- nsk->sk_flags = osk->sk_flags;
-}
-
-static inline void sock_set_flag(struct sock *sk, enum sock_flags flag)
-{
- __set_bit(flag, &sk->sk_flags);
-}
-
-static inline void sock_reset_flag(struct sock *sk, enum sock_flags flag)
-{
- __clear_bit(flag, &sk->sk_flags);
-}
-
-static inline int sock_flag(struct sock *sk, enum sock_flags flag)
-{
- return test_bit(flag, &sk->sk_flags);
-}
-
-static inline void sk_acceptq_removed(struct sock *sk)
-{
- sk->sk_ack_backlog--;
-}
-
-static inline void sk_acceptq_added(struct sock *sk)
-{
- sk->sk_ack_backlog++;
-}
-
-static inline int sk_acceptq_is_full(struct sock *sk)
-{
- return sk->sk_ack_backlog > sk->sk_max_ack_backlog;
-}
-
-/*
- * Compute minimal free write space needed to queue new packets.
- */
-static inline int sk_stream_min_wspace(struct sock *sk)
-{
- return sk->sk_wmem_queued >> 1;
-}
-
-static inline int sk_stream_wspace(struct sock *sk)
-{
- return sk->sk_sndbuf - sk->sk_wmem_queued;
-}
-
-extern void sk_stream_write_space(struct sock *sk);
-
-static inline int sk_stream_memory_free(struct sock *sk)
-{
- return sk->sk_wmem_queued < sk->sk_sndbuf;
-}
-
-/* OOB backlog add */
-static inline void __sk_add_backlog(struct sock *sk, struct sk_buff *skb)
-{
- /* dont let skb dst not refcounted, we are going to leave rcu lock */
- skb_dst_force(skb);
-
- if (!sk->sk_backlog.tail)
- sk->sk_backlog.head = skb;
- else
- sk->sk_backlog.tail->next = skb;
-
- sk->sk_backlog.tail = skb;
- skb->next = NULL;
-}
-
-/*
- * Take into account size of receive queue and backlog queue
- * Do not take into account this skb truesize,
- * to allow even a single big packet to come.
- */
-static inline bool sk_rcvqueues_full(const struct sock *sk, const struct sk_buff *skb)
-{
- unsigned int qsize = sk->sk_backlog.len + atomic_read(&sk->sk_rmem_alloc);
-
- return qsize > sk->sk_rcvbuf;
-}
-
-/* The per-socket spinlock must be held here. */
-static inline __must_check int sk_add_backlog(struct sock *sk, struct sk_buff *skb)
-{
- if (sk_rcvqueues_full(sk, skb))
- return -ENOBUFS;
-
- __sk_add_backlog(sk, skb);
- sk->sk_backlog.len += skb->truesize;
- return 0;
-}
-
-static inline int sk_backlog_rcv(struct sock *sk, struct sk_buff *skb)
-{
- return sk->sk_backlog_rcv(sk, skb);
-}
-
-static inline void sock_rps_record_flow(const struct sock *sk)
-{
-#ifdef CONFIG_RPS
- struct rps_sock_flow_table *sock_flow_table;
-
- rcu_read_lock();
- sock_flow_table = rcu_dereference(rps_sock_flow_table);
- rps_record_sock_flow(sock_flow_table, sk->sk_rxhash);
- rcu_read_unlock();
-#endif
-}
-
-static inline void sock_rps_reset_flow(const struct sock *sk)
-{
-#ifdef CONFIG_RPS
- struct rps_sock_flow_table *sock_flow_table;
-
- rcu_read_lock();
- sock_flow_table = rcu_dereference(rps_sock_flow_table);
- rps_reset_sock_flow(sock_flow_table, sk->sk_rxhash);
- rcu_read_unlock();
-#endif
-}
-
-static inline void sock_rps_save_rxhash(struct sock *sk,
- const struct sk_buff *skb)
-{
-#ifdef CONFIG_RPS
- if (unlikely(sk->sk_rxhash != skb->rxhash)) {
- sock_rps_reset_flow(sk);
- sk->sk_rxhash = skb->rxhash;
- }
-#endif
-}
-
-static inline void sock_rps_reset_rxhash(struct sock *sk)
-{
-#ifdef CONFIG_RPS
- sock_rps_reset_flow(sk);
- sk->sk_rxhash = 0;
-#endif
-}
-
-#define sk_wait_event(__sk, __timeo, __condition) \
- ({ int __rc; \
- release_sock(__sk); \
- __rc = __condition; \
- if (!__rc) { \
- *(__timeo) = schedule_timeout(*(__timeo)); \
- } \
- lock_sock(__sk); \
- __rc = __condition; \
- __rc; \
- })
-
-extern int sk_stream_wait_connect(struct sock *sk, long *timeo_p);
-extern int sk_stream_wait_memory(struct sock *sk, long *timeo_p);
-extern void sk_stream_wait_close(struct sock *sk, long timeo_p);
-extern int sk_stream_error(struct sock *sk, int flags, int err);
-extern void sk_stream_kill_queues(struct sock *sk);
-
-extern int sk_wait_data(struct sock *sk, long *timeo);
-
-struct request_sock_ops;
-struct timewait_sock_ops;
-struct inet_hashinfo;
-struct raw_hashinfo;
-struct module;
-
-/* Networking protocol blocks we attach to sockets.
- * socket layer -> transport layer interface
- * transport -> network interface is defined by struct inet_proto
- */
-struct proto {
- void (*close)(struct sock *sk,
- long timeout);
- int (*connect)(struct sock *sk,
- struct sockaddr *uaddr,
- int addr_len);
- int (*disconnect)(struct sock *sk, int flags);
-
- struct sock * (*accept) (struct sock *sk, int flags, int *err);
-
- int (*ioctl)(struct sock *sk, int cmd,
- unsigned long arg);
- int (*init)(struct sock *sk);
- void (*destroy)(struct sock *sk);
- void (*shutdown)(struct sock *sk, int how);
- int (*setsockopt)(struct sock *sk, int level,
- int optname, char __user *optval,
- unsigned int optlen);
- int (*getsockopt)(struct sock *sk, int level,
- int optname, char __user *optval,
- int __user *option);
-#ifdef CONFIG_COMPAT
- int (*compat_setsockopt)(struct sock *sk,
- int level,
- int optname, char __user *optval,
- unsigned int optlen);
- int (*compat_getsockopt)(struct sock *sk,
- int level,
- int optname, char __user *optval,
- int __user *option);
- int (*compat_ioctl)(struct sock *sk,
- unsigned int cmd, unsigned long arg);
-#endif
- int (*sendmsg)(struct kiocb *iocb, struct sock *sk,
- struct msghdr *msg, size_t len);
- int (*recvmsg)(struct kiocb *iocb, struct sock *sk,
- struct msghdr *msg,
- size_t len, int noblock, int flags,
- int *addr_len);
- int (*sendpage)(struct sock *sk, struct page *page,
- int offset, size_t size, int flags);
- int (*bind)(struct sock *sk,
- struct sockaddr *uaddr, int addr_len);
-
- int (*backlog_rcv) (struct sock *sk,
- struct sk_buff *skb);
-
- /* Keeping track of sk's, looking them up, and port selection methods. */
- void (*hash)(struct sock *sk);
- void (*unhash)(struct sock *sk);
- void (*rehash)(struct sock *sk);
- int (*get_port)(struct sock *sk, unsigned short snum);
- void (*clear_sk)(struct sock *sk, int size);
-
- /* Keeping track of sockets in use */
-#ifdef CONFIG_PROC_FS
- unsigned int inuse_idx;
-#endif
-
- /* Memory pressure */
- void (*enter_memory_pressure)(struct sock *sk);
- atomic_long_t *memory_allocated; /* Current allocated memory. */
- struct percpu_counter *sockets_allocated; /* Current number of sockets. */
- /*
- * Pressure flag: try to collapse.
- * Technical note: it is used by multiple contexts non atomically.
- * All the __sk_mem_schedule() is of this nature: accounting
- * is strict, actions are advisory and have some latency.
- */
- int *memory_pressure;
- long *sysctl_mem;
- int *sysctl_wmem;
- int *sysctl_rmem;
- int max_header;
- bool no_autobind;
-
- struct kmem_cache *slab;
- unsigned int obj_size;
- int slab_flags;
-
- struct percpu_counter *orphan_count;
-
- struct request_sock_ops *rsk_prot;
- struct timewait_sock_ops *twsk_prot;
-
- union {
- struct inet_hashinfo *hashinfo;
- struct udp_table *udp_table;
- struct raw_hashinfo *raw_hash;
- } h;
-
- struct module *owner;
-
- char name[32];
-
- struct list_head node;
-#ifdef SOCK_REFCNT_DEBUG
- atomic_t socks;
-#endif
-#ifdef CONFIG_CGROUP_MEM_RES_CTLR_KMEM
- /*
- * cgroup specific init/deinit functions. Called once for all
- * protocols that implement it, from cgroups populate function.
- * This function has to setup any files the protocol want to
- * appear in the kmem cgroup filesystem.
- */
- int (*init_cgroup)(struct cgroup *cgrp,
- struct cgroup_subsys *ss);
- void (*destroy_cgroup)(struct cgroup *cgrp);
- struct cg_proto *(*proto_cgroup)(struct mem_cgroup *memcg);
-#endif
-};
-
-struct cg_proto {
- void (*enter_memory_pressure)(struct sock *sk);
- struct res_counter *memory_allocated; /* Current allocated memory. */
- struct percpu_counter *sockets_allocated; /* Current number of sockets. */
- int *memory_pressure;
- long *sysctl_mem;
- /*
- * memcg field is used to find which memcg we belong directly
- * Each memcg struct can hold more than one cg_proto, so container_of
- * won't really cut.
- *
- * The elegant solution would be having an inverse function to
- * proto_cgroup in struct proto, but that means polluting the structure
- * for everybody, instead of just for memcg users.
- */
- struct mem_cgroup *memcg;
-};
-
-extern int proto_register(struct proto *prot, int alloc_slab);
-extern void proto_unregister(struct proto *prot);
-
-#ifdef SOCK_REFCNT_DEBUG
-static inline void sk_refcnt_debug_inc(struct sock *sk)
-{
- atomic_inc(&sk->sk_prot->socks);
-}
-
-static inline void sk_refcnt_debug_dec(struct sock *sk)
-{
- atomic_dec(&sk->sk_prot->socks);
- printk(KERN_DEBUG "%s socket %p released, %d are still alive\n",
- sk->sk_prot->name, sk, atomic_read(&sk->sk_prot->socks));
-}
-
-inline void sk_refcnt_debug_release(const struct sock *sk)
-{
- if (atomic_read(&sk->sk_refcnt) != 1)
- printk(KERN_DEBUG "Destruction of the %s socket %p delayed, refcnt=%d\n",
- sk->sk_prot->name, sk, atomic_read(&sk->sk_refcnt));
-}
-#else /* SOCK_REFCNT_DEBUG */
-#define sk_refcnt_debug_inc(sk) do { } while (0)
-#define sk_refcnt_debug_dec(sk) do { } while (0)
-#define sk_refcnt_debug_release(sk) do { } while (0)
-#endif /* SOCK_REFCNT_DEBUG */
-
-#if defined(CONFIG_CGROUP_MEM_RES_CTLR_KMEM) && defined(CONFIG_NET)
-extern struct static_key memcg_socket_limit_enabled;
-static inline struct cg_proto *parent_cg_proto(struct proto *proto,
- struct cg_proto *cg_proto)
-{
- return proto->proto_cgroup(parent_mem_cgroup(cg_proto->memcg));
-}
-#define mem_cgroup_sockets_enabled static_key_false(&memcg_socket_limit_enabled)
-#else
-#define mem_cgroup_sockets_enabled 0
-static inline struct cg_proto *parent_cg_proto(struct proto *proto,
- struct cg_proto *cg_proto)
-{
- return NULL;
-}
-#endif
-
-
-static inline bool sk_has_memory_pressure(const struct sock *sk)
-{
- return sk->sk_prot->memory_pressure != NULL;
-}
-
-static inline bool sk_under_memory_pressure(const struct sock *sk)
-{
- if (!sk->sk_prot->memory_pressure)
- return false;
-
- if (mem_cgroup_sockets_enabled && sk->sk_cgrp)
- return !!*sk->sk_cgrp->memory_pressure;
-
- return !!*sk->sk_prot->memory_pressure;
-}
-
-static inline void sk_leave_memory_pressure(struct sock *sk)
-{
- int *memory_pressure = sk->sk_prot->memory_pressure;
-
- if (!memory_pressure)
- return;
-
- if (*memory_pressure)
- *memory_pressure = 0;
-
- if (mem_cgroup_sockets_enabled && sk->sk_cgrp) {
- struct cg_proto *cg_proto = sk->sk_cgrp;
- struct proto *prot = sk->sk_prot;
-
- for (; cg_proto; cg_proto = parent_cg_proto(prot, cg_proto))
- if (*cg_proto->memory_pressure)
- *cg_proto->memory_pressure = 0;
- }
-
-}
-
-static inline void sk_enter_memory_pressure(struct sock *sk)
-{
- if (!sk->sk_prot->enter_memory_pressure)
- return;
-
- if (mem_cgroup_sockets_enabled && sk->sk_cgrp) {
- struct cg_proto *cg_proto = sk->sk_cgrp;
- struct proto *prot = sk->sk_prot;
-
- for (; cg_proto; cg_proto = parent_cg_proto(prot, cg_proto))
- cg_proto->enter_memory_pressure(sk);
- }
-
- sk->sk_prot->enter_memory_pressure(sk);
-}
-
-static inline long sk_prot_mem_limits(const struct sock *sk, int index)
-{
- long *prot = sk->sk_prot->sysctl_mem;
- if (mem_cgroup_sockets_enabled && sk->sk_cgrp)
- prot = sk->sk_cgrp->sysctl_mem;
- return prot[index];
-}
-
-static inline void memcg_memory_allocated_add(struct cg_proto *prot,
- unsigned long amt,
- int *parent_status)
-{
- struct res_counter *fail;
- int ret;
-
- ret = res_counter_charge_nofail(prot->memory_allocated,
- amt << PAGE_SHIFT, &fail);
- if (ret < 0)
- *parent_status = OVER_LIMIT;
-}
-
-static inline void memcg_memory_allocated_sub(struct cg_proto *prot,
- unsigned long amt)
-{
- res_counter_uncharge(prot->memory_allocated, amt << PAGE_SHIFT);
-}
-
-static inline u64 memcg_memory_allocated_read(struct cg_proto *prot)
-{
- u64 ret;
- ret = res_counter_read_u64(prot->memory_allocated, RES_USAGE);
- return ret >> PAGE_SHIFT;
-}
-
-static inline long
-sk_memory_allocated(const struct sock *sk)
-{
- struct proto *prot = sk->sk_prot;
- if (mem_cgroup_sockets_enabled && sk->sk_cgrp)
- return memcg_memory_allocated_read(sk->sk_cgrp);
-
- return atomic_long_read(prot->memory_allocated);
-}
-
-static inline long
-sk_memory_allocated_add(struct sock *sk, int amt, int *parent_status)
-{
- struct proto *prot = sk->sk_prot;
-
- if (mem_cgroup_sockets_enabled && sk->sk_cgrp) {
- memcg_memory_allocated_add(sk->sk_cgrp, amt, parent_status);
- /* update the root cgroup regardless */
- atomic_long_add_return(amt, prot->memory_allocated);
- return memcg_memory_allocated_read(sk->sk_cgrp);
- }
-
- return atomic_long_add_return(amt, prot->memory_allocated);
-}
-
-static inline void
-sk_memory_allocated_sub(struct sock *sk, int amt)
-{
- struct proto *prot = sk->sk_prot;
-
- if (mem_cgroup_sockets_enabled && sk->sk_cgrp)
- memcg_memory_allocated_sub(sk->sk_cgrp, amt);
-
- atomic_long_sub(amt, prot->memory_allocated);
-}
-
-static inline void sk_sockets_allocated_dec(struct sock *sk)
-{
- struct proto *prot = sk->sk_prot;
-
- if (mem_cgroup_sockets_enabled && sk->sk_cgrp) {
- struct cg_proto *cg_proto = sk->sk_cgrp;
-
- for (; cg_proto; cg_proto = parent_cg_proto(prot, cg_proto))
- percpu_counter_dec(cg_proto->sockets_allocated);
- }
-
- percpu_counter_dec(prot->sockets_allocated);
-}
-
-static inline void sk_sockets_allocated_inc(struct sock *sk)
-{
- struct proto *prot = sk->sk_prot;
-
- if (mem_cgroup_sockets_enabled && sk->sk_cgrp) {
- struct cg_proto *cg_proto = sk->sk_cgrp;
-
- for (; cg_proto; cg_proto = parent_cg_proto(prot, cg_proto))
- percpu_counter_inc(cg_proto->sockets_allocated);
- }
-
- percpu_counter_inc(prot->sockets_allocated);
-}
-
-static inline int
-sk_sockets_allocated_read_positive(struct sock *sk)
-{
- struct proto *prot = sk->sk_prot;
-
- if (mem_cgroup_sockets_enabled && sk->sk_cgrp)
- return percpu_counter_read_positive(sk->sk_cgrp->sockets_allocated);
-
- return percpu_counter_read_positive(prot->sockets_allocated);
-}
-
-static inline int
-proto_sockets_allocated_sum_positive(struct proto *prot)
-{
- return percpu_counter_sum_positive(prot->sockets_allocated);
-}
-
-static inline long
-proto_memory_allocated(struct proto *prot)
-{
- return atomic_long_read(prot->memory_allocated);
-}
-
-static inline bool
-proto_memory_pressure(struct proto *prot)
-{
- if (!prot->memory_pressure)
- return false;
- return !!*prot->memory_pressure;
-}
-
-
-#ifdef CONFIG_PROC_FS
-/* Called with local bh disabled */
-extern void sock_prot_inuse_add(struct net *net, struct proto *prot, int inc);
-extern int sock_prot_inuse_get(struct net *net, struct proto *proto);
-#else
-static void inline sock_prot_inuse_add(struct net *net, struct proto *prot,
- int inc)
-{
-}
-#endif
-
-
-/* With per-bucket locks this operation is not-atomic, so that
- * this version is not worse.
- */
-static inline void __sk_prot_rehash(struct sock *sk)
-{
- sk->sk_prot->unhash(sk);
- sk->sk_prot->hash(sk);
-}
-
-void sk_prot_clear_portaddr_nulls(struct sock *sk, int size);
-
-/* About 10 seconds */
-#define SOCK_DESTROY_TIME (10*HZ)
-
-/* Sockets 0-1023 can't be bound to unless you are superuser */
-#define PROT_SOCK 1024
-
-#define SHUTDOWN_MASK 3
-#define RCV_SHUTDOWN 1
-#define SEND_SHUTDOWN 2
-
-#define SOCK_SNDBUF_LOCK 1
-#define SOCK_RCVBUF_LOCK 2
-#define SOCK_BINDADDR_LOCK 4
-#define SOCK_BINDPORT_LOCK 8
-
-/* sock_iocb: used to kick off async processing of socket ios */
-struct sock_iocb {
- struct list_head list;
-
- int flags;
- int size;
- struct socket *sock;
- struct sock *sk;
- struct scm_cookie *scm;
- struct msghdr *msg, async_msg;
- struct kiocb *kiocb;
-};
-
-static inline struct sock_iocb *kiocb_to_siocb(struct kiocb *iocb)
-{
- return (struct sock_iocb *)iocb->private;
-}
-
-static inline struct kiocb *siocb_to_kiocb(struct sock_iocb *si)
-{
- return si->kiocb;
-}
-
-struct socket_alloc {
- struct socket socket;
- struct inode vfs_inode;
-};
-
-static inline struct socket *SOCKET_I(struct inode *inode)
-{
- return &container_of(inode, struct socket_alloc, vfs_inode)->socket;
-}
-
-static inline struct inode *SOCK_INODE(struct socket *socket)
-{
- return &container_of(socket, struct socket_alloc, socket)->vfs_inode;
-}
-
-/*
- * Functions for memory accounting
- */
-extern int __sk_mem_schedule(struct sock *sk, int size, int kind);
-extern void __sk_mem_reclaim(struct sock *sk);
-
-#define SK_MEM_QUANTUM ((int)PAGE_SIZE)
-#define SK_MEM_QUANTUM_SHIFT ilog2(SK_MEM_QUANTUM)
-#define SK_MEM_SEND 0
-#define SK_MEM_RECV 1
-
-static inline int sk_mem_pages(int amt)
-{
- return (amt + SK_MEM_QUANTUM - 1) >> SK_MEM_QUANTUM_SHIFT;
-}
-
-static inline int sk_has_account(struct sock *sk)
-{
- /* return true if protocol supports memory accounting */
- return !!sk->sk_prot->memory_allocated;
-}
-
-static inline int sk_wmem_schedule(struct sock *sk, int size)
-{
- if (!sk_has_account(sk))
- return 1;
- return size <= sk->sk_forward_alloc ||
- __sk_mem_schedule(sk, size, SK_MEM_SEND);
-}
-
-static inline int sk_rmem_schedule(struct sock *sk, int size)
-{
- if (!sk_has_account(sk))
- return 1;
- return size <= sk->sk_forward_alloc ||
- __sk_mem_schedule(sk, size, SK_MEM_RECV);
-}
-
-static inline void sk_mem_reclaim(struct sock *sk)
-{
- if (!sk_has_account(sk))
- return;
- if (sk->sk_forward_alloc >= SK_MEM_QUANTUM)
- __sk_mem_reclaim(sk);
-}
-
-static inline void sk_mem_reclaim_partial(struct sock *sk)
-{
- if (!sk_has_account(sk))
- return;
- if (sk->sk_forward_alloc > SK_MEM_QUANTUM)
- __sk_mem_reclaim(sk);
-}
-
-static inline void sk_mem_charge(struct sock *sk, int size)
-{
- if (!sk_has_account(sk))
- return;
- sk->sk_forward_alloc -= size;
-}
-
-static inline void sk_mem_uncharge(struct sock *sk, int size)
-{
- if (!sk_has_account(sk))
- return;
- sk->sk_forward_alloc += size;
-}
-
-static inline void sk_wmem_free_skb(struct sock *sk, struct sk_buff *skb)
-{
- sock_set_flag(sk, SOCK_QUEUE_SHRUNK);
- sk->sk_wmem_queued -= skb->truesize;
- sk_mem_uncharge(sk, skb->truesize);
- __kfree_skb(skb);
-}
-
-/* Used by processes to "lock" a socket state, so that
- * interrupts and bottom half handlers won't change it
- * from under us. It essentially blocks any incoming
- * packets, so that we won't get any new data or any
- * packets that change the state of the socket.
- *
- * While locked, BH processing will add new packets to
- * the backlog queue. This queue is processed by the
- * owner of the socket lock right before it is released.
- *
- * Since ~2.3.5 it is also exclusive sleep lock serializing
- * accesses from user process context.
- */
-#define sock_owned_by_user(sk) ((sk)->sk_lock.owned)
-
-/*
- * Macro so as to not evaluate some arguments when
- * lockdep is not enabled.
- *
- * Mark both the sk_lock and the sk_lock.slock as a
- * per-address-family lock class.
- */
-#define sock_lock_init_class_and_name(sk, sname, skey, name, key) \
-do { \
- sk->sk_lock.owned = 0; \
- init_waitqueue_head(&sk->sk_lock.wq); \
- spin_lock_init(&(sk)->sk_lock.slock); \
- debug_check_no_locks_freed((void *)&(sk)->sk_lock, \
- sizeof((sk)->sk_lock)); \
- lockdep_set_class_and_name(&(sk)->sk_lock.slock, \
- (skey), (sname)); \
- lockdep_init_map(&(sk)->sk_lock.dep_map, (name), (key), 0); \
-} while (0)
-
-extern void lock_sock_nested(struct sock *sk, int subclass);
-
-static inline void lock_sock(struct sock *sk)
-{
- lock_sock_nested(sk, 0);
-}
-
-extern void release_sock(struct sock *sk);
-
-/* BH context may only use the following locking interface. */
-#define bh_lock_sock(__sk) spin_lock(&((__sk)->sk_lock.slock))
-#define bh_lock_sock_nested(__sk) \
- spin_lock_nested(&((__sk)->sk_lock.slock), \
- SINGLE_DEPTH_NESTING)
-#define bh_unlock_sock(__sk) spin_unlock(&((__sk)->sk_lock.slock))
-
-extern bool lock_sock_fast(struct sock *sk);
-/**
- * unlock_sock_fast - complement of lock_sock_fast
- * @sk: socket
- * @slow: slow mode
- *
- * fast unlock socket for user context.
- * If slow mode is on, we call regular release_sock()
- */
-static inline void unlock_sock_fast(struct sock *sk, bool slow)
-{
- if (slow)
- release_sock(sk);
- else
- spin_unlock_bh(&sk->sk_lock.slock);
-}
-
-
-extern struct sock *sk_alloc(struct net *net, int family,
- gfp_t priority,
- struct proto *prot);
-extern void sk_free(struct sock *sk);
-extern void sk_release_kernel(struct sock *sk);
-extern struct sock *sk_clone_lock(const struct sock *sk,
- const gfp_t priority);
-
-extern struct sk_buff *sock_wmalloc(struct sock *sk,
- unsigned long size, int force,
- gfp_t priority);
-extern struct sk_buff *sock_rmalloc(struct sock *sk,
- unsigned long size, int force,
- gfp_t priority);
-extern void sock_wfree(struct sk_buff *skb);
-extern void sock_rfree(struct sk_buff *skb);
-
-extern int sock_setsockopt(struct socket *sock, int level,
- int op, char __user *optval,
- unsigned int optlen);
-
-extern int sock_getsockopt(struct socket *sock, int level,
- int op, char __user *optval,
- int __user *optlen);
-extern struct sk_buff *sock_alloc_send_skb(struct sock *sk,
- unsigned long size,
- int noblock,
- int *errcode);
-extern struct sk_buff *sock_alloc_send_pskb(struct sock *sk,
- unsigned long header_len,
- unsigned long data_len,
- int noblock,
- int *errcode);
-extern void *sock_kmalloc(struct sock *sk, int size,
- gfp_t priority);
-extern void sock_kfree_s(struct sock *sk, void *mem, int size);
-extern void sk_send_sigurg(struct sock *sk);
-
-#ifdef CONFIG_CGROUPS
-extern void sock_update_classid(struct sock *sk);
-#else
-static inline void sock_update_classid(struct sock *sk)
-{
-}
-#endif
-
-/*
- * Functions to fill in entries in struct proto_ops when a protocol
- * does not implement a particular function.
- */
-extern int sock_no_bind(struct socket *,
- struct sockaddr *, int);
-extern int sock_no_connect(struct socket *,
- struct sockaddr *, int, int);
-extern int sock_no_socketpair(struct socket *,
- struct socket *);
-extern int sock_no_accept(struct socket *,
- struct socket *, int);
-extern int sock_no_getname(struct socket *,
- struct sockaddr *, int *, int);
-extern unsigned int sock_no_poll(struct file *, struct socket *,
- struct poll_table_struct *);
-extern int sock_no_ioctl(struct socket *, unsigned int,
- unsigned long);
-extern int sock_no_listen(struct socket *, int);
-extern int sock_no_shutdown(struct socket *, int);
-extern int sock_no_getsockopt(struct socket *, int , int,
- char __user *, int __user *);
-extern int sock_no_setsockopt(struct socket *, int, int,
- char __user *, unsigned int);
-extern int sock_no_sendmsg(struct kiocb *, struct socket *,
- struct msghdr *, size_t);
-extern int sock_no_recvmsg(struct kiocb *, struct socket *,
- struct msghdr *, size_t, int);
-extern int sock_no_mmap(struct file *file,
- struct socket *sock,
- struct vm_area_struct *vma);
-extern ssize_t sock_no_sendpage(struct socket *sock,
- struct page *page,
- int offset, size_t size,
- int flags);
-
-/*
- * Functions to fill in entries in struct proto_ops when a protocol
- * uses the inet style.
- */
-extern int sock_common_getsockopt(struct socket *sock, int level, int optname,
- char __user *optval, int __user *optlen);
-extern int sock_common_recvmsg(struct kiocb *iocb, struct socket *sock,
- struct msghdr *msg, size_t size, int flags);
-extern int sock_common_setsockopt(struct socket *sock, int level, int optname,
- char __user *optval, unsigned int optlen);
-extern int compat_sock_common_getsockopt(struct socket *sock, int level,
- int optname, char __user *optval, int __user *optlen);
-extern int compat_sock_common_setsockopt(struct socket *sock, int level,
- int optname, char __user *optval, unsigned int optlen);
-
-extern void sk_common_release(struct sock *sk);
-
-/*
- * Default socket callbacks and setup code
- */
-
-/* Initialise core socket variables */
-extern void sock_init_data(struct socket *sock, struct sock *sk);
-
-extern void sk_filter_release_rcu(struct rcu_head *rcu);
-
-/**
- * sk_filter_release - release a socket filter
- * @fp: filter to remove
- *
- * Remove a filter from a socket and release its resources.
- */
-
-static inline void sk_filter_release(struct sk_filter *fp)
-{
- if (atomic_dec_and_test(&fp->refcnt))
- call_rcu(&fp->rcu, sk_filter_release_rcu);
-}
-
-static inline void sk_filter_uncharge(struct sock *sk, struct sk_filter *fp)
-{
- unsigned int size = sk_filter_len(fp);
-
- atomic_sub(size, &sk->sk_omem_alloc);
- sk_filter_release(fp);
-}
-
-static inline void sk_filter_charge(struct sock *sk, struct sk_filter *fp)
-{
- atomic_inc(&fp->refcnt);
- atomic_add(sk_filter_len(fp), &sk->sk_omem_alloc);
-}
-
-/*
- * Socket reference counting postulates.
- *
- * * Each user of socket SHOULD hold a reference count.
- * * Each access point to socket (an hash table bucket, reference from a list,
- * running timer, skb in flight MUST hold a reference count.
- * * When reference count hits 0, it means it will never increase back.
- * * When reference count hits 0, it means that no references from
- * outside exist to this socket and current process on current CPU
- * is last user and may/should destroy this socket.
- * * sk_free is called from any context: process, BH, IRQ. When
- * it is called, socket has no references from outside -> sk_free
- * may release descendant resources allocated by the socket, but
- * to the time when it is called, socket is NOT referenced by any
- * hash tables, lists etc.
- * * Packets, delivered from outside (from network or from another process)
- * and enqueued on receive/error queues SHOULD NOT grab reference count,
- * when they sit in queue. Otherwise, packets will leak to hole, when
- * socket is looked up by one cpu and unhasing is made by another CPU.
- * It is true for udp/raw, netlink (leak to receive and error queues), tcp
- * (leak to backlog). Packet socket does all the processing inside
- * BR_NETPROTO_LOCK, so that it has not this race condition. UNIX sockets
- * use separate SMP lock, so that they are prone too.
- */
-
-/* Ungrab socket and destroy it, if it was the last reference. */
-static inline void sock_put(struct sock *sk)
-{
- if (atomic_dec_and_test(&sk->sk_refcnt))
- sk_free(sk);
-}
-
-extern int sk_receive_skb(struct sock *sk, struct sk_buff *skb,
- const int nested);
-
-static inline void sk_tx_queue_set(struct sock *sk, int tx_queue)
-{
- sk->sk_tx_queue_mapping = tx_queue;
-}
-
-static inline void sk_tx_queue_clear(struct sock *sk)
-{
- sk->sk_tx_queue_mapping = -1;
-}
-
-static inline int sk_tx_queue_get(const struct sock *sk)
-{
- return sk ? sk->sk_tx_queue_mapping : -1;
-}
-
-static inline void sk_set_socket(struct sock *sk, struct socket *sock)
-{
- sk_tx_queue_clear(sk);
- sk->sk_socket = sock;
-}
-
-static inline wait_queue_head_t *sk_sleep(struct sock *sk)
-{
- BUILD_BUG_ON(offsetof(struct socket_wq, wait) != 0);
- return &rcu_dereference_raw(sk->sk_wq)->wait;
-}
-/* Detach socket from process context.
- * Announce socket dead, detach it from wait queue and inode.
- * Note that parent inode held reference count on this struct sock,
- * we do not release it in this function, because protocol
- * probably wants some additional cleanups or even continuing
- * to work with this socket (TCP).
- */
-static inline void sock_orphan(struct sock *sk)
-{
- write_lock_bh(&sk->sk_callback_lock);
- sock_set_flag(sk, SOCK_DEAD);
- sk_set_socket(sk, NULL);
- sk->sk_wq = NULL;
- write_unlock_bh(&sk->sk_callback_lock);
-}
-
-static inline void sock_graft(struct sock *sk, struct socket *parent)
-{
- write_lock_bh(&sk->sk_callback_lock);
- sk->sk_wq = parent->wq;
- parent->sk = sk;
- sk_set_socket(sk, parent);
- security_sock_graft(sk, parent);
- write_unlock_bh(&sk->sk_callback_lock);
-}
-
-extern int sock_i_uid(struct sock *sk);
-extern unsigned long sock_i_ino(struct sock *sk);
-
-static inline struct dst_entry *
-__sk_dst_get(struct sock *sk)
-{
- return rcu_dereference_check(sk->sk_dst_cache, sock_owned_by_user(sk) ||
- lockdep_is_held(&sk->sk_lock.slock));
-}
-
-static inline struct dst_entry *
-sk_dst_get(struct sock *sk)
-{
- struct dst_entry *dst;
-
- rcu_read_lock();
- dst = rcu_dereference(sk->sk_dst_cache);
- if (dst)
- dst_hold(dst);
- rcu_read_unlock();
- return dst;
-}
-
-extern void sk_reset_txq(struct sock *sk);
-
-static inline void dst_negative_advice(struct sock *sk)
-{
- struct dst_entry *ndst, *dst = __sk_dst_get(sk);
-
- if (dst && dst->ops->negative_advice) {
- ndst = dst->ops->negative_advice(dst);
-
- if (ndst != dst) {
- rcu_assign_pointer(sk->sk_dst_cache, ndst);
- sk_reset_txq(sk);
- }
- }
-}
-
-static inline void
-__sk_dst_set(struct sock *sk, struct dst_entry *dst)
-{
- struct dst_entry *old_dst;
-
- sk_tx_queue_clear(sk);
- /*
- * This can be called while sk is owned by the caller only,
- * with no state that can be checked in a rcu_dereference_check() cond
- */
- old_dst = rcu_dereference_raw(sk->sk_dst_cache);
- rcu_assign_pointer(sk->sk_dst_cache, dst);
- dst_release(old_dst);
-}
-
-static inline void
-sk_dst_set(struct sock *sk, struct dst_entry *dst)
-{
- spin_lock(&sk->sk_dst_lock);
- __sk_dst_set(sk, dst);
- spin_unlock(&sk->sk_dst_lock);
-}
-
-static inline void
-__sk_dst_reset(struct sock *sk)
-{
- __sk_dst_set(sk, NULL);
-}
-
-static inline void
-sk_dst_reset(struct sock *sk)
-{
- spin_lock(&sk->sk_dst_lock);
- __sk_dst_reset(sk);
- spin_unlock(&sk->sk_dst_lock);
-}
-
-extern struct dst_entry *__sk_dst_check(struct sock *sk, u32 cookie);
-
-extern struct dst_entry *sk_dst_check(struct sock *sk, u32 cookie);
-
-static inline int sk_can_gso(const struct sock *sk)
-{
- return net_gso_ok(sk->sk_route_caps, sk->sk_gso_type);
-}
-
-extern void sk_setup_caps(struct sock *sk, struct dst_entry *dst);
-
-static inline void sk_nocaps_add(struct sock *sk, netdev_features_t flags)
-{
- sk->sk_route_nocaps |= flags;
- sk->sk_route_caps &= ~flags;
-}
-
-static inline int skb_do_copy_data_nocache(struct sock *sk, struct sk_buff *skb,
- char __user *from, char *to,
- int copy, int offset)
-{
- if (skb->ip_summed == CHECKSUM_NONE) {
- int err = 0;
- __wsum csum = csum_and_copy_from_user(from, to, copy, 0, &err);
- if (err)
- return err;
- skb->csum = csum_block_add(skb->csum, csum, offset);
- } else if (sk->sk_route_caps & NETIF_F_NOCACHE_COPY) {
- if (!access_ok(VERIFY_READ, from, copy) ||
- __copy_from_user_nocache(to, from, copy))
- return -EFAULT;
- } else if (copy_from_user(to, from, copy))
- return -EFAULT;
-
- return 0;
-}
-
-static inline int skb_add_data_nocache(struct sock *sk, struct sk_buff *skb,
- char __user *from, int copy)
-{
- int err, offset = skb->len;
-
- err = skb_do_copy_data_nocache(sk, skb, from, skb_put(skb, copy),
- copy, offset);
- if (err)
- __skb_trim(skb, offset);
-
- return err;
-}
-
-static inline int skb_copy_to_page_nocache(struct sock *sk, char __user *from,
- struct sk_buff *skb,
- struct page *page,
- int off, int copy)
-{
- int err;
-
- err = skb_do_copy_data_nocache(sk, skb, from, page_address(page) + off,
- copy, skb->len);
- if (err)
- return err;
-
- skb->len += copy;
- skb->data_len += copy;
- skb->truesize += copy;
- sk->sk_wmem_queued += copy;
- sk_mem_charge(sk, copy);
- return 0;
-}
-
-static inline int skb_copy_to_page(struct sock *sk, char __user *from,
- struct sk_buff *skb, struct page *page,
- int off, int copy)
-{
- if (skb->ip_summed == CHECKSUM_NONE) {
- int err = 0;
- __wsum csum = csum_and_copy_from_user(from,
- page_address(page) + off,
- copy, 0, &err);
- if (err)
- return err;
- skb->csum = csum_block_add(skb->csum, csum, skb->len);
- } else if (copy_from_user(page_address(page) + off, from, copy))
- return -EFAULT;
-
- skb->len += copy;
- skb->data_len += copy;
- skb->truesize += copy;
- sk->sk_wmem_queued += copy;
- sk_mem_charge(sk, copy);
- return 0;
-}
-
-/**
- * sk_wmem_alloc_get - returns write allocations
- * @sk: socket
- *
- * Returns sk_wmem_alloc minus initial offset of one
- */
-static inline int sk_wmem_alloc_get(const struct sock *sk)
-{
- return atomic_read(&sk->sk_wmem_alloc) - 1;
-}
-
-/**
- * sk_rmem_alloc_get - returns read allocations
- * @sk: socket
- *
- * Returns sk_rmem_alloc
- */
-static inline int sk_rmem_alloc_get(const struct sock *sk)
-{
- return atomic_read(&sk->sk_rmem_alloc);
-}
-
-/**
- * sk_has_allocations - check if allocations are outstanding
- * @sk: socket
- *
- * Returns true if socket has write or read allocations
- */
-static inline int sk_has_allocations(const struct sock *sk)
-{
- return sk_wmem_alloc_get(sk) || sk_rmem_alloc_get(sk);
-}
-
-/**
- * wq_has_sleeper - check if there are any waiting processes
- * @wq: struct socket_wq
- *
- * Returns true if socket_wq has waiting processes
- *
- * The purpose of the wq_has_sleeper and sock_poll_wait is to wrap the memory
- * barrier call. They were added due to the race found within the tcp code.
- *
- * Consider following tcp code paths:
- *
- * CPU1 CPU2
- *
- * sys_select receive packet
- * ... ...
- * __add_wait_queue update tp->rcv_nxt
- * ... ...
- * tp->rcv_nxt check sock_def_readable
- * ... {
- * schedule rcu_read_lock();
- * wq = rcu_dereference(sk->sk_wq);
- * if (wq && waitqueue_active(&wq->wait))
- * wake_up_interruptible(&wq->wait)
- * ...
- * }
- *
- * The race for tcp fires when the __add_wait_queue changes done by CPU1 stay
- * in its cache, and so does the tp->rcv_nxt update on CPU2 side. The CPU1
- * could then endup calling schedule and sleep forever if there are no more
- * data on the socket.
- *
- */
-static inline bool wq_has_sleeper(struct socket_wq *wq)
-{
-
- /*
- * We need to be sure we are in sync with the
- * add_wait_queue modifications to the wait queue.
- *
- * This memory barrier is paired in the sock_poll_wait.
- */
- smp_mb();
- return wq && waitqueue_active(&wq->wait);
-}
-
-/**
- * sock_poll_wait - place memory barrier behind the poll_wait call.
- * @filp: file
- * @wait_address: socket wait queue
- * @p: poll_table
- *
- * See the comments in the wq_has_sleeper function.
- */
-static inline void sock_poll_wait(struct file *filp,
- wait_queue_head_t *wait_address, poll_table *p)
-{
- if (!poll_does_not_wait(p) && wait_address) {
- poll_wait(filp, wait_address, p);
- /*
- * We need to be sure we are in sync with the
- * socket flags modification.
- *
- * This memory barrier is paired in the wq_has_sleeper.
- */
- smp_mb();
- }
-}
-
-/*
- * Queue a received datagram if it will fit. Stream and sequenced
- * protocols can't normally use this as they need to fit buffers in
- * and play with them.
- *
- * Inlined as it's very short and called for pretty much every
- * packet ever received.
- */
-
-static inline void skb_set_owner_w(struct sk_buff *skb, struct sock *sk)
-{
- skb_orphan(skb);
- skb->sk = sk;
- skb->destructor = sock_wfree;
- /*
- * We used to take a refcount on sk, but following operation
- * is enough to guarantee sk_free() wont free this sock until
- * all in-flight packets are completed
- */
- atomic_add(skb->truesize, &sk->sk_wmem_alloc);
-}
-
-static inline void skb_set_owner_r(struct sk_buff *skb, struct sock *sk)
-{
- skb_orphan(skb);
- skb->sk = sk;
- skb->destructor = sock_rfree;
- atomic_add(skb->truesize, &sk->sk_rmem_alloc);
- sk_mem_charge(sk, skb->truesize);
-}
-
-extern void sk_reset_timer(struct sock *sk, struct timer_list* timer,
- unsigned long expires);
-
-extern void sk_stop_timer(struct sock *sk, struct timer_list* timer);
-
-extern int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb);
-
-extern int sock_queue_err_skb(struct sock *sk, struct sk_buff *skb);
-
-/*
- * Recover an error report and clear atomically
- */
-
-static inline int sock_error(struct sock *sk)
-{
- int err;
- if (likely(!sk->sk_err))
- return 0;
- err = xchg(&sk->sk_err, 0);
- return -err;
-}
-
-static inline unsigned long sock_wspace(struct sock *sk)
-{
- int amt = 0;
-
- if (!(sk->sk_shutdown & SEND_SHUTDOWN)) {
- amt = sk->sk_sndbuf - atomic_read(&sk->sk_wmem_alloc);
- if (amt < 0)
- amt = 0;
- }
- return amt;
-}
-
-static inline void sk_wake_async(struct sock *sk, int how, int band)
-{
- if (sock_flag(sk, SOCK_FASYNC))
- sock_wake_async(sk->sk_socket, how, band);
-}
-
-#define SOCK_MIN_SNDBUF 2048
-/*
- * Since sk_rmem_alloc sums skb->truesize, even a small frame might need
- * sizeof(sk_buff) + MTU + padding, unless net driver perform copybreak
- */
-#define SOCK_MIN_RCVBUF (2048 + sizeof(struct sk_buff))
-
-static inline void sk_stream_moderate_sndbuf(struct sock *sk)
-{
- if (!(sk->sk_userlocks & SOCK_SNDBUF_LOCK)) {
- sk->sk_sndbuf = min(sk->sk_sndbuf, sk->sk_wmem_queued >> 1);
- sk->sk_sndbuf = max(sk->sk_sndbuf, SOCK_MIN_SNDBUF);
- }
-}
-
-struct sk_buff *sk_stream_alloc_skb(struct sock *sk, int size, gfp_t gfp);
-
-static inline struct page *sk_stream_alloc_page(struct sock *sk)
-{
- struct page *page = NULL;
-
- page = alloc_pages(sk->sk_allocation, 0);
- if (!page) {
- sk_enter_memory_pressure(sk);
- sk_stream_moderate_sndbuf(sk);
- }
- return page;
-}
-
-/*
- * Default write policy as shown to user space via poll/select/SIGIO
- */
-static inline int sock_writeable(const struct sock *sk)
-{
- return atomic_read(&sk->sk_wmem_alloc) < (sk->sk_sndbuf >> 1);
-}
-
-static inline gfp_t gfp_any(void)
-{
- return in_softirq() ? GFP_ATOMIC : GFP_KERNEL;
-}
-
-static inline long sock_rcvtimeo(const struct sock *sk, int noblock)
-{
- return noblock ? 0 : sk->sk_rcvtimeo;
-}
-
-static inline long sock_sndtimeo(const struct sock *sk, int noblock)
-{
- return noblock ? 0 : sk->sk_sndtimeo;
-}
-
-static inline int sock_rcvlowat(const struct sock *sk, int waitall, int len)
-{
- return (waitall ? len : min_t(int, sk->sk_rcvlowat, len)) ? : 1;
-}
-
-/* Alas, with timeout socket operations are not restartable.
- * Compare this to poll().
- */
-static inline int sock_intr_errno(long timeo)
-{
- return timeo == MAX_SCHEDULE_TIMEOUT ? -ERESTARTSYS : -EINTR;
-}
-
-extern void __sock_recv_timestamp(struct msghdr *msg, struct sock *sk,
- struct sk_buff *skb);
-extern void __sock_recv_wifi_status(struct msghdr *msg, struct sock *sk,
- struct sk_buff *skb);
-
-static __inline__ void
-sock_recv_timestamp(struct msghdr *msg, struct sock *sk, struct sk_buff *skb)
-{
- ktime_t kt = skb->tstamp;
- struct skb_shared_hwtstamps *hwtstamps = skb_hwtstamps(skb);
-
- /*
- * generate control messages if
- * - receive time stamping in software requested (SOCK_RCVTSTAMP
- * or SOCK_TIMESTAMPING_RX_SOFTWARE)
- * - software time stamp available and wanted
- * (SOCK_TIMESTAMPING_SOFTWARE)
- * - hardware time stamps available and wanted
- * (SOCK_TIMESTAMPING_SYS_HARDWARE or
- * SOCK_TIMESTAMPING_RAW_HARDWARE)
- */
- if (sock_flag(sk, SOCK_RCVTSTAMP) ||
- sock_flag(sk, SOCK_TIMESTAMPING_RX_SOFTWARE) ||
- (kt.tv64 && sock_flag(sk, SOCK_TIMESTAMPING_SOFTWARE)) ||
- (hwtstamps->hwtstamp.tv64 &&
- sock_flag(sk, SOCK_TIMESTAMPING_RAW_HARDWARE)) ||
- (hwtstamps->syststamp.tv64 &&
- sock_flag(sk, SOCK_TIMESTAMPING_SYS_HARDWARE)))
- __sock_recv_timestamp(msg, sk, skb);
- else
- sk->sk_stamp = kt;
-
- if (sock_flag(sk, SOCK_WIFI_STATUS) && skb->wifi_acked_valid)
- __sock_recv_wifi_status(msg, sk, skb);
-}
-
-extern void __sock_recv_ts_and_drops(struct msghdr *msg, struct sock *sk,
- struct sk_buff *skb);
-
-static inline void sock_recv_ts_and_drops(struct msghdr *msg, struct sock *sk,
- struct sk_buff *skb)
-{
-#define FLAGS_TS_OR_DROPS ((1UL << SOCK_RXQ_OVFL) | \
- (1UL << SOCK_RCVTSTAMP) | \
- (1UL << SOCK_TIMESTAMPING_RX_SOFTWARE) | \
- (1UL << SOCK_TIMESTAMPING_SOFTWARE) | \
- (1UL << SOCK_TIMESTAMPING_RAW_HARDWARE) | \
- (1UL << SOCK_TIMESTAMPING_SYS_HARDWARE))
-
- if (sk->sk_flags & FLAGS_TS_OR_DROPS)
- __sock_recv_ts_and_drops(msg, sk, skb);
- else
- sk->sk_stamp = skb->tstamp;
-}
-
-/**
- * sock_tx_timestamp - checks whether the outgoing packet is to be time stamped
- * @sk: socket sending this packet
- * @tx_flags: filled with instructions for time stamping
- *
- * Currently only depends on SOCK_TIMESTAMPING* flags. Returns error code if
- * parameters are invalid.
- */
-extern int sock_tx_timestamp(struct sock *sk, __u8 *tx_flags);
-
-/**
- * sk_eat_skb - Release a skb if it is no longer needed
- * @sk: socket to eat this skb from
- * @skb: socket buffer to eat
- * @copied_early: flag indicating whether DMA operations copied this data early
- *
- * This routine must be called with interrupts disabled or with the socket
- * locked so that the sk_buff queue operation is ok.
-*/
-#ifdef CONFIG_NET_DMA
-static inline void sk_eat_skb(struct sock *sk, struct sk_buff *skb, int copied_early)
-{
- __skb_unlink(skb, &sk->sk_receive_queue);
- if (!copied_early)
- __kfree_skb(skb);
- else
- __skb_queue_tail(&sk->sk_async_wait_queue, skb);
-}
-#else
-static inline void sk_eat_skb(struct sock *sk, struct sk_buff *skb, int copied_early)
-{
- __skb_unlink(skb, &sk->sk_receive_queue);
- __kfree_skb(skb);
-}
-#endif
-
-static inline
-struct net *sock_net(const struct sock *sk)
-{
- return read_pnet(&sk->sk_net);
-}
-
-static inline
-void sock_net_set(struct sock *sk, struct net *net)
-{
- write_pnet(&sk->sk_net, net);
-}
-
-/*
- * Kernel sockets, f.e. rtnl or icmp_socket, are a part of a namespace.
- * They should not hold a reference to a namespace in order to allow
- * to stop it.
- * Sockets after sk_change_net should be released using sk_release_kernel
- */
-static inline void sk_change_net(struct sock *sk, struct net *net)
-{
- put_net(sock_net(sk));
- sock_net_set(sk, hold_net(net));
-}
-
-static inline struct sock *skb_steal_sock(struct sk_buff *skb)
-{
- if (unlikely(skb->sk)) {
- struct sock *sk = skb->sk;
-
- skb->destructor = NULL;
- skb->sk = NULL;
- return sk;
- }
- return NULL;
-}
-
-extern void sock_enable_timestamp(struct sock *sk, int flag);
-extern int sock_get_timestamp(struct sock *, struct timeval __user *);
-extern int sock_get_timestampns(struct sock *, struct timespec __user *);
-
-/*
- * Enable debug/info messages
- */
-extern int net_msg_warn;
-#define NETDEBUG(fmt, args...) \
- do { if (net_msg_warn) printk(fmt,##args); } while (0)
-
-#define LIMIT_NETDEBUG(fmt, args...) \
- do { if (net_msg_warn && net_ratelimit()) printk(fmt,##args); } while(0)
-
-extern __u32 sysctl_wmem_max;
-extern __u32 sysctl_rmem_max;
-
-extern void sk_init(void);
-
-extern int sysctl_optmem_max;
-
-extern __u32 sysctl_wmem_default;
-extern __u32 sysctl_rmem_default;
-
-#endif /* _SOCK_H */
diff --git a/ANDROID_3.4.5/include/net/stp.h b/ANDROID_3.4.5/include/net/stp.h
deleted file mode 100644
index ad447f10..00000000
--- a/ANDROID_3.4.5/include/net/stp.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef _NET_STP_H
-#define _NET_STP_H
-
-struct stp_proto {
- unsigned char group_address[ETH_ALEN];
- void (*rcv)(const struct stp_proto *, struct sk_buff *,
- struct net_device *);
- void *data;
-};
-
-extern int stp_proto_register(const struct stp_proto *proto);
-extern void stp_proto_unregister(const struct stp_proto *proto);
-
-#endif /* _NET_STP_H */
diff --git a/ANDROID_3.4.5/include/net/tc_act/tc_csum.h b/ANDROID_3.4.5/include/net/tc_act/tc_csum.h
deleted file mode 100644
index 9e8710be..00000000
--- a/ANDROID_3.4.5/include/net/tc_act/tc_csum.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef __NET_TC_CSUM_H
-#define __NET_TC_CSUM_H
-
-#include <linux/types.h>
-#include <net/act_api.h>
-
-struct tcf_csum {
- struct tcf_common common;
-
- u32 update_flags;
-};
-#define to_tcf_csum(pc) \
- container_of(pc,struct tcf_csum,common)
-
-#endif /* __NET_TC_CSUM_H */
diff --git a/ANDROID_3.4.5/include/net/tc_act/tc_defact.h b/ANDROID_3.4.5/include/net/tc_act/tc_defact.h
deleted file mode 100644
index 65f024b8..00000000
--- a/ANDROID_3.4.5/include/net/tc_act/tc_defact.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef __NET_TC_DEF_H
-#define __NET_TC_DEF_H
-
-#include <net/act_api.h>
-
-struct tcf_defact {
- struct tcf_common common;
- u32 tcfd_datalen;
- void *tcfd_defdata;
-};
-#define to_defact(pc) \
- container_of(pc, struct tcf_defact, common)
-
-#endif /* __NET_TC_DEF_H */
diff --git a/ANDROID_3.4.5/include/net/tc_act/tc_gact.h b/ANDROID_3.4.5/include/net/tc_act/tc_gact.h
deleted file mode 100644
index 9e3f6767..00000000
--- a/ANDROID_3.4.5/include/net/tc_act/tc_gact.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef __NET_TC_GACT_H
-#define __NET_TC_GACT_H
-
-#include <net/act_api.h>
-
-struct tcf_gact {
- struct tcf_common common;
-#ifdef CONFIG_GACT_PROB
- u16 tcfg_ptype;
- u16 tcfg_pval;
- int tcfg_paction;
-#endif
-};
-#define to_gact(pc) \
- container_of(pc, struct tcf_gact, common)
-
-#endif /* __NET_TC_GACT_H */
diff --git a/ANDROID_3.4.5/include/net/tc_act/tc_ipt.h b/ANDROID_3.4.5/include/net/tc_act/tc_ipt.h
deleted file mode 100644
index f7d25dfc..00000000
--- a/ANDROID_3.4.5/include/net/tc_act/tc_ipt.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef __NET_TC_IPT_H
-#define __NET_TC_IPT_H
-
-#include <net/act_api.h>
-
-struct xt_entry_target;
-
-struct tcf_ipt {
- struct tcf_common common;
- u32 tcfi_hook;
- char *tcfi_tname;
- struct xt_entry_target *tcfi_t;
-};
-#define to_ipt(pc) \
- container_of(pc, struct tcf_ipt, common)
-
-#endif /* __NET_TC_IPT_H */
diff --git a/ANDROID_3.4.5/include/net/tc_act/tc_mirred.h b/ANDROID_3.4.5/include/net/tc_act/tc_mirred.h
deleted file mode 100644
index cfe29436..00000000
--- a/ANDROID_3.4.5/include/net/tc_act/tc_mirred.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef __NET_TC_MIR_H
-#define __NET_TC_MIR_H
-
-#include <net/act_api.h>
-
-struct tcf_mirred {
- struct tcf_common common;
- int tcfm_eaction;
- int tcfm_ifindex;
- int tcfm_ok_push;
- struct net_device *tcfm_dev;
- struct list_head tcfm_list;
-};
-#define to_mirred(pc) \
- container_of(pc, struct tcf_mirred, common)
-
-#endif /* __NET_TC_MIR_H */
diff --git a/ANDROID_3.4.5/include/net/tc_act/tc_nat.h b/ANDROID_3.4.5/include/net/tc_act/tc_nat.h
deleted file mode 100644
index 4a691f34..00000000
--- a/ANDROID_3.4.5/include/net/tc_act/tc_nat.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef __NET_TC_NAT_H
-#define __NET_TC_NAT_H
-
-#include <linux/types.h>
-#include <net/act_api.h>
-
-struct tcf_nat {
- struct tcf_common common;
-
- __be32 old_addr;
- __be32 new_addr;
- __be32 mask;
- u32 flags;
-};
-
-static inline struct tcf_nat *to_tcf_nat(struct tcf_common *pc)
-{
- return container_of(pc, struct tcf_nat, common);
-}
-
-#endif /* __NET_TC_NAT_H */
diff --git a/ANDROID_3.4.5/include/net/tc_act/tc_pedit.h b/ANDROID_3.4.5/include/net/tc_act/tc_pedit.h
deleted file mode 100644
index e6f6e159..00000000
--- a/ANDROID_3.4.5/include/net/tc_act/tc_pedit.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef __NET_TC_PED_H
-#define __NET_TC_PED_H
-
-#include <net/act_api.h>
-
-struct tcf_pedit {
- struct tcf_common common;
- unsigned char tcfp_nkeys;
- unsigned char tcfp_flags;
- struct tc_pedit_key *tcfp_keys;
-};
-#define to_pedit(pc) \
- container_of(pc, struct tcf_pedit, common)
-
-#endif /* __NET_TC_PED_H */
diff --git a/ANDROID_3.4.5/include/net/tc_act/tc_skbedit.h b/ANDROID_3.4.5/include/net/tc_act/tc_skbedit.h
deleted file mode 100644
index e103fe02..00000000
--- a/ANDROID_3.4.5/include/net/tc_act/tc_skbedit.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2008, Intel Corporation.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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.
- *
- * Author: Alexander Duyck <alexander.h.duyck@intel.com>
- */
-
-#ifndef __NET_TC_SKBEDIT_H
-#define __NET_TC_SKBEDIT_H
-
-#include <net/act_api.h>
-
-struct tcf_skbedit {
- struct tcf_common common;
- u32 flags;
- u32 priority;
- u32 mark;
- u16 queue_mapping;
- /* XXX: 16-bit pad here? */
-};
-#define to_skbedit(pc) \
- container_of(pc, struct tcf_skbedit, common)
-
-#endif /* __NET_TC_SKBEDIT_H */
diff --git a/ANDROID_3.4.5/include/net/tcp.h b/ANDROID_3.4.5/include/net/tcp.h
deleted file mode 100644
index 50660b3e..00000000
--- a/ANDROID_3.4.5/include/net/tcp.h
+++ /dev/null
@@ -1,1581 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Definitions for the TCP module.
- *
- * Version: @(#)tcp.h 1.0.5 05/23/93
- *
- * Authors: Ross Biro
- * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.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.
- */
-#ifndef _TCP_H
-#define _TCP_H
-
-#define FASTRETRANS_DEBUG 1
-
-#include <linux/list.h>
-#include <linux/tcp.h>
-#include <linux/bug.h>
-#include <linux/slab.h>
-#include <linux/cache.h>
-#include <linux/percpu.h>
-#include <linux/skbuff.h>
-#include <linux/dmaengine.h>
-#include <linux/crypto.h>
-#include <linux/cryptohash.h>
-#include <linux/kref.h>
-
-#include <net/inet_connection_sock.h>
-#include <net/inet_timewait_sock.h>
-#include <net/inet_hashtables.h>
-#include <net/checksum.h>
-#include <net/request_sock.h>
-#include <net/sock.h>
-#include <net/snmp.h>
-#include <net/ip.h>
-#include <net/tcp_states.h>
-#include <net/inet_ecn.h>
-#include <net/dst.h>
-
-#include <linux/seq_file.h>
-#include <linux/memcontrol.h>
-
-extern struct inet_hashinfo tcp_hashinfo;
-
-extern struct percpu_counter tcp_orphan_count;
-extern void tcp_time_wait(struct sock *sk, int state, int timeo);
-
-#define MAX_TCP_HEADER (128 + MAX_HEADER)
-#define MAX_TCP_OPTION_SPACE 40
-
-/*
- * Never offer a window over 32767 without using window scaling. Some
- * poor stacks do signed 16bit maths!
- */
-#define MAX_TCP_WINDOW 32767U
-
-/* Offer an initial receive window of 10 mss. */
-#define TCP_DEFAULT_INIT_RCVWND 10
-
-/* Minimal accepted MSS. It is (60+60+8) - (20+20). */
-#define TCP_MIN_MSS 88U
-
-/* The least MTU to use for probing */
-#define TCP_BASE_MSS 512
-
-/* After receiving this amount of duplicate ACKs fast retransmit starts. */
-#define TCP_FASTRETRANS_THRESH 3
-
-/* Maximal reordering. */
-#define TCP_MAX_REORDERING 127
-
-/* Maximal number of ACKs sent quickly to accelerate slow-start. */
-#define TCP_MAX_QUICKACKS 16U
-
-/* urg_data states */
-#define TCP_URG_VALID 0x0100
-#define TCP_URG_NOTYET 0x0200
-#define TCP_URG_READ 0x0400
-
-#define TCP_RETR1 3 /*
- * This is how many retries it does before it
- * tries to figure out if the gateway is
- * down. Minimal RFC value is 3; it corresponds
- * to ~3sec-8min depending on RTO.
- */
-
-#define TCP_RETR2 15 /*
- * This should take at least
- * 90 minutes to time out.
- * RFC1122 says that the limit is 100 sec.
- * 15 is ~13-30min depending on RTO.
- */
-
-#define TCP_SYN_RETRIES 5 /* number of times to retry active opening a
- * connection: ~180sec is RFC minimum */
-
-#define TCP_SYNACK_RETRIES 5 /* number of times to retry passive opening a
- * connection: ~180sec is RFC minimum */
-
-#define TCP_TIMEWAIT_LEN (60*HZ) /* how long to wait to destroy TIME-WAIT
- * state, about 60 seconds */
-#define TCP_FIN_TIMEOUT TCP_TIMEWAIT_LEN
- /* BSD style FIN_WAIT2 deadlock breaker.
- * It used to be 3min, new value is 60sec,
- * to combine FIN-WAIT-2 timeout with
- * TIME-WAIT timer.
- */
-
-#define TCP_DELACK_MAX ((unsigned)(HZ/5)) /* maximal time to delay before sending an ACK */
-#if HZ >= 100
-#define TCP_DELACK_MIN ((unsigned)(HZ/25)) /* minimal time to delay before sending an ACK */
-#define TCP_ATO_MIN ((unsigned)(HZ/25))
-#else
-#define TCP_DELACK_MIN 4U
-#define TCP_ATO_MIN 4U
-#endif
-#define TCP_RTO_MAX ((unsigned)(120*HZ))
-#define TCP_RTO_MIN ((unsigned)(HZ/5))
-#define TCP_TIMEOUT_INIT ((unsigned)(1*HZ)) /* RFC2988bis initial RTO value */
-#define TCP_TIMEOUT_FALLBACK ((unsigned)(3*HZ)) /* RFC 1122 initial RTO value, now
- * used as a fallback RTO for the
- * initial data transmission if no
- * valid RTT sample has been acquired,
- * most likely due to retrans in 3WHS.
- */
-
-#define TCP_RESOURCE_PROBE_INTERVAL ((unsigned)(HZ/2U)) /* Maximal interval between probes
- * for local resources.
- */
-
-#define TCP_KEEPALIVE_TIME (120*60*HZ) /* two hours */
-#define TCP_KEEPALIVE_PROBES 9 /* Max of 9 keepalive probes */
-#define TCP_KEEPALIVE_INTVL (75*HZ)
-
-#define MAX_TCP_KEEPIDLE 32767
-#define MAX_TCP_KEEPINTVL 32767
-#define MAX_TCP_KEEPCNT 127
-#define MAX_TCP_SYNCNT 127
-
-#define TCP_SYNQ_INTERVAL (HZ/5) /* Period of SYNACK timer */
-
-#define TCP_PAWS_24DAYS (60 * 60 * 24 * 24)
-#define TCP_PAWS_MSL 60 /* Per-host timestamps are invalidated
- * after this time. It should be equal
- * (or greater than) TCP_TIMEWAIT_LEN
- * to provide reliability equal to one
- * provided by timewait state.
- */
-#define TCP_PAWS_WINDOW 1 /* Replay window for per-host
- * timestamps. It must be less than
- * minimal timewait lifetime.
- */
-/*
- * TCP option
- */
-
-#define TCPOPT_NOP 1 /* Padding */
-#define TCPOPT_EOL 0 /* End of options */
-#define TCPOPT_MSS 2 /* Segment size negotiating */
-#define TCPOPT_WINDOW 3 /* Window scaling */
-#define TCPOPT_SACK_PERM 4 /* SACK Permitted */
-#define TCPOPT_SACK 5 /* SACK Block */
-#define TCPOPT_TIMESTAMP 8 /* Better RTT estimations/PAWS */
-#define TCPOPT_MD5SIG 19 /* MD5 Signature (RFC2385) */
-#define TCPOPT_COOKIE 253 /* Cookie extension (experimental) */
-
-/*
- * TCP option lengths
- */
-
-#define TCPOLEN_MSS 4
-#define TCPOLEN_WINDOW 3
-#define TCPOLEN_SACK_PERM 2
-#define TCPOLEN_TIMESTAMP 10
-#define TCPOLEN_MD5SIG 18
-#define TCPOLEN_COOKIE_BASE 2 /* Cookie-less header extension */
-#define TCPOLEN_COOKIE_PAIR 3 /* Cookie pair header extension */
-#define TCPOLEN_COOKIE_MIN (TCPOLEN_COOKIE_BASE+TCP_COOKIE_MIN)
-#define TCPOLEN_COOKIE_MAX (TCPOLEN_COOKIE_BASE+TCP_COOKIE_MAX)
-
-/* But this is what stacks really send out. */
-#define TCPOLEN_TSTAMP_ALIGNED 12
-#define TCPOLEN_WSCALE_ALIGNED 4
-#define TCPOLEN_SACKPERM_ALIGNED 4
-#define TCPOLEN_SACK_BASE 2
-#define TCPOLEN_SACK_BASE_ALIGNED 4
-#define TCPOLEN_SACK_PERBLOCK 8
-#define TCPOLEN_MD5SIG_ALIGNED 20
-#define TCPOLEN_MSS_ALIGNED 4
-
-/* Flags in tp->nonagle */
-#define TCP_NAGLE_OFF 1 /* Nagle's algo is disabled */
-#define TCP_NAGLE_CORK 2 /* Socket is corked */
-#define TCP_NAGLE_PUSH 4 /* Cork is overridden for already queued data */
-
-/* TCP thin-stream limits */
-#define TCP_THIN_LINEAR_RETRIES 6 /* After 6 linear retries, do exp. backoff */
-
-/* TCP initial congestion window as per draft-hkchu-tcpm-initcwnd-01 */
-#define TCP_INIT_CWND 10
-
-extern struct inet_timewait_death_row tcp_death_row;
-
-/* sysctl variables for tcp */
-extern int sysctl_tcp_timestamps;
-extern int sysctl_tcp_window_scaling;
-extern int sysctl_tcp_sack;
-extern int sysctl_tcp_fin_timeout;
-extern int sysctl_tcp_keepalive_time;
-extern int sysctl_tcp_keepalive_probes;
-extern int sysctl_tcp_keepalive_intvl;
-extern int sysctl_tcp_syn_retries;
-extern int sysctl_tcp_synack_retries;
-extern int sysctl_tcp_retries1;
-extern int sysctl_tcp_retries2;
-extern int sysctl_tcp_orphan_retries;
-extern int sysctl_tcp_syncookies;
-extern int sysctl_tcp_retrans_collapse;
-extern int sysctl_tcp_stdurg;
-extern int sysctl_tcp_rfc1337;
-extern int sysctl_tcp_abort_on_overflow;
-extern int sysctl_tcp_max_orphans;
-extern int sysctl_tcp_fack;
-extern int sysctl_tcp_reordering;
-extern int sysctl_tcp_ecn;
-extern int sysctl_tcp_dsack;
-extern int sysctl_tcp_wmem[3];
-extern int sysctl_tcp_rmem[3];
-extern int sysctl_tcp_app_win;
-extern int sysctl_tcp_adv_win_scale;
-extern int sysctl_tcp_tw_reuse;
-extern int sysctl_tcp_frto;
-extern int sysctl_tcp_frto_response;
-extern int sysctl_tcp_low_latency;
-extern int sysctl_tcp_dma_copybreak;
-extern int sysctl_tcp_nometrics_save;
-extern int sysctl_tcp_moderate_rcvbuf;
-extern int sysctl_tcp_tso_win_divisor;
-extern int sysctl_tcp_abc;
-extern int sysctl_tcp_mtu_probing;
-extern int sysctl_tcp_base_mss;
-extern int sysctl_tcp_workaround_signed_windows;
-extern int sysctl_tcp_slow_start_after_idle;
-extern int sysctl_tcp_max_ssthresh;
-extern int sysctl_tcp_cookie_size;
-extern int sysctl_tcp_thin_linear_timeouts;
-extern int sysctl_tcp_thin_dupack;
-
-extern atomic_long_t tcp_memory_allocated;
-extern struct percpu_counter tcp_sockets_allocated;
-extern int tcp_memory_pressure;
-
-/*
- * The next routines deal with comparing 32 bit unsigned ints
- * and worry about wraparound (automatic with unsigned arithmetic).
- */
-
-static inline int before(__u32 seq1, __u32 seq2)
-{
- return (__s32)(seq1-seq2) < 0;
-}
-#define after(seq2, seq1) before(seq1, seq2)
-
-/* is s2<=s1<=s3 ? */
-static inline int between(__u32 seq1, __u32 seq2, __u32 seq3)
-{
- return seq3 - seq2 >= seq1 - seq2;
-}
-
-static inline bool tcp_out_of_memory(struct sock *sk)
-{
- if (sk->sk_wmem_queued > SOCK_MIN_SNDBUF &&
- sk_memory_allocated(sk) > sk_prot_mem_limits(sk, 2))
- return true;
- return false;
-}
-
-static inline bool tcp_too_many_orphans(struct sock *sk, int shift)
-{
- struct percpu_counter *ocp = sk->sk_prot->orphan_count;
- int orphans = percpu_counter_read_positive(ocp);
-
- if (orphans << shift > sysctl_tcp_max_orphans) {
- orphans = percpu_counter_sum_positive(ocp);
- if (orphans << shift > sysctl_tcp_max_orphans)
- return true;
- }
- return false;
-}
-
-extern bool tcp_check_oom(struct sock *sk, int shift);
-
-/* syncookies: remember time of last synqueue overflow */
-static inline void tcp_synq_overflow(struct sock *sk)
-{
- tcp_sk(sk)->rx_opt.ts_recent_stamp = jiffies;
-}
-
-/* syncookies: no recent synqueue overflow on this listening socket? */
-static inline int tcp_synq_no_recent_overflow(const struct sock *sk)
-{
- unsigned long last_overflow = tcp_sk(sk)->rx_opt.ts_recent_stamp;
- return time_after(jiffies, last_overflow + TCP_TIMEOUT_FALLBACK);
-}
-
-extern struct proto tcp_prot;
-
-#define TCP_INC_STATS(net, field) SNMP_INC_STATS((net)->mib.tcp_statistics, field)
-#define TCP_INC_STATS_BH(net, field) SNMP_INC_STATS_BH((net)->mib.tcp_statistics, field)
-#define TCP_DEC_STATS(net, field) SNMP_DEC_STATS((net)->mib.tcp_statistics, field)
-#define TCP_ADD_STATS_USER(net, field, val) SNMP_ADD_STATS_USER((net)->mib.tcp_statistics, field, val)
-#define TCP_ADD_STATS(net, field, val) SNMP_ADD_STATS((net)->mib.tcp_statistics, field, val)
-
-extern void tcp_init_mem(struct net *net);
-
-extern void tcp_v4_err(struct sk_buff *skb, u32);
-
-extern void tcp_shutdown (struct sock *sk, int how);
-
-extern int tcp_v4_rcv(struct sk_buff *skb);
-
-extern struct inet_peer *tcp_v4_get_peer(struct sock *sk, bool *release_it);
-extern void *tcp_v4_tw_get_peer(struct sock *sk);
-extern int tcp_v4_tw_remember_stamp(struct inet_timewait_sock *tw);
-extern int tcp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
- size_t size);
-extern int tcp_sendpage(struct sock *sk, struct page *page, int offset,
- size_t size, int flags);
-extern int tcp_ioctl(struct sock *sk, int cmd, unsigned long arg);
-extern int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb,
- const struct tcphdr *th, unsigned int len);
-extern int tcp_rcv_established(struct sock *sk, struct sk_buff *skb,
- const struct tcphdr *th, unsigned int len);
-extern void tcp_rcv_space_adjust(struct sock *sk);
-extern void tcp_cleanup_rbuf(struct sock *sk, int copied);
-extern int tcp_twsk_unique(struct sock *sk, struct sock *sktw, void *twp);
-extern void tcp_twsk_destructor(struct sock *sk);
-extern ssize_t tcp_splice_read(struct socket *sk, loff_t *ppos,
- struct pipe_inode_info *pipe, size_t len,
- unsigned int flags);
-
-static inline void tcp_dec_quickack_mode(struct sock *sk,
- const unsigned int pkts)
-{
- struct inet_connection_sock *icsk = inet_csk(sk);
-
- if (icsk->icsk_ack.quick) {
- if (pkts >= icsk->icsk_ack.quick) {
- icsk->icsk_ack.quick = 0;
- /* Leaving quickack mode we deflate ATO. */
- icsk->icsk_ack.ato = TCP_ATO_MIN;
- } else
- icsk->icsk_ack.quick -= pkts;
- }
-}
-
-#define TCP_ECN_OK 1
-#define TCP_ECN_QUEUE_CWR 2
-#define TCP_ECN_DEMAND_CWR 4
-#define TCP_ECN_SEEN 8
-
-static __inline__ void
-TCP_ECN_create_request(struct request_sock *req, struct tcphdr *th)
-{
- if (sysctl_tcp_ecn && th->ece && th->cwr)
- inet_rsk(req)->ecn_ok = 1;
-}
-
-enum tcp_tw_status {
- TCP_TW_SUCCESS = 0,
- TCP_TW_RST = 1,
- TCP_TW_ACK = 2,
- TCP_TW_SYN = 3
-};
-
-
-extern enum tcp_tw_status tcp_timewait_state_process(struct inet_timewait_sock *tw,
- struct sk_buff *skb,
- const struct tcphdr *th);
-extern struct sock * tcp_check_req(struct sock *sk,struct sk_buff *skb,
- struct request_sock *req,
- struct request_sock **prev);
-extern int tcp_child_process(struct sock *parent, struct sock *child,
- struct sk_buff *skb);
-extern int tcp_use_frto(struct sock *sk);
-extern void tcp_enter_frto(struct sock *sk);
-extern void tcp_enter_loss(struct sock *sk, int how);
-extern void tcp_clear_retrans(struct tcp_sock *tp);
-extern void tcp_update_metrics(struct sock *sk);
-extern void tcp_close(struct sock *sk, long timeout);
-extern unsigned int tcp_poll(struct file * file, struct socket *sock,
- struct poll_table_struct *wait);
-extern int tcp_getsockopt(struct sock *sk, int level, int optname,
- char __user *optval, int __user *optlen);
-extern int tcp_setsockopt(struct sock *sk, int level, int optname,
- char __user *optval, unsigned int optlen);
-extern int compat_tcp_getsockopt(struct sock *sk, int level, int optname,
- char __user *optval, int __user *optlen);
-extern int compat_tcp_setsockopt(struct sock *sk, int level, int optname,
- char __user *optval, unsigned int optlen);
-extern void tcp_set_keepalive(struct sock *sk, int val);
-extern void tcp_syn_ack_timeout(struct sock *sk, struct request_sock *req);
-extern int tcp_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
- size_t len, int nonblock, int flags, int *addr_len);
-extern void tcp_parse_options(const struct sk_buff *skb,
- struct tcp_options_received *opt_rx, const u8 **hvpp,
- int estab);
-extern const u8 *tcp_parse_md5sig_option(const struct tcphdr *th);
-
-/*
- * TCP v4 functions exported for the inet6 API
- */
-
-extern void tcp_v4_send_check(struct sock *sk, struct sk_buff *skb);
-extern int tcp_v4_conn_request(struct sock *sk, struct sk_buff *skb);
-extern struct sock * tcp_create_openreq_child(struct sock *sk,
- struct request_sock *req,
- struct sk_buff *skb);
-extern struct sock * tcp_v4_syn_recv_sock(struct sock *sk, struct sk_buff *skb,
- struct request_sock *req,
- struct dst_entry *dst);
-extern int tcp_v4_do_rcv(struct sock *sk, struct sk_buff *skb);
-extern int tcp_v4_connect(struct sock *sk, struct sockaddr *uaddr,
- int addr_len);
-extern int tcp_connect(struct sock *sk);
-extern struct sk_buff * tcp_make_synack(struct sock *sk, struct dst_entry *dst,
- struct request_sock *req,
- struct request_values *rvp);
-extern int tcp_disconnect(struct sock *sk, int flags);
-
-
-/* From syncookies.c */
-extern __u32 syncookie_secret[2][16-4+SHA_DIGEST_WORDS];
-extern struct sock *cookie_v4_check(struct sock *sk, struct sk_buff *skb,
- struct ip_options *opt);
-#ifdef CONFIG_SYN_COOKIES
-extern __u32 cookie_v4_init_sequence(struct sock *sk, struct sk_buff *skb,
- __u16 *mss);
-#else
-static inline __u32 cookie_v4_init_sequence(struct sock *sk,
- struct sk_buff *skb,
- __u16 *mss)
-{
- return 0;
-}
-#endif
-
-extern __u32 cookie_init_timestamp(struct request_sock *req);
-extern bool cookie_check_timestamp(struct tcp_options_received *opt, bool *);
-
-/* From net/ipv6/syncookies.c */
-extern struct sock *cookie_v6_check(struct sock *sk, struct sk_buff *skb);
-#ifdef CONFIG_SYN_COOKIES
-extern __u32 cookie_v6_init_sequence(struct sock *sk, const struct sk_buff *skb,
- __u16 *mss);
-#else
-static inline __u32 cookie_v6_init_sequence(struct sock *sk,
- struct sk_buff *skb,
- __u16 *mss)
-{
- return 0;
-}
-#endif
-/* tcp_output.c */
-
-extern void __tcp_push_pending_frames(struct sock *sk, unsigned int cur_mss,
- int nonagle);
-extern int tcp_may_send_now(struct sock *sk);
-extern int tcp_retransmit_skb(struct sock *, struct sk_buff *);
-extern void tcp_retransmit_timer(struct sock *sk);
-extern void tcp_xmit_retransmit_queue(struct sock *);
-extern void tcp_simple_retransmit(struct sock *);
-extern int tcp_trim_head(struct sock *, struct sk_buff *, u32);
-extern int tcp_fragment(struct sock *, struct sk_buff *, u32, unsigned int);
-
-extern void tcp_send_probe0(struct sock *);
-extern void tcp_send_partial(struct sock *);
-extern int tcp_write_wakeup(struct sock *);
-extern void tcp_send_fin(struct sock *sk);
-extern void tcp_send_active_reset(struct sock *sk, gfp_t priority);
-extern int tcp_send_synack(struct sock *);
-extern int tcp_syn_flood_action(struct sock *sk,
- const struct sk_buff *skb,
- const char *proto);
-extern void tcp_push_one(struct sock *, unsigned int mss_now);
-extern void tcp_send_ack(struct sock *sk);
-extern void tcp_send_delayed_ack(struct sock *sk);
-
-/* tcp_input.c */
-extern void tcp_cwnd_application_limited(struct sock *sk);
-
-/* tcp_timer.c */
-extern void tcp_init_xmit_timers(struct sock *);
-static inline void tcp_clear_xmit_timers(struct sock *sk)
-{
- inet_csk_clear_xmit_timers(sk);
-}
-
-extern unsigned int tcp_sync_mss(struct sock *sk, u32 pmtu);
-extern unsigned int tcp_current_mss(struct sock *sk);
-
-/* Bound MSS / TSO packet size with the half of the window */
-static inline int tcp_bound_to_half_wnd(struct tcp_sock *tp, int pktsize)
-{
- int cutoff;
-
- /* When peer uses tiny windows, there is no use in packetizing
- * to sub-MSS pieces for the sake of SWS or making sure there
- * are enough packets in the pipe for fast recovery.
- *
- * On the other hand, for extremely large MSS devices, handling
- * smaller than MSS windows in this way does make sense.
- */
- if (tp->max_window >= 512)
- cutoff = (tp->max_window >> 1);
- else
- cutoff = tp->max_window;
-
- if (cutoff && pktsize > cutoff)
- return max_t(int, cutoff, 68U - tp->tcp_header_len);
- else
- return pktsize;
-}
-
-/* tcp.c */
-extern void tcp_get_info(const struct sock *, struct tcp_info *);
-
-/* Read 'sendfile()'-style from a TCP socket */
-typedef int (*sk_read_actor_t)(read_descriptor_t *, struct sk_buff *,
- unsigned int, size_t);
-extern int tcp_read_sock(struct sock *sk, read_descriptor_t *desc,
- sk_read_actor_t recv_actor);
-
-extern void tcp_initialize_rcv_mss(struct sock *sk);
-
-extern int tcp_mtu_to_mss(const struct sock *sk, int pmtu);
-extern int tcp_mss_to_mtu(const struct sock *sk, int mss);
-extern void tcp_mtup_init(struct sock *sk);
-extern void tcp_valid_rtt_meas(struct sock *sk, u32 seq_rtt);
-
-static inline void tcp_bound_rto(const struct sock *sk)
-{
- if (inet_csk(sk)->icsk_rto > TCP_RTO_MAX)
- inet_csk(sk)->icsk_rto = TCP_RTO_MAX;
-}
-
-static inline u32 __tcp_set_rto(const struct tcp_sock *tp)
-{
- return (tp->srtt >> 3) + tp->rttvar;
-}
-
-static inline void __tcp_fast_path_on(struct tcp_sock *tp, u32 snd_wnd)
-{
- tp->pred_flags = htonl((tp->tcp_header_len << 26) |
- ntohl(TCP_FLAG_ACK) |
- snd_wnd);
-}
-
-static inline void tcp_fast_path_on(struct tcp_sock *tp)
-{
- __tcp_fast_path_on(tp, tp->snd_wnd >> tp->rx_opt.snd_wscale);
-}
-
-static inline void tcp_fast_path_check(struct sock *sk)
-{
- struct tcp_sock *tp = tcp_sk(sk);
-
- if (skb_queue_empty(&tp->out_of_order_queue) &&
- tp->rcv_wnd &&
- atomic_read(&sk->sk_rmem_alloc) < sk->sk_rcvbuf &&
- !tp->urg_data)
- tcp_fast_path_on(tp);
-}
-
-/* Compute the actual rto_min value */
-static inline u32 tcp_rto_min(struct sock *sk)
-{
- const struct dst_entry *dst = __sk_dst_get(sk);
- u32 rto_min = TCP_RTO_MIN;
-
- if (dst && dst_metric_locked(dst, RTAX_RTO_MIN))
- rto_min = dst_metric_rtt(dst, RTAX_RTO_MIN);
- return rto_min;
-}
-
-/* Compute the actual receive window we are currently advertising.
- * Rcv_nxt can be after the window if our peer push more data
- * than the offered window.
- */
-static inline u32 tcp_receive_window(const struct tcp_sock *tp)
-{
- s32 win = tp->rcv_wup + tp->rcv_wnd - tp->rcv_nxt;
-
- if (win < 0)
- win = 0;
- return (u32) win;
-}
-
-/* Choose a new window, without checks for shrinking, and without
- * scaling applied to the result. The caller does these things
- * if necessary. This is a "raw" window selection.
- */
-extern u32 __tcp_select_window(struct sock *sk);
-
-/* TCP timestamps are only 32-bits, this causes a slight
- * complication on 64-bit systems since we store a snapshot
- * of jiffies in the buffer control blocks below. We decided
- * to use only the low 32-bits of jiffies and hide the ugly
- * casts with the following macro.
- */
-#define tcp_time_stamp ((__u32)(jiffies))
-
-#define tcp_flag_byte(th) (((u_int8_t *)th)[13])
-
-#define TCPHDR_FIN 0x01
-#define TCPHDR_SYN 0x02
-#define TCPHDR_RST 0x04
-#define TCPHDR_PSH 0x08
-#define TCPHDR_ACK 0x10
-#define TCPHDR_URG 0x20
-#define TCPHDR_ECE 0x40
-#define TCPHDR_CWR 0x80
-
-/* This is what the send packet queuing engine uses to pass
- * TCP per-packet control information to the transmission code.
- * We also store the host-order sequence numbers in here too.
- * This is 44 bytes if IPV6 is enabled.
- * If this grows please adjust skbuff.h:skbuff->cb[xxx] size appropriately.
- */
-struct tcp_skb_cb {
- union {
- struct inet_skb_parm h4;
-#if IS_ENABLED(CONFIG_IPV6)
- struct inet6_skb_parm h6;
-#endif
- } header; /* For incoming frames */
- __u32 seq; /* Starting sequence number */
- __u32 end_seq; /* SEQ + FIN + SYN + datalen */
- __u32 when; /* used to compute rtt's */
- __u8 tcp_flags; /* TCP header flags. (tcp[13]) */
- __u8 sacked; /* State flags for SACK/FACK. */
-#define TCPCB_SACKED_ACKED 0x01 /* SKB ACK'd by a SACK block */
-#define TCPCB_SACKED_RETRANS 0x02 /* SKB retransmitted */
-#define TCPCB_LOST 0x04 /* SKB is lost */
-#define TCPCB_TAGBITS 0x07 /* All tag bits */
- __u8 ip_dsfield; /* IPv4 tos or IPv6 dsfield */
- /* 1 byte hole */
-#define TCPCB_EVER_RETRANS 0x80 /* Ever retransmitted frame */
-#define TCPCB_RETRANS (TCPCB_SACKED_RETRANS|TCPCB_EVER_RETRANS)
-
- __u32 ack_seq; /* Sequence number ACK'd */
-};
-
-#define TCP_SKB_CB(__skb) ((struct tcp_skb_cb *)&((__skb)->cb[0]))
-
-/* Due to TSO, an SKB can be composed of multiple actual
- * packets. To keep these tracked properly, we use this.
- */
-static inline int tcp_skb_pcount(const struct sk_buff *skb)
-{
- return skb_shinfo(skb)->gso_segs;
-}
-
-/* This is valid iff tcp_skb_pcount() > 1. */
-static inline int tcp_skb_mss(const struct sk_buff *skb)
-{
- return skb_shinfo(skb)->gso_size;
-}
-
-/* Events passed to congestion control interface */
-enum tcp_ca_event {
- CA_EVENT_TX_START, /* first transmit when no packets in flight */
- CA_EVENT_CWND_RESTART, /* congestion window restart */
- CA_EVENT_COMPLETE_CWR, /* end of congestion recovery */
- CA_EVENT_FRTO, /* fast recovery timeout */
- CA_EVENT_LOSS, /* loss timeout */
- CA_EVENT_FAST_ACK, /* in sequence ack */
- CA_EVENT_SLOW_ACK, /* other ack */
-};
-
-/*
- * Interface for adding new TCP congestion control handlers
- */
-#define TCP_CA_NAME_MAX 16
-#define TCP_CA_MAX 128
-#define TCP_CA_BUF_MAX (TCP_CA_NAME_MAX*TCP_CA_MAX)
-
-#define TCP_CONG_NON_RESTRICTED 0x1
-#define TCP_CONG_RTT_STAMP 0x2
-
-struct tcp_congestion_ops {
- struct list_head list;
- unsigned long flags;
-
- /* initialize private data (optional) */
- void (*init)(struct sock *sk);
- /* cleanup private data (optional) */
- void (*release)(struct sock *sk);
-
- /* return slow start threshold (required) */
- u32 (*ssthresh)(struct sock *sk);
- /* lower bound for congestion window (optional) */
- u32 (*min_cwnd)(const struct sock *sk);
- /* do new cwnd calculation (required) */
- void (*cong_avoid)(struct sock *sk, u32 ack, u32 in_flight);
- /* call before changing ca_state (optional) */
- void (*set_state)(struct sock *sk, u8 new_state);
- /* call when cwnd event occurs (optional) */
- void (*cwnd_event)(struct sock *sk, enum tcp_ca_event ev);
- /* new value of cwnd after loss (optional) */
- u32 (*undo_cwnd)(struct sock *sk);
- /* hook for packet ack accounting (optional) */
- void (*pkts_acked)(struct sock *sk, u32 num_acked, s32 rtt_us);
- /* get info for inet_diag (optional) */
- void (*get_info)(struct sock *sk, u32 ext, struct sk_buff *skb);
-
- char name[TCP_CA_NAME_MAX];
- struct module *owner;
-};
-
-extern int tcp_register_congestion_control(struct tcp_congestion_ops *type);
-extern void tcp_unregister_congestion_control(struct tcp_congestion_ops *type);
-
-extern void tcp_init_congestion_control(struct sock *sk);
-extern void tcp_cleanup_congestion_control(struct sock *sk);
-extern int tcp_set_default_congestion_control(const char *name);
-extern void tcp_get_default_congestion_control(char *name);
-extern void tcp_get_available_congestion_control(char *buf, size_t len);
-extern void tcp_get_allowed_congestion_control(char *buf, size_t len);
-extern int tcp_set_allowed_congestion_control(char *allowed);
-extern int tcp_set_congestion_control(struct sock *sk, const char *name);
-extern void tcp_slow_start(struct tcp_sock *tp);
-extern void tcp_cong_avoid_ai(struct tcp_sock *tp, u32 w);
-
-extern struct tcp_congestion_ops tcp_init_congestion_ops;
-extern u32 tcp_reno_ssthresh(struct sock *sk);
-extern void tcp_reno_cong_avoid(struct sock *sk, u32 ack, u32 in_flight);
-extern u32 tcp_reno_min_cwnd(const struct sock *sk);
-extern struct tcp_congestion_ops tcp_reno;
-
-static inline void tcp_set_ca_state(struct sock *sk, const u8 ca_state)
-{
- struct inet_connection_sock *icsk = inet_csk(sk);
-
- if (icsk->icsk_ca_ops->set_state)
- icsk->icsk_ca_ops->set_state(sk, ca_state);
- icsk->icsk_ca_state = ca_state;
-}
-
-static inline void tcp_ca_event(struct sock *sk, const enum tcp_ca_event event)
-{
- const struct inet_connection_sock *icsk = inet_csk(sk);
-
- if (icsk->icsk_ca_ops->cwnd_event)
- icsk->icsk_ca_ops->cwnd_event(sk, event);
-}
-
-/* These functions determine how the current flow behaves in respect of SACK
- * handling. SACK is negotiated with the peer, and therefore it can vary
- * between different flows.
- *
- * tcp_is_sack - SACK enabled
- * tcp_is_reno - No SACK
- * tcp_is_fack - FACK enabled, implies SACK enabled
- */
-static inline int tcp_is_sack(const struct tcp_sock *tp)
-{
- return tp->rx_opt.sack_ok;
-}
-
-static inline int tcp_is_reno(const struct tcp_sock *tp)
-{
- return !tcp_is_sack(tp);
-}
-
-static inline int tcp_is_fack(const struct tcp_sock *tp)
-{
- return tp->rx_opt.sack_ok & TCP_FACK_ENABLED;
-}
-
-static inline void tcp_enable_fack(struct tcp_sock *tp)
-{
- tp->rx_opt.sack_ok |= TCP_FACK_ENABLED;
-}
-
-static inline unsigned int tcp_left_out(const struct tcp_sock *tp)
-{
- return tp->sacked_out + tp->lost_out;
-}
-
-/* This determines how many packets are "in the network" to the best
- * of our knowledge. In many cases it is conservative, but where
- * detailed information is available from the receiver (via SACK
- * blocks etc.) we can make more aggressive calculations.
- *
- * Use this for decisions involving congestion control, use just
- * tp->packets_out to determine if the send queue is empty or not.
- *
- * Read this equation as:
- *
- * "Packets sent once on transmission queue" MINUS
- * "Packets left network, but not honestly ACKed yet" PLUS
- * "Packets fast retransmitted"
- */
-static inline unsigned int tcp_packets_in_flight(const struct tcp_sock *tp)
-{
- return tp->packets_out - tcp_left_out(tp) + tp->retrans_out;
-}
-
-#define TCP_INFINITE_SSTHRESH 0x7fffffff
-
-static inline bool tcp_in_initial_slowstart(const struct tcp_sock *tp)
-{
- return tp->snd_ssthresh >= TCP_INFINITE_SSTHRESH;
-}
-
-/* If cwnd > ssthresh, we may raise ssthresh to be half-way to cwnd.
- * The exception is rate halving phase, when cwnd is decreasing towards
- * ssthresh.
- */
-static inline __u32 tcp_current_ssthresh(const struct sock *sk)
-{
- const struct tcp_sock *tp = tcp_sk(sk);
-
- if ((1 << inet_csk(sk)->icsk_ca_state) & (TCPF_CA_CWR | TCPF_CA_Recovery))
- return tp->snd_ssthresh;
- else
- return max(tp->snd_ssthresh,
- ((tp->snd_cwnd >> 1) +
- (tp->snd_cwnd >> 2)));
-}
-
-/* Use define here intentionally to get WARN_ON location shown at the caller */
-#define tcp_verify_left_out(tp) WARN_ON(tcp_left_out(tp) > tp->packets_out)
-
-extern void tcp_enter_cwr(struct sock *sk, const int set_ssthresh);
-extern __u32 tcp_init_cwnd(const struct tcp_sock *tp, const struct dst_entry *dst);
-
-/* The maximum number of MSS of available cwnd for which TSO defers
- * sending if not using sysctl_tcp_tso_win_divisor.
- */
-static inline __u32 tcp_max_tso_deferred_mss(const struct tcp_sock *tp)
-{
- return 3;
-}
-
-/* Slow start with delack produces 3 packets of burst, so that
- * it is safe "de facto". This will be the default - same as
- * the default reordering threshold - but if reordering increases,
- * we must be able to allow cwnd to burst at least this much in order
- * to not pull it back when holes are filled.
- */
-static __inline__ __u32 tcp_max_burst(const struct tcp_sock *tp)
-{
- return tp->reordering;
-}
-
-/* Returns end sequence number of the receiver's advertised window */
-static inline u32 tcp_wnd_end(const struct tcp_sock *tp)
-{
- return tp->snd_una + tp->snd_wnd;
-}
-extern int tcp_is_cwnd_limited(const struct sock *sk, u32 in_flight);
-
-static inline void tcp_minshall_update(struct tcp_sock *tp, unsigned int mss,
- const struct sk_buff *skb)
-{
- if (skb->len < mss)
- tp->snd_sml = TCP_SKB_CB(skb)->end_seq;
-}
-
-static inline void tcp_check_probe_timer(struct sock *sk)
-{
- const struct tcp_sock *tp = tcp_sk(sk);
- const struct inet_connection_sock *icsk = inet_csk(sk);
-
- if (!tp->packets_out && !icsk->icsk_pending)
- inet_csk_reset_xmit_timer(sk, ICSK_TIME_PROBE0,
- icsk->icsk_rto, TCP_RTO_MAX);
-}
-
-static inline void tcp_init_wl(struct tcp_sock *tp, u32 seq)
-{
- tp->snd_wl1 = seq;
-}
-
-static inline void tcp_update_wl(struct tcp_sock *tp, u32 seq)
-{
- tp->snd_wl1 = seq;
-}
-
-/*
- * Calculate(/check) TCP checksum
- */
-static inline __sum16 tcp_v4_check(int len, __be32 saddr,
- __be32 daddr, __wsum base)
-{
- return csum_tcpudp_magic(saddr,daddr,len,IPPROTO_TCP,base);
-}
-
-static inline __sum16 __tcp_checksum_complete(struct sk_buff *skb)
-{
- return __skb_checksum_complete(skb);
-}
-
-static inline int tcp_checksum_complete(struct sk_buff *skb)
-{
- return !skb_csum_unnecessary(skb) &&
- __tcp_checksum_complete(skb);
-}
-
-/* Prequeue for VJ style copy to user, combined with checksumming. */
-
-static inline void tcp_prequeue_init(struct tcp_sock *tp)
-{
- tp->ucopy.task = NULL;
- tp->ucopy.len = 0;
- tp->ucopy.memory = 0;
- skb_queue_head_init(&tp->ucopy.prequeue);
-#ifdef CONFIG_NET_DMA
- tp->ucopy.dma_chan = NULL;
- tp->ucopy.wakeup = 0;
- tp->ucopy.pinned_list = NULL;
- tp->ucopy.dma_cookie = 0;
-#endif
-}
-
-/* Packet is added to VJ-style prequeue for processing in process
- * context, if a reader task is waiting. Apparently, this exciting
- * idea (VJ's mail "Re: query about TCP header on tcp-ip" of 07 Sep 93)
- * failed somewhere. Latency? Burstiness? Well, at least now we will
- * see, why it failed. 8)8) --ANK
- *
- * NOTE: is this not too big to inline?
- */
-static inline int tcp_prequeue(struct sock *sk, struct sk_buff *skb)
-{
- struct tcp_sock *tp = tcp_sk(sk);
-
- if (sysctl_tcp_low_latency || !tp->ucopy.task)
- return 0;
-
- __skb_queue_tail(&tp->ucopy.prequeue, skb);
- tp->ucopy.memory += skb->truesize;
- if (tp->ucopy.memory > sk->sk_rcvbuf) {
- struct sk_buff *skb1;
-
- BUG_ON(sock_owned_by_user(sk));
-
- while ((skb1 = __skb_dequeue(&tp->ucopy.prequeue)) != NULL) {
- sk_backlog_rcv(sk, skb1);
- NET_INC_STATS_BH(sock_net(sk),
- LINUX_MIB_TCPPREQUEUEDROPPED);
- }
-
- tp->ucopy.memory = 0;
- } else if (skb_queue_len(&tp->ucopy.prequeue) == 1) {
- wake_up_interruptible_sync_poll(sk_sleep(sk),
- POLLIN | POLLRDNORM | POLLRDBAND);
- if (!inet_csk_ack_scheduled(sk))
- inet_csk_reset_xmit_timer(sk, ICSK_TIME_DACK,
- (3 * tcp_rto_min(sk)) / 4,
- TCP_RTO_MAX);
- }
- return 1;
-}
-
-
-#undef STATE_TRACE
-
-#ifdef STATE_TRACE
-static const char *statename[]={
- "Unused","Established","Syn Sent","Syn Recv",
- "Fin Wait 1","Fin Wait 2","Time Wait", "Close",
- "Close Wait","Last ACK","Listen","Closing"
-};
-#endif
-extern void tcp_set_state(struct sock *sk, int state);
-
-extern void tcp_done(struct sock *sk);
-
-static inline void tcp_sack_reset(struct tcp_options_received *rx_opt)
-{
- rx_opt->dsack = 0;
- rx_opt->num_sacks = 0;
-}
-
-/* Determine a window scaling and initial window to offer. */
-extern void tcp_select_initial_window(int __space, __u32 mss,
- __u32 *rcv_wnd, __u32 *window_clamp,
- int wscale_ok, __u8 *rcv_wscale,
- __u32 init_rcv_wnd);
-
-static inline int tcp_win_from_space(int space)
-{
- return sysctl_tcp_adv_win_scale<=0 ?
- (space>>(-sysctl_tcp_adv_win_scale)) :
- space - (space>>sysctl_tcp_adv_win_scale);
-}
-
-/* Note: caller must be prepared to deal with negative returns */
-static inline int tcp_space(const struct sock *sk)
-{
- return tcp_win_from_space(sk->sk_rcvbuf -
- atomic_read(&sk->sk_rmem_alloc));
-}
-
-static inline int tcp_full_space(const struct sock *sk)
-{
- return tcp_win_from_space(sk->sk_rcvbuf);
-}
-
-static inline void tcp_openreq_init(struct request_sock *req,
- struct tcp_options_received *rx_opt,
- struct sk_buff *skb)
-{
- struct inet_request_sock *ireq = inet_rsk(req);
-
- req->rcv_wnd = 0; /* So that tcp_send_synack() knows! */
- req->cookie_ts = 0;
- tcp_rsk(req)->rcv_isn = TCP_SKB_CB(skb)->seq;
- req->mss = rx_opt->mss_clamp;
- req->ts_recent = rx_opt->saw_tstamp ? rx_opt->rcv_tsval : 0;
- ireq->tstamp_ok = rx_opt->tstamp_ok;
- ireq->sack_ok = rx_opt->sack_ok;
- ireq->snd_wscale = rx_opt->snd_wscale;
- ireq->wscale_ok = rx_opt->wscale_ok;
- ireq->acked = 0;
- ireq->ecn_ok = 0;
- ireq->rmt_port = tcp_hdr(skb)->source;
- ireq->loc_port = tcp_hdr(skb)->dest;
-}
-
-extern void tcp_enter_memory_pressure(struct sock *sk);
-
-static inline int keepalive_intvl_when(const struct tcp_sock *tp)
-{
- return tp->keepalive_intvl ? : sysctl_tcp_keepalive_intvl;
-}
-
-static inline int keepalive_time_when(const struct tcp_sock *tp)
-{
- return tp->keepalive_time ? : sysctl_tcp_keepalive_time;
-}
-
-static inline int keepalive_probes(const struct tcp_sock *tp)
-{
- return tp->keepalive_probes ? : sysctl_tcp_keepalive_probes;
-}
-
-static inline u32 keepalive_time_elapsed(const struct tcp_sock *tp)
-{
- const struct inet_connection_sock *icsk = &tp->inet_conn;
-
- return min_t(u32, tcp_time_stamp - icsk->icsk_ack.lrcvtime,
- tcp_time_stamp - tp->rcv_tstamp);
-}
-
-static inline int tcp_fin_time(const struct sock *sk)
-{
- int fin_timeout = tcp_sk(sk)->linger2 ? : sysctl_tcp_fin_timeout;
- const int rto = inet_csk(sk)->icsk_rto;
-
- if (fin_timeout < (rto << 2) - (rto >> 1))
- fin_timeout = (rto << 2) - (rto >> 1);
-
- return fin_timeout;
-}
-
-static inline int tcp_paws_check(const struct tcp_options_received *rx_opt,
- int paws_win)
-{
- if ((s32)(rx_opt->ts_recent - rx_opt->rcv_tsval) <= paws_win)
- return 1;
- if (unlikely(get_seconds() >= rx_opt->ts_recent_stamp + TCP_PAWS_24DAYS))
- return 1;
- /*
- * Some OSes send SYN and SYNACK messages with tsval=0 tsecr=0,
- * then following tcp messages have valid values. Ignore 0 value,
- * or else 'negative' tsval might forbid us to accept their packets.
- */
- if (!rx_opt->ts_recent)
- return 1;
- return 0;
-}
-
-static inline int tcp_paws_reject(const struct tcp_options_received *rx_opt,
- int rst)
-{
- if (tcp_paws_check(rx_opt, 0))
- return 0;
-
- /* RST segments are not recommended to carry timestamp,
- and, if they do, it is recommended to ignore PAWS because
- "their cleanup function should take precedence over timestamps."
- Certainly, it is mistake. It is necessary to understand the reasons
- of this constraint to relax it: if peer reboots, clock may go
- out-of-sync and half-open connections will not be reset.
- Actually, the problem would be not existing if all
- the implementations followed draft about maintaining clock
- via reboots. Linux-2.2 DOES NOT!
-
- However, we can relax time bounds for RST segments to MSL.
- */
- if (rst && get_seconds() >= rx_opt->ts_recent_stamp + TCP_PAWS_MSL)
- return 0;
- return 1;
-}
-
-static inline void tcp_mib_init(struct net *net)
-{
- /* See RFC 2012 */
- TCP_ADD_STATS_USER(net, TCP_MIB_RTOALGORITHM, 1);
- TCP_ADD_STATS_USER(net, TCP_MIB_RTOMIN, TCP_RTO_MIN*1000/HZ);
- TCP_ADD_STATS_USER(net, TCP_MIB_RTOMAX, TCP_RTO_MAX*1000/HZ);
- TCP_ADD_STATS_USER(net, TCP_MIB_MAXCONN, -1);
-}
-
-/* from STCP */
-static inline void tcp_clear_retrans_hints_partial(struct tcp_sock *tp)
-{
- tp->lost_skb_hint = NULL;
- tp->scoreboard_skb_hint = NULL;
-}
-
-static inline void tcp_clear_all_retrans_hints(struct tcp_sock *tp)
-{
- tcp_clear_retrans_hints_partial(tp);
- tp->retransmit_skb_hint = NULL;
-}
-
-/* MD5 Signature */
-struct crypto_hash;
-
-union tcp_md5_addr {
- struct in_addr a4;
-#if IS_ENABLED(CONFIG_IPV6)
- struct in6_addr a6;
-#endif
-};
-
-/* - key database */
-struct tcp_md5sig_key {
- struct hlist_node node;
- u8 keylen;
- u8 family; /* AF_INET or AF_INET6 */
- union tcp_md5_addr addr;
- u8 key[TCP_MD5SIG_MAXKEYLEN];
- struct rcu_head rcu;
-};
-
-/* - sock block */
-struct tcp_md5sig_info {
- struct hlist_head head;
- struct rcu_head rcu;
-};
-
-/* - pseudo header */
-struct tcp4_pseudohdr {
- __be32 saddr;
- __be32 daddr;
- __u8 pad;
- __u8 protocol;
- __be16 len;
-};
-
-struct tcp6_pseudohdr {
- struct in6_addr saddr;
- struct in6_addr daddr;
- __be32 len;
- __be32 protocol; /* including padding */
-};
-
-union tcp_md5sum_block {
- struct tcp4_pseudohdr ip4;
-#if IS_ENABLED(CONFIG_IPV6)
- struct tcp6_pseudohdr ip6;
-#endif
-};
-
-/* - pool: digest algorithm, hash description and scratch buffer */
-struct tcp_md5sig_pool {
- struct hash_desc md5_desc;
- union tcp_md5sum_block md5_blk;
-};
-
-/* - functions */
-extern int tcp_v4_md5_hash_skb(char *md5_hash, struct tcp_md5sig_key *key,
- const struct sock *sk,
- const struct request_sock *req,
- const struct sk_buff *skb);
-extern int tcp_md5_do_add(struct sock *sk, const union tcp_md5_addr *addr,
- int family, const u8 *newkey,
- u8 newkeylen, gfp_t gfp);
-extern int tcp_md5_do_del(struct sock *sk, const union tcp_md5_addr *addr,
- int family);
-extern struct tcp_md5sig_key *tcp_v4_md5_lookup(struct sock *sk,
- struct sock *addr_sk);
-
-#ifdef CONFIG_TCP_MD5SIG
-extern struct tcp_md5sig_key *tcp_md5_do_lookup(struct sock *sk,
- const union tcp_md5_addr *addr, int family);
-#define tcp_twsk_md5_key(twsk) ((twsk)->tw_md5_key)
-#else
-static inline struct tcp_md5sig_key *tcp_md5_do_lookup(struct sock *sk,
- const union tcp_md5_addr *addr,
- int family)
-{
- return NULL;
-}
-#define tcp_twsk_md5_key(twsk) NULL
-#endif
-
-extern struct tcp_md5sig_pool __percpu *tcp_alloc_md5sig_pool(struct sock *);
-extern void tcp_free_md5sig_pool(void);
-
-extern struct tcp_md5sig_pool *tcp_get_md5sig_pool(void);
-extern void tcp_put_md5sig_pool(void);
-
-extern int tcp_md5_hash_header(struct tcp_md5sig_pool *, const struct tcphdr *);
-extern int tcp_md5_hash_skb_data(struct tcp_md5sig_pool *, const struct sk_buff *,
- unsigned header_len);
-extern int tcp_md5_hash_key(struct tcp_md5sig_pool *hp,
- const struct tcp_md5sig_key *key);
-
-/* write queue abstraction */
-static inline void tcp_write_queue_purge(struct sock *sk)
-{
- struct sk_buff *skb;
-
- while ((skb = __skb_dequeue(&sk->sk_write_queue)) != NULL)
- sk_wmem_free_skb(sk, skb);
- sk_mem_reclaim(sk);
- tcp_clear_all_retrans_hints(tcp_sk(sk));
-}
-
-static inline struct sk_buff *tcp_write_queue_head(const struct sock *sk)
-{
- return skb_peek(&sk->sk_write_queue);
-}
-
-static inline struct sk_buff *tcp_write_queue_tail(const struct sock *sk)
-{
- return skb_peek_tail(&sk->sk_write_queue);
-}
-
-static inline struct sk_buff *tcp_write_queue_next(const struct sock *sk,
- const struct sk_buff *skb)
-{
- return skb_queue_next(&sk->sk_write_queue, skb);
-}
-
-static inline struct sk_buff *tcp_write_queue_prev(const struct sock *sk,
- const struct sk_buff *skb)
-{
- return skb_queue_prev(&sk->sk_write_queue, skb);
-}
-
-#define tcp_for_write_queue(skb, sk) \
- skb_queue_walk(&(sk)->sk_write_queue, skb)
-
-#define tcp_for_write_queue_from(skb, sk) \
- skb_queue_walk_from(&(sk)->sk_write_queue, skb)
-
-#define tcp_for_write_queue_from_safe(skb, tmp, sk) \
- skb_queue_walk_from_safe(&(sk)->sk_write_queue, skb, tmp)
-
-static inline struct sk_buff *tcp_send_head(const struct sock *sk)
-{
- return sk->sk_send_head;
-}
-
-static inline bool tcp_skb_is_last(const struct sock *sk,
- const struct sk_buff *skb)
-{
- return skb_queue_is_last(&sk->sk_write_queue, skb);
-}
-
-static inline void tcp_advance_send_head(struct sock *sk, const struct sk_buff *skb)
-{
- if (tcp_skb_is_last(sk, skb))
- sk->sk_send_head = NULL;
- else
- sk->sk_send_head = tcp_write_queue_next(sk, skb);
-}
-
-static inline void tcp_check_send_head(struct sock *sk, struct sk_buff *skb_unlinked)
-{
- if (sk->sk_send_head == skb_unlinked)
- sk->sk_send_head = NULL;
-}
-
-static inline void tcp_init_send_head(struct sock *sk)
-{
- sk->sk_send_head = NULL;
-}
-
-static inline void __tcp_add_write_queue_tail(struct sock *sk, struct sk_buff *skb)
-{
- __skb_queue_tail(&sk->sk_write_queue, skb);
-}
-
-static inline void tcp_add_write_queue_tail(struct sock *sk, struct sk_buff *skb)
-{
- __tcp_add_write_queue_tail(sk, skb);
-
- /* Queue it, remembering where we must start sending. */
- if (sk->sk_send_head == NULL) {
- sk->sk_send_head = skb;
-
- if (tcp_sk(sk)->highest_sack == NULL)
- tcp_sk(sk)->highest_sack = skb;
- }
-}
-
-static inline void __tcp_add_write_queue_head(struct sock *sk, struct sk_buff *skb)
-{
- __skb_queue_head(&sk->sk_write_queue, skb);
-}
-
-/* Insert buff after skb on the write queue of sk. */
-static inline void tcp_insert_write_queue_after(struct sk_buff *skb,
- struct sk_buff *buff,
- struct sock *sk)
-{
- __skb_queue_after(&sk->sk_write_queue, skb, buff);
-}
-
-/* Insert new before skb on the write queue of sk. */
-static inline void tcp_insert_write_queue_before(struct sk_buff *new,
- struct sk_buff *skb,
- struct sock *sk)
-{
- __skb_queue_before(&sk->sk_write_queue, skb, new);
-
- if (sk->sk_send_head == skb)
- sk->sk_send_head = new;
-}
-
-static inline void tcp_unlink_write_queue(struct sk_buff *skb, struct sock *sk)
-{
- __skb_unlink(skb, &sk->sk_write_queue);
-}
-
-static inline int tcp_write_queue_empty(struct sock *sk)
-{
- return skb_queue_empty(&sk->sk_write_queue);
-}
-
-static inline void tcp_push_pending_frames(struct sock *sk)
-{
- if (tcp_send_head(sk)) {
- struct tcp_sock *tp = tcp_sk(sk);
-
- __tcp_push_pending_frames(sk, tcp_current_mss(sk), tp->nonagle);
- }
-}
-
-/* Start sequence of the skb just after the highest skb with SACKed
- * bit, valid only if sacked_out > 0 or when the caller has ensured
- * validity by itself.
- */
-static inline u32 tcp_highest_sack_seq(struct tcp_sock *tp)
-{
- if (!tp->sacked_out)
- return tp->snd_una;
-
- if (tp->highest_sack == NULL)
- return tp->snd_nxt;
-
- return TCP_SKB_CB(tp->highest_sack)->seq;
-}
-
-static inline void tcp_advance_highest_sack(struct sock *sk, struct sk_buff *skb)
-{
- tcp_sk(sk)->highest_sack = tcp_skb_is_last(sk, skb) ? NULL :
- tcp_write_queue_next(sk, skb);
-}
-
-static inline struct sk_buff *tcp_highest_sack(struct sock *sk)
-{
- return tcp_sk(sk)->highest_sack;
-}
-
-static inline void tcp_highest_sack_reset(struct sock *sk)
-{
- tcp_sk(sk)->highest_sack = tcp_write_queue_head(sk);
-}
-
-/* Called when old skb is about to be deleted (to be combined with new skb) */
-static inline void tcp_highest_sack_combine(struct sock *sk,
- struct sk_buff *old,
- struct sk_buff *new)
-{
- if (tcp_sk(sk)->sacked_out && (old == tcp_sk(sk)->highest_sack))
- tcp_sk(sk)->highest_sack = new;
-}
-
-/* Determines whether this is a thin stream (which may suffer from
- * increased latency). Used to trigger latency-reducing mechanisms.
- */
-static inline unsigned int tcp_stream_is_thin(struct tcp_sock *tp)
-{
- return tp->packets_out < 4 && !tcp_in_initial_slowstart(tp);
-}
-
-/* /proc */
-enum tcp_seq_states {
- TCP_SEQ_STATE_LISTENING,
- TCP_SEQ_STATE_OPENREQ,
- TCP_SEQ_STATE_ESTABLISHED,
- TCP_SEQ_STATE_TIME_WAIT,
-};
-
-int tcp_seq_open(struct inode *inode, struct file *file);
-
-struct tcp_seq_afinfo {
- char *name;
- sa_family_t family;
- const struct file_operations *seq_fops;
- struct seq_operations seq_ops;
-};
-
-struct tcp_iter_state {
- struct seq_net_private p;
- sa_family_t family;
- enum tcp_seq_states state;
- struct sock *syn_wait_sk;
- int bucket, offset, sbucket, num, uid;
- loff_t last_pos;
-};
-
-extern int tcp_proc_register(struct net *net, struct tcp_seq_afinfo *afinfo);
-extern void tcp_proc_unregister(struct net *net, struct tcp_seq_afinfo *afinfo);
-
-extern struct request_sock_ops tcp_request_sock_ops;
-extern struct request_sock_ops tcp6_request_sock_ops;
-
-extern void tcp_v4_destroy_sock(struct sock *sk);
-
-extern int tcp_v4_gso_send_check(struct sk_buff *skb);
-extern struct sk_buff *tcp_tso_segment(struct sk_buff *skb,
- netdev_features_t features);
-extern struct sk_buff **tcp_gro_receive(struct sk_buff **head,
- struct sk_buff *skb);
-extern struct sk_buff **tcp4_gro_receive(struct sk_buff **head,
- struct sk_buff *skb);
-extern int tcp_gro_complete(struct sk_buff *skb);
-extern int tcp4_gro_complete(struct sk_buff *skb);
-
-extern int tcp_nuke_addr(struct net *net, struct sockaddr *addr);
-
-#ifdef CONFIG_PROC_FS
-extern int tcp4_proc_init(void);
-extern void tcp4_proc_exit(void);
-#endif
-
-/* TCP af-specific functions */
-struct tcp_sock_af_ops {
-#ifdef CONFIG_TCP_MD5SIG
- struct tcp_md5sig_key *(*md5_lookup) (struct sock *sk,
- struct sock *addr_sk);
- int (*calc_md5_hash) (char *location,
- struct tcp_md5sig_key *md5,
- const struct sock *sk,
- const struct request_sock *req,
- const struct sk_buff *skb);
- int (*md5_parse) (struct sock *sk,
- char __user *optval,
- int optlen);
-#endif
-};
-
-struct tcp_request_sock_ops {
-#ifdef CONFIG_TCP_MD5SIG
- struct tcp_md5sig_key *(*md5_lookup) (struct sock *sk,
- struct request_sock *req);
- int (*calc_md5_hash) (char *location,
- struct tcp_md5sig_key *md5,
- const struct sock *sk,
- const struct request_sock *req,
- const struct sk_buff *skb);
-#endif
-};
-
-/* Using SHA1 for now, define some constants.
- */
-#define COOKIE_DIGEST_WORDS (SHA_DIGEST_WORDS)
-#define COOKIE_MESSAGE_WORDS (SHA_MESSAGE_BYTES / 4)
-#define COOKIE_WORKSPACE_WORDS (COOKIE_DIGEST_WORDS + COOKIE_MESSAGE_WORDS)
-
-extern int tcp_cookie_generator(u32 *bakery);
-
-/**
- * struct tcp_cookie_values - each socket needs extra space for the
- * cookies, together with (optional) space for any SYN data.
- *
- * A tcp_sock contains a pointer to the current value, and this is
- * cloned to the tcp_timewait_sock.
- *
- * @cookie_pair: variable data from the option exchange.
- *
- * @cookie_desired: user specified tcpct_cookie_desired. Zero
- * indicates default (sysctl_tcp_cookie_size).
- * After cookie sent, remembers size of cookie.
- * Range 0, TCP_COOKIE_MIN to TCP_COOKIE_MAX.
- *
- * @s_data_desired: user specified tcpct_s_data_desired. When the
- * constant payload is specified (@s_data_constant),
- * holds its length instead.
- * Range 0 to TCP_MSS_DESIRED.
- *
- * @s_data_payload: constant data that is to be included in the
- * payload of SYN or SYNACK segments when the
- * cookie option is present.
- */
-struct tcp_cookie_values {
- struct kref kref;
- u8 cookie_pair[TCP_COOKIE_PAIR_SIZE];
- u8 cookie_pair_size;
- u8 cookie_desired;
- u16 s_data_desired:11,
- s_data_constant:1,
- s_data_in:1,
- s_data_out:1,
- s_data_unused:2;
- u8 s_data_payload[0];
-};
-
-static inline void tcp_cookie_values_release(struct kref *kref)
-{
- kfree(container_of(kref, struct tcp_cookie_values, kref));
-}
-
-/* The length of constant payload data. Note that s_data_desired is
- * overloaded, depending on s_data_constant: either the length of constant
- * data (returned here) or the limit on variable data.
- */
-static inline int tcp_s_data_size(const struct tcp_sock *tp)
-{
- return (tp->cookie_values != NULL && tp->cookie_values->s_data_constant)
- ? tp->cookie_values->s_data_desired
- : 0;
-}
-
-/**
- * struct tcp_extend_values - tcp_ipv?.c to tcp_output.c workspace.
- *
- * As tcp_request_sock has already been extended in other places, the
- * only remaining method is to pass stack values along as function
- * parameters. These parameters are not needed after sending SYNACK.
- *
- * @cookie_bakery: cryptographic secret and message workspace.
- *
- * @cookie_plus: bytes in authenticator/cookie option, copied from
- * struct tcp_options_received (above).
- */
-struct tcp_extend_values {
- struct request_values rv;
- u32 cookie_bakery[COOKIE_WORKSPACE_WORDS];
- u8 cookie_plus:6,
- cookie_out_never:1,
- cookie_in_always:1;
-};
-
-static inline struct tcp_extend_values *tcp_xv(struct request_values *rvp)
-{
- return (struct tcp_extend_values *)rvp;
-}
-
-extern void tcp_v4_init(void);
-extern void tcp_init(void);
-
-#endif /* _TCP_H */
diff --git a/ANDROID_3.4.5/include/net/tcp_memcontrol.h b/ANDROID_3.4.5/include/net/tcp_memcontrol.h
deleted file mode 100644
index 48410ff2..00000000
--- a/ANDROID_3.4.5/include/net/tcp_memcontrol.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef _TCP_MEMCG_H
-#define _TCP_MEMCG_H
-
-struct tcp_memcontrol {
- struct cg_proto cg_proto;
- /* per-cgroup tcp memory pressure knobs */
- struct res_counter tcp_memory_allocated;
- struct percpu_counter tcp_sockets_allocated;
- /* those two are read-mostly, leave them at the end */
- long tcp_prot_mem[3];
- int tcp_memory_pressure;
-};
-
-struct cg_proto *tcp_proto_cgroup(struct mem_cgroup *memcg);
-int tcp_init_cgroup(struct cgroup *cgrp, struct cgroup_subsys *ss);
-void tcp_destroy_cgroup(struct cgroup *cgrp);
-unsigned long long tcp_max_memory(const struct mem_cgroup *memcg);
-void tcp_prot_mem(struct mem_cgroup *memcg, long val, int idx);
-#endif /* _TCP_MEMCG_H */
diff --git a/ANDROID_3.4.5/include/net/tcp_states.h b/ANDROID_3.4.5/include/net/tcp_states.h
deleted file mode 100644
index b0b64598..00000000
--- a/ANDROID_3.4.5/include/net/tcp_states.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Definitions for the TCP protocol sk_state field.
- *
- * 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_TCP_STATES_H
-#define _LINUX_TCP_STATES_H
-
-enum {
- TCP_ESTABLISHED = 1,
- TCP_SYN_SENT,
- TCP_SYN_RECV,
- TCP_FIN_WAIT1,
- TCP_FIN_WAIT2,
- TCP_TIME_WAIT,
- TCP_CLOSE,
- TCP_CLOSE_WAIT,
- TCP_LAST_ACK,
- TCP_LISTEN,
- TCP_CLOSING, /* Now a valid state */
-
- TCP_MAX_STATES /* Leave at the end! */
-};
-
-#define TCP_STATE_MASK 0xF
-
-#define TCP_ACTION_FIN (1 << 7)
-
-enum {
- TCPF_ESTABLISHED = (1 << 1),
- TCPF_SYN_SENT = (1 << 2),
- TCPF_SYN_RECV = (1 << 3),
- TCPF_FIN_WAIT1 = (1 << 4),
- TCPF_FIN_WAIT2 = (1 << 5),
- TCPF_TIME_WAIT = (1 << 6),
- TCPF_CLOSE = (1 << 7),
- TCPF_CLOSE_WAIT = (1 << 8),
- TCPF_LAST_ACK = (1 << 9),
- TCPF_LISTEN = (1 << 10),
- TCPF_CLOSING = (1 << 11)
-};
-
-#endif /* _LINUX_TCP_STATES_H */
diff --git a/ANDROID_3.4.5/include/net/timewait_sock.h b/ANDROID_3.4.5/include/net/timewait_sock.h
deleted file mode 100644
index 8d6689cb..00000000
--- a/ANDROID_3.4.5/include/net/timewait_sock.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * NET Generic infrastructure for Network protocols.
- *
- * Authors: Arnaldo Carvalho de Melo <acme@conectiva.com.br>
- *
- * 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 _TIMEWAIT_SOCK_H
-#define _TIMEWAIT_SOCK_H
-
-#include <linux/slab.h>
-#include <linux/bug.h>
-#include <net/sock.h>
-
-struct timewait_sock_ops {
- struct kmem_cache *twsk_slab;
- char *twsk_slab_name;
- unsigned int twsk_obj_size;
- int (*twsk_unique)(struct sock *sk,
- struct sock *sktw, void *twp);
- void (*twsk_destructor)(struct sock *sk);
- void *(*twsk_getpeer)(struct sock *sk);
-};
-
-static inline int twsk_unique(struct sock *sk, struct sock *sktw, void *twp)
-{
- if (sk->sk_prot->twsk_prot->twsk_unique != NULL)
- return sk->sk_prot->twsk_prot->twsk_unique(sk, sktw, twp);
- return 0;
-}
-
-static inline void twsk_destructor(struct sock *sk)
-{
- BUG_ON(sk == NULL);
- BUG_ON(sk->sk_prot == NULL);
- BUG_ON(sk->sk_prot->twsk_prot == NULL);
- if (sk->sk_prot->twsk_prot->twsk_destructor != NULL)
- sk->sk_prot->twsk_prot->twsk_destructor(sk);
-}
-
-static inline void *twsk_getpeer(struct sock *sk)
-{
- if (sk->sk_prot->twsk_prot->twsk_getpeer)
- return sk->sk_prot->twsk_prot->twsk_getpeer(sk);
- return NULL;
-}
-
-#endif /* _TIMEWAIT_SOCK_H */
diff --git a/ANDROID_3.4.5/include/net/transp_v6.h b/ANDROID_3.4.5/include/net/transp_v6.h
deleted file mode 100644
index 48b42ea9..00000000
--- a/ANDROID_3.4.5/include/net/transp_v6.h
+++ /dev/null
@@ -1,61 +0,0 @@
-#ifndef _TRANSP_V6_H
-#define _TRANSP_V6_H
-
-#include <net/checksum.h>
-
-/*
- * IPv6 transport protocols
- */
-
-extern struct proto rawv6_prot;
-extern struct proto udpv6_prot;
-extern struct proto udplitev6_prot;
-extern struct proto tcpv6_prot;
-extern struct proto pingv6_prot;
-
-struct flowi6;
-
-/* extension headers */
-extern int ipv6_exthdrs_init(void);
-extern void ipv6_exthdrs_exit(void);
-extern int ipv6_frag_init(void);
-extern void ipv6_frag_exit(void);
-
-/* transport protocols */
-extern int pingv6_init(void);
-extern void pingv6_exit(void);
-extern int rawv6_init(void);
-extern void rawv6_exit(void);
-extern int udpv6_init(void);
-extern void udpv6_exit(void);
-extern int udplitev6_init(void);
-extern void udplitev6_exit(void);
-extern int tcpv6_init(void);
-extern void tcpv6_exit(void);
-
-extern int udpv6_connect(struct sock *sk,
- struct sockaddr *uaddr,
- int addr_len);
-
-extern int datagram_recv_ctl(struct sock *sk,
- struct msghdr *msg,
- struct sk_buff *skb);
-
-extern int datagram_send_ctl(struct net *net,
- struct sock *sk,
- struct msghdr *msg,
- struct flowi6 *fl6,
- struct ipv6_txoptions *opt,
- int *hlimit, int *tclass,
- int *dontfrag);
-
-#define LOOPBACK4_IPV6 cpu_to_be32(0x7f000006)
-
-/*
- * address family specific functions
- */
-extern const struct inet_connection_sock_af_ops ipv4_specific;
-
-extern void inet6_destroy_sock(struct sock *sk);
-
-#endif
diff --git a/ANDROID_3.4.5/include/net/udp.h b/ANDROID_3.4.5/include/net/udp.h
deleted file mode 100644
index 5d606d9d..00000000
--- a/ANDROID_3.4.5/include/net/udp.h
+++ /dev/null
@@ -1,270 +0,0 @@
-/*
- * INET An implementation of the TCP/IP protocol suite for the LINUX
- * operating system. INET is implemented using the BSD Socket
- * interface as the means of communication with the user level.
- *
- * Definitions for the UDP module.
- *
- * Version: @(#)udp.h 1.0.2 05/07/93
- *
- * Authors: Ross Biro
- * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
- *
- * Fixes:
- * Alan Cox : Turned on udp checksums. I don't want to
- * chase 'memory corruption' bugs that aren't!
- *
- * 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 _UDP_H
-#define _UDP_H
-
-#include <linux/list.h>
-#include <linux/bug.h>
-#include <net/inet_sock.h>
-#include <net/sock.h>
-#include <net/snmp.h>
-#include <net/ip.h>
-#include <linux/ipv6.h>
-#include <linux/seq_file.h>
-#include <linux/poll.h>
-
-/**
- * struct udp_skb_cb - UDP(-Lite) private variables
- *
- * @header: private variables used by IPv4/IPv6
- * @cscov: checksum coverage length (UDP-Lite only)
- * @partial_cov: if set indicates partial csum coverage
- */
-struct udp_skb_cb {
- union {
- struct inet_skb_parm h4;
-#if IS_ENABLED(CONFIG_IPV6)
- struct inet6_skb_parm h6;
-#endif
- } header;
- __u16 cscov;
- __u8 partial_cov;
-};
-#define UDP_SKB_CB(__skb) ((struct udp_skb_cb *)((__skb)->cb))
-
-/**
- * struct udp_hslot - UDP hash slot
- *
- * @head: head of list of sockets
- * @count: number of sockets in 'head' list
- * @lock: spinlock protecting changes to head/count
- */
-struct udp_hslot {
- struct hlist_nulls_head head;
- int count;
- spinlock_t lock;
-} __attribute__((aligned(2 * sizeof(long))));
-
-/**
- * struct udp_table - UDP table
- *
- * @hash: hash table, sockets are hashed on (local port)
- * @hash2: hash table, sockets are hashed on (local port, local address)
- * @mask: number of slots in hash tables, minus 1
- * @log: log2(number of slots in hash table)
- */
-struct udp_table {
- struct udp_hslot *hash;
- struct udp_hslot *hash2;
- unsigned int mask;
- unsigned int log;
-};
-extern struct udp_table udp_table;
-extern void udp_table_init(struct udp_table *, const char *);
-static inline struct udp_hslot *udp_hashslot(struct udp_table *table,
- struct net *net, unsigned num)
-{
- return &table->hash[udp_hashfn(net, num, table->mask)];
-}
-/*
- * For secondary hash, net_hash_mix() is performed before calling
- * udp_hashslot2(), this explains difference with udp_hashslot()
- */
-static inline struct udp_hslot *udp_hashslot2(struct udp_table *table,
- unsigned int hash)
-{
- return &table->hash2[hash & table->mask];
-}
-
-/* Note: this must match 'valbool' in sock_setsockopt */
-#define UDP_CSUM_NOXMIT 1
-
-/* Used by SunRPC/xprt layer. */
-#define UDP_CSUM_NORCV 2
-
-/* Default, as per the RFC, is to always do csums. */
-#define UDP_CSUM_DEFAULT 0
-
-extern struct proto udp_prot;
-
-extern atomic_long_t udp_memory_allocated;
-
-/* sysctl variables for udp */
-extern long sysctl_udp_mem[3];
-extern int sysctl_udp_rmem_min;
-extern int sysctl_udp_wmem_min;
-
-struct sk_buff;
-
-/*
- * Generic checksumming routines for UDP(-Lite) v4 and v6
- */
-static inline __sum16 __udp_lib_checksum_complete(struct sk_buff *skb)
-{
- return __skb_checksum_complete_head(skb, UDP_SKB_CB(skb)->cscov);
-}
-
-static inline int udp_lib_checksum_complete(struct sk_buff *skb)
-{
- return !skb_csum_unnecessary(skb) &&
- __udp_lib_checksum_complete(skb);
-}
-
-/**
- * udp_csum_outgoing - compute UDPv4/v6 checksum over fragments
- * @sk: socket we are writing to
- * @skb: sk_buff containing the filled-in UDP header
- * (checksum field must be zeroed out)
- */
-static inline __wsum udp_csum_outgoing(struct sock *sk, struct sk_buff *skb)
-{
- __wsum csum = csum_partial(skb_transport_header(skb),
- sizeof(struct udphdr), 0);
- skb_queue_walk(&sk->sk_write_queue, skb) {
- csum = csum_add(csum, skb->csum);
- }
- return csum;
-}
-
-static inline __wsum udp_csum(struct sk_buff *skb)
-{
- __wsum csum = csum_partial(skb_transport_header(skb),
- sizeof(struct udphdr), skb->csum);
-
- for (skb = skb_shinfo(skb)->frag_list; skb; skb = skb->next) {
- csum = csum_add(csum, skb->csum);
- }
- return csum;
-}
-
-/* hash routines shared between UDPv4/6 and UDP-Litev4/6 */
-static inline void udp_lib_hash(struct sock *sk)
-{
- BUG();
-}
-
-extern void udp_lib_unhash(struct sock *sk);
-extern void udp_lib_rehash(struct sock *sk, u16 new_hash);
-
-static inline void udp_lib_close(struct sock *sk, long timeout)
-{
- sk_common_release(sk);
-}
-
-extern int udp_lib_get_port(struct sock *sk, unsigned short snum,
- int (*)(const struct sock *,const struct sock *),
- unsigned int hash2_nulladdr);
-
-/* net/ipv4/udp.c */
-extern int udp_get_port(struct sock *sk, unsigned short snum,
- int (*saddr_cmp)(const struct sock *,
- const struct sock *));
-extern void udp_err(struct sk_buff *, u32);
-extern int udp_sendmsg(struct kiocb *iocb, struct sock *sk,
- struct msghdr *msg, size_t len);
-extern void udp_flush_pending_frames(struct sock *sk);
-extern int udp_rcv(struct sk_buff *skb);
-extern int udp_ioctl(struct sock *sk, int cmd, unsigned long arg);
-extern int udp_disconnect(struct sock *sk, int flags);
-extern unsigned int udp_poll(struct file *file, struct socket *sock,
- poll_table *wait);
-extern int udp_lib_getsockopt(struct sock *sk, int level, int optname,
- char __user *optval, int __user *optlen);
-extern int udp_lib_setsockopt(struct sock *sk, int level, int optname,
- char __user *optval, unsigned int optlen,
- int (*push_pending_frames)(struct sock *));
-extern struct sock *udp4_lib_lookup(struct net *net, __be32 saddr, __be16 sport,
- __be32 daddr, __be16 dport,
- int dif);
-extern struct sock *__udp4_lib_lookup(struct net *net, __be32 saddr, __be16 sport,
- __be32 daddr, __be16 dport,
- int dif, struct udp_table *tbl);
-extern struct sock *udp6_lib_lookup(struct net *net, const struct in6_addr *saddr, __be16 sport,
- const struct in6_addr *daddr, __be16 dport,
- int dif);
-extern struct sock *__udp6_lib_lookup(struct net *net, const struct in6_addr *saddr, __be16 sport,
- const struct in6_addr *daddr, __be16 dport,
- int dif, struct udp_table *tbl);
-
-/*
- * SNMP statistics for UDP and UDP-Lite
- */
-#define UDP_INC_STATS_USER(net, field, is_udplite) do { \
- if (is_udplite) SNMP_INC_STATS_USER((net)->mib.udplite_statistics, field); \
- else SNMP_INC_STATS_USER((net)->mib.udp_statistics, field); } while(0)
-#define UDP_INC_STATS_BH(net, field, is_udplite) do { \
- if (is_udplite) SNMP_INC_STATS_BH((net)->mib.udplite_statistics, field); \
- else SNMP_INC_STATS_BH((net)->mib.udp_statistics, field); } while(0)
-
-#define UDP6_INC_STATS_BH(net, field, is_udplite) do { \
- if (is_udplite) SNMP_INC_STATS_BH((net)->mib.udplite_stats_in6, field);\
- else SNMP_INC_STATS_BH((net)->mib.udp_stats_in6, field); \
-} while(0)
-#define UDP6_INC_STATS_USER(net, field, __lite) do { \
- if (__lite) SNMP_INC_STATS_USER((net)->mib.udplite_stats_in6, field); \
- else SNMP_INC_STATS_USER((net)->mib.udp_stats_in6, field); \
-} while(0)
-
-#if IS_ENABLED(CONFIG_IPV6)
-#define UDPX_INC_STATS_BH(sk, field) \
- do { \
- if ((sk)->sk_family == AF_INET) \
- UDP_INC_STATS_BH(sock_net(sk), field, 0); \
- else \
- UDP6_INC_STATS_BH(sock_net(sk), field, 0); \
- } while (0);
-#else
-#define UDPX_INC_STATS_BH(sk, field) UDP_INC_STATS_BH(sock_net(sk), field, 0)
-#endif
-
-/* /proc */
-int udp_seq_open(struct inode *inode, struct file *file);
-
-struct udp_seq_afinfo {
- char *name;
- sa_family_t family;
- struct udp_table *udp_table;
- const struct file_operations *seq_fops;
- struct seq_operations seq_ops;
-};
-
-struct udp_iter_state {
- struct seq_net_private p;
- sa_family_t family;
- int bucket;
- struct udp_table *udp_table;
-};
-
-#ifdef CONFIG_PROC_FS
-extern int udp_proc_register(struct net *net, struct udp_seq_afinfo *afinfo);
-extern void udp_proc_unregister(struct net *net, struct udp_seq_afinfo *afinfo);
-
-extern int udp4_proc_init(void);
-extern void udp4_proc_exit(void);
-#endif
-
-extern void udp_init(void);
-
-extern int udp4_ufo_send_check(struct sk_buff *skb);
-extern struct sk_buff *udp4_ufo_fragment(struct sk_buff *skb,
- netdev_features_t features);
-#endif /* _UDP_H */
diff --git a/ANDROID_3.4.5/include/net/udplite.h b/ANDROID_3.4.5/include/net/udplite.h
deleted file mode 100644
index 71375459..00000000
--- a/ANDROID_3.4.5/include/net/udplite.h
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Definitions for the UDP-Lite (RFC 3828) code.
- */
-#ifndef _UDPLITE_H
-#define _UDPLITE_H
-
-#include <net/ip6_checksum.h>
-
-/* UDP-Lite socket options */
-#define UDPLITE_SEND_CSCOV 10 /* sender partial coverage (as sent) */
-#define UDPLITE_RECV_CSCOV 11 /* receiver partial coverage (threshold ) */
-
-extern struct proto udplite_prot;
-extern struct udp_table udplite_table;
-
-/*
- * Checksum computation is all in software, hence simpler getfrag.
- */
-static __inline__ int udplite_getfrag(void *from, char *to, int offset,
- int len, int odd, struct sk_buff *skb)
-{
- return memcpy_fromiovecend(to, (struct iovec *) from, offset, len);
-}
-
-/* Designate sk as UDP-Lite socket */
-static inline int udplite_sk_init(struct sock *sk)
-{
- udp_sk(sk)->pcflag = UDPLITE_BIT;
- return 0;
-}
-
-/*
- * Checksumming routines
- */
-static inline int udplite_checksum_init(struct sk_buff *skb, struct udphdr *uh)
-{
- u16 cscov;
-
- /* In UDPv4 a zero checksum means that the transmitter generated no
- * checksum. UDP-Lite (like IPv6) mandates checksums, hence packets
- * with a zero checksum field are illegal. */
- if (uh->check == 0) {
- LIMIT_NETDEBUG(KERN_DEBUG "UDPLite: zeroed checksum field\n");
- return 1;
- }
-
- cscov = ntohs(uh->len);
-
- if (cscov == 0) /* Indicates that full coverage is required. */
- ;
- else if (cscov < 8 || cscov > skb->len) {
- /*
- * Coverage length violates RFC 3828: log and discard silently.
- */
- LIMIT_NETDEBUG(KERN_DEBUG "UDPLite: bad csum coverage %d/%d\n",
- cscov, skb->len);
- return 1;
-
- } else if (cscov < skb->len) {
- UDP_SKB_CB(skb)->partial_cov = 1;
- UDP_SKB_CB(skb)->cscov = cscov;
- if (skb->ip_summed == CHECKSUM_COMPLETE)
- skb->ip_summed = CHECKSUM_NONE;
- }
-
- return 0;
-}
-
-/* Slow-path computation of checksum. Socket is locked. */
-static inline __wsum udplite_csum_outgoing(struct sock *sk, struct sk_buff *skb)
-{
- const struct udp_sock *up = udp_sk(skb->sk);
- int cscov = up->len;
- __wsum csum = 0;
-
- if (up->pcflag & UDPLITE_SEND_CC) {
- /*
- * Sender has set `partial coverage' option on UDP-Lite socket.
- * The special case "up->pcslen == 0" signifies full coverage.
- */
- if (up->pcslen < up->len) {
- if (0 < up->pcslen)
- cscov = up->pcslen;
- udp_hdr(skb)->len = htons(up->pcslen);
- }
- /*
- * NOTE: Causes for the error case `up->pcslen > up->len':
- * (i) Application error (will not be penalized).
- * (ii) Payload too big for send buffer: data is split
- * into several packets, each with its own header.
- * In this case (e.g. last segment), coverage may
- * exceed packet length.
- * Since packets with coverage length > packet length are
- * illegal, we fall back to the defaults here.
- */
- }
-
- skb->ip_summed = CHECKSUM_NONE; /* no HW support for checksumming */
-
- skb_queue_walk(&sk->sk_write_queue, skb) {
- const int off = skb_transport_offset(skb);
- const int len = skb->len - off;
-
- csum = skb_checksum(skb, off, (cscov > len)? len : cscov, csum);
-
- if ((cscov -= len) <= 0)
- break;
- }
- return csum;
-}
-
-/* Fast-path computation of checksum. Socket may not be locked. */
-static inline __wsum udplite_csum(struct sk_buff *skb)
-{
- const struct udp_sock *up = udp_sk(skb->sk);
- const int off = skb_transport_offset(skb);
- int len = skb->len - off;
-
- if ((up->pcflag & UDPLITE_SEND_CC) && up->pcslen < len) {
- if (0 < up->pcslen)
- len = up->pcslen;
- udp_hdr(skb)->len = htons(up->pcslen);
- }
- skb->ip_summed = CHECKSUM_NONE; /* no HW support for checksumming */
-
- return skb_checksum(skb, off, len, 0);
-}
-
-extern void udplite4_register(void);
-extern int udplite_get_port(struct sock *sk, unsigned short snum,
- int (*scmp)(const struct sock *, const struct sock *));
-#endif /* _UDPLITE_H */
diff --git a/ANDROID_3.4.5/include/net/wext.h b/ANDROID_3.4.5/include/net/wext.h
deleted file mode 100644
index 4f6e7423..00000000
--- a/ANDROID_3.4.5/include/net/wext.h
+++ /dev/null
@@ -1,60 +0,0 @@
-#ifndef __NET_WEXT_H
-#define __NET_WEXT_H
-
-#include <net/iw_handler.h>
-
-struct net;
-
-#ifdef CONFIG_WEXT_CORE
-extern int wext_handle_ioctl(struct net *net, struct ifreq *ifr, unsigned int cmd,
- void __user *arg);
-extern int compat_wext_handle_ioctl(struct net *net, unsigned int cmd,
- unsigned long arg);
-
-extern struct iw_statistics *get_wireless_stats(struct net_device *dev);
-extern int call_commit_handler(struct net_device *dev);
-#else
-static inline int wext_handle_ioctl(struct net *net, struct ifreq *ifr, unsigned int cmd,
- void __user *arg)
-{
- return -EINVAL;
-}
-static inline int compat_wext_handle_ioctl(struct net *net, unsigned int cmd,
- unsigned long arg)
-{
- return -EINVAL;
-}
-#endif
-
-#ifdef CONFIG_WEXT_PROC
-extern int wext_proc_init(struct net *net);
-extern void wext_proc_exit(struct net *net);
-#else
-static inline int wext_proc_init(struct net *net)
-{
- return 0;
-}
-static inline void wext_proc_exit(struct net *net)
-{
- return;
-}
-#endif
-
-#ifdef CONFIG_WEXT_PRIV
-int ioctl_private_call(struct net_device *dev, struct iwreq *iwr,
- unsigned int cmd, struct iw_request_info *info,
- iw_handler handler);
-int compat_private_call(struct net_device *dev, struct iwreq *iwr,
- unsigned int cmd, struct iw_request_info *info,
- iw_handler handler);
-int iw_handler_get_private(struct net_device * dev,
- struct iw_request_info * info,
- union iwreq_data * wrqu,
- char * extra);
-#else
-#define ioctl_private_call NULL
-#define compat_private_call NULL
-#endif
-
-
-#endif /* __NET_WEXT_H */
diff --git a/ANDROID_3.4.5/include/net/wimax.h b/ANDROID_3.4.5/include/net/wimax.h
deleted file mode 100644
index 322ff4fb..00000000
--- a/ANDROID_3.4.5/include/net/wimax.h
+++ /dev/null
@@ -1,519 +0,0 @@
-/*
- * Linux WiMAX
- * Kernel space API for accessing WiMAX devices
- *
- *
- * Copyright (C) 2007-2008 Intel Corporation <linux-wimax@intel.com>
- * Inaky Perez-Gonzalez <inaky.perez-gonzalez@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.
- *
- * 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-1301, USA.
- *
- *
- * The WiMAX stack provides an API for controlling and managing the
- * system's WiMAX devices. This API affects the control plane; the
- * data plane is accessed via the network stack (netdev).
- *
- * Parts of the WiMAX stack API and notifications are exported to
- * user space via Generic Netlink. In user space, libwimax (part of
- * the wimax-tools package) provides a shim layer for accessing those
- * calls.
- *
- * The API is standarized for all WiMAX devices and different drivers
- * implement the backend support for it. However, device-specific
- * messaging pipes are provided that can be used to issue commands and
- * receive notifications in free form.
- *
- * Currently the messaging pipes are the only means of control as it
- * is not known (due to the lack of more devices in the market) what
- * will be a good abstraction layer. Expect this to change as more
- * devices show in the market. This API is designed to be growable in
- * order to address this problem.
- *
- * USAGE
- *
- * Embed a `struct wimax_dev` at the beginning of the the device's
- * private structure, initialize and register it. For details, see
- * `struct wimax_dev`s documentation.
- *
- * Once this is done, wimax-tools's libwimaxll can be used to
- * communicate with the driver from user space. You user space
- * application does not have to forcibily use libwimaxll and can talk
- * the generic netlink protocol directly if desired.
- *
- * Remember this is a very low level API that will to provide all of
- * WiMAX features. Other daemons and services running in user space
- * are the expected clients of it. They offer a higher level API that
- * applications should use (an example of this is the Intel's WiMAX
- * Network Service for the i2400m).
- *
- * DESIGN
- *
- * Although not set on final stone, this very basic interface is
- * mostly completed. Remember this is meant to grow as new common
- * operations are decided upon. New operations will be added to the
- * interface, intent being on keeping backwards compatibility as much
- * as possible.
- *
- * This layer implements a set of calls to control a WiMAX device,
- * exposing a frontend to the rest of the kernel and user space (via
- * generic netlink) and a backend implementation in the driver through
- * function pointers.
- *
- * WiMAX devices have a state, and a kernel-only API allows the
- * drivers to manipulate that state. State transitions are atomic, and
- * only some of them are allowed (see `enum wimax_st`).
- *
- * Most API calls will set the state automatically; in most cases
- * drivers have to only report state changes due to external
- * conditions.
- *
- * All API operations are 'atomic', serialized through a mutex in the
- * `struct wimax_dev`.
- *
- * EXPORTING TO USER SPACE THROUGH GENERIC NETLINK
- *
- * The API is exported to user space using generic netlink (other
- * methods can be added as needed).
- *
- * There is a Generic Netlink Family named "WiMAX", where interfaces
- * supporting the WiMAX interface receive commands and broadcast their
- * signals over a multicast group named "msg".
- *
- * Mapping to the source/destination interface is done by an interface
- * index attribute.
- *
- * For user-to-kernel traffic (commands) we use a function call
- * marshalling mechanism, where a message X with attributes A, B, C
- * sent from user space to kernel space means executing the WiMAX API
- * call wimax_X(A, B, C), sending the results back as a message.
- *
- * Kernel-to-user (notifications or signals) communication is sent
- * over multicast groups. This allows to have multiple applications
- * monitoring them.
- *
- * Each command/signal gets assigned it's own attribute policy. This
- * way the validator will verify that all the attributes in there are
- * only the ones that should be for each command/signal. Thing of an
- * attribute mapping to a type+argumentname for each command/signal.
- *
- * If we had a single policy for *all* commands/signals, after running
- * the validator we'd have to check "does this attribute belong in
- * here"? for each one. It can be done manually, but it's just easier
- * to have the validator do that job with multiple policies. As well,
- * it makes it easier to later expand each command/signal signature
- * without affecting others and keeping the namespace more or less
- * sane. Not that it is too complicated, but it makes it even easier.
- *
- * No state information is maintained in the kernel for each user
- * space connection (the connection is stateless).
- *
- * TESTING FOR THE INTERFACE AND VERSIONING
- *
- * If network interface X is a WiMAX device, there will be a Generic
- * Netlink family named "WiMAX X" and the device will present a
- * "wimax" directory in it's network sysfs directory
- * (/sys/class/net/DEVICE/wimax) [used by HAL].
- *
- * The inexistence of any of these means the device does not support
- * this WiMAX API.
- *
- * By querying the generic netlink controller, versioning information
- * and the multicast groups available can be found. Applications using
- * the interface can either rely on that or use the generic netlink
- * controller to figure out which generic netlink commands/signals are
- * supported.
- *
- * NOTE: this versioning is a last resort to avoid hard
- * incompatibilities. It is the intention of the design of this
- * stack not to introduce backward incompatible changes.
- *
- * The version code has to fit in one byte (restrictions imposed by
- * generic netlink); we use `version / 10` for the major version and
- * `version % 10` for the minor. This gives 9 minors for each major
- * and 25 majors.
- *
- * The version change protocol is as follow:
- *
- * - Major versions: needs to be increased if an existing message/API
- * call is changed or removed. Doesn't need to be changed if a new
- * message is added.
- *
- * - Minor version: needs to be increased if new messages/API calls are
- * being added or some other consideration that doesn't impact the
- * user-kernel interface too much (like some kind of bug fix) and
- * that is kind of left up in the air to common sense.
- *
- * User space code should not try to work if the major version it was
- * compiled for differs from what the kernel offers. As well, if the
- * minor version of the kernel interface is lower than the one user
- * space is expecting (the one it was compiled for), the kernel
- * might be missing API calls; user space shall be ready to handle
- * said condition. Use the generic netlink controller operations to
- * find which ones are supported and which not.
- *
- * libwimaxll:wimaxll_open() takes care of checking versions.
- *
- * THE OPERATIONS:
- *
- * Each operation is defined in its on file (drivers/net/wimax/op-*.c)
- * for clarity. The parts needed for an operation are:
- *
- * - a function pointer in `struct wimax_dev`: optional, as the
- * operation might be implemented by the stack and not by the
- * driver.
- *
- * All function pointers are named wimax_dev->op_*(), and drivers
- * must implement them except where noted otherwise.
- *
- * - When exported to user space, a `struct nla_policy` to define the
- * attributes of the generic netlink command and a `struct genl_ops`
- * to define the operation.
- *
- * All the declarations for the operation codes (WIMAX_GNL_OP_<NAME>)
- * and generic netlink attributes (WIMAX_GNL_<NAME>_*) are declared in
- * include/linux/wimax.h; this file is intended to be cloned by user
- * space to gain access to those declarations.
- *
- * A few caveats to remember:
- *
- * - Need to define attribute numbers starting in 1; otherwise it
- * fails.
- *
- * - the `struct genl_family` requires a maximum attribute id; when
- * defining the `struct nla_policy` for each message, it has to have
- * an array size of WIMAX_GNL_ATTR_MAX+1.
- *
- * The op_*() function pointers will not be called if the wimax_dev is
- * in a state <= %WIMAX_ST_UNINITIALIZED. The exception is:
- *
- * - op_reset: can be called at any time after wimax_dev_add() has
- * been called.
- *
- * THE PIPE INTERFACE:
- *
- * This interface is kept intentionally simple. The driver can send
- * and receive free-form messages to/from user space through a
- * pipe. See drivers/net/wimax/op-msg.c for details.
- *
- * The kernel-to-user messages are sent with
- * wimax_msg(). user-to-kernel messages are delivered via
- * wimax_dev->op_msg_from_user().
- *
- * RFKILL:
- *
- * RFKILL support is built into the wimax_dev layer; the driver just
- * needs to call wimax_report_rfkill_{hw,sw}() to inform of changes in
- * the hardware or software RF kill switches. When the stack wants to
- * turn the radio off, it will call wimax_dev->op_rfkill_sw_toggle(),
- * which the driver implements.
- *
- * User space can set the software RF Kill switch by calling
- * wimax_rfkill().
- *
- * The code for now only supports devices that don't require polling;
- * If the device needs to be polled, create a self-rearming delayed
- * work struct for polling or look into adding polled support to the
- * WiMAX stack.
- *
- * When initializing the hardware (_probe), after calling
- * wimax_dev_add(), query the device for it's RF Kill switches status
- * and feed it back to the WiMAX stack using
- * wimax_report_rfkill_{hw,sw}(). If any switch is missing, always
- * report it as ON.
- *
- * NOTE: the wimax stack uses an inverted terminology to that of the
- * RFKILL subsystem:
- *
- * - ON: radio is ON, RFKILL is DISABLED or OFF.
- * - OFF: radio is OFF, RFKILL is ENABLED or ON.
- *
- * MISCELLANEOUS OPS:
- *
- * wimax_reset() can be used to reset the device to power on state; by
- * default it issues a warm reset that maintains the same device
- * node. If that is not possible, it falls back to a cold reset
- * (device reconnect). The driver implements the backend to this
- * through wimax_dev->op_reset().
- */
-
-#ifndef __NET__WIMAX_H__
-#define __NET__WIMAX_H__
-
-#include <linux/wimax.h>
-#include <net/genetlink.h>
-#include <linux/netdevice.h>
-
-struct net_device;
-struct genl_info;
-struct wimax_dev;
-
-/**
- * struct wimax_dev - Generic WiMAX device
- *
- * @net_dev: [fill] Pointer to the &struct net_device this WiMAX
- * device implements.
- *
- * @op_msg_from_user: [fill] Driver-specific operation to
- * handle a raw message from user space to the driver. The
- * driver can send messages to user space using with
- * wimax_msg_to_user().
- *
- * @op_rfkill_sw_toggle: [fill] Driver-specific operation to act on
- * userspace (or any other agent) requesting the WiMAX device to
- * change the RF Kill software switch (WIMAX_RF_ON or
- * WIMAX_RF_OFF).
- * If such hardware support is not present, it is assumed the
- * radio cannot be switched off and it is always on (and the stack
- * will error out when trying to switch it off). In such case,
- * this function pointer can be left as NULL.
- *
- * @op_reset: [fill] Driver specific operation to reset the
- * device.
- * This operation should always attempt first a warm reset that
- * does not disconnect the device from the bus and return 0.
- * If that fails, it should resort to some sort of cold or bus
- * reset (even if it implies a bus disconnection and device
- * disappearance). In that case, -ENODEV should be returned to
- * indicate the device is gone.
- * This operation has to be synchronous, and return only when the
- * reset is complete. In case of having had to resort to bus/cold
- * reset implying a device disconnection, the call is allowed to
- * return inmediately.
- * NOTE: wimax_dev->mutex is NOT locked when this op is being
- * called; however, wimax_dev->mutex_reset IS locked to ensure
- * serialization of calls to wimax_reset().
- * See wimax_reset()'s documentation.
- *
- * @name: [fill] A way to identify this device. We need to register a
- * name with many subsystems (rfkill, workqueue creation, etc).
- * We can't use the network device name as that
- * might change and in some instances we don't know it yet (until
- * we don't call register_netdev()). So we generate an unique one
- * using the driver name and device bus id, place it here and use
- * it across the board. Recommended naming:
- * DRIVERNAME-BUSNAME:BUSID (dev->bus->name, dev->bus_id).
- *
- * @id_table_node: [private] link to the list of wimax devices kept by
- * id-table.c. Protected by it's own spinlock.
- *
- * @mutex: [private] Serializes all concurrent access and execution of
- * operations.
- *
- * @mutex_reset: [private] Serializes reset operations. Needs to be a
- * different mutex because as part of the reset operation, the
- * driver has to call back into the stack to do things such as
- * state change, that require wimax_dev->mutex.
- *
- * @state: [private] Current state of the WiMAX device.
- *
- * @rfkill: [private] integration into the RF-Kill infrastructure.
- *
- * @rf_sw: [private] State of the software radio switch (OFF/ON)
- *
- * @rf_hw: [private] State of the hardware radio switch (OFF/ON)
- *
- * @debugfs_dentry: [private] Used to hook up a debugfs entry. This
- * shows up in the debugfs root as wimax\:DEVICENAME.
- *
- * Description:
- * This structure defines a common interface to access all WiMAX
- * devices from different vendors and provides a common API as well as
- * a free-form device-specific messaging channel.
- *
- * Usage:
- * 1. Embed a &struct wimax_dev at *the beginning* the network
- * device structure so that netdev_priv() points to it.
- *
- * 2. memset() it to zero
- *
- * 3. Initialize with wimax_dev_init(). This will leave the WiMAX
- * device in the %__WIMAX_ST_NULL state.
- *
- * 4. Fill all the fields marked with [fill]; once called
- * wimax_dev_add(), those fields CANNOT be modified.
- *
- * 5. Call wimax_dev_add() *after* registering the network
- * device. This will leave the WiMAX device in the %WIMAX_ST_DOWN
- * state.
- * Protect the driver's net_device->open() against succeeding if
- * the wimax device state is lower than %WIMAX_ST_DOWN.
- *
- * 6. Select when the device is going to be turned on/initialized;
- * for example, it could be initialized on 'ifconfig up' (when the
- * netdev op 'open()' is called on the driver).
- *
- * When the device is initialized (at `ifconfig up` time, or right
- * after calling wimax_dev_add() from _probe(), make sure the
- * following steps are taken
- *
- * a. Move the device to %WIMAX_ST_UNINITIALIZED. This is needed so
- * some API calls that shouldn't work until the device is ready
- * can be blocked.
- *
- * b. Initialize the device. Make sure to turn the SW radio switch
- * off and move the device to state %WIMAX_ST_RADIO_OFF when
- * done. When just initialized, a device should be left in RADIO
- * OFF state until user space devices to turn it on.
- *
- * c. Query the device for the state of the hardware rfkill switch
- * and call wimax_rfkill_report_hw() and wimax_rfkill_report_sw()
- * as needed. See below.
- *
- * wimax_dev_rm() undoes before unregistering the network device. Once
- * wimax_dev_add() is called, the driver can get called on the
- * wimax_dev->op_* function pointers
- *
- * CONCURRENCY:
- *
- * The stack provides a mutex for each device that will disallow API
- * calls happening concurrently; thus, op calls into the driver
- * through the wimax_dev->op*() function pointers will always be
- * serialized and *never* concurrent.
- *
- * For locking, take wimax_dev->mutex is taken; (most) operations in
- * the API have to check for wimax_dev_is_ready() to return 0 before
- * continuing (this is done internally).
- *
- * REFERENCE COUNTING:
- *
- * The WiMAX device is reference counted by the associated network
- * device. The only operation that can be used to reference the device
- * is wimax_dev_get_by_genl_info(), and the reference it acquires has
- * to be released with dev_put(wimax_dev->net_dev).
- *
- * RFKILL:
- *
- * At startup, both HW and SW radio switchess are assumed to be off.
- *
- * At initialization time [after calling wimax_dev_add()], have the
- * driver query the device for the status of the software and hardware
- * RF kill switches and call wimax_report_rfkill_hw() and
- * wimax_rfkill_report_sw() to indicate their state. If any is
- * missing, just call it to indicate it is ON (radio always on).
- *
- * Whenever the driver detects a change in the state of the RF kill
- * switches, it should call wimax_report_rfkill_hw() or
- * wimax_report_rfkill_sw() to report it to the stack.
- */
-struct wimax_dev {
- struct net_device *net_dev;
- struct list_head id_table_node;
- struct mutex mutex; /* Protects all members and API calls */
- struct mutex mutex_reset;
- enum wimax_st state;
-
- int (*op_msg_from_user)(struct wimax_dev *wimax_dev,
- const char *,
- const void *, size_t,
- const struct genl_info *info);
- int (*op_rfkill_sw_toggle)(struct wimax_dev *wimax_dev,
- enum wimax_rf_state);
- int (*op_reset)(struct wimax_dev *wimax_dev);
-
- struct rfkill *rfkill;
- unsigned rf_hw;
- unsigned rf_sw;
- char name[32];
-
- struct dentry *debugfs_dentry;
-};
-
-
-
-/*
- * WiMAX stack public API for device drivers
- * -----------------------------------------
- *
- * These functions are not exported to user space.
- */
-extern void wimax_dev_init(struct wimax_dev *);
-extern int wimax_dev_add(struct wimax_dev *, struct net_device *);
-extern void wimax_dev_rm(struct wimax_dev *);
-
-static inline
-struct wimax_dev *net_dev_to_wimax(struct net_device *net_dev)
-{
- return netdev_priv(net_dev);
-}
-
-static inline
-struct device *wimax_dev_to_dev(struct wimax_dev *wimax_dev)
-{
- return wimax_dev->net_dev->dev.parent;
-}
-
-extern void wimax_state_change(struct wimax_dev *, enum wimax_st);
-extern enum wimax_st wimax_state_get(struct wimax_dev *);
-
-/*
- * Radio Switch state reporting.
- *
- * enum wimax_rf_state is declared in linux/wimax.h so the exports
- * to user space can use it.
- */
-extern void wimax_report_rfkill_hw(struct wimax_dev *, enum wimax_rf_state);
-extern void wimax_report_rfkill_sw(struct wimax_dev *, enum wimax_rf_state);
-
-
-/*
- * Free-form messaging to/from user space
- *
- * Sending a message:
- *
- * wimax_msg(wimax_dev, pipe_name, buf, buf_size, GFP_KERNEL);
- *
- * Broken up:
- *
- * skb = wimax_msg_alloc(wimax_dev, pipe_name, buf_size, GFP_KERNEL);
- * ...fill up skb...
- * wimax_msg_send(wimax_dev, pipe_name, skb);
- *
- * Be sure not to modify skb->data in the middle (ie: don't use
- * skb_push()/skb_pull()/skb_reserve() on the skb).
- *
- * "pipe_name" is any string, than can be interpreted as the name of
- * the pipe or destinatary; the interpretation of it is driver
- * specific, so the recipient can multiplex it as wished. It can be
- * NULL, it won't be used - an example is using a "diagnostics" tag to
- * send diagnostics information that a device-specific diagnostics
- * tool would be interested in.
- */
-extern struct sk_buff *wimax_msg_alloc(struct wimax_dev *, const char *,
- const void *, size_t, gfp_t);
-extern int wimax_msg_send(struct wimax_dev *, struct sk_buff *);
-extern int wimax_msg(struct wimax_dev *, const char *,
- const void *, size_t, gfp_t);
-
-extern const void *wimax_msg_data_len(struct sk_buff *, size_t *);
-extern const void *wimax_msg_data(struct sk_buff *);
-extern ssize_t wimax_msg_len(struct sk_buff *);
-
-
-/*
- * WiMAX stack user space API
- * --------------------------
- *
- * This API is what gets exported to user space for general
- * operations. As well, they can be called from within the kernel,
- * (with a properly referenced `struct wimax_dev`).
- *
- * Properly referenced means: the 'struct net_device' that embeds the
- * device's control structure and (as such) the 'struct wimax_dev' is
- * referenced by the caller.
- */
-extern int wimax_rfkill(struct wimax_dev *, enum wimax_rf_state);
-extern int wimax_reset(struct wimax_dev *);
-
-#endif /* #ifndef __NET__WIMAX_H__ */
diff --git a/ANDROID_3.4.5/include/net/wpan-phy.h b/ANDROID_3.4.5/include/net/wpan-phy.h
deleted file mode 100644
index ff27f1b0..00000000
--- a/ANDROID_3.4.5/include/net/wpan-phy.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (C) 2007, 2008, 2009 Siemens AG
- *
- * 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.
- *
- * 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-1301 USA.
- *
- * Written by:
- * Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
- */
-
-#ifndef WPAN_PHY_H
-#define WPAN_PHY_H
-
-#include <linux/netdevice.h>
-#include <linux/mutex.h>
-#include <linux/bug.h>
-
-struct wpan_phy {
- struct mutex pib_lock;
-
- /*
- * This is a PIB according to 802.15.4-2006.
- * We do not provide timing-related variables, as they
- * aren't used outside of driver
- */
- u8 current_channel;
- u8 current_page;
- u32 channels_supported[32];
- u8 transmit_power;
- u8 cca_mode;
-
- struct device dev;
- int idx;
-
- struct net_device *(*add_iface)(struct wpan_phy *phy,
- const char *name);
- void (*del_iface)(struct wpan_phy *phy, struct net_device *dev);
-
- char priv[0] __attribute__((__aligned__(NETDEV_ALIGN)));
-};
-
-#define to_phy(_dev) container_of(_dev, struct wpan_phy, dev)
-
-struct wpan_phy *wpan_phy_alloc(size_t priv_size);
-static inline void wpan_phy_set_dev(struct wpan_phy *phy, struct device *dev)
-{
- phy->dev.parent = dev;
-}
-int wpan_phy_register(struct wpan_phy *phy);
-void wpan_phy_unregister(struct wpan_phy *phy);
-void wpan_phy_free(struct wpan_phy *phy);
-/* Same semantics as for class_for_each_device */
-int wpan_phy_for_each(int (*fn)(struct wpan_phy *phy, void *data), void *data);
-
-static inline void *wpan_phy_priv(struct wpan_phy *phy)
-{
- BUG_ON(!phy);
- return &phy->priv;
-}
-
-struct wpan_phy *wpan_phy_find(const char *str);
-
-static inline void wpan_phy_put(struct wpan_phy *phy)
-{
- put_device(&phy->dev);
-}
-
-static inline const char *wpan_phy_name(struct wpan_phy *phy)
-{
- return dev_name(&phy->dev);
-}
-#endif
diff --git a/ANDROID_3.4.5/include/net/x25.h b/ANDROID_3.4.5/include/net/x25.h
deleted file mode 100644
index a06119a0..00000000
--- a/ANDROID_3.4.5/include/net/x25.h
+++ /dev/null
@@ -1,323 +0,0 @@
-/*
- * Declarations of X.25 Packet Layer type objects.
- *
- * History
- * nov/17/96 Jonathan Naylor Initial version.
- * mar/20/00 Daniela Squassoni Disabling/enabling of facilities
- * negotiation.
- */
-
-#ifndef _X25_H
-#define _X25_H
-#include <linux/x25.h>
-#include <linux/slab.h>
-#include <net/sock.h>
-
-#define X25_ADDR_LEN 16
-
-#define X25_MAX_L2_LEN 18 /* 802.2 LLC */
-
-#define X25_STD_MIN_LEN 3
-#define X25_EXT_MIN_LEN 4
-
-#define X25_GFI_SEQ_MASK 0x30
-#define X25_GFI_STDSEQ 0x10
-#define X25_GFI_EXTSEQ 0x20
-
-#define X25_Q_BIT 0x80
-#define X25_D_BIT 0x40
-#define X25_STD_M_BIT 0x10
-#define X25_EXT_M_BIT 0x01
-
-#define X25_CALL_REQUEST 0x0B
-#define X25_CALL_ACCEPTED 0x0F
-#define X25_CLEAR_REQUEST 0x13
-#define X25_CLEAR_CONFIRMATION 0x17
-#define X25_DATA 0x00
-#define X25_INTERRUPT 0x23
-#define X25_INTERRUPT_CONFIRMATION 0x27
-#define X25_RR 0x01
-#define X25_RNR 0x05
-#define X25_REJ 0x09
-#define X25_RESET_REQUEST 0x1B
-#define X25_RESET_CONFIRMATION 0x1F
-#define X25_REGISTRATION_REQUEST 0xF3
-#define X25_REGISTRATION_CONFIRMATION 0xF7
-#define X25_RESTART_REQUEST 0xFB
-#define X25_RESTART_CONFIRMATION 0xFF
-#define X25_DIAGNOSTIC 0xF1
-#define X25_ILLEGAL 0xFD
-
-/* Define the various conditions that may exist */
-
-#define X25_COND_ACK_PENDING 0x01
-#define X25_COND_OWN_RX_BUSY 0x02
-#define X25_COND_PEER_RX_BUSY 0x04
-
-/* Define Link State constants. */
-enum {
- X25_STATE_0, /* Ready */
- X25_STATE_1, /* Awaiting Call Accepted */
- X25_STATE_2, /* Awaiting Clear Confirmation */
- X25_STATE_3, /* Data Transfer */
- X25_STATE_4 /* Awaiting Reset Confirmation */
-};
-
-enum {
- X25_LINK_STATE_0,
- X25_LINK_STATE_1,
- X25_LINK_STATE_2,
- X25_LINK_STATE_3
-};
-
-#define X25_DEFAULT_T20 (180 * HZ) /* Default T20 value */
-#define X25_DEFAULT_T21 (200 * HZ) /* Default T21 value */
-#define X25_DEFAULT_T22 (180 * HZ) /* Default T22 value */
-#define X25_DEFAULT_T23 (180 * HZ) /* Default T23 value */
-#define X25_DEFAULT_T2 (3 * HZ) /* Default ack holdback value */
-
-#define X25_DEFAULT_WINDOW_SIZE 2 /* Default Window Size */
-#define X25_DEFAULT_PACKET_SIZE X25_PS128 /* Default Packet Size */
-#define X25_DEFAULT_THROUGHPUT 0x0A /* Deafult Throughput */
-#define X25_DEFAULT_REVERSE 0x00 /* Default Reverse Charging */
-
-#define X25_SMODULUS 8
-#define X25_EMODULUS 128
-
-/*
- * X.25 Facilities constants.
- */
-
-#define X25_FAC_CLASS_MASK 0xC0
-
-#define X25_FAC_CLASS_A 0x00
-#define X25_FAC_CLASS_B 0x40
-#define X25_FAC_CLASS_C 0x80
-#define X25_FAC_CLASS_D 0xC0
-
-#define X25_FAC_REVERSE 0x01 /* also fast select */
-#define X25_FAC_THROUGHPUT 0x02
-#define X25_FAC_PACKET_SIZE 0x42
-#define X25_FAC_WINDOW_SIZE 0x43
-
-#define X25_MAX_FAC_LEN 60
-#define X25_MAX_CUD_LEN 128
-
-#define X25_FAC_CALLING_AE 0xCB
-#define X25_FAC_CALLED_AE 0xC9
-
-#define X25_MARKER 0x00
-#define X25_DTE_SERVICES 0x0F
-#define X25_MAX_AE_LEN 40 /* Max num of semi-octets in AE - OSI Nw */
-#define X25_MAX_DTE_FACIL_LEN 21 /* Max length of DTE facility params */
-
-/* Bitset in x25_sock->flags for misc flags */
-#define X25_Q_BIT_FLAG 0
-#define X25_INTERRUPT_FLAG 1
-#define X25_ACCPT_APPRV_FLAG 2
-
-/**
- * struct x25_route - x25 routing entry
- * @node - entry in x25_list_lock
- * @address - Start of address range
- * @sigdigits - Number of sig digits
- * @dev - More than one for MLP
- * @refcnt - reference counter
- */
-struct x25_route {
- struct list_head node;
- struct x25_address address;
- unsigned int sigdigits;
- struct net_device *dev;
- atomic_t refcnt;
-};
-
-struct x25_neigh {
- struct list_head node;
- struct net_device *dev;
- unsigned int state;
- unsigned int extended;
- struct sk_buff_head queue;
- unsigned long t20;
- struct timer_list t20timer;
- unsigned long global_facil_mask;
- atomic_t refcnt;
-};
-
-struct x25_sock {
- struct sock sk;
- struct x25_address source_addr, dest_addr;
- struct x25_neigh *neighbour;
- unsigned int lci, cudmatchlength;
- unsigned char state, condition;
- unsigned short vs, vr, va, vl;
- unsigned long t2, t21, t22, t23;
- unsigned short fraglen;
- unsigned long flags;
- struct sk_buff_head ack_queue;
- struct sk_buff_head fragment_queue;
- struct sk_buff_head interrupt_in_queue;
- struct sk_buff_head interrupt_out_queue;
- struct timer_list timer;
- struct x25_causediag causediag;
- struct x25_facilities facilities;
- struct x25_dte_facilities dte_facilities;
- struct x25_calluserdata calluserdata;
- unsigned long vc_facil_mask; /* inc_call facilities mask */
-};
-
-struct x25_forward {
- struct list_head node;
- unsigned int lci;
- struct net_device *dev1;
- struct net_device *dev2;
- atomic_t refcnt;
-};
-
-static inline struct x25_sock *x25_sk(const struct sock *sk)
-{
- return (struct x25_sock *)sk;
-}
-
-/* af_x25.c */
-extern int sysctl_x25_restart_request_timeout;
-extern int sysctl_x25_call_request_timeout;
-extern int sysctl_x25_reset_request_timeout;
-extern int sysctl_x25_clear_request_timeout;
-extern int sysctl_x25_ack_holdback_timeout;
-extern int sysctl_x25_forward;
-
-extern int x25_parse_address_block(struct sk_buff *skb,
- struct x25_address *called_addr,
- struct x25_address *calling_addr);
-
-extern int x25_addr_ntoa(unsigned char *, struct x25_address *,
- struct x25_address *);
-extern int x25_addr_aton(unsigned char *, struct x25_address *,
- struct x25_address *);
-extern struct sock *x25_find_socket(unsigned int, struct x25_neigh *);
-extern void x25_destroy_socket_from_timer(struct sock *);
-extern int x25_rx_call_request(struct sk_buff *, struct x25_neigh *, unsigned int);
-extern void x25_kill_by_neigh(struct x25_neigh *);
-
-/* x25_dev.c */
-extern void x25_send_frame(struct sk_buff *, struct x25_neigh *);
-extern int x25_lapb_receive_frame(struct sk_buff *, struct net_device *, struct packet_type *, struct net_device *);
-extern void x25_establish_link(struct x25_neigh *);
-extern void x25_terminate_link(struct x25_neigh *);
-
-/* x25_facilities.c */
-extern int x25_parse_facilities(struct sk_buff *, struct x25_facilities *,
- struct x25_dte_facilities *, unsigned long *);
-extern int x25_create_facilities(unsigned char *, struct x25_facilities *,
- struct x25_dte_facilities *, unsigned long);
-extern int x25_negotiate_facilities(struct sk_buff *, struct sock *,
- struct x25_facilities *,
- struct x25_dte_facilities *);
-extern void x25_limit_facilities(struct x25_facilities *, struct x25_neigh *);
-
-/* x25_forward.c */
-extern void x25_clear_forward_by_lci(unsigned int lci);
-extern void x25_clear_forward_by_dev(struct net_device *);
-extern int x25_forward_data(int, struct x25_neigh *, struct sk_buff *);
-extern int x25_forward_call(struct x25_address *, struct x25_neigh *,
- struct sk_buff *, int);
-
-/* x25_in.c */
-extern int x25_process_rx_frame(struct sock *, struct sk_buff *);
-extern int x25_backlog_rcv(struct sock *, struct sk_buff *);
-
-/* x25_link.c */
-extern void x25_link_control(struct sk_buff *, struct x25_neigh *, unsigned short);
-extern void x25_link_device_up(struct net_device *);
-extern void x25_link_device_down(struct net_device *);
-extern void x25_link_established(struct x25_neigh *);
-extern void x25_link_terminated(struct x25_neigh *);
-extern void x25_transmit_clear_request(struct x25_neigh *, unsigned int, unsigned char);
-extern void x25_transmit_link(struct sk_buff *, struct x25_neigh *);
-extern int x25_subscr_ioctl(unsigned int, void __user *);
-extern struct x25_neigh *x25_get_neigh(struct net_device *);
-extern void x25_link_free(void);
-
-/* x25_neigh.c */
-static __inline__ void x25_neigh_hold(struct x25_neigh *nb)
-{
- atomic_inc(&nb->refcnt);
-}
-
-static __inline__ void x25_neigh_put(struct x25_neigh *nb)
-{
- if (atomic_dec_and_test(&nb->refcnt))
- kfree(nb);
-}
-
-/* x25_out.c */
-extern int x25_output(struct sock *, struct sk_buff *);
-extern void x25_kick(struct sock *);
-extern void x25_enquiry_response(struct sock *);
-
-/* x25_route.c */
-extern struct x25_route *x25_get_route(struct x25_address *addr);
-extern struct net_device *x25_dev_get(char *);
-extern void x25_route_device_down(struct net_device *dev);
-extern int x25_route_ioctl(unsigned int, void __user *);
-extern void x25_route_free(void);
-
-static __inline__ void x25_route_hold(struct x25_route *rt)
-{
- atomic_inc(&rt->refcnt);
-}
-
-static __inline__ void x25_route_put(struct x25_route *rt)
-{
- if (atomic_dec_and_test(&rt->refcnt))
- kfree(rt);
-}
-
-/* x25_subr.c */
-extern void x25_clear_queues(struct sock *);
-extern void x25_frames_acked(struct sock *, unsigned short);
-extern void x25_requeue_frames(struct sock *);
-extern int x25_validate_nr(struct sock *, unsigned short);
-extern void x25_write_internal(struct sock *, int);
-extern int x25_decode(struct sock *, struct sk_buff *, int *, int *, int *, int *, int *);
-extern void x25_disconnect(struct sock *, int, unsigned char, unsigned char);
-
-/* x25_timer.c */
-extern void x25_init_timers(struct sock *sk);
-extern void x25_start_heartbeat(struct sock *);
-extern void x25_start_t2timer(struct sock *);
-extern void x25_start_t21timer(struct sock *);
-extern void x25_start_t22timer(struct sock *);
-extern void x25_start_t23timer(struct sock *);
-extern void x25_stop_heartbeat(struct sock *);
-extern void x25_stop_timer(struct sock *);
-extern unsigned long x25_display_timer(struct sock *);
-extern void x25_check_rbuf(struct sock *);
-
-/* sysctl_net_x25.c */
-#ifdef CONFIG_SYSCTL
-extern void x25_register_sysctl(void);
-extern void x25_unregister_sysctl(void);
-#else
-static inline void x25_register_sysctl(void) {};
-static inline void x25_unregister_sysctl(void) {};
-#endif /* CONFIG_SYSCTL */
-
-struct x25_skb_cb {
- unsigned flags;
-};
-#define X25_SKB_CB(s) ((struct x25_skb_cb *) ((s)->cb))
-
-extern struct hlist_head x25_list;
-extern rwlock_t x25_list_lock;
-extern struct list_head x25_route_list;
-extern rwlock_t x25_route_list_lock;
-extern struct list_head x25_forward_list;
-extern rwlock_t x25_forward_list_lock;
-extern struct list_head x25_neigh_list;
-extern rwlock_t x25_neigh_list_lock;
-
-extern int x25_proc_init(void);
-extern void x25_proc_exit(void);
-#endif
diff --git a/ANDROID_3.4.5/include/net/x25device.h b/ANDROID_3.4.5/include/net/x25device.h
deleted file mode 100644
index 1fa08b49..00000000
--- a/ANDROID_3.4.5/include/net/x25device.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef _X25DEVICE_H
-#define _X25DEVICE_H
-
-#include <linux/if_ether.h>
-#include <linux/if_packet.h>
-#include <linux/if_x25.h>
-#include <linux/skbuff.h>
-
-static inline __be16 x25_type_trans(struct sk_buff *skb, struct net_device *dev)
-{
- skb->dev = dev;
- skb_reset_mac_header(skb);
- skb->pkt_type = PACKET_HOST;
-
- return htons(ETH_P_X25);
-}
-#endif
diff --git a/ANDROID_3.4.5/include/net/xfrm.h b/ANDROID_3.4.5/include/net/xfrm.h
deleted file mode 100644
index 96239e78..00000000
--- a/ANDROID_3.4.5/include/net/xfrm.h
+++ /dev/null
@@ -1,1693 +0,0 @@
-#ifndef _NET_XFRM_H
-#define _NET_XFRM_H
-
-#include <linux/compiler.h>
-#include <linux/xfrm.h>
-#include <linux/spinlock.h>
-#include <linux/list.h>
-#include <linux/skbuff.h>
-#include <linux/socket.h>
-#include <linux/pfkeyv2.h>
-#include <linux/ipsec.h>
-#include <linux/in6.h>
-#include <linux/mutex.h>
-#include <linux/audit.h>
-#include <linux/slab.h>
-
-#include <net/sock.h>
-#include <net/dst.h>
-#include <net/ip.h>
-#include <net/route.h>
-#include <net/ipv6.h>
-#include <net/ip6_fib.h>
-#include <net/flow.h>
-
-#include <linux/interrupt.h>
-
-#ifdef CONFIG_XFRM_STATISTICS
-#include <net/snmp.h>
-#endif
-
-#define XFRM_PROTO_ESP 50
-#define XFRM_PROTO_AH 51
-#define XFRM_PROTO_COMP 108
-#define XFRM_PROTO_IPIP 4
-#define XFRM_PROTO_IPV6 41
-#define XFRM_PROTO_ROUTING IPPROTO_ROUTING
-#define XFRM_PROTO_DSTOPTS IPPROTO_DSTOPTS
-
-#define XFRM_ALIGN4(len) (((len) + 3) & ~3)
-#define XFRM_ALIGN8(len) (((len) + 7) & ~7)
-#define MODULE_ALIAS_XFRM_MODE(family, encap) \
- MODULE_ALIAS("xfrm-mode-" __stringify(family) "-" __stringify(encap))
-#define MODULE_ALIAS_XFRM_TYPE(family, proto) \
- MODULE_ALIAS("xfrm-type-" __stringify(family) "-" __stringify(proto))
-
-#ifdef CONFIG_XFRM_STATISTICS
-#define XFRM_INC_STATS(net, field) SNMP_INC_STATS((net)->mib.xfrm_statistics, field)
-#define XFRM_INC_STATS_BH(net, field) SNMP_INC_STATS_BH((net)->mib.xfrm_statistics, field)
-#define XFRM_INC_STATS_USER(net, field) SNMP_INC_STATS_USER((net)-mib.xfrm_statistics, field)
-#else
-#define XFRM_INC_STATS(net, field) ((void)(net))
-#define XFRM_INC_STATS_BH(net, field) ((void)(net))
-#define XFRM_INC_STATS_USER(net, field) ((void)(net))
-#endif
-
-extern struct mutex xfrm_cfg_mutex;
-
-/* Organization of SPD aka "XFRM rules"
- ------------------------------------
-
- Basic objects:
- - policy rule, struct xfrm_policy (=SPD entry)
- - bundle of transformations, struct dst_entry == struct xfrm_dst (=SA bundle)
- - instance of a transformer, struct xfrm_state (=SA)
- - template to clone xfrm_state, struct xfrm_tmpl
-
- SPD is plain linear list of xfrm_policy rules, ordered by priority.
- (To be compatible with existing pfkeyv2 implementations,
- many rules with priority of 0x7fffffff are allowed to exist and
- such rules are ordered in an unpredictable way, thanks to bsd folks.)
-
- Lookup is plain linear search until the first match with selector.
-
- If "action" is "block", then we prohibit the flow, otherwise:
- if "xfrms_nr" is zero, the flow passes untransformed. Otherwise,
- policy entry has list of up to XFRM_MAX_DEPTH transformations,
- described by templates xfrm_tmpl. Each template is resolved
- to a complete xfrm_state (see below) and we pack bundle of transformations
- to a dst_entry returned to requestor.
-
- dst -. xfrm .-> xfrm_state #1
- |---. child .-> dst -. xfrm .-> xfrm_state #2
- |---. child .-> dst -. xfrm .-> xfrm_state #3
- |---. child .-> NULL
-
- Bundles are cached at xrfm_policy struct (field ->bundles).
-
-
- Resolution of xrfm_tmpl
- -----------------------
- Template contains:
- 1. ->mode Mode: transport or tunnel
- 2. ->id.proto Protocol: AH/ESP/IPCOMP
- 3. ->id.daddr Remote tunnel endpoint, ignored for transport mode.
- Q: allow to resolve security gateway?
- 4. ->id.spi If not zero, static SPI.
- 5. ->saddr Local tunnel endpoint, ignored for transport mode.
- 6. ->algos List of allowed algos. Plain bitmask now.
- Q: ealgos, aalgos, calgos. What a mess...
- 7. ->share Sharing mode.
- Q: how to implement private sharing mode? To add struct sock* to
- flow id?
-
- Having this template we search through SAD searching for entries
- with appropriate mode/proto/algo, permitted by selector.
- If no appropriate entry found, it is requested from key manager.
-
- PROBLEMS:
- Q: How to find all the bundles referring to a physical path for
- PMTU discovery? Seems, dst should contain list of all parents...
- and enter to infinite locking hierarchy disaster.
- No! It is easier, we will not search for them, let them find us.
- We add genid to each dst plus pointer to genid of raw IP route,
- pmtu disc will update pmtu on raw IP route and increase its genid.
- dst_check() will see this for top level and trigger resyncing
- metrics. Plus, it will be made via sk->sk_dst_cache. Solved.
- */
-
-struct xfrm_state_walk {
- struct list_head all;
- u8 state;
- union {
- u8 dying;
- u8 proto;
- };
- u32 seq;
-};
-
-/* Full description of state of transformer. */
-struct xfrm_state {
-#ifdef CONFIG_NET_NS
- struct net *xs_net;
-#endif
- union {
- struct hlist_node gclist;
- struct hlist_node bydst;
- };
- struct hlist_node bysrc;
- struct hlist_node byspi;
-
- atomic_t refcnt;
- spinlock_t lock;
-
- struct xfrm_id id;
- struct xfrm_selector sel;
- struct xfrm_mark mark;
- u32 tfcpad;
-
- u32 genid;
-
- /* Key manager bits */
- struct xfrm_state_walk km;
-
- /* Parameters of this state. */
- struct {
- u32 reqid;
- u8 mode;
- u8 replay_window;
- u8 aalgo, ealgo, calgo;
- u8 flags;
- u16 family;
- xfrm_address_t saddr;
- int header_len;
- int trailer_len;
- } props;
-
- struct xfrm_lifetime_cfg lft;
-
- /* Data for transformer */
- struct xfrm_algo_auth *aalg;
- struct xfrm_algo *ealg;
- struct xfrm_algo *calg;
- struct xfrm_algo_aead *aead;
-
- /* Data for encapsulator */
- struct xfrm_encap_tmpl *encap;
-
- /* Data for care-of address */
- xfrm_address_t *coaddr;
-
- /* IPComp needs an IPIP tunnel for handling uncompressed packets */
- struct xfrm_state *tunnel;
-
- /* If a tunnel, number of users + 1 */
- atomic_t tunnel_users;
-
- /* State for replay detection */
- struct xfrm_replay_state replay;
- struct xfrm_replay_state_esn *replay_esn;
-
- /* Replay detection state at the time we sent the last notification */
- struct xfrm_replay_state preplay;
- struct xfrm_replay_state_esn *preplay_esn;
-
- /* The functions for replay detection. */
- struct xfrm_replay *repl;
-
- /* internal flag that only holds state for delayed aevent at the
- * moment
- */
- u32 xflags;
-
- /* Replay detection notification settings */
- u32 replay_maxage;
- u32 replay_maxdiff;
-
- /* Replay detection notification timer */
- struct timer_list rtimer;
-
- /* Statistics */
- struct xfrm_stats stats;
-
- struct xfrm_lifetime_cur curlft;
- struct tasklet_hrtimer mtimer;
-
- /* Last used time */
- unsigned long lastused;
-
- /* Reference to data common to all the instances of this
- * transformer. */
- const struct xfrm_type *type;
- struct xfrm_mode *inner_mode;
- struct xfrm_mode *inner_mode_iaf;
- struct xfrm_mode *outer_mode;
-
- /* Security context */
- struct xfrm_sec_ctx *security;
-
- /* Private data of this transformer, format is opaque,
- * interpreted by xfrm_type methods. */
- void *data;
-};
-
-static inline struct net *xs_net(struct xfrm_state *x)
-{
- return read_pnet(&x->xs_net);
-}
-
-/* xflags - make enum if more show up */
-#define XFRM_TIME_DEFER 1
-
-enum {
- XFRM_STATE_VOID,
- XFRM_STATE_ACQ,
- XFRM_STATE_VALID,
- XFRM_STATE_ERROR,
- XFRM_STATE_EXPIRED,
- XFRM_STATE_DEAD
-};
-
-/* callback structure passed from either netlink or pfkey */
-struct km_event {
- union {
- u32 hard;
- u32 proto;
- u32 byid;
- u32 aevent;
- u32 type;
- } data;
-
- u32 seq;
- u32 pid;
- u32 event;
- struct net *net;
-};
-
-struct xfrm_replay {
- void (*advance)(struct xfrm_state *x, __be32 net_seq);
- int (*check)(struct xfrm_state *x,
- struct sk_buff *skb,
- __be32 net_seq);
- void (*notify)(struct xfrm_state *x, int event);
- int (*overflow)(struct xfrm_state *x, struct sk_buff *skb);
-};
-
-struct net_device;
-struct xfrm_type;
-struct xfrm_dst;
-struct xfrm_policy_afinfo {
- unsigned short family;
- struct dst_ops *dst_ops;
- void (*garbage_collect)(struct net *net);
- struct dst_entry *(*dst_lookup)(struct net *net, int tos,
- const xfrm_address_t *saddr,
- const xfrm_address_t *daddr);
- int (*get_saddr)(struct net *net, xfrm_address_t *saddr, xfrm_address_t *daddr);
- void (*decode_session)(struct sk_buff *skb,
- struct flowi *fl,
- int reverse);
- int (*get_tos)(const struct flowi *fl);
- int (*init_path)(struct xfrm_dst *path,
- struct dst_entry *dst,
- int nfheader_len);
- int (*fill_dst)(struct xfrm_dst *xdst,
- struct net_device *dev,
- const struct flowi *fl);
- struct dst_entry *(*blackhole_route)(struct net *net, struct dst_entry *orig);
-};
-
-extern int xfrm_policy_register_afinfo(struct xfrm_policy_afinfo *afinfo);
-extern int xfrm_policy_unregister_afinfo(struct xfrm_policy_afinfo *afinfo);
-extern void km_policy_notify(struct xfrm_policy *xp, int dir, const struct km_event *c);
-extern void km_state_notify(struct xfrm_state *x, const struct km_event *c);
-
-struct xfrm_tmpl;
-extern int km_query(struct xfrm_state *x, struct xfrm_tmpl *t, struct xfrm_policy *pol);
-extern void km_state_expired(struct xfrm_state *x, int hard, u32 pid);
-extern int __xfrm_state_delete(struct xfrm_state *x);
-
-struct xfrm_state_afinfo {
- unsigned int family;
- unsigned int proto;
- __be16 eth_proto;
- struct module *owner;
- const struct xfrm_type *type_map[IPPROTO_MAX];
- struct xfrm_mode *mode_map[XFRM_MODE_MAX];
- int (*init_flags)(struct xfrm_state *x);
- void (*init_tempsel)(struct xfrm_selector *sel,
- const struct flowi *fl);
- void (*init_temprop)(struct xfrm_state *x,
- const struct xfrm_tmpl *tmpl,
- const xfrm_address_t *daddr,
- const xfrm_address_t *saddr);
- int (*tmpl_sort)(struct xfrm_tmpl **dst, struct xfrm_tmpl **src, int n);
- int (*state_sort)(struct xfrm_state **dst, struct xfrm_state **src, int n);
- int (*output)(struct sk_buff *skb);
- int (*output_finish)(struct sk_buff *skb);
- int (*extract_input)(struct xfrm_state *x,
- struct sk_buff *skb);
- int (*extract_output)(struct xfrm_state *x,
- struct sk_buff *skb);
- int (*transport_finish)(struct sk_buff *skb,
- int async);
-};
-
-extern int xfrm_state_register_afinfo(struct xfrm_state_afinfo *afinfo);
-extern int xfrm_state_unregister_afinfo(struct xfrm_state_afinfo *afinfo);
-
-extern void xfrm_state_delete_tunnel(struct xfrm_state *x);
-
-struct xfrm_type {
- char *description;
- struct module *owner;
- u8 proto;
- u8 flags;
-#define XFRM_TYPE_NON_FRAGMENT 1
-#define XFRM_TYPE_REPLAY_PROT 2
-#define XFRM_TYPE_LOCAL_COADDR 4
-#define XFRM_TYPE_REMOTE_COADDR 8
-
- int (*init_state)(struct xfrm_state *x);
- void (*destructor)(struct xfrm_state *);
- int (*input)(struct xfrm_state *, struct sk_buff *skb);
- int (*output)(struct xfrm_state *, struct sk_buff *pskb);
- int (*reject)(struct xfrm_state *, struct sk_buff *,
- const struct flowi *);
- int (*hdr_offset)(struct xfrm_state *, struct sk_buff *, u8 **);
- /* Estimate maximal size of result of transformation of a dgram */
- u32 (*get_mtu)(struct xfrm_state *, int size);
-};
-
-extern int xfrm_register_type(const struct xfrm_type *type, unsigned short family);
-extern int xfrm_unregister_type(const struct xfrm_type *type, unsigned short family);
-
-struct xfrm_mode {
- /*
- * Remove encapsulation header.
- *
- * The IP header will be moved over the top of the encapsulation
- * header.
- *
- * On entry, the transport header shall point to where the IP header
- * should be and the network header shall be set to where the IP
- * header currently is. skb->data shall point to the start of the
- * payload.
- */
- int (*input2)(struct xfrm_state *x, struct sk_buff *skb);
-
- /*
- * This is the actual input entry point.
- *
- * For transport mode and equivalent this would be identical to
- * input2 (which does not need to be set). While tunnel mode
- * and equivalent would set this to the tunnel encapsulation function
- * xfrm4_prepare_input that would in turn call input2.
- */
- int (*input)(struct xfrm_state *x, struct sk_buff *skb);
-
- /*
- * Add encapsulation header.
- *
- * On exit, the transport header will be set to the start of the
- * encapsulation header to be filled in by x->type->output and
- * the mac header will be set to the nextheader (protocol for
- * IPv4) field of the extension header directly preceding the
- * encapsulation header, or in its absence, that of the top IP
- * header. The value of the network header will always point
- * to the top IP header while skb->data will point to the payload.
- */
- int (*output2)(struct xfrm_state *x,struct sk_buff *skb);
-
- /*
- * This is the actual output entry point.
- *
- * For transport mode and equivalent this would be identical to
- * output2 (which does not need to be set). While tunnel mode
- * and equivalent would set this to a tunnel encapsulation function
- * (xfrm4_prepare_output or xfrm6_prepare_output) that would in turn
- * call output2.
- */
- int (*output)(struct xfrm_state *x, struct sk_buff *skb);
-
- struct xfrm_state_afinfo *afinfo;
- struct module *owner;
- unsigned int encap;
- int flags;
-};
-
-/* Flags for xfrm_mode. */
-enum {
- XFRM_MODE_FLAG_TUNNEL = 1,
-};
-
-extern int xfrm_register_mode(struct xfrm_mode *mode, int family);
-extern int xfrm_unregister_mode(struct xfrm_mode *mode, int family);
-
-static inline int xfrm_af2proto(unsigned int family)
-{
- switch(family) {
- case AF_INET:
- return IPPROTO_IPIP;
- case AF_INET6:
- return IPPROTO_IPV6;
- default:
- return 0;
- }
-}
-
-static inline struct xfrm_mode *xfrm_ip2inner_mode(struct xfrm_state *x, int ipproto)
-{
- if ((ipproto == IPPROTO_IPIP && x->props.family == AF_INET) ||
- (ipproto == IPPROTO_IPV6 && x->props.family == AF_INET6))
- return x->inner_mode;
- else
- return x->inner_mode_iaf;
-}
-
-struct xfrm_tmpl {
-/* id in template is interpreted as:
- * daddr - destination of tunnel, may be zero for transport mode.
- * spi - zero to acquire spi. Not zero if spi is static, then
- * daddr must be fixed too.
- * proto - AH/ESP/IPCOMP
- */
- struct xfrm_id id;
-
-/* Source address of tunnel. Ignored, if it is not a tunnel. */
- xfrm_address_t saddr;
-
- unsigned short encap_family;
-
- u32 reqid;
-
-/* Mode: transport, tunnel etc. */
- u8 mode;
-
-/* Sharing mode: unique, this session only, this user only etc. */
- u8 share;
-
-/* May skip this transfomration if no SA is found */
- u8 optional;
-
-/* Skip aalgos/ealgos/calgos checks. */
- u8 allalgs;
-
-/* Bit mask of algos allowed for acquisition */
- u32 aalgos;
- u32 ealgos;
- u32 calgos;
-};
-
-#define XFRM_MAX_DEPTH 6
-
-struct xfrm_policy_walk_entry {
- struct list_head all;
- u8 dead;
-};
-
-struct xfrm_policy_walk {
- struct xfrm_policy_walk_entry walk;
- u8 type;
- u32 seq;
-};
-
-struct xfrm_policy {
-#ifdef CONFIG_NET_NS
- struct net *xp_net;
-#endif
- struct hlist_node bydst;
- struct hlist_node byidx;
-
- /* This lock only affects elements except for entry. */
- rwlock_t lock;
- atomic_t refcnt;
- struct timer_list timer;
-
- struct flow_cache_object flo;
- atomic_t genid;
- u32 priority;
- u32 index;
- struct xfrm_mark mark;
- struct xfrm_selector selector;
- struct xfrm_lifetime_cfg lft;
- struct xfrm_lifetime_cur curlft;
- struct xfrm_policy_walk_entry walk;
- u8 type;
- u8 action;
- u8 flags;
- u8 xfrm_nr;
- u16 family;
- struct xfrm_sec_ctx *security;
- struct xfrm_tmpl xfrm_vec[XFRM_MAX_DEPTH];
-};
-
-static inline struct net *xp_net(const struct xfrm_policy *xp)
-{
- return read_pnet(&xp->xp_net);
-}
-
-struct xfrm_kmaddress {
- xfrm_address_t local;
- xfrm_address_t remote;
- u32 reserved;
- u16 family;
-};
-
-struct xfrm_migrate {
- xfrm_address_t old_daddr;
- xfrm_address_t old_saddr;
- xfrm_address_t new_daddr;
- xfrm_address_t new_saddr;
- u8 proto;
- u8 mode;
- u16 reserved;
- u32 reqid;
- u16 old_family;
- u16 new_family;
-};
-
-#define XFRM_KM_TIMEOUT 30
-/* which seqno */
-#define XFRM_REPLAY_SEQ 1
-#define XFRM_REPLAY_OSEQ 2
-#define XFRM_REPLAY_SEQ_MASK 3
-/* what happened */
-#define XFRM_REPLAY_UPDATE XFRM_AE_CR
-#define XFRM_REPLAY_TIMEOUT XFRM_AE_CE
-
-/* default aevent timeout in units of 100ms */
-#define XFRM_AE_ETIME 10
-/* Async Event timer multiplier */
-#define XFRM_AE_ETH_M 10
-/* default seq threshold size */
-#define XFRM_AE_SEQT_SIZE 2
-
-struct xfrm_mgr {
- struct list_head list;
- char *id;
- int (*notify)(struct xfrm_state *x, const struct km_event *c);
- int (*acquire)(struct xfrm_state *x, struct xfrm_tmpl *, struct xfrm_policy *xp, int dir);
- struct xfrm_policy *(*compile_policy)(struct sock *sk, int opt, u8 *data, int len, int *dir);
- int (*new_mapping)(struct xfrm_state *x, xfrm_address_t *ipaddr, __be16 sport);
- int (*notify_policy)(struct xfrm_policy *x, int dir, const struct km_event *c);
- int (*report)(struct net *net, u8 proto, struct xfrm_selector *sel, xfrm_address_t *addr);
- int (*migrate)(const struct xfrm_selector *sel,
- u8 dir, u8 type,
- const struct xfrm_migrate *m,
- int num_bundles,
- const struct xfrm_kmaddress *k);
-};
-
-extern int xfrm_register_km(struct xfrm_mgr *km);
-extern int xfrm_unregister_km(struct xfrm_mgr *km);
-
-/*
- * This structure is used for the duration where packets are being
- * transformed by IPsec. As soon as the packet leaves IPsec the
- * area beyond the generic IP part may be overwritten.
- */
-struct xfrm_skb_cb {
- union {
- struct inet_skb_parm h4;
- struct inet6_skb_parm h6;
- } header;
-
- /* Sequence number for replay protection. */
- union {
- struct {
- __u32 low;
- __u32 hi;
- } output;
- struct {
- __be32 low;
- __be32 hi;
- } input;
- } seq;
-};
-
-#define XFRM_SKB_CB(__skb) ((struct xfrm_skb_cb *)&((__skb)->cb[0]))
-
-/*
- * This structure is used by the afinfo prepare_input/prepare_output functions
- * to transmit header information to the mode input/output functions.
- */
-struct xfrm_mode_skb_cb {
- union {
- struct inet_skb_parm h4;
- struct inet6_skb_parm h6;
- } header;
-
- /* Copied from header for IPv4, always set to zero and DF for IPv6. */
- __be16 id;
- __be16 frag_off;
-
- /* IP header length (excluding options or extension headers). */
- u8 ihl;
-
- /* TOS for IPv4, class for IPv6. */
- u8 tos;
-
- /* TTL for IPv4, hop limitfor IPv6. */
- u8 ttl;
-
- /* Protocol for IPv4, NH for IPv6. */
- u8 protocol;
-
- /* Option length for IPv4, zero for IPv6. */
- u8 optlen;
-
- /* Used by IPv6 only, zero for IPv4. */
- u8 flow_lbl[3];
-};
-
-#define XFRM_MODE_SKB_CB(__skb) ((struct xfrm_mode_skb_cb *)&((__skb)->cb[0]))
-
-/*
- * This structure is used by the input processing to locate the SPI and
- * related information.
- */
-struct xfrm_spi_skb_cb {
- union {
- struct inet_skb_parm h4;
- struct inet6_skb_parm h6;
- } header;
-
- unsigned int daddroff;
- unsigned int family;
-};
-
-#define XFRM_SPI_SKB_CB(__skb) ((struct xfrm_spi_skb_cb *)&((__skb)->cb[0]))
-
-/* Audit Information */
-struct xfrm_audit {
- u32 secid;
- uid_t loginuid;
- u32 sessionid;
-};
-
-#ifdef CONFIG_AUDITSYSCALL
-static inline struct audit_buffer *xfrm_audit_start(const char *op)
-{
- struct audit_buffer *audit_buf = NULL;
-
- if (audit_enabled == 0)
- return NULL;
- audit_buf = audit_log_start(current->audit_context, GFP_ATOMIC,
- AUDIT_MAC_IPSEC_EVENT);
- if (audit_buf == NULL)
- return NULL;
- audit_log_format(audit_buf, "op=%s", op);
- return audit_buf;
-}
-
-static inline void xfrm_audit_helper_usrinfo(uid_t auid, u32 ses, u32 secid,
- struct audit_buffer *audit_buf)
-{
- char *secctx;
- u32 secctx_len;
-
- audit_log_format(audit_buf, " auid=%u ses=%u", auid, ses);
- if (secid != 0 &&
- security_secid_to_secctx(secid, &secctx, &secctx_len) == 0) {
- audit_log_format(audit_buf, " subj=%s", secctx);
- security_release_secctx(secctx, secctx_len);
- } else
- audit_log_task_context(audit_buf);
-}
-
-extern void xfrm_audit_policy_add(struct xfrm_policy *xp, int result,
- u32 auid, u32 ses, u32 secid);
-extern void xfrm_audit_policy_delete(struct xfrm_policy *xp, int result,
- u32 auid, u32 ses, u32 secid);
-extern void xfrm_audit_state_add(struct xfrm_state *x, int result,
- u32 auid, u32 ses, u32 secid);
-extern void xfrm_audit_state_delete(struct xfrm_state *x, int result,
- u32 auid, u32 ses, u32 secid);
-extern void xfrm_audit_state_replay_overflow(struct xfrm_state *x,
- struct sk_buff *skb);
-extern void xfrm_audit_state_replay(struct xfrm_state *x,
- struct sk_buff *skb, __be32 net_seq);
-extern void xfrm_audit_state_notfound_simple(struct sk_buff *skb, u16 family);
-extern void xfrm_audit_state_notfound(struct sk_buff *skb, u16 family,
- __be32 net_spi, __be32 net_seq);
-extern void xfrm_audit_state_icvfail(struct xfrm_state *x,
- struct sk_buff *skb, u8 proto);
-#else
-
-static inline void xfrm_audit_policy_add(struct xfrm_policy *xp, int result,
- u32 auid, u32 ses, u32 secid)
-{
-}
-
-static inline void xfrm_audit_policy_delete(struct xfrm_policy *xp, int result,
- u32 auid, u32 ses, u32 secid)
-{
-}
-
-static inline void xfrm_audit_state_add(struct xfrm_state *x, int result,
- u32 auid, u32 ses, u32 secid)
-{
-}
-
-static inline void xfrm_audit_state_delete(struct xfrm_state *x, int result,
- u32 auid, u32 ses, u32 secid)
-{
-}
-
-static inline void xfrm_audit_state_replay_overflow(struct xfrm_state *x,
- struct sk_buff *skb)
-{
-}
-
-static inline void xfrm_audit_state_replay(struct xfrm_state *x,
- struct sk_buff *skb, __be32 net_seq)
-{
-}
-
-static inline void xfrm_audit_state_notfound_simple(struct sk_buff *skb,
- u16 family)
-{
-}
-
-static inline void xfrm_audit_state_notfound(struct sk_buff *skb, u16 family,
- __be32 net_spi, __be32 net_seq)
-{
-}
-
-static inline void xfrm_audit_state_icvfail(struct xfrm_state *x,
- struct sk_buff *skb, u8 proto)
-{
-}
-#endif /* CONFIG_AUDITSYSCALL */
-
-static inline void xfrm_pol_hold(struct xfrm_policy *policy)
-{
- if (likely(policy != NULL))
- atomic_inc(&policy->refcnt);
-}
-
-extern void xfrm_policy_destroy(struct xfrm_policy *policy);
-
-static inline void xfrm_pol_put(struct xfrm_policy *policy)
-{
- if (atomic_dec_and_test(&policy->refcnt))
- xfrm_policy_destroy(policy);
-}
-
-static inline void xfrm_pols_put(struct xfrm_policy **pols, int npols)
-{
- int i;
- for (i = npols - 1; i >= 0; --i)
- xfrm_pol_put(pols[i]);
-}
-
-extern void __xfrm_state_destroy(struct xfrm_state *);
-
-static inline void __xfrm_state_put(struct xfrm_state *x)
-{
- atomic_dec(&x->refcnt);
-}
-
-static inline void xfrm_state_put(struct xfrm_state *x)
-{
- if (atomic_dec_and_test(&x->refcnt))
- __xfrm_state_destroy(x);
-}
-
-static inline void xfrm_state_hold(struct xfrm_state *x)
-{
- atomic_inc(&x->refcnt);
-}
-
-static inline bool addr_match(const void *token1, const void *token2,
- int prefixlen)
-{
- const __be32 *a1 = token1;
- const __be32 *a2 = token2;
- int pdw;
- int pbi;
-
- pdw = prefixlen >> 5; /* num of whole u32 in prefix */
- pbi = prefixlen & 0x1f; /* num of bits in incomplete u32 in prefix */
-
- if (pdw)
- if (memcmp(a1, a2, pdw << 2))
- return false;
-
- if (pbi) {
- __be32 mask;
-
- mask = htonl((0xffffffff) << (32 - pbi));
-
- if ((a1[pdw] ^ a2[pdw]) & mask)
- return false;
- }
-
- return true;
-}
-
-static inline bool addr4_match(__be32 a1, __be32 a2, u8 prefixlen)
-{
- /* C99 6.5.7 (3): u32 << 32 is undefined behaviour */
- if (prefixlen == 0)
- return true;
- return !((a1 ^ a2) & htonl(0xFFFFFFFFu << (32 - prefixlen)));
-}
-
-static __inline__
-__be16 xfrm_flowi_sport(const struct flowi *fl, const union flowi_uli *uli)
-{
- __be16 port;
- switch(fl->flowi_proto) {
- case IPPROTO_TCP:
- case IPPROTO_UDP:
- case IPPROTO_UDPLITE:
- case IPPROTO_SCTP:
- port = uli->ports.sport;
- break;
- case IPPROTO_ICMP:
- case IPPROTO_ICMPV6:
- port = htons(uli->icmpt.type);
- break;
- case IPPROTO_MH:
- port = htons(uli->mht.type);
- break;
- case IPPROTO_GRE:
- port = htons(ntohl(uli->gre_key) >> 16);
- break;
- default:
- port = 0; /*XXX*/
- }
- return port;
-}
-
-static __inline__
-__be16 xfrm_flowi_dport(const struct flowi *fl, const union flowi_uli *uli)
-{
- __be16 port;
- switch(fl->flowi_proto) {
- case IPPROTO_TCP:
- case IPPROTO_UDP:
- case IPPROTO_UDPLITE:
- case IPPROTO_SCTP:
- port = uli->ports.dport;
- break;
- case IPPROTO_ICMP:
- case IPPROTO_ICMPV6:
- port = htons(uli->icmpt.code);
- break;
- case IPPROTO_GRE:
- port = htons(ntohl(uli->gre_key) & 0xffff);
- break;
- default:
- port = 0; /*XXX*/
- }
- return port;
-}
-
-extern int xfrm_selector_match(const struct xfrm_selector *sel,
- const struct flowi *fl,
- unsigned short family);
-
-#ifdef CONFIG_SECURITY_NETWORK_XFRM
-/* If neither has a context --> match
- * Otherwise, both must have a context and the sids, doi, alg must match
- */
-static inline int xfrm_sec_ctx_match(struct xfrm_sec_ctx *s1, struct xfrm_sec_ctx *s2)
-{
- return ((!s1 && !s2) ||
- (s1 && s2 &&
- (s1->ctx_sid == s2->ctx_sid) &&
- (s1->ctx_doi == s2->ctx_doi) &&
- (s1->ctx_alg == s2->ctx_alg)));
-}
-#else
-static inline int xfrm_sec_ctx_match(struct xfrm_sec_ctx *s1, struct xfrm_sec_ctx *s2)
-{
- return 1;
-}
-#endif
-
-/* A struct encoding bundle of transformations to apply to some set of flow.
- *
- * dst->child points to the next element of bundle.
- * dst->xfrm points to an instanse of transformer.
- *
- * Due to unfortunate limitations of current routing cache, which we
- * have no time to fix, it mirrors struct rtable and bound to the same
- * routing key, including saddr,daddr. However, we can have many of
- * bundles differing by session id. All the bundles grow from a parent
- * policy rule.
- */
-struct xfrm_dst {
- union {
- struct dst_entry dst;
- struct rtable rt;
- struct rt6_info rt6;
- } u;
- struct dst_entry *route;
- struct flow_cache_object flo;
- struct xfrm_policy *pols[XFRM_POLICY_TYPE_MAX];
- int num_pols, num_xfrms;
-#ifdef CONFIG_XFRM_SUB_POLICY
- struct flowi *origin;
- struct xfrm_selector *partner;
-#endif
- u32 xfrm_genid;
- u32 policy_genid;
- u32 route_mtu_cached;
- u32 child_mtu_cached;
- u32 route_cookie;
- u32 path_cookie;
-};
-
-#ifdef CONFIG_XFRM
-static inline void xfrm_dst_destroy(struct xfrm_dst *xdst)
-{
- xfrm_pols_put(xdst->pols, xdst->num_pols);
- dst_release(xdst->route);
- if (likely(xdst->u.dst.xfrm))
- xfrm_state_put(xdst->u.dst.xfrm);
-#ifdef CONFIG_XFRM_SUB_POLICY
- kfree(xdst->origin);
- xdst->origin = NULL;
- kfree(xdst->partner);
- xdst->partner = NULL;
-#endif
-}
-#endif
-
-extern void xfrm_dst_ifdown(struct dst_entry *dst, struct net_device *dev);
-
-struct sec_path {
- atomic_t refcnt;
- int len;
- struct xfrm_state *xvec[XFRM_MAX_DEPTH];
-};
-
-static inline int secpath_exists(struct sk_buff *skb)
-{
-#ifdef CONFIG_XFRM
- return skb->sp != NULL;
-#else
- return 0;
-#endif
-}
-
-static inline struct sec_path *
-secpath_get(struct sec_path *sp)
-{
- if (sp)
- atomic_inc(&sp->refcnt);
- return sp;
-}
-
-extern void __secpath_destroy(struct sec_path *sp);
-
-static inline void
-secpath_put(struct sec_path *sp)
-{
- if (sp && atomic_dec_and_test(&sp->refcnt))
- __secpath_destroy(sp);
-}
-
-extern struct sec_path *secpath_dup(struct sec_path *src);
-
-static inline void
-secpath_reset(struct sk_buff *skb)
-{
-#ifdef CONFIG_XFRM
- secpath_put(skb->sp);
- skb->sp = NULL;
-#endif
-}
-
-static inline int
-xfrm_addr_any(const xfrm_address_t *addr, unsigned short family)
-{
- switch (family) {
- case AF_INET:
- return addr->a4 == 0;
- case AF_INET6:
- return ipv6_addr_any((struct in6_addr *)&addr->a6);
- }
- return 0;
-}
-
-static inline int
-__xfrm4_state_addr_cmp(const struct xfrm_tmpl *tmpl, const struct xfrm_state *x)
-{
- return (tmpl->saddr.a4 &&
- tmpl->saddr.a4 != x->props.saddr.a4);
-}
-
-static inline int
-__xfrm6_state_addr_cmp(const struct xfrm_tmpl *tmpl, const struct xfrm_state *x)
-{
- return (!ipv6_addr_any((struct in6_addr*)&tmpl->saddr) &&
- ipv6_addr_cmp((struct in6_addr *)&tmpl->saddr, (struct in6_addr*)&x->props.saddr));
-}
-
-static inline int
-xfrm_state_addr_cmp(const struct xfrm_tmpl *tmpl, const struct xfrm_state *x, unsigned short family)
-{
- switch (family) {
- case AF_INET:
- return __xfrm4_state_addr_cmp(tmpl, x);
- case AF_INET6:
- return __xfrm6_state_addr_cmp(tmpl, x);
- }
- return !0;
-}
-
-#ifdef CONFIG_XFRM
-extern int __xfrm_policy_check(struct sock *, int dir, struct sk_buff *skb, unsigned short family);
-
-static inline int __xfrm_policy_check2(struct sock *sk, int dir,
- struct sk_buff *skb,
- unsigned int family, int reverse)
-{
- struct net *net = dev_net(skb->dev);
- int ndir = dir | (reverse ? XFRM_POLICY_MASK + 1 : 0);
-
- if (sk && sk->sk_policy[XFRM_POLICY_IN])
- return __xfrm_policy_check(sk, ndir, skb, family);
-
- return (!net->xfrm.policy_count[dir] && !skb->sp) ||
- (skb_dst(skb)->flags & DST_NOPOLICY) ||
- __xfrm_policy_check(sk, ndir, skb, family);
-}
-
-static inline int xfrm_policy_check(struct sock *sk, int dir, struct sk_buff *skb, unsigned short family)
-{
- return __xfrm_policy_check2(sk, dir, skb, family, 0);
-}
-
-static inline int xfrm4_policy_check(struct sock *sk, int dir, struct sk_buff *skb)
-{
- return xfrm_policy_check(sk, dir, skb, AF_INET);
-}
-
-static inline int xfrm6_policy_check(struct sock *sk, int dir, struct sk_buff *skb)
-{
- return xfrm_policy_check(sk, dir, skb, AF_INET6);
-}
-
-static inline int xfrm4_policy_check_reverse(struct sock *sk, int dir,
- struct sk_buff *skb)
-{
- return __xfrm_policy_check2(sk, dir, skb, AF_INET, 1);
-}
-
-static inline int xfrm6_policy_check_reverse(struct sock *sk, int dir,
- struct sk_buff *skb)
-{
- return __xfrm_policy_check2(sk, dir, skb, AF_INET6, 1);
-}
-
-extern int __xfrm_decode_session(struct sk_buff *skb, struct flowi *fl,
- unsigned int family, int reverse);
-
-static inline int xfrm_decode_session(struct sk_buff *skb, struct flowi *fl,
- unsigned int family)
-{
- return __xfrm_decode_session(skb, fl, family, 0);
-}
-
-static inline int xfrm_decode_session_reverse(struct sk_buff *skb,
- struct flowi *fl,
- unsigned int family)
-{
- return __xfrm_decode_session(skb, fl, family, 1);
-}
-
-extern int __xfrm_route_forward(struct sk_buff *skb, unsigned short family);
-
-static inline int xfrm_route_forward(struct sk_buff *skb, unsigned short family)
-{
- struct net *net = dev_net(skb->dev);
-
- return !net->xfrm.policy_count[XFRM_POLICY_OUT] ||
- (skb_dst(skb)->flags & DST_NOXFRM) ||
- __xfrm_route_forward(skb, family);
-}
-
-static inline int xfrm4_route_forward(struct sk_buff *skb)
-{
- return xfrm_route_forward(skb, AF_INET);
-}
-
-static inline int xfrm6_route_forward(struct sk_buff *skb)
-{
- return xfrm_route_forward(skb, AF_INET6);
-}
-
-extern int __xfrm_sk_clone_policy(struct sock *sk);
-
-static inline int xfrm_sk_clone_policy(struct sock *sk)
-{
- if (unlikely(sk->sk_policy[0] || sk->sk_policy[1]))
- return __xfrm_sk_clone_policy(sk);
- return 0;
-}
-
-extern int xfrm_policy_delete(struct xfrm_policy *pol, int dir);
-
-static inline void xfrm_sk_free_policy(struct sock *sk)
-{
- if (unlikely(sk->sk_policy[0] != NULL)) {
- xfrm_policy_delete(sk->sk_policy[0], XFRM_POLICY_MAX);
- sk->sk_policy[0] = NULL;
- }
- if (unlikely(sk->sk_policy[1] != NULL)) {
- xfrm_policy_delete(sk->sk_policy[1], XFRM_POLICY_MAX+1);
- sk->sk_policy[1] = NULL;
- }
-}
-
-#else
-
-static inline void xfrm_sk_free_policy(struct sock *sk) {}
-static inline int xfrm_sk_clone_policy(struct sock *sk) { return 0; }
-static inline int xfrm6_route_forward(struct sk_buff *skb) { return 1; }
-static inline int xfrm4_route_forward(struct sk_buff *skb) { return 1; }
-static inline int xfrm6_policy_check(struct sock *sk, int dir, struct sk_buff *skb)
-{
- return 1;
-}
-static inline int xfrm4_policy_check(struct sock *sk, int dir, struct sk_buff *skb)
-{
- return 1;
-}
-static inline int xfrm_policy_check(struct sock *sk, int dir, struct sk_buff *skb, unsigned short family)
-{
- return 1;
-}
-static inline int xfrm_decode_session_reverse(struct sk_buff *skb,
- struct flowi *fl,
- unsigned int family)
-{
- return -ENOSYS;
-}
-static inline int xfrm4_policy_check_reverse(struct sock *sk, int dir,
- struct sk_buff *skb)
-{
- return 1;
-}
-static inline int xfrm6_policy_check_reverse(struct sock *sk, int dir,
- struct sk_buff *skb)
-{
- return 1;
-}
-#endif
-
-static __inline__
-xfrm_address_t *xfrm_flowi_daddr(const struct flowi *fl, unsigned short family)
-{
- switch (family){
- case AF_INET:
- return (xfrm_address_t *)&fl->u.ip4.daddr;
- case AF_INET6:
- return (xfrm_address_t *)&fl->u.ip6.daddr;
- }
- return NULL;
-}
-
-static __inline__
-xfrm_address_t *xfrm_flowi_saddr(const struct flowi *fl, unsigned short family)
-{
- switch (family){
- case AF_INET:
- return (xfrm_address_t *)&fl->u.ip4.saddr;
- case AF_INET6:
- return (xfrm_address_t *)&fl->u.ip6.saddr;
- }
- return NULL;
-}
-
-static __inline__
-void xfrm_flowi_addr_get(const struct flowi *fl,
- xfrm_address_t *saddr, xfrm_address_t *daddr,
- unsigned short family)
-{
- switch(family) {
- case AF_INET:
- memcpy(&saddr->a4, &fl->u.ip4.saddr, sizeof(saddr->a4));
- memcpy(&daddr->a4, &fl->u.ip4.daddr, sizeof(daddr->a4));
- break;
- case AF_INET6:
- *(struct in6_addr *)saddr->a6 = fl->u.ip6.saddr;
- *(struct in6_addr *)daddr->a6 = fl->u.ip6.daddr;
- break;
- }
-}
-
-static __inline__ int
-__xfrm4_state_addr_check(const struct xfrm_state *x,
- const xfrm_address_t *daddr, const xfrm_address_t *saddr)
-{
- if (daddr->a4 == x->id.daddr.a4 &&
- (saddr->a4 == x->props.saddr.a4 || !saddr->a4 || !x->props.saddr.a4))
- return 1;
- return 0;
-}
-
-static __inline__ int
-__xfrm6_state_addr_check(const struct xfrm_state *x,
- const xfrm_address_t *daddr, const xfrm_address_t *saddr)
-{
- if (!ipv6_addr_cmp((struct in6_addr *)daddr, (struct in6_addr *)&x->id.daddr) &&
- (!ipv6_addr_cmp((struct in6_addr *)saddr, (struct in6_addr *)&x->props.saddr)||
- ipv6_addr_any((struct in6_addr *)saddr) ||
- ipv6_addr_any((struct in6_addr *)&x->props.saddr)))
- return 1;
- return 0;
-}
-
-static __inline__ int
-xfrm_state_addr_check(const struct xfrm_state *x,
- const xfrm_address_t *daddr, const xfrm_address_t *saddr,
- unsigned short family)
-{
- switch (family) {
- case AF_INET:
- return __xfrm4_state_addr_check(x, daddr, saddr);
- case AF_INET6:
- return __xfrm6_state_addr_check(x, daddr, saddr);
- }
- return 0;
-}
-
-static __inline__ int
-xfrm_state_addr_flow_check(const struct xfrm_state *x, const struct flowi *fl,
- unsigned short family)
-{
- switch (family) {
- case AF_INET:
- return __xfrm4_state_addr_check(x,
- (const xfrm_address_t *)&fl->u.ip4.daddr,
- (const xfrm_address_t *)&fl->u.ip4.saddr);
- case AF_INET6:
- return __xfrm6_state_addr_check(x,
- (const xfrm_address_t *)&fl->u.ip6.daddr,
- (const xfrm_address_t *)&fl->u.ip6.saddr);
- }
- return 0;
-}
-
-static inline int xfrm_state_kern(const struct xfrm_state *x)
-{
- return atomic_read(&x->tunnel_users);
-}
-
-static inline int xfrm_id_proto_match(u8 proto, u8 userproto)
-{
- return (!userproto || proto == userproto ||
- (userproto == IPSEC_PROTO_ANY && (proto == IPPROTO_AH ||
- proto == IPPROTO_ESP ||
- proto == IPPROTO_COMP)));
-}
-
-/*
- * xfrm algorithm information
- */
-struct xfrm_algo_aead_info {
- u16 icv_truncbits;
-};
-
-struct xfrm_algo_auth_info {
- u16 icv_truncbits;
- u16 icv_fullbits;
-};
-
-struct xfrm_algo_encr_info {
- u16 blockbits;
- u16 defkeybits;
-};
-
-struct xfrm_algo_comp_info {
- u16 threshold;
-};
-
-struct xfrm_algo_desc {
- char *name;
- char *compat;
- u8 available:1;
- union {
- struct xfrm_algo_aead_info aead;
- struct xfrm_algo_auth_info auth;
- struct xfrm_algo_encr_info encr;
- struct xfrm_algo_comp_info comp;
- } uinfo;
- struct sadb_alg desc;
-};
-
-/* XFRM tunnel handlers. */
-struct xfrm_tunnel {
- int (*handler)(struct sk_buff *skb);
- int (*err_handler)(struct sk_buff *skb, u32 info);
-
- struct xfrm_tunnel __rcu *next;
- int priority;
-};
-
-struct xfrm6_tunnel {
- int (*handler)(struct sk_buff *skb);
- int (*err_handler)(struct sk_buff *skb, struct inet6_skb_parm *opt,
- u8 type, u8 code, int offset, __be32 info);
- struct xfrm6_tunnel __rcu *next;
- int priority;
-};
-
-extern void xfrm_init(void);
-extern void xfrm4_init(int rt_hash_size);
-extern int xfrm_state_init(struct net *net);
-extern void xfrm_state_fini(struct net *net);
-extern void xfrm4_state_init(void);
-#ifdef CONFIG_XFRM
-extern int xfrm6_init(void);
-extern void xfrm6_fini(void);
-extern int xfrm6_state_init(void);
-extern void xfrm6_state_fini(void);
-#else
-static inline int xfrm6_init(void)
-{
- return 0;
-}
-static inline void xfrm6_fini(void)
-{
- ;
-}
-#endif
-
-#ifdef CONFIG_XFRM_STATISTICS
-extern int xfrm_proc_init(struct net *net);
-extern void xfrm_proc_fini(struct net *net);
-#endif
-
-extern int xfrm_sysctl_init(struct net *net);
-#ifdef CONFIG_SYSCTL
-extern void xfrm_sysctl_fini(struct net *net);
-#else
-static inline void xfrm_sysctl_fini(struct net *net)
-{
-}
-#endif
-
-extern void xfrm_state_walk_init(struct xfrm_state_walk *walk, u8 proto);
-extern int xfrm_state_walk(struct net *net, struct xfrm_state_walk *walk,
- int (*func)(struct xfrm_state *, int, void*), void *);
-extern void xfrm_state_walk_done(struct xfrm_state_walk *walk);
-extern struct xfrm_state *xfrm_state_alloc(struct net *net);
-extern struct xfrm_state *xfrm_state_find(const xfrm_address_t *daddr,
- const xfrm_address_t *saddr,
- const struct flowi *fl,
- struct xfrm_tmpl *tmpl,
- struct xfrm_policy *pol, int *err,
- unsigned short family);
-extern struct xfrm_state *xfrm_stateonly_find(struct net *net, u32 mark,
- xfrm_address_t *daddr,
- xfrm_address_t *saddr,
- unsigned short family,
- u8 mode, u8 proto, u32 reqid);
-extern int xfrm_state_check_expire(struct xfrm_state *x);
-extern void xfrm_state_insert(struct xfrm_state *x);
-extern int xfrm_state_add(struct xfrm_state *x);
-extern int xfrm_state_update(struct xfrm_state *x);
-extern struct xfrm_state *xfrm_state_lookup(struct net *net, u32 mark,
- const xfrm_address_t *daddr, __be32 spi,
- u8 proto, unsigned short family);
-extern struct xfrm_state *xfrm_state_lookup_byaddr(struct net *net, u32 mark,
- const xfrm_address_t *daddr,
- const xfrm_address_t *saddr,
- u8 proto,
- unsigned short family);
-#ifdef CONFIG_XFRM_SUB_POLICY
-extern int xfrm_tmpl_sort(struct xfrm_tmpl **dst, struct xfrm_tmpl **src,
- int n, unsigned short family);
-extern int xfrm_state_sort(struct xfrm_state **dst, struct xfrm_state **src,
- int n, unsigned short family);
-#else
-static inline int xfrm_tmpl_sort(struct xfrm_tmpl **dst, struct xfrm_tmpl **src,
- int n, unsigned short family)
-{
- return -ENOSYS;
-}
-
-static inline int xfrm_state_sort(struct xfrm_state **dst, struct xfrm_state **src,
- int n, unsigned short family)
-{
- return -ENOSYS;
-}
-#endif
-
-struct xfrmk_sadinfo {
- u32 sadhcnt; /* current hash bkts */
- u32 sadhmcnt; /* max allowed hash bkts */
- u32 sadcnt; /* current running count */
-};
-
-struct xfrmk_spdinfo {
- u32 incnt;
- u32 outcnt;
- u32 fwdcnt;
- u32 inscnt;
- u32 outscnt;
- u32 fwdscnt;
- u32 spdhcnt;
- u32 spdhmcnt;
-};
-
-extern struct xfrm_state *xfrm_find_acq_byseq(struct net *net, u32 mark,
- u32 seq);
-extern int xfrm_state_delete(struct xfrm_state *x);
-extern int xfrm_state_flush(struct net *net, u8 proto, struct xfrm_audit *audit_info);
-extern void xfrm_sad_getinfo(struct net *net, struct xfrmk_sadinfo *si);
-extern void xfrm_spd_getinfo(struct net *net, struct xfrmk_spdinfo *si);
-extern u32 xfrm_replay_seqhi(struct xfrm_state *x, __be32 net_seq);
-extern int xfrm_init_replay(struct xfrm_state *x);
-extern int xfrm_state_mtu(struct xfrm_state *x, int mtu);
-extern int __xfrm_init_state(struct xfrm_state *x, bool init_replay);
-extern int xfrm_init_state(struct xfrm_state *x);
-extern int xfrm_prepare_input(struct xfrm_state *x, struct sk_buff *skb);
-extern int xfrm_input(struct sk_buff *skb, int nexthdr, __be32 spi,
- int encap_type);
-extern int xfrm_input_resume(struct sk_buff *skb, int nexthdr);
-extern int xfrm_output_resume(struct sk_buff *skb, int err);
-extern int xfrm_output(struct sk_buff *skb);
-extern int xfrm_inner_extract_output(struct xfrm_state *x, struct sk_buff *skb);
-extern int xfrm4_extract_header(struct sk_buff *skb);
-extern int xfrm4_extract_input(struct xfrm_state *x, struct sk_buff *skb);
-extern int xfrm4_rcv_encap(struct sk_buff *skb, int nexthdr, __be32 spi,
- int encap_type);
-extern int xfrm4_transport_finish(struct sk_buff *skb, int async);
-extern int xfrm4_rcv(struct sk_buff *skb);
-
-static inline int xfrm4_rcv_spi(struct sk_buff *skb, int nexthdr, __be32 spi)
-{
- return xfrm4_rcv_encap(skb, nexthdr, spi, 0);
-}
-
-extern int xfrm4_extract_output(struct xfrm_state *x, struct sk_buff *skb);
-extern int xfrm4_prepare_output(struct xfrm_state *x, struct sk_buff *skb);
-extern int xfrm4_output(struct sk_buff *skb);
-extern int xfrm4_output_finish(struct sk_buff *skb);
-extern int xfrm4_tunnel_register(struct xfrm_tunnel *handler, unsigned short family);
-extern int xfrm4_tunnel_deregister(struct xfrm_tunnel *handler, unsigned short family);
-extern int xfrm6_extract_header(struct sk_buff *skb);
-extern int xfrm6_extract_input(struct xfrm_state *x, struct sk_buff *skb);
-extern int xfrm6_rcv_spi(struct sk_buff *skb, int nexthdr, __be32 spi);
-extern int xfrm6_transport_finish(struct sk_buff *skb, int async);
-extern int xfrm6_rcv(struct sk_buff *skb);
-extern int xfrm6_input_addr(struct sk_buff *skb, xfrm_address_t *daddr,
- xfrm_address_t *saddr, u8 proto);
-extern int xfrm6_tunnel_register(struct xfrm6_tunnel *handler, unsigned short family);
-extern int xfrm6_tunnel_deregister(struct xfrm6_tunnel *handler, unsigned short family);
-extern __be32 xfrm6_tunnel_alloc_spi(struct net *net, xfrm_address_t *saddr);
-extern __be32 xfrm6_tunnel_spi_lookup(struct net *net, const xfrm_address_t *saddr);
-extern int xfrm6_extract_output(struct xfrm_state *x, struct sk_buff *skb);
-extern int xfrm6_prepare_output(struct xfrm_state *x, struct sk_buff *skb);
-extern int xfrm6_output(struct sk_buff *skb);
-extern int xfrm6_output_finish(struct sk_buff *skb);
-extern int xfrm6_find_1stfragopt(struct xfrm_state *x, struct sk_buff *skb,
- u8 **prevhdr);
-
-#ifdef CONFIG_XFRM
-extern int xfrm4_udp_encap_rcv(struct sock *sk, struct sk_buff *skb);
-extern int xfrm_user_policy(struct sock *sk, int optname, u8 __user *optval, int optlen);
-#else
-static inline int xfrm_user_policy(struct sock *sk, int optname, u8 __user *optval, int optlen)
-{
- return -ENOPROTOOPT;
-}
-
-static inline int xfrm4_udp_encap_rcv(struct sock *sk, struct sk_buff *skb)
-{
- /* should not happen */
- kfree_skb(skb);
- return 0;
-}
-#endif
-
-struct xfrm_policy *xfrm_policy_alloc(struct net *net, gfp_t gfp);
-
-extern void xfrm_policy_walk_init(struct xfrm_policy_walk *walk, u8 type);
-extern int xfrm_policy_walk(struct net *net, struct xfrm_policy_walk *walk,
- int (*func)(struct xfrm_policy *, int, int, void*), void *);
-extern void xfrm_policy_walk_done(struct xfrm_policy_walk *walk);
-int xfrm_policy_insert(int dir, struct xfrm_policy *policy, int excl);
-struct xfrm_policy *xfrm_policy_bysel_ctx(struct net *net, u32 mark,
- u8 type, int dir,
- struct xfrm_selector *sel,
- struct xfrm_sec_ctx *ctx, int delete,
- int *err);
-struct xfrm_policy *xfrm_policy_byid(struct net *net, u32 mark, u8, int dir, u32 id, int delete, int *err);
-int xfrm_policy_flush(struct net *net, u8 type, struct xfrm_audit *audit_info);
-u32 xfrm_get_acqseq(void);
-extern int xfrm_alloc_spi(struct xfrm_state *x, u32 minspi, u32 maxspi);
-struct xfrm_state *xfrm_find_acq(struct net *net, struct xfrm_mark *mark,
- u8 mode, u32 reqid, u8 proto,
- const xfrm_address_t *daddr,
- const xfrm_address_t *saddr, int create,
- unsigned short family);
-extern int xfrm_sk_policy_insert(struct sock *sk, int dir, struct xfrm_policy *pol);
-
-#ifdef CONFIG_XFRM_MIGRATE
-extern int km_migrate(const struct xfrm_selector *sel, u8 dir, u8 type,
- const struct xfrm_migrate *m, int num_bundles,
- const struct xfrm_kmaddress *k);
-extern struct xfrm_state * xfrm_migrate_state_find(struct xfrm_migrate *m);
-extern struct xfrm_state * xfrm_state_migrate(struct xfrm_state *x,
- struct xfrm_migrate *m);
-extern int xfrm_migrate(const struct xfrm_selector *sel, u8 dir, u8 type,
- struct xfrm_migrate *m, int num_bundles,
- struct xfrm_kmaddress *k);
-#endif
-
-extern int km_new_mapping(struct xfrm_state *x, xfrm_address_t *ipaddr, __be16 sport);
-extern void km_policy_expired(struct xfrm_policy *pol, int dir, int hard, u32 pid);
-extern int km_report(struct net *net, u8 proto, struct xfrm_selector *sel, xfrm_address_t *addr);
-
-extern void xfrm_input_init(void);
-extern int xfrm_parse_spi(struct sk_buff *skb, u8 nexthdr, __be32 *spi, __be32 *seq);
-
-extern void xfrm_probe_algs(void);
-extern int xfrm_count_auth_supported(void);
-extern int xfrm_count_enc_supported(void);
-extern struct xfrm_algo_desc *xfrm_aalg_get_byidx(unsigned int idx);
-extern struct xfrm_algo_desc *xfrm_ealg_get_byidx(unsigned int idx);
-extern struct xfrm_algo_desc *xfrm_aalg_get_byid(int alg_id);
-extern struct xfrm_algo_desc *xfrm_ealg_get_byid(int alg_id);
-extern struct xfrm_algo_desc *xfrm_calg_get_byid(int alg_id);
-extern struct xfrm_algo_desc *xfrm_aalg_get_byname(const char *name, int probe);
-extern struct xfrm_algo_desc *xfrm_ealg_get_byname(const char *name, int probe);
-extern struct xfrm_algo_desc *xfrm_calg_get_byname(const char *name, int probe);
-extern struct xfrm_algo_desc *xfrm_aead_get_byname(const char *name, int icv_len,
- int probe);
-
-static inline int xfrm_addr_cmp(const xfrm_address_t *a,
- const xfrm_address_t *b,
- int family)
-{
- switch (family) {
- default:
- case AF_INET:
- return (__force u32)a->a4 - (__force u32)b->a4;
- case AF_INET6:
- return ipv6_addr_cmp((const struct in6_addr *)a,
- (const struct in6_addr *)b);
- }
-}
-
-static inline int xfrm_policy_id2dir(u32 index)
-{
- return index & 7;
-}
-
-#ifdef CONFIG_XFRM
-static inline int xfrm_aevent_is_on(struct net *net)
-{
- struct sock *nlsk;
- int ret = 0;
-
- rcu_read_lock();
- nlsk = rcu_dereference(net->xfrm.nlsk);
- if (nlsk)
- ret = netlink_has_listeners(nlsk, XFRMNLGRP_AEVENTS);
- rcu_read_unlock();
- return ret;
-}
-#endif
-
-static inline int xfrm_alg_len(const struct xfrm_algo *alg)
-{
- return sizeof(*alg) + ((alg->alg_key_len + 7) / 8);
-}
-
-static inline int xfrm_alg_auth_len(const struct xfrm_algo_auth *alg)
-{
- return sizeof(*alg) + ((alg->alg_key_len + 7) / 8);
-}
-
-static inline int xfrm_replay_state_esn_len(struct xfrm_replay_state_esn *replay_esn)
-{
- return sizeof(*replay_esn) + replay_esn->bmp_len * sizeof(__u32);
-}
-
-#ifdef CONFIG_XFRM_MIGRATE
-static inline int xfrm_replay_clone(struct xfrm_state *x,
- struct xfrm_state *orig)
-{
- x->replay_esn = kzalloc(xfrm_replay_state_esn_len(orig->replay_esn),
- GFP_KERNEL);
- if (!x->replay_esn)
- return -ENOMEM;
-
- x->replay_esn->bmp_len = orig->replay_esn->bmp_len;
- x->replay_esn->replay_window = orig->replay_esn->replay_window;
-
- x->preplay_esn = kmemdup(x->replay_esn,
- xfrm_replay_state_esn_len(x->replay_esn),
- GFP_KERNEL);
- if (!x->preplay_esn) {
- kfree(x->replay_esn);
- return -ENOMEM;
- }
-
- return 0;
-}
-
-static inline struct xfrm_algo *xfrm_algo_clone(struct xfrm_algo *orig)
-{
- return kmemdup(orig, xfrm_alg_len(orig), GFP_KERNEL);
-}
-
-static inline struct xfrm_algo_auth *xfrm_algo_auth_clone(struct xfrm_algo_auth *orig)
-{
- return kmemdup(orig, xfrm_alg_auth_len(orig), GFP_KERNEL);
-}
-
-static inline void xfrm_states_put(struct xfrm_state **states, int n)
-{
- int i;
- for (i = 0; i < n; i++)
- xfrm_state_put(*(states + i));
-}
-
-static inline void xfrm_states_delete(struct xfrm_state **states, int n)
-{
- int i;
- for (i = 0; i < n; i++)
- xfrm_state_delete(*(states + i));
-}
-#endif
-
-#ifdef CONFIG_XFRM
-static inline struct xfrm_state *xfrm_input_state(struct sk_buff *skb)
-{
- return skb->sp->xvec[skb->sp->len - 1];
-}
-#endif
-
-static inline int xfrm_mark_get(struct nlattr **attrs, struct xfrm_mark *m)
-{
- if (attrs[XFRMA_MARK])
- memcpy(m, nla_data(attrs[XFRMA_MARK]), sizeof(struct xfrm_mark));
- else
- m->v = m->m = 0;
-
- return m->v & m->m;
-}
-
-static inline int xfrm_mark_put(struct sk_buff *skb, const struct xfrm_mark *m)
-{
- if (m->m | m->v)
- NLA_PUT(skb, XFRMA_MARK, sizeof(struct xfrm_mark), m);
- return 0;
-
-nla_put_failure:
- return -1;
-}
-
-#endif /* _NET_XFRM_H */
diff --git a/ANDROID_3.4.5/include/pcmcia/ciscode.h b/ANDROID_3.4.5/include/pcmcia/ciscode.h
deleted file mode 100644
index b4179857..00000000
--- a/ANDROID_3.4.5/include/pcmcia/ciscode.h
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * ciscode.h
- *
- * 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.
- *
- * The initial developer of the original code is David A. Hinds
- * <dahinds@users.sourceforge.net>. Portions created by David A. Hinds
- * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
- *
- * (C) 1999 David A. Hinds
- */
-
-#ifndef _LINUX_CISCODE_H
-#define _LINUX_CISCODE_H
-
-/* Manufacturer and Product ID codes */
-
-#define MANFID_3COM 0x0101
-#define PRODID_3COM_3CXEM556 0x0035
-#define PRODID_3COM_3CCFEM556 0x0556
-#define PRODID_3COM_3C562 0x0562
-
-#define MANFID_ACCTON 0x01bf
-#define PRODID_ACCTON_EN2226 0x010a
-
-#define MANFID_ADAPTEC 0x012f
-#define PRODID_ADAPTEC_SCSI 0x0001
-
-#define MANFID_ATT 0xffff
-#define PRODID_ATT_KIT 0x0100
-
-#define MANFID_CONTEC 0xc001
-
-#define MANFID_FUJITSU 0x0004
-#define PRODID_FUJITSU_MBH10302 0x0004
-#define PRODID_FUJITSU_MBH10304 0x1003
-#define PRODID_FUJITSU_LA501 0x2000
-
-#define MANFID_IBM 0x00a4
-#define PRODID_IBM_HOME_AND_AWAY 0x002e
-
-#define MANFID_INTEL 0x0089
-#define PRODID_INTEL_DUAL_RS232 0x0301
-#define PRODID_INTEL_2PLUS 0x8422
-
-#define MANFID_KME 0x0032
-#define PRODID_KME_KXLC005_A 0x0704
-#define PRODID_KME_KXLC005_B 0x2904
-
-#define MANFID_LINKSYS 0x0143
-#define PRODID_LINKSYS_PCMLM28 0xc0ab
-#define PRODID_LINKSYS_3400 0x3341
-
-#define MANFID_MEGAHERTZ 0x0102
-#define PRODID_MEGAHERTZ_VARIOUS 0x0000
-#define PRODID_MEGAHERTZ_EM3288 0x0006
-
-#define MANFID_MACNICA 0xc00b
-
-#define MANFID_MOTOROLA 0x0109
-#define PRODID_MOTOROLA_MARINER 0x0501
-
-#define MANFID_NATINST 0x010b
-#define PRODID_NATINST_QUAD_RS232 0xd180
-
-#define MANFID_NEW_MEDIA 0x0057
-
-#define MANFID_NOKIA 0x0124
-#define PRODID_NOKIA_CARDPHONE 0x0900
-
-#define MANFID_OLICOM 0x0121
-#define PRODID_OLICOM_OC2231 0x3122
-#define PRODID_OLICOM_OC2232 0x3222
-
-#define MANFID_OMEGA 0x0137
-#define PRODID_OMEGA_QSP_100 0x0025
-
-#define MANFID_OSITECH 0x0140
-#define PRODID_OSITECH_JACK_144 0x0001
-#define PRODID_OSITECH_JACK_288 0x0002
-#define PRODID_OSITECH_JACK_336 0x0007
-#define PRODID_OSITECH_SEVEN 0x0008
-
-#define MANFID_OXSEMI 0x0279
-
-#define MANFID_PIONEER 0x000b
-
-#define MANFID_PSION 0x016c
-#define PRODID_PSION_NET100 0x0023
-
-#define MANFID_QUATECH 0x0137
-#define PRODID_QUATECH_SPP100 0x0003
-#define PRODID_QUATECH_DUAL_RS232 0x0012
-#define PRODID_QUATECH_DUAL_RS232_D1 0x0007
-#define PRODID_QUATECH_DUAL_RS232_D2 0x0052
-#define PRODID_QUATECH_DUAL_RS232_G 0x004d
-#define PRODID_QUATECH_QUAD_RS232 0x001b
-#define PRODID_QUATECH_DUAL_RS422 0x000e
-#define PRODID_QUATECH_QUAD_RS422 0x0045
-
-#define MANFID_SMC 0x0108
-#define PRODID_SMC_ETHER 0x0105
-
-#define MANFID_SOCKET 0x0104
-#define PRODID_SOCKET_DUAL_RS232 0x0006
-#define PRODID_SOCKET_EIO 0x000a
-#define PRODID_SOCKET_LPE 0x000d
-#define PRODID_SOCKET_LPE_CF 0x0075
-
-#define MANFID_SUNDISK 0x0045
-
-#define MANFID_TDK 0x0105
-#define PRODID_TDK_CF010 0x0900
-#define PRODID_TDK_NP9610 0x0d0a
-#define PRODID_TDK_MN3200 0x0e0a
-#define PRODID_TDK_GN3410 0x4815
-
-#define MANFID_TOSHIBA 0x0098
-
-#define MANFID_UNGERMANN 0x02c0
-
-#define MANFID_XIRCOM 0x0105
-
-#define MANFID_POSSIO 0x030c
-#define PRODID_POSSIO_GCC 0x0003
-
-#define MANFID_NEC 0x0010
-
-#endif /* _LINUX_CISCODE_H */
diff --git a/ANDROID_3.4.5/include/pcmcia/cisreg.h b/ANDROID_3.4.5/include/pcmcia/cisreg.h
deleted file mode 100644
index ddaad465..00000000
--- a/ANDROID_3.4.5/include/pcmcia/cisreg.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * cisreg.h
- *
- * 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.
- *
- * The initial developer of the original code is David A. Hinds
- * <dahinds@users.sourceforge.net>. Portions created by David A. Hinds
- * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
- *
- * (C) 1999 David A. Hinds
- */
-
-#ifndef _LINUX_CISREG_H
-#define _LINUX_CISREG_H
-
-/*
- * Offsets from ConfigBase for CIS registers
- */
-#define CISREG_COR 0x00
-#define CISREG_CCSR 0x02
-#define CISREG_PRR 0x04
-#define CISREG_SCR 0x06
-#define CISREG_ESR 0x08
-#define CISREG_IOBASE_0 0x0a
-#define CISREG_IOBASE_1 0x0c
-#define CISREG_IOBASE_2 0x0e
-#define CISREG_IOBASE_3 0x10
-#define CISREG_IOSIZE 0x12
-
-/*
- * Configuration Option Register
- */
-#define COR_CONFIG_MASK 0x3f
-#define COR_MFC_CONFIG_MASK 0x38
-#define COR_FUNC_ENA 0x01
-#define COR_ADDR_DECODE 0x02
-#define COR_IREQ_ENA 0x04
-#define COR_LEVEL_REQ 0x40
-#define COR_SOFT_RESET 0x80
-
-/*
- * Card Configuration and Status Register
- */
-#define CCSR_INTR_ACK 0x01
-#define CCSR_INTR_PENDING 0x02
-#define CCSR_POWER_DOWN 0x04
-#define CCSR_AUDIO_ENA 0x08
-#define CCSR_IOIS8 0x20
-#define CCSR_SIGCHG_ENA 0x40
-#define CCSR_CHANGED 0x80
-
-/*
- * Pin Replacement Register
- */
-#define PRR_WP_STATUS 0x01
-#define PRR_READY_STATUS 0x02
-#define PRR_BVD2_STATUS 0x04
-#define PRR_BVD1_STATUS 0x08
-#define PRR_WP_EVENT 0x10
-#define PRR_READY_EVENT 0x20
-#define PRR_BVD2_EVENT 0x40
-#define PRR_BVD1_EVENT 0x80
-
-/*
- * Socket and Copy Register
- */
-#define SCR_SOCKET_NUM 0x0f
-#define SCR_COPY_NUM 0x70
-
-/*
- * Extended Status Register
- */
-#define ESR_REQ_ATTN_ENA 0x01
-#define ESR_REQ_ATTN 0x10
-
-/*
- * CardBus Function Status Registers
- */
-#define CBFN_EVENT 0x00
-#define CBFN_MASK 0x04
-#define CBFN_STATE 0x08
-#define CBFN_FORCE 0x0c
-
-/*
- * These apply to all the CardBus function registers
- */
-#define CBFN_WP 0x0001
-#define CBFN_READY 0x0002
-#define CBFN_BVD2 0x0004
-#define CBFN_BVD1 0x0008
-#define CBFN_GWAKE 0x0010
-#define CBFN_INTR 0x8000
-
-/*
- * Extra bits in the Function Event Mask Register
- */
-#define FEMR_BAM_ENA 0x0020
-#define FEMR_PWM_ENA 0x0040
-#define FEMR_WKUP_MASK 0x4000
-
-/*
- * Indirect Addressing Registers for Zoomed Video: these are addresses
- * in common memory space
- */
-#define CISREG_ICTRL0 0x02 /* control registers */
-#define CISREG_ICTRL1 0x03
-#define CISREG_IADDR0 0x04 /* address registers */
-#define CISREG_IADDR1 0x05
-#define CISREG_IADDR2 0x06
-#define CISREG_IADDR3 0x07
-#define CISREG_IDATA0 0x08 /* data registers */
-#define CISREG_IDATA1 0x09
-
-#define ICTRL0_COMMON 0x01
-#define ICTRL0_AUTOINC 0x02
-#define ICTRL0_BYTEGRAN 0x04
-
-#endif /* _LINUX_CISREG_H */
diff --git a/ANDROID_3.4.5/include/pcmcia/cistpl.h b/ANDROID_3.4.5/include/pcmcia/cistpl.h
deleted file mode 100644
index 1c5088c9..00000000
--- a/ANDROID_3.4.5/include/pcmcia/cistpl.h
+++ /dev/null
@@ -1,580 +0,0 @@
-/*
- * cistpl.h
- *
- * 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.
- *
- * The initial developer of the original code is David A. Hinds
- * <dahinds@users.sourceforge.net>. Portions created by David A. Hinds
- * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
- *
- * (C) 1999 David A. Hinds
- */
-
-#ifndef _LINUX_CISTPL_H
-#define _LINUX_CISTPL_H
-
-typedef unsigned char cisdata_t;
-
-#define CISTPL_NULL 0x00
-#define CISTPL_DEVICE 0x01
-#define CISTPL_LONGLINK_CB 0x02
-#define CISTPL_INDIRECT 0x03
-#define CISTPL_CONFIG_CB 0x04
-#define CISTPL_CFTABLE_ENTRY_CB 0x05
-#define CISTPL_LONGLINK_MFC 0x06
-#define CISTPL_BAR 0x07
-#define CISTPL_PWR_MGMNT 0x08
-#define CISTPL_EXTDEVICE 0x09
-#define CISTPL_CHECKSUM 0x10
-#define CISTPL_LONGLINK_A 0x11
-#define CISTPL_LONGLINK_C 0x12
-#define CISTPL_LINKTARGET 0x13
-#define CISTPL_NO_LINK 0x14
-#define CISTPL_VERS_1 0x15
-#define CISTPL_ALTSTR 0x16
-#define CISTPL_DEVICE_A 0x17
-#define CISTPL_JEDEC_C 0x18
-#define CISTPL_JEDEC_A 0x19
-#define CISTPL_CONFIG 0x1a
-#define CISTPL_CFTABLE_ENTRY 0x1b
-#define CISTPL_DEVICE_OC 0x1c
-#define CISTPL_DEVICE_OA 0x1d
-#define CISTPL_DEVICE_GEO 0x1e
-#define CISTPL_DEVICE_GEO_A 0x1f
-#define CISTPL_MANFID 0x20
-#define CISTPL_FUNCID 0x21
-#define CISTPL_FUNCE 0x22
-#define CISTPL_SWIL 0x23
-#define CISTPL_END 0xff
-/* Layer 2 tuples */
-#define CISTPL_VERS_2 0x40
-#define CISTPL_FORMAT 0x41
-#define CISTPL_GEOMETRY 0x42
-#define CISTPL_BYTEORDER 0x43
-#define CISTPL_DATE 0x44
-#define CISTPL_BATTERY 0x45
-#define CISTPL_FORMAT_A 0x47
-/* Layer 3 tuples */
-#define CISTPL_ORG 0x46
-#define CISTPL_SPCL 0x90
-
-typedef struct cistpl_longlink_t {
- u_int addr;
-} cistpl_longlink_t;
-
-typedef struct cistpl_checksum_t {
- u_short addr;
- u_short len;
- u_char sum;
-} cistpl_checksum_t;
-
-#define CISTPL_MAX_FUNCTIONS 8
-#define CISTPL_MFC_ATTR 0x00
-#define CISTPL_MFC_COMMON 0x01
-
-typedef struct cistpl_longlink_mfc_t {
- u_char nfn;
- struct {
- u_char space;
- u_int addr;
- } fn[CISTPL_MAX_FUNCTIONS];
-} cistpl_longlink_mfc_t;
-
-#define CISTPL_MAX_ALTSTR_STRINGS 4
-
-typedef struct cistpl_altstr_t {
- u_char ns;
- u_char ofs[CISTPL_MAX_ALTSTR_STRINGS];
- char str[254];
-} cistpl_altstr_t;
-
-#define CISTPL_DTYPE_NULL 0x00
-#define CISTPL_DTYPE_ROM 0x01
-#define CISTPL_DTYPE_OTPROM 0x02
-#define CISTPL_DTYPE_EPROM 0x03
-#define CISTPL_DTYPE_EEPROM 0x04
-#define CISTPL_DTYPE_FLASH 0x05
-#define CISTPL_DTYPE_SRAM 0x06
-#define CISTPL_DTYPE_DRAM 0x07
-#define CISTPL_DTYPE_FUNCSPEC 0x0d
-#define CISTPL_DTYPE_EXTEND 0x0e
-
-#define CISTPL_MAX_DEVICES 4
-
-typedef struct cistpl_device_t {
- u_char ndev;
- struct {
- u_char type;
- u_char wp;
- u_int speed;
- u_int size;
- } dev[CISTPL_MAX_DEVICES];
-} cistpl_device_t;
-
-#define CISTPL_DEVICE_MWAIT 0x01
-#define CISTPL_DEVICE_3VCC 0x02
-
-typedef struct cistpl_device_o_t {
- u_char flags;
- cistpl_device_t device;
-} cistpl_device_o_t;
-
-#define CISTPL_VERS_1_MAX_PROD_STRINGS 4
-
-typedef struct cistpl_vers_1_t {
- u_char major;
- u_char minor;
- u_char ns;
- u_char ofs[CISTPL_VERS_1_MAX_PROD_STRINGS];
- char str[254];
-} cistpl_vers_1_t;
-
-typedef struct cistpl_jedec_t {
- u_char nid;
- struct {
- u_char mfr;
- u_char info;
- } id[CISTPL_MAX_DEVICES];
-} cistpl_jedec_t;
-
-typedef struct cistpl_manfid_t {
- u_short manf;
- u_short card;
-} cistpl_manfid_t;
-
-#define CISTPL_FUNCID_MULTI 0x00
-#define CISTPL_FUNCID_MEMORY 0x01
-#define CISTPL_FUNCID_SERIAL 0x02
-#define CISTPL_FUNCID_PARALLEL 0x03
-#define CISTPL_FUNCID_FIXED 0x04
-#define CISTPL_FUNCID_VIDEO 0x05
-#define CISTPL_FUNCID_NETWORK 0x06
-#define CISTPL_FUNCID_AIMS 0x07
-#define CISTPL_FUNCID_SCSI 0x08
-
-#define CISTPL_SYSINIT_POST 0x01
-#define CISTPL_SYSINIT_ROM 0x02
-
-typedef struct cistpl_funcid_t {
- u_char func;
- u_char sysinit;
-} cistpl_funcid_t;
-
-typedef struct cistpl_funce_t {
- u_char type;
- u_char data[0];
-} cistpl_funce_t;
-
-/*======================================================================
-
- Modem Function Extension Tuples
-
-======================================================================*/
-
-#define CISTPL_FUNCE_SERIAL_IF 0x00
-#define CISTPL_FUNCE_SERIAL_CAP 0x01
-#define CISTPL_FUNCE_SERIAL_SERV_DATA 0x02
-#define CISTPL_FUNCE_SERIAL_SERV_FAX 0x03
-#define CISTPL_FUNCE_SERIAL_SERV_VOICE 0x04
-#define CISTPL_FUNCE_SERIAL_CAP_DATA 0x05
-#define CISTPL_FUNCE_SERIAL_CAP_FAX 0x06
-#define CISTPL_FUNCE_SERIAL_CAP_VOICE 0x07
-#define CISTPL_FUNCE_SERIAL_IF_DATA 0x08
-#define CISTPL_FUNCE_SERIAL_IF_FAX 0x09
-#define CISTPL_FUNCE_SERIAL_IF_VOICE 0x0a
-
-/* UART identification */
-#define CISTPL_SERIAL_UART_8250 0x00
-#define CISTPL_SERIAL_UART_16450 0x01
-#define CISTPL_SERIAL_UART_16550 0x02
-#define CISTPL_SERIAL_UART_8251 0x03
-#define CISTPL_SERIAL_UART_8530 0x04
-#define CISTPL_SERIAL_UART_85230 0x05
-
-/* UART capabilities */
-#define CISTPL_SERIAL_UART_SPACE 0x01
-#define CISTPL_SERIAL_UART_MARK 0x02
-#define CISTPL_SERIAL_UART_ODD 0x04
-#define CISTPL_SERIAL_UART_EVEN 0x08
-#define CISTPL_SERIAL_UART_5BIT 0x01
-#define CISTPL_SERIAL_UART_6BIT 0x02
-#define CISTPL_SERIAL_UART_7BIT 0x04
-#define CISTPL_SERIAL_UART_8BIT 0x08
-#define CISTPL_SERIAL_UART_1STOP 0x10
-#define CISTPL_SERIAL_UART_MSTOP 0x20
-#define CISTPL_SERIAL_UART_2STOP 0x40
-
-typedef struct cistpl_serial_t {
- u_char uart_type;
- u_char uart_cap_0;
- u_char uart_cap_1;
-} cistpl_serial_t;
-
-typedef struct cistpl_modem_cap_t {
- u_char flow;
- u_char cmd_buf;
- u_char rcv_buf_0, rcv_buf_1, rcv_buf_2;
- u_char xmit_buf_0, xmit_buf_1, xmit_buf_2;
-} cistpl_modem_cap_t;
-
-#define CISTPL_SERIAL_MOD_103 0x01
-#define CISTPL_SERIAL_MOD_V21 0x02
-#define CISTPL_SERIAL_MOD_V23 0x04
-#define CISTPL_SERIAL_MOD_V22 0x08
-#define CISTPL_SERIAL_MOD_212A 0x10
-#define CISTPL_SERIAL_MOD_V22BIS 0x20
-#define CISTPL_SERIAL_MOD_V26 0x40
-#define CISTPL_SERIAL_MOD_V26BIS 0x80
-#define CISTPL_SERIAL_MOD_V27BIS 0x01
-#define CISTPL_SERIAL_MOD_V29 0x02
-#define CISTPL_SERIAL_MOD_V32 0x04
-#define CISTPL_SERIAL_MOD_V32BIS 0x08
-#define CISTPL_SERIAL_MOD_V34 0x10
-
-#define CISTPL_SERIAL_ERR_MNP2_4 0x01
-#define CISTPL_SERIAL_ERR_V42_LAPM 0x02
-
-#define CISTPL_SERIAL_CMPR_V42BIS 0x01
-#define CISTPL_SERIAL_CMPR_MNP5 0x02
-
-#define CISTPL_SERIAL_CMD_AT1 0x01
-#define CISTPL_SERIAL_CMD_AT2 0x02
-#define CISTPL_SERIAL_CMD_AT3 0x04
-#define CISTPL_SERIAL_CMD_MNP_AT 0x08
-#define CISTPL_SERIAL_CMD_V25BIS 0x10
-#define CISTPL_SERIAL_CMD_V25A 0x20
-#define CISTPL_SERIAL_CMD_DMCL 0x40
-
-typedef struct cistpl_data_serv_t {
- u_char max_data_0;
- u_char max_data_1;
- u_char modulation_0;
- u_char modulation_1;
- u_char error_control;
- u_char compression;
- u_char cmd_protocol;
- u_char escape;
- u_char encrypt;
- u_char misc_features;
- u_char ccitt_code[0];
-} cistpl_data_serv_t;
-
-typedef struct cistpl_fax_serv_t {
- u_char max_data_0;
- u_char max_data_1;
- u_char modulation;
- u_char encrypt;
- u_char features_0;
- u_char features_1;
- u_char ccitt_code[0];
-} cistpl_fax_serv_t;
-
-typedef struct cistpl_voice_serv_t {
- u_char max_data_0;
- u_char max_data_1;
-} cistpl_voice_serv_t;
-
-/*======================================================================
-
- LAN Function Extension Tuples
-
-======================================================================*/
-
-#define CISTPL_FUNCE_LAN_TECH 0x01
-#define CISTPL_FUNCE_LAN_SPEED 0x02
-#define CISTPL_FUNCE_LAN_MEDIA 0x03
-#define CISTPL_FUNCE_LAN_NODE_ID 0x04
-#define CISTPL_FUNCE_LAN_CONNECTOR 0x05
-
-/* LAN technologies */
-#define CISTPL_LAN_TECH_ARCNET 0x01
-#define CISTPL_LAN_TECH_ETHERNET 0x02
-#define CISTPL_LAN_TECH_TOKENRING 0x03
-#define CISTPL_LAN_TECH_LOCALTALK 0x04
-#define CISTPL_LAN_TECH_FDDI 0x05
-#define CISTPL_LAN_TECH_ATM 0x06
-#define CISTPL_LAN_TECH_WIRELESS 0x07
-
-typedef struct cistpl_lan_tech_t {
- u_char tech;
-} cistpl_lan_tech_t;
-
-typedef struct cistpl_lan_speed_t {
- u_int speed;
-} cistpl_lan_speed_t;
-
-/* LAN media definitions */
-#define CISTPL_LAN_MEDIA_UTP 0x01
-#define CISTPL_LAN_MEDIA_STP 0x02
-#define CISTPL_LAN_MEDIA_THIN_COAX 0x03
-#define CISTPL_LAN_MEDIA_THICK_COAX 0x04
-#define CISTPL_LAN_MEDIA_FIBER 0x05
-#define CISTPL_LAN_MEDIA_900MHZ 0x06
-#define CISTPL_LAN_MEDIA_2GHZ 0x07
-#define CISTPL_LAN_MEDIA_5GHZ 0x08
-#define CISTPL_LAN_MEDIA_DIFF_IR 0x09
-#define CISTPL_LAN_MEDIA_PTP_IR 0x0a
-
-typedef struct cistpl_lan_media_t {
- u_char media;
-} cistpl_lan_media_t;
-
-typedef struct cistpl_lan_node_id_t {
- u_char nb;
- u_char id[16];
-} cistpl_lan_node_id_t;
-
-typedef struct cistpl_lan_connector_t {
- u_char code;
-} cistpl_lan_connector_t;
-
-/*======================================================================
-
- IDE Function Extension Tuples
-
-======================================================================*/
-
-#define CISTPL_IDE_INTERFACE 0x01
-
-typedef struct cistpl_ide_interface_t {
- u_char interface;
-} cistpl_ide_interface_t;
-
-/* First feature byte */
-#define CISTPL_IDE_SILICON 0x04
-#define CISTPL_IDE_UNIQUE 0x08
-#define CISTPL_IDE_DUAL 0x10
-
-/* Second feature byte */
-#define CISTPL_IDE_HAS_SLEEP 0x01
-#define CISTPL_IDE_HAS_STANDBY 0x02
-#define CISTPL_IDE_HAS_IDLE 0x04
-#define CISTPL_IDE_LOW_POWER 0x08
-#define CISTPL_IDE_REG_INHIBIT 0x10
-#define CISTPL_IDE_HAS_INDEX 0x20
-#define CISTPL_IDE_IOIS16 0x40
-
-typedef struct cistpl_ide_feature_t {
- u_char feature1;
- u_char feature2;
-} cistpl_ide_feature_t;
-
-#define CISTPL_FUNCE_IDE_IFACE 0x01
-#define CISTPL_FUNCE_IDE_MASTER 0x02
-#define CISTPL_FUNCE_IDE_SLAVE 0x03
-
-/*======================================================================
-
- Configuration Table Entries
-
-======================================================================*/
-
-#define CISTPL_BAR_SPACE 0x07
-#define CISTPL_BAR_SPACE_IO 0x10
-#define CISTPL_BAR_PREFETCH 0x20
-#define CISTPL_BAR_CACHEABLE 0x40
-#define CISTPL_BAR_1MEG_MAP 0x80
-
-typedef struct cistpl_bar_t {
- u_char attr;
- u_int size;
-} cistpl_bar_t;
-
-typedef struct cistpl_config_t {
- u_char last_idx;
- u_int base;
- u_int rmask[4];
- u_char subtuples;
-} cistpl_config_t;
-
-/* These are bits in the 'present' field, and indices in 'param' */
-#define CISTPL_POWER_VNOM 0
-#define CISTPL_POWER_VMIN 1
-#define CISTPL_POWER_VMAX 2
-#define CISTPL_POWER_ISTATIC 3
-#define CISTPL_POWER_IAVG 4
-#define CISTPL_POWER_IPEAK 5
-#define CISTPL_POWER_IDOWN 6
-
-#define CISTPL_POWER_HIGHZ_OK 0x01
-#define CISTPL_POWER_HIGHZ_REQ 0x02
-
-typedef struct cistpl_power_t {
- u_char present;
- u_char flags;
- u_int param[7];
-} cistpl_power_t;
-
-typedef struct cistpl_timing_t {
- u_int wait, waitscale;
- u_int ready, rdyscale;
- u_int reserved, rsvscale;
-} cistpl_timing_t;
-
-#define CISTPL_IO_LINES_MASK 0x1f
-#define CISTPL_IO_8BIT 0x20
-#define CISTPL_IO_16BIT 0x40
-#define CISTPL_IO_RANGE 0x80
-
-#define CISTPL_IO_MAX_WIN 16
-
-typedef struct cistpl_io_t {
- u_char flags;
- u_char nwin;
- struct {
- u_int base;
- u_int len;
- } win[CISTPL_IO_MAX_WIN];
-} cistpl_io_t;
-
-typedef struct cistpl_irq_t {
- u_int IRQInfo1;
- u_int IRQInfo2;
-} cistpl_irq_t;
-
-#define CISTPL_MEM_MAX_WIN 8
-
-typedef struct cistpl_mem_t {
- u_char flags;
- u_char nwin;
- struct {
- u_int len;
- u_int card_addr;
- u_int host_addr;
- } win[CISTPL_MEM_MAX_WIN];
-} cistpl_mem_t;
-
-#define CISTPL_CFTABLE_DEFAULT 0x0001
-#define CISTPL_CFTABLE_BVDS 0x0002
-#define CISTPL_CFTABLE_WP 0x0004
-#define CISTPL_CFTABLE_RDYBSY 0x0008
-#define CISTPL_CFTABLE_MWAIT 0x0010
-#define CISTPL_CFTABLE_AUDIO 0x0800
-#define CISTPL_CFTABLE_READONLY 0x1000
-#define CISTPL_CFTABLE_PWRDOWN 0x2000
-
-typedef struct cistpl_cftable_entry_t {
- u_char index;
- u_short flags;
- u_char interface;
- cistpl_power_t vcc, vpp1, vpp2;
- cistpl_timing_t timing;
- cistpl_io_t io;
- cistpl_irq_t irq;
- cistpl_mem_t mem;
- u_char subtuples;
-} cistpl_cftable_entry_t;
-
-#define CISTPL_CFTABLE_MASTER 0x000100
-#define CISTPL_CFTABLE_INVALIDATE 0x000200
-#define CISTPL_CFTABLE_VGA_PALETTE 0x000400
-#define CISTPL_CFTABLE_PARITY 0x000800
-#define CISTPL_CFTABLE_WAIT 0x001000
-#define CISTPL_CFTABLE_SERR 0x002000
-#define CISTPL_CFTABLE_FAST_BACK 0x004000
-#define CISTPL_CFTABLE_BINARY_AUDIO 0x010000
-#define CISTPL_CFTABLE_PWM_AUDIO 0x020000
-
-typedef struct cistpl_cftable_entry_cb_t {
- u_char index;
- u_int flags;
- cistpl_power_t vcc, vpp1, vpp2;
- u_char io;
- cistpl_irq_t irq;
- u_char mem;
- u_char subtuples;
-} cistpl_cftable_entry_cb_t;
-
-typedef struct cistpl_device_geo_t {
- u_char ngeo;
- struct {
- u_char buswidth;
- u_int erase_block;
- u_int read_block;
- u_int write_block;
- u_int partition;
- u_int interleave;
- } geo[CISTPL_MAX_DEVICES];
-} cistpl_device_geo_t;
-
-typedef struct cistpl_vers_2_t {
- u_char vers;
- u_char comply;
- u_short dindex;
- u_char vspec8, vspec9;
- u_char nhdr;
- u_char vendor, info;
- char str[244];
-} cistpl_vers_2_t;
-
-typedef struct cistpl_org_t {
- u_char data_org;
- char desc[30];
-} cistpl_org_t;
-
-#define CISTPL_ORG_FS 0x00
-#define CISTPL_ORG_APPSPEC 0x01
-#define CISTPL_ORG_XIP 0x02
-
-typedef struct cistpl_format_t {
- u_char type;
- u_char edc;
- u_int offset;
- u_int length;
-} cistpl_format_t;
-
-#define CISTPL_FORMAT_DISK 0x00
-#define CISTPL_FORMAT_MEM 0x01
-
-#define CISTPL_EDC_NONE 0x00
-#define CISTPL_EDC_CKSUM 0x01
-#define CISTPL_EDC_CRC 0x02
-#define CISTPL_EDC_PCC 0x03
-
-typedef union cisparse_t {
- cistpl_device_t device;
- cistpl_checksum_t checksum;
- cistpl_longlink_t longlink;
- cistpl_longlink_mfc_t longlink_mfc;
- cistpl_vers_1_t version_1;
- cistpl_altstr_t altstr;
- cistpl_jedec_t jedec;
- cistpl_manfid_t manfid;
- cistpl_funcid_t funcid;
- cistpl_funce_t funce;
- cistpl_bar_t bar;
- cistpl_config_t config;
- cistpl_cftable_entry_t cftable_entry;
- cistpl_cftable_entry_cb_t cftable_entry_cb;
- cistpl_device_geo_t device_geo;
- cistpl_vers_2_t vers_2;
- cistpl_org_t org;
- cistpl_format_t format;
-} cisparse_t;
-
-typedef struct tuple_t {
- u_int Attributes;
- cisdata_t DesiredTuple;
- u_int Flags; /* internal use */
- u_int LinkOffset; /* internal use */
- u_int CISOffset; /* internal use */
- cisdata_t TupleCode;
- cisdata_t TupleLink;
- cisdata_t TupleOffset;
- cisdata_t TupleDataMax;
- cisdata_t TupleDataLen;
- cisdata_t *TupleData;
-} tuple_t;
-
-/* Special cisdata_t value */
-#define RETURN_FIRST_TUPLE 0xff
-
-/* Attributes for tuple calls */
-#define TUPLE_RETURN_LINK 0x01
-#define TUPLE_RETURN_COMMON 0x02
-
-#define CISTPL_MAX_CIS_SIZE 0x200
-
-#endif /* LINUX_CISTPL_H */
diff --git a/ANDROID_3.4.5/include/pcmcia/device_id.h b/ANDROID_3.4.5/include/pcmcia/device_id.h
deleted file mode 100644
index 00dbfac9..00000000
--- a/ANDROID_3.4.5/include/pcmcia/device_id.h
+++ /dev/null
@@ -1,284 +0,0 @@
-/*
- * device_id.h -- PCMCIA driver matching helpers
- *
- * 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.
- *
- * (C) 2003 - 2004 David Woodhouse
- * (C) 2003 - 2004 Dominik Brodowski
- */
-
-#ifndef _LINUX_PCMCIA_DEVICE_ID_H
-#define _LINUX_PCMCIA_DEVICE_ID_H
-
-#ifdef __KERNEL__
-
-#define PCMCIA_DEVICE_MANF_CARD(manf, card) { \
- .match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \
- PCMCIA_DEV_ID_MATCH_CARD_ID, \
- .manf_id = (manf), \
- .card_id = (card), }
-
-#define PCMCIA_DEVICE_FUNC_ID(func) { \
- .match_flags = PCMCIA_DEV_ID_MATCH_FUNC_ID, \
- .func_id = (func), }
-
-#define PCMCIA_DEVICE_PROD_ID1(v1, vh1) { \
- .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1, \
- .prod_id = { (v1), NULL, NULL, NULL }, \
- .prod_id_hash = { (vh1), 0, 0, 0 }, }
-
-#define PCMCIA_DEVICE_PROD_ID2(v2, vh2) { \
- .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID2, \
- .prod_id = { NULL, (v2), NULL, NULL }, \
- .prod_id_hash = { 0, (vh2), 0, 0 }, }
-
-#define PCMCIA_DEVICE_PROD_ID3(v3, vh3) { \
- .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID3, \
- .prod_id = { NULL, NULL, (v3), NULL }, \
- .prod_id_hash = { 0, 0, (vh3), 0 }, }
-
-#define PCMCIA_DEVICE_PROD_ID12(v1, v2, vh1, vh2) { \
- .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
- PCMCIA_DEV_ID_MATCH_PROD_ID2, \
- .prod_id = { (v1), (v2), NULL, NULL }, \
- .prod_id_hash = { (vh1), (vh2), 0, 0 }, }
-
-#define PCMCIA_DEVICE_PROD_ID13(v1, v3, vh1, vh3) { \
- .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
- PCMCIA_DEV_ID_MATCH_PROD_ID3, \
- .prod_id = { (v1), NULL, (v3), NULL }, \
- .prod_id_hash = { (vh1), 0, (vh3), 0 }, }
-
-#define PCMCIA_DEVICE_PROD_ID14(v1, v4, vh1, vh4) { \
- .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
- PCMCIA_DEV_ID_MATCH_PROD_ID4, \
- .prod_id = { (v1), NULL, NULL, (v4) }, \
- .prod_id_hash = { (vh1), 0, 0, (vh4) }, }
-
-#define PCMCIA_DEVICE_PROD_ID123(v1, v2, v3, vh1, vh2, vh3) { \
- .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
- PCMCIA_DEV_ID_MATCH_PROD_ID2| \
- PCMCIA_DEV_ID_MATCH_PROD_ID3, \
- .prod_id = { (v1), (v2), (v3), NULL },\
- .prod_id_hash = { (vh1), (vh2), (vh3), 0 }, }
-
-#define PCMCIA_DEVICE_PROD_ID124(v1, v2, v4, vh1, vh2, vh4) { \
- .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
- PCMCIA_DEV_ID_MATCH_PROD_ID2| \
- PCMCIA_DEV_ID_MATCH_PROD_ID4, \
- .prod_id = { (v1), (v2), NULL, (v4) }, \
- .prod_id_hash = { (vh1), (vh2), 0, (vh4) }, }
-
-#define PCMCIA_DEVICE_PROD_ID134(v1, v3, v4, vh1, vh3, vh4) { \
- .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
- PCMCIA_DEV_ID_MATCH_PROD_ID3| \
- PCMCIA_DEV_ID_MATCH_PROD_ID4, \
- .prod_id = { (v1), NULL, (v3), (v4) }, \
- .prod_id_hash = { (vh1), 0, (vh3), (vh4) }, }
-
-#define PCMCIA_DEVICE_PROD_ID1234(v1, v2, v3, v4, vh1, vh2, vh3, vh4) { \
- .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
- PCMCIA_DEV_ID_MATCH_PROD_ID2| \
- PCMCIA_DEV_ID_MATCH_PROD_ID3| \
- PCMCIA_DEV_ID_MATCH_PROD_ID4, \
- .prod_id = { (v1), (v2), (v3), (v4) }, \
- .prod_id_hash = { (vh1), (vh2), (vh3), (vh4) }, }
-
-#define PCMCIA_DEVICE_MANF_CARD_PROD_ID1(manf, card, v1, vh1) { \
- .match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \
- PCMCIA_DEV_ID_MATCH_CARD_ID| \
- PCMCIA_DEV_ID_MATCH_PROD_ID1, \
- .manf_id = (manf), \
- .card_id = (card), \
- .prod_id = { (v1), NULL, NULL, NULL }, \
- .prod_id_hash = { (vh1), 0, 0, 0 }, }
-
-#define PCMCIA_DEVICE_MANF_CARD_PROD_ID3(manf, card, v3, vh3) { \
- .match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \
- PCMCIA_DEV_ID_MATCH_CARD_ID| \
- PCMCIA_DEV_ID_MATCH_PROD_ID3, \
- .manf_id = (manf), \
- .card_id = (card), \
- .prod_id = { NULL, NULL, (v3), NULL }, \
- .prod_id_hash = { 0, 0, (vh3), 0 }, }
-
-
-/* multi-function devices */
-
-#define PCMCIA_MFC_DEVICE_MANF_CARD(mfc, manf, card) { \
- .match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \
- PCMCIA_DEV_ID_MATCH_CARD_ID| \
- PCMCIA_DEV_ID_MATCH_FUNCTION, \
- .manf_id = (manf), \
- .card_id = (card), \
- .function = (mfc), }
-
-#define PCMCIA_MFC_DEVICE_PROD_ID1(mfc, v1, vh1) { \
- .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
- PCMCIA_DEV_ID_MATCH_FUNCTION, \
- .prod_id = { (v1), NULL, NULL, NULL }, \
- .prod_id_hash = { (vh1), 0, 0, 0 }, \
- .function = (mfc), }
-
-#define PCMCIA_MFC_DEVICE_PROD_ID2(mfc, v2, vh2) { \
- .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID2| \
- PCMCIA_DEV_ID_MATCH_FUNCTION, \
- .prod_id = { NULL, (v2), NULL, NULL }, \
- .prod_id_hash = { 0, (vh2), 0, 0 }, \
- .function = (mfc), }
-
-#define PCMCIA_MFC_DEVICE_PROD_ID12(mfc, v1, v2, vh1, vh2) { \
- .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
- PCMCIA_DEV_ID_MATCH_PROD_ID2| \
- PCMCIA_DEV_ID_MATCH_FUNCTION, \
- .prod_id = { (v1), (v2), NULL, NULL }, \
- .prod_id_hash = { (vh1), (vh2), 0, 0 }, \
- .function = (mfc), }
-
-#define PCMCIA_MFC_DEVICE_PROD_ID13(mfc, v1, v3, vh1, vh3) { \
- .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
- PCMCIA_DEV_ID_MATCH_PROD_ID3| \
- PCMCIA_DEV_ID_MATCH_FUNCTION, \
- .prod_id = { (v1), NULL, (v3), NULL }, \
- .prod_id_hash = { (vh1), 0, (vh3), 0 }, \
- .function = (mfc), }
-
-#define PCMCIA_MFC_DEVICE_PROD_ID123(mfc, v1, v2, v3, vh1, vh2, vh3) { \
- .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
- PCMCIA_DEV_ID_MATCH_PROD_ID2| \
- PCMCIA_DEV_ID_MATCH_PROD_ID3| \
- PCMCIA_DEV_ID_MATCH_FUNCTION, \
- .prod_id = { (v1), (v2), (v3), NULL },\
- .prod_id_hash = { (vh1), (vh2), (vh3), 0 }, \
- .function = (mfc), }
-
-/* pseudo multi-function devices */
-
-#define PCMCIA_PFC_DEVICE_MANF_CARD(mfc, manf, card) { \
- .match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \
- PCMCIA_DEV_ID_MATCH_CARD_ID| \
- PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
- .manf_id = (manf), \
- .card_id = (card), \
- .device_no = (mfc), }
-
-#define PCMCIA_PFC_DEVICE_PROD_ID1(mfc, v1, vh1) { \
- .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
- PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
- .prod_id = { (v1), NULL, NULL, NULL }, \
- .prod_id_hash = { (vh1), 0, 0, 0 }, \
- .device_no = (mfc), }
-
-#define PCMCIA_PFC_DEVICE_PROD_ID2(mfc, v2, vh2) { \
- .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID2| \
- PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
- .prod_id = { NULL, (v2), NULL, NULL }, \
- .prod_id_hash = { 0, (vh2), 0, 0 }, \
- .device_no = (mfc), }
-
-#define PCMCIA_PFC_DEVICE_PROD_ID12(mfc, v1, v2, vh1, vh2) { \
- .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
- PCMCIA_DEV_ID_MATCH_PROD_ID2| \
- PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
- .prod_id = { (v1), (v2), NULL, NULL }, \
- .prod_id_hash = { (vh1), (vh2), 0, 0 }, \
- .device_no = (mfc), }
-
-#define PCMCIA_PFC_DEVICE_PROD_ID13(mfc, v1, v3, vh1, vh3) { \
- .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
- PCMCIA_DEV_ID_MATCH_PROD_ID3| \
- PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
- .prod_id = { (v1), NULL, (v3), NULL }, \
- .prod_id_hash = { (vh1), 0, (vh3), 0 }, \
- .device_no = (mfc), }
-
-#define PCMCIA_PFC_DEVICE_PROD_ID123(mfc, v1, v2, v3, vh1, vh2, vh3) { \
- .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
- PCMCIA_DEV_ID_MATCH_PROD_ID2| \
- PCMCIA_DEV_ID_MATCH_PROD_ID3| \
- PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
- .prod_id = { (v1), (v2), (v3), NULL },\
- .prod_id_hash = { (vh1), (vh2), (vh3), 0 }, \
- .device_no = (mfc), }
-
-/* cards needing a CIS override */
-
-#define PCMCIA_DEVICE_CIS_MANF_CARD(manf, card, _cisfile) { \
- .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
- PCMCIA_DEV_ID_MATCH_MANF_ID| \
- PCMCIA_DEV_ID_MATCH_CARD_ID, \
- .manf_id = (manf), \
- .card_id = (card), \
- .cisfile = (_cisfile)}
-
-#define PCMCIA_DEVICE_CIS_PROD_ID12(v1, v2, vh1, vh2, _cisfile) { \
- .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
- PCMCIA_DEV_ID_MATCH_PROD_ID1| \
- PCMCIA_DEV_ID_MATCH_PROD_ID2, \
- .prod_id = { (v1), (v2), NULL, NULL }, \
- .prod_id_hash = { (vh1), (vh2), 0, 0 }, \
- .cisfile = (_cisfile)}
-
-#define PCMCIA_DEVICE_CIS_PROD_ID123(v1, v2, v3, vh1, vh2, vh3, _cisfile) { \
- .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
- PCMCIA_DEV_ID_MATCH_PROD_ID1| \
- PCMCIA_DEV_ID_MATCH_PROD_ID2| \
- PCMCIA_DEV_ID_MATCH_PROD_ID3, \
- .prod_id = { (v1), (v2), (v3), NULL },\
- .prod_id_hash = { (vh1), (vh2), (vh3), 0 }, \
- .cisfile = (_cisfile)}
-
-
-#define PCMCIA_DEVICE_CIS_PROD_ID2(v2, vh2, _cisfile) { \
- .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
- PCMCIA_DEV_ID_MATCH_PROD_ID2, \
- .prod_id = { NULL, (v2), NULL, NULL }, \
- .prod_id_hash = { 0, (vh2), 0, 0 }, \
- .cisfile = (_cisfile)}
-
-#define PCMCIA_PFC_DEVICE_CIS_PROD_ID12(mfc, v1, v2, vh1, vh2, _cisfile) { \
- .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
- PCMCIA_DEV_ID_MATCH_PROD_ID1| \
- PCMCIA_DEV_ID_MATCH_PROD_ID2| \
- PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
- .prod_id = { (v1), (v2), NULL, NULL }, \
- .prod_id_hash = { (vh1), (vh2), 0, 0 },\
- .device_no = (mfc), \
- .cisfile = (_cisfile)}
-
-#define PCMCIA_MFC_DEVICE_CIS_MANF_CARD(mfc, manf, card, _cisfile) { \
- .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
- PCMCIA_DEV_ID_MATCH_MANF_ID| \
- PCMCIA_DEV_ID_MATCH_CARD_ID| \
- PCMCIA_DEV_ID_MATCH_FUNCTION, \
- .manf_id = (manf), \
- .card_id = (card), \
- .function = (mfc), \
- .cisfile = (_cisfile)}
-
-#define PCMCIA_MFC_DEVICE_CIS_PROD_ID12(mfc, v1, v2, vh1, vh2, _cisfile) { \
- .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
- PCMCIA_DEV_ID_MATCH_PROD_ID1| \
- PCMCIA_DEV_ID_MATCH_PROD_ID2| \
- PCMCIA_DEV_ID_MATCH_FUNCTION, \
- .prod_id = { (v1), (v2), NULL, NULL }, \
- .prod_id_hash = { (vh1), (vh2), 0, 0 }, \
- .function = (mfc), \
- .cisfile = (_cisfile)}
-
-#define PCMCIA_MFC_DEVICE_CIS_PROD_ID4(mfc, v4, vh4, _cisfile) { \
- .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
- PCMCIA_DEV_ID_MATCH_PROD_ID4| \
- PCMCIA_DEV_ID_MATCH_FUNCTION, \
- .prod_id = { NULL, NULL, NULL, (v4) }, \
- .prod_id_hash = { 0, 0, 0, (vh4) }, \
- .function = (mfc), \
- .cisfile = (_cisfile)}
-
-
-#define PCMCIA_DEVICE_NULL { .match_flags = 0, }
-
-#endif /* __KERNEL__ */
-#endif /* _LINUX_PCMCIA_DEVICE_ID_H */
diff --git a/ANDROID_3.4.5/include/pcmcia/ds.h b/ANDROID_3.4.5/include/pcmcia/ds.h
deleted file mode 100644
index 3bbbd78e..00000000
--- a/ANDROID_3.4.5/include/pcmcia/ds.h
+++ /dev/null
@@ -1,275 +0,0 @@
-/*
- * ds.h -- 16-bit PCMCIA core support
- *
- * 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.
- *
- * The initial developer of the original code is David A. Hinds
- * <dahinds@users.sourceforge.net>. Portions created by David A. Hinds
- * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
- *
- * (C) 1999 David A. Hinds
- * (C) 2003 - 2008 Dominik Brodowski
- */
-
-#ifndef _LINUX_DS_H
-#define _LINUX_DS_H
-
-#ifdef __KERNEL__
-#include <linux/mod_devicetable.h>
-#endif
-
-#include <pcmcia/device_id.h>
-
-#ifdef __KERNEL__
-#include <linux/device.h>
-#include <linux/interrupt.h>
-#include <pcmcia/ss.h>
-#include <linux/atomic.h>
-
-
-/*
- * PCMCIA device drivers (16-bit cards only; 32-bit cards require CardBus
- * a.k.a. PCI drivers
- */
-struct pcmcia_socket;
-struct pcmcia_device;
-struct config_t;
-struct net_device;
-
-/* dynamic device IDs for PCMCIA device drivers. See
- * Documentation/pcmcia/driver.txt for details.
-*/
-struct pcmcia_dynids {
- struct mutex lock;
- struct list_head list;
-};
-
-struct pcmcia_driver {
- const char *name;
-
- int (*probe) (struct pcmcia_device *dev);
- void (*remove) (struct pcmcia_device *dev);
-
- int (*suspend) (struct pcmcia_device *dev);
- int (*resume) (struct pcmcia_device *dev);
-
- struct module *owner;
- const struct pcmcia_device_id *id_table;
- struct device_driver drv;
- struct pcmcia_dynids dynids;
-};
-
-/* driver registration */
-int pcmcia_register_driver(struct pcmcia_driver *driver);
-void pcmcia_unregister_driver(struct pcmcia_driver *driver);
-
-/* for struct resource * array embedded in struct pcmcia_device */
-enum {
- PCMCIA_IOPORT_0,
- PCMCIA_IOPORT_1,
- PCMCIA_IOMEM_0,
- PCMCIA_IOMEM_1,
- PCMCIA_IOMEM_2,
- PCMCIA_IOMEM_3,
- PCMCIA_NUM_RESOURCES,
-};
-
-struct pcmcia_device {
- /* the socket and the device_no [for multifunction devices]
- uniquely define a pcmcia_device */
- struct pcmcia_socket *socket;
-
- char *devname;
-
- u8 device_no;
-
- /* the hardware "function" device; certain subdevices can
- * share one hardware "function" device. */
- u8 func;
- struct config_t *function_config;
-
- struct list_head socket_device_list;
-
- /* device setup */
- unsigned int irq;
- struct resource *resource[PCMCIA_NUM_RESOURCES];
- resource_size_t card_addr; /* for the 1st IOMEM resource */
- unsigned int vpp;
-
- unsigned int config_flags; /* CONF_ENABLE_ flags below */
- unsigned int config_base;
- unsigned int config_index;
- unsigned int config_regs; /* PRESENT_ flags below */
- unsigned int io_lines; /* number of I/O lines */
-
- /* Is the device suspended? */
- u16 suspended:1;
-
- /* Flags whether io, irq, win configurations were
- * requested, and whether the configuration is "locked" */
- u16 _irq:1;
- u16 _io:1;
- u16 _win:4;
- u16 _locked:1;
-
- /* Flag whether a "fuzzy" func_id based match is
- * allowed. */
- u16 allow_func_id_match:1;
-
- /* information about this device */
- u16 has_manf_id:1;
- u16 has_card_id:1;
- u16 has_func_id:1;
-
- u16 reserved:4;
-
- u8 func_id;
- u16 manf_id;
- u16 card_id;
-
- char *prod_id[4];
-
- u64 dma_mask;
- struct device dev;
-
- /* data private to drivers */
- void *priv;
- unsigned int open;
-};
-
-#define to_pcmcia_dev(n) container_of(n, struct pcmcia_device, dev)
-#define to_pcmcia_drv(n) container_of(n, struct pcmcia_driver, drv)
-
-
-/*
- * CIS access.
- *
- * Please use the following functions to access CIS tuples:
- * - pcmcia_get_tuple()
- * - pcmcia_loop_tuple()
- * - pcmcia_get_mac_from_cis()
- *
- * To parse a tuple_t, pcmcia_parse_tuple() exists. Its interface
- * might change in future.
- */
-
-/* get the very first CIS entry of type @code. Note that buf is pointer
- * to u8 *buf; and that you need to kfree(buf) afterwards. */
-size_t pcmcia_get_tuple(struct pcmcia_device *p_dev, cisdata_t code,
- u8 **buf);
-
-/* loop over CIS entries */
-int pcmcia_loop_tuple(struct pcmcia_device *p_dev, cisdata_t code,
- int (*loop_tuple) (struct pcmcia_device *p_dev,
- tuple_t *tuple,
- void *priv_data),
- void *priv_data);
-
-/* get the MAC address from CISTPL_FUNCE */
-int pcmcia_get_mac_from_cis(struct pcmcia_device *p_dev,
- struct net_device *dev);
-
-
-/* parse a tuple_t */
-int pcmcia_parse_tuple(tuple_t *tuple, cisparse_t *parse);
-
-/* loop CIS entries for valid configuration */
-int pcmcia_loop_config(struct pcmcia_device *p_dev,
- int (*conf_check) (struct pcmcia_device *p_dev,
- void *priv_data),
- void *priv_data);
-
-/* is the device still there? */
-struct pcmcia_device *pcmcia_dev_present(struct pcmcia_device *p_dev);
-
-/* low-level interface reset */
-int pcmcia_reset_card(struct pcmcia_socket *skt);
-
-/* CIS config */
-int pcmcia_read_config_byte(struct pcmcia_device *p_dev, off_t where, u8 *val);
-int pcmcia_write_config_byte(struct pcmcia_device *p_dev, off_t where, u8 val);
-
-/* device configuration */
-int pcmcia_request_io(struct pcmcia_device *p_dev);
-
-int __must_check
-__pcmcia_request_exclusive_irq(struct pcmcia_device *p_dev,
- irq_handler_t handler);
-static inline __must_check __deprecated int
-pcmcia_request_exclusive_irq(struct pcmcia_device *p_dev,
- irq_handler_t handler)
-{
- return __pcmcia_request_exclusive_irq(p_dev, handler);
-}
-
-int __must_check pcmcia_request_irq(struct pcmcia_device *p_dev,
- irq_handler_t handler);
-
-int pcmcia_enable_device(struct pcmcia_device *p_dev);
-
-int pcmcia_request_window(struct pcmcia_device *p_dev, struct resource *res,
- unsigned int speed);
-int pcmcia_release_window(struct pcmcia_device *p_dev, struct resource *res);
-int pcmcia_map_mem_page(struct pcmcia_device *p_dev, struct resource *res,
- unsigned int offset);
-
-int pcmcia_fixup_vpp(struct pcmcia_device *p_dev, unsigned char new_vpp);
-int pcmcia_fixup_iowidth(struct pcmcia_device *p_dev);
-
-void pcmcia_disable_device(struct pcmcia_device *p_dev);
-
-/* IO ports */
-#define IO_DATA_PATH_WIDTH 0x18
-#define IO_DATA_PATH_WIDTH_8 0x00
-#define IO_DATA_PATH_WIDTH_16 0x08
-#define IO_DATA_PATH_WIDTH_AUTO 0x10
-
-/* IO memory */
-#define WIN_MEMORY_TYPE_CM 0x00 /* default */
-#define WIN_MEMORY_TYPE_AM 0x20 /* MAP_ATTRIB */
-#define WIN_DATA_WIDTH_8 0x00 /* default */
-#define WIN_DATA_WIDTH_16 0x02 /* MAP_16BIT */
-#define WIN_ENABLE 0x01 /* MAP_ACTIVE */
-#define WIN_USE_WAIT 0x40 /* MAP_USE_WAIT */
-
-#define WIN_FLAGS_MAP 0x63 /* MAP_ATTRIB | MAP_16BIT | MAP_ACTIVE |
- MAP_USE_WAIT */
-#define WIN_FLAGS_REQ 0x1c /* mapping to socket->win[i]:
- 0x04 -> 0
- 0x08 -> 1
- 0x0c -> 2
- 0x10 -> 3 */
-
-/* config_reg{ister}s present for this PCMCIA device */
-#define PRESENT_OPTION 0x001
-#define PRESENT_STATUS 0x002
-#define PRESENT_PIN_REPLACE 0x004
-#define PRESENT_COPY 0x008
-#define PRESENT_EXT_STATUS 0x010
-#define PRESENT_IOBASE_0 0x020
-#define PRESENT_IOBASE_1 0x040
-#define PRESENT_IOBASE_2 0x080
-#define PRESENT_IOBASE_3 0x100
-#define PRESENT_IOSIZE 0x200
-
-/* flags to be passed to pcmcia_enable_device() */
-#define CONF_ENABLE_IRQ 0x0001
-#define CONF_ENABLE_SPKR 0x0002
-#define CONF_ENABLE_PULSE_IRQ 0x0004
-#define CONF_ENABLE_ESR 0x0008
-#define CONF_ENABLE_IOCARD 0x0010 /* auto-enabled if IO resources or IRQ
- * (CONF_ENABLE_IRQ) in use */
-#define CONF_ENABLE_ZVCARD 0x0020
-
-/* flags used by pcmcia_loop_config() autoconfiguration */
-#define CONF_AUTO_CHECK_VCC 0x0100 /* check for matching Vcc? */
-#define CONF_AUTO_SET_VPP 0x0200 /* set Vpp? */
-#define CONF_AUTO_AUDIO 0x0400 /* enable audio line? */
-#define CONF_AUTO_SET_IO 0x0800 /* set ->resource[0,1] */
-#define CONF_AUTO_SET_IOMEM 0x1000 /* set ->resource[2] */
-
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_DS_H */
diff --git a/ANDROID_3.4.5/include/pcmcia/ss.h b/ANDROID_3.4.5/include/pcmcia/ss.h
deleted file mode 100644
index 731cde01..00000000
--- a/ANDROID_3.4.5/include/pcmcia/ss.h
+++ /dev/null
@@ -1,266 +0,0 @@
-/*
- * ss.h
- *
- * 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.
- *
- * The initial developer of the original code is David A. Hinds
- * <dahinds@users.sourceforge.net>. Portions created by David A. Hinds
- * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
- *
- * (C) 1999 David A. Hinds
- */
-
-#ifndef _LINUX_SS_H
-#define _LINUX_SS_H
-
-#include <linux/device.h>
-#include <linux/sched.h> /* task_struct, completion */
-#include <linux/mutex.h>
-
-#ifdef CONFIG_CARDBUS
-#include <linux/pci.h>
-#endif
-
-/* Definitions for card status flags for GetStatus */
-#define SS_WRPROT 0x0001
-#define SS_CARDLOCK 0x0002
-#define SS_EJECTION 0x0004
-#define SS_INSERTION 0x0008
-#define SS_BATDEAD 0x0010
-#define SS_BATWARN 0x0020
-#define SS_READY 0x0040
-#define SS_DETECT 0x0080
-#define SS_POWERON 0x0100
-#define SS_GPI 0x0200
-#define SS_STSCHG 0x0400
-#define SS_CARDBUS 0x0800
-#define SS_3VCARD 0x1000
-#define SS_XVCARD 0x2000
-#define SS_PENDING 0x4000
-#define SS_ZVCARD 0x8000
-
-/* InquireSocket capabilities */
-#define SS_CAP_PAGE_REGS 0x0001
-#define SS_CAP_VIRTUAL_BUS 0x0002
-#define SS_CAP_MEM_ALIGN 0x0004
-#define SS_CAP_STATIC_MAP 0x0008
-#define SS_CAP_PCCARD 0x4000
-#define SS_CAP_CARDBUS 0x8000
-
-/* for GetSocket, SetSocket */
-typedef struct socket_state_t {
- u_int flags;
- u_int csc_mask;
- u_char Vcc, Vpp;
- u_char io_irq;
-} socket_state_t;
-
-extern socket_state_t dead_socket;
-
-/* Socket configuration flags */
-#define SS_PWR_AUTO 0x0010
-#define SS_IOCARD 0x0020
-#define SS_RESET 0x0040
-#define SS_DMA_MODE 0x0080
-#define SS_SPKR_ENA 0x0100
-#define SS_OUTPUT_ENA 0x0200
-
-/* Flags for I/O port and memory windows */
-#define MAP_ACTIVE 0x01
-#define MAP_16BIT 0x02
-#define MAP_AUTOSZ 0x04
-#define MAP_0WS 0x08
-#define MAP_WRPROT 0x10
-#define MAP_ATTRIB 0x20
-#define MAP_USE_WAIT 0x40
-#define MAP_PREFETCH 0x80
-
-/* Use this just for bridge windows */
-#define MAP_IOSPACE 0x20
-
-/* power hook operations */
-#define HOOK_POWER_PRE 0x01
-#define HOOK_POWER_POST 0x02
-
-typedef struct pccard_io_map {
- u_char map;
- u_char flags;
- u_short speed;
- phys_addr_t start, stop;
-} pccard_io_map;
-
-typedef struct pccard_mem_map {
- u_char map;
- u_char flags;
- u_short speed;
- phys_addr_t static_start;
- u_int card_start;
- struct resource *res;
-} pccard_mem_map;
-
-typedef struct io_window_t {
- u_int InUse, Config;
- struct resource *res;
-} io_window_t;
-
-/* Maximum number of IO windows per socket */
-#define MAX_IO_WIN 2
-
-/* Maximum number of memory windows per socket */
-#define MAX_WIN 4
-
-
-/*
- * Socket operations.
- */
-struct pcmcia_socket;
-struct pccard_resource_ops;
-struct config_t;
-struct pcmcia_callback;
-struct user_info_t;
-
-struct pccard_operations {
- int (*init)(struct pcmcia_socket *s);
- int (*suspend)(struct pcmcia_socket *s);
- int (*get_status)(struct pcmcia_socket *s, u_int *value);
- int (*set_socket)(struct pcmcia_socket *s, socket_state_t *state);
- int (*set_io_map)(struct pcmcia_socket *s, struct pccard_io_map *io);
- int (*set_mem_map)(struct pcmcia_socket *s, struct pccard_mem_map *mem);
-};
-
-struct pcmcia_socket {
- struct module *owner;
- socket_state_t socket;
- u_int state;
- u_int suspended_state; /* state before suspend */
- u_short functions;
- u_short lock_count;
- pccard_mem_map cis_mem;
- void __iomem *cis_virt;
- io_window_t io[MAX_IO_WIN];
- pccard_mem_map win[MAX_WIN];
- struct list_head cis_cache;
- size_t fake_cis_len;
- u8 *fake_cis;
-
- struct list_head socket_list;
- struct completion socket_released;
-
- /* deprecated */
- unsigned int sock; /* socket number */
-
-
- /* socket capabilities */
- u_int features;
- u_int irq_mask;
- u_int map_size;
- u_int io_offset;
- u_int pci_irq;
- struct pci_dev *cb_dev;
-
- /* socket setup is done so resources should be able to be allocated.
- * Only if set to 1, calls to find_{io,mem}_region are handled, and
- * insertio events are actually managed by the PCMCIA layer.*/
- u8 resource_setup_done;
-
- /* socket operations */
- struct pccard_operations *ops;
- struct pccard_resource_ops *resource_ops;
- void *resource_data;
-
- /* Zoom video behaviour is so chip specific its not worth adding
- this to _ops */
- void (*zoom_video)(struct pcmcia_socket *,
- int);
-
- /* so is power hook */
- int (*power_hook)(struct pcmcia_socket *sock, int operation);
-
- /* allows tuning the CB bridge before loading driver for the CB card */
-#ifdef CONFIG_CARDBUS
- void (*tune_bridge)(struct pcmcia_socket *sock, struct pci_bus *bus);
-#endif
-
- /* state thread */
- struct task_struct *thread;
- struct completion thread_done;
- unsigned int thread_events;
- unsigned int sysfs_events;
-
- /* For the non-trivial interaction between these locks,
- * see Documentation/pcmcia/locking.txt */
- struct mutex skt_mutex;
- struct mutex ops_mutex;
-
- /* protects thread_events and sysfs_events */
- spinlock_t thread_lock;
-
- /* pcmcia (16-bit) */
- struct pcmcia_callback *callback;
-
-#if defined(CONFIG_PCMCIA) || defined(CONFIG_PCMCIA_MODULE)
- /* The following elements refer to 16-bit PCMCIA devices inserted
- * into the socket */
- struct list_head devices_list;
-
- /* the number of devices, used only internally and subject to
- * incorrectness and change */
- u8 device_count;
-
- /* does the PCMCIA card consist of two pseudo devices? */
- u8 pcmcia_pfc;
-
- /* non-zero if PCMCIA card is present */
- atomic_t present;
-
- /* IRQ to be used by PCMCIA devices. May not be IRQ 0. */
- unsigned int pcmcia_irq;
-
-#endif /* CONFIG_PCMCIA */
-
- /* socket device */
- struct device dev;
- /* data internal to the socket driver */
- void *driver_data;
- /* status of the card during resume from a system sleep state */
- int resume_status;
-};
-
-
-/* socket drivers must define the resource operations type they use. There
- * are three options:
- * - pccard_static_ops iomem and ioport areas are assigned statically
- * - pccard_iodyn_ops iomem areas is assigned statically, ioport
- * areas dynamically
- * If this option is selected, use
- * "select PCCARD_IODYN" in Kconfig.
- * - pccard_nonstatic_ops iomem and ioport areas are assigned dynamically.
- * If this option is selected, use
- * "select PCCARD_NONSTATIC" in Kconfig.
- *
- */
-extern struct pccard_resource_ops pccard_static_ops;
-#if defined(CONFIG_PCMCIA) || defined(CONFIG_PCMCIA_MODULE)
-extern struct pccard_resource_ops pccard_iodyn_ops;
-extern struct pccard_resource_ops pccard_nonstatic_ops;
-#else
-/* If PCMCIA is not used, but only CARDBUS, these functions are not used
- * at all. Therefore, do not use the large (240K!) rsrc_nonstatic module
- */
-#define pccard_iodyn_ops pccard_static_ops
-#define pccard_nonstatic_ops pccard_static_ops
-#endif
-
-
-/* socket drivers use this callback in their IRQ handler */
-extern void pcmcia_parse_events(struct pcmcia_socket *socket,
- unsigned int events);
-
-/* to register and unregister a socket */
-extern int pcmcia_register_socket(struct pcmcia_socket *socket);
-extern void pcmcia_unregister_socket(struct pcmcia_socket *socket);
-
-
-#endif /* _LINUX_SS_H */
diff --git a/ANDROID_3.4.5/include/rdma/Kbuild b/ANDROID_3.4.5/include/rdma/Kbuild
deleted file mode 100644
index ea56f76c..00000000
--- a/ANDROID_3.4.5/include/rdma/Kbuild
+++ /dev/null
@@ -1,6 +0,0 @@
-header-y += ib_user_cm.h
-header-y += ib_user_mad.h
-header-y += ib_user_sa.h
-header-y += ib_user_verbs.h
-header-y += rdma_netlink.h
-header-y += rdma_user_cm.h
diff --git a/ANDROID_3.4.5/include/rdma/ib_addr.h b/ANDROID_3.4.5/include/rdma/ib_addr.h
deleted file mode 100644
index 99965395..00000000
--- a/ANDROID_3.4.5/include/rdma/ib_addr.h
+++ /dev/null
@@ -1,287 +0,0 @@
-/*
- * Copyright (c) 2005 Voltaire Inc. All rights reserved.
- * Copyright (c) 2005 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#if !defined(IB_ADDR_H)
-#define IB_ADDR_H
-
-#include <linux/in.h>
-#include <linux/in6.h>
-#include <linux/if_arp.h>
-#include <linux/netdevice.h>
-#include <linux/socket.h>
-#include <linux/if_vlan.h>
-#include <rdma/ib_verbs.h>
-#include <rdma/ib_pack.h>
-
-struct rdma_addr_client {
- atomic_t refcount;
- struct completion comp;
-};
-
-/**
- * rdma_addr_register_client - Register an address client.
- */
-void rdma_addr_register_client(struct rdma_addr_client *client);
-
-/**
- * rdma_addr_unregister_client - Deregister an address client.
- * @client: Client object to deregister.
- */
-void rdma_addr_unregister_client(struct rdma_addr_client *client);
-
-struct rdma_dev_addr {
- unsigned char src_dev_addr[MAX_ADDR_LEN];
- unsigned char dst_dev_addr[MAX_ADDR_LEN];
- unsigned char broadcast[MAX_ADDR_LEN];
- unsigned short dev_type;
- int bound_dev_if;
- enum rdma_transport_type transport;
-};
-
-/**
- * rdma_translate_ip - Translate a local IP address to an RDMA hardware
- * address.
- */
-int rdma_translate_ip(struct sockaddr *addr, struct rdma_dev_addr *dev_addr);
-
-/**
- * rdma_resolve_ip - Resolve source and destination IP addresses to
- * RDMA hardware addresses.
- * @client: Address client associated with request.
- * @src_addr: An optional source address to use in the resolution. If a
- * source address is not provided, a usable address will be returned via
- * the callback.
- * @dst_addr: The destination address to resolve.
- * @addr: A reference to a data location that will receive the resolved
- * addresses. The data location must remain valid until the callback has
- * been invoked.
- * @timeout_ms: Amount of time to wait for the address resolution to complete.
- * @callback: Call invoked once address resolution has completed, timed out,
- * or been canceled. A status of 0 indicates success.
- * @context: User-specified context associated with the call.
- */
-int rdma_resolve_ip(struct rdma_addr_client *client,
- struct sockaddr *src_addr, struct sockaddr *dst_addr,
- struct rdma_dev_addr *addr, int timeout_ms,
- void (*callback)(int status, struct sockaddr *src_addr,
- struct rdma_dev_addr *addr, void *context),
- void *context);
-
-void rdma_addr_cancel(struct rdma_dev_addr *addr);
-
-int rdma_copy_addr(struct rdma_dev_addr *dev_addr, struct net_device *dev,
- const unsigned char *dst_dev_addr);
-
-static inline int ip_addr_size(struct sockaddr *addr)
-{
- return addr->sa_family == AF_INET6 ?
- sizeof(struct sockaddr_in6) : sizeof(struct sockaddr_in);
-}
-
-static inline u16 ib_addr_get_pkey(struct rdma_dev_addr *dev_addr)
-{
- return ((u16)dev_addr->broadcast[8] << 8) | (u16)dev_addr->broadcast[9];
-}
-
-static inline void ib_addr_set_pkey(struct rdma_dev_addr *dev_addr, u16 pkey)
-{
- dev_addr->broadcast[8] = pkey >> 8;
- dev_addr->broadcast[9] = (unsigned char) pkey;
-}
-
-static inline void ib_addr_get_mgid(struct rdma_dev_addr *dev_addr,
- union ib_gid *gid)
-{
- memcpy(gid, dev_addr->broadcast + 4, sizeof *gid);
-}
-
-static inline int rdma_addr_gid_offset(struct rdma_dev_addr *dev_addr)
-{
- return dev_addr->dev_type == ARPHRD_INFINIBAND ? 4 : 0;
-}
-
-static inline void iboe_mac_vlan_to_ll(union ib_gid *gid, u8 *mac, u16 vid)
-{
- memset(gid->raw, 0, 16);
- *((__be32 *) gid->raw) = cpu_to_be32(0xfe800000);
- if (vid < 0x1000) {
- gid->raw[12] = vid & 0xff;
- gid->raw[11] = vid >> 8;
- } else {
- gid->raw[12] = 0xfe;
- gid->raw[11] = 0xff;
- }
- memcpy(gid->raw + 13, mac + 3, 3);
- memcpy(gid->raw + 8, mac, 3);
- gid->raw[8] ^= 2;
-}
-
-static inline u16 rdma_vlan_dev_vlan_id(const struct net_device *dev)
-{
- return dev->priv_flags & IFF_802_1Q_VLAN ?
- vlan_dev_vlan_id(dev) : 0xffff;
-}
-
-static inline void iboe_addr_get_sgid(struct rdma_dev_addr *dev_addr,
- union ib_gid *gid)
-{
- struct net_device *dev;
- u16 vid = 0xffff;
-
- dev = dev_get_by_index(&init_net, dev_addr->bound_dev_if);
- if (dev) {
- vid = rdma_vlan_dev_vlan_id(dev);
- dev_put(dev);
- }
-
- iboe_mac_vlan_to_ll(gid, dev_addr->src_dev_addr, vid);
-}
-
-static inline void rdma_addr_get_sgid(struct rdma_dev_addr *dev_addr, union ib_gid *gid)
-{
- if (dev_addr->transport == RDMA_TRANSPORT_IB &&
- dev_addr->dev_type != ARPHRD_INFINIBAND)
- iboe_addr_get_sgid(dev_addr, gid);
- else
- memcpy(gid, dev_addr->src_dev_addr +
- rdma_addr_gid_offset(dev_addr), sizeof *gid);
-}
-
-static inline void rdma_addr_set_sgid(struct rdma_dev_addr *dev_addr, union ib_gid *gid)
-{
- memcpy(dev_addr->src_dev_addr + rdma_addr_gid_offset(dev_addr), gid, sizeof *gid);
-}
-
-static inline void rdma_addr_get_dgid(struct rdma_dev_addr *dev_addr, union ib_gid *gid)
-{
- memcpy(gid, dev_addr->dst_dev_addr + rdma_addr_gid_offset(dev_addr), sizeof *gid);
-}
-
-static inline void rdma_addr_set_dgid(struct rdma_dev_addr *dev_addr, union ib_gid *gid)
-{
- memcpy(dev_addr->dst_dev_addr + rdma_addr_gid_offset(dev_addr), gid, sizeof *gid);
-}
-
-static inline enum ib_mtu iboe_get_mtu(int mtu)
-{
- /*
- * reduce IB headers from effective IBoE MTU. 28 stands for
- * atomic header which is the biggest possible header after BTH
- */
- mtu = mtu - IB_GRH_BYTES - IB_BTH_BYTES - 28;
-
- if (mtu >= ib_mtu_enum_to_int(IB_MTU_4096))
- return IB_MTU_4096;
- else if (mtu >= ib_mtu_enum_to_int(IB_MTU_2048))
- return IB_MTU_2048;
- else if (mtu >= ib_mtu_enum_to_int(IB_MTU_1024))
- return IB_MTU_1024;
- else if (mtu >= ib_mtu_enum_to_int(IB_MTU_512))
- return IB_MTU_512;
- else if (mtu >= ib_mtu_enum_to_int(IB_MTU_256))
- return IB_MTU_256;
- else
- return 0;
-}
-
-static inline int iboe_get_rate(struct net_device *dev)
-{
- struct ethtool_cmd cmd;
- u32 speed;
- int err;
-
- rtnl_lock();
- err = __ethtool_get_settings(dev, &cmd);
- rtnl_unlock();
- if (err)
- return IB_RATE_PORT_CURRENT;
-
- speed = ethtool_cmd_speed(&cmd);
- if (speed >= 40000)
- return IB_RATE_40_GBPS;
- else if (speed >= 30000)
- return IB_RATE_30_GBPS;
- else if (speed >= 20000)
- return IB_RATE_20_GBPS;
- else if (speed >= 10000)
- return IB_RATE_10_GBPS;
- else
- return IB_RATE_PORT_CURRENT;
-}
-
-static inline int rdma_link_local_addr(struct in6_addr *addr)
-{
- if (addr->s6_addr32[0] == htonl(0xfe800000) &&
- addr->s6_addr32[1] == 0)
- return 1;
-
- return 0;
-}
-
-static inline void rdma_get_ll_mac(struct in6_addr *addr, u8 *mac)
-{
- memcpy(mac, &addr->s6_addr[8], 3);
- memcpy(mac + 3, &addr->s6_addr[13], 3);
- mac[0] ^= 2;
-}
-
-static inline int rdma_is_multicast_addr(struct in6_addr *addr)
-{
- return addr->s6_addr[0] == 0xff;
-}
-
-static inline void rdma_get_mcast_mac(struct in6_addr *addr, u8 *mac)
-{
- int i;
-
- mac[0] = 0x33;
- mac[1] = 0x33;
- for (i = 2; i < 6; ++i)
- mac[i] = addr->s6_addr[i + 10];
-}
-
-static inline u16 rdma_get_vlan_id(union ib_gid *dgid)
-{
- u16 vid;
-
- vid = dgid->raw[11] << 8 | dgid->raw[12];
- return vid < 0x1000 ? vid : 0xffff;
-}
-
-static inline struct net_device *rdma_vlan_dev_real_dev(const struct net_device *dev)
-{
- return dev->priv_flags & IFF_802_1Q_VLAN ?
- vlan_dev_real_dev(dev) : NULL;
-}
-
-#endif /* IB_ADDR_H */
diff --git a/ANDROID_3.4.5/include/rdma/ib_cache.h b/ANDROID_3.4.5/include/rdma/ib_cache.h
deleted file mode 100644
index 00a2b8ec..00000000
--- a/ANDROID_3.4.5/include/rdma/ib_cache.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (c) 2004 Topspin Communications. All rights reserved.
- * Copyright (c) 2005 Intel Corporation. All rights reserved.
- * Copyright (c) 2005 Sun Microsystems, Inc. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#ifndef _IB_CACHE_H
-#define _IB_CACHE_H
-
-#include <rdma/ib_verbs.h>
-
-/**
- * ib_get_cached_gid - Returns a cached GID table entry
- * @device: The device to query.
- * @port_num: The port number of the device to query.
- * @index: The index into the cached GID table to query.
- * @gid: The GID value found at the specified index.
- *
- * ib_get_cached_gid() fetches the specified GID table entry stored in
- * the local software cache.
- */
-int ib_get_cached_gid(struct ib_device *device,
- u8 port_num,
- int index,
- union ib_gid *gid);
-
-/**
- * ib_find_cached_gid - Returns the port number and GID table index where
- * a specified GID value occurs.
- * @device: The device to query.
- * @gid: The GID value to search for.
- * @port_num: The port number of the device where the GID value was found.
- * @index: The index into the cached GID table where the GID was found. This
- * parameter may be NULL.
- *
- * ib_find_cached_gid() searches for the specified GID value in
- * the local software cache.
- */
-int ib_find_cached_gid(struct ib_device *device,
- union ib_gid *gid,
- u8 *port_num,
- u16 *index);
-
-/**
- * ib_get_cached_pkey - Returns a cached PKey table entry
- * @device: The device to query.
- * @port_num: The port number of the device to query.
- * @index: The index into the cached PKey table to query.
- * @pkey: The PKey value found at the specified index.
- *
- * ib_get_cached_pkey() fetches the specified PKey table entry stored in
- * the local software cache.
- */
-int ib_get_cached_pkey(struct ib_device *device_handle,
- u8 port_num,
- int index,
- u16 *pkey);
-
-/**
- * ib_find_cached_pkey - Returns the PKey table index where a specified
- * PKey value occurs.
- * @device: The device to query.
- * @port_num: The port number of the device to search for the PKey.
- * @pkey: The PKey value to search for.
- * @index: The index into the cached PKey table where the PKey was found.
- *
- * ib_find_cached_pkey() searches the specified PKey table in
- * the local software cache.
- */
-int ib_find_cached_pkey(struct ib_device *device,
- u8 port_num,
- u16 pkey,
- u16 *index);
-
-/**
- * ib_get_cached_lmc - Returns a cached lmc table entry
- * @device: The device to query.
- * @port_num: The port number of the device to query.
- * @lmc: The lmc value for the specified port for that device.
- *
- * ib_get_cached_lmc() fetches the specified lmc table entry stored in
- * the local software cache.
- */
-int ib_get_cached_lmc(struct ib_device *device,
- u8 port_num,
- u8 *lmc);
-
-#endif /* _IB_CACHE_H */
diff --git a/ANDROID_3.4.5/include/rdma/ib_cm.h b/ANDROID_3.4.5/include/rdma/ib_cm.h
deleted file mode 100644
index 83f77ac3..00000000
--- a/ANDROID_3.4.5/include/rdma/ib_cm.h
+++ /dev/null
@@ -1,592 +0,0 @@
-/*
- * Copyright (c) 2004, 2005 Intel Corporation. All rights reserved.
- * Copyright (c) 2004 Topspin Corporation. All rights reserved.
- * Copyright (c) 2004 Voltaire Corporation. All rights reserved.
- * Copyright (c) 2005 Sun Microsystems, Inc. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#if !defined(IB_CM_H)
-#define IB_CM_H
-
-#include <rdma/ib_mad.h>
-#include <rdma/ib_sa.h>
-
-/* ib_cm and ib_user_cm modules share /sys/class/infiniband_cm */
-extern struct class cm_class;
-
-enum ib_cm_state {
- IB_CM_IDLE,
- IB_CM_LISTEN,
- IB_CM_REQ_SENT,
- IB_CM_REQ_RCVD,
- IB_CM_MRA_REQ_SENT,
- IB_CM_MRA_REQ_RCVD,
- IB_CM_REP_SENT,
- IB_CM_REP_RCVD,
- IB_CM_MRA_REP_SENT,
- IB_CM_MRA_REP_RCVD,
- IB_CM_ESTABLISHED,
- IB_CM_DREQ_SENT,
- IB_CM_DREQ_RCVD,
- IB_CM_TIMEWAIT,
- IB_CM_SIDR_REQ_SENT,
- IB_CM_SIDR_REQ_RCVD
-};
-
-enum ib_cm_lap_state {
- IB_CM_LAP_UNINIT,
- IB_CM_LAP_IDLE,
- IB_CM_LAP_SENT,
- IB_CM_LAP_RCVD,
- IB_CM_MRA_LAP_SENT,
- IB_CM_MRA_LAP_RCVD,
-};
-
-enum ib_cm_event_type {
- IB_CM_REQ_ERROR,
- IB_CM_REQ_RECEIVED,
- IB_CM_REP_ERROR,
- IB_CM_REP_RECEIVED,
- IB_CM_RTU_RECEIVED,
- IB_CM_USER_ESTABLISHED,
- IB_CM_DREQ_ERROR,
- IB_CM_DREQ_RECEIVED,
- IB_CM_DREP_RECEIVED,
- IB_CM_TIMEWAIT_EXIT,
- IB_CM_MRA_RECEIVED,
- IB_CM_REJ_RECEIVED,
- IB_CM_LAP_ERROR,
- IB_CM_LAP_RECEIVED,
- IB_CM_APR_RECEIVED,
- IB_CM_SIDR_REQ_ERROR,
- IB_CM_SIDR_REQ_RECEIVED,
- IB_CM_SIDR_REP_RECEIVED
-};
-
-enum ib_cm_data_size {
- IB_CM_REQ_PRIVATE_DATA_SIZE = 92,
- IB_CM_MRA_PRIVATE_DATA_SIZE = 222,
- IB_CM_REJ_PRIVATE_DATA_SIZE = 148,
- IB_CM_REP_PRIVATE_DATA_SIZE = 196,
- IB_CM_RTU_PRIVATE_DATA_SIZE = 224,
- IB_CM_DREQ_PRIVATE_DATA_SIZE = 220,
- IB_CM_DREP_PRIVATE_DATA_SIZE = 224,
- IB_CM_REJ_ARI_LENGTH = 72,
- IB_CM_LAP_PRIVATE_DATA_SIZE = 168,
- IB_CM_APR_PRIVATE_DATA_SIZE = 148,
- IB_CM_APR_INFO_LENGTH = 72,
- IB_CM_SIDR_REQ_PRIVATE_DATA_SIZE = 216,
- IB_CM_SIDR_REP_PRIVATE_DATA_SIZE = 136,
- IB_CM_SIDR_REP_INFO_LENGTH = 72,
- IB_CM_COMPARE_SIZE = 64
-};
-
-struct ib_cm_id;
-
-struct ib_cm_req_event_param {
- struct ib_cm_id *listen_id;
- u8 port;
-
- struct ib_sa_path_rec *primary_path;
- struct ib_sa_path_rec *alternate_path;
-
- __be64 remote_ca_guid;
- u32 remote_qkey;
- u32 remote_qpn;
- enum ib_qp_type qp_type;
-
- u32 starting_psn;
- u8 responder_resources;
- u8 initiator_depth;
- unsigned int local_cm_response_timeout:5;
- unsigned int flow_control:1;
- unsigned int remote_cm_response_timeout:5;
- unsigned int retry_count:3;
- unsigned int rnr_retry_count:3;
- unsigned int srq:1;
-};
-
-struct ib_cm_rep_event_param {
- __be64 remote_ca_guid;
- u32 remote_qkey;
- u32 remote_qpn;
- u32 starting_psn;
- u8 responder_resources;
- u8 initiator_depth;
- unsigned int target_ack_delay:5;
- unsigned int failover_accepted:2;
- unsigned int flow_control:1;
- unsigned int rnr_retry_count:3;
- unsigned int srq:1;
-};
-
-enum ib_cm_rej_reason {
- IB_CM_REJ_NO_QP = 1,
- IB_CM_REJ_NO_EEC = 2,
- IB_CM_REJ_NO_RESOURCES = 3,
- IB_CM_REJ_TIMEOUT = 4,
- IB_CM_REJ_UNSUPPORTED = 5,
- IB_CM_REJ_INVALID_COMM_ID = 6,
- IB_CM_REJ_INVALID_COMM_INSTANCE = 7,
- IB_CM_REJ_INVALID_SERVICE_ID = 8,
- IB_CM_REJ_INVALID_TRANSPORT_TYPE = 9,
- IB_CM_REJ_STALE_CONN = 10,
- IB_CM_REJ_RDC_NOT_EXIST = 11,
- IB_CM_REJ_INVALID_GID = 12,
- IB_CM_REJ_INVALID_LID = 13,
- IB_CM_REJ_INVALID_SL = 14,
- IB_CM_REJ_INVALID_TRAFFIC_CLASS = 15,
- IB_CM_REJ_INVALID_HOP_LIMIT = 16,
- IB_CM_REJ_INVALID_PACKET_RATE = 17,
- IB_CM_REJ_INVALID_ALT_GID = 18,
- IB_CM_REJ_INVALID_ALT_LID = 19,
- IB_CM_REJ_INVALID_ALT_SL = 20,
- IB_CM_REJ_INVALID_ALT_TRAFFIC_CLASS = 21,
- IB_CM_REJ_INVALID_ALT_HOP_LIMIT = 22,
- IB_CM_REJ_INVALID_ALT_PACKET_RATE = 23,
- IB_CM_REJ_PORT_CM_REDIRECT = 24,
- IB_CM_REJ_PORT_REDIRECT = 25,
- IB_CM_REJ_INVALID_MTU = 26,
- IB_CM_REJ_INSUFFICIENT_RESP_RESOURCES = 27,
- IB_CM_REJ_CONSUMER_DEFINED = 28,
- IB_CM_REJ_INVALID_RNR_RETRY = 29,
- IB_CM_REJ_DUPLICATE_LOCAL_COMM_ID = 30,
- IB_CM_REJ_INVALID_CLASS_VERSION = 31,
- IB_CM_REJ_INVALID_FLOW_LABEL = 32,
- IB_CM_REJ_INVALID_ALT_FLOW_LABEL = 33
-};
-
-struct ib_cm_rej_event_param {
- enum ib_cm_rej_reason reason;
- void *ari;
- u8 ari_length;
-};
-
-struct ib_cm_mra_event_param {
- u8 service_timeout;
-};
-
-struct ib_cm_lap_event_param {
- struct ib_sa_path_rec *alternate_path;
-};
-
-enum ib_cm_apr_status {
- IB_CM_APR_SUCCESS,
- IB_CM_APR_INVALID_COMM_ID,
- IB_CM_APR_UNSUPPORTED,
- IB_CM_APR_REJECT,
- IB_CM_APR_REDIRECT,
- IB_CM_APR_IS_CURRENT,
- IB_CM_APR_INVALID_QPN_EECN,
- IB_CM_APR_INVALID_LID,
- IB_CM_APR_INVALID_GID,
- IB_CM_APR_INVALID_FLOW_LABEL,
- IB_CM_APR_INVALID_TCLASS,
- IB_CM_APR_INVALID_HOP_LIMIT,
- IB_CM_APR_INVALID_PACKET_RATE,
- IB_CM_APR_INVALID_SL
-};
-
-struct ib_cm_apr_event_param {
- enum ib_cm_apr_status ap_status;
- void *apr_info;
- u8 info_len;
-};
-
-struct ib_cm_sidr_req_event_param {
- struct ib_cm_id *listen_id;
- u8 port;
- u16 pkey;
-};
-
-enum ib_cm_sidr_status {
- IB_SIDR_SUCCESS,
- IB_SIDR_UNSUPPORTED,
- IB_SIDR_REJECT,
- IB_SIDR_NO_QP,
- IB_SIDR_REDIRECT,
- IB_SIDR_UNSUPPORTED_VERSION
-};
-
-struct ib_cm_sidr_rep_event_param {
- enum ib_cm_sidr_status status;
- u32 qkey;
- u32 qpn;
- void *info;
- u8 info_len;
-};
-
-struct ib_cm_event {
- enum ib_cm_event_type event;
- union {
- struct ib_cm_req_event_param req_rcvd;
- struct ib_cm_rep_event_param rep_rcvd;
- /* No data for RTU received events. */
- struct ib_cm_rej_event_param rej_rcvd;
- struct ib_cm_mra_event_param mra_rcvd;
- struct ib_cm_lap_event_param lap_rcvd;
- struct ib_cm_apr_event_param apr_rcvd;
- /* No data for DREQ/DREP received events. */
- struct ib_cm_sidr_req_event_param sidr_req_rcvd;
- struct ib_cm_sidr_rep_event_param sidr_rep_rcvd;
- enum ib_wc_status send_status;
- } param;
-
- void *private_data;
-};
-
-/**
- * ib_cm_handler - User-defined callback to process communication events.
- * @cm_id: Communication identifier associated with the reported event.
- * @event: Information about the communication event.
- *
- * IB_CM_REQ_RECEIVED and IB_CM_SIDR_REQ_RECEIVED communication events
- * generated as a result of listen requests result in the allocation of a
- * new @cm_id. The new @cm_id is returned to the user through this callback.
- * Clients are responsible for destroying the new @cm_id. For peer-to-peer
- * IB_CM_REQ_RECEIVED and all other events, the returned @cm_id corresponds
- * to a user's existing communication identifier.
- *
- * Users may not call ib_destroy_cm_id while in the context of this callback;
- * however, returning a non-zero value instructs the communication manager to
- * destroy the @cm_id after the callback completes.
- */
-typedef int (*ib_cm_handler)(struct ib_cm_id *cm_id,
- struct ib_cm_event *event);
-
-struct ib_cm_id {
- ib_cm_handler cm_handler;
- void *context;
- struct ib_device *device;
- __be64 service_id;
- __be64 service_mask;
- enum ib_cm_state state; /* internal CM/debug use */
- enum ib_cm_lap_state lap_state; /* internal CM/debug use */
- __be32 local_id;
- __be32 remote_id;
- u32 remote_cm_qpn; /* 1 unless redirected */
-};
-
-/**
- * ib_create_cm_id - Allocate a communication identifier.
- * @device: Device associated with the cm_id. All related communication will
- * be associated with the specified device.
- * @cm_handler: Callback invoked to notify the user of CM events.
- * @context: User specified context associated with the communication
- * identifier.
- *
- * Communication identifiers are used to track connection states, service
- * ID resolution requests, and listen requests.
- */
-struct ib_cm_id *ib_create_cm_id(struct ib_device *device,
- ib_cm_handler cm_handler,
- void *context);
-
-/**
- * ib_destroy_cm_id - Destroy a connection identifier.
- * @cm_id: Connection identifier to destroy.
- *
- * This call blocks until the connection identifier is destroyed.
- */
-void ib_destroy_cm_id(struct ib_cm_id *cm_id);
-
-#define IB_SERVICE_ID_AGN_MASK cpu_to_be64(0xFF00000000000000ULL)
-#define IB_CM_ASSIGN_SERVICE_ID cpu_to_be64(0x0200000000000000ULL)
-#define IB_CMA_SERVICE_ID cpu_to_be64(0x0000000001000000ULL)
-#define IB_CMA_SERVICE_ID_MASK cpu_to_be64(0xFFFFFFFFFF000000ULL)
-#define IB_SDP_SERVICE_ID cpu_to_be64(0x0000000000010000ULL)
-#define IB_SDP_SERVICE_ID_MASK cpu_to_be64(0xFFFFFFFFFFFF0000ULL)
-
-struct ib_cm_compare_data {
- u8 data[IB_CM_COMPARE_SIZE];
- u8 mask[IB_CM_COMPARE_SIZE];
-};
-
-/**
- * ib_cm_listen - Initiates listening on the specified service ID for
- * connection and service ID resolution requests.
- * @cm_id: Connection identifier associated with the listen request.
- * @service_id: Service identifier matched against incoming connection
- * and service ID resolution requests. The service ID should be specified
- * network-byte order. If set to IB_CM_ASSIGN_SERVICE_ID, the CM will
- * assign a service ID to the caller.
- * @service_mask: Mask applied to service ID used to listen across a
- * range of service IDs. If set to 0, the service ID is matched
- * exactly. This parameter is ignored if %service_id is set to
- * IB_CM_ASSIGN_SERVICE_ID.
- * @compare_data: This parameter is optional. It specifies data that must
- * appear in the private data of a connection request for the specified
- * listen request.
- */
-int ib_cm_listen(struct ib_cm_id *cm_id, __be64 service_id, __be64 service_mask,
- struct ib_cm_compare_data *compare_data);
-
-struct ib_cm_req_param {
- struct ib_sa_path_rec *primary_path;
- struct ib_sa_path_rec *alternate_path;
- __be64 service_id;
- u32 qp_num;
- enum ib_qp_type qp_type;
- u32 starting_psn;
- const void *private_data;
- u8 private_data_len;
- u8 peer_to_peer;
- u8 responder_resources;
- u8 initiator_depth;
- u8 remote_cm_response_timeout;
- u8 flow_control;
- u8 local_cm_response_timeout;
- u8 retry_count;
- u8 rnr_retry_count;
- u8 max_cm_retries;
- u8 srq;
-};
-
-/**
- * ib_send_cm_req - Sends a connection request to the remote node.
- * @cm_id: Connection identifier that will be associated with the
- * connection request.
- * @param: Connection request information needed to establish the
- * connection.
- */
-int ib_send_cm_req(struct ib_cm_id *cm_id,
- struct ib_cm_req_param *param);
-
-struct ib_cm_rep_param {
- u32 qp_num;
- u32 starting_psn;
- const void *private_data;
- u8 private_data_len;
- u8 responder_resources;
- u8 initiator_depth;
- u8 failover_accepted;
- u8 flow_control;
- u8 rnr_retry_count;
- u8 srq;
-};
-
-/**
- * ib_send_cm_rep - Sends a connection reply in response to a connection
- * request.
- * @cm_id: Connection identifier that will be associated with the
- * connection request.
- * @param: Connection reply information needed to establish the
- * connection.
- */
-int ib_send_cm_rep(struct ib_cm_id *cm_id,
- struct ib_cm_rep_param *param);
-
-/**
- * ib_send_cm_rtu - Sends a connection ready to use message in response
- * to a connection reply message.
- * @cm_id: Connection identifier associated with the connection request.
- * @private_data: Optional user-defined private data sent with the
- * ready to use message.
- * @private_data_len: Size of the private data buffer, in bytes.
- */
-int ib_send_cm_rtu(struct ib_cm_id *cm_id,
- const void *private_data,
- u8 private_data_len);
-
-/**
- * ib_send_cm_dreq - Sends a disconnection request for an existing
- * connection.
- * @cm_id: Connection identifier associated with the connection being
- * released.
- * @private_data: Optional user-defined private data sent with the
- * disconnection request message.
- * @private_data_len: Size of the private data buffer, in bytes.
- */
-int ib_send_cm_dreq(struct ib_cm_id *cm_id,
- const void *private_data,
- u8 private_data_len);
-
-/**
- * ib_send_cm_drep - Sends a disconnection reply to a disconnection request.
- * @cm_id: Connection identifier associated with the connection being
- * released.
- * @private_data: Optional user-defined private data sent with the
- * disconnection reply message.
- * @private_data_len: Size of the private data buffer, in bytes.
- *
- * If the cm_id is in the correct state, the CM will transition the connection
- * to the timewait state, even if an error occurs sending the DREP message.
- */
-int ib_send_cm_drep(struct ib_cm_id *cm_id,
- const void *private_data,
- u8 private_data_len);
-
-/**
- * ib_cm_notify - Notifies the CM of an event reported to the consumer.
- * @cm_id: Connection identifier to transition to established.
- * @event: Type of event.
- *
- * This routine should be invoked by users to notify the CM of relevant
- * communication events. Events that should be reported to the CM and
- * when to report them are:
- *
- * IB_EVENT_COMM_EST - Used when a message is received on a connected
- * QP before an RTU has been received.
- * IB_EVENT_PATH_MIG - Notifies the CM that the connection has failed over
- * to the alternate path.
- */
-int ib_cm_notify(struct ib_cm_id *cm_id, enum ib_event_type event);
-
-/**
- * ib_send_cm_rej - Sends a connection rejection message to the
- * remote node.
- * @cm_id: Connection identifier associated with the connection being
- * rejected.
- * @reason: Reason for the connection request rejection.
- * @ari: Optional additional rejection information.
- * @ari_length: Size of the additional rejection information, in bytes.
- * @private_data: Optional user-defined private data sent with the
- * rejection message.
- * @private_data_len: Size of the private data buffer, in bytes.
- */
-int ib_send_cm_rej(struct ib_cm_id *cm_id,
- enum ib_cm_rej_reason reason,
- void *ari,
- u8 ari_length,
- const void *private_data,
- u8 private_data_len);
-
-#define IB_CM_MRA_FLAG_DELAY 0x80 /* Send MRA only after a duplicate msg */
-
-/**
- * ib_send_cm_mra - Sends a message receipt acknowledgement to a connection
- * message.
- * @cm_id: Connection identifier associated with the connection message.
- * @service_timeout: The lower 5-bits specify the maximum time required for
- * the sender to reply to the connection message. The upper 3-bits
- * specify additional control flags.
- * @private_data: Optional user-defined private data sent with the
- * message receipt acknowledgement.
- * @private_data_len: Size of the private data buffer, in bytes.
- */
-int ib_send_cm_mra(struct ib_cm_id *cm_id,
- u8 service_timeout,
- const void *private_data,
- u8 private_data_len);
-
-/**
- * ib_send_cm_lap - Sends a load alternate path request.
- * @cm_id: Connection identifier associated with the load alternate path
- * message.
- * @alternate_path: A path record that identifies the alternate path to
- * load.
- * @private_data: Optional user-defined private data sent with the
- * load alternate path message.
- * @private_data_len: Size of the private data buffer, in bytes.
- */
-int ib_send_cm_lap(struct ib_cm_id *cm_id,
- struct ib_sa_path_rec *alternate_path,
- const void *private_data,
- u8 private_data_len);
-
-/**
- * ib_cm_init_qp_attr - Initializes the QP attributes for use in transitioning
- * to a specified QP state.
- * @cm_id: Communication identifier associated with the QP attributes to
- * initialize.
- * @qp_attr: On input, specifies the desired QP state. On output, the
- * mandatory and desired optional attributes will be set in order to
- * modify the QP to the specified state.
- * @qp_attr_mask: The QP attribute mask that may be used to transition the
- * QP to the specified state.
- *
- * Users must set the @qp_attr->qp_state to the desired QP state. This call
- * will set all required attributes for the given transition, along with
- * known optional attributes. Users may override the attributes returned from
- * this call before calling ib_modify_qp.
- */
-int ib_cm_init_qp_attr(struct ib_cm_id *cm_id,
- struct ib_qp_attr *qp_attr,
- int *qp_attr_mask);
-
-/**
- * ib_send_cm_apr - Sends an alternate path response message in response to
- * a load alternate path request.
- * @cm_id: Connection identifier associated with the alternate path response.
- * @status: Reply status sent with the alternate path response.
- * @info: Optional additional information sent with the alternate path
- * response.
- * @info_length: Size of the additional information, in bytes.
- * @private_data: Optional user-defined private data sent with the
- * alternate path response message.
- * @private_data_len: Size of the private data buffer, in bytes.
- */
-int ib_send_cm_apr(struct ib_cm_id *cm_id,
- enum ib_cm_apr_status status,
- void *info,
- u8 info_length,
- const void *private_data,
- u8 private_data_len);
-
-struct ib_cm_sidr_req_param {
- struct ib_sa_path_rec *path;
- __be64 service_id;
- int timeout_ms;
- const void *private_data;
- u8 private_data_len;
- u8 max_cm_retries;
-};
-
-/**
- * ib_send_cm_sidr_req - Sends a service ID resolution request to the
- * remote node.
- * @cm_id: Communication identifier that will be associated with the
- * service ID resolution request.
- * @param: Service ID resolution request information.
- */
-int ib_send_cm_sidr_req(struct ib_cm_id *cm_id,
- struct ib_cm_sidr_req_param *param);
-
-struct ib_cm_sidr_rep_param {
- u32 qp_num;
- u32 qkey;
- enum ib_cm_sidr_status status;
- const void *info;
- u8 info_length;
- const void *private_data;
- u8 private_data_len;
-};
-
-/**
- * ib_send_cm_sidr_rep - Sends a service ID resolution reply to the
- * remote node.
- * @cm_id: Communication identifier associated with the received service ID
- * resolution request.
- * @param: Service ID resolution reply information.
- */
-int ib_send_cm_sidr_rep(struct ib_cm_id *cm_id,
- struct ib_cm_sidr_rep_param *param);
-
-#endif /* IB_CM_H */
diff --git a/ANDROID_3.4.5/include/rdma/ib_fmr_pool.h b/ANDROID_3.4.5/include/rdma/ib_fmr_pool.h
deleted file mode 100644
index f62b842e..00000000
--- a/ANDROID_3.4.5/include/rdma/ib_fmr_pool.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (c) 2004 Topspin Corporation. All rights reserved.
- * Copyright (c) 2005 Sun Microsystems, Inc. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#if !defined(IB_FMR_POOL_H)
-#define IB_FMR_POOL_H
-
-#include <rdma/ib_verbs.h>
-
-struct ib_fmr_pool;
-
-/**
- * struct ib_fmr_pool_param - Parameters for creating FMR pool
- * @max_pages_per_fmr:Maximum number of pages per map request.
- * @page_shift: Log2 of sizeof "pages" mapped by this fmr
- * @access:Access flags for FMRs in pool.
- * @pool_size:Number of FMRs to allocate for pool.
- * @dirty_watermark:Flush is triggered when @dirty_watermark dirty
- * FMRs are present.
- * @flush_function:Callback called when unmapped FMRs are flushed and
- * more FMRs are possibly available for mapping
- * @flush_arg:Context passed to user's flush function.
- * @cache:If set, FMRs may be reused after unmapping for identical map
- * requests.
- */
-struct ib_fmr_pool_param {
- int max_pages_per_fmr;
- int page_shift;
- enum ib_access_flags access;
- int pool_size;
- int dirty_watermark;
- void (*flush_function)(struct ib_fmr_pool *pool,
- void *arg);
- void *flush_arg;
- unsigned cache:1;
-};
-
-struct ib_pool_fmr {
- struct ib_fmr *fmr;
- struct ib_fmr_pool *pool;
- struct list_head list;
- struct hlist_node cache_node;
- int ref_count;
- int remap_count;
- u64 io_virtual_address;
- int page_list_len;
- u64 page_list[0];
-};
-
-struct ib_fmr_pool *ib_create_fmr_pool(struct ib_pd *pd,
- struct ib_fmr_pool_param *params);
-
-void ib_destroy_fmr_pool(struct ib_fmr_pool *pool);
-
-int ib_flush_fmr_pool(struct ib_fmr_pool *pool);
-
-struct ib_pool_fmr *ib_fmr_pool_map_phys(struct ib_fmr_pool *pool_handle,
- u64 *page_list,
- int list_len,
- u64 io_virtual_address);
-
-int ib_fmr_pool_unmap(struct ib_pool_fmr *fmr);
-
-#endif /* IB_FMR_POOL_H */
diff --git a/ANDROID_3.4.5/include/rdma/ib_mad.h b/ANDROID_3.4.5/include/rdma/ib_mad.h
deleted file mode 100644
index b513f57e..00000000
--- a/ANDROID_3.4.5/include/rdma/ib_mad.h
+++ /dev/null
@@ -1,664 +0,0 @@
-/*
- * Copyright (c) 2004 Mellanox Technologies Ltd. All rights reserved.
- * Copyright (c) 2004 Infinicon Corporation. All rights reserved.
- * Copyright (c) 2004 Intel Corporation. All rights reserved.
- * Copyright (c) 2004 Topspin Corporation. All rights reserved.
- * Copyright (c) 2004-2006 Voltaire Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#if !defined(IB_MAD_H)
-#define IB_MAD_H
-
-#include <linux/list.h>
-
-#include <rdma/ib_verbs.h>
-
-/* Management base version */
-#define IB_MGMT_BASE_VERSION 1
-
-/* Management classes */
-#define IB_MGMT_CLASS_SUBN_LID_ROUTED 0x01
-#define IB_MGMT_CLASS_SUBN_DIRECTED_ROUTE 0x81
-#define IB_MGMT_CLASS_SUBN_ADM 0x03
-#define IB_MGMT_CLASS_PERF_MGMT 0x04
-#define IB_MGMT_CLASS_BM 0x05
-#define IB_MGMT_CLASS_DEVICE_MGMT 0x06
-#define IB_MGMT_CLASS_CM 0x07
-#define IB_MGMT_CLASS_SNMP 0x08
-#define IB_MGMT_CLASS_DEVICE_ADM 0x10
-#define IB_MGMT_CLASS_BOOT_MGMT 0x11
-#define IB_MGMT_CLASS_BIS 0x12
-#define IB_MGMT_CLASS_CONG_MGMT 0x21
-#define IB_MGMT_CLASS_VENDOR_RANGE2_START 0x30
-#define IB_MGMT_CLASS_VENDOR_RANGE2_END 0x4F
-
-#define IB_OPENIB_OUI (0x001405)
-
-/* Management methods */
-#define IB_MGMT_METHOD_GET 0x01
-#define IB_MGMT_METHOD_SET 0x02
-#define IB_MGMT_METHOD_GET_RESP 0x81
-#define IB_MGMT_METHOD_SEND 0x03
-#define IB_MGMT_METHOD_TRAP 0x05
-#define IB_MGMT_METHOD_REPORT 0x06
-#define IB_MGMT_METHOD_REPORT_RESP 0x86
-#define IB_MGMT_METHOD_TRAP_REPRESS 0x07
-
-#define IB_MGMT_METHOD_RESP 0x80
-#define IB_BM_ATTR_MOD_RESP cpu_to_be32(1)
-
-#define IB_MGMT_MAX_METHODS 128
-
-/* MAD Status field bit masks */
-#define IB_MGMT_MAD_STATUS_SUCCESS 0x0000
-#define IB_MGMT_MAD_STATUS_BUSY 0x0001
-#define IB_MGMT_MAD_STATUS_REDIRECT_REQD 0x0002
-#define IB_MGMT_MAD_STATUS_BAD_VERSION 0x0004
-#define IB_MGMT_MAD_STATUS_UNSUPPORTED_METHOD 0x0008
-#define IB_MGMT_MAD_STATUS_UNSUPPORTED_METHOD_ATTRIB 0x000c
-#define IB_MGMT_MAD_STATUS_INVALID_ATTRIB_VALUE 0x001c
-
-/* RMPP information */
-#define IB_MGMT_RMPP_VERSION 1
-
-#define IB_MGMT_RMPP_TYPE_DATA 1
-#define IB_MGMT_RMPP_TYPE_ACK 2
-#define IB_MGMT_RMPP_TYPE_STOP 3
-#define IB_MGMT_RMPP_TYPE_ABORT 4
-
-#define IB_MGMT_RMPP_FLAG_ACTIVE 1
-#define IB_MGMT_RMPP_FLAG_FIRST (1<<1)
-#define IB_MGMT_RMPP_FLAG_LAST (1<<2)
-
-#define IB_MGMT_RMPP_NO_RESPTIME 0x1F
-
-#define IB_MGMT_RMPP_STATUS_SUCCESS 0
-#define IB_MGMT_RMPP_STATUS_RESX 1
-#define IB_MGMT_RMPP_STATUS_ABORT_MIN 118
-#define IB_MGMT_RMPP_STATUS_T2L 118
-#define IB_MGMT_RMPP_STATUS_BAD_LEN 119
-#define IB_MGMT_RMPP_STATUS_BAD_SEG 120
-#define IB_MGMT_RMPP_STATUS_BADT 121
-#define IB_MGMT_RMPP_STATUS_W2S 122
-#define IB_MGMT_RMPP_STATUS_S2B 123
-#define IB_MGMT_RMPP_STATUS_BAD_STATUS 124
-#define IB_MGMT_RMPP_STATUS_UNV 125
-#define IB_MGMT_RMPP_STATUS_TMR 126
-#define IB_MGMT_RMPP_STATUS_UNSPEC 127
-#define IB_MGMT_RMPP_STATUS_ABORT_MAX 127
-
-#define IB_QP0 0
-#define IB_QP1 cpu_to_be32(1)
-#define IB_QP1_QKEY 0x80010000
-#define IB_QP_SET_QKEY 0x80000000
-
-#define IB_DEFAULT_PKEY_PARTIAL 0x7FFF
-#define IB_DEFAULT_PKEY_FULL 0xFFFF
-
-enum {
- IB_MGMT_MAD_HDR = 24,
- IB_MGMT_MAD_DATA = 232,
- IB_MGMT_RMPP_HDR = 36,
- IB_MGMT_RMPP_DATA = 220,
- IB_MGMT_VENDOR_HDR = 40,
- IB_MGMT_VENDOR_DATA = 216,
- IB_MGMT_SA_HDR = 56,
- IB_MGMT_SA_DATA = 200,
- IB_MGMT_DEVICE_HDR = 64,
- IB_MGMT_DEVICE_DATA = 192,
-};
-
-struct ib_mad_hdr {
- u8 base_version;
- u8 mgmt_class;
- u8 class_version;
- u8 method;
- __be16 status;
- __be16 class_specific;
- __be64 tid;
- __be16 attr_id;
- __be16 resv;
- __be32 attr_mod;
-};
-
-struct ib_rmpp_hdr {
- u8 rmpp_version;
- u8 rmpp_type;
- u8 rmpp_rtime_flags;
- u8 rmpp_status;
- __be32 seg_num;
- __be32 paylen_newwin;
-};
-
-typedef u64 __bitwise ib_sa_comp_mask;
-
-#define IB_SA_COMP_MASK(n) ((__force ib_sa_comp_mask) cpu_to_be64(1ull << n))
-
-/*
- * ib_sa_hdr and ib_sa_mad structures must be packed because they have
- * 64-bit fields that are only 32-bit aligned. 64-bit architectures will
- * lay them out wrong otherwise. (And unfortunately they are sent on
- * the wire so we can't change the layout)
- */
-struct ib_sa_hdr {
- __be64 sm_key;
- __be16 attr_offset;
- __be16 reserved;
- ib_sa_comp_mask comp_mask;
-} __attribute__ ((packed));
-
-struct ib_mad {
- struct ib_mad_hdr mad_hdr;
- u8 data[IB_MGMT_MAD_DATA];
-};
-
-struct ib_rmpp_mad {
- struct ib_mad_hdr mad_hdr;
- struct ib_rmpp_hdr rmpp_hdr;
- u8 data[IB_MGMT_RMPP_DATA];
-};
-
-struct ib_sa_mad {
- struct ib_mad_hdr mad_hdr;
- struct ib_rmpp_hdr rmpp_hdr;
- struct ib_sa_hdr sa_hdr;
- u8 data[IB_MGMT_SA_DATA];
-} __attribute__ ((packed));
-
-struct ib_vendor_mad {
- struct ib_mad_hdr mad_hdr;
- struct ib_rmpp_hdr rmpp_hdr;
- u8 reserved;
- u8 oui[3];
- u8 data[IB_MGMT_VENDOR_DATA];
-};
-
-struct ib_class_port_info {
- u8 base_version;
- u8 class_version;
- __be16 capability_mask;
- u8 reserved[3];
- u8 resp_time_value;
- u8 redirect_gid[16];
- __be32 redirect_tcslfl;
- __be16 redirect_lid;
- __be16 redirect_pkey;
- __be32 redirect_qp;
- __be32 redirect_qkey;
- u8 trap_gid[16];
- __be32 trap_tcslfl;
- __be16 trap_lid;
- __be16 trap_pkey;
- __be32 trap_hlqp;
- __be32 trap_qkey;
-};
-
-/**
- * ib_mad_send_buf - MAD data buffer and work request for sends.
- * @next: A pointer used to chain together MADs for posting.
- * @mad: References an allocated MAD data buffer for MADs that do not have
- * RMPP active. For MADs using RMPP, references the common and management
- * class specific headers.
- * @mad_agent: MAD agent that allocated the buffer.
- * @ah: The address handle to use when sending the MAD.
- * @context: User-controlled context fields.
- * @hdr_len: Indicates the size of the data header of the MAD. This length
- * includes the common MAD, RMPP, and class specific headers.
- * @data_len: Indicates the total size of user-transferred data.
- * @seg_count: The number of RMPP segments allocated for this send.
- * @seg_size: Size of each RMPP segment.
- * @timeout_ms: Time to wait for a response.
- * @retries: Number of times to retry a request for a response. For MADs
- * using RMPP, this applies per window. On completion, returns the number
- * of retries needed to complete the transfer.
- *
- * Users are responsible for initializing the MAD buffer itself, with the
- * exception of any RMPP header. Additional segment buffer space allocated
- * beyond data_len is padding.
- */
-struct ib_mad_send_buf {
- struct ib_mad_send_buf *next;
- void *mad;
- struct ib_mad_agent *mad_agent;
- struct ib_ah *ah;
- void *context[2];
- int hdr_len;
- int data_len;
- int seg_count;
- int seg_size;
- int timeout_ms;
- int retries;
-};
-
-/**
- * ib_response_mad - Returns if the specified MAD has been generated in
- * response to a sent request or trap.
- */
-int ib_response_mad(struct ib_mad *mad);
-
-/**
- * ib_get_rmpp_resptime - Returns the RMPP response time.
- * @rmpp_hdr: An RMPP header.
- */
-static inline u8 ib_get_rmpp_resptime(struct ib_rmpp_hdr *rmpp_hdr)
-{
- return rmpp_hdr->rmpp_rtime_flags >> 3;
-}
-
-/**
- * ib_get_rmpp_flags - Returns the RMPP flags.
- * @rmpp_hdr: An RMPP header.
- */
-static inline u8 ib_get_rmpp_flags(struct ib_rmpp_hdr *rmpp_hdr)
-{
- return rmpp_hdr->rmpp_rtime_flags & 0x7;
-}
-
-/**
- * ib_set_rmpp_resptime - Sets the response time in an RMPP header.
- * @rmpp_hdr: An RMPP header.
- * @rtime: The response time to set.
- */
-static inline void ib_set_rmpp_resptime(struct ib_rmpp_hdr *rmpp_hdr, u8 rtime)
-{
- rmpp_hdr->rmpp_rtime_flags = ib_get_rmpp_flags(rmpp_hdr) | (rtime << 3);
-}
-
-/**
- * ib_set_rmpp_flags - Sets the flags in an RMPP header.
- * @rmpp_hdr: An RMPP header.
- * @flags: The flags to set.
- */
-static inline void ib_set_rmpp_flags(struct ib_rmpp_hdr *rmpp_hdr, u8 flags)
-{
- rmpp_hdr->rmpp_rtime_flags = (rmpp_hdr->rmpp_rtime_flags & 0xF8) |
- (flags & 0x7);
-}
-
-struct ib_mad_agent;
-struct ib_mad_send_wc;
-struct ib_mad_recv_wc;
-
-/**
- * ib_mad_send_handler - callback handler for a sent MAD.
- * @mad_agent: MAD agent that sent the MAD.
- * @mad_send_wc: Send work completion information on the sent MAD.
- */
-typedef void (*ib_mad_send_handler)(struct ib_mad_agent *mad_agent,
- struct ib_mad_send_wc *mad_send_wc);
-
-/**
- * ib_mad_snoop_handler - Callback handler for snooping sent MADs.
- * @mad_agent: MAD agent that snooped the MAD.
- * @send_wr: Work request information on the sent MAD.
- * @mad_send_wc: Work completion information on the sent MAD. Valid
- * only for snooping that occurs on a send completion.
- *
- * Clients snooping MADs should not modify data referenced by the @send_wr
- * or @mad_send_wc.
- */
-typedef void (*ib_mad_snoop_handler)(struct ib_mad_agent *mad_agent,
- struct ib_mad_send_buf *send_buf,
- struct ib_mad_send_wc *mad_send_wc);
-
-/**
- * ib_mad_recv_handler - callback handler for a received MAD.
- * @mad_agent: MAD agent requesting the received MAD.
- * @mad_recv_wc: Received work completion information on the received MAD.
- *
- * MADs received in response to a send request operation will be handed to
- * the user before the send operation completes. All data buffers given
- * to registered agents through this routine are owned by the receiving
- * client, except for snooping agents. Clients snooping MADs should not
- * modify the data referenced by @mad_recv_wc.
- */
-typedef void (*ib_mad_recv_handler)(struct ib_mad_agent *mad_agent,
- struct ib_mad_recv_wc *mad_recv_wc);
-
-/**
- * ib_mad_agent - Used to track MAD registration with the access layer.
- * @device: Reference to device registration is on.
- * @qp: Reference to QP used for sending and receiving MADs.
- * @mr: Memory region for system memory usable for DMA.
- * @recv_handler: Callback handler for a received MAD.
- * @send_handler: Callback handler for a sent MAD.
- * @snoop_handler: Callback handler for snooped sent MADs.
- * @context: User-specified context associated with this registration.
- * @hi_tid: Access layer assigned transaction ID for this client.
- * Unsolicited MADs sent by this client will have the upper 32-bits
- * of their TID set to this value.
- * @port_num: Port number on which QP is registered
- * @rmpp_version: If set, indicates the RMPP version used by this agent.
- */
-struct ib_mad_agent {
- struct ib_device *device;
- struct ib_qp *qp;
- struct ib_mr *mr;
- ib_mad_recv_handler recv_handler;
- ib_mad_send_handler send_handler;
- ib_mad_snoop_handler snoop_handler;
- void *context;
- u32 hi_tid;
- u8 port_num;
- u8 rmpp_version;
-};
-
-/**
- * ib_mad_send_wc - MAD send completion information.
- * @send_buf: Send MAD data buffer associated with the send MAD request.
- * @status: Completion status.
- * @vendor_err: Optional vendor error information returned with a failed
- * request.
- */
-struct ib_mad_send_wc {
- struct ib_mad_send_buf *send_buf;
- enum ib_wc_status status;
- u32 vendor_err;
-};
-
-/**
- * ib_mad_recv_buf - received MAD buffer information.
- * @list: Reference to next data buffer for a received RMPP MAD.
- * @grh: References a data buffer containing the global route header.
- * The data refereced by this buffer is only valid if the GRH is
- * valid.
- * @mad: References the start of the received MAD.
- */
-struct ib_mad_recv_buf {
- struct list_head list;
- struct ib_grh *grh;
- struct ib_mad *mad;
-};
-
-/**
- * ib_mad_recv_wc - received MAD information.
- * @wc: Completion information for the received data.
- * @recv_buf: Specifies the location of the received data buffer(s).
- * @rmpp_list: Specifies a list of RMPP reassembled received MAD buffers.
- * @mad_len: The length of the received MAD, without duplicated headers.
- *
- * For received response, the wr_id contains a pointer to the ib_mad_send_buf
- * for the corresponding send request.
- */
-struct ib_mad_recv_wc {
- struct ib_wc *wc;
- struct ib_mad_recv_buf recv_buf;
- struct list_head rmpp_list;
- int mad_len;
-};
-
-/**
- * ib_mad_reg_req - MAD registration request
- * @mgmt_class: Indicates which management class of MADs should be receive
- * by the caller. This field is only required if the user wishes to
- * receive unsolicited MADs, otherwise it should be 0.
- * @mgmt_class_version: Indicates which version of MADs for the given
- * management class to receive.
- * @oui: Indicates IEEE OUI when mgmt_class is a vendor class
- * in the range from 0x30 to 0x4f. Otherwise not used.
- * @method_mask: The caller will receive unsolicited MADs for any method
- * where @method_mask = 1.
- */
-struct ib_mad_reg_req {
- u8 mgmt_class;
- u8 mgmt_class_version;
- u8 oui[3];
- DECLARE_BITMAP(method_mask, IB_MGMT_MAX_METHODS);
-};
-
-/**
- * ib_register_mad_agent - Register to send/receive MADs.
- * @device: The device to register with.
- * @port_num: The port on the specified device to use.
- * @qp_type: Specifies which QP to access. Must be either
- * IB_QPT_SMI or IB_QPT_GSI.
- * @mad_reg_req: Specifies which unsolicited MADs should be received
- * by the caller. This parameter may be NULL if the caller only
- * wishes to receive solicited responses.
- * @rmpp_version: If set, indicates that the client will send
- * and receive MADs that contain the RMPP header for the given version.
- * If set to 0, indicates that RMPP is not used by this client.
- * @send_handler: The completion callback routine invoked after a send
- * request has completed.
- * @recv_handler: The completion callback routine invoked for a received
- * MAD.
- * @context: User specified context associated with the registration.
- */
-struct ib_mad_agent *ib_register_mad_agent(struct ib_device *device,
- u8 port_num,
- enum ib_qp_type qp_type,
- struct ib_mad_reg_req *mad_reg_req,
- u8 rmpp_version,
- ib_mad_send_handler send_handler,
- ib_mad_recv_handler recv_handler,
- void *context);
-
-enum ib_mad_snoop_flags {
- /*IB_MAD_SNOOP_POSTED_SENDS = 1,*/
- /*IB_MAD_SNOOP_RMPP_SENDS = (1<<1),*/
- IB_MAD_SNOOP_SEND_COMPLETIONS = (1<<2),
- /*IB_MAD_SNOOP_RMPP_SEND_COMPLETIONS = (1<<3),*/
- IB_MAD_SNOOP_RECVS = (1<<4)
- /*IB_MAD_SNOOP_RMPP_RECVS = (1<<5),*/
- /*IB_MAD_SNOOP_REDIRECTED_QPS = (1<<6)*/
-};
-
-/**
- * ib_register_mad_snoop - Register to snoop sent and received MADs.
- * @device: The device to register with.
- * @port_num: The port on the specified device to use.
- * @qp_type: Specifies which QP traffic to snoop. Must be either
- * IB_QPT_SMI or IB_QPT_GSI.
- * @mad_snoop_flags: Specifies information where snooping occurs.
- * @send_handler: The callback routine invoked for a snooped send.
- * @recv_handler: The callback routine invoked for a snooped receive.
- * @context: User specified context associated with the registration.
- */
-struct ib_mad_agent *ib_register_mad_snoop(struct ib_device *device,
- u8 port_num,
- enum ib_qp_type qp_type,
- int mad_snoop_flags,
- ib_mad_snoop_handler snoop_handler,
- ib_mad_recv_handler recv_handler,
- void *context);
-
-/**
- * ib_unregister_mad_agent - Unregisters a client from using MAD services.
- * @mad_agent: Corresponding MAD registration request to deregister.
- *
- * After invoking this routine, MAD services are no longer usable by the
- * client on the associated QP.
- */
-int ib_unregister_mad_agent(struct ib_mad_agent *mad_agent);
-
-/**
- * ib_post_send_mad - Posts MAD(s) to the send queue of the QP associated
- * with the registered client.
- * @send_buf: Specifies the information needed to send the MAD(s).
- * @bad_send_buf: Specifies the MAD on which an error was encountered. This
- * parameter is optional if only a single MAD is posted.
- *
- * Sent MADs are not guaranteed to complete in the order that they were posted.
- *
- * If the MAD requires RMPP, the data buffer should contain a single copy
- * of the common MAD, RMPP, and class specific headers, followed by the class
- * defined data. If the class defined data would not divide evenly into
- * RMPP segments, then space must be allocated at the end of the referenced
- * buffer for any required padding. To indicate the amount of class defined
- * data being transferred, the paylen_newwin field in the RMPP header should
- * be set to the size of the class specific header plus the amount of class
- * defined data being transferred. The paylen_newwin field should be
- * specified in network-byte order.
- */
-int ib_post_send_mad(struct ib_mad_send_buf *send_buf,
- struct ib_mad_send_buf **bad_send_buf);
-
-
-/**
- * ib_free_recv_mad - Returns data buffers used to receive a MAD.
- * @mad_recv_wc: Work completion information for a received MAD.
- *
- * Clients receiving MADs through their ib_mad_recv_handler must call this
- * routine to return the work completion buffers to the access layer.
- */
-void ib_free_recv_mad(struct ib_mad_recv_wc *mad_recv_wc);
-
-/**
- * ib_cancel_mad - Cancels an outstanding send MAD operation.
- * @mad_agent: Specifies the registration associated with sent MAD.
- * @send_buf: Indicates the MAD to cancel.
- *
- * MADs will be returned to the user through the corresponding
- * ib_mad_send_handler.
- */
-void ib_cancel_mad(struct ib_mad_agent *mad_agent,
- struct ib_mad_send_buf *send_buf);
-
-/**
- * ib_modify_mad - Modifies an outstanding send MAD operation.
- * @mad_agent: Specifies the registration associated with sent MAD.
- * @send_buf: Indicates the MAD to modify.
- * @timeout_ms: New timeout value for sent MAD.
- *
- * This call will reset the timeout value for a sent MAD to the specified
- * value.
- */
-int ib_modify_mad(struct ib_mad_agent *mad_agent,
- struct ib_mad_send_buf *send_buf, u32 timeout_ms);
-
-/**
- * ib_redirect_mad_qp - Registers a QP for MAD services.
- * @qp: Reference to a QP that requires MAD services.
- * @rmpp_version: If set, indicates that the client will send
- * and receive MADs that contain the RMPP header for the given version.
- * If set to 0, indicates that RMPP is not used by this client.
- * @send_handler: The completion callback routine invoked after a send
- * request has completed.
- * @recv_handler: The completion callback routine invoked for a received
- * MAD.
- * @context: User specified context associated with the registration.
- *
- * Use of this call allows clients to use MAD services, such as RMPP,
- * on user-owned QPs. After calling this routine, users may send
- * MADs on the specified QP by calling ib_mad_post_send.
- */
-struct ib_mad_agent *ib_redirect_mad_qp(struct ib_qp *qp,
- u8 rmpp_version,
- ib_mad_send_handler send_handler,
- ib_mad_recv_handler recv_handler,
- void *context);
-
-/**
- * ib_process_mad_wc - Processes a work completion associated with a
- * MAD sent or received on a redirected QP.
- * @mad_agent: Specifies the registered MAD service using the redirected QP.
- * @wc: References a work completion associated with a sent or received
- * MAD segment.
- *
- * This routine is used to complete or continue processing on a MAD request.
- * If the work completion is associated with a send operation, calling
- * this routine is required to continue an RMPP transfer or to wait for a
- * corresponding response, if it is a request. If the work completion is
- * associated with a receive operation, calling this routine is required to
- * process an inbound or outbound RMPP transfer, or to match a response MAD
- * with its corresponding request.
- */
-int ib_process_mad_wc(struct ib_mad_agent *mad_agent,
- struct ib_wc *wc);
-
-/**
- * ib_create_send_mad - Allocate and initialize a data buffer and work request
- * for sending a MAD.
- * @mad_agent: Specifies the registered MAD service to associate with the MAD.
- * @remote_qpn: Specifies the QPN of the receiving node.
- * @pkey_index: Specifies which PKey the MAD will be sent using. This field
- * is valid only if the remote_qpn is QP 1.
- * @rmpp_active: Indicates if the send will enable RMPP.
- * @hdr_len: Indicates the size of the data header of the MAD. This length
- * should include the common MAD header, RMPP header, plus any class
- * specific header.
- * @data_len: Indicates the size of any user-transferred data. The call will
- * automatically adjust the allocated buffer size to account for any
- * additional padding that may be necessary.
- * @gfp_mask: GFP mask used for the memory allocation.
- *
- * This routine allocates a MAD for sending. The returned MAD send buffer
- * will reference a data buffer usable for sending a MAD, along
- * with an initialized work request structure. Users may modify the returned
- * MAD data buffer before posting the send.
- *
- * The returned MAD header, class specific headers, and any padding will be
- * cleared. Users are responsible for initializing the common MAD header,
- * any class specific header, and MAD data area.
- * If @rmpp_active is set, the RMPP header will be initialized for sending.
- */
-struct ib_mad_send_buf *ib_create_send_mad(struct ib_mad_agent *mad_agent,
- u32 remote_qpn, u16 pkey_index,
- int rmpp_active,
- int hdr_len, int data_len,
- gfp_t gfp_mask);
-
-/**
- * ib_is_mad_class_rmpp - returns whether given management class
- * supports RMPP.
- * @mgmt_class: management class
- *
- * This routine returns whether the management class supports RMPP.
- */
-int ib_is_mad_class_rmpp(u8 mgmt_class);
-
-/**
- * ib_get_mad_data_offset - returns the data offset for a given
- * management class.
- * @mgmt_class: management class
- *
- * This routine returns the data offset in the MAD for the management
- * class requested.
- */
-int ib_get_mad_data_offset(u8 mgmt_class);
-
-/**
- * ib_get_rmpp_segment - returns the data buffer for a given RMPP segment.
- * @send_buf: Previously allocated send data buffer.
- * @seg_num: number of segment to return
- *
- * This routine returns a pointer to the data buffer of an RMPP MAD.
- * Users must provide synchronization to @send_buf around this call.
- */
-void *ib_get_rmpp_segment(struct ib_mad_send_buf *send_buf, int seg_num);
-
-/**
- * ib_free_send_mad - Returns data buffers used to send a MAD.
- * @send_buf: Previously allocated send data buffer.
- */
-void ib_free_send_mad(struct ib_mad_send_buf *send_buf);
-
-#endif /* IB_MAD_H */
diff --git a/ANDROID_3.4.5/include/rdma/ib_marshall.h b/ANDROID_3.4.5/include/rdma/ib_marshall.h
deleted file mode 100644
index db037205..00000000
--- a/ANDROID_3.4.5/include/rdma/ib_marshall.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 2005-2006 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#if !defined(IB_USER_MARSHALL_H)
-#define IB_USER_MARSHALL_H
-
-#include <rdma/ib_verbs.h>
-#include <rdma/ib_sa.h>
-#include <rdma/ib_user_verbs.h>
-#include <rdma/ib_user_sa.h>
-
-void ib_copy_qp_attr_to_user(struct ib_uverbs_qp_attr *dst,
- struct ib_qp_attr *src);
-
-void ib_copy_ah_attr_to_user(struct ib_uverbs_ah_attr *dst,
- struct ib_ah_attr *src);
-
-void ib_copy_path_rec_to_user(struct ib_user_path_rec *dst,
- struct ib_sa_path_rec *src);
-
-void ib_copy_path_rec_from_user(struct ib_sa_path_rec *dst,
- struct ib_user_path_rec *src);
-
-#endif /* IB_USER_MARSHALL_H */
diff --git a/ANDROID_3.4.5/include/rdma/ib_pack.h b/ANDROID_3.4.5/include/rdma/ib_pack.h
deleted file mode 100644
index b37fe3b1..00000000
--- a/ANDROID_3.4.5/include/rdma/ib_pack.h
+++ /dev/null
@@ -1,267 +0,0 @@
-/*
- * Copyright (c) 2004 Topspin Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#ifndef IB_PACK_H
-#define IB_PACK_H
-
-#include <rdma/ib_verbs.h>
-
-enum {
- IB_LRH_BYTES = 8,
- IB_ETH_BYTES = 14,
- IB_VLAN_BYTES = 4,
- IB_GRH_BYTES = 40,
- IB_BTH_BYTES = 12,
- IB_DETH_BYTES = 8
-};
-
-struct ib_field {
- size_t struct_offset_bytes;
- size_t struct_size_bytes;
- int offset_words;
- int offset_bits;
- int size_bits;
- char *field_name;
-};
-
-#define RESERVED \
- .field_name = "reserved"
-
-/*
- * This macro cleans up the definitions of constants for BTH opcodes.
- * It is used to define constants such as IB_OPCODE_UD_SEND_ONLY,
- * which becomes IB_OPCODE_UD + IB_OPCODE_SEND_ONLY, and this gives
- * the correct value.
- *
- * In short, user code should use the constants defined using the
- * macro rather than worrying about adding together other constants.
-*/
-#define IB_OPCODE(transport, op) \
- IB_OPCODE_ ## transport ## _ ## op = \
- IB_OPCODE_ ## transport + IB_OPCODE_ ## op
-
-enum {
- /* transport types -- just used to define real constants */
- IB_OPCODE_RC = 0x00,
- IB_OPCODE_UC = 0x20,
- IB_OPCODE_RD = 0x40,
- IB_OPCODE_UD = 0x60,
-
- /* operations -- just used to define real constants */
- IB_OPCODE_SEND_FIRST = 0x00,
- IB_OPCODE_SEND_MIDDLE = 0x01,
- IB_OPCODE_SEND_LAST = 0x02,
- IB_OPCODE_SEND_LAST_WITH_IMMEDIATE = 0x03,
- IB_OPCODE_SEND_ONLY = 0x04,
- IB_OPCODE_SEND_ONLY_WITH_IMMEDIATE = 0x05,
- IB_OPCODE_RDMA_WRITE_FIRST = 0x06,
- IB_OPCODE_RDMA_WRITE_MIDDLE = 0x07,
- IB_OPCODE_RDMA_WRITE_LAST = 0x08,
- IB_OPCODE_RDMA_WRITE_LAST_WITH_IMMEDIATE = 0x09,
- IB_OPCODE_RDMA_WRITE_ONLY = 0x0a,
- IB_OPCODE_RDMA_WRITE_ONLY_WITH_IMMEDIATE = 0x0b,
- IB_OPCODE_RDMA_READ_REQUEST = 0x0c,
- IB_OPCODE_RDMA_READ_RESPONSE_FIRST = 0x0d,
- IB_OPCODE_RDMA_READ_RESPONSE_MIDDLE = 0x0e,
- IB_OPCODE_RDMA_READ_RESPONSE_LAST = 0x0f,
- IB_OPCODE_RDMA_READ_RESPONSE_ONLY = 0x10,
- IB_OPCODE_ACKNOWLEDGE = 0x11,
- IB_OPCODE_ATOMIC_ACKNOWLEDGE = 0x12,
- IB_OPCODE_COMPARE_SWAP = 0x13,
- IB_OPCODE_FETCH_ADD = 0x14,
-
- /* real constants follow -- see comment about above IB_OPCODE()
- macro for more details */
-
- /* RC */
- IB_OPCODE(RC, SEND_FIRST),
- IB_OPCODE(RC, SEND_MIDDLE),
- IB_OPCODE(RC, SEND_LAST),
- IB_OPCODE(RC, SEND_LAST_WITH_IMMEDIATE),
- IB_OPCODE(RC, SEND_ONLY),
- IB_OPCODE(RC, SEND_ONLY_WITH_IMMEDIATE),
- IB_OPCODE(RC, RDMA_WRITE_FIRST),
- IB_OPCODE(RC, RDMA_WRITE_MIDDLE),
- IB_OPCODE(RC, RDMA_WRITE_LAST),
- IB_OPCODE(RC, RDMA_WRITE_LAST_WITH_IMMEDIATE),
- IB_OPCODE(RC, RDMA_WRITE_ONLY),
- IB_OPCODE(RC, RDMA_WRITE_ONLY_WITH_IMMEDIATE),
- IB_OPCODE(RC, RDMA_READ_REQUEST),
- IB_OPCODE(RC, RDMA_READ_RESPONSE_FIRST),
- IB_OPCODE(RC, RDMA_READ_RESPONSE_MIDDLE),
- IB_OPCODE(RC, RDMA_READ_RESPONSE_LAST),
- IB_OPCODE(RC, RDMA_READ_RESPONSE_ONLY),
- IB_OPCODE(RC, ACKNOWLEDGE),
- IB_OPCODE(RC, ATOMIC_ACKNOWLEDGE),
- IB_OPCODE(RC, COMPARE_SWAP),
- IB_OPCODE(RC, FETCH_ADD),
-
- /* UC */
- IB_OPCODE(UC, SEND_FIRST),
- IB_OPCODE(UC, SEND_MIDDLE),
- IB_OPCODE(UC, SEND_LAST),
- IB_OPCODE(UC, SEND_LAST_WITH_IMMEDIATE),
- IB_OPCODE(UC, SEND_ONLY),
- IB_OPCODE(UC, SEND_ONLY_WITH_IMMEDIATE),
- IB_OPCODE(UC, RDMA_WRITE_FIRST),
- IB_OPCODE(UC, RDMA_WRITE_MIDDLE),
- IB_OPCODE(UC, RDMA_WRITE_LAST),
- IB_OPCODE(UC, RDMA_WRITE_LAST_WITH_IMMEDIATE),
- IB_OPCODE(UC, RDMA_WRITE_ONLY),
- IB_OPCODE(UC, RDMA_WRITE_ONLY_WITH_IMMEDIATE),
-
- /* RD */
- IB_OPCODE(RD, SEND_FIRST),
- IB_OPCODE(RD, SEND_MIDDLE),
- IB_OPCODE(RD, SEND_LAST),
- IB_OPCODE(RD, SEND_LAST_WITH_IMMEDIATE),
- IB_OPCODE(RD, SEND_ONLY),
- IB_OPCODE(RD, SEND_ONLY_WITH_IMMEDIATE),
- IB_OPCODE(RD, RDMA_WRITE_FIRST),
- IB_OPCODE(RD, RDMA_WRITE_MIDDLE),
- IB_OPCODE(RD, RDMA_WRITE_LAST),
- IB_OPCODE(RD, RDMA_WRITE_LAST_WITH_IMMEDIATE),
- IB_OPCODE(RD, RDMA_WRITE_ONLY),
- IB_OPCODE(RD, RDMA_WRITE_ONLY_WITH_IMMEDIATE),
- IB_OPCODE(RD, RDMA_READ_REQUEST),
- IB_OPCODE(RD, RDMA_READ_RESPONSE_FIRST),
- IB_OPCODE(RD, RDMA_READ_RESPONSE_MIDDLE),
- IB_OPCODE(RD, RDMA_READ_RESPONSE_LAST),
- IB_OPCODE(RD, RDMA_READ_RESPONSE_ONLY),
- IB_OPCODE(RD, ACKNOWLEDGE),
- IB_OPCODE(RD, ATOMIC_ACKNOWLEDGE),
- IB_OPCODE(RD, COMPARE_SWAP),
- IB_OPCODE(RD, FETCH_ADD),
-
- /* UD */
- IB_OPCODE(UD, SEND_ONLY),
- IB_OPCODE(UD, SEND_ONLY_WITH_IMMEDIATE)
-};
-
-enum {
- IB_LNH_RAW = 0,
- IB_LNH_IP = 1,
- IB_LNH_IBA_LOCAL = 2,
- IB_LNH_IBA_GLOBAL = 3
-};
-
-struct ib_unpacked_lrh {
- u8 virtual_lane;
- u8 link_version;
- u8 service_level;
- u8 link_next_header;
- __be16 destination_lid;
- __be16 packet_length;
- __be16 source_lid;
-};
-
-struct ib_unpacked_grh {
- u8 ip_version;
- u8 traffic_class;
- __be32 flow_label;
- __be16 payload_length;
- u8 next_header;
- u8 hop_limit;
- union ib_gid source_gid;
- union ib_gid destination_gid;
-};
-
-struct ib_unpacked_bth {
- u8 opcode;
- u8 solicited_event;
- u8 mig_req;
- u8 pad_count;
- u8 transport_header_version;
- __be16 pkey;
- __be32 destination_qpn;
- u8 ack_req;
- __be32 psn;
-};
-
-struct ib_unpacked_deth {
- __be32 qkey;
- __be32 source_qpn;
-};
-
-struct ib_unpacked_eth {
- u8 dmac_h[4];
- u8 dmac_l[2];
- u8 smac_h[2];
- u8 smac_l[4];
- __be16 type;
-};
-
-struct ib_unpacked_vlan {
- __be16 tag;
- __be16 type;
-};
-
-struct ib_ud_header {
- int lrh_present;
- struct ib_unpacked_lrh lrh;
- int eth_present;
- struct ib_unpacked_eth eth;
- int vlan_present;
- struct ib_unpacked_vlan vlan;
- int grh_present;
- struct ib_unpacked_grh grh;
- struct ib_unpacked_bth bth;
- struct ib_unpacked_deth deth;
- int immediate_present;
- __be32 immediate_data;
-};
-
-void ib_pack(const struct ib_field *desc,
- int desc_len,
- void *structure,
- void *buf);
-
-void ib_unpack(const struct ib_field *desc,
- int desc_len,
- void *buf,
- void *structure);
-
-void ib_ud_header_init(int payload_bytes,
- int lrh_present,
- int eth_present,
- int vlan_present,
- int grh_present,
- int immediate_present,
- struct ib_ud_header *header);
-
-int ib_ud_header_pack(struct ib_ud_header *header,
- void *buf);
-
-int ib_ud_header_unpack(void *buf,
- struct ib_ud_header *header);
-
-#endif /* IB_PACK_H */
diff --git a/ANDROID_3.4.5/include/rdma/ib_pma.h b/ANDROID_3.4.5/include/rdma/ib_pma.h
deleted file mode 100644
index a5889f18..00000000
--- a/ANDROID_3.4.5/include/rdma/ib_pma.h
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Copyright (c) 2006, 2007, 2008, 2009, 2010 QLogic Corporation.
- * All rights reserved.
- * Copyright (c) 2005, 2006 PathScale, Inc. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#if !defined(IB_PMA_H)
-#define IB_PMA_H
-
-#include <rdma/ib_mad.h>
-
-/*
- * PMA class portinfo capability mask bits
- */
-#define IB_PMA_CLASS_CAP_ALLPORTSELECT cpu_to_be16(1 << 8)
-#define IB_PMA_CLASS_CAP_EXT_WIDTH cpu_to_be16(1 << 9)
-#define IB_PMA_CLASS_CAP_XMIT_WAIT cpu_to_be16(1 << 12)
-
-#define IB_PMA_CLASS_PORT_INFO cpu_to_be16(0x0001)
-#define IB_PMA_PORT_SAMPLES_CONTROL cpu_to_be16(0x0010)
-#define IB_PMA_PORT_SAMPLES_RESULT cpu_to_be16(0x0011)
-#define IB_PMA_PORT_COUNTERS cpu_to_be16(0x0012)
-#define IB_PMA_PORT_COUNTERS_EXT cpu_to_be16(0x001D)
-#define IB_PMA_PORT_SAMPLES_RESULT_EXT cpu_to_be16(0x001E)
-
-struct ib_pma_mad {
- struct ib_mad_hdr mad_hdr;
- u8 reserved[40];
- u8 data[192];
-} __packed;
-
-struct ib_pma_portsamplescontrol {
- u8 opcode;
- u8 port_select;
- u8 tick;
- u8 counter_width; /* resv: 7:3, counter width: 2:0 */
- __be32 counter_mask0_9; /* 2, 10 3-bit fields */
- __be16 counter_mask10_14; /* 1, 5 3-bit fields */
- u8 sample_mechanisms;
- u8 sample_status; /* only lower 2 bits */
- __be64 option_mask;
- __be64 vendor_mask;
- __be32 sample_start;
- __be32 sample_interval;
- __be16 tag;
- __be16 counter_select[15];
- __be32 reserved1;
- __be64 samples_only_option_mask;
- __be32 reserved2[28];
-};
-
-struct ib_pma_portsamplesresult {
- __be16 tag;
- __be16 sample_status; /* only lower 2 bits */
- __be32 counter[15];
-};
-
-struct ib_pma_portsamplesresult_ext {
- __be16 tag;
- __be16 sample_status; /* only lower 2 bits */
- __be32 extended_width; /* only upper 2 bits */
- __be64 counter[15];
-};
-
-struct ib_pma_portcounters {
- u8 reserved;
- u8 port_select;
- __be16 counter_select;
- __be16 symbol_error_counter;
- u8 link_error_recovery_counter;
- u8 link_downed_counter;
- __be16 port_rcv_errors;
- __be16 port_rcv_remphys_errors;
- __be16 port_rcv_switch_relay_errors;
- __be16 port_xmit_discards;
- u8 port_xmit_constraint_errors;
- u8 port_rcv_constraint_errors;
- u8 reserved1;
- u8 link_overrun_errors; /* LocalLink: 7:4, BufferOverrun: 3:0 */
- __be16 reserved2;
- __be16 vl15_dropped;
- __be32 port_xmit_data;
- __be32 port_rcv_data;
- __be32 port_xmit_packets;
- __be32 port_rcv_packets;
- __be32 port_xmit_wait;
-} __packed;
-
-
-#define IB_PMA_SEL_SYMBOL_ERROR cpu_to_be16(0x0001)
-#define IB_PMA_SEL_LINK_ERROR_RECOVERY cpu_to_be16(0x0002)
-#define IB_PMA_SEL_LINK_DOWNED cpu_to_be16(0x0004)
-#define IB_PMA_SEL_PORT_RCV_ERRORS cpu_to_be16(0x0008)
-#define IB_PMA_SEL_PORT_RCV_REMPHYS_ERRORS cpu_to_be16(0x0010)
-#define IB_PMA_SEL_PORT_XMIT_DISCARDS cpu_to_be16(0x0040)
-#define IB_PMA_SEL_LOCAL_LINK_INTEGRITY_ERRORS cpu_to_be16(0x0200)
-#define IB_PMA_SEL_EXCESSIVE_BUFFER_OVERRUNS cpu_to_be16(0x0400)
-#define IB_PMA_SEL_PORT_VL15_DROPPED cpu_to_be16(0x0800)
-#define IB_PMA_SEL_PORT_XMIT_DATA cpu_to_be16(0x1000)
-#define IB_PMA_SEL_PORT_RCV_DATA cpu_to_be16(0x2000)
-#define IB_PMA_SEL_PORT_XMIT_PACKETS cpu_to_be16(0x4000)
-#define IB_PMA_SEL_PORT_RCV_PACKETS cpu_to_be16(0x8000)
-
-struct ib_pma_portcounters_ext {
- u8 reserved;
- u8 port_select;
- __be16 counter_select;
- __be32 reserved1;
- __be64 port_xmit_data;
- __be64 port_rcv_data;
- __be64 port_xmit_packets;
- __be64 port_rcv_packets;
- __be64 port_unicast_xmit_packets;
- __be64 port_unicast_rcv_packets;
- __be64 port_multicast_xmit_packets;
- __be64 port_multicast_rcv_packets;
-} __packed;
-
-#define IB_PMA_SELX_PORT_XMIT_DATA cpu_to_be16(0x0001)
-#define IB_PMA_SELX_PORT_RCV_DATA cpu_to_be16(0x0002)
-#define IB_PMA_SELX_PORT_XMIT_PACKETS cpu_to_be16(0x0004)
-#define IB_PMA_SELX_PORT_RCV_PACKETS cpu_to_be16(0x0008)
-#define IB_PMA_SELX_PORT_UNI_XMIT_PACKETS cpu_to_be16(0x0010)
-#define IB_PMA_SELX_PORT_UNI_RCV_PACKETS cpu_to_be16(0x0020)
-#define IB_PMA_SELX_PORT_MULTI_XMIT_PACKETS cpu_to_be16(0x0040)
-#define IB_PMA_SELX_PORT_MULTI_RCV_PACKETS cpu_to_be16(0x0080)
-
-#endif /* IB_PMA_H */
diff --git a/ANDROID_3.4.5/include/rdma/ib_sa.h b/ANDROID_3.4.5/include/rdma/ib_sa.h
deleted file mode 100644
index d44a5638..00000000
--- a/ANDROID_3.4.5/include/rdma/ib_sa.h
+++ /dev/null
@@ -1,388 +0,0 @@
-/*
- * Copyright (c) 2004 Topspin Communications. All rights reserved.
- * Copyright (c) 2005 Voltaire, Inc. All rights reserved.
- * Copyright (c) 2006 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#ifndef IB_SA_H
-#define IB_SA_H
-
-#include <linux/completion.h>
-#include <linux/compiler.h>
-
-#include <linux/atomic.h>
-
-#include <rdma/ib_verbs.h>
-#include <rdma/ib_mad.h>
-
-enum {
- IB_SA_CLASS_VERSION = 2, /* IB spec version 1.1/1.2 */
-
- IB_SA_METHOD_GET_TABLE = 0x12,
- IB_SA_METHOD_GET_TABLE_RESP = 0x92,
- IB_SA_METHOD_DELETE = 0x15,
- IB_SA_METHOD_DELETE_RESP = 0x95,
- IB_SA_METHOD_GET_MULTI = 0x14,
- IB_SA_METHOD_GET_MULTI_RESP = 0x94,
- IB_SA_METHOD_GET_TRACE_TBL = 0x13
-};
-
-enum {
- IB_SA_ATTR_CLASS_PORTINFO = 0x01,
- IB_SA_ATTR_NOTICE = 0x02,
- IB_SA_ATTR_INFORM_INFO = 0x03,
- IB_SA_ATTR_NODE_REC = 0x11,
- IB_SA_ATTR_PORT_INFO_REC = 0x12,
- IB_SA_ATTR_SL2VL_REC = 0x13,
- IB_SA_ATTR_SWITCH_REC = 0x14,
- IB_SA_ATTR_LINEAR_FDB_REC = 0x15,
- IB_SA_ATTR_RANDOM_FDB_REC = 0x16,
- IB_SA_ATTR_MCAST_FDB_REC = 0x17,
- IB_SA_ATTR_SM_INFO_REC = 0x18,
- IB_SA_ATTR_LINK_REC = 0x20,
- IB_SA_ATTR_GUID_INFO_REC = 0x30,
- IB_SA_ATTR_SERVICE_REC = 0x31,
- IB_SA_ATTR_PARTITION_REC = 0x33,
- IB_SA_ATTR_PATH_REC = 0x35,
- IB_SA_ATTR_VL_ARB_REC = 0x36,
- IB_SA_ATTR_MC_MEMBER_REC = 0x38,
- IB_SA_ATTR_TRACE_REC = 0x39,
- IB_SA_ATTR_MULTI_PATH_REC = 0x3a,
- IB_SA_ATTR_SERVICE_ASSOC_REC = 0x3b,
- IB_SA_ATTR_INFORM_INFO_REC = 0xf3
-};
-
-enum ib_sa_selector {
- IB_SA_GT = 0,
- IB_SA_LT = 1,
- IB_SA_EQ = 2,
- /*
- * The meaning of "best" depends on the attribute: for
- * example, for MTU best will return the largest available
- * MTU, while for packet life time, best will return the
- * smallest available life time.
- */
- IB_SA_BEST = 3
-};
-
-/*
- * Structures for SA records are named "struct ib_sa_xxx_rec." No
- * attempt is made to pack structures to match the physical layout of
- * SA records in SA MADs; all packing and unpacking is handled by the
- * SA query code.
- *
- * For a record with structure ib_sa_xxx_rec, the naming convention
- * for the component mask value for field yyy is IB_SA_XXX_REC_YYY (we
- * never use different abbreviations or otherwise change the spelling
- * of xxx/yyy between ib_sa_xxx_rec.yyy and IB_SA_XXX_REC_YYY).
- *
- * Reserved rows are indicated with comments to help maintainability.
- */
-
-#define IB_SA_PATH_REC_SERVICE_ID (IB_SA_COMP_MASK( 0) |\
- IB_SA_COMP_MASK( 1))
-#define IB_SA_PATH_REC_DGID IB_SA_COMP_MASK( 2)
-#define IB_SA_PATH_REC_SGID IB_SA_COMP_MASK( 3)
-#define IB_SA_PATH_REC_DLID IB_SA_COMP_MASK( 4)
-#define IB_SA_PATH_REC_SLID IB_SA_COMP_MASK( 5)
-#define IB_SA_PATH_REC_RAW_TRAFFIC IB_SA_COMP_MASK( 6)
-/* reserved: 7 */
-#define IB_SA_PATH_REC_FLOW_LABEL IB_SA_COMP_MASK( 8)
-#define IB_SA_PATH_REC_HOP_LIMIT IB_SA_COMP_MASK( 9)
-#define IB_SA_PATH_REC_TRAFFIC_CLASS IB_SA_COMP_MASK(10)
-#define IB_SA_PATH_REC_REVERSIBLE IB_SA_COMP_MASK(11)
-#define IB_SA_PATH_REC_NUMB_PATH IB_SA_COMP_MASK(12)
-#define IB_SA_PATH_REC_PKEY IB_SA_COMP_MASK(13)
-#define IB_SA_PATH_REC_QOS_CLASS IB_SA_COMP_MASK(14)
-#define IB_SA_PATH_REC_SL IB_SA_COMP_MASK(15)
-#define IB_SA_PATH_REC_MTU_SELECTOR IB_SA_COMP_MASK(16)
-#define IB_SA_PATH_REC_MTU IB_SA_COMP_MASK(17)
-#define IB_SA_PATH_REC_RATE_SELECTOR IB_SA_COMP_MASK(18)
-#define IB_SA_PATH_REC_RATE IB_SA_COMP_MASK(19)
-#define IB_SA_PATH_REC_PACKET_LIFE_TIME_SELECTOR IB_SA_COMP_MASK(20)
-#define IB_SA_PATH_REC_PACKET_LIFE_TIME IB_SA_COMP_MASK(21)
-#define IB_SA_PATH_REC_PREFERENCE IB_SA_COMP_MASK(22)
-
-struct ib_sa_path_rec {
- __be64 service_id;
- union ib_gid dgid;
- union ib_gid sgid;
- __be16 dlid;
- __be16 slid;
- int raw_traffic;
- /* reserved */
- __be32 flow_label;
- u8 hop_limit;
- u8 traffic_class;
- int reversible;
- u8 numb_path;
- __be16 pkey;
- __be16 qos_class;
- u8 sl;
- u8 mtu_selector;
- u8 mtu;
- u8 rate_selector;
- u8 rate;
- u8 packet_life_time_selector;
- u8 packet_life_time;
- u8 preference;
-};
-
-#define IB_SA_MCMEMBER_REC_MGID IB_SA_COMP_MASK( 0)
-#define IB_SA_MCMEMBER_REC_PORT_GID IB_SA_COMP_MASK( 1)
-#define IB_SA_MCMEMBER_REC_QKEY IB_SA_COMP_MASK( 2)
-#define IB_SA_MCMEMBER_REC_MLID IB_SA_COMP_MASK( 3)
-#define IB_SA_MCMEMBER_REC_MTU_SELECTOR IB_SA_COMP_MASK( 4)
-#define IB_SA_MCMEMBER_REC_MTU IB_SA_COMP_MASK( 5)
-#define IB_SA_MCMEMBER_REC_TRAFFIC_CLASS IB_SA_COMP_MASK( 6)
-#define IB_SA_MCMEMBER_REC_PKEY IB_SA_COMP_MASK( 7)
-#define IB_SA_MCMEMBER_REC_RATE_SELECTOR IB_SA_COMP_MASK( 8)
-#define IB_SA_MCMEMBER_REC_RATE IB_SA_COMP_MASK( 9)
-#define IB_SA_MCMEMBER_REC_PACKET_LIFE_TIME_SELECTOR IB_SA_COMP_MASK(10)
-#define IB_SA_MCMEMBER_REC_PACKET_LIFE_TIME IB_SA_COMP_MASK(11)
-#define IB_SA_MCMEMBER_REC_SL IB_SA_COMP_MASK(12)
-#define IB_SA_MCMEMBER_REC_FLOW_LABEL IB_SA_COMP_MASK(13)
-#define IB_SA_MCMEMBER_REC_HOP_LIMIT IB_SA_COMP_MASK(14)
-#define IB_SA_MCMEMBER_REC_SCOPE IB_SA_COMP_MASK(15)
-#define IB_SA_MCMEMBER_REC_JOIN_STATE IB_SA_COMP_MASK(16)
-#define IB_SA_MCMEMBER_REC_PROXY_JOIN IB_SA_COMP_MASK(17)
-
-struct ib_sa_mcmember_rec {
- union ib_gid mgid;
- union ib_gid port_gid;
- __be32 qkey;
- __be16 mlid;
- u8 mtu_selector;
- u8 mtu;
- u8 traffic_class;
- __be16 pkey;
- u8 rate_selector;
- u8 rate;
- u8 packet_life_time_selector;
- u8 packet_life_time;
- u8 sl;
- __be32 flow_label;
- u8 hop_limit;
- u8 scope;
- u8 join_state;
- int proxy_join;
-};
-
-/* Service Record Component Mask Sec 15.2.5.14 Ver 1.1 */
-#define IB_SA_SERVICE_REC_SERVICE_ID IB_SA_COMP_MASK( 0)
-#define IB_SA_SERVICE_REC_SERVICE_GID IB_SA_COMP_MASK( 1)
-#define IB_SA_SERVICE_REC_SERVICE_PKEY IB_SA_COMP_MASK( 2)
-/* reserved: 3 */
-#define IB_SA_SERVICE_REC_SERVICE_LEASE IB_SA_COMP_MASK( 4)
-#define IB_SA_SERVICE_REC_SERVICE_KEY IB_SA_COMP_MASK( 5)
-#define IB_SA_SERVICE_REC_SERVICE_NAME IB_SA_COMP_MASK( 6)
-#define IB_SA_SERVICE_REC_SERVICE_DATA8_0 IB_SA_COMP_MASK( 7)
-#define IB_SA_SERVICE_REC_SERVICE_DATA8_1 IB_SA_COMP_MASK( 8)
-#define IB_SA_SERVICE_REC_SERVICE_DATA8_2 IB_SA_COMP_MASK( 9)
-#define IB_SA_SERVICE_REC_SERVICE_DATA8_3 IB_SA_COMP_MASK(10)
-#define IB_SA_SERVICE_REC_SERVICE_DATA8_4 IB_SA_COMP_MASK(11)
-#define IB_SA_SERVICE_REC_SERVICE_DATA8_5 IB_SA_COMP_MASK(12)
-#define IB_SA_SERVICE_REC_SERVICE_DATA8_6 IB_SA_COMP_MASK(13)
-#define IB_SA_SERVICE_REC_SERVICE_DATA8_7 IB_SA_COMP_MASK(14)
-#define IB_SA_SERVICE_REC_SERVICE_DATA8_8 IB_SA_COMP_MASK(15)
-#define IB_SA_SERVICE_REC_SERVICE_DATA8_9 IB_SA_COMP_MASK(16)
-#define IB_SA_SERVICE_REC_SERVICE_DATA8_10 IB_SA_COMP_MASK(17)
-#define IB_SA_SERVICE_REC_SERVICE_DATA8_11 IB_SA_COMP_MASK(18)
-#define IB_SA_SERVICE_REC_SERVICE_DATA8_12 IB_SA_COMP_MASK(19)
-#define IB_SA_SERVICE_REC_SERVICE_DATA8_13 IB_SA_COMP_MASK(20)
-#define IB_SA_SERVICE_REC_SERVICE_DATA8_14 IB_SA_COMP_MASK(21)
-#define IB_SA_SERVICE_REC_SERVICE_DATA8_15 IB_SA_COMP_MASK(22)
-#define IB_SA_SERVICE_REC_SERVICE_DATA16_0 IB_SA_COMP_MASK(23)
-#define IB_SA_SERVICE_REC_SERVICE_DATA16_1 IB_SA_COMP_MASK(24)
-#define IB_SA_SERVICE_REC_SERVICE_DATA16_2 IB_SA_COMP_MASK(25)
-#define IB_SA_SERVICE_REC_SERVICE_DATA16_3 IB_SA_COMP_MASK(26)
-#define IB_SA_SERVICE_REC_SERVICE_DATA16_4 IB_SA_COMP_MASK(27)
-#define IB_SA_SERVICE_REC_SERVICE_DATA16_5 IB_SA_COMP_MASK(28)
-#define IB_SA_SERVICE_REC_SERVICE_DATA16_6 IB_SA_COMP_MASK(29)
-#define IB_SA_SERVICE_REC_SERVICE_DATA16_7 IB_SA_COMP_MASK(30)
-#define IB_SA_SERVICE_REC_SERVICE_DATA32_0 IB_SA_COMP_MASK(31)
-#define IB_SA_SERVICE_REC_SERVICE_DATA32_1 IB_SA_COMP_MASK(32)
-#define IB_SA_SERVICE_REC_SERVICE_DATA32_2 IB_SA_COMP_MASK(33)
-#define IB_SA_SERVICE_REC_SERVICE_DATA32_3 IB_SA_COMP_MASK(34)
-#define IB_SA_SERVICE_REC_SERVICE_DATA64_0 IB_SA_COMP_MASK(35)
-#define IB_SA_SERVICE_REC_SERVICE_DATA64_1 IB_SA_COMP_MASK(36)
-
-#define IB_DEFAULT_SERVICE_LEASE 0xFFFFFFFF
-
-struct ib_sa_service_rec {
- u64 id;
- union ib_gid gid;
- __be16 pkey;
- /* reserved */
- u32 lease;
- u8 key[16];
- u8 name[64];
- u8 data8[16];
- u16 data16[8];
- u32 data32[4];
- u64 data64[2];
-};
-
-struct ib_sa_client {
- atomic_t users;
- struct completion comp;
-};
-
-/**
- * ib_sa_register_client - Register an SA client.
- */
-void ib_sa_register_client(struct ib_sa_client *client);
-
-/**
- * ib_sa_unregister_client - Deregister an SA client.
- * @client: Client object to deregister.
- */
-void ib_sa_unregister_client(struct ib_sa_client *client);
-
-struct ib_sa_query;
-
-void ib_sa_cancel_query(int id, struct ib_sa_query *query);
-
-int ib_sa_path_rec_get(struct ib_sa_client *client,
- struct ib_device *device, u8 port_num,
- struct ib_sa_path_rec *rec,
- ib_sa_comp_mask comp_mask,
- int timeout_ms, gfp_t gfp_mask,
- void (*callback)(int status,
- struct ib_sa_path_rec *resp,
- void *context),
- void *context,
- struct ib_sa_query **query);
-
-int ib_sa_service_rec_query(struct ib_sa_client *client,
- struct ib_device *device, u8 port_num,
- u8 method,
- struct ib_sa_service_rec *rec,
- ib_sa_comp_mask comp_mask,
- int timeout_ms, gfp_t gfp_mask,
- void (*callback)(int status,
- struct ib_sa_service_rec *resp,
- void *context),
- void *context,
- struct ib_sa_query **sa_query);
-
-struct ib_sa_multicast {
- struct ib_sa_mcmember_rec rec;
- ib_sa_comp_mask comp_mask;
- int (*callback)(int status,
- struct ib_sa_multicast *multicast);
- void *context;
-};
-
-/**
- * ib_sa_join_multicast - Initiates a join request to the specified multicast
- * group.
- * @client: SA client
- * @device: Device associated with the multicast group.
- * @port_num: Port on the specified device to associate with the multicast
- * group.
- * @rec: SA multicast member record specifying group attributes.
- * @comp_mask: Component mask indicating which group attributes of %rec are
- * valid.
- * @gfp_mask: GFP mask for memory allocations.
- * @callback: User callback invoked once the join operation completes.
- * @context: User specified context stored with the ib_sa_multicast structure.
- *
- * This call initiates a multicast join request with the SA for the specified
- * multicast group. If the join operation is started successfully, it returns
- * an ib_sa_multicast structure that is used to track the multicast operation.
- * Users must free this structure by calling ib_free_multicast, even if the
- * join operation later fails. (The callback status is non-zero.)
- *
- * If the join operation fails; status will be non-zero, with the following
- * failures possible:
- * -ETIMEDOUT: The request timed out.
- * -EIO: An error occurred sending the query.
- * -EINVAL: The MCMemberRecord values differed from the existing group's.
- * -ENETRESET: Indicates that an fatal error has occurred on the multicast
- * group, and the user must rejoin the group to continue using it.
- */
-struct ib_sa_multicast *ib_sa_join_multicast(struct ib_sa_client *client,
- struct ib_device *device, u8 port_num,
- struct ib_sa_mcmember_rec *rec,
- ib_sa_comp_mask comp_mask, gfp_t gfp_mask,
- int (*callback)(int status,
- struct ib_sa_multicast
- *multicast),
- void *context);
-
-/**
- * ib_free_multicast - Frees the multicast tracking structure, and releases
- * any reference on the multicast group.
- * @multicast: Multicast tracking structure allocated by ib_join_multicast.
- *
- * This call blocks until the multicast identifier is destroyed. It may
- * not be called from within the multicast callback; however, returning a non-
- * zero value from the callback will result in destroying the multicast
- * tracking structure.
- */
-void ib_sa_free_multicast(struct ib_sa_multicast *multicast);
-
-/**
- * ib_get_mcmember_rec - Looks up a multicast member record by its MGID and
- * returns it if found.
- * @device: Device associated with the multicast group.
- * @port_num: Port on the specified device to associate with the multicast
- * group.
- * @mgid: MGID of multicast group.
- * @rec: Location to copy SA multicast member record.
- */
-int ib_sa_get_mcmember_rec(struct ib_device *device, u8 port_num,
- union ib_gid *mgid, struct ib_sa_mcmember_rec *rec);
-
-/**
- * ib_init_ah_from_mcmember - Initialize address handle attributes based on
- * an SA multicast member record.
- */
-int ib_init_ah_from_mcmember(struct ib_device *device, u8 port_num,
- struct ib_sa_mcmember_rec *rec,
- struct ib_ah_attr *ah_attr);
-
-/**
- * ib_init_ah_from_path - Initialize address handle attributes based on an SA
- * path record.
- */
-int ib_init_ah_from_path(struct ib_device *device, u8 port_num,
- struct ib_sa_path_rec *rec,
- struct ib_ah_attr *ah_attr);
-
-/**
- * ib_sa_unpack_path - Convert a path record from MAD format to struct
- * ib_sa_path_rec.
- */
-void ib_sa_unpack_path(void *attribute, struct ib_sa_path_rec *rec);
-
-#endif /* IB_SA_H */
diff --git a/ANDROID_3.4.5/include/rdma/ib_smi.h b/ANDROID_3.4.5/include/rdma/ib_smi.h
deleted file mode 100644
index 98b9086d..00000000
--- a/ANDROID_3.4.5/include/rdma/ib_smi.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright (c) 2004 Mellanox Technologies Ltd. All rights reserved.
- * Copyright (c) 2004 Infinicon Corporation. All rights reserved.
- * Copyright (c) 2004 Intel Corporation. All rights reserved.
- * Copyright (c) 2004 Topspin Corporation. All rights reserved.
- * Copyright (c) 2004 Voltaire Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#if !defined(IB_SMI_H)
-#define IB_SMI_H
-
-#include <rdma/ib_mad.h>
-
-#define IB_SMP_DATA_SIZE 64
-#define IB_SMP_MAX_PATH_HOPS 64
-
-struct ib_smp {
- u8 base_version;
- u8 mgmt_class;
- u8 class_version;
- u8 method;
- __be16 status;
- u8 hop_ptr;
- u8 hop_cnt;
- __be64 tid;
- __be16 attr_id;
- __be16 resv;
- __be32 attr_mod;
- __be64 mkey;
- __be16 dr_slid;
- __be16 dr_dlid;
- u8 reserved[28];
- u8 data[IB_SMP_DATA_SIZE];
- u8 initial_path[IB_SMP_MAX_PATH_HOPS];
- u8 return_path[IB_SMP_MAX_PATH_HOPS];
-} __attribute__ ((packed));
-
-#define IB_SMP_DIRECTION cpu_to_be16(0x8000)
-
-/* Subnet management attributes */
-#define IB_SMP_ATTR_NOTICE cpu_to_be16(0x0002)
-#define IB_SMP_ATTR_NODE_DESC cpu_to_be16(0x0010)
-#define IB_SMP_ATTR_NODE_INFO cpu_to_be16(0x0011)
-#define IB_SMP_ATTR_SWITCH_INFO cpu_to_be16(0x0012)
-#define IB_SMP_ATTR_GUID_INFO cpu_to_be16(0x0014)
-#define IB_SMP_ATTR_PORT_INFO cpu_to_be16(0x0015)
-#define IB_SMP_ATTR_PKEY_TABLE cpu_to_be16(0x0016)
-#define IB_SMP_ATTR_SL_TO_VL_TABLE cpu_to_be16(0x0017)
-#define IB_SMP_ATTR_VL_ARB_TABLE cpu_to_be16(0x0018)
-#define IB_SMP_ATTR_LINEAR_FORWARD_TABLE cpu_to_be16(0x0019)
-#define IB_SMP_ATTR_RANDOM_FORWARD_TABLE cpu_to_be16(0x001A)
-#define IB_SMP_ATTR_MCAST_FORWARD_TABLE cpu_to_be16(0x001B)
-#define IB_SMP_ATTR_SM_INFO cpu_to_be16(0x0020)
-#define IB_SMP_ATTR_VENDOR_DIAG cpu_to_be16(0x0030)
-#define IB_SMP_ATTR_LED_INFO cpu_to_be16(0x0031)
-#define IB_SMP_ATTR_VENDOR_MASK cpu_to_be16(0xFF00)
-
-struct ib_port_info {
- __be64 mkey;
- __be64 gid_prefix;
- __be16 lid;
- __be16 sm_lid;
- __be32 cap_mask;
- __be16 diag_code;
- __be16 mkey_lease_period;
- u8 local_port_num;
- u8 link_width_enabled;
- u8 link_width_supported;
- u8 link_width_active;
- u8 linkspeed_portstate; /* 4 bits, 4 bits */
- u8 portphysstate_linkdown; /* 4 bits, 4 bits */
- u8 mkeyprot_resv_lmc; /* 2 bits, 3, 3 */
- u8 linkspeedactive_enabled; /* 4 bits, 4 bits */
- u8 neighbormtu_mastersmsl; /* 4 bits, 4 bits */
- u8 vlcap_inittype; /* 4 bits, 4 bits */
- u8 vl_high_limit;
- u8 vl_arb_high_cap;
- u8 vl_arb_low_cap;
- u8 inittypereply_mtucap; /* 4 bits, 4 bits */
- u8 vlstallcnt_hoqlife; /* 3 bits, 5 bits */
- u8 operationalvl_pei_peo_fpi_fpo; /* 4 bits, 1, 1, 1, 1 */
- __be16 mkey_violations;
- __be16 pkey_violations;
- __be16 qkey_violations;
- u8 guid_cap;
- u8 clientrereg_resv_subnetto; /* 1 bit, 2 bits, 5 */
- u8 resv_resptimevalue; /* 3 bits, 5 bits */
- u8 localphyerrors_overrunerrors; /* 4 bits, 4 bits */
- __be16 max_credit_hint;
- u8 resv;
- u8 link_roundtrip_latency[3];
-};
-
-static inline u8
-ib_get_smp_direction(struct ib_smp *smp)
-{
- return ((smp->status & IB_SMP_DIRECTION) == IB_SMP_DIRECTION);
-}
-
-#endif /* IB_SMI_H */
diff --git a/ANDROID_3.4.5/include/rdma/ib_umem.h b/ANDROID_3.4.5/include/rdma/ib_umem.h
deleted file mode 100644
index 9ee0d2e5..00000000
--- a/ANDROID_3.4.5/include/rdma/ib_umem.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (c) 2007 Cisco Systems. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#ifndef IB_UMEM_H
-#define IB_UMEM_H
-
-#include <linux/list.h>
-#include <linux/scatterlist.h>
-#include <linux/workqueue.h>
-
-struct ib_ucontext;
-
-struct ib_umem {
- struct ib_ucontext *context;
- size_t length;
- int offset;
- int page_size;
- int writable;
- int hugetlb;
- struct list_head chunk_list;
- struct work_struct work;
- struct mm_struct *mm;
- unsigned long diff;
-};
-
-struct ib_umem_chunk {
- struct list_head list;
- int nents;
- int nmap;
- struct scatterlist page_list[0];
-};
-
-#ifdef CONFIG_INFINIBAND_USER_MEM
-
-struct ib_umem *ib_umem_get(struct ib_ucontext *context, unsigned long addr,
- size_t size, int access, int dmasync);
-void ib_umem_release(struct ib_umem *umem);
-int ib_umem_page_count(struct ib_umem *umem);
-
-#else /* CONFIG_INFINIBAND_USER_MEM */
-
-#include <linux/err.h>
-
-static inline struct ib_umem *ib_umem_get(struct ib_ucontext *context,
- unsigned long addr, size_t size,
- int access, int dmasync) {
- return ERR_PTR(-EINVAL);
-}
-static inline void ib_umem_release(struct ib_umem *umem) { }
-static inline int ib_umem_page_count(struct ib_umem *umem) { return 0; }
-
-#endif /* CONFIG_INFINIBAND_USER_MEM */
-
-#endif /* IB_UMEM_H */
diff --git a/ANDROID_3.4.5/include/rdma/ib_user_cm.h b/ANDROID_3.4.5/include/rdma/ib_user_cm.h
deleted file mode 100644
index f79014aa..00000000
--- a/ANDROID_3.4.5/include/rdma/ib_user_cm.h
+++ /dev/null
@@ -1,325 +0,0 @@
-/*
- * Copyright (c) 2005 Topspin Communications. All rights reserved.
- * Copyright (c) 2005 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#ifndef IB_USER_CM_H
-#define IB_USER_CM_H
-
-#include <linux/types.h>
-#include <rdma/ib_user_sa.h>
-
-#define IB_USER_CM_ABI_VERSION 5
-
-enum {
- IB_USER_CM_CMD_CREATE_ID,
- IB_USER_CM_CMD_DESTROY_ID,
- IB_USER_CM_CMD_ATTR_ID,
-
- IB_USER_CM_CMD_LISTEN,
- IB_USER_CM_CMD_NOTIFY,
-
- IB_USER_CM_CMD_SEND_REQ,
- IB_USER_CM_CMD_SEND_REP,
- IB_USER_CM_CMD_SEND_RTU,
- IB_USER_CM_CMD_SEND_DREQ,
- IB_USER_CM_CMD_SEND_DREP,
- IB_USER_CM_CMD_SEND_REJ,
- IB_USER_CM_CMD_SEND_MRA,
- IB_USER_CM_CMD_SEND_LAP,
- IB_USER_CM_CMD_SEND_APR,
- IB_USER_CM_CMD_SEND_SIDR_REQ,
- IB_USER_CM_CMD_SEND_SIDR_REP,
-
- IB_USER_CM_CMD_EVENT,
- IB_USER_CM_CMD_INIT_QP_ATTR,
-};
-/*
- * command ABI structures.
- */
-struct ib_ucm_cmd_hdr {
- __u32 cmd;
- __u16 in;
- __u16 out;
-};
-
-struct ib_ucm_create_id {
- __u64 uid;
- __u64 response;
-};
-
-struct ib_ucm_create_id_resp {
- __u32 id;
-};
-
-struct ib_ucm_destroy_id {
- __u64 response;
- __u32 id;
- __u32 reserved;
-};
-
-struct ib_ucm_destroy_id_resp {
- __u32 events_reported;
-};
-
-struct ib_ucm_attr_id {
- __u64 response;
- __u32 id;
- __u32 reserved;
-};
-
-struct ib_ucm_attr_id_resp {
- __be64 service_id;
- __be64 service_mask;
- __be32 local_id;
- __be32 remote_id;
-};
-
-struct ib_ucm_init_qp_attr {
- __u64 response;
- __u32 id;
- __u32 qp_state;
-};
-
-struct ib_ucm_listen {
- __be64 service_id;
- __be64 service_mask;
- __u32 id;
- __u32 reserved;
-};
-
-struct ib_ucm_notify {
- __u32 id;
- __u32 event;
-};
-
-struct ib_ucm_private_data {
- __u64 data;
- __u32 id;
- __u8 len;
- __u8 reserved[3];
-};
-
-struct ib_ucm_req {
- __u32 id;
- __u32 qpn;
- __u32 qp_type;
- __u32 psn;
- __be64 sid;
- __u64 data;
- __u64 primary_path;
- __u64 alternate_path;
- __u8 len;
- __u8 peer_to_peer;
- __u8 responder_resources;
- __u8 initiator_depth;
- __u8 remote_cm_response_timeout;
- __u8 flow_control;
- __u8 local_cm_response_timeout;
- __u8 retry_count;
- __u8 rnr_retry_count;
- __u8 max_cm_retries;
- __u8 srq;
- __u8 reserved[5];
-};
-
-struct ib_ucm_rep {
- __u64 uid;
- __u64 data;
- __u32 id;
- __u32 qpn;
- __u32 psn;
- __u8 len;
- __u8 responder_resources;
- __u8 initiator_depth;
- __u8 target_ack_delay;
- __u8 failover_accepted;
- __u8 flow_control;
- __u8 rnr_retry_count;
- __u8 srq;
- __u8 reserved[4];
-};
-
-struct ib_ucm_info {
- __u32 id;
- __u32 status;
- __u64 info;
- __u64 data;
- __u8 info_len;
- __u8 data_len;
- __u8 reserved[6];
-};
-
-struct ib_ucm_mra {
- __u64 data;
- __u32 id;
- __u8 len;
- __u8 timeout;
- __u8 reserved[2];
-};
-
-struct ib_ucm_lap {
- __u64 path;
- __u64 data;
- __u32 id;
- __u8 len;
- __u8 reserved[3];
-};
-
-struct ib_ucm_sidr_req {
- __u32 id;
- __u32 timeout;
- __be64 sid;
- __u64 data;
- __u64 path;
- __u16 reserved_pkey;
- __u8 len;
- __u8 max_cm_retries;
- __u8 reserved[4];
-};
-
-struct ib_ucm_sidr_rep {
- __u32 id;
- __u32 qpn;
- __u32 qkey;
- __u32 status;
- __u64 info;
- __u64 data;
- __u8 info_len;
- __u8 data_len;
- __u8 reserved[6];
-};
-/*
- * event notification ABI structures.
- */
-struct ib_ucm_event_get {
- __u64 response;
- __u64 data;
- __u64 info;
- __u8 data_len;
- __u8 info_len;
- __u8 reserved[6];
-};
-
-struct ib_ucm_req_event_resp {
- struct ib_user_path_rec primary_path;
- struct ib_user_path_rec alternate_path;
- __be64 remote_ca_guid;
- __u32 remote_qkey;
- __u32 remote_qpn;
- __u32 qp_type;
- __u32 starting_psn;
- __u8 responder_resources;
- __u8 initiator_depth;
- __u8 local_cm_response_timeout;
- __u8 flow_control;
- __u8 remote_cm_response_timeout;
- __u8 retry_count;
- __u8 rnr_retry_count;
- __u8 srq;
- __u8 port;
- __u8 reserved[7];
-};
-
-struct ib_ucm_rep_event_resp {
- __be64 remote_ca_guid;
- __u32 remote_qkey;
- __u32 remote_qpn;
- __u32 starting_psn;
- __u8 responder_resources;
- __u8 initiator_depth;
- __u8 target_ack_delay;
- __u8 failover_accepted;
- __u8 flow_control;
- __u8 rnr_retry_count;
- __u8 srq;
- __u8 reserved[5];
-};
-
-struct ib_ucm_rej_event_resp {
- __u32 reason;
- /* ari in ib_ucm_event_get info field. */
-};
-
-struct ib_ucm_mra_event_resp {
- __u8 timeout;
- __u8 reserved[3];
-};
-
-struct ib_ucm_lap_event_resp {
- struct ib_user_path_rec path;
-};
-
-struct ib_ucm_apr_event_resp {
- __u32 status;
- /* apr info in ib_ucm_event_get info field. */
-};
-
-struct ib_ucm_sidr_req_event_resp {
- __u16 pkey;
- __u8 port;
- __u8 reserved;
-};
-
-struct ib_ucm_sidr_rep_event_resp {
- __u32 status;
- __u32 qkey;
- __u32 qpn;
- /* info in ib_ucm_event_get info field. */
-};
-
-#define IB_UCM_PRES_DATA 0x01
-#define IB_UCM_PRES_INFO 0x02
-#define IB_UCM_PRES_PRIMARY 0x04
-#define IB_UCM_PRES_ALTERNATE 0x08
-
-struct ib_ucm_event_resp {
- __u64 uid;
- __u32 id;
- __u32 event;
- __u32 present;
- __u32 reserved;
- union {
- struct ib_ucm_req_event_resp req_resp;
- struct ib_ucm_rep_event_resp rep_resp;
- struct ib_ucm_rej_event_resp rej_resp;
- struct ib_ucm_mra_event_resp mra_resp;
- struct ib_ucm_lap_event_resp lap_resp;
- struct ib_ucm_apr_event_resp apr_resp;
-
- struct ib_ucm_sidr_req_event_resp sidr_req_resp;
- struct ib_ucm_sidr_rep_event_resp sidr_rep_resp;
-
- __u32 send_status;
- } u;
-};
-
-#endif /* IB_USER_CM_H */
diff --git a/ANDROID_3.4.5/include/rdma/ib_user_mad.h b/ANDROID_3.4.5/include/rdma/ib_user_mad.h
deleted file mode 100644
index d6fce1cb..00000000
--- a/ANDROID_3.4.5/include/rdma/ib_user_mad.h
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * Copyright (c) 2004 Topspin Communications. All rights reserved.
- * Copyright (c) 2005 Voltaire, Inc. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#ifndef IB_USER_MAD_H
-#define IB_USER_MAD_H
-
-#include <linux/types.h>
-#include <linux/ioctl.h>
-
-/*
- * Increment this value if any changes that break userspace ABI
- * compatibility are made.
- */
-#define IB_USER_MAD_ABI_VERSION 5
-
-/*
- * Make sure that all structs defined in this file remain laid out so
- * that they pack the same way on 32-bit and 64-bit architectures (to
- * avoid incompatibility between 32-bit userspace and 64-bit kernels).
- */
-
-/**
- * ib_user_mad_hdr_old - Old version of MAD packet header without pkey_index
- * @id - ID of agent MAD received with/to be sent with
- * @status - 0 on successful receive, ETIMEDOUT if no response
- * received (transaction ID in data[] will be set to TID of original
- * request) (ignored on send)
- * @timeout_ms - Milliseconds to wait for response (unset on receive)
- * @retries - Number of automatic retries to attempt
- * @qpn - Remote QP number received from/to be sent to
- * @qkey - Remote Q_Key to be sent with (unset on receive)
- * @lid - Remote lid received from/to be sent to
- * @sl - Service level received with/to be sent with
- * @path_bits - Local path bits received with/to be sent with
- * @grh_present - If set, GRH was received/should be sent
- * @gid_index - Local GID index to send with (unset on receive)
- * @hop_limit - Hop limit in GRH
- * @traffic_class - Traffic class in GRH
- * @gid - Remote GID in GRH
- * @flow_label - Flow label in GRH
- */
-struct ib_user_mad_hdr_old {
- __u32 id;
- __u32 status;
- __u32 timeout_ms;
- __u32 retries;
- __u32 length;
- __be32 qpn;
- __be32 qkey;
- __be16 lid;
- __u8 sl;
- __u8 path_bits;
- __u8 grh_present;
- __u8 gid_index;
- __u8 hop_limit;
- __u8 traffic_class;
- __u8 gid[16];
- __be32 flow_label;
-};
-
-/**
- * ib_user_mad_hdr - MAD packet header
- * This layout allows specifying/receiving the P_Key index. To use
- * this capability, an application must call the
- * IB_USER_MAD_ENABLE_PKEY ioctl on the user MAD file handle before
- * any other actions with the file handle.
- * @id - ID of agent MAD received with/to be sent with
- * @status - 0 on successful receive, ETIMEDOUT if no response
- * received (transaction ID in data[] will be set to TID of original
- * request) (ignored on send)
- * @timeout_ms - Milliseconds to wait for response (unset on receive)
- * @retries - Number of automatic retries to attempt
- * @qpn - Remote QP number received from/to be sent to
- * @qkey - Remote Q_Key to be sent with (unset on receive)
- * @lid - Remote lid received from/to be sent to
- * @sl - Service level received with/to be sent with
- * @path_bits - Local path bits received with/to be sent with
- * @grh_present - If set, GRH was received/should be sent
- * @gid_index - Local GID index to send with (unset on receive)
- * @hop_limit - Hop limit in GRH
- * @traffic_class - Traffic class in GRH
- * @gid - Remote GID in GRH
- * @flow_label - Flow label in GRH
- * @pkey_index - P_Key index
- */
-struct ib_user_mad_hdr {
- __u32 id;
- __u32 status;
- __u32 timeout_ms;
- __u32 retries;
- __u32 length;
- __be32 qpn;
- __be32 qkey;
- __be16 lid;
- __u8 sl;
- __u8 path_bits;
- __u8 grh_present;
- __u8 gid_index;
- __u8 hop_limit;
- __u8 traffic_class;
- __u8 gid[16];
- __be32 flow_label;
- __u16 pkey_index;
- __u8 reserved[6];
-};
-
-/**
- * ib_user_mad - MAD packet
- * @hdr - MAD packet header
- * @data - Contents of MAD
- *
- */
-struct ib_user_mad {
- struct ib_user_mad_hdr hdr;
- __u64 data[0];
-};
-
-/*
- * Earlier versions of this interface definition declared the
- * method_mask[] member as an array of __u32 but treated it as a
- * bitmap made up of longs in the kernel. This ambiguity meant that
- * 32-bit big-endian applications that can run on both 32-bit and
- * 64-bit kernels had no consistent ABI to rely on, and 64-bit
- * big-endian applications that treated method_mask as being made up
- * of 32-bit words would have their bitmap misinterpreted.
- *
- * To clear up this confusion, we change the declaration of
- * method_mask[] to use unsigned long and handle the conversion from
- * 32-bit userspace to 64-bit kernel for big-endian systems in the
- * compat_ioctl method. Unfortunately, to keep the structure layout
- * the same, we need the method_mask[] array to be aligned only to 4
- * bytes even when long is 64 bits, which forces us into this ugly
- * typedef.
- */
-typedef unsigned long __attribute__((aligned(4))) packed_ulong;
-#define IB_USER_MAD_LONGS_PER_METHOD_MASK (128 / (8 * sizeof (long)))
-
-/**
- * ib_user_mad_reg_req - MAD registration request
- * @id - Set by the kernel; used to identify agent in future requests.
- * @qpn - Queue pair number; must be 0 or 1.
- * @method_mask - The caller will receive unsolicited MADs for any method
- * where @method_mask = 1.
- * @mgmt_class - Indicates which management class of MADs should be receive
- * by the caller. This field is only required if the user wishes to
- * receive unsolicited MADs, otherwise it should be 0.
- * @mgmt_class_version - Indicates which version of MADs for the given
- * management class to receive.
- * @oui: Indicates IEEE OUI when mgmt_class is a vendor class
- * in the range from 0x30 to 0x4f. Otherwise not used.
- * @rmpp_version: If set, indicates the RMPP version used.
- *
- */
-struct ib_user_mad_reg_req {
- __u32 id;
- packed_ulong method_mask[IB_USER_MAD_LONGS_PER_METHOD_MASK];
- __u8 qpn;
- __u8 mgmt_class;
- __u8 mgmt_class_version;
- __u8 oui[3];
- __u8 rmpp_version;
-};
-
-#define IB_IOCTL_MAGIC 0x1b
-
-#define IB_USER_MAD_REGISTER_AGENT _IOWR(IB_IOCTL_MAGIC, 1, \
- struct ib_user_mad_reg_req)
-
-#define IB_USER_MAD_UNREGISTER_AGENT _IOW(IB_IOCTL_MAGIC, 2, __u32)
-
-#define IB_USER_MAD_ENABLE_PKEY _IO(IB_IOCTL_MAGIC, 3)
-
-#endif /* IB_USER_MAD_H */
diff --git a/ANDROID_3.4.5/include/rdma/ib_user_sa.h b/ANDROID_3.4.5/include/rdma/ib_user_sa.h
deleted file mode 100644
index cfc7c9ba..00000000
--- a/ANDROID_3.4.5/include/rdma/ib_user_sa.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (c) 2005 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#ifndef IB_USER_SA_H
-#define IB_USER_SA_H
-
-#include <linux/types.h>
-
-enum {
- IB_PATH_GMP = 1,
- IB_PATH_PRIMARY = (1<<1),
- IB_PATH_ALTERNATE = (1<<2),
- IB_PATH_OUTBOUND = (1<<3),
- IB_PATH_INBOUND = (1<<4),
- IB_PATH_INBOUND_REVERSE = (1<<5),
- IB_PATH_BIDIRECTIONAL = IB_PATH_OUTBOUND | IB_PATH_INBOUND_REVERSE
-};
-
-struct ib_path_rec_data {
- __u32 flags;
- __u32 reserved;
- __u32 path_rec[16];
-};
-
-struct ib_user_path_rec {
- __u8 dgid[16];
- __u8 sgid[16];
- __be16 dlid;
- __be16 slid;
- __u32 raw_traffic;
- __be32 flow_label;
- __u32 reversible;
- __u32 mtu;
- __be16 pkey;
- __u8 hop_limit;
- __u8 traffic_class;
- __u8 numb_path;
- __u8 sl;
- __u8 mtu_selector;
- __u8 rate_selector;
- __u8 rate;
- __u8 packet_life_time_selector;
- __u8 packet_life_time;
- __u8 preference;
-};
-
-#endif /* IB_USER_SA_H */
diff --git a/ANDROID_3.4.5/include/rdma/ib_user_verbs.h b/ANDROID_3.4.5/include/rdma/ib_user_verbs.h
deleted file mode 100644
index 81aba3a7..00000000
--- a/ANDROID_3.4.5/include/rdma/ib_user_verbs.h
+++ /dev/null
@@ -1,734 +0,0 @@
-/*
- * Copyright (c) 2005 Topspin Communications. All rights reserved.
- * Copyright (c) 2005, 2006 Cisco Systems. All rights reserved.
- * Copyright (c) 2005 PathScale, Inc. All rights reserved.
- * Copyright (c) 2006 Mellanox Technologies. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#ifndef IB_USER_VERBS_H
-#define IB_USER_VERBS_H
-
-#include <linux/types.h>
-
-/*
- * Increment this value if any changes that break userspace ABI
- * compatibility are made.
- */
-#define IB_USER_VERBS_ABI_VERSION 6
-
-enum {
- IB_USER_VERBS_CMD_GET_CONTEXT,
- IB_USER_VERBS_CMD_QUERY_DEVICE,
- IB_USER_VERBS_CMD_QUERY_PORT,
- IB_USER_VERBS_CMD_ALLOC_PD,
- IB_USER_VERBS_CMD_DEALLOC_PD,
- IB_USER_VERBS_CMD_CREATE_AH,
- IB_USER_VERBS_CMD_MODIFY_AH,
- IB_USER_VERBS_CMD_QUERY_AH,
- IB_USER_VERBS_CMD_DESTROY_AH,
- IB_USER_VERBS_CMD_REG_MR,
- IB_USER_VERBS_CMD_REG_SMR,
- IB_USER_VERBS_CMD_REREG_MR,
- IB_USER_VERBS_CMD_QUERY_MR,
- IB_USER_VERBS_CMD_DEREG_MR,
- IB_USER_VERBS_CMD_ALLOC_MW,
- IB_USER_VERBS_CMD_BIND_MW,
- IB_USER_VERBS_CMD_DEALLOC_MW,
- IB_USER_VERBS_CMD_CREATE_COMP_CHANNEL,
- IB_USER_VERBS_CMD_CREATE_CQ,
- IB_USER_VERBS_CMD_RESIZE_CQ,
- IB_USER_VERBS_CMD_DESTROY_CQ,
- IB_USER_VERBS_CMD_POLL_CQ,
- IB_USER_VERBS_CMD_PEEK_CQ,
- IB_USER_VERBS_CMD_REQ_NOTIFY_CQ,
- IB_USER_VERBS_CMD_CREATE_QP,
- IB_USER_VERBS_CMD_QUERY_QP,
- IB_USER_VERBS_CMD_MODIFY_QP,
- IB_USER_VERBS_CMD_DESTROY_QP,
- IB_USER_VERBS_CMD_POST_SEND,
- IB_USER_VERBS_CMD_POST_RECV,
- IB_USER_VERBS_CMD_ATTACH_MCAST,
- IB_USER_VERBS_CMD_DETACH_MCAST,
- IB_USER_VERBS_CMD_CREATE_SRQ,
- IB_USER_VERBS_CMD_MODIFY_SRQ,
- IB_USER_VERBS_CMD_QUERY_SRQ,
- IB_USER_VERBS_CMD_DESTROY_SRQ,
- IB_USER_VERBS_CMD_POST_SRQ_RECV,
- IB_USER_VERBS_CMD_OPEN_XRCD,
- IB_USER_VERBS_CMD_CLOSE_XRCD,
- IB_USER_VERBS_CMD_CREATE_XSRQ,
- IB_USER_VERBS_CMD_OPEN_QP
-};
-
-/*
- * Make sure that all structs defined in this file remain laid out so
- * that they pack the same way on 32-bit and 64-bit architectures (to
- * avoid incompatibility between 32-bit userspace and 64-bit kernels).
- * Specifically:
- * - Do not use pointer types -- pass pointers in __u64 instead.
- * - Make sure that any structure larger than 4 bytes is padded to a
- * multiple of 8 bytes. Otherwise the structure size will be
- * different between 32-bit and 64-bit architectures.
- */
-
-struct ib_uverbs_async_event_desc {
- __u64 element;
- __u32 event_type; /* enum ib_event_type */
- __u32 reserved;
-};
-
-struct ib_uverbs_comp_event_desc {
- __u64 cq_handle;
-};
-
-/*
- * All commands from userspace should start with a __u32 command field
- * followed by __u16 in_words and out_words fields (which give the
- * length of the command block and response buffer if any in 32-bit
- * words). The kernel driver will read these fields first and read
- * the rest of the command struct based on these value.
- */
-
-struct ib_uverbs_cmd_hdr {
- __u32 command;
- __u16 in_words;
- __u16 out_words;
-};
-
-struct ib_uverbs_get_context {
- __u64 response;
- __u64 driver_data[0];
-};
-
-struct ib_uverbs_get_context_resp {
- __u32 async_fd;
- __u32 num_comp_vectors;
-};
-
-struct ib_uverbs_query_device {
- __u64 response;
- __u64 driver_data[0];
-};
-
-struct ib_uverbs_query_device_resp {
- __u64 fw_ver;
- __be64 node_guid;
- __be64 sys_image_guid;
- __u64 max_mr_size;
- __u64 page_size_cap;
- __u32 vendor_id;
- __u32 vendor_part_id;
- __u32 hw_ver;
- __u32 max_qp;
- __u32 max_qp_wr;
- __u32 device_cap_flags;
- __u32 max_sge;
- __u32 max_sge_rd;
- __u32 max_cq;
- __u32 max_cqe;
- __u32 max_mr;
- __u32 max_pd;
- __u32 max_qp_rd_atom;
- __u32 max_ee_rd_atom;
- __u32 max_res_rd_atom;
- __u32 max_qp_init_rd_atom;
- __u32 max_ee_init_rd_atom;
- __u32 atomic_cap;
- __u32 max_ee;
- __u32 max_rdd;
- __u32 max_mw;
- __u32 max_raw_ipv6_qp;
- __u32 max_raw_ethy_qp;
- __u32 max_mcast_grp;
- __u32 max_mcast_qp_attach;
- __u32 max_total_mcast_qp_attach;
- __u32 max_ah;
- __u32 max_fmr;
- __u32 max_map_per_fmr;
- __u32 max_srq;
- __u32 max_srq_wr;
- __u32 max_srq_sge;
- __u16 max_pkeys;
- __u8 local_ca_ack_delay;
- __u8 phys_port_cnt;
- __u8 reserved[4];
-};
-
-struct ib_uverbs_query_port {
- __u64 response;
- __u8 port_num;
- __u8 reserved[7];
- __u64 driver_data[0];
-};
-
-struct ib_uverbs_query_port_resp {
- __u32 port_cap_flags;
- __u32 max_msg_sz;
- __u32 bad_pkey_cntr;
- __u32 qkey_viol_cntr;
- __u32 gid_tbl_len;
- __u16 pkey_tbl_len;
- __u16 lid;
- __u16 sm_lid;
- __u8 state;
- __u8 max_mtu;
- __u8 active_mtu;
- __u8 lmc;
- __u8 max_vl_num;
- __u8 sm_sl;
- __u8 subnet_timeout;
- __u8 init_type_reply;
- __u8 active_width;
- __u8 active_speed;
- __u8 phys_state;
- __u8 link_layer;
- __u8 reserved[2];
-};
-
-struct ib_uverbs_alloc_pd {
- __u64 response;
- __u64 driver_data[0];
-};
-
-struct ib_uverbs_alloc_pd_resp {
- __u32 pd_handle;
-};
-
-struct ib_uverbs_dealloc_pd {
- __u32 pd_handle;
-};
-
-struct ib_uverbs_open_xrcd {
- __u64 response;
- __u32 fd;
- __u32 oflags;
- __u64 driver_data[0];
-};
-
-struct ib_uverbs_open_xrcd_resp {
- __u32 xrcd_handle;
-};
-
-struct ib_uverbs_close_xrcd {
- __u32 xrcd_handle;
-};
-
-struct ib_uverbs_reg_mr {
- __u64 response;
- __u64 start;
- __u64 length;
- __u64 hca_va;
- __u32 pd_handle;
- __u32 access_flags;
- __u64 driver_data[0];
-};
-
-struct ib_uverbs_reg_mr_resp {
- __u32 mr_handle;
- __u32 lkey;
- __u32 rkey;
-};
-
-struct ib_uverbs_dereg_mr {
- __u32 mr_handle;
-};
-
-struct ib_uverbs_create_comp_channel {
- __u64 response;
-};
-
-struct ib_uverbs_create_comp_channel_resp {
- __u32 fd;
-};
-
-struct ib_uverbs_create_cq {
- __u64 response;
- __u64 user_handle;
- __u32 cqe;
- __u32 comp_vector;
- __s32 comp_channel;
- __u32 reserved;
- __u64 driver_data[0];
-};
-
-struct ib_uverbs_create_cq_resp {
- __u32 cq_handle;
- __u32 cqe;
-};
-
-struct ib_uverbs_resize_cq {
- __u64 response;
- __u32 cq_handle;
- __u32 cqe;
- __u64 driver_data[0];
-};
-
-struct ib_uverbs_resize_cq_resp {
- __u32 cqe;
- __u32 reserved;
- __u64 driver_data[0];
-};
-
-struct ib_uverbs_poll_cq {
- __u64 response;
- __u32 cq_handle;
- __u32 ne;
-};
-
-struct ib_uverbs_wc {
- __u64 wr_id;
- __u32 status;
- __u32 opcode;
- __u32 vendor_err;
- __u32 byte_len;
- union {
- __u32 imm_data;
- __u32 invalidate_rkey;
- } ex;
- __u32 qp_num;
- __u32 src_qp;
- __u32 wc_flags;
- __u16 pkey_index;
- __u16 slid;
- __u8 sl;
- __u8 dlid_path_bits;
- __u8 port_num;
- __u8 reserved;
-};
-
-struct ib_uverbs_poll_cq_resp {
- __u32 count;
- __u32 reserved;
- struct ib_uverbs_wc wc[0];
-};
-
-struct ib_uverbs_req_notify_cq {
- __u32 cq_handle;
- __u32 solicited_only;
-};
-
-struct ib_uverbs_destroy_cq {
- __u64 response;
- __u32 cq_handle;
- __u32 reserved;
-};
-
-struct ib_uverbs_destroy_cq_resp {
- __u32 comp_events_reported;
- __u32 async_events_reported;
-};
-
-struct ib_uverbs_global_route {
- __u8 dgid[16];
- __u32 flow_label;
- __u8 sgid_index;
- __u8 hop_limit;
- __u8 traffic_class;
- __u8 reserved;
-};
-
-struct ib_uverbs_ah_attr {
- struct ib_uverbs_global_route grh;
- __u16 dlid;
- __u8 sl;
- __u8 src_path_bits;
- __u8 static_rate;
- __u8 is_global;
- __u8 port_num;
- __u8 reserved;
-};
-
-struct ib_uverbs_qp_attr {
- __u32 qp_attr_mask;
- __u32 qp_state;
- __u32 cur_qp_state;
- __u32 path_mtu;
- __u32 path_mig_state;
- __u32 qkey;
- __u32 rq_psn;
- __u32 sq_psn;
- __u32 dest_qp_num;
- __u32 qp_access_flags;
-
- struct ib_uverbs_ah_attr ah_attr;
- struct ib_uverbs_ah_attr alt_ah_attr;
-
- /* ib_qp_cap */
- __u32 max_send_wr;
- __u32 max_recv_wr;
- __u32 max_send_sge;
- __u32 max_recv_sge;
- __u32 max_inline_data;
-
- __u16 pkey_index;
- __u16 alt_pkey_index;
- __u8 en_sqd_async_notify;
- __u8 sq_draining;
- __u8 max_rd_atomic;
- __u8 max_dest_rd_atomic;
- __u8 min_rnr_timer;
- __u8 port_num;
- __u8 timeout;
- __u8 retry_cnt;
- __u8 rnr_retry;
- __u8 alt_port_num;
- __u8 alt_timeout;
- __u8 reserved[5];
-};
-
-struct ib_uverbs_create_qp {
- __u64 response;
- __u64 user_handle;
- __u32 pd_handle;
- __u32 send_cq_handle;
- __u32 recv_cq_handle;
- __u32 srq_handle;
- __u32 max_send_wr;
- __u32 max_recv_wr;
- __u32 max_send_sge;
- __u32 max_recv_sge;
- __u32 max_inline_data;
- __u8 sq_sig_all;
- __u8 qp_type;
- __u8 is_srq;
- __u8 reserved;
- __u64 driver_data[0];
-};
-
-struct ib_uverbs_open_qp {
- __u64 response;
- __u64 user_handle;
- __u32 pd_handle;
- __u32 qpn;
- __u8 qp_type;
- __u8 reserved[7];
- __u64 driver_data[0];
-};
-
-/* also used for open response */
-struct ib_uverbs_create_qp_resp {
- __u32 qp_handle;
- __u32 qpn;
- __u32 max_send_wr;
- __u32 max_recv_wr;
- __u32 max_send_sge;
- __u32 max_recv_sge;
- __u32 max_inline_data;
- __u32 reserved;
-};
-
-/*
- * This struct needs to remain a multiple of 8 bytes to keep the
- * alignment of the modify QP parameters.
- */
-struct ib_uverbs_qp_dest {
- __u8 dgid[16];
- __u32 flow_label;
- __u16 dlid;
- __u16 reserved;
- __u8 sgid_index;
- __u8 hop_limit;
- __u8 traffic_class;
- __u8 sl;
- __u8 src_path_bits;
- __u8 static_rate;
- __u8 is_global;
- __u8 port_num;
-};
-
-struct ib_uverbs_query_qp {
- __u64 response;
- __u32 qp_handle;
- __u32 attr_mask;
- __u64 driver_data[0];
-};
-
-struct ib_uverbs_query_qp_resp {
- struct ib_uverbs_qp_dest dest;
- struct ib_uverbs_qp_dest alt_dest;
- __u32 max_send_wr;
- __u32 max_recv_wr;
- __u32 max_send_sge;
- __u32 max_recv_sge;
- __u32 max_inline_data;
- __u32 qkey;
- __u32 rq_psn;
- __u32 sq_psn;
- __u32 dest_qp_num;
- __u32 qp_access_flags;
- __u16 pkey_index;
- __u16 alt_pkey_index;
- __u8 qp_state;
- __u8 cur_qp_state;
- __u8 path_mtu;
- __u8 path_mig_state;
- __u8 sq_draining;
- __u8 max_rd_atomic;
- __u8 max_dest_rd_atomic;
- __u8 min_rnr_timer;
- __u8 port_num;
- __u8 timeout;
- __u8 retry_cnt;
- __u8 rnr_retry;
- __u8 alt_port_num;
- __u8 alt_timeout;
- __u8 sq_sig_all;
- __u8 reserved[5];
- __u64 driver_data[0];
-};
-
-struct ib_uverbs_modify_qp {
- struct ib_uverbs_qp_dest dest;
- struct ib_uverbs_qp_dest alt_dest;
- __u32 qp_handle;
- __u32 attr_mask;
- __u32 qkey;
- __u32 rq_psn;
- __u32 sq_psn;
- __u32 dest_qp_num;
- __u32 qp_access_flags;
- __u16 pkey_index;
- __u16 alt_pkey_index;
- __u8 qp_state;
- __u8 cur_qp_state;
- __u8 path_mtu;
- __u8 path_mig_state;
- __u8 en_sqd_async_notify;
- __u8 max_rd_atomic;
- __u8 max_dest_rd_atomic;
- __u8 min_rnr_timer;
- __u8 port_num;
- __u8 timeout;
- __u8 retry_cnt;
- __u8 rnr_retry;
- __u8 alt_port_num;
- __u8 alt_timeout;
- __u8 reserved[2];
- __u64 driver_data[0];
-};
-
-struct ib_uverbs_modify_qp_resp {
-};
-
-struct ib_uverbs_destroy_qp {
- __u64 response;
- __u32 qp_handle;
- __u32 reserved;
-};
-
-struct ib_uverbs_destroy_qp_resp {
- __u32 events_reported;
-};
-
-/*
- * The ib_uverbs_sge structure isn't used anywhere, since we assume
- * the ib_sge structure is packed the same way on 32-bit and 64-bit
- * architectures in both kernel and user space. It's just here to
- * document the ABI.
- */
-struct ib_uverbs_sge {
- __u64 addr;
- __u32 length;
- __u32 lkey;
-};
-
-struct ib_uverbs_send_wr {
- __u64 wr_id;
- __u32 num_sge;
- __u32 opcode;
- __u32 send_flags;
- union {
- __u32 imm_data;
- __u32 invalidate_rkey;
- } ex;
- union {
- struct {
- __u64 remote_addr;
- __u32 rkey;
- __u32 reserved;
- } rdma;
- struct {
- __u64 remote_addr;
- __u64 compare_add;
- __u64 swap;
- __u32 rkey;
- __u32 reserved;
- } atomic;
- struct {
- __u32 ah;
- __u32 remote_qpn;
- __u32 remote_qkey;
- __u32 reserved;
- } ud;
- } wr;
-};
-
-struct ib_uverbs_post_send {
- __u64 response;
- __u32 qp_handle;
- __u32 wr_count;
- __u32 sge_count;
- __u32 wqe_size;
- struct ib_uverbs_send_wr send_wr[0];
-};
-
-struct ib_uverbs_post_send_resp {
- __u32 bad_wr;
-};
-
-struct ib_uverbs_recv_wr {
- __u64 wr_id;
- __u32 num_sge;
- __u32 reserved;
-};
-
-struct ib_uverbs_post_recv {
- __u64 response;
- __u32 qp_handle;
- __u32 wr_count;
- __u32 sge_count;
- __u32 wqe_size;
- struct ib_uverbs_recv_wr recv_wr[0];
-};
-
-struct ib_uverbs_post_recv_resp {
- __u32 bad_wr;
-};
-
-struct ib_uverbs_post_srq_recv {
- __u64 response;
- __u32 srq_handle;
- __u32 wr_count;
- __u32 sge_count;
- __u32 wqe_size;
- struct ib_uverbs_recv_wr recv[0];
-};
-
-struct ib_uverbs_post_srq_recv_resp {
- __u32 bad_wr;
-};
-
-struct ib_uverbs_create_ah {
- __u64 response;
- __u64 user_handle;
- __u32 pd_handle;
- __u32 reserved;
- struct ib_uverbs_ah_attr attr;
-};
-
-struct ib_uverbs_create_ah_resp {
- __u32 ah_handle;
-};
-
-struct ib_uverbs_destroy_ah {
- __u32 ah_handle;
-};
-
-struct ib_uverbs_attach_mcast {
- __u8 gid[16];
- __u32 qp_handle;
- __u16 mlid;
- __u16 reserved;
- __u64 driver_data[0];
-};
-
-struct ib_uverbs_detach_mcast {
- __u8 gid[16];
- __u32 qp_handle;
- __u16 mlid;
- __u16 reserved;
- __u64 driver_data[0];
-};
-
-struct ib_uverbs_create_srq {
- __u64 response;
- __u64 user_handle;
- __u32 pd_handle;
- __u32 max_wr;
- __u32 max_sge;
- __u32 srq_limit;
- __u64 driver_data[0];
-};
-
-struct ib_uverbs_create_xsrq {
- __u64 response;
- __u64 user_handle;
- __u32 srq_type;
- __u32 pd_handle;
- __u32 max_wr;
- __u32 max_sge;
- __u32 srq_limit;
- __u32 reserved;
- __u32 xrcd_handle;
- __u32 cq_handle;
- __u64 driver_data[0];
-};
-
-struct ib_uverbs_create_srq_resp {
- __u32 srq_handle;
- __u32 max_wr;
- __u32 max_sge;
- __u32 srqn;
-};
-
-struct ib_uverbs_modify_srq {
- __u32 srq_handle;
- __u32 attr_mask;
- __u32 max_wr;
- __u32 srq_limit;
- __u64 driver_data[0];
-};
-
-struct ib_uverbs_query_srq {
- __u64 response;
- __u32 srq_handle;
- __u32 reserved;
- __u64 driver_data[0];
-};
-
-struct ib_uverbs_query_srq_resp {
- __u32 max_wr;
- __u32 max_sge;
- __u32 srq_limit;
- __u32 reserved;
-};
-
-struct ib_uverbs_destroy_srq {
- __u64 response;
- __u32 srq_handle;
- __u32 reserved;
-};
-
-struct ib_uverbs_destroy_srq_resp {
- __u32 events_reported;
-};
-
-#endif /* IB_USER_VERBS_H */
diff --git a/ANDROID_3.4.5/include/rdma/ib_verbs.h b/ANDROID_3.4.5/include/rdma/ib_verbs.h
deleted file mode 100644
index c3cca5a4..00000000
--- a/ANDROID_3.4.5/include/rdma/ib_verbs.h
+++ /dev/null
@@ -1,2174 +0,0 @@
-/*
- * Copyright (c) 2004 Mellanox Technologies Ltd. All rights reserved.
- * Copyright (c) 2004 Infinicon Corporation. All rights reserved.
- * Copyright (c) 2004 Intel Corporation. All rights reserved.
- * Copyright (c) 2004 Topspin Corporation. All rights reserved.
- * Copyright (c) 2004 Voltaire Corporation. All rights reserved.
- * Copyright (c) 2005 Sun Microsystems, Inc. All rights reserved.
- * Copyright (c) 2005, 2006, 2007 Cisco Systems. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#if !defined(IB_VERBS_H)
-#define IB_VERBS_H
-
-#include <linux/types.h>
-#include <linux/device.h>
-#include <linux/mm.h>
-#include <linux/dma-mapping.h>
-#include <linux/kref.h>
-#include <linux/list.h>
-#include <linux/rwsem.h>
-#include <linux/scatterlist.h>
-#include <linux/workqueue.h>
-
-#include <linux/atomic.h>
-#include <asm/uaccess.h>
-
-extern struct workqueue_struct *ib_wq;
-
-union ib_gid {
- u8 raw[16];
- struct {
- __be64 subnet_prefix;
- __be64 interface_id;
- } global;
-};
-
-enum rdma_node_type {
- /* IB values map to NodeInfo:NodeType. */
- RDMA_NODE_IB_CA = 1,
- RDMA_NODE_IB_SWITCH,
- RDMA_NODE_IB_ROUTER,
- RDMA_NODE_RNIC
-};
-
-enum rdma_transport_type {
- RDMA_TRANSPORT_IB,
- RDMA_TRANSPORT_IWARP
-};
-
-enum rdma_transport_type
-rdma_node_get_transport(enum rdma_node_type node_type) __attribute_const__;
-
-enum rdma_link_layer {
- IB_LINK_LAYER_UNSPECIFIED,
- IB_LINK_LAYER_INFINIBAND,
- IB_LINK_LAYER_ETHERNET,
-};
-
-enum ib_device_cap_flags {
- IB_DEVICE_RESIZE_MAX_WR = 1,
- IB_DEVICE_BAD_PKEY_CNTR = (1<<1),
- IB_DEVICE_BAD_QKEY_CNTR = (1<<2),
- IB_DEVICE_RAW_MULTI = (1<<3),
- IB_DEVICE_AUTO_PATH_MIG = (1<<4),
- IB_DEVICE_CHANGE_PHY_PORT = (1<<5),
- IB_DEVICE_UD_AV_PORT_ENFORCE = (1<<6),
- IB_DEVICE_CURR_QP_STATE_MOD = (1<<7),
- IB_DEVICE_SHUTDOWN_PORT = (1<<8),
- IB_DEVICE_INIT_TYPE = (1<<9),
- IB_DEVICE_PORT_ACTIVE_EVENT = (1<<10),
- IB_DEVICE_SYS_IMAGE_GUID = (1<<11),
- IB_DEVICE_RC_RNR_NAK_GEN = (1<<12),
- IB_DEVICE_SRQ_RESIZE = (1<<13),
- IB_DEVICE_N_NOTIFY_CQ = (1<<14),
- IB_DEVICE_LOCAL_DMA_LKEY = (1<<15),
- IB_DEVICE_RESERVED = (1<<16), /* old SEND_W_INV */
- IB_DEVICE_MEM_WINDOW = (1<<17),
- /*
- * Devices should set IB_DEVICE_UD_IP_SUM if they support
- * insertion of UDP and TCP checksum on outgoing UD IPoIB
- * messages and can verify the validity of checksum for
- * incoming messages. Setting this flag implies that the
- * IPoIB driver may set NETIF_F_IP_CSUM for datagram mode.
- */
- IB_DEVICE_UD_IP_CSUM = (1<<18),
- IB_DEVICE_UD_TSO = (1<<19),
- IB_DEVICE_XRC = (1<<20),
- IB_DEVICE_MEM_MGT_EXTENSIONS = (1<<21),
- IB_DEVICE_BLOCK_MULTICAST_LOOPBACK = (1<<22),
-};
-
-enum ib_atomic_cap {
- IB_ATOMIC_NONE,
- IB_ATOMIC_HCA,
- IB_ATOMIC_GLOB
-};
-
-struct ib_device_attr {
- u64 fw_ver;
- __be64 sys_image_guid;
- u64 max_mr_size;
- u64 page_size_cap;
- u32 vendor_id;
- u32 vendor_part_id;
- u32 hw_ver;
- int max_qp;
- int max_qp_wr;
- int device_cap_flags;
- int max_sge;
- int max_sge_rd;
- int max_cq;
- int max_cqe;
- int max_mr;
- int max_pd;
- int max_qp_rd_atom;
- int max_ee_rd_atom;
- int max_res_rd_atom;
- int max_qp_init_rd_atom;
- int max_ee_init_rd_atom;
- enum ib_atomic_cap atomic_cap;
- enum ib_atomic_cap masked_atomic_cap;
- int max_ee;
- int max_rdd;
- int max_mw;
- int max_raw_ipv6_qp;
- int max_raw_ethy_qp;
- int max_mcast_grp;
- int max_mcast_qp_attach;
- int max_total_mcast_qp_attach;
- int max_ah;
- int max_fmr;
- int max_map_per_fmr;
- int max_srq;
- int max_srq_wr;
- int max_srq_sge;
- unsigned int max_fast_reg_page_list_len;
- u16 max_pkeys;
- u8 local_ca_ack_delay;
-};
-
-enum ib_mtu {
- IB_MTU_256 = 1,
- IB_MTU_512 = 2,
- IB_MTU_1024 = 3,
- IB_MTU_2048 = 4,
- IB_MTU_4096 = 5
-};
-
-static inline int ib_mtu_enum_to_int(enum ib_mtu mtu)
-{
- switch (mtu) {
- case IB_MTU_256: return 256;
- case IB_MTU_512: return 512;
- case IB_MTU_1024: return 1024;
- case IB_MTU_2048: return 2048;
- case IB_MTU_4096: return 4096;
- default: return -1;
- }
-}
-
-enum ib_port_state {
- IB_PORT_NOP = 0,
- IB_PORT_DOWN = 1,
- IB_PORT_INIT = 2,
- IB_PORT_ARMED = 3,
- IB_PORT_ACTIVE = 4,
- IB_PORT_ACTIVE_DEFER = 5
-};
-
-enum ib_port_cap_flags {
- IB_PORT_SM = 1 << 1,
- IB_PORT_NOTICE_SUP = 1 << 2,
- IB_PORT_TRAP_SUP = 1 << 3,
- IB_PORT_OPT_IPD_SUP = 1 << 4,
- IB_PORT_AUTO_MIGR_SUP = 1 << 5,
- IB_PORT_SL_MAP_SUP = 1 << 6,
- IB_PORT_MKEY_NVRAM = 1 << 7,
- IB_PORT_PKEY_NVRAM = 1 << 8,
- IB_PORT_LED_INFO_SUP = 1 << 9,
- IB_PORT_SM_DISABLED = 1 << 10,
- IB_PORT_SYS_IMAGE_GUID_SUP = 1 << 11,
- IB_PORT_PKEY_SW_EXT_PORT_TRAP_SUP = 1 << 12,
- IB_PORT_EXTENDED_SPEEDS_SUP = 1 << 14,
- IB_PORT_CM_SUP = 1 << 16,
- IB_PORT_SNMP_TUNNEL_SUP = 1 << 17,
- IB_PORT_REINIT_SUP = 1 << 18,
- IB_PORT_DEVICE_MGMT_SUP = 1 << 19,
- IB_PORT_VENDOR_CLASS_SUP = 1 << 20,
- IB_PORT_DR_NOTICE_SUP = 1 << 21,
- IB_PORT_CAP_MASK_NOTICE_SUP = 1 << 22,
- IB_PORT_BOOT_MGMT_SUP = 1 << 23,
- IB_PORT_LINK_LATENCY_SUP = 1 << 24,
- IB_PORT_CLIENT_REG_SUP = 1 << 25
-};
-
-enum ib_port_width {
- IB_WIDTH_1X = 1,
- IB_WIDTH_4X = 2,
- IB_WIDTH_8X = 4,
- IB_WIDTH_12X = 8
-};
-
-static inline int ib_width_enum_to_int(enum ib_port_width width)
-{
- switch (width) {
- case IB_WIDTH_1X: return 1;
- case IB_WIDTH_4X: return 4;
- case IB_WIDTH_8X: return 8;
- case IB_WIDTH_12X: return 12;
- default: return -1;
- }
-}
-
-enum ib_port_speed {
- IB_SPEED_SDR = 1,
- IB_SPEED_DDR = 2,
- IB_SPEED_QDR = 4,
- IB_SPEED_FDR10 = 8,
- IB_SPEED_FDR = 16,
- IB_SPEED_EDR = 32
-};
-
-struct ib_protocol_stats {
- /* TBD... */
-};
-
-struct iw_protocol_stats {
- u64 ipInReceives;
- u64 ipInHdrErrors;
- u64 ipInTooBigErrors;
- u64 ipInNoRoutes;
- u64 ipInAddrErrors;
- u64 ipInUnknownProtos;
- u64 ipInTruncatedPkts;
- u64 ipInDiscards;
- u64 ipInDelivers;
- u64 ipOutForwDatagrams;
- u64 ipOutRequests;
- u64 ipOutDiscards;
- u64 ipOutNoRoutes;
- u64 ipReasmTimeout;
- u64 ipReasmReqds;
- u64 ipReasmOKs;
- u64 ipReasmFails;
- u64 ipFragOKs;
- u64 ipFragFails;
- u64 ipFragCreates;
- u64 ipInMcastPkts;
- u64 ipOutMcastPkts;
- u64 ipInBcastPkts;
- u64 ipOutBcastPkts;
-
- u64 tcpRtoAlgorithm;
- u64 tcpRtoMin;
- u64 tcpRtoMax;
- u64 tcpMaxConn;
- u64 tcpActiveOpens;
- u64 tcpPassiveOpens;
- u64 tcpAttemptFails;
- u64 tcpEstabResets;
- u64 tcpCurrEstab;
- u64 tcpInSegs;
- u64 tcpOutSegs;
- u64 tcpRetransSegs;
- u64 tcpInErrs;
- u64 tcpOutRsts;
-};
-
-union rdma_protocol_stats {
- struct ib_protocol_stats ib;
- struct iw_protocol_stats iw;
-};
-
-struct ib_port_attr {
- enum ib_port_state state;
- enum ib_mtu max_mtu;
- enum ib_mtu active_mtu;
- int gid_tbl_len;
- u32 port_cap_flags;
- u32 max_msg_sz;
- u32 bad_pkey_cntr;
- u32 qkey_viol_cntr;
- u16 pkey_tbl_len;
- u16 lid;
- u16 sm_lid;
- u8 lmc;
- u8 max_vl_num;
- u8 sm_sl;
- u8 subnet_timeout;
- u8 init_type_reply;
- u8 active_width;
- u8 active_speed;
- u8 phys_state;
-};
-
-enum ib_device_modify_flags {
- IB_DEVICE_MODIFY_SYS_IMAGE_GUID = 1 << 0,
- IB_DEVICE_MODIFY_NODE_DESC = 1 << 1
-};
-
-struct ib_device_modify {
- u64 sys_image_guid;
- char node_desc[64];
-};
-
-enum ib_port_modify_flags {
- IB_PORT_SHUTDOWN = 1,
- IB_PORT_INIT_TYPE = (1<<2),
- IB_PORT_RESET_QKEY_CNTR = (1<<3)
-};
-
-struct ib_port_modify {
- u32 set_port_cap_mask;
- u32 clr_port_cap_mask;
- u8 init_type;
-};
-
-enum ib_event_type {
- IB_EVENT_CQ_ERR,
- IB_EVENT_QP_FATAL,
- IB_EVENT_QP_REQ_ERR,
- IB_EVENT_QP_ACCESS_ERR,
- IB_EVENT_COMM_EST,
- IB_EVENT_SQ_DRAINED,
- IB_EVENT_PATH_MIG,
- IB_EVENT_PATH_MIG_ERR,
- IB_EVENT_DEVICE_FATAL,
- IB_EVENT_PORT_ACTIVE,
- IB_EVENT_PORT_ERR,
- IB_EVENT_LID_CHANGE,
- IB_EVENT_PKEY_CHANGE,
- IB_EVENT_SM_CHANGE,
- IB_EVENT_SRQ_ERR,
- IB_EVENT_SRQ_LIMIT_REACHED,
- IB_EVENT_QP_LAST_WQE_REACHED,
- IB_EVENT_CLIENT_REREGISTER,
- IB_EVENT_GID_CHANGE,
-};
-
-struct ib_event {
- struct ib_device *device;
- union {
- struct ib_cq *cq;
- struct ib_qp *qp;
- struct ib_srq *srq;
- u8 port_num;
- } element;
- enum ib_event_type event;
-};
-
-struct ib_event_handler {
- struct ib_device *device;
- void (*handler)(struct ib_event_handler *, struct ib_event *);
- struct list_head list;
-};
-
-#define INIT_IB_EVENT_HANDLER(_ptr, _device, _handler) \
- do { \
- (_ptr)->device = _device; \
- (_ptr)->handler = _handler; \
- INIT_LIST_HEAD(&(_ptr)->list); \
- } while (0)
-
-struct ib_global_route {
- union ib_gid dgid;
- u32 flow_label;
- u8 sgid_index;
- u8 hop_limit;
- u8 traffic_class;
-};
-
-struct ib_grh {
- __be32 version_tclass_flow;
- __be16 paylen;
- u8 next_hdr;
- u8 hop_limit;
- union ib_gid sgid;
- union ib_gid dgid;
-};
-
-enum {
- IB_MULTICAST_QPN = 0xffffff
-};
-
-#define IB_LID_PERMISSIVE cpu_to_be16(0xFFFF)
-
-enum ib_ah_flags {
- IB_AH_GRH = 1
-};
-
-enum ib_rate {
- IB_RATE_PORT_CURRENT = 0,
- IB_RATE_2_5_GBPS = 2,
- IB_RATE_5_GBPS = 5,
- IB_RATE_10_GBPS = 3,
- IB_RATE_20_GBPS = 6,
- IB_RATE_30_GBPS = 4,
- IB_RATE_40_GBPS = 7,
- IB_RATE_60_GBPS = 8,
- IB_RATE_80_GBPS = 9,
- IB_RATE_120_GBPS = 10,
- IB_RATE_14_GBPS = 11,
- IB_RATE_56_GBPS = 12,
- IB_RATE_112_GBPS = 13,
- IB_RATE_168_GBPS = 14,
- IB_RATE_25_GBPS = 15,
- IB_RATE_100_GBPS = 16,
- IB_RATE_200_GBPS = 17,
- IB_RATE_300_GBPS = 18
-};
-
-/**
- * ib_rate_to_mult - Convert the IB rate enum to a multiple of the
- * base rate of 2.5 Gbit/sec. For example, IB_RATE_5_GBPS will be
- * converted to 2, since 5 Gbit/sec is 2 * 2.5 Gbit/sec.
- * @rate: rate to convert.
- */
-int ib_rate_to_mult(enum ib_rate rate) __attribute_const__;
-
-/**
- * ib_rate_to_mbps - Convert the IB rate enum to Mbps.
- * For example, IB_RATE_2_5_GBPS will be converted to 2500.
- * @rate: rate to convert.
- */
-int ib_rate_to_mbps(enum ib_rate rate) __attribute_const__;
-
-/**
- * mult_to_ib_rate - Convert a multiple of 2.5 Gbit/sec to an IB rate
- * enum.
- * @mult: multiple to convert.
- */
-enum ib_rate mult_to_ib_rate(int mult) __attribute_const__;
-
-struct ib_ah_attr {
- struct ib_global_route grh;
- u16 dlid;
- u8 sl;
- u8 src_path_bits;
- u8 static_rate;
- u8 ah_flags;
- u8 port_num;
-};
-
-enum ib_wc_status {
- IB_WC_SUCCESS,
- IB_WC_LOC_LEN_ERR,
- IB_WC_LOC_QP_OP_ERR,
- IB_WC_LOC_EEC_OP_ERR,
- IB_WC_LOC_PROT_ERR,
- IB_WC_WR_FLUSH_ERR,
- IB_WC_MW_BIND_ERR,
- IB_WC_BAD_RESP_ERR,
- IB_WC_LOC_ACCESS_ERR,
- IB_WC_REM_INV_REQ_ERR,
- IB_WC_REM_ACCESS_ERR,
- IB_WC_REM_OP_ERR,
- IB_WC_RETRY_EXC_ERR,
- IB_WC_RNR_RETRY_EXC_ERR,
- IB_WC_LOC_RDD_VIOL_ERR,
- IB_WC_REM_INV_RD_REQ_ERR,
- IB_WC_REM_ABORT_ERR,
- IB_WC_INV_EECN_ERR,
- IB_WC_INV_EEC_STATE_ERR,
- IB_WC_FATAL_ERR,
- IB_WC_RESP_TIMEOUT_ERR,
- IB_WC_GENERAL_ERR
-};
-
-enum ib_wc_opcode {
- IB_WC_SEND,
- IB_WC_RDMA_WRITE,
- IB_WC_RDMA_READ,
- IB_WC_COMP_SWAP,
- IB_WC_FETCH_ADD,
- IB_WC_BIND_MW,
- IB_WC_LSO,
- IB_WC_LOCAL_INV,
- IB_WC_FAST_REG_MR,
- IB_WC_MASKED_COMP_SWAP,
- IB_WC_MASKED_FETCH_ADD,
-/*
- * Set value of IB_WC_RECV so consumers can test if a completion is a
- * receive by testing (opcode & IB_WC_RECV).
- */
- IB_WC_RECV = 1 << 7,
- IB_WC_RECV_RDMA_WITH_IMM
-};
-
-enum ib_wc_flags {
- IB_WC_GRH = 1,
- IB_WC_WITH_IMM = (1<<1),
- IB_WC_WITH_INVALIDATE = (1<<2),
- IB_WC_IP_CSUM_OK = (1<<3),
-};
-
-struct ib_wc {
- u64 wr_id;
- enum ib_wc_status status;
- enum ib_wc_opcode opcode;
- u32 vendor_err;
- u32 byte_len;
- struct ib_qp *qp;
- union {
- __be32 imm_data;
- u32 invalidate_rkey;
- } ex;
- u32 src_qp;
- int wc_flags;
- u16 pkey_index;
- u16 slid;
- u8 sl;
- u8 dlid_path_bits;
- u8 port_num; /* valid only for DR SMPs on switches */
-};
-
-enum ib_cq_notify_flags {
- IB_CQ_SOLICITED = 1 << 0,
- IB_CQ_NEXT_COMP = 1 << 1,
- IB_CQ_SOLICITED_MASK = IB_CQ_SOLICITED | IB_CQ_NEXT_COMP,
- IB_CQ_REPORT_MISSED_EVENTS = 1 << 2,
-};
-
-enum ib_srq_type {
- IB_SRQT_BASIC,
- IB_SRQT_XRC
-};
-
-enum ib_srq_attr_mask {
- IB_SRQ_MAX_WR = 1 << 0,
- IB_SRQ_LIMIT = 1 << 1,
-};
-
-struct ib_srq_attr {
- u32 max_wr;
- u32 max_sge;
- u32 srq_limit;
-};
-
-struct ib_srq_init_attr {
- void (*event_handler)(struct ib_event *, void *);
- void *srq_context;
- struct ib_srq_attr attr;
- enum ib_srq_type srq_type;
-
- union {
- struct {
- struct ib_xrcd *xrcd;
- struct ib_cq *cq;
- } xrc;
- } ext;
-};
-
-struct ib_qp_cap {
- u32 max_send_wr;
- u32 max_recv_wr;
- u32 max_send_sge;
- u32 max_recv_sge;
- u32 max_inline_data;
-};
-
-enum ib_sig_type {
- IB_SIGNAL_ALL_WR,
- IB_SIGNAL_REQ_WR
-};
-
-enum ib_qp_type {
- /*
- * IB_QPT_SMI and IB_QPT_GSI have to be the first two entries
- * here (and in that order) since the MAD layer uses them as
- * indices into a 2-entry table.
- */
- IB_QPT_SMI,
- IB_QPT_GSI,
-
- IB_QPT_RC,
- IB_QPT_UC,
- IB_QPT_UD,
- IB_QPT_RAW_IPV6,
- IB_QPT_RAW_ETHERTYPE,
- /* Save 8 for RAW_PACKET */
- IB_QPT_XRC_INI = 9,
- IB_QPT_XRC_TGT,
- IB_QPT_MAX
-};
-
-enum ib_qp_create_flags {
- IB_QP_CREATE_IPOIB_UD_LSO = 1 << 0,
- IB_QP_CREATE_BLOCK_MULTICAST_LOOPBACK = 1 << 1,
-};
-
-struct ib_qp_init_attr {
- void (*event_handler)(struct ib_event *, void *);
- void *qp_context;
- struct ib_cq *send_cq;
- struct ib_cq *recv_cq;
- struct ib_srq *srq;
- struct ib_xrcd *xrcd; /* XRC TGT QPs only */
- struct ib_qp_cap cap;
- enum ib_sig_type sq_sig_type;
- enum ib_qp_type qp_type;
- enum ib_qp_create_flags create_flags;
- u8 port_num; /* special QP types only */
-};
-
-struct ib_qp_open_attr {
- void (*event_handler)(struct ib_event *, void *);
- void *qp_context;
- u32 qp_num;
- enum ib_qp_type qp_type;
-};
-
-enum ib_rnr_timeout {
- IB_RNR_TIMER_655_36 = 0,
- IB_RNR_TIMER_000_01 = 1,
- IB_RNR_TIMER_000_02 = 2,
- IB_RNR_TIMER_000_03 = 3,
- IB_RNR_TIMER_000_04 = 4,
- IB_RNR_TIMER_000_06 = 5,
- IB_RNR_TIMER_000_08 = 6,
- IB_RNR_TIMER_000_12 = 7,
- IB_RNR_TIMER_000_16 = 8,
- IB_RNR_TIMER_000_24 = 9,
- IB_RNR_TIMER_000_32 = 10,
- IB_RNR_TIMER_000_48 = 11,
- IB_RNR_TIMER_000_64 = 12,
- IB_RNR_TIMER_000_96 = 13,
- IB_RNR_TIMER_001_28 = 14,
- IB_RNR_TIMER_001_92 = 15,
- IB_RNR_TIMER_002_56 = 16,
- IB_RNR_TIMER_003_84 = 17,
- IB_RNR_TIMER_005_12 = 18,
- IB_RNR_TIMER_007_68 = 19,
- IB_RNR_TIMER_010_24 = 20,
- IB_RNR_TIMER_015_36 = 21,
- IB_RNR_TIMER_020_48 = 22,
- IB_RNR_TIMER_030_72 = 23,
- IB_RNR_TIMER_040_96 = 24,
- IB_RNR_TIMER_061_44 = 25,
- IB_RNR_TIMER_081_92 = 26,
- IB_RNR_TIMER_122_88 = 27,
- IB_RNR_TIMER_163_84 = 28,
- IB_RNR_TIMER_245_76 = 29,
- IB_RNR_TIMER_327_68 = 30,
- IB_RNR_TIMER_491_52 = 31
-};
-
-enum ib_qp_attr_mask {
- IB_QP_STATE = 1,
- IB_QP_CUR_STATE = (1<<1),
- IB_QP_EN_SQD_ASYNC_NOTIFY = (1<<2),
- IB_QP_ACCESS_FLAGS = (1<<3),
- IB_QP_PKEY_INDEX = (1<<4),
- IB_QP_PORT = (1<<5),
- IB_QP_QKEY = (1<<6),
- IB_QP_AV = (1<<7),
- IB_QP_PATH_MTU = (1<<8),
- IB_QP_TIMEOUT = (1<<9),
- IB_QP_RETRY_CNT = (1<<10),
- IB_QP_RNR_RETRY = (1<<11),
- IB_QP_RQ_PSN = (1<<12),
- IB_QP_MAX_QP_RD_ATOMIC = (1<<13),
- IB_QP_ALT_PATH = (1<<14),
- IB_QP_MIN_RNR_TIMER = (1<<15),
- IB_QP_SQ_PSN = (1<<16),
- IB_QP_MAX_DEST_RD_ATOMIC = (1<<17),
- IB_QP_PATH_MIG_STATE = (1<<18),
- IB_QP_CAP = (1<<19),
- IB_QP_DEST_QPN = (1<<20)
-};
-
-enum ib_qp_state {
- IB_QPS_RESET,
- IB_QPS_INIT,
- IB_QPS_RTR,
- IB_QPS_RTS,
- IB_QPS_SQD,
- IB_QPS_SQE,
- IB_QPS_ERR
-};
-
-enum ib_mig_state {
- IB_MIG_MIGRATED,
- IB_MIG_REARM,
- IB_MIG_ARMED
-};
-
-struct ib_qp_attr {
- enum ib_qp_state qp_state;
- enum ib_qp_state cur_qp_state;
- enum ib_mtu path_mtu;
- enum ib_mig_state path_mig_state;
- u32 qkey;
- u32 rq_psn;
- u32 sq_psn;
- u32 dest_qp_num;
- int qp_access_flags;
- struct ib_qp_cap cap;
- struct ib_ah_attr ah_attr;
- struct ib_ah_attr alt_ah_attr;
- u16 pkey_index;
- u16 alt_pkey_index;
- u8 en_sqd_async_notify;
- u8 sq_draining;
- u8 max_rd_atomic;
- u8 max_dest_rd_atomic;
- u8 min_rnr_timer;
- u8 port_num;
- u8 timeout;
- u8 retry_cnt;
- u8 rnr_retry;
- u8 alt_port_num;
- u8 alt_timeout;
-};
-
-enum ib_wr_opcode {
- IB_WR_RDMA_WRITE,
- IB_WR_RDMA_WRITE_WITH_IMM,
- IB_WR_SEND,
- IB_WR_SEND_WITH_IMM,
- IB_WR_RDMA_READ,
- IB_WR_ATOMIC_CMP_AND_SWP,
- IB_WR_ATOMIC_FETCH_AND_ADD,
- IB_WR_LSO,
- IB_WR_SEND_WITH_INV,
- IB_WR_RDMA_READ_WITH_INV,
- IB_WR_LOCAL_INV,
- IB_WR_FAST_REG_MR,
- IB_WR_MASKED_ATOMIC_CMP_AND_SWP,
- IB_WR_MASKED_ATOMIC_FETCH_AND_ADD,
-};
-
-enum ib_send_flags {
- IB_SEND_FENCE = 1,
- IB_SEND_SIGNALED = (1<<1),
- IB_SEND_SOLICITED = (1<<2),
- IB_SEND_INLINE = (1<<3),
- IB_SEND_IP_CSUM = (1<<4)
-};
-
-struct ib_sge {
- u64 addr;
- u32 length;
- u32 lkey;
-};
-
-struct ib_fast_reg_page_list {
- struct ib_device *device;
- u64 *page_list;
- unsigned int max_page_list_len;
-};
-
-struct ib_send_wr {
- struct ib_send_wr *next;
- u64 wr_id;
- struct ib_sge *sg_list;
- int num_sge;
- enum ib_wr_opcode opcode;
- int send_flags;
- union {
- __be32 imm_data;
- u32 invalidate_rkey;
- } ex;
- union {
- struct {
- u64 remote_addr;
- u32 rkey;
- } rdma;
- struct {
- u64 remote_addr;
- u64 compare_add;
- u64 swap;
- u64 compare_add_mask;
- u64 swap_mask;
- u32 rkey;
- } atomic;
- struct {
- struct ib_ah *ah;
- void *header;
- int hlen;
- int mss;
- u32 remote_qpn;
- u32 remote_qkey;
- u16 pkey_index; /* valid for GSI only */
- u8 port_num; /* valid for DR SMPs on switch only */
- } ud;
- struct {
- u64 iova_start;
- struct ib_fast_reg_page_list *page_list;
- unsigned int page_shift;
- unsigned int page_list_len;
- u32 length;
- int access_flags;
- u32 rkey;
- } fast_reg;
- } wr;
- u32 xrc_remote_srq_num; /* XRC TGT QPs only */
-};
-
-struct ib_recv_wr {
- struct ib_recv_wr *next;
- u64 wr_id;
- struct ib_sge *sg_list;
- int num_sge;
-};
-
-enum ib_access_flags {
- IB_ACCESS_LOCAL_WRITE = 1,
- IB_ACCESS_REMOTE_WRITE = (1<<1),
- IB_ACCESS_REMOTE_READ = (1<<2),
- IB_ACCESS_REMOTE_ATOMIC = (1<<3),
- IB_ACCESS_MW_BIND = (1<<4)
-};
-
-struct ib_phys_buf {
- u64 addr;
- u64 size;
-};
-
-struct ib_mr_attr {
- struct ib_pd *pd;
- u64 device_virt_addr;
- u64 size;
- int mr_access_flags;
- u32 lkey;
- u32 rkey;
-};
-
-enum ib_mr_rereg_flags {
- IB_MR_REREG_TRANS = 1,
- IB_MR_REREG_PD = (1<<1),
- IB_MR_REREG_ACCESS = (1<<2)
-};
-
-struct ib_mw_bind {
- struct ib_mr *mr;
- u64 wr_id;
- u64 addr;
- u32 length;
- int send_flags;
- int mw_access_flags;
-};
-
-struct ib_fmr_attr {
- int max_pages;
- int max_maps;
- u8 page_shift;
-};
-
-struct ib_ucontext {
- struct ib_device *device;
- struct list_head pd_list;
- struct list_head mr_list;
- struct list_head mw_list;
- struct list_head cq_list;
- struct list_head qp_list;
- struct list_head srq_list;
- struct list_head ah_list;
- struct list_head xrcd_list;
- int closing;
-};
-
-struct ib_uobject {
- u64 user_handle; /* handle given to us by userspace */
- struct ib_ucontext *context; /* associated user context */
- void *object; /* containing object */
- struct list_head list; /* link to context's list */
- int id; /* index into kernel idr */
- struct kref ref;
- struct rw_semaphore mutex; /* protects .live */
- int live;
-};
-
-struct ib_udata {
- void __user *inbuf;
- void __user *outbuf;
- size_t inlen;
- size_t outlen;
-};
-
-struct ib_pd {
- struct ib_device *device;
- struct ib_uobject *uobject;
- atomic_t usecnt; /* count all resources */
-};
-
-struct ib_xrcd {
- struct ib_device *device;
- atomic_t usecnt; /* count all exposed resources */
- struct inode *inode;
-
- struct mutex tgt_qp_mutex;
- struct list_head tgt_qp_list;
-};
-
-struct ib_ah {
- struct ib_device *device;
- struct ib_pd *pd;
- struct ib_uobject *uobject;
-};
-
-typedef void (*ib_comp_handler)(struct ib_cq *cq, void *cq_context);
-
-struct ib_cq {
- struct ib_device *device;
- struct ib_uobject *uobject;
- ib_comp_handler comp_handler;
- void (*event_handler)(struct ib_event *, void *);
- void *cq_context;
- int cqe;
- atomic_t usecnt; /* count number of work queues */
-};
-
-struct ib_srq {
- struct ib_device *device;
- struct ib_pd *pd;
- struct ib_uobject *uobject;
- void (*event_handler)(struct ib_event *, void *);
- void *srq_context;
- enum ib_srq_type srq_type;
- atomic_t usecnt;
-
- union {
- struct {
- struct ib_xrcd *xrcd;
- struct ib_cq *cq;
- u32 srq_num;
- } xrc;
- } ext;
-};
-
-struct ib_qp {
- struct ib_device *device;
- struct ib_pd *pd;
- struct ib_cq *send_cq;
- struct ib_cq *recv_cq;
- struct ib_srq *srq;
- struct ib_xrcd *xrcd; /* XRC TGT QPs only */
- struct list_head xrcd_list;
- atomic_t usecnt; /* count times opened */
- struct list_head open_list;
- struct ib_qp *real_qp;
- struct ib_uobject *uobject;
- void (*event_handler)(struct ib_event *, void *);
- void *qp_context;
- u32 qp_num;
- enum ib_qp_type qp_type;
-};
-
-struct ib_mr {
- struct ib_device *device;
- struct ib_pd *pd;
- struct ib_uobject *uobject;
- u32 lkey;
- u32 rkey;
- atomic_t usecnt; /* count number of MWs */
-};
-
-struct ib_mw {
- struct ib_device *device;
- struct ib_pd *pd;
- struct ib_uobject *uobject;
- u32 rkey;
-};
-
-struct ib_fmr {
- struct ib_device *device;
- struct ib_pd *pd;
- struct list_head list;
- u32 lkey;
- u32 rkey;
-};
-
-struct ib_mad;
-struct ib_grh;
-
-enum ib_process_mad_flags {
- IB_MAD_IGNORE_MKEY = 1,
- IB_MAD_IGNORE_BKEY = 2,
- IB_MAD_IGNORE_ALL = IB_MAD_IGNORE_MKEY | IB_MAD_IGNORE_BKEY
-};
-
-enum ib_mad_result {
- IB_MAD_RESULT_FAILURE = 0, /* (!SUCCESS is the important flag) */
- IB_MAD_RESULT_SUCCESS = 1 << 0, /* MAD was successfully processed */
- IB_MAD_RESULT_REPLY = 1 << 1, /* Reply packet needs to be sent */
- IB_MAD_RESULT_CONSUMED = 1 << 2 /* Packet consumed: stop processing */
-};
-
-#define IB_DEVICE_NAME_MAX 64
-
-struct ib_cache {
- rwlock_t lock;
- struct ib_event_handler event_handler;
- struct ib_pkey_cache **pkey_cache;
- struct ib_gid_cache **gid_cache;
- u8 *lmc_cache;
-};
-
-struct ib_dma_mapping_ops {
- int (*mapping_error)(struct ib_device *dev,
- u64 dma_addr);
- u64 (*map_single)(struct ib_device *dev,
- void *ptr, size_t size,
- enum dma_data_direction direction);
- void (*unmap_single)(struct ib_device *dev,
- u64 addr, size_t size,
- enum dma_data_direction direction);
- u64 (*map_page)(struct ib_device *dev,
- struct page *page, unsigned long offset,
- size_t size,
- enum dma_data_direction direction);
- void (*unmap_page)(struct ib_device *dev,
- u64 addr, size_t size,
- enum dma_data_direction direction);
- int (*map_sg)(struct ib_device *dev,
- struct scatterlist *sg, int nents,
- enum dma_data_direction direction);
- void (*unmap_sg)(struct ib_device *dev,
- struct scatterlist *sg, int nents,
- enum dma_data_direction direction);
- u64 (*dma_address)(struct ib_device *dev,
- struct scatterlist *sg);
- unsigned int (*dma_len)(struct ib_device *dev,
- struct scatterlist *sg);
- void (*sync_single_for_cpu)(struct ib_device *dev,
- u64 dma_handle,
- size_t size,
- enum dma_data_direction dir);
- void (*sync_single_for_device)(struct ib_device *dev,
- u64 dma_handle,
- size_t size,
- enum dma_data_direction dir);
- void *(*alloc_coherent)(struct ib_device *dev,
- size_t size,
- u64 *dma_handle,
- gfp_t flag);
- void (*free_coherent)(struct ib_device *dev,
- size_t size, void *cpu_addr,
- u64 dma_handle);
-};
-
-struct iw_cm_verbs;
-
-struct ib_device {
- struct device *dma_device;
-
- char name[IB_DEVICE_NAME_MAX];
-
- struct list_head event_handler_list;
- spinlock_t event_handler_lock;
-
- spinlock_t client_data_lock;
- struct list_head core_list;
- struct list_head client_data_list;
-
- struct ib_cache cache;
- int *pkey_tbl_len;
- int *gid_tbl_len;
-
- int num_comp_vectors;
-
- struct iw_cm_verbs *iwcm;
-
- int (*get_protocol_stats)(struct ib_device *device,
- union rdma_protocol_stats *stats);
- int (*query_device)(struct ib_device *device,
- struct ib_device_attr *device_attr);
- int (*query_port)(struct ib_device *device,
- u8 port_num,
- struct ib_port_attr *port_attr);
- enum rdma_link_layer (*get_link_layer)(struct ib_device *device,
- u8 port_num);
- int (*query_gid)(struct ib_device *device,
- u8 port_num, int index,
- union ib_gid *gid);
- int (*query_pkey)(struct ib_device *device,
- u8 port_num, u16 index, u16 *pkey);
- int (*modify_device)(struct ib_device *device,
- int device_modify_mask,
- struct ib_device_modify *device_modify);
- int (*modify_port)(struct ib_device *device,
- u8 port_num, int port_modify_mask,
- struct ib_port_modify *port_modify);
- struct ib_ucontext * (*alloc_ucontext)(struct ib_device *device,
- struct ib_udata *udata);
- int (*dealloc_ucontext)(struct ib_ucontext *context);
- int (*mmap)(struct ib_ucontext *context,
- struct vm_area_struct *vma);
- struct ib_pd * (*alloc_pd)(struct ib_device *device,
- struct ib_ucontext *context,
- struct ib_udata *udata);
- int (*dealloc_pd)(struct ib_pd *pd);
- struct ib_ah * (*create_ah)(struct ib_pd *pd,
- struct ib_ah_attr *ah_attr);
- int (*modify_ah)(struct ib_ah *ah,
- struct ib_ah_attr *ah_attr);
- int (*query_ah)(struct ib_ah *ah,
- struct ib_ah_attr *ah_attr);
- int (*destroy_ah)(struct ib_ah *ah);
- struct ib_srq * (*create_srq)(struct ib_pd *pd,
- struct ib_srq_init_attr *srq_init_attr,
- struct ib_udata *udata);
- int (*modify_srq)(struct ib_srq *srq,
- struct ib_srq_attr *srq_attr,
- enum ib_srq_attr_mask srq_attr_mask,
- struct ib_udata *udata);
- int (*query_srq)(struct ib_srq *srq,
- struct ib_srq_attr *srq_attr);
- int (*destroy_srq)(struct ib_srq *srq);
- int (*post_srq_recv)(struct ib_srq *srq,
- struct ib_recv_wr *recv_wr,
- struct ib_recv_wr **bad_recv_wr);
- struct ib_qp * (*create_qp)(struct ib_pd *pd,
- struct ib_qp_init_attr *qp_init_attr,
- struct ib_udata *udata);
- int (*modify_qp)(struct ib_qp *qp,
- struct ib_qp_attr *qp_attr,
- int qp_attr_mask,
- struct ib_udata *udata);
- int (*query_qp)(struct ib_qp *qp,
- struct ib_qp_attr *qp_attr,
- int qp_attr_mask,
- struct ib_qp_init_attr *qp_init_attr);
- int (*destroy_qp)(struct ib_qp *qp);
- int (*post_send)(struct ib_qp *qp,
- struct ib_send_wr *send_wr,
- struct ib_send_wr **bad_send_wr);
- int (*post_recv)(struct ib_qp *qp,
- struct ib_recv_wr *recv_wr,
- struct ib_recv_wr **bad_recv_wr);
- struct ib_cq * (*create_cq)(struct ib_device *device, int cqe,
- int comp_vector,
- struct ib_ucontext *context,
- struct ib_udata *udata);
- int (*modify_cq)(struct ib_cq *cq, u16 cq_count,
- u16 cq_period);
- int (*destroy_cq)(struct ib_cq *cq);
- int (*resize_cq)(struct ib_cq *cq, int cqe,
- struct ib_udata *udata);
- int (*poll_cq)(struct ib_cq *cq, int num_entries,
- struct ib_wc *wc);
- int (*peek_cq)(struct ib_cq *cq, int wc_cnt);
- int (*req_notify_cq)(struct ib_cq *cq,
- enum ib_cq_notify_flags flags);
- int (*req_ncomp_notif)(struct ib_cq *cq,
- int wc_cnt);
- struct ib_mr * (*get_dma_mr)(struct ib_pd *pd,
- int mr_access_flags);
- struct ib_mr * (*reg_phys_mr)(struct ib_pd *pd,
- struct ib_phys_buf *phys_buf_array,
- int num_phys_buf,
- int mr_access_flags,
- u64 *iova_start);
- struct ib_mr * (*reg_user_mr)(struct ib_pd *pd,
- u64 start, u64 length,
- u64 virt_addr,
- int mr_access_flags,
- struct ib_udata *udata);
- int (*query_mr)(struct ib_mr *mr,
- struct ib_mr_attr *mr_attr);
- int (*dereg_mr)(struct ib_mr *mr);
- struct ib_mr * (*alloc_fast_reg_mr)(struct ib_pd *pd,
- int max_page_list_len);
- struct ib_fast_reg_page_list * (*alloc_fast_reg_page_list)(struct ib_device *device,
- int page_list_len);
- void (*free_fast_reg_page_list)(struct ib_fast_reg_page_list *page_list);
- int (*rereg_phys_mr)(struct ib_mr *mr,
- int mr_rereg_mask,
- struct ib_pd *pd,
- struct ib_phys_buf *phys_buf_array,
- int num_phys_buf,
- int mr_access_flags,
- u64 *iova_start);
- struct ib_mw * (*alloc_mw)(struct ib_pd *pd);
- int (*bind_mw)(struct ib_qp *qp,
- struct ib_mw *mw,
- struct ib_mw_bind *mw_bind);
- int (*dealloc_mw)(struct ib_mw *mw);
- struct ib_fmr * (*alloc_fmr)(struct ib_pd *pd,
- int mr_access_flags,
- struct ib_fmr_attr *fmr_attr);
- int (*map_phys_fmr)(struct ib_fmr *fmr,
- u64 *page_list, int list_len,
- u64 iova);
- int (*unmap_fmr)(struct list_head *fmr_list);
- int (*dealloc_fmr)(struct ib_fmr *fmr);
- int (*attach_mcast)(struct ib_qp *qp,
- union ib_gid *gid,
- u16 lid);
- int (*detach_mcast)(struct ib_qp *qp,
- union ib_gid *gid,
- u16 lid);
- int (*process_mad)(struct ib_device *device,
- int process_mad_flags,
- u8 port_num,
- struct ib_wc *in_wc,
- struct ib_grh *in_grh,
- struct ib_mad *in_mad,
- struct ib_mad *out_mad);
- struct ib_xrcd * (*alloc_xrcd)(struct ib_device *device,
- struct ib_ucontext *ucontext,
- struct ib_udata *udata);
- int (*dealloc_xrcd)(struct ib_xrcd *xrcd);
-
- struct ib_dma_mapping_ops *dma_ops;
-
- struct module *owner;
- struct device dev;
- struct kobject *ports_parent;
- struct list_head port_list;
-
- enum {
- IB_DEV_UNINITIALIZED,
- IB_DEV_REGISTERED,
- IB_DEV_UNREGISTERED
- } reg_state;
-
- int uverbs_abi_ver;
- u64 uverbs_cmd_mask;
-
- char node_desc[64];
- __be64 node_guid;
- u32 local_dma_lkey;
- u8 node_type;
- u8 phys_port_cnt;
-};
-
-struct ib_client {
- char *name;
- void (*add) (struct ib_device *);
- void (*remove)(struct ib_device *);
-
- struct list_head list;
-};
-
-struct ib_device *ib_alloc_device(size_t size);
-void ib_dealloc_device(struct ib_device *device);
-
-int ib_register_device(struct ib_device *device,
- int (*port_callback)(struct ib_device *,
- u8, struct kobject *));
-void ib_unregister_device(struct ib_device *device);
-
-int ib_register_client (struct ib_client *client);
-void ib_unregister_client(struct ib_client *client);
-
-void *ib_get_client_data(struct ib_device *device, struct ib_client *client);
-void ib_set_client_data(struct ib_device *device, struct ib_client *client,
- void *data);
-
-static inline int ib_copy_from_udata(void *dest, struct ib_udata *udata, size_t len)
-{
- return copy_from_user(dest, udata->inbuf, len) ? -EFAULT : 0;
-}
-
-static inline int ib_copy_to_udata(struct ib_udata *udata, void *src, size_t len)
-{
- return copy_to_user(udata->outbuf, src, len) ? -EFAULT : 0;
-}
-
-/**
- * ib_modify_qp_is_ok - Check that the supplied attribute mask
- * contains all required attributes and no attributes not allowed for
- * the given QP state transition.
- * @cur_state: Current QP state
- * @next_state: Next QP state
- * @type: QP type
- * @mask: Mask of supplied QP attributes
- *
- * This function is a helper function that a low-level driver's
- * modify_qp method can use to validate the consumer's input. It
- * checks that cur_state and next_state are valid QP states, that a
- * transition from cur_state to next_state is allowed by the IB spec,
- * and that the attribute mask supplied is allowed for the transition.
- */
-int ib_modify_qp_is_ok(enum ib_qp_state cur_state, enum ib_qp_state next_state,
- enum ib_qp_type type, enum ib_qp_attr_mask mask);
-
-int ib_register_event_handler (struct ib_event_handler *event_handler);
-int ib_unregister_event_handler(struct ib_event_handler *event_handler);
-void ib_dispatch_event(struct ib_event *event);
-
-int ib_query_device(struct ib_device *device,
- struct ib_device_attr *device_attr);
-
-int ib_query_port(struct ib_device *device,
- u8 port_num, struct ib_port_attr *port_attr);
-
-enum rdma_link_layer rdma_port_get_link_layer(struct ib_device *device,
- u8 port_num);
-
-int ib_query_gid(struct ib_device *device,
- u8 port_num, int index, union ib_gid *gid);
-
-int ib_query_pkey(struct ib_device *device,
- u8 port_num, u16 index, u16 *pkey);
-
-int ib_modify_device(struct ib_device *device,
- int device_modify_mask,
- struct ib_device_modify *device_modify);
-
-int ib_modify_port(struct ib_device *device,
- u8 port_num, int port_modify_mask,
- struct ib_port_modify *port_modify);
-
-int ib_find_gid(struct ib_device *device, union ib_gid *gid,
- u8 *port_num, u16 *index);
-
-int ib_find_pkey(struct ib_device *device,
- u8 port_num, u16 pkey, u16 *index);
-
-/**
- * ib_alloc_pd - Allocates an unused protection domain.
- * @device: The device on which to allocate the protection domain.
- *
- * A protection domain object provides an association between QPs, shared
- * receive queues, address handles, memory regions, and memory windows.
- */
-struct ib_pd *ib_alloc_pd(struct ib_device *device);
-
-/**
- * ib_dealloc_pd - Deallocates a protection domain.
- * @pd: The protection domain to deallocate.
- */
-int ib_dealloc_pd(struct ib_pd *pd);
-
-/**
- * ib_create_ah - Creates an address handle for the given address vector.
- * @pd: The protection domain associated with the address handle.
- * @ah_attr: The attributes of the address vector.
- *
- * The address handle is used to reference a local or global destination
- * in all UD QP post sends.
- */
-struct ib_ah *ib_create_ah(struct ib_pd *pd, struct ib_ah_attr *ah_attr);
-
-/**
- * ib_init_ah_from_wc - Initializes address handle attributes from a
- * work completion.
- * @device: Device on which the received message arrived.
- * @port_num: Port on which the received message arrived.
- * @wc: Work completion associated with the received message.
- * @grh: References the received global route header. This parameter is
- * ignored unless the work completion indicates that the GRH is valid.
- * @ah_attr: Returned attributes that can be used when creating an address
- * handle for replying to the message.
- */
-int ib_init_ah_from_wc(struct ib_device *device, u8 port_num, struct ib_wc *wc,
- struct ib_grh *grh, struct ib_ah_attr *ah_attr);
-
-/**
- * ib_create_ah_from_wc - Creates an address handle associated with the
- * sender of the specified work completion.
- * @pd: The protection domain associated with the address handle.
- * @wc: Work completion information associated with a received message.
- * @grh: References the received global route header. This parameter is
- * ignored unless the work completion indicates that the GRH is valid.
- * @port_num: The outbound port number to associate with the address.
- *
- * The address handle is used to reference a local or global destination
- * in all UD QP post sends.
- */
-struct ib_ah *ib_create_ah_from_wc(struct ib_pd *pd, struct ib_wc *wc,
- struct ib_grh *grh, u8 port_num);
-
-/**
- * ib_modify_ah - Modifies the address vector associated with an address
- * handle.
- * @ah: The address handle to modify.
- * @ah_attr: The new address vector attributes to associate with the
- * address handle.
- */
-int ib_modify_ah(struct ib_ah *ah, struct ib_ah_attr *ah_attr);
-
-/**
- * ib_query_ah - Queries the address vector associated with an address
- * handle.
- * @ah: The address handle to query.
- * @ah_attr: The address vector attributes associated with the address
- * handle.
- */
-int ib_query_ah(struct ib_ah *ah, struct ib_ah_attr *ah_attr);
-
-/**
- * ib_destroy_ah - Destroys an address handle.
- * @ah: The address handle to destroy.
- */
-int ib_destroy_ah(struct ib_ah *ah);
-
-/**
- * ib_create_srq - Creates a SRQ associated with the specified protection
- * domain.
- * @pd: The protection domain associated with the SRQ.
- * @srq_init_attr: A list of initial attributes required to create the
- * SRQ. If SRQ creation succeeds, then the attributes are updated to
- * the actual capabilities of the created SRQ.
- *
- * srq_attr->max_wr and srq_attr->max_sge are read the determine the
- * requested size of the SRQ, and set to the actual values allocated
- * on return. If ib_create_srq() succeeds, then max_wr and max_sge
- * will always be at least as large as the requested values.
- */
-struct ib_srq *ib_create_srq(struct ib_pd *pd,
- struct ib_srq_init_attr *srq_init_attr);
-
-/**
- * ib_modify_srq - Modifies the attributes for the specified SRQ.
- * @srq: The SRQ to modify.
- * @srq_attr: On input, specifies the SRQ attributes to modify. On output,
- * the current values of selected SRQ attributes are returned.
- * @srq_attr_mask: A bit-mask used to specify which attributes of the SRQ
- * are being modified.
- *
- * The mask may contain IB_SRQ_MAX_WR to resize the SRQ and/or
- * IB_SRQ_LIMIT to set the SRQ's limit and request notification when
- * the number of receives queued drops below the limit.
- */
-int ib_modify_srq(struct ib_srq *srq,
- struct ib_srq_attr *srq_attr,
- enum ib_srq_attr_mask srq_attr_mask);
-
-/**
- * ib_query_srq - Returns the attribute list and current values for the
- * specified SRQ.
- * @srq: The SRQ to query.
- * @srq_attr: The attributes of the specified SRQ.
- */
-int ib_query_srq(struct ib_srq *srq,
- struct ib_srq_attr *srq_attr);
-
-/**
- * ib_destroy_srq - Destroys the specified SRQ.
- * @srq: The SRQ to destroy.
- */
-int ib_destroy_srq(struct ib_srq *srq);
-
-/**
- * ib_post_srq_recv - Posts a list of work requests to the specified SRQ.
- * @srq: The SRQ to post the work request on.
- * @recv_wr: A list of work requests to post on the receive queue.
- * @bad_recv_wr: On an immediate failure, this parameter will reference
- * the work request that failed to be posted on the QP.
- */
-static inline int ib_post_srq_recv(struct ib_srq *srq,
- struct ib_recv_wr *recv_wr,
- struct ib_recv_wr **bad_recv_wr)
-{
- return srq->device->post_srq_recv(srq, recv_wr, bad_recv_wr);
-}
-
-/**
- * ib_create_qp - Creates a QP associated with the specified protection
- * domain.
- * @pd: The protection domain associated with the QP.
- * @qp_init_attr: A list of initial attributes required to create the
- * QP. If QP creation succeeds, then the attributes are updated to
- * the actual capabilities of the created QP.
- */
-struct ib_qp *ib_create_qp(struct ib_pd *pd,
- struct ib_qp_init_attr *qp_init_attr);
-
-/**
- * ib_modify_qp - Modifies the attributes for the specified QP and then
- * transitions the QP to the given state.
- * @qp: The QP to modify.
- * @qp_attr: On input, specifies the QP attributes to modify. On output,
- * the current values of selected QP attributes are returned.
- * @qp_attr_mask: A bit-mask used to specify which attributes of the QP
- * are being modified.
- */
-int ib_modify_qp(struct ib_qp *qp,
- struct ib_qp_attr *qp_attr,
- int qp_attr_mask);
-
-/**
- * ib_query_qp - Returns the attribute list and current values for the
- * specified QP.
- * @qp: The QP to query.
- * @qp_attr: The attributes of the specified QP.
- * @qp_attr_mask: A bit-mask used to select specific attributes to query.
- * @qp_init_attr: Additional attributes of the selected QP.
- *
- * The qp_attr_mask may be used to limit the query to gathering only the
- * selected attributes.
- */
-int ib_query_qp(struct ib_qp *qp,
- struct ib_qp_attr *qp_attr,
- int qp_attr_mask,
- struct ib_qp_init_attr *qp_init_attr);
-
-/**
- * ib_destroy_qp - Destroys the specified QP.
- * @qp: The QP to destroy.
- */
-int ib_destroy_qp(struct ib_qp *qp);
-
-/**
- * ib_open_qp - Obtain a reference to an existing sharable QP.
- * @xrcd - XRC domain
- * @qp_open_attr: Attributes identifying the QP to open.
- *
- * Returns a reference to a sharable QP.
- */
-struct ib_qp *ib_open_qp(struct ib_xrcd *xrcd,
- struct ib_qp_open_attr *qp_open_attr);
-
-/**
- * ib_close_qp - Release an external reference to a QP.
- * @qp: The QP handle to release
- *
- * The opened QP handle is released by the caller. The underlying
- * shared QP is not destroyed until all internal references are released.
- */
-int ib_close_qp(struct ib_qp *qp);
-
-/**
- * ib_post_send - Posts a list of work requests to the send queue of
- * the specified QP.
- * @qp: The QP to post the work request on.
- * @send_wr: A list of work requests to post on the send queue.
- * @bad_send_wr: On an immediate failure, this parameter will reference
- * the work request that failed to be posted on the QP.
- *
- * While IBA Vol. 1 section 11.4.1.1 specifies that if an immediate
- * error is returned, the QP state shall not be affected,
- * ib_post_send() will return an immediate error after queueing any
- * earlier work requests in the list.
- */
-static inline int ib_post_send(struct ib_qp *qp,
- struct ib_send_wr *send_wr,
- struct ib_send_wr **bad_send_wr)
-{
- return qp->device->post_send(qp, send_wr, bad_send_wr);
-}
-
-/**
- * ib_post_recv - Posts a list of work requests to the receive queue of
- * the specified QP.
- * @qp: The QP to post the work request on.
- * @recv_wr: A list of work requests to post on the receive queue.
- * @bad_recv_wr: On an immediate failure, this parameter will reference
- * the work request that failed to be posted on the QP.
- */
-static inline int ib_post_recv(struct ib_qp *qp,
- struct ib_recv_wr *recv_wr,
- struct ib_recv_wr **bad_recv_wr)
-{
- return qp->device->post_recv(qp, recv_wr, bad_recv_wr);
-}
-
-/**
- * ib_create_cq - Creates a CQ on the specified device.
- * @device: The device on which to create the CQ.
- * @comp_handler: A user-specified callback that is invoked when a
- * completion event occurs on the CQ.
- * @event_handler: A user-specified callback that is invoked when an
- * asynchronous event not associated with a completion occurs on the CQ.
- * @cq_context: Context associated with the CQ returned to the user via
- * the associated completion and event handlers.
- * @cqe: The minimum size of the CQ.
- * @comp_vector - Completion vector used to signal completion events.
- * Must be >= 0 and < context->num_comp_vectors.
- *
- * Users can examine the cq structure to determine the actual CQ size.
- */
-struct ib_cq *ib_create_cq(struct ib_device *device,
- ib_comp_handler comp_handler,
- void (*event_handler)(struct ib_event *, void *),
- void *cq_context, int cqe, int comp_vector);
-
-/**
- * ib_resize_cq - Modifies the capacity of the CQ.
- * @cq: The CQ to resize.
- * @cqe: The minimum size of the CQ.
- *
- * Users can examine the cq structure to determine the actual CQ size.
- */
-int ib_resize_cq(struct ib_cq *cq, int cqe);
-
-/**
- * ib_modify_cq - Modifies moderation params of the CQ
- * @cq: The CQ to modify.
- * @cq_count: number of CQEs that will trigger an event
- * @cq_period: max period of time in usec before triggering an event
- *
- */
-int ib_modify_cq(struct ib_cq *cq, u16 cq_count, u16 cq_period);
-
-/**
- * ib_destroy_cq - Destroys the specified CQ.
- * @cq: The CQ to destroy.
- */
-int ib_destroy_cq(struct ib_cq *cq);
-
-/**
- * ib_poll_cq - poll a CQ for completion(s)
- * @cq:the CQ being polled
- * @num_entries:maximum number of completions to return
- * @wc:array of at least @num_entries &struct ib_wc where completions
- * will be returned
- *
- * Poll a CQ for (possibly multiple) completions. If the return value
- * is < 0, an error occurred. If the return value is >= 0, it is the
- * number of completions returned. If the return value is
- * non-negative and < num_entries, then the CQ was emptied.
- */
-static inline int ib_poll_cq(struct ib_cq *cq, int num_entries,
- struct ib_wc *wc)
-{
- return cq->device->poll_cq(cq, num_entries, wc);
-}
-
-/**
- * ib_peek_cq - Returns the number of unreaped completions currently
- * on the specified CQ.
- * @cq: The CQ to peek.
- * @wc_cnt: A minimum number of unreaped completions to check for.
- *
- * If the number of unreaped completions is greater than or equal to wc_cnt,
- * this function returns wc_cnt, otherwise, it returns the actual number of
- * unreaped completions.
- */
-int ib_peek_cq(struct ib_cq *cq, int wc_cnt);
-
-/**
- * ib_req_notify_cq - Request completion notification on a CQ.
- * @cq: The CQ to generate an event for.
- * @flags:
- * Must contain exactly one of %IB_CQ_SOLICITED or %IB_CQ_NEXT_COMP
- * to request an event on the next solicited event or next work
- * completion at any type, respectively. %IB_CQ_REPORT_MISSED_EVENTS
- * may also be |ed in to request a hint about missed events, as
- * described below.
- *
- * Return Value:
- * < 0 means an error occurred while requesting notification
- * == 0 means notification was requested successfully, and if
- * IB_CQ_REPORT_MISSED_EVENTS was passed in, then no events
- * were missed and it is safe to wait for another event. In
- * this case is it guaranteed that any work completions added
- * to the CQ since the last CQ poll will trigger a completion
- * notification event.
- * > 0 is only returned if IB_CQ_REPORT_MISSED_EVENTS was passed
- * in. It means that the consumer must poll the CQ again to
- * make sure it is empty to avoid missing an event because of a
- * race between requesting notification and an entry being
- * added to the CQ. This return value means it is possible
- * (but not guaranteed) that a work completion has been added
- * to the CQ since the last poll without triggering a
- * completion notification event.
- */
-static inline int ib_req_notify_cq(struct ib_cq *cq,
- enum ib_cq_notify_flags flags)
-{
- return cq->device->req_notify_cq(cq, flags);
-}
-
-/**
- * ib_req_ncomp_notif - Request completion notification when there are
- * at least the specified number of unreaped completions on the CQ.
- * @cq: The CQ to generate an event for.
- * @wc_cnt: The number of unreaped completions that should be on the
- * CQ before an event is generated.
- */
-static inline int ib_req_ncomp_notif(struct ib_cq *cq, int wc_cnt)
-{
- return cq->device->req_ncomp_notif ?
- cq->device->req_ncomp_notif(cq, wc_cnt) :
- -ENOSYS;
-}
-
-/**
- * ib_get_dma_mr - Returns a memory region for system memory that is
- * usable for DMA.
- * @pd: The protection domain associated with the memory region.
- * @mr_access_flags: Specifies the memory access rights.
- *
- * Note that the ib_dma_*() functions defined below must be used
- * to create/destroy addresses used with the Lkey or Rkey returned
- * by ib_get_dma_mr().
- */
-struct ib_mr *ib_get_dma_mr(struct ib_pd *pd, int mr_access_flags);
-
-/**
- * ib_dma_mapping_error - check a DMA addr for error
- * @dev: The device for which the dma_addr was created
- * @dma_addr: The DMA address to check
- */
-static inline int ib_dma_mapping_error(struct ib_device *dev, u64 dma_addr)
-{
- if (dev->dma_ops)
- return dev->dma_ops->mapping_error(dev, dma_addr);
- return dma_mapping_error(dev->dma_device, dma_addr);
-}
-
-/**
- * ib_dma_map_single - Map a kernel virtual address to DMA address
- * @dev: The device for which the dma_addr is to be created
- * @cpu_addr: The kernel virtual address
- * @size: The size of the region in bytes
- * @direction: The direction of the DMA
- */
-static inline u64 ib_dma_map_single(struct ib_device *dev,
- void *cpu_addr, size_t size,
- enum dma_data_direction direction)
-{
- if (dev->dma_ops)
- return dev->dma_ops->map_single(dev, cpu_addr, size, direction);
- return dma_map_single(dev->dma_device, cpu_addr, size, direction);
-}
-
-/**
- * ib_dma_unmap_single - Destroy a mapping created by ib_dma_map_single()
- * @dev: The device for which the DMA address was created
- * @addr: The DMA address
- * @size: The size of the region in bytes
- * @direction: The direction of the DMA
- */
-static inline void ib_dma_unmap_single(struct ib_device *dev,
- u64 addr, size_t size,
- enum dma_data_direction direction)
-{
- if (dev->dma_ops)
- dev->dma_ops->unmap_single(dev, addr, size, direction);
- else
- dma_unmap_single(dev->dma_device, addr, size, direction);
-}
-
-static inline u64 ib_dma_map_single_attrs(struct ib_device *dev,
- void *cpu_addr, size_t size,
- enum dma_data_direction direction,
- struct dma_attrs *attrs)
-{
- return dma_map_single_attrs(dev->dma_device, cpu_addr, size,
- direction, attrs);
-}
-
-static inline void ib_dma_unmap_single_attrs(struct ib_device *dev,
- u64 addr, size_t size,
- enum dma_data_direction direction,
- struct dma_attrs *attrs)
-{
- return dma_unmap_single_attrs(dev->dma_device, addr, size,
- direction, attrs);
-}
-
-/**
- * ib_dma_map_page - Map a physical page to DMA address
- * @dev: The device for which the dma_addr is to be created
- * @page: The page to be mapped
- * @offset: The offset within the page
- * @size: The size of the region in bytes
- * @direction: The direction of the DMA
- */
-static inline u64 ib_dma_map_page(struct ib_device *dev,
- struct page *page,
- unsigned long offset,
- size_t size,
- enum dma_data_direction direction)
-{
- if (dev->dma_ops)
- return dev->dma_ops->map_page(dev, page, offset, size, direction);
- return dma_map_page(dev->dma_device, page, offset, size, direction);
-}
-
-/**
- * ib_dma_unmap_page - Destroy a mapping created by ib_dma_map_page()
- * @dev: The device for which the DMA address was created
- * @addr: The DMA address
- * @size: The size of the region in bytes
- * @direction: The direction of the DMA
- */
-static inline void ib_dma_unmap_page(struct ib_device *dev,
- u64 addr, size_t size,
- enum dma_data_direction direction)
-{
- if (dev->dma_ops)
- dev->dma_ops->unmap_page(dev, addr, size, direction);
- else
- dma_unmap_page(dev->dma_device, addr, size, direction);
-}
-
-/**
- * ib_dma_map_sg - Map a scatter/gather list to DMA addresses
- * @dev: The device for which the DMA addresses are to be created
- * @sg: The array of scatter/gather entries
- * @nents: The number of scatter/gather entries
- * @direction: The direction of the DMA
- */
-static inline int ib_dma_map_sg(struct ib_device *dev,
- struct scatterlist *sg, int nents,
- enum dma_data_direction direction)
-{
- if (dev->dma_ops)
- return dev->dma_ops->map_sg(dev, sg, nents, direction);
- return dma_map_sg(dev->dma_device, sg, nents, direction);
-}
-
-/**
- * ib_dma_unmap_sg - Unmap a scatter/gather list of DMA addresses
- * @dev: The device for which the DMA addresses were created
- * @sg: The array of scatter/gather entries
- * @nents: The number of scatter/gather entries
- * @direction: The direction of the DMA
- */
-static inline void ib_dma_unmap_sg(struct ib_device *dev,
- struct scatterlist *sg, int nents,
- enum dma_data_direction direction)
-{
- if (dev->dma_ops)
- dev->dma_ops->unmap_sg(dev, sg, nents, direction);
- else
- dma_unmap_sg(dev->dma_device, sg, nents, direction);
-}
-
-static inline int ib_dma_map_sg_attrs(struct ib_device *dev,
- struct scatterlist *sg, int nents,
- enum dma_data_direction direction,
- struct dma_attrs *attrs)
-{
- return dma_map_sg_attrs(dev->dma_device, sg, nents, direction, attrs);
-}
-
-static inline void ib_dma_unmap_sg_attrs(struct ib_device *dev,
- struct scatterlist *sg, int nents,
- enum dma_data_direction direction,
- struct dma_attrs *attrs)
-{
- dma_unmap_sg_attrs(dev->dma_device, sg, nents, direction, attrs);
-}
-/**
- * ib_sg_dma_address - Return the DMA address from a scatter/gather entry
- * @dev: The device for which the DMA addresses were created
- * @sg: The scatter/gather entry
- */
-static inline u64 ib_sg_dma_address(struct ib_device *dev,
- struct scatterlist *sg)
-{
- if (dev->dma_ops)
- return dev->dma_ops->dma_address(dev, sg);
- return sg_dma_address(sg);
-}
-
-/**
- * ib_sg_dma_len - Return the DMA length from a scatter/gather entry
- * @dev: The device for which the DMA addresses were created
- * @sg: The scatter/gather entry
- */
-static inline unsigned int ib_sg_dma_len(struct ib_device *dev,
- struct scatterlist *sg)
-{
- if (dev->dma_ops)
- return dev->dma_ops->dma_len(dev, sg);
- return sg_dma_len(sg);
-}
-
-/**
- * ib_dma_sync_single_for_cpu - Prepare DMA region to be accessed by CPU
- * @dev: The device for which the DMA address was created
- * @addr: The DMA address
- * @size: The size of the region in bytes
- * @dir: The direction of the DMA
- */
-static inline void ib_dma_sync_single_for_cpu(struct ib_device *dev,
- u64 addr,
- size_t size,
- enum dma_data_direction dir)
-{
- if (dev->dma_ops)
- dev->dma_ops->sync_single_for_cpu(dev, addr, size, dir);
- else
- dma_sync_single_for_cpu(dev->dma_device, addr, size, dir);
-}
-
-/**
- * ib_dma_sync_single_for_device - Prepare DMA region to be accessed by device
- * @dev: The device for which the DMA address was created
- * @addr: The DMA address
- * @size: The size of the region in bytes
- * @dir: The direction of the DMA
- */
-static inline void ib_dma_sync_single_for_device(struct ib_device *dev,
- u64 addr,
- size_t size,
- enum dma_data_direction dir)
-{
- if (dev->dma_ops)
- dev->dma_ops->sync_single_for_device(dev, addr, size, dir);
- else
- dma_sync_single_for_device(dev->dma_device, addr, size, dir);
-}
-
-/**
- * ib_dma_alloc_coherent - Allocate memory and map it for DMA
- * @dev: The device for which the DMA address is requested
- * @size: The size of the region to allocate in bytes
- * @dma_handle: A pointer for returning the DMA address of the region
- * @flag: memory allocator flags
- */
-static inline void *ib_dma_alloc_coherent(struct ib_device *dev,
- size_t size,
- u64 *dma_handle,
- gfp_t flag)
-{
- if (dev->dma_ops)
- return dev->dma_ops->alloc_coherent(dev, size, dma_handle, flag);
- else {
- dma_addr_t handle;
- void *ret;
-
- ret = dma_alloc_coherent(dev->dma_device, size, &handle, flag);
- *dma_handle = handle;
- return ret;
- }
-}
-
-/**
- * ib_dma_free_coherent - Free memory allocated by ib_dma_alloc_coherent()
- * @dev: The device for which the DMA addresses were allocated
- * @size: The size of the region
- * @cpu_addr: the address returned by ib_dma_alloc_coherent()
- * @dma_handle: the DMA address returned by ib_dma_alloc_coherent()
- */
-static inline void ib_dma_free_coherent(struct ib_device *dev,
- size_t size, void *cpu_addr,
- u64 dma_handle)
-{
- if (dev->dma_ops)
- dev->dma_ops->free_coherent(dev, size, cpu_addr, dma_handle);
- else
- dma_free_coherent(dev->dma_device, size, cpu_addr, dma_handle);
-}
-
-/**
- * ib_reg_phys_mr - Prepares a virtually addressed memory region for use
- * by an HCA.
- * @pd: The protection domain associated assigned to the registered region.
- * @phys_buf_array: Specifies a list of physical buffers to use in the
- * memory region.
- * @num_phys_buf: Specifies the size of the phys_buf_array.
- * @mr_access_flags: Specifies the memory access rights.
- * @iova_start: The offset of the region's starting I/O virtual address.
- */
-struct ib_mr *ib_reg_phys_mr(struct ib_pd *pd,
- struct ib_phys_buf *phys_buf_array,
- int num_phys_buf,
- int mr_access_flags,
- u64 *iova_start);
-
-/**
- * ib_rereg_phys_mr - Modifies the attributes of an existing memory region.
- * Conceptually, this call performs the functions deregister memory region
- * followed by register physical memory region. Where possible,
- * resources are reused instead of deallocated and reallocated.
- * @mr: The memory region to modify.
- * @mr_rereg_mask: A bit-mask used to indicate which of the following
- * properties of the memory region are being modified.
- * @pd: If %IB_MR_REREG_PD is set in mr_rereg_mask, this field specifies
- * the new protection domain to associated with the memory region,
- * otherwise, this parameter is ignored.
- * @phys_buf_array: If %IB_MR_REREG_TRANS is set in mr_rereg_mask, this
- * field specifies a list of physical buffers to use in the new
- * translation, otherwise, this parameter is ignored.
- * @num_phys_buf: If %IB_MR_REREG_TRANS is set in mr_rereg_mask, this
- * field specifies the size of the phys_buf_array, otherwise, this
- * parameter is ignored.
- * @mr_access_flags: If %IB_MR_REREG_ACCESS is set in mr_rereg_mask, this
- * field specifies the new memory access rights, otherwise, this
- * parameter is ignored.
- * @iova_start: The offset of the region's starting I/O virtual address.
- */
-int ib_rereg_phys_mr(struct ib_mr *mr,
- int mr_rereg_mask,
- struct ib_pd *pd,
- struct ib_phys_buf *phys_buf_array,
- int num_phys_buf,
- int mr_access_flags,
- u64 *iova_start);
-
-/**
- * ib_query_mr - Retrieves information about a specific memory region.
- * @mr: The memory region to retrieve information about.
- * @mr_attr: The attributes of the specified memory region.
- */
-int ib_query_mr(struct ib_mr *mr, struct ib_mr_attr *mr_attr);
-
-/**
- * ib_dereg_mr - Deregisters a memory region and removes it from the
- * HCA translation table.
- * @mr: The memory region to deregister.
- */
-int ib_dereg_mr(struct ib_mr *mr);
-
-/**
- * ib_alloc_fast_reg_mr - Allocates memory region usable with the
- * IB_WR_FAST_REG_MR send work request.
- * @pd: The protection domain associated with the region.
- * @max_page_list_len: requested max physical buffer list length to be
- * used with fast register work requests for this MR.
- */
-struct ib_mr *ib_alloc_fast_reg_mr(struct ib_pd *pd, int max_page_list_len);
-
-/**
- * ib_alloc_fast_reg_page_list - Allocates a page list array
- * @device - ib device pointer.
- * @page_list_len - size of the page list array to be allocated.
- *
- * This allocates and returns a struct ib_fast_reg_page_list * and a
- * page_list array that is at least page_list_len in size. The actual
- * size is returned in max_page_list_len. The caller is responsible
- * for initializing the contents of the page_list array before posting
- * a send work request with the IB_WC_FAST_REG_MR opcode.
- *
- * The page_list array entries must be translated using one of the
- * ib_dma_*() functions just like the addresses passed to
- * ib_map_phys_fmr(). Once the ib_post_send() is issued, the struct
- * ib_fast_reg_page_list must not be modified by the caller until the
- * IB_WC_FAST_REG_MR work request completes.
- */
-struct ib_fast_reg_page_list *ib_alloc_fast_reg_page_list(
- struct ib_device *device, int page_list_len);
-
-/**
- * ib_free_fast_reg_page_list - Deallocates a previously allocated
- * page list array.
- * @page_list - struct ib_fast_reg_page_list pointer to be deallocated.
- */
-void ib_free_fast_reg_page_list(struct ib_fast_reg_page_list *page_list);
-
-/**
- * ib_update_fast_reg_key - updates the key portion of the fast_reg MR
- * R_Key and L_Key.
- * @mr - struct ib_mr pointer to be updated.
- * @newkey - new key to be used.
- */
-static inline void ib_update_fast_reg_key(struct ib_mr *mr, u8 newkey)
-{
- mr->lkey = (mr->lkey & 0xffffff00) | newkey;
- mr->rkey = (mr->rkey & 0xffffff00) | newkey;
-}
-
-/**
- * ib_alloc_mw - Allocates a memory window.
- * @pd: The protection domain associated with the memory window.
- */
-struct ib_mw *ib_alloc_mw(struct ib_pd *pd);
-
-/**
- * ib_bind_mw - Posts a work request to the send queue of the specified
- * QP, which binds the memory window to the given address range and
- * remote access attributes.
- * @qp: QP to post the bind work request on.
- * @mw: The memory window to bind.
- * @mw_bind: Specifies information about the memory window, including
- * its address range, remote access rights, and associated memory region.
- */
-static inline int ib_bind_mw(struct ib_qp *qp,
- struct ib_mw *mw,
- struct ib_mw_bind *mw_bind)
-{
- /* XXX reference counting in corresponding MR? */
- return mw->device->bind_mw ?
- mw->device->bind_mw(qp, mw, mw_bind) :
- -ENOSYS;
-}
-
-/**
- * ib_dealloc_mw - Deallocates a memory window.
- * @mw: The memory window to deallocate.
- */
-int ib_dealloc_mw(struct ib_mw *mw);
-
-/**
- * ib_alloc_fmr - Allocates a unmapped fast memory region.
- * @pd: The protection domain associated with the unmapped region.
- * @mr_access_flags: Specifies the memory access rights.
- * @fmr_attr: Attributes of the unmapped region.
- *
- * A fast memory region must be mapped before it can be used as part of
- * a work request.
- */
-struct ib_fmr *ib_alloc_fmr(struct ib_pd *pd,
- int mr_access_flags,
- struct ib_fmr_attr *fmr_attr);
-
-/**
- * ib_map_phys_fmr - Maps a list of physical pages to a fast memory region.
- * @fmr: The fast memory region to associate with the pages.
- * @page_list: An array of physical pages to map to the fast memory region.
- * @list_len: The number of pages in page_list.
- * @iova: The I/O virtual address to use with the mapped region.
- */
-static inline int ib_map_phys_fmr(struct ib_fmr *fmr,
- u64 *page_list, int list_len,
- u64 iova)
-{
- return fmr->device->map_phys_fmr(fmr, page_list, list_len, iova);
-}
-
-/**
- * ib_unmap_fmr - Removes the mapping from a list of fast memory regions.
- * @fmr_list: A linked list of fast memory regions to unmap.
- */
-int ib_unmap_fmr(struct list_head *fmr_list);
-
-/**
- * ib_dealloc_fmr - Deallocates a fast memory region.
- * @fmr: The fast memory region to deallocate.
- */
-int ib_dealloc_fmr(struct ib_fmr *fmr);
-
-/**
- * ib_attach_mcast - Attaches the specified QP to a multicast group.
- * @qp: QP to attach to the multicast group. The QP must be type
- * IB_QPT_UD.
- * @gid: Multicast group GID.
- * @lid: Multicast group LID in host byte order.
- *
- * In order to send and receive multicast packets, subnet
- * administration must have created the multicast group and configured
- * the fabric appropriately. The port associated with the specified
- * QP must also be a member of the multicast group.
- */
-int ib_attach_mcast(struct ib_qp *qp, union ib_gid *gid, u16 lid);
-
-/**
- * ib_detach_mcast - Detaches the specified QP from a multicast group.
- * @qp: QP to detach from the multicast group.
- * @gid: Multicast group GID.
- * @lid: Multicast group LID in host byte order.
- */
-int ib_detach_mcast(struct ib_qp *qp, union ib_gid *gid, u16 lid);
-
-/**
- * ib_alloc_xrcd - Allocates an XRC domain.
- * @device: The device on which to allocate the XRC domain.
- */
-struct ib_xrcd *ib_alloc_xrcd(struct ib_device *device);
-
-/**
- * ib_dealloc_xrcd - Deallocates an XRC domain.
- * @xrcd: The XRC domain to deallocate.
- */
-int ib_dealloc_xrcd(struct ib_xrcd *xrcd);
-
-#endif /* IB_VERBS_H */
diff --git a/ANDROID_3.4.5/include/rdma/iw_cm.h b/ANDROID_3.4.5/include/rdma/iw_cm.h
deleted file mode 100644
index 1a046b15..00000000
--- a/ANDROID_3.4.5/include/rdma/iw_cm.h
+++ /dev/null
@@ -1,251 +0,0 @@
-/*
- * Copyright (c) 2005 Network Appliance, Inc. All rights reserved.
- * Copyright (c) 2005 Open Grid Computing, Inc. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef IW_CM_H
-#define IW_CM_H
-
-#include <linux/in.h>
-#include <rdma/ib_cm.h>
-
-struct iw_cm_id;
-
-enum iw_cm_event_type {
- IW_CM_EVENT_CONNECT_REQUEST = 1, /* connect request received */
- IW_CM_EVENT_CONNECT_REPLY, /* reply from active connect request */
- IW_CM_EVENT_ESTABLISHED, /* passive side accept successful */
- IW_CM_EVENT_DISCONNECT, /* orderly shutdown */
- IW_CM_EVENT_CLOSE /* close complete */
-};
-
-struct iw_cm_event {
- enum iw_cm_event_type event;
- int status;
- struct sockaddr_in local_addr;
- struct sockaddr_in remote_addr;
- void *private_data;
- void *provider_data;
- u8 private_data_len;
- u8 ord;
- u8 ird;
-};
-
-/**
- * iw_cm_handler - Function to be called by the IW CM when delivering events
- * to the client.
- *
- * @cm_id: The IW CM identifier associated with the event.
- * @event: Pointer to the event structure.
- */
-typedef int (*iw_cm_handler)(struct iw_cm_id *cm_id,
- struct iw_cm_event *event);
-
-/**
- * iw_event_handler - Function called by the provider when delivering provider
- * events to the IW CM. Returns either 0 indicating the event was processed
- * or -errno if the event could not be processed.
- *
- * @cm_id: The IW CM identifier associated with the event.
- * @event: Pointer to the event structure.
- */
-typedef int (*iw_event_handler)(struct iw_cm_id *cm_id,
- struct iw_cm_event *event);
-
-struct iw_cm_id {
- iw_cm_handler cm_handler; /* client callback function */
- void *context; /* client cb context */
- struct ib_device *device;
- struct sockaddr_in local_addr;
- struct sockaddr_in remote_addr;
- void *provider_data; /* provider private data */
- iw_event_handler event_handler; /* cb for provider
- events */
- /* Used by provider to add and remove refs on IW cm_id */
- void (*add_ref)(struct iw_cm_id *);
- void (*rem_ref)(struct iw_cm_id *);
-};
-
-struct iw_cm_conn_param {
- const void *private_data;
- u16 private_data_len;
- u32 ord;
- u32 ird;
- u32 qpn;
-};
-
-struct iw_cm_verbs {
- void (*add_ref)(struct ib_qp *qp);
-
- void (*rem_ref)(struct ib_qp *qp);
-
- struct ib_qp * (*get_qp)(struct ib_device *device,
- int qpn);
-
- int (*connect)(struct iw_cm_id *cm_id,
- struct iw_cm_conn_param *conn_param);
-
- int (*accept)(struct iw_cm_id *cm_id,
- struct iw_cm_conn_param *conn_param);
-
- int (*reject)(struct iw_cm_id *cm_id,
- const void *pdata, u8 pdata_len);
-
- int (*create_listen)(struct iw_cm_id *cm_id,
- int backlog);
-
- int (*destroy_listen)(struct iw_cm_id *cm_id);
-};
-
-/**
- * iw_create_cm_id - Create an IW CM identifier.
- *
- * @device: The IB device on which to create the IW CM identier.
- * @event_handler: User callback invoked to report events associated with the
- * returned IW CM identifier.
- * @context: User specified context associated with the id.
- */
-struct iw_cm_id *iw_create_cm_id(struct ib_device *device,
- iw_cm_handler cm_handler, void *context);
-
-/**
- * iw_destroy_cm_id - Destroy an IW CM identifier.
- *
- * @cm_id: The previously created IW CM identifier to destroy.
- *
- * The client can assume that no events will be delivered for the CM ID after
- * this function returns.
- */
-void iw_destroy_cm_id(struct iw_cm_id *cm_id);
-
-/**
- * iw_cm_bind_qp - Unbind the specified IW CM identifier and QP
- *
- * @cm_id: The IW CM idenfier to unbind from the QP.
- * @qp: The QP
- *
- * This is called by the provider when destroying the QP to ensure
- * that any references held by the IWCM are released. It may also
- * be called by the IWCM when destroying a CM_ID to that any
- * references held by the provider are released.
- */
-void iw_cm_unbind_qp(struct iw_cm_id *cm_id, struct ib_qp *qp);
-
-/**
- * iw_cm_get_qp - Return the ib_qp associated with a QPN
- *
- * @ib_device: The IB device
- * @qpn: The queue pair number
- */
-struct ib_qp *iw_cm_get_qp(struct ib_device *device, int qpn);
-
-/**
- * iw_cm_listen - Listen for incoming connection requests on the
- * specified IW CM id.
- *
- * @cm_id: The IW CM identifier.
- * @backlog: The maximum number of outstanding un-accepted inbound listen
- * requests to queue.
- *
- * The source address and port number are specified in the IW CM identifier
- * structure.
- */
-int iw_cm_listen(struct iw_cm_id *cm_id, int backlog);
-
-/**
- * iw_cm_accept - Called to accept an incoming connect request.
- *
- * @cm_id: The IW CM identifier associated with the connection request.
- * @iw_param: Pointer to a structure containing connection establishment
- * parameters.
- *
- * The specified cm_id will have been provided in the event data for a
- * CONNECT_REQUEST event. Subsequent events related to this connection will be
- * delivered to the specified IW CM identifier prior and may occur prior to
- * the return of this function. If this function returns a non-zero value, the
- * client can assume that no events will be delivered to the specified IW CM
- * identifier.
- */
-int iw_cm_accept(struct iw_cm_id *cm_id, struct iw_cm_conn_param *iw_param);
-
-/**
- * iw_cm_reject - Reject an incoming connection request.
- *
- * @cm_id: Connection identifier associated with the request.
- * @private_daa: Pointer to data to deliver to the remote peer as part of the
- * reject message.
- * @private_data_len: The number of bytes in the private_data parameter.
- *
- * The client can assume that no events will be delivered to the specified IW
- * CM identifier following the return of this function. The private_data
- * buffer is available for reuse when this function returns.
- */
-int iw_cm_reject(struct iw_cm_id *cm_id, const void *private_data,
- u8 private_data_len);
-
-/**
- * iw_cm_connect - Called to request a connection to a remote peer.
- *
- * @cm_id: The IW CM identifier for the connection.
- * @iw_param: Pointer to a structure containing connection establishment
- * parameters.
- *
- * Events may be delivered to the specified IW CM identifier prior to the
- * return of this function. If this function returns a non-zero value, the
- * client can assume that no events will be delivered to the specified IW CM
- * identifier.
- */
-int iw_cm_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *iw_param);
-
-/**
- * iw_cm_disconnect - Close the specified connection.
- *
- * @cm_id: The IW CM identifier to close.
- * @abrupt: If 0, the connection will be closed gracefully, otherwise, the
- * connection will be reset.
- *
- * The IW CM identifier is still active until the IW_CM_EVENT_CLOSE event is
- * delivered.
- */
-int iw_cm_disconnect(struct iw_cm_id *cm_id, int abrupt);
-
-/**
- * iw_cm_init_qp_attr - Called to initialize the attributes of the QP
- * associated with a IW CM identifier.
- *
- * @cm_id: The IW CM identifier associated with the QP
- * @qp_attr: Pointer to the QP attributes structure.
- * @qp_attr_mask: Pointer to a bit vector specifying which QP attributes are
- * valid.
- */
-int iw_cm_init_qp_attr(struct iw_cm_id *cm_id, struct ib_qp_attr *qp_attr,
- int *qp_attr_mask);
-
-#endif /* IW_CM_H */
diff --git a/ANDROID_3.4.5/include/rdma/rdma_cm.h b/ANDROID_3.4.5/include/rdma/rdma_cm.h
deleted file mode 100644
index 51988f80..00000000
--- a/ANDROID_3.4.5/include/rdma/rdma_cm.h
+++ /dev/null
@@ -1,360 +0,0 @@
-/*
- * Copyright (c) 2005 Voltaire Inc. All rights reserved.
- * Copyright (c) 2005 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#if !defined(RDMA_CM_H)
-#define RDMA_CM_H
-
-#include <linux/socket.h>
-#include <linux/in6.h>
-#include <rdma/ib_addr.h>
-#include <rdma/ib_sa.h>
-
-/*
- * Upon receiving a device removal event, users must destroy the associated
- * RDMA identifier and release all resources allocated with the device.
- */
-enum rdma_cm_event_type {
- RDMA_CM_EVENT_ADDR_RESOLVED,
- RDMA_CM_EVENT_ADDR_ERROR,
- RDMA_CM_EVENT_ROUTE_RESOLVED,
- RDMA_CM_EVENT_ROUTE_ERROR,
- RDMA_CM_EVENT_CONNECT_REQUEST,
- RDMA_CM_EVENT_CONNECT_RESPONSE,
- RDMA_CM_EVENT_CONNECT_ERROR,
- RDMA_CM_EVENT_UNREACHABLE,
- RDMA_CM_EVENT_REJECTED,
- RDMA_CM_EVENT_ESTABLISHED,
- RDMA_CM_EVENT_DISCONNECTED,
- RDMA_CM_EVENT_DEVICE_REMOVAL,
- RDMA_CM_EVENT_MULTICAST_JOIN,
- RDMA_CM_EVENT_MULTICAST_ERROR,
- RDMA_CM_EVENT_ADDR_CHANGE,
- RDMA_CM_EVENT_TIMEWAIT_EXIT
-};
-
-enum rdma_port_space {
- RDMA_PS_SDP = 0x0001,
- RDMA_PS_IPOIB = 0x0002,
- RDMA_PS_IB = 0x013F,
- RDMA_PS_TCP = 0x0106,
- RDMA_PS_UDP = 0x0111,
-};
-
-struct rdma_addr {
- struct sockaddr_storage src_addr;
- struct sockaddr_storage dst_addr;
- struct rdma_dev_addr dev_addr;
-};
-
-struct rdma_route {
- struct rdma_addr addr;
- struct ib_sa_path_rec *path_rec;
- int num_paths;
-};
-
-struct rdma_conn_param {
- const void *private_data;
- u8 private_data_len;
- u8 responder_resources;
- u8 initiator_depth;
- u8 flow_control;
- u8 retry_count; /* ignored when accepting */
- u8 rnr_retry_count;
- /* Fields below ignored if a QP is created on the rdma_cm_id. */
- u8 srq;
- u32 qp_num;
-};
-
-struct rdma_ud_param {
- const void *private_data;
- u8 private_data_len;
- struct ib_ah_attr ah_attr;
- u32 qp_num;
- u32 qkey;
-};
-
-struct rdma_cm_event {
- enum rdma_cm_event_type event;
- int status;
- union {
- struct rdma_conn_param conn;
- struct rdma_ud_param ud;
- } param;
-};
-
-enum rdma_cm_state {
- RDMA_CM_IDLE,
- RDMA_CM_ADDR_QUERY,
- RDMA_CM_ADDR_RESOLVED,
- RDMA_CM_ROUTE_QUERY,
- RDMA_CM_ROUTE_RESOLVED,
- RDMA_CM_CONNECT,
- RDMA_CM_DISCONNECT,
- RDMA_CM_ADDR_BOUND,
- RDMA_CM_LISTEN,
- RDMA_CM_DEVICE_REMOVAL,
- RDMA_CM_DESTROYING
-};
-
-struct rdma_cm_id;
-
-/**
- * rdma_cm_event_handler - Callback used to report user events.
- *
- * Notes: Users may not call rdma_destroy_id from this callback to destroy
- * the passed in id, or a corresponding listen id. Returning a
- * non-zero value from the callback will destroy the passed in id.
- */
-typedef int (*rdma_cm_event_handler)(struct rdma_cm_id *id,
- struct rdma_cm_event *event);
-
-struct rdma_cm_id {
- struct ib_device *device;
- void *context;
- struct ib_qp *qp;
- rdma_cm_event_handler event_handler;
- struct rdma_route route;
- enum rdma_port_space ps;
- enum ib_qp_type qp_type;
- u8 port_num;
-};
-
-/**
- * rdma_create_id - Create an RDMA identifier.
- *
- * @event_handler: User callback invoked to report events associated with the
- * returned rdma_id.
- * @context: User specified context associated with the id.
- * @ps: RDMA port space.
- * @qp_type: type of queue pair associated with the id.
- */
-struct rdma_cm_id *rdma_create_id(rdma_cm_event_handler event_handler,
- void *context, enum rdma_port_space ps,
- enum ib_qp_type qp_type);
-
-/**
- * rdma_destroy_id - Destroys an RDMA identifier.
- *
- * @id: RDMA identifier.
- *
- * Note: calling this function has the effect of canceling in-flight
- * asynchronous operations associated with the id.
- */
-void rdma_destroy_id(struct rdma_cm_id *id);
-
-/**
- * rdma_bind_addr - Bind an RDMA identifier to a source address and
- * associated RDMA device, if needed.
- *
- * @id: RDMA identifier.
- * @addr: Local address information. Wildcard values are permitted.
- *
- * This associates a source address with the RDMA identifier before calling
- * rdma_listen. If a specific local address is given, the RDMA identifier will
- * be bound to a local RDMA device.
- */
-int rdma_bind_addr(struct rdma_cm_id *id, struct sockaddr *addr);
-
-/**
- * rdma_resolve_addr - Resolve destination and optional source addresses
- * from IP addresses to an RDMA address. If successful, the specified
- * rdma_cm_id will be bound to a local device.
- *
- * @id: RDMA identifier.
- * @src_addr: Source address information. This parameter may be NULL.
- * @dst_addr: Destination address information.
- * @timeout_ms: Time to wait for resolution to complete.
- */
-int rdma_resolve_addr(struct rdma_cm_id *id, struct sockaddr *src_addr,
- struct sockaddr *dst_addr, int timeout_ms);
-
-/**
- * rdma_resolve_route - Resolve the RDMA address bound to the RDMA identifier
- * into route information needed to establish a connection.
- *
- * This is called on the client side of a connection.
- * Users must have first called rdma_resolve_addr to resolve a dst_addr
- * into an RDMA address before calling this routine.
- */
-int rdma_resolve_route(struct rdma_cm_id *id, int timeout_ms);
-
-/**
- * rdma_create_qp - Allocate a QP and associate it with the specified RDMA
- * identifier.
- *
- * QPs allocated to an rdma_cm_id will automatically be transitioned by the CMA
- * through their states.
- */
-int rdma_create_qp(struct rdma_cm_id *id, struct ib_pd *pd,
- struct ib_qp_init_attr *qp_init_attr);
-
-/**
- * rdma_destroy_qp - Deallocate the QP associated with the specified RDMA
- * identifier.
- *
- * Users must destroy any QP associated with an RDMA identifier before
- * destroying the RDMA ID.
- */
-void rdma_destroy_qp(struct rdma_cm_id *id);
-
-/**
- * rdma_init_qp_attr - Initializes the QP attributes for use in transitioning
- * to a specified QP state.
- * @id: Communication identifier associated with the QP attributes to
- * initialize.
- * @qp_attr: On input, specifies the desired QP state. On output, the
- * mandatory and desired optional attributes will be set in order to
- * modify the QP to the specified state.
- * @qp_attr_mask: The QP attribute mask that may be used to transition the
- * QP to the specified state.
- *
- * Users must set the @qp_attr->qp_state to the desired QP state. This call
- * will set all required attributes for the given transition, along with
- * known optional attributes. Users may override the attributes returned from
- * this call before calling ib_modify_qp.
- *
- * Users that wish to have their QP automatically transitioned through its
- * states can associate a QP with the rdma_cm_id by calling rdma_create_qp().
- */
-int rdma_init_qp_attr(struct rdma_cm_id *id, struct ib_qp_attr *qp_attr,
- int *qp_attr_mask);
-
-/**
- * rdma_connect - Initiate an active connection request.
- * @id: Connection identifier to connect.
- * @conn_param: Connection information used for connected QPs.
- *
- * Users must have resolved a route for the rdma_cm_id to connect with
- * by having called rdma_resolve_route before calling this routine.
- *
- * This call will either connect to a remote QP or obtain remote QP
- * information for unconnected rdma_cm_id's. The actual operation is
- * based on the rdma_cm_id's port space.
- */
-int rdma_connect(struct rdma_cm_id *id, struct rdma_conn_param *conn_param);
-
-/**
- * rdma_listen - This function is called by the passive side to
- * listen for incoming connection requests.
- *
- * Users must have bound the rdma_cm_id to a local address by calling
- * rdma_bind_addr before calling this routine.
- */
-int rdma_listen(struct rdma_cm_id *id, int backlog);
-
-/**
- * rdma_accept - Called to accept a connection request or response.
- * @id: Connection identifier associated with the request.
- * @conn_param: Information needed to establish the connection. This must be
- * provided if accepting a connection request. If accepting a connection
- * response, this parameter must be NULL.
- *
- * Typically, this routine is only called by the listener to accept a connection
- * request. It must also be called on the active side of a connection if the
- * user is performing their own QP transitions.
- *
- * In the case of error, a reject message is sent to the remote side and the
- * state of the qp associated with the id is modified to error, such that any
- * previously posted receive buffers would be flushed.
- */
-int rdma_accept(struct rdma_cm_id *id, struct rdma_conn_param *conn_param);
-
-/**
- * rdma_notify - Notifies the RDMA CM of an asynchronous event that has
- * occurred on the connection.
- * @id: Connection identifier to transition to established.
- * @event: Asynchronous event.
- *
- * This routine should be invoked by users to notify the CM of relevant
- * communication events. Events that should be reported to the CM and
- * when to report them are:
- *
- * IB_EVENT_COMM_EST - Used when a message is received on a connected
- * QP before an RTU has been received.
- */
-int rdma_notify(struct rdma_cm_id *id, enum ib_event_type event);
-
-/**
- * rdma_reject - Called to reject a connection request or response.
- */
-int rdma_reject(struct rdma_cm_id *id, const void *private_data,
- u8 private_data_len);
-
-/**
- * rdma_disconnect - This function disconnects the associated QP and
- * transitions it into the error state.
- */
-int rdma_disconnect(struct rdma_cm_id *id);
-
-/**
- * rdma_join_multicast - Join the multicast group specified by the given
- * address.
- * @id: Communication identifier associated with the request.
- * @addr: Multicast address identifying the group to join.
- * @context: User-defined context associated with the join request, returned
- * to the user through the private_data pointer in multicast events.
- */
-int rdma_join_multicast(struct rdma_cm_id *id, struct sockaddr *addr,
- void *context);
-
-/**
- * rdma_leave_multicast - Leave the multicast group specified by the given
- * address.
- */
-void rdma_leave_multicast(struct rdma_cm_id *id, struct sockaddr *addr);
-
-/**
- * rdma_set_service_type - Set the type of service associated with a
- * connection identifier.
- * @id: Communication identifier to associated with service type.
- * @tos: Type of service.
- *
- * The type of service is interpretted as a differentiated service
- * field (RFC 2474). The service type should be specified before
- * performing route resolution, as existing communication on the
- * connection identifier may be unaffected. The type of service
- * requested may not be supported by the network to all destinations.
- */
-void rdma_set_service_type(struct rdma_cm_id *id, int tos);
-
-/**
- * rdma_set_reuseaddr - Allow the reuse of local addresses when binding
- * the rdma_cm_id.
- * @id: Communication identifier to configure.
- * @reuse: Value indicating if the bound address is reusable.
- *
- * Reuse must be set before an address is bound to the id.
- */
-int rdma_set_reuseaddr(struct rdma_cm_id *id, int reuse);
-
-#endif /* RDMA_CM_H */
diff --git a/ANDROID_3.4.5/include/rdma/rdma_cm_ib.h b/ANDROID_3.4.5/include/rdma/rdma_cm_ib.h
deleted file mode 100644
index 2389c3b4..00000000
--- a/ANDROID_3.4.5/include/rdma/rdma_cm_ib.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (c) 2006 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#if !defined(RDMA_CM_IB_H)
-#define RDMA_CM_IB_H
-
-#include <rdma/rdma_cm.h>
-
-/**
- * rdma_set_ib_paths - Manually sets the path records used to establish a
- * connection.
- * @id: Connection identifier associated with the request.
- * @path_rec: Reference to the path record
- *
- * This call permits a user to specify routing information for rdma_cm_id's
- * bound to Infiniband devices. It is called on the client side of a
- * connection and replaces the call to rdma_resolve_route.
- */
-int rdma_set_ib_paths(struct rdma_cm_id *id,
- struct ib_sa_path_rec *path_rec, int num_paths);
-
-/* Global qkey for UDP QPs and multicast groups. */
-#define RDMA_UDP_QKEY 0x01234567
-
-#endif /* RDMA_CM_IB_H */
diff --git a/ANDROID_3.4.5/include/rdma/rdma_netlink.h b/ANDROID_3.4.5/include/rdma/rdma_netlink.h
deleted file mode 100644
index 3c5363ab..00000000
--- a/ANDROID_3.4.5/include/rdma/rdma_netlink.h
+++ /dev/null
@@ -1,92 +0,0 @@
-#ifndef _RDMA_NETLINK_H
-#define _RDMA_NETLINK_H
-
-#include <linux/types.h>
-
-enum {
- RDMA_NL_RDMA_CM = 1
-};
-
-#define RDMA_NL_GET_CLIENT(type) ((type & (((1 << 6) - 1) << 10)) >> 10)
-#define RDMA_NL_GET_OP(type) (type & ((1 << 10) - 1))
-#define RDMA_NL_GET_TYPE(client, op) ((client << 10) + op)
-
-enum {
- RDMA_NL_RDMA_CM_ID_STATS = 0,
- RDMA_NL_RDMA_CM_NUM_OPS
-};
-
-enum {
- RDMA_NL_RDMA_CM_ATTR_SRC_ADDR = 1,
- RDMA_NL_RDMA_CM_ATTR_DST_ADDR,
- RDMA_NL_RDMA_CM_NUM_ATTR,
-};
-
-struct rdma_cm_id_stats {
- __u32 qp_num;
- __u32 bound_dev_if;
- __u32 port_space;
- __s32 pid;
- __u8 cm_state;
- __u8 node_type;
- __u8 port_num;
- __u8 qp_type;
-};
-
-#ifdef __KERNEL__
-
-#include <linux/netlink.h>
-
-struct ibnl_client_cbs {
- int (*dump)(struct sk_buff *skb, struct netlink_callback *nlcb);
-};
-
-int ibnl_init(void);
-void ibnl_cleanup(void);
-
-/**
- * Add a a client to the list of IB netlink exporters.
- * @index: Index of the added client
- * @nops: Number of supported ops by the added client.
- * @cb_table: A table for op->callback
- *
- * Returns 0 on success or a negative error code.
- */
-int ibnl_add_client(int index, int nops,
- const struct ibnl_client_cbs cb_table[]);
-
-/**
- * Remove a client from IB netlink.
- * @index: Index of the removed IB client.
- *
- * Returns 0 on success or a negative error code.
- */
-int ibnl_remove_client(int index);
-
-/**
- * Put a new message in a supplied skb.
- * @skb: The netlink skb.
- * @nlh: Pointer to put the header of the new netlink message.
- * @seq: The message sequence number.
- * @len: The requested message length to allocate.
- * @client: Calling IB netlink client.
- * @op: message content op.
- * Returns the allocated buffer on success and NULL on failure.
- */
-void *ibnl_put_msg(struct sk_buff *skb, struct nlmsghdr **nlh, int seq,
- int len, int client, int op);
-/**
- * Put a new attribute in a supplied skb.
- * @skb: The netlink skb.
- * @nlh: Header of the netlink message to append the attribute to.
- * @len: The length of the attribute data.
- * @data: The attribute data to put.
- * @type: The attribute type.
- * Returns the 0 and a negative error code on failure.
- */
-int ibnl_put_attr(struct sk_buff *skb, struct nlmsghdr *nlh,
- int len, void *data, int type);
-
-#endif /* __KERNEL__ */
-
-#endif /* _RDMA_NETLINK_H */
diff --git a/ANDROID_3.4.5/include/rdma/rdma_user_cm.h b/ANDROID_3.4.5/include/rdma/rdma_user_cm.h
deleted file mode 100644
index 5348a000..00000000
--- a/ANDROID_3.4.5/include/rdma/rdma_user_cm.h
+++ /dev/null
@@ -1,248 +0,0 @@
-/*
- * Copyright (c) 2005-2006 Intel Corporation. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#ifndef RDMA_USER_CM_H
-#define RDMA_USER_CM_H
-
-#include <linux/types.h>
-#include <linux/in6.h>
-#include <rdma/ib_user_verbs.h>
-#include <rdma/ib_user_sa.h>
-
-#define RDMA_USER_CM_ABI_VERSION 4
-
-#define RDMA_MAX_PRIVATE_DATA 256
-
-enum {
- RDMA_USER_CM_CMD_CREATE_ID,
- RDMA_USER_CM_CMD_DESTROY_ID,
- RDMA_USER_CM_CMD_BIND_ADDR,
- RDMA_USER_CM_CMD_RESOLVE_ADDR,
- RDMA_USER_CM_CMD_RESOLVE_ROUTE,
- RDMA_USER_CM_CMD_QUERY_ROUTE,
- RDMA_USER_CM_CMD_CONNECT,
- RDMA_USER_CM_CMD_LISTEN,
- RDMA_USER_CM_CMD_ACCEPT,
- RDMA_USER_CM_CMD_REJECT,
- RDMA_USER_CM_CMD_DISCONNECT,
- RDMA_USER_CM_CMD_INIT_QP_ATTR,
- RDMA_USER_CM_CMD_GET_EVENT,
- RDMA_USER_CM_CMD_GET_OPTION,
- RDMA_USER_CM_CMD_SET_OPTION,
- RDMA_USER_CM_CMD_NOTIFY,
- RDMA_USER_CM_CMD_JOIN_MCAST,
- RDMA_USER_CM_CMD_LEAVE_MCAST,
- RDMA_USER_CM_CMD_MIGRATE_ID
-};
-
-/*
- * command ABI structures.
- */
-struct rdma_ucm_cmd_hdr {
- __u32 cmd;
- __u16 in;
- __u16 out;
-};
-
-struct rdma_ucm_create_id {
- __u64 uid;
- __u64 response;
- __u16 ps;
- __u8 qp_type;
- __u8 reserved[5];
-};
-
-struct rdma_ucm_create_id_resp {
- __u32 id;
-};
-
-struct rdma_ucm_destroy_id {
- __u64 response;
- __u32 id;
- __u32 reserved;
-};
-
-struct rdma_ucm_destroy_id_resp {
- __u32 events_reported;
-};
-
-struct rdma_ucm_bind_addr {
- __u64 response;
- struct sockaddr_in6 addr;
- __u32 id;
-};
-
-struct rdma_ucm_resolve_addr {
- struct sockaddr_in6 src_addr;
- struct sockaddr_in6 dst_addr;
- __u32 id;
- __u32 timeout_ms;
-};
-
-struct rdma_ucm_resolve_route {
- __u32 id;
- __u32 timeout_ms;
-};
-
-struct rdma_ucm_query_route {
- __u64 response;
- __u32 id;
- __u32 reserved;
-};
-
-struct rdma_ucm_query_route_resp {
- __u64 node_guid;
- struct ib_user_path_rec ib_route[2];
- struct sockaddr_in6 src_addr;
- struct sockaddr_in6 dst_addr;
- __u32 num_paths;
- __u8 port_num;
- __u8 reserved[3];
-};
-
-struct rdma_ucm_conn_param {
- __u32 qp_num;
- __u32 reserved;
- __u8 private_data[RDMA_MAX_PRIVATE_DATA];
- __u8 private_data_len;
- __u8 srq;
- __u8 responder_resources;
- __u8 initiator_depth;
- __u8 flow_control;
- __u8 retry_count;
- __u8 rnr_retry_count;
- __u8 valid;
-};
-
-struct rdma_ucm_ud_param {
- __u32 qp_num;
- __u32 qkey;
- struct ib_uverbs_ah_attr ah_attr;
- __u8 private_data[RDMA_MAX_PRIVATE_DATA];
- __u8 private_data_len;
- __u8 reserved[7];
-};
-
-struct rdma_ucm_connect {
- struct rdma_ucm_conn_param conn_param;
- __u32 id;
- __u32 reserved;
-};
-
-struct rdma_ucm_listen {
- __u32 id;
- __u32 backlog;
-};
-
-struct rdma_ucm_accept {
- __u64 uid;
- struct rdma_ucm_conn_param conn_param;
- __u32 id;
- __u32 reserved;
-};
-
-struct rdma_ucm_reject {
- __u32 id;
- __u8 private_data_len;
- __u8 reserved[3];
- __u8 private_data[RDMA_MAX_PRIVATE_DATA];
-};
-
-struct rdma_ucm_disconnect {
- __u32 id;
-};
-
-struct rdma_ucm_init_qp_attr {
- __u64 response;
- __u32 id;
- __u32 qp_state;
-};
-
-struct rdma_ucm_notify {
- __u32 id;
- __u32 event;
-};
-
-struct rdma_ucm_join_mcast {
- __u64 response; /* rdma_ucm_create_id_resp */
- __u64 uid;
- struct sockaddr_in6 addr;
- __u32 id;
-};
-
-struct rdma_ucm_get_event {
- __u64 response;
-};
-
-struct rdma_ucm_event_resp {
- __u64 uid;
- __u32 id;
- __u32 event;
- __u32 status;
- union {
- struct rdma_ucm_conn_param conn;
- struct rdma_ucm_ud_param ud;
- } param;
-};
-
-/* Option levels */
-enum {
- RDMA_OPTION_ID = 0,
- RDMA_OPTION_IB = 1
-};
-
-/* Option details */
-enum {
- RDMA_OPTION_ID_TOS = 0,
- RDMA_OPTION_ID_REUSEADDR = 1,
- RDMA_OPTION_IB_PATH = 1
-};
-
-struct rdma_ucm_set_option {
- __u64 optval;
- __u32 id;
- __u32 level;
- __u32 optname;
- __u32 optlen;
-};
-
-struct rdma_ucm_migrate_id {
- __u64 response;
- __u32 id;
- __u32 fd;
-};
-
-struct rdma_ucm_migrate_resp {
- __u32 events_reported;
-};
-
-#endif /* RDMA_USER_CM_H */
diff --git a/ANDROID_3.4.5/include/rxrpc/packet.h b/ANDROID_3.4.5/include/rxrpc/packet.h
deleted file mode 100644
index f2902ef7..00000000
--- a/ANDROID_3.4.5/include/rxrpc/packet.h
+++ /dev/null
@@ -1,214 +0,0 @@
-/* packet.h: Rx packet layout and definitions
- *
- * Copyright (C) 2002, 2007 Red Hat, Inc. All Rights Reserved.
- * Written by David Howells (dhowells@redhat.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 _LINUX_RXRPC_PACKET_H
-#define _LINUX_RXRPC_PACKET_H
-
-typedef u32 rxrpc_seq_t; /* Rx message sequence number */
-typedef u32 rxrpc_serial_t; /* Rx message serial number */
-typedef __be32 rxrpc_seq_net_t; /* on-the-wire Rx message sequence number */
-typedef __be32 rxrpc_serial_net_t; /* on-the-wire Rx message serial number */
-
-/*****************************************************************************/
-/*
- * on-the-wire Rx packet header
- * - all multibyte fields should be in network byte order
- */
-struct rxrpc_header {
- __be32 epoch; /* client boot timestamp */
-
- __be32 cid; /* connection and channel ID */
-#define RXRPC_MAXCALLS 4 /* max active calls per conn */
-#define RXRPC_CHANNELMASK (RXRPC_MAXCALLS-1) /* mask for channel ID */
-#define RXRPC_CIDMASK (~RXRPC_CHANNELMASK) /* mask for connection ID */
-#define RXRPC_CIDSHIFT ilog2(RXRPC_MAXCALLS) /* shift for connection ID */
-#define RXRPC_CID_INC (1 << RXRPC_CIDSHIFT) /* connection ID increment */
-
- __be32 callNumber; /* call ID (0 for connection-level packets) */
-#define RXRPC_PROCESS_MAXCALLS (1<<2) /* maximum number of active calls per conn (power of 2) */
-
- __be32 seq; /* sequence number of pkt in call stream */
- __be32 serial; /* serial number of pkt sent to network */
-
- uint8_t type; /* packet type */
-#define RXRPC_PACKET_TYPE_DATA 1 /* data */
-#define RXRPC_PACKET_TYPE_ACK 2 /* ACK */
-#define RXRPC_PACKET_TYPE_BUSY 3 /* call reject */
-#define RXRPC_PACKET_TYPE_ABORT 4 /* call/connection abort */
-#define RXRPC_PACKET_TYPE_ACKALL 5 /* ACK all outstanding packets on call */
-#define RXRPC_PACKET_TYPE_CHALLENGE 6 /* connection security challenge (SRVR->CLNT) */
-#define RXRPC_PACKET_TYPE_RESPONSE 7 /* connection secutity response (CLNT->SRVR) */
-#define RXRPC_PACKET_TYPE_DEBUG 8 /* debug info request */
-#define RXRPC_N_PACKET_TYPES 9 /* number of packet types (incl type 0) */
-
- uint8_t flags; /* packet flags */
-#define RXRPC_CLIENT_INITIATED 0x01 /* signifies a packet generated by a client */
-#define RXRPC_REQUEST_ACK 0x02 /* request an unconditional ACK of this packet */
-#define RXRPC_LAST_PACKET 0x04 /* the last packet from this side for this call */
-#define RXRPC_MORE_PACKETS 0x08 /* more packets to come */
-#define RXRPC_JUMBO_PACKET 0x20 /* [DATA] this is a jumbo packet */
-#define RXRPC_SLOW_START_OK 0x20 /* [ACK] slow start supported */
-
- uint8_t userStatus; /* app-layer defined status */
- uint8_t securityIndex; /* security protocol ID */
- union {
- __be16 _rsvd; /* reserved */
- __be16 cksum; /* kerberos security checksum */
- };
- __be16 serviceId; /* service ID */
-
-} __packed;
-
-#define __rxrpc_header_off(X) offsetof(struct rxrpc_header,X)
-
-extern const char *rxrpc_pkts[];
-
-/*****************************************************************************/
-/*
- * jumbo packet secondary header
- * - can be mapped to read header by:
- * - new_serial = serial + 1
- * - new_seq = seq + 1
- * - new_flags = j_flags
- * - new__rsvd = j__rsvd
- * - duplicating all other fields
- */
-struct rxrpc_jumbo_header {
- uint8_t flags; /* packet flags (as per rxrpc_header) */
- uint8_t pad;
- __be16 _rsvd; /* reserved (used by kerberos security as cksum) */
-};
-
-#define RXRPC_JUMBO_DATALEN 1412 /* non-terminal jumbo packet data length */
-
-/*****************************************************************************/
-/*
- * on-the-wire Rx ACK packet data payload
- * - all multibyte fields should be in network byte order
- */
-struct rxrpc_ackpacket {
- __be16 bufferSpace; /* number of packet buffers available */
- __be16 maxSkew; /* diff between serno being ACK'd and highest serial no
- * received */
- __be32 firstPacket; /* sequence no of first ACK'd packet in attached list */
- __be32 previousPacket; /* sequence no of previous packet received */
- __be32 serial; /* serial no of packet that prompted this ACK */
-
- uint8_t reason; /* reason for ACK */
-#define RXRPC_ACK_REQUESTED 1 /* ACK was requested on packet */
-#define RXRPC_ACK_DUPLICATE 2 /* duplicate packet received */
-#define RXRPC_ACK_OUT_OF_SEQUENCE 3 /* out of sequence packet received */
-#define RXRPC_ACK_EXCEEDS_WINDOW 4 /* packet received beyond end of ACK window */
-#define RXRPC_ACK_NOSPACE 5 /* packet discarded due to lack of buffer space */
-#define RXRPC_ACK_PING 6 /* keep alive ACK */
-#define RXRPC_ACK_PING_RESPONSE 7 /* response to RXRPC_ACK_PING */
-#define RXRPC_ACK_DELAY 8 /* nothing happened since received packet */
-#define RXRPC_ACK_IDLE 9 /* ACK due to fully received ACK window */
-
- uint8_t nAcks; /* number of ACKs */
-#define RXRPC_MAXACKS 255
-
- uint8_t acks[0]; /* list of ACK/NAKs */
-#define RXRPC_ACK_TYPE_NACK 0
-#define RXRPC_ACK_TYPE_ACK 1
-
-} __packed;
-
-/*
- * ACK packets can have a further piece of information tagged on the end
- */
-struct rxrpc_ackinfo {
- __be32 rxMTU; /* maximum Rx MTU size (bytes) [AFS 3.3] */
- __be32 maxMTU; /* maximum interface MTU size (bytes) [AFS 3.3] */
- __be32 rwind; /* Rx window size (packets) [AFS 3.4] */
- __be32 jumbo_max; /* max packets to stick into a jumbo packet [AFS 3.5] */
-};
-
-/*****************************************************************************/
-/*
- * Kerberos security type-2 challenge packet
- */
-struct rxkad_challenge {
- __be32 version; /* version of this challenge type */
- __be32 nonce; /* encrypted random number */
- __be32 min_level; /* minimum security level */
- __be32 __padding; /* padding to 8-byte boundary */
-} __packed;
-
-/*****************************************************************************/
-/*
- * Kerberos security type-2 response packet
- */
-struct rxkad_response {
- __be32 version; /* version of this response type */
- __be32 __pad;
-
- /* encrypted bit of the response */
- struct {
- __be32 epoch; /* current epoch */
- __be32 cid; /* parent connection ID */
- __be32 checksum; /* checksum */
- __be32 securityIndex; /* security type */
- __be32 call_id[4]; /* encrypted call IDs */
- __be32 inc_nonce; /* challenge nonce + 1 */
- __be32 level; /* desired level */
- } encrypted;
-
- __be32 kvno; /* Kerberos key version number */
- __be32 ticket_len; /* Kerberos ticket length */
-} __packed;
-
-/*****************************************************************************/
-/*
- * RxRPC-level abort codes
- */
-#define RX_CALL_DEAD -1 /* call/conn has been inactive and is shut down */
-#define RX_INVALID_OPERATION -2 /* invalid operation requested / attempted */
-#define RX_CALL_TIMEOUT -3 /* call timeout exceeded */
-#define RX_EOF -4 /* unexpected end of data on read op */
-#define RX_PROTOCOL_ERROR -5 /* low-level protocol error */
-#define RX_USER_ABORT -6 /* generic user abort */
-#define RX_ADDRINUSE -7 /* UDP port in use */
-#define RX_DEBUGI_BADTYPE -8 /* bad debugging packet type */
-
-/*
- * (un)marshalling abort codes (rxgen)
- */
-#define RXGEN_CC_MARSHAL -450
-#define RXGEN_CC_UNMARSHAL -451
-#define RXGEN_SS_MARSHAL -452
-#define RXGEN_SS_UNMARSHAL -453
-#define RXGEN_DECODE -454
-#define RXGEN_OPCODE -455
-#define RXGEN_SS_XDRFREE -456
-#define RXGEN_CC_XDRFREE -457
-
-/*
- * Rx kerberos security abort codes
- * - unfortunately we have no generalised security abort codes to say things
- * like "unsupported security", so we have to use these instead and hope the
- * other side understands
- */
-#define RXKADINCONSISTENCY 19270400 /* security module structure inconsistent */
-#define RXKADPACKETSHORT 19270401 /* packet too short for security challenge */
-#define RXKADLEVELFAIL 19270402 /* security level negotiation failed */
-#define RXKADTICKETLEN 19270403 /* ticket length too short or too long */
-#define RXKADOUTOFSEQUENCE 19270404 /* packet had bad sequence number */
-#define RXKADNOAUTH 19270405 /* caller not authorised */
-#define RXKADBADKEY 19270406 /* illegal key: bad parity or weak */
-#define RXKADBADTICKET 19270407 /* security object was passed a bad ticket */
-#define RXKADUNKNOWNKEY 19270408 /* ticket contained unknown key version number */
-#define RXKADEXPIRED 19270409 /* authentication expired */
-#define RXKADSEALEDINCON 19270410 /* sealed data inconsistent */
-#define RXKADDATALEN 19270411 /* user data too long */
-#define RXKADILLEGALLEVEL 19270412 /* caller not authorised to use encrypted conns */
-
-#endif /* _LINUX_RXRPC_PACKET_H */
diff --git a/ANDROID_3.4.5/include/rxrpc/types.h b/ANDROID_3.4.5/include/rxrpc/types.h
deleted file mode 100644
index 30d48f6d..00000000
--- a/ANDROID_3.4.5/include/rxrpc/types.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* types.h: Rx types
- *
- * Copyright (C) 2002 Red Hat, Inc. All Rights Reserved.
- * Written by David Howells (dhowells@redhat.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 _LINUX_RXRPC_TYPES_H
-#define _LINUX_RXRPC_TYPES_H
-
-#include <linux/types.h>
-#include <linux/list.h>
-#include <linux/socket.h>
-#include <linux/in.h>
-#include <linux/spinlock.h>
-#include <linux/atomic.h>
-
-typedef uint32_t rxrpc_seq_t; /* Rx message sequence number */
-typedef uint32_t rxrpc_serial_t; /* Rx message serial number */
-typedef __be32 rxrpc_seq_net_t; /* on-the-wire Rx message sequence number */
-typedef __be32 rxrpc_serial_net_t; /* on-the-wire Rx message serial number */
-
-struct rxrpc_call;
-struct rxrpc_connection;
-struct rxrpc_header;
-struct rxrpc_message;
-struct rxrpc_operation;
-struct rxrpc_peer;
-struct rxrpc_service;
-typedef struct rxrpc_timer rxrpc_timer_t;
-struct rxrpc_transport;
-
-typedef void (*rxrpc_call_attn_func_t)(struct rxrpc_call *call);
-typedef void (*rxrpc_call_error_func_t)(struct rxrpc_call *call);
-typedef void (*rxrpc_call_aemap_func_t)(struct rxrpc_call *call);
-
-#endif /* _LINUX_RXRPC_TYPES_H */
diff --git a/ANDROID_3.4.5/include/scsi/Kbuild b/ANDROID_3.4.5/include/scsi/Kbuild
deleted file mode 100644
index f2b94918..00000000
--- a/ANDROID_3.4.5/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/ANDROID_3.4.5/include/scsi/fc/Kbuild b/ANDROID_3.4.5/include/scsi/fc/Kbuild
deleted file mode 100644
index 56603813..00000000
--- a/ANDROID_3.4.5/include/scsi/fc/Kbuild
+++ /dev/null
@@ -1,4 +0,0 @@
-header-y += fc_els.h
-header-y += fc_fs.h
-header-y += fc_gs.h
-header-y += fc_ns.h
diff --git a/ANDROID_3.4.5/include/scsi/fc/fc_els.h b/ANDROID_3.4.5/include/scsi/fc/fc_els.h
deleted file mode 100644
index 481abbd4..00000000
--- a/ANDROID_3.4.5/include/scsi/fc/fc_els.h
+++ /dev/null
@@ -1,831 +0,0 @@
-/*
- * Copyright(c) 2007 Intel Corporation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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.
- *
- * Maintained at www.Open-FCoE.org
- */
-
-#ifndef _FC_ELS_H_
-#define _FC_ELS_H_
-
-#include <linux/types.h>
-
-/*
- * Fibre Channel Switch - Enhanced Link Services definitions.
- * From T11 FC-LS Rev 1.2 June 7, 2005.
- */
-
-/*
- * ELS Command codes - byte 0 of the frame payload
- */
-enum fc_els_cmd {
- ELS_LS_RJT = 0x01, /* ESL reject */
- ELS_LS_ACC = 0x02, /* ESL Accept */
- ELS_PLOGI = 0x03, /* N_Port login */
- ELS_FLOGI = 0x04, /* F_Port login */
- ELS_LOGO = 0x05, /* Logout */
- ELS_ABTX = 0x06, /* Abort exchange - obsolete */
- ELS_RCS = 0x07, /* read connection status */
- ELS_RES = 0x08, /* read exchange status block */
- ELS_RSS = 0x09, /* read sequence status block */
- ELS_RSI = 0x0a, /* read sequence initiative */
- ELS_ESTS = 0x0b, /* establish streaming */
- ELS_ESTC = 0x0c, /* estimate credit */
- ELS_ADVC = 0x0d, /* advise credit */
- ELS_RTV = 0x0e, /* read timeout value */
- ELS_RLS = 0x0f, /* read link error status block */
- ELS_ECHO = 0x10, /* echo */
- ELS_TEST = 0x11, /* test */
- ELS_RRQ = 0x12, /* reinstate recovery qualifier */
- ELS_REC = 0x13, /* read exchange concise */
- ELS_SRR = 0x14, /* sequence retransmission request */
- ELS_PRLI = 0x20, /* process login */
- ELS_PRLO = 0x21, /* process logout */
- ELS_SCN = 0x22, /* state change notification */
- ELS_TPLS = 0x23, /* test process login state */
- ELS_TPRLO = 0x24, /* third party process logout */
- ELS_LCLM = 0x25, /* login control list mgmt (obs) */
- ELS_GAID = 0x30, /* get alias_ID */
- ELS_FACT = 0x31, /* fabric activate alias_id */
- ELS_FDACDT = 0x32, /* fabric deactivate alias_id */
- ELS_NACT = 0x33, /* N-port activate alias_id */
- ELS_NDACT = 0x34, /* N-port deactivate alias_id */
- ELS_QOSR = 0x40, /* quality of service request */
- ELS_RVCS = 0x41, /* read virtual circuit status */
- ELS_PDISC = 0x50, /* discover N_port service params */
- ELS_FDISC = 0x51, /* discover F_port service params */
- ELS_ADISC = 0x52, /* discover address */
- ELS_RNC = 0x53, /* report node cap (obs) */
- ELS_FARP_REQ = 0x54, /* FC ARP request */
- ELS_FARP_REPL = 0x55, /* FC ARP reply */
- ELS_RPS = 0x56, /* read port status block */
- ELS_RPL = 0x57, /* read port list */
- ELS_RPBC = 0x58, /* read port buffer condition */
- ELS_FAN = 0x60, /* fabric address notification */
- ELS_RSCN = 0x61, /* registered state change notification */
- ELS_SCR = 0x62, /* state change registration */
- ELS_RNFT = 0x63, /* report node FC-4 types */
- ELS_CSR = 0x68, /* clock synch. request */
- ELS_CSU = 0x69, /* clock synch. update */
- ELS_LINIT = 0x70, /* loop initialize */
- ELS_LSTS = 0x72, /* loop status */
- ELS_RNID = 0x78, /* request node ID data */
- ELS_RLIR = 0x79, /* registered link incident report */
- ELS_LIRR = 0x7a, /* link incident record registration */
- ELS_SRL = 0x7b, /* scan remote loop */
- ELS_SBRP = 0x7c, /* set bit-error reporting params */
- ELS_RPSC = 0x7d, /* report speed capabilities */
- ELS_QSA = 0x7e, /* query security attributes */
- ELS_EVFP = 0x7f, /* exchange virt. fabrics params */
- ELS_LKA = 0x80, /* link keep-alive */
- ELS_AUTH_ELS = 0x90, /* authentication ELS */
-};
-
-/*
- * Initializer useful for decoding table.
- * Please keep this in sync with the above definitions.
- */
-#define FC_ELS_CMDS_INIT { \
- [ELS_LS_RJT] = "LS_RJT", \
- [ELS_LS_ACC] = "LS_ACC", \
- [ELS_PLOGI] = "PLOGI", \
- [ELS_FLOGI] = "FLOGI", \
- [ELS_LOGO] = "LOGO", \
- [ELS_ABTX] = "ABTX", \
- [ELS_RCS] = "RCS", \
- [ELS_RES] = "RES", \
- [ELS_RSS] = "RSS", \
- [ELS_RSI] = "RSI", \
- [ELS_ESTS] = "ESTS", \
- [ELS_ESTC] = "ESTC", \
- [ELS_ADVC] = "ADVC", \
- [ELS_RTV] = "RTV", \
- [ELS_RLS] = "RLS", \
- [ELS_ECHO] = "ECHO", \
- [ELS_TEST] = "TEST", \
- [ELS_RRQ] = "RRQ", \
- [ELS_REC] = "REC", \
- [ELS_SRR] = "SRR", \
- [ELS_PRLI] = "PRLI", \
- [ELS_PRLO] = "PRLO", \
- [ELS_SCN] = "SCN", \
- [ELS_TPLS] = "TPLS", \
- [ELS_TPRLO] = "TPRLO", \
- [ELS_LCLM] = "LCLM", \
- [ELS_GAID] = "GAID", \
- [ELS_FACT] = "FACT", \
- [ELS_FDACDT] = "FDACDT", \
- [ELS_NACT] = "NACT", \
- [ELS_NDACT] = "NDACT", \
- [ELS_QOSR] = "QOSR", \
- [ELS_RVCS] = "RVCS", \
- [ELS_PDISC] = "PDISC", \
- [ELS_FDISC] = "FDISC", \
- [ELS_ADISC] = "ADISC", \
- [ELS_RNC] = "RNC", \
- [ELS_FARP_REQ] = "FARP_REQ", \
- [ELS_FARP_REPL] = "FARP_REPL", \
- [ELS_RPS] = "RPS", \
- [ELS_RPL] = "RPL", \
- [ELS_RPBC] = "RPBC", \
- [ELS_FAN] = "FAN", \
- [ELS_RSCN] = "RSCN", \
- [ELS_SCR] = "SCR", \
- [ELS_RNFT] = "RNFT", \
- [ELS_CSR] = "CSR", \
- [ELS_CSU] = "CSU", \
- [ELS_LINIT] = "LINIT", \
- [ELS_LSTS] = "LSTS", \
- [ELS_RNID] = "RNID", \
- [ELS_RLIR] = "RLIR", \
- [ELS_LIRR] = "LIRR", \
- [ELS_SRL] = "SRL", \
- [ELS_SBRP] = "SBRP", \
- [ELS_RPSC] = "RPSC", \
- [ELS_QSA] = "QSA", \
- [ELS_EVFP] = "EVFP", \
- [ELS_LKA] = "LKA", \
- [ELS_AUTH_ELS] = "AUTH_ELS", \
-}
-
-/*
- * LS_ACC payload.
- */
-struct fc_els_ls_acc {
- __u8 la_cmd; /* command code ELS_LS_ACC */
- __u8 la_resv[3]; /* reserved */
-};
-
-/*
- * ELS reject payload.
- */
-struct fc_els_ls_rjt {
- __u8 er_cmd; /* command code ELS_LS_RJT */
- __u8 er_resv[4]; /* reserved must be zero */
- __u8 er_reason; /* reason (enum fc_els_rjt_reason below) */
- __u8 er_explan; /* explanation (enum fc_els_rjt_explan below) */
- __u8 er_vendor; /* vendor specific code */
-};
-
-/*
- * ELS reject reason codes (er_reason).
- */
-enum fc_els_rjt_reason {
- ELS_RJT_NONE = 0, /* no reject - not to be sent */
- ELS_RJT_INVAL = 0x01, /* invalid ELS command code */
- ELS_RJT_LOGIC = 0x03, /* logical error */
- ELS_RJT_BUSY = 0x05, /* logical busy */
- ELS_RJT_PROT = 0x07, /* protocol error */
- ELS_RJT_UNAB = 0x09, /* unable to perform command request */
- ELS_RJT_UNSUP = 0x0b, /* command not supported */
- ELS_RJT_INPROG = 0x0e, /* command already in progress */
- ELS_RJT_FIP = 0x20, /* FIP error */
- ELS_RJT_VENDOR = 0xff, /* vendor specific error */
-};
-
-
-/*
- * reason code explanation (er_explan).
- */
-enum fc_els_rjt_explan {
- ELS_EXPL_NONE = 0x00, /* No additional explanation */
- ELS_EXPL_SPP_OPT_ERR = 0x01, /* service parameter error - options */
- ELS_EXPL_SPP_ICTL_ERR = 0x03, /* service parm error - initiator ctl */
- ELS_EXPL_AH = 0x11, /* invalid association header */
- ELS_EXPL_AH_REQ = 0x13, /* association_header required */
- ELS_EXPL_SID = 0x15, /* invalid originator S_ID */
- ELS_EXPL_OXID_RXID = 0x17, /* invalid OX_ID-RX_ID combination */
- ELS_EXPL_INPROG = 0x19, /* Request already in progress */
- ELS_EXPL_PLOGI_REQD = 0x1e, /* N_Port login required */
- ELS_EXPL_INSUF_RES = 0x29, /* insufficient resources */
- ELS_EXPL_UNAB_DATA = 0x2a, /* unable to supply requested data */
- ELS_EXPL_UNSUPR = 0x2c, /* Request not supported */
- ELS_EXPL_INV_LEN = 0x2d, /* Invalid payload length */
- ELS_EXPL_NOT_NEIGHBOR = 0x62, /* VN2VN_Port not in neighbor set */
- /* TBD - above definitions incomplete */
-};
-
-/*
- * Common service parameters (N ports).
- */
-struct fc_els_csp {
- __u8 sp_hi_ver; /* highest version supported (obs.) */
- __u8 sp_lo_ver; /* highest version supported (obs.) */
- __be16 sp_bb_cred; /* buffer-to-buffer credits */
- __be16 sp_features; /* common feature flags */
- __be16 sp_bb_data; /* b-b state number and data field sz */
- union {
- struct {
- __be16 _sp_tot_seq; /* total concurrent sequences */
- __be16 _sp_rel_off; /* rel. offset by info cat */
- } sp_plogi;
- struct {
- __be32 _sp_r_a_tov; /* resource alloc. timeout msec */
- } sp_flogi_acc;
- } sp_u;
- __be32 sp_e_d_tov; /* error detect timeout value */
-};
-#define sp_tot_seq sp_u.sp_plogi._sp_tot_seq
-#define sp_rel_off sp_u.sp_plogi._sp_rel_off
-#define sp_r_a_tov sp_u.sp_flogi_acc._sp_r_a_tov
-
-#define FC_SP_BB_DATA_MASK 0xfff /* mask for data field size in sp_bb_data */
-
-/*
- * Minimum and maximum values for max data field size in service parameters.
- */
-#define FC_SP_MIN_MAX_PAYLOAD FC_MIN_MAX_PAYLOAD
-#define FC_SP_MAX_MAX_PAYLOAD FC_MAX_PAYLOAD
-
-/*
- * sp_features
- */
-#define FC_SP_FT_NPIV 0x8000 /* multiple N_Port_ID support (FLOGI) */
-#define FC_SP_FT_CIRO 0x8000 /* continuously increasing rel off (PLOGI) */
-#define FC_SP_FT_CLAD 0x8000 /* clean address (in FLOGI LS_ACC) */
-#define FC_SP_FT_RAND 0x4000 /* random relative offset */
-#define FC_SP_FT_VAL 0x2000 /* valid vendor version level */
-#define FC_SP_FT_NPIV_ACC 0x2000 /* NPIV assignment (FLOGI LS_ACC) */
-#define FC_SP_FT_FPORT 0x1000 /* F port (1) vs. N port (0) */
-#define FC_SP_FT_ABB 0x0800 /* alternate BB_credit management */
-#define FC_SP_FT_EDTR 0x0400 /* E_D_TOV Resolution is nanoseconds */
-#define FC_SP_FT_MCAST 0x0200 /* multicast */
-#define FC_SP_FT_BCAST 0x0100 /* broadcast */
-#define FC_SP_FT_HUNT 0x0080 /* hunt group */
-#define FC_SP_FT_SIMP 0x0040 /* dedicated simplex */
-#define FC_SP_FT_SEC 0x0020 /* reserved for security */
-#define FC_SP_FT_CSYN 0x0010 /* clock synch. supported */
-#define FC_SP_FT_RTTOV 0x0008 /* R_T_TOV value 100 uS, else 100 mS */
-#define FC_SP_FT_HALF 0x0004 /* dynamic half duplex */
-#define FC_SP_FT_SEQC 0x0002 /* SEQ_CNT */
-#define FC_SP_FT_PAYL 0x0001 /* FLOGI payload length 256, else 116 */
-
-/*
- * Class-specific service parameters.
- */
-struct fc_els_cssp {
- __be16 cp_class; /* class flags */
- __be16 cp_init; /* initiator flags */
- __be16 cp_recip; /* recipient flags */
- __be16 cp_rdfs; /* receive data field size */
- __be16 cp_con_seq; /* concurrent sequences */
- __be16 cp_ee_cred; /* N-port end-to-end credit */
- __u8 cp_resv1; /* reserved */
- __u8 cp_open_seq; /* open sequences per exchange */
- __u8 _cp_resv2[2]; /* reserved */
-};
-
-/*
- * cp_class flags.
- */
-#define FC_CPC_VALID 0x8000 /* class valid */
-#define FC_CPC_IMIX 0x4000 /* intermix mode */
-#define FC_CPC_SEQ 0x0800 /* sequential delivery */
-#define FC_CPC_CAMP 0x0200 /* camp-on */
-#define FC_CPC_PRI 0x0080 /* priority */
-
-/*
- * cp_init flags.
- * (TBD: not all flags defined here).
- */
-#define FC_CPI_CSYN 0x0010 /* clock synch. capable */
-
-/*
- * cp_recip flags.
- */
-#define FC_CPR_CSYN 0x0008 /* clock synch. capable */
-
-/*
- * NFC_ELS_FLOGI: Fabric login request.
- * NFC_ELS_PLOGI: Port login request (same format).
- */
-struct fc_els_flogi {
- __u8 fl_cmd; /* command */
- __u8 _fl_resvd[3]; /* must be zero */
- struct fc_els_csp fl_csp; /* common service parameters */
- __be64 fl_wwpn; /* port name */
- __be64 fl_wwnn; /* node name */
- struct fc_els_cssp fl_cssp[4]; /* class 1-4 service parameters */
- __u8 fl_vend[16]; /* vendor version level */
-} __attribute__((__packed__));
-
-/*
- * Process login service parameter page.
- */
-struct fc_els_spp {
- __u8 spp_type; /* type code or common service params */
- __u8 spp_type_ext; /* type code extension */
- __u8 spp_flags;
- __u8 _spp_resvd;
- __be32 spp_orig_pa; /* originator process associator */
- __be32 spp_resp_pa; /* responder process associator */
- __be32 spp_params; /* service parameters */
-};
-
-/*
- * spp_flags.
- */
-#define FC_SPP_OPA_VAL 0x80 /* originator proc. assoc. valid */
-#define FC_SPP_RPA_VAL 0x40 /* responder proc. assoc. valid */
-#define FC_SPP_EST_IMG_PAIR 0x20 /* establish image pair */
-#define FC_SPP_RESP_MASK 0x0f /* mask for response code (below) */
-
-/*
- * SPP response code in spp_flags - lower 4 bits.
- */
-enum fc_els_spp_resp {
- FC_SPP_RESP_ACK = 1, /* request executed */
- FC_SPP_RESP_RES = 2, /* unable due to lack of resources */
- FC_SPP_RESP_INIT = 3, /* initialization not complete */
- FC_SPP_RESP_NO_PA = 4, /* unknown process associator */
- FC_SPP_RESP_CONF = 5, /* configuration precludes image pair */
- FC_SPP_RESP_COND = 6, /* request completed conditionally */
- FC_SPP_RESP_MULT = 7, /* unable to handle multiple SPPs */
- FC_SPP_RESP_INVL = 8, /* SPP is invalid */
-};
-
-/*
- * ELS_RRQ - Reinstate Recovery Qualifier
- */
-struct fc_els_rrq {
- __u8 rrq_cmd; /* command (0x12) */
- __u8 rrq_zero[3]; /* specified as zero - part of cmd */
- __u8 rrq_resvd; /* reserved */
- __u8 rrq_s_id[3]; /* originator FID */
- __be16 rrq_ox_id; /* originator exchange ID */
- __be16 rrq_rx_id; /* responders exchange ID */
-};
-
-/*
- * ELS_REC - Read exchange concise.
- */
-struct fc_els_rec {
- __u8 rec_cmd; /* command (0x13) */
- __u8 rec_zero[3]; /* specified as zero - part of cmd */
- __u8 rec_resvd; /* reserved */
- __u8 rec_s_id[3]; /* originator FID */
- __be16 rec_ox_id; /* originator exchange ID */
- __be16 rec_rx_id; /* responders exchange ID */
-};
-
-/*
- * ELS_REC LS_ACC payload.
- */
-struct fc_els_rec_acc {
- __u8 reca_cmd; /* accept (0x02) */
- __u8 reca_zero[3]; /* specified as zero - part of cmd */
- __be16 reca_ox_id; /* originator exchange ID */
- __be16 reca_rx_id; /* responders exchange ID */
- __u8 reca_resvd1; /* reserved */
- __u8 reca_ofid[3]; /* originator FID */
- __u8 reca_resvd2; /* reserved */
- __u8 reca_rfid[3]; /* responder FID */
- __be32 reca_fc4value; /* FC4 value */
- __be32 reca_e_stat; /* ESB (exchange status block) status */
-};
-
-/*
- * ELS_PRLI - Process login request and response.
- */
-struct fc_els_prli {
- __u8 prli_cmd; /* command */
- __u8 prli_spp_len; /* length of each serv. parm. page */
- __be16 prli_len; /* length of entire payload */
- /* service parameter pages follow */
-};
-
-/*
- * ELS_PRLO - Process logout request and response.
- */
-struct fc_els_prlo {
- __u8 prlo_cmd; /* command */
- __u8 prlo_obs; /* obsolete, but shall be set to 10h */
- __be16 prlo_len; /* payload length */
-};
-
-/*
- * ELS_ADISC payload
- */
-struct fc_els_adisc {
- __u8 adisc_cmd;
- __u8 adisc_resv[3];
- __u8 adisc_resv1;
- __u8 adisc_hard_addr[3];
- __be64 adisc_wwpn;
- __be64 adisc_wwnn;
- __u8 adisc_resv2;
- __u8 adisc_port_id[3];
-} __attribute__((__packed__));
-
-/*
- * ELS_LOGO - process or fabric logout.
- */
-struct fc_els_logo {
- __u8 fl_cmd; /* command code */
- __u8 fl_zero[3]; /* specified as zero - part of cmd */
- __u8 fl_resvd; /* reserved */
- __u8 fl_n_port_id[3];/* N port ID */
- __be64 fl_n_port_wwn; /* port name */
-};
-
-/*
- * ELS_RTV - read timeout value.
- */
-struct fc_els_rtv {
- __u8 rtv_cmd; /* command code 0x0e */
- __u8 rtv_zero[3]; /* specified as zero - part of cmd */
-};
-
-/*
- * LS_ACC for ELS_RTV - read timeout value.
- */
-struct fc_els_rtv_acc {
- __u8 rtv_cmd; /* command code 0x02 */
- __u8 rtv_zero[3]; /* specified as zero - part of cmd */
- __be32 rtv_r_a_tov; /* resource allocation timeout value */
- __be32 rtv_e_d_tov; /* error detection timeout value */
- __be32 rtv_toq; /* timeout qualifier (see below) */
-};
-
-/*
- * rtv_toq bits.
- */
-#define FC_ELS_RTV_EDRES (1 << 26) /* E_D_TOV resolution is nS else mS */
-#define FC_ELS_RTV_RTTOV (1 << 19) /* R_T_TOV is 100 uS else 100 mS */
-
-/*
- * ELS_SCR - state change registration payload.
- */
-struct fc_els_scr {
- __u8 scr_cmd; /* command code */
- __u8 scr_resv[6]; /* reserved */
- __u8 scr_reg_func; /* registration function (see below) */
-};
-
-enum fc_els_scr_func {
- ELS_SCRF_FAB = 1, /* fabric-detected registration */
- ELS_SCRF_NPORT = 2, /* Nx_Port-detected registration */
- ELS_SCRF_FULL = 3, /* full registration */
- ELS_SCRF_CLEAR = 255, /* remove any current registrations */
-};
-
-/*
- * ELS_RSCN - registered state change notification payload.
- */
-struct fc_els_rscn {
- __u8 rscn_cmd; /* RSCN opcode (0x61) */
- __u8 rscn_page_len; /* page length (4) */
- __be16 rscn_plen; /* payload length including this word */
-
- /* followed by 4-byte generic affected Port_ID pages */
-};
-
-struct fc_els_rscn_page {
- __u8 rscn_page_flags; /* event and address format */
- __u8 rscn_fid[3]; /* fabric ID */
-};
-
-#define ELS_RSCN_EV_QUAL_BIT 2 /* shift count for event qualifier */
-#define ELS_RSCN_EV_QUAL_MASK 0xf /* mask for event qualifier */
-#define ELS_RSCN_ADDR_FMT_BIT 0 /* shift count for address format */
-#define ELS_RSCN_ADDR_FMT_MASK 0x3 /* mask for address format */
-
-enum fc_els_rscn_ev_qual {
- ELS_EV_QUAL_NONE = 0, /* unspecified */
- ELS_EV_QUAL_NS_OBJ = 1, /* changed name server object */
- ELS_EV_QUAL_PORT_ATTR = 2, /* changed port attribute */
- ELS_EV_QUAL_SERV_OBJ = 3, /* changed service object */
- ELS_EV_QUAL_SW_CONFIG = 4, /* changed switch configuration */
- ELS_EV_QUAL_REM_OBJ = 5, /* removed object */
-};
-
-enum fc_els_rscn_addr_fmt {
- ELS_ADDR_FMT_PORT = 0, /* rscn_fid is a port address */
- ELS_ADDR_FMT_AREA = 1, /* rscn_fid is a area address */
- ELS_ADDR_FMT_DOM = 2, /* rscn_fid is a domain address */
- ELS_ADDR_FMT_FAB = 3, /* anything on fabric may have changed */
-};
-
-/*
- * ELS_RNID - request Node ID.
- */
-struct fc_els_rnid {
- __u8 rnid_cmd; /* RNID opcode (0x78) */
- __u8 rnid_resv[3]; /* reserved */
- __u8 rnid_fmt; /* data format */
- __u8 rnid_resv2[3]; /* reserved */
-};
-
-/*
- * Node Identification Data formats (rnid_fmt)
- */
-enum fc_els_rnid_fmt {
- ELS_RNIDF_NONE = 0, /* no specific identification data */
- ELS_RNIDF_GEN = 0xdf, /* general topology discovery format */
-};
-
-/*
- * ELS_RNID response.
- */
-struct fc_els_rnid_resp {
- __u8 rnid_cmd; /* response code (LS_ACC) */
- __u8 rnid_resv[3]; /* reserved */
- __u8 rnid_fmt; /* data format */
- __u8 rnid_cid_len; /* common ID data length */
- __u8 rnid_resv2; /* reserved */
- __u8 rnid_sid_len; /* specific ID data length */
-};
-
-struct fc_els_rnid_cid {
- __be64 rnid_wwpn; /* N port name */
- __be64 rnid_wwnn; /* node name */
-};
-
-struct fc_els_rnid_gen {
- __u8 rnid_vend_id[16]; /* vendor-unique ID */
- __be32 rnid_atype; /* associated type (see below) */
- __be32 rnid_phys_port; /* physical port number */
- __be32 rnid_att_nodes; /* number of attached nodes */
- __u8 rnid_node_mgmt; /* node management (see below) */
- __u8 rnid_ip_ver; /* IP version (see below) */
- __be16 rnid_prot_port; /* UDP / TCP port number */
- __be32 rnid_ip_addr[4]; /* IP address */
- __u8 rnid_resvd[2]; /* reserved */
- __be16 rnid_vend_spec; /* vendor-specific field */
-};
-
-enum fc_els_rnid_atype {
- ELS_RNIDA_UNK = 0x01, /* unknown */
- ELS_RNIDA_OTHER = 0x02, /* none of the following */
- ELS_RNIDA_HUB = 0x03,
- ELS_RNIDA_SWITCH = 0x04,
- ELS_RNIDA_GATEWAY = 0x05,
- ELS_RNIDA_CONV = 0x06, /* Obsolete, do not use this value */
- ELS_RNIDA_HBA = 0x07, /* Obsolete, do not use this value */
- ELS_RNIDA_PROXY = 0x08, /* Obsolete, do not use this value */
- ELS_RNIDA_STORAGE = 0x09,
- ELS_RNIDA_HOST = 0x0a,
- ELS_RNIDA_SUBSYS = 0x0b, /* storage subsystem (e.g., RAID) */
- ELS_RNIDA_ACCESS = 0x0e, /* access device (e.g. media changer) */
- ELS_RNIDA_NAS = 0x11, /* NAS server */
- ELS_RNIDA_BRIDGE = 0x12, /* bridge */
- ELS_RNIDA_VIRT = 0x13, /* virtualization device */
- ELS_RNIDA_MF = 0xff, /* multifunction device (bits below) */
- ELS_RNIDA_MF_HUB = 1UL << 31, /* hub */
- ELS_RNIDA_MF_SW = 1UL << 30, /* switch */
- ELS_RNIDA_MF_GW = 1UL << 29, /* gateway */
- ELS_RNIDA_MF_ST = 1UL << 28, /* storage */
- ELS_RNIDA_MF_HOST = 1UL << 27, /* host */
- ELS_RNIDA_MF_SUB = 1UL << 26, /* storage subsystem */
- ELS_RNIDA_MF_ACC = 1UL << 25, /* storage access dev */
- ELS_RNIDA_MF_WDM = 1UL << 24, /* wavelength division mux */
- ELS_RNIDA_MF_NAS = 1UL << 23, /* NAS server */
- ELS_RNIDA_MF_BR = 1UL << 22, /* bridge */
- ELS_RNIDA_MF_VIRT = 1UL << 21, /* virtualization device */
-};
-
-enum fc_els_rnid_mgmt {
- ELS_RNIDM_SNMP = 0,
- ELS_RNIDM_TELNET = 1,
- ELS_RNIDM_HTTP = 2,
- ELS_RNIDM_HTTPS = 3,
- ELS_RNIDM_XML = 4, /* HTTP + XML */
-};
-
-enum fc_els_rnid_ipver {
- ELS_RNIDIP_NONE = 0, /* no IP support or node mgmt. */
- ELS_RNIDIP_V4 = 1, /* IPv4 */
- ELS_RNIDIP_V6 = 2, /* IPv6 */
-};
-
-/*
- * ELS RPL - Read Port List.
- */
-struct fc_els_rpl {
- __u8 rpl_cmd; /* command */
- __u8 rpl_resv[5]; /* reserved - must be zero */
- __be16 rpl_max_size; /* maximum response size or zero */
- __u8 rpl_resv1; /* reserved - must be zero */
- __u8 rpl_index[3]; /* starting index */
-};
-
-/*
- * Port number block in RPL response.
- */
-struct fc_els_pnb {
- __be32 pnb_phys_pn; /* physical port number */
- __u8 pnb_resv; /* reserved */
- __u8 pnb_port_id[3]; /* port ID */
- __be64 pnb_wwpn; /* port name */
-};
-
-/*
- * RPL LS_ACC response.
- */
-struct fc_els_rpl_resp {
- __u8 rpl_cmd; /* ELS_LS_ACC */
- __u8 rpl_resv1; /* reserved - must be zero */
- __be16 rpl_plen; /* payload length */
- __u8 rpl_resv2; /* reserved - must be zero */
- __u8 rpl_llen[3]; /* list length */
- __u8 rpl_resv3; /* reserved - must be zero */
- __u8 rpl_index[3]; /* starting index */
- struct fc_els_pnb rpl_pnb[1]; /* variable number of PNBs */
-};
-
-/*
- * Link Error Status Block.
- */
-struct fc_els_lesb {
- __be32 lesb_link_fail; /* link failure count */
- __be32 lesb_sync_loss; /* loss of synchronization count */
- __be32 lesb_sig_loss; /* loss of signal count */
- __be32 lesb_prim_err; /* primitive sequence error count */
- __be32 lesb_inv_word; /* invalid transmission word count */
- __be32 lesb_inv_crc; /* invalid CRC count */
-};
-
-/*
- * ELS RPS - Read Port Status Block request.
- */
-struct fc_els_rps {
- __u8 rps_cmd; /* command */
- __u8 rps_resv[2]; /* reserved - must be zero */
- __u8 rps_flag; /* flag - see below */
- __be64 rps_port_spec; /* port selection */
-};
-
-enum fc_els_rps_flag {
- FC_ELS_RPS_DID = 0x00, /* port identified by D_ID of req. */
- FC_ELS_RPS_PPN = 0x01, /* port_spec is physical port number */
- FC_ELS_RPS_WWPN = 0x02, /* port_spec is port WWN */
-};
-
-/*
- * ELS RPS LS_ACC response.
- */
-struct fc_els_rps_resp {
- __u8 rps_cmd; /* command - LS_ACC */
- __u8 rps_resv[2]; /* reserved - must be zero */
- __u8 rps_flag; /* flag - see below */
- __u8 rps_resv2[2]; /* reserved */
- __be16 rps_status; /* port status - see below */
- struct fc_els_lesb rps_lesb; /* link error status block */
-};
-
-enum fc_els_rps_resp_flag {
- FC_ELS_RPS_LPEV = 0x01, /* L_port extension valid */
-};
-
-enum fc_els_rps_resp_status {
- FC_ELS_RPS_PTP = 1 << 5, /* point-to-point connection */
- FC_ELS_RPS_LOOP = 1 << 4, /* loop mode */
- FC_ELS_RPS_FAB = 1 << 3, /* fabric present */
- FC_ELS_RPS_NO_SIG = 1 << 2, /* loss of signal */
- FC_ELS_RPS_NO_SYNC = 1 << 1, /* loss of synchronization */
- FC_ELS_RPS_RESET = 1 << 0, /* in link reset protocol */
-};
-
-/*
- * ELS LIRR - Link Incident Record Registration request.
- */
-struct fc_els_lirr {
- __u8 lirr_cmd; /* command */
- __u8 lirr_resv[3]; /* reserved - must be zero */
- __u8 lirr_func; /* registration function */
- __u8 lirr_fmt; /* FC-4 type of RLIR requested */
- __u8 lirr_resv2[2]; /* reserved - must be zero */
-};
-
-enum fc_els_lirr_func {
- ELS_LIRR_SET_COND = 0x01, /* set - conditionally receive */
- ELS_LIRR_SET_UNCOND = 0x02, /* set - unconditionally receive */
- ELS_LIRR_CLEAR = 0xff /* clear registration */
-};
-
-/*
- * ELS SRL - Scan Remote Loop request.
- */
-struct fc_els_srl {
- __u8 srl_cmd; /* command */
- __u8 srl_resv[3]; /* reserved - must be zero */
- __u8 srl_flag; /* flag - see below */
- __u8 srl_flag_param[3]; /* flag parameter */
-};
-
-enum fc_els_srl_flag {
- FC_ELS_SRL_ALL = 0x00, /* scan all FL ports */
- FC_ELS_SRL_ONE = 0x01, /* scan specified loop */
- FC_ELS_SRL_EN_PER = 0x02, /* enable periodic scanning (param) */
- FC_ELS_SRL_DIS_PER = 0x03, /* disable periodic scanning */
-};
-
-/*
- * ELS RLS - Read Link Error Status Block request.
- */
-struct fc_els_rls {
- __u8 rls_cmd; /* command */
- __u8 rls_resv[4]; /* reserved - must be zero */
- __u8 rls_port_id[3]; /* port ID */
-};
-
-/*
- * ELS RLS LS_ACC Response.
- */
-struct fc_els_rls_resp {
- __u8 rls_cmd; /* ELS_LS_ACC */
- __u8 rls_resv[3]; /* reserved - must be zero */
- struct fc_els_lesb rls_lesb; /* link error status block */
-};
-
-/*
- * ELS RLIR - Registered Link Incident Report.
- * This is followed by the CLIR and the CLID, described below.
- */
-struct fc_els_rlir {
- __u8 rlir_cmd; /* command */
- __u8 rlir_resv[3]; /* reserved - must be zero */
- __u8 rlir_fmt; /* format (FC4-type if type specific) */
- __u8 rlir_clr_len; /* common link incident record length */
- __u8 rlir_cld_len; /* common link incident desc. length */
- __u8 rlir_slr_len; /* spec. link incident record length */
-};
-
-/*
- * CLIR - Common Link Incident Record Data. - Sent via RLIR.
- */
-struct fc_els_clir {
- __be64 clir_wwpn; /* incident port name */
- __be64 clir_wwnn; /* incident port node name */
- __u8 clir_port_type; /* incident port type */
- __u8 clir_port_id[3]; /* incident port ID */
-
- __be64 clir_conn_wwpn; /* connected port name */
- __be64 clir_conn_wwnn; /* connected node name */
- __be64 clir_fab_name; /* fabric name */
- __be32 clir_phys_port; /* physical port number */
- __be32 clir_trans_id; /* transaction ID */
- __u8 clir_resv[3]; /* reserved */
- __u8 clir_ts_fmt; /* time stamp format */
- __be64 clir_timestamp; /* time stamp */
-};
-
-/*
- * CLIR clir_ts_fmt - time stamp format values.
- */
-enum fc_els_clir_ts_fmt {
- ELS_CLIR_TS_UNKNOWN = 0, /* time stamp field unknown */
- ELS_CLIR_TS_SEC_FRAC = 1, /* time in seconds and fractions */
- ELS_CLIR_TS_CSU = 2, /* time in clock synch update format */
-};
-
-/*
- * Common Link Incident Descriptor - sent via RLIR.
- */
-struct fc_els_clid {
- __u8 clid_iq; /* incident qualifier flags */
- __u8 clid_ic; /* incident code */
- __be16 clid_epai; /* domain/area of ISL */
-};
-
-/*
- * CLID incident qualifier flags.
- */
-enum fc_els_clid_iq {
- ELS_CLID_SWITCH = 0x20, /* incident port is a switch node */
- ELS_CLID_E_PORT = 0x10, /* incident is an ISL (E) port */
- ELS_CLID_SEV_MASK = 0x0c, /* severity 2-bit field mask */
- ELS_CLID_SEV_INFO = 0x00, /* report is informational */
- ELS_CLID_SEV_INOP = 0x08, /* link not operational */
- ELS_CLID_SEV_DEG = 0x04, /* link degraded but operational */
- ELS_CLID_LASER = 0x02, /* subassembly is a laser */
- ELS_CLID_FRU = 0x01, /* format can identify a FRU */
-};
-
-/*
- * CLID incident code.
- */
-enum fc_els_clid_ic {
- ELS_CLID_IC_IMPL = 1, /* implicit incident */
- ELS_CLID_IC_BER = 2, /* bit-error-rate threshold exceeded */
- ELS_CLID_IC_LOS = 3, /* loss of synch or signal */
- ELS_CLID_IC_NOS = 4, /* non-operational primitive sequence */
- ELS_CLID_IC_PST = 5, /* primitive sequence timeout */
- ELS_CLID_IC_INVAL = 6, /* invalid primitive sequence */
- ELS_CLID_IC_LOOP_TO = 7, /* loop initialization time out */
- ELS_CLID_IC_LIP = 8, /* receiving LIP */
-};
-
-#endif /* _FC_ELS_H_ */
diff --git a/ANDROID_3.4.5/include/scsi/fc/fc_encaps.h b/ANDROID_3.4.5/include/scsi/fc/fc_encaps.h
deleted file mode 100644
index f180c3e1..00000000
--- a/ANDROID_3.4.5/include/scsi/fc/fc_encaps.h
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Copyright(c) 2007 Intel Corporation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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.
- *
- * Maintained at www.Open-FCoE.org
- */
-#ifndef _FC_ENCAPS_H_
-#define _FC_ENCAPS_H_
-
-/*
- * Protocol definitions from RFC 3643 - Fibre Channel Frame Encapsulation.
- *
- * Note: The frame length field is the number of 32-bit words in
- * the encapsulation including the fcip_encaps_header, CRC and EOF words.
- * The minimum frame length value in bytes is (32 + 24 + 4 + 4) * 4 = 64.
- * The maximum frame length value in bytes is (32 + 24 + 2112 + 4 + 4) = 2172.
- */
-#define FC_ENCAPS_MIN_FRAME_LEN 64 /* min frame len (bytes) (see above) */
-#define FC_ENCAPS_MAX_FRAME_LEN (FC_ENCAPS_MIN_FRAME_LEN + FC_MAX_PAYLOAD)
-
-#define FC_ENCAPS_VER 1 /* current version number */
-
-struct fc_encaps_hdr {
- __u8 fc_proto; /* protocol number */
- __u8 fc_ver; /* version of encapsulation */
- __u8 fc_proto_n; /* ones complement of protocol */
- __u8 fc_ver_n; /* ones complement of version */
-
- unsigned char fc_proto_data[8]; /* protocol specific data */
-
- __be16 fc_len_flags; /* 10-bit length/4 w/ 6 flag bits */
- __be16 fc_len_flags_n; /* ones complement of length / flags */
-
- /*
- * Offset 0x10
- */
- __be32 fc_time[2]; /* time stamp: seconds and fraction */
- __be32 fc_crc; /* CRC */
- __be32 fc_sof; /* start of frame (see FC_SOF below) */
-
- /* 0x20 - FC frame content followed by EOF word */
-};
-
-#define FCIP_ENCAPS_HDR_LEN 0x20 /* expected length for asserts */
-
-/*
- * Macro's for making redundant copies of EOF and SOF.
- */
-#define FC_XY(x, y) ((((x) & 0xff) << 8) | ((y) & 0xff))
-#define FC_XYXY(x, y) ((FCIP_XY(x, y) << 16) | FCIP_XY(x, y))
-#define FC_XYNN(x, y) (FCIP_XYXY(x, y) ^ 0xffff)
-
-#define FC_SOF_ENCODE(n) FC_XYNN(n, n)
-#define FC_EOF_ENCODE(n) FC_XYNN(n, n)
-
-/*
- * SOF / EOF bytes.
- */
-enum fc_sof {
- FC_SOF_F = 0x28, /* fabric */
- FC_SOF_I4 = 0x29, /* initiate class 4 */
- FC_SOF_I2 = 0x2d, /* initiate class 2 */
- FC_SOF_I3 = 0x2e, /* initiate class 3 */
- FC_SOF_N4 = 0x31, /* normal class 4 */
- FC_SOF_N2 = 0x35, /* normal class 2 */
- FC_SOF_N3 = 0x36, /* normal class 3 */
- FC_SOF_C4 = 0x39, /* activate class 4 */
-} __attribute__((packed));
-
-enum fc_eof {
- FC_EOF_N = 0x41, /* normal (not last frame of seq) */
- FC_EOF_T = 0x42, /* terminate (last frame of sequence) */
- FC_EOF_RT = 0x44,
- FC_EOF_DT = 0x46, /* disconnect-terminate class-1 */
- FC_EOF_NI = 0x49, /* normal-invalid */
- FC_EOF_DTI = 0x4e, /* disconnect-terminate-invalid */
- FC_EOF_RTI = 0x4f,
- FC_EOF_A = 0x50, /* abort */
-} __attribute__((packed));
-
-#define FC_SOF_CLASS_MASK 0x06 /* mask for class of service in SOF */
-
-/*
- * Define classes in terms of the SOF code (initial).
- */
-enum fc_class {
- FC_CLASS_NONE = 0, /* software value indicating no class */
- FC_CLASS_2 = FC_SOF_I2,
- FC_CLASS_3 = FC_SOF_I3,
- FC_CLASS_4 = FC_SOF_I4,
- FC_CLASS_F = FC_SOF_F,
-};
-
-/*
- * Determine whether SOF code indicates the need for a BLS ACK.
- */
-static inline int fc_sof_needs_ack(enum fc_sof sof)
-{
- return (~sof) & 0x02; /* true for class 1, 2, 4, 6, or F */
-}
-
-/*
- * Given an fc_class, return the normal (non-initial) SOF value.
- */
-static inline enum fc_sof fc_sof_normal(enum fc_class class)
-{
- return class + FC_SOF_N3 - FC_SOF_I3; /* diff is always 8 */
-}
-
-/*
- * Compute class from SOF value.
- */
-static inline enum fc_class fc_sof_class(enum fc_sof sof)
-{
- return (sof & 0x7) | FC_SOF_F;
-}
-
-/*
- * Determine whether SOF is for the initial frame of a sequence.
- */
-static inline int fc_sof_is_init(enum fc_sof sof)
-{
- return sof < 0x30;
-}
-
-#endif /* _FC_ENCAPS_H_ */
diff --git a/ANDROID_3.4.5/include/scsi/fc/fc_fc2.h b/ANDROID_3.4.5/include/scsi/fc/fc_fc2.h
deleted file mode 100644
index f87777d0..00000000
--- a/ANDROID_3.4.5/include/scsi/fc/fc_fc2.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright(c) 2007 Intel Corporation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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.
- *
- * Maintained at www.Open-FCoE.org
- */
-
-#ifndef _FC_FC2_H_
-#define _FC_FC2_H_
-
-/*
- * Fibre Channel Exchanges and Sequences.
- */
-#ifndef PACKED
-#define PACKED __attribute__ ((__packed__))
-#endif /* PACKED */
-
-
-/*
- * Sequence Status Block.
- * This format is set by the FC-FS standard and is sent over the wire.
- * Note that the fields aren't all naturally aligned.
- */
-struct fc_ssb {
- __u8 ssb_seq_id; /* sequence ID */
- __u8 _ssb_resvd;
- __be16 ssb_low_seq_cnt; /* lowest SEQ_CNT */
-
- __be16 ssb_high_seq_cnt; /* highest SEQ_CNT */
- __be16 ssb_s_stat; /* sequence status flags */
-
- __be16 ssb_err_seq_cnt; /* error SEQ_CNT */
- __u8 ssb_fh_cs_ctl; /* frame header CS_CTL */
- __be16 ssb_fh_ox_id; /* frame header OX_ID */
- __be16 ssb_rx_id; /* responder's exchange ID */
- __u8 _ssb_resvd2[2];
-} PACKED;
-
-/*
- * The SSB should be 17 bytes. Since it's layout is somewhat strange,
- * we define the size here so that code can ASSERT that the size comes out
- * correct.
- */
-#define FC_SSB_SIZE 17 /* length of fc_ssb for assert */
-
-/*
- * ssb_s_stat - flags from FC-FS-2 T11/1619-D Rev 0.90.
- */
-#define SSB_ST_RESP (1 << 15) /* sequence responder */
-#define SSB_ST_ACTIVE (1 << 14) /* sequence is active */
-#define SSB_ST_ABNORMAL (1 << 12) /* abnormal ending condition */
-
-#define SSB_ST_REQ_MASK (3 << 10) /* ACK, abort sequence condition */
-#define SSB_ST_REQ_CONT (0 << 10)
-#define SSB_ST_REQ_ABORT (1 << 10)
-#define SSB_ST_REQ_STOP (2 << 10)
-#define SSB_ST_REQ_RETRANS (3 << 10)
-
-#define SSB_ST_ABTS (1 << 9) /* ABTS protocol completed */
-#define SSB_ST_RETRANS (1 << 8) /* retransmission completed */
-#define SSB_ST_TIMEOUT (1 << 7) /* sequence timed out by recipient */
-#define SSB_ST_P_RJT (1 << 6) /* P_RJT transmitted */
-
-#define SSB_ST_CLASS_BIT 4 /* class of service field LSB */
-#define SSB_ST_CLASS_MASK 3 /* class of service mask */
-#define SSB_ST_ACK (1 << 3) /* ACK (EOFt or EOFdt) transmitted */
-
-/*
- * Exchange Status Block.
- * This format is set by the FC-FS standard and is sent over the wire.
- * Note that the fields aren't all naturally aligned.
- */
-struct fc_esb {
- __u8 esb_cs_ctl; /* CS_CTL for frame header */
- __be16 esb_ox_id; /* originator exchange ID */
- __be16 esb_rx_id; /* responder exchange ID */
- __be32 esb_orig_fid; /* fabric ID of originator */
- __be32 esb_resp_fid; /* fabric ID of responder */
- __be32 esb_e_stat; /* status */
- __u8 _esb_resvd[4];
- __u8 esb_service_params[112]; /* TBD */
- __u8 esb_seq_status[8]; /* sequence statuses, 8 bytes each */
-} __attribute__((packed));
-
-/*
- * Define expected size for ASSERTs.
- * See comments on FC_SSB_SIZE.
- */
-#define FC_ESB_SIZE (1 + 5*4 + 112 + 8) /* expected size */
-
-/*
- * esb_e_stat - flags from FC-FS-2 T11/1619-D Rev 0.90.
- */
-#define ESB_ST_RESP (1 << 31) /* responder to exchange */
-#define ESB_ST_SEQ_INIT (1 << 30) /* port holds sequence initiaive */
-#define ESB_ST_COMPLETE (1 << 29) /* exchange is complete */
-#define ESB_ST_ABNORMAL (1 << 28) /* abnormal ending condition */
-#define ESB_ST_REC_QUAL (1 << 26) /* recovery qualifier active */
-
-#define ESB_ST_ERRP_BIT 24 /* LSB for error policy */
-#define ESB_ST_ERRP_MASK (3 << 24) /* mask for error policy */
-#define ESB_ST_ERRP_MULT (0 << 24) /* abort, discard multiple sequences */
-#define ESB_ST_ERRP_SING (1 << 24) /* abort, discard single sequence */
-#define ESB_ST_ERRP_INF (2 << 24) /* process with infinite buffers */
-#define ESB_ST_ERRP_IMM (3 << 24) /* discard mult. with immed. retran. */
-
-#define ESB_ST_OX_ID_INVL (1 << 23) /* originator XID invalid */
-#define ESB_ST_RX_ID_INVL (1 << 22) /* responder XID invalid */
-#define ESB_ST_PRI_INUSE (1 << 21) /* priority / preemption in use */
-
-#endif /* _FC_FC2_H_ */
diff --git a/ANDROID_3.4.5/include/scsi/fc/fc_fcoe.h b/ANDROID_3.4.5/include/scsi/fc/fc_fcoe.h
deleted file mode 100644
index d5dcd606..00000000
--- a/ANDROID_3.4.5/include/scsi/fc/fc_fcoe.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright(c) 2007 Intel Corporation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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.
- *
- * Maintained at www.Open-FCoE.org
- */
-
-#ifndef _FC_FCOE_H_
-#define _FC_FCOE_H_
-
-/*
- * FCoE - Fibre Channel over Ethernet.
- * See T11 FC-BB-5 Rev 2.00 (09-056v5.pdf)
- */
-
-/*
- * Default FC_FCOE_OUI / FC-MAP value.
- */
-#define FC_FCOE_OUI 0x0efc00 /* upper 24 bits of FCOE MAC */
-
-/*
- * Fabric Login (FLOGI) MAC for non-FIP use. Non-FIP use is deprecated.
- */
-#define FC_FCOE_FLOGI_MAC { 0x0e, 0xfc, 0x00, 0xff, 0xff, 0xfe }
-
-#define FC_FCOE_VER 0 /* version */
-
-/*
- * Ethernet Addresses based on FC S_ID and D_ID.
- * Generated by FC_FCOE_OUI | S_ID/D_ID
- */
-#define FC_FCOE_ENCAPS_ID(n) (((u64) FC_FCOE_OUI << 24) | (n))
-#define FC_FCOE_DECAPS_ID(n) ((n) >> 24)
-
-/*
- * FCoE frame header - 14 bytes
- * This follows the VLAN header, which includes the ethertype.
- */
-struct fcoe_hdr {
- __u8 fcoe_ver; /* version field - upper 4 bits */
- __u8 fcoe_resvd[12]; /* reserved - send zero and ignore */
- __u8 fcoe_sof; /* start of frame per RFC 3643 */
-};
-
-#define FC_FCOE_DECAPS_VER(hp) ((hp)->fcoe_ver >> 4)
-#define FC_FCOE_ENCAPS_VER(hp, ver) ((hp)->fcoe_ver = (ver) << 4)
-
-/*
- * FCoE CRC & EOF - 8 bytes.
- */
-struct fcoe_crc_eof {
- __le32 fcoe_crc32; /* CRC for FC packet */
- __u8 fcoe_eof; /* EOF from RFC 3643 */
- __u8 fcoe_resvd[3]; /* reserved - send zero and ignore */
-} __attribute__((packed));
-
-/*
- * Minimum FCoE + FC header length
- * 14 bytes FCoE header + 24 byte FC header = 38 bytes
- */
-#define FCOE_HEADER_LEN 38
-
-/*
- * Minimum FCoE frame size
- * 14 bytes FCoE header + 24 byte FC header + 8 byte FCoE trailer = 46 bytes
- */
-#define FCOE_MIN_FRAME 46
-
-/*
- * FCoE Link Error Status Block: T11 FC-BB-5 Rev2.0, Clause 7.10.
- */
-struct fcoe_fc_els_lesb {
- __be32 lesb_link_fail; /* link failure count */
- __be32 lesb_vlink_fail; /* virtual link failure count */
- __be32 lesb_miss_fka; /* missing FIP keep-alive count */
- __be32 lesb_symb_err; /* symbol error during carrier count */
- __be32 lesb_err_block; /* errored block count */
- __be32 lesb_fcs_error; /* frame check sequence error count */
-};
-
-/*
- * fc_fcoe_set_mac - Store OUI + DID into MAC address field.
- * @mac: mac address to be set
- * @did: fc dest id to use
- */
-static inline void fc_fcoe_set_mac(u8 *mac, u8 *did)
-{
- mac[0] = (u8) (FC_FCOE_OUI >> 16);
- mac[1] = (u8) (FC_FCOE_OUI >> 8);
- mac[2] = (u8) FC_FCOE_OUI;
- mac[3] = did[0];
- mac[4] = did[1];
- mac[5] = did[2];
-}
-
-#endif /* _FC_FCOE_H_ */
diff --git a/ANDROID_3.4.5/include/scsi/fc/fc_fcp.h b/ANDROID_3.4.5/include/scsi/fc/fc_fcp.h
deleted file mode 100644
index 0d7d67e9..00000000
--- a/ANDROID_3.4.5/include/scsi/fc/fc_fcp.h
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- * Copyright(c) 2007 Intel Corporation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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.
- *
- * Maintained at www.Open-FCoE.org
- */
-
-#ifndef _FC_FCP_H_
-#define _FC_FCP_H_
-
-#include <scsi/scsi.h>
-
-/*
- * Fibre Channel Protocol for SCSI.
- * From T10 FCP-3, T10 project 1560-D Rev 4, Sept. 13, 2005.
- */
-
-/*
- * fc/fs.h defines FC_TYPE_FCP.
- */
-
-/*
- * Service parameter page parameters (word 3 bits) for Process Login.
- */
-#define FCP_SPPF_TASK_RETRY_ID 0x0200 /* task retry ID requested */
-#define FCP_SPPF_RETRY 0x0100 /* retry supported */
-#define FCP_SPPF_CONF_COMPL 0x0080 /* confirmed completion allowed */
-#define FCP_SPPF_OVLY_ALLOW 0x0040 /* data overlay allowed */
-#define FCP_SPPF_INIT_FCN 0x0020 /* initiator function */
-#define FCP_SPPF_TARG_FCN 0x0010 /* target function */
-#define FCP_SPPF_RD_XRDY_DIS 0x0002 /* disable XFER_RDY for reads */
-#define FCP_SPPF_WR_XRDY_DIS 0x0001 /* disable XFER_RDY for writes */
-
-/*
- * FCP_CMND IU Payload.
- */
-struct fcp_cmnd {
- struct scsi_lun fc_lun; /* logical unit number */
- __u8 fc_cmdref; /* command reference number */
- __u8 fc_pri_ta; /* priority and task attribute */
- __u8 fc_tm_flags; /* task management flags */
- __u8 fc_flags; /* additional len & flags */
- __u8 fc_cdb[16]; /* base CDB */
- __be32 fc_dl; /* data length (must follow fc_cdb) */
-};
-
-#define FCP_CMND_LEN 32 /* expected length of structure */
-
-struct fcp_cmnd32 {
- struct scsi_lun fc_lun; /* logical unit number */
- __u8 fc_cmdref; /* command reference number */
- __u8 fc_pri_ta; /* priority and task attribute */
- __u8 fc_tm_flags; /* task management flags */
- __u8 fc_flags; /* additional len & flags */
- __u8 fc_cdb[32]; /* base CDB */
- __be32 fc_dl; /* data length (must follow fc_cdb) */
-};
-
-#define FCP_CMND32_LEN 48 /* expected length of structure */
-#define FCP_CMND32_ADD_LEN (16 / 4) /* Additional cdb length */
-
-/*
- * fc_pri_ta.
- */
-#define FCP_PTA_SIMPLE 0 /* simple task attribute */
-#define FCP_PTA_HEADQ 1 /* head of queue task attribute */
-#define FCP_PTA_ORDERED 2 /* ordered task attribute */
-#define FCP_PTA_ACA 4 /* auto. contingent allegiance */
-#define FCP_PTA_MASK 7 /* mask for task attribute field */
-#define FCP_PRI_SHIFT 3 /* priority field starts in bit 3 */
-#define FCP_PRI_RESVD_MASK 0x80 /* reserved bits in priority field */
-
-/*
- * fc_tm_flags - task management flags field.
- */
-#define FCP_TMF_CLR_ACA 0x40 /* clear ACA condition */
-#define FCP_TMF_TGT_RESET 0x20 /* target reset task management,
- deprecated as of FCP-3 */
-#define FCP_TMF_LUN_RESET 0x10 /* logical unit reset task management */
-#define FCP_TMF_CLR_TASK_SET 0x04 /* clear task set */
-#define FCP_TMF_ABT_TASK_SET 0x02 /* abort task set */
-
-/*
- * fc_flags.
- * Bits 7:2 are the additional FCP_CDB length / 4.
- */
-#define FCP_CFL_LEN_MASK 0xfc /* mask for additional length */
-#define FCP_CFL_LEN_SHIFT 2 /* shift bits for additional length */
-#define FCP_CFL_RDDATA 0x02 /* read data */
-#define FCP_CFL_WRDATA 0x01 /* write data */
-
-/*
- * FCP_TXRDY IU - transfer ready payload.
- */
-struct fcp_txrdy {
- __be32 ft_data_ro; /* data relative offset */
- __be32 ft_burst_len; /* burst length */
- __u8 _ft_resvd[4]; /* reserved */
-};
-
-#define FCP_TXRDY_LEN 12 /* expected length of structure */
-
-/*
- * FCP_RESP IU - response payload.
- *
- * The response payload comes in three parts: the flags/status, the
- * sense/response lengths and the sense data/response info section.
- *
- * From FCP3r04, note 6 of section 9.5.13:
- *
- * Some early implementations presented the FCP_RSP IU without the FCP_RESID,
- * FCP_SNS_LEN, and FCP_RSP_LEN fields if the FCP_RESID_UNDER, FCP_RESID_OVER,
- * FCP_SNS_LEN_VALID, and FCP_RSP_LEN_VALID bits were all set to zero. This
- * non-standard behavior should be tolerated.
- *
- * All response frames will always contain the fcp_resp template. Some
- * will also include the fcp_resp_len template.
- */
-struct fcp_resp {
- __u8 _fr_resvd[8]; /* reserved */
- __be16 fr_retry_delay; /* retry delay timer */
- __u8 fr_flags; /* flags */
- __u8 fr_status; /* SCSI status code */
-};
-
-#define FCP_RESP_LEN 12 /* expected length of structure */
-
-struct fcp_resp_ext {
- __be32 fr_resid; /* Residual value */
- __be32 fr_sns_len; /* SCSI Sense length */
- __be32 fr_rsp_len; /* Response Info length */
-
- /*
- * Optionally followed by RSP info and/or SNS info and/or
- * bidirectional read residual length, if any.
- */
-};
-
-#define FCP_RESP_EXT_LEN 12 /* expected length of the structure */
-
-struct fcp_resp_rsp_info {
- __u8 _fr_resvd[3]; /* reserved */
- __u8 rsp_code; /* Response Info Code */
- __u8 _fr_resvd2[4]; /* reserved */
-};
-
-struct fcp_resp_with_ext {
- struct fcp_resp resp;
- struct fcp_resp_ext ext;
-};
-
-#define FCP_RESP_WITH_EXT (FCP_RESP_LEN + FCP_RESP_EXT_LEN)
-
-/*
- * fr_flags.
- */
-#define FCP_BIDI_RSP 0x80 /* bidirectional read response */
-#define FCP_BIDI_READ_UNDER 0x40 /* bidir. read less than requested */
-#define FCP_BIDI_READ_OVER 0x20 /* DL insufficient for full transfer */
-#define FCP_CONF_REQ 0x10 /* confirmation requested */
-#define FCP_RESID_UNDER 0x08 /* transfer shorter than expected */
-#define FCP_RESID_OVER 0x04 /* DL insufficient for full transfer */
-#define FCP_SNS_LEN_VAL 0x02 /* SNS_LEN field is valid */
-#define FCP_RSP_LEN_VAL 0x01 /* RSP_LEN field is valid */
-
-/*
- * rsp_codes
- */
-enum fcp_resp_rsp_codes {
- FCP_TMF_CMPL = 0,
- FCP_DATA_LEN_INVALID = 1,
- FCP_CMND_FIELDS_INVALID = 2,
- FCP_DATA_PARAM_MISMATCH = 3,
- FCP_TMF_REJECTED = 4,
- FCP_TMF_FAILED = 5,
- FCP_TMF_INVALID_LUN = 9,
-};
-
-/*
- * FCP SRR Link Service request - Sequence Retransmission Request.
- */
-struct fcp_srr {
- __u8 srr_op; /* opcode ELS_SRR */
- __u8 srr_resvd[3]; /* opcode / reserved - must be zero */
- __be16 srr_ox_id; /* OX_ID of failed command */
- __be16 srr_rx_id; /* RX_ID of failed command */
- __be32 srr_rel_off; /* relative offset */
- __u8 srr_r_ctl; /* r_ctl for the information unit */
- __u8 srr_resvd2[3]; /* reserved */
-};
-
-/*
- * Feature bits in name server FC-4 Features object.
- */
-#define FCP_FEAT_TARG (1 << 0) /* target function supported */
-#define FCP_FEAT_INIT (1 << 1) /* initiator function supported */
-
-#endif /* _FC_FCP_H_ */
diff --git a/ANDROID_3.4.5/include/scsi/fc/fc_fip.h b/ANDROID_3.4.5/include/scsi/fc/fc_fip.h
deleted file mode 100644
index ae25d4ab..00000000
--- a/ANDROID_3.4.5/include/scsi/fc/fc_fip.h
+++ /dev/null
@@ -1,280 +0,0 @@
-/*
- * Copyright 2008 Cisco Systems, Inc. All rights reserved.
- *
- * This program is free software; you may 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.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef _FC_FIP_H_
-#define _FC_FIP_H_
-
-#include <scsi/fc/fc_ns.h>
-
-/*
- * This version is based on:
- * http://www.t11.org/ftp/t11/pub/fc/bb-5/08-543v1.pdf
- * and T11 FC-BB-6 10-019v4.pdf (June 2010 VN2VN proposal)
- */
-
-#define FIP_DEF_PRI 128 /* default selection priority */
-#define FIP_DEF_FC_MAP 0x0efc00 /* default FCoE MAP (MAC OUI) value */
-#define FIP_DEF_FKA 8000 /* default FCF keep-alive/advert period (mS) */
-#define FIP_VN_KA_PERIOD 90000 /* required VN_port keep-alive period (mS) */
-#define FIP_FCF_FUZZ 100 /* random time added by FCF (mS) */
-
-/*
- * VN2VN proposed-standard values.
- */
-#define FIP_VN_FC_MAP 0x0efd00 /* MAC OUI for VN2VN use */
-#define FIP_VN_PROBE_WAIT 100 /* interval between VN2VN probes (ms) */
-#define FIP_VN_ANN_WAIT 400 /* interval between VN2VN announcements (ms) */
-#define FIP_VN_RLIM_INT 10000 /* interval between probes when rate limited */
-#define FIP_VN_RLIM_COUNT 10 /* number of probes before rate limiting */
-#define FIP_VN_BEACON_INT 8000 /* interval between VN2VN beacons */
-#define FIP_VN_BEACON_FUZZ 100 /* random time to add to beacon period (ms) */
-
-/*
- * Multicast MAC addresses. T11-adopted.
- */
-#define FIP_ALL_FCOE_MACS ((__u8[6]) { 1, 0x10, 0x18, 1, 0, 0 })
-#define FIP_ALL_ENODE_MACS ((__u8[6]) { 1, 0x10, 0x18, 1, 0, 1 })
-#define FIP_ALL_FCF_MACS ((__u8[6]) { 1, 0x10, 0x18, 1, 0, 2 })
-#define FIP_ALL_VN2VN_MACS ((__u8[6]) { 1, 0x10, 0x18, 1, 0, 4 })
-#define FIP_ALL_P2P_MACS ((__u8[6]) { 1, 0x10, 0x18, 1, 0, 5 })
-
-#define FIP_VER 1 /* version for fip_header */
-
-struct fip_header {
- __u8 fip_ver; /* upper 4 bits are the version */
- __u8 fip_resv1; /* reserved */
- __be16 fip_op; /* operation code */
- __u8 fip_resv2; /* reserved */
- __u8 fip_subcode; /* lower 4 bits are sub-code */
- __be16 fip_dl_len; /* length of descriptors in words */
- __be16 fip_flags; /* header flags */
-} __attribute__((packed));
-
-#define FIP_VER_SHIFT 4
-#define FIP_VER_ENCAPS(v) ((v) << FIP_VER_SHIFT)
-#define FIP_VER_DECAPS(v) ((v) >> FIP_VER_SHIFT)
-#define FIP_BPW 4 /* bytes per word for lengths */
-
-/*
- * fip_op.
- */
-enum fip_opcode {
- FIP_OP_DISC = 1, /* discovery, advertisement, etc. */
- FIP_OP_LS = 2, /* Link Service request or reply */
- FIP_OP_CTRL = 3, /* Keep Alive / Link Reset */
- FIP_OP_VLAN = 4, /* VLAN discovery */
- FIP_OP_VN2VN = 5, /* VN2VN operation */
- FIP_OP_VENDOR_MIN = 0xfff8, /* min vendor-specific opcode */
- FIP_OP_VENDOR_MAX = 0xfffe, /* max vendor-specific opcode */
-};
-
-/*
- * Subcodes for FIP_OP_DISC.
- */
-enum fip_disc_subcode {
- FIP_SC_SOL = 1, /* solicitation */
- FIP_SC_ADV = 2, /* advertisement */
-};
-
-/*
- * Subcodes for FIP_OP_LS.
- */
-enum fip_trans_subcode {
- FIP_SC_REQ = 1, /* request */
- FIP_SC_REP = 2, /* reply */
-};
-
-/*
- * Subcodes for FIP_OP_RESET.
- */
-enum fip_reset_subcode {
- FIP_SC_KEEP_ALIVE = 1, /* keep-alive from VN_Port */
- FIP_SC_CLR_VLINK = 2, /* clear virtual link from VF_Port */
-};
-
-/*
- * Subcodes for FIP_OP_VLAN.
- */
-enum fip_vlan_subcode {
- FIP_SC_VL_REQ = 1, /* request */
- FIP_SC_VL_REP = 2, /* reply */
-};
-
-/*
- * Subcodes for FIP_OP_VN2VN.
- */
-enum fip_vn2vn_subcode {
- FIP_SC_VN_PROBE_REQ = 1, /* probe request */
- FIP_SC_VN_PROBE_REP = 2, /* probe reply */
- FIP_SC_VN_CLAIM_NOTIFY = 3, /* claim notification */
- FIP_SC_VN_CLAIM_REP = 4, /* claim response */
- FIP_SC_VN_BEACON = 5, /* beacon */
-};
-
-/*
- * flags in header fip_flags.
- */
-enum fip_flag {
- FIP_FL_FPMA = 0x8000, /* supports FPMA fabric-provided MACs */
- FIP_FL_SPMA = 0x4000, /* supports SPMA server-provided MACs */
- FIP_FL_REC_OR_P2P = 0x0008, /* configured addr or point-to-point */
- FIP_FL_AVAIL = 0x0004, /* available for FLOGI/ELP */
- FIP_FL_SOL = 0x0002, /* this is a solicited message */
- FIP_FL_FPORT = 0x0001, /* sent from an F port */
-};
-
-/*
- * Common descriptor header format.
- */
-struct fip_desc {
- __u8 fip_dtype; /* type - see below */
- __u8 fip_dlen; /* length - in 32-bit words */
-};
-
-enum fip_desc_type {
- FIP_DT_PRI = 1, /* priority for forwarder selection */
- FIP_DT_MAC = 2, /* MAC address */
- FIP_DT_MAP_OUI = 3, /* FC-MAP OUI */
- FIP_DT_NAME = 4, /* switch name or node name */
- FIP_DT_FAB = 5, /* fabric descriptor */
- FIP_DT_FCOE_SIZE = 6, /* max FCoE frame size */
- FIP_DT_FLOGI = 7, /* FLOGI request or response */
- FIP_DT_FDISC = 8, /* FDISC request or response */
- FIP_DT_LOGO = 9, /* LOGO request or response */
- FIP_DT_ELP = 10, /* ELP request or response */
- FIP_DT_VN_ID = 11, /* VN_Node Identifier */
- FIP_DT_FKA = 12, /* advertisement keep-alive period */
- FIP_DT_VENDOR = 13, /* vendor ID */
- FIP_DT_VLAN = 14, /* vlan number */
- FIP_DT_FC4F = 15, /* FC-4 features */
- FIP_DT_LIMIT, /* max defined desc_type + 1 */
- FIP_DT_VENDOR_BASE = 128, /* first vendor-specific desc_type */
-};
-
-/*
- * FIP_DT_PRI - priority descriptor.
- */
-struct fip_pri_desc {
- struct fip_desc fd_desc;
- __u8 fd_resvd;
- __u8 fd_pri; /* FCF priority: higher is better */
-} __attribute__((packed));
-
-/*
- * FIP_DT_MAC - MAC address descriptor.
- */
-struct fip_mac_desc {
- struct fip_desc fd_desc;
- __u8 fd_mac[ETH_ALEN];
-} __attribute__((packed));
-
-/*
- * FIP_DT_MAP - descriptor.
- */
-struct fip_map_desc {
- struct fip_desc fd_desc;
- __u8 fd_resvd[3];
- __u8 fd_map[3];
-} __attribute__((packed));
-
-/*
- * FIP_DT_NAME descriptor.
- */
-struct fip_wwn_desc {
- struct fip_desc fd_desc;
- __u8 fd_resvd[2];
- __be64 fd_wwn; /* 64-bit WWN, unaligned */
-} __attribute__((packed));
-
-/*
- * FIP_DT_FAB descriptor.
- */
-struct fip_fab_desc {
- struct fip_desc fd_desc;
- __be16 fd_vfid; /* virtual fabric ID */
- __u8 fd_resvd;
- __u8 fd_map[3]; /* FC-MAP value */
- __be64 fd_wwn; /* fabric name, unaligned */
-} __attribute__((packed));
-
-/*
- * FIP_DT_FCOE_SIZE descriptor.
- */
-struct fip_size_desc {
- struct fip_desc fd_desc;
- __be16 fd_size;
-} __attribute__((packed));
-
-/*
- * Descriptor that encapsulates an ELS or ILS frame.
- * The encapsulated frame immediately follows this header, without
- * SOF, EOF, or CRC.
- */
-struct fip_encaps {
- struct fip_desc fd_desc;
- __u8 fd_resvd[2];
-} __attribute__((packed));
-
-/*
- * FIP_DT_VN_ID - VN_Node Identifier descriptor.
- */
-struct fip_vn_desc {
- struct fip_desc fd_desc;
- __u8 fd_mac[ETH_ALEN];
- __u8 fd_resvd;
- __u8 fd_fc_id[3];
- __be64 fd_wwpn; /* port name, unaligned */
-} __attribute__((packed));
-
-/*
- * FIP_DT_FKA - Advertisement keep-alive period.
- */
-struct fip_fka_desc {
- struct fip_desc fd_desc;
- __u8 fd_resvd;
- __u8 fd_flags; /* bit0 is fka disable flag */
- __be32 fd_fka_period; /* adv./keep-alive period in mS */
-} __attribute__((packed));
-
-/*
- * flags for fip_fka_desc.fd_flags
- */
-enum fip_fka_flags {
- FIP_FKA_ADV_D = 0x01, /* no need for FKA from ENode */
-};
-
-/* FIP_DT_FKA flags */
-
-/*
- * FIP_DT_FC4F - FC-4 features.
- */
-struct fip_fc4_feat {
- struct fip_desc fd_desc;
- __u8 fd_resvd[2];
- struct fc_ns_fts fd_fts;
- struct fc_ns_ff fd_ff;
-} __attribute__((packed));
-
-/*
- * FIP_DT_VENDOR descriptor.
- */
-struct fip_vendor_desc {
- struct fip_desc fd_desc;
- __u8 fd_resvd[2];
- __u8 fd_vendor_id[8];
-} __attribute__((packed));
-
-#endif /* _FC_FIP_H_ */
diff --git a/ANDROID_3.4.5/include/scsi/fc/fc_fs.h b/ANDROID_3.4.5/include/scsi/fc/fc_fs.h
deleted file mode 100644
index 50f28b14..00000000
--- a/ANDROID_3.4.5/include/scsi/fc/fc_fs.h
+++ /dev/null
@@ -1,348 +0,0 @@
-/*
- * Copyright(c) 2007 Intel Corporation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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.
- *
- * Maintained at www.Open-FCoE.org
- */
-
-#ifndef _FC_FS_H_
-#define _FC_FS_H_
-
-#include <linux/types.h>
-
-/*
- * Fibre Channel Framing and Signalling definitions.
- * From T11 FC-FS-2 Rev 0.90 - 9 August 2005.
- */
-
-/*
- * Frame header
- */
-struct fc_frame_header {
- __u8 fh_r_ctl; /* routing control */
- __u8 fh_d_id[3]; /* Destination ID */
-
- __u8 fh_cs_ctl; /* class of service control / pri */
- __u8 fh_s_id[3]; /* Source ID */
-
- __u8 fh_type; /* see enum fc_fh_type below */
- __u8 fh_f_ctl[3]; /* frame control */
-
- __u8 fh_seq_id; /* sequence ID */
- __u8 fh_df_ctl; /* data field control */
- __be16 fh_seq_cnt; /* sequence count */
-
- __be16 fh_ox_id; /* originator exchange ID */
- __be16 fh_rx_id; /* responder exchange ID */
- __be32 fh_parm_offset; /* parameter or relative offset */
-};
-
-#define FC_FRAME_HEADER_LEN 24 /* expected length of structure */
-
-#define FC_MAX_PAYLOAD 2112U /* max payload length in bytes */
-#define FC_MIN_MAX_PAYLOAD 256U /* lower limit on max payload */
-
-#define FC_MAX_FRAME (FC_MAX_PAYLOAD + FC_FRAME_HEADER_LEN)
-#define FC_MIN_MAX_FRAME (FC_MIN_MAX_PAYLOAD + FC_FRAME_HEADER_LEN)
-
-/*
- * fh_r_ctl - Routing control definitions.
- */
- /*
- * FC-4 device_data.
- */
-enum fc_rctl {
- FC_RCTL_DD_UNCAT = 0x00, /* uncategorized information */
- FC_RCTL_DD_SOL_DATA = 0x01, /* solicited data */
- FC_RCTL_DD_UNSOL_CTL = 0x02, /* unsolicited control */
- FC_RCTL_DD_SOL_CTL = 0x03, /* solicited control or reply */
- FC_RCTL_DD_UNSOL_DATA = 0x04, /* unsolicited data */
- FC_RCTL_DD_DATA_DESC = 0x05, /* data descriptor */
- FC_RCTL_DD_UNSOL_CMD = 0x06, /* unsolicited command */
- FC_RCTL_DD_CMD_STATUS = 0x07, /* command status */
-
-#define FC_RCTL_ILS_REQ FC_RCTL_DD_UNSOL_CTL /* ILS request */
-#define FC_RCTL_ILS_REP FC_RCTL_DD_SOL_CTL /* ILS reply */
-
- /*
- * Extended Link_Data
- */
- FC_RCTL_ELS_REQ = 0x22, /* extended link services request */
- FC_RCTL_ELS_REP = 0x23, /* extended link services reply */
- FC_RCTL_ELS4_REQ = 0x32, /* FC-4 ELS request */
- FC_RCTL_ELS4_REP = 0x33, /* FC-4 ELS reply */
- /*
- * Optional Extended Headers
- */
- FC_RCTL_VFTH = 0x50, /* virtual fabric tagging header */
- FC_RCTL_IFRH = 0x51, /* inter-fabric routing header */
- FC_RCTL_ENCH = 0x52, /* encapsulation header */
- /*
- * Basic Link Services fh_r_ctl values.
- */
- FC_RCTL_BA_NOP = 0x80, /* basic link service NOP */
- FC_RCTL_BA_ABTS = 0x81, /* basic link service abort */
- FC_RCTL_BA_RMC = 0x82, /* remove connection */
- FC_RCTL_BA_ACC = 0x84, /* basic accept */
- FC_RCTL_BA_RJT = 0x85, /* basic reject */
- FC_RCTL_BA_PRMT = 0x86, /* dedicated connection preempted */
- /*
- * Link Control Information.
- */
- FC_RCTL_ACK_1 = 0xc0, /* acknowledge_1 */
- FC_RCTL_ACK_0 = 0xc1, /* acknowledge_0 */
- FC_RCTL_P_RJT = 0xc2, /* port reject */
- FC_RCTL_F_RJT = 0xc3, /* fabric reject */
- FC_RCTL_P_BSY = 0xc4, /* port busy */
- FC_RCTL_F_BSY = 0xc5, /* fabric busy to data frame */
- FC_RCTL_F_BSYL = 0xc6, /* fabric busy to link control frame */
- FC_RCTL_LCR = 0xc7, /* link credit reset */
- FC_RCTL_END = 0xc9, /* end */
-};
- /* incomplete list of definitions */
-
-/*
- * R_CTL names initializer.
- * Please keep this matching the above definitions.
- */
-#define FC_RCTL_NAMES_INIT { \
- [FC_RCTL_DD_UNCAT] = "uncat", \
- [FC_RCTL_DD_SOL_DATA] = "sol data", \
- [FC_RCTL_DD_UNSOL_CTL] = "unsol ctl", \
- [FC_RCTL_DD_SOL_CTL] = "sol ctl/reply", \
- [FC_RCTL_DD_UNSOL_DATA] = "unsol data", \
- [FC_RCTL_DD_DATA_DESC] = "data desc", \
- [FC_RCTL_DD_UNSOL_CMD] = "unsol cmd", \
- [FC_RCTL_DD_CMD_STATUS] = "cmd status", \
- [FC_RCTL_ELS_REQ] = "ELS req", \
- [FC_RCTL_ELS_REP] = "ELS rep", \
- [FC_RCTL_ELS4_REQ] = "FC-4 ELS req", \
- [FC_RCTL_ELS4_REP] = "FC-4 ELS rep", \
- [FC_RCTL_BA_NOP] = "BLS NOP", \
- [FC_RCTL_BA_ABTS] = "BLS abort", \
- [FC_RCTL_BA_RMC] = "BLS remove connection", \
- [FC_RCTL_BA_ACC] = "BLS accept", \
- [FC_RCTL_BA_RJT] = "BLS reject", \
- [FC_RCTL_BA_PRMT] = "BLS dedicated connection preempted", \
- [FC_RCTL_ACK_1] = "LC ACK_1", \
- [FC_RCTL_ACK_0] = "LC ACK_0", \
- [FC_RCTL_P_RJT] = "LC port reject", \
- [FC_RCTL_F_RJT] = "LC fabric reject", \
- [FC_RCTL_P_BSY] = "LC port busy", \
- [FC_RCTL_F_BSY] = "LC fabric busy to data frame", \
- [FC_RCTL_F_BSYL] = "LC fabric busy to link control frame",\
- [FC_RCTL_LCR] = "LC link credit reset", \
- [FC_RCTL_END] = "LC end", \
-}
-
-/*
- * Well-known fabric addresses.
- */
-enum fc_well_known_fid {
- FC_FID_NONE = 0x000000, /* No destination */
- FC_FID_BCAST = 0xffffff, /* broadcast */
- FC_FID_FLOGI = 0xfffffe, /* fabric login */
- FC_FID_FCTRL = 0xfffffd, /* fabric controller */
- FC_FID_DIR_SERV = 0xfffffc, /* directory server */
- FC_FID_TIME_SERV = 0xfffffb, /* time server */
- FC_FID_MGMT_SERV = 0xfffffa, /* management server */
- FC_FID_QOS = 0xfffff9, /* QoS Facilitator */
- FC_FID_ALIASES = 0xfffff8, /* alias server (FC-PH2) */
- FC_FID_SEC_KEY = 0xfffff7, /* Security key dist. server */
- FC_FID_CLOCK = 0xfffff6, /* clock synch server */
- FC_FID_MCAST_SERV = 0xfffff5, /* multicast server */
-};
-
-#define FC_FID_WELL_KNOWN_MAX 0xffffff /* highest well-known fabric ID */
-#define FC_FID_WELL_KNOWN_BASE 0xfffff5 /* start of well-known fabric ID */
-
-/*
- * Other well-known addresses, outside the above contiguous range.
- */
-#define FC_FID_DOM_MGR 0xfffc00 /* domain manager base */
-
-/*
- * Fabric ID bytes.
- */
-#define FC_FID_DOMAIN 0
-#define FC_FID_PORT 1
-#define FC_FID_LINK 2
-
-/*
- * fh_type codes
- */
-enum fc_fh_type {
- FC_TYPE_BLS = 0x00, /* basic link service */
- FC_TYPE_ELS = 0x01, /* extended link service */
- FC_TYPE_IP = 0x05, /* IP over FC, RFC 4338 */
- FC_TYPE_FCP = 0x08, /* SCSI FCP */
- FC_TYPE_CT = 0x20, /* Fibre Channel Services (FC-CT) */
- FC_TYPE_ILS = 0x22, /* internal link service */
-};
-
-/*
- * FC_TYPE names initializer.
- * Please keep this matching the above definitions.
- */
-#define FC_TYPE_NAMES_INIT { \
- [FC_TYPE_BLS] = "BLS", \
- [FC_TYPE_ELS] = "ELS", \
- [FC_TYPE_IP] = "IP", \
- [FC_TYPE_FCP] = "FCP", \
- [FC_TYPE_CT] = "CT", \
- [FC_TYPE_ILS] = "ILS", \
-}
-
-/*
- * Exchange IDs.
- */
-#define FC_XID_UNKNOWN 0xffff /* unknown exchange ID */
-#define FC_XID_MIN 0x0 /* supported min exchange ID */
-#define FC_XID_MAX 0xfffe /* supported max exchange ID */
-
-/*
- * fh_f_ctl - Frame control flags.
- */
-#define FC_FC_EX_CTX (1 << 23) /* sent by responder to exchange */
-#define FC_FC_SEQ_CTX (1 << 22) /* sent by responder to sequence */
-#define FC_FC_FIRST_SEQ (1 << 21) /* first sequence of this exchange */
-#define FC_FC_LAST_SEQ (1 << 20) /* last sequence of this exchange */
-#define FC_FC_END_SEQ (1 << 19) /* last frame of sequence */
-#define FC_FC_END_CONN (1 << 18) /* end of class 1 connection pending */
-#define FC_FC_RES_B17 (1 << 17) /* reserved */
-#define FC_FC_SEQ_INIT (1 << 16) /* transfer of sequence initiative */
-#define FC_FC_X_ID_REASS (1 << 15) /* exchange ID has been changed */
-#define FC_FC_X_ID_INVAL (1 << 14) /* exchange ID invalidated */
-
-#define FC_FC_ACK_1 (1 << 12) /* 13:12 = 1: ACK_1 expected */
-#define FC_FC_ACK_N (2 << 12) /* 13:12 = 2: ACK_N expected */
-#define FC_FC_ACK_0 (3 << 12) /* 13:12 = 3: ACK_0 expected */
-
-#define FC_FC_RES_B11 (1 << 11) /* reserved */
-#define FC_FC_RES_B10 (1 << 10) /* reserved */
-#define FC_FC_RETX_SEQ (1 << 9) /* retransmitted sequence */
-#define FC_FC_UNI_TX (1 << 8) /* unidirectional transmit (class 1) */
-#define FC_FC_CONT_SEQ(i) ((i) << 6)
-#define FC_FC_ABT_SEQ(i) ((i) << 4)
-#define FC_FC_REL_OFF (1 << 3) /* parameter is relative offset */
-#define FC_FC_RES2 (1 << 2) /* reserved */
-#define FC_FC_FILL(i) ((i) & 3) /* 1:0: bytes of trailing fill */
-
-/*
- * BA_ACC payload.
- */
-struct fc_ba_acc {
- __u8 ba_seq_id_val; /* SEQ_ID validity */
-#define FC_BA_SEQ_ID_VAL 0x80
- __u8 ba_seq_id; /* SEQ_ID of seq last deliverable */
- __u8 ba_resvd[2]; /* reserved */
- __be16 ba_ox_id; /* OX_ID for aborted seq or exch */
- __be16 ba_rx_id; /* RX_ID for aborted seq or exch */
- __be16 ba_low_seq_cnt; /* low SEQ_CNT of aborted seq */
- __be16 ba_high_seq_cnt; /* high SEQ_CNT of aborted seq */
-};
-
-/*
- * BA_RJT: Basic Reject payload.
- */
-struct fc_ba_rjt {
- __u8 br_resvd; /* reserved */
- __u8 br_reason; /* reason code */
- __u8 br_explan; /* reason explanation */
- __u8 br_vendor; /* vendor unique code */
-};
-
-/*
- * BA_RJT reason codes.
- * From FS-2.
- */
-enum fc_ba_rjt_reason {
- FC_BA_RJT_NONE = 0, /* in software this means no reject */
- FC_BA_RJT_INVL_CMD = 0x01, /* invalid command code */
- FC_BA_RJT_LOG_ERR = 0x03, /* logical error */
- FC_BA_RJT_LOG_BUSY = 0x05, /* logical busy */
- FC_BA_RJT_PROTO_ERR = 0x07, /* protocol error */
- FC_BA_RJT_UNABLE = 0x09, /* unable to perform request */
- FC_BA_RJT_VENDOR = 0xff, /* vendor-specific (see br_vendor) */
-};
-
-/*
- * BA_RJT reason code explanations.
- */
-enum fc_ba_rjt_explan {
- FC_BA_RJT_EXP_NONE = 0x00, /* no additional expanation */
- FC_BA_RJT_INV_XID = 0x03, /* invalid OX_ID-RX_ID combination */
- FC_BA_RJT_ABT = 0x05, /* sequence aborted, no seq info */
-};
-
-/*
- * P_RJT or F_RJT: Port Reject or Fabric Reject parameter field.
- */
-struct fc_pf_rjt {
- __u8 rj_action; /* reserved */
- __u8 rj_reason; /* reason code */
- __u8 rj_resvd; /* reserved */
- __u8 rj_vendor; /* vendor unique code */
-};
-
-/*
- * P_RJT and F_RJT reject reason codes.
- */
-enum fc_pf_rjt_reason {
- FC_RJT_NONE = 0, /* non-reject (reserved by standard) */
- FC_RJT_INVL_DID = 0x01, /* invalid destination ID */
- FC_RJT_INVL_SID = 0x02, /* invalid source ID */
- FC_RJT_P_UNAV_T = 0x03, /* port unavailable, temporary */
- FC_RJT_P_UNAV = 0x04, /* port unavailable, permanent */
- FC_RJT_CLS_UNSUP = 0x05, /* class not supported */
- FC_RJT_DEL_USAGE = 0x06, /* delimiter usage error */
- FC_RJT_TYPE_UNSUP = 0x07, /* type not supported */
- FC_RJT_LINK_CTL = 0x08, /* invalid link control */
- FC_RJT_R_CTL = 0x09, /* invalid R_CTL field */
- FC_RJT_F_CTL = 0x0a, /* invalid F_CTL field */
- FC_RJT_OX_ID = 0x0b, /* invalid originator exchange ID */
- FC_RJT_RX_ID = 0x0c, /* invalid responder exchange ID */
- FC_RJT_SEQ_ID = 0x0d, /* invalid sequence ID */
- FC_RJT_DF_CTL = 0x0e, /* invalid DF_CTL field */
- FC_RJT_SEQ_CNT = 0x0f, /* invalid SEQ_CNT field */
- FC_RJT_PARAM = 0x10, /* invalid parameter field */
- FC_RJT_EXCH_ERR = 0x11, /* exchange error */
- FC_RJT_PROTO = 0x12, /* protocol error */
- FC_RJT_LEN = 0x13, /* incorrect length */
- FC_RJT_UNEXP_ACK = 0x14, /* unexpected ACK */
- FC_RJT_FAB_CLASS = 0x15, /* class unsupported by fabric entity */
- FC_RJT_LOGI_REQ = 0x16, /* login required */
- FC_RJT_SEQ_XS = 0x17, /* excessive sequences attempted */
- FC_RJT_EXCH_EST = 0x18, /* unable to establish exchange */
- FC_RJT_FAB_UNAV = 0x1a, /* fabric unavailable */
- FC_RJT_VC_ID = 0x1b, /* invalid VC_ID (class 4) */
- FC_RJT_CS_CTL = 0x1c, /* invalid CS_CTL field */
- FC_RJT_INSUF_RES = 0x1d, /* insuff. resources for VC (Class 4) */
- FC_RJT_INVL_CLS = 0x1f, /* invalid class of service */
- FC_RJT_PREEMT_RJT = 0x20, /* preemption request rejected */
- FC_RJT_PREEMT_DIS = 0x21, /* preemption not enabled */
- FC_RJT_MCAST_ERR = 0x22, /* multicast error */
- FC_RJT_MCAST_ET = 0x23, /* multicast error terminate */
- FC_RJT_PRLI_REQ = 0x24, /* process login required */
- FC_RJT_INVL_ATT = 0x25, /* invalid attachment */
- FC_RJT_VENDOR = 0xff, /* vendor specific reject */
-};
-
-/* default timeout values */
-
-#define FC_DEF_E_D_TOV 2000UL
-#define FC_DEF_R_A_TOV 10000UL
-
-#endif /* _FC_FS_H_ */
diff --git a/ANDROID_3.4.5/include/scsi/fc/fc_gs.h b/ANDROID_3.4.5/include/scsi/fc/fc_gs.h
deleted file mode 100644
index a37346d4..00000000
--- a/ANDROID_3.4.5/include/scsi/fc/fc_gs.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright(c) 2007 Intel Corporation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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.
- *
- * Maintained at www.Open-FCoE.org
- */
-
-#ifndef _FC_GS_H_
-#define _FC_GS_H_
-
-#include <linux/types.h>
-
-/*
- * Fibre Channel Services - Common Transport.
- * From T11.org FC-GS-2 Rev 5.3 November 1998.
- */
-
-struct fc_ct_hdr {
- __u8 ct_rev; /* revision */
- __u8 ct_in_id[3]; /* N_Port ID of original requestor */
- __u8 ct_fs_type; /* type of fibre channel service */
- __u8 ct_fs_subtype; /* subtype */
- __u8 ct_options;
- __u8 _ct_resvd1;
- __be16 ct_cmd; /* command / response code */
- __be16 ct_mr_size; /* maximum / residual size */
- __u8 _ct_resvd2;
- __u8 ct_reason; /* reject reason */
- __u8 ct_explan; /* reason code explanation */
- __u8 ct_vendor; /* vendor unique data */
-};
-
-#define FC_CT_HDR_LEN 16 /* expected sizeof (struct fc_ct_hdr) */
-
-enum fc_ct_rev {
- FC_CT_REV = 1 /* common transport revision */
-};
-
-/*
- * ct_fs_type values.
- */
-enum fc_ct_fs_type {
- FC_FST_ALIAS = 0xf8, /* alias service */
- FC_FST_MGMT = 0xfa, /* management service */
- FC_FST_TIME = 0xfb, /* time service */
- FC_FST_DIR = 0xfc, /* directory service */
-};
-
-/*
- * ct_cmd: Command / response codes
- */
-enum fc_ct_cmd {
- FC_FS_RJT = 0x8001, /* reject */
- FC_FS_ACC = 0x8002, /* accept */
-};
-
-/*
- * FS_RJT reason codes.
- */
-enum fc_ct_reason {
- FC_FS_RJT_CMD = 0x01, /* invalid command code */
- FC_FS_RJT_VER = 0x02, /* invalid version level */
- FC_FS_RJT_LOG = 0x03, /* logical error */
- FC_FS_RJT_IUSIZ = 0x04, /* invalid IU size */
- FC_FS_RJT_BSY = 0x05, /* logical busy */
- FC_FS_RJT_PROTO = 0x07, /* protocol error */
- FC_FS_RJT_UNABL = 0x09, /* unable to perform command request */
- FC_FS_RJT_UNSUP = 0x0b, /* command not supported */
-};
-
-/*
- * FS_RJT reason code explanations.
- */
-enum fc_ct_explan {
- FC_FS_EXP_NONE = 0x00, /* no additional explanation */
- FC_FS_EXP_PID = 0x01, /* port ID not registered */
- FC_FS_EXP_PNAM = 0x02, /* port name not registered */
- FC_FS_EXP_NNAM = 0x03, /* node name not registered */
- FC_FS_EXP_COS = 0x04, /* class of service not registered */
- FC_FS_EXP_FTNR = 0x07, /* FC-4 types not registered */
- /* definitions not complete */
-};
-
-#endif /* _FC_GS_H_ */
diff --git a/ANDROID_3.4.5/include/scsi/fc/fc_ms.h b/ANDROID_3.4.5/include/scsi/fc/fc_ms.h
deleted file mode 100644
index f52b921b..00000000
--- a/ANDROID_3.4.5/include/scsi/fc/fc_ms.h
+++ /dev/null
@@ -1,213 +0,0 @@
-/* * Copyright(c) 2011 Intel Corporation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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.
- *
- * Maintained at www.Open-FCoE.org
- */
-
-#ifndef _FC_MS_H_
-#define _FC_MS_H_
-
-#include <linux/types.h>
-
-/*
- * Fibre Channel Services - Management Service (MS)
- * From T11.org FC-GS-4 Rev 7.91 February 4, 2004
- */
-
-/*
- * Fabric Device Management Interface
- */
-
-/*
- * Common-transport sub-type for FDMI
- */
-#define FC_FDMI_SUBTYPE 0x10 /* fs_ct_hdr.ct_fs_subtype */
-
-/*
- * Management server FDMI Requests.
- */
-enum fc_fdmi_req {
- FC_FDMI_GRHL = 0x0100, /* Get Registered HBA List */
- FC_FDMI_GHAT = 0x0101, /* Get HBA Attributes */
- FC_FDMI_GRPL = 0x0102, /* Get Registered Port List */
- FC_FDMI_GPAT = 0x0110, /* Get Port Attributes */
- FC_FDMI_RHBA = 0x0200, /* Register HBA */
- FC_FDMI_RHAT = 0x0201, /* Register HBA Attributes */
- FC_FDMI_RPRT = 0x0210, /* Register Port */
- FC_FDMI_RPA = 0x0211, /* Register Port Attributes */
- FC_FDMI_DHBA = 0x0300, /* Deregister HBA */
- FC_FDMI_DHAT = 0x0301, /* Deregister HBA Attributes */
- FC_FDMI_DPRT = 0x0310, /* Deregister Port */
- FC_FDMI_DPA = 0x0311, /* Deregister Port Attributes */
-};
-
-/*
- * HBA Attribute Entry Type
- */
-enum fc_fdmi_hba_attr_type {
- FC_FDMI_HBA_ATTR_NODENAME = 0x0001,
- FC_FDMI_HBA_ATTR_MANUFACTURER = 0x0002,
- FC_FDMI_HBA_ATTR_SERIALNUMBER = 0x0003,
- FC_FDMI_HBA_ATTR_MODEL = 0x0004,
- FC_FDMI_HBA_ATTR_MODELDESCRIPTION = 0x0005,
- FC_FDMI_HBA_ATTR_HARDWAREVERSION = 0x0006,
- FC_FDMI_HBA_ATTR_DRIVERVERSION = 0x0007,
- FC_FDMI_HBA_ATTR_OPTIONROMVERSION = 0x0008,
- FC_FDMI_HBA_ATTR_FIRMWAREVERSION = 0x0009,
- FC_FDMI_HBA_ATTR_OSNAMEVERSION = 0x000A,
- FC_FDMI_HBA_ATTR_MAXCTPAYLOAD = 0x000B,
-};
-
-/*
- * HBA Attribute Length
- */
-#define FC_FDMI_HBA_ATTR_NODENAME_LEN 8
-#define FC_FDMI_HBA_ATTR_MANUFACTURER_LEN 64
-#define FC_FDMI_HBA_ATTR_SERIALNUMBER_LEN 64
-#define FC_FDMI_HBA_ATTR_MODEL_LEN 256
-#define FC_FDMI_HBA_ATTR_MODELDESCR_LEN 256
-#define FC_FDMI_HBA_ATTR_HARDWAREVERSION_LEN 256
-#define FC_FDMI_HBA_ATTR_DRIVERVERSION_LEN 256
-#define FC_FDMI_HBA_ATTR_OPTIONROMVERSION_LEN 256
-#define FC_FDMI_HBA_ATTR_FIRMWAREVERSION_LEN 256
-#define FC_FDMI_HBA_ATTR_OSNAMEVERSION_LEN 256
-#define FC_FDMI_HBA_ATTR_MAXCTPAYLOAD_LEN 4
-
-/*
- * Port Attribute Type
- */
-enum fc_fdmi_port_attr_type {
- FC_FDMI_PORT_ATTR_FC4TYPES = 0x0001,
- FC_FDMI_PORT_ATTR_SUPPORTEDSPEED = 0x0002,
- FC_FDMI_PORT_ATTR_CURRENTPORTSPEED = 0x0003,
- FC_FDMI_PORT_ATTR_MAXFRAMESIZE = 0x0004,
- FC_FDMI_PORT_ATTR_OSDEVICENAME = 0x0005,
- FC_FDMI_PORT_ATTR_HOSTNAME = 0x0006,
-};
-
-/*
- * Port Attribute Length
- */
-#define FC_FDMI_PORT_ATTR_FC4TYPES_LEN 32
-#define FC_FDMI_PORT_ATTR_SUPPORTEDSPEED_LEN 4
-#define FC_FDMI_PORT_ATTR_CURRENTPORTSPEED_LEN 4
-#define FC_FDMI_PORT_ATTR_MAXFRAMESIZE_LEN 4
-#define FC_FDMI_PORT_ATTR_OSDEVICENAME_LEN 256
-#define FC_FDMI_PORT_ATTR_HOSTNAME_LEN 256
-
-/*
- * HBA Attribute ID
- */
-struct fc_fdmi_hba_identifier {
- __be64 id;
-};
-
-/*
- * Port Name
- */
-struct fc_fdmi_port_name {
- __be64 portname;
-};
-
-/*
- * Attribute Entry Block for HBA/Port Attributes
- */
-#define FC_FDMI_ATTR_ENTRY_HEADER_LEN 4
-struct fc_fdmi_attr_entry {
- __be16 type;
- __be16 len;
- __u8 value[1];
-} __attribute__((__packed__));
-
-/*
- * Common for HBA/Port Attributes
- */
-struct fs_fdmi_attrs {
- __be32 numattrs;
- struct fc_fdmi_attr_entry attr[1];
-} __attribute__((__packed__));
-
-/*
- * Registered Port List
- */
-struct fc_fdmi_rpl {
- __be32 numport;
- struct fc_fdmi_port_name port[1];
-} __attribute__((__packed__));
-
-/*
- * Register HBA (RHBA)
- */
-struct fc_fdmi_rhba {
- struct fc_fdmi_hba_identifier hbaid;
- struct fc_fdmi_rpl port;
- struct fs_fdmi_attrs hba_attrs;
-} __attribute__((__packed__));
-
-/*
- * Register HBA Attributes (RHAT)
- */
-struct fc_fdmi_rhat {
- struct fc_fdmi_hba_identifier hbaid;
- struct fs_fdmi_attrs hba_attrs;
-} __attribute__((__packed__));
-
-/*
- * Register Port (RPRT)
- */
-struct fc_fdmi_rprt {
- struct fc_fdmi_hba_identifier hbaid;
- struct fc_fdmi_port_name port;
- struct fs_fdmi_attrs hba_attrs;
-} __attribute__((__packed__));
-
-/*
- * Register Port Attributes (RPA)
- */
-struct fc_fdmi_rpa {
- struct fc_fdmi_port_name port;
- struct fs_fdmi_attrs hba_attrs;
-} __attribute__((__packed__));
-
-/*
- * Deregister Port (DPRT)
- */
-struct fc_fdmi_dprt {
- struct fc_fdmi_port_name port;
-} __attribute__((__packed__));
-
-/*
- * Deregister Port Attributes (DPA)
- */
-struct fc_fdmi_dpa {
- struct fc_fdmi_port_name port;
- struct fs_fdmi_attrs hba_attrs;
-} __attribute__((__packed__));
-
-/*
- * Deregister HBA Attributes (DHAT)
- */
-struct fc_fdmi_dhat {
- struct fc_fdmi_hba_identifier hbaid;
-} __attribute__((__packed__));
-
-/*
- * Deregister HBA (DHBA)
- */
-struct fc_fdmi_dhba {
- struct fc_fdmi_hba_identifier hbaid;
-} __attribute__((__packed__));
-
-#endif /* _FC_MS_H_ */
diff --git a/ANDROID_3.4.5/include/scsi/fc/fc_ns.h b/ANDROID_3.4.5/include/scsi/fc/fc_ns.h
deleted file mode 100644
index f7751d53..00000000
--- a/ANDROID_3.4.5/include/scsi/fc/fc_ns.h
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- * Copyright(c) 2007 Intel Corporation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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.
- *
- * Maintained at www.Open-FCoE.org
- */
-
-#ifndef _FC_NS_H_
-#define _FC_NS_H_
-
-#include <linux/types.h>
-
-/*
- * Fibre Channel Services - Name Service (dNS)
- * From T11.org FC-GS-2 Rev 5.3 November 1998.
- */
-
-/*
- * Common-transport sub-type for Name Server.
- */
-#define FC_NS_SUBTYPE 2 /* fs_ct_hdr.ct_fs_subtype */
-
-/*
- * Name server Requests.
- * Note: this is an incomplete list, some unused requests are omitted.
- */
-enum fc_ns_req {
- FC_NS_GA_NXT = 0x0100, /* get all next */
- FC_NS_GI_A = 0x0101, /* get identifiers - scope */
- FC_NS_GPN_ID = 0x0112, /* get port name by ID */
- FC_NS_GNN_ID = 0x0113, /* get node name by ID */
- FC_NS_GSPN_ID = 0x0118, /* get symbolic port name */
- FC_NS_GID_PN = 0x0121, /* get ID for port name */
- FC_NS_GID_NN = 0x0131, /* get IDs for node name */
- FC_NS_GID_FT = 0x0171, /* get IDs by FC4 type */
- FC_NS_GPN_FT = 0x0172, /* get port names by FC4 type */
- FC_NS_GID_PT = 0x01a1, /* get IDs by port type */
- FC_NS_RPN_ID = 0x0212, /* reg port name for ID */
- FC_NS_RNN_ID = 0x0213, /* reg node name for ID */
- FC_NS_RFT_ID = 0x0217, /* reg FC4 type for ID */
- FC_NS_RSPN_ID = 0x0218, /* reg symbolic port name */
- FC_NS_RFF_ID = 0x021f, /* reg FC4 Features for ID */
- FC_NS_RSNN_NN = 0x0239, /* reg symbolic node name */
-};
-
-/*
- * Port type values.
- */
-enum fc_ns_pt {
- FC_NS_UNID_PORT = 0x00, /* unidentified */
- FC_NS_N_PORT = 0x01, /* N port */
- FC_NS_NL_PORT = 0x02, /* NL port */
- FC_NS_FNL_PORT = 0x03, /* F/NL port */
- FC_NS_NX_PORT = 0x7f, /* Nx port */
- FC_NS_F_PORT = 0x81, /* F port */
- FC_NS_FL_PORT = 0x82, /* FL port */
- FC_NS_E_PORT = 0x84, /* E port */
- FC_NS_B_PORT = 0x85, /* B port */
-};
-
-/*
- * Port type object.
- */
-struct fc_ns_pt_obj {
- __u8 pt_type;
-};
-
-/*
- * Port ID object
- */
-struct fc_ns_fid {
- __u8 fp_flags; /* flags for responses only */
- __u8 fp_fid[3];
-};
-
-/*
- * fp_flags in port ID object, for responses only.
- */
-#define FC_NS_FID_LAST 0x80 /* last object */
-
-/*
- * FC4-types object.
- */
-#define FC_NS_TYPES 256 /* number of possible FC-4 types */
-#define FC_NS_BPW 32 /* bits per word in bitmap */
-
-struct fc_ns_fts {
- __be32 ff_type_map[FC_NS_TYPES / FC_NS_BPW]; /* bitmap of FC-4 types */
-};
-
-/*
- * FC4-features object.
- */
-struct fc_ns_ff {
- __be32 fd_feat[FC_NS_TYPES * 4 / FC_NS_BPW]; /* 4-bits per FC-type */
-};
-
-/*
- * GID_PT request.
- */
-struct fc_ns_gid_pt {
- __u8 fn_pt_type;
- __u8 fn_domain_id_scope;
- __u8 fn_area_id_scope;
- __u8 fn_resvd;
-};
-
-/*
- * GID_FT or GPN_FT request.
- */
-struct fc_ns_gid_ft {
- __u8 fn_resvd;
- __u8 fn_domain_id_scope;
- __u8 fn_area_id_scope;
- __u8 fn_fc4_type;
-};
-
-/*
- * GPN_FT response.
- */
-struct fc_gpn_ft_resp {
- __u8 fp_flags; /* see fp_flags definitions above */
- __u8 fp_fid[3]; /* port ID */
- __be32 fp_resvd;
- __be64 fp_wwpn; /* port name */
-};
-
-/*
- * GID_PN request
- */
-struct fc_ns_gid_pn {
- __be64 fn_wwpn; /* port name */
-};
-
-/*
- * GID_PN response or GSPN_ID request
- */
-struct fc_gid_pn_resp {
- __u8 fp_resvd;
- __u8 fp_fid[3]; /* port ID */
-};
-
-/*
- * GSPN_ID response
- */
-struct fc_gspn_resp {
- __u8 fp_name_len;
- char fp_name[];
-};
-
-/*
- * RFT_ID request - register FC-4 types for ID.
- */
-struct fc_ns_rft_id {
- struct fc_ns_fid fr_fid; /* port ID object */
- struct fc_ns_fts fr_fts; /* FC-4 types object */
-};
-
-/*
- * RPN_ID request - register port name for ID.
- * RNN_ID request - register node name for ID.
- */
-struct fc_ns_rn_id {
- struct fc_ns_fid fr_fid; /* port ID object */
- __be64 fr_wwn; /* node name or port name */
-} __attribute__((__packed__));
-
-/*
- * RSNN_NN request - register symbolic node name
- */
-struct fc_ns_rsnn {
- __be64 fr_wwn; /* node name */
- __u8 fr_name_len;
- char fr_name[];
-} __attribute__((__packed__));
-
-/*
- * RSPN_ID request - register symbolic port name
- */
-struct fc_ns_rspn {
- struct fc_ns_fid fr_fid; /* port ID object */
- __u8 fr_name_len;
- char fr_name[];
-} __attribute__((__packed__));
-
-/*
- * RFF_ID request - register FC-4 Features for ID.
- */
-struct fc_ns_rff_id {
- struct fc_ns_fid fr_fid; /* port ID object */
- __u8 fr_resvd[2];
- __u8 fr_feat; /* FC-4 Feature bits */
- __u8 fr_type; /* FC-4 type */
-} __attribute__((__packed__));
-
-#endif /* _FC_NS_H_ */
diff --git a/ANDROID_3.4.5/include/scsi/fc_encode.h b/ANDROID_3.4.5/include/scsi/fc_encode.h
deleted file mode 100644
index 35fd4744..00000000
--- a/ANDROID_3.4.5/include/scsi/fc_encode.h
+++ /dev/null
@@ -1,739 +0,0 @@
-/*
- * Copyright(c) 2008 Intel Corporation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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.
- *
- * Maintained at www.Open-FCoE.org
- */
-
-#ifndef _FC_ENCODE_H_
-#define _FC_ENCODE_H_
-#include <asm/unaligned.h>
-#include <linux/utsname.h>
-
-/*
- * F_CTL values for simple requests and responses.
- */
-#define FC_FCTL_REQ (FC_FC_FIRST_SEQ | FC_FC_END_SEQ | FC_FC_SEQ_INIT)
-#define FC_FCTL_RESP (FC_FC_EX_CTX | FC_FC_LAST_SEQ | \
- FC_FC_END_SEQ | FC_FC_SEQ_INIT)
-
-struct fc_ns_rft {
- struct fc_ns_fid fid; /* port ID object */
- struct fc_ns_fts fts; /* FC4-types object */
-};
-
-struct fc_ct_req {
- struct fc_ct_hdr hdr;
- union {
- struct fc_ns_gid_ft gid;
- struct fc_ns_rn_id rn;
- struct fc_ns_rft rft;
- struct fc_ns_rff_id rff;
- struct fc_ns_fid fid;
- struct fc_ns_rsnn snn;
- struct fc_ns_rspn spn;
- struct fc_fdmi_rhba rhba;
- struct fc_fdmi_rpa rpa;
- struct fc_fdmi_dprt dprt;
- struct fc_fdmi_dhba dhba;
- } payload;
-};
-
-static inline void __fc_fill_fc_hdr(struct fc_frame_header *fh,
- enum fc_rctl r_ctl,
- u32 did, u32 sid, enum fc_fh_type type,
- u32 f_ctl, u32 parm_offset)
-{
- WARN_ON(r_ctl == 0);
- fh->fh_r_ctl = r_ctl;
- hton24(fh->fh_d_id, did);
- hton24(fh->fh_s_id, sid);
- fh->fh_type = type;
- hton24(fh->fh_f_ctl, f_ctl);
- fh->fh_cs_ctl = 0;
- fh->fh_df_ctl = 0;
- fh->fh_parm_offset = htonl(parm_offset);
-}
-
-/**
- * fill FC header fields in specified fc_frame
- */
-static inline void fc_fill_fc_hdr(struct fc_frame *fp, enum fc_rctl r_ctl,
- u32 did, u32 sid, enum fc_fh_type type,
- u32 f_ctl, u32 parm_offset)
-{
- struct fc_frame_header *fh;
-
- fh = fc_frame_header_get(fp);
- __fc_fill_fc_hdr(fh, r_ctl, did, sid, type, f_ctl, parm_offset);
-}
-
-/**
- * fc_adisc_fill() - Fill in adisc request frame
- * @lport: local port.
- * @fp: fc frame where payload will be placed.
- */
-static inline void fc_adisc_fill(struct fc_lport *lport, struct fc_frame *fp)
-{
- struct fc_els_adisc *adisc;
-
- adisc = fc_frame_payload_get(fp, sizeof(*adisc));
- memset(adisc, 0, sizeof(*adisc));
- adisc->adisc_cmd = ELS_ADISC;
- put_unaligned_be64(lport->wwpn, &adisc->adisc_wwpn);
- put_unaligned_be64(lport->wwnn, &adisc->adisc_wwnn);
- hton24(adisc->adisc_port_id, lport->port_id);
-}
-
-/**
- * fc_ct_hdr_fill- fills ct header and reset ct payload
- * returns pointer to ct request.
- */
-static inline struct fc_ct_req *fc_ct_hdr_fill(const struct fc_frame *fp,
- unsigned int op, size_t req_size,
- enum fc_ct_fs_type fs_type,
- u8 subtype)
-{
- struct fc_ct_req *ct;
- size_t ct_plen;
-
- ct_plen = sizeof(struct fc_ct_hdr) + req_size;
- ct = fc_frame_payload_get(fp, ct_plen);
- memset(ct, 0, ct_plen);
- ct->hdr.ct_rev = FC_CT_REV;
- ct->hdr.ct_fs_type = fs_type;
- ct->hdr.ct_fs_subtype = subtype;
- ct->hdr.ct_cmd = htons((u16) op);
- return ct;
-}
-
-/**
- * fc_ct_ns_fill() - Fill in a name service request frame
- * @lport: local port.
- * @fc_id: FC_ID of non-destination rport for GPN_ID and similar inquiries.
- * @fp: frame to contain payload.
- * @op: CT opcode.
- * @r_ctl: pointer to FC header R_CTL.
- * @fh_type: pointer to FC-4 type.
- */
-static inline int fc_ct_ns_fill(struct fc_lport *lport,
- u32 fc_id, struct fc_frame *fp,
- unsigned int op, enum fc_rctl *r_ctl,
- enum fc_fh_type *fh_type)
-{
- struct fc_ct_req *ct;
- size_t len;
-
- switch (op) {
- case FC_NS_GPN_FT:
- ct = fc_ct_hdr_fill(fp, op, sizeof(struct fc_ns_gid_ft),
- FC_FST_DIR, FC_NS_SUBTYPE);
- ct->payload.gid.fn_fc4_type = FC_TYPE_FCP;
- break;
-
- case FC_NS_GPN_ID:
- ct = fc_ct_hdr_fill(fp, op, sizeof(struct fc_ns_fid),
- FC_FST_DIR, FC_NS_SUBTYPE);
- ct->payload.gid.fn_fc4_type = FC_TYPE_FCP;
- hton24(ct->payload.fid.fp_fid, fc_id);
- break;
-
- case FC_NS_RFT_ID:
- ct = fc_ct_hdr_fill(fp, op, sizeof(struct fc_ns_rft),
- FC_FST_DIR, FC_NS_SUBTYPE);
- hton24(ct->payload.rft.fid.fp_fid, lport->port_id);
- ct->payload.rft.fts = lport->fcts;
- break;
-
- case FC_NS_RFF_ID:
- ct = fc_ct_hdr_fill(fp, op, sizeof(struct fc_ns_rff_id),
- FC_FST_DIR, FC_NS_SUBTYPE);
- hton24(ct->payload.rff.fr_fid.fp_fid, lport->port_id);
- ct->payload.rff.fr_type = FC_TYPE_FCP;
- if (lport->service_params & FCP_SPPF_INIT_FCN)
- ct->payload.rff.fr_feat = FCP_FEAT_INIT;
- if (lport->service_params & FCP_SPPF_TARG_FCN)
- ct->payload.rff.fr_feat |= FCP_FEAT_TARG;
- break;
-
- case FC_NS_RNN_ID:
- ct = fc_ct_hdr_fill(fp, op, sizeof(struct fc_ns_rn_id),
- FC_FST_DIR, FC_NS_SUBTYPE);
- hton24(ct->payload.rn.fr_fid.fp_fid, lport->port_id);
- put_unaligned_be64(lport->wwnn, &ct->payload.rn.fr_wwn);
- break;
-
- case FC_NS_RSPN_ID:
- len = strnlen(fc_host_symbolic_name(lport->host), 255);
- ct = fc_ct_hdr_fill(fp, op, sizeof(struct fc_ns_rspn) + len,
- FC_FST_DIR, FC_NS_SUBTYPE);
- hton24(ct->payload.spn.fr_fid.fp_fid, lport->port_id);
- strncpy(ct->payload.spn.fr_name,
- fc_host_symbolic_name(lport->host), len);
- ct->payload.spn.fr_name_len = len;
- break;
-
- case FC_NS_RSNN_NN:
- len = strnlen(fc_host_symbolic_name(lport->host), 255);
- ct = fc_ct_hdr_fill(fp, op, sizeof(struct fc_ns_rsnn) + len,
- FC_FST_DIR, FC_NS_SUBTYPE);
- put_unaligned_be64(lport->wwnn, &ct->payload.snn.fr_wwn);
- strncpy(ct->payload.snn.fr_name,
- fc_host_symbolic_name(lport->host), len);
- ct->payload.snn.fr_name_len = len;
- break;
-
- default:
- return -EINVAL;
- }
- *r_ctl = FC_RCTL_DD_UNSOL_CTL;
- *fh_type = FC_TYPE_CT;
- return 0;
-}
-
-/**
- * fc_ct_ms_fill() - Fill in a mgmt service request frame
- * @lport: local port.
- * @fc_id: FC_ID of non-destination rport for GPN_ID and similar inquiries.
- * @fp: frame to contain payload.
- * @op: CT opcode.
- * @r_ctl: pointer to FC header R_CTL.
- * @fh_type: pointer to FC-4 type.
- */
-static inline int fc_ct_ms_fill(struct fc_lport *lport,
- u32 fc_id, struct fc_frame *fp,
- unsigned int op, enum fc_rctl *r_ctl,
- enum fc_fh_type *fh_type)
-{
- struct fc_ct_req *ct;
- size_t len;
- struct fc_fdmi_attr_entry *entry;
- struct fs_fdmi_attrs *hba_attrs;
- int numattrs = 0;
-
- switch (op) {
- case FC_FDMI_RHBA:
- numattrs = 10;
- len = sizeof(struct fc_fdmi_rhba);
- len -= sizeof(struct fc_fdmi_attr_entry);
- len += (numattrs * FC_FDMI_ATTR_ENTRY_HEADER_LEN);
- len += FC_FDMI_HBA_ATTR_NODENAME_LEN;
- len += FC_FDMI_HBA_ATTR_MANUFACTURER_LEN;
- len += FC_FDMI_HBA_ATTR_SERIALNUMBER_LEN;
- len += FC_FDMI_HBA_ATTR_MODEL_LEN;
- len += FC_FDMI_HBA_ATTR_MODELDESCR_LEN;
- len += FC_FDMI_HBA_ATTR_HARDWAREVERSION_LEN;
- len += FC_FDMI_HBA_ATTR_DRIVERVERSION_LEN;
- len += FC_FDMI_HBA_ATTR_OPTIONROMVERSION_LEN;
- len += FC_FDMI_HBA_ATTR_FIRMWAREVERSION_LEN;
- len += FC_FDMI_HBA_ATTR_OSNAMEVERSION_LEN;
- ct = fc_ct_hdr_fill(fp, op, len, FC_FST_MGMT,
- FC_FDMI_SUBTYPE);
-
- /* HBA Identifier */
- put_unaligned_be64(lport->wwpn, &ct->payload.rhba.hbaid.id);
- /* Number of Ports - always 1 */
- put_unaligned_be32(1, &ct->payload.rhba.port.numport);
- /* Port Name */
- put_unaligned_be64(lport->wwpn,
- &ct->payload.rhba.port.port[0].portname);
-
- /* HBA Attributes */
- put_unaligned_be32(numattrs,
- &ct->payload.rhba.hba_attrs.numattrs);
- hba_attrs = &ct->payload.rhba.hba_attrs;
- entry = (struct fc_fdmi_attr_entry *)hba_attrs->attr;
- /* NodeName*/
- len = FC_FDMI_ATTR_ENTRY_HEADER_LEN;
- len += FC_FDMI_HBA_ATTR_NODENAME_LEN;
- put_unaligned_be16(FC_FDMI_HBA_ATTR_NODENAME,
- &entry->type);
- put_unaligned_be16(len, &entry->len);
- put_unaligned_be64(lport->wwnn,
- (__be64 *)&entry->value[0]);
-
- /* Manufacturer */
- entry = (struct fc_fdmi_attr_entry *)((char *)entry->value +
- FC_FDMI_HBA_ATTR_NODENAME_LEN);
- len = FC_FDMI_ATTR_ENTRY_HEADER_LEN;
- len += FC_FDMI_HBA_ATTR_MANUFACTURER_LEN;
- put_unaligned_be16(FC_FDMI_HBA_ATTR_MANUFACTURER,
- &entry->type);
- put_unaligned_be16(len, &entry->len);
- strncpy((char *)&entry->value,
- fc_host_manufacturer(lport->host),
- FC_FDMI_HBA_ATTR_MANUFACTURER_LEN);
-
- /* SerialNumber */
- entry = (struct fc_fdmi_attr_entry *)((char *)entry->value +
- FC_FDMI_HBA_ATTR_MANUFACTURER_LEN);
- len = FC_FDMI_ATTR_ENTRY_HEADER_LEN;
- len += FC_FDMI_HBA_ATTR_SERIALNUMBER_LEN;
- put_unaligned_be16(FC_FDMI_HBA_ATTR_SERIALNUMBER,
- &entry->type);
- put_unaligned_be16(len, &entry->len);
- strncpy((char *)&entry->value,
- fc_host_serial_number(lport->host),
- FC_FDMI_HBA_ATTR_SERIALNUMBER_LEN);
-
- /* Model */
- entry = (struct fc_fdmi_attr_entry *)((char *)entry->value +
- FC_FDMI_HBA_ATTR_SERIALNUMBER_LEN);
- len = FC_FDMI_ATTR_ENTRY_HEADER_LEN;
- len += FC_FDMI_HBA_ATTR_MODEL_LEN;
- put_unaligned_be16(FC_FDMI_HBA_ATTR_MODEL,
- &entry->type);
- put_unaligned_be16(len, &entry->len);
- strncpy((char *)&entry->value,
- fc_host_model(lport->host),
- FC_FDMI_HBA_ATTR_MODEL_LEN);
-
- /* Model Description */
- entry = (struct fc_fdmi_attr_entry *)((char *)entry->value +
- FC_FDMI_HBA_ATTR_MODEL_LEN);
- len = FC_FDMI_ATTR_ENTRY_HEADER_LEN;
- len += FC_FDMI_HBA_ATTR_MODELDESCR_LEN;
- put_unaligned_be16(FC_FDMI_HBA_ATTR_MODELDESCRIPTION,
- &entry->type);
- put_unaligned_be16(len, &entry->len);
- strncpy((char *)&entry->value,
- fc_host_model_description(lport->host),
- FC_FDMI_HBA_ATTR_MODELDESCR_LEN);
-
- /* Hardware Version */
- entry = (struct fc_fdmi_attr_entry *)((char *)entry->value +
- FC_FDMI_HBA_ATTR_MODELDESCR_LEN);
- len = FC_FDMI_ATTR_ENTRY_HEADER_LEN;
- len += FC_FDMI_HBA_ATTR_HARDWAREVERSION_LEN;
- put_unaligned_be16(FC_FDMI_HBA_ATTR_HARDWAREVERSION,
- &entry->type);
- put_unaligned_be16(len, &entry->len);
- strncpy((char *)&entry->value,
- fc_host_hardware_version(lport->host),
- FC_FDMI_HBA_ATTR_HARDWAREVERSION_LEN);
-
- /* Driver Version */
- entry = (struct fc_fdmi_attr_entry *)((char *)entry->value +
- FC_FDMI_HBA_ATTR_HARDWAREVERSION_LEN);
- len = FC_FDMI_ATTR_ENTRY_HEADER_LEN;
- len += FC_FDMI_HBA_ATTR_DRIVERVERSION_LEN;
- put_unaligned_be16(FC_FDMI_HBA_ATTR_DRIVERVERSION,
- &entry->type);
- put_unaligned_be16(len, &entry->len);
- strncpy((char *)&entry->value,
- fc_host_driver_version(lport->host),
- FC_FDMI_HBA_ATTR_DRIVERVERSION_LEN);
-
- /* OptionROM Version */
- entry = (struct fc_fdmi_attr_entry *)((char *)entry->value +
- FC_FDMI_HBA_ATTR_DRIVERVERSION_LEN);
- len = FC_FDMI_ATTR_ENTRY_HEADER_LEN;
- len += FC_FDMI_HBA_ATTR_OPTIONROMVERSION_LEN;
- put_unaligned_be16(FC_FDMI_HBA_ATTR_OPTIONROMVERSION,
- &entry->type);
- put_unaligned_be16(len, &entry->len);
- strncpy((char *)&entry->value,
- fc_host_optionrom_version(lport->host),
- FC_FDMI_HBA_ATTR_OPTIONROMVERSION_LEN);
-
- /* Firmware Version */
- entry = (struct fc_fdmi_attr_entry *)((char *)entry->value +
- FC_FDMI_HBA_ATTR_OPTIONROMVERSION_LEN);
- len = FC_FDMI_ATTR_ENTRY_HEADER_LEN;
- len += FC_FDMI_HBA_ATTR_FIRMWAREVERSION_LEN;
- put_unaligned_be16(FC_FDMI_HBA_ATTR_FIRMWAREVERSION,
- &entry->type);
- put_unaligned_be16(len, &entry->len);
- strncpy((char *)&entry->value,
- fc_host_firmware_version(lport->host),
- FC_FDMI_HBA_ATTR_FIRMWAREVERSION_LEN);
-
- /* OS Name and Version */
- entry = (struct fc_fdmi_attr_entry *)((char *)entry->value +
- FC_FDMI_HBA_ATTR_FIRMWAREVERSION_LEN);
- len = FC_FDMI_ATTR_ENTRY_HEADER_LEN;
- len += FC_FDMI_HBA_ATTR_OSNAMEVERSION_LEN;
- put_unaligned_be16(FC_FDMI_HBA_ATTR_OSNAMEVERSION,
- &entry->type);
- put_unaligned_be16(len, &entry->len);
- snprintf((char *)&entry->value,
- FC_FDMI_HBA_ATTR_OSNAMEVERSION_LEN,
- "%s v%s",
- init_utsname()->sysname,
- init_utsname()->release);
- break;
- case FC_FDMI_RPA:
- numattrs = 6;
- len = sizeof(struct fc_fdmi_rpa);
- len -= sizeof(struct fc_fdmi_attr_entry);
- len += (numattrs * FC_FDMI_ATTR_ENTRY_HEADER_LEN);
- len += FC_FDMI_PORT_ATTR_FC4TYPES_LEN;
- len += FC_FDMI_PORT_ATTR_SUPPORTEDSPEED_LEN;
- len += FC_FDMI_PORT_ATTR_CURRENTPORTSPEED_LEN;
- len += FC_FDMI_PORT_ATTR_MAXFRAMESIZE_LEN;
- len += FC_FDMI_PORT_ATTR_OSDEVICENAME_LEN;
- len += FC_FDMI_PORT_ATTR_HOSTNAME_LEN;
- ct = fc_ct_hdr_fill(fp, op, len, FC_FST_MGMT,
- FC_FDMI_SUBTYPE);
-
- /* Port Name */
- put_unaligned_be64(lport->wwpn,
- &ct->payload.rpa.port.portname);
-
- /* Port Attributes */
- put_unaligned_be32(numattrs,
- &ct->payload.rpa.hba_attrs.numattrs);
-
- hba_attrs = &ct->payload.rpa.hba_attrs;
- entry = (struct fc_fdmi_attr_entry *)hba_attrs->attr;
-
- /* FC4 types */
- len = FC_FDMI_ATTR_ENTRY_HEADER_LEN;
- len += FC_FDMI_PORT_ATTR_FC4TYPES_LEN;
- put_unaligned_be16(FC_FDMI_PORT_ATTR_FC4TYPES,
- &entry->type);
- put_unaligned_be16(len, &entry->len);
- memcpy(&entry->value, fc_host_supported_fc4s(lport->host),
- FC_FDMI_PORT_ATTR_FC4TYPES_LEN);
-
- /* Supported Speed */
- entry = (struct fc_fdmi_attr_entry *)((char *)entry->value +
- FC_FDMI_PORT_ATTR_FC4TYPES_LEN);
- len = FC_FDMI_ATTR_ENTRY_HEADER_LEN;
- len += FC_FDMI_PORT_ATTR_SUPPORTEDSPEED_LEN;
- put_unaligned_be16(FC_FDMI_PORT_ATTR_SUPPORTEDSPEED,
- &entry->type);
- put_unaligned_be16(len, &entry->len);
-
- put_unaligned_be32(fc_host_supported_speeds(lport->host),
- &entry->value);
-
- /* Current Port Speed */
- entry = (struct fc_fdmi_attr_entry *)((char *)entry->value +
- FC_FDMI_PORT_ATTR_SUPPORTEDSPEED_LEN);
- len = FC_FDMI_ATTR_ENTRY_HEADER_LEN;
- len += FC_FDMI_PORT_ATTR_CURRENTPORTSPEED_LEN;
- put_unaligned_be16(FC_FDMI_PORT_ATTR_CURRENTPORTSPEED,
- &entry->type);
- put_unaligned_be16(len, &entry->len);
- put_unaligned_be32(lport->link_speed,
- &entry->value);
-
- /* Max Frame Size */
- entry = (struct fc_fdmi_attr_entry *)((char *)entry->value +
- FC_FDMI_PORT_ATTR_CURRENTPORTSPEED_LEN);
- len = FC_FDMI_ATTR_ENTRY_HEADER_LEN;
- len += FC_FDMI_PORT_ATTR_MAXFRAMESIZE_LEN;
- put_unaligned_be16(FC_FDMI_PORT_ATTR_MAXFRAMESIZE,
- &entry->type);
- put_unaligned_be16(len, &entry->len);
- put_unaligned_be32(fc_host_maxframe_size(lport->host),
- &entry->value);
-
- /* OS Device Name */
- entry = (struct fc_fdmi_attr_entry *)((char *)entry->value +
- FC_FDMI_PORT_ATTR_MAXFRAMESIZE_LEN);
- len = FC_FDMI_ATTR_ENTRY_HEADER_LEN;
- len += FC_FDMI_PORT_ATTR_OSDEVICENAME_LEN;
- put_unaligned_be16(FC_FDMI_PORT_ATTR_OSDEVICENAME,
- &entry->type);
- put_unaligned_be16(len, &entry->len);
- /* Use the sysfs device name */
- strncpy((char *)&entry->value,
- dev_name(&lport->host->shost_gendev),
- strnlen(dev_name(&lport->host->shost_gendev),
- FC_FDMI_PORT_ATTR_HOSTNAME_LEN));
-
- /* Host Name */
- entry = (struct fc_fdmi_attr_entry *)((char *)entry->value +
- FC_FDMI_PORT_ATTR_OSDEVICENAME_LEN);
- len = FC_FDMI_ATTR_ENTRY_HEADER_LEN;
- len += FC_FDMI_PORT_ATTR_HOSTNAME_LEN;
- put_unaligned_be16(FC_FDMI_PORT_ATTR_HOSTNAME,
- &entry->type);
- put_unaligned_be16(len, &entry->len);
- if (strlen(fc_host_system_hostname(lport->host)))
- strncpy((char *)&entry->value,
- fc_host_system_hostname(lport->host),
- strnlen(fc_host_system_hostname(lport->host),
- FC_FDMI_PORT_ATTR_HOSTNAME_LEN));
- else
- strncpy((char *)&entry->value,
- init_utsname()->nodename,
- FC_FDMI_PORT_ATTR_HOSTNAME_LEN);
- break;
- case FC_FDMI_DPRT:
- len = sizeof(struct fc_fdmi_dprt);
- ct = fc_ct_hdr_fill(fp, op, len, FC_FST_MGMT,
- FC_FDMI_SUBTYPE);
- /* Port Name */
- put_unaligned_be64(lport->wwpn,
- &ct->payload.dprt.port.portname);
- break;
- case FC_FDMI_DHBA:
- len = sizeof(struct fc_fdmi_dhba);
- ct = fc_ct_hdr_fill(fp, op, len, FC_FST_MGMT,
- FC_FDMI_SUBTYPE);
- /* HBA Identifier */
- put_unaligned_be64(lport->wwpn, &ct->payload.dhba.hbaid.id);
- break;
- default:
- return -EINVAL;
- }
- *r_ctl = FC_RCTL_DD_UNSOL_CTL;
- *fh_type = FC_TYPE_CT;
- return 0;
-}
-
-/**
- * fc_ct_fill() - Fill in a common transport service request frame
- * @lport: local port.
- * @fc_id: FC_ID of non-destination rport for GPN_ID and similar inquiries.
- * @fp: frame to contain payload.
- * @op: CT opcode.
- * @r_ctl: pointer to FC header R_CTL.
- * @fh_type: pointer to FC-4 type.
- */
-static inline int fc_ct_fill(struct fc_lport *lport,
- u32 fc_id, struct fc_frame *fp,
- unsigned int op, enum fc_rctl *r_ctl,
- enum fc_fh_type *fh_type, u32 *did)
-{
- int rc = -EINVAL;
-
- switch (fc_id) {
- case FC_FID_MGMT_SERV:
- rc = fc_ct_ms_fill(lport, fc_id, fp, op, r_ctl, fh_type);
- *did = FC_FID_MGMT_SERV;
- break;
- case FC_FID_DIR_SERV:
- default:
- rc = fc_ct_ns_fill(lport, fc_id, fp, op, r_ctl, fh_type);
- *did = FC_FID_DIR_SERV;
- break;
- }
-
- return rc;
-}
-/**
- * fc_plogi_fill - Fill in plogi request frame
- */
-static inline void fc_plogi_fill(struct fc_lport *lport, struct fc_frame *fp,
- unsigned int op)
-{
- struct fc_els_flogi *plogi;
- struct fc_els_csp *csp;
- struct fc_els_cssp *cp;
-
- plogi = fc_frame_payload_get(fp, sizeof(*plogi));
- memset(plogi, 0, sizeof(*plogi));
- plogi->fl_cmd = (u8) op;
- put_unaligned_be64(lport->wwpn, &plogi->fl_wwpn);
- put_unaligned_be64(lport->wwnn, &plogi->fl_wwnn);
-
- csp = &plogi->fl_csp;
- csp->sp_hi_ver = 0x20;
- csp->sp_lo_ver = 0x20;
- csp->sp_bb_cred = htons(10); /* this gets set by gateway */
- csp->sp_bb_data = htons((u16) lport->mfs);
- cp = &plogi->fl_cssp[3 - 1]; /* class 3 parameters */
- cp->cp_class = htons(FC_CPC_VALID | FC_CPC_SEQ);
- csp->sp_features = htons(FC_SP_FT_CIRO);
- csp->sp_tot_seq = htons(255); /* seq. we accept */
- csp->sp_rel_off = htons(0x1f);
- csp->sp_e_d_tov = htonl(lport->e_d_tov);
-
- cp->cp_rdfs = htons((u16) lport->mfs);
- cp->cp_con_seq = htons(255);
- cp->cp_open_seq = 1;
-}
-
-/**
- * fc_flogi_fill - Fill in a flogi request frame.
- */
-static inline void fc_flogi_fill(struct fc_lport *lport, struct fc_frame *fp)
-{
- struct fc_els_csp *sp;
- struct fc_els_cssp *cp;
- struct fc_els_flogi *flogi;
-
- flogi = fc_frame_payload_get(fp, sizeof(*flogi));
- memset(flogi, 0, sizeof(*flogi));
- flogi->fl_cmd = (u8) ELS_FLOGI;
- put_unaligned_be64(lport->wwpn, &flogi->fl_wwpn);
- put_unaligned_be64(lport->wwnn, &flogi->fl_wwnn);
- sp = &flogi->fl_csp;
- sp->sp_hi_ver = 0x20;
- sp->sp_lo_ver = 0x20;
- sp->sp_bb_cred = htons(10); /* this gets set by gateway */
- sp->sp_bb_data = htons((u16) lport->mfs);
- cp = &flogi->fl_cssp[3 - 1]; /* class 3 parameters */
- cp->cp_class = htons(FC_CPC_VALID | FC_CPC_SEQ);
- if (lport->does_npiv)
- sp->sp_features = htons(FC_SP_FT_NPIV);
-}
-
-/**
- * fc_fdisc_fill - Fill in a fdisc request frame.
- */
-static inline void fc_fdisc_fill(struct fc_lport *lport, struct fc_frame *fp)
-{
- struct fc_els_csp *sp;
- struct fc_els_cssp *cp;
- struct fc_els_flogi *fdisc;
-
- fdisc = fc_frame_payload_get(fp, sizeof(*fdisc));
- memset(fdisc, 0, sizeof(*fdisc));
- fdisc->fl_cmd = (u8) ELS_FDISC;
- put_unaligned_be64(lport->wwpn, &fdisc->fl_wwpn);
- put_unaligned_be64(lport->wwnn, &fdisc->fl_wwnn);
- sp = &fdisc->fl_csp;
- sp->sp_hi_ver = 0x20;
- sp->sp_lo_ver = 0x20;
- sp->sp_bb_cred = htons(10); /* this gets set by gateway */
- sp->sp_bb_data = htons((u16) lport->mfs);
- cp = &fdisc->fl_cssp[3 - 1]; /* class 3 parameters */
- cp->cp_class = htons(FC_CPC_VALID | FC_CPC_SEQ);
-}
-
-/**
- * fc_logo_fill - Fill in a logo request frame.
- */
-static inline void fc_logo_fill(struct fc_lport *lport, struct fc_frame *fp)
-{
- struct fc_els_logo *logo;
-
- logo = fc_frame_payload_get(fp, sizeof(*logo));
- memset(logo, 0, sizeof(*logo));
- logo->fl_cmd = ELS_LOGO;
- hton24(logo->fl_n_port_id, lport->port_id);
- logo->fl_n_port_wwn = htonll(lport->wwpn);
-}
-
-/**
- * fc_rtv_fill - Fill in RTV (read timeout value) request frame.
- */
-static inline void fc_rtv_fill(struct fc_lport *lport, struct fc_frame *fp)
-{
- struct fc_els_rtv *rtv;
-
- rtv = fc_frame_payload_get(fp, sizeof(*rtv));
- memset(rtv, 0, sizeof(*rtv));
- rtv->rtv_cmd = ELS_RTV;
-}
-
-/**
- * fc_rec_fill - Fill in rec request frame
- */
-static inline void fc_rec_fill(struct fc_lport *lport, struct fc_frame *fp)
-{
- struct fc_els_rec *rec;
- struct fc_exch *ep = fc_seq_exch(fr_seq(fp));
-
- rec = fc_frame_payload_get(fp, sizeof(*rec));
- memset(rec, 0, sizeof(*rec));
- rec->rec_cmd = ELS_REC;
- hton24(rec->rec_s_id, lport->port_id);
- rec->rec_ox_id = htons(ep->oxid);
- rec->rec_rx_id = htons(ep->rxid);
-}
-
-/**
- * fc_prli_fill - Fill in prli request frame
- */
-static inline void fc_prli_fill(struct fc_lport *lport, struct fc_frame *fp)
-{
- struct {
- struct fc_els_prli prli;
- struct fc_els_spp spp;
- } *pp;
-
- pp = fc_frame_payload_get(fp, sizeof(*pp));
- memset(pp, 0, sizeof(*pp));
- pp->prli.prli_cmd = ELS_PRLI;
- pp->prli.prli_spp_len = sizeof(struct fc_els_spp);
- pp->prli.prli_len = htons(sizeof(*pp));
- pp->spp.spp_type = FC_TYPE_FCP;
- pp->spp.spp_flags = FC_SPP_EST_IMG_PAIR;
- pp->spp.spp_params = htonl(lport->service_params);
-}
-
-/**
- * fc_scr_fill - Fill in a scr request frame.
- */
-static inline void fc_scr_fill(struct fc_lport *lport, struct fc_frame *fp)
-{
- struct fc_els_scr *scr;
-
- scr = fc_frame_payload_get(fp, sizeof(*scr));
- memset(scr, 0, sizeof(*scr));
- scr->scr_cmd = ELS_SCR;
- scr->scr_reg_func = ELS_SCRF_FULL;
-}
-
-/**
- * fc_els_fill - Fill in an ELS request frame
- */
-static inline int fc_els_fill(struct fc_lport *lport,
- u32 did,
- struct fc_frame *fp, unsigned int op,
- enum fc_rctl *r_ctl, enum fc_fh_type *fh_type)
-{
- switch (op) {
- case ELS_ADISC:
- fc_adisc_fill(lport, fp);
- break;
-
- case ELS_PLOGI:
- fc_plogi_fill(lport, fp, ELS_PLOGI);
- break;
-
- case ELS_FLOGI:
- fc_flogi_fill(lport, fp);
- break;
-
- case ELS_FDISC:
- fc_fdisc_fill(lport, fp);
- break;
-
- case ELS_LOGO:
- fc_logo_fill(lport, fp);
- break;
-
- case ELS_RTV:
- fc_rtv_fill(lport, fp);
- break;
-
- case ELS_REC:
- fc_rec_fill(lport, fp);
- break;
-
- case ELS_PRLI:
- fc_prli_fill(lport, fp);
- break;
-
- case ELS_SCR:
- fc_scr_fill(lport, fp);
- break;
-
- default:
- return -EINVAL;
- }
-
- *r_ctl = FC_RCTL_ELS_REQ;
- *fh_type = FC_TYPE_ELS;
- return 0;
-}
-#endif /* _FC_ENCODE_H_ */
diff --git a/ANDROID_3.4.5/include/scsi/fc_frame.h b/ANDROID_3.4.5/include/scsi/fc_frame.h
deleted file mode 100644
index 8225d806..00000000
--- a/ANDROID_3.4.5/include/scsi/fc_frame.h
+++ /dev/null
@@ -1,261 +0,0 @@
-/*
- * Copyright(c) 2007 Intel Corporation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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.
- *
- * Maintained at www.Open-FCoE.org
- */
-
-#ifndef _FC_FRAME_H_
-#define _FC_FRAME_H_
-
-#include <linux/scatterlist.h>
-#include <linux/skbuff.h>
-#include <scsi/scsi_cmnd.h>
-
-#include <scsi/fc/fc_fs.h>
-#include <scsi/fc/fc_fcp.h>
-#include <scsi/fc/fc_encaps.h>
-
-#include <linux/if_ether.h>
-
-/* some helpful macros */
-
-#define ntohll(x) be64_to_cpu(x)
-#define htonll(x) cpu_to_be64(x)
-
-static inline u32 ntoh24(const u8 *p)
-{
- return (p[0] << 16) | (p[1] << 8) | p[2];
-}
-
-static inline void hton24(u8 *p, u32 v)
-{
- p[0] = (v >> 16) & 0xff;
- p[1] = (v >> 8) & 0xff;
- p[2] = v & 0xff;
-}
-
-/*
- * The fc_frame interface is used to pass frame data between functions.
- * The frame includes the data buffer, length, and SOF / EOF delimiter types.
- * A pointer to the port structure of the receiving port is also includeded.
- */
-
-#define FC_FRAME_HEADROOM 32 /* headroom for VLAN + FCoE headers */
-#define FC_FRAME_TAILROOM 8 /* trailer space for FCoE */
-
-/* Max number of skb frags allowed, reserving one for fcoe_crc_eof page */
-#define FC_FRAME_SG_LEN (MAX_SKB_FRAGS - 1)
-
-#define fp_skb(fp) (&((fp)->skb))
-#define fr_hdr(fp) ((fp)->skb.data)
-#define fr_len(fp) ((fp)->skb.len)
-#define fr_cb(fp) ((struct fcoe_rcv_info *)&((fp)->skb.cb[0]))
-#define fr_dev(fp) (fr_cb(fp)->fr_dev)
-#define fr_seq(fp) (fr_cb(fp)->fr_seq)
-#define fr_sof(fp) (fr_cb(fp)->fr_sof)
-#define fr_eof(fp) (fr_cb(fp)->fr_eof)
-#define fr_flags(fp) (fr_cb(fp)->fr_flags)
-#define fr_encaps(fp) (fr_cb(fp)->fr_encaps)
-#define fr_max_payload(fp) (fr_cb(fp)->fr_max_payload)
-#define fr_fsp(fp) (fr_cb(fp)->fr_fsp)
-#define fr_crc(fp) (fr_cb(fp)->fr_crc)
-
-struct fc_frame {
- struct sk_buff skb;
-};
-
-struct fcoe_rcv_info {
- struct fc_lport *fr_dev; /* transport layer private pointer */
- struct fc_seq *fr_seq; /* for use with exchange manager */
- struct fc_fcp_pkt *fr_fsp; /* for the corresponding fcp I/O */
- u32 fr_crc;
- u16 fr_max_payload; /* max FC payload */
- u8 fr_sof; /* start of frame delimiter */
- u8 fr_eof; /* end of frame delimiter */
- u8 fr_flags; /* flags - see below */
- u8 fr_encaps; /* LLD encapsulation info (e.g. FIP) */
- u8 granted_mac[ETH_ALEN]; /* FCoE MAC address */
-};
-
-
-/*
- * Get fc_frame pointer for an skb that's already been imported.
- */
-static inline struct fcoe_rcv_info *fcoe_dev_from_skb(const struct sk_buff *skb)
-{
- BUILD_BUG_ON(sizeof(struct fcoe_rcv_info) > sizeof(skb->cb));
- return (struct fcoe_rcv_info *) skb->cb;
-}
-
-/*
- * fr_flags.
- */
-#define FCPHF_CRC_UNCHECKED 0x01 /* CRC not computed, still appended */
-
-/*
- * Initialize a frame.
- * We don't do a complete memset here for performance reasons.
- * The caller must set fr_free, fr_hdr, fr_len, fr_sof, and fr_eof eventually.
- */
-static inline void fc_frame_init(struct fc_frame *fp)
-{
- fr_dev(fp) = NULL;
- fr_seq(fp) = NULL;
- fr_flags(fp) = 0;
- fr_encaps(fp) = 0;
-}
-
-struct fc_frame *fc_frame_alloc_fill(struct fc_lport *, size_t payload_len);
-struct fc_frame *_fc_frame_alloc(size_t payload_len);
-
-/*
- * Allocate fc_frame structure and buffer. Set the initial length to
- * payload_size + sizeof (struct fc_frame_header).
- */
-static inline struct fc_frame *fc_frame_alloc(struct fc_lport *dev, size_t len)
-{
- struct fc_frame *fp;
-
- /*
- * Note: Since len will often be a constant multiple of 4,
- * this check will usually be evaluated and eliminated at compile time.
- */
- if (len && len % 4)
- fp = fc_frame_alloc_fill(dev, len);
- else
- fp = _fc_frame_alloc(len);
- return fp;
-}
-
-/*
- * Free the fc_frame structure and buffer.
- */
-static inline void fc_frame_free(struct fc_frame *fp)
-{
- kfree_skb(fp_skb(fp));
-}
-
-static inline int fc_frame_is_linear(struct fc_frame *fp)
-{
- return !skb_is_nonlinear(fp_skb(fp));
-}
-
-/*
- * Get frame header from message in fc_frame structure.
- * This version doesn't do a length check.
- */
-static inline
-struct fc_frame_header *__fc_frame_header_get(const struct fc_frame *fp)
-{
- return (struct fc_frame_header *)fr_hdr(fp);
-}
-
-/*
- * Get frame header from message in fc_frame structure.
- * This hides a cast and provides a place to add some checking.
- */
-static inline
-struct fc_frame_header *fc_frame_header_get(const struct fc_frame *fp)
-{
- WARN_ON(fr_len(fp) < sizeof(struct fc_frame_header));
- return __fc_frame_header_get(fp);
-}
-
-/*
- * Get source FC_ID (S_ID) from frame header in message.
- */
-static inline u32 fc_frame_sid(const struct fc_frame *fp)
-{
- return ntoh24(__fc_frame_header_get(fp)->fh_s_id);
-}
-
-/*
- * Get destination FC_ID (D_ID) from frame header in message.
- */
-static inline u32 fc_frame_did(const struct fc_frame *fp)
-{
- return ntoh24(__fc_frame_header_get(fp)->fh_d_id);
-}
-
-/*
- * Get frame payload from message in fc_frame structure.
- * This hides a cast and provides a place to add some checking.
- * The len parameter is the minimum length for the payload portion.
- * Returns NULL if the frame is too short.
- *
- * This assumes the interesting part of the payload is in the first part
- * of the buffer for received data. This may not be appropriate to use for
- * buffers being transmitted.
- */
-static inline void *fc_frame_payload_get(const struct fc_frame *fp,
- size_t len)
-{
- void *pp = NULL;
-
- if (fr_len(fp) >= sizeof(struct fc_frame_header) + len)
- pp = fc_frame_header_get(fp) + 1;
- return pp;
-}
-
-/*
- * Get frame payload opcode (first byte) from message in fc_frame structure.
- * This hides a cast and provides a place to add some checking. Return 0
- * if the frame has no payload.
- */
-static inline u8 fc_frame_payload_op(const struct fc_frame *fp)
-{
- u8 *cp;
-
- cp = fc_frame_payload_get(fp, sizeof(u8));
- if (!cp)
- return 0;
- return *cp;
-
-}
-
-/*
- * Get FC class from frame.
- */
-static inline enum fc_class fc_frame_class(const struct fc_frame *fp)
-{
- return fc_sof_class(fr_sof(fp));
-}
-
-/*
- * Check the CRC in a frame.
- * The CRC immediately follows the last data item *AFTER* the length.
- * The return value is zero if the CRC matches.
- */
-u32 fc_frame_crc_check(struct fc_frame *);
-
-static inline u8 fc_frame_rctl(const struct fc_frame *fp)
-{
- return fc_frame_header_get(fp)->fh_r_ctl;
-}
-
-static inline bool fc_frame_is_cmd(const struct fc_frame *fp)
-{
- return fc_frame_rctl(fp) == FC_RCTL_DD_UNSOL_CMD;
-}
-
-/*
- * Check for leaks.
- * Print the frame header of any currently allocated frame, assuming there
- * should be none at this point.
- */
-void fc_frame_leak_check(void);
-
-#endif /* _FC_FRAME_H_ */
diff --git a/ANDROID_3.4.5/include/scsi/iscsi_if.h b/ANDROID_3.4.5/include/scsi/iscsi_if.h
deleted file mode 100644
index 917741bb..00000000
--- a/ANDROID_3.4.5/include/scsi/iscsi_if.h
+++ /dev/null
@@ -1,598 +0,0 @@
-/*
- * iSCSI User/Kernel Shares (Defines, Constants, Protocol definitions, etc)
- *
- * Copyright (C) 2005 Dmitry Yusupov
- * Copyright (C) 2005 Alex Aizman
- * maintained by open-iscsi@googlegroups.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.
- *
- * See the file COPYING included with this distribution for more details.
- */
-
-#ifndef ISCSI_IF_H
-#define ISCSI_IF_H
-
-#include <scsi/iscsi_proto.h>
-#include <linux/in.h>
-#include <linux/in6.h>
-
-#define ISCSI_NL_GRP_ISCSID 1
-#define ISCSI_NL_GRP_UIP 2
-
-#define UEVENT_BASE 10
-#define KEVENT_BASE 100
-#define ISCSI_ERR_BASE 1000
-
-enum iscsi_uevent_e {
- ISCSI_UEVENT_UNKNOWN = 0,
-
- /* down events */
- ISCSI_UEVENT_CREATE_SESSION = UEVENT_BASE + 1,
- ISCSI_UEVENT_DESTROY_SESSION = UEVENT_BASE + 2,
- ISCSI_UEVENT_CREATE_CONN = UEVENT_BASE + 3,
- ISCSI_UEVENT_DESTROY_CONN = UEVENT_BASE + 4,
- ISCSI_UEVENT_BIND_CONN = UEVENT_BASE + 5,
- ISCSI_UEVENT_SET_PARAM = UEVENT_BASE + 6,
- ISCSI_UEVENT_START_CONN = UEVENT_BASE + 7,
- ISCSI_UEVENT_STOP_CONN = UEVENT_BASE + 8,
- ISCSI_UEVENT_SEND_PDU = UEVENT_BASE + 9,
- ISCSI_UEVENT_GET_STATS = UEVENT_BASE + 10,
- ISCSI_UEVENT_GET_PARAM = UEVENT_BASE + 11,
-
- ISCSI_UEVENT_TRANSPORT_EP_CONNECT = UEVENT_BASE + 12,
- ISCSI_UEVENT_TRANSPORT_EP_POLL = UEVENT_BASE + 13,
- ISCSI_UEVENT_TRANSPORT_EP_DISCONNECT = UEVENT_BASE + 14,
-
- ISCSI_UEVENT_TGT_DSCVR = UEVENT_BASE + 15,
- ISCSI_UEVENT_SET_HOST_PARAM = UEVENT_BASE + 16,
- ISCSI_UEVENT_UNBIND_SESSION = UEVENT_BASE + 17,
- ISCSI_UEVENT_CREATE_BOUND_SESSION = UEVENT_BASE + 18,
- ISCSI_UEVENT_TRANSPORT_EP_CONNECT_THROUGH_HOST = UEVENT_BASE + 19,
-
- ISCSI_UEVENT_PATH_UPDATE = UEVENT_BASE + 20,
- ISCSI_UEVENT_SET_IFACE_PARAMS = UEVENT_BASE + 21,
- ISCSI_UEVENT_PING = UEVENT_BASE + 22,
- ISCSI_UEVENT_GET_CHAP = UEVENT_BASE + 23,
- ISCSI_UEVENT_DELETE_CHAP = UEVENT_BASE + 24,
-
- /* up events */
- ISCSI_KEVENT_RECV_PDU = KEVENT_BASE + 1,
- ISCSI_KEVENT_CONN_ERROR = KEVENT_BASE + 2,
- ISCSI_KEVENT_IF_ERROR = KEVENT_BASE + 3,
- ISCSI_KEVENT_DESTROY_SESSION = KEVENT_BASE + 4,
- ISCSI_KEVENT_UNBIND_SESSION = KEVENT_BASE + 5,
- ISCSI_KEVENT_CREATE_SESSION = KEVENT_BASE + 6,
-
- ISCSI_KEVENT_PATH_REQ = KEVENT_BASE + 7,
- ISCSI_KEVENT_IF_DOWN = KEVENT_BASE + 8,
- ISCSI_KEVENT_CONN_LOGIN_STATE = KEVENT_BASE + 9,
- ISCSI_KEVENT_HOST_EVENT = KEVENT_BASE + 10,
- ISCSI_KEVENT_PING_COMP = KEVENT_BASE + 11,
-};
-
-enum iscsi_tgt_dscvr {
- ISCSI_TGT_DSCVR_SEND_TARGETS = 1,
- ISCSI_TGT_DSCVR_ISNS = 2,
- ISCSI_TGT_DSCVR_SLP = 3,
-};
-
-enum iscsi_host_event_code {
- ISCSI_EVENT_LINKUP = 1,
- ISCSI_EVENT_LINKDOWN,
- /* must always be last */
- ISCSI_EVENT_MAX,
-};
-
-struct iscsi_uevent {
- uint32_t type; /* k/u events type */
- uint32_t iferror; /* carries interface or resource errors */
- uint64_t transport_handle;
-
- union {
- /* messages u -> k */
- struct msg_create_session {
- uint32_t initial_cmdsn;
- uint16_t cmds_max;
- uint16_t queue_depth;
- } c_session;
- struct msg_create_bound_session {
- uint64_t ep_handle;
- uint32_t initial_cmdsn;
- uint16_t cmds_max;
- uint16_t queue_depth;
- } c_bound_session;
- struct msg_destroy_session {
- uint32_t sid;
- } d_session;
- struct msg_create_conn {
- uint32_t sid;
- uint32_t cid;
- } c_conn;
- struct msg_bind_conn {
- uint32_t sid;
- uint32_t cid;
- uint64_t transport_eph;
- uint32_t is_leading;
- } b_conn;
- struct msg_destroy_conn {
- uint32_t sid;
- uint32_t cid;
- } d_conn;
- struct msg_send_pdu {
- uint32_t sid;
- uint32_t cid;
- uint32_t hdr_size;
- uint32_t data_size;
- } send_pdu;
- struct msg_set_param {
- uint32_t sid;
- uint32_t cid;
- uint32_t param; /* enum iscsi_param */
- uint32_t len;
- } set_param;
- struct msg_start_conn {
- uint32_t sid;
- uint32_t cid;
- } start_conn;
- struct msg_stop_conn {
- uint32_t sid;
- uint32_t cid;
- uint64_t conn_handle;
- uint32_t flag;
- } stop_conn;
- struct msg_get_stats {
- uint32_t sid;
- uint32_t cid;
- } get_stats;
- struct msg_transport_connect {
- uint32_t non_blocking;
- } ep_connect;
- struct msg_transport_connect_through_host {
- uint32_t host_no;
- uint32_t non_blocking;
- } ep_connect_through_host;
- struct msg_transport_poll {
- uint64_t ep_handle;
- uint32_t timeout_ms;
- } ep_poll;
- struct msg_transport_disconnect {
- uint64_t ep_handle;
- } ep_disconnect;
- struct msg_tgt_dscvr {
- enum iscsi_tgt_dscvr type;
- uint32_t host_no;
- /*
- * enable = 1 to establish a new connection
- * with the server. enable = 0 to disconnect
- * from the server. Used primarily to switch
- * from one iSNS server to another.
- */
- uint32_t enable;
- } tgt_dscvr;
- struct msg_set_host_param {
- uint32_t host_no;
- uint32_t param; /* enum iscsi_host_param */
- uint32_t len;
- } set_host_param;
- struct msg_set_path {
- uint32_t host_no;
- } set_path;
- struct msg_set_iface_params {
- uint32_t host_no;
- uint32_t count;
- } set_iface_params;
- struct msg_iscsi_ping {
- uint32_t host_no;
- uint32_t iface_num;
- uint32_t iface_type;
- uint32_t payload_size;
- uint32_t pid; /* unique ping id associated
- with each ping request */
- } iscsi_ping;
- struct msg_get_chap {
- uint32_t host_no;
- uint32_t num_entries; /* number of CHAP entries
- * on request, number of
- * valid CHAP entries on
- * response */
- uint16_t chap_tbl_idx;
- } get_chap;
- struct msg_delete_chap {
- uint32_t host_no;
- uint16_t chap_tbl_idx;
- } delete_chap;
- } u;
- union {
- /* messages k -> u */
- int retcode;
- struct msg_create_session_ret {
- uint32_t sid;
- uint32_t host_no;
- } c_session_ret;
- struct msg_create_conn_ret {
- uint32_t sid;
- uint32_t cid;
- } c_conn_ret;
- struct msg_unbind_session {
- uint32_t sid;
- uint32_t host_no;
- } unbind_session;
- struct msg_recv_req {
- uint32_t sid;
- uint32_t cid;
- uint64_t recv_handle;
- } recv_req;
- struct msg_conn_login {
- uint32_t sid;
- uint32_t cid;
- uint32_t state; /* enum iscsi_conn_state */
- } conn_login;
- struct msg_conn_error {
- uint32_t sid;
- uint32_t cid;
- uint32_t error; /* enum iscsi_err */
- } connerror;
- struct msg_session_destroyed {
- uint32_t host_no;
- uint32_t sid;
- } d_session;
- struct msg_transport_connect_ret {
- uint64_t handle;
- } ep_connect_ret;
- struct msg_req_path {
- uint32_t host_no;
- } req_path;
- struct msg_notify_if_down {
- uint32_t host_no;
- } notify_if_down;
- struct msg_host_event {
- uint32_t host_no;
- uint32_t data_size;
- enum iscsi_host_event_code code;
- } host_event;
- struct msg_ping_comp {
- uint32_t host_no;
- uint32_t status; /* enum
- * iscsi_ping_status_code */
- uint32_t pid; /* unique ping id associated
- with each ping request */
- uint32_t data_size;
- } ping_comp;
- } r;
-} __attribute__ ((aligned (sizeof(uint64_t))));
-
-enum iscsi_param_type {
- ISCSI_PARAM, /* iscsi_param (session, conn, target, LU) */
- ISCSI_HOST_PARAM, /* iscsi_host_param */
- ISCSI_NET_PARAM, /* iscsi_net_param */
-};
-
-struct iscsi_iface_param_info {
- uint32_t iface_num; /* iface number, 0 - n */
- uint32_t len; /* Actual length of the param */
- uint16_t param; /* iscsi param value */
- uint8_t iface_type; /* IPv4 or IPv6 */
- uint8_t param_type; /* iscsi_param_type */
- uint8_t value[0]; /* length sized value follows */
-} __packed;
-
-/*
- * To keep the struct iscsi_uevent size the same for userspace code
- * compatibility, the main structure for ISCSI_UEVENT_PATH_UPDATE and
- * ISCSI_KEVENT_PATH_REQ is defined separately and comes after the
- * struct iscsi_uevent in the NETLINK_ISCSI message.
- */
-struct iscsi_path {
- uint64_t handle;
- uint8_t mac_addr[6];
- uint8_t mac_addr_old[6];
- uint32_t ip_addr_len; /* 4 or 16 */
- union {
- struct in_addr v4_addr;
- struct in6_addr v6_addr;
- } src;
- union {
- struct in_addr v4_addr;
- struct in6_addr v6_addr;
- } dst;
- uint16_t vlan_id;
- uint16_t pmtu;
-} __attribute__ ((aligned (sizeof(uint64_t))));
-
-/* iscsi iface enabled/disabled setting */
-#define ISCSI_IFACE_DISABLE 0x01
-#define ISCSI_IFACE_ENABLE 0x02
-
-/* ipv4 bootproto */
-#define ISCSI_BOOTPROTO_STATIC 0x01
-#define ISCSI_BOOTPROTO_DHCP 0x02
-
-/* ipv6 addr autoconfig type */
-#define ISCSI_IPV6_AUTOCFG_DISABLE 0x01
-#define ISCSI_IPV6_AUTOCFG_ND_ENABLE 0x02
-#define ISCSI_IPV6_AUTOCFG_DHCPV6_ENABLE 0x03
-
-/* ipv6 link local addr type */
-#define ISCSI_IPV6_LINKLOCAL_AUTOCFG_ENABLE 0x01
-#define ISCSI_IPV6_LINKLOCAL_AUTOCFG_DISABLE 0x02
-
-/* ipv6 router addr type */
-#define ISCSI_IPV6_ROUTER_AUTOCFG_ENABLE 0x01
-#define ISCSI_IPV6_ROUTER_AUTOCFG_DISABLE 0x02
-
-#define ISCSI_IFACE_TYPE_IPV4 0x01
-#define ISCSI_IFACE_TYPE_IPV6 0x02
-
-#define ISCSI_MAX_VLAN_ID 4095
-#define ISCSI_MAX_VLAN_PRIORITY 7
-
-/* iscsi vlan enable/disabled setting */
-#define ISCSI_VLAN_DISABLE 0x01
-#define ISCSI_VLAN_ENABLE 0x02
-
-/* iSCSI network params */
-enum iscsi_net_param {
- ISCSI_NET_PARAM_IPV4_ADDR = 1,
- ISCSI_NET_PARAM_IPV4_SUBNET = 2,
- ISCSI_NET_PARAM_IPV4_GW = 3,
- ISCSI_NET_PARAM_IPV4_BOOTPROTO = 4,
- ISCSI_NET_PARAM_MAC = 5,
- ISCSI_NET_PARAM_IPV6_LINKLOCAL = 6,
- ISCSI_NET_PARAM_IPV6_ADDR = 7,
- ISCSI_NET_PARAM_IPV6_ROUTER = 8,
- ISCSI_NET_PARAM_IPV6_ADDR_AUTOCFG = 9,
- ISCSI_NET_PARAM_IPV6_LINKLOCAL_AUTOCFG = 10,
- ISCSI_NET_PARAM_IPV6_ROUTER_AUTOCFG = 11,
- ISCSI_NET_PARAM_IFACE_ENABLE = 12,
- ISCSI_NET_PARAM_VLAN_ID = 13,
- ISCSI_NET_PARAM_VLAN_PRIORITY = 14,
- ISCSI_NET_PARAM_VLAN_ENABLED = 15,
- ISCSI_NET_PARAM_VLAN_TAG = 16,
- ISCSI_NET_PARAM_IFACE_TYPE = 17,
- ISCSI_NET_PARAM_IFACE_NAME = 18,
- ISCSI_NET_PARAM_MTU = 19,
- ISCSI_NET_PARAM_PORT = 20,
-};
-
-enum iscsi_conn_state {
- ISCSI_CONN_STATE_FREE,
- ISCSI_CONN_STATE_XPT_WAIT,
- ISCSI_CONN_STATE_IN_LOGIN,
- ISCSI_CONN_STATE_LOGGED_IN,
- ISCSI_CONN_STATE_IN_LOGOUT,
- ISCSI_CONN_STATE_LOGOUT_REQUESTED,
- ISCSI_CONN_STATE_CLEANUP_WAIT,
-};
-
-/*
- * Common error codes
- */
-enum iscsi_err {
- ISCSI_OK = 0,
-
- ISCSI_ERR_DATASN = ISCSI_ERR_BASE + 1,
- ISCSI_ERR_DATA_OFFSET = ISCSI_ERR_BASE + 2,
- ISCSI_ERR_MAX_CMDSN = ISCSI_ERR_BASE + 3,
- ISCSI_ERR_EXP_CMDSN = ISCSI_ERR_BASE + 4,
- ISCSI_ERR_BAD_OPCODE = ISCSI_ERR_BASE + 5,
- ISCSI_ERR_DATALEN = ISCSI_ERR_BASE + 6,
- ISCSI_ERR_AHSLEN = ISCSI_ERR_BASE + 7,
- ISCSI_ERR_PROTO = ISCSI_ERR_BASE + 8,
- ISCSI_ERR_LUN = ISCSI_ERR_BASE + 9,
- ISCSI_ERR_BAD_ITT = ISCSI_ERR_BASE + 10,
- ISCSI_ERR_CONN_FAILED = ISCSI_ERR_BASE + 11,
- ISCSI_ERR_R2TSN = ISCSI_ERR_BASE + 12,
- ISCSI_ERR_SESSION_FAILED = ISCSI_ERR_BASE + 13,
- ISCSI_ERR_HDR_DGST = ISCSI_ERR_BASE + 14,
- ISCSI_ERR_DATA_DGST = ISCSI_ERR_BASE + 15,
- ISCSI_ERR_PARAM_NOT_FOUND = ISCSI_ERR_BASE + 16,
- ISCSI_ERR_NO_SCSI_CMD = ISCSI_ERR_BASE + 17,
- ISCSI_ERR_INVALID_HOST = ISCSI_ERR_BASE + 18,
- ISCSI_ERR_XMIT_FAILED = ISCSI_ERR_BASE + 19,
- ISCSI_ERR_TCP_CONN_CLOSE = ISCSI_ERR_BASE + 20,
- ISCSI_ERR_SCSI_EH_SESSION_RST = ISCSI_ERR_BASE + 21,
-};
-
-/*
- * iSCSI Parameters (RFC3720)
- */
-enum iscsi_param {
- /* passed in using netlink set param */
- ISCSI_PARAM_MAX_RECV_DLENGTH,
- ISCSI_PARAM_MAX_XMIT_DLENGTH,
- ISCSI_PARAM_HDRDGST_EN,
- ISCSI_PARAM_DATADGST_EN,
- ISCSI_PARAM_INITIAL_R2T_EN,
- ISCSI_PARAM_MAX_R2T,
- ISCSI_PARAM_IMM_DATA_EN,
- ISCSI_PARAM_FIRST_BURST,
- ISCSI_PARAM_MAX_BURST,
- ISCSI_PARAM_PDU_INORDER_EN,
- ISCSI_PARAM_DATASEQ_INORDER_EN,
- ISCSI_PARAM_ERL,
- ISCSI_PARAM_IFMARKER_EN,
- ISCSI_PARAM_OFMARKER_EN,
- ISCSI_PARAM_EXP_STATSN,
- ISCSI_PARAM_TARGET_NAME,
- ISCSI_PARAM_TPGT,
- ISCSI_PARAM_PERSISTENT_ADDRESS,
- ISCSI_PARAM_PERSISTENT_PORT,
- ISCSI_PARAM_SESS_RECOVERY_TMO,
-
- /* passed in through bind conn using transport_fd */
- ISCSI_PARAM_CONN_PORT,
- ISCSI_PARAM_CONN_ADDRESS,
-
- ISCSI_PARAM_USERNAME,
- ISCSI_PARAM_USERNAME_IN,
- ISCSI_PARAM_PASSWORD,
- ISCSI_PARAM_PASSWORD_IN,
-
- ISCSI_PARAM_FAST_ABORT,
- ISCSI_PARAM_ABORT_TMO,
- ISCSI_PARAM_LU_RESET_TMO,
- ISCSI_PARAM_HOST_RESET_TMO,
-
- ISCSI_PARAM_PING_TMO,
- ISCSI_PARAM_RECV_TMO,
-
- ISCSI_PARAM_IFACE_NAME,
- ISCSI_PARAM_ISID,
- ISCSI_PARAM_INITIATOR_NAME,
-
- ISCSI_PARAM_TGT_RESET_TMO,
- ISCSI_PARAM_TARGET_ALIAS,
-
- ISCSI_PARAM_CHAP_IN_IDX,
- ISCSI_PARAM_CHAP_OUT_IDX,
- /* must always be last */
- ISCSI_PARAM_MAX,
-};
-
-/* iSCSI HBA params */
-enum iscsi_host_param {
- ISCSI_HOST_PARAM_HWADDRESS,
- ISCSI_HOST_PARAM_INITIATOR_NAME,
- ISCSI_HOST_PARAM_NETDEV_NAME,
- ISCSI_HOST_PARAM_IPADDRESS,
- ISCSI_HOST_PARAM_PORT_STATE,
- ISCSI_HOST_PARAM_PORT_SPEED,
- ISCSI_HOST_PARAM_MAX,
-};
-
-/* iSCSI port Speed */
-enum iscsi_port_speed {
- ISCSI_PORT_SPEED_UNKNOWN = 0x1,
- ISCSI_PORT_SPEED_10MBPS = 0x2,
- ISCSI_PORT_SPEED_100MBPS = 0x4,
- ISCSI_PORT_SPEED_1GBPS = 0x8,
- ISCSI_PORT_SPEED_10GBPS = 0x10,
-};
-
-/* iSCSI port state */
-enum iscsi_port_state {
- ISCSI_PORT_STATE_DOWN = 0x1,
- ISCSI_PORT_STATE_UP = 0x2,
-};
-
-/* iSCSI PING status/error code */
-enum iscsi_ping_status_code {
- ISCSI_PING_SUCCESS = 0,
- ISCSI_PING_FW_DISABLED = 0x1,
- ISCSI_PING_IPADDR_INVALID = 0x2,
- ISCSI_PING_LINKLOCAL_IPV6_ADDR_INVALID = 0x3,
- ISCSI_PING_TIMEOUT = 0x4,
- ISCSI_PING_INVALID_DEST_ADDR = 0x5,
- ISCSI_PING_OVERSIZE_PACKET = 0x6,
- ISCSI_PING_ICMP_ERROR = 0x7,
- ISCSI_PING_MAX_REQ_EXCEEDED = 0x8,
- ISCSI_PING_NO_ARP_RECEIVED = 0x9,
-};
-
-#define iscsi_ptr(_handle) ((void*)(unsigned long)_handle)
-#define iscsi_handle(_ptr) ((uint64_t)(unsigned long)_ptr)
-
-/*
- * These flags presents iSCSI Data-Path capabilities.
- */
-#define CAP_RECOVERY_L0 0x1
-#define CAP_RECOVERY_L1 0x2
-#define CAP_RECOVERY_L2 0x4
-#define CAP_MULTI_R2T 0x8
-#define CAP_HDRDGST 0x10
-#define CAP_DATADGST 0x20
-#define CAP_MULTI_CONN 0x40
-#define CAP_TEXT_NEGO 0x80
-#define CAP_MARKERS 0x100
-#define CAP_FW_DB 0x200
-#define CAP_SENDTARGETS_OFFLOAD 0x400 /* offload discovery process */
-#define CAP_DATA_PATH_OFFLOAD 0x800 /* offload entire IO path */
-#define CAP_DIGEST_OFFLOAD 0x1000 /* offload hdr and data digests */
-#define CAP_PADDING_OFFLOAD 0x2000 /* offload padding insertion, removal,
- and verification */
-#define CAP_LOGIN_OFFLOAD 0x4000 /* offload session login */
-
-/*
- * These flags describes reason of stop_conn() call
- */
-#define STOP_CONN_TERM 0x1
-#define STOP_CONN_SUSPEND 0x2
-#define STOP_CONN_RECOVER 0x3
-
-#define ISCSI_STATS_CUSTOM_MAX 32
-#define ISCSI_STATS_CUSTOM_DESC_MAX 64
-struct iscsi_stats_custom {
- char desc[ISCSI_STATS_CUSTOM_DESC_MAX];
- uint64_t value;
-};
-
-/*
- * struct iscsi_stats - iSCSI Statistics (iSCSI MIB)
- *
- * Note: this structure contains counters collected on per-connection basis.
- */
-struct iscsi_stats {
- /* octets */
- uint64_t txdata_octets;
- uint64_t rxdata_octets;
-
- /* xmit pdus */
- uint32_t noptx_pdus;
- uint32_t scsicmd_pdus;
- uint32_t tmfcmd_pdus;
- uint32_t login_pdus;
- uint32_t text_pdus;
- uint32_t dataout_pdus;
- uint32_t logout_pdus;
- uint32_t snack_pdus;
-
- /* recv pdus */
- uint32_t noprx_pdus;
- uint32_t scsirsp_pdus;
- uint32_t tmfrsp_pdus;
- uint32_t textrsp_pdus;
- uint32_t datain_pdus;
- uint32_t logoutrsp_pdus;
- uint32_t r2t_pdus;
- uint32_t async_pdus;
- uint32_t rjt_pdus;
-
- /* errors */
- uint32_t digest_err;
- uint32_t timeout_err;
-
- /*
- * iSCSI Custom Statistics support, i.e. Transport could
- * extend existing MIB statistics with its own specific statistics
- * up to ISCSI_STATS_CUSTOM_MAX
- */
- uint32_t custom_length;
- struct iscsi_stats_custom custom[0]
- __attribute__ ((aligned (sizeof(uint64_t))));
-};
-
-enum chap_type_e {
- CHAP_TYPE_OUT,
- CHAP_TYPE_IN,
-};
-
-#define ISCSI_CHAP_AUTH_NAME_MAX_LEN 256
-#define ISCSI_CHAP_AUTH_SECRET_MAX_LEN 256
-struct iscsi_chap_rec {
- uint16_t chap_tbl_idx;
- enum chap_type_e chap_type;
- char username[ISCSI_CHAP_AUTH_NAME_MAX_LEN];
- uint8_t password[ISCSI_CHAP_AUTH_SECRET_MAX_LEN];
- uint8_t password_length;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/scsi/iscsi_proto.h b/ANDROID_3.4.5/include/scsi/iscsi_proto.h
deleted file mode 100644
index 988ba06b..00000000
--- a/ANDROID_3.4.5/include/scsi/iscsi_proto.h
+++ /dev/null
@@ -1,666 +0,0 @@
-/*
- * RFC 3720 (iSCSI) protocol data types
- *
- * Copyright (C) 2005 Dmitry Yusupov
- * Copyright (C) 2005 Alex Aizman
- * maintained by open-iscsi@googlegroups.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.
- *
- * See the file COPYING included with this distribution for more details.
- */
-
-#ifndef ISCSI_PROTO_H
-#define ISCSI_PROTO_H
-
-#include <linux/types.h>
-#include <scsi/scsi.h>
-
-#define ISCSI_DRAFT20_VERSION 0x00
-
-/* default iSCSI listen port for incoming connections */
-#define ISCSI_LISTEN_PORT 3260
-
-/* iSCSI header length */
-#define ISCSI_HDR_LEN 48
-
-/* iSCSI CRC32C length */
-#define ISCSI_CRC_LEN 4
-
-/* Padding word length */
-#define ISCSI_PAD_LEN 4
-
-/*
- * Serial Number Arithmetic, 32 bits, RFC1982
- */
-
-static inline int iscsi_sna_lt(u32 n1, u32 n2)
-{
- return (s32)(n1 - n2) < 0;
-}
-
-static inline int iscsi_sna_lte(u32 n1, u32 n2)
-{
- return (s32)(n1 - n2) <= 0;
-}
-
-static inline int iscsi_sna_gt(u32 n1, u32 n2)
-{
- return (s32)(n1 - n2) > 0;
-}
-
-static inline int iscsi_sna_gte(u32 n1, u32 n2)
-{
- return (s32)(n1 - n2) >= 0;
-}
-
-/*
- * useful common(control and data pathes) macro
- */
-#define ntoh24(p) (((p)[0] << 16) | ((p)[1] << 8) | ((p)[2]))
-#define hton24(p, v) { \
- p[0] = (((v) >> 16) & 0xFF); \
- p[1] = (((v) >> 8) & 0xFF); \
- p[2] = ((v) & 0xFF); \
-}
-#define zero_data(p) {p[0]=0;p[1]=0;p[2]=0;}
-
-/* initiator tags; opaque for target */
-typedef uint32_t __bitwise__ itt_t;
-/* below makes sense only for initiator that created this tag */
-#define build_itt(itt, age) ((__force itt_t)\
- ((itt) | ((age) << ISCSI_AGE_SHIFT)))
-#define get_itt(itt) ((__force uint32_t)(itt_t)(itt) & ISCSI_ITT_MASK)
-#define RESERVED_ITT ((__force itt_t)0xffffffff)
-
-/*
- * iSCSI Template Message Header
- */
-struct iscsi_hdr {
- uint8_t opcode;
- uint8_t flags; /* Final bit */
- uint8_t rsvd2[2];
- uint8_t hlength; /* AHSs total length */
- uint8_t dlength[3]; /* Data length */
- struct scsi_lun lun;
- itt_t itt; /* Initiator Task Tag, opaque for target */
- __be32 ttt; /* Target Task Tag */
- __be32 statsn;
- __be32 exp_statsn;
- __be32 max_statsn;
- uint8_t other[12];
-};
-
-/************************* RFC 3720 Begin *****************************/
-
-#define ISCSI_RESERVED_TAG 0xffffffff
-
-/* Opcode encoding bits */
-#define ISCSI_OP_RETRY 0x80
-#define ISCSI_OP_IMMEDIATE 0x40
-#define ISCSI_OPCODE_MASK 0x3F
-
-/* Initiator Opcode values */
-#define ISCSI_OP_NOOP_OUT 0x00
-#define ISCSI_OP_SCSI_CMD 0x01
-#define ISCSI_OP_SCSI_TMFUNC 0x02
-#define ISCSI_OP_LOGIN 0x03
-#define ISCSI_OP_TEXT 0x04
-#define ISCSI_OP_SCSI_DATA_OUT 0x05
-#define ISCSI_OP_LOGOUT 0x06
-#define ISCSI_OP_SNACK 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
-
-/* Target Opcode values */
-#define ISCSI_OP_NOOP_IN 0x20
-#define ISCSI_OP_SCSI_CMD_RSP 0x21
-#define ISCSI_OP_SCSI_TMFUNC_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_EVENT 0x32
-#define ISCSI_OP_REJECT 0x3f
-
-struct iscsi_ahs_hdr {
- __be16 ahslength;
- uint8_t ahstype;
- uint8_t ahspec[5];
-};
-
-#define ISCSI_AHSTYPE_CDB 1
-#define ISCSI_AHSTYPE_RLENGTH 2
-#define ISCSI_CDB_SIZE 16
-
-/* iSCSI PDU Header */
-struct iscsi_scsi_req {
- uint8_t opcode;
- uint8_t flags;
- __be16 rsvd2;
- uint8_t hlength;
- uint8_t dlength[3];
- struct scsi_lun lun;
- itt_t itt; /* Initiator Task Tag */
- __be32 data_length;
- __be32 cmdsn;
- __be32 exp_statsn;
- uint8_t cdb[ISCSI_CDB_SIZE]; /* SCSI Command Block */
- /* Additional Data (Command Dependent) */
-};
-
-/* Command PDU flags */
-#define ISCSI_FLAG_CMD_FINAL 0x80
-#define ISCSI_FLAG_CMD_READ 0x40
-#define ISCSI_FLAG_CMD_WRITE 0x20
-#define ISCSI_FLAG_CMD_ATTR_MASK 0x07 /* 3 bits */
-
-/* SCSI Command Attribute values */
-#define ISCSI_ATTR_UNTAGGED 0
-#define ISCSI_ATTR_SIMPLE 1
-#define ISCSI_ATTR_ORDERED 2
-#define ISCSI_ATTR_HEAD_OF_QUEUE 3
-#define ISCSI_ATTR_ACA 4
-
-struct iscsi_rlength_ahdr {
- __be16 ahslength;
- uint8_t ahstype;
- uint8_t reserved;
- __be32 read_length;
-};
-
-/* Extended CDB AHS */
-struct iscsi_ecdb_ahdr {
- __be16 ahslength; /* CDB length - 15, including reserved byte */
- uint8_t ahstype;
- uint8_t reserved;
- /* 4-byte aligned extended CDB spillover */
- uint8_t ecdb[SCSI_MAX_VARLEN_CDB_SIZE - ISCSI_CDB_SIZE];
-};
-
-/* SCSI Response Header */
-struct iscsi_scsi_rsp {
- uint8_t opcode;
- uint8_t flags;
- uint8_t response;
- uint8_t cmd_status;
- uint8_t hlength;
- uint8_t dlength[3];
- uint8_t rsvd[8];
- itt_t itt; /* Initiator Task Tag */
- __be32 rsvd1;
- __be32 statsn;
- __be32 exp_cmdsn;
- __be32 max_cmdsn;
- __be32 exp_datasn;
- __be32 bi_residual_count;
- __be32 residual_count;
- /* Response or Sense Data (optional) */
-};
-
-/* Command Response PDU flags */
-#define ISCSI_FLAG_CMD_BIDI_OVERFLOW 0x10
-#define ISCSI_FLAG_CMD_BIDI_UNDERFLOW 0x08
-#define ISCSI_FLAG_CMD_OVERFLOW 0x04
-#define ISCSI_FLAG_CMD_UNDERFLOW 0x02
-
-/* iSCSI Status values. Valid if Rsp Selector bit is not set */
-#define ISCSI_STATUS_CMD_COMPLETED 0
-#define ISCSI_STATUS_TARGET_FAILURE 1
-#define ISCSI_STATUS_SUBSYS_FAILURE 2
-
-/* Asynchronous Event Header */
-struct iscsi_async {
- uint8_t opcode;
- uint8_t flags;
- uint8_t rsvd2[2];
- uint8_t rsvd3;
- uint8_t dlength[3];
- struct scsi_lun lun;
- uint8_t rsvd4[8];
- __be32 statsn;
- __be32 exp_cmdsn;
- __be32 max_cmdsn;
- uint8_t async_event;
- uint8_t async_vcode;
- __be16 param1;
- __be16 param2;
- __be16 param3;
- uint8_t rsvd5[4];
-};
-
-/* iSCSI Event Codes */
-#define ISCSI_ASYNC_MSG_SCSI_EVENT 0
-#define ISCSI_ASYNC_MSG_REQUEST_LOGOUT 1
-#define ISCSI_ASYNC_MSG_DROPPING_CONNECTION 2
-#define ISCSI_ASYNC_MSG_DROPPING_ALL_CONNECTIONS 3
-#define ISCSI_ASYNC_MSG_PARAM_NEGOTIATION 4
-#define ISCSI_ASYNC_MSG_VENDOR_SPECIFIC 255
-
-/* NOP-Out Message */
-struct iscsi_nopout {
- uint8_t opcode;
- uint8_t flags;
- __be16 rsvd2;
- uint8_t rsvd3;
- uint8_t dlength[3];
- struct scsi_lun lun;
- itt_t itt; /* Initiator Task Tag */
- __be32 ttt; /* Target Transfer Tag */
- __be32 cmdsn;
- __be32 exp_statsn;
- uint8_t rsvd4[16];
-};
-
-/* NOP-In Message */
-struct iscsi_nopin {
- uint8_t opcode;
- uint8_t flags;
- __be16 rsvd2;
- uint8_t rsvd3;
- uint8_t dlength[3];
- struct scsi_lun lun;
- itt_t itt; /* Initiator Task Tag */
- __be32 ttt; /* Target Transfer Tag */
- __be32 statsn;
- __be32 exp_cmdsn;
- __be32 max_cmdsn;
- uint8_t rsvd4[12];
-};
-
-/* SCSI Task Management Message Header */
-struct iscsi_tm {
- uint8_t opcode;
- uint8_t flags;
- uint8_t rsvd1[2];
- uint8_t hlength;
- uint8_t dlength[3];
- struct scsi_lun lun;
- itt_t itt; /* Initiator Task Tag */
- itt_t rtt; /* Reference Task Tag */
- __be32 cmdsn;
- __be32 exp_statsn;
- __be32 refcmdsn;
- __be32 exp_datasn;
- uint8_t rsvd2[8];
-};
-
-#define ISCSI_FLAG_TM_FUNC_MASK 0x7F
-
-/* Function values */
-#define ISCSI_TM_FUNC_ABORT_TASK 1
-#define ISCSI_TM_FUNC_ABORT_TASK_SET 2
-#define ISCSI_TM_FUNC_CLEAR_ACA 3
-#define ISCSI_TM_FUNC_CLEAR_TASK_SET 4
-#define ISCSI_TM_FUNC_LOGICAL_UNIT_RESET 5
-#define ISCSI_TM_FUNC_TARGET_WARM_RESET 6
-#define ISCSI_TM_FUNC_TARGET_COLD_RESET 7
-#define ISCSI_TM_FUNC_TASK_REASSIGN 8
-
-#define ISCSI_TM_FUNC_VALUE(hdr) ((hdr)->flags & ISCSI_FLAG_TM_FUNC_MASK)
-
-/* SCSI Task Management Response Header */
-struct iscsi_tm_rsp {
- uint8_t opcode;
- uint8_t flags;
- uint8_t response; /* see Response values below */
- uint8_t qualifier;
- uint8_t hlength;
- uint8_t dlength[3];
- uint8_t rsvd2[8];
- itt_t itt; /* Initiator Task Tag */
- itt_t rtt; /* Reference Task Tag */
- __be32 statsn;
- __be32 exp_cmdsn;
- __be32 max_cmdsn;
- uint8_t rsvd3[12];
-};
-
-/* Response values */
-#define ISCSI_TMF_RSP_COMPLETE 0x00
-#define ISCSI_TMF_RSP_NO_TASK 0x01
-#define ISCSI_TMF_RSP_NO_LUN 0x02
-#define ISCSI_TMF_RSP_TASK_ALLEGIANT 0x03
-#define ISCSI_TMF_RSP_NO_FAILOVER 0x04
-#define ISCSI_TMF_RSP_NOT_SUPPORTED 0x05
-#define ISCSI_TMF_RSP_AUTH_FAILED 0x06
-#define ISCSI_TMF_RSP_REJECTED 0xff
-
-/* Ready To Transfer Header */
-struct iscsi_r2t_rsp {
- uint8_t opcode;
- uint8_t flags;
- uint8_t rsvd2[2];
- uint8_t hlength;
- uint8_t dlength[3];
- struct scsi_lun lun;
- itt_t itt; /* Initiator Task Tag */
- __be32 ttt; /* Target Transfer Tag */
- __be32 statsn;
- __be32 exp_cmdsn;
- __be32 max_cmdsn;
- __be32 r2tsn;
- __be32 data_offset;
- __be32 data_length;
-};
-
-/* SCSI Data Hdr */
-struct iscsi_data {
- uint8_t opcode;
- uint8_t flags;
- uint8_t rsvd2[2];
- uint8_t rsvd3;
- uint8_t dlength[3];
- struct scsi_lun lun;
- itt_t itt;
- __be32 ttt;
- __be32 rsvd4;
- __be32 exp_statsn;
- __be32 rsvd5;
- __be32 datasn;
- __be32 offset;
- __be32 rsvd6;
- /* Payload */
-};
-
-/* SCSI Data Response Hdr */
-struct iscsi_data_rsp {
- uint8_t opcode;
- uint8_t flags;
- uint8_t rsvd2;
- uint8_t cmd_status;
- uint8_t hlength;
- uint8_t dlength[3];
- struct scsi_lun lun;
- itt_t itt;
- __be32 ttt;
- __be32 statsn;
- __be32 exp_cmdsn;
- __be32 max_cmdsn;
- __be32 datasn;
- __be32 offset;
- __be32 residual_count;
-};
-
-/* Data Response PDU flags */
-#define ISCSI_FLAG_DATA_ACK 0x40
-#define ISCSI_FLAG_DATA_OVERFLOW 0x04
-#define ISCSI_FLAG_DATA_UNDERFLOW 0x02
-#define ISCSI_FLAG_DATA_STATUS 0x01
-
-/* Text Header */
-struct iscsi_text {
- uint8_t opcode;
- uint8_t flags;
- uint8_t rsvd2[2];
- uint8_t hlength;
- uint8_t dlength[3];
- uint8_t rsvd4[8];
- itt_t itt;
- __be32 ttt;
- __be32 cmdsn;
- __be32 exp_statsn;
- uint8_t rsvd5[16];
- /* Text - key=value pairs */
-};
-
-#define ISCSI_FLAG_TEXT_CONTINUE 0x40
-
-/* Text Response Header */
-struct iscsi_text_rsp {
- uint8_t opcode;
- uint8_t flags;
- uint8_t rsvd2[2];
- uint8_t hlength;
- uint8_t dlength[3];
- uint8_t rsvd4[8];
- itt_t itt;
- __be32 ttt;
- __be32 statsn;
- __be32 exp_cmdsn;
- __be32 max_cmdsn;
- uint8_t rsvd5[12];
- /* Text Response - key:value pairs */
-};
-
-/* Login Header */
-struct iscsi_login_req {
- uint8_t opcode;
- uint8_t flags;
- uint8_t max_version; /* Max. version supported */
- uint8_t min_version; /* Min. version supported */
- uint8_t hlength;
- uint8_t dlength[3];
- uint8_t isid[6]; /* Initiator Session ID */
- __be16 tsih; /* Target Session Handle */
- itt_t itt; /* Initiator Task Tag */
- __be16 cid;
- __be16 rsvd3;
- __be32 cmdsn;
- __be32 exp_statsn;
- uint8_t rsvd5[16];
-};
-
-/* Login PDU flags */
-#define ISCSI_FLAG_LOGIN_TRANSIT 0x80
-#define ISCSI_FLAG_LOGIN_CONTINUE 0x40
-#define ISCSI_FLAG_LOGIN_CURRENT_STAGE_MASK 0x0C /* 2 bits */
-#define ISCSI_FLAG_LOGIN_CURRENT_STAGE1 0x04
-#define ISCSI_FLAG_LOGIN_CURRENT_STAGE2 0x08
-#define ISCSI_FLAG_LOGIN_CURRENT_STAGE3 0x0C
-#define ISCSI_FLAG_LOGIN_NEXT_STAGE_MASK 0x03 /* 2 bits */
-#define ISCSI_FLAG_LOGIN_NEXT_STAGE1 0x01
-#define ISCSI_FLAG_LOGIN_NEXT_STAGE2 0x02
-#define ISCSI_FLAG_LOGIN_NEXT_STAGE3 0x03
-
-#define ISCSI_LOGIN_CURRENT_STAGE(flags) \
- ((flags & ISCSI_FLAG_LOGIN_CURRENT_STAGE_MASK) >> 2)
-#define ISCSI_LOGIN_NEXT_STAGE(flags) \
- (flags & ISCSI_FLAG_LOGIN_NEXT_STAGE_MASK)
-
-/* Login Response Header */
-struct iscsi_login_rsp {
- uint8_t opcode;
- uint8_t flags;
- uint8_t max_version; /* Max. version supported */
- uint8_t active_version; /* Active version */
- uint8_t hlength;
- uint8_t dlength[3];
- uint8_t isid[6]; /* Initiator Session ID */
- __be16 tsih; /* Target Session Handle */
- itt_t itt; /* Initiator Task Tag */
- __be32 rsvd3;
- __be32 statsn;
- __be32 exp_cmdsn;
- __be32 max_cmdsn;
- uint8_t status_class; /* see Login RSP ststus classes below */
- uint8_t status_detail; /* see Login RSP Status details below */
- uint8_t rsvd4[10];
-};
-
-/* Login stage (phase) codes for CSG, NSG */
-#define ISCSI_INITIAL_LOGIN_STAGE -1
-#define ISCSI_SECURITY_NEGOTIATION_STAGE 0
-#define ISCSI_OP_PARMS_NEGOTIATION_STAGE 1
-#define ISCSI_FULL_FEATURE_PHASE 3
-
-/* Login Status response classes */
-#define ISCSI_STATUS_CLS_SUCCESS 0x00
-#define ISCSI_STATUS_CLS_REDIRECT 0x01
-#define ISCSI_STATUS_CLS_INITIATOR_ERR 0x02
-#define ISCSI_STATUS_CLS_TARGET_ERR 0x03
-
-/* Login Status response detail codes */
-/* Class-0 (Success) */
-#define ISCSI_LOGIN_STATUS_ACCEPT 0x00
-
-/* Class-1 (Redirection) */
-#define ISCSI_LOGIN_STATUS_TGT_MOVED_TEMP 0x01
-#define ISCSI_LOGIN_STATUS_TGT_MOVED_PERM 0x02
-
-/* Class-2 (Initiator Error) */
-#define ISCSI_LOGIN_STATUS_INIT_ERR 0x00
-#define ISCSI_LOGIN_STATUS_AUTH_FAILED 0x01
-#define ISCSI_LOGIN_STATUS_TGT_FORBIDDEN 0x02
-#define ISCSI_LOGIN_STATUS_TGT_NOT_FOUND 0x03
-#define ISCSI_LOGIN_STATUS_TGT_REMOVED 0x04
-#define ISCSI_LOGIN_STATUS_NO_VERSION 0x05
-#define ISCSI_LOGIN_STATUS_ISID_ERROR 0x06
-#define ISCSI_LOGIN_STATUS_MISSING_FIELDS 0x07
-#define ISCSI_LOGIN_STATUS_CONN_ADD_FAILED 0x08
-#define ISCSI_LOGIN_STATUS_NO_SESSION_TYPE 0x09
-#define ISCSI_LOGIN_STATUS_NO_SESSION 0x0a
-#define ISCSI_LOGIN_STATUS_INVALID_REQUEST 0x0b
-
-/* Class-3 (Target Error) */
-#define ISCSI_LOGIN_STATUS_TARGET_ERROR 0x00
-#define ISCSI_LOGIN_STATUS_SVC_UNAVAILABLE 0x01
-#define ISCSI_LOGIN_STATUS_NO_RESOURCES 0x02
-
-/* Logout Header */
-struct iscsi_logout {
- uint8_t opcode;
- uint8_t flags;
- uint8_t rsvd1[2];
- uint8_t hlength;
- uint8_t dlength[3];
- uint8_t rsvd2[8];
- itt_t itt; /* Initiator Task Tag */
- __be16 cid;
- uint8_t rsvd3[2];
- __be32 cmdsn;
- __be32 exp_statsn;
- uint8_t rsvd4[16];
-};
-
-/* Logout PDU flags */
-#define ISCSI_FLAG_LOGOUT_REASON_MASK 0x7F
-
-/* logout reason_code values */
-
-#define ISCSI_LOGOUT_REASON_CLOSE_SESSION 0
-#define ISCSI_LOGOUT_REASON_CLOSE_CONNECTION 1
-#define ISCSI_LOGOUT_REASON_RECOVERY 2
-#define ISCSI_LOGOUT_REASON_AEN_REQUEST 3
-
-/* Logout Response Header */
-struct iscsi_logout_rsp {
- uint8_t opcode;
- uint8_t flags;
- uint8_t response; /* see Logout response values below */
- uint8_t rsvd2;
- uint8_t hlength;
- uint8_t dlength[3];
- uint8_t rsvd3[8];
- itt_t itt; /* Initiator Task Tag */
- __be32 rsvd4;
- __be32 statsn;
- __be32 exp_cmdsn;
- __be32 max_cmdsn;
- __be32 rsvd5;
- __be16 t2wait;
- __be16 t2retain;
- __be32 rsvd6;
-};
-
-/* logout response status values */
-
-#define ISCSI_LOGOUT_SUCCESS 0
-#define ISCSI_LOGOUT_CID_NOT_FOUND 1
-#define ISCSI_LOGOUT_RECOVERY_UNSUPPORTED 2
-#define ISCSI_LOGOUT_CLEANUP_FAILED 3
-
-/* SNACK Header */
-struct iscsi_snack {
- uint8_t opcode;
- uint8_t flags;
- uint8_t rsvd2[2];
- uint8_t hlength;
- uint8_t dlength[3];
- uint8_t lun[8];
- itt_t itt;
- __be32 ttt;
- uint8_t rsvd3[4];
- __be32 exp_statsn;
- uint8_t rsvd4[8];
- __be32 begrun;
- __be32 runlength;
-};
-
-/* SNACK PDU flags */
-#define ISCSI_FLAG_SNACK_TYPE_DATA 0
-#define ISCSI_FLAG_SNACK_TYPE_R2T 0
-#define ISCSI_FLAG_SNACK_TYPE_STATUS 1
-#define ISCSI_FLAG_SNACK_TYPE_DATA_ACK 2
-#define ISCSI_FLAG_SNACK_TYPE_RDATA 3
-#define ISCSI_FLAG_SNACK_TYPE_MASK 0x0F /* 4 bits */
-
-/* Reject Message Header */
-struct iscsi_reject {
- uint8_t opcode;
- uint8_t flags;
- uint8_t reason;
- uint8_t rsvd2;
- uint8_t hlength;
- uint8_t dlength[3];
- uint8_t rsvd3[8];
- __be32 ffffffff;
- uint8_t rsvd4[4];
- __be32 statsn;
- __be32 exp_cmdsn;
- __be32 max_cmdsn;
- __be32 datasn;
- uint8_t rsvd5[8];
- /* Text - Rejected hdr */
-};
-
-/* Reason for Reject */
-#define ISCSI_REASON_CMD_BEFORE_LOGIN 1
-#define ISCSI_REASON_DATA_DIGEST_ERROR 2
-#define ISCSI_REASON_DATA_SNACK_REJECT 3
-#define ISCSI_REASON_PROTOCOL_ERROR 4
-#define ISCSI_REASON_CMD_NOT_SUPPORTED 5
-#define ISCSI_REASON_IMM_CMD_REJECT 6
-#define ISCSI_REASON_TASK_IN_PROGRESS 7
-#define ISCSI_REASON_INVALID_SNACK 8
-#define ISCSI_REASON_BOOKMARK_INVALID 9
-#define ISCSI_REASON_BOOKMARK_NO_RESOURCES 10
-#define ISCSI_REASON_NEGOTIATION_RESET 11
-
-/* Max. number of Key=Value pairs in a text message */
-#define MAX_KEY_VALUE_PAIRS 8192
-
-/* maximum length for text keys/values */
-#define KEY_MAXLEN 64
-#define VALUE_MAXLEN 255
-#define TARGET_NAME_MAXLEN VALUE_MAXLEN
-
-#define ISCSI_DEF_MAX_RECV_SEG_LEN 8192
-#define ISCSI_MIN_MAX_RECV_SEG_LEN 512
-#define ISCSI_MAX_MAX_RECV_SEG_LEN 16777215
-
-#define ISCSI_DEF_FIRST_BURST_LEN 65536
-#define ISCSI_MIN_FIRST_BURST_LEN 512
-#define ISCSI_MAX_FIRST_BURST_LEN 16777215
-
-#define ISCSI_DEF_MAX_BURST_LEN 262144
-#define ISCSI_MIN_MAX_BURST_LEN 512
-#define ISCSI_MAX_MAX_BURST_LEN 16777215
-
-#define ISCSI_DEF_TIME2WAIT 2
-
-/************************* RFC 3720 End *****************************/
-
-#endif /* ISCSI_PROTO_H */
diff --git a/ANDROID_3.4.5/include/scsi/libfc.h b/ANDROID_3.4.5/include/scsi/libfc.h
deleted file mode 100644
index 8f9dfba3..00000000
--- a/ANDROID_3.4.5/include/scsi/libfc.h
+++ /dev/null
@@ -1,1139 +0,0 @@
-/*
- * Copyright(c) 2007 Intel Corporation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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.
- *
- * Maintained at www.Open-FCoE.org
- */
-
-#ifndef _LIBFC_H_
-#define _LIBFC_H_
-
-#include <linux/timer.h>
-#include <linux/if.h>
-#include <linux/percpu.h>
-
-#include <scsi/scsi_transport.h>
-#include <scsi/scsi_transport_fc.h>
-#include <scsi/scsi_bsg_fc.h>
-
-#include <scsi/fc/fc_fcp.h>
-#include <scsi/fc/fc_ns.h>
-#include <scsi/fc/fc_ms.h>
-#include <scsi/fc/fc_els.h>
-#include <scsi/fc/fc_gs.h>
-
-#include <scsi/fc_frame.h>
-
-#define FC_FC4_PROV_SIZE (FC_TYPE_FCP + 1) /* size of tables */
-
-/*
- * libfc error codes
- */
-#define FC_NO_ERR 0 /* no error */
-#define FC_EX_TIMEOUT 1 /* Exchange timeout */
-#define FC_EX_CLOSED 2 /* Exchange closed */
-
-/**
- * enum fc_lport_state - Local port states
- * @LPORT_ST_DISABLED: Disabled
- * @LPORT_ST_FLOGI: Fabric login (FLOGI) sent
- * @LPORT_ST_DNS: Waiting for name server remote port to become ready
- * @LPORT_ST_RPN_ID: Register port name by ID (RPN_ID) sent
- * @LPORT_ST_RFT_ID: Register Fibre Channel types by ID (RFT_ID) sent
- * @LPORT_ST_RFF_ID: Register FC-4 Features by ID (RFF_ID) sent
- * @LPORT_ST_FDMI: Waiting for mgmt server rport to become ready
- * @LPORT_ST_RHBA:
- * @LPORT_ST_SCR: State Change Register (SCR) sent
- * @LPORT_ST_READY: Ready for use
- * @LPORT_ST_LOGO: Local port logout (LOGO) sent
- * @LPORT_ST_RESET: Local port reset
- */
-enum fc_lport_state {
- LPORT_ST_DISABLED = 0,
- LPORT_ST_FLOGI,
- LPORT_ST_DNS,
- LPORT_ST_RNN_ID,
- LPORT_ST_RSNN_NN,
- LPORT_ST_RSPN_ID,
- LPORT_ST_RFT_ID,
- LPORT_ST_RFF_ID,
- LPORT_ST_FDMI,
- LPORT_ST_RHBA,
- LPORT_ST_RPA,
- LPORT_ST_DHBA,
- LPORT_ST_DPRT,
- LPORT_ST_SCR,
- LPORT_ST_READY,
- LPORT_ST_LOGO,
- LPORT_ST_RESET
-};
-
-enum fc_disc_event {
- DISC_EV_NONE = 0,
- DISC_EV_SUCCESS,
- DISC_EV_FAILED
-};
-
-/**
- * enum fc_rport_state - Remote port states
- * @RPORT_ST_INIT: Initialized
- * @RPORT_ST_FLOGI: Waiting for FLOGI completion for point-to-multipoint
- * @RPORT_ST_PLOGI_WAIT: Waiting for peer to login for point-to-multipoint
- * @RPORT_ST_PLOGI: Waiting for PLOGI completion
- * @RPORT_ST_PRLI: Waiting for PRLI completion
- * @RPORT_ST_RTV: Waiting for RTV completion
- * @RPORT_ST_READY: Ready for use
- * @RPORT_ST_ADISC: Discover Address sent
- * @RPORT_ST_DELETE: Remote port being deleted
-*/
-enum fc_rport_state {
- RPORT_ST_INIT,
- RPORT_ST_FLOGI,
- RPORT_ST_PLOGI_WAIT,
- RPORT_ST_PLOGI,
- RPORT_ST_PRLI,
- RPORT_ST_RTV,
- RPORT_ST_READY,
- RPORT_ST_ADISC,
- RPORT_ST_DELETE,
-};
-
-/**
- * struct fc_disc_port - temporary discovery port to hold rport identifiers
- * @lp: Fibre Channel host port instance
- * @peers: Node for list management during discovery and RSCN processing
- * @rport_work: Work struct for starting the rport state machine
- * @port_id: Port ID of the discovered port
- */
-struct fc_disc_port {
- struct fc_lport *lp;
- struct list_head peers;
- struct work_struct rport_work;
- u32 port_id;
-};
-
-/**
- * enum fc_rport_event - Remote port events
- * @RPORT_EV_NONE: No event
- * @RPORT_EV_READY: Remote port is ready for use
- * @RPORT_EV_FAILED: State machine failed, remote port is not ready
- * @RPORT_EV_STOP: Remote port has been stopped
- * @RPORT_EV_LOGO: Remote port logout (LOGO) sent
- */
-enum fc_rport_event {
- RPORT_EV_NONE = 0,
- RPORT_EV_READY,
- RPORT_EV_FAILED,
- RPORT_EV_STOP,
- RPORT_EV_LOGO
-};
-
-struct fc_rport_priv;
-
-/**
- * struct fc_rport_operations - Operations for a remote port
- * @event_callback: Function to be called for remote port events
- */
-struct fc_rport_operations {
- void (*event_callback)(struct fc_lport *, struct fc_rport_priv *,
- enum fc_rport_event);
-};
-
-/**
- * struct fc_rport_libfc_priv - libfc internal information about a remote port
- * @local_port: The associated local port
- * @rp_state: Indicates READY for I/O or DELETE when blocked
- * @flags: REC and RETRY supported flags
- * @e_d_tov: Error detect timeout value (in msec)
- * @r_a_tov: Resource allocation timeout value (in msec)
- */
-struct fc_rport_libfc_priv {
- struct fc_lport *local_port;
- enum fc_rport_state rp_state;
- u16 flags;
- #define FC_RP_FLAGS_REC_SUPPORTED (1 << 0)
- #define FC_RP_FLAGS_RETRY (1 << 1)
- #define FC_RP_STARTED (1 << 2)
- #define FC_RP_FLAGS_CONF_REQ (1 << 3)
- unsigned int e_d_tov;
- unsigned int r_a_tov;
-};
-
-/**
- * struct fc_rport_priv - libfc remote port and discovery info
- * @local_port: The associated local port
- * @rport: The FC transport remote port
- * @kref: Reference counter
- * @rp_state: Enumeration that tracks progress of PLOGI, PRLI,
- * and RTV exchanges
- * @ids: The remote port identifiers and roles
- * @flags: STARTED, REC and RETRY_SUPPORTED flags
- * @max_seq: Maximum number of concurrent sequences
- * @disc_id: The discovery identifier
- * @maxframe_size: The maximum frame size
- * @retries: The retry count for the current state
- * @major_retries: The retry count for the entire PLOGI/PRLI state machine
- * @e_d_tov: Error detect timeout value (in msec)
- * @r_a_tov: Resource allocation timeout value (in msec)
- * @rp_mutex: The mutex that protects the remote port
- * @retry_work: Handle for retries
- * @event_callback: Callback when READY, FAILED or LOGO states complete
- * @prli_count: Count of open PRLI sessions in providers
- * @rcu: Structure used for freeing in an RCU-safe manner
- */
-struct fc_rport_priv {
- struct fc_lport *local_port;
- struct fc_rport *rport;
- struct kref kref;
- enum fc_rport_state rp_state;
- struct fc_rport_identifiers ids;
- u16 flags;
- u16 max_seq;
- u16 disc_id;
- u16 maxframe_size;
- unsigned int retries;
- unsigned int major_retries;
- unsigned int e_d_tov;
- unsigned int r_a_tov;
- struct mutex rp_mutex;
- struct delayed_work retry_work;
- enum fc_rport_event event;
- struct fc_rport_operations *ops;
- struct list_head peers;
- struct work_struct event_work;
- u32 supported_classes;
- u16 prli_count;
- struct rcu_head rcu;
- u16 sp_features;
- u8 spp_type;
- void (*lld_event_callback)(struct fc_lport *,
- struct fc_rport_priv *,
- enum fc_rport_event);
-};
-
-/**
- * struct fcoe_dev_stats - fcoe stats structure
- * @SecondsSinceLastReset: Seconds since the last reset
- * @TxFrames: Number of transmitted frames
- * @TxWords: Number of transmitted words
- * @RxFrames: Number of received frames
- * @RxWords: Number of received words
- * @ErrorFrames: Number of received error frames
- * @DumpedFrames: Number of dumped frames
- * @LinkFailureCount: Number of link failures
- * @LossOfSignalCount: Number for signal losses
- * @InvalidTxWordCount: Number of invalid transmitted words
- * @InvalidCRCCount: Number of invalid CRCs
- * @InputRequests: Number of input requests
- * @OutputRequests: Number of output requests
- * @ControlRequests: Number of control requests
- * @InputBytes: Number of received bytes
- * @OutputBytes: Number of transmitted bytes
- * @VLinkFailureCount: Number of virtual link failures
- * @MissDiscAdvCount: Number of missing FIP discovery advertisement
- */
-struct fcoe_dev_stats {
- u64 SecondsSinceLastReset;
- u64 TxFrames;
- u64 TxWords;
- u64 RxFrames;
- u64 RxWords;
- u64 ErrorFrames;
- u64 DumpedFrames;
- u64 LinkFailureCount;
- u64 LossOfSignalCount;
- u64 InvalidTxWordCount;
- u64 InvalidCRCCount;
- u64 InputRequests;
- u64 OutputRequests;
- u64 ControlRequests;
- u64 InputBytes;
- u64 OutputBytes;
- u64 VLinkFailureCount;
- u64 MissDiscAdvCount;
-};
-
-/**
- * struct fc_seq_els_data - ELS data used for passing ELS specific responses
- * @reason: The reason for rejection
- * @explan: The explanation of the rejection
- *
- * Mainly used by the exchange manager layer.
- */
-struct fc_seq_els_data {
- enum fc_els_rjt_reason reason;
- enum fc_els_rjt_explan explan;
-};
-
-/**
- * struct fc_fcp_pkt - FCP request structure (one for each scsi_cmnd request)
- * @lp: The associated local port
- * @state: The state of the I/O
- * @ref_cnt: Reference count
- * @scsi_pkt_lock: Lock to protect the SCSI packet (must be taken before the
- * host_lock if both are to be held at the same time)
- * @cmd: The SCSI command (set and clear with the host_lock held)
- * @list: Tracks queued commands (accessed with the host_lock held)
- * @timer: The command timer
- * @tm_done: Completion indicator
- * @wait_for_comp: Indicator to wait for completion of the I/O (in jiffies)
- * @data_len: The length of the data
- * @cdb_cmd: The CDB command
- * @xfer_len: The transfer length
- * @xfer_ddp: Indicates if this transfer used DDP (XID of the exchange
- * will be set here if DDP was setup)
- * @xfer_contig_end: The offset into the buffer if the buffer is contiguous
- * (Tx and Rx)
- * @max_payload: The maximum payload size (in bytes)
- * @io_status: SCSI result (upper 24 bits)
- * @cdb_status: CDB status
- * @status_code: FCP I/O status
- * @scsi_comp_flags: Completion flags (bit 3 Underrun bit 2: overrun)
- * @req_flags: Request flags (bit 0: read bit:1 write)
- * @scsi_resid: SCSI residule length
- * @rport: The remote port that the SCSI command is targeted at
- * @seq_ptr: The sequence that will carry the SCSI command
- * @recov_retry: Number of recovery retries
- * @recov_seq: The sequence for REC or SRR
- */
-struct fc_fcp_pkt {
- spinlock_t scsi_pkt_lock;
- atomic_t ref_cnt;
-
- /* SCSI command and data transfer information */
- u32 data_len;
-
- /* SCSI I/O related information */
- struct scsi_cmnd *cmd;
- struct list_head list;
-
- /* Housekeeping information */
- struct fc_lport *lp;
- u8 state;
-
- /* SCSI/FCP return status */
- u8 cdb_status;
- u8 status_code;
- u8 scsi_comp_flags;
- u32 io_status;
- u32 req_flags;
- u32 scsi_resid;
-
- /* Transport related veriables */
- size_t xfer_len;
- struct fcp_cmnd cdb_cmd;
- u32 xfer_contig_end;
- u16 max_payload;
- u16 xfer_ddp;
-
- /* Associated structures */
- struct fc_rport *rport;
- struct fc_seq *seq_ptr;
-
- /* Timeout/error related information */
- struct timer_list timer;
- int wait_for_comp;
- u32 recov_retry;
- struct fc_seq *recov_seq;
- struct completion tm_done;
-} ____cacheline_aligned_in_smp;
-
-/*
- * Structure and function definitions for managing Fibre Channel Exchanges
- * and Sequences
- *
- * fc_exch holds state for one exchange and links to its active sequence.
- *
- * fc_seq holds the state for an individual sequence.
- */
-
-struct fc_exch_mgr;
-struct fc_exch_mgr_anchor;
-extern u16 fc_cpu_mask; /* cpu mask for possible cpus */
-
-/**
- * struct fc_seq - FC sequence
- * @id: The sequence ID
- * @ssb_stat: Status flags for the sequence status block (SSB)
- * @cnt: Number of frames sent so far
- * @rec_data: FC-4 value for REC
- */
-struct fc_seq {
- u8 id;
- u16 ssb_stat;
- u16 cnt;
- u32 rec_data;
-};
-
-#define FC_EX_DONE (1 << 0) /* ep is completed */
-#define FC_EX_RST_CLEANUP (1 << 1) /* reset is forcing completion */
-
-/**
- * struct fc_exch - Fibre Channel Exchange
- * @em: Exchange manager
- * @pool: Exchange pool
- * @state: The exchange's state
- * @xid: The exchange ID
- * @ex_list: Handle used by the EM to track free exchanges
- * @ex_lock: Lock that protects the exchange
- * @ex_refcnt: Reference count
- * @timeout_work: Handle for timeout handler
- * @lp: The local port that this exchange is on
- * @oxid: Originator's exchange ID
- * @rxid: Responder's exchange ID
- * @oid: Originator's FCID
- * @sid: Source FCID
- * @did: Destination FCID
- * @esb_stat: ESB exchange status
- * @r_a_tov: Resouce allocation time out value (in msecs)
- * @seq_id: The next sequence ID to use
- * @encaps: encapsulation information for lower-level driver
- * @f_ctl: F_CTL flags for the sequence
- * @fh_type: The frame type
- * @class: The class of service
- * @seq: The sequence in use on this exchange
- * @resp: Callback for responses on this exchange
- * @destructor: Called when destroying the exchange
- * @arg: Passed as a void pointer to the resp() callback
- *
- * Locking notes: The ex_lock protects following items:
- * state, esb_stat, f_ctl, seq.ssb_stat
- * seq_id
- * sequence allocation
- */
-struct fc_exch {
- spinlock_t ex_lock;
- atomic_t ex_refcnt;
- enum fc_class class;
- struct fc_exch_mgr *em;
- struct fc_exch_pool *pool;
- struct list_head ex_list;
- struct fc_lport *lp;
- u32 esb_stat;
- u8 state;
- u8 fh_type;
- u8 seq_id;
- u8 encaps;
- u16 xid;
- u16 oxid;
- u16 rxid;
- u32 oid;
- u32 sid;
- u32 did;
- u32 r_a_tov;
- u32 f_ctl;
- struct fc_seq seq;
- void (*resp)(struct fc_seq *, struct fc_frame *, void *);
- void *arg;
- void (*destructor)(struct fc_seq *, void *);
- struct delayed_work timeout_work;
-} ____cacheline_aligned_in_smp;
-#define fc_seq_exch(sp) container_of(sp, struct fc_exch, seq)
-
-
-struct libfc_function_template {
- /*
- * Interface to send a FC frame
- *
- * STATUS: REQUIRED
- */
- int (*frame_send)(struct fc_lport *, struct fc_frame *);
-
- /*
- * Interface to send ELS/CT frames
- *
- * STATUS: OPTIONAL
- */
- struct fc_seq *(*elsct_send)(struct fc_lport *, u32 did,
- struct fc_frame *, unsigned int op,
- void (*resp)(struct fc_seq *,
- struct fc_frame *, void *arg),
- void *arg, u32 timer_msec);
-
- /*
- * Send the FC frame payload using a new exchange and sequence.
- *
- * The exchange response handler is set in this routine to resp()
- * function pointer. It can be called in two scenarios: if a timeout
- * occurs or if a response frame is received for the exchange. The
- * fc_frame pointer in response handler will also indicate timeout
- * as error using IS_ERR related macros.
- *
- * The exchange destructor handler is also set in this routine.
- * The destructor handler is invoked by EM layer when exchange
- * is about to free, this can be used by caller to free its
- * resources along with exchange free.
- *
- * The arg is passed back to resp and destructor handler.
- *
- * The timeout value (in msec) for an exchange is set if non zero
- * timer_msec argument is specified. The timer is canceled when
- * it fires or when the exchange is done. The exchange timeout handler
- * is registered by EM layer.
- *
- * STATUS: OPTIONAL
- */
- struct fc_seq *(*exch_seq_send)(struct fc_lport *, struct fc_frame *,
- void (*resp)(struct fc_seq *,
- struct fc_frame *,
- void *),
- void (*destructor)(struct fc_seq *,
- void *),
- void *, unsigned int timer_msec);
-
- /*
- * Sets up the DDP context for a given exchange id on the given
- * scatterlist if LLD supports DDP for large receive.
- *
- * STATUS: OPTIONAL
- */
- int (*ddp_setup)(struct fc_lport *, u16, struct scatterlist *,
- unsigned int);
- /*
- * Completes the DDP transfer and returns the length of data DDPed
- * for the given exchange id.
- *
- * STATUS: OPTIONAL
- */
- int (*ddp_done)(struct fc_lport *, u16);
- /*
- * Sets up the DDP context for a given exchange id on the given
- * scatterlist if LLD supports DDP for FCoE target.
- *
- * STATUS: OPTIONAL
- */
- int (*ddp_target)(struct fc_lport *, u16, struct scatterlist *,
- unsigned int);
- /*
- * Allow LLD to fill its own Link Error Status Block
- *
- * STATUS: OPTIONAL
- */
- void (*get_lesb)(struct fc_lport *, struct fc_els_lesb *lesb);
- /*
- * Send a frame using an existing sequence and exchange.
- *
- * STATUS: OPTIONAL
- */
- int (*seq_send)(struct fc_lport *, struct fc_seq *,
- struct fc_frame *);
-
- /*
- * Send an ELS response using information from the received frame.
- *
- * STATUS: OPTIONAL
- */
- void (*seq_els_rsp_send)(struct fc_frame *, enum fc_els_cmd,
- struct fc_seq_els_data *);
-
- /*
- * Abort an exchange and sequence. Generally called because of a
- * exchange timeout or an abort from the upper layer.
- *
- * A timer_msec can be specified for abort timeout, if non-zero
- * timer_msec value is specified then exchange resp handler
- * will be called with timeout error if no response to abort.
- *
- * STATUS: OPTIONAL
- */
- int (*seq_exch_abort)(const struct fc_seq *,
- unsigned int timer_msec);
-
- /*
- * Indicate that an exchange/sequence tuple is complete and the memory
- * allocated for the related objects may be freed.
- *
- * STATUS: OPTIONAL
- */
- void (*exch_done)(struct fc_seq *);
-
- /*
- * Start a new sequence on the same exchange/sequence tuple.
- *
- * STATUS: OPTIONAL
- */
- struct fc_seq *(*seq_start_next)(struct fc_seq *);
-
- /*
- * Set a response handler for the exchange of the sequence.
- *
- * STATUS: OPTIONAL
- */
- void (*seq_set_resp)(struct fc_seq *sp,
- void (*resp)(struct fc_seq *, struct fc_frame *,
- void *),
- void *arg);
-
- /*
- * Assign a sequence for an incoming request frame.
- *
- * STATUS: OPTIONAL
- */
- struct fc_seq *(*seq_assign)(struct fc_lport *, struct fc_frame *);
-
- /*
- * Release the reference on the sequence returned by seq_assign().
- *
- * STATUS: OPTIONAL
- */
- void (*seq_release)(struct fc_seq *);
-
- /*
- * Reset an exchange manager, completing all sequences and exchanges.
- * If s_id is non-zero, reset only exchanges originating from that FID.
- * If d_id is non-zero, reset only exchanges sending to that FID.
- *
- * STATUS: OPTIONAL
- */
- void (*exch_mgr_reset)(struct fc_lport *, u32 s_id, u32 d_id);
-
- /*
- * Flush the rport work queue. Generally used before shutdown.
- *
- * STATUS: OPTIONAL
- */
- void (*rport_flush_queue)(void);
-
- /*
- * Receive a frame for a local port.
- *
- * STATUS: OPTIONAL
- */
- void (*lport_recv)(struct fc_lport *, struct fc_frame *);
-
- /*
- * Reset the local port.
- *
- * STATUS: OPTIONAL
- */
- int (*lport_reset)(struct fc_lport *);
-
- /*
- * Set the local port FC_ID.
- *
- * This may be provided by the LLD to allow it to be
- * notified when the local port is assigned a FC-ID.
- *
- * The frame, if non-NULL, is the incoming frame with the
- * FLOGI LS_ACC or FLOGI, and may contain the granted MAC
- * address for the LLD. The frame pointer may be NULL if
- * no MAC is associated with this assignment (LOGO or PLOGI).
- *
- * If FC_ID is non-zero, r_a_tov and e_d_tov must be valid.
- *
- * Note: this is called with the local port mutex held.
- *
- * STATUS: OPTIONAL
- */
- void (*lport_set_port_id)(struct fc_lport *, u32 port_id,
- struct fc_frame *);
-
- /*
- * Create a remote port with a given port ID
- *
- * STATUS: OPTIONAL
- */
- struct fc_rport_priv *(*rport_create)(struct fc_lport *, u32);
-
- /*
- * Initiates the RP state machine. It is called from the LP module.
- * This function will issue the following commands to the N_Port
- * identified by the FC ID provided.
- *
- * - PLOGI
- * - PRLI
- * - RTV
- *
- * STATUS: OPTIONAL
- */
- int (*rport_login)(struct fc_rport_priv *);
-
- /*
- * Logoff, and remove the rport from the transport if
- * it had been added. This will send a LOGO to the target.
- *
- * STATUS: OPTIONAL
- */
- int (*rport_logoff)(struct fc_rport_priv *);
-
- /*
- * Receive a request from a remote port.
- *
- * STATUS: OPTIONAL
- */
- void (*rport_recv_req)(struct fc_lport *, struct fc_frame *);
-
- /*
- * lookup an rport by it's port ID.
- *
- * STATUS: OPTIONAL
- */
- struct fc_rport_priv *(*rport_lookup)(const struct fc_lport *, u32);
-
- /*
- * Destroy an rport after final kref_put().
- * The argument is a pointer to the kref inside the fc_rport_priv.
- */
- void (*rport_destroy)(struct kref *);
-
- /*
- * Callback routine after the remote port is logged in
- *
- * STATUS: OPTIONAL
- */
- void (*rport_event_callback)(struct fc_lport *,
- struct fc_rport_priv *,
- enum fc_rport_event);
-
- /*
- * Send a fcp cmd from fsp pkt.
- * Called with the SCSI host lock unlocked and irqs disabled.
- *
- * The resp handler is called when FCP_RSP received.
- *
- * STATUS: OPTIONAL
- */
- int (*fcp_cmd_send)(struct fc_lport *, struct fc_fcp_pkt *,
- void (*resp)(struct fc_seq *, struct fc_frame *,
- void *));
-
- /*
- * Cleanup the FCP layer, used during link down and reset
- *
- * STATUS: OPTIONAL
- */
- void (*fcp_cleanup)(struct fc_lport *);
-
- /*
- * Abort all I/O on a local port
- *
- * STATUS: OPTIONAL
- */
- void (*fcp_abort_io)(struct fc_lport *);
-
- /*
- * Receive a request for the discovery layer.
- *
- * STATUS: OPTIONAL
- */
- void (*disc_recv_req)(struct fc_lport *, struct fc_frame *);
-
- /*
- * Start discovery for a local port.
- *
- * STATUS: OPTIONAL
- */
- void (*disc_start)(void (*disc_callback)(struct fc_lport *,
- enum fc_disc_event),
- struct fc_lport *);
-
- /*
- * Stop discovery for a given lport. This will remove
- * all discovered rports
- *
- * STATUS: OPTIONAL
- */
- void (*disc_stop) (struct fc_lport *);
-
- /*
- * Stop discovery for a given lport. This will block
- * until all discovered rports are deleted from the
- * FC transport class
- *
- * STATUS: OPTIONAL
- */
- void (*disc_stop_final) (struct fc_lport *);
-};
-
-/**
- * struct fc_disc - Discovery context
- * @retry_count: Number of retries
- * @pending: 1 if discovery is pending, 0 if not
- * @requested: 1 if discovery has been requested, 0 if not
- * @seq_count: Number of sequences used for discovery
- * @buf_len: Length of the discovery buffer
- * @disc_id: Discovery ID
- * @rports: List of discovered remote ports
- * @priv: Private pointer for use by discovery code
- * @disc_mutex: Mutex that protects the discovery context
- * @partial_buf: Partial name buffer (if names are returned
- * in multiple frames)
- * @disc_work: handle for delayed work context
- * @disc_callback: Callback routine called when discovery completes
- */
-struct fc_disc {
- unsigned char retry_count;
- unsigned char pending;
- unsigned char requested;
- unsigned short seq_count;
- unsigned char buf_len;
- u16 disc_id;
-
- struct list_head rports;
- void *priv;
- struct mutex disc_mutex;
- struct fc_gpn_ft_resp partial_buf;
- struct delayed_work disc_work;
-
- void (*disc_callback)(struct fc_lport *,
- enum fc_disc_event);
-};
-
-/*
- * Local port notifier and events.
- */
-extern struct blocking_notifier_head fc_lport_notifier_head;
-enum fc_lport_event {
- FC_LPORT_EV_ADD,
- FC_LPORT_EV_DEL,
-};
-
-/**
- * struct fc_lport - Local port
- * @host: The SCSI host associated with a local port
- * @ema_list: Exchange manager anchor list
- * @dns_rdata: The directory server remote port
- * @ms_rdata: The management server remote port
- * @ptp_rdata: Point to point remote port
- * @scsi_priv: FCP layer internal data
- * @disc: Discovery context
- * @vports: Child vports if N_Port
- * @vport: Parent vport if VN_Port
- * @tt: Libfc function template
- * @link_up: Link state (1 = link up, 0 = link down)
- * @qfull: Queue state (1 queue is full, 0 queue is not full)
- * @state: Identifies the state
- * @boot_time: Timestamp indicating when the local port came online
- * @host_stats: SCSI host statistics
- * @dev_stats: FCoE device stats (TODO: libfc should not be
- * FCoE aware)
- * @retry_count: Number of retries in the current state
- * @port_id: FC Port ID
- * @wwpn: World Wide Port Name
- * @wwnn: World Wide Node Name
- * @service_params: Common service parameters
- * @e_d_tov: Error detection timeout value
- * @r_a_tov: Resouce allocation timeout value
- * @rnid_gen: RNID information
- * @sg_supp: Indicates if scatter gather is supported
- * @seq_offload: Indicates if sequence offload is supported
- * @crc_offload: Indicates if CRC offload is supported
- * @lro_enabled: Indicates if large receive offload is supported
- * @does_npiv: Supports multiple vports
- * @npiv_enabled: Switch/fabric allows NPIV
- * @mfs: The maximum Fibre Channel payload size
- * @max_retry_count: The maximum retry attempts
- * @max_rport_retry_count: The maximum remote port retry attempts
- * @rport_priv_size: Size needed by driver after struct fc_rport_priv
- * @lro_xid: The maximum XID for LRO
- * @lso_max: The maximum large offload send size
- * @fcts: FC-4 type mask
- * @lp_mutex: Mutex to protect the local port
- * @list: Linkage on list of vport peers
- * @retry_work: Handle to local port for delayed retry context
- * @prov: Pointers available for use by passive FC-4 providers
- * @lport_list: Linkage on module-wide list of local ports
- */
-struct fc_lport {
- /* Associations */
- struct Scsi_Host *host;
- struct list_head ema_list;
- struct fc_rport_priv *dns_rdata;
- struct fc_rport_priv *ms_rdata;
- struct fc_rport_priv *ptp_rdata;
- void *scsi_priv;
- struct fc_disc disc;
-
- /* Virtual port information */
- struct list_head vports;
- struct fc_vport *vport;
-
- /* Operational Information */
- struct libfc_function_template tt;
- u8 link_up;
- u8 qfull;
- enum fc_lport_state state;
- unsigned long boot_time;
- struct fc_host_statistics host_stats;
- struct fcoe_dev_stats __percpu *dev_stats;
- u8 retry_count;
-
- /* Fabric information */
- u32 port_id;
- u64 wwpn;
- u64 wwnn;
- unsigned int service_params;
- unsigned int e_d_tov;
- unsigned int r_a_tov;
- struct fc_els_rnid_gen rnid_gen;
-
- /* Capabilities */
- u32 sg_supp:1;
- u32 seq_offload:1;
- u32 crc_offload:1;
- u32 lro_enabled:1;
- u32 does_npiv:1;
- u32 npiv_enabled:1;
- u32 point_to_multipoint:1;
- u32 fdmi_enabled:1;
- u32 mfs;
- u8 max_retry_count;
- u8 max_rport_retry_count;
- u16 rport_priv_size;
- u16 link_speed;
- u16 link_supported_speeds;
- u16 lro_xid;
- unsigned int lso_max;
- struct fc_ns_fts fcts;
-
- /* Miscellaneous */
- struct mutex lp_mutex;
- struct list_head list;
- struct delayed_work retry_work;
- void *prov[FC_FC4_PROV_SIZE];
- struct list_head lport_list;
-};
-
-/**
- * struct fc4_prov - FC-4 provider registration
- * @prli: Handler for incoming PRLI
- * @prlo: Handler for session reset
- * @recv: Handler for incoming request
- * @module: Pointer to module. May be NULL.
- */
-struct fc4_prov {
- int (*prli)(struct fc_rport_priv *, u32 spp_len,
- const struct fc_els_spp *spp_in,
- struct fc_els_spp *spp_out);
- void (*prlo)(struct fc_rport_priv *);
- void (*recv)(struct fc_lport *, struct fc_frame *);
- struct module *module;
-};
-
-/*
- * Register FC-4 provider with libfc.
- */
-int fc_fc4_register_provider(enum fc_fh_type type, struct fc4_prov *);
-void fc_fc4_deregister_provider(enum fc_fh_type type, struct fc4_prov *);
-
-/*
- * FC_LPORT HELPER FUNCTIONS
- *****************************/
-
-/**
- * fc_lport_test_ready() - Determine if a local port is in the READY state
- * @lport: The local port to test
- */
-static inline int fc_lport_test_ready(struct fc_lport *lport)
-{
- return lport->state == LPORT_ST_READY;
-}
-
-/**
- * fc_set_wwnn() - Set the World Wide Node Name of a local port
- * @lport: The local port whose WWNN is to be set
- * @wwnn: The new WWNN
- */
-static inline void fc_set_wwnn(struct fc_lport *lport, u64 wwnn)
-{
- lport->wwnn = wwnn;
-}
-
-/**
- * fc_set_wwpn() - Set the World Wide Port Name of a local port
- * @lport: The local port whose WWPN is to be set
- * @wwnn: The new WWPN
- */
-static inline void fc_set_wwpn(struct fc_lport *lport, u64 wwnn)
-{
- lport->wwpn = wwnn;
-}
-
-/**
- * fc_lport_state_enter() - Change a local port's state
- * @lport: The local port whose state is to change
- * @state: The new state
- */
-static inline void fc_lport_state_enter(struct fc_lport *lport,
- enum fc_lport_state state)
-{
- if (state != lport->state)
- lport->retry_count = 0;
- lport->state = state;
-}
-
-/**
- * fc_lport_init_stats() - Allocate per-CPU statistics for a local port
- * @lport: The local port whose statistics are to be initialized
- */
-static inline int fc_lport_init_stats(struct fc_lport *lport)
-{
- lport->dev_stats = alloc_percpu(struct fcoe_dev_stats);
- if (!lport->dev_stats)
- return -ENOMEM;
- return 0;
-}
-
-/**
- * fc_lport_free_stats() - Free memory for a local port's statistics
- * @lport: The local port whose statistics are to be freed
- */
-static inline void fc_lport_free_stats(struct fc_lport *lport)
-{
- free_percpu(lport->dev_stats);
-}
-
-/**
- * lport_priv() - Return the private data from a local port
- * @lport: The local port whose private data is to be retreived
- */
-static inline void *lport_priv(const struct fc_lport *lport)
-{
- return (void *)(lport + 1);
-}
-
-/**
- * libfc_host_alloc() - Allocate a Scsi_Host with room for a local port and
- * LLD private data
- * @sht: The SCSI host template
- * @priv_size: Size of private data
- *
- * Returns: libfc lport
- */
-static inline struct fc_lport *
-libfc_host_alloc(struct scsi_host_template *sht, int priv_size)
-{
- struct fc_lport *lport;
- struct Scsi_Host *shost;
-
- shost = scsi_host_alloc(sht, sizeof(*lport) + priv_size);
- if (!shost)
- return NULL;
- lport = shost_priv(shost);
- lport->host = shost;
- INIT_LIST_HEAD(&lport->ema_list);
- INIT_LIST_HEAD(&lport->vports);
- return lport;
-}
-
-/*
- * FC_FCP HELPER FUNCTIONS
- *****************************/
-static inline bool fc_fcp_is_read(const struct fc_fcp_pkt *fsp)
-{
- if (fsp && fsp->cmd)
- return fsp->cmd->sc_data_direction == DMA_FROM_DEVICE;
- return false;
-}
-
-/*
- * LOCAL PORT LAYER
- *****************************/
-int fc_lport_init(struct fc_lport *);
-int fc_lport_destroy(struct fc_lport *);
-int fc_fabric_logoff(struct fc_lport *);
-int fc_fabric_login(struct fc_lport *);
-void __fc_linkup(struct fc_lport *);
-void fc_linkup(struct fc_lport *);
-void __fc_linkdown(struct fc_lport *);
-void fc_linkdown(struct fc_lport *);
-void fc_vport_setlink(struct fc_lport *);
-void fc_vports_linkchange(struct fc_lport *);
-int fc_lport_config(struct fc_lport *);
-int fc_lport_reset(struct fc_lport *);
-int fc_set_mfs(struct fc_lport *, u32 mfs);
-struct fc_lport *libfc_vport_create(struct fc_vport *, int privsize);
-struct fc_lport *fc_vport_id_lookup(struct fc_lport *, u32 port_id);
-int fc_lport_bsg_request(struct fc_bsg_job *);
-void fc_lport_set_local_id(struct fc_lport *, u32 port_id);
-void fc_lport_iterate(void (*func)(struct fc_lport *, void *), void *);
-
-/*
- * REMOTE PORT LAYER
- *****************************/
-int fc_rport_init(struct fc_lport *);
-void fc_rport_terminate_io(struct fc_rport *);
-
-/*
- * DISCOVERY LAYER
- *****************************/
-int fc_disc_init(struct fc_lport *);
-
-static inline struct fc_lport *fc_disc_lport(struct fc_disc *disc)
-{
- return container_of(disc, struct fc_lport, disc);
-}
-
-/*
- * FCP LAYER
- *****************************/
-int fc_fcp_init(struct fc_lport *);
-void fc_fcp_destroy(struct fc_lport *);
-
-/*
- * SCSI INTERACTION LAYER
- *****************************/
-int fc_queuecommand(struct Scsi_Host *, struct scsi_cmnd *);
-int fc_eh_abort(struct scsi_cmnd *);
-int fc_eh_device_reset(struct scsi_cmnd *);
-int fc_eh_host_reset(struct scsi_cmnd *);
-int fc_slave_alloc(struct scsi_device *);
-int fc_change_queue_depth(struct scsi_device *, int qdepth, int reason);
-int fc_change_queue_type(struct scsi_device *, int tag_type);
-
-/*
- * ELS/CT interface
- *****************************/
-int fc_elsct_init(struct fc_lport *);
-struct fc_seq *fc_elsct_send(struct fc_lport *, u32 did,
- struct fc_frame *,
- unsigned int op,
- void (*resp)(struct fc_seq *,
- struct fc_frame *,
- void *arg),
- void *arg, u32 timer_msec);
-void fc_lport_flogi_resp(struct fc_seq *, struct fc_frame *, void *);
-void fc_lport_logo_resp(struct fc_seq *, struct fc_frame *, void *);
-void fc_fill_reply_hdr(struct fc_frame *, const struct fc_frame *,
- enum fc_rctl, u32 parm_offset);
-void fc_fill_hdr(struct fc_frame *, const struct fc_frame *,
- enum fc_rctl, u32 f_ctl, u16 seq_cnt, u32 parm_offset);
-
-
-/*
- * EXCHANGE MANAGER LAYER
- *****************************/
-int fc_exch_init(struct fc_lport *);
-struct fc_exch_mgr_anchor *fc_exch_mgr_add(struct fc_lport *,
- struct fc_exch_mgr *,
- bool (*match)(struct fc_frame *));
-void fc_exch_mgr_del(struct fc_exch_mgr_anchor *);
-int fc_exch_mgr_list_clone(struct fc_lport *src, struct fc_lport *dst);
-struct fc_exch_mgr *fc_exch_mgr_alloc(struct fc_lport *, enum fc_class class,
- u16 min_xid, u16 max_xid,
- bool (*match)(struct fc_frame *));
-void fc_exch_mgr_free(struct fc_lport *);
-void fc_exch_recv(struct fc_lport *, struct fc_frame *);
-void fc_exch_mgr_reset(struct fc_lport *, u32 s_id, u32 d_id);
-
-/*
- * Functions for fc_functions_template
- */
-void fc_get_host_speed(struct Scsi_Host *);
-void fc_get_host_port_state(struct Scsi_Host *);
-void fc_set_rport_loss_tmo(struct fc_rport *, u32 timeout);
-struct fc_host_statistics *fc_get_host_stats(struct Scsi_Host *);
-
-#endif /* _LIBFC_H_ */
diff --git a/ANDROID_3.4.5/include/scsi/libfcoe.h b/ANDROID_3.4.5/include/scsi/libfcoe.h
deleted file mode 100644
index cfdb55f0..00000000
--- a/ANDROID_3.4.5/include/scsi/libfcoe.h
+++ /dev/null
@@ -1,350 +0,0 @@
-/*
- * Copyright (c) 2008-2009 Cisco Systems, Inc. All rights reserved.
- * Copyright (c) 2007-2008 Intel Corporation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope 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.
- *
- * Maintained at www.Open-FCoE.org
- */
-
-#ifndef _LIBFCOE_H
-#define _LIBFCOE_H
-
-#include <linux/etherdevice.h>
-#include <linux/if_ether.h>
-#include <linux/netdevice.h>
-#include <linux/skbuff.h>
-#include <linux/workqueue.h>
-#include <linux/random.h>
-#include <scsi/fc/fc_fcoe.h>
-#include <scsi/libfc.h>
-
-#define FCOE_MAX_CMD_LEN 16 /* Supported CDB length */
-
-/*
- * Max MTU for FCoE: 14 (FCoE header) + 24 (FC header) + 2112 (max FC payload)
- * + 4 (FC CRC) + 4 (FCoE trailer) = 2158 bytes
- */
-#define FCOE_MTU 2158
-
-/*
- * FIP tunable parameters.
- */
-#define FCOE_CTLR_START_DELAY 2000 /* mS after first adv. to choose FCF */
-#define FCOE_CTRL_SOL_TOV 2000 /* min. solicitation interval (mS) */
-#define FCOE_CTLR_FCF_LIMIT 20 /* max. number of FCF entries */
-#define FCOE_CTLR_VN2VN_LOGIN_LIMIT 3 /* max. VN2VN rport login retries */
-
-/**
- * enum fip_state - internal state of FCoE controller.
- * @FIP_ST_DISABLED: controller has been disabled or not yet enabled.
- * @FIP_ST_LINK_WAIT: the physical link is down or unusable.
- * @FIP_ST_AUTO: determining whether to use FIP or non-FIP mode.
- * @FIP_ST_NON_FIP: non-FIP mode selected.
- * @FIP_ST_ENABLED: FIP mode selected.
- * @FIP_ST_VNMP_START: VN2VN multipath mode start, wait
- * @FIP_ST_VNMP_PROBE1: VN2VN sent first probe, listening
- * @FIP_ST_VNMP_PROBE2: VN2VN sent second probe, listening
- * @FIP_ST_VNMP_CLAIM: VN2VN sent claim, waiting for responses
- * @FIP_ST_VNMP_UP: VN2VN multipath mode operation
- */
-enum fip_state {
- FIP_ST_DISABLED,
- FIP_ST_LINK_WAIT,
- FIP_ST_AUTO,
- FIP_ST_NON_FIP,
- FIP_ST_ENABLED,
- FIP_ST_VNMP_START,
- FIP_ST_VNMP_PROBE1,
- FIP_ST_VNMP_PROBE2,
- FIP_ST_VNMP_CLAIM,
- FIP_ST_VNMP_UP,
-};
-
-/*
- * Modes:
- * The mode is the state that is to be entered after link up.
- * It must not change after fcoe_ctlr_init() sets it.
- */
-#define FIP_MODE_AUTO FIP_ST_AUTO
-#define FIP_MODE_NON_FIP FIP_ST_NON_FIP
-#define FIP_MODE_FABRIC FIP_ST_ENABLED
-#define FIP_MODE_VN2VN FIP_ST_VNMP_START
-
-/**
- * struct fcoe_ctlr - FCoE Controller and FIP state
- * @state: internal FIP state for network link and FIP or non-FIP mode.
- * @mode: LLD-selected mode.
- * @lp: &fc_lport: libfc local port.
- * @sel_fcf: currently selected FCF, or NULL.
- * @fcfs: list of discovered FCFs.
- * @fcf_count: number of discovered FCF entries.
- * @sol_time: time when a multicast solicitation was last sent.
- * @sel_time: time after which to select an FCF.
- * @port_ka_time: time of next port keep-alive.
- * @ctlr_ka_time: time of next controller keep-alive.
- * @timer: timer struct used for all delayed events.
- * @timer_work: &work_struct for doing keep-alives and resets.
- * @recv_work: &work_struct for receiving FIP frames.
- * @fip_recv_list: list of received FIP frames.
- * @flogi_req: clone of FLOGI request sent
- * @rnd_state: state for pseudo-random number generator.
- * @port_id: proposed or selected local-port ID.
- * @user_mfs: configured maximum FC frame size, including FC header.
- * @flogi_oxid: exchange ID of most recent fabric login.
- * @flogi_req_send: send of FLOGI requested
- * @flogi_count: number of FLOGI attempts in AUTO mode.
- * @map_dest: use the FC_MAP mode for destination MAC addresses.
- * @spma: supports SPMA server-provided MACs mode
- * @probe_tries: number of FC_IDs probed
- * @dest_addr: MAC address of the selected FC forwarder.
- * @ctl_src_addr: the native MAC address of our local port.
- * @send: LLD-supplied function to handle sending FIP Ethernet frames
- * @update_mac: LLD-supplied function to handle changes to MAC addresses.
- * @get_src_addr: LLD-supplied function to supply a source MAC address.
- * @ctlr_mutex: lock protecting this structure.
- * @ctlr_lock: spinlock covering flogi_req
- *
- * This structure is used by all FCoE drivers. It contains information
- * needed by all FCoE low-level drivers (LLDs) as well as internal state
- * for FIP, and fields shared with the LLDS.
- */
-struct fcoe_ctlr {
- enum fip_state state;
- enum fip_state mode;
- struct fc_lport *lp;
- struct fcoe_fcf *sel_fcf;
- struct list_head fcfs;
- u16 fcf_count;
- unsigned long sol_time;
- unsigned long sel_time;
- unsigned long port_ka_time;
- unsigned long ctlr_ka_time;
- struct timer_list timer;
- struct work_struct timer_work;
- struct work_struct recv_work;
- struct sk_buff_head fip_recv_list;
- struct sk_buff *flogi_req;
-
- struct rnd_state rnd_state;
- u32 port_id;
-
- u16 user_mfs;
- u16 flogi_oxid;
- u8 flogi_req_send;
- u8 flogi_count;
- u8 map_dest;
- u8 spma;
- u8 probe_tries;
- u8 priority;
- u8 dest_addr[ETH_ALEN];
- u8 ctl_src_addr[ETH_ALEN];
-
- void (*send)(struct fcoe_ctlr *, struct sk_buff *);
- void (*update_mac)(struct fc_lport *, u8 *addr);
- u8 * (*get_src_addr)(struct fc_lport *);
- struct mutex ctlr_mutex;
- spinlock_t ctlr_lock;
-};
-
-/**
- * struct fcoe_fcf - Fibre-Channel Forwarder
- * @list: list linkage
- * @time: system time (jiffies) when an advertisement was last received
- * @switch_name: WWN of switch from advertisement
- * @fabric_name: WWN of fabric from advertisement
- * @fc_map: FC_MAP value from advertisement
- * @fcf_mac: Ethernet address of the FCF for FIP traffic
- * @fcoe_mac: Ethernet address of the FCF for FCoE traffic
- * @vfid: virtual fabric ID
- * @pri: selection priority, smaller values are better
- * @flogi_sent: current FLOGI sent to this FCF
- * @flags: flags received from advertisement
- * @fka_period: keep-alive period, in jiffies
- *
- * A Fibre-Channel Forwarder (FCF) is the entity on the Ethernet that
- * passes FCoE frames on to an FC fabric. This structure represents
- * one FCF from which advertisements have been received.
- *
- * When looking up an FCF, @switch_name, @fabric_name, @fc_map, @vfid, and
- * @fcf_mac together form the lookup key.
- */
-struct fcoe_fcf {
- struct list_head list;
- unsigned long time;
-
- u64 switch_name;
- u64 fabric_name;
- u32 fc_map;
- u16 vfid;
- u8 fcf_mac[ETH_ALEN];
- u8 fcoe_mac[ETH_ALEN];
-
- u8 pri;
- u8 flogi_sent;
- u16 flags;
- u32 fka_period;
- u8 fd_flags:1;
-};
-
-/**
- * struct fcoe_rport - VN2VN remote port
- * @time: time of create or last beacon packet received from node
- * @fcoe_len: max FCoE frame size, not including VLAN or Ethernet headers
- * @flags: flags from probe or claim
- * @login_count: number of unsuccessful rport logins to this port
- * @enode_mac: E_Node control MAC address
- * @vn_mac: VN_Node assigned MAC address for data
- */
-struct fcoe_rport {
- unsigned long time;
- u16 fcoe_len;
- u16 flags;
- u8 login_count;
- u8 enode_mac[ETH_ALEN];
- u8 vn_mac[ETH_ALEN];
-};
-
-/* FIP API functions */
-void fcoe_ctlr_init(struct fcoe_ctlr *, enum fip_state);
-void fcoe_ctlr_destroy(struct fcoe_ctlr *);
-void fcoe_ctlr_link_up(struct fcoe_ctlr *);
-int fcoe_ctlr_link_down(struct fcoe_ctlr *);
-int fcoe_ctlr_els_send(struct fcoe_ctlr *, struct fc_lport *, struct sk_buff *);
-void fcoe_ctlr_recv(struct fcoe_ctlr *, struct sk_buff *);
-int fcoe_ctlr_recv_flogi(struct fcoe_ctlr *, struct fc_lport *,
- struct fc_frame *);
-
-/* libfcoe funcs */
-u64 fcoe_wwn_from_mac(unsigned char mac[], unsigned int, unsigned int);
-int fcoe_libfc_config(struct fc_lport *, struct fcoe_ctlr *,
- const struct libfc_function_template *, int init_fcp);
-u32 fcoe_fc_crc(struct fc_frame *fp);
-int fcoe_start_io(struct sk_buff *skb);
-int fcoe_get_wwn(struct net_device *netdev, u64 *wwn, int type);
-void __fcoe_get_lesb(struct fc_lport *lport, struct fc_els_lesb *fc_lesb,
- struct net_device *netdev);
-void fcoe_wwn_to_str(u64 wwn, char *buf, int len);
-int fcoe_validate_vport_create(struct fc_vport *vport);
-
-/**
- * is_fip_mode() - returns true if FIP mode selected.
- * @fip: FCoE controller.
- */
-static inline bool is_fip_mode(struct fcoe_ctlr *fip)
-{
- return fip->state == FIP_ST_ENABLED;
-}
-
-/* helper for FCoE SW HBA drivers, can include subven and subdev if needed. The
- * modpost would use pci_device_id table to auto-generate formatted module alias
- * into the corresponding .mod.c file, but there may or may not be a pci device
- * id table for FCoE drivers so we use the following helper for build the fcoe
- * driver module alias.
- */
-#define MODULE_ALIAS_FCOE_PCI(ven, dev) \
- MODULE_ALIAS("fcoe-pci:" \
- "v" __stringify(ven) \
- "d" __stringify(dev) "sv*sd*bc*sc*i*")
-
-/* the name of the default FCoE transport driver fcoe.ko */
-#define FCOE_TRANSPORT_DEFAULT "fcoe"
-
-/* struct fcoe_transport - The FCoE transport interface
- * @name: a vendor specific name for their FCoE transport driver
- * @attached: whether this transport is already attached
- * @list: list linkage to all attached transports
- * @match: handler to allow the transport driver to match up a given netdev
- * @create: handler to sysfs entry of create for FCoE instances
- * @destroy: handler to sysfs entry of destroy for FCoE instances
- * @enable: handler to sysfs entry of enable for FCoE instances
- * @disable: handler to sysfs entry of disable for FCoE instances
- */
-struct fcoe_transport {
- char name[IFNAMSIZ];
- bool attached;
- struct list_head list;
- bool (*match) (struct net_device *device);
- int (*create) (struct net_device *device, enum fip_state fip_mode);
- int (*destroy) (struct net_device *device);
- int (*enable) (struct net_device *device);
- int (*disable) (struct net_device *device);
-};
-
-/**
- * struct fcoe_percpu_s - The context for FCoE receive thread(s)
- * @thread: The thread context
- * @fcoe_rx_list: The queue of pending packets to process
- * @page: The memory page for calculating frame trailer CRCs
- * @crc_eof_offset: The offset into the CRC page pointing to available
- * memory for a new trailer
- */
-struct fcoe_percpu_s {
- struct task_struct *thread;
- struct sk_buff_head fcoe_rx_list;
- struct page *crc_eof_page;
- int crc_eof_offset;
-};
-
-/**
- * struct fcoe_port - The FCoE private structure
- * @priv: The associated fcoe interface. The structure is
- * defined by the low level driver
- * @lport: The associated local port
- * @fcoe_pending_queue: The pending Rx queue of skbs
- * @fcoe_pending_queue_active: Indicates if the pending queue is active
- * @priority: Packet priority (DCB)
- * @max_queue_depth: Max queue depth of pending queue
- * @min_queue_depth: Min queue depth of pending queue
- * @timer: The queue timer
- * @destroy_work: Handle for work context
- * (to prevent RTNL deadlocks)
- * @data_srt_addr: Source address for data
- *
- * An instance of this structure is to be allocated along with the
- * Scsi_Host and libfc fc_lport structures.
- */
-struct fcoe_port {
- void *priv;
- struct fc_lport *lport;
- struct sk_buff_head fcoe_pending_queue;
- u8 fcoe_pending_queue_active;
- u8 priority;
- u32 max_queue_depth;
- u32 min_queue_depth;
- struct timer_list timer;
- struct work_struct destroy_work;
- u8 data_src_addr[ETH_ALEN];
-};
-void fcoe_clean_pending_queue(struct fc_lport *);
-void fcoe_check_wait_queue(struct fc_lport *lport, struct sk_buff *skb);
-void fcoe_queue_timer(ulong lport);
-int fcoe_get_paged_crc_eof(struct sk_buff *skb, int tlen,
- struct fcoe_percpu_s *fps);
-
-/**
- * struct netdev_list
- * A mapping from netdevice to fcoe_transport
- */
-struct fcoe_netdev_mapping {
- struct list_head list;
- struct net_device *netdev;
- struct fcoe_transport *ft;
-};
-
-/* fcoe transports registration and deregistration */
-int fcoe_transport_attach(struct fcoe_transport *ft);
-int fcoe_transport_detach(struct fcoe_transport *ft);
-
-#endif /* _LIBFCOE_H */
diff --git a/ANDROID_3.4.5/include/scsi/libiscsi.h b/ANDROID_3.4.5/include/scsi/libiscsi.h
deleted file mode 100644
index 6e33386a..00000000
--- a/ANDROID_3.4.5/include/scsi/libiscsi.h
+++ /dev/null
@@ -1,449 +0,0 @@
-/*
- * iSCSI lib definitions
- *
- * Copyright (C) 2006 Red Hat, Inc. All rights reserved.
- * Copyright (C) 2004 - 2006 Mike Christie
- * Copyright (C) 2004 - 2005 Dmitry Yusupov
- * Copyright (C) 2004 - 2005 Alex Aizman
- *
- * 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.
- */
-#ifndef LIBISCSI_H
-#define LIBISCSI_H
-
-#include <linux/types.h>
-#include <linux/wait.h>
-#include <linux/mutex.h>
-#include <linux/timer.h>
-#include <linux/workqueue.h>
-#include <linux/kfifo.h>
-#include <scsi/iscsi_proto.h>
-#include <scsi/iscsi_if.h>
-#include <scsi/scsi_transport_iscsi.h>
-
-struct scsi_transport_template;
-struct scsi_host_template;
-struct scsi_device;
-struct Scsi_Host;
-struct scsi_target;
-struct scsi_cmnd;
-struct socket;
-struct iscsi_transport;
-struct iscsi_cls_session;
-struct iscsi_cls_conn;
-struct iscsi_session;
-struct iscsi_nopin;
-struct device;
-
-#define ISCSI_DEF_XMIT_CMDS_MAX 128 /* must be power of 2 */
-#define ISCSI_MGMT_CMDS_MAX 15
-
-#define ISCSI_DEF_CMD_PER_LUN 32
-
-/* Task Mgmt states */
-enum {
- TMF_INITIAL,
- TMF_QUEUED,
- TMF_SUCCESS,
- TMF_FAILED,
- TMF_TIMEDOUT,
- TMF_NOT_FOUND,
-};
-
-/* Connection suspend "bit" */
-#define ISCSI_SUSPEND_BIT 1
-
-#define ISCSI_ITT_MASK 0x1fff
-#define ISCSI_TOTAL_CMDS_MAX 4096
-/* this must be a power of two greater than ISCSI_MGMT_CMDS_MAX */
-#define ISCSI_TOTAL_CMDS_MIN 16
-#define ISCSI_AGE_SHIFT 28
-#define ISCSI_AGE_MASK 0xf
-
-#define ISCSI_ADDRESS_BUF_LEN 64
-
-enum {
- /* this is the maximum possible storage for AHSs */
- ISCSI_MAX_AHS_SIZE = sizeof(struct iscsi_ecdb_ahdr) +
- sizeof(struct iscsi_rlength_ahdr),
- ISCSI_DIGEST_SIZE = sizeof(__u32),
-};
-
-
-enum {
- ISCSI_TASK_FREE,
- ISCSI_TASK_COMPLETED,
- ISCSI_TASK_PENDING,
- ISCSI_TASK_RUNNING,
- ISCSI_TASK_ABRT_TMF, /* aborted due to TMF */
- ISCSI_TASK_ABRT_SESS_RECOV, /* aborted due to session recovery */
- ISCSI_TASK_REQUEUE_SCSIQ, /* qcmd requeueing to scsi-ml */
-};
-
-struct iscsi_r2t_info {
- __be32 ttt; /* copied from R2T */
- __be32 exp_statsn; /* copied from R2T */
- uint32_t data_length; /* copied from R2T */
- uint32_t data_offset; /* copied from R2T */
- int data_count; /* DATA-Out payload progress */
- int datasn;
- /* LLDs should set/update these values */
- int sent; /* R2T sequence progress */
-};
-
-struct iscsi_task {
- /*
- * Because LLDs allocate their hdr differently, this is a pointer
- * and length to that storage. It must be setup at session
- * creation time.
- */
- struct iscsi_hdr *hdr;
- unsigned short hdr_max;
- unsigned short hdr_len; /* accumulated size of hdr used */
- /* copied values in case we need to send tmfs */
- itt_t hdr_itt;
- __be32 cmdsn;
- struct scsi_lun lun;
-
- int itt; /* this ITT */
-
- unsigned imm_count; /* imm-data (bytes) */
- /* offset in unsolicited stream (bytes); */
- struct iscsi_r2t_info unsol_r2t;
- char *data; /* mgmt payload */
- unsigned data_count;
- struct scsi_cmnd *sc; /* associated SCSI cmd*/
- struct iscsi_conn *conn; /* used connection */
-
- /* data processing tracking */
- unsigned long last_xfer;
- unsigned long last_timeout;
- bool have_checked_conn;
- /* state set/tested under session->lock */
- int state;
- atomic_t refcount;
- struct list_head running; /* running cmd list */
- void *dd_data; /* driver/transport data */
-};
-
-static inline int iscsi_task_has_unsol_data(struct iscsi_task *task)
-{
- return task->unsol_r2t.data_length > task->unsol_r2t.sent;
-}
-
-static inline void* iscsi_next_hdr(struct iscsi_task *task)
-{
- return (void*)task->hdr + task->hdr_len;
-}
-
-/* Connection's states */
-enum {
- ISCSI_CONN_INITIAL_STAGE,
- ISCSI_CONN_STARTED,
- ISCSI_CONN_STOPPED,
- ISCSI_CONN_CLEANUP_WAIT,
-};
-
-struct iscsi_conn {
- struct iscsi_cls_conn *cls_conn; /* ptr to class connection */
- void *dd_data; /* iscsi_transport data */
- struct iscsi_session *session; /* parent session */
- /*
- * conn_stop() flag: stop to recover, stop to terminate
- */
- int stop_stage;
- struct timer_list transport_timer;
- unsigned long last_recv;
- unsigned long last_ping;
- int ping_timeout;
- int recv_timeout;
- struct iscsi_task *ping_task;
-
- /* iSCSI connection-wide sequencing */
- uint32_t exp_statsn;
-
- /* control data */
- int id; /* CID */
- int c_stage; /* connection state */
- /*
- * Preallocated buffer for pdus that have data but do not
- * originate from scsi-ml. We never have two pdus using the
- * buffer at the same time. It is only allocated to
- * the default max recv size because the pdus we support
- * should always fit in this buffer
- */
- char *data;
- struct iscsi_task *login_task; /* mtask used for login/text */
- struct iscsi_task *task; /* xmit task in progress */
-
- /* xmit */
- struct list_head mgmtqueue; /* mgmt (control) xmit queue */
- struct list_head cmdqueue; /* data-path cmd queue */
- struct list_head requeue; /* tasks needing another run */
- struct work_struct xmitwork; /* per-conn. xmit workqueue */
- unsigned long suspend_tx; /* suspend Tx */
- unsigned long suspend_rx; /* suspend Rx */
-
- /* abort */
- wait_queue_head_t ehwait; /* used in eh_abort() */
- struct iscsi_tm tmhdr;
- struct timer_list tmf_timer;
- int tmf_state; /* see TMF_INITIAL, etc.*/
-
- /* negotiated params */
- unsigned max_recv_dlength; /* initiator_max_recv_dsl*/
- unsigned max_xmit_dlength; /* target_max_recv_dsl */
- int hdrdgst_en;
- int datadgst_en;
- int ifmarker_en;
- int ofmarker_en;
- /* values userspace uses to id a conn */
- int persistent_port;
- char *persistent_address;
-
- /* MIB-statistics */
- uint64_t txdata_octets;
- uint64_t rxdata_octets;
- uint32_t scsicmd_pdus_cnt;
- uint32_t dataout_pdus_cnt;
- uint32_t scsirsp_pdus_cnt;
- uint32_t datain_pdus_cnt;
- uint32_t r2t_pdus_cnt;
- uint32_t tmfcmd_pdus_cnt;
- int32_t tmfrsp_pdus_cnt;
-
- /* custom statistics */
- uint32_t eh_abort_cnt;
- uint32_t fmr_unalign_cnt;
-};
-
-struct iscsi_pool {
- struct kfifo queue; /* FIFO Queue */
- void **pool; /* Pool of elements */
- int max; /* Max number of elements */
-};
-
-/* Session's states */
-enum {
- ISCSI_STATE_FREE = 1,
- ISCSI_STATE_LOGGED_IN,
- ISCSI_STATE_FAILED,
- ISCSI_STATE_TERMINATE,
- ISCSI_STATE_IN_RECOVERY,
- ISCSI_STATE_RECOVERY_FAILED,
- ISCSI_STATE_LOGGING_OUT,
-};
-
-struct iscsi_session {
- struct iscsi_cls_session *cls_session;
- /*
- * Syncs up the scsi eh thread with the iscsi eh thread when sending
- * task management functions. This must be taken before the session
- * and recv lock.
- */
- struct mutex eh_mutex;
-
- /* iSCSI session-wide sequencing */
- uint32_t cmdsn;
- uint32_t exp_cmdsn;
- uint32_t max_cmdsn;
-
- /* This tracks the reqs queued into the initiator */
- uint32_t queued_cmdsn;
-
- /* configuration */
- int abort_timeout;
- int lu_reset_timeout;
- int tgt_reset_timeout;
- int initial_r2t_en;
- unsigned short max_r2t;
- int imm_data_en;
- unsigned first_burst;
- unsigned max_burst;
- int time2wait;
- int time2retain;
- int pdu_inorder_en;
- int dataseq_inorder_en;
- int erl;
- int fast_abort;
- int tpgt;
- char *username;
- char *username_in;
- char *password;
- char *password_in;
- char *targetname;
- char *targetalias;
- char *ifacename;
- char *initiatorname;
- /* control data */
- struct iscsi_transport *tt;
- struct Scsi_Host *host;
- struct iscsi_conn *leadconn; /* leading connection */
- spinlock_t lock; /* protects session state, *
- * sequence numbers, *
- * session resources: *
- * - cmdpool, *
- * - mgmtpool, *
- * - r2tpool */
- int state; /* session state */
- int age; /* counts session re-opens */
-
- int scsi_cmds_max; /* max scsi commands */
- int cmds_max; /* size of cmds array */
- struct iscsi_task **cmds; /* Original Cmds arr */
- struct iscsi_pool cmdpool; /* PDU's pool */
- void *dd_data; /* LLD private data */
-};
-
-enum {
- ISCSI_HOST_SETUP,
- ISCSI_HOST_REMOVED,
-};
-
-struct iscsi_host {
- char *initiatorname;
- /* hw address or netdev iscsi connection is bound to */
- char *hwaddress;
- char *netdev;
-
- wait_queue_head_t session_removal_wq;
- /* protects sessions and state */
- spinlock_t lock;
- int num_sessions;
- int state;
-
- struct workqueue_struct *workq;
- char workq_name[20];
-};
-
-/*
- * scsi host template
- */
-extern int iscsi_change_queue_depth(struct scsi_device *sdev, int depth,
- int reason);
-extern int iscsi_eh_abort(struct scsi_cmnd *sc);
-extern int iscsi_eh_recover_target(struct scsi_cmnd *sc);
-extern int iscsi_eh_session_reset(struct scsi_cmnd *sc);
-extern int iscsi_eh_device_reset(struct scsi_cmnd *sc);
-extern int iscsi_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *sc);
-
-/*
- * iSCSI host helpers.
- */
-#define iscsi_host_priv(_shost) \
- (shost_priv(_shost) + sizeof(struct iscsi_host))
-
-extern int iscsi_host_set_param(struct Scsi_Host *shost,
- enum iscsi_host_param param, char *buf,
- int buflen);
-extern int iscsi_host_get_param(struct Scsi_Host *shost,
- enum iscsi_host_param param, char *buf);
-extern int iscsi_host_add(struct Scsi_Host *shost, struct device *pdev);
-extern struct Scsi_Host *iscsi_host_alloc(struct scsi_host_template *sht,
- int dd_data_size,
- bool xmit_can_sleep);
-extern void iscsi_host_remove(struct Scsi_Host *shost);
-extern void iscsi_host_free(struct Scsi_Host *shost);
-extern int iscsi_target_alloc(struct scsi_target *starget);
-
-/*
- * session management
- */
-extern struct iscsi_cls_session *
-iscsi_session_setup(struct iscsi_transport *, struct Scsi_Host *shost,
- uint16_t, int, int, uint32_t, unsigned int);
-extern void iscsi_session_teardown(struct iscsi_cls_session *);
-extern void iscsi_session_recovery_timedout(struct iscsi_cls_session *);
-extern int iscsi_set_param(struct iscsi_cls_conn *cls_conn,
- enum iscsi_param param, char *buf, int buflen);
-extern int iscsi_session_get_param(struct iscsi_cls_session *cls_session,
- enum iscsi_param param, char *buf);
-
-#define iscsi_session_printk(prefix, _sess, fmt, a...) \
- iscsi_cls_session_printk(prefix, _sess->cls_session, fmt, ##a)
-
-/*
- * connection management
- */
-extern struct iscsi_cls_conn *iscsi_conn_setup(struct iscsi_cls_session *,
- int, uint32_t);
-extern void iscsi_conn_teardown(struct iscsi_cls_conn *);
-extern int iscsi_conn_start(struct iscsi_cls_conn *);
-extern void iscsi_conn_stop(struct iscsi_cls_conn *, int);
-extern int iscsi_conn_bind(struct iscsi_cls_session *, struct iscsi_cls_conn *,
- int);
-extern void iscsi_conn_failure(struct iscsi_conn *conn, enum iscsi_err err);
-extern void iscsi_session_failure(struct iscsi_session *session,
- enum iscsi_err err);
-extern int iscsi_conn_get_param(struct iscsi_cls_conn *cls_conn,
- enum iscsi_param param, char *buf);
-extern int iscsi_conn_get_addr_param(struct sockaddr_storage *addr,
- enum iscsi_param param, char *buf);
-extern void iscsi_suspend_tx(struct iscsi_conn *conn);
-extern void iscsi_suspend_queue(struct iscsi_conn *conn);
-extern void iscsi_conn_queue_work(struct iscsi_conn *conn);
-
-#define iscsi_conn_printk(prefix, _c, fmt, a...) \
- iscsi_cls_conn_printk(prefix, ((struct iscsi_conn *)_c)->cls_conn, \
- fmt, ##a)
-
-/*
- * pdu and task processing
- */
-extern void iscsi_update_cmdsn(struct iscsi_session *, struct iscsi_nopin *);
-extern void iscsi_prep_data_out_pdu(struct iscsi_task *task,
- struct iscsi_r2t_info *r2t,
- struct iscsi_data *hdr);
-extern int iscsi_conn_send_pdu(struct iscsi_cls_conn *, struct iscsi_hdr *,
- char *, uint32_t);
-extern int iscsi_complete_pdu(struct iscsi_conn *, struct iscsi_hdr *,
- char *, int);
-extern int __iscsi_complete_pdu(struct iscsi_conn *, struct iscsi_hdr *,
- char *, int);
-extern int iscsi_verify_itt(struct iscsi_conn *, itt_t);
-extern struct iscsi_task *iscsi_itt_to_ctask(struct iscsi_conn *, itt_t);
-extern struct iscsi_task *iscsi_itt_to_task(struct iscsi_conn *, itt_t);
-extern void iscsi_requeue_task(struct iscsi_task *task);
-extern void iscsi_put_task(struct iscsi_task *task);
-extern void __iscsi_put_task(struct iscsi_task *task);
-extern void __iscsi_get_task(struct iscsi_task *task);
-extern void iscsi_complete_scsi_task(struct iscsi_task *task,
- uint32_t exp_cmdsn, uint32_t max_cmdsn);
-
-/*
- * generic helpers
- */
-extern void iscsi_pool_free(struct iscsi_pool *);
-extern int iscsi_pool_init(struct iscsi_pool *, int, void ***, int);
-
-/*
- * inline functions to deal with padding.
- */
-static inline unsigned int
-iscsi_padded(unsigned int len)
-{
- return (len + ISCSI_PAD_LEN - 1) & ~(ISCSI_PAD_LEN - 1);
-}
-
-static inline unsigned int
-iscsi_padding(unsigned int len)
-{
- len &= (ISCSI_PAD_LEN - 1);
- if (len)
- len = ISCSI_PAD_LEN - len;
- return len;
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/scsi/libiscsi_tcp.h b/ANDROID_3.4.5/include/scsi/libiscsi_tcp.h
deleted file mode 100644
index 215469a9..00000000
--- a/ANDROID_3.4.5/include/scsi/libiscsi_tcp.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * iSCSI over TCP/IP Data-Path lib
- *
- * Copyright (C) 2008 Mike Christie
- * Copyright (C) 2008 Red Hat, Inc. All rights reserved.
- * maintained by open-iscsi@googlegroups.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.
- *
- * See the file COPYING included with this distribution for more details.
- */
-
-#ifndef LIBISCSI_TCP_H
-#define LIBISCSI_TCP_H
-
-#include <scsi/libiscsi.h>
-
-struct iscsi_tcp_conn;
-struct iscsi_segment;
-struct sk_buff;
-struct hash_desc;
-
-typedef int iscsi_segment_done_fn_t(struct iscsi_tcp_conn *,
- struct iscsi_segment *);
-
-struct iscsi_segment {
- unsigned char *data;
- unsigned int size;
- unsigned int copied;
- unsigned int total_size;
- unsigned int total_copied;
-
- struct hash_desc *hash;
- unsigned char padbuf[ISCSI_PAD_LEN];
- unsigned char recv_digest[ISCSI_DIGEST_SIZE];
- unsigned char digest[ISCSI_DIGEST_SIZE];
- unsigned int digest_len;
-
- struct scatterlist *sg;
- void *sg_mapped;
- unsigned int sg_offset;
- bool atomic_mapped;
-
- iscsi_segment_done_fn_t *done;
-};
-
-/* Socket connection receive helper */
-struct iscsi_tcp_recv {
- struct iscsi_hdr *hdr;
- struct iscsi_segment segment;
-
- /* Allocate buffer for BHS + AHS */
- uint32_t hdr_buf[64];
-
- /* copied and flipped values */
- int datalen;
-};
-
-struct iscsi_tcp_conn {
- struct iscsi_conn *iscsi_conn;
- void *dd_data;
- int stop_stage; /* conn_stop() flag: *
- * stop to recover, *
- * stop to terminate */
- /* control data */
- struct iscsi_tcp_recv in; /* TCP receive context */
- /* CRC32C (Rx) LLD should set this is they do not offload */
- struct hash_desc *rx_hash;
-};
-
-struct iscsi_tcp_task {
- uint32_t exp_datasn; /* expected target's R2TSN/DataSN */
- int data_offset;
- struct iscsi_r2t_info *r2t; /* in progress solict R2T */
- struct iscsi_pool r2tpool;
- struct kfifo r2tqueue;
- void *dd_data;
-};
-
-enum {
- ISCSI_TCP_SEGMENT_DONE, /* curr seg has been processed */
- ISCSI_TCP_SKB_DONE, /* skb is out of data */
- ISCSI_TCP_CONN_ERR, /* iscsi layer has fired a conn err */
- ISCSI_TCP_SUSPENDED, /* conn is suspended */
-};
-
-extern void iscsi_tcp_hdr_recv_prep(struct iscsi_tcp_conn *tcp_conn);
-extern int iscsi_tcp_recv_skb(struct iscsi_conn *conn, struct sk_buff *skb,
- unsigned int offset, bool offloaded, int *status);
-extern void iscsi_tcp_cleanup_task(struct iscsi_task *task);
-extern int iscsi_tcp_task_init(struct iscsi_task *task);
-extern int iscsi_tcp_task_xmit(struct iscsi_task *task);
-
-/* segment helpers */
-extern int iscsi_tcp_recv_segment_is_hdr(struct iscsi_tcp_conn *tcp_conn);
-extern int iscsi_tcp_segment_done(struct iscsi_tcp_conn *tcp_conn,
- struct iscsi_segment *segment, int recv,
- unsigned copied);
-extern void iscsi_tcp_segment_unmap(struct iscsi_segment *segment);
-
-extern void iscsi_segment_init_linear(struct iscsi_segment *segment,
- void *data, size_t size,
- iscsi_segment_done_fn_t *done,
- struct hash_desc *hash);
-extern int
-iscsi_segment_seek_sg(struct iscsi_segment *segment,
- struct scatterlist *sg_list, unsigned int sg_count,
- unsigned int offset, size_t size,
- iscsi_segment_done_fn_t *done, struct hash_desc *hash);
-
-/* digest helpers */
-extern void iscsi_tcp_dgst_header(struct hash_desc *hash, const void *hdr,
- size_t hdrlen,
- unsigned char digest[ISCSI_DIGEST_SIZE]);
-extern struct iscsi_cls_conn *
-iscsi_tcp_conn_setup(struct iscsi_cls_session *cls_session, int dd_data_size,
- uint32_t conn_idx);
-extern void iscsi_tcp_conn_teardown(struct iscsi_cls_conn *cls_conn);
-
-/* misc helpers */
-extern int iscsi_tcp_r2tpool_alloc(struct iscsi_session *session);
-extern void iscsi_tcp_r2tpool_free(struct iscsi_session *session);
-extern int iscsi_tcp_set_max_r2t(struct iscsi_conn *conn, char *buf);
-extern void iscsi_tcp_conn_get_stats(struct iscsi_cls_conn *cls_conn,
- struct iscsi_stats *stats);
-#endif /* LIBISCSI_TCP_H */
diff --git a/ANDROID_3.4.5/include/scsi/libsas.h b/ANDROID_3.4.5/include/scsi/libsas.h
deleted file mode 100644
index 10ce74f5..00000000
--- a/ANDROID_3.4.5/include/scsi/libsas.h
+++ /dev/null
@@ -1,728 +0,0 @@
-/*
- * SAS host prototypes and structures header file
- *
- * Copyright (C) 2005 Adaptec, Inc. All rights reserved.
- * Copyright (C) 2005 Luben Tuikov <luben_tuikov@adaptec.com>
- *
- * This file is licensed under GPLv2.
- *
- * 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
- *
- */
-
-#ifndef _LIBSAS_H_
-#define _LIBSAS_H_
-
-
-#include <linux/timer.h>
-#include <linux/pci.h>
-#include <scsi/sas.h>
-#include <linux/libata.h>
-#include <linux/list.h>
-#include <scsi/scsi_device.h>
-#include <scsi/scsi_cmnd.h>
-#include <scsi/scsi_transport_sas.h>
-#include <linux/scatterlist.h>
-#include <linux/slab.h>
-
-struct block_device;
-
-enum sas_class {
- SAS,
- EXPANDER
-};
-
-enum sas_phy_role {
- PHY_ROLE_NONE = 0,
- PHY_ROLE_TARGET = 0x40,
- PHY_ROLE_INITIATOR = 0x80,
-};
-
-enum sas_phy_type {
- PHY_TYPE_PHYSICAL,
- PHY_TYPE_VIRTUAL
-};
-
-/* The events are mnemonically described in sas_dump.c
- * so when updating/adding events here, please also
- * update the other file too.
- */
-enum ha_event {
- HAE_RESET = 0U,
- HA_NUM_EVENTS = 1,
-};
-
-enum port_event {
- PORTE_BYTES_DMAED = 0U,
- PORTE_BROADCAST_RCVD = 1,
- PORTE_LINK_RESET_ERR = 2,
- PORTE_TIMER_EVENT = 3,
- PORTE_HARD_RESET = 4,
- PORT_NUM_EVENTS = 5,
-};
-
-enum phy_event {
- PHYE_LOSS_OF_SIGNAL = 0U,
- PHYE_OOB_DONE = 1,
- PHYE_OOB_ERROR = 2,
- PHYE_SPINUP_HOLD = 3, /* hot plug SATA, no COMWAKE sent */
- PHY_NUM_EVENTS = 4,
-};
-
-enum discover_event {
- DISCE_DISCOVER_DOMAIN = 0U,
- DISCE_REVALIDATE_DOMAIN = 1,
- DISCE_PORT_GONE = 2,
- DISCE_PROBE = 3,
- DISCE_DESTRUCT = 4,
- DISC_NUM_EVENTS = 5,
-};
-
-/* ---------- Expander Devices ---------- */
-
-#define to_dom_device(_obj) container_of(_obj, struct domain_device, dev_obj)
-#define to_dev_attr(_attr) container_of(_attr, struct domain_dev_attribute,\
- attr)
-
-enum routing_attribute {
- DIRECT_ROUTING,
- SUBTRACTIVE_ROUTING,
- TABLE_ROUTING,
-};
-
-enum ex_phy_state {
- PHY_EMPTY,
- PHY_VACANT,
- PHY_NOT_PRESENT,
- PHY_DEVICE_DISCOVERED
-};
-
-struct ex_phy {
- int phy_id;
-
- enum ex_phy_state phy_state;
-
- enum sas_dev_type attached_dev_type;
- enum sas_linkrate linkrate;
-
- u8 attached_sata_host:1;
- u8 attached_sata_dev:1;
- u8 attached_sata_ps:1;
-
- enum sas_protocol attached_tproto;
- enum sas_protocol attached_iproto;
-
- u8 attached_sas_addr[SAS_ADDR_SIZE];
- u8 attached_phy_id;
-
- u8 phy_change_count;
- enum routing_attribute routing_attr;
- u8 virtual:1;
-
- int last_da_index;
-
- struct sas_phy *phy;
- struct sas_port *port;
-};
-
-struct expander_device {
- struct list_head children;
-
- u16 ex_change_count;
- u16 max_route_indexes;
- u8 num_phys;
-
- u8 t2t_supp:1;
- u8 configuring:1;
- u8 conf_route_table:1;
-
- u8 enclosure_logical_id[8];
-
- struct ex_phy *ex_phy;
- struct sas_port *parent_port;
-
- struct mutex cmd_mutex;
-};
-
-/* ---------- SATA device ---------- */
-enum ata_command_set {
- ATA_COMMAND_SET = 0,
- ATAPI_COMMAND_SET = 1,
-};
-
-#define ATA_RESP_FIS_SIZE 24
-
-struct sata_device {
- enum ata_command_set command_set;
- struct smp_resp rps_resp; /* report_phy_sata_resp */
- u8 port_no; /* port number, if this is a PM (Port) */
- struct list_head children; /* PM Ports if this is a PM */
-
- struct ata_port *ap;
- struct ata_host ata_host;
- u8 fis[ATA_RESP_FIS_SIZE];
-};
-
-enum {
- SAS_DEV_GONE,
- SAS_DEV_DESTROY,
-};
-
-struct domain_device {
- spinlock_t done_lock;
- enum sas_dev_type dev_type;
-
- enum sas_linkrate linkrate;
- enum sas_linkrate min_linkrate;
- enum sas_linkrate max_linkrate;
-
- int pathways;
-
- struct domain_device *parent;
- struct list_head siblings; /* devices on the same level */
- struct asd_sas_port *port; /* shortcut to root of the tree */
- struct sas_phy *phy;
-
- struct list_head dev_list_node;
- struct list_head disco_list_node; /* awaiting probe or destruct */
-
- enum sas_protocol iproto;
- enum sas_protocol tproto;
-
- struct sas_rphy *rphy;
-
- u8 sas_addr[SAS_ADDR_SIZE];
- u8 hashed_sas_addr[HASHED_SAS_ADDR_SIZE];
-
- u8 frame_rcvd[32];
-
- union {
- struct expander_device ex_dev;
- struct sata_device sata_dev; /* STP & directly attached */
- };
-
- void *lldd_dev;
- unsigned long state;
- struct kref kref;
-};
-
-struct sas_work {
- struct list_head drain_node;
- struct work_struct work;
-};
-
-static inline void INIT_SAS_WORK(struct sas_work *sw, void (*fn)(struct work_struct *))
-{
- INIT_WORK(&sw->work, fn);
- INIT_LIST_HEAD(&sw->drain_node);
-}
-
-struct sas_discovery_event {
- struct sas_work work;
- struct asd_sas_port *port;
-};
-
-static inline struct sas_discovery_event *to_sas_discovery_event(struct work_struct *work)
-{
- struct sas_discovery_event *ev = container_of(work, typeof(*ev), work.work);
-
- return ev;
-}
-
-struct sas_discovery {
- struct sas_discovery_event disc_work[DISC_NUM_EVENTS];
- unsigned long pending;
- u8 fanout_sas_addr[8];
- u8 eeds_a[8];
- u8 eeds_b[8];
- int max_level;
-};
-
-/* The port struct is Class:RW, driver:RO */
-struct asd_sas_port {
-/* private: */
- struct completion port_gone_completion;
-
- struct sas_discovery disc;
- struct domain_device *port_dev;
- spinlock_t dev_list_lock;
- struct list_head dev_list;
- struct list_head disco_list;
- struct list_head destroy_list;
- enum sas_linkrate linkrate;
-
- struct sas_work work;
-
-/* public: */
- int id;
-
- enum sas_class class;
- u8 sas_addr[SAS_ADDR_SIZE];
- u8 attached_sas_addr[SAS_ADDR_SIZE];
- enum sas_protocol iproto;
- enum sas_protocol tproto;
-
- enum sas_oob_mode oob_mode;
-
- spinlock_t phy_list_lock;
- struct list_head phy_list;
- int num_phys;
- u32 phy_mask;
-
- struct sas_ha_struct *ha;
-
- struct sas_port *port;
-
- void *lldd_port; /* not touched by the sas class code */
-};
-
-struct asd_sas_event {
- struct sas_work work;
- struct asd_sas_phy *phy;
-};
-
-static inline struct asd_sas_event *to_asd_sas_event(struct work_struct *work)
-{
- struct asd_sas_event *ev = container_of(work, typeof(*ev), work.work);
-
- return ev;
-}
-
-/* The phy pretty much is controlled by the LLDD.
- * The class only reads those fields.
- */
-struct asd_sas_phy {
-/* private: */
- struct asd_sas_event port_events[PORT_NUM_EVENTS];
- struct asd_sas_event phy_events[PHY_NUM_EVENTS];
-
- unsigned long port_events_pending;
- unsigned long phy_events_pending;
-
- int error;
-
- struct sas_phy *phy;
-
-/* public: */
- /* The following are class:RO, driver:R/W */
- int enabled; /* must be set */
-
- int id; /* must be set */
- enum sas_class class;
- enum sas_protocol iproto;
- enum sas_protocol tproto;
-
- enum sas_phy_type type;
- enum sas_phy_role role;
- enum sas_oob_mode oob_mode;
- enum sas_linkrate linkrate;
-
- u8 *sas_addr; /* must be set */
- u8 attached_sas_addr[SAS_ADDR_SIZE]; /* class:RO, driver: R/W */
-
- spinlock_t frame_rcvd_lock;
- u8 *frame_rcvd; /* must be set */
- int frame_rcvd_size;
-
- spinlock_t sas_prim_lock;
- u32 sas_prim;
-
- struct list_head port_phy_el; /* driver:RO */
- struct asd_sas_port *port; /* Class:RW, driver: RO */
-
- struct sas_ha_struct *ha; /* may be set; the class sets it anyway */
-
- void *lldd_phy; /* not touched by the sas_class_code */
-};
-
-struct scsi_core {
- struct Scsi_Host *shost;
-
- struct mutex task_queue_flush;
- spinlock_t task_queue_lock;
- struct list_head task_queue;
- int task_queue_size;
-
- struct task_struct *queue_thread;
-};
-
-struct sas_ha_event {
- struct sas_work work;
- struct sas_ha_struct *ha;
-};
-
-static inline struct sas_ha_event *to_sas_ha_event(struct work_struct *work)
-{
- struct sas_ha_event *ev = container_of(work, typeof(*ev), work.work);
-
- return ev;
-}
-
-enum sas_ha_state {
- SAS_HA_REGISTERED,
- SAS_HA_DRAINING,
- SAS_HA_ATA_EH_ACTIVE,
- SAS_HA_FROZEN,
-};
-
-struct sas_ha_struct {
-/* private: */
- struct sas_ha_event ha_events[HA_NUM_EVENTS];
- unsigned long pending;
-
- struct list_head defer_q; /* work queued while draining */
- struct mutex drain_mutex;
- unsigned long state;
- spinlock_t state_lock;
-
- struct mutex disco_mutex;
-
- struct scsi_core core;
-
-/* public: */
- char *sas_ha_name;
- struct device *dev; /* should be set */
- struct module *lldd_module; /* should be set */
-
- u8 *sas_addr; /* must be set */
- u8 hashed_sas_addr[HASHED_SAS_ADDR_SIZE];
-
- spinlock_t phy_port_lock;
- struct asd_sas_phy **sas_phy; /* array of valid pointers, must be set */
- struct asd_sas_port **sas_port; /* array of valid pointers, must be set */
- int num_phys; /* must be set, gt 0, static */
-
- /* The class calls this to send a task for execution. */
- int lldd_max_execute_num;
- int lldd_queue_size;
- int strict_wide_ports; /* both sas_addr and attached_sas_addr must match
- * their siblings when forming wide ports */
-
- /* LLDD calls these to notify the class of an event. */
- void (*notify_ha_event)(struct sas_ha_struct *, enum ha_event);
- void (*notify_port_event)(struct asd_sas_phy *, enum port_event);
- void (*notify_phy_event)(struct asd_sas_phy *, enum phy_event);
-
- void *lldd_ha; /* not touched by sas class code */
-
- struct list_head eh_done_q; /* complete via scsi_eh_flush_done_q */
- struct list_head eh_ata_q; /* scmds to promote from sas to ata eh */
-};
-
-#define SHOST_TO_SAS_HA(_shost) (*(struct sas_ha_struct **)(_shost)->hostdata)
-
-static inline struct domain_device *
-starget_to_domain_dev(struct scsi_target *starget) {
- return starget->hostdata;
-}
-
-static inline struct domain_device *
-sdev_to_domain_dev(struct scsi_device *sdev) {
- return starget_to_domain_dev(sdev->sdev_target);
-}
-
-static inline struct ata_device *sas_to_ata_dev(struct domain_device *dev)
-{
- return &dev->sata_dev.ap->link.device[0];
-}
-
-static inline struct domain_device *
-cmd_to_domain_dev(struct scsi_cmnd *cmd)
-{
- return sdev_to_domain_dev(cmd->device);
-}
-
-void sas_hash_addr(u8 *hashed, const u8 *sas_addr);
-
-/* Before calling a notify event, LLDD should use this function
- * when the link is severed (possibly from its tasklet).
- * The idea is that the Class only reads those, while the LLDD,
- * can R/W these (thus avoiding a race).
- */
-static inline void sas_phy_disconnected(struct asd_sas_phy *phy)
-{
- phy->oob_mode = OOB_NOT_CONNECTED;
- phy->linkrate = SAS_LINK_RATE_UNKNOWN;
-}
-
-static inline unsigned int to_sas_gpio_od(int device, int bit)
-{
- return 3 * device + bit;
-}
-
-static inline void sas_put_local_phy(struct sas_phy *phy)
-{
- put_device(&phy->dev);
-}
-
-#ifdef CONFIG_SCSI_SAS_HOST_SMP
-int try_test_sas_gpio_gp_bit(unsigned int od, u8 *data, u8 index, u8 count);
-#else
-static inline int try_test_sas_gpio_gp_bit(unsigned int od, u8 *data, u8 index, u8 count)
-{
- return -1;
-}
-#endif
-
-/* ---------- Tasks ---------- */
-/*
- service_response | SAS_TASK_COMPLETE | SAS_TASK_UNDELIVERED |
- exec_status | | |
- ---------------------+---------------------+-----------------------+
- SAM_... | X | |
- DEV_NO_RESPONSE | X | X |
- INTERRUPTED | X | |
- QUEUE_FULL | | X |
- DEVICE_UNKNOWN | | X |
- SG_ERR | | X |
- ---------------------+---------------------+-----------------------+
- */
-
-enum service_response {
- SAS_TASK_COMPLETE,
- SAS_TASK_UNDELIVERED = -1,
-};
-
-enum exec_status {
- /* The SAM_STAT_.. codes fit in the lower 6 bits, alias some of
- * them here to silence 'case value not in enumerated type' warnings
- */
- __SAM_STAT_CHECK_CONDITION = SAM_STAT_CHECK_CONDITION,
-
- SAS_DEV_NO_RESPONSE = 0x80,
- SAS_DATA_UNDERRUN,
- SAS_DATA_OVERRUN,
- SAS_INTERRUPTED,
- SAS_QUEUE_FULL,
- SAS_DEVICE_UNKNOWN,
- SAS_SG_ERR,
- SAS_OPEN_REJECT,
- SAS_OPEN_TO,
- SAS_PROTO_RESPONSE,
- SAS_PHY_DOWN,
- SAS_NAK_R_ERR,
- SAS_PENDING,
- SAS_ABORTED_TASK,
-};
-
-/* When a task finishes with a response, the LLDD examines the
- * response:
- * - For an ATA task task_status_struct::stat is set to
- * SAS_PROTO_RESPONSE, and the task_status_struct::buf is set to the
- * contents of struct ata_task_resp.
- * - For SSP tasks, if no data is present or status/TMF response
- * is valid, task_status_struct::stat is set. If data is present
- * (SENSE data), the LLDD copies up to SAS_STATUS_BUF_SIZE, sets
- * task_status_struct::buf_valid_size, and task_status_struct::stat is
- * set to SAM_CHECK_COND.
- *
- * "buf" has format SCSI Sense for SSP task, or struct ata_task_resp
- * for ATA task.
- *
- * "frame_len" is the total frame length, which could be more or less
- * than actually copied.
- *
- * Tasks ending with response, always set the residual field.
- */
-struct ata_task_resp {
- u16 frame_len;
- u8 ending_fis[ATA_RESP_FIS_SIZE]; /* dev to host or data-in */
-};
-
-#define SAS_STATUS_BUF_SIZE 96
-
-struct task_status_struct {
- enum service_response resp;
- enum exec_status stat;
- int buf_valid_size;
-
- u8 buf[SAS_STATUS_BUF_SIZE];
-
- u32 residual;
- enum sas_open_rej_reason open_rej_reason;
-};
-
-/* ATA and ATAPI task queuable to a SAS LLDD.
- */
-struct sas_ata_task {
- struct host_to_dev_fis fis;
- u8 atapi_packet[16]; /* 0 if not ATAPI task */
-
- u8 retry_count; /* hardware retry, should be > 0 */
-
- u8 dma_xfer:1; /* PIO:0 or DMA:1 */
- u8 use_ncq:1;
- u8 set_affil_pol:1;
- u8 stp_affil_pol:1;
-
- u8 device_control_reg_update:1;
-};
-
-struct sas_smp_task {
- struct scatterlist smp_req;
- struct scatterlist smp_resp;
-};
-
-enum task_attribute {
- TASK_ATTR_SIMPLE = 0,
- TASK_ATTR_HOQ = 1,
- TASK_ATTR_ORDERED= 2,
- TASK_ATTR_ACA = 4,
-};
-
-struct sas_ssp_task {
- u8 retry_count; /* hardware retry, should be > 0 */
-
- u8 LUN[8];
- u8 enable_first_burst:1;
- enum task_attribute task_attr;
- u8 task_prio;
- u8 cdb[16];
-};
-
-struct sas_task {
- struct domain_device *dev;
- struct list_head list;
-
- spinlock_t task_state_lock;
- unsigned task_state_flags;
-
- enum sas_protocol task_proto;
-
- /* Used by the discovery code. */
- struct timer_list timer;
- struct completion completion;
-
- union {
- struct sas_ata_task ata_task;
- struct sas_smp_task smp_task;
- struct sas_ssp_task ssp_task;
- };
-
- struct scatterlist *scatter;
- int num_scatter;
- u32 total_xfer_len;
- u8 data_dir:2; /* Use PCI_DMA_... */
-
- struct task_status_struct task_status;
- void (*task_done)(struct sas_task *);
-
- void *lldd_task; /* for use by LLDDs */
- void *uldd_task;
-
- struct work_struct abort_work;
-};
-
-#define SAS_TASK_STATE_PENDING 1
-#define SAS_TASK_STATE_DONE 2
-#define SAS_TASK_STATE_ABORTED 4
-#define SAS_TASK_NEED_DEV_RESET 8
-#define SAS_TASK_AT_INITIATOR 16
-
-extern struct sas_task *sas_alloc_task(gfp_t flags);
-extern void sas_free_task(struct sas_task *task);
-
-struct sas_domain_function_template {
- /* The class calls these to notify the LLDD of an event. */
- void (*lldd_port_formed)(struct asd_sas_phy *);
- void (*lldd_port_deformed)(struct asd_sas_phy *);
-
- /* The class calls these when a device is found or gone. */
- int (*lldd_dev_found)(struct domain_device *);
- void (*lldd_dev_gone)(struct domain_device *);
-
- int (*lldd_execute_task)(struct sas_task *, int num,
- gfp_t gfp_flags);
-
- /* Task Management Functions. Must be called from process context. */
- int (*lldd_abort_task)(struct sas_task *);
- int (*lldd_abort_task_set)(struct domain_device *, u8 *lun);
- int (*lldd_clear_aca)(struct domain_device *, u8 *lun);
- int (*lldd_clear_task_set)(struct domain_device *, u8 *lun);
- int (*lldd_I_T_nexus_reset)(struct domain_device *);
- int (*lldd_ata_check_ready)(struct domain_device *);
- void (*lldd_ata_set_dmamode)(struct domain_device *);
- int (*lldd_lu_reset)(struct domain_device *, u8 *lun);
- int (*lldd_query_task)(struct sas_task *);
-
- /* Port and Adapter management */
- int (*lldd_clear_nexus_port)(struct asd_sas_port *);
- int (*lldd_clear_nexus_ha)(struct sas_ha_struct *);
-
- /* Phy management */
- int (*lldd_control_phy)(struct asd_sas_phy *, enum phy_func, void *);
-
- /* GPIO support */
- int (*lldd_write_gpio)(struct sas_ha_struct *, u8 reg_type,
- u8 reg_index, u8 reg_count, u8 *write_data);
-};
-
-extern int sas_register_ha(struct sas_ha_struct *);
-extern int sas_unregister_ha(struct sas_ha_struct *);
-
-int sas_set_phy_speed(struct sas_phy *phy,
- struct sas_phy_linkrates *rates);
-int sas_phy_reset(struct sas_phy *phy, int hard_reset);
-int sas_queue_up(struct sas_task *task);
-extern int sas_queuecommand(struct Scsi_Host * ,struct scsi_cmnd *);
-extern int sas_target_alloc(struct scsi_target *);
-extern int sas_slave_configure(struct scsi_device *);
-extern int sas_change_queue_depth(struct scsi_device *, int new_depth,
- int reason);
-extern int sas_change_queue_type(struct scsi_device *, int qt);
-extern int sas_bios_param(struct scsi_device *,
- struct block_device *,
- sector_t capacity, int *hsc);
-extern struct scsi_transport_template *
-sas_domain_attach_transport(struct sas_domain_function_template *);
-extern void sas_domain_release_transport(struct scsi_transport_template *);
-
-int sas_discover_root_expander(struct domain_device *);
-
-void sas_init_ex_attr(void);
-
-int sas_ex_revalidate_domain(struct domain_device *);
-
-void sas_unregister_domain_devices(struct asd_sas_port *port, int gone);
-void sas_init_disc(struct sas_discovery *disc, struct asd_sas_port *);
-int sas_discover_event(struct asd_sas_port *, enum discover_event ev);
-
-int sas_discover_sata(struct domain_device *);
-int sas_discover_end_dev(struct domain_device *);
-
-void sas_unregister_dev(struct asd_sas_port *port, struct domain_device *);
-
-void sas_init_dev(struct domain_device *);
-
-void sas_task_abort(struct sas_task *);
-int sas_eh_device_reset_handler(struct scsi_cmnd *cmd);
-int sas_eh_bus_reset_handler(struct scsi_cmnd *cmd);
-
-extern void sas_target_destroy(struct scsi_target *);
-extern int sas_slave_alloc(struct scsi_device *);
-extern int sas_ioctl(struct scsi_device *sdev, int cmd, void __user *arg);
-extern int sas_drain_work(struct sas_ha_struct *ha);
-
-extern int sas_smp_handler(struct Scsi_Host *shost, struct sas_rphy *rphy,
- struct request *req);
-
-extern void sas_ssp_task_response(struct device *dev, struct sas_task *task,
- struct ssp_response_iu *iu);
-struct sas_phy *sas_get_local_phy(struct domain_device *dev);
-
-int sas_request_addr(struct Scsi_Host *shost, u8 *addr);
-
-#endif /* _SASLIB_H_ */
diff --git a/ANDROID_3.4.5/include/scsi/libsrp.h b/ANDROID_3.4.5/include/scsi/libsrp.h
deleted file mode 100644
index f4105c91..00000000
--- a/ANDROID_3.4.5/include/scsi/libsrp.h
+++ /dev/null
@@ -1,78 +0,0 @@
-#ifndef __LIBSRP_H__
-#define __LIBSRP_H__
-
-#include <linux/list.h>
-#include <linux/kfifo.h>
-#include <scsi/scsi_cmnd.h>
-#include <scsi/scsi_host.h>
-#include <scsi/srp.h>
-
-enum iue_flags {
- V_DIOVER,
- V_WRITE,
- V_LINKED,
- V_FLYING,
-};
-
-struct srp_buf {
- dma_addr_t dma;
- void *buf;
-};
-
-struct srp_queue {
- void *pool;
- void *items;
- struct kfifo queue;
- spinlock_t lock;
-};
-
-struct srp_target {
- struct Scsi_Host *shost;
- struct device *dev;
-
- spinlock_t lock;
- struct list_head cmd_queue;
-
- size_t srp_iu_size;
- struct srp_queue iu_queue;
- size_t rx_ring_size;
- struct srp_buf **rx_ring;
-
- void *ldata;
-};
-
-struct iu_entry {
- struct srp_target *target;
-
- struct list_head ilist;
- dma_addr_t remote_token;
- unsigned long flags;
-
- struct srp_buf *sbuf;
-};
-
-typedef int (srp_rdma_t)(struct scsi_cmnd *, struct scatterlist *, int,
- struct srp_direct_buf *, int,
- enum dma_data_direction, unsigned int);
-extern int srp_target_alloc(struct srp_target *, struct device *, size_t, size_t);
-extern void srp_target_free(struct srp_target *);
-
-extern struct iu_entry *srp_iu_get(struct srp_target *);
-extern void srp_iu_put(struct iu_entry *);
-
-extern int srp_cmd_queue(struct Scsi_Host *, struct srp_cmd *, void *, u64, u64);
-extern int srp_transfer_data(struct scsi_cmnd *, struct srp_cmd *,
- srp_rdma_t, int, int);
-
-
-static inline struct srp_target *host_to_srp_target(struct Scsi_Host *host)
-{
- return (struct srp_target *) host->hostdata;
-}
-
-static inline int srp_cmd_direction(struct srp_cmd *cmd)
-{
- return (cmd->buf_fmt >> 4) ? DMA_TO_DEVICE : DMA_FROM_DEVICE;
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/scsi/osd_attributes.h b/ANDROID_3.4.5/include/scsi/osd_attributes.h
deleted file mode 100644
index 56e920ad..00000000
--- a/ANDROID_3.4.5/include/scsi/osd_attributes.h
+++ /dev/null
@@ -1,397 +0,0 @@
-#ifndef __OSD_ATTRIBUTES_H__
-#define __OSD_ATTRIBUTES_H__
-
-#include "osd_protocol.h"
-
-/*
- * Contains types and constants that define attribute pages and attribute
- * numbers and their data types.
- */
-
-#define ATTR_SET(pg, id, l, ptr) \
- { .attr_page = pg, .attr_id = id, .len = l, .val_ptr = ptr }
-
-#define ATTR_DEF(pg, id, l) ATTR_SET(pg, id, l, NULL)
-
-/* osd-r10 4.7.3 Attributes pages */
-enum {
- OSD_APAGE_OBJECT_FIRST = 0x0,
- OSD_APAGE_OBJECT_DIRECTORY = 0,
- OSD_APAGE_OBJECT_INFORMATION = 1,
- OSD_APAGE_OBJECT_QUOTAS = 2,
- OSD_APAGE_OBJECT_TIMESTAMP = 3,
- OSD_APAGE_OBJECT_COLLECTIONS = 4,
- OSD_APAGE_OBJECT_SECURITY = 5,
- OSD_APAGE_OBJECT_LAST = 0x2fffffff,
-
- OSD_APAGE_PARTITION_FIRST = 0x30000000,
- OSD_APAGE_PARTITION_DIRECTORY = OSD_APAGE_PARTITION_FIRST + 0,
- OSD_APAGE_PARTITION_INFORMATION = OSD_APAGE_PARTITION_FIRST + 1,
- OSD_APAGE_PARTITION_QUOTAS = OSD_APAGE_PARTITION_FIRST + 2,
- OSD_APAGE_PARTITION_TIMESTAMP = OSD_APAGE_PARTITION_FIRST + 3,
- OSD_APAGE_PARTITION_ATTR_ACCESS = OSD_APAGE_PARTITION_FIRST + 4,
- OSD_APAGE_PARTITION_SECURITY = OSD_APAGE_PARTITION_FIRST + 5,
- OSD_APAGE_PARTITION_LAST = 0x5FFFFFFF,
-
- OSD_APAGE_COLLECTION_FIRST = 0x60000000,
- OSD_APAGE_COLLECTION_DIRECTORY = OSD_APAGE_COLLECTION_FIRST + 0,
- OSD_APAGE_COLLECTION_INFORMATION = OSD_APAGE_COLLECTION_FIRST + 1,
- OSD_APAGE_COLLECTION_TIMESTAMP = OSD_APAGE_COLLECTION_FIRST + 3,
- OSD_APAGE_COLLECTION_SECURITY = OSD_APAGE_COLLECTION_FIRST + 5,
- OSD_APAGE_COLLECTION_LAST = 0x8FFFFFFF,
-
- OSD_APAGE_ROOT_FIRST = 0x90000000,
- OSD_APAGE_ROOT_DIRECTORY = OSD_APAGE_ROOT_FIRST + 0,
- OSD_APAGE_ROOT_INFORMATION = OSD_APAGE_ROOT_FIRST + 1,
- OSD_APAGE_ROOT_QUOTAS = OSD_APAGE_ROOT_FIRST + 2,
- OSD_APAGE_ROOT_TIMESTAMP = OSD_APAGE_ROOT_FIRST + 3,
- OSD_APAGE_ROOT_SECURITY = OSD_APAGE_ROOT_FIRST + 5,
- OSD_APAGE_ROOT_LAST = 0xBFFFFFFF,
-
- OSD_APAGE_RESERVED_TYPE_FIRST = 0xC0000000,
- OSD_APAGE_RESERVED_TYPE_LAST = 0xEFFFFFFF,
-
- OSD_APAGE_COMMON_FIRST = 0xF0000000,
- OSD_APAGE_COMMON_LAST = 0xFFFFFFFD,
-
- OSD_APAGE_CURRENT_COMMAND = 0xFFFFFFFE,
-
- OSD_APAGE_REQUEST_ALL = 0xFFFFFFFF,
-};
-
-/* subcategories of attr pages within each range above */
-enum {
- OSD_APAGE_STD_FIRST = 0x0,
- OSD_APAGE_STD_DIRECTORY = 0,
- OSD_APAGE_STD_INFORMATION = 1,
- OSD_APAGE_STD_QUOTAS = 2,
- OSD_APAGE_STD_TIMESTAMP = 3,
- OSD_APAGE_STD_COLLECTIONS = 4,
- OSD_APAGE_STD_POLICY_SECURITY = 5,
- OSD_APAGE_STD_LAST = 0x0000007F,
-
- OSD_APAGE_RESERVED_FIRST = 0x00000080,
- OSD_APAGE_RESERVED_LAST = 0x00007FFF,
-
- OSD_APAGE_OTHER_STD_FIRST = 0x00008000,
- OSD_APAGE_OTHER_STD_LAST = 0x0000EFFF,
-
- OSD_APAGE_PUBLIC_FIRST = 0x0000F000,
- OSD_APAGE_PUBLIC_LAST = 0x0000FFFF,
-
- OSD_APAGE_APP_DEFINED_FIRST = 0x00010000,
- OSD_APAGE_APP_DEFINED_LAST = 0x1FFFFFFF,
-
- OSD_APAGE_VENDOR_SPECIFIC_FIRST = 0x20000000,
- OSD_APAGE_VENDOR_SPECIFIC_LAST = 0x2FFFFFFF,
-};
-
-enum {
- OSD_ATTR_PAGE_IDENTIFICATION = 0, /* in all pages 40 bytes */
-};
-
-struct page_identification {
- u8 vendor_identification[8];
- u8 page_identification[32];
-} __packed;
-
-struct osd_attr_page_header {
- __be32 page_number;
- __be32 page_length;
-} __packed;
-
-/* 7.1.2.8 Root Information attributes page (OSD_APAGE_ROOT_INFORMATION) */
-enum {
- OSD_ATTR_RI_OSD_SYSTEM_ID = 0x3, /* 20 */
- OSD_ATTR_RI_VENDOR_IDENTIFICATION = 0x4, /* 8 */
- OSD_ATTR_RI_PRODUCT_IDENTIFICATION = 0x5, /* 16 */
- OSD_ATTR_RI_PRODUCT_MODEL = 0x6, /* 32 */
- OSD_ATTR_RI_PRODUCT_REVISION_LEVEL = 0x7, /* 4 */
- OSD_ATTR_RI_PRODUCT_SERIAL_NUMBER = 0x8, /* variable */
- OSD_ATTR_RI_OSD_NAME = 0x9, /* variable */
- OSD_ATTR_RI_MAX_CDB_CONTINUATION_LEN = 0xA, /* 4 */
- OSD_ATTR_RI_TOTAL_CAPACITY = 0x80, /* 8 */
- OSD_ATTR_RI_USED_CAPACITY = 0x81, /* 8 */
- OSD_ATTR_RI_NUMBER_OF_PARTITIONS = 0xC0, /* 8 */
- OSD_ATTR_RI_CLOCK = 0x100, /* 6 */
- OARI_DEFAULT_ISOLATION_METHOD = 0X110, /* 1 */
- OARI_SUPPORTED_ISOLATION_METHODS = 0X111, /* 32 */
-
- OARI_DATA_ATOMICITY_GUARANTEE = 0X120, /* 8 */
- OARI_DATA_ATOMICITY_ALIGNMENT = 0X121, /* 8 */
- OARI_ATTRIBUTES_ATOMICITY_GUARANTEE = 0X122, /* 8 */
- OARI_DATA_ATTRIBUTES_ATOMICITY_MULTIPLIER = 0X123, /* 1 */
-
- OARI_MAXIMUM_SNAPSHOTS_COUNT = 0X1C1, /* 0 or 4 */
- OARI_MAXIMUM_CLONES_COUNT = 0X1C2, /* 0 or 4 */
- OARI_MAXIMUM_BRANCH_DEPTH = 0X1CC, /* 0 or 4 */
- OARI_SUPPORTED_OBJECT_DUPLICATION_METHOD_FIRST = 0X200, /* 0 or 4 */
- OARI_SUPPORTED_OBJECT_DUPLICATION_METHOD_LAST = 0X2ff, /* 0 or 4 */
- OARI_SUPPORTED_TIME_OF_DUPLICATION_METHOD_FIRST = 0X300, /* 0 or 4 */
- OARI_SUPPORTED_TIME_OF_DUPLICATION_METHOD_LAST = 0X30F, /* 0 or 4 */
- OARI_SUPPORT_FOR_DUPLICATED_OBJECT_FREEZING = 0X310, /* 0 or 4 */
- OARI_SUPPORT_FOR_SNAPSHOT_REFRESHING = 0X311, /* 0 or 1 */
- OARI_SUPPORTED_CDB_CONTINUATION_DESC_TYPE_FIRST = 0X7000001,/* 0 or 4 */
- OARI_SUPPORTED_CDB_CONTINUATION_DESC_TYPE_LAST = 0X700FFFF,/* 0 or 4 */
-};
-/* Root_Information_attributes_page does not have a get_page structure */
-
-/* 7.1.2.9 Partition Information attributes page
- * (OSD_APAGE_PARTITION_INFORMATION)
- */
-enum {
- OSD_ATTR_PI_PARTITION_ID = 0x1, /* 8 */
- OSD_ATTR_PI_USERNAME = 0x9, /* variable */
- OSD_ATTR_PI_USED_CAPACITY = 0x81, /* 8 */
- OSD_ATTR_PI_USED_CAPACITY_INCREMENT = 0x84, /* 0 or 8 */
- OSD_ATTR_PI_NUMBER_OF_OBJECTS = 0xC1, /* 8 */
-
- OSD_ATTR_PI_ACTUAL_DATA_SPACE = 0xD1, /* 0 or 8 */
- OSD_ATTR_PI_RESERVED_DATA_SPACE = 0xD2, /* 0 or 8 */
- OSD_ATTR_PI_DEFAULT_SNAPSHOT_DUPLICATION_METHOD = 0x200,/* 0 or 4 */
- OSD_ATTR_PI_DEFAULT_CLONE_DUPLICATION_METHOD = 0x201,/* 0 or 4 */
- OSD_ATTR_PI_DEFAULT_SP_TIME_OF_DUPLICATION = 0x300,/* 0 or 4 */
- OSD_ATTR_PI_DEFAULT_CLONE_TIME_OF_DUPLICATION = 0x301,/* 0 or 4 */
-};
-/* Partition Information attributes page does not have a get_page structure */
-
-/* 7.1.2.10 Collection Information attributes page
- * (OSD_APAGE_COLLECTION_INFORMATION)
- */
-enum {
- OSD_ATTR_CI_PARTITION_ID = 0x1, /* 8 */
- OSD_ATTR_CI_COLLECTION_OBJECT_ID = 0x2, /* 8 */
- OSD_ATTR_CI_USERNAME = 0x9, /* variable */
- OSD_ATTR_CI_COLLECTION_TYPE = 0xA, /* 1 */
- OSD_ATTR_CI_USED_CAPACITY = 0x81, /* 8 */
-};
-/* Collection Information attributes page does not have a get_page structure */
-
-/* 7.1.2.11 User Object Information attributes page
- * (OSD_APAGE_OBJECT_INFORMATION)
- */
-enum {
- OSD_ATTR_OI_PARTITION_ID = 0x1, /* 8 */
- OSD_ATTR_OI_OBJECT_ID = 0x2, /* 8 */
- OSD_ATTR_OI_USERNAME = 0x9, /* variable */
- OSD_ATTR_OI_USED_CAPACITY = 0x81, /* 8 */
- OSD_ATTR_OI_LOGICAL_LENGTH = 0x82, /* 8 */
- SD_ATTR_OI_ACTUAL_DATA_SPACE = 0XD1, /* 0 OR 8 */
- SD_ATTR_OI_RESERVED_DATA_SPACE = 0XD2, /* 0 OR 8 */
-};
-/* Object Information attributes page does not have a get_page structure */
-
-/* 7.1.2.12 Root Quotas attributes page (OSD_APAGE_ROOT_QUOTAS) */
-enum {
- OSD_ATTR_RQ_DEFAULT_MAXIMUM_USER_OBJECT_LENGTH = 0x1, /* 8 */
- OSD_ATTR_RQ_PARTITION_CAPACITY_QUOTA = 0x10001, /* 8 */
- OSD_ATTR_RQ_PARTITION_OBJECT_COUNT = 0x10002, /* 8 */
- OSD_ATTR_RQ_PARTITION_COLLECTIONS_PER_USER_OBJECT = 0x10081, /* 4 */
- OSD_ATTR_RQ_PARTITION_COUNT = 0x20002, /* 8 */
-};
-
-struct Root_Quotas_attributes_page {
- struct osd_attr_page_header hdr; /* id=R+2, size=0x24 */
- __be64 default_maximum_user_object_length;
- __be64 partition_capacity_quota;
- __be64 partition_object_count;
- __be64 partition_collections_per_user_object;
- __be64 partition_count;
-} __packed;
-
-/* 7.1.2.13 Partition Quotas attributes page (OSD_APAGE_PARTITION_QUOTAS)*/
-enum {
- OSD_ATTR_PQ_DEFAULT_MAXIMUM_USER_OBJECT_LENGTH = 0x1, /* 8 */
- OSD_ATTR_PQ_CAPACITY_QUOTA = 0x10001, /* 8 */
- OSD_ATTR_PQ_OBJECT_COUNT = 0x10002, /* 8 */
- OSD_ATTR_PQ_COLLECTIONS_PER_USER_OBJECT = 0x10081, /* 4 */
-};
-
-struct Partition_Quotas_attributes_page {
- struct osd_attr_page_header hdr; /* id=P+2, size=0x1C */
- __be64 default_maximum_user_object_length;
- __be64 capacity_quota;
- __be64 object_count;
- __be64 collections_per_user_object;
-} __packed;
-
-/* 7.1.2.14 User Object Quotas attributes page (OSD_APAGE_OBJECT_QUOTAS) */
-enum {
- OSD_ATTR_OQ_MAXIMUM_LENGTH = 0x1, /* 8 */
-};
-
-struct Object_Quotas_attributes_page {
- struct osd_attr_page_header hdr; /* id=U+2, size=0x8 */
- __be64 maximum_length;
-} __packed;
-
-/* 7.1.2.15 Root Timestamps attributes page (OSD_APAGE_ROOT_TIMESTAMP) */
-enum {
- OSD_ATTR_RT_ATTRIBUTES_ACCESSED_TIME = 0x2, /* 6 */
- OSD_ATTR_RT_ATTRIBUTES_MODIFIED_TIME = 0x3, /* 6 */
- OSD_ATTR_RT_TIMESTAMP_BYPASS = 0xFFFFFFFE, /* 1 */
-};
-
-struct root_timestamps_attributes_page {
- struct osd_attr_page_header hdr; /* id=R+3, size=0xD */
- struct osd_timestamp attributes_accessed_time;
- struct osd_timestamp attributes_modified_time;
- u8 timestamp_bypass;
-} __packed;
-
-/* 7.1.2.16 Partition Timestamps attributes page
- * (OSD_APAGE_PARTITION_TIMESTAMP)
- */
-enum {
- OSD_ATTR_PT_CREATED_TIME = 0x1, /* 6 */
- OSD_ATTR_PT_ATTRIBUTES_ACCESSED_TIME = 0x2, /* 6 */
- OSD_ATTR_PT_ATTRIBUTES_MODIFIED_TIME = 0x3, /* 6 */
- OSD_ATTR_PT_DATA_ACCESSED_TIME = 0x4, /* 6 */
- OSD_ATTR_PT_DATA_MODIFIED_TIME = 0x5, /* 6 */
- OSD_ATTR_PT_TIMESTAMP_BYPASS = 0xFFFFFFFE, /* 1 */
-};
-
-struct partition_timestamps_attributes_page {
- struct osd_attr_page_header hdr; /* id=P+3, size=0x1F */
- struct osd_timestamp created_time;
- struct osd_timestamp attributes_accessed_time;
- struct osd_timestamp attributes_modified_time;
- struct osd_timestamp data_accessed_time;
- struct osd_timestamp data_modified_time;
- u8 timestamp_bypass;
-} __packed;
-
-/* 7.1.2.17/18 Collection/Object Timestamps attributes page
- * (OSD_APAGE_COLLECTION_TIMESTAMP/OSD_APAGE_OBJECT_TIMESTAMP)
- */
-enum {
- OSD_ATTR_OT_CREATED_TIME = 0x1, /* 6 */
- OSD_ATTR_OT_ATTRIBUTES_ACCESSED_TIME = 0x2, /* 6 */
- OSD_ATTR_OT_ATTRIBUTES_MODIFIED_TIME = 0x3, /* 6 */
- OSD_ATTR_OT_DATA_ACCESSED_TIME = 0x4, /* 6 */
- OSD_ATTR_OT_DATA_MODIFIED_TIME = 0x5, /* 6 */
-};
-
-/* same for collection */
-struct object_timestamps_attributes_page {
- struct osd_attr_page_header hdr; /* id=C+3/3, size=0x1E */
- struct osd_timestamp created_time;
- struct osd_timestamp attributes_accessed_time;
- struct osd_timestamp attributes_modified_time;
- struct osd_timestamp data_accessed_time;
- struct osd_timestamp data_modified_time;
-} __packed;
-
-/* OSD2r05: 7.1.3.19 Attributes Access attributes page
- * (OSD_APAGE_PARTITION_ATTR_ACCESS)
- *
- * each attribute is of the form below. Total array length is deduced
- * from the attribute's length
- * (See allowed_attributes_access of the struct osd_cap_object_descriptor)
- */
-struct attributes_access_attr {
- struct osd_attributes_list_attrid attr_list[0];
-} __packed;
-
-/* OSD2r05: 7.1.2.21 Collections attributes page */
-/* TBD */
-
-/* 7.1.2.20 Root Policy/Security attributes page (OSD_APAGE_ROOT_SECURITY) */
-enum {
- OSD_ATTR_RS_DEFAULT_SECURITY_METHOD = 0x1, /* 1 */
- OSD_ATTR_RS_OLDEST_VALID_NONCE_LIMIT = 0x2, /* 6 */
- OSD_ATTR_RS_NEWEST_VALID_NONCE_LIMIT = 0x3, /* 6 */
- OSD_ATTR_RS_PARTITION_DEFAULT_SECURITY_METHOD = 0x6, /* 1 */
- OSD_ATTR_RS_SUPPORTED_SECURITY_METHODS = 0x7, /* 2 */
- OSD_ATTR_RS_ADJUSTABLE_CLOCK = 0x9, /* 6 */
- OSD_ATTR_RS_MASTER_KEY_IDENTIFIER = 0x7FFD, /* 0 or 7 */
- OSD_ATTR_RS_ROOT_KEY_IDENTIFIER = 0x7FFE, /* 0 or 7 */
- OSD_ATTR_RS_SUPPORTED_INTEGRITY_ALGORITHM_0 = 0x80000000,/* 1,(x16)*/
- OSD_ATTR_RS_SUPPORTED_DH_GROUP_0 = 0x80000010,/* 1,(x16)*/
-};
-
-struct root_security_attributes_page {
- struct osd_attr_page_header hdr; /* id=R+5, size=0x3F */
- u8 default_security_method;
- u8 partition_default_security_method;
- __be16 supported_security_methods;
- u8 mki_valid_rki_valid;
- struct osd_timestamp oldest_valid_nonce_limit;
- struct osd_timestamp newest_valid_nonce_limit;
- struct osd_timestamp adjustable_clock;
- u8 master_key_identifier[32-25];
- u8 root_key_identifier[39-32];
- u8 supported_integrity_algorithm[16];
- u8 supported_dh_group[16];
-} __packed;
-
-/* 7.1.2.21 Partition Policy/Security attributes page
- * (OSD_APAGE_PARTITION_SECURITY)
- */
-enum {
- OSD_ATTR_PS_DEFAULT_SECURITY_METHOD = 0x1, /* 1 */
- OSD_ATTR_PS_OLDEST_VALID_NONCE = 0x2, /* 6 */
- OSD_ATTR_PS_NEWEST_VALID_NONCE = 0x3, /* 6 */
- OSD_ATTR_PS_REQUEST_NONCE_LIST_DEPTH = 0x4, /* 2 */
- OSD_ATTR_PS_FROZEN_WORKING_KEY_BIT_MASK = 0x5, /* 2 */
- OSD_ATTR_PS_PARTITION_KEY_IDENTIFIER = 0x7FFF, /* 0 or 7 */
- OSD_ATTR_PS_WORKING_KEY_IDENTIFIER_FIRST = 0x8000, /* 0 or 7 */
- OSD_ATTR_PS_WORKING_KEY_IDENTIFIER_LAST = 0x800F, /* 0 or 7 */
- OSD_ATTR_PS_POLICY_ACCESS_TAG = 0x40000001, /* 4 */
- OSD_ATTR_PS_USER_OBJECT_POLICY_ACCESS_TAG = 0x40000002, /* 4 */
-};
-
-struct partition_security_attributes_page {
- struct osd_attr_page_header hdr; /* id=p+5, size=0x8f */
- u8 reserved[3];
- u8 default_security_method;
- struct osd_timestamp oldest_valid_nonce;
- struct osd_timestamp newest_valid_nonce;
- __be16 request_nonce_list_depth;
- __be16 frozen_working_key_bit_mask;
- __be32 policy_access_tag;
- __be32 user_object_policy_access_tag;
- u8 pki_valid;
- __be16 wki_00_0f_vld;
- struct osd_key_identifier partition_key_identifier;
- struct osd_key_identifier working_key_identifiers[16];
-} __packed;
-
-/* 7.1.2.22/23 Collection/Object Policy-Security attributes page
- * (OSD_APAGE_COLLECTION_SECURITY/OSD_APAGE_OBJECT_SECURITY)
- */
-enum {
- OSD_ATTR_OS_POLICY_ACCESS_TAG = 0x40000001, /* 4 */
-};
-
-struct object_security_attributes_page {
- struct osd_attr_page_header hdr; /* id=C+5/5, size=4 */
- __be32 policy_access_tag;
-} __packed;
-
-/* OSD2r05: 7.1.3.31 Current Command attributes page
- * (OSD_APAGE_CURRENT_COMMAND)
- */
-enum {
- OSD_ATTR_CC_RESPONSE_INTEGRITY_CHECK_VALUE = 0x1, /* 32 */
- OSD_ATTR_CC_OBJECT_TYPE = 0x2, /* 1 */
- OSD_ATTR_CC_PARTITION_ID = 0x3, /* 8 */
- OSD_ATTR_CC_OBJECT_ID = 0x4, /* 8 */
- OSD_ATTR_CC_STARTING_BYTE_ADDRESS_OF_APPEND = 0x5, /* 8 */
- OSD_ATTR_CC_CHANGE_IN_USED_CAPACITY = 0x6, /* 8 */
-};
-
-/*TBD: osdv1_current_command_attributes_page */
-
-struct osdv2_current_command_attributes_page {
- struct osd_attr_page_header hdr; /* id=0xFFFFFFFE, size=0x44 */
- u8 response_integrity_check_value[OSD_CRYPTO_KEYID_SIZE];
- u8 object_type;
- u8 reserved[3];
- __be64 partition_id;
- __be64 object_id;
- __be64 starting_byte_address_of_append;
- __be64 change_in_used_capacity;
-};
-
-#endif /*ndef __OSD_ATTRIBUTES_H__*/
diff --git a/ANDROID_3.4.5/include/scsi/osd_initiator.h b/ANDROID_3.4.5/include/scsi/osd_initiator.h
deleted file mode 100644
index 572fb549..00000000
--- a/ANDROID_3.4.5/include/scsi/osd_initiator.h
+++ /dev/null
@@ -1,515 +0,0 @@
-/*
- * osd_initiator.h - OSD initiator API definition
- *
- * Copyright (C) 2008 Panasas Inc. All rights reserved.
- *
- * Authors:
- * Boaz Harrosh <bharrosh@panasas.com>
- * Benny Halevy <bhalevy@panasas.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
- *
- */
-#ifndef __OSD_INITIATOR_H__
-#define __OSD_INITIATOR_H__
-
-#include "osd_protocol.h"
-#include "osd_types.h"
-
-#include <linux/blkdev.h>
-#include <scsi/scsi_device.h>
-
-/* Note: "NI" in comments below means "Not Implemented yet" */
-
-/* Configure of code:
- * #undef if you *don't* want OSD v1 support in runtime.
- * If #defined the initiator will dynamically configure to encode OSD v1
- * CDB's if the target is detected to be OSD v1 only.
- * OSD v2 only commands, options, and attributes will be ignored if target
- * is v1 only.
- * If #defined will result in bigger/slower code (OK Slower maybe not)
- * Q: Should this be CONFIG_SCSI_OSD_VER1_SUPPORT and set from Kconfig?
- */
-#define OSD_VER1_SUPPORT y
-
-enum osd_std_version {
- OSD_VER_NONE = 0,
- OSD_VER1 = 1,
- OSD_VER2 = 2,
-};
-
-/*
- * Object-based Storage Device.
- * This object represents an OSD device.
- * It is not a full linux device in any way. It is only
- * a place to hang resources associated with a Linux
- * request Q and some default properties.
- */
-struct osd_dev {
- struct scsi_device *scsi_device;
- unsigned def_timeout;
-
-#ifdef OSD_VER1_SUPPORT
- enum osd_std_version version;
-#endif
-};
-
-/* Unique Identification of an OSD device */
-struct osd_dev_info {
- unsigned systemid_len;
- u8 systemid[OSD_SYSTEMID_LEN];
- unsigned osdname_len;
- u8 *osdname;
-};
-
-/* Retrieve/return osd_dev(s) for use by Kernel clients
- * Use IS_ERR/ERR_PTR on returned "osd_dev *".
- */
-struct osd_dev *osduld_path_lookup(const char *dev_name);
-struct osd_dev *osduld_info_lookup(const struct osd_dev_info *odi);
-void osduld_put_device(struct osd_dev *od);
-
-const struct osd_dev_info *osduld_device_info(struct osd_dev *od);
-bool osduld_device_same(struct osd_dev *od, const struct osd_dev_info *odi);
-
-/* Add/remove test ioctls from external modules */
-typedef int (do_test_fn)(struct osd_dev *od, unsigned cmd, unsigned long arg);
-int osduld_register_test(unsigned ioctl, do_test_fn *do_test);
-void osduld_unregister_test(unsigned ioctl);
-
-/* These are called by uld at probe time */
-void osd_dev_init(struct osd_dev *od, struct scsi_device *scsi_device);
-void osd_dev_fini(struct osd_dev *od);
-
-/**
- * osd_auto_detect_ver - Detect the OSD version, return Unique Identification
- *
- * @od: OSD target lun handle
- * @caps: Capabilities authorizing OSD root read attributes access
- * @odi: Retrieved information uniquely identifying the osd target lun
- * Note: odi->osdname must be kfreed by caller.
- *
- * Auto detects the OSD version of the OSD target and sets the @od
- * accordingly. Meanwhile also returns the "system id" and "osd name" root
- * attributes which uniquely identify the OSD target. This member is usually
- * called by the ULD. ULD users should call osduld_device_info().
- * This rutine allocates osd requests and memory at GFP_KERNEL level and might
- * sleep.
- */
-int osd_auto_detect_ver(struct osd_dev *od,
- void *caps, struct osd_dev_info *odi);
-
-static inline struct request_queue *osd_request_queue(struct osd_dev *od)
-{
- return od->scsi_device->request_queue;
-}
-
-/* we might want to use function vector in the future */
-static inline void osd_dev_set_ver(struct osd_dev *od, enum osd_std_version v)
-{
-#ifdef OSD_VER1_SUPPORT
- od->version = v;
-#endif
-}
-
-static inline bool osd_dev_is_ver1(struct osd_dev *od)
-{
-#ifdef OSD_VER1_SUPPORT
- return od->version == OSD_VER1;
-#else
- return false;
-#endif
-}
-
-struct osd_request;
-typedef void (osd_req_done_fn)(struct osd_request *or, void *private);
-
-struct osd_request {
- struct osd_cdb cdb;
- struct osd_data_out_integrity_info out_data_integ;
- struct osd_data_in_integrity_info in_data_integ;
-
- struct osd_dev *osd_dev;
- struct request *request;
-
- struct _osd_req_data_segment {
- void *buff;
- unsigned alloc_size; /* 0 here means: don't call kfree */
- unsigned total_bytes;
- } cdb_cont, set_attr, enc_get_attr, get_attr;
-
- struct _osd_io_info {
- struct bio *bio;
- u64 total_bytes;
- u64 residual;
- struct request *req;
- struct _osd_req_data_segment *last_seg;
- u8 *pad_buff;
- } out, in;
-
- gfp_t alloc_flags;
- unsigned timeout;
- unsigned retries;
- unsigned sense_len;
- u8 sense[OSD_MAX_SENSE_LEN];
- enum osd_attributes_mode attributes_mode;
-
- osd_req_done_fn *async_done;
- void *async_private;
- int async_error;
- int req_errors;
-};
-
-static inline bool osd_req_is_ver1(struct osd_request *or)
-{
- return osd_dev_is_ver1(or->osd_dev);
-}
-
-/*
- * How to use the osd library:
- *
- * osd_start_request
- * Allocates a request.
- *
- * osd_req_*
- * Call one of, to encode the desired operation.
- *
- * osd_add_{get,set}_attr
- * Optionally add attributes to the CDB, list or page mode.
- *
- * osd_finalize_request
- * Computes final data out/in offsets and signs the request,
- * making it ready for execution.
- *
- * osd_execute_request
- * May be called to execute it through the block layer. Other wise submit
- * the associated block request in some other way.
- *
- * After execution:
- * osd_req_decode_sense
- * Decodes sense information to verify execution results.
- *
- * osd_req_decode_get_attr
- * Retrieve osd_add_get_attr_list() values if used.
- *
- * osd_end_request
- * Must be called to deallocate the request.
- */
-
-/**
- * osd_start_request - Allocate and initialize an osd_request
- *
- * @osd_dev: OSD device that holds the scsi-device and default values
- * that the request is associated with.
- * @gfp: The allocation flags to use for request allocation, and all
- * subsequent allocations. This will be stored at
- * osd_request->alloc_flags, can be changed by user later
- *
- * Allocate osd_request and initialize all members to the
- * default/initial state.
- */
-struct osd_request *osd_start_request(struct osd_dev *od, gfp_t gfp);
-
-enum osd_req_options {
- OSD_REQ_FUA = 0x08, /* Force Unit Access */
- OSD_REQ_DPO = 0x10, /* Disable Page Out */
-
- OSD_REQ_BYPASS_TIMESTAMPS = 0x80,
-};
-
-/**
- * osd_finalize_request - Sign request and prepare request for execution
- *
- * @or: osd_request to prepare
- * @options: combination of osd_req_options bit flags or 0.
- * @cap: A Pointer to an OSD_CAP_LEN bytes buffer that is received from
- * The security manager as capabilities for this cdb.
- * @cap_key: The cryptographic key used to sign the cdb/data. Can be null
- * if NOSEC is used.
- *
- * The actual request and bios are only allocated here, so are the get_attr
- * buffers that will receive the returned attributes. Copy's @cap to cdb.
- * Sign the cdb/data with @cap_key.
- */
-int osd_finalize_request(struct osd_request *or,
- u8 options, const void *cap, const u8 *cap_key);
-
-/**
- * osd_execute_request - Execute the request synchronously through block-layer
- *
- * @or: osd_request to Executed
- *
- * Calls blk_execute_rq to q the command and waits for completion.
- */
-int osd_execute_request(struct osd_request *or);
-
-/**
- * osd_execute_request_async - Execute the request without waitting.
- *
- * @or: - osd_request to Executed
- * @done: (Optional) - Called at end of execution
- * @private: - Will be passed to @done function
- *
- * Calls blk_execute_rq_nowait to queue the command. When execution is done
- * optionally calls @done with @private as parameter. @or->async_error will
- * have the return code
- */
-int osd_execute_request_async(struct osd_request *or,
- osd_req_done_fn *done, void *private);
-
-/**
- * osd_req_decode_sense_full - Decode sense information after execution.
- *
- * @or: - osd_request to examine
- * @osi - Receives a more detailed error report information (optional).
- * @silent - Do not print to dmsg (Even if enabled)
- * @bad_obj_list - Some commands act on multiple objects. Failed objects will
- * be received here (optional)
- * @max_obj - Size of @bad_obj_list.
- * @bad_attr_list - List of failing attributes (optional)
- * @max_attr - Size of @bad_attr_list.
- *
- * After execution, osd_request results are analyzed using this function. The
- * return code is the final disposition on the error. So it is possible that a
- * CHECK_CONDITION was returned from target but this will return NO_ERROR, for
- * example on recovered errors. All parameters are optional if caller does
- * not need any returned information.
- * Note: This function will also dump the error to dmsg according to settings
- * of the SCSI_OSD_DPRINT_SENSE Kconfig value. Set @silent if you know the
- * command would routinely fail, to not spam the dmsg file.
- */
-
-/**
- * osd_err_priority - osd categorized return codes in ascending severity.
- *
- * The categories are borrowed from the pnfs_osd_errno enum.
- * See comments for translated Linux codes returned by osd_req_decode_sense.
- */
-enum osd_err_priority {
- OSD_ERR_PRI_NO_ERROR = 0,
- /* Recoverable, caller should clear_highpage() all pages */
- OSD_ERR_PRI_CLEAR_PAGES = 1, /* -EFAULT */
- OSD_ERR_PRI_RESOURCE = 2, /* -ENOMEM */
- OSD_ERR_PRI_BAD_CRED = 3, /* -EINVAL */
- OSD_ERR_PRI_NO_ACCESS = 4, /* -EACCES */
- OSD_ERR_PRI_UNREACHABLE = 5, /* any other */
- OSD_ERR_PRI_NOT_FOUND = 6, /* -ENOENT */
- OSD_ERR_PRI_NO_SPACE = 7, /* -ENOSPC */
- OSD_ERR_PRI_EIO = 8, /* -EIO */
-};
-
-struct osd_sense_info {
- enum osd_err_priority osd_err_pri;
-
- int key; /* one of enum scsi_sense_keys */
- int additional_code ; /* enum osd_additional_sense_codes */
- union { /* Sense specific information */
- u16 sense_info;
- u16 cdb_field_offset; /* scsi_invalid_field_in_cdb */
- };
- union { /* Command specific information */
- u64 command_info;
- };
-
- u32 not_initiated_command_functions; /* osd_command_functions_bits */
- u32 completed_command_functions; /* osd_command_functions_bits */
- struct osd_obj_id obj;
- struct osd_attr attr;
-};
-
-int osd_req_decode_sense_full(struct osd_request *or,
- struct osd_sense_info *osi, bool silent,
- struct osd_obj_id *bad_obj_list, int max_obj,
- struct osd_attr *bad_attr_list, int max_attr);
-
-static inline int osd_req_decode_sense(struct osd_request *or,
- struct osd_sense_info *osi)
-{
- return osd_req_decode_sense_full(or, osi, false, NULL, 0, NULL, 0);
-}
-
-/**
- * osd_end_request - return osd_request to free store
- *
- * @or: osd_request to free
- *
- * Deallocate all osd_request resources (struct req's, BIOs, buffers, etc.)
- */
-void osd_end_request(struct osd_request *or);
-
-/*
- * CDB Encoding
- *
- * Note: call only one of the following methods.
- */
-
-/*
- * Device commands
- */
-void osd_req_set_master_seed_xchg(struct osd_request *or, ...);/* NI */
-void osd_req_set_master_key(struct osd_request *or, ...);/* NI */
-
-void osd_req_format(struct osd_request *or, u64 tot_capacity);
-
-/* list all partitions
- * @list header must be initialized to zero on first run.
- *
- * Call osd_is_obj_list_done() to find if we got the complete list.
- */
-int osd_req_list_dev_partitions(struct osd_request *or,
- osd_id initial_id, struct osd_obj_id_list *list, unsigned nelem);
-
-void osd_req_flush_obsd(struct osd_request *or,
- enum osd_options_flush_scope_values);
-
-void osd_req_perform_scsi_command(struct osd_request *or,
- const u8 *cdb, ...);/* NI */
-void osd_req_task_management(struct osd_request *or, ...);/* NI */
-
-/*
- * Partition commands
- */
-void osd_req_create_partition(struct osd_request *or, osd_id partition);
-void osd_req_remove_partition(struct osd_request *or, osd_id partition);
-
-void osd_req_set_partition_key(struct osd_request *or,
- osd_id partition, u8 new_key_id[OSD_CRYPTO_KEYID_SIZE],
- u8 seed[OSD_CRYPTO_SEED_SIZE]);/* NI */
-
-/* list all collections in the partition
- * @list header must be init to zero on first run.
- *
- * Call osd_is_obj_list_done() to find if we got the complete list.
- */
-int osd_req_list_partition_collections(struct osd_request *or,
- osd_id partition, osd_id initial_id, struct osd_obj_id_list *list,
- unsigned nelem);
-
-/* list all objects in the partition
- * @list header must be init to zero on first run.
- *
- * Call osd_is_obj_list_done() to find if we got the complete list.
- */
-int osd_req_list_partition_objects(struct osd_request *or,
- osd_id partition, osd_id initial_id, struct osd_obj_id_list *list,
- unsigned nelem);
-
-void osd_req_flush_partition(struct osd_request *or,
- osd_id partition, enum osd_options_flush_scope_values);
-
-/*
- * Collection commands
- */
-void osd_req_create_collection(struct osd_request *or,
- const struct osd_obj_id *);/* NI */
-void osd_req_remove_collection(struct osd_request *or,
- const struct osd_obj_id *);/* NI */
-
-/* list all objects in the collection */
-int osd_req_list_collection_objects(struct osd_request *or,
- const struct osd_obj_id *, osd_id initial_id,
- struct osd_obj_id_list *list, unsigned nelem);
-
-/* V2 only filtered list of objects in the collection */
-void osd_req_query(struct osd_request *or, ...);/* NI */
-
-void osd_req_flush_collection(struct osd_request *or,
- const struct osd_obj_id *, enum osd_options_flush_scope_values);
-
-void osd_req_get_member_attrs(struct osd_request *or, ...);/* V2-only NI */
-void osd_req_set_member_attrs(struct osd_request *or, ...);/* V2-only NI */
-
-/*
- * Object commands
- */
-void osd_req_create_object(struct osd_request *or, struct osd_obj_id *);
-void osd_req_remove_object(struct osd_request *or, struct osd_obj_id *);
-
-void osd_req_write(struct osd_request *or,
- const struct osd_obj_id *obj, u64 offset, struct bio *bio, u64 len);
-int osd_req_write_kern(struct osd_request *or,
- const struct osd_obj_id *obj, u64 offset, void *buff, u64 len);
-void osd_req_append(struct osd_request *or,
- const struct osd_obj_id *, struct bio *data_out);/* NI */
-void osd_req_create_write(struct osd_request *or,
- const struct osd_obj_id *, struct bio *data_out, u64 offset);/* NI */
-void osd_req_clear(struct osd_request *or,
- const struct osd_obj_id *, u64 offset, u64 len);/* NI */
-void osd_req_punch(struct osd_request *or,
- const struct osd_obj_id *, u64 offset, u64 len);/* V2-only NI */
-
-void osd_req_flush_object(struct osd_request *or,
- const struct osd_obj_id *, enum osd_options_flush_scope_values,
- /*V2*/ u64 offset, /*V2*/ u64 len);
-
-void osd_req_read(struct osd_request *or,
- const struct osd_obj_id *obj, u64 offset, struct bio *bio, u64 len);
-int osd_req_read_kern(struct osd_request *or,
- const struct osd_obj_id *obj, u64 offset, void *buff, u64 len);
-
-/* Scatter/Gather write/read commands */
-int osd_req_write_sg(struct osd_request *or,
- const struct osd_obj_id *obj, struct bio *bio,
- const struct osd_sg_entry *sglist, unsigned numentries);
-int osd_req_read_sg(struct osd_request *or,
- const struct osd_obj_id *obj, struct bio *bio,
- const struct osd_sg_entry *sglist, unsigned numentries);
-int osd_req_write_sg_kern(struct osd_request *or,
- const struct osd_obj_id *obj, void **buff,
- const struct osd_sg_entry *sglist, unsigned numentries);
-int osd_req_read_sg_kern(struct osd_request *or,
- const struct osd_obj_id *obj, void **buff,
- const struct osd_sg_entry *sglist, unsigned numentries);
-
-/*
- * Root/Partition/Collection/Object Attributes commands
- */
-
-/* get before set */
-void osd_req_get_attributes(struct osd_request *or, const struct osd_obj_id *);
-
-/* set before get */
-void osd_req_set_attributes(struct osd_request *or, const struct osd_obj_id *);
-
-/*
- * Attributes appended to most commands
- */
-
-/* Attributes List mode (or V2 CDB) */
- /*
- * TODO: In ver2 if at finalize time only one attr was set and no gets,
- * then the Attributes CDB mode is used automatically to save IO.
- */
-
-/* set a list of attributes. */
-int osd_req_add_set_attr_list(struct osd_request *or,
- const struct osd_attr *, unsigned nelem);
-
-/* get a list of attributes */
-int osd_req_add_get_attr_list(struct osd_request *or,
- const struct osd_attr *, unsigned nelem);
-
-/*
- * Attributes list decoding
- * Must be called after osd_request.request was executed
- * It is called in a loop to decode the returned get_attr
- * (see osd_add_get_attr)
- */
-int osd_req_decode_get_attr_list(struct osd_request *or,
- struct osd_attr *, int *nelem, void **iterator);
-
-/* Attributes Page mode */
-
-/*
- * Read an attribute page and optionally set one attribute
- *
- * Retrieves the attribute page directly to a user buffer.
- * @attr_page_data shall stay valid until end of execution.
- * See osd_attributes.h for common page structures
- */
-int osd_req_add_get_attr_page(struct osd_request *or,
- u32 page_id, void *attr_page_data, unsigned max_page_len,
- const struct osd_attr *set_one);
-
-#endif /* __OSD_LIB_H__ */
diff --git a/ANDROID_3.4.5/include/scsi/osd_ore.h b/ANDROID_3.4.5/include/scsi/osd_ore.h
deleted file mode 100644
index a5f9b960..00000000
--- a/ANDROID_3.4.5/include/scsi/osd_ore.h
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * Copyright (C) 2011
- * Boaz Harrosh <bharrosh@panasas.com>
- *
- * Public Declarations of the ORE API
- *
- * This file is part of the ORE (Object Raid Engine) library.
- *
- * ORE 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. (GPL v2)
- *
- * ORE 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 the ORE; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-#ifndef __ORE_H__
-#define __ORE_H__
-
-#include <scsi/osd_initiator.h>
-#include <scsi/osd_attributes.h>
-#include <scsi/osd_sec.h>
-#include <linux/pnfs_osd_xdr.h>
-#include <linux/bug.h>
-
-struct ore_comp {
- struct osd_obj_id obj;
- u8 cred[OSD_CAP_LEN];
-};
-
-struct ore_layout {
- /* Our way of looking at the data_map */
- enum pnfs_osd_raid_algorithm4
- raid_algorithm;
- unsigned stripe_unit;
- unsigned mirrors_p1;
-
- unsigned group_width;
- unsigned parity;
- u64 group_depth;
- unsigned group_count;
-
- /* Cached often needed calculations filled in by
- * ore_verify_layout
- */
- unsigned long max_io_length; /* Max length that should be passed to
- * ore_get_rw_state
- */
-};
-
-struct ore_dev {
- struct osd_dev *od;
-};
-
-struct ore_components {
- unsigned first_dev; /* First logical device no */
- unsigned numdevs; /* Num of devices in array */
- /* If @single_comp == EC_SINGLE_COMP, @comps points to a single
- * component. else there are @numdevs components
- */
- enum EC_COMP_USAGE {
- EC_SINGLE_COMP = 0, EC_MULTPLE_COMPS = 0xffffffff
- } single_comp;
- struct ore_comp *comps;
-
- /* Array of pointers to ore_dev-* . User will usually have these pointed
- * too a bigger struct which contain an "ore_dev ored" member and use
- * container_of(oc->ods[i], struct foo_dev, ored) to access the bigger
- * structure.
- */
- struct ore_dev **ods;
-};
-
-/* ore_comp_dev Recievies a logical device index */
-static inline struct osd_dev *ore_comp_dev(
- const struct ore_components *oc, unsigned i)
-{
- BUG_ON((i < oc->first_dev) || (oc->first_dev + oc->numdevs <= i));
- return oc->ods[i - oc->first_dev]->od;
-}
-
-static inline void ore_comp_set_dev(
- struct ore_components *oc, unsigned i, struct osd_dev *od)
-{
- oc->ods[i - oc->first_dev]->od = od;
-}
-
-struct ore_striping_info {
- u64 offset;
- u64 obj_offset;
- u64 length;
- u64 first_stripe_start; /* only used in raid writes */
- u64 M; /* for truncate */
- unsigned bytes_in_stripe;
- unsigned dev;
- unsigned par_dev;
- unsigned unit_off;
- unsigned cur_pg;
- unsigned cur_comp;
-};
-
-struct ore_io_state;
-typedef void (*ore_io_done_fn)(struct ore_io_state *ios, void *private);
-struct _ore_r4w_op {
- /* @Priv given here is passed ios->private */
- struct page * (*get_page)(void *priv, u64 page_index, bool *uptodate);
- void (*put_page)(void *priv, struct page *page);
-};
-
-struct ore_io_state {
- struct kref kref;
- struct ore_striping_info si;
-
- void *private;
- ore_io_done_fn done;
-
- struct ore_layout *layout;
- struct ore_components *oc;
-
- /* Global read/write IO*/
- loff_t offset;
- unsigned long length;
- void *kern_buff;
-
- struct page **pages;
- unsigned nr_pages;
- unsigned pgbase;
- unsigned pages_consumed;
-
- /* Attributes */
- unsigned in_attr_len;
- struct osd_attr *in_attr;
- unsigned out_attr_len;
- struct osd_attr *out_attr;
-
- bool reading;
-
- /* House keeping of Parity pages */
- bool extra_part_alloc;
- struct page **parity_pages;
- unsigned max_par_pages;
- unsigned cur_par_page;
- unsigned sgs_per_dev;
- struct __stripe_pages_2d *sp2d;
- struct ore_io_state *ios_read_4_write;
- const struct _ore_r4w_op *r4w;
-
- /* Variable array of size numdevs */
- unsigned numdevs;
- struct ore_per_dev_state {
- struct osd_request *or;
- struct bio *bio;
- loff_t offset;
- unsigned length;
- unsigned last_sgs_total;
- unsigned dev;
- struct osd_sg_entry *sglist;
- unsigned cur_sg;
- } per_dev[];
-};
-
-static inline unsigned ore_io_state_size(unsigned numdevs)
-{
- return sizeof(struct ore_io_state) +
- sizeof(struct ore_per_dev_state) * numdevs;
-}
-
-/* ore.c */
-int ore_verify_layout(unsigned total_comps, struct ore_layout *layout);
-void ore_calc_stripe_info(struct ore_layout *layout, u64 file_offset,
- u64 length, struct ore_striping_info *si);
-int ore_get_rw_state(struct ore_layout *layout, struct ore_components *comps,
- bool is_reading, u64 offset, u64 length,
- struct ore_io_state **ios);
-int ore_get_io_state(struct ore_layout *layout, struct ore_components *comps,
- struct ore_io_state **ios);
-void ore_put_io_state(struct ore_io_state *ios);
-
-typedef void (*ore_on_dev_error)(struct ore_io_state *ios, struct ore_dev *od,
- unsigned dev_index, enum osd_err_priority oep,
- u64 dev_offset, u64 dev_len);
-int ore_check_io(struct ore_io_state *ios, ore_on_dev_error rep);
-
-int ore_create(struct ore_io_state *ios);
-int ore_remove(struct ore_io_state *ios);
-int ore_write(struct ore_io_state *ios);
-int ore_read(struct ore_io_state *ios);
-int ore_truncate(struct ore_layout *layout, struct ore_components *comps,
- u64 size);
-
-int extract_attr_from_ios(struct ore_io_state *ios, struct osd_attr *attr);
-
-extern const struct osd_attr g_attr_logical_length;
-
-#endif
diff --git a/ANDROID_3.4.5/include/scsi/osd_protocol.h b/ANDROID_3.4.5/include/scsi/osd_protocol.h
deleted file mode 100644
index a6026da2..00000000
--- a/ANDROID_3.4.5/include/scsi/osd_protocol.h
+++ /dev/null
@@ -1,676 +0,0 @@
-/*
- * osd_protocol.h - OSD T10 standard C definitions.
- *
- * Copyright (C) 2008 Panasas Inc. All rights reserved.
- *
- * Authors:
- * Boaz Harrosh <bharrosh@panasas.com>
- * Benny Halevy <bhalevy@panasas.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
- *
- * This file contains types and constants that are defined by the protocol
- * Note: All names and symbols are taken from the OSD standard's text.
- */
-#ifndef __OSD_PROTOCOL_H__
-#define __OSD_PROTOCOL_H__
-
-#include <linux/types.h>
-#include <linux/kernel.h>
-#include <asm/unaligned.h>
-#include <scsi/scsi.h>
-
-enum {
- OSDv1_ADDITIONAL_CDB_LENGTH = 192,
- OSDv1_TOTAL_CDB_LEN = OSDv1_ADDITIONAL_CDB_LENGTH + 8,
- OSDv1_CAP_LEN = 80,
-
- /* Latest supported version */
- OSDv2_ADDITIONAL_CDB_LENGTH = 228,
- OSD_ADDITIONAL_CDB_LENGTH =
- OSDv2_ADDITIONAL_CDB_LENGTH,
- OSD_TOTAL_CDB_LEN = OSD_ADDITIONAL_CDB_LENGTH + 8,
- OSD_CAP_LEN = 104,
-
- OSD_SYSTEMID_LEN = 20,
- OSDv1_CRYPTO_KEYID_SIZE = 20,
- OSDv2_CRYPTO_KEYID_SIZE = 32,
- OSD_CRYPTO_KEYID_SIZE = OSDv2_CRYPTO_KEYID_SIZE,
- OSD_CRYPTO_SEED_SIZE = 4,
- OSD_CRYPTO_NONCE_SIZE = 12,
- OSD_MAX_SENSE_LEN = 252, /* from SPC-3 */
-
- OSD_PARTITION_FIRST_ID = 0x10000,
- OSD_OBJECT_FIRST_ID = 0x10000,
-};
-
-/* (osd-r10 5.2.4)
- * osd2r03: 5.2.3 Caching control bits
- */
-enum osd_options_byte {
- OSD_CDB_FUA = 0x08, /* Force Unit Access */
- OSD_CDB_DPO = 0x10, /* Disable Page Out */
-};
-
-/*
- * osd2r03: 5.2.5 Isolation.
- * First 3 bits, V2-only.
- * Also for attr 110h "default isolation method" at Root Information page
- */
-enum osd_options_byte_isolation {
- OSD_ISOLATION_DEFAULT = 0,
- OSD_ISOLATION_NONE = 1,
- OSD_ISOLATION_STRICT = 2,
- OSD_ISOLATION_RANGE = 4,
- OSD_ISOLATION_FUNCTIONAL = 5,
- OSD_ISOLATION_VENDOR = 7,
-};
-
-/* (osd-r10: 6.7)
- * osd2r03: 6.8 FLUSH, FLUSH COLLECTION, FLUSH OSD, FLUSH PARTITION
- */
-enum osd_options_flush_scope_values {
- OSD_CDB_FLUSH_ALL = 0,
- OSD_CDB_FLUSH_ATTR_ONLY = 1,
-
- OSD_CDB_FLUSH_ALL_RECURSIVE = 2,
- /* V2-only */
- OSD_CDB_FLUSH_ALL_RANGE = 2,
-};
-
-/* osd2r03: 5.2.10 Timestamps control */
-enum {
- OSD_CDB_NORMAL_TIMESTAMPS = 0,
- OSD_CDB_BYPASS_TIMESTAMPS = 0x7f,
-};
-
-/* (osd-r10: 5.2.2.1)
- * osd2r03: 5.2.4.1 Get and set attributes CDB format selection
- * 2 bits at second nibble of command_specific_options byte
- */
-enum osd_attributes_mode {
- /* V2-only */
- OSD_CDB_SET_ONE_ATTR = 0x10,
-
- OSD_CDB_GET_ATTR_PAGE_SET_ONE = 0x20,
- OSD_CDB_GET_SET_ATTR_LISTS = 0x30,
-
- OSD_CDB_GET_SET_ATTR_MASK = 0x30,
-};
-
-/* (osd-r10: 4.12.5)
- * osd2r03: 4.14.5 Data-In and Data-Out buffer offsets
- * byte offset = mantissa * (2^(exponent+8))
- * struct {
- * unsigned mantissa: 28;
- * int exponent: 04;
- * }
- */
-typedef __be32 __bitwise osd_cdb_offset;
-
-enum {
- OSD_OFFSET_UNUSED = 0xFFFFFFFF,
- OSD_OFFSET_MAX_BITS = 28,
-
- OSDv1_OFFSET_MIN_SHIFT = 8,
- OSD_OFFSET_MIN_SHIFT = 3,
- OSD_OFFSET_MAX_SHIFT = 16,
-};
-
-/* Return the smallest allowed encoded offset that contains @offset.
- *
- * The actual encoded offset returned is @offset + *padding.
- * (up to max_shift, non-inclusive)
- */
-osd_cdb_offset __osd_encode_offset(u64 offset, unsigned *padding,
- int min_shift, int max_shift);
-
-/* Minimum alignment is 256 bytes
- * Note: Seems from std v1 that exponent can be from 0+8 to 0xE+8 (inclusive)
- * which is 8 to 23 but IBM code restricts it to 16, so be it.
- */
-static inline osd_cdb_offset osd_encode_offset_v1(u64 offset, unsigned *padding)
-{
- return __osd_encode_offset(offset, padding,
- OSDv1_OFFSET_MIN_SHIFT, OSD_OFFSET_MAX_SHIFT);
-}
-
-/* Minimum 8 bytes alignment
- * Same as v1 but since exponent can be signed than a less than
- * 256 alignment can be reached with small offsets (<2GB)
- */
-static inline osd_cdb_offset osd_encode_offset_v2(u64 offset, unsigned *padding)
-{
- return __osd_encode_offset(offset, padding,
- OSD_OFFSET_MIN_SHIFT, OSD_OFFSET_MAX_SHIFT);
-}
-
-/* osd2r03: 5.2.1 Overview */
-struct osd_cdb_head {
- struct scsi_varlen_cdb_hdr varlen_cdb;
-/*10*/ u8 options;
- u8 command_specific_options;
- u8 timestamp_control;
-/*13*/ u8 reserved1[3];
-/*16*/ __be64 partition;
-/*24*/ __be64 object;
-/*32*/ union { /* V1 vs V2 alignment differences */
- struct __osdv1_cdb_addr_len {
-/*32*/ __be32 list_identifier;/* Rarely used */
-/*36*/ __be64 length;
-/*44*/ __be64 start_address;
- } __packed v1;
-
- struct __osdv2_cdb_addr_len {
- /* called allocation_length in some commands */
-/*32*/ __be64 length;
-/*40*/ __be64 start_address;
- union {
-/*48*/ __be32 list_identifier;/* Rarely used */
- /* OSD2r05 5.2.5 CDB continuation length */
-/*48*/ __be32 cdb_continuation_length;
- };
- } __packed v2;
- };
-/*52*/ union { /* selected attributes mode Page/List/Single */
- struct osd_attributes_page_mode {
-/*52*/ __be32 get_attr_page;
-/*56*/ __be32 get_attr_alloc_length;
-/*60*/ osd_cdb_offset get_attr_offset;
-
-/*64*/ __be32 set_attr_page;
-/*68*/ __be32 set_attr_id;
-/*72*/ __be32 set_attr_length;
-/*76*/ osd_cdb_offset set_attr_offset;
-/*80*/ } __packed attrs_page;
-
- struct osd_attributes_list_mode {
-/*52*/ __be32 get_attr_desc_bytes;
-/*56*/ osd_cdb_offset get_attr_desc_offset;
-
-/*60*/ __be32 get_attr_alloc_length;
-/*64*/ osd_cdb_offset get_attr_offset;
-
-/*68*/ __be32 set_attr_bytes;
-/*72*/ osd_cdb_offset set_attr_offset;
- __be32 not_used;
-/*80*/ } __packed attrs_list;
-
- /* osd2r03:5.2.4.2 Set one attribute value using CDB fields */
- struct osd_attributes_cdb_mode {
-/*52*/ __be32 set_attr_page;
-/*56*/ __be32 set_attr_id;
-/*60*/ __be16 set_attr_len;
-/*62*/ u8 set_attr_val[18];
-/*80*/ } __packed attrs_cdb;
-/*52*/ u8 get_set_attributes_parameters[28];
- };
-} __packed;
-/*80*/
-
-/*160 v1*/
-struct osdv1_security_parameters {
-/*160*/u8 integrity_check_value[OSDv1_CRYPTO_KEYID_SIZE];
-/*180*/u8 request_nonce[OSD_CRYPTO_NONCE_SIZE];
-/*192*/osd_cdb_offset data_in_integrity_check_offset;
-/*196*/osd_cdb_offset data_out_integrity_check_offset;
-} __packed;
-/*200 v1*/
-
-/*184 v2*/
-struct osdv2_security_parameters {
-/*184*/u8 integrity_check_value[OSDv2_CRYPTO_KEYID_SIZE];
-/*216*/u8 request_nonce[OSD_CRYPTO_NONCE_SIZE];
-/*228*/osd_cdb_offset data_in_integrity_check_offset;
-/*232*/osd_cdb_offset data_out_integrity_check_offset;
-} __packed;
-/*236 v2*/
-
-struct osd_security_parameters {
- union {
- struct osdv1_security_parameters v1;
- struct osdv2_security_parameters v2;
- };
-};
-
-struct osdv1_cdb {
- struct osd_cdb_head h;
- u8 caps[OSDv1_CAP_LEN];
- struct osdv1_security_parameters sec_params;
-} __packed;
-
-struct osdv2_cdb {
- struct osd_cdb_head h;
- u8 caps[OSD_CAP_LEN];
- struct osdv2_security_parameters sec_params;
-} __packed;
-
-struct osd_cdb {
- union {
- struct osdv1_cdb v1;
- struct osdv2_cdb v2;
- u8 buff[OSD_TOTAL_CDB_LEN];
- };
-} __packed;
-
-static inline struct osd_cdb_head *osd_cdb_head(struct osd_cdb *ocdb)
-{
- return (struct osd_cdb_head *)ocdb->buff;
-}
-
-/* define both version actions
- * Ex name = FORMAT_OSD we have OSD_ACT_FORMAT_OSD && OSDv1_ACT_FORMAT_OSD
- */
-#define OSD_ACT___(Name, Num) \
- OSD_ACT_##Name = __constant_cpu_to_be16(0x8880 + Num), \
- OSDv1_ACT_##Name = __constant_cpu_to_be16(0x8800 + Num),
-
-/* V2 only actions */
-#define OSD_ACT_V2(Name, Num) \
- OSD_ACT_##Name = __constant_cpu_to_be16(0x8880 + Num),
-
-#define OSD_ACT_V1_V2(Name, Num1, Num2) \
- OSD_ACT_##Name = __constant_cpu_to_be16(Num2), \
- OSDv1_ACT_##Name = __constant_cpu_to_be16(Num1),
-
-enum osd_service_actions {
- OSD_ACT_V2(OBJECT_STRUCTURE_CHECK, 0x00)
- OSD_ACT___(FORMAT_OSD, 0x01)
- OSD_ACT___(CREATE, 0x02)
- OSD_ACT___(LIST, 0x03)
- OSD_ACT_V2(PUNCH, 0x04)
- OSD_ACT___(READ, 0x05)
- OSD_ACT___(WRITE, 0x06)
- OSD_ACT___(APPEND, 0x07)
- OSD_ACT___(FLUSH, 0x08)
- OSD_ACT_V2(CLEAR, 0x09)
- OSD_ACT___(REMOVE, 0x0A)
- OSD_ACT___(CREATE_PARTITION, 0x0B)
- OSD_ACT___(REMOVE_PARTITION, 0x0C)
- OSD_ACT___(GET_ATTRIBUTES, 0x0E)
- OSD_ACT___(SET_ATTRIBUTES, 0x0F)
- OSD_ACT___(CREATE_AND_WRITE, 0x12)
- OSD_ACT___(CREATE_COLLECTION, 0x15)
- OSD_ACT___(REMOVE_COLLECTION, 0x16)
- OSD_ACT___(LIST_COLLECTION, 0x17)
- OSD_ACT___(SET_KEY, 0x18)
- OSD_ACT___(SET_MASTER_KEY, 0x19)
- OSD_ACT___(FLUSH_COLLECTION, 0x1A)
- OSD_ACT___(FLUSH_PARTITION, 0x1B)
- OSD_ACT___(FLUSH_OSD, 0x1C)
-
- OSD_ACT_V2(QUERY, 0x20)
- OSD_ACT_V2(REMOVE_MEMBER_OBJECTS, 0x21)
- OSD_ACT_V2(GET_MEMBER_ATTRIBUTES, 0x22)
- OSD_ACT_V2(SET_MEMBER_ATTRIBUTES, 0x23)
-
- OSD_ACT_V2(CREATE_CLONE, 0x28)
- OSD_ACT_V2(CREATE_SNAPSHOT, 0x29)
- OSD_ACT_V2(DETACH_CLONE, 0x2A)
- OSD_ACT_V2(REFRESH_SNAPSHOT_CLONE, 0x2B)
- OSD_ACT_V2(RESTORE_PARTITION_FROM_SNAPSHOT, 0x2C)
-
- OSD_ACT_V2(READ_MAP, 0x31)
- OSD_ACT_V2(READ_MAPS_COMPARE, 0x32)
-
- OSD_ACT_V1_V2(PERFORM_SCSI_COMMAND, 0x8F7E, 0x8F7C)
- OSD_ACT_V1_V2(SCSI_TASK_MANAGEMENT, 0x8F7F, 0x8F7D)
- /* 0x8F80 to 0x8FFF are Vendor specific */
-};
-
-/* osd2r03: 7.1.3.2 List entry format for retrieving attributes */
-struct osd_attributes_list_attrid {
- __be32 attr_page;
- __be32 attr_id;
-} __packed;
-
-/*
- * NOTE: v1: is not aligned.
- */
-struct osdv1_attributes_list_element {
- __be32 attr_page;
- __be32 attr_id;
- __be16 attr_bytes; /* valid bytes at attr_val without padding */
- u8 attr_val[0];
-} __packed;
-
-/*
- * osd2r03: 7.1.3.3 List entry format for retrieved attributes and
- * for setting attributes
- * NOTE: v2 is 8-bytes aligned
- */
-struct osdv2_attributes_list_element {
- __be32 attr_page;
- __be32 attr_id;
- u8 reserved[6];
- __be16 attr_bytes; /* valid bytes at attr_val without padding */
- u8 attr_val[0];
-} __packed;
-
-enum {
- OSDv1_ATTRIBUTES_ELEM_ALIGN = 1,
- OSD_ATTRIBUTES_ELEM_ALIGN = 8,
-};
-
-enum {
- OSD_ATTR_LIST_ALL_PAGES = 0xFFFFFFFF,
- OSD_ATTR_LIST_ALL_IN_PAGE = 0xFFFFFFFF,
-};
-
-static inline unsigned osdv1_attr_list_elem_size(unsigned len)
-{
- return ALIGN(len + sizeof(struct osdv1_attributes_list_element),
- OSDv1_ATTRIBUTES_ELEM_ALIGN);
-}
-
-static inline unsigned osdv2_attr_list_elem_size(unsigned len)
-{
- return ALIGN(len + sizeof(struct osdv2_attributes_list_element),
- OSD_ATTRIBUTES_ELEM_ALIGN);
-}
-
-/*
- * osd2r03: 7.1.3 OSD attributes lists (Table 184) — List type values
- */
-enum osd_attr_list_types {
- OSD_ATTR_LIST_GET = 0x1, /* descriptors only */
- OSD_ATTR_LIST_SET_RETRIEVE = 0x9, /*descriptors/values variable-length*/
- OSD_V2_ATTR_LIST_MULTIPLE = 0xE, /* ver2, Multiple Objects lists*/
- OSD_V1_ATTR_LIST_CREATE_MULTIPLE = 0xF,/*ver1, used by create_multple*/
-};
-
-/* osd2r03: 7.1.3.4 Multi-object retrieved attributes format */
-struct osd_attributes_list_multi_header {
- __be64 object_id;
- u8 object_type; /* object_type enum below */
- u8 reserved[5];
- __be16 list_bytes;
- /* followed by struct osd_attributes_list_element's */
-};
-
-struct osdv1_attributes_list_header {
- u8 type; /* low 4-bit only */
- u8 pad;
- __be16 list_bytes; /* Initiator shall set to Zero. Only set by target */
- /*
- * type=9 followed by struct osd_attributes_list_element's
- * type=E followed by struct osd_attributes_list_multi_header's
- */
-} __packed;
-
-static inline unsigned osdv1_list_size(struct osdv1_attributes_list_header *h)
-{
- return be16_to_cpu(h->list_bytes);
-}
-
-struct osdv2_attributes_list_header {
- u8 type; /* lower 4-bits only */
- u8 pad[3];
-/*4*/ __be32 list_bytes; /* Initiator shall set to zero. Only set by target */
- /*
- * type=9 followed by struct osd_attributes_list_element's
- * type=E followed by struct osd_attributes_list_multi_header's
- */
-} __packed;
-
-static inline unsigned osdv2_list_size(struct osdv2_attributes_list_header *h)
-{
- return be32_to_cpu(h->list_bytes);
-}
-
-/* (osd-r10 6.13)
- * osd2r03: 6.15 LIST (Table 79) LIST command parameter data.
- * for root_lstchg below
- */
-enum {
- OSD_OBJ_ID_LIST_PAR = 0x1, /* V1-only. Not used in V2 */
- OSD_OBJ_ID_LIST_LSTCHG = 0x2,
-};
-
-/*
- * osd2r03: 6.15.2 LIST command parameter data
- * (Also for LIST COLLECTION)
- */
-struct osd_obj_id_list {
- __be64 list_bytes; /* bytes in list excluding list_bytes (-8) */
- __be64 continuation_id;
- __be32 list_identifier;
- u8 pad[3];
- u8 root_lstchg;
- __be64 object_ids[0];
-} __packed;
-
-static inline bool osd_is_obj_list_done(struct osd_obj_id_list *list,
- bool *is_changed)
-{
- *is_changed = (0 != (list->root_lstchg & OSD_OBJ_ID_LIST_LSTCHG));
- return 0 != list->continuation_id;
-}
-
-/*
- * osd2r03: 4.12.4.5 The ALLDATA security method
- */
-struct osd_data_out_integrity_info {
- __be64 data_bytes;
- __be64 set_attributes_bytes;
- __be64 get_attributes_bytes;
- __u8 integrity_check_value[OSD_CRYPTO_KEYID_SIZE];
-} __packed;
-
-/* Same osd_data_out_integrity_info is used for OSD2/OSD1. The only difference
- * Is the sizeof the structure since in OSD1 the last array is smaller. Use
- * below for version independent handling of this structure
- */
-static inline int osd_data_out_integrity_info_sizeof(bool is_ver1)
-{
- return sizeof(struct osd_data_out_integrity_info) -
- (is_ver1 * (OSDv2_CRYPTO_KEYID_SIZE - OSDv1_CRYPTO_KEYID_SIZE));
-}
-
-struct osd_data_in_integrity_info {
- __be64 data_bytes;
- __be64 retrieved_attributes_bytes;
- __u8 integrity_check_value[OSD_CRYPTO_KEYID_SIZE];
-} __packed;
-
-/* Same osd_data_in_integrity_info is used for OSD2/OSD1. The only difference
- * Is the sizeof the structure since in OSD1 the last array is smaller. Use
- * below for version independent handling of this structure
- */
-static inline int osd_data_in_integrity_info_sizeof(bool is_ver1)
-{
- return sizeof(struct osd_data_in_integrity_info) -
- (is_ver1 * (OSDv2_CRYPTO_KEYID_SIZE - OSDv1_CRYPTO_KEYID_SIZE));
-}
-
-struct osd_timestamp {
- u8 time[6]; /* number of milliseconds since 1/1/1970 UT (big endian) */
-} __packed;
-/* FIXME: define helper functions to convert to/from osd time format */
-
-/*
- * Capability & Security definitions
- * osd2r03: 4.11.2.2 Capability format
- * osd2r03: 5.2.8 Security parameters
- */
-
-struct osd_key_identifier {
- u8 id[7]; /* if you know why 7 please email bharrosh@panasas.com */
-} __packed;
-
-/* for osd_capability.format */
-enum {
- OSD_SEC_CAP_FORMAT_NO_CAPS = 0,
- OSD_SEC_CAP_FORMAT_VER1 = 1,
- OSD_SEC_CAP_FORMAT_VER2 = 2,
-};
-
-/* security_method */
-enum {
- OSD_SEC_NOSEC = 0,
- OSD_SEC_CAPKEY = 1,
- OSD_SEC_CMDRSP = 2,
- OSD_SEC_ALLDATA = 3,
-};
-
-enum object_type {
- OSD_SEC_OBJ_ROOT = 0x1,
- OSD_SEC_OBJ_PARTITION = 0x2,
- OSD_SEC_OBJ_COLLECTION = 0x40,
- OSD_SEC_OBJ_USER = 0x80,
-};
-
-enum osd_capability_bit_masks {
- OSD_SEC_CAP_APPEND = BIT(0),
- OSD_SEC_CAP_OBJ_MGMT = BIT(1),
- OSD_SEC_CAP_REMOVE = BIT(2),
- OSD_SEC_CAP_CREATE = BIT(3),
- OSD_SEC_CAP_SET_ATTR = BIT(4),
- OSD_SEC_CAP_GET_ATTR = BIT(5),
- OSD_SEC_CAP_WRITE = BIT(6),
- OSD_SEC_CAP_READ = BIT(7),
-
- OSD_SEC_CAP_NONE1 = BIT(8),
- OSD_SEC_CAP_NONE2 = BIT(9),
- OSD_SEC_GBL_REM = BIT(10), /*v2 only*/
- OSD_SEC_CAP_QUERY = BIT(11), /*v2 only*/
- OSD_SEC_CAP_M_OBJECT = BIT(12), /*v2 only*/
- OSD_SEC_CAP_POL_SEC = BIT(13),
- OSD_SEC_CAP_GLOBAL = BIT(14),
- OSD_SEC_CAP_DEV_MGMT = BIT(15),
-};
-
-/* for object_descriptor_type (hi nibble used) */
-enum {
- OSD_SEC_OBJ_DESC_NONE = 0, /* Not allowed */
- OSD_SEC_OBJ_DESC_OBJ = 1 << 4, /* v1: also collection */
- OSD_SEC_OBJ_DESC_PAR = 2 << 4, /* also root */
- OSD_SEC_OBJ_DESC_COL = 3 << 4, /* v2 only */
-};
-
-/* (osd-r10:4.9.2.2)
- * osd2r03:4.11.2.2 Capability format
- */
-struct osd_capability_head {
- u8 format; /* low nibble */
- u8 integrity_algorithm__key_version; /* MAKE_BYTE(integ_alg, key_ver) */
- u8 security_method;
- u8 reserved1;
-/*04*/ struct osd_timestamp expiration_time;
-/*10*/ u8 audit[20];
-/*30*/ u8 discriminator[12];
-/*42*/ struct osd_timestamp object_created_time;
-/*48*/ u8 object_type;
-/*49*/ u8 permissions_bit_mask[5];
-/*54*/ u8 reserved2;
-/*55*/ u8 object_descriptor_type; /* high nibble */
-} __packed;
-
-/*56 v1*/
-struct osdv1_cap_object_descriptor {
- union {
- struct {
-/*56*/ __be32 policy_access_tag;
-/*60*/ __be64 allowed_partition_id;
-/*68*/ __be64 allowed_object_id;
-/*76*/ __be32 reserved;
- } __packed obj_desc;
-
-/*56*/ u8 object_descriptor[24];
- };
-} __packed;
-/*80 v1*/
-
-/*56 v2*/
-struct osd_cap_object_descriptor {
- union {
- struct {
-/*56*/ __be32 allowed_attributes_access;
-/*60*/ __be32 policy_access_tag;
-/*64*/ __be16 boot_epoch;
-/*66*/ u8 reserved[6];
-/*72*/ __be64 allowed_partition_id;
-/*80*/ __be64 allowed_object_id;
-/*88*/ __be64 allowed_range_length;
-/*96*/ __be64 allowed_range_start;
- } __packed obj_desc;
-
-/*56*/ u8 object_descriptor[48];
- };
-} __packed;
-/*104 v2*/
-
-struct osdv1_capability {
- struct osd_capability_head h;
- struct osdv1_cap_object_descriptor od;
-} __packed;
-
-struct osd_capability {
- struct osd_capability_head h;
- struct osd_cap_object_descriptor od;
-} __packed;
-
-/**
- * osd_sec_set_caps - set cap-bits into the capabilities header
- *
- * @cap: The osd_capability_head to set cap bits to.
- * @bit_mask: Use an ORed list of enum osd_capability_bit_masks values
- *
- * permissions_bit_mask is unaligned use below to set into caps
- * in a version independent way
- */
-static inline void osd_sec_set_caps(struct osd_capability_head *cap,
- u16 bit_mask)
-{
- /*
- *Note: The bits above are defined LE order this is because this way
- * they can grow in the future to more then 16, and still retain
- * there constant values.
- */
- put_unaligned_le16(bit_mask, &cap->permissions_bit_mask);
-}
-
-/* osd2r05a sec 5.3: CDB continuation segment formats */
-enum osd_continuation_segment_format {
- CDB_CONTINUATION_FORMAT_V2 = 0x01,
-};
-
-struct osd_continuation_segment_header {
- u8 format;
- u8 reserved1;
- __be16 service_action;
- __be32 reserved2;
- u8 integrity_check[OSDv2_CRYPTO_KEYID_SIZE];
-} __packed;
-
-/* osd2r05a sec 5.4.1: CDB continuation descriptors */
-enum osd_continuation_descriptor_type {
- NO_MORE_DESCRIPTORS = 0x0000,
- SCATTER_GATHER_LIST = 0x0001,
- QUERY_LIST = 0x0002,
- USER_OBJECT = 0x0003,
- COPY_USER_OBJECT_SOURCE = 0x0101,
- EXTENSION_CAPABILITIES = 0xFFEE
-};
-
-struct osd_continuation_descriptor_header {
- __be16 type;
- u8 reserved;
- u8 pad_length;
- __be32 length;
-} __packed;
-
-
-/* osd2r05a sec 5.4.2: Scatter/gather list */
-struct osd_sg_list_entry {
- __be64 offset;
- __be64 len;
-};
-
-struct osd_sg_continuation_descriptor {
- struct osd_continuation_descriptor_header hdr;
- struct osd_sg_list_entry entries[];
-};
-
-#endif /* ndef __OSD_PROTOCOL_H__ */
diff --git a/ANDROID_3.4.5/include/scsi/osd_sec.h b/ANDROID_3.4.5/include/scsi/osd_sec.h
deleted file mode 100644
index 4c09fee8..00000000
--- a/ANDROID_3.4.5/include/scsi/osd_sec.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * osd_sec.h - OSD security manager API
- *
- * Copyright (C) 2008 Panasas Inc. All rights reserved.
- *
- * Authors:
- * Boaz Harrosh <bharrosh@panasas.com>
- * Benny Halevy <bhalevy@panasas.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
- *
- */
-#ifndef __OSD_SEC_H__
-#define __OSD_SEC_H__
-
-#include "osd_protocol.h"
-#include "osd_types.h"
-
-/*
- * Contains types and constants of osd capabilities and security
- * encoding/decoding.
- * API is trying to keep security abstract so initiator of an object
- * based pNFS client knows as little as possible about security and
- * capabilities. It is the Server's osd-initiator place to know more.
- * Also can be used by osd-target.
- */
-void osd_sec_encode_caps(void *caps, ...);/* NI */
-void osd_sec_init_nosec_doall_caps(void *caps,
- const struct osd_obj_id *obj, bool is_collection, const bool is_v1);
-
-bool osd_is_sec_alldata(struct osd_security_parameters *sec_params);
-
-/* Conditionally sign the CDB according to security setting in ocdb
- * with cap_key */
-void osd_sec_sign_cdb(struct osd_cdb *ocdb, const u8 *cap_key);
-
-/* Unconditionally sign the BIO data with cap_key.
- * Check for osd_is_sec_alldata() was done prior to calling this. */
-void osd_sec_sign_data(void *data_integ, struct bio *bio, const u8 *cap_key);
-
-/* Version independent copy of caps into the cdb */
-void osd_set_caps(struct osd_cdb *cdb, const void *caps);
-
-#endif /* ndef __OSD_SEC_H__ */
diff --git a/ANDROID_3.4.5/include/scsi/osd_sense.h b/ANDROID_3.4.5/include/scsi/osd_sense.h
deleted file mode 100644
index 91db543a..00000000
--- a/ANDROID_3.4.5/include/scsi/osd_sense.h
+++ /dev/null
@@ -1,263 +0,0 @@
-/*
- * osd_sense.h - OSD Related sense handling definitions.
- *
- * Copyright (C) 2008 Panasas Inc. All rights reserved.
- *
- * Authors:
- * Boaz Harrosh <bharrosh@panasas.com>
- * Benny Halevy <bhalevy@panasas.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
- *
- * This file contains types and constants that are defined by the protocol
- * Note: All names and symbols are taken from the OSD standard's text.
- */
-#ifndef __OSD_SENSE_H__
-#define __OSD_SENSE_H__
-
-#include <scsi/osd_protocol.h>
-
-/* SPC3r23 4.5.6 Sense key and sense code definitions table 27 */
-enum scsi_sense_keys {
- scsi_sk_no_sense = 0x0,
- scsi_sk_recovered_error = 0x1,
- scsi_sk_not_ready = 0x2,
- scsi_sk_medium_error = 0x3,
- scsi_sk_hardware_error = 0x4,
- scsi_sk_illegal_request = 0x5,
- scsi_sk_unit_attention = 0x6,
- scsi_sk_data_protect = 0x7,
- scsi_sk_blank_check = 0x8,
- scsi_sk_vendor_specific = 0x9,
- scsi_sk_copy_aborted = 0xa,
- scsi_sk_aborted_command = 0xb,
- scsi_sk_volume_overflow = 0xd,
- scsi_sk_miscompare = 0xe,
- scsi_sk_reserved = 0xf,
-};
-
-/* SPC3r23 4.5.6 Sense key and sense code definitions table 28 */
-/* Note: only those which can be returned by an OSD target. Most of
- * these errors are taken care of by the generic scsi layer.
- */
-enum osd_additional_sense_codes {
- scsi_no_additional_sense_information = 0x0000,
- scsi_operation_in_progress = 0x0016,
- scsi_cleaning_requested = 0x0017,
- scsi_lunr_cause_not_reportable = 0x0400,
- scsi_logical_unit_is_in_process_of_becoming_ready = 0x0401,
- scsi_lunr_initializing_command_required = 0x0402,
- scsi_lunr_manual_intervention_required = 0x0403,
- scsi_lunr_operation_in_progress = 0x0407,
- scsi_lunr_selftest_in_progress = 0x0409,
- scsi_luna_asymmetric_access_state_transition = 0x040a,
- scsi_luna_target_port_in_standby_state = 0x040b,
- scsi_luna_target_port_in_unavailable_state = 0x040c,
- scsi_lunr_notify_enable_spinup_required = 0x0411,
- scsi_logical_unit_does_not_respond_to_selection = 0x0500,
- scsi_logical_unit_communication_failure = 0x0800,
- scsi_logical_unit_communication_timeout = 0x0801,
- scsi_logical_unit_communication_parity_error = 0x0802,
- scsi_error_log_overflow = 0x0a00,
- scsi_warning = 0x0b00,
- scsi_warning_specified_temperature_exceeded = 0x0b01,
- scsi_warning_enclosure_degraded = 0x0b02,
- scsi_write_error_unexpected_unsolicited_data = 0x0c0c,
- scsi_write_error_not_enough_unsolicited_data = 0x0c0d,
- scsi_invalid_information_unit = 0x0e00,
- scsi_invalid_field_in_command_information_unit = 0x0e03,
- scsi_read_error_failed_retransmission_request = 0x1113,
- scsi_parameter_list_length_error = 0x1a00,
- scsi_invalid_command_operation_code = 0x2000,
- scsi_invalid_field_in_cdb = 0x2400,
- osd_security_audit_value_frozen = 0x2404,
- osd_security_working_key_frozen = 0x2405,
- osd_nonce_not_unique = 0x2406,
- osd_nonce_timestamp_out_of_range = 0x2407,
- scsi_logical_unit_not_supported = 0x2500,
- scsi_invalid_field_in_parameter_list = 0x2600,
- scsi_parameter_not_supported = 0x2601,
- scsi_parameter_value_invalid = 0x2602,
- scsi_invalid_release_of_persistent_reservation = 0x2604,
- osd_invalid_dataout_buffer_integrity_check_value = 0x260f,
- scsi_not_ready_to_ready_change_medium_may_have_changed = 0x2800,
- scsi_power_on_reset_or_bus_device_reset_occurred = 0x2900,
- scsi_power_on_occurred = 0x2901,
- scsi_scsi_bus_reset_occurred = 0x2902,
- scsi_bus_device_reset_function_occurred = 0x2903,
- scsi_device_internal_reset = 0x2904,
- scsi_transceiver_mode_changed_to_single_ended = 0x2905,
- scsi_transceiver_mode_changed_to_lvd = 0x2906,
- scsi_i_t_nexus_loss_occurred = 0x2907,
- scsi_parameters_changed = 0x2a00,
- scsi_mode_parameters_changed = 0x2a01,
- scsi_asymmetric_access_state_changed = 0x2a06,
- scsi_priority_changed = 0x2a08,
- scsi_command_sequence_error = 0x2c00,
- scsi_previous_busy_status = 0x2c07,
- scsi_previous_task_set_full_status = 0x2c08,
- scsi_previous_reservation_conflict_status = 0x2c09,
- osd_partition_or_collection_contains_user_objects = 0x2c0a,
- scsi_commands_cleared_by_another_initiator = 0x2f00,
- scsi_cleaning_failure = 0x3007,
- scsi_enclosure_failure = 0x3400,
- scsi_enclosure_services_failure = 0x3500,
- scsi_unsupported_enclosure_function = 0x3501,
- scsi_enclosure_services_unavailable = 0x3502,
- scsi_enclosure_services_transfer_failure = 0x3503,
- scsi_enclosure_services_transfer_refused = 0x3504,
- scsi_enclosure_services_checksum_error = 0x3505,
- scsi_rounded_parameter = 0x3700,
- osd_read_past_end_of_user_object = 0x3b17,
- scsi_logical_unit_has_not_self_configured_yet = 0x3e00,
- scsi_logical_unit_failure = 0x3e01,
- scsi_timeout_on_logical_unit = 0x3e02,
- scsi_logical_unit_failed_selftest = 0x3e03,
- scsi_logical_unit_unable_to_update_selftest_log = 0x3e04,
- scsi_target_operating_conditions_have_changed = 0x3f00,
- scsi_microcode_has_been_changed = 0x3f01,
- scsi_inquiry_data_has_changed = 0x3f03,
- scsi_echo_buffer_overwritten = 0x3f0f,
- scsi_diagnostic_failure_on_component_nn_first = 0x4080,
- scsi_diagnostic_failure_on_component_nn_last = 0x40ff,
- scsi_message_error = 0x4300,
- scsi_internal_target_failure = 0x4400,
- scsi_select_or_reselect_failure = 0x4500,
- scsi_scsi_parity_error = 0x4700,
- scsi_data_phase_crc_error_detected = 0x4701,
- scsi_scsi_parity_error_detected_during_st_data_phase = 0x4702,
- scsi_asynchronous_information_protection_error_detected = 0x4704,
- scsi_protocol_service_crc_error = 0x4705,
- scsi_phy_test_function_in_progress = 0x4706,
- scsi_invalid_message_error = 0x4900,
- scsi_command_phase_error = 0x4a00,
- scsi_data_phase_error = 0x4b00,
- scsi_logical_unit_failed_self_configuration = 0x4c00,
- scsi_overlapped_commands_attempted = 0x4e00,
- osd_quota_error = 0x5507,
- scsi_failure_prediction_threshold_exceeded = 0x5d00,
- scsi_failure_prediction_threshold_exceeded_false = 0x5dff,
- scsi_voltage_fault = 0x6500,
-};
-
-enum scsi_descriptor_types {
- scsi_sense_information = 0x0,
- scsi_sense_command_specific_information = 0x1,
- scsi_sense_key_specific = 0x2,
- scsi_sense_field_replaceable_unit = 0x3,
- scsi_sense_stream_commands = 0x4,
- scsi_sense_block_commands = 0x5,
- osd_sense_object_identification = 0x6,
- osd_sense_response_integrity_check = 0x7,
- osd_sense_attribute_identification = 0x8,
- scsi_sense_ata_return = 0x9,
-
- scsi_sense_Reserved_first = 0x0A,
- scsi_sense_Reserved_last = 0x7F,
- scsi_sense_Vendor_specific_first = 0x80,
- scsi_sense_Vendor_specific_last = 0xFF,
-};
-
-struct scsi_sense_descriptor { /* for picking into desc type */
- u8 descriptor_type; /* one of enum scsi_descriptor_types */
- u8 additional_length; /* n - 1 */
- u8 data[];
-} __packed;
-
-/* OSD deploys only scsi descriptor_based sense buffers */
-struct scsi_sense_descriptor_based {
-/*0*/ u8 response_code; /* 0x72 or 0x73 */
-/*1*/ u8 sense_key; /* one of enum scsi_sense_keys (4 lower bits) */
-/*2*/ __be16 additional_sense_code; /* enum osd_additional_sense_codes */
-/*4*/ u8 Reserved[3];
-/*7*/ u8 additional_sense_length; /* n - 7 */
-/*8*/ struct scsi_sense_descriptor ssd[0]; /* variable length, 1 or more */
-} __packed;
-
-/* some descriptors deployed by OSD */
-
-/* SPC3r23 4.5.2.3 Command-specific information sense data descriptor */
-/* Note: this is the same for descriptor_type=00 but with type=00 the
- * Reserved[0] == 0x80 (ie. bit-7 set)
- */
-struct scsi_sense_command_specific_data_descriptor {
-/*0*/ u8 descriptor_type; /* (00h/01h) */
-/*1*/ u8 additional_length; /* (0Ah) */
-/*2*/ u8 Reserved[2];
-/*4*/ __be64 information;
-} __packed;
-/*12*/
-
-struct scsi_sense_key_specific_data_descriptor {
-/*0*/ u8 descriptor_type; /* (02h) */
-/*1*/ u8 additional_length; /* (06h) */
-/*2*/ u8 Reserved[2];
-/* SKSV, C/D, Reserved (2), BPV, BIT POINTER (3) */
-/*4*/ u8 sksv_cd_bpv_bp;
-/*5*/ __be16 value; /* field-pointer/progress-value/retry-count/... */
-/*7*/ u8 Reserved2;
-} __packed;
-/*8*/
-
-/* 4.16.2.1 OSD error identification sense data descriptor - table 52 */
-/* Note: these bits are defined LE order for easy definition, this way the BIT()
- * number is the same as in the documentation. Below members at
- * osd_sense_identification_data_descriptor are therefore defined __le32.
- */
-enum osd_command_functions_bits {
- OSD_CFB_COMMAND = BIT(4),
- OSD_CFB_CMD_CAP_VERIFIED = BIT(5),
- OSD_CFB_VALIDATION = BIT(7),
- OSD_CFB_IMP_ST_ATT = BIT(12),
- OSD_CFB_SET_ATT = BIT(20),
- OSD_CFB_SA_CAP_VERIFIED = BIT(21),
- OSD_CFB_GET_ATT = BIT(28),
- OSD_CFB_GA_CAP_VERIFIED = BIT(29),
-};
-
-struct osd_sense_identification_data_descriptor {
-/*0*/ u8 descriptor_type; /* (06h) */
-/*1*/ u8 additional_length; /* (1Eh) */
-/*2*/ u8 Reserved[6];
-/*8*/ __le32 not_initiated_functions; /*osd_command_functions_bits*/
-/*12*/ __le32 completed_functions; /*osd_command_functions_bits*/
-/*16*/ __be64 partition_id;
-/*24*/ __be64 object_id;
-} __packed;
-/*32*/
-
-struct osd_sense_response_integrity_check_descriptor {
-/*0*/ u8 descriptor_type; /* (07h) */
-/*1*/ u8 additional_length; /* (20h) */
-/*2*/ u8 integrity_check_value[32]; /*FIXME: OSDv2_CRYPTO_KEYID_SIZE*/
-} __packed;
-/*34*/
-
-struct osd_sense_attributes_data_descriptor {
-/*0*/ u8 descriptor_type; /* (08h) */
-/*1*/ u8 additional_length; /* (n-2) */
-/*2*/ u8 Reserved[6];
- struct osd_sense_attr {
-/*8*/ __be32 attr_page;
-/*12*/ __be32 attr_id;
-/*16*/ } sense_attrs[0]; /* 1 or more */
-} __packed;
-/*variable*/
-
-/* Dig into scsi_sk_illegal_request/scsi_invalid_field_in_cdb errors */
-
-/*FIXME: Support also field in CAPS*/
-#define OSD_CDB_OFFSET(F) offsetof(struct osd_cdb_head, F)
-
-enum osdv2_cdb_field_offset {
- OSDv1_CFO_STARTING_BYTE = OSD_CDB_OFFSET(v1.start_address),
- OSD_CFO_STARTING_BYTE = OSD_CDB_OFFSET(v2.start_address),
- OSD_CFO_PARTITION_ID = OSD_CDB_OFFSET(partition),
- OSD_CFO_OBJECT_ID = OSD_CDB_OFFSET(object),
- OSD_CFO_PERMISSIONS = sizeof(struct osd_cdb_head) +
- offsetof(struct osd_capability_head,
- permissions_bit_mask),
-};
-
-#endif /* ndef __OSD_SENSE_H__ */
diff --git a/ANDROID_3.4.5/include/scsi/osd_types.h b/ANDROID_3.4.5/include/scsi/osd_types.h
deleted file mode 100644
index bd0be7ed..00000000
--- a/ANDROID_3.4.5/include/scsi/osd_types.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * osd_types.h - Types and constants which are not part of the protocol.
- *
- * Copyright (C) 2008 Panasas Inc. All rights reserved.
- *
- * Authors:
- * Boaz Harrosh <bharrosh@panasas.com>
- * Benny Halevy <bhalevy@panasas.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
- *
- * Contains types and constants that are implementation specific and are
- * used by more than one part of the osd library.
- * (Eg initiator/target/security_manager/...)
- */
-#ifndef __OSD_TYPES_H__
-#define __OSD_TYPES_H__
-
-struct osd_systemid {
- u8 data[OSD_SYSTEMID_LEN];
-};
-
-typedef u64 __bitwise osd_id;
-
-struct osd_obj_id {
- osd_id partition;
- osd_id id;
-};
-
-static const struct __weak osd_obj_id osd_root_object = {0, 0};
-
-struct osd_attr {
- u32 attr_page;
- u32 attr_id;
- u16 len; /* byte count of operand */
- void *val_ptr; /* in network order */
-};
-
-struct osd_sg_entry {
- u64 offset;
- u64 len;
-};
-
-#endif /* ndef __OSD_TYPES_H__ */
diff --git a/ANDROID_3.4.5/include/scsi/sas.h b/ANDROID_3.4.5/include/scsi/sas.h
deleted file mode 100644
index a577a833..00000000
--- a/ANDROID_3.4.5/include/scsi/sas.h
+++ /dev/null
@@ -1,650 +0,0 @@
-/*
- * SAS structures and definitions header file
- *
- * Copyright (C) 2005 Adaptec, Inc. All rights reserved.
- * Copyright (C) 2005 Luben Tuikov <luben_tuikov@adaptec.com>
- *
- * This file is licensed under GPLv2.
- *
- * 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
- *
- */
-
-#ifndef _SAS_H_
-#define _SAS_H_
-
-#include <linux/types.h>
-#include <asm/byteorder.h>
-
-#define SAS_ADDR_SIZE 8
-#define HASHED_SAS_ADDR_SIZE 3
-#define SAS_ADDR(_sa) ((unsigned long long) be64_to_cpu(*(__be64 *)(_sa)))
-
-#define SMP_REQUEST 0x40
-#define SMP_RESPONSE 0x41
-
-#define SSP_DATA 0x01
-#define SSP_XFER_RDY 0x05
-#define SSP_COMMAND 0x06
-#define SSP_RESPONSE 0x07
-#define SSP_TASK 0x16
-
-#define SMP_REPORT_GENERAL 0x00
-#define SMP_REPORT_MANUF_INFO 0x01
-#define SMP_READ_GPIO_REG 0x02
-#define SMP_DISCOVER 0x10
-#define SMP_REPORT_PHY_ERR_LOG 0x11
-#define SMP_REPORT_PHY_SATA 0x12
-#define SMP_REPORT_ROUTE_INFO 0x13
-#define SMP_WRITE_GPIO_REG 0x82
-#define SMP_CONF_ROUTE_INFO 0x90
-#define SMP_PHY_CONTROL 0x91
-#define SMP_PHY_TEST_FUNCTION 0x92
-
-#define SMP_RESP_FUNC_ACC 0x00
-#define SMP_RESP_FUNC_UNK 0x01
-#define SMP_RESP_FUNC_FAILED 0x02
-#define SMP_RESP_INV_FRM_LEN 0x03
-#define SMP_RESP_NO_PHY 0x10
-#define SMP_RESP_NO_INDEX 0x11
-#define SMP_RESP_PHY_NO_SATA 0x12
-#define SMP_RESP_PHY_UNK_OP 0x13
-#define SMP_RESP_PHY_UNK_TESTF 0x14
-#define SMP_RESP_PHY_TEST_INPROG 0x15
-#define SMP_RESP_PHY_VACANT 0x16
-
-/* SAM TMFs */
-#define TMF_ABORT_TASK 0x01
-#define TMF_ABORT_TASK_SET 0x02
-#define TMF_CLEAR_TASK_SET 0x04
-#define TMF_LU_RESET 0x08
-#define TMF_CLEAR_ACA 0x40
-#define TMF_QUERY_TASK 0x80
-
-/* SAS TMF responses */
-#define TMF_RESP_FUNC_COMPLETE 0x00
-#define TMF_RESP_INVALID_FRAME 0x02
-#define TMF_RESP_FUNC_ESUPP 0x04
-#define TMF_RESP_FUNC_FAILED 0x05
-#define TMF_RESP_FUNC_SUCC 0x08
-#define TMF_RESP_NO_LUN 0x09
-#define TMF_RESP_OVERLAPPED_TAG 0x0A
-
-enum sas_oob_mode {
- OOB_NOT_CONNECTED,
- SATA_OOB_MODE,
- SAS_OOB_MODE
-};
-
-/* See sas_discover.c if you plan on changing these */
-enum sas_dev_type {
- NO_DEVICE = 0, /* protocol */
- SAS_END_DEV = 1, /* protocol */
- EDGE_DEV = 2, /* protocol */
- FANOUT_DEV = 3, /* protocol */
- SAS_HA = 4,
- SATA_DEV = 5,
- SATA_PM = 7,
- SATA_PM_PORT= 8,
- SATA_PENDING = 9,
-};
-
-enum sas_protocol {
- SAS_PROTOCOL_SATA = 0x01,
- SAS_PROTOCOL_SMP = 0x02,
- SAS_PROTOCOL_STP = 0x04,
- SAS_PROTOCOL_SSP = 0x08,
- SAS_PROTOCOL_ALL = 0x0E,
- SAS_PROTOCOL_STP_ALL = SAS_PROTOCOL_STP|SAS_PROTOCOL_SATA,
-};
-
-/* From the spec; local phys only */
-enum phy_func {
- PHY_FUNC_NOP,
- PHY_FUNC_LINK_RESET, /* Enables the phy */
- PHY_FUNC_HARD_RESET,
- PHY_FUNC_DISABLE,
- PHY_FUNC_CLEAR_ERROR_LOG = 5,
- PHY_FUNC_CLEAR_AFFIL,
- PHY_FUNC_TX_SATA_PS_SIGNAL,
- PHY_FUNC_RELEASE_SPINUP_HOLD = 0x10, /* LOCAL PORT ONLY! */
- PHY_FUNC_SET_LINK_RATE,
- PHY_FUNC_GET_EVENTS,
-};
-
-/* SAS LLDD would need to report only _very_few_ of those, like BROADCAST.
- * Most of those are here for completeness.
- */
-enum sas_prim {
- SAS_PRIM_AIP_NORMAL = 1,
- SAS_PRIM_AIP_R0 = 2,
- SAS_PRIM_AIP_R1 = 3,
- SAS_PRIM_AIP_R2 = 4,
- SAS_PRIM_AIP_WC = 5,
- SAS_PRIM_AIP_WD = 6,
- SAS_PRIM_AIP_WP = 7,
- SAS_PRIM_AIP_RWP = 8,
-
- SAS_PRIM_BC_CH = 9,
- SAS_PRIM_BC_RCH0 = 10,
- SAS_PRIM_BC_RCH1 = 11,
- SAS_PRIM_BC_R0 = 12,
- SAS_PRIM_BC_R1 = 13,
- SAS_PRIM_BC_R2 = 14,
- SAS_PRIM_BC_R3 = 15,
- SAS_PRIM_BC_R4 = 16,
-
- SAS_PRIM_NOTIFY_ENSP= 17,
- SAS_PRIM_NOTIFY_R0 = 18,
- SAS_PRIM_NOTIFY_R1 = 19,
- SAS_PRIM_NOTIFY_R2 = 20,
-
- SAS_PRIM_CLOSE_CLAF = 21,
- SAS_PRIM_CLOSE_NORM = 22,
- SAS_PRIM_CLOSE_R0 = 23,
- SAS_PRIM_CLOSE_R1 = 24,
-
- SAS_PRIM_OPEN_RTRY = 25,
- SAS_PRIM_OPEN_RJCT = 26,
- SAS_PRIM_OPEN_ACPT = 27,
-
- SAS_PRIM_DONE = 28,
- SAS_PRIM_BREAK = 29,
-
- SATA_PRIM_DMAT = 33,
- SATA_PRIM_PMNAK = 34,
- SATA_PRIM_PMACK = 35,
- SATA_PRIM_PMREQ_S = 36,
- SATA_PRIM_PMREQ_P = 37,
- SATA_SATA_R_ERR = 38,
-};
-
-enum sas_open_rej_reason {
- /* Abandon open */
- SAS_OREJ_UNKNOWN = 0,
- SAS_OREJ_BAD_DEST = 1,
- SAS_OREJ_CONN_RATE = 2,
- SAS_OREJ_EPROTO = 3,
- SAS_OREJ_RESV_AB0 = 4,
- SAS_OREJ_RESV_AB1 = 5,
- SAS_OREJ_RESV_AB2 = 6,
- SAS_OREJ_RESV_AB3 = 7,
- SAS_OREJ_WRONG_DEST= 8,
- SAS_OREJ_STP_NORES = 9,
-
- /* Retry open */
- SAS_OREJ_NO_DEST = 10,
- SAS_OREJ_PATH_BLOCKED = 11,
- SAS_OREJ_RSVD_CONT0 = 12,
- SAS_OREJ_RSVD_CONT1 = 13,
- SAS_OREJ_RSVD_INIT0 = 14,
- SAS_OREJ_RSVD_INIT1 = 15,
- SAS_OREJ_RSVD_STOP0 = 16,
- SAS_OREJ_RSVD_STOP1 = 17,
- SAS_OREJ_RSVD_RETRY = 18,
-};
-
-enum sas_gpio_reg_type {
- SAS_GPIO_REG_CFG = 0,
- SAS_GPIO_REG_RX = 1,
- SAS_GPIO_REG_RX_GP = 2,
- SAS_GPIO_REG_TX = 3,
- SAS_GPIO_REG_TX_GP = 4,
-};
-
-struct dev_to_host_fis {
- u8 fis_type; /* 0x34 */
- u8 flags;
- u8 status;
- u8 error;
-
- u8 lbal;
- union { u8 lbam; u8 byte_count_low; };
- union { u8 lbah; u8 byte_count_high; };
- u8 device;
-
- u8 lbal_exp;
- u8 lbam_exp;
- u8 lbah_exp;
- u8 _r_a;
-
- union { u8 sector_count; u8 interrupt_reason; };
- u8 sector_count_exp;
- u8 _r_b;
- u8 _r_c;
-
- u32 _r_d;
-} __attribute__ ((packed));
-
-struct host_to_dev_fis {
- u8 fis_type; /* 0x27 */
- u8 flags;
- u8 command;
- u8 features;
-
- u8 lbal;
- union { u8 lbam; u8 byte_count_low; };
- union { u8 lbah; u8 byte_count_high; };
- u8 device;
-
- u8 lbal_exp;
- u8 lbam_exp;
- u8 lbah_exp;
- u8 features_exp;
-
- union { u8 sector_count; u8 interrupt_reason; };
- u8 sector_count_exp;
- u8 _r_a;
- u8 control;
-
- u32 _r_b;
-} __attribute__ ((packed));
-
-/* Prefer to have code clarity over header file clarity.
- */
-#ifdef __LITTLE_ENDIAN_BITFIELD
-struct sas_identify_frame {
- /* Byte 0 */
- u8 frame_type:4;
- u8 dev_type:3;
- u8 _un0:1;
-
- /* Byte 1 */
- u8 _un1;
-
- /* Byte 2 */
- union {
- struct {
- u8 _un20:1;
- u8 smp_iport:1;
- u8 stp_iport:1;
- u8 ssp_iport:1;
- u8 _un247:4;
- };
- u8 initiator_bits;
- };
-
- /* Byte 3 */
- union {
- struct {
- u8 _un30:1;
- u8 smp_tport:1;
- u8 stp_tport:1;
- u8 ssp_tport:1;
- u8 _un347:4;
- };
- u8 target_bits;
- };
-
- /* Byte 4 - 11 */
- u8 _un4_11[8];
-
- /* Byte 12 - 19 */
- u8 sas_addr[SAS_ADDR_SIZE];
-
- /* Byte 20 */
- u8 phy_id;
-
- u8 _un21_27[7];
-
- __be32 crc;
-} __attribute__ ((packed));
-
-struct ssp_frame_hdr {
- u8 frame_type;
- u8 hashed_dest_addr[HASHED_SAS_ADDR_SIZE];
- u8 _r_a;
- u8 hashed_src_addr[HASHED_SAS_ADDR_SIZE];
- __be16 _r_b;
-
- u8 changing_data_ptr:1;
- u8 retransmit:1;
- u8 retry_data_frames:1;
- u8 _r_c:5;
-
- u8 num_fill_bytes:2;
- u8 _r_d:6;
-
- u32 _r_e;
- __be16 tag;
- __be16 tptt;
- __be32 data_offs;
-} __attribute__ ((packed));
-
-struct ssp_response_iu {
- u8 _r_a[10];
-
- u8 datapres:2;
- u8 _r_b:6;
-
- u8 status;
-
- u32 _r_c;
-
- __be32 sense_data_len;
- __be32 response_data_len;
-
- u8 resp_data[0];
- u8 sense_data[0];
-} __attribute__ ((packed));
-
-/* ---------- SMP ---------- */
-
-struct report_general_resp {
- __be16 change_count;
- __be16 route_indexes;
- u8 _r_a;
- u8 num_phys;
-
- u8 conf_route_table:1;
- u8 configuring:1;
- u8 config_others:1;
- u8 orej_retry_supp:1;
- u8 stp_cont_awt:1;
- u8 self_config:1;
- u8 zone_config:1;
- u8 t2t_supp:1;
-
- u8 _r_c;
-
- u8 enclosure_logical_id[8];
-
- u8 _r_d[12];
-} __attribute__ ((packed));
-
-struct discover_resp {
- u8 _r_a[5];
-
- u8 phy_id;
- __be16 _r_b;
-
- u8 _r_c:4;
- u8 attached_dev_type:3;
- u8 _r_d:1;
-
- u8 linkrate:4;
- u8 _r_e:4;
-
- u8 attached_sata_host:1;
- u8 iproto:3;
- u8 _r_f:4;
-
- u8 attached_sata_dev:1;
- u8 tproto:3;
- u8 _r_g:3;
- u8 attached_sata_ps:1;
-
- u8 sas_addr[8];
- u8 attached_sas_addr[8];
- u8 attached_phy_id;
-
- u8 _r_h[7];
-
- u8 hmin_linkrate:4;
- u8 pmin_linkrate:4;
- u8 hmax_linkrate:4;
- u8 pmax_linkrate:4;
-
- u8 change_count;
-
- u8 pptv:4;
- u8 _r_i:3;
- u8 virtual:1;
-
- u8 routing_attr:4;
- u8 _r_j:4;
-
- u8 conn_type;
- u8 conn_el_index;
- u8 conn_phy_link;
-
- u8 _r_k[8];
-} __attribute__ ((packed));
-
-struct report_phy_sata_resp {
- u8 _r_a[5];
-
- u8 phy_id;
- u8 _r_b;
-
- u8 affil_valid:1;
- u8 affil_supp:1;
- u8 _r_c:6;
-
- u32 _r_d;
-
- u8 stp_sas_addr[8];
-
- struct dev_to_host_fis fis;
-
- u32 _r_e;
-
- u8 affil_stp_ini_addr[8];
-
- __be32 crc;
-} __attribute__ ((packed));
-
-struct smp_resp {
- u8 frame_type;
- u8 function;
- u8 result;
- u8 reserved;
- union {
- struct report_general_resp rg;
- struct discover_resp disc;
- struct report_phy_sata_resp rps;
- };
-} __attribute__ ((packed));
-
-#elif defined(__BIG_ENDIAN_BITFIELD)
-struct sas_identify_frame {
- /* Byte 0 */
- u8 _un0:1;
- u8 dev_type:3;
- u8 frame_type:4;
-
- /* Byte 1 */
- u8 _un1;
-
- /* Byte 2 */
- union {
- struct {
- u8 _un247:4;
- u8 ssp_iport:1;
- u8 stp_iport:1;
- u8 smp_iport:1;
- u8 _un20:1;
- };
- u8 initiator_bits;
- };
-
- /* Byte 3 */
- union {
- struct {
- u8 _un347:4;
- u8 ssp_tport:1;
- u8 stp_tport:1;
- u8 smp_tport:1;
- u8 _un30:1;
- };
- u8 target_bits;
- };
-
- /* Byte 4 - 11 */
- u8 _un4_11[8];
-
- /* Byte 12 - 19 */
- u8 sas_addr[SAS_ADDR_SIZE];
-
- /* Byte 20 */
- u8 phy_id;
-
- u8 _un21_27[7];
-
- __be32 crc;
-} __attribute__ ((packed));
-
-struct ssp_frame_hdr {
- u8 frame_type;
- u8 hashed_dest_addr[HASHED_SAS_ADDR_SIZE];
- u8 _r_a;
- u8 hashed_src_addr[HASHED_SAS_ADDR_SIZE];
- __be16 _r_b;
-
- u8 _r_c:5;
- u8 retry_data_frames:1;
- u8 retransmit:1;
- u8 changing_data_ptr:1;
-
- u8 _r_d:6;
- u8 num_fill_bytes:2;
-
- u32 _r_e;
- __be16 tag;
- __be16 tptt;
- __be32 data_offs;
-} __attribute__ ((packed));
-
-struct ssp_response_iu {
- u8 _r_a[10];
-
- u8 _r_b:6;
- u8 datapres:2;
-
- u8 status;
-
- u32 _r_c;
-
- __be32 sense_data_len;
- __be32 response_data_len;
-
- u8 resp_data[0];
- u8 sense_data[0];
-} __attribute__ ((packed));
-
-/* ---------- SMP ---------- */
-
-struct report_general_resp {
- __be16 change_count;
- __be16 route_indexes;
- u8 _r_a;
- u8 num_phys;
-
- u8 t2t_supp:1;
- u8 zone_config:1;
- u8 self_config:1;
- u8 stp_cont_awt:1;
- u8 orej_retry_supp:1;
- u8 config_others:1;
- u8 configuring:1;
- u8 conf_route_table:1;
-
- u8 _r_c;
-
- u8 enclosure_logical_id[8];
-
- u8 _r_d[12];
-} __attribute__ ((packed));
-
-struct discover_resp {
- u8 _r_a[5];
-
- u8 phy_id;
- __be16 _r_b;
-
- u8 _r_d:1;
- u8 attached_dev_type:3;
- u8 _r_c:4;
-
- u8 _r_e:4;
- u8 linkrate:4;
-
- u8 _r_f:4;
- u8 iproto:3;
- u8 attached_sata_host:1;
-
- u8 attached_sata_ps:1;
- u8 _r_g:3;
- u8 tproto:3;
- u8 attached_sata_dev:1;
-
- u8 sas_addr[8];
- u8 attached_sas_addr[8];
- u8 attached_phy_id;
-
- u8 _r_h[7];
-
- u8 pmin_linkrate:4;
- u8 hmin_linkrate:4;
- u8 pmax_linkrate:4;
- u8 hmax_linkrate:4;
-
- u8 change_count;
-
- u8 virtual:1;
- u8 _r_i:3;
- u8 pptv:4;
-
- u8 _r_j:4;
- u8 routing_attr:4;
-
- u8 conn_type;
- u8 conn_el_index;
- u8 conn_phy_link;
-
- u8 _r_k[8];
-} __attribute__ ((packed));
-
-struct report_phy_sata_resp {
- u8 _r_a[5];
-
- u8 phy_id;
- u8 _r_b;
-
- u8 _r_c:6;
- u8 affil_supp:1;
- u8 affil_valid:1;
-
- u32 _r_d;
-
- u8 stp_sas_addr[8];
-
- struct dev_to_host_fis fis;
-
- u32 _r_e;
-
- u8 affil_stp_ini_addr[8];
-
- __be32 crc;
-} __attribute__ ((packed));
-
-struct smp_resp {
- u8 frame_type;
- u8 function;
- u8 result;
- u8 reserved;
- union {
- struct report_general_resp rg;
- struct discover_resp disc;
- struct report_phy_sata_resp rps;
- };
-} __attribute__ ((packed));
-
-#else
-#error "Bitfield order not defined!"
-#endif
-
-#endif /* _SAS_H_ */
diff --git a/ANDROID_3.4.5/include/scsi/sas_ata.h b/ANDROID_3.4.5/include/scsi/sas_ata.h
deleted file mode 100644
index 77670e82..00000000
--- a/ANDROID_3.4.5/include/scsi/sas_ata.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Support for SATA devices on Serial Attached SCSI (SAS) controllers
- *
- * Copyright (C) 2006 IBM Corporation
- *
- * Written by: Darrick J. Wong <djwong@us.ibm.com>, IBM Corporation
- *
- * 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
- *
- */
-
-#ifndef _SAS_ATA_H_
-#define _SAS_ATA_H_
-
-#include <linux/libata.h>
-#include <scsi/libsas.h>
-
-#ifdef CONFIG_SCSI_SAS_ATA
-
-static inline int dev_is_sata(struct domain_device *dev)
-{
- return dev->dev_type == SATA_DEV || dev->dev_type == SATA_PM ||
- dev->dev_type == SATA_PM_PORT || dev->dev_type == SATA_PENDING;
-}
-
-int sas_get_ata_info(struct domain_device *dev, struct ex_phy *phy);
-int sas_ata_init(struct domain_device *dev);
-void sas_ata_task_abort(struct sas_task *task);
-void sas_ata_strategy_handler(struct Scsi_Host *shost);
-void sas_ata_eh(struct Scsi_Host *shost, struct list_head *work_q,
- struct list_head *done_q);
-void sas_ata_schedule_reset(struct domain_device *dev);
-void sas_ata_wait_eh(struct domain_device *dev);
-void sas_probe_sata(struct asd_sas_port *port);
-#else
-
-
-static inline int dev_is_sata(struct domain_device *dev)
-{
- return 0;
-}
-static inline int sas_ata_init(struct domain_device *dev)
-{
- return 0;
-}
-static inline void sas_ata_task_abort(struct sas_task *task)
-{
-}
-
-static inline void sas_ata_strategy_handler(struct Scsi_Host *shost)
-{
-}
-
-static inline void sas_ata_eh(struct Scsi_Host *shost, struct list_head *work_q,
- struct list_head *done_q)
-{
-}
-
-static inline void sas_ata_schedule_reset(struct domain_device *dev)
-{
-}
-
-static inline void sas_ata_wait_eh(struct domain_device *dev)
-{
-}
-
-static inline void sas_probe_sata(struct asd_sas_port *port)
-{
-}
-
-static inline int sas_get_ata_info(struct domain_device *dev, struct ex_phy *phy)
-{
- return 0;
-}
-#endif
-
-#endif /* _SAS_ATA_H_ */
diff --git a/ANDROID_3.4.5/include/scsi/scsi.h b/ANDROID_3.4.5/include/scsi/scsi.h
deleted file mode 100644
index f34a5a87..00000000
--- a/ANDROID_3.4.5/include/scsi/scsi.h
+++ /dev/null
@@ -1,565 +0,0 @@
-/*
- * This header file contains public constants and structures used by
- * the scsi code for linux.
- *
- * For documentation on the OPCODES, MESSAGES, and SENSE values,
- * please consult the SCSI standard.
- */
-#ifndef _SCSI_SCSI_H
-#define _SCSI_SCSI_H
-
-#include <linux/types.h>
-#include <linux/scatterlist.h>
-
-struct scsi_cmnd;
-
-/*
- * The maximum number of SG segments that we will put inside a
- * scatterlist (unless chaining is used). Should ideally fit inside a
- * single page, to avoid a higher order allocation. We could define this
- * to SG_MAX_SINGLE_ALLOC to pack correctly at the highest order. The
- * minimum value is 32
- */
-#define SCSI_MAX_SG_SEGMENTS 128
-
-/*
- * Like SCSI_MAX_SG_SEGMENTS, but for archs that have sg chaining. This limit
- * is totally arbitrary, a setting of 2048 will get you at least 8mb ios.
- */
-#ifdef ARCH_HAS_SG_CHAIN
-#define SCSI_MAX_SG_CHAIN_SEGMENTS 2048
-#else
-#define SCSI_MAX_SG_CHAIN_SEGMENTS SCSI_MAX_SG_SEGMENTS
-#endif
-
-/*
- * DIX-capable adapters effectively support infinite chaining for the
- * protection information scatterlist
- */
-#define SCSI_MAX_PROT_SG_SEGMENTS 0xFFFF
-
-/*
- * Special value for scanning to specify scanning or rescanning of all
- * possible channels, (target) ids, or luns on a given shost.
- */
-#define SCAN_WILD_CARD ~0
-
-/*
- * SCSI opcodes
- */
-
-#define TEST_UNIT_READY 0x00
-#define REZERO_UNIT 0x01
-#define REQUEST_SENSE 0x03
-#define FORMAT_UNIT 0x04
-#define READ_BLOCK_LIMITS 0x05
-#define REASSIGN_BLOCKS 0x07
-#define INITIALIZE_ELEMENT_STATUS 0x07
-#define READ_6 0x08
-#define WRITE_6 0x0a
-#define SEEK_6 0x0b
-#define READ_REVERSE 0x0f
-#define WRITE_FILEMARKS 0x10
-#define SPACE 0x11
-#define INQUIRY 0x12
-#define RECOVER_BUFFERED_DATA 0x14
-#define MODE_SELECT 0x15
-#define RESERVE 0x16
-#define RELEASE 0x17
-#define COPY 0x18
-#define ERASE 0x19
-#define MODE_SENSE 0x1a
-#define START_STOP 0x1b
-#define RECEIVE_DIAGNOSTIC 0x1c
-#define SEND_DIAGNOSTIC 0x1d
-#define ALLOW_MEDIUM_REMOVAL 0x1e
-
-#define READ_FORMAT_CAPACITIES 0x23
-#define SET_WINDOW 0x24
-#define READ_CAPACITY 0x25
-#define READ_10 0x28
-#define WRITE_10 0x2a
-#define SEEK_10 0x2b
-#define POSITION_TO_ELEMENT 0x2b
-#define WRITE_VERIFY 0x2e
-#define VERIFY 0x2f
-#define SEARCH_HIGH 0x30
-#define SEARCH_EQUAL 0x31
-#define SEARCH_LOW 0x32
-#define SET_LIMITS 0x33
-#define PRE_FETCH 0x34
-#define READ_POSITION 0x34
-#define SYNCHRONIZE_CACHE 0x35
-#define LOCK_UNLOCK_CACHE 0x36
-#define READ_DEFECT_DATA 0x37
-#define MEDIUM_SCAN 0x38
-#define COMPARE 0x39
-#define COPY_VERIFY 0x3a
-#define WRITE_BUFFER 0x3b
-#define READ_BUFFER 0x3c
-#define UPDATE_BLOCK 0x3d
-#define READ_LONG 0x3e
-#define WRITE_LONG 0x3f
-#define CHANGE_DEFINITION 0x40
-#define WRITE_SAME 0x41
-#define UNMAP 0x42
-#define READ_TOC 0x43
-#define READ_HEADER 0x44
-#define GET_EVENT_STATUS_NOTIFICATION 0x4a
-#define LOG_SELECT 0x4c
-#define LOG_SENSE 0x4d
-#define XDWRITEREAD_10 0x53
-#define MODE_SELECT_10 0x55
-#define RESERVE_10 0x56
-#define RELEASE_10 0x57
-#define MODE_SENSE_10 0x5a
-#define PERSISTENT_RESERVE_IN 0x5e
-#define PERSISTENT_RESERVE_OUT 0x5f
-#define VARIABLE_LENGTH_CMD 0x7f
-#define REPORT_LUNS 0xa0
-#define SECURITY_PROTOCOL_IN 0xa2
-#define MAINTENANCE_IN 0xa3
-#define MAINTENANCE_OUT 0xa4
-#define MOVE_MEDIUM 0xa5
-#define EXCHANGE_MEDIUM 0xa6
-#define READ_12 0xa8
-#define WRITE_12 0xaa
-#define READ_MEDIA_SERIAL_NUMBER 0xab
-#define WRITE_VERIFY_12 0xae
-#define VERIFY_12 0xaf
-#define SEARCH_HIGH_12 0xb0
-#define SEARCH_EQUAL_12 0xb1
-#define SEARCH_LOW_12 0xb2
-#define SECURITY_PROTOCOL_OUT 0xb5
-#define READ_ELEMENT_STATUS 0xb8
-#define SEND_VOLUME_TAG 0xb6
-#define WRITE_LONG_2 0xea
-#define EXTENDED_COPY 0x83
-#define RECEIVE_COPY_RESULTS 0x84
-#define ACCESS_CONTROL_IN 0x86
-#define ACCESS_CONTROL_OUT 0x87
-#define READ_16 0x88
-#define WRITE_16 0x8a
-#define READ_ATTRIBUTE 0x8c
-#define WRITE_ATTRIBUTE 0x8d
-#define VERIFY_16 0x8f
-#define SYNCHRONIZE_CACHE_16 0x91
-#define WRITE_SAME_16 0x93
-#define SERVICE_ACTION_IN 0x9e
-/* values for service action in */
-#define SAI_READ_CAPACITY_16 0x10
-#define SAI_GET_LBA_STATUS 0x12
-/* values for VARIABLE_LENGTH_CMD service action codes
- * see spc4r17 Section D.3.5, table D.7 and D.8 */
-#define VLC_SA_RECEIVE_CREDENTIAL 0x1800
-/* values for maintenance in */
-#define MI_REPORT_IDENTIFYING_INFORMATION 0x05
-#define MI_REPORT_TARGET_PGS 0x0a
-#define MI_REPORT_ALIASES 0x0b
-#define MI_REPORT_SUPPORTED_OPERATION_CODES 0x0c
-#define MI_REPORT_SUPPORTED_TASK_MANAGEMENT_FUNCTIONS 0x0d
-#define MI_REPORT_PRIORITY 0x0e
-#define MI_REPORT_TIMESTAMP 0x0f
-#define MI_MANAGEMENT_PROTOCOL_IN 0x10
-/* values for maintenance out */
-#define MO_SET_IDENTIFYING_INFORMATION 0x06
-#define MO_SET_TARGET_PGS 0x0a
-#define MO_CHANGE_ALIASES 0x0b
-#define MO_SET_PRIORITY 0x0e
-#define MO_SET_TIMESTAMP 0x0f
-#define MO_MANAGEMENT_PROTOCOL_OUT 0x10
-/* values for variable length command */
-#define XDREAD_32 0x03
-#define XDWRITE_32 0x04
-#define XPWRITE_32 0x06
-#define XDWRITEREAD_32 0x07
-#define READ_32 0x09
-#define VERIFY_32 0x0a
-#define WRITE_32 0x0b
-#define WRITE_SAME_32 0x0d
-
-/* Values for T10/04-262r7 */
-#define ATA_16 0x85 /* 16-byte pass-thru */
-#define ATA_12 0xa1 /* 12-byte pass-thru */
-
-/*
- * SCSI command lengths
- */
-
-#define SCSI_MAX_VARLEN_CDB_SIZE 260
-
-/* defined in T10 SCSI Primary Commands-2 (SPC2) */
-struct scsi_varlen_cdb_hdr {
- __u8 opcode; /* opcode always == VARIABLE_LENGTH_CMD */
- __u8 control;
- __u8 misc[5];
- __u8 additional_cdb_length; /* total cdb length - 8 */
- __be16 service_action;
- /* service specific data follows */
-};
-
-static inline unsigned
-scsi_varlen_cdb_length(const void *hdr)
-{
- return ((struct scsi_varlen_cdb_hdr *)hdr)->additional_cdb_length + 8;
-}
-
-extern const unsigned char scsi_command_size_tbl[8];
-#define COMMAND_SIZE(opcode) scsi_command_size_tbl[((opcode) >> 5) & 7]
-
-static inline unsigned
-scsi_command_size(const unsigned char *cmnd)
-{
- return (cmnd[0] == VARIABLE_LENGTH_CMD) ?
- scsi_varlen_cdb_length(cmnd) : COMMAND_SIZE(cmnd[0]);
-}
-
-/*
- * SCSI Architecture Model (SAM) Status codes. Taken from SAM-3 draft
- * T10/1561-D Revision 4 Draft dated 7th November 2002.
- */
-#define SAM_STAT_GOOD 0x00
-#define SAM_STAT_CHECK_CONDITION 0x02
-#define SAM_STAT_CONDITION_MET 0x04
-#define SAM_STAT_BUSY 0x08
-#define SAM_STAT_INTERMEDIATE 0x10
-#define SAM_STAT_INTERMEDIATE_CONDITION_MET 0x14
-#define SAM_STAT_RESERVATION_CONFLICT 0x18
-#define SAM_STAT_COMMAND_TERMINATED 0x22 /* obsolete in SAM-3 */
-#define SAM_STAT_TASK_SET_FULL 0x28
-#define SAM_STAT_ACA_ACTIVE 0x30
-#define SAM_STAT_TASK_ABORTED 0x40
-
-/** scsi_status_is_good - check the status return.
- *
- * @status: the status passed up from the driver (including host and
- * driver components)
- *
- * This returns true for known good conditions that may be treated as
- * command completed normally
- */
-static inline int scsi_status_is_good(int status)
-{
- /*
- * FIXME: bit0 is listed as reserved in SCSI-2, but is
- * significant in SCSI-3. For now, we follow the SCSI-2
- * behaviour and ignore reserved bits.
- */
- status &= 0xfe;
- return ((status == SAM_STAT_GOOD) ||
- (status == SAM_STAT_INTERMEDIATE) ||
- (status == SAM_STAT_INTERMEDIATE_CONDITION_MET) ||
- /* FIXME: this is obsolete in SAM-3 */
- (status == SAM_STAT_COMMAND_TERMINATED));
-}
-
-/*
- * Status codes. These are deprecated as they are shifted 1 bit right
- * from those found in the SCSI standards. This causes confusion for
- * applications that are ported to several OSes. Prefer SAM Status codes
- * above.
- */
-
-#define GOOD 0x00
-#define CHECK_CONDITION 0x01
-#define CONDITION_GOOD 0x02
-#define BUSY 0x04
-#define INTERMEDIATE_GOOD 0x08
-#define INTERMEDIATE_C_GOOD 0x0a
-#define RESERVATION_CONFLICT 0x0c
-#define COMMAND_TERMINATED 0x11
-#define QUEUE_FULL 0x14
-#define ACA_ACTIVE 0x18
-#define TASK_ABORTED 0x20
-
-#define STATUS_MASK 0xfe
-
-/*
- * SENSE KEYS
- */
-
-#define NO_SENSE 0x00
-#define RECOVERED_ERROR 0x01
-#define NOT_READY 0x02
-#define MEDIUM_ERROR 0x03
-#define HARDWARE_ERROR 0x04
-#define ILLEGAL_REQUEST 0x05
-#define UNIT_ATTENTION 0x06
-#define DATA_PROTECT 0x07
-#define BLANK_CHECK 0x08
-#define COPY_ABORTED 0x0a
-#define ABORTED_COMMAND 0x0b
-#define VOLUME_OVERFLOW 0x0d
-#define MISCOMPARE 0x0e
-
-
-/*
- * DEVICE TYPES
- * Please keep them in 0x%02x format for $MODALIAS to work
- */
-
-#define TYPE_DISK 0x00
-#define TYPE_TAPE 0x01
-#define TYPE_PRINTER 0x02
-#define TYPE_PROCESSOR 0x03 /* HP scanners use this */
-#define TYPE_WORM 0x04 /* Treated as ROM by our system */
-#define TYPE_ROM 0x05
-#define TYPE_SCANNER 0x06
-#define TYPE_MOD 0x07 /* Magneto-optical disk -
- * - treated as TYPE_DISK */
-#define TYPE_MEDIUM_CHANGER 0x08
-#define TYPE_COMM 0x09 /* Communications device */
-#define TYPE_RAID 0x0c
-#define TYPE_ENCLOSURE 0x0d /* Enclosure Services Device */
-#define TYPE_RBC 0x0e
-#define TYPE_OSD 0x11
-#define TYPE_NO_LUN 0x7f
-
-/* SCSI protocols; these are taken from SPC-3 section 7.5 */
-enum scsi_protocol {
- SCSI_PROTOCOL_FCP = 0, /* Fibre Channel */
- SCSI_PROTOCOL_SPI = 1, /* parallel SCSI */
- SCSI_PROTOCOL_SSA = 2, /* Serial Storage Architecture - Obsolete */
- SCSI_PROTOCOL_SBP = 3, /* firewire */
- SCSI_PROTOCOL_SRP = 4, /* Infiniband RDMA */
- SCSI_PROTOCOL_ISCSI = 5,
- SCSI_PROTOCOL_SAS = 6,
- SCSI_PROTOCOL_ADT = 7, /* Media Changers */
- SCSI_PROTOCOL_ATA = 8,
- SCSI_PROTOCOL_UNSPEC = 0xf, /* No specific protocol */
-};
-
-/* Returns a human-readable name for the device */
-extern const char * scsi_device_type(unsigned type);
-
-/*
- * standard mode-select header prepended to all mode-select commands
- */
-
-struct ccs_modesel_head {
- __u8 _r1; /* reserved */
- __u8 medium; /* device-specific medium type */
- __u8 _r2; /* reserved */
- __u8 block_desc_length; /* block descriptor length */
- __u8 density; /* device-specific density code */
- __u8 number_blocks_hi; /* number of blocks in this block desc */
- __u8 number_blocks_med;
- __u8 number_blocks_lo;
- __u8 _r3;
- __u8 block_length_hi; /* block length for blocks in this desc */
- __u8 block_length_med;
- __u8 block_length_lo;
-};
-
-/*
- * ScsiLun: 8 byte LUN.
- */
-struct scsi_lun {
- __u8 scsi_lun[8];
-};
-
-/*
- * The Well Known LUNS (SAM-3) in our int representation of a LUN
- */
-#define SCSI_W_LUN_BASE 0xc100
-#define SCSI_W_LUN_REPORT_LUNS (SCSI_W_LUN_BASE + 1)
-#define SCSI_W_LUN_ACCESS_CONTROL (SCSI_W_LUN_BASE + 2)
-#define SCSI_W_LUN_TARGET_LOG_PAGE (SCSI_W_LUN_BASE + 3)
-
-static inline int scsi_is_wlun(unsigned int lun)
-{
- return (lun & 0xff00) == SCSI_W_LUN_BASE;
-}
-
-
-/*
- * MESSAGE CODES
- */
-
-#define COMMAND_COMPLETE 0x00
-#define EXTENDED_MESSAGE 0x01
-#define EXTENDED_MODIFY_DATA_POINTER 0x00
-#define EXTENDED_SDTR 0x01
-#define EXTENDED_EXTENDED_IDENTIFY 0x02 /* SCSI-I only */
-#define EXTENDED_WDTR 0x03
-#define EXTENDED_PPR 0x04
-#define EXTENDED_MODIFY_BIDI_DATA_PTR 0x05
-#define SAVE_POINTERS 0x02
-#define RESTORE_POINTERS 0x03
-#define DISCONNECT 0x04
-#define INITIATOR_ERROR 0x05
-#define ABORT_TASK_SET 0x06
-#define MESSAGE_REJECT 0x07
-#define NOP 0x08
-#define MSG_PARITY_ERROR 0x09
-#define LINKED_CMD_COMPLETE 0x0a
-#define LINKED_FLG_CMD_COMPLETE 0x0b
-#define TARGET_RESET 0x0c
-#define ABORT_TASK 0x0d
-#define CLEAR_TASK_SET 0x0e
-#define INITIATE_RECOVERY 0x0f /* SCSI-II only */
-#define RELEASE_RECOVERY 0x10 /* SCSI-II only */
-#define CLEAR_ACA 0x16
-#define LOGICAL_UNIT_RESET 0x17
-#define SIMPLE_QUEUE_TAG 0x20
-#define HEAD_OF_QUEUE_TAG 0x21
-#define ORDERED_QUEUE_TAG 0x22
-#define IGNORE_WIDE_RESIDUE 0x23
-#define ACA 0x24
-#define QAS_REQUEST 0x55
-
-/* Old SCSI2 names, don't use in new code */
-#define BUS_DEVICE_RESET TARGET_RESET
-#define ABORT ABORT_TASK_SET
-
-/*
- * Host byte codes
- */
-
-#define DID_OK 0x00 /* NO error */
-#define DID_NO_CONNECT 0x01 /* Couldn't connect before timeout period */
-#define DID_BUS_BUSY 0x02 /* BUS stayed busy through time out period */
-#define DID_TIME_OUT 0x03 /* TIMED OUT for other reason */
-#define DID_BAD_TARGET 0x04 /* BAD target. */
-#define DID_ABORT 0x05 /* Told to abort for some other reason */
-#define DID_PARITY 0x06 /* Parity error */
-#define DID_ERROR 0x07 /* Internal error */
-#define DID_RESET 0x08 /* Reset by somebody. */
-#define DID_BAD_INTR 0x09 /* Got an interrupt we weren't expecting. */
-#define DID_PASSTHROUGH 0x0a /* Force command past mid-layer */
-#define DID_SOFT_ERROR 0x0b /* The low level driver just wish a retry */
-#define DID_IMM_RETRY 0x0c /* Retry without decrementing retry count */
-#define DID_REQUEUE 0x0d /* Requeue command (no immediate retry) also
- * without decrementing the retry count */
-#define DID_TRANSPORT_DISRUPTED 0x0e /* Transport error disrupted execution
- * and the driver blocked the port to
- * recover the link. Transport class will
- * retry or fail IO */
-#define DID_TRANSPORT_FAILFAST 0x0f /* Transport class fastfailed the io */
-#define DID_TARGET_FAILURE 0x10 /* Permanent target failure, do not retry on
- * other paths */
-#define DID_NEXUS_FAILURE 0x11 /* Permanent nexus failure, retry on other
- * paths might yield different results */
-#define DRIVER_OK 0x00 /* Driver status */
-
-/*
- * These indicate the error that occurred, and what is available.
- */
-
-#define DRIVER_BUSY 0x01
-#define DRIVER_SOFT 0x02
-#define DRIVER_MEDIA 0x03
-#define DRIVER_ERROR 0x04
-
-#define DRIVER_INVALID 0x05
-#define DRIVER_TIMEOUT 0x06
-#define DRIVER_HARD 0x07
-#define DRIVER_SENSE 0x08
-
-/*
- * Internal return values.
- */
-
-#define NEEDS_RETRY 0x2001
-#define SUCCESS 0x2002
-#define FAILED 0x2003
-#define QUEUED 0x2004
-#define SOFT_ERROR 0x2005
-#define ADD_TO_MLQUEUE 0x2006
-#define TIMEOUT_ERROR 0x2007
-#define SCSI_RETURN_NOT_HANDLED 0x2008
-#define FAST_IO_FAIL 0x2009
-#define TARGET_ERROR 0x200A
-
-/*
- * Midlevel queue return values.
- */
-#define SCSI_MLQUEUE_HOST_BUSY 0x1055
-#define SCSI_MLQUEUE_DEVICE_BUSY 0x1056
-#define SCSI_MLQUEUE_EH_RETRY 0x1057
-#define SCSI_MLQUEUE_TARGET_BUSY 0x1058
-
-/*
- * Use these to separate status msg and our bytes
- *
- * These are set by:
- *
- * status byte = set from target device
- * msg_byte = return status from host adapter itself.
- * host_byte = set by low-level driver to indicate status.
- * driver_byte = set by mid-level.
- */
-#define status_byte(result) (((result) >> 1) & 0x7f)
-#define msg_byte(result) (((result) >> 8) & 0xff)
-#define host_byte(result) (((result) >> 16) & 0xff)
-#define driver_byte(result) (((result) >> 24) & 0xff)
-
-#define sense_class(sense) (((sense) >> 4) & 0x7)
-#define sense_error(sense) ((sense) & 0xf)
-#define sense_valid(sense) ((sense) & 0x80)
-
-/*
- * default timeouts
-*/
-#define FORMAT_UNIT_TIMEOUT (2 * 60 * 60 * HZ)
-#define START_STOP_TIMEOUT (60 * HZ)
-#define MOVE_MEDIUM_TIMEOUT (5 * 60 * HZ)
-#define READ_ELEMENT_STATUS_TIMEOUT (5 * 60 * HZ)
-#define READ_DEFECT_DATA_TIMEOUT (60 * HZ )
-
-
-#define IDENTIFY_BASE 0x80
-#define IDENTIFY(can_disconnect, lun) (IDENTIFY_BASE |\
- ((can_disconnect) ? 0x40 : 0) |\
- ((lun) & 0x07))
-
-/*
- * struct scsi_device::scsi_level values. For SCSI devices other than those
- * prior to SCSI-2 (i.e. over 12 years old) this value is (resp[2] + 1)
- * where "resp" is a byte array of the response to an INQUIRY. The scsi_level
- * variable is visible to the user via sysfs.
- */
-
-#define SCSI_UNKNOWN 0
-#define SCSI_1 1
-#define SCSI_1_CCS 2
-#define SCSI_2 3
-#define SCSI_3 4 /* SPC */
-#define SCSI_SPC_2 5
-#define SCSI_SPC_3 6
-
-/*
- * INQ PERIPHERAL QUALIFIERS
- */
-#define SCSI_INQ_PQ_CON 0x00
-#define SCSI_INQ_PQ_NOT_CON 0x01
-#define SCSI_INQ_PQ_NOT_CAP 0x03
-
-
-/*
- * Here are some scsi specific ioctl commands which are sometimes useful.
- *
- * Note that include/linux/cdrom.h also defines IOCTL 0x5300 - 0x5395
- */
-
-/* Used to obtain PUN and LUN info. Conflicts with CDROMAUDIOBUFSIZ */
-#define SCSI_IOCTL_GET_IDLUN 0x5382
-
-/* 0x5383 and 0x5384 were used for SCSI_IOCTL_TAGGED_{ENABLE,DISABLE} */
-
-/* Used to obtain the host number of a device. */
-#define SCSI_IOCTL_PROBE_HOST 0x5385
-
-/* Used to obtain the bus number for a device */
-#define SCSI_IOCTL_GET_BUS_NUMBER 0x5386
-
-/* Used to obtain the PCI location of a device */
-#define SCSI_IOCTL_GET_PCI 0x5387
-
-/* Pull a u32 out of a SCSI message (using BE SCSI conventions) */
-static inline __u32 scsi_to_u32(__u8 *ptr)
-{
- return (ptr[0]<<24) + (ptr[1]<<16) + (ptr[2]<<8) + ptr[3];
-}
-
-#endif /* _SCSI_SCSI_H */
diff --git a/ANDROID_3.4.5/include/scsi/scsi_bsg_fc.h b/ANDROID_3.4.5/include/scsi/scsi_bsg_fc.h
deleted file mode 100644
index 91a4e4ff..00000000
--- a/ANDROID_3.4.5/include/scsi/scsi_bsg_fc.h
+++ /dev/null
@@ -1,322 +0,0 @@
-/*
- * FC Transport BSG Interface
- *
- * Copyright (C) 2008 James Smart, Emulex Corporation
- *
- * 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
- *
- */
-
-#ifndef SCSI_BSG_FC_H
-#define SCSI_BSG_FC_H
-
-/*
- * This file intended to be included by both kernel and user space
- */
-
-#include <scsi/scsi.h>
-
-/*
- * FC Transport SGIO v4 BSG Message Support
- */
-
-/* Default BSG request timeout (in seconds) */
-#define FC_DEFAULT_BSG_TIMEOUT (10 * HZ)
-
-
-/*
- * Request Message Codes supported by the FC Transport
- */
-
-/* define the class masks for the message codes */
-#define FC_BSG_CLS_MASK 0xF0000000 /* find object class */
-#define FC_BSG_HST_MASK 0x80000000 /* fc host class */
-#define FC_BSG_RPT_MASK 0x40000000 /* fc rport class */
-
- /* fc_host Message Codes */
-#define FC_BSG_HST_ADD_RPORT (FC_BSG_HST_MASK | 0x00000001)
-#define FC_BSG_HST_DEL_RPORT (FC_BSG_HST_MASK | 0x00000002)
-#define FC_BSG_HST_ELS_NOLOGIN (FC_BSG_HST_MASK | 0x00000003)
-#define FC_BSG_HST_CT (FC_BSG_HST_MASK | 0x00000004)
-#define FC_BSG_HST_VENDOR (FC_BSG_HST_MASK | 0x000000FF)
-
- /* fc_rport Message Codes */
-#define FC_BSG_RPT_ELS (FC_BSG_RPT_MASK | 0x00000001)
-#define FC_BSG_RPT_CT (FC_BSG_RPT_MASK | 0x00000002)
-
-
-
-/*
- * FC Address Identifiers in Message Structures :
- *
- * Whenever a command payload contains a FC Address Identifier
- * (aka port_id), the value is effectively in big-endian
- * order, thus the array elements are decoded as follows:
- * element [0] is bits 23:16 of the FC Address Identifier
- * element [1] is bits 15:8 of the FC Address Identifier
- * element [2] is bits 7:0 of the FC Address Identifier
- */
-
-
-/*
- * FC Host Messages
- */
-
-/* FC_BSG_HST_ADDR_PORT : */
-
-/* Request:
- * This message requests the FC host to login to the remote port
- * at the specified N_Port_Id. The remote port is to be enumerated
- * with the transport upon completion of the login.
- */
-struct fc_bsg_host_add_rport {
- uint8_t reserved;
-
- /* FC Address Identier of the remote port to login to */
- uint8_t port_id[3];
-};
-
-/* Response:
- * There is no additional response data - fc_bsg_reply->result is sufficient
- */
-
-
-/* FC_BSG_HST_DEL_RPORT : */
-
-/* Request:
- * This message requests the FC host to remove an enumerated
- * remote port and to terminate the login to it.
- *
- * Note: The driver is free to reject this request if it desires to
- * remain logged in with the remote port.
- */
-struct fc_bsg_host_del_rport {
- uint8_t reserved;
-
- /* FC Address Identier of the remote port to logout of */
- uint8_t port_id[3];
-};
-
-/* Response:
- * There is no additional response data - fc_bsg_reply->result is sufficient
- */
-
-
-/* FC_BSG_HST_ELS_NOLOGIN : */
-
-/* Request:
- * This message requests the FC_Host to send an ELS to a specific
- * N_Port_ID. The host does not need to log into the remote port,
- * nor does it need to enumerate the rport for further traffic
- * (although, the FC host is free to do so if it desires).
- */
-struct fc_bsg_host_els {
- /*
- * ELS Command Code being sent (must be the same as byte 0
- * of the payload)
- */
- uint8_t command_code;
-
- /* FC Address Identier of the remote port to send the ELS to */
- uint8_t port_id[3];
-};
-
-/* Response:
- */
-/* fc_bsg_ctels_reply->status values */
-#define FC_CTELS_STATUS_OK 0x00000000
-#define FC_CTELS_STATUS_REJECT 0x00000001
-#define FC_CTELS_STATUS_P_RJT 0x00000002
-#define FC_CTELS_STATUS_F_RJT 0x00000003
-#define FC_CTELS_STATUS_P_BSY 0x00000004
-#define FC_CTELS_STATUS_F_BSY 0x00000006
-struct fc_bsg_ctels_reply {
- /*
- * Note: An ELS LS_RJT may be reported in 2 ways:
- * a) A status of FC_CTELS_STATUS_OK is returned. The caller
- * is to look into the ELS receive payload to determine
- * LS_ACC or LS_RJT (by contents of word 0). The reject
- * data will be in word 1.
- * b) A status of FC_CTELS_STATUS_REJECT is returned, The
- * rjt_data field will contain valid data.
- *
- * Note: ELS LS_ACC is determined by an FC_CTELS_STATUS_OK, and
- * the receive payload word 0 indicates LS_ACC
- * (e.g. value is 0x02xxxxxx).
- *
- * Note: Similarly, a CT Reject may be reported in 2 ways:
- * a) A status of FC_CTELS_STATUS_OK is returned. The caller
- * is to look into the CT receive payload to determine
- * Accept or Reject (by contents of word 2). The reject
- * data will be in word 3.
- * b) A status of FC_CTELS_STATUS_REJECT is returned, The
- * rjt_data field will contain valid data.
- *
- * Note: x_RJT/BSY status will indicae that the rjt_data field
- * is valid and contains the reason/explanation values.
- */
- uint32_t status; /* See FC_CTELS_STATUS_xxx */
-
- /* valid if status is not FC_CTELS_STATUS_OK */
- struct {
- uint8_t action; /* fragment_id for CT REJECT */
- uint8_t reason_code;
- uint8_t reason_explanation;
- uint8_t vendor_unique;
- } rjt_data;
-};
-
-
-/* FC_BSG_HST_CT : */
-
-/* Request:
- * This message requests that a CT Request be performed with the
- * indicated N_Port_ID. The driver is responsible for logging in with
- * the fabric and/or N_Port_ID, etc as per FC rules. This request does
- * not mandate that the driver must enumerate the destination in the
- * transport. The driver is allowed to decide whether to enumerate it,
- * and whether to tear it down after the request.
- */
-struct fc_bsg_host_ct {
- uint8_t reserved;
-
- /* FC Address Identier of the remote port to send the ELS to */
- uint8_t port_id[3];
-
- /*
- * We need words 0-2 of the generic preamble for the LLD's
- */
- uint32_t preamble_word0; /* revision & IN_ID */
- uint32_t preamble_word1; /* GS_Type, GS_SubType, Options, Rsvd */
- uint32_t preamble_word2; /* Cmd Code, Max Size */
-
-};
-/* Response:
- *
- * The reply structure is an fc_bsg_ctels_reply structure
- */
-
-
-/* FC_BSG_HST_VENDOR : */
-
-/* Request:
- * Note: When specifying vendor_id, be sure to read the Vendor Type and ID
- * formatting requirements specified in scsi_netlink.h
- */
-struct fc_bsg_host_vendor {
- /*
- * Identifies the vendor that the message is formatted for. This
- * should be the recipient of the message.
- */
- uint64_t vendor_id;
-
- /* start of vendor command area */
- uint32_t vendor_cmd[0];
-};
-
-/* Response:
- */
-struct fc_bsg_host_vendor_reply {
- /* start of vendor response area */
- uint32_t vendor_rsp[0];
-};
-
-
-
-/*
- * FC Remote Port Messages
- */
-
-/* FC_BSG_RPT_ELS : */
-
-/* Request:
- * This message requests that an ELS be performed with the rport.
- */
-struct fc_bsg_rport_els {
- /*
- * ELS Command Code being sent (must be the same as
- * byte 0 of the payload)
- */
- uint8_t els_code;
-};
-
-/* Response:
- *
- * The reply structure is an fc_bsg_ctels_reply structure
- */
-
-
-/* FC_BSG_RPT_CT : */
-
-/* Request:
- * This message requests that a CT Request be performed with the rport.
- */
-struct fc_bsg_rport_ct {
- /*
- * We need words 0-2 of the generic preamble for the LLD's
- */
- uint32_t preamble_word0; /* revision & IN_ID */
- uint32_t preamble_word1; /* GS_Type, GS_SubType, Options, Rsvd */
- uint32_t preamble_word2; /* Cmd Code, Max Size */
-};
-/* Response:
- *
- * The reply structure is an fc_bsg_ctels_reply structure
- */
-
-
-
-
-/* request (CDB) structure of the sg_io_v4 */
-struct fc_bsg_request {
- uint32_t msgcode;
- union {
- struct fc_bsg_host_add_rport h_addrport;
- struct fc_bsg_host_del_rport h_delrport;
- struct fc_bsg_host_els h_els;
- struct fc_bsg_host_ct h_ct;
- struct fc_bsg_host_vendor h_vendor;
-
- struct fc_bsg_rport_els r_els;
- struct fc_bsg_rport_ct r_ct;
- } rqst_data;
-} __attribute__((packed));
-
-
-/* response (request sense data) structure of the sg_io_v4 */
-struct fc_bsg_reply {
- /*
- * The completion result. Result exists in two forms:
- * if negative, it is an -Exxx system errno value. There will
- * be no further reply information supplied.
- * else, it's the 4-byte scsi error result, with driver, host,
- * msg and status fields. The per-msgcode reply structure
- * will contain valid data.
- */
- uint32_t result;
-
- /* If there was reply_payload, how much was recevied ? */
- uint32_t reply_payload_rcv_len;
-
- union {
- struct fc_bsg_host_vendor_reply vendor_reply;
-
- struct fc_bsg_ctels_reply ctels_reply;
- } reply_data;
-};
-
-
-#endif /* SCSI_BSG_FC_H */
-
diff --git a/ANDROID_3.4.5/include/scsi/scsi_bsg_iscsi.h b/ANDROID_3.4.5/include/scsi/scsi_bsg_iscsi.h
deleted file mode 100644
index fd5689d4..00000000
--- a/ANDROID_3.4.5/include/scsi/scsi_bsg_iscsi.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * iSCSI Transport BSG Interface
- *
- * Copyright (C) 2009 James Smart, Emulex Corporation
- *
- * 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
- *
- */
-
-#ifndef SCSI_BSG_ISCSI_H
-#define SCSI_BSG_ISCSI_H
-
-/*
- * This file intended to be included by both kernel and user space
- */
-
-#include <scsi/scsi.h>
-
-/*
- * iSCSI Transport SGIO v4 BSG Message Support
- */
-
-/* Default BSG request timeout (in seconds) */
-#define ISCSI_DEFAULT_BSG_TIMEOUT (10 * HZ)
-
-
-/*
- * Request Message Codes supported by the iSCSI Transport
- */
-
-/* define the class masks for the message codes */
-#define ISCSI_BSG_CLS_MASK 0xF0000000 /* find object class */
-#define ISCSI_BSG_HST_MASK 0x80000000 /* iscsi host class */
-
-/* iscsi host Message Codes */
-#define ISCSI_BSG_HST_VENDOR (ISCSI_BSG_HST_MASK | 0x000000FF)
-
-
-/*
- * iSCSI Host Messages
- */
-
-/* ISCSI_BSG_HST_VENDOR : */
-
-/* Request:
- * Note: When specifying vendor_id, be sure to read the Vendor Type and ID
- * formatting requirements specified in scsi_netlink.h
- */
-struct iscsi_bsg_host_vendor {
- /*
- * Identifies the vendor that the message is formatted for. This
- * should be the recipient of the message.
- */
- uint64_t vendor_id;
-
- /* start of vendor command area */
- uint32_t vendor_cmd[0];
-};
-
-/* Response:
- */
-struct iscsi_bsg_host_vendor_reply {
- /* start of vendor response area */
- uint32_t vendor_rsp[0];
-};
-
-
-/* request (CDB) structure of the sg_io_v4 */
-struct iscsi_bsg_request {
- uint32_t msgcode;
- union {
- struct iscsi_bsg_host_vendor h_vendor;
- } rqst_data;
-} __attribute__((packed));
-
-
-/* response (request sense data) structure of the sg_io_v4 */
-struct iscsi_bsg_reply {
- /*
- * The completion result. Result exists in two forms:
- * if negative, it is an -Exxx system errno value. There will
- * be no further reply information supplied.
- * else, it's the 4-byte scsi error result, with driver, host,
- * msg and status fields. The per-msgcode reply structure
- * will contain valid data.
- */
- uint32_t result;
-
- /* If there was reply_payload, how much was recevied ? */
- uint32_t reply_payload_rcv_len;
-
- union {
- struct iscsi_bsg_host_vendor_reply vendor_reply;
- } reply_data;
-};
-
-
-#endif /* SCSI_BSG_ISCSI_H */
diff --git a/ANDROID_3.4.5/include/scsi/scsi_cmnd.h b/ANDROID_3.4.5/include/scsi/scsi_cmnd.h
deleted file mode 100644
index ac06cc59..00000000
--- a/ANDROID_3.4.5/include/scsi/scsi_cmnd.h
+++ /dev/null
@@ -1,320 +0,0 @@
-#ifndef _SCSI_SCSI_CMND_H
-#define _SCSI_SCSI_CMND_H
-
-#include <linux/dma-mapping.h>
-#include <linux/blkdev.h>
-#include <linux/list.h>
-#include <linux/types.h>
-#include <linux/timer.h>
-#include <linux/scatterlist.h>
-
-struct Scsi_Host;
-struct scsi_device;
-struct scsi_driver;
-
-/*
- * MAX_COMMAND_SIZE is:
- * The longest fixed-length SCSI CDB as per the SCSI standard.
- * fixed-length means: commands that their size can be determined
- * by their opcode and the CDB does not carry a length specifier, (unlike
- * the VARIABLE_LENGTH_CMD(0x7f) command). This is actually not exactly
- * true and the SCSI standard also defines extended commands and
- * vendor specific commands that can be bigger than 16 bytes. The kernel
- * will support these using the same infrastructure used for VARLEN CDB's.
- * So in effect MAX_COMMAND_SIZE means the maximum size command scsi-ml
- * supports without specifying a cmd_len by ULD's
- */
-#define MAX_COMMAND_SIZE 16
-#if (MAX_COMMAND_SIZE > BLK_MAX_CDB)
-# error MAX_COMMAND_SIZE can not be bigger than BLK_MAX_CDB
-#endif
-
-struct scsi_data_buffer {
- struct sg_table table;
- unsigned length;
- int resid;
-};
-
-/* embedded in scsi_cmnd */
-struct scsi_pointer {
- char *ptr; /* data pointer */
- int this_residual; /* left in this buffer */
- struct scatterlist *buffer; /* which buffer */
- int buffers_residual; /* how many buffers left */
-
- dma_addr_t dma_handle;
-
- volatile int Status;
- volatile int Message;
- volatile int have_data_in;
- volatile int sent_command;
- volatile int phase;
-};
-
-struct scsi_cmnd {
- struct scsi_device *device;
- struct list_head list; /* scsi_cmnd participates in queue lists */
- struct list_head eh_entry; /* entry for the host eh_cmd_q */
- int eh_eflags; /* Used by error handlr */
-
- /*
- * A SCSI Command is assigned a nonzero serial_number before passed
- * to the driver's queue command function. The serial_number is
- * cleared when scsi_done is entered indicating that the command
- * has been completed. It is a bug for LLDDs to use this number
- * for purposes other than printk (and even that is only useful
- * for debugging).
- */
- unsigned long serial_number;
-
- /*
- * This is set to jiffies as it was when the command was first
- * allocated. It is used to time how long the command has
- * been outstanding
- */
- unsigned long jiffies_at_alloc;
-
- int retries;
- int allowed;
-
- unsigned char prot_op;
- unsigned char prot_type;
-
- unsigned short cmd_len;
- enum dma_data_direction sc_data_direction;
-
- /* These elements define the operation we are about to perform */
- unsigned char *cmnd;
-
-
- /* These elements define the operation we ultimately want to perform */
- struct scsi_data_buffer sdb;
- struct scsi_data_buffer *prot_sdb;
-
- unsigned underflow; /* Return error if less than
- this amount is transferred */
-
- unsigned transfersize; /* How much we are guaranteed to
- transfer with each SCSI transfer
- (ie, between disconnect /
- reconnects. Probably == sector
- size */
-
- struct request *request; /* The command we are
- working on */
-
-#define SCSI_SENSE_BUFFERSIZE 96
- unsigned char *sense_buffer;
- /* obtained by REQUEST SENSE when
- * CHECK CONDITION is received on original
- * command (auto-sense) */
-
- /* Low-level done function - can be used by low-level driver to point
- * to completion function. Not used by mid/upper level code. */
- void (*scsi_done) (struct scsi_cmnd *);
-
- /*
- * The following fields can be written to by the host specific code.
- * Everything else should be left alone.
- */
- struct scsi_pointer SCp; /* Scratchpad used by some host adapters */
-
- unsigned char *host_scribble; /* The host adapter is allowed to
- * call scsi_malloc and get some memory
- * and hang it here. The host adapter
- * is also expected to call scsi_free
- * to release this memory. (The memory
- * obtained by scsi_malloc is guaranteed
- * to be at an address < 16Mb). */
-
- int result; /* Status code from lower level driver */
-
- unsigned char tag; /* SCSI-II queued command tag */
-};
-
-static inline struct scsi_driver *scsi_cmd_to_driver(struct scsi_cmnd *cmd)
-{
- struct scsi_driver **sdp;
-
- if (!cmd->request->rq_disk)
- return NULL;
-
- sdp = (struct scsi_driver **)cmd->request->rq_disk->private_data;
- if (!sdp)
- return NULL;
-
- return *sdp;
-}
-
-extern struct scsi_cmnd *scsi_get_command(struct scsi_device *, gfp_t);
-extern struct scsi_cmnd *__scsi_get_command(struct Scsi_Host *, gfp_t);
-extern void scsi_put_command(struct scsi_cmnd *);
-extern void __scsi_put_command(struct Scsi_Host *, struct scsi_cmnd *,
- struct device *);
-extern void scsi_finish_command(struct scsi_cmnd *cmd);
-
-extern void *scsi_kmap_atomic_sg(struct scatterlist *sg, int sg_count,
- size_t *offset, size_t *len);
-extern void scsi_kunmap_atomic_sg(void *virt);
-
-extern int scsi_init_io(struct scsi_cmnd *cmd, gfp_t gfp_mask);
-extern void scsi_release_buffers(struct scsi_cmnd *cmd);
-
-extern int scsi_dma_map(struct scsi_cmnd *cmd);
-extern void scsi_dma_unmap(struct scsi_cmnd *cmd);
-
-struct scsi_cmnd *scsi_allocate_command(gfp_t gfp_mask);
-void scsi_free_command(gfp_t gfp_mask, struct scsi_cmnd *cmd);
-
-static inline unsigned scsi_sg_count(struct scsi_cmnd *cmd)
-{
- return cmd->sdb.table.nents;
-}
-
-static inline struct scatterlist *scsi_sglist(struct scsi_cmnd *cmd)
-{
- return cmd->sdb.table.sgl;
-}
-
-static inline unsigned scsi_bufflen(struct scsi_cmnd *cmd)
-{
- return cmd->sdb.length;
-}
-
-static inline void scsi_set_resid(struct scsi_cmnd *cmd, int resid)
-{
- cmd->sdb.resid = resid;
-}
-
-static inline int scsi_get_resid(struct scsi_cmnd *cmd)
-{
- return cmd->sdb.resid;
-}
-
-#define scsi_for_each_sg(cmd, sg, nseg, __i) \
- for_each_sg(scsi_sglist(cmd), sg, nseg, __i)
-
-static inline int scsi_bidi_cmnd(struct scsi_cmnd *cmd)
-{
- return blk_bidi_rq(cmd->request) &&
- (cmd->request->next_rq->special != NULL);
-}
-
-static inline struct scsi_data_buffer *scsi_in(struct scsi_cmnd *cmd)
-{
- return scsi_bidi_cmnd(cmd) ?
- cmd->request->next_rq->special : &cmd->sdb;
-}
-
-static inline struct scsi_data_buffer *scsi_out(struct scsi_cmnd *cmd)
-{
- return &cmd->sdb;
-}
-
-static inline int scsi_sg_copy_from_buffer(struct scsi_cmnd *cmd,
- void *buf, int buflen)
-{
- return sg_copy_from_buffer(scsi_sglist(cmd), scsi_sg_count(cmd),
- buf, buflen);
-}
-
-static inline int scsi_sg_copy_to_buffer(struct scsi_cmnd *cmd,
- void *buf, int buflen)
-{
- return sg_copy_to_buffer(scsi_sglist(cmd), scsi_sg_count(cmd),
- buf, buflen);
-}
-
-/*
- * The operations below are hints that tell the controller driver how
- * to handle I/Os with DIF or similar types of protection information.
- */
-enum scsi_prot_operations {
- /* Normal I/O */
- SCSI_PROT_NORMAL = 0,
-
- /* OS-HBA: Protected, HBA-Target: Unprotected */
- SCSI_PROT_READ_INSERT,
- SCSI_PROT_WRITE_STRIP,
-
- /* OS-HBA: Unprotected, HBA-Target: Protected */
- SCSI_PROT_READ_STRIP,
- SCSI_PROT_WRITE_INSERT,
-
- /* OS-HBA: Protected, HBA-Target: Protected */
- SCSI_PROT_READ_PASS,
- SCSI_PROT_WRITE_PASS,
-};
-
-static inline void scsi_set_prot_op(struct scsi_cmnd *scmd, unsigned char op)
-{
- scmd->prot_op = op;
-}
-
-static inline unsigned char scsi_get_prot_op(struct scsi_cmnd *scmd)
-{
- return scmd->prot_op;
-}
-
-/*
- * The controller usually does not know anything about the target it
- * is communicating with. However, when DIX is enabled the controller
- * must be know target type so it can verify the protection
- * information passed along with the I/O.
- */
-enum scsi_prot_target_type {
- SCSI_PROT_DIF_TYPE0 = 0,
- SCSI_PROT_DIF_TYPE1,
- SCSI_PROT_DIF_TYPE2,
- SCSI_PROT_DIF_TYPE3,
-};
-
-static inline void scsi_set_prot_type(struct scsi_cmnd *scmd, unsigned char type)
-{
- scmd->prot_type = type;
-}
-
-static inline unsigned char scsi_get_prot_type(struct scsi_cmnd *scmd)
-{
- return scmd->prot_type;
-}
-
-static inline sector_t scsi_get_lba(struct scsi_cmnd *scmd)
-{
- return blk_rq_pos(scmd->request);
-}
-
-static inline unsigned scsi_prot_sg_count(struct scsi_cmnd *cmd)
-{
- return cmd->prot_sdb ? cmd->prot_sdb->table.nents : 0;
-}
-
-static inline struct scatterlist *scsi_prot_sglist(struct scsi_cmnd *cmd)
-{
- return cmd->prot_sdb ? cmd->prot_sdb->table.sgl : NULL;
-}
-
-static inline struct scsi_data_buffer *scsi_prot(struct scsi_cmnd *cmd)
-{
- return cmd->prot_sdb;
-}
-
-#define scsi_for_each_prot_sg(cmd, sg, nseg, __i) \
- for_each_sg(scsi_prot_sglist(cmd), sg, nseg, __i)
-
-static inline void set_msg_byte(struct scsi_cmnd *cmd, char status)
-{
- cmd->result = (cmd->result & 0xffff00ff) | (status << 8);
-}
-
-static inline void set_host_byte(struct scsi_cmnd *cmd, char status)
-{
- cmd->result = (cmd->result & 0xff00ffff) | (status << 16);
-}
-
-static inline void set_driver_byte(struct scsi_cmnd *cmd, char status)
-{
- cmd->result = (cmd->result & 0x00ffffff) | (status << 24);
-}
-
-#endif /* _SCSI_SCSI_CMND_H */
diff --git a/ANDROID_3.4.5/include/scsi/scsi_dbg.h b/ANDROID_3.4.5/include/scsi/scsi_dbg.h
deleted file mode 100644
index e89844cc..00000000
--- a/ANDROID_3.4.5/include/scsi/scsi_dbg.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef _SCSI_SCSI_DBG_H
-#define _SCSI_SCSI_DBG_H
-
-struct scsi_cmnd;
-struct scsi_sense_hdr;
-
-extern void scsi_print_command(struct scsi_cmnd *);
-extern void __scsi_print_command(unsigned char *);
-extern void scsi_show_extd_sense(unsigned char, unsigned char);
-extern void scsi_show_sense_hdr(struct scsi_sense_hdr *);
-extern void scsi_print_sense_hdr(const char *, struct scsi_sense_hdr *);
-extern void scsi_cmd_print_sense_hdr(struct scsi_cmnd *, const char *,
- struct scsi_sense_hdr *);
-extern void scsi_print_sense(char *, struct scsi_cmnd *);
-extern void __scsi_print_sense(const char *name,
- const unsigned char *sense_buffer,
- int sense_len);
-extern void scsi_show_result(int);
-extern void scsi_print_result(struct scsi_cmnd *);
-extern void scsi_print_status(unsigned char);
-extern const char *scsi_sense_key_string(unsigned char);
-extern const char *scsi_extd_sense_format(unsigned char, unsigned char);
-
-#endif /* _SCSI_SCSI_DBG_H */
diff --git a/ANDROID_3.4.5/include/scsi/scsi_device.h b/ANDROID_3.4.5/include/scsi/scsi_device.h
deleted file mode 100644
index ba969885..00000000
--- a/ANDROID_3.4.5/include/scsi/scsi_device.h
+++ /dev/null
@@ -1,487 +0,0 @@
-#ifndef _SCSI_SCSI_DEVICE_H
-#define _SCSI_SCSI_DEVICE_H
-
-#include <linux/list.h>
-#include <linux/spinlock.h>
-#include <linux/workqueue.h>
-#include <linux/blkdev.h>
-#include <scsi/scsi.h>
-#include <linux/atomic.h>
-
-struct device;
-struct request_queue;
-struct scsi_cmnd;
-struct scsi_lun;
-struct scsi_sense_hdr;
-
-struct scsi_mode_data {
- __u32 length;
- __u16 block_descriptor_length;
- __u8 medium_type;
- __u8 device_specific;
- __u8 header_length;
- __u8 longlba:1;
-};
-
-/*
- * sdev state: If you alter this, you also need to alter scsi_sysfs.c
- * (for the ascii descriptions) and the state model enforcer:
- * scsi_lib:scsi_device_set_state().
- */
-enum scsi_device_state {
- SDEV_CREATED = 1, /* device created but not added to sysfs
- * Only internal commands allowed (for inq) */
- SDEV_RUNNING, /* device properly configured
- * All commands allowed */
- SDEV_CANCEL, /* beginning to delete device
- * Only error handler commands allowed */
- SDEV_DEL, /* device deleted
- * no commands allowed */
- SDEV_QUIESCE, /* Device quiescent. No block commands
- * will be accepted, only specials (which
- * originate in the mid-layer) */
- SDEV_OFFLINE, /* Device offlined (by error handling or
- * user request */
- SDEV_BLOCK, /* Device blocked by scsi lld. No
- * scsi commands from user or midlayer
- * should be issued to the scsi
- * lld. */
- SDEV_CREATED_BLOCK, /* same as above but for created devices */
-};
-
-enum scsi_device_event {
- SDEV_EVT_MEDIA_CHANGE = 1, /* media has changed */
-
- SDEV_EVT_LAST = SDEV_EVT_MEDIA_CHANGE,
- SDEV_EVT_MAXBITS = SDEV_EVT_LAST + 1
-};
-
-struct scsi_event {
- enum scsi_device_event evt_type;
- struct list_head node;
-
- /* put union of data structures, for non-simple event types,
- * here
- */
-};
-
-struct scsi_device {
- struct Scsi_Host *host;
- struct request_queue *request_queue;
-
- /* the next two are protected by the host->host_lock */
- struct list_head siblings; /* list of all devices on this host */
- struct list_head same_target_siblings; /* just the devices sharing same target id */
-
- /* this is now protected by the request_queue->queue_lock */
- unsigned int device_busy; /* commands actually active on
- * low-level. protected by queue_lock. */
- spinlock_t list_lock;
- struct list_head cmd_list; /* queue of in use SCSI Command structures */
- struct list_head starved_entry;
- struct scsi_cmnd *current_cmnd; /* currently active command */
- unsigned short queue_depth; /* How deep of a queue we want */
- unsigned short max_queue_depth; /* max queue depth */
- unsigned short last_queue_full_depth; /* These two are used by */
- unsigned short last_queue_full_count; /* scsi_track_queue_full() */
- unsigned long last_queue_full_time; /* last queue full time */
- unsigned long queue_ramp_up_period; /* ramp up period in jiffies */
-#define SCSI_DEFAULT_RAMP_UP_PERIOD (120 * HZ)
-
- unsigned long last_queue_ramp_up; /* last queue ramp up time */
-
- unsigned int id, lun, channel;
-
- unsigned int manufacturer; /* Manufacturer of device, for using
- * vendor-specific cmd's */
- unsigned sector_size; /* size in bytes */
-
- void *hostdata; /* available to low-level driver */
- char type;
- char scsi_level;
- char inq_periph_qual; /* PQ from INQUIRY data */
- unsigned char inquiry_len; /* valid bytes in 'inquiry' */
- unsigned char * inquiry; /* INQUIRY response data */
- const char * vendor; /* [back_compat] point into 'inquiry' ... */
- const char * model; /* ... after scan; point to static string */
- const char * rev; /* ... "nullnullnullnull" before scan */
- unsigned char current_tag; /* current tag */
- struct scsi_target *sdev_target; /* used only for single_lun */
-
- unsigned int sdev_bflags; /* black/white flags as also found in
- * scsi_devinfo.[hc]. For now used only to
- * pass settings from slave_alloc to scsi
- * core. */
- unsigned writeable:1;
- unsigned removable:1;
- unsigned changed:1; /* Data invalid due to media change */
- unsigned busy:1; /* Used to prevent races */
- unsigned lockable:1; /* Able to prevent media removal */
- unsigned locked:1; /* Media removal disabled */
- unsigned borken:1; /* Tell the Seagate driver to be
- * painfully slow on this device */
- unsigned disconnect:1; /* can disconnect */
- unsigned soft_reset:1; /* Uses soft reset option */
- unsigned sdtr:1; /* Device supports SDTR messages */
- unsigned wdtr:1; /* Device supports WDTR messages */
- unsigned ppr:1; /* Device supports PPR messages */
- unsigned tagged_supported:1; /* Supports SCSI-II tagged queuing */
- unsigned simple_tags:1; /* simple queue tag messages are enabled */
- unsigned ordered_tags:1;/* ordered queue tag messages are enabled */
- unsigned was_reset:1; /* There was a bus reset on the bus for
- * this device */
- unsigned expecting_cc_ua:1; /* Expecting a CHECK_CONDITION/UNIT_ATTN
- * because we did a bus reset. */
- unsigned use_10_for_rw:1; /* first try 10-byte read / write */
- unsigned use_10_for_ms:1; /* first try 10-byte mode sense/select */
- unsigned skip_ms_page_8:1; /* do not use MODE SENSE page 0x08 */
- unsigned skip_ms_page_3f:1; /* do not use MODE SENSE page 0x3f */
- unsigned skip_vpd_pages:1; /* do not read VPD pages */
- unsigned use_192_bytes_for_3f:1; /* ask for 192 bytes from page 0x3f */
- unsigned no_start_on_add:1; /* do not issue start on add */
- unsigned allow_restart:1; /* issue START_UNIT in error handler */
- unsigned manage_start_stop:1; /* Let HLD (sd) manage start/stop */
- unsigned start_stop_pwr_cond:1; /* Set power cond. in START_STOP_UNIT */
- unsigned no_uld_attach:1; /* disable connecting to upper level drivers */
- unsigned select_no_atn:1;
- unsigned fix_capacity:1; /* READ_CAPACITY is too high by 1 */
- unsigned guess_capacity:1; /* READ_CAPACITY might be too high by 1 */
- unsigned retry_hwerror:1; /* Retry HARDWARE_ERROR */
- unsigned last_sector_bug:1; /* do not use multisector accesses on
- SD_LAST_BUGGY_SECTORS */
- unsigned no_read_disc_info:1; /* Avoid READ_DISC_INFO cmds */
- unsigned no_read_capacity_16:1; /* Avoid READ_CAPACITY_16 cmds */
- unsigned try_rc_10_first:1; /* Try READ_CAPACACITY_10 first */
- unsigned is_visible:1; /* is the device visible in sysfs */
-
- DECLARE_BITMAP(supported_events, SDEV_EVT_MAXBITS); /* supported events */
- struct list_head event_list; /* asserted events */
- struct work_struct event_work;
-
- unsigned int device_blocked; /* Device returned QUEUE_FULL. */
-
- unsigned int max_device_blocked; /* what device_blocked counts down from */
-#define SCSI_DEFAULT_DEVICE_BLOCKED 3
-
- atomic_t iorequest_cnt;
- atomic_t iodone_cnt;
- atomic_t ioerr_cnt;
-
- struct device sdev_gendev,
- sdev_dev;
-
- struct execute_work ew; /* used to get process context on put */
- struct work_struct requeue_work;
-
- struct scsi_dh_data *scsi_dh_data;
- enum scsi_device_state sdev_state;
- unsigned long sdev_data[0];
-} __attribute__((aligned(sizeof(unsigned long))));
-
-struct scsi_dh_devlist {
- char *vendor;
- char *model;
-};
-
-typedef void (*activate_complete)(void *, int);
-struct scsi_device_handler {
- /* Used by the infrastructure */
- struct list_head list; /* list of scsi_device_handlers */
-
- /* Filled by the hardware handler */
- struct module *module;
- const char *name;
- const struct scsi_dh_devlist *devlist;
- int (*check_sense)(struct scsi_device *, struct scsi_sense_hdr *);
- int (*attach)(struct scsi_device *);
- void (*detach)(struct scsi_device *);
- int (*activate)(struct scsi_device *, activate_complete, void *);
- int (*prep_fn)(struct scsi_device *, struct request *);
- int (*set_params)(struct scsi_device *, const char *);
- bool (*match)(struct scsi_device *);
-};
-
-struct scsi_dh_data {
- struct scsi_device_handler *scsi_dh;
- struct scsi_device *sdev;
- struct kref kref;
- char buf[0];
-};
-
-#define to_scsi_device(d) \
- container_of(d, struct scsi_device, sdev_gendev)
-#define class_to_sdev(d) \
- container_of(d, struct scsi_device, sdev_dev)
-#define transport_class_to_sdev(class_dev) \
- to_scsi_device(class_dev->parent)
-
-#define sdev_printk(prefix, sdev, fmt, a...) \
- dev_printk(prefix, &(sdev)->sdev_gendev, fmt, ##a)
-
-#define scmd_printk(prefix, scmd, fmt, a...) \
- (scmd)->request->rq_disk ? \
- sdev_printk(prefix, (scmd)->device, "[%s] " fmt, \
- (scmd)->request->rq_disk->disk_name, ##a) : \
- sdev_printk(prefix, (scmd)->device, fmt, ##a)
-
-enum scsi_target_state {
- STARGET_CREATED = 1,
- STARGET_RUNNING,
- STARGET_DEL,
-};
-
-/*
- * scsi_target: representation of a scsi target, for now, this is only
- * used for single_lun devices. If no one has active IO to the target,
- * starget_sdev_user is NULL, else it points to the active sdev.
- */
-struct scsi_target {
- struct scsi_device *starget_sdev_user;
- struct list_head siblings;
- struct list_head devices;
- struct device dev;
- unsigned int reap_ref; /* protected by the host lock */
- unsigned int channel;
- unsigned int id; /* target id ... replace
- * scsi_device.id eventually */
- unsigned int create:1; /* signal that it needs to be added */
- unsigned int single_lun:1; /* Indicates we should only
- * allow I/O to one of the luns
- * for the device at a time. */
- unsigned int pdt_1f_for_no_lun:1; /* PDT = 0x1f
- * means no lun present. */
- unsigned int no_report_luns:1; /* Don't use
- * REPORT LUNS for scanning. */
- /* commands actually active on LLD. protected by host lock. */
- unsigned int target_busy;
- /*
- * LLDs should set this in the slave_alloc host template callout.
- * If set to zero then there is not limit.
- */
- unsigned int can_queue;
- unsigned int target_blocked;
- unsigned int max_target_blocked;
-#define SCSI_DEFAULT_TARGET_BLOCKED 3
-
- char scsi_level;
- struct execute_work ew;
- enum scsi_target_state state;
- void *hostdata; /* available to low-level driver */
- unsigned long starget_data[0]; /* for the transport */
- /* starget_data must be the last element!!!! */
-} __attribute__((aligned(sizeof(unsigned long))));
-
-#define to_scsi_target(d) container_of(d, struct scsi_target, dev)
-static inline struct scsi_target *scsi_target(struct scsi_device *sdev)
-{
- return to_scsi_target(sdev->sdev_gendev.parent);
-}
-#define transport_class_to_starget(class_dev) \
- to_scsi_target(class_dev->parent)
-
-#define starget_printk(prefix, starget, fmt, a...) \
- dev_printk(prefix, &(starget)->dev, fmt, ##a)
-
-extern struct scsi_device *__scsi_add_device(struct Scsi_Host *,
- uint, uint, uint, void *hostdata);
-extern int scsi_add_device(struct Scsi_Host *host, uint channel,
- uint target, uint lun);
-extern int scsi_register_device_handler(struct scsi_device_handler *scsi_dh);
-extern void scsi_remove_device(struct scsi_device *);
-extern int scsi_unregister_device_handler(struct scsi_device_handler *scsi_dh);
-
-extern int scsi_device_get(struct scsi_device *);
-extern void scsi_device_put(struct scsi_device *);
-extern struct scsi_device *scsi_device_lookup(struct Scsi_Host *,
- uint, uint, uint);
-extern struct scsi_device *__scsi_device_lookup(struct Scsi_Host *,
- uint, uint, uint);
-extern struct scsi_device *scsi_device_lookup_by_target(struct scsi_target *,
- uint);
-extern struct scsi_device *__scsi_device_lookup_by_target(struct scsi_target *,
- uint);
-extern void starget_for_each_device(struct scsi_target *, void *,
- void (*fn)(struct scsi_device *, void *));
-extern void __starget_for_each_device(struct scsi_target *, void *,
- void (*fn)(struct scsi_device *,
- void *));
-
-/* only exposed to implement shost_for_each_device */
-extern struct scsi_device *__scsi_iterate_devices(struct Scsi_Host *,
- struct scsi_device *);
-
-/**
- * shost_for_each_device - iterate over all devices of a host
- * @sdev: the &struct scsi_device to use as a cursor
- * @shost: the &struct scsi_host to iterate over
- *
- * Iterator that returns each device attached to @shost. This loop
- * takes a reference on each device and releases it at the end. If
- * you break out of the loop, you must call scsi_device_put(sdev).
- */
-#define shost_for_each_device(sdev, shost) \
- for ((sdev) = __scsi_iterate_devices((shost), NULL); \
- (sdev); \
- (sdev) = __scsi_iterate_devices((shost), (sdev)))
-
-/**
- * __shost_for_each_device - iterate over all devices of a host (UNLOCKED)
- * @sdev: the &struct scsi_device to use as a cursor
- * @shost: the &struct scsi_host to iterate over
- *
- * Iterator that returns each device attached to @shost. It does _not_
- * take a reference on the scsi_device, so the whole loop must be
- * protected by shost->host_lock.
- *
- * Note: The only reason to use this is because you need to access the
- * device list in interrupt context. Otherwise you really want to use
- * shost_for_each_device instead.
- */
-#define __shost_for_each_device(sdev, shost) \
- list_for_each_entry((sdev), &((shost)->__devices), siblings)
-
-extern void scsi_adjust_queue_depth(struct scsi_device *, int, int);
-extern int scsi_track_queue_full(struct scsi_device *, int);
-
-extern int scsi_set_medium_removal(struct scsi_device *, char);
-
-extern int scsi_mode_sense(struct scsi_device *sdev, int dbd, int modepage,
- unsigned char *buffer, int len, int timeout,
- int retries, struct scsi_mode_data *data,
- struct scsi_sense_hdr *);
-extern int scsi_mode_select(struct scsi_device *sdev, int pf, int sp,
- int modepage, unsigned char *buffer, int len,
- int timeout, int retries,
- struct scsi_mode_data *data,
- struct scsi_sense_hdr *);
-extern int scsi_test_unit_ready(struct scsi_device *sdev, int timeout,
- int retries, struct scsi_sense_hdr *sshdr);
-extern int scsi_get_vpd_page(struct scsi_device *, u8 page, unsigned char *buf,
- int buf_len);
-extern int scsi_device_set_state(struct scsi_device *sdev,
- enum scsi_device_state state);
-extern struct scsi_event *sdev_evt_alloc(enum scsi_device_event evt_type,
- gfp_t gfpflags);
-extern void sdev_evt_send(struct scsi_device *sdev, struct scsi_event *evt);
-extern void sdev_evt_send_simple(struct scsi_device *sdev,
- enum scsi_device_event evt_type, gfp_t gfpflags);
-extern int scsi_device_quiesce(struct scsi_device *sdev);
-extern void scsi_device_resume(struct scsi_device *sdev);
-extern void scsi_target_quiesce(struct scsi_target *);
-extern void scsi_target_resume(struct scsi_target *);
-extern void scsi_scan_target(struct device *parent, unsigned int channel,
- unsigned int id, unsigned int lun, int rescan);
-extern void scsi_target_reap(struct scsi_target *);
-extern void scsi_target_block(struct device *);
-extern void scsi_target_unblock(struct device *);
-extern void scsi_remove_target(struct device *);
-extern void int_to_scsilun(unsigned int, struct scsi_lun *);
-extern int scsilun_to_int(struct scsi_lun *);
-extern const char *scsi_device_state_name(enum scsi_device_state);
-extern int scsi_is_sdev_device(const struct device *);
-extern int scsi_is_target_device(const struct device *);
-extern int scsi_execute(struct scsi_device *sdev, const unsigned char *cmd,
- int data_direction, void *buffer, unsigned bufflen,
- unsigned char *sense, int timeout, int retries,
- int flag, int *resid);
-extern int scsi_execute_req(struct scsi_device *sdev, const unsigned char *cmd,
- int data_direction, void *buffer, unsigned bufflen,
- struct scsi_sense_hdr *, int timeout, int retries,
- int *resid);
-
-#ifdef CONFIG_PM_RUNTIME
-extern int scsi_autopm_get_device(struct scsi_device *);
-extern void scsi_autopm_put_device(struct scsi_device *);
-#else
-static inline int scsi_autopm_get_device(struct scsi_device *d) { return 0; }
-static inline void scsi_autopm_put_device(struct scsi_device *d) {}
-#endif /* CONFIG_PM_RUNTIME */
-
-static inline int __must_check scsi_device_reprobe(struct scsi_device *sdev)
-{
- return device_reprobe(&sdev->sdev_gendev);
-}
-
-static inline unsigned int sdev_channel(struct scsi_device *sdev)
-{
- return sdev->channel;
-}
-
-static inline unsigned int sdev_id(struct scsi_device *sdev)
-{
- return sdev->id;
-}
-
-#define scmd_id(scmd) sdev_id((scmd)->device)
-#define scmd_channel(scmd) sdev_channel((scmd)->device)
-
-/*
- * checks for positions of the SCSI state machine
- */
-static inline int scsi_device_online(struct scsi_device *sdev)
-{
- return (sdev->sdev_state != SDEV_OFFLINE &&
- sdev->sdev_state != SDEV_DEL);
-}
-static inline int scsi_device_blocked(struct scsi_device *sdev)
-{
- return sdev->sdev_state == SDEV_BLOCK ||
- sdev->sdev_state == SDEV_CREATED_BLOCK;
-}
-static inline int scsi_device_created(struct scsi_device *sdev)
-{
- return sdev->sdev_state == SDEV_CREATED ||
- sdev->sdev_state == SDEV_CREATED_BLOCK;
-}
-
-/* accessor functions for the SCSI parameters */
-static inline int scsi_device_sync(struct scsi_device *sdev)
-{
- return sdev->sdtr;
-}
-static inline int scsi_device_wide(struct scsi_device *sdev)
-{
- return sdev->wdtr;
-}
-static inline int scsi_device_dt(struct scsi_device *sdev)
-{
- return sdev->ppr;
-}
-static inline int scsi_device_dt_only(struct scsi_device *sdev)
-{
- if (sdev->inquiry_len < 57)
- return 0;
- return (sdev->inquiry[56] & 0x0c) == 0x04;
-}
-static inline int scsi_device_ius(struct scsi_device *sdev)
-{
- if (sdev->inquiry_len < 57)
- return 0;
- return sdev->inquiry[56] & 0x01;
-}
-static inline int scsi_device_qas(struct scsi_device *sdev)
-{
- if (sdev->inquiry_len < 57)
- return 0;
- return sdev->inquiry[56] & 0x02;
-}
-static inline int scsi_device_enclosure(struct scsi_device *sdev)
-{
- return sdev->inquiry ? (sdev->inquiry[6] & (1<<6)) : 1;
-}
-
-static inline int scsi_device_protection(struct scsi_device *sdev)
-{
- return sdev->scsi_level > SCSI_2 && sdev->inquiry[5] & (1<<0);
-}
-
-static inline int scsi_device_tpgs(struct scsi_device *sdev)
-{
- return sdev->inquiry ? (sdev->inquiry[5] >> 4) & 0x3 : 0;
-}
-
-#define MODULE_ALIAS_SCSI_DEVICE(type) \
- MODULE_ALIAS("scsi:t-" __stringify(type) "*")
-#define SCSI_DEVICE_MODALIAS_FMT "scsi:t-0x%02x"
-
-#endif /* _SCSI_SCSI_DEVICE_H */
diff --git a/ANDROID_3.4.5/include/scsi/scsi_devinfo.h b/ANDROID_3.4.5/include/scsi/scsi_devinfo.h
deleted file mode 100644
index b4ddd3b1..00000000
--- a/ANDROID_3.4.5/include/scsi/scsi_devinfo.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef _SCSI_SCSI_DEVINFO_H
-#define _SCSI_SCSI_DEVINFO_H
-/*
- * Flags for SCSI devices that need special treatment
- */
-#define BLIST_NOLUN 0x001 /* Only scan LUN 0 */
-#define BLIST_FORCELUN 0x002 /* Known to have LUNs, force scanning,
- deprecated: Use max_luns=N */
-#define BLIST_BORKEN 0x004 /* Flag for broken handshaking */
-#define BLIST_KEY 0x008 /* unlock by special command */
-#define BLIST_SINGLELUN 0x010 /* Do not use LUNs in parallel */
-#define BLIST_NOTQ 0x020 /* Buggy Tagged Command Queuing */
-#define BLIST_SPARSELUN 0x040 /* Non consecutive LUN numbering */
-#define BLIST_MAX5LUN 0x080 /* Avoid LUNS >= 5 */
-#define BLIST_ISROM 0x100 /* Treat as (removable) CD-ROM */
-#define BLIST_LARGELUN 0x200 /* LUNs past 7 on a SCSI-2 device */
-#define BLIST_INQUIRY_36 0x400 /* override additional length field */
-#define BLIST_INQUIRY_58 0x800 /* ... for broken inquiry responses */
-#define BLIST_NOSTARTONADD 0x1000 /* do not do automatic start on add */
-#define BLIST_MS_SKIP_PAGE_08 0x2000 /* do not send ms page 0x08 */
-#define BLIST_MS_SKIP_PAGE_3F 0x4000 /* do not send ms page 0x3f */
-#define BLIST_USE_10_BYTE_MS 0x8000 /* use 10 byte ms before 6 byte ms */
-#define BLIST_MS_192_BYTES_FOR_3F 0x10000 /* 192 byte ms page 0x3f request */
-#define BLIST_REPORTLUN2 0x20000 /* try REPORT_LUNS even for SCSI-2 devs
- (if HBA supports more than 8 LUNs) */
-#define BLIST_NOREPORTLUN 0x40000 /* don't try REPORT_LUNS scan (SCSI-3 devs) */
-#define BLIST_NOT_LOCKABLE 0x80000 /* don't use PREVENT-ALLOW commands */
-#define BLIST_NO_ULD_ATTACH 0x100000 /* device is actually for RAID config */
-#define BLIST_SELECT_NO_ATN 0x200000 /* select without ATN */
-#define BLIST_RETRY_HWERROR 0x400000 /* retry HARDWARE_ERROR */
-#define BLIST_MAX_512 0x800000 /* maximum 512 sector cdb length */
-#define BLIST_ATTACH_PQ3 0x1000000 /* Scan: Attach to PQ3 devices */
-#endif
diff --git a/ANDROID_3.4.5/include/scsi/scsi_dh.h b/ANDROID_3.4.5/include/scsi/scsi_dh.h
deleted file mode 100644
index e3f2db21..00000000
--- a/ANDROID_3.4.5/include/scsi/scsi_dh.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Header file for SCSI device handler infrastruture.
- *
- * Modified version of patches posted by Mike Christie <michaelc@cs.wisc.edu>
- *
- * 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.
- *
- * Copyright IBM Corporation, 2007
- * Authors:
- * Chandra Seetharaman <sekharan@us.ibm.com>
- * Mike Anderson <andmike@linux.vnet.ibm.com>
- */
-
-#include <scsi/scsi_device.h>
-
-enum {
- SCSI_DH_OK = 0,
- /*
- * device errors
- */
- SCSI_DH_DEV_FAILED, /* generic device error */
- SCSI_DH_DEV_TEMP_BUSY,
- SCSI_DH_DEV_UNSUPP, /* device handler not supported */
- SCSI_DH_DEVICE_MAX, /* max device blkerr definition */
-
- /*
- * transport errors
- */
- SCSI_DH_NOTCONN = SCSI_DH_DEVICE_MAX + 1,
- SCSI_DH_CONN_FAILURE,
- SCSI_DH_TRANSPORT_MAX, /* max transport blkerr definition */
-
- /*
- * driver and generic errors
- */
- SCSI_DH_IO = SCSI_DH_TRANSPORT_MAX + 1, /* generic error */
- SCSI_DH_INVALID_IO,
- SCSI_DH_RETRY, /* retry the req, but not immediately */
- SCSI_DH_IMM_RETRY, /* immediately retry the req */
- SCSI_DH_TIMED_OUT,
- SCSI_DH_RES_TEMP_UNAVAIL,
- SCSI_DH_DEV_OFFLINED,
- SCSI_DH_NOSYS,
- SCSI_DH_DRIVER_MAX,
-};
-#if defined(CONFIG_SCSI_DH) || defined(CONFIG_SCSI_DH_MODULE)
-extern int scsi_dh_activate(struct request_queue *, activate_complete, void *);
-extern int scsi_dh_handler_exist(const char *);
-extern int scsi_dh_attach(struct request_queue *, const char *);
-extern void scsi_dh_detach(struct request_queue *);
-extern int scsi_dh_set_params(struct request_queue *, const char *);
-#else
-static inline int scsi_dh_activate(struct request_queue *req,
- activate_complete fn, void *data)
-{
- fn(data, 0);
- return 0;
-}
-static inline int scsi_dh_handler_exist(const char *name)
-{
- return 0;
-}
-static inline int scsi_dh_attach(struct request_queue *req, const char *name)
-{
- return SCSI_DH_NOSYS;
-}
-static inline void scsi_dh_detach(struct request_queue *q)
-{
- return;
-}
-static inline int scsi_dh_set_params(struct request_queue *req, const char *params)
-{
- return -SCSI_DH_NOSYS;
-}
-#endif
diff --git a/ANDROID_3.4.5/include/scsi/scsi_driver.h b/ANDROID_3.4.5/include/scsi/scsi_driver.h
deleted file mode 100644
index d443aa06..00000000
--- a/ANDROID_3.4.5/include/scsi/scsi_driver.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef _SCSI_SCSI_DRIVER_H
-#define _SCSI_SCSI_DRIVER_H
-
-#include <linux/device.h>
-
-struct module;
-struct scsi_cmnd;
-struct scsi_device;
-struct request;
-struct request_queue;
-
-
-struct scsi_driver {
- struct module *owner;
- struct device_driver gendrv;
-
- void (*rescan)(struct device *);
- int (*done)(struct scsi_cmnd *);
- int (*eh_action)(struct scsi_cmnd *, unsigned char *, int, int);
-};
-#define to_scsi_driver(drv) \
- container_of((drv), struct scsi_driver, gendrv)
-
-extern int scsi_register_driver(struct device_driver *);
-#define scsi_unregister_driver(drv) \
- driver_unregister(drv);
-
-extern int scsi_register_interface(struct class_interface *);
-#define scsi_unregister_interface(intf) \
- class_interface_unregister(intf)
-
-int scsi_setup_blk_pc_cmnd(struct scsi_device *sdev, struct request *req);
-int scsi_setup_fs_cmnd(struct scsi_device *sdev, struct request *req);
-int scsi_prep_state_check(struct scsi_device *sdev, struct request *req);
-int scsi_prep_return(struct request_queue *q, struct request *req, int ret);
-int scsi_prep_fn(struct request_queue *, struct request *);
-
-#endif /* _SCSI_SCSI_DRIVER_H */
diff --git a/ANDROID_3.4.5/include/scsi/scsi_eh.h b/ANDROID_3.4.5/include/scsi/scsi_eh.h
deleted file mode 100644
index 06a87908..00000000
--- a/ANDROID_3.4.5/include/scsi/scsi_eh.h
+++ /dev/null
@@ -1,95 +0,0 @@
-#ifndef _SCSI_SCSI_EH_H
-#define _SCSI_SCSI_EH_H
-
-#include <linux/scatterlist.h>
-
-#include <scsi/scsi_cmnd.h>
-struct scsi_device;
-struct Scsi_Host;
-
-/*
- * This is a slightly modified SCSI sense "descriptor" format header.
- * The addition is to allow the 0x70 and 0x71 response codes. The idea
- * is to place the salient data from either "fixed" or "descriptor" sense
- * format into one structure to ease application processing.
- *
- * The original sense buffer should be kept around for those cases
- * in which more information is required (e.g. the LBA of a MEDIUM ERROR).
- */
-struct scsi_sense_hdr { /* See SPC-3 section 4.5 */
- u8 response_code; /* permit: 0x0, 0x70, 0x71, 0x72, 0x73 */
- u8 sense_key;
- u8 asc;
- u8 ascq;
- u8 byte4;
- u8 byte5;
- u8 byte6;
- u8 additional_length; /* always 0 for fixed sense format */
-};
-
-static inline int scsi_sense_valid(struct scsi_sense_hdr *sshdr)
-{
- if (!sshdr)
- return 0;
-
- return (sshdr->response_code & 0x70) == 0x70;
-}
-
-
-extern void scsi_eh_finish_cmd(struct scsi_cmnd *scmd,
- struct list_head *done_q);
-extern void scsi_eh_flush_done_q(struct list_head *done_q);
-extern void scsi_report_bus_reset(struct Scsi_Host *, int);
-extern void scsi_report_device_reset(struct Scsi_Host *, int, int);
-extern int scsi_block_when_processing_errors(struct scsi_device *);
-extern int scsi_normalize_sense(const u8 *sense_buffer, int sb_len,
- struct scsi_sense_hdr *sshdr);
-extern int scsi_command_normalize_sense(struct scsi_cmnd *cmd,
- struct scsi_sense_hdr *sshdr);
-
-static inline int scsi_sense_is_deferred(struct scsi_sense_hdr *sshdr)
-{
- return ((sshdr->response_code >= 0x70) && (sshdr->response_code & 1));
-}
-
-extern const u8 * scsi_sense_desc_find(const u8 * sense_buffer, int sb_len,
- int desc_type);
-
-extern int scsi_get_sense_info_fld(const u8 * sense_buffer, int sb_len,
- u64 * info_out);
-
-extern void scsi_build_sense_buffer(int desc, u8 *buf, u8 key, u8 asc, u8 ascq);
-
-/*
- * Reset request from external source
- */
-#define SCSI_TRY_RESET_DEVICE 1
-#define SCSI_TRY_RESET_BUS 2
-#define SCSI_TRY_RESET_HOST 3
-#define SCSI_TRY_RESET_TARGET 4
-
-extern int scsi_reset_provider(struct scsi_device *, int);
-
-struct scsi_eh_save {
- /* saved state */
- int result;
- enum dma_data_direction data_direction;
- unsigned underflow;
- unsigned char cmd_len;
- unsigned char prot_op;
- unsigned char *cmnd;
- struct scsi_data_buffer sdb;
- struct request *next_rq;
- /* new command support */
- unsigned char eh_cmnd[BLK_MAX_CDB];
- struct scatterlist sense_sgl;
-};
-
-extern void scsi_eh_prep_cmnd(struct scsi_cmnd *scmd,
- struct scsi_eh_save *ses, unsigned char *cmnd,
- int cmnd_size, unsigned sense_bytes);
-
-extern void scsi_eh_restore_cmnd(struct scsi_cmnd* scmd,
- struct scsi_eh_save *ses);
-
-#endif /* _SCSI_SCSI_EH_H */
diff --git a/ANDROID_3.4.5/include/scsi/scsi_host.h b/ANDROID_3.4.5/include/scsi/scsi_host.h
deleted file mode 100644
index 5f7d5b3b..00000000
--- a/ANDROID_3.4.5/include/scsi/scsi_host.h
+++ /dev/null
@@ -1,921 +0,0 @@
-#ifndef _SCSI_SCSI_HOST_H
-#define _SCSI_SCSI_HOST_H
-
-#include <linux/device.h>
-#include <linux/list.h>
-#include <linux/types.h>
-#include <linux/workqueue.h>
-#include <linux/mutex.h>
-#include <scsi/scsi.h>
-
-struct request_queue;
-struct block_device;
-struct completion;
-struct module;
-struct scsi_cmnd;
-struct scsi_device;
-struct scsi_target;
-struct Scsi_Host;
-struct scsi_host_cmd_pool;
-struct scsi_transport_template;
-struct blk_queue_tags;
-
-
-/*
- * The various choices mean:
- * NONE: Self evident. Host adapter is not capable of scatter-gather.
- * ALL: Means that the host adapter module can do scatter-gather,
- * and that there is no limit to the size of the table to which
- * we scatter/gather data. The value we set here is the maximum
- * single element sglist. To use chained sglists, the adapter
- * has to set a value beyond ALL (and correctly use the chain
- * handling API.
- * Anything else: Indicates the maximum number of chains that can be
- * used in one scatter-gather request.
- */
-#define SG_NONE 0
-#define SG_ALL SCSI_MAX_SG_SEGMENTS
-
-#define MODE_UNKNOWN 0x00
-#define MODE_INITIATOR 0x01
-#define MODE_TARGET 0x02
-
-#define DISABLE_CLUSTERING 0
-#define ENABLE_CLUSTERING 1
-
-enum {
- SCSI_QDEPTH_DEFAULT, /* default requested change, e.g. from sysfs */
- SCSI_QDEPTH_QFULL, /* scsi-ml requested due to queue full */
- SCSI_QDEPTH_RAMP_UP, /* scsi-ml requested due to threshold event */
-};
-
-struct scsi_host_template {
- struct module *module;
- const char *name;
-
- /*
- * Used to initialize old-style drivers. For new-style drivers
- * just perform all work in your module initialization function.
- *
- * Status: OBSOLETE
- */
- int (* detect)(struct scsi_host_template *);
-
- /*
- * Used as unload callback for hosts with old-style drivers.
- *
- * Status: OBSOLETE
- */
- int (* release)(struct Scsi_Host *);
-
- /*
- * The info function will return whatever useful information the
- * developer sees fit. If not provided, then the name field will
- * be used instead.
- *
- * Status: OPTIONAL
- */
- const char *(* info)(struct Scsi_Host *);
-
- /*
- * Ioctl interface
- *
- * Status: OPTIONAL
- */
- int (* ioctl)(struct scsi_device *dev, int cmd, void __user *arg);
-
-
-#ifdef CONFIG_COMPAT
- /*
- * Compat handler. Handle 32bit ABI.
- * When unknown ioctl is passed return -ENOIOCTLCMD.
- *
- * Status: OPTIONAL
- */
- int (* compat_ioctl)(struct scsi_device *dev, int cmd, void __user *arg);
-#endif
-
- /*
- * The queuecommand function is used to queue up a scsi
- * command block to the LLDD. When the driver finished
- * processing the command the done callback is invoked.
- *
- * If queuecommand returns 0, then the HBA has accepted the
- * command. The done() function must be called on the command
- * when the driver has finished with it. (you may call done on the
- * command before queuecommand returns, but in this case you
- * *must* return 0 from queuecommand).
- *
- * Queuecommand may also reject the command, in which case it may
- * not touch the command and must not call done() for it.
- *
- * There are two possible rejection returns:
- *
- * SCSI_MLQUEUE_DEVICE_BUSY: Block this device temporarily, but
- * allow commands to other devices serviced by this host.
- *
- * SCSI_MLQUEUE_HOST_BUSY: Block all devices served by this
- * host temporarily.
- *
- * For compatibility, any other non-zero return is treated the
- * same as SCSI_MLQUEUE_HOST_BUSY.
- *
- * NOTE: "temporarily" means either until the next command for#
- * this device/host completes, or a period of time determined by
- * I/O pressure in the system if there are no other outstanding
- * commands.
- *
- * STATUS: REQUIRED
- */
- int (* queuecommand)(struct Scsi_Host *, struct scsi_cmnd *);
-
- /*
- * The transfer functions are used to queue a scsi command to
- * the LLD. When the driver is finished processing the command
- * the done callback is invoked.
- *
- * This is called to inform the LLD to transfer
- * scsi_bufflen(cmd) bytes. scsi_sg_count(cmd) speciefies the
- * number of scatterlist entried in the command and
- * scsi_sglist(cmd) returns the scatterlist.
- *
- * return values: see queuecommand
- *
- * If the LLD accepts the cmd, it should set the result to an
- * appropriate value when completed before calling the done function.
- *
- * STATUS: REQUIRED FOR TARGET DRIVERS
- */
- /* TODO: rename */
- int (* transfer_response)(struct scsi_cmnd *,
- void (*done)(struct scsi_cmnd *));
-
- /*
- * This is an error handling strategy routine. You don't need to
- * define one of these if you don't want to - there is a default
- * routine that is present that should work in most cases. For those
- * driver authors that have the inclination and ability to write their
- * own strategy routine, this is where it is specified. Note - the
- * strategy routine is *ALWAYS* run in the context of the kernel eh
- * thread. Thus you are guaranteed to *NOT* be in an interrupt
- * handler when you execute this, and you are also guaranteed to
- * *NOT* have any other commands being queued while you are in the
- * strategy routine. When you return from this function, operations
- * return to normal.
- *
- * See scsi_error.c scsi_unjam_host for additional comments about
- * what this function should and should not be attempting to do.
- *
- * Status: REQUIRED (at least one of them)
- */
- int (* eh_abort_handler)(struct scsi_cmnd *);
- int (* eh_device_reset_handler)(struct scsi_cmnd *);
- int (* eh_target_reset_handler)(struct scsi_cmnd *);
- int (* eh_bus_reset_handler)(struct scsi_cmnd *);
- int (* eh_host_reset_handler)(struct scsi_cmnd *);
-
- /*
- * Before the mid layer attempts to scan for a new device where none
- * currently exists, it will call this entry in your driver. Should
- * your driver need to allocate any structs or perform any other init
- * items in order to send commands to a currently unused target/lun
- * combo, then this is where you can perform those allocations. This
- * is specifically so that drivers won't have to perform any kind of
- * "is this a new device" checks in their queuecommand routine,
- * thereby making the hot path a bit quicker.
- *
- * Return values: 0 on success, non-0 on failure
- *
- * Deallocation: If we didn't find any devices at this ID, you will
- * get an immediate call to slave_destroy(). If we find something
- * here then you will get a call to slave_configure(), then the
- * device will be used for however long it is kept around, then when
- * the device is removed from the system (or * possibly at reboot
- * time), you will then get a call to slave_destroy(). This is
- * assuming you implement slave_configure and slave_destroy.
- * However, if you allocate memory and hang it off the device struct,
- * then you must implement the slave_destroy() routine at a minimum
- * in order to avoid leaking memory
- * each time a device is tore down.
- *
- * Status: OPTIONAL
- */
- int (* slave_alloc)(struct scsi_device *);
-
- /*
- * Once the device has responded to an INQUIRY and we know the
- * device is online, we call into the low level driver with the
- * struct scsi_device *. If the low level device driver implements
- * this function, it *must* perform the task of setting the queue
- * depth on the device. All other tasks are optional and depend
- * on what the driver supports and various implementation details.
- *
- * Things currently recommended to be handled at this time include:
- *
- * 1. Setting the device queue depth. Proper setting of this is
- * described in the comments for scsi_adjust_queue_depth.
- * 2. Determining if the device supports the various synchronous
- * negotiation protocols. The device struct will already have
- * responded to INQUIRY and the results of the standard items
- * will have been shoved into the various device flag bits, eg.
- * device->sdtr will be true if the device supports SDTR messages.
- * 3. Allocating command structs that the device will need.
- * 4. Setting the default timeout on this device (if needed).
- * 5. Anything else the low level driver might want to do on a device
- * specific setup basis...
- * 6. Return 0 on success, non-0 on error. The device will be marked
- * as offline on error so that no access will occur. If you return
- * non-0, your slave_destroy routine will never get called for this
- * device, so don't leave any loose memory hanging around, clean
- * up after yourself before returning non-0
- *
- * Status: OPTIONAL
- */
- int (* slave_configure)(struct scsi_device *);
-
- /*
- * Immediately prior to deallocating the device and after all activity
- * has ceased the mid layer calls this point so that the low level
- * driver may completely detach itself from the scsi device and vice
- * versa. The low level driver is responsible for freeing any memory
- * it allocated in the slave_alloc or slave_configure calls.
- *
- * Status: OPTIONAL
- */
- void (* slave_destroy)(struct scsi_device *);
-
- /*
- * Before the mid layer attempts to scan for a new device attached
- * to a target where no target currently exists, it will call this
- * entry in your driver. Should your driver need to allocate any
- * structs or perform any other init items in order to send commands
- * to a currently unused target, then this is where you can perform
- * those allocations.
- *
- * Return values: 0 on success, non-0 on failure
- *
- * Status: OPTIONAL
- */
- int (* target_alloc)(struct scsi_target *);
-
- /*
- * Immediately prior to deallocating the target structure, and
- * after all activity to attached scsi devices has ceased, the
- * midlayer calls this point so that the driver may deallocate
- * and terminate any references to the target.
- *
- * Status: OPTIONAL
- */
- void (* target_destroy)(struct scsi_target *);
-
- /*
- * If a host has the ability to discover targets on its own instead
- * of scanning the entire bus, it can fill in this function and
- * call scsi_scan_host(). This function will be called periodically
- * until it returns 1 with the scsi_host and the elapsed time of
- * the scan in jiffies.
- *
- * Status: OPTIONAL
- */
- int (* scan_finished)(struct Scsi_Host *, unsigned long);
-
- /*
- * If the host wants to be called before the scan starts, but
- * after the midlayer has set up ready for the scan, it can fill
- * in this function.
- *
- * Status: OPTIONAL
- */
- void (* scan_start)(struct Scsi_Host *);
-
- /*
- * Fill in this function to allow the queue depth of this host
- * to be changeable (on a per device basis). Returns either
- * the current queue depth setting (may be different from what
- * was passed in) or an error. An error should only be
- * returned if the requested depth is legal but the driver was
- * unable to set it. If the requested depth is illegal, the
- * driver should set and return the closest legal queue depth.
- *
- * Status: OPTIONAL
- */
- int (* change_queue_depth)(struct scsi_device *, int, int);
-
- /*
- * Fill in this function to allow the changing of tag types
- * (this also allows the enabling/disabling of tag command
- * queueing). An error should only be returned if something
- * went wrong in the driver while trying to set the tag type.
- * If the driver doesn't support the requested tag type, then
- * it should set the closest type it does support without
- * returning an error. Returns the actual tag type set.
- *
- * Status: OPTIONAL
- */
- int (* change_queue_type)(struct scsi_device *, int);
-
- /*
- * This function determines the BIOS parameters for a given
- * harddisk. These tend to be numbers that are made up by
- * the host adapter. Parameters:
- * size, device, list (heads, sectors, cylinders)
- *
- * Status: OPTIONAL
- */
- int (* bios_param)(struct scsi_device *, struct block_device *,
- sector_t, int []);
-
- /*
- * This function is called when one or more partitions on the
- * device reach beyond the end of the device.
- *
- * Status: OPTIONAL
- */
- void (*unlock_native_capacity)(struct scsi_device *);
-
- /*
- * Can be used to export driver statistics and other infos to the
- * world outside the kernel ie. userspace and it also provides an
- * interface to feed the driver with information.
- *
- * Status: OBSOLETE
- */
- int (*proc_info)(struct Scsi_Host *, char *, char **, off_t, int, int);
-
- /*
- * This is an optional routine that allows the transport to become
- * involved when a scsi io timer fires. The return value tells the
- * timer routine how to finish the io timeout handling:
- * EH_HANDLED: I fixed the error, please complete the command
- * EH_RESET_TIMER: I need more time, reset the timer and
- * begin counting again
- * EH_NOT_HANDLED Begin normal error recovery
- *
- * Status: OPTIONAL
- */
- enum blk_eh_timer_return (*eh_timed_out)(struct scsi_cmnd *);
-
- /* This is an optional routine that allows transport to initiate
- * LLD adapter or firmware reset using sysfs attribute.
- *
- * Return values: 0 on success, -ve value on failure.
- *
- * Status: OPTIONAL
- */
-
- int (*host_reset)(struct Scsi_Host *shost, int reset_type);
-#define SCSI_ADAPTER_RESET 1
-#define SCSI_FIRMWARE_RESET 2
-
-
- /*
- * Name of proc directory
- */
- const char *proc_name;
-
- /*
- * Used to store the procfs directory if a driver implements the
- * proc_info method.
- */
- struct proc_dir_entry *proc_dir;
-
- /*
- * This determines if we will use a non-interrupt driven
- * or an interrupt driven scheme. It is set to the maximum number
- * of simultaneous commands a given host adapter will accept.
- */
- int can_queue;
-
- /*
- * In many instances, especially where disconnect / reconnect are
- * supported, our host also has an ID on the SCSI bus. If this is
- * the case, then it must be reserved. Please set this_id to -1 if
- * your setup is in single initiator mode, and the host lacks an
- * ID.
- */
- int this_id;
-
- /*
- * This determines the degree to which the host adapter is capable
- * of scatter-gather.
- */
- unsigned short sg_tablesize;
- unsigned short sg_prot_tablesize;
-
- /*
- * Set this if the host adapter has limitations beside segment count.
- */
- unsigned short max_sectors;
-
- /*
- * DMA scatter gather segment boundary limit. A segment crossing this
- * boundary will be split in two.
- */
- unsigned long dma_boundary;
-
- /*
- * This specifies "machine infinity" for host templates which don't
- * limit the transfer size. Note this limit represents an absolute
- * maximum, and may be over the transfer limits allowed for
- * individual devices (e.g. 256 for SCSI-1).
- */
-#define SCSI_DEFAULT_MAX_SECTORS 1024
-
- /*
- * True if this host adapter can make good use of linked commands.
- * This will allow more than one command to be queued to a given
- * unit on a given host. Set this to the maximum number of command
- * blocks to be provided for each device. Set this to 1 for one
- * command block per lun, 2 for two, etc. Do not set this to 0.
- * You should make sure that the host adapter will do the right thing
- * before you try setting this above 1.
- */
- short cmd_per_lun;
-
- /*
- * present contains counter indicating how many boards of this
- * type were found when we did the scan.
- */
- unsigned char present;
-
- /*
- * This specifies the mode that a LLD supports.
- */
- unsigned supported_mode:2;
-
- /*
- * True if this host adapter uses unchecked DMA onto an ISA bus.
- */
- unsigned unchecked_isa_dma:1;
-
- /*
- * True if this host adapter can make good use of clustering.
- * I originally thought that if the tablesize was large that it
- * was a waste of CPU cycles to prepare a cluster list, but
- * it works out that the Buslogic is faster if you use a smaller
- * number of segments (i.e. use clustering). I guess it is
- * inefficient.
- */
- unsigned use_clustering:1;
-
- /*
- * True for emulated SCSI host adapters (e.g. ATAPI).
- */
- unsigned emulated:1;
-
- /*
- * True if the low-level driver performs its own reset-settle delays.
- */
- unsigned skip_settle_delay:1;
-
- /*
- * True if we are using ordered write support.
- */
- unsigned ordered_tag:1;
-
- /*
- * Countdown for host blocking with no commands outstanding.
- */
- unsigned int max_host_blocked;
-
- /*
- * Default value for the blocking. If the queue is empty,
- * host_blocked counts down in the request_fn until it restarts
- * host operations as zero is reached.
- *
- * FIXME: This should probably be a value in the template
- */
-#define SCSI_DEFAULT_HOST_BLOCKED 7
-
- /*
- * Pointer to the sysfs class properties for this host, NULL terminated.
- */
- struct device_attribute **shost_attrs;
-
- /*
- * Pointer to the SCSI device properties for this host, NULL terminated.
- */
- struct device_attribute **sdev_attrs;
-
- /*
- * List of hosts per template.
- *
- * This is only for use by scsi_module.c for legacy templates.
- * For these access to it is synchronized implicitly by
- * module_init/module_exit.
- */
- struct list_head legacy_hosts;
-
- /*
- * Vendor Identifier associated with the host
- *
- * Note: When specifying vendor_id, be sure to read the
- * Vendor Type and ID formatting requirements specified in
- * scsi_netlink.h
- */
- u64 vendor_id;
-};
-
-/*
- * Temporary #define for host lock push down. Can be removed when all
- * drivers have been updated to take advantage of unlocked
- * queuecommand.
- *
- */
-#define DEF_SCSI_QCMD(func_name) \
- int func_name(struct Scsi_Host *shost, struct scsi_cmnd *cmd) \
- { \
- unsigned long irq_flags; \
- int rc; \
- spin_lock_irqsave(shost->host_lock, irq_flags); \
- scsi_cmd_get_serial(shost, cmd); \
- rc = func_name##_lck (cmd, cmd->scsi_done); \
- spin_unlock_irqrestore(shost->host_lock, irq_flags); \
- return rc; \
- }
-
-
-/*
- * shost state: If you alter this, you also need to alter scsi_sysfs.c
- * (for the ascii descriptions) and the state model enforcer:
- * scsi_host_set_state()
- */
-enum scsi_host_state {
- SHOST_CREATED = 1,
- SHOST_RUNNING,
- SHOST_CANCEL,
- SHOST_DEL,
- SHOST_RECOVERY,
- SHOST_CANCEL_RECOVERY,
- SHOST_DEL_RECOVERY,
-};
-
-struct Scsi_Host {
- /*
- * __devices is protected by the host_lock, but you should
- * usually use scsi_device_lookup / shost_for_each_device
- * to access it and don't care about locking yourself.
- * In the rare case of beeing in irq context you can use
- * their __ prefixed variants with the lock held. NEVER
- * access this list directly from a driver.
- */
- struct list_head __devices;
- struct list_head __targets;
-
- struct scsi_host_cmd_pool *cmd_pool;
- spinlock_t free_list_lock;
- struct list_head free_list; /* backup store of cmd structs */
- struct list_head starved_list;
-
- spinlock_t default_lock;
- spinlock_t *host_lock;
-
- struct mutex scan_mutex;/* serialize scanning activity */
-
- struct list_head eh_cmd_q;
- struct task_struct * ehandler; /* Error recovery thread. */
- struct completion * eh_action; /* Wait for specific actions on the
- host. */
- wait_queue_head_t host_wait;
- struct scsi_host_template *hostt;
- struct scsi_transport_template *transportt;
-
- /*
- * Area to keep a shared tag map (if needed, will be
- * NULL if not).
- */
- struct blk_queue_tag *bqt;
-
- /*
- * The following two fields are protected with host_lock;
- * however, eh routines can safely access during eh processing
- * without acquiring the lock.
- */
- unsigned int host_busy; /* commands actually active on low-level */
- unsigned int host_failed; /* commands that failed. */
- unsigned int host_eh_scheduled; /* EH scheduled without command */
-
- unsigned int host_no; /* Used for IOCTL_GET_IDLUN, /proc/scsi et al. */
- int resetting; /* if set, it means that last_reset is a valid value */
- unsigned long last_reset;
-
- /*
- * These three parameters can be used to allow for wide scsi,
- * and for host adapters that support multiple busses
- * The first two should be set to 1 more than the actual max id
- * or lun (i.e. 8 for normal systems).
- */
- unsigned int max_id;
- unsigned int max_lun;
- unsigned int max_channel;
-
- /*
- * This is a unique identifier that must be assigned so that we
- * have some way of identifying each detected host adapter properly
- * and uniquely. For hosts that do not support more than one card
- * in the system at one time, this does not need to be set. It is
- * initialized to 0 in scsi_register.
- */
- unsigned int unique_id;
-
- /*
- * The maximum length of SCSI commands that this host can accept.
- * Probably 12 for most host adapters, but could be 16 for others.
- * or 260 if the driver supports variable length cdbs.
- * For drivers that don't set this field, a value of 12 is
- * assumed.
- */
- unsigned short max_cmd_len;
-
- int this_id;
- int can_queue;
- short cmd_per_lun;
- short unsigned int sg_tablesize;
- short unsigned int sg_prot_tablesize;
- short unsigned int max_sectors;
- unsigned long dma_boundary;
- /*
- * Used to assign serial numbers to the cmds.
- * Protected by the host lock.
- */
- unsigned long cmd_serial_number;
-
- unsigned active_mode:2;
- unsigned unchecked_isa_dma:1;
- unsigned use_clustering:1;
- unsigned use_blk_tcq:1;
-
- /*
- * Host has requested that no further requests come through for the
- * time being.
- */
- unsigned host_self_blocked:1;
-
- /*
- * Host uses correct SCSI ordering not PC ordering. The bit is
- * set for the minority of drivers whose authors actually read
- * the spec ;).
- */
- unsigned reverse_ordering:1;
-
- /*
- * Ordered write support
- */
- unsigned ordered_tag:1;
-
- /* Task mgmt function in progress */
- unsigned tmf_in_progress:1;
-
- /* Asynchronous scan in progress */
- unsigned async_scan:1;
-
- /* Don't resume host in EH */
- unsigned eh_noresume:1;
-
- /*
- * Optional work queue to be utilized by the transport
- */
- char work_q_name[20];
- struct workqueue_struct *work_q;
-
- /*
- * Host has rejected a command because it was busy.
- */
- unsigned int host_blocked;
-
- /*
- * Value host_blocked counts down from
- */
- unsigned int max_host_blocked;
-
- /* Protection Information */
- unsigned int prot_capabilities;
- unsigned char prot_guard_type;
-
- /*
- * q used for scsi_tgt msgs, async events or any other requests that
- * need to be processed in userspace
- */
- struct request_queue *uspace_req_q;
-
- /* legacy crap */
- unsigned long base;
- unsigned long io_port;
- unsigned char n_io_port;
- unsigned char dma_channel;
- unsigned int irq;
-
-
- enum scsi_host_state shost_state;
-
- /* ldm bits */
- struct device shost_gendev, shost_dev;
-
- /*
- * List of hosts per template.
- *
- * This is only for use by scsi_module.c for legacy templates.
- * For these access to it is synchronized implicitly by
- * module_init/module_exit.
- */
- struct list_head sht_legacy_list;
-
- /*
- * Points to the transport data (if any) which is allocated
- * separately
- */
- void *shost_data;
-
- /*
- * Points to the physical bus device we'd use to do DMA
- * Needed just in case we have virtual hosts.
- */
- struct device *dma_dev;
-
- /*
- * We should ensure that this is aligned, both for better performance
- * and also because some compilers (m68k) don't automatically force
- * alignment to a long boundary.
- */
- unsigned long hostdata[0] /* Used for storage of host specific stuff */
- __attribute__ ((aligned (sizeof(unsigned long))));
-};
-
-#define class_to_shost(d) \
- container_of(d, struct Scsi_Host, shost_dev)
-
-#define shost_printk(prefix, shost, fmt, a...) \
- dev_printk(prefix, &(shost)->shost_gendev, fmt, ##a)
-
-static inline void *shost_priv(struct Scsi_Host *shost)
-{
- return (void *)shost->hostdata;
-}
-
-int scsi_is_host_device(const struct device *);
-
-static inline struct Scsi_Host *dev_to_shost(struct device *dev)
-{
- while (!scsi_is_host_device(dev)) {
- if (!dev->parent)
- return NULL;
- dev = dev->parent;
- }
- return container_of(dev, struct Scsi_Host, shost_gendev);
-}
-
-static inline int scsi_host_in_recovery(struct Scsi_Host *shost)
-{
- return shost->shost_state == SHOST_RECOVERY ||
- shost->shost_state == SHOST_CANCEL_RECOVERY ||
- shost->shost_state == SHOST_DEL_RECOVERY ||
- shost->tmf_in_progress;
-}
-
-extern int scsi_queue_work(struct Scsi_Host *, struct work_struct *);
-extern void scsi_flush_work(struct Scsi_Host *);
-
-extern struct Scsi_Host *scsi_host_alloc(struct scsi_host_template *, int);
-extern int __must_check scsi_add_host_with_dma(struct Scsi_Host *,
- struct device *,
- struct device *);
-extern void scsi_scan_host(struct Scsi_Host *);
-extern void scsi_rescan_device(struct device *);
-extern void scsi_remove_host(struct Scsi_Host *);
-extern struct Scsi_Host *scsi_host_get(struct Scsi_Host *);
-extern void scsi_host_put(struct Scsi_Host *t);
-extern struct Scsi_Host *scsi_host_lookup(unsigned short);
-extern const char *scsi_host_state_name(enum scsi_host_state);
-extern void scsi_cmd_get_serial(struct Scsi_Host *, struct scsi_cmnd *);
-
-extern u64 scsi_calculate_bounce_limit(struct Scsi_Host *);
-
-static inline int __must_check scsi_add_host(struct Scsi_Host *host,
- struct device *dev)
-{
- return scsi_add_host_with_dma(host, dev, dev);
-}
-
-static inline struct device *scsi_get_device(struct Scsi_Host *shost)
-{
- return shost->shost_gendev.parent;
-}
-
-/**
- * scsi_host_scan_allowed - Is scanning of this host allowed
- * @shost: Pointer to Scsi_Host.
- **/
-static inline int scsi_host_scan_allowed(struct Scsi_Host *shost)
-{
- return shost->shost_state == SHOST_RUNNING ||
- shost->shost_state == SHOST_RECOVERY;
-}
-
-extern void scsi_unblock_requests(struct Scsi_Host *);
-extern void scsi_block_requests(struct Scsi_Host *);
-
-struct class_container;
-
-extern struct request_queue *__scsi_alloc_queue(struct Scsi_Host *shost,
- void (*) (struct request_queue *));
-/*
- * These two functions are used to allocate and free a pseudo device
- * which will connect to the host adapter itself rather than any
- * physical device. You must deallocate when you are done with the
- * thing. This physical pseudo-device isn't real and won't be available
- * from any high-level drivers.
- */
-extern void scsi_free_host_dev(struct scsi_device *);
-extern struct scsi_device *scsi_get_host_dev(struct Scsi_Host *);
-
-/*
- * DIF defines the exchange of protection information between
- * initiator and SBC block device.
- *
- * DIX defines the exchange of protection information between OS and
- * initiator.
- */
-enum scsi_host_prot_capabilities {
- SHOST_DIF_TYPE1_PROTECTION = 1 << 0, /* T10 DIF Type 1 */
- SHOST_DIF_TYPE2_PROTECTION = 1 << 1, /* T10 DIF Type 2 */
- SHOST_DIF_TYPE3_PROTECTION = 1 << 2, /* T10 DIF Type 3 */
-
- SHOST_DIX_TYPE0_PROTECTION = 1 << 3, /* DIX between OS and HBA only */
- SHOST_DIX_TYPE1_PROTECTION = 1 << 4, /* DIX with DIF Type 1 */
- SHOST_DIX_TYPE2_PROTECTION = 1 << 5, /* DIX with DIF Type 2 */
- SHOST_DIX_TYPE3_PROTECTION = 1 << 6, /* DIX with DIF Type 3 */
-};
-
-/*
- * SCSI hosts which support the Data Integrity Extensions must
- * indicate their capabilities by setting the prot_capabilities using
- * this call.
- */
-static inline void scsi_host_set_prot(struct Scsi_Host *shost, unsigned int mask)
-{
- shost->prot_capabilities = mask;
-}
-
-static inline unsigned int scsi_host_get_prot(struct Scsi_Host *shost)
-{
- return shost->prot_capabilities;
-}
-
-static inline int scsi_host_prot_dma(struct Scsi_Host *shost)
-{
- return shost->prot_capabilities >= SHOST_DIX_TYPE0_PROTECTION;
-}
-
-static inline unsigned int scsi_host_dif_capable(struct Scsi_Host *shost, unsigned int target_type)
-{
- static unsigned char cap[] = { 0,
- SHOST_DIF_TYPE1_PROTECTION,
- SHOST_DIF_TYPE2_PROTECTION,
- SHOST_DIF_TYPE3_PROTECTION };
-
- return shost->prot_capabilities & cap[target_type] ? target_type : 0;
-}
-
-static inline unsigned int scsi_host_dix_capable(struct Scsi_Host *shost, unsigned int target_type)
-{
-#if defined(CONFIG_BLK_DEV_INTEGRITY)
- static unsigned char cap[] = { SHOST_DIX_TYPE0_PROTECTION,
- SHOST_DIX_TYPE1_PROTECTION,
- SHOST_DIX_TYPE2_PROTECTION,
- SHOST_DIX_TYPE3_PROTECTION };
-
- return shost->prot_capabilities & cap[target_type];
-#endif
- return 0;
-}
-
-/*
- * All DIX-capable initiators must support the T10-mandated CRC
- * checksum. Controllers can optionally implement the IP checksum
- * scheme which has much lower impact on system performance. Note
- * that the main rationale for the checksum is to match integrity
- * metadata with data. Detecting bit errors are a job for ECC memory
- * and buses.
- */
-
-enum scsi_host_guard_type {
- SHOST_DIX_GUARD_CRC = 1 << 0,
- SHOST_DIX_GUARD_IP = 1 << 1,
-};
-
-static inline void scsi_host_set_guard(struct Scsi_Host *shost, unsigned char type)
-{
- shost->prot_guard_type = type;
-}
-
-static inline unsigned char scsi_host_get_guard(struct Scsi_Host *shost)
-{
- return shost->prot_guard_type;
-}
-
-/* legacy interfaces */
-extern struct Scsi_Host *scsi_register(struct scsi_host_template *, int);
-extern void scsi_unregister(struct Scsi_Host *);
-extern int scsi_host_set_state(struct Scsi_Host *, enum scsi_host_state);
-
-#endif /* _SCSI_SCSI_HOST_H */
diff --git a/ANDROID_3.4.5/include/scsi/scsi_ioctl.h b/ANDROID_3.4.5/include/scsi/scsi_ioctl.h
deleted file mode 100644
index b9006848..00000000
--- a/ANDROID_3.4.5/include/scsi/scsi_ioctl.h
+++ /dev/null
@@ -1,48 +0,0 @@
-#ifndef _SCSI_IOCTL_H
-#define _SCSI_IOCTL_H
-
-#define SCSI_IOCTL_SEND_COMMAND 1
-#define SCSI_IOCTL_TEST_UNIT_READY 2
-#define SCSI_IOCTL_BENCHMARK_COMMAND 3
-#define SCSI_IOCTL_SYNC 4 /* Request synchronous parameters */
-#define SCSI_IOCTL_START_UNIT 5
-#define SCSI_IOCTL_STOP_UNIT 6
-/* The door lock/unlock constants are compatible with Sun constants for
- the cdrom */
-#define SCSI_IOCTL_DOORLOCK 0x5380 /* lock the eject mechanism */
-#define SCSI_IOCTL_DOORUNLOCK 0x5381 /* unlock the mechanism */
-
-#define SCSI_REMOVAL_PREVENT 1
-#define SCSI_REMOVAL_ALLOW 0
-
-#ifdef __KERNEL__
-
-struct scsi_device;
-
-/*
- * Structures used for scsi_ioctl et al.
- */
-
-typedef struct scsi_ioctl_command {
- unsigned int inlen;
- unsigned int outlen;
- unsigned char data[0];
-} Scsi_Ioctl_Command;
-
-typedef struct scsi_idlun {
- __u32 dev_id;
- __u32 host_unique_id;
-} Scsi_Idlun;
-
-/* Fibre Channel WWN, port_id struct */
-typedef struct scsi_fctargaddress {
- __u32 host_port_id;
- unsigned char host_wwn[8]; // include NULL term.
-} Scsi_FCTargAddress;
-
-extern int scsi_ioctl(struct scsi_device *, int, void __user *);
-extern int scsi_nonblockable_ioctl(struct scsi_device *sdev, int cmd,
- void __user *arg, int ndelay);
-
-#endif /* __KERNEL__ */
-#endif /* _SCSI_IOCTL_H */
diff --git a/ANDROID_3.4.5/include/scsi/scsi_netlink.h b/ANDROID_3.4.5/include/scsi/scsi_netlink.h
deleted file mode 100644
index 5cb20ccb..00000000
--- a/ANDROID_3.4.5/include/scsi/scsi_netlink.h
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * SCSI Transport Netlink Interface
- * Used for the posting of outbound SCSI transport events
- *
- * Copyright (C) 2006 James Smart, Emulex Corporation
- *
- * 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
- *
- */
-#ifndef SCSI_NETLINK_H
-#define SCSI_NETLINK_H
-
-#include <linux/netlink.h>
-#include <linux/types.h>
-
-/*
- * This file intended to be included by both kernel and user space
- */
-
-/* Single Netlink Message type to send all SCSI Transport messages */
-#define SCSI_TRANSPORT_MSG NLMSG_MIN_TYPE + 1
-
-/* SCSI Transport Broadcast Groups */
- /* leaving groups 0 and 1 unassigned */
-#define SCSI_NL_GRP_FC_EVENTS (1<<2) /* Group 2 */
-#define SCSI_NL_GRP_CNT 3
-
-
-/* SCSI_TRANSPORT_MSG event message header */
-struct scsi_nl_hdr {
- uint8_t version;
- uint8_t transport;
- uint16_t magic;
- uint16_t msgtype;
- uint16_t msglen;
-} __attribute__((aligned(sizeof(uint64_t))));
-
-/* scsi_nl_hdr->version value */
-#define SCSI_NL_VERSION 1
-
-/* scsi_nl_hdr->magic value */
-#define SCSI_NL_MAGIC 0xA1B2
-
-/* scsi_nl_hdr->transport value */
-#define SCSI_NL_TRANSPORT 0
-#define SCSI_NL_TRANSPORT_FC 1
-#define SCSI_NL_MAX_TRANSPORTS 2
-
-/* Transport-based scsi_nl_hdr->msgtype values are defined in each transport */
-
-/*
- * GENERIC SCSI scsi_nl_hdr->msgtype Values
- */
- /* kernel -> user */
-#define SCSI_NL_SHOST_VENDOR 0x0001
- /* user -> kernel */
-/* SCSI_NL_SHOST_VENDOR msgtype is kernel->user and user->kernel */
-
-
-/*
- * Message Structures :
- */
-
-/* macro to round up message lengths to 8byte boundary */
-#define SCSI_NL_MSGALIGN(len) (((len) + 7) & ~7)
-
-
-/*
- * SCSI HOST Vendor Unique messages :
- * SCSI_NL_SHOST_VENDOR
- *
- * Note: The Vendor Unique message payload will begin directly after
- * this structure, with the length of the payload per vmsg_datalen.
- *
- * Note: When specifying vendor_id, be sure to read the Vendor Type and ID
- * formatting requirements specified below
- */
-struct scsi_nl_host_vendor_msg {
- struct scsi_nl_hdr snlh; /* must be 1st element ! */
- uint64_t vendor_id;
- uint16_t host_no;
- uint16_t vmsg_datalen;
-} __attribute__((aligned(sizeof(uint64_t))));
-
-
-/*
- * Vendor ID:
- * If transports post vendor-unique events, they must pass a well-known
- * 32-bit vendor identifier. This identifier consists of 8 bits indicating
- * the "type" of identifier contained, and 24 bits of id data.
- *
- * Identifiers for each type:
- * PCI : ID data is the 16 bit PCI Registered Vendor ID
- */
-#define SCSI_NL_VID_TYPE_SHIFT 56
-#define SCSI_NL_VID_TYPE_MASK ((__u64)0xFF << SCSI_NL_VID_TYPE_SHIFT)
-#define SCSI_NL_VID_TYPE_PCI ((__u64)0x01 << SCSI_NL_VID_TYPE_SHIFT)
-#define SCSI_NL_VID_ID_MASK (~ SCSI_NL_VID_TYPE_MASK)
-
-
-#define INIT_SCSI_NL_HDR(hdr, t, mtype, mlen) \
- { \
- (hdr)->version = SCSI_NL_VERSION; \
- (hdr)->transport = t; \
- (hdr)->magic = SCSI_NL_MAGIC; \
- (hdr)->msgtype = mtype; \
- (hdr)->msglen = mlen; \
- }
-
-
-#ifdef __KERNEL__
-
-#include <scsi/scsi_host.h>
-
-/* Exported Kernel Interfaces */
-int scsi_nl_add_transport(u8 tport,
- int (*msg_handler)(struct sk_buff *),
- void (*event_handler)(struct notifier_block *, unsigned long, void *));
-void scsi_nl_remove_transport(u8 tport);
-
-int scsi_nl_add_driver(u64 vendor_id, struct scsi_host_template *hostt,
- int (*nlmsg_handler)(struct Scsi_Host *shost, void *payload,
- u32 len, u32 pid),
- void (*nlevt_handler)(struct notifier_block *nb,
- unsigned long event, void *notify_ptr));
-void scsi_nl_remove_driver(u64 vendor_id);
-
-void scsi_nl_send_transport_msg(u32 pid, struct scsi_nl_hdr *hdr);
-int scsi_nl_send_vendor_msg(u32 pid, unsigned short host_no, u64 vendor_id,
- char *data_buf, u32 data_len);
-
-#endif /* __KERNEL__ */
-
-#endif /* SCSI_NETLINK_H */
-
diff --git a/ANDROID_3.4.5/include/scsi/scsi_netlink_fc.h b/ANDROID_3.4.5/include/scsi/scsi_netlink_fc.h
deleted file mode 100644
index cbf76e47..00000000
--- a/ANDROID_3.4.5/include/scsi/scsi_netlink_fc.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * FC Transport Netlink Interface
- *
- * Copyright (C) 2006 James Smart, Emulex Corporation
- *
- * 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
- *
- */
-#ifndef SCSI_NETLINK_FC_H
-#define SCSI_NETLINK_FC_H
-
-#include <scsi/scsi_netlink.h>
-
-/*
- * This file intended to be included by both kernel and user space
- */
-
-/*
- * FC Transport Message Types
- */
- /* kernel -> user */
-#define FC_NL_ASYNC_EVENT 0x0100
- /* user -> kernel */
-/* none */
-
-
-/*
- * Message Structures :
- */
-
-/* macro to round up message lengths to 8byte boundary */
-#define FC_NL_MSGALIGN(len) (((len) + 7) & ~7)
-
-
-/*
- * FC Transport Broadcast Event Message :
- * FC_NL_ASYNC_EVENT
- *
- * Note: if Vendor Unique message, &event_data will be start of
- * vendor unique payload, and the length of the payload is
- * per event_datalen
- *
- * Note: When specifying vendor_id, be sure to read the Vendor Type and ID
- * formatting requirements specified in scsi_netlink.h
- */
-struct fc_nl_event {
- struct scsi_nl_hdr snlh; /* must be 1st element ! */
- uint64_t seconds;
- uint64_t vendor_id;
- uint16_t host_no;
- uint16_t event_datalen;
- uint32_t event_num;
- uint32_t event_code;
- uint32_t event_data;
-} __attribute__((aligned(sizeof(uint64_t))));
-
-
-#endif /* SCSI_NETLINK_FC_H */
-
diff --git a/ANDROID_3.4.5/include/scsi/scsi_scan.h b/ANDROID_3.4.5/include/scsi/scsi_scan.h
deleted file mode 100644
index 78898889..00000000
--- a/ANDROID_3.4.5/include/scsi/scsi_scan.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef _SCSI_SCSI_SCAN_H
-#define _SCSI_SCSI_SCAN_H
-
-#ifdef CONFIG_SCSI
-/* drivers/scsi/scsi_scan.c */
-extern int scsi_complete_async_scans(void);
-#else
-static inline int scsi_complete_async_scans(void) { return 0; }
-#endif
-
-#endif /* _SCSI_SCSI_SCAN_H */
diff --git a/ANDROID_3.4.5/include/scsi/scsi_tcq.h b/ANDROID_3.4.5/include/scsi/scsi_tcq.h
deleted file mode 100644
index 81dd12ed..00000000
--- a/ANDROID_3.4.5/include/scsi/scsi_tcq.h
+++ /dev/null
@@ -1,175 +0,0 @@
-#ifndef _SCSI_SCSI_TCQ_H
-#define _SCSI_SCSI_TCQ_H
-
-#include <linux/blkdev.h>
-#include <scsi/scsi_cmnd.h>
-#include <scsi/scsi_device.h>
-#include <scsi/scsi_host.h>
-
-#define MSG_SIMPLE_TAG 0x20
-#define MSG_HEAD_TAG 0x21
-#define MSG_ORDERED_TAG 0x22
-#define MSG_ACA_TAG 0x24 /* unsupported */
-
-#define SCSI_NO_TAG (-1) /* identify no tag in use */
-
-
-#ifdef CONFIG_BLOCK
-
-/**
- * scsi_get_tag_type - get the type of tag the device supports
- * @sdev: the scsi device
- *
- * Notes:
- * If the drive only supports simple tags, returns MSG_SIMPLE_TAG
- * if it supports all tag types, returns MSG_ORDERED_TAG.
- */
-static inline int scsi_get_tag_type(struct scsi_device *sdev)
-{
- if (!sdev->tagged_supported)
- return 0;
- if (sdev->ordered_tags)
- return MSG_ORDERED_TAG;
- if (sdev->simple_tags)
- return MSG_SIMPLE_TAG;
- return 0;
-}
-
-static inline void scsi_set_tag_type(struct scsi_device *sdev, int tag)
-{
- switch (tag) {
- case MSG_ORDERED_TAG:
- sdev->ordered_tags = 1;
- /* fall through */
- case MSG_SIMPLE_TAG:
- sdev->simple_tags = 1;
- break;
- case 0:
- /* fall through */
- default:
- sdev->ordered_tags = 0;
- sdev->simple_tags = 0;
- break;
- }
-}
-/**
- * scsi_activate_tcq - turn on tag command queueing
- * @SDpnt: device to turn on TCQ for
- * @depth: queue depth
- *
- * Notes:
- * Eventually, I hope depth would be the maximum depth
- * the device could cope with and the real queue depth
- * would be adjustable from 0 to depth.
- **/
-static inline void scsi_activate_tcq(struct scsi_device *sdev, int depth)
-{
- if (!sdev->tagged_supported)
- return;
-
- if (!blk_queue_tagged(sdev->request_queue))
- blk_queue_init_tags(sdev->request_queue, depth,
- sdev->host->bqt);
-
- scsi_adjust_queue_depth(sdev, scsi_get_tag_type(sdev), depth);
-}
-
-/**
- * scsi_deactivate_tcq - turn off tag command queueing
- * @SDpnt: device to turn off TCQ for
- **/
-static inline void scsi_deactivate_tcq(struct scsi_device *sdev, int depth)
-{
- if (blk_queue_tagged(sdev->request_queue))
- blk_queue_free_tags(sdev->request_queue);
- scsi_adjust_queue_depth(sdev, 0, depth);
-}
-
-/**
- * scsi_populate_tag_msg - place a tag message in a buffer
- * @SCpnt: pointer to the Scsi_Cmnd for the tag
- * @msg: pointer to the area to place the tag
- *
- * Notes:
- * designed to create the correct type of tag message for the
- * particular request. Returns the size of the tag message.
- * May return 0 if TCQ is disabled for this device.
- **/
-static inline int scsi_populate_tag_msg(struct scsi_cmnd *cmd, char *msg)
-{
- struct request *req = cmd->request;
-
- if (blk_rq_tagged(req)) {
- *msg++ = MSG_SIMPLE_TAG;
- *msg++ = req->tag;
- return 2;
- }
-
- return 0;
-}
-
-/**
- * scsi_find_tag - find a tagged command by device
- * @SDpnt: pointer to the ScSI device
- * @tag: the tag number
- *
- * Notes:
- * Only works with tags allocated by the generic blk layer.
- **/
-static inline struct scsi_cmnd *scsi_find_tag(struct scsi_device *sdev, int tag)
-{
-
- struct request *req;
-
- if (tag != SCSI_NO_TAG) {
- req = blk_queue_find_tag(sdev->request_queue, tag);
- return req ? (struct scsi_cmnd *)req->special : NULL;
- }
-
- /* single command, look in space */
- return sdev->current_cmnd;
-}
-
-/**
- * scsi_init_shared_tag_map - create a shared tag map
- * @shost: the host to share the tag map among all devices
- * @depth: the total depth of the map
- */
-static inline int scsi_init_shared_tag_map(struct Scsi_Host *shost, int depth)
-{
- /*
- * If the shared tag map isn't already initialized, do it now.
- * This saves callers from having to check ->bqt when setting up
- * devices on the shared host (for libata)
- */
- if (!shost->bqt) {
- shost->bqt = blk_init_tags(depth);
- if (!shost->bqt)
- return -ENOMEM;
- }
-
- return 0;
-}
-
-/**
- * scsi_host_find_tag - find the tagged command by host
- * @shost: pointer to scsi_host
- * @tag: tag of the scsi_cmnd
- *
- * Notes:
- * Only works with tags allocated by the generic blk layer.
- **/
-static inline struct scsi_cmnd *scsi_host_find_tag(struct Scsi_Host *shost,
- int tag)
-{
- struct request *req;
-
- if (tag != SCSI_NO_TAG) {
- req = blk_map_queue_find_tag(shost->bqt, tag);
- return req ? (struct scsi_cmnd *)req->special : NULL;
- }
- return NULL;
-}
-
-#endif /* CONFIG_BLOCK */
-#endif /* _SCSI_SCSI_TCQ_H */
diff --git a/ANDROID_3.4.5/include/scsi/scsi_tgt.h b/ANDROID_3.4.5/include/scsi/scsi_tgt.h
deleted file mode 100644
index d0fefb96..00000000
--- a/ANDROID_3.4.5/include/scsi/scsi_tgt.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * SCSI target definitions
- */
-
-#include <linux/dma-mapping.h>
-
-struct Scsi_Host;
-struct scsi_cmnd;
-struct scsi_lun;
-
-extern struct Scsi_Host *scsi_tgt_cmd_to_host(struct scsi_cmnd *);
-extern int scsi_tgt_alloc_queue(struct Scsi_Host *);
-extern void scsi_tgt_free_queue(struct Scsi_Host *);
-extern int scsi_tgt_queue_command(struct scsi_cmnd *, u64, struct scsi_lun *, u64);
-extern int scsi_tgt_tsk_mgmt_request(struct Scsi_Host *, u64, int, u64,
- struct scsi_lun *, void *);
-extern struct scsi_cmnd *scsi_host_get_command(struct Scsi_Host *,
- enum dma_data_direction, gfp_t);
-extern void scsi_host_put_command(struct Scsi_Host *, struct scsi_cmnd *);
-extern int scsi_tgt_it_nexus_create(struct Scsi_Host *, u64, char *);
-extern int scsi_tgt_it_nexus_destroy(struct Scsi_Host *, u64);
diff --git a/ANDROID_3.4.5/include/scsi/scsi_tgt_if.h b/ANDROID_3.4.5/include/scsi/scsi_tgt_if.h
deleted file mode 100644
index f2ee7c23..00000000
--- a/ANDROID_3.4.5/include/scsi/scsi_tgt_if.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * SCSI target kernel/user interface
- *
- * Copyright (C) 2005 FUJITA Tomonori <tomof@acm.org>
- * Copyright (C) 2005 Mike Christie <michaelc@cs.wisc.edu>
- *
- * 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., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA
- */
-#ifndef __SCSI_TARGET_IF_H
-#define __SCSI_TARGET_IF_H
-
-/* user -> kernel */
-#define TGT_UEVENT_CMD_RSP 0x0001
-#define TGT_UEVENT_IT_NEXUS_RSP 0x0002
-#define TGT_UEVENT_TSK_MGMT_RSP 0x0003
-
-/* kernel -> user */
-#define TGT_KEVENT_CMD_REQ 0x1001
-#define TGT_KEVENT_CMD_DONE 0x1002
-#define TGT_KEVENT_IT_NEXUS_REQ 0x1003
-#define TGT_KEVENT_TSK_MGMT_REQ 0x1004
-
-struct tgt_event_hdr {
- uint16_t version;
- uint16_t status;
- uint16_t type;
- uint16_t len;
-} __attribute__ ((aligned (sizeof(uint64_t))));
-
-struct tgt_event {
- struct tgt_event_hdr hdr;
-
- union {
- /* user-> kernel */
- struct {
- int host_no;
- int result;
- aligned_u64 itn_id;
- aligned_u64 tag;
- aligned_u64 uaddr;
- aligned_u64 sense_uaddr;
- uint32_t len;
- uint32_t sense_len;
- uint8_t rw;
- } cmd_rsp;
- struct {
- int host_no;
- int result;
- aligned_u64 itn_id;
- aligned_u64 mid;
- } tsk_mgmt_rsp;
- struct {
- __s32 host_no;
- __s32 result;
- aligned_u64 itn_id;
- __u32 function;
- } it_nexus_rsp;
-
- /* kernel -> user */
- struct {
- int host_no;
- uint32_t data_len;
- aligned_u64 itn_id;
- uint8_t scb[16];
- uint8_t lun[8];
- int attribute;
- aligned_u64 tag;
- } cmd_req;
- struct {
- int host_no;
- int result;
- aligned_u64 itn_id;
- aligned_u64 tag;
- } cmd_done;
- struct {
- int host_no;
- int function;
- aligned_u64 itn_id;
- aligned_u64 tag;
- uint8_t lun[8];
- aligned_u64 mid;
- } tsk_mgmt_req;
- struct {
- __s32 host_no;
- __u32 function;
- aligned_u64 itn_id;
- __u32 max_cmds;
- __u8 initiator_id[16];
- } it_nexus_req;
- } p;
-} __attribute__ ((aligned (sizeof(uint64_t))));
-
-#define TGT_RING_SIZE (1UL << 16)
-
-#endif
diff --git a/ANDROID_3.4.5/include/scsi/scsi_transport.h b/ANDROID_3.4.5/include/scsi/scsi_transport.h
deleted file mode 100644
index af244f4b..00000000
--- a/ANDROID_3.4.5/include/scsi/scsi_transport.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Transport specific attributes.
- *
- * Copyright (c) 2003 Silicon Graphics, Inc. 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
- */
-#ifndef SCSI_TRANSPORT_H
-#define SCSI_TRANSPORT_H
-
-#include <linux/transport_class.h>
-#include <linux/blkdev.h>
-#include <linux/bug.h>
-#include <scsi/scsi_host.h>
-#include <scsi/scsi_device.h>
-
-struct scsi_transport_template {
- /* the attribute containers */
- struct transport_container host_attrs;
- struct transport_container target_attrs;
- struct transport_container device_attrs;
-
- /*
- * If set, called from sysfs and legacy procfs rescanning code.
- */
- int (*user_scan)(struct Scsi_Host *, uint, uint, uint);
-
- /* The size of the specific transport attribute structure (a
- * space of this size will be left at the end of the
- * scsi_* structure */
- int device_size;
- int device_private_offset;
- int target_size;
- int target_private_offset;
- int host_size;
- /* no private offset for the host; there's an alternative mechanism */
-
- /*
- * True if the transport wants to use a host-based work-queue
- */
- unsigned int create_work_queue : 1;
-
- /*
- * Allows a transport to override the default error handler.
- */
- void (* eh_strategy_handler)(struct Scsi_Host *);
-
- /*
- * This is an optional routine that allows the transport to become
- * involved when a scsi io timer fires. The return value tells the
- * timer routine how to finish the io timeout handling:
- * EH_HANDLED: I fixed the error, please complete the command
- * EH_RESET_TIMER: I need more time, reset the timer and
- * begin counting again
- * EH_NOT_HANDLED Begin normal error recovery
- */
- enum blk_eh_timer_return (*eh_timed_out)(struct scsi_cmnd *);
-
- /*
- * Used as callback for the completion of i_t_nexus request
- * for target drivers.
- */
- int (* it_nexus_response)(struct Scsi_Host *, u64, int);
-
- /*
- * Used as callback for the completion of task management
- * request for target drivers.
- */
- int (* tsk_mgmt_response)(struct Scsi_Host *, u64, u64, int);
-};
-
-#define transport_class_to_shost(tc) \
- dev_to_shost((tc)->parent)
-
-
-/* Private area maintenance. The driver requested allocations come
- * directly after the transport class allocations (if any). The idea
- * is that you *must* call these only once. The code assumes that the
- * initial values are the ones the transport specific code requires */
-static inline void
-scsi_transport_reserve_target(struct scsi_transport_template * t, int space)
-{
- BUG_ON(t->target_private_offset != 0);
- t->target_private_offset = ALIGN(t->target_size, sizeof(void *));
- t->target_size = t->target_private_offset + space;
-}
-static inline void
-scsi_transport_reserve_device(struct scsi_transport_template * t, int space)
-{
- BUG_ON(t->device_private_offset != 0);
- t->device_private_offset = ALIGN(t->device_size, sizeof(void *));
- t->device_size = t->device_private_offset + space;
-}
-static inline void *
-scsi_transport_target_data(struct scsi_target *starget)
-{
- struct Scsi_Host *shost = dev_to_shost(&starget->dev);
- return (u8 *)starget->starget_data
- + shost->transportt->target_private_offset;
-
-}
-static inline void *
-scsi_transport_device_data(struct scsi_device *sdev)
-{
- struct Scsi_Host *shost = sdev->host;
- return (u8 *)sdev->sdev_data
- + shost->transportt->device_private_offset;
-}
-
-#endif /* SCSI_TRANSPORT_H */
diff --git a/ANDROID_3.4.5/include/scsi/scsi_transport_fc.h b/ANDROID_3.4.5/include/scsi/scsi_transport_fc.h
deleted file mode 100644
index 719faf18..00000000
--- a/ANDROID_3.4.5/include/scsi/scsi_transport_fc.h
+++ /dev/null
@@ -1,843 +0,0 @@
-/*
- * FiberChannel transport specific attributes exported to sysfs.
- *
- * Copyright (c) 2003 Silicon Graphics, Inc. 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
- *
- * ========
- *
- * Copyright (C) 2004-2007 James Smart, Emulex Corporation
- * Rewrite for host, target, device, and remote port attributes,
- * statistics, and service functions...
- *
- */
-#ifndef SCSI_TRANSPORT_FC_H
-#define SCSI_TRANSPORT_FC_H
-
-#include <linux/sched.h>
-#include <scsi/scsi.h>
-#include <scsi/scsi_netlink.h>
-
-struct scsi_transport_template;
-
-/*
- * FC Port definitions - Following FC HBAAPI guidelines
- *
- * Note: Not all binary values for the different fields match HBAAPI.
- * Instead, we use densely packed ordinal values or enums.
- * We get away with this as we never present the actual binary values
- * externally. For sysfs, we always present the string that describes
- * the value. Thus, an admin doesn't need a magic HBAAPI decoder ring
- * to understand the values. The HBAAPI user-space library is free to
- * convert the strings into the HBAAPI-specified binary values.
- *
- * Note: Not all HBAAPI-defined values are contained in the definitions
- * below. Those not appropriate to an fc_host (e.g. FCP initiator) have
- * been removed.
- */
-
-/*
- * fc_port_type: If you alter this, you also need to alter scsi_transport_fc.c
- * (for the ascii descriptions).
- */
-enum fc_port_type {
- FC_PORTTYPE_UNKNOWN,
- FC_PORTTYPE_OTHER,
- FC_PORTTYPE_NOTPRESENT,
- FC_PORTTYPE_NPORT, /* Attached to FPort */
- FC_PORTTYPE_NLPORT, /* (Public) Loop w/ FLPort */
- FC_PORTTYPE_LPORT, /* (Private) Loop w/o FLPort */
- FC_PORTTYPE_PTP, /* Point to Point w/ another NPort */
- FC_PORTTYPE_NPIV, /* VPORT based on NPIV */
-};
-
-
-/*
- * fc_port_state: If you alter this, you also need to alter scsi_transport_fc.c
- * (for the ascii descriptions).
- */
-enum fc_port_state {
- FC_PORTSTATE_UNKNOWN,
- FC_PORTSTATE_NOTPRESENT,
- FC_PORTSTATE_ONLINE,
- FC_PORTSTATE_OFFLINE, /* User has taken Port Offline */
- FC_PORTSTATE_BLOCKED,
- FC_PORTSTATE_BYPASSED,
- FC_PORTSTATE_DIAGNOSTICS,
- FC_PORTSTATE_LINKDOWN,
- FC_PORTSTATE_ERROR,
- FC_PORTSTATE_LOOPBACK,
- FC_PORTSTATE_DELETED,
-};
-
-
-/*
- * fc_vport_state: If you alter this, you also need to alter
- * scsi_transport_fc.c (for the ascii descriptions).
- */
-enum fc_vport_state {
- FC_VPORT_UNKNOWN,
- FC_VPORT_ACTIVE,
- FC_VPORT_DISABLED,
- FC_VPORT_LINKDOWN,
- FC_VPORT_INITIALIZING,
- FC_VPORT_NO_FABRIC_SUPP,
- FC_VPORT_NO_FABRIC_RSCS,
- FC_VPORT_FABRIC_LOGOUT,
- FC_VPORT_FABRIC_REJ_WWN,
- FC_VPORT_FAILED,
-};
-
-
-
-/*
- * FC Classes of Service
- * Note: values are not enumerated, as they can be "or'd" together
- * for reporting (e.g. report supported_classes). If you alter this list,
- * you also need to alter scsi_transport_fc.c (for the ascii descriptions).
- */
-#define FC_COS_UNSPECIFIED 0
-#define FC_COS_CLASS1 2
-#define FC_COS_CLASS2 4
-#define FC_COS_CLASS3 8
-#define FC_COS_CLASS4 0x10
-#define FC_COS_CLASS6 0x40
-
-/*
- * FC Port Speeds
- * Note: values are not enumerated, as they can be "or'd" together
- * for reporting (e.g. report supported_speeds). If you alter this list,
- * you also need to alter scsi_transport_fc.c (for the ascii descriptions).
- */
-#define FC_PORTSPEED_UNKNOWN 0 /* Unknown - transceiver
- incapable of reporting */
-#define FC_PORTSPEED_1GBIT 1
-#define FC_PORTSPEED_2GBIT 2
-#define FC_PORTSPEED_10GBIT 4
-#define FC_PORTSPEED_4GBIT 8
-#define FC_PORTSPEED_8GBIT 0x10
-#define FC_PORTSPEED_16GBIT 0x20
-#define FC_PORTSPEED_NOT_NEGOTIATED (1 << 15) /* Speed not established */
-
-/*
- * fc_tgtid_binding_type: If you alter this, you also need to alter
- * scsi_transport_fc.c (for the ascii descriptions).
- */
-enum fc_tgtid_binding_type {
- FC_TGTID_BIND_NONE,
- FC_TGTID_BIND_BY_WWPN,
- FC_TGTID_BIND_BY_WWNN,
- FC_TGTID_BIND_BY_ID,
-};
-
-/*
- * FC Port Roles
- * Note: values are not enumerated, as they can be "or'd" together
- * for reporting (e.g. report roles). If you alter this list,
- * you also need to alter scsi_transport_fc.c (for the ascii descriptions).
- */
-#define FC_PORT_ROLE_UNKNOWN 0x00
-#define FC_PORT_ROLE_FCP_TARGET 0x01
-#define FC_PORT_ROLE_FCP_INITIATOR 0x02
-#define FC_PORT_ROLE_IP_PORT 0x04
-
-/* The following are for compatibility */
-#define FC_RPORT_ROLE_UNKNOWN FC_PORT_ROLE_UNKNOWN
-#define FC_RPORT_ROLE_FCP_TARGET FC_PORT_ROLE_FCP_TARGET
-#define FC_RPORT_ROLE_FCP_INITIATOR FC_PORT_ROLE_FCP_INITIATOR
-#define FC_RPORT_ROLE_IP_PORT FC_PORT_ROLE_IP_PORT
-
-
-/* Macro for use in defining Virtual Port attributes */
-#define FC_VPORT_ATTR(_name,_mode,_show,_store) \
-struct device_attribute dev_attr_vport_##_name = \
- __ATTR(_name,_mode,_show,_store)
-
-/*
- * fc_vport_identifiers: This set of data contains all elements
- * to uniquely identify and instantiate a FC virtual port.
- *
- * Notes:
- * symbolic_name: The driver is to append the symbolic_name string data
- * to the symbolic_node_name data that it generates by default.
- * the resulting combination should then be registered with the switch.
- * It is expected that things like Xen may stuff a VM title into
- * this field.
- */
-#define FC_VPORT_SYMBOLIC_NAMELEN 64
-struct fc_vport_identifiers {
- u64 node_name;
- u64 port_name;
- u32 roles;
- bool disable;
- enum fc_port_type vport_type; /* only FC_PORTTYPE_NPIV allowed */
- char symbolic_name[FC_VPORT_SYMBOLIC_NAMELEN];
-};
-
-/*
- * FC Virtual Port Attributes
- *
- * This structure exists for each FC port is a virtual FC port. Virtual
- * ports share the physical link with the Physical port. Each virtual
- * ports has a unique presence on the SAN, and may be instantiated via
- * NPIV, Virtual Fabrics, or via additional ALPAs. As the vport is a
- * unique presence, each vport has it's own view of the fabric,
- * authentication privilege, and priorities.
- *
- * A virtual port may support 1 or more FC4 roles. Typically it is a
- * FCP Initiator. It could be a FCP Target, or exist sole for an IP over FC
- * roles. FC port attributes for the vport will be reported on any
- * fc_host class object allocated for an FCP Initiator.
- *
- * --
- *
- * Fixed attributes are not expected to change. The driver is
- * expected to set these values after receiving the fc_vport structure
- * via the vport_create() call from the transport.
- * The transport fully manages all get functions w/o driver interaction.
- *
- * Dynamic attributes are expected to change. The driver participates
- * in all get/set operations via functions provided by the driver.
- *
- * Private attributes are transport-managed values. They are fully
- * managed by the transport w/o driver interaction.
- */
-
-struct fc_vport {
- /* Fixed Attributes */
-
- /* Dynamic Attributes */
-
- /* Private (Transport-managed) Attributes */
- enum fc_vport_state vport_state;
- enum fc_vport_state vport_last_state;
- u64 node_name;
- u64 port_name;
- u32 roles;
- u32 vport_id; /* Admin Identifier for the vport */
- enum fc_port_type vport_type;
- char symbolic_name[FC_VPORT_SYMBOLIC_NAMELEN];
-
- /* exported data */
- void *dd_data; /* Used for driver-specific storage */
-
- /* internal data */
- struct Scsi_Host *shost; /* Physical Port Parent */
- unsigned int channel;
- u32 number;
- u8 flags;
- struct list_head peers;
- struct device dev;
- struct work_struct vport_delete_work;
-} __attribute__((aligned(sizeof(unsigned long))));
-
-/* bit field values for struct fc_vport "flags" field: */
-#define FC_VPORT_CREATING 0x01
-#define FC_VPORT_DELETING 0x02
-#define FC_VPORT_DELETED 0x04
-#define FC_VPORT_DEL 0x06 /* Any DELETE state */
-
-#define dev_to_vport(d) \
- container_of(d, struct fc_vport, dev)
-#define transport_class_to_vport(dev) \
- dev_to_vport(dev->parent)
-#define vport_to_shost(v) \
- (v->shost)
-#define vport_to_shost_channel(v) \
- (v->channel)
-#define vport_to_parent(v) \
- (v->dev.parent)
-
-
-/* Error return codes for vport_create() callback */
-#define VPCERR_UNSUPPORTED -ENOSYS /* no driver/adapter
- support */
-#define VPCERR_BAD_WWN -ENOTUNIQ /* driver validation
- of WWNs failed */
-#define VPCERR_NO_FABRIC_SUPP -EOPNOTSUPP /* Fabric connection
- is loop or the
- Fabric Port does
- not support NPIV */
-
-/*
- * fc_rport_identifiers: This set of data contains all elements
- * to uniquely identify a remote FC port. The driver uses this data
- * to report the existence of a remote FC port in the topology. Internally,
- * the transport uses this data for attributes and to manage consistent
- * target id bindings.
- */
-struct fc_rport_identifiers {
- u64 node_name;
- u64 port_name;
- u32 port_id;
- u32 roles;
-};
-
-
-/* Macro for use in defining Remote Port attributes */
-#define FC_RPORT_ATTR(_name,_mode,_show,_store) \
-struct device_attribute dev_attr_rport_##_name = \
- __ATTR(_name,_mode,_show,_store)
-
-
-/*
- * FC Remote Port Attributes
- *
- * This structure exists for each remote FC port that a LLDD notifies
- * the subsystem of. A remote FC port may or may not be a SCSI Target,
- * also be a SCSI initiator, IP endpoint, etc. As such, the remote
- * port is considered a separate entity, independent of "role" (such
- * as scsi target).
- *
- * --
- *
- * Attributes are based on HBAAPI V2.0 definitions. Only those
- * attributes that are determinable by the local port (aka Host)
- * are contained.
- *
- * Fixed attributes are not expected to change. The driver is
- * expected to set these values after successfully calling
- * fc_remote_port_add(). The transport fully manages all get functions
- * w/o driver interaction.
- *
- * Dynamic attributes are expected to change. The driver participates
- * in all get/set operations via functions provided by the driver.
- *
- * Private attributes are transport-managed values. They are fully
- * managed by the transport w/o driver interaction.
- */
-
-struct fc_rport { /* aka fc_starget_attrs */
- /* Fixed Attributes */
- u32 maxframe_size;
- u32 supported_classes;
-
- /* Dynamic Attributes */
- u32 dev_loss_tmo; /* Remote Port loss timeout in seconds. */
-
- /* Private (Transport-managed) Attributes */
- u64 node_name;
- u64 port_name;
- u32 port_id;
- u32 roles;
- enum fc_port_state port_state; /* Will only be ONLINE or UNKNOWN */
- u32 scsi_target_id;
- u32 fast_io_fail_tmo;
-
- /* exported data */
- void *dd_data; /* Used for driver-specific storage */
-
- /* internal data */
- unsigned int channel;
- u32 number;
- u8 flags;
- struct list_head peers;
- struct device dev;
- struct delayed_work dev_loss_work;
- struct work_struct scan_work;
- struct delayed_work fail_io_work;
- struct work_struct stgt_delete_work;
- struct work_struct rport_delete_work;
- struct request_queue *rqst_q; /* bsg support */
-} __attribute__((aligned(sizeof(unsigned long))));
-
-/* bit field values for struct fc_rport "flags" field: */
-#define FC_RPORT_DEVLOSS_PENDING 0x01
-#define FC_RPORT_SCAN_PENDING 0x02
-#define FC_RPORT_FAST_FAIL_TIMEDOUT 0x04
-#define FC_RPORT_DEVLOSS_CALLBK_DONE 0x08
-
-#define dev_to_rport(d) \
- container_of(d, struct fc_rport, dev)
-#define transport_class_to_rport(dev) \
- dev_to_rport(dev->parent)
-#define rport_to_shost(r) \
- dev_to_shost(r->dev.parent)
-
-/*
- * FC SCSI Target Attributes
- *
- * The SCSI Target is considered an extension of a remote port (as
- * a remote port can be more than a SCSI Target). Within the scsi
- * subsystem, we leave the Target as a separate entity. Doing so
- * provides backward compatibility with prior FC transport api's,
- * and lets remote ports be handled entirely within the FC transport
- * and independently from the scsi subsystem. The drawback is that
- * some data will be duplicated.
- */
-
-struct fc_starget_attrs { /* aka fc_target_attrs */
- /* Dynamic Attributes */
- u64 node_name;
- u64 port_name;
- u32 port_id;
-};
-
-#define fc_starget_node_name(x) \
- (((struct fc_starget_attrs *)&(x)->starget_data)->node_name)
-#define fc_starget_port_name(x) \
- (((struct fc_starget_attrs *)&(x)->starget_data)->port_name)
-#define fc_starget_port_id(x) \
- (((struct fc_starget_attrs *)&(x)->starget_data)->port_id)
-
-#define starget_to_rport(s) \
- scsi_is_fc_rport(s->dev.parent) ? dev_to_rport(s->dev.parent) : NULL
-
-
-/*
- * FC Local Port (Host) Statistics
- */
-
-/* FC Statistics - Following FC HBAAPI v2.0 guidelines */
-struct fc_host_statistics {
- /* port statistics */
- u64 seconds_since_last_reset;
- u64 tx_frames;
- u64 tx_words;
- u64 rx_frames;
- u64 rx_words;
- u64 lip_count;
- u64 nos_count;
- u64 error_frames;
- u64 dumped_frames;
- u64 link_failure_count;
- u64 loss_of_sync_count;
- u64 loss_of_signal_count;
- u64 prim_seq_protocol_err_count;
- u64 invalid_tx_word_count;
- u64 invalid_crc_count;
-
- /* fc4 statistics (only FCP supported currently) */
- u64 fcp_input_requests;
- u64 fcp_output_requests;
- u64 fcp_control_requests;
- u64 fcp_input_megabytes;
- u64 fcp_output_megabytes;
-};
-
-
-/*
- * FC Event Codes - Polled and Async, following FC HBAAPI v2.0 guidelines
- */
-
-/*
- * fc_host_event_code: If you alter this, you also need to alter
- * scsi_transport_fc.c (for the ascii descriptions).
- */
-enum fc_host_event_code {
- FCH_EVT_LIP = 0x1,
- FCH_EVT_LINKUP = 0x2,
- FCH_EVT_LINKDOWN = 0x3,
- FCH_EVT_LIPRESET = 0x4,
- FCH_EVT_RSCN = 0x5,
- FCH_EVT_ADAPTER_CHANGE = 0x103,
- FCH_EVT_PORT_UNKNOWN = 0x200,
- FCH_EVT_PORT_OFFLINE = 0x201,
- FCH_EVT_PORT_ONLINE = 0x202,
- FCH_EVT_PORT_FABRIC = 0x204,
- FCH_EVT_LINK_UNKNOWN = 0x500,
- FCH_EVT_VENDOR_UNIQUE = 0xffff,
-};
-
-
-/*
- * FC Local Port (Host) Attributes
- *
- * Attributes are based on HBAAPI V2.0 definitions.
- * Note: OSDeviceName is determined by user-space library
- *
- * Fixed attributes are not expected to change. The driver is
- * expected to set these values after successfully calling scsi_add_host().
- * The transport fully manages all get functions w/o driver interaction.
- *
- * Dynamic attributes are expected to change. The driver participates
- * in all get/set operations via functions provided by the driver.
- *
- * Private attributes are transport-managed values. They are fully
- * managed by the transport w/o driver interaction.
- */
-
-#define FC_FC4_LIST_SIZE 32
-#define FC_SYMBOLIC_NAME_SIZE 256
-#define FC_VERSION_STRING_SIZE 64
-#define FC_SERIAL_NUMBER_SIZE 80
-
-struct fc_host_attrs {
- /* Fixed Attributes */
- u64 node_name;
- u64 port_name;
- u64 permanent_port_name;
- u32 supported_classes;
- u8 supported_fc4s[FC_FC4_LIST_SIZE];
- u32 supported_speeds;
- u32 maxframe_size;
- u16 max_npiv_vports;
- char serial_number[FC_SERIAL_NUMBER_SIZE];
- char manufacturer[FC_SERIAL_NUMBER_SIZE];
- char model[FC_SYMBOLIC_NAME_SIZE];
- char model_description[FC_SYMBOLIC_NAME_SIZE];
- char hardware_version[FC_VERSION_STRING_SIZE];
- char driver_version[FC_VERSION_STRING_SIZE];
- char firmware_version[FC_VERSION_STRING_SIZE];
- char optionrom_version[FC_VERSION_STRING_SIZE];
-
- /* Dynamic Attributes */
- u32 port_id;
- enum fc_port_type port_type;
- enum fc_port_state port_state;
- u8 active_fc4s[FC_FC4_LIST_SIZE];
- u32 speed;
- u64 fabric_name;
- char symbolic_name[FC_SYMBOLIC_NAME_SIZE];
- char system_hostname[FC_SYMBOLIC_NAME_SIZE];
- u32 dev_loss_tmo;
-
- /* Private (Transport-managed) Attributes */
- enum fc_tgtid_binding_type tgtid_bind_type;
-
- /* internal data */
- struct list_head rports;
- struct list_head rport_bindings;
- struct list_head vports;
- u32 next_rport_number;
- u32 next_target_id;
- u32 next_vport_number;
- u16 npiv_vports_inuse;
-
- /* work queues for rport state manipulation */
- char work_q_name[20];
- struct workqueue_struct *work_q;
- char devloss_work_q_name[20];
- struct workqueue_struct *devloss_work_q;
-
- /* bsg support */
- struct request_queue *rqst_q;
-};
-
-#define shost_to_fc_host(x) \
- ((struct fc_host_attrs *)(x)->shost_data)
-
-#define fc_host_node_name(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->node_name)
-#define fc_host_port_name(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->port_name)
-#define fc_host_permanent_port_name(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->permanent_port_name)
-#define fc_host_supported_classes(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->supported_classes)
-#define fc_host_supported_fc4s(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->supported_fc4s)
-#define fc_host_supported_speeds(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->supported_speeds)
-#define fc_host_maxframe_size(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->maxframe_size)
-#define fc_host_max_npiv_vports(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->max_npiv_vports)
-#define fc_host_serial_number(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->serial_number)
-#define fc_host_manufacturer(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->manufacturer)
-#define fc_host_model(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->model)
-#define fc_host_model_description(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->model_description)
-#define fc_host_hardware_version(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->hardware_version)
-#define fc_host_driver_version(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->driver_version)
-#define fc_host_firmware_version(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->firmware_version)
-#define fc_host_optionrom_version(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->optionrom_version)
-#define fc_host_port_id(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->port_id)
-#define fc_host_port_type(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->port_type)
-#define fc_host_port_state(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->port_state)
-#define fc_host_active_fc4s(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->active_fc4s)
-#define fc_host_speed(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->speed)
-#define fc_host_fabric_name(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->fabric_name)
-#define fc_host_symbolic_name(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->symbolic_name)
-#define fc_host_system_hostname(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->system_hostname)
-#define fc_host_tgtid_bind_type(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->tgtid_bind_type)
-#define fc_host_rports(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->rports)
-#define fc_host_rport_bindings(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->rport_bindings)
-#define fc_host_vports(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->vports)
-#define fc_host_next_rport_number(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->next_rport_number)
-#define fc_host_next_target_id(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->next_target_id)
-#define fc_host_next_vport_number(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->next_vport_number)
-#define fc_host_npiv_vports_inuse(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->npiv_vports_inuse)
-#define fc_host_work_q_name(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->work_q_name)
-#define fc_host_work_q(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->work_q)
-#define fc_host_devloss_work_q_name(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->devloss_work_q_name)
-#define fc_host_devloss_work_q(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->devloss_work_q)
-#define fc_host_dev_loss_tmo(x) \
- (((struct fc_host_attrs *)(x)->shost_data)->dev_loss_tmo)
-
-
-struct fc_bsg_buffer {
- unsigned int payload_len;
- int sg_cnt;
- struct scatterlist *sg_list;
-};
-
-/* Values for fc_bsg_job->state_flags (bitflags) */
-#define FC_RQST_STATE_INPROGRESS 0
-#define FC_RQST_STATE_DONE 1
-
-struct fc_bsg_job {
- struct Scsi_Host *shost;
- struct fc_rport *rport;
- struct device *dev;
- struct request *req;
- spinlock_t job_lock;
- unsigned int state_flags;
- unsigned int ref_cnt;
- void (*job_done)(struct fc_bsg_job *);
-
- struct fc_bsg_request *request;
- struct fc_bsg_reply *reply;
- unsigned int request_len;
- unsigned int reply_len;
- /*
- * On entry : reply_len indicates the buffer size allocated for
- * the reply.
- *
- * Upon completion : the message handler must set reply_len
- * to indicates the size of the reply to be returned to the
- * caller.
- */
-
- /* DMA payloads for the request/response */
- struct fc_bsg_buffer request_payload;
- struct fc_bsg_buffer reply_payload;
-
- void *dd_data; /* Used for driver-specific storage */
-};
-
-
-/* The functions by which the transport class and the driver communicate */
-struct fc_function_template {
- void (*get_rport_dev_loss_tmo)(struct fc_rport *);
- void (*set_rport_dev_loss_tmo)(struct fc_rport *, u32);
-
- void (*get_starget_node_name)(struct scsi_target *);
- void (*get_starget_port_name)(struct scsi_target *);
- void (*get_starget_port_id)(struct scsi_target *);
-
- void (*get_host_port_id)(struct Scsi_Host *);
- void (*get_host_port_type)(struct Scsi_Host *);
- void (*get_host_port_state)(struct Scsi_Host *);
- void (*get_host_active_fc4s)(struct Scsi_Host *);
- void (*get_host_speed)(struct Scsi_Host *);
- void (*get_host_fabric_name)(struct Scsi_Host *);
- void (*get_host_symbolic_name)(struct Scsi_Host *);
- void (*set_host_system_hostname)(struct Scsi_Host *);
-
- struct fc_host_statistics * (*get_fc_host_stats)(struct Scsi_Host *);
- void (*reset_fc_host_stats)(struct Scsi_Host *);
-
- int (*issue_fc_host_lip)(struct Scsi_Host *);
-
- void (*dev_loss_tmo_callbk)(struct fc_rport *);
- void (*terminate_rport_io)(struct fc_rport *);
-
- void (*set_vport_symbolic_name)(struct fc_vport *);
- int (*vport_create)(struct fc_vport *, bool);
- int (*vport_disable)(struct fc_vport *, bool);
- int (*vport_delete)(struct fc_vport *);
-
- /* target-mode drivers' functions */
- int (* tsk_mgmt_response)(struct Scsi_Host *, u64, u64, int);
- int (* it_nexus_response)(struct Scsi_Host *, u64, int);
-
- /* bsg support */
- int (*bsg_request)(struct fc_bsg_job *);
- int (*bsg_timeout)(struct fc_bsg_job *);
-
- /* allocation lengths for host-specific data */
- u32 dd_fcrport_size;
- u32 dd_fcvport_size;
- u32 dd_bsg_size;
-
- /*
- * The driver sets these to tell the transport class it
- * wants the attributes displayed in sysfs. If the show_ flag
- * is not set, the attribute will be private to the transport
- * class
- */
-
- /* remote port fixed attributes */
- unsigned long show_rport_maxframe_size:1;
- unsigned long show_rport_supported_classes:1;
- unsigned long show_rport_dev_loss_tmo:1;
-
- /*
- * target dynamic attributes
- * These should all be "1" if the driver uses the remote port
- * add/delete functions (so attributes reflect rport values).
- */
- unsigned long show_starget_node_name:1;
- unsigned long show_starget_port_name:1;
- unsigned long show_starget_port_id:1;
-
- /* host fixed attributes */
- unsigned long show_host_node_name:1;
- unsigned long show_host_port_name:1;
- unsigned long show_host_permanent_port_name:1;
- unsigned long show_host_supported_classes:1;
- unsigned long show_host_supported_fc4s:1;
- unsigned long show_host_supported_speeds:1;
- unsigned long show_host_maxframe_size:1;
- unsigned long show_host_serial_number:1;
- unsigned long show_host_manufacturer:1;
- unsigned long show_host_model:1;
- unsigned long show_host_model_description:1;
- unsigned long show_host_hardware_version:1;
- unsigned long show_host_driver_version:1;
- unsigned long show_host_firmware_version:1;
- unsigned long show_host_optionrom_version:1;
- /* host dynamic attributes */
- unsigned long show_host_port_id:1;
- unsigned long show_host_port_type:1;
- unsigned long show_host_port_state:1;
- unsigned long show_host_active_fc4s:1;
- unsigned long show_host_speed:1;
- unsigned long show_host_fabric_name:1;
- unsigned long show_host_symbolic_name:1;
- unsigned long show_host_system_hostname:1;
-
- unsigned long disable_target_scan:1;
-};
-
-
-/**
- * fc_remote_port_chkready - called to validate the remote port state
- * prior to initiating io to the port.
- *
- * Returns a scsi result code that can be returned by the LLDD.
- *
- * @rport: remote port to be checked
- **/
-static inline int
-fc_remote_port_chkready(struct fc_rport *rport)
-{
- int result;
-
- switch (rport->port_state) {
- case FC_PORTSTATE_ONLINE:
- if (rport->roles & FC_PORT_ROLE_FCP_TARGET)
- result = 0;
- else if (rport->flags & FC_RPORT_DEVLOSS_PENDING)
- result = DID_IMM_RETRY << 16;
- else
- result = DID_NO_CONNECT << 16;
- break;
- case FC_PORTSTATE_BLOCKED:
- if (rport->flags & FC_RPORT_FAST_FAIL_TIMEDOUT)
- result = DID_TRANSPORT_FAILFAST << 16;
- else
- result = DID_IMM_RETRY << 16;
- break;
- default:
- result = DID_NO_CONNECT << 16;
- break;
- }
- return result;
-}
-
-static inline u64 wwn_to_u64(u8 *wwn)
-{
- return (u64)wwn[0] << 56 | (u64)wwn[1] << 48 |
- (u64)wwn[2] << 40 | (u64)wwn[3] << 32 |
- (u64)wwn[4] << 24 | (u64)wwn[5] << 16 |
- (u64)wwn[6] << 8 | (u64)wwn[7];
-}
-
-static inline void u64_to_wwn(u64 inm, u8 *wwn)
-{
- wwn[0] = (inm >> 56) & 0xff;
- wwn[1] = (inm >> 48) & 0xff;
- wwn[2] = (inm >> 40) & 0xff;
- wwn[3] = (inm >> 32) & 0xff;
- wwn[4] = (inm >> 24) & 0xff;
- wwn[5] = (inm >> 16) & 0xff;
- wwn[6] = (inm >> 8) & 0xff;
- wwn[7] = inm & 0xff;
-}
-
-/**
- * fc_vport_set_state() - called to set a vport's state. Saves the old state,
- * excepting the transitory states of initializing and sending the ELS
- * traffic to instantiate the vport on the link.
- *
- * Assumes the driver has surrounded this with the proper locking to ensure
- * a coherent state change.
- *
- * @vport: virtual port whose state is changing
- * @new_state: new state
- **/
-static inline void
-fc_vport_set_state(struct fc_vport *vport, enum fc_vport_state new_state)
-{
- if ((new_state != FC_VPORT_UNKNOWN) &&
- (new_state != FC_VPORT_INITIALIZING))
- vport->vport_last_state = vport->vport_state;
- vport->vport_state = new_state;
-}
-
-struct scsi_transport_template *fc_attach_transport(
- struct fc_function_template *);
-void fc_release_transport(struct scsi_transport_template *);
-void fc_remove_host(struct Scsi_Host *);
-struct fc_rport *fc_remote_port_add(struct Scsi_Host *shost,
- int channel, struct fc_rport_identifiers *ids);
-void fc_remote_port_delete(struct fc_rport *rport);
-void fc_remote_port_rolechg(struct fc_rport *rport, u32 roles);
-int scsi_is_fc_rport(const struct device *);
-u32 fc_get_event_number(void);
-void fc_host_post_event(struct Scsi_Host *shost, u32 event_number,
- enum fc_host_event_code event_code, u32 event_data);
-void fc_host_post_vendor_event(struct Scsi_Host *shost, u32 event_number,
- u32 data_len, char * data_buf, u64 vendor_id);
- /* Note: when specifying vendor_id to fc_host_post_vendor_event()
- * be sure to read the Vendor Type and ID formatting requirements
- * specified in scsi_netlink.h
- */
-struct fc_vport *fc_vport_create(struct Scsi_Host *shost, int channel,
- struct fc_vport_identifiers *);
-int fc_vport_terminate(struct fc_vport *vport);
-int fc_block_scsi_eh(struct scsi_cmnd *cmnd);
-
-#endif /* SCSI_TRANSPORT_FC_H */
diff --git a/ANDROID_3.4.5/include/scsi/scsi_transport_iscsi.h b/ANDROID_3.4.5/include/scsi/scsi_transport_iscsi.h
deleted file mode 100644
index 53f0b361..00000000
--- a/ANDROID_3.4.5/include/scsi/scsi_transport_iscsi.h
+++ /dev/null
@@ -1,333 +0,0 @@
-/*
- * iSCSI transport class definitions
- *
- * Copyright (C) IBM Corporation, 2004
- * Copyright (C) Mike Christie, 2004 - 2006
- * Copyright (C) Dmitry Yusupov, 2004 - 2005
- * Copyright (C) Alex Aizman, 2004 - 2005
- *
- * 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.
- */
-#ifndef SCSI_TRANSPORT_ISCSI_H
-#define SCSI_TRANSPORT_ISCSI_H
-
-#include <linux/device.h>
-#include <linux/list.h>
-#include <linux/mutex.h>
-#include <scsi/iscsi_if.h>
-
-struct scsi_transport_template;
-struct iscsi_transport;
-struct iscsi_endpoint;
-struct Scsi_Host;
-struct scsi_cmnd;
-struct iscsi_cls_conn;
-struct iscsi_conn;
-struct iscsi_task;
-struct sockaddr;
-struct iscsi_iface;
-struct bsg_job;
-
-/**
- * struct iscsi_transport - iSCSI Transport template
- *
- * @name: transport name
- * @caps: iSCSI Data-Path capabilities
- * @create_session: create new iSCSI session object
- * @destroy_session: destroy existing iSCSI session object
- * @create_conn: create new iSCSI connection
- * @bind_conn: associate this connection with existing iSCSI session
- * and specified transport descriptor
- * @destroy_conn: destroy inactive iSCSI connection
- * @set_param: set iSCSI parameter. Return 0 on success, -ENODATA
- * when param is not supported, and a -Exx value on other
- * error.
- * @get_param get iSCSI parameter. Must return number of bytes
- * copied to buffer on success, -ENODATA when param
- * is not supported, and a -Exx value on other error
- * @start_conn: set connection to be operational
- * @stop_conn: suspend/recover/terminate connection
- * @send_pdu: send iSCSI PDU, Login, Logout, NOP-Out, Reject, Text.
- * @session_recovery_timedout: notify LLD a block during recovery timed out
- * @init_task: Initialize a iscsi_task and any internal structs.
- * When offloading the data path, this is called from
- * queuecommand with the session lock, or from the
- * iscsi_conn_send_pdu context with the session lock.
- * When not offloading the data path, this is called
- * from the scsi work queue without the session lock.
- * @xmit_task Requests LLD to transfer cmd task. Returns 0 or the
- * the number of bytes transferred on success, and -Exyz
- * value on error. When offloading the data path, this
- * is called from queuecommand with the session lock, or
- * from the iscsi_conn_send_pdu context with the session
- * lock. When not offloading the data path, this is called
- * from the scsi work queue without the session lock.
- * @cleanup_task: requests LLD to fail task. Called with session lock
- * and after the connection has been suspended and
- * terminated during recovery. If called
- * from abort task then connection is not suspended
- * or terminated but sk_callback_lock is held
- *
- * Template API provided by iSCSI Transport
- */
-struct iscsi_transport {
- struct module *owner;
- char *name;
- unsigned int caps;
-
- struct iscsi_cls_session *(*create_session) (struct iscsi_endpoint *ep,
- uint16_t cmds_max, uint16_t qdepth,
- uint32_t sn);
- void (*destroy_session) (struct iscsi_cls_session *session);
- struct iscsi_cls_conn *(*create_conn) (struct iscsi_cls_session *sess,
- uint32_t cid);
- int (*bind_conn) (struct iscsi_cls_session *session,
- struct iscsi_cls_conn *cls_conn,
- uint64_t transport_eph, int is_leading);
- int (*start_conn) (struct iscsi_cls_conn *conn);
- void (*stop_conn) (struct iscsi_cls_conn *conn, int flag);
- void (*destroy_conn) (struct iscsi_cls_conn *conn);
- int (*set_param) (struct iscsi_cls_conn *conn, enum iscsi_param param,
- char *buf, int buflen);
- int (*get_ep_param) (struct iscsi_endpoint *ep, enum iscsi_param param,
- char *buf);
- int (*get_conn_param) (struct iscsi_cls_conn *conn,
- enum iscsi_param param, char *buf);
- int (*get_session_param) (struct iscsi_cls_session *session,
- enum iscsi_param param, char *buf);
- int (*get_host_param) (struct Scsi_Host *shost,
- enum iscsi_host_param param, char *buf);
- int (*set_host_param) (struct Scsi_Host *shost,
- enum iscsi_host_param param, char *buf,
- int buflen);
- int (*send_pdu) (struct iscsi_cls_conn *conn, struct iscsi_hdr *hdr,
- char *data, uint32_t data_size);
- void (*get_stats) (struct iscsi_cls_conn *conn,
- struct iscsi_stats *stats);
-
- int (*init_task) (struct iscsi_task *task);
- int (*xmit_task) (struct iscsi_task *task);
- void (*cleanup_task) (struct iscsi_task *task);
-
- int (*alloc_pdu) (struct iscsi_task *task, uint8_t opcode);
- int (*xmit_pdu) (struct iscsi_task *task);
- int (*init_pdu) (struct iscsi_task *task, unsigned int offset,
- unsigned int count);
- void (*parse_pdu_itt) (struct iscsi_conn *conn, itt_t itt,
- int *index, int *age);
-
- void (*session_recovery_timedout) (struct iscsi_cls_session *session);
- struct iscsi_endpoint *(*ep_connect) (struct Scsi_Host *shost,
- struct sockaddr *dst_addr,
- int non_blocking);
- int (*ep_poll) (struct iscsi_endpoint *ep, int timeout_ms);
- void (*ep_disconnect) (struct iscsi_endpoint *ep);
- int (*tgt_dscvr) (struct Scsi_Host *shost, enum iscsi_tgt_dscvr type,
- uint32_t enable, struct sockaddr *dst_addr);
- int (*set_path) (struct Scsi_Host *shost, struct iscsi_path *params);
- int (*set_iface_param) (struct Scsi_Host *shost, void *data,
- uint32_t len);
- int (*get_iface_param) (struct iscsi_iface *iface,
- enum iscsi_param_type param_type,
- int param, char *buf);
- umode_t (*attr_is_visible)(int param_type, int param);
- int (*bsg_request)(struct bsg_job *job);
- int (*send_ping) (struct Scsi_Host *shost, uint32_t iface_num,
- uint32_t iface_type, uint32_t payload_size,
- uint32_t pid, struct sockaddr *dst_addr);
- int (*get_chap) (struct Scsi_Host *shost, uint16_t chap_tbl_idx,
- uint32_t *num_entries, char *buf);
- int (*delete_chap) (struct Scsi_Host *shost, uint16_t chap_tbl_idx);
-};
-
-/*
- * transport registration upcalls
- */
-extern struct scsi_transport_template *iscsi_register_transport(struct iscsi_transport *tt);
-extern int iscsi_unregister_transport(struct iscsi_transport *tt);
-
-/*
- * control plane upcalls
- */
-extern void iscsi_conn_error_event(struct iscsi_cls_conn *conn,
- enum iscsi_err error);
-extern void iscsi_conn_login_event(struct iscsi_cls_conn *conn,
- enum iscsi_conn_state state);
-extern int iscsi_recv_pdu(struct iscsi_cls_conn *conn, struct iscsi_hdr *hdr,
- char *data, uint32_t data_size);
-
-extern int iscsi_offload_mesg(struct Scsi_Host *shost,
- struct iscsi_transport *transport, uint32_t type,
- char *data, uint16_t data_size);
-
-extern void iscsi_post_host_event(uint32_t host_no,
- struct iscsi_transport *transport,
- enum iscsi_host_event_code code,
- uint32_t data_size,
- uint8_t *data);
-
-extern void iscsi_ping_comp_event(uint32_t host_no,
- struct iscsi_transport *transport,
- uint32_t status, uint32_t pid,
- uint32_t data_size, uint8_t *data);
-
-struct iscsi_cls_conn {
- struct list_head conn_list; /* item in connlist */
- void *dd_data; /* LLD private data */
- struct iscsi_transport *transport;
- uint32_t cid; /* connection id */
- struct mutex ep_mutex;
- struct iscsi_endpoint *ep;
-
- struct device dev; /* sysfs transport/container device */
-};
-
-#define iscsi_dev_to_conn(_dev) \
- container_of(_dev, struct iscsi_cls_conn, dev)
-
-#define transport_class_to_conn(_cdev) \
- iscsi_dev_to_conn(_cdev->parent)
-
-#define iscsi_conn_to_session(_conn) \
- iscsi_dev_to_session(_conn->dev.parent)
-
-/* iscsi class session state */
-enum {
- ISCSI_SESSION_LOGGED_IN,
- ISCSI_SESSION_FAILED,
- ISCSI_SESSION_FREE,
-};
-
-#define ISCSI_MAX_TARGET -1
-
-struct iscsi_cls_session {
- struct list_head sess_list; /* item in session_list */
- struct iscsi_transport *transport;
- spinlock_t lock;
- struct work_struct block_work;
- struct work_struct unblock_work;
- struct work_struct scan_work;
- struct work_struct unbind_work;
-
- /* recovery fields */
- int recovery_tmo;
- struct delayed_work recovery_work;
-
- unsigned int target_id;
- bool ida_used;
-
- /*
- * pid of userspace process that created session or -1 if
- * created by the kernel.
- */
- pid_t creator;
- int state;
- int sid; /* session id */
- void *dd_data; /* LLD private data */
- struct device dev; /* sysfs transport/container device */
-};
-
-#define iscsi_dev_to_session(_dev) \
- container_of(_dev, struct iscsi_cls_session, dev)
-
-#define transport_class_to_session(_cdev) \
- iscsi_dev_to_session(_cdev->parent)
-
-#define iscsi_session_to_shost(_session) \
- dev_to_shost(_session->dev.parent)
-
-#define starget_to_session(_stgt) \
- iscsi_dev_to_session(_stgt->dev.parent)
-
-struct iscsi_cls_host {
- atomic_t nr_scans;
- struct mutex mutex;
- struct request_queue *bsg_q;
- uint32_t port_speed;
- uint32_t port_state;
-};
-
-#define iscsi_job_to_shost(_job) \
- dev_to_shost(_job->dev)
-
-extern void iscsi_host_for_each_session(struct Scsi_Host *shost,
- void (*fn)(struct iscsi_cls_session *));
-
-struct iscsi_endpoint {
- void *dd_data; /* LLD private data */
- struct device dev;
- uint64_t id;
- struct iscsi_cls_conn *conn;
-};
-
-struct iscsi_iface {
- struct device dev;
- struct iscsi_transport *transport;
- uint32_t iface_type; /* IPv4 or IPv6 */
- uint32_t iface_num; /* iface number, 0 - n */
- void *dd_data; /* LLD private data */
-};
-
-#define iscsi_dev_to_iface(_dev) \
- container_of(_dev, struct iscsi_iface, dev)
-
-#define iscsi_iface_to_shost(_iface) \
- dev_to_shost(_iface->dev.parent)
-
-/*
- * session and connection functions that can be used by HW iSCSI LLDs
- */
-#define iscsi_cls_session_printk(prefix, _cls_session, fmt, a...) \
- dev_printk(prefix, &(_cls_session)->dev, fmt, ##a)
-
-#define iscsi_cls_conn_printk(prefix, _cls_conn, fmt, a...) \
- dev_printk(prefix, &(_cls_conn)->dev, fmt, ##a)
-
-extern int iscsi_session_chkready(struct iscsi_cls_session *session);
-extern int iscsi_is_session_online(struct iscsi_cls_session *session);
-extern struct iscsi_cls_session *iscsi_alloc_session(struct Scsi_Host *shost,
- struct iscsi_transport *transport, int dd_size);
-extern int iscsi_add_session(struct iscsi_cls_session *session,
- unsigned int target_id);
-extern int iscsi_session_event(struct iscsi_cls_session *session,
- enum iscsi_uevent_e event);
-extern struct iscsi_cls_session *iscsi_create_session(struct Scsi_Host *shost,
- struct iscsi_transport *t,
- int dd_size,
- unsigned int target_id);
-extern void iscsi_remove_session(struct iscsi_cls_session *session);
-extern void iscsi_free_session(struct iscsi_cls_session *session);
-extern int iscsi_destroy_session(struct iscsi_cls_session *session);
-extern struct iscsi_cls_conn *iscsi_create_conn(struct iscsi_cls_session *sess,
- int dd_size, uint32_t cid);
-extern int iscsi_destroy_conn(struct iscsi_cls_conn *conn);
-extern void iscsi_unblock_session(struct iscsi_cls_session *session);
-extern void iscsi_block_session(struct iscsi_cls_session *session);
-extern int iscsi_scan_finished(struct Scsi_Host *shost, unsigned long time);
-extern struct iscsi_endpoint *iscsi_create_endpoint(int dd_size);
-extern void iscsi_destroy_endpoint(struct iscsi_endpoint *ep);
-extern struct iscsi_endpoint *iscsi_lookup_endpoint(u64 handle);
-extern int iscsi_block_scsi_eh(struct scsi_cmnd *cmd);
-extern struct iscsi_iface *iscsi_create_iface(struct Scsi_Host *shost,
- struct iscsi_transport *t,
- uint32_t iface_type,
- uint32_t iface_num, int dd_size);
-extern void iscsi_destroy_iface(struct iscsi_iface *iface);
-extern struct iscsi_iface *iscsi_lookup_iface(int handle);
-extern char *iscsi_get_port_speed_name(struct Scsi_Host *shost);
-extern char *iscsi_get_port_state_name(struct Scsi_Host *shost);
-extern int iscsi_is_session_dev(const struct device *dev);
-
-#endif
diff --git a/ANDROID_3.4.5/include/scsi/scsi_transport_sas.h b/ANDROID_3.4.5/include/scsi/scsi_transport_sas.h
deleted file mode 100644
index 98b3a20a..00000000
--- a/ANDROID_3.4.5/include/scsi/scsi_transport_sas.h
+++ /dev/null
@@ -1,237 +0,0 @@
-#ifndef SCSI_TRANSPORT_SAS_H
-#define SCSI_TRANSPORT_SAS_H
-
-#include <linux/transport_class.h>
-#include <linux/types.h>
-#include <linux/mutex.h>
-#include <scsi/sas.h>
-
-struct scsi_transport_template;
-struct sas_rphy;
-struct request;
-
-enum sas_device_type {
- SAS_PHY_UNUSED = 0,
- SAS_END_DEVICE = 1,
- SAS_EDGE_EXPANDER_DEVICE = 2,
- SAS_FANOUT_EXPANDER_DEVICE = 3,
-};
-
-static inline int sas_protocol_ata(enum sas_protocol proto)
-{
- return ((proto & SAS_PROTOCOL_SATA) ||
- (proto & SAS_PROTOCOL_STP))? 1 : 0;
-}
-
-enum sas_linkrate {
- /* These Values are defined in the SAS standard */
- SAS_LINK_RATE_UNKNOWN = 0,
- SAS_PHY_DISABLED = 1,
- SAS_PHY_RESET_PROBLEM = 2,
- SAS_SATA_SPINUP_HOLD = 3,
- SAS_SATA_PORT_SELECTOR = 4,
- SAS_PHY_RESET_IN_PROGRESS = 5,
- SAS_LINK_RATE_1_5_GBPS = 8,
- SAS_LINK_RATE_G1 = SAS_LINK_RATE_1_5_GBPS,
- SAS_LINK_RATE_3_0_GBPS = 9,
- SAS_LINK_RATE_G2 = SAS_LINK_RATE_3_0_GBPS,
- SAS_LINK_RATE_6_0_GBPS = 10,
- /* These are virtual to the transport class and may never
- * be signalled normally since the standard defined field
- * is only 4 bits */
- SAS_LINK_RATE_FAILED = 0x10,
- SAS_PHY_VIRTUAL = 0x11,
-};
-
-struct sas_identify {
- enum sas_device_type device_type;
- enum sas_protocol initiator_port_protocols;
- enum sas_protocol target_port_protocols;
- u64 sas_address;
- u8 phy_identifier;
-};
-
-struct sas_phy {
- struct device dev;
- int number;
- int enabled;
-
- /* phy identification */
- struct sas_identify identify;
-
- /* phy attributes */
- enum sas_linkrate negotiated_linkrate;
- enum sas_linkrate minimum_linkrate_hw;
- enum sas_linkrate minimum_linkrate;
- enum sas_linkrate maximum_linkrate_hw;
- enum sas_linkrate maximum_linkrate;
-
- /* link error statistics */
- u32 invalid_dword_count;
- u32 running_disparity_error_count;
- u32 loss_of_dword_sync_count;
- u32 phy_reset_problem_count;
-
- /* for the list of phys belonging to a port */
- struct list_head port_siblings;
-
- /* available to the lldd */
- void *hostdata;
-};
-
-#define dev_to_phy(d) \
- container_of((d), struct sas_phy, dev)
-#define transport_class_to_phy(dev) \
- dev_to_phy((dev)->parent)
-#define phy_to_shost(phy) \
- dev_to_shost((phy)->dev.parent)
-
-struct request_queue;
-struct sas_rphy {
- struct device dev;
- struct sas_identify identify;
- struct list_head list;
- struct request_queue *q;
- u32 scsi_target_id;
-};
-
-#define dev_to_rphy(d) \
- container_of((d), struct sas_rphy, dev)
-#define transport_class_to_rphy(dev) \
- dev_to_rphy((dev)->parent)
-#define rphy_to_shost(rphy) \
- dev_to_shost((rphy)->dev.parent)
-#define target_to_rphy(targ) \
- dev_to_rphy((targ)->dev.parent)
-
-struct sas_end_device {
- struct sas_rphy rphy;
- /* flags */
- unsigned ready_led_meaning:1;
- unsigned tlr_supported:1;
- unsigned tlr_enabled:1;
- /* parameters */
- u16 I_T_nexus_loss_timeout;
- u16 initiator_response_timeout;
-};
-#define rphy_to_end_device(r) \
- container_of((r), struct sas_end_device, rphy)
-
-struct sas_expander_device {
- int level;
- int next_port_id;
-
- #define SAS_EXPANDER_VENDOR_ID_LEN 8
- char vendor_id[SAS_EXPANDER_VENDOR_ID_LEN+1];
- #define SAS_EXPANDER_PRODUCT_ID_LEN 16
- char product_id[SAS_EXPANDER_PRODUCT_ID_LEN+1];
- #define SAS_EXPANDER_PRODUCT_REV_LEN 4
- char product_rev[SAS_EXPANDER_PRODUCT_REV_LEN+1];
- #define SAS_EXPANDER_COMPONENT_VENDOR_ID_LEN 8
- char component_vendor_id[SAS_EXPANDER_COMPONENT_VENDOR_ID_LEN+1];
- u16 component_id;
- u8 component_revision_id;
-
- struct sas_rphy rphy;
-
-};
-#define rphy_to_expander_device(r) \
- container_of((r), struct sas_expander_device, rphy)
-
-struct sas_port {
- struct device dev;
-
- int port_identifier;
- int num_phys;
- /* port flags */
- unsigned int is_backlink:1;
-
- /* the other end of the link */
- struct sas_rphy *rphy;
-
- struct mutex phy_list_mutex;
- struct list_head phy_list;
-};
-
-#define dev_to_sas_port(d) \
- container_of((d), struct sas_port, dev)
-#define transport_class_to_sas_port(dev) \
- dev_to_sas_port((dev)->parent)
-
-struct sas_phy_linkrates {
- enum sas_linkrate maximum_linkrate;
- enum sas_linkrate minimum_linkrate;
-};
-
-/* The functions by which the transport class and the driver communicate */
-struct sas_function_template {
- int (*get_linkerrors)(struct sas_phy *);
- int (*get_enclosure_identifier)(struct sas_rphy *, u64 *);
- int (*get_bay_identifier)(struct sas_rphy *);
- int (*phy_reset)(struct sas_phy *, int);
- int (*phy_enable)(struct sas_phy *, int);
- int (*phy_setup)(struct sas_phy *);
- void (*phy_release)(struct sas_phy *);
- int (*set_phy_speed)(struct sas_phy *, struct sas_phy_linkrates *);
- int (*smp_handler)(struct Scsi_Host *, struct sas_rphy *, struct request *);
-};
-
-
-void sas_remove_children(struct device *);
-extern void sas_remove_host(struct Scsi_Host *);
-
-extern struct sas_phy *sas_phy_alloc(struct device *, int);
-extern void sas_phy_free(struct sas_phy *);
-extern int sas_phy_add(struct sas_phy *);
-extern void sas_phy_delete(struct sas_phy *);
-extern int scsi_is_sas_phy(const struct device *);
-
-unsigned int sas_tlr_supported(struct scsi_device *);
-unsigned int sas_is_tlr_enabled(struct scsi_device *);
-void sas_disable_tlr(struct scsi_device *);
-void sas_enable_tlr(struct scsi_device *);
-
-extern struct sas_rphy *sas_end_device_alloc(struct sas_port *);
-extern struct sas_rphy *sas_expander_alloc(struct sas_port *, enum sas_device_type);
-void sas_rphy_free(struct sas_rphy *);
-extern int sas_rphy_add(struct sas_rphy *);
-extern void sas_rphy_remove(struct sas_rphy *);
-extern void sas_rphy_delete(struct sas_rphy *);
-extern void sas_rphy_unlink(struct sas_rphy *);
-extern int scsi_is_sas_rphy(const struct device *);
-
-struct sas_port *sas_port_alloc(struct device *, int);
-struct sas_port *sas_port_alloc_num(struct device *);
-int sas_port_add(struct sas_port *);
-void sas_port_free(struct sas_port *);
-void sas_port_delete(struct sas_port *);
-void sas_port_add_phy(struct sas_port *, struct sas_phy *);
-void sas_port_delete_phy(struct sas_port *, struct sas_phy *);
-void sas_port_mark_backlink(struct sas_port *);
-int scsi_is_sas_port(const struct device *);
-struct sas_phy *sas_port_get_phy(struct sas_port *port);
-static inline void sas_port_put_phy(struct sas_phy *phy)
-{
- if (phy)
- put_device(&phy->dev);
-}
-
-extern struct scsi_transport_template *
-sas_attach_transport(struct sas_function_template *);
-extern void sas_release_transport(struct scsi_transport_template *);
-int sas_read_port_mode_page(struct scsi_device *);
-
-static inline int
-scsi_is_sas_expander_device(struct device *dev)
-{
- struct sas_rphy *rphy;
- if (!scsi_is_sas_rphy(dev))
- return 0;
- rphy = dev_to_rphy(dev);
- return rphy->identify.device_type == SAS_FANOUT_EXPANDER_DEVICE ||
- rphy->identify.device_type == SAS_EDGE_EXPANDER_DEVICE;
-}
-
-#define scsi_is_sas_phy_local(phy) scsi_is_host_device((phy)->dev.parent)
-
-#endif /* SCSI_TRANSPORT_SAS_H */
diff --git a/ANDROID_3.4.5/include/scsi/scsi_transport_spi.h b/ANDROID_3.4.5/include/scsi/scsi_transport_spi.h
deleted file mode 100644
index 7497a383..00000000
--- a/ANDROID_3.4.5/include/scsi/scsi_transport_spi.h
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Parallel SCSI (SPI) transport specific attributes exported to sysfs.
- *
- * Copyright (c) 2003 Silicon Graphics, Inc. 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
- */
-#ifndef SCSI_TRANSPORT_SPI_H
-#define SCSI_TRANSPORT_SPI_H
-
-#include <linux/transport_class.h>
-#include <linux/mutex.h>
-
-struct scsi_transport_template;
-struct scsi_target;
-struct scsi_device;
-struct Scsi_Host;
-
-struct spi_transport_attrs {
- int period; /* value in the PPR/SDTR command */
- int min_period;
- int offset;
- int max_offset;
- unsigned int width:1; /* 0 - narrow, 1 - wide */
- unsigned int max_width:1;
- unsigned int iu:1; /* Information Units enabled */
- unsigned int max_iu:1;
- unsigned int dt:1; /* DT clocking enabled */
- unsigned int qas:1; /* Quick Arbitration and Selection enabled */
- unsigned int max_qas:1;
- unsigned int wr_flow:1; /* Write Flow control enabled */
- unsigned int rd_strm:1; /* Read streaming enabled */
- unsigned int rti:1; /* Retain Training Information */
- unsigned int pcomp_en:1;/* Precompensation enabled */
- unsigned int hold_mcs:1;/* Hold Margin Control Settings */
- unsigned int initial_dv:1; /* DV done to this target yet */
- unsigned long flags; /* flags field for drivers to use */
- /* Device Properties fields */
- unsigned int support_sync:1; /* synchronous support */
- unsigned int support_wide:1; /* wide support */
- unsigned int support_dt:1; /* allows DT phases */
- unsigned int support_dt_only; /* disallows ST phases */
- unsigned int support_ius; /* support Information Units */
- unsigned int support_qas; /* supports quick arbitration and selection */
- /* Private Fields */
- unsigned int dv_pending:1; /* Internal flag: DV Requested */
- unsigned int dv_in_progress:1; /* Internal: DV started */
- struct mutex dv_mutex; /* semaphore to serialise dv */
-};
-
-enum spi_signal_type {
- SPI_SIGNAL_UNKNOWN = 1,
- SPI_SIGNAL_SE,
- SPI_SIGNAL_LVD,
- SPI_SIGNAL_HVD,
-};
-
-struct spi_host_attrs {
- enum spi_signal_type signalling;
-};
-
-/* accessor functions */
-#define spi_period(x) (((struct spi_transport_attrs *)&(x)->starget_data)->period)
-#define spi_min_period(x) (((struct spi_transport_attrs *)&(x)->starget_data)->min_period)
-#define spi_offset(x) (((struct spi_transport_attrs *)&(x)->starget_data)->offset)
-#define spi_max_offset(x) (((struct spi_transport_attrs *)&(x)->starget_data)->max_offset)
-#define spi_width(x) (((struct spi_transport_attrs *)&(x)->starget_data)->width)
-#define spi_max_width(x) (((struct spi_transport_attrs *)&(x)->starget_data)->max_width)
-#define spi_iu(x) (((struct spi_transport_attrs *)&(x)->starget_data)->iu)
-#define spi_max_iu(x) (((struct spi_transport_attrs *)&(x)->starget_data)->max_iu)
-#define spi_dt(x) (((struct spi_transport_attrs *)&(x)->starget_data)->dt)
-#define spi_qas(x) (((struct spi_transport_attrs *)&(x)->starget_data)->qas)
-#define spi_max_qas(x) (((struct spi_transport_attrs *)&(x)->starget_data)->max_qas)
-#define spi_wr_flow(x) (((struct spi_transport_attrs *)&(x)->starget_data)->wr_flow)
-#define spi_rd_strm(x) (((struct spi_transport_attrs *)&(x)->starget_data)->rd_strm)
-#define spi_rti(x) (((struct spi_transport_attrs *)&(x)->starget_data)->rti)
-#define spi_pcomp_en(x) (((struct spi_transport_attrs *)&(x)->starget_data)->pcomp_en)
-#define spi_hold_mcs(x) (((struct spi_transport_attrs *)&(x)->starget_data)->hold_mcs)
-#define spi_initial_dv(x) (((struct spi_transport_attrs *)&(x)->starget_data)->initial_dv)
-#define spi_dv_pending(x) (((struct spi_transport_attrs *)&(x)->starget_data)->dv_pending)
-
-#define spi_support_sync(x) (((struct spi_transport_attrs *)&(x)->starget_data)->support_sync)
-#define spi_support_wide(x) (((struct spi_transport_attrs *)&(x)->starget_data)->support_wide)
-#define spi_support_dt(x) (((struct spi_transport_attrs *)&(x)->starget_data)->support_dt)
-#define spi_support_dt_only(x) (((struct spi_transport_attrs *)&(x)->starget_data)->support_dt_only)
-#define spi_support_ius(x) (((struct spi_transport_attrs *)&(x)->starget_data)->support_ius)
-#define spi_support_qas(x) (((struct spi_transport_attrs *)&(x)->starget_data)->support_qas)
-
-#define spi_flags(x) (((struct spi_transport_attrs *)&(x)->starget_data)->flags)
-#define spi_signalling(h) (((struct spi_host_attrs *)(h)->shost_data)->signalling)
-
-
-
-/* The functions by which the transport class and the driver communicate */
-struct spi_function_template {
- void (*get_period)(struct scsi_target *);
- void (*set_period)(struct scsi_target *, int);
- void (*get_offset)(struct scsi_target *);
- void (*set_offset)(struct scsi_target *, int);
- void (*get_width)(struct scsi_target *);
- void (*set_width)(struct scsi_target *, int);
- void (*get_iu)(struct scsi_target *);
- void (*set_iu)(struct scsi_target *, int);
- void (*get_dt)(struct scsi_target *);
- void (*set_dt)(struct scsi_target *, int);
- void (*get_qas)(struct scsi_target *);
- void (*set_qas)(struct scsi_target *, int);
- void (*get_wr_flow)(struct scsi_target *);
- void (*set_wr_flow)(struct scsi_target *, int);
- void (*get_rd_strm)(struct scsi_target *);
- void (*set_rd_strm)(struct scsi_target *, int);
- void (*get_rti)(struct scsi_target *);
- void (*set_rti)(struct scsi_target *, int);
- void (*get_pcomp_en)(struct scsi_target *);
- void (*set_pcomp_en)(struct scsi_target *, int);
- void (*get_hold_mcs)(struct scsi_target *);
- void (*set_hold_mcs)(struct scsi_target *, int);
- void (*get_signalling)(struct Scsi_Host *);
- void (*set_signalling)(struct Scsi_Host *, enum spi_signal_type);
- int (*deny_binding)(struct scsi_target *);
- /* The driver sets these to tell the transport class it
- * wants the attributes displayed in sysfs. If the show_ flag
- * is not set, the attribute will be private to the transport
- * class */
- unsigned long show_period:1;
- unsigned long show_offset:1;
- unsigned long show_width:1;
- unsigned long show_iu:1;
- unsigned long show_dt:1;
- unsigned long show_qas:1;
- unsigned long show_wr_flow:1;
- unsigned long show_rd_strm:1;
- unsigned long show_rti:1;
- unsigned long show_pcomp_en:1;
- unsigned long show_hold_mcs:1;
-};
-
-struct scsi_transport_template *spi_attach_transport(struct spi_function_template *);
-void spi_release_transport(struct scsi_transport_template *);
-void spi_schedule_dv_device(struct scsi_device *);
-void spi_dv_device(struct scsi_device *);
-void spi_display_xfer_agreement(struct scsi_target *);
-int spi_print_msg(const unsigned char *);
-int spi_populate_width_msg(unsigned char *msg, int width);
-int spi_populate_sync_msg(unsigned char *msg, int period, int offset);
-int spi_populate_ppr_msg(unsigned char *msg, int period, int offset, int width,
- int options);
-
-#endif /* SCSI_TRANSPORT_SPI_H */
diff --git a/ANDROID_3.4.5/include/scsi/scsi_transport_srp.h b/ANDROID_3.4.5/include/scsi/scsi_transport_srp.h
deleted file mode 100644
index 9c60ca1c..00000000
--- a/ANDROID_3.4.5/include/scsi/scsi_transport_srp.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef SCSI_TRANSPORT_SRP_H
-#define SCSI_TRANSPORT_SRP_H
-
-#include <linux/transport_class.h>
-#include <linux/types.h>
-#include <linux/mutex.h>
-
-#define SRP_RPORT_ROLE_INITIATOR 0
-#define SRP_RPORT_ROLE_TARGET 1
-
-struct srp_rport_identifiers {
- u8 port_id[16];
- u8 roles;
-};
-
-struct srp_rport {
- struct device dev;
-
- u8 port_id[16];
- u8 roles;
-};
-
-struct srp_function_template {
- /* for target drivers */
- int (* tsk_mgmt_response)(struct Scsi_Host *, u64, u64, int);
- int (* it_nexus_response)(struct Scsi_Host *, u64, int);
-};
-
-extern struct scsi_transport_template *
-srp_attach_transport(struct srp_function_template *);
-extern void srp_release_transport(struct scsi_transport_template *);
-
-extern struct srp_rport *srp_rport_add(struct Scsi_Host *,
- struct srp_rport_identifiers *);
-extern void srp_rport_del(struct srp_rport *);
-
-extern void srp_remove_host(struct Scsi_Host *);
-
-#endif
diff --git a/ANDROID_3.4.5/include/scsi/scsicam.h b/ANDROID_3.4.5/include/scsi/scsicam.h
deleted file mode 100644
index 24ede474..00000000
--- a/ANDROID_3.4.5/include/scsi/scsicam.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * scsicam.h - SCSI CAM support functions, use for HDIO_GETGEO, etc.
- *
- * Copyright 1993, 1994 Drew Eckhardt
- * Visionary Computing
- * (Unix and Linux consulting and custom programming)
- * drew@Colorado.EDU
- * +1 (303) 786-7975
- *
- * For more information, please consult the SCSI-CAM draft.
- */
-
-#ifndef SCSICAM_H
-#define SCSICAM_H
-extern int scsicam_bios_param (struct block_device *bdev, sector_t capacity, int *ip);
-extern int scsi_partsize(unsigned char *buf, unsigned long capacity,
- unsigned int *cyls, unsigned int *hds, unsigned int *secs);
-extern unsigned char *scsi_bios_ptable(struct block_device *bdev);
-#endif /* def SCSICAM_H */
diff --git a/ANDROID_3.4.5/include/scsi/sg.h b/ANDROID_3.4.5/include/scsi/sg.h
deleted file mode 100644
index a9f3c6fc..00000000
--- a/ANDROID_3.4.5/include/scsi/sg.h
+++ /dev/null
@@ -1,311 +0,0 @@
-#ifndef _SCSI_GENERIC_H
-#define _SCSI_GENERIC_H
-
-#include <linux/compiler.h>
-
-/*
- History:
- Started: Aug 9 by Lawrence Foard (entropy@world.std.com), to allow user
- process control of SCSI devices.
- Development Sponsored by Killy Corp. NY NY
-Original driver (sg.h):
-* Copyright (C) 1992 Lawrence Foard
-Version 2 and 3 extensions to driver:
-* Copyright (C) 1998 - 2006 Douglas Gilbert
-
- Version: 3.5.34 (20060920)
- This version is for 2.6 series kernels.
-
- For a full changelog see http://www.torque.net/sg
-
-Map of SG verions to the Linux kernels in which they appear:
- ---------- ----------------------------------
- original all kernels < 2.2.6
- 2.1.40 2.2.20
- 3.0.x optional version 3 sg driver for 2.2 series
- 3.1.17++ 2.4.0++
- 3.5.30++ 2.6.0++
-
-Major new features in SG 3.x driver (cf SG 2.x drivers)
- - SG_IO ioctl() combines function if write() and read()
- - new interface (sg_io_hdr_t) but still supports old interface
- - scatter/gather in user space, direct IO, and mmap supported
-
- The normal action of this driver is to use the adapter (HBA) driver to DMA
- data into kernel buffers and then use the CPU to copy the data into the
- user space (vice versa for writes). That is called "indirect" IO due to
- the double handling of data. There are two methods offered to remove the
- redundant copy: 1) direct IO and 2) using the mmap() system call to map
- the reserve buffer (this driver has one reserve buffer per fd) into the
- user space. Both have their advantages.
- In terms of absolute speed mmap() is faster. If speed is not a concern,
- indirect IO should be fine. Read the documentation for more information.
-
- ** N.B. To use direct IO 'echo 1 > /proc/scsi/sg/allow_dio' or
- 'echo 1 > /sys/module/sg/parameters/allow_dio' is needed.
- That attribute is 0 by default. **
-
- Historical note: this SCSI pass-through driver has been known as "sg" for
- a decade. In broader kernel discussions "sg" is used to refer to scatter
- gather techniques. The context should clarify which "sg" is referred to.
-
- Documentation
- =============
- A web site for the SG device driver can be found at:
- http://www.torque.net/sg [alternatively check the MAINTAINERS file]
- The documentation for the sg version 3 driver can be found at:
- http://www.torque.net/sg/p/sg_v3_ho.html
- This is a rendering from DocBook source [change the extension to "sgml"
- or "xml"]. There are renderings in "ps", "pdf", "rtf" and "txt" (soon).
- The SG_IO ioctl is now found in other parts kernel (e.g. the block layer).
- For more information see http://www.torque.net/sg/sg_io.html
-
- The older, version 2 documents discuss the original sg interface in detail:
- http://www.torque.net/sg/p/scsi-generic.txt
- http://www.torque.net/sg/p/scsi-generic_long.txt
- Also available: <kernel_source>/Documentation/scsi/scsi-generic.txt
-
- Utility and test programs are available at the sg web site. They are
- packaged as sg3_utils (for the lk 2.4 and 2.6 series) and sg_utils
- (for the lk 2.2 series).
-*/
-
-#ifdef __KERNEL__
-extern int sg_big_buff; /* for sysctl */
-#endif
-
-/* New interface introduced in the 3.x SG drivers follows */
-
-typedef struct sg_iovec /* same structure as used by readv() Linux system */
-{ /* call. It defines one scatter-gather element. */
- void __user *iov_base; /* Starting address */
- size_t iov_len; /* Length in bytes */
-} sg_iovec_t;
-
-
-typedef struct sg_io_hdr
-{
- int interface_id; /* [i] 'S' for SCSI generic (required) */
- int dxfer_direction; /* [i] data transfer direction */
- unsigned char cmd_len; /* [i] SCSI command length ( <= 16 bytes) */
- unsigned char mx_sb_len; /* [i] max length to write to sbp */
- unsigned short iovec_count; /* [i] 0 implies no scatter gather */
- unsigned int dxfer_len; /* [i] byte count of data transfer */
- void __user *dxferp; /* [i], [*io] points to data transfer memory
- or scatter gather list */
- unsigned char __user *cmdp; /* [i], [*i] points to command to perform */
- void __user *sbp; /* [i], [*o] points to sense_buffer memory */
- unsigned int timeout; /* [i] MAX_UINT->no timeout (unit: millisec) */
- unsigned int flags; /* [i] 0 -> default, see SG_FLAG... */
- int pack_id; /* [i->o] unused internally (normally) */
- void __user * usr_ptr; /* [i->o] unused internally */
- unsigned char status; /* [o] scsi status */
- unsigned char masked_status;/* [o] shifted, masked scsi status */
- unsigned char msg_status; /* [o] messaging level data (optional) */
- unsigned char sb_len_wr; /* [o] byte count actually written to sbp */
- unsigned short host_status; /* [o] errors from host adapter */
- unsigned short driver_status;/* [o] errors from software driver */
- int resid; /* [o] dxfer_len - actual_transferred */
- unsigned int duration; /* [o] time taken by cmd (unit: millisec) */
- unsigned int info; /* [o] auxiliary information */
-} sg_io_hdr_t; /* 64 bytes long (on i386) */
-
-#define SG_INTERFACE_ID_ORIG 'S'
-
-/* Use negative values to flag difference from original sg_header structure */
-#define SG_DXFER_NONE (-1) /* e.g. a SCSI Test Unit Ready command */
-#define SG_DXFER_TO_DEV (-2) /* e.g. a SCSI WRITE command */
-#define SG_DXFER_FROM_DEV (-3) /* e.g. a SCSI READ command */
-#define SG_DXFER_TO_FROM_DEV (-4) /* treated like SG_DXFER_FROM_DEV with the
- additional property than during indirect
- IO the user buffer is copied into the
- kernel buffers before the transfer */
-#define SG_DXFER_UNKNOWN (-5) /* Unknown data direction */
-
-/* following flag values can be "or"-ed together */
-#define SG_FLAG_DIRECT_IO 1 /* default is indirect IO */
-#define SG_FLAG_UNUSED_LUN_INHIBIT 2 /* default is overwrite lun in SCSI */
- /* command block (when <= SCSI_2) */
-#define SG_FLAG_MMAP_IO 4 /* request memory mapped IO */
-#define SG_FLAG_NO_DXFER 0x10000 /* no transfer of kernel buffers to/from */
- /* user space (debug indirect IO) */
-
-/* following 'info' values are "or"-ed together */
-#define SG_INFO_OK_MASK 0x1
-#define SG_INFO_OK 0x0 /* no sense, host nor driver "noise" */
-#define SG_INFO_CHECK 0x1 /* something abnormal happened */
-
-#define SG_INFO_DIRECT_IO_MASK 0x6
-#define SG_INFO_INDIRECT_IO 0x0 /* data xfer via kernel buffers (or no xfer) */
-#define SG_INFO_DIRECT_IO 0x2 /* direct IO requested and performed */
-#define SG_INFO_MIXED_IO 0x4 /* part direct, part indirect IO */
-
-
-typedef struct sg_scsi_id { /* used by SG_GET_SCSI_ID ioctl() */
- int host_no; /* as in "scsi<n>" where 'n' is one of 0, 1, 2 etc */
- int channel;
- int scsi_id; /* scsi id of target device */
- int lun;
- int scsi_type; /* TYPE_... defined in scsi/scsi.h */
- short h_cmd_per_lun;/* host (adapter) maximum commands per lun */
- short d_queue_depth;/* device (or adapter) maximum queue length */
- int unused[2]; /* probably find a good use, set 0 for now */
-} sg_scsi_id_t; /* 32 bytes long on i386 */
-
-typedef struct sg_req_info { /* used by SG_GET_REQUEST_TABLE ioctl() */
- char req_state; /* 0 -> not used, 1 -> written, 2 -> ready to read */
- char orphan; /* 0 -> normal request, 1 -> from interruped SG_IO */
- char sg_io_owned; /* 0 -> complete with read(), 1 -> owned by SG_IO */
- char problem; /* 0 -> no problem detected, 1 -> error to report */
- int pack_id; /* pack_id associated with request */
- void __user *usr_ptr; /* user provided pointer (in new interface) */
- unsigned int duration; /* millisecs elapsed since written (req_state==1)
- or request duration (req_state==2) */
- int unused;
-} sg_req_info_t; /* 20 bytes long on i386 */
-
-
-/* IOCTLs: Those ioctls that are relevant to the SG 3.x drivers follow.
- [Those that only apply to the SG 2.x drivers are at the end of the file.]
- (_GET_s yield result via 'int *' 3rd argument unless otherwise indicated) */
-
-#define SG_EMULATED_HOST 0x2203 /* true for emulated host adapter (ATAPI) */
-
-/* Used to configure SCSI command transformation layer for ATAPI devices */
-/* Only supported by the ide-scsi driver */
-#define SG_SET_TRANSFORM 0x2204 /* N.B. 3rd arg is not pointer but value: */
- /* 3rd arg = 0 to disable transform, 1 to enable it */
-#define SG_GET_TRANSFORM 0x2205
-
-#define SG_SET_RESERVED_SIZE 0x2275 /* request a new reserved buffer size */
-#define SG_GET_RESERVED_SIZE 0x2272 /* actual size of reserved buffer */
-
-/* The following ioctl has a 'sg_scsi_id_t *' object as its 3rd argument. */
-#define SG_GET_SCSI_ID 0x2276 /* Yields fd's bus, chan, dev, lun + type */
-/* SCSI id information can also be obtained from SCSI_IOCTL_GET_IDLUN */
-
-/* Override host setting and always DMA using low memory ( <16MB on i386) */
-#define SG_SET_FORCE_LOW_DMA 0x2279 /* 0-> use adapter setting, 1-> force */
-#define SG_GET_LOW_DMA 0x227a /* 0-> use all ram for dma; 1-> low dma ram */
-
-/* When SG_SET_FORCE_PACK_ID set to 1, pack_id is input to read() which
- tries to fetch a packet with a matching pack_id, waits, or returns EAGAIN.
- If pack_id is -1 then read oldest waiting. When ...FORCE_PACK_ID set to 0
- then pack_id ignored by read() and oldest readable fetched. */
-#define SG_SET_FORCE_PACK_ID 0x227b
-#define SG_GET_PACK_ID 0x227c /* Yields oldest readable pack_id (or -1) */
-
-#define SG_GET_NUM_WAITING 0x227d /* Number of commands awaiting read() */
-
-/* Yields max scatter gather tablesize allowed by current host adapter */
-#define SG_GET_SG_TABLESIZE 0x227F /* 0 implies can't do scatter gather */
-
-#define SG_GET_VERSION_NUM 0x2282 /* Example: version 2.1.34 yields 20134 */
-
-/* Returns -EBUSY if occupied. 3rd argument pointer to int (see next) */
-#define SG_SCSI_RESET 0x2284
-/* Associated values that can be given to SG_SCSI_RESET follow */
-#define SG_SCSI_RESET_NOTHING 0
-#define SG_SCSI_RESET_DEVICE 1
-#define SG_SCSI_RESET_BUS 2
-#define SG_SCSI_RESET_HOST 3
-#define SG_SCSI_RESET_TARGET 4
-
-/* synchronous SCSI command ioctl, (only in version 3 interface) */
-#define SG_IO 0x2285 /* similar effect as write() followed by read() */
-
-#define SG_GET_REQUEST_TABLE 0x2286 /* yields table of active requests */
-
-/* How to treat EINTR during SG_IO ioctl(), only in SG 3.x series */
-#define SG_SET_KEEP_ORPHAN 0x2287 /* 1 -> hold for read(), 0 -> drop (def) */
-#define SG_GET_KEEP_ORPHAN 0x2288
-
-/* yields scsi midlevel's access_count for this SCSI device */
-#define SG_GET_ACCESS_COUNT 0x2289
-
-
-#define SG_SCATTER_SZ (8 * 4096)
-/* Largest size (in bytes) a single scatter-gather list element can have.
- The value used by the driver is 'max(SG_SCATTER_SZ, PAGE_SIZE)'.
- This value should be a power of 2 (and may be rounded up internally).
- If scatter-gather is not supported by adapter then this value is the
- largest data block that can be read/written by a single scsi command. */
-
-#define SG_DEFAULT_RETRIES 0
-
-/* Defaults, commented if they differ from original sg driver */
-#define SG_DEF_FORCE_LOW_DMA 0 /* was 1 -> memory below 16MB on i386 */
-#define SG_DEF_FORCE_PACK_ID 0
-#define SG_DEF_KEEP_ORPHAN 0
-#define SG_DEF_RESERVED_SIZE SG_SCATTER_SZ /* load time option */
-
-/* maximum outstanding requests, write() yields EDOM if exceeded */
-#define SG_MAX_QUEUE 16
-
-#define SG_BIG_BUFF SG_DEF_RESERVED_SIZE /* for backward compatibility */
-
-/* Alternate style type names, "..._t" variants preferred */
-typedef struct sg_io_hdr Sg_io_hdr;
-typedef struct sg_io_vec Sg_io_vec;
-typedef struct sg_scsi_id Sg_scsi_id;
-typedef struct sg_req_info Sg_req_info;
-
-
-/* vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv */
-/* The older SG interface based on the 'sg_header' structure follows. */
-/* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ */
-
-#define SG_MAX_SENSE 16 /* this only applies to the sg_header interface */
-
-struct sg_header
-{
- int pack_len; /* [o] reply_len (ie useless), ignored as input */
- int reply_len; /* [i] max length of expected reply (inc. sg_header) */
- int pack_id; /* [io] id number of packet (use ints >= 0) */
- int result; /* [o] 0==ok, else (+ve) Unix errno (best ignored) */
- unsigned int twelve_byte:1;
- /* [i] Force 12 byte command length for group 6 & 7 commands */
- unsigned int target_status:5; /* [o] scsi status from target */
- unsigned int host_status:8; /* [o] host status (see "DID" codes) */
- unsigned int driver_status:8; /* [o] driver status+suggestion */
- unsigned int other_flags:10; /* unused */
- unsigned char sense_buffer[SG_MAX_SENSE]; /* [o] Output in 3 cases:
- when target_status is CHECK_CONDITION or
- when target_status is COMMAND_TERMINATED or
- when (driver_status & DRIVER_SENSE) is true. */
-}; /* This structure is 36 bytes long on i386 */
-
-
-/* IOCTLs: The following are not required (or ignored) when the sg_io_hdr_t
- interface is used. They are kept for backward compatibility with
- the original and version 2 drivers. */
-
-#define SG_SET_TIMEOUT 0x2201 /* unit: jiffies (10ms on i386) */
-#define SG_GET_TIMEOUT 0x2202 /* yield timeout as _return_ value */
-
-/* Get/set command queuing state per fd (default is SG_DEF_COMMAND_Q.
- Each time a sg_io_hdr_t object is seen on this file descriptor, this
- command queuing flag is set on (overriding the previous setting). */
-#define SG_GET_COMMAND_Q 0x2270 /* Yields 0 (queuing off) or 1 (on) */
-#define SG_SET_COMMAND_Q 0x2271 /* Change queuing state with 0 or 1 */
-
-/* Turn on/off error sense trace (1 and 0 respectively, default is off).
- Try using: "# cat /proc/scsi/sg/debug" instead in the v3 driver */
-#define SG_SET_DEBUG 0x227e /* 0 -> turn off debug */
-
-#define SG_NEXT_CMD_LEN 0x2283 /* override SCSI command length with given
- number on the next write() on this file descriptor */
-
-
-/* Defaults, commented if they differ from original sg driver */
-#ifdef __KERNEL__
-#define SG_DEFAULT_TIMEOUT_USER (60*USER_HZ) /* HZ == 'jiffies in 1 second' */
-#else
-#define SG_DEFAULT_TIMEOUT (60*HZ) /* HZ == 'jiffies in 1 second' */
-#endif
-
-#define SG_DEF_COMMAND_Q 0 /* command queuing is always on when
- the new interface is used */
-#define SG_DEF_UNDERRUN_FLAG 0
-
-#endif
diff --git a/ANDROID_3.4.5/include/scsi/srp.h b/ANDROID_3.4.5/include/scsi/srp.h
deleted file mode 100644
index 1ae84db4..00000000
--- a/ANDROID_3.4.5/include/scsi/srp.h
+++ /dev/null
@@ -1,280 +0,0 @@
-/*
- * Copyright (c) 2005 Cisco Systems. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses. You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the following
- * disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * $Id$
- */
-
-#ifndef SCSI_SRP_H
-#define SCSI_SRP_H
-
-/*
- * Structures and constants for the SCSI RDMA Protocol (SRP) as
- * defined by the INCITS T10 committee. This file was written using
- * draft Revision 16a of the SRP standard.
- */
-
-#include <linux/types.h>
-
-enum {
- SRP_LOGIN_REQ = 0x00,
- SRP_TSK_MGMT = 0x01,
- SRP_CMD = 0x02,
- SRP_I_LOGOUT = 0x03,
- SRP_LOGIN_RSP = 0xc0,
- SRP_RSP = 0xc1,
- SRP_LOGIN_REJ = 0xc2,
- SRP_T_LOGOUT = 0x80,
- SRP_CRED_REQ = 0x81,
- SRP_AER_REQ = 0x82,
- SRP_CRED_RSP = 0x41,
- SRP_AER_RSP = 0x42
-};
-
-enum {
- SRP_BUF_FORMAT_DIRECT = 1 << 1,
- SRP_BUF_FORMAT_INDIRECT = 1 << 2
-};
-
-enum {
- SRP_NO_DATA_DESC = 0,
- SRP_DATA_DESC_DIRECT = 1,
- SRP_DATA_DESC_INDIRECT = 2
-};
-
-enum {
- SRP_TSK_ABORT_TASK = 0x01,
- SRP_TSK_ABORT_TASK_SET = 0x02,
- SRP_TSK_CLEAR_TASK_SET = 0x04,
- SRP_TSK_LUN_RESET = 0x08,
- SRP_TSK_CLEAR_ACA = 0x40
-};
-
-enum srp_login_rej_reason {
- SRP_LOGIN_REJ_UNABLE_ESTABLISH_CHANNEL = 0x00010000,
- SRP_LOGIN_REJ_INSUFFICIENT_RESOURCES = 0x00010001,
- SRP_LOGIN_REJ_REQ_IT_IU_LENGTH_TOO_LARGE = 0x00010002,
- SRP_LOGIN_REJ_UNABLE_ASSOCIATE_CHANNEL = 0x00010003,
- SRP_LOGIN_REJ_UNSUPPORTED_DESCRIPTOR_FMT = 0x00010004,
- SRP_LOGIN_REJ_MULTI_CHANNEL_UNSUPPORTED = 0x00010005,
- SRP_LOGIN_REJ_CHANNEL_LIMIT_REACHED = 0x00010006
-};
-
-enum {
- SRP_REV10_IB_IO_CLASS = 0xff00,
- SRP_REV16A_IB_IO_CLASS = 0x0100
-};
-
-struct srp_direct_buf {
- __be64 va;
- __be32 key;
- __be32 len;
-};
-
-/*
- * We need the packed attribute because the SRP spec puts the list of
- * descriptors at an offset of 20, which is not aligned to the size of
- * struct srp_direct_buf. The whole structure must be packed to avoid
- * having the 20-byte structure padded to 24 bytes on 64-bit architectures.
- */
-struct srp_indirect_buf {
- struct srp_direct_buf table_desc;
- __be32 len;
- struct srp_direct_buf desc_list[0];
-} __attribute__((packed));
-
-enum {
- SRP_MULTICHAN_SINGLE = 0,
- SRP_MULTICHAN_MULTI = 1
-};
-
-struct srp_login_req {
- u8 opcode;
- u8 reserved1[7];
- u64 tag;
- __be32 req_it_iu_len;
- u8 reserved2[4];
- __be16 req_buf_fmt;
- u8 req_flags;
- u8 reserved3[5];
- u8 initiator_port_id[16];
- u8 target_port_id[16];
-};
-
-/*
- * The SRP spec defines the size of the LOGIN_RSP structure to be 52
- * bytes, so it needs to be packed to avoid having it padded to 56
- * bytes on 64-bit architectures.
- */
-struct srp_login_rsp {
- u8 opcode;
- u8 reserved1[3];
- __be32 req_lim_delta;
- u64 tag;
- __be32 max_it_iu_len;
- __be32 max_ti_iu_len;
- __be16 buf_fmt;
- u8 rsp_flags;
- u8 reserved2[25];
-} __attribute__((packed));
-
-struct srp_login_rej {
- u8 opcode;
- u8 reserved1[3];
- __be32 reason;
- u64 tag;
- u8 reserved2[8];
- __be16 buf_fmt;
- u8 reserved3[6];
-};
-
-struct srp_i_logout {
- u8 opcode;
- u8 reserved[7];
- u64 tag;
-};
-
-struct srp_t_logout {
- u8 opcode;
- u8 sol_not;
- u8 reserved[2];
- __be32 reason;
- u64 tag;
-};
-
-/*
- * We need the packed attribute because the SRP spec only aligns the
- * 8-byte LUN field to 4 bytes.
- */
-struct srp_tsk_mgmt {
- u8 opcode;
- u8 sol_not;
- u8 reserved1[6];
- u64 tag;
- u8 reserved2[4];
- __be64 lun __attribute__((packed));
- u8 reserved3[2];
- u8 tsk_mgmt_func;
- u8 reserved4;
- u64 task_tag;
- u8 reserved5[8];
-};
-
-/*
- * We need the packed attribute because the SRP spec only aligns the
- * 8-byte LUN field to 4 bytes.
- */
-struct srp_cmd {
- u8 opcode;
- u8 sol_not;
- u8 reserved1[3];
- u8 buf_fmt;
- u8 data_out_desc_cnt;
- u8 data_in_desc_cnt;
- u64 tag;
- u8 reserved2[4];
- __be64 lun __attribute__((packed));
- u8 reserved3;
- u8 task_attr;
- u8 reserved4;
- u8 add_cdb_len;
- u8 cdb[16];
- u8 add_data[0];
-};
-
-enum {
- SRP_RSP_FLAG_RSPVALID = 1 << 0,
- SRP_RSP_FLAG_SNSVALID = 1 << 1,
- SRP_RSP_FLAG_DOOVER = 1 << 2,
- SRP_RSP_FLAG_DOUNDER = 1 << 3,
- SRP_RSP_FLAG_DIOVER = 1 << 4,
- SRP_RSP_FLAG_DIUNDER = 1 << 5
-};
-
-/*
- * The SRP spec defines the size of the RSP structure to be 36 bytes,
- * so it needs to be packed to avoid having it padded to 40 bytes on
- * 64-bit architectures.
- */
-struct srp_rsp {
- u8 opcode;
- u8 sol_not;
- u8 reserved1[2];
- __be32 req_lim_delta;
- u64 tag;
- u8 reserved2[2];
- u8 flags;
- u8 status;
- __be32 data_out_res_cnt;
- __be32 data_in_res_cnt;
- __be32 sense_data_len;
- __be32 resp_data_len;
- u8 data[0];
-} __attribute__((packed));
-
-struct srp_cred_req {
- u8 opcode;
- u8 sol_not;
- u8 reserved[2];
- __be32 req_lim_delta;
- u64 tag;
-};
-
-struct srp_cred_rsp {
- u8 opcode;
- u8 reserved[7];
- u64 tag;
-};
-
-/*
- * The SRP spec defines the fixed portion of the AER_REQ structure to be
- * 36 bytes, so it needs to be packed to avoid having it padded to 40 bytes
- * on 64-bit architectures.
- */
-struct srp_aer_req {
- u8 opcode;
- u8 sol_not;
- u8 reserved[2];
- __be32 req_lim_delta;
- u64 tag;
- u32 reserved2;
- __be64 lun;
- __be32 sense_data_len;
- u32 reserved3;
- u8 sense_data[0];
-} __attribute__((packed));
-
-struct srp_aer_rsp {
- u8 opcode;
- u8 reserved[7];
- u64 tag;
-};
-
-#endif /* SCSI_SRP_H */
diff --git a/ANDROID_3.4.5/include/sound/Kbuild b/ANDROID_3.4.5/include/sound/Kbuild
deleted file mode 100644
index 6df30ed1..00000000
--- a/ANDROID_3.4.5/include/sound/Kbuild
+++ /dev/null
@@ -1,10 +0,0 @@
-header-y += asequencer.h
-header-y += asound.h
-header-y += asound_fm.h
-header-y += emu10k1.h
-header-y += hdsp.h
-header-y += hdspm.h
-header-y += sb16_csp.h
-header-y += sfnt_info.h
-header-y += compress_params.h
-header-y += compress_offload.h
diff --git a/ANDROID_3.4.5/include/sound/ac97_codec.h b/ANDROID_3.4.5/include/sound/ac97_codec.h
deleted file mode 100644
index 02cbb502..00000000
--- a/ANDROID_3.4.5/include/sound/ac97_codec.h
+++ /dev/null
@@ -1,659 +0,0 @@
-#ifndef __SOUND_AC97_CODEC_H
-#define __SOUND_AC97_CODEC_H
-
-/*
- * Copyright (c) by Jaroslav Kysela <perex@perex.cz>
- * Universal interface for Audio Codec '97
- *
- * For more details look to AC '97 component specification revision 2.1
- * by Intel Corporation (http://developer.intel.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/bitops.h>
-#include <linux/device.h>
-#include <linux/workqueue.h>
-#include "pcm.h"
-#include "control.h"
-#include "info.h"
-
-/* maximum number of devices on the AC97 bus */
-#define AC97_BUS_MAX_DEVICES 4
-
-/*
- * AC'97 codec registers
- */
-
-#define AC97_RESET 0x00 /* Reset */
-#define AC97_MASTER 0x02 /* Master Volume */
-#define AC97_HEADPHONE 0x04 /* Headphone Volume (optional) */
-#define AC97_MASTER_MONO 0x06 /* Master Volume Mono (optional) */
-#define AC97_MASTER_TONE 0x08 /* Master Tone (Bass & Treble) (optional) */
-#define AC97_PC_BEEP 0x0a /* PC Beep Volume (optinal) */
-#define AC97_PHONE 0x0c /* Phone Volume (optional) */
-#define AC97_MIC 0x0e /* MIC Volume */
-#define AC97_LINE 0x10 /* Line In Volume */
-#define AC97_CD 0x12 /* CD Volume */
-#define AC97_VIDEO 0x14 /* Video Volume (optional) */
-#define AC97_AUX 0x16 /* AUX Volume (optional) */
-#define AC97_PCM 0x18 /* PCM Volume */
-#define AC97_REC_SEL 0x1a /* Record Select */
-#define AC97_REC_GAIN 0x1c /* Record Gain */
-#define AC97_REC_GAIN_MIC 0x1e /* Record Gain MIC (optional) */
-#define AC97_GENERAL_PURPOSE 0x20 /* General Purpose (optional) */
-#define AC97_3D_CONTROL 0x22 /* 3D Control (optional) */
-#define AC97_INT_PAGING 0x24 /* Audio Interrupt & Paging (AC'97 2.3) */
-#define AC97_POWERDOWN 0x26 /* Powerdown control / status */
-/* range 0x28-0x3a - AUDIO AC'97 2.0 extensions */
-#define AC97_EXTENDED_ID 0x28 /* Extended Audio ID */
-#define AC97_EXTENDED_STATUS 0x2a /* Extended Audio Status and Control */
-#define AC97_PCM_FRONT_DAC_RATE 0x2c /* PCM Front DAC Rate */
-#define AC97_PCM_SURR_DAC_RATE 0x2e /* PCM Surround DAC Rate */
-#define AC97_PCM_LFE_DAC_RATE 0x30 /* PCM LFE DAC Rate */
-#define AC97_PCM_LR_ADC_RATE 0x32 /* PCM LR ADC Rate */
-#define AC97_PCM_MIC_ADC_RATE 0x34 /* PCM MIC ADC Rate */
-#define AC97_CENTER_LFE_MASTER 0x36 /* Center + LFE Master Volume */
-#define AC97_SURROUND_MASTER 0x38 /* Surround (Rear) Master Volume */
-#define AC97_SPDIF 0x3a /* S/PDIF control */
-/* range 0x3c-0x58 - MODEM */
-#define AC97_EXTENDED_MID 0x3c /* Extended Modem ID */
-#define AC97_EXTENDED_MSTATUS 0x3e /* Extended Modem Status and Control */
-#define AC97_LINE1_RATE 0x40 /* Line1 DAC/ADC Rate */
-#define AC97_LINE2_RATE 0x42 /* Line2 DAC/ADC Rate */
-#define AC97_HANDSET_RATE 0x44 /* Handset DAC/ADC Rate */
-#define AC97_LINE1_LEVEL 0x46 /* Line1 DAC/ADC Level */
-#define AC97_LINE2_LEVEL 0x48 /* Line2 DAC/ADC Level */
-#define AC97_HANDSET_LEVEL 0x4a /* Handset DAC/ADC Level */
-#define AC97_GPIO_CFG 0x4c /* GPIO Configuration */
-#define AC97_GPIO_POLARITY 0x4e /* GPIO Pin Polarity/Type, 0=low, 1=high active */
-#define AC97_GPIO_STICKY 0x50 /* GPIO Pin Sticky, 0=not, 1=sticky */
-#define AC97_GPIO_WAKEUP 0x52 /* GPIO Pin Wakeup, 0=no int, 1=yes int */
-#define AC97_GPIO_STATUS 0x54 /* GPIO Pin Status, slot 12 */
-#define AC97_MISC_AFE 0x56 /* Miscellaneous Modem AFE Status and Control */
-/* range 0x5a-0x7b - Vendor Specific */
-#define AC97_VENDOR_ID1 0x7c /* Vendor ID1 */
-#define AC97_VENDOR_ID2 0x7e /* Vendor ID2 / revision */
-/* range 0x60-0x6f (page 1) - extended codec registers */
-#define AC97_CODEC_CLASS_REV 0x60 /* Codec Class/Revision */
-#define AC97_PCI_SVID 0x62 /* PCI Subsystem Vendor ID */
-#define AC97_PCI_SID 0x64 /* PCI Subsystem ID */
-#define AC97_FUNC_SELECT 0x66 /* Function Select */
-#define AC97_FUNC_INFO 0x68 /* Function Information */
-#define AC97_SENSE_INFO 0x6a /* Sense Details */
-
-/* volume controls */
-#define AC97_MUTE_MASK_MONO 0x8000
-#define AC97_MUTE_MASK_STEREO 0x8080
-
-/* slot allocation */
-#define AC97_SLOT_TAG 0
-#define AC97_SLOT_CMD_ADDR 1
-#define AC97_SLOT_CMD_DATA 2
-#define AC97_SLOT_PCM_LEFT 3
-#define AC97_SLOT_PCM_RIGHT 4
-#define AC97_SLOT_MODEM_LINE1 5
-#define AC97_SLOT_PCM_CENTER 6
-#define AC97_SLOT_MIC 6 /* input */
-#define AC97_SLOT_SPDIF_LEFT1 6
-#define AC97_SLOT_PCM_SLEFT 7 /* surround left */
-#define AC97_SLOT_PCM_LEFT_0 7 /* double rate operation */
-#define AC97_SLOT_SPDIF_LEFT 7
-#define AC97_SLOT_PCM_SRIGHT 8 /* surround right */
-#define AC97_SLOT_PCM_RIGHT_0 8 /* double rate operation */
-#define AC97_SLOT_SPDIF_RIGHT 8
-#define AC97_SLOT_LFE 9
-#define AC97_SLOT_SPDIF_RIGHT1 9
-#define AC97_SLOT_MODEM_LINE2 10
-#define AC97_SLOT_PCM_LEFT_1 10 /* double rate operation */
-#define AC97_SLOT_SPDIF_LEFT2 10
-#define AC97_SLOT_HANDSET 11 /* output */
-#define AC97_SLOT_PCM_RIGHT_1 11 /* double rate operation */
-#define AC97_SLOT_SPDIF_RIGHT2 11
-#define AC97_SLOT_MODEM_GPIO 12 /* modem GPIO */
-#define AC97_SLOT_PCM_CENTER_1 12 /* double rate operation */
-
-/* basic capabilities (reset register) */
-#define AC97_BC_DEDICATED_MIC 0x0001 /* Dedicated Mic PCM In Channel */
-#define AC97_BC_RESERVED1 0x0002 /* Reserved (was Modem Line Codec support) */
-#define AC97_BC_BASS_TREBLE 0x0004 /* Bass & Treble Control */
-#define AC97_BC_SIM_STEREO 0x0008 /* Simulated stereo */
-#define AC97_BC_HEADPHONE 0x0010 /* Headphone Out Support */
-#define AC97_BC_LOUDNESS 0x0020 /* Loudness (bass boost) Support */
-#define AC97_BC_16BIT_DAC 0x0000 /* 16-bit DAC resolution */
-#define AC97_BC_18BIT_DAC 0x0040 /* 18-bit DAC resolution */
-#define AC97_BC_20BIT_DAC 0x0080 /* 20-bit DAC resolution */
-#define AC97_BC_DAC_MASK 0x00c0
-#define AC97_BC_16BIT_ADC 0x0000 /* 16-bit ADC resolution */
-#define AC97_BC_18BIT_ADC 0x0100 /* 18-bit ADC resolution */
-#define AC97_BC_20BIT_ADC 0x0200 /* 20-bit ADC resolution */
-#define AC97_BC_ADC_MASK 0x0300
-#define AC97_BC_3D_TECH_ID_MASK 0x7c00 /* Per-vendor ID of 3D enhancement */
-
-/* general purpose */
-#define AC97_GP_DRSS_MASK 0x0c00 /* double rate slot select */
-#define AC97_GP_DRSS_1011 0x0000 /* LR(C) 10+11(+12) */
-#define AC97_GP_DRSS_78 0x0400 /* LR 7+8 */
-
-/* powerdown bits */
-#define AC97_PD_ADC_STATUS 0x0001 /* ADC status (RO) */
-#define AC97_PD_DAC_STATUS 0x0002 /* DAC status (RO) */
-#define AC97_PD_MIXER_STATUS 0x0004 /* Analog mixer status (RO) */
-#define AC97_PD_VREF_STATUS 0x0008 /* Vref status (RO) */
-#define AC97_PD_PR0 0x0100 /* Power down PCM ADCs and input MUX */
-#define AC97_PD_PR1 0x0200 /* Power down PCM front DAC */
-#define AC97_PD_PR2 0x0400 /* Power down Mixer (Vref still on) */
-#define AC97_PD_PR3 0x0800 /* Power down Mixer (Vref off) */
-#define AC97_PD_PR4 0x1000 /* Power down AC-Link */
-#define AC97_PD_PR5 0x2000 /* Disable internal clock usage */
-#define AC97_PD_PR6 0x4000 /* Headphone amplifier */
-#define AC97_PD_EAPD 0x8000 /* External Amplifer Power Down (EAPD) */
-
-/* extended audio ID bit defines */
-#define AC97_EI_VRA 0x0001 /* Variable bit rate supported */
-#define AC97_EI_DRA 0x0002 /* Double rate supported */
-#define AC97_EI_SPDIF 0x0004 /* S/PDIF out supported */
-#define AC97_EI_VRM 0x0008 /* Variable bit rate supported for MIC */
-#define AC97_EI_DACS_SLOT_MASK 0x0030 /* DACs slot assignment */
-#define AC97_EI_DACS_SLOT_SHIFT 4
-#define AC97_EI_CDAC 0x0040 /* PCM Center DAC available */
-#define AC97_EI_SDAC 0x0080 /* PCM Surround DACs available */
-#define AC97_EI_LDAC 0x0100 /* PCM LFE DAC available */
-#define AC97_EI_AMAP 0x0200 /* indicates optional slot/DAC mapping based on codec ID */
-#define AC97_EI_REV_MASK 0x0c00 /* AC'97 revision mask */
-#define AC97_EI_REV_22 0x0400 /* AC'97 revision 2.2 */
-#define AC97_EI_REV_23 0x0800 /* AC'97 revision 2.3 */
-#define AC97_EI_REV_SHIFT 10
-#define AC97_EI_ADDR_MASK 0xc000 /* physical codec ID (address) */
-#define AC97_EI_ADDR_SHIFT 14
-
-/* extended audio status and control bit defines */
-#define AC97_EA_VRA 0x0001 /* Variable bit rate enable bit */
-#define AC97_EA_DRA 0x0002 /* Double-rate audio enable bit */
-#define AC97_EA_SPDIF 0x0004 /* S/PDIF out enable bit */
-#define AC97_EA_VRM 0x0008 /* Variable bit rate for MIC enable bit */
-#define AC97_EA_SPSA_SLOT_MASK 0x0030 /* Mask for slot assignment bits */
-#define AC97_EA_SPSA_SLOT_SHIFT 4
-#define AC97_EA_SPSA_3_4 0x0000 /* Slot assigned to 3 & 4 */
-#define AC97_EA_SPSA_7_8 0x0010 /* Slot assigned to 7 & 8 */
-#define AC97_EA_SPSA_6_9 0x0020 /* Slot assigned to 6 & 9 */
-#define AC97_EA_SPSA_10_11 0x0030 /* Slot assigned to 10 & 11 */
-#define AC97_EA_CDAC 0x0040 /* PCM Center DAC is ready (Read only) */
-#define AC97_EA_SDAC 0x0080 /* PCM Surround DACs are ready (Read only) */
-#define AC97_EA_LDAC 0x0100 /* PCM LFE DAC is ready (Read only) */
-#define AC97_EA_MDAC 0x0200 /* MIC ADC is ready (Read only) */
-#define AC97_EA_SPCV 0x0400 /* S/PDIF configuration valid (Read only) */
-#define AC97_EA_PRI 0x0800 /* Turns the PCM Center DAC off */
-#define AC97_EA_PRJ 0x1000 /* Turns the PCM Surround DACs off */
-#define AC97_EA_PRK 0x2000 /* Turns the PCM LFE DAC off */
-#define AC97_EA_PRL 0x4000 /* Turns the MIC ADC off */
-
-/* S/PDIF control bit defines */
-#define AC97_SC_PRO 0x0001 /* Professional status */
-#define AC97_SC_NAUDIO 0x0002 /* Non audio stream */
-#define AC97_SC_COPY 0x0004 /* Copyright status */
-#define AC97_SC_PRE 0x0008 /* Preemphasis status */
-#define AC97_SC_CC_MASK 0x07f0 /* Category Code mask */
-#define AC97_SC_CC_SHIFT 4
-#define AC97_SC_L 0x0800 /* Generation Level status */
-#define AC97_SC_SPSR_MASK 0x3000 /* S/PDIF Sample Rate bits */
-#define AC97_SC_SPSR_SHIFT 12
-#define AC97_SC_SPSR_44K 0x0000 /* Use 44.1kHz Sample rate */
-#define AC97_SC_SPSR_48K 0x2000 /* Use 48kHz Sample rate */
-#define AC97_SC_SPSR_32K 0x3000 /* Use 32kHz Sample rate */
-#define AC97_SC_DRS 0x4000 /* Double Rate S/PDIF */
-#define AC97_SC_V 0x8000 /* Validity status */
-
-/* Interrupt and Paging bit defines (AC'97 2.3) */
-#define AC97_PAGE_MASK 0x000f /* Page Selector */
-#define AC97_PAGE_VENDOR 0 /* Vendor-specific registers */
-#define AC97_PAGE_1 1 /* Extended Codec Registers page 1 */
-#define AC97_INT_ENABLE 0x0800 /* Interrupt Enable */
-#define AC97_INT_SENSE 0x1000 /* Sense Cycle */
-#define AC97_INT_CAUSE_SENSE 0x2000 /* Sense Cycle Completed (RO) */
-#define AC97_INT_CAUSE_GPIO 0x4000 /* GPIO bits changed (RO) */
-#define AC97_INT_STATUS 0x8000 /* Interrupt Status */
-
-/* extended modem ID bit defines */
-#define AC97_MEI_LINE1 0x0001 /* Line1 present */
-#define AC97_MEI_LINE2 0x0002 /* Line2 present */
-#define AC97_MEI_HANDSET 0x0004 /* Handset present */
-#define AC97_MEI_CID1 0x0008 /* caller ID decode for Line1 is supported */
-#define AC97_MEI_CID2 0x0010 /* caller ID decode for Line2 is supported */
-#define AC97_MEI_ADDR_MASK 0xc000 /* physical codec ID (address) */
-#define AC97_MEI_ADDR_SHIFT 14
-
-/* extended modem status and control bit defines */
-#define AC97_MEA_GPIO 0x0001 /* GPIO is ready (ro) */
-#define AC97_MEA_MREF 0x0002 /* Vref is up to nominal level (ro) */
-#define AC97_MEA_ADC1 0x0004 /* ADC1 operational (ro) */
-#define AC97_MEA_DAC1 0x0008 /* DAC1 operational (ro) */
-#define AC97_MEA_ADC2 0x0010 /* ADC2 operational (ro) */
-#define AC97_MEA_DAC2 0x0020 /* DAC2 operational (ro) */
-#define AC97_MEA_HADC 0x0040 /* HADC operational (ro) */
-#define AC97_MEA_HDAC 0x0080 /* HDAC operational (ro) */
-#define AC97_MEA_PRA 0x0100 /* GPIO power down (high) */
-#define AC97_MEA_PRB 0x0200 /* reserved */
-#define AC97_MEA_PRC 0x0400 /* ADC1 power down (high) */
-#define AC97_MEA_PRD 0x0800 /* DAC1 power down (high) */
-#define AC97_MEA_PRE 0x1000 /* ADC2 power down (high) */
-#define AC97_MEA_PRF 0x2000 /* DAC2 power down (high) */
-#define AC97_MEA_PRG 0x4000 /* HADC power down (high) */
-#define AC97_MEA_PRH 0x8000 /* HDAC power down (high) */
-
-/* modem gpio status defines */
-#define AC97_GPIO_LINE1_OH 0x0001 /* Off Hook Line1 */
-#define AC97_GPIO_LINE1_RI 0x0002 /* Ring Detect Line1 */
-#define AC97_GPIO_LINE1_CID 0x0004 /* Caller ID path enable Line1 */
-#define AC97_GPIO_LINE1_LCS 0x0008 /* Loop Current Sense Line1 */
-#define AC97_GPIO_LINE1_PULSE 0x0010 /* Opt./ Pulse Dial Line1 (out) */
-#define AC97_GPIO_LINE1_HL1R 0x0020 /* Opt./ Handset to Line1 relay control (out) */
-#define AC97_GPIO_LINE1_HOHD 0x0040 /* Opt./ Handset off hook detect Line1 (in) */
-#define AC97_GPIO_LINE12_AC 0x0080 /* Opt./ Int.bit 1 / Line1/2 AC (out) */
-#define AC97_GPIO_LINE12_DC 0x0100 /* Opt./ Int.bit 2 / Line1/2 DC (out) */
-#define AC97_GPIO_LINE12_RS 0x0200 /* Opt./ Int.bit 3 / Line1/2 RS (out) */
-#define AC97_GPIO_LINE2_OH 0x0400 /* Off Hook Line2 */
-#define AC97_GPIO_LINE2_RI 0x0800 /* Ring Detect Line2 */
-#define AC97_GPIO_LINE2_CID 0x1000 /* Caller ID path enable Line2 */
-#define AC97_GPIO_LINE2_LCS 0x2000 /* Loop Current Sense Line2 */
-#define AC97_GPIO_LINE2_PULSE 0x4000 /* Opt./ Pulse Dial Line2 (out) */
-#define AC97_GPIO_LINE2_HL1R 0x8000 /* Opt./ Handset to Line2 relay control (out) */
-
-/* specific - SigmaTel */
-#define AC97_SIGMATEL_OUTSEL 0x64 /* Output Select, STAC9758 */
-#define AC97_SIGMATEL_INSEL 0x66 /* Input Select, STAC9758 */
-#define AC97_SIGMATEL_IOMISC 0x68 /* STAC9758 */
-#define AC97_SIGMATEL_ANALOG 0x6c /* Analog Special */
-#define AC97_SIGMATEL_DAC2INVERT 0x6e
-#define AC97_SIGMATEL_BIAS1 0x70
-#define AC97_SIGMATEL_BIAS2 0x72
-#define AC97_SIGMATEL_VARIOUS 0x72 /* STAC9758 */
-#define AC97_SIGMATEL_MULTICHN 0x74 /* Multi-Channel programming */
-#define AC97_SIGMATEL_CIC1 0x76
-#define AC97_SIGMATEL_CIC2 0x78
-
-/* specific - Analog Devices */
-#define AC97_AD_TEST 0x5a /* test register */
-#define AC97_AD_TEST2 0x5c /* undocumented test register 2 */
-#define AC97_AD_HPFD_SHIFT 12 /* High Pass Filter Disable */
-#define AC97_AD_CODEC_CFG 0x70 /* codec configuration */
-#define AC97_AD_JACK_SPDIF 0x72 /* Jack Sense & S/PDIF */
-#define AC97_AD_SERIAL_CFG 0x74 /* Serial Configuration */
-#define AC97_AD_MISC 0x76 /* Misc Control Bits */
-#define AC97_AD_VREFD_SHIFT 2 /* V_REFOUT Disable (AD1888) */
-
-/* specific - Cirrus Logic */
-#define AC97_CSR_ACMODE 0x5e /* AC Mode Register */
-#define AC97_CSR_MISC_CRYSTAL 0x60 /* Misc Crystal Control */
-#define AC97_CSR_SPDIF 0x68 /* S/PDIF Register */
-#define AC97_CSR_SERIAL 0x6a /* Serial Port Control */
-#define AC97_CSR_SPECF_ADDR 0x6c /* Special Feature Address */
-#define AC97_CSR_SPECF_DATA 0x6e /* Special Feature Data */
-#define AC97_CSR_BDI_STATUS 0x7a /* BDI Status */
-
-/* specific - Conexant */
-#define AC97_CXR_AUDIO_MISC 0x5c
-#define AC97_CXR_SPDIFEN (1<<3)
-#define AC97_CXR_COPYRGT (1<<2)
-#define AC97_CXR_SPDIF_MASK (3<<0)
-#define AC97_CXR_SPDIF_PCM 0x0
-#define AC97_CXR_SPDIF_AC3 0x2
-
-/* specific - ALC */
-#define AC97_ALC650_SPDIF_INPUT_STATUS1 0x60
-/* S/PDIF input status 1 bit defines */
-#define AC97_ALC650_PRO 0x0001 /* Professional status */
-#define AC97_ALC650_NAUDIO 0x0002 /* Non audio stream */
-#define AC97_ALC650_COPY 0x0004 /* Copyright status */
-#define AC97_ALC650_PRE 0x0038 /* Preemphasis status */
-#define AC97_ALC650_PRE_SHIFT 3
-#define AC97_ALC650_MODE 0x00C0 /* Preemphasis status */
-#define AC97_ALC650_MODE_SHIFT 6
-#define AC97_ALC650_CC_MASK 0x7f00 /* Category Code mask */
-#define AC97_ALC650_CC_SHIFT 8
-#define AC97_ALC650_L 0x8000 /* Generation Level status */
-
-#define AC97_ALC650_SPDIF_INPUT_STATUS2 0x62
-/* S/PDIF input status 2 bit defines */
-#define AC97_ALC650_SOUCE_MASK 0x000f /* Source number */
-#define AC97_ALC650_CHANNEL_MASK 0x00f0 /* Channel number */
-#define AC97_ALC650_CHANNEL_SHIFT 4
-#define AC97_ALC650_SPSR_MASK 0x0f00 /* S/PDIF Sample Rate bits */
-#define AC97_ALC650_SPSR_SHIFT 8
-#define AC97_ALC650_SPSR_44K 0x0000 /* Use 44.1kHz Sample rate */
-#define AC97_ALC650_SPSR_48K 0x0200 /* Use 48kHz Sample rate */
-#define AC97_ALC650_SPSR_32K 0x0300 /* Use 32kHz Sample rate */
-#define AC97_ALC650_CLOCK_ACCURACY 0x3000 /* Clock accuracy */
-#define AC97_ALC650_CLOCK_SHIFT 12
-#define AC97_ALC650_CLOCK_LOCK 0x4000 /* Clock locked status */
-#define AC97_ALC650_V 0x8000 /* Validity status */
-
-#define AC97_ALC650_SURR_DAC_VOL 0x64
-#define AC97_ALC650_LFE_DAC_VOL 0x66
-#define AC97_ALC650_UNKNOWN1 0x68
-#define AC97_ALC650_MULTICH 0x6a
-#define AC97_ALC650_UNKNOWN2 0x6c
-#define AC97_ALC650_REVISION 0x6e
-#define AC97_ALC650_UNKNOWN3 0x70
-#define AC97_ALC650_UNKNOWN4 0x72
-#define AC97_ALC650_MISC 0x74
-#define AC97_ALC650_GPIO_SETUP 0x76
-#define AC97_ALC650_GPIO_STATUS 0x78
-#define AC97_ALC650_CLOCK 0x7a
-
-/* specific - Yamaha YMF7x3 */
-#define AC97_YMF7X3_DIT_CTRL 0x66 /* DIT Control (YMF743) / 2 (YMF753) */
-#define AC97_YMF7X3_3D_MODE_SEL 0x68 /* 3D Mode Select */
-
-/* specific - C-Media */
-#define AC97_CM9738_VENDOR_CTRL 0x5a
-#define AC97_CM9739_MULTI_CHAN 0x64
-#define AC97_CM9739_SPDIF_IN_STATUS 0x68 /* 32bit */
-#define AC97_CM9739_SPDIF_CTRL 0x6c
-
-/* specific - wolfson */
-#define AC97_WM97XX_FMIXER_VOL 0x72
-#define AC97_WM9704_RMIXER_VOL 0x74
-#define AC97_WM9704_TEST 0x5a
-#define AC97_WM9704_RPCM_VOL 0x70
-#define AC97_WM9711_OUT3VOL 0x16
-
-
-/* ac97->scaps */
-#define AC97_SCAP_AUDIO (1<<0) /* audio codec 97 */
-#define AC97_SCAP_MODEM (1<<1) /* modem codec 97 */
-#define AC97_SCAP_SURROUND_DAC (1<<2) /* surround L&R DACs are present */
-#define AC97_SCAP_CENTER_LFE_DAC (1<<3) /* center and LFE DACs are present */
-#define AC97_SCAP_SKIP_AUDIO (1<<4) /* skip audio part of codec */
-#define AC97_SCAP_SKIP_MODEM (1<<5) /* skip modem part of codec */
-#define AC97_SCAP_INDEP_SDIN (1<<6) /* independent SDIN */
-#define AC97_SCAP_INV_EAPD (1<<7) /* inverted EAPD */
-#define AC97_SCAP_DETECT_BY_VENDOR (1<<8) /* use vendor registers for read tests */
-#define AC97_SCAP_NO_SPDIF (1<<9) /* don't build SPDIF controls */
-#define AC97_SCAP_EAPD_LED (1<<10) /* EAPD as mute LED */
-#define AC97_SCAP_POWER_SAVE (1<<11) /* capable for aggressive power-saving */
-
-/* ac97->flags */
-#define AC97_HAS_PC_BEEP (1<<0) /* force PC Speaker usage */
-#define AC97_AD_MULTI (1<<1) /* Analog Devices - multi codecs */
-#define AC97_CS_SPDIF (1<<2) /* Cirrus Logic uses funky SPDIF */
-#define AC97_CX_SPDIF (1<<3) /* Conexant's spdif interface */
-#define AC97_STEREO_MUTES (1<<4) /* has stereo mute bits */
-#define AC97_DOUBLE_RATE (1<<5) /* supports double rate playback */
-#define AC97_HAS_NO_MASTER_VOL (1<<6) /* no Master volume */
-#define AC97_HAS_NO_PCM_VOL (1<<7) /* no PCM volume */
-#define AC97_DEFAULT_POWER_OFF (1<<8) /* no RESET write */
-#define AC97_MODEM_PATCH (1<<9) /* modem patch */
-#define AC97_HAS_NO_REC_GAIN (1<<10) /* no Record gain */
-#define AC97_HAS_NO_PHONE (1<<11) /* no PHONE volume */
-#define AC97_HAS_NO_PC_BEEP (1<<12) /* no PC Beep volume */
-#define AC97_HAS_NO_VIDEO (1<<13) /* no Video volume */
-#define AC97_HAS_NO_CD (1<<14) /* no CD volume */
-#define AC97_HAS_NO_MIC (1<<15) /* no MIC volume */
-#define AC97_HAS_NO_TONE (1<<16) /* no Tone volume */
-#define AC97_HAS_NO_STD_PCM (1<<17) /* no standard AC97 PCM volume and mute */
-#define AC97_HAS_NO_AUX (1<<18) /* no standard AC97 AUX volume and mute */
-#define AC97_HAS_8CH (1<<19) /* supports 8-channel output */
-
-/* rates indexes */
-#define AC97_RATES_FRONT_DAC 0
-#define AC97_RATES_SURR_DAC 1
-#define AC97_RATES_LFE_DAC 2
-#define AC97_RATES_ADC 3
-#define AC97_RATES_MIC_ADC 4
-#define AC97_RATES_SPDIF 5
-
-/*
- *
- */
-
-struct snd_ac97;
-
-struct snd_ac97_build_ops {
- int (*build_3d) (struct snd_ac97 *ac97);
- int (*build_specific) (struct snd_ac97 *ac97);
- int (*build_spdif) (struct snd_ac97 *ac97);
- int (*build_post_spdif) (struct snd_ac97 *ac97);
-#ifdef CONFIG_PM
- void (*suspend) (struct snd_ac97 *ac97);
- void (*resume) (struct snd_ac97 *ac97);
-#endif
- void (*update_jacks) (struct snd_ac97 *ac97); /* for jack-sharing */
-};
-
-struct snd_ac97_bus_ops {
- void (*reset) (struct snd_ac97 *ac97);
- void (*warm_reset)(struct snd_ac97 *ac97);
- void (*write) (struct snd_ac97 *ac97, unsigned short reg, unsigned short val);
- unsigned short (*read) (struct snd_ac97 *ac97, unsigned short reg);
- void (*wait) (struct snd_ac97 *ac97);
- void (*init) (struct snd_ac97 *ac97);
-};
-
-struct snd_ac97_bus {
- /* -- lowlevel (hardware) driver specific -- */
- struct snd_ac97_bus_ops *ops;
- void *private_data;
- void (*private_free) (struct snd_ac97_bus *bus);
- /* --- */
- struct snd_card *card;
- unsigned short num; /* bus number */
- unsigned short no_vra: 1, /* bridge doesn't support VRA */
- dra: 1, /* bridge supports double rate */
- isdin: 1;/* independent SDIN */
- unsigned int clock; /* AC'97 base clock (usually 48000Hz) */
- spinlock_t bus_lock; /* used mainly for slot allocation */
- unsigned short used_slots[2][4]; /* actually used PCM slots */
- unsigned short pcms_count; /* count of PCMs */
- struct ac97_pcm *pcms;
- struct snd_ac97 *codec[4];
- struct snd_info_entry *proc;
-};
-
-/* static resolution table */
-struct snd_ac97_res_table {
- unsigned short reg; /* register */
- unsigned short bits; /* resolution bitmask */
-};
-
-struct snd_ac97_template {
- void *private_data;
- void (*private_free) (struct snd_ac97 *ac97);
- struct pci_dev *pci; /* assigned PCI device - used for quirks */
- unsigned short num; /* number of codec: 0 = primary, 1 = secondary */
- unsigned short addr; /* physical address of codec [0-3] */
- unsigned int scaps; /* driver capabilities */
- const struct snd_ac97_res_table *res_table; /* static resolution */
-};
-
-struct snd_ac97 {
- /* -- lowlevel (hardware) driver specific -- */
- const struct snd_ac97_build_ops *build_ops;
- void *private_data;
- void (*private_free) (struct snd_ac97 *ac97);
- /* --- */
- struct snd_ac97_bus *bus;
- struct pci_dev *pci; /* assigned PCI device - used for quirks */
- struct snd_info_entry *proc;
- struct snd_info_entry *proc_regs;
- unsigned short subsystem_vendor;
- unsigned short subsystem_device;
- struct mutex reg_mutex;
- struct mutex page_mutex; /* mutex for AD18xx multi-codecs and paging (2.3) */
- unsigned short num; /* number of codec: 0 = primary, 1 = secondary */
- unsigned short addr; /* physical address of codec [0-3] */
- unsigned int id; /* identification of codec */
- unsigned short caps; /* capabilities (register 0) */
- unsigned short ext_id; /* extended feature identification (register 28) */
- unsigned short ext_mid; /* extended modem ID (register 3C) */
- const struct snd_ac97_res_table *res_table; /* static resolution */
- unsigned int scaps; /* driver capabilities */
- unsigned int flags; /* specific code */
- unsigned int rates[6]; /* see AC97_RATES_* defines */
- unsigned int spdif_status;
- unsigned short regs[0x80]; /* register cache */
- DECLARE_BITMAP(reg_accessed, 0x80); /* bit flags */
- union { /* vendor specific code */
- struct {
- unsigned short unchained[3]; // 0 = C34, 1 = C79, 2 = C69
- unsigned short chained[3]; // 0 = C34, 1 = C79, 2 = C69
- unsigned short id[3]; // codec IDs (lower 16-bit word)
- unsigned short pcmreg[3]; // PCM registers
- unsigned short codec_cfg[3]; // CODEC_CFG bits
- unsigned char swap_mic_linein; // AD1986/AD1986A only
- unsigned char lo_as_master; /* LO as master */
- } ad18xx;
- unsigned int dev_flags; /* device specific */
- } spec;
- /* jack-sharing info */
- unsigned char indep_surround;
- unsigned char channel_mode;
-
-#ifdef CONFIG_SND_AC97_POWER_SAVE
- unsigned int power_up; /* power states */
- struct delayed_work power_work;
-#endif
- struct device dev;
-};
-
-#define to_ac97_t(d) container_of(d, struct snd_ac97, dev)
-
-/* conditions */
-static inline int ac97_is_audio(struct snd_ac97 * ac97)
-{
- return (ac97->scaps & AC97_SCAP_AUDIO);
-}
-static inline int ac97_is_modem(struct snd_ac97 * ac97)
-{
- return (ac97->scaps & AC97_SCAP_MODEM);
-}
-static inline int ac97_is_rev22(struct snd_ac97 * ac97)
-{
- return (ac97->ext_id & AC97_EI_REV_MASK) >= AC97_EI_REV_22;
-}
-static inline int ac97_can_amap(struct snd_ac97 * ac97)
-{
- return (ac97->ext_id & AC97_EI_AMAP) != 0;
-}
-static inline int ac97_can_spdif(struct snd_ac97 * ac97)
-{
- return (ac97->ext_id & AC97_EI_SPDIF) != 0;
-}
-
-/* functions */
-/* create new AC97 bus */
-int snd_ac97_bus(struct snd_card *card, int num, struct snd_ac97_bus_ops *ops,
- void *private_data, struct snd_ac97_bus **rbus);
-/* create mixer controls */
-int snd_ac97_mixer(struct snd_ac97_bus *bus, struct snd_ac97_template *template,
- struct snd_ac97 **rac97);
-const char *snd_ac97_get_short_name(struct snd_ac97 *ac97);
-
-void snd_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short value);
-unsigned short snd_ac97_read(struct snd_ac97 *ac97, unsigned short reg);
-void snd_ac97_write_cache(struct snd_ac97 *ac97, unsigned short reg, unsigned short value);
-int snd_ac97_update(struct snd_ac97 *ac97, unsigned short reg, unsigned short value);
-int snd_ac97_update_bits(struct snd_ac97 *ac97, unsigned short reg, unsigned short mask, unsigned short value);
-#ifdef CONFIG_SND_AC97_POWER_SAVE
-int snd_ac97_update_power(struct snd_ac97 *ac97, int reg, int powerup);
-#else
-static inline int snd_ac97_update_power(struct snd_ac97 *ac97, int reg,
- int powerup)
-{
- return 0;
-}
-#endif
-#ifdef CONFIG_PM
-void snd_ac97_suspend(struct snd_ac97 *ac97);
-void snd_ac97_resume(struct snd_ac97 *ac97);
-#endif
-
-/* quirk types */
-enum {
- AC97_TUNE_DEFAULT = -1, /* use default from quirk list (not valid in list) */
- AC97_TUNE_NONE = 0, /* nothing extra to do */
- AC97_TUNE_HP_ONLY, /* headphone (true line-out) control as master only */
- AC97_TUNE_SWAP_HP, /* swap headphone and master controls */
- AC97_TUNE_SWAP_SURROUND, /* swap master and surround controls */
- AC97_TUNE_AD_SHARING, /* for AD1985, turn on OMS bit and use headphone */
- AC97_TUNE_ALC_JACK, /* for Realtek, enable JACK detection */
- AC97_TUNE_INV_EAPD, /* inverted EAPD implementation */
- AC97_TUNE_MUTE_LED, /* EAPD bit works as mute LED */
- AC97_TUNE_HP_MUTE_LED, /* EAPD bit works as mute LED, use headphone control as master */
-};
-
-struct ac97_quirk {
- unsigned short subvendor; /* PCI subsystem vendor id */
- unsigned short subdevice; /* PCI subsystem device id */
- unsigned short mask; /* device id bit mask, 0 = accept all */
- unsigned int codec_id; /* codec id (if any), 0 = accept all */
- const char *name; /* name shown as info */
- int type; /* quirk type above */
-};
-
-int snd_ac97_tune_hardware(struct snd_ac97 *ac97, struct ac97_quirk *quirk, const char *override);
-int snd_ac97_set_rate(struct snd_ac97 *ac97, int reg, unsigned int rate);
-
-/*
- * PCM allocation
- */
-
-enum ac97_pcm_cfg {
- AC97_PCM_CFG_FRONT = 2,
- AC97_PCM_CFG_REAR = 10, /* alias surround */
- AC97_PCM_CFG_LFE = 11, /* center + lfe */
- AC97_PCM_CFG_40 = 4, /* front + rear */
- AC97_PCM_CFG_51 = 6, /* front + rear + center/lfe */
- AC97_PCM_CFG_SPDIF = 20
-};
-
-struct ac97_pcm {
- struct snd_ac97_bus *bus;
- unsigned int stream: 1, /* stream type: 1 = capture */
- exclusive: 1, /* exclusive mode, don't override with other pcms */
- copy_flag: 1, /* lowlevel driver must fill all entries */
- spdif: 1; /* spdif pcm */
- unsigned short aslots; /* active slots */
- unsigned short cur_dbl; /* current double-rate state */
- unsigned int rates; /* available rates */
- struct {
- unsigned short slots; /* driver input: requested AC97 slot numbers */
- unsigned short rslots[4]; /* allocated slots per codecs */
- unsigned char rate_table[4];
- struct snd_ac97 *codec[4]; /* allocated codecs */
- } r[2]; /* 0 = standard rates, 1 = double rates */
- unsigned long private_value; /* used by the hardware driver */
-};
-
-int snd_ac97_pcm_assign(struct snd_ac97_bus *ac97,
- unsigned short pcms_count,
- const struct ac97_pcm *pcms);
-int snd_ac97_pcm_open(struct ac97_pcm *pcm, unsigned int rate,
- enum ac97_pcm_cfg cfg, unsigned short slots);
-int snd_ac97_pcm_close(struct ac97_pcm *pcm);
-int snd_ac97_pcm_double_rate_rules(struct snd_pcm_runtime *runtime);
-
-/* ad hoc AC97 device driver access */
-extern struct bus_type ac97_bus_type;
-
-/* AC97 platform_data adding function */
-static inline void snd_ac97_dev_add_pdata(struct snd_ac97 *ac97, void *data)
-{
- ac97->dev.platform_data = data;
-}
-
-#endif /* __SOUND_AC97_CODEC_H */
diff --git a/ANDROID_3.4.5/include/sound/aci.h b/ANDROID_3.4.5/include/sound/aci.h
deleted file mode 100644
index ee639d35..00000000
--- a/ANDROID_3.4.5/include/sound/aci.h
+++ /dev/null
@@ -1,90 +0,0 @@
-#ifndef _ACI_H_
-#define _ACI_H_
-
-#define ACI_REG_COMMAND 0 /* write register offset */
-#define ACI_REG_STATUS 1 /* read register offset */
-#define ACI_REG_BUSY 2 /* busy register offset */
-#define ACI_REG_RDS 2 /* PCM20: RDS register offset */
-#define ACI_MINTIME 500 /* ACI time out limit */
-
-#define ACI_SET_MUTE 0x0d
-#define ACI_SET_POWERAMP 0x0f
-#define ACI_SET_TUNERMUTE 0xa3
-#define ACI_SET_TUNERMONO 0xa4
-#define ACI_SET_IDE 0xd0
-#define ACI_SET_WSS 0xd1
-#define ACI_SET_SOLOMODE 0xd2
-#define ACI_SET_PREAMP 0x03
-#define ACI_GET_PREAMP 0x21
-#define ACI_WRITE_TUNE 0xa7
-#define ACI_READ_TUNERSTEREO 0xa8
-#define ACI_READ_TUNERSTATION 0xa9
-#define ACI_READ_VERSION 0xf1
-#define ACI_READ_IDCODE 0xf2
-#define ACI_INIT 0xff
-#define ACI_STATUS 0xf0
-#define ACI_S_GENERAL 0x00
-#define ACI_ERROR_OP 0xdf
-
-/* ACI Mixer */
-
-/* These are the values for the right channel GET registers.
- Add an offset of 0x01 for the left channel register.
- (left=right+0x01) */
-
-#define ACI_GET_MASTER 0x03
-#define ACI_GET_MIC 0x05
-#define ACI_GET_LINE 0x07
-#define ACI_GET_CD 0x09
-#define ACI_GET_SYNTH 0x0b
-#define ACI_GET_PCM 0x0d
-#define ACI_GET_LINE1 0x10 /* Radio on PCM20 */
-#define ACI_GET_LINE2 0x12
-
-#define ACI_GET_EQ1 0x22 /* from Bass ... */
-#define ACI_GET_EQ2 0x24
-#define ACI_GET_EQ3 0x26
-#define ACI_GET_EQ4 0x28
-#define ACI_GET_EQ5 0x2a
-#define ACI_GET_EQ6 0x2c
-#define ACI_GET_EQ7 0x2e /* ... to Treble */
-
-/* And these are the values for the right channel SET registers.
- For left channel access you have to add an offset of 0x08.
- MASTER is an exception, which needs an offset of 0x01 */
-
-#define ACI_SET_MASTER 0x00
-#define ACI_SET_MIC 0x30
-#define ACI_SET_LINE 0x31
-#define ACI_SET_CD 0x34
-#define ACI_SET_SYNTH 0x33
-#define ACI_SET_PCM 0x32
-#define ACI_SET_LINE1 0x35 /* Radio on PCM20 */
-#define ACI_SET_LINE2 0x36
-
-#define ACI_SET_EQ1 0x40 /* from Bass ... */
-#define ACI_SET_EQ2 0x41
-#define ACI_SET_EQ3 0x42
-#define ACI_SET_EQ4 0x43
-#define ACI_SET_EQ5 0x44
-#define ACI_SET_EQ6 0x45
-#define ACI_SET_EQ7 0x46 /* ... to Treble */
-
-struct snd_miro_aci {
- unsigned long aci_port;
- int aci_vendor;
- int aci_product;
- int aci_version;
- int aci_amp;
- int aci_preamp;
- int aci_solomode;
-
- struct mutex aci_mutex;
-};
-
-int snd_aci_cmd(struct snd_miro_aci *aci, int write1, int write2, int write3);
-
-struct snd_miro_aci *snd_aci_get_aci(void);
-
-#endif /* _ACI_H_ */
-
diff --git a/ANDROID_3.4.5/include/sound/ad1816a.h b/ANDROID_3.4.5/include/sound/ad1816a.h
deleted file mode 100644
index d010858c..00000000
--- a/ANDROID_3.4.5/include/sound/ad1816a.h
+++ /dev/null
@@ -1,175 +0,0 @@
-#ifndef __SOUND_AD1816A_H
-#define __SOUND_AD1816A_H
-
-/*
- ad1816a.h - definitions for ADI SoundPort AD1816A chip.
- Copyright (C) 1999-2000 by Massimo Piccioni <dafastidio@libero.it>
-
- 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 "control.h"
-#include "pcm.h"
-#include "timer.h"
-
-#define AD1816A_REG(r) (chip->port + r)
-
-#define AD1816A_CHIP_STATUS 0x00
-#define AD1816A_INDIR_ADDR 0x00
-#define AD1816A_INTERRUPT_STATUS 0x01
-#define AD1816A_INDIR_DATA_LOW 0x02
-#define AD1816A_INDIR_DATA_HIGH 0x03
-#define AD1816A_PIO_DEBUG 0x04
-#define AD1816A_PIO_STATUS 0x05
-#define AD1816A_PIO_DATA 0x06
-#define AD1816A_RESERVED_7 0x07
-#define AD1816A_PLAYBACK_CONFIG 0x08
-#define AD1816A_CAPTURE_CONFIG 0x09
-#define AD1816A_RESERVED_10 0x0a
-#define AD1816A_RESERVED_11 0x0b
-#define AD1816A_JOYSTICK_RAW_DATA 0x0c
-#define AD1816A_JOYSTICK_CTRL 0x0d
-#define AD1816A_JOY_POS_DATA_LOW 0x0e
-#define AD1816A_JOY_POS_DATA_HIGH 0x0f
-
-#define AD1816A_LOW_BYTE_TMP 0x00
-#define AD1816A_INTERRUPT_ENABLE 0x01
-#define AD1816A_EXTERNAL_CTRL 0x01
-#define AD1816A_PLAYBACK_SAMPLE_RATE 0x02
-#define AD1816A_CAPTURE_SAMPLE_RATE 0x03
-#define AD1816A_VOICE_ATT 0x04
-#define AD1816A_FM_ATT 0x05
-#define AD1816A_I2S_1_ATT 0x06
-#define AD1816A_I2S_0_ATT 0x07
-#define AD1816A_PLAYBACK_BASE_COUNT 0x08
-#define AD1816A_PLAYBACK_CURR_COUNT 0x09
-#define AD1816A_CAPTURE_BASE_COUNT 0x0a
-#define AD1816A_CAPTURE_CURR_COUNT 0x0b
-#define AD1816A_TIMER_BASE_COUNT 0x0c
-#define AD1816A_TIMER_CURR_COUNT 0x0d
-#define AD1816A_MASTER_ATT 0x0e
-#define AD1816A_CD_GAIN_ATT 0x0f
-#define AD1816A_SYNTH_GAIN_ATT 0x10
-#define AD1816A_VID_GAIN_ATT 0x11
-#define AD1816A_LINE_GAIN_ATT 0x12
-#define AD1816A_MIC_GAIN_ATT 0x13
-#define AD1816A_PHONE_IN_GAIN_ATT 0x13
-#define AD1816A_ADC_SOURCE_SEL 0x14
-#define AD1816A_ADC_PGA 0x14
-#define AD1816A_CHIP_CONFIG 0x20
-#define AD1816A_DSP_CONFIG 0x21
-#define AD1816A_FM_SAMPLE_RATE 0x22
-#define AD1816A_I2S_1_SAMPLE_RATE 0x23
-#define AD1816A_I2S_0_SAMPLE_RATE 0x24
-#define AD1816A_RESERVED_37 0x25
-#define AD1816A_PROGRAM_CLOCK_RATE 0x26
-#define AD1816A_3D_PHAT_CTRL 0x27
-#define AD1816A_PHONE_OUT_ATT 0x27
-#define AD1816A_RESERVED_40 0x28
-#define AD1816A_HW_VOL_BUT 0x29
-#define AD1816A_DSP_MAILBOX_0 0x2a
-#define AD1816A_DSP_MAILBOX_1 0x2b
-#define AD1816A_POWERDOWN_CTRL 0x2c
-#define AD1816A_TIMER_CTRL 0x2c
-#define AD1816A_VERSION_ID 0x2d
-#define AD1816A_RESERVED_46 0x2e
-
-#define AD1816A_READY 0x80
-
-#define AD1816A_PLAYBACK_IRQ_PENDING 0x80
-#define AD1816A_CAPTURE_IRQ_PENDING 0x40
-#define AD1816A_TIMER_IRQ_PENDING 0x20
-
-#define AD1816A_PLAYBACK_ENABLE 0x01
-#define AD1816A_PLAYBACK_PIO 0x02
-#define AD1816A_CAPTURE_ENABLE 0x01
-#define AD1816A_CAPTURE_PIO 0x02
-
-#define AD1816A_FMT_LINEAR_8 0x00
-#define AD1816A_FMT_ULAW_8 0x08
-#define AD1816A_FMT_LINEAR_16_LIT 0x10
-#define AD1816A_FMT_ALAW_8 0x18
-#define AD1816A_FMT_LINEAR_16_BIG 0x30
-#define AD1816A_FMT_ALL 0x38
-#define AD1816A_FMT_STEREO 0x04
-
-#define AD1816A_PLAYBACK_IRQ_ENABLE 0x8000
-#define AD1816A_CAPTURE_IRQ_ENABLE 0x4000
-#define AD1816A_TIMER_IRQ_ENABLE 0x2000
-#define AD1816A_TIMER_ENABLE 0x0080
-
-#define AD1816A_SRC_LINE 0x00
-#define AD1816A_SRC_OUT 0x10
-#define AD1816A_SRC_CD 0x20
-#define AD1816A_SRC_SYNTH 0x30
-#define AD1816A_SRC_VIDEO 0x40
-#define AD1816A_SRC_MIC 0x50
-#define AD1816A_SRC_MONO 0x50
-#define AD1816A_SRC_PHONE_IN 0x60
-#define AD1816A_SRC_MASK 0x70
-
-#define AD1816A_CAPTURE_NOT_EQUAL 0x1000
-#define AD1816A_WSS_ENABLE 0x8000
-
-struct snd_ad1816a {
- unsigned long port;
- struct resource *res_port;
- int irq;
- int dma1;
- int dma2;
-
- unsigned short hardware;
- unsigned short version;
-
- spinlock_t lock;
-
- unsigned short mode;
- unsigned int clock_freq;
-
- struct snd_card *card;
- struct snd_pcm *pcm;
-
- struct snd_pcm_substream *playback_substream;
- struct snd_pcm_substream *capture_substream;
- unsigned int p_dma_size;
- unsigned int c_dma_size;
-
- struct snd_timer *timer;
-};
-
-
-#define AD1816A_HW_AUTO 0
-#define AD1816A_HW_AD1816A 1
-#define AD1816A_HW_AD1815 2
-#define AD1816A_HW_AD18MAX10 3
-
-#define AD1816A_MODE_PLAYBACK 0x01
-#define AD1816A_MODE_CAPTURE 0x02
-#define AD1816A_MODE_TIMER 0x04
-#define AD1816A_MODE_OPEN (AD1816A_MODE_PLAYBACK | \
- AD1816A_MODE_CAPTURE | \
- AD1816A_MODE_TIMER)
-
-
-extern int snd_ad1816a_create(struct snd_card *card, unsigned long port,
- int irq, int dma1, int dma2,
- struct snd_ad1816a **chip);
-
-extern int snd_ad1816a_pcm(struct snd_ad1816a *chip, int device, struct snd_pcm **rpcm);
-extern int snd_ad1816a_mixer(struct snd_ad1816a *chip);
-extern int snd_ad1816a_timer(struct snd_ad1816a *chip, int device,
- struct snd_timer **rtimer);
-
-#endif /* __SOUND_AD1816A_H */
diff --git a/ANDROID_3.4.5/include/sound/ad1843.h b/ANDROID_3.4.5/include/sound/ad1843.h
deleted file mode 100644
index b236a9d1..00000000
--- a/ANDROID_3.4.5/include/sound/ad1843.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright 2003 Vivien Chappelier <vivien.chappelier@linux-mips.org>
- * Copyright 2008 Thomas Bogendoerfer <tsbogend@franken.de>
- */
-
-#ifndef __SOUND_AD1843_H
-#define __SOUND_AD1843_H
-
-struct snd_ad1843 {
- void *chip;
- int (*read)(void *chip, int reg);
- int (*write)(void *chip, int reg, int val);
-};
-
-#define AD1843_GAIN_RECLEV 0
-#define AD1843_GAIN_LINE 1
-#define AD1843_GAIN_LINE_2 2
-#define AD1843_GAIN_MIC 3
-#define AD1843_GAIN_PCM_0 4
-#define AD1843_GAIN_PCM_1 5
-#define AD1843_GAIN_SIZE (AD1843_GAIN_PCM_1+1)
-
-int ad1843_get_gain_max(struct snd_ad1843 *ad1843, int id);
-int ad1843_get_gain(struct snd_ad1843 *ad1843, int id);
-int ad1843_set_gain(struct snd_ad1843 *ad1843, int id, int newval);
-int ad1843_get_recsrc(struct snd_ad1843 *ad1843);
-int ad1843_set_recsrc(struct snd_ad1843 *ad1843, int newsrc);
-void ad1843_setup_dac(struct snd_ad1843 *ad1843,
- unsigned int id,
- unsigned int framerate,
- snd_pcm_format_t fmt,
- unsigned int channels);
-void ad1843_shutdown_dac(struct snd_ad1843 *ad1843,
- unsigned int id);
-void ad1843_setup_adc(struct snd_ad1843 *ad1843,
- unsigned int framerate,
- snd_pcm_format_t fmt,
- unsigned int channels);
-void ad1843_shutdown_adc(struct snd_ad1843 *ad1843);
-int ad1843_init(struct snd_ad1843 *ad1843);
-
-#endif /* __SOUND_AD1843_H */
diff --git a/ANDROID_3.4.5/include/sound/adau1373.h b/ANDROID_3.4.5/include/sound/adau1373.h
deleted file mode 100644
index 1b19c766..00000000
--- a/ANDROID_3.4.5/include/sound/adau1373.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Analog Devices ADAU1373 Audio Codec drive
- *
- * Copyright 2011 Analog Devices Inc.
- * Author: Lars-Peter Clausen <lars@metafoo.de>
- *
- * Licensed under the GPL-2 or later.
- */
-
-#ifndef __SOUND_ADAU1373_H__
-#define __SOUND_ADAU1373_H__
-
-enum adau1373_micbias_voltage {
- ADAU1373_MICBIAS_2_9V = 0,
- ADAU1373_MICBIAS_2_2V = 1,
- ADAU1373_MICBIAS_2_6V = 2,
- ADAU1373_MICBIAS_1_8V = 3,
-};
-
-#define ADAU1373_DRC_SIZE 13
-
-struct adau1373_platform_data {
- bool input_differential[4];
- bool lineout_differential;
- bool lineout_ground_sense;
-
- unsigned int num_drc;
- uint8_t drc_setting[3][ADAU1373_DRC_SIZE];
-
- enum adau1373_micbias_voltage micbias1;
- enum adau1373_micbias_voltage micbias2;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/sound/ak4113.h b/ANDROID_3.4.5/include/sound/ak4113.h
deleted file mode 100644
index 2609048c..00000000
--- a/ANDROID_3.4.5/include/sound/ak4113.h
+++ /dev/null
@@ -1,321 +0,0 @@
-#ifndef __SOUND_AK4113_H
-#define __SOUND_AK4113_H
-
-/*
- * Routines for Asahi Kasei AK4113
- * Copyright (c) by Jaroslav Kysela <perex@perex.cz>,
- * Copyright (c) by Pavel Hofman <pavel.hofman@ivitera.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
- *
- */
-
-/* AK4113 registers */
-/* power down */
-#define AK4113_REG_PWRDN 0x00
-/* format control */
-#define AK4113_REG_FORMAT 0x01
-/* input/output control */
-#define AK4113_REG_IO0 0x02
-/* input/output control */
-#define AK4113_REG_IO1 0x03
-/* interrupt0 mask */
-#define AK4113_REG_INT0_MASK 0x04
-/* interrupt1 mask */
-#define AK4113_REG_INT1_MASK 0x05
-/* DAT mask & DTS select */
-#define AK4113_REG_DATDTS 0x06
-/* receiver status 0 */
-#define AK4113_REG_RCS0 0x07
-/* receiver status 1 */
-#define AK4113_REG_RCS1 0x08
-/* receiver status 2 */
-#define AK4113_REG_RCS2 0x09
-/* RX channel status byte 0 */
-#define AK4113_REG_RXCSB0 0x0a
-/* RX channel status byte 1 */
-#define AK4113_REG_RXCSB1 0x0b
-/* RX channel status byte 2 */
-#define AK4113_REG_RXCSB2 0x0c
-/* RX channel status byte 3 */
-#define AK4113_REG_RXCSB3 0x0d
-/* RX channel status byte 4 */
-#define AK4113_REG_RXCSB4 0x0e
-/* burst preamble Pc byte 0 */
-#define AK4113_REG_Pc0 0x0f
-/* burst preamble Pc byte 1 */
-#define AK4113_REG_Pc1 0x10
-/* burst preamble Pd byte 0 */
-#define AK4113_REG_Pd0 0x11
-/* burst preamble Pd byte 1 */
-#define AK4113_REG_Pd1 0x12
-/* Q-subcode address + control */
-#define AK4113_REG_QSUB_ADDR 0x13
-/* Q-subcode track */
-#define AK4113_REG_QSUB_TRACK 0x14
-/* Q-subcode index */
-#define AK4113_REG_QSUB_INDEX 0x15
-/* Q-subcode minute */
-#define AK4113_REG_QSUB_MINUTE 0x16
-/* Q-subcode second */
-#define AK4113_REG_QSUB_SECOND 0x17
-/* Q-subcode frame */
-#define AK4113_REG_QSUB_FRAME 0x18
-/* Q-subcode zero */
-#define AK4113_REG_QSUB_ZERO 0x19
-/* Q-subcode absolute minute */
-#define AK4113_REG_QSUB_ABSMIN 0x1a
-/* Q-subcode absolute second */
-#define AK4113_REG_QSUB_ABSSEC 0x1b
-/* Q-subcode absolute frame */
-#define AK4113_REG_QSUB_ABSFRM 0x1c
-
-/* sizes */
-#define AK4113_REG_RXCSB_SIZE ((AK4113_REG_RXCSB4-AK4113_REG_RXCSB0)+1)
-#define AK4113_REG_QSUB_SIZE ((AK4113_REG_QSUB_ABSFRM-AK4113_REG_QSUB_ADDR)\
- +1)
-
-#define AK4113_WRITABLE_REGS (AK4113_REG_DATDTS + 1)
-
-/* AK4113_REG_PWRDN bits */
-/* Channel Status Select */
-#define AK4113_CS12 (1<<7)
-/* Block Start & C/U Output Mode */
-#define AK4113_BCU (1<<6)
-/* Master Clock Operation Select */
-#define AK4113_CM1 (1<<5)
-/* Master Clock Operation Select */
-#define AK4113_CM0 (1<<4)
-/* Master Clock Frequency Select */
-#define AK4113_OCKS1 (1<<3)
-/* Master Clock Frequency Select */
-#define AK4113_OCKS0 (1<<2)
-/* 0 = power down, 1 = normal operation */
-#define AK4113_PWN (1<<1)
-/* 0 = reset & initialize (except thisregister), 1 = normal operation */
-#define AK4113_RST (1<<0)
-
-/* AK4113_REQ_FORMAT bits */
-/* V/TX Output select: 0 = Validity Flag Output, 1 = TX */
-#define AK4113_VTX (1<<7)
-/* Audio Data Control */
-#define AK4113_DIF2 (1<<6)
-/* Audio Data Control */
-#define AK4113_DIF1 (1<<5)
-/* Audio Data Control */
-#define AK4113_DIF0 (1<<4)
-/* Deemphasis Autodetect Enable (1 = enable) */
-#define AK4113_DEAU (1<<3)
-/* 32kHz-48kHz Deemphasis Control */
-#define AK4113_DEM1 (1<<2)
-/* 32kHz-48kHz Deemphasis Control */
-#define AK4113_DEM0 (1<<1)
-#define AK4113_DEM_OFF (AK4113_DEM0)
-#define AK4113_DEM_44KHZ (0)
-#define AK4113_DEM_48KHZ (AK4113_DEM1)
-#define AK4113_DEM_32KHZ (AK4113_DEM0|AK4113_DEM1)
-/* STDO: 16-bit, right justified */
-#define AK4113_DIF_16R (0)
-/* STDO: 18-bit, right justified */
-#define AK4113_DIF_18R (AK4113_DIF0)
-/* STDO: 20-bit, right justified */
-#define AK4113_DIF_20R (AK4113_DIF1)
-/* STDO: 24-bit, right justified */
-#define AK4113_DIF_24R (AK4113_DIF1|AK4113_DIF0)
-/* STDO: 24-bit, left justified */
-#define AK4113_DIF_24L (AK4113_DIF2)
-/* STDO: I2S */
-#define AK4113_DIF_24I2S (AK4113_DIF2|AK4113_DIF0)
-/* STDO: 24-bit, left justified; LRCLK, BICK = Input */
-#define AK4113_DIF_I24L (AK4113_DIF2|AK4113_DIF1)
-/* STDO: I2S; LRCLK, BICK = Input */
-#define AK4113_DIF_I24I2S (AK4113_DIF2|AK4113_DIF1|AK4113_DIF0)
-
-/* AK4113_REG_IO0 */
-/* XTL1=0,XTL0=0 -> 11.2896Mhz; XTL1=0,XTL0=1 -> 12.288Mhz */
-#define AK4113_XTL1 (1<<6)
-/* XTL1=1,XTL0=0 -> 24.576Mhz; XTL1=1,XTL0=1 -> use channel status */
-#define AK4113_XTL0 (1<<5)
-/* Block Start Signal Output: 0 = U-bit, 1 = C-bit (req. BCU = 1) */
-#define AK4113_UCE (1<<4)
-/* TX Output Enable (1 = enable) */
-#define AK4113_TXE (1<<3)
-/* Output Through Data Selector for TX pin */
-#define AK4113_OPS2 (1<<2)
-/* Output Through Data Selector for TX pin */
-#define AK4113_OPS1 (1<<1)
-/* Output Through Data Selector for TX pin */
-#define AK4113_OPS0 (1<<0)
-/* 11.2896 MHz ref. Xtal freq. */
-#define AK4113_XTL_11_2896M (0)
-/* 12.288 MHz ref. Xtal freq. */
-#define AK4113_XTL_12_288M (AK4113_XTL0)
-/* 24.576 MHz ref. Xtal freq. */
-#define AK4113_XTL_24_576M (AK4113_XTL1)
-
-/* AK4113_REG_IO1 */
-/* Interrupt 0 pin Hold */
-#define AK4113_EFH1 (1<<7)
-/* Interrupt 0 pin Hold */
-#define AK4113_EFH0 (1<<6)
-#define AK4113_EFH_512LRCLK (0)
-#define AK4113_EFH_1024LRCLK (AK4113_EFH0)
-#define AK4113_EFH_2048LRCLK (AK4113_EFH1)
-#define AK4113_EFH_4096LRCLK (AK4113_EFH1|AK4113_EFH0)
-/* PLL Lock Time: 0 = 384/fs, 1 = 1/fs */
-#define AK4113_FAST (1<<5)
-/* MCKO2 Output Select: 0 = CMx/OCKSx, 1 = Xtal */
-#define AK4113_XMCK (1<<4)
-/* MCKO2 Output Freq. Select: 0 = x1, 1 = x0.5 (req. XMCK = 1) */
-#define AK4113_DIV (1<<3)
-/* Input Recovery Data Select */
-#define AK4113_IPS2 (1<<2)
-/* Input Recovery Data Select */
-#define AK4113_IPS1 (1<<1)
-/* Input Recovery Data Select */
-#define AK4113_IPS0 (1<<0)
-#define AK4113_IPS(x) ((x)&7)
-
-/* AK4113_REG_INT0_MASK && AK4113_REG_INT1_MASK*/
-/* mask enable for QINT bit */
-#define AK4113_MQI (1<<7)
-/* mask enable for AUTO bit */
-#define AK4113_MAUT (1<<6)
-/* mask enable for CINT bit */
-#define AK4113_MCIT (1<<5)
-/* mask enable for UNLOCK bit */
-#define AK4113_MULK (1<<4)
-/* mask enable for V bit */
-#define AK4113_V (1<<3)
-/* mask enable for STC bit */
-#define AK4113_STC (1<<2)
-/* mask enable for AUDN bit */
-#define AK4113_MAN (1<<1)
-/* mask enable for PAR bit */
-#define AK4113_MPR (1<<0)
-
-/* AK4113_REG_DATDTS */
-/* DAT Start ID Counter */
-#define AK4113_DCNT (1<<4)
-/* DTS-CD 16-bit Sync Word Detect */
-#define AK4113_DTS16 (1<<3)
-/* DTS-CD 14-bit Sync Word Detect */
-#define AK4113_DTS14 (1<<2)
-/* mask enable for DAT bit (if 1, no INT1 effect */
-#define AK4113_MDAT1 (1<<1)
-/* mask enable for DAT bit (if 1, no INT0 effect */
-#define AK4113_MDAT0 (1<<0)
-
-/* AK4113_REG_RCS0 */
-/* Q-subcode buffer interrupt, 0 = no change, 1 = changed */
-#define AK4113_QINT (1<<7)
-/* Non-PCM or DTS stream auto detection, 0 = no detect, 1 = detect */
-#define AK4113_AUTO (1<<6)
-/* channel status buffer interrupt, 0 = no change, 1 = change */
-#define AK4113_CINT (1<<5)
-/* PLL lock status, 0 = lock, 1 = unlock */
-#define AK4113_UNLCK (1<<4)
-/* Validity bit, 0 = valid, 1 = invalid */
-#define AK4113_V (1<<3)
-/* sampling frequency or Pre-emphasis change, 0 = no detect, 1 = detect */
-#define AK4113_STC (1<<2)
-/* audio bit output, 0 = audio, 1 = non-audio */
-#define AK4113_AUDION (1<<1)
-/* parity error or biphase error status, 0 = no error, 1 = error */
-#define AK4113_PAR (1<<0)
-
-/* AK4113_REG_RCS1 */
-/* sampling frequency detection */
-#define AK4113_FS3 (1<<7)
-#define AK4113_FS2 (1<<6)
-#define AK4113_FS1 (1<<5)
-#define AK4113_FS0 (1<<4)
-/* Pre-emphasis detect, 0 = OFF, 1 = ON */
-#define AK4113_PEM (1<<3)
-/* DAT Start ID Detect, 0 = no detect, 1 = detect */
-#define AK4113_DAT (1<<2)
-/* DTS-CD bit audio stream detect, 0 = no detect, 1 = detect */
-#define AK4113_DTSCD (1<<1)
-/* Non-PCM bit stream detection, 0 = no detect, 1 = detect */
-#define AK4113_NPCM (1<<0)
-#define AK4113_FS_8000HZ (AK4113_FS3|AK4113_FS0)
-#define AK4113_FS_11025HZ (AK4113_FS2|AK4113_FS0)
-#define AK4113_FS_16000HZ (AK4113_FS2|AK4113_FS1|AK4113_FS0)
-#define AK4113_FS_22050HZ (AK4113_FS2)
-#define AK4113_FS_24000HZ (AK4113_FS2|AK4113_FS1)
-#define AK4113_FS_32000HZ (AK4113_FS1|AK4113_FS0)
-#define AK4113_FS_44100HZ (0)
-#define AK4113_FS_48000HZ (AK4113_FS1)
-#define AK4113_FS_64000HZ (AK4113_FS3|AK4113_FS1|AK4113_FS0)
-#define AK4113_FS_88200HZ (AK4113_FS3)
-#define AK4113_FS_96000HZ (AK4113_FS3|AK4113_FS1)
-#define AK4113_FS_176400HZ (AK4113_FS3|AK4113_FS2)
-#define AK4113_FS_192000HZ (AK4113_FS3|AK4113_FS2|AK4113_FS1)
-
-/* AK4113_REG_RCS2 */
-/* CRC for Q-subcode, 0 = no error, 1 = error */
-#define AK4113_QCRC (1<<1)
-/* CRC for channel status, 0 = no error, 1 = error */
-#define AK4113_CCRC (1<<0)
-
-/* flags for snd_ak4113_check_rate_and_errors() */
-#define AK4113_CHECK_NO_STAT (1<<0) /* no statistics */
-#define AK4113_CHECK_NO_RATE (1<<1) /* no rate check */
-
-#define AK4113_CONTROLS 13
-
-typedef void (ak4113_write_t)(void *private_data, unsigned char addr,
- unsigned char data);
-typedef unsigned char (ak4113_read_t)(void *private_data, unsigned char addr);
-
-struct ak4113 {
- struct snd_card *card;
- ak4113_write_t *write;
- ak4113_read_t *read;
- void *private_data;
- unsigned int init:1;
- spinlock_t lock;
- unsigned char regmap[AK4113_WRITABLE_REGS];
- struct snd_kcontrol *kctls[AK4113_CONTROLS];
- struct snd_pcm_substream *substream;
- unsigned long parity_errors;
- unsigned long v_bit_errors;
- unsigned long qcrc_errors;
- unsigned long ccrc_errors;
- unsigned char rcs0;
- unsigned char rcs1;
- unsigned char rcs2;
- struct delayed_work work;
- unsigned int check_flags;
- void *change_callback_private;
- void (*change_callback)(struct ak4113 *ak4113, unsigned char c0,
- unsigned char c1);
-};
-
-int snd_ak4113_create(struct snd_card *card, ak4113_read_t *read,
- ak4113_write_t *write,
- const unsigned char *pgm,
- void *private_data, struct ak4113 **r_ak4113);
-void snd_ak4113_reg_write(struct ak4113 *ak4113, unsigned char reg,
- unsigned char mask, unsigned char val);
-void snd_ak4113_reinit(struct ak4113 *ak4113);
-int snd_ak4113_build(struct ak4113 *ak4113,
- struct snd_pcm_substream *capture_substream);
-int snd_ak4113_external_rate(struct ak4113 *ak4113);
-int snd_ak4113_check_rate_and_errors(struct ak4113 *ak4113, unsigned int flags);
-
-#endif /* __SOUND_AK4113_H */
-
diff --git a/ANDROID_3.4.5/include/sound/ak4114.h b/ANDROID_3.4.5/include/sound/ak4114.h
deleted file mode 100644
index 3ce69fd9..00000000
--- a/ANDROID_3.4.5/include/sound/ak4114.h
+++ /dev/null
@@ -1,203 +0,0 @@
-#ifndef __SOUND_AK4114_H
-#define __SOUND_AK4114_H
-
-/*
- * Routines for Asahi Kasei AK4114
- * Copyright (c) by Jaroslav Kysela <perex@perex.cz>,
- *
- *
- * 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
- *
- */
-
-/* AK4114 registers */
-#define AK4114_REG_PWRDN 0x00 /* power down */
-#define AK4114_REG_FORMAT 0x01 /* format control */
-#define AK4114_REG_IO0 0x02 /* input/output control */
-#define AK4114_REG_IO1 0x03 /* input/output control */
-#define AK4114_REG_INT0_MASK 0x04 /* interrupt0 mask */
-#define AK4114_REG_INT1_MASK 0x05 /* interrupt1 mask */
-#define AK4114_REG_RCS0 0x06 /* receiver status 0 */
-#define AK4114_REG_RCS1 0x07 /* receiver status 1 */
-#define AK4114_REG_RXCSB0 0x08 /* RX channel status byte 0 */
-#define AK4114_REG_RXCSB1 0x09 /* RX channel status byte 1 */
-#define AK4114_REG_RXCSB2 0x0a /* RX channel status byte 2 */
-#define AK4114_REG_RXCSB3 0x0b /* RX channel status byte 3 */
-#define AK4114_REG_RXCSB4 0x0c /* RX channel status byte 4 */
-#define AK4114_REG_TXCSB0 0x0d /* TX channel status byte 0 */
-#define AK4114_REG_TXCSB1 0x0e /* TX channel status byte 1 */
-#define AK4114_REG_TXCSB2 0x0f /* TX channel status byte 2 */
-#define AK4114_REG_TXCSB3 0x10 /* TX channel status byte 3 */
-#define AK4114_REG_TXCSB4 0x11 /* TX channel status byte 4 */
-#define AK4114_REG_Pc0 0x12 /* burst preamble Pc byte 0 */
-#define AK4114_REG_Pc1 0x13 /* burst preamble Pc byte 1 */
-#define AK4114_REG_Pd0 0x14 /* burst preamble Pd byte 0 */
-#define AK4114_REG_Pd1 0x15 /* burst preamble Pd byte 1 */
-#define AK4114_REG_QSUB_ADDR 0x16 /* Q-subcode address + control */
-#define AK4114_REG_QSUB_TRACK 0x17 /* Q-subcode track */
-#define AK4114_REG_QSUB_INDEX 0x18 /* Q-subcode index */
-#define AK4114_REG_QSUB_MINUTE 0x19 /* Q-subcode minute */
-#define AK4114_REG_QSUB_SECOND 0x1a /* Q-subcode second */
-#define AK4114_REG_QSUB_FRAME 0x1b /* Q-subcode frame */
-#define AK4114_REG_QSUB_ZERO 0x1c /* Q-subcode zero */
-#define AK4114_REG_QSUB_ABSMIN 0x1d /* Q-subcode absolute minute */
-#define AK4114_REG_QSUB_ABSSEC 0x1e /* Q-subcode absolute second */
-#define AK4114_REG_QSUB_ABSFRM 0x1f /* Q-subcode absolute frame */
-
-/* sizes */
-#define AK4114_REG_RXCSB_SIZE ((AK4114_REG_RXCSB4-AK4114_REG_RXCSB0)+1)
-#define AK4114_REG_TXCSB_SIZE ((AK4114_REG_TXCSB4-AK4114_REG_TXCSB0)+1)
-#define AK4114_REG_QSUB_SIZE ((AK4114_REG_QSUB_ABSFRM-AK4114_REG_QSUB_ADDR)+1)
-
-/* AK4117_REG_PWRDN bits */
-#define AK4114_CS12 (1<<7) /* Channel Status Select */
-#define AK4114_BCU (1<<6) /* Block Start & C/U Output Mode */
-#define AK4114_CM1 (1<<5) /* Master Clock Operation Select */
-#define AK4114_CM0 (1<<4) /* Master Clock Operation Select */
-#define AK4114_OCKS1 (1<<3) /* Master Clock Frequency Select */
-#define AK4114_OCKS0 (1<<2) /* Master Clock Frequency Select */
-#define AK4114_PWN (1<<1) /* 0 = power down, 1 = normal operation */
-#define AK4114_RST (1<<0) /* 0 = reset & initialize (except this register), 1 = normal operation */
-
-/* AK4114_REQ_FORMAT bits */
-#define AK4114_MONO (1<<7) /* Double Sampling Frequency Mode: 0 = stereo, 1 = mono */
-#define AK4114_DIF2 (1<<6) /* Audio Data Control */
-#define AK4114_DIF1 (1<<5) /* Audio Data Control */
-#define AK4114_DIF0 (1<<4) /* Audio Data Control */
-#define AK4114_DIF_16R (0) /* STDO: 16-bit, right justified */
-#define AK4114_DIF_18R (AK4114_DIF0) /* STDO: 18-bit, right justified */
-#define AK4114_DIF_20R (AK4114_DIF1) /* STDO: 20-bit, right justified */
-#define AK4114_DIF_24R (AK4114_DIF1|AK4114_DIF0) /* STDO: 24-bit, right justified */
-#define AK4114_DIF_24L (AK4114_DIF2) /* STDO: 24-bit, left justified */
-#define AK4114_DIF_24I2S (AK4114_DIF2|AK4114_DIF0) /* STDO: I2S */
-#define AK4114_DIF_I24L (AK4114_DIF2|AK4114_DIF1) /* STDO: 24-bit, left justified; LRCLK, BICK = Input */
-#define AK4114_DIF_I24I2S (AK4114_DIF2|AK4114_DIF1|AK4114_DIF0) /* STDO: I2S; LRCLK, BICK = Input */
-#define AK4114_DEAU (1<<3) /* Deemphasis Autodetect Enable (1 = enable) */
-#define AK4114_DEM1 (1<<2) /* 32kHz-48kHz Deemphasis Control */
-#define AK4114_DEM0 (1<<1) /* 32kHz-48kHz Deemphasis Control */
-#define AK4114_DEM_44KHZ (0)
-#define AK4114_DEM_48KHZ (AK4114_DEM1)
-#define AK4114_DEM_32KHZ (AK4114_DEM0|AK4114_DEM1)
-#define AK4114_DEM_96KHZ (AK4114_DEM1) /* DFS must be set */
-#define AK4114_DFS (1<<0) /* 96kHz Deemphasis Control */
-
-/* AK4114_REG_IO0 */
-#define AK4114_TX1E (1<<7) /* TX1 Output Enable (1 = enable) */
-#define AK4114_OPS12 (1<<6) /* Output Data Selector for TX1 pin */
-#define AK4114_OPS11 (1<<5) /* Output Data Selector for TX1 pin */
-#define AK4114_OPS10 (1<<4) /* Output Data Selector for TX1 pin */
-#define AK4114_TX0E (1<<3) /* TX0 Output Enable (1 = enable) */
-#define AK4114_OPS02 (1<<2) /* Output Data Selector for TX0 pin */
-#define AK4114_OPS01 (1<<1) /* Output Data Selector for TX0 pin */
-#define AK4114_OPS00 (1<<0) /* Output Data Selector for TX0 pin */
-
-/* AK4114_REG_IO1 */
-#define AK4114_EFH1 (1<<7) /* Interrupt 0 pin Hold */
-#define AK4114_EFH0 (1<<6) /* Interrupt 0 pin Hold */
-#define AK4114_EFH_512 (0)
-#define AK4114_EFH_1024 (AK4114_EFH0)
-#define AK4114_EFH_2048 (AK4114_EFH1)
-#define AK4114_EFH_4096 (AK4114_EFH1|AK4114_EFH0)
-#define AK4114_UDIT (1<<5) /* U-bit Control for DIT (0 = fixed '0', 1 = recovered) */
-#define AK4114_TLR (1<<4) /* Double Sampling Frequency Select for DIT (0 = L channel, 1 = R channel) */
-#define AK4114_DIT (1<<3) /* TX1 out: 0 = Through Data (RX data), 1 = Transmit Data (DAUX data) */
-#define AK4114_IPS2 (1<<2) /* Input Recovery Data Select */
-#define AK4114_IPS1 (1<<1) /* Input Recovery Data Select */
-#define AK4114_IPS0 (1<<0) /* Input Recovery Data Select */
-#define AK4114_IPS(x) ((x)&7)
-
-/* AK4114_REG_INT0_MASK && AK4114_REG_INT1_MASK*/
-#define AK4117_MQI (1<<7) /* mask enable for QINT bit */
-#define AK4117_MAT (1<<6) /* mask enable for AUTO bit */
-#define AK4117_MCI (1<<5) /* mask enable for CINT bit */
-#define AK4117_MUL (1<<4) /* mask enable for UNLOCK bit */
-#define AK4117_MDTS (1<<3) /* mask enable for DTSCD bit */
-#define AK4117_MPE (1<<2) /* mask enable for PEM bit */
-#define AK4117_MAN (1<<1) /* mask enable for AUDN bit */
-#define AK4117_MPR (1<<0) /* mask enable for PAR bit */
-
-/* AK4114_REG_RCS0 */
-#define AK4114_QINT (1<<7) /* Q-subcode buffer interrupt, 0 = no change, 1 = changed */
-#define AK4114_AUTO (1<<6) /* Non-PCM or DTS stream auto detection, 0 = no detect, 1 = detect */
-#define AK4114_CINT (1<<5) /* channel status buffer interrupt, 0 = no change, 1 = change */
-#define AK4114_UNLCK (1<<4) /* PLL lock status, 0 = lock, 1 = unlock */
-#define AK4114_DTSCD (1<<3) /* DTS-CD Detect, 0 = No detect, 1 = Detect */
-#define AK4114_PEM (1<<2) /* Pre-emphasis Detect, 0 = OFF, 1 = ON */
-#define AK4114_AUDION (1<<1) /* audio bit output, 0 = audio, 1 = non-audio */
-#define AK4114_PAR (1<<0) /* parity error or biphase error status, 0 = no error, 1 = error */
-
-/* AK4114_REG_RCS1 */
-#define AK4114_FS3 (1<<7) /* sampling frequency detection */
-#define AK4114_FS2 (1<<6)
-#define AK4114_FS1 (1<<5)
-#define AK4114_FS0 (1<<4)
-#define AK4114_FS_44100HZ (0)
-#define AK4114_FS_48000HZ (AK4114_FS1)
-#define AK4114_FS_32000HZ (AK4114_FS1|AK4114_FS0)
-#define AK4114_FS_88200HZ (AK4114_FS3)
-#define AK4114_FS_96000HZ (AK4114_FS3|AK4114_FS1)
-#define AK4114_FS_176400HZ (AK4114_FS3|AK4114_FS2)
-#define AK4114_FS_192000HZ (AK4114_FS3|AK4114_FS2|AK4114_FS1)
-#define AK4114_V (1<<3) /* Validity of Channel Status, 0 = Valid, 1 = Invalid */
-#define AK4114_QCRC (1<<1) /* CRC for Q-subcode, 0 = no error, 1 = error */
-#define AK4114_CCRC (1<<0) /* CRC for channel status, 0 = no error, 1 = error */
-
-/* flags for snd_ak4114_check_rate_and_errors() */
-#define AK4114_CHECK_NO_STAT (1<<0) /* no statistics */
-#define AK4114_CHECK_NO_RATE (1<<1) /* no rate check */
-
-#define AK4114_CONTROLS 15
-
-typedef void (ak4114_write_t)(void *private_data, unsigned char addr, unsigned char data);
-typedef unsigned char (ak4114_read_t)(void *private_data, unsigned char addr);
-
-struct ak4114 {
- struct snd_card *card;
- ak4114_write_t * write;
- ak4114_read_t * read;
- void * private_data;
- unsigned int init: 1;
- spinlock_t lock;
- unsigned char regmap[7];
- unsigned char txcsb[5];
- struct snd_kcontrol *kctls[AK4114_CONTROLS];
- struct snd_pcm_substream *playback_substream;
- struct snd_pcm_substream *capture_substream;
- unsigned long parity_errors;
- unsigned long v_bit_errors;
- unsigned long qcrc_errors;
- unsigned long ccrc_errors;
- unsigned char rcs0;
- unsigned char rcs1;
- struct delayed_work work;
- unsigned int check_flags;
- void *change_callback_private;
- void (*change_callback)(struct ak4114 *ak4114, unsigned char c0, unsigned char c1);
-};
-
-int snd_ak4114_create(struct snd_card *card,
- ak4114_read_t *read, ak4114_write_t *write,
- const unsigned char pgm[7], const unsigned char txcsb[5],
- void *private_data, struct ak4114 **r_ak4114);
-void snd_ak4114_reg_write(struct ak4114 *ak4114, unsigned char reg, unsigned char mask, unsigned char val);
-void snd_ak4114_reinit(struct ak4114 *ak4114);
-int snd_ak4114_build(struct ak4114 *ak4114,
- struct snd_pcm_substream *playback_substream,
- struct snd_pcm_substream *capture_substream);
-int snd_ak4114_external_rate(struct ak4114 *ak4114);
-int snd_ak4114_check_rate_and_errors(struct ak4114 *ak4114, unsigned int flags);
-
-#endif /* __SOUND_AK4114_H */
-
diff --git a/ANDROID_3.4.5/include/sound/ak4117.h b/ANDROID_3.4.5/include/sound/ak4117.h
deleted file mode 100644
index 1e817817..00000000
--- a/ANDROID_3.4.5/include/sound/ak4117.h
+++ /dev/null
@@ -1,189 +0,0 @@
-#ifndef __SOUND_AK4117_H
-#define __SOUND_AK4117_H
-
-/*
- * Routines for Asahi Kasei AK4117
- * Copyright (c) by Jaroslav Kysela <perex@perex.cz>,
- *
- *
- * 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
- *
- */
-
-#define AK4117_REG_PWRDN 0x00 /* power down */
-#define AK4117_REG_CLOCK 0x01 /* clock control */
-#define AK4117_REG_IO 0x02 /* input/output control */
-#define AK4117_REG_INT0_MASK 0x03 /* interrupt0 mask */
-#define AK4117_REG_INT1_MASK 0x04 /* interrupt1 mask */
-#define AK4117_REG_RCS0 0x05 /* receiver status 0 */
-#define AK4117_REG_RCS1 0x06 /* receiver status 1 */
-#define AK4117_REG_RCS2 0x07 /* receiver status 2 */
-#define AK4117_REG_RXCSB0 0x08 /* RX channel status byte 0 */
-#define AK4117_REG_RXCSB1 0x09 /* RX channel status byte 1 */
-#define AK4117_REG_RXCSB2 0x0a /* RX channel status byte 2 */
-#define AK4117_REG_RXCSB3 0x0b /* RX channel status byte 3 */
-#define AK4117_REG_RXCSB4 0x0c /* RX channel status byte 4 */
-#define AK4117_REG_Pc0 0x0d /* burst preamble Pc byte 0 */
-#define AK4117_REG_Pc1 0x0e /* burst preamble Pc byte 1 */
-#define AK4117_REG_Pd0 0x0f /* burst preamble Pd byte 0 */
-#define AK4117_REG_Pd1 0x10 /* burst preamble Pd byte 1 */
-#define AK4117_REG_QSUB_ADDR 0x11 /* Q-subcode address + control */
-#define AK4117_REG_QSUB_TRACK 0x12 /* Q-subcode track */
-#define AK4117_REG_QSUB_INDEX 0x13 /* Q-subcode index */
-#define AK4117_REG_QSUB_MINUTE 0x14 /* Q-subcode minute */
-#define AK4117_REG_QSUB_SECOND 0x15 /* Q-subcode second */
-#define AK4117_REG_QSUB_FRAME 0x16 /* Q-subcode frame */
-#define AK4117_REG_QSUB_ZERO 0x17 /* Q-subcode zero */
-#define AK4117_REG_QSUB_ABSMIN 0x18 /* Q-subcode absolute minute */
-#define AK4117_REG_QSUB_ABSSEC 0x19 /* Q-subcode absolute second */
-#define AK4117_REG_QSUB_ABSFRM 0x1a /* Q-subcode absolute frame */
-
-/* sizes */
-#define AK4117_REG_RXCSB_SIZE ((AK4117_REG_RXCSB4-AK4117_REG_RXCSB0)+1)
-#define AK4117_REG_QSUB_SIZE ((AK4117_REG_QSUB_ABSFRM-AK4117_REG_QSUB_ADDR)+1)
-
-/* AK4117_REG_PWRDN bits */
-#define AK4117_EXCT (1<<4) /* 0 = X'tal mode, 1 = external clock mode */
-#define AK4117_XTL1 (1<<3) /* XTL1=0,XTL0=0 -> 11.2896Mhz; XTL1=0,XTL0=1 -> 12.288Mhz */
-#define AK4117_XTL0 (1<<2) /* XTL1=1,XTL0=0 -> 24.576Mhz; XTL1=1,XTL0=1 -> use channel status */
-#define AK4117_XTL_11_2896M (0)
-#define AK4117_XTL_12_288M AK4117_XTL0
-#define AK4117_XTL_24_576M AK4117_XTL1
-#define AK4117_XTL_EXT (AK4117_XTL1|AK4117_XTL0)
-#define AK4117_PWN (1<<1) /* 0 = power down, 1 = normal operation */
-#define AK4117_RST (1<<0) /* 0 = reset & initialize (except this register), 1 = normal operation */
-
-/* AK4117_REQ_CLOCK bits */
-#define AK4117_LP (1<<7) /* 0 = normal mode, 1 = low power mode (Fs up to 48kHz only) */
-#define AK4117_PKCS1 (1<<6) /* master clock frequency at PLL mode (when LP == 0) */
-#define AK4117_PKCS0 (1<<5)
-#define AK4117_PKCS_512fs (0)
-#define AK4117_PKCS_256fs AK4117_PKCS0
-#define AK4117_PKCS_128fs AK4117_PKCS1
-#define AK4117_DIV (1<<4) /* 0 = MCKO == Fs, 1 = MCKO == Fs / 2; X'tal mode only */
-#define AK4117_XCKS1 (1<<3) /* master clock frequency at X'tal mode */
-#define AK4117_XCKS0 (1<<2)
-#define AK4117_XCKS_128fs (0)
-#define AK4117_XCKS_256fs AK4117_XCKS0
-#define AK4117_XCKS_512fs AK4117_XCKS1
-#define AK4117_XCKS_1024fs (AK4117_XCKS1|AK4117_XCKS0)
-#define AK4117_CM1 (1<<1) /* MCKO operation mode select */
-#define AK4117_CM0 (1<<0)
-#define AK4117_CM_PLL (0) /* use RX input as master clock */
-#define AK4117_CM_XTAL (AK4117_CM0) /* use X'tal as master clock */
-#define AK4117_CM_PLL_XTAL (AK4117_CM1) /* use Rx input but X'tal when PLL loses lock */
-#define AK4117_CM_MONITOR (AK4117_CM0|AK4117_CM1) /* use X'tal as master clock, but use PLL for monitoring */
-
-/* AK4117_REG_IO */
-#define AK4117_IPS (1<<7) /* Input Recovery Data Select, 0 = RX0, 1 = RX1 */
-#define AK4117_UOUTE (1<<6) /* U-bit output enable to UOUT, 0 = disable, 1 = enable */
-#define AK4117_CS12 (1<<5) /* channel status select, 0 = channel1, 1 = channel2 */
-#define AK4117_EFH2 (1<<4) /* INT0 pin hold count select */
-#define AK4117_EFH1 (1<<3)
-#define AK4117_EFH_512LRCLK (0)
-#define AK4117_EFH_1024LRCLK (AK4117_EFH1)
-#define AK4117_EFH_2048LRCLK (AK4117_EFH2)
-#define AK4117_EFH_4096LRCLK (AK4117_EFH1|AK4117_EFH2)
-#define AK4117_DIF2 (1<<2) /* audio data format control */
-#define AK4117_DIF1 (1<<1)
-#define AK4117_DIF0 (1<<0)
-#define AK4117_DIF_16R (0) /* STDO: 16-bit, right justified */
-#define AK4117_DIF_18R (AK4117_DIF0) /* STDO: 18-bit, right justified */
-#define AK4117_DIF_20R (AK4117_DIF1) /* STDO: 20-bit, right justified */
-#define AK4117_DIF_24R (AK4117_DIF1|AK4117_DIF0) /* STDO: 24-bit, right justified */
-#define AK4117_DIF_24L (AK4117_DIF2) /* STDO: 24-bit, left justified */
-#define AK4117_DIF_24I2S (AK4117_DIF2|AK4117_DIF0) /* STDO: I2S */
-
-/* AK4117_REG_INT0_MASK & AK4117_REG_INT1_MASK */
-#define AK4117_MULK (1<<7) /* mask enable for UNLOCK bit */
-#define AK4117_MPAR (1<<6) /* mask enable for PAR bit */
-#define AK4117_MAUTO (1<<5) /* mask enable for AUTO bit */
-#define AK4117_MV (1<<4) /* mask enable for V bit */
-#define AK4117_MAUD (1<<3) /* mask enable for AUDION bit */
-#define AK4117_MSTC (1<<2) /* mask enable for STC bit */
-#define AK4117_MCIT (1<<1) /* mask enable for CINT bit */
-#define AK4117_MQIT (1<<0) /* mask enable for QINT bit */
-
-/* AK4117_REG_RCS0 */
-#define AK4117_UNLCK (1<<7) /* PLL lock status, 0 = lock, 1 = unlock */
-#define AK4117_PAR (1<<6) /* parity error or biphase error status, 0 = no error, 1 = error */
-#define AK4117_AUTO (1<<5) /* Non-PCM or DTS stream auto detection, 0 = no detect, 1 = detect */
-#define AK4117_V (1<<4) /* Validity bit, 0 = valid, 1 = invalid */
-#define AK4117_AUDION (1<<3) /* audio bit output, 0 = audio, 1 = non-audio */
-#define AK4117_STC (1<<2) /* sampling frequency or Pre-emphasis change, 0 = no detect, 1 = detect */
-#define AK4117_CINT (1<<1) /* channel status buffer interrupt, 0 = no change, 1 = change */
-#define AK4117_QINT (1<<0) /* Q-subcode buffer interrupt, 0 = no change, 1 = changed */
-
-/* AK4117_REG_RCS1 */
-#define AK4117_DTSCD (1<<6) /* DTS-CD bit audio stream detect, 0 = no detect, 1 = detect */
-#define AK4117_NPCM (1<<5) /* Non-PCM bit stream detection, 0 = no detect, 1 = detect */
-#define AK4117_PEM (1<<4) /* Pre-emphasis detect, 0 = OFF, 1 = ON */
-#define AK4117_FS3 (1<<3) /* sampling frequency detection */
-#define AK4117_FS2 (1<<2)
-#define AK4117_FS1 (1<<1)
-#define AK4117_FS0 (1<<0)
-#define AK4117_FS_44100HZ (0)
-#define AK4117_FS_48000HZ (AK4117_FS1)
-#define AK4117_FS_32000HZ (AK4117_FS1|AK4117_FS0)
-#define AK4117_FS_88200HZ (AK4117_FS3)
-#define AK4117_FS_96000HZ (AK4117_FS3|AK4117_FS1)
-#define AK4117_FS_176400HZ (AK4117_FS3|AK4117_FS2)
-#define AK4117_FS_192000HZ (AK4117_FS3|AK4117_FS2|AK4117_FS1)
-
-/* AK4117_REG_RCS2 */
-#define AK4117_CCRC (1<<1) /* CRC for channel status, 0 = no error, 1 = error */
-#define AK4117_QCRC (1<<0) /* CRC for Q-subcode, 0 = no error, 1 = error */
-
-/* flags for snd_ak4117_check_rate_and_errors() */
-#define AK4117_CHECK_NO_STAT (1<<0) /* no statistics */
-#define AK4117_CHECK_NO_RATE (1<<1) /* no rate check */
-
-#define AK4117_CONTROLS 13
-
-typedef void (ak4117_write_t)(void *private_data, unsigned char addr, unsigned char data);
-typedef unsigned char (ak4117_read_t)(void *private_data, unsigned char addr);
-
-struct ak4117 {
- struct snd_card *card;
- ak4117_write_t * write;
- ak4117_read_t * read;
- void * private_data;
- unsigned int init: 1;
- spinlock_t lock;
- unsigned char regmap[5];
- struct snd_kcontrol *kctls[AK4117_CONTROLS];
- struct snd_pcm_substream *substream;
- unsigned long parity_errors;
- unsigned long v_bit_errors;
- unsigned long qcrc_errors;
- unsigned long ccrc_errors;
- unsigned char rcs0;
- unsigned char rcs1;
- unsigned char rcs2;
- struct timer_list timer; /* statistic timer */
- void *change_callback_private;
- void (*change_callback)(struct ak4117 *ak4117, unsigned char c0, unsigned char c1);
-};
-
-int snd_ak4117_create(struct snd_card *card, ak4117_read_t *read, ak4117_write_t *write,
- const unsigned char pgm[5], void *private_data, struct ak4117 **r_ak4117);
-void snd_ak4117_reg_write(struct ak4117 *ak4117, unsigned char reg, unsigned char mask, unsigned char val);
-void snd_ak4117_reinit(struct ak4117 *ak4117);
-int snd_ak4117_build(struct ak4117 *ak4117, struct snd_pcm_substream *capture_substream);
-int snd_ak4117_external_rate(struct ak4117 *ak4117);
-int snd_ak4117_check_rate_and_errors(struct ak4117 *ak4117, unsigned int flags);
-
-#endif /* __SOUND_AK4117_H */
-
diff --git a/ANDROID_3.4.5/include/sound/ak4531_codec.h b/ANDROID_3.4.5/include/sound/ak4531_codec.h
deleted file mode 100644
index 575296cf..00000000
--- a/ANDROID_3.4.5/include/sound/ak4531_codec.h
+++ /dev/null
@@ -1,85 +0,0 @@
-#ifndef __SOUND_AK4531_CODEC_H
-#define __SOUND_AK4531_CODEC_H
-
-/*
- * Copyright (c) by Jaroslav Kysela <perex@perex.cz>
- * Universal interface for Audio Codec '97
- *
- * For more details look to AC '97 component specification revision 2.1
- * by Intel Corporation (http://developer.intel.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 "info.h"
-#include "control.h"
-
-/*
- * ASAHI KASEI - AK4531 codec
- * - not really AC'97 codec, but it uses very similar interface as AC'97
- */
-
-/*
- * AK4531 codec registers
- */
-
-#define AK4531_LMASTER 0x00 /* master volume left */
-#define AK4531_RMASTER 0x01 /* master volume right */
-#define AK4531_LVOICE 0x02 /* channel volume left */
-#define AK4531_RVOICE 0x03 /* channel volume right */
-#define AK4531_LFM 0x04 /* FM volume left */
-#define AK4531_RFM 0x05 /* FM volume right */
-#define AK4531_LCD 0x06 /* CD volume left */
-#define AK4531_RCD 0x07 /* CD volume right */
-#define AK4531_LLINE 0x08 /* LINE volume left */
-#define AK4531_RLINE 0x09 /* LINE volume right */
-#define AK4531_LAUXA 0x0a /* AUXA volume left */
-#define AK4531_RAUXA 0x0b /* AUXA volume right */
-#define AK4531_MONO1 0x0c /* MONO1 volume left */
-#define AK4531_MONO2 0x0d /* MONO1 volume right */
-#define AK4531_MIC 0x0e /* MIC volume */
-#define AK4531_MONO_OUT 0x0f /* Mono-out volume */
-#define AK4531_OUT_SW1 0x10 /* Output mixer switch 1 */
-#define AK4531_OUT_SW2 0x11 /* Output mixer switch 2 */
-#define AK4531_LIN_SW1 0x12 /* Input left mixer switch 1 */
-#define AK4531_RIN_SW1 0x13 /* Input right mixer switch 1 */
-#define AK4531_LIN_SW2 0x14 /* Input left mixer switch 2 */
-#define AK4531_RIN_SW2 0x15 /* Input right mixer switch 2 */
-#define AK4531_RESET 0x16 /* Reset & power down */
-#define AK4531_CLOCK 0x17 /* Clock select */
-#define AK4531_AD_IN 0x18 /* AD input select */
-#define AK4531_MIC_GAIN 0x19 /* MIC amplified gain */
-
-struct snd_ak4531 {
- void (*write) (struct snd_ak4531 *ak4531, unsigned short reg,
- unsigned short val);
- void *private_data;
- void (*private_free) (struct snd_ak4531 *ak4531);
- /* --- */
- unsigned char regs[0x20];
- struct mutex reg_mutex;
-};
-
-int snd_ak4531_mixer(struct snd_card *card, struct snd_ak4531 *_ak4531,
- struct snd_ak4531 **rak4531);
-
-#ifdef CONFIG_PM
-void snd_ak4531_suspend(struct snd_ak4531 *ak4531);
-void snd_ak4531_resume(struct snd_ak4531 *ak4531);
-#endif
-
-#endif /* __SOUND_AK4531_CODEC_H */
diff --git a/ANDROID_3.4.5/include/sound/ak4641.h b/ANDROID_3.4.5/include/sound/ak4641.h
deleted file mode 100644
index 96d1991c..00000000
--- a/ANDROID_3.4.5/include/sound/ak4641.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * AK4641 ALSA SoC Codec driver
- *
- * Copyright 2009 Philipp Zabel
- *
- * 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.
- */
-
-#ifndef __AK4641_H
-#define __AK4641_H
-
-/**
- * struct ak4641_platform_data - platform specific AK4641 configuration
- * @gpio_power: GPIO to control external power to AK4641
- * @gpio_npdn: GPIO connected to AK4641 nPDN pin
- *
- * Both GPIO parameters are optional.
- */
-struct ak4641_platform_data {
- int gpio_power;
- int gpio_npdn;
-};
-
-#endif /* __AK4641_H */
diff --git a/ANDROID_3.4.5/include/sound/ak4xxx-adda.h b/ANDROID_3.4.5/include/sound/ak4xxx-adda.h
deleted file mode 100644
index 030b87c2..00000000
--- a/ANDROID_3.4.5/include/sound/ak4xxx-adda.h
+++ /dev/null
@@ -1,99 +0,0 @@
-#ifndef __SOUND_AK4XXX_ADDA_H
-#define __SOUND_AK4XXX_ADDA_H
-
-/*
- * ALSA driver for AK4524 / AK4528 / AK4529 / AK4355 / AK4381
- * AD and DA converters
- *
- * Copyright (c) 2000 Jaroslav Kysela <perex@perex.cz>
- *
- * 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
- *
- */
-
-#ifndef AK4XXX_MAX_CHIPS
-#define AK4XXX_MAX_CHIPS 4
-#endif
-
-struct snd_akm4xxx;
-
-struct snd_ak4xxx_ops {
- void (*lock)(struct snd_akm4xxx *ak, int chip);
- void (*unlock)(struct snd_akm4xxx *ak, int chip);
- void (*write)(struct snd_akm4xxx *ak, int chip, unsigned char reg,
- unsigned char val);
- void (*set_rate_val)(struct snd_akm4xxx *ak, unsigned int rate);
-};
-
-#define AK4XXX_IMAGE_SIZE (AK4XXX_MAX_CHIPS * 16) /* 64 bytes */
-
-/* DAC label and channels */
-struct snd_akm4xxx_dac_channel {
- char *name; /* mixer volume name */
- unsigned int num_channels;
- char *switch_name; /* mixer switch*/
-};
-
-/* ADC labels and channels */
-struct snd_akm4xxx_adc_channel {
- char *name; /* capture gain volume label */
- char *switch_name; /* capture switch */
- unsigned int num_channels;
- char *selector_name; /* capture source select label */
- const char **input_names; /* capture source names (NULL terminated) */
-};
-
-struct snd_akm4xxx {
- struct snd_card *card;
- unsigned int num_adcs; /* AK4524 or AK4528 ADCs */
- unsigned int num_dacs; /* AK4524 or AK4528 DACs */
- unsigned char images[AK4XXX_IMAGE_SIZE]; /* saved register image */
- unsigned char volumes[AK4XXX_IMAGE_SIZE]; /* saved volume values */
- unsigned long private_value[AK4XXX_MAX_CHIPS]; /* helper for driver */
- void *private_data[AK4XXX_MAX_CHIPS]; /* helper for driver */
- /* template should fill the following fields */
- unsigned int idx_offset; /* control index offset */
- enum {
- SND_AK4524, SND_AK4528, SND_AK4529,
- SND_AK4355, SND_AK4358, SND_AK4381,
- SND_AK5365, SND_AK4620,
- } type;
-
- /* (array) information of combined codecs */
- const struct snd_akm4xxx_dac_channel *dac_info;
- const struct snd_akm4xxx_adc_channel *adc_info;
-
- struct snd_ak4xxx_ops ops;
- unsigned int num_chips;
- unsigned int total_regs;
- const char *name;
-};
-
-void snd_akm4xxx_write(struct snd_akm4xxx *ak, int chip, unsigned char reg,
- unsigned char val);
-void snd_akm4xxx_reset(struct snd_akm4xxx *ak, int state);
-void snd_akm4xxx_init(struct snd_akm4xxx *ak);
-int snd_akm4xxx_build_controls(struct snd_akm4xxx *ak);
-
-#define snd_akm4xxx_get(ak,chip,reg) \
- (ak)->images[(chip) * 16 + (reg)]
-#define snd_akm4xxx_set(ak,chip,reg,val) \
- ((ak)->images[(chip) * 16 + (reg)] = (val))
-#define snd_akm4xxx_get_vol(ak,chip,reg) \
- (ak)->volumes[(chip) * 16 + (reg)]
-#define snd_akm4xxx_set_vol(ak,chip,reg,val) \
- ((ak)->volumes[(chip) * 16 + (reg)] = (val))
-
-#endif /* __SOUND_AK4XXX_ADDA_H */
diff --git a/ANDROID_3.4.5/include/sound/alc5623.h b/ANDROID_3.4.5/include/sound/alc5623.h
deleted file mode 100644
index 422c97d4..00000000
--- a/ANDROID_3.4.5/include/sound/alc5623.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef _INCLUDE_SOUND_ALC5623_H
-#define _INCLUDE_SOUND_ALC5623_H
-struct alc5623_platform_data {
- /* configure : */
- /* Lineout/Speaker Amps Vmid ratio control */
- /* enable/disable adc/dac high pass filters */
- unsigned int add_ctrl;
- /* configure : */
- /* output to enable when jack is low */
- /* output to enable when jack is high */
- /* jack detect (gpio/nc/jack detect [12] */
- unsigned int jack_det_ctrl;
-};
-#endif
-
diff --git a/ANDROID_3.4.5/include/sound/asequencer.h b/ANDROID_3.4.5/include/sound/asequencer.h
deleted file mode 100644
index 1505e6d5..00000000
--- a/ANDROID_3.4.5/include/sound/asequencer.h
+++ /dev/null
@@ -1,678 +0,0 @@
-/*
- * Main header file for the ALSA sequencer
- * Copyright (c) 1998-1999 by Frank van de Pol <fvdpol@coil.demon.nl>
- * (c) 1998-1999 by Jaroslav Kysela <perex@perex.cz>
- *
- *
- * 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
- *
- */
-#ifndef __SOUND_ASEQUENCER_H
-#define __SOUND_ASEQUENCER_H
-
-#ifdef __KERNEL__
-#include <linux/ioctl.h>
-#include <sound/asound.h>
-#endif
-
-/** version of the sequencer */
-#define SNDRV_SEQ_VERSION SNDRV_PROTOCOL_VERSION (1, 0, 1)
-
-/**
- * definition of sequencer event types
- */
-
-/** system messages
- * event data type = #snd_seq_result
- */
-#define SNDRV_SEQ_EVENT_SYSTEM 0
-#define SNDRV_SEQ_EVENT_RESULT 1
-
-/** note messages (channel specific)
- * event data type = #snd_seq_ev_note
- */
-#define SNDRV_SEQ_EVENT_NOTE 5
-#define SNDRV_SEQ_EVENT_NOTEON 6
-#define SNDRV_SEQ_EVENT_NOTEOFF 7
-#define SNDRV_SEQ_EVENT_KEYPRESS 8
-
-/** control messages (channel specific)
- * event data type = #snd_seq_ev_ctrl
- */
-#define SNDRV_SEQ_EVENT_CONTROLLER 10
-#define SNDRV_SEQ_EVENT_PGMCHANGE 11
-#define SNDRV_SEQ_EVENT_CHANPRESS 12
-#define SNDRV_SEQ_EVENT_PITCHBEND 13 /**< from -8192 to 8191 */
-#define SNDRV_SEQ_EVENT_CONTROL14 14 /**< 14 bit controller value */
-#define SNDRV_SEQ_EVENT_NONREGPARAM 15 /**< 14 bit NRPN address + 14 bit unsigned value */
-#define SNDRV_SEQ_EVENT_REGPARAM 16 /**< 14 bit RPN address + 14 bit unsigned value */
-
-/** synchronisation messages
- * event data type = #snd_seq_ev_ctrl
- */
-#define SNDRV_SEQ_EVENT_SONGPOS 20 /* Song Position Pointer with LSB and MSB values */
-#define SNDRV_SEQ_EVENT_SONGSEL 21 /* Song Select with song ID number */
-#define SNDRV_SEQ_EVENT_QFRAME 22 /* midi time code quarter frame */
-#define SNDRV_SEQ_EVENT_TIMESIGN 23 /* SMF Time Signature event */
-#define SNDRV_SEQ_EVENT_KEYSIGN 24 /* SMF Key Signature event */
-
-/** timer messages
- * event data type = snd_seq_ev_queue_control
- */
-#define SNDRV_SEQ_EVENT_START 30 /* midi Real Time Start message */
-#define SNDRV_SEQ_EVENT_CONTINUE 31 /* midi Real Time Continue message */
-#define SNDRV_SEQ_EVENT_STOP 32 /* midi Real Time Stop message */
-#define SNDRV_SEQ_EVENT_SETPOS_TICK 33 /* set tick queue position */
-#define SNDRV_SEQ_EVENT_SETPOS_TIME 34 /* set realtime queue position */
-#define SNDRV_SEQ_EVENT_TEMPO 35 /* (SMF) Tempo event */
-#define SNDRV_SEQ_EVENT_CLOCK 36 /* midi Real Time Clock message */
-#define SNDRV_SEQ_EVENT_TICK 37 /* midi Real Time Tick message */
-#define SNDRV_SEQ_EVENT_QUEUE_SKEW 38 /* skew queue tempo */
-
-/** others
- * event data type = none
- */
-#define SNDRV_SEQ_EVENT_TUNE_REQUEST 40 /* tune request */
-#define SNDRV_SEQ_EVENT_RESET 41 /* reset to power-on state */
-#define SNDRV_SEQ_EVENT_SENSING 42 /* "active sensing" event */
-
-/** echo back, kernel private messages
- * event data type = any type
- */
-#define SNDRV_SEQ_EVENT_ECHO 50 /* echo event */
-#define SNDRV_SEQ_EVENT_OSS 51 /* OSS raw event */
-
-/** system status messages (broadcast for subscribers)
- * event data type = snd_seq_addr
- */
-#define SNDRV_SEQ_EVENT_CLIENT_START 60 /* new client has connected */
-#define SNDRV_SEQ_EVENT_CLIENT_EXIT 61 /* client has left the system */
-#define SNDRV_SEQ_EVENT_CLIENT_CHANGE 62 /* client status/info has changed */
-#define SNDRV_SEQ_EVENT_PORT_START 63 /* new port was created */
-#define SNDRV_SEQ_EVENT_PORT_EXIT 64 /* port was deleted from system */
-#define SNDRV_SEQ_EVENT_PORT_CHANGE 65 /* port status/info has changed */
-
-/** port connection changes
- * event data type = snd_seq_connect
- */
-#define SNDRV_SEQ_EVENT_PORT_SUBSCRIBED 66 /* ports connected */
-#define SNDRV_SEQ_EVENT_PORT_UNSUBSCRIBED 67 /* ports disconnected */
-
-/* 70-89: synthesizer events - obsoleted */
-
-/** user-defined events with fixed length
- * event data type = any
- */
-#define SNDRV_SEQ_EVENT_USR0 90
-#define SNDRV_SEQ_EVENT_USR1 91
-#define SNDRV_SEQ_EVENT_USR2 92
-#define SNDRV_SEQ_EVENT_USR3 93
-#define SNDRV_SEQ_EVENT_USR4 94
-#define SNDRV_SEQ_EVENT_USR5 95
-#define SNDRV_SEQ_EVENT_USR6 96
-#define SNDRV_SEQ_EVENT_USR7 97
-#define SNDRV_SEQ_EVENT_USR8 98
-#define SNDRV_SEQ_EVENT_USR9 99
-
-/* 100-118: instrument layer - obsoleted */
-/* 119-129: reserved */
-
-/* 130-139: variable length events
- * event data type = snd_seq_ev_ext
- * (SNDRV_SEQ_EVENT_LENGTH_VARIABLE must be set)
- */
-#define SNDRV_SEQ_EVENT_SYSEX 130 /* system exclusive data (variable length) */
-#define SNDRV_SEQ_EVENT_BOUNCE 131 /* error event */
-/* 132-134: reserved */
-#define SNDRV_SEQ_EVENT_USR_VAR0 135
-#define SNDRV_SEQ_EVENT_USR_VAR1 136
-#define SNDRV_SEQ_EVENT_USR_VAR2 137
-#define SNDRV_SEQ_EVENT_USR_VAR3 138
-#define SNDRV_SEQ_EVENT_USR_VAR4 139
-
-/* 150-151: kernel events with quote - DO NOT use in user clients */
-#define SNDRV_SEQ_EVENT_KERNEL_ERROR 150
-#define SNDRV_SEQ_EVENT_KERNEL_QUOTE 151 /* obsolete */
-
-/* 152-191: reserved */
-
-/* 192-254: hardware specific events */
-
-/* 255: special event */
-#define SNDRV_SEQ_EVENT_NONE 255
-
-
-typedef unsigned char snd_seq_event_type_t;
-
-/** event address */
-struct snd_seq_addr {
- unsigned char client; /**< Client number: 0..255, 255 = broadcast to all clients */
- unsigned char port; /**< Port within client: 0..255, 255 = broadcast to all ports */
-};
-
-/** port connection */
-struct snd_seq_connect {
- struct snd_seq_addr sender;
- struct snd_seq_addr dest;
-};
-
-
-#define SNDRV_SEQ_ADDRESS_UNKNOWN 253 /* unknown source */
-#define SNDRV_SEQ_ADDRESS_SUBSCRIBERS 254 /* send event to all subscribed ports */
-#define SNDRV_SEQ_ADDRESS_BROADCAST 255 /* send event to all queues/clients/ports/channels */
-#define SNDRV_SEQ_QUEUE_DIRECT 253 /* direct dispatch */
-
- /* event mode flag - NOTE: only 8 bits available! */
-#define SNDRV_SEQ_TIME_STAMP_TICK (0<<0) /* timestamp in clock ticks */
-#define SNDRV_SEQ_TIME_STAMP_REAL (1<<0) /* timestamp in real time */
-#define SNDRV_SEQ_TIME_STAMP_MASK (1<<0)
-
-#define SNDRV_SEQ_TIME_MODE_ABS (0<<1) /* absolute timestamp */
-#define SNDRV_SEQ_TIME_MODE_REL (1<<1) /* relative to current time */
-#define SNDRV_SEQ_TIME_MODE_MASK (1<<1)
-
-#define SNDRV_SEQ_EVENT_LENGTH_FIXED (0<<2) /* fixed event size */
-#define SNDRV_SEQ_EVENT_LENGTH_VARIABLE (1<<2) /* variable event size */
-#define SNDRV_SEQ_EVENT_LENGTH_VARUSR (2<<2) /* variable event size - user memory space */
-#define SNDRV_SEQ_EVENT_LENGTH_MASK (3<<2)
-
-#define SNDRV_SEQ_PRIORITY_NORMAL (0<<4) /* normal priority */
-#define SNDRV_SEQ_PRIORITY_HIGH (1<<4) /* event should be processed before others */
-#define SNDRV_SEQ_PRIORITY_MASK (1<<4)
-
-
- /* note event */
-struct snd_seq_ev_note {
- unsigned char channel;
- unsigned char note;
- unsigned char velocity;
- unsigned char off_velocity; /* only for SNDRV_SEQ_EVENT_NOTE */
- unsigned int duration; /* only for SNDRV_SEQ_EVENT_NOTE */
-};
-
- /* controller event */
-struct snd_seq_ev_ctrl {
- unsigned char channel;
- unsigned char unused1, unused2, unused3; /* pad */
- unsigned int param;
- signed int value;
-};
-
- /* generic set of bytes (12x8 bit) */
-struct snd_seq_ev_raw8 {
- unsigned char d[12]; /* 8 bit value */
-};
-
- /* generic set of integers (3x32 bit) */
-struct snd_seq_ev_raw32 {
- unsigned int d[3]; /* 32 bit value */
-};
-
- /* external stored data */
-struct snd_seq_ev_ext {
- unsigned int len; /* length of data */
- void *ptr; /* pointer to data (note: maybe 64-bit) */
-} __attribute__((packed));
-
-struct snd_seq_result {
- int event; /* processed event type */
- int result;
-};
-
-
-struct snd_seq_real_time {
- unsigned int tv_sec; /* seconds */
- unsigned int tv_nsec; /* nanoseconds */
-};
-
-typedef unsigned int snd_seq_tick_time_t; /* midi ticks */
-
-union snd_seq_timestamp {
- snd_seq_tick_time_t tick;
- struct snd_seq_real_time time;
-};
-
-struct snd_seq_queue_skew {
- unsigned int value;
- unsigned int base;
-};
-
- /* queue timer control */
-struct snd_seq_ev_queue_control {
- unsigned char queue; /* affected queue */
- unsigned char pad[3]; /* reserved */
- union {
- signed int value; /* affected value (e.g. tempo) */
- union snd_seq_timestamp time; /* time */
- unsigned int position; /* sync position */
- struct snd_seq_queue_skew skew;
- unsigned int d32[2];
- unsigned char d8[8];
- } param;
-};
-
- /* quoted event - inside the kernel only */
-struct snd_seq_ev_quote {
- struct snd_seq_addr origin; /* original sender */
- unsigned short value; /* optional data */
- struct snd_seq_event *event; /* quoted event */
-} __attribute__((packed));
-
-
- /* sequencer event */
-struct snd_seq_event {
- snd_seq_event_type_t type; /* event type */
- unsigned char flags; /* event flags */
- char tag;
-
- unsigned char queue; /* schedule queue */
- union snd_seq_timestamp time; /* schedule time */
-
-
- struct snd_seq_addr source; /* source address */
- struct snd_seq_addr dest; /* destination address */
-
- union { /* event data... */
- struct snd_seq_ev_note note;
- struct snd_seq_ev_ctrl control;
- struct snd_seq_ev_raw8 raw8;
- struct snd_seq_ev_raw32 raw32;
- struct snd_seq_ev_ext ext;
- struct snd_seq_ev_queue_control queue;
- union snd_seq_timestamp time;
- struct snd_seq_addr addr;
- struct snd_seq_connect connect;
- struct snd_seq_result result;
- struct snd_seq_ev_quote quote;
- } data;
-};
-
-
-/*
- * bounce event - stored as variable size data
- */
-struct snd_seq_event_bounce {
- int err;
- struct snd_seq_event event;
- /* external data follows here. */
-};
-
-#ifdef __KERNEL__
-
-/* helper macro */
-#define snd_seq_event_bounce_ext_data(ev) ((void*)((char *)(ev)->data.ext.ptr + sizeof(struct snd_seq_event_bounce)))
-
-/*
- * type check macros
- */
-/* result events: 0-4 */
-#define snd_seq_ev_is_result_type(ev) ((ev)->type < 5)
-/* channel specific events: 5-19 */
-#define snd_seq_ev_is_channel_type(ev) ((ev)->type >= 5 && (ev)->type < 20)
-/* note events: 5-9 */
-#define snd_seq_ev_is_note_type(ev) ((ev)->type >= 5 && (ev)->type < 10)
-/* control events: 10-19 */
-#define snd_seq_ev_is_control_type(ev) ((ev)->type >= 10 && (ev)->type < 20)
-/* queue control events: 30-39 */
-#define snd_seq_ev_is_queue_type(ev) ((ev)->type >= 30 && (ev)->type < 40)
-/* system status messages */
-#define snd_seq_ev_is_message_type(ev) ((ev)->type >= 60 && (ev)->type < 69)
-/* sample messages */
-#define snd_seq_ev_is_sample_type(ev) ((ev)->type >= 70 && (ev)->type < 79)
-/* user-defined messages */
-#define snd_seq_ev_is_user_type(ev) ((ev)->type >= 90 && (ev)->type < 99)
-/* fixed length events: 0-99 */
-#define snd_seq_ev_is_fixed_type(ev) ((ev)->type < 100)
-/* variable length events: 130-139 */
-#define snd_seq_ev_is_variable_type(ev) ((ev)->type >= 130 && (ev)->type < 140)
-/* reserved for kernel */
-#define snd_seq_ev_is_reserved(ev) ((ev)->type >= 150)
-
-/* direct dispatched events */
-#define snd_seq_ev_is_direct(ev) ((ev)->queue == SNDRV_SEQ_QUEUE_DIRECT)
-
-/*
- * macros to check event flags
- */
-/* prior events */
-#define snd_seq_ev_is_prior(ev) (((ev)->flags & SNDRV_SEQ_PRIORITY_MASK) == SNDRV_SEQ_PRIORITY_HIGH)
-
-/* event length type */
-#define snd_seq_ev_length_type(ev) ((ev)->flags & SNDRV_SEQ_EVENT_LENGTH_MASK)
-#define snd_seq_ev_is_fixed(ev) (snd_seq_ev_length_type(ev) == SNDRV_SEQ_EVENT_LENGTH_FIXED)
-#define snd_seq_ev_is_variable(ev) (snd_seq_ev_length_type(ev) == SNDRV_SEQ_EVENT_LENGTH_VARIABLE)
-#define snd_seq_ev_is_varusr(ev) (snd_seq_ev_length_type(ev) == SNDRV_SEQ_EVENT_LENGTH_VARUSR)
-
-/* time-stamp type */
-#define snd_seq_ev_timestamp_type(ev) ((ev)->flags & SNDRV_SEQ_TIME_STAMP_MASK)
-#define snd_seq_ev_is_tick(ev) (snd_seq_ev_timestamp_type(ev) == SNDRV_SEQ_TIME_STAMP_TICK)
-#define snd_seq_ev_is_real(ev) (snd_seq_ev_timestamp_type(ev) == SNDRV_SEQ_TIME_STAMP_REAL)
-
-/* time-mode type */
-#define snd_seq_ev_timemode_type(ev) ((ev)->flags & SNDRV_SEQ_TIME_MODE_MASK)
-#define snd_seq_ev_is_abstime(ev) (snd_seq_ev_timemode_type(ev) == SNDRV_SEQ_TIME_MODE_ABS)
-#define snd_seq_ev_is_reltime(ev) (snd_seq_ev_timemode_type(ev) == SNDRV_SEQ_TIME_MODE_REL)
-
-/* queue sync port */
-#define snd_seq_queue_sync_port(q) ((q) + 16)
-
-#endif /* __KERNEL__ */
-
- /* system information */
-struct snd_seq_system_info {
- int queues; /* maximum queues count */
- int clients; /* maximum clients count */
- int ports; /* maximum ports per client */
- int channels; /* maximum channels per port */
- int cur_clients; /* current clients */
- int cur_queues; /* current queues */
- char reserved[24];
-};
-
-
- /* system running information */
-struct snd_seq_running_info {
- unsigned char client; /* client id */
- unsigned char big_endian; /* 1 = big-endian */
- unsigned char cpu_mode; /* 4 = 32bit, 8 = 64bit */
- unsigned char pad; /* reserved */
- unsigned char reserved[12];
-};
-
-
- /* known client numbers */
-#define SNDRV_SEQ_CLIENT_SYSTEM 0
- /* internal client numbers */
-#define SNDRV_SEQ_CLIENT_DUMMY 14 /* midi through */
-#define SNDRV_SEQ_CLIENT_OSS 15 /* oss sequencer emulator */
-
-
- /* client types */
-typedef int __bitwise snd_seq_client_type_t;
-#define NO_CLIENT ((__force snd_seq_client_type_t) 0)
-#define USER_CLIENT ((__force snd_seq_client_type_t) 1)
-#define KERNEL_CLIENT ((__force snd_seq_client_type_t) 2)
-
- /* event filter flags */
-#define SNDRV_SEQ_FILTER_BROADCAST (1<<0) /* accept broadcast messages */
-#define SNDRV_SEQ_FILTER_MULTICAST (1<<1) /* accept multicast messages */
-#define SNDRV_SEQ_FILTER_BOUNCE (1<<2) /* accept bounce event in error */
-#define SNDRV_SEQ_FILTER_USE_EVENT (1<<31) /* use event filter */
-
-struct snd_seq_client_info {
- int client; /* client number to inquire */
- snd_seq_client_type_t type; /* client type */
- char name[64]; /* client name */
- unsigned int filter; /* filter flags */
- unsigned char multicast_filter[8]; /* multicast filter bitmap */
- unsigned char event_filter[32]; /* event filter bitmap */
- int num_ports; /* RO: number of ports */
- int event_lost; /* number of lost events */
- char reserved[64]; /* for future use */
-};
-
-
-/* client pool size */
-struct snd_seq_client_pool {
- int client; /* client number to inquire */
- int output_pool; /* outgoing (write) pool size */
- int input_pool; /* incoming (read) pool size */
- int output_room; /* minimum free pool size for select/blocking mode */
- int output_free; /* unused size */
- int input_free; /* unused size */
- char reserved[64];
-};
-
-
-/* Remove events by specified criteria */
-
-#define SNDRV_SEQ_REMOVE_INPUT (1<<0) /* Flush input queues */
-#define SNDRV_SEQ_REMOVE_OUTPUT (1<<1) /* Flush output queues */
-#define SNDRV_SEQ_REMOVE_DEST (1<<2) /* Restrict by destination q:client:port */
-#define SNDRV_SEQ_REMOVE_DEST_CHANNEL (1<<3) /* Restrict by channel */
-#define SNDRV_SEQ_REMOVE_TIME_BEFORE (1<<4) /* Restrict to before time */
-#define SNDRV_SEQ_REMOVE_TIME_AFTER (1<<5) /* Restrict to time or after */
-#define SNDRV_SEQ_REMOVE_TIME_TICK (1<<6) /* Time is in ticks */
-#define SNDRV_SEQ_REMOVE_EVENT_TYPE (1<<7) /* Restrict to event type */
-#define SNDRV_SEQ_REMOVE_IGNORE_OFF (1<<8) /* Do not flush off events */
-#define SNDRV_SEQ_REMOVE_TAG_MATCH (1<<9) /* Restrict to events with given tag */
-
-struct snd_seq_remove_events {
- unsigned int remove_mode; /* Flags that determine what gets removed */
-
- union snd_seq_timestamp time;
-
- unsigned char queue; /* Queue for REMOVE_DEST */
- struct snd_seq_addr dest; /* Address for REMOVE_DEST */
- unsigned char channel; /* Channel for REMOVE_DEST */
-
- int type; /* For REMOVE_EVENT_TYPE */
- char tag; /* Tag for REMOVE_TAG */
-
- int reserved[10]; /* To allow for future binary compatibility */
-
-};
-
-
- /* known port numbers */
-#define SNDRV_SEQ_PORT_SYSTEM_TIMER 0
-#define SNDRV_SEQ_PORT_SYSTEM_ANNOUNCE 1
-
- /* port capabilities (32 bits) */
-#define SNDRV_SEQ_PORT_CAP_READ (1<<0) /* readable from this port */
-#define SNDRV_SEQ_PORT_CAP_WRITE (1<<1) /* writable to this port */
-
-#define SNDRV_SEQ_PORT_CAP_SYNC_READ (1<<2)
-#define SNDRV_SEQ_PORT_CAP_SYNC_WRITE (1<<3)
-
-#define SNDRV_SEQ_PORT_CAP_DUPLEX (1<<4)
-
-#define SNDRV_SEQ_PORT_CAP_SUBS_READ (1<<5) /* allow read subscription */
-#define SNDRV_SEQ_PORT_CAP_SUBS_WRITE (1<<6) /* allow write subscription */
-#define SNDRV_SEQ_PORT_CAP_NO_EXPORT (1<<7) /* routing not allowed */
-
- /* port type */
-#define SNDRV_SEQ_PORT_TYPE_SPECIFIC (1<<0) /* hardware specific */
-#define SNDRV_SEQ_PORT_TYPE_MIDI_GENERIC (1<<1) /* generic MIDI device */
-#define SNDRV_SEQ_PORT_TYPE_MIDI_GM (1<<2) /* General MIDI compatible device */
-#define SNDRV_SEQ_PORT_TYPE_MIDI_GS (1<<3) /* GS compatible device */
-#define SNDRV_SEQ_PORT_TYPE_MIDI_XG (1<<4) /* XG compatible device */
-#define SNDRV_SEQ_PORT_TYPE_MIDI_MT32 (1<<5) /* MT-32 compatible device */
-#define SNDRV_SEQ_PORT_TYPE_MIDI_GM2 (1<<6) /* General MIDI 2 compatible device */
-
-/* other standards...*/
-#define SNDRV_SEQ_PORT_TYPE_SYNTH (1<<10) /* Synth device (no MIDI compatible - direct wavetable) */
-#define SNDRV_SEQ_PORT_TYPE_DIRECT_SAMPLE (1<<11) /* Sampling device (support sample download) */
-#define SNDRV_SEQ_PORT_TYPE_SAMPLE (1<<12) /* Sampling device (sample can be downloaded at any time) */
-/*...*/
-#define SNDRV_SEQ_PORT_TYPE_HARDWARE (1<<16) /* driver for a hardware device */
-#define SNDRV_SEQ_PORT_TYPE_SOFTWARE (1<<17) /* implemented in software */
-#define SNDRV_SEQ_PORT_TYPE_SYNTHESIZER (1<<18) /* generates sound */
-#define SNDRV_SEQ_PORT_TYPE_PORT (1<<19) /* connects to other device(s) */
-#define SNDRV_SEQ_PORT_TYPE_APPLICATION (1<<20) /* application (sequencer/editor) */
-
-/* misc. conditioning flags */
-#define SNDRV_SEQ_PORT_FLG_GIVEN_PORT (1<<0)
-#define SNDRV_SEQ_PORT_FLG_TIMESTAMP (1<<1)
-#define SNDRV_SEQ_PORT_FLG_TIME_REAL (1<<2)
-
-struct snd_seq_port_info {
- struct snd_seq_addr addr; /* client/port numbers */
- char name[64]; /* port name */
-
- unsigned int capability; /* port capability bits */
- unsigned int type; /* port type bits */
- int midi_channels; /* channels per MIDI port */
- int midi_voices; /* voices per MIDI port */
- int synth_voices; /* voices per SYNTH port */
-
- int read_use; /* R/O: subscribers for output (from this port) */
- int write_use; /* R/O: subscribers for input (to this port) */
-
- void *kernel; /* reserved for kernel use (must be NULL) */
- unsigned int flags; /* misc. conditioning */
- unsigned char time_queue; /* queue # for timestamping */
- char reserved[59]; /* for future use */
-};
-
-
-/* queue flags */
-#define SNDRV_SEQ_QUEUE_FLG_SYNC (1<<0) /* sync enabled */
-
-/* queue information */
-struct snd_seq_queue_info {
- int queue; /* queue id */
-
- /*
- * security settings, only owner of this queue can start/stop timer
- * etc. if the queue is locked for other clients
- */
- int owner; /* client id for owner of the queue */
- unsigned locked:1; /* timing queue locked for other queues */
- char name[64]; /* name of this queue */
- unsigned int flags; /* flags */
- char reserved[60]; /* for future use */
-
-};
-
-/* queue info/status */
-struct snd_seq_queue_status {
- int queue; /* queue id */
- int events; /* read-only - queue size */
- snd_seq_tick_time_t tick; /* current tick */
- struct snd_seq_real_time time; /* current time */
- int running; /* running state of queue */
- int flags; /* various flags */
- char reserved[64]; /* for the future */
-};
-
-
-/* queue tempo */
-struct snd_seq_queue_tempo {
- int queue; /* sequencer queue */
- unsigned int tempo; /* current tempo, us/tick */
- int ppq; /* time resolution, ticks/quarter */
- unsigned int skew_value; /* queue skew */
- unsigned int skew_base; /* queue skew base */
- char reserved[24]; /* for the future */
-};
-
-
-/* sequencer timer sources */
-#define SNDRV_SEQ_TIMER_ALSA 0 /* ALSA timer */
-#define SNDRV_SEQ_TIMER_MIDI_CLOCK 1 /* Midi Clock (CLOCK event) */
-#define SNDRV_SEQ_TIMER_MIDI_TICK 2 /* Midi Timer Tick (TICK event) */
-
-/* queue timer info */
-struct snd_seq_queue_timer {
- int queue; /* sequencer queue */
- int type; /* source timer type */
- union {
- struct {
- struct snd_timer_id id; /* ALSA's timer ID */
- unsigned int resolution; /* resolution in Hz */
- } alsa;
- } u;
- char reserved[64]; /* for the future use */
-};
-
-
-struct snd_seq_queue_client {
- int queue; /* sequencer queue */
- int client; /* sequencer client */
- int used; /* queue is used with this client
- (must be set for accepting events) */
- /* per client watermarks */
- char reserved[64]; /* for future use */
-};
-
-
-#define SNDRV_SEQ_PORT_SUBS_EXCLUSIVE (1<<0) /* exclusive connection */
-#define SNDRV_SEQ_PORT_SUBS_TIMESTAMP (1<<1)
-#define SNDRV_SEQ_PORT_SUBS_TIME_REAL (1<<2)
-
-struct snd_seq_port_subscribe {
- struct snd_seq_addr sender; /* sender address */
- struct snd_seq_addr dest; /* destination address */
- unsigned int voices; /* number of voices to be allocated (0 = don't care) */
- unsigned int flags; /* modes */
- unsigned char queue; /* input time-stamp queue (optional) */
- unsigned char pad[3]; /* reserved */
- char reserved[64];
-};
-
-/* type of query subscription */
-#define SNDRV_SEQ_QUERY_SUBS_READ 0
-#define SNDRV_SEQ_QUERY_SUBS_WRITE 1
-
-struct snd_seq_query_subs {
- struct snd_seq_addr root; /* client/port id to be searched */
- int type; /* READ or WRITE */
- int index; /* 0..N-1 */
- int num_subs; /* R/O: number of subscriptions on this port */
- struct snd_seq_addr addr; /* R/O: result */
- unsigned char queue; /* R/O: result */
- unsigned int flags; /* R/O: result */
- char reserved[64]; /* for future use */
-};
-
-
-/*
- * IOCTL commands
- */
-
-#define SNDRV_SEQ_IOCTL_PVERSION _IOR ('S', 0x00, int)
-#define SNDRV_SEQ_IOCTL_CLIENT_ID _IOR ('S', 0x01, int)
-#define SNDRV_SEQ_IOCTL_SYSTEM_INFO _IOWR('S', 0x02, struct snd_seq_system_info)
-#define SNDRV_SEQ_IOCTL_RUNNING_MODE _IOWR('S', 0x03, struct snd_seq_running_info)
-
-#define SNDRV_SEQ_IOCTL_GET_CLIENT_INFO _IOWR('S', 0x10, struct snd_seq_client_info)
-#define SNDRV_SEQ_IOCTL_SET_CLIENT_INFO _IOW ('S', 0x11, struct snd_seq_client_info)
-
-#define SNDRV_SEQ_IOCTL_CREATE_PORT _IOWR('S', 0x20, struct snd_seq_port_info)
-#define SNDRV_SEQ_IOCTL_DELETE_PORT _IOW ('S', 0x21, struct snd_seq_port_info)
-#define SNDRV_SEQ_IOCTL_GET_PORT_INFO _IOWR('S', 0x22, struct snd_seq_port_info)
-#define SNDRV_SEQ_IOCTL_SET_PORT_INFO _IOW ('S', 0x23, struct snd_seq_port_info)
-
-#define SNDRV_SEQ_IOCTL_SUBSCRIBE_PORT _IOW ('S', 0x30, struct snd_seq_port_subscribe)
-#define SNDRV_SEQ_IOCTL_UNSUBSCRIBE_PORT _IOW ('S', 0x31, struct snd_seq_port_subscribe)
-
-#define SNDRV_SEQ_IOCTL_CREATE_QUEUE _IOWR('S', 0x32, struct snd_seq_queue_info)
-#define SNDRV_SEQ_IOCTL_DELETE_QUEUE _IOW ('S', 0x33, struct snd_seq_queue_info)
-#define SNDRV_SEQ_IOCTL_GET_QUEUE_INFO _IOWR('S', 0x34, struct snd_seq_queue_info)
-#define SNDRV_SEQ_IOCTL_SET_QUEUE_INFO _IOWR('S', 0x35, struct snd_seq_queue_info)
-#define SNDRV_SEQ_IOCTL_GET_NAMED_QUEUE _IOWR('S', 0x36, struct snd_seq_queue_info)
-#define SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS _IOWR('S', 0x40, struct snd_seq_queue_status)
-#define SNDRV_SEQ_IOCTL_GET_QUEUE_TEMPO _IOWR('S', 0x41, struct snd_seq_queue_tempo)
-#define SNDRV_SEQ_IOCTL_SET_QUEUE_TEMPO _IOW ('S', 0x42, struct snd_seq_queue_tempo)
-#define SNDRV_SEQ_IOCTL_GET_QUEUE_OWNER _IOWR('S', 0x43, struct snd_seq_queue_owner)
-#define SNDRV_SEQ_IOCTL_SET_QUEUE_OWNER _IOW ('S', 0x44, struct snd_seq_queue_owner)
-#define SNDRV_SEQ_IOCTL_GET_QUEUE_TIMER _IOWR('S', 0x45, struct snd_seq_queue_timer)
-#define SNDRV_SEQ_IOCTL_SET_QUEUE_TIMER _IOW ('S', 0x46, struct snd_seq_queue_timer)
-/* XXX
-#define SNDRV_SEQ_IOCTL_GET_QUEUE_SYNC _IOWR('S', 0x53, struct snd_seq_queue_sync)
-#define SNDRV_SEQ_IOCTL_SET_QUEUE_SYNC _IOW ('S', 0x54, struct snd_seq_queue_sync)
-*/
-#define SNDRV_SEQ_IOCTL_GET_QUEUE_CLIENT _IOWR('S', 0x49, struct snd_seq_queue_client)
-#define SNDRV_SEQ_IOCTL_SET_QUEUE_CLIENT _IOW ('S', 0x4a, struct snd_seq_queue_client)
-#define SNDRV_SEQ_IOCTL_GET_CLIENT_POOL _IOWR('S', 0x4b, struct snd_seq_client_pool)
-#define SNDRV_SEQ_IOCTL_SET_CLIENT_POOL _IOW ('S', 0x4c, struct snd_seq_client_pool)
-#define SNDRV_SEQ_IOCTL_REMOVE_EVENTS _IOW ('S', 0x4e, struct snd_seq_remove_events)
-#define SNDRV_SEQ_IOCTL_QUERY_SUBS _IOWR('S', 0x4f, struct snd_seq_query_subs)
-#define SNDRV_SEQ_IOCTL_GET_SUBSCRIPTION _IOWR('S', 0x50, struct snd_seq_port_subscribe)
-#define SNDRV_SEQ_IOCTL_QUERY_NEXT_CLIENT _IOWR('S', 0x51, struct snd_seq_client_info)
-#define SNDRV_SEQ_IOCTL_QUERY_NEXT_PORT _IOWR('S', 0x52, struct snd_seq_port_info)
-
-#endif /* __SOUND_ASEQUENCER_H */
diff --git a/ANDROID_3.4.5/include/sound/asound.h b/ANDROID_3.4.5/include/sound/asound.h
deleted file mode 100644
index f80c7120..00000000
--- a/ANDROID_3.4.5/include/sound/asound.h
+++ /dev/null
@@ -1,921 +0,0 @@
-/*
- * Advanced Linux Sound Architecture - ALSA - Driver
- * Copyright (c) 1994-2003 by Jaroslav Kysela <perex@perex.cz>,
- * Abramo Bagnara <abramo@alsa-project.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
- *
- */
-
-#ifndef __SOUND_ASOUND_H
-#define __SOUND_ASOUND_H
-
-#include <linux/types.h>
-
-#ifdef __KERNEL__
-#include <linux/ioctl.h>
-#include <linux/time.h>
-#include <asm/byteorder.h>
-
-#ifdef __LITTLE_ENDIAN
-#define SNDRV_LITTLE_ENDIAN
-#else
-#ifdef __BIG_ENDIAN
-#define SNDRV_BIG_ENDIAN
-#else
-#error "Unsupported endian..."
-#endif
-#endif
-
-#endif /* __KERNEL__ **/
-
-/*
- * protocol version
- */
-
-#define SNDRV_PROTOCOL_VERSION(major, minor, subminor) (((major)<<16)|((minor)<<8)|(subminor))
-#define SNDRV_PROTOCOL_MAJOR(version) (((version)>>16)&0xffff)
-#define SNDRV_PROTOCOL_MINOR(version) (((version)>>8)&0xff)
-#define SNDRV_PROTOCOL_MICRO(version) ((version)&0xff)
-#define SNDRV_PROTOCOL_INCOMPATIBLE(kversion, uversion) \
- (SNDRV_PROTOCOL_MAJOR(kversion) != SNDRV_PROTOCOL_MAJOR(uversion) || \
- (SNDRV_PROTOCOL_MAJOR(kversion) == SNDRV_PROTOCOL_MAJOR(uversion) && \
- SNDRV_PROTOCOL_MINOR(kversion) != SNDRV_PROTOCOL_MINOR(uversion)))
-
-/****************************************************************************
- * *
- * Digital audio interface *
- * *
- ****************************************************************************/
-
-struct snd_aes_iec958 {
- unsigned char status[24]; /* AES/IEC958 channel status bits */
- unsigned char subcode[147]; /* AES/IEC958 subcode bits */
- unsigned char pad; /* nothing */
- unsigned char dig_subframe[4]; /* AES/IEC958 subframe bits */
-};
-
-/****************************************************************************
- * *
- * Section for driver hardware dependent interface - /dev/snd/hw? *
- * *
- ****************************************************************************/
-
-#define SNDRV_HWDEP_VERSION SNDRV_PROTOCOL_VERSION(1, 0, 1)
-
-enum {
- SNDRV_HWDEP_IFACE_OPL2 = 0,
- SNDRV_HWDEP_IFACE_OPL3,
- SNDRV_HWDEP_IFACE_OPL4,
- SNDRV_HWDEP_IFACE_SB16CSP, /* Creative Signal Processor */
- SNDRV_HWDEP_IFACE_EMU10K1, /* FX8010 processor in EMU10K1 chip */
- SNDRV_HWDEP_IFACE_YSS225, /* Yamaha FX processor */
- SNDRV_HWDEP_IFACE_ICS2115, /* Wavetable synth */
- SNDRV_HWDEP_IFACE_SSCAPE, /* Ensoniq SoundScape ISA card (MC68EC000) */
- SNDRV_HWDEP_IFACE_VX, /* Digigram VX cards */
- SNDRV_HWDEP_IFACE_MIXART, /* Digigram miXart cards */
- SNDRV_HWDEP_IFACE_USX2Y, /* Tascam US122, US224 & US428 usb */
- SNDRV_HWDEP_IFACE_EMUX_WAVETABLE, /* EmuX wavetable */
- SNDRV_HWDEP_IFACE_BLUETOOTH, /* Bluetooth audio */
- SNDRV_HWDEP_IFACE_USX2Y_PCM, /* Tascam US122, US224 & US428 rawusb pcm */
- SNDRV_HWDEP_IFACE_PCXHR, /* Digigram PCXHR */
- SNDRV_HWDEP_IFACE_SB_RC, /* SB Extigy/Audigy2NX remote control */
- SNDRV_HWDEP_IFACE_HDA, /* HD-audio */
- SNDRV_HWDEP_IFACE_USB_STREAM, /* direct access to usb stream */
- SNDRV_HWDEP_IFACE_WMT,
- /* Don't forget to change the following: */
- //SNDRV_HWDEP_IFACE_LAST = SNDRV_HWDEP_IFACE_USB_STREAM
- SNDRV_HWDEP_IFACE_LAST = SNDRV_HWDEP_IFACE_WMT
-};
-
-struct snd_hwdep_info {
- unsigned int device; /* WR: device number */
- int card; /* R: card number */
- unsigned char id[64]; /* ID (user selectable) */
- unsigned char name[80]; /* hwdep name */
- int iface; /* hwdep interface */
- unsigned char reserved[64]; /* reserved for future */
-};
-
-/* generic DSP loader */
-struct snd_hwdep_dsp_status {
- unsigned int version; /* R: driver-specific version */
- unsigned char id[32]; /* R: driver-specific ID string */
- unsigned int num_dsps; /* R: number of DSP images to transfer */
- unsigned int dsp_loaded; /* R: bit flags indicating the loaded DSPs */
- unsigned int chip_ready; /* R: 1 = initialization finished */
- unsigned char reserved[16]; /* reserved for future use */
-};
-
-struct snd_hwdep_dsp_image {
- unsigned int index; /* W: DSP index */
- unsigned char name[64]; /* W: ID (e.g. file name) */
- unsigned char __user *image; /* W: binary image */
- size_t length; /* W: size of image in bytes */
- unsigned long driver_data; /* W: driver-specific data */
-};
-
-#define SNDRV_HWDEP_IOCTL_PVERSION _IOR ('H', 0x00, int)
-#define SNDRV_HWDEP_IOCTL_INFO _IOR ('H', 0x01, struct snd_hwdep_info)
-#define SNDRV_HWDEP_IOCTL_DSP_STATUS _IOR('H', 0x02, struct snd_hwdep_dsp_status)
-#define SNDRV_HWDEP_IOCTL_DSP_LOAD _IOW('H', 0x03, struct snd_hwdep_dsp_image)
-
-/*****************************************************************************
- * *
- * Digital Audio (PCM) interface - /dev/snd/pcm?? *
- * *
- *****************************************************************************/
-
-#define SNDRV_PCM_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 10)
-
-typedef unsigned long snd_pcm_uframes_t;
-typedef signed long snd_pcm_sframes_t;
-
-enum {
- SNDRV_PCM_CLASS_GENERIC = 0, /* standard mono or stereo device */
- SNDRV_PCM_CLASS_MULTI, /* multichannel device */
- SNDRV_PCM_CLASS_MODEM, /* software modem class */
- SNDRV_PCM_CLASS_DIGITIZER, /* digitizer class */
- /* Don't forget to change the following: */
- SNDRV_PCM_CLASS_LAST = SNDRV_PCM_CLASS_DIGITIZER,
-};
-
-enum {
- SNDRV_PCM_SUBCLASS_GENERIC_MIX = 0, /* mono or stereo subdevices are mixed together */
- SNDRV_PCM_SUBCLASS_MULTI_MIX, /* multichannel subdevices are mixed together */
- /* Don't forget to change the following: */
- SNDRV_PCM_SUBCLASS_LAST = SNDRV_PCM_SUBCLASS_MULTI_MIX,
-};
-
-enum {
- SNDRV_PCM_STREAM_PLAYBACK = 0,
- SNDRV_PCM_STREAM_CAPTURE,
- SNDRV_PCM_STREAM_LAST = SNDRV_PCM_STREAM_CAPTURE,
-};
-
-typedef int __bitwise snd_pcm_access_t;
-#define SNDRV_PCM_ACCESS_MMAP_INTERLEAVED ((__force snd_pcm_access_t) 0) /* interleaved mmap */
-#define SNDRV_PCM_ACCESS_MMAP_NONINTERLEAVED ((__force snd_pcm_access_t) 1) /* noninterleaved mmap */
-#define SNDRV_PCM_ACCESS_MMAP_COMPLEX ((__force snd_pcm_access_t) 2) /* complex mmap */
-#define SNDRV_PCM_ACCESS_RW_INTERLEAVED ((__force snd_pcm_access_t) 3) /* readi/writei */
-#define SNDRV_PCM_ACCESS_RW_NONINTERLEAVED ((__force snd_pcm_access_t) 4) /* readn/writen */
-#define SNDRV_PCM_ACCESS_LAST SNDRV_PCM_ACCESS_RW_NONINTERLEAVED
-
-typedef int __bitwise snd_pcm_format_t;
-#define SNDRV_PCM_FORMAT_S8 ((__force snd_pcm_format_t) 0)
-#define SNDRV_PCM_FORMAT_U8 ((__force snd_pcm_format_t) 1)
-#define SNDRV_PCM_FORMAT_S16_LE ((__force snd_pcm_format_t) 2)
-#define SNDRV_PCM_FORMAT_S16_BE ((__force snd_pcm_format_t) 3)
-#define SNDRV_PCM_FORMAT_U16_LE ((__force snd_pcm_format_t) 4)
-#define SNDRV_PCM_FORMAT_U16_BE ((__force snd_pcm_format_t) 5)
-#define SNDRV_PCM_FORMAT_S24_LE ((__force snd_pcm_format_t) 6) /* low three bytes */
-#define SNDRV_PCM_FORMAT_S24_BE ((__force snd_pcm_format_t) 7) /* low three bytes */
-#define SNDRV_PCM_FORMAT_U24_LE ((__force snd_pcm_format_t) 8) /* low three bytes */
-#define SNDRV_PCM_FORMAT_U24_BE ((__force snd_pcm_format_t) 9) /* low three bytes */
-#define SNDRV_PCM_FORMAT_S32_LE ((__force snd_pcm_format_t) 10)
-#define SNDRV_PCM_FORMAT_S32_BE ((__force snd_pcm_format_t) 11)
-#define SNDRV_PCM_FORMAT_U32_LE ((__force snd_pcm_format_t) 12)
-#define SNDRV_PCM_FORMAT_U32_BE ((__force snd_pcm_format_t) 13)
-#define SNDRV_PCM_FORMAT_FLOAT_LE ((__force snd_pcm_format_t) 14) /* 4-byte float, IEEE-754 32-bit, range -1.0 to 1.0 */
-#define SNDRV_PCM_FORMAT_FLOAT_BE ((__force snd_pcm_format_t) 15) /* 4-byte float, IEEE-754 32-bit, range -1.0 to 1.0 */
-#define SNDRV_PCM_FORMAT_FLOAT64_LE ((__force snd_pcm_format_t) 16) /* 8-byte float, IEEE-754 64-bit, range -1.0 to 1.0 */
-#define SNDRV_PCM_FORMAT_FLOAT64_BE ((__force snd_pcm_format_t) 17) /* 8-byte float, IEEE-754 64-bit, range -1.0 to 1.0 */
-#define SNDRV_PCM_FORMAT_IEC958_SUBFRAME_LE ((__force snd_pcm_format_t) 18) /* IEC-958 subframe, Little Endian */
-#define SNDRV_PCM_FORMAT_IEC958_SUBFRAME_BE ((__force snd_pcm_format_t) 19) /* IEC-958 subframe, Big Endian */
-#define SNDRV_PCM_FORMAT_MU_LAW ((__force snd_pcm_format_t) 20)
-#define SNDRV_PCM_FORMAT_A_LAW ((__force snd_pcm_format_t) 21)
-#define SNDRV_PCM_FORMAT_IMA_ADPCM ((__force snd_pcm_format_t) 22)
-#define SNDRV_PCM_FORMAT_MPEG ((__force snd_pcm_format_t) 23)
-#define SNDRV_PCM_FORMAT_GSM ((__force snd_pcm_format_t) 24)
-#define SNDRV_PCM_FORMAT_SPECIAL ((__force snd_pcm_format_t) 31)
-#define SNDRV_PCM_FORMAT_S24_3LE ((__force snd_pcm_format_t) 32) /* in three bytes */
-#define SNDRV_PCM_FORMAT_S24_3BE ((__force snd_pcm_format_t) 33) /* in three bytes */
-#define SNDRV_PCM_FORMAT_U24_3LE ((__force snd_pcm_format_t) 34) /* in three bytes */
-#define SNDRV_PCM_FORMAT_U24_3BE ((__force snd_pcm_format_t) 35) /* in three bytes */
-#define SNDRV_PCM_FORMAT_S20_3LE ((__force snd_pcm_format_t) 36) /* in three bytes */
-#define SNDRV_PCM_FORMAT_S20_3BE ((__force snd_pcm_format_t) 37) /* in three bytes */
-#define SNDRV_PCM_FORMAT_U20_3LE ((__force snd_pcm_format_t) 38) /* in three bytes */
-#define SNDRV_PCM_FORMAT_U20_3BE ((__force snd_pcm_format_t) 39) /* in three bytes */
-#define SNDRV_PCM_FORMAT_S18_3LE ((__force snd_pcm_format_t) 40) /* in three bytes */
-#define SNDRV_PCM_FORMAT_S18_3BE ((__force snd_pcm_format_t) 41) /* in three bytes */
-#define SNDRV_PCM_FORMAT_U18_3LE ((__force snd_pcm_format_t) 42) /* in three bytes */
-#define SNDRV_PCM_FORMAT_U18_3BE ((__force snd_pcm_format_t) 43) /* in three bytes */
-#define SNDRV_PCM_FORMAT_G723_24 ((__force snd_pcm_format_t) 44) /* 8 samples in 3 bytes */
-#define SNDRV_PCM_FORMAT_G723_24_1B ((__force snd_pcm_format_t) 45) /* 1 sample in 1 byte */
-#define SNDRV_PCM_FORMAT_G723_40 ((__force snd_pcm_format_t) 46) /* 8 Samples in 5 bytes */
-#define SNDRV_PCM_FORMAT_G723_40_1B ((__force snd_pcm_format_t) 47) /* 1 sample in 1 byte */
-#define SNDRV_PCM_FORMAT_LAST SNDRV_PCM_FORMAT_G723_40_1B
-
-#ifdef SNDRV_LITTLE_ENDIAN
-#define SNDRV_PCM_FORMAT_S16 SNDRV_PCM_FORMAT_S16_LE
-#define SNDRV_PCM_FORMAT_U16 SNDRV_PCM_FORMAT_U16_LE
-#define SNDRV_PCM_FORMAT_S24 SNDRV_PCM_FORMAT_S24_LE
-#define SNDRV_PCM_FORMAT_U24 SNDRV_PCM_FORMAT_U24_LE
-#define SNDRV_PCM_FORMAT_S32 SNDRV_PCM_FORMAT_S32_LE
-#define SNDRV_PCM_FORMAT_U32 SNDRV_PCM_FORMAT_U32_LE
-#define SNDRV_PCM_FORMAT_FLOAT SNDRV_PCM_FORMAT_FLOAT_LE
-#define SNDRV_PCM_FORMAT_FLOAT64 SNDRV_PCM_FORMAT_FLOAT64_LE
-#define SNDRV_PCM_FORMAT_IEC958_SUBFRAME SNDRV_PCM_FORMAT_IEC958_SUBFRAME_LE
-#endif
-#ifdef SNDRV_BIG_ENDIAN
-#define SNDRV_PCM_FORMAT_S16 SNDRV_PCM_FORMAT_S16_BE
-#define SNDRV_PCM_FORMAT_U16 SNDRV_PCM_FORMAT_U16_BE
-#define SNDRV_PCM_FORMAT_S24 SNDRV_PCM_FORMAT_S24_BE
-#define SNDRV_PCM_FORMAT_U24 SNDRV_PCM_FORMAT_U24_BE
-#define SNDRV_PCM_FORMAT_S32 SNDRV_PCM_FORMAT_S32_BE
-#define SNDRV_PCM_FORMAT_U32 SNDRV_PCM_FORMAT_U32_BE
-#define SNDRV_PCM_FORMAT_FLOAT SNDRV_PCM_FORMAT_FLOAT_BE
-#define SNDRV_PCM_FORMAT_FLOAT64 SNDRV_PCM_FORMAT_FLOAT64_BE
-#define SNDRV_PCM_FORMAT_IEC958_SUBFRAME SNDRV_PCM_FORMAT_IEC958_SUBFRAME_BE
-#endif
-
-typedef int __bitwise snd_pcm_subformat_t;
-#define SNDRV_PCM_SUBFORMAT_STD ((__force snd_pcm_subformat_t) 0)
-#define SNDRV_PCM_SUBFORMAT_LAST SNDRV_PCM_SUBFORMAT_STD
-
-#define SNDRV_PCM_INFO_MMAP 0x00000001 /* hardware supports mmap */
-#define SNDRV_PCM_INFO_MMAP_VALID 0x00000002 /* period data are valid during transfer */
-#define SNDRV_PCM_INFO_DOUBLE 0x00000004 /* Double buffering needed for PCM start/stop */
-#define SNDRV_PCM_INFO_BATCH 0x00000010 /* double buffering */
-#define SNDRV_PCM_INFO_INTERLEAVED 0x00000100 /* channels are interleaved */
-#define SNDRV_PCM_INFO_NONINTERLEAVED 0x00000200 /* channels are not interleaved */
-#define SNDRV_PCM_INFO_COMPLEX 0x00000400 /* complex frame organization (mmap only) */
-#define SNDRV_PCM_INFO_BLOCK_TRANSFER 0x00010000 /* hardware transfer block of samples */
-#define SNDRV_PCM_INFO_OVERRANGE 0x00020000 /* hardware supports ADC (capture) overrange detection */
-#define SNDRV_PCM_INFO_RESUME 0x00040000 /* hardware supports stream resume after suspend */
-#define SNDRV_PCM_INFO_PAUSE 0x00080000 /* pause ioctl is supported */
-#define SNDRV_PCM_INFO_HALF_DUPLEX 0x00100000 /* only half duplex */
-#define SNDRV_PCM_INFO_JOINT_DUPLEX 0x00200000 /* playback and capture stream are somewhat correlated */
-#define SNDRV_PCM_INFO_SYNC_START 0x00400000 /* pcm support some kind of sync go */
-#define SNDRV_PCM_INFO_NO_PERIOD_WAKEUP 0x00800000 /* period wakeup can be disabled */
-#define SNDRV_PCM_INFO_FIFO_IN_FRAMES 0x80000000 /* internal kernel flag - FIFO size is in frames */
-
-typedef int __bitwise snd_pcm_state_t;
-#define SNDRV_PCM_STATE_OPEN ((__force snd_pcm_state_t) 0) /* stream is open */
-#define SNDRV_PCM_STATE_SETUP ((__force snd_pcm_state_t) 1) /* stream has a setup */
-#define SNDRV_PCM_STATE_PREPARED ((__force snd_pcm_state_t) 2) /* stream is ready to start */
-#define SNDRV_PCM_STATE_RUNNING ((__force snd_pcm_state_t) 3) /* stream is running */
-#define SNDRV_PCM_STATE_XRUN ((__force snd_pcm_state_t) 4) /* stream reached an xrun */
-#define SNDRV_PCM_STATE_DRAINING ((__force snd_pcm_state_t) 5) /* stream is draining */
-#define SNDRV_PCM_STATE_PAUSED ((__force snd_pcm_state_t) 6) /* stream is paused */
-#define SNDRV_PCM_STATE_SUSPENDED ((__force snd_pcm_state_t) 7) /* hardware is suspended */
-#define SNDRV_PCM_STATE_DISCONNECTED ((__force snd_pcm_state_t) 8) /* hardware is disconnected */
-#define SNDRV_PCM_STATE_LAST SNDRV_PCM_STATE_DISCONNECTED
-
-enum {
- SNDRV_PCM_MMAP_OFFSET_DATA = 0x00000000,
- SNDRV_PCM_MMAP_OFFSET_STATUS = 0x80000000,
- SNDRV_PCM_MMAP_OFFSET_CONTROL = 0x81000000,
-};
-
-union snd_pcm_sync_id {
- unsigned char id[16];
- unsigned short id16[8];
- unsigned int id32[4];
-};
-
-struct snd_pcm_info {
- unsigned int device; /* RO/WR (control): device number */
- unsigned int subdevice; /* RO/WR (control): subdevice number */
- int stream; /* RO/WR (control): stream direction */
- int card; /* R: card number */
- unsigned char id[64]; /* ID (user selectable) */
- unsigned char name[80]; /* name of this device */
- unsigned char subname[32]; /* subdevice name */
- int dev_class; /* SNDRV_PCM_CLASS_* */
- int dev_subclass; /* SNDRV_PCM_SUBCLASS_* */
- unsigned int subdevices_count;
- unsigned int subdevices_avail;
- union snd_pcm_sync_id sync; /* hardware synchronization ID */
- unsigned char reserved[64]; /* reserved for future... */
-};
-
-typedef int snd_pcm_hw_param_t;
-#define SNDRV_PCM_HW_PARAM_ACCESS 0 /* Access type */
-#define SNDRV_PCM_HW_PARAM_FORMAT 1 /* Format */
-#define SNDRV_PCM_HW_PARAM_SUBFORMAT 2 /* Subformat */
-#define SNDRV_PCM_HW_PARAM_FIRST_MASK SNDRV_PCM_HW_PARAM_ACCESS
-#define SNDRV_PCM_HW_PARAM_LAST_MASK SNDRV_PCM_HW_PARAM_SUBFORMAT
-
-#define SNDRV_PCM_HW_PARAM_SAMPLE_BITS 8 /* Bits per sample */
-#define SNDRV_PCM_HW_PARAM_FRAME_BITS 9 /* Bits per frame */
-#define SNDRV_PCM_HW_PARAM_CHANNELS 10 /* Channels */
-#define SNDRV_PCM_HW_PARAM_RATE 11 /* Approx rate */
-#define SNDRV_PCM_HW_PARAM_PERIOD_TIME 12 /* Approx distance between
- * interrupts in us
- */
-#define SNDRV_PCM_HW_PARAM_PERIOD_SIZE 13 /* Approx frames between
- * interrupts
- */
-#define SNDRV_PCM_HW_PARAM_PERIOD_BYTES 14 /* Approx bytes between
- * interrupts
- */
-#define SNDRV_PCM_HW_PARAM_PERIODS 15 /* Approx interrupts per
- * buffer
- */
-#define SNDRV_PCM_HW_PARAM_BUFFER_TIME 16 /* Approx duration of buffer
- * in us
- */
-#define SNDRV_PCM_HW_PARAM_BUFFER_SIZE 17 /* Size of buffer in frames */
-#define SNDRV_PCM_HW_PARAM_BUFFER_BYTES 18 /* Size of buffer in bytes */
-#define SNDRV_PCM_HW_PARAM_TICK_TIME 19 /* Approx tick duration in us */
-#define SNDRV_PCM_HW_PARAM_FIRST_INTERVAL SNDRV_PCM_HW_PARAM_SAMPLE_BITS
-#define SNDRV_PCM_HW_PARAM_LAST_INTERVAL SNDRV_PCM_HW_PARAM_TICK_TIME
-
-#define SNDRV_PCM_HW_PARAMS_NORESAMPLE (1<<0) /* avoid rate resampling */
-#define SNDRV_PCM_HW_PARAMS_EXPORT_BUFFER (1<<1) /* export buffer */
-#define SNDRV_PCM_HW_PARAMS_NO_PERIOD_WAKEUP (1<<2) /* disable period wakeups */
-
-struct snd_interval {
- unsigned int min, max;
- unsigned int openmin:1,
- openmax:1,
- integer:1,
- empty:1;
-};
-
-#define SNDRV_MASK_MAX 256
-
-struct snd_mask {
- __u32 bits[(SNDRV_MASK_MAX+31)/32];
-};
-
-struct snd_pcm_hw_params {
- unsigned int flags;
- struct snd_mask masks[SNDRV_PCM_HW_PARAM_LAST_MASK -
- SNDRV_PCM_HW_PARAM_FIRST_MASK + 1];
- struct snd_mask mres[5]; /* reserved masks */
- struct snd_interval intervals[SNDRV_PCM_HW_PARAM_LAST_INTERVAL -
- SNDRV_PCM_HW_PARAM_FIRST_INTERVAL + 1];
- struct snd_interval ires[9]; /* reserved intervals */
- unsigned int rmask; /* W: requested masks */
- unsigned int cmask; /* R: changed masks */
- unsigned int info; /* R: Info flags for returned setup */
- unsigned int msbits; /* R: used most significant bits */
- unsigned int rate_num; /* R: rate numerator */
- unsigned int rate_den; /* R: rate denominator */
- snd_pcm_uframes_t fifo_size; /* R: chip FIFO size in frames */
- unsigned char reserved[64]; /* reserved for future */
-};
-
-enum {
- SNDRV_PCM_TSTAMP_NONE = 0,
- SNDRV_PCM_TSTAMP_ENABLE,
- SNDRV_PCM_TSTAMP_LAST = SNDRV_PCM_TSTAMP_ENABLE,
-};
-
-struct snd_pcm_sw_params {
- int tstamp_mode; /* timestamp mode */
- unsigned int period_step;
- unsigned int sleep_min; /* min ticks to sleep */
- snd_pcm_uframes_t avail_min; /* min avail frames for wakeup */
- snd_pcm_uframes_t xfer_align; /* obsolete: xfer size need to be a multiple */
- snd_pcm_uframes_t start_threshold; /* min hw_avail frames for automatic start */
- snd_pcm_uframes_t stop_threshold; /* min avail frames for automatic stop */
- snd_pcm_uframes_t silence_threshold; /* min distance from noise for silence filling */
- snd_pcm_uframes_t silence_size; /* silence block size */
- snd_pcm_uframes_t boundary; /* pointers wrap point */
- unsigned char reserved[64]; /* reserved for future */
-};
-
-struct snd_pcm_channel_info {
- unsigned int channel;
- __kernel_off_t offset; /* mmap offset */
- unsigned int first; /* offset to first sample in bits */
- unsigned int step; /* samples distance in bits */
-};
-
-struct snd_pcm_status {
- snd_pcm_state_t state; /* stream state */
- struct timespec trigger_tstamp; /* time when stream was started/stopped/paused */
- struct timespec tstamp; /* reference timestamp */
- snd_pcm_uframes_t appl_ptr; /* appl ptr */
- snd_pcm_uframes_t hw_ptr; /* hw ptr */
- snd_pcm_sframes_t delay; /* current delay in frames */
- snd_pcm_uframes_t avail; /* number of frames available */
- snd_pcm_uframes_t avail_max; /* max frames available on hw since last status */
- snd_pcm_uframes_t overrange; /* count of ADC (capture) overrange detections from last status */
- snd_pcm_state_t suspended_state; /* suspended stream state */
- unsigned char reserved[60]; /* must be filled with zero */
-};
-
-struct snd_pcm_mmap_status {
- snd_pcm_state_t state; /* RO: state - SNDRV_PCM_STATE_XXXX */
- int pad1; /* Needed for 64 bit alignment */
- snd_pcm_uframes_t hw_ptr; /* RO: hw ptr (0...boundary-1) */
- struct timespec tstamp; /* Timestamp */
- snd_pcm_state_t suspended_state; /* RO: suspended stream state */
-};
-
-struct snd_pcm_mmap_control {
- snd_pcm_uframes_t appl_ptr; /* RW: appl ptr (0...boundary-1) */
- snd_pcm_uframes_t avail_min; /* RW: min available frames for wakeup */
-};
-
-#define SNDRV_PCM_SYNC_PTR_HWSYNC (1<<0) /* execute hwsync */
-#define SNDRV_PCM_SYNC_PTR_APPL (1<<1) /* get appl_ptr from driver (r/w op) */
-#define SNDRV_PCM_SYNC_PTR_AVAIL_MIN (1<<2) /* get avail_min from driver */
-
-struct snd_pcm_sync_ptr {
- unsigned int flags;
- union {
- struct snd_pcm_mmap_status status;
- unsigned char reserved[64];
- } s;
- union {
- struct snd_pcm_mmap_control control;
- unsigned char reserved[64];
- } c;
-};
-
-struct snd_xferi {
- snd_pcm_sframes_t result;
- void __user *buf;
- snd_pcm_uframes_t frames;
-};
-
-struct snd_xfern {
- snd_pcm_sframes_t result;
- void __user * __user *bufs;
- snd_pcm_uframes_t frames;
-};
-
-enum {
- SNDRV_PCM_TSTAMP_TYPE_GETTIMEOFDAY = 0, /* gettimeofday equivalent */
- SNDRV_PCM_TSTAMP_TYPE_MONOTONIC, /* posix_clock_monotonic equivalent */
- SNDRV_PCM_TSTAMP_TYPE_LAST = SNDRV_PCM_TSTAMP_TYPE_MONOTONIC,
-};
-
-#define SNDRV_PCM_IOCTL_PVERSION _IOR('A', 0x00, int)
-#define SNDRV_PCM_IOCTL_INFO _IOR('A', 0x01, struct snd_pcm_info)
-#define SNDRV_PCM_IOCTL_TSTAMP _IOW('A', 0x02, int)
-#define SNDRV_PCM_IOCTL_TTSTAMP _IOW('A', 0x03, int)
-#define SNDRV_PCM_IOCTL_HW_REFINE _IOWR('A', 0x10, struct snd_pcm_hw_params)
-#define SNDRV_PCM_IOCTL_HW_PARAMS _IOWR('A', 0x11, struct snd_pcm_hw_params)
-#define SNDRV_PCM_IOCTL_HW_FREE _IO('A', 0x12)
-#define SNDRV_PCM_IOCTL_SW_PARAMS _IOWR('A', 0x13, struct snd_pcm_sw_params)
-#define SNDRV_PCM_IOCTL_STATUS _IOR('A', 0x20, struct snd_pcm_status)
-#define SNDRV_PCM_IOCTL_DELAY _IOR('A', 0x21, snd_pcm_sframes_t)
-#define SNDRV_PCM_IOCTL_HWSYNC _IO('A', 0x22)
-#define SNDRV_PCM_IOCTL_SYNC_PTR _IOWR('A', 0x23, struct snd_pcm_sync_ptr)
-#define SNDRV_PCM_IOCTL_CHANNEL_INFO _IOR('A', 0x32, struct snd_pcm_channel_info)
-#define SNDRV_PCM_IOCTL_PREPARE _IO('A', 0x40)
-#define SNDRV_PCM_IOCTL_RESET _IO('A', 0x41)
-#define SNDRV_PCM_IOCTL_START _IO('A', 0x42)
-#define SNDRV_PCM_IOCTL_DROP _IO('A', 0x43)
-#define SNDRV_PCM_IOCTL_DRAIN _IO('A', 0x44)
-#define SNDRV_PCM_IOCTL_PAUSE _IOW('A', 0x45, int)
-#define SNDRV_PCM_IOCTL_REWIND _IOW('A', 0x46, snd_pcm_uframes_t)
-#define SNDRV_PCM_IOCTL_RESUME _IO('A', 0x47)
-#define SNDRV_PCM_IOCTL_XRUN _IO('A', 0x48)
-#define SNDRV_PCM_IOCTL_FORWARD _IOW('A', 0x49, snd_pcm_uframes_t)
-#define SNDRV_PCM_IOCTL_WRITEI_FRAMES _IOW('A', 0x50, struct snd_xferi)
-#define SNDRV_PCM_IOCTL_READI_FRAMES _IOR('A', 0x51, struct snd_xferi)
-#define SNDRV_PCM_IOCTL_WRITEN_FRAMES _IOW('A', 0x52, struct snd_xfern)
-#define SNDRV_PCM_IOCTL_READN_FRAMES _IOR('A', 0x53, struct snd_xfern)
-#define SNDRV_PCM_IOCTL_LINK _IOW('A', 0x60, int)
-#define SNDRV_PCM_IOCTL_UNLINK _IO('A', 0x61)
-
-/*****************************************************************************
- * *
- * MIDI v1.0 interface *
- * *
- *****************************************************************************/
-
-/*
- * Raw MIDI section - /dev/snd/midi??
- */
-
-#define SNDRV_RAWMIDI_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 0)
-
-enum {
- SNDRV_RAWMIDI_STREAM_OUTPUT = 0,
- SNDRV_RAWMIDI_STREAM_INPUT,
- SNDRV_RAWMIDI_STREAM_LAST = SNDRV_RAWMIDI_STREAM_INPUT,
-};
-
-#define SNDRV_RAWMIDI_INFO_OUTPUT 0x00000001
-#define SNDRV_RAWMIDI_INFO_INPUT 0x00000002
-#define SNDRV_RAWMIDI_INFO_DUPLEX 0x00000004
-
-struct snd_rawmidi_info {
- unsigned int device; /* RO/WR (control): device number */
- unsigned int subdevice; /* RO/WR (control): subdevice number */
- int stream; /* WR: stream */
- int card; /* R: card number */
- unsigned int flags; /* SNDRV_RAWMIDI_INFO_XXXX */
- unsigned char id[64]; /* ID (user selectable) */
- unsigned char name[80]; /* name of device */
- unsigned char subname[32]; /* name of active or selected subdevice */
- unsigned int subdevices_count;
- unsigned int subdevices_avail;
- unsigned char reserved[64]; /* reserved for future use */
-};
-
-struct snd_rawmidi_params {
- int stream;
- size_t buffer_size; /* queue size in bytes */
- size_t avail_min; /* minimum avail bytes for wakeup */
- unsigned int no_active_sensing: 1; /* do not send active sensing byte in close() */
- unsigned char reserved[16]; /* reserved for future use */
-};
-
-struct snd_rawmidi_status {
- int stream;
- struct timespec tstamp; /* Timestamp */
- size_t avail; /* available bytes */
- size_t xruns; /* count of overruns since last status (in bytes) */
- unsigned char reserved[16]; /* reserved for future use */
-};
-
-#define SNDRV_RAWMIDI_IOCTL_PVERSION _IOR('W', 0x00, int)
-#define SNDRV_RAWMIDI_IOCTL_INFO _IOR('W', 0x01, struct snd_rawmidi_info)
-#define SNDRV_RAWMIDI_IOCTL_PARAMS _IOWR('W', 0x10, struct snd_rawmidi_params)
-#define SNDRV_RAWMIDI_IOCTL_STATUS _IOWR('W', 0x20, struct snd_rawmidi_status)
-#define SNDRV_RAWMIDI_IOCTL_DROP _IOW('W', 0x30, int)
-#define SNDRV_RAWMIDI_IOCTL_DRAIN _IOW('W', 0x31, int)
-
-/*
- * Timer section - /dev/snd/timer
- */
-
-#define SNDRV_TIMER_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 6)
-
-enum {
- SNDRV_TIMER_CLASS_NONE = -1,
- SNDRV_TIMER_CLASS_SLAVE = 0,
- SNDRV_TIMER_CLASS_GLOBAL,
- SNDRV_TIMER_CLASS_CARD,
- SNDRV_TIMER_CLASS_PCM,
- SNDRV_TIMER_CLASS_LAST = SNDRV_TIMER_CLASS_PCM,
-};
-
-/* slave timer classes */
-enum {
- SNDRV_TIMER_SCLASS_NONE = 0,
- SNDRV_TIMER_SCLASS_APPLICATION,
- SNDRV_TIMER_SCLASS_SEQUENCER, /* alias */
- SNDRV_TIMER_SCLASS_OSS_SEQUENCER, /* alias */
- SNDRV_TIMER_SCLASS_LAST = SNDRV_TIMER_SCLASS_OSS_SEQUENCER,
-};
-
-/* global timers (device member) */
-#define SNDRV_TIMER_GLOBAL_SYSTEM 0
-#define SNDRV_TIMER_GLOBAL_RTC 1
-#define SNDRV_TIMER_GLOBAL_HPET 2
-#define SNDRV_TIMER_GLOBAL_HRTIMER 3
-
-/* info flags */
-#define SNDRV_TIMER_FLG_SLAVE (1<<0) /* cannot be controlled */
-
-struct snd_timer_id {
- int dev_class;
- int dev_sclass;
- int card;
- int device;
- int subdevice;
-};
-
-struct snd_timer_ginfo {
- struct snd_timer_id tid; /* requested timer ID */
- unsigned int flags; /* timer flags - SNDRV_TIMER_FLG_* */
- int card; /* card number */
- unsigned char id[64]; /* timer identification */
- unsigned char name[80]; /* timer name */
- unsigned long reserved0; /* reserved for future use */
- unsigned long resolution; /* average period resolution in ns */
- unsigned long resolution_min; /* minimal period resolution in ns */
- unsigned long resolution_max; /* maximal period resolution in ns */
- unsigned int clients; /* active timer clients */
- unsigned char reserved[32];
-};
-
-struct snd_timer_gparams {
- struct snd_timer_id tid; /* requested timer ID */
- unsigned long period_num; /* requested precise period duration (in seconds) - numerator */
- unsigned long period_den; /* requested precise period duration (in seconds) - denominator */
- unsigned char reserved[32];
-};
-
-struct snd_timer_gstatus {
- struct snd_timer_id tid; /* requested timer ID */
- unsigned long resolution; /* current period resolution in ns */
- unsigned long resolution_num; /* precise current period resolution (in seconds) - numerator */
- unsigned long resolution_den; /* precise current period resolution (in seconds) - denominator */
- unsigned char reserved[32];
-};
-
-struct snd_timer_select {
- struct snd_timer_id id; /* bind to timer ID */
- unsigned char reserved[32]; /* reserved */
-};
-
-struct snd_timer_info {
- unsigned int flags; /* timer flags - SNDRV_TIMER_FLG_* */
- int card; /* card number */
- unsigned char id[64]; /* timer identificator */
- unsigned char name[80]; /* timer name */
- unsigned long reserved0; /* reserved for future use */
- unsigned long resolution; /* average period resolution in ns */
- unsigned char reserved[64]; /* reserved */
-};
-
-#define SNDRV_TIMER_PSFLG_AUTO (1<<0) /* auto start, otherwise one-shot */
-#define SNDRV_TIMER_PSFLG_EXCLUSIVE (1<<1) /* exclusive use, precise start/stop/pause/continue */
-#define SNDRV_TIMER_PSFLG_EARLY_EVENT (1<<2) /* write early event to the poll queue */
-
-struct snd_timer_params {
- unsigned int flags; /* flags - SNDRV_MIXER_PSFLG_* */
- unsigned int ticks; /* requested resolution in ticks */
- unsigned int queue_size; /* total size of queue (32-1024) */
- unsigned int reserved0; /* reserved, was: failure locations */
- unsigned int filter; /* event filter (bitmask of SNDRV_TIMER_EVENT_*) */
- unsigned char reserved[60]; /* reserved */
-};
-
-struct snd_timer_status {
- struct timespec tstamp; /* Timestamp - last update */
- unsigned int resolution; /* current period resolution in ns */
- unsigned int lost; /* counter of master tick lost */
- unsigned int overrun; /* count of read queue overruns */
- unsigned int queue; /* used queue size */
- unsigned char reserved[64]; /* reserved */
-};
-
-#define SNDRV_TIMER_IOCTL_PVERSION _IOR('T', 0x00, int)
-#define SNDRV_TIMER_IOCTL_NEXT_DEVICE _IOWR('T', 0x01, struct snd_timer_id)
-#define SNDRV_TIMER_IOCTL_TREAD _IOW('T', 0x02, int)
-#define SNDRV_TIMER_IOCTL_GINFO _IOWR('T', 0x03, struct snd_timer_ginfo)
-#define SNDRV_TIMER_IOCTL_GPARAMS _IOW('T', 0x04, struct snd_timer_gparams)
-#define SNDRV_TIMER_IOCTL_GSTATUS _IOWR('T', 0x05, struct snd_timer_gstatus)
-#define SNDRV_TIMER_IOCTL_SELECT _IOW('T', 0x10, struct snd_timer_select)
-#define SNDRV_TIMER_IOCTL_INFO _IOR('T', 0x11, struct snd_timer_info)
-#define SNDRV_TIMER_IOCTL_PARAMS _IOW('T', 0x12, struct snd_timer_params)
-#define SNDRV_TIMER_IOCTL_STATUS _IOR('T', 0x14, struct snd_timer_status)
-/* The following four ioctls are changed since 1.0.9 due to confliction */
-#define SNDRV_TIMER_IOCTL_START _IO('T', 0xa0)
-#define SNDRV_TIMER_IOCTL_STOP _IO('T', 0xa1)
-#define SNDRV_TIMER_IOCTL_CONTINUE _IO('T', 0xa2)
-#define SNDRV_TIMER_IOCTL_PAUSE _IO('T', 0xa3)
-
-struct snd_timer_read {
- unsigned int resolution;
- unsigned int ticks;
-};
-
-enum {
- SNDRV_TIMER_EVENT_RESOLUTION = 0, /* val = resolution in ns */
- SNDRV_TIMER_EVENT_TICK, /* val = ticks */
- SNDRV_TIMER_EVENT_START, /* val = resolution in ns */
- SNDRV_TIMER_EVENT_STOP, /* val = 0 */
- SNDRV_TIMER_EVENT_CONTINUE, /* val = resolution in ns */
- SNDRV_TIMER_EVENT_PAUSE, /* val = 0 */
- SNDRV_TIMER_EVENT_EARLY, /* val = 0, early event */
- SNDRV_TIMER_EVENT_SUSPEND, /* val = 0 */
- SNDRV_TIMER_EVENT_RESUME, /* val = resolution in ns */
- /* master timer events for slave timer instances */
- SNDRV_TIMER_EVENT_MSTART = SNDRV_TIMER_EVENT_START + 10,
- SNDRV_TIMER_EVENT_MSTOP = SNDRV_TIMER_EVENT_STOP + 10,
- SNDRV_TIMER_EVENT_MCONTINUE = SNDRV_TIMER_EVENT_CONTINUE + 10,
- SNDRV_TIMER_EVENT_MPAUSE = SNDRV_TIMER_EVENT_PAUSE + 10,
- SNDRV_TIMER_EVENT_MSUSPEND = SNDRV_TIMER_EVENT_SUSPEND + 10,
- SNDRV_TIMER_EVENT_MRESUME = SNDRV_TIMER_EVENT_RESUME + 10,
-};
-
-struct snd_timer_tread {
- int event;
- struct timespec tstamp;
- unsigned int val;
-};
-
-/****************************************************************************
- * *
- * Section for driver control interface - /dev/snd/control? *
- * *
- ****************************************************************************/
-
-#define SNDRV_CTL_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 7)
-
-struct snd_ctl_card_info {
- int card; /* card number */
- int pad; /* reserved for future (was type) */
- unsigned char id[16]; /* ID of card (user selectable) */
- unsigned char driver[16]; /* Driver name */
- unsigned char name[32]; /* Short name of soundcard */
- unsigned char longname[80]; /* name + info text about soundcard */
- unsigned char reserved_[16]; /* reserved for future (was ID of mixer) */
- unsigned char mixername[80]; /* visual mixer identification */
- unsigned char components[128]; /* card components / fine identification, delimited with one space (AC97 etc..) */
-};
-
-typedef int __bitwise snd_ctl_elem_type_t;
-#define SNDRV_CTL_ELEM_TYPE_NONE ((__force snd_ctl_elem_type_t) 0) /* invalid */
-#define SNDRV_CTL_ELEM_TYPE_BOOLEAN ((__force snd_ctl_elem_type_t) 1) /* boolean type */
-#define SNDRV_CTL_ELEM_TYPE_INTEGER ((__force snd_ctl_elem_type_t) 2) /* integer type */
-#define SNDRV_CTL_ELEM_TYPE_ENUMERATED ((__force snd_ctl_elem_type_t) 3) /* enumerated type */
-#define SNDRV_CTL_ELEM_TYPE_BYTES ((__force snd_ctl_elem_type_t) 4) /* byte array */
-#define SNDRV_CTL_ELEM_TYPE_IEC958 ((__force snd_ctl_elem_type_t) 5) /* IEC958 (S/PDIF) setup */
-#define SNDRV_CTL_ELEM_TYPE_INTEGER64 ((__force snd_ctl_elem_type_t) 6) /* 64-bit integer type */
-#define SNDRV_CTL_ELEM_TYPE_LAST SNDRV_CTL_ELEM_TYPE_INTEGER64
-
-typedef int __bitwise snd_ctl_elem_iface_t;
-#define SNDRV_CTL_ELEM_IFACE_CARD ((__force snd_ctl_elem_iface_t) 0) /* global control */
-#define SNDRV_CTL_ELEM_IFACE_HWDEP ((__force snd_ctl_elem_iface_t) 1) /* hardware dependent device */
-#define SNDRV_CTL_ELEM_IFACE_MIXER ((__force snd_ctl_elem_iface_t) 2) /* virtual mixer device */
-#define SNDRV_CTL_ELEM_IFACE_PCM ((__force snd_ctl_elem_iface_t) 3) /* PCM device */
-#define SNDRV_CTL_ELEM_IFACE_RAWMIDI ((__force snd_ctl_elem_iface_t) 4) /* RawMidi device */
-#define SNDRV_CTL_ELEM_IFACE_TIMER ((__force snd_ctl_elem_iface_t) 5) /* timer device */
-#define SNDRV_CTL_ELEM_IFACE_SEQUENCER ((__force snd_ctl_elem_iface_t) 6) /* sequencer client */
-#define SNDRV_CTL_ELEM_IFACE_LAST SNDRV_CTL_ELEM_IFACE_SEQUENCER
-
-#define SNDRV_CTL_ELEM_ACCESS_READ (1<<0)
-#define SNDRV_CTL_ELEM_ACCESS_WRITE (1<<1)
-#define SNDRV_CTL_ELEM_ACCESS_READWRITE (SNDRV_CTL_ELEM_ACCESS_READ|SNDRV_CTL_ELEM_ACCESS_WRITE)
-#define SNDRV_CTL_ELEM_ACCESS_VOLATILE (1<<2) /* control value may be changed without a notification */
-#define SNDRV_CTL_ELEM_ACCESS_TIMESTAMP (1<<3) /* when was control changed */
-#define SNDRV_CTL_ELEM_ACCESS_TLV_READ (1<<4) /* TLV read is possible */
-#define SNDRV_CTL_ELEM_ACCESS_TLV_WRITE (1<<5) /* TLV write is possible */
-#define SNDRV_CTL_ELEM_ACCESS_TLV_READWRITE (SNDRV_CTL_ELEM_ACCESS_TLV_READ|SNDRV_CTL_ELEM_ACCESS_TLV_WRITE)
-#define SNDRV_CTL_ELEM_ACCESS_TLV_COMMAND (1<<6) /* TLV command is possible */
-#define SNDRV_CTL_ELEM_ACCESS_INACTIVE (1<<8) /* control does actually nothing, but may be updated */
-#define SNDRV_CTL_ELEM_ACCESS_LOCK (1<<9) /* write lock */
-#define SNDRV_CTL_ELEM_ACCESS_OWNER (1<<10) /* write lock owner */
-#define SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK (1<<28) /* kernel use a TLV callback */
-#define SNDRV_CTL_ELEM_ACCESS_USER (1<<29) /* user space element */
-/* bits 30 and 31 are obsoleted (for indirect access) */
-
-/* for further details see the ACPI and PCI power management specification */
-#define SNDRV_CTL_POWER_D0 0x0000 /* full On */
-#define SNDRV_CTL_POWER_D1 0x0100 /* partial On */
-#define SNDRV_CTL_POWER_D2 0x0200 /* partial On */
-#define SNDRV_CTL_POWER_D3 0x0300 /* Off */
-#define SNDRV_CTL_POWER_D3hot (SNDRV_CTL_POWER_D3|0x0000) /* Off, with power */
-#define SNDRV_CTL_POWER_D3cold (SNDRV_CTL_POWER_D3|0x0001) /* Off, without power */
-
-struct snd_ctl_elem_id {
- unsigned int numid; /* numeric identifier, zero = invalid */
- snd_ctl_elem_iface_t iface; /* interface identifier */
- unsigned int device; /* device/client number */
- unsigned int subdevice; /* subdevice (substream) number */
- unsigned char name[44]; /* ASCII name of item */
- unsigned int index; /* index of item */
-};
-
-struct snd_ctl_elem_list {
- unsigned int offset; /* W: first element ID to get */
- unsigned int space; /* W: count of element IDs to get */
- unsigned int used; /* R: count of element IDs set */
- unsigned int count; /* R: count of all elements */
- struct snd_ctl_elem_id __user *pids; /* R: IDs */
- unsigned char reserved[50];
-};
-
-struct snd_ctl_elem_info {
- struct snd_ctl_elem_id id; /* W: element ID */
- snd_ctl_elem_type_t type; /* R: value type - SNDRV_CTL_ELEM_TYPE_* */
- unsigned int access; /* R: value access (bitmask) - SNDRV_CTL_ELEM_ACCESS_* */
- unsigned int count; /* count of values */
- __kernel_pid_t owner; /* owner's PID of this control */
- union {
- struct {
- long min; /* R: minimum value */
- long max; /* R: maximum value */
- long step; /* R: step (0 variable) */
- } integer;
- struct {
- long long min; /* R: minimum value */
- long long max; /* R: maximum value */
- long long step; /* R: step (0 variable) */
- } integer64;
- struct {
- unsigned int items; /* R: number of items */
- unsigned int item; /* W: item number */
- char name[64]; /* R: value name */
- __u64 names_ptr; /* W: names list (ELEM_ADD only) */
- unsigned int names_length;
- } enumerated;
- unsigned char reserved[128];
- } value;
- union {
- unsigned short d[4]; /* dimensions */
- unsigned short *d_ptr; /* indirect - obsoleted */
- } dimen;
- unsigned char reserved[64-4*sizeof(unsigned short)];
-};
-
-struct snd_ctl_elem_value {
- struct snd_ctl_elem_id id; /* W: element ID */
- unsigned int indirect: 1; /* W: indirect access - obsoleted */
- union {
- union {
- long value[128];
- long *value_ptr; /* obsoleted */
- } integer;
- union {
- long long value[64];
- long long *value_ptr; /* obsoleted */
- } integer64;
- union {
- unsigned int item[128];
- unsigned int *item_ptr; /* obsoleted */
- } enumerated;
- union {
- unsigned char data[512];
- unsigned char *data_ptr; /* obsoleted */
- } bytes;
- struct snd_aes_iec958 iec958;
- } value; /* RO */
- struct timespec tstamp;
- unsigned char reserved[128-sizeof(struct timespec)];
-};
-
-struct snd_ctl_tlv {
- unsigned int numid; /* control element numeric identification */
- unsigned int length; /* in bytes aligned to 4 */
- unsigned int tlv[0]; /* first TLV */
-};
-
-#define SNDRV_CTL_IOCTL_PVERSION _IOR('U', 0x00, int)
-#define SNDRV_CTL_IOCTL_CARD_INFO _IOR('U', 0x01, struct snd_ctl_card_info)
-#define SNDRV_CTL_IOCTL_ELEM_LIST _IOWR('U', 0x10, struct snd_ctl_elem_list)
-#define SNDRV_CTL_IOCTL_ELEM_INFO _IOWR('U', 0x11, struct snd_ctl_elem_info)
-#define SNDRV_CTL_IOCTL_ELEM_READ _IOWR('U', 0x12, struct snd_ctl_elem_value)
-#define SNDRV_CTL_IOCTL_ELEM_WRITE _IOWR('U', 0x13, struct snd_ctl_elem_value)
-#define SNDRV_CTL_IOCTL_ELEM_LOCK _IOW('U', 0x14, struct snd_ctl_elem_id)
-#define SNDRV_CTL_IOCTL_ELEM_UNLOCK _IOW('U', 0x15, struct snd_ctl_elem_id)
-#define SNDRV_CTL_IOCTL_SUBSCRIBE_EVENTS _IOWR('U', 0x16, int)
-#define SNDRV_CTL_IOCTL_ELEM_ADD _IOWR('U', 0x17, struct snd_ctl_elem_info)
-#define SNDRV_CTL_IOCTL_ELEM_REPLACE _IOWR('U', 0x18, struct snd_ctl_elem_info)
-#define SNDRV_CTL_IOCTL_ELEM_REMOVE _IOWR('U', 0x19, struct snd_ctl_elem_id)
-#define SNDRV_CTL_IOCTL_TLV_READ _IOWR('U', 0x1a, struct snd_ctl_tlv)
-#define SNDRV_CTL_IOCTL_TLV_WRITE _IOWR('U', 0x1b, struct snd_ctl_tlv)
-#define SNDRV_CTL_IOCTL_TLV_COMMAND _IOWR('U', 0x1c, struct snd_ctl_tlv)
-#define SNDRV_CTL_IOCTL_HWDEP_NEXT_DEVICE _IOWR('U', 0x20, int)
-#define SNDRV_CTL_IOCTL_HWDEP_INFO _IOR('U', 0x21, struct snd_hwdep_info)
-#define SNDRV_CTL_IOCTL_PCM_NEXT_DEVICE _IOR('U', 0x30, int)
-#define SNDRV_CTL_IOCTL_PCM_INFO _IOWR('U', 0x31, struct snd_pcm_info)
-#define SNDRV_CTL_IOCTL_PCM_PREFER_SUBDEVICE _IOW('U', 0x32, int)
-#define SNDRV_CTL_IOCTL_RAWMIDI_NEXT_DEVICE _IOWR('U', 0x40, int)
-#define SNDRV_CTL_IOCTL_RAWMIDI_INFO _IOWR('U', 0x41, struct snd_rawmidi_info)
-#define SNDRV_CTL_IOCTL_RAWMIDI_PREFER_SUBDEVICE _IOW('U', 0x42, int)
-#define SNDRV_CTL_IOCTL_POWER _IOWR('U', 0xd0, int)
-#define SNDRV_CTL_IOCTL_POWER_STATE _IOR('U', 0xd1, int)
-
-/*
- * Read interface.
- */
-
-enum sndrv_ctl_event_type {
- SNDRV_CTL_EVENT_ELEM = 0,
- SNDRV_CTL_EVENT_LAST = SNDRV_CTL_EVENT_ELEM,
-};
-
-#define SNDRV_CTL_EVENT_MASK_VALUE (1<<0) /* element value was changed */
-#define SNDRV_CTL_EVENT_MASK_INFO (1<<1) /* element info was changed */
-#define SNDRV_CTL_EVENT_MASK_ADD (1<<2) /* element was added */
-#define SNDRV_CTL_EVENT_MASK_TLV (1<<3) /* element TLV tree was changed */
-#define SNDRV_CTL_EVENT_MASK_REMOVE (~0U) /* element was removed */
-
-struct snd_ctl_event {
- int type; /* event type - SNDRV_CTL_EVENT_* */
- union {
- struct {
- unsigned int mask;
- struct snd_ctl_elem_id id;
- } elem;
- unsigned char data8[60];
- } data;
-};
-
-/*
- * Control names
- */
-
-#define SNDRV_CTL_NAME_NONE ""
-#define SNDRV_CTL_NAME_PLAYBACK "Playback "
-#define SNDRV_CTL_NAME_CAPTURE "Capture "
-
-#define SNDRV_CTL_NAME_IEC958_NONE ""
-#define SNDRV_CTL_NAME_IEC958_SWITCH "Switch"
-#define SNDRV_CTL_NAME_IEC958_VOLUME "Volume"
-#define SNDRV_CTL_NAME_IEC958_DEFAULT "Default"
-#define SNDRV_CTL_NAME_IEC958_MASK "Mask"
-#define SNDRV_CTL_NAME_IEC958_CON_MASK "Con Mask"
-#define SNDRV_CTL_NAME_IEC958_PRO_MASK "Pro Mask"
-#define SNDRV_CTL_NAME_IEC958_PCM_STREAM "PCM Stream"
-#define SNDRV_CTL_NAME_IEC958(expl,direction,what) "IEC958 " expl SNDRV_CTL_NAME_##direction SNDRV_CTL_NAME_IEC958_##what
-
-#endif /* __SOUND_ASOUND_H */
diff --git a/ANDROID_3.4.5/include/sound/asound_fm.h b/ANDROID_3.4.5/include/sound/asound_fm.h
deleted file mode 100644
index c2a4b967..00000000
--- a/ANDROID_3.4.5/include/sound/asound_fm.h
+++ /dev/null
@@ -1,134 +0,0 @@
-#ifndef __SOUND_ASOUND_FM_H
-#define __SOUND_ASOUND_FM_H
-
-/*
- * Advanced Linux Sound Architecture - ALSA
- *
- * Interface file between ALSA driver & user space
- * Copyright (c) 1994-98 by Jaroslav Kysela <perex@perex.cz>,
- * 4Front Technologies
- *
- * Direct FM 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 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
- *
- */
-
-#define SNDRV_DM_FM_MODE_OPL2 0x00
-#define SNDRV_DM_FM_MODE_OPL3 0x01
-
-struct snd_dm_fm_info {
- unsigned char fm_mode; /* OPL mode, see SNDRV_DM_FM_MODE_XXX */
- unsigned char rhythm; /* percussion mode flag */
-};
-
-/*
- * Data structure composing an FM "note" or sound event.
- */
-
-struct snd_dm_fm_voice {
- unsigned char op; /* operator cell (0 or 1) */
- unsigned char voice; /* FM voice (0 to 17) */
-
- unsigned char am; /* amplitude modulation */
- unsigned char vibrato; /* vibrato effect */
- unsigned char do_sustain; /* sustain phase */
- unsigned char kbd_scale; /* keyboard scaling */
- unsigned char harmonic; /* 4 bits: harmonic and multiplier */
- unsigned char scale_level; /* 2 bits: decrease output freq rises */
- unsigned char volume; /* 6 bits: volume */
-
- unsigned char attack; /* 4 bits: attack rate */
- unsigned char decay; /* 4 bits: decay rate */
- unsigned char sustain; /* 4 bits: sustain level */
- unsigned char release; /* 4 bits: release rate */
-
- unsigned char feedback; /* 3 bits: feedback for op0 */
- unsigned char connection; /* 0 for serial, 1 for parallel */
- unsigned char left; /* stereo left */
- unsigned char right; /* stereo right */
- unsigned char waveform; /* 3 bits: waveform shape */
-};
-
-/*
- * This describes an FM note by its voice, octave, frequency number (10bit)
- * and key on/off.
- */
-
-struct snd_dm_fm_note {
- unsigned char voice; /* 0-17 voice channel */
- unsigned char octave; /* 3 bits: what octave to play */
- unsigned int fnum; /* 10 bits: frequency number */
- unsigned char key_on; /* set for active, clear for silent */
-};
-
-/*
- * FM parameters that apply globally to all voices, and thus are not "notes"
- */
-
-struct snd_dm_fm_params {
- unsigned char am_depth; /* amplitude modulation depth (1=hi) */
- unsigned char vib_depth; /* vibrato depth (1=hi) */
- unsigned char kbd_split; /* keyboard split */
- unsigned char rhythm; /* percussion mode select */
-
- /* This block is the percussion instrument data */
- unsigned char bass;
- unsigned char snare;
- unsigned char tomtom;
- unsigned char cymbal;
- unsigned char hihat;
-};
-
-/*
- * FM mode ioctl settings
- */
-
-#define SNDRV_DM_FM_IOCTL_INFO _IOR('H', 0x20, struct snd_dm_fm_info)
-#define SNDRV_DM_FM_IOCTL_RESET _IO ('H', 0x21)
-#define SNDRV_DM_FM_IOCTL_PLAY_NOTE _IOW('H', 0x22, struct snd_dm_fm_note)
-#define SNDRV_DM_FM_IOCTL_SET_VOICE _IOW('H', 0x23, struct snd_dm_fm_voice)
-#define SNDRV_DM_FM_IOCTL_SET_PARAMS _IOW('H', 0x24, struct snd_dm_fm_params)
-#define SNDRV_DM_FM_IOCTL_SET_MODE _IOW('H', 0x25, int)
-/* for OPL3 only */
-#define SNDRV_DM_FM_IOCTL_SET_CONNECTION _IOW('H', 0x26, int)
-/* SBI patch management */
-#define SNDRV_DM_FM_IOCTL_CLEAR_PATCHES _IO ('H', 0x40)
-
-#define SNDRV_DM_FM_OSS_IOCTL_RESET 0x20
-#define SNDRV_DM_FM_OSS_IOCTL_PLAY_NOTE 0x21
-#define SNDRV_DM_FM_OSS_IOCTL_SET_VOICE 0x22
-#define SNDRV_DM_FM_OSS_IOCTL_SET_PARAMS 0x23
-#define SNDRV_DM_FM_OSS_IOCTL_SET_MODE 0x24
-#define SNDRV_DM_FM_OSS_IOCTL_SET_OPL 0x25
-
-/*
- * Patch Record - fixed size for write
- */
-
-#define FM_KEY_SBI "SBI\032"
-#define FM_KEY_2OP "2OP\032"
-#define FM_KEY_4OP "4OP\032"
-
-struct sbi_patch {
- unsigned char prog;
- unsigned char bank;
- char key[4];
- char name[25];
- char extension[7];
- unsigned char data[32];
-};
-
-#endif /* __SOUND_ASOUND_FM_H */
diff --git a/ANDROID_3.4.5/include/sound/asoundef.h b/ANDROID_3.4.5/include/sound/asoundef.h
deleted file mode 100644
index 20ebf329..00000000
--- a/ANDROID_3.4.5/include/sound/asoundef.h
+++ /dev/null
@@ -1,284 +0,0 @@
-#ifndef __SOUND_ASOUNDEF_H
-#define __SOUND_ASOUNDEF_H
-
-/*
- * Advanced Linux Sound Architecture - ALSA - Driver
- * Copyright (c) 1994-2000 by Jaroslav Kysela <perex@perex.cz>
- *
- *
- * 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
- *
- */
-
-/****************************************************************************
- * *
- * Digital audio interface *
- * *
- ****************************************************************************/
-
-/* AES/IEC958 channel status bits */
-#define IEC958_AES0_PROFESSIONAL (1<<0) /* 0 = consumer, 1 = professional */
-#define IEC958_AES0_NONAUDIO (1<<1) /* 0 = audio, 1 = non-audio */
-#define IEC958_AES0_PRO_EMPHASIS (7<<2) /* mask - emphasis */
-#define IEC958_AES0_PRO_EMPHASIS_NOTID (0<<2) /* emphasis not indicated */
-#define IEC958_AES0_PRO_EMPHASIS_NONE (1<<2) /* none emphasis */
-#define IEC958_AES0_PRO_EMPHASIS_5015 (3<<2) /* 50/15us emphasis */
-#define IEC958_AES0_PRO_EMPHASIS_CCITT (7<<2) /* CCITT J.17 emphasis */
-#define IEC958_AES0_PRO_FREQ_UNLOCKED (1<<5) /* source sample frequency: 0 = locked, 1 = unlocked */
-#define IEC958_AES0_PRO_FS (3<<6) /* mask - sample frequency */
-#define IEC958_AES0_PRO_FS_NOTID (0<<6) /* fs not indicated */
-#define IEC958_AES0_PRO_FS_44100 (1<<6) /* 44.1kHz */
-#define IEC958_AES0_PRO_FS_48000 (2<<6) /* 48kHz */
-#define IEC958_AES0_PRO_FS_32000 (3<<6) /* 32kHz */
-#define IEC958_AES0_CON_NOT_COPYRIGHT (1<<2) /* 0 = copyright, 1 = not copyright */
-#define IEC958_AES0_CON_EMPHASIS (7<<3) /* mask - emphasis */
-#define IEC958_AES0_CON_EMPHASIS_NONE (0<<3) /* none emphasis */
-#define IEC958_AES0_CON_EMPHASIS_5015 (1<<3) /* 50/15us emphasis */
-#define IEC958_AES0_CON_MODE (3<<6) /* mask - mode */
-#define IEC958_AES1_PRO_MODE (15<<0) /* mask - channel mode */
-#define IEC958_AES1_PRO_MODE_NOTID (0<<0) /* not indicated */
-#define IEC958_AES1_PRO_MODE_STEREOPHONIC (2<<0) /* stereophonic - ch A is left */
-#define IEC958_AES1_PRO_MODE_SINGLE (4<<0) /* single channel */
-#define IEC958_AES1_PRO_MODE_TWO (8<<0) /* two channels */
-#define IEC958_AES1_PRO_MODE_PRIMARY (12<<0) /* primary/secondary */
-#define IEC958_AES1_PRO_MODE_BYTE3 (15<<0) /* vector to byte 3 */
-#define IEC958_AES1_PRO_USERBITS (15<<4) /* mask - user bits */
-#define IEC958_AES1_PRO_USERBITS_NOTID (0<<4) /* not indicated */
-#define IEC958_AES1_PRO_USERBITS_192 (8<<4) /* 192-bit structure */
-#define IEC958_AES1_PRO_USERBITS_UDEF (12<<4) /* user defined application */
-#define IEC958_AES1_CON_CATEGORY 0x7f
-#define IEC958_AES1_CON_GENERAL 0x00
-#define IEC958_AES1_CON_LASEROPT_MASK 0x07
-#define IEC958_AES1_CON_LASEROPT_ID 0x01
-#define IEC958_AES1_CON_IEC908_CD (IEC958_AES1_CON_LASEROPT_ID|0x00)
-#define IEC958_AES1_CON_NON_IEC908_CD (IEC958_AES1_CON_LASEROPT_ID|0x08)
-#define IEC958_AES1_CON_MINI_DISC (IEC958_AES1_CON_LASEROPT_ID|0x48)
-#define IEC958_AES1_CON_DVD (IEC958_AES1_CON_LASEROPT_ID|0x18)
-#define IEC958_AES1_CON_LASTEROPT_OTHER (IEC958_AES1_CON_LASEROPT_ID|0x78)
-#define IEC958_AES1_CON_DIGDIGCONV_MASK 0x07
-#define IEC958_AES1_CON_DIGDIGCONV_ID 0x02
-#define IEC958_AES1_CON_PCM_CODER (IEC958_AES1_CON_DIGDIGCONV_ID|0x00)
-#define IEC958_AES1_CON_MIXER (IEC958_AES1_CON_DIGDIGCONV_ID|0x10)
-#define IEC958_AES1_CON_RATE_CONVERTER (IEC958_AES1_CON_DIGDIGCONV_ID|0x18)
-#define IEC958_AES1_CON_SAMPLER (IEC958_AES1_CON_DIGDIGCONV_ID|0x20)
-#define IEC958_AES1_CON_DSP (IEC958_AES1_CON_DIGDIGCONV_ID|0x28)
-#define IEC958_AES1_CON_DIGDIGCONV_OTHER (IEC958_AES1_CON_DIGDIGCONV_ID|0x78)
-#define IEC958_AES1_CON_MAGNETIC_MASK 0x07
-#define IEC958_AES1_CON_MAGNETIC_ID 0x03
-#define IEC958_AES1_CON_DAT (IEC958_AES1_CON_MAGNETIC_ID|0x00)
-#define IEC958_AES1_CON_VCR (IEC958_AES1_CON_MAGNETIC_ID|0x08)
-#define IEC958_AES1_CON_DCC (IEC958_AES1_CON_MAGNETIC_ID|0x40)
-#define IEC958_AES1_CON_MAGNETIC_DISC (IEC958_AES1_CON_MAGNETIC_ID|0x18)
-#define IEC958_AES1_CON_MAGNETIC_OTHER (IEC958_AES1_CON_MAGNETIC_ID|0x78)
-#define IEC958_AES1_CON_BROADCAST1_MASK 0x07
-#define IEC958_AES1_CON_BROADCAST1_ID 0x04
-#define IEC958_AES1_CON_DAB_JAPAN (IEC958_AES1_CON_BROADCAST1_ID|0x00)
-#define IEC958_AES1_CON_DAB_EUROPE (IEC958_AES1_CON_BROADCAST1_ID|0x08)
-#define IEC958_AES1_CON_DAB_USA (IEC958_AES1_CON_BROADCAST1_ID|0x60)
-#define IEC958_AES1_CON_SOFTWARE (IEC958_AES1_CON_BROADCAST1_ID|0x40)
-#define IEC958_AES1_CON_IEC62105 (IEC958_AES1_CON_BROADCAST1_ID|0x20)
-#define IEC958_AES1_CON_BROADCAST1_OTHER (IEC958_AES1_CON_BROADCAST1_ID|0x78)
-#define IEC958_AES1_CON_BROADCAST2_MASK 0x0f
-#define IEC958_AES1_CON_BROADCAST2_ID 0x0e
-#define IEC958_AES1_CON_MUSICAL_MASK 0x07
-#define IEC958_AES1_CON_MUSICAL_ID 0x05
-#define IEC958_AES1_CON_SYNTHESIZER (IEC958_AES1_CON_MUSICAL_ID|0x00)
-#define IEC958_AES1_CON_MICROPHONE (IEC958_AES1_CON_MUSICAL_ID|0x08)
-#define IEC958_AES1_CON_MUSICAL_OTHER (IEC958_AES1_CON_MUSICAL_ID|0x78)
-#define IEC958_AES1_CON_ADC_MASK 0x1f
-#define IEC958_AES1_CON_ADC_ID 0x06
-#define IEC958_AES1_CON_ADC (IEC958_AES1_CON_ADC_ID|0x00)
-#define IEC958_AES1_CON_ADC_OTHER (IEC958_AES1_CON_ADC_ID|0x60)
-#define IEC958_AES1_CON_ADC_COPYRIGHT_MASK 0x1f
-#define IEC958_AES1_CON_ADC_COPYRIGHT_ID 0x16
-#define IEC958_AES1_CON_ADC_COPYRIGHT (IEC958_AES1_CON_ADC_COPYRIGHT_ID|0x00)
-#define IEC958_AES1_CON_ADC_COPYRIGHT_OTHER (IEC958_AES1_CON_ADC_COPYRIGHT_ID|0x60)
-#define IEC958_AES1_CON_SOLIDMEM_MASK 0x0f
-#define IEC958_AES1_CON_SOLIDMEM_ID 0x08
-#define IEC958_AES1_CON_SOLIDMEM_DIGITAL_RECORDER_PLAYER (IEC958_AES1_CON_SOLIDMEM_ID|0x00)
-#define IEC958_AES1_CON_SOLIDMEM_OTHER (IEC958_AES1_CON_SOLIDMEM_ID|0x70)
-#define IEC958_AES1_CON_EXPERIMENTAL 0x40
-#define IEC958_AES1_CON_ORIGINAL (1<<7) /* this bits depends on the category code */
-#define IEC958_AES2_PRO_SBITS (7<<0) /* mask - sample bits */
-#define IEC958_AES2_PRO_SBITS_20 (2<<0) /* 20-bit - coordination */
-#define IEC958_AES2_PRO_SBITS_24 (4<<0) /* 24-bit - main audio */
-#define IEC958_AES2_PRO_SBITS_UDEF (6<<0) /* user defined application */
-#define IEC958_AES2_PRO_WORDLEN (7<<3) /* mask - source word length */
-#define IEC958_AES2_PRO_WORDLEN_NOTID (0<<3) /* not indicated */
-#define IEC958_AES2_PRO_WORDLEN_22_18 (2<<3) /* 22-bit or 18-bit */
-#define IEC958_AES2_PRO_WORDLEN_23_19 (4<<3) /* 23-bit or 19-bit */
-#define IEC958_AES2_PRO_WORDLEN_24_20 (5<<3) /* 24-bit or 20-bit */
-#define IEC958_AES2_PRO_WORDLEN_20_16 (6<<3) /* 20-bit or 16-bit */
-#define IEC958_AES2_CON_SOURCE (15<<0) /* mask - source number */
-#define IEC958_AES2_CON_SOURCE_UNSPEC (0<<0) /* unspecified */
-#define IEC958_AES2_CON_CHANNEL (15<<4) /* mask - channel number */
-#define IEC958_AES2_CON_CHANNEL_UNSPEC (0<<4) /* unspecified */
-#define IEC958_AES3_CON_FS (15<<0) /* mask - sample frequency */
-#define IEC958_AES3_CON_FS_44100 (0<<0) /* 44.1kHz */
-#define IEC958_AES3_CON_FS_NOTID (1<<0) /* non indicated */
-#define IEC958_AES3_CON_FS_48000 (2<<0) /* 48kHz */
-#define IEC958_AES3_CON_FS_32000 (3<<0) /* 32kHz */
-#define IEC958_AES3_CON_FS_22050 (4<<0) /* 22.05kHz */
-#define IEC958_AES3_CON_FS_24000 (6<<0) /* 24kHz */
-#define IEC958_AES3_CON_FS_88200 (8<<0) /* 88.2kHz */
-#define IEC958_AES3_CON_FS_768000 (9<<0) /* 768kHz */
-#define IEC958_AES3_CON_FS_96000 (10<<0) /* 96kHz */
-#define IEC958_AES3_CON_FS_176400 (12<<0) /* 176.4kHz */
-#define IEC958_AES3_CON_FS_192000 (14<<0) /* 192kHz */
-#define IEC958_AES3_CON_CLOCK (3<<4) /* mask - clock accuracy */
-#define IEC958_AES3_CON_CLOCK_1000PPM (0<<4) /* 1000 ppm */
-#define IEC958_AES3_CON_CLOCK_50PPM (1<<4) /* 50 ppm */
-#define IEC958_AES3_CON_CLOCK_VARIABLE (2<<4) /* variable pitch */
-#define IEC958_AES4_CON_MAX_WORDLEN_24 (1<<0) /* 0 = 20-bit, 1 = 24-bit */
-#define IEC958_AES4_CON_WORDLEN (7<<1) /* mask - sample word length */
-#define IEC958_AES4_CON_WORDLEN_NOTID (0<<1) /* not indicated */
-#define IEC958_AES4_CON_WORDLEN_20_16 (1<<1) /* 20-bit or 16-bit */
-#define IEC958_AES4_CON_WORDLEN_22_18 (2<<1) /* 22-bit or 18-bit */
-#define IEC958_AES4_CON_WORDLEN_23_19 (4<<1) /* 23-bit or 19-bit */
-#define IEC958_AES4_CON_WORDLEN_24_20 (5<<1) /* 24-bit or 20-bit */
-#define IEC958_AES4_CON_WORDLEN_21_17 (6<<1) /* 21-bit or 17-bit */
-#define IEC958_AES4_CON_ORIGFS (15<<4) /* mask - original sample frequency */
-#define IEC958_AES4_CON_ORIGFS_NOTID (0<<4) /* not indicated */
-#define IEC958_AES4_CON_ORIGFS_192000 (1<<4) /* 192kHz */
-#define IEC958_AES4_CON_ORIGFS_12000 (2<<4) /* 12kHz */
-#define IEC958_AES4_CON_ORIGFS_176400 (3<<4) /* 176.4kHz */
-#define IEC958_AES4_CON_ORIGFS_96000 (5<<4) /* 96kHz */
-#define IEC958_AES4_CON_ORIGFS_8000 (6<<4) /* 8kHz */
-#define IEC958_AES4_CON_ORIGFS_88200 (7<<4) /* 88.2kHz */
-#define IEC958_AES4_CON_ORIGFS_16000 (8<<4) /* 16kHz */
-#define IEC958_AES4_CON_ORIGFS_24000 (9<<4) /* 24kHz */
-#define IEC958_AES4_CON_ORIGFS_11025 (10<<4) /* 11.025kHz */
-#define IEC958_AES4_CON_ORIGFS_22050 (11<<4) /* 22.05kHz */
-#define IEC958_AES4_CON_ORIGFS_32000 (12<<4) /* 32kHz */
-#define IEC958_AES4_CON_ORIGFS_48000 (13<<4) /* 48kHz */
-#define IEC958_AES4_CON_ORIGFS_44100 (15<<4) /* 44.1kHz */
-#define IEC958_AES5_CON_CGMSA (3<<0) /* mask - CGMS-A */
-#define IEC958_AES5_CON_CGMSA_COPYFREELY (0<<0) /* copying is permitted without restriction */
-#define IEC958_AES5_CON_CGMSA_COPYONCE (1<<0) /* one generation of copies may be made */
-#define IEC958_AES5_CON_CGMSA_COPYNOMORE (2<<0) /* condition not be used */
-#define IEC958_AES5_CON_CGMSA_COPYNEVER (3<<0) /* no copying is permitted */
-
-/*****************************************************************************
- * *
- * MIDI v1.0 interface *
- * *
- *****************************************************************************/
-
-#define MIDI_CHANNELS 16
-#define MIDI_GM_DRUM_CHANNEL (10-1)
-
-/*
- * MIDI commands
- */
-
-#define MIDI_CMD_NOTE_OFF 0x80
-#define MIDI_CMD_NOTE_ON 0x90
-#define MIDI_CMD_NOTE_PRESSURE 0xa0
-#define MIDI_CMD_CONTROL 0xb0
-#define MIDI_CMD_PGM_CHANGE 0xc0
-#define MIDI_CMD_CHANNEL_PRESSURE 0xd0
-#define MIDI_CMD_BENDER 0xe0
-
-#define MIDI_CMD_COMMON_SYSEX 0xf0
-#define MIDI_CMD_COMMON_MTC_QUARTER 0xf1
-#define MIDI_CMD_COMMON_SONG_POS 0xf2
-#define MIDI_CMD_COMMON_SONG_SELECT 0xf3
-#define MIDI_CMD_COMMON_TUNE_REQUEST 0xf6
-#define MIDI_CMD_COMMON_SYSEX_END 0xf7
-#define MIDI_CMD_COMMON_CLOCK 0xf8
-#define MIDI_CMD_COMMON_START 0xfa
-#define MIDI_CMD_COMMON_CONTINUE 0xfb
-#define MIDI_CMD_COMMON_STOP 0xfc
-#define MIDI_CMD_COMMON_SENSING 0xfe
-#define MIDI_CMD_COMMON_RESET 0xff
-
-/*
- * MIDI controllers
- */
-
-#define MIDI_CTL_MSB_BANK 0x00
-#define MIDI_CTL_MSB_MODWHEEL 0x01
-#define MIDI_CTL_MSB_BREATH 0x02
-#define MIDI_CTL_MSB_FOOT 0x04
-#define MIDI_CTL_MSB_PORTAMENTO_TIME 0x05
-#define MIDI_CTL_MSB_DATA_ENTRY 0x06
-#define MIDI_CTL_MSB_MAIN_VOLUME 0x07
-#define MIDI_CTL_MSB_BALANCE 0x08
-#define MIDI_CTL_MSB_PAN 0x0a
-#define MIDI_CTL_MSB_EXPRESSION 0x0b
-#define MIDI_CTL_MSB_EFFECT1 0x0c
-#define MIDI_CTL_MSB_EFFECT2 0x0d
-#define MIDI_CTL_MSB_GENERAL_PURPOSE1 0x10
-#define MIDI_CTL_MSB_GENERAL_PURPOSE2 0x11
-#define MIDI_CTL_MSB_GENERAL_PURPOSE3 0x12
-#define MIDI_CTL_MSB_GENERAL_PURPOSE4 0x13
-#define MIDI_CTL_LSB_BANK 0x20
-#define MIDI_CTL_LSB_MODWHEEL 0x21
-#define MIDI_CTL_LSB_BREATH 0x22
-#define MIDI_CTL_LSB_FOOT 0x24
-#define MIDI_CTL_LSB_PORTAMENTO_TIME 0x25
-#define MIDI_CTL_LSB_DATA_ENTRY 0x26
-#define MIDI_CTL_LSB_MAIN_VOLUME 0x27
-#define MIDI_CTL_LSB_BALANCE 0x28
-#define MIDI_CTL_LSB_PAN 0x2a
-#define MIDI_CTL_LSB_EXPRESSION 0x2b
-#define MIDI_CTL_LSB_EFFECT1 0x2c
-#define MIDI_CTL_LSB_EFFECT2 0x2d
-#define MIDI_CTL_LSB_GENERAL_PURPOSE1 0x30
-#define MIDI_CTL_LSB_GENERAL_PURPOSE2 0x31
-#define MIDI_CTL_LSB_GENERAL_PURPOSE3 0x32
-#define MIDI_CTL_LSB_GENERAL_PURPOSE4 0x33
-#define MIDI_CTL_SUSTAIN 0x40
-#define MIDI_CTL_PORTAMENTO 0x41
-#define MIDI_CTL_SOSTENUTO 0x42
-#define MIDI_CTL_SOFT_PEDAL 0x43
-#define MIDI_CTL_LEGATO_FOOTSWITCH 0x44
-#define MIDI_CTL_HOLD2 0x45
-#define MIDI_CTL_SC1_SOUND_VARIATION 0x46
-#define MIDI_CTL_SC2_TIMBRE 0x47
-#define MIDI_CTL_SC3_RELEASE_TIME 0x48
-#define MIDI_CTL_SC4_ATTACK_TIME 0x49
-#define MIDI_CTL_SC5_BRIGHTNESS 0x4a
-#define MIDI_CTL_SC6 0x4b
-#define MIDI_CTL_SC7 0x4c
-#define MIDI_CTL_SC8 0x4d
-#define MIDI_CTL_SC9 0x4e
-#define MIDI_CTL_SC10 0x4f
-#define MIDI_CTL_GENERAL_PURPOSE5 0x50
-#define MIDI_CTL_GENERAL_PURPOSE6 0x51
-#define MIDI_CTL_GENERAL_PURPOSE7 0x52
-#define MIDI_CTL_GENERAL_PURPOSE8 0x53
-#define MIDI_CTL_PORTAMENTO_CONTROL 0x54
-#define MIDI_CTL_E1_REVERB_DEPTH 0x5b
-#define MIDI_CTL_E2_TREMOLO_DEPTH 0x5c
-#define MIDI_CTL_E3_CHORUS_DEPTH 0x5d
-#define MIDI_CTL_E4_DETUNE_DEPTH 0x5e
-#define MIDI_CTL_E5_PHASER_DEPTH 0x5f
-#define MIDI_CTL_DATA_INCREMENT 0x60
-#define MIDI_CTL_DATA_DECREMENT 0x61
-#define MIDI_CTL_NONREG_PARM_NUM_LSB 0x62
-#define MIDI_CTL_NONREG_PARM_NUM_MSB 0x63
-#define MIDI_CTL_REGIST_PARM_NUM_LSB 0x64
-#define MIDI_CTL_REGIST_PARM_NUM_MSB 0x65
-#define MIDI_CTL_ALL_SOUNDS_OFF 0x78
-#define MIDI_CTL_RESET_CONTROLLERS 0x79
-#define MIDI_CTL_LOCAL_CONTROL_SWITCH 0x7a
-#define MIDI_CTL_ALL_NOTES_OFF 0x7b
-#define MIDI_CTL_OMNI_OFF 0x7c
-#define MIDI_CTL_OMNI_ON 0x7d
-#define MIDI_CTL_MONO1 0x7e
-#define MIDI_CTL_MONO2 0x7f
-
-#endif /* __SOUND_ASOUNDEF_H */
diff --git a/ANDROID_3.4.5/include/sound/atmel-abdac.h b/ANDROID_3.4.5/include/sound/atmel-abdac.h
deleted file mode 100644
index edff6a8b..00000000
--- a/ANDROID_3.4.5/include/sound/atmel-abdac.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Driver for the Atmel Audio Bitstream DAC (ABDAC)
- *
- * Copyright (C) 2009 Atmel 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.
- */
-#ifndef __INCLUDE_SOUND_ATMEL_ABDAC_H
-#define __INCLUDE_SOUND_ATMEL_ABDAC_H
-
-#include <linux/dw_dmac.h>
-
-/**
- * struct atmel_abdac_pdata - board specific ABDAC configuration
- * @dws: DMA slave interface to use for sound playback.
- */
-struct atmel_abdac_pdata {
- struct dw_dma_slave dws;
-};
-
-#endif /* __INCLUDE_SOUND_ATMEL_ABDAC_H */
diff --git a/ANDROID_3.4.5/include/sound/atmel-ac97c.h b/ANDROID_3.4.5/include/sound/atmel-ac97c.h
deleted file mode 100644
index e6aabdb4..00000000
--- a/ANDROID_3.4.5/include/sound/atmel-ac97c.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Driver for the Atmel AC97C controller
- *
- * Copyright (C) 2005-2009 Atmel 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.
- */
-#ifndef __INCLUDE_SOUND_ATMEL_AC97C_H
-#define __INCLUDE_SOUND_ATMEL_AC97C_H
-
-#include <linux/dw_dmac.h>
-
-#define AC97C_CAPTURE 0x01
-#define AC97C_PLAYBACK 0x02
-#define AC97C_BOTH (AC97C_CAPTURE | AC97C_PLAYBACK)
-
-/**
- * struct atmel_ac97c_pdata - board specific AC97C configuration
- * @rx_dws: DMA slave interface to use for sound capture.
- * @tx_dws: DMA slave interface to use for sound playback.
- * @reset_pin: GPIO pin wired to the reset input on the external AC97 codec,
- * optional to use, set to -ENODEV if not in use. AC97 layer will
- * try to do a software reset of the external codec anyway.
- * @flags: Flags for which directions should be enabled.
- *
- * If the user do not want to use a DMA channel for playback or capture, i.e.
- * only one feature is required on the board. The slave for playback or capture
- * can be set to NULL. The AC97C driver will take use of this when setting up
- * the sound streams.
- */
-struct ac97c_platform_data {
- struct dw_dma_slave rx_dws;
- struct dw_dma_slave tx_dws;
- unsigned int flags;
- int reset_pin;
-};
-
-#endif /* __INCLUDE_SOUND_ATMEL_AC97C_H */
diff --git a/ANDROID_3.4.5/include/sound/compress_driver.h b/ANDROID_3.4.5/include/sound/compress_driver.h
deleted file mode 100644
index 48f2a1ff..00000000
--- a/ANDROID_3.4.5/include/sound/compress_driver.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * compress_driver.h - compress offload driver definations
- *
- * Copyright (C) 2011 Intel Corporation
- * Authors: Vinod Koul <vinod.koul@linux.intel.com>
- * Pierre-Louis Bossart <pierre-louis.bossart@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 as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * 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.
- *
- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- *
- */
-#ifndef __COMPRESS_DRIVER_H
-#define __COMPRESS_DRIVER_H
-
-#include <linux/types.h>
-#include <linux/sched.h>
-#include <sound/compress_offload.h>
-#include <sound/asound.h>
-#include <sound/pcm.h>
-
-struct snd_compr_ops;
-
-/**
- * struct snd_compr_runtime: runtime stream description
- * @state: stream state
- * @ops: pointer to DSP callbacks
- * @buffer: pointer to kernel buffer, valid only when not in mmap mode or
- * DSP doesn't implement copy
- * @buffer_size: size of the above buffer
- * @fragment_size: size of buffer fragment in bytes
- * @fragments: number of such fragments
- * @hw_pointer: offset of last location in buffer where DSP copied data
- * @app_pointer: offset of last location in buffer where app wrote data
- * @total_bytes_available: cumulative number of bytes made available in
- * the ring buffer
- * @total_bytes_transferred: cumulative bytes transferred by offload DSP
- * @sleep: poll sleep
- */
-struct snd_compr_runtime {
- snd_pcm_state_t state;
- struct snd_compr_ops *ops;
- void *buffer;
- u64 buffer_size;
- u32 fragment_size;
- u32 fragments;
- u64 hw_pointer;
- u64 app_pointer;
- u64 total_bytes_available;
- u64 total_bytes_transferred;
- wait_queue_head_t sleep;
-};
-
-/**
- * struct snd_compr_stream: compressed stream
- * @name: device name
- * @ops: pointer to DSP callbacks
- * @runtime: pointer to runtime structure
- * @device: device pointer
- * @direction: stream direction, playback/recording
- * @private_data: pointer to DSP private data
- */
-struct snd_compr_stream {
- const char *name;
- struct snd_compr_ops *ops;
- struct snd_compr_runtime *runtime;
- struct snd_compr *device;
- enum snd_compr_direction direction;
- void *private_data;
-};
-
-/**
- * struct snd_compr_ops: compressed path DSP operations
- * @open: Open the compressed stream
- * This callback is mandatory and shall keep dsp ready to receive the stream
- * parameter
- * @free: Close the compressed stream, mandatory
- * @set_params: Sets the compressed stream parameters, mandatory
- * This can be called in during stream creation only to set codec params
- * and the stream properties
- * @get_params: retrieve the codec parameters, mandatory
- * @trigger: Trigger operations like start, pause, resume, drain, stop.
- * This callback is mandatory
- * @pointer: Retrieve current h/w pointer information. Mandatory
- * @copy: Copy the compressed data to/from userspace, Optional
- * Can't be implemented if DSP supports mmap
- * @mmap: DSP mmap method to mmap DSP memory
- * @ack: Ack for DSP when data is written to audio buffer, Optional
- * Not valid if copy is implemented
- * @get_caps: Retrieve DSP capabilities, mandatory
- * @get_codec_caps: Retrieve capabilities for a specific codec, mandatory
- */
-struct snd_compr_ops {
- int (*open)(struct snd_compr_stream *stream);
- int (*free)(struct snd_compr_stream *stream);
- int (*set_params)(struct snd_compr_stream *stream,
- struct snd_compr_params *params);
- int (*get_params)(struct snd_compr_stream *stream,
- struct snd_codec *params);
- int (*trigger)(struct snd_compr_stream *stream, int cmd);
- int (*pointer)(struct snd_compr_stream *stream,
- struct snd_compr_tstamp *tstamp);
- int (*copy)(struct snd_compr_stream *stream, const char __user *buf,
- size_t count);
- int (*mmap)(struct snd_compr_stream *stream,
- struct vm_area_struct *vma);
- int (*ack)(struct snd_compr_stream *stream, size_t bytes);
- int (*get_caps) (struct snd_compr_stream *stream,
- struct snd_compr_caps *caps);
- int (*get_codec_caps) (struct snd_compr_stream *stream,
- struct snd_compr_codec_caps *codec);
-};
-
-/**
- * struct snd_compr: Compressed device
- * @name: DSP device name
- * @dev: Device pointer
- * @ops: pointer to DSP callbacks
- * @private_data: pointer to DSP pvt data
- * @card: sound card pointer
- * @direction: Playback or capture direction
- * @lock: device lock
- * @device: device id
- */
-struct snd_compr {
- const char *name;
- struct device *dev;
- struct snd_compr_ops *ops;
- void *private_data;
- struct snd_card *card;
- unsigned int direction;
- struct mutex lock;
- int device;
-};
-
-/* compress device register APIs */
-int snd_compress_register(struct snd_compr *device);
-int snd_compress_deregister(struct snd_compr *device);
-int snd_compress_new(struct snd_card *card, int device,
- int type, struct snd_compr *compr);
-
-/* dsp driver callback apis
- * For playback: driver should call snd_compress_fragment_elapsed() to let the
- * framework know that a fragment has been consumed from the ring buffer
- *
- * For recording: we want to know when a frame is available or when
- * at least one frame is available so snd_compress_frame_elapsed()
- * callback should be called when a encodeded frame is available
- */
-static inline void snd_compr_fragment_elapsed(struct snd_compr_stream *stream)
-{
- wake_up(&stream->runtime->sleep);
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/sound/compress_offload.h b/ANDROID_3.4.5/include/sound/compress_offload.h
deleted file mode 100644
index 05341a43..00000000
--- a/ANDROID_3.4.5/include/sound/compress_offload.h
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * compress_offload.h - compress offload header definations
- *
- * Copyright (C) 2011 Intel Corporation
- * Authors: Vinod Koul <vinod.koul@linux.intel.com>
- * Pierre-Louis Bossart <pierre-louis.bossart@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 as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * 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.
- *
- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- *
- */
-#ifndef __COMPRESS_OFFLOAD_H
-#define __COMPRESS_OFFLOAD_H
-
-#include <linux/types.h>
-#include <sound/asound.h>
-#include <sound/compress_params.h>
-
-
-#define SNDRV_COMPRESS_VERSION SNDRV_PROTOCOL_VERSION(0, 1, 0)
-/**
- * struct snd_compressed_buffer: compressed buffer
- * @fragment_size: size of buffer fragment in bytes
- * @fragments: number of such fragments
- */
-struct snd_compressed_buffer {
- __u32 fragment_size;
- __u32 fragments;
-};
-
-/**
- * struct snd_compr_params: compressed stream params
- * @buffer: buffer description
- * @codec: codec parameters
- * @no_wake_mode: dont wake on fragment elapsed
- */
-struct snd_compr_params {
- struct snd_compressed_buffer buffer;
- struct snd_codec codec;
- __u8 no_wake_mode;
-};
-
-/**
- * struct snd_compr_tstamp: timestamp descriptor
- * @byte_offset: Byte offset in ring buffer to DSP
- * @copied_total: Total number of bytes copied from/to ring buffer to/by DSP
- * @pcm_frames: Frames decoded or encoded by DSP. This field will evolve by
- * large steps and should only be used to monitor encoding/decoding
- * progress. It shall not be used for timing estimates.
- * @pcm_io_frames: Frames rendered or received by DSP into a mixer or an audio
- * output/input. This field should be used for A/V sync or time estimates.
- * @sampling_rate: sampling rate of audio
- */
-struct snd_compr_tstamp {
- __u32 byte_offset;
- __u32 copied_total;
- snd_pcm_uframes_t pcm_frames;
- snd_pcm_uframes_t pcm_io_frames;
- __u32 sampling_rate;
-};
-
-/**
- * struct snd_compr_avail: avail descriptor
- * @avail: Number of bytes available in ring buffer for writing/reading
- * @tstamp: timestamp infomation
- */
-struct snd_compr_avail {
- __u64 avail;
- struct snd_compr_tstamp tstamp;
-};
-
-enum snd_compr_direction {
- SND_COMPRESS_PLAYBACK = 0,
- SND_COMPRESS_CAPTURE
-};
-
-/**
- * struct snd_compr_caps: caps descriptor
- * @codecs: pointer to array of codecs
- * @direction: direction supported. Of type snd_compr_direction
- * @min_fragment_size: minimum fragment supported by DSP
- * @max_fragment_size: maximum fragment supported by DSP
- * @min_fragments: min fragments supported by DSP
- * @max_fragments: max fragments supported by DSP
- * @num_codecs: number of codecs supported
- * @reserved: reserved field
- */
-struct snd_compr_caps {
- __u32 num_codecs;
- __u32 direction;
- __u32 min_fragment_size;
- __u32 max_fragment_size;
- __u32 min_fragments;
- __u32 max_fragments;
- __u32 codecs[MAX_NUM_CODECS];
- __u32 reserved[11];
-};
-
-/**
- * struct snd_compr_codec_caps: query capability of codec
- * @codec: codec for which capability is queried
- * @num_descriptors: number of codec descriptors
- * @descriptor: array of codec capability descriptor
- */
-struct snd_compr_codec_caps {
- __u32 codec;
- __u32 num_descriptors;
- struct snd_codec_desc descriptor[MAX_NUM_CODEC_DESCRIPTORS];
-};
-
-/**
- * compress path ioctl definitions
- * SNDRV_COMPRESS_GET_CAPS: Query capability of DSP
- * SNDRV_COMPRESS_GET_CODEC_CAPS: Query capability of a codec
- * SNDRV_COMPRESS_SET_PARAMS: Set codec and stream parameters
- * Note: only codec params can be changed runtime and stream params cant be
- * SNDRV_COMPRESS_GET_PARAMS: Query codec params
- * SNDRV_COMPRESS_TSTAMP: get the current timestamp value
- * SNDRV_COMPRESS_AVAIL: get the current buffer avail value.
- * This also queries the tstamp properties
- * SNDRV_COMPRESS_PAUSE: Pause the running stream
- * SNDRV_COMPRESS_RESUME: resume a paused stream
- * SNDRV_COMPRESS_START: Start a stream
- * SNDRV_COMPRESS_STOP: stop a running stream, discarding ring buffer content
- * and the buffers currently with DSP
- * SNDRV_COMPRESS_DRAIN: Play till end of buffers and stop after that
- * SNDRV_COMPRESS_IOCTL_VERSION: Query the API version
- */
-#define SNDRV_COMPRESS_IOCTL_VERSION _IOR('C', 0x00, int)
-#define SNDRV_COMPRESS_GET_CAPS _IOWR('C', 0x10, struct snd_compr_caps)
-#define SNDRV_COMPRESS_GET_CODEC_CAPS _IOWR('C', 0x11,\
- struct snd_compr_codec_caps)
-#define SNDRV_COMPRESS_SET_PARAMS _IOW('C', 0x12, struct snd_compr_params)
-#define SNDRV_COMPRESS_GET_PARAMS _IOR('C', 0x13, struct snd_codec)
-#define SNDRV_COMPRESS_TSTAMP _IOR('C', 0x20, struct snd_compr_tstamp)
-#define SNDRV_COMPRESS_AVAIL _IOR('C', 0x21, struct snd_compr_avail)
-#define SNDRV_COMPRESS_PAUSE _IO('C', 0x30)
-#define SNDRV_COMPRESS_RESUME _IO('C', 0x31)
-#define SNDRV_COMPRESS_START _IO('C', 0x32)
-#define SNDRV_COMPRESS_STOP _IO('C', 0x33)
-#define SNDRV_COMPRESS_DRAIN _IO('C', 0x34)
-/*
- * TODO
- * 1. add mmap support
- *
- */
-#define SND_COMPR_TRIGGER_DRAIN 7 /*FIXME move this to pcm.h */
-#endif
diff --git a/ANDROID_3.4.5/include/sound/compress_params.h b/ANDROID_3.4.5/include/sound/compress_params.h
deleted file mode 100644
index da4a456d..00000000
--- a/ANDROID_3.4.5/include/sound/compress_params.h
+++ /dev/null
@@ -1,399 +0,0 @@
-/*
- * compress_params.h - codec types and parameters for compressed data
- * streaming interface
- *
- * Copyright (C) 2011 Intel Corporation
- * Authors: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
- * Vinod Koul <vinod.koul@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 as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * 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 definitions in this file are derived from the OpenMAX AL version 1.1
- * and OpenMAX IL v 1.1.2 header files which contain the copyright notice below.
- *
- * Copyright (c) 2007-2010 The Khronos Group Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and/or associated documentation files (the
- * "Materials "), to deal in the Materials without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Materials, and to
- * permit persons to whom the Materials are furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Materials.
- *
- * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
- *
- */
-#ifndef __SND_COMPRESS_PARAMS_H
-#define __SND_COMPRESS_PARAMS_H
-
-#include <linux/types.h>
-
-/* AUDIO CODECS SUPPORTED */
-#define MAX_NUM_CODECS 32
-#define MAX_NUM_CODEC_DESCRIPTORS 32
-#define MAX_NUM_BITRATES 32
-
-/* Codecs are listed linearly to allow for extensibility */
-#define SND_AUDIOCODEC_PCM ((__u32) 0x00000001)
-#define SND_AUDIOCODEC_MP3 ((__u32) 0x00000002)
-#define SND_AUDIOCODEC_AMR ((__u32) 0x00000003)
-#define SND_AUDIOCODEC_AMRWB ((__u32) 0x00000004)
-#define SND_AUDIOCODEC_AMRWBPLUS ((__u32) 0x00000005)
-#define SND_AUDIOCODEC_AAC ((__u32) 0x00000006)
-#define SND_AUDIOCODEC_WMA ((__u32) 0x00000007)
-#define SND_AUDIOCODEC_REAL ((__u32) 0x00000008)
-#define SND_AUDIOCODEC_VORBIS ((__u32) 0x00000009)
-#define SND_AUDIOCODEC_FLAC ((__u32) 0x0000000A)
-#define SND_AUDIOCODEC_IEC61937 ((__u32) 0x0000000B)
-#define SND_AUDIOCODEC_G723_1 ((__u32) 0x0000000C)
-#define SND_AUDIOCODEC_G729 ((__u32) 0x0000000D)
-
-/*
- * Profile and modes are listed with bit masks. This allows for a
- * more compact representation of fields that will not evolve
- * (in contrast to the list of codecs)
- */
-
-#define SND_AUDIOPROFILE_PCM ((__u32) 0x00000001)
-
-/* MP3 modes are only useful for encoders */
-#define SND_AUDIOCHANMODE_MP3_MONO ((__u32) 0x00000001)
-#define SND_AUDIOCHANMODE_MP3_STEREO ((__u32) 0x00000002)
-#define SND_AUDIOCHANMODE_MP3_JOINTSTEREO ((__u32) 0x00000004)
-#define SND_AUDIOCHANMODE_MP3_DUAL ((__u32) 0x00000008)
-
-#define SND_AUDIOPROFILE_AMR ((__u32) 0x00000001)
-
-/* AMR modes are only useful for encoders */
-#define SND_AUDIOMODE_AMR_DTX_OFF ((__u32) 0x00000001)
-#define SND_AUDIOMODE_AMR_VAD1 ((__u32) 0x00000002)
-#define SND_AUDIOMODE_AMR_VAD2 ((__u32) 0x00000004)
-
-#define SND_AUDIOSTREAMFORMAT_UNDEFINED ((__u32) 0x00000000)
-#define SND_AUDIOSTREAMFORMAT_CONFORMANCE ((__u32) 0x00000001)
-#define SND_AUDIOSTREAMFORMAT_IF1 ((__u32) 0x00000002)
-#define SND_AUDIOSTREAMFORMAT_IF2 ((__u32) 0x00000004)
-#define SND_AUDIOSTREAMFORMAT_FSF ((__u32) 0x00000008)
-#define SND_AUDIOSTREAMFORMAT_RTPPAYLOAD ((__u32) 0x00000010)
-#define SND_AUDIOSTREAMFORMAT_ITU ((__u32) 0x00000020)
-
-#define SND_AUDIOPROFILE_AMRWB ((__u32) 0x00000001)
-
-/* AMRWB modes are only useful for encoders */
-#define SND_AUDIOMODE_AMRWB_DTX_OFF ((__u32) 0x00000001)
-#define SND_AUDIOMODE_AMRWB_VAD1 ((__u32) 0x00000002)
-#define SND_AUDIOMODE_AMRWB_VAD2 ((__u32) 0x00000004)
-
-#define SND_AUDIOPROFILE_AMRWBPLUS ((__u32) 0x00000001)
-
-#define SND_AUDIOPROFILE_AAC ((__u32) 0x00000001)
-
-/* AAC modes are required for encoders and decoders */
-#define SND_AUDIOMODE_AAC_MAIN ((__u32) 0x00000001)
-#define SND_AUDIOMODE_AAC_LC ((__u32) 0x00000002)
-#define SND_AUDIOMODE_AAC_SSR ((__u32) 0x00000004)
-#define SND_AUDIOMODE_AAC_LTP ((__u32) 0x00000008)
-#define SND_AUDIOMODE_AAC_HE ((__u32) 0x00000010)
-#define SND_AUDIOMODE_AAC_SCALABLE ((__u32) 0x00000020)
-#define SND_AUDIOMODE_AAC_ERLC ((__u32) 0x00000040)
-#define SND_AUDIOMODE_AAC_LD ((__u32) 0x00000080)
-#define SND_AUDIOMODE_AAC_HE_PS ((__u32) 0x00000100)
-#define SND_AUDIOMODE_AAC_HE_MPS ((__u32) 0x00000200)
-
-/* AAC formats are required for encoders and decoders */
-#define SND_AUDIOSTREAMFORMAT_MP2ADTS ((__u32) 0x00000001)
-#define SND_AUDIOSTREAMFORMAT_MP4ADTS ((__u32) 0x00000002)
-#define SND_AUDIOSTREAMFORMAT_MP4LOAS ((__u32) 0x00000004)
-#define SND_AUDIOSTREAMFORMAT_MP4LATM ((__u32) 0x00000008)
-#define SND_AUDIOSTREAMFORMAT_ADIF ((__u32) 0x00000010)
-#define SND_AUDIOSTREAMFORMAT_MP4FF ((__u32) 0x00000020)
-#define SND_AUDIOSTREAMFORMAT_RAW ((__u32) 0x00000040)
-
-#define SND_AUDIOPROFILE_WMA7 ((__u32) 0x00000001)
-#define SND_AUDIOPROFILE_WMA8 ((__u32) 0x00000002)
-#define SND_AUDIOPROFILE_WMA9 ((__u32) 0x00000004)
-#define SND_AUDIOPROFILE_WMA10 ((__u32) 0x00000008)
-
-#define SND_AUDIOMODE_WMA_LEVEL1 ((__u32) 0x00000001)
-#define SND_AUDIOMODE_WMA_LEVEL2 ((__u32) 0x00000002)
-#define SND_AUDIOMODE_WMA_LEVEL3 ((__u32) 0x00000004)
-#define SND_AUDIOMODE_WMA_LEVEL4 ((__u32) 0x00000008)
-#define SND_AUDIOMODE_WMAPRO_LEVELM0 ((__u32) 0x00000010)
-#define SND_AUDIOMODE_WMAPRO_LEVELM1 ((__u32) 0x00000020)
-#define SND_AUDIOMODE_WMAPRO_LEVELM2 ((__u32) 0x00000040)
-#define SND_AUDIOMODE_WMAPRO_LEVELM3 ((__u32) 0x00000080)
-
-#define SND_AUDIOSTREAMFORMAT_WMA_ASF ((__u32) 0x00000001)
-/*
- * Some implementations strip the ASF header and only send ASF packets
- * to the DSP
- */
-#define SND_AUDIOSTREAMFORMAT_WMA_NOASF_HDR ((__u32) 0x00000002)
-
-#define SND_AUDIOPROFILE_REALAUDIO ((__u32) 0x00000001)
-
-#define SND_AUDIOMODE_REALAUDIO_G2 ((__u32) 0x00000001)
-#define SND_AUDIOMODE_REALAUDIO_8 ((__u32) 0x00000002)
-#define SND_AUDIOMODE_REALAUDIO_10 ((__u32) 0x00000004)
-#define SND_AUDIOMODE_REALAUDIO_SURROUND ((__u32) 0x00000008)
-
-#define SND_AUDIOPROFILE_VORBIS ((__u32) 0x00000001)
-
-#define SND_AUDIOMODE_VORBIS ((__u32) 0x00000001)
-
-#define SND_AUDIOPROFILE_FLAC ((__u32) 0x00000001)
-
-/*
- * Define quality levels for FLAC encoders, from LEVEL0 (fast)
- * to LEVEL8 (best)
- */
-#define SND_AUDIOMODE_FLAC_LEVEL0 ((__u32) 0x00000001)
-#define SND_AUDIOMODE_FLAC_LEVEL1 ((__u32) 0x00000002)
-#define SND_AUDIOMODE_FLAC_LEVEL2 ((__u32) 0x00000004)
-#define SND_AUDIOMODE_FLAC_LEVEL3 ((__u32) 0x00000008)
-#define SND_AUDIOMODE_FLAC_LEVEL4 ((__u32) 0x00000010)
-#define SND_AUDIOMODE_FLAC_LEVEL5 ((__u32) 0x00000020)
-#define SND_AUDIOMODE_FLAC_LEVEL6 ((__u32) 0x00000040)
-#define SND_AUDIOMODE_FLAC_LEVEL7 ((__u32) 0x00000080)
-#define SND_AUDIOMODE_FLAC_LEVEL8 ((__u32) 0x00000100)
-
-#define SND_AUDIOSTREAMFORMAT_FLAC ((__u32) 0x00000001)
-#define SND_AUDIOSTREAMFORMAT_FLAC_OGG ((__u32) 0x00000002)
-
-/* IEC61937 payloads without CUVP and preambles */
-#define SND_AUDIOPROFILE_IEC61937 ((__u32) 0x00000001)
-/* IEC61937 with S/PDIF preambles+CUVP bits in 32-bit containers */
-#define SND_AUDIOPROFILE_IEC61937_SPDIF ((__u32) 0x00000002)
-
-/*
- * IEC modes are mandatory for decoders. Format autodetection
- * will only happen on the DSP side with mode 0. The PCM mode should
- * not be used, the PCM codec should be used instead.
- */
-#define SND_AUDIOMODE_IEC_REF_STREAM_HEADER ((__u32) 0x00000000)
-#define SND_AUDIOMODE_IEC_LPCM ((__u32) 0x00000001)
-#define SND_AUDIOMODE_IEC_AC3 ((__u32) 0x00000002)
-#define SND_AUDIOMODE_IEC_MPEG1 ((__u32) 0x00000004)
-#define SND_AUDIOMODE_IEC_MP3 ((__u32) 0x00000008)
-#define SND_AUDIOMODE_IEC_MPEG2 ((__u32) 0x00000010)
-#define SND_AUDIOMODE_IEC_AACLC ((__u32) 0x00000020)
-#define SND_AUDIOMODE_IEC_DTS ((__u32) 0x00000040)
-#define SND_AUDIOMODE_IEC_ATRAC ((__u32) 0x00000080)
-#define SND_AUDIOMODE_IEC_SACD ((__u32) 0x00000100)
-#define SND_AUDIOMODE_IEC_EAC3 ((__u32) 0x00000200)
-#define SND_AUDIOMODE_IEC_DTS_HD ((__u32) 0x00000400)
-#define SND_AUDIOMODE_IEC_MLP ((__u32) 0x00000800)
-#define SND_AUDIOMODE_IEC_DST ((__u32) 0x00001000)
-#define SND_AUDIOMODE_IEC_WMAPRO ((__u32) 0x00002000)
-#define SND_AUDIOMODE_IEC_REF_CXT ((__u32) 0x00004000)
-#define SND_AUDIOMODE_IEC_HE_AAC ((__u32) 0x00008000)
-#define SND_AUDIOMODE_IEC_HE_AAC2 ((__u32) 0x00010000)
-#define SND_AUDIOMODE_IEC_MPEG_SURROUND ((__u32) 0x00020000)
-
-#define SND_AUDIOPROFILE_G723_1 ((__u32) 0x00000001)
-
-#define SND_AUDIOMODE_G723_1_ANNEX_A ((__u32) 0x00000001)
-#define SND_AUDIOMODE_G723_1_ANNEX_B ((__u32) 0x00000002)
-#define SND_AUDIOMODE_G723_1_ANNEX_C ((__u32) 0x00000004)
-
-#define SND_AUDIOPROFILE_G729 ((__u32) 0x00000001)
-
-#define SND_AUDIOMODE_G729_ANNEX_A ((__u32) 0x00000001)
-#define SND_AUDIOMODE_G729_ANNEX_B ((__u32) 0x00000002)
-
-/* <FIXME: multichannel encoders aren't supported for now. Would need
- an additional definition of channel arrangement> */
-
-/* VBR/CBR definitions */
-#define SND_RATECONTROLMODE_CONSTANTBITRATE ((__u32) 0x00000001)
-#define SND_RATECONTROLMODE_VARIABLEBITRATE ((__u32) 0x00000002)
-
-/* Encoder options */
-
-struct snd_enc_wma {
- __u32 super_block_align; /* WMA Type-specific data */
-};
-
-
-/**
- * struct snd_enc_vorbis
- * @quality: Sets encoding quality to n, between -1 (low) and 10 (high).
- * In the default mode of operation, the quality level is 3.
- * Normal quality range is 0 - 10.
- * @managed: Boolean. Set bitrate management mode. This turns off the
- * normal VBR encoding, but allows hard or soft bitrate constraints to be
- * enforced by the encoder. This mode can be slower, and may also be
- * lower quality. It is primarily useful for streaming.
- * @max_bit_rate: Enabled only if managed is TRUE
- * @min_bit_rate: Enabled only if managed is TRUE
- * @downmix: Boolean. Downmix input from stereo to mono (has no effect on
- * non-stereo streams). Useful for lower-bitrate encoding.
- *
- * These options were extracted from the OpenMAX IL spec and Gstreamer vorbisenc
- * properties
- *
- * For best quality users should specify VBR mode and set quality levels.
- */
-
-struct snd_enc_vorbis {
- __s32 quality;
- __u32 managed;
- __u32 max_bit_rate;
- __u32 min_bit_rate;
- __u32 downmix;
-};
-
-
-/**
- * struct snd_enc_real
- * @quant_bits: number of coupling quantization bits in the stream
- * @start_region: coupling start region in the stream
- * @num_regions: number of regions value
- *
- * These options were extracted from the OpenMAX IL spec
- */
-
-struct snd_enc_real {
- __u32 quant_bits;
- __u32 start_region;
- __u32 num_regions;
-};
-
-/**
- * struct snd_enc_flac
- * @num: serial number, valid only for OGG formats
- * needs to be set by application
- * @gain: Add replay gain tags
- *
- * These options were extracted from the FLAC online documentation
- * at http://flac.sourceforge.net/documentation_tools_flac.html
- *
- * To make the API simpler, it is assumed that the user will select quality
- * profiles. Additional options that affect encoding quality and speed can
- * be added at a later stage if needed.
- *
- * By default the Subset format is used by encoders.
- *
- * TAGS such as pictures, etc, cannot be handled by an offloaded encoder and are
- * not supported in this API.
- */
-
-struct snd_enc_flac {
- __u32 num;
- __u32 gain;
-};
-
-struct snd_enc_generic {
- __u32 bw; /* encoder bandwidth */
- __s32 reserved[15];
-};
-
-union snd_codec_options {
- struct snd_enc_wma wma;
- struct snd_enc_vorbis vorbis;
- struct snd_enc_real real;
- struct snd_enc_flac flac;
- struct snd_enc_generic generic;
-};
-
-/** struct snd_codec_desc - description of codec capabilities
- * @max_ch: Maximum number of audio channels
- * @sample_rates: Sampling rates in Hz, use SNDRV_PCM_RATE_xxx for this
- * @bit_rate: Indexed array containing supported bit rates
- * @num_bitrates: Number of valid values in bit_rate array
- * @rate_control: value is specified by SND_RATECONTROLMODE defines.
- * @profiles: Supported profiles. See SND_AUDIOPROFILE defines.
- * @modes: Supported modes. See SND_AUDIOMODE defines
- * @formats: Supported formats. See SND_AUDIOSTREAMFORMAT defines
- * @min_buffer: Minimum buffer size handled by codec implementation
- * @reserved: reserved for future use
- *
- * This structure provides a scalar value for profiles, modes and stream
- * format fields.
- * If an implementation supports multiple combinations, they will be listed as
- * codecs with different descriptors, for example there would be 2 descriptors
- * for AAC-RAW and AAC-ADTS.
- * This entails some redundancy but makes it easier to avoid invalid
- * configurations.
- *
- */
-
-struct snd_codec_desc {
- __u32 max_ch;
- __u32 sample_rates;
- __u32 bit_rate[MAX_NUM_BITRATES];
- __u32 num_bitrates;
- __u32 rate_control;
- __u32 profiles;
- __u32 modes;
- __u32 formats;
- __u32 min_buffer;
- __u32 reserved[15];
-};
-
-/** struct snd_codec
- * @id: Identifies the supported audio encoder/decoder.
- * See SND_AUDIOCODEC macros.
- * @ch_in: Number of input audio channels
- * @ch_out: Number of output channels. In case of contradiction between
- * this field and the channelMode field, the channelMode field
- * overrides.
- * @sample_rate: Audio sample rate of input data
- * @bit_rate: Bitrate of encoded data. May be ignored by decoders
- * @rate_control: Encoding rate control. See SND_RATECONTROLMODE defines.
- * Encoders may rely on profiles for quality levels.
- * May be ignored by decoders.
- * @profile: Mandatory for encoders, can be mandatory for specific
- * decoders as well. See SND_AUDIOPROFILE defines.
- * @level: Supported level (Only used by WMA at the moment)
- * @ch_mode: Channel mode for encoder. See SND_AUDIOCHANMODE defines
- * @format: Format of encoded bistream. Mandatory when defined.
- * See SND_AUDIOSTREAMFORMAT defines.
- * @align: Block alignment in bytes of an audio sample.
- * Only required for PCM or IEC formats.
- * @options: encoder-specific settings
- * @reserved: reserved for future use
- */
-
-struct snd_codec {
- __u32 id;
- __u32 ch_in;
- __u32 ch_out;
- __u32 sample_rate;
- __u32 bit_rate;
- __u32 rate_control;
- __u32 profile;
- __u32 level;
- __u32 ch_mode;
- __u32 format;
- __u32 align;
- union snd_codec_options options;
- __u32 reserved[3];
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/sound/control.h b/ANDROID_3.4.5/include/sound/control.h
deleted file mode 100644
index 8332e865..00000000
--- a/ANDROID_3.4.5/include/sound/control.h
+++ /dev/null
@@ -1,243 +0,0 @@
-#ifndef __SOUND_CONTROL_H
-#define __SOUND_CONTROL_H
-
-/*
- * Header file for control interface
- * Copyright (c) by Jaroslav Kysela <perex@perex.cz>
- *
- *
- * 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 <sound/asound.h>
-
-#define snd_kcontrol_chip(kcontrol) ((kcontrol)->private_data)
-
-struct snd_kcontrol;
-typedef int (snd_kcontrol_info_t) (struct snd_kcontrol * kcontrol, struct snd_ctl_elem_info * uinfo);
-typedef int (snd_kcontrol_get_t) (struct snd_kcontrol * kcontrol, struct snd_ctl_elem_value * ucontrol);
-typedef int (snd_kcontrol_put_t) (struct snd_kcontrol * kcontrol, struct snd_ctl_elem_value * ucontrol);
-typedef int (snd_kcontrol_tlv_rw_t)(struct snd_kcontrol *kcontrol,
- int op_flag, /* 0=read,1=write,-1=command */
- unsigned int size,
- unsigned int __user *tlv);
-
-
-struct snd_kcontrol_new {
- snd_ctl_elem_iface_t iface; /* interface identifier */
- unsigned int device; /* device/client number */
- unsigned int subdevice; /* subdevice (substream) number */
- const unsigned char *name; /* ASCII name of item */
- unsigned int index; /* index of item */
- unsigned int access; /* access rights */
- unsigned int count; /* count of same elements */
- snd_kcontrol_info_t *info;
- snd_kcontrol_get_t *get;
- snd_kcontrol_put_t *put;
- union {
- snd_kcontrol_tlv_rw_t *c;
- const unsigned int *p;
- } tlv;
- unsigned long private_value;
-};
-
-struct snd_kcontrol_volatile {
- struct snd_ctl_file *owner; /* locked */
- unsigned int access; /* access rights */
-};
-
-struct snd_kcontrol {
- struct list_head list; /* list of controls */
- struct snd_ctl_elem_id id;
- unsigned int count; /* count of same elements */
- snd_kcontrol_info_t *info;
- snd_kcontrol_get_t *get;
- snd_kcontrol_put_t *put;
- union {
- snd_kcontrol_tlv_rw_t *c;
- const unsigned int *p;
- } tlv;
- unsigned long private_value;
- void *private_data;
- void (*private_free)(struct snd_kcontrol *kcontrol);
- struct snd_kcontrol_volatile vd[0]; /* volatile data */
-};
-
-#define snd_kcontrol(n) list_entry(n, struct snd_kcontrol, list)
-
-struct snd_kctl_event {
- struct list_head list; /* list of events */
- struct snd_ctl_elem_id id;
- unsigned int mask;
-};
-
-#define snd_kctl_event(n) list_entry(n, struct snd_kctl_event, list)
-
-struct pid;
-
-struct snd_ctl_file {
- struct list_head list; /* list of all control files */
- struct snd_card *card;
- struct pid *pid;
- int prefer_pcm_subdevice;
- int prefer_rawmidi_subdevice;
- wait_queue_head_t change_sleep;
- spinlock_t read_lock;
- struct fasync_struct *fasync;
- int subscribed; /* read interface is activated */
- struct list_head events; /* waiting events for read */
-};
-
-#define snd_ctl_file(n) list_entry(n, struct snd_ctl_file, list)
-
-typedef int (*snd_kctl_ioctl_func_t) (struct snd_card * card,
- struct snd_ctl_file * control,
- unsigned int cmd, unsigned long arg);
-
-void snd_ctl_notify(struct snd_card * card, unsigned int mask, struct snd_ctl_elem_id * id);
-
-struct snd_kcontrol *snd_ctl_new1(const struct snd_kcontrol_new * kcontrolnew, void * private_data);
-void snd_ctl_free_one(struct snd_kcontrol * kcontrol);
-int snd_ctl_add(struct snd_card * card, struct snd_kcontrol * kcontrol);
-int snd_ctl_remove(struct snd_card * card, struct snd_kcontrol * kcontrol);
-int snd_ctl_replace(struct snd_card *card, struct snd_kcontrol *kcontrol, bool add_on_replace);
-int snd_ctl_remove_id(struct snd_card * card, struct snd_ctl_elem_id *id);
-int snd_ctl_rename_id(struct snd_card * card, struct snd_ctl_elem_id *src_id, struct snd_ctl_elem_id *dst_id);
-int snd_ctl_activate_id(struct snd_card *card, struct snd_ctl_elem_id *id,
- int active);
-struct snd_kcontrol *snd_ctl_find_numid(struct snd_card * card, unsigned int numid);
-struct snd_kcontrol *snd_ctl_find_id(struct snd_card * card, struct snd_ctl_elem_id *id);
-
-int snd_ctl_create(struct snd_card *card);
-
-int snd_ctl_register_ioctl(snd_kctl_ioctl_func_t fcn);
-int snd_ctl_unregister_ioctl(snd_kctl_ioctl_func_t fcn);
-#ifdef CONFIG_COMPAT
-int snd_ctl_register_ioctl_compat(snd_kctl_ioctl_func_t fcn);
-int snd_ctl_unregister_ioctl_compat(snd_kctl_ioctl_func_t fcn);
-#else
-#define snd_ctl_register_ioctl_compat(fcn)
-#define snd_ctl_unregister_ioctl_compat(fcn)
-#endif
-
-static inline unsigned int snd_ctl_get_ioffnum(struct snd_kcontrol *kctl, struct snd_ctl_elem_id *id)
-{
- return id->numid - kctl->id.numid;
-}
-
-static inline unsigned int snd_ctl_get_ioffidx(struct snd_kcontrol *kctl, struct snd_ctl_elem_id *id)
-{
- return id->index - kctl->id.index;
-}
-
-static inline unsigned int snd_ctl_get_ioff(struct snd_kcontrol *kctl, struct snd_ctl_elem_id *id)
-{
- if (id->numid) {
- return snd_ctl_get_ioffnum(kctl, id);
- } else {
- return snd_ctl_get_ioffidx(kctl, id);
- }
-}
-
-static inline struct snd_ctl_elem_id *snd_ctl_build_ioff(struct snd_ctl_elem_id *dst_id,
- struct snd_kcontrol *src_kctl,
- unsigned int offset)
-{
- *dst_id = src_kctl->id;
- dst_id->index += offset;
- dst_id->numid += offset;
- return dst_id;
-}
-
-/*
- * Frequently used control callbacks/helpers
- */
-int snd_ctl_boolean_mono_info(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_info *uinfo);
-int snd_ctl_boolean_stereo_info(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_info *uinfo);
-int snd_ctl_enum_info(struct snd_ctl_elem_info *info, unsigned int channels,
- unsigned int items, const char *const names[]);
-
-/*
- * virtual master control
- */
-struct snd_kcontrol *snd_ctl_make_virtual_master(char *name,
- const unsigned int *tlv);
-int _snd_ctl_add_slave(struct snd_kcontrol *master, struct snd_kcontrol *slave,
- unsigned int flags);
-/* optional flags for slave */
-#define SND_CTL_SLAVE_NEED_UPDATE (1 << 0)
-
-/**
- * snd_ctl_add_slave - Add a virtual slave control
- * @master: vmaster element
- * @slave: slave element to add
- *
- * Add a virtual slave control to the given master element created via
- * snd_ctl_create_virtual_master() beforehand.
- * Returns zero if successful or a negative error code.
- *
- * All slaves must be the same type (returning the same information
- * via info callback). The function doesn't check it, so it's your
- * responsibility.
- *
- * Also, some additional limitations:
- * at most two channels,
- * logarithmic volume control (dB level) thus no linear volume,
- * master can only attenuate the volume without gain
- */
-static inline int
-snd_ctl_add_slave(struct snd_kcontrol *master, struct snd_kcontrol *slave)
-{
- return _snd_ctl_add_slave(master, slave, 0);
-}
-
-/**
- * snd_ctl_add_slave_uncached - Add a virtual slave control
- * @master: vmaster element
- * @slave: slave element to add
- *
- * Add a virtual slave control to the given master.
- * Unlike snd_ctl_add_slave(), the element added via this function
- * is supposed to have volatile values, and get callback is called
- * at each time quried from the master.
- *
- * When the control peeks the hardware values directly and the value
- * can be changed by other means than the put callback of the element,
- * this function should be used to keep the value always up-to-date.
- */
-static inline int
-snd_ctl_add_slave_uncached(struct snd_kcontrol *master,
- struct snd_kcontrol *slave)
-{
- return _snd_ctl_add_slave(master, slave, SND_CTL_SLAVE_NEED_UPDATE);
-}
-
-int snd_ctl_add_vmaster_hook(struct snd_kcontrol *kctl,
- void (*hook)(void *private_data, int),
- void *private_data);
-void snd_ctl_sync_vmaster_hook(struct snd_kcontrol *kctl);
-
-/*
- * Helper functions for jack-detection controls
- */
-struct snd_kcontrol *
-snd_kctl_jack_new(const char *name, int idx, void *private_data);
-void snd_kctl_jack_report(struct snd_card *card,
- struct snd_kcontrol *kctl, bool status);
-
-#endif /* __SOUND_CONTROL_H */
diff --git a/ANDROID_3.4.5/include/sound/core.h b/ANDROID_3.4.5/include/sound/core.h
deleted file mode 100644
index 93896ad1..00000000
--- a/ANDROID_3.4.5/include/sound/core.h
+++ /dev/null
@@ -1,474 +0,0 @@
-#ifndef __SOUND_CORE_H
-#define __SOUND_CORE_H
-
-/*
- * Main header file for the ALSA driver
- * Copyright (c) 1994-2001 by Jaroslav Kysela <perex@perex.cz>
- *
- *
- * 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/sched.h> /* wake_up() */
-#include <linux/mutex.h> /* struct mutex */
-#include <linux/rwsem.h> /* struct rw_semaphore */
-#include <linux/pm.h> /* pm_message_t */
-#include <linux/stringify.h>
-
-/* number of supported soundcards */
-#ifdef CONFIG_SND_DYNAMIC_MINORS
-#define SNDRV_CARDS 32
-#else
-#define SNDRV_CARDS 8 /* don't change - minor numbers */
-#endif
-
-#define CONFIG_SND_MAJOR 116 /* standard configuration */
-
-/* forward declarations */
-struct pci_dev;
-struct module;
-struct device;
-struct device_attribute;
-
-/* device allocation stuff */
-
-#define SNDRV_DEV_TYPE_RANGE_SIZE 0x1000
-
-typedef int __bitwise snd_device_type_t;
-#define SNDRV_DEV_TOPLEVEL ((__force snd_device_type_t) 0)
-#define SNDRV_DEV_CONTROL ((__force snd_device_type_t) 1)
-#define SNDRV_DEV_LOWLEVEL_PRE ((__force snd_device_type_t) 2)
-#define SNDRV_DEV_LOWLEVEL_NORMAL ((__force snd_device_type_t) 0x1000)
-#define SNDRV_DEV_PCM ((__force snd_device_type_t) 0x1001)
-#define SNDRV_DEV_RAWMIDI ((__force snd_device_type_t) 0x1002)
-#define SNDRV_DEV_TIMER ((__force snd_device_type_t) 0x1003)
-#define SNDRV_DEV_SEQUENCER ((__force snd_device_type_t) 0x1004)
-#define SNDRV_DEV_HWDEP ((__force snd_device_type_t) 0x1005)
-#define SNDRV_DEV_INFO ((__force snd_device_type_t) 0x1006)
-#define SNDRV_DEV_BUS ((__force snd_device_type_t) 0x1007)
-#define SNDRV_DEV_CODEC ((__force snd_device_type_t) 0x1008)
-#define SNDRV_DEV_JACK ((__force snd_device_type_t) 0x1009)
-#define SNDRV_DEV_COMPRESS ((__force snd_device_type_t) 0x100A)
-#define SNDRV_DEV_LOWLEVEL ((__force snd_device_type_t) 0x2000)
-
-typedef int __bitwise snd_device_state_t;
-#define SNDRV_DEV_BUILD ((__force snd_device_state_t) 0)
-#define SNDRV_DEV_REGISTERED ((__force snd_device_state_t) 1)
-#define SNDRV_DEV_DISCONNECTED ((__force snd_device_state_t) 2)
-
-typedef int __bitwise snd_device_cmd_t;
-#define SNDRV_DEV_CMD_PRE ((__force snd_device_cmd_t) 0)
-#define SNDRV_DEV_CMD_NORMAL ((__force snd_device_cmd_t) 1)
-#define SNDRV_DEV_CMD_POST ((__force snd_device_cmd_t) 2)
-
-struct snd_device;
-
-struct snd_device_ops {
- int (*dev_free)(struct snd_device *dev);
- int (*dev_register)(struct snd_device *dev);
- int (*dev_disconnect)(struct snd_device *dev);
-};
-
-struct snd_device {
- struct list_head list; /* list of registered devices */
- struct snd_card *card; /* card which holds this device */
- snd_device_state_t state; /* state of the device */
- snd_device_type_t type; /* device type */
- void *device_data; /* device structure */
- struct snd_device_ops *ops; /* operations */
-};
-
-#define snd_device(n) list_entry(n, struct snd_device, list)
-
-/* main structure for soundcard */
-
-struct snd_card {
- int number; /* number of soundcard (index to
- snd_cards) */
-
- char id[16]; /* id string of this card */
- char driver[16]; /* driver name */
- char shortname[32]; /* short name of this soundcard */
- char longname[80]; /* name of this soundcard */
- char mixername[80]; /* mixer name */
- char components[128]; /* card components delimited with
- space */
- struct module *module; /* top-level module */
-
- void *private_data; /* private data for soundcard */
- void (*private_free) (struct snd_card *card); /* callback for freeing of
- private data */
- struct list_head devices; /* devices */
-
- unsigned int last_numid; /* last used numeric ID */
- struct rw_semaphore controls_rwsem; /* controls list lock */
- rwlock_t ctl_files_rwlock; /* ctl_files list lock */
- int controls_count; /* count of all controls */
- int user_ctl_count; /* count of all user controls */
- struct list_head controls; /* all controls for this card */
- struct list_head ctl_files; /* active control files */
-
- struct snd_info_entry *proc_root; /* root for soundcard specific files */
- struct snd_info_entry *proc_id; /* the card id */
- struct proc_dir_entry *proc_root_link; /* number link to real id */
-
- struct list_head files_list; /* all files associated to this card */
- struct snd_shutdown_f_ops *s_f_ops; /* file operations in the shutdown
- state */
- spinlock_t files_lock; /* lock the files for this card */
- int shutdown; /* this card is going down */
- int free_on_last_close; /* free in context of file_release */
- wait_queue_head_t shutdown_sleep;
- atomic_t refcount; /* refcount for disconnection */
- struct device *dev; /* device assigned to this card */
- struct device *card_dev; /* cardX object for sysfs */
-
-#ifdef CONFIG_PM
- unsigned int power_state; /* power state */
- struct mutex power_lock; /* power lock */
- wait_queue_head_t power_sleep;
-#endif
-
-#if defined(CONFIG_SND_MIXER_OSS) || defined(CONFIG_SND_MIXER_OSS_MODULE)
- struct snd_mixer_oss *mixer_oss;
- int mixer_oss_change_count;
-#endif
-};
-
-#ifdef CONFIG_PM
-static inline void snd_power_lock(struct snd_card *card)
-{
- mutex_lock(&card->power_lock);
-}
-
-static inline void snd_power_unlock(struct snd_card *card)
-{
- mutex_unlock(&card->power_lock);
-}
-
-static inline unsigned int snd_power_get_state(struct snd_card *card)
-{
- return card->power_state;
-}
-
-static inline void snd_power_change_state(struct snd_card *card, unsigned int state)
-{
- card->power_state = state;
- wake_up(&card->power_sleep);
-}
-
-/* init.c */
-int snd_power_wait(struct snd_card *card, unsigned int power_state);
-
-#else /* ! CONFIG_PM */
-
-#define snd_power_lock(card) do { (void)(card); } while (0)
-#define snd_power_unlock(card) do { (void)(card); } while (0)
-static inline int snd_power_wait(struct snd_card *card, unsigned int state) { return 0; }
-#define snd_power_get_state(card) ({ (void)(card); SNDRV_CTL_POWER_D0; })
-#define snd_power_change_state(card, state) do { (void)(card); } while (0)
-
-#endif /* CONFIG_PM */
-
-struct snd_minor {
- int type; /* SNDRV_DEVICE_TYPE_XXX */
- int card; /* card number */
- int device; /* device number */
- const struct file_operations *f_ops; /* file operations */
- void *private_data; /* private data for f_ops->open */
- struct device *dev; /* device for sysfs */
- struct snd_card *card_ptr; /* assigned card instance */
-};
-
-/* return a device pointer linked to each sound device as a parent */
-static inline struct device *snd_card_get_device_link(struct snd_card *card)
-{
- return card ? card->card_dev : NULL;
-}
-
-/* sound.c */
-
-extern int snd_major;
-extern int snd_ecards_limit;
-extern struct class *sound_class;
-
-void snd_request_card(int card);
-
-int snd_register_device_for_dev(int type, struct snd_card *card,
- int dev,
- const struct file_operations *f_ops,
- void *private_data,
- const char *name,
- struct device *device);
-
-/**
- * snd_register_device - Register the ALSA device file for the card
- * @type: the device type, SNDRV_DEVICE_TYPE_XXX
- * @card: the card instance
- * @dev: the device index
- * @f_ops: the file operations
- * @private_data: user pointer for f_ops->open()
- * @name: the device file name
- *
- * Registers an ALSA device file for the given card.
- * The operators have to be set in reg parameter.
- *
- * This function uses the card's device pointer to link to the
- * correct &struct device.
- *
- * Returns zero if successful, or a negative error code on failure.
- */
-static inline int snd_register_device(int type, struct snd_card *card, int dev,
- const struct file_operations *f_ops,
- void *private_data,
- const char *name)
-{
- return snd_register_device_for_dev(type, card, dev, f_ops,
- private_data, name,
- snd_card_get_device_link(card));
-}
-
-int snd_unregister_device(int type, struct snd_card *card, int dev);
-void *snd_lookup_minor_data(unsigned int minor, int type);
-int snd_add_device_sysfs_file(int type, struct snd_card *card, int dev,
- struct device_attribute *attr);
-
-#ifdef CONFIG_SND_OSSEMUL
-int snd_register_oss_device(int type, struct snd_card *card, int dev,
- const struct file_operations *f_ops, void *private_data,
- const char *name);
-int snd_unregister_oss_device(int type, struct snd_card *card, int dev);
-void *snd_lookup_oss_minor_data(unsigned int minor, int type);
-#endif
-
-int snd_minor_info_init(void);
-int snd_minor_info_done(void);
-
-/* sound_oss.c */
-
-#ifdef CONFIG_SND_OSSEMUL
-int snd_minor_info_oss_init(void);
-int snd_minor_info_oss_done(void);
-#else
-static inline int snd_minor_info_oss_init(void) { return 0; }
-static inline int snd_minor_info_oss_done(void) { return 0; }
-#endif
-
-/* memory.c */
-
-int copy_to_user_fromio(void __user *dst, const volatile void __iomem *src, size_t count);
-int copy_from_user_toio(volatile void __iomem *dst, const void __user *src, size_t count);
-
-/* init.c */
-
-extern struct snd_card *snd_cards[SNDRV_CARDS];
-int snd_card_locked(int card);
-#if defined(CONFIG_SND_MIXER_OSS) || defined(CONFIG_SND_MIXER_OSS_MODULE)
-#define SND_MIXER_OSS_NOTIFY_REGISTER 0
-#define SND_MIXER_OSS_NOTIFY_DISCONNECT 1
-#define SND_MIXER_OSS_NOTIFY_FREE 2
-extern int (*snd_mixer_oss_notify_callback)(struct snd_card *card, int cmd);
-#endif
-
-int snd_card_create(int idx, const char *id,
- struct module *module, int extra_size,
- struct snd_card **card_ret);
-
-int snd_card_disconnect(struct snd_card *card);
-int snd_card_free(struct snd_card *card);
-int snd_card_free_when_closed(struct snd_card *card);
-void snd_card_set_id(struct snd_card *card, const char *id);
-int snd_card_register(struct snd_card *card);
-int snd_card_info_init(void);
-int snd_card_info_done(void);
-int snd_component_add(struct snd_card *card, const char *component);
-int snd_card_file_add(struct snd_card *card, struct file *file);
-int snd_card_file_remove(struct snd_card *card, struct file *file);
-void snd_card_unref(struct snd_card *card);
-
-#define snd_card_set_dev(card, devptr) ((card)->dev = (devptr))
-
-/* device.c */
-
-int snd_device_new(struct snd_card *card, snd_device_type_t type,
- void *device_data, struct snd_device_ops *ops);
-int snd_device_register(struct snd_card *card, void *device_data);
-int snd_device_register_all(struct snd_card *card);
-int snd_device_disconnect(struct snd_card *card, void *device_data);
-int snd_device_disconnect_all(struct snd_card *card);
-int snd_device_free(struct snd_card *card, void *device_data);
-int snd_device_free_all(struct snd_card *card, snd_device_cmd_t cmd);
-
-/* isadma.c */
-
-#ifdef CONFIG_ISA_DMA_API
-#define DMA_MODE_NO_ENABLE 0x0100
-
-void snd_dma_program(unsigned long dma, unsigned long addr, unsigned int size, unsigned short mode);
-void snd_dma_disable(unsigned long dma);
-unsigned int snd_dma_pointer(unsigned long dma, unsigned int size);
-#endif
-
-/* misc.c */
-struct resource;
-void release_and_free_resource(struct resource *res);
-
-/* --- */
-
-/* sound printk debug levels */
-enum {
- SND_PR_ALWAYS,
- SND_PR_DEBUG,
- SND_PR_VERBOSE,
-};
-
-#if defined(CONFIG_SND_DEBUG) || defined(CONFIG_SND_VERBOSE_PRINTK)
-__printf(4, 5)
-void __snd_printk(unsigned int level, const char *file, int line,
- const char *format, ...);
-#else
-#define __snd_printk(level, file, line, format, args...) \
- printk(format, ##args)
-#endif
-
-/**
- * snd_printk - printk wrapper
- * @fmt: format string
- *
- * Works like printk() but prints the file and the line of the caller
- * when configured with CONFIG_SND_VERBOSE_PRINTK.
- */
-#define snd_printk(fmt, args...) \
- __snd_printk(0, __FILE__, __LINE__, fmt, ##args)
-
-#ifdef CONFIG_SND_DEBUG
-/**
- * snd_printd - debug printk
- * @fmt: format string
- *
- * Works like snd_printk() for debugging purposes.
- * Ignored when CONFIG_SND_DEBUG is not set.
- */
-#define snd_printd(fmt, args...) \
- __snd_printk(1, __FILE__, __LINE__, fmt, ##args)
-#define _snd_printd(level, fmt, args...) \
- __snd_printk(level, __FILE__, __LINE__, fmt, ##args)
-
-/**
- * snd_BUG - give a BUG warning message and stack trace
- *
- * Calls WARN() if CONFIG_SND_DEBUG is set.
- * Ignored when CONFIG_SND_DEBUG is not set.
- */
-#define snd_BUG() WARN(1, "BUG?\n")
-
-/**
- * snd_BUG_ON - debugging check macro
- * @cond: condition to evaluate
- *
- * When CONFIG_SND_DEBUG is set, this macro evaluates the given condition,
- * and call WARN() and returns the value if it's non-zero.
- *
- * When CONFIG_SND_DEBUG is not set, this just returns zero, and the given
- * condition is ignored.
- *
- * NOTE: the argument won't be evaluated at all when CONFIG_SND_DEBUG=n.
- * Thus, don't put any statement that influences on the code behavior,
- * such as pre/post increment, to the argument of this macro.
- * If you want to evaluate and give a warning, use standard WARN_ON().
- */
-#define snd_BUG_ON(cond) WARN((cond), "BUG? (%s)\n", __stringify(cond))
-
-#else /* !CONFIG_SND_DEBUG */
-
-#define snd_printd(fmt, args...) do { } while (0)
-#define _snd_printd(level, fmt, args...) do { } while (0)
-#define snd_BUG() do { } while (0)
-static inline int __snd_bug_on(int cond)
-{
- return 0;
-}
-#define snd_BUG_ON(cond) __snd_bug_on(0 && (cond)) /* always false */
-
-#endif /* CONFIG_SND_DEBUG */
-
-#ifdef CONFIG_SND_DEBUG_VERBOSE
-/**
- * snd_printdd - debug printk
- * @format: format string
- *
- * Works like snd_printk() for debugging purposes.
- * Ignored when CONFIG_SND_DEBUG_VERBOSE is not set.
- */
-#define snd_printdd(format, args...) \
- __snd_printk(2, __FILE__, __LINE__, format, ##args)
-#else
-#define snd_printdd(format, args...) do { } while (0)
-#endif
-
-
-#define SNDRV_OSS_VERSION ((3<<16)|(8<<8)|(1<<4)|(0)) /* 3.8.1a */
-
-/* for easier backward-porting */
-#if defined(CONFIG_GAMEPORT) || defined(CONFIG_GAMEPORT_MODULE)
-#define gameport_set_dev_parent(gp,xdev) ((gp)->dev.parent = (xdev))
-#define gameport_set_port_data(gp,r) ((gp)->port_data = (r))
-#define gameport_get_port_data(gp) (gp)->port_data
-#endif
-
-#ifdef CONFIG_PCI
-/* PCI quirk list helper */
-struct snd_pci_quirk {
- unsigned short subvendor; /* PCI subvendor ID */
- unsigned short subdevice; /* PCI subdevice ID */
- unsigned short subdevice_mask; /* bitmask to match */
- int value; /* value */
-#ifdef CONFIG_SND_DEBUG_VERBOSE
- const char *name; /* name of the device (optional) */
-#endif
-};
-
-#define _SND_PCI_QUIRK_ID_MASK(vend, mask, dev) \
- .subvendor = (vend), .subdevice = (dev), .subdevice_mask = (mask)
-#define _SND_PCI_QUIRK_ID(vend, dev) \
- _SND_PCI_QUIRK_ID_MASK(vend, 0xffff, dev)
-#define SND_PCI_QUIRK_ID(vend,dev) {_SND_PCI_QUIRK_ID(vend, dev)}
-#ifdef CONFIG_SND_DEBUG_VERBOSE
-#define SND_PCI_QUIRK(vend,dev,xname,val) \
- {_SND_PCI_QUIRK_ID(vend, dev), .value = (val), .name = (xname)}
-#define SND_PCI_QUIRK_VENDOR(vend, xname, val) \
- {_SND_PCI_QUIRK_ID_MASK(vend, 0, 0), .value = (val), .name = (xname)}
-#define SND_PCI_QUIRK_MASK(vend, mask, dev, xname, val) \
- {_SND_PCI_QUIRK_ID_MASK(vend, mask, dev), \
- .value = (val), .name = (xname)}
-#else
-#define SND_PCI_QUIRK(vend,dev,xname,val) \
- {_SND_PCI_QUIRK_ID(vend, dev), .value = (val)}
-#define SND_PCI_QUIRK_MASK(vend, mask, dev, xname, val) \
- {_SND_PCI_QUIRK_ID_MASK(vend, mask, dev), .value = (val)}
-#define SND_PCI_QUIRK_VENDOR(vend, xname, val) \
- {_SND_PCI_QUIRK_ID_MASK(vend, 0, 0), .value = (val)}
-#endif
-
-const struct snd_pci_quirk *
-snd_pci_quirk_lookup(struct pci_dev *pci, const struct snd_pci_quirk *list);
-
-const struct snd_pci_quirk *
-snd_pci_quirk_lookup_id(u16 vendor, u16 device,
- const struct snd_pci_quirk *list);
-#endif
-
-#endif /* __SOUND_CORE_H */
diff --git a/ANDROID_3.4.5/include/sound/cs4231-regs.h b/ANDROID_3.4.5/include/sound/cs4231-regs.h
deleted file mode 100644
index 66d28c2c..00000000
--- a/ANDROID_3.4.5/include/sound/cs4231-regs.h
+++ /dev/null
@@ -1,187 +0,0 @@
-#ifndef __SOUND_CS4231_REGS_H
-#define __SOUND_CS4231_REGS_H
-
-/*
- * Copyright (c) by Jaroslav Kysela <perex@perex.cz>
- * Definitions for CS4231 & InterWave chips & compatible chips registers
- *
- *
- * 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
- *
- */
-
-/* IO ports */
-
-#define CS4231P(x) (c_d_c_CS4231##x)
-
-#define c_d_c_CS4231REGSEL 0
-#define c_d_c_CS4231REG 1
-#define c_d_c_CS4231STATUS 2
-#define c_d_c_CS4231PIO 3
-
-/* codec registers */
-
-#define CS4231_LEFT_INPUT 0x00 /* left input control */
-#define CS4231_RIGHT_INPUT 0x01 /* right input control */
-#define CS4231_AUX1_LEFT_INPUT 0x02 /* left AUX1 input control */
-#define CS4231_AUX1_RIGHT_INPUT 0x03 /* right AUX1 input control */
-#define CS4231_AUX2_LEFT_INPUT 0x04 /* left AUX2 input control */
-#define CS4231_AUX2_RIGHT_INPUT 0x05 /* right AUX2 input control */
-#define CS4231_LEFT_OUTPUT 0x06 /* left output control register */
-#define CS4231_RIGHT_OUTPUT 0x07 /* right output control register */
-#define CS4231_PLAYBK_FORMAT 0x08 /* clock and data format - playback - bits 7-0 MCE */
-#define CS4231_IFACE_CTRL 0x09 /* interface control - bits 7-2 MCE */
-#define CS4231_PIN_CTRL 0x0a /* pin control */
-#define CS4231_TEST_INIT 0x0b /* test and initialization */
-#define CS4231_MISC_INFO 0x0c /* miscellaneous information */
-#define CS4231_LOOPBACK 0x0d /* loopback control */
-#define CS4231_PLY_UPR_CNT 0x0e /* playback upper base count */
-#define CS4231_PLY_LWR_CNT 0x0f /* playback lower base count */
-#define CS4231_ALT_FEATURE_1 0x10 /* alternate #1 feature enable */
-#define AD1845_AF1_MIC_LEFT 0x10 /* alternate #1 feature + MIC left */
-#define CS4231_ALT_FEATURE_2 0x11 /* alternate #2 feature enable */
-#define AD1845_AF2_MIC_RIGHT 0x11 /* alternate #2 feature + MIC right */
-#define CS4231_LEFT_LINE_IN 0x12 /* left line input control */
-#define CS4231_RIGHT_LINE_IN 0x13 /* right line input control */
-#define CS4231_TIMER_LOW 0x14 /* timer low byte */
-#define CS4231_TIMER_HIGH 0x15 /* timer high byte */
-#define CS4231_LEFT_MIC_INPUT 0x16 /* left MIC input control register (InterWave only) */
-#define AD1845_UPR_FREQ_SEL 0x16 /* upper byte of frequency select */
-#define CS4231_RIGHT_MIC_INPUT 0x17 /* right MIC input control register (InterWave only) */
-#define AD1845_LWR_FREQ_SEL 0x17 /* lower byte of frequency select */
-#define CS4236_EXT_REG 0x17 /* extended register access */
-#define CS4231_IRQ_STATUS 0x18 /* irq status register */
-#define CS4231_LINE_LEFT_OUTPUT 0x19 /* left line output control register (InterWave only) */
-#define CS4231_VERSION 0x19 /* CS4231(A) - version values */
-#define CS4231_MONO_CTRL 0x1a /* mono input/output control */
-#define CS4231_LINE_RIGHT_OUTPUT 0x1b /* right line output control register (InterWave only) */
-#define AD1845_PWR_DOWN 0x1b /* power down control */
-#define CS4235_LEFT_MASTER 0x1b /* left master output control */
-#define CS4231_REC_FORMAT 0x1c /* clock and data format - record - bits 7-0 MCE */
-#define AD1845_CLOCK 0x1d /* crystal clock select and total power down */
-#define CS4235_RIGHT_MASTER 0x1d /* right master output control */
-#define CS4231_REC_UPR_CNT 0x1e /* record upper count */
-#define CS4231_REC_LWR_CNT 0x1f /* record lower count */
-
-/* definitions for codec register select port - CODECP( REGSEL ) */
-
-#define CS4231_INIT 0x80 /* CODEC is initializing */
-#define CS4231_MCE 0x40 /* mode change enable */
-#define CS4231_TRD 0x20 /* transfer request disable */
-
-/* definitions for codec status register - CODECP( STATUS ) */
-
-#define CS4231_GLOBALIRQ 0x01 /* IRQ is active */
-
-/* definitions for codec irq status */
-
-#define CS4231_PLAYBACK_IRQ 0x10
-#define CS4231_RECORD_IRQ 0x20
-#define CS4231_TIMER_IRQ 0x40
-#define CS4231_ALL_IRQS 0x70
-#define CS4231_REC_UNDERRUN 0x08
-#define CS4231_REC_OVERRUN 0x04
-#define CS4231_PLY_OVERRUN 0x02
-#define CS4231_PLY_UNDERRUN 0x01
-
-/* definitions for CS4231_LEFT_INPUT and CS4231_RIGHT_INPUT registers */
-
-#define CS4231_ENABLE_MIC_GAIN 0x20
-
-#define CS4231_MIXS_LINE 0x00
-#define CS4231_MIXS_AUX1 0x40
-#define CS4231_MIXS_MIC 0x80
-#define CS4231_MIXS_ALL 0xc0
-
-/* definitions for clock and data format register - CS4231_PLAYBK_FORMAT */
-
-#define CS4231_LINEAR_8 0x00 /* 8-bit unsigned data */
-#define CS4231_ALAW_8 0x60 /* 8-bit A-law companded */
-#define CS4231_ULAW_8 0x20 /* 8-bit U-law companded */
-#define CS4231_LINEAR_16 0x40 /* 16-bit twos complement data - little endian */
-#define CS4231_LINEAR_16_BIG 0xc0 /* 16-bit twos complement data - big endian */
-#define CS4231_ADPCM_16 0xa0 /* 16-bit ADPCM */
-#define CS4231_STEREO 0x10 /* stereo mode */
-/* bits 3-1 define frequency divisor */
-#define CS4231_XTAL1 0x00 /* 24.576 crystal */
-#define CS4231_XTAL2 0x01 /* 16.9344 crystal */
-
-/* definitions for interface control register - CS4231_IFACE_CTRL */
-
-#define CS4231_RECORD_PIO 0x80 /* record PIO enable */
-#define CS4231_PLAYBACK_PIO 0x40 /* playback PIO enable */
-#define CS4231_CALIB_MODE 0x18 /* calibration mode bits */
-#define CS4231_AUTOCALIB 0x08 /* auto calibrate */
-#define CS4231_SINGLE_DMA 0x04 /* use single DMA channel */
-#define CS4231_RECORD_ENABLE 0x02 /* record enable */
-#define CS4231_PLAYBACK_ENABLE 0x01 /* playback enable */
-
-/* definitions for pin control register - CS4231_PIN_CTRL */
-
-#define CS4231_IRQ_ENABLE 0x02 /* enable IRQ */
-#define CS4231_XCTL1 0x40 /* external control #1 */
-#define CS4231_XCTL0 0x80 /* external control #0 */
-
-/* definitions for test and init register - CS4231_TEST_INIT */
-
-#define CS4231_CALIB_IN_PROGRESS 0x20 /* auto calibrate in progress */
-#define CS4231_DMA_REQUEST 0x10 /* DMA request in progress */
-
-/* definitions for misc control register - CS4231_MISC_INFO */
-
-#define CS4231_MODE2 0x40 /* MODE 2 */
-#define CS4231_IW_MODE3 0x6c /* MODE 3 - InterWave enhanced mode */
-#define CS4231_4236_MODE3 0xe0 /* MODE 3 - CS4236+ enhanced mode */
-
-/* definitions for alternate feature 1 register - CS4231_ALT_FEATURE_1 */
-
-#define CS4231_DACZ 0x01 /* zero DAC when underrun */
-#define CS4231_TIMER_ENABLE 0x40 /* codec timer enable */
-#define CS4231_OLB 0x80 /* output level bit */
-
-/* definitions for Extended Registers - CS4236+ */
-
-#define CS4236_REG(i23val) (((i23val << 2) & 0x10) | ((i23val >> 4) & 0x0f))
-#define CS4236_I23VAL(reg) ((((reg)&0xf) << 4) | (((reg)&0x10) >> 2) | 0x8)
-
-#define CS4236_LEFT_LINE 0x08 /* left LINE alternate volume */
-#define CS4236_RIGHT_LINE 0x18 /* right LINE alternate volume */
-#define CS4236_LEFT_MIC 0x28 /* left MIC volume */
-#define CS4236_RIGHT_MIC 0x38 /* right MIC volume */
-#define CS4236_LEFT_MIX_CTRL 0x48 /* synthesis and left input mixer control */
-#define CS4236_RIGHT_MIX_CTRL 0x58 /* right input mixer control */
-#define CS4236_LEFT_FM 0x68 /* left FM volume */
-#define CS4236_RIGHT_FM 0x78 /* right FM volume */
-#define CS4236_LEFT_DSP 0x88 /* left DSP serial port volume */
-#define CS4236_RIGHT_DSP 0x98 /* right DSP serial port volume */
-#define CS4236_RIGHT_LOOPBACK 0xa8 /* right loopback monitor volume */
-#define CS4236_DAC_MUTE 0xb8 /* DAC mute and IFSE enable */
-#define CS4236_ADC_RATE 0xc8 /* indenpendent ADC sample frequency */
-#define CS4236_DAC_RATE 0xd8 /* indenpendent DAC sample frequency */
-#define CS4236_LEFT_MASTER 0xe8 /* left master digital audio volume */
-#define CS4236_RIGHT_MASTER 0xf8 /* right master digital audio volume */
-#define CS4236_LEFT_WAVE 0x0c /* left wavetable serial port volume */
-#define CS4236_RIGHT_WAVE 0x1c /* right wavetable serial port volume */
-#define CS4236_VERSION 0x9c /* chip version and ID */
-
-/* definitions for extended registers - OPTI93X */
-#define OPTi931_AUX_LEFT_INPUT 0x10
-#define OPTi931_AUX_RIGHT_INPUT 0x11
-#define OPTi93X_MIC_LEFT_INPUT 0x14
-#define OPTi93X_MIC_RIGHT_INPUT 0x15
-#define OPTi93X_OUT_LEFT 0x16
-#define OPTi93X_OUT_RIGHT 0x17
-
-#endif /* __SOUND_CS4231_REGS_H */
diff --git a/ANDROID_3.4.5/include/sound/cs4271.h b/ANDROID_3.4.5/include/sound/cs4271.h
deleted file mode 100644
index 50a059e7..00000000
--- a/ANDROID_3.4.5/include/sound/cs4271.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Definitions for CS4271 ASoC codec driver
- *
- * Copyright (c) 2010 Alexander Sverdlin <subaparts@yandex.ru>
- *
- * 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 __CS4271_H
-#define __CS4271_H
-
-struct cs4271_platform_data {
- int gpio_nreset; /* GPIO driving Reset pin, if any */
-};
-
-#endif /* __CS4271_H */
diff --git a/ANDROID_3.4.5/include/sound/cs46xx.h b/ANDROID_3.4.5/include/sound/cs46xx.h
deleted file mode 100644
index e3005a67..00000000
--- a/ANDROID_3.4.5/include/sound/cs46xx.h
+++ /dev/null
@@ -1,1745 +0,0 @@
-#ifndef __SOUND_CS46XX_H
-#define __SOUND_CS46XX_H
-
-/*
- * Copyright (c) by Jaroslav Kysela <perex@perex.cz>,
- * Cirrus Logic, Inc.
- * Definitions for Cirrus Logic CS46xx chips
- *
- *
- * 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 "pcm.h"
-#include "pcm-indirect.h"
-#include "rawmidi.h"
-#include "ac97_codec.h"
-#include "cs46xx_dsp_spos.h"
-
-/*
- * Direct registers
- */
-
-/*
- * The following define the offsets of the registers accessed via base address
- * register zero on the CS46xx part.
- */
-#define BA0_HISR 0x00000000
-#define BA0_HSR0 0x00000004
-#define BA0_HICR 0x00000008
-#define BA0_DMSR 0x00000100
-#define BA0_HSAR 0x00000110
-#define BA0_HDAR 0x00000114
-#define BA0_HDMR 0x00000118
-#define BA0_HDCR 0x0000011C
-#define BA0_PFMC 0x00000200
-#define BA0_PFCV1 0x00000204
-#define BA0_PFCV2 0x00000208
-#define BA0_PCICFG00 0x00000300
-#define BA0_PCICFG04 0x00000304
-#define BA0_PCICFG08 0x00000308
-#define BA0_PCICFG0C 0x0000030C
-#define BA0_PCICFG10 0x00000310
-#define BA0_PCICFG14 0x00000314
-#define BA0_PCICFG18 0x00000318
-#define BA0_PCICFG1C 0x0000031C
-#define BA0_PCICFG20 0x00000320
-#define BA0_PCICFG24 0x00000324
-#define BA0_PCICFG28 0x00000328
-#define BA0_PCICFG2C 0x0000032C
-#define BA0_PCICFG30 0x00000330
-#define BA0_PCICFG34 0x00000334
-#define BA0_PCICFG38 0x00000338
-#define BA0_PCICFG3C 0x0000033C
-#define BA0_CLKCR1 0x00000400
-#define BA0_CLKCR2 0x00000404
-#define BA0_PLLM 0x00000408
-#define BA0_PLLCC 0x0000040C
-#define BA0_FRR 0x00000410
-#define BA0_CFL1 0x00000414
-#define BA0_CFL2 0x00000418
-#define BA0_SERMC1 0x00000420
-#define BA0_SERMC2 0x00000424
-#define BA0_SERC1 0x00000428
-#define BA0_SERC2 0x0000042C
-#define BA0_SERC3 0x00000430
-#define BA0_SERC4 0x00000434
-#define BA0_SERC5 0x00000438
-#define BA0_SERBSP 0x0000043C
-#define BA0_SERBST 0x00000440
-#define BA0_SERBCM 0x00000444
-#define BA0_SERBAD 0x00000448
-#define BA0_SERBCF 0x0000044C
-#define BA0_SERBWP 0x00000450
-#define BA0_SERBRP 0x00000454
-#ifndef NO_CS4612
-#define BA0_ASER_FADDR 0x00000458
-#endif
-#define BA0_ACCTL 0x00000460
-#define BA0_ACSTS 0x00000464
-#define BA0_ACOSV 0x00000468
-#define BA0_ACCAD 0x0000046C
-#define BA0_ACCDA 0x00000470
-#define BA0_ACISV 0x00000474
-#define BA0_ACSAD 0x00000478
-#define BA0_ACSDA 0x0000047C
-#define BA0_JSPT 0x00000480
-#define BA0_JSCTL 0x00000484
-#define BA0_JSC1 0x00000488
-#define BA0_JSC2 0x0000048C
-#define BA0_MIDCR 0x00000490
-#define BA0_MIDSR 0x00000494
-#define BA0_MIDWP 0x00000498
-#define BA0_MIDRP 0x0000049C
-#define BA0_JSIO 0x000004A0
-#ifndef NO_CS4612
-#define BA0_ASER_MASTER 0x000004A4
-#endif
-#define BA0_CFGI 0x000004B0
-#define BA0_SSVID 0x000004B4
-#define BA0_GPIOR 0x000004B8
-#ifndef NO_CS4612
-#define BA0_EGPIODR 0x000004BC
-#define BA0_EGPIOPTR 0x000004C0
-#define BA0_EGPIOTR 0x000004C4
-#define BA0_EGPIOWR 0x000004C8
-#define BA0_EGPIOSR 0x000004CC
-#define BA0_SERC6 0x000004D0
-#define BA0_SERC7 0x000004D4
-#define BA0_SERACC 0x000004D8
-#define BA0_ACCTL2 0x000004E0
-#define BA0_ACSTS2 0x000004E4
-#define BA0_ACOSV2 0x000004E8
-#define BA0_ACCAD2 0x000004EC
-#define BA0_ACCDA2 0x000004F0
-#define BA0_ACISV2 0x000004F4
-#define BA0_ACSAD2 0x000004F8
-#define BA0_ACSDA2 0x000004FC
-#define BA0_IOTAC0 0x00000500
-#define BA0_IOTAC1 0x00000504
-#define BA0_IOTAC2 0x00000508
-#define BA0_IOTAC3 0x0000050C
-#define BA0_IOTAC4 0x00000510
-#define BA0_IOTAC5 0x00000514
-#define BA0_IOTAC6 0x00000518
-#define BA0_IOTAC7 0x0000051C
-#define BA0_IOTAC8 0x00000520
-#define BA0_IOTAC9 0x00000524
-#define BA0_IOTAC10 0x00000528
-#define BA0_IOTAC11 0x0000052C
-#define BA0_IOTFR0 0x00000540
-#define BA0_IOTFR1 0x00000544
-#define BA0_IOTFR2 0x00000548
-#define BA0_IOTFR3 0x0000054C
-#define BA0_IOTFR4 0x00000550
-#define BA0_IOTFR5 0x00000554
-#define BA0_IOTFR6 0x00000558
-#define BA0_IOTFR7 0x0000055C
-#define BA0_IOTFIFO 0x00000580
-#define BA0_IOTRRD 0x00000584
-#define BA0_IOTFP 0x00000588
-#define BA0_IOTCR 0x0000058C
-#define BA0_DPCID 0x00000590
-#define BA0_DPCIA 0x00000594
-#define BA0_DPCIC 0x00000598
-#define BA0_PCPCIR 0x00000600
-#define BA0_PCPCIG 0x00000604
-#define BA0_PCPCIEN 0x00000608
-#define BA0_EPCIPMC 0x00000610
-#endif
-
-/*
- * The following define the offsets of the registers and memories accessed via
- * base address register one on the CS46xx part.
- */
-#define BA1_SP_DMEM0 0x00000000
-#define BA1_SP_DMEM1 0x00010000
-#define BA1_SP_PMEM 0x00020000
-#define BA1_SP_REG 0x00030000
-#define BA1_SPCR 0x00030000
-#define BA1_DREG 0x00030004
-#define BA1_DSRWP 0x00030008
-#define BA1_TWPR 0x0003000C
-#define BA1_SPWR 0x00030010
-#define BA1_SPIR 0x00030014
-#define BA1_FGR1 0x00030020
-#define BA1_SPCS 0x00030028
-#define BA1_SDSR 0x0003002C
-#define BA1_FRMT 0x00030030
-#define BA1_FRCC 0x00030034
-#define BA1_FRSC 0x00030038
-#define BA1_OMNI_MEM 0x000E0000
-
-
-/*
- * The following defines are for the flags in the host interrupt status
- * register.
- */
-#define HISR_VC_MASK 0x0000FFFF
-#define HISR_VC0 0x00000001
-#define HISR_VC1 0x00000002
-#define HISR_VC2 0x00000004
-#define HISR_VC3 0x00000008
-#define HISR_VC4 0x00000010
-#define HISR_VC5 0x00000020
-#define HISR_VC6 0x00000040
-#define HISR_VC7 0x00000080
-#define HISR_VC8 0x00000100
-#define HISR_VC9 0x00000200
-#define HISR_VC10 0x00000400
-#define HISR_VC11 0x00000800
-#define HISR_VC12 0x00001000
-#define HISR_VC13 0x00002000
-#define HISR_VC14 0x00004000
-#define HISR_VC15 0x00008000
-#define HISR_INT0 0x00010000
-#define HISR_INT1 0x00020000
-#define HISR_DMAI 0x00040000
-#define HISR_FROVR 0x00080000
-#define HISR_MIDI 0x00100000
-#ifdef NO_CS4612
-#define HISR_RESERVED 0x0FE00000
-#else
-#define HISR_SBINT 0x00200000
-#define HISR_RESERVED 0x0FC00000
-#endif
-#define HISR_H0P 0x40000000
-#define HISR_INTENA 0x80000000
-
-/*
- * The following defines are for the flags in the host signal register 0.
- */
-#define HSR0_VC_MASK 0xFFFFFFFF
-#define HSR0_VC16 0x00000001
-#define HSR0_VC17 0x00000002
-#define HSR0_VC18 0x00000004
-#define HSR0_VC19 0x00000008
-#define HSR0_VC20 0x00000010
-#define HSR0_VC21 0x00000020
-#define HSR0_VC22 0x00000040
-#define HSR0_VC23 0x00000080
-#define HSR0_VC24 0x00000100
-#define HSR0_VC25 0x00000200
-#define HSR0_VC26 0x00000400
-#define HSR0_VC27 0x00000800
-#define HSR0_VC28 0x00001000
-#define HSR0_VC29 0x00002000
-#define HSR0_VC30 0x00004000
-#define HSR0_VC31 0x00008000
-#define HSR0_VC32 0x00010000
-#define HSR0_VC33 0x00020000
-#define HSR0_VC34 0x00040000
-#define HSR0_VC35 0x00080000
-#define HSR0_VC36 0x00100000
-#define HSR0_VC37 0x00200000
-#define HSR0_VC38 0x00400000
-#define HSR0_VC39 0x00800000
-#define HSR0_VC40 0x01000000
-#define HSR0_VC41 0x02000000
-#define HSR0_VC42 0x04000000
-#define HSR0_VC43 0x08000000
-#define HSR0_VC44 0x10000000
-#define HSR0_VC45 0x20000000
-#define HSR0_VC46 0x40000000
-#define HSR0_VC47 0x80000000
-
-/*
- * The following defines are for the flags in the host interrupt control
- * register.
- */
-#define HICR_IEV 0x00000001
-#define HICR_CHGM 0x00000002
-
-/*
- * The following defines are for the flags in the DMA status register.
- */
-#define DMSR_HP 0x00000001
-#define DMSR_HR 0x00000002
-#define DMSR_SP 0x00000004
-#define DMSR_SR 0x00000008
-
-/*
- * The following defines are for the flags in the host DMA source address
- * register.
- */
-#define HSAR_HOST_ADDR_MASK 0xFFFFFFFF
-#define HSAR_DSP_ADDR_MASK 0x0000FFFF
-#define HSAR_MEMID_MASK 0x000F0000
-#define HSAR_MEMID_SP_DMEM0 0x00000000
-#define HSAR_MEMID_SP_DMEM1 0x00010000
-#define HSAR_MEMID_SP_PMEM 0x00020000
-#define HSAR_MEMID_SP_DEBUG 0x00030000
-#define HSAR_MEMID_OMNI_MEM 0x000E0000
-#define HSAR_END 0x40000000
-#define HSAR_ERR 0x80000000
-
-/*
- * The following defines are for the flags in the host DMA destination address
- * register.
- */
-#define HDAR_HOST_ADDR_MASK 0xFFFFFFFF
-#define HDAR_DSP_ADDR_MASK 0x0000FFFF
-#define HDAR_MEMID_MASK 0x000F0000
-#define HDAR_MEMID_SP_DMEM0 0x00000000
-#define HDAR_MEMID_SP_DMEM1 0x00010000
-#define HDAR_MEMID_SP_PMEM 0x00020000
-#define HDAR_MEMID_SP_DEBUG 0x00030000
-#define HDAR_MEMID_OMNI_MEM 0x000E0000
-#define HDAR_END 0x40000000
-#define HDAR_ERR 0x80000000
-
-/*
- * The following defines are for the flags in the host DMA control register.
- */
-#define HDMR_AC_MASK 0x0000F000
-#define HDMR_AC_8_16 0x00001000
-#define HDMR_AC_M_S 0x00002000
-#define HDMR_AC_B_L 0x00004000
-#define HDMR_AC_S_U 0x00008000
-
-/*
- * The following defines are for the flags in the host DMA control register.
- */
-#define HDCR_COUNT_MASK 0x000003FF
-#define HDCR_DONE 0x00004000
-#define HDCR_OPT 0x00008000
-#define HDCR_WBD 0x00400000
-#define HDCR_WBS 0x00800000
-#define HDCR_DMS_MASK 0x07000000
-#define HDCR_DMS_LINEAR 0x00000000
-#define HDCR_DMS_16_DWORDS 0x01000000
-#define HDCR_DMS_32_DWORDS 0x02000000
-#define HDCR_DMS_64_DWORDS 0x03000000
-#define HDCR_DMS_128_DWORDS 0x04000000
-#define HDCR_DMS_256_DWORDS 0x05000000
-#define HDCR_DMS_512_DWORDS 0x06000000
-#define HDCR_DMS_1024_DWORDS 0x07000000
-#define HDCR_DH 0x08000000
-#define HDCR_SMS_MASK 0x70000000
-#define HDCR_SMS_LINEAR 0x00000000
-#define HDCR_SMS_16_DWORDS 0x10000000
-#define HDCR_SMS_32_DWORDS 0x20000000
-#define HDCR_SMS_64_DWORDS 0x30000000
-#define HDCR_SMS_128_DWORDS 0x40000000
-#define HDCR_SMS_256_DWORDS 0x50000000
-#define HDCR_SMS_512_DWORDS 0x60000000
-#define HDCR_SMS_1024_DWORDS 0x70000000
-#define HDCR_SH 0x80000000
-#define HDCR_COUNT_SHIFT 0
-
-/*
- * The following defines are for the flags in the performance monitor control
- * register.
- */
-#define PFMC_C1SS_MASK 0x0000001F
-#define PFMC_C1EV 0x00000020
-#define PFMC_C1RS 0x00008000
-#define PFMC_C2SS_MASK 0x001F0000
-#define PFMC_C2EV 0x00200000
-#define PFMC_C2RS 0x80000000
-#define PFMC_C1SS_SHIFT 0
-#define PFMC_C2SS_SHIFT 16
-#define PFMC_BUS_GRANT 0
-#define PFMC_GRANT_AFTER_REQ 1
-#define PFMC_TRANSACTION 2
-#define PFMC_DWORD_TRANSFER 3
-#define PFMC_SLAVE_READ 4
-#define PFMC_SLAVE_WRITE 5
-#define PFMC_PREEMPTION 6
-#define PFMC_DISCONNECT_RETRY 7
-#define PFMC_INTERRUPT 8
-#define PFMC_BUS_OWNERSHIP 9
-#define PFMC_TRANSACTION_LAG 10
-#define PFMC_PCI_CLOCK 11
-#define PFMC_SERIAL_CLOCK 12
-#define PFMC_SP_CLOCK 13
-
-/*
- * The following defines are for the flags in the performance counter value 1
- * register.
- */
-#define PFCV1_PC1V_MASK 0xFFFFFFFF
-#define PFCV1_PC1V_SHIFT 0
-
-/*
- * The following defines are for the flags in the performance counter value 2
- * register.
- */
-#define PFCV2_PC2V_MASK 0xFFFFFFFF
-#define PFCV2_PC2V_SHIFT 0
-
-/*
- * The following defines are for the flags in the clock control register 1.
- */
-#define CLKCR1_OSCS 0x00000001
-#define CLKCR1_OSCP 0x00000002
-#define CLKCR1_PLLSS_MASK 0x0000000C
-#define CLKCR1_PLLSS_SERIAL 0x00000000
-#define CLKCR1_PLLSS_CRYSTAL 0x00000004
-#define CLKCR1_PLLSS_PCI 0x00000008
-#define CLKCR1_PLLSS_RESERVED 0x0000000C
-#define CLKCR1_PLLP 0x00000010
-#define CLKCR1_SWCE 0x00000020
-#define CLKCR1_PLLOS 0x00000040
-
-/*
- * The following defines are for the flags in the clock control register 2.
- */
-#define CLKCR2_PDIVS_MASK 0x0000000F
-#define CLKCR2_PDIVS_1 0x00000001
-#define CLKCR2_PDIVS_2 0x00000002
-#define CLKCR2_PDIVS_4 0x00000004
-#define CLKCR2_PDIVS_7 0x00000007
-#define CLKCR2_PDIVS_8 0x00000008
-#define CLKCR2_PDIVS_16 0x00000000
-
-/*
- * The following defines are for the flags in the PLL multiplier register.
- */
-#define PLLM_MASK 0x000000FF
-#define PLLM_SHIFT 0
-
-/*
- * The following defines are for the flags in the PLL capacitor coefficient
- * register.
- */
-#define PLLCC_CDR_MASK 0x00000007
-#ifndef NO_CS4610
-#define PLLCC_CDR_240_350_MHZ 0x00000000
-#define PLLCC_CDR_184_265_MHZ 0x00000001
-#define PLLCC_CDR_144_205_MHZ 0x00000002
-#define PLLCC_CDR_111_160_MHZ 0x00000003
-#define PLLCC_CDR_87_123_MHZ 0x00000004
-#define PLLCC_CDR_67_96_MHZ 0x00000005
-#define PLLCC_CDR_52_74_MHZ 0x00000006
-#define PLLCC_CDR_45_58_MHZ 0x00000007
-#endif
-#ifndef NO_CS4612
-#define PLLCC_CDR_271_398_MHZ 0x00000000
-#define PLLCC_CDR_227_330_MHZ 0x00000001
-#define PLLCC_CDR_167_239_MHZ 0x00000002
-#define PLLCC_CDR_150_215_MHZ 0x00000003
-#define PLLCC_CDR_107_154_MHZ 0x00000004
-#define PLLCC_CDR_98_140_MHZ 0x00000005
-#define PLLCC_CDR_73_104_MHZ 0x00000006
-#define PLLCC_CDR_63_90_MHZ 0x00000007
-#endif
-#define PLLCC_LPF_MASK 0x000000F8
-#ifndef NO_CS4610
-#define PLLCC_LPF_23850_60000_KHZ 0x00000000
-#define PLLCC_LPF_7960_26290_KHZ 0x00000008
-#define PLLCC_LPF_4160_10980_KHZ 0x00000018
-#define PLLCC_LPF_1740_4580_KHZ 0x00000038
-#define PLLCC_LPF_724_1910_KHZ 0x00000078
-#define PLLCC_LPF_317_798_KHZ 0x000000F8
-#endif
-#ifndef NO_CS4612
-#define PLLCC_LPF_25580_64530_KHZ 0x00000000
-#define PLLCC_LPF_14360_37270_KHZ 0x00000008
-#define PLLCC_LPF_6100_16020_KHZ 0x00000018
-#define PLLCC_LPF_2540_6690_KHZ 0x00000038
-#define PLLCC_LPF_1050_2780_KHZ 0x00000078
-#define PLLCC_LPF_450_1160_KHZ 0x000000F8
-#endif
-
-/*
- * The following defines are for the flags in the feature reporting register.
- */
-#define FRR_FAB_MASK 0x00000003
-#define FRR_MASK_MASK 0x0000001C
-#ifdef NO_CS4612
-#define FRR_CFOP_MASK 0x000000E0
-#else
-#define FRR_CFOP_MASK 0x00000FE0
-#endif
-#define FRR_CFOP_NOT_DVD 0x00000020
-#define FRR_CFOP_A3D 0x00000040
-#define FRR_CFOP_128_PIN 0x00000080
-#ifndef NO_CS4612
-#define FRR_CFOP_CS4280 0x00000800
-#endif
-#define FRR_FAB_SHIFT 0
-#define FRR_MASK_SHIFT 2
-#define FRR_CFOP_SHIFT 5
-
-/*
- * The following defines are for the flags in the configuration load 1
- * register.
- */
-#define CFL1_CLOCK_SOURCE_MASK 0x00000003
-#define CFL1_CLOCK_SOURCE_CS423X 0x00000000
-#define CFL1_CLOCK_SOURCE_AC97 0x00000001
-#define CFL1_CLOCK_SOURCE_CRYSTAL 0x00000002
-#define CFL1_CLOCK_SOURCE_DUAL_AC97 0x00000003
-#define CFL1_VALID_DATA_MASK 0x000000FF
-
-/*
- * The following defines are for the flags in the configuration load 2
- * register.
- */
-#define CFL2_VALID_DATA_MASK 0x000000FF
-
-/*
- * The following defines are for the flags in the serial port master control
- * register 1.
- */
-#define SERMC1_MSPE 0x00000001
-#define SERMC1_PTC_MASK 0x0000000E
-#define SERMC1_PTC_CS423X 0x00000000
-#define SERMC1_PTC_AC97 0x00000002
-#define SERMC1_PTC_DAC 0x00000004
-#define SERMC1_PLB 0x00000010
-#define SERMC1_XLB 0x00000020
-
-/*
- * The following defines are for the flags in the serial port master control
- * register 2.
- */
-#define SERMC2_LROE 0x00000001
-#define SERMC2_MCOE 0x00000002
-#define SERMC2_MCDIV 0x00000004
-
-/*
- * The following defines are for the flags in the serial port 1 configuration
- * register.
- */
-#define SERC1_SO1EN 0x00000001
-#define SERC1_SO1F_MASK 0x0000000E
-#define SERC1_SO1F_CS423X 0x00000000
-#define SERC1_SO1F_AC97 0x00000002
-#define SERC1_SO1F_DAC 0x00000004
-#define SERC1_SO1F_SPDIF 0x00000006
-
-/*
- * The following defines are for the flags in the serial port 2 configuration
- * register.
- */
-#define SERC2_SI1EN 0x00000001
-#define SERC2_SI1F_MASK 0x0000000E
-#define SERC2_SI1F_CS423X 0x00000000
-#define SERC2_SI1F_AC97 0x00000002
-#define SERC2_SI1F_ADC 0x00000004
-#define SERC2_SI1F_SPDIF 0x00000006
-
-/*
- * The following defines are for the flags in the serial port 3 configuration
- * register.
- */
-#define SERC3_SO2EN 0x00000001
-#define SERC3_SO2F_MASK 0x00000006
-#define SERC3_SO2F_DAC 0x00000000
-#define SERC3_SO2F_SPDIF 0x00000002
-
-/*
- * The following defines are for the flags in the serial port 4 configuration
- * register.
- */
-#define SERC4_SO3EN 0x00000001
-#define SERC4_SO3F_MASK 0x00000006
-#define SERC4_SO3F_DAC 0x00000000
-#define SERC4_SO3F_SPDIF 0x00000002
-
-/*
- * The following defines are for the flags in the serial port 5 configuration
- * register.
- */
-#define SERC5_SI2EN 0x00000001
-#define SERC5_SI2F_MASK 0x00000006
-#define SERC5_SI2F_ADC 0x00000000
-#define SERC5_SI2F_SPDIF 0x00000002
-
-/*
- * The following defines are for the flags in the serial port backdoor sample
- * pointer register.
- */
-#define SERBSP_FSP_MASK 0x0000000F
-#define SERBSP_FSP_SHIFT 0
-
-/*
- * The following defines are for the flags in the serial port backdoor status
- * register.
- */
-#define SERBST_RRDY 0x00000001
-#define SERBST_WBSY 0x00000002
-
-/*
- * The following defines are for the flags in the serial port backdoor command
- * register.
- */
-#define SERBCM_RDC 0x00000001
-#define SERBCM_WRC 0x00000002
-
-/*
- * The following defines are for the flags in the serial port backdoor address
- * register.
- */
-#ifdef NO_CS4612
-#define SERBAD_FAD_MASK 0x000000FF
-#else
-#define SERBAD_FAD_MASK 0x000001FF
-#endif
-#define SERBAD_FAD_SHIFT 0
-
-/*
- * The following defines are for the flags in the serial port backdoor
- * configuration register.
- */
-#define SERBCF_HBP 0x00000001
-
-/*
- * The following defines are for the flags in the serial port backdoor write
- * port register.
- */
-#define SERBWP_FWD_MASK 0x000FFFFF
-#define SERBWP_FWD_SHIFT 0
-
-/*
- * The following defines are for the flags in the serial port backdoor read
- * port register.
- */
-#define SERBRP_FRD_MASK 0x000FFFFF
-#define SERBRP_FRD_SHIFT 0
-
-/*
- * The following defines are for the flags in the async FIFO address register.
- */
-#ifndef NO_CS4612
-#define ASER_FADDR_A1_MASK 0x000001FF
-#define ASER_FADDR_EN1 0x00008000
-#define ASER_FADDR_A2_MASK 0x01FF0000
-#define ASER_FADDR_EN2 0x80000000
-#define ASER_FADDR_A1_SHIFT 0
-#define ASER_FADDR_A2_SHIFT 16
-#endif
-
-/*
- * The following defines are for the flags in the AC97 control register.
- */
-#define ACCTL_RSTN 0x00000001
-#define ACCTL_ESYN 0x00000002
-#define ACCTL_VFRM 0x00000004
-#define ACCTL_DCV 0x00000008
-#define ACCTL_CRW 0x00000010
-#define ACCTL_ASYN 0x00000020
-#ifndef NO_CS4612
-#define ACCTL_TC 0x00000040
-#endif
-
-/*
- * The following defines are for the flags in the AC97 status register.
- */
-#define ACSTS_CRDY 0x00000001
-#define ACSTS_VSTS 0x00000002
-#ifndef NO_CS4612
-#define ACSTS_WKUP 0x00000004
-#endif
-
-/*
- * The following defines are for the flags in the AC97 output slot valid
- * register.
- */
-#define ACOSV_SLV3 0x00000001
-#define ACOSV_SLV4 0x00000002
-#define ACOSV_SLV5 0x00000004
-#define ACOSV_SLV6 0x00000008
-#define ACOSV_SLV7 0x00000010
-#define ACOSV_SLV8 0x00000020
-#define ACOSV_SLV9 0x00000040
-#define ACOSV_SLV10 0x00000080
-#define ACOSV_SLV11 0x00000100
-#define ACOSV_SLV12 0x00000200
-
-/*
- * The following defines are for the flags in the AC97 command address
- * register.
- */
-#define ACCAD_CI_MASK 0x0000007F
-#define ACCAD_CI_SHIFT 0
-
-/*
- * The following defines are for the flags in the AC97 command data register.
- */
-#define ACCDA_CD_MASK 0x0000FFFF
-#define ACCDA_CD_SHIFT 0
-
-/*
- * The following defines are for the flags in the AC97 input slot valid
- * register.
- */
-#define ACISV_ISV3 0x00000001
-#define ACISV_ISV4 0x00000002
-#define ACISV_ISV5 0x00000004
-#define ACISV_ISV6 0x00000008
-#define ACISV_ISV7 0x00000010
-#define ACISV_ISV8 0x00000020
-#define ACISV_ISV9 0x00000040
-#define ACISV_ISV10 0x00000080
-#define ACISV_ISV11 0x00000100
-#define ACISV_ISV12 0x00000200
-
-/*
- * The following defines are for the flags in the AC97 status address
- * register.
- */
-#define ACSAD_SI_MASK 0x0000007F
-#define ACSAD_SI_SHIFT 0
-
-/*
- * The following defines are for the flags in the AC97 status data register.
- */
-#define ACSDA_SD_MASK 0x0000FFFF
-#define ACSDA_SD_SHIFT 0
-
-/*
- * The following defines are for the flags in the joystick poll/trigger
- * register.
- */
-#define JSPT_CAX 0x00000001
-#define JSPT_CAY 0x00000002
-#define JSPT_CBX 0x00000004
-#define JSPT_CBY 0x00000008
-#define JSPT_BA1 0x00000010
-#define JSPT_BA2 0x00000020
-#define JSPT_BB1 0x00000040
-#define JSPT_BB2 0x00000080
-
-/*
- * The following defines are for the flags in the joystick control register.
- */
-#define JSCTL_SP_MASK 0x00000003
-#define JSCTL_SP_SLOW 0x00000000
-#define JSCTL_SP_MEDIUM_SLOW 0x00000001
-#define JSCTL_SP_MEDIUM_FAST 0x00000002
-#define JSCTL_SP_FAST 0x00000003
-#define JSCTL_ARE 0x00000004
-
-/*
- * The following defines are for the flags in the joystick coordinate pair 1
- * readback register.
- */
-#define JSC1_Y1V_MASK 0x0000FFFF
-#define JSC1_X1V_MASK 0xFFFF0000
-#define JSC1_Y1V_SHIFT 0
-#define JSC1_X1V_SHIFT 16
-
-/*
- * The following defines are for the flags in the joystick coordinate pair 2
- * readback register.
- */
-#define JSC2_Y2V_MASK 0x0000FFFF
-#define JSC2_X2V_MASK 0xFFFF0000
-#define JSC2_Y2V_SHIFT 0
-#define JSC2_X2V_SHIFT 16
-
-/*
- * The following defines are for the flags in the MIDI control register.
- */
-#define MIDCR_TXE 0x00000001 /* Enable transmitting. */
-#define MIDCR_RXE 0x00000002 /* Enable receiving. */
-#define MIDCR_RIE 0x00000004 /* Interrupt upon tx ready. */
-#define MIDCR_TIE 0x00000008 /* Interrupt upon rx ready. */
-#define MIDCR_MLB 0x00000010 /* Enable midi loopback. */
-#define MIDCR_MRST 0x00000020 /* Reset interface. */
-
-/*
- * The following defines are for the flags in the MIDI status register.
- */
-#define MIDSR_TBF 0x00000001 /* Tx FIFO is full. */
-#define MIDSR_RBE 0x00000002 /* Rx FIFO is empty. */
-
-/*
- * The following defines are for the flags in the MIDI write port register.
- */
-#define MIDWP_MWD_MASK 0x000000FF
-#define MIDWP_MWD_SHIFT 0
-
-/*
- * The following defines are for the flags in the MIDI read port register.
- */
-#define MIDRP_MRD_MASK 0x000000FF
-#define MIDRP_MRD_SHIFT 0
-
-/*
- * The following defines are for the flags in the joystick GPIO register.
- */
-#define JSIO_DAX 0x00000001
-#define JSIO_DAY 0x00000002
-#define JSIO_DBX 0x00000004
-#define JSIO_DBY 0x00000008
-#define JSIO_AXOE 0x00000010
-#define JSIO_AYOE 0x00000020
-#define JSIO_BXOE 0x00000040
-#define JSIO_BYOE 0x00000080
-
-/*
- * The following defines are for the flags in the master async/sync serial
- * port enable register.
- */
-#ifndef NO_CS4612
-#define ASER_MASTER_ME 0x00000001
-#endif
-
-/*
- * The following defines are for the flags in the configuration interface
- * register.
- */
-#define CFGI_CLK 0x00000001
-#define CFGI_DOUT 0x00000002
-#define CFGI_DIN_EEN 0x00000004
-#define CFGI_EELD 0x00000008
-
-/*
- * The following defines are for the flags in the subsystem ID and vendor ID
- * register.
- */
-#define SSVID_VID_MASK 0x0000FFFF
-#define SSVID_SID_MASK 0xFFFF0000
-#define SSVID_VID_SHIFT 0
-#define SSVID_SID_SHIFT 16
-
-/*
- * The following defines are for the flags in the GPIO pin interface register.
- */
-#define GPIOR_VOLDN 0x00000001
-#define GPIOR_VOLUP 0x00000002
-#define GPIOR_SI2D 0x00000004
-#define GPIOR_SI2OE 0x00000008
-
-/*
- * The following defines are for the flags in the extended GPIO pin direction
- * register.
- */
-#ifndef NO_CS4612
-#define EGPIODR_GPOE0 0x00000001
-#define EGPIODR_GPOE1 0x00000002
-#define EGPIODR_GPOE2 0x00000004
-#define EGPIODR_GPOE3 0x00000008
-#define EGPIODR_GPOE4 0x00000010
-#define EGPIODR_GPOE5 0x00000020
-#define EGPIODR_GPOE6 0x00000040
-#define EGPIODR_GPOE7 0x00000080
-#define EGPIODR_GPOE8 0x00000100
-#endif
-
-/*
- * The following defines are for the flags in the extended GPIO pin polarity/
- * type register.
- */
-#ifndef NO_CS4612
-#define EGPIOPTR_GPPT0 0x00000001
-#define EGPIOPTR_GPPT1 0x00000002
-#define EGPIOPTR_GPPT2 0x00000004
-#define EGPIOPTR_GPPT3 0x00000008
-#define EGPIOPTR_GPPT4 0x00000010
-#define EGPIOPTR_GPPT5 0x00000020
-#define EGPIOPTR_GPPT6 0x00000040
-#define EGPIOPTR_GPPT7 0x00000080
-#define EGPIOPTR_GPPT8 0x00000100
-#endif
-
-/*
- * The following defines are for the flags in the extended GPIO pin sticky
- * register.
- */
-#ifndef NO_CS4612
-#define EGPIOTR_GPS0 0x00000001
-#define EGPIOTR_GPS1 0x00000002
-#define EGPIOTR_GPS2 0x00000004
-#define EGPIOTR_GPS3 0x00000008
-#define EGPIOTR_GPS4 0x00000010
-#define EGPIOTR_GPS5 0x00000020
-#define EGPIOTR_GPS6 0x00000040
-#define EGPIOTR_GPS7 0x00000080
-#define EGPIOTR_GPS8 0x00000100
-#endif
-
-/*
- * The following defines are for the flags in the extended GPIO ping wakeup
- * register.
- */
-#ifndef NO_CS4612
-#define EGPIOWR_GPW0 0x00000001
-#define EGPIOWR_GPW1 0x00000002
-#define EGPIOWR_GPW2 0x00000004
-#define EGPIOWR_GPW3 0x00000008
-#define EGPIOWR_GPW4 0x00000010
-#define EGPIOWR_GPW5 0x00000020
-#define EGPIOWR_GPW6 0x00000040
-#define EGPIOWR_GPW7 0x00000080
-#define EGPIOWR_GPW8 0x00000100
-#endif
-
-/*
- * The following defines are for the flags in the extended GPIO pin status
- * register.
- */
-#ifndef NO_CS4612
-#define EGPIOSR_GPS0 0x00000001
-#define EGPIOSR_GPS1 0x00000002
-#define EGPIOSR_GPS2 0x00000004
-#define EGPIOSR_GPS3 0x00000008
-#define EGPIOSR_GPS4 0x00000010
-#define EGPIOSR_GPS5 0x00000020
-#define EGPIOSR_GPS6 0x00000040
-#define EGPIOSR_GPS7 0x00000080
-#define EGPIOSR_GPS8 0x00000100
-#endif
-
-/*
- * The following defines are for the flags in the serial port 6 configuration
- * register.
- */
-#ifndef NO_CS4612
-#define SERC6_ASDO2EN 0x00000001
-#endif
-
-/*
- * The following defines are for the flags in the serial port 7 configuration
- * register.
- */
-#ifndef NO_CS4612
-#define SERC7_ASDI2EN 0x00000001
-#define SERC7_POSILB 0x00000002
-#define SERC7_SIPOLB 0x00000004
-#define SERC7_SOSILB 0x00000008
-#define SERC7_SISOLB 0x00000010
-#endif
-
-/*
- * The following defines are for the flags in the serial port AC link
- * configuration register.
- */
-#ifndef NO_CS4612
-#define SERACC_CHIP_TYPE_MASK 0x00000001
-#define SERACC_CHIP_TYPE_1_03 0x00000000
-#define SERACC_CHIP_TYPE_2_0 0x00000001
-#define SERACC_TWO_CODECS 0x00000002
-#define SERACC_MDM 0x00000004
-#define SERACC_HSP 0x00000008
-#define SERACC_ODT 0x00000010 /* only CS4630 */
-#endif
-
-/*
- * The following defines are for the flags in the AC97 control register 2.
- */
-#ifndef NO_CS4612
-#define ACCTL2_RSTN 0x00000001
-#define ACCTL2_ESYN 0x00000002
-#define ACCTL2_VFRM 0x00000004
-#define ACCTL2_DCV 0x00000008
-#define ACCTL2_CRW 0x00000010
-#define ACCTL2_ASYN 0x00000020
-#endif
-
-/*
- * The following defines are for the flags in the AC97 status register 2.
- */
-#ifndef NO_CS4612
-#define ACSTS2_CRDY 0x00000001
-#define ACSTS2_VSTS 0x00000002
-#endif
-
-/*
- * The following defines are for the flags in the AC97 output slot valid
- * register 2.
- */
-#ifndef NO_CS4612
-#define ACOSV2_SLV3 0x00000001
-#define ACOSV2_SLV4 0x00000002
-#define ACOSV2_SLV5 0x00000004
-#define ACOSV2_SLV6 0x00000008
-#define ACOSV2_SLV7 0x00000010
-#define ACOSV2_SLV8 0x00000020
-#define ACOSV2_SLV9 0x00000040
-#define ACOSV2_SLV10 0x00000080
-#define ACOSV2_SLV11 0x00000100
-#define ACOSV2_SLV12 0x00000200
-#endif
-
-/*
- * The following defines are for the flags in the AC97 command address
- * register 2.
- */
-#ifndef NO_CS4612
-#define ACCAD2_CI_MASK 0x0000007F
-#define ACCAD2_CI_SHIFT 0
-#endif
-
-/*
- * The following defines are for the flags in the AC97 command data register
- * 2.
- */
-#ifndef NO_CS4612
-#define ACCDA2_CD_MASK 0x0000FFFF
-#define ACCDA2_CD_SHIFT 0
-#endif
-
-/*
- * The following defines are for the flags in the AC97 input slot valid
- * register 2.
- */
-#ifndef NO_CS4612
-#define ACISV2_ISV3 0x00000001
-#define ACISV2_ISV4 0x00000002
-#define ACISV2_ISV5 0x00000004
-#define ACISV2_ISV6 0x00000008
-#define ACISV2_ISV7 0x00000010
-#define ACISV2_ISV8 0x00000020
-#define ACISV2_ISV9 0x00000040
-#define ACISV2_ISV10 0x00000080
-#define ACISV2_ISV11 0x00000100
-#define ACISV2_ISV12 0x00000200
-#endif
-
-/*
- * The following defines are for the flags in the AC97 status address
- * register 2.
- */
-#ifndef NO_CS4612
-#define ACSAD2_SI_MASK 0x0000007F
-#define ACSAD2_SI_SHIFT 0
-#endif
-
-/*
- * The following defines are for the flags in the AC97 status data register 2.
- */
-#ifndef NO_CS4612
-#define ACSDA2_SD_MASK 0x0000FFFF
-#define ACSDA2_SD_SHIFT 0
-#endif
-
-/*
- * The following defines are for the flags in the I/O trap address and control
- * registers (all 12).
- */
-#ifndef NO_CS4612
-#define IOTAC_SA_MASK 0x0000FFFF
-#define IOTAC_MSK_MASK 0x000F0000
-#define IOTAC_IODC_MASK 0x06000000
-#define IOTAC_IODC_16_BIT 0x00000000
-#define IOTAC_IODC_10_BIT 0x02000000
-#define IOTAC_IODC_12_BIT 0x04000000
-#define IOTAC_WSPI 0x08000000
-#define IOTAC_RSPI 0x10000000
-#define IOTAC_WSE 0x20000000
-#define IOTAC_WE 0x40000000
-#define IOTAC_RE 0x80000000
-#define IOTAC_SA_SHIFT 0
-#define IOTAC_MSK_SHIFT 16
-#endif
-
-/*
- * The following defines are for the flags in the I/O trap fast read registers
- * (all 8).
- */
-#ifndef NO_CS4612
-#define IOTFR_D_MASK 0x0000FFFF
-#define IOTFR_A_MASK 0x000F0000
-#define IOTFR_R_MASK 0x0F000000
-#define IOTFR_ALL 0x40000000
-#define IOTFR_VL 0x80000000
-#define IOTFR_D_SHIFT 0
-#define IOTFR_A_SHIFT 16
-#define IOTFR_R_SHIFT 24
-#endif
-
-/*
- * The following defines are for the flags in the I/O trap FIFO register.
- */
-#ifndef NO_CS4612
-#define IOTFIFO_BA_MASK 0x00003FFF
-#define IOTFIFO_S_MASK 0x00FF0000
-#define IOTFIFO_OF 0x40000000
-#define IOTFIFO_SPIOF 0x80000000
-#define IOTFIFO_BA_SHIFT 0
-#define IOTFIFO_S_SHIFT 16
-#endif
-
-/*
- * The following defines are for the flags in the I/O trap retry read data
- * register.
- */
-#ifndef NO_CS4612
-#define IOTRRD_D_MASK 0x0000FFFF
-#define IOTRRD_RDV 0x80000000
-#define IOTRRD_D_SHIFT 0
-#endif
-
-/*
- * The following defines are for the flags in the I/O trap FIFO pointer
- * register.
- */
-#ifndef NO_CS4612
-#define IOTFP_CA_MASK 0x00003FFF
-#define IOTFP_PA_MASK 0x3FFF0000
-#define IOTFP_CA_SHIFT 0
-#define IOTFP_PA_SHIFT 16
-#endif
-
-/*
- * The following defines are for the flags in the I/O trap control register.
- */
-#ifndef NO_CS4612
-#define IOTCR_ITD 0x00000001
-#define IOTCR_HRV 0x00000002
-#define IOTCR_SRV 0x00000004
-#define IOTCR_DTI 0x00000008
-#define IOTCR_DFI 0x00000010
-#define IOTCR_DDP 0x00000020
-#define IOTCR_JTE 0x00000040
-#define IOTCR_PPE 0x00000080
-#endif
-
-/*
- * The following defines are for the flags in the direct PCI data register.
- */
-#ifndef NO_CS4612
-#define DPCID_D_MASK 0xFFFFFFFF
-#define DPCID_D_SHIFT 0
-#endif
-
-/*
- * The following defines are for the flags in the direct PCI address register.
- */
-#ifndef NO_CS4612
-#define DPCIA_A_MASK 0xFFFFFFFF
-#define DPCIA_A_SHIFT 0
-#endif
-
-/*
- * The following defines are for the flags in the direct PCI command register.
- */
-#ifndef NO_CS4612
-#define DPCIC_C_MASK 0x0000000F
-#define DPCIC_C_IOREAD 0x00000002
-#define DPCIC_C_IOWRITE 0x00000003
-#define DPCIC_BE_MASK 0x000000F0
-#endif
-
-/*
- * The following defines are for the flags in the PC/PCI request register.
- */
-#ifndef NO_CS4612
-#define PCPCIR_RDC_MASK 0x00000007
-#define PCPCIR_C_MASK 0x00007000
-#define PCPCIR_REQ 0x00008000
-#define PCPCIR_RDC_SHIFT 0
-#define PCPCIR_C_SHIFT 12
-#endif
-
-/*
- * The following defines are for the flags in the PC/PCI grant register.
- */
-#ifndef NO_CS4612
-#define PCPCIG_GDC_MASK 0x00000007
-#define PCPCIG_VL 0x00008000
-#define PCPCIG_GDC_SHIFT 0
-#endif
-
-/*
- * The following defines are for the flags in the PC/PCI master enable
- * register.
- */
-#ifndef NO_CS4612
-#define PCPCIEN_EN 0x00000001
-#endif
-
-/*
- * The following defines are for the flags in the extended PCI power
- * management control register.
- */
-#ifndef NO_CS4612
-#define EPCIPMC_GWU 0x00000001
-#define EPCIPMC_FSPC 0x00000002
-#endif
-
-/*
- * The following defines are for the flags in the SP control register.
- */
-#define SPCR_RUN 0x00000001
-#define SPCR_STPFR 0x00000002
-#define SPCR_RUNFR 0x00000004
-#define SPCR_TICK 0x00000008
-#define SPCR_DRQEN 0x00000020
-#define SPCR_RSTSP 0x00000040
-#define SPCR_OREN 0x00000080
-#ifndef NO_CS4612
-#define SPCR_PCIINT 0x00000100
-#define SPCR_OINTD 0x00000200
-#define SPCR_CRE 0x00008000
-#endif
-
-/*
- * The following defines are for the flags in the debug index register.
- */
-#define DREG_REGID_MASK 0x0000007F
-#define DREG_DEBUG 0x00000080
-#define DREG_RGBK_MASK 0x00000700
-#define DREG_TRAP 0x00000800
-#if !defined(NO_CS4612)
-#if !defined(NO_CS4615)
-#define DREG_TRAPX 0x00001000
-#endif
-#endif
-#define DREG_REGID_SHIFT 0
-#define DREG_RGBK_SHIFT 8
-#define DREG_RGBK_REGID_MASK 0x0000077F
-#define DREG_REGID_R0 0x00000010
-#define DREG_REGID_R1 0x00000011
-#define DREG_REGID_R2 0x00000012
-#define DREG_REGID_R3 0x00000013
-#define DREG_REGID_R4 0x00000014
-#define DREG_REGID_R5 0x00000015
-#define DREG_REGID_R6 0x00000016
-#define DREG_REGID_R7 0x00000017
-#define DREG_REGID_R8 0x00000018
-#define DREG_REGID_R9 0x00000019
-#define DREG_REGID_RA 0x0000001A
-#define DREG_REGID_RB 0x0000001B
-#define DREG_REGID_RC 0x0000001C
-#define DREG_REGID_RD 0x0000001D
-#define DREG_REGID_RE 0x0000001E
-#define DREG_REGID_RF 0x0000001F
-#define DREG_REGID_RA_BUS_LOW 0x00000020
-#define DREG_REGID_RA_BUS_HIGH 0x00000038
-#define DREG_REGID_YBUS_LOW 0x00000050
-#define DREG_REGID_YBUS_HIGH 0x00000058
-#define DREG_REGID_TRAP_0 0x00000100
-#define DREG_REGID_TRAP_1 0x00000101
-#define DREG_REGID_TRAP_2 0x00000102
-#define DREG_REGID_TRAP_3 0x00000103
-#define DREG_REGID_TRAP_4 0x00000104
-#define DREG_REGID_TRAP_5 0x00000105
-#define DREG_REGID_TRAP_6 0x00000106
-#define DREG_REGID_TRAP_7 0x00000107
-#define DREG_REGID_INDIRECT_ADDRESS 0x0000010E
-#define DREG_REGID_TOP_OF_STACK 0x0000010F
-#if !defined(NO_CS4612)
-#if !defined(NO_CS4615)
-#define DREG_REGID_TRAP_8 0x00000110
-#define DREG_REGID_TRAP_9 0x00000111
-#define DREG_REGID_TRAP_10 0x00000112
-#define DREG_REGID_TRAP_11 0x00000113
-#define DREG_REGID_TRAP_12 0x00000114
-#define DREG_REGID_TRAP_13 0x00000115
-#define DREG_REGID_TRAP_14 0x00000116
-#define DREG_REGID_TRAP_15 0x00000117
-#define DREG_REGID_TRAP_16 0x00000118
-#define DREG_REGID_TRAP_17 0x00000119
-#define DREG_REGID_TRAP_18 0x0000011A
-#define DREG_REGID_TRAP_19 0x0000011B
-#define DREG_REGID_TRAP_20 0x0000011C
-#define DREG_REGID_TRAP_21 0x0000011D
-#define DREG_REGID_TRAP_22 0x0000011E
-#define DREG_REGID_TRAP_23 0x0000011F
-#endif
-#endif
-#define DREG_REGID_RSA0_LOW 0x00000200
-#define DREG_REGID_RSA0_HIGH 0x00000201
-#define DREG_REGID_RSA1_LOW 0x00000202
-#define DREG_REGID_RSA1_HIGH 0x00000203
-#define DREG_REGID_RSA2 0x00000204
-#define DREG_REGID_RSA3 0x00000205
-#define DREG_REGID_RSI0_LOW 0x00000206
-#define DREG_REGID_RSI0_HIGH 0x00000207
-#define DREG_REGID_RSI1 0x00000208
-#define DREG_REGID_RSI2 0x00000209
-#define DREG_REGID_SAGUSTATUS 0x0000020A
-#define DREG_REGID_RSCONFIG01_LOW 0x0000020B
-#define DREG_REGID_RSCONFIG01_HIGH 0x0000020C
-#define DREG_REGID_RSCONFIG23_LOW 0x0000020D
-#define DREG_REGID_RSCONFIG23_HIGH 0x0000020E
-#define DREG_REGID_RSDMA01E 0x0000020F
-#define DREG_REGID_RSDMA23E 0x00000210
-#define DREG_REGID_RSD0_LOW 0x00000211
-#define DREG_REGID_RSD0_HIGH 0x00000212
-#define DREG_REGID_RSD1_LOW 0x00000213
-#define DREG_REGID_RSD1_HIGH 0x00000214
-#define DREG_REGID_RSD2_LOW 0x00000215
-#define DREG_REGID_RSD2_HIGH 0x00000216
-#define DREG_REGID_RSD3_LOW 0x00000217
-#define DREG_REGID_RSD3_HIGH 0x00000218
-#define DREG_REGID_SRAR_HIGH 0x0000021A
-#define DREG_REGID_SRAR_LOW 0x0000021B
-#define DREG_REGID_DMA_STATE 0x0000021C
-#define DREG_REGID_CURRENT_DMA_STREAM 0x0000021D
-#define DREG_REGID_NEXT_DMA_STREAM 0x0000021E
-#define DREG_REGID_CPU_STATUS 0x00000300
-#define DREG_REGID_MAC_MODE 0x00000301
-#define DREG_REGID_STACK_AND_REPEAT 0x00000302
-#define DREG_REGID_INDEX0 0x00000304
-#define DREG_REGID_INDEX1 0x00000305
-#define DREG_REGID_DMA_STATE_0_3 0x00000400
-#define DREG_REGID_DMA_STATE_4_7 0x00000404
-#define DREG_REGID_DMA_STATE_8_11 0x00000408
-#define DREG_REGID_DMA_STATE_12_15 0x0000040C
-#define DREG_REGID_DMA_STATE_16_19 0x00000410
-#define DREG_REGID_DMA_STATE_20_23 0x00000414
-#define DREG_REGID_DMA_STATE_24_27 0x00000418
-#define DREG_REGID_DMA_STATE_28_31 0x0000041C
-#define DREG_REGID_DMA_STATE_32_35 0x00000420
-#define DREG_REGID_DMA_STATE_36_39 0x00000424
-#define DREG_REGID_DMA_STATE_40_43 0x00000428
-#define DREG_REGID_DMA_STATE_44_47 0x0000042C
-#define DREG_REGID_DMA_STATE_48_51 0x00000430
-#define DREG_REGID_DMA_STATE_52_55 0x00000434
-#define DREG_REGID_DMA_STATE_56_59 0x00000438
-#define DREG_REGID_DMA_STATE_60_63 0x0000043C
-#define DREG_REGID_DMA_STATE_64_67 0x00000440
-#define DREG_REGID_DMA_STATE_68_71 0x00000444
-#define DREG_REGID_DMA_STATE_72_75 0x00000448
-#define DREG_REGID_DMA_STATE_76_79 0x0000044C
-#define DREG_REGID_DMA_STATE_80_83 0x00000450
-#define DREG_REGID_DMA_STATE_84_87 0x00000454
-#define DREG_REGID_DMA_STATE_88_91 0x00000458
-#define DREG_REGID_DMA_STATE_92_95 0x0000045C
-#define DREG_REGID_TRAP_SELECT 0x00000500
-#define DREG_REGID_TRAP_WRITE_0 0x00000500
-#define DREG_REGID_TRAP_WRITE_1 0x00000501
-#define DREG_REGID_TRAP_WRITE_2 0x00000502
-#define DREG_REGID_TRAP_WRITE_3 0x00000503
-#define DREG_REGID_TRAP_WRITE_4 0x00000504
-#define DREG_REGID_TRAP_WRITE_5 0x00000505
-#define DREG_REGID_TRAP_WRITE_6 0x00000506
-#define DREG_REGID_TRAP_WRITE_7 0x00000507
-#if !defined(NO_CS4612)
-#if !defined(NO_CS4615)
-#define DREG_REGID_TRAP_WRITE_8 0x00000510
-#define DREG_REGID_TRAP_WRITE_9 0x00000511
-#define DREG_REGID_TRAP_WRITE_10 0x00000512
-#define DREG_REGID_TRAP_WRITE_11 0x00000513
-#define DREG_REGID_TRAP_WRITE_12 0x00000514
-#define DREG_REGID_TRAP_WRITE_13 0x00000515
-#define DREG_REGID_TRAP_WRITE_14 0x00000516
-#define DREG_REGID_TRAP_WRITE_15 0x00000517
-#define DREG_REGID_TRAP_WRITE_16 0x00000518
-#define DREG_REGID_TRAP_WRITE_17 0x00000519
-#define DREG_REGID_TRAP_WRITE_18 0x0000051A
-#define DREG_REGID_TRAP_WRITE_19 0x0000051B
-#define DREG_REGID_TRAP_WRITE_20 0x0000051C
-#define DREG_REGID_TRAP_WRITE_21 0x0000051D
-#define DREG_REGID_TRAP_WRITE_22 0x0000051E
-#define DREG_REGID_TRAP_WRITE_23 0x0000051F
-#endif
-#endif
-#define DREG_REGID_MAC0_ACC0_LOW 0x00000600
-#define DREG_REGID_MAC0_ACC1_LOW 0x00000601
-#define DREG_REGID_MAC0_ACC2_LOW 0x00000602
-#define DREG_REGID_MAC0_ACC3_LOW 0x00000603
-#define DREG_REGID_MAC1_ACC0_LOW 0x00000604
-#define DREG_REGID_MAC1_ACC1_LOW 0x00000605
-#define DREG_REGID_MAC1_ACC2_LOW 0x00000606
-#define DREG_REGID_MAC1_ACC3_LOW 0x00000607
-#define DREG_REGID_MAC0_ACC0_MID 0x00000608
-#define DREG_REGID_MAC0_ACC1_MID 0x00000609
-#define DREG_REGID_MAC0_ACC2_MID 0x0000060A
-#define DREG_REGID_MAC0_ACC3_MID 0x0000060B
-#define DREG_REGID_MAC1_ACC0_MID 0x0000060C
-#define DREG_REGID_MAC1_ACC1_MID 0x0000060D
-#define DREG_REGID_MAC1_ACC2_MID 0x0000060E
-#define DREG_REGID_MAC1_ACC3_MID 0x0000060F
-#define DREG_REGID_MAC0_ACC0_HIGH 0x00000610
-#define DREG_REGID_MAC0_ACC1_HIGH 0x00000611
-#define DREG_REGID_MAC0_ACC2_HIGH 0x00000612
-#define DREG_REGID_MAC0_ACC3_HIGH 0x00000613
-#define DREG_REGID_MAC1_ACC0_HIGH 0x00000614
-#define DREG_REGID_MAC1_ACC1_HIGH 0x00000615
-#define DREG_REGID_MAC1_ACC2_HIGH 0x00000616
-#define DREG_REGID_MAC1_ACC3_HIGH 0x00000617
-#define DREG_REGID_RSHOUT_LOW 0x00000620
-#define DREG_REGID_RSHOUT_MID 0x00000628
-#define DREG_REGID_RSHOUT_HIGH 0x00000630
-
-/*
- * The following defines are for the flags in the DMA stream requestor write
- */
-#define DSRWP_DSR_MASK 0x0000000F
-#define DSRWP_DSR_BG_RQ 0x00000001
-#define DSRWP_DSR_PRIORITY_MASK 0x00000006
-#define DSRWP_DSR_PRIORITY_0 0x00000000
-#define DSRWP_DSR_PRIORITY_1 0x00000002
-#define DSRWP_DSR_PRIORITY_2 0x00000004
-#define DSRWP_DSR_PRIORITY_3 0x00000006
-#define DSRWP_DSR_RQ_PENDING 0x00000008
-
-/*
- * The following defines are for the flags in the trap write port register.
- */
-#define TWPR_TW_MASK 0x0000FFFF
-#define TWPR_TW_SHIFT 0
-
-/*
- * The following defines are for the flags in the stack pointer write
- * register.
- */
-#define SPWR_STKP_MASK 0x0000000F
-#define SPWR_STKP_SHIFT 0
-
-/*
- * The following defines are for the flags in the SP interrupt register.
- */
-#define SPIR_FRI 0x00000001
-#define SPIR_DOI 0x00000002
-#define SPIR_GPI2 0x00000004
-#define SPIR_GPI3 0x00000008
-#define SPIR_IP0 0x00000010
-#define SPIR_IP1 0x00000020
-#define SPIR_IP2 0x00000040
-#define SPIR_IP3 0x00000080
-
-/*
- * The following defines are for the flags in the functional group 1 register.
- */
-#define FGR1_F1S_MASK 0x0000FFFF
-#define FGR1_F1S_SHIFT 0
-
-/*
- * The following defines are for the flags in the SP clock status register.
- */
-#define SPCS_FRI 0x00000001
-#define SPCS_DOI 0x00000002
-#define SPCS_GPI2 0x00000004
-#define SPCS_GPI3 0x00000008
-#define SPCS_IP0 0x00000010
-#define SPCS_IP1 0x00000020
-#define SPCS_IP2 0x00000040
-#define SPCS_IP3 0x00000080
-#define SPCS_SPRUN 0x00000100
-#define SPCS_SLEEP 0x00000200
-#define SPCS_FG 0x00000400
-#define SPCS_ORUN 0x00000800
-#define SPCS_IRQ 0x00001000
-#define SPCS_FGN_MASK 0x0000E000
-#define SPCS_FGN_SHIFT 13
-
-/*
- * The following defines are for the flags in the SP DMA requestor status
- * register.
- */
-#define SDSR_DCS_MASK 0x000000FF
-#define SDSR_DCS_SHIFT 0
-#define SDSR_DCS_NONE 0x00000007
-
-/*
- * The following defines are for the flags in the frame timer register.
- */
-#define FRMT_FTV_MASK 0x0000FFFF
-#define FRMT_FTV_SHIFT 0
-
-/*
- * The following defines are for the flags in the frame timer current count
- * register.
- */
-#define FRCC_FCC_MASK 0x0000FFFF
-#define FRCC_FCC_SHIFT 0
-
-/*
- * The following defines are for the flags in the frame timer save count
- * register.
- */
-#define FRSC_FCS_MASK 0x0000FFFF
-#define FRSC_FCS_SHIFT 0
-
-/*
- * The following define the various flags stored in the scatter/gather
- * descriptors.
- */
-#define DMA_SG_NEXT_ENTRY_MASK 0x00000FF8
-#define DMA_SG_SAMPLE_END_MASK 0x0FFF0000
-#define DMA_SG_SAMPLE_END_FLAG 0x10000000
-#define DMA_SG_LOOP_END_FLAG 0x20000000
-#define DMA_SG_SIGNAL_END_FLAG 0x40000000
-#define DMA_SG_SIGNAL_PAGE_FLAG 0x80000000
-#define DMA_SG_NEXT_ENTRY_SHIFT 3
-#define DMA_SG_SAMPLE_END_SHIFT 16
-
-/*
- * The following define the offsets of the fields within the on-chip generic
- * DMA requestor.
- */
-#define DMA_RQ_CONTROL1 0x00000000
-#define DMA_RQ_CONTROL2 0x00000004
-#define DMA_RQ_SOURCE_ADDR 0x00000008
-#define DMA_RQ_DESTINATION_ADDR 0x0000000C
-#define DMA_RQ_NEXT_PAGE_ADDR 0x00000010
-#define DMA_RQ_NEXT_PAGE_SGDESC 0x00000014
-#define DMA_RQ_LOOP_START_ADDR 0x00000018
-#define DMA_RQ_POST_LOOP_ADDR 0x0000001C
-#define DMA_RQ_PAGE_MAP_ADDR 0x00000020
-
-/*
- * The following defines are for the flags in the first control word of the
- * on-chip generic DMA requestor.
- */
-#define DMA_RQ_C1_COUNT_MASK 0x000003FF
-#define DMA_RQ_C1_DESTINATION_SCATTER 0x00001000
-#define DMA_RQ_C1_SOURCE_GATHER 0x00002000
-#define DMA_RQ_C1_DONE_FLAG 0x00004000
-#define DMA_RQ_C1_OPTIMIZE_STATE 0x00008000
-#define DMA_RQ_C1_SAMPLE_END_STATE_MASK 0x00030000
-#define DMA_RQ_C1_FULL_PAGE 0x00000000
-#define DMA_RQ_C1_BEFORE_SAMPLE_END 0x00010000
-#define DMA_RQ_C1_PAGE_MAP_ERROR 0x00020000
-#define DMA_RQ_C1_AT_SAMPLE_END 0x00030000
-#define DMA_RQ_C1_LOOP_END_STATE_MASK 0x000C0000
-#define DMA_RQ_C1_NOT_LOOP_END 0x00000000
-#define DMA_RQ_C1_BEFORE_LOOP_END 0x00040000
-#define DMA_RQ_C1_2PAGE_LOOP_BEGIN 0x00080000
-#define DMA_RQ_C1_LOOP_BEGIN 0x000C0000
-#define DMA_RQ_C1_PAGE_MAP_MASK 0x00300000
-#define DMA_RQ_C1_PM_NONE_PENDING 0x00000000
-#define DMA_RQ_C1_PM_NEXT_PENDING 0x00100000
-#define DMA_RQ_C1_PM_RESERVED 0x00200000
-#define DMA_RQ_C1_PM_LOOP_NEXT_PENDING 0x00300000
-#define DMA_RQ_C1_WRITEBACK_DEST_FLAG 0x00400000
-#define DMA_RQ_C1_WRITEBACK_SRC_FLAG 0x00800000
-#define DMA_RQ_C1_DEST_SIZE_MASK 0x07000000
-#define DMA_RQ_C1_DEST_LINEAR 0x00000000
-#define DMA_RQ_C1_DEST_MOD16 0x01000000
-#define DMA_RQ_C1_DEST_MOD32 0x02000000
-#define DMA_RQ_C1_DEST_MOD64 0x03000000
-#define DMA_RQ_C1_DEST_MOD128 0x04000000
-#define DMA_RQ_C1_DEST_MOD256 0x05000000
-#define DMA_RQ_C1_DEST_MOD512 0x06000000
-#define DMA_RQ_C1_DEST_MOD1024 0x07000000
-#define DMA_RQ_C1_DEST_ON_HOST 0x08000000
-#define DMA_RQ_C1_SOURCE_SIZE_MASK 0x70000000
-#define DMA_RQ_C1_SOURCE_LINEAR 0x00000000
-#define DMA_RQ_C1_SOURCE_MOD16 0x10000000
-#define DMA_RQ_C1_SOURCE_MOD32 0x20000000
-#define DMA_RQ_C1_SOURCE_MOD64 0x30000000
-#define DMA_RQ_C1_SOURCE_MOD128 0x40000000
-#define DMA_RQ_C1_SOURCE_MOD256 0x50000000
-#define DMA_RQ_C1_SOURCE_MOD512 0x60000000
-#define DMA_RQ_C1_SOURCE_MOD1024 0x70000000
-#define DMA_RQ_C1_SOURCE_ON_HOST 0x80000000
-#define DMA_RQ_C1_COUNT_SHIFT 0
-
-/*
- * The following defines are for the flags in the second control word of the
- * on-chip generic DMA requestor.
- */
-#define DMA_RQ_C2_VIRTUAL_CHANNEL_MASK 0x0000003F
-#define DMA_RQ_C2_VIRTUAL_SIGNAL_MASK 0x00000300
-#define DMA_RQ_C2_NO_VIRTUAL_SIGNAL 0x00000000
-#define DMA_RQ_C2_SIGNAL_EVERY_DMA 0x00000100
-#define DMA_RQ_C2_SIGNAL_SOURCE_PINGPONG 0x00000200
-#define DMA_RQ_C2_SIGNAL_DEST_PINGPONG 0x00000300
-#define DMA_RQ_C2_AUDIO_CONVERT_MASK 0x0000F000
-#define DMA_RQ_C2_AC_NONE 0x00000000
-#define DMA_RQ_C2_AC_8_TO_16_BIT 0x00001000
-#define DMA_RQ_C2_AC_MONO_TO_STEREO 0x00002000
-#define DMA_RQ_C2_AC_ENDIAN_CONVERT 0x00004000
-#define DMA_RQ_C2_AC_SIGNED_CONVERT 0x00008000
-#define DMA_RQ_C2_LOOP_END_MASK 0x0FFF0000
-#define DMA_RQ_C2_LOOP_MASK 0x30000000
-#define DMA_RQ_C2_NO_LOOP 0x00000000
-#define DMA_RQ_C2_ONE_PAGE_LOOP 0x10000000
-#define DMA_RQ_C2_TWO_PAGE_LOOP 0x20000000
-#define DMA_RQ_C2_MULTI_PAGE_LOOP 0x30000000
-#define DMA_RQ_C2_SIGNAL_LOOP_BACK 0x40000000
-#define DMA_RQ_C2_SIGNAL_POST_BEGIN_PAGE 0x80000000
-#define DMA_RQ_C2_VIRTUAL_CHANNEL_SHIFT 0
-#define DMA_RQ_C2_LOOP_END_SHIFT 16
-
-/*
- * The following defines are for the flags in the source and destination words
- * of the on-chip generic DMA requestor.
- */
-#define DMA_RQ_SD_ADDRESS_MASK 0x0000FFFF
-#define DMA_RQ_SD_MEMORY_ID_MASK 0x000F0000
-#define DMA_RQ_SD_SP_PARAM_ADDR 0x00000000
-#define DMA_RQ_SD_SP_SAMPLE_ADDR 0x00010000
-#define DMA_RQ_SD_SP_PROGRAM_ADDR 0x00020000
-#define DMA_RQ_SD_SP_DEBUG_ADDR 0x00030000
-#define DMA_RQ_SD_OMNIMEM_ADDR 0x000E0000
-#define DMA_RQ_SD_END_FLAG 0x40000000
-#define DMA_RQ_SD_ERROR_FLAG 0x80000000
-#define DMA_RQ_SD_ADDRESS_SHIFT 0
-
-/*
- * The following defines are for the flags in the page map address word of the
- * on-chip generic DMA requestor.
- */
-#define DMA_RQ_PMA_LOOP_THIRD_PAGE_ENTRY_MASK 0x00000FF8
-#define DMA_RQ_PMA_PAGE_TABLE_MASK 0xFFFFF000
-#define DMA_RQ_PMA_LOOP_THIRD_PAGE_ENTRY_SHIFT 3
-#define DMA_RQ_PMA_PAGE_TABLE_SHIFT 12
-
-#define BA1_VARIDEC_BUF_1 0x000
-
-#define BA1_PDTC 0x0c0 /* BA1_PLAY_DMA_TRANSACTION_COUNT_REG */
-#define BA1_PFIE 0x0c4 /* BA1_PLAY_FORMAT_&_INTERRUPT_ENABLE_REG */
-#define BA1_PBA 0x0c8 /* BA1_PLAY_BUFFER_ADDRESS */
-#define BA1_PVOL 0x0f8 /* BA1_PLAY_VOLUME_REG */
-#define BA1_PSRC 0x288 /* BA1_PLAY_SAMPLE_RATE_CORRECTION_REG */
-#define BA1_PCTL 0x2a4 /* BA1_PLAY_CONTROL_REG */
-#define BA1_PPI 0x2b4 /* BA1_PLAY_PHASE_INCREMENT_REG */
-
-#define BA1_CCTL 0x064 /* BA1_CAPTURE_CONTROL_REG */
-#define BA1_CIE 0x104 /* BA1_CAPTURE_INTERRUPT_ENABLE_REG */
-#define BA1_CBA 0x10c /* BA1_CAPTURE_BUFFER_ADDRESS */
-#define BA1_CSRC 0x2c8 /* BA1_CAPTURE_SAMPLE_RATE_CORRECTION_REG */
-#define BA1_CCI 0x2d8 /* BA1_CAPTURE_COEFFICIENT_INCREMENT_REG */
-#define BA1_CD 0x2e0 /* BA1_CAPTURE_DELAY_REG */
-#define BA1_CPI 0x2f4 /* BA1_CAPTURE_PHASE_INCREMENT_REG */
-#define BA1_CVOL 0x2f8 /* BA1_CAPTURE_VOLUME_REG */
-
-#define BA1_CFG1 0x134 /* BA1_CAPTURE_FRAME_GROUP_1_REG */
-#define BA1_CFG2 0x138 /* BA1_CAPTURE_FRAME_GROUP_2_REG */
-#define BA1_CCST 0x13c /* BA1_CAPTURE_CONSTANT_REG */
-#define BA1_CSPB 0x340 /* BA1_CAPTURE_SPB_ADDRESS */
-
-/*
- *
- */
-
-#define CS46XX_MODE_OUTPUT (1<<0) /* MIDI UART - output */
-#define CS46XX_MODE_INPUT (1<<1) /* MIDI UART - input */
-
-/*
- *
- */
-
-#define SAVE_REG_MAX 0x10
-#define POWER_DOWN_ALL 0x7f0f
-
-/* maxinum number of AC97 codecs connected, AC97 2.0 defined 4 */
-#define MAX_NR_AC97 4
-#define CS46XX_PRIMARY_CODEC_INDEX 0
-#define CS46XX_SECONDARY_CODEC_INDEX 1
-#define CS46XX_SECONDARY_CODEC_OFFSET 0x80
-#define CS46XX_DSP_CAPTURE_CHANNEL 1
-
-/* capture */
-#define CS46XX_DSP_CAPTURE_CHANNEL 1
-
-/* mixer */
-#define CS46XX_MIXER_SPDIF_INPUT_ELEMENT 1
-#define CS46XX_MIXER_SPDIF_OUTPUT_ELEMENT 2
-
-
-struct snd_cs46xx_pcm {
- struct snd_dma_buffer hw_buf;
-
- unsigned int ctl;
- unsigned int shift; /* Shift count to trasform frames in bytes */
- struct snd_pcm_indirect pcm_rec;
- struct snd_pcm_substream *substream;
-
- struct dsp_pcm_channel_descriptor * pcm_channel;
-
- int pcm_channel_id; /* Fron Rear, Center Lfe ... */
-};
-
-struct snd_cs46xx_region {
- char name[24];
- unsigned long base;
- void __iomem *remap_addr;
- unsigned long size;
- struct resource *resource;
-};
-
-struct snd_cs46xx {
- int irq;
- unsigned long ba0_addr;
- unsigned long ba1_addr;
- union {
- struct {
- struct snd_cs46xx_region ba0;
- struct snd_cs46xx_region data0;
- struct snd_cs46xx_region data1;
- struct snd_cs46xx_region pmem;
- struct snd_cs46xx_region reg;
- } name;
- struct snd_cs46xx_region idx[5];
- } region;
-
- unsigned int mode;
-
- struct {
- struct snd_dma_buffer hw_buf;
-
- unsigned int ctl;
- unsigned int shift; /* Shift count to trasform frames in bytes */
- struct snd_pcm_indirect pcm_rec;
- struct snd_pcm_substream *substream;
- } capt;
-
-
- int nr_ac97_codecs;
- struct snd_ac97_bus *ac97_bus;
- struct snd_ac97 *ac97[MAX_NR_AC97];
-
- struct pci_dev *pci;
- struct snd_card *card;
- struct snd_pcm *pcm;
-
- struct snd_rawmidi *rmidi;
- struct snd_rawmidi_substream *midi_input;
- struct snd_rawmidi_substream *midi_output;
-
- spinlock_t reg_lock;
- unsigned int midcr;
- unsigned int uartm;
-
- int amplifier;
- void (*amplifier_ctrl)(struct snd_cs46xx *, int);
- void (*active_ctrl)(struct snd_cs46xx *, int);
- void (*mixer_init)(struct snd_cs46xx *);
-
- int acpi_port;
- struct snd_kcontrol *eapd_switch; /* for amplifier hack */
- int accept_valid; /* accept mmap valid (for OSS) */
- int in_suspend;
-
- struct gameport *gameport;
-
-#ifdef CONFIG_SND_CS46XX_NEW_DSP
- struct mutex spos_mutex;
-
- struct dsp_spos_instance * dsp_spos_instance;
-
- struct snd_pcm *pcm_rear;
- struct snd_pcm *pcm_center_lfe;
- struct snd_pcm *pcm_iec958;
-#else /* for compatibility */
- struct snd_cs46xx_pcm *playback_pcm;
- unsigned int play_ctl;
-#endif
-
-#ifdef CONFIG_PM
- u32 *saved_regs;
-#endif
-};
-
-int snd_cs46xx_create(struct snd_card *card,
- struct pci_dev *pci,
- int external_amp, int thinkpad,
- struct snd_cs46xx **rcodec);
-int snd_cs46xx_suspend(struct pci_dev *pci, pm_message_t state);
-int snd_cs46xx_resume(struct pci_dev *pci);
-
-int snd_cs46xx_pcm(struct snd_cs46xx *chip, int device, struct snd_pcm **rpcm);
-int snd_cs46xx_pcm_rear(struct snd_cs46xx *chip, int device, struct snd_pcm **rpcm);
-int snd_cs46xx_pcm_iec958(struct snd_cs46xx *chip, int device, struct snd_pcm **rpcm);
-int snd_cs46xx_pcm_center_lfe(struct snd_cs46xx *chip, int device, struct snd_pcm **rpcm);
-int snd_cs46xx_mixer(struct snd_cs46xx *chip, int spdif_device);
-int snd_cs46xx_midi(struct snd_cs46xx *chip, int device, struct snd_rawmidi **rmidi);
-int snd_cs46xx_start_dsp(struct snd_cs46xx *chip);
-int snd_cs46xx_gameport(struct snd_cs46xx *chip);
-
-#endif /* __SOUND_CS46XX_H */
diff --git a/ANDROID_3.4.5/include/sound/cs46xx_dsp_scb_types.h b/ANDROID_3.4.5/include/sound/cs46xx_dsp_scb_types.h
deleted file mode 100644
index 080857ad..00000000
--- a/ANDROID_3.4.5/include/sound/cs46xx_dsp_scb_types.h
+++ /dev/null
@@ -1,1213 +0,0 @@
-/*
- * The driver for the Cirrus Logic's Sound Fusion CS46XX based soundcards
- * Copyright (c) by Jaroslav Kysela <perex@perex.cz>
- *
- *
- * 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
- *
- *
- * NOTE: comments are copy/paste from cwcemb80.lst
- * provided by Tom Woller at Cirrus (my only
- * documentation about the SP OS running inside
- * the DSP)
- */
-
-#ifndef __CS46XX_DSP_SCB_TYPES_H__
-#define __CS46XX_DSP_SCB_TYPES_H__
-
-#include <asm/byteorder.h>
-
-#ifndef ___DSP_DUAL_16BIT_ALLOC
-#if defined(__LITTLE_ENDIAN)
-#define ___DSP_DUAL_16BIT_ALLOC(a,b) u16 a; u16 b;
-#elif defined(__BIG_ENDIAN)
-#define ___DSP_DUAL_16BIT_ALLOC(a,b) u16 b; u16 a;
-#else
-#error Not __LITTLE_ENDIAN and not __BIG_ENDIAN, then what ???
-#endif
-#endif
-
-/* This structs are used internally by the SP */
-
-struct dsp_basic_dma_req {
- /* DMA Requestor Word 0 (DCW) fields:
-
- 31 [30-28]27 [26:24] 23 22 21 20 [19:18] [17:16] 15 14 13 12 11 10 9 8 7 6 [5:0]
- _______________________________________________________________________________________
- |S| SBT |D| DBT |wb|wb| | | LS | SS |Opt|Do|SSG|DSG| | | | | | | Dword |
- |H|_____ |H|_________|S_|D |__|__|______|_______|___|ne|__ |__ |__|__|_|_|_|_|_Count -1|
- */
- u32 dcw; /* DMA Control Word */
- u32 dmw; /* DMA Mode Word */
- u32 saw; /* Source Address Word */
- u32 daw; /* Destination Address Word */
-};
-
-struct dsp_scatter_gather_ext {
- u32 npaw; /* Next-Page Address Word */
-
- /* DMA Requestor Word 5 (NPCW) fields:
-
- 31-30 29 28 [27:16] [15:12] [11:3] [2:0]
- _________________________________________________________________________________________
- |SV |LE|SE| Sample-end byte offset | | Page-map entry offset for next | |
- |page|__|__| ___________________________|_________|__page, if !sample-end___________|____|
- */
- u32 npcw; /* Next-Page Control Word */
- u32 lbaw; /* Loop-Begin Address Word */
- u32 nplbaw; /* Next-Page after Loop-Begin Address Word */
- u32 sgaw; /* Scatter/Gather Address Word */
-};
-
-struct dsp_volume_control {
- ___DSP_DUAL_16BIT_ALLOC(
- rightTarg, /* Target volume for left & right channels */
- leftTarg
- )
- ___DSP_DUAL_16BIT_ALLOC(
- rightVol, /* Current left & right channel volumes */
- leftVol
- )
-};
-
-/* Generic stream control block (SCB) structure definition */
-struct dsp_generic_scb {
- /* For streaming I/O, the DSP should never alter any words in the DMA
- requestor or the scatter/gather extension. Only ad hoc DMA request
- streams are free to alter the requestor (currently only occur in the
- DOS-based MIDI controller and in debugger-inserted code).
-
- If an SCB does not have any associated DMA requestor, these 9 ints
- may be freed for use by other tasks, but the pointer to the SCB must
- still be such that the insOrd:nextSCB appear at offset 9 from the
- SCB pointer.
-
- Basic (non scatter/gather) DMA requestor (4 ints)
- */
-
- /* Initialized by the host, only modified by DMA
- R/O for the DSP task */
- struct dsp_basic_dma_req basic_req; /* Optional */
-
- /* Scatter/gather DMA requestor extension (5 ints)
- Initialized by the host, only modified by DMA
- DSP task never needs to even read these.
- */
- struct dsp_scatter_gather_ext sg_ext; /* Optional */
-
- /* Sublist pointer & next stream control block (SCB) link.
- Initialized & modified by the host R/O for the DSP task
- */
- ___DSP_DUAL_16BIT_ALLOC(
- next_scb, /* REQUIRED */
- sub_list_ptr /* REQUIRED */
- )
-
- /* Pointer to this tasks parameter block & stream function pointer
- Initialized by the host R/O for the DSP task */
- ___DSP_DUAL_16BIT_ALLOC(
- entry_point, /* REQUIRED */
- this_spb /* REQUIRED */
- )
-
- /* rsConfig register for stream buffer (rsDMA reg.
- is loaded from basicReq.daw for incoming streams, or
- basicReq.saw, for outgoing streams)
-
- 31 30 29 [28:24] [23:16] 15 14 13 12 11 10 9 8 7 6 5 4 [3:0]
- ______________________________________________________________________________
- |DMA |D|maxDMAsize| streamNum|dir|p| | | | | | |ds |shr 1|rev Cy | mod |
- |prio |_|__________|__________|___|_|__|__|__|__|_|_|___|_____|_______|_______|
- 31 30 29 [28:24] [23:16] 15 14 13 12 11 10 9 8 7 6 5 4 [3:0]
-
-
- Initialized by the host R/O for the DSP task
- */
- u32 strm_rs_config; /* REQUIRED */
- //
- /* On mixer input streams: indicates mixer input stream configuration
- On Tees, this is copied from the stream being snooped
-
- Stream sample pointer & MAC-unit mode for this stream
-
- Initialized by the host Updated by the DSP task
- */
- u32 strm_buf_ptr; /* REQUIRED */
-
- /* On mixer input streams: points to next mixer input and is updated by the
- mixer subroutine in the "parent" DSP task
- (least-significant 16 bits are preserved, unused)
-
- On Tees, the pointer is copied from the stream being snooped on
- initialization, and, subsequently, it is copied into the
- stream being snooped.
-
- On wavetable/3D voices: the strmBufPtr will use all 32 bits to allow for
- fractional phase accumulation
-
- Fractional increment per output sample in the input sample buffer
-
- (Not used on mixer input streams & redefined on Tees)
- On wavetable/3D voices: this 32-bit word specifies the integer.fractional
- increment per output sample.
- */
- u32 strmPhiIncr;
-
-
- /* Standard stereo volume control
- Initialized by the host (host updates target volumes)
-
- Current volumes update by the DSP task
- On mixer input streams: required & updated by the mixer subroutine in the
- "parent" DSP task
-
- On Tees, both current & target volumes are copied up on initialization,
- and, subsequently, the target volume is copied up while the current
- volume is copied down.
-
- These two 32-bit words are redefined for wavetable & 3-D voices.
- */
- struct dsp_volume_control vol_ctrl_t; /* Optional */
-};
-
-
-struct dsp_spos_control_block {
- /* WARNING: Certain items in this structure are modified by the host
- Any dword that can be modified by the host, must not be
- modified by the SP as the host can only do atomic dword
- writes, and to do otherwise, even a read modify write,
- may lead to corrupted data on the SP.
-
- This rule does not apply to one off boot time initialisation prior to starting the SP
- */
-
-
- ___DSP_DUAL_16BIT_ALLOC(
- /* First element on the Hyper forground task tree */
- hfg_tree_root_ptr, /* HOST */
- /* First 3 dwords are written by the host and read-only on the DSP */
- hfg_stack_base /* HOST */
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- /* Point to this data structure to enable easy access */
- spos_cb_ptr, /* SP */
- prev_task_tree_ptr /* SP && HOST */
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- /* Currently Unused */
- xxinterval_timer_period,
- /* Enable extension of SPOS data structure */
- HFGSPB_ptr
- )
-
-
- ___DSP_DUAL_16BIT_ALLOC(
- xxnum_HFG_ticks_thisInterval,
- /* Modified by the DSP */
- xxnum_tntervals
- )
-
-
- /* Set by DSP upon encountering a trap (breakpoint) or a spurious
- interrupt. The host must clear this dword after reading it
- upon receiving spInt1. */
- ___DSP_DUAL_16BIT_ALLOC(
- spurious_int_flag, /* (Host & SP) Nature of the spurious interrupt */
- trap_flag /* (Host & SP) Nature of detected Trap */
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- unused2,
- invalid_IP_flag /* (Host & SP ) Indicate detection of invalid instruction pointer */
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- /* pointer to forground task tree header for use in next task search */
- fg_task_tree_hdr_ptr, /* HOST */
- /* Data structure for controlling synchronous link update */
- hfg_sync_update_ptr /* HOST */
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- begin_foreground_FCNT, /* SP */
- /* Place holder for holding sleep timing */
- last_FCNT_before_sleep /* SP */
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- unused7, /* SP */
- next_task_treePtr /* SP */
- )
-
- u32 unused5;
-
- ___DSP_DUAL_16BIT_ALLOC(
- active_flags, /* SP */
- /* State flags, used to assist control of execution of Hyper Forground */
- HFG_flags /* SP */
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- unused9,
- unused8
- )
-
- /* Space for saving enough context so that we can set up enough
- to save some more context.
- */
- u32 rFE_save_for_invalid_IP;
- u32 r32_save_for_spurious_int;
- u32 r32_save_for_trap;
- u32 r32_save_for_HFG;
-};
-
-/* SPB for MIX_TO_OSTREAM algorithm family */
-struct dsp_mix2_ostream_spb
-{
- /* 16b.16b integer.frac approximation to the
- number of 3 sample triplets to output each
- frame. (approximation must be floor, to
- insure that the fractional error is always
- positive)
- */
- u32 outTripletsPerFrame;
-
- /* 16b.16b integer.frac accumulated number of
- output triplets since the start of group
- */
- u32 accumOutTriplets;
-};
-
-/* SCB for Timing master algorithm */
-struct dsp_timing_master_scb {
- /* First 12 dwords from generic_scb_t */
- struct dsp_basic_dma_req basic_req; /* Optional */
- struct dsp_scatter_gather_ext sg_ext; /* Optional */
- ___DSP_DUAL_16BIT_ALLOC(
- next_scb, /* REQUIRED */
- sub_list_ptr /* REQUIRED */
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- entry_point, /* REQUIRED */
- this_spb /* REQUIRED */
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- /* Initial values are 0000:xxxx */
- reserved,
- extra_sample_accum
- )
-
-
- /* Initial values are xxxx:0000
- hi: Current CODEC output FIFO pointer
- (0 to 0x0f)
- lo: Flag indicating that the CODEC
- FIFO is sync'd (host clears to
- resynchronize the FIFO pointer
- upon start/restart)
- */
- ___DSP_DUAL_16BIT_ALLOC(
- codec_FIFO_syncd,
- codec_FIFO_ptr
- )
-
- /* Init. 8000:0005 for 44.1k
- 8000:0001 for 48k
- hi: Fractional sample accumulator 0.16b
- lo: Number of frames remaining to be
- processed in the current group of
- frames
- */
- ___DSP_DUAL_16BIT_ALLOC(
- frac_samp_accum_qm1,
- TM_frms_left_in_group
- )
-
- /* Init. 0001:0005 for 44.1k
- 0000:0001 for 48k
- hi: Fractional sample correction factor 0.16b
- to be added every frameGroupLength frames
- to correct for truncation error in
- nsamp_per_frm_q15
- lo: Number of frames in the group
- */
- ___DSP_DUAL_16BIT_ALLOC(
- frac_samp_correction_qm1,
- TM_frm_group_length
- )
-
- /* Init. 44.1k*65536/8k = 0x00058333 for 44.1k
- 48k*65536/8k = 0x00060000 for 48k
- 16b.16b integer.frac approximation to the
- number of samples to output each frame.
- (approximation must be floor, to insure */
- u32 nsamp_per_frm_q15;
-};
-
-/* SCB for CODEC output algorithm */
-struct dsp_codec_output_scb {
- /* First 13 dwords from generic_scb_t */
- struct dsp_basic_dma_req basic_req; /* Optional */
- struct dsp_scatter_gather_ext sg_ext; /* Optional */
- ___DSP_DUAL_16BIT_ALLOC(
- next_scb, /* REQUIRED */
- sub_list_ptr /* REQUIRED */
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- entry_point, /* REQUIRED */
- this_spb /* REQUIRED */
- )
-
- u32 strm_rs_config; /* REQUIRED */
-
- u32 strm_buf_ptr; /* REQUIRED */
-
- /* NOTE: The CODEC output task reads samples from the first task on its
- sublist at the stream buffer pointer (init. to lag DMA destination
- address word). After the required number of samples is transferred,
- the CODEC output task advances sub_list_ptr->strm_buf_ptr past the samples
- consumed.
- */
-
- /* Init. 0000:0010 for SDout
- 0060:0010 for SDout2
- 0080:0010 for SDout3
- hi: Base IO address of FIFO to which
- the left-channel samples are to
- be written.
- lo: Displacement for the base IO
- address for left-channel to obtain
- the base IO address for the FIFO
- to which the right-channel samples
- are to be written.
- */
- ___DSP_DUAL_16BIT_ALLOC(
- left_chan_base_IO_addr,
- right_chan_IO_disp
- )
-
-
- /* Init: 0x0080:0004 for non-AC-97
- Init: 0x0080:0000 for AC-97
- hi: Exponential volume change rate
- for input stream
- lo: Positive shift count to shift the
- 16-bit input sample to obtain the
- 32-bit output word
- */
- ___DSP_DUAL_16BIT_ALLOC(
- CO_scale_shift_count,
- CO_exp_vol_change_rate
- )
-
- /* Pointer to SCB at end of input chain */
- ___DSP_DUAL_16BIT_ALLOC(
- reserved,
- last_sub_ptr
- )
-};
-
-/* SCB for CODEC input algorithm */
-struct dsp_codec_input_scb {
- /* First 13 dwords from generic_scb_t */
- struct dsp_basic_dma_req basic_req; /* Optional */
- struct dsp_scatter_gather_ext sg_ext; /* Optional */
- ___DSP_DUAL_16BIT_ALLOC(
- next_scb, /* REQUIRED */
- sub_list_ptr /* REQUIRED */
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- entry_point, /* REQUIRED */
- this_spb /* REQUIRED */
- )
-
- u32 strm_rs_config; /* REQUIRED */
- u32 strm_buf_ptr; /* REQUIRED */
-
- /* NOTE: The CODEC input task reads samples from the hardware FIFO
- sublist at the DMA source address word (sub_list_ptr->basic_req.saw).
- After the required number of samples is transferred, the CODEC
- output task advances sub_list_ptr->basic_req.saw past the samples
- consumed. SPuD must initialize the sub_list_ptr->basic_req.saw
- to point half-way around from the initial sub_list_ptr->strm_nuf_ptr
- to allow for lag/lead.
- */
-
- /* Init. 0000:0010 for SDout
- 0060:0010 for SDout2
- 0080:0010 for SDout3
- hi: Base IO address of FIFO to which
- the left-channel samples are to
- be written.
- lo: Displacement for the base IO
- address for left-channel to obtain
- the base IO address for the FIFO
- to which the right-channel samples
- are to be written.
- */
- ___DSP_DUAL_16BIT_ALLOC(
- rightChanINdisp,
- left_chan_base_IN_addr
- )
- /* Init. ?:fffc
- lo: Negative shift count to shift the
- 32-bit input dword to obtain the
- 16-bit sample msb-aligned (count
- is negative to shift left)
- */
- ___DSP_DUAL_16BIT_ALLOC(
- scaleShiftCount,
- reserver1
- )
-
- u32 reserved2;
-};
-
-
-struct dsp_pcm_serial_input_scb {
- /* First 13 dwords from generic_scb_t */
- struct dsp_basic_dma_req basic_req; /* Optional */
- struct dsp_scatter_gather_ext sg_ext; /* Optional */
- ___DSP_DUAL_16BIT_ALLOC(
- next_scb, /* REQUIRED */
- sub_list_ptr /* REQUIRED */
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- entry_point, /* REQUIRED */
- this_spb /* REQUIRED */
- )
-
- u32 strm_buf_ptr; /* REQUIRED */
- u32 strm_rs_config; /* REQUIRED */
-
- /* Init. Ptr to CODEC input SCB
- hi: Pointer to the SCB containing the
- input buffer to which CODEC input
- samples are written
- lo: Flag indicating the link to the CODEC
- input task is to be initialized
- */
- ___DSP_DUAL_16BIT_ALLOC(
- init_codec_input_link,
- codec_input_buf_scb
- )
-
- /* Initialized by the host (host updates target volumes) */
- struct dsp_volume_control psi_vol_ctrl;
-
-};
-
-struct dsp_src_task_scb {
- ___DSP_DUAL_16BIT_ALLOC(
- frames_left_in_gof,
- gofs_left_in_sec
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- const2_thirds,
- num_extra_tnput_samples
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- cor_per_gof,
- correction_per_sec
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- output_buf_producer_ptr,
- junk_DMA_MID
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- gof_length,
- gofs_per_sec
- )
-
- u32 input_buf_strm_config;
-
- ___DSP_DUAL_16BIT_ALLOC(
- reserved_for_SRC_use,
- input_buf_consumer_ptr
- )
-
- u32 accum_phi;
-
- ___DSP_DUAL_16BIT_ALLOC(
- exp_src_vol_change_rate,
- input_buf_producer_ptr
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- src_next_scb,
- src_sub_list_ptr
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- src_entry_point,
- src_this_sbp
- )
-
- u32 src_strm_rs_config;
- u32 src_strm_buf_ptr;
-
- u32 phiIncr6int_26frac;
-
- struct dsp_volume_control src_vol_ctrl;
-};
-
-struct dsp_decimate_by_pow2_scb {
- /* decimationFactor = 2, 4, or 8 (larger factors waste too much memory
- when compared to cascading decimators)
- */
- ___DSP_DUAL_16BIT_ALLOC(
- dec2_coef_base_ptr,
- dec2_coef_increment
- )
-
- /* coefIncrement = 128 / decimationFactor (for our ROM filter)
- coefBasePtr = 0x8000 (for our ROM filter)
- */
- ___DSP_DUAL_16BIT_ALLOC(
- dec2_in_samples_per_out_triplet,
- dec2_extra_in_samples
- )
- /* extraInSamples: # of accumulated, unused input samples (init. to 0)
- inSamplesPerOutTriplet = 3 * decimationFactor
- */
-
- ___DSP_DUAL_16BIT_ALLOC(
- dec2_const2_thirds,
- dec2_half_num_taps_mp5
- )
- /* halfNumTapsM5: (1/2 number of taps in decimation filter) minus 5
- const2thirds: constant 2/3 in 16Q0 format (sign.15)
- */
-
- ___DSP_DUAL_16BIT_ALLOC(
- dec2_output_buf_producer_ptr,
- dec2_junkdma_mid
- )
-
- u32 dec2_reserved2;
-
- u32 dec2_input_nuf_strm_config;
- /* inputBufStrmConfig: rsConfig for the input buffer to the decimator
- (buffer size = decimationFactor * 32 dwords)
- */
-
- ___DSP_DUAL_16BIT_ALLOC(
- dec2_phi_incr,
- dec2_input_buf_consumer_ptr
- )
- /* inputBufConsumerPtr: Input buffer read pointer (into SRC filter)
- phiIncr = decimationFactor * 4
- */
-
- u32 dec2_reserved3;
-
- ___DSP_DUAL_16BIT_ALLOC(
- dec2_exp_vol_change_rate,
- dec2_input_buf_producer_ptr
- )
- /* inputBufProducerPtr: Input buffer write pointer
- expVolChangeRate: Exponential volume change rate for possible
- future mixer on input streams
- */
-
- ___DSP_DUAL_16BIT_ALLOC(
- dec2_next_scb,
- dec2_sub_list_ptr
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- dec2_entry_point,
- dec2_this_spb
- )
-
- u32 dec2_strm_rs_config;
- u32 dec2_strm_buf_ptr;
-
- u32 dec2_reserved4;
-
- struct dsp_volume_control dec2_vol_ctrl; /* Not used! */
-};
-
-struct dsp_vari_decimate_scb {
- ___DSP_DUAL_16BIT_ALLOC(
- vdec_frames_left_in_gof,
- vdec_gofs_left_in_sec
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- vdec_const2_thirds,
- vdec_extra_in_samples
- )
- /* extraInSamples: # of accumulated, unused input samples (init. to 0)
- const2thirds: constant 2/3 in 16Q0 format (sign.15) */
-
- ___DSP_DUAL_16BIT_ALLOC(
- vdec_cor_per_gof,
- vdec_correction_per_sec
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- vdec_output_buf_producer_ptr,
- vdec_input_buf_consumer_ptr
- )
- /* inputBufConsumerPtr: Input buffer read pointer (into SRC filter) */
- ___DSP_DUAL_16BIT_ALLOC(
- vdec_gof_length,
- vdec_gofs_per_sec
- )
-
- u32 vdec_input_buf_strm_config;
- /* inputBufStrmConfig: rsConfig for the input buffer to the decimator
- (buffer size = 64 dwords) */
- u32 vdec_coef_increment;
- /* coefIncrement = - 128.0 / decimationFactor (as a 32Q15 number) */
-
- u32 vdec_accumphi;
- /* accumPhi: accumulated fractional phase increment (6.26) */
-
- ___DSP_DUAL_16BIT_ALLOC(
- vdec_exp_vol_change_rate,
- vdec_input_buf_producer_ptr
- )
- /* inputBufProducerPtr: Input buffer write pointer
- expVolChangeRate: Exponential volume change rate for possible
- future mixer on input streams */
-
- ___DSP_DUAL_16BIT_ALLOC(
- vdec_next_scb,
- vdec_sub_list_ptr
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- vdec_entry_point,
- vdec_this_spb
- )
-
- u32 vdec_strm_rs_config;
- u32 vdec_strm_buf_ptr;
-
- u32 vdec_phi_incr_6int_26frac;
-
- struct dsp_volume_control vdec_vol_ctrl;
-};
-
-
-/* SCB for MIX_TO_OSTREAM algorithm family */
-struct dsp_mix2_ostream_scb {
- /* First 13 dwords from generic_scb_t */
- struct dsp_basic_dma_req basic_req; /* Optional */
- struct dsp_scatter_gather_ext sg_ext; /* Optional */
- ___DSP_DUAL_16BIT_ALLOC(
- next_scb, /* REQUIRED */
- sub_list_ptr /* REQUIRED */
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- entry_point, /* REQUIRED */
- this_spb /* REQUIRED */
- )
-
- u32 strm_rs_config; /* REQUIRED */
- u32 strm_buf_ptr; /* REQUIRED */
-
-
- /* hi: Number of mixed-down input triplets
- computed since start of group
- lo: Number of frames remaining to be
- processed in the current group of
- frames
- */
- ___DSP_DUAL_16BIT_ALLOC(
- frames_left_in_group,
- accum_input_triplets
- )
-
- /* hi: Exponential volume change rate
- for mixer on input streams
- lo: Number of frames in the group
- */
- ___DSP_DUAL_16BIT_ALLOC(
- frame_group_length,
- exp_vol_change_rate
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- const_FFFF,
- const_zero
- )
-};
-
-
-/* SCB for S16_MIX algorithm */
-struct dsp_mix_only_scb {
- /* First 13 dwords from generic_scb_t */
- struct dsp_basic_dma_req basic_req; /* Optional */
- struct dsp_scatter_gather_ext sg_ext; /* Optional */
- ___DSP_DUAL_16BIT_ALLOC(
- next_scb, /* REQUIRED */
- sub_list_ptr /* REQUIRED */
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- entry_point, /* REQUIRED */
- this_spb /* REQUIRED */
- )
-
- u32 strm_rs_config; /* REQUIRED */
- u32 strm_buf_ptr; /* REQUIRED */
-
- u32 reserved;
- struct dsp_volume_control vol_ctrl;
-};
-
-/* SCB for the async. CODEC input algorithm */
-struct dsp_async_codec_input_scb {
- u32 io_free2;
-
- u32 io_current_total;
- u32 io_previous_total;
-
- u16 io_count;
- u16 io_count_limit;
-
- u16 o_fifo_base_addr;
- u16 ost_mo_format;
- /* 1 = stereo; 0 = mono
- xxx for ASER 1 (not allowed); 118 for ASER2 */
-
- u32 ostrm_rs_config;
- u32 ostrm_buf_ptr;
-
- ___DSP_DUAL_16BIT_ALLOC(
- io_sclks_per_lr_clk,
- io_io_enable
- )
-
- u32 io_free4;
-
- ___DSP_DUAL_16BIT_ALLOC(
- io_next_scb,
- io_sub_list_ptr
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- io_entry_point,
- io_this_spb
- )
-
- u32 istrm_rs_config;
- u32 istrm_buf_ptr;
-
- /* Init. 0000:8042: for ASER1
- 0000:8044: for ASER2 */
- ___DSP_DUAL_16BIT_ALLOC(
- io_stat_reg_addr,
- iofifo_pointer
- )
-
- /* Init 1 stero:100 ASER1
- Init 0 mono:110 ASER2
- */
- ___DSP_DUAL_16BIT_ALLOC(
- ififo_base_addr,
- ist_mo_format
- )
-
- u32 i_free;
-};
-
-
-/* SCB for the SP/DIF CODEC input and output */
-struct dsp_spdifiscb {
- ___DSP_DUAL_16BIT_ALLOC(
- status_ptr,
- status_start_ptr
- )
-
- u32 current_total;
- u32 previous_total;
-
- ___DSP_DUAL_16BIT_ALLOC(
- count,
- count_limit
- )
-
- u32 status_data;
-
- ___DSP_DUAL_16BIT_ALLOC(
- status,
- free4
- )
-
- u32 free3;
-
- ___DSP_DUAL_16BIT_ALLOC(
- free2,
- bit_count
- )
-
- u32 temp_status;
-
- ___DSP_DUAL_16BIT_ALLOC(
- next_SCB,
- sub_list_ptr
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- entry_point,
- this_spb
- )
-
- u32 strm_rs_config;
- u32 strm_buf_ptr;
-
- ___DSP_DUAL_16BIT_ALLOC(
- stat_reg_addr,
- fifo_pointer
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- fifo_base_addr,
- st_mo_format
- )
-
- u32 free1;
-};
-
-
-/* SCB for the SP/DIF CODEC input and output */
-struct dsp_spdifoscb {
-
- u32 free2;
-
- u32 free3[4];
-
- /* Need to be here for compatibility with AsynchFGTxCode */
- u32 strm_rs_config;
-
- u32 strm_buf_ptr;
-
- ___DSP_DUAL_16BIT_ALLOC(
- status,
- free5
- )
-
- u32 free4;
-
- ___DSP_DUAL_16BIT_ALLOC(
- next_scb,
- sub_list_ptr
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- entry_point,
- this_spb
- )
-
- u32 free6[2];
-
- ___DSP_DUAL_16BIT_ALLOC(
- stat_reg_addr,
- fifo_pointer
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- fifo_base_addr,
- st_mo_format
- )
-
- u32 free1;
-};
-
-
-struct dsp_asynch_fg_rx_scb {
- ___DSP_DUAL_16BIT_ALLOC(
- bot_buf_mask,
- buf_Mask
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- max,
- min
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- old_producer_pointer,
- hfg_scb_ptr
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- delta,
- adjust_count
- )
-
- u32 unused2[5];
-
- ___DSP_DUAL_16BIT_ALLOC(
- sibling_ptr,
- child_ptr
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- code_ptr,
- this_ptr
- )
-
- u32 strm_rs_config;
-
- u32 strm_buf_ptr;
-
- u32 unused_phi_incr;
-
- ___DSP_DUAL_16BIT_ALLOC(
- right_targ,
- left_targ
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- right_vol,
- left_vol
- )
-};
-
-
-struct dsp_asynch_fg_tx_scb {
- ___DSP_DUAL_16BIT_ALLOC(
- not_buf_mask,
- buf_mask
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- max,
- min
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- unused1,
- hfg_scb_ptr
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- delta,
- adjust_count
- )
-
- u32 accum_phi;
-
- ___DSP_DUAL_16BIT_ALLOC(
- unused2,
- const_one_third
- )
-
- u32 unused3[3];
-
- ___DSP_DUAL_16BIT_ALLOC(
- sibling_ptr,
- child_ptr
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- codePtr,
- this_ptr
- )
-
- u32 strm_rs_config;
-
- u32 strm_buf_ptr;
-
- u32 phi_incr;
-
- ___DSP_DUAL_16BIT_ALLOC(
- unused_right_targ,
- unused_left_targ
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- unused_right_vol,
- unused_left_vol
- )
-};
-
-
-struct dsp_output_snoop_scb {
- /* First 13 dwords from generic_scb_t */
- struct dsp_basic_dma_req basic_req; /* Optional */
- struct dsp_scatter_gather_ext sg_ext; /* Optional */
- ___DSP_DUAL_16BIT_ALLOC(
- next_scb, /* REQUIRED */
- sub_list_ptr /* REQUIRED */
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- entry_point, /* REQUIRED */
- this_spb /* REQUIRED */
- )
-
- u32 strm_rs_config; /* REQUIRED */
- u32 strm_buf_ptr; /* REQUIRED */
-
- ___DSP_DUAL_16BIT_ALLOC(
- init_snoop_input_link,
- snoop_child_input_scb
- )
-
- u32 snoop_input_buf_ptr;
-
- ___DSP_DUAL_16BIT_ALLOC(
- reserved,
- input_scb
- )
-};
-
-struct dsp_spio_write_scb {
- ___DSP_DUAL_16BIT_ALLOC(
- address1,
- address2
- )
-
- u32 data1;
-
- u32 data2;
-
- ___DSP_DUAL_16BIT_ALLOC(
- address3,
- address4
- )
-
- u32 data3;
-
- u32 data4;
-
- ___DSP_DUAL_16BIT_ALLOC(
- unused1,
- data_ptr
- )
-
- u32 unused2[2];
-
- ___DSP_DUAL_16BIT_ALLOC(
- sibling_ptr,
- child_ptr
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- entry_point,
- this_ptr
- )
-
- u32 unused3[5];
-};
-
-struct dsp_magic_snoop_task {
- u32 i0;
- u32 i1;
-
- u32 strm_buf_ptr1;
-
- u16 i2;
- u16 snoop_scb;
-
- u32 i3;
- u32 i4;
- u32 i5;
- u32 i6;
-
- u32 i7;
-
- ___DSP_DUAL_16BIT_ALLOC(
- next_scb,
- sub_list_ptr
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- entry_point,
- this_ptr
- )
-
- u32 strm_buf_config;
- u32 strm_buf_ptr2;
-
- u32 i8;
-
- struct dsp_volume_control vdec_vol_ctrl;
-};
-
-
-struct dsp_filter_scb {
- ___DSP_DUAL_16BIT_ALLOC(
- a0_right, /* 0x00 */
- a0_left
- )
- ___DSP_DUAL_16BIT_ALLOC(
- a1_right, /* 0x01 */
- a1_left
- )
- ___DSP_DUAL_16BIT_ALLOC(
- a2_right, /* 0x02 */
- a2_left
- )
- ___DSP_DUAL_16BIT_ALLOC(
- output_buf_ptr, /* 0x03 */
- init
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- filter_unused3, /* 0x04 */
- filter_unused2
- )
-
- u32 prev_sample_output1; /* 0x05 */
- u32 prev_sample_output2; /* 0x06 */
- u32 prev_sample_input1; /* 0x07 */
- u32 prev_sample_input2; /* 0x08 */
-
- ___DSP_DUAL_16BIT_ALLOC(
- next_scb_ptr, /* 0x09 */
- sub_list_ptr
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- entry_point, /* 0x0A */
- spb_ptr
- )
-
- u32 strm_rs_config; /* 0x0B */
- u32 strm_buf_ptr; /* 0x0C */
-
- ___DSP_DUAL_16BIT_ALLOC(
- b0_right, /* 0x0D */
- b0_left
- )
- ___DSP_DUAL_16BIT_ALLOC(
- b1_right, /* 0x0E */
- b1_left
- )
- ___DSP_DUAL_16BIT_ALLOC(
- b2_right, /* 0x0F */
- b2_left
- )
-};
-#endif /* __DSP_SCB_TYPES_H__ */
diff --git a/ANDROID_3.4.5/include/sound/cs46xx_dsp_spos.h b/ANDROID_3.4.5/include/sound/cs46xx_dsp_spos.h
deleted file mode 100644
index 8008c592..00000000
--- a/ANDROID_3.4.5/include/sound/cs46xx_dsp_spos.h
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
- * The driver for the Cirrus Logic's Sound Fusion CS46XX based soundcards
- * Copyright (c) by Jaroslav Kysela <perex@perex.cz>
- *
- *
- * 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
- *
- */
-
-#ifndef __CS46XX_DSP_SPOS_H__
-#define __CS46XX_DSP_SPOS_H__
-
-#include "cs46xx_dsp_scb_types.h"
-#include "cs46xx_dsp_task_types.h"
-
-#define SYMBOL_CONSTANT 0x0
-#define SYMBOL_SAMPLE 0x1
-#define SYMBOL_PARAMETER 0x2
-#define SYMBOL_CODE 0x3
-
-#define SEGTYPE_SP_PROGRAM 0x00000001
-#define SEGTYPE_SP_PARAMETER 0x00000002
-#define SEGTYPE_SP_SAMPLE 0x00000003
-#define SEGTYPE_SP_COEFFICIENT 0x00000004
-
-#define DSP_SPOS_UU 0x0deadul /* unused */
-#define DSP_SPOS_DC 0x0badul /* don't care */
-#define DSP_SPOS_DC_DC 0x0bad0badul /* don't care */
-#define DSP_SPOS_UUUU 0xdeadc0edul /* unused */
-#define DSP_SPOS_UUHI 0xdeadul
-#define DSP_SPOS_UULO 0xc0edul
-#define DSP_SPOS_DCDC 0x0badf1d0ul /* don't care */
-#define DSP_SPOS_DCDCHI 0x0badul
-#define DSP_SPOS_DCDCLO 0xf1d0ul
-
-#define DSP_MAX_TASK_NAME 60
-#define DSP_MAX_SYMBOL_NAME 100
-#define DSP_MAX_SCB_NAME 60
-#define DSP_MAX_SCB_DESC 200
-#define DSP_MAX_TASK_DESC 50
-
-#define DSP_MAX_PCM_CHANNELS 32
-#define DSP_MAX_SRC_NR 14
-
-#define DSP_PCM_MAIN_CHANNEL 1
-#define DSP_PCM_REAR_CHANNEL 2
-#define DSP_PCM_CENTER_LFE_CHANNEL 3
-#define DSP_PCM_S71_CHANNEL 4 /* surround 7.1 */
-#define DSP_IEC958_CHANNEL 5
-
-#define DSP_SPDIF_STATUS_OUTPUT_ENABLED 1
-#define DSP_SPDIF_STATUS_PLAYBACK_OPEN 2
-#define DSP_SPDIF_STATUS_HW_ENABLED 4
-#define DSP_SPDIF_STATUS_INPUT_CTRL_ENABLED 8
-
-struct dsp_symbol_entry {
- u32 address;
- char symbol_name[DSP_MAX_SYMBOL_NAME];
- int symbol_type;
-
- /* initialized by driver */
- struct dsp_module_desc * module;
- int deleted;
-};
-
-struct dsp_symbol_desc {
- int nsymbols;
-
- struct dsp_symbol_entry *symbols;
-
- /* initialized by driver */
- int highest_frag_index;
-};
-
-struct dsp_segment_desc {
- int segment_type;
- u32 offset;
- u32 size;
- u32 * data;
-};
-
-struct dsp_module_desc {
- char * module_name;
- struct dsp_symbol_desc symbol_table;
- int nsegments;
- struct dsp_segment_desc * segments;
-
- /* initialized by driver */
- u32 overlay_begin_address;
- u32 load_address;
- int nfixups;
-};
-
-struct dsp_scb_descriptor {
- char scb_name[DSP_MAX_SCB_NAME];
- u32 address;
- int index;
- u32 *data;
-
- struct dsp_scb_descriptor * sub_list_ptr;
- struct dsp_scb_descriptor * next_scb_ptr;
- struct dsp_scb_descriptor * parent_scb_ptr;
-
- struct dsp_symbol_entry * task_entry;
- struct dsp_symbol_entry * scb_symbol;
-
- struct snd_info_entry *proc_info;
- int ref_count;
-
- u16 volume[2];
- unsigned int deleted :1;
- unsigned int updated :1;
- unsigned int volume_set :1;
-};
-
-struct dsp_task_descriptor {
- char task_name[DSP_MAX_TASK_NAME];
- int size;
- u32 address;
- int index;
- u32 *data;
-};
-
-struct dsp_pcm_channel_descriptor {
- int active;
- int src_slot;
- int pcm_slot;
- u32 sample_rate;
- u32 unlinked;
- struct dsp_scb_descriptor * pcm_reader_scb;
- struct dsp_scb_descriptor * src_scb;
- struct dsp_scb_descriptor * mixer_scb;
-
- void * private_data;
-};
-
-struct dsp_spos_instance {
- struct dsp_symbol_desc symbol_table; /* currently available loaded symbols in SP */
-
- int nmodules;
- struct dsp_module_desc * modules; /* modules loaded into SP */
-
- struct dsp_segment_desc code;
-
- /* Main PCM playback mixer */
- struct dsp_scb_descriptor * master_mix_scb;
- u16 dac_volume_right;
- u16 dac_volume_left;
-
- /* Rear/surround PCM playback mixer */
- struct dsp_scb_descriptor * rear_mix_scb;
-
- /* Center/LFE mixer */
- struct dsp_scb_descriptor * center_lfe_mix_scb;
-
- int npcm_channels;
- int nsrc_scb;
- struct dsp_pcm_channel_descriptor pcm_channels[DSP_MAX_PCM_CHANNELS];
- int src_scb_slots[DSP_MAX_SRC_NR];
-
- /* cache this symbols */
- struct dsp_symbol_entry * null_algorithm; /* used by PCMreaderSCB's */
- struct dsp_symbol_entry * s16_up; /* used by SRCtaskSCB's */
-
- /* proc fs */
- struct snd_card *snd_card;
- struct snd_info_entry * proc_dsp_dir;
- struct snd_info_entry * proc_sym_info_entry;
- struct snd_info_entry * proc_modules_info_entry;
- struct snd_info_entry * proc_parameter_dump_info_entry;
- struct snd_info_entry * proc_sample_dump_info_entry;
-
- /* SCB's descriptors */
- int nscb;
- int scb_highest_frag_index;
- struct dsp_scb_descriptor scbs[DSP_MAX_SCB_DESC];
- struct snd_info_entry * proc_scb_info_entry;
- struct dsp_scb_descriptor * the_null_scb;
-
- /* Task's descriptors */
- int ntask;
- struct dsp_task_descriptor tasks[DSP_MAX_TASK_DESC];
- struct snd_info_entry * proc_task_info_entry;
-
- /* SPDIF status */
- int spdif_status_out;
- int spdif_status_in;
- u16 spdif_input_volume_right;
- u16 spdif_input_volume_left;
- /* spdif channel status,
- left right and user validity bits */
- unsigned int spdif_csuv_default;
- unsigned int spdif_csuv_stream;
-
- /* SPDIF input sample rate converter */
- struct dsp_scb_descriptor * spdif_in_src;
- /* SPDIF input asynch. receiver */
- struct dsp_scb_descriptor * asynch_rx_scb;
-
- /* Capture record mixer SCB */
- struct dsp_scb_descriptor * record_mixer_scb;
-
- /* CODEC input SCB */
- struct dsp_scb_descriptor * codec_in_scb;
-
- /* reference snooper */
- struct dsp_scb_descriptor * ref_snoop_scb;
-
- /* SPDIF output PCM reference */
- struct dsp_scb_descriptor * spdif_pcm_input_scb;
-
- /* asynch TX task */
- struct dsp_scb_descriptor * asynch_tx_scb;
-
- /* record sources */
- struct dsp_scb_descriptor * pcm_input;
- struct dsp_scb_descriptor * adc_input;
-
- int spdif_in_sample_rate;
-};
-
-#endif /* __DSP_SPOS_H__ */
diff --git a/ANDROID_3.4.5/include/sound/cs46xx_dsp_task_types.h b/ANDROID_3.4.5/include/sound/cs46xx_dsp_task_types.h
deleted file mode 100644
index 5cf920bf..00000000
--- a/ANDROID_3.4.5/include/sound/cs46xx_dsp_task_types.h
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
- * The driver for the Cirrus Logic's Sound Fusion CS46XX based soundcards
- * Copyright (c) by Jaroslav Kysela <perex@perex.cz>
- *
- *
- * 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
- *
- *
- * NOTE: comments are copy/paste from cwcemb80.lst
- * provided by Tom Woller at Cirrus (my only
- * documentation about the SP OS running inside
- * the DSP)
- */
-
-#ifndef __CS46XX_DSP_TASK_TYPES_H__
-#define __CS46XX_DSP_TASK_TYPES_H__
-
-#include "cs46xx_dsp_scb_types.h"
-
-/*********************************************************************************************
-Example hierarchy of stream control blocks in the SP
-
-hfgTree
-Ptr____Call (c)
- \
- -------+------ ------------- ------------- ------------- -----
-| SBlaster IF |______\| Foreground |___\| Middlegr'nd |___\| Background |___\| Nul |
-| |Goto /| tree header |g /| tree header |g /| tree header |g /| SCB |r
- -------------- (g) ------------- ------------- ------------- -----
- |c |c |c |c
- | | | |
- \/ ------------- ------------- -------------
- | Foreground |_\ | Middlegr'nd |_\ | Background |_\
- | tree |g/ | tree |g/ | tree |g/
- ------------- ------------- -------------
- |c |c |c
- | | |
- \/ \/ \/
-
-*********************************************************************************************/
-
-#define HFG_FIRST_EXECUTE_MODE 0x0001
-#define HFG_FIRST_EXECUTE_MODE_BIT 0
-#define HFG_CONTEXT_SWITCH_MODE 0x0002
-#define HFG_CONTEXT_SWITCH_MODE_BIT 1
-
-#define MAX_FG_STACK_SIZE 32 /* THESE NEED TO BE COMPUTED PROPERLY */
-#define MAX_MG_STACK_SIZE 16
-#define MAX_BG_STACK_SIZE 9
-#define MAX_HFG_STACK_SIZE 4
-
-#define SLEEP_ACTIVE_INCREMENT 0 /* Enable task tree thread to go to sleep
- This should only ever be used on the Background thread */
-#define STANDARD_ACTIVE_INCREMENT 1 /* Task tree thread normal operation */
-#define SUSPEND_ACTIVE_INCREMENT 2 /* Cause execution to suspend in the task tree thread
- This should only ever be used on the Background thread */
-
-#define HOSTFLAGS_DISABLE_BG_SLEEP 0 /* Host-controlled flag that determines whether we go to sleep
- at the end of BG */
-
-/* Minimal context save area for Hyper Forground */
-struct dsp_hf_save_area {
- u32 r10_save;
- u32 r54_save;
- u32 r98_save;
-
- ___DSP_DUAL_16BIT_ALLOC(
- status_save,
- ind_save
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- rci1_save,
- rci0_save
- )
-
- u32 r32_save;
- u32 r76_save;
- u32 rsd2_save;
-
- ___DSP_DUAL_16BIT_ALLOC(
- rsi2_save, /* See TaskTreeParameterBlock for
- remainder of registers */
- rsa2Save
- )
- /* saved as part of HFG context */
-};
-
-
-/* Task link data structure */
-struct dsp_tree_link {
- ___DSP_DUAL_16BIT_ALLOC(
- /* Pointer to sibling task control block */
- next_scb,
- /* Pointer to child task control block */
- sub_ptr
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- /* Pointer to code entry point */
- entry_point,
- /* Pointer to local data */
- this_spb
- )
-};
-
-
-struct dsp_task_tree_data {
- ___DSP_DUAL_16BIT_ALLOC(
- /* Initial tock count; controls task tree execution rate */
- tock_count_limit,
- /* Tock down counter */
- tock_count
- )
-
- /* Add to ActiveCount when TockCountLimit reached:
- Subtract on task tree termination */
- ___DSP_DUAL_16BIT_ALLOC(
- active_tncrement,
- /* Number of pending activations for task tree */
- active_count
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- /* BitNumber to enable modification of correct bit in ActiveTaskFlags */
- active_bit,
- /* Pointer to OS location for indicating current activity on task level */
- active_task_flags_ptr
- )
-
- /* Data structure for controlling movement of memory blocks:-
- currently unused */
- ___DSP_DUAL_16BIT_ALLOC(
- mem_upd_ptr,
- /* Data structure for controlling synchronous link update */
- link_upd_ptr
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- /* Save area for remainder of full context. */
- save_area,
- /* Address of start of local stack for data storage */
- data_stack_base_ptr
- )
-
-};
-
-
-struct dsp_interval_timer_data
-{
- /* These data items have the same relative locations to those */
- ___DSP_DUAL_16BIT_ALLOC(
- interval_timer_period,
- itd_unused
- )
-
- /* used for this data in the SPOS control block for SPOS 1.0 */
- ___DSP_DUAL_16BIT_ALLOC(
- num_FG_ticks_this_interval,
- num_intervals
- )
-};
-
-
-/* This structure contains extra storage for the task tree
- Currently, this additional data is related only to a full context save */
-struct dsp_task_tree_context_block {
- /* Up to 10 values are saved onto the stack. 8 for the task tree, 1 for
- The access to the context switch (call or interrupt), and 1 spare that
- users should never use. This last may be required by the system */
- ___DSP_DUAL_16BIT_ALLOC(
- stack1,
- stack0
- )
- ___DSP_DUAL_16BIT_ALLOC(
- stack3,
- stack2
- )
- ___DSP_DUAL_16BIT_ALLOC(
- stack5,
- stack4
- )
- ___DSP_DUAL_16BIT_ALLOC(
- stack7,
- stack6
- )
- ___DSP_DUAL_16BIT_ALLOC(
- stack9,
- stack8
- )
-
- u32 saverfe;
-
- /* Value may be overwriten by stack save algorithm.
- Retain the size of the stack data saved here if used */
- ___DSP_DUAL_16BIT_ALLOC(
- reserved1,
- stack_size
- )
- u32 saverba; /* (HFG) */
- u32 saverdc;
- u32 savers_config_23; /* (HFG) */
- u32 savers_DMA23; /* (HFG) */
- u32 saversa0;
- u32 saversi0;
- u32 saversa1;
- u32 saversi1;
- u32 saversa3;
- u32 saversd0;
- u32 saversd1;
- u32 saversd3;
- u32 savers_config01;
- u32 savers_DMA01;
- u32 saveacc0hl;
- u32 saveacc1hl;
- u32 saveacc0xacc1x;
- u32 saveacc2hl;
- u32 saveacc3hl;
- u32 saveacc2xacc3x;
- u32 saveaux0hl;
- u32 saveaux1hl;
- u32 saveaux0xaux1x;
- u32 saveaux2hl;
- u32 saveaux3hl;
- u32 saveaux2xaux3x;
- u32 savershouthl;
- u32 savershoutxmacmode;
-};
-
-
-struct dsp_task_tree_control_block {
- struct dsp_hf_save_area context;
- struct dsp_tree_link links;
- struct dsp_task_tree_data data;
- struct dsp_task_tree_context_block context_blk;
- struct dsp_interval_timer_data int_timer;
-};
-
-
-#endif /* __DSP_TASK_TYPES_H__ */
diff --git a/ANDROID_3.4.5/include/sound/cs8403.h b/ANDROID_3.4.5/include/sound/cs8403.h
deleted file mode 100644
index 3a8c174a..00000000
--- a/ANDROID_3.4.5/include/sound/cs8403.h
+++ /dev/null
@@ -1,257 +0,0 @@
-#ifndef __SOUND_CS8403_H
-#define __SOUND_CS8403_H
-
-/*
- * Routines for Cirrus Logic CS8403/CS8404A IEC958 (S/PDIF) Transmitter
- * Copyright (c) by Jaroslav Kysela <perex@perex.cz>,
- * Takashi Iwai <tiwai@suse.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
- *
- */
-
-#ifdef SND_CS8403
-
-#ifndef SND_CS8403_DECL
-#define SND_CS8403_DECL static
-#endif
-#ifndef SND_CS8403_DECODE
-#define SND_CS8403_DECODE snd_cs8403_decode_spdif_bits
-#endif
-#ifndef SND_CS8403_ENCODE
-#define SND_CS8403_ENCODE snd_cs8403_encode_spdif_bits
-#endif
-
-
-SND_CS8403_DECL void SND_CS8403_DECODE(struct snd_aes_iec958 *diga, unsigned char bits)
-{
- if (bits & 0x01) { /* consumer */
- if (!(bits & 0x02))
- diga->status[0] |= IEC958_AES0_NONAUDIO;
- if (!(bits & 0x08))
- diga->status[0] |= IEC958_AES0_CON_NOT_COPYRIGHT;
- switch (bits & 0x10) {
- case 0x10: diga->status[0] |= IEC958_AES0_CON_EMPHASIS_NONE; break;
- case 0x00: diga->status[0] |= IEC958_AES0_CON_EMPHASIS_5015; break;
- }
- if (!(bits & 0x80))
- diga->status[1] |= IEC958_AES1_CON_ORIGINAL;
- switch (bits & 0x60) {
- case 0x00: diga->status[1] |= IEC958_AES1_CON_MAGNETIC_ID; break;
- case 0x20: diga->status[1] |= IEC958_AES1_CON_DIGDIGCONV_ID; break;
- case 0x40: diga->status[1] |= IEC958_AES1_CON_LASEROPT_ID; break;
- case 0x60: diga->status[1] |= IEC958_AES1_CON_GENERAL; break;
- }
- switch (bits & 0x06) {
- case 0x00: diga->status[3] |= IEC958_AES3_CON_FS_44100; break;
- case 0x02: diga->status[3] |= IEC958_AES3_CON_FS_48000; break;
- case 0x04: diga->status[3] |= IEC958_AES3_CON_FS_32000; break;
- }
- } else {
- diga->status[0] = IEC958_AES0_PROFESSIONAL;
- switch (bits & 0x18) {
- case 0x00: diga->status[0] |= IEC958_AES0_PRO_FS_32000; break;
- case 0x10: diga->status[0] |= IEC958_AES0_PRO_FS_44100; break;
- case 0x08: diga->status[0] |= IEC958_AES0_PRO_FS_48000; break;
- case 0x18: diga->status[0] |= IEC958_AES0_PRO_FS_NOTID; break;
- }
- switch (bits & 0x60) {
- case 0x20: diga->status[0] |= IEC958_AES0_PRO_EMPHASIS_NONE; break;
- case 0x40: diga->status[0] |= IEC958_AES0_PRO_EMPHASIS_5015; break;
- case 0x00: diga->status[0] |= IEC958_AES0_PRO_EMPHASIS_CCITT; break;
- case 0x60: diga->status[0] |= IEC958_AES0_PRO_EMPHASIS_NOTID; break;
- }
- if (bits & 0x80)
- diga->status[1] |= IEC958_AES1_PRO_MODE_STEREOPHONIC;
- }
-}
-
-SND_CS8403_DECL unsigned char SND_CS8403_ENCODE(struct snd_aes_iec958 *diga)
-{
- unsigned char bits;
-
- if (!(diga->status[0] & IEC958_AES0_PROFESSIONAL)) {
- bits = 0x01; /* consumer mode */
- if (diga->status[0] & IEC958_AES0_NONAUDIO)
- bits &= ~0x02;
- else
- bits |= 0x02;
- if (diga->status[0] & IEC958_AES0_CON_NOT_COPYRIGHT)
- bits &= ~0x08;
- else
- bits |= 0x08;
- switch (diga->status[0] & IEC958_AES0_CON_EMPHASIS) {
- default:
- case IEC958_AES0_CON_EMPHASIS_NONE: bits |= 0x10; break;
- case IEC958_AES0_CON_EMPHASIS_5015: bits |= 0x00; break;
- }
- if (diga->status[1] & IEC958_AES1_CON_ORIGINAL)
- bits &= ~0x80;
- else
- bits |= 0x80;
- if ((diga->status[1] & IEC958_AES1_CON_CATEGORY) == IEC958_AES1_CON_GENERAL)
- bits |= 0x60;
- else {
- switch(diga->status[1] & IEC958_AES1_CON_MAGNETIC_MASK) {
- case IEC958_AES1_CON_MAGNETIC_ID:
- bits |= 0x00; break;
- case IEC958_AES1_CON_DIGDIGCONV_ID:
- bits |= 0x20; break;
- default:
- case IEC958_AES1_CON_LASEROPT_ID:
- bits |= 0x40; break;
- }
- }
- switch (diga->status[3] & IEC958_AES3_CON_FS) {
- default:
- case IEC958_AES3_CON_FS_44100: bits |= 0x00; break;
- case IEC958_AES3_CON_FS_48000: bits |= 0x02; break;
- case IEC958_AES3_CON_FS_32000: bits |= 0x04; break;
- }
- } else {
- bits = 0x00; /* professional mode */
- if (diga->status[0] & IEC958_AES0_NONAUDIO)
- bits &= ~0x02;
- else
- bits |= 0x02;
- /* CHECKME: I'm not sure about the bit order in val here */
- switch (diga->status[0] & IEC958_AES0_PRO_FS) {
- case IEC958_AES0_PRO_FS_32000: bits |= 0x00; break;
- case IEC958_AES0_PRO_FS_44100: bits |= 0x10; break; /* 44.1kHz */
- case IEC958_AES0_PRO_FS_48000: bits |= 0x08; break; /* 48kHz */
- default:
- case IEC958_AES0_PRO_FS_NOTID: bits |= 0x18; break;
- }
- switch (diga->status[0] & IEC958_AES0_PRO_EMPHASIS) {
- case IEC958_AES0_PRO_EMPHASIS_NONE: bits |= 0x20; break;
- case IEC958_AES0_PRO_EMPHASIS_5015: bits |= 0x40; break;
- case IEC958_AES0_PRO_EMPHASIS_CCITT: bits |= 0x00; break;
- default:
- case IEC958_AES0_PRO_EMPHASIS_NOTID: bits |= 0x60; break;
- }
- switch (diga->status[1] & IEC958_AES1_PRO_MODE) {
- case IEC958_AES1_PRO_MODE_TWO:
- case IEC958_AES1_PRO_MODE_STEREOPHONIC: bits |= 0x00; break;
- default: bits |= 0x80; break;
- }
- }
- return bits;
-}
-
-#endif /* SND_CS8403 */
-
-#ifdef SND_CS8404
-
-#ifndef SND_CS8404_DECL
-#define SND_CS8404_DECL static
-#endif
-#ifndef SND_CS8404_DECODE
-#define SND_CS8404_DECODE snd_cs8404_decode_spdif_bits
-#endif
-#ifndef SND_CS8404_ENCODE
-#define SND_CS8404_ENCODE snd_cs8404_encode_spdif_bits
-#endif
-
-
-SND_CS8404_DECL void SND_CS8404_DECODE(struct snd_aes_iec958 *diga, unsigned char bits)
-{
- if (bits & 0x10) { /* consumer */
- if (!(bits & 0x20))
- diga->status[0] |= IEC958_AES0_CON_NOT_COPYRIGHT;
- if (!(bits & 0x40))
- diga->status[0] |= IEC958_AES0_CON_EMPHASIS_5015;
- if (!(bits & 0x80))
- diga->status[1] |= IEC958_AES1_CON_ORIGINAL;
- switch (bits & 0x03) {
- case 0x00: diga->status[1] |= IEC958_AES1_CON_DAT; break;
- case 0x03: diga->status[1] |= IEC958_AES1_CON_GENERAL; break;
- }
- switch (bits & 0x06) {
- case 0x02: diga->status[3] |= IEC958_AES3_CON_FS_32000; break;
- case 0x04: diga->status[3] |= IEC958_AES3_CON_FS_48000; break;
- case 0x06: diga->status[3] |= IEC958_AES3_CON_FS_44100; break;
- }
- } else {
- diga->status[0] = IEC958_AES0_PROFESSIONAL;
- if (!(bits & 0x04))
- diga->status[0] |= IEC958_AES0_NONAUDIO;
- switch (bits & 0x60) {
- case 0x00: diga->status[0] |= IEC958_AES0_PRO_FS_32000; break;
- case 0x40: diga->status[0] |= IEC958_AES0_PRO_FS_44100; break;
- case 0x20: diga->status[0] |= IEC958_AES0_PRO_FS_48000; break;
- case 0x60: diga->status[0] |= IEC958_AES0_PRO_FS_NOTID; break;
- }
- switch (bits & 0x03) {
- case 0x02: diga->status[0] |= IEC958_AES0_PRO_EMPHASIS_NONE; break;
- case 0x01: diga->status[0] |= IEC958_AES0_PRO_EMPHASIS_5015; break;
- case 0x00: diga->status[0] |= IEC958_AES0_PRO_EMPHASIS_CCITT; break;
- case 0x03: diga->status[0] |= IEC958_AES0_PRO_EMPHASIS_NOTID; break;
- }
- if (!(bits & 0x80))
- diga->status[1] |= IEC958_AES1_PRO_MODE_STEREOPHONIC;
- }
-}
-
-SND_CS8404_DECL unsigned char SND_CS8404_ENCODE(struct snd_aes_iec958 *diga)
-{
- unsigned char bits;
-
- if (!(diga->status[0] & IEC958_AES0_PROFESSIONAL)) {
- bits = 0x10; /* consumer mode */
- if (!(diga->status[0] & IEC958_AES0_CON_NOT_COPYRIGHT))
- bits |= 0x20;
- if ((diga->status[0] & IEC958_AES0_CON_EMPHASIS) == IEC958_AES0_CON_EMPHASIS_NONE)
- bits |= 0x40;
- if (!(diga->status[1] & IEC958_AES1_CON_ORIGINAL))
- bits |= 0x80;
- if ((diga->status[1] & IEC958_AES1_CON_CATEGORY) == IEC958_AES1_CON_GENERAL)
- bits |= 0x03;
- switch (diga->status[3] & IEC958_AES3_CON_FS) {
- default:
- case IEC958_AES3_CON_FS_44100: bits |= 0x06; break;
- case IEC958_AES3_CON_FS_48000: bits |= 0x04; break;
- case IEC958_AES3_CON_FS_32000: bits |= 0x02; break;
- }
- } else {
- bits = 0x00; /* professional mode */
- if (!(diga->status[0] & IEC958_AES0_NONAUDIO))
- bits |= 0x04;
- switch (diga->status[0] & IEC958_AES0_PRO_FS) {
- case IEC958_AES0_PRO_FS_32000: bits |= 0x00; break;
- case IEC958_AES0_PRO_FS_44100: bits |= 0x40; break; /* 44.1kHz */
- case IEC958_AES0_PRO_FS_48000: bits |= 0x20; break; /* 48kHz */
- default:
- case IEC958_AES0_PRO_FS_NOTID: bits |= 0x00; break;
- }
- switch (diga->status[0] & IEC958_AES0_PRO_EMPHASIS) {
- case IEC958_AES0_PRO_EMPHASIS_NONE: bits |= 0x02; break;
- case IEC958_AES0_PRO_EMPHASIS_5015: bits |= 0x01; break;
- case IEC958_AES0_PRO_EMPHASIS_CCITT: bits |= 0x00; break;
- default:
- case IEC958_AES0_PRO_EMPHASIS_NOTID: bits |= 0x03; break;
- }
- switch (diga->status[1] & IEC958_AES1_PRO_MODE) {
- case IEC958_AES1_PRO_MODE_TWO:
- case IEC958_AES1_PRO_MODE_STEREOPHONIC: bits |= 0x00; break;
- default: bits |= 0x80; break;
- }
- }
- return bits;
-}
-
-#endif /* SND_CS8404 */
-
-#endif /* __SOUND_CS8403_H */
diff --git a/ANDROID_3.4.5/include/sound/cs8427.h b/ANDROID_3.4.5/include/sound/cs8427.h
deleted file mode 100644
index f862cfff..00000000
--- a/ANDROID_3.4.5/include/sound/cs8427.h
+++ /dev/null
@@ -1,201 +0,0 @@
-#ifndef __SOUND_CS8427_H
-#define __SOUND_CS8427_H
-
-/*
- * Routines for Cirrus Logic CS8427
- * Copyright (c) by Jaroslav Kysela <perex@perex.cz>,
- *
- *
- * 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 <sound/i2c.h>
-
-#define CS8427_BASE_ADDR 0x10 /* base I2C address */
-
-#define CS8427_REG_AUTOINC 0x80 /* flag - autoincrement */
-#define CS8427_REG_CONTROL1 0x01
-#define CS8427_REG_CONTROL2 0x02
-#define CS8427_REG_DATAFLOW 0x03
-#define CS8427_REG_CLOCKSOURCE 0x04
-#define CS8427_REG_SERIALINPUT 0x05
-#define CS8427_REG_SERIALOUTPUT 0x06
-#define CS8427_REG_INT1STATUS 0x07
-#define CS8427_REG_INT2STATUS 0x08
-#define CS8427_REG_INT1MASK 0x09
-#define CS8427_REG_INT1MODEMSB 0x0a
-#define CS8427_REG_INT1MODELSB 0x0b
-#define CS8427_REG_INT2MASK 0x0c
-#define CS8427_REG_INT2MODEMSB 0x0d
-#define CS8427_REG_INT2MODELSB 0x0e
-#define CS8427_REG_RECVCSDATA 0x0f
-#define CS8427_REG_RECVERRORS 0x10
-#define CS8427_REG_RECVERRMASK 0x11
-#define CS8427_REG_CSDATABUF 0x12
-#define CS8427_REG_UDATABUF 0x13
-#define CS8427_REG_QSUBCODE 0x14 /* 0x14-0x1d (10 bytes) */
-#define CS8427_REG_OMCKRMCKRATIO 0x1e
-#define CS8427_REG_CORU_DATABUF 0x20 /* 24 byte buffer area */
-#define CS8427_REG_ID_AND_VER 0x7f
-
-/* CS8427_REG_CONTROL1 bits */
-#define CS8427_SWCLK (1<<7) /* 0 = RMCK default, 1 = OMCK output on RMCK pin */
-#define CS8427_VSET (1<<6) /* 0 = valid PCM data, 1 = invalid PCM data */
-#define CS8427_MUTESAO (1<<5) /* mute control for the serial audio output port, 0 = disabled, 1 = enabled */
-#define CS8427_MUTEAES (1<<4) /* mute control for the AES transmitter output, 0 = disabled, 1 = enabled */
-#define CS8427_INTMASK (3<<1) /* interrupt output pin setup mask */
-#define CS8427_INTACTHIGH (0<<1) /* active high */
-#define CS8427_INTACTLOW (1<<1) /* active low */
-#define CS8427_INTOPENDRAIN (2<<1) /* open drain, active low */
-#define CS8427_TCBLDIR (1<<0) /* 0 = TCBL is an input, 1 = TCBL is an output */
-
-/* CS8427_REQ_CONTROL2 bits */
-#define CS8427_HOLDMASK (3<<5) /* action when a receiver error occurs */
-#define CS8427_HOLDLASTSAMPLE (0<<5) /* hold the last valid sample */
-#define CS8427_HOLDZERO (1<<5) /* replace the current audio sample with zero (mute) */
-#define CS8427_HOLDNOCHANGE (2<<5) /* do not change the received audio sample */
-#define CS8427_RMCKF (1<<4) /* 0 = 256*Fsi, 1 = 128*Fsi */
-#define CS8427_MMR (1<<3) /* AES3 receiver operation, 0 = stereo, 1 = mono */
-#define CS8427_MMT (1<<2) /* AES3 transmitter operation, 0 = stereo, 1 = mono */
-#define CS8427_MMTCS (1<<1) /* 0 = use A + B CS data, 1 = use MMTLR CS data */
-#define CS8427_MMTLR (1<<0) /* 0 = use A CS data, 1 = use B CS data */
-
-/* CS8427_REG_DATAFLOW */
-#define CS8427_TXOFF (1<<6) /* AES3 transmitter Output, 0 = normal operation, 1 = off (0V) */
-#define CS8427_AESBP (1<<5) /* AES3 hardware bypass mode, 0 = normal, 1 = bypass (RX->TX) */
-#define CS8427_TXDMASK (3<<3) /* AES3 Transmitter Data Source Mask */
-#define CS8427_TXDSERIAL (1<<3) /* TXD - serial audio input port */
-#define CS8427_TXAES3DRECEIVER (2<<3) /* TXD - AES3 receiver */
-#define CS8427_SPDMASK (3<<1) /* Serial Audio Output Port Data Source Mask */
-#define CS8427_SPDSERIAL (1<<1) /* SPD - serial audio input port */
-#define CS8427_SPDAES3RECEIVER (2<<1) /* SPD - AES3 receiver */
-
-/* CS8427_REG_CLOCKSOURCE */
-#define CS8427_RUN (1<<6) /* 0 = clock off, 1 = clock on */
-#define CS8427_CLKMASK (3<<4) /* OMCK frequency mask */
-#define CS8427_CLK256 (0<<4) /* 256*Fso */
-#define CS8427_CLK384 (1<<4) /* 384*Fso */
-#define CS8427_CLK512 (2<<4) /* 512*Fso */
-#define CS8427_OUTC (1<<3) /* Output Time Base, 0 = OMCK, 1 = recovered input clock */
-#define CS8427_INC (1<<2) /* Input Time Base Clock Source, 0 = recoverd input clock, 1 = OMCK input pin */
-#define CS8427_RXDMASK (3<<0) /* Recovered Input Clock Source Mask */
-#define CS8427_RXDILRCK (0<<0) /* 256*Fsi from ILRCK pin */
-#define CS8427_RXDAES3INPUT (1<<0) /* 256*Fsi from AES3 input */
-#define CS8427_EXTCLOCKRESET (2<<0) /* bypass PLL, 256*Fsi clock, synchronous reset */
-#define CS8427_EXTCLOCK (3<<0) /* bypass PLL, 256*Fsi clock */
-
-/* CS8427_REG_SERIALINPUT */
-#define CS8427_SIMS (1<<7) /* 0 = slave, 1 = master mode */
-#define CS8427_SISF (1<<6) /* ISCLK freq, 0 = 64*Fsi, 1 = 128*Fsi */
-#define CS8427_SIRESMASK (3<<4) /* Resolution of the input data for right justified formats */
-#define CS8427_SIRES24 (0<<4) /* SIRES 24-bit */
-#define CS8427_SIRES20 (1<<4) /* SIRES 20-bit */
-#define CS8427_SIRES16 (2<<4) /* SIRES 16-bit */
-#define CS8427_SIJUST (1<<3) /* Justification of SDIN data relative to ILRCK, 0 = left-justified, 1 = right-justified */
-#define CS8427_SIDEL (1<<2) /* Delay of SDIN data relative to ILRCK for left-justified data formats, 0 = first ISCLK period, 1 = second ISCLK period */
-#define CS8427_SISPOL (1<<1) /* ICLK clock polarity, 0 = rising edge of ISCLK, 1 = falling edge of ISCLK */
-#define CS8427_SILRPOL (1<<0) /* ILRCK clock polarity, 0 = SDIN data left channel when ILRCK is high, 1 = SDIN right when ILRCK is high */
-
-/* CS8427_REG_SERIALOUTPUT */
-#define CS8427_SOMS (1<<7) /* 0 = slave, 1 = master mode */
-#define CS8427_SOSF (1<<6) /* OSCLK freq, 0 = 64*Fso, 1 = 128*Fso */
-#define CS8427_SORESMASK (3<<4) /* Resolution of the output data on SDOUT and AES3 output */
-#define CS8427_SORES24 (0<<4) /* SIRES 24-bit */
-#define CS8427_SORES20 (1<<4) /* SIRES 20-bit */
-#define CS8427_SORES16 (2<<4) /* SIRES 16-bit */
-#define CS8427_SORESDIRECT (2<<4) /* SIRES direct copy from AES3 receiver */
-#define CS8427_SOJUST (1<<3) /* Justification of SDOUT data relative to OLRCK, 0 = left-justified, 1 = right-justified */
-#define CS8427_SODEL (1<<2) /* Delay of SDOUT data relative to OLRCK for left-justified data formats, 0 = first OSCLK period, 1 = second OSCLK period */
-#define CS8427_SOSPOL (1<<1) /* OSCLK clock polarity, 0 = rising edge of ISCLK, 1 = falling edge of ISCLK */
-#define CS8427_SOLRPOL (1<<0) /* OLRCK clock polarity, 0 = SDOUT data left channel when OLRCK is high, 1 = SDOUT right when OLRCK is high */
-
-/* CS8427_REG_INT1STATUS */
-#define CS8427_TSLIP (1<<7) /* AES3 transmitter source data slip interrupt */
-#define CS8427_OSLIP (1<<6) /* Serial audio output port data slip interrupt */
-#define CS8427_DETC (1<<2) /* D to E C-buffer transfer interrupt */
-#define CS8427_EFTC (1<<1) /* E to F C-buffer transfer interrupt */
-#define CS8427_RERR (1<<0) /* A receiver error has occurred */
-
-/* CS8427_REG_INT2STATUS */
-#define CS8427_DETU (1<<3) /* D to E U-buffer transfer interrupt */
-#define CS8427_EFTU (1<<2) /* E to F U-buffer transfer interrupt */
-#define CS8427_QCH (1<<1) /* A new block of Q-subcode data is available for reading */
-
-/* CS8427_REG_INT1MODEMSB && CS8427_REG_INT1MODELSB */
-/* bits are defined in CS8427_REG_INT1STATUS */
-/* CS8427_REG_INT2MODEMSB && CS8427_REG_INT2MODELSB */
-/* bits are defined in CS8427_REG_INT2STATUS */
-#define CS8427_INTMODERISINGMSB 0
-#define CS8427_INTMODERESINGLSB 0
-#define CS8427_INTMODEFALLINGMSB 0
-#define CS8427_INTMODEFALLINGLSB 1
-#define CS8427_INTMODELEVELMSB 1
-#define CS8427_INTMODELEVELLSB 0
-
-/* CS8427_REG_RECVCSDATA */
-#define CS8427_AUXMASK (15<<4) /* auxiliary data field width */
-#define CS8427_AUXSHIFT 4
-#define CS8427_PRO (1<<3) /* Channel status block format indicator */
-#define CS8427_AUDIO (1<<2) /* Audio indicator (0 = audio, 1 = nonaudio */
-#define CS8427_COPY (1<<1) /* 0 = copyright asserted, 1 = copyright not asserted */
-#define CS8427_ORIG (1<<0) /* SCMS generation indicator, 0 = 1st generation or highter, 1 = original */
-
-/* CS8427_REG_RECVERRORS */
-/* CS8427_REG_RECVERRMASK for CS8427_RERR */
-#define CS8427_QCRC (1<<6) /* Q-subcode data CRC error indicator */
-#define CS8427_CCRC (1<<5) /* Chancnel Status Block Cyclick Redundancy Check Bit */
-#define CS8427_UNLOCK (1<<4) /* PLL lock status bit */
-#define CS8427_V (1<<3) /* 0 = valid data */
-#define CS8427_CONF (1<<2) /* Confidence bit */
-#define CS8427_BIP (1<<1) /* Bi-phase error bit */
-#define CS8427_PAR (1<<0) /* Parity error */
-
-/* CS8427_REG_CSDATABUF */
-#define CS8427_BSEL (1<<5) /* 0 = CS data, 1 = U data */
-#define CS8427_CBMR (1<<4) /* 0 = overwrite first 5 bytes for CS D to E buffer, 1 = prevent */
-#define CS8427_DETCI (1<<3) /* D to E CS data buffer transfer inhibit bit, 0 = allow, 1 = inhibit */
-#define CS8427_EFTCI (1<<2) /* E to F CS data buffer transfer inhibit bit, 0 = allow, 1 = inhibit */
-#define CS8427_CAM (1<<1) /* CS data buffer control port access mode bit, 0 = one byte, 1 = two byte */
-#define CS8427_CHS (1<<0) /* Channel select bit, 0 = Channel A, 1 = Channel B */
-
-/* CS8427_REG_UDATABUF */
-#define CS8427_UD (1<<4) /* User data pin (U) direction, 0 = input, 1 = output */
-#define CS8427_UBMMASK (3<<2) /* Operating mode of the AES3 U bit manager */
-#define CS8427_UBMZEROS (0<<2) /* transmit all zeros mode */
-#define CS8427_UBMBLOCK (1<<2) /* block mode */
-#define CS8427_DETUI (1<<1) /* D to E U-data buffer transfer inhibit bit, 0 = allow, 1 = inhibit */
-#define CS8427_EFTUI (1<<1) /* E to F U-data buffer transfer inhibit bit, 0 = allow, 1 = inhibit */
-
-/* CS8427_REG_ID_AND_VER */
-#define CS8427_IDMASK (15<<4)
-#define CS8427_IDSHIFT 4
-#define CS8427_VERMASK (15<<0)
-#define CS8427_VERSHIFT 0
-#define CS8427_VER8427A 0x71
-
-struct snd_pcm_substream;
-
-int snd_cs8427_create(struct snd_i2c_bus *bus, unsigned char addr,
- unsigned int reset_timeout, struct snd_i2c_device **r_cs8427);
-int snd_cs8427_reg_write(struct snd_i2c_device *device, unsigned char reg,
- unsigned char val);
-int snd_cs8427_iec958_build(struct snd_i2c_device *cs8427,
- struct snd_pcm_substream *playback_substream,
- struct snd_pcm_substream *capture_substream);
-int snd_cs8427_iec958_active(struct snd_i2c_device *cs8427, int active);
-int snd_cs8427_iec958_pcm(struct snd_i2c_device *cs8427, unsigned int rate);
-
-#endif /* __SOUND_CS8427_H */
diff --git a/ANDROID_3.4.5/include/sound/dmaengine_pcm.h b/ANDROID_3.4.5/include/sound/dmaengine_pcm.h
deleted file mode 100644
index a8fcaa6d..00000000
--- a/ANDROID_3.4.5/include/sound/dmaengine_pcm.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2012, Analog Devices Inc.
- * Author: Lars-Peter Clausen <lars@metafoo.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.
- *
- * 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.
- *
- */
-#ifndef __SOUND_DMAENGINE_PCM_H__
-#define __SOUND_DMAENGINE_PCM_H__
-
-#include <sound/pcm.h>
-#include <linux/dmaengine.h>
-
-/**
- * snd_pcm_substream_to_dma_direction - Get dma_transfer_direction for a PCM
- * substream
- * @substream: PCM substream
- */
-static inline enum dma_transfer_direction
-snd_pcm_substream_to_dma_direction(const struct snd_pcm_substream *substream)
-{
- if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
- return DMA_MEM_TO_DEV;
- else
- return DMA_DEV_TO_MEM;
-}
-
-void snd_dmaengine_pcm_set_data(struct snd_pcm_substream *substream, void *data);
-void *snd_dmaengine_pcm_get_data(struct snd_pcm_substream *substream);
-
-int snd_hwparams_to_dma_slave_config(const struct snd_pcm_substream *substream,
- const struct snd_pcm_hw_params *params, struct dma_slave_config *slave_config);
-int snd_dmaengine_pcm_trigger(struct snd_pcm_substream *substream, int cmd);
-snd_pcm_uframes_t snd_dmaengine_pcm_pointer(struct snd_pcm_substream *substream);
-
-int snd_dmaengine_pcm_open(struct snd_pcm_substream *substream,
- dma_filter_fn filter_fn, void *filter_data);
-int snd_dmaengine_pcm_close(struct snd_pcm_substream *substream);
-
-struct dma_chan *snd_dmaengine_pcm_get_chan(struct snd_pcm_substream *substream);
-
-#endif
diff --git a/ANDROID_3.4.5/include/sound/emu10k1.h b/ANDROID_3.4.5/include/sound/emu10k1.h
deleted file mode 100644
index 4f865df4..00000000
--- a/ANDROID_3.4.5/include/sound/emu10k1.h
+++ /dev/null
@@ -1,2248 +0,0 @@
-#ifndef __SOUND_EMU10K1_H
-#define __SOUND_EMU10K1_H
-
-#include <linux/types.h>
-
-/*
- * Copyright (c) by Jaroslav Kysela <perex@perex.cz>,
- * Creative Labs, Inc.
- * Definitions for EMU10K1 (SB Live!) chips
- *
- *
- * 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 __KERNEL__
-
-#include <sound/pcm.h>
-#include <sound/rawmidi.h>
-#include <sound/hwdep.h>
-#include <sound/ac97_codec.h>
-#include <sound/util_mem.h>
-#include <sound/pcm-indirect.h>
-#include <sound/timer.h>
-#include <linux/interrupt.h>
-#include <linux/mutex.h>
-
-#include <asm/io.h>
-
-/* ------------------- DEFINES -------------------- */
-
-#define EMUPAGESIZE 4096
-#define MAXREQVOICES 8
-#define MAXPAGES 8192
-#define RESERVED 0
-#define NUM_MIDI 16
-#define NUM_G 64 /* use all channels */
-#define NUM_FXSENDS 4
-#define NUM_EFX_PLAYBACK 16
-
-/* FIXME? - according to the OSS driver the EMU10K1 needs a 29 bit DMA mask */
-#define EMU10K1_DMA_MASK 0x7fffffffUL /* 31bit */
-#define AUDIGY_DMA_MASK 0x7fffffffUL /* 31bit FIXME - 32 should work? */
- /* See ALSA bug #1276 - rlrevell */
-
-#define TMEMSIZE 256*1024
-#define TMEMSIZEREG 4
-
-#define IP_TO_CP(ip) ((ip == 0) ? 0 : (((0x00001000uL | (ip & 0x00000FFFL)) << (((ip >> 12) & 0x000FL) + 4)) & 0xFFFF0000uL))
-
-// Audigy specify registers are prefixed with 'A_'
-
-/************************************************************************************************/
-/* PCI function 0 registers, address = <val> + PCIBASE0 */
-/************************************************************************************************/
-
-#define PTR 0x00 /* Indexed register set pointer register */
- /* NOTE: The CHANNELNUM and ADDRESS words can */
- /* be modified independently of each other. */
-#define PTR_CHANNELNUM_MASK 0x0000003f /* For each per-channel register, indicates the */
- /* channel number of the register to be */
- /* accessed. For non per-channel registers the */
- /* value should be set to zero. */
-#define PTR_ADDRESS_MASK 0x07ff0000 /* Register index */
-#define A_PTR_ADDRESS_MASK 0x0fff0000
-
-#define DATA 0x04 /* Indexed register set data register */
-
-#define IPR 0x08 /* Global interrupt pending register */
- /* Clear pending interrupts by writing a 1 to */
- /* the relevant bits and zero to the other bits */
-#define IPR_P16V 0x80000000 /* Bit set when the CA0151 P16V chip wishes
- to interrupt */
-#define IPR_GPIOMSG 0x20000000 /* GPIO message interrupt (RE'd, still not sure
- which INTE bits enable it) */
-
-/* The next two interrupts are for the midi port on the Audigy Drive (A_MPU1) */
-#define IPR_A_MIDITRANSBUFEMPTY2 0x10000000 /* MIDI UART transmit buffer empty */
-#define IPR_A_MIDIRECVBUFEMPTY2 0x08000000 /* MIDI UART receive buffer empty */
-
-#define IPR_SPDIFBUFFULL 0x04000000 /* SPDIF capture related, 10k2 only? (RE) */
-#define IPR_SPDIFBUFHALFFULL 0x02000000 /* SPDIF capture related? (RE) */
-
-#define IPR_SAMPLERATETRACKER 0x01000000 /* Sample rate tracker lock status change */
-#define IPR_FXDSP 0x00800000 /* Enable FX DSP interrupts */
-#define IPR_FORCEINT 0x00400000 /* Force Sound Blaster interrupt */
-#define IPR_PCIERROR 0x00200000 /* PCI bus error */
-#define IPR_VOLINCR 0x00100000 /* Volume increment button pressed */
-#define IPR_VOLDECR 0x00080000 /* Volume decrement button pressed */
-#define IPR_MUTE 0x00040000 /* Mute button pressed */
-#define IPR_MICBUFFULL 0x00020000 /* Microphone buffer full */
-#define IPR_MICBUFHALFFULL 0x00010000 /* Microphone buffer half full */
-#define IPR_ADCBUFFULL 0x00008000 /* ADC buffer full */
-#define IPR_ADCBUFHALFFULL 0x00004000 /* ADC buffer half full */
-#define IPR_EFXBUFFULL 0x00002000 /* Effects buffer full */
-#define IPR_EFXBUFHALFFULL 0x00001000 /* Effects buffer half full */
-#define IPR_GPSPDIFSTATUSCHANGE 0x00000800 /* GPSPDIF channel status change */
-#define IPR_CDROMSTATUSCHANGE 0x00000400 /* CD-ROM channel status change */
-#define IPR_INTERVALTIMER 0x00000200 /* Interval timer terminal count */
-#define IPR_MIDITRANSBUFEMPTY 0x00000100 /* MIDI UART transmit buffer empty */
-#define IPR_MIDIRECVBUFEMPTY 0x00000080 /* MIDI UART receive buffer empty */
-#define IPR_CHANNELLOOP 0x00000040 /* Channel (half) loop interrupt(s) pending */
-#define IPR_CHANNELNUMBERMASK 0x0000003f /* When IPR_CHANNELLOOP is set, indicates the */
- /* highest set channel in CLIPL, CLIPH, HLIPL, */
- /* or HLIPH. When IP is written with CL set, */
- /* the bit in H/CLIPL or H/CLIPH corresponding */
- /* to the CIN value written will be cleared. */
-
-#define INTE 0x0c /* Interrupt enable register */
-#define INTE_VIRTUALSB_MASK 0xc0000000 /* Virtual Soundblaster I/O port capture */
-#define INTE_VIRTUALSB_220 0x00000000 /* Capture at I/O base address 0x220-0x22f */
-#define INTE_VIRTUALSB_240 0x40000000 /* Capture at I/O base address 0x240 */
-#define INTE_VIRTUALSB_260 0x80000000 /* Capture at I/O base address 0x260 */
-#define INTE_VIRTUALSB_280 0xc0000000 /* Capture at I/O base address 0x280 */
-#define INTE_VIRTUALMPU_MASK 0x30000000 /* Virtual MPU I/O port capture */
-#define INTE_VIRTUALMPU_300 0x00000000 /* Capture at I/O base address 0x300-0x301 */
-#define INTE_VIRTUALMPU_310 0x10000000 /* Capture at I/O base address 0x310 */
-#define INTE_VIRTUALMPU_320 0x20000000 /* Capture at I/O base address 0x320 */
-#define INTE_VIRTUALMPU_330 0x30000000 /* Capture at I/O base address 0x330 */
-#define INTE_MASTERDMAENABLE 0x08000000 /* Master DMA emulation at 0x000-0x00f */
-#define INTE_SLAVEDMAENABLE 0x04000000 /* Slave DMA emulation at 0x0c0-0x0df */
-#define INTE_MASTERPICENABLE 0x02000000 /* Master PIC emulation at 0x020-0x021 */
-#define INTE_SLAVEPICENABLE 0x01000000 /* Slave PIC emulation at 0x0a0-0x0a1 */
-#define INTE_VSBENABLE 0x00800000 /* Enable virtual Soundblaster */
-#define INTE_ADLIBENABLE 0x00400000 /* Enable AdLib emulation at 0x388-0x38b */
-#define INTE_MPUENABLE 0x00200000 /* Enable virtual MPU */
-#define INTE_FORCEINT 0x00100000 /* Continuously assert INTAN */
-
-#define INTE_MRHANDENABLE 0x00080000 /* Enable the "Mr. Hand" logic */
- /* NOTE: There is no reason to use this under */
- /* Linux, and it will cause odd hardware */
- /* behavior and possibly random segfaults and */
- /* lockups if enabled. */
-
-/* The next two interrupts are for the midi port on the Audigy Drive (A_MPU1) */
-#define INTE_A_MIDITXENABLE2 0x00020000 /* Enable MIDI transmit-buffer-empty interrupts */
-#define INTE_A_MIDIRXENABLE2 0x00010000 /* Enable MIDI receive-buffer-empty interrupts */
-
-
-#define INTE_SAMPLERATETRACKER 0x00002000 /* Enable sample rate tracker interrupts */
- /* NOTE: This bit must always be enabled */
-#define INTE_FXDSPENABLE 0x00001000 /* Enable FX DSP interrupts */
-#define INTE_PCIERRORENABLE 0x00000800 /* Enable PCI bus error interrupts */
-#define INTE_VOLINCRENABLE 0x00000400 /* Enable volume increment button interrupts */
-#define INTE_VOLDECRENABLE 0x00000200 /* Enable volume decrement button interrupts */
-#define INTE_MUTEENABLE 0x00000100 /* Enable mute button interrupts */
-#define INTE_MICBUFENABLE 0x00000080 /* Enable microphone buffer interrupts */
-#define INTE_ADCBUFENABLE 0x00000040 /* Enable ADC buffer interrupts */
-#define INTE_EFXBUFENABLE 0x00000020 /* Enable Effects buffer interrupts */
-#define INTE_GPSPDIFENABLE 0x00000010 /* Enable GPSPDIF status interrupts */
-#define INTE_CDSPDIFENABLE 0x00000008 /* Enable CDSPDIF status interrupts */
-#define INTE_INTERVALTIMERENB 0x00000004 /* Enable interval timer interrupts */
-#define INTE_MIDITXENABLE 0x00000002 /* Enable MIDI transmit-buffer-empty interrupts */
-#define INTE_MIDIRXENABLE 0x00000001 /* Enable MIDI receive-buffer-empty interrupts */
-
-#define WC 0x10 /* Wall Clock register */
-#define WC_SAMPLECOUNTER_MASK 0x03FFFFC0 /* Sample periods elapsed since reset */
-#define WC_SAMPLECOUNTER 0x14060010
-#define WC_CURRENTCHANNEL 0x0000003F /* Channel [0..63] currently being serviced */
- /* NOTE: Each channel takes 1/64th of a sample */
- /* period to be serviced. */
-
-#define HCFG 0x14 /* Hardware config register */
- /* NOTE: There is no reason to use the legacy */
- /* SoundBlaster emulation stuff described below */
- /* under Linux, and all kinds of weird hardware */
- /* behavior can result if you try. Don't. */
-#define HCFG_LEGACYFUNC_MASK 0xe0000000 /* Legacy function number */
-#define HCFG_LEGACYFUNC_MPU 0x00000000 /* Legacy MPU */
-#define HCFG_LEGACYFUNC_SB 0x40000000 /* Legacy SB */
-#define HCFG_LEGACYFUNC_AD 0x60000000 /* Legacy AD */
-#define HCFG_LEGACYFUNC_MPIC 0x80000000 /* Legacy MPIC */
-#define HCFG_LEGACYFUNC_MDMA 0xa0000000 /* Legacy MDMA */
-#define HCFG_LEGACYFUNC_SPCI 0xc0000000 /* Legacy SPCI */
-#define HCFG_LEGACYFUNC_SDMA 0xe0000000 /* Legacy SDMA */
-#define HCFG_IOCAPTUREADDR 0x1f000000 /* The 4 LSBs of the captured I/O address. */
-#define HCFG_LEGACYWRITE 0x00800000 /* 1 = write, 0 = read */
-#define HCFG_LEGACYWORD 0x00400000 /* 1 = word, 0 = byte */
-#define HCFG_LEGACYINT 0x00200000 /* 1 = legacy event captured. Write 1 to clear. */
- /* NOTE: The rest of the bits in this register */
- /* _are_ relevant under Linux. */
-#define HCFG_PUSH_BUTTON_ENABLE 0x00100000 /* Enables Volume Inc/Dec and Mute functions */
-#define HCFG_BAUD_RATE 0x00080000 /* 0 = 48kHz, 1 = 44.1kHz */
-#define HCFG_EXPANDED_MEM 0x00040000 /* 1 = any 16M of 4G addr, 0 = 32M of 2G addr */
-#define HCFG_CODECFORMAT_MASK 0x00030000 /* CODEC format */
-
-/* Specific to Alice2, CA0102 */
-#define HCFG_CODECFORMAT_AC97_1 0x00000000 /* AC97 CODEC format -- Ver 1.03 */
-#define HCFG_CODECFORMAT_AC97_2 0x00010000 /* AC97 CODEC format -- Ver 2.1 */
-#define HCFG_AUTOMUTE_ASYNC 0x00008000 /* When set, the async sample rate convertors */
- /* will automatically mute their output when */
- /* they are not rate-locked to the external */
- /* async audio source */
-#define HCFG_AUTOMUTE_SPDIF 0x00004000 /* When set, the async sample rate convertors */
- /* will automatically mute their output when */
- /* the SPDIF V-bit indicates invalid audio */
-#define HCFG_EMU32_SLAVE 0x00002000 /* 0 = Master, 1 = Slave. Slave for EMU1010 */
-#define HCFG_SLOW_RAMP 0x00001000 /* Increases Send Smoothing time constant */
-/* 0x00000800 not used on Alice2 */
-#define HCFG_PHASE_TRACK_MASK 0x00000700 /* When set, forces corresponding input to */
- /* phase track the previous input. */
- /* I2S0 can phase track the last S/PDIF input */
-#define HCFG_I2S_ASRC_ENABLE 0x00000070 /* When set, enables asynchronous sample rate */
- /* conversion for the corresponding */
- /* I2S format input */
-/* Rest of HCFG 0x0000000f same as below. LOCKSOUNDCACHE etc. */
-
-
-
-/* Older chips */
-#define HCFG_CODECFORMAT_AC97 0x00000000 /* AC97 CODEC format -- Primary Output */
-#define HCFG_CODECFORMAT_I2S 0x00010000 /* I2S CODEC format -- Secondary (Rear) Output */
-#define HCFG_GPINPUT0 0x00004000 /* External pin112 */
-#define HCFG_GPINPUT1 0x00002000 /* External pin110 */
-#define HCFG_GPOUTPUT_MASK 0x00001c00 /* External pins which may be controlled */
-#define HCFG_GPOUT0 0x00001000 /* External pin? (spdif enable on 5.1) */
-#define HCFG_GPOUT1 0x00000800 /* External pin? (IR) */
-#define HCFG_GPOUT2 0x00000400 /* External pin? (IR) */
-#define HCFG_JOYENABLE 0x00000200 /* Internal joystick enable */
-#define HCFG_PHASETRACKENABLE 0x00000100 /* Phase tracking enable */
- /* 1 = Force all 3 async digital inputs to use */
- /* the same async sample rate tracker (ZVIDEO) */
-#define HCFG_AC3ENABLE_MASK 0x000000e0 /* AC3 async input control - Not implemented */
-#define HCFG_AC3ENABLE_ZVIDEO 0x00000080 /* Channels 0 and 1 replace ZVIDEO */
-#define HCFG_AC3ENABLE_CDSPDIF 0x00000040 /* Channels 0 and 1 replace CDSPDIF */
-#define HCFG_AC3ENABLE_GPSPDIF 0x00000020 /* Channels 0 and 1 replace GPSPDIF */
-#define HCFG_AUTOMUTE 0x00000010 /* When set, the async sample rate convertors */
- /* will automatically mute their output when */
- /* they are not rate-locked to the external */
- /* async audio source */
-#define HCFG_LOCKSOUNDCACHE 0x00000008 /* 1 = Cancel bustmaster accesses to soundcache */
- /* NOTE: This should generally never be used. */
-#define HCFG_LOCKTANKCACHE_MASK 0x00000004 /* 1 = Cancel bustmaster accesses to tankcache */
- /* NOTE: This should generally never be used. */
-#define HCFG_LOCKTANKCACHE 0x01020014
-#define HCFG_MUTEBUTTONENABLE 0x00000002 /* 1 = Master mute button sets AUDIOENABLE = 0. */
- /* NOTE: This is a 'cheap' way to implement a */
- /* master mute function on the mute button, and */
- /* in general should not be used unless a more */
- /* sophisticated master mute function has not */
- /* been written. */
-#define HCFG_AUDIOENABLE 0x00000001 /* 0 = CODECs transmit zero-valued samples */
- /* Should be set to 1 when the EMU10K1 is */
- /* completely initialized. */
-
-//For Audigy, MPU port move to 0x70-0x74 ptr register
-
-#define MUDATA 0x18 /* MPU401 data register (8 bits) */
-
-#define MUCMD 0x19 /* MPU401 command register (8 bits) */
-#define MUCMD_RESET 0xff /* RESET command */
-#define MUCMD_ENTERUARTMODE 0x3f /* Enter_UART_mode command */
- /* NOTE: All other commands are ignored */
-
-#define MUSTAT MUCMD /* MPU401 status register (8 bits) */
-#define MUSTAT_IRDYN 0x80 /* 0 = MIDI data or command ACK */
-#define MUSTAT_ORDYN 0x40 /* 0 = MUDATA can accept a command or data */
-
-#define A_IOCFG 0x18 /* GPIO on Audigy card (16bits) */
-#define A_GPINPUT_MASK 0xff00
-#define A_GPOUTPUT_MASK 0x00ff
-
-// Audigy output/GPIO stuff taken from the kX drivers
-#define A_IOCFG_GPOUT0 0x0044 /* analog/digital */
-#define A_IOCFG_DISABLE_ANALOG 0x0040 /* = 'enable' for Audigy2 (chiprev=4) */
-#define A_IOCFG_ENABLE_DIGITAL 0x0004
-#define A_IOCFG_ENABLE_DIGITAL_AUDIGY4 0x0080
-#define A_IOCFG_UNKNOWN_20 0x0020
-#define A_IOCFG_DISABLE_AC97_FRONT 0x0080 /* turn off ac97 front -> front (10k2.1) */
-#define A_IOCFG_GPOUT1 0x0002 /* IR? drive's internal bypass (?) */
-#define A_IOCFG_GPOUT2 0x0001 /* IR */
-#define A_IOCFG_MULTIPURPOSE_JACK 0x2000 /* center+lfe+rear_center (a2/a2ex) */
- /* + digital for generic 10k2 */
-#define A_IOCFG_DIGITAL_JACK 0x1000 /* digital for a2 platinum */
-#define A_IOCFG_FRONT_JACK 0x4000
-#define A_IOCFG_REAR_JACK 0x8000
-#define A_IOCFG_PHONES_JACK 0x0100 /* LiveDrive */
-
-/* outputs:
- * for audigy2 platinum: 0xa00
- * for a2 platinum ex: 0x1c00
- * for a1 platinum: 0x0
- */
-
-#define TIMER 0x1a /* Timer terminal count register */
- /* NOTE: After the rate is changed, a maximum */
- /* of 1024 sample periods should be allowed */
- /* before the new rate is guaranteed accurate. */
-#define TIMER_RATE_MASK 0x000003ff /* Timer interrupt rate in sample periods */
- /* 0 == 1024 periods, [1..4] are not useful */
-#define TIMER_RATE 0x0a00001a
-
-#define AC97DATA 0x1c /* AC97 register set data register (16 bit) */
-
-#define AC97ADDRESS 0x1e /* AC97 register set address register (8 bit) */
-#define AC97ADDRESS_READY 0x80 /* Read-only bit, reflects CODEC READY signal */
-#define AC97ADDRESS_ADDRESS 0x7f /* Address of indexed AC97 register */
-
-/* Available on the Audigy 2 and Audigy 4 only. This is the P16V chip. */
-#define PTR2 0x20 /* Indexed register set pointer register */
-#define DATA2 0x24 /* Indexed register set data register */
-#define IPR2 0x28 /* P16V interrupt pending register */
-#define IPR2_PLAYBACK_CH_0_LOOP 0x00001000 /* Playback Channel 0 loop */
-#define IPR2_PLAYBACK_CH_0_HALF_LOOP 0x00000100 /* Playback Channel 0 half loop */
-#define IPR2_CAPTURE_CH_0_LOOP 0x00100000 /* Capture Channel 0 loop */
-#define IPR2_CAPTURE_CH_0_HALF_LOOP 0x00010000 /* Capture Channel 0 half loop */
- /* 0x00000100 Playback. Only in once per period.
- * 0x00110000 Capture. Int on half buffer.
- */
-#define INTE2 0x2c /* P16V Interrupt enable register. */
-#define INTE2_PLAYBACK_CH_0_LOOP 0x00001000 /* Playback Channel 0 loop */
-#define INTE2_PLAYBACK_CH_0_HALF_LOOP 0x00000100 /* Playback Channel 0 half loop */
-#define INTE2_PLAYBACK_CH_1_LOOP 0x00002000 /* Playback Channel 1 loop */
-#define INTE2_PLAYBACK_CH_1_HALF_LOOP 0x00000200 /* Playback Channel 1 half loop */
-#define INTE2_PLAYBACK_CH_2_LOOP 0x00004000 /* Playback Channel 2 loop */
-#define INTE2_PLAYBACK_CH_2_HALF_LOOP 0x00000400 /* Playback Channel 2 half loop */
-#define INTE2_PLAYBACK_CH_3_LOOP 0x00008000 /* Playback Channel 3 loop */
-#define INTE2_PLAYBACK_CH_3_HALF_LOOP 0x00000800 /* Playback Channel 3 half loop */
-#define INTE2_CAPTURE_CH_0_LOOP 0x00100000 /* Capture Channel 0 loop */
-#define INTE2_CAPTURE_CH_0_HALF_LOOP 0x00010000 /* Caputre Channel 0 half loop */
-#define HCFG2 0x34 /* Defaults: 0, win2000 sets it to 00004201 */
- /* 0x00000000 2-channel output. */
- /* 0x00000200 8-channel output. */
- /* 0x00000004 pauses stream/irq fail. */
- /* Rest of bits no nothing to sound output */
- /* bit 0: Enable P16V audio.
- * bit 1: Lock P16V record memory cache.
- * bit 2: Lock P16V playback memory cache.
- * bit 3: Dummy record insert zero samples.
- * bit 8: Record 8-channel in phase.
- * bit 9: Playback 8-channel in phase.
- * bit 11-12: Playback mixer attenuation: 0=0dB, 1=-6dB, 2=-12dB, 3=Mute.
- * bit 13: Playback mixer enable.
- * bit 14: Route SRC48 mixer output to fx engine.
- * bit 15: Enable IEEE 1394 chip.
- */
-#define IPR3 0x38 /* Cdif interrupt pending register */
-#define INTE3 0x3c /* Cdif interrupt enable register. */
-/************************************************************************************************/
-/* PCI function 1 registers, address = <val> + PCIBASE1 */
-/************************************************************************************************/
-
-#define JOYSTICK1 0x00 /* Analog joystick port register */
-#define JOYSTICK2 0x01 /* Analog joystick port register */
-#define JOYSTICK3 0x02 /* Analog joystick port register */
-#define JOYSTICK4 0x03 /* Analog joystick port register */
-#define JOYSTICK5 0x04 /* Analog joystick port register */
-#define JOYSTICK6 0x05 /* Analog joystick port register */
-#define JOYSTICK7 0x06 /* Analog joystick port register */
-#define JOYSTICK8 0x07 /* Analog joystick port register */
-
-/* When writing, any write causes JOYSTICK_COMPARATOR output enable to be pulsed on write. */
-/* When reading, use these bitfields: */
-#define JOYSTICK_BUTTONS 0x0f /* Joystick button data */
-#define JOYSTICK_COMPARATOR 0xf0 /* Joystick comparator data */
-
-
-/********************************************************************************************************/
-/* Emu10k1 pointer-offset register set, accessed through the PTR and DATA registers */
-/********************************************************************************************************/
-
-#define CPF 0x00 /* Current pitch and fraction register */
-#define CPF_CURRENTPITCH_MASK 0xffff0000 /* Current pitch (linear, 0x4000 == unity pitch shift) */
-#define CPF_CURRENTPITCH 0x10100000
-#define CPF_STEREO_MASK 0x00008000 /* 1 = Even channel interleave, odd channel locked */
-#define CPF_STOP_MASK 0x00004000 /* 1 = Current pitch forced to 0 */
-#define CPF_FRACADDRESS_MASK 0x00003fff /* Linear fractional address of the current channel */
-
-#define PTRX 0x01 /* Pitch target and send A/B amounts register */
-#define PTRX_PITCHTARGET_MASK 0xffff0000 /* Pitch target of specified channel */
-#define PTRX_PITCHTARGET 0x10100001
-#define PTRX_FXSENDAMOUNT_A_MASK 0x0000ff00 /* Linear level of channel output sent to FX send bus A */
-#define PTRX_FXSENDAMOUNT_A 0x08080001
-#define PTRX_FXSENDAMOUNT_B_MASK 0x000000ff /* Linear level of channel output sent to FX send bus B */
-#define PTRX_FXSENDAMOUNT_B 0x08000001
-
-#define CVCF 0x02 /* Current volume and filter cutoff register */
-#define CVCF_CURRENTVOL_MASK 0xffff0000 /* Current linear volume of specified channel */
-#define CVCF_CURRENTVOL 0x10100002
-#define CVCF_CURRENTFILTER_MASK 0x0000ffff /* Current filter cutoff frequency of specified channel */
-#define CVCF_CURRENTFILTER 0x10000002
-
-#define VTFT 0x03 /* Volume target and filter cutoff target register */
-#define VTFT_VOLUMETARGET_MASK 0xffff0000 /* Volume target of specified channel */
-#define VTFT_VOLUMETARGET 0x10100003
-#define VTFT_FILTERTARGET_MASK 0x0000ffff /* Filter cutoff target of specified channel */
-#define VTFT_FILTERTARGET 0x10000003
-
-#define Z1 0x05 /* Filter delay memory 1 register */
-
-#define Z2 0x04 /* Filter delay memory 2 register */
-
-#define PSST 0x06 /* Send C amount and loop start address register */
-#define PSST_FXSENDAMOUNT_C_MASK 0xff000000 /* Linear level of channel output sent to FX send bus C */
-
-#define PSST_FXSENDAMOUNT_C 0x08180006
-
-#define PSST_LOOPSTARTADDR_MASK 0x00ffffff /* Loop start address of the specified channel */
-#define PSST_LOOPSTARTADDR 0x18000006
-
-#define DSL 0x07 /* Send D amount and loop start address register */
-#define DSL_FXSENDAMOUNT_D_MASK 0xff000000 /* Linear level of channel output sent to FX send bus D */
-
-#define DSL_FXSENDAMOUNT_D 0x08180007
-
-#define DSL_LOOPENDADDR_MASK 0x00ffffff /* Loop end address of the specified channel */
-#define DSL_LOOPENDADDR 0x18000007
-
-#define CCCA 0x08 /* Filter Q, interp. ROM, byte size, cur. addr register */
-#define CCCA_RESONANCE 0xf0000000 /* Lowpass filter resonance (Q) height */
-#define CCCA_INTERPROMMASK 0x0e000000 /* Selects passband of interpolation ROM */
- /* 1 == full band, 7 == lowpass */
- /* ROM 0 is used when pitch shifting downward or less */
- /* then 3 semitones upward. Increasingly higher ROM */
- /* numbers are used, typically in steps of 3 semitones, */
- /* as upward pitch shifting is performed. */
-#define CCCA_INTERPROM_0 0x00000000 /* Select interpolation ROM 0 */
-#define CCCA_INTERPROM_1 0x02000000 /* Select interpolation ROM 1 */
-#define CCCA_INTERPROM_2 0x04000000 /* Select interpolation ROM 2 */
-#define CCCA_INTERPROM_3 0x06000000 /* Select interpolation ROM 3 */
-#define CCCA_INTERPROM_4 0x08000000 /* Select interpolation ROM 4 */
-#define CCCA_INTERPROM_5 0x0a000000 /* Select interpolation ROM 5 */
-#define CCCA_INTERPROM_6 0x0c000000 /* Select interpolation ROM 6 */
-#define CCCA_INTERPROM_7 0x0e000000 /* Select interpolation ROM 7 */
-#define CCCA_8BITSELECT 0x01000000 /* 1 = Sound memory for this channel uses 8-bit samples */
-#define CCCA_CURRADDR_MASK 0x00ffffff /* Current address of the selected channel */
-#define CCCA_CURRADDR 0x18000008
-
-/* undefine CCR to avoid conflict with the definition for SH */
-#undef CCR
-#define CCR 0x09 /* Cache control register */
-#define CCR_CACHEINVALIDSIZE 0x07190009
-#define CCR_CACHEINVALIDSIZE_MASK 0xfe000000 /* Number of invalid samples cache for this channel */
-#define CCR_CACHELOOPFLAG 0x01000000 /* 1 = Cache has a loop service pending */
-#define CCR_INTERLEAVEDSAMPLES 0x00800000 /* 1 = A cache service will fetch interleaved samples */
-#define CCR_WORDSIZEDSAMPLES 0x00400000 /* 1 = A cache service will fetch word sized samples */
-#define CCR_READADDRESS 0x06100009
-#define CCR_READADDRESS_MASK 0x003f0000 /* Location of cache just beyond current cache service */
-#define CCR_LOOPINVALSIZE 0x0000fe00 /* Number of invalid samples in cache prior to loop */
- /* NOTE: This is valid only if CACHELOOPFLAG is set */
-#define CCR_LOOPFLAG 0x00000100 /* Set for a single sample period when a loop occurs */
-#define CCR_CACHELOOPADDRHI 0x000000ff /* DSL_LOOPSTARTADDR's hi byte if CACHELOOPFLAG is set */
-
-#define CLP 0x0a /* Cache loop register (valid if CCR_CACHELOOPFLAG = 1) */
- /* NOTE: This register is normally not used */
-#define CLP_CACHELOOPADDR 0x0000ffff /* Cache loop address (DSL_LOOPSTARTADDR [0..15]) */
-
-#define FXRT 0x0b /* Effects send routing register */
- /* NOTE: It is illegal to assign the same routing to */
- /* two effects sends. */
-#define FXRT_CHANNELA 0x000f0000 /* Effects send bus number for channel's effects send A */
-#define FXRT_CHANNELB 0x00f00000 /* Effects send bus number for channel's effects send B */
-#define FXRT_CHANNELC 0x0f000000 /* Effects send bus number for channel's effects send C */
-#define FXRT_CHANNELD 0xf0000000 /* Effects send bus number for channel's effects send D */
-
-#define A_HR 0x0b /* High Resolution. 24bit playback from host to DSP. */
-#define MAPA 0x0c /* Cache map A */
-
-#define MAPB 0x0d /* Cache map B */
-
-#define MAP_PTE_MASK 0xffffe000 /* The 19 MSBs of the PTE indexed by the PTI */
-#define MAP_PTI_MASK 0x00001fff /* The 13 bit index to one of the 8192 PTE dwords */
-
-/* 0x0e, 0x0f: Not used */
-
-#define ENVVOL 0x10 /* Volume envelope register */
-#define ENVVOL_MASK 0x0000ffff /* Current value of volume envelope state variable */
- /* 0x8000-n == 666*n usec delay */
-
-#define ATKHLDV 0x11 /* Volume envelope hold and attack register */
-#define ATKHLDV_PHASE0 0x00008000 /* 0 = Begin attack phase */
-#define ATKHLDV_HOLDTIME_MASK 0x00007f00 /* Envelope hold time (127-n == n*88.2msec) */
-#define ATKHLDV_ATTACKTIME_MASK 0x0000007f /* Envelope attack time, log encoded */
- /* 0 = infinite, 1 = 10.9msec, ... 0x7f = 5.5msec */
-
-#define DCYSUSV 0x12 /* Volume envelope sustain and decay register */
-#define DCYSUSV_PHASE1_MASK 0x00008000 /* 0 = Begin attack phase, 1 = begin release phase */
-#define DCYSUSV_SUSTAINLEVEL_MASK 0x00007f00 /* 127 = full, 0 = off, 0.75dB increments */
-#define DCYSUSV_CHANNELENABLE_MASK 0x00000080 /* 1 = Inhibit envelope engine from writing values in */
- /* this channel and from writing to pitch, filter and */
- /* volume targets. */
-#define DCYSUSV_DECAYTIME_MASK 0x0000007f /* Volume envelope decay time, log encoded */
- /* 0 = 43.7msec, 1 = 21.8msec, 0x7f = 22msec */
-
-#define LFOVAL1 0x13 /* Modulation LFO value */
-#define LFOVAL_MASK 0x0000ffff /* Current value of modulation LFO state variable */
- /* 0x8000-n == 666*n usec delay */
-
-#define ENVVAL 0x14 /* Modulation envelope register */
-#define ENVVAL_MASK 0x0000ffff /* Current value of modulation envelope state variable */
- /* 0x8000-n == 666*n usec delay */
-
-#define ATKHLDM 0x15 /* Modulation envelope hold and attack register */
-#define ATKHLDM_PHASE0 0x00008000 /* 0 = Begin attack phase */
-#define ATKHLDM_HOLDTIME 0x00007f00 /* Envelope hold time (127-n == n*42msec) */
-#define ATKHLDM_ATTACKTIME 0x0000007f /* Envelope attack time, log encoded */
- /* 0 = infinite, 1 = 11msec, ... 0x7f = 5.5msec */
-
-#define DCYSUSM 0x16 /* Modulation envelope decay and sustain register */
-#define DCYSUSM_PHASE1_MASK 0x00008000 /* 0 = Begin attack phase, 1 = begin release phase */
-#define DCYSUSM_SUSTAINLEVEL_MASK 0x00007f00 /* 127 = full, 0 = off, 0.75dB increments */
-#define DCYSUSM_DECAYTIME_MASK 0x0000007f /* Envelope decay time, log encoded */
- /* 0 = 43.7msec, 1 = 21.8msec, 0x7f = 22msec */
-
-#define LFOVAL2 0x17 /* Vibrato LFO register */
-#define LFOVAL2_MASK 0x0000ffff /* Current value of vibrato LFO state variable */
- /* 0x8000-n == 666*n usec delay */
-
-#define IP 0x18 /* Initial pitch register */
-#define IP_MASK 0x0000ffff /* Exponential initial pitch shift */
- /* 4 bits of octave, 12 bits of fractional octave */
-#define IP_UNITY 0x0000e000 /* Unity pitch shift */
-
-#define IFATN 0x19 /* Initial filter cutoff and attenuation register */
-#define IFATN_FILTERCUTOFF_MASK 0x0000ff00 /* Initial filter cutoff frequency in exponential units */
- /* 6 most significant bits are semitones */
- /* 2 least significant bits are fractions */
-#define IFATN_FILTERCUTOFF 0x08080019
-#define IFATN_ATTENUATION_MASK 0x000000ff /* Initial attenuation in 0.375dB steps */
-#define IFATN_ATTENUATION 0x08000019
-
-
-#define PEFE 0x1a /* Pitch envelope and filter envelope amount register */
-#define PEFE_PITCHAMOUNT_MASK 0x0000ff00 /* Pitch envlope amount */
- /* Signed 2's complement, +/- one octave peak extremes */
-#define PEFE_PITCHAMOUNT 0x0808001a
-#define PEFE_FILTERAMOUNT_MASK 0x000000ff /* Filter envlope amount */
- /* Signed 2's complement, +/- six octaves peak extremes */
-#define PEFE_FILTERAMOUNT 0x0800001a
-#define FMMOD 0x1b /* Vibrato/filter modulation from LFO register */
-#define FMMOD_MODVIBRATO 0x0000ff00 /* Vibrato LFO modulation depth */
- /* Signed 2's complement, +/- one octave extremes */
-#define FMMOD_MOFILTER 0x000000ff /* Filter LFO modulation depth */
- /* Signed 2's complement, +/- three octave extremes */
-
-
-#define TREMFRQ 0x1c /* Tremolo amount and modulation LFO frequency register */
-#define TREMFRQ_DEPTH 0x0000ff00 /* Tremolo depth */
- /* Signed 2's complement, with +/- 12dB extremes */
-
-#define TREMFRQ_FREQUENCY 0x000000ff /* Tremolo LFO frequency */
- /* ??Hz steps, maximum of ?? Hz. */
-#define FM2FRQ2 0x1d /* Vibrato amount and vibrato LFO frequency register */
-#define FM2FRQ2_DEPTH 0x0000ff00 /* Vibrato LFO vibrato depth */
- /* Signed 2's complement, +/- one octave extremes */
-#define FM2FRQ2_FREQUENCY 0x000000ff /* Vibrato LFO frequency */
- /* 0.039Hz steps, maximum of 9.85 Hz. */
-
-#define TEMPENV 0x1e /* Tempory envelope register */
-#define TEMPENV_MASK 0x0000ffff /* 16-bit value */
- /* NOTE: All channels contain internal variables; do */
- /* not write to these locations. */
-
-/* 0x1f: not used */
-
-#define CD0 0x20 /* Cache data 0 register */
-#define CD1 0x21 /* Cache data 1 register */
-#define CD2 0x22 /* Cache data 2 register */
-#define CD3 0x23 /* Cache data 3 register */
-#define CD4 0x24 /* Cache data 4 register */
-#define CD5 0x25 /* Cache data 5 register */
-#define CD6 0x26 /* Cache data 6 register */
-#define CD7 0x27 /* Cache data 7 register */
-#define CD8 0x28 /* Cache data 8 register */
-#define CD9 0x29 /* Cache data 9 register */
-#define CDA 0x2a /* Cache data A register */
-#define CDB 0x2b /* Cache data B register */
-#define CDC 0x2c /* Cache data C register */
-#define CDD 0x2d /* Cache data D register */
-#define CDE 0x2e /* Cache data E register */
-#define CDF 0x2f /* Cache data F register */
-
-/* 0x30-3f seem to be the same as 0x20-2f */
-
-#define PTB 0x40 /* Page table base register */
-#define PTB_MASK 0xfffff000 /* Physical address of the page table in host memory */
-
-#define TCB 0x41 /* Tank cache base register */
-#define TCB_MASK 0xfffff000 /* Physical address of the bottom of host based TRAM */
-
-#define ADCCR 0x42 /* ADC sample rate/stereo control register */
-#define ADCCR_RCHANENABLE 0x00000010 /* Enables right channel for writing to the host */
-#define ADCCR_LCHANENABLE 0x00000008 /* Enables left channel for writing to the host */
- /* NOTE: To guarantee phase coherency, both channels */
- /* must be disabled prior to enabling both channels. */
-#define A_ADCCR_RCHANENABLE 0x00000020
-#define A_ADCCR_LCHANENABLE 0x00000010
-
-#define A_ADCCR_SAMPLERATE_MASK 0x0000000F /* Audigy sample rate convertor output rate */
-#define ADCCR_SAMPLERATE_MASK 0x00000007 /* Sample rate convertor output rate */
-#define ADCCR_SAMPLERATE_48 0x00000000 /* 48kHz sample rate */
-#define ADCCR_SAMPLERATE_44 0x00000001 /* 44.1kHz sample rate */
-#define ADCCR_SAMPLERATE_32 0x00000002 /* 32kHz sample rate */
-#define ADCCR_SAMPLERATE_24 0x00000003 /* 24kHz sample rate */
-#define ADCCR_SAMPLERATE_22 0x00000004 /* 22.05kHz sample rate */
-#define ADCCR_SAMPLERATE_16 0x00000005 /* 16kHz sample rate */
-#define ADCCR_SAMPLERATE_11 0x00000006 /* 11.025kHz sample rate */
-#define ADCCR_SAMPLERATE_8 0x00000007 /* 8kHz sample rate */
-#define A_ADCCR_SAMPLERATE_12 0x00000006 /* 12kHz sample rate */
-#define A_ADCCR_SAMPLERATE_11 0x00000007 /* 11.025kHz sample rate */
-#define A_ADCCR_SAMPLERATE_8 0x00000008 /* 8kHz sample rate */
-
-#define FXWC 0x43 /* FX output write channels register */
- /* When set, each bit enables the writing of the */
- /* corresponding FX output channel (internal registers */
- /* 0x20-0x3f) to host memory. This mode of recording */
- /* is 16bit, 48KHz only. All 32 channels can be enabled */
- /* simultaneously. */
-
-#define FXWC_DEFAULTROUTE_C (1<<0) /* left emu out? */
-#define FXWC_DEFAULTROUTE_B (1<<1) /* right emu out? */
-#define FXWC_DEFAULTROUTE_A (1<<12)
-#define FXWC_DEFAULTROUTE_D (1<<13)
-#define FXWC_ADCLEFT (1<<18)
-#define FXWC_CDROMSPDIFLEFT (1<<18)
-#define FXWC_ADCRIGHT (1<<19)
-#define FXWC_CDROMSPDIFRIGHT (1<<19)
-#define FXWC_MIC (1<<20)
-#define FXWC_ZOOMLEFT (1<<20)
-#define FXWC_ZOOMRIGHT (1<<21)
-#define FXWC_SPDIFLEFT (1<<22) /* 0x00400000 */
-#define FXWC_SPDIFRIGHT (1<<23) /* 0x00800000 */
-
-#define A_TBLSZ 0x43 /* Effects Tank Internal Table Size. Only low byte or register used */
-
-#define TCBS 0x44 /* Tank cache buffer size register */
-#define TCBS_MASK 0x00000007 /* Tank cache buffer size field */
-#define TCBS_BUFFSIZE_16K 0x00000000
-#define TCBS_BUFFSIZE_32K 0x00000001
-#define TCBS_BUFFSIZE_64K 0x00000002
-#define TCBS_BUFFSIZE_128K 0x00000003
-#define TCBS_BUFFSIZE_256K 0x00000004
-#define TCBS_BUFFSIZE_512K 0x00000005
-#define TCBS_BUFFSIZE_1024K 0x00000006
-#define TCBS_BUFFSIZE_2048K 0x00000007
-
-#define MICBA 0x45 /* AC97 microphone buffer address register */
-#define MICBA_MASK 0xfffff000 /* 20 bit base address */
-
-#define ADCBA 0x46 /* ADC buffer address register */
-#define ADCBA_MASK 0xfffff000 /* 20 bit base address */
-
-#define FXBA 0x47 /* FX Buffer Address */
-#define FXBA_MASK 0xfffff000 /* 20 bit base address */
-
-#define A_HWM 0x48 /* High PCI Water Mark - word access, defaults to 3f */
-
-#define MICBS 0x49 /* Microphone buffer size register */
-
-#define ADCBS 0x4a /* ADC buffer size register */
-
-#define FXBS 0x4b /* FX buffer size register */
-
-/* register: 0x4c..4f: ffff-ffff current amounts, per-channel */
-
-/* The following mask values define the size of the ADC, MIX and FX buffers in bytes */
-#define ADCBS_BUFSIZE_NONE 0x00000000
-#define ADCBS_BUFSIZE_384 0x00000001
-#define ADCBS_BUFSIZE_448 0x00000002
-#define ADCBS_BUFSIZE_512 0x00000003
-#define ADCBS_BUFSIZE_640 0x00000004
-#define ADCBS_BUFSIZE_768 0x00000005
-#define ADCBS_BUFSIZE_896 0x00000006
-#define ADCBS_BUFSIZE_1024 0x00000007
-#define ADCBS_BUFSIZE_1280 0x00000008
-#define ADCBS_BUFSIZE_1536 0x00000009
-#define ADCBS_BUFSIZE_1792 0x0000000a
-#define ADCBS_BUFSIZE_2048 0x0000000b
-#define ADCBS_BUFSIZE_2560 0x0000000c
-#define ADCBS_BUFSIZE_3072 0x0000000d
-#define ADCBS_BUFSIZE_3584 0x0000000e
-#define ADCBS_BUFSIZE_4096 0x0000000f
-#define ADCBS_BUFSIZE_5120 0x00000010
-#define ADCBS_BUFSIZE_6144 0x00000011
-#define ADCBS_BUFSIZE_7168 0x00000012
-#define ADCBS_BUFSIZE_8192 0x00000013
-#define ADCBS_BUFSIZE_10240 0x00000014
-#define ADCBS_BUFSIZE_12288 0x00000015
-#define ADCBS_BUFSIZE_14366 0x00000016
-#define ADCBS_BUFSIZE_16384 0x00000017
-#define ADCBS_BUFSIZE_20480 0x00000018
-#define ADCBS_BUFSIZE_24576 0x00000019
-#define ADCBS_BUFSIZE_28672 0x0000001a
-#define ADCBS_BUFSIZE_32768 0x0000001b
-#define ADCBS_BUFSIZE_40960 0x0000001c
-#define ADCBS_BUFSIZE_49152 0x0000001d
-#define ADCBS_BUFSIZE_57344 0x0000001e
-#define ADCBS_BUFSIZE_65536 0x0000001f
-
-/* Current Send B, A Amounts */
-#define A_CSBA 0x4c
-
-/* Current Send D, C Amounts */
-#define A_CSDC 0x4d
-
-/* Current Send F, E Amounts */
-#define A_CSFE 0x4e
-
-/* Current Send H, G Amounts */
-#define A_CSHG 0x4f
-
-
-#define CDCS 0x50 /* CD-ROM digital channel status register */
-
-#define GPSCS 0x51 /* General Purpose SPDIF channel status register*/
-
-#define DBG 0x52 /* DO NOT PROGRAM THIS REGISTER!!! MAY DESTROY CHIP */
-
-/* S/PDIF Input C Channel Status */
-#define A_SPSC 0x52
-
-#define REG53 0x53 /* DO NOT PROGRAM THIS REGISTER!!! MAY DESTROY CHIP */
-
-#define A_DBG 0x53
-#define A_DBG_SINGLE_STEP 0x00020000 /* Set to zero to start dsp */
-#define A_DBG_ZC 0x40000000 /* zero tram counter */
-#define A_DBG_STEP_ADDR 0x000003ff
-#define A_DBG_SATURATION_OCCURED 0x20000000
-#define A_DBG_SATURATION_ADDR 0x0ffc0000
-
-// NOTE: 0x54,55,56: 64-bit
-#define SPCS0 0x54 /* SPDIF output Channel Status 0 register */
-
-#define SPCS1 0x55 /* SPDIF output Channel Status 1 register */
-
-#define SPCS2 0x56 /* SPDIF output Channel Status 2 register */
-
-#define SPCS_CLKACCYMASK 0x30000000 /* Clock accuracy */
-#define SPCS_CLKACCY_1000PPM 0x00000000 /* 1000 parts per million */
-#define SPCS_CLKACCY_50PPM 0x10000000 /* 50 parts per million */
-#define SPCS_CLKACCY_VARIABLE 0x20000000 /* Variable accuracy */
-#define SPCS_SAMPLERATEMASK 0x0f000000 /* Sample rate */
-#define SPCS_SAMPLERATE_44 0x00000000 /* 44.1kHz sample rate */
-#define SPCS_SAMPLERATE_48 0x02000000 /* 48kHz sample rate */
-#define SPCS_SAMPLERATE_32 0x03000000 /* 32kHz sample rate */
-#define SPCS_CHANNELNUMMASK 0x00f00000 /* Channel number */
-#define SPCS_CHANNELNUM_UNSPEC 0x00000000 /* Unspecified channel number */
-#define SPCS_CHANNELNUM_LEFT 0x00100000 /* Left channel */
-#define SPCS_CHANNELNUM_RIGHT 0x00200000 /* Right channel */
-#define SPCS_SOURCENUMMASK 0x000f0000 /* Source number */
-#define SPCS_SOURCENUM_UNSPEC 0x00000000 /* Unspecified source number */
-#define SPCS_GENERATIONSTATUS 0x00008000 /* Originality flag (see IEC-958 spec) */
-#define SPCS_CATEGORYCODEMASK 0x00007f00 /* Category code (see IEC-958 spec) */
-#define SPCS_MODEMASK 0x000000c0 /* Mode (see IEC-958 spec) */
-#define SPCS_EMPHASISMASK 0x00000038 /* Emphasis */
-#define SPCS_EMPHASIS_NONE 0x00000000 /* No emphasis */
-#define SPCS_EMPHASIS_50_15 0x00000008 /* 50/15 usec 2 channel */
-#define SPCS_COPYRIGHT 0x00000004 /* Copyright asserted flag -- do not modify */
-#define SPCS_NOTAUDIODATA 0x00000002 /* 0 = Digital audio, 1 = not audio */
-#define SPCS_PROFESSIONAL 0x00000001 /* 0 = Consumer (IEC-958), 1 = pro (AES3-1992) */
-
-/* 0x57: Not used */
-
-/* The 32-bit CLIx and SOLx registers all have one bit per channel control/status */
-#define CLIEL 0x58 /* Channel loop interrupt enable low register */
-
-#define CLIEH 0x59 /* Channel loop interrupt enable high register */
-
-#define CLIPL 0x5a /* Channel loop interrupt pending low register */
-
-#define CLIPH 0x5b /* Channel loop interrupt pending high register */
-
-#define SOLEL 0x5c /* Stop on loop enable low register */
-
-#define SOLEH 0x5d /* Stop on loop enable high register */
-
-#define SPBYPASS 0x5e /* SPDIF BYPASS mode register */
-#define SPBYPASS_SPDIF0_MASK 0x00000003 /* SPDIF 0 bypass mode */
-#define SPBYPASS_SPDIF1_MASK 0x0000000c /* SPDIF 1 bypass mode */
-/* bypass mode: 0 - DSP; 1 - SPDIF A, 2 - SPDIF B, 3 - SPDIF C */
-#define SPBYPASS_FORMAT 0x00000f00 /* If 1, SPDIF XX uses 24 bit, if 0 - 20 bit */
-
-#define AC97SLOT 0x5f /* additional AC97 slots enable bits */
-#define AC97SLOT_REAR_RIGHT 0x01 /* Rear left */
-#define AC97SLOT_REAR_LEFT 0x02 /* Rear right */
-#define AC97SLOT_CNTR 0x10 /* Center enable */
-#define AC97SLOT_LFE 0x20 /* LFE enable */
-
-/* PCB Revision */
-#define A_PCB 0x5f
-
-// NOTE: 0x60,61,62: 64-bit
-#define CDSRCS 0x60 /* CD-ROM Sample Rate Converter status register */
-
-#define GPSRCS 0x61 /* General Purpose SPDIF sample rate cvt status */
-
-#define ZVSRCS 0x62 /* ZVideo sample rate converter status */
- /* NOTE: This one has no SPDIFLOCKED field */
- /* Assumes sample lock */
-
-/* These three bitfields apply to CDSRCS, GPSRCS, and (except as noted) ZVSRCS. */
-#define SRCS_SPDIFVALID 0x04000000 /* SPDIF stream valid */
-#define SRCS_SPDIFLOCKED 0x02000000 /* SPDIF stream locked */
-#define SRCS_RATELOCKED 0x01000000 /* Sample rate locked */
-#define SRCS_ESTSAMPLERATE 0x0007ffff /* Do not modify this field. */
-
-/* Note that these values can vary +/- by a small amount */
-#define SRCS_SPDIFRATE_44 0x0003acd9
-#define SRCS_SPDIFRATE_48 0x00040000
-#define SRCS_SPDIFRATE_96 0x00080000
-
-#define MICIDX 0x63 /* Microphone recording buffer index register */
-#define MICIDX_MASK 0x0000ffff /* 16-bit value */
-#define MICIDX_IDX 0x10000063
-
-#define ADCIDX 0x64 /* ADC recording buffer index register */
-#define ADCIDX_MASK 0x0000ffff /* 16 bit index field */
-#define ADCIDX_IDX 0x10000064
-
-#define A_ADCIDX 0x63
-#define A_ADCIDX_IDX 0x10000063
-
-#define A_MICIDX 0x64
-#define A_MICIDX_IDX 0x10000064
-
-#define FXIDX 0x65 /* FX recording buffer index register */
-#define FXIDX_MASK 0x0000ffff /* 16-bit value */
-#define FXIDX_IDX 0x10000065
-
-/* The 32-bit HLIx and HLIPx registers all have one bit per channel control/status */
-#define HLIEL 0x66 /* Channel half loop interrupt enable low register */
-
-#define HLIEH 0x67 /* Channel half loop interrupt enable high register */
-
-#define HLIPL 0x68 /* Channel half loop interrupt pending low register */
-
-#define HLIPH 0x69 /* Channel half loop interrupt pending high register */
-
-/* S/PDIF Host Record Index (bypasses SRC) */
-#define A_SPRI 0x6a
-/* S/PDIF Host Record Address */
-#define A_SPRA 0x6b
-/* S/PDIF Host Record Control */
-#define A_SPRC 0x6c
-/* Delayed Interrupt Counter & Enable */
-#define A_DICE 0x6d
-/* Tank Table Base */
-#define A_TTB 0x6e
-/* Tank Delay Offset */
-#define A_TDOF 0x6f
-
-/* This is the MPU port on the card (via the game port) */
-#define A_MUDATA1 0x70
-#define A_MUCMD1 0x71
-#define A_MUSTAT1 A_MUCMD1
-
-/* This is the MPU port on the Audigy Drive */
-#define A_MUDATA2 0x72
-#define A_MUCMD2 0x73
-#define A_MUSTAT2 A_MUCMD2
-
-/* The next two are the Audigy equivalent of FXWC */
-/* the Audigy can record any output (16bit, 48kHz, up to 64 channel simultaneously) */
-/* Each bit selects a channel for recording */
-#define A_FXWC1 0x74 /* Selects 0x7f-0x60 for FX recording */
-#define A_FXWC2 0x75 /* Selects 0x9f-0x80 for FX recording */
-
-/* Extended Hardware Control */
-#define A_SPDIF_SAMPLERATE 0x76 /* Set the sample rate of SPDIF output */
-#define A_SAMPLE_RATE 0x76 /* Various sample rate settings. */
-#define A_SAMPLE_RATE_NOT_USED 0x0ffc111e /* Bits that are not used and cannot be set. */
-#define A_SAMPLE_RATE_UNKNOWN 0xf0030001 /* Bits that can be set, but have unknown use. */
-#define A_SPDIF_RATE_MASK 0x000000e0 /* Any other values for rates, just use 48000 */
-#define A_SPDIF_48000 0x00000000
-#define A_SPDIF_192000 0x00000020
-#define A_SPDIF_96000 0x00000040
-#define A_SPDIF_44100 0x00000080
-
-#define A_I2S_CAPTURE_RATE_MASK 0x00000e00 /* This sets the capture PCM rate, but it is */
-#define A_I2S_CAPTURE_48000 0x00000000 /* unclear if this sets the ADC rate as well. */
-#define A_I2S_CAPTURE_192000 0x00000200
-#define A_I2S_CAPTURE_96000 0x00000400
-#define A_I2S_CAPTURE_44100 0x00000800
-
-#define A_PCM_RATE_MASK 0x0000e000 /* This sets the playback PCM rate on the P16V */
-#define A_PCM_48000 0x00000000
-#define A_PCM_192000 0x00002000
-#define A_PCM_96000 0x00004000
-#define A_PCM_44100 0x00008000
-
-/* I2S0 Sample Rate Tracker Status */
-#define A_SRT3 0x77
-
-/* I2S1 Sample Rate Tracker Status */
-#define A_SRT4 0x78
-
-/* I2S2 Sample Rate Tracker Status */
-#define A_SRT5 0x79
-/* - default to 0x01080000 on my audigy 2 ZS --rlrevell */
-
-/* Tank Table DMA Address */
-#define A_TTDA 0x7a
-/* Tank Table DMA Data */
-#define A_TTDD 0x7b
-
-#define A_FXRT2 0x7c
-#define A_FXRT_CHANNELE 0x0000003f /* Effects send bus number for channel's effects send E */
-#define A_FXRT_CHANNELF 0x00003f00 /* Effects send bus number for channel's effects send F */
-#define A_FXRT_CHANNELG 0x003f0000 /* Effects send bus number for channel's effects send G */
-#define A_FXRT_CHANNELH 0x3f000000 /* Effects send bus number for channel's effects send H */
-
-#define A_SENDAMOUNTS 0x7d
-#define A_FXSENDAMOUNT_E_MASK 0xFF000000
-#define A_FXSENDAMOUNT_F_MASK 0x00FF0000
-#define A_FXSENDAMOUNT_G_MASK 0x0000FF00
-#define A_FXSENDAMOUNT_H_MASK 0x000000FF
-/* 0x7c, 0x7e "high bit is used for filtering" */
-
-/* The send amounts for this one are the same as used with the emu10k1 */
-#define A_FXRT1 0x7e
-#define A_FXRT_CHANNELA 0x0000003f
-#define A_FXRT_CHANNELB 0x00003f00
-#define A_FXRT_CHANNELC 0x003f0000
-#define A_FXRT_CHANNELD 0x3f000000
-
-/* 0x7f: Not used */
-/* Each FX general purpose register is 32 bits in length, all bits are used */
-#define FXGPREGBASE 0x100 /* FX general purpose registers base */
-#define A_FXGPREGBASE 0x400 /* Audigy GPRs, 0x400 to 0x5ff */
-
-#define A_TANKMEMCTLREGBASE 0x100 /* Tank memory control registers base - only for Audigy */
-#define A_TANKMEMCTLREG_MASK 0x1f /* only 5 bits used - only for Audigy */
-
-/* Tank audio data is logarithmically compressed down to 16 bits before writing to TRAM and is */
-/* decompressed back to 20 bits on a read. There are a total of 160 locations, the last 32 */
-/* locations are for external TRAM. */
-#define TANKMEMDATAREGBASE 0x200 /* Tank memory data registers base */
-#define TANKMEMDATAREG_MASK 0x000fffff /* 20 bit tank audio data field */
-
-/* Combined address field and memory opcode or flag field. 160 locations, last 32 are external */
-#define TANKMEMADDRREGBASE 0x300 /* Tank memory address registers base */
-#define TANKMEMADDRREG_ADDR_MASK 0x000fffff /* 20 bit tank address field */
-#define TANKMEMADDRREG_CLEAR 0x00800000 /* Clear tank memory */
-#define TANKMEMADDRREG_ALIGN 0x00400000 /* Align read or write relative to tank access */
-#define TANKMEMADDRREG_WRITE 0x00200000 /* Write to tank memory */
-#define TANKMEMADDRREG_READ 0x00100000 /* Read from tank memory */
-
-#define MICROCODEBASE 0x400 /* Microcode data base address */
-
-/* Each DSP microcode instruction is mapped into 2 doublewords */
-/* NOTE: When writing, always write the LO doubleword first. Reads can be in either order. */
-#define LOWORD_OPX_MASK 0x000ffc00 /* Instruction operand X */
-#define LOWORD_OPY_MASK 0x000003ff /* Instruction operand Y */
-#define HIWORD_OPCODE_MASK 0x00f00000 /* Instruction opcode */
-#define HIWORD_RESULT_MASK 0x000ffc00 /* Instruction result */
-#define HIWORD_OPA_MASK 0x000003ff /* Instruction operand A */
-
-
-/* Audigy Soundcard have a different instruction format */
-#define A_MICROCODEBASE 0x600
-#define A_LOWORD_OPY_MASK 0x000007ff
-#define A_LOWORD_OPX_MASK 0x007ff000
-#define A_HIWORD_OPCODE_MASK 0x0f000000
-#define A_HIWORD_RESULT_MASK 0x007ff000
-#define A_HIWORD_OPA_MASK 0x000007ff
-
-/************************************************************************************************/
-/* EMU1010m HANA FPGA registers */
-/************************************************************************************************/
-#define EMU_HANA_DESTHI 0x00 /* 0000xxx 3 bits Link Destination */
-#define EMU_HANA_DESTLO 0x01 /* 00xxxxx 5 bits */
-#define EMU_HANA_SRCHI 0x02 /* 0000xxx 3 bits Link Source */
-#define EMU_HANA_SRCLO 0x03 /* 00xxxxx 5 bits */
-#define EMU_HANA_DOCK_PWR 0x04 /* 000000x 1 bits Audio Dock power */
-#define EMU_HANA_DOCK_PWR_ON 0x01 /* Audio Dock power on */
-#define EMU_HANA_WCLOCK 0x05 /* 0000xxx 3 bits Word Clock source select */
- /* Must be written after power on to reset DLL */
- /* One is unable to detect the Audio dock without this */
-#define EMU_HANA_WCLOCK_SRC_MASK 0x07
-#define EMU_HANA_WCLOCK_INT_48K 0x00
-#define EMU_HANA_WCLOCK_INT_44_1K 0x01
-#define EMU_HANA_WCLOCK_HANA_SPDIF_IN 0x02
-#define EMU_HANA_WCLOCK_HANA_ADAT_IN 0x03
-#define EMU_HANA_WCLOCK_SYNC_BNCN 0x04
-#define EMU_HANA_WCLOCK_2ND_HANA 0x05
-#define EMU_HANA_WCLOCK_SRC_RESERVED 0x06
-#define EMU_HANA_WCLOCK_OFF 0x07 /* For testing, forces fallback to DEFCLOCK */
-#define EMU_HANA_WCLOCK_MULT_MASK 0x18
-#define EMU_HANA_WCLOCK_1X 0x00
-#define EMU_HANA_WCLOCK_2X 0x08
-#define EMU_HANA_WCLOCK_4X 0x10
-#define EMU_HANA_WCLOCK_MULT_RESERVED 0x18
-
-#define EMU_HANA_DEFCLOCK 0x06 /* 000000x 1 bits Default Word Clock */
-#define EMU_HANA_DEFCLOCK_48K 0x00
-#define EMU_HANA_DEFCLOCK_44_1K 0x01
-
-#define EMU_HANA_UNMUTE 0x07 /* 000000x 1 bits Mute all audio outputs */
-#define EMU_MUTE 0x00
-#define EMU_UNMUTE 0x01
-
-#define EMU_HANA_FPGA_CONFIG 0x08 /* 00000xx 2 bits Config control of FPGAs */
-#define EMU_HANA_FPGA_CONFIG_AUDIODOCK 0x01 /* Set in order to program FPGA on Audio Dock */
-#define EMU_HANA_FPGA_CONFIG_HANA 0x02 /* Set in order to program FPGA on Hana */
-
-#define EMU_HANA_IRQ_ENABLE 0x09 /* 000xxxx 4 bits IRQ Enable */
-#define EMU_HANA_IRQ_WCLK_CHANGED 0x01
-#define EMU_HANA_IRQ_ADAT 0x02
-#define EMU_HANA_IRQ_DOCK 0x04
-#define EMU_HANA_IRQ_DOCK_LOST 0x08
-
-#define EMU_HANA_SPDIF_MODE 0x0a /* 00xxxxx 5 bits SPDIF MODE */
-#define EMU_HANA_SPDIF_MODE_TX_COMSUMER 0x00
-#define EMU_HANA_SPDIF_MODE_TX_PRO 0x01
-#define EMU_HANA_SPDIF_MODE_TX_NOCOPY 0x02
-#define EMU_HANA_SPDIF_MODE_RX_COMSUMER 0x00
-#define EMU_HANA_SPDIF_MODE_RX_PRO 0x04
-#define EMU_HANA_SPDIF_MODE_RX_NOCOPY 0x08
-#define EMU_HANA_SPDIF_MODE_RX_INVALID 0x10
-
-#define EMU_HANA_OPTICAL_TYPE 0x0b /* 00000xx 2 bits ADAT or SPDIF in/out */
-#define EMU_HANA_OPTICAL_IN_SPDIF 0x00
-#define EMU_HANA_OPTICAL_IN_ADAT 0x01
-#define EMU_HANA_OPTICAL_OUT_SPDIF 0x00
-#define EMU_HANA_OPTICAL_OUT_ADAT 0x02
-
-#define EMU_HANA_MIDI_IN 0x0c /* 000000x 1 bit Control MIDI */
-#define EMU_HANA_MIDI_IN_FROM_HAMOA 0x00 /* HAMOA MIDI in to Alice 2 MIDI B */
-#define EMU_HANA_MIDI_IN_FROM_DOCK 0x01 /* Audio Dock MIDI in to Alice 2 MIDI B */
-
-#define EMU_HANA_DOCK_LEDS_1 0x0d /* 000xxxx 4 bit Audio Dock LEDs */
-#define EMU_HANA_DOCK_LEDS_1_MIDI1 0x01 /* MIDI 1 LED on */
-#define EMU_HANA_DOCK_LEDS_1_MIDI2 0x02 /* MIDI 2 LED on */
-#define EMU_HANA_DOCK_LEDS_1_SMPTE_IN 0x04 /* SMPTE IN LED on */
-#define EMU_HANA_DOCK_LEDS_1_SMPTE_OUT 0x08 /* SMPTE OUT LED on */
-
-#define EMU_HANA_DOCK_LEDS_2 0x0e /* 0xxxxxx 6 bit Audio Dock LEDs */
-#define EMU_HANA_DOCK_LEDS_2_44K 0x01 /* 44.1 kHz LED on */
-#define EMU_HANA_DOCK_LEDS_2_48K 0x02 /* 48 kHz LED on */
-#define EMU_HANA_DOCK_LEDS_2_96K 0x04 /* 96 kHz LED on */
-#define EMU_HANA_DOCK_LEDS_2_192K 0x08 /* 192 kHz LED on */
-#define EMU_HANA_DOCK_LEDS_2_LOCK 0x10 /* LOCK LED on */
-#define EMU_HANA_DOCK_LEDS_2_EXT 0x20 /* EXT LED on */
-
-#define EMU_HANA_DOCK_LEDS_3 0x0f /* 0xxxxxx 6 bit Audio Dock LEDs */
-#define EMU_HANA_DOCK_LEDS_3_CLIP_A 0x01 /* Mic A Clip LED on */
-#define EMU_HANA_DOCK_LEDS_3_CLIP_B 0x02 /* Mic B Clip LED on */
-#define EMU_HANA_DOCK_LEDS_3_SIGNAL_A 0x04 /* Signal A Clip LED on */
-#define EMU_HANA_DOCK_LEDS_3_SIGNAL_B 0x08 /* Signal B Clip LED on */
-#define EMU_HANA_DOCK_LEDS_3_MANUAL_CLIP 0x10 /* Manual Clip detection */
-#define EMU_HANA_DOCK_LEDS_3_MANUAL_SIGNAL 0x20 /* Manual Signal detection */
-
-#define EMU_HANA_ADC_PADS 0x10 /* 0000xxx 3 bit Audio Dock ADC 14dB pads */
-#define EMU_HANA_DOCK_ADC_PAD1 0x01 /* 14dB Attenuation on Audio Dock ADC 1 */
-#define EMU_HANA_DOCK_ADC_PAD2 0x02 /* 14dB Attenuation on Audio Dock ADC 2 */
-#define EMU_HANA_DOCK_ADC_PAD3 0x04 /* 14dB Attenuation on Audio Dock ADC 3 */
-#define EMU_HANA_0202_ADC_PAD1 0x08 /* 14dB Attenuation on 0202 ADC 1 */
-
-#define EMU_HANA_DOCK_MISC 0x11 /* 0xxxxxx 6 bit Audio Dock misc bits */
-#define EMU_HANA_DOCK_DAC1_MUTE 0x01 /* DAC 1 Mute */
-#define EMU_HANA_DOCK_DAC2_MUTE 0x02 /* DAC 2 Mute */
-#define EMU_HANA_DOCK_DAC3_MUTE 0x04 /* DAC 3 Mute */
-#define EMU_HANA_DOCK_DAC4_MUTE 0x08 /* DAC 4 Mute */
-#define EMU_HANA_DOCK_PHONES_192_DAC1 0x00 /* DAC 1 Headphones source at 192kHz */
-#define EMU_HANA_DOCK_PHONES_192_DAC2 0x10 /* DAC 2 Headphones source at 192kHz */
-#define EMU_HANA_DOCK_PHONES_192_DAC3 0x20 /* DAC 3 Headphones source at 192kHz */
-#define EMU_HANA_DOCK_PHONES_192_DAC4 0x30 /* DAC 4 Headphones source at 192kHz */
-
-#define EMU_HANA_MIDI_OUT 0x12 /* 00xxxxx 5 bit Source for each MIDI out port */
-#define EMU_HANA_MIDI_OUT_0202 0x01 /* 0202 MIDI from Alice 2. 0 = A, 1 = B */
-#define EMU_HANA_MIDI_OUT_DOCK1 0x02 /* Audio Dock MIDI1 front, from Alice 2. 0 = A, 1 = B */
-#define EMU_HANA_MIDI_OUT_DOCK2 0x04 /* Audio Dock MIDI2 rear, from Alice 2. 0 = A, 1 = B */
-#define EMU_HANA_MIDI_OUT_SYNC2 0x08 /* Sync card. Not the actual MIDI out jack. 0 = A, 1 = B */
-#define EMU_HANA_MIDI_OUT_LOOP 0x10 /* 0 = bits (3:0) normal. 1 = MIDI loopback enabled. */
-
-#define EMU_HANA_DAC_PADS 0x13 /* 00xxxxx 5 bit DAC 14dB attenuation pads */
-#define EMU_HANA_DOCK_DAC_PAD1 0x01 /* 14dB Attenuation on AudioDock DAC 1. Left and Right */
-#define EMU_HANA_DOCK_DAC_PAD2 0x02 /* 14dB Attenuation on AudioDock DAC 2. Left and Right */
-#define EMU_HANA_DOCK_DAC_PAD3 0x04 /* 14dB Attenuation on AudioDock DAC 3. Left and Right */
-#define EMU_HANA_DOCK_DAC_PAD4 0x08 /* 14dB Attenuation on AudioDock DAC 4. Left and Right */
-#define EMU_HANA_0202_DAC_PAD1 0x10 /* 14dB Attenuation on 0202 DAC 1. Left and Right */
-
-/* 0x14 - 0x1f Unused R/W registers */
-#define EMU_HANA_IRQ_STATUS 0x20 /* 000xxxx 4 bits IRQ Status */
-#if 0 /* Already defined for reg 0x09 IRQ_ENABLE */
-#define EMU_HANA_IRQ_WCLK_CHANGED 0x01
-#define EMU_HANA_IRQ_ADAT 0x02
-#define EMU_HANA_IRQ_DOCK 0x04
-#define EMU_HANA_IRQ_DOCK_LOST 0x08
-#endif
-
-#define EMU_HANA_OPTION_CARDS 0x21 /* 000xxxx 4 bits Presence of option cards */
-#define EMU_HANA_OPTION_HAMOA 0x01 /* HAMOA card present */
-#define EMU_HANA_OPTION_SYNC 0x02 /* Sync card present */
-#define EMU_HANA_OPTION_DOCK_ONLINE 0x04 /* Audio Dock online and FPGA configured */
-#define EMU_HANA_OPTION_DOCK_OFFLINE 0x08 /* Audio Dock online and FPGA not configured */
-
-#define EMU_HANA_ID 0x22 /* 1010101 7 bits ID byte & 0x7f = 0x55 */
-
-#define EMU_HANA_MAJOR_REV 0x23 /* 0000xxx 3 bit Hana FPGA Major rev */
-#define EMU_HANA_MINOR_REV 0x24 /* 0000xxx 3 bit Hana FPGA Minor rev */
-
-#define EMU_DOCK_MAJOR_REV 0x25 /* 0000xxx 3 bit Audio Dock FPGA Major rev */
-#define EMU_DOCK_MINOR_REV 0x26 /* 0000xxx 3 bit Audio Dock FPGA Minor rev */
-
-#define EMU_DOCK_BOARD_ID 0x27 /* 00000xx 2 bits Audio Dock ID pins */
-#define EMU_DOCK_BOARD_ID0 0x00 /* ID bit 0 */
-#define EMU_DOCK_BOARD_ID1 0x03 /* ID bit 1 */
-
-#define EMU_HANA_WC_SPDIF_HI 0x28 /* 0xxxxxx 6 bit SPDIF IN Word clock, upper 6 bits */
-#define EMU_HANA_WC_SPDIF_LO 0x29 /* 0xxxxxx 6 bit SPDIF IN Word clock, lower 6 bits */
-
-#define EMU_HANA_WC_ADAT_HI 0x2a /* 0xxxxxx 6 bit ADAT IN Word clock, upper 6 bits */
-#define EMU_HANA_WC_ADAT_LO 0x2b /* 0xxxxxx 6 bit ADAT IN Word clock, lower 6 bits */
-
-#define EMU_HANA_WC_BNC_LO 0x2c /* 0xxxxxx 6 bit BNC IN Word clock, lower 6 bits */
-#define EMU_HANA_WC_BNC_HI 0x2d /* 0xxxxxx 6 bit BNC IN Word clock, upper 6 bits */
-
-#define EMU_HANA2_WC_SPDIF_HI 0x2e /* 0xxxxxx 6 bit HANA2 SPDIF IN Word clock, upper 6 bits */
-#define EMU_HANA2_WC_SPDIF_LO 0x2f /* 0xxxxxx 6 bit HANA2 SPDIF IN Word clock, lower 6 bits */
-/* 0x30 - 0x3f Unused Read only registers */
-
-/************************************************************************************************/
-/* EMU1010m HANA Destinations */
-/************************************************************************************************/
-/* Hana, original 1010,1212,1820 using Alice2
- * Destiniations for SRATEX = 1X rates: 44.1 kHz or 48 kHz
- * 0x00, 0x00-0x0f: 16 EMU32 channels to Alice2
- * 0x01, 0x10-0x1f: 32 Elink channels to Audio Dock
- * 0x01, 0x00: Dock DAC 1 Left
- * 0x01, 0x04: Dock DAC 1 Right
- * 0x01, 0x08: Dock DAC 2 Left
- * 0x01, 0x0c: Dock DAC 2 Right
- * 0x01, 0x10: Dock DAC 3 Left
- * 0x01, 0x12: PHONES Left
- * 0x01, 0x14: Dock DAC 3 Right
- * 0x01, 0x16: PHONES Right
- * 0x01, 0x18: Dock DAC 4 Left
- * 0x01, 0x1a: S/PDIF Left
- * 0x01, 0x1c: Dock DAC 4 Right
- * 0x01, 0x1e: S/PDIF Right
- * 0x02, 0x00: Hana S/PDIF Left
- * 0x02, 0x01: Hana S/PDIF Right
- * 0x03, 0x00: Hanoa DAC Left
- * 0x03, 0x01: Hanoa DAC Right
- * 0x04, 0x00-0x07: Hana ADAT
- * 0x05, 0x00: I2S0 Left to Alice2
- * 0x05, 0x01: I2S0 Right to Alice2
- * 0x06, 0x00: I2S0 Left to Alice2
- * 0x06, 0x01: I2S0 Right to Alice2
- * 0x07, 0x00: I2S0 Left to Alice2
- * 0x07, 0x01: I2S0 Right to Alice2
- *
- * Hana2 never released, but used Tina
- * Not needed.
- *
- * Hana3, rev2 1010,1212,1616 using Tina
- * Destinations for SRATEX = 1X rates: 44.1 kHz or 48 kHz
- * 0x00, 0x00-0x0f: 16 EMU32A channels to Tina
- * 0x01, 0x10-0x1f: 32 EDI channels to Micro Dock
- * 0x01, 0x00: Dock DAC 1 Left
- * 0x01, 0x04: Dock DAC 1 Right
- * 0x01, 0x08: Dock DAC 2 Left
- * 0x01, 0x0c: Dock DAC 2 Right
- * 0x01, 0x10: Dock DAC 3 Left
- * 0x01, 0x12: Dock S/PDIF Left
- * 0x01, 0x14: Dock DAC 3 Right
- * 0x01, 0x16: Dock S/PDIF Right
- * 0x01, 0x18-0x1f: Dock ADAT 0-7
- * 0x02, 0x00: Hana3 S/PDIF Left
- * 0x02, 0x01: Hana3 S/PDIF Right
- * 0x03, 0x00: Hanoa DAC Left
- * 0x03, 0x01: Hanoa DAC Right
- * 0x04, 0x00-0x07: Hana3 ADAT 0-7
- * 0x05, 0x00-0x0f: 16 EMU32B channels to Tina
- * 0x06-0x07: Not used
- *
- * HanaLite, rev1 0404 using Alice2
- * Destiniations for SRATEX = 1X rates: 44.1 kHz or 48 kHz
- * 0x00, 0x00-0x0f: 16 EMU32 channels to Alice2
- * 0x01: Not used
- * 0x02, 0x00: S/PDIF Left
- * 0x02, 0x01: S/PDIF Right
- * 0x03, 0x00: DAC Left
- * 0x03, 0x01: DAC Right
- * 0x04-0x07: Not used
- *
- * HanaLiteLite, rev2 0404 using Alice2
- * Destiniations for SRATEX = 1X rates: 44.1 kHz or 48 kHz
- * 0x00, 0x00-0x0f: 16 EMU32 channels to Alice2
- * 0x01: Not used
- * 0x02, 0x00: S/PDIF Left
- * 0x02, 0x01: S/PDIF Right
- * 0x03, 0x00: DAC Left
- * 0x03, 0x01: DAC Right
- * 0x04-0x07: Not used
- *
- * Mana, Cardbus 1616 using Tina2
- * Destinations for SRATEX = 1X rates: 44.1 kHz or 48 kHz
- * 0x00, 0x00-0x0f: 16 EMU32A channels to Tina2
- * 0x01, 0x10-0x1f: 32 EDI channels to Micro Dock
- * 0x01, 0x00: Dock DAC 1 Left
- * 0x01, 0x04: Dock DAC 1 Right
- * 0x01, 0x08: Dock DAC 2 Left
- * 0x01, 0x0c: Dock DAC 2 Right
- * 0x01, 0x10: Dock DAC 3 Left
- * 0x01, 0x12: Dock S/PDIF Left
- * 0x01, 0x14: Dock DAC 3 Right
- * 0x01, 0x16: Dock S/PDIF Right
- * 0x01, 0x18-0x1f: Dock ADAT 0-7
- * 0x02: Not used
- * 0x03, 0x00: Mana DAC Left
- * 0x03, 0x01: Mana DAC Right
- * 0x04, 0x00-0x0f: 16 EMU32B channels to Tina2
- * 0x05-0x07: Not used
- *
- *
- */
-/* 32-bit destinations of signal in the Hana FPGA. Destinations are either
- * physical outputs of Hana, or outputs going to Alice2 (audigy) for capture
- * - 16 x EMU_DST_ALICE2_EMU32_X.
- */
-/* EMU32 = 32-bit serial channel between Alice2 (audigy) and Hana (FPGA) */
-/* EMU_DST_ALICE2_EMU32_X - data channels from Hana to Alice2 used for capture.
- * Which data is fed into a EMU_DST_ALICE2_EMU32_X channel in Hana depends on
- * setup of mixer control for each destination - see emumixer.c -
- * snd_emu1010_output_enum_ctls[], snd_emu1010_input_enum_ctls[]
- */
-#define EMU_DST_ALICE2_EMU32_0 0x000f /* 16 EMU32 channels to Alice2 +0 to +0xf */
-#define EMU_DST_ALICE2_EMU32_1 0x0000 /* 16 EMU32 channels to Alice2 +0 to +0xf */
-#define EMU_DST_ALICE2_EMU32_2 0x0001 /* 16 EMU32 channels to Alice2 +0 to +0xf */
-#define EMU_DST_ALICE2_EMU32_3 0x0002 /* 16 EMU32 channels to Alice2 +0 to +0xf */
-#define EMU_DST_ALICE2_EMU32_4 0x0003 /* 16 EMU32 channels to Alice2 +0 to +0xf */
-#define EMU_DST_ALICE2_EMU32_5 0x0004 /* 16 EMU32 channels to Alice2 +0 to +0xf */
-#define EMU_DST_ALICE2_EMU32_6 0x0005 /* 16 EMU32 channels to Alice2 +0 to +0xf */
-#define EMU_DST_ALICE2_EMU32_7 0x0006 /* 16 EMU32 channels to Alice2 +0 to +0xf */
-#define EMU_DST_ALICE2_EMU32_8 0x0007 /* 16 EMU32 channels to Alice2 +0 to +0xf */
-#define EMU_DST_ALICE2_EMU32_9 0x0008 /* 16 EMU32 channels to Alice2 +0 to +0xf */
-#define EMU_DST_ALICE2_EMU32_A 0x0009 /* 16 EMU32 channels to Alice2 +0 to +0xf */
-#define EMU_DST_ALICE2_EMU32_B 0x000a /* 16 EMU32 channels to Alice2 +0 to +0xf */
-#define EMU_DST_ALICE2_EMU32_C 0x000b /* 16 EMU32 channels to Alice2 +0 to +0xf */
-#define EMU_DST_ALICE2_EMU32_D 0x000c /* 16 EMU32 channels to Alice2 +0 to +0xf */
-#define EMU_DST_ALICE2_EMU32_E 0x000d /* 16 EMU32 channels to Alice2 +0 to +0xf */
-#define EMU_DST_ALICE2_EMU32_F 0x000e /* 16 EMU32 channels to Alice2 +0 to +0xf */
-#define EMU_DST_DOCK_DAC1_LEFT1 0x0100 /* Audio Dock DAC1 Left, 1st or 48kHz only */
-#define EMU_DST_DOCK_DAC1_LEFT2 0x0101 /* Audio Dock DAC1 Left, 2nd or 96kHz */
-#define EMU_DST_DOCK_DAC1_LEFT3 0x0102 /* Audio Dock DAC1 Left, 3rd or 192kHz */
-#define EMU_DST_DOCK_DAC1_LEFT4 0x0103 /* Audio Dock DAC1 Left, 4th or 192kHz */
-#define EMU_DST_DOCK_DAC1_RIGHT1 0x0104 /* Audio Dock DAC1 Right, 1st or 48kHz only */
-#define EMU_DST_DOCK_DAC1_RIGHT2 0x0105 /* Audio Dock DAC1 Right, 2nd or 96kHz */
-#define EMU_DST_DOCK_DAC1_RIGHT3 0x0106 /* Audio Dock DAC1 Right, 3rd or 192kHz */
-#define EMU_DST_DOCK_DAC1_RIGHT4 0x0107 /* Audio Dock DAC1 Right, 4th or 192kHz */
-#define EMU_DST_DOCK_DAC2_LEFT1 0x0108 /* Audio Dock DAC2 Left, 1st or 48kHz only */
-#define EMU_DST_DOCK_DAC2_LEFT2 0x0109 /* Audio Dock DAC2 Left, 2nd or 96kHz */
-#define EMU_DST_DOCK_DAC2_LEFT3 0x010a /* Audio Dock DAC2 Left, 3rd or 192kHz */
-#define EMU_DST_DOCK_DAC2_LEFT4 0x010b /* Audio Dock DAC2 Left, 4th or 192kHz */
-#define EMU_DST_DOCK_DAC2_RIGHT1 0x010c /* Audio Dock DAC2 Right, 1st or 48kHz only */
-#define EMU_DST_DOCK_DAC2_RIGHT2 0x010d /* Audio Dock DAC2 Right, 2nd or 96kHz */
-#define EMU_DST_DOCK_DAC2_RIGHT3 0x010e /* Audio Dock DAC2 Right, 3rd or 192kHz */
-#define EMU_DST_DOCK_DAC2_RIGHT4 0x010f /* Audio Dock DAC2 Right, 4th or 192kHz */
-#define EMU_DST_DOCK_DAC3_LEFT1 0x0110 /* Audio Dock DAC1 Left, 1st or 48kHz only */
-#define EMU_DST_DOCK_DAC3_LEFT2 0x0111 /* Audio Dock DAC1 Left, 2nd or 96kHz */
-#define EMU_DST_DOCK_DAC3_LEFT3 0x0112 /* Audio Dock DAC1 Left, 3rd or 192kHz */
-#define EMU_DST_DOCK_DAC3_LEFT4 0x0113 /* Audio Dock DAC1 Left, 4th or 192kHz */
-#define EMU_DST_DOCK_PHONES_LEFT1 0x0112 /* Audio Dock PHONES Left, 1st or 48kHz only */
-#define EMU_DST_DOCK_PHONES_LEFT2 0x0113 /* Audio Dock PHONES Left, 2nd or 96kHz */
-#define EMU_DST_DOCK_DAC3_RIGHT1 0x0114 /* Audio Dock DAC1 Right, 1st or 48kHz only */
-#define EMU_DST_DOCK_DAC3_RIGHT2 0x0115 /* Audio Dock DAC1 Right, 2nd or 96kHz */
-#define EMU_DST_DOCK_DAC3_RIGHT3 0x0116 /* Audio Dock DAC1 Right, 3rd or 192kHz */
-#define EMU_DST_DOCK_DAC3_RIGHT4 0x0117 /* Audio Dock DAC1 Right, 4th or 192kHz */
-#define EMU_DST_DOCK_PHONES_RIGHT1 0x0116 /* Audio Dock PHONES Right, 1st or 48kHz only */
-#define EMU_DST_DOCK_PHONES_RIGHT2 0x0117 /* Audio Dock PHONES Right, 2nd or 96kHz */
-#define EMU_DST_DOCK_DAC4_LEFT1 0x0118 /* Audio Dock DAC2 Left, 1st or 48kHz only */
-#define EMU_DST_DOCK_DAC4_LEFT2 0x0119 /* Audio Dock DAC2 Left, 2nd or 96kHz */
-#define EMU_DST_DOCK_DAC4_LEFT3 0x011a /* Audio Dock DAC2 Left, 3rd or 192kHz */
-#define EMU_DST_DOCK_DAC4_LEFT4 0x011b /* Audio Dock DAC2 Left, 4th or 192kHz */
-#define EMU_DST_DOCK_SPDIF_LEFT1 0x011a /* Audio Dock SPDIF Left, 1st or 48kHz only */
-#define EMU_DST_DOCK_SPDIF_LEFT2 0x011b /* Audio Dock SPDIF Left, 2nd or 96kHz */
-#define EMU_DST_DOCK_DAC4_RIGHT1 0x011c /* Audio Dock DAC2 Right, 1st or 48kHz only */
-#define EMU_DST_DOCK_DAC4_RIGHT2 0x011d /* Audio Dock DAC2 Right, 2nd or 96kHz */
-#define EMU_DST_DOCK_DAC4_RIGHT3 0x011e /* Audio Dock DAC2 Right, 3rd or 192kHz */
-#define EMU_DST_DOCK_DAC4_RIGHT4 0x011f /* Audio Dock DAC2 Right, 4th or 192kHz */
-#define EMU_DST_DOCK_SPDIF_RIGHT1 0x011e /* Audio Dock SPDIF Right, 1st or 48kHz only */
-#define EMU_DST_DOCK_SPDIF_RIGHT2 0x011f /* Audio Dock SPDIF Right, 2nd or 96kHz */
-#define EMU_DST_HANA_SPDIF_LEFT1 0x0200 /* Hana SPDIF Left, 1st or 48kHz only */
-#define EMU_DST_HANA_SPDIF_LEFT2 0x0202 /* Hana SPDIF Left, 2nd or 96kHz */
-#define EMU_DST_HANA_SPDIF_RIGHT1 0x0201 /* Hana SPDIF Right, 1st or 48kHz only */
-#define EMU_DST_HANA_SPDIF_RIGHT2 0x0203 /* Hana SPDIF Right, 2nd or 96kHz */
-#define EMU_DST_HAMOA_DAC_LEFT1 0x0300 /* Hamoa DAC Left, 1st or 48kHz only */
-#define EMU_DST_HAMOA_DAC_LEFT2 0x0302 /* Hamoa DAC Left, 2nd or 96kHz */
-#define EMU_DST_HAMOA_DAC_LEFT3 0x0304 /* Hamoa DAC Left, 3rd or 192kHz */
-#define EMU_DST_HAMOA_DAC_LEFT4 0x0306 /* Hamoa DAC Left, 4th or 192kHz */
-#define EMU_DST_HAMOA_DAC_RIGHT1 0x0301 /* Hamoa DAC Right, 1st or 48kHz only */
-#define EMU_DST_HAMOA_DAC_RIGHT2 0x0303 /* Hamoa DAC Right, 2nd or 96kHz */
-#define EMU_DST_HAMOA_DAC_RIGHT3 0x0305 /* Hamoa DAC Right, 3rd or 192kHz */
-#define EMU_DST_HAMOA_DAC_RIGHT4 0x0307 /* Hamoa DAC Right, 4th or 192kHz */
-#define EMU_DST_HANA_ADAT 0x0400 /* Hana ADAT 8 channel out +0 to +7 */
-#define EMU_DST_ALICE_I2S0_LEFT 0x0500 /* Alice2 I2S0 Left */
-#define EMU_DST_ALICE_I2S0_RIGHT 0x0501 /* Alice2 I2S0 Right */
-#define EMU_DST_ALICE_I2S1_LEFT 0x0600 /* Alice2 I2S1 Left */
-#define EMU_DST_ALICE_I2S1_RIGHT 0x0601 /* Alice2 I2S1 Right */
-#define EMU_DST_ALICE_I2S2_LEFT 0x0700 /* Alice2 I2S2 Left */
-#define EMU_DST_ALICE_I2S2_RIGHT 0x0701 /* Alice2 I2S2 Right */
-
-/* Additional destinations for 1616(M)/Microdock */
-/* Microdock S/PDIF OUT Left, 1st or 48kHz only */
-#define EMU_DST_MDOCK_SPDIF_LEFT1 0x0112
-/* Microdock S/PDIF OUT Left, 2nd or 96kHz */
-#define EMU_DST_MDOCK_SPDIF_LEFT2 0x0113
-/* Microdock S/PDIF OUT Right, 1st or 48kHz only */
-#define EMU_DST_MDOCK_SPDIF_RIGHT1 0x0116
-/* Microdock S/PDIF OUT Right, 2nd or 96kHz */
-#define EMU_DST_MDOCK_SPDIF_RIGHT2 0x0117
-/* Microdock S/PDIF ADAT 8 channel out +8 to +f */
-#define EMU_DST_MDOCK_ADAT 0x0118
-
-/* Headphone jack on 1010 cardbus? 44.1/48kHz only? */
-#define EMU_DST_MANA_DAC_LEFT 0x0300
-/* Headphone jack on 1010 cardbus? 44.1/48kHz only? */
-#define EMU_DST_MANA_DAC_RIGHT 0x0301
-
-/************************************************************************************************/
-/* EMU1010m HANA Sources */
-/************************************************************************************************/
-/* Hana, original 1010,1212,1820 using Alice2
- * Sources SRATEX = 1X rates: 44.1 kHz or 48 kHz
- * 0x00,0x00-0x1f: Silence
- * 0x01, 0x10-0x1f: 32 Elink channels from Audio Dock
- * 0x01, 0x00: Dock Mic A
- * 0x01, 0x04: Dock Mic B
- * 0x01, 0x08: Dock ADC 1 Left
- * 0x01, 0x0c: Dock ADC 1 Right
- * 0x01, 0x10: Dock ADC 2 Left
- * 0x01, 0x14: Dock ADC 2 Right
- * 0x01, 0x18: Dock ADC 3 Left
- * 0x01, 0x1c: Dock ADC 3 Right
- * 0x02, 0x00: Hana ADC Left
- * 0x02, 0x01: Hana ADC Right
- * 0x03, 0x00-0x0f: 16 inputs from Alice2 Emu32A output
- * 0x03, 0x10-0x1f: 16 inputs from Alice2 Emu32B output
- * 0x04, 0x00-0x07: Hana ADAT
- * 0x05, 0x00: Hana S/PDIF Left
- * 0x05, 0x01: Hana S/PDIF Right
- * 0x06-0x07: Not used
- *
- * Hana2 never released, but used Tina
- * Not needed.
- *
- * Hana3, rev2 1010,1212,1616 using Tina
- * Sources SRATEX = 1X rates: 44.1 kHz or 48 kHz
- * 0x00,0x00-0x1f: Silence
- * 0x01, 0x10-0x1f: 32 Elink channels from Audio Dock
- * 0x01, 0x00: Dock Mic A
- * 0x01, 0x04: Dock Mic B
- * 0x01, 0x08: Dock ADC 1 Left
- * 0x01, 0x0c: Dock ADC 1 Right
- * 0x01, 0x10: Dock ADC 2 Left
- * 0x01, 0x12: Dock S/PDIF Left
- * 0x01, 0x14: Dock ADC 2 Right
- * 0x01, 0x16: Dock S/PDIF Right
- * 0x01, 0x18-0x1f: Dock ADAT 0-7
- * 0x01, 0x18: Dock ADC 3 Left
- * 0x01, 0x1c: Dock ADC 3 Right
- * 0x02, 0x00: Hanoa ADC Left
- * 0x02, 0x01: Hanoa ADC Right
- * 0x03, 0x00-0x0f: 16 inputs from Tina Emu32A output
- * 0x03, 0x10-0x1f: 16 inputs from Tina Emu32B output
- * 0x04, 0x00-0x07: Hana3 ADAT
- * 0x05, 0x00: Hana3 S/PDIF Left
- * 0x05, 0x01: Hana3 S/PDIF Right
- * 0x06-0x07: Not used
- *
- * HanaLite, rev1 0404 using Alice2
- * Sources SRATEX = 1X rates: 44.1 kHz or 48 kHz
- * 0x00,0x00-0x1f: Silence
- * 0x01: Not used
- * 0x02, 0x00: ADC Left
- * 0x02, 0x01: ADC Right
- * 0x03, 0x00-0x0f: 16 inputs from Alice2 Emu32A output
- * 0x03, 0x10-0x1f: 16 inputs from Alice2 Emu32B output
- * 0x04: Not used
- * 0x05, 0x00: S/PDIF Left
- * 0x05, 0x01: S/PDIF Right
- * 0x06-0x07: Not used
- *
- * HanaLiteLite, rev2 0404 using Alice2
- * Sources SRATEX = 1X rates: 44.1 kHz or 48 kHz
- * 0x00,0x00-0x1f: Silence
- * 0x01: Not used
- * 0x02, 0x00: ADC Left
- * 0x02, 0x01: ADC Right
- * 0x03, 0x00-0x0f: 16 inputs from Alice2 Emu32A output
- * 0x03, 0x10-0x1f: 16 inputs from Alice2 Emu32B output
- * 0x04: Not used
- * 0x05, 0x00: S/PDIF Left
- * 0x05, 0x01: S/PDIF Right
- * 0x06-0x07: Not used
- *
- * Mana, Cardbus 1616 using Tina2
- * Sources SRATEX = 1X rates: 44.1 kHz or 48 kHz
- * 0x00,0x00-0x1f: Silence
- * 0x01, 0x10-0x1f: 32 Elink channels from Audio Dock
- * 0x01, 0x00: Dock Mic A
- * 0x01, 0x04: Dock Mic B
- * 0x01, 0x08: Dock ADC 1 Left
- * 0x01, 0x0c: Dock ADC 1 Right
- * 0x01, 0x10: Dock ADC 2 Left
- * 0x01, 0x12: Dock S/PDIF Left
- * 0x01, 0x14: Dock ADC 2 Right
- * 0x01, 0x16: Dock S/PDIF Right
- * 0x01, 0x18-0x1f: Dock ADAT 0-7
- * 0x01, 0x18: Dock ADC 3 Left
- * 0x01, 0x1c: Dock ADC 3 Right
- * 0x02: Not used
- * 0x03, 0x00-0x0f: 16 inputs from Tina Emu32A output
- * 0x03, 0x10-0x1f: 16 inputs from Tina Emu32B output
- * 0x04-0x07: Not used
- *
- */
-
-/* 32-bit sources of signal in the Hana FPGA. The sources are routed to
- * destinations using mixer control for each destination - see emumixer.c
- * Sources are either physical inputs of FPGA,
- * or outputs from Alice (audigy) - 16 x EMU_SRC_ALICE_EMU32A +
- * 16 x EMU_SRC_ALICE_EMU32B
- */
-#define EMU_SRC_SILENCE 0x0000 /* Silence */
-#define EMU_SRC_DOCK_MIC_A1 0x0100 /* Audio Dock Mic A, 1st or 48kHz only */
-#define EMU_SRC_DOCK_MIC_A2 0x0101 /* Audio Dock Mic A, 2nd or 96kHz */
-#define EMU_SRC_DOCK_MIC_A3 0x0102 /* Audio Dock Mic A, 3rd or 192kHz */
-#define EMU_SRC_DOCK_MIC_A4 0x0103 /* Audio Dock Mic A, 4th or 192kHz */
-#define EMU_SRC_DOCK_MIC_B1 0x0104 /* Audio Dock Mic B, 1st or 48kHz only */
-#define EMU_SRC_DOCK_MIC_B2 0x0105 /* Audio Dock Mic B, 2nd or 96kHz */
-#define EMU_SRC_DOCK_MIC_B3 0x0106 /* Audio Dock Mic B, 3rd or 192kHz */
-#define EMU_SRC_DOCK_MIC_B4 0x0107 /* Audio Dock Mic B, 4th or 192kHz */
-#define EMU_SRC_DOCK_ADC1_LEFT1 0x0108 /* Audio Dock ADC1 Left, 1st or 48kHz only */
-#define EMU_SRC_DOCK_ADC1_LEFT2 0x0109 /* Audio Dock ADC1 Left, 2nd or 96kHz */
-#define EMU_SRC_DOCK_ADC1_LEFT3 0x010a /* Audio Dock ADC1 Left, 3rd or 192kHz */
-#define EMU_SRC_DOCK_ADC1_LEFT4 0x010b /* Audio Dock ADC1 Left, 4th or 192kHz */
-#define EMU_SRC_DOCK_ADC1_RIGHT1 0x010c /* Audio Dock ADC1 Right, 1st or 48kHz only */
-#define EMU_SRC_DOCK_ADC1_RIGHT2 0x010d /* Audio Dock ADC1 Right, 2nd or 96kHz */
-#define EMU_SRC_DOCK_ADC1_RIGHT3 0x010e /* Audio Dock ADC1 Right, 3rd or 192kHz */
-#define EMU_SRC_DOCK_ADC1_RIGHT4 0x010f /* Audio Dock ADC1 Right, 4th or 192kHz */
-#define EMU_SRC_DOCK_ADC2_LEFT1 0x0110 /* Audio Dock ADC2 Left, 1st or 48kHz only */
-#define EMU_SRC_DOCK_ADC2_LEFT2 0x0111 /* Audio Dock ADC2 Left, 2nd or 96kHz */
-#define EMU_SRC_DOCK_ADC2_LEFT3 0x0112 /* Audio Dock ADC2 Left, 3rd or 192kHz */
-#define EMU_SRC_DOCK_ADC2_LEFT4 0x0113 /* Audio Dock ADC2 Left, 4th or 192kHz */
-#define EMU_SRC_DOCK_ADC2_RIGHT1 0x0114 /* Audio Dock ADC2 Right, 1st or 48kHz only */
-#define EMU_SRC_DOCK_ADC2_RIGHT2 0x0115 /* Audio Dock ADC2 Right, 2nd or 96kHz */
-#define EMU_SRC_DOCK_ADC2_RIGHT3 0x0116 /* Audio Dock ADC2 Right, 3rd or 192kHz */
-#define EMU_SRC_DOCK_ADC2_RIGHT4 0x0117 /* Audio Dock ADC2 Right, 4th or 192kHz */
-#define EMU_SRC_DOCK_ADC3_LEFT1 0x0118 /* Audio Dock ADC3 Left, 1st or 48kHz only */
-#define EMU_SRC_DOCK_ADC3_LEFT2 0x0119 /* Audio Dock ADC3 Left, 2nd or 96kHz */
-#define EMU_SRC_DOCK_ADC3_LEFT3 0x011a /* Audio Dock ADC3 Left, 3rd or 192kHz */
-#define EMU_SRC_DOCK_ADC3_LEFT4 0x011b /* Audio Dock ADC3 Left, 4th or 192kHz */
-#define EMU_SRC_DOCK_ADC3_RIGHT1 0x011c /* Audio Dock ADC3 Right, 1st or 48kHz only */
-#define EMU_SRC_DOCK_ADC3_RIGHT2 0x011d /* Audio Dock ADC3 Right, 2nd or 96kHz */
-#define EMU_SRC_DOCK_ADC3_RIGHT3 0x011e /* Audio Dock ADC3 Right, 3rd or 192kHz */
-#define EMU_SRC_DOCK_ADC3_RIGHT4 0x011f /* Audio Dock ADC3 Right, 4th or 192kHz */
-#define EMU_SRC_HAMOA_ADC_LEFT1 0x0200 /* Hamoa ADC Left, 1st or 48kHz only */
-#define EMU_SRC_HAMOA_ADC_LEFT2 0x0202 /* Hamoa ADC Left, 2nd or 96kHz */
-#define EMU_SRC_HAMOA_ADC_LEFT3 0x0204 /* Hamoa ADC Left, 3rd or 192kHz */
-#define EMU_SRC_HAMOA_ADC_LEFT4 0x0206 /* Hamoa ADC Left, 4th or 192kHz */
-#define EMU_SRC_HAMOA_ADC_RIGHT1 0x0201 /* Hamoa ADC Right, 1st or 48kHz only */
-#define EMU_SRC_HAMOA_ADC_RIGHT2 0x0203 /* Hamoa ADC Right, 2nd or 96kHz */
-#define EMU_SRC_HAMOA_ADC_RIGHT3 0x0205 /* Hamoa ADC Right, 3rd or 192kHz */
-#define EMU_SRC_HAMOA_ADC_RIGHT4 0x0207 /* Hamoa ADC Right, 4th or 192kHz */
-#define EMU_SRC_ALICE_EMU32A 0x0300 /* Alice2 EMU32a 16 outputs. +0 to +0xf */
-#define EMU_SRC_ALICE_EMU32B 0x0310 /* Alice2 EMU32b 16 outputs. +0 to +0xf */
-#define EMU_SRC_HANA_ADAT 0x0400 /* Hana ADAT 8 channel in +0 to +7 */
-#define EMU_SRC_HANA_SPDIF_LEFT1 0x0500 /* Hana SPDIF Left, 1st or 48kHz only */
-#define EMU_SRC_HANA_SPDIF_LEFT2 0x0502 /* Hana SPDIF Left, 2nd or 96kHz */
-#define EMU_SRC_HANA_SPDIF_RIGHT1 0x0501 /* Hana SPDIF Right, 1st or 48kHz only */
-#define EMU_SRC_HANA_SPDIF_RIGHT2 0x0503 /* Hana SPDIF Right, 2nd or 96kHz */
-
-/* Additional inputs for 1616(M)/Microdock */
-/* Microdock S/PDIF Left, 1st or 48kHz only */
-#define EMU_SRC_MDOCK_SPDIF_LEFT1 0x0112
-/* Microdock S/PDIF Left, 2nd or 96kHz */
-#define EMU_SRC_MDOCK_SPDIF_LEFT2 0x0113
-/* Microdock S/PDIF Right, 1st or 48kHz only */
-#define EMU_SRC_MDOCK_SPDIF_RIGHT1 0x0116
-/* Microdock S/PDIF Right, 2nd or 96kHz */
-#define EMU_SRC_MDOCK_SPDIF_RIGHT2 0x0117
-/* Microdock ADAT 8 channel in +8 to +f */
-#define EMU_SRC_MDOCK_ADAT 0x0118
-
-/* 0x600 and 0x700 no used */
-
-/* ------------------- STRUCTURES -------------------- */
-
-enum {
- EMU10K1_EFX,
- EMU10K1_PCM,
- EMU10K1_SYNTH,
- EMU10K1_MIDI
-};
-
-struct snd_emu10k1;
-
-struct snd_emu10k1_voice {
- struct snd_emu10k1 *emu;
- int number;
- unsigned int use: 1,
- pcm: 1,
- efx: 1,
- synth: 1,
- midi: 1;
- void (*interrupt)(struct snd_emu10k1 *emu, struct snd_emu10k1_voice *pvoice);
-
- struct snd_emu10k1_pcm *epcm;
-};
-
-enum {
- PLAYBACK_EMUVOICE,
- PLAYBACK_EFX,
- CAPTURE_AC97ADC,
- CAPTURE_AC97MIC,
- CAPTURE_EFX
-};
-
-struct snd_emu10k1_pcm {
- struct snd_emu10k1 *emu;
- int type;
- struct snd_pcm_substream *substream;
- struct snd_emu10k1_voice *voices[NUM_EFX_PLAYBACK];
- struct snd_emu10k1_voice *extra;
- unsigned short running;
- unsigned short first_ptr;
- struct snd_util_memblk *memblk;
- unsigned int start_addr;
- unsigned int ccca_start_addr;
- unsigned int capture_ipr; /* interrupt acknowledge mask */
- unsigned int capture_inte; /* interrupt enable mask */
- unsigned int capture_ba_reg; /* buffer address register */
- unsigned int capture_bs_reg; /* buffer size register */
- unsigned int capture_idx_reg; /* buffer index register */
- unsigned int capture_cr_val; /* control value */
- unsigned int capture_cr_val2; /* control value2 (for audigy) */
- unsigned int capture_bs_val; /* buffer size value */
- unsigned int capture_bufsize; /* buffer size in bytes */
-};
-
-struct snd_emu10k1_pcm_mixer {
- /* mono, left, right x 8 sends (4 on emu10k1) */
- unsigned char send_routing[3][8];
- unsigned char send_volume[3][8];
- unsigned short attn[3];
- struct snd_emu10k1_pcm *epcm;
-};
-
-#define snd_emu10k1_compose_send_routing(route) \
-((route[0] | (route[1] << 4) | (route[2] << 8) | (route[3] << 12)) << 16)
-
-#define snd_emu10k1_compose_audigy_fxrt1(route) \
-((unsigned int)route[0] | ((unsigned int)route[1] << 8) | ((unsigned int)route[2] << 16) | ((unsigned int)route[3] << 24))
-
-#define snd_emu10k1_compose_audigy_fxrt2(route) \
-((unsigned int)route[4] | ((unsigned int)route[5] << 8) | ((unsigned int)route[6] << 16) | ((unsigned int)route[7] << 24))
-
-struct snd_emu10k1_memblk {
- struct snd_util_memblk mem;
- /* private part */
- int first_page, last_page, pages, mapped_page;
- unsigned int map_locked;
- struct list_head mapped_link;
- struct list_head mapped_order_link;
-};
-
-#define snd_emu10k1_memblk_offset(blk) (((blk)->mapped_page << PAGE_SHIFT) | ((blk)->mem.offset & (PAGE_SIZE - 1)))
-
-#define EMU10K1_MAX_TRAM_BLOCKS_PER_CODE 16
-
-struct snd_emu10k1_fx8010_ctl {
- struct list_head list; /* list link container */
- unsigned int vcount;
- unsigned int count; /* count of GPR (1..16) */
- unsigned short gpr[32]; /* GPR number(s) */
- unsigned int value[32];
- unsigned int min; /* minimum range */
- unsigned int max; /* maximum range */
- unsigned int translation; /* translation type (EMU10K1_GPR_TRANSLATION*) */
- struct snd_kcontrol *kcontrol;
-};
-
-typedef void (snd_fx8010_irq_handler_t)(struct snd_emu10k1 *emu, void *private_data);
-
-struct snd_emu10k1_fx8010_irq {
- struct snd_emu10k1_fx8010_irq *next;
- snd_fx8010_irq_handler_t *handler;
- unsigned short gpr_running;
- void *private_data;
-};
-
-struct snd_emu10k1_fx8010_pcm {
- unsigned int valid: 1,
- opened: 1,
- active: 1;
- unsigned int channels; /* 16-bit channels count */
- unsigned int tram_start; /* initial ring buffer position in TRAM (in samples) */
- unsigned int buffer_size; /* count of buffered samples */
- unsigned short gpr_size; /* GPR containing size of ring buffer in samples (host) */
- unsigned short gpr_ptr; /* GPR containing current pointer in the ring buffer (host = reset, FX8010) */
- unsigned short gpr_count; /* GPR containing count of samples between two interrupts (host) */
- unsigned short gpr_tmpcount; /* GPR containing current count of samples to interrupt (host = set, FX8010) */
- unsigned short gpr_trigger; /* GPR containing trigger (activate) information (host) */
- unsigned short gpr_running; /* GPR containing info if PCM is running (FX8010) */
- unsigned char etram[32]; /* external TRAM address & data */
- struct snd_pcm_indirect pcm_rec;
- unsigned int tram_pos;
- unsigned int tram_shift;
- struct snd_emu10k1_fx8010_irq *irq;
-};
-
-struct snd_emu10k1_fx8010 {
- unsigned short fxbus_mask; /* used FX buses (bitmask) */
- unsigned short extin_mask; /* used external inputs (bitmask) */
- unsigned short extout_mask; /* used external outputs (bitmask) */
- unsigned short pad1;
- unsigned int itram_size; /* internal TRAM size in samples */
- struct snd_dma_buffer etram_pages; /* external TRAM pages and size */
- unsigned int dbg; /* FX debugger register */
- unsigned char name[128];
- int gpr_size; /* size of allocated GPR controls */
- int gpr_count; /* count of used kcontrols */
- struct list_head gpr_ctl; /* GPR controls */
- struct mutex lock;
- struct snd_emu10k1_fx8010_pcm pcm[8];
- spinlock_t irq_lock;
- struct snd_emu10k1_fx8010_irq *irq_handlers;
-};
-
-struct snd_emu10k1_midi {
- struct snd_emu10k1 *emu;
- struct snd_rawmidi *rmidi;
- struct snd_rawmidi_substream *substream_input;
- struct snd_rawmidi_substream *substream_output;
- unsigned int midi_mode;
- spinlock_t input_lock;
- spinlock_t output_lock;
- spinlock_t open_lock;
- int tx_enable, rx_enable;
- int port;
- int ipr_tx, ipr_rx;
- void (*interrupt)(struct snd_emu10k1 *emu, unsigned int status);
-};
-
-enum {
- EMU_MODEL_SB,
- EMU_MODEL_EMU1010,
- EMU_MODEL_EMU1010B,
- EMU_MODEL_EMU1616,
- EMU_MODEL_EMU0404,
-};
-
-struct snd_emu_chip_details {
- u32 vendor;
- u32 device;
- u32 subsystem;
- unsigned char revision;
- unsigned char emu10k1_chip; /* Original SB Live. Not SB Live 24bit. */
- unsigned char emu10k2_chip; /* Audigy 1 or Audigy 2. */
- unsigned char ca0102_chip; /* Audigy 1 or Audigy 2. Not SB Audigy 2 Value. */
- unsigned char ca0108_chip; /* Audigy 2 Value */
- unsigned char ca_cardbus_chip; /* Audigy 2 ZS Notebook */
- unsigned char ca0151_chip; /* P16V */
- unsigned char spk71; /* Has 7.1 speakers */
- unsigned char sblive51; /* SBLive! 5.1 - extout 0x11 -> center, 0x12 -> lfe */
- unsigned char spdif_bug; /* Has Spdif phasing bug */
- unsigned char ac97_chip; /* Has an AC97 chip: 1 = mandatory, 2 = optional */
- unsigned char ecard; /* APS EEPROM */
- unsigned char emu_model; /* EMU model type */
- unsigned char spi_dac; /* SPI interface for DAC */
- unsigned char i2c_adc; /* I2C interface for ADC */
- unsigned char adc_1361t; /* Use Philips 1361T ADC */
- unsigned char invert_shared_spdif; /* analog/digital switch inverted */
- const char *driver;
- const char *name;
- const char *id; /* for backward compatibility - can be NULL if not needed */
-};
-
-struct snd_emu1010 {
- unsigned int output_source[64];
- unsigned int input_source[64];
- unsigned int adc_pads; /* bit mask */
- unsigned int dac_pads; /* bit mask */
- unsigned int internal_clock; /* 44100 or 48000 */
- unsigned int optical_in; /* 0:SPDIF, 1:ADAT */
- unsigned int optical_out; /* 0:SPDIF, 1:ADAT */
- struct task_struct *firmware_thread;
-};
-
-struct snd_emu10k1 {
- int irq;
-
- unsigned long port; /* I/O port number */
- unsigned int tos_link: 1, /* tos link detected */
- rear_ac97: 1, /* rear channels are on AC'97 */
- enable_ir: 1;
- unsigned int support_tlv :1;
- /* Contains profile of card capabilities */
- const struct snd_emu_chip_details *card_capabilities;
- unsigned int audigy; /* is Audigy? */
- unsigned int revision; /* chip revision */
- unsigned int serial; /* serial number */
- unsigned short model; /* subsystem id */
- unsigned int card_type; /* EMU10K1_CARD_* */
- unsigned int ecard_ctrl; /* ecard control bits */
- unsigned long dma_mask; /* PCI DMA mask */
- unsigned int delay_pcm_irq; /* in samples */
- int max_cache_pages; /* max memory size / PAGE_SIZE */
- struct snd_dma_buffer silent_page; /* silent page */
- struct snd_dma_buffer ptb_pages; /* page table pages */
- struct snd_dma_device p16v_dma_dev;
- struct snd_dma_buffer p16v_buffer;
-
- struct snd_util_memhdr *memhdr; /* page allocation list */
- struct snd_emu10k1_memblk *reserved_page; /* reserved page */
-
- struct list_head mapped_link_head;
- struct list_head mapped_order_link_head;
- void **page_ptr_table;
- unsigned long *page_addr_table;
- spinlock_t memblk_lock;
-
- unsigned int spdif_bits[3]; /* s/pdif out setup */
- unsigned int i2c_capture_source;
- u8 i2c_capture_volume[4][2];
-
- struct snd_emu10k1_fx8010 fx8010; /* FX8010 info */
- int gpr_base;
-
- struct snd_ac97 *ac97;
-
- struct pci_dev *pci;
- struct snd_card *card;
- struct snd_pcm *pcm;
- struct snd_pcm *pcm_mic;
- struct snd_pcm *pcm_efx;
- struct snd_pcm *pcm_multi;
- struct snd_pcm *pcm_p16v;
-
- spinlock_t synth_lock;
- void *synth;
- int (*get_synth_voice)(struct snd_emu10k1 *emu);
-
- spinlock_t reg_lock;
- spinlock_t emu_lock;
- spinlock_t voice_lock;
- spinlock_t spi_lock; /* serialises access to spi port */
- spinlock_t i2c_lock; /* serialises access to i2c port */
-
- struct snd_emu10k1_voice voices[NUM_G];
- struct snd_emu10k1_voice p16v_voices[4];
- struct snd_emu10k1_voice p16v_capture_voice;
- int p16v_device_offset;
- u32 p16v_capture_source;
- u32 p16v_capture_channel;
- struct snd_emu1010 emu1010;
- struct snd_emu10k1_pcm_mixer pcm_mixer[32];
- struct snd_emu10k1_pcm_mixer efx_pcm_mixer[NUM_EFX_PLAYBACK];
- struct snd_kcontrol *ctl_send_routing;
- struct snd_kcontrol *ctl_send_volume;
- struct snd_kcontrol *ctl_attn;
- struct snd_kcontrol *ctl_efx_send_routing;
- struct snd_kcontrol *ctl_efx_send_volume;
- struct snd_kcontrol *ctl_efx_attn;
-
- void (*hwvol_interrupt)(struct snd_emu10k1 *emu, unsigned int status);
- void (*capture_interrupt)(struct snd_emu10k1 *emu, unsigned int status);
- void (*capture_mic_interrupt)(struct snd_emu10k1 *emu, unsigned int status);
- void (*capture_efx_interrupt)(struct snd_emu10k1 *emu, unsigned int status);
- void (*spdif_interrupt)(struct snd_emu10k1 *emu, unsigned int status);
- void (*dsp_interrupt)(struct snd_emu10k1 *emu);
-
- struct snd_pcm_substream *pcm_capture_substream;
- struct snd_pcm_substream *pcm_capture_mic_substream;
- struct snd_pcm_substream *pcm_capture_efx_substream;
- struct snd_pcm_substream *pcm_playback_efx_substream;
-
- struct snd_timer *timer;
-
- struct snd_emu10k1_midi midi;
- struct snd_emu10k1_midi midi2; /* for audigy */
-
- unsigned int efx_voices_mask[2];
- unsigned int next_free_voice;
-
-#ifdef CONFIG_PM
- unsigned int *saved_ptr;
- unsigned int *saved_gpr;
- unsigned int *tram_val_saved;
- unsigned int *tram_addr_saved;
- unsigned int *saved_icode;
- unsigned int *p16v_saved;
- unsigned int saved_a_iocfg, saved_hcfg;
-#endif
-
-};
-
-int snd_emu10k1_create(struct snd_card *card,
- struct pci_dev *pci,
- unsigned short extin_mask,
- unsigned short extout_mask,
- long max_cache_bytes,
- int enable_ir,
- uint subsystem,
- struct snd_emu10k1 ** remu);
-
-int snd_emu10k1_pcm(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm);
-int snd_emu10k1_pcm_mic(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm);
-int snd_emu10k1_pcm_efx(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm);
-int snd_p16v_pcm(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm);
-int snd_p16v_free(struct snd_emu10k1 * emu);
-int snd_p16v_mixer(struct snd_emu10k1 * emu);
-int snd_emu10k1_pcm_multi(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm);
-int snd_emu10k1_fx8010_pcm(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm);
-int snd_emu10k1_mixer(struct snd_emu10k1 * emu, int pcm_device, int multi_device);
-int snd_emu10k1_timer(struct snd_emu10k1 * emu, int device);
-int snd_emu10k1_fx8010_new(struct snd_emu10k1 *emu, int device, struct snd_hwdep ** rhwdep);
-
-irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id);
-
-void snd_emu10k1_voice_init(struct snd_emu10k1 * emu, int voice);
-int snd_emu10k1_init_efx(struct snd_emu10k1 *emu);
-void snd_emu10k1_free_efx(struct snd_emu10k1 *emu);
-int snd_emu10k1_fx8010_tram_setup(struct snd_emu10k1 *emu, u32 size);
-int snd_emu10k1_done(struct snd_emu10k1 * emu);
-
-/* I/O functions */
-unsigned int snd_emu10k1_ptr_read(struct snd_emu10k1 * emu, unsigned int reg, unsigned int chn);
-void snd_emu10k1_ptr_write(struct snd_emu10k1 *emu, unsigned int reg, unsigned int chn, unsigned int data);
-unsigned int snd_emu10k1_ptr20_read(struct snd_emu10k1 * emu, unsigned int reg, unsigned int chn);
-void snd_emu10k1_ptr20_write(struct snd_emu10k1 *emu, unsigned int reg, unsigned int chn, unsigned int data);
-int snd_emu10k1_spi_write(struct snd_emu10k1 * emu, unsigned int data);
-int snd_emu10k1_i2c_write(struct snd_emu10k1 *emu, u32 reg, u32 value);
-int snd_emu1010_fpga_write(struct snd_emu10k1 * emu, u32 reg, u32 value);
-int snd_emu1010_fpga_read(struct snd_emu10k1 * emu, u32 reg, u32 *value);
-int snd_emu1010_fpga_link_dst_src_write(struct snd_emu10k1 * emu, u32 dst, u32 src);
-unsigned int snd_emu10k1_efx_read(struct snd_emu10k1 *emu, unsigned int pc);
-void snd_emu10k1_intr_enable(struct snd_emu10k1 *emu, unsigned int intrenb);
-void snd_emu10k1_intr_disable(struct snd_emu10k1 *emu, unsigned int intrenb);
-void snd_emu10k1_voice_intr_enable(struct snd_emu10k1 *emu, unsigned int voicenum);
-void snd_emu10k1_voice_intr_disable(struct snd_emu10k1 *emu, unsigned int voicenum);
-void snd_emu10k1_voice_intr_ack(struct snd_emu10k1 *emu, unsigned int voicenum);
-void snd_emu10k1_voice_half_loop_intr_enable(struct snd_emu10k1 *emu, unsigned int voicenum);
-void snd_emu10k1_voice_half_loop_intr_disable(struct snd_emu10k1 *emu, unsigned int voicenum);
-void snd_emu10k1_voice_half_loop_intr_ack(struct snd_emu10k1 *emu, unsigned int voicenum);
-void snd_emu10k1_voice_set_loop_stop(struct snd_emu10k1 *emu, unsigned int voicenum);
-void snd_emu10k1_voice_clear_loop_stop(struct snd_emu10k1 *emu, unsigned int voicenum);
-void snd_emu10k1_wait(struct snd_emu10k1 *emu, unsigned int wait);
-static inline unsigned int snd_emu10k1_wc(struct snd_emu10k1 *emu) { return (inl(emu->port + WC) >> 6) & 0xfffff; }
-unsigned short snd_emu10k1_ac97_read(struct snd_ac97 *ac97, unsigned short reg);
-void snd_emu10k1_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short data);
-unsigned int snd_emu10k1_rate_to_pitch(unsigned int rate);
-
-#ifdef CONFIG_PM
-void snd_emu10k1_suspend_regs(struct snd_emu10k1 *emu);
-void snd_emu10k1_resume_init(struct snd_emu10k1 *emu);
-void snd_emu10k1_resume_regs(struct snd_emu10k1 *emu);
-int snd_emu10k1_efx_alloc_pm_buffer(struct snd_emu10k1 *emu);
-void snd_emu10k1_efx_free_pm_buffer(struct snd_emu10k1 *emu);
-void snd_emu10k1_efx_suspend(struct snd_emu10k1 *emu);
-void snd_emu10k1_efx_resume(struct snd_emu10k1 *emu);
-int snd_p16v_alloc_pm_buffer(struct snd_emu10k1 *emu);
-void snd_p16v_free_pm_buffer(struct snd_emu10k1 *emu);
-void snd_p16v_suspend(struct snd_emu10k1 *emu);
-void snd_p16v_resume(struct snd_emu10k1 *emu);
-#endif
-
-/* memory allocation */
-struct snd_util_memblk *snd_emu10k1_alloc_pages(struct snd_emu10k1 *emu, struct snd_pcm_substream *substream);
-int snd_emu10k1_free_pages(struct snd_emu10k1 *emu, struct snd_util_memblk *blk);
-struct snd_util_memblk *snd_emu10k1_synth_alloc(struct snd_emu10k1 *emu, unsigned int size);
-int snd_emu10k1_synth_free(struct snd_emu10k1 *emu, struct snd_util_memblk *blk);
-int snd_emu10k1_synth_bzero(struct snd_emu10k1 *emu, struct snd_util_memblk *blk, int offset, int size);
-int snd_emu10k1_synth_copy_from_user(struct snd_emu10k1 *emu, struct snd_util_memblk *blk, int offset, const char __user *data, int size);
-int snd_emu10k1_memblk_map(struct snd_emu10k1 *emu, struct snd_emu10k1_memblk *blk);
-
-/* voice allocation */
-int snd_emu10k1_voice_alloc(struct snd_emu10k1 *emu, int type, int pair, struct snd_emu10k1_voice **rvoice);
-int snd_emu10k1_voice_free(struct snd_emu10k1 *emu, struct snd_emu10k1_voice *pvoice);
-
-/* MIDI uart */
-int snd_emu10k1_midi(struct snd_emu10k1 * emu);
-int snd_emu10k1_audigy_midi(struct snd_emu10k1 * emu);
-
-/* proc interface */
-int snd_emu10k1_proc_init(struct snd_emu10k1 * emu);
-
-/* fx8010 irq handler */
-int snd_emu10k1_fx8010_register_irq_handler(struct snd_emu10k1 *emu,
- snd_fx8010_irq_handler_t *handler,
- unsigned char gpr_running,
- void *private_data,
- struct snd_emu10k1_fx8010_irq **r_irq);
-int snd_emu10k1_fx8010_unregister_irq_handler(struct snd_emu10k1 *emu,
- struct snd_emu10k1_fx8010_irq *irq);
-
-#endif /* __KERNEL__ */
-
-/*
- * ---- FX8010 ----
- */
-
-#define EMU10K1_CARD_CREATIVE 0x00000000
-#define EMU10K1_CARD_EMUAPS 0x00000001
-
-#define EMU10K1_FX8010_PCM_COUNT 8
-
-/* instruction set */
-#define iMAC0 0x00 /* R = A + (X * Y >> 31) ; saturation */
-#define iMAC1 0x01 /* R = A + (-X * Y >> 31) ; saturation */
-#define iMAC2 0x02 /* R = A + (X * Y >> 31) ; wraparound */
-#define iMAC3 0x03 /* R = A + (-X * Y >> 31) ; wraparound */
-#define iMACINT0 0x04 /* R = A + X * Y ; saturation */
-#define iMACINT1 0x05 /* R = A + X * Y ; wraparound (31-bit) */
-#define iACC3 0x06 /* R = A + X + Y ; saturation */
-#define iMACMV 0x07 /* R = A, acc += X * Y >> 31 */
-#define iANDXOR 0x08 /* R = (A & X) ^ Y */
-#define iTSTNEG 0x09 /* R = (A >= Y) ? X : ~X */
-#define iLIMITGE 0x0a /* R = (A >= Y) ? X : Y */
-#define iLIMITLT 0x0b /* R = (A < Y) ? X : Y */
-#define iLOG 0x0c /* R = linear_data, A (log_data), X (max_exp), Y (format_word) */
-#define iEXP 0x0d /* R = log_data, A (linear_data), X (max_exp), Y (format_word) */
-#define iINTERP 0x0e /* R = A + (X * (Y - A) >> 31) ; saturation */
-#define iSKIP 0x0f /* R = A (cc_reg), X (count), Y (cc_test) */
-
-/* GPRs */
-#define FXBUS(x) (0x00 + (x)) /* x = 0x00 - 0x0f */
-#define EXTIN(x) (0x10 + (x)) /* x = 0x00 - 0x0f */
-#define EXTOUT(x) (0x20 + (x)) /* x = 0x00 - 0x0f physical outs -> FXWC low 16 bits */
-#define FXBUS2(x) (0x30 + (x)) /* x = 0x00 - 0x0f copies of fx buses for capture -> FXWC high 16 bits */
- /* NB: 0x31 and 0x32 are shared with Center/LFE on SB live 5.1 */
-
-#define C_00000000 0x40
-#define C_00000001 0x41
-#define C_00000002 0x42
-#define C_00000003 0x43
-#define C_00000004 0x44
-#define C_00000008 0x45
-#define C_00000010 0x46
-#define C_00000020 0x47
-#define C_00000100 0x48
-#define C_00010000 0x49
-#define C_00080000 0x4a
-#define C_10000000 0x4b
-#define C_20000000 0x4c
-#define C_40000000 0x4d
-#define C_80000000 0x4e
-#define C_7fffffff 0x4f
-#define C_ffffffff 0x50
-#define C_fffffffe 0x51
-#define C_c0000000 0x52
-#define C_4f1bbcdc 0x53
-#define C_5a7ef9db 0x54
-#define C_00100000 0x55 /* ?? */
-#define GPR_ACCU 0x56 /* ACCUM, accumulator */
-#define GPR_COND 0x57 /* CCR, condition register */
-#define GPR_NOISE0 0x58 /* noise source */
-#define GPR_NOISE1 0x59 /* noise source */
-#define GPR_IRQ 0x5a /* IRQ register */
-#define GPR_DBAC 0x5b /* TRAM Delay Base Address Counter */
-#define GPR(x) (FXGPREGBASE + (x)) /* free GPRs: x = 0x00 - 0xff */
-#define ITRAM_DATA(x) (TANKMEMDATAREGBASE + 0x00 + (x)) /* x = 0x00 - 0x7f */
-#define ETRAM_DATA(x) (TANKMEMDATAREGBASE + 0x80 + (x)) /* x = 0x00 - 0x1f */
-#define ITRAM_ADDR(x) (TANKMEMADDRREGBASE + 0x00 + (x)) /* x = 0x00 - 0x7f */
-#define ETRAM_ADDR(x) (TANKMEMADDRREGBASE + 0x80 + (x)) /* x = 0x00 - 0x1f */
-
-#define A_ITRAM_DATA(x) (TANKMEMDATAREGBASE + 0x00 + (x)) /* x = 0x00 - 0xbf */
-#define A_ETRAM_DATA(x) (TANKMEMDATAREGBASE + 0xc0 + (x)) /* x = 0x00 - 0x3f */
-#define A_ITRAM_ADDR(x) (TANKMEMADDRREGBASE + 0x00 + (x)) /* x = 0x00 - 0xbf */
-#define A_ETRAM_ADDR(x) (TANKMEMADDRREGBASE + 0xc0 + (x)) /* x = 0x00 - 0x3f */
-#define A_ITRAM_CTL(x) (A_TANKMEMCTLREGBASE + 0x00 + (x)) /* x = 0x00 - 0xbf */
-#define A_ETRAM_CTL(x) (A_TANKMEMCTLREGBASE + 0xc0 + (x)) /* x = 0x00 - 0x3f */
-
-#define A_FXBUS(x) (0x00 + (x)) /* x = 0x00 - 0x3f FX buses */
-#define A_EXTIN(x) (0x40 + (x)) /* x = 0x00 - 0x0f physical ins */
-#define A_P16VIN(x) (0x50 + (x)) /* x = 0x00 - 0x0f p16v ins (A2 only) "EMU32 inputs" */
-#define A_EXTOUT(x) (0x60 + (x)) /* x = 0x00 - 0x1f physical outs -> A_FXWC1 0x79-7f unknown */
-#define A_FXBUS2(x) (0x80 + (x)) /* x = 0x00 - 0x1f extra outs used for EFX capture -> A_FXWC2 */
-#define A_EMU32OUTH(x) (0xa0 + (x)) /* x = 0x00 - 0x0f "EMU32_OUT_10 - _1F" - ??? */
-#define A_EMU32OUTL(x) (0xb0 + (x)) /* x = 0x00 - 0x0f "EMU32_OUT_1 - _F" - ??? */
-#define A3_EMU32IN(x) (0x160 + (x)) /* x = 0x00 - 0x3f "EMU32_IN_00 - _3F" - Only when .device = 0x0008 */
-#define A3_EMU32OUT(x) (0x1E0 + (x)) /* x = 0x00 - 0x0f "EMU32_OUT_00 - _3F" - Only when .device = 0x0008 */
-#define A_GPR(x) (A_FXGPREGBASE + (x))
-
-/* cc_reg constants */
-#define CC_REG_NORMALIZED C_00000001
-#define CC_REG_BORROW C_00000002
-#define CC_REG_MINUS C_00000004
-#define CC_REG_ZERO C_00000008
-#define CC_REG_SATURATE C_00000010
-#define CC_REG_NONZERO C_00000100
-
-/* FX buses */
-#define FXBUS_PCM_LEFT 0x00
-#define FXBUS_PCM_RIGHT 0x01
-#define FXBUS_PCM_LEFT_REAR 0x02
-#define FXBUS_PCM_RIGHT_REAR 0x03
-#define FXBUS_MIDI_LEFT 0x04
-#define FXBUS_MIDI_RIGHT 0x05
-#define FXBUS_PCM_CENTER 0x06
-#define FXBUS_PCM_LFE 0x07
-#define FXBUS_PCM_LEFT_FRONT 0x08
-#define FXBUS_PCM_RIGHT_FRONT 0x09
-#define FXBUS_MIDI_REVERB 0x0c
-#define FXBUS_MIDI_CHORUS 0x0d
-#define FXBUS_PCM_LEFT_SIDE 0x0e
-#define FXBUS_PCM_RIGHT_SIDE 0x0f
-#define FXBUS_PT_LEFT 0x14
-#define FXBUS_PT_RIGHT 0x15
-
-/* Inputs */
-#define EXTIN_AC97_L 0x00 /* AC'97 capture channel - left */
-#define EXTIN_AC97_R 0x01 /* AC'97 capture channel - right */
-#define EXTIN_SPDIF_CD_L 0x02 /* internal S/PDIF CD - onboard - left */
-#define EXTIN_SPDIF_CD_R 0x03 /* internal S/PDIF CD - onboard - right */
-#define EXTIN_ZOOM_L 0x04 /* Zoom Video I2S - left */
-#define EXTIN_ZOOM_R 0x05 /* Zoom Video I2S - right */
-#define EXTIN_TOSLINK_L 0x06 /* LiveDrive - TOSLink Optical - left */
-#define EXTIN_TOSLINK_R 0x07 /* LiveDrive - TOSLink Optical - right */
-#define EXTIN_LINE1_L 0x08 /* LiveDrive - Line/Mic 1 - left */
-#define EXTIN_LINE1_R 0x09 /* LiveDrive - Line/Mic 1 - right */
-#define EXTIN_COAX_SPDIF_L 0x0a /* LiveDrive - Coaxial S/PDIF - left */
-#define EXTIN_COAX_SPDIF_R 0x0b /* LiveDrive - Coaxial S/PDIF - right */
-#define EXTIN_LINE2_L 0x0c /* LiveDrive - Line/Mic 2 - left */
-#define EXTIN_LINE2_R 0x0d /* LiveDrive - Line/Mic 2 - right */
-
-/* Outputs */
-#define EXTOUT_AC97_L 0x00 /* AC'97 playback channel - left */
-#define EXTOUT_AC97_R 0x01 /* AC'97 playback channel - right */
-#define EXTOUT_TOSLINK_L 0x02 /* LiveDrive - TOSLink Optical - left */
-#define EXTOUT_TOSLINK_R 0x03 /* LiveDrive - TOSLink Optical - right */
-#define EXTOUT_AC97_CENTER 0x04 /* SB Live 5.1 - center */
-#define EXTOUT_AC97_LFE 0x05 /* SB Live 5.1 - LFE */
-#define EXTOUT_HEADPHONE_L 0x06 /* LiveDrive - Headphone - left */
-#define EXTOUT_HEADPHONE_R 0x07 /* LiveDrive - Headphone - right */
-#define EXTOUT_REAR_L 0x08 /* Rear channel - left */
-#define EXTOUT_REAR_R 0x09 /* Rear channel - right */
-#define EXTOUT_ADC_CAP_L 0x0a /* ADC Capture buffer - left */
-#define EXTOUT_ADC_CAP_R 0x0b /* ADC Capture buffer - right */
-#define EXTOUT_MIC_CAP 0x0c /* MIC Capture buffer */
-#define EXTOUT_AC97_REAR_L 0x0d /* SB Live 5.1 (c) 2003 - Rear Left */
-#define EXTOUT_AC97_REAR_R 0x0e /* SB Live 5.1 (c) 2003 - Rear Right */
-#define EXTOUT_ACENTER 0x11 /* Analog Center */
-#define EXTOUT_ALFE 0x12 /* Analog LFE */
-
-/* Audigy Inputs */
-#define A_EXTIN_AC97_L 0x00 /* AC'97 capture channel - left */
-#define A_EXTIN_AC97_R 0x01 /* AC'97 capture channel - right */
-#define A_EXTIN_SPDIF_CD_L 0x02 /* digital CD left */
-#define A_EXTIN_SPDIF_CD_R 0x03 /* digital CD left */
-#define A_EXTIN_OPT_SPDIF_L 0x04 /* audigy drive Optical SPDIF - left */
-#define A_EXTIN_OPT_SPDIF_R 0x05 /* right */
-#define A_EXTIN_LINE2_L 0x08 /* audigy drive line2/mic2 - left */
-#define A_EXTIN_LINE2_R 0x09 /* right */
-#define A_EXTIN_ADC_L 0x0a /* Philips ADC - left */
-#define A_EXTIN_ADC_R 0x0b /* right */
-#define A_EXTIN_AUX2_L 0x0c /* audigy drive aux2 - left */
-#define A_EXTIN_AUX2_R 0x0d /* - right */
-
-/* Audigiy Outputs */
-#define A_EXTOUT_FRONT_L 0x00 /* digital front left */
-#define A_EXTOUT_FRONT_R 0x01 /* right */
-#define A_EXTOUT_CENTER 0x02 /* digital front center */
-#define A_EXTOUT_LFE 0x03 /* digital front lfe */
-#define A_EXTOUT_HEADPHONE_L 0x04 /* headphone audigy drive left */
-#define A_EXTOUT_HEADPHONE_R 0x05 /* right */
-#define A_EXTOUT_REAR_L 0x06 /* digital rear left */
-#define A_EXTOUT_REAR_R 0x07 /* right */
-#define A_EXTOUT_AFRONT_L 0x08 /* analog front left */
-#define A_EXTOUT_AFRONT_R 0x09 /* right */
-#define A_EXTOUT_ACENTER 0x0a /* analog center */
-#define A_EXTOUT_ALFE 0x0b /* analog LFE */
-#define A_EXTOUT_ASIDE_L 0x0c /* analog side left - Audigy 2 ZS */
-#define A_EXTOUT_ASIDE_R 0x0d /* right - Audigy 2 ZS */
-#define A_EXTOUT_AREAR_L 0x0e /* analog rear left */
-#define A_EXTOUT_AREAR_R 0x0f /* right */
-#define A_EXTOUT_AC97_L 0x10 /* AC97 left (front) */
-#define A_EXTOUT_AC97_R 0x11 /* right */
-#define A_EXTOUT_ADC_CAP_L 0x16 /* ADC capture buffer left */
-#define A_EXTOUT_ADC_CAP_R 0x17 /* right */
-#define A_EXTOUT_MIC_CAP 0x18 /* Mic capture buffer */
-
-/* Audigy constants */
-#define A_C_00000000 0xc0
-#define A_C_00000001 0xc1
-#define A_C_00000002 0xc2
-#define A_C_00000003 0xc3
-#define A_C_00000004 0xc4
-#define A_C_00000008 0xc5
-#define A_C_00000010 0xc6
-#define A_C_00000020 0xc7
-#define A_C_00000100 0xc8
-#define A_C_00010000 0xc9
-#define A_C_00000800 0xca
-#define A_C_10000000 0xcb
-#define A_C_20000000 0xcc
-#define A_C_40000000 0xcd
-#define A_C_80000000 0xce
-#define A_C_7fffffff 0xcf
-#define A_C_ffffffff 0xd0
-#define A_C_fffffffe 0xd1
-#define A_C_c0000000 0xd2
-#define A_C_4f1bbcdc 0xd3
-#define A_C_5a7ef9db 0xd4
-#define A_C_00100000 0xd5
-#define A_GPR_ACCU 0xd6 /* ACCUM, accumulator */
-#define A_GPR_COND 0xd7 /* CCR, condition register */
-#define A_GPR_NOISE0 0xd8 /* noise source */
-#define A_GPR_NOISE1 0xd9 /* noise source */
-#define A_GPR_IRQ 0xda /* IRQ register */
-#define A_GPR_DBAC 0xdb /* TRAM Delay Base Address Counter - internal */
-#define A_GPR_DBACE 0xde /* TRAM Delay Base Address Counter - external */
-
-/* definitions for debug register */
-#define EMU10K1_DBG_ZC 0x80000000 /* zero tram counter */
-#define EMU10K1_DBG_SATURATION_OCCURED 0x02000000 /* saturation control */
-#define EMU10K1_DBG_SATURATION_ADDR 0x01ff0000 /* saturation address */
-#define EMU10K1_DBG_SINGLE_STEP 0x00008000 /* single step mode */
-#define EMU10K1_DBG_STEP 0x00004000 /* start single step */
-#define EMU10K1_DBG_CONDITION_CODE 0x00003e00 /* condition code */
-#define EMU10K1_DBG_SINGLE_STEP_ADDR 0x000001ff /* single step address */
-
-/* tank memory address line */
-#ifndef __KERNEL__
-#define TANKMEMADDRREG_ADDR_MASK 0x000fffff /* 20 bit tank address field */
-#define TANKMEMADDRREG_CLEAR 0x00800000 /* Clear tank memory */
-#define TANKMEMADDRREG_ALIGN 0x00400000 /* Align read or write relative to tank access */
-#define TANKMEMADDRREG_WRITE 0x00200000 /* Write to tank memory */
-#define TANKMEMADDRREG_READ 0x00100000 /* Read from tank memory */
-#endif
-
-struct snd_emu10k1_fx8010_info {
- unsigned int internal_tram_size; /* in samples */
- unsigned int external_tram_size; /* in samples */
- char fxbus_names[16][32]; /* names of FXBUSes */
- char extin_names[16][32]; /* names of external inputs */
- char extout_names[32][32]; /* names of external outputs */
- unsigned int gpr_controls; /* count of GPR controls */
-};
-
-#define EMU10K1_GPR_TRANSLATION_NONE 0
-#define EMU10K1_GPR_TRANSLATION_TABLE100 1
-#define EMU10K1_GPR_TRANSLATION_BASS 2
-#define EMU10K1_GPR_TRANSLATION_TREBLE 3
-#define EMU10K1_GPR_TRANSLATION_ONOFF 4
-
-struct snd_emu10k1_fx8010_control_gpr {
- struct snd_ctl_elem_id id; /* full control ID definition */
- unsigned int vcount; /* visible count */
- unsigned int count; /* count of GPR (1..16) */
- unsigned short gpr[32]; /* GPR number(s) */
- unsigned int value[32]; /* initial values */
- unsigned int min; /* minimum range */
- unsigned int max; /* maximum range */
- unsigned int translation; /* translation type (EMU10K1_GPR_TRANSLATION*) */
- const unsigned int *tlv;
-};
-
-/* old ABI without TLV support */
-struct snd_emu10k1_fx8010_control_old_gpr {
- struct snd_ctl_elem_id id;
- unsigned int vcount;
- unsigned int count;
- unsigned short gpr[32];
- unsigned int value[32];
- unsigned int min;
- unsigned int max;
- unsigned int translation;
-};
-
-struct snd_emu10k1_fx8010_code {
- char name[128];
-
- DECLARE_BITMAP(gpr_valid, 0x200); /* bitmask of valid initializers */
- __u32 __user *gpr_map; /* initializers */
-
- unsigned int gpr_add_control_count; /* count of GPR controls to add/replace */
- struct snd_emu10k1_fx8010_control_gpr __user *gpr_add_controls; /* GPR controls to add/replace */
-
- unsigned int gpr_del_control_count; /* count of GPR controls to remove */
- struct snd_ctl_elem_id __user *gpr_del_controls; /* IDs of GPR controls to remove */
-
- unsigned int gpr_list_control_count; /* count of GPR controls to list */
- unsigned int gpr_list_control_total; /* total count of GPR controls */
- struct snd_emu10k1_fx8010_control_gpr __user *gpr_list_controls; /* listed GPR controls */
-
- DECLARE_BITMAP(tram_valid, 0x100); /* bitmask of valid initializers */
- __u32 __user *tram_data_map; /* data initializers */
- __u32 __user *tram_addr_map; /* map initializers */
-
- DECLARE_BITMAP(code_valid, 1024); /* bitmask of valid instructions */
- __u32 __user *code; /* one instruction - 64 bits */
-};
-
-struct snd_emu10k1_fx8010_tram {
- unsigned int address; /* 31.bit == 1 -> external TRAM */
- unsigned int size; /* size in samples (4 bytes) */
- unsigned int *samples; /* pointer to samples (20-bit) */
- /* NULL->clear memory */
-};
-
-struct snd_emu10k1_fx8010_pcm_rec {
- unsigned int substream; /* substream number */
- unsigned int res1; /* reserved */
- unsigned int channels; /* 16-bit channels count, zero = remove this substream */
- unsigned int tram_start; /* ring buffer position in TRAM (in samples) */
- unsigned int buffer_size; /* count of buffered samples */
- unsigned short gpr_size; /* GPR containing size of ringbuffer in samples (host) */
- unsigned short gpr_ptr; /* GPR containing current pointer in the ring buffer (host = reset, FX8010) */
- unsigned short gpr_count; /* GPR containing count of samples between two interrupts (host) */
- unsigned short gpr_tmpcount; /* GPR containing current count of samples to interrupt (host = set, FX8010) */
- unsigned short gpr_trigger; /* GPR containing trigger (activate) information (host) */
- unsigned short gpr_running; /* GPR containing info if PCM is running (FX8010) */
- unsigned char pad; /* reserved */
- unsigned char etram[32]; /* external TRAM address & data (one per channel) */
- unsigned int res2; /* reserved */
-};
-
-#define SNDRV_EMU10K1_VERSION SNDRV_PROTOCOL_VERSION(1, 0, 1)
-
-#define SNDRV_EMU10K1_IOCTL_INFO _IOR ('H', 0x10, struct snd_emu10k1_fx8010_info)
-#define SNDRV_EMU10K1_IOCTL_CODE_POKE _IOW ('H', 0x11, struct snd_emu10k1_fx8010_code)
-#define SNDRV_EMU10K1_IOCTL_CODE_PEEK _IOWR('H', 0x12, struct snd_emu10k1_fx8010_code)
-#define SNDRV_EMU10K1_IOCTL_TRAM_SETUP _IOW ('H', 0x20, int)
-#define SNDRV_EMU10K1_IOCTL_TRAM_POKE _IOW ('H', 0x21, struct snd_emu10k1_fx8010_tram)
-#define SNDRV_EMU10K1_IOCTL_TRAM_PEEK _IOWR('H', 0x22, struct snd_emu10k1_fx8010_tram)
-#define SNDRV_EMU10K1_IOCTL_PCM_POKE _IOW ('H', 0x30, struct snd_emu10k1_fx8010_pcm_rec)
-#define SNDRV_EMU10K1_IOCTL_PCM_PEEK _IOWR('H', 0x31, struct snd_emu10k1_fx8010_pcm_rec)
-#define SNDRV_EMU10K1_IOCTL_PVERSION _IOR ('H', 0x40, int)
-#define SNDRV_EMU10K1_IOCTL_STOP _IO ('H', 0x80)
-#define SNDRV_EMU10K1_IOCTL_CONTINUE _IO ('H', 0x81)
-#define SNDRV_EMU10K1_IOCTL_ZERO_TRAM_COUNTER _IO ('H', 0x82)
-#define SNDRV_EMU10K1_IOCTL_SINGLE_STEP _IOW ('H', 0x83, int)
-#define SNDRV_EMU10K1_IOCTL_DBG_READ _IOR ('H', 0x84, int)
-
-/* typedefs for compatibility to user-space */
-typedef struct snd_emu10k1_fx8010_info emu10k1_fx8010_info_t;
-typedef struct snd_emu10k1_fx8010_control_gpr emu10k1_fx8010_control_gpr_t;
-typedef struct snd_emu10k1_fx8010_code emu10k1_fx8010_code_t;
-typedef struct snd_emu10k1_fx8010_tram emu10k1_fx8010_tram_t;
-typedef struct snd_emu10k1_fx8010_pcm_rec emu10k1_fx8010_pcm_t;
-
-#endif /* __SOUND_EMU10K1_H */
diff --git a/ANDROID_3.4.5/include/sound/emu10k1_synth.h b/ANDROID_3.4.5/include/sound/emu10k1_synth.h
deleted file mode 100644
index 6ef61c42..00000000
--- a/ANDROID_3.4.5/include/sound/emu10k1_synth.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef __EMU10K1_SYNTH_H
-#define __EMU10K1_SYNTH_H
-/*
- * Defines for the Emu10k1 WaveTable synth
- *
- * Copyright (C) 2000 Takashi Iwai <tiwai@suse.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
- */
-
-#include "emu10k1.h"
-#include "emux_synth.h"
-
-/* sequencer device id */
-#define SNDRV_SEQ_DEV_ID_EMU10K1_SYNTH "emu10k1-synth"
-
-/* argument for snd_seq_device_new */
-struct snd_emu10k1_synth_arg {
- struct snd_emu10k1 *hwptr; /* chip */
- int index; /* sequencer client index */
- int seq_ports; /* number of sequencer ports to be created */
- int max_voices; /* maximum number of voices for wavetable */
-};
-
-#define EMU10K1_MAX_MEMSIZE (32 * 1024 * 1024) /* 32MB */
-
-#endif
diff --git a/ANDROID_3.4.5/include/sound/emu8000.h b/ANDROID_3.4.5/include/sound/emu8000.h
deleted file mode 100644
index c8f66bde..00000000
--- a/ANDROID_3.4.5/include/sound/emu8000.h
+++ /dev/null
@@ -1,121 +0,0 @@
-#ifndef __SOUND_EMU8000_H
-#define __SOUND_EMU8000_H
-/*
- * Defines for the emu8000 (AWE32/64)
- *
- * Copyright (C) 1999 Steve Ratcliffe
- * Copyright (C) 1999-2000 Takashi Iwai <tiwai@suse.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
- */
-
-#include "emux_synth.h"
-#include "seq_kernel.h"
-
-/*
- * Hardware parameters.
- */
-#define EMU8000_MAX_DRAM (28 * 1024 * 1024) /* Max on-board mem is 28Mb ???*/
-#define EMU8000_DRAM_OFFSET 0x200000 /* Beginning of on board ram */
-#define EMU8000_CHANNELS 32 /* Number of hardware channels */
-#define EMU8000_DRAM_VOICES 30 /* number of normal voices */
-
-/* Flags to set a dma channel to read or write */
-#define EMU8000_RAM_READ 0
-#define EMU8000_RAM_WRITE 1
-#define EMU8000_RAM_CLOSE 2
-#define EMU8000_RAM_MODE_MASK 0x03
-#define EMU8000_RAM_RIGHT 0x10 /* use 'right' DMA channel */
-
-enum {
- EMU8000_CONTROL_BASS = 0,
- EMU8000_CONTROL_TREBLE,
- EMU8000_CONTROL_CHORUS_MODE,
- EMU8000_CONTROL_REVERB_MODE,
- EMU8000_CONTROL_FM_CHORUS_DEPTH,
- EMU8000_CONTROL_FM_REVERB_DEPTH,
- EMU8000_NUM_CONTROLS,
-};
-
-/*
- * Structure to hold all state information for the emu8000 driver.
- *
- * Note 1: The chip supports 32 channels in hardware this is max_channels
- * some of the channels may be used for other things so max_channels is
- * the number in use for wave voices.
- */
-struct snd_emu8000 {
-
- struct snd_emux *emu;
-
- int index; /* sequencer client index */
- int seq_ports; /* number of sequencer ports */
- int fm_chorus_depth; /* FM OPL3 chorus depth */
- int fm_reverb_depth; /* FM OPL3 reverb depth */
-
- int mem_size; /* memory size */
- unsigned long port1; /* Port usually base+0 */
- unsigned long port2; /* Port usually at base+0x400 */
- unsigned long port3; /* Port usually at base+0x800 */
- struct resource *res_port1;
- struct resource *res_port2;
- struct resource *res_port3;
- unsigned short last_reg;/* Last register command */
- spinlock_t reg_lock;
-
- int dram_checked;
-
- struct snd_card *card; /* The card that this belongs to */
-
- int chorus_mode;
- int reverb_mode;
- int bass_level;
- int treble_level;
-
- struct snd_util_memhdr *memhdr;
-
- spinlock_t control_lock;
- struct snd_kcontrol *controls[EMU8000_NUM_CONTROLS];
-
- struct snd_pcm *pcm; /* pcm on emu8000 wavetable */
-
-};
-
-/* sequencer device id */
-#define SNDRV_SEQ_DEV_ID_EMU8000 "emu8000-synth"
-
-
-/* exported functions */
-int snd_emu8000_new(struct snd_card *card, int device, long port, int seq_ports,
- struct snd_seq_device **ret);
-void snd_emu8000_poke(struct snd_emu8000 *emu, unsigned int port, unsigned int reg,
- unsigned int val);
-unsigned short snd_emu8000_peek(struct snd_emu8000 *emu, unsigned int port,
- unsigned int reg);
-void snd_emu8000_poke_dw(struct snd_emu8000 *emu, unsigned int port, unsigned int reg,
- unsigned int val);
-unsigned int snd_emu8000_peek_dw(struct snd_emu8000 *emu, unsigned int port,
- unsigned int reg);
-void snd_emu8000_dma_chan(struct snd_emu8000 *emu, int ch, int mode);
-
-void snd_emu8000_init_fm(struct snd_emu8000 *emu);
-
-void snd_emu8000_update_chorus_mode(struct snd_emu8000 *emu);
-void snd_emu8000_update_reverb_mode(struct snd_emu8000 *emu);
-void snd_emu8000_update_equalizer(struct snd_emu8000 *emu);
-int snd_emu8000_load_chorus_fx(struct snd_emu8000 *emu, int mode, const void __user *buf, long len);
-int snd_emu8000_load_reverb_fx(struct snd_emu8000 *emu, int mode, const void __user *buf, long len);
-
-#endif /* __SOUND_EMU8000_H */
diff --git a/ANDROID_3.4.5/include/sound/emu8000_reg.h b/ANDROID_3.4.5/include/sound/emu8000_reg.h
deleted file mode 100644
index 4b9827ac..00000000
--- a/ANDROID_3.4.5/include/sound/emu8000_reg.h
+++ /dev/null
@@ -1,207 +0,0 @@
-#ifndef __SOUND_EMU8000_REG_H
-#define __SOUND_EMU8000_REG_H
-/*
- * Register operations for the EMU8000
- *
- * Copyright (C) 1999 Steve Ratcliffe
- *
- * Based on awe_wave.c by Takashi Iwai
- *
- * 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
- *
- */
-
-/*
- * Data port addresses relative to the EMU base.
- */
-#define EMU8000_DATA0(e) ((e)->port1)
-#define EMU8000_DATA1(e) ((e)->port2)
-#define EMU8000_DATA2(e) ((e)->port2+2)
-#define EMU8000_DATA3(e) ((e)->port3)
-#define EMU8000_PTR(e) ((e)->port3+2)
-
-/*
- * Make a command from a register and channel.
- */
-#define EMU8000_CMD(reg, chan) ((reg)<<5 | (chan))
-
-/*
- * Commands to read and write the EMU8000 registers.
- * These macros should be used for all register accesses.
- */
-#define EMU8000_CPF_READ(emu, chan) \
- snd_emu8000_peek_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(0, (chan)))
-#define EMU8000_PTRX_READ(emu, chan) \
- snd_emu8000_peek_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(1, (chan)))
-#define EMU8000_CVCF_READ(emu, chan) \
- snd_emu8000_peek_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(2, (chan)))
-#define EMU8000_VTFT_READ(emu, chan) \
- snd_emu8000_peek_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(3, (chan)))
-#define EMU8000_PSST_READ(emu, chan) \
- snd_emu8000_peek_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(6, (chan)))
-#define EMU8000_CSL_READ(emu, chan) \
- snd_emu8000_peek_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(7, (chan)))
-#define EMU8000_CCCA_READ(emu, chan) \
- snd_emu8000_peek_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(0, (chan)))
-#define EMU8000_HWCF4_READ(emu) \
- snd_emu8000_peek_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 9))
-#define EMU8000_HWCF5_READ(emu) \
- snd_emu8000_peek_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 10))
-#define EMU8000_HWCF6_READ(emu) \
- snd_emu8000_peek_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 13))
-#define EMU8000_SMALR_READ(emu) \
- snd_emu8000_peek_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 20))
-#define EMU8000_SMARR_READ(emu) \
- snd_emu8000_peek_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 21))
-#define EMU8000_SMALW_READ(emu) \
- snd_emu8000_peek_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 22))
-#define EMU8000_SMARW_READ(emu) \
- snd_emu8000_peek_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 23))
-#define EMU8000_SMLD_READ(emu) \
- snd_emu8000_peek((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 26))
-#define EMU8000_SMRD_READ(emu) \
- snd_emu8000_peek((emu), EMU8000_DATA2(emu), EMU8000_CMD(1, 26))
-#define EMU8000_WC_READ(emu) \
- snd_emu8000_peek((emu), EMU8000_DATA2(emu), EMU8000_CMD(1, 27))
-#define EMU8000_HWCF1_READ(emu) \
- snd_emu8000_peek((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 29))
-#define EMU8000_HWCF2_READ(emu) \
- snd_emu8000_peek((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 30))
-#define EMU8000_HWCF3_READ(emu) \
- snd_emu8000_peek((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 31))
-#define EMU8000_INIT1_READ(emu, chan) \
- snd_emu8000_peek((emu), EMU8000_DATA1(emu), EMU8000_CMD(2, (chan)))
-#define EMU8000_INIT2_READ(emu, chan) \
- snd_emu8000_peek((emu), EMU8000_DATA2(emu), EMU8000_CMD(2, (chan)))
-#define EMU8000_INIT3_READ(emu, chan) \
- snd_emu8000_peek((emu), EMU8000_DATA1(emu), EMU8000_CMD(3, (chan)))
-#define EMU8000_INIT4_READ(emu, chan) \
- snd_emu8000_peek((emu), EMU8000_DATA2(emu), EMU8000_CMD(3, (chan)))
-#define EMU8000_ENVVOL_READ(emu, chan) \
- snd_emu8000_peek((emu), EMU8000_DATA1(emu), EMU8000_CMD(4, (chan)))
-#define EMU8000_DCYSUSV_READ(emu, chan) \
- snd_emu8000_peek((emu), EMU8000_DATA1(emu), EMU8000_CMD(5, (chan)))
-#define EMU8000_ENVVAL_READ(emu, chan) \
- snd_emu8000_peek((emu), EMU8000_DATA1(emu), EMU8000_CMD(6, (chan)))
-#define EMU8000_DCYSUS_READ(emu, chan) \
- snd_emu8000_peek((emu), EMU8000_DATA1(emu), EMU8000_CMD(7, (chan)))
-#define EMU8000_ATKHLDV_READ(emu, chan) \
- snd_emu8000_peek((emu), EMU8000_DATA2(emu), EMU8000_CMD(4, (chan)))
-#define EMU8000_LFO1VAL_READ(emu, chan) \
- snd_emu8000_peek((emu), EMU8000_DATA2(emu), EMU8000_CMD(5, (chan)))
-#define EMU8000_ATKHLD_READ(emu, chan) \
- snd_emu8000_peek((emu), EMU8000_DATA2(emu), EMU8000_CMD(6, (chan)))
-#define EMU8000_LFO2VAL_READ(emu, chan) \
- snd_emu8000_peek((emu), EMU8000_DATA2(emu), EMU8000_CMD(7, (chan)))
-#define EMU8000_IP_READ(emu, chan) \
- snd_emu8000_peek((emu), EMU8000_DATA3(emu), EMU8000_CMD(0, (chan)))
-#define EMU8000_IFATN_READ(emu, chan) \
- snd_emu8000_peek((emu), EMU8000_DATA3(emu), EMU8000_CMD(1, (chan)))
-#define EMU8000_PEFE_READ(emu, chan) \
- snd_emu8000_peek((emu), EMU8000_DATA3(emu), EMU8000_CMD(2, (chan)))
-#define EMU8000_FMMOD_READ(emu, chan) \
- snd_emu8000_peek((emu), EMU8000_DATA3(emu), EMU8000_CMD(3, (chan)))
-#define EMU8000_TREMFRQ_READ(emu, chan) \
- snd_emu8000_peek((emu), EMU8000_DATA3(emu), EMU8000_CMD(4, (chan)))
-#define EMU8000_FM2FRQ2_READ(emu, chan) \
- snd_emu8000_peek((emu), EMU8000_DATA3(emu), EMU8000_CMD(5, (chan)))
-
-
-#define EMU8000_CPF_WRITE(emu, chan, val) \
- snd_emu8000_poke_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(0, (chan)), (val))
-#define EMU8000_PTRX_WRITE(emu, chan, val) \
- snd_emu8000_poke_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(1, (chan)), (val))
-#define EMU8000_CVCF_WRITE(emu, chan, val) \
- snd_emu8000_poke_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(2, (chan)), (val))
-#define EMU8000_VTFT_WRITE(emu, chan, val) \
- snd_emu8000_poke_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(3, (chan)), (val))
-#define EMU8000_PSST_WRITE(emu, chan, val) \
- snd_emu8000_poke_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(6, (chan)), (val))
-#define EMU8000_CSL_WRITE(emu, chan, val) \
- snd_emu8000_poke_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(7, (chan)), (val))
-#define EMU8000_CCCA_WRITE(emu, chan, val) \
- snd_emu8000_poke_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(0, (chan)), (val))
-#define EMU8000_HWCF4_WRITE(emu, val) \
- snd_emu8000_poke_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 9), (val))
-#define EMU8000_HWCF5_WRITE(emu, val) \
- snd_emu8000_poke_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 10), (val))
-#define EMU8000_HWCF6_WRITE(emu, val) \
- snd_emu8000_poke_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 13), (val))
-/* this register is not documented */
-#define EMU8000_HWCF7_WRITE(emu, val) \
- snd_emu8000_poke_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 14), (val))
-#define EMU8000_SMALR_WRITE(emu, val) \
- snd_emu8000_poke_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 20), (val))
-#define EMU8000_SMARR_WRITE(emu, val) \
- snd_emu8000_poke_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 21), (val))
-#define EMU8000_SMALW_WRITE(emu, val) \
- snd_emu8000_poke_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 22), (val))
-#define EMU8000_SMARW_WRITE(emu, val) \
- snd_emu8000_poke_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 23), (val))
-#define EMU8000_SMLD_WRITE(emu, val) \
- snd_emu8000_poke((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 26), (val))
-#define EMU8000_SMRD_WRITE(emu, val) \
- snd_emu8000_poke((emu), EMU8000_DATA2(emu), EMU8000_CMD(1, 26), (val))
-#define EMU8000_WC_WRITE(emu, val) \
- snd_emu8000_poke((emu), EMU8000_DATA2(emu), EMU8000_CMD(1, 27), (val))
-#define EMU8000_HWCF1_WRITE(emu, val) \
- snd_emu8000_poke((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 29), (val))
-#define EMU8000_HWCF2_WRITE(emu, val) \
- snd_emu8000_poke((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 30), (val))
-#define EMU8000_HWCF3_WRITE(emu, val) \
- snd_emu8000_poke((emu), EMU8000_DATA1(emu), EMU8000_CMD(1, 31), (val))
-#define EMU8000_INIT1_WRITE(emu, chan, val) \
- snd_emu8000_poke((emu), EMU8000_DATA1(emu), EMU8000_CMD(2, (chan)), (val))
-#define EMU8000_INIT2_WRITE(emu, chan, val) \
- snd_emu8000_poke((emu), EMU8000_DATA2(emu), EMU8000_CMD(2, (chan)), (val))
-#define EMU8000_INIT3_WRITE(emu, chan, val) \
- snd_emu8000_poke((emu), EMU8000_DATA1(emu), EMU8000_CMD(3, (chan)), (val))
-#define EMU8000_INIT4_WRITE(emu, chan, val) \
- snd_emu8000_poke((emu), EMU8000_DATA2(emu), EMU8000_CMD(3, (chan)), (val))
-#define EMU8000_ENVVOL_WRITE(emu, chan, val) \
- snd_emu8000_poke((emu), EMU8000_DATA1(emu), EMU8000_CMD(4, (chan)), (val))
-#define EMU8000_DCYSUSV_WRITE(emu, chan, val) \
- snd_emu8000_poke((emu), EMU8000_DATA1(emu), EMU8000_CMD(5, (chan)), (val))
-#define EMU8000_ENVVAL_WRITE(emu, chan, val) \
- snd_emu8000_poke((emu), EMU8000_DATA1(emu), EMU8000_CMD(6, (chan)), (val))
-#define EMU8000_DCYSUS_WRITE(emu, chan, val) \
- snd_emu8000_poke((emu), EMU8000_DATA1(emu), EMU8000_CMD(7, (chan)), (val))
-#define EMU8000_ATKHLDV_WRITE(emu, chan, val) \
- snd_emu8000_poke((emu), EMU8000_DATA2(emu), EMU8000_CMD(4, (chan)), (val))
-#define EMU8000_LFO1VAL_WRITE(emu, chan, val) \
- snd_emu8000_poke((emu), EMU8000_DATA2(emu), EMU8000_CMD(5, (chan)), (val))
-#define EMU8000_ATKHLD_WRITE(emu, chan, val) \
- snd_emu8000_poke((emu), EMU8000_DATA2(emu), EMU8000_CMD(6, (chan)), (val))
-#define EMU8000_LFO2VAL_WRITE(emu, chan, val) \
- snd_emu8000_poke((emu), EMU8000_DATA2(emu), EMU8000_CMD(7, (chan)), (val))
-#define EMU8000_IP_WRITE(emu, chan, val) \
- snd_emu8000_poke((emu), EMU8000_DATA3(emu), EMU8000_CMD(0, (chan)), (val))
-#define EMU8000_IFATN_WRITE(emu, chan, val) \
- snd_emu8000_poke((emu), EMU8000_DATA3(emu), EMU8000_CMD(1, (chan)), (val))
-#define EMU8000_PEFE_WRITE(emu, chan, val) \
- snd_emu8000_poke((emu), EMU8000_DATA3(emu), EMU8000_CMD(2, (chan)), (val))
-#define EMU8000_FMMOD_WRITE(emu, chan, val) \
- snd_emu8000_poke((emu), EMU8000_DATA3(emu), EMU8000_CMD(3, (chan)), (val))
-#define EMU8000_TREMFRQ_WRITE(emu, chan, val) \
- snd_emu8000_poke((emu), EMU8000_DATA3(emu), EMU8000_CMD(4, (chan)), (val))
-#define EMU8000_FM2FRQ2_WRITE(emu, chan, val) \
- snd_emu8000_poke((emu), EMU8000_DATA3(emu), EMU8000_CMD(5, (chan)), (val))
-
-#define EMU8000_0080_WRITE(emu, chan, val) \
- snd_emu8000_poke_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(4, (chan)), (val))
-#define EMU8000_00A0_WRITE(emu, chan, val) \
- snd_emu8000_poke_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(5, (chan)), (val))
-
-#endif /* __SOUND_EMU8000_REG_H */
diff --git a/ANDROID_3.4.5/include/sound/emux_legacy.h b/ANDROID_3.4.5/include/sound/emux_legacy.h
deleted file mode 100644
index 6fe3da2a..00000000
--- a/ANDROID_3.4.5/include/sound/emux_legacy.h
+++ /dev/null
@@ -1,146 +0,0 @@
-#ifndef __SOUND_EMUX_LEGACY_H
-#define __SOUND_EMUX_LEGACY_H
-
-/*
- * Copyright (c) 1999-2000 Takashi Iwai <tiwai@suse.de>
- *
- * Definitions of OSS compatible headers for Emu8000 device informations
- *
- * 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 "seq_oss_legacy.h"
-
-/*
- * awe hardware controls
- */
-
-#define _EMUX_OSS_DEBUG_MODE 0x00
-#define _EMUX_OSS_REVERB_MODE 0x01
-#define _EMUX_OSS_CHORUS_MODE 0x02
-#define _EMUX_OSS_REMOVE_LAST_SAMPLES 0x03
-#define _EMUX_OSS_INITIALIZE_CHIP 0x04
-#define _EMUX_OSS_SEND_EFFECT 0x05
-#define _EMUX_OSS_TERMINATE_CHANNEL 0x06
-#define _EMUX_OSS_TERMINATE_ALL 0x07
-#define _EMUX_OSS_INITIAL_VOLUME 0x08
-#define _EMUX_OSS_INITIAL_ATTEN _EMUX_OSS_INITIAL_VOLUME
-#define _EMUX_OSS_RESET_CHANNEL 0x09
-#define _EMUX_OSS_CHANNEL_MODE 0x0a
-#define _EMUX_OSS_DRUM_CHANNELS 0x0b
-#define _EMUX_OSS_MISC_MODE 0x0c
-#define _EMUX_OSS_RELEASE_ALL 0x0d
-#define _EMUX_OSS_NOTEOFF_ALL 0x0e
-#define _EMUX_OSS_CHN_PRESSURE 0x0f
-#define _EMUX_OSS_EQUALIZER 0x11
-
-#define _EMUX_OSS_MODE_FLAG 0x80
-#define _EMUX_OSS_COOKED_FLAG 0x40 /* not supported */
-#define _EMUX_OSS_MODE_VALUE_MASK 0x3F
-
-
-/*
- * mode type definitions
- */
-enum {
-/* 0*/ EMUX_MD_EXCLUSIVE_OFF, /* obsolete */
-/* 1*/ EMUX_MD_EXCLUSIVE_ON, /* obsolete */
-/* 2*/ EMUX_MD_VERSION, /* read only */
-/* 3*/ EMUX_MD_EXCLUSIVE_SOUND, /* 0/1: exclusive note on (default=1) */
-/* 4*/ EMUX_MD_REALTIME_PAN, /* 0/1: do realtime pan change (default=1) */
-/* 5*/ EMUX_MD_GUS_BANK, /* bank number for GUS patches (default=0) */
-/* 6*/ EMUX_MD_KEEP_EFFECT, /* 0/1: keep effect values, (default=0) */
-/* 7*/ EMUX_MD_ZERO_ATTEN, /* attenuation of max volume (default=32) */
-/* 8*/ EMUX_MD_CHN_PRIOR, /* 0/1: set MIDI channel priority mode (default=1) */
-/* 9*/ EMUX_MD_MOD_SENSE, /* integer: modwheel sensitivity (def=18) */
-/*10*/ EMUX_MD_DEF_PRESET, /* integer: default preset number (def=0) */
-/*11*/ EMUX_MD_DEF_BANK, /* integer: default bank number (def=0) */
-/*12*/ EMUX_MD_DEF_DRUM, /* integer: default drumset number (def=0) */
-/*13*/ EMUX_MD_TOGGLE_DRUM_BANK, /* 0/1: toggle drum flag with bank# (def=0) */
-/*14*/ EMUX_MD_NEW_VOLUME_CALC, /* 0/1: volume calculation mode (def=1) */
-/*15*/ EMUX_MD_CHORUS_MODE, /* integer: chorus mode (def=2) */
-/*16*/ EMUX_MD_REVERB_MODE, /* integer: chorus mode (def=4) */
-/*17*/ EMUX_MD_BASS_LEVEL, /* integer: bass level (def=5) */
-/*18*/ EMUX_MD_TREBLE_LEVEL, /* integer: treble level (def=9) */
-/*19*/ EMUX_MD_DEBUG_MODE, /* integer: debug level (def=0) */
-/*20*/ EMUX_MD_PAN_EXCHANGE, /* 0/1: exchange panning direction (def=0) */
- EMUX_MD_END,
-};
-
-
-/*
- * effect parameters
- */
-enum {
-
-/* modulation envelope parameters */
-/* 0*/ EMUX_FX_ENV1_DELAY, /* WORD: ENVVAL */
-/* 1*/ EMUX_FX_ENV1_ATTACK, /* BYTE: up ATKHLD */
-/* 2*/ EMUX_FX_ENV1_HOLD, /* BYTE: lw ATKHLD */
-/* 3*/ EMUX_FX_ENV1_DECAY, /* BYTE: lw DCYSUS */
-/* 4*/ EMUX_FX_ENV1_RELEASE, /* BYTE: lw DCYSUS */
-/* 5*/ EMUX_FX_ENV1_SUSTAIN, /* BYTE: up DCYSUS */
-/* 6*/ EMUX_FX_ENV1_PITCH, /* BYTE: up PEFE */
-/* 7*/ EMUX_FX_ENV1_CUTOFF, /* BYTE: lw PEFE */
-
-/* volume envelope parameters */
-/* 8*/ EMUX_FX_ENV2_DELAY, /* WORD: ENVVOL */
-/* 9*/ EMUX_FX_ENV2_ATTACK, /* BYTE: up ATKHLDV */
-/*10*/ EMUX_FX_ENV2_HOLD, /* BYTE: lw ATKHLDV */
-/*11*/ EMUX_FX_ENV2_DECAY, /* BYTE: lw DCYSUSV */
-/*12*/ EMUX_FX_ENV2_RELEASE, /* BYTE: lw DCYSUSV */
-/*13*/ EMUX_FX_ENV2_SUSTAIN, /* BYTE: up DCYSUSV */
-
-/* LFO1 (tremolo & vibrato) parameters */
-/*14*/ EMUX_FX_LFO1_DELAY, /* WORD: LFO1VAL */
-/*15*/ EMUX_FX_LFO1_FREQ, /* BYTE: lo TREMFRQ */
-/*16*/ EMUX_FX_LFO1_VOLUME, /* BYTE: up TREMFRQ */
-/*17*/ EMUX_FX_LFO1_PITCH, /* BYTE: up FMMOD */
-/*18*/ EMUX_FX_LFO1_CUTOFF, /* BYTE: lo FMMOD */
-
-/* LFO2 (vibrato) parameters */
-/*19*/ EMUX_FX_LFO2_DELAY, /* WORD: LFO2VAL */
-/*20*/ EMUX_FX_LFO2_FREQ, /* BYTE: lo FM2FRQ2 */
-/*21*/ EMUX_FX_LFO2_PITCH, /* BYTE: up FM2FRQ2 */
-
-/* Other overall effect parameters */
-/*22*/ EMUX_FX_INIT_PITCH, /* SHORT: pitch offset */
-/*23*/ EMUX_FX_CHORUS, /* BYTE: chorus effects send (0-255) */
-/*24*/ EMUX_FX_REVERB, /* BYTE: reverb effects send (0-255) */
-/*25*/ EMUX_FX_CUTOFF, /* BYTE: up IFATN */
-/*26*/ EMUX_FX_FILTERQ, /* BYTE: up CCCA */
-
-/* Sample / loop offset changes */
-/*27*/ EMUX_FX_SAMPLE_START, /* SHORT: offset */
-/*28*/ EMUX_FX_LOOP_START, /* SHORT: offset */
-/*29*/ EMUX_FX_LOOP_END, /* SHORT: offset */
-/*30*/ EMUX_FX_COARSE_SAMPLE_START, /* SHORT: upper word offset */
-/*31*/ EMUX_FX_COARSE_LOOP_START, /* SHORT: upper word offset */
-/*32*/ EMUX_FX_COARSE_LOOP_END, /* SHORT: upper word offset */
-/*33*/ EMUX_FX_ATTEN, /* BYTE: lo IFATN */
-
- EMUX_FX_END,
-};
-/* number of effects */
-#define EMUX_NUM_EFFECTS EMUX_FX_END
-
-/* effect flag values */
-#define EMUX_FX_FLAG_OFF 0
-#define EMUX_FX_FLAG_SET 1
-#define EMUX_FX_FLAG_ADD 2
-
-
-#endif /* __SOUND_EMUX_LEGACY_H */
diff --git a/ANDROID_3.4.5/include/sound/emux_synth.h b/ANDROID_3.4.5/include/sound/emux_synth.h
deleted file mode 100644
index d8cb51b8..00000000
--- a/ANDROID_3.4.5/include/sound/emux_synth.h
+++ /dev/null
@@ -1,244 +0,0 @@
-#ifndef __SOUND_EMUX_SYNTH_H
-#define __SOUND_EMUX_SYNTH_H
-
-/*
- * Defines for the Emu-series WaveTable chip
- *
- * Copyright (C) 2000 Takashi Iwai <tiwai@suse.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
- */
-
-#include "seq_kernel.h"
-#include "seq_device.h"
-#include "soundfont.h"
-#include "seq_midi_emul.h"
-#ifdef CONFIG_SND_SEQUENCER_OSS
-#include "seq_oss.h"
-#endif
-#include "emux_legacy.h"
-#include "seq_virmidi.h"
-
-/*
- * compile flags
- */
-#define SNDRV_EMUX_USE_RAW_EFFECT
-
-struct snd_emux;
-struct snd_emux_port;
-struct snd_emux_voice;
-struct snd_emux_effect_table;
-
-/*
- * operators
- */
-struct snd_emux_operators {
- struct module *owner;
- struct snd_emux_voice *(*get_voice)(struct snd_emux *emu,
- struct snd_emux_port *port);
- int (*prepare)(struct snd_emux_voice *vp);
- void (*trigger)(struct snd_emux_voice *vp);
- void (*release)(struct snd_emux_voice *vp);
- void (*update)(struct snd_emux_voice *vp, int update);
- void (*terminate)(struct snd_emux_voice *vp);
- void (*free_voice)(struct snd_emux_voice *vp);
- void (*reset)(struct snd_emux *emu, int ch);
- /* the first parameters are struct snd_emux */
- int (*sample_new)(struct snd_emux *emu, struct snd_sf_sample *sp,
- struct snd_util_memhdr *hdr,
- const void __user *data, long count);
- int (*sample_free)(struct snd_emux *emu, struct snd_sf_sample *sp,
- struct snd_util_memhdr *hdr);
- void (*sample_reset)(struct snd_emux *emu);
- int (*load_fx)(struct snd_emux *emu, int type, int arg,
- const void __user *data, long count);
- void (*sysex)(struct snd_emux *emu, char *buf, int len, int parsed,
- struct snd_midi_channel_set *chset);
-#ifdef CONFIG_SND_SEQUENCER_OSS
- int (*oss_ioctl)(struct snd_emux *emu, int cmd, int p1, int p2);
-#endif
-};
-
-
-/*
- * constant values
- */
-#define SNDRV_EMUX_MAX_PORTS 32 /* max # of sequencer ports */
-#define SNDRV_EMUX_MAX_VOICES 64 /* max # of voices */
-#define SNDRV_EMUX_MAX_MULTI_VOICES 16 /* max # of playable voices
- * simultineously
- */
-
-/*
- * flags
- */
-#define SNDRV_EMUX_ACCEPT_ROM (1<<0)
-
-/*
- * emuX wavetable
- */
-struct snd_emux {
-
- struct snd_card *card; /* assigned card */
-
- /* following should be initialized before registration */
- int max_voices; /* Number of voices */
- int mem_size; /* memory size (in byte) */
- int num_ports; /* number of ports to be created */
- int pitch_shift; /* pitch shift value (for Emu10k1) */
- struct snd_emux_operators ops; /* operators */
- void *hw; /* hardware */
- unsigned long flags; /* other conditions */
- int midi_ports; /* number of virtual midi devices */
- int midi_devidx; /* device offset of virtual midi */
- unsigned int linear_panning: 1; /* panning is linear (sbawe = 1, emu10k1 = 0) */
- int hwdep_idx; /* hwdep device index */
- struct snd_hwdep *hwdep; /* hwdep device */
-
- /* private */
- int num_voices; /* current number of voices */
- struct snd_sf_list *sflist; /* root of SoundFont list */
- struct snd_emux_voice *voices; /* Voices (EMU 'channel') */
- int use_time; /* allocation counter */
- spinlock_t voice_lock; /* Lock for voice access */
- struct mutex register_mutex;
- int client; /* For the sequencer client */
- int ports[SNDRV_EMUX_MAX_PORTS]; /* The ports for this device */
- struct snd_emux_port *portptrs[SNDRV_EMUX_MAX_PORTS];
- int used; /* use counter */
- char *name; /* name of the device (internal) */
- struct snd_rawmidi **vmidi;
- struct timer_list tlist; /* for pending note-offs */
- int timer_active;
-
- struct snd_util_memhdr *memhdr; /* memory chunk information */
-
-#ifdef CONFIG_PROC_FS
- struct snd_info_entry *proc;
-#endif
-
-#ifdef CONFIG_SND_SEQUENCER_OSS
- struct snd_seq_device *oss_synth;
-#endif
-};
-
-
-/*
- * sequencer port information
- */
-struct snd_emux_port {
-
- struct snd_midi_channel_set chset;
- struct snd_emux *emu;
-
- char port_mode; /* operation mode */
- int volume_atten; /* emuX raw attenuation */
- unsigned long drum_flags; /* drum bitmaps */
- int ctrls[EMUX_MD_END]; /* control parameters */
-#ifdef SNDRV_EMUX_USE_RAW_EFFECT
- struct snd_emux_effect_table *effect;
-#endif
-#ifdef CONFIG_SND_SEQUENCER_OSS
- struct snd_seq_oss_arg *oss_arg;
-#endif
-};
-
-/* port_mode */
-#define SNDRV_EMUX_PORT_MODE_MIDI 0 /* normal MIDI port */
-#define SNDRV_EMUX_PORT_MODE_OSS_SYNTH 1 /* OSS synth port */
-#define SNDRV_EMUX_PORT_MODE_OSS_MIDI 2 /* OSS multi channel synth port */
-
-/*
- * A structure to keep track of each hardware voice
- */
-struct snd_emux_voice {
- int ch; /* Hardware channel number */
-
- int state; /* status */
-#define SNDRV_EMUX_ST_OFF 0x00 /* Not playing, and inactive */
-#define SNDRV_EMUX_ST_ON 0x01 /* Note on */
-#define SNDRV_EMUX_ST_RELEASED (0x02|SNDRV_EMUX_ST_ON) /* Note released */
-#define SNDRV_EMUX_ST_SUSTAINED (0x04|SNDRV_EMUX_ST_ON) /* Note sustained */
-#define SNDRV_EMUX_ST_STANDBY (0x08|SNDRV_EMUX_ST_ON) /* Waiting to be triggered */
-#define SNDRV_EMUX_ST_PENDING (0x10|SNDRV_EMUX_ST_ON) /* Note will be released */
-#define SNDRV_EMUX_ST_LOCKED 0x100 /* Not accessible */
-
- unsigned int time; /* An allocation time */
- unsigned char note; /* Note currently assigned to this voice */
- unsigned char key;
- unsigned char velocity; /* Velocity of current note */
-
- struct snd_sf_zone *zone; /* Zone assigned to this note */
- void *block; /* sample block pointer (optional) */
- struct snd_midi_channel *chan; /* Midi channel for this note */
- struct snd_emux_port *port; /* associated port */
- struct snd_emux *emu; /* assigned root info */
- void *hw; /* hardware pointer (emu8000 or emu10k1) */
- unsigned long ontime; /* jiffies at note triggered */
-
- /* Emu8k/Emu10k1 registers */
- struct soundfont_voice_info reg;
-
- /* additional registers */
- int avol; /* volume attenuation */
- int acutoff; /* cutoff target */
- int apitch; /* pitch offset */
- int apan; /* pan/aux pair */
- int aaux;
- int ptarget; /* pitch target */
- int vtarget; /* volume target */
- int ftarget; /* filter target */
-
-};
-
-/*
- * update flags (can be combined)
- */
-#define SNDRV_EMUX_UPDATE_VOLUME (1<<0)
-#define SNDRV_EMUX_UPDATE_PITCH (1<<1)
-#define SNDRV_EMUX_UPDATE_PAN (1<<2)
-#define SNDRV_EMUX_UPDATE_FMMOD (1<<3)
-#define SNDRV_EMUX_UPDATE_TREMFREQ (1<<4)
-#define SNDRV_EMUX_UPDATE_FM2FRQ2 (1<<5)
-#define SNDRV_EMUX_UPDATE_Q (1<<6)
-
-
-#ifdef SNDRV_EMUX_USE_RAW_EFFECT
-/*
- * effect table
- */
-struct snd_emux_effect_table {
- /* Emu8000 specific effects */
- short val[EMUX_NUM_EFFECTS];
- unsigned char flag[EMUX_NUM_EFFECTS];
-};
-#endif /* SNDRV_EMUX_USE_RAW_EFFECT */
-
-
-/*
- * prototypes - interface to Emu10k1 and Emu8k routines
- */
-int snd_emux_new(struct snd_emux **remu);
-int snd_emux_register(struct snd_emux *emu, struct snd_card *card, int index, char *name);
-int snd_emux_free(struct snd_emux *emu);
-
-/*
- * exported functions
- */
-void snd_emux_terminate_all(struct snd_emux *emu);
-void snd_emux_lock_voice(struct snd_emux *emu, int voice);
-void snd_emux_unlock_voice(struct snd_emux *emu, int voice);
-
-#endif /* __SOUND_EMUX_SYNTH_H */
diff --git a/ANDROID_3.4.5/include/sound/es1688.h b/ANDROID_3.4.5/include/sound/es1688.h
deleted file mode 100644
index 3ec7ecbe..00000000
--- a/ANDROID_3.4.5/include/sound/es1688.h
+++ /dev/null
@@ -1,122 +0,0 @@
-#ifndef __SOUND_ES1688_H
-#define __SOUND_ES1688_H
-
-/*
- * Header file for ES488/ES1688
- * Copyright (c) by Jaroslav Kysela <perex@perex.cz>
- *
- *
- * 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 "control.h"
-#include "pcm.h"
-#include <linux/interrupt.h>
-
-#define ES1688_HW_AUTO 0x0000
-#define ES1688_HW_688 0x0001
-#define ES1688_HW_1688 0x0002
-
-struct snd_es1688 {
- unsigned long port; /* port of ESS chip */
- struct resource *res_port;
- unsigned long mpu_port; /* MPU-401 port of ESS chip */
- int irq; /* IRQ number of ESS chip */
- int mpu_irq; /* MPU IRQ */
- int dma8; /* 8-bit DMA */
- unsigned short version; /* version of ESS chip */
- unsigned short hardware; /* see to ES1688_HW_XXXX */
-
- unsigned short trigger_value;
- unsigned char pad;
- unsigned int dma_size;
-
- struct snd_pcm *pcm;
- struct snd_pcm_substream *playback_substream;
- struct snd_pcm_substream *capture_substream;
-
- spinlock_t reg_lock;
- spinlock_t mixer_lock;
-};
-
-/* I/O ports */
-
-#define ES1688P(codec, x) ((codec)->port + e_s_s_ESS1688##x)
-
-#define e_s_s_ESS1688RESET 0x6
-#define e_s_s_ESS1688READ 0xa
-#define e_s_s_ESS1688WRITE 0xc
-#define e_s_s_ESS1688COMMAND 0xc
-#define e_s_s_ESS1688STATUS 0xc
-#define e_s_s_ESS1688DATA_AVAIL 0xe
-#define e_s_s_ESS1688DATA_AVAIL_16 0xf
-#define e_s_s_ESS1688MIXER_ADDR 0x4
-#define e_s_s_ESS1688MIXER_DATA 0x5
-#define e_s_s_ESS1688OPL3_LEFT 0x0
-#define e_s_s_ESS1688OPL3_RIGHT 0x2
-#define e_s_s_ESS1688OPL3_BOTH 0x8
-#define e_s_s_ESS1688ENABLE0 0x0
-#define e_s_s_ESS1688ENABLE1 0x9
-#define e_s_s_ESS1688ENABLE2 0xb
-#define e_s_s_ESS1688INIT1 0x7
-
-#define ES1688_DSP_CMD_DMAOFF 0xd0
-#define ES1688_DSP_CMD_SPKON 0xd1
-#define ES1688_DSP_CMD_SPKOFF 0xd3
-#define ES1688_DSP_CMD_DMAON 0xd4
-
-#define ES1688_PCM_DEV 0x14
-#define ES1688_MIC_DEV 0x1a
-#define ES1688_REC_DEV 0x1c
-#define ES1688_MASTER_DEV 0x32
-#define ES1688_FM_DEV 0x36
-#define ES1688_CD_DEV 0x38
-#define ES1688_AUX_DEV 0x3a
-#define ES1688_SPEAKER_DEV 0x3c
-#define ES1688_LINE_DEV 0x3e
-#define ES1688_RECLEV_DEV 0xb4
-
-#define ES1688_MIXS_MASK 0x17
-#define ES1688_MIXS_MIC 0x00
-#define ES1688_MIXS_MIC_MASTER 0x01
-#define ES1688_MIXS_CD 0x02
-#define ES1688_MIXS_AOUT 0x03
-#define ES1688_MIXS_MIC1 0x04
-#define ES1688_MIXS_REC_MIX 0x05
-#define ES1688_MIXS_LINE 0x06
-#define ES1688_MIXS_MASTER 0x07
-#define ES1688_MIXS_MUTE 0x10
-
-/*
-
- */
-
-void snd_es1688_mixer_write(struct snd_es1688 *chip, unsigned char reg, unsigned char data);
-
-int snd_es1688_create(struct snd_card *card,
- struct snd_es1688 *chip,
- unsigned long port,
- unsigned long mpu_port,
- int irq,
- int mpu_irq,
- int dma8,
- unsigned short hardware);
-int snd_es1688_pcm(struct snd_card *card, struct snd_es1688 *chip, int device,
- struct snd_pcm **rpcm);
-int snd_es1688_mixer(struct snd_card *card, struct snd_es1688 *chip);
-int snd_es1688_reset(struct snd_es1688 *chip);
-
-#endif /* __SOUND_ES1688_H */
diff --git a/ANDROID_3.4.5/include/sound/gus.h b/ANDROID_3.4.5/include/sound/gus.h
deleted file mode 100644
index 841bb8df..00000000
--- a/ANDROID_3.4.5/include/sound/gus.h
+++ /dev/null
@@ -1,631 +0,0 @@
-#ifndef __SOUND_GUS_H
-#define __SOUND_GUS_H
-
-/*
- * Global structures used for GUS part of ALSA driver
- * Copyright (c) by Jaroslav Kysela <perex@perex.cz>
- *
- *
- * 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 "pcm.h"
-#include "rawmidi.h"
-#include "timer.h"
-#include "seq_midi_emul.h"
-#include "seq_device.h"
-#include <asm/io.h>
-
-/* IO ports */
-
-#define GUSP(gus, x) ((gus)->gf1.port + SNDRV_g_u_s_##x)
-
-#define SNDRV_g_u_s_MIDICTRL (0x320-0x220)
-#define SNDRV_g_u_s_MIDISTAT (0x320-0x220)
-#define SNDRV_g_u_s_MIDIDATA (0x321-0x220)
-
-#define SNDRV_g_u_s_GF1PAGE (0x322-0x220)
-#define SNDRV_g_u_s_GF1REGSEL (0x323-0x220)
-#define SNDRV_g_u_s_GF1DATALOW (0x324-0x220)
-#define SNDRV_g_u_s_GF1DATAHIGH (0x325-0x220)
-#define SNDRV_g_u_s_IRQSTAT (0x226-0x220)
-#define SNDRV_g_u_s_TIMERCNTRL (0x228-0x220)
-#define SNDRV_g_u_s_TIMERDATA (0x229-0x220)
-#define SNDRV_g_u_s_DRAM (0x327-0x220)
-#define SNDRV_g_u_s_MIXCNTRLREG (0x220-0x220)
-#define SNDRV_g_u_s_IRQDMACNTRLREG (0x22b-0x220)
-#define SNDRV_g_u_s_REGCNTRLS (0x22f-0x220)
-#define SNDRV_g_u_s_BOARDVERSION (0x726-0x220)
-#define SNDRV_g_u_s_MIXCNTRLPORT (0x726-0x220)
-#define SNDRV_g_u_s_IVER (0x325-0x220)
-#define SNDRV_g_u_s_MIXDATAPORT (0x326-0x220)
-#define SNDRV_g_u_s_MAXCNTRLPORT (0x326-0x220)
-
-/* GF1 registers */
-
-/* global registers */
-#define SNDRV_GF1_GB_ACTIVE_VOICES 0x0e
-#define SNDRV_GF1_GB_VOICES_IRQ 0x0f
-#define SNDRV_GF1_GB_GLOBAL_MODE 0x19
-#define SNDRV_GF1_GW_LFO_BASE 0x1a
-#define SNDRV_GF1_GB_VOICES_IRQ_READ 0x1f
-#define SNDRV_GF1_GB_DRAM_DMA_CONTROL 0x41
-#define SNDRV_GF1_GW_DRAM_DMA_LOW 0x42
-#define SNDRV_GF1_GW_DRAM_IO_LOW 0x43
-#define SNDRV_GF1_GB_DRAM_IO_HIGH 0x44
-#define SNDRV_GF1_GB_SOUND_BLASTER_CONTROL 0x45
-#define SNDRV_GF1_GB_ADLIB_TIMER_1 0x46
-#define SNDRV_GF1_GB_ADLIB_TIMER_2 0x47
-#define SNDRV_GF1_GB_RECORD_RATE 0x48
-#define SNDRV_GF1_GB_REC_DMA_CONTROL 0x49
-#define SNDRV_GF1_GB_JOYSTICK_DAC_LEVEL 0x4b
-#define SNDRV_GF1_GB_RESET 0x4c
-#define SNDRV_GF1_GB_DRAM_DMA_HIGH 0x50
-#define SNDRV_GF1_GW_DRAM_IO16 0x51
-#define SNDRV_GF1_GW_MEMORY_CONFIG 0x52
-#define SNDRV_GF1_GB_MEMORY_CONTROL 0x53
-#define SNDRV_GF1_GW_FIFO_RECORD_BASE_ADDR 0x54
-#define SNDRV_GF1_GW_FIFO_PLAY_BASE_ADDR 0x55
-#define SNDRV_GF1_GW_FIFO_SIZE 0x56
-#define SNDRV_GF1_GW_INTERLEAVE 0x57
-#define SNDRV_GF1_GB_COMPATIBILITY 0x59
-#define SNDRV_GF1_GB_DECODE_CONTROL 0x5a
-#define SNDRV_GF1_GB_VERSION_NUMBER 0x5b
-#define SNDRV_GF1_GB_MPU401_CONTROL_A 0x5c
-#define SNDRV_GF1_GB_MPU401_CONTROL_B 0x5d
-#define SNDRV_GF1_GB_EMULATION_IRQ 0x60
-/* voice specific registers */
-#define SNDRV_GF1_VB_ADDRESS_CONTROL 0x00
-#define SNDRV_GF1_VW_FREQUENCY 0x01
-#define SNDRV_GF1_VW_START_HIGH 0x02
-#define SNDRV_GF1_VW_START_LOW 0x03
-#define SNDRV_GF1_VA_START SNDRV_GF1_VW_START_HIGH
-#define SNDRV_GF1_VW_END_HIGH 0x04
-#define SNDRV_GF1_VW_END_LOW 0x05
-#define SNDRV_GF1_VA_END SNDRV_GF1_VW_END_HIGH
-#define SNDRV_GF1_VB_VOLUME_RATE 0x06
-#define SNDRV_GF1_VB_VOLUME_START 0x07
-#define SNDRV_GF1_VB_VOLUME_END 0x08
-#define SNDRV_GF1_VW_VOLUME 0x09
-#define SNDRV_GF1_VW_CURRENT_HIGH 0x0a
-#define SNDRV_GF1_VW_CURRENT_LOW 0x0b
-#define SNDRV_GF1_VA_CURRENT SNDRV_GF1_VW_CURRENT_HIGH
-#define SNDRV_GF1_VB_PAN 0x0c
-#define SNDRV_GF1_VW_OFFSET_RIGHT 0x0c
-#define SNDRV_GF1_VB_VOLUME_CONTROL 0x0d
-#define SNDRV_GF1_VB_UPPER_ADDRESS 0x10
-#define SNDRV_GF1_VW_EFFECT_HIGH 0x11
-#define SNDRV_GF1_VW_EFFECT_LOW 0x12
-#define SNDRV_GF1_VA_EFFECT SNDRV_GF1_VW_EFFECT_HIGH
-#define SNDRV_GF1_VW_OFFSET_LEFT 0x13
-#define SNDRV_GF1_VB_ACCUMULATOR 0x14
-#define SNDRV_GF1_VB_MODE 0x15
-#define SNDRV_GF1_VW_EFFECT_VOLUME 0x16
-#define SNDRV_GF1_VB_FREQUENCY_LFO 0x17
-#define SNDRV_GF1_VB_VOLUME_LFO 0x18
-#define SNDRV_GF1_VW_OFFSET_RIGHT_FINAL 0x1b
-#define SNDRV_GF1_VW_OFFSET_LEFT_FINAL 0x1c
-#define SNDRV_GF1_VW_EFFECT_VOLUME_FINAL 0x1d
-
-/* ICS registers */
-
-#define SNDRV_ICS_MIC_DEV 0
-#define SNDRV_ICS_LINE_DEV 1
-#define SNDRV_ICS_CD_DEV 2
-#define SNDRV_ICS_GF1_DEV 3
-#define SNDRV_ICS_NONE_DEV 4
-#define SNDRV_ICS_MASTER_DEV 5
-
-/* LFO */
-
-#define SNDRV_LFO_TREMOLO 0
-#define SNDRV_LFO_VIBRATO 1
-
-/* misc */
-
-#define SNDRV_GF1_DMA_UNSIGNED 0x80
-#define SNDRV_GF1_DMA_16BIT 0x40
-#define SNDRV_GF1_DMA_IRQ 0x20
-#define SNDRV_GF1_DMA_WIDTH16 0x04
-#define SNDRV_GF1_DMA_READ 0x02 /* read from GUS's DRAM */
-#define SNDRV_GF1_DMA_ENABLE 0x01
-
-/* ramp ranges */
-
-#define SNDRV_GF1_ATTEN(x) (snd_gf1_atten_table[x])
-#define SNDRV_GF1_MIN_VOLUME 1800
-#define SNDRV_GF1_MAX_VOLUME 4095
-#define SNDRV_GF1_MIN_OFFSET (SNDRV_GF1_MIN_VOLUME>>4)
-#define SNDRV_GF1_MAX_OFFSET 255
-#define SNDRV_GF1_MAX_TDEPTH 90
-
-/* defines for memory manager */
-
-#define SNDRV_GF1_MEM_BLOCK_16BIT 0x0001
-
-#define SNDRV_GF1_MEM_OWNER_DRIVER 0x0001
-#define SNDRV_GF1_MEM_OWNER_WAVE_SIMPLE 0x0002
-#define SNDRV_GF1_MEM_OWNER_WAVE_GF1 0x0003
-#define SNDRV_GF1_MEM_OWNER_WAVE_IWFFFF 0x0004
-
-/* constants for interrupt handlers */
-
-#define SNDRV_GF1_HANDLER_MIDI_OUT 0x00010000
-#define SNDRV_GF1_HANDLER_MIDI_IN 0x00020000
-#define SNDRV_GF1_HANDLER_TIMER1 0x00040000
-#define SNDRV_GF1_HANDLER_TIMER2 0x00080000
-#define SNDRV_GF1_HANDLER_VOICE 0x00100000
-#define SNDRV_GF1_HANDLER_DMA_WRITE 0x00200000
-#define SNDRV_GF1_HANDLER_DMA_READ 0x00400000
-#define SNDRV_GF1_HANDLER_ALL (0xffff0000&~SNDRV_GF1_HANDLER_VOICE)
-
-/* constants for DMA flags */
-
-#define SNDRV_GF1_DMA_TRIGGER 1
-
-/* --- */
-
-struct snd_gus_card;
-
-/* GF1 specific structure */
-
-struct snd_gf1_bank_info {
- unsigned int address;
- unsigned int size;
-};
-
-struct snd_gf1_mem_block {
- unsigned short flags; /* flags - SNDRV_GF1_MEM_BLOCK_XXXX */
- unsigned short owner; /* owner - SNDRV_GF1_MEM_OWNER_XXXX */
- unsigned int share; /* share count */
- unsigned int share_id[4]; /* share ID */
- unsigned int ptr;
- unsigned int size;
- char *name;
- struct snd_gf1_mem_block *next;
- struct snd_gf1_mem_block *prev;
-};
-
-struct snd_gf1_mem {
- struct snd_gf1_bank_info banks_8[4];
- struct snd_gf1_bank_info banks_16[4];
- struct snd_gf1_mem_block *first;
- struct snd_gf1_mem_block *last;
- struct mutex memory_mutex;
-};
-
-struct snd_gf1_dma_block {
- void *buffer; /* buffer in computer's RAM */
- unsigned long buf_addr; /* buffer address */
- unsigned int addr; /* address in onboard memory */
- unsigned int count; /* count in bytes */
- unsigned int cmd; /* DMA command (format) */
- void (*ack)(struct snd_gus_card * gus, void *private_data);
- void *private_data;
- struct snd_gf1_dma_block *next;
-};
-
-struct snd_gus_port {
- struct snd_midi_channel_set * chset;
- struct snd_gus_card * gus;
- int mode; /* operation mode */
- int client; /* sequencer client number */
- int port; /* sequencer port number */
- unsigned int midi_has_voices: 1;
-};
-
-struct snd_gus_voice;
-
-#define SNDRV_GF1_VOICE_TYPE_PCM 0
-#define SNDRV_GF1_VOICE_TYPE_SYNTH 1
-#define SNDRV_GF1_VOICE_TYPE_MIDI 2
-
-#define SNDRV_GF1_VFLG_RUNNING (1<<0)
-#define SNDRV_GF1_VFLG_EFFECT_TIMER1 (1<<1)
-#define SNDRV_GF1_VFLG_PAN (1<<2)
-
-enum snd_gus_volume_state {
- VENV_BEFORE,
- VENV_ATTACK,
- VENV_SUSTAIN,
- VENV_RELEASE,
- VENV_DONE,
- VENV_VOLUME
-};
-
-struct snd_gus_voice {
- int number;
- unsigned int use: 1,
- pcm: 1,
- synth:1,
- midi: 1;
- unsigned int flags;
- unsigned char client;
- unsigned char port;
- unsigned char index;
- unsigned char pad;
-
-#ifdef CONFIG_SND_DEBUG
- unsigned int interrupt_stat_wave;
- unsigned int interrupt_stat_volume;
-#endif
- void (*handler_wave) (struct snd_gus_card * gus, struct snd_gus_voice * voice);
- void (*handler_volume) (struct snd_gus_card * gus, struct snd_gus_voice * voice);
- void (*handler_effect) (struct snd_gus_card * gus, struct snd_gus_voice * voice);
- void (*volume_change) (struct snd_gus_card * gus);
-
- struct snd_gus_sample_ops *sample_ops;
-
- /* running status / registers */
-
- unsigned short fc_register;
- unsigned short fc_lfo;
- unsigned short gf1_volume;
- unsigned char control;
- unsigned char mode;
- unsigned char gf1_pan;
- unsigned char effect_accumulator;
- unsigned char volume_control;
- unsigned char venv_value_next;
- enum snd_gus_volume_state venv_state;
- enum snd_gus_volume_state venv_state_prev;
- unsigned short vlo;
- unsigned short vro;
- unsigned short gf1_effect_volume;
-
- /* --- */
-
- void *private_data;
- void (*private_free)(struct snd_gus_voice *voice);
-};
-
-struct snd_gf1 {
-
- unsigned int enh_mode:1, /* enhanced mode (GFA1) */
- hw_lfo:1, /* use hardware LFO */
- sw_lfo:1, /* use software LFO */
- effect:1; /* use effect voices */
-
- unsigned long port; /* port of GF1 chip */
- struct resource *res_port1;
- struct resource *res_port2;
- int irq; /* IRQ number */
- int dma1; /* DMA1 number */
- int dma2; /* DMA2 number */
- unsigned int memory; /* GUS's DRAM size in bytes */
- unsigned int rom_memory; /* GUS's ROM size in bytes */
- unsigned int rom_present; /* bitmask */
- unsigned int rom_banks; /* GUS's ROM banks */
-
- struct snd_gf1_mem mem_alloc;
-
- /* registers */
- unsigned short reg_page;
- unsigned short reg_regsel;
- unsigned short reg_data8;
- unsigned short reg_data16;
- unsigned short reg_irqstat;
- unsigned short reg_dram;
- unsigned short reg_timerctrl;
- unsigned short reg_timerdata;
- unsigned char ics_regs[6][2];
- /* --------- */
-
- unsigned char active_voices; /* active voices */
- unsigned char active_voice; /* selected voice (GF1PAGE register) */
-
- struct snd_gus_voice voices[32]; /* GF1 voices */
-
- unsigned int default_voice_address;
-
- unsigned short playback_freq; /* GF1 playback (mixing) frequency */
- unsigned short mode; /* see to SNDRV_GF1_MODE_XXXX */
- unsigned char volume_ramp;
- unsigned char smooth_pan;
- unsigned char full_range_pan;
- unsigned char pad0;
-
- unsigned char *lfos;
-
- /* interrupt handlers */
-
- void (*interrupt_handler_midi_out) (struct snd_gus_card * gus);
- void (*interrupt_handler_midi_in) (struct snd_gus_card * gus);
- void (*interrupt_handler_timer1) (struct snd_gus_card * gus);
- void (*interrupt_handler_timer2) (struct snd_gus_card * gus);
- void (*interrupt_handler_dma_write) (struct snd_gus_card * gus);
- void (*interrupt_handler_dma_read) (struct snd_gus_card * gus);
-
-#ifdef CONFIG_SND_DEBUG
- unsigned int interrupt_stat_midi_out;
- unsigned int interrupt_stat_midi_in;
- unsigned int interrupt_stat_timer1;
- unsigned int interrupt_stat_timer2;
- unsigned int interrupt_stat_dma_write;
- unsigned int interrupt_stat_dma_read;
- unsigned int interrupt_stat_voice_lost;
-#endif
-
- /* synthesizer */
-
- int seq_client;
- struct snd_gus_port seq_ports[4];
-
- /* timer */
-
- unsigned short timer_enabled;
- struct snd_timer *timer1;
- struct snd_timer *timer2;
-
- /* midi */
-
- unsigned short uart_cmd;
- unsigned int uart_framing;
- unsigned int uart_overrun;
-
- /* dma operations */
-
- unsigned int dma_flags;
- unsigned int dma_shared;
- struct snd_gf1_dma_block *dma_data_pcm;
- struct snd_gf1_dma_block *dma_data_pcm_last;
- struct snd_gf1_dma_block *dma_data_synth;
- struct snd_gf1_dma_block *dma_data_synth_last;
- void (*dma_ack)(struct snd_gus_card * gus, void *private_data);
- void *dma_private_data;
-
- /* pcm */
- int pcm_channels;
- int pcm_alloc_voices;
- unsigned short pcm_volume_level_left;
- unsigned short pcm_volume_level_right;
- unsigned short pcm_volume_level_left1;
- unsigned short pcm_volume_level_right1;
-
- unsigned char pcm_rcntrl_reg;
- unsigned char pad_end;
-};
-
-/* main structure for GUS card */
-
-struct snd_gus_card {
- struct snd_card *card;
-
- unsigned int
- initialized: 1, /* resources were initialized */
- equal_irq:1, /* GF1 and CODEC shares IRQ (GUS MAX only) */
- equal_dma:1, /* if dma channels are equal (not valid for daughter board) */
- ics_flag:1, /* have we ICS mixer chip */
- ics_flipped:1, /* ICS mixer have flipped some channels? */
- codec_flag:1, /* have we CODEC chip? */
- max_flag:1, /* have we GUS MAX card? */
- max_ctrl_flag:1, /* have we original GUS MAX card? */
- daughter_flag:1, /* have we daughter board? */
- interwave:1, /* hey - we have InterWave card */
- ess_flag:1, /* ESS chip found... GUS Extreme */
- ace_flag:1, /* GUS ACE detected */
- uart_enable:1; /* enable MIDI UART */
- unsigned short revision; /* revision of chip */
- unsigned short max_cntrl_val; /* GUS MAX control value */
- unsigned short mix_cntrl_reg; /* mixer control register */
- unsigned short joystick_dac; /* joystick DAC level */
- int timer_dev; /* timer device */
-
- struct snd_gf1 gf1; /* gf1 specific variables */
- struct snd_pcm *pcm;
- struct snd_pcm_substream *pcm_cap_substream;
- unsigned int c_dma_size;
- unsigned int c_period_size;
- unsigned int c_pos;
-
- struct snd_rawmidi *midi_uart;
- struct snd_rawmidi_substream *midi_substream_output;
- struct snd_rawmidi_substream *midi_substream_input;
-
- spinlock_t reg_lock;
- spinlock_t voice_alloc;
- spinlock_t active_voice_lock;
- spinlock_t event_lock;
- spinlock_t dma_lock;
- spinlock_t pcm_volume_level_lock;
- spinlock_t uart_cmd_lock;
- struct mutex dma_mutex;
- struct mutex register_mutex;
-};
-
-/* I/O functions for GF1/InterWave chip - gus_io.c */
-
-static inline void snd_gf1_select_voice(struct snd_gus_card * gus, int voice)
-{
- unsigned long flags;
-
- spin_lock_irqsave(&gus->active_voice_lock, flags);
- if (voice != gus->gf1.active_voice) {
- gus->gf1.active_voice = voice;
- outb(voice, GUSP(gus, GF1PAGE));
- }
- spin_unlock_irqrestore(&gus->active_voice_lock, flags);
-}
-
-static inline void snd_gf1_uart_cmd(struct snd_gus_card * gus, unsigned char b)
-{
- outb(gus->gf1.uart_cmd = b, GUSP(gus, MIDICTRL));
-}
-
-static inline unsigned char snd_gf1_uart_stat(struct snd_gus_card * gus)
-{
- return inb(GUSP(gus, MIDISTAT));
-}
-
-static inline void snd_gf1_uart_put(struct snd_gus_card * gus, unsigned char b)
-{
- outb(b, GUSP(gus, MIDIDATA));
-}
-
-static inline unsigned char snd_gf1_uart_get(struct snd_gus_card * gus)
-{
- return inb(GUSP(gus, MIDIDATA));
-}
-
-extern void snd_gf1_delay(struct snd_gus_card * gus);
-
-extern void snd_gf1_ctrl_stop(struct snd_gus_card * gus, unsigned char reg);
-
-extern void snd_gf1_write8(struct snd_gus_card * gus, unsigned char reg, unsigned char data);
-extern unsigned char snd_gf1_look8(struct snd_gus_card * gus, unsigned char reg);
-static inline unsigned char snd_gf1_read8(struct snd_gus_card * gus, unsigned char reg)
-{
- return snd_gf1_look8(gus, reg | 0x80);
-}
-extern void snd_gf1_write16(struct snd_gus_card * gus, unsigned char reg, unsigned int data);
-extern unsigned short snd_gf1_look16(struct snd_gus_card * gus, unsigned char reg);
-static inline unsigned short snd_gf1_read16(struct snd_gus_card * gus, unsigned char reg)
-{
- return snd_gf1_look16(gus, reg | 0x80);
-}
-extern void snd_gf1_adlib_write(struct snd_gus_card * gus, unsigned char reg, unsigned char data);
-extern void snd_gf1_dram_addr(struct snd_gus_card * gus, unsigned int addr);
-extern void snd_gf1_poke(struct snd_gus_card * gus, unsigned int addr, unsigned char data);
-extern unsigned char snd_gf1_peek(struct snd_gus_card * gus, unsigned int addr);
-extern void snd_gf1_write_addr(struct snd_gus_card * gus, unsigned char reg, unsigned int addr, short w_16bit);
-extern unsigned int snd_gf1_read_addr(struct snd_gus_card * gus, unsigned char reg, short w_16bit);
-extern void snd_gf1_i_ctrl_stop(struct snd_gus_card * gus, unsigned char reg);
-extern void snd_gf1_i_write8(struct snd_gus_card * gus, unsigned char reg, unsigned char data);
-extern unsigned char snd_gf1_i_look8(struct snd_gus_card * gus, unsigned char reg);
-extern void snd_gf1_i_write16(struct snd_gus_card * gus, unsigned char reg, unsigned int data);
-static inline unsigned char snd_gf1_i_read8(struct snd_gus_card * gus, unsigned char reg)
-{
- return snd_gf1_i_look8(gus, reg | 0x80);
-}
-extern unsigned short snd_gf1_i_look16(struct snd_gus_card * gus, unsigned char reg);
-static inline unsigned short snd_gf1_i_read16(struct snd_gus_card * gus, unsigned char reg)
-{
- return snd_gf1_i_look16(gus, reg | 0x80);
-}
-
-extern void snd_gf1_select_active_voices(struct snd_gus_card * gus);
-
-/* gus_lfo.c */
-
-struct _SND_IW_LFO_PROGRAM {
- unsigned short freq_and_control;
- unsigned char depth_final;
- unsigned char depth_inc;
- unsigned short twave;
- unsigned short depth;
-};
-
-#if 0
-extern irqreturn_t snd_gf1_lfo_effect_interrupt(struct snd_gus_card * gus, snd_gf1_voice_t * voice);
-#endif
-extern void snd_gf1_lfo_init(struct snd_gus_card * gus);
-extern void snd_gf1_lfo_done(struct snd_gus_card * gus);
-extern void snd_gf1_lfo_program(struct snd_gus_card * gus, int voice, int lfo_type, struct _SND_IW_LFO_PROGRAM *program);
-extern void snd_gf1_lfo_enable(struct snd_gus_card * gus, int voice, int lfo_type);
-extern void snd_gf1_lfo_disable(struct snd_gus_card * gus, int voice, int lfo_type);
-extern void snd_gf1_lfo_change_freq(struct snd_gus_card * gus, int voice, int lfo_type, int freq);
-extern void snd_gf1_lfo_change_depth(struct snd_gus_card * gus, int voice, int lfo_type, int depth);
-extern void snd_gf1_lfo_setup(struct snd_gus_card * gus, int voice, int lfo_type, int freq, int current_depth, int depth, int sweep, int shape);
-extern void snd_gf1_lfo_shutdown(struct snd_gus_card * gus, int voice, int lfo_type);
-#if 0
-extern void snd_gf1_lfo_command(struct snd_gus_card * gus, int voice, unsigned char *command);
-#endif
-
-/* gus_mem.c */
-
-void snd_gf1_mem_lock(struct snd_gf1_mem * alloc, int xup);
-int snd_gf1_mem_xfree(struct snd_gf1_mem * alloc, struct snd_gf1_mem_block * block);
-struct snd_gf1_mem_block *snd_gf1_mem_alloc(struct snd_gf1_mem * alloc, int owner,
- char *name, int size, int w_16,
- int align, unsigned int *share_id);
-int snd_gf1_mem_free(struct snd_gf1_mem * alloc, unsigned int address);
-int snd_gf1_mem_free_owner(struct snd_gf1_mem * alloc, int owner);
-int snd_gf1_mem_init(struct snd_gus_card * gus);
-int snd_gf1_mem_done(struct snd_gus_card * gus);
-
-/* gus_mem_proc.c */
-
-int snd_gf1_mem_proc_init(struct snd_gus_card * gus);
-
-/* gus_dma.c */
-
-int snd_gf1_dma_init(struct snd_gus_card * gus);
-int snd_gf1_dma_done(struct snd_gus_card * gus);
-int snd_gf1_dma_transfer_block(struct snd_gus_card * gus,
- struct snd_gf1_dma_block * block,
- int atomic,
- int synth);
-
-/* gus_volume.c */
-
-unsigned short snd_gf1_lvol_to_gvol_raw(unsigned int vol);
-unsigned short snd_gf1_translate_freq(struct snd_gus_card * gus, unsigned int freq2);
-
-/* gus_reset.c */
-
-void snd_gf1_set_default_handlers(struct snd_gus_card * gus, unsigned int what);
-void snd_gf1_smart_stop_voice(struct snd_gus_card * gus, unsigned short voice);
-void snd_gf1_stop_voice(struct snd_gus_card * gus, unsigned short voice);
-void snd_gf1_stop_voices(struct snd_gus_card * gus, unsigned short v_min, unsigned short v_max);
-struct snd_gus_voice *snd_gf1_alloc_voice(struct snd_gus_card * gus, int type, int client, int port);
-void snd_gf1_free_voice(struct snd_gus_card * gus, struct snd_gus_voice *voice);
-int snd_gf1_start(struct snd_gus_card * gus);
-int snd_gf1_stop(struct snd_gus_card * gus);
-
-/* gus_mixer.c */
-
-int snd_gf1_new_mixer(struct snd_gus_card * gus);
-
-/* gus_pcm.c */
-
-int snd_gf1_pcm_new(struct snd_gus_card * gus, int pcm_dev, int control_index, struct snd_pcm ** rpcm);
-
-#ifdef CONFIG_SND_DEBUG
-extern void snd_gf1_print_voice_registers(struct snd_gus_card * gus);
-#endif
-
-/* gus.c */
-
-int snd_gus_use_inc(struct snd_gus_card * gus);
-void snd_gus_use_dec(struct snd_gus_card * gus);
-int snd_gus_create(struct snd_card *card,
- unsigned long port,
- int irq, int dma1, int dma2,
- int timer_dev,
- int voices,
- int pcm_channels,
- int effect,
- struct snd_gus_card ** rgus);
-int snd_gus_initialize(struct snd_gus_card * gus);
-
-/* gus_irq.c */
-
-irqreturn_t snd_gus_interrupt(int irq, void *dev_id);
-#ifdef CONFIG_SND_DEBUG
-void snd_gus_irq_profile_init(struct snd_gus_card *gus);
-#endif
-
-/* gus_uart.c */
-
-int snd_gf1_rawmidi_new(struct snd_gus_card * gus, int device, struct snd_rawmidi **rrawmidi);
-
-/* gus_dram.c */
-int snd_gus_dram_write(struct snd_gus_card *gus, char __user *ptr,
- unsigned int addr, unsigned int size);
-int snd_gus_dram_read(struct snd_gus_card *gus, char __user *ptr,
- unsigned int addr, unsigned int size, int rom);
-
-#endif /* __SOUND_GUS_H */
diff --git a/ANDROID_3.4.5/include/sound/hda_hwdep.h b/ANDROID_3.4.5/include/sound/hda_hwdep.h
deleted file mode 100644
index 1c0034e8..00000000
--- a/ANDROID_3.4.5/include/sound/hda_hwdep.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * HWDEP Interface for HD-audio codec
- *
- * Copyright (c) 2007 Takashi Iwai <tiwai@suse.de>
- *
- * This driver 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 driver 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
- */
-
-#ifndef __SOUND_HDA_HWDEP_H
-#define __SOUND_HDA_HWDEP_H
-
-#define HDA_HWDEP_VERSION ((1 << 16) | (0 << 8) | (0 << 0)) /* 1.0.0 */
-
-/* verb */
-#define HDA_REG_NID_SHIFT 24
-#define HDA_REG_VERB_SHIFT 8
-#define HDA_REG_VAL_SHIFT 0
-#define HDA_VERB(nid,verb,param) ((nid)<<24 | (verb)<<8 | (param))
-
-struct hda_verb_ioctl {
- u32 verb; /* HDA_VERB() */
- u32 res; /* response */
-};
-
-/*
- * ioctls
- */
-#define HDA_IOCTL_PVERSION _IOR('H', 0x10, int)
-#define HDA_IOCTL_VERB_WRITE _IOWR('H', 0x11, struct hda_verb_ioctl)
-#define HDA_IOCTL_GET_WCAP _IOWR('H', 0x12, struct hda_verb_ioctl)
-
-#endif
diff --git a/ANDROID_3.4.5/include/sound/hdsp.h b/ANDROID_3.4.5/include/sound/hdsp.h
deleted file mode 100644
index 0909a384..00000000
--- a/ANDROID_3.4.5/include/sound/hdsp.h
+++ /dev/null
@@ -1,110 +0,0 @@
-#ifndef __SOUND_HDSP_H
-#define __SOUND_HDSP_H
-
-/*
- * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <linux/types.h>
-
-#define HDSP_MATRIX_MIXER_SIZE 2048
-
-enum HDSP_IO_Type {
- Digiface,
- Multiface,
- H9652,
- H9632,
- RPM,
- Undefined,
-};
-
-struct hdsp_peak_rms {
- __u32 input_peaks[26];
- __u32 playback_peaks[26];
- __u32 output_peaks[28];
- __u64 input_rms[26];
- __u64 playback_rms[26];
- /* These are only used for H96xx cards */
- __u64 output_rms[26];
-};
-
-#define SNDRV_HDSP_IOCTL_GET_PEAK_RMS _IOR('H', 0x40, struct hdsp_peak_rms)
-
-struct hdsp_config_info {
- unsigned char pref_sync_ref;
- unsigned char wordclock_sync_check;
- unsigned char spdif_sync_check;
- unsigned char adatsync_sync_check;
- unsigned char adat_sync_check[3];
- unsigned char spdif_in;
- unsigned char spdif_out;
- unsigned char spdif_professional;
- unsigned char spdif_emphasis;
- unsigned char spdif_nonaudio;
- unsigned int spdif_sample_rate;
- unsigned int system_sample_rate;
- unsigned int autosync_sample_rate;
- unsigned char system_clock_mode;
- unsigned char clock_source;
- unsigned char autosync_ref;
- unsigned char line_out;
- unsigned char passthru;
- unsigned char da_gain;
- unsigned char ad_gain;
- unsigned char phone_gain;
- unsigned char xlr_breakout_cable;
- unsigned char analog_extension_board;
-};
-
-#define SNDRV_HDSP_IOCTL_GET_CONFIG_INFO _IOR('H', 0x41, struct hdsp_config_info)
-
-struct hdsp_firmware {
- void __user *firmware_data; /* 24413 x 4 bytes */
-};
-
-#define SNDRV_HDSP_IOCTL_UPLOAD_FIRMWARE _IOW('H', 0x42, struct hdsp_firmware)
-
-struct hdsp_version {
- enum HDSP_IO_Type io_type;
- unsigned short firmware_rev;
-};
-
-#define SNDRV_HDSP_IOCTL_GET_VERSION _IOR('H', 0x43, struct hdsp_version)
-
-struct hdsp_mixer {
- unsigned short matrix[HDSP_MATRIX_MIXER_SIZE];
-};
-
-#define SNDRV_HDSP_IOCTL_GET_MIXER _IOR('H', 0x44, struct hdsp_mixer)
-
-struct hdsp_9632_aeb {
- int aebi;
- int aebo;
-};
-
-#define SNDRV_HDSP_IOCTL_GET_9632_AEB _IOR('H', 0x45, struct hdsp_9632_aeb)
-
-/* typedefs for compatibility to user-space */
-typedef enum HDSP_IO_Type HDSP_IO_Type;
-typedef struct hdsp_peak_rms hdsp_peak_rms_t;
-typedef struct hdsp_config_info hdsp_config_info_t;
-typedef struct hdsp_firmware hdsp_firmware_t;
-typedef struct hdsp_version hdsp_version_t;
-typedef struct hdsp_mixer hdsp_mixer_t;
-typedef struct hdsp_9632_aeb hdsp_9632_aeb_t;
-
-#endif /* __SOUND_HDSP_H */
diff --git a/ANDROID_3.4.5/include/sound/hdspm.h b/ANDROID_3.4.5/include/sound/hdspm.h
deleted file mode 100644
index 1f59ea2a..00000000
--- a/ANDROID_3.4.5/include/sound/hdspm.h
+++ /dev/null
@@ -1,229 +0,0 @@
-#ifndef __SOUND_HDSPM_H
-#define __SOUND_HDSPM_H
-/*
- * Copyright (C) 2003 Winfried Ritsch (IEM)
- * based on hdsp.h from Thomas Charbonnel (thomas@undata.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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-/* Maximum channels is 64 even on 56Mode you have 64playbacks to matrix */
-#define HDSPM_MAX_CHANNELS 64
-
-enum hdspm_io_type {
- MADI,
- MADIface,
- AIO,
- AES32,
- RayDAT
-};
-
-enum hdspm_speed {
- ss,
- ds,
- qs
-};
-
-/* -------------------- IOCTL Peak/RMS Meters -------------------- */
-
-struct hdspm_peak_rms {
- uint32_t input_peaks[64];
- uint32_t playback_peaks[64];
- uint32_t output_peaks[64];
-
- uint64_t input_rms[64];
- uint64_t playback_rms[64];
- uint64_t output_rms[64];
-
- uint8_t speed; /* enum {ss, ds, qs} */
- int status2;
-};
-
-#define SNDRV_HDSPM_IOCTL_GET_PEAK_RMS \
- _IOR('H', 0x42, struct hdspm_peak_rms)
-
-/* ------------ CONFIG block IOCTL ---------------------- */
-
-struct hdspm_config {
- unsigned char pref_sync_ref;
- unsigned char wordclock_sync_check;
- unsigned char madi_sync_check;
- unsigned int system_sample_rate;
- unsigned int autosync_sample_rate;
- unsigned char system_clock_mode;
- unsigned char clock_source;
- unsigned char autosync_ref;
- unsigned char line_out;
- unsigned int passthru;
- unsigned int analog_out;
-};
-
-#define SNDRV_HDSPM_IOCTL_GET_CONFIG \
- _IOR('H', 0x41, struct hdspm_config)
-
-/**
- * If there's a TCO (TimeCode Option) board installed,
- * there are further options and status data available.
- * The hdspm_ltc structure contains the current SMPTE
- * timecode and some status information and can be
- * obtained via SNDRV_HDSPM_IOCTL_GET_LTC or in the
- * hdspm_status struct.
- **/
-
-enum hdspm_ltc_format {
- format_invalid,
- fps_24,
- fps_25,
- fps_2997,
- fps_30
-};
-
-enum hdspm_ltc_frame {
- frame_invalid,
- drop_frame,
- full_frame
-};
-
-enum hdspm_ltc_input_format {
- ntsc,
- pal,
- no_video
-};
-
-struct hdspm_ltc {
- unsigned int ltc;
-
- enum hdspm_ltc_format format;
- enum hdspm_ltc_frame frame;
- enum hdspm_ltc_input_format input_format;
-};
-
-#define SNDRV_HDSPM_IOCTL_GET_LTC _IOR('H', 0x46, struct hdspm_mixer_ioctl)
-
-/**
- * The status data reflects the device's current state
- * as determined by the card's configuration and
- * connection status.
- **/
-
-enum hdspm_sync {
- hdspm_sync_no_lock = 0,
- hdspm_sync_lock = 1,
- hdspm_sync_sync = 2
-};
-
-enum hdspm_madi_input {
- hdspm_input_optical = 0,
- hdspm_input_coax = 1
-};
-
-enum hdspm_madi_channel_format {
- hdspm_format_ch_64 = 0,
- hdspm_format_ch_56 = 1
-};
-
-enum hdspm_madi_frame_format {
- hdspm_frame_48 = 0,
- hdspm_frame_96 = 1
-};
-
-enum hdspm_syncsource {
- syncsource_wc = 0,
- syncsource_madi = 1,
- syncsource_tco = 2,
- syncsource_sync = 3,
- syncsource_none = 4
-};
-
-struct hdspm_status {
- uint8_t card_type; /* enum hdspm_io_type */
- enum hdspm_syncsource autosync_source;
-
- uint64_t card_clock;
- uint32_t master_period;
-
- union {
- struct {
- uint8_t sync_wc; /* enum hdspm_sync */
- uint8_t sync_madi; /* enum hdspm_sync */
- uint8_t sync_tco; /* enum hdspm_sync */
- uint8_t sync_in; /* enum hdspm_sync */
- uint8_t madi_input; /* enum hdspm_madi_input */
- uint8_t channel_format; /* enum hdspm_madi_channel_format */
- uint8_t frame_format; /* enum hdspm_madi_frame_format */
- } madi;
- } card_specific;
-};
-
-#define SNDRV_HDSPM_IOCTL_GET_STATUS \
- _IOR('H', 0x47, struct hdspm_status)
-
-/**
- * Get information about the card and its add-ons.
- **/
-
-#define HDSPM_ADDON_TCO 1
-
-struct hdspm_version {
- uint8_t card_type; /* enum hdspm_io_type */
- char cardname[20];
- unsigned int serial;
- unsigned short firmware_rev;
- int addons;
-};
-
-#define SNDRV_HDSPM_IOCTL_GET_VERSION _IOR('H', 0x48, struct hdspm_version)
-
-/* ------------- get Matrix Mixer IOCTL --------------- */
-
-/* MADI mixer: 64inputs+64playback in 64outputs = 8192 => *4Byte =
- * 32768 Bytes
- */
-
-/* organisation is 64 channelfader in a continuous memory block */
-/* equivalent to hardware definition, maybe for future feature of mmap of
- * them
- */
-/* each of 64 outputs has 64 infader and 64 outfader:
- Ins to Outs mixer[out].in[in], Outstreams to Outs mixer[out].pb[pb] */
-
-#define HDSPM_MIXER_CHANNELS HDSPM_MAX_CHANNELS
-
-struct hdspm_channelfader {
- unsigned int in[HDSPM_MIXER_CHANNELS];
- unsigned int pb[HDSPM_MIXER_CHANNELS];
-};
-
-struct hdspm_mixer {
- struct hdspm_channelfader ch[HDSPM_MIXER_CHANNELS];
-};
-
-struct hdspm_mixer_ioctl {
- struct hdspm_mixer *mixer;
-};
-
-/* use indirect access due to the limit of ioctl bit size */
-#define SNDRV_HDSPM_IOCTL_GET_MIXER _IOR('H', 0x44, struct hdspm_mixer_ioctl)
-
-/* typedefs for compatibility to user-space */
-typedef struct hdspm_peak_rms hdspm_peak_rms_t;
-typedef struct hdspm_config_info hdspm_config_info_t;
-typedef struct hdspm_version hdspm_version_t;
-typedef struct hdspm_channelfader snd_hdspm_channelfader_t;
-typedef struct hdspm_mixer hdspm_mixer_t;
-
-
-#endif
diff --git a/ANDROID_3.4.5/include/sound/hwdep.h b/ANDROID_3.4.5/include/sound/hwdep.h
deleted file mode 100644
index 8c05e47a..00000000
--- a/ANDROID_3.4.5/include/sound/hwdep.h
+++ /dev/null
@@ -1,82 +0,0 @@
-#ifndef __SOUND_HWDEP_H
-#define __SOUND_HWDEP_H
-
-/*
- * Hardware dependent layer
- * Copyright (c) by Jaroslav Kysela <perex@perex.cz>
- *
- *
- * 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 <sound/asound.h>
-#include <linux/poll.h>
-
-struct snd_hwdep;
-
-/* hwdep file ops; all ops can be NULL */
-struct snd_hwdep_ops {
- long long (*llseek)(struct snd_hwdep *hw, struct file *file,
- long long offset, int orig);
- long (*read)(struct snd_hwdep *hw, char __user *buf,
- long count, loff_t *offset);
- long (*write)(struct snd_hwdep *hw, const char __user *buf,
- long count, loff_t *offset);
- int (*open)(struct snd_hwdep *hw, struct file * file);
- int (*release)(struct snd_hwdep *hw, struct file * file);
- unsigned int (*poll)(struct snd_hwdep *hw, struct file *file,
- poll_table *wait);
- int (*ioctl)(struct snd_hwdep *hw, struct file *file,
- unsigned int cmd, unsigned long arg);
- int (*ioctl_compat)(struct snd_hwdep *hw, struct file *file,
- unsigned int cmd, unsigned long arg);
- int (*mmap)(struct snd_hwdep *hw, struct file *file,
- struct vm_area_struct *vma);
- int (*dsp_status)(struct snd_hwdep *hw,
- struct snd_hwdep_dsp_status *status);
- int (*dsp_load)(struct snd_hwdep *hw,
- struct snd_hwdep_dsp_image *image);
-};
-
-struct snd_hwdep {
- struct snd_card *card;
- struct list_head list;
- int device;
- char id[32];
- char name[80];
- int iface;
-
-#ifdef CONFIG_SND_OSSEMUL
- char oss_dev[32];
- int oss_type;
- int ossreg;
-#endif
-
- struct snd_hwdep_ops ops;
- wait_queue_head_t open_wait;
- void *private_data;
- void (*private_free) (struct snd_hwdep *hwdep);
-
- struct mutex open_mutex;
- int used; /* reference counter */
- unsigned int dsp_loaded; /* bit fields of loaded dsp indices */
- unsigned int exclusive:1; /* exclusive access mode */
-};
-
-extern int snd_hwdep_new(struct snd_card *card, char *id, int device,
- struct snd_hwdep **rhwdep);
-
-#endif /* __SOUND_HWDEP_H */
diff --git a/ANDROID_3.4.5/include/sound/i2c.h b/ANDROID_3.4.5/include/sound/i2c.h
deleted file mode 100644
index d125ff8c..00000000
--- a/ANDROID_3.4.5/include/sound/i2c.h
+++ /dev/null
@@ -1,104 +0,0 @@
-#ifndef __SOUND_I2C_H
-#define __SOUND_I2C_H
-
-/*
- *
- *
- * 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
- *
- *
- */
-
-#define SND_I2C_DEVICE_ADDRTEN (1<<0) /* 10-bit I2C address */
-
-struct snd_i2c_device {
- struct list_head list;
- struct snd_i2c_bus *bus; /* I2C bus */
- char name[32]; /* some useful device name */
- unsigned short flags; /* device flags */
- unsigned short addr; /* device address (might be 10-bit) */
- unsigned long private_value;
- void *private_data;
- void (*private_free)(struct snd_i2c_device *device);
-};
-
-#define snd_i2c_device(n) list_entry(n, struct snd_i2c_device, list)
-
-struct snd_i2c_bit_ops {
- void (*start)(struct snd_i2c_bus *bus); /* transfer start */
- void (*stop)(struct snd_i2c_bus *bus); /* transfer stop */
- void (*direction)(struct snd_i2c_bus *bus, int clock, int data); /* set line direction (0 = write, 1 = read) */
- void (*setlines)(struct snd_i2c_bus *bus, int clock, int data);
- int (*getclock)(struct snd_i2c_bus *bus);
- int (*getdata)(struct snd_i2c_bus *bus, int ack);
-};
-
-struct snd_i2c_ops {
- int (*sendbytes)(struct snd_i2c_device *device, unsigned char *bytes, int count);
- int (*readbytes)(struct snd_i2c_device *device, unsigned char *bytes, int count);
- int (*probeaddr)(struct snd_i2c_bus *bus, unsigned short addr);
-};
-
-struct snd_i2c_bus {
- struct snd_card *card; /* card which I2C belongs to */
- char name[32]; /* some useful label */
-
- struct mutex lock_mutex;
-
- struct snd_i2c_bus *master; /* master bus when SCK/SCL is shared */
- struct list_head buses; /* master: slave buses sharing SCK/SCL, slave: link list */
-
- struct list_head devices; /* attached devices to this bus */
-
- union {
- struct snd_i2c_bit_ops *bit;
- void *ops;
- } hw_ops; /* lowlevel operations */
- struct snd_i2c_ops *ops; /* midlevel operations */
-
- unsigned long private_value;
- void *private_data;
- void (*private_free)(struct snd_i2c_bus *bus);
-};
-
-#define snd_i2c_slave_bus(n) list_entry(n, struct snd_i2c_bus, buses)
-
-int snd_i2c_bus_create(struct snd_card *card, const char *name,
- struct snd_i2c_bus *master, struct snd_i2c_bus **ri2c);
-int snd_i2c_device_create(struct snd_i2c_bus *bus, const char *name,
- unsigned char addr, struct snd_i2c_device **rdevice);
-int snd_i2c_device_free(struct snd_i2c_device *device);
-
-static inline void snd_i2c_lock(struct snd_i2c_bus *bus)
-{
- if (bus->master)
- mutex_lock(&bus->master->lock_mutex);
- else
- mutex_lock(&bus->lock_mutex);
-}
-
-static inline void snd_i2c_unlock(struct snd_i2c_bus *bus)
-{
- if (bus->master)
- mutex_unlock(&bus->master->lock_mutex);
- else
- mutex_unlock(&bus->lock_mutex);
-}
-
-int snd_i2c_sendbytes(struct snd_i2c_device *device, unsigned char *bytes, int count);
-int snd_i2c_readbytes(struct snd_i2c_device *device, unsigned char *bytes, int count);
-int snd_i2c_probeaddr(struct snd_i2c_bus *bus, unsigned short addr);
-
-#endif /* __SOUND_I2C_H */
diff --git a/ANDROID_3.4.5/include/sound/info.h b/ANDROID_3.4.5/include/sound/info.h
deleted file mode 100644
index 9ca1a493..00000000
--- a/ANDROID_3.4.5/include/sound/info.h
+++ /dev/null
@@ -1,202 +0,0 @@
-#ifndef __SOUND_INFO_H
-#define __SOUND_INFO_H
-
-/*
- * Header file for info interface
- * Copyright (c) by Jaroslav Kysela <perex@perex.cz>
- *
- *
- * 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/poll.h>
-
-/* buffer for information */
-struct snd_info_buffer {
- char *buffer; /* pointer to begin of buffer */
- unsigned int curr; /* current position in buffer */
- unsigned int size; /* current size */
- unsigned int len; /* total length of buffer */
- int stop; /* stop flag */
- int error; /* error code */
-};
-
-#define SNDRV_INFO_CONTENT_TEXT 0
-#define SNDRV_INFO_CONTENT_DATA 1
-
-struct snd_info_entry;
-
-struct snd_info_entry_text {
- void (*read)(struct snd_info_entry *entry,
- struct snd_info_buffer *buffer);
- void (*write)(struct snd_info_entry *entry,
- struct snd_info_buffer *buffer);
-};
-
-struct snd_info_entry_ops {
- int (*open)(struct snd_info_entry *entry,
- unsigned short mode, void **file_private_data);
- int (*release)(struct snd_info_entry *entry,
- unsigned short mode, void *file_private_data);
- ssize_t (*read)(struct snd_info_entry *entry, void *file_private_data,
- struct file *file, char __user *buf,
- size_t count, loff_t pos);
- ssize_t (*write)(struct snd_info_entry *entry, void *file_private_data,
- struct file *file, const char __user *buf,
- size_t count, loff_t pos);
- loff_t (*llseek)(struct snd_info_entry *entry,
- void *file_private_data, struct file *file,
- loff_t offset, int orig);
- unsigned int (*poll)(struct snd_info_entry *entry,
- void *file_private_data, struct file *file,
- poll_table *wait);
- int (*ioctl)(struct snd_info_entry *entry, void *file_private_data,
- struct file *file, unsigned int cmd, unsigned long arg);
- int (*mmap)(struct snd_info_entry *entry, void *file_private_data,
- struct inode *inode, struct file *file,
- struct vm_area_struct *vma);
-};
-
-struct snd_info_entry {
- const char *name;
- umode_t mode;
- long size;
- unsigned short content;
- union {
- struct snd_info_entry_text text;
- struct snd_info_entry_ops *ops;
- } c;
- struct snd_info_entry *parent;
- struct snd_card *card;
- struct module *module;
- void *private_data;
- void (*private_free)(struct snd_info_entry *entry);
- struct proc_dir_entry *p;
- struct mutex access;
- struct list_head children;
- struct list_head list;
-};
-
-#if defined(CONFIG_SND_OSSEMUL) && defined(CONFIG_PROC_FS)
-int snd_info_minor_register(void);
-int snd_info_minor_unregister(void);
-#else
-#define snd_info_minor_register() /* NOP */
-#define snd_info_minor_unregister() /* NOP */
-#endif
-
-
-#ifdef CONFIG_PROC_FS
-
-extern struct snd_info_entry *snd_seq_root;
-#ifdef CONFIG_SND_OSSEMUL
-extern struct snd_info_entry *snd_oss_root;
-void snd_card_info_read_oss(struct snd_info_buffer *buffer);
-#else
-#define snd_oss_root NULL
-static inline void snd_card_info_read_oss(struct snd_info_buffer *buffer) {}
-#endif
-
-__printf(2, 3)
-int snd_iprintf(struct snd_info_buffer *buffer, const char *fmt, ...);
-int snd_info_init(void);
-int snd_info_done(void);
-
-int snd_info_get_line(struct snd_info_buffer *buffer, char *line, int len);
-const char *snd_info_get_str(char *dest, const char *src, int len);
-struct snd_info_entry *snd_info_create_module_entry(struct module *module,
- const char *name,
- struct snd_info_entry *parent);
-struct snd_info_entry *snd_info_create_card_entry(struct snd_card *card,
- const char *name,
- struct snd_info_entry *parent);
-void snd_info_free_entry(struct snd_info_entry *entry);
-int snd_info_store_text(struct snd_info_entry *entry);
-int snd_info_restore_text(struct snd_info_entry *entry);
-
-int snd_info_card_create(struct snd_card *card);
-int snd_info_card_register(struct snd_card *card);
-int snd_info_card_free(struct snd_card *card);
-void snd_info_card_disconnect(struct snd_card *card);
-void snd_info_card_id_change(struct snd_card *card);
-int snd_info_register(struct snd_info_entry *entry);
-
-/* for card drivers */
-int snd_card_proc_new(struct snd_card *card, const char *name,
- struct snd_info_entry **entryp);
-
-static inline void snd_info_set_text_ops(struct snd_info_entry *entry,
- void *private_data,
- void (*read)(struct snd_info_entry *, struct snd_info_buffer *))
-{
- entry->private_data = private_data;
- entry->c.text.read = read;
-}
-
-int snd_info_check_reserved_words(const char *str);
-
-#else
-
-#define snd_seq_root NULL
-#define snd_oss_root NULL
-
-static inline int snd_iprintf(struct snd_info_buffer *buffer, char *fmt, ...) { return 0; }
-static inline int snd_info_init(void) { return 0; }
-static inline int snd_info_done(void) { return 0; }
-
-static inline int snd_info_get_line(struct snd_info_buffer *buffer, char *line, int len) { return 0; }
-static inline char *snd_info_get_str(char *dest, char *src, int len) { return NULL; }
-static inline struct snd_info_entry *snd_info_create_module_entry(struct module *module, const char *name, struct snd_info_entry *parent) { return NULL; }
-static inline struct snd_info_entry *snd_info_create_card_entry(struct snd_card *card, const char *name, struct snd_info_entry *parent) { return NULL; }
-static inline void snd_info_free_entry(struct snd_info_entry *entry) { ; }
-
-static inline int snd_info_card_create(struct snd_card *card) { return 0; }
-static inline int snd_info_card_register(struct snd_card *card) { return 0; }
-static inline int snd_info_card_free(struct snd_card *card) { return 0; }
-static inline void snd_info_card_disconnect(struct snd_card *card) { }
-static inline void snd_info_card_id_change(struct snd_card *card) { }
-static inline int snd_info_register(struct snd_info_entry *entry) { return 0; }
-
-static inline int snd_card_proc_new(struct snd_card *card, const char *name,
- struct snd_info_entry **entryp) { return -EINVAL; }
-static inline void snd_info_set_text_ops(struct snd_info_entry *entry __attribute__((unused)),
- void *private_data,
- void (*read)(struct snd_info_entry *, struct snd_info_buffer *)) {}
-
-static inline int snd_info_check_reserved_words(const char *str) { return 1; }
-
-#endif
-
-/*
- * OSS info part
- */
-
-#if defined(CONFIG_SND_OSSEMUL) && defined(CONFIG_PROC_FS)
-
-#define SNDRV_OSS_INFO_DEV_AUDIO 0
-#define SNDRV_OSS_INFO_DEV_SYNTH 1
-#define SNDRV_OSS_INFO_DEV_MIDI 2
-#define SNDRV_OSS_INFO_DEV_TIMERS 4
-#define SNDRV_OSS_INFO_DEV_MIXERS 5
-
-#define SNDRV_OSS_INFO_DEV_COUNT 6
-
-int snd_oss_info_register(int dev, int num, char *string);
-#define snd_oss_info_unregister(dev, num) snd_oss_info_register(dev, num, NULL)
-
-#endif /* CONFIG_SND_OSSEMUL && CONFIG_PROC_FS */
-
-#endif /* __SOUND_INFO_H */
diff --git a/ANDROID_3.4.5/include/sound/initval.h b/ANDROID_3.4.5/include/sound/initval.h
deleted file mode 100644
index f99a0d2d..00000000
--- a/ANDROID_3.4.5/include/sound/initval.h
+++ /dev/null
@@ -1,90 +0,0 @@
-#ifndef __SOUND_INITVAL_H
-#define __SOUND_INITVAL_H
-
-/*
- * Init values for soundcard modules
- * Copyright (c) by Jaroslav Kysela <perex@perex.cz>
- *
- * 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
- *
- */
-
-#define SNDRV_AUTO_PORT 1
-#define SNDRV_AUTO_IRQ 0xffff
-#define SNDRV_AUTO_DMA 0xffff
-#define SNDRV_AUTO_DMA_SIZE (0x7fffffff)
-
-#define SNDRV_DEFAULT_IDX1 (-1)
-#define SNDRV_DEFAULT_STR1 NULL
-#define SNDRV_DEFAULT_ENABLE1 1
-#define SNDRV_DEFAULT_PORT1 SNDRV_AUTO_PORT
-#define SNDRV_DEFAULT_IRQ1 SNDRV_AUTO_IRQ
-#define SNDRV_DEFAULT_DMA1 SNDRV_AUTO_DMA
-#define SNDRV_DEFAULT_DMA_SIZE1 SNDRV_AUTO_DMA_SIZE
-#define SNDRV_DEFAULT_PTR1 SNDRV_DEFAULT_STR1
-
-#define SNDRV_DEFAULT_IDX { [0 ... (SNDRV_CARDS-1)] = -1 }
-#define SNDRV_DEFAULT_STR { [0 ... (SNDRV_CARDS-1)] = NULL }
-#define SNDRV_DEFAULT_ENABLE { 1, [1 ... (SNDRV_CARDS-1)] = 0 }
-#define SNDRV_DEFAULT_ENABLE_PNP { [0 ... (SNDRV_CARDS-1)] = 1 }
-#ifdef CONFIG_PNP
-#define SNDRV_DEFAULT_ENABLE_ISAPNP SNDRV_DEFAULT_ENABLE_PNP
-#else
-#define SNDRV_DEFAULT_ENABLE_ISAPNP SNDRV_DEFAULT_ENABLE
-#endif
-#define SNDRV_DEFAULT_PORT { [0 ... (SNDRV_CARDS-1)] = SNDRV_AUTO_PORT }
-#define SNDRV_DEFAULT_IRQ { [0 ... (SNDRV_CARDS-1)] = SNDRV_AUTO_IRQ }
-#define SNDRV_DEFAULT_DMA { [0 ... (SNDRV_CARDS-1)] = SNDRV_AUTO_DMA }
-#define SNDRV_DEFAULT_DMA_SIZE { [0 ... (SNDRV_CARDS-1)] = SNDRV_AUTO_DMA_SIZE }
-#define SNDRV_DEFAULT_PTR SNDRV_DEFAULT_STR
-
-#ifdef SNDRV_LEGACY_FIND_FREE_IRQ
-#include <linux/interrupt.h>
-
-static irqreturn_t snd_legacy_empty_irq_handler(int irq, void *dev_id)
-{
- return IRQ_HANDLED;
-}
-
-static int snd_legacy_find_free_irq(int *irq_table)
-{
- while (*irq_table != -1) {
- if (!request_irq(*irq_table, snd_legacy_empty_irq_handler,
- IRQF_PROBE_SHARED, "ALSA Test IRQ",
- (void *) irq_table)) {
- free_irq(*irq_table, (void *) irq_table);
- return *irq_table;
- }
- irq_table++;
- }
- return -1;
-}
-#endif
-
-#ifdef SNDRV_LEGACY_FIND_FREE_DMA
-static int snd_legacy_find_free_dma(int *dma_table)
-{
- while (*dma_table != -1) {
- if (!request_dma(*dma_table, "ALSA Test DMA")) {
- free_dma(*dma_table);
- return *dma_table;
- }
- dma_table++;
- }
- return -1;
-}
-#endif
-
-#endif /* __SOUND_INITVAL_H */
diff --git a/ANDROID_3.4.5/include/sound/jack.h b/ANDROID_3.4.5/include/sound/jack.h
deleted file mode 100644
index 58916573..00000000
--- a/ANDROID_3.4.5/include/sound/jack.h
+++ /dev/null
@@ -1,99 +0,0 @@
-#ifndef __SOUND_JACK_H
-#define __SOUND_JACK_H
-
-/*
- * Jack abstraction layer
- *
- * Copyright 2008 Wolfson Microelectronics plc
- *
- *
- * 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 <sound/core.h>
-
-struct input_dev;
-
-/**
- * Jack types which can be reported. These values are used as a
- * bitmask.
- *
- * Note that this must be kept in sync with the lookup table in
- * sound/core/jack.c.
- */
-enum snd_jack_types {
- SND_JACK_HEADPHONE = 0x0001,
- SND_JACK_MICROPHONE = 0x0002,
- SND_JACK_HEADSET = SND_JACK_HEADPHONE | SND_JACK_MICROPHONE,
- SND_JACK_LINEOUT = 0x0004,
- SND_JACK_MECHANICAL = 0x0008, /* If detected separately */
- SND_JACK_VIDEOOUT = 0x0010,
- SND_JACK_AVOUT = SND_JACK_LINEOUT | SND_JACK_VIDEOOUT,
- SND_JACK_LINEIN = 0x0020,
-
- /* Kept separate from switches to facilitate implementation */
- SND_JACK_BTN_0 = 0x4000,
- SND_JACK_BTN_1 = 0x2000,
- SND_JACK_BTN_2 = 0x1000,
- SND_JACK_BTN_3 = 0x0800,
- SND_JACK_BTN_4 = 0x0400,
- SND_JACK_BTN_5 = 0x0200,
-};
-
-/* Keep in sync with definitions above */
-#define SND_JACK_SWITCH_TYPES 6
-
-struct snd_jack {
- struct input_dev *input_dev;
- int registered;
- int type;
- const char *id;
- char name[100];
- unsigned int key[6]; /* Keep in sync with definitions above */
- void *private_data;
- void (*private_free)(struct snd_jack *);
-};
-
-#ifdef CONFIG_SND_JACK
-
-int snd_jack_new(struct snd_card *card, const char *id, int type,
- struct snd_jack **jack);
-void snd_jack_set_parent(struct snd_jack *jack, struct device *parent);
-int snd_jack_set_key(struct snd_jack *jack, enum snd_jack_types type,
- int keytype);
-
-void snd_jack_report(struct snd_jack *jack, int status);
-
-#else
-
-static inline int snd_jack_new(struct snd_card *card, const char *id, int type,
- struct snd_jack **jack)
-{
- return 0;
-}
-
-static inline void snd_jack_set_parent(struct snd_jack *jack,
- struct device *parent)
-{
-}
-
-static inline void snd_jack_report(struct snd_jack *jack, int status)
-{
-}
-
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/sound/l3.h b/ANDROID_3.4.5/include/sound/l3.h
deleted file mode 100644
index 423a08f0..00000000
--- a/ANDROID_3.4.5/include/sound/l3.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef _L3_H_
-#define _L3_H_ 1
-
-struct l3_pins {
- void (*setdat)(int);
- void (*setclk)(int);
- void (*setmode)(int);
- int data_hold;
- int data_setup;
- int clock_high;
- int mode_hold;
- int mode;
- int mode_setup;
-};
-
-int l3_write(struct l3_pins *adap, u8 addr, u8 *data, int len);
-
-#endif
diff --git a/ANDROID_3.4.5/include/sound/max9768.h b/ANDROID_3.4.5/include/sound/max9768.h
deleted file mode 100644
index 0f78b41d..00000000
--- a/ANDROID_3.4.5/include/sound/max9768.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Platform data for MAX9768
- * Copyright (C) 2011, 2012 by Wolfram Sang, Pengutronix e.K.
- * same licence as the driver
- */
-
-#ifndef __SOUND_MAX9768_PDATA_H__
-#define __SOUND_MAX9768_PDATA_H__
-
-/**
- * struct max9768_pdata - optional platform specific MAX9768 configuration
- * @shdn_gpio: GPIO to SHDN pin. If not valid, pin must be hardwired HIGH
- * @mute_gpio: GPIO to MUTE pin. If not valid, control for mute won't be added
- * @flags: configuration flags, e.g. set classic PWM mode (check datasheet
- * regarding "filterless modulation" which is default).
- */
-struct max9768_pdata {
- int shdn_gpio;
- int mute_gpio;
- unsigned flags;
-#define MAX9768_FLAG_CLASSIC_PWM (1 << 0)
-};
-
-#endif /* __SOUND_MAX9768_PDATA_H__*/
diff --git a/ANDROID_3.4.5/include/sound/max98088.h b/ANDROID_3.4.5/include/sound/max98088.h
deleted file mode 100644
index c3ba8239..00000000
--- a/ANDROID_3.4.5/include/sound/max98088.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Platform data for MAX98088
- *
- * Copyright 2010 Maxim Integrated Products
- *
- * 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 __SOUND_MAX98088_PDATA_H__
-#define __SOUND_MAX98088_PDATA_H__
-
-/* Equalizer filter response configuration */
-struct max98088_eq_cfg {
- const char *name;
- unsigned int rate;
- u16 band1[5];
- u16 band2[5];
- u16 band3[5];
- u16 band4[5];
- u16 band5[5];
-};
-
-/* codec platform data */
-struct max98088_pdata {
-
- /* Equalizers for DAI1 and DAI2 */
- struct max98088_eq_cfg *eq_cfg;
- unsigned int eq_cfgcnt;
-
- /* Receiver output can be configured as power amplifier or LINE out */
- /* Set receiver_mode to:
- * 0 = amplifier output, or
- * 1 = LINE level output
- */
- unsigned int receiver_mode:1;
-
- /* Analog/digital microphone configuration:
- * 0 = analog microphone input (normal setting)
- * 1 = digital microphone input
- */
- unsigned int digmic_left_mode:1;
- unsigned int digmic_right_mode:1;
-
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/sound/max98095.h b/ANDROID_3.4.5/include/sound/max98095.h
deleted file mode 100644
index 7513a42d..00000000
--- a/ANDROID_3.4.5/include/sound/max98095.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Platform data for MAX98095
- *
- * Copyright 2011 Maxim Integrated Products
- *
- * 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 __SOUND_MAX98095_PDATA_H__
-#define __SOUND_MAX98095_PDATA_H__
-
-/* Equalizer filter response configuration */
-struct max98095_eq_cfg {
- const char *name;
- unsigned int rate;
- u16 band1[5];
- u16 band2[5];
- u16 band3[5];
- u16 band4[5];
- u16 band5[5];
-};
-
-/* Biquad filter response configuration */
-struct max98095_biquad_cfg {
- const char *name;
- unsigned int rate;
- u16 band1[5];
- u16 band2[5];
-};
-
-/* codec platform data */
-struct max98095_pdata {
-
- /* Equalizers for DAI1 and DAI2 */
- struct max98095_eq_cfg *eq_cfg;
- unsigned int eq_cfgcnt;
-
- /* Biquad filter for DAI1 and DAI2 */
- struct max98095_biquad_cfg *bq_cfg;
- unsigned int bq_cfgcnt;
-
- /* Analog/digital microphone configuration:
- * 0 = analog microphone input (normal setting)
- * 1 = digital microphone input
- */
- unsigned int digmic_left_mode:1;
- unsigned int digmic_right_mode:1;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/sound/memalloc.h b/ANDROID_3.4.5/include/sound/memalloc.h
deleted file mode 100644
index c4250621..00000000
--- a/ANDROID_3.4.5/include/sound/memalloc.h
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright (c) by Jaroslav Kysela <perex@perex.cz>
- * Takashi Iwai <tiwai@suse.de>
- *
- * Generic memory allocators
- *
- *
- * 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
- *
- */
-
-#ifndef __SOUND_MEMALLOC_H
-#define __SOUND_MEMALLOC_H
-
-struct device;
-
-/*
- * buffer device info
- */
-struct snd_dma_device {
- int type; /* SNDRV_DMA_TYPE_XXX */
- struct device *dev; /* generic device */
-};
-
-#ifndef snd_dma_pci_data
-#define snd_dma_pci_data(pci) (&(pci)->dev)
-#define snd_dma_isa_data() NULL
-#define snd_dma_continuous_data(x) ((struct device *)(unsigned long)(x))
-#endif
-
-
-/*
- * buffer types
- */
-#define SNDRV_DMA_TYPE_UNKNOWN 0 /* not defined */
-#define SNDRV_DMA_TYPE_CONTINUOUS 1 /* continuous no-DMA memory */
-#define SNDRV_DMA_TYPE_DEV 2 /* generic device continuous */
-#ifdef CONFIG_SND_DMA_SGBUF
-#define SNDRV_DMA_TYPE_DEV_SG 3 /* generic device SG-buffer */
-#else
-#define SNDRV_DMA_TYPE_DEV_SG SNDRV_DMA_TYPE_DEV /* no SG-buf support */
-#endif
-
-/*
- * info for buffer allocation
- */
-struct snd_dma_buffer {
- struct snd_dma_device dev; /* device type */
- unsigned char *area; /* virtual pointer */
- dma_addr_t addr; /* physical address */
- size_t bytes; /* buffer size in bytes */
- void *private_data; /* private for allocator; don't touch */
-};
-
-#ifdef CONFIG_SND_DMA_SGBUF
-/*
- * Scatter-Gather generic device pages
- */
-void *snd_malloc_sgbuf_pages(struct device *device,
- size_t size, struct snd_dma_buffer *dmab,
- size_t *res_size);
-int snd_free_sgbuf_pages(struct snd_dma_buffer *dmab);
-
-struct snd_sg_page {
- void *buf;
- dma_addr_t addr;
-};
-
-struct snd_sg_buf {
- int size; /* allocated byte size */
- int pages; /* allocated pages */
- int tblsize; /* allocated table size */
- struct snd_sg_page *table; /* address table */
- struct page **page_table; /* page table (for vmap/vunmap) */
- struct device *dev;
-};
-
-/*
- * return the pages matching with the given byte size
- */
-static inline unsigned int snd_sgbuf_aligned_pages(size_t size)
-{
- return (size + PAGE_SIZE - 1) >> PAGE_SHIFT;
-}
-
-/*
- * return the physical address at the corresponding offset
- */
-static inline dma_addr_t snd_sgbuf_get_addr(struct snd_sg_buf *sgbuf, size_t offset)
-{
- dma_addr_t addr = sgbuf->table[offset >> PAGE_SHIFT].addr;
- addr &= PAGE_MASK;
- return addr + offset % PAGE_SIZE;
-}
-
-/*
- * return the virtual address at the corresponding offset
- */
-static inline void *snd_sgbuf_get_ptr(struct snd_sg_buf *sgbuf, size_t offset)
-{
- return sgbuf->table[offset >> PAGE_SHIFT].buf + offset % PAGE_SIZE;
-}
-#endif /* CONFIG_SND_DMA_SGBUF */
-
-/* allocate/release a buffer */
-int snd_dma_alloc_pages(int type, struct device *dev, size_t size,
- struct snd_dma_buffer *dmab);
-int snd_dma_alloc_pages_fallback(int type, struct device *dev, size_t size,
- struct snd_dma_buffer *dmab);
-void snd_dma_free_pages(struct snd_dma_buffer *dmab);
-
-/* buffer-preservation managements */
-
-#define snd_dma_pci_buf_id(pci) (((unsigned int)(pci)->vendor << 16) | (pci)->device)
-
-size_t snd_dma_get_reserved_buf(struct snd_dma_buffer *dmab, unsigned int id);
-int snd_dma_reserve_buf(struct snd_dma_buffer *dmab, unsigned int id);
-
-/* basic memory allocation functions */
-void *snd_malloc_pages(size_t size, gfp_t gfp_flags);
-void snd_free_pages(void *ptr, size_t size);
-
-#endif /* __SOUND_MEMALLOC_H */
-
diff --git a/ANDROID_3.4.5/include/sound/minors.h b/ANDROID_3.4.5/include/sound/minors.h
deleted file mode 100644
index 5978f9a8..00000000
--- a/ANDROID_3.4.5/include/sound/minors.h
+++ /dev/null
@@ -1,112 +0,0 @@
-#ifndef __SOUND_MINORS_H
-#define __SOUND_MINORS_H
-
-/*
- * MINOR numbers
- *
- *
- * 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
- *
- */
-
-#define SNDRV_OS_MINORS 256
-
-#define SNDRV_MINOR_DEVICES 32
-#define SNDRV_MINOR_CARD(minor) ((minor) >> 5)
-#define SNDRV_MINOR_DEVICE(minor) ((minor) & 0x001f)
-#define SNDRV_MINOR(card, dev) (((card) << 5) | (dev))
-
-/* these minors can still be used for autoloading devices (/dev/aload*) */
-#define SNDRV_MINOR_CONTROL 0 /* 0 */
-#define SNDRV_MINOR_GLOBAL 1 /* 1 */
-#define SNDRV_MINOR_SEQUENCER 1 /* SNDRV_MINOR_GLOBAL + 0 * 32 */
-#define SNDRV_MINOR_TIMER 33 /* SNDRV_MINOR_GLOBAL + 1 * 32 */
-
-#ifndef CONFIG_SND_DYNAMIC_MINORS
-#define SNDRV_MINOR_COMPRESS 2 /* 2 - 3 */
-#define SNDRV_MINOR_HWDEP 4 /* 4 - 7 */
-#define SNDRV_MINOR_RAWMIDI 8 /* 8 - 15 */
-#define SNDRV_MINOR_PCM_PLAYBACK 16 /* 16 - 23 */
-#define SNDRV_MINOR_PCM_CAPTURE 24 /* 24 - 31 */
-
-/* same as first respective minor number to make minor allocation easier */
-#define SNDRV_DEVICE_TYPE_CONTROL SNDRV_MINOR_CONTROL
-#define SNDRV_DEVICE_TYPE_HWDEP SNDRV_MINOR_HWDEP
-#define SNDRV_DEVICE_TYPE_RAWMIDI SNDRV_MINOR_RAWMIDI
-#define SNDRV_DEVICE_TYPE_PCM_PLAYBACK SNDRV_MINOR_PCM_PLAYBACK
-#define SNDRV_DEVICE_TYPE_PCM_CAPTURE SNDRV_MINOR_PCM_CAPTURE
-#define SNDRV_DEVICE_TYPE_SEQUENCER SNDRV_MINOR_SEQUENCER
-#define SNDRV_DEVICE_TYPE_TIMER SNDRV_MINOR_TIMER
-#define SNDRV_DEVICE_TYPE_COMPRESS SNDRV_MINOR_COMPRESS
-
-#else /* CONFIG_SND_DYNAMIC_MINORS */
-
-enum {
- SNDRV_DEVICE_TYPE_CONTROL,
- SNDRV_DEVICE_TYPE_SEQUENCER,
- SNDRV_DEVICE_TYPE_TIMER,
- SNDRV_DEVICE_TYPE_HWDEP,
- SNDRV_DEVICE_TYPE_RAWMIDI,
- SNDRV_DEVICE_TYPE_PCM_PLAYBACK,
- SNDRV_DEVICE_TYPE_PCM_CAPTURE,
- SNDRV_DEVICE_TYPE_COMPRESS,
-};
-
-#endif /* CONFIG_SND_DYNAMIC_MINORS */
-
-#define SNDRV_MINOR_HWDEPS 4
-#define SNDRV_MINOR_RAWMIDIS 8
-#define SNDRV_MINOR_PCMS 8
-
-
-#ifdef CONFIG_SND_OSSEMUL
-
-#define SNDRV_MINOR_OSS_DEVICES 16
-#define SNDRV_MINOR_OSS_CARD(minor) ((minor) >> 4)
-#define SNDRV_MINOR_OSS_DEVICE(minor) ((minor) & 0x000f)
-#define SNDRV_MINOR_OSS(card, dev) (((card) << 4) | (dev))
-
-#define SNDRV_MINOR_OSS_MIXER 0 /* /dev/mixer - OSS 3.XX compatible */
-#define SNDRV_MINOR_OSS_SEQUENCER 1 /* /dev/sequencer - OSS 3.XX compatible */
-#define SNDRV_MINOR_OSS_MIDI 2 /* /dev/midi - native midi interface - OSS 3.XX compatible - UART */
-#define SNDRV_MINOR_OSS_PCM 3 /* alias */
-#define SNDRV_MINOR_OSS_PCM_8 3 /* /dev/dsp - 8bit PCM - OSS 3.XX compatible */
-#define SNDRV_MINOR_OSS_AUDIO 4 /* /dev/audio - SunSparc compatible */
-#define SNDRV_MINOR_OSS_PCM_16 5 /* /dev/dsp16 - 16bit PCM - OSS 3.XX compatible */
-#define SNDRV_MINOR_OSS_SNDSTAT 6 /* /dev/sndstat - for compatibility with OSS */
-#define SNDRV_MINOR_OSS_RESERVED7 7 /* reserved for future use */
-#define SNDRV_MINOR_OSS_MUSIC 8 /* /dev/music - OSS 3.XX compatible */
-#define SNDRV_MINOR_OSS_DMMIDI 9 /* /dev/dmmidi0 - this device can have another minor # with OSS */
-#define SNDRV_MINOR_OSS_DMFM 10 /* /dev/dmfm0 - this device can have another minor # with OSS */
-#define SNDRV_MINOR_OSS_MIXER1 11 /* alternate mixer */
-#define SNDRV_MINOR_OSS_PCM1 12 /* alternate PCM (GF-A-1) */
-#define SNDRV_MINOR_OSS_MIDI1 13 /* alternate midi - SYNTH */
-#define SNDRV_MINOR_OSS_DMMIDI1 14 /* alternate dmmidi - SYNTH */
-#define SNDRV_MINOR_OSS_RESERVED15 15 /* reserved for future use */
-
-#define SNDRV_OSS_DEVICE_TYPE_MIXER 0
-#define SNDRV_OSS_DEVICE_TYPE_SEQUENCER 1
-#define SNDRV_OSS_DEVICE_TYPE_PCM 2
-#define SNDRV_OSS_DEVICE_TYPE_MIDI 3
-#define SNDRV_OSS_DEVICE_TYPE_DMFM 4
-#define SNDRV_OSS_DEVICE_TYPE_SNDSTAT 5
-#define SNDRV_OSS_DEVICE_TYPE_MUSIC 6
-
-#define MODULE_ALIAS_SNDRV_MINOR(type) \
- MODULE_ALIAS("sound-service-?-" __stringify(type))
-
-#endif
-
-#endif /* __SOUND_MINORS_H */
diff --git a/ANDROID_3.4.5/include/sound/mixer_oss.h b/ANDROID_3.4.5/include/sound/mixer_oss.h
deleted file mode 100644
index 13cb0b43..00000000
--- a/ANDROID_3.4.5/include/sound/mixer_oss.h
+++ /dev/null
@@ -1,81 +0,0 @@
-#ifndef __SOUND_MIXER_OSS_H
-#define __SOUND_MIXER_OSS_H
-
-/*
- * OSS MIXER API
- * Copyright (c) by Jaroslav Kysela <perex@perex.cz>
- *
- *
- * 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
- *
- */
-
-#if defined(CONFIG_SND_MIXER_OSS) || defined(CONFIG_SND_MIXER_OSS_MODULE)
-
-#define SNDRV_OSS_MAX_MIXERS 32
-
-struct snd_mixer_oss_file;
-
-struct snd_mixer_oss_slot {
- int number;
- unsigned int stereo: 1;
- int (*get_volume)(struct snd_mixer_oss_file *fmixer,
- struct snd_mixer_oss_slot *chn,
- int *left, int *right);
- int (*put_volume)(struct snd_mixer_oss_file *fmixer,
- struct snd_mixer_oss_slot *chn,
- int left, int right);
- int (*get_recsrc)(struct snd_mixer_oss_file *fmixer,
- struct snd_mixer_oss_slot *chn,
- int *active);
- int (*put_recsrc)(struct snd_mixer_oss_file *fmixer,
- struct snd_mixer_oss_slot *chn,
- int active);
- unsigned long private_value;
- void *private_data;
- void (*private_free)(struct snd_mixer_oss_slot *slot);
- int volume[2];
-};
-
-struct snd_mixer_oss {
- struct snd_card *card;
- char id[16];
- char name[32];
- struct snd_mixer_oss_slot slots[SNDRV_OSS_MAX_MIXERS]; /* OSS mixer slots */
- unsigned int mask_recsrc; /* exclusive recsrc mask */
- int (*get_recsrc)(struct snd_mixer_oss_file *fmixer,
- unsigned int *active_index);
- int (*put_recsrc)(struct snd_mixer_oss_file *fmixer,
- unsigned int active_index);
- void *private_data_recsrc;
- void (*private_free_recsrc)(struct snd_mixer_oss *mixer);
- struct mutex reg_mutex;
- struct snd_info_entry *proc_entry;
- int oss_dev_alloc;
- /* --- */
- int oss_recsrc;
-};
-
-struct snd_mixer_oss_file {
- struct snd_card *card;
- struct snd_mixer_oss *mixer;
-};
-
-int snd_mixer_oss_ioctl_card(struct snd_card *card,
- unsigned int cmd, unsigned long arg);
-
-#endif /* CONFIG_SND_MIXER_OSS */
-
-#endif /* __SOUND_MIXER_OSS_H */
diff --git a/ANDROID_3.4.5/include/sound/mpu401.h b/ANDROID_3.4.5/include/sound/mpu401.h
deleted file mode 100644
index 20230db0..00000000
--- a/ANDROID_3.4.5/include/sound/mpu401.h
+++ /dev/null
@@ -1,138 +0,0 @@
-#ifndef __SOUND_MPU401_H
-#define __SOUND_MPU401_H
-
-/*
- * Header file for MPU-401 and compatible cards
- * Copyright (c) by Jaroslav Kysela <perex@perex.cz>
- *
- *
- * 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 "rawmidi.h"
-#include <linux/interrupt.h>
-
-#define MPU401_HW_MPU401 1 /* native MPU401 */
-#define MPU401_HW_SB 2 /* SoundBlaster MPU-401 UART */
-#define MPU401_HW_ES1688 3 /* AudioDrive ES1688 MPU-401 UART */
-#define MPU401_HW_OPL3SA2 4 /* Yamaha OPL3-SA2 */
-#define MPU401_HW_SONICVIBES 5 /* S3 SonicVibes */
-#define MPU401_HW_CS4232 6 /* CS4232 */
-#define MPU401_HW_ES18XX 7 /* AudioDrive ES18XX MPU-401 UART */
-#define MPU401_HW_FM801 8 /* ForteMedia FM801 */
-#define MPU401_HW_TRID4DWAVE 9 /* Trident 4DWave */
-#define MPU401_HW_AZT2320 10 /* Aztech AZT2320 */
-#define MPU401_HW_ALS100 11 /* Avance Logic ALS100 */
-#define MPU401_HW_ICE1712 12 /* Envy24 */
-#define MPU401_HW_VIA686A 13 /* VIA 82C686A */
-#define MPU401_HW_YMFPCI 14 /* YMF DS-XG PCI */
-#define MPU401_HW_CMIPCI 15 /* CMIPCI MPU-401 UART */
-#define MPU401_HW_ALS4000 16 /* Avance Logic ALS4000 */
-#define MPU401_HW_INTEL8X0 17 /* Intel8x0 driver */
-#define MPU401_HW_PC98II 18 /* Roland PC98II */
-#define MPU401_HW_AUREAL 19 /* Aureal Vortex */
-
-#define MPU401_INFO_INPUT (1 << 0) /* input stream */
-#define MPU401_INFO_OUTPUT (1 << 1) /* output stream */
-#define MPU401_INFO_INTEGRATED (1 << 2) /* integrated h/w port */
-#define MPU401_INFO_MMIO (1 << 3) /* MMIO access */
-#define MPU401_INFO_TX_IRQ (1 << 4) /* independent TX irq */
-#define MPU401_INFO_IRQ_HOOK (1 << 5) /* mpu401 irq handler is called
- from driver irq handler */
-#define MPU401_INFO_NO_ACK (1 << 6) /* No ACK cmd needed */
-#define MPU401_INFO_USE_TIMER (1 << 15) /* internal */
-
-#define MPU401_MODE_BIT_INPUT 0
-#define MPU401_MODE_BIT_OUTPUT 1
-#define MPU401_MODE_BIT_INPUT_TRIGGER 2
-#define MPU401_MODE_BIT_OUTPUT_TRIGGER 3
-
-#define MPU401_MODE_INPUT (1<<MPU401_MODE_BIT_INPUT)
-#define MPU401_MODE_OUTPUT (1<<MPU401_MODE_BIT_OUTPUT)
-#define MPU401_MODE_INPUT_TRIGGER (1<<MPU401_MODE_BIT_INPUT_TRIGGER)
-#define MPU401_MODE_OUTPUT_TRIGGER (1<<MPU401_MODE_BIT_OUTPUT_TRIGGER)
-
-#define MPU401_MODE_INPUT_TIMER (1<<0)
-#define MPU401_MODE_OUTPUT_TIMER (1<<1)
-
-struct snd_mpu401 {
- struct snd_rawmidi *rmidi;
-
- unsigned short hardware; /* MPU401_HW_XXXX */
- unsigned int info_flags; /* MPU401_INFO_XXX */
- unsigned long port; /* base port of MPU-401 chip */
- unsigned long cport; /* port + 1 (usually) */
- struct resource *res; /* port resource */
- int irq; /* IRQ number of MPU-401 chip */
-
- unsigned long mode; /* MPU401_MODE_XXXX */
- int timer_invoked;
-
- int (*open_input) (struct snd_mpu401 * mpu);
- void (*close_input) (struct snd_mpu401 * mpu);
- int (*open_output) (struct snd_mpu401 * mpu);
- void (*close_output) (struct snd_mpu401 * mpu);
- void *private_data;
-
- struct snd_rawmidi_substream *substream_input;
- struct snd_rawmidi_substream *substream_output;
-
- spinlock_t input_lock;
- spinlock_t output_lock;
- spinlock_t timer_lock;
-
- struct timer_list timer;
-
- void (*write) (struct snd_mpu401 * mpu, unsigned char data, unsigned long addr);
- unsigned char (*read) (struct snd_mpu401 *mpu, unsigned long addr);
-};
-
-/* I/O ports */
-
-#define MPU401C(mpu) (mpu)->cport
-#define MPU401D(mpu) (mpu)->port
-
-/*
- * control register bits
- */
-/* read MPU401C() */
-#define MPU401_RX_EMPTY 0x80
-#define MPU401_TX_FULL 0x40
-
-/* write MPU401C() */
-#define MPU401_RESET 0xff
-#define MPU401_ENTER_UART 0x3f
-
-/* read MPU401D() */
-#define MPU401_ACK 0xfe
-
-
-/*
-
- */
-
-irqreturn_t snd_mpu401_uart_interrupt(int irq, void *dev_id);
-irqreturn_t snd_mpu401_uart_interrupt_tx(int irq, void *dev_id);
-
-int snd_mpu401_uart_new(struct snd_card *card,
- int device,
- unsigned short hardware,
- unsigned long port,
- unsigned int info_flags,
- int irq,
- struct snd_rawmidi ** rrawmidi);
-
-#endif /* __SOUND_MPU401_H */
diff --git a/ANDROID_3.4.5/include/sound/opl3.h b/ANDROID_3.4.5/include/sound/opl3.h
deleted file mode 100644
index 6ba67070..00000000
--- a/ANDROID_3.4.5/include/sound/opl3.h
+++ /dev/null
@@ -1,393 +0,0 @@
-#ifndef __SOUND_OPL3_H
-#define __SOUND_OPL3_H
-
-/*
- * Definitions of the OPL-3 registers.
- *
- * Copyright (c) by Jaroslav Kysela <perex@perex.cz>,
- * Hannu Savolainen 1993-1996
- *
- *
- * The OPL-3 mode is switched on by writing 0x01, to the offset 5
- * of the right side.
- *
- * Another special register at the right side is at offset 4. It contains
- * a bit mask defining which voices are used as 4 OP voices.
- *
- * The percussive mode is implemented in the left side only.
- *
- * With the above exceptions the both sides can be operated independently.
- *
- * A 4 OP voice can be created by setting the corresponding
- * bit at offset 4 of the right side.
- *
- * For example setting the rightmost bit (0x01) changes the
- * first voice on the right side to the 4 OP mode. The fourth
- * voice is made inaccessible.
- *
- * If a voice is set to the 2 OP mode, it works like 2 OP modes
- * of the original YM3812 (AdLib). In addition the voice can
- * be connected the left, right or both stereo channels. It can
- * even be left unconnected. This works with 4 OP voices also.
- *
- * The stereo connection bits are located in the FEEDBACK_CONNECTION
- * register of the voice (0xC0-0xC8). In 4 OP voices these bits are
- * in the second half of the voice.
- *
- *
- * 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 <sound/core.h>
-#include <sound/hwdep.h>
-#include <sound/timer.h>
-#include <sound/seq_midi_emul.h>
-#ifdef CONFIG_SND_SEQUENCER_OSS
-#include <sound/seq_oss.h>
-#include <sound/seq_oss_legacy.h>
-#endif
-#include <sound/seq_device.h>
-#include <sound/asound_fm.h>
-
-/*
- * Register numbers for the global registers
- */
-
-#define OPL3_REG_TEST 0x01
-#define OPL3_ENABLE_WAVE_SELECT 0x20
-
-#define OPL3_REG_TIMER1 0x02
-#define OPL3_REG_TIMER2 0x03
-#define OPL3_REG_TIMER_CONTROL 0x04 /* Left side */
-#define OPL3_IRQ_RESET 0x80
-#define OPL3_TIMER1_MASK 0x40
-#define OPL3_TIMER2_MASK 0x20
-#define OPL3_TIMER1_START 0x01
-#define OPL3_TIMER2_START 0x02
-
-#define OPL3_REG_CONNECTION_SELECT 0x04 /* Right side */
-#define OPL3_LEFT_4OP_0 0x01
-#define OPL3_LEFT_4OP_1 0x02
-#define OPL3_LEFT_4OP_2 0x04
-#define OPL3_RIGHT_4OP_0 0x08
-#define OPL3_RIGHT_4OP_1 0x10
-#define OPL3_RIGHT_4OP_2 0x20
-
-#define OPL3_REG_MODE 0x05 /* Right side */
-#define OPL3_OPL3_ENABLE 0x01 /* OPL3 mode */
-#define OPL3_OPL4_ENABLE 0x02 /* OPL4 mode */
-
-#define OPL3_REG_KBD_SPLIT 0x08 /* Left side */
-#define OPL3_COMPOSITE_SINE_WAVE_MODE 0x80 /* Don't use with OPL-3? */
-#define OPL3_KEYBOARD_SPLIT 0x40
-
-#define OPL3_REG_PERCUSSION 0xbd /* Left side only */
-#define OPL3_TREMOLO_DEPTH 0x80
-#define OPL3_VIBRATO_DEPTH 0x40
-#define OPL3_PERCUSSION_ENABLE 0x20
-#define OPL3_BASSDRUM_ON 0x10
-#define OPL3_SNAREDRUM_ON 0x08
-#define OPL3_TOMTOM_ON 0x04
-#define OPL3_CYMBAL_ON 0x02
-#define OPL3_HIHAT_ON 0x01
-
-/*
- * Offsets to the register banks for operators. To get the
- * register number just add the operator offset to the bank offset
- *
- * AM/VIB/EG/KSR/Multiple (0x20 to 0x35)
- */
-#define OPL3_REG_AM_VIB 0x20
-#define OPL3_TREMOLO_ON 0x80
-#define OPL3_VIBRATO_ON 0x40
-#define OPL3_SUSTAIN_ON 0x20
-#define OPL3_KSR 0x10 /* Key scaling rate */
-#define OPL3_MULTIPLE_MASK 0x0f /* Frequency multiplier */
-
- /*
- * KSL/Total level (0x40 to 0x55)
- */
-#define OPL3_REG_KSL_LEVEL 0x40
-#define OPL3_KSL_MASK 0xc0 /* Envelope scaling bits */
-#define OPL3_TOTAL_LEVEL_MASK 0x3f /* Strength (volume) of OP */
-
-/*
- * Attack / Decay rate (0x60 to 0x75)
- */
-#define OPL3_REG_ATTACK_DECAY 0x60
-#define OPL3_ATTACK_MASK 0xf0
-#define OPL3_DECAY_MASK 0x0f
-
-/*
- * Sustain level / Release rate (0x80 to 0x95)
- */
-#define OPL3_REG_SUSTAIN_RELEASE 0x80
-#define OPL3_SUSTAIN_MASK 0xf0
-#define OPL3_RELEASE_MASK 0x0f
-
-/*
- * Wave select (0xE0 to 0xF5)
- */
-#define OPL3_REG_WAVE_SELECT 0xe0
-#define OPL3_WAVE_SELECT_MASK 0x07
-
-/*
- * Offsets to the register banks for voices. Just add to the
- * voice number to get the register number.
- *
- * F-Number low bits (0xA0 to 0xA8).
- */
-#define OPL3_REG_FNUM_LOW 0xa0
-
-/*
- * F-number high bits / Key on / Block (octave) (0xB0 to 0xB8)
- */
-#define OPL3_REG_KEYON_BLOCK 0xb0
-#define OPL3_KEYON_BIT 0x20
-#define OPL3_BLOCKNUM_MASK 0x1c
-#define OPL3_FNUM_HIGH_MASK 0x03
-
-/*
- * Feedback / Connection (0xc0 to 0xc8)
- *
- * These registers have two new bits when the OPL-3 mode
- * is selected. These bits controls connecting the voice
- * to the stereo channels. For 4 OP voices this bit is
- * defined in the second half of the voice (add 3 to the
- * register offset).
- *
- * For 4 OP voices the connection bit is used in the
- * both halves (gives 4 ways to connect the operators).
- */
-#define OPL3_REG_FEEDBACK_CONNECTION 0xc0
-#define OPL3_FEEDBACK_MASK 0x0e /* Valid just for 1st OP of a voice */
-#define OPL3_CONNECTION_BIT 0x01
-/*
- * In the 4 OP mode there is four possible configurations how the
- * operators can be connected together (in 2 OP modes there is just
- * AM or FM). The 4 OP connection mode is defined by the rightmost
- * bit of the FEEDBACK_CONNECTION (0xC0-0xC8) on the both halves.
- *
- * First half Second half Mode
- *
- * +---+
- * v |
- * 0 0 >+-1-+--2--3--4-->
- *
- *
- *
- * +---+
- * | |
- * 0 1 >+-1-+--2-+
- * |->
- * >--3----4-+
- *
- * +---+
- * | |
- * 1 0 >+-1-+-----+
- * |->
- * >--2--3--4-+
- *
- * +---+
- * | |
- * 1 1 >+-1-+--+
- * |
- * >--2--3-+->
- * |
- * >--4----+
- */
-#define OPL3_STEREO_BITS 0x30 /* OPL-3 only */
-#define OPL3_VOICE_TO_LEFT 0x10
-#define OPL3_VOICE_TO_RIGHT 0x20
-
-/*
-
- */
-
-#define OPL3_LEFT 0x0000
-#define OPL3_RIGHT 0x0100
-
-#define OPL3_HW_AUTO 0x0000
-#define OPL3_HW_OPL2 0x0200
-#define OPL3_HW_OPL3 0x0300
-#define OPL3_HW_OPL3_SV 0x0301 /* S3 SonicVibes */
-#define OPL3_HW_OPL3_CS 0x0302 /* CS4232/CS4236+ */
-#define OPL3_HW_OPL3_FM801 0x0303 /* FM801 */
-#define OPL3_HW_OPL3_CS4281 0x0304 /* CS4281 */
-#define OPL3_HW_OPL4 0x0400 /* YMF278B/YMF295 */
-#define OPL3_HW_OPL4_ML 0x0401 /* YMF704/YMF721 */
-#define OPL3_HW_MASK 0xff00
-
-#define MAX_OPL2_VOICES 9
-#define MAX_OPL3_VOICES 18
-
-struct snd_opl3;
-
-/*
- * Instrument record, aka "Patch"
- */
-
-/* FM operator */
-struct fm_operator {
- unsigned char am_vib;
- unsigned char ksl_level;
- unsigned char attack_decay;
- unsigned char sustain_release;
- unsigned char wave_select;
-} __attribute__((packed));
-
-/* Instrument data */
-struct fm_instrument {
- struct fm_operator op[4];
- unsigned char feedback_connection[2];
- unsigned char echo_delay;
- unsigned char echo_atten;
- unsigned char chorus_spread;
- unsigned char trnsps;
- unsigned char fix_dur;
- unsigned char modes;
- unsigned char fix_key;
-};
-
-/* type */
-#define FM_PATCH_OPL2 0x01 /* OPL2 2 operators FM instrument */
-#define FM_PATCH_OPL3 0x02 /* OPL3 4 operators FM instrument */
-
-/* Instrument record */
-struct fm_patch {
- unsigned char prog;
- unsigned char bank;
- unsigned char type;
- struct fm_instrument inst;
- char name[24];
- struct fm_patch *next;
-};
-
-
-/*
- * A structure to keep track of each hardware voice
- */
-struct snd_opl3_voice {
- int state; /* status */
-#define SNDRV_OPL3_ST_OFF 0 /* Not playing */
-#define SNDRV_OPL3_ST_ON_2OP 1 /* 2op voice is allocated */
-#define SNDRV_OPL3_ST_ON_4OP 2 /* 4op voice is allocated */
-#define SNDRV_OPL3_ST_NOT_AVAIL -1 /* voice is not available */
-
- unsigned int time; /* An allocation time */
- unsigned char note; /* Note currently assigned to this voice */
-
- unsigned long note_off; /* note-off time */
- int note_off_check; /* check note-off time */
-
- unsigned char keyon_reg; /* KON register shadow */
-
- struct snd_midi_channel *chan; /* Midi channel for this note */
-};
-
-struct snd_opl3 {
- unsigned long l_port;
- unsigned long r_port;
- struct resource *res_l_port;
- struct resource *res_r_port;
- unsigned short hardware;
- /* hardware access */
- void (*command) (struct snd_opl3 * opl3, unsigned short cmd, unsigned char val);
- unsigned short timer_enable;
- int seq_dev_num; /* sequencer device number */
- struct snd_timer *timer1;
- struct snd_timer *timer2;
- spinlock_t timer_lock;
-
- void *private_data;
- void (*private_free)(struct snd_opl3 *);
-
- struct snd_hwdep *hwdep;
- spinlock_t reg_lock;
- struct snd_card *card; /* The card that this belongs to */
- unsigned char fm_mode; /* OPL mode, see SNDRV_DM_FM_MODE_XXX */
- unsigned char rhythm; /* percussion mode flag */
- unsigned char max_voices; /* max number of voices */
-#if defined(CONFIG_SND_SEQUENCER) || defined(CONFIG_SND_SEQUENCER_MODULE)
-#define SNDRV_OPL3_MODE_SYNTH 0 /* OSS - voices allocated by application */
-#define SNDRV_OPL3_MODE_SEQ 1 /* ALSA - driver handles voice allocation */
- int synth_mode; /* synth mode */
- int seq_client;
-
- struct snd_seq_device *seq_dev; /* sequencer device */
- struct snd_midi_channel_set * chset;
-
-#ifdef CONFIG_SND_SEQUENCER_OSS
- struct snd_seq_device *oss_seq_dev; /* OSS sequencer device */
- struct snd_midi_channel_set * oss_chset;
-#endif
-
-#define OPL3_PATCH_HASH_SIZE 32
- struct fm_patch *patch_table[OPL3_PATCH_HASH_SIZE];
-
- struct snd_opl3_voice voices[MAX_OPL3_VOICES]; /* Voices (OPL3 'channel') */
- int use_time; /* allocation counter */
-
- unsigned short connection_reg; /* connection reg shadow */
- unsigned char drum_reg; /* percussion reg shadow */
-
- spinlock_t voice_lock; /* Lock for voice access */
-
- struct timer_list tlist; /* timer for note-offs and effects */
- int sys_timer_status; /* system timer run status */
- spinlock_t sys_timer_lock; /* Lock for system timer access */
-#endif
-};
-
-/* opl3.c */
-void snd_opl3_interrupt(struct snd_hwdep * hw);
-int snd_opl3_new(struct snd_card *card, unsigned short hardware,
- struct snd_opl3 **ropl3);
-int snd_opl3_init(struct snd_opl3 *opl3);
-int snd_opl3_create(struct snd_card *card,
- unsigned long l_port, unsigned long r_port,
- unsigned short hardware,
- int integrated,
- struct snd_opl3 ** opl3);
-int snd_opl3_timer_new(struct snd_opl3 * opl3, int timer1_dev, int timer2_dev);
-int snd_opl3_hwdep_new(struct snd_opl3 * opl3, int device, int seq_device,
- struct snd_hwdep ** rhwdep);
-
-/* opl3_synth */
-int snd_opl3_open(struct snd_hwdep * hw, struct file *file);
-int snd_opl3_ioctl(struct snd_hwdep * hw, struct file *file,
- unsigned int cmd, unsigned long arg);
-int snd_opl3_release(struct snd_hwdep * hw, struct file *file);
-
-void snd_opl3_reset(struct snd_opl3 * opl3);
-
-#if defined(CONFIG_SND_SEQUENCER) || defined(CONFIG_SND_SEQUENCER_MODULE)
-long snd_opl3_write(struct snd_hwdep *hw, const char __user *buf, long count,
- loff_t *offset);
-int snd_opl3_load_patch(struct snd_opl3 *opl3,
- int prog, int bank, int type,
- const char *name,
- const unsigned char *ext,
- const unsigned char *data);
-struct fm_patch *snd_opl3_find_patch(struct snd_opl3 *opl3, int prog, int bank,
- int create_patch);
-void snd_opl3_clear_patches(struct snd_opl3 *opl3);
-#else
-#define snd_opl3_write NULL
-static inline void snd_opl3_clear_patches(struct snd_opl3 *opl3) {}
-#endif
-
-#endif /* __SOUND_OPL3_H */
diff --git a/ANDROID_3.4.5/include/sound/opl4.h b/ANDROID_3.4.5/include/sound/opl4.h
deleted file mode 100644
index 60ae8454..00000000
--- a/ANDROID_3.4.5/include/sound/opl4.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef __SOUND_OPL4_H
-#define __SOUND_OPL4_H
-
-/*
- * Global definitions for the OPL4 driver
- * Copyright (c) 2003 by Clemens Ladisch <clemens@ladisch.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
- */
-
-#include <sound/opl3.h>
-
-struct snd_opl4;
-
-extern int snd_opl4_create(struct snd_card *card,
- unsigned long fm_port, unsigned long pcm_port,
- int seq_device,
- struct snd_opl3 **opl3, struct snd_opl4 **opl4);
-
-#endif /* __SOUND_OPL4_H */
diff --git a/ANDROID_3.4.5/include/sound/pcm-indirect.h b/ANDROID_3.4.5/include/sound/pcm-indirect.h
deleted file mode 100644
index 1df7acaa..00000000
--- a/ANDROID_3.4.5/include/sound/pcm-indirect.h
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * Helper functions for indirect PCM data transfer
- *
- * Copyright (c) by Takashi Iwai <tiwai@suse.de>
- * Jaroslav Kysela <perex@perex.cz>
- *
- * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef __SOUND_PCM_INDIRECT_H
-#define __SOUND_PCM_INDIRECT_H
-
-#include <sound/pcm.h>
-
-struct snd_pcm_indirect {
- unsigned int hw_buffer_size; /* Byte size of hardware buffer */
- unsigned int hw_queue_size; /* Max queue size of hw buffer (0 = buffer size) */
- unsigned int hw_data; /* Offset to next dst (or src) in hw ring buffer */
- unsigned int hw_io; /* Ring buffer hw pointer */
- int hw_ready; /* Bytes ready for play (or captured) in hw ring buffer */
- unsigned int sw_buffer_size; /* Byte size of software buffer */
- unsigned int sw_data; /* Offset to next dst (or src) in sw ring buffer */
- unsigned int sw_io; /* Current software pointer in bytes */
- int sw_ready; /* Bytes ready to be transferred to/from hw */
- snd_pcm_uframes_t appl_ptr; /* Last seen appl_ptr */
-};
-
-typedef void (*snd_pcm_indirect_copy_t)(struct snd_pcm_substream *substream,
- struct snd_pcm_indirect *rec, size_t bytes);
-
-/*
- * helper function for playback ack callback
- */
-static inline void
-snd_pcm_indirect_playback_transfer(struct snd_pcm_substream *substream,
- struct snd_pcm_indirect *rec,
- snd_pcm_indirect_copy_t copy)
-{
- struct snd_pcm_runtime *runtime = substream->runtime;
- snd_pcm_uframes_t appl_ptr = runtime->control->appl_ptr;
- snd_pcm_sframes_t diff = appl_ptr - rec->appl_ptr;
- int qsize;
-
- if (diff) {
- if (diff < -(snd_pcm_sframes_t) (runtime->boundary / 2))
- diff += runtime->boundary;
- rec->sw_ready += (int)frames_to_bytes(runtime, diff);
- rec->appl_ptr = appl_ptr;
- }
- qsize = rec->hw_queue_size ? rec->hw_queue_size : rec->hw_buffer_size;
- while (rec->hw_ready < qsize && rec->sw_ready > 0) {
- unsigned int hw_to_end = rec->hw_buffer_size - rec->hw_data;
- unsigned int sw_to_end = rec->sw_buffer_size - rec->sw_data;
- unsigned int bytes = qsize - rec->hw_ready;
- if (rec->sw_ready < (int)bytes)
- bytes = rec->sw_ready;
- if (hw_to_end < bytes)
- bytes = hw_to_end;
- if (sw_to_end < bytes)
- bytes = sw_to_end;
- if (! bytes)
- break;
- copy(substream, rec, bytes);
- rec->hw_data += bytes;
- if (rec->hw_data == rec->hw_buffer_size)
- rec->hw_data = 0;
- rec->sw_data += bytes;
- if (rec->sw_data == rec->sw_buffer_size)
- rec->sw_data = 0;
- rec->hw_ready += bytes;
- rec->sw_ready -= bytes;
- }
-}
-
-/*
- * helper function for playback pointer callback
- * ptr = current byte pointer
- */
-static inline snd_pcm_uframes_t
-snd_pcm_indirect_playback_pointer(struct snd_pcm_substream *substream,
- struct snd_pcm_indirect *rec, unsigned int ptr)
-{
- int bytes = ptr - rec->hw_io;
- if (bytes < 0)
- bytes += rec->hw_buffer_size;
- rec->hw_io = ptr;
- rec->hw_ready -= bytes;
- rec->sw_io += bytes;
- if (rec->sw_io >= rec->sw_buffer_size)
- rec->sw_io -= rec->sw_buffer_size;
- if (substream->ops->ack)
- substream->ops->ack(substream);
- return bytes_to_frames(substream->runtime, rec->sw_io);
-}
-
-
-/*
- * helper function for capture ack callback
- */
-static inline void
-snd_pcm_indirect_capture_transfer(struct snd_pcm_substream *substream,
- struct snd_pcm_indirect *rec,
- snd_pcm_indirect_copy_t copy)
-{
- struct snd_pcm_runtime *runtime = substream->runtime;
- snd_pcm_uframes_t appl_ptr = runtime->control->appl_ptr;
- snd_pcm_sframes_t diff = appl_ptr - rec->appl_ptr;
-
- if (diff) {
- if (diff < -(snd_pcm_sframes_t) (runtime->boundary / 2))
- diff += runtime->boundary;
- rec->sw_ready -= frames_to_bytes(runtime, diff);
- rec->appl_ptr = appl_ptr;
- }
- while (rec->hw_ready > 0 &&
- rec->sw_ready < (int)rec->sw_buffer_size) {
- size_t hw_to_end = rec->hw_buffer_size - rec->hw_data;
- size_t sw_to_end = rec->sw_buffer_size - rec->sw_data;
- size_t bytes = rec->sw_buffer_size - rec->sw_ready;
- if (rec->hw_ready < (int)bytes)
- bytes = rec->hw_ready;
- if (hw_to_end < bytes)
- bytes = hw_to_end;
- if (sw_to_end < bytes)
- bytes = sw_to_end;
- if (! bytes)
- break;
- copy(substream, rec, bytes);
- rec->hw_data += bytes;
- if ((int)rec->hw_data == rec->hw_buffer_size)
- rec->hw_data = 0;
- rec->sw_data += bytes;
- if (rec->sw_data == rec->sw_buffer_size)
- rec->sw_data = 0;
- rec->hw_ready -= bytes;
- rec->sw_ready += bytes;
- }
-}
-
-/*
- * helper function for capture pointer callback,
- * ptr = current byte pointer
- */
-static inline snd_pcm_uframes_t
-snd_pcm_indirect_capture_pointer(struct snd_pcm_substream *substream,
- struct snd_pcm_indirect *rec, unsigned int ptr)
-{
- int qsize;
- int bytes = ptr - rec->hw_io;
- if (bytes < 0)
- bytes += rec->hw_buffer_size;
- rec->hw_io = ptr;
- rec->hw_ready += bytes;
- qsize = rec->hw_queue_size ? rec->hw_queue_size : rec->hw_buffer_size;
- if (rec->hw_ready > qsize)
- return SNDRV_PCM_POS_XRUN;
- rec->sw_io += bytes;
- if (rec->sw_io >= rec->sw_buffer_size)
- rec->sw_io -= rec->sw_buffer_size;
- if (substream->ops->ack)
- substream->ops->ack(substream);
- return bytes_to_frames(substream->runtime, rec->sw_io);
-}
-
-#endif /* __SOUND_PCM_INDIRECT_H */
diff --git a/ANDROID_3.4.5/include/sound/pcm.h b/ANDROID_3.4.5/include/sound/pcm.h
deleted file mode 100644
index 0d111281..00000000
--- a/ANDROID_3.4.5/include/sound/pcm.h
+++ /dev/null
@@ -1,1076 +0,0 @@
-#ifndef __SOUND_PCM_H
-#define __SOUND_PCM_H
-
-/*
- * Digital Audio (PCM) abstract layer
- * Copyright (c) by Jaroslav Kysela <perex@perex.cz>
- * Abramo Bagnara <abramo@alsa-project.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
- *
- */
-
-#include <sound/asound.h>
-#include <sound/memalloc.h>
-#include <sound/minors.h>
-#include <linux/poll.h>
-#include <linux/mm.h>
-#include <linux/bitops.h>
-#include <linux/pm_qos.h>
-
-#define snd_pcm_substream_chip(substream) ((substream)->private_data)
-#define snd_pcm_chip(pcm) ((pcm)->private_data)
-
-#if defined(CONFIG_SND_PCM_OSS) || defined(CONFIG_SND_PCM_OSS_MODULE)
-#include "pcm_oss.h"
-#endif
-
-/*
- * Hardware (lowlevel) section
- */
-
-struct snd_pcm_hardware {
- unsigned int info; /* SNDRV_PCM_INFO_* */
- u64 formats; /* SNDRV_PCM_FMTBIT_* */
- unsigned int rates; /* SNDRV_PCM_RATE_* */
- unsigned int rate_min; /* min rate */
- unsigned int rate_max; /* max rate */
- unsigned int channels_min; /* min channels */
- unsigned int channels_max; /* max channels */
- size_t buffer_bytes_max; /* max buffer size */
- size_t period_bytes_min; /* min period size */
- size_t period_bytes_max; /* max period size */
- unsigned int periods_min; /* min # of periods */
- unsigned int periods_max; /* max # of periods */
- size_t fifo_size; /* fifo size in bytes */
-};
-
-struct snd_pcm_substream;
-
-struct snd_pcm_ops {
- int (*open)(struct snd_pcm_substream *substream);
- int (*close)(struct snd_pcm_substream *substream);
- int (*ioctl)(struct snd_pcm_substream * substream,
- unsigned int cmd, void *arg);
- int (*hw_params)(struct snd_pcm_substream *substream,
- struct snd_pcm_hw_params *params);
- int (*hw_free)(struct snd_pcm_substream *substream);
- int (*prepare)(struct snd_pcm_substream *substream);
- int (*trigger)(struct snd_pcm_substream *substream, int cmd);
- snd_pcm_uframes_t (*pointer)(struct snd_pcm_substream *substream);
- int (*copy)(struct snd_pcm_substream *substream, int channel,
- snd_pcm_uframes_t pos,
- void __user *buf, snd_pcm_uframes_t count);
- int (*silence)(struct snd_pcm_substream *substream, int channel,
- snd_pcm_uframes_t pos, snd_pcm_uframes_t count);
- struct page *(*page)(struct snd_pcm_substream *substream,
- unsigned long offset);
- int (*mmap)(struct snd_pcm_substream *substream, struct vm_area_struct *vma);
- int (*ack)(struct snd_pcm_substream *substream);
-};
-
-/*
- *
- */
-
-#if defined(CONFIG_SND_DYNAMIC_MINORS)
-#define SNDRV_PCM_DEVICES (SNDRV_OS_MINORS-2)
-#else
-#define SNDRV_PCM_DEVICES 8
-#endif
-
-#define SNDRV_PCM_IOCTL1_FALSE ((void *)0)
-#define SNDRV_PCM_IOCTL1_TRUE ((void *)1)
-
-#define SNDRV_PCM_IOCTL1_RESET 0
-#define SNDRV_PCM_IOCTL1_INFO 1
-#define SNDRV_PCM_IOCTL1_CHANNEL_INFO 2
-#define SNDRV_PCM_IOCTL1_GSTATE 3
-#define SNDRV_PCM_IOCTL1_FIFO_SIZE 4
-
-#define SNDRV_PCM_TRIGGER_STOP 0
-#define SNDRV_PCM_TRIGGER_START 1
-#define SNDRV_PCM_TRIGGER_PAUSE_PUSH 3
-#define SNDRV_PCM_TRIGGER_PAUSE_RELEASE 4
-#define SNDRV_PCM_TRIGGER_SUSPEND 5
-#define SNDRV_PCM_TRIGGER_RESUME 6
-
-#define SNDRV_PCM_POS_XRUN ((snd_pcm_uframes_t)-1)
-
-/* If you change this don't forget to change rates[] table in pcm_native.c */
-#define SNDRV_PCM_RATE_5512 (1<<0) /* 5512Hz */
-#define SNDRV_PCM_RATE_8000 (1<<1) /* 8000Hz */
-#define SNDRV_PCM_RATE_11025 (1<<2) /* 11025Hz */
-#define SNDRV_PCM_RATE_16000 (1<<3) /* 16000Hz */
-#define SNDRV_PCM_RATE_22050 (1<<4) /* 22050Hz */
-#define SNDRV_PCM_RATE_32000 (1<<5) /* 32000Hz */
-#define SNDRV_PCM_RATE_44100 (1<<6) /* 44100Hz */
-#define SNDRV_PCM_RATE_48000 (1<<7) /* 48000Hz */
-#define SNDRV_PCM_RATE_64000 (1<<8) /* 64000Hz */
-#define SNDRV_PCM_RATE_88200 (1<<9) /* 88200Hz */
-#define SNDRV_PCM_RATE_96000 (1<<10) /* 96000Hz */
-#define SNDRV_PCM_RATE_176400 (1<<11) /* 176400Hz */
-#define SNDRV_PCM_RATE_192000 (1<<12) /* 192000Hz */
-
-#define SNDRV_PCM_RATE_CONTINUOUS (1<<30) /* continuous range */
-#define SNDRV_PCM_RATE_KNOT (1<<31) /* supports more non-continuos rates */
-
-#define SNDRV_PCM_RATE_8000_44100 (SNDRV_PCM_RATE_8000|SNDRV_PCM_RATE_11025|\
- SNDRV_PCM_RATE_16000|SNDRV_PCM_RATE_22050|\
- SNDRV_PCM_RATE_32000|SNDRV_PCM_RATE_44100)
-#define SNDRV_PCM_RATE_8000_48000 (SNDRV_PCM_RATE_8000_44100|SNDRV_PCM_RATE_48000)
-#define SNDRV_PCM_RATE_8000_96000 (SNDRV_PCM_RATE_8000_48000|SNDRV_PCM_RATE_64000|\
- SNDRV_PCM_RATE_88200|SNDRV_PCM_RATE_96000)
-#define SNDRV_PCM_RATE_8000_192000 (SNDRV_PCM_RATE_8000_96000|SNDRV_PCM_RATE_176400|\
- SNDRV_PCM_RATE_192000)
-#define _SNDRV_PCM_FMTBIT(fmt) (1ULL << (__force int)SNDRV_PCM_FORMAT_##fmt)
-#define SNDRV_PCM_FMTBIT_S8 _SNDRV_PCM_FMTBIT(S8)
-#define SNDRV_PCM_FMTBIT_U8 _SNDRV_PCM_FMTBIT(U8)
-#define SNDRV_PCM_FMTBIT_S16_LE _SNDRV_PCM_FMTBIT(S16_LE)
-#define SNDRV_PCM_FMTBIT_S16_BE _SNDRV_PCM_FMTBIT(S16_BE)
-#define SNDRV_PCM_FMTBIT_U16_LE _SNDRV_PCM_FMTBIT(U16_LE)
-#define SNDRV_PCM_FMTBIT_U16_BE _SNDRV_PCM_FMTBIT(U16_BE)
-#define SNDRV_PCM_FMTBIT_S24_LE _SNDRV_PCM_FMTBIT(S24_LE)
-#define SNDRV_PCM_FMTBIT_S24_BE _SNDRV_PCM_FMTBIT(S24_BE)
-#define SNDRV_PCM_FMTBIT_U24_LE _SNDRV_PCM_FMTBIT(U24_LE)
-#define SNDRV_PCM_FMTBIT_U24_BE _SNDRV_PCM_FMTBIT(U24_BE)
-#define SNDRV_PCM_FMTBIT_S32_LE _SNDRV_PCM_FMTBIT(S32_LE)
-#define SNDRV_PCM_FMTBIT_S32_BE _SNDRV_PCM_FMTBIT(S32_BE)
-#define SNDRV_PCM_FMTBIT_U32_LE _SNDRV_PCM_FMTBIT(U32_LE)
-#define SNDRV_PCM_FMTBIT_U32_BE _SNDRV_PCM_FMTBIT(U32_BE)
-#define SNDRV_PCM_FMTBIT_FLOAT_LE _SNDRV_PCM_FMTBIT(FLOAT_LE)
-#define SNDRV_PCM_FMTBIT_FLOAT_BE _SNDRV_PCM_FMTBIT(FLOAT_BE)
-#define SNDRV_PCM_FMTBIT_FLOAT64_LE _SNDRV_PCM_FMTBIT(FLOAT64_LE)
-#define SNDRV_PCM_FMTBIT_FLOAT64_BE _SNDRV_PCM_FMTBIT(FLOAT64_BE)
-#define SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE _SNDRV_PCM_FMTBIT(IEC958_SUBFRAME_LE)
-#define SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_BE _SNDRV_PCM_FMTBIT(IEC958_SUBFRAME_BE)
-#define SNDRV_PCM_FMTBIT_MU_LAW _SNDRV_PCM_FMTBIT(MU_LAW)
-#define SNDRV_PCM_FMTBIT_A_LAW _SNDRV_PCM_FMTBIT(A_LAW)
-#define SNDRV_PCM_FMTBIT_IMA_ADPCM _SNDRV_PCM_FMTBIT(IMA_ADPCM)
-#define SNDRV_PCM_FMTBIT_MPEG _SNDRV_PCM_FMTBIT(MPEG)
-#define SNDRV_PCM_FMTBIT_GSM _SNDRV_PCM_FMTBIT(GSM)
-#define SNDRV_PCM_FMTBIT_SPECIAL _SNDRV_PCM_FMTBIT(SPECIAL)
-#define SNDRV_PCM_FMTBIT_S24_3LE _SNDRV_PCM_FMTBIT(S24_3LE)
-#define SNDRV_PCM_FMTBIT_U24_3LE _SNDRV_PCM_FMTBIT(U24_3LE)
-#define SNDRV_PCM_FMTBIT_S24_3BE _SNDRV_PCM_FMTBIT(S24_3BE)
-#define SNDRV_PCM_FMTBIT_U24_3BE _SNDRV_PCM_FMTBIT(U24_3BE)
-#define SNDRV_PCM_FMTBIT_S20_3LE _SNDRV_PCM_FMTBIT(S20_3LE)
-#define SNDRV_PCM_FMTBIT_U20_3LE _SNDRV_PCM_FMTBIT(U20_3LE)
-#define SNDRV_PCM_FMTBIT_S20_3BE _SNDRV_PCM_FMTBIT(S20_3BE)
-#define SNDRV_PCM_FMTBIT_U20_3BE _SNDRV_PCM_FMTBIT(U20_3BE)
-#define SNDRV_PCM_FMTBIT_S18_3LE _SNDRV_PCM_FMTBIT(S18_3LE)
-#define SNDRV_PCM_FMTBIT_U18_3LE _SNDRV_PCM_FMTBIT(U18_3LE)
-#define SNDRV_PCM_FMTBIT_S18_3BE _SNDRV_PCM_FMTBIT(S18_3BE)
-#define SNDRV_PCM_FMTBIT_U18_3BE _SNDRV_PCM_FMTBIT(U18_3BE)
-#define SNDRV_PCM_FMTBIT_G723_24 _SNDRV_PCM_FMTBIT(G723_24)
-#define SNDRV_PCM_FMTBIT_G723_24_1B _SNDRV_PCM_FMTBIT(G723_24_1B)
-#define SNDRV_PCM_FMTBIT_G723_40 _SNDRV_PCM_FMTBIT(G723_40)
-#define SNDRV_PCM_FMTBIT_G723_40_1B _SNDRV_PCM_FMTBIT(G723_40_1B)
-
-#ifdef SNDRV_LITTLE_ENDIAN
-#define SNDRV_PCM_FMTBIT_S16 SNDRV_PCM_FMTBIT_S16_LE
-#define SNDRV_PCM_FMTBIT_U16 SNDRV_PCM_FMTBIT_U16_LE
-#define SNDRV_PCM_FMTBIT_S24 SNDRV_PCM_FMTBIT_S24_LE
-#define SNDRV_PCM_FMTBIT_U24 SNDRV_PCM_FMTBIT_U24_LE
-#define SNDRV_PCM_FMTBIT_S32 SNDRV_PCM_FMTBIT_S32_LE
-#define SNDRV_PCM_FMTBIT_U32 SNDRV_PCM_FMTBIT_U32_LE
-#define SNDRV_PCM_FMTBIT_FLOAT SNDRV_PCM_FMTBIT_FLOAT_LE
-#define SNDRV_PCM_FMTBIT_FLOAT64 SNDRV_PCM_FMTBIT_FLOAT64_LE
-#define SNDRV_PCM_FMTBIT_IEC958_SUBFRAME SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE
-#endif
-#ifdef SNDRV_BIG_ENDIAN
-#define SNDRV_PCM_FMTBIT_S16 SNDRV_PCM_FMTBIT_S16_BE
-#define SNDRV_PCM_FMTBIT_U16 SNDRV_PCM_FMTBIT_U16_BE
-#define SNDRV_PCM_FMTBIT_S24 SNDRV_PCM_FMTBIT_S24_BE
-#define SNDRV_PCM_FMTBIT_U24 SNDRV_PCM_FMTBIT_U24_BE
-#define SNDRV_PCM_FMTBIT_S32 SNDRV_PCM_FMTBIT_S32_BE
-#define SNDRV_PCM_FMTBIT_U32 SNDRV_PCM_FMTBIT_U32_BE
-#define SNDRV_PCM_FMTBIT_FLOAT SNDRV_PCM_FMTBIT_FLOAT_BE
-#define SNDRV_PCM_FMTBIT_FLOAT64 SNDRV_PCM_FMTBIT_FLOAT64_BE
-#define SNDRV_PCM_FMTBIT_IEC958_SUBFRAME SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_BE
-#endif
-
-struct snd_pcm_file {
- struct snd_pcm_substream *substream;
- int no_compat_mmap;
-};
-
-struct snd_pcm_hw_rule;
-typedef int (*snd_pcm_hw_rule_func_t)(struct snd_pcm_hw_params *params,
- struct snd_pcm_hw_rule *rule);
-
-struct snd_pcm_hw_rule {
- unsigned int cond;
- snd_pcm_hw_rule_func_t func;
- int var;
- int deps[4];
- void *private;
-};
-
-struct snd_pcm_hw_constraints {
- struct snd_mask masks[SNDRV_PCM_HW_PARAM_LAST_MASK -
- SNDRV_PCM_HW_PARAM_FIRST_MASK + 1];
- struct snd_interval intervals[SNDRV_PCM_HW_PARAM_LAST_INTERVAL -
- SNDRV_PCM_HW_PARAM_FIRST_INTERVAL + 1];
- unsigned int rules_num;
- unsigned int rules_all;
- struct snd_pcm_hw_rule *rules;
-};
-
-static inline struct snd_mask *constrs_mask(struct snd_pcm_hw_constraints *constrs,
- snd_pcm_hw_param_t var)
-{
- return &constrs->masks[var - SNDRV_PCM_HW_PARAM_FIRST_MASK];
-}
-
-static inline struct snd_interval *constrs_interval(struct snd_pcm_hw_constraints *constrs,
- snd_pcm_hw_param_t var)
-{
- return &constrs->intervals[var - SNDRV_PCM_HW_PARAM_FIRST_INTERVAL];
-}
-
-struct snd_ratnum {
- unsigned int num;
- unsigned int den_min, den_max, den_step;
-};
-
-struct snd_ratden {
- unsigned int num_min, num_max, num_step;
- unsigned int den;
-};
-
-struct snd_pcm_hw_constraint_ratnums {
- int nrats;
- struct snd_ratnum *rats;
-};
-
-struct snd_pcm_hw_constraint_ratdens {
- int nrats;
- struct snd_ratden *rats;
-};
-
-struct snd_pcm_hw_constraint_list {
- unsigned int count;
- const unsigned int *list;
- unsigned int mask;
-};
-
-struct snd_pcm_hwptr_log;
-
-struct snd_pcm_runtime {
- /* -- Status -- */
- struct snd_pcm_substream *trigger_master;
- struct timespec trigger_tstamp; /* trigger timestamp */
- int overrange;
- snd_pcm_uframes_t avail_max;
- snd_pcm_uframes_t hw_ptr_base; /* Position at buffer restart */
- snd_pcm_uframes_t hw_ptr_interrupt; /* Position at interrupt time */
- unsigned long hw_ptr_jiffies; /* Time when hw_ptr is updated */
- unsigned long hw_ptr_buffer_jiffies; /* buffer time in jiffies */
- snd_pcm_sframes_t delay; /* extra delay; typically FIFO size */
-
- /* -- HW params -- */
- snd_pcm_access_t access; /* access mode */
- snd_pcm_format_t format; /* SNDRV_PCM_FORMAT_* */
- snd_pcm_subformat_t subformat; /* subformat */
- unsigned int rate; /* rate in Hz */
- unsigned int channels; /* channels */
- snd_pcm_uframes_t period_size; /* period size */
- unsigned int periods; /* periods */
- snd_pcm_uframes_t buffer_size; /* buffer size */
- snd_pcm_uframes_t min_align; /* Min alignment for the format */
- size_t byte_align;
- unsigned int frame_bits;
- unsigned int sample_bits;
- unsigned int info;
- unsigned int rate_num;
- unsigned int rate_den;
- unsigned int no_period_wakeup: 1;
-
- /* -- SW params -- */
- int tstamp_mode; /* mmap timestamp is updated */
- unsigned int period_step;
- snd_pcm_uframes_t start_threshold;
- snd_pcm_uframes_t stop_threshold;
- snd_pcm_uframes_t silence_threshold; /* Silence filling happens when
- noise is nearest than this */
- snd_pcm_uframes_t silence_size; /* Silence filling size */
- snd_pcm_uframes_t boundary; /* pointers wrap point */
-
- snd_pcm_uframes_t silence_start; /* starting pointer to silence area */
- snd_pcm_uframes_t silence_filled; /* size filled with silence */
-
- union snd_pcm_sync_id sync; /* hardware synchronization ID */
-
- /* -- mmap -- */
- struct snd_pcm_mmap_status *status;
- struct snd_pcm_mmap_control *control;
-
- /* -- locking / scheduling -- */
- snd_pcm_uframes_t twake; /* do transfer (!poll) wakeup if non-zero */
- wait_queue_head_t sleep; /* poll sleep */
- wait_queue_head_t tsleep; /* transfer sleep */
- struct fasync_struct *fasync;
-
- /* -- private section -- */
- void *private_data;
- void (*private_free)(struct snd_pcm_runtime *runtime);
-
- /* -- hardware description -- */
- struct snd_pcm_hardware hw;
- struct snd_pcm_hw_constraints hw_constraints;
-
- /* -- interrupt callbacks -- */
- void (*transfer_ack_begin)(struct snd_pcm_substream *substream);
- void (*transfer_ack_end)(struct snd_pcm_substream *substream);
-
- /* -- timer -- */
- unsigned int timer_resolution; /* timer resolution */
- int tstamp_type; /* timestamp type */
-
- /* -- DMA -- */
- unsigned char *dma_area; /* DMA area */
- dma_addr_t dma_addr; /* physical bus address (not accessible from main CPU) */
- size_t dma_bytes; /* size of DMA area */
-
- struct snd_dma_buffer *dma_buffer_p; /* allocated buffer */
-
-#if defined(CONFIG_SND_PCM_OSS) || defined(CONFIG_SND_PCM_OSS_MODULE)
- /* -- OSS things -- */
- struct snd_pcm_oss_runtime oss;
-#endif
-
-#ifdef CONFIG_SND_PCM_XRUN_DEBUG
- struct snd_pcm_hwptr_log *hwptr_log;
-#endif
-};
-
-struct snd_pcm_group { /* keep linked substreams */
- spinlock_t lock;
- struct list_head substreams;
- int count;
-};
-
-struct pid;
-
-struct snd_pcm_substream {
- struct snd_pcm *pcm;
- struct snd_pcm_str *pstr;
- void *private_data; /* copied from pcm->private_data */
- int number;
- char name[32]; /* substream name */
- int stream; /* stream (direction) */
- struct pm_qos_request latency_pm_qos_req; /* pm_qos request */
- size_t buffer_bytes_max; /* limit ring buffer size */
- struct snd_dma_buffer dma_buffer;
- unsigned int dma_buf_id;
- size_t dma_max;
- /* -- hardware operations -- */
- struct snd_pcm_ops *ops;
- /* -- runtime information -- */
- struct snd_pcm_runtime *runtime;
- /* -- timer section -- */
- struct snd_timer *timer; /* timer */
- unsigned timer_running: 1; /* time is running */
- /* -- next substream -- */
- struct snd_pcm_substream *next;
- /* -- linked substreams -- */
- struct list_head link_list; /* linked list member */
- struct snd_pcm_group self_group; /* fake group for non linked substream (with substream lock inside) */
- struct snd_pcm_group *group; /* pointer to current group */
- /* -- assigned files -- */
- void *file;
- int ref_count;
- atomic_t mmap_count;
- unsigned int f_flags;
- void (*pcm_release)(struct snd_pcm_substream *);
- struct pid *pid;
-#if defined(CONFIG_SND_PCM_OSS) || defined(CONFIG_SND_PCM_OSS_MODULE)
- /* -- OSS things -- */
- struct snd_pcm_oss_substream oss;
-#endif
-#ifdef CONFIG_SND_VERBOSE_PROCFS
- struct snd_info_entry *proc_root;
- struct snd_info_entry *proc_info_entry;
- struct snd_info_entry *proc_hw_params_entry;
- struct snd_info_entry *proc_sw_params_entry;
- struct snd_info_entry *proc_status_entry;
- struct snd_info_entry *proc_prealloc_entry;
- struct snd_info_entry *proc_prealloc_max_entry;
-#endif
- /* misc flags */
- unsigned int hw_opened: 1;
-};
-
-#define SUBSTREAM_BUSY(substream) ((substream)->ref_count > 0)
-
-
-struct snd_pcm_str {
- int stream; /* stream (direction) */
- struct snd_pcm *pcm;
- /* -- substreams -- */
- unsigned int substream_count;
- unsigned int substream_opened;
- struct snd_pcm_substream *substream;
-#if defined(CONFIG_SND_PCM_OSS) || defined(CONFIG_SND_PCM_OSS_MODULE)
- /* -- OSS things -- */
- struct snd_pcm_oss_stream oss;
-#endif
-#ifdef CONFIG_SND_VERBOSE_PROCFS
- struct snd_info_entry *proc_root;
- struct snd_info_entry *proc_info_entry;
-#ifdef CONFIG_SND_PCM_XRUN_DEBUG
- unsigned int xrun_debug; /* 0 = disabled, 1 = verbose, 2 = stacktrace */
- struct snd_info_entry *proc_xrun_debug_entry;
-#endif
-#endif
-};
-
-struct snd_pcm {
- struct snd_card *card;
- struct list_head list;
- int device; /* device number */
- unsigned int info_flags;
- unsigned short dev_class;
- unsigned short dev_subclass;
- char id[64];
- char name[80];
- struct snd_pcm_str streams[2];
- struct mutex open_mutex;
- wait_queue_head_t open_wait;
- void *private_data;
- void (*private_free) (struct snd_pcm *pcm);
- struct device *dev; /* actual hw device this belongs to */
- bool internal; /* pcm is for internal use only */
-#if defined(CONFIG_SND_PCM_OSS) || defined(CONFIG_SND_PCM_OSS_MODULE)
- struct snd_pcm_oss oss;
-#endif
-};
-
-struct snd_pcm_notify {
- int (*n_register) (struct snd_pcm * pcm);
- int (*n_disconnect) (struct snd_pcm * pcm);
- int (*n_unregister) (struct snd_pcm * pcm);
- struct list_head list;
-};
-
-/*
- * Registering
- */
-
-extern const struct file_operations snd_pcm_f_ops[2];
-
-int snd_pcm_new(struct snd_card *card, const char *id, int device,
- int playback_count, int capture_count,
- struct snd_pcm **rpcm);
-int snd_pcm_new_internal(struct snd_card *card, const char *id, int device,
- int playback_count, int capture_count,
- struct snd_pcm **rpcm);
-int snd_pcm_new_stream(struct snd_pcm *pcm, int stream, int substream_count);
-
-int snd_pcm_notify(struct snd_pcm_notify *notify, int nfree);
-
-/*
- * Native I/O
- */
-
-extern rwlock_t snd_pcm_link_rwlock;
-
-int snd_pcm_info(struct snd_pcm_substream *substream, struct snd_pcm_info *info);
-int snd_pcm_info_user(struct snd_pcm_substream *substream,
- struct snd_pcm_info __user *info);
-int snd_pcm_status(struct snd_pcm_substream *substream,
- struct snd_pcm_status *status);
-int snd_pcm_start(struct snd_pcm_substream *substream);
-int snd_pcm_stop(struct snd_pcm_substream *substream, snd_pcm_state_t status);
-int snd_pcm_drain_done(struct snd_pcm_substream *substream);
-#ifdef CONFIG_PM
-int snd_pcm_suspend(struct snd_pcm_substream *substream);
-int snd_pcm_suspend_all(struct snd_pcm *pcm);
-#endif
-int snd_pcm_kernel_ioctl(struct snd_pcm_substream *substream, unsigned int cmd, void *arg);
-int snd_pcm_open_substream(struct snd_pcm *pcm, int stream, struct file *file,
- struct snd_pcm_substream **rsubstream);
-void snd_pcm_release_substream(struct snd_pcm_substream *substream);
-int snd_pcm_attach_substream(struct snd_pcm *pcm, int stream, struct file *file,
- struct snd_pcm_substream **rsubstream);
-void snd_pcm_detach_substream(struct snd_pcm_substream *substream);
-void snd_pcm_vma_notify_data(void *client, void *data);
-int snd_pcm_mmap_data(struct snd_pcm_substream *substream, struct file *file, struct vm_area_struct *area);
-
-
-#ifdef CONFIG_SND_DEBUG
-void snd_pcm_debug_name(struct snd_pcm_substream *substream,
- char *name, size_t len);
-#else
-static inline void
-snd_pcm_debug_name(struct snd_pcm_substream *substream, char *buf, size_t size)
-{
- *buf = 0;
-}
-#endif
-
-/*
- * PCM library
- */
-
-static inline int snd_pcm_stream_linked(struct snd_pcm_substream *substream)
-{
- return substream->group != &substream->self_group;
-}
-
-static inline void snd_pcm_stream_lock(struct snd_pcm_substream *substream)
-{
- read_lock(&snd_pcm_link_rwlock);
- spin_lock(&substream->self_group.lock);
-}
-
-static inline void snd_pcm_stream_unlock(struct snd_pcm_substream *substream)
-{
- spin_unlock(&substream->self_group.lock);
- read_unlock(&snd_pcm_link_rwlock);
-}
-
-static inline void snd_pcm_stream_lock_irq(struct snd_pcm_substream *substream)
-{
- read_lock_irq(&snd_pcm_link_rwlock);
- spin_lock(&substream->self_group.lock);
-}
-
-static inline void snd_pcm_stream_unlock_irq(struct snd_pcm_substream *substream)
-{
- spin_unlock(&substream->self_group.lock);
- read_unlock_irq(&snd_pcm_link_rwlock);
-}
-
-#define snd_pcm_stream_lock_irqsave(substream, flags) \
-do { \
- read_lock_irqsave(&snd_pcm_link_rwlock, (flags)); \
- spin_lock(&substream->self_group.lock); \
-} while (0)
-
-#define snd_pcm_stream_unlock_irqrestore(substream, flags) \
-do { \
- spin_unlock(&substream->self_group.lock); \
- read_unlock_irqrestore(&snd_pcm_link_rwlock, (flags)); \
-} while (0)
-
-#define snd_pcm_group_for_each_entry(s, substream) \
- list_for_each_entry(s, &substream->group->substreams, link_list)
-
-static inline int snd_pcm_running(struct snd_pcm_substream *substream)
-{
- return (substream->runtime->status->state == SNDRV_PCM_STATE_RUNNING ||
- (substream->runtime->status->state == SNDRV_PCM_STATE_DRAINING &&
- substream->stream == SNDRV_PCM_STREAM_PLAYBACK));
-}
-
-static inline ssize_t bytes_to_samples(struct snd_pcm_runtime *runtime, ssize_t size)
-{
- return size * 8 / runtime->sample_bits;
-}
-
-static inline snd_pcm_sframes_t bytes_to_frames(struct snd_pcm_runtime *runtime, ssize_t size)
-{
- return size * 8 / runtime->frame_bits;
-}
-
-static inline ssize_t samples_to_bytes(struct snd_pcm_runtime *runtime, ssize_t size)
-{
- return size * runtime->sample_bits / 8;
-}
-
-static inline ssize_t frames_to_bytes(struct snd_pcm_runtime *runtime, snd_pcm_sframes_t size)
-{
- return size * runtime->frame_bits / 8;
-}
-
-static inline int frame_aligned(struct snd_pcm_runtime *runtime, ssize_t bytes)
-{
- return bytes % runtime->byte_align == 0;
-}
-
-static inline size_t snd_pcm_lib_buffer_bytes(struct snd_pcm_substream *substream)
-{
- struct snd_pcm_runtime *runtime = substream->runtime;
- return frames_to_bytes(runtime, runtime->buffer_size);
-}
-
-static inline size_t snd_pcm_lib_period_bytes(struct snd_pcm_substream *substream)
-{
- struct snd_pcm_runtime *runtime = substream->runtime;
- return frames_to_bytes(runtime, runtime->period_size);
-}
-
-/*
- * result is: 0 ... (boundary - 1)
- */
-static inline snd_pcm_uframes_t snd_pcm_playback_avail(struct snd_pcm_runtime *runtime)
-{
- snd_pcm_sframes_t avail = runtime->status->hw_ptr + runtime->buffer_size - runtime->control->appl_ptr;
- if (avail < 0)
- avail += runtime->boundary;
- else if ((snd_pcm_uframes_t) avail >= runtime->boundary)
- avail -= runtime->boundary;
- return avail;
-}
-
-/*
- * result is: 0 ... (boundary - 1)
- */
-static inline snd_pcm_uframes_t snd_pcm_capture_avail(struct snd_pcm_runtime *runtime)
-{
- snd_pcm_sframes_t avail = runtime->status->hw_ptr - runtime->control->appl_ptr;
- if (avail < 0)
- avail += runtime->boundary;
- return avail;
-}
-
-static inline snd_pcm_sframes_t snd_pcm_playback_hw_avail(struct snd_pcm_runtime *runtime)
-{
- return runtime->buffer_size - snd_pcm_playback_avail(runtime);
-}
-
-static inline snd_pcm_sframes_t snd_pcm_capture_hw_avail(struct snd_pcm_runtime *runtime)
-{
- return runtime->buffer_size - snd_pcm_capture_avail(runtime);
-}
-
-/**
- * snd_pcm_playback_ready - check whether the playback buffer is available
- * @substream: the pcm substream instance
- *
- * Checks whether enough free space is available on the playback buffer.
- *
- * Returns non-zero if available, or zero if not.
- */
-static inline int snd_pcm_playback_ready(struct snd_pcm_substream *substream)
-{
- struct snd_pcm_runtime *runtime = substream->runtime;
- return snd_pcm_playback_avail(runtime) >= runtime->control->avail_min;
-}
-
-/**
- * snd_pcm_capture_ready - check whether the capture buffer is available
- * @substream: the pcm substream instance
- *
- * Checks whether enough capture data is available on the capture buffer.
- *
- * Returns non-zero if available, or zero if not.
- */
-static inline int snd_pcm_capture_ready(struct snd_pcm_substream *substream)
-{
- struct snd_pcm_runtime *runtime = substream->runtime;
- return snd_pcm_capture_avail(runtime) >= runtime->control->avail_min;
-}
-
-/**
- * snd_pcm_playback_data - check whether any data exists on the playback buffer
- * @substream: the pcm substream instance
- *
- * Checks whether any data exists on the playback buffer. If stop_threshold
- * is bigger or equal to boundary, then this function returns always non-zero.
- *
- * Returns non-zero if exists, or zero if not.
- */
-static inline int snd_pcm_playback_data(struct snd_pcm_substream *substream)
-{
- struct snd_pcm_runtime *runtime = substream->runtime;
-
- if (runtime->stop_threshold >= runtime->boundary)
- return 1;
- return snd_pcm_playback_avail(runtime) < runtime->buffer_size;
-}
-
-/**
- * snd_pcm_playback_empty - check whether the playback buffer is empty
- * @substream: the pcm substream instance
- *
- * Checks whether the playback buffer is empty.
- *
- * Returns non-zero if empty, or zero if not.
- */
-static inline int snd_pcm_playback_empty(struct snd_pcm_substream *substream)
-{
- struct snd_pcm_runtime *runtime = substream->runtime;
- return snd_pcm_playback_avail(runtime) >= runtime->buffer_size;
-}
-
-/**
- * snd_pcm_capture_empty - check whether the capture buffer is empty
- * @substream: the pcm substream instance
- *
- * Checks whether the capture buffer is empty.
- *
- * Returns non-zero if empty, or zero if not.
- */
-static inline int snd_pcm_capture_empty(struct snd_pcm_substream *substream)
-{
- struct snd_pcm_runtime *runtime = substream->runtime;
- return snd_pcm_capture_avail(runtime) == 0;
-}
-
-static inline void snd_pcm_trigger_done(struct snd_pcm_substream *substream,
- struct snd_pcm_substream *master)
-{
- substream->runtime->trigger_master = master;
-}
-
-static inline int hw_is_mask(int var)
-{
- return var >= SNDRV_PCM_HW_PARAM_FIRST_MASK &&
- var <= SNDRV_PCM_HW_PARAM_LAST_MASK;
-}
-
-static inline int hw_is_interval(int var)
-{
- return var >= SNDRV_PCM_HW_PARAM_FIRST_INTERVAL &&
- var <= SNDRV_PCM_HW_PARAM_LAST_INTERVAL;
-}
-
-static inline struct snd_mask *hw_param_mask(struct snd_pcm_hw_params *params,
- snd_pcm_hw_param_t var)
-{
- return &params->masks[var - SNDRV_PCM_HW_PARAM_FIRST_MASK];
-}
-
-static inline struct snd_interval *hw_param_interval(struct snd_pcm_hw_params *params,
- snd_pcm_hw_param_t var)
-{
- return &params->intervals[var - SNDRV_PCM_HW_PARAM_FIRST_INTERVAL];
-}
-
-static inline const struct snd_mask *hw_param_mask_c(const struct snd_pcm_hw_params *params,
- snd_pcm_hw_param_t var)
-{
- return &params->masks[var - SNDRV_PCM_HW_PARAM_FIRST_MASK];
-}
-
-static inline const struct snd_interval *hw_param_interval_c(const struct snd_pcm_hw_params *params,
- snd_pcm_hw_param_t var)
-{
- return &params->intervals[var - SNDRV_PCM_HW_PARAM_FIRST_INTERVAL];
-}
-
-#define params_channels(p) \
- (hw_param_interval_c((p), SNDRV_PCM_HW_PARAM_CHANNELS)->min)
-#define params_rate(p) \
- (hw_param_interval_c((p), SNDRV_PCM_HW_PARAM_RATE)->min)
-#define params_period_size(p) \
- (hw_param_interval_c((p), SNDRV_PCM_HW_PARAM_PERIOD_SIZE)->min)
-#define params_periods(p) \
- (hw_param_interval_c((p), SNDRV_PCM_HW_PARAM_PERIODS)->min)
-#define params_buffer_size(p) \
- (hw_param_interval_c((p), SNDRV_PCM_HW_PARAM_BUFFER_SIZE)->min)
-#define params_buffer_bytes(p) \
- (hw_param_interval_c((p), SNDRV_PCM_HW_PARAM_BUFFER_BYTES)->min)
-
-int snd_interval_refine(struct snd_interval *i, const struct snd_interval *v);
-void snd_interval_mul(const struct snd_interval *a, const struct snd_interval *b, struct snd_interval *c);
-void snd_interval_div(const struct snd_interval *a, const struct snd_interval *b, struct snd_interval *c);
-void snd_interval_muldivk(const struct snd_interval *a, const struct snd_interval *b,
- unsigned int k, struct snd_interval *c);
-void snd_interval_mulkdiv(const struct snd_interval *a, unsigned int k,
- const struct snd_interval *b, struct snd_interval *c);
-int snd_interval_list(struct snd_interval *i, unsigned int count,
- const unsigned int *list, unsigned int mask);
-int snd_interval_ratnum(struct snd_interval *i,
- unsigned int rats_count, struct snd_ratnum *rats,
- unsigned int *nump, unsigned int *denp);
-
-void _snd_pcm_hw_params_any(struct snd_pcm_hw_params *params);
-void _snd_pcm_hw_param_setempty(struct snd_pcm_hw_params *params, snd_pcm_hw_param_t var);
-int snd_pcm_hw_params_choose(struct snd_pcm_substream *substream, struct snd_pcm_hw_params *params);
-
-int snd_pcm_hw_refine(struct snd_pcm_substream *substream, struct snd_pcm_hw_params *params);
-
-int snd_pcm_hw_constraints_init(struct snd_pcm_substream *substream);
-int snd_pcm_hw_constraints_complete(struct snd_pcm_substream *substream);
-
-int snd_pcm_hw_constraint_mask(struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var,
- u_int32_t mask);
-int snd_pcm_hw_constraint_mask64(struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var,
- u_int64_t mask);
-int snd_pcm_hw_constraint_minmax(struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var,
- unsigned int min, unsigned int max);
-int snd_pcm_hw_constraint_integer(struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var);
-int snd_pcm_hw_constraint_list(struct snd_pcm_runtime *runtime,
- unsigned int cond,
- snd_pcm_hw_param_t var,
- struct snd_pcm_hw_constraint_list *l);
-int snd_pcm_hw_constraint_ratnums(struct snd_pcm_runtime *runtime,
- unsigned int cond,
- snd_pcm_hw_param_t var,
- struct snd_pcm_hw_constraint_ratnums *r);
-int snd_pcm_hw_constraint_ratdens(struct snd_pcm_runtime *runtime,
- unsigned int cond,
- snd_pcm_hw_param_t var,
- struct snd_pcm_hw_constraint_ratdens *r);
-int snd_pcm_hw_constraint_msbits(struct snd_pcm_runtime *runtime,
- unsigned int cond,
- unsigned int width,
- unsigned int msbits);
-int snd_pcm_hw_constraint_step(struct snd_pcm_runtime *runtime,
- unsigned int cond,
- snd_pcm_hw_param_t var,
- unsigned long step);
-int snd_pcm_hw_constraint_pow2(struct snd_pcm_runtime *runtime,
- unsigned int cond,
- snd_pcm_hw_param_t var);
-int snd_pcm_hw_rule_noresample(struct snd_pcm_runtime *runtime,
- unsigned int base_rate);
-int snd_pcm_hw_rule_add(struct snd_pcm_runtime *runtime,
- unsigned int cond,
- int var,
- snd_pcm_hw_rule_func_t func, void *private,
- int dep, ...);
-
-int snd_pcm_format_signed(snd_pcm_format_t format);
-int snd_pcm_format_unsigned(snd_pcm_format_t format);
-int snd_pcm_format_linear(snd_pcm_format_t format);
-int snd_pcm_format_little_endian(snd_pcm_format_t format);
-int snd_pcm_format_big_endian(snd_pcm_format_t format);
-#if 0 /* just for DocBook */
-/**
- * snd_pcm_format_cpu_endian - Check the PCM format is CPU-endian
- * @format: the format to check
- *
- * Returns 1 if the given PCM format is CPU-endian, 0 if
- * opposite, or a negative error code if endian not specified.
- */
-int snd_pcm_format_cpu_endian(snd_pcm_format_t format);
-#endif /* DocBook */
-#ifdef SNDRV_LITTLE_ENDIAN
-#define snd_pcm_format_cpu_endian(format) snd_pcm_format_little_endian(format)
-#else
-#define snd_pcm_format_cpu_endian(format) snd_pcm_format_big_endian(format)
-#endif
-int snd_pcm_format_width(snd_pcm_format_t format); /* in bits */
-int snd_pcm_format_physical_width(snd_pcm_format_t format); /* in bits */
-ssize_t snd_pcm_format_size(snd_pcm_format_t format, size_t samples);
-const unsigned char *snd_pcm_format_silence_64(snd_pcm_format_t format);
-int snd_pcm_format_set_silence(snd_pcm_format_t format, void *buf, unsigned int frames);
-snd_pcm_format_t snd_pcm_build_linear_format(int width, int unsignd, int big_endian);
-
-void snd_pcm_set_ops(struct snd_pcm * pcm, int direction, struct snd_pcm_ops *ops);
-void snd_pcm_set_sync(struct snd_pcm_substream *substream);
-int snd_pcm_lib_interleave_len(struct snd_pcm_substream *substream);
-int snd_pcm_lib_ioctl(struct snd_pcm_substream *substream,
- unsigned int cmd, void *arg);
-int snd_pcm_update_state(struct snd_pcm_substream *substream,
- struct snd_pcm_runtime *runtime);
-int snd_pcm_update_hw_ptr(struct snd_pcm_substream *substream);
-int snd_pcm_playback_xrun_check(struct snd_pcm_substream *substream);
-int snd_pcm_capture_xrun_check(struct snd_pcm_substream *substream);
-int snd_pcm_playback_xrun_asap(struct snd_pcm_substream *substream);
-int snd_pcm_capture_xrun_asap(struct snd_pcm_substream *substream);
-void snd_pcm_playback_silence(struct snd_pcm_substream *substream, snd_pcm_uframes_t new_hw_ptr);
-void snd_pcm_period_elapsed(struct snd_pcm_substream *substream);
-snd_pcm_sframes_t snd_pcm_lib_write(struct snd_pcm_substream *substream,
- const void __user *buf,
- snd_pcm_uframes_t frames);
-snd_pcm_sframes_t snd_pcm_lib_read(struct snd_pcm_substream *substream,
- void __user *buf, snd_pcm_uframes_t frames);
-snd_pcm_sframes_t snd_pcm_lib_writev(struct snd_pcm_substream *substream,
- void __user **bufs, snd_pcm_uframes_t frames);
-snd_pcm_sframes_t snd_pcm_lib_readv(struct snd_pcm_substream *substream,
- void __user **bufs, snd_pcm_uframes_t frames);
-
-extern const struct snd_pcm_hw_constraint_list snd_pcm_known_rates;
-
-int snd_pcm_limit_hw_rates(struct snd_pcm_runtime *runtime);
-unsigned int snd_pcm_rate_to_rate_bit(unsigned int rate);
-
-static inline void snd_pcm_set_runtime_buffer(struct snd_pcm_substream *substream,
- struct snd_dma_buffer *bufp)
-{
- struct snd_pcm_runtime *runtime = substream->runtime;
- if (bufp) {
- runtime->dma_buffer_p = bufp;
- runtime->dma_area = bufp->area;
- runtime->dma_addr = bufp->addr;
- runtime->dma_bytes = bufp->bytes;
- } else {
- runtime->dma_buffer_p = NULL;
- runtime->dma_area = NULL;
- runtime->dma_addr = 0;
- runtime->dma_bytes = 0;
- }
-}
-
-/*
- * Timer interface
- */
-
-void snd_pcm_timer_resolution_change(struct snd_pcm_substream *substream);
-void snd_pcm_timer_init(struct snd_pcm_substream *substream);
-void snd_pcm_timer_done(struct snd_pcm_substream *substream);
-
-static inline void snd_pcm_gettime(struct snd_pcm_runtime *runtime,
- struct timespec *tv)
-{
- if (runtime->tstamp_type == SNDRV_PCM_TSTAMP_TYPE_MONOTONIC)
- do_posix_clock_monotonic_gettime(tv);
- else
- getnstimeofday(tv);
-}
-
-/*
- * Memory
- */
-
-int snd_pcm_lib_preallocate_free(struct snd_pcm_substream *substream);
-int snd_pcm_lib_preallocate_free_for_all(struct snd_pcm *pcm);
-int snd_pcm_lib_preallocate_pages(struct snd_pcm_substream *substream,
- int type, struct device *data,
- size_t size, size_t max);
-int snd_pcm_lib_preallocate_pages_for_all(struct snd_pcm *pcm,
- int type, void *data,
- size_t size, size_t max);
-int snd_pcm_lib_malloc_pages(struct snd_pcm_substream *substream, size_t size);
-int snd_pcm_lib_free_pages(struct snd_pcm_substream *substream);
-
-int _snd_pcm_lib_alloc_vmalloc_buffer(struct snd_pcm_substream *substream,
- size_t size, gfp_t gfp_flags);
-int snd_pcm_lib_free_vmalloc_buffer(struct snd_pcm_substream *substream);
-struct page *snd_pcm_lib_get_vmalloc_page(struct snd_pcm_substream *substream,
- unsigned long offset);
-#if 0 /* for kernel-doc */
-/**
- * snd_pcm_lib_alloc_vmalloc_buffer - allocate virtual DMA buffer
- * @substream: the substream to allocate the buffer to
- * @size: the requested buffer size, in bytes
- *
- * Allocates the PCM substream buffer using vmalloc(), i.e., the memory is
- * contiguous in kernel virtual space, but not in physical memory. Use this
- * if the buffer is accessed by kernel code but not by device DMA.
- *
- * Returns 1 if the buffer was changed, 0 if not changed, or a negative error
- * code.
- */
-static int snd_pcm_lib_alloc_vmalloc_buffer
- (struct snd_pcm_substream *substream, size_t size);
-/**
- * snd_pcm_lib_alloc_vmalloc_32_buffer - allocate 32-bit-addressable buffer
- * @substream: the substream to allocate the buffer to
- * @size: the requested buffer size, in bytes
- *
- * This function works like snd_pcm_lib_alloc_vmalloc_buffer(), but uses
- * vmalloc_32(), i.e., the pages are allocated from 32-bit-addressable memory.
- */
-static int snd_pcm_lib_alloc_vmalloc_32_buffer
- (struct snd_pcm_substream *substream, size_t size);
-#endif
-#define snd_pcm_lib_alloc_vmalloc_buffer(subs, size) \
- _snd_pcm_lib_alloc_vmalloc_buffer \
- (subs, size, GFP_KERNEL | __GFP_HIGHMEM | __GFP_ZERO)
-#define snd_pcm_lib_alloc_vmalloc_32_buffer(subs, size) \
- _snd_pcm_lib_alloc_vmalloc_buffer \
- (subs, size, GFP_KERNEL | GFP_DMA32 | __GFP_ZERO)
-
-#ifdef CONFIG_SND_DMA_SGBUF
-/*
- * SG-buffer handling
- */
-#define snd_pcm_substream_sgbuf(substream) \
- ((substream)->runtime->dma_buffer_p->private_data)
-
-static inline dma_addr_t
-snd_pcm_sgbuf_get_addr(struct snd_pcm_substream *substream, unsigned int ofs)
-{
- struct snd_sg_buf *sg = snd_pcm_substream_sgbuf(substream);
- return snd_sgbuf_get_addr(sg, ofs);
-}
-
-static inline void *
-snd_pcm_sgbuf_get_ptr(struct snd_pcm_substream *substream, unsigned int ofs)
-{
- struct snd_sg_buf *sg = snd_pcm_substream_sgbuf(substream);
- return snd_sgbuf_get_ptr(sg, ofs);
-}
-
-struct page *snd_pcm_sgbuf_ops_page(struct snd_pcm_substream *substream,
- unsigned long offset);
-unsigned int snd_pcm_sgbuf_get_chunk_size(struct snd_pcm_substream *substream,
- unsigned int ofs, unsigned int size);
-
-#else /* !SND_DMA_SGBUF */
-/*
- * fake using a continuous buffer
- */
-static inline dma_addr_t
-snd_pcm_sgbuf_get_addr(struct snd_pcm_substream *substream, unsigned int ofs)
-{
- return substream->runtime->dma_addr + ofs;
-}
-
-static inline void *
-snd_pcm_sgbuf_get_ptr(struct snd_pcm_substream *substream, unsigned int ofs)
-{
- return substream->runtime->dma_area + ofs;
-}
-
-#define snd_pcm_sgbuf_ops_page NULL
-
-#define snd_pcm_sgbuf_get_chunk_size(subs, ofs, size) (size)
-
-#endif /* SND_DMA_SGBUF */
-
-/* handle mmap counter - PCM mmap callback should handle this counter properly */
-static inline void snd_pcm_mmap_data_open(struct vm_area_struct *area)
-{
- struct snd_pcm_substream *substream = (struct snd_pcm_substream *)area->vm_private_data;
- atomic_inc(&substream->mmap_count);
-}
-
-static inline void snd_pcm_mmap_data_close(struct vm_area_struct *area)
-{
- struct snd_pcm_substream *substream = (struct snd_pcm_substream *)area->vm_private_data;
- atomic_dec(&substream->mmap_count);
-}
-
-int snd_pcm_lib_default_mmap(struct snd_pcm_substream *substream,
- struct vm_area_struct *area);
-/* mmap for io-memory area */
-#if defined(CONFIG_X86) || defined(CONFIG_PPC) || defined(CONFIG_ALPHA)
-#define SNDRV_PCM_INFO_MMAP_IOMEM SNDRV_PCM_INFO_MMAP
-int snd_pcm_lib_mmap_iomem(struct snd_pcm_substream *substream, struct vm_area_struct *area);
-#else
-#define SNDRV_PCM_INFO_MMAP_IOMEM 0
-#define snd_pcm_lib_mmap_iomem NULL
-#endif
-
-#define snd_pcm_lib_mmap_vmalloc NULL
-
-static inline void snd_pcm_limit_isa_dma_size(int dma, size_t *max)
-{
- *max = dma < 4 ? 64 * 1024 : 128 * 1024;
-}
-
-/*
- * Misc
- */
-
-#define SNDRV_PCM_DEFAULT_CON_SPDIF (IEC958_AES0_CON_EMPHASIS_NONE|\
- (IEC958_AES1_CON_ORIGINAL<<8)|\
- (IEC958_AES1_CON_PCM_CODER<<8)|\
- (IEC958_AES3_CON_FS_48000<<24))
-
-#define PCM_RUNTIME_CHECK(sub) snd_BUG_ON(!(sub) || !(sub)->runtime)
-
-const char *snd_pcm_format_name(snd_pcm_format_t format);
-
-#endif /* __SOUND_PCM_H */
diff --git a/ANDROID_3.4.5/include/sound/pcm_oss.h b/ANDROID_3.4.5/include/sound/pcm_oss.h
deleted file mode 100644
index 760c969d..00000000
--- a/ANDROID_3.4.5/include/sound/pcm_oss.h
+++ /dev/null
@@ -1,89 +0,0 @@
-#ifndef __SOUND_PCM_OSS_H
-#define __SOUND_PCM_OSS_H
-
-/*
- * Digital Audio (PCM) - OSS compatibility abstract layer
- * Copyright (c) by Jaroslav Kysela <perex@perex.cz>
- *
- *
- * 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
- *
- */
-
-struct snd_pcm_oss_setup {
- char *task_name;
- unsigned int disable:1,
- direct:1,
- block:1,
- nonblock:1,
- partialfrag:1,
- nosilence:1,
- buggyptr:1;
- unsigned int periods;
- unsigned int period_size;
- struct snd_pcm_oss_setup *next;
-};
-
-struct snd_pcm_oss_runtime {
- unsigned params: 1, /* format/parameter change */
- prepare: 1, /* need to prepare the operation */
- trigger: 1, /* trigger flag */
- sync_trigger: 1; /* sync trigger flag */
- int rate; /* requested rate */
- int format; /* requested OSS format */
- unsigned int channels; /* requested channels */
- unsigned int fragshift;
- unsigned int maxfrags;
- unsigned int subdivision; /* requested subdivision */
- size_t period_bytes; /* requested period size */
- size_t period_frames; /* period frames for poll */
- size_t period_ptr; /* actual write pointer to period */
- unsigned int periods;
- size_t buffer_bytes; /* requested buffer size */
- size_t bytes; /* total # bytes processed */
- size_t mmap_bytes;
- char *buffer; /* vmallocated period */
- size_t buffer_used; /* used length from period buffer */
- struct mutex params_lock;
-#ifdef CONFIG_SND_PCM_OSS_PLUGINS
- struct snd_pcm_plugin *plugin_first;
- struct snd_pcm_plugin *plugin_last;
-#endif
- unsigned int prev_hw_ptr_period;
-};
-
-struct snd_pcm_oss_file {
- struct snd_pcm_substream *streams[2];
-};
-
-struct snd_pcm_oss_substream {
- unsigned oss: 1; /* oss mode */
- struct snd_pcm_oss_setup setup; /* active setup */
-};
-
-struct snd_pcm_oss_stream {
- struct snd_pcm_oss_setup *setup_list; /* setup list */
- struct mutex setup_mutex;
-#ifdef CONFIG_SND_VERBOSE_PROCFS
- struct snd_info_entry *proc_entry;
-#endif
-};
-
-struct snd_pcm_oss {
- int reg;
- unsigned int reg_mask;
-};
-
-#endif /* __SOUND_PCM_OSS_H */
diff --git a/ANDROID_3.4.5/include/sound/pcm_params.h b/ANDROID_3.4.5/include/sound/pcm_params.h
deleted file mode 100644
index f494f1e3..00000000
--- a/ANDROID_3.4.5/include/sound/pcm_params.h
+++ /dev/null
@@ -1,355 +0,0 @@
-#ifndef __SOUND_PCM_PARAMS_H
-#define __SOUND_PCM_PARAMS_H
-
-/*
- * PCM params helpers
- * Copyright (c) by Abramo Bagnara <abramo@alsa-project.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
- *
- */
-
-int snd_pcm_hw_param_first(struct snd_pcm_substream *pcm,
- struct snd_pcm_hw_params *params,
- snd_pcm_hw_param_t var, int *dir);
-int snd_pcm_hw_param_last(struct snd_pcm_substream *pcm,
- struct snd_pcm_hw_params *params,
- snd_pcm_hw_param_t var, int *dir);
-int snd_pcm_hw_param_value(const struct snd_pcm_hw_params *params,
- snd_pcm_hw_param_t var, int *dir);
-
-#define SNDRV_MASK_BITS 64 /* we use so far 64bits only */
-#define SNDRV_MASK_SIZE (SNDRV_MASK_BITS / 32)
-#define MASK_OFS(i) ((i) >> 5)
-#define MASK_BIT(i) (1U << ((i) & 31))
-
-static inline unsigned int ld2(u_int32_t v)
-{
- unsigned r = 0;
-
- if (v >= 0x10000) {
- v >>= 16;
- r += 16;
- }
- if (v >= 0x100) {
- v >>= 8;
- r += 8;
- }
- if (v >= 0x10) {
- v >>= 4;
- r += 4;
- }
- if (v >= 4) {
- v >>= 2;
- r += 2;
- }
- if (v >= 2)
- r++;
- return r;
-}
-
-static inline size_t snd_mask_sizeof(void)
-{
- return sizeof(struct snd_mask);
-}
-
-static inline void snd_mask_none(struct snd_mask *mask)
-{
- memset(mask, 0, sizeof(*mask));
-}
-
-static inline void snd_mask_any(struct snd_mask *mask)
-{
- memset(mask, 0xff, SNDRV_MASK_SIZE * sizeof(u_int32_t));
-}
-
-static inline int snd_mask_empty(const struct snd_mask *mask)
-{
- int i;
- for (i = 0; i < SNDRV_MASK_SIZE; i++)
- if (mask->bits[i])
- return 0;
- return 1;
-}
-
-static inline unsigned int snd_mask_min(const struct snd_mask *mask)
-{
- int i;
- for (i = 0; i < SNDRV_MASK_SIZE; i++) {
- if (mask->bits[i])
- return ffs(mask->bits[i]) - 1 + (i << 5);
- }
- return 0;
-}
-
-static inline unsigned int snd_mask_max(const struct snd_mask *mask)
-{
- int i;
- for (i = SNDRV_MASK_SIZE - 1; i >= 0; i--) {
- if (mask->bits[i])
- return ld2(mask->bits[i]) + (i << 5);
- }
- return 0;
-}
-
-static inline void snd_mask_set(struct snd_mask *mask, unsigned int val)
-{
- mask->bits[MASK_OFS(val)] |= MASK_BIT(val);
-}
-
-static inline void snd_mask_reset(struct snd_mask *mask, unsigned int val)
-{
- mask->bits[MASK_OFS(val)] &= ~MASK_BIT(val);
-}
-
-static inline void snd_mask_set_range(struct snd_mask *mask,
- unsigned int from, unsigned int to)
-{
- unsigned int i;
- for (i = from; i <= to; i++)
- mask->bits[MASK_OFS(i)] |= MASK_BIT(i);
-}
-
-static inline void snd_mask_reset_range(struct snd_mask *mask,
- unsigned int from, unsigned int to)
-{
- unsigned int i;
- for (i = from; i <= to; i++)
- mask->bits[MASK_OFS(i)] &= ~MASK_BIT(i);
-}
-
-static inline void snd_mask_leave(struct snd_mask *mask, unsigned int val)
-{
- unsigned int v;
- v = mask->bits[MASK_OFS(val)] & MASK_BIT(val);
- snd_mask_none(mask);
- mask->bits[MASK_OFS(val)] = v;
-}
-
-static inline void snd_mask_intersect(struct snd_mask *mask,
- const struct snd_mask *v)
-{
- int i;
- for (i = 0; i < SNDRV_MASK_SIZE; i++)
- mask->bits[i] &= v->bits[i];
-}
-
-static inline int snd_mask_eq(const struct snd_mask *mask,
- const struct snd_mask *v)
-{
- return ! memcmp(mask, v, SNDRV_MASK_SIZE * sizeof(u_int32_t));
-}
-
-static inline void snd_mask_copy(struct snd_mask *mask,
- const struct snd_mask *v)
-{
- *mask = *v;
-}
-
-static inline int snd_mask_test(const struct snd_mask *mask, unsigned int val)
-{
- return mask->bits[MASK_OFS(val)] & MASK_BIT(val);
-}
-
-static inline int snd_mask_single(const struct snd_mask *mask)
-{
- int i, c = 0;
- for (i = 0; i < SNDRV_MASK_SIZE; i++) {
- if (! mask->bits[i])
- continue;
- if (mask->bits[i] & (mask->bits[i] - 1))
- return 0;
- if (c)
- return 0;
- c++;
- }
- return 1;
-}
-
-static inline int snd_mask_refine(struct snd_mask *mask,
- const struct snd_mask *v)
-{
- struct snd_mask old;
- snd_mask_copy(&old, mask);
- snd_mask_intersect(mask, v);
- if (snd_mask_empty(mask))
- return -EINVAL;
- return !snd_mask_eq(mask, &old);
-}
-
-static inline int snd_mask_refine_first(struct snd_mask *mask)
-{
- if (snd_mask_single(mask))
- return 0;
- snd_mask_leave(mask, snd_mask_min(mask));
- return 1;
-}
-
-static inline int snd_mask_refine_last(struct snd_mask *mask)
-{
- if (snd_mask_single(mask))
- return 0;
- snd_mask_leave(mask, snd_mask_max(mask));
- return 1;
-}
-
-static inline int snd_mask_refine_min(struct snd_mask *mask, unsigned int val)
-{
- if (snd_mask_min(mask) >= val)
- return 0;
- snd_mask_reset_range(mask, 0, val - 1);
- if (snd_mask_empty(mask))
- return -EINVAL;
- return 1;
-}
-
-static inline int snd_mask_refine_max(struct snd_mask *mask, unsigned int val)
-{
- if (snd_mask_max(mask) <= val)
- return 0;
- snd_mask_reset_range(mask, val + 1, SNDRV_MASK_BITS);
- if (snd_mask_empty(mask))
- return -EINVAL;
- return 1;
-}
-
-static inline int snd_mask_refine_set(struct snd_mask *mask, unsigned int val)
-{
- int changed;
- changed = !snd_mask_single(mask);
- snd_mask_leave(mask, val);
- if (snd_mask_empty(mask))
- return -EINVAL;
- return changed;
-}
-
-static inline int snd_mask_value(const struct snd_mask *mask)
-{
- return snd_mask_min(mask);
-}
-
-static inline void snd_interval_any(struct snd_interval *i)
-{
- i->min = 0;
- i->openmin = 0;
- i->max = UINT_MAX;
- i->openmax = 0;
- i->integer = 0;
- i->empty = 0;
-}
-
-static inline void snd_interval_none(struct snd_interval *i)
-{
- i->empty = 1;
-}
-
-static inline int snd_interval_checkempty(const struct snd_interval *i)
-{
- return (i->min > i->max ||
- (i->min == i->max && (i->openmin || i->openmax)));
-}
-
-static inline int snd_interval_empty(const struct snd_interval *i)
-{
- return i->empty;
-}
-
-static inline int snd_interval_single(const struct snd_interval *i)
-{
- return (i->min == i->max ||
- (i->min + 1 == i->max && i->openmax));
-}
-
-static inline int snd_interval_value(const struct snd_interval *i)
-{
- return i->min;
-}
-
-static inline int snd_interval_min(const struct snd_interval *i)
-{
- return i->min;
-}
-
-static inline int snd_interval_max(const struct snd_interval *i)
-{
- unsigned int v;
- v = i->max;
- if (i->openmax)
- v--;
- return v;
-}
-
-static inline int snd_interval_test(const struct snd_interval *i, unsigned int val)
-{
- return !((i->min > val || (i->min == val && i->openmin) ||
- i->max < val || (i->max == val && i->openmax)));
-}
-
-static inline void snd_interval_copy(struct snd_interval *d, const struct snd_interval *s)
-{
- *d = *s;
-}
-
-static inline int snd_interval_setinteger(struct snd_interval *i)
-{
- if (i->integer)
- return 0;
- if (i->openmin && i->openmax && i->min == i->max)
- return -EINVAL;
- i->integer = 1;
- return 1;
-}
-
-static inline int snd_interval_eq(const struct snd_interval *i1, const struct snd_interval *i2)
-{
- if (i1->empty)
- return i2->empty;
- if (i2->empty)
- return i1->empty;
- return i1->min == i2->min && i1->openmin == i2->openmin &&
- i1->max == i2->max && i1->openmax == i2->openmax;
-}
-
-static inline unsigned int add(unsigned int a, unsigned int b)
-{
- if (a >= UINT_MAX - b)
- return UINT_MAX;
- return a + b;
-}
-
-static inline unsigned int sub(unsigned int a, unsigned int b)
-{
- if (a > b)
- return a - b;
- return 0;
-}
-
-#define params_access(p) ((__force snd_pcm_access_t)\
- snd_mask_min(hw_param_mask_c((p), SNDRV_PCM_HW_PARAM_ACCESS)))
-#define params_format(p) ((__force snd_pcm_format_t)\
- snd_mask_min(hw_param_mask_c((p), SNDRV_PCM_HW_PARAM_FORMAT)))
-#define params_subformat(p) \
- snd_mask_min(hw_param_mask_c((p), SNDRV_PCM_HW_PARAM_SUBFORMAT))
-
-static inline unsigned int
-params_period_bytes(const struct snd_pcm_hw_params *p)
-{
- return (params_period_size(p) *
- snd_pcm_format_physical_width(params_format(p)) *
- params_channels(p)) / 8;
-}
-
-#endif /* __SOUND_PCM_PARAMS_H */
diff --git a/ANDROID_3.4.5/include/sound/pt2258.h b/ANDROID_3.4.5/include/sound/pt2258.h
deleted file mode 100644
index 160f812f..00000000
--- a/ANDROID_3.4.5/include/sound/pt2258.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * ALSA Driver for the PT2258 volume controller.
- *
- * Copyright (c) 2006 Jochen Voss <voss@seehuhn.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
- *
- */
-
-#ifndef __SOUND_PT2258_H
-#define __SOUND_PT2258_H
-
-struct snd_pt2258 {
- struct snd_card *card;
- struct snd_i2c_bus *i2c_bus;
- struct snd_i2c_device *i2c_dev;
-
- unsigned char volume[6];
- int mute;
-};
-
-extern int snd_pt2258_reset(struct snd_pt2258 *pt);
-extern int snd_pt2258_build_controls(struct snd_pt2258 *pt);
-
-#endif /* __SOUND_PT2258_H */
diff --git a/ANDROID_3.4.5/include/sound/pxa2xx-lib.h b/ANDROID_3.4.5/include/sound/pxa2xx-lib.h
deleted file mode 100644
index 2fd3d251..00000000
--- a/ANDROID_3.4.5/include/sound/pxa2xx-lib.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef PXA2XX_LIB_H
-#define PXA2XX_LIB_H
-
-#include <linux/platform_device.h>
-#include <sound/ac97_codec.h>
-
-/* PCM */
-
-struct pxa2xx_pcm_dma_params {
- char *name; /* stream identifier */
- u32 dcmd; /* DMA descriptor dcmd field */
- volatile u32 *drcmr; /* the DMA request channel to use */
- u32 dev_addr; /* device physical address for DMA */
-};
-
-extern int __pxa2xx_pcm_hw_params(struct snd_pcm_substream *substream,
- struct snd_pcm_hw_params *params);
-extern int __pxa2xx_pcm_hw_free(struct snd_pcm_substream *substream);
-extern int pxa2xx_pcm_trigger(struct snd_pcm_substream *substream, int cmd);
-extern snd_pcm_uframes_t pxa2xx_pcm_pointer(struct snd_pcm_substream *substream);
-extern int __pxa2xx_pcm_prepare(struct snd_pcm_substream *substream);
-extern void pxa2xx_pcm_dma_irq(int dma_ch, void *dev_id);
-extern int __pxa2xx_pcm_open(struct snd_pcm_substream *substream);
-extern int __pxa2xx_pcm_close(struct snd_pcm_substream *substream);
-extern int pxa2xx_pcm_mmap(struct snd_pcm_substream *substream,
- struct vm_area_struct *vma);
-extern int pxa2xx_pcm_preallocate_dma_buffer(struct snd_pcm *pcm, int stream);
-extern void pxa2xx_pcm_free_dma_buffers(struct snd_pcm *pcm);
-
-/* AC97 */
-
-extern unsigned short pxa2xx_ac97_read(struct snd_ac97 *ac97, unsigned short reg);
-extern void pxa2xx_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short val);
-
-extern bool pxa2xx_ac97_try_warm_reset(struct snd_ac97 *ac97);
-extern bool pxa2xx_ac97_try_cold_reset(struct snd_ac97 *ac97);
-extern void pxa2xx_ac97_finish_reset(struct snd_ac97 *ac97);
-
-extern int pxa2xx_ac97_hw_suspend(void);
-extern int pxa2xx_ac97_hw_resume(void);
-
-extern int pxa2xx_ac97_hw_probe(struct platform_device *dev);
-extern void pxa2xx_ac97_hw_remove(struct platform_device *dev);
-
-#endif
diff --git a/ANDROID_3.4.5/include/sound/rawmidi.h b/ANDROID_3.4.5/include/sound/rawmidi.h
deleted file mode 100644
index 6b14359d..00000000
--- a/ANDROID_3.4.5/include/sound/rawmidi.h
+++ /dev/null
@@ -1,189 +0,0 @@
-#ifndef __SOUND_RAWMIDI_H
-#define __SOUND_RAWMIDI_H
-
-/*
- * Abstract layer for MIDI v1.0 stream
- * Copyright (c) by Jaroslav Kysela <perex@perex.cz>
- *
- *
- * 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 <sound/asound.h>
-#include <linux/interrupt.h>
-#include <linux/spinlock.h>
-#include <linux/wait.h>
-#include <linux/mutex.h>
-#include <linux/workqueue.h>
-
-#if defined(CONFIG_SND_SEQUENCER) || defined(CONFIG_SND_SEQUENCER_MODULE)
-#include "seq_device.h"
-#endif
-
-/*
- * Raw MIDI interface
- */
-
-#define SNDRV_RAWMIDI_DEVICES 8
-
-#define SNDRV_RAWMIDI_LFLG_OUTPUT (1<<0)
-#define SNDRV_RAWMIDI_LFLG_INPUT (1<<1)
-#define SNDRV_RAWMIDI_LFLG_OPEN (3<<0)
-#define SNDRV_RAWMIDI_LFLG_APPEND (1<<2)
-
-struct snd_rawmidi;
-struct snd_rawmidi_substream;
-struct snd_seq_port_info;
-struct pid;
-
-struct snd_rawmidi_ops {
- int (*open) (struct snd_rawmidi_substream * substream);
- int (*close) (struct snd_rawmidi_substream * substream);
- void (*trigger) (struct snd_rawmidi_substream * substream, int up);
- void (*drain) (struct snd_rawmidi_substream * substream);
-};
-
-struct snd_rawmidi_global_ops {
- int (*dev_register) (struct snd_rawmidi * rmidi);
- int (*dev_unregister) (struct snd_rawmidi * rmidi);
- void (*get_port_info)(struct snd_rawmidi *rmidi, int number,
- struct snd_seq_port_info *info);
-};
-
-struct snd_rawmidi_runtime {
- struct snd_rawmidi_substream *substream;
- unsigned int drain: 1, /* drain stage */
- oss: 1; /* OSS compatible mode */
- /* midi stream buffer */
- unsigned char *buffer; /* buffer for MIDI data */
- size_t buffer_size; /* size of buffer */
- size_t appl_ptr; /* application pointer */
- size_t hw_ptr; /* hardware pointer */
- size_t avail_min; /* min avail for wakeup */
- size_t avail; /* max used buffer for wakeup */
- size_t xruns; /* over/underruns counter */
- /* misc */
- spinlock_t lock;
- wait_queue_head_t sleep;
- /* event handler (new bytes, input only) */
- void (*event)(struct snd_rawmidi_substream *substream);
- /* defers calls to event [input] or ops->trigger [output] */
- struct work_struct event_work;
- /* private data */
- void *private_data;
- void (*private_free)(struct snd_rawmidi_substream *substream);
-};
-
-struct snd_rawmidi_substream {
- struct list_head list; /* list of all substream for given stream */
- int stream; /* direction */
- int number; /* substream number */
- unsigned int opened: 1, /* open flag */
- append: 1, /* append flag (merge more streams) */
- active_sensing: 1; /* send active sensing when close */
- int use_count; /* use counter (for output) */
- size_t bytes;
- struct snd_rawmidi *rmidi;
- struct snd_rawmidi_str *pstr;
- char name[32];
- struct snd_rawmidi_runtime *runtime;
- struct pid *pid;
- /* hardware layer */
- struct snd_rawmidi_ops *ops;
-};
-
-struct snd_rawmidi_file {
- struct snd_rawmidi *rmidi;
- struct snd_rawmidi_substream *input;
- struct snd_rawmidi_substream *output;
-};
-
-struct snd_rawmidi_str {
- unsigned int substream_count;
- unsigned int substream_opened;
- struct list_head substreams;
-};
-
-struct snd_rawmidi {
- struct snd_card *card;
- struct list_head list;
- unsigned int device; /* device number */
- unsigned int info_flags; /* SNDRV_RAWMIDI_INFO_XXXX */
- char id[64];
- char name[80];
-
-#ifdef CONFIG_SND_OSSEMUL
- int ossreg;
-#endif
-
- struct snd_rawmidi_global_ops *ops;
-
- struct snd_rawmidi_str streams[2];
-
- void *private_data;
- void (*private_free) (struct snd_rawmidi *rmidi);
-
- struct mutex open_mutex;
- wait_queue_head_t open_wait;
-
- struct snd_info_entry *dev;
- struct snd_info_entry *proc_entry;
-
-#if defined(CONFIG_SND_SEQUENCER) || defined(CONFIG_SND_SEQUENCER_MODULE)
- struct snd_seq_device *seq_dev;
-#endif
-};
-
-/* main rawmidi functions */
-
-int snd_rawmidi_new(struct snd_card *card, char *id, int device,
- int output_count, int input_count,
- struct snd_rawmidi **rmidi);
-void snd_rawmidi_set_ops(struct snd_rawmidi *rmidi, int stream,
- struct snd_rawmidi_ops *ops);
-
-/* callbacks */
-
-void snd_rawmidi_receive_reset(struct snd_rawmidi_substream *substream);
-int snd_rawmidi_receive(struct snd_rawmidi_substream *substream,
- const unsigned char *buffer, int count);
-void snd_rawmidi_transmit_reset(struct snd_rawmidi_substream *substream);
-int snd_rawmidi_transmit_empty(struct snd_rawmidi_substream *substream);
-int snd_rawmidi_transmit_peek(struct snd_rawmidi_substream *substream,
- unsigned char *buffer, int count);
-int snd_rawmidi_transmit_ack(struct snd_rawmidi_substream *substream, int count);
-int snd_rawmidi_transmit(struct snd_rawmidi_substream *substream,
- unsigned char *buffer, int count);
-
-/* main midi functions */
-
-int snd_rawmidi_info_select(struct snd_card *card, struct snd_rawmidi_info *info);
-int snd_rawmidi_kernel_open(struct snd_card *card, int device, int subdevice,
- int mode, struct snd_rawmidi_file *rfile);
-int snd_rawmidi_kernel_release(struct snd_rawmidi_file *rfile);
-int snd_rawmidi_output_params(struct snd_rawmidi_substream *substream,
- struct snd_rawmidi_params *params);
-int snd_rawmidi_input_params(struct snd_rawmidi_substream *substream,
- struct snd_rawmidi_params *params);
-int snd_rawmidi_drop_output(struct snd_rawmidi_substream *substream);
-int snd_rawmidi_drain_output(struct snd_rawmidi_substream *substream);
-int snd_rawmidi_drain_input(struct snd_rawmidi_substream *substream);
-long snd_rawmidi_kernel_read(struct snd_rawmidi_substream *substream,
- unsigned char *buf, long count);
-long snd_rawmidi_kernel_write(struct snd_rawmidi_substream *substream,
- const unsigned char *buf, long count);
-
-#endif /* __SOUND_RAWMIDI_H */
diff --git a/ANDROID_3.4.5/include/sound/s3c24xx_uda134x.h b/ANDROID_3.4.5/include/sound/s3c24xx_uda134x.h
deleted file mode 100644
index 33df4cb9..00000000
--- a/ANDROID_3.4.5/include/sound/s3c24xx_uda134x.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef _S3C24XX_UDA134X_H_
-#define _S3C24XX_UDA134X_H_ 1
-
-#include <sound/uda134x.h>
-
-struct s3c24xx_uda134x_platform_data {
- int l3_clk;
- int l3_mode;
- int l3_data;
- void (*power) (int);
- int model;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/sound/saif.h b/ANDROID_3.4.5/include/sound/saif.h
deleted file mode 100644
index f22f3e16..00000000
--- a/ANDROID_3.4.5/include/sound/saif.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * Copyright 2011 Freescale Semiconductor, Inc. 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 version 2 as
- * published by the Free Software Foundation.
- */
-
-#ifndef __SOUND_SAIF_H__
-#define __SOUND_SAIF_H__
-
-struct mxs_saif_platform_data {
- bool master_mode; /* if true use master mode */
- int master_id; /* id of the master if in slave mode */
-};
-#endif
diff --git a/ANDROID_3.4.5/include/sound/sb.h b/ANDROID_3.4.5/include/sound/sb.h
deleted file mode 100644
index 95353542..00000000
--- a/ANDROID_3.4.5/include/sound/sb.h
+++ /dev/null
@@ -1,375 +0,0 @@
-#ifndef __SOUND_SB_H
-#define __SOUND_SB_H
-
-/*
- * Header file for SoundBlaster cards
- * Copyright (c) by Jaroslav Kysela <perex@perex.cz>
- *
- *
- * 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 "pcm.h"
-#include "rawmidi.h"
-#include <linux/interrupt.h>
-#include <asm/io.h>
-
-enum sb_hw_type {
- SB_HW_AUTO,
- SB_HW_10,
- SB_HW_20,
- SB_HW_201,
- SB_HW_PRO,
- SB_HW_JAZZ16, /* Media Vision Jazz16 */
- SB_HW_16,
- SB_HW_16CSP, /* SB16 with CSP chip */
- SB_HW_ALS100, /* Avance Logic ALS100 chip */
- SB_HW_ALS4000, /* Avance Logic ALS4000 chip */
- SB_HW_DT019X, /* Diamond Tech. DT-019X / Avance Logic ALS-007 */
- SB_HW_CS5530, /* Cyrix/NatSemi 5530 VSA1 */
-};
-
-#define SB_OPEN_PCM 0x01
-#define SB_OPEN_MIDI_INPUT 0x02
-#define SB_OPEN_MIDI_OUTPUT 0x04
-#define SB_OPEN_MIDI_INPUT_TRIGGER 0x08
-#define SB_OPEN_MIDI_OUTPUT_TRIGGER 0x10
-
-#define SB_MODE_HALT 0x00
-#define SB_MODE_PLAYBACK_8 0x01
-#define SB_MODE_PLAYBACK_16 0x02
-#define SB_MODE_PLAYBACK (SB_MODE_PLAYBACK_8 | SB_MODE_PLAYBACK_16)
-#define SB_MODE_CAPTURE_8 0x04
-#define SB_MODE_CAPTURE_16 0x08
-#define SB_MODE_CAPTURE (SB_MODE_CAPTURE_8 | SB_MODE_CAPTURE_16)
-
-#define SB_RATE_LOCK_PLAYBACK 0x10
-#define SB_RATE_LOCK_CAPTURE 0x20
-#define SB_RATE_LOCK (SB_RATE_LOCK_PLAYBACK | SB_RATE_LOCK_CAPTURE)
-
-#define SB_MPU_INPUT 1
-
-struct snd_sb {
- unsigned long port; /* base port of DSP chip */
- struct resource *res_port;
- unsigned long mpu_port; /* MPU port for SB DSP 4.0+ */
- int irq; /* IRQ number of DSP chip */
- int dma8; /* 8-bit DMA */
- int dma16; /* 16-bit DMA */
- unsigned short version; /* version of DSP chip */
- enum sb_hw_type hardware; /* see to SB_HW_XXXX */
-
- unsigned long alt_port; /* alternate port (ALS4000) */
- struct pci_dev *pci; /* ALS4000 */
-
- unsigned int open; /* see to SB_OPEN_XXXX for sb8 */
- /* also SNDRV_SB_CSP_MODE_XXX for sb16_csp */
- unsigned int mode; /* current mode of stream */
- unsigned int force_mode16; /* force 16-bit mode of streams */
- unsigned int locked_rate; /* sb16 duplex */
- unsigned int playback_format;
- unsigned int capture_format;
- struct timer_list midi_timer;
- unsigned int p_dma_size;
- unsigned int p_period_size;
- unsigned int c_dma_size;
- unsigned int c_period_size;
-
- spinlock_t mixer_lock;
-
- char name[32];
-
- void *csp; /* used only when CONFIG_SND_SB16_CSP is set */
-
- struct snd_card *card;
- struct snd_pcm *pcm;
- struct snd_pcm_substream *playback_substream;
- struct snd_pcm_substream *capture_substream;
-
- struct snd_rawmidi *rmidi;
- struct snd_rawmidi_substream *midi_substream_input;
- struct snd_rawmidi_substream *midi_substream_output;
- irq_handler_t rmidi_callback;
-
- spinlock_t reg_lock;
- spinlock_t open_lock;
- spinlock_t midi_input_lock;
-
- struct snd_info_entry *proc_entry;
-
-#ifdef CONFIG_PM
- unsigned char saved_regs[0x20];
-#endif
-};
-
-/* I/O ports */
-
-#define SBP(chip, x) ((chip)->port + s_b_SB_##x)
-#define SBP1(port, x) ((port) + s_b_SB_##x)
-
-#define s_b_SB_RESET 0x6
-#define s_b_SB_READ 0xa
-#define s_b_SB_WRITE 0xc
-#define s_b_SB_COMMAND 0xc
-#define s_b_SB_STATUS 0xc
-#define s_b_SB_DATA_AVAIL 0xe
-#define s_b_SB_DATA_AVAIL_16 0xf
-#define s_b_SB_MIXER_ADDR 0x4
-#define s_b_SB_MIXER_DATA 0x5
-#define s_b_SB_OPL3_LEFT 0x0
-#define s_b_SB_OPL3_RIGHT 0x2
-#define s_b_SB_OPL3_BOTH 0x8
-
-#define SB_DSP_OUTPUT 0x14
-#define SB_DSP_INPUT 0x24
-#define SB_DSP_BLOCK_SIZE 0x48
-#define SB_DSP_HI_OUTPUT 0x91
-#define SB_DSP_HI_INPUT 0x99
-#define SB_DSP_LO_OUTPUT_AUTO 0x1c
-#define SB_DSP_LO_INPUT_AUTO 0x2c
-#define SB_DSP_HI_OUTPUT_AUTO 0x90
-#define SB_DSP_HI_INPUT_AUTO 0x98
-#define SB_DSP_IMMED_INT 0xf2
-#define SB_DSP_GET_VERSION 0xe1
-#define SB_DSP_SPEAKER_ON 0xd1
-#define SB_DSP_SPEAKER_OFF 0xd3
-#define SB_DSP_DMA8_OFF 0xd0
-#define SB_DSP_DMA8_ON 0xd4
-#define SB_DSP_DMA8_EXIT 0xda
-#define SB_DSP_DMA16_OFF 0xd5
-#define SB_DSP_DMA16_ON 0xd6
-#define SB_DSP_DMA16_EXIT 0xd9
-#define SB_DSP_SAMPLE_RATE 0x40
-#define SB_DSP_SAMPLE_RATE_OUT 0x41
-#define SB_DSP_SAMPLE_RATE_IN 0x42
-#define SB_DSP_MONO_8BIT 0xa0
-#define SB_DSP_MONO_16BIT 0xa4
-#define SB_DSP_STEREO_8BIT 0xa8
-#define SB_DSP_STEREO_16BIT 0xac
-
-#define SB_DSP_MIDI_INPUT_IRQ 0x31
-#define SB_DSP_MIDI_UART_IRQ 0x35
-#define SB_DSP_MIDI_OUTPUT 0x38
-
-#define SB_DSP4_OUT8_AI 0xc6
-#define SB_DSP4_IN8_AI 0xce
-#define SB_DSP4_OUT16_AI 0xb6
-#define SB_DSP4_IN16_AI 0xbe
-#define SB_DSP4_MODE_UNS_MONO 0x00
-#define SB_DSP4_MODE_SIGN_MONO 0x10
-#define SB_DSP4_MODE_UNS_STEREO 0x20
-#define SB_DSP4_MODE_SIGN_STEREO 0x30
-
-#define SB_DSP4_OUTPUT 0x3c
-#define SB_DSP4_INPUT_LEFT 0x3d
-#define SB_DSP4_INPUT_RIGHT 0x3e
-
-/* registers for SB 2.0 mixer */
-#define SB_DSP20_MASTER_DEV 0x02
-#define SB_DSP20_PCM_DEV 0x0A
-#define SB_DSP20_CD_DEV 0x08
-#define SB_DSP20_FM_DEV 0x06
-
-/* registers for SB PRO mixer */
-#define SB_DSP_MASTER_DEV 0x22
-#define SB_DSP_PCM_DEV 0x04
-#define SB_DSP_LINE_DEV 0x2e
-#define SB_DSP_CD_DEV 0x28
-#define SB_DSP_FM_DEV 0x26
-#define SB_DSP_MIC_DEV 0x0a
-#define SB_DSP_CAPTURE_SOURCE 0x0c
-#define SB_DSP_CAPTURE_FILT 0x0c
-#define SB_DSP_PLAYBACK_FILT 0x0e
-#define SB_DSP_STEREO_SW 0x0e
-
-#define SB_DSP_MIXS_MIC0 0x00 /* same as MIC */
-#define SB_DSP_MIXS_CD 0x01
-#define SB_DSP_MIXS_MIC 0x02
-#define SB_DSP_MIXS_LINE 0x03
-
-/* registers (only for left channel) for SB 16 mixer */
-#define SB_DSP4_MASTER_DEV 0x30
-#define SB_DSP4_BASS_DEV 0x46
-#define SB_DSP4_TREBLE_DEV 0x44
-#define SB_DSP4_SYNTH_DEV 0x34
-#define SB_DSP4_PCM_DEV 0x32
-#define SB_DSP4_SPEAKER_DEV 0x3b
-#define SB_DSP4_LINE_DEV 0x38
-#define SB_DSP4_MIC_DEV 0x3a
-#define SB_DSP4_OUTPUT_SW 0x3c
-#define SB_DSP4_CD_DEV 0x36
-#define SB_DSP4_IGAIN_DEV 0x3f
-#define SB_DSP4_OGAIN_DEV 0x41
-#define SB_DSP4_MIC_AGC 0x43
-
-/* additional registers for SB 16 mixer */
-#define SB_DSP4_IRQSETUP 0x80
-#define SB_DSP4_DMASETUP 0x81
-#define SB_DSP4_IRQSTATUS 0x82
-#define SB_DSP4_MPUSETUP 0x84
-
-#define SB_DSP4_3DSE 0x90
-
-/* Registers for DT-019x / ALS-007 mixer */
-#define SB_DT019X_MASTER_DEV 0x62
-#define SB_DT019X_PCM_DEV 0x64
-#define SB_DT019X_SYNTH_DEV 0x66
-#define SB_DT019X_CD_DEV 0x68
-#define SB_DT019X_MIC_DEV 0x6a
-#define SB_DT019X_SPKR_DEV 0x6a
-#define SB_DT019X_LINE_DEV 0x6e
-#define SB_DT019X_OUTPUT_SW2 0x4c
-#define SB_DT019X_CAPTURE_SW 0x6c
-
-#define SB_DT019X_CAP_CD 0x02
-#define SB_DT019X_CAP_MIC 0x04
-#define SB_DT019X_CAP_LINE 0x06
-#define SB_DT019X_CAP_SYNTH 0x07
-#define SB_DT019X_CAP_MAIN 0x07
-
-#define SB_ALS4000_MONO_IO_CTRL 0x4b
-#define SB_ALS4000_OUT_MIXER_CTRL_2 0x4c
-#define SB_ALS4000_MIC_IN_GAIN 0x4d
-#define SB_ALS4000_ANALOG_REFRNC_VOLT_CTRL 0x4e
-#define SB_ALS4000_FMDAC 0x4f
-#define SB_ALS4000_3D_SND_FX 0x50
-#define SB_ALS4000_3D_TIME_DELAY 0x51
-#define SB_ALS4000_3D_AUTO_MUTE 0x52
-#define SB_ALS4000_ANALOG_BLOCK_CTRL 0x53
-#define SB_ALS4000_3D_DELAYLINE_PATTERN 0x54
-#define SB_ALS4000_CR3_CONFIGURATION 0xc3 /* bit 7 is Digital Loop Enable */
-#define SB_ALS4000_QSOUND 0xdb
-
-/* IRQ setting bitmap */
-#define SB_IRQSETUP_IRQ9 0x01
-#define SB_IRQSETUP_IRQ5 0x02
-#define SB_IRQSETUP_IRQ7 0x04
-#define SB_IRQSETUP_IRQ10 0x08
-
-/* IRQ types */
-#define SB_IRQTYPE_8BIT 0x01
-#define SB_IRQTYPE_16BIT 0x02
-#define SB_IRQTYPE_MPUIN 0x04
-#define ALS4K_IRQTYPE_CR1E_DMA 0x20
-
-/* DMA setting bitmap */
-#define SB_DMASETUP_DMA0 0x01
-#define SB_DMASETUP_DMA1 0x02
-#define SB_DMASETUP_DMA3 0x08
-#define SB_DMASETUP_DMA5 0x20
-#define SB_DMASETUP_DMA6 0x40
-#define SB_DMASETUP_DMA7 0x80
-
-/*
- *
- */
-
-static inline void snd_sb_ack_8bit(struct snd_sb *chip)
-{
- inb(SBP(chip, DATA_AVAIL));
-}
-
-static inline void snd_sb_ack_16bit(struct snd_sb *chip)
-{
- inb(SBP(chip, DATA_AVAIL_16));
-}
-
-/* sb_common.c */
-int snd_sbdsp_command(struct snd_sb *chip, unsigned char val);
-int snd_sbdsp_get_byte(struct snd_sb *chip);
-int snd_sbdsp_reset(struct snd_sb *chip);
-int snd_sbdsp_create(struct snd_card *card,
- unsigned long port,
- int irq,
- irq_handler_t irq_handler,
- int dma8, int dma16,
- unsigned short hardware,
- struct snd_sb **r_chip);
-/* sb_mixer.c */
-void snd_sbmixer_write(struct snd_sb *chip, unsigned char reg, unsigned char data);
-unsigned char snd_sbmixer_read(struct snd_sb *chip, unsigned char reg);
-int snd_sbmixer_new(struct snd_sb *chip);
-#ifdef CONFIG_PM
-void snd_sbmixer_suspend(struct snd_sb *chip);
-void snd_sbmixer_resume(struct snd_sb *chip);
-#endif
-
-/* sb8_init.c */
-int snd_sb8dsp_pcm(struct snd_sb *chip, int device, struct snd_pcm ** rpcm);
-/* sb8.c */
-irqreturn_t snd_sb8dsp_interrupt(struct snd_sb *chip);
-int snd_sb8_playback_open(struct snd_pcm_substream *substream);
-int snd_sb8_capture_open(struct snd_pcm_substream *substream);
-int snd_sb8_playback_close(struct snd_pcm_substream *substream);
-int snd_sb8_capture_close(struct snd_pcm_substream *substream);
-/* midi8.c */
-irqreturn_t snd_sb8dsp_midi_interrupt(struct snd_sb *chip);
-int snd_sb8dsp_midi(struct snd_sb *chip, int device, struct snd_rawmidi ** rrawmidi);
-
-/* sb16_init.c */
-int snd_sb16dsp_pcm(struct snd_sb *chip, int device, struct snd_pcm ** rpcm);
-const struct snd_pcm_ops *snd_sb16dsp_get_pcm_ops(int direction);
-int snd_sb16dsp_configure(struct snd_sb *chip);
-/* sb16.c */
-irqreturn_t snd_sb16dsp_interrupt(int irq, void *dev_id);
-
-/* exported mixer stuffs */
-enum {
- SB_MIX_SINGLE,
- SB_MIX_DOUBLE,
- SB_MIX_INPUT_SW,
- SB_MIX_CAPTURE_PRO,
- SB_MIX_CAPTURE_DT019X,
- SB_MIX_MONO_CAPTURE_ALS4K
-};
-
-#define SB_MIXVAL_DOUBLE(left_reg, right_reg, left_shift, right_shift, mask) \
- ((left_reg) | ((right_reg) << 8) | ((left_shift) << 16) | ((right_shift) << 19) | ((mask) << 24))
-#define SB_MIXVAL_SINGLE(reg, shift, mask) \
- ((reg) | ((shift) << 16) | ((mask) << 24))
-#define SB_MIXVAL_INPUT_SW(reg1, reg2, left_shift, right_shift) \
- ((reg1) | ((reg2) << 8) | ((left_shift) << 16) | ((right_shift) << 24))
-
-int snd_sbmixer_add_ctl(struct snd_sb *chip, const char *name, int index, int type, unsigned long value);
-
-/* for ease of use */
-struct sbmix_elem {
- const char *name;
- int type;
- unsigned long private_value;
-};
-
-#define SB_SINGLE(xname, reg, shift, mask) \
-{ .name = xname, \
- .type = SB_MIX_SINGLE, \
- .private_value = SB_MIXVAL_SINGLE(reg, shift, mask) }
-
-#define SB_DOUBLE(xname, left_reg, right_reg, left_shift, right_shift, mask) \
-{ .name = xname, \
- .type = SB_MIX_DOUBLE, \
- .private_value = SB_MIXVAL_DOUBLE(left_reg, right_reg, left_shift, right_shift, mask) }
-
-#define SB16_INPUT_SW(xname, reg1, reg2, left_shift, right_shift) \
-{ .name = xname, \
- .type = SB_MIX_INPUT_SW, \
- .private_value = SB_MIXVAL_INPUT_SW(reg1, reg2, left_shift, right_shift) }
-
-static inline int snd_sbmixer_add_ctl_elem(struct snd_sb *chip, const struct sbmix_elem *c)
-{
- return snd_sbmixer_add_ctl(chip, c->name, 0, c->type, c->private_value);
-}
-
-#endif /* __SOUND_SB_H */
diff --git a/ANDROID_3.4.5/include/sound/sb16_csp.h b/ANDROID_3.4.5/include/sound/sb16_csp.h
deleted file mode 100644
index af1b49e9..00000000
--- a/ANDROID_3.4.5/include/sound/sb16_csp.h
+++ /dev/null
@@ -1,188 +0,0 @@
-#ifndef __SOUND_SB16_CSP_H
-#define __SOUND_SB16_CSP_H
-
-/*
- * Copyright (c) 1999 by Uros Bizjak <uros@kss-loka.si>
- * Takashi Iwai <tiwai@suse.de>
- *
- * SB16ASP/AWE32 CSP 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 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
- *
- */
-
-/* CSP modes */
-#define SNDRV_SB_CSP_MODE_NONE 0x00
-#define SNDRV_SB_CSP_MODE_DSP_READ 0x01 /* Record from DSP */
-#define SNDRV_SB_CSP_MODE_DSP_WRITE 0x02 /* Play to DSP */
-#define SNDRV_SB_CSP_MODE_QSOUND 0x04 /* QSound */
-
-/* CSP load flags */
-#define SNDRV_SB_CSP_LOAD_FROMUSER 0x01
-#define SNDRV_SB_CSP_LOAD_INITBLOCK 0x02
-
-/* CSP sample width */
-#define SNDRV_SB_CSP_SAMPLE_8BIT 0x01
-#define SNDRV_SB_CSP_SAMPLE_16BIT 0x02
-
-/* CSP channels */
-#define SNDRV_SB_CSP_MONO 0x01
-#define SNDRV_SB_CSP_STEREO 0x02
-
-/* CSP rates */
-#define SNDRV_SB_CSP_RATE_8000 0x01
-#define SNDRV_SB_CSP_RATE_11025 0x02
-#define SNDRV_SB_CSP_RATE_22050 0x04
-#define SNDRV_SB_CSP_RATE_44100 0x08
-#define SNDRV_SB_CSP_RATE_ALL 0x0f
-
-/* CSP running state */
-#define SNDRV_SB_CSP_ST_IDLE 0x00
-#define SNDRV_SB_CSP_ST_LOADED 0x01
-#define SNDRV_SB_CSP_ST_RUNNING 0x02
-#define SNDRV_SB_CSP_ST_PAUSED 0x04
-#define SNDRV_SB_CSP_ST_AUTO 0x08
-#define SNDRV_SB_CSP_ST_QSOUND 0x10
-
-/* maximum QSound value (180 degrees right) */
-#define SNDRV_SB_CSP_QSOUND_MAX_RIGHT 0x20
-
-/* maximum microcode RIFF file size */
-#define SNDRV_SB_CSP_MAX_MICROCODE_FILE_SIZE 0x3000
-
-/* microcode header */
-struct snd_sb_csp_mc_header {
- char codec_name[16]; /* id name of codec */
- unsigned short func_req; /* requested function */
-};
-
-/* microcode to be loaded */
-struct snd_sb_csp_microcode {
- struct snd_sb_csp_mc_header info;
- unsigned char data[SNDRV_SB_CSP_MAX_MICROCODE_FILE_SIZE];
-};
-
-/* start CSP with sample_width in mono/stereo */
-struct snd_sb_csp_start {
- int sample_width; /* sample width, look above */
- int channels; /* channels, look above */
-};
-
-/* CSP information */
-struct snd_sb_csp_info {
- char codec_name[16]; /* id name of codec */
- unsigned short func_nr; /* function number */
- unsigned int acc_format; /* accepted PCM formats */
- unsigned short acc_channels; /* accepted channels */
- unsigned short acc_width; /* accepted sample width */
- unsigned short acc_rates; /* accepted sample rates */
- unsigned short csp_mode; /* CSP mode, see above */
- unsigned short run_channels; /* current channels */
- unsigned short run_width; /* current sample width */
- unsigned short version; /* version id: 0x10 - 0x1f */
- unsigned short state; /* state bits */
-};
-
-/* HWDEP controls */
-/* get CSP information */
-#define SNDRV_SB_CSP_IOCTL_INFO _IOR('H', 0x10, struct snd_sb_csp_info)
-/* load microcode to CSP */
-/* NOTE: struct snd_sb_csp_microcode overflows the max size (13 bits)
- * defined for some architectures like MIPS, and it leads to build errors.
- * (x86 and co have 14-bit size, thus it's valid, though.)
- * As a workaround for skipping the size-limit check, here we don't use the
- * normal _IOW() macro but _IOC() with the manual argument.
- */
-#define SNDRV_SB_CSP_IOCTL_LOAD_CODE \
- _IOC(_IOC_WRITE, 'H', 0x11, sizeof(struct snd_sb_csp_microcode))
-/* unload microcode from CSP */
-#define SNDRV_SB_CSP_IOCTL_UNLOAD_CODE _IO('H', 0x12)
-/* start CSP */
-#define SNDRV_SB_CSP_IOCTL_START _IOW('H', 0x13, struct snd_sb_csp_start)
-/* stop CSP */
-#define SNDRV_SB_CSP_IOCTL_STOP _IO('H', 0x14)
-/* pause CSP and DMA transfer */
-#define SNDRV_SB_CSP_IOCTL_PAUSE _IO('H', 0x15)
-/* restart CSP and DMA transfer */
-#define SNDRV_SB_CSP_IOCTL_RESTART _IO('H', 0x16)
-
-#ifdef __KERNEL__
-#include "sb.h"
-#include "hwdep.h"
-#include <linux/firmware.h>
-
-struct snd_sb_csp;
-
-/* indices for the known CSP programs */
-enum {
- CSP_PROGRAM_MULAW,
- CSP_PROGRAM_ALAW,
- CSP_PROGRAM_ADPCM_INIT,
- CSP_PROGRAM_ADPCM_PLAYBACK,
- CSP_PROGRAM_ADPCM_CAPTURE,
-
- CSP_PROGRAM_COUNT
-};
-
-/*
- * CSP operators
- */
-struct snd_sb_csp_ops {
- int (*csp_use) (struct snd_sb_csp * p);
- int (*csp_unuse) (struct snd_sb_csp * p);
- int (*csp_autoload) (struct snd_sb_csp * p, int pcm_sfmt, int play_rec_mode);
- int (*csp_start) (struct snd_sb_csp * p, int sample_width, int channels);
- int (*csp_stop) (struct snd_sb_csp * p);
- int (*csp_qsound_transfer) (struct snd_sb_csp * p);
-};
-
-/*
- * CSP private data
- */
-struct snd_sb_csp {
- struct snd_sb *chip; /* SB16 DSP */
- int used; /* usage flag - exclusive */
- char codec_name[16]; /* name of codec */
- unsigned short func_nr; /* function number */
- unsigned int acc_format; /* accepted PCM formats */
- int acc_channels; /* accepted channels */
- int acc_width; /* accepted sample width */
- int acc_rates; /* accepted sample rates */
- int mode; /* MODE */
- int run_channels; /* current CSP channels */
- int run_width; /* current sample width */
- int version; /* CSP version (0x10 - 0x1f) */
- int running; /* running state */
-
- struct snd_sb_csp_ops ops; /* operators */
-
- spinlock_t q_lock; /* locking */
- int q_enabled; /* enabled flag */
- int qpos_left; /* left position */
- int qpos_right; /* right position */
- int qpos_changed; /* position changed flag */
-
- struct snd_kcontrol *qsound_switch;
- struct snd_kcontrol *qsound_space;
-
- struct mutex access_mutex; /* locking */
-
- const struct firmware *csp_programs[CSP_PROGRAM_COUNT];
-};
-
-int snd_sb_csp_new(struct snd_sb *chip, int device, struct snd_hwdep ** rhwdep);
-#endif
-
-#endif /* __SOUND_SB16_CSP */
diff --git a/ANDROID_3.4.5/include/sound/seq_device.h b/ANDROID_3.4.5/include/sound/seq_device.h
deleted file mode 100644
index 2b5f24cc..00000000
--- a/ANDROID_3.4.5/include/sound/seq_device.h
+++ /dev/null
@@ -1,84 +0,0 @@
-#ifndef __SOUND_SEQ_DEVICE_H
-#define __SOUND_SEQ_DEVICE_H
-
-/*
- * ALSA sequencer device management
- * Copyright (c) 1999 by Takashi Iwai <tiwai@suse.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
- *
- */
-
-/*
- * registered device information
- */
-
-#define ID_LEN 32
-
-/* status flag */
-#define SNDRV_SEQ_DEVICE_FREE 0
-#define SNDRV_SEQ_DEVICE_REGISTERED 1
-
-struct snd_seq_device {
- /* device info */
- struct snd_card *card; /* sound card */
- int device; /* device number */
- char id[ID_LEN]; /* driver id */
- char name[80]; /* device name */
- int argsize; /* size of the argument */
- void *driver_data; /* private data for driver */
- int status; /* flag - read only */
- void *private_data; /* private data for the caller */
- void (*private_free)(struct snd_seq_device *device);
- struct list_head list; /* link to next device */
-};
-
-
-/* driver operators
- * init_device:
- * Initialize the device with given parameters.
- * Typically,
- * 1. call snd_hwdep_new
- * 2. allocate private data and initialize it
- * 3. call snd_hwdep_register
- * 4. store the instance to dev->driver_data pointer.
- *
- * free_device:
- * Release the private data.
- * Typically, call snd_device_free(dev->card, dev->driver_data)
- */
-struct snd_seq_dev_ops {
- int (*init_device)(struct snd_seq_device *dev);
- int (*free_device)(struct snd_seq_device *dev);
-};
-
-/*
- * prototypes
- */
-void snd_seq_device_load_drivers(void);
-int snd_seq_device_new(struct snd_card *card, int device, char *id, int argsize, struct snd_seq_device **result);
-int snd_seq_device_register_driver(char *id, struct snd_seq_dev_ops *entry, int argsize);
-int snd_seq_device_unregister_driver(char *id);
-
-#define SNDRV_SEQ_DEVICE_ARGPTR(dev) (void *)((char *)(dev) + sizeof(struct snd_seq_device))
-
-
-/*
- * id strings for generic devices
- */
-#define SNDRV_SEQ_DEV_ID_MIDISYNTH "seq-midi"
-#define SNDRV_SEQ_DEV_ID_OPL3 "opl3-synth"
-
-#endif /* __SOUND_SEQ_DEVICE_H */
diff --git a/ANDROID_3.4.5/include/sound/seq_kernel.h b/ANDROID_3.4.5/include/sound/seq_kernel.h
deleted file mode 100644
index f352a98c..00000000
--- a/ANDROID_3.4.5/include/sound/seq_kernel.h
+++ /dev/null
@@ -1,116 +0,0 @@
-#ifndef __SOUND_SEQ_KERNEL_H
-#define __SOUND_SEQ_KERNEL_H
-
-/*
- * Main kernel header file for the ALSA sequencer
- * Copyright (c) 1998 by Frank van de Pol <fvdpol@coil.demon.nl>
- *
- *
- * 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/time.h>
-#include "asequencer.h"
-
-typedef struct snd_seq_real_time snd_seq_real_time_t;
-typedef union snd_seq_timestamp snd_seq_timestamp_t;
-
-/* maximum number of events dequeued per schedule interval */
-#define SNDRV_SEQ_MAX_DEQUEUE 50
-
-/* maximum number of queues */
-#define SNDRV_SEQ_MAX_QUEUES 8
-
-/* max number of concurrent clients */
-#define SNDRV_SEQ_MAX_CLIENTS 192
-
-/* max number of concurrent ports */
-#define SNDRV_SEQ_MAX_PORTS 254
-
-/* max number of events in memory pool */
-#define SNDRV_SEQ_MAX_EVENTS 2000
-
-/* default number of events in memory chunk */
-#define SNDRV_SEQ_DEFAULT_CHUNK_EVENTS 64
-
-/* default number of events in memory pool */
-#define SNDRV_SEQ_DEFAULT_EVENTS 500
-
-/* max number of events in memory pool for one client (outqueue) */
-#define SNDRV_SEQ_MAX_CLIENT_EVENTS 2000
-
-/* default number of events in memory pool for one client (outqueue) */
-#define SNDRV_SEQ_DEFAULT_CLIENT_EVENTS 200
-
-/* max delivery path length */
-#define SNDRV_SEQ_MAX_HOPS 10
-
-/* max size of event size */
-#define SNDRV_SEQ_MAX_EVENT_LEN 0x3fffffff
-
-/* call-backs for kernel port */
-struct snd_seq_port_callback {
- struct module *owner;
- void *private_data;
- int (*subscribe)(void *private_data, struct snd_seq_port_subscribe *info);
- int (*unsubscribe)(void *private_data, struct snd_seq_port_subscribe *info);
- int (*use)(void *private_data, struct snd_seq_port_subscribe *info);
- int (*unuse)(void *private_data, struct snd_seq_port_subscribe *info);
- int (*event_input)(struct snd_seq_event *ev, int direct, void *private_data, int atomic, int hop);
- void (*private_free)(void *private_data);
- unsigned int callback_all; /* call subscribe callbacks at each connection/disconnection */
- /*...*/
-};
-
-/* interface for kernel client */
-__printf(3, 4)
-int snd_seq_create_kernel_client(struct snd_card *card, int client_index,
- const char *name_fmt, ...);
-int snd_seq_delete_kernel_client(int client);
-int snd_seq_kernel_client_enqueue(int client, struct snd_seq_event *ev, int atomic, int hop);
-int snd_seq_kernel_client_dispatch(int client, struct snd_seq_event *ev, int atomic, int hop);
-int snd_seq_kernel_client_ctl(int client, unsigned int cmd, void *arg);
-
-#define SNDRV_SEQ_EXT_MASK 0xc0000000
-#define SNDRV_SEQ_EXT_USRPTR 0x80000000
-#define SNDRV_SEQ_EXT_CHAINED 0x40000000
-
-typedef int (*snd_seq_dump_func_t)(void *ptr, void *buf, int count);
-int snd_seq_expand_var_event(const struct snd_seq_event *event, int count, char *buf,
- int in_kernel, int size_aligned);
-int snd_seq_dump_var_event(const struct snd_seq_event *event,
- snd_seq_dump_func_t func, void *private_data);
-
-/* interface for OSS emulation */
-int snd_seq_set_queue_tempo(int client, struct snd_seq_queue_tempo *tempo);
-
-/* port callback routines */
-void snd_port_init_callback(struct snd_seq_port_callback *p);
-struct snd_seq_port_callback *snd_port_alloc_callback(void);
-
-/* port attach/detach */
-int snd_seq_event_port_attach(int client, struct snd_seq_port_callback *pcbp,
- int cap, int type, int midi_channels, int midi_voices, char *portname);
-int snd_seq_event_port_detach(int client, int port);
-
-#ifdef CONFIG_MODULES
-void snd_seq_autoload_lock(void);
-void snd_seq_autoload_unlock(void);
-#else
-#define snd_seq_autoload_lock()
-#define snd_seq_autoload_unlock()
-#endif
-
-#endif /* __SOUND_SEQ_KERNEL_H */
diff --git a/ANDROID_3.4.5/include/sound/seq_midi_emul.h b/ANDROID_3.4.5/include/sound/seq_midi_emul.h
deleted file mode 100644
index d6c46159..00000000
--- a/ANDROID_3.4.5/include/sound/seq_midi_emul.h
+++ /dev/null
@@ -1,197 +0,0 @@
-#ifndef __SOUND_SEQ_MIDI_EMUL_H
-#define __SOUND_SEQ_MIDI_EMUL_H
-
-/*
- * Midi channel definition for optional channel management.
- *
- * Copyright (C) 1999 Steve Ratcliffe
- *
- * 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 "seq_kernel.h"
-
-/*
- * This structure is used to keep track of the current state on each
- * channel. All drivers for hardware that does not understand midi
- * directly will probably need to use this structure.
- */
-struct snd_midi_channel {
- void *private; /* A back pointer to driver data */
- int number; /* The channel number */
- int client; /* The client associated with this channel */
- int port; /* The port associated with this channel */
-
- unsigned char midi_mode; /* GM, GS, XG etc */
- unsigned int
- drum_channel:1, /* Drum channel */
- param_type:1 /* RPN/NRPN */
- ;
-
- unsigned char midi_aftertouch; /* Aftertouch (key pressure) */
- unsigned char midi_pressure; /* Channel pressure */
- unsigned char midi_program; /* Instrument number */
- short midi_pitchbend; /* Pitch bend amount */
-
- unsigned char control[128]; /* Current value of all controls */
- unsigned char note[128]; /* Current status for all notes */
-
- short gm_rpn_pitch_bend_range; /* Pitch bend range */
- short gm_rpn_fine_tuning; /* Master fine tuning */
- short gm_rpn_coarse_tuning; /* Master coarse tuning */
-
-};
-
-/*
- * A structure that represets a set of channels bound to a port. There
- * would usually be 16 channels per port. But fewer could be used for
- * particular cases.
- * The channel set consists of information describing the client and
- * port for this midi synth and an array of snd_midi_channel structures.
- * A driver that had no need for snd_midi_channel could still use the
- * channel set type if it wished with the channel array null.
- */
-struct snd_midi_channel_set {
- void *private_data; /* Driver data */
- int client; /* Client for this port */
- int port; /* The port number */
-
- int max_channels; /* Size of the channels array */
- struct snd_midi_channel *channels;
-
- unsigned char midi_mode; /* MIDI operating mode */
- unsigned char gs_master_volume; /* SYSEX master volume: 0-127 */
- unsigned char gs_chorus_mode;
- unsigned char gs_reverb_mode;
-
-};
-
-struct snd_midi_op {
- void (*note_on)(void *private_data, int note, int vel, struct snd_midi_channel *chan);
- void (*note_off)(void *private_data,int note, int vel, struct snd_midi_channel *chan); /* release note */
- void (*key_press)(void *private_data, int note, int vel, struct snd_midi_channel *chan);
- void (*note_terminate)(void *private_data, int note, struct snd_midi_channel *chan); /* terminate note immediately */
- void (*control)(void *private_data, int type, struct snd_midi_channel *chan);
- void (*nrpn)(void *private_data, struct snd_midi_channel *chan,
- struct snd_midi_channel_set *chset);
- void (*sysex)(void *private_data, unsigned char *buf, int len, int parsed,
- struct snd_midi_channel_set *chset);
-};
-
-/*
- * These defines are used so that pitchbend, aftertouch etc, can be
- * distinguished from controller values.
- */
-/* 0-127 controller values */
-#define MIDI_CTL_PITCHBEND 0x80
-#define MIDI_CTL_AFTERTOUCH 0x81
-#define MIDI_CTL_CHAN_PRESSURE 0x82
-
-/*
- * These names exist to allow symbolic access to the controls array.
- * The usage is eg: chan->gm_bank_select. Another implementation would
- * be really have these members in the struct, and not the array.
- */
-#define gm_bank_select control[0]
-#define gm_modulation control[1]
-#define gm_breath control[2]
-#define gm_foot_pedal control[4]
-#define gm_portamento_time control[5]
-#define gm_data_entry control[6]
-#define gm_volume control[7]
-#define gm_balance control[8]
-#define gm_pan control[10]
-#define gm_expression control[11]
-#define gm_effect_control1 control[12]
-#define gm_effect_control2 control[13]
-#define gm_slider1 control[16]
-#define gm_slider2 control[17]
-#define gm_slider3 control[18]
-#define gm_slider4 control[19]
-
-#define gm_bank_select_lsb control[32]
-#define gm_modulation_wheel_lsb control[33]
-#define gm_breath_lsb control[34]
-#define gm_foot_pedal_lsb control[36]
-#define gm_portamento_time_lsb control[37]
-#define gm_data_entry_lsb control[38]
-#define gm_volume_lsb control[39]
-#define gm_balance_lsb control[40]
-#define gm_pan_lsb control[42]
-#define gm_expression_lsb control[43]
-#define gm_effect_control1_lsb control[44]
-#define gm_effect_control2_lsb control[45]
-
-#define gm_sustain control[MIDI_CTL_SUSTAIN]
-#define gm_hold gm_sustain
-#define gm_portamento control[MIDI_CTL_PORTAMENTO]
-#define gm_sostenuto control[MIDI_CTL_SOSTENUTO]
-
-/*
- * These macros give the complete value of the controls that consist
- * of coarse and fine pairs. Of course the fine controls are seldom used
- * but there is no harm in being complete.
- */
-#define SNDRV_GM_BANK_SELECT(cp) (((cp)->control[0]<<7)|((cp)->control[32]))
-#define SNDRV_GM_MODULATION_WHEEL(cp) (((cp)->control[1]<<7)|((cp)->control[33]))
-#define SNDRV_GM_BREATH(cp) (((cp)->control[2]<<7)|((cp)->control[34]))
-#define SNDRV_GM_FOOT_PEDAL(cp) (((cp)->control[4]<<7)|((cp)->control[36]))
-#define SNDRV_GM_PORTAMENTO_TIME(cp) (((cp)->control[5]<<7)|((cp)->control[37]))
-#define SNDRV_GM_DATA_ENTRY(cp) (((cp)->control[6]<<7)|((cp)->control[38]))
-#define SNDRV_GM_VOLUME(cp) (((cp)->control[7]<<7)|((cp)->control[39]))
-#define SNDRV_GM_BALANCE(cp) (((cp)->control[8]<<7)|((cp)->control[40]))
-#define SNDRV_GM_PAN(cp) (((cp)->control[10]<<7)|((cp)->control[42]))
-#define SNDRV_GM_EXPRESSION(cp) (((cp)->control[11]<<7)|((cp)->control[43]))
-
-
-/* MIDI mode */
-#define SNDRV_MIDI_MODE_NONE 0 /* Generic midi */
-#define SNDRV_MIDI_MODE_GM 1
-#define SNDRV_MIDI_MODE_GS 2
-#define SNDRV_MIDI_MODE_XG 3
-#define SNDRV_MIDI_MODE_MT32 4
-
-/* MIDI note state */
-#define SNDRV_MIDI_NOTE_OFF 0x00
-#define SNDRV_MIDI_NOTE_ON 0x01
-#define SNDRV_MIDI_NOTE_RELEASED 0x02
-#define SNDRV_MIDI_NOTE_SOSTENUTO 0x04
-
-#define SNDRV_MIDI_PARAM_TYPE_REGISTERED 0
-#define SNDRV_MIDI_PARAM_TYPE_NONREGISTERED 1
-
-/* SYSEX parse flag */
-enum {
- SNDRV_MIDI_SYSEX_NOT_PARSED = 0,
- SNDRV_MIDI_SYSEX_GM_ON,
- SNDRV_MIDI_SYSEX_GS_ON,
- SNDRV_MIDI_SYSEX_GS_RESET,
- SNDRV_MIDI_SYSEX_GS_CHORUS_MODE,
- SNDRV_MIDI_SYSEX_GS_REVERB_MODE,
- SNDRV_MIDI_SYSEX_GS_MASTER_VOLUME,
- SNDRV_MIDI_SYSEX_GS_PROGRAM,
- SNDRV_MIDI_SYSEX_GS_DRUM_CHANNEL,
- SNDRV_MIDI_SYSEX_XG_ON,
-};
-
-/* Prototypes for midi_process.c */
-void snd_midi_process_event(struct snd_midi_op *ops, struct snd_seq_event *ev,
- struct snd_midi_channel_set *chanset);
-void snd_midi_channel_set_clear(struct snd_midi_channel_set *chset);
-struct snd_midi_channel_set *snd_midi_channel_alloc_set(int n);
-void snd_midi_channel_free_set(struct snd_midi_channel_set *chset);
-
-#endif /* __SOUND_SEQ_MIDI_EMUL_H */
diff --git a/ANDROID_3.4.5/include/sound/seq_midi_event.h b/ANDROID_3.4.5/include/sound/seq_midi_event.h
deleted file mode 100644
index 5efab8b2..00000000
--- a/ANDROID_3.4.5/include/sound/seq_midi_event.h
+++ /dev/null
@@ -1,54 +0,0 @@
-#ifndef __SOUND_SEQ_MIDI_EVENT_H
-#define __SOUND_SEQ_MIDI_EVENT_H
-
-/*
- * MIDI byte <-> sequencer event coder
- *
- * Copyright (C) 1998,99 Takashi Iwai <tiwai@suse.de>,
- * Jaroslav Kysela <perex@perex.cz>
- *
- * 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 "asequencer.h"
-
-#define MAX_MIDI_EVENT_BUF 256
-
-/* midi status */
-struct snd_midi_event {
- int qlen; /* queue length */
- int read; /* chars read */
- int type; /* current event type */
- unsigned char lastcmd; /* last command (for MIDI state handling) */
- unsigned char nostat; /* no state flag */
- int bufsize; /* allocated buffer size */
- unsigned char *buf; /* input buffer */
- spinlock_t lock;
-};
-
-int snd_midi_event_new(int bufsize, struct snd_midi_event **rdev);
-void snd_midi_event_free(struct snd_midi_event *dev);
-void snd_midi_event_reset_encode(struct snd_midi_event *dev);
-void snd_midi_event_reset_decode(struct snd_midi_event *dev);
-void snd_midi_event_no_status(struct snd_midi_event *dev, int on);
-/* encode from byte stream - return number of written bytes if success */
-long snd_midi_event_encode(struct snd_midi_event *dev, unsigned char *buf, long count,
- struct snd_seq_event *ev);
-int snd_midi_event_encode_byte(struct snd_midi_event *dev, int c, struct snd_seq_event *ev);
-/* decode from event to bytes - return number of written bytes if success */
-long snd_midi_event_decode(struct snd_midi_event *dev, unsigned char *buf, long count,
- struct snd_seq_event *ev);
-
-#endif /* __SOUND_SEQ_MIDI_EVENT_H */
diff --git a/ANDROID_3.4.5/include/sound/seq_oss.h b/ANDROID_3.4.5/include/sound/seq_oss.h
deleted file mode 100644
index 9b060bbd..00000000
--- a/ANDROID_3.4.5/include/sound/seq_oss.h
+++ /dev/null
@@ -1,96 +0,0 @@
-#ifndef __SOUND_SEQ_OSS_H
-#define __SOUND_SEQ_OSS_H
-
-/*
- * OSS compatible sequencer driver
- *
- * Copyright (C) 1998,99 Takashi Iwai
- *
- * 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 "asequencer.h"
-#include "seq_kernel.h"
-
-/*
- * argument structure for synthesizer operations
- */
-struct snd_seq_oss_arg {
- /* given by OSS sequencer */
- int app_index; /* application unique index */
- int file_mode; /* file mode - see below */
- int seq_mode; /* sequencer mode - see below */
-
- /* following must be initialized in open callback */
- struct snd_seq_addr addr; /* opened port address */
- void *private_data; /* private data for lowlevel drivers */
-
- /* note-on event passing mode: initially given by OSS seq,
- * but configurable by drivers - see below
- */
- int event_passing;
-};
-
-
-/*
- * synthesizer operation callbacks
- */
-struct snd_seq_oss_callback {
- struct module *owner;
- int (*open)(struct snd_seq_oss_arg *p, void *closure);
- int (*close)(struct snd_seq_oss_arg *p);
- int (*ioctl)(struct snd_seq_oss_arg *p, unsigned int cmd, unsigned long arg);
- int (*load_patch)(struct snd_seq_oss_arg *p, int format, const char __user *buf, int offs, int count);
- int (*reset)(struct snd_seq_oss_arg *p);
- int (*raw_event)(struct snd_seq_oss_arg *p, unsigned char *data);
-};
-
-/* flag: file_mode */
-#define SNDRV_SEQ_OSS_FILE_ACMODE 3
-#define SNDRV_SEQ_OSS_FILE_READ 1
-#define SNDRV_SEQ_OSS_FILE_WRITE 2
-#define SNDRV_SEQ_OSS_FILE_NONBLOCK 4
-
-/* flag: seq_mode */
-#define SNDRV_SEQ_OSS_MODE_SYNTH 0
-#define SNDRV_SEQ_OSS_MODE_MUSIC 1
-
-/* flag: event_passing */
-#define SNDRV_SEQ_OSS_PROCESS_EVENTS 0 /* key == 255 is processed as velocity change */
-#define SNDRV_SEQ_OSS_PASS_EVENTS 1 /* pass all events to callback */
-#define SNDRV_SEQ_OSS_PROCESS_KEYPRESS 2 /* key >= 128 will be processed as key-pressure */
-
-/* default control rate: fixed */
-#define SNDRV_SEQ_OSS_CTRLRATE 100
-
-/* default max queue length: configurable by module option */
-#define SNDRV_SEQ_OSS_MAX_QLEN 1024
-
-
-/*
- * data pointer to snd_seq_register_device
- */
-struct snd_seq_oss_reg {
- int type;
- int subtype;
- int nvoices;
- struct snd_seq_oss_callback oper;
- void *private_data;
-};
-
-/* device id */
-#define SNDRV_SEQ_DEV_ID_OSS "seq-oss"
-
-#endif /* __SOUND_SEQ_OSS_H */
diff --git a/ANDROID_3.4.5/include/sound/seq_oss_legacy.h b/ANDROID_3.4.5/include/sound/seq_oss_legacy.h
deleted file mode 100644
index e66269ff..00000000
--- a/ANDROID_3.4.5/include/sound/seq_oss_legacy.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef __SOUND_SEQ_OSS_LEGACY_H
-#define __SOUND_SEQ_OSS_LEGACY_H
-
-/*
- * OSS compatible macro definitions
- *
- * Copyright (C) 2000 Abramo Bagnara <abramo@alsa-project.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
- */
-
-#include <linux/soundcard.h>
-
-#ifndef SAMPLE_TYPE_AWE32
-#define SAMPLE_TYPE_AWE32 0x20
-#endif
-
-#endif /* __SOUND_SEQ_OSS_LEGACY_H */
-
diff --git a/ANDROID_3.4.5/include/sound/seq_virmidi.h b/ANDROID_3.4.5/include/sound/seq_virmidi.h
deleted file mode 100644
index d888433a..00000000
--- a/ANDROID_3.4.5/include/sound/seq_virmidi.h
+++ /dev/null
@@ -1,81 +0,0 @@
-#ifndef __SOUND_SEQ_VIRMIDI_H
-#define __SOUND_SEQ_VIRMIDI_H
-
-/*
- * Virtual Raw MIDI client on Sequencer
- * Copyright (c) 2000 by Takashi Iwai <tiwai@suse.de>,
- * Jaroslav Kysela <perex@perex.cz>
- *
- * 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 "rawmidi.h"
-#include "seq_midi_event.h"
-
-/*
- * device file instance:
- * This instance is created at each time the midi device file is
- * opened. Each instance has its own input buffer and MIDI parser
- * (buffer), and is associated with the device instance.
- */
-struct snd_virmidi {
- struct list_head list;
- int seq_mode;
- int client;
- int port;
- unsigned int trigger: 1;
- struct snd_midi_event *parser;
- struct snd_seq_event event;
- struct snd_virmidi_dev *rdev;
- struct snd_rawmidi_substream *substream;
-};
-
-#define SNDRV_VIRMIDI_SUBSCRIBE (1<<0)
-#define SNDRV_VIRMIDI_USE (1<<1)
-
-/*
- * device record:
- * Each virtual midi device has one device instance. It contains
- * common information and the linked-list of opened files,
- */
-struct snd_virmidi_dev {
- struct snd_card *card; /* associated card */
- struct snd_rawmidi *rmidi; /* rawmidi device */
- int seq_mode; /* SNDRV_VIRMIDI_XXX */
- int device; /* sequencer device */
- int client; /* created/attached client */
- int port; /* created/attached port */
- unsigned int flags; /* SNDRV_VIRMIDI_* */
- rwlock_t filelist_lock;
- struct list_head filelist;
-};
-
-/* sequencer mode:
- * ATTACH = input/output events from midi device are routed to the
- * attached sequencer port. sequencer port is not created
- * by virmidi itself.
- * the input to rawmidi must be processed by passing the
- * incoming events via snd_virmidi_receive()
- * DISPATCH = input/output events are routed to subscribers.
- * sequencer port is created in virmidi.
- */
-#define SNDRV_VIRMIDI_SEQ_NONE 0
-#define SNDRV_VIRMIDI_SEQ_ATTACH 1
-#define SNDRV_VIRMIDI_SEQ_DISPATCH 2
-
-int snd_virmidi_new(struct snd_card *card, int device, struct snd_rawmidi **rrmidi);
-
-#endif /* __SOUND_SEQ_VIRMIDI */
diff --git a/ANDROID_3.4.5/include/sound/sfnt_info.h b/ANDROID_3.4.5/include/sound/sfnt_info.h
deleted file mode 100644
index 1bce7fd1..00000000
--- a/ANDROID_3.4.5/include/sound/sfnt_info.h
+++ /dev/null
@@ -1,212 +0,0 @@
-#ifndef __SOUND_SFNT_INFO_H
-#define __SOUND_SFNT_INFO_H
-
-/*
- * Patch record compatible with AWE driver on OSS
- *
- * Copyright (C) 1999-2000 Takashi Iwai
- *
- * 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 <sound/asound.h>
-
-/*
- * patch information record
- */
-
-#ifdef SNDRV_BIG_ENDIAN
-#define SNDRV_OSS_PATCHKEY(id) (0xfd00|id)
-#else
-#define SNDRV_OSS_PATCHKEY(id) ((id<<8)|0xfd)
-#endif
-
-/* patch interface header: 16 bytes */
-struct soundfont_patch_info {
- unsigned short key; /* use the key below */
-#define SNDRV_OSS_SOUNDFONT_PATCH SNDRV_OSS_PATCHKEY(0x07)
-
- short device_no; /* synthesizer number */
- unsigned short sf_id; /* file id (should be zero) */
- short optarg; /* optional argument */
- int len; /* data length (without this header) */
-
- short type; /* patch operation type */
-#define SNDRV_SFNT_LOAD_INFO 0 /* awe_voice_rec */
-#define SNDRV_SFNT_LOAD_DATA 1 /* awe_sample_info */
-#define SNDRV_SFNT_OPEN_PATCH 2 /* awe_open_parm */
-#define SNDRV_SFNT_CLOSE_PATCH 3 /* none */
- /* 4 is obsolete */
-#define SNDRV_SFNT_REPLACE_DATA 5 /* awe_sample_info (optarg=#channels)*/
-#define SNDRV_SFNT_MAP_PRESET 6 /* awe_voice_map */
- /* 7 is not used */
-#define SNDRV_SFNT_PROBE_DATA 8 /* optarg=sample */
-#define SNDRV_SFNT_REMOVE_INFO 9 /* optarg=(bank<<8)|instr */
-
- short reserved; /* word alignment data */
-
- /* the actual patch data begins after this */
-};
-
-
-/*
- * open patch
- */
-
-#define SNDRV_SFNT_PATCH_NAME_LEN 32
-
-struct soundfont_open_parm {
- unsigned short type; /* sample type */
-#define SNDRV_SFNT_PAT_TYPE_MISC 0
-#define SNDRV_SFNT_PAT_TYPE_GUS 6
-#define SNDRV_SFNT_PAT_TYPE_MAP 7
-#define SNDRV_SFNT_PAT_LOCKED 0x100 /* lock the samples */
-#define SNDRV_SFNT_PAT_SHARED 0x200 /* sample is shared */
-
- short reserved;
- char name[SNDRV_SFNT_PATCH_NAME_LEN];
-};
-
-
-/*
- * raw voice information record
- */
-
-/* wave table envelope & effect parameters to control EMU8000 */
-struct soundfont_voice_parm {
- unsigned short moddelay; /* modulation delay (0x8000) */
- unsigned short modatkhld; /* modulation attack & hold time (0x7f7f) */
- unsigned short moddcysus; /* modulation decay & sustain (0x7f7f) */
- unsigned short modrelease; /* modulation release time (0x807f) */
- short modkeyhold, modkeydecay; /* envelope change per key (not used) */
- unsigned short voldelay; /* volume delay (0x8000) */
- unsigned short volatkhld; /* volume attack & hold time (0x7f7f) */
- unsigned short voldcysus; /* volume decay & sustain (0x7f7f) */
- unsigned short volrelease; /* volume release time (0x807f) */
- short volkeyhold, volkeydecay; /* envelope change per key (not used) */
- unsigned short lfo1delay; /* LFO1 delay (0x8000) */
- unsigned short lfo2delay; /* LFO2 delay (0x8000) */
- unsigned short pefe; /* modulation pitch & cutoff (0x0000) */
- unsigned short fmmod; /* LFO1 pitch & cutoff (0x0000) */
- unsigned short tremfrq; /* LFO1 volume & freq (0x0000) */
- unsigned short fm2frq2; /* LFO2 pitch & freq (0x0000) */
- unsigned char cutoff; /* initial cutoff (0xff) */
- unsigned char filterQ; /* initial filter Q [0-15] (0x0) */
- unsigned char chorus; /* chorus send (0x00) */
- unsigned char reverb; /* reverb send (0x00) */
- unsigned short reserved[4]; /* not used */
-};
-
-
-/* wave table parameters: 92 bytes */
-struct soundfont_voice_info {
- unsigned short sf_id; /* file id (should be zero) */
- unsigned short sample; /* sample id */
- int start, end; /* sample offset correction */
- int loopstart, loopend; /* loop offset correction */
- short rate_offset; /* sample rate pitch offset */
- unsigned short mode; /* sample mode */
-#define SNDRV_SFNT_MODE_ROMSOUND 0x8000
-#define SNDRV_SFNT_MODE_STEREO 1
-#define SNDRV_SFNT_MODE_LOOPING 2
-#define SNDRV_SFNT_MODE_NORELEASE 4 /* obsolete */
-#define SNDRV_SFNT_MODE_INIT_PARM 8
-
- short root; /* midi root key */
- short tune; /* pitch tuning (in cents) */
- unsigned char low, high; /* key note range */
- unsigned char vellow, velhigh; /* velocity range */
- signed char fixkey, fixvel; /* fixed key, velocity */
- signed char pan, fixpan; /* panning, fixed panning */
- short exclusiveClass; /* exclusive class (0 = none) */
- unsigned char amplitude; /* sample volume (127 max) */
- unsigned char attenuation; /* attenuation (0.375dB) */
- short scaleTuning; /* pitch scale tuning(%), normally 100 */
- struct soundfont_voice_parm parm; /* voice envelope parameters */
- unsigned short sample_mode; /* sample mode_flag (set by driver) */
-};
-
-
-/* instrument info header: 4 bytes */
-struct soundfont_voice_rec_hdr {
- unsigned char bank; /* midi bank number */
- unsigned char instr; /* midi preset number */
- char nvoices; /* number of voices */
- char write_mode; /* write mode; normally 0 */
-#define SNDRV_SFNT_WR_APPEND 0 /* append anyway */
-#define SNDRV_SFNT_WR_EXCLUSIVE 1 /* skip if already exists */
-#define SNDRV_SFNT_WR_REPLACE 2 /* replace if already exists */
-};
-
-
-/*
- * sample wave information
- */
-
-/* wave table sample header: 32 bytes */
-struct soundfont_sample_info {
- unsigned short sf_id; /* file id (should be zero) */
- unsigned short sample; /* sample id */
- int start, end; /* start & end offset */
- int loopstart, loopend; /* loop start & end offset */
- int size; /* size (0 = ROM) */
- short dummy; /* not used */
- unsigned short mode_flags; /* mode flags */
-#define SNDRV_SFNT_SAMPLE_8BITS 1 /* wave data is 8bits */
-#define SNDRV_SFNT_SAMPLE_UNSIGNED 2 /* wave data is unsigned */
-#define SNDRV_SFNT_SAMPLE_NO_BLANK 4 /* no blank loop is attached */
-#define SNDRV_SFNT_SAMPLE_SINGLESHOT 8 /* single-shot w/o loop */
-#define SNDRV_SFNT_SAMPLE_BIDIR_LOOP 16 /* bidirectional looping */
-#define SNDRV_SFNT_SAMPLE_STEREO_LEFT 32 /* stereo left sound */
-#define SNDRV_SFNT_SAMPLE_STEREO_RIGHT 64 /* stereo right sound */
-#define SNDRV_SFNT_SAMPLE_REVERSE_LOOP 128 /* reverse looping */
- unsigned int truesize; /* used memory size (set by driver) */
-};
-
-
-/*
- * voice preset mapping (aliasing)
- */
-
-struct soundfont_voice_map {
- int map_bank, map_instr, map_key; /* key = -1 means all keys */
- int src_bank, src_instr, src_key;
-};
-
-
-/*
- * ioctls for hwdep
- */
-
-#define SNDRV_EMUX_HWDEP_NAME "Emux WaveTable"
-
-#define SNDRV_EMUX_VERSION ((1 << 16) | (0 << 8) | 0) /* 1.0.0 */
-
-struct snd_emux_misc_mode {
- int port; /* -1 = all */
- int mode;
- int value;
- int value2; /* reserved */
-};
-
-#define SNDRV_EMUX_IOCTL_VERSION _IOR('H', 0x80, unsigned int)
-#define SNDRV_EMUX_IOCTL_LOAD_PATCH _IOWR('H', 0x81, struct soundfont_patch_info)
-#define SNDRV_EMUX_IOCTL_RESET_SAMPLES _IO('H', 0x82)
-#define SNDRV_EMUX_IOCTL_REMOVE_LAST_SAMPLES _IO('H', 0x83)
-#define SNDRV_EMUX_IOCTL_MEM_AVAIL _IOW('H', 0x84, int)
-#define SNDRV_EMUX_IOCTL_MISC_MODE _IOWR('H', 0x84, struct snd_emux_misc_mode)
-
-#endif /* __SOUND_SFNT_INFO_H */
diff --git a/ANDROID_3.4.5/include/sound/sh_dac_audio.h b/ANDROID_3.4.5/include/sound/sh_dac_audio.h
deleted file mode 100644
index f5deaf1d..00000000
--- a/ANDROID_3.4.5/include/sound/sh_dac_audio.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * SH_DAC specific configuration, for the dac_audio platform_device
- *
- * Copyright (C) 2009 Rafael Ignacio Zurita <rizurita@yahoo.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.
- */
-
-#ifndef __INCLUDE_SH_DAC_AUDIO_H
-#define __INCLUDE_SH_DAC_AUDIO_H
-
-struct dac_audio_pdata {
- int buffer_size;
- int channel;
- void (*start)(struct dac_audio_pdata *pd);
- void (*stop)(struct dac_audio_pdata *pd);
-};
-
-#endif /* __INCLUDE_SH_DAC_AUDIO_H */
diff --git a/ANDROID_3.4.5/include/sound/sh_fsi.h b/ANDROID_3.4.5/include/sound/sh_fsi.h
deleted file mode 100644
index b457e87f..00000000
--- a/ANDROID_3.4.5/include/sound/sh_fsi.h
+++ /dev/null
@@ -1,99 +0,0 @@
-#ifndef __SOUND_FSI_H
-#define __SOUND_FSI_H
-
-/*
- * Fifo-attached Serial Interface (FSI) support for SH7724
- *
- * Copyright (C) 2009 Renesas Solutions Corp.
- * Kuninori Morimoto <morimoto.kuninori@renesas.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.
- */
-
-#define FSI_PORT_A 0
-#define FSI_PORT_B 1
-
-#include <linux/clk.h>
-#include <sound/soc.h>
-
-/*
- * flags format
- *
- * 0x000000BA
- *
- * A: inversion
- * B: format mode
- */
-
-/* A: clock inversion */
-#define SH_FSI_INVERSION_MASK 0x0000000F
-#define SH_FSI_LRM_INV (1 << 0)
-#define SH_FSI_BRM_INV (1 << 1)
-#define SH_FSI_LRS_INV (1 << 2)
-#define SH_FSI_BRS_INV (1 << 3)
-
-/* B: format mode */
-#define SH_FSI_FMT_MASK 0x000000F0
-#define SH_FSI_FMT_DAI (0 << 4)
-#define SH_FSI_FMT_SPDIF (1 << 4)
-
-
-/*
- * set_rate return value
- *
- * see ACKMD/BPFMD on
- * ACK_MD (FSI2)
- * CKG1 (FSI)
- *
- * err : return value < 0
- * no change : return value == 0
- * change xMD : return value > 0
- *
- * 0x-00000AB
- *
- * A: ACKMD value
- * B: BPFMD value
- */
-
-#define SH_FSI_ACKMD_MASK (0xF << 0)
-#define SH_FSI_ACKMD_512 (1 << 0)
-#define SH_FSI_ACKMD_256 (2 << 0)
-#define SH_FSI_ACKMD_128 (3 << 0)
-#define SH_FSI_ACKMD_64 (4 << 0)
-#define SH_FSI_ACKMD_32 (5 << 0)
-
-#define SH_FSI_BPFMD_MASK (0xF << 4)
-#define SH_FSI_BPFMD_512 (1 << 4)
-#define SH_FSI_BPFMD_256 (2 << 4)
-#define SH_FSI_BPFMD_128 (3 << 4)
-#define SH_FSI_BPFMD_64 (4 << 4)
-#define SH_FSI_BPFMD_32 (5 << 4)
-#define SH_FSI_BPFMD_16 (6 << 4)
-
-struct sh_fsi_port_info {
- unsigned long flags;
- int tx_id;
- int rx_id;
- int (*set_rate)(struct device *dev, int rate, int enable);
-};
-
-struct sh_fsi_platform_info {
- struct sh_fsi_port_info port_a;
- struct sh_fsi_port_info port_b;
-};
-
-/*
- * for fsi-ak4642
- */
-struct fsi_ak4642_info {
- const char *name;
- const char *card;
- const char *cpu_dai;
- const char *codec;
- const char *platform;
- int id;
-};
-
-#endif /* __SOUND_FSI_H */
diff --git a/ANDROID_3.4.5/include/sound/snd_wavefront.h b/ANDROID_3.4.5/include/sound/snd_wavefront.h
deleted file mode 100644
index fa149ca7..00000000
--- a/ANDROID_3.4.5/include/sound/snd_wavefront.h
+++ /dev/null
@@ -1,142 +0,0 @@
-#ifndef __SOUND_SND_WAVEFRONT_H__
-#define __SOUND_SND_WAVEFRONT_H__
-
-#include "mpu401.h"
-#include "hwdep.h"
-#include "rawmidi.h"
-#include "wavefront.h" /* generic OSS/ALSA/user-level wavefront header */
-
-/* MIDI interface */
-
-struct _snd_wavefront_midi;
-struct _snd_wavefront_card;
-struct _snd_wavefront;
-
-typedef struct _snd_wavefront_midi snd_wavefront_midi_t;
-typedef struct _snd_wavefront_card snd_wavefront_card_t;
-typedef struct _snd_wavefront snd_wavefront_t;
-
-typedef enum { internal_mpu = 0, external_mpu = 1 } snd_wavefront_mpu_id;
-
-struct _snd_wavefront_midi {
- unsigned long base; /* I/O port address */
- char isvirtual; /* doing virtual MIDI stuff ? */
- char istimer; /* timer is used */
- snd_wavefront_mpu_id output_mpu; /* most-recently-used */
- snd_wavefront_mpu_id input_mpu; /* most-recently-used */
- unsigned int mode[2]; /* MPU401_MODE_XXX */
- struct snd_rawmidi_substream *substream_output[2];
- struct snd_rawmidi_substream *substream_input[2];
- struct timer_list timer;
- spinlock_t open;
- spinlock_t virtual; /* protects isvirtual */
-};
-
-#define OUTPUT_READY 0x40
-#define INPUT_AVAIL 0x80
-#define MPU_ACK 0xFE
-#define UART_MODE_ON 0x3F
-
-extern struct snd_rawmidi_ops snd_wavefront_midi_output;
-extern struct snd_rawmidi_ops snd_wavefront_midi_input;
-
-extern void snd_wavefront_midi_enable_virtual (snd_wavefront_card_t *);
-extern void snd_wavefront_midi_disable_virtual (snd_wavefront_card_t *);
-extern void snd_wavefront_midi_interrupt (snd_wavefront_card_t *);
-extern int snd_wavefront_midi_start (snd_wavefront_card_t *);
-
-struct _snd_wavefront {
- unsigned long irq; /* "you were one, one of the few ..." */
- unsigned long base; /* low i/o port address */
- struct resource *res_base; /* i/o port resource allocation */
-
-#define mpu_data_port base
-#define mpu_command_port base + 1 /* write semantics */
-#define mpu_status_port base + 1 /* read semantics */
-#define data_port base + 2
-#define status_port base + 3 /* read semantics */
-#define control_port base + 3 /* write semantics */
-#define block_port base + 4 /* 16 bit, writeonly */
-#define last_block_port base + 6 /* 16 bit, writeonly */
-
- /* FX ports. These are mapped through the ICS2115 to the YS225.
- The ICS2115 takes care of flipping the relevant pins on the
- YS225 so that access to each of these ports does the right
- thing. Note: these are NOT documented by Turtle Beach.
- */
-
-#define fx_status base + 8
-#define fx_op base + 8
-#define fx_lcr base + 9
-#define fx_dsp_addr base + 0xa
-#define fx_dsp_page base + 0xb
-#define fx_dsp_lsb base + 0xc
-#define fx_dsp_msb base + 0xd
-#define fx_mod_addr base + 0xe
-#define fx_mod_data base + 0xf
-
- volatile int irq_ok; /* set by interrupt handler */
- volatile int irq_cnt; /* ditto */
- char debug; /* debugging flags */
- int freemem; /* installed RAM, in bytes */
-
- char fw_version[2]; /* major = [0], minor = [1] */
- char hw_version[2]; /* major = [0], minor = [1] */
- char israw; /* needs Motorola microcode */
- char has_fx; /* has FX processor (Tropez+) */
- char fx_initialized; /* FX's register pages initialized */
- char prog_status[WF_MAX_PROGRAM]; /* WF_SLOT_* */
- char patch_status[WF_MAX_PATCH]; /* WF_SLOT_* */
- char sample_status[WF_MAX_SAMPLE]; /* WF_ST_* | WF_SLOT_* */
- int samples_used; /* how many */
- char interrupts_are_midi; /* h/w MPU interrupts enabled ? */
- char rom_samples_rdonly; /* can we write on ROM samples */
- spinlock_t irq_lock;
- wait_queue_head_t interrupt_sleeper;
- snd_wavefront_midi_t midi; /* ICS2115 MIDI interface */
- struct snd_card *card;
-};
-
-struct _snd_wavefront_card {
- snd_wavefront_t wavefront;
-#ifdef CONFIG_PNP
- struct pnp_dev *wss;
- struct pnp_dev *ctrl;
- struct pnp_dev *mpu;
- struct pnp_dev *synth;
-#endif /* CONFIG_PNP */
-};
-
-extern void snd_wavefront_internal_interrupt (snd_wavefront_card_t *card);
-extern int snd_wavefront_detect_irq (snd_wavefront_t *dev) ;
-extern int snd_wavefront_check_irq (snd_wavefront_t *dev, int irq);
-extern int snd_wavefront_restart (snd_wavefront_t *dev);
-extern int snd_wavefront_start (snd_wavefront_t *dev);
-extern int snd_wavefront_detect (snd_wavefront_card_t *card);
-extern int snd_wavefront_config_midi (snd_wavefront_t *dev) ;
-extern int snd_wavefront_cmd (snd_wavefront_t *, int, unsigned char *,
- unsigned char *);
-
-extern int snd_wavefront_synth_ioctl (struct snd_hwdep *,
- struct file *,
- unsigned int cmd,
- unsigned long arg);
-extern int snd_wavefront_synth_open (struct snd_hwdep *, struct file *);
-extern int snd_wavefront_synth_release (struct snd_hwdep *, struct file *);
-
-/* FX processor - see also yss225.[ch] */
-
-extern int snd_wavefront_fx_start (snd_wavefront_t *);
-extern int snd_wavefront_fx_detect (snd_wavefront_t *);
-extern int snd_wavefront_fx_ioctl (struct snd_hwdep *,
- struct file *,
- unsigned int cmd,
- unsigned long arg);
-extern int snd_wavefront_fx_open (struct snd_hwdep *, struct file *);
-extern int snd_wavefront_fx_release (struct snd_hwdep *, struct file *);
-
-/* prefix in all snd_printk() delivered messages */
-
-#define LOGNAME "WaveFront: "
-
-#endif /* __SOUND_SND_WAVEFRONT_H__ */
diff --git a/ANDROID_3.4.5/include/sound/soc-dai.h b/ANDROID_3.4.5/include/sound/soc-dai.h
deleted file mode 100644
index c429f248..00000000
--- a/ANDROID_3.4.5/include/sound/soc-dai.h
+++ /dev/null
@@ -1,290 +0,0 @@
-/*
- * linux/sound/soc-dai.h -- ALSA SoC Layer
- *
- * Copyright: 2005-2008 Wolfson Microelectronics. PLC.
- *
- * 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.
- *
- * Digital Audio Interface (DAI) API.
- */
-
-#ifndef __LINUX_SND_SOC_DAI_H
-#define __LINUX_SND_SOC_DAI_H
-
-
-#include <linux/list.h>
-
-struct snd_pcm_substream;
-struct snd_soc_dapm_widget;
-
-/*
- * DAI hardware audio formats.
- *
- * Describes the physical PCM data formating and clocking. Add new formats
- * to the end.
- */
-#define SND_SOC_DAIFMT_I2S 1 /* I2S mode */
-#define SND_SOC_DAIFMT_RIGHT_J 2 /* Right Justified mode */
-#define SND_SOC_DAIFMT_LEFT_J 3 /* Left Justified mode */
-#define SND_SOC_DAIFMT_DSP_A 4 /* L data MSB after FRM LRC */
-#define SND_SOC_DAIFMT_DSP_B 5 /* L data MSB during FRM LRC */
-#define SND_SOC_DAIFMT_AC97 6 /* AC97 */
-#define SND_SOC_DAIFMT_PDM 7 /* Pulse density modulation */
-
-/* left and right justified also known as MSB and LSB respectively */
-#define SND_SOC_DAIFMT_MSB SND_SOC_DAIFMT_LEFT_J
-#define SND_SOC_DAIFMT_LSB SND_SOC_DAIFMT_RIGHT_J
-
-/*
- * DAI Clock gating.
- *
- * DAI bit clocks can be be gated (disabled) when the DAI is not
- * sending or receiving PCM data in a frame. This can be used to save power.
- */
-#define SND_SOC_DAIFMT_CONT (1 << 4) /* continuous clock */
-#define SND_SOC_DAIFMT_GATED (2 << 4) /* clock is gated */
-
-/*
- * DAI hardware signal inversions.
- *
- * Specifies whether the DAI can also support inverted clocks for the specified
- * format.
- */
-#define SND_SOC_DAIFMT_NB_NF (1 << 8) /* normal bit clock + frame */
-#define SND_SOC_DAIFMT_NB_IF (2 << 8) /* normal BCLK + inv FRM */
-#define SND_SOC_DAIFMT_IB_NF (3 << 8) /* invert BCLK + nor FRM */
-#define SND_SOC_DAIFMT_IB_IF (4 << 8) /* invert BCLK + FRM */
-
-/*
- * DAI hardware clock masters.
- *
- * This is wrt the codec, the inverse is true for the interface
- * i.e. if the codec is clk and FRM master then the interface is
- * clk and frame slave.
- */
-#define SND_SOC_DAIFMT_CBM_CFM (1 << 12) /* codec clk & FRM master */
-#define SND_SOC_DAIFMT_CBS_CFM (2 << 12) /* codec clk slave & FRM master */
-#define SND_SOC_DAIFMT_CBM_CFS (3 << 12) /* codec clk master & frame slave */
-#define SND_SOC_DAIFMT_CBS_CFS (4 << 12) /* codec clk & FRM slave */
-
-#define SND_SOC_DAIFMT_FORMAT_MASK 0x000f
-#define SND_SOC_DAIFMT_CLOCK_MASK 0x00f0
-#define SND_SOC_DAIFMT_INV_MASK 0x0f00
-#define SND_SOC_DAIFMT_MASTER_MASK 0xf000
-
-/*
- * Master Clock Directions
- */
-#define SND_SOC_CLOCK_IN 0
-#define SND_SOC_CLOCK_OUT 1
-
-#define SND_SOC_STD_AC97_FMTS (SNDRV_PCM_FMTBIT_S8 |\
- SNDRV_PCM_FMTBIT_S16_LE |\
- SNDRV_PCM_FMTBIT_S16_BE |\
- SNDRV_PCM_FMTBIT_S20_3LE |\
- SNDRV_PCM_FMTBIT_S20_3BE |\
- SNDRV_PCM_FMTBIT_S24_3LE |\
- SNDRV_PCM_FMTBIT_S24_3BE |\
- SNDRV_PCM_FMTBIT_S32_LE |\
- SNDRV_PCM_FMTBIT_S32_BE)
-
-struct snd_soc_dai_driver;
-struct snd_soc_dai;
-struct snd_ac97_bus_ops;
-
-/* Digital Audio Interface registration */
-int snd_soc_register_dai(struct device *dev,
- struct snd_soc_dai_driver *dai_drv);
-void snd_soc_unregister_dai(struct device *dev);
-int snd_soc_register_dais(struct device *dev,
- struct snd_soc_dai_driver *dai_drv, size_t count);
-void snd_soc_unregister_dais(struct device *dev, size_t count);
-
-/* Digital Audio Interface clocking API.*/
-int snd_soc_dai_set_sysclk(struct snd_soc_dai *dai, int clk_id,
- unsigned int freq, int dir);
-
-int snd_soc_dai_set_clkdiv(struct snd_soc_dai *dai,
- int div_id, int div);
-
-int snd_soc_dai_set_pll(struct snd_soc_dai *dai,
- int pll_id, int source, unsigned int freq_in, unsigned int freq_out);
-
-/* Digital Audio interface formatting */
-int snd_soc_dai_set_fmt(struct snd_soc_dai *dai, unsigned int fmt);
-
-int snd_soc_dai_set_tdm_slot(struct snd_soc_dai *dai,
- unsigned int tx_mask, unsigned int rx_mask, int slots, int slot_width);
-
-int snd_soc_dai_set_channel_map(struct snd_soc_dai *dai,
- unsigned int tx_num, unsigned int *tx_slot,
- unsigned int rx_num, unsigned int *rx_slot);
-
-int snd_soc_dai_set_tristate(struct snd_soc_dai *dai, int tristate);
-
-/* Digital Audio Interface mute */
-int snd_soc_dai_digital_mute(struct snd_soc_dai *dai, int mute);
-
-struct snd_soc_dai_ops {
- /*
- * DAI clocking configuration, all optional.
- * Called by soc_card drivers, normally in their hw_params.
- */
- int (*set_sysclk)(struct snd_soc_dai *dai,
- int clk_id, unsigned int freq, int dir);
- int (*set_pll)(struct snd_soc_dai *dai, int pll_id, int source,
- unsigned int freq_in, unsigned int freq_out);
- int (*set_clkdiv)(struct snd_soc_dai *dai, int div_id, int div);
-
- /*
- * DAI format configuration
- * Called by soc_card drivers, normally in their hw_params.
- */
- int (*set_fmt)(struct snd_soc_dai *dai, unsigned int fmt);
- int (*set_tdm_slot)(struct snd_soc_dai *dai,
- unsigned int tx_mask, unsigned int rx_mask,
- int slots, int slot_width);
- int (*set_channel_map)(struct snd_soc_dai *dai,
- unsigned int tx_num, unsigned int *tx_slot,
- unsigned int rx_num, unsigned int *rx_slot);
- int (*set_tristate)(struct snd_soc_dai *dai, int tristate);
-
- /*
- * DAI digital mute - optional.
- * Called by soc-core to minimise any pops.
- */
- int (*digital_mute)(struct snd_soc_dai *dai, int mute);
-
- /*
- * ALSA PCM audio operations - all optional.
- * Called by soc-core during audio PCM operations.
- */
- int (*startup)(struct snd_pcm_substream *,
- struct snd_soc_dai *);
- void (*shutdown)(struct snd_pcm_substream *,
- struct snd_soc_dai *);
- int (*hw_params)(struct snd_pcm_substream *,
- struct snd_pcm_hw_params *, struct snd_soc_dai *);
- int (*hw_free)(struct snd_pcm_substream *,
- struct snd_soc_dai *);
- int (*prepare)(struct snd_pcm_substream *,
- struct snd_soc_dai *);
- int (*trigger)(struct snd_pcm_substream *, int,
- struct snd_soc_dai *);
- /*
- * For hardware based FIFO caused delay reporting.
- * Optional.
- */
- snd_pcm_sframes_t (*delay)(struct snd_pcm_substream *,
- struct snd_soc_dai *);
-};
-
-/*
- * Digital Audio Interface Driver.
- *
- * Describes the Digital Audio Interface in terms of its ALSA, DAI and AC97
- * operations and capabilities. Codec and platform drivers will register this
- * structure for every DAI they have.
- *
- * This structure covers the clocking, formating and ALSA operations for each
- * interface.
- */
-struct snd_soc_dai_driver {
- /* DAI description */
- const char *name;
- unsigned int id;
- int ac97_control;
-
- /* DAI driver callbacks */
- int (*probe)(struct snd_soc_dai *dai);
- int (*remove)(struct snd_soc_dai *dai);
- int (*suspend)(struct snd_soc_dai *dai);
- int (*resume)(struct snd_soc_dai *dai);
-
- /* ops */
- const struct snd_soc_dai_ops *ops;
-
- /* DAI capabilities */
- struct snd_soc_pcm_stream capture;
- struct snd_soc_pcm_stream playback;
- unsigned int symmetric_rates:1;
-
- /* probe ordering - for components with runtime dependencies */
- int probe_order;
- int remove_order;
-};
-
-/*
- * Digital Audio Interface runtime data.
- *
- * Holds runtime data for a DAI.
- */
-struct snd_soc_dai {
- const char *name;
- int id;
- struct device *dev;
- void *ac97_pdata; /* platform_data for the ac97 codec */
-
- /* driver ops */
- struct snd_soc_dai_driver *driver;
-
- /* DAI runtime info */
- unsigned int capture_active:1; /* stream is in use */
- unsigned int playback_active:1; /* stream is in use */
- unsigned int symmetric_rates:1;
- struct snd_pcm_runtime *runtime;
- unsigned int active;
- unsigned char pop_wait:1;
- unsigned char probed:1;
-
- struct snd_soc_dapm_widget *playback_widget;
- struct snd_soc_dapm_widget *capture_widget;
-
- /* DAI DMA data */
- void *playback_dma_data;
- void *capture_dma_data;
-
- /* Symmetry data - only valid if symmetry is being enforced */
- unsigned int rate;
-
- /* parent platform/codec */
- struct snd_soc_platform *platform;
- struct snd_soc_codec *codec;
-
- struct snd_soc_card *card;
-
- struct list_head list;
- struct list_head card_list;
-};
-
-static inline void *snd_soc_dai_get_dma_data(const struct snd_soc_dai *dai,
- const struct snd_pcm_substream *ss)
-{
- return (ss->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
- dai->playback_dma_data : dai->capture_dma_data;
-}
-
-static inline void snd_soc_dai_set_dma_data(struct snd_soc_dai *dai,
- const struct snd_pcm_substream *ss,
- void *data)
-{
- if (ss->stream == SNDRV_PCM_STREAM_PLAYBACK)
- dai->playback_dma_data = data;
- else
- dai->capture_dma_data = data;
-}
-
-static inline void snd_soc_dai_set_drvdata(struct snd_soc_dai *dai,
- void *data)
-{
- dev_set_drvdata(dai->dev, data);
-}
-
-static inline void *snd_soc_dai_get_drvdata(struct snd_soc_dai *dai)
-{
- return dev_get_drvdata(dai->dev);
-}
-
-#endif
diff --git a/ANDROID_3.4.5/include/sound/soc-dapm.h b/ANDROID_3.4.5/include/sound/soc-dapm.h
deleted file mode 100644
index 055242e6..00000000
--- a/ANDROID_3.4.5/include/sound/soc-dapm.h
+++ /dev/null
@@ -1,582 +0,0 @@
-/*
- * linux/sound/soc-dapm.h -- ALSA SoC Dynamic Audio Power Management
- *
- * Author: Liam Girdwood
- * Created: Aug 11th 2005
- * Copyright: Wolfson Microelectronics. PLC.
- *
- * 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.
- */
-
-#ifndef __LINUX_SND_SOC_DAPM_H
-#define __LINUX_SND_SOC_DAPM_H
-
-#include <linux/types.h>
-#include <sound/control.h>
-
-struct device;
-
-/* widget has no PM register bit */
-#define SND_SOC_NOPM -1
-
-/*
- * SoC dynamic audio power management
- *
- * We can have up to 4 power domains
- * 1. Codec domain - VREF, VMID
- * Usually controlled at codec probe/remove, although can be set
- * at stream time if power is not needed for sidetone, etc.
- * 2. Platform/Machine domain - physically connected inputs and outputs
- * Is platform/machine and user action specific, is set in the machine
- * driver and by userspace e.g when HP are inserted
- * 3. Path domain - Internal codec path mixers
- * Are automatically set when mixer and mux settings are
- * changed by the user.
- * 4. Stream domain - DAC's and ADC's.
- * Enabled when stream playback/capture is started.
- */
-
-/* codec domain */
-#define SND_SOC_DAPM_VMID(wname) \
-{ .id = snd_soc_dapm_vmid, .name = wname, .kcontrol_news = NULL, \
- .num_kcontrols = 0}
-
-/* platform domain */
-#define SND_SOC_DAPM_SIGGEN(wname) \
-{ .id = snd_soc_dapm_siggen, .name = wname, .kcontrol_news = NULL, \
- .num_kcontrols = 0, .reg = SND_SOC_NOPM }
-#define SND_SOC_DAPM_INPUT(wname) \
-{ .id = snd_soc_dapm_input, .name = wname, .kcontrol_news = NULL, \
- .num_kcontrols = 0, .reg = SND_SOC_NOPM }
-#define SND_SOC_DAPM_OUTPUT(wname) \
-{ .id = snd_soc_dapm_output, .name = wname, .kcontrol_news = NULL, \
- .num_kcontrols = 0, .reg = SND_SOC_NOPM }
-#define SND_SOC_DAPM_MIC(wname, wevent) \
-{ .id = snd_soc_dapm_mic, .name = wname, .kcontrol_news = NULL, \
- .num_kcontrols = 0, .reg = SND_SOC_NOPM, .event = wevent, \
- .event_flags = SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD}
-#define SND_SOC_DAPM_HP(wname, wevent) \
-{ .id = snd_soc_dapm_hp, .name = wname, .kcontrol_news = NULL, \
- .num_kcontrols = 0, .reg = SND_SOC_NOPM, .event = wevent, \
- .event_flags = SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD}
-#define SND_SOC_DAPM_SPK(wname, wevent) \
-{ .id = snd_soc_dapm_spk, .name = wname, .kcontrol_news = NULL, \
- .num_kcontrols = 0, .reg = SND_SOC_NOPM, .event = wevent, \
- .event_flags = SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD}
-#define SND_SOC_DAPM_LINE(wname, wevent) \
-{ .id = snd_soc_dapm_line, .name = wname, .kcontrol_news = NULL, \
- .num_kcontrols = 0, .reg = SND_SOC_NOPM, .event = wevent, \
- .event_flags = SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD}
-
-/* path domain */
-#define SND_SOC_DAPM_PGA(wname, wreg, wshift, winvert,\
- wcontrols, wncontrols) \
-{ .id = snd_soc_dapm_pga, .name = wname, .reg = wreg, .shift = wshift, \
- .invert = winvert, .kcontrol_news = wcontrols, .num_kcontrols = wncontrols}
-#define SND_SOC_DAPM_OUT_DRV(wname, wreg, wshift, winvert,\
- wcontrols, wncontrols) \
-{ .id = snd_soc_dapm_out_drv, .name = wname, .reg = wreg, .shift = wshift, \
- .invert = winvert, .kcontrol_news = wcontrols, .num_kcontrols = wncontrols}
-#define SND_SOC_DAPM_MIXER(wname, wreg, wshift, winvert, \
- wcontrols, wncontrols)\
-{ .id = snd_soc_dapm_mixer, .name = wname, .reg = wreg, .shift = wshift, \
- .invert = winvert, .kcontrol_news = wcontrols, .num_kcontrols = wncontrols}
-#define SND_SOC_DAPM_MIXER_NAMED_CTL(wname, wreg, wshift, winvert, \
- wcontrols, wncontrols)\
-{ .id = snd_soc_dapm_mixer_named_ctl, .name = wname, .reg = wreg, \
- .shift = wshift, .invert = winvert, .kcontrol_news = wcontrols, \
- .num_kcontrols = wncontrols}
-#define SND_SOC_DAPM_MICBIAS(wname, wreg, wshift, winvert) \
-{ .id = snd_soc_dapm_micbias, .name = wname, .reg = wreg, .shift = wshift, \
- .invert = winvert, .kcontrol_news = NULL, .num_kcontrols = 0}
-#define SND_SOC_DAPM_SWITCH(wname, wreg, wshift, winvert, wcontrols) \
-{ .id = snd_soc_dapm_switch, .name = wname, .reg = wreg, .shift = wshift, \
- .invert = winvert, .kcontrol_news = wcontrols, .num_kcontrols = 1}
-#define SND_SOC_DAPM_MUX(wname, wreg, wshift, winvert, wcontrols) \
-{ .id = snd_soc_dapm_mux, .name = wname, .reg = wreg, .shift = wshift, \
- .invert = winvert, .kcontrol_news = wcontrols, .num_kcontrols = 1}
-#define SND_SOC_DAPM_VIRT_MUX(wname, wreg, wshift, winvert, wcontrols) \
-{ .id = snd_soc_dapm_virt_mux, .name = wname, .reg = wreg, .shift = wshift, \
- .invert = winvert, .kcontrol_news = wcontrols, .num_kcontrols = 1}
-#define SND_SOC_DAPM_VALUE_MUX(wname, wreg, wshift, winvert, wcontrols) \
-{ .id = snd_soc_dapm_value_mux, .name = wname, .reg = wreg, \
- .shift = wshift, .invert = winvert, .kcontrol_news = wcontrols, \
- .num_kcontrols = 1}
-
-/* Simplified versions of above macros, assuming wncontrols = ARRAY_SIZE(wcontrols) */
-#define SOC_PGA_ARRAY(wname, wreg, wshift, winvert,\
- wcontrols) \
-{ .id = snd_soc_dapm_pga, .name = wname, .reg = wreg, .shift = wshift, \
- .invert = winvert, .kcontrol_news = wcontrols, .num_kcontrols = ARRAY_SIZE(wcontrols)}
-#define SOC_MIXER_ARRAY(wname, wreg, wshift, winvert, \
- wcontrols)\
-{ .id = snd_soc_dapm_mixer, .name = wname, .reg = wreg, .shift = wshift, \
- .invert = winvert, .kcontrol_news = wcontrols, .num_kcontrols = ARRAY_SIZE(wcontrols)}
-#define SOC_MIXER_NAMED_CTL_ARRAY(wname, wreg, wshift, winvert, \
- wcontrols)\
-{ .id = snd_soc_dapm_mixer_named_ctl, .name = wname, .reg = wreg, \
- .shift = wshift, .invert = winvert, .kcontrol_news = wcontrols, \
- .num_kcontrols = ARRAY_SIZE(wcontrols)}
-
-/* path domain with event - event handler must return 0 for success */
-#define SND_SOC_DAPM_PGA_E(wname, wreg, wshift, winvert, wcontrols, \
- wncontrols, wevent, wflags) \
-{ .id = snd_soc_dapm_pga, .name = wname, .reg = wreg, .shift = wshift, \
- .invert = winvert, .kcontrol_news = wcontrols, .num_kcontrols = wncontrols, \
- .event = wevent, .event_flags = wflags}
-#define SND_SOC_DAPM_OUT_DRV_E(wname, wreg, wshift, winvert, wcontrols, \
- wncontrols, wevent, wflags) \
-{ .id = snd_soc_dapm_out_drv, .name = wname, .reg = wreg, .shift = wshift, \
- .invert = winvert, .kcontrol_news = wcontrols, .num_kcontrols = wncontrols, \
- .event = wevent, .event_flags = wflags}
-#define SND_SOC_DAPM_MIXER_E(wname, wreg, wshift, winvert, wcontrols, \
- wncontrols, wevent, wflags) \
-{ .id = snd_soc_dapm_mixer, .name = wname, .reg = wreg, .shift = wshift, \
- .invert = winvert, .kcontrol_news = wcontrols, .num_kcontrols = wncontrols, \
- .event = wevent, .event_flags = wflags}
-#define SND_SOC_DAPM_MIXER_NAMED_CTL_E(wname, wreg, wshift, winvert, \
- wcontrols, wncontrols, wevent, wflags) \
-{ .id = snd_soc_dapm_mixer, .name = wname, .reg = wreg, .shift = wshift, \
- .invert = winvert, .kcontrol_news = wcontrols, \
- .num_kcontrols = wncontrols, .event = wevent, .event_flags = wflags}
-#define SND_SOC_DAPM_MICBIAS_E(wname, wreg, wshift, winvert, wevent, wflags) \
-{ .id = snd_soc_dapm_micbias, .name = wname, .reg = wreg, .shift = wshift, \
- .invert = winvert, .kcontrol_news = NULL, .num_kcontrols = 0, \
- .event = wevent, .event_flags = wflags}
-#define SND_SOC_DAPM_SWITCH_E(wname, wreg, wshift, winvert, wcontrols, \
- wevent, wflags) \
-{ .id = snd_soc_dapm_switch, .name = wname, .reg = wreg, .shift = wshift, \
- .invert = winvert, .kcontrol_news = wcontrols, .num_kcontrols = 1, \
- .event = wevent, .event_flags = wflags}
-#define SND_SOC_DAPM_MUX_E(wname, wreg, wshift, winvert, wcontrols, \
- wevent, wflags) \
-{ .id = snd_soc_dapm_mux, .name = wname, .reg = wreg, .shift = wshift, \
- .invert = winvert, .kcontrol_news = wcontrols, .num_kcontrols = 1, \
- .event = wevent, .event_flags = wflags}
-#define SND_SOC_DAPM_VIRT_MUX_E(wname, wreg, wshift, winvert, wcontrols, \
- wevent, wflags) \
-{ .id = snd_soc_dapm_virt_mux, .name = wname, .reg = wreg, .shift = wshift, \
- .invert = winvert, .kcontrol_news = wcontrols, .num_kcontrols = 1, \
- .event = wevent, .event_flags = wflags}
-
-/* additional sequencing control within an event type */
-#define SND_SOC_DAPM_PGA_S(wname, wsubseq, wreg, wshift, winvert, \
- wevent, wflags) \
-{ .id = snd_soc_dapm_pga, .name = wname, .reg = wreg, .shift = wshift, \
- .invert = winvert, .event = wevent, .event_flags = wflags, \
- .subseq = wsubseq}
-#define SND_SOC_DAPM_SUPPLY_S(wname, wsubseq, wreg, wshift, winvert, wevent, \
- wflags) \
-{ .id = snd_soc_dapm_supply, .name = wname, .reg = wreg, \
- .shift = wshift, .invert = winvert, .event = wevent, \
- .event_flags = wflags, .subseq = wsubseq}
-
-/* Simplified versions of above macros, assuming wncontrols = ARRAY_SIZE(wcontrols) */
-#define SOC_PGA_E_ARRAY(wname, wreg, wshift, winvert, wcontrols, \
- wevent, wflags) \
-{ .id = snd_soc_dapm_pga, .name = wname, .reg = wreg, .shift = wshift, \
- .invert = winvert, .kcontrol_news = wcontrols, .num_kcontrols = ARRAY_SIZE(wcontrols), \
- .event = wevent, .event_flags = wflags}
-#define SOC_MIXER_E_ARRAY(wname, wreg, wshift, winvert, wcontrols, \
- wevent, wflags) \
-{ .id = snd_soc_dapm_mixer, .name = wname, .reg = wreg, .shift = wshift, \
- .invert = winvert, .kcontrol_news = wcontrols, .num_kcontrols = ARRAY_SIZE(wcontrols), \
- .event = wevent, .event_flags = wflags}
-#define SOC_MIXER_NAMED_CTL_E_ARRAY(wname, wreg, wshift, winvert, \
- wcontrols, wevent, wflags) \
-{ .id = snd_soc_dapm_mixer, .name = wname, .reg = wreg, .shift = wshift, \
- .invert = winvert, .kcontrol_news = wcontrols, \
- .num_kcontrols = ARRAY_SIZE(wcontrols), .event = wevent, .event_flags = wflags}
-
-/* events that are pre and post DAPM */
-#define SND_SOC_DAPM_PRE(wname, wevent) \
-{ .id = snd_soc_dapm_pre, .name = wname, .kcontrol_news = NULL, \
- .num_kcontrols = 0, .reg = SND_SOC_NOPM, .event = wevent, \
- .event_flags = SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_PRE_PMD}
-#define SND_SOC_DAPM_POST(wname, wevent) \
-{ .id = snd_soc_dapm_post, .name = wname, .kcontrol_news = NULL, \
- .num_kcontrols = 0, .reg = SND_SOC_NOPM, .event = wevent, \
- .event_flags = SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD}
-
-/* stream domain */
-#define SND_SOC_DAPM_AIF_IN(wname, stname, wslot, wreg, wshift, winvert) \
-{ .id = snd_soc_dapm_aif_in, .name = wname, .sname = stname, \
- .reg = wreg, .shift = wshift, .invert = winvert }
-#define SND_SOC_DAPM_AIF_IN_E(wname, stname, wslot, wreg, wshift, winvert, \
- wevent, wflags) \
-{ .id = snd_soc_dapm_aif_in, .name = wname, .sname = stname, \
- .reg = wreg, .shift = wshift, .invert = winvert, \
- .event = wevent, .event_flags = wflags }
-#define SND_SOC_DAPM_AIF_OUT(wname, stname, wslot, wreg, wshift, winvert) \
-{ .id = snd_soc_dapm_aif_out, .name = wname, .sname = stname, \
- .reg = wreg, .shift = wshift, .invert = winvert }
-#define SND_SOC_DAPM_AIF_OUT_E(wname, stname, wslot, wreg, wshift, winvert, \
- wevent, wflags) \
-{ .id = snd_soc_dapm_aif_out, .name = wname, .sname = stname, \
- .reg = wreg, .shift = wshift, .invert = winvert, \
- .event = wevent, .event_flags = wflags }
-#define SND_SOC_DAPM_DAC(wname, stname, wreg, wshift, winvert) \
-{ .id = snd_soc_dapm_dac, .name = wname, .sname = stname, .reg = wreg, \
- .shift = wshift, .invert = winvert}
-#define SND_SOC_DAPM_DAC_E(wname, stname, wreg, wshift, winvert, \
- wevent, wflags) \
-{ .id = snd_soc_dapm_dac, .name = wname, .sname = stname, .reg = wreg, \
- .shift = wshift, .invert = winvert, \
- .event = wevent, .event_flags = wflags}
-#define SND_SOC_DAPM_ADC(wname, stname, wreg, wshift, winvert) \
-{ .id = snd_soc_dapm_adc, .name = wname, .sname = stname, .reg = wreg, \
- .shift = wshift, .invert = winvert}
-#define SND_SOC_DAPM_ADC_E(wname, stname, wreg, wshift, winvert, \
- wevent, wflags) \
-{ .id = snd_soc_dapm_adc, .name = wname, .sname = stname, .reg = wreg, \
- .shift = wshift, .invert = winvert, \
- .event = wevent, .event_flags = wflags}
-
-/* generic widgets */
-#define SND_SOC_DAPM_REG(wid, wname, wreg, wshift, wmask, won_val, woff_val) \
-{ .id = wid, .name = wname, .kcontrol_news = NULL, .num_kcontrols = 0, \
- .reg = -((wreg) + 1), .shift = wshift, .mask = wmask, \
- .on_val = won_val, .off_val = woff_val, .event = dapm_reg_event, \
- .event_flags = SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD}
-#define SND_SOC_DAPM_SUPPLY(wname, wreg, wshift, winvert, wevent, wflags) \
-{ .id = snd_soc_dapm_supply, .name = wname, .reg = wreg, \
- .shift = wshift, .invert = winvert, .event = wevent, \
- .event_flags = wflags}
-#define SND_SOC_DAPM_REGULATOR_SUPPLY(wname, wdelay) \
-{ .id = snd_soc_dapm_regulator_supply, .name = wname, \
- .reg = SND_SOC_NOPM, .shift = wdelay, .event = dapm_regulator_event, \
- .event_flags = SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD }
-
-/* dapm kcontrol types */
-#define SOC_DAPM_SINGLE(xname, reg, shift, max, invert) \
-{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
- .info = snd_soc_info_volsw, \
- .get = snd_soc_dapm_get_volsw, .put = snd_soc_dapm_put_volsw, \
- .private_value = SOC_SINGLE_VALUE(reg, shift, max, invert) }
-#define SOC_DAPM_SINGLE_TLV(xname, reg, shift, max, invert, tlv_array) \
-{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
- .info = snd_soc_info_volsw, \
- .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ | SNDRV_CTL_ELEM_ACCESS_READWRITE,\
- .tlv.p = (tlv_array), \
- .get = snd_soc_dapm_get_volsw, .put = snd_soc_dapm_put_volsw, \
- .private_value = SOC_SINGLE_VALUE(reg, shift, max, invert) }
-#define SOC_DAPM_ENUM(xname, xenum) \
-{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
- .info = snd_soc_info_enum_double, \
- .get = snd_soc_dapm_get_enum_double, \
- .put = snd_soc_dapm_put_enum_double, \
- .private_value = (unsigned long)&xenum }
-#define SOC_DAPM_ENUM_VIRT(xname, xenum) \
-{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
- .info = snd_soc_info_enum_double, \
- .get = snd_soc_dapm_get_enum_virt, \
- .put = snd_soc_dapm_put_enum_virt, \
- .private_value = (unsigned long)&xenum }
-#define SOC_DAPM_ENUM_EXT(xname, xenum, xget, xput) \
-{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
- .info = snd_soc_info_enum_double, \
- .get = xget, \
- .put = xput, \
- .private_value = (unsigned long)&xenum }
-#define SOC_DAPM_VALUE_ENUM(xname, xenum) \
-{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
- .info = snd_soc_info_enum_double, \
- .get = snd_soc_dapm_get_value_enum_double, \
- .put = snd_soc_dapm_put_value_enum_double, \
- .private_value = (unsigned long)&xenum }
-#define SOC_DAPM_PIN_SWITCH(xname) \
-{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname " Switch", \
- .info = snd_soc_dapm_info_pin_switch, \
- .get = snd_soc_dapm_get_pin_switch, \
- .put = snd_soc_dapm_put_pin_switch, \
- .private_value = (unsigned long)xname }
-
-/* dapm stream operations */
-#define SND_SOC_DAPM_STREAM_NOP 0x0
-#define SND_SOC_DAPM_STREAM_START 0x1
-#define SND_SOC_DAPM_STREAM_STOP 0x2
-#define SND_SOC_DAPM_STREAM_SUSPEND 0x4
-#define SND_SOC_DAPM_STREAM_RESUME 0x8
-#define SND_SOC_DAPM_STREAM_PAUSE_PUSH 0x10
-#define SND_SOC_DAPM_STREAM_PAUSE_RELEASE 0x20
-
-/* dapm event types */
-#define SND_SOC_DAPM_PRE_PMU 0x1 /* before widget power up */
-#define SND_SOC_DAPM_POST_PMU 0x2 /* after widget power up */
-#define SND_SOC_DAPM_PRE_PMD 0x4 /* before widget power down */
-#define SND_SOC_DAPM_POST_PMD 0x8 /* after widget power down */
-#define SND_SOC_DAPM_PRE_REG 0x10 /* before audio path setup */
-#define SND_SOC_DAPM_POST_REG 0x20 /* after audio path setup */
-#define SND_SOC_DAPM_PRE_POST_PMD \
- (SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD)
-
-/* convenience event type detection */
-#define SND_SOC_DAPM_EVENT_ON(e) \
- (e & (SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU))
-#define SND_SOC_DAPM_EVENT_OFF(e) \
- (e & (SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD))
-
-struct snd_soc_dapm_widget;
-enum snd_soc_dapm_type;
-struct snd_soc_dapm_path;
-struct snd_soc_dapm_pin;
-struct snd_soc_dapm_route;
-struct snd_soc_dapm_context;
-
-int dapm_reg_event(struct snd_soc_dapm_widget *w,
- struct snd_kcontrol *kcontrol, int event);
-int dapm_regulator_event(struct snd_soc_dapm_widget *w,
- struct snd_kcontrol *kcontrol, int event);
-
-/* dapm controls */
-int snd_soc_dapm_put_volsw(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_value *ucontrol);
-int snd_soc_dapm_get_volsw(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_value *ucontrol);
-int snd_soc_dapm_get_enum_double(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_value *ucontrol);
-int snd_soc_dapm_put_enum_double(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_value *ucontrol);
-int snd_soc_dapm_get_enum_virt(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_value *ucontrol);
-int snd_soc_dapm_put_enum_virt(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_value *ucontrol);
-int snd_soc_dapm_get_value_enum_double(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_value *ucontrol);
-int snd_soc_dapm_put_value_enum_double(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_value *ucontrol);
-int snd_soc_dapm_info_pin_switch(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_info *uinfo);
-int snd_soc_dapm_get_pin_switch(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_value *uncontrol);
-int snd_soc_dapm_put_pin_switch(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_value *uncontrol);
-int snd_soc_dapm_new_controls(struct snd_soc_dapm_context *dapm,
- const struct snd_soc_dapm_widget *widget,
- int num);
-int snd_soc_dapm_new_dai_widgets(struct snd_soc_dapm_context *dapm,
- struct snd_soc_dai *dai);
-int snd_soc_dapm_link_dai_widgets(struct snd_soc_card *card);
-
-/* dapm path setup */
-int snd_soc_dapm_new_widgets(struct snd_soc_dapm_context *dapm);
-void snd_soc_dapm_free(struct snd_soc_dapm_context *dapm);
-int snd_soc_dapm_add_routes(struct snd_soc_dapm_context *dapm,
- const struct snd_soc_dapm_route *route, int num);
-int snd_soc_dapm_weak_routes(struct snd_soc_dapm_context *dapm,
- const struct snd_soc_dapm_route *route, int num);
-
-/* dapm events */
-int snd_soc_dapm_stream_event(struct snd_soc_pcm_runtime *rtd, int stream,
- struct snd_soc_dai *dai, int event);
-void snd_soc_dapm_shutdown(struct snd_soc_card *card);
-
-/* external DAPM widget events */
-int snd_soc_dapm_mixer_update_power(struct snd_soc_dapm_widget *widget,
- struct snd_kcontrol *kcontrol, int connect);
-int snd_soc_dapm_mux_update_power(struct snd_soc_dapm_widget *widget,
- struct snd_kcontrol *kcontrol, int mux, struct soc_enum *e);
-
-/* dapm sys fs - used by the core */
-int snd_soc_dapm_sys_add(struct device *dev);
-void snd_soc_dapm_debugfs_init(struct snd_soc_dapm_context *dapm,
- struct dentry *parent);
-
-/* dapm audio pin control and status */
-int snd_soc_dapm_enable_pin(struct snd_soc_dapm_context *dapm,
- const char *pin);
-int snd_soc_dapm_disable_pin(struct snd_soc_dapm_context *dapm,
- const char *pin);
-int snd_soc_dapm_nc_pin(struct snd_soc_dapm_context *dapm, const char *pin);
-int snd_soc_dapm_get_pin_status(struct snd_soc_dapm_context *dapm,
- const char *pin);
-int snd_soc_dapm_sync(struct snd_soc_dapm_context *dapm);
-int snd_soc_dapm_force_enable_pin(struct snd_soc_dapm_context *dapm,
- const char *pin);
-int snd_soc_dapm_ignore_suspend(struct snd_soc_dapm_context *dapm,
- const char *pin);
-void snd_soc_dapm_auto_nc_codec_pins(struct snd_soc_codec *codec);
-
-/* Mostly internal - should not normally be used */
-void dapm_mark_dirty(struct snd_soc_dapm_widget *w, const char *reason);
-
-/* dapm widget types */
-enum snd_soc_dapm_type {
- snd_soc_dapm_input = 0, /* input pin */
- snd_soc_dapm_output, /* output pin */
- snd_soc_dapm_mux, /* selects 1 analog signal from many inputs */
- snd_soc_dapm_virt_mux, /* virtual version of snd_soc_dapm_mux */
- snd_soc_dapm_value_mux, /* selects 1 analog signal from many inputs */
- snd_soc_dapm_mixer, /* mixes several analog signals together */
- snd_soc_dapm_mixer_named_ctl, /* mixer with named controls */
- snd_soc_dapm_pga, /* programmable gain/attenuation (volume) */
- snd_soc_dapm_out_drv, /* output driver */
- snd_soc_dapm_adc, /* analog to digital converter */
- snd_soc_dapm_dac, /* digital to analog converter */
- snd_soc_dapm_micbias, /* microphone bias (power) */
- snd_soc_dapm_mic, /* microphone */
- snd_soc_dapm_hp, /* headphones */
- snd_soc_dapm_spk, /* speaker */
- snd_soc_dapm_line, /* line input/output */
- snd_soc_dapm_switch, /* analog switch */
- snd_soc_dapm_vmid, /* codec bias/vmid - to minimise pops */
- snd_soc_dapm_pre, /* machine specific pre widget - exec first */
- snd_soc_dapm_post, /* machine specific post widget - exec last */
- snd_soc_dapm_supply, /* power/clock supply */
- snd_soc_dapm_regulator_supply, /* external regulator */
- snd_soc_dapm_aif_in, /* audio interface input */
- snd_soc_dapm_aif_out, /* audio interface output */
- snd_soc_dapm_siggen, /* signal generator */
- snd_soc_dapm_dai, /* link to DAI structure */
-};
-
-enum snd_soc_dapm_subclass {
- SND_SOC_DAPM_CLASS_INIT = 0,
- SND_SOC_DAPM_CLASS_PCM = 1,
-};
-
-/*
- * DAPM audio route definition.
- *
- * Defines an audio route originating at source via control and finishing
- * at sink.
- */
-struct snd_soc_dapm_route {
- const char *sink;
- const char *control;
- const char *source;
-
- /* Note: currently only supported for links where source is a supply */
- int (*connected)(struct snd_soc_dapm_widget *source,
- struct snd_soc_dapm_widget *sink);
-};
-
-/* dapm audio path between two widgets */
-struct snd_soc_dapm_path {
- const char *name;
- const char *long_name;
-
- /* source (input) and sink (output) widgets */
- struct snd_soc_dapm_widget *source;
- struct snd_soc_dapm_widget *sink;
- struct snd_kcontrol *kcontrol;
-
- /* status */
- u32 connect:1; /* source and sink widgets are connected */
- u32 walked:1; /* path has been walked */
- u32 weak:1; /* path ignored for power management */
-
- int (*connected)(struct snd_soc_dapm_widget *source,
- struct snd_soc_dapm_widget *sink);
-
- struct list_head list_source;
- struct list_head list_sink;
- struct list_head list;
-};
-
-/* dapm widget */
-struct snd_soc_dapm_widget {
- enum snd_soc_dapm_type id;
- const char *name; /* widget name */
- const char *sname; /* stream name */
- struct snd_soc_codec *codec;
- struct snd_soc_platform *platform;
- struct list_head list;
- struct snd_soc_dapm_context *dapm;
-
- void *priv; /* widget specific data */
-
- /* dapm control */
- short reg; /* negative reg = no direct dapm */
- unsigned char shift; /* bits to shift */
- unsigned int saved_value; /* widget saved value */
- unsigned int value; /* widget current value */
- unsigned int mask; /* non-shifted mask */
- unsigned int on_val; /* on state value */
- unsigned int off_val; /* off state value */
- unsigned char power:1; /* block power status */
- unsigned char invert:1; /* invert the power bit */
- unsigned char active:1; /* active stream on DAC, ADC's */
- unsigned char connected:1; /* connected codec pin */
- unsigned char new:1; /* cnew complete */
- unsigned char ext:1; /* has external widgets */
- unsigned char force:1; /* force state */
- unsigned char ignore_suspend:1; /* kept enabled over suspend */
- unsigned char new_power:1; /* power from this run */
- unsigned char power_checked:1; /* power checked this run */
- int subseq; /* sort within widget type */
-
- int (*power_check)(struct snd_soc_dapm_widget *w);
-
- /* external events */
- unsigned short event_flags; /* flags to specify event types */
- int (*event)(struct snd_soc_dapm_widget*, struct snd_kcontrol *, int);
-
- /* kcontrols that relate to this widget */
- int num_kcontrols;
- const struct snd_kcontrol_new *kcontrol_news;
- struct snd_kcontrol **kcontrols;
-
- /* widget input and outputs */
- struct list_head sources;
- struct list_head sinks;
-
- /* used during DAPM updates */
- struct list_head power_list;
- struct list_head dirty;
- int inputs;
- int outputs;
-};
-
-struct snd_soc_dapm_update {
- struct snd_soc_dapm_widget *widget;
- struct snd_kcontrol *kcontrol;
- int reg;
- int mask;
- int val;
-};
-
-/* DAPM context */
-struct snd_soc_dapm_context {
- int n_widgets; /* number of widgets in this context */
- enum snd_soc_bias_level bias_level;
- enum snd_soc_bias_level suspend_bias_level;
- struct delayed_work delayed_work;
- unsigned int idle_bias_off:1; /* Use BIAS_OFF instead of STANDBY */
-
- struct snd_soc_dapm_update *update;
-
- void (*seq_notifier)(struct snd_soc_dapm_context *,
- enum snd_soc_dapm_type, int);
-
- struct device *dev; /* from parent - for debug */
- struct snd_soc_codec *codec; /* parent codec */
- struct snd_soc_platform *platform; /* parent platform */
- struct snd_soc_card *card; /* parent card */
-
- /* used during DAPM updates */
- enum snd_soc_bias_level target_bias_level;
- struct list_head list;
-
- int (*stream_event)(struct snd_soc_dapm_context *dapm, int event);
-
-#ifdef CONFIG_DEBUG_FS
- struct dentry *debugfs_dapm;
-#endif
-};
-
-/* A list of widgets associated with an object, typically a snd_kcontrol */
-struct snd_soc_dapm_widget_list {
- int num_widgets;
- struct snd_soc_dapm_widget *widgets[0];
-};
-
-struct snd_soc_dapm_stats {
- int power_checks;
- int path_checks;
- int neighbour_checks;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/sound/soc.h b/ANDROID_3.4.5/include/sound/soc.h
deleted file mode 100644
index 66fd9bc9..00000000
--- a/ANDROID_3.4.5/include/sound/soc.h
+++ /dev/null
@@ -1,1029 +0,0 @@
-/*
- * linux/sound/soc.h -- ALSA SoC Layer
- *
- * Author: Liam Girdwood
- * Created: Aug 11th 2005
- * Copyright: Wolfson Microelectronics. PLC.
- *
- * 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.
- */
-
-#ifndef __LINUX_SND_SOC_H
-#define __LINUX_SND_SOC_H
-
-#include <linux/platform_device.h>
-#include <linux/types.h>
-#include <linux/notifier.h>
-#include <linux/workqueue.h>
-#include <linux/interrupt.h>
-#include <linux/kernel.h>
-#include <linux/regmap.h>
-#include <sound/core.h>
-#include <sound/pcm.h>
-#include <sound/control.h>
-#include <sound/ac97_codec.h>
-
-/*
- * Convenience kcontrol builders
- */
-#define SOC_DOUBLE_VALUE(xreg, shift_left, shift_right, xmax, xinvert) \
- ((unsigned long)&(struct soc_mixer_control) \
- {.reg = xreg, .rreg = xreg, .shift = shift_left, \
- .rshift = shift_right, .max = xmax, .platform_max = xmax, \
- .invert = xinvert})
-#define SOC_SINGLE_VALUE(xreg, xshift, xmax, xinvert) \
- SOC_DOUBLE_VALUE(xreg, xshift, xshift, xmax, xinvert)
-#define SOC_SINGLE_VALUE_EXT(xreg, xmax, xinvert) \
- ((unsigned long)&(struct soc_mixer_control) \
- {.reg = xreg, .max = xmax, .platform_max = xmax, .invert = xinvert})
-#define SOC_DOUBLE_R_VALUE(xlreg, xrreg, xshift, xmax, xinvert) \
- ((unsigned long)&(struct soc_mixer_control) \
- {.reg = xlreg, .rreg = xrreg, .shift = xshift, .rshift = xshift, \
- .max = xmax, .platform_max = xmax, .invert = xinvert})
-#define SOC_SINGLE(xname, reg, shift, max, invert) \
-{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
- .info = snd_soc_info_volsw, .get = snd_soc_get_volsw,\
- .put = snd_soc_put_volsw, \
- .private_value = SOC_SINGLE_VALUE(reg, shift, max, invert) }
-#define SOC_SINGLE_TLV(xname, reg, shift, max, invert, tlv_array) \
-{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
- .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |\
- SNDRV_CTL_ELEM_ACCESS_READWRITE,\
- .tlv.p = (tlv_array), \
- .info = snd_soc_info_volsw, .get = snd_soc_get_volsw,\
- .put = snd_soc_put_volsw, \
- .private_value = SOC_SINGLE_VALUE(reg, shift, max, invert) }
-#define SOC_DOUBLE(xname, reg, shift_left, shift_right, max, invert) \
-{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = (xname),\
- .info = snd_soc_info_volsw, .get = snd_soc_get_volsw, \
- .put = snd_soc_put_volsw, \
- .private_value = SOC_DOUBLE_VALUE(reg, shift_left, shift_right, \
- max, invert) }
-#define SOC_DOUBLE_R(xname, reg_left, reg_right, xshift, xmax, xinvert) \
-{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = (xname), \
- .info = snd_soc_info_volsw, \
- .get = snd_soc_get_volsw, .put = snd_soc_put_volsw, \
- .private_value = SOC_DOUBLE_R_VALUE(reg_left, reg_right, xshift, \
- xmax, xinvert) }
-#define SOC_DOUBLE_TLV(xname, reg, shift_left, shift_right, max, invert, tlv_array) \
-{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = (xname),\
- .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |\
- SNDRV_CTL_ELEM_ACCESS_READWRITE,\
- .tlv.p = (tlv_array), \
- .info = snd_soc_info_volsw, .get = snd_soc_get_volsw, \
- .put = snd_soc_put_volsw, \
- .private_value = SOC_DOUBLE_VALUE(reg, shift_left, shift_right, \
- max, invert) }
-#define SOC_DOUBLE_R_TLV(xname, reg_left, reg_right, xshift, xmax, xinvert, tlv_array) \
-{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = (xname),\
- .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |\
- SNDRV_CTL_ELEM_ACCESS_READWRITE,\
- .tlv.p = (tlv_array), \
- .info = snd_soc_info_volsw, \
- .get = snd_soc_get_volsw, .put = snd_soc_put_volsw, \
- .private_value = SOC_DOUBLE_R_VALUE(reg_left, reg_right, xshift, \
- xmax, xinvert) }
-#define SOC_DOUBLE_S8_TLV(xname, xreg, xmin, xmax, tlv_array) \
-{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = (xname), \
- .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ | \
- SNDRV_CTL_ELEM_ACCESS_READWRITE, \
- .tlv.p = (tlv_array), \
- .info = snd_soc_info_volsw_s8, .get = snd_soc_get_volsw_s8, \
- .put = snd_soc_put_volsw_s8, \
- .private_value = (unsigned long)&(struct soc_mixer_control) \
- {.reg = xreg, .min = xmin, .max = xmax, \
- .platform_max = xmax} }
-#define SOC_ENUM_DOUBLE(xreg, xshift_l, xshift_r, xmax, xtexts) \
-{ .reg = xreg, .shift_l = xshift_l, .shift_r = xshift_r, \
- .max = xmax, .texts = xtexts }
-#define SOC_ENUM_SINGLE(xreg, xshift, xmax, xtexts) \
- SOC_ENUM_DOUBLE(xreg, xshift, xshift, xmax, xtexts)
-#define SOC_ENUM_SINGLE_EXT(xmax, xtexts) \
-{ .max = xmax, .texts = xtexts }
-#define SOC_VALUE_ENUM_DOUBLE(xreg, xshift_l, xshift_r, xmask, xmax, xtexts, xvalues) \
-{ .reg = xreg, .shift_l = xshift_l, .shift_r = xshift_r, \
- .mask = xmask, .max = xmax, .texts = xtexts, .values = xvalues}
-#define SOC_VALUE_ENUM_SINGLE(xreg, xshift, xmask, xmax, xtexts, xvalues) \
- SOC_VALUE_ENUM_DOUBLE(xreg, xshift, xshift, xmask, xmax, xtexts, xvalues)
-#define SOC_ENUM(xname, xenum) \
-{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname,\
- .info = snd_soc_info_enum_double, \
- .get = snd_soc_get_enum_double, .put = snd_soc_put_enum_double, \
- .private_value = (unsigned long)&xenum }
-#define SOC_VALUE_ENUM(xname, xenum) \
-{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname,\
- .info = snd_soc_info_enum_double, \
- .get = snd_soc_get_value_enum_double, \
- .put = snd_soc_put_value_enum_double, \
- .private_value = (unsigned long)&xenum }
-#define SOC_SINGLE_EXT(xname, xreg, xshift, xmax, xinvert,\
- xhandler_get, xhandler_put) \
-{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
- .info = snd_soc_info_volsw, \
- .get = xhandler_get, .put = xhandler_put, \
- .private_value = SOC_SINGLE_VALUE(xreg, xshift, xmax, xinvert) }
-#define SOC_DOUBLE_EXT(xname, reg, shift_left, shift_right, max, invert,\
- xhandler_get, xhandler_put) \
-{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = (xname),\
- .info = snd_soc_info_volsw, \
- .get = xhandler_get, .put = xhandler_put, \
- .private_value = \
- SOC_DOUBLE_VALUE(reg, shift_left, shift_right, max, invert) }
-#define SOC_SINGLE_EXT_TLV(xname, xreg, xshift, xmax, xinvert,\
- xhandler_get, xhandler_put, tlv_array) \
-{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
- .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |\
- SNDRV_CTL_ELEM_ACCESS_READWRITE,\
- .tlv.p = (tlv_array), \
- .info = snd_soc_info_volsw, \
- .get = xhandler_get, .put = xhandler_put, \
- .private_value = SOC_SINGLE_VALUE(xreg, xshift, xmax, xinvert) }
-#define SOC_DOUBLE_EXT_TLV(xname, xreg, shift_left, shift_right, xmax, xinvert,\
- xhandler_get, xhandler_put, tlv_array) \
-{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = (xname), \
- .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ | \
- SNDRV_CTL_ELEM_ACCESS_READWRITE, \
- .tlv.p = (tlv_array), \
- .info = snd_soc_info_volsw, \
- .get = xhandler_get, .put = xhandler_put, \
- .private_value = SOC_DOUBLE_VALUE(xreg, shift_left, shift_right, \
- xmax, xinvert) }
-#define SOC_DOUBLE_R_EXT_TLV(xname, reg_left, reg_right, xshift, xmax, xinvert,\
- xhandler_get, xhandler_put, tlv_array) \
-{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = (xname), \
- .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ | \
- SNDRV_CTL_ELEM_ACCESS_READWRITE, \
- .tlv.p = (tlv_array), \
- .info = snd_soc_info_volsw, \
- .get = xhandler_get, .put = xhandler_put, \
- .private_value = SOC_DOUBLE_R_VALUE(reg_left, reg_right, xshift, \
- xmax, xinvert) }
-#define SOC_SINGLE_BOOL_EXT(xname, xdata, xhandler_get, xhandler_put) \
-{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
- .info = snd_soc_info_bool_ext, \
- .get = xhandler_get, .put = xhandler_put, \
- .private_value = xdata }
-#define SOC_ENUM_EXT(xname, xenum, xhandler_get, xhandler_put) \
-{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
- .info = snd_soc_info_enum_ext, \
- .get = xhandler_get, .put = xhandler_put, \
- .private_value = (unsigned long)&xenum }
-
-#define SOC_DOUBLE_R_SX_TLV(xname, xreg_left, xreg_right, xshift,\
- xmin, xmax, tlv_array) \
-{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = (xname), \
- .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ | \
- SNDRV_CTL_ELEM_ACCESS_READWRITE, \
- .tlv.p = (tlv_array), \
- .info = snd_soc_info_volsw_2r_sx, \
- .get = snd_soc_get_volsw_2r_sx, \
- .put = snd_soc_put_volsw_2r_sx, \
- .private_value = (unsigned long)&(struct soc_mixer_control) \
- {.reg = xreg_left, \
- .rreg = xreg_right, .shift = xshift, \
- .min = xmin, .max = xmax} }
-
-#define SND_SOC_BYTES(xname, xbase, xregs) \
-{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
- .info = snd_soc_bytes_info, .get = snd_soc_bytes_get, \
- .put = snd_soc_bytes_put, .private_value = \
- ((unsigned long)&(struct soc_bytes) \
- {.base = xbase, .num_regs = xregs }) }
-
-#define SND_SOC_BYTES_MASK(xname, xbase, xregs, xmask) \
-{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
- .info = snd_soc_bytes_info, .get = snd_soc_bytes_get, \
- .put = snd_soc_bytes_put, .private_value = \
- ((unsigned long)&(struct soc_bytes) \
- {.base = xbase, .num_regs = xregs, \
- .mask = xmask }) }
-
-/*
- * Simplified versions of above macros, declaring a struct and calculating
- * ARRAY_SIZE internally
- */
-#define SOC_ENUM_DOUBLE_DECL(name, xreg, xshift_l, xshift_r, xtexts) \
- struct soc_enum name = SOC_ENUM_DOUBLE(xreg, xshift_l, xshift_r, \
- ARRAY_SIZE(xtexts), xtexts)
-#define SOC_ENUM_SINGLE_DECL(name, xreg, xshift, xtexts) \
- SOC_ENUM_DOUBLE_DECL(name, xreg, xshift, xshift, xtexts)
-#define SOC_ENUM_SINGLE_EXT_DECL(name, xtexts) \
- struct soc_enum name = SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(xtexts), xtexts)
-#define SOC_VALUE_ENUM_DOUBLE_DECL(name, xreg, xshift_l, xshift_r, xmask, xtexts, xvalues) \
- struct soc_enum name = SOC_VALUE_ENUM_DOUBLE(xreg, xshift_l, xshift_r, xmask, \
- ARRAY_SIZE(xtexts), xtexts, xvalues)
-#define SOC_VALUE_ENUM_SINGLE_DECL(name, xreg, xshift, xmask, xtexts, xvalues) \
- SOC_VALUE_ENUM_DOUBLE_DECL(name, xreg, xshift, xshift, xmask, xtexts, xvalues)
-
-/*
- * Component probe and remove ordering levels for components with runtime
- * dependencies.
- */
-#define SND_SOC_COMP_ORDER_FIRST -2
-#define SND_SOC_COMP_ORDER_EARLY -1
-#define SND_SOC_COMP_ORDER_NORMAL 0
-#define SND_SOC_COMP_ORDER_LATE 1
-#define SND_SOC_COMP_ORDER_LAST 2
-
-/*
- * Bias levels
- *
- * @ON: Bias is fully on for audio playback and capture operations.
- * @PREPARE: Prepare for audio operations. Called before DAPM switching for
- * stream start and stop operations.
- * @STANDBY: Low power standby state when no playback/capture operations are
- * in progress. NOTE: The transition time between STANDBY and ON
- * should be as fast as possible and no longer than 10ms.
- * @OFF: Power Off. No restrictions on transition times.
- */
-enum snd_soc_bias_level {
- SND_SOC_BIAS_OFF = 0,
- SND_SOC_BIAS_STANDBY = 1,
- SND_SOC_BIAS_PREPARE = 2,
- SND_SOC_BIAS_ON = 3,
-};
-
-struct device_node;
-struct snd_jack;
-struct snd_soc_card;
-struct snd_soc_pcm_stream;
-struct snd_soc_ops;
-struct snd_soc_pcm_runtime;
-struct snd_soc_dai;
-struct snd_soc_dai_driver;
-struct snd_soc_platform;
-struct snd_soc_dai_link;
-struct snd_soc_platform_driver;
-struct snd_soc_codec;
-struct snd_soc_codec_driver;
-struct soc_enum;
-struct snd_soc_jack;
-struct snd_soc_jack_zone;
-struct snd_soc_jack_pin;
-struct snd_soc_cache_ops;
-#include <sound/soc-dapm.h>
-
-#ifdef CONFIG_GPIOLIB
-struct snd_soc_jack_gpio;
-#endif
-
-typedef int (*hw_write_t)(void *,const char* ,int);
-
-extern struct snd_ac97_bus_ops soc_ac97_ops;
-
-enum snd_soc_control_type {
- SND_SOC_I2C = 1,
- SND_SOC_SPI,
- SND_SOC_REGMAP,
-};
-
-enum snd_soc_compress_type {
- SND_SOC_FLAT_COMPRESSION = 1,
-};
-
-enum snd_soc_pcm_subclass {
- SND_SOC_PCM_CLASS_PCM = 0,
- SND_SOC_PCM_CLASS_BE = 1,
-};
-
-enum snd_soc_card_subclass {
- SND_SOC_CARD_CLASS_INIT = 0,
- SND_SOC_CARD_CLASS_PCM = 1,
-};
-
-int snd_soc_codec_set_sysclk(struct snd_soc_codec *codec, int clk_id,
- int source, unsigned int freq, int dir);
-int snd_soc_codec_set_pll(struct snd_soc_codec *codec, int pll_id, int source,
- unsigned int freq_in, unsigned int freq_out);
-
-int snd_soc_register_card(struct snd_soc_card *card);
-int snd_soc_unregister_card(struct snd_soc_card *card);
-int snd_soc_suspend(struct device *dev);
-int snd_soc_resume(struct device *dev);
-int snd_soc_poweroff(struct device *dev);
-int snd_soc_register_platform(struct device *dev,
- struct snd_soc_platform_driver *platform_drv);
-void snd_soc_unregister_platform(struct device *dev);
-int snd_soc_register_codec(struct device *dev,
- const struct snd_soc_codec_driver *codec_drv,
- struct snd_soc_dai_driver *dai_drv, int num_dai);
-void snd_soc_unregister_codec(struct device *dev);
-int snd_soc_codec_volatile_register(struct snd_soc_codec *codec,
- unsigned int reg);
-int snd_soc_codec_readable_register(struct snd_soc_codec *codec,
- unsigned int reg);
-int snd_soc_codec_writable_register(struct snd_soc_codec *codec,
- unsigned int reg);
-int snd_soc_codec_set_cache_io(struct snd_soc_codec *codec,
- int addr_bits, int data_bits,
- enum snd_soc_control_type control);
-int snd_soc_cache_sync(struct snd_soc_codec *codec);
-int snd_soc_cache_init(struct snd_soc_codec *codec);
-int snd_soc_cache_exit(struct snd_soc_codec *codec);
-int snd_soc_cache_write(struct snd_soc_codec *codec,
- unsigned int reg, unsigned int value);
-int snd_soc_cache_read(struct snd_soc_codec *codec,
- unsigned int reg, unsigned int *value);
-int snd_soc_default_volatile_register(struct snd_soc_codec *codec,
- unsigned int reg);
-int snd_soc_default_readable_register(struct snd_soc_codec *codec,
- unsigned int reg);
-int snd_soc_default_writable_register(struct snd_soc_codec *codec,
- unsigned int reg);
-int snd_soc_platform_read(struct snd_soc_platform *platform,
- unsigned int reg);
-int snd_soc_platform_write(struct snd_soc_platform *platform,
- unsigned int reg, unsigned int val);
-int soc_new_pcm(struct snd_soc_pcm_runtime *rtd, int num);
-
-/* Utility functions to get clock rates from various things */
-int snd_soc_calc_frame_size(int sample_size, int channels, int tdm_slots);
-int snd_soc_params_to_frame_size(struct snd_pcm_hw_params *params);
-int snd_soc_calc_bclk(int fs, int sample_size, int channels, int tdm_slots);
-int snd_soc_params_to_bclk(struct snd_pcm_hw_params *parms);
-
-/* set runtime hw params */
-int snd_soc_set_runtime_hwparams(struct snd_pcm_substream *substream,
- const struct snd_pcm_hardware *hw);
-
-/* Jack reporting */
-int snd_soc_jack_new(struct snd_soc_codec *codec, const char *id, int type,
- struct snd_soc_jack *jack);
-void snd_soc_jack_report(struct snd_soc_jack *jack, int status, int mask);
-int snd_soc_jack_add_pins(struct snd_soc_jack *jack, int count,
- struct snd_soc_jack_pin *pins);
-void snd_soc_jack_notifier_register(struct snd_soc_jack *jack,
- struct notifier_block *nb);
-void snd_soc_jack_notifier_unregister(struct snd_soc_jack *jack,
- struct notifier_block *nb);
-int snd_soc_jack_add_zones(struct snd_soc_jack *jack, int count,
- struct snd_soc_jack_zone *zones);
-int snd_soc_jack_get_type(struct snd_soc_jack *jack, int micbias_voltage);
-#ifdef CONFIG_GPIOLIB
-int snd_soc_jack_add_gpios(struct snd_soc_jack *jack, int count,
- struct snd_soc_jack_gpio *gpios);
-void snd_soc_jack_free_gpios(struct snd_soc_jack *jack, int count,
- struct snd_soc_jack_gpio *gpios);
-#endif
-
-/* codec register bit access */
-int snd_soc_update_bits(struct snd_soc_codec *codec, unsigned short reg,
- unsigned int mask, unsigned int value);
-int snd_soc_update_bits_locked(struct snd_soc_codec *codec,
- unsigned short reg, unsigned int mask,
- unsigned int value);
-int snd_soc_test_bits(struct snd_soc_codec *codec, unsigned short reg,
- unsigned int mask, unsigned int value);
-
-int snd_soc_new_ac97_codec(struct snd_soc_codec *codec,
- struct snd_ac97_bus_ops *ops, int num);
-void snd_soc_free_ac97_codec(struct snd_soc_codec *codec);
-
-/*
- *Controls
- */
-struct snd_kcontrol *snd_soc_cnew(const struct snd_kcontrol_new *_template,
- void *data, const char *long_name,
- const char *prefix);
-int snd_soc_add_codec_controls(struct snd_soc_codec *codec,
- const struct snd_kcontrol_new *controls, int num_controls);
-int snd_soc_add_platform_controls(struct snd_soc_platform *platform,
- const struct snd_kcontrol_new *controls, int num_controls);
-int snd_soc_add_card_controls(struct snd_soc_card *soc_card,
- const struct snd_kcontrol_new *controls, int num_controls);
-int snd_soc_add_dai_controls(struct snd_soc_dai *dai,
- const struct snd_kcontrol_new *controls, int num_controls);
-int snd_soc_info_enum_double(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_info *uinfo);
-int snd_soc_info_enum_ext(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_info *uinfo);
-int snd_soc_get_enum_double(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_value *ucontrol);
-int snd_soc_put_enum_double(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_value *ucontrol);
-int snd_soc_get_value_enum_double(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_value *ucontrol);
-int snd_soc_put_value_enum_double(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_value *ucontrol);
-int snd_soc_info_volsw(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_info *uinfo);
-int snd_soc_info_volsw_ext(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_info *uinfo);
-#define snd_soc_info_bool_ext snd_ctl_boolean_mono_info
-int snd_soc_get_volsw(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_value *ucontrol);
-int snd_soc_put_volsw(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_value *ucontrol);
-#define snd_soc_get_volsw_2r snd_soc_get_volsw
-#define snd_soc_put_volsw_2r snd_soc_put_volsw
-int snd_soc_info_volsw_s8(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_info *uinfo);
-int snd_soc_get_volsw_s8(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_value *ucontrol);
-int snd_soc_put_volsw_s8(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_value *ucontrol);
-int snd_soc_limit_volume(struct snd_soc_codec *codec,
- const char *name, int max);
-int snd_soc_info_volsw_2r_sx(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_info *uinfo);
-int snd_soc_get_volsw_2r_sx(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_value *ucontrol);
-int snd_soc_put_volsw_2r_sx(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_value *ucontrol);
-int snd_soc_bytes_info(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_info *uinfo);
-int snd_soc_bytes_get(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_value *ucontrol);
-int snd_soc_bytes_put(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_value *ucontrol);
-
-
-/**
- * struct snd_soc_reg_access - Describes whether a given register is
- * readable, writable or volatile.
- *
- * @reg: the register number
- * @read: whether this register is readable
- * @write: whether this register is writable
- * @vol: whether this register is volatile
- */
-struct snd_soc_reg_access {
- u16 reg;
- u16 read;
- u16 write;
- u16 vol;
-};
-
-/**
- * struct snd_soc_jack_pin - Describes a pin to update based on jack detection
- *
- * @pin: name of the pin to update
- * @mask: bits to check for in reported jack status
- * @invert: if non-zero then pin is enabled when status is not reported
- */
-struct snd_soc_jack_pin {
- struct list_head list;
- const char *pin;
- int mask;
- bool invert;
-};
-
-/**
- * struct snd_soc_jack_zone - Describes voltage zones of jack detection
- *
- * @min_mv: start voltage in mv
- * @max_mv: end voltage in mv
- * @jack_type: type of jack that is expected for this voltage
- * @debounce_time: debounce_time for jack, codec driver should wait for this
- * duration before reading the adc for voltages
- * @:list: list container
- */
-struct snd_soc_jack_zone {
- unsigned int min_mv;
- unsigned int max_mv;
- unsigned int jack_type;
- unsigned int debounce_time;
- struct list_head list;
-};
-
-/**
- * struct snd_soc_jack_gpio - Describes a gpio pin for jack detection
- *
- * @gpio: gpio number
- * @name: gpio name
- * @report: value to report when jack detected
- * @invert: report presence in low state
- * @debouce_time: debouce time in ms
- * @wake: enable as wake source
- * @jack_status_check: callback function which overrides the detection
- * to provide more complex checks (eg, reading an
- * ADC).
- */
-#ifdef CONFIG_GPIOLIB
-struct snd_soc_jack_gpio {
- unsigned int gpio;
- const char *name;
- int report;
- int invert;
- int debounce_time;
- bool wake;
-
- struct snd_soc_jack *jack;
- struct delayed_work work;
-
- int (*jack_status_check)(void);
-};
-#endif
-
-struct snd_soc_jack {
- struct snd_jack *jack;
- struct snd_soc_codec *codec;
- struct list_head pins;
- int status;
- struct blocking_notifier_head notifier;
- struct list_head jack_zones;
-};
-
-/* SoC PCM stream information */
-struct snd_soc_pcm_stream {
- const char *stream_name;
- u64 formats; /* SNDRV_PCM_FMTBIT_* */
- unsigned int rates; /* SNDRV_PCM_RATE_* */
- unsigned int rate_min; /* min rate */
- unsigned int rate_max; /* max rate */
- unsigned int channels_min; /* min channels */
- unsigned int channels_max; /* max channels */
- unsigned int sig_bits; /* number of bits of content */
-};
-
-/* SoC audio ops */
-struct snd_soc_ops {
- int (*startup)(struct snd_pcm_substream *);
- void (*shutdown)(struct snd_pcm_substream *);
- int (*hw_params)(struct snd_pcm_substream *, struct snd_pcm_hw_params *);
- int (*hw_free)(struct snd_pcm_substream *);
- int (*prepare)(struct snd_pcm_substream *);
- int (*trigger)(struct snd_pcm_substream *, int);
-};
-
-/* SoC cache ops */
-struct snd_soc_cache_ops {
- const char *name;
- enum snd_soc_compress_type id;
- int (*init)(struct snd_soc_codec *codec);
- int (*exit)(struct snd_soc_codec *codec);
- int (*read)(struct snd_soc_codec *codec, unsigned int reg,
- unsigned int *value);
- int (*write)(struct snd_soc_codec *codec, unsigned int reg,
- unsigned int value);
- int (*sync)(struct snd_soc_codec *codec);
-};
-
-/* SoC Audio Codec device */
-struct snd_soc_codec {
- const char *name;
- const char *name_prefix;
- int id;
- struct device *dev;
- const struct snd_soc_codec_driver *driver;
-
- struct mutex mutex;
- struct snd_soc_card *card;
- struct list_head list;
- struct list_head card_list;
- int num_dai;
- enum snd_soc_compress_type compress_type;
- size_t reg_size; /* reg_cache_size * reg_word_size */
- int (*volatile_register)(struct snd_soc_codec *, unsigned int);
- int (*readable_register)(struct snd_soc_codec *, unsigned int);
- int (*writable_register)(struct snd_soc_codec *, unsigned int);
-
- /* runtime */
- struct snd_ac97 *ac97; /* for ad-hoc ac97 devices */
- unsigned int active;
- unsigned int cache_bypass:1; /* Suppress access to the cache */
- unsigned int suspended:1; /* Codec is in suspend PM state */
- unsigned int probed:1; /* Codec has been probed */
- unsigned int ac97_registered:1; /* Codec has been AC97 registered */
- unsigned int ac97_created:1; /* Codec has been created by SoC */
- unsigned int sysfs_registered:1; /* codec has been sysfs registered */
- unsigned int cache_init:1; /* codec cache has been initialized */
- unsigned int using_regmap:1; /* using regmap access */
- u32 cache_only; /* Suppress writes to hardware */
- u32 cache_sync; /* Cache needs to be synced to hardware */
-
- /* codec IO */
- void *control_data; /* codec control (i2c/3wire) data */
- enum snd_soc_control_type control_type;
- hw_write_t hw_write;
- unsigned int (*hw_read)(struct snd_soc_codec *, unsigned int);
- unsigned int (*read)(struct snd_soc_codec *, unsigned int);
- int (*write)(struct snd_soc_codec *, unsigned int, unsigned int);
- int (*bulk_write_raw)(struct snd_soc_codec *, unsigned int, const void *, size_t);
- void *reg_cache;
- const void *reg_def_copy;
- const struct snd_soc_cache_ops *cache_ops;
- struct mutex cache_rw_mutex;
- int val_bytes;
-
- /* dapm */
- struct snd_soc_dapm_context dapm;
- unsigned int ignore_pmdown_time:1; /* pmdown_time is ignored at stop */
-
-#ifdef CONFIG_DEBUG_FS
- struct dentry *debugfs_codec_root;
- struct dentry *debugfs_reg;
- struct dentry *debugfs_dapm;
-#endif
-};
-
-/* codec driver */
-struct snd_soc_codec_driver {
-
- /* driver ops */
- int (*probe)(struct snd_soc_codec *);
- int (*remove)(struct snd_soc_codec *);
- int (*suspend)(struct snd_soc_codec *);
- int (*resume)(struct snd_soc_codec *);
-
- /* Default control and setup, added after probe() is run */
- const struct snd_kcontrol_new *controls;
- int num_controls;
- const struct snd_soc_dapm_widget *dapm_widgets;
- int num_dapm_widgets;
- const struct snd_soc_dapm_route *dapm_routes;
- int num_dapm_routes;
-
- /* codec wide operations */
- int (*set_sysclk)(struct snd_soc_codec *codec,
- int clk_id, int source, unsigned int freq, int dir);
- int (*set_pll)(struct snd_soc_codec *codec, int pll_id, int source,
- unsigned int freq_in, unsigned int freq_out);
-
- /* codec IO */
- unsigned int (*read)(struct snd_soc_codec *, unsigned int);
- int (*write)(struct snd_soc_codec *, unsigned int, unsigned int);
- int (*display_register)(struct snd_soc_codec *, char *,
- size_t, unsigned int);
- int (*volatile_register)(struct snd_soc_codec *, unsigned int);
- int (*readable_register)(struct snd_soc_codec *, unsigned int);
- int (*writable_register)(struct snd_soc_codec *, unsigned int);
- unsigned int reg_cache_size;
- short reg_cache_step;
- short reg_word_size;
- const void *reg_cache_default;
- short reg_access_size;
- const struct snd_soc_reg_access *reg_access_default;
- enum snd_soc_compress_type compress_type;
-
- /* codec bias level */
- int (*set_bias_level)(struct snd_soc_codec *,
- enum snd_soc_bias_level level);
- bool idle_bias_off;
-
- void (*seq_notifier)(struct snd_soc_dapm_context *,
- enum snd_soc_dapm_type, int);
-
- /* codec stream completion event */
- int (*stream_event)(struct snd_soc_dapm_context *dapm, int event);
-
- bool ignore_pmdown_time; /* Doesn't benefit from pmdown delay */
-
- /* probe ordering - for components with runtime dependencies */
- int probe_order;
- int remove_order;
-};
-
-/* SoC platform interface */
-struct snd_soc_platform_driver {
-
- int (*probe)(struct snd_soc_platform *);
- int (*remove)(struct snd_soc_platform *);
- int (*suspend)(struct snd_soc_dai *dai);
- int (*resume)(struct snd_soc_dai *dai);
-
- /* pcm creation and destruction */
- int (*pcm_new)(struct snd_soc_pcm_runtime *);
- void (*pcm_free)(struct snd_pcm *);
-
- /* Default control and setup, added after probe() is run */
- const struct snd_kcontrol_new *controls;
- int num_controls;
- const struct snd_soc_dapm_widget *dapm_widgets;
- int num_dapm_widgets;
- const struct snd_soc_dapm_route *dapm_routes;
- int num_dapm_routes;
-
- /*
- * For platform caused delay reporting.
- * Optional.
- */
- snd_pcm_sframes_t (*delay)(struct snd_pcm_substream *,
- struct snd_soc_dai *);
-
- /* platform stream ops */
- struct snd_pcm_ops *ops;
-
- /* platform stream completion event */
- int (*stream_event)(struct snd_soc_dapm_context *dapm, int event);
-
- /* probe ordering - for components with runtime dependencies */
- int probe_order;
- int remove_order;
-
- /* platform IO - used for platform DAPM */
- unsigned int (*read)(struct snd_soc_platform *, unsigned int);
- int (*write)(struct snd_soc_platform *, unsigned int, unsigned int);
-};
-
-struct snd_soc_platform {
- const char *name;
- int id;
- struct device *dev;
- struct snd_soc_platform_driver *driver;
- struct mutex mutex;
-
- unsigned int suspended:1; /* platform is suspended */
- unsigned int probed:1;
-
- struct snd_soc_card *card;
- struct list_head list;
- struct list_head card_list;
-
- struct snd_soc_dapm_context dapm;
-
-#ifdef CONFIG_DEBUG_FS
- struct dentry *debugfs_platform_root;
- struct dentry *debugfs_dapm;
-#endif
-};
-
-struct snd_soc_dai_link {
- /* config - must be set by machine driver */
- const char *name; /* Codec name */
- const char *stream_name; /* Stream name */
- const char *codec_name; /* for multi-codec */
- const struct device_node *codec_of_node;
- const char *platform_name; /* for multi-platform */
- const struct device_node *platform_of_node;
- const char *cpu_dai_name;
- const struct device_node *cpu_dai_of_node;
- const char *codec_dai_name;
-
- unsigned int dai_fmt; /* format to set on init */
-
- /* Keep DAI active over suspend */
- unsigned int ignore_suspend:1;
-
- /* Symmetry requirements */
- unsigned int symmetric_rates:1;
-
- /* pmdown_time is ignored at stop */
- unsigned int ignore_pmdown_time:1;
-
- /* codec/machine specific init - e.g. add machine controls */
- int (*init)(struct snd_soc_pcm_runtime *rtd);
-
- /* machine stream operations */
- struct snd_soc_ops *ops;
-};
-
-struct snd_soc_codec_conf {
- const char *dev_name;
-
- /*
- * optional map of kcontrol, widget and path name prefixes that are
- * associated per device
- */
- const char *name_prefix;
-
- /*
- * set this to the desired compression type if you want to
- * override the one supplied in codec->driver->compress_type
- */
- enum snd_soc_compress_type compress_type;
-};
-
-struct snd_soc_aux_dev {
- const char *name; /* Codec name */
- const char *codec_name; /* for multi-codec */
-
- /* codec/machine specific init - e.g. add machine controls */
- int (*init)(struct snd_soc_dapm_context *dapm);
-};
-
-/* SoC card */
-struct snd_soc_card {
- const char *name;
- const char *long_name;
- const char *driver_name;
- struct device *dev;
- struct snd_card *snd_card;
- struct module *owner;
-
- struct list_head list;
- struct mutex mutex;
- struct mutex dapm_mutex;
-
- bool instantiated;
-
- int (*probe)(struct snd_soc_card *card);
- int (*late_probe)(struct snd_soc_card *card);
- int (*remove)(struct snd_soc_card *card);
-
- /* the pre and post PM functions are used to do any PM work before and
- * after the codec and DAI's do any PM work. */
- int (*suspend_pre)(struct snd_soc_card *card);
- int (*suspend_post)(struct snd_soc_card *card);
- int (*resume_pre)(struct snd_soc_card *card);
- int (*resume_post)(struct snd_soc_card *card);
-
- /* callbacks */
- int (*set_bias_level)(struct snd_soc_card *,
- struct snd_soc_dapm_context *dapm,
- enum snd_soc_bias_level level);
- int (*set_bias_level_post)(struct snd_soc_card *,
- struct snd_soc_dapm_context *dapm,
- enum snd_soc_bias_level level);
-
- long pmdown_time;
-
- /* CPU <--> Codec DAI links */
- struct snd_soc_dai_link *dai_link;
- int num_links;
- struct snd_soc_pcm_runtime *rtd;
- int num_rtd;
-
- /* optional codec specific configuration */
- struct snd_soc_codec_conf *codec_conf;
- int num_configs;
-
- /*
- * optional auxiliary devices such as amplifiers or codecs with DAI
- * link unused
- */
- struct snd_soc_aux_dev *aux_dev;
- int num_aux_devs;
- struct snd_soc_pcm_runtime *rtd_aux;
- int num_aux_rtd;
-
- const struct snd_kcontrol_new *controls;
- int num_controls;
-
- /*
- * Card-specific routes and widgets.
- */
- const struct snd_soc_dapm_widget *dapm_widgets;
- int num_dapm_widgets;
- const struct snd_soc_dapm_route *dapm_routes;
- int num_dapm_routes;
- bool fully_routed;
-
- struct work_struct deferred_resume_work;
-
- /* lists of probed devices belonging to this card */
- struct list_head codec_dev_list;
- struct list_head platform_dev_list;
- struct list_head dai_dev_list;
-
- struct list_head widgets;
- struct list_head paths;
- struct list_head dapm_list;
- struct list_head dapm_dirty;
-
- /* Generic DAPM context for the card */
- struct snd_soc_dapm_context dapm;
- struct snd_soc_dapm_stats dapm_stats;
-
-#ifdef CONFIG_DEBUG_FS
- struct dentry *debugfs_card_root;
- struct dentry *debugfs_pop_time;
-#endif
- u32 pop_time;
-
- void *drvdata;
-};
-
-/* SoC machine DAI configuration, glues a codec and cpu DAI together */
-struct snd_soc_pcm_runtime {
- struct device *dev;
- struct snd_soc_card *card;
- struct snd_soc_dai_link *dai_link;
- struct mutex pcm_mutex;
- enum snd_soc_pcm_subclass pcm_subclass;
- struct snd_pcm_ops ops;
-
- unsigned int complete:1;
- unsigned int dev_registered:1;
-
- long pmdown_time;
-
- /* runtime devices */
- struct snd_pcm *pcm;
- struct snd_soc_codec *codec;
- struct snd_soc_platform *platform;
- struct snd_soc_dai *codec_dai;
- struct snd_soc_dai *cpu_dai;
-
- struct delayed_work delayed_work;
-};
-
-/* mixer control */
-struct soc_mixer_control {
- int min, max, platform_max;
- unsigned int reg, rreg, shift, rshift, invert;
-};
-
-struct soc_bytes {
- int base;
- int num_regs;
- u32 mask;
-};
-
-/* enumerated kcontrol */
-struct soc_enum {
- unsigned short reg;
- unsigned short reg2;
- unsigned char shift_l;
- unsigned char shift_r;
- unsigned int max;
- unsigned int mask;
- const char * const *texts;
- const unsigned int *values;
- void *dapm;
-};
-
-/* codec IO */
-unsigned int snd_soc_read(struct snd_soc_codec *codec, unsigned int reg);
-unsigned int snd_soc_write(struct snd_soc_codec *codec,
- unsigned int reg, unsigned int val);
-unsigned int snd_soc_bulk_write_raw(struct snd_soc_codec *codec,
- unsigned int reg, const void *data, size_t len);
-
-/* device driver data */
-
-static inline void snd_soc_card_set_drvdata(struct snd_soc_card *card,
- void *data)
-{
- card->drvdata = data;
-}
-
-static inline void *snd_soc_card_get_drvdata(struct snd_soc_card *card)
-{
- return card->drvdata;
-}
-
-static inline void snd_soc_codec_set_drvdata(struct snd_soc_codec *codec,
- void *data)
-{
- dev_set_drvdata(codec->dev, data);
-}
-
-static inline void *snd_soc_codec_get_drvdata(struct snd_soc_codec *codec)
-{
- return dev_get_drvdata(codec->dev);
-}
-
-static inline void snd_soc_platform_set_drvdata(struct snd_soc_platform *platform,
- void *data)
-{
- dev_set_drvdata(platform->dev, data);
-}
-
-static inline void *snd_soc_platform_get_drvdata(struct snd_soc_platform *platform)
-{
- return dev_get_drvdata(platform->dev);
-}
-
-static inline void snd_soc_pcm_set_drvdata(struct snd_soc_pcm_runtime *rtd,
- void *data)
-{
- dev_set_drvdata(rtd->dev, data);
-}
-
-static inline void *snd_soc_pcm_get_drvdata(struct snd_soc_pcm_runtime *rtd)
-{
- return dev_get_drvdata(rtd->dev);
-}
-
-static inline void snd_soc_initialize_card_lists(struct snd_soc_card *card)
-{
- INIT_LIST_HEAD(&card->dai_dev_list);
- INIT_LIST_HEAD(&card->codec_dev_list);
- INIT_LIST_HEAD(&card->platform_dev_list);
- INIT_LIST_HEAD(&card->widgets);
- INIT_LIST_HEAD(&card->paths);
- INIT_LIST_HEAD(&card->dapm_list);
-}
-
-static inline bool snd_soc_volsw_is_stereo(struct soc_mixer_control *mc)
-{
- if (mc->reg == mc->rreg && mc->shift == mc->rshift)
- return 0;
- /*
- * mc->reg == mc->rreg && mc->shift != mc->rshift, or
- * mc->reg != mc->rreg means that the control is
- * stereo (bits in one register or in two registers)
- */
- return 1;
-}
-
-int snd_soc_util_init(void);
-void snd_soc_util_exit(void);
-
-int snd_soc_of_parse_card_name(struct snd_soc_card *card,
- const char *propname);
-int snd_soc_of_parse_audio_routing(struct snd_soc_card *card,
- const char *propname);
-
-#include <sound/soc-dai.h>
-
-#ifdef CONFIG_DEBUG_FS
-extern struct dentry *snd_soc_debugfs_root;
-#endif
-
-extern const struct dev_pm_ops snd_soc_pm_ops;
-
-#endif
diff --git a/ANDROID_3.4.5/include/sound/soundfont.h b/ANDROID_3.4.5/include/sound/soundfont.h
deleted file mode 100644
index 679df057..00000000
--- a/ANDROID_3.4.5/include/sound/soundfont.h
+++ /dev/null
@@ -1,129 +0,0 @@
-#ifndef __SOUND_SOUNDFONT_H
-#define __SOUND_SOUNDFONT_H
-
-/*
- * Soundfont defines and definitions.
- *
- * Copyright (C) 1999 Steve Ratcliffe
- * Copyright (c) 1999-2000 Takashi iwai <tiwai@suse.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
- */
-
-#include "sfnt_info.h"
-#include "util_mem.h"
-
-#define SF_MAX_INSTRUMENTS 128 /* maximum instrument number */
-#define SF_MAX_PRESETS 256 /* drums are mapped from 128 to 256 */
-#define SF_IS_DRUM_BANK(z) ((z) == 128)
-
-struct snd_sf_zone {
- struct snd_sf_zone *next; /* Link to next */
- unsigned char bank; /* Midi bank for this zone */
- unsigned char instr; /* Midi program for this zone */
- unsigned char mapped; /* True if mapped to something else */
-
- struct soundfont_voice_info v; /* All the soundfont parameters */
- int counter;
- struct snd_sf_sample *sample; /* Link to sample */
-
- /* The following deals with preset numbers (programs) */
- struct snd_sf_zone *next_instr; /* Next zone of this instrument */
- struct snd_sf_zone *next_zone; /* Next zone in play list */
-};
-
-struct snd_sf_sample {
- struct soundfont_sample_info v;
- int counter;
- struct snd_util_memblk *block; /* allocated data block */
- struct snd_sf_sample *next;
-};
-
-/*
- * This represents all the information relating to a soundfont.
- */
-struct snd_soundfont {
- struct snd_soundfont *next; /* Link to next */
- /*struct snd_soundfont *prev;*/ /* Link to previous */
- short id; /* file id */
- short type; /* font type */
- unsigned char name[SNDRV_SFNT_PATCH_NAME_LEN]; /* identifier */
- struct snd_sf_zone *zones; /* Font information */
- struct snd_sf_sample *samples; /* The sample headers */
-};
-
-/*
- * Type of the sample access callback
- */
-struct snd_sf_callback {
- void *private_data;
- int (*sample_new)(void *private_data, struct snd_sf_sample *sp,
- struct snd_util_memhdr *hdr,
- const void __user *buf, long count);
- int (*sample_free)(void *private_data, struct snd_sf_sample *sp,
- struct snd_util_memhdr *hdr);
- void (*sample_reset)(void *private);
-};
-
-/*
- * List of soundfonts.
- */
-struct snd_sf_list {
- struct snd_soundfont *currsf; /* The currently open soundfont */
- int open_client; /* client pointer for lock */
- int mem_used; /* used memory size */
- struct snd_sf_zone *presets[SF_MAX_PRESETS];
- struct snd_soundfont *fonts; /* The list of soundfonts */
- int fonts_size; /* number of fonts allocated */
- int zone_counter; /* last allocated time for zone */
- int sample_counter; /* last allocated time for sample */
- int zone_locked; /* locked time for zone */
- int sample_locked; /* locked time for sample */
- struct snd_sf_callback callback; /* callback functions */
- int presets_locked;
- struct mutex presets_mutex;
- spinlock_t lock;
- struct snd_util_memhdr *memhdr;
-};
-
-/* Prototypes for soundfont.c */
-int snd_soundfont_load(struct snd_sf_list *sflist, const void __user *data,
- long count, int client);
-int snd_soundfont_load_guspatch(struct snd_sf_list *sflist, const char __user *data,
- long count, int client);
-int snd_soundfont_close_check(struct snd_sf_list *sflist, int client);
-
-struct snd_sf_list *snd_sf_new(struct snd_sf_callback *callback,
- struct snd_util_memhdr *hdr);
-void snd_sf_free(struct snd_sf_list *sflist);
-
-int snd_soundfont_remove_samples(struct snd_sf_list *sflist);
-int snd_soundfont_remove_unlocked(struct snd_sf_list *sflist);
-
-int snd_soundfont_search_zone(struct snd_sf_list *sflist, int *notep, int vel,
- int preset, int bank,
- int def_preset, int def_bank,
- struct snd_sf_zone **table, int max_layers);
-
-/* Parameter conversions */
-int snd_sf_calc_parm_hold(int msec);
-int snd_sf_calc_parm_attack(int msec);
-int snd_sf_calc_parm_decay(int msec);
-#define snd_sf_calc_parm_delay(msec) (0x8000 - (msec) * 1000 / 725)
-extern int snd_sf_vol_table[128];
-int snd_sf_linear_to_log(unsigned int amount, int offset, int ratio);
-
-
-#endif /* __SOUND_SOUNDFONT_H */
diff --git a/ANDROID_3.4.5/include/sound/sta32x.h b/ANDROID_3.4.5/include/sound/sta32x.h
deleted file mode 100644
index 8d93b035..00000000
--- a/ANDROID_3.4.5/include/sound/sta32x.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Platform data for ST STA32x ASoC codec driver.
- *
- * Copyright: 2011 Raumfeld GmbH
- * Author: Johannes Stezenbach <js@sig21.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.
- */
-#ifndef __LINUX_SND__STA32X_H
-#define __LINUX_SND__STA32X_H
-
-#define STA32X_OCFG_2CH 0
-#define STA32X_OCFG_2_1CH 1
-#define STA32X_OCFG_1CH 3
-
-#define STA32X_OM_CH1 0
-#define STA32X_OM_CH2 1
-#define STA32X_OM_CH3 2
-
-#define STA32X_THERMAL_ADJUSTMENT_ENABLE 1
-#define STA32X_THERMAL_RECOVERY_ENABLE 2
-
-struct sta32x_platform_data {
- int output_conf;
- int ch1_output_mapping;
- int ch2_output_mapping;
- int ch3_output_mapping;
- int thermal_conf;
- int needs_esd_watchdog;
-};
-
-#endif /* __LINUX_SND__STA32X_H */
diff --git a/ANDROID_3.4.5/include/sound/tea575x-tuner.h b/ANDROID_3.4.5/include/sound/tea575x-tuner.h
deleted file mode 100644
index ec3f910a..00000000
--- a/ANDROID_3.4.5/include/sound/tea575x-tuner.h
+++ /dev/null
@@ -1,68 +0,0 @@
-#ifndef __SOUND_TEA575X_TUNER_H
-#define __SOUND_TEA575X_TUNER_H
-
-/*
- * ALSA driver for TEA5757/5759 Philips AM/FM tuner chips
- *
- * Copyright (c) 2004 Jaroslav Kysela <perex@perex.cz>
- *
- * 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/videodev2.h>
-#include <media/v4l2-ctrls.h>
-#include <media/v4l2-dev.h>
-#include <media/v4l2-device.h>
-
-#define TEA575X_FMIF 10700
-
-#define TEA575X_DATA (1 << 0)
-#define TEA575X_CLK (1 << 1)
-#define TEA575X_WREN (1 << 2)
-#define TEA575X_MOST (1 << 3)
-
-struct snd_tea575x;
-
-struct snd_tea575x_ops {
- void (*set_pins)(struct snd_tea575x *tea, u8 pins);
- u8 (*get_pins)(struct snd_tea575x *tea);
- void (*set_direction)(struct snd_tea575x *tea, bool output);
-};
-
-struct snd_tea575x {
- struct v4l2_device *v4l2_dev;
- struct video_device vd; /* video device */
- int radio_nr; /* radio_nr */
- bool tea5759; /* 5759 chip is present */
- bool cannot_read_data; /* Device cannot read the data pin */
- bool mute; /* Device is muted? */
- bool stereo; /* receiving stereo */
- bool tuned; /* tuned to a station */
- unsigned int val; /* hw value */
- u32 freq; /* frequency */
- struct mutex mutex;
- struct snd_tea575x_ops *ops;
- void *private_data;
- u8 card[32];
- u8 bus_info[32];
- struct v4l2_ctrl_handler ctrl_handler;
- int (*ext_init)(struct snd_tea575x *tea);
-};
-
-int snd_tea575x_init(struct snd_tea575x *tea);
-void snd_tea575x_exit(struct snd_tea575x *tea);
-
-#endif /* __SOUND_TEA575X_TUNER_H */
diff --git a/ANDROID_3.4.5/include/sound/tea6330t.h b/ANDROID_3.4.5/include/sound/tea6330t.h
deleted file mode 100644
index 51b282b7..00000000
--- a/ANDROID_3.4.5/include/sound/tea6330t.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef __SOUND_TEA6330T_H
-#define __SOUND_TEA6330T_H
-
-/*
- * Routines for control of TEA6330T circuit.
- * Sound fader control circuit for car radios.
- *
- * 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 "i2c.h" /* generic i2c support */
-
-int snd_tea6330t_detect(struct snd_i2c_bus *bus, int equalizer);
-int snd_tea6330t_update_mixer(struct snd_card *card, struct snd_i2c_bus *bus,
- int equalizer, int fader);
-
-#endif /* __SOUND_TEA6330T_H */
diff --git a/ANDROID_3.4.5/include/sound/timer.h b/ANDROID_3.4.5/include/sound/timer.h
deleted file mode 100644
index 7990469a..00000000
--- a/ANDROID_3.4.5/include/sound/timer.h
+++ /dev/null
@@ -1,143 +0,0 @@
-#ifndef __SOUND_TIMER_H
-#define __SOUND_TIMER_H
-
-/*
- * Timer abstract layer
- * Copyright (c) by Jaroslav Kysela <perex@perex.cz>,
- * Abramo Bagnara <abramo@alsa-project.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
- *
- */
-
-#include <sound/asound.h>
-#include <linux/interrupt.h>
-
-#define snd_timer_chip(timer) ((timer)->private_data)
-
-#define SNDRV_TIMER_DEVICES 16
-
-#define SNDRV_TIMER_DEV_FLG_PCM 0x10000000
-
-#define SNDRV_TIMER_HW_AUTO 0x00000001 /* auto trigger is supported */
-#define SNDRV_TIMER_HW_STOP 0x00000002 /* call stop before start */
-#define SNDRV_TIMER_HW_SLAVE 0x00000004 /* only slave timer (variable resolution) */
-#define SNDRV_TIMER_HW_FIRST 0x00000008 /* first tick can be incomplete */
-#define SNDRV_TIMER_HW_TASKLET 0x00000010 /* timer is called from tasklet */
-
-#define SNDRV_TIMER_IFLG_SLAVE 0x00000001
-#define SNDRV_TIMER_IFLG_RUNNING 0x00000002
-#define SNDRV_TIMER_IFLG_START 0x00000004
-#define SNDRV_TIMER_IFLG_AUTO 0x00000008 /* auto restart */
-#define SNDRV_TIMER_IFLG_FAST 0x00000010 /* fast callback (do not use tasklet) */
-#define SNDRV_TIMER_IFLG_CALLBACK 0x00000020 /* timer callback is active */
-#define SNDRV_TIMER_IFLG_EXCLUSIVE 0x00000040 /* exclusive owner - no more instances */
-#define SNDRV_TIMER_IFLG_EARLY_EVENT 0x00000080 /* write early event to the poll queue */
-
-#define SNDRV_TIMER_FLG_CHANGE 0x00000001
-#define SNDRV_TIMER_FLG_RESCHED 0x00000002 /* need reschedule */
-
-struct snd_timer;
-
-struct snd_timer_hardware {
- /* -- must be filled with low-level driver */
- unsigned int flags; /* various flags */
- unsigned long resolution; /* average timer resolution for one tick in nsec */
- unsigned long resolution_min; /* minimal resolution */
- unsigned long resolution_max; /* maximal resolution */
- unsigned long ticks; /* max timer ticks per interrupt */
- /* -- low-level functions -- */
- int (*open) (struct snd_timer * timer);
- int (*close) (struct snd_timer * timer);
- unsigned long (*c_resolution) (struct snd_timer * timer);
- int (*start) (struct snd_timer * timer);
- int (*stop) (struct snd_timer * timer);
- int (*set_period) (struct snd_timer * timer, unsigned long period_num, unsigned long period_den);
- int (*precise_resolution) (struct snd_timer * timer, unsigned long *num, unsigned long *den);
-};
-
-struct snd_timer {
- int tmr_class;
- struct snd_card *card;
- struct module *module;
- int tmr_device;
- int tmr_subdevice;
- char id[64];
- char name[80];
- unsigned int flags;
- int running; /* running instances */
- unsigned long sticks; /* schedule ticks */
- void *private_data;
- void (*private_free) (struct snd_timer *timer);
- struct snd_timer_hardware hw;
- spinlock_t lock;
- struct list_head device_list;
- struct list_head open_list_head;
- struct list_head active_list_head;
- struct list_head ack_list_head;
- struct list_head sack_list_head; /* slow ack list head */
- struct tasklet_struct task_queue;
-};
-
-struct snd_timer_instance {
- struct snd_timer *timer;
- char *owner;
- unsigned int flags;
- void *private_data;
- void (*private_free) (struct snd_timer_instance *ti);
- void (*callback) (struct snd_timer_instance *timeri,
- unsigned long ticks, unsigned long resolution);
- void (*ccallback) (struct snd_timer_instance * timeri,
- int event,
- struct timespec * tstamp,
- unsigned long resolution);
- void *callback_data;
- unsigned long ticks; /* auto-load ticks when expired */
- unsigned long cticks; /* current ticks */
- unsigned long pticks; /* accumulated ticks for callback */
- unsigned long resolution; /* current resolution for tasklet */
- unsigned long lost; /* lost ticks */
- int slave_class;
- unsigned int slave_id;
- struct list_head open_list;
- struct list_head active_list;
- struct list_head ack_list;
- struct list_head slave_list_head;
- struct list_head slave_active_head;
- struct snd_timer_instance *master;
-};
-
-/*
- * Registering
- */
-
-int snd_timer_new(struct snd_card *card, char *id, struct snd_timer_id *tid, struct snd_timer **rtimer);
-void snd_timer_notify(struct snd_timer *timer, int event, struct timespec *tstamp);
-int snd_timer_global_new(char *id, int device, struct snd_timer **rtimer);
-int snd_timer_global_free(struct snd_timer *timer);
-int snd_timer_global_register(struct snd_timer *timer);
-
-int snd_timer_open(struct snd_timer_instance **ti, char *owner, struct snd_timer_id *tid, unsigned int slave_id);
-int snd_timer_close(struct snd_timer_instance *timeri);
-unsigned long snd_timer_resolution(struct snd_timer_instance *timeri);
-int snd_timer_start(struct snd_timer_instance *timeri, unsigned int ticks);
-int snd_timer_stop(struct snd_timer_instance *timeri);
-int snd_timer_continue(struct snd_timer_instance *timeri);
-int snd_timer_pause(struct snd_timer_instance *timeri);
-
-void snd_timer_interrupt(struct snd_timer *timer, unsigned long ticks_left);
-
-#endif /* __SOUND_TIMER_H */
diff --git a/ANDROID_3.4.5/include/sound/tlv.h b/ANDROID_3.4.5/include/sound/tlv.h
deleted file mode 100644
index 7067e2df..00000000
--- a/ANDROID_3.4.5/include/sound/tlv.h
+++ /dev/null
@@ -1,76 +0,0 @@
-#ifndef __SOUND_TLV_H
-#define __SOUND_TLV_H
-
-/*
- * Advanced Linux Sound Architecture - ALSA - Driver
- * Copyright (c) 2006 by Jaroslav Kysela <perex@perex.cz>
- *
- *
- * 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
- *
- */
-
-/*
- * TLV structure is right behind the struct snd_ctl_tlv:
- * unsigned int type - see SNDRV_CTL_TLVT_*
- * unsigned int length
- * .... data aligned to sizeof(unsigned int), use
- * block_length = (length + (sizeof(unsigned int) - 1)) &
- * ~(sizeof(unsigned int) - 1)) ....
- */
-
-#define SNDRV_CTL_TLVT_CONTAINER 0 /* one level down - group of TLVs */
-#define SNDRV_CTL_TLVT_DB_SCALE 1 /* dB scale */
-#define SNDRV_CTL_TLVT_DB_LINEAR 2 /* linear volume */
-#define SNDRV_CTL_TLVT_DB_RANGE 3 /* dB range container */
-#define SNDRV_CTL_TLVT_DB_MINMAX 4 /* dB scale with min/max */
-#define SNDRV_CTL_TLVT_DB_MINMAX_MUTE 5 /* dB scale with min/max with mute */
-
-#define TLV_DB_SCALE_MASK 0xffff
-#define TLV_DB_SCALE_MUTE 0x10000
-#define TLV_DB_SCALE_ITEM(min, step, mute) \
- SNDRV_CTL_TLVT_DB_SCALE, 2 * sizeof(unsigned int), \
- (min), ((step) & TLV_DB_SCALE_MASK) | ((mute) ? TLV_DB_SCALE_MUTE : 0)
-#define DECLARE_TLV_DB_SCALE(name, min, step, mute) \
- unsigned int name[] = { TLV_DB_SCALE_ITEM(min, step, mute) }
-
-/* dB scale specified with min/max values instead of step */
-#define TLV_DB_MINMAX_ITEM(min_dB, max_dB) \
- SNDRV_CTL_TLVT_DB_MINMAX, 2 * sizeof(unsigned int), \
- (min_dB), (max_dB)
-#define TLV_DB_MINMAX_MUTE_ITEM(min_dB, max_dB) \
- SNDRV_CTL_TLVT_DB_MINMAX_MUTE, 2 * sizeof(unsigned int), \
- (min_dB), (max_dB)
-#define DECLARE_TLV_DB_MINMAX(name, min_dB, max_dB) \
- unsigned int name[] = { TLV_DB_MINMAX_ITEM(min_dB, max_dB) }
-#define DECLARE_TLV_DB_MINMAX_MUTE(name, min_dB, max_dB) \
- unsigned int name[] = { TLV_DB_MINMAX_MUTE_ITEM(min_dB, max_dB) }
-
-/* linear volume between min_dB and max_dB (.01dB unit) */
-#define TLV_DB_LINEAR_ITEM(min_dB, max_dB) \
- SNDRV_CTL_TLVT_DB_LINEAR, 2 * sizeof(unsigned int), \
- (min_dB), (max_dB)
-#define DECLARE_TLV_DB_LINEAR(name, min_dB, max_dB) \
- unsigned int name[] = { TLV_DB_LINEAR_ITEM(min_dB, max_dB) }
-
-/* dB range container */
-/* Each item is: <min> <max> <TLV> */
-/* The below assumes that each item TLV is 4 words like DB_SCALE or LINEAR */
-#define TLV_DB_RANGE_HEAD(num) \
- SNDRV_CTL_TLVT_DB_RANGE, 6 * (num) * sizeof(unsigned int)
-
-#define TLV_DB_GAIN_MUTE -9999999
-
-#endif /* __SOUND_TLV_H */
diff --git a/ANDROID_3.4.5/include/sound/tlv320aic32x4.h b/ANDROID_3.4.5/include/sound/tlv320aic32x4.h
deleted file mode 100644
index c009f70b..00000000
--- a/ANDROID_3.4.5/include/sound/tlv320aic32x4.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * tlv320aic32x4.h -- TLV320AIC32X4 Soc Audio driver platform data
- *
- * Copyright 2011 Vista Silicon S.L.
- *
- * Author: Javier Martin <javier.martin@vista-silicon.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.
- */
-
-#ifndef _AIC32X4_PDATA_H
-#define _AIC32X4_PDATA_H
-
-#define AIC32X4_PWR_MICBIAS_2075_LDOIN 0x00000001
-#define AIC32X4_PWR_AVDD_DVDD_WEAK_DISABLE 0x00000002
-#define AIC32X4_PWR_AIC32X4_LDO_ENABLE 0x00000004
-#define AIC32X4_PWR_CMMODE_LDOIN_RANGE_18_36 0x00000008
-#define AIC32X4_PWR_CMMODE_HP_LDOIN_POWERED 0x00000010
-
-#define AIC32X4_MICPGA_ROUTE_LMIC_IN2R_10K 0x00000001
-#define AIC32X4_MICPGA_ROUTE_RMIC_IN1L_10K 0x00000002
-
-struct aic32x4_pdata {
- u32 power_cfg;
- u32 micpga_routing;
- bool swapdacs;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/sound/tlv320aic3x.h b/ANDROID_3.4.5/include/sound/tlv320aic3x.h
deleted file mode 100644
index ffd9bc79..00000000
--- a/ANDROID_3.4.5/include/sound/tlv320aic3x.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Platform data for Texas Instruments TLV320AIC3x codec
- *
- * Author: Jarkko Nikula <jarkko.nikula@bitmer.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.
- */
-#ifndef __TLV320AIC3x_H__
-#define __TLV320AIC3x_H__
-
-/* GPIO API */
-enum {
- AIC3X_GPIO1_FUNC_DISABLED = 0,
- AIC3X_GPIO1_FUNC_AUDIO_WORDCLK_ADC = 1,
- AIC3X_GPIO1_FUNC_CLOCK_MUX = 2,
- AIC3X_GPIO1_FUNC_CLOCK_MUX_DIV2 = 3,
- AIC3X_GPIO1_FUNC_CLOCK_MUX_DIV4 = 4,
- AIC3X_GPIO1_FUNC_CLOCK_MUX_DIV8 = 5,
- AIC3X_GPIO1_FUNC_SHORT_CIRCUIT_IRQ = 6,
- AIC3X_GPIO1_FUNC_AGC_NOISE_IRQ = 7,
- AIC3X_GPIO1_FUNC_INPUT = 8,
- AIC3X_GPIO1_FUNC_OUTPUT = 9,
- AIC3X_GPIO1_FUNC_DIGITAL_MIC_MODCLK = 10,
- AIC3X_GPIO1_FUNC_AUDIO_WORDCLK = 11,
- AIC3X_GPIO1_FUNC_BUTTON_IRQ = 12,
- AIC3X_GPIO1_FUNC_HEADSET_DETECT_IRQ = 13,
- AIC3X_GPIO1_FUNC_HEADSET_DETECT_OR_BUTTON_IRQ = 14,
- AIC3X_GPIO1_FUNC_ALL_IRQ = 16
-};
-
-enum {
- AIC3X_GPIO2_FUNC_DISABLED = 0,
- AIC3X_GPIO2_FUNC_HEADSET_DETECT_IRQ = 2,
- AIC3X_GPIO2_FUNC_INPUT = 3,
- AIC3X_GPIO2_FUNC_OUTPUT = 4,
- AIC3X_GPIO2_FUNC_DIGITAL_MIC_INPUT = 5,
- AIC3X_GPIO2_FUNC_AUDIO_BITCLK = 8,
- AIC3X_GPIO2_FUNC_HEADSET_DETECT_OR_BUTTON_IRQ = 9,
- AIC3X_GPIO2_FUNC_ALL_IRQ = 10,
- AIC3X_GPIO2_FUNC_SHORT_CIRCUIT_OR_AGC_IRQ = 11,
- AIC3X_GPIO2_FUNC_HEADSET_OR_BUTTON_PRESS_OR_SHORT_CIRCUIT_IRQ = 12,
- AIC3X_GPIO2_FUNC_SHORT_CIRCUIT_IRQ = 13,
- AIC3X_GPIO2_FUNC_AGC_NOISE_IRQ = 14,
- AIC3X_GPIO2_FUNC_BUTTON_PRESS_IRQ = 15
-};
-
-struct aic3x_setup_data {
- unsigned int gpio_func[2];
-};
-
-struct aic3x_pdata {
- int gpio_reset; /* < 0 if not used */
- struct aic3x_setup_data *setup;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/sound/tlv320dac33-plat.h b/ANDROID_3.4.5/include/sound/tlv320dac33-plat.h
deleted file mode 100644
index 0b94192a..00000000
--- a/ANDROID_3.4.5/include/sound/tlv320dac33-plat.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Platform header for Texas Instruments TLV320DAC33 codec driver
- *
- * Author: Peter Ujfalusi <peter.ujfalusi@ti.com>
- *
- * Copyright: (C) 2009 Nokia 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.
- */
-
-#ifndef __TLV320DAC33_PLAT_H
-#define __TLV320DAC33_PLAT_H
-
-struct tlv320dac33_platform_data {
- int power_gpio;
- int mode1_latency; /* latency caused by the i2c writes in us */
- int auto_fifo_config; /* FIFO config based on the period size */
- int keep_bclk; /* Keep the BCLK running in FIFO modes */
- u8 burst_bclkdiv;
-};
-
-#endif /* __TLV320DAC33_PLAT_H */
diff --git a/ANDROID_3.4.5/include/sound/tpa6130a2-plat.h b/ANDROID_3.4.5/include/sound/tpa6130a2-plat.h
deleted file mode 100644
index 4cc10938..00000000
--- a/ANDROID_3.4.5/include/sound/tpa6130a2-plat.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * TPA6130A2 driver platform header
- *
- * Copyright (C) Nokia Corporation
- *
- * Author: Peter Ujfalusi <peter.ujfalusi@ti.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.
- *
- * 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 TPA6130A2_PLAT_H
-#define TPA6130A2_PLAT_H
-
-struct tpa6130a2_platform_data {
- int power_gpio;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/sound/trident.h b/ANDROID_3.4.5/include/sound/trident.h
deleted file mode 100644
index 9f191a0a..00000000
--- a/ANDROID_3.4.5/include/sound/trident.h
+++ /dev/null
@@ -1,445 +0,0 @@
-#ifndef __SOUND_TRIDENT_H
-#define __SOUND_TRIDENT_H
-
-/*
- * audio@tridentmicro.com
- * Fri Feb 19 15:55:28 MST 1999
- * Definitions for Trident 4DWave DX/NX chips
- *
- *
- * 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 "pcm.h"
-#include "mpu401.h"
-#include "ac97_codec.h"
-#include "util_mem.h"
-
-#define TRIDENT_DEVICE_ID_DX ((PCI_VENDOR_ID_TRIDENT<<16)|PCI_DEVICE_ID_TRIDENT_4DWAVE_DX)
-#define TRIDENT_DEVICE_ID_NX ((PCI_VENDOR_ID_TRIDENT<<16)|PCI_DEVICE_ID_TRIDENT_4DWAVE_NX)
-#define TRIDENT_DEVICE_ID_SI7018 ((PCI_VENDOR_ID_SI<<16)|PCI_DEVICE_ID_SI_7018)
-
-#define SNDRV_TRIDENT_VOICE_TYPE_PCM 0
-#define SNDRV_TRIDENT_VOICE_TYPE_SYNTH 1
-#define SNDRV_TRIDENT_VOICE_TYPE_MIDI 2
-
-#define SNDRV_TRIDENT_VFLG_RUNNING (1<<0)
-
-/* TLB code constants */
-#define SNDRV_TRIDENT_PAGE_SIZE 4096
-#define SNDRV_TRIDENT_PAGE_SHIFT 12
-#define SNDRV_TRIDENT_PAGE_MASK ((1<<SNDRV_TRIDENT_PAGE_SHIFT)-1)
-#define SNDRV_TRIDENT_MAX_PAGES 4096
-
-/*
- * Direct registers
- */
-
-#define TRID_REG(trident, x) ((trident)->port + (x))
-
-#define ID_4DWAVE_DX 0x2000
-#define ID_4DWAVE_NX 0x2001
-
-/* Bank definitions */
-
-#define T4D_BANK_A 0
-#define T4D_BANK_B 1
-#define T4D_NUM_BANKS 2
-
-/* Register definitions */
-
-/* Global registers */
-
-enum global_control_bits {
- CHANNEL_IDX = 0x0000003f,
- OVERRUN_IE = 0x00000400, /* interrupt enable: capture overrun */
- UNDERRUN_IE = 0x00000800, /* interrupt enable: playback underrun */
- ENDLP_IE = 0x00001000, /* interrupt enable: end of buffer */
- MIDLP_IE = 0x00002000, /* interrupt enable: middle buffer */
- ETOG_IE = 0x00004000, /* interrupt enable: envelope toggling */
- EDROP_IE = 0x00008000, /* interrupt enable: envelope drop */
- BANK_B_EN = 0x00010000, /* SiS: enable bank B (64 channels) */
- PCMIN_B_MIX = 0x00020000, /* SiS: PCM IN B mixing enable */
- I2S_OUT_ASSIGN = 0x00040000, /* SiS: I2S Out contains surround PCM */
- SPDIF_OUT_ASSIGN= 0x00080000, /* SiS: 0=S/PDIF L/R | 1=PCM Out FIFO */
- MAIN_OUT_ASSIGN = 0x00100000, /* SiS: 0=PCM Out FIFO | 1=MMC Out buffer */
-};
-
-enum miscint_bits {
- PB_UNDERRUN_IRQ = 0x00000001, REC_OVERRUN_IRQ = 0x00000002,
- SB_IRQ = 0x00000004, MPU401_IRQ = 0x00000008,
- OPL3_IRQ = 0x00000010, ADDRESS_IRQ = 0x00000020,
- ENVELOPE_IRQ = 0x00000040, PB_UNDERRUN = 0x00000100,
- REC_OVERRUN = 0x00000200, MIXER_UNDERFLOW = 0x00000400,
- MIXER_OVERFLOW = 0x00000800, NX_SB_IRQ_DISABLE = 0x00001000,
- ST_TARGET_REACHED = 0x00008000,
- PB_24K_MODE = 0x00010000, ST_IRQ_EN = 0x00800000,
- ACGPIO_IRQ = 0x01000000
-};
-
-/* T2 legacy dma control registers. */
-#define LEGACY_DMAR0 0x00 // ADR0
-#define LEGACY_DMAR4 0x04 // CNT0
-#define LEGACY_DMAR6 0x06 // CNT0 - High bits
-#define LEGACY_DMAR11 0x0b // MOD
-#define LEGACY_DMAR15 0x0f // MMR
-
-#define T4D_START_A 0x80
-#define T4D_STOP_A 0x84
-#define T4D_DLY_A 0x88
-#define T4D_SIGN_CSO_A 0x8c
-#define T4D_CSPF_A 0x90
-#define T4D_CSPF_B 0xbc
-#define T4D_CEBC_A 0x94
-#define T4D_AINT_A 0x98
-#define T4D_AINTEN_A 0x9c
-#define T4D_LFO_GC_CIR 0xa0
-#define T4D_MUSICVOL_WAVEVOL 0xa8
-#define T4D_SBDELTA_DELTA_R 0xac
-#define T4D_MISCINT 0xb0
-#define T4D_START_B 0xb4
-#define T4D_STOP_B 0xb8
-#define T4D_SBBL_SBCL 0xc0
-#define T4D_SBCTRL_SBE2R_SBDD 0xc4
-#define T4D_STIMER 0xc8
-#define T4D_AINT_B 0xd8
-#define T4D_AINTEN_B 0xdc
-#define T4D_RCI 0x70
-
-/* MPU-401 UART */
-#define T4D_MPU401_BASE 0x20
-#define T4D_MPUR0 0x20
-#define T4D_MPUR1 0x21
-#define T4D_MPUR2 0x22
-#define T4D_MPUR3 0x23
-
-/* S/PDIF Registers */
-#define NX_SPCTRL_SPCSO 0x24
-#define NX_SPLBA 0x28
-#define NX_SPESO 0x2c
-#define NX_SPCSTATUS 0x64
-
-/* Joystick */
-#define GAMEPORT_GCR 0x30
-#define GAMEPORT_MODE_ADC 0x80
-#define GAMEPORT_LEGACY 0x31
-#define GAMEPORT_AXES 0x34
-
-/* NX Specific Registers */
-#define NX_TLBC 0x6c
-
-/* Channel Registers */
-
-#define CH_START 0xe0
-
-#define CH_DX_CSO_ALPHA_FMS 0xe0
-#define CH_DX_ESO_DELTA 0xe8
-#define CH_DX_FMC_RVOL_CVOL 0xec
-
-#define CH_NX_DELTA_CSO 0xe0
-#define CH_NX_DELTA_ESO 0xe8
-#define CH_NX_ALPHA_FMS_FMC_RVOL_CVOL 0xec
-
-#define CH_LBA 0xe4
-#define CH_GVSEL_PAN_VOL_CTRL_EC 0xf0
-#define CH_EBUF1 0xf4
-#define CH_EBUF2 0xf8
-
-/* AC-97 Registers */
-
-#define DX_ACR0_AC97_W 0x40
-#define DX_ACR1_AC97_R 0x44
-#define DX_ACR2_AC97_COM_STAT 0x48
-
-#define NX_ACR0_AC97_COM_STAT 0x40
-#define NX_ACR1_AC97_W 0x44
-#define NX_ACR2_AC97_R_PRIMARY 0x48
-#define NX_ACR3_AC97_R_SECONDARY 0x4c
-
-#define SI_AC97_WRITE 0x40
-#define SI_AC97_READ 0x44
-#define SI_SERIAL_INTF_CTRL 0x48
-#define SI_AC97_GPIO 0x4c
-#define SI_ASR0 0x50
-#define SI_SPDIF_CS 0x70
-#define SI_GPIO 0x7c
-
-enum trident_nx_ac97_bits {
- /* ACR1-3 */
- NX_AC97_BUSY_WRITE = 0x0800,
- NX_AC97_BUSY_READ = 0x0800,
- NX_AC97_BUSY_DATA = 0x0400,
- NX_AC97_WRITE_SECONDARY = 0x0100,
- /* ACR0 */
- NX_AC97_SECONDARY_READY = 0x0040,
- NX_AC97_SECONDARY_RECORD = 0x0020,
- NX_AC97_SURROUND_OUTPUT = 0x0010,
- NX_AC97_PRIMARY_READY = 0x0008,
- NX_AC97_PRIMARY_RECORD = 0x0004,
- NX_AC97_PCM_OUTPUT = 0x0002,
- NX_AC97_WARM_RESET = 0x0001
-};
-
-enum trident_dx_ac97_bits {
- DX_AC97_BUSY_WRITE = 0x8000,
- DX_AC97_BUSY_READ = 0x8000,
- DX_AC97_READY = 0x0010,
- DX_AC97_RECORD = 0x0008,
- DX_AC97_PLAYBACK = 0x0002
-};
-
-enum sis7018_ac97_bits {
- SI_AC97_BUSY_WRITE = 0x00008000,
- SI_AC97_AUDIO_BUSY = 0x00004000,
- SI_AC97_MODEM_BUSY = 0x00002000,
- SI_AC97_BUSY_READ = 0x00008000,
- SI_AC97_SECONDARY = 0x00000080,
-};
-
-enum serial_intf_ctrl_bits {
- WARM_RESET = 0x00000001,
- COLD_RESET = 0x00000002,
- I2S_CLOCK = 0x00000004,
- PCM_SEC_AC97 = 0x00000008,
- AC97_DBL_RATE = 0x00000010,
- SPDIF_EN = 0x00000020,
- I2S_OUTPUT_EN = 0x00000040,
- I2S_INPUT_EN = 0x00000080,
- PCMIN = 0x00000100,
- LINE1IN = 0x00000200,
- MICIN = 0x00000400,
- LINE2IN = 0x00000800,
- HEAD_SET_IN = 0x00001000,
- GPIOIN = 0x00002000,
- /* 7018 spec says id = 01 but the demo board routed to 10
- SECONDARY_ID= 0x00004000, */
- SECONDARY_ID = 0x00004000,
- PCMOUT = 0x00010000,
- SURROUT = 0x00020000,
- CENTEROUT = 0x00040000,
- LFEOUT = 0x00080000,
- LINE1OUT = 0x00100000,
- LINE2OUT = 0x00200000,
- GPIOOUT = 0x00400000,
- SI_AC97_PRIMARY_READY = 0x01000000,
- SI_AC97_SECONDARY_READY = 0x02000000,
- SI_AC97_POWERDOWN = 0x04000000,
-};
-
-/* PCM defaults */
-
-#define T4D_DEFAULT_PCM_VOL 10 /* 0 - 255 */
-#define T4D_DEFAULT_PCM_PAN 0 /* 0 - 127 */
-#define T4D_DEFAULT_PCM_RVOL 127 /* 0 - 127 */
-#define T4D_DEFAULT_PCM_CVOL 127 /* 0 - 127 */
-
-struct snd_trident;
-struct snd_trident_voice;
-struct snd_trident_pcm_mixer;
-
-struct snd_trident_port {
- struct snd_midi_channel_set * chset;
- struct snd_trident * trident;
- int mode; /* operation mode */
- int client; /* sequencer client number */
- int port; /* sequencer port number */
- unsigned int midi_has_voices: 1;
-};
-
-struct snd_trident_memblk_arg {
- short first_page, last_page;
-};
-
-struct snd_trident_tlb {
- unsigned int * entries; /* 16k-aligned TLB table */
- dma_addr_t entries_dmaaddr; /* 16k-aligned PCI address to TLB table */
- unsigned long * shadow_entries; /* shadow entries with virtual addresses */
- struct snd_dma_buffer buffer;
- struct snd_util_memhdr * memhdr; /* page allocation list */
- struct snd_dma_buffer silent_page;
-};
-
-struct snd_trident_voice {
- unsigned int number;
- unsigned int use: 1,
- pcm: 1,
- synth:1,
- midi: 1;
- unsigned int flags;
- unsigned char client;
- unsigned char port;
- unsigned char index;
-
- struct snd_trident_sample_ops *sample_ops;
-
- /* channel parameters */
- unsigned int CSO; /* 24 bits (16 on DX) */
- unsigned int ESO; /* 24 bits (16 on DX) */
- unsigned int LBA; /* 30 bits */
- unsigned short EC; /* 12 bits */
- unsigned short Alpha; /* 12 bits */
- unsigned short Delta; /* 16 bits */
- unsigned short Attribute; /* 16 bits - SiS 7018 */
- unsigned short Vol; /* 12 bits (6.6) */
- unsigned char Pan; /* 7 bits (1.4.2) */
- unsigned char GVSel; /* 1 bit */
- unsigned char RVol; /* 7 bits (5.2) */
- unsigned char CVol; /* 7 bits (5.2) */
- unsigned char FMC; /* 2 bits */
- unsigned char CTRL; /* 4 bits */
- unsigned char FMS; /* 4 bits */
- unsigned char LFO; /* 8 bits */
-
- unsigned int negCSO; /* nonzero - use negative CSO */
-
- struct snd_util_memblk *memblk; /* memory block if TLB enabled */
-
- /* PCM data */
-
- struct snd_trident *trident;
- struct snd_pcm_substream *substream;
- struct snd_trident_voice *extra; /* extra PCM voice (acts as interrupt generator) */
- unsigned int running: 1,
- capture: 1,
- spdif: 1,
- foldback: 1,
- isync: 1,
- isync2: 1,
- isync3: 1;
- int foldback_chan; /* foldback subdevice number */
- unsigned int stimer; /* global sample timer (to detect spurious interrupts) */
- unsigned int spurious_threshold; /* spurious threshold */
- unsigned int isync_mark;
- unsigned int isync_max;
- unsigned int isync_ESO;
-
- /* --- */
-
- void *private_data;
- void (*private_free)(struct snd_trident_voice *voice);
-};
-
-struct snd_4dwave {
- int seq_client;
-
- struct snd_trident_port seq_ports[4];
- struct snd_trident_voice voices[64];
-
- int ChanSynthCount; /* number of allocated synth channels */
- int max_size; /* maximum synth memory size in bytes */
- int current_size; /* current allocated synth mem in bytes */
-};
-
-struct snd_trident_pcm_mixer {
- struct snd_trident_voice *voice; /* active voice */
- unsigned short vol; /* front volume */
- unsigned char pan; /* pan control */
- unsigned char rvol; /* rear volume */
- unsigned char cvol; /* center volume */
- unsigned char pad;
-};
-
-struct snd_trident {
- int irq;
-
- unsigned int device; /* device ID */
-
- unsigned char bDMAStart;
-
- unsigned long port;
- unsigned long midi_port;
-
- unsigned int spurious_irq_count;
- unsigned int spurious_irq_max_delta;
-
- struct snd_trident_tlb tlb; /* TLB entries for NX cards */
-
- unsigned char spdif_ctrl;
- unsigned char spdif_pcm_ctrl;
- unsigned int spdif_bits;
- unsigned int spdif_pcm_bits;
- struct snd_kcontrol *spdif_pcm_ctl; /* S/PDIF settings */
- unsigned int ac97_ctrl;
-
- unsigned int ChanMap[2]; /* allocation map for hardware channels */
-
- int ChanPCM; /* max number of PCM channels */
- int ChanPCMcnt; /* actual number of PCM channels */
-
- unsigned int ac97_detect: 1; /* 1 = AC97 in detection phase */
- unsigned int in_suspend: 1; /* 1 during suspend/resume */
-
- struct snd_4dwave synth; /* synth specific variables */
-
- spinlock_t event_lock;
- spinlock_t voice_alloc;
-
- struct snd_dma_device dma_dev;
-
- struct pci_dev *pci;
- struct snd_card *card;
- struct snd_pcm *pcm; /* ADC/DAC PCM */
- struct snd_pcm *foldback; /* Foldback PCM */
- struct snd_pcm *spdif; /* SPDIF PCM */
- struct snd_rawmidi *rmidi;
-
- struct snd_ac97_bus *ac97_bus;
- struct snd_ac97 *ac97;
- struct snd_ac97 *ac97_sec;
-
- unsigned int musicvol_wavevol;
- struct snd_trident_pcm_mixer pcm_mixer[32];
- struct snd_kcontrol *ctl_vol; /* front volume */
- struct snd_kcontrol *ctl_pan; /* pan */
- struct snd_kcontrol *ctl_rvol; /* rear volume */
- struct snd_kcontrol *ctl_cvol; /* center volume */
-
- spinlock_t reg_lock;
-
- struct gameport *gameport;
-};
-
-int snd_trident_create(struct snd_card *card,
- struct pci_dev *pci,
- int pcm_streams,
- int pcm_spdif_device,
- int max_wavetable_size,
- struct snd_trident ** rtrident);
-int snd_trident_create_gameport(struct snd_trident *trident);
-
-int snd_trident_pcm(struct snd_trident * trident, int device, struct snd_pcm **rpcm);
-int snd_trident_foldback_pcm(struct snd_trident * trident, int device, struct snd_pcm **rpcm);
-int snd_trident_spdif_pcm(struct snd_trident * trident, int device, struct snd_pcm **rpcm);
-int snd_trident_attach_synthesizer(struct snd_trident * trident);
-struct snd_trident_voice *snd_trident_alloc_voice(struct snd_trident * trident, int type,
- int client, int port);
-void snd_trident_free_voice(struct snd_trident * trident, struct snd_trident_voice *voice);
-void snd_trident_start_voice(struct snd_trident * trident, unsigned int voice);
-void snd_trident_stop_voice(struct snd_trident * trident, unsigned int voice);
-void snd_trident_write_voice_regs(struct snd_trident * trident, struct snd_trident_voice *voice);
-int snd_trident_suspend(struct pci_dev *pci, pm_message_t state);
-int snd_trident_resume(struct pci_dev *pci);
-
-/* TLB memory allocation */
-struct snd_util_memblk *snd_trident_alloc_pages(struct snd_trident *trident,
- struct snd_pcm_substream *substream);
-int snd_trident_free_pages(struct snd_trident *trident, struct snd_util_memblk *blk);
-struct snd_util_memblk *snd_trident_synth_alloc(struct snd_trident *trident, unsigned int size);
-int snd_trident_synth_free(struct snd_trident *trident, struct snd_util_memblk *blk);
-int snd_trident_synth_copy_from_user(struct snd_trident *trident, struct snd_util_memblk *blk,
- int offset, const char __user *data, int size);
-
-#endif /* __SOUND_TRIDENT_H */
diff --git a/ANDROID_3.4.5/include/sound/uda134x.h b/ANDROID_3.4.5/include/sound/uda134x.h
deleted file mode 100644
index e475659b..00000000
--- a/ANDROID_3.4.5/include/sound/uda134x.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * uda134x.h -- UDA134x ALSA SoC Codec driver
- *
- * Copyright 2007 Dension Audio Systems Ltd.
- * Author: Zoltan Devai
- *
- * 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.
- */
-
-#ifndef _UDA134X_H
-#define _UDA134X_H
-
-#include <sound/l3.h>
-
-struct uda134x_platform_data {
- struct l3_pins l3;
- void (*power) (int);
- int model;
- /*
- ALSA SOC usually puts the device in standby mode when it's not used
- for sometime. If you unset is_powered_on_standby the driver will
- turn off the ADC/DAC when this callback is invoked and turn it back
- on when needed. Unfortunately this will result in a very light bump
- (it can be audible only with good earphones). If this bothers you
- set is_powered_on_standby, you will have slightly higher power
- consumption. Please note that sending the L3 command for ADC is
- enough to make the bump, so it doesn't make difference if you
- completely take off power from the codec.
- */
- int is_powered_on_standby;
-#define UDA134X_UDA1340 1
-#define UDA134X_UDA1341 2
-#define UDA134X_UDA1344 3
-#define UDA134X_UDA1345 4
-};
-
-#endif /* _UDA134X_H */
diff --git a/ANDROID_3.4.5/include/sound/uda1380.h b/ANDROID_3.4.5/include/sound/uda1380.h
deleted file mode 100644
index 381319c7..00000000
--- a/ANDROID_3.4.5/include/sound/uda1380.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * UDA1380 ALSA SoC Codec driver
- *
- * Copyright 2009 Philipp Zabel
- *
- * 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.
- */
-
-#ifndef __UDA1380_H
-#define __UDA1380_H
-
-struct uda1380_platform_data {
- int gpio_power;
- int gpio_reset;
- int dac_clk;
-#define UDA1380_DAC_CLK_SYSCLK 0
-#define UDA1380_DAC_CLK_WSPLL 1
-};
-
-#endif /* __UDA1380_H */
diff --git a/ANDROID_3.4.5/include/sound/util_mem.h b/ANDROID_3.4.5/include/sound/util_mem.h
deleted file mode 100644
index a1fb706b..00000000
--- a/ANDROID_3.4.5/include/sound/util_mem.h
+++ /dev/null
@@ -1,64 +0,0 @@
-#ifndef __SOUND_UTIL_MEM_H
-#define __SOUND_UTIL_MEM_H
-
-#include <linux/mutex.h>
-/*
- * Copyright (C) 2000 Takashi Iwai <tiwai@suse.de>
- *
- * Generic memory management routines for soundcard memory allocation
- *
- * 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
- */
-
-/*
- * memory block
- */
-struct snd_util_memblk {
- unsigned int size; /* size of this block */
- unsigned int offset; /* zero-offset of this block */
- struct list_head list; /* link */
-};
-
-#define snd_util_memblk_argptr(blk) (void*)((char*)(blk) + sizeof(struct snd_util_memblk))
-
-/*
- * memory management information
- */
-struct snd_util_memhdr {
- unsigned int size; /* size of whole data */
- struct list_head block; /* block linked-list header */
- int nblocks; /* # of allocated blocks */
- unsigned int used; /* used memory size */
- int block_extra_size; /* extra data size of chunk */
- struct mutex block_mutex; /* lock */
-};
-
-/*
- * prototypes
- */
-struct snd_util_memhdr *snd_util_memhdr_new(int memsize);
-void snd_util_memhdr_free(struct snd_util_memhdr *hdr);
-struct snd_util_memblk *snd_util_mem_alloc(struct snd_util_memhdr *hdr, int size);
-int snd_util_mem_free(struct snd_util_memhdr *hdr, struct snd_util_memblk *blk);
-int snd_util_mem_avail(struct snd_util_memhdr *hdr);
-
-/* functions without mutex */
-struct snd_util_memblk *__snd_util_mem_alloc(struct snd_util_memhdr *hdr, int size);
-void __snd_util_mem_free(struct snd_util_memhdr *hdr, struct snd_util_memblk *blk);
-struct snd_util_memblk *__snd_util_memblk_new(struct snd_util_memhdr *hdr,
- unsigned int units,
- struct list_head *prev);
-
-#endif /* __SOUND_UTIL_MEM_H */
diff --git a/ANDROID_3.4.5/include/sound/version.h b/ANDROID_3.4.5/include/sound/version.h
deleted file mode 100644
index cc75024c..00000000
--- a/ANDROID_3.4.5/include/sound/version.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* include/version.h */
-#define CONFIG_SND_VERSION "1.0.25"
-#define CONFIG_SND_DATE ""
diff --git a/ANDROID_3.4.5/include/sound/vx_core.h b/ANDROID_3.4.5/include/sound/vx_core.h
deleted file mode 100644
index 5456343e..00000000
--- a/ANDROID_3.4.5/include/sound/vx_core.h
+++ /dev/null
@@ -1,557 +0,0 @@
-/*
- * Driver for Digigram VX soundcards
- *
- * Hardware core part
- *
- * Copyright (c) 2002 by Takashi Iwai <tiwai@suse.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
- */
-
-#ifndef __SOUND_VX_COMMON_H
-#define __SOUND_VX_COMMON_H
-
-#include <sound/pcm.h>
-#include <sound/hwdep.h>
-#include <linux/interrupt.h>
-
-#if defined(CONFIG_FW_LOADER) || defined(CONFIG_FW_LOADER_MODULE)
-#if !defined(CONFIG_USE_VXLOADER) && !defined(CONFIG_SND_VX_LIB) /* built-in kernel */
-#define SND_VX_FW_LOADER /* use the standard firmware loader */
-#endif
-#endif
-
-struct firmware;
-struct device;
-
-#define VX_DRIVER_VERSION 0x010000 /* 1.0.0 */
-
-/*
- */
-#define SIZE_MAX_CMD 0x10
-#define SIZE_MAX_STATUS 0x10
-
-struct vx_rmh {
- u16 LgCmd; /* length of the command to send (WORDs) */
- u16 LgStat; /* length of the status received (WORDs) */
- u32 Cmd[SIZE_MAX_CMD];
- u32 Stat[SIZE_MAX_STATUS];
- u16 DspStat; /* status type, RMP_SSIZE_XXX */
-};
-
-typedef u64 pcx_time_t;
-
-#define VX_MAX_PIPES 16
-#define VX_MAX_PERIODS 32
-#define VX_MAX_CODECS 2
-
-struct vx_ibl_info {
- int size; /* the current IBL size (0 = query) in bytes */
- int max_size; /* max. IBL size in bytes */
- int min_size; /* min. IBL size in bytes */
- int granularity; /* granularity */
-};
-
-struct vx_pipe {
- int number;
- unsigned int is_capture: 1;
- unsigned int data_mode: 1;
- unsigned int running: 1;
- unsigned int prepared: 1;
- int channels;
- unsigned int differed_type;
- pcx_time_t pcx_time;
- struct snd_pcm_substream *substream;
-
- int hbuf_size; /* H-buffer size in bytes */
- int buffer_bytes; /* the ALSA pcm buffer size in bytes */
- int period_bytes; /* the ALSA pcm period size in bytes */
- int hw_ptr; /* the current hardware pointer in bytes */
- int position; /* the current position in frames (playback only) */
- int transferred; /* the transferred size (per period) in frames */
- int align; /* size of alignment */
- u64 cur_count; /* current sample position (for playback) */
-
- unsigned int references; /* an output pipe may be used for monitoring and/or playback */
- struct vx_pipe *monitoring_pipe; /* pointer to the monitoring pipe (capture pipe only)*/
-
- struct tasklet_struct start_tq;
-};
-
-struct vx_core;
-
-struct snd_vx_ops {
- /* low-level i/o */
- unsigned char (*in8)(struct vx_core *chip, int reg);
- unsigned int (*in32)(struct vx_core *chip, int reg);
- void (*out8)(struct vx_core *chip, int reg, unsigned char val);
- void (*out32)(struct vx_core *chip, int reg, unsigned int val);
- /* irq */
- int (*test_and_ack)(struct vx_core *chip);
- void (*validate_irq)(struct vx_core *chip, int enable);
- /* codec */
- void (*write_codec)(struct vx_core *chip, int codec, unsigned int data);
- void (*akm_write)(struct vx_core *chip, int reg, unsigned int data);
- void (*reset_codec)(struct vx_core *chip);
- void (*change_audio_source)(struct vx_core *chip, int src);
- void (*set_clock_source)(struct vx_core *chp, int src);
- /* chip init */
- int (*load_dsp)(struct vx_core *chip, int idx, const struct firmware *fw);
- void (*reset_dsp)(struct vx_core *chip);
- void (*reset_board)(struct vx_core *chip, int cold_reset);
- int (*add_controls)(struct vx_core *chip);
- /* pcm */
- void (*dma_write)(struct vx_core *chip, struct snd_pcm_runtime *runtime,
- struct vx_pipe *pipe, int count);
- void (*dma_read)(struct vx_core *chip, struct snd_pcm_runtime *runtime,
- struct vx_pipe *pipe, int count);
-};
-
-struct snd_vx_hardware {
- const char *name;
- int type; /* VX_TYPE_XXX */
-
- /* hardware specs */
- unsigned int num_codecs;
- unsigned int num_ins;
- unsigned int num_outs;
- unsigned int output_level_max;
- const unsigned int *output_level_db_scale;
-};
-
-/* hwdep id string */
-#define SND_VX_HWDEP_ID "VX Loader"
-
-/* hardware type */
-enum {
- /* VX222 PCI */
- VX_TYPE_BOARD, /* old VX222 PCI */
- VX_TYPE_V2, /* VX222 V2 PCI */
- VX_TYPE_MIC, /* VX222 Mic PCI */
- /* VX-pocket */
- VX_TYPE_VXPOCKET, /* VXpocket V2 */
- VX_TYPE_VXP440, /* VXpocket 440 */
- VX_TYPE_NUMS
-};
-
-/* chip status */
-enum {
- VX_STAT_XILINX_LOADED = (1 << 0), /* devices are registered */
- VX_STAT_DEVICE_INIT = (1 << 1), /* devices are registered */
- VX_STAT_CHIP_INIT = (1 << 2), /* all operational */
- VX_STAT_IN_SUSPEND = (1 << 10), /* in suspend phase */
- VX_STAT_IS_STALE = (1 << 15) /* device is stale */
-};
-
-/* min/max values for analog output for old codecs */
-#define VX_ANALOG_OUT_LEVEL_MAX 0xe3
-
-struct vx_core {
- /* ALSA stuff */
- struct snd_card *card;
- struct snd_pcm *pcm[VX_MAX_CODECS];
- int type; /* VX_TYPE_XXX */
-
- int irq;
- /* ports are defined externally */
-
- /* low-level functions */
- struct snd_vx_hardware *hw;
- struct snd_vx_ops *ops;
-
- spinlock_t lock;
- spinlock_t irq_lock;
- struct tasklet_struct tq;
-
- unsigned int chip_status;
- unsigned int pcm_running;
-
- struct device *dev;
- struct snd_hwdep *hwdep;
-
- struct vx_rmh irq_rmh; /* RMH used in interrupts */
-
- unsigned int audio_info; /* see VX_AUDIO_INFO */
- unsigned int audio_ins;
- unsigned int audio_outs;
- struct vx_pipe **playback_pipes;
- struct vx_pipe **capture_pipes;
-
- /* clock and audio sources */
- unsigned int audio_source; /* current audio input source */
- unsigned int audio_source_target;
- unsigned int clock_mode; /* clock mode (VX_CLOCK_MODE_XXX) */
- unsigned int clock_source; /* current clock source (INTERNAL_QUARTZ or UER_SYNC) */
- unsigned int freq; /* current frequency */
- unsigned int freq_detected; /* detected frequency from digital in */
- unsigned int uer_detected; /* VX_UER_MODE_XXX */
- unsigned int uer_bits; /* IEC958 status bits */
- struct vx_ibl_info ibl; /* IBL information */
-
- /* mixer setting */
- int output_level[VX_MAX_CODECS][2]; /* analog output level */
- int audio_gain[2][4]; /* digital audio level (playback/capture) */
- unsigned char audio_active[4]; /* mute/unmute on digital playback */
- int audio_monitor[4]; /* playback hw-monitor level */
- unsigned char audio_monitor_active[4]; /* playback hw-monitor mute/unmute */
-
- struct mutex mixer_mutex;
-
- const struct firmware *firmware[4]; /* loaded firmware data */
-};
-
-
-/*
- * constructor
- */
-struct vx_core *snd_vx_create(struct snd_card *card, struct snd_vx_hardware *hw,
- struct snd_vx_ops *ops, int extra_size);
-int snd_vx_setup_firmware(struct vx_core *chip);
-int snd_vx_load_boot_image(struct vx_core *chip, const struct firmware *dsp);
-int snd_vx_dsp_boot(struct vx_core *chip, const struct firmware *dsp);
-int snd_vx_dsp_load(struct vx_core *chip, const struct firmware *dsp);
-
-void snd_vx_free_firmware(struct vx_core *chip);
-
-/*
- * interrupt handler; exported for pcmcia
- */
-irqreturn_t snd_vx_irq_handler(int irq, void *dev);
-
-/*
- * lowlevel functions
- */
-static inline int vx_test_and_ack(struct vx_core *chip)
-{
- return chip->ops->test_and_ack(chip);
-}
-
-static inline void vx_validate_irq(struct vx_core *chip, int enable)
-{
- chip->ops->validate_irq(chip, enable);
-}
-
-static inline unsigned char snd_vx_inb(struct vx_core *chip, int reg)
-{
- return chip->ops->in8(chip, reg);
-}
-
-static inline unsigned int snd_vx_inl(struct vx_core *chip, int reg)
-{
- return chip->ops->in32(chip, reg);
-}
-
-static inline void snd_vx_outb(struct vx_core *chip, int reg, unsigned char val)
-{
- chip->ops->out8(chip, reg, val);
-}
-
-static inline void snd_vx_outl(struct vx_core *chip, int reg, unsigned int val)
-{
- chip->ops->out32(chip, reg, val);
-}
-
-#define vx_inb(chip,reg) snd_vx_inb(chip, VX_##reg)
-#define vx_outb(chip,reg,val) snd_vx_outb(chip, VX_##reg,val)
-#define vx_inl(chip,reg) snd_vx_inl(chip, VX_##reg)
-#define vx_outl(chip,reg,val) snd_vx_outl(chip, VX_##reg,val)
-
-static inline void vx_reset_dsp(struct vx_core *chip)
-{
- chip->ops->reset_dsp(chip);
-}
-
-int vx_send_msg(struct vx_core *chip, struct vx_rmh *rmh);
-int vx_send_msg_nolock(struct vx_core *chip, struct vx_rmh *rmh);
-int vx_send_rih(struct vx_core *chip, int cmd);
-int vx_send_rih_nolock(struct vx_core *chip, int cmd);
-
-void vx_reset_codec(struct vx_core *chip, int cold_reset);
-
-/*
- * check the bit on the specified register
- * returns zero if a bit matches, or a negative error code.
- * exported for vxpocket driver
- */
-int snd_vx_check_reg_bit(struct vx_core *chip, int reg, int mask, int bit, int time);
-#define vx_check_isr(chip,mask,bit,time) snd_vx_check_reg_bit(chip, VX_ISR, mask, bit, time)
-#define vx_wait_isr_bit(chip,bit) vx_check_isr(chip, bit, bit, 200)
-#define vx_wait_for_rx_full(chip) vx_wait_isr_bit(chip, ISR_RX_FULL)
-
-
-/*
- * pseudo-DMA transfer
- */
-static inline void vx_pseudo_dma_write(struct vx_core *chip, struct snd_pcm_runtime *runtime,
- struct vx_pipe *pipe, int count)
-{
- chip->ops->dma_write(chip, runtime, pipe, count);
-}
-
-static inline void vx_pseudo_dma_read(struct vx_core *chip, struct snd_pcm_runtime *runtime,
- struct vx_pipe *pipe, int count)
-{
- chip->ops->dma_read(chip, runtime, pipe, count);
-}
-
-
-
-/* error with hardware code,
- * the return value is -(VX_ERR_MASK | actual-hw-error-code)
- */
-#define VX_ERR_MASK 0x1000000
-#define vx_get_error(err) (-(err) & ~VX_ERR_MASK)
-
-
-/*
- * pcm stuff
- */
-int snd_vx_pcm_new(struct vx_core *chip);
-void vx_pcm_update_intr(struct vx_core *chip, unsigned int events);
-
-/*
- * mixer stuff
- */
-int snd_vx_mixer_new(struct vx_core *chip);
-void vx_toggle_dac_mute(struct vx_core *chip, int mute);
-int vx_sync_audio_source(struct vx_core *chip);
-int vx_set_monitor_level(struct vx_core *chip, int audio, int level, int active);
-
-/*
- * IEC958 & clock stuff
- */
-void vx_set_iec958_status(struct vx_core *chip, unsigned int bits);
-int vx_set_clock(struct vx_core *chip, unsigned int freq);
-void vx_set_internal_clock(struct vx_core *chip, unsigned int freq);
-int vx_change_frequency(struct vx_core *chip);
-
-
-/*
- * PM
- */
-int snd_vx_suspend(struct vx_core *card, pm_message_t state);
-int snd_vx_resume(struct vx_core *card);
-
-/*
- * hardware constants
- */
-
-#define vx_has_new_dsp(chip) ((chip)->type != VX_TYPE_BOARD)
-#define vx_is_pcmcia(chip) ((chip)->type >= VX_TYPE_VXPOCKET)
-
-/* audio input source */
-enum {
- VX_AUDIO_SRC_DIGITAL,
- VX_AUDIO_SRC_LINE,
- VX_AUDIO_SRC_MIC
-};
-
-/* clock source */
-enum {
- INTERNAL_QUARTZ,
- UER_SYNC
-};
-
-/* clock mode */
-enum {
- VX_CLOCK_MODE_AUTO, /* depending on the current audio source */
- VX_CLOCK_MODE_INTERNAL, /* fixed to internal quartz */
- VX_CLOCK_MODE_EXTERNAL /* fixed to UER sync */
-};
-
-/* SPDIF/UER type */
-enum {
- VX_UER_MODE_CONSUMER,
- VX_UER_MODE_PROFESSIONAL,
- VX_UER_MODE_NOT_PRESENT,
-};
-
-/* register indices */
-enum {
- VX_ICR,
- VX_CVR,
- VX_ISR,
- VX_IVR,
- VX_RXH,
- VX_TXH = VX_RXH,
- VX_RXM,
- VX_TXM = VX_RXM,
- VX_RXL,
- VX_TXL = VX_RXL,
- VX_DMA,
- VX_CDSP,
- VX_RFREQ,
- VX_RUER_V2,
- VX_GAIN,
- VX_DATA = VX_GAIN,
- VX_MEMIRQ,
- VX_ACQ,
- VX_BIT0,
- VX_BIT1,
- VX_MIC0,
- VX_MIC1,
- VX_MIC2,
- VX_MIC3,
- VX_PLX0,
- VX_PLX1,
- VX_PLX2,
-
- VX_LOFREQ, // V2: ACQ, VP: RFREQ
- VX_HIFREQ, // V2: BIT0, VP: RUER_V2
- VX_CSUER, // V2: BIT1, VP: BIT0
- VX_RUER, // V2: RUER_V2, VP: BIT1
-
- VX_REG_MAX,
-
- /* aliases for VX board */
- VX_RESET_DMA = VX_ISR,
- VX_CFG = VX_RFREQ,
- VX_STATUS = VX_MEMIRQ,
- VX_SELMIC = VX_MIC0,
- VX_COMPOT = VX_MIC1,
- VX_SCOMPR = VX_MIC2,
- VX_GLIMIT = VX_MIC3,
- VX_INTCSR = VX_PLX0,
- VX_CNTRL = VX_PLX1,
- VX_GPIOC = VX_PLX2,
-
- /* aliases for VXPOCKET board */
- VX_MICRO = VX_MEMIRQ,
- VX_CODEC2 = VX_MEMIRQ,
- VX_DIALOG = VX_ACQ,
-
-};
-
-/* RMH status type */
-enum {
- RMH_SSIZE_FIXED = 0, /* status size given by the driver (in LgStat) */
- RMH_SSIZE_ARG = 1, /* status size given in the LSB byte */
- RMH_SSIZE_MASK = 2, /* status size given in bitmask */
-};
-
-
-/* bits for ICR register */
-#define ICR_HF1 0x10
-#define ICR_HF0 0x08
-#define ICR_TREQ 0x02 /* Interrupt mode + HREQ set on for transfer (->DSP) request */
-#define ICR_RREQ 0x01 /* Interrupt mode + RREQ set on for transfer (->PC) request */
-
-/* bits for CVR register */
-#define CVR_HC 0x80
-
-/* bits for ISR register */
-#define ISR_HF3 0x10
-#define ISR_HF2 0x08
-#define ISR_CHK 0x10
-#define ISR_ERR 0x08
-#define ISR_TX_READY 0x04
-#define ISR_TX_EMPTY 0x02
-#define ISR_RX_FULL 0x01
-
-/* Constants used to access the DATA register */
-#define VX_DATA_CODEC_MASK 0x80
-#define VX_DATA_XICOR_MASK 0x80
-
-/* Constants used to access the CSUER register (both for VX2 and VXP) */
-#define VX_SUER_FREQ_MASK 0x0c
-#define VX_SUER_FREQ_32KHz_MASK 0x0c
-#define VX_SUER_FREQ_44KHz_MASK 0x00
-#define VX_SUER_FREQ_48KHz_MASK 0x04
-#define VX_SUER_DATA_PRESENT_MASK 0x02
-#define VX_SUER_CLOCK_PRESENT_MASK 0x01
-
-#define VX_CUER_HH_BITC_SEL_MASK 0x08
-#define VX_CUER_MH_BITC_SEL_MASK 0x04
-#define VX_CUER_ML_BITC_SEL_MASK 0x02
-#define VX_CUER_LL_BITC_SEL_MASK 0x01
-
-#define XX_UER_CBITS_OFFSET_MASK 0x1f
-
-
-/* bits for audio_info */
-#define VX_AUDIO_INFO_REAL_TIME (1<<0) /* real-time processing available */
-#define VX_AUDIO_INFO_OFFLINE (1<<1) /* offline processing available */
-#define VX_AUDIO_INFO_MPEG1 (1<<5)
-#define VX_AUDIO_INFO_MPEG2 (1<<6)
-#define VX_AUDIO_INFO_LINEAR_8 (1<<7)
-#define VX_AUDIO_INFO_LINEAR_16 (1<<8)
-#define VX_AUDIO_INFO_LINEAR_24 (1<<9)
-
-/* DSP Interrupt Request values */
-#define VXP_IRQ_OFFSET 0x40 /* add 0x40 offset for vxpocket and vx222/v2 */
-/* call with vx_send_irq_dsp() */
-#define IRQ_MESS_WRITE_END 0x30
-#define IRQ_MESS_WRITE_NEXT 0x32
-#define IRQ_MESS_READ_NEXT 0x34
-#define IRQ_MESS_READ_END 0x36
-#define IRQ_MESSAGE 0x38
-#define IRQ_RESET_CHK 0x3A
-#define IRQ_CONNECT_STREAM_NEXT 0x26
-#define IRQ_CONNECT_STREAM_END 0x28
-#define IRQ_PAUSE_START_CONNECT 0x2A
-#define IRQ_END_CONNECTION 0x2C
-
-/* Is there async. events pending ( IT Source Test ) */
-#define ASYNC_EVENTS_PENDING 0x008000
-#define HBUFFER_EVENTS_PENDING 0x004000 // Not always accurate
-#define NOTIF_EVENTS_PENDING 0x002000
-#define TIME_CODE_EVENT_PENDING 0x001000
-#define FREQUENCY_CHANGE_EVENT_PENDING 0x000800
-#define END_OF_BUFFER_EVENTS_PENDING 0x000400
-#define FATAL_DSP_ERROR 0xff0000
-
-/* Stream Format Header Defines */
-#define HEADER_FMT_BASE 0xFED00000
-#define HEADER_FMT_MONO 0x000000C0
-#define HEADER_FMT_INTEL 0x00008000
-#define HEADER_FMT_16BITS 0x00002000
-#define HEADER_FMT_24BITS 0x00004000
-#define HEADER_FMT_UPTO11 0x00000200 /* frequency is less or equ. to 11k.*/
-#define HEADER_FMT_UPTO32 0x00000100 /* frequency is over 11k and less then 32k.*/
-
-/* Constants used to access the Codec */
-#define XX_CODEC_SELECTOR 0x20
-/* codec commands */
-#define XX_CODEC_ADC_CONTROL_REGISTER 0x01
-#define XX_CODEC_DAC_CONTROL_REGISTER 0x02
-#define XX_CODEC_LEVEL_LEFT_REGISTER 0x03
-#define XX_CODEC_LEVEL_RIGHT_REGISTER 0x04
-#define XX_CODEC_PORT_MODE_REGISTER 0x05
-#define XX_CODEC_STATUS_REPORT_REGISTER 0x06
-#define XX_CODEC_CLOCK_CONTROL_REGISTER 0x07
-
-/*
- * Audio-level control values
- */
-#define CVAL_M110DB 0x000 /* -110dB */
-#define CVAL_M99DB 0x02C
-#define CVAL_M21DB 0x163
-#define CVAL_M18DB 0x16F
-#define CVAL_M10DB 0x18F
-#define CVAL_0DB 0x1B7
-#define CVAL_18DB 0x1FF /* +18dB */
-#define CVAL_MAX 0x1FF
-
-#define AUDIO_IO_HAS_MUTE_LEVEL 0x400000
-#define AUDIO_IO_HAS_MUTE_MONITORING_1 0x200000
-#define AUDIO_IO_HAS_MUTE_MONITORING_2 0x100000
-#define VALID_AUDIO_IO_DIGITAL_LEVEL 0x01
-#define VALID_AUDIO_IO_MONITORING_LEVEL 0x02
-#define VALID_AUDIO_IO_MUTE_LEVEL 0x04
-#define VALID_AUDIO_IO_MUTE_MONITORING_1 0x08
-#define VALID_AUDIO_IO_MUTE_MONITORING_2 0x10
-
-
-#endif /* __SOUND_VX_COMMON_H */
diff --git a/ANDROID_3.4.5/include/sound/wavefront.h b/ANDROID_3.4.5/include/sound/wavefront.h
deleted file mode 100644
index 15d82e59..00000000
--- a/ANDROID_3.4.5/include/sound/wavefront.h
+++ /dev/null
@@ -1,695 +0,0 @@
-#ifndef __SOUND_WAVEFRONT_H__
-#define __SOUND_WAVEFRONT_H__
-
-/*
- * Driver for Turtle Beach Wavefront cards (Maui,Tropez,Tropez+)
- *
- * Copyright (c) by Paul Barton-Davis <pbd@op.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
- */
-
-#if (!defined(__GNUC__) && !defined(__GNUG__))
-
- You will not be able to compile this file correctly without gcc, because
- it is necessary to pack the "wavefront_alias" structure to a size
- of 22 bytes, corresponding to 16-bit alignment (as would have been
- the case on the original platform, MS-DOS). If this is not done,
- then WavePatch-format files cannot be read/written correctly.
- The method used to do this here ("__attribute__((packed)") is
- completely compiler dependent.
-
- All other wavefront_* types end up aligned to 32 bit values and
- still have the same (correct) size.
-
-#else
-
- /* However, note that as of G++ 2.7.3.2, g++ was unable to
- correctly parse *type* __attribute__ tags. It will do the
- right thing if we use the "packed" attribute on each struct
- member, which has the same semantics anyway.
- */
-
-#endif /* __GNUC__ */
-
-/***************************** WARNING ********************************
- PLEASE DO NOT MODIFY THIS FILE IN ANY WAY THAT AFFECTS ITS ABILITY TO
- BE USED WITH EITHER C *OR* C++.
- **********************************************************************/
-
-#ifndef NUM_MIDIKEYS
-#define NUM_MIDIKEYS 128
-#endif /* NUM_MIDIKEYS */
-
-#ifndef NUM_MIDICHANNELS
-#define NUM_MIDICHANNELS 16
-#endif /* NUM_MIDICHANNELS */
-
-/* These are very useful/important. the original wavefront interface
- was developed on a 16 bit system, where sizeof(int) = 2
- bytes. Defining things like this makes the code much more portable, and
- easier to understand without having to toggle back and forth
- between a 16-bit view of the world and a 32-bit one.
- */
-
-#ifndef __KERNEL__
-/* keep them for compatibility */
-typedef short s16;
-typedef unsigned short u16;
-typedef int s32;
-typedef unsigned int u32;
-typedef char s8;
-typedef unsigned char u8;
-typedef s16 INT16;
-typedef u16 UINT16;
-typedef s32 INT32;
-typedef u32 UINT32;
-typedef s8 CHAR8;
-typedef u8 UCHAR8;
-#endif
-
-/* Pseudo-commands not part of the WaveFront command set.
- These are used for various driver controls and direct
- hardware control.
- */
-
-#define WFC_DEBUG_DRIVER 0
-#define WFC_FX_IOCTL 1
-#define WFC_PATCH_STATUS 2
-#define WFC_PROGRAM_STATUS 3
-#define WFC_SAMPLE_STATUS 4
-#define WFC_DISABLE_INTERRUPTS 5
-#define WFC_ENABLE_INTERRUPTS 6
-#define WFC_INTERRUPT_STATUS 7
-#define WFC_ROMSAMPLES_RDONLY 8
-#define WFC_IDENTIFY_SLOT_TYPE 9
-
-/* Wavefront synth commands
- */
-
-#define WFC_DOWNLOAD_SAMPLE 0x80
-#define WFC_DOWNLOAD_BLOCK 0x81
-#define WFC_DOWNLOAD_MULTISAMPLE 0x82
-#define WFC_DOWNLOAD_SAMPLE_ALIAS 0x83
-#define WFC_DELETE_SAMPLE 0x84
-#define WFC_REPORT_FREE_MEMORY 0x85
-#define WFC_DOWNLOAD_PATCH 0x86
-#define WFC_DOWNLOAD_PROGRAM 0x87
-#define WFC_SET_SYNTHVOL 0x89
-#define WFC_SET_NVOICES 0x8B
-#define WFC_DOWNLOAD_DRUM 0x90
-#define WFC_GET_SYNTHVOL 0x92
-#define WFC_GET_NVOICES 0x94
-#define WFC_DISABLE_CHANNEL 0x9A
-#define WFC_ENABLE_CHANNEL 0x9B
-#define WFC_MISYNTH_OFF 0x9D
-#define WFC_MISYNTH_ON 0x9E
-#define WFC_FIRMWARE_VERSION 0x9F
-#define WFC_GET_NSAMPLES 0xA0
-#define WFC_DISABLE_DRUM_PROGRAM 0xA2
-#define WFC_UPLOAD_PATCH 0xA3
-#define WFC_UPLOAD_PROGRAM 0xA4
-#define WFC_SET_TUNING 0xA6
-#define WFC_GET_TUNING 0xA7
-#define WFC_VMIDI_ON 0xA8
-#define WFC_VMIDI_OFF 0xA9
-#define WFC_MIDI_STATUS 0xAA
-#define WFC_GET_CHANNEL_STATUS 0xAB
-#define WFC_DOWNLOAD_SAMPLE_HEADER 0xAC
-#define WFC_UPLOAD_SAMPLE_HEADER 0xAD
-#define WFC_UPLOAD_MULTISAMPLE 0xAE
-#define WFC_UPLOAD_SAMPLE_ALIAS 0xAF
-#define WFC_IDENTIFY_SAMPLE_TYPE 0xB0
-#define WFC_DOWNLOAD_EDRUM_PROGRAM 0xB1
-#define WFC_UPLOAD_EDRUM_PROGRAM 0xB2
-#define WFC_SET_EDRUM_CHANNEL 0xB3
-#define WFC_INSTOUT_LEVELS 0xB4
-#define WFC_PEAKOUT_LEVELS 0xB5
-#define WFC_REPORT_CHANNEL_PROGRAMS 0xB6
-#define WFC_HARDWARE_VERSION 0xCF
-#define WFC_UPLOAD_SAMPLE_PARAMS 0xD7
-#define WFC_DOWNLOAD_OS 0xF1
-#define WFC_NOOP 0xFF
-
-#define WF_MAX_SAMPLE 512
-#define WF_MAX_PATCH 256
-#define WF_MAX_PROGRAM 128
-
-#define WF_SECTION_MAX 44 /* longest OS section length */
-
-/* # of bytes we send to the board when sending it various kinds of
- substantive data, such as samples, patches and programs.
-*/
-
-#define WF_PROGRAM_BYTES 32
-#define WF_PATCH_BYTES 132
-#define WF_SAMPLE_BYTES 27
-#define WF_SAMPLE_HDR_BYTES 25
-#define WF_ALIAS_BYTES 25
-#define WF_DRUM_BYTES 9
-#define WF_MSAMPLE_BYTES 259 /* (MIDI_KEYS * 2) + 3 */
-
-#define WF_ACK 0x80
-#define WF_DMA_ACK 0x81
-
-/* OR-values for MIDI status bits */
-
-#define WF_MIDI_VIRTUAL_ENABLED 0x1
-#define WF_MIDI_VIRTUAL_IS_EXTERNAL 0x2
-#define WF_MIDI_IN_TO_SYNTH_DISABLED 0x4
-
-/* slot indexes for struct address_info: makes code a little more mnemonic */
-
-#define WF_SYNTH_SLOT 0
-#define WF_INTERNAL_MIDI_SLOT 1
-#define WF_EXTERNAL_MIDI_SLOT 2
-
-/* Magic MIDI bytes used to switch I/O streams on the ICS2115 MPU401
- emulation. Note these NEVER show up in output from the device and
- should NEVER be used in input unless Virtual MIDI mode has been
- disabled. If they do show up as input, the results are unpredictable.
-*/
-
-#define WF_EXTERNAL_SWITCH 0xFD
-#define WF_INTERNAL_SWITCH 0xF9
-
-/* Debugging flags */
-
-#define WF_DEBUG_CMD 0x1
-#define WF_DEBUG_DATA 0x2
-#define WF_DEBUG_LOAD_PATCH 0x4
-#define WF_DEBUG_IO 0x8
-
-/* WavePatch file format stuff */
-
-#define WF_WAVEPATCH_VERSION 120; /* Current version number (1.2) */
-#define WF_MAX_COMMENT 64 /* Comment length */
-#define WF_NUM_LAYERS 4
-#define WF_NAME_LENGTH 32
-#define WF_SOURCE_LENGTH 260
-
-#define BankFileID "Bank"
-#define DrumkitFileID "DrumKit"
-#define ProgramFileID "Program"
-
-struct wf_envelope
-{
- u8 attack_time:7;
- u8 Unused1:1;
-
- u8 decay1_time:7;
- u8 Unused2:1;
-
- u8 decay2_time:7;
- u8 Unused3:1;
-
- u8 sustain_time:7;
- u8 Unused4:1;
-
- u8 release_time:7;
- u8 Unused5:1;
-
- u8 release2_time:7;
- u8 Unused6:1;
-
- s8 attack_level;
- s8 decay1_level;
- s8 decay2_level;
- s8 sustain_level;
- s8 release_level;
-
- u8 attack_velocity:7;
- u8 Unused7:1;
-
- u8 volume_velocity:7;
- u8 Unused8:1;
-
- u8 keyboard_scaling:7;
- u8 Unused9:1;
-};
-typedef struct wf_envelope wavefront_envelope;
-
-struct wf_lfo
-{
- u8 sample_number;
-
- u8 frequency:7;
- u8 Unused1:1;
-
- u8 am_src:4;
- u8 fm_src:4;
-
- s8 fm_amount;
- s8 am_amount;
- s8 start_level;
- s8 end_level;
-
- u8 ramp_delay:7;
- u8 wave_restart:1; /* for LFO2 only */
-
- u8 ramp_time:7;
- u8 Unused2:1;
-};
-typedef struct wf_lfo wavefront_lfo;
-
-struct wf_patch
-{
- s16 frequency_bias; /* ** THIS IS IN MOTOROLA FORMAT!! ** */
-
- u8 amplitude_bias:7;
- u8 Unused1:1;
-
- u8 portamento:7;
- u8 Unused2:1;
-
- u8 sample_number;
-
- u8 pitch_bend:4;
- u8 sample_msb:1;
- u8 Unused3:3;
-
- u8 mono:1;
- u8 retrigger:1;
- u8 nohold:1;
- u8 restart:1;
- u8 filterconfig:2; /* SDK says "not used" */
- u8 reuse:1;
- u8 reset_lfo:1;
-
- u8 fm_src2:4;
- u8 fm_src1:4;
-
- s8 fm_amount1;
- s8 fm_amount2;
-
- u8 am_src:4;
- u8 Unused4:4;
-
- s8 am_amount;
-
- u8 fc1_mode:4;
- u8 fc2_mode:4;
-
- s8 fc1_mod_amount;
- s8 fc1_keyboard_scaling;
- s8 fc1_bias;
- s8 fc2_mod_amount;
- s8 fc2_keyboard_scaling;
- s8 fc2_bias;
-
- u8 randomizer:7;
- u8 Unused5:1;
-
- struct wf_envelope envelope1;
- struct wf_envelope envelope2;
- struct wf_lfo lfo1;
- struct wf_lfo lfo2;
-};
-typedef struct wf_patch wavefront_patch;
-
-struct wf_layer
-{
- u8 patch_number;
-
- u8 mix_level:7;
- u8 mute:1;
-
- u8 split_point:7;
- u8 play_below:1;
-
- u8 pan_mod_src:2;
- u8 pan_or_mod:1;
- u8 pan:4;
- u8 split_type:1;
-};
-typedef struct wf_layer wavefront_layer;
-
-struct wf_program
-{
- struct wf_layer layer[WF_NUM_LAYERS];
-};
-typedef struct wf_program wavefront_program;
-
-struct wf_sample_offset
-{
- s32 Fraction:4;
- s32 Integer:20;
- s32 Unused:8;
-};
-typedef struct wf_sample_offset wavefront_sample_offset;
-
-/* Sample slot types */
-
-#define WF_ST_SAMPLE 0
-#define WF_ST_MULTISAMPLE 1
-#define WF_ST_ALIAS 2
-#define WF_ST_EMPTY 3
-
-/* pseudo's */
-
-#define WF_ST_DRUM 4
-#define WF_ST_PROGRAM 5
-#define WF_ST_PATCH 6
-#define WF_ST_SAMPLEHDR 7
-
-#define WF_ST_MASK 0xf
-
-/* Flags for slot status. These occupy the upper bits of the same byte
- as a sample type.
-*/
-
-#define WF_SLOT_USED 0x80 /* XXX don't rely on this being accurate */
-#define WF_SLOT_FILLED 0x40
-#define WF_SLOT_ROM 0x20
-
-#define WF_SLOT_MASK 0xf0
-
-/* channel constants */
-
-#define WF_CH_MONO 0
-#define WF_CH_LEFT 1
-#define WF_CH_RIGHT 2
-
-/* Sample formats */
-
-#define LINEAR_16BIT 0
-#define WHITE_NOISE 1
-#define LINEAR_8BIT 2
-#define MULAW_8BIT 3
-
-#define WF_SAMPLE_IS_8BIT(smpl) ((smpl)->SampleResolution&2)
-
-
-/*
-
- Because most/all of the sample data we pass in via pointers has
- never been copied (just mmap-ed into user space straight from the
- disk), it would be nice to allow handling of multi-channel sample
- data without forcing user-level extraction of the relevant bytes.
-
- So, we need a way of specifying which channel to use (the WaveFront
- only handles mono samples in a given slot), and the only way to do
- this without using some struct other than wavefront_sample as the
- interface is the awful hack of using the unused bits in a
- wavefront_sample:
-
- Val Meaning
- --- -------
- 0 no channel selection (use channel 1, sample is MONO)
- 1 use first channel, and skip one
- 2 use second channel, and skip one
- 3 use third channel, and skip two
- 4 use fourth channel, skip three
- 5 use fifth channel, skip four
- 6 use six channel, skip five
-
-
- This can handle up to 4 channels, and anyone downloading >4 channels
- of sample data just to select one of them needs to find some tools
- like sox ...
-
- NOTE: values 0, 1 and 2 correspond to WF_CH_* above. This is
- important.
-
-*/
-
-#define WF_SET_CHANNEL(samp,chn) \
- (samp)->Unused1 = chn & 0x1; \
- (samp)->Unused2 = chn & 0x2; \
- (samp)->Unused3 = chn & 0x4
-
-#define WF_GET_CHANNEL(samp) \
- (((samp)->Unused3 << 2)|((samp)->Unused2<<1)|(samp)->Unused1)
-
-typedef struct wf_sample {
- struct wf_sample_offset sampleStartOffset;
- struct wf_sample_offset loopStartOffset;
- struct wf_sample_offset loopEndOffset;
- struct wf_sample_offset sampleEndOffset;
- s16 FrequencyBias;
- u8 SampleResolution:2; /* sample_format */
- u8 Unused1:1;
- u8 Loop:1;
- u8 Bidirectional:1;
- u8 Unused2:1;
- u8 Reverse:1;
- u8 Unused3:1;
-} wavefront_sample;
-
-typedef struct wf_multisample {
- s16 NumberOfSamples; /* log2 of the number of samples */
- s16 SampleNumber[NUM_MIDIKEYS];
-} wavefront_multisample;
-
-typedef struct wf_alias {
- s16 OriginalSample;
-
- struct wf_sample_offset sampleStartOffset;
- struct wf_sample_offset loopStartOffset;
- struct wf_sample_offset sampleEndOffset;
- struct wf_sample_offset loopEndOffset;
-
- s16 FrequencyBias;
-
- u8 SampleResolution:2;
- u8 Unused1:1;
- u8 Loop:1;
- u8 Bidirectional:1;
- u8 Unused2:1;
- u8 Reverse:1;
- u8 Unused3:1;
-
- /* This structure is meant to be padded only to 16 bits on their
- original. Of course, whoever wrote their documentation didn't
- realize that sizeof(struct) can be >=
- sum(sizeof(struct-fields)) and so thought that giving a C level
- description of the structs used in WavePatch files was
- sufficient. I suppose it was, as long as you remember the
- standard 16->32 bit issues.
- */
-
- u8 sixteen_bit_padding;
-} __attribute__((packed)) wavefront_alias;
-
-typedef struct wf_drum {
- u8 PatchNumber;
- u8 MixLevel:7;
- u8 Unmute:1;
- u8 Group:4;
- u8 Unused1:4;
- u8 PanModSource:2;
- u8 PanModulated:1;
- u8 PanAmount:4;
- u8 Unused2:1;
-} wavefront_drum;
-
-typedef struct wf_drumkit {
- struct wf_drum drum[NUM_MIDIKEYS];
-} wavefront_drumkit;
-
-typedef struct wf_channel_programs {
- u8 Program[NUM_MIDICHANNELS];
-} wavefront_channel_programs;
-
-/* How to get MIDI channel status from the data returned by
- a WFC_GET_CHANNEL_STATUS command (a struct wf_channel_programs)
-*/
-
-#define WF_CHANNEL_STATUS(ch,wcp) (wcp)[(ch/7)] & (1<<((ch)%7))
-
-typedef union wf_any {
- wavefront_sample s;
- wavefront_multisample ms;
- wavefront_alias a;
- wavefront_program pr;
- wavefront_patch p;
- wavefront_drum d;
-} wavefront_any;
-
-/* Hannu Solvainen hoped that his "patch_info" struct in soundcard.h
- might work for other wave-table based patch loading situations.
- Alas, his fears were correct. The WaveFront doesn't even come with
- just "patches", but several different kind of structures that
- control the sound generation process.
- */
-
-typedef struct wf_patch_info {
-
- /* the first two fields are used by the OSS "patch loading" interface
- only, and are unused by the current user-level library.
- */
-
- s16 key; /* Use WAVEFRONT_PATCH here */
- u16 devno; /* fill in when sending */
- u8 subkey; /* WF_ST_{SAMPLE,ALIAS,etc.} */
-
-#define WAVEFRONT_FIND_FREE_SAMPLE_SLOT 999
-
- u16 number; /* patch/sample/prog number */
-
- u32 size; /* size of any data included in
- one of the fields in `hdrptr', or
- as `dataptr'.
-
- NOTE: for actual samples, this is
- the size of the *SELECTED CHANNEL*
- even if more data is actually available.
-
- So, a stereo sample (2 channels) of
- 6000 bytes total has `size' = 3000.
-
- See the macros and comments for
- WF_{GET,SET}_CHANNEL above.
-
- */
- wavefront_any __user *hdrptr; /* user-space ptr to hdr bytes */
- u16 __user *dataptr; /* actual sample data */
-
- wavefront_any hdr; /* kernel-space copy of hdr bytes */
-} wavefront_patch_info;
-
-/* The maximum number of bytes we will ever move to or from user space
- in response to a WFC_* command. This obviously doesn't cover
- actual sample data.
-*/
-
-#define WF_MAX_READ sizeof(wavefront_multisample)
-#define WF_MAX_WRITE sizeof(wavefront_multisample)
-
-/*
- This allows us to execute any WF command except the download/upload
- ones, which are handled differently due to copyin/copyout issues as
- well as data-nybbling to/from the card.
- */
-
-typedef struct wavefront_control {
- int cmd; /* WFC_* */
- char status; /* return status to user-space */
- unsigned char rbuf[WF_MAX_READ]; /* bytes read from card */
- unsigned char wbuf[WF_MAX_WRITE]; /* bytes written to card */
-} wavefront_control;
-
-#define WFCTL_WFCMD 0x1
-#define WFCTL_LOAD_SPP 0x2
-
-/* Modulator table */
-
-#define WF_MOD_LFO1 0
-#define WF_MOD_LFO2 1
-#define WF_MOD_ENV1 2
-#define WF_MOD_ENV2 3
-#define WF_MOD_KEYBOARD 4
-#define WF_MOD_LOGKEY 5
-#define WF_MOD_VELOCITY 6
-#define WF_MOD_LOGVEL 7
-#define WF_MOD_RANDOM 8
-#define WF_MOD_PRESSURE 9
-#define WF_MOD_MOD_WHEEL 10
-#define WF_MOD_1 WF_MOD_MOD_WHEEL
-#define WF_MOD_BREATH 11
-#define WF_MOD_2 WF_MOD_BREATH
-#define WF_MOD_FOOT 12
-#define WF_MOD_4 WF_MOD_FOOT
-#define WF_MOD_VOLUME 13
-#define WF_MOD_7 WF_MOD_VOLUME
-#define WF_MOD_PAN 14
-#define WF_MOD_10 WF_MOD_PAN
-#define WF_MOD_EXPR 15
-#define WF_MOD_11 WF_MOD_EXPR
-
-/* FX-related material */
-
-typedef struct wf_fx_info {
- int request; /* see list below */
- long data[4]; /* we don't need much */
-} wavefront_fx_info;
-
-/* support for each of these will be forthcoming once I or someone
- else has figured out which of the addresses on page 6 and page 7 of
- the YSS225 control each parameter. Incidentally, these come from
- the Windows driver interface, but again, Turtle Beach didn't
- document the API to use them.
-*/
-
-#define WFFX_SETOUTGAIN 0
-#define WFFX_SETSTEREOOUTGAIN 1
-#define WFFX_SETREVERBIN1GAIN 2
-#define WFFX_SETREVERBIN2GAIN 3
-#define WFFX_SETREVERBIN3GAIN 4
-#define WFFX_SETCHORUSINPORT 5
-#define WFFX_SETREVERBIN1PORT 6
-#define WFFX_SETREVERBIN2PORT 7
-#define WFFX_SETREVERBIN3PORT 8
-#define WFFX_SETEFFECTPORT 9
-#define WFFX_SETAUXPORT 10
-#define WFFX_SETREVERBTYPE 11
-#define WFFX_SETREVERBDELAY 12
-#define WFFX_SETCHORUSLFO 13
-#define WFFX_SETCHORUSPMD 14
-#define WFFX_SETCHORUSAMD 15
-#define WFFX_SETEFFECT 16
-#define WFFX_SETBASEALL 17
-#define WFFX_SETREVERBALL 18
-#define WFFX_SETCHORUSALL 20
-#define WFFX_SETREVERBDEF 22
-#define WFFX_SETCHORUSDEF 23
-#define WFFX_DELAYSETINGAIN 24
-#define WFFX_DELAYSETFBGAIN 25
-#define WFFX_DELAYSETFBLPF 26
-#define WFFX_DELAYSETGAIN 27
-#define WFFX_DELAYSETTIME 28
-#define WFFX_DELAYSETFBTIME 29
-#define WFFX_DELAYSETALL 30
-#define WFFX_DELAYSETDEF 32
-#define WFFX_SDELAYSETINGAIN 33
-#define WFFX_SDELAYSETFBGAIN 34
-#define WFFX_SDELAYSETFBLPF 35
-#define WFFX_SDELAYSETGAIN 36
-#define WFFX_SDELAYSETTIME 37
-#define WFFX_SDELAYSETFBTIME 38
-#define WFFX_SDELAYSETALL 39
-#define WFFX_SDELAYSETDEF 41
-#define WFFX_DEQSETINGAIN 42
-#define WFFX_DEQSETFILTER 43
-#define WFFX_DEQSETALL 44
-#define WFFX_DEQSETDEF 46
-#define WFFX_MUTE 47
-#define WFFX_FLANGESETBALANCE 48
-#define WFFX_FLANGESETDELAY 49
-#define WFFX_FLANGESETDWFFX_TH 50
-#define WFFX_FLANGESETFBGAIN 51
-#define WFFX_FLANGESETINGAIN 52
-#define WFFX_FLANGESETLFO 53
-#define WFFX_FLANGESETALL 54
-#define WFFX_FLANGESETDEF 56
-#define WFFX_PITCHSETSHIFT 57
-#define WFFX_PITCHSETBALANCE 58
-#define WFFX_PITCHSETALL 59
-#define WFFX_PITCHSETDEF 61
-#define WFFX_SRSSETINGAIN 62
-#define WFFX_SRSSETSPACE 63
-#define WFFX_SRSSETCENTER 64
-#define WFFX_SRSSETGAIN 65
-#define WFFX_SRSSETMODE 66
-#define WFFX_SRSSETDEF 68
-
-/* Allow direct user-space control over FX memory/coefficient data.
- In theory this could be used to download the FX microprogram,
- but it would be a little slower, and involve some weird code.
- */
-
-#define WFFX_MEMSET 69
-
-#endif /* __SOUND_WAVEFRONT_H__ */
diff --git a/ANDROID_3.4.5/include/sound/wm1250-ev1.h b/ANDROID_3.4.5/include/sound/wm1250-ev1.h
deleted file mode 100644
index 7dff8283..00000000
--- a/ANDROID_3.4.5/include/sound/wm1250-ev1.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * linux/sound/wm1250-ev1.h - Platform data for WM1250-EV1
- *
- * Copyright 2011 Wolfson Microelectronics. PLC.
- *
- * 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.
- */
-
-#ifndef __LINUX_SND_WM1250_EV1_H
-#define __LINUX_SND_WM1250_EV1_H
-
-#define WM1250_EV1_NUM_GPIOS 5
-
-#define WM1250_EV1_GPIO_CLK_ENA 0
-#define WM1250_EV1_GPIO_CLK_SEL0 1
-#define WM1250_EV1_GPIO_CLK_SEL1 2
-#define WM1250_EV1_GPIO_OSR 3
-#define WM1250_EV1_GPIO_MASTER 4
-
-
-struct wm1250_ev1_pdata {
- int gpios[WM1250_EV1_NUM_GPIOS];
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/sound/wm2000.h b/ANDROID_3.4.5/include/sound/wm2000.h
deleted file mode 100644
index aa388ca9..00000000
--- a/ANDROID_3.4.5/include/sound/wm2000.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * linux/sound/wm2000.h -- Platform data for WM2000
- *
- * Copyright 2010 Wolfson Microelectronics. PLC.
- *
- * 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.
- */
-
-#ifndef __LINUX_SND_WM2000_H
-#define __LINUX_SND_WM2000_H
-
-struct wm2000_platform_data {
- /** Filename for system-specific image to download to device. */
- const char *download_file;
-
- /** Divide MCLK by 2 for system clock? */
- unsigned int mclkdiv2:1;
-
- /** Disable speech clarity enhancement, for use when an
- * external algorithm is used. */
- unsigned int speech_enh_disable:1;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/sound/wm2200.h b/ANDROID_3.4.5/include/sound/wm2200.h
deleted file mode 100644
index 79bf55be..00000000
--- a/ANDROID_3.4.5/include/sound/wm2200.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * linux/sound/wm2200.h -- Platform data for WM2200
- *
- * Copyright 2012 Wolfson Microelectronics. PLC.
- *
- * 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.
- */
-
-#ifndef __LINUX_SND_WM2200_H
-#define __LINUX_SND_WM2200_H
-
-#define WM2200_GPIO_SET 0x10000
-
-enum wm2200_in_mode {
- WM2200_IN_SE = 0,
- WM2200_IN_DIFF = 1,
- WM2200_IN_DMIC = 2,
-};
-
-enum wm2200_dmic_sup {
- WM2200_DMIC_SUP_MICVDD = 0,
- WM2200_DMIC_SUP_MICBIAS1 = 1,
- WM2200_DMIC_SUP_MICBIAS2 = 2,
-};
-
-struct wm2200_pdata {
- int reset; /** GPIO controlling /RESET, if any */
- int ldo_ena; /** GPIO controlling LODENA, if any */
- int irq_flags;
-
- int gpio_defaults[4];
-
- enum wm2200_in_mode in_mode[3];
- enum wm2200_dmic_sup dmic_sup[3];
-
- int micbias_cfg[2]; /** Register value to configure MICBIAS */
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/sound/wm5100.h b/ANDROID_3.4.5/include/sound/wm5100.h
deleted file mode 100644
index 617d0c4a..00000000
--- a/ANDROID_3.4.5/include/sound/wm5100.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * linux/sound/wm5100.h -- Platform data for WM5100
- *
- * Copyright 2011 Wolfson Microelectronics. PLC.
- *
- * 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.
- */
-
-#ifndef __LINUX_SND_WM5100_H
-#define __LINUX_SND_WM5100_H
-
-enum wm5100_in_mode {
- WM5100_IN_SE = 0,
- WM5100_IN_DIFF = 1,
- WM5100_IN_DMIC = 2,
-};
-
-enum wm5100_dmic_sup {
- WM5100_DMIC_SUP_MICVDD = 0,
- WM5100_DMIC_SUP_MICBIAS1 = 1,
- WM5100_DMIC_SUP_MICBIAS2 = 2,
- WM5100_DMIC_SUP_MICBIAS3 = 3,
-};
-
-enum wm5100_micdet_bias {
- WM5100_MICDET_MICBIAS1 = 0,
- WM5100_MICDET_MICBIAS2 = 1,
- WM5100_MICDET_MICBIAS3 = 2,
-};
-
-struct wm5100_jack_mode {
- enum wm5100_micdet_bias bias;
- int hp_pol;
- int micd_src;
-};
-
-#define WM5100_GPIO_SET 0x10000
-
-struct wm5100_pdata {
- int reset; /** GPIO controlling /RESET, if any */
- int ldo_ena; /** GPIO controlling LODENA, if any */
- int hp_pol; /** GPIO controlling headset polarity, if any */
- int irq_flags;
- int gpio_base;
-
- struct wm5100_jack_mode jack_modes[2];
-
- /* Input pin mode selection */
- enum wm5100_in_mode in_mode[4];
-
- /* DMIC supply selection */
- enum wm5100_dmic_sup dmic_sup[4];
-
- int gpio_defaults[6];
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/sound/wm8903.h b/ANDROID_3.4.5/include/sound/wm8903.h
deleted file mode 100644
index b310c5a3..00000000
--- a/ANDROID_3.4.5/include/sound/wm8903.h
+++ /dev/null
@@ -1,266 +0,0 @@
-/*
- * linux/sound/wm8903.h -- Platform data for WM8903
- *
- * Copyright 2010 Wolfson Microelectronics. PLC.
- *
- * 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.
- */
-
-#ifndef __LINUX_SND_WM8903_H
-#define __LINUX_SND_WM8903_H
-
-/*
- * Used to enable configuration of a GPIO to all zeros; a gpio_cfg value of
- * zero in platform data means "don't touch this pin".
- */
-#define WM8903_GPIO_CONFIG_ZERO 0x8000
-
-/*
- * R6 (0x06) - Mic Bias Control 0
- */
-#define WM8903_MICDET_THR_MASK 0x0030 /* MICDET_THR - [5:4] */
-#define WM8903_MICDET_THR_SHIFT 4 /* MICDET_THR - [5:4] */
-#define WM8903_MICDET_THR_WIDTH 2 /* MICDET_THR - [5:4] */
-#define WM8903_MICSHORT_THR_MASK 0x000C /* MICSHORT_THR - [3:2] */
-#define WM8903_MICSHORT_THR_SHIFT 2 /* MICSHORT_THR - [3:2] */
-#define WM8903_MICSHORT_THR_WIDTH 2 /* MICSHORT_THR - [3:2] */
-#define WM8903_MICDET_ENA 0x0002 /* MICDET_ENA */
-#define WM8903_MICDET_ENA_MASK 0x0002 /* MICDET_ENA */
-#define WM8903_MICDET_ENA_SHIFT 1 /* MICDET_ENA */
-#define WM8903_MICDET_ENA_WIDTH 1 /* MICDET_ENA */
-#define WM8903_MICBIAS_ENA 0x0001 /* MICBIAS_ENA */
-#define WM8903_MICBIAS_ENA_MASK 0x0001 /* MICBIAS_ENA */
-#define WM8903_MICBIAS_ENA_SHIFT 0 /* MICBIAS_ENA */
-#define WM8903_MICBIAS_ENA_WIDTH 1 /* MICBIAS_ENA */
-
-/*
- * WM8903_GPn_FN values
- *
- * See datasheets for list of valid values per pin
- */
-#define WM8903_GPn_FN_GPIO_OUTPUT 0
-#define WM8903_GPn_FN_BCLK 1
-#define WM8903_GPn_FN_IRQ_OUTPT 2
-#define WM8903_GPn_FN_GPIO_INPUT 3
-#define WM8903_GPn_FN_MICBIAS_CURRENT_DETECT 4
-#define WM8903_GPn_FN_MICBIAS_SHORT_DETECT 5
-#define WM8903_GPn_FN_DMIC_LR_CLK_OUTPUT 6
-#define WM8903_GPn_FN_FLL_LOCK_OUTPUT 8
-#define WM8903_GPn_FN_FLL_CLOCK_OUTPUT 9
-
-/*
- * R116 (0x74) - GPIO Control 1
- */
-#define WM8903_GP1_FN_MASK 0x1F00 /* GP1_FN - [12:8] */
-#define WM8903_GP1_FN_SHIFT 8 /* GP1_FN - [12:8] */
-#define WM8903_GP1_FN_WIDTH 5 /* GP1_FN - [12:8] */
-#define WM8903_GP1_DIR 0x0080 /* GP1_DIR */
-#define WM8903_GP1_DIR_MASK 0x0080 /* GP1_DIR */
-#define WM8903_GP1_DIR_SHIFT 7 /* GP1_DIR */
-#define WM8903_GP1_DIR_WIDTH 1 /* GP1_DIR */
-#define WM8903_GP1_OP_CFG 0x0040 /* GP1_OP_CFG */
-#define WM8903_GP1_OP_CFG_MASK 0x0040 /* GP1_OP_CFG */
-#define WM8903_GP1_OP_CFG_SHIFT 6 /* GP1_OP_CFG */
-#define WM8903_GP1_OP_CFG_WIDTH 1 /* GP1_OP_CFG */
-#define WM8903_GP1_IP_CFG 0x0020 /* GP1_IP_CFG */
-#define WM8903_GP1_IP_CFG_MASK 0x0020 /* GP1_IP_CFG */
-#define WM8903_GP1_IP_CFG_SHIFT 5 /* GP1_IP_CFG */
-#define WM8903_GP1_IP_CFG_WIDTH 1 /* GP1_IP_CFG */
-#define WM8903_GP1_LVL 0x0010 /* GP1_LVL */
-#define WM8903_GP1_LVL_MASK 0x0010 /* GP1_LVL */
-#define WM8903_GP1_LVL_SHIFT 4 /* GP1_LVL */
-#define WM8903_GP1_LVL_WIDTH 1 /* GP1_LVL */
-#define WM8903_GP1_PD 0x0008 /* GP1_PD */
-#define WM8903_GP1_PD_MASK 0x0008 /* GP1_PD */
-#define WM8903_GP1_PD_SHIFT 3 /* GP1_PD */
-#define WM8903_GP1_PD_WIDTH 1 /* GP1_PD */
-#define WM8903_GP1_PU 0x0004 /* GP1_PU */
-#define WM8903_GP1_PU_MASK 0x0004 /* GP1_PU */
-#define WM8903_GP1_PU_SHIFT 2 /* GP1_PU */
-#define WM8903_GP1_PU_WIDTH 1 /* GP1_PU */
-#define WM8903_GP1_INTMODE 0x0002 /* GP1_INTMODE */
-#define WM8903_GP1_INTMODE_MASK 0x0002 /* GP1_INTMODE */
-#define WM8903_GP1_INTMODE_SHIFT 1 /* GP1_INTMODE */
-#define WM8903_GP1_INTMODE_WIDTH 1 /* GP1_INTMODE */
-#define WM8903_GP1_DB 0x0001 /* GP1_DB */
-#define WM8903_GP1_DB_MASK 0x0001 /* GP1_DB */
-#define WM8903_GP1_DB_SHIFT 0 /* GP1_DB */
-#define WM8903_GP1_DB_WIDTH 1 /* GP1_DB */
-
-/*
- * R117 (0x75) - GPIO Control 2
- */
-#define WM8903_GP2_FN_MASK 0x1F00 /* GP2_FN - [12:8] */
-#define WM8903_GP2_FN_SHIFT 8 /* GP2_FN - [12:8] */
-#define WM8903_GP2_FN_WIDTH 5 /* GP2_FN - [12:8] */
-#define WM8903_GP2_DIR 0x0080 /* GP2_DIR */
-#define WM8903_GP2_DIR_MASK 0x0080 /* GP2_DIR */
-#define WM8903_GP2_DIR_SHIFT 7 /* GP2_DIR */
-#define WM8903_GP2_DIR_WIDTH 1 /* GP2_DIR */
-#define WM8903_GP2_OP_CFG 0x0040 /* GP2_OP_CFG */
-#define WM8903_GP2_OP_CFG_MASK 0x0040 /* GP2_OP_CFG */
-#define WM8903_GP2_OP_CFG_SHIFT 6 /* GP2_OP_CFG */
-#define WM8903_GP2_OP_CFG_WIDTH 1 /* GP2_OP_CFG */
-#define WM8903_GP2_IP_CFG 0x0020 /* GP2_IP_CFG */
-#define WM8903_GP2_IP_CFG_MASK 0x0020 /* GP2_IP_CFG */
-#define WM8903_GP2_IP_CFG_SHIFT 5 /* GP2_IP_CFG */
-#define WM8903_GP2_IP_CFG_WIDTH 1 /* GP2_IP_CFG */
-#define WM8903_GP2_LVL 0x0010 /* GP2_LVL */
-#define WM8903_GP2_LVL_MASK 0x0010 /* GP2_LVL */
-#define WM8903_GP2_LVL_SHIFT 4 /* GP2_LVL */
-#define WM8903_GP2_LVL_WIDTH 1 /* GP2_LVL */
-#define WM8903_GP2_PD 0x0008 /* GP2_PD */
-#define WM8903_GP2_PD_MASK 0x0008 /* GP2_PD */
-#define WM8903_GP2_PD_SHIFT 3 /* GP2_PD */
-#define WM8903_GP2_PD_WIDTH 1 /* GP2_PD */
-#define WM8903_GP2_PU 0x0004 /* GP2_PU */
-#define WM8903_GP2_PU_MASK 0x0004 /* GP2_PU */
-#define WM8903_GP2_PU_SHIFT 2 /* GP2_PU */
-#define WM8903_GP2_PU_WIDTH 1 /* GP2_PU */
-#define WM8903_GP2_INTMODE 0x0002 /* GP2_INTMODE */
-#define WM8903_GP2_INTMODE_MASK 0x0002 /* GP2_INTMODE */
-#define WM8903_GP2_INTMODE_SHIFT 1 /* GP2_INTMODE */
-#define WM8903_GP2_INTMODE_WIDTH 1 /* GP2_INTMODE */
-#define WM8903_GP2_DB 0x0001 /* GP2_DB */
-#define WM8903_GP2_DB_MASK 0x0001 /* GP2_DB */
-#define WM8903_GP2_DB_SHIFT 0 /* GP2_DB */
-#define WM8903_GP2_DB_WIDTH 1 /* GP2_DB */
-
-/*
- * R118 (0x76) - GPIO Control 3
- */
-#define WM8903_GP3_FN_MASK 0x1F00 /* GP3_FN - [12:8] */
-#define WM8903_GP3_FN_SHIFT 8 /* GP3_FN - [12:8] */
-#define WM8903_GP3_FN_WIDTH 5 /* GP3_FN - [12:8] */
-#define WM8903_GP3_DIR 0x0080 /* GP3_DIR */
-#define WM8903_GP3_DIR_MASK 0x0080 /* GP3_DIR */
-#define WM8903_GP3_DIR_SHIFT 7 /* GP3_DIR */
-#define WM8903_GP3_DIR_WIDTH 1 /* GP3_DIR */
-#define WM8903_GP3_OP_CFG 0x0040 /* GP3_OP_CFG */
-#define WM8903_GP3_OP_CFG_MASK 0x0040 /* GP3_OP_CFG */
-#define WM8903_GP3_OP_CFG_SHIFT 6 /* GP3_OP_CFG */
-#define WM8903_GP3_OP_CFG_WIDTH 1 /* GP3_OP_CFG */
-#define WM8903_GP3_IP_CFG 0x0020 /* GP3_IP_CFG */
-#define WM8903_GP3_IP_CFG_MASK 0x0020 /* GP3_IP_CFG */
-#define WM8903_GP3_IP_CFG_SHIFT 5 /* GP3_IP_CFG */
-#define WM8903_GP3_IP_CFG_WIDTH 1 /* GP3_IP_CFG */
-#define WM8903_GP3_LVL 0x0010 /* GP3_LVL */
-#define WM8903_GP3_LVL_MASK 0x0010 /* GP3_LVL */
-#define WM8903_GP3_LVL_SHIFT 4 /* GP3_LVL */
-#define WM8903_GP3_LVL_WIDTH 1 /* GP3_LVL */
-#define WM8903_GP3_PD 0x0008 /* GP3_PD */
-#define WM8903_GP3_PD_MASK 0x0008 /* GP3_PD */
-#define WM8903_GP3_PD_SHIFT 3 /* GP3_PD */
-#define WM8903_GP3_PD_WIDTH 1 /* GP3_PD */
-#define WM8903_GP3_PU 0x0004 /* GP3_PU */
-#define WM8903_GP3_PU_MASK 0x0004 /* GP3_PU */
-#define WM8903_GP3_PU_SHIFT 2 /* GP3_PU */
-#define WM8903_GP3_PU_WIDTH 1 /* GP3_PU */
-#define WM8903_GP3_INTMODE 0x0002 /* GP3_INTMODE */
-#define WM8903_GP3_INTMODE_MASK 0x0002 /* GP3_INTMODE */
-#define WM8903_GP3_INTMODE_SHIFT 1 /* GP3_INTMODE */
-#define WM8903_GP3_INTMODE_WIDTH 1 /* GP3_INTMODE */
-#define WM8903_GP3_DB 0x0001 /* GP3_DB */
-#define WM8903_GP3_DB_MASK 0x0001 /* GP3_DB */
-#define WM8903_GP3_DB_SHIFT 0 /* GP3_DB */
-#define WM8903_GP3_DB_WIDTH 1 /* GP3_DB */
-
-/*
- * R119 (0x77) - GPIO Control 4
- */
-#define WM8903_GP4_FN_MASK 0x1F00 /* GP4_FN - [12:8] */
-#define WM8903_GP4_FN_SHIFT 8 /* GP4_FN - [12:8] */
-#define WM8903_GP4_FN_WIDTH 5 /* GP4_FN - [12:8] */
-#define WM8903_GP4_DIR 0x0080 /* GP4_DIR */
-#define WM8903_GP4_DIR_MASK 0x0080 /* GP4_DIR */
-#define WM8903_GP4_DIR_SHIFT 7 /* GP4_DIR */
-#define WM8903_GP4_DIR_WIDTH 1 /* GP4_DIR */
-#define WM8903_GP4_OP_CFG 0x0040 /* GP4_OP_CFG */
-#define WM8903_GP4_OP_CFG_MASK 0x0040 /* GP4_OP_CFG */
-#define WM8903_GP4_OP_CFG_SHIFT 6 /* GP4_OP_CFG */
-#define WM8903_GP4_OP_CFG_WIDTH 1 /* GP4_OP_CFG */
-#define WM8903_GP4_IP_CFG 0x0020 /* GP4_IP_CFG */
-#define WM8903_GP4_IP_CFG_MASK 0x0020 /* GP4_IP_CFG */
-#define WM8903_GP4_IP_CFG_SHIFT 5 /* GP4_IP_CFG */
-#define WM8903_GP4_IP_CFG_WIDTH 1 /* GP4_IP_CFG */
-#define WM8903_GP4_LVL 0x0010 /* GP4_LVL */
-#define WM8903_GP4_LVL_MASK 0x0010 /* GP4_LVL */
-#define WM8903_GP4_LVL_SHIFT 4 /* GP4_LVL */
-#define WM8903_GP4_LVL_WIDTH 1 /* GP4_LVL */
-#define WM8903_GP4_PD 0x0008 /* GP4_PD */
-#define WM8903_GP4_PD_MASK 0x0008 /* GP4_PD */
-#define WM8903_GP4_PD_SHIFT 3 /* GP4_PD */
-#define WM8903_GP4_PD_WIDTH 1 /* GP4_PD */
-#define WM8903_GP4_PU 0x0004 /* GP4_PU */
-#define WM8903_GP4_PU_MASK 0x0004 /* GP4_PU */
-#define WM8903_GP4_PU_SHIFT 2 /* GP4_PU */
-#define WM8903_GP4_PU_WIDTH 1 /* GP4_PU */
-#define WM8903_GP4_INTMODE 0x0002 /* GP4_INTMODE */
-#define WM8903_GP4_INTMODE_MASK 0x0002 /* GP4_INTMODE */
-#define WM8903_GP4_INTMODE_SHIFT 1 /* GP4_INTMODE */
-#define WM8903_GP4_INTMODE_WIDTH 1 /* GP4_INTMODE */
-#define WM8903_GP4_DB 0x0001 /* GP4_DB */
-#define WM8903_GP4_DB_MASK 0x0001 /* GP4_DB */
-#define WM8903_GP4_DB_SHIFT 0 /* GP4_DB */
-#define WM8903_GP4_DB_WIDTH 1 /* GP4_DB */
-
-/*
- * R120 (0x78) - GPIO Control 5
- */
-#define WM8903_GP5_FN_MASK 0x1F00 /* GP5_FN - [12:8] */
-#define WM8903_GP5_FN_SHIFT 8 /* GP5_FN - [12:8] */
-#define WM8903_GP5_FN_WIDTH 5 /* GP5_FN - [12:8] */
-#define WM8903_GP5_DIR 0x0080 /* GP5_DIR */
-#define WM8903_GP5_DIR_MASK 0x0080 /* GP5_DIR */
-#define WM8903_GP5_DIR_SHIFT 7 /* GP5_DIR */
-#define WM8903_GP5_DIR_WIDTH 1 /* GP5_DIR */
-#define WM8903_GP5_OP_CFG 0x0040 /* GP5_OP_CFG */
-#define WM8903_GP5_OP_CFG_MASK 0x0040 /* GP5_OP_CFG */
-#define WM8903_GP5_OP_CFG_SHIFT 6 /* GP5_OP_CFG */
-#define WM8903_GP5_OP_CFG_WIDTH 1 /* GP5_OP_CFG */
-#define WM8903_GP5_IP_CFG 0x0020 /* GP5_IP_CFG */
-#define WM8903_GP5_IP_CFG_MASK 0x0020 /* GP5_IP_CFG */
-#define WM8903_GP5_IP_CFG_SHIFT 5 /* GP5_IP_CFG */
-#define WM8903_GP5_IP_CFG_WIDTH 1 /* GP5_IP_CFG */
-#define WM8903_GP5_LVL 0x0010 /* GP5_LVL */
-#define WM8903_GP5_LVL_MASK 0x0010 /* GP5_LVL */
-#define WM8903_GP5_LVL_SHIFT 4 /* GP5_LVL */
-#define WM8903_GP5_LVL_WIDTH 1 /* GP5_LVL */
-#define WM8903_GP5_PD 0x0008 /* GP5_PD */
-#define WM8903_GP5_PD_MASK 0x0008 /* GP5_PD */
-#define WM8903_GP5_PD_SHIFT 3 /* GP5_PD */
-#define WM8903_GP5_PD_WIDTH 1 /* GP5_PD */
-#define WM8903_GP5_PU 0x0004 /* GP5_PU */
-#define WM8903_GP5_PU_MASK 0x0004 /* GP5_PU */
-#define WM8903_GP5_PU_SHIFT 2 /* GP5_PU */
-#define WM8903_GP5_PU_WIDTH 1 /* GP5_PU */
-#define WM8903_GP5_INTMODE 0x0002 /* GP5_INTMODE */
-#define WM8903_GP5_INTMODE_MASK 0x0002 /* GP5_INTMODE */
-#define WM8903_GP5_INTMODE_SHIFT 1 /* GP5_INTMODE */
-#define WM8903_GP5_INTMODE_WIDTH 1 /* GP5_INTMODE */
-#define WM8903_GP5_DB 0x0001 /* GP5_DB */
-#define WM8903_GP5_DB_MASK 0x0001 /* GP5_DB */
-#define WM8903_GP5_DB_SHIFT 0 /* GP5_DB */
-#define WM8903_GP5_DB_WIDTH 1 /* GP5_DB */
-
-#define WM8903_NUM_GPIO 5
-
-struct wm8903_platform_data {
- bool irq_active_low; /* Set if IRQ active low, default high */
-
- /* Default register value for R6 (Mic bias), used to configure
- * microphone detection. In conjunction with gpio_cfg this
- * can be used to route the microphone status signals out onto
- * the GPIOs for use with snd_soc_jack_add_gpios().
- */
- u16 micdet_cfg;
-
- int micdet_delay; /* Delay after microphone detection (ms) */
-
- int gpio_base;
- u32 gpio_cfg[WM8903_NUM_GPIO]; /* Default register values for GPIO pin mux */
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/sound/wm8904.h b/ANDROID_3.4.5/include/sound/wm8904.h
deleted file mode 100644
index 898be3a8..00000000
--- a/ANDROID_3.4.5/include/sound/wm8904.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Platform data for WM8904
- *
- * Copyright 2009 Wolfson Microelectronics PLC.
- *
- * Author: Mark Brown <broonie@opensource.wolfsonmicro.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 __MFD_WM8994_PDATA_H__
-#define __MFD_WM8994_PDATA_H__
-
-/* Used to enable configuration of a GPIO to all zeros */
-#define WM8904_GPIO_NO_CONFIG 0x8000
-
-/*
- * R6 (0x06) - Mic Bias Control 0
- */
-#define WM8904_MICDET_THR_MASK 0x0070 /* MICDET_THR - [6:4] */
-#define WM8904_MICDET_THR_SHIFT 4 /* MICDET_THR - [6:4] */
-#define WM8904_MICDET_THR_WIDTH 3 /* MICDET_THR - [6:4] */
-#define WM8904_MICSHORT_THR_MASK 0x000C /* MICSHORT_THR - [3:2] */
-#define WM8904_MICSHORT_THR_SHIFT 2 /* MICSHORT_THR - [3:2] */
-#define WM8904_MICSHORT_THR_WIDTH 2 /* MICSHORT_THR - [3:2] */
-#define WM8904_MICDET_ENA 0x0002 /* MICDET_ENA */
-#define WM8904_MICDET_ENA_MASK 0x0002 /* MICDET_ENA */
-#define WM8904_MICDET_ENA_SHIFT 1 /* MICDET_ENA */
-#define WM8904_MICDET_ENA_WIDTH 1 /* MICDET_ENA */
-#define WM8904_MICBIAS_ENA 0x0001 /* MICBIAS_ENA */
-#define WM8904_MICBIAS_ENA_MASK 0x0001 /* MICBIAS_ENA */
-#define WM8904_MICBIAS_ENA_SHIFT 0 /* MICBIAS_ENA */
-#define WM8904_MICBIAS_ENA_WIDTH 1 /* MICBIAS_ENA */
-
-/*
- * R7 (0x07) - Mic Bias Control 1
- */
-#define WM8904_MIC_DET_FILTER_ENA 0x8000 /* MIC_DET_FILTER_ENA */
-#define WM8904_MIC_DET_FILTER_ENA_MASK 0x8000 /* MIC_DET_FILTER_ENA */
-#define WM8904_MIC_DET_FILTER_ENA_SHIFT 15 /* MIC_DET_FILTER_ENA */
-#define WM8904_MIC_DET_FILTER_ENA_WIDTH 1 /* MIC_DET_FILTER_ENA */
-#define WM8904_MIC_SHORT_FILTER_ENA 0x4000 /* MIC_SHORT_FILTER_ENA */
-#define WM8904_MIC_SHORT_FILTER_ENA_MASK 0x4000 /* MIC_SHORT_FILTER_ENA */
-#define WM8904_MIC_SHORT_FILTER_ENA_SHIFT 14 /* MIC_SHORT_FILTER_ENA */
-#define WM8904_MIC_SHORT_FILTER_ENA_WIDTH 1 /* MIC_SHORT_FILTER_ENA */
-#define WM8904_MICBIAS_SEL_MASK 0x0007 /* MICBIAS_SEL - [2:0] */
-#define WM8904_MICBIAS_SEL_SHIFT 0 /* MICBIAS_SEL - [2:0] */
-#define WM8904_MICBIAS_SEL_WIDTH 3 /* MICBIAS_SEL - [2:0] */
-
-
-/*
- * R121 (0x79) - GPIO Control 1
- */
-#define WM8904_GPIO1_PU 0x0020 /* GPIO1_PU */
-#define WM8904_GPIO1_PU_MASK 0x0020 /* GPIO1_PU */
-#define WM8904_GPIO1_PU_SHIFT 5 /* GPIO1_PU */
-#define WM8904_GPIO1_PU_WIDTH 1 /* GPIO1_PU */
-#define WM8904_GPIO1_PD 0x0010 /* GPIO1_PD */
-#define WM8904_GPIO1_PD_MASK 0x0010 /* GPIO1_PD */
-#define WM8904_GPIO1_PD_SHIFT 4 /* GPIO1_PD */
-#define WM8904_GPIO1_PD_WIDTH 1 /* GPIO1_PD */
-#define WM8904_GPIO1_SEL_MASK 0x000F /* GPIO1_SEL - [3:0] */
-#define WM8904_GPIO1_SEL_SHIFT 0 /* GPIO1_SEL - [3:0] */
-#define WM8904_GPIO1_SEL_WIDTH 4 /* GPIO1_SEL - [3:0] */
-
-/*
- * R122 (0x7A) - GPIO Control 2
- */
-#define WM8904_GPIO2_PU 0x0020 /* GPIO2_PU */
-#define WM8904_GPIO2_PU_MASK 0x0020 /* GPIO2_PU */
-#define WM8904_GPIO2_PU_SHIFT 5 /* GPIO2_PU */
-#define WM8904_GPIO2_PU_WIDTH 1 /* GPIO2_PU */
-#define WM8904_GPIO2_PD 0x0010 /* GPIO2_PD */
-#define WM8904_GPIO2_PD_MASK 0x0010 /* GPIO2_PD */
-#define WM8904_GPIO2_PD_SHIFT 4 /* GPIO2_PD */
-#define WM8904_GPIO2_PD_WIDTH 1 /* GPIO2_PD */
-#define WM8904_GPIO2_SEL_MASK 0x000F /* GPIO2_SEL - [3:0] */
-#define WM8904_GPIO2_SEL_SHIFT 0 /* GPIO2_SEL - [3:0] */
-#define WM8904_GPIO2_SEL_WIDTH 4 /* GPIO2_SEL - [3:0] */
-
-/*
- * R123 (0x7B) - GPIO Control 3
- */
-#define WM8904_GPIO3_PU 0x0020 /* GPIO3_PU */
-#define WM8904_GPIO3_PU_MASK 0x0020 /* GPIO3_PU */
-#define WM8904_GPIO3_PU_SHIFT 5 /* GPIO3_PU */
-#define WM8904_GPIO3_PU_WIDTH 1 /* GPIO3_PU */
-#define WM8904_GPIO3_PD 0x0010 /* GPIO3_PD */
-#define WM8904_GPIO3_PD_MASK 0x0010 /* GPIO3_PD */
-#define WM8904_GPIO3_PD_SHIFT 4 /* GPIO3_PD */
-#define WM8904_GPIO3_PD_WIDTH 1 /* GPIO3_PD */
-#define WM8904_GPIO3_SEL_MASK 0x000F /* GPIO3_SEL - [3:0] */
-#define WM8904_GPIO3_SEL_SHIFT 0 /* GPIO3_SEL - [3:0] */
-#define WM8904_GPIO3_SEL_WIDTH 4 /* GPIO3_SEL - [3:0] */
-
-/*
- * R124 (0x7C) - GPIO Control 4
- */
-#define WM8904_GPI7_ENA 0x0200 /* GPI7_ENA */
-#define WM8904_GPI7_ENA_MASK 0x0200 /* GPI7_ENA */
-#define WM8904_GPI7_ENA_SHIFT 9 /* GPI7_ENA */
-#define WM8904_GPI7_ENA_WIDTH 1 /* GPI7_ENA */
-#define WM8904_GPI8_ENA 0x0100 /* GPI8_ENA */
-#define WM8904_GPI8_ENA_MASK 0x0100 /* GPI8_ENA */
-#define WM8904_GPI8_ENA_SHIFT 8 /* GPI8_ENA */
-#define WM8904_GPI8_ENA_WIDTH 1 /* GPI8_ENA */
-#define WM8904_GPIO_BCLK_MODE_ENA 0x0080 /* GPIO_BCLK_MODE_ENA */
-#define WM8904_GPIO_BCLK_MODE_ENA_MASK 0x0080 /* GPIO_BCLK_MODE_ENA */
-#define WM8904_GPIO_BCLK_MODE_ENA_SHIFT 7 /* GPIO_BCLK_MODE_ENA */
-#define WM8904_GPIO_BCLK_MODE_ENA_WIDTH 1 /* GPIO_BCLK_MODE_ENA */
-#define WM8904_GPIO_BCLK_SEL_MASK 0x000F /* GPIO_BCLK_SEL - [3:0] */
-#define WM8904_GPIO_BCLK_SEL_SHIFT 0 /* GPIO_BCLK_SEL - [3:0] */
-#define WM8904_GPIO_BCLK_SEL_WIDTH 4 /* GPIO_BCLK_SEL - [3:0] */
-
-#define WM8904_MIC_REGS 2
-#define WM8904_GPIO_REGS 4
-#define WM8904_DRC_REGS 4
-#define WM8904_EQ_REGS 25
-
-/**
- * DRC configurations are specified with a label and a set of register
- * values to write (the enable bits will be ignored). At runtime an
- * enumerated control will be presented for each DRC block allowing
- * the user to choose the configration to use.
- *
- * Configurations may be generated by hand or by using the DRC control
- * panel provided by the WISCE - see http://www.wolfsonmicro.com/wisce/
- * for details.
- */
-struct wm8904_drc_cfg {
- const char *name;
- u16 regs[WM8904_DRC_REGS];
-};
-
-/**
- * ReTune Mobile configurations are specified with a label, sample
- * rate and set of values to write (the enable bits will be ignored).
- *
- * Configurations are expected to be generated using the ReTune Mobile
- * control panel in WISCE - see http://www.wolfsonmicro.com/wisce/
- */
-struct wm8904_retune_mobile_cfg {
- const char *name;
- unsigned int rate;
- u16 regs[WM8904_EQ_REGS];
-};
-
-struct wm8904_pdata {
- int num_drc_cfgs;
- struct wm8904_drc_cfg *drc_cfgs;
-
- int num_retune_mobile_cfgs;
- struct wm8904_retune_mobile_cfg *retune_mobile_cfgs;
-
- u32 gpio_cfg[WM8904_GPIO_REGS];
- u32 mic_cfg[WM8904_MIC_REGS];
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/sound/wm8955.h b/ANDROID_3.4.5/include/sound/wm8955.h
deleted file mode 100644
index 5074ef49..00000000
--- a/ANDROID_3.4.5/include/sound/wm8955.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Platform data for WM8955
- *
- * Copyright 2009 Wolfson Microelectronics PLC.
- *
- * Author: Mark Brown <broonie@opensource.wolfsonmicro.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 __WM8955_PDATA_H__
-#define __WM8955_PDATA_H__
-
-struct wm8955_pdata {
- /* Configure LOUT2/ROUT2 to drive a speaker */
- unsigned int out2_speaker:1;
-
- /* Configure MONOIN+/- in differential mode */
- unsigned int monoin_diff:1;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/sound/wm8960.h b/ANDROID_3.4.5/include/sound/wm8960.h
deleted file mode 100644
index 74e9a955..00000000
--- a/ANDROID_3.4.5/include/sound/wm8960.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * wm8960.h -- WM8960 Soc Audio driver platform data
- *
- * 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.
- */
-
-#ifndef _WM8960_PDATA_H
-#define _WM8960_PDATA_H
-
-#define WM8960_DRES_400R 0
-#define WM8960_DRES_200R 1
-#define WM8960_DRES_600R 2
-#define WM8960_DRES_150R 3
-#define WM8960_DRES_MAX 3
-
-struct wm8960_data {
- bool capless; /* Headphone outputs configured in capless mode */
-
- int dres; /* Discharge resistance for headphone outputs */
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/sound/wm8962.h b/ANDROID_3.4.5/include/sound/wm8962.h
deleted file mode 100644
index 79e6d427..00000000
--- a/ANDROID_3.4.5/include/sound/wm8962.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * wm8962.h -- WM8962 Soc Audio driver platform data
- *
- * 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.
- */
-
-#ifndef _WM8962_PDATA_H
-#define _WM8962_PDATA_H
-
-#define WM8962_MAX_GPIO 6
-
-/* Use to set GPIO default values to zero */
-#define WM8962_GPIO_SET 0x10000
-
-#define WM8962_GPIO_FN_CLKOUT 0
-#define WM8962_GPIO_FN_LOGIC 1
-#define WM8962_GPIO_FN_SDOUT 2
-#define WM8962_GPIO_FN_IRQ 3
-#define WM8962_GPIO_FN_THERMAL 4
-#define WM8962_GPIO_FN_PLL2_LOCK 6
-#define WM8962_GPIO_FN_PLL3_LOCK 7
-#define WM8962_GPIO_FN_FLL_LOCK 9
-#define WM8962_GPIO_FN_DRC_ACT 10
-#define WM8962_GPIO_FN_WSEQ_DONE 11
-#define WM8962_GPIO_FN_ALC_NG_ACT 12
-#define WM8962_GPIO_FN_ALC_PEAK_LIMIT 13
-#define WM8962_GPIO_FN_ALC_SATURATION 14
-#define WM8962_GPIO_FN_ALC_LEVEL_THR 15
-#define WM8962_GPIO_FN_ALC_LEVEL_LOCK 16
-#define WM8962_GPIO_FN_FIFO_ERR 17
-#define WM8962_GPIO_FN_OPCLK 18
-#define WM8962_GPIO_FN_DMICCLK 19
-#define WM8962_GPIO_FN_DMICDAT 20
-#define WM8962_GPIO_FN_MICD 21
-#define WM8962_GPIO_FN_MICSCD 22
-
-struct wm8962_pdata {
- int gpio_base;
- u32 gpio_init[WM8962_MAX_GPIO];
-
- /* Setup for microphone detection, raw value to be written to
- * R48(0x30) - only microphone related bits will be updated.
- * Detection may be enabled here for use with signals brought
- * out on the GPIOs. */
- u32 mic_cfg;
-
- bool irq_active_low;
-
- bool spk_mono; /* Speaker outputs tied together as mono */
-
- /**
- * This flag should be set if one or both IN4 inputs is wired
- * in a DC measurement configuration.
- */
- bool in4_dc_measure;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/sound/wm8993.h b/ANDROID_3.4.5/include/sound/wm8993.h
deleted file mode 100644
index eee19f63..00000000
--- a/ANDROID_3.4.5/include/sound/wm8993.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * linux/sound/wm8993.h -- Platform data for WM8993
- *
- * Copyright 2009 Wolfson Microelectronics. PLC.
- *
- * 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.
- */
-
-#ifndef __LINUX_SND_WM8993_H
-#define __LINUX_SND_WM8993_H
-
-/* Note that EQ1 only contains the enable/disable bit so will be
- ignored but is included for simplicity.
- */
-struct wm8993_retune_mobile_setting {
- const char *name;
- unsigned int rate;
- u16 config[24];
-};
-
-struct wm8993_platform_data {
- struct wm8993_retune_mobile_setting *retune_configs;
- int num_retune_configs;
-
- /* LINEOUT can be differential or single ended */
- unsigned int lineout1_diff:1;
- unsigned int lineout2_diff:1;
-
- /* Common mode feedback */
- unsigned int lineout1fb:1;
- unsigned int lineout2fb:1;
-
- /* Microphone biases: 0=0.9*AVDD1 1=0.65*AVVD1 */
- unsigned int micbias1_lvl:1;
- unsigned int micbias2_lvl:1;
-
- /* Jack detect threshold levels, see datasheet for values */
- unsigned int jd_scthr:2;
- unsigned int jd_thr:2;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/sound/wm8996.h b/ANDROID_3.4.5/include/sound/wm8996.h
deleted file mode 100644
index ea4d88f4..00000000
--- a/ANDROID_3.4.5/include/sound/wm8996.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * linux/sound/wm8996.h -- Platform data for WM8996
- *
- * Copyright 2011 Wolfson Microelectronics. PLC.
- *
- * 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.
- */
-
-#ifndef __LINUX_SND_WM8996_H
-#define __LINUX_SND_WM8996_H
-
-enum wm8996_inmode {
- WM8996_DIFFERRENTIAL_1 = 0, /* IN1xP - IN1xN */
- WM8996_INVERTING = 1, /* IN1xN */
- WM8996_NON_INVERTING = 2, /* IN1xP */
- WM8996_DIFFERENTIAL_2 = 3, /* IN2xP - IN2xP */
-};
-
-/**
- * ReTune Mobile configurations are specified with a label, sample
- * rate and set of values to write (the enable bits will be ignored).
- *
- * Configurations are expected to be generated using the ReTune Mobile
- * control panel in WISCE - see http://www.wolfsonmicro.com/wisce/
- */
-struct wm8996_retune_mobile_config {
- const char *name;
- int rate;
- u16 regs[20];
-};
-
-#define WM8996_SET_DEFAULT 0x10000
-
-struct wm8996_pdata {
- int irq_flags; /** Set IRQ trigger flags; default active low */
-
- int ldo_ena; /** GPIO for LDO1; -1 for none */
-
- int micdet_def; /** Default MICDET_SRC/HP1FB_SRC/MICD_BIAS */
-
- enum wm8996_inmode inl_mode;
- enum wm8996_inmode inr_mode;
-
- u32 spkmute_seq; /** Value for register 0x802 */
-
- int gpio_base;
- u32 gpio_default[5];
-
- int num_retune_mobile_cfgs;
- struct wm8996_retune_mobile_config *retune_mobile_cfgs;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/sound/wm9081.h b/ANDROID_3.4.5/include/sound/wm9081.h
deleted file mode 100644
index f34b0b17..00000000
--- a/ANDROID_3.4.5/include/sound/wm9081.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * linux/sound/wm9081.h -- Platform data for WM9081
- *
- * Copyright 2009 Wolfson Microelectronics. PLC.
- *
- * 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.
- */
-
-#ifndef __LINUX_SND_WM_9081_H
-#define __LINUX_SND_WM_9081_H
-
-struct wm9081_retune_mobile_setting {
- const char *name;
- unsigned int rate;
- u16 config[20];
-};
-
-struct wm9081_pdata {
- bool irq_high; /* IRQ is active high */
- bool irq_cmos; /* IRQ is in CMOS mode */
-
- struct wm9081_retune_mobile_setting *retune_configs;
- int num_retune_configs;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/sound/wm9090.h b/ANDROID_3.4.5/include/sound/wm9090.h
deleted file mode 100644
index 3718928c..00000000
--- a/ANDROID_3.4.5/include/sound/wm9090.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * linux/sound/wm9090.h -- Platform data for WM9090
- *
- * Copyright 2009, 2010 Wolfson Microelectronics. PLC.
- *
- * 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.
- */
-
-#ifndef __LINUX_SND_WM9090_H
-#define __LINUX_SND_WM9090_H
-
-struct wm9090_platform_data {
- /* Line inputs 1 & 2 can optionally be differential */
- unsigned int lin1_diff:1;
- unsigned int lin2_diff:1;
-
- /* AGC configuration. This is intended to protect the speaker
- * against overdriving and will therefore depend on the
- * hardware setup with incorrect runtime configuration
- * potentially causing hardware damage.
- */
- unsigned int agc_ena:1;
- u16 agc[3];
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/sound/wss.h b/ANDROID_3.4.5/include/sound/wss.h
deleted file mode 100644
index fd01f228..00000000
--- a/ANDROID_3.4.5/include/sound/wss.h
+++ /dev/null
@@ -1,235 +0,0 @@
-#ifndef __SOUND_WSS_H
-#define __SOUND_WSS_H
-
-/*
- * Copyright (c) by Jaroslav Kysela <perex@perex.cz>
- * Definitions for CS4231 & InterWave chips & compatible chips
- *
- *
- * 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 "control.h"
-#include "pcm.h"
-#include "timer.h"
-
-#include "cs4231-regs.h"
-
-/* defines for codec.mode */
-
-#define WSS_MODE_NONE 0x0000
-#define WSS_MODE_PLAY 0x0001
-#define WSS_MODE_RECORD 0x0002
-#define WSS_MODE_TIMER 0x0004
-#define WSS_MODE_OPEN (WSS_MODE_PLAY|WSS_MODE_RECORD|WSS_MODE_TIMER)
-
-/* defines for codec.hardware */
-
-#define WSS_HW_DETECT 0x0000 /* let CS4231 driver detect chip */
-#define WSS_HW_DETECT3 0x0001 /* allow mode 3 */
-#define WSS_HW_TYPE_MASK 0xff00 /* type mask */
-#define WSS_HW_CS4231_MASK 0x0100 /* CS4231 serie */
-#define WSS_HW_CS4231 0x0100 /* CS4231 chip */
-#define WSS_HW_CS4231A 0x0101 /* CS4231A chip */
-#define WSS_HW_AD1845 0x0102 /* AD1845 chip */
-#define WSS_HW_CS4232_MASK 0x0200 /* CS4232 serie (has control ports) */
-#define WSS_HW_CS4232 0x0200 /* CS4232 */
-#define WSS_HW_CS4232A 0x0201 /* CS4232A */
-#define WSS_HW_CS4236 0x0202 /* CS4236 */
-#define WSS_HW_CS4236B_MASK 0x0400 /* CS4236B serie (has extended control regs) */
-#define WSS_HW_CS4235 0x0400 /* CS4235 - Crystal Clear (tm) stereo enhancement */
-#define WSS_HW_CS4236B 0x0401 /* CS4236B */
-#define WSS_HW_CS4237B 0x0402 /* CS4237B - SRS 3D */
-#define WSS_HW_CS4238B 0x0403 /* CS4238B - QSOUND 3D */
-#define WSS_HW_CS4239 0x0404 /* CS4239 - Crystal Clear (tm) stereo enhancement */
-#define WSS_HW_AD1848_MASK 0x0800 /* AD1848 serie (half duplex) */
-#define WSS_HW_AD1847 0x0801 /* AD1847 chip */
-#define WSS_HW_AD1848 0x0802 /* AD1848 chip */
-#define WSS_HW_CS4248 0x0803 /* CS4248 chip */
-#define WSS_HW_CMI8330 0x0804 /* CMI8330 chip */
-#define WSS_HW_THINKPAD 0x0805 /* Thinkpad 360/750/755 */
-/* compatible, but clones */
-#define WSS_HW_INTERWAVE 0x1000 /* InterWave chip */
-#define WSS_HW_OPL3SA2 0x1101 /* OPL3-SA2 chip, similar to cs4231 */
-#define WSS_HW_OPTI93X 0x1102 /* Opti 930/931/933 */
-
-/* defines for codec.hwshare */
-#define WSS_HWSHARE_IRQ (1<<0)
-#define WSS_HWSHARE_DMA1 (1<<1)
-#define WSS_HWSHARE_DMA2 (1<<2)
-
-/* IBM Thinkpad specific stuff */
-#define AD1848_THINKPAD_CTL_PORT1 0x15e8
-#define AD1848_THINKPAD_CTL_PORT2 0x15e9
-#define AD1848_THINKPAD_CS4248_ENABLE_BIT 0x02
-
-struct snd_wss {
- unsigned long port; /* base i/o port */
- struct resource *res_port;
- unsigned long cport; /* control base i/o port (CS4236) */
- struct resource *res_cport;
- int irq; /* IRQ line */
- int dma1; /* playback DMA */
- int dma2; /* record DMA */
- unsigned short version; /* version of CODEC chip */
- unsigned short mode; /* see to WSS_MODE_XXXX */
- unsigned short hardware; /* see to WSS_HW_XXXX */
- unsigned short hwshare; /* shared resources */
- unsigned short single_dma:1, /* forced single DMA mode (GUS 16-bit */
- /* daughter board) or dma1 == dma2 */
- ebus_flag:1, /* SPARC: EBUS present */
- thinkpad_flag:1; /* Thinkpad CS4248 needs extra help */
-
- struct snd_card *card;
- struct snd_pcm *pcm;
- struct snd_pcm_substream *playback_substream;
- struct snd_pcm_substream *capture_substream;
- struct snd_timer *timer;
-
- unsigned char image[32]; /* registers image */
- unsigned char eimage[32]; /* extended registers image */
- unsigned char cimage[16]; /* control registers image */
- int mce_bit;
- int calibrate_mute;
- int sw_3d_bit;
- unsigned int p_dma_size;
- unsigned int c_dma_size;
-
- spinlock_t reg_lock;
- struct mutex mce_mutex;
- struct mutex open_mutex;
-
- int (*rate_constraint) (struct snd_pcm_runtime *runtime);
- void (*set_playback_format) (struct snd_wss *chip,
- struct snd_pcm_hw_params *hw_params,
- unsigned char pdfr);
- void (*set_capture_format) (struct snd_wss *chip,
- struct snd_pcm_hw_params *hw_params,
- unsigned char cdfr);
- void (*trigger) (struct snd_wss *chip, unsigned int what, int start);
-#ifdef CONFIG_PM
- void (*suspend) (struct snd_wss *chip);
- void (*resume) (struct snd_wss *chip);
-#endif
- void *dma_private_data;
- int (*claim_dma) (struct snd_wss *chip,
- void *dma_private_data, int dma);
- int (*release_dma) (struct snd_wss *chip,
- void *dma_private_data, int dma);
-};
-
-/* exported functions */
-
-void snd_wss_out(struct snd_wss *chip, unsigned char reg, unsigned char val);
-unsigned char snd_wss_in(struct snd_wss *chip, unsigned char reg);
-void snd_cs4236_ext_out(struct snd_wss *chip,
- unsigned char reg, unsigned char val);
-unsigned char snd_cs4236_ext_in(struct snd_wss *chip, unsigned char reg);
-void snd_wss_mce_up(struct snd_wss *chip);
-void snd_wss_mce_down(struct snd_wss *chip);
-
-void snd_wss_overrange(struct snd_wss *chip);
-
-irqreturn_t snd_wss_interrupt(int irq, void *dev_id);
-
-const char *snd_wss_chip_id(struct snd_wss *chip);
-
-int snd_wss_create(struct snd_card *card,
- unsigned long port,
- unsigned long cport,
- int irq, int dma1, int dma2,
- unsigned short hardware,
- unsigned short hwshare,
- struct snd_wss **rchip);
-int snd_wss_pcm(struct snd_wss *chip, int device, struct snd_pcm **rpcm);
-int snd_wss_timer(struct snd_wss *chip, int device, struct snd_timer **rtimer);
-int snd_wss_mixer(struct snd_wss *chip);
-
-const struct snd_pcm_ops *snd_wss_get_pcm_ops(int direction);
-
-int snd_cs4236_create(struct snd_card *card,
- unsigned long port,
- unsigned long cport,
- int irq, int dma1, int dma2,
- unsigned short hardware,
- unsigned short hwshare,
- struct snd_wss **rchip);
-int snd_cs4236_pcm(struct snd_wss *chip, int device, struct snd_pcm **rpcm);
-int snd_cs4236_mixer(struct snd_wss *chip);
-
-/*
- * mixer library
- */
-
-#define WSS_SINGLE(xname, xindex, reg, shift, mask, invert) \
-{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
- .name = xname, \
- .index = xindex, \
- .info = snd_wss_info_single, \
- .get = snd_wss_get_single, \
- .put = snd_wss_put_single, \
- .private_value = reg | (shift << 8) | (mask << 16) | (invert << 24) }
-
-int snd_wss_info_single(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_info *uinfo);
-int snd_wss_get_single(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_value *ucontrol);
-int snd_wss_put_single(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_value *ucontrol);
-
-#define WSS_DOUBLE(xname, xindex, left_reg, right_reg, shift_left, shift_right, mask, invert) \
-{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
- .name = xname, \
- .index = xindex, \
- .info = snd_wss_info_double, \
- .get = snd_wss_get_double, \
- .put = snd_wss_put_double, \
- .private_value = left_reg | (right_reg << 8) | (shift_left << 16) | \
- (shift_right << 19) | (mask << 24) | (invert << 22) }
-
-#define WSS_SINGLE_TLV(xname, xindex, reg, shift, mask, invert, xtlv) \
-{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_TLV_READ, \
- .name = xname, \
- .index = xindex, \
- .info = snd_wss_info_single, \
- .get = snd_wss_get_single, \
- .put = snd_wss_put_single, \
- .private_value = reg | (shift << 8) | (mask << 16) | (invert << 24), \
- .tlv = { .p = (xtlv) } }
-
-#define WSS_DOUBLE_TLV(xname, xindex, left_reg, right_reg, \
- shift_left, shift_right, mask, invert, xtlv) \
-{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_TLV_READ, \
- .name = xname, \
- .index = xindex, \
- .info = snd_wss_info_double, \
- .get = snd_wss_get_double, \
- .put = snd_wss_put_double, \
- .private_value = left_reg | (right_reg << 8) | (shift_left << 16) | \
- (shift_right << 19) | (mask << 24) | (invert << 22), \
- .tlv = { .p = (xtlv) } }
-
-
-int snd_wss_info_double(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_info *uinfo);
-int snd_wss_get_double(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_value *ucontrol);
-int snd_wss_put_double(struct snd_kcontrol *kcontrol,
- struct snd_ctl_elem_value *ucontrol);
-
-#endif /* __SOUND_WSS_H */
diff --git a/ANDROID_3.4.5/include/sound/ymfpci.h b/ANDROID_3.4.5/include/sound/ymfpci.h
deleted file mode 100644
index 41199664..00000000
--- a/ANDROID_3.4.5/include/sound/ymfpci.h
+++ /dev/null
@@ -1,390 +0,0 @@
-#ifndef __SOUND_YMFPCI_H
-#define __SOUND_YMFPCI_H
-
-/*
- * Copyright (c) by Jaroslav Kysela <perex@perex.cz>
- * Definitions for Yahama YMF724/740/744/754 chips
- *
- *
- * 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 "pcm.h"
-#include "rawmidi.h"
-#include "ac97_codec.h"
-#include "timer.h"
-#include <linux/gameport.h>
-
-/*
- * Direct registers
- */
-
-#define YMFREG(chip, reg) (chip->port + YDSXGR_##reg)
-
-#define YDSXGR_INTFLAG 0x0004
-#define YDSXGR_ACTIVITY 0x0006
-#define YDSXGR_GLOBALCTRL 0x0008
-#define YDSXGR_ZVCTRL 0x000A
-#define YDSXGR_TIMERCTRL 0x0010
-#define YDSXGR_TIMERCOUNT 0x0012
-#define YDSXGR_SPDIFOUTCTRL 0x0018
-#define YDSXGR_SPDIFOUTSTATUS 0x001C
-#define YDSXGR_EEPROMCTRL 0x0020
-#define YDSXGR_SPDIFINCTRL 0x0034
-#define YDSXGR_SPDIFINSTATUS 0x0038
-#define YDSXGR_DSPPROGRAMDL 0x0048
-#define YDSXGR_DLCNTRL 0x004C
-#define YDSXGR_GPIOININTFLAG 0x0050
-#define YDSXGR_GPIOININTENABLE 0x0052
-#define YDSXGR_GPIOINSTATUS 0x0054
-#define YDSXGR_GPIOOUTCTRL 0x0056
-#define YDSXGR_GPIOFUNCENABLE 0x0058
-#define YDSXGR_GPIOTYPECONFIG 0x005A
-#define YDSXGR_AC97CMDDATA 0x0060
-#define YDSXGR_AC97CMDADR 0x0062
-#define YDSXGR_PRISTATUSDATA 0x0064
-#define YDSXGR_PRISTATUSADR 0x0066
-#define YDSXGR_SECSTATUSDATA 0x0068
-#define YDSXGR_SECSTATUSADR 0x006A
-#define YDSXGR_SECCONFIG 0x0070
-#define YDSXGR_LEGACYOUTVOL 0x0080
-#define YDSXGR_LEGACYOUTVOLL 0x0080
-#define YDSXGR_LEGACYOUTVOLR 0x0082
-#define YDSXGR_NATIVEDACOUTVOL 0x0084
-#define YDSXGR_NATIVEDACOUTVOLL 0x0084
-#define YDSXGR_NATIVEDACOUTVOLR 0x0086
-#define YDSXGR_ZVOUTVOL 0x0088
-#define YDSXGR_ZVOUTVOLL 0x0088
-#define YDSXGR_ZVOUTVOLR 0x008A
-#define YDSXGR_SECADCOUTVOL 0x008C
-#define YDSXGR_SECADCOUTVOLL 0x008C
-#define YDSXGR_SECADCOUTVOLR 0x008E
-#define YDSXGR_PRIADCOUTVOL 0x0090
-#define YDSXGR_PRIADCOUTVOLL 0x0090
-#define YDSXGR_PRIADCOUTVOLR 0x0092
-#define YDSXGR_LEGACYLOOPVOL 0x0094
-#define YDSXGR_LEGACYLOOPVOLL 0x0094
-#define YDSXGR_LEGACYLOOPVOLR 0x0096
-#define YDSXGR_NATIVEDACLOOPVOL 0x0098
-#define YDSXGR_NATIVEDACLOOPVOLL 0x0098
-#define YDSXGR_NATIVEDACLOOPVOLR 0x009A
-#define YDSXGR_ZVLOOPVOL 0x009C
-#define YDSXGR_ZVLOOPVOLL 0x009E
-#define YDSXGR_ZVLOOPVOLR 0x009E
-#define YDSXGR_SECADCLOOPVOL 0x00A0
-#define YDSXGR_SECADCLOOPVOLL 0x00A0
-#define YDSXGR_SECADCLOOPVOLR 0x00A2
-#define YDSXGR_PRIADCLOOPVOL 0x00A4
-#define YDSXGR_PRIADCLOOPVOLL 0x00A4
-#define YDSXGR_PRIADCLOOPVOLR 0x00A6
-#define YDSXGR_NATIVEADCINVOL 0x00A8
-#define YDSXGR_NATIVEADCINVOLL 0x00A8
-#define YDSXGR_NATIVEADCINVOLR 0x00AA
-#define YDSXGR_NATIVEDACINVOL 0x00AC
-#define YDSXGR_NATIVEDACINVOLL 0x00AC
-#define YDSXGR_NATIVEDACINVOLR 0x00AE
-#define YDSXGR_BUF441OUTVOL 0x00B0
-#define YDSXGR_BUF441OUTVOLL 0x00B0
-#define YDSXGR_BUF441OUTVOLR 0x00B2
-#define YDSXGR_BUF441LOOPVOL 0x00B4
-#define YDSXGR_BUF441LOOPVOLL 0x00B4
-#define YDSXGR_BUF441LOOPVOLR 0x00B6
-#define YDSXGR_SPDIFOUTVOL 0x00B8
-#define YDSXGR_SPDIFOUTVOLL 0x00B8
-#define YDSXGR_SPDIFOUTVOLR 0x00BA
-#define YDSXGR_SPDIFLOOPVOL 0x00BC
-#define YDSXGR_SPDIFLOOPVOLL 0x00BC
-#define YDSXGR_SPDIFLOOPVOLR 0x00BE
-#define YDSXGR_ADCSLOTSR 0x00C0
-#define YDSXGR_RECSLOTSR 0x00C4
-#define YDSXGR_ADCFORMAT 0x00C8
-#define YDSXGR_RECFORMAT 0x00CC
-#define YDSXGR_P44SLOTSR 0x00D0
-#define YDSXGR_STATUS 0x0100
-#define YDSXGR_CTRLSELECT 0x0104
-#define YDSXGR_MODE 0x0108
-#define YDSXGR_SAMPLECOUNT 0x010C
-#define YDSXGR_NUMOFSAMPLES 0x0110
-#define YDSXGR_CONFIG 0x0114
-#define YDSXGR_PLAYCTRLSIZE 0x0140
-#define YDSXGR_RECCTRLSIZE 0x0144
-#define YDSXGR_EFFCTRLSIZE 0x0148
-#define YDSXGR_WORKSIZE 0x014C
-#define YDSXGR_MAPOFREC 0x0150
-#define YDSXGR_MAPOFEFFECT 0x0154
-#define YDSXGR_PLAYCTRLBASE 0x0158
-#define YDSXGR_RECCTRLBASE 0x015C
-#define YDSXGR_EFFCTRLBASE 0x0160
-#define YDSXGR_WORKBASE 0x0164
-#define YDSXGR_DSPINSTRAM 0x1000
-#define YDSXGR_CTRLINSTRAM 0x4000
-
-#define YDSXG_AC97READCMD 0x8000
-#define YDSXG_AC97WRITECMD 0x0000
-
-#define PCIR_DSXG_LEGACY 0x40
-#define PCIR_DSXG_ELEGACY 0x42
-#define PCIR_DSXG_CTRL 0x48
-#define PCIR_DSXG_PWRCTRL1 0x4a
-#define PCIR_DSXG_PWRCTRL2 0x4e
-#define PCIR_DSXG_FMBASE 0x60
-#define PCIR_DSXG_SBBASE 0x62
-#define PCIR_DSXG_MPU401BASE 0x64
-#define PCIR_DSXG_JOYBASE 0x66
-
-#define YDSXG_DSPLENGTH 0x0080
-#define YDSXG_CTRLLENGTH 0x3000
-
-#define YDSXG_DEFAULT_WORK_SIZE 0x0400
-
-#define YDSXG_PLAYBACK_VOICES 64
-#define YDSXG_CAPTURE_VOICES 2
-#define YDSXG_EFFECT_VOICES 5
-
-#define YMFPCI_LEGACY_SBEN (1 << 0) /* soundblaster enable */
-#define YMFPCI_LEGACY_FMEN (1 << 1) /* OPL3 enable */
-#define YMFPCI_LEGACY_JPEN (1 << 2) /* joystick enable */
-#define YMFPCI_LEGACY_MEN (1 << 3) /* MPU401 enable */
-#define YMFPCI_LEGACY_MIEN (1 << 4) /* MPU RX irq enable */
-#define YMFPCI_LEGACY_IOBITS (1 << 5) /* i/o bits range, 0 = 16bit, 1 =10bit */
-#define YMFPCI_LEGACY_SDMA (3 << 6) /* SB DMA select */
-#define YMFPCI_LEGACY_SBIRQ (7 << 8) /* SB IRQ select */
-#define YMFPCI_LEGACY_MPUIRQ (7 << 11) /* MPU IRQ select */
-#define YMFPCI_LEGACY_SIEN (1 << 14) /* serialized IRQ */
-#define YMFPCI_LEGACY_LAD (1 << 15) /* legacy audio disable */
-
-#define YMFPCI_LEGACY2_FMIO (3 << 0) /* OPL3 i/o address (724/740) */
-#define YMFPCI_LEGACY2_SBIO (3 << 2) /* SB i/o address (724/740) */
-#define YMFPCI_LEGACY2_MPUIO (3 << 4) /* MPU401 i/o address (724/740) */
-#define YMFPCI_LEGACY2_JSIO (3 << 6) /* joystick i/o address (724/740) */
-#define YMFPCI_LEGACY2_MAIM (1 << 8) /* MPU401 ack intr mask */
-#define YMFPCI_LEGACY2_SMOD (3 << 11) /* SB DMA mode */
-#define YMFPCI_LEGACY2_SBVER (3 << 13) /* SB version select */
-#define YMFPCI_LEGACY2_IMOD (1 << 15) /* legacy IRQ mode */
-/* SIEN:IMOD 0:0 = legacy irq, 0:1 = INTA, 1:0 = serialized IRQ */
-
-#if defined(CONFIG_GAMEPORT) || (defined(MODULE) && defined(CONFIG_GAMEPORT_MODULE))
-#define SUPPORT_JOYSTICK
-#endif
-
-/*
- *
- */
-
-struct snd_ymfpci_playback_bank {
- u32 format;
- u32 loop_default;
- u32 base; /* 32-bit address */
- u32 loop_start; /* 32-bit offset */
- u32 loop_end; /* 32-bit offset */
- u32 loop_frac; /* 8-bit fraction - loop_start */
- u32 delta_end; /* pitch delta end */
- u32 lpfK_end;
- u32 eg_gain_end;
- u32 left_gain_end;
- u32 right_gain_end;
- u32 eff1_gain_end;
- u32 eff2_gain_end;
- u32 eff3_gain_end;
- u32 lpfQ;
- u32 status;
- u32 num_of_frames;
- u32 loop_count;
- u32 start;
- u32 start_frac;
- u32 delta;
- u32 lpfK;
- u32 eg_gain;
- u32 left_gain;
- u32 right_gain;
- u32 eff1_gain;
- u32 eff2_gain;
- u32 eff3_gain;
- u32 lpfD1;
- u32 lpfD2;
- };
-
-struct snd_ymfpci_capture_bank {
- u32 base; /* 32-bit address */
- u32 loop_end; /* 32-bit offset */
- u32 start; /* 32-bit offset */
- u32 num_of_loops; /* counter */
-};
-
-struct snd_ymfpci_effect_bank {
- u32 base; /* 32-bit address */
- u32 loop_end; /* 32-bit offset */
- u32 start; /* 32-bit offset */
- u32 temp;
-};
-
-struct snd_ymfpci_pcm;
-struct snd_ymfpci;
-
-enum snd_ymfpci_voice_type {
- YMFPCI_PCM,
- YMFPCI_SYNTH,
- YMFPCI_MIDI
-};
-
-struct snd_ymfpci_voice {
- struct snd_ymfpci *chip;
- int number;
- unsigned int use: 1,
- pcm: 1,
- synth: 1,
- midi: 1;
- struct snd_ymfpci_playback_bank *bank;
- dma_addr_t bank_addr;
- void (*interrupt)(struct snd_ymfpci *chip, struct snd_ymfpci_voice *voice);
- struct snd_ymfpci_pcm *ypcm;
-};
-
-enum snd_ymfpci_pcm_type {
- PLAYBACK_VOICE,
- CAPTURE_REC,
- CAPTURE_AC97,
- EFFECT_DRY_LEFT,
- EFFECT_DRY_RIGHT,
- EFFECT_EFF1,
- EFFECT_EFF2,
- EFFECT_EFF3
-};
-
-struct snd_ymfpci_pcm {
- struct snd_ymfpci *chip;
- enum snd_ymfpci_pcm_type type;
- struct snd_pcm_substream *substream;
- struct snd_ymfpci_voice *voices[2]; /* playback only */
- unsigned int running: 1,
- use_441_slot: 1,
- output_front: 1,
- output_rear: 1,
- swap_rear: 1;
- unsigned int update_pcm_vol;
- u32 period_size; /* cached from runtime->period_size */
- u32 buffer_size; /* cached from runtime->buffer_size */
- u32 period_pos;
- u32 last_pos;
- u32 capture_bank_number;
- u32 shift;
-};
-
-struct snd_ymfpci {
- int irq;
-
- unsigned int device_id; /* PCI device ID */
- unsigned char rev; /* PCI revision */
- unsigned long reg_area_phys;
- void __iomem *reg_area_virt;
- struct resource *res_reg_area;
- struct resource *fm_res;
- struct resource *mpu_res;
-
- unsigned short old_legacy_ctrl;
-#ifdef SUPPORT_JOYSTICK
- struct gameport *gameport;
-#endif
-
- struct snd_dma_buffer work_ptr;
-
- unsigned int bank_size_playback;
- unsigned int bank_size_capture;
- unsigned int bank_size_effect;
- unsigned int work_size;
-
- void *bank_base_playback;
- void *bank_base_capture;
- void *bank_base_effect;
- void *work_base;
- dma_addr_t bank_base_playback_addr;
- dma_addr_t bank_base_capture_addr;
- dma_addr_t bank_base_effect_addr;
- dma_addr_t work_base_addr;
- struct snd_dma_buffer ac3_tmp_base;
-
- u32 *ctrl_playback;
- struct snd_ymfpci_playback_bank *bank_playback[YDSXG_PLAYBACK_VOICES][2];
- struct snd_ymfpci_capture_bank *bank_capture[YDSXG_CAPTURE_VOICES][2];
- struct snd_ymfpci_effect_bank *bank_effect[YDSXG_EFFECT_VOICES][2];
-
- int start_count;
-
- u32 active_bank;
- struct snd_ymfpci_voice voices[64];
- int src441_used;
-
- struct snd_ac97_bus *ac97_bus;
- struct snd_ac97 *ac97;
- struct snd_rawmidi *rawmidi;
- struct snd_timer *timer;
- unsigned int timer_ticks;
-
- struct pci_dev *pci;
- struct snd_card *card;
- struct snd_pcm *pcm;
- struct snd_pcm *pcm2;
- struct snd_pcm *pcm_spdif;
- struct snd_pcm *pcm_4ch;
- struct snd_pcm_substream *capture_substream[YDSXG_CAPTURE_VOICES];
- struct snd_pcm_substream *effect_substream[YDSXG_EFFECT_VOICES];
- struct snd_kcontrol *ctl_vol_recsrc;
- struct snd_kcontrol *ctl_vol_adcrec;
- struct snd_kcontrol *ctl_vol_spdifrec;
- unsigned short spdif_bits, spdif_pcm_bits;
- struct snd_kcontrol *spdif_pcm_ctl;
- int mode_dup4ch;
- int rear_opened;
- int spdif_opened;
- struct snd_ymfpci_pcm_mixer {
- u16 left;
- u16 right;
- struct snd_kcontrol *ctl;
- } pcm_mixer[32];
-
- spinlock_t reg_lock;
- spinlock_t voice_lock;
- wait_queue_head_t interrupt_sleep;
- atomic_t interrupt_sleep_count;
- struct snd_info_entry *proc_entry;
- const struct firmware *dsp_microcode;
- const struct firmware *controller_microcode;
-
-#ifdef CONFIG_PM
- u32 *saved_regs;
- u32 saved_ydsxgr_mode;
- u16 saved_dsxg_legacy;
- u16 saved_dsxg_elegacy;
-#endif
-};
-
-int snd_ymfpci_create(struct snd_card *card,
- struct pci_dev *pci,
- unsigned short old_legacy_ctrl,
- struct snd_ymfpci ** rcodec);
-void snd_ymfpci_free_gameport(struct snd_ymfpci *chip);
-
-int snd_ymfpci_suspend(struct pci_dev *pci, pm_message_t state);
-int snd_ymfpci_resume(struct pci_dev *pci);
-
-int snd_ymfpci_pcm(struct snd_ymfpci *chip, int device, struct snd_pcm **rpcm);
-int snd_ymfpci_pcm2(struct snd_ymfpci *chip, int device, struct snd_pcm **rpcm);
-int snd_ymfpci_pcm_spdif(struct snd_ymfpci *chip, int device, struct snd_pcm **rpcm);
-int snd_ymfpci_pcm_4ch(struct snd_ymfpci *chip, int device, struct snd_pcm **rpcm);
-int snd_ymfpci_mixer(struct snd_ymfpci *chip, int rear_switch);
-int snd_ymfpci_timer(struct snd_ymfpci *chip, int device);
-
-#endif /* __SOUND_YMFPCI_H */
diff --git a/ANDROID_3.4.5/include/target/configfs_macros.h b/ANDROID_3.4.5/include/target/configfs_macros.h
deleted file mode 100644
index a0fc85bb..00000000
--- a/ANDROID_3.4.5/include/target/configfs_macros.h
+++ /dev/null
@@ -1,147 +0,0 @@
-/* -*- mode: c; c-basic-offset: 8; -*-
- * vim: noexpandtab sw=8 ts=8 sts=0:
- *
- * configfs_macros.h - extends macros for configfs
- *
- * 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 021110-1307, USA.
- *
- * Based on sysfs:
- * sysfs is Copyright (C) 2001, 2002, 2003 Patrick Mochel
- *
- * Based on kobject.h:
- * Copyright (c) 2002-2003 Patrick Mochel
- * Copyright (c) 2002-2003 Open Source Development Labs
- *
- * configfs Copyright (C) 2005 Oracle. All rights reserved.
- *
- * Added CONFIGFS_EATTR() macros from original configfs.h macros
- * Copright (C) 2008-2009 Nicholas A. Bellinger <nab@linux-iscsi.org>
- *
- * Please read Documentation/filesystems/configfs/configfs.txt before using
- * the configfs interface, ESPECIALLY the parts about reference counts and
- * item destructors.
- */
-
-#ifndef _CONFIGFS_MACROS_H_
-#define _CONFIGFS_MACROS_H_
-
-#include <linux/configfs.h>
-
-/*
- * Users often need to create attribute structures for their configurable
- * attributes, containing a configfs_attribute member and function pointers
- * for the show() and store() operations on that attribute. If they don't
- * need anything else on the extended attribute structure, they can use
- * this macro to define it. The argument _name isends up as
- * 'struct _name_attribute, as well as names of to CONFIGFS_ATTR_OPS() below.
- * The argument _item is the name of the structure containing the
- * struct config_item or struct config_group structure members
- */
-#define CONFIGFS_EATTR_STRUCT(_name, _item) \
-struct _name##_attribute { \
- struct configfs_attribute attr; \
- ssize_t (*show)(struct _item *, char *); \
- ssize_t (*store)(struct _item *, const char *, size_t); \
-}
-
-/*
- * With the extended attribute structure, users can use this macro
- * (similar to sysfs' __ATTR) to make defining attributes easier.
- * An example:
- * #define MYITEM_EATTR(_name, _mode, _show, _store) \
- * struct myitem_attribute childless_attr_##_name = \
- * __CONFIGFS_EATTR(_name, _mode, _show, _store)
- */
-#define __CONFIGFS_EATTR(_name, _mode, _show, _store) \
-{ \
- .attr = { \
- .ca_name = __stringify(_name), \
- .ca_mode = _mode, \
- .ca_owner = THIS_MODULE, \
- }, \
- .show = _show, \
- .store = _store, \
-}
-/* Here is a readonly version, only requiring a show() operation */
-#define __CONFIGFS_EATTR_RO(_name, _show) \
-{ \
- .attr = { \
- .ca_name = __stringify(_name), \
- .ca_mode = 0444, \
- .ca_owner = THIS_MODULE, \
- }, \
- .show = _show, \
-}
-
-/*
- * With these extended attributes, the simple show_attribute() and
- * store_attribute() operations need to call the show() and store() of the
- * attributes. This is a common pattern, so we provide a macro to define
- * them. The argument _name is the name of the attribute defined by
- * CONFIGFS_ATTR_STRUCT(). The argument _item is the name of the structure
- * containing the struct config_item or struct config_group structure member.
- * The argument _item_member is the actual name of the struct config_* struct
- * in your _item structure. Meaning my_structure->some_config_group.
- * ^^_item^^^^^ ^^_item_member^^^
- * This macro expects the attributes to be named "struct <name>_attribute".
- */
-#define CONFIGFS_EATTR_OPS_TO_FUNC(_name, _item, _item_member) \
-static struct _item *to_##_name(struct config_item *ci) \
-{ \
- return (ci) ? container_of(to_config_group(ci), struct _item, \
- _item_member) : NULL; \
-}
-
-#define CONFIGFS_EATTR_OPS_SHOW(_name, _item) \
-static ssize_t _name##_attr_show(struct config_item *item, \
- struct configfs_attribute *attr, \
- char *page) \
-{ \
- struct _item *_item = to_##_name(item); \
- struct _name##_attribute * _name##_attr = \
- container_of(attr, struct _name##_attribute, attr); \
- ssize_t ret = 0; \
- \
- if (_name##_attr->show) \
- ret = _name##_attr->show(_item, page); \
- return ret; \
-}
-
-#define CONFIGFS_EATTR_OPS_STORE(_name, _item) \
-static ssize_t _name##_attr_store(struct config_item *item, \
- struct configfs_attribute *attr, \
- const char *page, size_t count) \
-{ \
- struct _item *_item = to_##_name(item); \
- struct _name##_attribute * _name##_attr = \
- container_of(attr, struct _name##_attribute, attr); \
- ssize_t ret = -EINVAL; \
- \
- if (_name##_attr->store) \
- ret = _name##_attr->store(_item, page, count); \
- return ret; \
-}
-
-#define CONFIGFS_EATTR_OPS(_name, _item, _item_member) \
- CONFIGFS_EATTR_OPS_TO_FUNC(_name, _item, _item_member); \
- CONFIGFS_EATTR_OPS_SHOW(_name, _item); \
- CONFIGFS_EATTR_OPS_STORE(_name, _item);
-
-#define CONFIGFS_EATTR_OPS_RO(_name, _item, _item_member) \
- CONFIGFS_EATTR_OPS_TO_FUNC(_name, _item, _item_member); \
- CONFIGFS_EATTR_OPS_SHOW(_name, _item);
-
-#endif /* _CONFIGFS_MACROS_H_ */
diff --git a/ANDROID_3.4.5/include/target/target_core_backend.h b/ANDROID_3.4.5/include/target/target_core_backend.h
deleted file mode 100644
index 8c9ff1b1..00000000
--- a/ANDROID_3.4.5/include/target/target_core_backend.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef TARGET_CORE_BACKEND_H
-#define TARGET_CORE_BACKEND_H
-
-#define TRANSPORT_PLUGIN_PHBA_PDEV 1
-#define TRANSPORT_PLUGIN_VHBA_PDEV 2
-#define TRANSPORT_PLUGIN_VHBA_VDEV 3
-
-struct se_subsystem_api {
- struct list_head sub_api_list;
-
- char name[16];
- struct module *owner;
-
- u8 transport_type;
-
- unsigned int fua_write_emulated : 1;
- unsigned int write_cache_emulated : 1;
-
- int (*attach_hba)(struct se_hba *, u32);
- void (*detach_hba)(struct se_hba *);
- int (*pmode_enable_hba)(struct se_hba *, unsigned long);
- void *(*allocate_virtdevice)(struct se_hba *, const char *);
- struct se_device *(*create_virtdevice)(struct se_hba *,
- struct se_subsystem_dev *, void *);
- void (*free_device)(void *);
- int (*transport_complete)(struct se_task *task);
- struct se_task *(*alloc_task)(unsigned char *cdb);
- int (*do_task)(struct se_task *);
- int (*do_discard)(struct se_device *, sector_t, u32);
- void (*do_sync_cache)(struct se_task *);
- void (*free_task)(struct se_task *);
- ssize_t (*check_configfs_dev_params)(struct se_hba *,
- struct se_subsystem_dev *);
- ssize_t (*set_configfs_dev_params)(struct se_hba *,
- struct se_subsystem_dev *, const char *, ssize_t);
- ssize_t (*show_configfs_dev_params)(struct se_hba *,
- struct se_subsystem_dev *, char *);
- u32 (*get_device_rev)(struct se_device *);
- u32 (*get_device_type)(struct se_device *);
- sector_t (*get_blocks)(struct se_device *);
- unsigned char *(*get_sense_buffer)(struct se_task *);
-};
-
-int transport_subsystem_register(struct se_subsystem_api *);
-void transport_subsystem_release(struct se_subsystem_api *);
-
-struct se_device *transport_add_device_to_core_hba(struct se_hba *,
- struct se_subsystem_api *, struct se_subsystem_dev *, u32,
- void *, struct se_dev_limits *, const char *, const char *);
-
-void transport_complete_sync_cache(struct se_cmd *, int);
-void transport_complete_task(struct se_task *, int);
-
-void target_get_task_cdb(struct se_task *, unsigned char *);
-
-void transport_set_vpd_proto_id(struct t10_vpd *, unsigned char *);
-int transport_set_vpd_assoc(struct t10_vpd *, unsigned char *);
-int transport_set_vpd_ident_type(struct t10_vpd *, unsigned char *);
-int transport_set_vpd_ident(struct t10_vpd *, unsigned char *);
-
-/* core helpers also used by command snooping in pscsi */
-void *transport_kmap_data_sg(struct se_cmd *);
-void transport_kunmap_data_sg(struct se_cmd *);
-
-void array_free(void *array, int n);
-
-#endif /* TARGET_CORE_BACKEND_H */
diff --git a/ANDROID_3.4.5/include/target/target_core_base.h b/ANDROID_3.4.5/include/target/target_core_base.h
deleted file mode 100644
index aaccc5f5..00000000
--- a/ANDROID_3.4.5/include/target/target_core_base.h
+++ /dev/null
@@ -1,960 +0,0 @@
-#ifndef TARGET_CORE_BASE_H
-#define TARGET_CORE_BASE_H
-
-#include <linux/in.h>
-#include <linux/configfs.h>
-#include <linux/dma-mapping.h>
-#include <linux/blkdev.h>
-#include <scsi/scsi_cmnd.h>
-#include <net/sock.h>
-#include <net/tcp.h>
-
-#define TARGET_CORE_MOD_VERSION "v4.1.0-rc2-ml"
-#define TARGET_CORE_VERSION TARGET_CORE_MOD_VERSION
-
-/* Maximum Number of LUNs per Target Portal Group */
-/* Don't raise above 511 or REPORT_LUNS needs to handle >1 page */
-#define TRANSPORT_MAX_LUNS_PER_TPG 256
-/*
- * By default we use 32-byte CDBs in TCM Core and subsystem plugin code.
- *
- * Note that both include/scsi/scsi_cmnd.h:MAX_COMMAND_SIZE and
- * include/linux/blkdev.h:BLOCK_MAX_CDB as of v2.6.36-rc4 still use
- * 16-byte CDBs by default and require an extra allocation for
- * 32-byte CDBs to because of legacy issues.
- *
- * Within TCM Core there are no such legacy limitiations, so we go ahead
- * use 32-byte CDBs by default and use include/scsi/scsi.h:scsi_command_size()
- * within all TCM Core and subsystem plugin code.
- */
-#define TCM_MAX_COMMAND_SIZE 32
-/*
- * From include/scsi/scsi_cmnd.h:SCSI_SENSE_BUFFERSIZE, currently
- * defined 96, but the real limit is 252 (or 260 including the header)
- */
-#define TRANSPORT_SENSE_BUFFER SCSI_SENSE_BUFFERSIZE
-/* Used by transport_send_check_condition_and_sense() */
-#define SPC_SENSE_KEY_OFFSET 2
-#define SPC_ADD_SENSE_LEN_OFFSET 7
-#define SPC_ASC_KEY_OFFSET 12
-#define SPC_ASCQ_KEY_OFFSET 13
-#define TRANSPORT_IQN_LEN 224
-/* Used by target_core_store_alua_lu_gp() and target_core_alua_lu_gp_show_attr_members() */
-#define LU_GROUP_NAME_BUF 256
-/* Used by core_alua_store_tg_pt_gp_info() and target_core_alua_tg_pt_gp_show_attr_members() */
-#define TG_PT_GROUP_NAME_BUF 256
-/* Used to parse VPD into struct t10_vpd */
-#define VPD_TMP_BUF_SIZE 128
-/* Used by transport_generic_cmd_sequencer() */
-#define READ_BLOCK_LEN 6
-#define READ_CAP_LEN 8
-#define READ_POSITION_LEN 20
-#define INQUIRY_LEN 36
-/* Used by transport_get_inquiry_vpd_serial() */
-#define INQUIRY_VPD_SERIAL_LEN 254
-/* Used by transport_get_inquiry_vpd_device_ident() */
-#define INQUIRY_VPD_DEVICE_IDENTIFIER_LEN 254
-
-/* Attempts before moving from SHORT to LONG */
-#define PYX_TRANSPORT_WINDOW_CLOSED_THRESHOLD 3
-#define PYX_TRANSPORT_WINDOW_CLOSED_WAIT_SHORT 3 /* In milliseconds */
-#define PYX_TRANSPORT_WINDOW_CLOSED_WAIT_LONG 10 /* In milliseconds */
-
-#define PYX_TRANSPORT_STATUS_INTERVAL 5 /* In seconds */
-
-/*
- * struct se_subsystem_dev->su_dev_flags
-*/
-#define SDF_FIRMWARE_VPD_UNIT_SERIAL 0x00000001
-#define SDF_EMULATED_VPD_UNIT_SERIAL 0x00000002
-#define SDF_USING_UDEV_PATH 0x00000004
-#define SDF_USING_ALIAS 0x00000008
-
-/*
- * struct se_device->dev_flags
- */
-#define DF_READ_ONLY 0x00000001
-#define DF_SPC2_RESERVATIONS 0x00000002
-#define DF_SPC2_RESERVATIONS_WITH_ISID 0x00000004
-
-/* struct se_dev_attrib sanity values */
-/* Default max_unmap_lba_count */
-#define DA_MAX_UNMAP_LBA_COUNT 0
-/* Default max_unmap_block_desc_count */
-#define DA_MAX_UNMAP_BLOCK_DESC_COUNT 0
-/* Default unmap_granularity */
-#define DA_UNMAP_GRANULARITY_DEFAULT 0
-/* Default unmap_granularity_alignment */
-#define DA_UNMAP_GRANULARITY_ALIGNMENT_DEFAULT 0
-/* Default max transfer length */
-#define DA_FABRIC_MAX_SECTORS 8192
-/* Emulation for Direct Page Out */
-#define DA_EMULATE_DPO 0
-/* Emulation for Forced Unit Access WRITEs */
-#define DA_EMULATE_FUA_WRITE 1
-/* Emulation for Forced Unit Access READs */
-#define DA_EMULATE_FUA_READ 0
-/* Emulation for WriteCache and SYNCHRONIZE_CACHE */
-#define DA_EMULATE_WRITE_CACHE 0
-/* Emulation for UNIT ATTENTION Interlock Control */
-#define DA_EMULATE_UA_INTLLCK_CTRL 0
-/* Emulation for TASK_ABORTED status (TAS) by default */
-#define DA_EMULATE_TAS 1
-/* Emulation for Thin Provisioning UNMAP using block/blk-lib.c:blkdev_issue_discard() */
-#define DA_EMULATE_TPU 0
-/*
- * Emulation for Thin Provisioning WRITE_SAME w/ UNMAP=1 bit using
- * block/blk-lib.c:blkdev_issue_discard()
- */
-#define DA_EMULATE_TPWS 0
-/* No Emulation for PSCSI by default */
-#define DA_EMULATE_RESERVATIONS 0
-/* No Emulation for PSCSI by default */
-#define DA_EMULATE_ALUA 0
-/* Enforce SCSI Initiator Port TransportID with 'ISID' for PR */
-#define DA_ENFORCE_PR_ISIDS 1
-#define DA_STATUS_MAX_SECTORS_MIN 16
-#define DA_STATUS_MAX_SECTORS_MAX 8192
-/* By default don't report non-rotating (solid state) medium */
-#define DA_IS_NONROT 0
-/* Queue Algorithm Modifier default for restricted reordering in control mode page */
-#define DA_EMULATE_REST_REORD 0
-
-#define SE_INQUIRY_BUF 512
-#define SE_MODE_PAGE_BUF 512
-
-/* struct se_hba->hba_flags */
-enum hba_flags_table {
- HBA_FLAGS_INTERNAL_USE = 0x01,
- HBA_FLAGS_PSCSI_MODE = 0x02,
-};
-
-/* struct se_lun->lun_status */
-enum transport_lun_status_table {
- TRANSPORT_LUN_STATUS_FREE = 0,
- TRANSPORT_LUN_STATUS_ACTIVE = 1,
-};
-
-/* struct se_portal_group->se_tpg_type */
-enum transport_tpg_type_table {
- TRANSPORT_TPG_TYPE_NORMAL = 0,
- TRANSPORT_TPG_TYPE_DISCOVERY = 1,
-};
-
-/* struct se_task->task_flags */
-enum se_task_flags {
- TF_ACTIVE = (1 << 0),
- TF_SENT = (1 << 1),
- TF_REQUEST_STOP = (1 << 2),
- TF_HAS_SENSE = (1 << 3),
-};
-
-/* Special transport agnostic struct se_cmd->t_states */
-enum transport_state_table {
- TRANSPORT_NO_STATE = 0,
- TRANSPORT_NEW_CMD = 1,
- TRANSPORT_WRITE_PENDING = 3,
- TRANSPORT_PROCESS_WRITE = 4,
- TRANSPORT_PROCESSING = 5,
- TRANSPORT_COMPLETE = 6,
- TRANSPORT_PROCESS_TMR = 9,
- TRANSPORT_ISTATE_PROCESSING = 11,
- TRANSPORT_NEW_CMD_MAP = 16,
- TRANSPORT_COMPLETE_QF_WP = 18,
- TRANSPORT_COMPLETE_QF_OK = 19,
-};
-
-/* Used for struct se_cmd->se_cmd_flags */
-enum se_cmd_flags_table {
- SCF_SUPPORTED_SAM_OPCODE = 0x00000001,
- SCF_TRANSPORT_TASK_SENSE = 0x00000002,
- SCF_EMULATED_TASK_SENSE = 0x00000004,
- SCF_SCSI_DATA_SG_IO_CDB = 0x00000008,
- SCF_SCSI_CONTROL_SG_IO_CDB = 0x00000010,
- SCF_SCSI_NON_DATA_CDB = 0x00000020,
- SCF_SCSI_TMR_CDB = 0x00000040,
- SCF_SCSI_CDB_EXCEPTION = 0x00000080,
- SCF_SCSI_RESERVATION_CONFLICT = 0x00000100,
- SCF_FUA = 0x00000200,
- SCF_SE_LUN_CMD = 0x00000800,
- SCF_SE_ALLOW_EOO = 0x00001000,
- SCF_BIDI = 0x00002000,
- SCF_SENT_CHECK_CONDITION = 0x00004000,
- SCF_OVERFLOW_BIT = 0x00008000,
- SCF_UNDERFLOW_BIT = 0x00010000,
- SCF_SENT_DELAYED_TAS = 0x00020000,
- SCF_ALUA_NON_OPTIMIZED = 0x00040000,
- SCF_DELAYED_CMD_FROM_SAM_ATTR = 0x00080000,
- SCF_UNUSED = 0x00100000,
- SCF_PASSTHROUGH_SG_TO_MEM_NOALLOC = 0x00200000,
- SCF_ACK_KREF = 0x00400000,
-};
-
-/* struct se_dev_entry->lun_flags and struct se_lun->lun_access */
-enum transport_lunflags_table {
- TRANSPORT_LUNFLAGS_NO_ACCESS = 0x00,
- TRANSPORT_LUNFLAGS_INITIATOR_ACCESS = 0x01,
- TRANSPORT_LUNFLAGS_READ_ONLY = 0x02,
- TRANSPORT_LUNFLAGS_READ_WRITE = 0x04,
-};
-
-/* struct se_device->dev_status */
-enum transport_device_status_table {
- TRANSPORT_DEVICE_ACTIVATED = 0x01,
- TRANSPORT_DEVICE_DEACTIVATED = 0x02,
- TRANSPORT_DEVICE_QUEUE_FULL = 0x04,
- TRANSPORT_DEVICE_SHUTDOWN = 0x08,
- TRANSPORT_DEVICE_OFFLINE_ACTIVATED = 0x10,
- TRANSPORT_DEVICE_OFFLINE_DEACTIVATED = 0x20,
-};
-
-/*
- * Used by transport_send_check_condition_and_sense() and se_cmd->scsi_sense_reason
- * to signal which ASC/ASCQ sense payload should be built.
- */
-enum tcm_sense_reason_table {
- TCM_NON_EXISTENT_LUN = 0x01,
- TCM_UNSUPPORTED_SCSI_OPCODE = 0x02,
- TCM_INCORRECT_AMOUNT_OF_DATA = 0x03,
- TCM_UNEXPECTED_UNSOLICITED_DATA = 0x04,
- TCM_SERVICE_CRC_ERROR = 0x05,
- TCM_SNACK_REJECTED = 0x06,
- TCM_SECTOR_COUNT_TOO_MANY = 0x07,
- TCM_INVALID_CDB_FIELD = 0x08,
- TCM_INVALID_PARAMETER_LIST = 0x09,
- TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE = 0x0a,
- TCM_UNKNOWN_MODE_PAGE = 0x0b,
- TCM_WRITE_PROTECTED = 0x0c,
- TCM_CHECK_CONDITION_ABORT_CMD = 0x0d,
- TCM_CHECK_CONDITION_UNIT_ATTENTION = 0x0e,
- TCM_CHECK_CONDITION_NOT_READY = 0x0f,
- TCM_RESERVATION_CONFLICT = 0x10,
-};
-
-enum target_sc_flags_table {
- TARGET_SCF_BIDI_OP = 0x01,
- TARGET_SCF_ACK_KREF = 0x02,
-};
-
-/* fabric independent task management function values */
-enum tcm_tmreq_table {
- TMR_ABORT_TASK = 1,
- TMR_ABORT_TASK_SET = 2,
- TMR_CLEAR_ACA = 3,
- TMR_CLEAR_TASK_SET = 4,
- TMR_LUN_RESET = 5,
- TMR_TARGET_WARM_RESET = 6,
- TMR_TARGET_COLD_RESET = 7,
- TMR_FABRIC_TMR = 255,
-};
-
-/* fabric independent task management response values */
-enum tcm_tmrsp_table {
- TMR_FUNCTION_COMPLETE = 0,
- TMR_TASK_DOES_NOT_EXIST = 1,
- TMR_LUN_DOES_NOT_EXIST = 2,
- TMR_TASK_STILL_ALLEGIANT = 3,
- TMR_TASK_FAILOVER_NOT_SUPPORTED = 4,
- TMR_TASK_MGMT_FUNCTION_NOT_SUPPORTED = 5,
- TMR_FUNCTION_AUTHORIZATION_FAILED = 6,
- TMR_FUNCTION_REJECTED = 255,
-};
-
-struct se_obj {
- atomic_t obj_access_count;
-};
-
-/*
- * Used by TCM Core internally to signal if ALUA emulation is enabled or
- * disabled, or running in with TCM/pSCSI passthrough mode
- */
-typedef enum {
- SPC_ALUA_PASSTHROUGH,
- SPC2_ALUA_DISABLED,
- SPC3_ALUA_EMULATED
-} t10_alua_index_t;
-
-/*
- * Used by TCM Core internally to signal if SAM Task Attribute emulation
- * is enabled or disabled, or running in with TCM/pSCSI passthrough mode
- */
-typedef enum {
- SAM_TASK_ATTR_PASSTHROUGH,
- SAM_TASK_ATTR_UNTAGGED,
- SAM_TASK_ATTR_EMULATED
-} t10_task_attr_index_t;
-
-/*
- * Used for target SCSI statistics
- */
-typedef enum {
- SCSI_INST_INDEX,
- SCSI_DEVICE_INDEX,
- SCSI_AUTH_INTR_INDEX,
- SCSI_INDEX_TYPE_MAX
-} scsi_index_t;
-
-struct se_cmd;
-
-struct t10_alua {
- t10_alua_index_t alua_type;
- /* ALUA Target Port Group ID */
- u16 alua_tg_pt_gps_counter;
- u32 alua_tg_pt_gps_count;
- spinlock_t tg_pt_gps_lock;
- struct se_subsystem_dev *t10_sub_dev;
- /* Used for default ALUA Target Port Group */
- struct t10_alua_tg_pt_gp *default_tg_pt_gp;
- /* Used for default ALUA Target Port Group ConfigFS group */
- struct config_group alua_tg_pt_gps_group;
- int (*alua_state_check)(struct se_cmd *, unsigned char *, u8 *);
- struct list_head tg_pt_gps_list;
-};
-
-struct t10_alua_lu_gp {
- u16 lu_gp_id;
- int lu_gp_valid_id;
- u32 lu_gp_members;
- atomic_t lu_gp_ref_cnt;
- spinlock_t lu_gp_lock;
- struct config_group lu_gp_group;
- struct list_head lu_gp_node;
- struct list_head lu_gp_mem_list;
-};
-
-struct t10_alua_lu_gp_member {
- bool lu_gp_assoc;
- atomic_t lu_gp_mem_ref_cnt;
- spinlock_t lu_gp_mem_lock;
- struct t10_alua_lu_gp *lu_gp;
- struct se_device *lu_gp_mem_dev;
- struct list_head lu_gp_mem_list;
-};
-
-struct t10_alua_tg_pt_gp {
- u16 tg_pt_gp_id;
- int tg_pt_gp_valid_id;
- int tg_pt_gp_alua_access_status;
- int tg_pt_gp_alua_access_type;
- int tg_pt_gp_nonop_delay_msecs;
- int tg_pt_gp_trans_delay_msecs;
- int tg_pt_gp_pref;
- int tg_pt_gp_write_metadata;
- /* Used by struct t10_alua_tg_pt_gp->tg_pt_gp_md_buf_len */
-#define ALUA_MD_BUF_LEN 1024
- u32 tg_pt_gp_md_buf_len;
- u32 tg_pt_gp_members;
- atomic_t tg_pt_gp_alua_access_state;
- atomic_t tg_pt_gp_ref_cnt;
- spinlock_t tg_pt_gp_lock;
- struct mutex tg_pt_gp_md_mutex;
- struct se_subsystem_dev *tg_pt_gp_su_dev;
- struct config_group tg_pt_gp_group;
- struct list_head tg_pt_gp_list;
- struct list_head tg_pt_gp_mem_list;
-};
-
-struct t10_alua_tg_pt_gp_member {
- bool tg_pt_gp_assoc;
- atomic_t tg_pt_gp_mem_ref_cnt;
- spinlock_t tg_pt_gp_mem_lock;
- struct t10_alua_tg_pt_gp *tg_pt_gp;
- struct se_port *tg_pt;
- struct list_head tg_pt_gp_mem_list;
-};
-
-struct t10_vpd {
- unsigned char device_identifier[INQUIRY_VPD_DEVICE_IDENTIFIER_LEN];
- int protocol_identifier_set;
- u32 protocol_identifier;
- u32 device_identifier_code_set;
- u32 association;
- u32 device_identifier_type;
- struct list_head vpd_list;
-};
-
-struct t10_wwn {
- char vendor[8];
- char model[16];
- char revision[4];
- char unit_serial[INQUIRY_VPD_SERIAL_LEN];
- spinlock_t t10_vpd_lock;
- struct se_subsystem_dev *t10_sub_dev;
- struct config_group t10_wwn_group;
- struct list_head t10_vpd_list;
-};
-
-
-/*
- * Used by TCM Core internally to signal if >= SPC-3 persistent reservations
- * emulation is enabled or disabled, or running in with TCM/pSCSI passthrough
- * mode
- */
-typedef enum {
- SPC_PASSTHROUGH,
- SPC2_RESERVATIONS,
- SPC3_PERSISTENT_RESERVATIONS
-} t10_reservations_index_t;
-
-struct t10_pr_registration {
- /* Used for fabrics that contain WWN+ISID */
-#define PR_REG_ISID_LEN 16
- /* PR_REG_ISID_LEN + ',i,0x' */
-#define PR_REG_ISID_ID_LEN (PR_REG_ISID_LEN + 5)
- char pr_reg_isid[PR_REG_ISID_LEN];
- /* Used during APTPL metadata reading */
-#define PR_APTPL_MAX_IPORT_LEN 256
- unsigned char pr_iport[PR_APTPL_MAX_IPORT_LEN];
- /* Used during APTPL metadata reading */
-#define PR_APTPL_MAX_TPORT_LEN 256
- unsigned char pr_tport[PR_APTPL_MAX_TPORT_LEN];
- /* For writing out live meta data */
- unsigned char *pr_aptpl_buf;
- u16 pr_aptpl_rpti;
- u16 pr_reg_tpgt;
- /* Reservation effects all target ports */
- int pr_reg_all_tg_pt;
- /* Activate Persistence across Target Power Loss */
- int pr_reg_aptpl;
- int pr_res_holder;
- int pr_res_type;
- int pr_res_scope;
- /* Used for fabric initiator WWPNs using a ISID */
- bool isid_present_at_reg;
- u32 pr_res_mapped_lun;
- u32 pr_aptpl_target_lun;
- u32 pr_res_generation;
- u64 pr_reg_bin_isid;
- u64 pr_res_key;
- atomic_t pr_res_holders;
- struct se_node_acl *pr_reg_nacl;
- struct se_dev_entry *pr_reg_deve;
- struct se_lun *pr_reg_tg_pt_lun;
- struct list_head pr_reg_list;
- struct list_head pr_reg_abort_list;
- struct list_head pr_reg_aptpl_list;
- struct list_head pr_reg_atp_list;
- struct list_head pr_reg_atp_mem_list;
-};
-
-/*
- * This set of function pointer ops is set based upon SPC3_PERSISTENT_RESERVATIONS,
- * SPC2_RESERVATIONS or SPC_PASSTHROUGH in drivers/target/target_core_pr.c:
- * core_setup_reservations()
- */
-struct t10_reservation_ops {
- int (*t10_reservation_check)(struct se_cmd *, u32 *);
- int (*t10_seq_non_holder)(struct se_cmd *, unsigned char *, u32);
- int (*t10_pr_register)(struct se_cmd *);
- int (*t10_pr_clear)(struct se_cmd *);
-};
-
-struct t10_reservation {
- /* Reservation effects all target ports */
- int pr_all_tg_pt;
- /* Activate Persistence across Target Power Loss enabled
- * for SCSI device */
- int pr_aptpl_active;
- /* Used by struct t10_reservation->pr_aptpl_buf_len */
-#define PR_APTPL_BUF_LEN 8192
- u32 pr_aptpl_buf_len;
- u32 pr_generation;
- t10_reservations_index_t res_type;
- spinlock_t registration_lock;
- spinlock_t aptpl_reg_lock;
- /*
- * This will always be set by one individual I_T Nexus.
- * However with all_tg_pt=1, other I_T Nexus from the
- * same initiator can access PR reg/res info on a different
- * target port.
- *
- * There is also the 'All Registrants' case, where there is
- * a single *pr_res_holder of the reservation, but all
- * registrations are considered reservation holders.
- */
- struct se_node_acl *pr_res_holder;
- struct list_head registration_list;
- struct list_head aptpl_reg_list;
- struct t10_reservation_ops pr_ops;
-};
-
-struct se_queue_obj {
- atomic_t queue_cnt;
- spinlock_t cmd_queue_lock;
- struct list_head qobj_list;
- wait_queue_head_t thread_wq;
-};
-
-struct se_task {
- unsigned long long task_lba;
- u32 task_sectors;
- u32 task_size;
- struct se_cmd *task_se_cmd;
- struct scatterlist *task_sg;
- u32 task_sg_nents;
- u16 task_flags;
- u8 task_scsi_status;
- enum dma_data_direction task_data_direction;
- struct list_head t_list;
- struct list_head t_execute_list;
- struct list_head t_state_list;
- bool t_state_active;
- struct completion task_stop_comp;
-};
-
-struct se_tmr_req {
- /* Task Management function to be performed */
- u8 function;
- /* Task Management response to send */
- u8 response;
- int call_transport;
- /* Reference to ITT that Task Mgmt should be performed */
- u32 ref_task_tag;
- /* 64-bit encoded SAM LUN from $FABRIC_MOD TMR header */
- u64 ref_task_lun;
- void *fabric_tmr_ptr;
- struct se_cmd *task_cmd;
- struct se_cmd *ref_cmd;
- struct se_device *tmr_dev;
- struct se_lun *tmr_lun;
- struct list_head tmr_list;
-};
-
-struct se_cmd {
- /* SAM response code being sent to initiator */
- u8 scsi_status;
- u8 scsi_asc;
- u8 scsi_ascq;
- u8 scsi_sense_reason;
- u16 scsi_sense_length;
- /* Delay for ALUA Active/NonOptimized state access in milliseconds */
- int alua_nonop_delay;
- /* See include/linux/dma-mapping.h */
- enum dma_data_direction data_direction;
- /* For SAM Task Attribute */
- int sam_task_attr;
- /* Transport protocol dependent state, see transport_state_table */
- enum transport_state_table t_state;
- /* Used to signal cmd->se_tfo->check_release_cmd() usage per cmd */
- unsigned check_release:1;
- unsigned cmd_wait_set:1;
- /* See se_cmd_flags_table */
- u32 se_cmd_flags;
- u32 se_ordered_id;
- /* Total size in bytes associated with command */
- u32 data_length;
- /* SCSI Presented Data Transfer Length */
- u32 cmd_spdtl;
- u32 residual_count;
- u32 orig_fe_lun;
- /* Persistent Reservation key */
- u64 pr_res_key;
- /* Used for sense data */
- void *sense_buffer;
- struct list_head se_delayed_node;
- struct list_head se_lun_node;
- struct list_head se_qf_node;
- struct se_device *se_dev;
- struct se_dev_entry *se_deve;
- struct se_lun *se_lun;
- /* Only used for internal passthrough and legacy TCM fabric modules */
- struct se_session *se_sess;
- struct se_tmr_req *se_tmr_req;
- struct list_head se_queue_node;
- struct list_head se_cmd_list;
- struct completion cmd_wait_comp;
- struct kref cmd_kref;
- struct target_core_fabric_ops *se_tfo;
- int (*execute_task)(struct se_task *);
- void (*transport_complete_callback)(struct se_cmd *);
-
- unsigned char *t_task_cdb;
- unsigned char __t_task_cdb[TCM_MAX_COMMAND_SIZE];
- unsigned long long t_task_lba;
- u32 t_tasks_sg_chained_no;
- atomic_t t_fe_count;
- atomic_t t_se_count;
- atomic_t t_task_cdbs_left;
- atomic_t t_task_cdbs_ex_left;
- atomic_t t_task_cdbs_sent;
- unsigned int transport_state;
-#define CMD_T_ABORTED (1 << 0)
-#define CMD_T_ACTIVE (1 << 1)
-#define CMD_T_COMPLETE (1 << 2)
-#define CMD_T_QUEUED (1 << 3)
-#define CMD_T_SENT (1 << 4)
-#define CMD_T_STOP (1 << 5)
-#define CMD_T_FAILED (1 << 6)
-#define CMD_T_LUN_STOP (1 << 7)
-#define CMD_T_LUN_FE_STOP (1 << 8)
-#define CMD_T_DEV_ACTIVE (1 << 9)
- spinlock_t t_state_lock;
- struct completion t_transport_stop_comp;
- struct completion transport_lun_fe_stop_comp;
- struct completion transport_lun_stop_comp;
- struct scatterlist *t_tasks_sg_chained;
-
- struct work_struct work;
-
- struct scatterlist *t_data_sg;
- unsigned int t_data_nents;
- void *t_data_vmap;
- struct scatterlist *t_bidi_data_sg;
- unsigned int t_bidi_data_nents;
-
- /* Used for BIDI READ */
- struct list_head t_task_list;
- u32 t_task_list_num;
-
-};
-
-struct se_ua {
- u8 ua_asc;
- u8 ua_ascq;
- struct se_node_acl *ua_nacl;
- struct list_head ua_dev_list;
- struct list_head ua_nacl_list;
-};
-
-struct se_node_acl {
- char initiatorname[TRANSPORT_IQN_LEN];
- /* Used to signal demo mode created ACL, disabled by default */
- bool dynamic_node_acl;
- bool acl_stop:1;
- u32 queue_depth;
- u32 acl_index;
- u64 num_cmds;
- u64 read_bytes;
- u64 write_bytes;
- spinlock_t stats_lock;
- /* Used for PR SPEC_I_PT=1 and REGISTER_AND_MOVE */
- atomic_t acl_pr_ref_count;
- struct se_dev_entry **device_list;
- struct se_session *nacl_sess;
- struct se_portal_group *se_tpg;
- spinlock_t device_list_lock;
- spinlock_t nacl_sess_lock;
- struct config_group acl_group;
- struct config_group acl_attrib_group;
- struct config_group acl_auth_group;
- struct config_group acl_param_group;
- struct config_group acl_fabric_stat_group;
- struct config_group *acl_default_groups[5];
- struct list_head acl_list;
- struct list_head acl_sess_list;
- struct completion acl_free_comp;
- struct kref acl_kref;
-};
-
-struct se_session {
- unsigned sess_tearing_down:1;
- u64 sess_bin_isid;
- struct se_node_acl *se_node_acl;
- struct se_portal_group *se_tpg;
- void *fabric_sess_ptr;
- struct list_head sess_list;
- struct list_head sess_acl_list;
- struct list_head sess_cmd_list;
- struct list_head sess_wait_list;
- spinlock_t sess_cmd_lock;
- struct kref sess_kref;
-};
-
-struct se_device;
-struct se_transform_info;
-struct scatterlist;
-
-struct se_ml_stat_grps {
- struct config_group stat_group;
- struct config_group scsi_auth_intr_group;
- struct config_group scsi_att_intr_port_group;
-};
-
-struct se_lun_acl {
- char initiatorname[TRANSPORT_IQN_LEN];
- u32 mapped_lun;
- struct se_node_acl *se_lun_nacl;
- struct se_lun *se_lun;
- struct list_head lacl_list;
- struct config_group se_lun_group;
- struct se_ml_stat_grps ml_stat_grps;
-};
-
-struct se_dev_entry {
- bool def_pr_registered;
- /* See transport_lunflags_table */
- u32 lun_flags;
- u32 deve_cmds;
- u32 mapped_lun;
- u32 average_bytes;
- u32 last_byte_count;
- u32 total_cmds;
- u32 total_bytes;
- u64 pr_res_key;
- u64 creation_time;
- u32 attach_count;
- u64 read_bytes;
- u64 write_bytes;
- atomic_t ua_count;
- /* Used for PR SPEC_I_PT=1 and REGISTER_AND_MOVE */
- atomic_t pr_ref_count;
- struct se_lun_acl *se_lun_acl;
- spinlock_t ua_lock;
- struct se_lun *se_lun;
- struct list_head alua_port_list;
- struct list_head ua_list;
-};
-
-struct se_dev_limits {
- /* Max supported HW queue depth */
- u32 hw_queue_depth;
- /* Max supported virtual queue depth */
- u32 queue_depth;
- /* From include/linux/blkdev.h for the other HW/SW limits. */
- struct queue_limits limits;
-};
-
-struct se_dev_attrib {
- int emulate_dpo;
- int emulate_fua_write;
- int emulate_fua_read;
- int emulate_write_cache;
- int emulate_ua_intlck_ctrl;
- int emulate_tas;
- int emulate_tpu;
- int emulate_tpws;
- int emulate_reservations;
- int emulate_alua;
- int enforce_pr_isids;
- int is_nonrot;
- int emulate_rest_reord;
- u32 hw_block_size;
- u32 block_size;
- u32 hw_max_sectors;
- u32 max_sectors;
- u32 fabric_max_sectors;
- u32 optimal_sectors;
- u32 hw_queue_depth;
- u32 queue_depth;
- u32 max_unmap_lba_count;
- u32 max_unmap_block_desc_count;
- u32 unmap_granularity;
- u32 unmap_granularity_alignment;
- struct se_subsystem_dev *da_sub_dev;
- struct config_group da_group;
-};
-
-struct se_dev_stat_grps {
- struct config_group stat_group;
- struct config_group scsi_dev_group;
- struct config_group scsi_tgt_dev_group;
- struct config_group scsi_lu_group;
-};
-
-struct se_subsystem_dev {
-/* Used for struct se_subsystem_dev-->se_dev_alias, must be less than PAGE_SIZE */
-#define SE_DEV_ALIAS_LEN 512
- unsigned char se_dev_alias[SE_DEV_ALIAS_LEN];
-/* Used for struct se_subsystem_dev->se_dev_udev_path[], must be less than PAGE_SIZE */
-#define SE_UDEV_PATH_LEN 512
- unsigned char se_dev_udev_path[SE_UDEV_PATH_LEN];
- u32 su_dev_flags;
- struct se_hba *se_dev_hba;
- struct se_device *se_dev_ptr;
- struct se_dev_attrib se_dev_attrib;
- /* T10 Asymmetric Logical Unit Assignment for Target Ports */
- struct t10_alua t10_alua;
- /* T10 Inquiry and VPD WWN Information */
- struct t10_wwn t10_wwn;
- /* T10 SPC-2 + SPC-3 Reservations */
- struct t10_reservation t10_pr;
- spinlock_t se_dev_lock;
- void *se_dev_su_ptr;
- struct config_group se_dev_group;
- /* For T10 Reservations */
- struct config_group se_dev_pr_group;
- /* For target_core_stat.c groups */
- struct se_dev_stat_grps dev_stat_grps;
-};
-
-struct se_device {
- /* RELATIVE TARGET PORT IDENTIFER Counter */
- u16 dev_rpti_counter;
- /* Used for SAM Task Attribute ordering */
- u32 dev_cur_ordered_id;
- u32 dev_flags;
- u32 dev_port_count;
- /* See transport_device_status_table */
- u32 dev_status;
- /* Physical device queue depth */
- u32 queue_depth;
- /* Used for SPC-2 reservations enforce of ISIDs */
- u64 dev_res_bin_isid;
- t10_task_attr_index_t dev_task_attr_type;
- /* Pointer to transport specific device structure */
- void *dev_ptr;
- u32 dev_index;
- u64 creation_time;
- u32 num_resets;
- u64 num_cmds;
- u64 read_bytes;
- u64 write_bytes;
- spinlock_t stats_lock;
- /* Active commands on this virtual SE device */
- atomic_t simple_cmds;
- atomic_t dev_ordered_id;
- atomic_t execute_tasks;
- atomic_t dev_ordered_sync;
- atomic_t dev_qf_count;
- struct se_obj dev_obj;
- struct se_obj dev_access_obj;
- struct se_obj dev_export_obj;
- struct se_queue_obj dev_queue_obj;
- spinlock_t delayed_cmd_lock;
- spinlock_t execute_task_lock;
- spinlock_t dev_reservation_lock;
- spinlock_t dev_status_lock;
- spinlock_t se_port_lock;
- spinlock_t se_tmr_lock;
- spinlock_t qf_cmd_lock;
- /* Used for legacy SPC-2 reservationsa */
- struct se_node_acl *dev_reserved_node_acl;
- /* Used for ALUA Logical Unit Group membership */
- struct t10_alua_lu_gp_member *dev_alua_lu_gp_mem;
- /* Used for SPC-3 Persistent Reservations */
- struct t10_pr_registration *dev_pr_res_holder;
- struct list_head dev_sep_list;
- struct list_head dev_tmr_list;
- /* Pointer to descriptor for processing thread */
- struct task_struct *process_thread;
- struct work_struct qf_work_queue;
- struct list_head delayed_cmd_list;
- struct list_head execute_task_list;
- struct list_head state_task_list;
- struct list_head qf_cmd_list;
- /* Pointer to associated SE HBA */
- struct se_hba *se_hba;
- struct se_subsystem_dev *se_sub_dev;
- /* Pointer to template of function pointers for transport */
- struct se_subsystem_api *transport;
- /* Linked list for struct se_hba struct se_device list */
- struct list_head dev_list;
-};
-
-struct se_hba {
- u16 hba_tpgt;
- u32 hba_id;
- /* See hba_flags_table */
- u32 hba_flags;
- /* Virtual iSCSI devices attached. */
- u32 dev_count;
- u32 hba_index;
- /* Pointer to transport specific host structure. */
- void *hba_ptr;
- /* Linked list for struct se_device */
- struct list_head hba_dev_list;
- struct list_head hba_node;
- spinlock_t device_lock;
- struct config_group hba_group;
- struct mutex hba_access_mutex;
- struct se_subsystem_api *transport;
-};
-
-struct se_port_stat_grps {
- struct config_group stat_group;
- struct config_group scsi_port_group;
- struct config_group scsi_tgt_port_group;
- struct config_group scsi_transport_group;
-};
-
-struct se_lun {
- /* See transport_lun_status_table */
- enum transport_lun_status_table lun_status;
- u32 lun_access;
- u32 lun_flags;
- u32 unpacked_lun;
- atomic_t lun_acl_count;
- spinlock_t lun_acl_lock;
- spinlock_t lun_cmd_lock;
- spinlock_t lun_sep_lock;
- struct completion lun_shutdown_comp;
- struct list_head lun_cmd_list;
- struct list_head lun_acl_list;
- struct se_device *lun_se_dev;
- struct se_port *lun_sep;
- struct config_group lun_group;
- struct se_port_stat_grps port_stat_grps;
-};
-
-struct scsi_port_stats {
- u64 cmd_pdus;
- u64 tx_data_octets;
- u64 rx_data_octets;
-};
-
-struct se_port {
- /* RELATIVE TARGET PORT IDENTIFER */
- u16 sep_rtpi;
- int sep_tg_pt_secondary_stat;
- int sep_tg_pt_secondary_write_md;
- u32 sep_index;
- struct scsi_port_stats sep_stats;
- /* Used for ALUA Target Port Groups membership */
- atomic_t sep_tg_pt_secondary_offline;
- /* Used for PR ALL_TG_PT=1 */
- atomic_t sep_tg_pt_ref_cnt;
- spinlock_t sep_alua_lock;
- struct mutex sep_tg_pt_md_mutex;
- struct t10_alua_tg_pt_gp_member *sep_alua_tg_pt_gp_mem;
- struct se_lun *sep_lun;
- struct se_portal_group *sep_tpg;
- struct list_head sep_alua_list;
- struct list_head sep_list;
-};
-
-struct se_tpg_np {
- struct se_portal_group *tpg_np_parent;
- struct config_group tpg_np_group;
-};
-
-struct se_portal_group {
- /* Type of target portal group, see transport_tpg_type_table */
- enum transport_tpg_type_table se_tpg_type;
- /* Number of ACLed Initiator Nodes for this TPG */
- u32 num_node_acls;
- /* Used for PR SPEC_I_PT=1 and REGISTER_AND_MOVE */
- atomic_t tpg_pr_ref_count;
- /* Spinlock for adding/removing ACLed Nodes */
- spinlock_t acl_node_lock;
- /* Spinlock for adding/removing sessions */
- spinlock_t session_lock;
- spinlock_t tpg_lun_lock;
- /* Pointer to $FABRIC_MOD portal group */
- void *se_tpg_fabric_ptr;
- struct list_head se_tpg_node;
- /* linked list for initiator ACL list */
- struct list_head acl_node_list;
- struct se_lun **tpg_lun_list;
- struct se_lun tpg_virt_lun0;
- /* List of TCM sessions associated wth this TPG */
- struct list_head tpg_sess_list;
- /* Pointer to $FABRIC_MOD dependent code */
- struct target_core_fabric_ops *se_tpg_tfo;
- struct se_wwn *se_tpg_wwn;
- struct config_group tpg_group;
- struct config_group *tpg_default_groups[6];
- struct config_group tpg_lun_group;
- struct config_group tpg_np_group;
- struct config_group tpg_acl_group;
- struct config_group tpg_attrib_group;
- struct config_group tpg_param_group;
-};
-
-struct se_wwn {
- struct target_fabric_configfs *wwn_tf;
- struct config_group wwn_group;
- struct config_group *wwn_default_groups[2];
- struct config_group fabric_stat_group;
-};
-
-#endif /* TARGET_CORE_BASE_H */
diff --git a/ANDROID_3.4.5/include/target/target_core_configfs.h b/ANDROID_3.4.5/include/target/target_core_configfs.h
deleted file mode 100644
index 61250959..00000000
--- a/ANDROID_3.4.5/include/target/target_core_configfs.h
+++ /dev/null
@@ -1,56 +0,0 @@
-#define TARGET_CORE_CONFIGFS_VERSION TARGET_CORE_MOD_VERSION
-
-#define TARGET_CORE_CONFIG_ROOT "/sys/kernel/config"
-
-#define TARGET_CORE_NAME_MAX_LEN 64
-#define TARGET_FABRIC_NAME_SIZE 32
-
-extern struct target_fabric_configfs *target_fabric_configfs_init(
- struct module *, const char *);
-extern void target_fabric_configfs_free(struct target_fabric_configfs *);
-extern int target_fabric_configfs_register(struct target_fabric_configfs *);
-extern void target_fabric_configfs_deregister(struct target_fabric_configfs *);
-
-struct target_fabric_configfs_template {
- struct config_item_type tfc_discovery_cit;
- struct config_item_type tfc_wwn_cit;
- struct config_item_type tfc_wwn_fabric_stats_cit;
- struct config_item_type tfc_tpg_cit;
- struct config_item_type tfc_tpg_base_cit;
- struct config_item_type tfc_tpg_lun_cit;
- struct config_item_type tfc_tpg_port_cit;
- struct config_item_type tfc_tpg_port_stat_cit;
- struct config_item_type tfc_tpg_np_cit;
- struct config_item_type tfc_tpg_np_base_cit;
- struct config_item_type tfc_tpg_attrib_cit;
- struct config_item_type tfc_tpg_param_cit;
- struct config_item_type tfc_tpg_nacl_cit;
- struct config_item_type tfc_tpg_nacl_base_cit;
- struct config_item_type tfc_tpg_nacl_attrib_cit;
- struct config_item_type tfc_tpg_nacl_auth_cit;
- struct config_item_type tfc_tpg_nacl_param_cit;
- struct config_item_type tfc_tpg_nacl_stat_cit;
- struct config_item_type tfc_tpg_mappedlun_cit;
- struct config_item_type tfc_tpg_mappedlun_stat_cit;
-};
-
-struct target_fabric_configfs {
- char tf_name[TARGET_FABRIC_NAME_SIZE];
- atomic_t tf_access_cnt;
- struct list_head tf_list;
- struct config_group tf_group;
- struct config_group tf_disc_group;
- struct config_group *tf_default_groups[2];
- /* Pointer to fabric's config_item */
- struct config_item *tf_fabric;
- /* Passed from fabric modules */
- struct config_item_type *tf_fabric_cit;
- /* Pointer to target core subsystem */
- struct configfs_subsystem *tf_subsys;
- /* Pointer to fabric's struct module */
- struct module *tf_module;
- struct target_core_fabric_ops tf_ops;
- struct target_fabric_configfs_template tf_cit_tmpl;
-};
-
-#define TF_CIT_TMPL(tf) (&(tf)->tf_cit_tmpl)
diff --git a/ANDROID_3.4.5/include/target/target_core_fabric.h b/ANDROID_3.4.5/include/target/target_core_fabric.h
deleted file mode 100644
index 10c69080..00000000
--- a/ANDROID_3.4.5/include/target/target_core_fabric.h
+++ /dev/null
@@ -1,191 +0,0 @@
-#ifndef TARGET_CORE_FABRIC_H
-#define TARGET_CORE_FABRIC_H
-
-struct target_core_fabric_ops {
- struct configfs_subsystem *tf_subsys;
- /*
- * Optional to signal struct se_task->task_sg[] padding entries
- * for scatterlist chaining using transport_do_task_sg_link(),
- * disabled by default
- */
- bool task_sg_chaining;
- char *(*get_fabric_name)(void);
- u8 (*get_fabric_proto_ident)(struct se_portal_group *);
- char *(*tpg_get_wwn)(struct se_portal_group *);
- u16 (*tpg_get_tag)(struct se_portal_group *);
- u32 (*tpg_get_default_depth)(struct se_portal_group *);
- u32 (*tpg_get_pr_transport_id)(struct se_portal_group *,
- struct se_node_acl *,
- struct t10_pr_registration *, int *,
- unsigned char *);
- u32 (*tpg_get_pr_transport_id_len)(struct se_portal_group *,
- struct se_node_acl *,
- struct t10_pr_registration *, int *);
- char *(*tpg_parse_pr_out_transport_id)(struct se_portal_group *,
- const char *, u32 *, char **);
- int (*tpg_check_demo_mode)(struct se_portal_group *);
- int (*tpg_check_demo_mode_cache)(struct se_portal_group *);
- int (*tpg_check_demo_mode_write_protect)(struct se_portal_group *);
- int (*tpg_check_prod_mode_write_protect)(struct se_portal_group *);
- /*
- * Optionally used by fabrics to allow demo-mode login, but not
- * expose any TPG LUNs, and return 'not connected' in standard
- * inquiry response
- */
- int (*tpg_check_demo_mode_login_only)(struct se_portal_group *);
- struct se_node_acl *(*tpg_alloc_fabric_acl)(
- struct se_portal_group *);
- void (*tpg_release_fabric_acl)(struct se_portal_group *,
- struct se_node_acl *);
- u32 (*tpg_get_inst_index)(struct se_portal_group *);
- /*
- * Optional function pointer for TCM to perform command map
- * from TCM processing thread context, for those struct se_cmd
- * initially allocated in interrupt context.
- */
- int (*new_cmd_map)(struct se_cmd *);
- /*
- * Optional to release struct se_cmd and fabric dependent allocated
- * I/O descriptor in transport_cmd_check_stop().
- *
- * Returning 1 will signal a descriptor has been released.
- * Returning 0 will signal a descriptor has not been released.
- */
- int (*check_stop_free)(struct se_cmd *);
- void (*release_cmd)(struct se_cmd *);
- /*
- * Called with spin_lock_bh(struct se_portal_group->session_lock held.
- */
- int (*shutdown_session)(struct se_session *);
- void (*close_session)(struct se_session *);
- u32 (*sess_get_index)(struct se_session *);
- /*
- * Used only for SCSI fabrics that contain multi-value TransportIDs
- * (like iSCSI). All other SCSI fabrics should set this to NULL.
- */
- u32 (*sess_get_initiator_sid)(struct se_session *,
- unsigned char *, u32);
- int (*write_pending)(struct se_cmd *);
- int (*write_pending_status)(struct se_cmd *);
- void (*set_default_node_attributes)(struct se_node_acl *);
- u32 (*get_task_tag)(struct se_cmd *);
- int (*get_cmd_state)(struct se_cmd *);
- int (*queue_data_in)(struct se_cmd *);
- int (*queue_status)(struct se_cmd *);
- int (*queue_tm_rsp)(struct se_cmd *);
- u16 (*set_fabric_sense_len)(struct se_cmd *, u32);
- u16 (*get_fabric_sense_len)(void);
- /*
- * fabric module calls for target_core_fabric_configfs.c
- */
- struct se_wwn *(*fabric_make_wwn)(struct target_fabric_configfs *,
- struct config_group *, const char *);
- void (*fabric_drop_wwn)(struct se_wwn *);
- struct se_portal_group *(*fabric_make_tpg)(struct se_wwn *,
- struct config_group *, const char *);
- void (*fabric_drop_tpg)(struct se_portal_group *);
- int (*fabric_post_link)(struct se_portal_group *,
- struct se_lun *);
- void (*fabric_pre_unlink)(struct se_portal_group *,
- struct se_lun *);
- struct se_tpg_np *(*fabric_make_np)(struct se_portal_group *,
- struct config_group *, const char *);
- void (*fabric_drop_np)(struct se_tpg_np *);
- struct se_node_acl *(*fabric_make_nodeacl)(struct se_portal_group *,
- struct config_group *, const char *);
- void (*fabric_drop_nodeacl)(struct se_node_acl *);
-};
-
-struct se_session *transport_init_session(void);
-void __transport_register_session(struct se_portal_group *,
- struct se_node_acl *, struct se_session *, void *);
-void transport_register_session(struct se_portal_group *,
- struct se_node_acl *, struct se_session *, void *);
-void target_get_session(struct se_session *);
-int target_put_session(struct se_session *);
-void transport_free_session(struct se_session *);
-void target_put_nacl(struct se_node_acl *);
-void transport_deregister_session_configfs(struct se_session *);
-void transport_deregister_session(struct se_session *);
-
-
-void transport_init_se_cmd(struct se_cmd *, struct target_core_fabric_ops *,
- struct se_session *, u32, int, int, unsigned char *);
-int transport_lookup_cmd_lun(struct se_cmd *, u32);
-int transport_generic_allocate_tasks(struct se_cmd *, unsigned char *);
-void target_submit_cmd(struct se_cmd *, struct se_session *, unsigned char *,
- unsigned char *, u32, u32, int, int, int);
-int target_submit_tmr(struct se_cmd *se_cmd, struct se_session *se_sess,
- unsigned char *sense, u32 unpacked_lun,
- void *fabric_tmr_ptr, unsigned char tm_type,
- gfp_t, unsigned int, int);
-int transport_handle_cdb_direct(struct se_cmd *);
-int transport_generic_handle_cdb_map(struct se_cmd *);
-int transport_generic_handle_data(struct se_cmd *);
-int transport_generic_map_mem_to_cmd(struct se_cmd *cmd,
- struct scatterlist *, u32, struct scatterlist *, u32);
-void transport_do_task_sg_chain(struct se_cmd *);
-int transport_generic_new_cmd(struct se_cmd *);
-
-void transport_generic_process_write(struct se_cmd *);
-
-void transport_generic_free_cmd(struct se_cmd *, int);
-
-bool transport_wait_for_tasks(struct se_cmd *);
-int transport_check_aborted_status(struct se_cmd *, int);
-int transport_send_check_condition_and_sense(struct se_cmd *, u8, int);
-
-void target_get_sess_cmd(struct se_session *, struct se_cmd *, bool);
-int target_put_sess_cmd(struct se_session *, struct se_cmd *);
-void target_splice_sess_cmd_list(struct se_session *);
-void target_wait_for_sess_cmds(struct se_session *, int);
-
-int core_alua_check_nonop_delay(struct se_cmd *);
-
-int core_tmr_alloc_req(struct se_cmd *, void *, u8, gfp_t);
-void core_tmr_release_req(struct se_tmr_req *);
-int transport_generic_handle_tmr(struct se_cmd *);
-void transport_generic_request_failure(struct se_cmd *);
-int transport_lookup_tmr_lun(struct se_cmd *, u32);
-
-struct se_node_acl *core_tpg_check_initiator_node_acl(struct se_portal_group *,
- unsigned char *);
-void core_tpg_clear_object_luns(struct se_portal_group *);
-struct se_node_acl *core_tpg_add_initiator_node_acl(struct se_portal_group *,
- struct se_node_acl *, const char *, u32);
-int core_tpg_del_initiator_node_acl(struct se_portal_group *,
- struct se_node_acl *, int);
-int core_tpg_set_initiator_node_queue_depth(struct se_portal_group *,
- unsigned char *, u32, int);
-int core_tpg_register(struct target_core_fabric_ops *, struct se_wwn *,
- struct se_portal_group *, void *, int);
-int core_tpg_deregister(struct se_portal_group *);
-
-/* SAS helpers */
-u8 sas_get_fabric_proto_ident(struct se_portal_group *);
-u32 sas_get_pr_transport_id(struct se_portal_group *, struct se_node_acl *,
- struct t10_pr_registration *, int *, unsigned char *);
-u32 sas_get_pr_transport_id_len(struct se_portal_group *, struct se_node_acl *,
- struct t10_pr_registration *, int *);
-char *sas_parse_pr_out_transport_id(struct se_portal_group *, const char *,
- u32 *, char **);
-
-/* FC helpers */
-u8 fc_get_fabric_proto_ident(struct se_portal_group *);
-u32 fc_get_pr_transport_id(struct se_portal_group *, struct se_node_acl *,
- struct t10_pr_registration *, int *, unsigned char *);
-u32 fc_get_pr_transport_id_len(struct se_portal_group *, struct se_node_acl *,
- struct t10_pr_registration *, int *);
-char *fc_parse_pr_out_transport_id(struct se_portal_group *, const char *,
- u32 *, char **);
-
-/* iSCSI helpers */
-u8 iscsi_get_fabric_proto_ident(struct se_portal_group *);
-u32 iscsi_get_pr_transport_id(struct se_portal_group *, struct se_node_acl *,
- struct t10_pr_registration *, int *, unsigned char *);
-u32 iscsi_get_pr_transport_id_len(struct se_portal_group *, struct se_node_acl *,
- struct t10_pr_registration *, int *);
-char *iscsi_parse_pr_out_transport_id(struct se_portal_group *, const char *,
- u32 *, char **);
-
-#endif /* TARGET_CORE_FABRICH */
diff --git a/ANDROID_3.4.5/include/target/target_core_fabric_configfs.h b/ANDROID_3.4.5/include/target/target_core_fabric_configfs.h
deleted file mode 100644
index a26fb758..00000000
--- a/ANDROID_3.4.5/include/target/target_core_fabric_configfs.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Used for tfc_wwn_cit attributes
- */
-
-#include <target/configfs_macros.h>
-
-CONFIGFS_EATTR_STRUCT(target_fabric_nacl_attrib, se_node_acl);
-#define TF_NACL_ATTRIB_ATTR(_fabric, _name, _mode) \
-static struct target_fabric_nacl_attrib_attribute _fabric##_nacl_attrib_##_name = \
- __CONFIGFS_EATTR(_name, _mode, \
- _fabric##_nacl_attrib_show_##_name, \
- _fabric##_nacl_attrib_store_##_name);
-
-CONFIGFS_EATTR_STRUCT(target_fabric_nacl_auth, se_node_acl);
-#define TF_NACL_AUTH_ATTR(_fabric, _name, _mode) \
-static struct target_fabric_nacl_auth_attribute _fabric##_nacl_auth_##_name = \
- __CONFIGFS_EATTR(_name, _mode, \
- _fabric##_nacl_auth_show_##_name, \
- _fabric##_nacl_auth_store_##_name);
-
-#define TF_NACL_AUTH_ATTR_RO(_fabric, _name) \
-static struct target_fabric_nacl_auth_attribute _fabric##_nacl_auth_##_name = \
- __CONFIGFS_EATTR_RO(_name, \
- _fabric##_nacl_auth_show_##_name);
-
-CONFIGFS_EATTR_STRUCT(target_fabric_nacl_param, se_node_acl);
-#define TF_NACL_PARAM_ATTR(_fabric, _name, _mode) \
-static struct target_fabric_nacl_param_attribute _fabric##_nacl_param_##_name = \
- __CONFIGFS_EATTR(_name, _mode, \
- _fabric##_nacl_param_show_##_name, \
- _fabric##_nacl_param_store_##_name);
-
-#define TF_NACL_PARAM_ATTR_RO(_fabric, _name) \
-static struct target_fabric_nacl_param_attribute _fabric##_nacl_param_##_name = \
- __CONFIGFS_EATTR_RO(_name, \
- _fabric##_nacl_param_show_##_name);
-
-
-CONFIGFS_EATTR_STRUCT(target_fabric_nacl_base, se_node_acl);
-#define TF_NACL_BASE_ATTR(_fabric, _name, _mode) \
-static struct target_fabric_nacl_base_attribute _fabric##_nacl_##_name = \
- __CONFIGFS_EATTR(_name, _mode, \
- _fabric##_nacl_show_##_name, \
- _fabric##_nacl_store_##_name);
-
-#define TF_NACL_BASE_ATTR_RO(_fabric, _name) \
-static struct target_fabric_nacl_base_attribute _fabric##_nacl_##_name = \
- __CONFIGFS_EATTR_RO(_name, \
- _fabric##_nacl_show_##_name);
-
-CONFIGFS_EATTR_STRUCT(target_fabric_np_base, se_tpg_np);
-#define TF_NP_BASE_ATTR(_fabric, _name, _mode) \
-static struct target_fabric_np_base_attribute _fabric##_np_##_name = \
- __CONFIGFS_EATTR(_name, _mode, \
- _fabric##_np_show_##_name, \
- _fabric##_np_store_##_name);
-
-CONFIGFS_EATTR_STRUCT(target_fabric_tpg_attrib, se_portal_group);
-#define TF_TPG_ATTRIB_ATTR(_fabric, _name, _mode) \
-static struct target_fabric_tpg_attrib_attribute _fabric##_tpg_attrib_##_name = \
- __CONFIGFS_EATTR(_name, _mode, \
- _fabric##_tpg_attrib_show_##_name, \
- _fabric##_tpg_attrib_store_##_name);
-
-
-CONFIGFS_EATTR_STRUCT(target_fabric_tpg_param, se_portal_group);
-#define TF_TPG_PARAM_ATTR(_fabric, _name, _mode) \
-static struct target_fabric_tpg_param_attribute _fabric##_tpg_param_##_name = \
- __CONFIGFS_EATTR(_name, _mode, \
- _fabric##_tpg_param_show_##_name, \
- _fabric##_tpg_param_store_##_name);
-
-
-CONFIGFS_EATTR_STRUCT(target_fabric_tpg, se_portal_group);
-#define TF_TPG_BASE_ATTR(_fabric, _name, _mode) \
-static struct target_fabric_tpg_attribute _fabric##_tpg_##_name = \
- __CONFIGFS_EATTR(_name, _mode, \
- _fabric##_tpg_show_##_name, \
- _fabric##_tpg_store_##_name);
-
-
-CONFIGFS_EATTR_STRUCT(target_fabric_wwn, target_fabric_configfs);
-#define TF_WWN_ATTR(_fabric, _name, _mode) \
-static struct target_fabric_wwn_attribute _fabric##_wwn_##_name = \
- __CONFIGFS_EATTR(_name, _mode, \
- _fabric##_wwn_show_attr_##_name, \
- _fabric##_wwn_store_attr_##_name);
-
-#define TF_WWN_ATTR_RO(_fabric, _name) \
-static struct target_fabric_wwn_attribute _fabric##_wwn_##_name = \
- __CONFIGFS_EATTR_RO(_name, \
- _fabric##_wwn_show_attr_##_name);
-
-CONFIGFS_EATTR_STRUCT(target_fabric_discovery, target_fabric_configfs);
-#define TF_DISC_ATTR(_fabric, _name, _mode) \
-static struct target_fabric_discovery_attribute _fabric##_disc_##_name = \
- __CONFIGFS_EATTR(_name, _mode, \
- _fabric##_disc_show_##_name, \
- _fabric##_disc_store_##_name);
-
-#define TF_DISC_ATTR_RO(_fabric, _name) \
-static struct target_fabric_discovery_attribute _fabric##_disc_##_name = \
- __CONFIGFS_EATTR_RO(_name, \
- _fabric##_disc_show_##_name);
-
-extern int target_fabric_setup_cits(struct target_fabric_configfs *);
diff --git a/ANDROID_3.4.5/include/trace/define_trace.h b/ANDROID_3.4.5/include/trace/define_trace.h
deleted file mode 100644
index b0b4eb24..00000000
--- a/ANDROID_3.4.5/include/trace/define_trace.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Trace files that want to automate creationg of all tracepoints defined
- * in their file should include this file. The following are macros that the
- * trace file may define:
- *
- * TRACE_SYSTEM defines the system the tracepoint is for
- *
- * TRACE_INCLUDE_FILE if the file name is something other than TRACE_SYSTEM.h
- * This macro may be defined to tell define_trace.h what file to include.
- * Note, leave off the ".h".
- *
- * TRACE_INCLUDE_PATH if the path is something other than core kernel include/trace
- * then this macro can define the path to use. Note, the path is relative to
- * define_trace.h, not the file including it. Full path names for out of tree
- * modules must be used.
- */
-
-#ifdef CREATE_TRACE_POINTS
-
-/* Prevent recursion */
-#undef CREATE_TRACE_POINTS
-
-#include <linux/stringify.h>
-
-#undef TRACE_EVENT
-#define TRACE_EVENT(name, proto, args, tstruct, assign, print) \
- DEFINE_TRACE(name)
-
-#undef TRACE_EVENT_CONDITION
-#define TRACE_EVENT_CONDITION(name, proto, args, cond, tstruct, assign, print) \
- TRACE_EVENT(name, \
- PARAMS(proto), \
- PARAMS(args), \
- PARAMS(tstruct), \
- PARAMS(assign), \
- PARAMS(print))
-
-#undef TRACE_EVENT_FN
-#define TRACE_EVENT_FN(name, proto, args, tstruct, \
- assign, print, reg, unreg) \
- DEFINE_TRACE_FN(name, reg, unreg)
-
-#undef DEFINE_EVENT
-#define DEFINE_EVENT(template, name, proto, args) \
- DEFINE_TRACE(name)
-
-#undef DEFINE_EVENT_PRINT
-#define DEFINE_EVENT_PRINT(template, name, proto, args, print) \
- DEFINE_TRACE(name)
-
-#undef DEFINE_EVENT_CONDITION
-#define DEFINE_EVENT_CONDITION(template, name, proto, args, cond) \
- DEFINE_EVENT(template, name, PARAMS(proto), PARAMS(args))
-
-#undef DECLARE_TRACE
-#define DECLARE_TRACE(name, proto, args) \
- DEFINE_TRACE(name)
-
-#undef TRACE_INCLUDE
-#undef __TRACE_INCLUDE
-
-#ifndef TRACE_INCLUDE_FILE
-# define TRACE_INCLUDE_FILE TRACE_SYSTEM
-# define UNDEF_TRACE_INCLUDE_FILE
-#endif
-
-#ifndef TRACE_INCLUDE_PATH
-# define __TRACE_INCLUDE(system) <trace/events/system.h>
-# define UNDEF_TRACE_INCLUDE_PATH
-#else
-# define __TRACE_INCLUDE(system) __stringify(TRACE_INCLUDE_PATH/system.h)
-#endif
-
-# define TRACE_INCLUDE(system) __TRACE_INCLUDE(system)
-
-/* Let the trace headers be reread */
-#define TRACE_HEADER_MULTI_READ
-
-#include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
-
-/* Make all open coded DECLARE_TRACE nops */
-#undef DECLARE_TRACE
-#define DECLARE_TRACE(name, proto, args)
-
-#ifdef CONFIG_EVENT_TRACING
-#include <trace/ftrace.h>
-#endif
-
-#undef TRACE_EVENT
-#undef TRACE_EVENT_FN
-#undef TRACE_EVENT_CONDITION
-#undef DECLARE_EVENT_CLASS
-#undef DEFINE_EVENT
-#undef DEFINE_EVENT_PRINT
-#undef DEFINE_EVENT_CONDITION
-#undef TRACE_HEADER_MULTI_READ
-#undef DECLARE_TRACE
-
-/* Only undef what we defined in this file */
-#ifdef UNDEF_TRACE_INCLUDE_FILE
-# undef TRACE_INCLUDE_FILE
-# undef UNDEF_TRACE_INCLUDE_FILE
-#endif
-
-#ifdef UNDEF_TRACE_INCLUDE_PATH
-# undef TRACE_INCLUDE_PATH
-# undef UNDEF_TRACE_INCLUDE_PATH
-#endif
-
-/* We may be processing more files */
-#define CREATE_TRACE_POINTS
-
-#endif /* CREATE_TRACE_POINTS */
diff --git a/ANDROID_3.4.5/include/trace/events/9p.h b/ANDROID_3.4.5/include/trace/events/9p.h
deleted file mode 100644
index beeaed83..00000000
--- a/ANDROID_3.4.5/include/trace/events/9p.h
+++ /dev/null
@@ -1,176 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM 9p
-
-#if !defined(_TRACE_9P_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_9P_H
-
-#include <linux/tracepoint.h>
-
-#define show_9p_op(type) \
- __print_symbolic(type, \
- { P9_TLERROR, "P9_TLERROR" }, \
- { P9_RLERROR, "P9_RLERROR" }, \
- { P9_TSTATFS, "P9_TSTATFS" }, \
- { P9_RSTATFS, "P9_RSTATFS" }, \
- { P9_TLOPEN, "P9_TLOPEN" }, \
- { P9_RLOPEN, "P9_RLOPEN" }, \
- { P9_TLCREATE, "P9_TLCREATE" }, \
- { P9_RLCREATE, "P9_RLCREATE" }, \
- { P9_TSYMLINK, "P9_TSYMLINK" }, \
- { P9_RSYMLINK, "P9_RSYMLINK" }, \
- { P9_TMKNOD, "P9_TMKNOD" }, \
- { P9_RMKNOD, "P9_RMKNOD" }, \
- { P9_TRENAME, "P9_TRENAME" }, \
- { P9_RRENAME, "P9_RRENAME" }, \
- { P9_TREADLINK, "P9_TREADLINK" }, \
- { P9_RREADLINK, "P9_RREADLINK" }, \
- { P9_TGETATTR, "P9_TGETATTR" }, \
- { P9_RGETATTR, "P9_RGETATTR" }, \
- { P9_TSETATTR, "P9_TSETATTR" }, \
- { P9_RSETATTR, "P9_RSETATTR" }, \
- { P9_TXATTRWALK, "P9_TXATTRWALK" }, \
- { P9_RXATTRWALK, "P9_RXATTRWALK" }, \
- { P9_TXATTRCREATE, "P9_TXATTRCREATE" }, \
- { P9_RXATTRCREATE, "P9_RXATTRCREATE" }, \
- { P9_TREADDIR, "P9_TREADDIR" }, \
- { P9_RREADDIR, "P9_RREADDIR" }, \
- { P9_TFSYNC, "P9_TFSYNC" }, \
- { P9_RFSYNC, "P9_RFSYNC" }, \
- { P9_TLOCK, "P9_TLOCK" }, \
- { P9_RLOCK, "P9_RLOCK" }, \
- { P9_TGETLOCK, "P9_TGETLOCK" }, \
- { P9_RGETLOCK, "P9_RGETLOCK" }, \
- { P9_TLINK, "P9_TLINK" }, \
- { P9_RLINK, "P9_RLINK" }, \
- { P9_TMKDIR, "P9_TMKDIR" }, \
- { P9_RMKDIR, "P9_RMKDIR" }, \
- { P9_TRENAMEAT, "P9_TRENAMEAT" }, \
- { P9_RRENAMEAT, "P9_RRENAMEAT" }, \
- { P9_TUNLINKAT, "P9_TUNLINKAT" }, \
- { P9_RUNLINKAT, "P9_RUNLINKAT" }, \
- { P9_TVERSION, "P9_TVERSION" }, \
- { P9_RVERSION, "P9_RVERSION" }, \
- { P9_TAUTH, "P9_TAUTH" }, \
- { P9_RAUTH, "P9_RAUTH" }, \
- { P9_TATTACH, "P9_TATTACH" }, \
- { P9_RATTACH, "P9_RATTACH" }, \
- { P9_TERROR, "P9_TERROR" }, \
- { P9_RERROR, "P9_RERROR" }, \
- { P9_TFLUSH, "P9_TFLUSH" }, \
- { P9_RFLUSH, "P9_RFLUSH" }, \
- { P9_TWALK, "P9_TWALK" }, \
- { P9_RWALK, "P9_RWALK" }, \
- { P9_TOPEN, "P9_TOPEN" }, \
- { P9_ROPEN, "P9_ROPEN" }, \
- { P9_TCREATE, "P9_TCREATE" }, \
- { P9_RCREATE, "P9_RCREATE" }, \
- { P9_TREAD, "P9_TREAD" }, \
- { P9_RREAD, "P9_RREAD" }, \
- { P9_TWRITE, "P9_TWRITE" }, \
- { P9_RWRITE, "P9_RWRITE" }, \
- { P9_TCLUNK, "P9_TCLUNK" }, \
- { P9_RCLUNK, "P9_RCLUNK" }, \
- { P9_TREMOVE, "P9_TREMOVE" }, \
- { P9_RREMOVE, "P9_RREMOVE" }, \
- { P9_TSTAT, "P9_TSTAT" }, \
- { P9_RSTAT, "P9_RSTAT" }, \
- { P9_TWSTAT, "P9_TWSTAT" }, \
- { P9_RWSTAT, "P9_RWSTAT" })
-
-TRACE_EVENT(9p_client_req,
- TP_PROTO(struct p9_client *clnt, int8_t type, int tag),
-
- TP_ARGS(clnt, type, tag),
-
- TP_STRUCT__entry(
- __field( void *, clnt )
- __field( __u8, type )
- __field( __u32, tag )
- ),
-
- TP_fast_assign(
- __entry->clnt = clnt;
- __entry->type = type;
- __entry->tag = tag;
- ),
-
- TP_printk("client %lu request %s tag %d",
- (long)__entry->clnt, show_9p_op(__entry->type),
- __entry->tag)
- );
-
-TRACE_EVENT(9p_client_res,
- TP_PROTO(struct p9_client *clnt, int8_t type, int tag, int err),
-
- TP_ARGS(clnt, type, tag, err),
-
- TP_STRUCT__entry(
- __field( void *, clnt )
- __field( __u8, type )
- __field( __u32, tag )
- __field( __u32, err )
- ),
-
- TP_fast_assign(
- __entry->clnt = clnt;
- __entry->type = type;
- __entry->tag = tag;
- __entry->err = err;
- ),
-
- TP_printk("client %lu response %s tag %d err %d",
- (long)__entry->clnt, show_9p_op(__entry->type),
- __entry->tag, __entry->err)
-);
-
-/* dump 32 bytes of protocol data */
-#define P9_PROTO_DUMP_SZ 32
-TRACE_EVENT(9p_protocol_dump,
- TP_PROTO(struct p9_client *clnt, struct p9_fcall *pdu),
-
- TP_ARGS(clnt, pdu),
-
- TP_STRUCT__entry(
- __field( void *, clnt )
- __field( __u8, type )
- __field( __u16, tag )
- __array( unsigned char, line, P9_PROTO_DUMP_SZ )
- ),
-
- TP_fast_assign(
- __entry->clnt = clnt;
- __entry->type = pdu->id;
- __entry->tag = pdu->tag;
- memcpy(__entry->line, pdu->sdata, P9_PROTO_DUMP_SZ);
- ),
- TP_printk("clnt %lu %s(tag = %d)\n%.3x: "
- "%02x %02x %02x %02x %02x %02x %02x %02x "
- "%02x %02x %02x %02x %02x %02x %02x %02x\n"
- "%.3x: "
- "%02x %02x %02x %02x %02x %02x %02x %02x "
- "%02x %02x %02x %02x %02x %02x %02x %02x\n",
- (long)__entry->clnt, show_9p_op(__entry->type),
- __entry->tag, 0,
- __entry->line[0], __entry->line[1],
- __entry->line[2], __entry->line[3],
- __entry->line[4], __entry->line[5],
- __entry->line[6], __entry->line[7],
- __entry->line[8], __entry->line[9],
- __entry->line[10], __entry->line[11],
- __entry->line[12], __entry->line[13],
- __entry->line[14], __entry->line[15],
- 16,
- __entry->line[16], __entry->line[17],
- __entry->line[18], __entry->line[19],
- __entry->line[20], __entry->line[21],
- __entry->line[22], __entry->line[23],
- __entry->line[24], __entry->line[25],
- __entry->line[26], __entry->line[27],
- __entry->line[28], __entry->line[29],
- __entry->line[30], __entry->line[31])
- );
-
-#endif /* _TRACE_9P_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/asoc.h b/ANDROID_3.4.5/include/trace/events/asoc.h
deleted file mode 100644
index ab26f8aa..00000000
--- a/ANDROID_3.4.5/include/trace/events/asoc.h
+++ /dev/null
@@ -1,330 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM asoc
-
-#if !defined(_TRACE_ASOC_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_ASOC_H
-
-#include <linux/ktime.h>
-#include <linux/tracepoint.h>
-
-struct snd_soc_jack;
-struct snd_soc_codec;
-struct snd_soc_platform;
-struct snd_soc_card;
-struct snd_soc_dapm_widget;
-
-/*
- * Log register events
- */
-DECLARE_EVENT_CLASS(snd_soc_reg,
-
- TP_PROTO(struct snd_soc_codec *codec, unsigned int reg,
- unsigned int val),
-
- TP_ARGS(codec, reg, val),
-
- TP_STRUCT__entry(
- __string( name, codec->name )
- __field( int, id )
- __field( unsigned int, reg )
- __field( unsigned int, val )
- ),
-
- TP_fast_assign(
- __assign_str(name, codec->name);
- __entry->id = codec->id;
- __entry->reg = reg;
- __entry->val = val;
- ),
-
- TP_printk("codec=%s.%d reg=%x val=%x", __get_str(name),
- (int)__entry->id, (unsigned int)__entry->reg,
- (unsigned int)__entry->val)
-);
-
-DEFINE_EVENT(snd_soc_reg, snd_soc_reg_write,
-
- TP_PROTO(struct snd_soc_codec *codec, unsigned int reg,
- unsigned int val),
-
- TP_ARGS(codec, reg, val)
-
-);
-
-DEFINE_EVENT(snd_soc_reg, snd_soc_reg_read,
-
- TP_PROTO(struct snd_soc_codec *codec, unsigned int reg,
- unsigned int val),
-
- TP_ARGS(codec, reg, val)
-
-);
-
-DECLARE_EVENT_CLASS(snd_soc_preg,
-
- TP_PROTO(struct snd_soc_platform *platform, unsigned int reg,
- unsigned int val),
-
- TP_ARGS(platform, reg, val),
-
- TP_STRUCT__entry(
- __string( name, platform->name )
- __field( int, id )
- __field( unsigned int, reg )
- __field( unsigned int, val )
- ),
-
- TP_fast_assign(
- __assign_str(name, platform->name);
- __entry->id = platform->id;
- __entry->reg = reg;
- __entry->val = val;
- ),
-
- TP_printk("platform=%s.%d reg=%x val=%x", __get_str(name),
- (int)__entry->id, (unsigned int)__entry->reg,
- (unsigned int)__entry->val)
-);
-
-DEFINE_EVENT(snd_soc_preg, snd_soc_preg_write,
-
- TP_PROTO(struct snd_soc_platform *platform, unsigned int reg,
- unsigned int val),
-
- TP_ARGS(platform, reg, val)
-
-);
-
-DEFINE_EVENT(snd_soc_preg, snd_soc_preg_read,
-
- TP_PROTO(struct snd_soc_platform *platform, unsigned int reg,
- unsigned int val),
-
- TP_ARGS(platform, reg, val)
-
-);
-
-DECLARE_EVENT_CLASS(snd_soc_card,
-
- TP_PROTO(struct snd_soc_card *card, int val),
-
- TP_ARGS(card, val),
-
- TP_STRUCT__entry(
- __string( name, card->name )
- __field( int, val )
- ),
-
- TP_fast_assign(
- __assign_str(name, card->name);
- __entry->val = val;
- ),
-
- TP_printk("card=%s val=%d", __get_str(name), (int)__entry->val)
-);
-
-DEFINE_EVENT(snd_soc_card, snd_soc_bias_level_start,
-
- TP_PROTO(struct snd_soc_card *card, int val),
-
- TP_ARGS(card, val)
-
-);
-
-DEFINE_EVENT(snd_soc_card, snd_soc_bias_level_done,
-
- TP_PROTO(struct snd_soc_card *card, int val),
-
- TP_ARGS(card, val)
-
-);
-
-DECLARE_EVENT_CLASS(snd_soc_dapm_basic,
-
- TP_PROTO(struct snd_soc_card *card),
-
- TP_ARGS(card),
-
- TP_STRUCT__entry(
- __string( name, card->name )
- ),
-
- TP_fast_assign(
- __assign_str(name, card->name);
- ),
-
- TP_printk("card=%s", __get_str(name))
-);
-
-DEFINE_EVENT(snd_soc_dapm_basic, snd_soc_dapm_start,
-
- TP_PROTO(struct snd_soc_card *card),
-
- TP_ARGS(card)
-
-);
-
-DEFINE_EVENT(snd_soc_dapm_basic, snd_soc_dapm_done,
-
- TP_PROTO(struct snd_soc_card *card),
-
- TP_ARGS(card)
-
-);
-
-DECLARE_EVENT_CLASS(snd_soc_dapm_widget,
-
- TP_PROTO(struct snd_soc_dapm_widget *w, int val),
-
- TP_ARGS(w, val),
-
- TP_STRUCT__entry(
- __string( name, w->name )
- __field( int, val )
- ),
-
- TP_fast_assign(
- __assign_str(name, w->name);
- __entry->val = val;
- ),
-
- TP_printk("widget=%s val=%d", __get_str(name),
- (int)__entry->val)
-);
-
-DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_power,
-
- TP_PROTO(struct snd_soc_dapm_widget *w, int val),
-
- TP_ARGS(w, val)
-
-);
-
-DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_event_start,
-
- TP_PROTO(struct snd_soc_dapm_widget *w, int val),
-
- TP_ARGS(w, val)
-
-);
-
-DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_event_done,
-
- TP_PROTO(struct snd_soc_dapm_widget *w, int val),
-
- TP_ARGS(w, val)
-
-);
-
-TRACE_EVENT(snd_soc_dapm_walk_done,
-
- TP_PROTO(struct snd_soc_card *card),
-
- TP_ARGS(card),
-
- TP_STRUCT__entry(
- __string( name, card->name )
- __field( int, power_checks )
- __field( int, path_checks )
- __field( int, neighbour_checks )
- ),
-
- TP_fast_assign(
- __assign_str(name, card->name);
- __entry->power_checks = card->dapm_stats.power_checks;
- __entry->path_checks = card->dapm_stats.path_checks;
- __entry->neighbour_checks = card->dapm_stats.neighbour_checks;
- ),
-
- TP_printk("%s: checks %d power, %d path, %d neighbour",
- __get_str(name), (int)__entry->power_checks,
- (int)__entry->path_checks, (int)__entry->neighbour_checks)
-);
-
-TRACE_EVENT(snd_soc_jack_irq,
-
- TP_PROTO(const char *name),
-
- TP_ARGS(name),
-
- TP_STRUCT__entry(
- __string( name, name )
- ),
-
- TP_fast_assign(
- __assign_str(name, name);
- ),
-
- TP_printk("%s", __get_str(name))
-);
-
-TRACE_EVENT(snd_soc_jack_report,
-
- TP_PROTO(struct snd_soc_jack *jack, int mask, int val),
-
- TP_ARGS(jack, mask, val),
-
- TP_STRUCT__entry(
- __string( name, jack->jack->name )
- __field( int, mask )
- __field( int, val )
- ),
-
- TP_fast_assign(
- __assign_str(name, jack->jack->name);
- __entry->mask = mask;
- __entry->val = val;
- ),
-
- TP_printk("jack=%s %x/%x", __get_str(name), (int)__entry->val,
- (int)__entry->mask)
-);
-
-TRACE_EVENT(snd_soc_jack_notify,
-
- TP_PROTO(struct snd_soc_jack *jack, int val),
-
- TP_ARGS(jack, val),
-
- TP_STRUCT__entry(
- __string( name, jack->jack->name )
- __field( int, val )
- ),
-
- TP_fast_assign(
- __assign_str(name, jack->jack->name);
- __entry->val = val;
- ),
-
- TP_printk("jack=%s %x", __get_str(name), (int)__entry->val)
-);
-
-TRACE_EVENT(snd_soc_cache_sync,
-
- TP_PROTO(struct snd_soc_codec *codec, const char *type,
- const char *status),
-
- TP_ARGS(codec, type, status),
-
- TP_STRUCT__entry(
- __string( name, codec->name )
- __string( status, status )
- __string( type, type )
- __field( int, id )
- ),
-
- TP_fast_assign(
- __assign_str(name, codec->name);
- __assign_str(status, status);
- __assign_str(type, type);
- __entry->id = codec->id;
- ),
-
- TP_printk("codec=%s.%d type=%s status=%s", __get_str(name),
- (int)__entry->id, __get_str(type), __get_str(status))
-);
-
-#endif /* _TRACE_ASOC_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/block.h b/ANDROID_3.4.5/include/trace/events/block.h
deleted file mode 100644
index 05c5e61f..00000000
--- a/ANDROID_3.4.5/include/trace/events/block.h
+++ /dev/null
@@ -1,571 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM block
-
-#if !defined(_TRACE_BLOCK_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_BLOCK_H
-
-#include <linux/blktrace_api.h>
-#include <linux/blkdev.h>
-#include <linux/tracepoint.h>
-
-#define RWBS_LEN 8
-
-DECLARE_EVENT_CLASS(block_rq_with_error,
-
- TP_PROTO(struct request_queue *q, struct request *rq),
-
- TP_ARGS(q, rq),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( sector_t, sector )
- __field( unsigned int, nr_sector )
- __field( int, errors )
- __array( char, rwbs, RWBS_LEN )
- __dynamic_array( char, cmd, blk_cmd_buf_len(rq) )
- ),
-
- TP_fast_assign(
- __entry->dev = rq->rq_disk ? disk_devt(rq->rq_disk) : 0;
- __entry->sector = (rq->cmd_type == REQ_TYPE_BLOCK_PC) ?
- 0 : blk_rq_pos(rq);
- __entry->nr_sector = (rq->cmd_type == REQ_TYPE_BLOCK_PC) ?
- 0 : blk_rq_sectors(rq);
- __entry->errors = rq->errors;
-
- blk_fill_rwbs(__entry->rwbs, rq->cmd_flags, blk_rq_bytes(rq));
- blk_dump_cmd(__get_str(cmd), rq);
- ),
-
- TP_printk("%d,%d %s (%s) %llu + %u [%d]",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- __entry->rwbs, __get_str(cmd),
- (unsigned long long)__entry->sector,
- __entry->nr_sector, __entry->errors)
-);
-
-/**
- * block_rq_abort - abort block operation request
- * @q: queue containing the block operation request
- * @rq: block IO operation request
- *
- * Called immediately after pending block IO operation request @rq in
- * queue @q is aborted. The fields in the operation request @rq
- * can be examined to determine which device and sectors the pending
- * operation would access.
- */
-DEFINE_EVENT(block_rq_with_error, block_rq_abort,
-
- TP_PROTO(struct request_queue *q, struct request *rq),
-
- TP_ARGS(q, rq)
-);
-
-/**
- * block_rq_requeue - place block IO request back on a queue
- * @q: queue holding operation
- * @rq: block IO operation request
- *
- * The block operation request @rq is being placed back into queue
- * @q. For some reason the request was not completed and needs to be
- * put back in the queue.
- */
-DEFINE_EVENT(block_rq_with_error, block_rq_requeue,
-
- TP_PROTO(struct request_queue *q, struct request *rq),
-
- TP_ARGS(q, rq)
-);
-
-/**
- * block_rq_complete - block IO operation completed by device driver
- * @q: queue containing the block operation request
- * @rq: block operations request
- *
- * The block_rq_complete tracepoint event indicates that some portion
- * of operation request has been completed by the device driver. If
- * the @rq->bio is %NULL, then there is absolutely no additional work to
- * do for the request. If @rq->bio is non-NULL then there is
- * additional work required to complete the request.
- */
-DEFINE_EVENT(block_rq_with_error, block_rq_complete,
-
- TP_PROTO(struct request_queue *q, struct request *rq),
-
- TP_ARGS(q, rq)
-);
-
-DECLARE_EVENT_CLASS(block_rq,
-
- TP_PROTO(struct request_queue *q, struct request *rq),
-
- TP_ARGS(q, rq),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( sector_t, sector )
- __field( unsigned int, nr_sector )
- __field( unsigned int, bytes )
- __array( char, rwbs, RWBS_LEN )
- __array( char, comm, TASK_COMM_LEN )
- __dynamic_array( char, cmd, blk_cmd_buf_len(rq) )
- ),
-
- TP_fast_assign(
- __entry->dev = rq->rq_disk ? disk_devt(rq->rq_disk) : 0;
- __entry->sector = (rq->cmd_type == REQ_TYPE_BLOCK_PC) ?
- 0 : blk_rq_pos(rq);
- __entry->nr_sector = (rq->cmd_type == REQ_TYPE_BLOCK_PC) ?
- 0 : blk_rq_sectors(rq);
- __entry->bytes = (rq->cmd_type == REQ_TYPE_BLOCK_PC) ?
- blk_rq_bytes(rq) : 0;
-
- blk_fill_rwbs(__entry->rwbs, rq->cmd_flags, blk_rq_bytes(rq));
- blk_dump_cmd(__get_str(cmd), rq);
- memcpy(__entry->comm, current->comm, TASK_COMM_LEN);
- ),
-
- TP_printk("%d,%d %s %u (%s) %llu + %u [%s]",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- __entry->rwbs, __entry->bytes, __get_str(cmd),
- (unsigned long long)__entry->sector,
- __entry->nr_sector, __entry->comm)
-);
-
-/**
- * block_rq_insert - insert block operation request into queue
- * @q: target queue
- * @rq: block IO operation request
- *
- * Called immediately before block operation request @rq is inserted
- * into queue @q. The fields in the operation request @rq struct can
- * be examined to determine which device and sectors the pending
- * operation would access.
- */
-DEFINE_EVENT(block_rq, block_rq_insert,
-
- TP_PROTO(struct request_queue *q, struct request *rq),
-
- TP_ARGS(q, rq)
-);
-
-/**
- * block_rq_issue - issue pending block IO request operation to device driver
- * @q: queue holding operation
- * @rq: block IO operation operation request
- *
- * Called when block operation request @rq from queue @q is sent to a
- * device driver for processing.
- */
-DEFINE_EVENT(block_rq, block_rq_issue,
-
- TP_PROTO(struct request_queue *q, struct request *rq),
-
- TP_ARGS(q, rq)
-);
-
-/**
- * block_bio_bounce - used bounce buffer when processing block operation
- * @q: queue holding the block operation
- * @bio: block operation
- *
- * A bounce buffer was used to handle the block operation @bio in @q.
- * This occurs when hardware limitations prevent a direct transfer of
- * data between the @bio data memory area and the IO device. Use of a
- * bounce buffer requires extra copying of data and decreases
- * performance.
- */
-TRACE_EVENT(block_bio_bounce,
-
- TP_PROTO(struct request_queue *q, struct bio *bio),
-
- TP_ARGS(q, bio),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( sector_t, sector )
- __field( unsigned int, nr_sector )
- __array( char, rwbs, RWBS_LEN )
- __array( char, comm, TASK_COMM_LEN )
- ),
-
- TP_fast_assign(
- __entry->dev = bio->bi_bdev ?
- bio->bi_bdev->bd_dev : 0;
- __entry->sector = bio->bi_sector;
- __entry->nr_sector = bio->bi_size >> 9;
- blk_fill_rwbs(__entry->rwbs, bio->bi_rw, bio->bi_size);
- memcpy(__entry->comm, current->comm, TASK_COMM_LEN);
- ),
-
- TP_printk("%d,%d %s %llu + %u [%s]",
- MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs,
- (unsigned long long)__entry->sector,
- __entry->nr_sector, __entry->comm)
-);
-
-/**
- * block_bio_complete - completed all work on the block operation
- * @q: queue holding the block operation
- * @bio: block operation completed
- * @error: io error value
- *
- * This tracepoint indicates there is no further work to do on this
- * block IO operation @bio.
- */
-TRACE_EVENT(block_bio_complete,
-
- TP_PROTO(struct request_queue *q, struct bio *bio, int error),
-
- TP_ARGS(q, bio, error),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( sector_t, sector )
- __field( unsigned, nr_sector )
- __field( int, error )
- __array( char, rwbs, RWBS_LEN)
- ),
-
- TP_fast_assign(
- __entry->dev = bio->bi_bdev->bd_dev;
- __entry->sector = bio->bi_sector;
- __entry->nr_sector = bio->bi_size >> 9;
- __entry->error = error;
- blk_fill_rwbs(__entry->rwbs, bio->bi_rw, bio->bi_size);
- ),
-
- TP_printk("%d,%d %s %llu + %u [%d]",
- MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs,
- (unsigned long long)__entry->sector,
- __entry->nr_sector, __entry->error)
-);
-
-DECLARE_EVENT_CLASS(block_bio,
-
- TP_PROTO(struct request_queue *q, struct bio *bio),
-
- TP_ARGS(q, bio),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( sector_t, sector )
- __field( unsigned int, nr_sector )
- __array( char, rwbs, RWBS_LEN )
- __array( char, comm, TASK_COMM_LEN )
- ),
-
- TP_fast_assign(
- __entry->dev = bio->bi_bdev->bd_dev;
- __entry->sector = bio->bi_sector;
- __entry->nr_sector = bio->bi_size >> 9;
- blk_fill_rwbs(__entry->rwbs, bio->bi_rw, bio->bi_size);
- memcpy(__entry->comm, current->comm, TASK_COMM_LEN);
- ),
-
- TP_printk("%d,%d %s %llu + %u [%s]",
- MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs,
- (unsigned long long)__entry->sector,
- __entry->nr_sector, __entry->comm)
-);
-
-/**
- * block_bio_backmerge - merging block operation to the end of an existing operation
- * @q: queue holding operation
- * @bio: new block operation to merge
- *
- * Merging block request @bio to the end of an existing block request
- * in queue @q.
- */
-DEFINE_EVENT(block_bio, block_bio_backmerge,
-
- TP_PROTO(struct request_queue *q, struct bio *bio),
-
- TP_ARGS(q, bio)
-);
-
-/**
- * block_bio_frontmerge - merging block operation to the beginning of an existing operation
- * @q: queue holding operation
- * @bio: new block operation to merge
- *
- * Merging block IO operation @bio to the beginning of an existing block
- * operation in queue @q.
- */
-DEFINE_EVENT(block_bio, block_bio_frontmerge,
-
- TP_PROTO(struct request_queue *q, struct bio *bio),
-
- TP_ARGS(q, bio)
-);
-
-/**
- * block_bio_queue - putting new block IO operation in queue
- * @q: queue holding operation
- * @bio: new block operation
- *
- * About to place the block IO operation @bio into queue @q.
- */
-DEFINE_EVENT(block_bio, block_bio_queue,
-
- TP_PROTO(struct request_queue *q, struct bio *bio),
-
- TP_ARGS(q, bio)
-);
-
-DECLARE_EVENT_CLASS(block_get_rq,
-
- TP_PROTO(struct request_queue *q, struct bio *bio, int rw),
-
- TP_ARGS(q, bio, rw),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( sector_t, sector )
- __field( unsigned int, nr_sector )
- __array( char, rwbs, RWBS_LEN )
- __array( char, comm, TASK_COMM_LEN )
- ),
-
- TP_fast_assign(
- __entry->dev = bio ? bio->bi_bdev->bd_dev : 0;
- __entry->sector = bio ? bio->bi_sector : 0;
- __entry->nr_sector = bio ? bio->bi_size >> 9 : 0;
- blk_fill_rwbs(__entry->rwbs,
- bio ? bio->bi_rw : 0, __entry->nr_sector);
- memcpy(__entry->comm, current->comm, TASK_COMM_LEN);
- ),
-
- TP_printk("%d,%d %s %llu + %u [%s]",
- MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs,
- (unsigned long long)__entry->sector,
- __entry->nr_sector, __entry->comm)
-);
-
-/**
- * block_getrq - get a free request entry in queue for block IO operations
- * @q: queue for operations
- * @bio: pending block IO operation
- * @rw: low bit indicates a read (%0) or a write (%1)
- *
- * A request struct for queue @q has been allocated to handle the
- * block IO operation @bio.
- */
-DEFINE_EVENT(block_get_rq, block_getrq,
-
- TP_PROTO(struct request_queue *q, struct bio *bio, int rw),
-
- TP_ARGS(q, bio, rw)
-);
-
-/**
- * block_sleeprq - waiting to get a free request entry in queue for block IO operation
- * @q: queue for operation
- * @bio: pending block IO operation
- * @rw: low bit indicates a read (%0) or a write (%1)
- *
- * In the case where a request struct cannot be provided for queue @q
- * the process needs to wait for an request struct to become
- * available. This tracepoint event is generated each time the
- * process goes to sleep waiting for request struct become available.
- */
-DEFINE_EVENT(block_get_rq, block_sleeprq,
-
- TP_PROTO(struct request_queue *q, struct bio *bio, int rw),
-
- TP_ARGS(q, bio, rw)
-);
-
-/**
- * block_plug - keep operations requests in request queue
- * @q: request queue to plug
- *
- * Plug the request queue @q. Do not allow block operation requests
- * to be sent to the device driver. Instead, accumulate requests in
- * the queue to improve throughput performance of the block device.
- */
-TRACE_EVENT(block_plug,
-
- TP_PROTO(struct request_queue *q),
-
- TP_ARGS(q),
-
- TP_STRUCT__entry(
- __array( char, comm, TASK_COMM_LEN )
- ),
-
- TP_fast_assign(
- memcpy(__entry->comm, current->comm, TASK_COMM_LEN);
- ),
-
- TP_printk("[%s]", __entry->comm)
-);
-
-DECLARE_EVENT_CLASS(block_unplug,
-
- TP_PROTO(struct request_queue *q, unsigned int depth, bool explicit),
-
- TP_ARGS(q, depth, explicit),
-
- TP_STRUCT__entry(
- __field( int, nr_rq )
- __array( char, comm, TASK_COMM_LEN )
- ),
-
- TP_fast_assign(
- __entry->nr_rq = depth;
- memcpy(__entry->comm, current->comm, TASK_COMM_LEN);
- ),
-
- TP_printk("[%s] %d", __entry->comm, __entry->nr_rq)
-);
-
-/**
- * block_unplug - release of operations requests in request queue
- * @q: request queue to unplug
- * @depth: number of requests just added to the queue
- * @explicit: whether this was an explicit unplug, or one from schedule()
- *
- * Unplug request queue @q because device driver is scheduled to work
- * on elements in the request queue.
- */
-DEFINE_EVENT(block_unplug, block_unplug,
-
- TP_PROTO(struct request_queue *q, unsigned int depth, bool explicit),
-
- TP_ARGS(q, depth, explicit)
-);
-
-/**
- * block_split - split a single bio struct into two bio structs
- * @q: queue containing the bio
- * @bio: block operation being split
- * @new_sector: The starting sector for the new bio
- *
- * The bio request @bio in request queue @q needs to be split into two
- * bio requests. The newly created @bio request starts at
- * @new_sector. This split may be required due to hardware limitation
- * such as operation crossing device boundaries in a RAID system.
- */
-TRACE_EVENT(block_split,
-
- TP_PROTO(struct request_queue *q, struct bio *bio,
- unsigned int new_sector),
-
- TP_ARGS(q, bio, new_sector),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( sector_t, sector )
- __field( sector_t, new_sector )
- __array( char, rwbs, RWBS_LEN )
- __array( char, comm, TASK_COMM_LEN )
- ),
-
- TP_fast_assign(
- __entry->dev = bio->bi_bdev->bd_dev;
- __entry->sector = bio->bi_sector;
- __entry->new_sector = new_sector;
- blk_fill_rwbs(__entry->rwbs, bio->bi_rw, bio->bi_size);
- memcpy(__entry->comm, current->comm, TASK_COMM_LEN);
- ),
-
- TP_printk("%d,%d %s %llu / %llu [%s]",
- MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs,
- (unsigned long long)__entry->sector,
- (unsigned long long)__entry->new_sector,
- __entry->comm)
-);
-
-/**
- * block_bio_remap - map request for a logical device to the raw device
- * @q: queue holding the operation
- * @bio: revised operation
- * @dev: device for the operation
- * @from: original sector for the operation
- *
- * An operation for a logical device has been mapped to the
- * raw block device.
- */
-TRACE_EVENT(block_bio_remap,
-
- TP_PROTO(struct request_queue *q, struct bio *bio, dev_t dev,
- sector_t from),
-
- TP_ARGS(q, bio, dev, from),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( sector_t, sector )
- __field( unsigned int, nr_sector )
- __field( dev_t, old_dev )
- __field( sector_t, old_sector )
- __array( char, rwbs, RWBS_LEN)
- ),
-
- TP_fast_assign(
- __entry->dev = bio->bi_bdev->bd_dev;
- __entry->sector = bio->bi_sector;
- __entry->nr_sector = bio->bi_size >> 9;
- __entry->old_dev = dev;
- __entry->old_sector = from;
- blk_fill_rwbs(__entry->rwbs, bio->bi_rw, bio->bi_size);
- ),
-
- TP_printk("%d,%d %s %llu + %u <- (%d,%d) %llu",
- MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs,
- (unsigned long long)__entry->sector,
- __entry->nr_sector,
- MAJOR(__entry->old_dev), MINOR(__entry->old_dev),
- (unsigned long long)__entry->old_sector)
-);
-
-/**
- * block_rq_remap - map request for a block operation request
- * @q: queue holding the operation
- * @rq: block IO operation request
- * @dev: device for the operation
- * @from: original sector for the operation
- *
- * The block operation request @rq in @q has been remapped. The block
- * operation request @rq holds the current information and @from hold
- * the original sector.
- */
-TRACE_EVENT(block_rq_remap,
-
- TP_PROTO(struct request_queue *q, struct request *rq, dev_t dev,
- sector_t from),
-
- TP_ARGS(q, rq, dev, from),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( sector_t, sector )
- __field( unsigned int, nr_sector )
- __field( dev_t, old_dev )
- __field( sector_t, old_sector )
- __array( char, rwbs, RWBS_LEN)
- ),
-
- TP_fast_assign(
- __entry->dev = disk_devt(rq->rq_disk);
- __entry->sector = blk_rq_pos(rq);
- __entry->nr_sector = blk_rq_sectors(rq);
- __entry->old_dev = dev;
- __entry->old_sector = from;
- blk_fill_rwbs(__entry->rwbs, rq->cmd_flags, blk_rq_bytes(rq));
- ),
-
- TP_printk("%d,%d %s %llu + %u <- (%d,%d) %llu",
- MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs,
- (unsigned long long)__entry->sector,
- __entry->nr_sector,
- MAJOR(__entry->old_dev), MINOR(__entry->old_dev),
- (unsigned long long)__entry->old_sector)
-);
-
-#endif /* _TRACE_BLOCK_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
-
diff --git a/ANDROID_3.4.5/include/trace/events/btrfs.h b/ANDROID_3.4.5/include/trace/events/btrfs.h
deleted file mode 100644
index 91b91e80..00000000
--- a/ANDROID_3.4.5/include/trace/events/btrfs.h
+++ /dev/null
@@ -1,912 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM btrfs
-
-#if !defined(_TRACE_BTRFS_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_BTRFS_H
-
-#include <linux/writeback.h>
-#include <linux/tracepoint.h>
-#include <trace/events/gfpflags.h>
-
-struct btrfs_root;
-struct btrfs_fs_info;
-struct btrfs_inode;
-struct extent_map;
-struct btrfs_ordered_extent;
-struct btrfs_delayed_ref_node;
-struct btrfs_delayed_tree_ref;
-struct btrfs_delayed_data_ref;
-struct btrfs_delayed_ref_head;
-struct btrfs_block_group_cache;
-struct btrfs_free_cluster;
-struct map_lookup;
-struct extent_buffer;
-
-#define show_ref_type(type) \
- __print_symbolic(type, \
- { BTRFS_TREE_BLOCK_REF_KEY, "TREE_BLOCK_REF" }, \
- { BTRFS_EXTENT_DATA_REF_KEY, "EXTENT_DATA_REF" }, \
- { BTRFS_EXTENT_REF_V0_KEY, "EXTENT_REF_V0" }, \
- { BTRFS_SHARED_BLOCK_REF_KEY, "SHARED_BLOCK_REF" }, \
- { BTRFS_SHARED_DATA_REF_KEY, "SHARED_DATA_REF" })
-
-#define __show_root_type(obj) \
- __print_symbolic_u64(obj, \
- { BTRFS_ROOT_TREE_OBJECTID, "ROOT_TREE" }, \
- { BTRFS_EXTENT_TREE_OBJECTID, "EXTENT_TREE" }, \
- { BTRFS_CHUNK_TREE_OBJECTID, "CHUNK_TREE" }, \
- { BTRFS_DEV_TREE_OBJECTID, "DEV_TREE" }, \
- { BTRFS_FS_TREE_OBJECTID, "FS_TREE" }, \
- { BTRFS_ROOT_TREE_DIR_OBJECTID, "ROOT_TREE_DIR" }, \
- { BTRFS_CSUM_TREE_OBJECTID, "CSUM_TREE" }, \
- { BTRFS_TREE_LOG_OBJECTID, "TREE_LOG" }, \
- { BTRFS_TREE_RELOC_OBJECTID, "TREE_RELOC" }, \
- { BTRFS_DATA_RELOC_TREE_OBJECTID, "DATA_RELOC_TREE" })
-
-#define show_root_type(obj) \
- obj, ((obj >= BTRFS_DATA_RELOC_TREE_OBJECTID) || \
- (obj <= BTRFS_CSUM_TREE_OBJECTID )) ? __show_root_type(obj) : "-"
-
-#define BTRFS_GROUP_FLAGS \
- { BTRFS_BLOCK_GROUP_DATA, "DATA"}, \
- { BTRFS_BLOCK_GROUP_SYSTEM, "SYSTEM"}, \
- { BTRFS_BLOCK_GROUP_METADATA, "METADATA"}, \
- { BTRFS_BLOCK_GROUP_RAID0, "RAID0"}, \
- { BTRFS_BLOCK_GROUP_RAID1, "RAID1"}, \
- { BTRFS_BLOCK_GROUP_DUP, "DUP"}, \
- { BTRFS_BLOCK_GROUP_RAID10, "RAID10"}
-
-#define BTRFS_UUID_SIZE 16
-
-TRACE_EVENT(btrfs_transaction_commit,
-
- TP_PROTO(struct btrfs_root *root),
-
- TP_ARGS(root),
-
- TP_STRUCT__entry(
- __field( u64, generation )
- __field( u64, root_objectid )
- ),
-
- TP_fast_assign(
- __entry->generation = root->fs_info->generation;
- __entry->root_objectid = root->root_key.objectid;
- ),
-
- TP_printk("root = %llu(%s), gen = %llu",
- show_root_type(__entry->root_objectid),
- (unsigned long long)__entry->generation)
-);
-
-DECLARE_EVENT_CLASS(btrfs__inode,
-
- TP_PROTO(struct inode *inode),
-
- TP_ARGS(inode),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( blkcnt_t, blocks )
- __field( u64, disk_i_size )
- __field( u64, generation )
- __field( u64, last_trans )
- __field( u64, logged_trans )
- __field( u64, root_objectid )
- ),
-
- TP_fast_assign(
- __entry->ino = inode->i_ino;
- __entry->blocks = inode->i_blocks;
- __entry->disk_i_size = BTRFS_I(inode)->disk_i_size;
- __entry->generation = BTRFS_I(inode)->generation;
- __entry->last_trans = BTRFS_I(inode)->last_trans;
- __entry->logged_trans = BTRFS_I(inode)->logged_trans;
- __entry->root_objectid =
- BTRFS_I(inode)->root->root_key.objectid;
- ),
-
- TP_printk("root = %llu(%s), gen = %llu, ino = %lu, blocks = %llu, "
- "disk_i_size = %llu, last_trans = %llu, logged_trans = %llu",
- show_root_type(__entry->root_objectid),
- (unsigned long long)__entry->generation,
- (unsigned long)__entry->ino,
- (unsigned long long)__entry->blocks,
- (unsigned long long)__entry->disk_i_size,
- (unsigned long long)__entry->last_trans,
- (unsigned long long)__entry->logged_trans)
-);
-
-DEFINE_EVENT(btrfs__inode, btrfs_inode_new,
-
- TP_PROTO(struct inode *inode),
-
- TP_ARGS(inode)
-);
-
-DEFINE_EVENT(btrfs__inode, btrfs_inode_request,
-
- TP_PROTO(struct inode *inode),
-
- TP_ARGS(inode)
-);
-
-DEFINE_EVENT(btrfs__inode, btrfs_inode_evict,
-
- TP_PROTO(struct inode *inode),
-
- TP_ARGS(inode)
-);
-
-#define __show_map_type(type) \
- __print_symbolic_u64(type, \
- { EXTENT_MAP_LAST_BYTE, "LAST_BYTE" }, \
- { EXTENT_MAP_HOLE, "HOLE" }, \
- { EXTENT_MAP_INLINE, "INLINE" }, \
- { EXTENT_MAP_DELALLOC, "DELALLOC" })
-
-#define show_map_type(type) \
- type, (type >= EXTENT_MAP_LAST_BYTE) ? "-" : __show_map_type(type)
-
-#define show_map_flags(flag) \
- __print_flags(flag, "|", \
- { EXTENT_FLAG_PINNED, "PINNED" }, \
- { EXTENT_FLAG_COMPRESSED, "COMPRESSED" }, \
- { EXTENT_FLAG_VACANCY, "VACANCY" }, \
- { EXTENT_FLAG_PREALLOC, "PREALLOC" })
-
-TRACE_EVENT(btrfs_get_extent,
-
- TP_PROTO(struct btrfs_root *root, struct extent_map *map),
-
- TP_ARGS(root, map),
-
- TP_STRUCT__entry(
- __field( u64, root_objectid )
- __field( u64, start )
- __field( u64, len )
- __field( u64, orig_start )
- __field( u64, block_start )
- __field( u64, block_len )
- __field( unsigned long, flags )
- __field( int, refs )
- __field( unsigned int, compress_type )
- ),
-
- TP_fast_assign(
- __entry->root_objectid = root->root_key.objectid;
- __entry->start = map->start;
- __entry->len = map->len;
- __entry->orig_start = map->orig_start;
- __entry->block_start = map->block_start;
- __entry->block_len = map->block_len;
- __entry->flags = map->flags;
- __entry->refs = atomic_read(&map->refs);
- __entry->compress_type = map->compress_type;
- ),
-
- TP_printk("root = %llu(%s), start = %llu, len = %llu, "
- "orig_start = %llu, block_start = %llu(%s), "
- "block_len = %llu, flags = %s, refs = %u, "
- "compress_type = %u",
- show_root_type(__entry->root_objectid),
- (unsigned long long)__entry->start,
- (unsigned long long)__entry->len,
- (unsigned long long)__entry->orig_start,
- show_map_type(__entry->block_start),
- (unsigned long long)__entry->block_len,
- show_map_flags(__entry->flags),
- __entry->refs, __entry->compress_type)
-);
-
-#define show_ordered_flags(flags) \
- __print_symbolic(flags, \
- { BTRFS_ORDERED_IO_DONE, "IO_DONE" }, \
- { BTRFS_ORDERED_COMPLETE, "COMPLETE" }, \
- { BTRFS_ORDERED_NOCOW, "NOCOW" }, \
- { BTRFS_ORDERED_COMPRESSED, "COMPRESSED" }, \
- { BTRFS_ORDERED_PREALLOC, "PREALLOC" }, \
- { BTRFS_ORDERED_DIRECT, "DIRECT" })
-
-DECLARE_EVENT_CLASS(btrfs__ordered_extent,
-
- TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered),
-
- TP_ARGS(inode, ordered),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( u64, file_offset )
- __field( u64, start )
- __field( u64, len )
- __field( u64, disk_len )
- __field( u64, bytes_left )
- __field( unsigned long, flags )
- __field( int, compress_type )
- __field( int, refs )
- __field( u64, root_objectid )
- ),
-
- TP_fast_assign(
- __entry->ino = inode->i_ino;
- __entry->file_offset = ordered->file_offset;
- __entry->start = ordered->start;
- __entry->len = ordered->len;
- __entry->disk_len = ordered->disk_len;
- __entry->bytes_left = ordered->bytes_left;
- __entry->flags = ordered->flags;
- __entry->compress_type = ordered->compress_type;
- __entry->refs = atomic_read(&ordered->refs);
- __entry->root_objectid =
- BTRFS_I(inode)->root->root_key.objectid;
- ),
-
- TP_printk("root = %llu(%s), ino = %llu, file_offset = %llu, "
- "start = %llu, len = %llu, disk_len = %llu, "
- "bytes_left = %llu, flags = %s, compress_type = %d, "
- "refs = %d",
- show_root_type(__entry->root_objectid),
- (unsigned long long)__entry->ino,
- (unsigned long long)__entry->file_offset,
- (unsigned long long)__entry->start,
- (unsigned long long)__entry->len,
- (unsigned long long)__entry->disk_len,
- (unsigned long long)__entry->bytes_left,
- show_ordered_flags(__entry->flags),
- __entry->compress_type, __entry->refs)
-);
-
-DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_add,
-
- TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered),
-
- TP_ARGS(inode, ordered)
-);
-
-DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_remove,
-
- TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered),
-
- TP_ARGS(inode, ordered)
-);
-
-DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_start,
-
- TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered),
-
- TP_ARGS(inode, ordered)
-);
-
-DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_put,
-
- TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered),
-
- TP_ARGS(inode, ordered)
-);
-
-DECLARE_EVENT_CLASS(btrfs__writepage,
-
- TP_PROTO(struct page *page, struct inode *inode,
- struct writeback_control *wbc),
-
- TP_ARGS(page, inode, wbc),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( pgoff_t, index )
- __field( long, nr_to_write )
- __field( long, pages_skipped )
- __field( loff_t, range_start )
- __field( loff_t, range_end )
- __field( char, for_kupdate )
- __field( char, for_reclaim )
- __field( char, range_cyclic )
- __field( pgoff_t, writeback_index )
- __field( u64, root_objectid )
- ),
-
- TP_fast_assign(
- __entry->ino = inode->i_ino;
- __entry->index = page->index;
- __entry->nr_to_write = wbc->nr_to_write;
- __entry->pages_skipped = wbc->pages_skipped;
- __entry->range_start = wbc->range_start;
- __entry->range_end = wbc->range_end;
- __entry->for_kupdate = wbc->for_kupdate;
- __entry->for_reclaim = wbc->for_reclaim;
- __entry->range_cyclic = wbc->range_cyclic;
- __entry->writeback_index = inode->i_mapping->writeback_index;
- __entry->root_objectid =
- BTRFS_I(inode)->root->root_key.objectid;
- ),
-
- TP_printk("root = %llu(%s), ino = %lu, page_index = %lu, "
- "nr_to_write = %ld, pages_skipped = %ld, range_start = %llu, "
- "range_end = %llu, for_kupdate = %d, "
- "for_reclaim = %d, range_cyclic = %d, writeback_index = %lu",
- show_root_type(__entry->root_objectid),
- (unsigned long)__entry->ino, __entry->index,
- __entry->nr_to_write, __entry->pages_skipped,
- __entry->range_start, __entry->range_end,
- __entry->for_kupdate,
- __entry->for_reclaim, __entry->range_cyclic,
- (unsigned long)__entry->writeback_index)
-);
-
-DEFINE_EVENT(btrfs__writepage, __extent_writepage,
-
- TP_PROTO(struct page *page, struct inode *inode,
- struct writeback_control *wbc),
-
- TP_ARGS(page, inode, wbc)
-);
-
-TRACE_EVENT(btrfs_writepage_end_io_hook,
-
- TP_PROTO(struct page *page, u64 start, u64 end, int uptodate),
-
- TP_ARGS(page, start, end, uptodate),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( pgoff_t, index )
- __field( u64, start )
- __field( u64, end )
- __field( int, uptodate )
- __field( u64, root_objectid )
- ),
-
- TP_fast_assign(
- __entry->ino = page->mapping->host->i_ino;
- __entry->index = page->index;
- __entry->start = start;
- __entry->end = end;
- __entry->uptodate = uptodate;
- __entry->root_objectid =
- BTRFS_I(page->mapping->host)->root->root_key.objectid;
- ),
-
- TP_printk("root = %llu(%s), ino = %lu, page_index = %lu, start = %llu, "
- "end = %llu, uptodate = %d",
- show_root_type(__entry->root_objectid),
- (unsigned long)__entry->ino, (unsigned long)__entry->index,
- (unsigned long long)__entry->start,
- (unsigned long long)__entry->end, __entry->uptodate)
-);
-
-TRACE_EVENT(btrfs_sync_file,
-
- TP_PROTO(struct file *file, int datasync),
-
- TP_ARGS(file, datasync),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( ino_t, parent )
- __field( int, datasync )
- __field( u64, root_objectid )
- ),
-
- TP_fast_assign(
- struct dentry *dentry = file->f_path.dentry;
- struct inode *inode = dentry->d_inode;
-
- __entry->ino = inode->i_ino;
- __entry->parent = dentry->d_parent->d_inode->i_ino;
- __entry->datasync = datasync;
- __entry->root_objectid =
- BTRFS_I(inode)->root->root_key.objectid;
- ),
-
- TP_printk("root = %llu(%s), ino = %ld, parent = %ld, datasync = %d",
- show_root_type(__entry->root_objectid),
- (unsigned long)__entry->ino, (unsigned long)__entry->parent,
- __entry->datasync)
-);
-
-TRACE_EVENT(btrfs_sync_fs,
-
- TP_PROTO(int wait),
-
- TP_ARGS(wait),
-
- TP_STRUCT__entry(
- __field( int, wait )
- ),
-
- TP_fast_assign(
- __entry->wait = wait;
- ),
-
- TP_printk("wait = %d", __entry->wait)
-);
-
-#define show_ref_action(action) \
- __print_symbolic(action, \
- { BTRFS_ADD_DELAYED_REF, "ADD_DELAYED_REF" }, \
- { BTRFS_DROP_DELAYED_REF, "DROP_DELAYED_REF" }, \
- { BTRFS_ADD_DELAYED_EXTENT, "ADD_DELAYED_EXTENT" }, \
- { BTRFS_UPDATE_DELAYED_HEAD, "UPDATE_DELAYED_HEAD" })
-
-
-TRACE_EVENT(btrfs_delayed_tree_ref,
-
- TP_PROTO(struct btrfs_delayed_ref_node *ref,
- struct btrfs_delayed_tree_ref *full_ref,
- int action),
-
- TP_ARGS(ref, full_ref, action),
-
- TP_STRUCT__entry(
- __field( u64, bytenr )
- __field( u64, num_bytes )
- __field( int, action )
- __field( u64, parent )
- __field( u64, ref_root )
- __field( int, level )
- __field( int, type )
- ),
-
- TP_fast_assign(
- __entry->bytenr = ref->bytenr;
- __entry->num_bytes = ref->num_bytes;
- __entry->action = action;
- __entry->parent = full_ref->parent;
- __entry->ref_root = full_ref->root;
- __entry->level = full_ref->level;
- __entry->type = ref->type;
- ),
-
- TP_printk("bytenr = %llu, num_bytes = %llu, action = %s, "
- "parent = %llu(%s), ref_root = %llu(%s), level = %d, "
- "type = %s",
- (unsigned long long)__entry->bytenr,
- (unsigned long long)__entry->num_bytes,
- show_ref_action(__entry->action),
- show_root_type(__entry->parent),
- show_root_type(__entry->ref_root),
- __entry->level, show_ref_type(__entry->type))
-);
-
-TRACE_EVENT(btrfs_delayed_data_ref,
-
- TP_PROTO(struct btrfs_delayed_ref_node *ref,
- struct btrfs_delayed_data_ref *full_ref,
- int action),
-
- TP_ARGS(ref, full_ref, action),
-
- TP_STRUCT__entry(
- __field( u64, bytenr )
- __field( u64, num_bytes )
- __field( int, action )
- __field( u64, parent )
- __field( u64, ref_root )
- __field( u64, owner )
- __field( u64, offset )
- __field( int, type )
- ),
-
- TP_fast_assign(
- __entry->bytenr = ref->bytenr;
- __entry->num_bytes = ref->num_bytes;
- __entry->action = action;
- __entry->parent = full_ref->parent;
- __entry->ref_root = full_ref->root;
- __entry->owner = full_ref->objectid;
- __entry->offset = full_ref->offset;
- __entry->type = ref->type;
- ),
-
- TP_printk("bytenr = %llu, num_bytes = %llu, action = %s, "
- "parent = %llu(%s), ref_root = %llu(%s), owner = %llu, "
- "offset = %llu, type = %s",
- (unsigned long long)__entry->bytenr,
- (unsigned long long)__entry->num_bytes,
- show_ref_action(__entry->action),
- show_root_type(__entry->parent),
- show_root_type(__entry->ref_root),
- (unsigned long long)__entry->owner,
- (unsigned long long)__entry->offset,
- show_ref_type(__entry->type))
-);
-
-TRACE_EVENT(btrfs_delayed_ref_head,
-
- TP_PROTO(struct btrfs_delayed_ref_node *ref,
- struct btrfs_delayed_ref_head *head_ref,
- int action),
-
- TP_ARGS(ref, head_ref, action),
-
- TP_STRUCT__entry(
- __field( u64, bytenr )
- __field( u64, num_bytes )
- __field( int, action )
- __field( int, is_data )
- ),
-
- TP_fast_assign(
- __entry->bytenr = ref->bytenr;
- __entry->num_bytes = ref->num_bytes;
- __entry->action = action;
- __entry->is_data = head_ref->is_data;
- ),
-
- TP_printk("bytenr = %llu, num_bytes = %llu, action = %s, is_data = %d",
- (unsigned long long)__entry->bytenr,
- (unsigned long long)__entry->num_bytes,
- show_ref_action(__entry->action),
- __entry->is_data)
-);
-
-#define show_chunk_type(type) \
- __print_flags(type, "|", \
- { BTRFS_BLOCK_GROUP_DATA, "DATA" }, \
- { BTRFS_BLOCK_GROUP_SYSTEM, "SYSTEM"}, \
- { BTRFS_BLOCK_GROUP_METADATA, "METADATA"}, \
- { BTRFS_BLOCK_GROUP_RAID0, "RAID0" }, \
- { BTRFS_BLOCK_GROUP_RAID1, "RAID1" }, \
- { BTRFS_BLOCK_GROUP_DUP, "DUP" }, \
- { BTRFS_BLOCK_GROUP_RAID10, "RAID10"})
-
-DECLARE_EVENT_CLASS(btrfs__chunk,
-
- TP_PROTO(struct btrfs_root *root, struct map_lookup *map,
- u64 offset, u64 size),
-
- TP_ARGS(root, map, offset, size),
-
- TP_STRUCT__entry(
- __field( int, num_stripes )
- __field( u64, type )
- __field( int, sub_stripes )
- __field( u64, offset )
- __field( u64, size )
- __field( u64, root_objectid )
- ),
-
- TP_fast_assign(
- __entry->num_stripes = map->num_stripes;
- __entry->type = map->type;
- __entry->sub_stripes = map->sub_stripes;
- __entry->offset = offset;
- __entry->size = size;
- __entry->root_objectid = root->root_key.objectid;
- ),
-
- TP_printk("root = %llu(%s), offset = %llu, size = %llu, "
- "num_stripes = %d, sub_stripes = %d, type = %s",
- show_root_type(__entry->root_objectid),
- (unsigned long long)__entry->offset,
- (unsigned long long)__entry->size,
- __entry->num_stripes, __entry->sub_stripes,
- show_chunk_type(__entry->type))
-);
-
-DEFINE_EVENT(btrfs__chunk, btrfs_chunk_alloc,
-
- TP_PROTO(struct btrfs_root *root, struct map_lookup *map,
- u64 offset, u64 size),
-
- TP_ARGS(root, map, offset, size)
-);
-
-DEFINE_EVENT(btrfs__chunk, btrfs_chunk_free,
-
- TP_PROTO(struct btrfs_root *root, struct map_lookup *map,
- u64 offset, u64 size),
-
- TP_ARGS(root, map, offset, size)
-);
-
-TRACE_EVENT(btrfs_cow_block,
-
- TP_PROTO(struct btrfs_root *root, struct extent_buffer *buf,
- struct extent_buffer *cow),
-
- TP_ARGS(root, buf, cow),
-
- TP_STRUCT__entry(
- __field( u64, root_objectid )
- __field( u64, buf_start )
- __field( int, refs )
- __field( u64, cow_start )
- __field( int, buf_level )
- __field( int, cow_level )
- ),
-
- TP_fast_assign(
- __entry->root_objectid = root->root_key.objectid;
- __entry->buf_start = buf->start;
- __entry->refs = atomic_read(&buf->refs);
- __entry->cow_start = cow->start;
- __entry->buf_level = btrfs_header_level(buf);
- __entry->cow_level = btrfs_header_level(cow);
- ),
-
- TP_printk("root = %llu(%s), refs = %d, orig_buf = %llu "
- "(orig_level = %d), cow_buf = %llu (cow_level = %d)",
- show_root_type(__entry->root_objectid),
- __entry->refs,
- (unsigned long long)__entry->buf_start,
- __entry->buf_level,
- (unsigned long long)__entry->cow_start,
- __entry->cow_level)
-);
-
-TRACE_EVENT(btrfs_space_reservation,
-
- TP_PROTO(struct btrfs_fs_info *fs_info, char *type, u64 val,
- u64 bytes, int reserve),
-
- TP_ARGS(fs_info, type, val, bytes, reserve),
-
- TP_STRUCT__entry(
- __array( u8, fsid, BTRFS_UUID_SIZE )
- __string( type, type )
- __field( u64, val )
- __field( u64, bytes )
- __field( int, reserve )
- ),
-
- TP_fast_assign(
- memcpy(__entry->fsid, fs_info->fsid, BTRFS_UUID_SIZE);
- __assign_str(type, type);
- __entry->val = val;
- __entry->bytes = bytes;
- __entry->reserve = reserve;
- ),
-
- TP_printk("%pU: %s: %Lu %s %Lu", __entry->fsid, __get_str(type),
- __entry->val, __entry->reserve ? "reserve" : "release",
- __entry->bytes)
-);
-
-DECLARE_EVENT_CLASS(btrfs__reserved_extent,
-
- TP_PROTO(struct btrfs_root *root, u64 start, u64 len),
-
- TP_ARGS(root, start, len),
-
- TP_STRUCT__entry(
- __field( u64, root_objectid )
- __field( u64, start )
- __field( u64, len )
- ),
-
- TP_fast_assign(
- __entry->root_objectid = root->root_key.objectid;
- __entry->start = start;
- __entry->len = len;
- ),
-
- TP_printk("root = %llu(%s), start = %llu, len = %llu",
- show_root_type(__entry->root_objectid),
- (unsigned long long)__entry->start,
- (unsigned long long)__entry->len)
-);
-
-DEFINE_EVENT(btrfs__reserved_extent, btrfs_reserved_extent_alloc,
-
- TP_PROTO(struct btrfs_root *root, u64 start, u64 len),
-
- TP_ARGS(root, start, len)
-);
-
-DEFINE_EVENT(btrfs__reserved_extent, btrfs_reserved_extent_free,
-
- TP_PROTO(struct btrfs_root *root, u64 start, u64 len),
-
- TP_ARGS(root, start, len)
-);
-
-TRACE_EVENT(find_free_extent,
-
- TP_PROTO(struct btrfs_root *root, u64 num_bytes, u64 empty_size,
- u64 data),
-
- TP_ARGS(root, num_bytes, empty_size, data),
-
- TP_STRUCT__entry(
- __field( u64, root_objectid )
- __field( u64, num_bytes )
- __field( u64, empty_size )
- __field( u64, data )
- ),
-
- TP_fast_assign(
- __entry->root_objectid = root->root_key.objectid;
- __entry->num_bytes = num_bytes;
- __entry->empty_size = empty_size;
- __entry->data = data;
- ),
-
- TP_printk("root = %Lu(%s), len = %Lu, empty_size = %Lu, "
- "flags = %Lu(%s)", show_root_type(__entry->root_objectid),
- __entry->num_bytes, __entry->empty_size, __entry->data,
- __print_flags((unsigned long)__entry->data, "|",
- BTRFS_GROUP_FLAGS))
-);
-
-DECLARE_EVENT_CLASS(btrfs__reserve_extent,
-
- TP_PROTO(struct btrfs_root *root,
- struct btrfs_block_group_cache *block_group, u64 start,
- u64 len),
-
- TP_ARGS(root, block_group, start, len),
-
- TP_STRUCT__entry(
- __field( u64, root_objectid )
- __field( u64, bg_objectid )
- __field( u64, flags )
- __field( u64, start )
- __field( u64, len )
- ),
-
- TP_fast_assign(
- __entry->root_objectid = root->root_key.objectid;
- __entry->bg_objectid = block_group->key.objectid;
- __entry->flags = block_group->flags;
- __entry->start = start;
- __entry->len = len;
- ),
-
- TP_printk("root = %Lu(%s), block_group = %Lu, flags = %Lu(%s), "
- "start = %Lu, len = %Lu",
- show_root_type(__entry->root_objectid), __entry->bg_objectid,
- __entry->flags, __print_flags((unsigned long)__entry->flags,
- "|", BTRFS_GROUP_FLAGS),
- __entry->start, __entry->len)
-);
-
-DEFINE_EVENT(btrfs__reserve_extent, btrfs_reserve_extent,
-
- TP_PROTO(struct btrfs_root *root,
- struct btrfs_block_group_cache *block_group, u64 start,
- u64 len),
-
- TP_ARGS(root, block_group, start, len)
-);
-
-DEFINE_EVENT(btrfs__reserve_extent, btrfs_reserve_extent_cluster,
-
- TP_PROTO(struct btrfs_root *root,
- struct btrfs_block_group_cache *block_group, u64 start,
- u64 len),
-
- TP_ARGS(root, block_group, start, len)
-);
-
-TRACE_EVENT(btrfs_find_cluster,
-
- TP_PROTO(struct btrfs_block_group_cache *block_group, u64 start,
- u64 bytes, u64 empty_size, u64 min_bytes),
-
- TP_ARGS(block_group, start, bytes, empty_size, min_bytes),
-
- TP_STRUCT__entry(
- __field( u64, bg_objectid )
- __field( u64, flags )
- __field( u64, start )
- __field( u64, bytes )
- __field( u64, empty_size )
- __field( u64, min_bytes )
- ),
-
- TP_fast_assign(
- __entry->bg_objectid = block_group->key.objectid;
- __entry->flags = block_group->flags;
- __entry->start = start;
- __entry->bytes = bytes;
- __entry->empty_size = empty_size;
- __entry->min_bytes = min_bytes;
- ),
-
- TP_printk("block_group = %Lu, flags = %Lu(%s), start = %Lu, len = %Lu,"
- " empty_size = %Lu, min_bytes = %Lu", __entry->bg_objectid,
- __entry->flags,
- __print_flags((unsigned long)__entry->flags, "|",
- BTRFS_GROUP_FLAGS), __entry->start,
- __entry->bytes, __entry->empty_size, __entry->min_bytes)
-);
-
-TRACE_EVENT(btrfs_failed_cluster_setup,
-
- TP_PROTO(struct btrfs_block_group_cache *block_group),
-
- TP_ARGS(block_group),
-
- TP_STRUCT__entry(
- __field( u64, bg_objectid )
- ),
-
- TP_fast_assign(
- __entry->bg_objectid = block_group->key.objectid;
- ),
-
- TP_printk("block_group = %Lu", __entry->bg_objectid)
-);
-
-TRACE_EVENT(btrfs_setup_cluster,
-
- TP_PROTO(struct btrfs_block_group_cache *block_group,
- struct btrfs_free_cluster *cluster, u64 size, int bitmap),
-
- TP_ARGS(block_group, cluster, size, bitmap),
-
- TP_STRUCT__entry(
- __field( u64, bg_objectid )
- __field( u64, flags )
- __field( u64, start )
- __field( u64, max_size )
- __field( u64, size )
- __field( int, bitmap )
- ),
-
- TP_fast_assign(
- __entry->bg_objectid = block_group->key.objectid;
- __entry->flags = block_group->flags;
- __entry->start = cluster->window_start;
- __entry->max_size = cluster->max_size;
- __entry->size = size;
- __entry->bitmap = bitmap;
- ),
-
- TP_printk("block_group = %Lu, flags = %Lu(%s), window_start = %Lu, "
- "size = %Lu, max_size = %Lu, bitmap = %d",
- __entry->bg_objectid,
- __entry->flags,
- __print_flags((unsigned long)__entry->flags, "|",
- BTRFS_GROUP_FLAGS), __entry->start,
- __entry->size, __entry->max_size, __entry->bitmap)
-);
-
-struct extent_state;
-TRACE_EVENT(alloc_extent_state,
-
- TP_PROTO(struct extent_state *state, gfp_t mask, unsigned long IP),
-
- TP_ARGS(state, mask, IP),
-
- TP_STRUCT__entry(
- __field(struct extent_state *, state)
- __field(gfp_t, mask)
- __field(unsigned long, ip)
- ),
-
- TP_fast_assign(
- __entry->state = state,
- __entry->mask = mask,
- __entry->ip = IP
- ),
-
- TP_printk("state=%p; mask = %s; caller = %pF", __entry->state,
- show_gfp_flags(__entry->mask), (void *)__entry->ip)
-);
-
-TRACE_EVENT(free_extent_state,
-
- TP_PROTO(struct extent_state *state, unsigned long IP),
-
- TP_ARGS(state, IP),
-
- TP_STRUCT__entry(
- __field(struct extent_state *, state)
- __field(unsigned long, ip)
- ),
-
- TP_fast_assign(
- __entry->state = state,
- __entry->ip = IP
- ),
-
- TP_printk(" state=%p; caller = %pF", __entry->state,
- (void *)__entry->ip)
-);
-
-#endif /* _TRACE_BTRFS_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/compaction.h b/ANDROID_3.4.5/include/trace/events/compaction.h
deleted file mode 100644
index 388bcdd2..00000000
--- a/ANDROID_3.4.5/include/trace/events/compaction.h
+++ /dev/null
@@ -1,74 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM compaction
-
-#if !defined(_TRACE_COMPACTION_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_COMPACTION_H
-
-#include <linux/types.h>
-#include <linux/tracepoint.h>
-#include "gfpflags.h"
-
-DECLARE_EVENT_CLASS(mm_compaction_isolate_template,
-
- TP_PROTO(unsigned long nr_scanned,
- unsigned long nr_taken),
-
- TP_ARGS(nr_scanned, nr_taken),
-
- TP_STRUCT__entry(
- __field(unsigned long, nr_scanned)
- __field(unsigned long, nr_taken)
- ),
-
- TP_fast_assign(
- __entry->nr_scanned = nr_scanned;
- __entry->nr_taken = nr_taken;
- ),
-
- TP_printk("nr_scanned=%lu nr_taken=%lu",
- __entry->nr_scanned,
- __entry->nr_taken)
-);
-
-DEFINE_EVENT(mm_compaction_isolate_template, mm_compaction_isolate_migratepages,
-
- TP_PROTO(unsigned long nr_scanned,
- unsigned long nr_taken),
-
- TP_ARGS(nr_scanned, nr_taken)
-);
-
-DEFINE_EVENT(mm_compaction_isolate_template, mm_compaction_isolate_freepages,
- TP_PROTO(unsigned long nr_scanned,
- unsigned long nr_taken),
-
- TP_ARGS(nr_scanned, nr_taken)
-);
-
-TRACE_EVENT(mm_compaction_migratepages,
-
- TP_PROTO(unsigned long nr_migrated,
- unsigned long nr_failed),
-
- TP_ARGS(nr_migrated, nr_failed),
-
- TP_STRUCT__entry(
- __field(unsigned long, nr_migrated)
- __field(unsigned long, nr_failed)
- ),
-
- TP_fast_assign(
- __entry->nr_migrated = nr_migrated;
- __entry->nr_failed = nr_failed;
- ),
-
- TP_printk("nr_migrated=%lu nr_failed=%lu",
- __entry->nr_migrated,
- __entry->nr_failed)
-);
-
-
-#endif /* _TRACE_COMPACTION_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/cpufreq_interactive.h b/ANDROID_3.4.5/include/trace/events/cpufreq_interactive.h
deleted file mode 100644
index 951e6ca1..00000000
--- a/ANDROID_3.4.5/include/trace/events/cpufreq_interactive.h
+++ /dev/null
@@ -1,112 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM cpufreq_interactive
-
-#if !defined(_TRACE_CPUFREQ_INTERACTIVE_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_CPUFREQ_INTERACTIVE_H
-
-#include <linux/tracepoint.h>
-
-DECLARE_EVENT_CLASS(set,
- TP_PROTO(u32 cpu_id, unsigned long targfreq,
- unsigned long actualfreq),
- TP_ARGS(cpu_id, targfreq, actualfreq),
-
- TP_STRUCT__entry(
- __field( u32, cpu_id )
- __field(unsigned long, targfreq )
- __field(unsigned long, actualfreq )
- ),
-
- TP_fast_assign(
- __entry->cpu_id = (u32) cpu_id;
- __entry->targfreq = targfreq;
- __entry->actualfreq = actualfreq;
- ),
-
- TP_printk("cpu=%u targ=%lu actual=%lu",
- __entry->cpu_id, __entry->targfreq,
- __entry->actualfreq)
-);
-
-DEFINE_EVENT(set, cpufreq_interactive_setspeed,
- TP_PROTO(u32 cpu_id, unsigned long targfreq,
- unsigned long actualfreq),
- TP_ARGS(cpu_id, targfreq, actualfreq)
-);
-
-DECLARE_EVENT_CLASS(loadeval,
- TP_PROTO(unsigned long cpu_id, unsigned long load,
- unsigned long curtarg, unsigned long curactual,
- unsigned long newtarg),
- TP_ARGS(cpu_id, load, curtarg, curactual, newtarg),
-
- TP_STRUCT__entry(
- __field(unsigned long, cpu_id )
- __field(unsigned long, load )
- __field(unsigned long, curtarg )
- __field(unsigned long, curactual )
- __field(unsigned long, newtarg )
- ),
-
- TP_fast_assign(
- __entry->cpu_id = cpu_id;
- __entry->load = load;
- __entry->curtarg = curtarg;
- __entry->curactual = curactual;
- __entry->newtarg = newtarg;
- ),
-
- TP_printk("cpu=%lu load=%lu cur=%lu actual=%lu targ=%lu",
- __entry->cpu_id, __entry->load, __entry->curtarg,
- __entry->curactual, __entry->newtarg)
-);
-
-DEFINE_EVENT(loadeval, cpufreq_interactive_target,
- TP_PROTO(unsigned long cpu_id, unsigned long load,
- unsigned long curtarg, unsigned long curactual,
- unsigned long newtarg),
- TP_ARGS(cpu_id, load, curtarg, curactual, newtarg)
-);
-
-DEFINE_EVENT(loadeval, cpufreq_interactive_already,
- TP_PROTO(unsigned long cpu_id, unsigned long load,
- unsigned long curtarg, unsigned long curactual,
- unsigned long newtarg),
- TP_ARGS(cpu_id, load, curtarg, curactual, newtarg)
-);
-
-DEFINE_EVENT(loadeval, cpufreq_interactive_notyet,
- TP_PROTO(unsigned long cpu_id, unsigned long load,
- unsigned long curtarg, unsigned long curactual,
- unsigned long newtarg),
- TP_ARGS(cpu_id, load, curtarg, curactual, newtarg)
-);
-
-TRACE_EVENT(cpufreq_interactive_boost,
- TP_PROTO(const char *s),
- TP_ARGS(s),
- TP_STRUCT__entry(
- __string(s, s)
- ),
- TP_fast_assign(
- __assign_str(s, s);
- ),
- TP_printk("%s", __get_str(s))
-);
-
-TRACE_EVENT(cpufreq_interactive_unboost,
- TP_PROTO(const char *s),
- TP_ARGS(s),
- TP_STRUCT__entry(
- __string(s, s)
- ),
- TP_fast_assign(
- __assign_str(s, s);
- ),
- TP_printk("%s", __get_str(s))
-);
-
-#endif /* _TRACE_CPUFREQ_INTERACTIVE_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/ext3.h b/ANDROID_3.4.5/include/trace/events/ext3.h
deleted file mode 100644
index 7b53c057..00000000
--- a/ANDROID_3.4.5/include/trace/events/ext3.h
+++ /dev/null
@@ -1,864 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM ext3
-
-#if !defined(_TRACE_EXT3_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_EXT3_H
-
-#include <linux/tracepoint.h>
-
-TRACE_EVENT(ext3_free_inode,
- TP_PROTO(struct inode *inode),
-
- TP_ARGS(inode),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( umode_t, mode )
- __field( uid_t, uid )
- __field( gid_t, gid )
- __field( blkcnt_t, blocks )
- ),
-
- TP_fast_assign(
- __entry->dev = inode->i_sb->s_dev;
- __entry->ino = inode->i_ino;
- __entry->mode = inode->i_mode;
- __entry->uid = inode->i_uid;
- __entry->gid = inode->i_gid;
- __entry->blocks = inode->i_blocks;
- ),
-
- TP_printk("dev %d,%d ino %lu mode 0%o uid %u gid %u blocks %lu",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->mode, __entry->uid, __entry->gid,
- (unsigned long) __entry->blocks)
-);
-
-TRACE_EVENT(ext3_request_inode,
- TP_PROTO(struct inode *dir, int mode),
-
- TP_ARGS(dir, mode),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, dir )
- __field( umode_t, mode )
- ),
-
- TP_fast_assign(
- __entry->dev = dir->i_sb->s_dev;
- __entry->dir = dir->i_ino;
- __entry->mode = mode;
- ),
-
- TP_printk("dev %d,%d dir %lu mode 0%o",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->dir, __entry->mode)
-);
-
-TRACE_EVENT(ext3_allocate_inode,
- TP_PROTO(struct inode *inode, struct inode *dir, int mode),
-
- TP_ARGS(inode, dir, mode),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( ino_t, dir )
- __field( umode_t, mode )
- ),
-
- TP_fast_assign(
- __entry->dev = inode->i_sb->s_dev;
- __entry->ino = inode->i_ino;
- __entry->dir = dir->i_ino;
- __entry->mode = mode;
- ),
-
- TP_printk("dev %d,%d ino %lu dir %lu mode 0%o",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- (unsigned long) __entry->dir, __entry->mode)
-);
-
-TRACE_EVENT(ext3_evict_inode,
- TP_PROTO(struct inode *inode),
-
- TP_ARGS(inode),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( int, nlink )
- ),
-
- TP_fast_assign(
- __entry->dev = inode->i_sb->s_dev;
- __entry->ino = inode->i_ino;
- __entry->nlink = inode->i_nlink;
- ),
-
- TP_printk("dev %d,%d ino %lu nlink %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino, __entry->nlink)
-);
-
-TRACE_EVENT(ext3_drop_inode,
- TP_PROTO(struct inode *inode, int drop),
-
- TP_ARGS(inode, drop),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( int, drop )
- ),
-
- TP_fast_assign(
- __entry->dev = inode->i_sb->s_dev;
- __entry->ino = inode->i_ino;
- __entry->drop = drop;
- ),
-
- TP_printk("dev %d,%d ino %lu drop %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino, __entry->drop)
-);
-
-TRACE_EVENT(ext3_mark_inode_dirty,
- TP_PROTO(struct inode *inode, unsigned long IP),
-
- TP_ARGS(inode, IP),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field(unsigned long, ip )
- ),
-
- TP_fast_assign(
- __entry->dev = inode->i_sb->s_dev;
- __entry->ino = inode->i_ino;
- __entry->ip = IP;
- ),
-
- TP_printk("dev %d,%d ino %lu caller %pF",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino, (void *)__entry->ip)
-);
-
-TRACE_EVENT(ext3_write_begin,
- TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
- unsigned int flags),
-
- TP_ARGS(inode, pos, len, flags),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( loff_t, pos )
- __field( unsigned int, len )
- __field( unsigned int, flags )
- ),
-
- TP_fast_assign(
- __entry->dev = inode->i_sb->s_dev;
- __entry->ino = inode->i_ino;
- __entry->pos = pos;
- __entry->len = len;
- __entry->flags = flags;
- ),
-
- TP_printk("dev %d,%d ino %lu pos %llu len %u flags %u",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- (unsigned long long) __entry->pos, __entry->len,
- __entry->flags)
-);
-
-DECLARE_EVENT_CLASS(ext3__write_end,
- TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
- unsigned int copied),
-
- TP_ARGS(inode, pos, len, copied),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( loff_t, pos )
- __field( unsigned int, len )
- __field( unsigned int, copied )
- ),
-
- TP_fast_assign(
- __entry->dev = inode->i_sb->s_dev;
- __entry->ino = inode->i_ino;
- __entry->pos = pos;
- __entry->len = len;
- __entry->copied = copied;
- ),
-
- TP_printk("dev %d,%d ino %lu pos %llu len %u copied %u",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- (unsigned long long) __entry->pos, __entry->len,
- __entry->copied)
-);
-
-DEFINE_EVENT(ext3__write_end, ext3_ordered_write_end,
-
- TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
- unsigned int copied),
-
- TP_ARGS(inode, pos, len, copied)
-);
-
-DEFINE_EVENT(ext3__write_end, ext3_writeback_write_end,
-
- TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
- unsigned int copied),
-
- TP_ARGS(inode, pos, len, copied)
-);
-
-DEFINE_EVENT(ext3__write_end, ext3_journalled_write_end,
-
- TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
- unsigned int copied),
-
- TP_ARGS(inode, pos, len, copied)
-);
-
-DECLARE_EVENT_CLASS(ext3__page_op,
- TP_PROTO(struct page *page),
-
- TP_ARGS(page),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( pgoff_t, index )
-
- ),
-
- TP_fast_assign(
- __entry->index = page->index;
- __entry->ino = page->mapping->host->i_ino;
- __entry->dev = page->mapping->host->i_sb->s_dev;
- ),
-
- TP_printk("dev %d,%d ino %lu page_index %lu",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino, __entry->index)
-);
-
-DEFINE_EVENT(ext3__page_op, ext3_ordered_writepage,
-
- TP_PROTO(struct page *page),
-
- TP_ARGS(page)
-);
-
-DEFINE_EVENT(ext3__page_op, ext3_writeback_writepage,
-
- TP_PROTO(struct page *page),
-
- TP_ARGS(page)
-);
-
-DEFINE_EVENT(ext3__page_op, ext3_journalled_writepage,
-
- TP_PROTO(struct page *page),
-
- TP_ARGS(page)
-);
-
-DEFINE_EVENT(ext3__page_op, ext3_readpage,
-
- TP_PROTO(struct page *page),
-
- TP_ARGS(page)
-);
-
-DEFINE_EVENT(ext3__page_op, ext3_releasepage,
-
- TP_PROTO(struct page *page),
-
- TP_ARGS(page)
-);
-
-TRACE_EVENT(ext3_invalidatepage,
- TP_PROTO(struct page *page, unsigned long offset),
-
- TP_ARGS(page, offset),
-
- TP_STRUCT__entry(
- __field( pgoff_t, index )
- __field( unsigned long, offset )
- __field( ino_t, ino )
- __field( dev_t, dev )
-
- ),
-
- TP_fast_assign(
- __entry->index = page->index;
- __entry->offset = offset;
- __entry->ino = page->mapping->host->i_ino;
- __entry->dev = page->mapping->host->i_sb->s_dev;
- ),
-
- TP_printk("dev %d,%d ino %lu page_index %lu offset %lu",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->index, __entry->offset)
-);
-
-TRACE_EVENT(ext3_discard_blocks,
- TP_PROTO(struct super_block *sb, unsigned long blk,
- unsigned long count),
-
- TP_ARGS(sb, blk, count),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( unsigned long, blk )
- __field( unsigned long, count )
-
- ),
-
- TP_fast_assign(
- __entry->dev = sb->s_dev;
- __entry->blk = blk;
- __entry->count = count;
- ),
-
- TP_printk("dev %d,%d blk %lu count %lu",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- __entry->blk, __entry->count)
-);
-
-TRACE_EVENT(ext3_request_blocks,
- TP_PROTO(struct inode *inode, unsigned long goal,
- unsigned long count),
-
- TP_ARGS(inode, goal, count),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( unsigned long, count )
- __field( unsigned long, goal )
- ),
-
- TP_fast_assign(
- __entry->dev = inode->i_sb->s_dev;
- __entry->ino = inode->i_ino;
- __entry->count = count;
- __entry->goal = goal;
- ),
-
- TP_printk("dev %d,%d ino %lu count %lu goal %lu ",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->count, __entry->goal)
-);
-
-TRACE_EVENT(ext3_allocate_blocks,
- TP_PROTO(struct inode *inode, unsigned long goal,
- unsigned long count, unsigned long block),
-
- TP_ARGS(inode, goal, count, block),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( unsigned long, block )
- __field( unsigned long, count )
- __field( unsigned long, goal )
- ),
-
- TP_fast_assign(
- __entry->dev = inode->i_sb->s_dev;
- __entry->ino = inode->i_ino;
- __entry->block = block;
- __entry->count = count;
- __entry->goal = goal;
- ),
-
- TP_printk("dev %d,%d ino %lu count %lu block %lu goal %lu",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->count, __entry->block,
- __entry->goal)
-);
-
-TRACE_EVENT(ext3_free_blocks,
- TP_PROTO(struct inode *inode, unsigned long block,
- unsigned long count),
-
- TP_ARGS(inode, block, count),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( umode_t, mode )
- __field( unsigned long, block )
- __field( unsigned long, count )
- ),
-
- TP_fast_assign(
- __entry->dev = inode->i_sb->s_dev;
- __entry->ino = inode->i_ino;
- __entry->mode = inode->i_mode;
- __entry->block = block;
- __entry->count = count;
- ),
-
- TP_printk("dev %d,%d ino %lu mode 0%o block %lu count %lu",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->mode, __entry->block, __entry->count)
-);
-
-TRACE_EVENT(ext3_sync_file_enter,
- TP_PROTO(struct file *file, int datasync),
-
- TP_ARGS(file, datasync),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( ino_t, parent )
- __field( int, datasync )
- ),
-
- TP_fast_assign(
- struct dentry *dentry = file->f_path.dentry;
-
- __entry->dev = dentry->d_inode->i_sb->s_dev;
- __entry->ino = dentry->d_inode->i_ino;
- __entry->datasync = datasync;
- __entry->parent = dentry->d_parent->d_inode->i_ino;
- ),
-
- TP_printk("dev %d,%d ino %lu parent %ld datasync %d ",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- (unsigned long) __entry->parent, __entry->datasync)
-);
-
-TRACE_EVENT(ext3_sync_file_exit,
- TP_PROTO(struct inode *inode, int ret),
-
- TP_ARGS(inode, ret),
-
- TP_STRUCT__entry(
- __field( int, ret )
- __field( ino_t, ino )
- __field( dev_t, dev )
- ),
-
- TP_fast_assign(
- __entry->ret = ret;
- __entry->ino = inode->i_ino;
- __entry->dev = inode->i_sb->s_dev;
- ),
-
- TP_printk("dev %d,%d ino %lu ret %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->ret)
-);
-
-TRACE_EVENT(ext3_sync_fs,
- TP_PROTO(struct super_block *sb, int wait),
-
- TP_ARGS(sb, wait),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( int, wait )
-
- ),
-
- TP_fast_assign(
- __entry->dev = sb->s_dev;
- __entry->wait = wait;
- ),
-
- TP_printk("dev %d,%d wait %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- __entry->wait)
-);
-
-TRACE_EVENT(ext3_rsv_window_add,
- TP_PROTO(struct super_block *sb,
- struct ext3_reserve_window_node *rsv_node),
-
- TP_ARGS(sb, rsv_node),
-
- TP_STRUCT__entry(
- __field( unsigned long, start )
- __field( unsigned long, end )
- __field( dev_t, dev )
- ),
-
- TP_fast_assign(
- __entry->dev = sb->s_dev;
- __entry->start = rsv_node->rsv_window._rsv_start;
- __entry->end = rsv_node->rsv_window._rsv_end;
- ),
-
- TP_printk("dev %d,%d start %lu end %lu",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- __entry->start, __entry->end)
-);
-
-TRACE_EVENT(ext3_discard_reservation,
- TP_PROTO(struct inode *inode,
- struct ext3_reserve_window_node *rsv_node),
-
- TP_ARGS(inode, rsv_node),
-
- TP_STRUCT__entry(
- __field( unsigned long, start )
- __field( unsigned long, end )
- __field( ino_t, ino )
- __field( dev_t, dev )
- ),
-
- TP_fast_assign(
- __entry->start = rsv_node->rsv_window._rsv_start;
- __entry->end = rsv_node->rsv_window._rsv_end;
- __entry->ino = inode->i_ino;
- __entry->dev = inode->i_sb->s_dev;
- ),
-
- TP_printk("dev %d,%d ino %lu start %lu end %lu",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long)__entry->ino, __entry->start,
- __entry->end)
-);
-
-TRACE_EVENT(ext3_alloc_new_reservation,
- TP_PROTO(struct super_block *sb, unsigned long goal),
-
- TP_ARGS(sb, goal),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( unsigned long, goal )
- ),
-
- TP_fast_assign(
- __entry->dev = sb->s_dev;
- __entry->goal = goal;
- ),
-
- TP_printk("dev %d,%d goal %lu",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- __entry->goal)
-);
-
-TRACE_EVENT(ext3_reserved,
- TP_PROTO(struct super_block *sb, unsigned long block,
- struct ext3_reserve_window_node *rsv_node),
-
- TP_ARGS(sb, block, rsv_node),
-
- TP_STRUCT__entry(
- __field( unsigned long, block )
- __field( unsigned long, start )
- __field( unsigned long, end )
- __field( dev_t, dev )
- ),
-
- TP_fast_assign(
- __entry->block = block;
- __entry->start = rsv_node->rsv_window._rsv_start;
- __entry->end = rsv_node->rsv_window._rsv_end;
- __entry->dev = sb->s_dev;
- ),
-
- TP_printk("dev %d,%d block %lu, start %lu end %lu",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- __entry->block, __entry->start, __entry->end)
-);
-
-TRACE_EVENT(ext3_forget,
- TP_PROTO(struct inode *inode, int is_metadata, unsigned long block),
-
- TP_ARGS(inode, is_metadata, block),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( umode_t, mode )
- __field( int, is_metadata )
- __field( unsigned long, block )
- ),
-
- TP_fast_assign(
- __entry->dev = inode->i_sb->s_dev;
- __entry->ino = inode->i_ino;
- __entry->mode = inode->i_mode;
- __entry->is_metadata = is_metadata;
- __entry->block = block;
- ),
-
- TP_printk("dev %d,%d ino %lu mode 0%o is_metadata %d block %lu",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->mode, __entry->is_metadata, __entry->block)
-);
-
-TRACE_EVENT(ext3_read_block_bitmap,
- TP_PROTO(struct super_block *sb, unsigned int group),
-
- TP_ARGS(sb, group),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( __u32, group )
-
- ),
-
- TP_fast_assign(
- __entry->dev = sb->s_dev;
- __entry->group = group;
- ),
-
- TP_printk("dev %d,%d group %u",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- __entry->group)
-);
-
-TRACE_EVENT(ext3_direct_IO_enter,
- TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, int rw),
-
- TP_ARGS(inode, offset, len, rw),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( dev_t, dev )
- __field( loff_t, pos )
- __field( unsigned long, len )
- __field( int, rw )
- ),
-
- TP_fast_assign(
- __entry->ino = inode->i_ino;
- __entry->dev = inode->i_sb->s_dev;
- __entry->pos = offset;
- __entry->len = len;
- __entry->rw = rw;
- ),
-
- TP_printk("dev %d,%d ino %lu pos %llu len %lu rw %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- (unsigned long long) __entry->pos, __entry->len,
- __entry->rw)
-);
-
-TRACE_EVENT(ext3_direct_IO_exit,
- TP_PROTO(struct inode *inode, loff_t offset, unsigned long len,
- int rw, int ret),
-
- TP_ARGS(inode, offset, len, rw, ret),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( dev_t, dev )
- __field( loff_t, pos )
- __field( unsigned long, len )
- __field( int, rw )
- __field( int, ret )
- ),
-
- TP_fast_assign(
- __entry->ino = inode->i_ino;
- __entry->dev = inode->i_sb->s_dev;
- __entry->pos = offset;
- __entry->len = len;
- __entry->rw = rw;
- __entry->ret = ret;
- ),
-
- TP_printk("dev %d,%d ino %lu pos %llu len %lu rw %d ret %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- (unsigned long long) __entry->pos, __entry->len,
- __entry->rw, __entry->ret)
-);
-
-TRACE_EVENT(ext3_unlink_enter,
- TP_PROTO(struct inode *parent, struct dentry *dentry),
-
- TP_ARGS(parent, dentry),
-
- TP_STRUCT__entry(
- __field( ino_t, parent )
- __field( ino_t, ino )
- __field( loff_t, size )
- __field( dev_t, dev )
- ),
-
- TP_fast_assign(
- __entry->parent = parent->i_ino;
- __entry->ino = dentry->d_inode->i_ino;
- __entry->size = dentry->d_inode->i_size;
- __entry->dev = dentry->d_inode->i_sb->s_dev;
- ),
-
- TP_printk("dev %d,%d ino %lu size %lld parent %ld",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- (unsigned long long)__entry->size,
- (unsigned long) __entry->parent)
-);
-
-TRACE_EVENT(ext3_unlink_exit,
- TP_PROTO(struct dentry *dentry, int ret),
-
- TP_ARGS(dentry, ret),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( dev_t, dev )
- __field( int, ret )
- ),
-
- TP_fast_assign(
- __entry->ino = dentry->d_inode->i_ino;
- __entry->dev = dentry->d_inode->i_sb->s_dev;
- __entry->ret = ret;
- ),
-
- TP_printk("dev %d,%d ino %lu ret %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->ret)
-);
-
-DECLARE_EVENT_CLASS(ext3__truncate,
- TP_PROTO(struct inode *inode),
-
- TP_ARGS(inode),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( dev_t, dev )
- __field( blkcnt_t, blocks )
- ),
-
- TP_fast_assign(
- __entry->ino = inode->i_ino;
- __entry->dev = inode->i_sb->s_dev;
- __entry->blocks = inode->i_blocks;
- ),
-
- TP_printk("dev %d,%d ino %lu blocks %lu",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino, (unsigned long) __entry->blocks)
-);
-
-DEFINE_EVENT(ext3__truncate, ext3_truncate_enter,
-
- TP_PROTO(struct inode *inode),
-
- TP_ARGS(inode)
-);
-
-DEFINE_EVENT(ext3__truncate, ext3_truncate_exit,
-
- TP_PROTO(struct inode *inode),
-
- TP_ARGS(inode)
-);
-
-TRACE_EVENT(ext3_get_blocks_enter,
- TP_PROTO(struct inode *inode, unsigned long lblk,
- unsigned long len, int create),
-
- TP_ARGS(inode, lblk, len, create),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( dev_t, dev )
- __field( unsigned long, lblk )
- __field( unsigned long, len )
- __field( int, create )
- ),
-
- TP_fast_assign(
- __entry->ino = inode->i_ino;
- __entry->dev = inode->i_sb->s_dev;
- __entry->lblk = lblk;
- __entry->len = len;
- __entry->create = create;
- ),
-
- TP_printk("dev %d,%d ino %lu lblk %lu len %lu create %u",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->lblk, __entry->len, __entry->create)
-);
-
-TRACE_EVENT(ext3_get_blocks_exit,
- TP_PROTO(struct inode *inode, unsigned long lblk,
- unsigned long pblk, unsigned long len, int ret),
-
- TP_ARGS(inode, lblk, pblk, len, ret),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( dev_t, dev )
- __field( unsigned long, lblk )
- __field( unsigned long, pblk )
- __field( unsigned long, len )
- __field( int, ret )
- ),
-
- TP_fast_assign(
- __entry->ino = inode->i_ino;
- __entry->dev = inode->i_sb->s_dev;
- __entry->lblk = lblk;
- __entry->pblk = pblk;
- __entry->len = len;
- __entry->ret = ret;
- ),
-
- TP_printk("dev %d,%d ino %lu lblk %lu pblk %lu len %lu ret %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->lblk, __entry->pblk,
- __entry->len, __entry->ret)
-);
-
-TRACE_EVENT(ext3_load_inode,
- TP_PROTO(struct inode *inode),
-
- TP_ARGS(inode),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( dev_t, dev )
- ),
-
- TP_fast_assign(
- __entry->ino = inode->i_ino;
- __entry->dev = inode->i_sb->s_dev;
- ),
-
- TP_printk("dev %d,%d ino %lu",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino)
-);
-
-#endif /* _TRACE_EXT3_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/ext4.h b/ANDROID_3.4.5/include/trace/events/ext4.h
deleted file mode 100644
index 319538bf..00000000
--- a/ANDROID_3.4.5/include/trace/events/ext4.h
+++ /dev/null
@@ -1,2061 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM ext4
-
-#if !defined(_TRACE_EXT4_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_EXT4_H
-
-#include <linux/writeback.h>
-#include <linux/tracepoint.h>
-
-struct ext4_allocation_context;
-struct ext4_allocation_request;
-struct ext4_extent;
-struct ext4_prealloc_space;
-struct ext4_inode_info;
-struct mpage_da_data;
-struct ext4_map_blocks;
-struct ext4_extent;
-
-#define EXT4_I(inode) (container_of(inode, struct ext4_inode_info, vfs_inode))
-
-TRACE_EVENT(ext4_free_inode,
- TP_PROTO(struct inode *inode),
-
- TP_ARGS(inode),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( __u16, mode )
- __field( uid_t, uid )
- __field( gid_t, gid )
- __field( __u64, blocks )
- ),
-
- TP_fast_assign(
- __entry->dev = inode->i_sb->s_dev;
- __entry->ino = inode->i_ino;
- __entry->mode = inode->i_mode;
- __entry->uid = inode->i_uid;
- __entry->gid = inode->i_gid;
- __entry->blocks = inode->i_blocks;
- ),
-
- TP_printk("dev %d,%d ino %lu mode 0%o uid %u gid %u blocks %llu",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino, __entry->mode,
- __entry->uid, __entry->gid, __entry->blocks)
-);
-
-TRACE_EVENT(ext4_request_inode,
- TP_PROTO(struct inode *dir, int mode),
-
- TP_ARGS(dir, mode),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, dir )
- __field( __u16, mode )
- ),
-
- TP_fast_assign(
- __entry->dev = dir->i_sb->s_dev;
- __entry->dir = dir->i_ino;
- __entry->mode = mode;
- ),
-
- TP_printk("dev %d,%d dir %lu mode 0%o",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->dir, __entry->mode)
-);
-
-TRACE_EVENT(ext4_allocate_inode,
- TP_PROTO(struct inode *inode, struct inode *dir, int mode),
-
- TP_ARGS(inode, dir, mode),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( ino_t, dir )
- __field( __u16, mode )
- ),
-
- TP_fast_assign(
- __entry->dev = inode->i_sb->s_dev;
- __entry->ino = inode->i_ino;
- __entry->dir = dir->i_ino;
- __entry->mode = mode;
- ),
-
- TP_printk("dev %d,%d ino %lu dir %lu mode 0%o",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- (unsigned long) __entry->dir, __entry->mode)
-);
-
-TRACE_EVENT(ext4_evict_inode,
- TP_PROTO(struct inode *inode),
-
- TP_ARGS(inode),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( int, nlink )
- ),
-
- TP_fast_assign(
- __entry->dev = inode->i_sb->s_dev;
- __entry->ino = inode->i_ino;
- __entry->nlink = inode->i_nlink;
- ),
-
- TP_printk("dev %d,%d ino %lu nlink %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino, __entry->nlink)
-);
-
-TRACE_EVENT(ext4_drop_inode,
- TP_PROTO(struct inode *inode, int drop),
-
- TP_ARGS(inode, drop),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( int, drop )
- ),
-
- TP_fast_assign(
- __entry->dev = inode->i_sb->s_dev;
- __entry->ino = inode->i_ino;
- __entry->drop = drop;
- ),
-
- TP_printk("dev %d,%d ino %lu drop %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino, __entry->drop)
-);
-
-TRACE_EVENT(ext4_mark_inode_dirty,
- TP_PROTO(struct inode *inode, unsigned long IP),
-
- TP_ARGS(inode, IP),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field(unsigned long, ip )
- ),
-
- TP_fast_assign(
- __entry->dev = inode->i_sb->s_dev;
- __entry->ino = inode->i_ino;
- __entry->ip = IP;
- ),
-
- TP_printk("dev %d,%d ino %lu caller %pF",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino, (void *)__entry->ip)
-);
-
-TRACE_EVENT(ext4_begin_ordered_truncate,
- TP_PROTO(struct inode *inode, loff_t new_size),
-
- TP_ARGS(inode, new_size),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( loff_t, new_size )
- ),
-
- TP_fast_assign(
- __entry->dev = inode->i_sb->s_dev;
- __entry->ino = inode->i_ino;
- __entry->new_size = new_size;
- ),
-
- TP_printk("dev %d,%d ino %lu new_size %lld",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->new_size)
-);
-
-DECLARE_EVENT_CLASS(ext4__write_begin,
-
- TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
- unsigned int flags),
-
- TP_ARGS(inode, pos, len, flags),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( loff_t, pos )
- __field( unsigned int, len )
- __field( unsigned int, flags )
- ),
-
- TP_fast_assign(
- __entry->dev = inode->i_sb->s_dev;
- __entry->ino = inode->i_ino;
- __entry->pos = pos;
- __entry->len = len;
- __entry->flags = flags;
- ),
-
- TP_printk("dev %d,%d ino %lu pos %lld len %u flags %u",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->pos, __entry->len, __entry->flags)
-);
-
-DEFINE_EVENT(ext4__write_begin, ext4_write_begin,
-
- TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
- unsigned int flags),
-
- TP_ARGS(inode, pos, len, flags)
-);
-
-DEFINE_EVENT(ext4__write_begin, ext4_da_write_begin,
-
- TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
- unsigned int flags),
-
- TP_ARGS(inode, pos, len, flags)
-);
-
-DECLARE_EVENT_CLASS(ext4__write_end,
- TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
- unsigned int copied),
-
- TP_ARGS(inode, pos, len, copied),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( loff_t, pos )
- __field( unsigned int, len )
- __field( unsigned int, copied )
- ),
-
- TP_fast_assign(
- __entry->dev = inode->i_sb->s_dev;
- __entry->ino = inode->i_ino;
- __entry->pos = pos;
- __entry->len = len;
- __entry->copied = copied;
- ),
-
- TP_printk("dev %d,%d ino %lu pos %lld len %u copied %u",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->pos, __entry->len, __entry->copied)
-);
-
-DEFINE_EVENT(ext4__write_end, ext4_ordered_write_end,
-
- TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
- unsigned int copied),
-
- TP_ARGS(inode, pos, len, copied)
-);
-
-DEFINE_EVENT(ext4__write_end, ext4_writeback_write_end,
-
- TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
- unsigned int copied),
-
- TP_ARGS(inode, pos, len, copied)
-);
-
-DEFINE_EVENT(ext4__write_end, ext4_journalled_write_end,
-
- TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
- unsigned int copied),
-
- TP_ARGS(inode, pos, len, copied)
-);
-
-DEFINE_EVENT(ext4__write_end, ext4_da_write_end,
-
- TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
- unsigned int copied),
-
- TP_ARGS(inode, pos, len, copied)
-);
-
-TRACE_EVENT(ext4_da_writepages,
- TP_PROTO(struct inode *inode, struct writeback_control *wbc),
-
- TP_ARGS(inode, wbc),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( long, nr_to_write )
- __field( long, pages_skipped )
- __field( loff_t, range_start )
- __field( loff_t, range_end )
- __field( int, sync_mode )
- __field( char, for_kupdate )
- __field( char, range_cyclic )
- __field( pgoff_t, writeback_index )
- ),
-
- TP_fast_assign(
- __entry->dev = inode->i_sb->s_dev;
- __entry->ino = inode->i_ino;
- __entry->nr_to_write = wbc->nr_to_write;
- __entry->pages_skipped = wbc->pages_skipped;
- __entry->range_start = wbc->range_start;
- __entry->range_end = wbc->range_end;
- __entry->sync_mode = wbc->sync_mode;
- __entry->for_kupdate = wbc->for_kupdate;
- __entry->range_cyclic = wbc->range_cyclic;
- __entry->writeback_index = inode->i_mapping->writeback_index;
- ),
-
- TP_printk("dev %d,%d ino %lu nr_to_write %ld pages_skipped %ld "
- "range_start %lld range_end %lld sync_mode %d"
- "for_kupdate %d range_cyclic %d writeback_index %lu",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino, __entry->nr_to_write,
- __entry->pages_skipped, __entry->range_start,
- __entry->range_end, __entry->sync_mode,
- __entry->for_kupdate, __entry->range_cyclic,
- (unsigned long) __entry->writeback_index)
-);
-
-TRACE_EVENT(ext4_da_write_pages,
- TP_PROTO(struct inode *inode, struct mpage_da_data *mpd),
-
- TP_ARGS(inode, mpd),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( __u64, b_blocknr )
- __field( __u32, b_size )
- __field( __u32, b_state )
- __field( unsigned long, first_page )
- __field( int, io_done )
- __field( int, pages_written )
- __field( int, sync_mode )
- ),
-
- TP_fast_assign(
- __entry->dev = inode->i_sb->s_dev;
- __entry->ino = inode->i_ino;
- __entry->b_blocknr = mpd->b_blocknr;
- __entry->b_size = mpd->b_size;
- __entry->b_state = mpd->b_state;
- __entry->first_page = mpd->first_page;
- __entry->io_done = mpd->io_done;
- __entry->pages_written = mpd->pages_written;
- __entry->sync_mode = mpd->wbc->sync_mode;
- ),
-
- TP_printk("dev %d,%d ino %lu b_blocknr %llu b_size %u b_state 0x%04x "
- "first_page %lu io_done %d pages_written %d sync_mode %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->b_blocknr, __entry->b_size,
- __entry->b_state, __entry->first_page,
- __entry->io_done, __entry->pages_written,
- __entry->sync_mode
- )
-);
-
-TRACE_EVENT(ext4_da_writepages_result,
- TP_PROTO(struct inode *inode, struct writeback_control *wbc,
- int ret, int pages_written),
-
- TP_ARGS(inode, wbc, ret, pages_written),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( int, ret )
- __field( int, pages_written )
- __field( long, pages_skipped )
- __field( int, sync_mode )
- __field( pgoff_t, writeback_index )
- ),
-
- TP_fast_assign(
- __entry->dev = inode->i_sb->s_dev;
- __entry->ino = inode->i_ino;
- __entry->ret = ret;
- __entry->pages_written = pages_written;
- __entry->pages_skipped = wbc->pages_skipped;
- __entry->sync_mode = wbc->sync_mode;
- __entry->writeback_index = inode->i_mapping->writeback_index;
- ),
-
- TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld "
- "sync_mode %d writeback_index %lu",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino, __entry->ret,
- __entry->pages_written, __entry->pages_skipped,
- __entry->sync_mode,
- (unsigned long) __entry->writeback_index)
-);
-
-DECLARE_EVENT_CLASS(ext4__page_op,
- TP_PROTO(struct page *page),
-
- TP_ARGS(page),
-
- TP_STRUCT__entry(
- __field( pgoff_t, index )
- __field( ino_t, ino )
- __field( dev_t, dev )
-
- ),
-
- TP_fast_assign(
- __entry->index = page->index;
- __entry->ino = page->mapping->host->i_ino;
- __entry->dev = page->mapping->host->i_sb->s_dev;
- ),
-
- TP_printk("dev %d,%d ino %lu page_index %lu",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- (unsigned long) __entry->index)
-);
-
-DEFINE_EVENT(ext4__page_op, ext4_writepage,
-
- TP_PROTO(struct page *page),
-
- TP_ARGS(page)
-);
-
-DEFINE_EVENT(ext4__page_op, ext4_readpage,
-
- TP_PROTO(struct page *page),
-
- TP_ARGS(page)
-);
-
-DEFINE_EVENT(ext4__page_op, ext4_releasepage,
-
- TP_PROTO(struct page *page),
-
- TP_ARGS(page)
-);
-
-TRACE_EVENT(ext4_invalidatepage,
- TP_PROTO(struct page *page, unsigned long offset),
-
- TP_ARGS(page, offset),
-
- TP_STRUCT__entry(
- __field( pgoff_t, index )
- __field( unsigned long, offset )
- __field( ino_t, ino )
- __field( dev_t, dev )
-
- ),
-
- TP_fast_assign(
- __entry->index = page->index;
- __entry->offset = offset;
- __entry->ino = page->mapping->host->i_ino;
- __entry->dev = page->mapping->host->i_sb->s_dev;
- ),
-
- TP_printk("dev %d,%d ino %lu page_index %lu offset %lu",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- (unsigned long) __entry->index, __entry->offset)
-);
-
-TRACE_EVENT(ext4_discard_blocks,
- TP_PROTO(struct super_block *sb, unsigned long long blk,
- unsigned long long count),
-
- TP_ARGS(sb, blk, count),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( __u64, blk )
- __field( __u64, count )
-
- ),
-
- TP_fast_assign(
- __entry->dev = sb->s_dev;
- __entry->blk = blk;
- __entry->count = count;
- ),
-
- TP_printk("dev %d,%d blk %llu count %llu",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- __entry->blk, __entry->count)
-);
-
-DECLARE_EVENT_CLASS(ext4__mb_new_pa,
- TP_PROTO(struct ext4_allocation_context *ac,
- struct ext4_prealloc_space *pa),
-
- TP_ARGS(ac, pa),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( __u64, pa_pstart )
- __field( __u32, pa_len )
- __field( __u64, pa_lstart )
-
- ),
-
- TP_fast_assign(
- __entry->dev = ac->ac_sb->s_dev;
- __entry->ino = ac->ac_inode->i_ino;
- __entry->pa_pstart = pa->pa_pstart;
- __entry->pa_len = pa->pa_len;
- __entry->pa_lstart = pa->pa_lstart;
- ),
-
- TP_printk("dev %d,%d ino %lu pstart %llu len %u lstart %llu",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->pa_pstart, __entry->pa_len, __entry->pa_lstart)
-);
-
-DEFINE_EVENT(ext4__mb_new_pa, ext4_mb_new_inode_pa,
-
- TP_PROTO(struct ext4_allocation_context *ac,
- struct ext4_prealloc_space *pa),
-
- TP_ARGS(ac, pa)
-);
-
-DEFINE_EVENT(ext4__mb_new_pa, ext4_mb_new_group_pa,
-
- TP_PROTO(struct ext4_allocation_context *ac,
- struct ext4_prealloc_space *pa),
-
- TP_ARGS(ac, pa)
-);
-
-TRACE_EVENT(ext4_mb_release_inode_pa,
- TP_PROTO(struct ext4_prealloc_space *pa,
- unsigned long long block, unsigned int count),
-
- TP_ARGS(pa, block, count),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( __u64, block )
- __field( __u32, count )
-
- ),
-
- TP_fast_assign(
- __entry->dev = pa->pa_inode->i_sb->s_dev;
- __entry->ino = pa->pa_inode->i_ino;
- __entry->block = block;
- __entry->count = count;
- ),
-
- TP_printk("dev %d,%d ino %lu block %llu count %u",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->block, __entry->count)
-);
-
-TRACE_EVENT(ext4_mb_release_group_pa,
- TP_PROTO(struct super_block *sb, struct ext4_prealloc_space *pa),
-
- TP_ARGS(sb, pa),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( __u64, pa_pstart )
- __field( __u32, pa_len )
-
- ),
-
- TP_fast_assign(
- __entry->dev = sb->s_dev;
- __entry->pa_pstart = pa->pa_pstart;
- __entry->pa_len = pa->pa_len;
- ),
-
- TP_printk("dev %d,%d pstart %llu len %u",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- __entry->pa_pstart, __entry->pa_len)
-);
-
-TRACE_EVENT(ext4_discard_preallocations,
- TP_PROTO(struct inode *inode),
-
- TP_ARGS(inode),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
-
- ),
-
- TP_fast_assign(
- __entry->dev = inode->i_sb->s_dev;
- __entry->ino = inode->i_ino;
- ),
-
- TP_printk("dev %d,%d ino %lu",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino)
-);
-
-TRACE_EVENT(ext4_mb_discard_preallocations,
- TP_PROTO(struct super_block *sb, int needed),
-
- TP_ARGS(sb, needed),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( int, needed )
-
- ),
-
- TP_fast_assign(
- __entry->dev = sb->s_dev;
- __entry->needed = needed;
- ),
-
- TP_printk("dev %d,%d needed %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- __entry->needed)
-);
-
-TRACE_EVENT(ext4_request_blocks,
- TP_PROTO(struct ext4_allocation_request *ar),
-
- TP_ARGS(ar),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( unsigned int, flags )
- __field( unsigned int, len )
- __field( __u32, logical )
- __field( __u32, lleft )
- __field( __u32, lright )
- __field( __u64, goal )
- __field( __u64, pleft )
- __field( __u64, pright )
- ),
-
- TP_fast_assign(
- __entry->dev = ar->inode->i_sb->s_dev;
- __entry->ino = ar->inode->i_ino;
- __entry->flags = ar->flags;
- __entry->len = ar->len;
- __entry->logical = ar->logical;
- __entry->goal = ar->goal;
- __entry->lleft = ar->lleft;
- __entry->lright = ar->lright;
- __entry->pleft = ar->pleft;
- __entry->pright = ar->pright;
- ),
-
- TP_printk("dev %d,%d ino %lu flags %u len %u lblk %u goal %llu "
- "lleft %u lright %u pleft %llu pright %llu ",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino, __entry->flags,
- __entry->len, __entry->logical, __entry->goal,
- __entry->lleft, __entry->lright, __entry->pleft,
- __entry->pright)
-);
-
-TRACE_EVENT(ext4_allocate_blocks,
- TP_PROTO(struct ext4_allocation_request *ar, unsigned long long block),
-
- TP_ARGS(ar, block),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( __u64, block )
- __field( unsigned int, flags )
- __field( unsigned int, len )
- __field( __u32, logical )
- __field( __u32, lleft )
- __field( __u32, lright )
- __field( __u64, goal )
- __field( __u64, pleft )
- __field( __u64, pright )
- ),
-
- TP_fast_assign(
- __entry->dev = ar->inode->i_sb->s_dev;
- __entry->ino = ar->inode->i_ino;
- __entry->block = block;
- __entry->flags = ar->flags;
- __entry->len = ar->len;
- __entry->logical = ar->logical;
- __entry->goal = ar->goal;
- __entry->lleft = ar->lleft;
- __entry->lright = ar->lright;
- __entry->pleft = ar->pleft;
- __entry->pright = ar->pright;
- ),
-
- TP_printk("dev %d,%d ino %lu flags %u len %u block %llu lblk %u "
- "goal %llu lleft %u lright %u pleft %llu pright %llu",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino, __entry->flags,
- __entry->len, __entry->block, __entry->logical,
- __entry->goal, __entry->lleft, __entry->lright,
- __entry->pleft, __entry->pright)
-);
-
-TRACE_EVENT(ext4_free_blocks,
- TP_PROTO(struct inode *inode, __u64 block, unsigned long count,
- int flags),
-
- TP_ARGS(inode, block, count, flags),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( __u16, mode )
- __field( __u64, block )
- __field( unsigned long, count )
- __field( int, flags )
- ),
-
- TP_fast_assign(
- __entry->dev = inode->i_sb->s_dev;
- __entry->ino = inode->i_ino;
- __entry->mode = inode->i_mode;
- __entry->block = block;
- __entry->count = count;
- __entry->flags = flags;
- ),
-
- TP_printk("dev %d,%d ino %lu mode 0%o block %llu count %lu flags %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->mode, __entry->block, __entry->count,
- __entry->flags)
-);
-
-TRACE_EVENT(ext4_sync_file_enter,
- TP_PROTO(struct file *file, int datasync),
-
- TP_ARGS(file, datasync),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( ino_t, parent )
- __field( int, datasync )
- ),
-
- TP_fast_assign(
- struct dentry *dentry = file->f_path.dentry;
-
- __entry->dev = dentry->d_inode->i_sb->s_dev;
- __entry->ino = dentry->d_inode->i_ino;
- __entry->datasync = datasync;
- __entry->parent = dentry->d_parent->d_inode->i_ino;
- ),
-
- TP_printk("dev %d,%d ino %lu parent %lu datasync %d ",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- (unsigned long) __entry->parent, __entry->datasync)
-);
-
-TRACE_EVENT(ext4_sync_file_exit,
- TP_PROTO(struct inode *inode, int ret),
-
- TP_ARGS(inode, ret),
-
- TP_STRUCT__entry(
- __field( int, ret )
- __field( ino_t, ino )
- __field( dev_t, dev )
- ),
-
- TP_fast_assign(
- __entry->ret = ret;
- __entry->ino = inode->i_ino;
- __entry->dev = inode->i_sb->s_dev;
- ),
-
- TP_printk("dev %d,%d ino %lu ret %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->ret)
-);
-
-TRACE_EVENT(ext4_sync_fs,
- TP_PROTO(struct super_block *sb, int wait),
-
- TP_ARGS(sb, wait),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( int, wait )
-
- ),
-
- TP_fast_assign(
- __entry->dev = sb->s_dev;
- __entry->wait = wait;
- ),
-
- TP_printk("dev %d,%d wait %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- __entry->wait)
-);
-
-TRACE_EVENT(ext4_alloc_da_blocks,
- TP_PROTO(struct inode *inode),
-
- TP_ARGS(inode),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( unsigned int, data_blocks )
- __field( unsigned int, meta_blocks )
- ),
-
- TP_fast_assign(
- __entry->dev = inode->i_sb->s_dev;
- __entry->ino = inode->i_ino;
- __entry->data_blocks = EXT4_I(inode)->i_reserved_data_blocks;
- __entry->meta_blocks = EXT4_I(inode)->i_reserved_meta_blocks;
- ),
-
- TP_printk("dev %d,%d ino %lu data_blocks %u meta_blocks %u",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->data_blocks, __entry->meta_blocks)
-);
-
-TRACE_EVENT(ext4_mballoc_alloc,
- TP_PROTO(struct ext4_allocation_context *ac),
-
- TP_ARGS(ac),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( __u16, found )
- __field( __u16, groups )
- __field( __u16, buddy )
- __field( __u16, flags )
- __field( __u16, tail )
- __field( __u8, cr )
- __field( __u32, orig_logical )
- __field( int, orig_start )
- __field( __u32, orig_group )
- __field( int, orig_len )
- __field( __u32, goal_logical )
- __field( int, goal_start )
- __field( __u32, goal_group )
- __field( int, goal_len )
- __field( __u32, result_logical )
- __field( int, result_start )
- __field( __u32, result_group )
- __field( int, result_len )
- ),
-
- TP_fast_assign(
- __entry->dev = ac->ac_inode->i_sb->s_dev;
- __entry->ino = ac->ac_inode->i_ino;
- __entry->found = ac->ac_found;
- __entry->flags = ac->ac_flags;
- __entry->groups = ac->ac_groups_scanned;
- __entry->buddy = ac->ac_buddy;
- __entry->tail = ac->ac_tail;
- __entry->cr = ac->ac_criteria;
- __entry->orig_logical = ac->ac_o_ex.fe_logical;
- __entry->orig_start = ac->ac_o_ex.fe_start;
- __entry->orig_group = ac->ac_o_ex.fe_group;
- __entry->orig_len = ac->ac_o_ex.fe_len;
- __entry->goal_logical = ac->ac_g_ex.fe_logical;
- __entry->goal_start = ac->ac_g_ex.fe_start;
- __entry->goal_group = ac->ac_g_ex.fe_group;
- __entry->goal_len = ac->ac_g_ex.fe_len;
- __entry->result_logical = ac->ac_f_ex.fe_logical;
- __entry->result_start = ac->ac_f_ex.fe_start;
- __entry->result_group = ac->ac_f_ex.fe_group;
- __entry->result_len = ac->ac_f_ex.fe_len;
- ),
-
- TP_printk("dev %d,%d inode %lu orig %u/%d/%u@%u goal %u/%d/%u@%u "
- "result %u/%d/%u@%u blks %u grps %u cr %u flags 0x%04x "
- "tail %u broken %u",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->orig_group, __entry->orig_start,
- __entry->orig_len, __entry->orig_logical,
- __entry->goal_group, __entry->goal_start,
- __entry->goal_len, __entry->goal_logical,
- __entry->result_group, __entry->result_start,
- __entry->result_len, __entry->result_logical,
- __entry->found, __entry->groups, __entry->cr,
- __entry->flags, __entry->tail,
- __entry->buddy ? 1 << __entry->buddy : 0)
-);
-
-TRACE_EVENT(ext4_mballoc_prealloc,
- TP_PROTO(struct ext4_allocation_context *ac),
-
- TP_ARGS(ac),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( __u32, orig_logical )
- __field( int, orig_start )
- __field( __u32, orig_group )
- __field( int, orig_len )
- __field( __u32, result_logical )
- __field( int, result_start )
- __field( __u32, result_group )
- __field( int, result_len )
- ),
-
- TP_fast_assign(
- __entry->dev = ac->ac_inode->i_sb->s_dev;
- __entry->ino = ac->ac_inode->i_ino;
- __entry->orig_logical = ac->ac_o_ex.fe_logical;
- __entry->orig_start = ac->ac_o_ex.fe_start;
- __entry->orig_group = ac->ac_o_ex.fe_group;
- __entry->orig_len = ac->ac_o_ex.fe_len;
- __entry->result_logical = ac->ac_b_ex.fe_logical;
- __entry->result_start = ac->ac_b_ex.fe_start;
- __entry->result_group = ac->ac_b_ex.fe_group;
- __entry->result_len = ac->ac_b_ex.fe_len;
- ),
-
- TP_printk("dev %d,%d inode %lu orig %u/%d/%u@%u result %u/%d/%u@%u",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->orig_group, __entry->orig_start,
- __entry->orig_len, __entry->orig_logical,
- __entry->result_group, __entry->result_start,
- __entry->result_len, __entry->result_logical)
-);
-
-DECLARE_EVENT_CLASS(ext4__mballoc,
- TP_PROTO(struct super_block *sb,
- struct inode *inode,
- ext4_group_t group,
- ext4_grpblk_t start,
- ext4_grpblk_t len),
-
- TP_ARGS(sb, inode, group, start, len),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( int, result_start )
- __field( __u32, result_group )
- __field( int, result_len )
- ),
-
- TP_fast_assign(
- __entry->dev = sb->s_dev;
- __entry->ino = inode ? inode->i_ino : 0;
- __entry->result_start = start;
- __entry->result_group = group;
- __entry->result_len = len;
- ),
-
- TP_printk("dev %d,%d inode %lu extent %u/%d/%d ",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->result_group, __entry->result_start,
- __entry->result_len)
-);
-
-DEFINE_EVENT(ext4__mballoc, ext4_mballoc_discard,
-
- TP_PROTO(struct super_block *sb,
- struct inode *inode,
- ext4_group_t group,
- ext4_grpblk_t start,
- ext4_grpblk_t len),
-
- TP_ARGS(sb, inode, group, start, len)
-);
-
-DEFINE_EVENT(ext4__mballoc, ext4_mballoc_free,
-
- TP_PROTO(struct super_block *sb,
- struct inode *inode,
- ext4_group_t group,
- ext4_grpblk_t start,
- ext4_grpblk_t len),
-
- TP_ARGS(sb, inode, group, start, len)
-);
-
-TRACE_EVENT(ext4_forget,
- TP_PROTO(struct inode *inode, int is_metadata, __u64 block),
-
- TP_ARGS(inode, is_metadata, block),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( __u16, mode )
- __field( int, is_metadata )
- __field( __u64, block )
- ),
-
- TP_fast_assign(
- __entry->dev = inode->i_sb->s_dev;
- __entry->ino = inode->i_ino;
- __entry->mode = inode->i_mode;
- __entry->is_metadata = is_metadata;
- __entry->block = block;
- ),
-
- TP_printk("dev %d,%d ino %lu mode 0%o is_metadata %d block %llu",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->mode, __entry->is_metadata, __entry->block)
-);
-
-TRACE_EVENT(ext4_da_update_reserve_space,
- TP_PROTO(struct inode *inode, int used_blocks, int quota_claim),
-
- TP_ARGS(inode, used_blocks, quota_claim),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( __u16, mode )
- __field( __u64, i_blocks )
- __field( int, used_blocks )
- __field( int, reserved_data_blocks )
- __field( int, reserved_meta_blocks )
- __field( int, allocated_meta_blocks )
- __field( int, quota_claim )
- ),
-
- TP_fast_assign(
- __entry->dev = inode->i_sb->s_dev;
- __entry->ino = inode->i_ino;
- __entry->mode = inode->i_mode;
- __entry->i_blocks = inode->i_blocks;
- __entry->used_blocks = used_blocks;
- __entry->reserved_data_blocks =
- EXT4_I(inode)->i_reserved_data_blocks;
- __entry->reserved_meta_blocks =
- EXT4_I(inode)->i_reserved_meta_blocks;
- __entry->allocated_meta_blocks =
- EXT4_I(inode)->i_allocated_meta_blocks;
- __entry->quota_claim = quota_claim;
- ),
-
- TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu used_blocks %d "
- "reserved_data_blocks %d reserved_meta_blocks %d "
- "allocated_meta_blocks %d quota_claim %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->mode, __entry->i_blocks,
- __entry->used_blocks, __entry->reserved_data_blocks,
- __entry->reserved_meta_blocks, __entry->allocated_meta_blocks,
- __entry->quota_claim)
-);
-
-TRACE_EVENT(ext4_da_reserve_space,
- TP_PROTO(struct inode *inode, int md_needed),
-
- TP_ARGS(inode, md_needed),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( __u16, mode )
- __field( __u64, i_blocks )
- __field( int, md_needed )
- __field( int, reserved_data_blocks )
- __field( int, reserved_meta_blocks )
- ),
-
- TP_fast_assign(
- __entry->dev = inode->i_sb->s_dev;
- __entry->ino = inode->i_ino;
- __entry->mode = inode->i_mode;
- __entry->i_blocks = inode->i_blocks;
- __entry->md_needed = md_needed;
- __entry->reserved_data_blocks = EXT4_I(inode)->i_reserved_data_blocks;
- __entry->reserved_meta_blocks = EXT4_I(inode)->i_reserved_meta_blocks;
- ),
-
- TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu md_needed %d "
- "reserved_data_blocks %d reserved_meta_blocks %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->mode, __entry->i_blocks,
- __entry->md_needed, __entry->reserved_data_blocks,
- __entry->reserved_meta_blocks)
-);
-
-TRACE_EVENT(ext4_da_release_space,
- TP_PROTO(struct inode *inode, int freed_blocks),
-
- TP_ARGS(inode, freed_blocks),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- __field( __u16, mode )
- __field( __u64, i_blocks )
- __field( int, freed_blocks )
- __field( int, reserved_data_blocks )
- __field( int, reserved_meta_blocks )
- __field( int, allocated_meta_blocks )
- ),
-
- TP_fast_assign(
- __entry->dev = inode->i_sb->s_dev;
- __entry->ino = inode->i_ino;
- __entry->mode = inode->i_mode;
- __entry->i_blocks = inode->i_blocks;
- __entry->freed_blocks = freed_blocks;
- __entry->reserved_data_blocks = EXT4_I(inode)->i_reserved_data_blocks;
- __entry->reserved_meta_blocks = EXT4_I(inode)->i_reserved_meta_blocks;
- __entry->allocated_meta_blocks = EXT4_I(inode)->i_allocated_meta_blocks;
- ),
-
- TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu freed_blocks %d "
- "reserved_data_blocks %d reserved_meta_blocks %d "
- "allocated_meta_blocks %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->mode, __entry->i_blocks,
- __entry->freed_blocks, __entry->reserved_data_blocks,
- __entry->reserved_meta_blocks, __entry->allocated_meta_blocks)
-);
-
-DECLARE_EVENT_CLASS(ext4__bitmap_load,
- TP_PROTO(struct super_block *sb, unsigned long group),
-
- TP_ARGS(sb, group),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( __u32, group )
-
- ),
-
- TP_fast_assign(
- __entry->dev = sb->s_dev;
- __entry->group = group;
- ),
-
- TP_printk("dev %d,%d group %u",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- __entry->group)
-);
-
-DEFINE_EVENT(ext4__bitmap_load, ext4_mb_bitmap_load,
-
- TP_PROTO(struct super_block *sb, unsigned long group),
-
- TP_ARGS(sb, group)
-);
-
-DEFINE_EVENT(ext4__bitmap_load, ext4_mb_buddy_bitmap_load,
-
- TP_PROTO(struct super_block *sb, unsigned long group),
-
- TP_ARGS(sb, group)
-);
-
-DEFINE_EVENT(ext4__bitmap_load, ext4_read_block_bitmap_load,
-
- TP_PROTO(struct super_block *sb, unsigned long group),
-
- TP_ARGS(sb, group)
-);
-
-DEFINE_EVENT(ext4__bitmap_load, ext4_load_inode_bitmap,
-
- TP_PROTO(struct super_block *sb, unsigned long group),
-
- TP_ARGS(sb, group)
-);
-
-TRACE_EVENT(ext4_direct_IO_enter,
- TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, int rw),
-
- TP_ARGS(inode, offset, len, rw),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( dev_t, dev )
- __field( loff_t, pos )
- __field( unsigned long, len )
- __field( int, rw )
- ),
-
- TP_fast_assign(
- __entry->ino = inode->i_ino;
- __entry->dev = inode->i_sb->s_dev;
- __entry->pos = offset;
- __entry->len = len;
- __entry->rw = rw;
- ),
-
- TP_printk("dev %d,%d ino %lu pos %lld len %lu rw %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->pos, __entry->len, __entry->rw)
-);
-
-TRACE_EVENT(ext4_direct_IO_exit,
- TP_PROTO(struct inode *inode, loff_t offset, unsigned long len,
- int rw, int ret),
-
- TP_ARGS(inode, offset, len, rw, ret),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( dev_t, dev )
- __field( loff_t, pos )
- __field( unsigned long, len )
- __field( int, rw )
- __field( int, ret )
- ),
-
- TP_fast_assign(
- __entry->ino = inode->i_ino;
- __entry->dev = inode->i_sb->s_dev;
- __entry->pos = offset;
- __entry->len = len;
- __entry->rw = rw;
- __entry->ret = ret;
- ),
-
- TP_printk("dev %d,%d ino %lu pos %lld len %lu rw %d ret %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->pos, __entry->len,
- __entry->rw, __entry->ret)
-);
-
-TRACE_EVENT(ext4_fallocate_enter,
- TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode),
-
- TP_ARGS(inode, offset, len, mode),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( dev_t, dev )
- __field( loff_t, pos )
- __field( loff_t, len )
- __field( int, mode )
- ),
-
- TP_fast_assign(
- __entry->ino = inode->i_ino;
- __entry->dev = inode->i_sb->s_dev;
- __entry->pos = offset;
- __entry->len = len;
- __entry->mode = mode;
- ),
-
- TP_printk("dev %d,%d ino %lu pos %lld len %lld mode %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino, __entry->pos,
- __entry->len, __entry->mode)
-);
-
-TRACE_EVENT(ext4_fallocate_exit,
- TP_PROTO(struct inode *inode, loff_t offset,
- unsigned int max_blocks, int ret),
-
- TP_ARGS(inode, offset, max_blocks, ret),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( dev_t, dev )
- __field( loff_t, pos )
- __field( unsigned int, blocks )
- __field( int, ret )
- ),
-
- TP_fast_assign(
- __entry->ino = inode->i_ino;
- __entry->dev = inode->i_sb->s_dev;
- __entry->pos = offset;
- __entry->blocks = max_blocks;
- __entry->ret = ret;
- ),
-
- TP_printk("dev %d,%d ino %lu pos %lld blocks %u ret %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->pos, __entry->blocks,
- __entry->ret)
-);
-
-TRACE_EVENT(ext4_unlink_enter,
- TP_PROTO(struct inode *parent, struct dentry *dentry),
-
- TP_ARGS(parent, dentry),
-
- TP_STRUCT__entry(
- __field( ino_t, parent )
- __field( ino_t, ino )
- __field( loff_t, size )
- __field( dev_t, dev )
- ),
-
- TP_fast_assign(
- __entry->parent = parent->i_ino;
- __entry->ino = dentry->d_inode->i_ino;
- __entry->size = dentry->d_inode->i_size;
- __entry->dev = dentry->d_inode->i_sb->s_dev;
- ),
-
- TP_printk("dev %d,%d ino %lu size %lld parent %lu",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino, __entry->size,
- (unsigned long) __entry->parent)
-);
-
-TRACE_EVENT(ext4_unlink_exit,
- TP_PROTO(struct dentry *dentry, int ret),
-
- TP_ARGS(dentry, ret),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( dev_t, dev )
- __field( int, ret )
- ),
-
- TP_fast_assign(
- __entry->ino = dentry->d_inode->i_ino;
- __entry->dev = dentry->d_inode->i_sb->s_dev;
- __entry->ret = ret;
- ),
-
- TP_printk("dev %d,%d ino %lu ret %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->ret)
-);
-
-DECLARE_EVENT_CLASS(ext4__truncate,
- TP_PROTO(struct inode *inode),
-
- TP_ARGS(inode),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( dev_t, dev )
- __field( __u64, blocks )
- ),
-
- TP_fast_assign(
- __entry->ino = inode->i_ino;
- __entry->dev = inode->i_sb->s_dev;
- __entry->blocks = inode->i_blocks;
- ),
-
- TP_printk("dev %d,%d ino %lu blocks %llu",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino, __entry->blocks)
-);
-
-DEFINE_EVENT(ext4__truncate, ext4_truncate_enter,
-
- TP_PROTO(struct inode *inode),
-
- TP_ARGS(inode)
-);
-
-DEFINE_EVENT(ext4__truncate, ext4_truncate_exit,
-
- TP_PROTO(struct inode *inode),
-
- TP_ARGS(inode)
-);
-
-/* 'ux' is the uninitialized extent. */
-TRACE_EVENT(ext4_ext_convert_to_initialized_enter,
- TP_PROTO(struct inode *inode, struct ext4_map_blocks *map,
- struct ext4_extent *ux),
-
- TP_ARGS(inode, map, ux),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( dev_t, dev )
- __field( ext4_lblk_t, m_lblk )
- __field( unsigned, m_len )
- __field( ext4_lblk_t, u_lblk )
- __field( unsigned, u_len )
- __field( ext4_fsblk_t, u_pblk )
- ),
-
- TP_fast_assign(
- __entry->ino = inode->i_ino;
- __entry->dev = inode->i_sb->s_dev;
- __entry->m_lblk = map->m_lblk;
- __entry->m_len = map->m_len;
- __entry->u_lblk = le32_to_cpu(ux->ee_block);
- __entry->u_len = ext4_ext_get_actual_len(ux);
- __entry->u_pblk = ext4_ext_pblock(ux);
- ),
-
- TP_printk("dev %d,%d ino %lu m_lblk %u m_len %u u_lblk %u u_len %u "
- "u_pblk %llu",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->m_lblk, __entry->m_len,
- __entry->u_lblk, __entry->u_len, __entry->u_pblk)
-);
-
-/*
- * 'ux' is the uninitialized extent.
- * 'ix' is the initialized extent to which blocks are transferred.
- */
-TRACE_EVENT(ext4_ext_convert_to_initialized_fastpath,
- TP_PROTO(struct inode *inode, struct ext4_map_blocks *map,
- struct ext4_extent *ux, struct ext4_extent *ix),
-
- TP_ARGS(inode, map, ux, ix),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( dev_t, dev )
- __field( ext4_lblk_t, m_lblk )
- __field( unsigned, m_len )
- __field( ext4_lblk_t, u_lblk )
- __field( unsigned, u_len )
- __field( ext4_fsblk_t, u_pblk )
- __field( ext4_lblk_t, i_lblk )
- __field( unsigned, i_len )
- __field( ext4_fsblk_t, i_pblk )
- ),
-
- TP_fast_assign(
- __entry->ino = inode->i_ino;
- __entry->dev = inode->i_sb->s_dev;
- __entry->m_lblk = map->m_lblk;
- __entry->m_len = map->m_len;
- __entry->u_lblk = le32_to_cpu(ux->ee_block);
- __entry->u_len = ext4_ext_get_actual_len(ux);
- __entry->u_pblk = ext4_ext_pblock(ux);
- __entry->i_lblk = le32_to_cpu(ix->ee_block);
- __entry->i_len = ext4_ext_get_actual_len(ix);
- __entry->i_pblk = ext4_ext_pblock(ix);
- ),
-
- TP_printk("dev %d,%d ino %lu m_lblk %u m_len %u "
- "u_lblk %u u_len %u u_pblk %llu "
- "i_lblk %u i_len %u i_pblk %llu ",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->m_lblk, __entry->m_len,
- __entry->u_lblk, __entry->u_len, __entry->u_pblk,
- __entry->i_lblk, __entry->i_len, __entry->i_pblk)
-);
-
-DECLARE_EVENT_CLASS(ext4__map_blocks_enter,
- TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
- unsigned int len, unsigned int flags),
-
- TP_ARGS(inode, lblk, len, flags),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( dev_t, dev )
- __field( ext4_lblk_t, lblk )
- __field( unsigned int, len )
- __field( unsigned int, flags )
- ),
-
- TP_fast_assign(
- __entry->ino = inode->i_ino;
- __entry->dev = inode->i_sb->s_dev;
- __entry->lblk = lblk;
- __entry->len = len;
- __entry->flags = flags;
- ),
-
- TP_printk("dev %d,%d ino %lu lblk %u len %u flags %u",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->lblk, __entry->len, __entry->flags)
-);
-
-DEFINE_EVENT(ext4__map_blocks_enter, ext4_ext_map_blocks_enter,
- TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
- unsigned len, unsigned flags),
-
- TP_ARGS(inode, lblk, len, flags)
-);
-
-DEFINE_EVENT(ext4__map_blocks_enter, ext4_ind_map_blocks_enter,
- TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
- unsigned len, unsigned flags),
-
- TP_ARGS(inode, lblk, len, flags)
-);
-
-DECLARE_EVENT_CLASS(ext4__map_blocks_exit,
- TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
- ext4_fsblk_t pblk, unsigned int len, int ret),
-
- TP_ARGS(inode, lblk, pblk, len, ret),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( dev_t, dev )
- __field( ext4_lblk_t, lblk )
- __field( ext4_fsblk_t, pblk )
- __field( unsigned int, len )
- __field( int, ret )
- ),
-
- TP_fast_assign(
- __entry->ino = inode->i_ino;
- __entry->dev = inode->i_sb->s_dev;
- __entry->lblk = lblk;
- __entry->pblk = pblk;
- __entry->len = len;
- __entry->ret = ret;
- ),
-
- TP_printk("dev %d,%d ino %lu lblk %u pblk %llu len %u ret %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->lblk, __entry->pblk,
- __entry->len, __entry->ret)
-);
-
-DEFINE_EVENT(ext4__map_blocks_exit, ext4_ext_map_blocks_exit,
- TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
- ext4_fsblk_t pblk, unsigned len, int ret),
-
- TP_ARGS(inode, lblk, pblk, len, ret)
-);
-
-DEFINE_EVENT(ext4__map_blocks_exit, ext4_ind_map_blocks_exit,
- TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
- ext4_fsblk_t pblk, unsigned len, int ret),
-
- TP_ARGS(inode, lblk, pblk, len, ret)
-);
-
-TRACE_EVENT(ext4_ext_load_extent,
- TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk),
-
- TP_ARGS(inode, lblk, pblk),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( dev_t, dev )
- __field( ext4_lblk_t, lblk )
- __field( ext4_fsblk_t, pblk )
- ),
-
- TP_fast_assign(
- __entry->ino = inode->i_ino;
- __entry->dev = inode->i_sb->s_dev;
- __entry->lblk = lblk;
- __entry->pblk = pblk;
- ),
-
- TP_printk("dev %d,%d ino %lu lblk %u pblk %llu",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- __entry->lblk, __entry->pblk)
-);
-
-TRACE_EVENT(ext4_load_inode,
- TP_PROTO(struct inode *inode),
-
- TP_ARGS(inode),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( dev_t, dev )
- ),
-
- TP_fast_assign(
- __entry->ino = inode->i_ino;
- __entry->dev = inode->i_sb->s_dev;
- ),
-
- TP_printk("dev %d,%d ino %ld",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino)
-);
-
-TRACE_EVENT(ext4_journal_start,
- TP_PROTO(struct super_block *sb, int nblocks, unsigned long IP),
-
- TP_ARGS(sb, nblocks, IP),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( int, nblocks )
- __field(unsigned long, ip )
- ),
-
- TP_fast_assign(
- __entry->dev = sb->s_dev;
- __entry->nblocks = nblocks;
- __entry->ip = IP;
- ),
-
- TP_printk("dev %d,%d nblocks %d caller %pF",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- __entry->nblocks, (void *)__entry->ip)
-);
-
-DECLARE_EVENT_CLASS(ext4__trim,
- TP_PROTO(struct super_block *sb,
- ext4_group_t group,
- ext4_grpblk_t start,
- ext4_grpblk_t len),
-
- TP_ARGS(sb, group, start, len),
-
- TP_STRUCT__entry(
- __field( int, dev_major )
- __field( int, dev_minor )
- __field( __u32, group )
- __field( int, start )
- __field( int, len )
- ),
-
- TP_fast_assign(
- __entry->dev_major = MAJOR(sb->s_dev);
- __entry->dev_minor = MINOR(sb->s_dev);
- __entry->group = group;
- __entry->start = start;
- __entry->len = len;
- ),
-
- TP_printk("dev %d,%d group %u, start %d, len %d",
- __entry->dev_major, __entry->dev_minor,
- __entry->group, __entry->start, __entry->len)
-);
-
-DEFINE_EVENT(ext4__trim, ext4_trim_extent,
-
- TP_PROTO(struct super_block *sb,
- ext4_group_t group,
- ext4_grpblk_t start,
- ext4_grpblk_t len),
-
- TP_ARGS(sb, group, start, len)
-);
-
-DEFINE_EVENT(ext4__trim, ext4_trim_all_free,
-
- TP_PROTO(struct super_block *sb,
- ext4_group_t group,
- ext4_grpblk_t start,
- ext4_grpblk_t len),
-
- TP_ARGS(sb, group, start, len)
-);
-
-TRACE_EVENT(ext4_ext_handle_uninitialized_extents,
- TP_PROTO(struct inode *inode, struct ext4_map_blocks *map,
- unsigned int allocated, ext4_fsblk_t newblock),
-
- TP_ARGS(inode, map, allocated, newblock),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( dev_t, dev )
- __field( ext4_lblk_t, lblk )
- __field( ext4_fsblk_t, pblk )
- __field( unsigned int, len )
- __field( int, flags )
- __field( unsigned int, allocated )
- __field( ext4_fsblk_t, newblk )
- ),
-
- TP_fast_assign(
- __entry->ino = inode->i_ino;
- __entry->dev = inode->i_sb->s_dev;
- __entry->lblk = map->m_lblk;
- __entry->pblk = map->m_pblk;
- __entry->len = map->m_len;
- __entry->flags = map->m_flags;
- __entry->allocated = allocated;
- __entry->newblk = newblock;
- ),
-
- TP_printk("dev %d,%d ino %lu m_lblk %u m_pblk %llu m_len %u flags %d"
- "allocated %d newblock %llu",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- (unsigned) __entry->lblk, (unsigned long long) __entry->pblk,
- __entry->len, __entry->flags,
- (unsigned int) __entry->allocated,
- (unsigned long long) __entry->newblk)
-);
-
-TRACE_EVENT(ext4_get_implied_cluster_alloc_exit,
- TP_PROTO(struct super_block *sb, struct ext4_map_blocks *map, int ret),
-
- TP_ARGS(sb, map, ret),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ext4_lblk_t, lblk )
- __field( ext4_fsblk_t, pblk )
- __field( unsigned int, len )
- __field( unsigned int, flags )
- __field( int, ret )
- ),
-
- TP_fast_assign(
- __entry->dev = sb->s_dev;
- __entry->lblk = map->m_lblk;
- __entry->pblk = map->m_pblk;
- __entry->len = map->m_len;
- __entry->flags = map->m_flags;
- __entry->ret = ret;
- ),
-
- TP_printk("dev %d,%d m_lblk %u m_pblk %llu m_len %u m_flags %u ret %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- __entry->lblk, (unsigned long long) __entry->pblk,
- __entry->len, __entry->flags, __entry->ret)
-);
-
-TRACE_EVENT(ext4_ext_put_in_cache,
- TP_PROTO(struct inode *inode, ext4_lblk_t lblk, unsigned int len,
- ext4_fsblk_t start),
-
- TP_ARGS(inode, lblk, len, start),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( dev_t, dev )
- __field( ext4_lblk_t, lblk )
- __field( unsigned int, len )
- __field( ext4_fsblk_t, start )
- ),
-
- TP_fast_assign(
- __entry->ino = inode->i_ino;
- __entry->dev = inode->i_sb->s_dev;
- __entry->lblk = lblk;
- __entry->len = len;
- __entry->start = start;
- ),
-
- TP_printk("dev %d,%d ino %lu lblk %u len %u start %llu",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- (unsigned) __entry->lblk,
- __entry->len,
- (unsigned long long) __entry->start)
-);
-
-TRACE_EVENT(ext4_ext_in_cache,
- TP_PROTO(struct inode *inode, ext4_lblk_t lblk, int ret),
-
- TP_ARGS(inode, lblk, ret),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( dev_t, dev )
- __field( ext4_lblk_t, lblk )
- __field( int, ret )
- ),
-
- TP_fast_assign(
- __entry->ino = inode->i_ino;
- __entry->dev = inode->i_sb->s_dev;
- __entry->lblk = lblk;
- __entry->ret = ret;
- ),
-
- TP_printk("dev %d,%d ino %lu lblk %u ret %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- (unsigned) __entry->lblk,
- __entry->ret)
-
-);
-
-TRACE_EVENT(ext4_find_delalloc_range,
- TP_PROTO(struct inode *inode, ext4_lblk_t from, ext4_lblk_t to,
- int reverse, int found, ext4_lblk_t found_blk),
-
- TP_ARGS(inode, from, to, reverse, found, found_blk),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( dev_t, dev )
- __field( ext4_lblk_t, from )
- __field( ext4_lblk_t, to )
- __field( int, reverse )
- __field( int, found )
- __field( ext4_lblk_t, found_blk )
- ),
-
- TP_fast_assign(
- __entry->ino = inode->i_ino;
- __entry->dev = inode->i_sb->s_dev;
- __entry->from = from;
- __entry->to = to;
- __entry->reverse = reverse;
- __entry->found = found;
- __entry->found_blk = found_blk;
- ),
-
- TP_printk("dev %d,%d ino %lu from %u to %u reverse %d found %d "
- "(blk = %u)",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- (unsigned) __entry->from, (unsigned) __entry->to,
- __entry->reverse, __entry->found,
- (unsigned) __entry->found_blk)
-);
-
-TRACE_EVENT(ext4_get_reserved_cluster_alloc,
- TP_PROTO(struct inode *inode, ext4_lblk_t lblk, unsigned int len),
-
- TP_ARGS(inode, lblk, len),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( dev_t, dev )
- __field( ext4_lblk_t, lblk )
- __field( unsigned int, len )
- ),
-
- TP_fast_assign(
- __entry->ino = inode->i_ino;
- __entry->dev = inode->i_sb->s_dev;
- __entry->lblk = lblk;
- __entry->len = len;
- ),
-
- TP_printk("dev %d,%d ino %lu lblk %u len %u",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- (unsigned) __entry->lblk,
- __entry->len)
-);
-
-TRACE_EVENT(ext4_ext_show_extent,
- TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk,
- unsigned short len),
-
- TP_ARGS(inode, lblk, pblk, len),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( dev_t, dev )
- __field( ext4_lblk_t, lblk )
- __field( ext4_fsblk_t, pblk )
- __field( unsigned short, len )
- ),
-
- TP_fast_assign(
- __entry->ino = inode->i_ino;
- __entry->dev = inode->i_sb->s_dev;
- __entry->lblk = lblk;
- __entry->pblk = pblk;
- __entry->len = len;
- ),
-
- TP_printk("dev %d,%d ino %lu lblk %u pblk %llu len %u",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- (unsigned) __entry->lblk,
- (unsigned long long) __entry->pblk,
- (unsigned short) __entry->len)
-);
-
-TRACE_EVENT(ext4_remove_blocks,
- TP_PROTO(struct inode *inode, struct ext4_extent *ex,
- ext4_lblk_t from, ext4_fsblk_t to,
- ext4_fsblk_t partial_cluster),
-
- TP_ARGS(inode, ex, from, to, partial_cluster),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( dev_t, dev )
- __field( ext4_lblk_t, ee_lblk )
- __field( ext4_fsblk_t, ee_pblk )
- __field( unsigned short, ee_len )
- __field( ext4_lblk_t, from )
- __field( ext4_lblk_t, to )
- __field( ext4_fsblk_t, partial )
- ),
-
- TP_fast_assign(
- __entry->ino = inode->i_ino;
- __entry->dev = inode->i_sb->s_dev;
- __entry->ee_lblk = cpu_to_le32(ex->ee_block);
- __entry->ee_pblk = ext4_ext_pblock(ex);
- __entry->ee_len = ext4_ext_get_actual_len(ex);
- __entry->from = from;
- __entry->to = to;
- __entry->partial = partial_cluster;
- ),
-
- TP_printk("dev %d,%d ino %lu extent [%u(%llu), %u]"
- "from %u to %u partial_cluster %u",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- (unsigned) __entry->ee_lblk,
- (unsigned long long) __entry->ee_pblk,
- (unsigned short) __entry->ee_len,
- (unsigned) __entry->from,
- (unsigned) __entry->to,
- (unsigned) __entry->partial)
-);
-
-TRACE_EVENT(ext4_ext_rm_leaf,
- TP_PROTO(struct inode *inode, ext4_lblk_t start,
- struct ext4_extent *ex, ext4_fsblk_t partial_cluster),
-
- TP_ARGS(inode, start, ex, partial_cluster),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( dev_t, dev )
- __field( ext4_lblk_t, start )
- __field( ext4_lblk_t, ee_lblk )
- __field( ext4_fsblk_t, ee_pblk )
- __field( short, ee_len )
- __field( ext4_fsblk_t, partial )
- ),
-
- TP_fast_assign(
- __entry->ino = inode->i_ino;
- __entry->dev = inode->i_sb->s_dev;
- __entry->start = start;
- __entry->ee_lblk = le32_to_cpu(ex->ee_block);
- __entry->ee_pblk = ext4_ext_pblock(ex);
- __entry->ee_len = ext4_ext_get_actual_len(ex);
- __entry->partial = partial_cluster;
- ),
-
- TP_printk("dev %d,%d ino %lu start_lblk %u last_extent [%u(%llu), %u]"
- "partial_cluster %u",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- (unsigned) __entry->start,
- (unsigned) __entry->ee_lblk,
- (unsigned long long) __entry->ee_pblk,
- (unsigned short) __entry->ee_len,
- (unsigned) __entry->partial)
-);
-
-TRACE_EVENT(ext4_ext_rm_idx,
- TP_PROTO(struct inode *inode, ext4_fsblk_t pblk),
-
- TP_ARGS(inode, pblk),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( dev_t, dev )
- __field( ext4_fsblk_t, pblk )
- ),
-
- TP_fast_assign(
- __entry->ino = inode->i_ino;
- __entry->dev = inode->i_sb->s_dev;
- __entry->pblk = pblk;
- ),
-
- TP_printk("dev %d,%d ino %lu index_pblk %llu",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- (unsigned long long) __entry->pblk)
-);
-
-TRACE_EVENT(ext4_ext_remove_space,
- TP_PROTO(struct inode *inode, ext4_lblk_t start, int depth),
-
- TP_ARGS(inode, start, depth),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( dev_t, dev )
- __field( ext4_lblk_t, start )
- __field( int, depth )
- ),
-
- TP_fast_assign(
- __entry->ino = inode->i_ino;
- __entry->dev = inode->i_sb->s_dev;
- __entry->start = start;
- __entry->depth = depth;
- ),
-
- TP_printk("dev %d,%d ino %lu since %u depth %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- (unsigned) __entry->start,
- __entry->depth)
-);
-
-TRACE_EVENT(ext4_ext_remove_space_done,
- TP_PROTO(struct inode *inode, ext4_lblk_t start, int depth,
- ext4_lblk_t partial, unsigned short eh_entries),
-
- TP_ARGS(inode, start, depth, partial, eh_entries),
-
- TP_STRUCT__entry(
- __field( ino_t, ino )
- __field( dev_t, dev )
- __field( ext4_lblk_t, start )
- __field( int, depth )
- __field( ext4_lblk_t, partial )
- __field( unsigned short, eh_entries )
- ),
-
- TP_fast_assign(
- __entry->ino = inode->i_ino;
- __entry->dev = inode->i_sb->s_dev;
- __entry->start = start;
- __entry->depth = depth;
- __entry->partial = partial;
- __entry->eh_entries = eh_entries;
- ),
-
- TP_printk("dev %d,%d ino %lu since %u depth %d partial %u "
- "remaining_entries %u",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino,
- (unsigned) __entry->start,
- __entry->depth,
- (unsigned) __entry->partial,
- (unsigned short) __entry->eh_entries)
-);
-
-#endif /* _TRACE_EXT4_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/gfpflags.h b/ANDROID_3.4.5/include/trace/events/gfpflags.h
deleted file mode 100644
index 9fe3a366..00000000
--- a/ANDROID_3.4.5/include/trace/events/gfpflags.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * The order of these masks is important. Matching masks will be seen
- * first and the left over flags will end up showing by themselves.
- *
- * For example, if we have GFP_KERNEL before GFP_USER we wil get:
- *
- * GFP_KERNEL|GFP_HARDWALL
- *
- * Thus most bits set go first.
- */
-#define show_gfp_flags(flags) \
- (flags) ? __print_flags(flags, "|", \
- {(unsigned long)GFP_TRANSHUGE, "GFP_TRANSHUGE"}, \
- {(unsigned long)GFP_HIGHUSER_MOVABLE, "GFP_HIGHUSER_MOVABLE"}, \
- {(unsigned long)GFP_HIGHUSER, "GFP_HIGHUSER"}, \
- {(unsigned long)GFP_USER, "GFP_USER"}, \
- {(unsigned long)GFP_TEMPORARY, "GFP_TEMPORARY"}, \
- {(unsigned long)GFP_KERNEL, "GFP_KERNEL"}, \
- {(unsigned long)GFP_NOFS, "GFP_NOFS"}, \
- {(unsigned long)GFP_ATOMIC, "GFP_ATOMIC"}, \
- {(unsigned long)GFP_NOIO, "GFP_NOIO"}, \
- {(unsigned long)__GFP_HIGH, "GFP_HIGH"}, \
- {(unsigned long)__GFP_WAIT, "GFP_WAIT"}, \
- {(unsigned long)__GFP_IO, "GFP_IO"}, \
- {(unsigned long)__GFP_COLD, "GFP_COLD"}, \
- {(unsigned long)__GFP_NOWARN, "GFP_NOWARN"}, \
- {(unsigned long)__GFP_REPEAT, "GFP_REPEAT"}, \
- {(unsigned long)__GFP_NOFAIL, "GFP_NOFAIL"}, \
- {(unsigned long)__GFP_NORETRY, "GFP_NORETRY"}, \
- {(unsigned long)__GFP_COMP, "GFP_COMP"}, \
- {(unsigned long)__GFP_ZERO, "GFP_ZERO"}, \
- {(unsigned long)__GFP_NOMEMALLOC, "GFP_NOMEMALLOC"}, \
- {(unsigned long)__GFP_HARDWALL, "GFP_HARDWALL"}, \
- {(unsigned long)__GFP_THISNODE, "GFP_THISNODE"}, \
- {(unsigned long)__GFP_RECLAIMABLE, "GFP_RECLAIMABLE"}, \
- {(unsigned long)__GFP_MOVABLE, "GFP_MOVABLE"}, \
- {(unsigned long)__GFP_NOTRACK, "GFP_NOTRACK"}, \
- {(unsigned long)__GFP_NO_KSWAPD, "GFP_NO_KSWAPD"}, \
- {(unsigned long)__GFP_OTHER_NODE, "GFP_OTHER_NODE"} \
- ) : "GFP_NOWAIT"
-
diff --git a/ANDROID_3.4.5/include/trace/events/gpio.h b/ANDROID_3.4.5/include/trace/events/gpio.h
deleted file mode 100644
index 927a8ad9..00000000
--- a/ANDROID_3.4.5/include/trace/events/gpio.h
+++ /dev/null
@@ -1,56 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM gpio
-
-#if !defined(_TRACE_GPIO_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_GPIO_H
-
-#include <linux/tracepoint.h>
-
-TRACE_EVENT(gpio_direction,
-
- TP_PROTO(unsigned gpio, int in, int err),
-
- TP_ARGS(gpio, in, err),
-
- TP_STRUCT__entry(
- __field(unsigned, gpio)
- __field(int, in)
- __field(int, err)
- ),
-
- TP_fast_assign(
- __entry->gpio = gpio;
- __entry->in = in;
- __entry->err = err;
- ),
-
- TP_printk("%u %3s (%d)", __entry->gpio,
- __entry->in ? "in" : "out", __entry->err)
-);
-
-TRACE_EVENT(gpio_value,
-
- TP_PROTO(unsigned gpio, int get, int value),
-
- TP_ARGS(gpio, get, value),
-
- TP_STRUCT__entry(
- __field(unsigned, gpio)
- __field(int, get)
- __field(int, value)
- ),
-
- TP_fast_assign(
- __entry->gpio = gpio;
- __entry->get = get;
- __entry->value = value;
- ),
-
- TP_printk("%u %3s %d", __entry->gpio,
- __entry->get ? "get" : "set", __entry->value)
-);
-
-#endif /* if !defined(_TRACE_GPIO_H) || defined(TRACE_HEADER_MULTI_READ) */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/irq.h b/ANDROID_3.4.5/include/trace/events/irq.h
deleted file mode 100644
index 1c09820d..00000000
--- a/ANDROID_3.4.5/include/trace/events/irq.h
+++ /dev/null
@@ -1,150 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM irq
-
-#if !defined(_TRACE_IRQ_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_IRQ_H
-
-#include <linux/tracepoint.h>
-
-struct irqaction;
-struct softirq_action;
-
-#define softirq_name(sirq) { sirq##_SOFTIRQ, #sirq }
-#define show_softirq_name(val) \
- __print_symbolic(val, \
- softirq_name(HI), \
- softirq_name(TIMER), \
- softirq_name(NET_TX), \
- softirq_name(NET_RX), \
- softirq_name(BLOCK), \
- softirq_name(BLOCK_IOPOLL), \
- softirq_name(TASKLET), \
- softirq_name(SCHED), \
- softirq_name(HRTIMER), \
- softirq_name(RCU))
-
-/**
- * irq_handler_entry - called immediately before the irq action handler
- * @irq: irq number
- * @action: pointer to struct irqaction
- *
- * The struct irqaction pointed to by @action contains various
- * information about the handler, including the device name,
- * @action->name, and the device id, @action->dev_id. When used in
- * conjunction with the irq_handler_exit tracepoint, we can figure
- * out irq handler latencies.
- */
-TRACE_EVENT(irq_handler_entry,
-
- TP_PROTO(int irq, struct irqaction *action),
-
- TP_ARGS(irq, action),
-
- TP_STRUCT__entry(
- __field( int, irq )
- __string( name, action->name )
- ),
-
- TP_fast_assign(
- __entry->irq = irq;
- __assign_str(name, action->name);
- ),
-
- TP_printk("irq=%d name=%s", __entry->irq, __get_str(name))
-);
-
-/**
- * irq_handler_exit - called immediately after the irq action handler returns
- * @irq: irq number
- * @action: pointer to struct irqaction
- * @ret: return value
- *
- * If the @ret value is set to IRQ_HANDLED, then we know that the corresponding
- * @action->handler scuccessully handled this irq. Otherwise, the irq might be
- * a shared irq line, or the irq was not handled successfully. Can be used in
- * conjunction with the irq_handler_entry to understand irq handler latencies.
- */
-TRACE_EVENT(irq_handler_exit,
-
- TP_PROTO(int irq, struct irqaction *action, int ret),
-
- TP_ARGS(irq, action, ret),
-
- TP_STRUCT__entry(
- __field( int, irq )
- __field( int, ret )
- ),
-
- TP_fast_assign(
- __entry->irq = irq;
- __entry->ret = ret;
- ),
-
- TP_printk("irq=%d ret=%s",
- __entry->irq, __entry->ret ? "handled" : "unhandled")
-);
-
-DECLARE_EVENT_CLASS(softirq,
-
- TP_PROTO(unsigned int vec_nr),
-
- TP_ARGS(vec_nr),
-
- TP_STRUCT__entry(
- __field( unsigned int, vec )
- ),
-
- TP_fast_assign(
- __entry->vec = vec_nr;
- ),
-
- TP_printk("vec=%u [action=%s]", __entry->vec,
- show_softirq_name(__entry->vec))
-);
-
-/**
- * softirq_entry - called immediately before the softirq handler
- * @vec_nr: softirq vector number
- *
- * When used in combination with the softirq_exit tracepoint
- * we can determine the softirq handler runtine.
- */
-DEFINE_EVENT(softirq, softirq_entry,
-
- TP_PROTO(unsigned int vec_nr),
-
- TP_ARGS(vec_nr)
-);
-
-/**
- * softirq_exit - called immediately after the softirq handler returns
- * @vec_nr: softirq vector number
- *
- * When used in combination with the softirq_entry tracepoint
- * we can determine the softirq handler runtine.
- */
-DEFINE_EVENT(softirq, softirq_exit,
-
- TP_PROTO(unsigned int vec_nr),
-
- TP_ARGS(vec_nr)
-);
-
-/**
- * softirq_raise - called immediately when a softirq is raised
- * @vec_nr: softirq vector number
- *
- * When used in combination with the softirq_entry tracepoint
- * we can determine the softirq raise to run latency.
- */
-DEFINE_EVENT(softirq, softirq_raise,
-
- TP_PROTO(unsigned int vec_nr),
-
- TP_ARGS(vec_nr)
-);
-
-#endif /* _TRACE_IRQ_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/jbd.h b/ANDROID_3.4.5/include/trace/events/jbd.h
deleted file mode 100644
index aff64d82..00000000
--- a/ANDROID_3.4.5/include/trace/events/jbd.h
+++ /dev/null
@@ -1,203 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM jbd
-
-#if !defined(_TRACE_JBD_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_JBD_H
-
-#include <linux/jbd.h>
-#include <linux/tracepoint.h>
-
-TRACE_EVENT(jbd_checkpoint,
-
- TP_PROTO(journal_t *journal, int result),
-
- TP_ARGS(journal, result),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( int, result )
- ),
-
- TP_fast_assign(
- __entry->dev = journal->j_fs_dev->bd_dev;
- __entry->result = result;
- ),
-
- TP_printk("dev %d,%d result %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- __entry->result)
-);
-
-DECLARE_EVENT_CLASS(jbd_commit,
-
- TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
-
- TP_ARGS(journal, commit_transaction),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( char, sync_commit )
- __field( int, transaction )
- ),
-
- TP_fast_assign(
- __entry->dev = journal->j_fs_dev->bd_dev;
- __entry->sync_commit = commit_transaction->t_synchronous_commit;
- __entry->transaction = commit_transaction->t_tid;
- ),
-
- TP_printk("dev %d,%d transaction %d sync %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- __entry->transaction, __entry->sync_commit)
-);
-
-DEFINE_EVENT(jbd_commit, jbd_start_commit,
-
- TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
-
- TP_ARGS(journal, commit_transaction)
-);
-
-DEFINE_EVENT(jbd_commit, jbd_commit_locking,
-
- TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
-
- TP_ARGS(journal, commit_transaction)
-);
-
-DEFINE_EVENT(jbd_commit, jbd_commit_flushing,
-
- TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
-
- TP_ARGS(journal, commit_transaction)
-);
-
-DEFINE_EVENT(jbd_commit, jbd_commit_logging,
-
- TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
-
- TP_ARGS(journal, commit_transaction)
-);
-
-TRACE_EVENT(jbd_drop_transaction,
-
- TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
-
- TP_ARGS(journal, commit_transaction),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( char, sync_commit )
- __field( int, transaction )
- ),
-
- TP_fast_assign(
- __entry->dev = journal->j_fs_dev->bd_dev;
- __entry->sync_commit = commit_transaction->t_synchronous_commit;
- __entry->transaction = commit_transaction->t_tid;
- ),
-
- TP_printk("dev %d,%d transaction %d sync %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- __entry->transaction, __entry->sync_commit)
-);
-
-TRACE_EVENT(jbd_end_commit,
- TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
-
- TP_ARGS(journal, commit_transaction),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( char, sync_commit )
- __field( int, transaction )
- __field( int, head )
- ),
-
- TP_fast_assign(
- __entry->dev = journal->j_fs_dev->bd_dev;
- __entry->sync_commit = commit_transaction->t_synchronous_commit;
- __entry->transaction = commit_transaction->t_tid;
- __entry->head = journal->j_tail_sequence;
- ),
-
- TP_printk("dev %d,%d transaction %d sync %d head %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- __entry->transaction, __entry->sync_commit, __entry->head)
-);
-
-TRACE_EVENT(jbd_do_submit_data,
- TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
-
- TP_ARGS(journal, commit_transaction),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( char, sync_commit )
- __field( int, transaction )
- ),
-
- TP_fast_assign(
- __entry->dev = journal->j_fs_dev->bd_dev;
- __entry->sync_commit = commit_transaction->t_synchronous_commit;
- __entry->transaction = commit_transaction->t_tid;
- ),
-
- TP_printk("dev %d,%d transaction %d sync %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- __entry->transaction, __entry->sync_commit)
-);
-
-TRACE_EVENT(jbd_cleanup_journal_tail,
-
- TP_PROTO(journal_t *journal, tid_t first_tid,
- unsigned long block_nr, unsigned long freed),
-
- TP_ARGS(journal, first_tid, block_nr, freed),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( tid_t, tail_sequence )
- __field( tid_t, first_tid )
- __field(unsigned long, block_nr )
- __field(unsigned long, freed )
- ),
-
- TP_fast_assign(
- __entry->dev = journal->j_fs_dev->bd_dev;
- __entry->tail_sequence = journal->j_tail_sequence;
- __entry->first_tid = first_tid;
- __entry->block_nr = block_nr;
- __entry->freed = freed;
- ),
-
- TP_printk("dev %d,%d from %u to %u offset %lu freed %lu",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- __entry->tail_sequence, __entry->first_tid,
- __entry->block_nr, __entry->freed)
-);
-
-TRACE_EVENT(jbd_update_superblock_end,
- TP_PROTO(journal_t *journal, int wait),
-
- TP_ARGS(journal, wait),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( int, wait )
- ),
-
- TP_fast_assign(
- __entry->dev = journal->j_fs_dev->bd_dev;
- __entry->wait = wait;
- ),
-
- TP_printk("dev %d,%d wait %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- __entry->wait)
-);
-
-#endif /* _TRACE_JBD_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/jbd2.h b/ANDROID_3.4.5/include/trace/events/jbd2.h
deleted file mode 100644
index 127993db..00000000
--- a/ANDROID_3.4.5/include/trace/events/jbd2.h
+++ /dev/null
@@ -1,262 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM jbd2
-
-#if !defined(_TRACE_JBD2_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_JBD2_H
-
-#include <linux/jbd2.h>
-#include <linux/tracepoint.h>
-
-struct transaction_chp_stats_s;
-struct transaction_run_stats_s;
-
-TRACE_EVENT(jbd2_checkpoint,
-
- TP_PROTO(journal_t *journal, int result),
-
- TP_ARGS(journal, result),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( int, result )
- ),
-
- TP_fast_assign(
- __entry->dev = journal->j_fs_dev->bd_dev;
- __entry->result = result;
- ),
-
- TP_printk("dev %d,%d result %d",
- MAJOR(__entry->dev), MINOR(__entry->dev), __entry->result)
-);
-
-DECLARE_EVENT_CLASS(jbd2_commit,
-
- TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
-
- TP_ARGS(journal, commit_transaction),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( char, sync_commit )
- __field( int, transaction )
- ),
-
- TP_fast_assign(
- __entry->dev = journal->j_fs_dev->bd_dev;
- __entry->sync_commit = commit_transaction->t_synchronous_commit;
- __entry->transaction = commit_transaction->t_tid;
- ),
-
- TP_printk("dev %d,%d transaction %d sync %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- __entry->transaction, __entry->sync_commit)
-);
-
-DEFINE_EVENT(jbd2_commit, jbd2_start_commit,
-
- TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
-
- TP_ARGS(journal, commit_transaction)
-);
-
-DEFINE_EVENT(jbd2_commit, jbd2_commit_locking,
-
- TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
-
- TP_ARGS(journal, commit_transaction)
-);
-
-DEFINE_EVENT(jbd2_commit, jbd2_commit_flushing,
-
- TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
-
- TP_ARGS(journal, commit_transaction)
-);
-
-DEFINE_EVENT(jbd2_commit, jbd2_commit_logging,
-
- TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
-
- TP_ARGS(journal, commit_transaction)
-);
-
-DEFINE_EVENT(jbd2_commit, jbd2_drop_transaction,
-
- TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
-
- TP_ARGS(journal, commit_transaction)
-);
-
-TRACE_EVENT(jbd2_end_commit,
- TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
-
- TP_ARGS(journal, commit_transaction),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( char, sync_commit )
- __field( int, transaction )
- __field( int, head )
- ),
-
- TP_fast_assign(
- __entry->dev = journal->j_fs_dev->bd_dev;
- __entry->sync_commit = commit_transaction->t_synchronous_commit;
- __entry->transaction = commit_transaction->t_tid;
- __entry->head = journal->j_tail_sequence;
- ),
-
- TP_printk("dev %d,%d transaction %d sync %d head %d",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- __entry->transaction, __entry->sync_commit, __entry->head)
-);
-
-TRACE_EVENT(jbd2_submit_inode_data,
- TP_PROTO(struct inode *inode),
-
- TP_ARGS(inode),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( ino_t, ino )
- ),
-
- TP_fast_assign(
- __entry->dev = inode->i_sb->s_dev;
- __entry->ino = inode->i_ino;
- ),
-
- TP_printk("dev %d,%d ino %lu",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- (unsigned long) __entry->ino)
-);
-
-TRACE_EVENT(jbd2_run_stats,
- TP_PROTO(dev_t dev, unsigned long tid,
- struct transaction_run_stats_s *stats),
-
- TP_ARGS(dev, tid, stats),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( unsigned long, tid )
- __field( unsigned long, wait )
- __field( unsigned long, running )
- __field( unsigned long, locked )
- __field( unsigned long, flushing )
- __field( unsigned long, logging )
- __field( __u32, handle_count )
- __field( __u32, blocks )
- __field( __u32, blocks_logged )
- ),
-
- TP_fast_assign(
- __entry->dev = dev;
- __entry->tid = tid;
- __entry->wait = stats->rs_wait;
- __entry->running = stats->rs_running;
- __entry->locked = stats->rs_locked;
- __entry->flushing = stats->rs_flushing;
- __entry->logging = stats->rs_logging;
- __entry->handle_count = stats->rs_handle_count;
- __entry->blocks = stats->rs_blocks;
- __entry->blocks_logged = stats->rs_blocks_logged;
- ),
-
- TP_printk("dev %d,%d tid %lu wait %u running %u locked %u flushing %u "
- "logging %u handle_count %u blocks %u blocks_logged %u",
- MAJOR(__entry->dev), MINOR(__entry->dev), __entry->tid,
- jiffies_to_msecs(__entry->wait),
- jiffies_to_msecs(__entry->running),
- jiffies_to_msecs(__entry->locked),
- jiffies_to_msecs(__entry->flushing),
- jiffies_to_msecs(__entry->logging),
- __entry->handle_count, __entry->blocks,
- __entry->blocks_logged)
-);
-
-TRACE_EVENT(jbd2_checkpoint_stats,
- TP_PROTO(dev_t dev, unsigned long tid,
- struct transaction_chp_stats_s *stats),
-
- TP_ARGS(dev, tid, stats),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( unsigned long, tid )
- __field( unsigned long, chp_time )
- __field( __u32, forced_to_close )
- __field( __u32, written )
- __field( __u32, dropped )
- ),
-
- TP_fast_assign(
- __entry->dev = dev;
- __entry->tid = tid;
- __entry->chp_time = stats->cs_chp_time;
- __entry->forced_to_close= stats->cs_forced_to_close;
- __entry->written = stats->cs_written;
- __entry->dropped = stats->cs_dropped;
- ),
-
- TP_printk("dev %d,%d tid %lu chp_time %u forced_to_close %u "
- "written %u dropped %u",
- MAJOR(__entry->dev), MINOR(__entry->dev), __entry->tid,
- jiffies_to_msecs(__entry->chp_time),
- __entry->forced_to_close, __entry->written, __entry->dropped)
-);
-
-TRACE_EVENT(jbd2_update_log_tail,
-
- TP_PROTO(journal_t *journal, tid_t first_tid,
- unsigned long block_nr, unsigned long freed),
-
- TP_ARGS(journal, first_tid, block_nr, freed),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( tid_t, tail_sequence )
- __field( tid_t, first_tid )
- __field(unsigned long, block_nr )
- __field(unsigned long, freed )
- ),
-
- TP_fast_assign(
- __entry->dev = journal->j_fs_dev->bd_dev;
- __entry->tail_sequence = journal->j_tail_sequence;
- __entry->first_tid = first_tid;
- __entry->block_nr = block_nr;
- __entry->freed = freed;
- ),
-
- TP_printk("dev %d,%d from %u to %u offset %lu freed %lu",
- MAJOR(__entry->dev), MINOR(__entry->dev),
- __entry->tail_sequence, __entry->first_tid,
- __entry->block_nr, __entry->freed)
-);
-
-TRACE_EVENT(jbd2_write_superblock,
-
- TP_PROTO(journal_t *journal, int write_op),
-
- TP_ARGS(journal, write_op),
-
- TP_STRUCT__entry(
- __field( dev_t, dev )
- __field( int, write_op )
- ),
-
- TP_fast_assign(
- __entry->dev = journal->j_fs_dev->bd_dev;
- __entry->write_op = write_op;
- ),
-
- TP_printk("dev %d,%d write_op %x", MAJOR(__entry->dev),
- MINOR(__entry->dev), __entry->write_op)
-);
-
-#endif /* _TRACE_JBD2_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/kmem.h b/ANDROID_3.4.5/include/trace/events/kmem.h
deleted file mode 100644
index 5f889f16..00000000
--- a/ANDROID_3.4.5/include/trace/events/kmem.h
+++ /dev/null
@@ -1,308 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM kmem
-
-#if !defined(_TRACE_KMEM_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_KMEM_H
-
-#include <linux/types.h>
-#include <linux/tracepoint.h>
-#include "gfpflags.h"
-
-DECLARE_EVENT_CLASS(kmem_alloc,
-
- TP_PROTO(unsigned long call_site,
- const void *ptr,
- size_t bytes_req,
- size_t bytes_alloc,
- gfp_t gfp_flags),
-
- TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags),
-
- TP_STRUCT__entry(
- __field( unsigned long, call_site )
- __field( const void *, ptr )
- __field( size_t, bytes_req )
- __field( size_t, bytes_alloc )
- __field( gfp_t, gfp_flags )
- ),
-
- TP_fast_assign(
- __entry->call_site = call_site;
- __entry->ptr = ptr;
- __entry->bytes_req = bytes_req;
- __entry->bytes_alloc = bytes_alloc;
- __entry->gfp_flags = gfp_flags;
- ),
-
- TP_printk("call_site=%lx ptr=%p bytes_req=%zu bytes_alloc=%zu gfp_flags=%s",
- __entry->call_site,
- __entry->ptr,
- __entry->bytes_req,
- __entry->bytes_alloc,
- show_gfp_flags(__entry->gfp_flags))
-);
-
-DEFINE_EVENT(kmem_alloc, kmalloc,
-
- TP_PROTO(unsigned long call_site, const void *ptr,
- size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags),
-
- TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags)
-);
-
-DEFINE_EVENT(kmem_alloc, kmem_cache_alloc,
-
- TP_PROTO(unsigned long call_site, const void *ptr,
- size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags),
-
- TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags)
-);
-
-DECLARE_EVENT_CLASS(kmem_alloc_node,
-
- TP_PROTO(unsigned long call_site,
- const void *ptr,
- size_t bytes_req,
- size_t bytes_alloc,
- gfp_t gfp_flags,
- int node),
-
- TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node),
-
- TP_STRUCT__entry(
- __field( unsigned long, call_site )
- __field( const void *, ptr )
- __field( size_t, bytes_req )
- __field( size_t, bytes_alloc )
- __field( gfp_t, gfp_flags )
- __field( int, node )
- ),
-
- TP_fast_assign(
- __entry->call_site = call_site;
- __entry->ptr = ptr;
- __entry->bytes_req = bytes_req;
- __entry->bytes_alloc = bytes_alloc;
- __entry->gfp_flags = gfp_flags;
- __entry->node = node;
- ),
-
- TP_printk("call_site=%lx ptr=%p bytes_req=%zu bytes_alloc=%zu gfp_flags=%s node=%d",
- __entry->call_site,
- __entry->ptr,
- __entry->bytes_req,
- __entry->bytes_alloc,
- show_gfp_flags(__entry->gfp_flags),
- __entry->node)
-);
-
-DEFINE_EVENT(kmem_alloc_node, kmalloc_node,
-
- TP_PROTO(unsigned long call_site, const void *ptr,
- size_t bytes_req, size_t bytes_alloc,
- gfp_t gfp_flags, int node),
-
- TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node)
-);
-
-DEFINE_EVENT(kmem_alloc_node, kmem_cache_alloc_node,
-
- TP_PROTO(unsigned long call_site, const void *ptr,
- size_t bytes_req, size_t bytes_alloc,
- gfp_t gfp_flags, int node),
-
- TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node)
-);
-
-DECLARE_EVENT_CLASS(kmem_free,
-
- TP_PROTO(unsigned long call_site, const void *ptr),
-
- TP_ARGS(call_site, ptr),
-
- TP_STRUCT__entry(
- __field( unsigned long, call_site )
- __field( const void *, ptr )
- ),
-
- TP_fast_assign(
- __entry->call_site = call_site;
- __entry->ptr = ptr;
- ),
-
- TP_printk("call_site=%lx ptr=%p", __entry->call_site, __entry->ptr)
-);
-
-DEFINE_EVENT(kmem_free, kfree,
-
- TP_PROTO(unsigned long call_site, const void *ptr),
-
- TP_ARGS(call_site, ptr)
-);
-
-DEFINE_EVENT(kmem_free, kmem_cache_free,
-
- TP_PROTO(unsigned long call_site, const void *ptr),
-
- TP_ARGS(call_site, ptr)
-);
-
-TRACE_EVENT(mm_page_free,
-
- TP_PROTO(struct page *page, unsigned int order),
-
- TP_ARGS(page, order),
-
- TP_STRUCT__entry(
- __field( struct page *, page )
- __field( unsigned int, order )
- ),
-
- TP_fast_assign(
- __entry->page = page;
- __entry->order = order;
- ),
-
- TP_printk("page=%p pfn=%lu order=%d",
- __entry->page,
- page_to_pfn(__entry->page),
- __entry->order)
-);
-
-TRACE_EVENT(mm_page_free_batched,
-
- TP_PROTO(struct page *page, int cold),
-
- TP_ARGS(page, cold),
-
- TP_STRUCT__entry(
- __field( struct page *, page )
- __field( int, cold )
- ),
-
- TP_fast_assign(
- __entry->page = page;
- __entry->cold = cold;
- ),
-
- TP_printk("page=%p pfn=%lu order=0 cold=%d",
- __entry->page,
- page_to_pfn(__entry->page),
- __entry->cold)
-);
-
-TRACE_EVENT(mm_page_alloc,
-
- TP_PROTO(struct page *page, unsigned int order,
- gfp_t gfp_flags, int migratetype),
-
- TP_ARGS(page, order, gfp_flags, migratetype),
-
- TP_STRUCT__entry(
- __field( struct page *, page )
- __field( unsigned int, order )
- __field( gfp_t, gfp_flags )
- __field( int, migratetype )
- ),
-
- TP_fast_assign(
- __entry->page = page;
- __entry->order = order;
- __entry->gfp_flags = gfp_flags;
- __entry->migratetype = migratetype;
- ),
-
- TP_printk("page=%p pfn=%lu order=%d migratetype=%d gfp_flags=%s",
- __entry->page,
- page_to_pfn(__entry->page),
- __entry->order,
- __entry->migratetype,
- show_gfp_flags(__entry->gfp_flags))
-);
-
-DECLARE_EVENT_CLASS(mm_page,
-
- TP_PROTO(struct page *page, unsigned int order, int migratetype),
-
- TP_ARGS(page, order, migratetype),
-
- TP_STRUCT__entry(
- __field( struct page *, page )
- __field( unsigned int, order )
- __field( int, migratetype )
- ),
-
- TP_fast_assign(
- __entry->page = page;
- __entry->order = order;
- __entry->migratetype = migratetype;
- ),
-
- TP_printk("page=%p pfn=%lu order=%u migratetype=%d percpu_refill=%d",
- __entry->page,
- page_to_pfn(__entry->page),
- __entry->order,
- __entry->migratetype,
- __entry->order == 0)
-);
-
-DEFINE_EVENT(mm_page, mm_page_alloc_zone_locked,
-
- TP_PROTO(struct page *page, unsigned int order, int migratetype),
-
- TP_ARGS(page, order, migratetype)
-);
-
-DEFINE_EVENT_PRINT(mm_page, mm_page_pcpu_drain,
-
- TP_PROTO(struct page *page, unsigned int order, int migratetype),
-
- TP_ARGS(page, order, migratetype),
-
- TP_printk("page=%p pfn=%lu order=%d migratetype=%d",
- __entry->page, page_to_pfn(__entry->page),
- __entry->order, __entry->migratetype)
-);
-
-TRACE_EVENT(mm_page_alloc_extfrag,
-
- TP_PROTO(struct page *page,
- int alloc_order, int fallback_order,
- int alloc_migratetype, int fallback_migratetype),
-
- TP_ARGS(page,
- alloc_order, fallback_order,
- alloc_migratetype, fallback_migratetype),
-
- TP_STRUCT__entry(
- __field( struct page *, page )
- __field( int, alloc_order )
- __field( int, fallback_order )
- __field( int, alloc_migratetype )
- __field( int, fallback_migratetype )
- ),
-
- TP_fast_assign(
- __entry->page = page;
- __entry->alloc_order = alloc_order;
- __entry->fallback_order = fallback_order;
- __entry->alloc_migratetype = alloc_migratetype;
- __entry->fallback_migratetype = fallback_migratetype;
- ),
-
- TP_printk("page=%p pfn=%lu alloc_order=%d fallback_order=%d pageblock_order=%d alloc_migratetype=%d fallback_migratetype=%d fragmenting=%d change_ownership=%d",
- __entry->page,
- page_to_pfn(__entry->page),
- __entry->alloc_order,
- __entry->fallback_order,
- pageblock_order,
- __entry->alloc_migratetype,
- __entry->fallback_migratetype,
- __entry->fallback_order < pageblock_order,
- __entry->alloc_migratetype == __entry->fallback_migratetype)
-);
-
-#endif /* _TRACE_KMEM_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/kvm.h b/ANDROID_3.4.5/include/trace/events/kvm.h
deleted file mode 100644
index 46e3cd8e..00000000
--- a/ANDROID_3.4.5/include/trace/events/kvm.h
+++ /dev/null
@@ -1,312 +0,0 @@
-#if !defined(_TRACE_KVM_MAIN_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_KVM_MAIN_H
-
-#include <linux/tracepoint.h>
-
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM kvm
-
-#define ERSN(x) { KVM_EXIT_##x, "KVM_EXIT_" #x }
-
-#define kvm_trace_exit_reason \
- ERSN(UNKNOWN), ERSN(EXCEPTION), ERSN(IO), ERSN(HYPERCALL), \
- ERSN(DEBUG), ERSN(HLT), ERSN(MMIO), ERSN(IRQ_WINDOW_OPEN), \
- ERSN(SHUTDOWN), ERSN(FAIL_ENTRY), ERSN(INTR), ERSN(SET_TPR), \
- ERSN(TPR_ACCESS), ERSN(S390_SIEIC), ERSN(S390_RESET), ERSN(DCR),\
- ERSN(NMI), ERSN(INTERNAL_ERROR), ERSN(OSI)
-
-TRACE_EVENT(kvm_userspace_exit,
- TP_PROTO(__u32 reason, int errno),
- TP_ARGS(reason, errno),
-
- TP_STRUCT__entry(
- __field( __u32, reason )
- __field( int, errno )
- ),
-
- TP_fast_assign(
- __entry->reason = reason;
- __entry->errno = errno;
- ),
-
- TP_printk("reason %s (%d)",
- __entry->errno < 0 ?
- (__entry->errno == -EINTR ? "restart" : "error") :
- __print_symbolic(__entry->reason, kvm_trace_exit_reason),
- __entry->errno < 0 ? -__entry->errno : __entry->reason)
-);
-
-#if defined(__KVM_HAVE_IOAPIC)
-TRACE_EVENT(kvm_set_irq,
- TP_PROTO(unsigned int gsi, int level, int irq_source_id),
- TP_ARGS(gsi, level, irq_source_id),
-
- TP_STRUCT__entry(
- __field( unsigned int, gsi )
- __field( int, level )
- __field( int, irq_source_id )
- ),
-
- TP_fast_assign(
- __entry->gsi = gsi;
- __entry->level = level;
- __entry->irq_source_id = irq_source_id;
- ),
-
- TP_printk("gsi %u level %d source %d",
- __entry->gsi, __entry->level, __entry->irq_source_id)
-);
-
-#define kvm_deliver_mode \
- {0x0, "Fixed"}, \
- {0x1, "LowPrio"}, \
- {0x2, "SMI"}, \
- {0x3, "Res3"}, \
- {0x4, "NMI"}, \
- {0x5, "INIT"}, \
- {0x6, "SIPI"}, \
- {0x7, "ExtINT"}
-
-TRACE_EVENT(kvm_ioapic_set_irq,
- TP_PROTO(__u64 e, int pin, bool coalesced),
- TP_ARGS(e, pin, coalesced),
-
- TP_STRUCT__entry(
- __field( __u64, e )
- __field( int, pin )
- __field( bool, coalesced )
- ),
-
- TP_fast_assign(
- __entry->e = e;
- __entry->pin = pin;
- __entry->coalesced = coalesced;
- ),
-
- TP_printk("pin %u dst %x vec=%u (%s|%s|%s%s)%s",
- __entry->pin, (u8)(__entry->e >> 56), (u8)__entry->e,
- __print_symbolic((__entry->e >> 8 & 0x7), kvm_deliver_mode),
- (__entry->e & (1<<11)) ? "logical" : "physical",
- (__entry->e & (1<<15)) ? "level" : "edge",
- (__entry->e & (1<<16)) ? "|masked" : "",
- __entry->coalesced ? " (coalesced)" : "")
-);
-
-TRACE_EVENT(kvm_msi_set_irq,
- TP_PROTO(__u64 address, __u64 data),
- TP_ARGS(address, data),
-
- TP_STRUCT__entry(
- __field( __u64, address )
- __field( __u64, data )
- ),
-
- TP_fast_assign(
- __entry->address = address;
- __entry->data = data;
- ),
-
- TP_printk("dst %u vec %x (%s|%s|%s%s)",
- (u8)(__entry->address >> 12), (u8)__entry->data,
- __print_symbolic((__entry->data >> 8 & 0x7), kvm_deliver_mode),
- (__entry->address & (1<<2)) ? "logical" : "physical",
- (__entry->data & (1<<15)) ? "level" : "edge",
- (__entry->address & (1<<3)) ? "|rh" : "")
-);
-
-#define kvm_irqchips \
- {KVM_IRQCHIP_PIC_MASTER, "PIC master"}, \
- {KVM_IRQCHIP_PIC_SLAVE, "PIC slave"}, \
- {KVM_IRQCHIP_IOAPIC, "IOAPIC"}
-
-TRACE_EVENT(kvm_ack_irq,
- TP_PROTO(unsigned int irqchip, unsigned int pin),
- TP_ARGS(irqchip, pin),
-
- TP_STRUCT__entry(
- __field( unsigned int, irqchip )
- __field( unsigned int, pin )
- ),
-
- TP_fast_assign(
- __entry->irqchip = irqchip;
- __entry->pin = pin;
- ),
-
- TP_printk("irqchip %s pin %u",
- __print_symbolic(__entry->irqchip, kvm_irqchips),
- __entry->pin)
-);
-
-
-
-#endif /* defined(__KVM_HAVE_IOAPIC) */
-
-#define KVM_TRACE_MMIO_READ_UNSATISFIED 0
-#define KVM_TRACE_MMIO_READ 1
-#define KVM_TRACE_MMIO_WRITE 2
-
-#define kvm_trace_symbol_mmio \
- { KVM_TRACE_MMIO_READ_UNSATISFIED, "unsatisfied-read" }, \
- { KVM_TRACE_MMIO_READ, "read" }, \
- { KVM_TRACE_MMIO_WRITE, "write" }
-
-TRACE_EVENT(kvm_mmio,
- TP_PROTO(int type, int len, u64 gpa, u64 val),
- TP_ARGS(type, len, gpa, val),
-
- TP_STRUCT__entry(
- __field( u32, type )
- __field( u32, len )
- __field( u64, gpa )
- __field( u64, val )
- ),
-
- TP_fast_assign(
- __entry->type = type;
- __entry->len = len;
- __entry->gpa = gpa;
- __entry->val = val;
- ),
-
- TP_printk("mmio %s len %u gpa 0x%llx val 0x%llx",
- __print_symbolic(__entry->type, kvm_trace_symbol_mmio),
- __entry->len, __entry->gpa, __entry->val)
-);
-
-#define kvm_fpu_load_symbol \
- {0, "unload"}, \
- {1, "load"}
-
-TRACE_EVENT(kvm_fpu,
- TP_PROTO(int load),
- TP_ARGS(load),
-
- TP_STRUCT__entry(
- __field( u32, load )
- ),
-
- TP_fast_assign(
- __entry->load = load;
- ),
-
- TP_printk("%s", __print_symbolic(__entry->load, kvm_fpu_load_symbol))
-);
-
-TRACE_EVENT(kvm_age_page,
- TP_PROTO(ulong hva, struct kvm_memory_slot *slot, int ref),
- TP_ARGS(hva, slot, ref),
-
- TP_STRUCT__entry(
- __field( u64, hva )
- __field( u64, gfn )
- __field( u8, referenced )
- ),
-
- TP_fast_assign(
- __entry->hva = hva;
- __entry->gfn =
- slot->base_gfn + ((hva - slot->userspace_addr) >> PAGE_SHIFT);
- __entry->referenced = ref;
- ),
-
- TP_printk("hva %llx gfn %llx %s",
- __entry->hva, __entry->gfn,
- __entry->referenced ? "YOUNG" : "OLD")
-);
-
-#ifdef CONFIG_KVM_ASYNC_PF
-DECLARE_EVENT_CLASS(kvm_async_get_page_class,
-
- TP_PROTO(u64 gva, u64 gfn),
-
- TP_ARGS(gva, gfn),
-
- TP_STRUCT__entry(
- __field(__u64, gva)
- __field(u64, gfn)
- ),
-
- TP_fast_assign(
- __entry->gva = gva;
- __entry->gfn = gfn;
- ),
-
- TP_printk("gva = %#llx, gfn = %#llx", __entry->gva, __entry->gfn)
-);
-
-DEFINE_EVENT(kvm_async_get_page_class, kvm_try_async_get_page,
-
- TP_PROTO(u64 gva, u64 gfn),
-
- TP_ARGS(gva, gfn)
-);
-
-DEFINE_EVENT(kvm_async_get_page_class, kvm_async_pf_doublefault,
-
- TP_PROTO(u64 gva, u64 gfn),
-
- TP_ARGS(gva, gfn)
-);
-
-DECLARE_EVENT_CLASS(kvm_async_pf_nopresent_ready,
-
- TP_PROTO(u64 token, u64 gva),
-
- TP_ARGS(token, gva),
-
- TP_STRUCT__entry(
- __field(__u64, token)
- __field(__u64, gva)
- ),
-
- TP_fast_assign(
- __entry->token = token;
- __entry->gva = gva;
- ),
-
- TP_printk("token %#llx gva %#llx", __entry->token, __entry->gva)
-
-);
-
-DEFINE_EVENT(kvm_async_pf_nopresent_ready, kvm_async_pf_not_present,
-
- TP_PROTO(u64 token, u64 gva),
-
- TP_ARGS(token, gva)
-);
-
-DEFINE_EVENT(kvm_async_pf_nopresent_ready, kvm_async_pf_ready,
-
- TP_PROTO(u64 token, u64 gva),
-
- TP_ARGS(token, gva)
-);
-
-TRACE_EVENT(
- kvm_async_pf_completed,
- TP_PROTO(unsigned long address, struct page *page, u64 gva),
- TP_ARGS(address, page, gva),
-
- TP_STRUCT__entry(
- __field(unsigned long, address)
- __field(pfn_t, pfn)
- __field(u64, gva)
- ),
-
- TP_fast_assign(
- __entry->address = address;
- __entry->pfn = page ? page_to_pfn(page) : 0;
- __entry->gva = gva;
- ),
-
- TP_printk("gva %#llx address %#lx pfn %#llx", __entry->gva,
- __entry->address, __entry->pfn)
-);
-
-#endif
-
-#endif /* _TRACE_KVM_MAIN_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/lock.h b/ANDROID_3.4.5/include/trace/events/lock.h
deleted file mode 100644
index 2821b86d..00000000
--- a/ANDROID_3.4.5/include/trace/events/lock.h
+++ /dev/null
@@ -1,86 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM lock
-
-#if !defined(_TRACE_LOCK_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_LOCK_H
-
-#include <linux/lockdep.h>
-#include <linux/tracepoint.h>
-
-#ifdef CONFIG_LOCKDEP
-
-TRACE_EVENT(lock_acquire,
-
- TP_PROTO(struct lockdep_map *lock, unsigned int subclass,
- int trylock, int read, int check,
- struct lockdep_map *next_lock, unsigned long ip),
-
- TP_ARGS(lock, subclass, trylock, read, check, next_lock, ip),
-
- TP_STRUCT__entry(
- __field(unsigned int, flags)
- __string(name, lock->name)
- __field(void *, lockdep_addr)
- ),
-
- TP_fast_assign(
- __entry->flags = (trylock ? 1 : 0) | (read ? 2 : 0);
- __assign_str(name, lock->name);
- __entry->lockdep_addr = lock;
- ),
-
- TP_printk("%p %s%s%s", __entry->lockdep_addr,
- (__entry->flags & 1) ? "try " : "",
- (__entry->flags & 2) ? "read " : "",
- __get_str(name))
-);
-
-DECLARE_EVENT_CLASS(lock,
-
- TP_PROTO(struct lockdep_map *lock, unsigned long ip),
-
- TP_ARGS(lock, ip),
-
- TP_STRUCT__entry(
- __string( name, lock->name )
- __field( void *, lockdep_addr )
- ),
-
- TP_fast_assign(
- __assign_str(name, lock->name);
- __entry->lockdep_addr = lock;
- ),
-
- TP_printk("%p %s", __entry->lockdep_addr, __get_str(name))
-);
-
-DEFINE_EVENT(lock, lock_release,
-
- TP_PROTO(struct lockdep_map *lock, unsigned long ip),
-
- TP_ARGS(lock, ip)
-);
-
-#ifdef CONFIG_LOCK_STAT
-
-DEFINE_EVENT(lock, lock_contended,
-
- TP_PROTO(struct lockdep_map *lock, unsigned long ip),
-
- TP_ARGS(lock, ip)
-);
-
-DEFINE_EVENT(lock, lock_acquired,
-
- TP_PROTO(struct lockdep_map *lock, unsigned long ip),
-
- TP_ARGS(lock, ip)
-);
-
-#endif
-#endif
-
-#endif /* _TRACE_LOCK_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/mce.h b/ANDROID_3.4.5/include/trace/events/mce.h
deleted file mode 100644
index 4cbbcef6..00000000
--- a/ANDROID_3.4.5/include/trace/events/mce.h
+++ /dev/null
@@ -1,69 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM mce
-
-#if !defined(_TRACE_MCE_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_MCE_H
-
-#include <linux/ktime.h>
-#include <linux/tracepoint.h>
-#include <asm/mce.h>
-
-TRACE_EVENT(mce_record,
-
- TP_PROTO(struct mce *m),
-
- TP_ARGS(m),
-
- TP_STRUCT__entry(
- __field( u64, mcgcap )
- __field( u64, mcgstatus )
- __field( u64, status )
- __field( u64, addr )
- __field( u64, misc )
- __field( u64, ip )
- __field( u64, tsc )
- __field( u64, walltime )
- __field( u32, cpu )
- __field( u32, cpuid )
- __field( u32, apicid )
- __field( u32, socketid )
- __field( u8, cs )
- __field( u8, bank )
- __field( u8, cpuvendor )
- ),
-
- TP_fast_assign(
- __entry->mcgcap = m->mcgcap;
- __entry->mcgstatus = m->mcgstatus;
- __entry->status = m->status;
- __entry->addr = m->addr;
- __entry->misc = m->misc;
- __entry->ip = m->ip;
- __entry->tsc = m->tsc;
- __entry->walltime = m->time;
- __entry->cpu = m->extcpu;
- __entry->cpuid = m->cpuid;
- __entry->apicid = m->apicid;
- __entry->socketid = m->socketid;
- __entry->cs = m->cs;
- __entry->bank = m->bank;
- __entry->cpuvendor = m->cpuvendor;
- ),
-
- TP_printk("CPU: %d, MCGc/s: %llx/%llx, MC%d: %016Lx, ADDR/MISC: %016Lx/%016Lx, RIP: %02x:<%016Lx>, TSC: %llx, PROCESSOR: %u:%x, TIME: %llu, SOCKET: %u, APIC: %x",
- __entry->cpu,
- __entry->mcgcap, __entry->mcgstatus,
- __entry->bank, __entry->status,
- __entry->addr, __entry->misc,
- __entry->cs, __entry->ip,
- __entry->tsc,
- __entry->cpuvendor, __entry->cpuid,
- __entry->walltime,
- __entry->socketid,
- __entry->apicid)
-);
-
-#endif /* _TRACE_MCE_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/module.h b/ANDROID_3.4.5/include/trace/events/module.h
deleted file mode 100644
index 16193273..00000000
--- a/ANDROID_3.4.5/include/trace/events/module.h
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Because linux/module.h has tracepoints in the header, and ftrace.h
- * used to include this file, define_trace.h includes linux/module.h
- * But we do not want the module.h to override the TRACE_SYSTEM macro
- * variable that define_trace.h is processing, so we only set it
- * when module events are being processed, which would happen when
- * CREATE_TRACE_POINTS is defined.
- */
-#ifdef CREATE_TRACE_POINTS
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM module
-#endif
-
-#if !defined(_TRACE_MODULE_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_MODULE_H
-
-#include <linux/tracepoint.h>
-
-#ifdef CONFIG_MODULES
-
-struct module;
-
-#define show_module_flags(flags) __print_flags(flags, "", \
- { (1UL << TAINT_PROPRIETARY_MODULE), "P" }, \
- { (1UL << TAINT_FORCED_MODULE), "F" }, \
- { (1UL << TAINT_CRAP), "C" })
-
-TRACE_EVENT(module_load,
-
- TP_PROTO(struct module *mod),
-
- TP_ARGS(mod),
-
- TP_STRUCT__entry(
- __field( unsigned int, taints )
- __string( name, mod->name )
- ),
-
- TP_fast_assign(
- __entry->taints = mod->taints;
- __assign_str(name, mod->name);
- ),
-
- TP_printk("%s %s", __get_str(name), show_module_flags(__entry->taints))
-);
-
-TRACE_EVENT(module_free,
-
- TP_PROTO(struct module *mod),
-
- TP_ARGS(mod),
-
- TP_STRUCT__entry(
- __string( name, mod->name )
- ),
-
- TP_fast_assign(
- __assign_str(name, mod->name);
- ),
-
- TP_printk("%s", __get_str(name))
-);
-
-#ifdef CONFIG_MODULE_UNLOAD
-/* trace_module_get/put are only used if CONFIG_MODULE_UNLOAD is defined */
-
-DECLARE_EVENT_CLASS(module_refcnt,
-
- TP_PROTO(struct module *mod, unsigned long ip),
-
- TP_ARGS(mod, ip),
-
- TP_STRUCT__entry(
- __field( unsigned long, ip )
- __field( int, refcnt )
- __string( name, mod->name )
- ),
-
- TP_fast_assign(
- __entry->ip = ip;
- __entry->refcnt = __this_cpu_read(mod->refptr->incs) + __this_cpu_read(mod->refptr->decs);
- __assign_str(name, mod->name);
- ),
-
- TP_printk("%s call_site=%pf refcnt=%d",
- __get_str(name), (void *)__entry->ip, __entry->refcnt)
-);
-
-DEFINE_EVENT(module_refcnt, module_get,
-
- TP_PROTO(struct module *mod, unsigned long ip),
-
- TP_ARGS(mod, ip)
-);
-
-DEFINE_EVENT(module_refcnt, module_put,
-
- TP_PROTO(struct module *mod, unsigned long ip),
-
- TP_ARGS(mod, ip)
-);
-#endif /* CONFIG_MODULE_UNLOAD */
-
-TRACE_EVENT(module_request,
-
- TP_PROTO(char *name, bool wait, unsigned long ip),
-
- TP_ARGS(name, wait, ip),
-
- TP_STRUCT__entry(
- __field( unsigned long, ip )
- __field( bool, wait )
- __string( name, name )
- ),
-
- TP_fast_assign(
- __entry->ip = ip;
- __entry->wait = wait;
- __assign_str(name, name);
- ),
-
- TP_printk("%s wait=%d call_site=%pf",
- __get_str(name), (int)__entry->wait, (void *)__entry->ip)
-);
-
-#endif /* CONFIG_MODULES */
-
-#endif /* _TRACE_MODULE_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/napi.h b/ANDROID_3.4.5/include/trace/events/napi.h
deleted file mode 100644
index 8fe1e93f..00000000
--- a/ANDROID_3.4.5/include/trace/events/napi.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM napi
-
-#if !defined(_TRACE_NAPI_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_NAPI_H_
-
-#include <linux/netdevice.h>
-#include <linux/tracepoint.h>
-#include <linux/ftrace.h>
-
-#define NO_DEV "(no_device)"
-
-TRACE_EVENT(napi_poll,
-
- TP_PROTO(struct napi_struct *napi),
-
- TP_ARGS(napi),
-
- TP_STRUCT__entry(
- __field( struct napi_struct *, napi)
- __string( dev_name, napi->dev ? napi->dev->name : NO_DEV)
- ),
-
- TP_fast_assign(
- __entry->napi = napi;
- __assign_str(dev_name, napi->dev ? napi->dev->name : NO_DEV);
- ),
-
- TP_printk("napi poll on napi struct %p for device %s",
- __entry->napi, __get_str(dev_name))
-);
-
-#undef NO_DEV
-
-#endif /* _TRACE_NAPI_H_ */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/net.h b/ANDROID_3.4.5/include/trace/events/net.h
deleted file mode 100644
index f99645d0..00000000
--- a/ANDROID_3.4.5/include/trace/events/net.h
+++ /dev/null
@@ -1,84 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM net
-
-#if !defined(_TRACE_NET_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_NET_H
-
-#include <linux/skbuff.h>
-#include <linux/netdevice.h>
-#include <linux/ip.h>
-#include <linux/tracepoint.h>
-
-TRACE_EVENT(net_dev_xmit,
-
- TP_PROTO(struct sk_buff *skb,
- int rc,
- struct net_device *dev,
- unsigned int skb_len),
-
- TP_ARGS(skb, rc, dev, skb_len),
-
- TP_STRUCT__entry(
- __field( void *, skbaddr )
- __field( unsigned int, len )
- __field( int, rc )
- __string( name, dev->name )
- ),
-
- TP_fast_assign(
- __entry->skbaddr = skb;
- __entry->len = skb_len;
- __entry->rc = rc;
- __assign_str(name, dev->name);
- ),
-
- TP_printk("dev=%s skbaddr=%p len=%u rc=%d",
- __get_str(name), __entry->skbaddr, __entry->len, __entry->rc)
-);
-
-DECLARE_EVENT_CLASS(net_dev_template,
-
- TP_PROTO(struct sk_buff *skb),
-
- TP_ARGS(skb),
-
- TP_STRUCT__entry(
- __field( void *, skbaddr )
- __field( unsigned int, len )
- __string( name, skb->dev->name )
- ),
-
- TP_fast_assign(
- __entry->skbaddr = skb;
- __entry->len = skb->len;
- __assign_str(name, skb->dev->name);
- ),
-
- TP_printk("dev=%s skbaddr=%p len=%u",
- __get_str(name), __entry->skbaddr, __entry->len)
-)
-
-DEFINE_EVENT(net_dev_template, net_dev_queue,
-
- TP_PROTO(struct sk_buff *skb),
-
- TP_ARGS(skb)
-);
-
-DEFINE_EVENT(net_dev_template, netif_receive_skb,
-
- TP_PROTO(struct sk_buff *skb),
-
- TP_ARGS(skb)
-);
-
-DEFINE_EVENT(net_dev_template, netif_rx,
-
- TP_PROTO(struct sk_buff *skb),
-
- TP_ARGS(skb)
-);
-#endif /* _TRACE_NET_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/oom.h b/ANDROID_3.4.5/include/trace/events/oom.h
deleted file mode 100644
index dd4ba3b9..00000000
--- a/ANDROID_3.4.5/include/trace/events/oom.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM oom
-
-#if !defined(_TRACE_OOM_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_OOM_H
-#include <linux/tracepoint.h>
-
-TRACE_EVENT(oom_score_adj_update,
-
- TP_PROTO(struct task_struct *task),
-
- TP_ARGS(task),
-
- TP_STRUCT__entry(
- __field( pid_t, pid)
- __array( char, comm, TASK_COMM_LEN )
- __field( int, oom_score_adj)
- ),
-
- TP_fast_assign(
- __entry->pid = task->pid;
- memcpy(__entry->comm, task->comm, TASK_COMM_LEN);
- __entry->oom_score_adj = task->signal->oom_score_adj;
- ),
-
- TP_printk("pid=%d comm=%s oom_score_adj=%d",
- __entry->pid, __entry->comm, __entry->oom_score_adj)
-);
-
-#endif
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/power.h b/ANDROID_3.4.5/include/trace/events/power.h
deleted file mode 100644
index 243c677c..00000000
--- a/ANDROID_3.4.5/include/trace/events/power.h
+++ /dev/null
@@ -1,294 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM power
-
-#if !defined(_TRACE_POWER_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_POWER_H
-
-#include <linux/ktime.h>
-#include <linux/tracepoint.h>
-
-DECLARE_EVENT_CLASS(cpu,
-
- TP_PROTO(unsigned int state, unsigned int cpu_id),
-
- TP_ARGS(state, cpu_id),
-
- TP_STRUCT__entry(
- __field( u32, state )
- __field( u32, cpu_id )
- ),
-
- TP_fast_assign(
- __entry->state = state;
- __entry->cpu_id = cpu_id;
- ),
-
- TP_printk("state=%lu cpu_id=%lu", (unsigned long)__entry->state,
- (unsigned long)__entry->cpu_id)
-);
-
-DEFINE_EVENT(cpu, cpu_idle,
-
- TP_PROTO(unsigned int state, unsigned int cpu_id),
-
- TP_ARGS(state, cpu_id)
-);
-
-/* This file can get included multiple times, TRACE_HEADER_MULTI_READ at top */
-#ifndef _PWR_EVENT_AVOID_DOUBLE_DEFINING
-#define _PWR_EVENT_AVOID_DOUBLE_DEFINING
-
-#define PWR_EVENT_EXIT -1
-#endif
-
-DEFINE_EVENT(cpu, cpu_frequency,
-
- TP_PROTO(unsigned int frequency, unsigned int cpu_id),
-
- TP_ARGS(frequency, cpu_id)
-);
-
-TRACE_EVENT(machine_suspend,
-
- TP_PROTO(unsigned int state),
-
- TP_ARGS(state),
-
- TP_STRUCT__entry(
- __field( u32, state )
- ),
-
- TP_fast_assign(
- __entry->state = state;
- ),
-
- TP_printk("state=%lu", (unsigned long)__entry->state)
-);
-
-DECLARE_EVENT_CLASS(wakeup_source,
-
- TP_PROTO(const char *name, unsigned int state),
-
- TP_ARGS(name, state),
-
- TP_STRUCT__entry(
- __string( name, name )
- __field( u64, state )
- ),
-
- TP_fast_assign(
- __assign_str(name, name);
- __entry->state = state;
- ),
-
- TP_printk("%s state=0x%lx", __get_str(name),
- (unsigned long)__entry->state)
-);
-
-DEFINE_EVENT(wakeup_source, wakeup_source_activate,
-
- TP_PROTO(const char *name, unsigned int state),
-
- TP_ARGS(name, state)
-);
-
-DEFINE_EVENT(wakeup_source, wakeup_source_deactivate,
-
- TP_PROTO(const char *name, unsigned int state),
-
- TP_ARGS(name, state)
-);
-
-#ifdef CONFIG_EVENT_POWER_TRACING_DEPRECATED
-
-/*
- * The power events are used for cpuidle & suspend (power_start, power_end)
- * and for cpufreq (power_frequency)
- */
-DECLARE_EVENT_CLASS(power,
-
- TP_PROTO(unsigned int type, unsigned int state, unsigned int cpu_id),
-
- TP_ARGS(type, state, cpu_id),
-
- TP_STRUCT__entry(
- __field( u64, type )
- __field( u64, state )
- __field( u64, cpu_id )
- ),
-
- TP_fast_assign(
- __entry->type = type;
- __entry->state = state;
- __entry->cpu_id = cpu_id;
- ),
-
- TP_printk("type=%lu state=%lu cpu_id=%lu", (unsigned long)__entry->type,
- (unsigned long)__entry->state, (unsigned long)__entry->cpu_id)
-);
-
-DEFINE_EVENT(power, power_start,
-
- TP_PROTO(unsigned int type, unsigned int state, unsigned int cpu_id),
-
- TP_ARGS(type, state, cpu_id)
-);
-
-DEFINE_EVENT(power, power_frequency,
-
- TP_PROTO(unsigned int type, unsigned int state, unsigned int cpu_id),
-
- TP_ARGS(type, state, cpu_id)
-);
-
-TRACE_EVENT(power_end,
-
- TP_PROTO(unsigned int cpu_id),
-
- TP_ARGS(cpu_id),
-
- TP_STRUCT__entry(
- __field( u64, cpu_id )
- ),
-
- TP_fast_assign(
- __entry->cpu_id = cpu_id;
- ),
-
- TP_printk("cpu_id=%lu", (unsigned long)__entry->cpu_id)
-
-);
-
-/* Deprecated dummy functions must be protected against multi-declartion */
-#ifndef _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED
-#define _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED
-
-enum {
- POWER_NONE = 0,
- POWER_CSTATE = 1,
- POWER_PSTATE = 2,
-};
-#endif /* _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED */
-
-#else /* CONFIG_EVENT_POWER_TRACING_DEPRECATED */
-
-#ifndef _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED
-#define _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED
-enum {
- POWER_NONE = 0,
- POWER_CSTATE = 1,
- POWER_PSTATE = 2,
-};
-
-/* These dummy declaration have to be ripped out when the deprecated
- events get removed */
-static inline void trace_power_start(u64 type, u64 state, u64 cpuid) {};
-static inline void trace_power_end(u64 cpuid) {};
-static inline void trace_power_start_rcuidle(u64 type, u64 state, u64 cpuid) {};
-static inline void trace_power_end_rcuidle(u64 cpuid) {};
-static inline void trace_power_frequency(u64 type, u64 state, u64 cpuid) {};
-#endif /* _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED */
-
-#endif /* CONFIG_EVENT_POWER_TRACING_DEPRECATED */
-
-/*
- * The clock events are used for clock enable/disable and for
- * clock rate change
- */
-DECLARE_EVENT_CLASS(clock,
-
- TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
-
- TP_ARGS(name, state, cpu_id),
-
- TP_STRUCT__entry(
- __string( name, name )
- __field( u64, state )
- __field( u64, cpu_id )
- ),
-
- TP_fast_assign(
- __assign_str(name, name);
- __entry->state = state;
- __entry->cpu_id = cpu_id;
- ),
-
- TP_printk("%s state=%lu cpu_id=%lu", __get_str(name),
- (unsigned long)__entry->state, (unsigned long)__entry->cpu_id)
-);
-
-DEFINE_EVENT(clock, clock_enable,
-
- TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
-
- TP_ARGS(name, state, cpu_id)
-);
-
-DEFINE_EVENT(clock, clock_disable,
-
- TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
-
- TP_ARGS(name, state, cpu_id)
-);
-
-DEFINE_EVENT(clock, clock_set_rate,
-
- TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
-
- TP_ARGS(name, state, cpu_id)
-);
-
-TRACE_EVENT(clock_set_parent,
-
- TP_PROTO(const char *name, const char *parent_name),
-
- TP_ARGS(name, parent_name),
-
- TP_STRUCT__entry(
- __string( name, name )
- __string( parent_name, parent_name )
- ),
-
- TP_fast_assign(
- __assign_str(name, name);
- __assign_str(parent_name, parent_name);
- ),
-
- TP_printk("%s parent=%s", __get_str(name), __get_str(parent_name))
-);
-
-/*
- * The power domain events are used for power domains transitions
- */
-DECLARE_EVENT_CLASS(power_domain,
-
- TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
-
- TP_ARGS(name, state, cpu_id),
-
- TP_STRUCT__entry(
- __string( name, name )
- __field( u64, state )
- __field( u64, cpu_id )
- ),
-
- TP_fast_assign(
- __assign_str(name, name);
- __entry->state = state;
- __entry->cpu_id = cpu_id;
-),
-
- TP_printk("%s state=%lu cpu_id=%lu", __get_str(name),
- (unsigned long)__entry->state, (unsigned long)__entry->cpu_id)
-);
-
-DEFINE_EVENT(power_domain, power_domain_target,
-
- TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
-
- TP_ARGS(name, state, cpu_id)
-);
-#endif /* _TRACE_POWER_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/printk.h b/ANDROID_3.4.5/include/trace/events/printk.h
deleted file mode 100644
index 94ec79cc..00000000
--- a/ANDROID_3.4.5/include/trace/events/printk.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM printk
-
-#if !defined(_TRACE_PRINTK_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_PRINTK_H
-
-#include <linux/tracepoint.h>
-
-TRACE_EVENT_CONDITION(console,
- TP_PROTO(const char *log_buf, unsigned start, unsigned end,
- unsigned log_buf_len),
-
- TP_ARGS(log_buf, start, end, log_buf_len),
-
- TP_CONDITION(start != end),
-
- TP_STRUCT__entry(
- __dynamic_array(char, msg, end - start + 1)
- ),
-
- TP_fast_assign(
- if ((start & (log_buf_len - 1)) > (end & (log_buf_len - 1))) {
- memcpy(__get_dynamic_array(msg),
- log_buf + (start & (log_buf_len - 1)),
- log_buf_len - (start & (log_buf_len - 1)));
- memcpy((char *)__get_dynamic_array(msg) +
- log_buf_len - (start & (log_buf_len - 1)),
- log_buf, end & (log_buf_len - 1));
- } else
- memcpy(__get_dynamic_array(msg),
- log_buf + (start & (log_buf_len - 1)),
- end - start);
- ((char *)__get_dynamic_array(msg))[end - start] = 0;
- ),
-
- TP_printk("%s", __get_str(msg))
-);
-#endif /* _TRACE_PRINTK_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/rcu.h b/ANDROID_3.4.5/include/trace/events/rcu.h
deleted file mode 100644
index 33709978..00000000
--- a/ANDROID_3.4.5/include/trace/events/rcu.h
+++ /dev/null
@@ -1,570 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM rcu
-
-#if !defined(_TRACE_RCU_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_RCU_H
-
-#include <linux/tracepoint.h>
-
-/*
- * Tracepoint for start/end markers used for utilization calculations.
- * By convention, the string is of the following forms:
- *
- * "Start <activity>" -- Mark the start of the specified activity,
- * such as "context switch". Nesting is permitted.
- * "End <activity>" -- Mark the end of the specified activity.
- *
- * An "@" character within "<activity>" is a comment character: Data
- * reduction scripts will ignore the "@" and the remainder of the line.
- */
-TRACE_EVENT(rcu_utilization,
-
- TP_PROTO(char *s),
-
- TP_ARGS(s),
-
- TP_STRUCT__entry(
- __field(char *, s)
- ),
-
- TP_fast_assign(
- __entry->s = s;
- ),
-
- TP_printk("%s", __entry->s)
-);
-
-#ifdef CONFIG_RCU_TRACE
-
-#if defined(CONFIG_TREE_RCU) || defined(CONFIG_TREE_PREEMPT_RCU)
-
-/*
- * Tracepoint for grace-period events: starting and ending a grace
- * period ("start" and "end", respectively), a CPU noting the start
- * of a new grace period or the end of an old grace period ("cpustart"
- * and "cpuend", respectively), a CPU passing through a quiescent
- * state ("cpuqs"), a CPU coming online or going offline ("cpuonl"
- * and "cpuofl", respectively), and a CPU being kicked for being too
- * long in dyntick-idle mode ("kick").
- */
-TRACE_EVENT(rcu_grace_period,
-
- TP_PROTO(char *rcuname, unsigned long gpnum, char *gpevent),
-
- TP_ARGS(rcuname, gpnum, gpevent),
-
- TP_STRUCT__entry(
- __field(char *, rcuname)
- __field(unsigned long, gpnum)
- __field(char *, gpevent)
- ),
-
- TP_fast_assign(
- __entry->rcuname = rcuname;
- __entry->gpnum = gpnum;
- __entry->gpevent = gpevent;
- ),
-
- TP_printk("%s %lu %s",
- __entry->rcuname, __entry->gpnum, __entry->gpevent)
-);
-
-/*
- * Tracepoint for grace-period-initialization events. These are
- * distinguished by the type of RCU, the new grace-period number, the
- * rcu_node structure level, the starting and ending CPU covered by the
- * rcu_node structure, and the mask of CPUs that will be waited for.
- * All but the type of RCU are extracted from the rcu_node structure.
- */
-TRACE_EVENT(rcu_grace_period_init,
-
- TP_PROTO(char *rcuname, unsigned long gpnum, u8 level,
- int grplo, int grphi, unsigned long qsmask),
-
- TP_ARGS(rcuname, gpnum, level, grplo, grphi, qsmask),
-
- TP_STRUCT__entry(
- __field(char *, rcuname)
- __field(unsigned long, gpnum)
- __field(u8, level)
- __field(int, grplo)
- __field(int, grphi)
- __field(unsigned long, qsmask)
- ),
-
- TP_fast_assign(
- __entry->rcuname = rcuname;
- __entry->gpnum = gpnum;
- __entry->level = level;
- __entry->grplo = grplo;
- __entry->grphi = grphi;
- __entry->qsmask = qsmask;
- ),
-
- TP_printk("%s %lu %u %d %d %lx",
- __entry->rcuname, __entry->gpnum, __entry->level,
- __entry->grplo, __entry->grphi, __entry->qsmask)
-);
-
-/*
- * Tracepoint for tasks blocking within preemptible-RCU read-side
- * critical sections. Track the type of RCU (which one day might
- * include SRCU), the grace-period number that the task is blocking
- * (the current or the next), and the task's PID.
- */
-TRACE_EVENT(rcu_preempt_task,
-
- TP_PROTO(char *rcuname, int pid, unsigned long gpnum),
-
- TP_ARGS(rcuname, pid, gpnum),
-
- TP_STRUCT__entry(
- __field(char *, rcuname)
- __field(unsigned long, gpnum)
- __field(int, pid)
- ),
-
- TP_fast_assign(
- __entry->rcuname = rcuname;
- __entry->gpnum = gpnum;
- __entry->pid = pid;
- ),
-
- TP_printk("%s %lu %d",
- __entry->rcuname, __entry->gpnum, __entry->pid)
-);
-
-/*
- * Tracepoint for tasks that blocked within a given preemptible-RCU
- * read-side critical section exiting that critical section. Track the
- * type of RCU (which one day might include SRCU) and the task's PID.
- */
-TRACE_EVENT(rcu_unlock_preempted_task,
-
- TP_PROTO(char *rcuname, unsigned long gpnum, int pid),
-
- TP_ARGS(rcuname, gpnum, pid),
-
- TP_STRUCT__entry(
- __field(char *, rcuname)
- __field(unsigned long, gpnum)
- __field(int, pid)
- ),
-
- TP_fast_assign(
- __entry->rcuname = rcuname;
- __entry->gpnum = gpnum;
- __entry->pid = pid;
- ),
-
- TP_printk("%s %lu %d", __entry->rcuname, __entry->gpnum, __entry->pid)
-);
-
-/*
- * Tracepoint for quiescent-state-reporting events. These are
- * distinguished by the type of RCU, the grace-period number, the
- * mask of quiescent lower-level entities, the rcu_node structure level,
- * the starting and ending CPU covered by the rcu_node structure, and
- * whether there are any blocked tasks blocking the current grace period.
- * All but the type of RCU are extracted from the rcu_node structure.
- */
-TRACE_EVENT(rcu_quiescent_state_report,
-
- TP_PROTO(char *rcuname, unsigned long gpnum,
- unsigned long mask, unsigned long qsmask,
- u8 level, int grplo, int grphi, int gp_tasks),
-
- TP_ARGS(rcuname, gpnum, mask, qsmask, level, grplo, grphi, gp_tasks),
-
- TP_STRUCT__entry(
- __field(char *, rcuname)
- __field(unsigned long, gpnum)
- __field(unsigned long, mask)
- __field(unsigned long, qsmask)
- __field(u8, level)
- __field(int, grplo)
- __field(int, grphi)
- __field(u8, gp_tasks)
- ),
-
- TP_fast_assign(
- __entry->rcuname = rcuname;
- __entry->gpnum = gpnum;
- __entry->mask = mask;
- __entry->qsmask = qsmask;
- __entry->level = level;
- __entry->grplo = grplo;
- __entry->grphi = grphi;
- __entry->gp_tasks = gp_tasks;
- ),
-
- TP_printk("%s %lu %lx>%lx %u %d %d %u",
- __entry->rcuname, __entry->gpnum,
- __entry->mask, __entry->qsmask, __entry->level,
- __entry->grplo, __entry->grphi, __entry->gp_tasks)
-);
-
-/*
- * Tracepoint for quiescent states detected by force_quiescent_state().
- * These trace events include the type of RCU, the grace-period number
- * that was blocked by the CPU, the CPU itself, and the type of quiescent
- * state, which can be "dti" for dyntick-idle mode, "ofl" for CPU offline,
- * or "kick" when kicking a CPU that has been in dyntick-idle mode for
- * too long.
- */
-TRACE_EVENT(rcu_fqs,
-
- TP_PROTO(char *rcuname, unsigned long gpnum, int cpu, char *qsevent),
-
- TP_ARGS(rcuname, gpnum, cpu, qsevent),
-
- TP_STRUCT__entry(
- __field(char *, rcuname)
- __field(unsigned long, gpnum)
- __field(int, cpu)
- __field(char *, qsevent)
- ),
-
- TP_fast_assign(
- __entry->rcuname = rcuname;
- __entry->gpnum = gpnum;
- __entry->cpu = cpu;
- __entry->qsevent = qsevent;
- ),
-
- TP_printk("%s %lu %d %s",
- __entry->rcuname, __entry->gpnum,
- __entry->cpu, __entry->qsevent)
-);
-
-#endif /* #if defined(CONFIG_TREE_RCU) || defined(CONFIG_TREE_PREEMPT_RCU) */
-
-/*
- * Tracepoint for dyntick-idle entry/exit events. These take a string
- * as argument: "Start" for entering dyntick-idle mode, "End" for
- * leaving it, "--=" for events moving towards idle, and "++=" for events
- * moving away from idle. "Error on entry: not idle task" and "Error on
- * exit: not idle task" indicate that a non-idle task is erroneously
- * toying with the idle loop.
- *
- * These events also take a pair of numbers, which indicate the nesting
- * depth before and after the event of interest. Note that task-related
- * events use the upper bits of each number, while interrupt-related
- * events use the lower bits.
- */
-TRACE_EVENT(rcu_dyntick,
-
- TP_PROTO(char *polarity, long long oldnesting, long long newnesting),
-
- TP_ARGS(polarity, oldnesting, newnesting),
-
- TP_STRUCT__entry(
- __field(char *, polarity)
- __field(long long, oldnesting)
- __field(long long, newnesting)
- ),
-
- TP_fast_assign(
- __entry->polarity = polarity;
- __entry->oldnesting = oldnesting;
- __entry->newnesting = newnesting;
- ),
-
- TP_printk("%s %llx %llx", __entry->polarity,
- __entry->oldnesting, __entry->newnesting)
-);
-
-/*
- * Tracepoint for RCU preparation for idle, the goal being to get RCU
- * processing done so that the current CPU can shut off its scheduling
- * clock and enter dyntick-idle mode. One way to accomplish this is
- * to drain all RCU callbacks from this CPU, and the other is to have
- * done everything RCU requires for the current grace period. In this
- * latter case, the CPU will be awakened at the end of the current grace
- * period in order to process the remainder of its callbacks.
- *
- * These tracepoints take a string as argument:
- *
- * "No callbacks": Nothing to do, no callbacks on this CPU.
- * "In holdoff": Nothing to do, holding off after unsuccessful attempt.
- * "Begin holdoff": Attempt failed, don't retry until next jiffy.
- * "Dyntick with callbacks": Entering dyntick-idle despite callbacks.
- * "More callbacks": Still more callbacks, try again to clear them out.
- * "Callbacks drained": All callbacks processed, off to dyntick idle!
- * "Timer": Timer fired to cause CPU to continue processing callbacks.
- */
-TRACE_EVENT(rcu_prep_idle,
-
- TP_PROTO(char *reason),
-
- TP_ARGS(reason),
-
- TP_STRUCT__entry(
- __field(char *, reason)
- ),
-
- TP_fast_assign(
- __entry->reason = reason;
- ),
-
- TP_printk("%s", __entry->reason)
-);
-
-/*
- * Tracepoint for the registration of a single RCU callback function.
- * The first argument is the type of RCU, the second argument is
- * a pointer to the RCU callback itself, the third element is the
- * number of lazy callbacks queued, and the fourth element is the
- * total number of callbacks queued.
- */
-TRACE_EVENT(rcu_callback,
-
- TP_PROTO(char *rcuname, struct rcu_head *rhp, long qlen_lazy,
- long qlen),
-
- TP_ARGS(rcuname, rhp, qlen_lazy, qlen),
-
- TP_STRUCT__entry(
- __field(char *, rcuname)
- __field(void *, rhp)
- __field(void *, func)
- __field(long, qlen_lazy)
- __field(long, qlen)
- ),
-
- TP_fast_assign(
- __entry->rcuname = rcuname;
- __entry->rhp = rhp;
- __entry->func = rhp->func;
- __entry->qlen_lazy = qlen_lazy;
- __entry->qlen = qlen;
- ),
-
- TP_printk("%s rhp=%p func=%pf %ld/%ld",
- __entry->rcuname, __entry->rhp, __entry->func,
- __entry->qlen_lazy, __entry->qlen)
-);
-
-/*
- * Tracepoint for the registration of a single RCU callback of the special
- * kfree() form. The first argument is the RCU type, the second argument
- * is a pointer to the RCU callback, the third argument is the offset
- * of the callback within the enclosing RCU-protected data structure,
- * the fourth argument is the number of lazy callbacks queued, and the
- * fifth argument is the total number of callbacks queued.
- */
-TRACE_EVENT(rcu_kfree_callback,
-
- TP_PROTO(char *rcuname, struct rcu_head *rhp, unsigned long offset,
- long qlen_lazy, long qlen),
-
- TP_ARGS(rcuname, rhp, offset, qlen_lazy, qlen),
-
- TP_STRUCT__entry(
- __field(char *, rcuname)
- __field(void *, rhp)
- __field(unsigned long, offset)
- __field(long, qlen_lazy)
- __field(long, qlen)
- ),
-
- TP_fast_assign(
- __entry->rcuname = rcuname;
- __entry->rhp = rhp;
- __entry->offset = offset;
- __entry->qlen_lazy = qlen_lazy;
- __entry->qlen = qlen;
- ),
-
- TP_printk("%s rhp=%p func=%ld %ld/%ld",
- __entry->rcuname, __entry->rhp, __entry->offset,
- __entry->qlen_lazy, __entry->qlen)
-);
-
-/*
- * Tracepoint for marking the beginning rcu_do_batch, performed to start
- * RCU callback invocation. The first argument is the RCU flavor,
- * the second is the number of lazy callbacks queued, the third is
- * the total number of callbacks queued, and the fourth argument is
- * the current RCU-callback batch limit.
- */
-TRACE_EVENT(rcu_batch_start,
-
- TP_PROTO(char *rcuname, long qlen_lazy, long qlen, int blimit),
-
- TP_ARGS(rcuname, qlen_lazy, qlen, blimit),
-
- TP_STRUCT__entry(
- __field(char *, rcuname)
- __field(long, qlen_lazy)
- __field(long, qlen)
- __field(int, blimit)
- ),
-
- TP_fast_assign(
- __entry->rcuname = rcuname;
- __entry->qlen_lazy = qlen_lazy;
- __entry->qlen = qlen;
- __entry->blimit = blimit;
- ),
-
- TP_printk("%s CBs=%ld/%ld bl=%d",
- __entry->rcuname, __entry->qlen_lazy, __entry->qlen,
- __entry->blimit)
-);
-
-/*
- * Tracepoint for the invocation of a single RCU callback function.
- * The first argument is the type of RCU, and the second argument is
- * a pointer to the RCU callback itself.
- */
-TRACE_EVENT(rcu_invoke_callback,
-
- TP_PROTO(char *rcuname, struct rcu_head *rhp),
-
- TP_ARGS(rcuname, rhp),
-
- TP_STRUCT__entry(
- __field(char *, rcuname)
- __field(void *, rhp)
- __field(void *, func)
- ),
-
- TP_fast_assign(
- __entry->rcuname = rcuname;
- __entry->rhp = rhp;
- __entry->func = rhp->func;
- ),
-
- TP_printk("%s rhp=%p func=%pf",
- __entry->rcuname, __entry->rhp, __entry->func)
-);
-
-/*
- * Tracepoint for the invocation of a single RCU callback of the special
- * kfree() form. The first argument is the RCU flavor, the second
- * argument is a pointer to the RCU callback, and the third argument
- * is the offset of the callback within the enclosing RCU-protected
- * data structure.
- */
-TRACE_EVENT(rcu_invoke_kfree_callback,
-
- TP_PROTO(char *rcuname, struct rcu_head *rhp, unsigned long offset),
-
- TP_ARGS(rcuname, rhp, offset),
-
- TP_STRUCT__entry(
- __field(char *, rcuname)
- __field(void *, rhp)
- __field(unsigned long, offset)
- ),
-
- TP_fast_assign(
- __entry->rcuname = rcuname;
- __entry->rhp = rhp;
- __entry->offset = offset;
- ),
-
- TP_printk("%s rhp=%p func=%ld",
- __entry->rcuname, __entry->rhp, __entry->offset)
-);
-
-/*
- * Tracepoint for exiting rcu_do_batch after RCU callbacks have been
- * invoked. The first argument is the name of the RCU flavor,
- * the second argument is number of callbacks actually invoked,
- * the third argument (cb) is whether or not any of the callbacks that
- * were ready to invoke at the beginning of this batch are still
- * queued, the fourth argument (nr) is the return value of need_resched(),
- * the fifth argument (iit) is 1 if the current task is the idle task,
- * and the sixth argument (risk) is the return value from
- * rcu_is_callbacks_kthread().
- */
-TRACE_EVENT(rcu_batch_end,
-
- TP_PROTO(char *rcuname, int callbacks_invoked,
- bool cb, bool nr, bool iit, bool risk),
-
- TP_ARGS(rcuname, callbacks_invoked, cb, nr, iit, risk),
-
- TP_STRUCT__entry(
- __field(char *, rcuname)
- __field(int, callbacks_invoked)
- __field(bool, cb)
- __field(bool, nr)
- __field(bool, iit)
- __field(bool, risk)
- ),
-
- TP_fast_assign(
- __entry->rcuname = rcuname;
- __entry->callbacks_invoked = callbacks_invoked;
- __entry->cb = cb;
- __entry->nr = nr;
- __entry->iit = iit;
- __entry->risk = risk;
- ),
-
- TP_printk("%s CBs-invoked=%d idle=%c%c%c%c",
- __entry->rcuname, __entry->callbacks_invoked,
- __entry->cb ? 'C' : '.',
- __entry->nr ? 'S' : '.',
- __entry->iit ? 'I' : '.',
- __entry->risk ? 'R' : '.')
-);
-
-/*
- * Tracepoint for rcutorture readers. The first argument is the name
- * of the RCU flavor from rcutorture's viewpoint and the second argument
- * is the callback address.
- */
-TRACE_EVENT(rcu_torture_read,
-
- TP_PROTO(char *rcutorturename, struct rcu_head *rhp),
-
- TP_ARGS(rcutorturename, rhp),
-
- TP_STRUCT__entry(
- __field(char *, rcutorturename)
- __field(struct rcu_head *, rhp)
- ),
-
- TP_fast_assign(
- __entry->rcutorturename = rcutorturename;
- __entry->rhp = rhp;
- ),
-
- TP_printk("%s torture read %p",
- __entry->rcutorturename, __entry->rhp)
-);
-
-#else /* #ifdef CONFIG_RCU_TRACE */
-
-#define trace_rcu_grace_period(rcuname, gpnum, gpevent) do { } while (0)
-#define trace_rcu_grace_period_init(rcuname, gpnum, level, grplo, grphi, \
- qsmask) do { } while (0)
-#define trace_rcu_preempt_task(rcuname, pid, gpnum) do { } while (0)
-#define trace_rcu_unlock_preempted_task(rcuname, gpnum, pid) do { } while (0)
-#define trace_rcu_quiescent_state_report(rcuname, gpnum, mask, qsmask, level, \
- grplo, grphi, gp_tasks) do { } \
- while (0)
-#define trace_rcu_fqs(rcuname, gpnum, cpu, qsevent) do { } while (0)
-#define trace_rcu_dyntick(polarity, oldnesting, newnesting) do { } while (0)
-#define trace_rcu_prep_idle(reason) do { } while (0)
-#define trace_rcu_callback(rcuname, rhp, qlen_lazy, qlen) do { } while (0)
-#define trace_rcu_kfree_callback(rcuname, rhp, offset, qlen_lazy, qlen) \
- do { } while (0)
-#define trace_rcu_batch_start(rcuname, qlen_lazy, qlen, blimit) \
- do { } while (0)
-#define trace_rcu_invoke_callback(rcuname, rhp) do { } while (0)
-#define trace_rcu_invoke_kfree_callback(rcuname, rhp, offset) do { } while (0)
-#define trace_rcu_batch_end(rcuname, callbacks_invoked, cb, nr, iit, risk) \
- do { } while (0)
-#define trace_rcu_torture_read(rcutorturename, rhp) do { } while (0)
-
-#endif /* #else #ifdef CONFIG_RCU_TRACE */
-
-#endif /* _TRACE_RCU_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/regmap.h b/ANDROID_3.4.5/include/trace/events/regmap.h
deleted file mode 100644
index 41a7dbd5..00000000
--- a/ANDROID_3.4.5/include/trace/events/regmap.h
+++ /dev/null
@@ -1,181 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM regmap
-
-#if !defined(_TRACE_REGMAP_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_REGMAP_H
-
-#include <linux/ktime.h>
-#include <linux/tracepoint.h>
-
-struct device;
-struct regmap;
-
-/*
- * Log register events
- */
-DECLARE_EVENT_CLASS(regmap_reg,
-
- TP_PROTO(struct device *dev, unsigned int reg,
- unsigned int val),
-
- TP_ARGS(dev, reg, val),
-
- TP_STRUCT__entry(
- __string( name, dev_name(dev) )
- __field( unsigned int, reg )
- __field( unsigned int, val )
- ),
-
- TP_fast_assign(
- __assign_str(name, dev_name(dev));
- __entry->reg = reg;
- __entry->val = val;
- ),
-
- TP_printk("%s reg=%x val=%x", __get_str(name),
- (unsigned int)__entry->reg,
- (unsigned int)__entry->val)
-);
-
-DEFINE_EVENT(regmap_reg, regmap_reg_write,
-
- TP_PROTO(struct device *dev, unsigned int reg,
- unsigned int val),
-
- TP_ARGS(dev, reg, val)
-
-);
-
-DEFINE_EVENT(regmap_reg, regmap_reg_read,
-
- TP_PROTO(struct device *dev, unsigned int reg,
- unsigned int val),
-
- TP_ARGS(dev, reg, val)
-
-);
-
-DEFINE_EVENT(regmap_reg, regmap_reg_read_cache,
-
- TP_PROTO(struct device *dev, unsigned int reg,
- unsigned int val),
-
- TP_ARGS(dev, reg, val)
-
-);
-
-DECLARE_EVENT_CLASS(regmap_block,
-
- TP_PROTO(struct device *dev, unsigned int reg, int count),
-
- TP_ARGS(dev, reg, count),
-
- TP_STRUCT__entry(
- __string( name, dev_name(dev) )
- __field( unsigned int, reg )
- __field( int, count )
- ),
-
- TP_fast_assign(
- __assign_str(name, dev_name(dev));
- __entry->reg = reg;
- __entry->count = count;
- ),
-
- TP_printk("%s reg=%x count=%d", __get_str(name),
- (unsigned int)__entry->reg,
- (int)__entry->count)
-);
-
-DEFINE_EVENT(regmap_block, regmap_hw_read_start,
-
- TP_PROTO(struct device *dev, unsigned int reg, int count),
-
- TP_ARGS(dev, reg, count)
-);
-
-DEFINE_EVENT(regmap_block, regmap_hw_read_done,
-
- TP_PROTO(struct device *dev, unsigned int reg, int count),
-
- TP_ARGS(dev, reg, count)
-);
-
-DEFINE_EVENT(regmap_block, regmap_hw_write_start,
-
- TP_PROTO(struct device *dev, unsigned int reg, int count),
-
- TP_ARGS(dev, reg, count)
-);
-
-DEFINE_EVENT(regmap_block, regmap_hw_write_done,
-
- TP_PROTO(struct device *dev, unsigned int reg, int count),
-
- TP_ARGS(dev, reg, count)
-);
-
-TRACE_EVENT(regcache_sync,
-
- TP_PROTO(struct device *dev, const char *type,
- const char *status),
-
- TP_ARGS(dev, type, status),
-
- TP_STRUCT__entry(
- __string( name, dev_name(dev) )
- __string( status, status )
- __string( type, type )
- __field( int, type )
- ),
-
- TP_fast_assign(
- __assign_str(name, dev_name(dev));
- __assign_str(status, status);
- __assign_str(type, type);
- ),
-
- TP_printk("%s type=%s status=%s", __get_str(name),
- __get_str(type), __get_str(status))
-);
-
-DECLARE_EVENT_CLASS(regmap_bool,
-
- TP_PROTO(struct device *dev, bool flag),
-
- TP_ARGS(dev, flag),
-
- TP_STRUCT__entry(
- __string( name, dev_name(dev) )
- __field( int, flag )
- ),
-
- TP_fast_assign(
- __assign_str(name, dev_name(dev));
- __entry->flag = flag;
- ),
-
- TP_printk("%s flag=%d", __get_str(name),
- (int)__entry->flag)
-);
-
-DEFINE_EVENT(regmap_bool, regmap_cache_only,
-
- TP_PROTO(struct device *dev, bool flag),
-
- TP_ARGS(dev, flag)
-
-);
-
-DEFINE_EVENT(regmap_bool, regmap_cache_bypass,
-
- TP_PROTO(struct device *dev, bool flag),
-
- TP_ARGS(dev, flag)
-
-);
-
-#endif /* _TRACE_REGMAP_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/regulator.h b/ANDROID_3.4.5/include/trace/events/regulator.h
deleted file mode 100644
index 37502a74..00000000
--- a/ANDROID_3.4.5/include/trace/events/regulator.h
+++ /dev/null
@@ -1,141 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM regulator
-
-#if !defined(_TRACE_REGULATOR_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_REGULATOR_H
-
-#include <linux/ktime.h>
-#include <linux/tracepoint.h>
-
-/*
- * Events which just log themselves and the regulator name for enable/disable
- * type tracking.
- */
-DECLARE_EVENT_CLASS(regulator_basic,
-
- TP_PROTO(const char *name),
-
- TP_ARGS(name),
-
- TP_STRUCT__entry(
- __string( name, name )
- ),
-
- TP_fast_assign(
- __assign_str(name, name);
- ),
-
- TP_printk("name=%s", __get_str(name))
-
-);
-
-DEFINE_EVENT(regulator_basic, regulator_enable,
-
- TP_PROTO(const char *name),
-
- TP_ARGS(name)
-
-);
-
-DEFINE_EVENT(regulator_basic, regulator_enable_delay,
-
- TP_PROTO(const char *name),
-
- TP_ARGS(name)
-
-);
-
-DEFINE_EVENT(regulator_basic, regulator_enable_complete,
-
- TP_PROTO(const char *name),
-
- TP_ARGS(name)
-
-);
-
-DEFINE_EVENT(regulator_basic, regulator_disable,
-
- TP_PROTO(const char *name),
-
- TP_ARGS(name)
-
-);
-
-DEFINE_EVENT(regulator_basic, regulator_disable_complete,
-
- TP_PROTO(const char *name),
-
- TP_ARGS(name)
-
-);
-
-/*
- * Events that take a range of numerical values, mostly for voltages
- * and so on.
- */
-DECLARE_EVENT_CLASS(regulator_range,
-
- TP_PROTO(const char *name, int min, int max),
-
- TP_ARGS(name, min, max),
-
- TP_STRUCT__entry(
- __string( name, name )
- __field( int, min )
- __field( int, max )
- ),
-
- TP_fast_assign(
- __assign_str(name, name);
- __entry->min = min;
- __entry->max = max;
- ),
-
- TP_printk("name=%s (%d-%d)", __get_str(name),
- (int)__entry->min, (int)__entry->max)
-);
-
-DEFINE_EVENT(regulator_range, regulator_set_voltage,
-
- TP_PROTO(const char *name, int min, int max),
-
- TP_ARGS(name, min, max)
-
-);
-
-
-/*
- * Events that take a single value, mostly for readback and refcounts.
- */
-DECLARE_EVENT_CLASS(regulator_value,
-
- TP_PROTO(const char *name, unsigned int val),
-
- TP_ARGS(name, val),
-
- TP_STRUCT__entry(
- __string( name, name )
- __field( unsigned int, val )
- ),
-
- TP_fast_assign(
- __assign_str(name, name);
- __entry->val = val;
- ),
-
- TP_printk("name=%s, val=%u", __get_str(name),
- (int)__entry->val)
-);
-
-DEFINE_EVENT(regulator_value, regulator_set_voltage_complete,
-
- TP_PROTO(const char *name, unsigned int value),
-
- TP_ARGS(name, value)
-
-);
-
-#endif /* _TRACE_POWER_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/rpm.h b/ANDROID_3.4.5/include/trace/events/rpm.h
deleted file mode 100644
index 33f85b68..00000000
--- a/ANDROID_3.4.5/include/trace/events/rpm.h
+++ /dev/null
@@ -1,100 +0,0 @@
-
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM rpm
-
-#if !defined(_TRACE_RUNTIME_POWER_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_RUNTIME_POWER_H
-
-#include <linux/ktime.h>
-#include <linux/tracepoint.h>
-
-struct device;
-
-/*
- * The rpm_internal events are used for tracing some important
- * runtime pm internal functions.
- */
-DECLARE_EVENT_CLASS(rpm_internal,
-
- TP_PROTO(struct device *dev, int flags),
-
- TP_ARGS(dev, flags),
-
- TP_STRUCT__entry(
- __string( name, dev_name(dev) )
- __field( int, flags )
- __field( int , usage_count )
- __field( int , disable_depth )
- __field( int , runtime_auto )
- __field( int , request_pending )
- __field( int , irq_safe )
- __field( int , child_count )
- ),
-
- TP_fast_assign(
- __assign_str(name, dev_name(dev));
- __entry->flags = flags;
- __entry->usage_count = atomic_read(
- &dev->power.usage_count);
- __entry->disable_depth = dev->power.disable_depth;
- __entry->runtime_auto = dev->power.runtime_auto;
- __entry->request_pending = dev->power.request_pending;
- __entry->irq_safe = dev->power.irq_safe;
- __entry->child_count = atomic_read(
- &dev->power.child_count);
- ),
-
- TP_printk("%s flags-%x cnt-%-2d dep-%-2d auto-%-1d p-%-1d"
- " irq-%-1d child-%d",
- __get_str(name), __entry->flags,
- __entry->usage_count,
- __entry->disable_depth,
- __entry->runtime_auto,
- __entry->request_pending,
- __entry->irq_safe,
- __entry->child_count
- )
-);
-DEFINE_EVENT(rpm_internal, rpm_suspend,
-
- TP_PROTO(struct device *dev, int flags),
-
- TP_ARGS(dev, flags)
-);
-DEFINE_EVENT(rpm_internal, rpm_resume,
-
- TP_PROTO(struct device *dev, int flags),
-
- TP_ARGS(dev, flags)
-);
-DEFINE_EVENT(rpm_internal, rpm_idle,
-
- TP_PROTO(struct device *dev, int flags),
-
- TP_ARGS(dev, flags)
-);
-
-TRACE_EVENT(rpm_return_int,
- TP_PROTO(struct device *dev, unsigned long ip, int ret),
- TP_ARGS(dev, ip, ret),
-
- TP_STRUCT__entry(
- __string( name, dev_name(dev))
- __field( unsigned long, ip )
- __field( int, ret )
- ),
-
- TP_fast_assign(
- __assign_str(name, dev_name(dev));
- __entry->ip = ip;
- __entry->ret = ret;
- ),
-
- TP_printk("%pS:%s ret=%d", (void *)__entry->ip, __get_str(name),
- __entry->ret)
-);
-
-#endif /* _TRACE_RUNTIME_POWER_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/sched.h b/ANDROID_3.4.5/include/trace/events/sched.h
deleted file mode 100644
index ea7a2035..00000000
--- a/ANDROID_3.4.5/include/trace/events/sched.h
+++ /dev/null
@@ -1,432 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM sched
-
-#if !defined(_TRACE_SCHED_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_SCHED_H
-
-#include <linux/sched.h>
-#include <linux/tracepoint.h>
-#include <linux/binfmts.h>
-
-/*
- * Tracepoint for calling kthread_stop, performed to end a kthread:
- */
-TRACE_EVENT(sched_kthread_stop,
-
- TP_PROTO(struct task_struct *t),
-
- TP_ARGS(t),
-
- TP_STRUCT__entry(
- __array( char, comm, TASK_COMM_LEN )
- __field( pid_t, pid )
- ),
-
- TP_fast_assign(
- memcpy(__entry->comm, t->comm, TASK_COMM_LEN);
- __entry->pid = t->pid;
- ),
-
- TP_printk("comm=%s pid=%d", __entry->comm, __entry->pid)
-);
-
-/*
- * Tracepoint for the return value of the kthread stopping:
- */
-TRACE_EVENT(sched_kthread_stop_ret,
-
- TP_PROTO(int ret),
-
- TP_ARGS(ret),
-
- TP_STRUCT__entry(
- __field( int, ret )
- ),
-
- TP_fast_assign(
- __entry->ret = ret;
- ),
-
- TP_printk("ret=%d", __entry->ret)
-);
-
-/*
- * Tracepoint for waking up a task:
- */
-DECLARE_EVENT_CLASS(sched_wakeup_template,
-
- TP_PROTO(struct task_struct *p, int success),
-
- TP_ARGS(p, success),
-
- TP_STRUCT__entry(
- __array( char, comm, TASK_COMM_LEN )
- __field( pid_t, pid )
- __field( int, prio )
- __field( int, success )
- __field( int, target_cpu )
- ),
-
- TP_fast_assign(
- memcpy(__entry->comm, p->comm, TASK_COMM_LEN);
- __entry->pid = p->pid;
- __entry->prio = p->prio;
- __entry->success = success;
- __entry->target_cpu = task_cpu(p);
- ),
-
- TP_printk("comm=%s pid=%d prio=%d success=%d target_cpu=%03d",
- __entry->comm, __entry->pid, __entry->prio,
- __entry->success, __entry->target_cpu)
-);
-
-DEFINE_EVENT(sched_wakeup_template, sched_wakeup,
- TP_PROTO(struct task_struct *p, int success),
- TP_ARGS(p, success));
-
-/*
- * Tracepoint for waking up a new task:
- */
-DEFINE_EVENT(sched_wakeup_template, sched_wakeup_new,
- TP_PROTO(struct task_struct *p, int success),
- TP_ARGS(p, success));
-
-#ifdef CREATE_TRACE_POINTS
-static inline long __trace_sched_switch_state(struct task_struct *p)
-{
- long state = p->state;
-
-#ifdef CONFIG_PREEMPT
- /*
- * For all intents and purposes a preempted task is a running task.
- */
- if (task_thread_info(p)->preempt_count & PREEMPT_ACTIVE)
- state = TASK_RUNNING | TASK_STATE_MAX;
-#endif
-
- return state;
-}
-#endif
-
-/*
- * Tracepoint for task switches, performed by the scheduler:
- */
-TRACE_EVENT(sched_switch,
-
- TP_PROTO(struct task_struct *prev,
- struct task_struct *next),
-
- TP_ARGS(prev, next),
-
- TP_STRUCT__entry(
- __array( char, prev_comm, TASK_COMM_LEN )
- __field( pid_t, prev_pid )
- __field( int, prev_prio )
- __field( long, prev_state )
- __array( char, next_comm, TASK_COMM_LEN )
- __field( pid_t, next_pid )
- __field( int, next_prio )
- ),
-
- TP_fast_assign(
- memcpy(__entry->next_comm, next->comm, TASK_COMM_LEN);
- __entry->prev_pid = prev->pid;
- __entry->prev_prio = prev->prio;
- __entry->prev_state = __trace_sched_switch_state(prev);
- memcpy(__entry->prev_comm, prev->comm, TASK_COMM_LEN);
- __entry->next_pid = next->pid;
- __entry->next_prio = next->prio;
- ),
-
- TP_printk("prev_comm=%s prev_pid=%d prev_prio=%d prev_state=%s%s ==> next_comm=%s next_pid=%d next_prio=%d",
- __entry->prev_comm, __entry->prev_pid, __entry->prev_prio,
- __entry->prev_state & (TASK_STATE_MAX-1) ?
- __print_flags(__entry->prev_state & (TASK_STATE_MAX-1), "|",
- { 1, "S"} , { 2, "D" }, { 4, "T" }, { 8, "t" },
- { 16, "Z" }, { 32, "X" }, { 64, "x" },
- { 128, "W" }) : "R",
- __entry->prev_state & TASK_STATE_MAX ? "+" : "",
- __entry->next_comm, __entry->next_pid, __entry->next_prio)
-);
-
-/*
- * Tracepoint for a task being migrated:
- */
-TRACE_EVENT(sched_migrate_task,
-
- TP_PROTO(struct task_struct *p, int dest_cpu),
-
- TP_ARGS(p, dest_cpu),
-
- TP_STRUCT__entry(
- __array( char, comm, TASK_COMM_LEN )
- __field( pid_t, pid )
- __field( int, prio )
- __field( int, orig_cpu )
- __field( int, dest_cpu )
- ),
-
- TP_fast_assign(
- memcpy(__entry->comm, p->comm, TASK_COMM_LEN);
- __entry->pid = p->pid;
- __entry->prio = p->prio;
- __entry->orig_cpu = task_cpu(p);
- __entry->dest_cpu = dest_cpu;
- ),
-
- TP_printk("comm=%s pid=%d prio=%d orig_cpu=%d dest_cpu=%d",
- __entry->comm, __entry->pid, __entry->prio,
- __entry->orig_cpu, __entry->dest_cpu)
-);
-
-DECLARE_EVENT_CLASS(sched_process_template,
-
- TP_PROTO(struct task_struct *p),
-
- TP_ARGS(p),
-
- TP_STRUCT__entry(
- __array( char, comm, TASK_COMM_LEN )
- __field( pid_t, pid )
- __field( int, prio )
- ),
-
- TP_fast_assign(
- memcpy(__entry->comm, p->comm, TASK_COMM_LEN);
- __entry->pid = p->pid;
- __entry->prio = p->prio;
- ),
-
- TP_printk("comm=%s pid=%d prio=%d",
- __entry->comm, __entry->pid, __entry->prio)
-);
-
-/*
- * Tracepoint for freeing a task:
- */
-DEFINE_EVENT(sched_process_template, sched_process_free,
- TP_PROTO(struct task_struct *p),
- TP_ARGS(p));
-
-
-/*
- * Tracepoint for a task exiting:
- */
-DEFINE_EVENT(sched_process_template, sched_process_exit,
- TP_PROTO(struct task_struct *p),
- TP_ARGS(p));
-
-/*
- * Tracepoint for waiting on task to unschedule:
- */
-DEFINE_EVENT(sched_process_template, sched_wait_task,
- TP_PROTO(struct task_struct *p),
- TP_ARGS(p));
-
-/*
- * Tracepoint for a waiting task:
- */
-TRACE_EVENT(sched_process_wait,
-
- TP_PROTO(struct pid *pid),
-
- TP_ARGS(pid),
-
- TP_STRUCT__entry(
- __array( char, comm, TASK_COMM_LEN )
- __field( pid_t, pid )
- __field( int, prio )
- ),
-
- TP_fast_assign(
- memcpy(__entry->comm, current->comm, TASK_COMM_LEN);
- __entry->pid = pid_nr(pid);
- __entry->prio = current->prio;
- ),
-
- TP_printk("comm=%s pid=%d prio=%d",
- __entry->comm, __entry->pid, __entry->prio)
-);
-
-/*
- * Tracepoint for do_fork:
- */
-TRACE_EVENT(sched_process_fork,
-
- TP_PROTO(struct task_struct *parent, struct task_struct *child),
-
- TP_ARGS(parent, child),
-
- TP_STRUCT__entry(
- __array( char, parent_comm, TASK_COMM_LEN )
- __field( pid_t, parent_pid )
- __array( char, child_comm, TASK_COMM_LEN )
- __field( pid_t, child_pid )
- ),
-
- TP_fast_assign(
- memcpy(__entry->parent_comm, parent->comm, TASK_COMM_LEN);
- __entry->parent_pid = parent->pid;
- memcpy(__entry->child_comm, child->comm, TASK_COMM_LEN);
- __entry->child_pid = child->pid;
- ),
-
- TP_printk("comm=%s pid=%d child_comm=%s child_pid=%d",
- __entry->parent_comm, __entry->parent_pid,
- __entry->child_comm, __entry->child_pid)
-);
-
-/*
- * Tracepoint for exec:
- */
-TRACE_EVENT(sched_process_exec,
-
- TP_PROTO(struct task_struct *p, pid_t old_pid,
- struct linux_binprm *bprm),
-
- TP_ARGS(p, old_pid, bprm),
-
- TP_STRUCT__entry(
- __string( filename, bprm->filename )
- __field( pid_t, pid )
- __field( pid_t, old_pid )
- ),
-
- TP_fast_assign(
- __assign_str(filename, bprm->filename);
- __entry->pid = p->pid;
- __entry->old_pid = old_pid;
- ),
-
- TP_printk("filename=%s pid=%d old_pid=%d", __get_str(filename),
- __entry->pid, __entry->old_pid)
-);
-
-/*
- * XXX the below sched_stat tracepoints only apply to SCHED_OTHER/BATCH/IDLE
- * adding sched_stat support to SCHED_FIFO/RR would be welcome.
- */
-DECLARE_EVENT_CLASS(sched_stat_template,
-
- TP_PROTO(struct task_struct *tsk, u64 delay),
-
- TP_ARGS(tsk, delay),
-
- TP_STRUCT__entry(
- __array( char, comm, TASK_COMM_LEN )
- __field( pid_t, pid )
- __field( u64, delay )
- ),
-
- TP_fast_assign(
- memcpy(__entry->comm, tsk->comm, TASK_COMM_LEN);
- __entry->pid = tsk->pid;
- __entry->delay = delay;
- )
- TP_perf_assign(
- __perf_count(delay);
- ),
-
- TP_printk("comm=%s pid=%d delay=%Lu [ns]",
- __entry->comm, __entry->pid,
- (unsigned long long)__entry->delay)
-);
-
-
-/*
- * Tracepoint for accounting wait time (time the task is runnable
- * but not actually running due to scheduler contention).
- */
-DEFINE_EVENT(sched_stat_template, sched_stat_wait,
- TP_PROTO(struct task_struct *tsk, u64 delay),
- TP_ARGS(tsk, delay));
-
-/*
- * Tracepoint for accounting sleep time (time the task is not runnable,
- * including iowait, see below).
- */
-DEFINE_EVENT(sched_stat_template, sched_stat_sleep,
- TP_PROTO(struct task_struct *tsk, u64 delay),
- TP_ARGS(tsk, delay));
-
-/*
- * Tracepoint for accounting iowait time (time the task is not runnable
- * due to waiting on IO to complete).
- */
-DEFINE_EVENT(sched_stat_template, sched_stat_iowait,
- TP_PROTO(struct task_struct *tsk, u64 delay),
- TP_ARGS(tsk, delay));
-
-/*
- * Tracepoint for accounting blocked time (time the task is in uninterruptible).
- */
-DEFINE_EVENT(sched_stat_template, sched_stat_blocked,
- TP_PROTO(struct task_struct *tsk, u64 delay),
- TP_ARGS(tsk, delay));
-
-/*
- * Tracepoint for accounting runtime (time the task is executing
- * on a CPU).
- */
-TRACE_EVENT(sched_stat_runtime,
-
- TP_PROTO(struct task_struct *tsk, u64 runtime, u64 vruntime),
-
- TP_ARGS(tsk, runtime, vruntime),
-
- TP_STRUCT__entry(
- __array( char, comm, TASK_COMM_LEN )
- __field( pid_t, pid )
- __field( u64, runtime )
- __field( u64, vruntime )
- ),
-
- TP_fast_assign(
- memcpy(__entry->comm, tsk->comm, TASK_COMM_LEN);
- __entry->pid = tsk->pid;
- __entry->runtime = runtime;
- __entry->vruntime = vruntime;
- )
- TP_perf_assign(
- __perf_count(runtime);
- ),
-
- TP_printk("comm=%s pid=%d runtime=%Lu [ns] vruntime=%Lu [ns]",
- __entry->comm, __entry->pid,
- (unsigned long long)__entry->runtime,
- (unsigned long long)__entry->vruntime)
-);
-
-/*
- * Tracepoint for showing priority inheritance modifying a tasks
- * priority.
- */
-TRACE_EVENT(sched_pi_setprio,
-
- TP_PROTO(struct task_struct *tsk, int newprio),
-
- TP_ARGS(tsk, newprio),
-
- TP_STRUCT__entry(
- __array( char, comm, TASK_COMM_LEN )
- __field( pid_t, pid )
- __field( int, oldprio )
- __field( int, newprio )
- ),
-
- TP_fast_assign(
- memcpy(__entry->comm, tsk->comm, TASK_COMM_LEN);
- __entry->pid = tsk->pid;
- __entry->oldprio = tsk->prio;
- __entry->newprio = newprio;
- ),
-
- TP_printk("comm=%s pid=%d oldprio=%d newprio=%d",
- __entry->comm, __entry->pid,
- __entry->oldprio, __entry->newprio)
-);
-
-#endif /* _TRACE_SCHED_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/scsi.h b/ANDROID_3.4.5/include/trace/events/scsi.h
deleted file mode 100644
index db6c9351..00000000
--- a/ANDROID_3.4.5/include/trace/events/scsi.h
+++ /dev/null
@@ -1,365 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM scsi
-
-#if !defined(_TRACE_SCSI_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_SCSI_H
-
-#include <scsi/scsi_cmnd.h>
-#include <scsi/scsi_host.h>
-#include <linux/tracepoint.h>
-#include <linux/trace_seq.h>
-
-#define scsi_opcode_name(opcode) { opcode, #opcode }
-#define show_opcode_name(val) \
- __print_symbolic(val, \
- scsi_opcode_name(TEST_UNIT_READY), \
- scsi_opcode_name(REZERO_UNIT), \
- scsi_opcode_name(REQUEST_SENSE), \
- scsi_opcode_name(FORMAT_UNIT), \
- scsi_opcode_name(READ_BLOCK_LIMITS), \
- scsi_opcode_name(REASSIGN_BLOCKS), \
- scsi_opcode_name(INITIALIZE_ELEMENT_STATUS), \
- scsi_opcode_name(READ_6), \
- scsi_opcode_name(WRITE_6), \
- scsi_opcode_name(SEEK_6), \
- scsi_opcode_name(READ_REVERSE), \
- scsi_opcode_name(WRITE_FILEMARKS), \
- scsi_opcode_name(SPACE), \
- scsi_opcode_name(INQUIRY), \
- scsi_opcode_name(RECOVER_BUFFERED_DATA), \
- scsi_opcode_name(MODE_SELECT), \
- scsi_opcode_name(RESERVE), \
- scsi_opcode_name(RELEASE), \
- scsi_opcode_name(COPY), \
- scsi_opcode_name(ERASE), \
- scsi_opcode_name(MODE_SENSE), \
- scsi_opcode_name(START_STOP), \
- scsi_opcode_name(RECEIVE_DIAGNOSTIC), \
- scsi_opcode_name(SEND_DIAGNOSTIC), \
- scsi_opcode_name(ALLOW_MEDIUM_REMOVAL), \
- scsi_opcode_name(SET_WINDOW), \
- scsi_opcode_name(READ_CAPACITY), \
- scsi_opcode_name(READ_10), \
- scsi_opcode_name(WRITE_10), \
- scsi_opcode_name(SEEK_10), \
- scsi_opcode_name(POSITION_TO_ELEMENT), \
- scsi_opcode_name(WRITE_VERIFY), \
- scsi_opcode_name(VERIFY), \
- scsi_opcode_name(SEARCH_HIGH), \
- scsi_opcode_name(SEARCH_EQUAL), \
- scsi_opcode_name(SEARCH_LOW), \
- scsi_opcode_name(SET_LIMITS), \
- scsi_opcode_name(PRE_FETCH), \
- scsi_opcode_name(READ_POSITION), \
- scsi_opcode_name(SYNCHRONIZE_CACHE), \
- scsi_opcode_name(LOCK_UNLOCK_CACHE), \
- scsi_opcode_name(READ_DEFECT_DATA), \
- scsi_opcode_name(MEDIUM_SCAN), \
- scsi_opcode_name(COMPARE), \
- scsi_opcode_name(COPY_VERIFY), \
- scsi_opcode_name(WRITE_BUFFER), \
- scsi_opcode_name(READ_BUFFER), \
- scsi_opcode_name(UPDATE_BLOCK), \
- scsi_opcode_name(READ_LONG), \
- scsi_opcode_name(WRITE_LONG), \
- scsi_opcode_name(CHANGE_DEFINITION), \
- scsi_opcode_name(WRITE_SAME), \
- scsi_opcode_name(UNMAP), \
- scsi_opcode_name(READ_TOC), \
- scsi_opcode_name(LOG_SELECT), \
- scsi_opcode_name(LOG_SENSE), \
- scsi_opcode_name(XDWRITEREAD_10), \
- scsi_opcode_name(MODE_SELECT_10), \
- scsi_opcode_name(RESERVE_10), \
- scsi_opcode_name(RELEASE_10), \
- scsi_opcode_name(MODE_SENSE_10), \
- scsi_opcode_name(PERSISTENT_RESERVE_IN), \
- scsi_opcode_name(PERSISTENT_RESERVE_OUT), \
- scsi_opcode_name(VARIABLE_LENGTH_CMD), \
- scsi_opcode_name(REPORT_LUNS), \
- scsi_opcode_name(MAINTENANCE_IN), \
- scsi_opcode_name(MAINTENANCE_OUT), \
- scsi_opcode_name(MOVE_MEDIUM), \
- scsi_opcode_name(EXCHANGE_MEDIUM), \
- scsi_opcode_name(READ_12), \
- scsi_opcode_name(WRITE_12), \
- scsi_opcode_name(WRITE_VERIFY_12), \
- scsi_opcode_name(SEARCH_HIGH_12), \
- scsi_opcode_name(SEARCH_EQUAL_12), \
- scsi_opcode_name(SEARCH_LOW_12), \
- scsi_opcode_name(READ_ELEMENT_STATUS), \
- scsi_opcode_name(SEND_VOLUME_TAG), \
- scsi_opcode_name(WRITE_LONG_2), \
- scsi_opcode_name(READ_16), \
- scsi_opcode_name(WRITE_16), \
- scsi_opcode_name(VERIFY_16), \
- scsi_opcode_name(WRITE_SAME_16), \
- scsi_opcode_name(SERVICE_ACTION_IN), \
- scsi_opcode_name(SAI_READ_CAPACITY_16), \
- scsi_opcode_name(SAI_GET_LBA_STATUS), \
- scsi_opcode_name(MI_REPORT_TARGET_PGS), \
- scsi_opcode_name(MO_SET_TARGET_PGS), \
- scsi_opcode_name(READ_32), \
- scsi_opcode_name(WRITE_32), \
- scsi_opcode_name(WRITE_SAME_32), \
- scsi_opcode_name(ATA_16), \
- scsi_opcode_name(ATA_12))
-
-#define scsi_hostbyte_name(result) { result, #result }
-#define show_hostbyte_name(val) \
- __print_symbolic(val, \
- scsi_hostbyte_name(DID_OK), \
- scsi_hostbyte_name(DID_NO_CONNECT), \
- scsi_hostbyte_name(DID_BUS_BUSY), \
- scsi_hostbyte_name(DID_TIME_OUT), \
- scsi_hostbyte_name(DID_BAD_TARGET), \
- scsi_hostbyte_name(DID_ABORT), \
- scsi_hostbyte_name(DID_PARITY), \
- scsi_hostbyte_name(DID_ERROR), \
- scsi_hostbyte_name(DID_RESET), \
- scsi_hostbyte_name(DID_BAD_INTR), \
- scsi_hostbyte_name(DID_PASSTHROUGH), \
- scsi_hostbyte_name(DID_SOFT_ERROR), \
- scsi_hostbyte_name(DID_IMM_RETRY), \
- scsi_hostbyte_name(DID_REQUEUE), \
- scsi_hostbyte_name(DID_TRANSPORT_DISRUPTED), \
- scsi_hostbyte_name(DID_TRANSPORT_FAILFAST))
-
-#define scsi_driverbyte_name(result) { result, #result }
-#define show_driverbyte_name(val) \
- __print_symbolic(val, \
- scsi_driverbyte_name(DRIVER_OK), \
- scsi_driverbyte_name(DRIVER_BUSY), \
- scsi_driverbyte_name(DRIVER_SOFT), \
- scsi_driverbyte_name(DRIVER_MEDIA), \
- scsi_driverbyte_name(DRIVER_ERROR), \
- scsi_driverbyte_name(DRIVER_INVALID), \
- scsi_driverbyte_name(DRIVER_TIMEOUT), \
- scsi_driverbyte_name(DRIVER_HARD), \
- scsi_driverbyte_name(DRIVER_SENSE))
-
-#define scsi_msgbyte_name(result) { result, #result }
-#define show_msgbyte_name(val) \
- __print_symbolic(val, \
- scsi_msgbyte_name(COMMAND_COMPLETE), \
- scsi_msgbyte_name(EXTENDED_MESSAGE), \
- scsi_msgbyte_name(SAVE_POINTERS), \
- scsi_msgbyte_name(RESTORE_POINTERS), \
- scsi_msgbyte_name(DISCONNECT), \
- scsi_msgbyte_name(INITIATOR_ERROR), \
- scsi_msgbyte_name(ABORT_TASK_SET), \
- scsi_msgbyte_name(MESSAGE_REJECT), \
- scsi_msgbyte_name(NOP), \
- scsi_msgbyte_name(MSG_PARITY_ERROR), \
- scsi_msgbyte_name(LINKED_CMD_COMPLETE), \
- scsi_msgbyte_name(LINKED_FLG_CMD_COMPLETE), \
- scsi_msgbyte_name(TARGET_RESET), \
- scsi_msgbyte_name(ABORT_TASK), \
- scsi_msgbyte_name(CLEAR_TASK_SET), \
- scsi_msgbyte_name(INITIATE_RECOVERY), \
- scsi_msgbyte_name(RELEASE_RECOVERY), \
- scsi_msgbyte_name(CLEAR_ACA), \
- scsi_msgbyte_name(LOGICAL_UNIT_RESET), \
- scsi_msgbyte_name(SIMPLE_QUEUE_TAG), \
- scsi_msgbyte_name(HEAD_OF_QUEUE_TAG), \
- scsi_msgbyte_name(ORDERED_QUEUE_TAG), \
- scsi_msgbyte_name(IGNORE_WIDE_RESIDUE), \
- scsi_msgbyte_name(ACA), \
- scsi_msgbyte_name(QAS_REQUEST), \
- scsi_msgbyte_name(BUS_DEVICE_RESET), \
- scsi_msgbyte_name(ABORT))
-
-#define scsi_statusbyte_name(result) { result, #result }
-#define show_statusbyte_name(val) \
- __print_symbolic(val, \
- scsi_statusbyte_name(SAM_STAT_GOOD), \
- scsi_statusbyte_name(SAM_STAT_CHECK_CONDITION), \
- scsi_statusbyte_name(SAM_STAT_CONDITION_MET), \
- scsi_statusbyte_name(SAM_STAT_BUSY), \
- scsi_statusbyte_name(SAM_STAT_INTERMEDIATE), \
- scsi_statusbyte_name(SAM_STAT_INTERMEDIATE_CONDITION_MET), \
- scsi_statusbyte_name(SAM_STAT_RESERVATION_CONFLICT), \
- scsi_statusbyte_name(SAM_STAT_COMMAND_TERMINATED), \
- scsi_statusbyte_name(SAM_STAT_TASK_SET_FULL), \
- scsi_statusbyte_name(SAM_STAT_ACA_ACTIVE), \
- scsi_statusbyte_name(SAM_STAT_TASK_ABORTED))
-
-#define scsi_prot_op_name(result) { result, #result }
-#define show_prot_op_name(val) \
- __print_symbolic(val, \
- scsi_prot_op_name(SCSI_PROT_NORMAL), \
- scsi_prot_op_name(SCSI_PROT_READ_INSERT), \
- scsi_prot_op_name(SCSI_PROT_WRITE_STRIP), \
- scsi_prot_op_name(SCSI_PROT_READ_STRIP), \
- scsi_prot_op_name(SCSI_PROT_WRITE_INSERT), \
- scsi_prot_op_name(SCSI_PROT_READ_PASS), \
- scsi_prot_op_name(SCSI_PROT_WRITE_PASS))
-
-const char *scsi_trace_parse_cdb(struct trace_seq*, unsigned char*, int);
-#define __parse_cdb(cdb, len) scsi_trace_parse_cdb(p, cdb, len)
-
-TRACE_EVENT(scsi_dispatch_cmd_start,
-
- TP_PROTO(struct scsi_cmnd *cmd),
-
- TP_ARGS(cmd),
-
- TP_STRUCT__entry(
- __field( unsigned int, host_no )
- __field( unsigned int, channel )
- __field( unsigned int, id )
- __field( unsigned int, lun )
- __field( unsigned int, opcode )
- __field( unsigned int, cmd_len )
- __field( unsigned int, data_sglen )
- __field( unsigned int, prot_sglen )
- __field( unsigned char, prot_op )
- __dynamic_array(unsigned char, cmnd, cmd->cmd_len)
- ),
-
- TP_fast_assign(
- __entry->host_no = cmd->device->host->host_no;
- __entry->channel = cmd->device->channel;
- __entry->id = cmd->device->id;
- __entry->lun = cmd->device->lun;
- __entry->opcode = cmd->cmnd[0];
- __entry->cmd_len = cmd->cmd_len;
- __entry->data_sglen = scsi_sg_count(cmd);
- __entry->prot_sglen = scsi_prot_sg_count(cmd);
- __entry->prot_op = scsi_get_prot_op(cmd);
- memcpy(__get_dynamic_array(cmnd), cmd->cmnd, cmd->cmd_len);
- ),
-
- TP_printk("host_no=%u channel=%u id=%u lun=%u data_sgl=%u prot_sgl=%u" \
- " prot_op=%s cmnd=(%s %s raw=%s)",
- __entry->host_no, __entry->channel, __entry->id,
- __entry->lun, __entry->data_sglen, __entry->prot_sglen,
- show_prot_op_name(__entry->prot_op),
- show_opcode_name(__entry->opcode),
- __parse_cdb(__get_dynamic_array(cmnd), __entry->cmd_len),
- __print_hex(__get_dynamic_array(cmnd), __entry->cmd_len))
-);
-
-TRACE_EVENT(scsi_dispatch_cmd_error,
-
- TP_PROTO(struct scsi_cmnd *cmd, int rtn),
-
- TP_ARGS(cmd, rtn),
-
- TP_STRUCT__entry(
- __field( unsigned int, host_no )
- __field( unsigned int, channel )
- __field( unsigned int, id )
- __field( unsigned int, lun )
- __field( int, rtn )
- __field( unsigned int, opcode )
- __field( unsigned int, cmd_len )
- __field( unsigned int, data_sglen )
- __field( unsigned int, prot_sglen )
- __field( unsigned char, prot_op )
- __dynamic_array(unsigned char, cmnd, cmd->cmd_len)
- ),
-
- TP_fast_assign(
- __entry->host_no = cmd->device->host->host_no;
- __entry->channel = cmd->device->channel;
- __entry->id = cmd->device->id;
- __entry->lun = cmd->device->lun;
- __entry->rtn = rtn;
- __entry->opcode = cmd->cmnd[0];
- __entry->cmd_len = cmd->cmd_len;
- __entry->data_sglen = scsi_sg_count(cmd);
- __entry->prot_sglen = scsi_prot_sg_count(cmd);
- __entry->prot_op = scsi_get_prot_op(cmd);
- memcpy(__get_dynamic_array(cmnd), cmd->cmnd, cmd->cmd_len);
- ),
-
- TP_printk("host_no=%u channel=%u id=%u lun=%u data_sgl=%u prot_sgl=%u" \
- " prot_op=%s cmnd=(%s %s raw=%s) rtn=%d",
- __entry->host_no, __entry->channel, __entry->id,
- __entry->lun, __entry->data_sglen, __entry->prot_sglen,
- show_prot_op_name(__entry->prot_op),
- show_opcode_name(__entry->opcode),
- __parse_cdb(__get_dynamic_array(cmnd), __entry->cmd_len),
- __print_hex(__get_dynamic_array(cmnd), __entry->cmd_len),
- __entry->rtn)
-);
-
-DECLARE_EVENT_CLASS(scsi_cmd_done_timeout_template,
-
- TP_PROTO(struct scsi_cmnd *cmd),
-
- TP_ARGS(cmd),
-
- TP_STRUCT__entry(
- __field( unsigned int, host_no )
- __field( unsigned int, channel )
- __field( unsigned int, id )
- __field( unsigned int, lun )
- __field( int, result )
- __field( unsigned int, opcode )
- __field( unsigned int, cmd_len )
- __field( unsigned int, data_sglen )
- __field( unsigned int, prot_sglen )
- __field( unsigned char, prot_op )
- __dynamic_array(unsigned char, cmnd, cmd->cmd_len)
- ),
-
- TP_fast_assign(
- __entry->host_no = cmd->device->host->host_no;
- __entry->channel = cmd->device->channel;
- __entry->id = cmd->device->id;
- __entry->lun = cmd->device->lun;
- __entry->result = cmd->result;
- __entry->opcode = cmd->cmnd[0];
- __entry->cmd_len = cmd->cmd_len;
- __entry->data_sglen = scsi_sg_count(cmd);
- __entry->prot_sglen = scsi_prot_sg_count(cmd);
- __entry->prot_op = scsi_get_prot_op(cmd);
- memcpy(__get_dynamic_array(cmnd), cmd->cmnd, cmd->cmd_len);
- ),
-
- TP_printk("host_no=%u channel=%u id=%u lun=%u data_sgl=%u " \
- "prot_sgl=%u prot_op=%s cmnd=(%s %s raw=%s) result=(driver=" \
- "%s host=%s message=%s status=%s)",
- __entry->host_no, __entry->channel, __entry->id,
- __entry->lun, __entry->data_sglen, __entry->prot_sglen,
- show_prot_op_name(__entry->prot_op),
- show_opcode_name(__entry->opcode),
- __parse_cdb(__get_dynamic_array(cmnd), __entry->cmd_len),
- __print_hex(__get_dynamic_array(cmnd), __entry->cmd_len),
- show_driverbyte_name(((__entry->result) >> 24) & 0xff),
- show_hostbyte_name(((__entry->result) >> 16) & 0xff),
- show_msgbyte_name(((__entry->result) >> 8) & 0xff),
- show_statusbyte_name(__entry->result & 0xff))
-);
-
-DEFINE_EVENT(scsi_cmd_done_timeout_template, scsi_dispatch_cmd_done,
- TP_PROTO(struct scsi_cmnd *cmd),
- TP_ARGS(cmd));
-
-DEFINE_EVENT(scsi_cmd_done_timeout_template, scsi_dispatch_cmd_timeout,
- TP_PROTO(struct scsi_cmnd *cmd),
- TP_ARGS(cmd));
-
-TRACE_EVENT(scsi_eh_wakeup,
-
- TP_PROTO(struct Scsi_Host *shost),
-
- TP_ARGS(shost),
-
- TP_STRUCT__entry(
- __field( unsigned int, host_no )
- ),
-
- TP_fast_assign(
- __entry->host_no = shost->host_no;
- ),
-
- TP_printk("host_no=%u", __entry->host_no)
-);
-
-#endif /* _TRACE_SCSI_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/signal.h b/ANDROID_3.4.5/include/trace/events/signal.h
deleted file mode 100644
index 39a8a430..00000000
--- a/ANDROID_3.4.5/include/trace/events/signal.h
+++ /dev/null
@@ -1,125 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM signal
-
-#if !defined(_TRACE_SIGNAL_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_SIGNAL_H
-
-#include <linux/signal.h>
-#include <linux/sched.h>
-#include <linux/tracepoint.h>
-
-#define TP_STORE_SIGINFO(__entry, info) \
- do { \
- if (info == SEND_SIG_NOINFO || \
- info == SEND_SIG_FORCED) { \
- __entry->errno = 0; \
- __entry->code = SI_USER; \
- } else if (info == SEND_SIG_PRIV) { \
- __entry->errno = 0; \
- __entry->code = SI_KERNEL; \
- } else { \
- __entry->errno = info->si_errno; \
- __entry->code = info->si_code; \
- } \
- } while (0)
-
-#ifndef TRACE_HEADER_MULTI_READ
-enum {
- TRACE_SIGNAL_DELIVERED,
- TRACE_SIGNAL_IGNORED,
- TRACE_SIGNAL_ALREADY_PENDING,
- TRACE_SIGNAL_OVERFLOW_FAIL,
- TRACE_SIGNAL_LOSE_INFO,
-};
-#endif
-
-/**
- * signal_generate - called when a signal is generated
- * @sig: signal number
- * @info: pointer to struct siginfo
- * @task: pointer to struct task_struct
- * @group: shared or private
- * @result: TRACE_SIGNAL_*
- *
- * Current process sends a 'sig' signal to 'task' process with
- * 'info' siginfo. If 'info' is SEND_SIG_NOINFO or SEND_SIG_PRIV,
- * 'info' is not a pointer and you can't access its field. Instead,
- * SEND_SIG_NOINFO means that si_code is SI_USER, and SEND_SIG_PRIV
- * means that si_code is SI_KERNEL.
- */
-TRACE_EVENT(signal_generate,
-
- TP_PROTO(int sig, struct siginfo *info, struct task_struct *task,
- int group, int result),
-
- TP_ARGS(sig, info, task, group, result),
-
- TP_STRUCT__entry(
- __field( int, sig )
- __field( int, errno )
- __field( int, code )
- __array( char, comm, TASK_COMM_LEN )
- __field( pid_t, pid )
- __field( int, group )
- __field( int, result )
- ),
-
- TP_fast_assign(
- __entry->sig = sig;
- TP_STORE_SIGINFO(__entry, info);
- memcpy(__entry->comm, task->comm, TASK_COMM_LEN);
- __entry->pid = task->pid;
- __entry->group = group;
- __entry->result = result;
- ),
-
- TP_printk("sig=%d errno=%d code=%d comm=%s pid=%d grp=%d res=%d",
- __entry->sig, __entry->errno, __entry->code,
- __entry->comm, __entry->pid, __entry->group,
- __entry->result)
-);
-
-/**
- * signal_deliver - called when a signal is delivered
- * @sig: signal number
- * @info: pointer to struct siginfo
- * @ka: pointer to struct k_sigaction
- *
- * A 'sig' signal is delivered to current process with 'info' siginfo,
- * and it will be handled by 'ka'. ka->sa.sa_handler can be SIG_IGN or
- * SIG_DFL.
- * Note that some signals reported by signal_generate tracepoint can be
- * lost, ignored or modified (by debugger) before hitting this tracepoint.
- * This means, this can show which signals are actually delivered, but
- * matching generated signals and delivered signals may not be correct.
- */
-TRACE_EVENT(signal_deliver,
-
- TP_PROTO(int sig, struct siginfo *info, struct k_sigaction *ka),
-
- TP_ARGS(sig, info, ka),
-
- TP_STRUCT__entry(
- __field( int, sig )
- __field( int, errno )
- __field( int, code )
- __field( unsigned long, sa_handler )
- __field( unsigned long, sa_flags )
- ),
-
- TP_fast_assign(
- __entry->sig = sig;
- TP_STORE_SIGINFO(__entry, info);
- __entry->sa_handler = (unsigned long)ka->sa.sa_handler;
- __entry->sa_flags = ka->sa.sa_flags;
- ),
-
- TP_printk("sig=%d errno=%d code=%d sa_handler=%lx sa_flags=%lx",
- __entry->sig, __entry->errno, __entry->code,
- __entry->sa_handler, __entry->sa_flags)
-);
-
-#endif /* _TRACE_SIGNAL_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/skb.h b/ANDROID_3.4.5/include/trace/events/skb.h
deleted file mode 100644
index 0c68ae22..00000000
--- a/ANDROID_3.4.5/include/trace/events/skb.h
+++ /dev/null
@@ -1,75 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM skb
-
-#if !defined(_TRACE_SKB_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_SKB_H
-
-#include <linux/skbuff.h>
-#include <linux/netdevice.h>
-#include <linux/tracepoint.h>
-
-/*
- * Tracepoint for free an sk_buff:
- */
-TRACE_EVENT(kfree_skb,
-
- TP_PROTO(struct sk_buff *skb, void *location),
-
- TP_ARGS(skb, location),
-
- TP_STRUCT__entry(
- __field( void *, skbaddr )
- __field( void *, location )
- __field( unsigned short, protocol )
- ),
-
- TP_fast_assign(
- __entry->skbaddr = skb;
- __entry->location = location;
- __entry->protocol = ntohs(skb->protocol);
- ),
-
- TP_printk("skbaddr=%p protocol=%u location=%p",
- __entry->skbaddr, __entry->protocol, __entry->location)
-);
-
-TRACE_EVENT(consume_skb,
-
- TP_PROTO(struct sk_buff *skb),
-
- TP_ARGS(skb),
-
- TP_STRUCT__entry(
- __field( void *, skbaddr )
- ),
-
- TP_fast_assign(
- __entry->skbaddr = skb;
- ),
-
- TP_printk("skbaddr=%p", __entry->skbaddr)
-);
-
-TRACE_EVENT(skb_copy_datagram_iovec,
-
- TP_PROTO(const struct sk_buff *skb, int len),
-
- TP_ARGS(skb, len),
-
- TP_STRUCT__entry(
- __field( const void *, skbaddr )
- __field( int, len )
- ),
-
- TP_fast_assign(
- __entry->skbaddr = skb;
- __entry->len = len;
- ),
-
- TP_printk("skbaddr=%p len=%d", __entry->skbaddr, __entry->len)
-);
-
-#endif /* _TRACE_SKB_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/sock.h b/ANDROID_3.4.5/include/trace/events/sock.h
deleted file mode 100644
index 779abb91..00000000
--- a/ANDROID_3.4.5/include/trace/events/sock.h
+++ /dev/null
@@ -1,68 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM sock
-
-#if !defined(_TRACE_SOCK_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_SOCK_H
-
-#include <net/sock.h>
-#include <linux/tracepoint.h>
-
-TRACE_EVENT(sock_rcvqueue_full,
-
- TP_PROTO(struct sock *sk, struct sk_buff *skb),
-
- TP_ARGS(sk, skb),
-
- TP_STRUCT__entry(
- __field(int, rmem_alloc)
- __field(unsigned int, truesize)
- __field(int, sk_rcvbuf)
- ),
-
- TP_fast_assign(
- __entry->rmem_alloc = atomic_read(&sk->sk_rmem_alloc);
- __entry->truesize = skb->truesize;
- __entry->sk_rcvbuf = sk->sk_rcvbuf;
- ),
-
- TP_printk("rmem_alloc=%d truesize=%u sk_rcvbuf=%d",
- __entry->rmem_alloc, __entry->truesize, __entry->sk_rcvbuf)
-);
-
-TRACE_EVENT(sock_exceed_buf_limit,
-
- TP_PROTO(struct sock *sk, struct proto *prot, long allocated),
-
- TP_ARGS(sk, prot, allocated),
-
- TP_STRUCT__entry(
- __array(char, name, 32)
- __field(long *, sysctl_mem)
- __field(long, allocated)
- __field(int, sysctl_rmem)
- __field(int, rmem_alloc)
- ),
-
- TP_fast_assign(
- strncpy(__entry->name, prot->name, 32);
- __entry->sysctl_mem = prot->sysctl_mem;
- __entry->allocated = allocated;
- __entry->sysctl_rmem = prot->sysctl_rmem[0];
- __entry->rmem_alloc = atomic_read(&sk->sk_rmem_alloc);
- ),
-
- TP_printk("proto:%s sysctl_mem=%ld,%ld,%ld allocated=%ld "
- "sysctl_rmem=%d rmem_alloc=%d",
- __entry->name,
- __entry->sysctl_mem[0],
- __entry->sysctl_mem[1],
- __entry->sysctl_mem[2],
- __entry->allocated,
- __entry->sysctl_rmem,
- __entry->rmem_alloc)
-);
-
-#endif /* _TRACE_SOCK_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/sunrpc.h b/ANDROID_3.4.5/include/trace/events/sunrpc.h
deleted file mode 100644
index 43be87d5..00000000
--- a/ANDROID_3.4.5/include/trace/events/sunrpc.h
+++ /dev/null
@@ -1,177 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM sunrpc
-
-#if !defined(_TRACE_SUNRPC_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_SUNRPC_H
-
-#include <linux/sunrpc/sched.h>
-#include <linux/sunrpc/clnt.h>
-#include <linux/tracepoint.h>
-
-DECLARE_EVENT_CLASS(rpc_task_status,
-
- TP_PROTO(struct rpc_task *task),
-
- TP_ARGS(task),
-
- TP_STRUCT__entry(
- __field(const struct rpc_task *, task)
- __field(const struct rpc_clnt *, clnt)
- __field(int, status)
- ),
-
- TP_fast_assign(
- __entry->task = task;
- __entry->clnt = task->tk_client;
- __entry->status = task->tk_status;
- ),
-
- TP_printk("task:%p@%p, status %d",__entry->task, __entry->clnt, __entry->status)
-);
-
-DEFINE_EVENT(rpc_task_status, rpc_call_status,
- TP_PROTO(struct rpc_task *task),
-
- TP_ARGS(task)
-);
-
-DEFINE_EVENT(rpc_task_status, rpc_bind_status,
- TP_PROTO(struct rpc_task *task),
-
- TP_ARGS(task)
-);
-
-TRACE_EVENT(rpc_connect_status,
- TP_PROTO(struct rpc_task *task, int status),
-
- TP_ARGS(task, status),
-
- TP_STRUCT__entry(
- __field(const struct rpc_task *, task)
- __field(const struct rpc_clnt *, clnt)
- __field(int, status)
- ),
-
- TP_fast_assign(
- __entry->task = task;
- __entry->clnt = task->tk_client;
- __entry->status = status;
- ),
-
- TP_printk("task:%p@%p, status %d",__entry->task, __entry->clnt, __entry->status)
-);
-
-DECLARE_EVENT_CLASS(rpc_task_running,
-
- TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
-
- TP_ARGS(clnt, task, action),
-
- TP_STRUCT__entry(
- __field(const struct rpc_clnt *, clnt)
- __field(const struct rpc_task *, task)
- __field(const void *, action)
- __field(unsigned long, runstate)
- __field(int, status)
- __field(unsigned short, flags)
- ),
-
- TP_fast_assign(
- __entry->clnt = clnt;
- __entry->task = task;
- __entry->action = action;
- __entry->runstate = task->tk_runstate;
- __entry->status = task->tk_status;
- __entry->flags = task->tk_flags;
- ),
-
- TP_printk("task:%p@%p flags=%4.4x state=%4.4lx status=%d action=%pf",
- __entry->task,
- __entry->clnt,
- __entry->flags,
- __entry->runstate,
- __entry->status,
- __entry->action
- )
-);
-
-DEFINE_EVENT(rpc_task_running, rpc_task_begin,
-
- TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
-
- TP_ARGS(clnt, task, action)
-
-);
-
-DEFINE_EVENT(rpc_task_running, rpc_task_run_action,
-
- TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
-
- TP_ARGS(clnt, task, action)
-
-);
-
-DEFINE_EVENT(rpc_task_running, rpc_task_complete,
-
- TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
-
- TP_ARGS(clnt, task, action)
-
-);
-
-DECLARE_EVENT_CLASS(rpc_task_queued,
-
- TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q),
-
- TP_ARGS(clnt, task, q),
-
- TP_STRUCT__entry(
- __field(const struct rpc_clnt *, clnt)
- __field(const struct rpc_task *, task)
- __field(unsigned long, timeout)
- __field(unsigned long, runstate)
- __field(int, status)
- __field(unsigned short, flags)
- __string(q_name, rpc_qname(q))
- ),
-
- TP_fast_assign(
- __entry->clnt = clnt;
- __entry->task = task;
- __entry->timeout = task->tk_timeout;
- __entry->runstate = task->tk_runstate;
- __entry->status = task->tk_status;
- __entry->flags = task->tk_flags;
- __assign_str(q_name, rpc_qname(q));
- ),
-
- TP_printk("task:%p@%p flags=%4.4x state=%4.4lx status=%d timeout=%lu queue=%s",
- __entry->task,
- __entry->clnt,
- __entry->flags,
- __entry->runstate,
- __entry->status,
- __entry->timeout,
- __get_str(q_name)
- )
-);
-
-DEFINE_EVENT(rpc_task_queued, rpc_task_sleep,
-
- TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q),
-
- TP_ARGS(clnt, task, q)
-
-);
-
-DEFINE_EVENT(rpc_task_queued, rpc_task_wakeup,
-
- TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q),
-
- TP_ARGS(clnt, task, q)
-
-);
-
-#endif /* _TRACE_SUNRPC_H */
-
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/sync.h b/ANDROID_3.4.5/include/trace/events/sync.h
deleted file mode 100644
index f31bc63c..00000000
--- a/ANDROID_3.4.5/include/trace/events/sync.h
+++ /dev/null
@@ -1,82 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM sync
-
-#if !defined(_TRACE_SYNC_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_SYNC_H
-
-#include <linux/sync.h>
-#include <linux/tracepoint.h>
-
-TRACE_EVENT(sync_timeline,
- TP_PROTO(struct sync_timeline *timeline),
-
- TP_ARGS(timeline),
-
- TP_STRUCT__entry(
- __string(name, timeline->name)
- __array(char, value, 32)
- ),
-
- TP_fast_assign(
- __assign_str(name, timeline->name);
- if (timeline->ops->timeline_value_str) {
- timeline->ops->timeline_value_str(timeline,
- __entry->value,
- sizeof(__entry->value));
- } else {
- __entry->value[0] = '\0';
- }
- ),
-
- TP_printk("name=%s value=%s", __get_str(name), __entry->value)
-);
-
-TRACE_EVENT(sync_wait,
- TP_PROTO(struct sync_fence *fence, int begin),
-
- TP_ARGS(fence, begin),
-
- TP_STRUCT__entry(
- __string(name, fence->name)
- __field(s32, status)
- __field(u32, begin)
- ),
-
- TP_fast_assign(
- __assign_str(name, fence->name);
- __entry->status = fence->status;
- __entry->begin = begin;
- ),
-
- TP_printk("%s name=%s state=%d", __entry->begin ? "begin" : "end",
- __get_str(name), __entry->status)
-);
-
-TRACE_EVENT(sync_pt,
- TP_PROTO(struct sync_pt *pt),
-
- TP_ARGS(pt),
-
- TP_STRUCT__entry(
- __string(timeline, pt->parent->name)
- __array(char, value, 32)
- ),
-
- TP_fast_assign(
- __assign_str(timeline, pt->parent->name);
- if (pt->parent->ops->pt_value_str) {
- pt->parent->ops->pt_value_str(pt,
- __entry->value,
- sizeof(__entry->value));
- } else {
- __entry->value[0] = '\0';
- }
- ),
-
- TP_printk("name=%s value=%s", __get_str(timeline), __entry->value)
- );
-
-#endif /* if !defined(_TRACE_SYNC_H) || defined(TRACE_HEADER_MULTI_READ) */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/syscalls.h b/ANDROID_3.4.5/include/trace/events/syscalls.h
deleted file mode 100644
index 5a4c04a7..00000000
--- a/ANDROID_3.4.5/include/trace/events/syscalls.h
+++ /dev/null
@@ -1,75 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM raw_syscalls
-#define TRACE_INCLUDE_FILE syscalls
-
-#if !defined(_TRACE_EVENTS_SYSCALLS_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_EVENTS_SYSCALLS_H
-
-#include <linux/tracepoint.h>
-
-#include <asm/ptrace.h>
-#include <asm/syscall.h>
-
-
-#ifdef CONFIG_HAVE_SYSCALL_TRACEPOINTS
-
-extern void syscall_regfunc(void);
-extern void syscall_unregfunc(void);
-
-TRACE_EVENT_FN(sys_enter,
-
- TP_PROTO(struct pt_regs *regs, long id),
-
- TP_ARGS(regs, id),
-
- TP_STRUCT__entry(
- __field( long, id )
- __array( unsigned long, args, 6 )
- ),
-
- TP_fast_assign(
- __entry->id = id;
- syscall_get_arguments(current, regs, 0, 6, __entry->args);
- ),
-
- TP_printk("NR %ld (%lx, %lx, %lx, %lx, %lx, %lx)",
- __entry->id,
- __entry->args[0], __entry->args[1], __entry->args[2],
- __entry->args[3], __entry->args[4], __entry->args[5]),
-
- syscall_regfunc, syscall_unregfunc
-);
-
-TRACE_EVENT_FLAGS(sys_enter, TRACE_EVENT_FL_CAP_ANY)
-
-TRACE_EVENT_FN(sys_exit,
-
- TP_PROTO(struct pt_regs *regs, long ret),
-
- TP_ARGS(regs, ret),
-
- TP_STRUCT__entry(
- __field( long, id )
- __field( long, ret )
- ),
-
- TP_fast_assign(
- __entry->id = syscall_get_nr(current, regs);
- __entry->ret = ret;
- ),
-
- TP_printk("NR %ld = %ld",
- __entry->id, __entry->ret),
-
- syscall_regfunc, syscall_unregfunc
-);
-
-TRACE_EVENT_FLAGS(sys_exit, TRACE_EVENT_FL_CAP_ANY)
-
-#endif /* CONFIG_HAVE_SYSCALL_TRACEPOINTS */
-
-#endif /* _TRACE_EVENTS_SYSCALLS_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
-
diff --git a/ANDROID_3.4.5/include/trace/events/task.h b/ANDROID_3.4.5/include/trace/events/task.h
deleted file mode 100644
index b53add02..00000000
--- a/ANDROID_3.4.5/include/trace/events/task.h
+++ /dev/null
@@ -1,61 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM task
-
-#if !defined(_TRACE_TASK_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_TASK_H
-#include <linux/tracepoint.h>
-
-TRACE_EVENT(task_newtask,
-
- TP_PROTO(struct task_struct *task, unsigned long clone_flags),
-
- TP_ARGS(task, clone_flags),
-
- TP_STRUCT__entry(
- __field( pid_t, pid)
- __array( char, comm, TASK_COMM_LEN)
- __field( unsigned long, clone_flags)
- __field( int, oom_score_adj)
- ),
-
- TP_fast_assign(
- __entry->pid = task->pid;
- memcpy(__entry->comm, task->comm, TASK_COMM_LEN);
- __entry->clone_flags = clone_flags;
- __entry->oom_score_adj = task->signal->oom_score_adj;
- ),
-
- TP_printk("pid=%d comm=%s clone_flags=%lx oom_score_adj=%d",
- __entry->pid, __entry->comm,
- __entry->clone_flags, __entry->oom_score_adj)
-);
-
-TRACE_EVENT(task_rename,
-
- TP_PROTO(struct task_struct *task, char *comm),
-
- TP_ARGS(task, comm),
-
- TP_STRUCT__entry(
- __field( pid_t, pid)
- __array( char, oldcomm, TASK_COMM_LEN)
- __array( char, newcomm, TASK_COMM_LEN)
- __field( int, oom_score_adj)
- ),
-
- TP_fast_assign(
- __entry->pid = task->pid;
- memcpy(entry->oldcomm, task->comm, TASK_COMM_LEN);
- memcpy(entry->newcomm, comm, TASK_COMM_LEN);
- __entry->oom_score_adj = task->signal->oom_score_adj;
- ),
-
- TP_printk("pid=%d oldcomm=%s newcomm=%s oom_score_adj=%d",
- __entry->pid, __entry->oldcomm,
- __entry->newcomm, __entry->oom_score_adj)
-);
-
-#endif
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/timer.h b/ANDROID_3.4.5/include/trace/events/timer.h
deleted file mode 100644
index 425bcfe5..00000000
--- a/ANDROID_3.4.5/include/trace/events/timer.h
+++ /dev/null
@@ -1,329 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM timer
-
-#if !defined(_TRACE_TIMER_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_TIMER_H
-
-#include <linux/tracepoint.h>
-#include <linux/hrtimer.h>
-#include <linux/timer.h>
-
-DECLARE_EVENT_CLASS(timer_class,
-
- TP_PROTO(struct timer_list *timer),
-
- TP_ARGS(timer),
-
- TP_STRUCT__entry(
- __field( void *, timer )
- ),
-
- TP_fast_assign(
- __entry->timer = timer;
- ),
-
- TP_printk("timer=%p", __entry->timer)
-);
-
-/**
- * timer_init - called when the timer is initialized
- * @timer: pointer to struct timer_list
- */
-DEFINE_EVENT(timer_class, timer_init,
-
- TP_PROTO(struct timer_list *timer),
-
- TP_ARGS(timer)
-);
-
-/**
- * timer_start - called when the timer is started
- * @timer: pointer to struct timer_list
- * @expires: the timers expiry time
- */
-TRACE_EVENT(timer_start,
-
- TP_PROTO(struct timer_list *timer, unsigned long expires),
-
- TP_ARGS(timer, expires),
-
- TP_STRUCT__entry(
- __field( void *, timer )
- __field( void *, function )
- __field( unsigned long, expires )
- __field( unsigned long, now )
- ),
-
- TP_fast_assign(
- __entry->timer = timer;
- __entry->function = timer->function;
- __entry->expires = expires;
- __entry->now = jiffies;
- ),
-
- TP_printk("timer=%p function=%pf expires=%lu [timeout=%ld]",
- __entry->timer, __entry->function, __entry->expires,
- (long)__entry->expires - __entry->now)
-);
-
-/**
- * timer_expire_entry - called immediately before the timer callback
- * @timer: pointer to struct timer_list
- *
- * Allows to determine the timer latency.
- */
-TRACE_EVENT(timer_expire_entry,
-
- TP_PROTO(struct timer_list *timer),
-
- TP_ARGS(timer),
-
- TP_STRUCT__entry(
- __field( void *, timer )
- __field( unsigned long, now )
- __field( void *, function)
- ),
-
- TP_fast_assign(
- __entry->timer = timer;
- __entry->now = jiffies;
- __entry->function = timer->function;
- ),
-
- TP_printk("timer=%p function=%pf now=%lu", __entry->timer, __entry->function,__entry->now)
-);
-
-/**
- * timer_expire_exit - called immediately after the timer callback returns
- * @timer: pointer to struct timer_list
- *
- * When used in combination with the timer_expire_entry tracepoint we can
- * determine the runtime of the timer callback function.
- *
- * NOTE: Do NOT derefernce timer in TP_fast_assign. The pointer might
- * be invalid. We solely track the pointer.
- */
-DEFINE_EVENT(timer_class, timer_expire_exit,
-
- TP_PROTO(struct timer_list *timer),
-
- TP_ARGS(timer)
-);
-
-/**
- * timer_cancel - called when the timer is canceled
- * @timer: pointer to struct timer_list
- */
-DEFINE_EVENT(timer_class, timer_cancel,
-
- TP_PROTO(struct timer_list *timer),
-
- TP_ARGS(timer)
-);
-
-/**
- * hrtimer_init - called when the hrtimer is initialized
- * @timer: pointer to struct hrtimer
- * @clockid: the hrtimers clock
- * @mode: the hrtimers mode
- */
-TRACE_EVENT(hrtimer_init,
-
- TP_PROTO(struct hrtimer *hrtimer, clockid_t clockid,
- enum hrtimer_mode mode),
-
- TP_ARGS(hrtimer, clockid, mode),
-
- TP_STRUCT__entry(
- __field( void *, hrtimer )
- __field( clockid_t, clockid )
- __field( enum hrtimer_mode, mode )
- ),
-
- TP_fast_assign(
- __entry->hrtimer = hrtimer;
- __entry->clockid = clockid;
- __entry->mode = mode;
- ),
-
- TP_printk("hrtimer=%p clockid=%s mode=%s", __entry->hrtimer,
- __entry->clockid == CLOCK_REALTIME ?
- "CLOCK_REALTIME" : "CLOCK_MONOTONIC",
- __entry->mode == HRTIMER_MODE_ABS ?
- "HRTIMER_MODE_ABS" : "HRTIMER_MODE_REL")
-);
-
-/**
- * hrtimer_start - called when the hrtimer is started
- * @timer: pointer to struct hrtimer
- */
-TRACE_EVENT(hrtimer_start,
-
- TP_PROTO(struct hrtimer *hrtimer),
-
- TP_ARGS(hrtimer),
-
- TP_STRUCT__entry(
- __field( void *, hrtimer )
- __field( void *, function )
- __field( s64, expires )
- __field( s64, softexpires )
- ),
-
- TP_fast_assign(
- __entry->hrtimer = hrtimer;
- __entry->function = hrtimer->function;
- __entry->expires = hrtimer_get_expires(hrtimer).tv64;
- __entry->softexpires = hrtimer_get_softexpires(hrtimer).tv64;
- ),
-
- TP_printk("hrtimer=%p function=%pf expires=%llu softexpires=%llu",
- __entry->hrtimer, __entry->function,
- (unsigned long long)ktime_to_ns((ktime_t) {
- .tv64 = __entry->expires }),
- (unsigned long long)ktime_to_ns((ktime_t) {
- .tv64 = __entry->softexpires }))
-);
-
-/**
- * htimmer_expire_entry - called immediately before the hrtimer callback
- * @timer: pointer to struct hrtimer
- * @now: pointer to variable which contains current time of the
- * timers base.
- *
- * Allows to determine the timer latency.
- */
-TRACE_EVENT(hrtimer_expire_entry,
-
- TP_PROTO(struct hrtimer *hrtimer, ktime_t *now),
-
- TP_ARGS(hrtimer, now),
-
- TP_STRUCT__entry(
- __field( void *, hrtimer )
- __field( s64, now )
- __field( void *, function)
- ),
-
- TP_fast_assign(
- __entry->hrtimer = hrtimer;
- __entry->now = now->tv64;
- __entry->function = hrtimer->function;
- ),
-
- TP_printk("hrtimer=%p function=%pf now=%llu", __entry->hrtimer, __entry->function,
- (unsigned long long)ktime_to_ns((ktime_t) { .tv64 = __entry->now }))
- );
-
-DECLARE_EVENT_CLASS(hrtimer_class,
-
- TP_PROTO(struct hrtimer *hrtimer),
-
- TP_ARGS(hrtimer),
-
- TP_STRUCT__entry(
- __field( void *, hrtimer )
- ),
-
- TP_fast_assign(
- __entry->hrtimer = hrtimer;
- ),
-
- TP_printk("hrtimer=%p", __entry->hrtimer)
-);
-
-/**
- * hrtimer_expire_exit - called immediately after the hrtimer callback returns
- * @timer: pointer to struct hrtimer
- *
- * When used in combination with the hrtimer_expire_entry tracepoint we can
- * determine the runtime of the callback function.
- */
-DEFINE_EVENT(hrtimer_class, hrtimer_expire_exit,
-
- TP_PROTO(struct hrtimer *hrtimer),
-
- TP_ARGS(hrtimer)
-);
-
-/**
- * hrtimer_cancel - called when the hrtimer is canceled
- * @hrtimer: pointer to struct hrtimer
- */
-DEFINE_EVENT(hrtimer_class, hrtimer_cancel,
-
- TP_PROTO(struct hrtimer *hrtimer),
-
- TP_ARGS(hrtimer)
-);
-
-/**
- * itimer_state - called when itimer is started or canceled
- * @which: name of the interval timer
- * @value: the itimers value, itimer is canceled if value->it_value is
- * zero, otherwise it is started
- * @expires: the itimers expiry time
- */
-TRACE_EVENT(itimer_state,
-
- TP_PROTO(int which, const struct itimerval *const value,
- cputime_t expires),
-
- TP_ARGS(which, value, expires),
-
- TP_STRUCT__entry(
- __field( int, which )
- __field( cputime_t, expires )
- __field( long, value_sec )
- __field( long, value_usec )
- __field( long, interval_sec )
- __field( long, interval_usec )
- ),
-
- TP_fast_assign(
- __entry->which = which;
- __entry->expires = expires;
- __entry->value_sec = value->it_value.tv_sec;
- __entry->value_usec = value->it_value.tv_usec;
- __entry->interval_sec = value->it_interval.tv_sec;
- __entry->interval_usec = value->it_interval.tv_usec;
- ),
-
- TP_printk("which=%d expires=%llu it_value=%ld.%ld it_interval=%ld.%ld",
- __entry->which, (unsigned long long)__entry->expires,
- __entry->value_sec, __entry->value_usec,
- __entry->interval_sec, __entry->interval_usec)
-);
-
-/**
- * itimer_expire - called when itimer expires
- * @which: type of the interval timer
- * @pid: pid of the process which owns the timer
- * @now: current time, used to calculate the latency of itimer
- */
-TRACE_EVENT(itimer_expire,
-
- TP_PROTO(int which, struct pid *pid, cputime_t now),
-
- TP_ARGS(which, pid, now),
-
- TP_STRUCT__entry(
- __field( int , which )
- __field( pid_t, pid )
- __field( cputime_t, now )
- ),
-
- TP_fast_assign(
- __entry->which = which;
- __entry->now = now;
- __entry->pid = pid_nr(pid);
- ),
-
- TP_printk("which=%d pid=%d now=%llu", __entry->which,
- (int) __entry->pid, (unsigned long long)__entry->now)
-);
-
-#endif /* _TRACE_TIMER_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/udp.h b/ANDROID_3.4.5/include/trace/events/udp.h
deleted file mode 100644
index a664bb94..00000000
--- a/ANDROID_3.4.5/include/trace/events/udp.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM udp
-
-#if !defined(_TRACE_UDP_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_UDP_H
-
-#include <linux/udp.h>
-#include <linux/tracepoint.h>
-
-TRACE_EVENT(udp_fail_queue_rcv_skb,
-
- TP_PROTO(int rc, struct sock *sk),
-
- TP_ARGS(rc, sk),
-
- TP_STRUCT__entry(
- __field(int, rc)
- __field(__u16, lport)
- ),
-
- TP_fast_assign(
- __entry->rc = rc;
- __entry->lport = inet_sk(sk)->inet_num;
- ),
-
- TP_printk("rc=%d port=%hu", __entry->rc, __entry->lport)
-);
-
-#endif /* _TRACE_UDP_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/vmscan.h b/ANDROID_3.4.5/include/trace/events/vmscan.h
deleted file mode 100644
index f64560e2..00000000
--- a/ANDROID_3.4.5/include/trace/events/vmscan.h
+++ /dev/null
@@ -1,483 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM vmscan
-
-#if !defined(_TRACE_VMSCAN_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_VMSCAN_H
-
-#include <linux/types.h>
-#include <linux/tracepoint.h>
-#include <linux/mm.h>
-#include <linux/memcontrol.h>
-#include "gfpflags.h"
-
-#define RECLAIM_WB_ANON 0x0001u
-#define RECLAIM_WB_FILE 0x0002u
-#define RECLAIM_WB_MIXED 0x0010u
-#define RECLAIM_WB_SYNC 0x0004u
-#define RECLAIM_WB_ASYNC 0x0008u
-
-#define show_reclaim_flags(flags) \
- (flags) ? __print_flags(flags, "|", \
- {RECLAIM_WB_ANON, "RECLAIM_WB_ANON"}, \
- {RECLAIM_WB_FILE, "RECLAIM_WB_FILE"}, \
- {RECLAIM_WB_MIXED, "RECLAIM_WB_MIXED"}, \
- {RECLAIM_WB_SYNC, "RECLAIM_WB_SYNC"}, \
- {RECLAIM_WB_ASYNC, "RECLAIM_WB_ASYNC"} \
- ) : "RECLAIM_WB_NONE"
-
-#define trace_reclaim_flags(page, sync) ( \
- (page_is_file_cache(page) ? RECLAIM_WB_FILE : RECLAIM_WB_ANON) | \
- (sync & RECLAIM_MODE_SYNC ? RECLAIM_WB_SYNC : RECLAIM_WB_ASYNC) \
- )
-
-#define trace_shrink_flags(file, sync) ( \
- (sync & RECLAIM_MODE_SYNC ? RECLAIM_WB_MIXED : \
- (file ? RECLAIM_WB_FILE : RECLAIM_WB_ANON)) | \
- (sync & RECLAIM_MODE_SYNC ? RECLAIM_WB_SYNC : RECLAIM_WB_ASYNC) \
- )
-
-TRACE_EVENT(mm_vmscan_kswapd_sleep,
-
- TP_PROTO(int nid),
-
- TP_ARGS(nid),
-
- TP_STRUCT__entry(
- __field( int, nid )
- ),
-
- TP_fast_assign(
- __entry->nid = nid;
- ),
-
- TP_printk("nid=%d", __entry->nid)
-);
-
-TRACE_EVENT(mm_vmscan_kswapd_wake,
-
- TP_PROTO(int nid, int order),
-
- TP_ARGS(nid, order),
-
- TP_STRUCT__entry(
- __field( int, nid )
- __field( int, order )
- ),
-
- TP_fast_assign(
- __entry->nid = nid;
- __entry->order = order;
- ),
-
- TP_printk("nid=%d order=%d", __entry->nid, __entry->order)
-);
-
-TRACE_EVENT(mm_vmscan_wakeup_kswapd,
-
- TP_PROTO(int nid, int zid, int order),
-
- TP_ARGS(nid, zid, order),
-
- TP_STRUCT__entry(
- __field( int, nid )
- __field( int, zid )
- __field( int, order )
- ),
-
- TP_fast_assign(
- __entry->nid = nid;
- __entry->zid = zid;
- __entry->order = order;
- ),
-
- TP_printk("nid=%d zid=%d order=%d",
- __entry->nid,
- __entry->zid,
- __entry->order)
-);
-
-DECLARE_EVENT_CLASS(mm_vmscan_direct_reclaim_begin_template,
-
- TP_PROTO(int order, int may_writepage, gfp_t gfp_flags),
-
- TP_ARGS(order, may_writepage, gfp_flags),
-
- TP_STRUCT__entry(
- __field( int, order )
- __field( int, may_writepage )
- __field( gfp_t, gfp_flags )
- ),
-
- TP_fast_assign(
- __entry->order = order;
- __entry->may_writepage = may_writepage;
- __entry->gfp_flags = gfp_flags;
- ),
-
- TP_printk("order=%d may_writepage=%d gfp_flags=%s",
- __entry->order,
- __entry->may_writepage,
- show_gfp_flags(__entry->gfp_flags))
-);
-
-DEFINE_EVENT(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_direct_reclaim_begin,
-
- TP_PROTO(int order, int may_writepage, gfp_t gfp_flags),
-
- TP_ARGS(order, may_writepage, gfp_flags)
-);
-
-DEFINE_EVENT(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_memcg_reclaim_begin,
-
- TP_PROTO(int order, int may_writepage, gfp_t gfp_flags),
-
- TP_ARGS(order, may_writepage, gfp_flags)
-);
-
-DEFINE_EVENT(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_memcg_softlimit_reclaim_begin,
-
- TP_PROTO(int order, int may_writepage, gfp_t gfp_flags),
-
- TP_ARGS(order, may_writepage, gfp_flags)
-);
-
-DECLARE_EVENT_CLASS(mm_vmscan_direct_reclaim_end_template,
-
- TP_PROTO(unsigned long nr_reclaimed),
-
- TP_ARGS(nr_reclaimed),
-
- TP_STRUCT__entry(
- __field( unsigned long, nr_reclaimed )
- ),
-
- TP_fast_assign(
- __entry->nr_reclaimed = nr_reclaimed;
- ),
-
- TP_printk("nr_reclaimed=%lu", __entry->nr_reclaimed)
-);
-
-DEFINE_EVENT(mm_vmscan_direct_reclaim_end_template, mm_vmscan_direct_reclaim_end,
-
- TP_PROTO(unsigned long nr_reclaimed),
-
- TP_ARGS(nr_reclaimed)
-);
-
-DEFINE_EVENT(mm_vmscan_direct_reclaim_end_template, mm_vmscan_memcg_reclaim_end,
-
- TP_PROTO(unsigned long nr_reclaimed),
-
- TP_ARGS(nr_reclaimed)
-);
-
-DEFINE_EVENT(mm_vmscan_direct_reclaim_end_template, mm_vmscan_memcg_softlimit_reclaim_end,
-
- TP_PROTO(unsigned long nr_reclaimed),
-
- TP_ARGS(nr_reclaimed)
-);
-
-TRACE_EVENT(mm_shrink_slab_start,
- TP_PROTO(struct shrinker *shr, struct shrink_control *sc,
- long nr_objects_to_shrink, unsigned long pgs_scanned,
- unsigned long lru_pgs, unsigned long cache_items,
- unsigned long long delta, unsigned long total_scan),
-
- TP_ARGS(shr, sc, nr_objects_to_shrink, pgs_scanned, lru_pgs,
- cache_items, delta, total_scan),
-
- TP_STRUCT__entry(
- __field(struct shrinker *, shr)
- __field(void *, shrink)
- __field(long, nr_objects_to_shrink)
- __field(gfp_t, gfp_flags)
- __field(unsigned long, pgs_scanned)
- __field(unsigned long, lru_pgs)
- __field(unsigned long, cache_items)
- __field(unsigned long long, delta)
- __field(unsigned long, total_scan)
- ),
-
- TP_fast_assign(
- __entry->shr = shr;
- __entry->shrink = shr->shrink;
- __entry->nr_objects_to_shrink = nr_objects_to_shrink;
- __entry->gfp_flags = sc->gfp_mask;
- __entry->pgs_scanned = pgs_scanned;
- __entry->lru_pgs = lru_pgs;
- __entry->cache_items = cache_items;
- __entry->delta = delta;
- __entry->total_scan = total_scan;
- ),
-
- TP_printk("%pF %p: objects to shrink %ld gfp_flags %s pgs_scanned %ld lru_pgs %ld cache items %ld delta %lld total_scan %ld",
- __entry->shrink,
- __entry->shr,
- __entry->nr_objects_to_shrink,
- show_gfp_flags(__entry->gfp_flags),
- __entry->pgs_scanned,
- __entry->lru_pgs,
- __entry->cache_items,
- __entry->delta,
- __entry->total_scan)
-);
-
-TRACE_EVENT(mm_shrink_slab_end,
- TP_PROTO(struct shrinker *shr, int shrinker_retval,
- long unused_scan_cnt, long new_scan_cnt),
-
- TP_ARGS(shr, shrinker_retval, unused_scan_cnt, new_scan_cnt),
-
- TP_STRUCT__entry(
- __field(struct shrinker *, shr)
- __field(void *, shrink)
- __field(long, unused_scan)
- __field(long, new_scan)
- __field(int, retval)
- __field(long, total_scan)
- ),
-
- TP_fast_assign(
- __entry->shr = shr;
- __entry->shrink = shr->shrink;
- __entry->unused_scan = unused_scan_cnt;
- __entry->new_scan = new_scan_cnt;
- __entry->retval = shrinker_retval;
- __entry->total_scan = new_scan_cnt - unused_scan_cnt;
- ),
-
- TP_printk("%pF %p: unused scan count %ld new scan count %ld total_scan %ld last shrinker return val %d",
- __entry->shrink,
- __entry->shr,
- __entry->unused_scan,
- __entry->new_scan,
- __entry->total_scan,
- __entry->retval)
-);
-
-DECLARE_EVENT_CLASS(mm_vmscan_lru_isolate_template,
-
- TP_PROTO(int order,
- unsigned long nr_requested,
- unsigned long nr_scanned,
- unsigned long nr_taken,
- unsigned long nr_lumpy_taken,
- unsigned long nr_lumpy_dirty,
- unsigned long nr_lumpy_failed,
- isolate_mode_t isolate_mode,
- int file),
-
- TP_ARGS(order, nr_requested, nr_scanned, nr_taken, nr_lumpy_taken, nr_lumpy_dirty, nr_lumpy_failed, isolate_mode, file),
-
- TP_STRUCT__entry(
- __field(int, order)
- __field(unsigned long, nr_requested)
- __field(unsigned long, nr_scanned)
- __field(unsigned long, nr_taken)
- __field(unsigned long, nr_lumpy_taken)
- __field(unsigned long, nr_lumpy_dirty)
- __field(unsigned long, nr_lumpy_failed)
- __field(isolate_mode_t, isolate_mode)
- __field(int, file)
- ),
-
- TP_fast_assign(
- __entry->order = order;
- __entry->nr_requested = nr_requested;
- __entry->nr_scanned = nr_scanned;
- __entry->nr_taken = nr_taken;
- __entry->nr_lumpy_taken = nr_lumpy_taken;
- __entry->nr_lumpy_dirty = nr_lumpy_dirty;
- __entry->nr_lumpy_failed = nr_lumpy_failed;
- __entry->isolate_mode = isolate_mode;
- __entry->file = file;
- ),
-
- TP_printk("isolate_mode=%d order=%d nr_requested=%lu nr_scanned=%lu nr_taken=%lu contig_taken=%lu contig_dirty=%lu contig_failed=%lu file=%d",
- __entry->isolate_mode,
- __entry->order,
- __entry->nr_requested,
- __entry->nr_scanned,
- __entry->nr_taken,
- __entry->nr_lumpy_taken,
- __entry->nr_lumpy_dirty,
- __entry->nr_lumpy_failed,
- __entry->file)
-);
-
-DEFINE_EVENT(mm_vmscan_lru_isolate_template, mm_vmscan_lru_isolate,
-
- TP_PROTO(int order,
- unsigned long nr_requested,
- unsigned long nr_scanned,
- unsigned long nr_taken,
- unsigned long nr_lumpy_taken,
- unsigned long nr_lumpy_dirty,
- unsigned long nr_lumpy_failed,
- isolate_mode_t isolate_mode,
- int file),
-
- TP_ARGS(order, nr_requested, nr_scanned, nr_taken, nr_lumpy_taken, nr_lumpy_dirty, nr_lumpy_failed, isolate_mode, file)
-
-);
-
-DEFINE_EVENT(mm_vmscan_lru_isolate_template, mm_vmscan_memcg_isolate,
-
- TP_PROTO(int order,
- unsigned long nr_requested,
- unsigned long nr_scanned,
- unsigned long nr_taken,
- unsigned long nr_lumpy_taken,
- unsigned long nr_lumpy_dirty,
- unsigned long nr_lumpy_failed,
- isolate_mode_t isolate_mode,
- int file),
-
- TP_ARGS(order, nr_requested, nr_scanned, nr_taken, nr_lumpy_taken, nr_lumpy_dirty, nr_lumpy_failed, isolate_mode, file)
-
-);
-
-TRACE_EVENT(mm_vmscan_writepage,
-
- TP_PROTO(struct page *page,
- int reclaim_flags),
-
- TP_ARGS(page, reclaim_flags),
-
- TP_STRUCT__entry(
- __field(struct page *, page)
- __field(int, reclaim_flags)
- ),
-
- TP_fast_assign(
- __entry->page = page;
- __entry->reclaim_flags = reclaim_flags;
- ),
-
- TP_printk("page=%p pfn=%lu flags=%s",
- __entry->page,
- page_to_pfn(__entry->page),
- show_reclaim_flags(__entry->reclaim_flags))
-);
-
-TRACE_EVENT(mm_vmscan_lru_shrink_inactive,
-
- TP_PROTO(int nid, int zid,
- unsigned long nr_scanned, unsigned long nr_reclaimed,
- int priority, int reclaim_flags),
-
- TP_ARGS(nid, zid, nr_scanned, nr_reclaimed, priority, reclaim_flags),
-
- TP_STRUCT__entry(
- __field(int, nid)
- __field(int, zid)
- __field(unsigned long, nr_scanned)
- __field(unsigned long, nr_reclaimed)
- __field(int, priority)
- __field(int, reclaim_flags)
- ),
-
- TP_fast_assign(
- __entry->nid = nid;
- __entry->zid = zid;
- __entry->nr_scanned = nr_scanned;
- __entry->nr_reclaimed = nr_reclaimed;
- __entry->priority = priority;
- __entry->reclaim_flags = reclaim_flags;
- ),
-
- TP_printk("nid=%d zid=%d nr_scanned=%ld nr_reclaimed=%ld priority=%d flags=%s",
- __entry->nid, __entry->zid,
- __entry->nr_scanned, __entry->nr_reclaimed,
- __entry->priority,
- show_reclaim_flags(__entry->reclaim_flags))
-);
-
-TRACE_EVENT(replace_swap_token,
- TP_PROTO(struct mm_struct *old_mm,
- struct mm_struct *new_mm),
-
- TP_ARGS(old_mm, new_mm),
-
- TP_STRUCT__entry(
- __field(struct mm_struct*, old_mm)
- __field(unsigned int, old_prio)
- __field(struct mm_struct*, new_mm)
- __field(unsigned int, new_prio)
- ),
-
- TP_fast_assign(
- __entry->old_mm = old_mm;
- __entry->old_prio = old_mm ? old_mm->token_priority : 0;
- __entry->new_mm = new_mm;
- __entry->new_prio = new_mm->token_priority;
- ),
-
- TP_printk("old_token_mm=%p old_prio=%u new_token_mm=%p new_prio=%u",
- __entry->old_mm, __entry->old_prio,
- __entry->new_mm, __entry->new_prio)
-);
-
-DECLARE_EVENT_CLASS(put_swap_token_template,
- TP_PROTO(struct mm_struct *swap_token_mm),
-
- TP_ARGS(swap_token_mm),
-
- TP_STRUCT__entry(
- __field(struct mm_struct*, swap_token_mm)
- ),
-
- TP_fast_assign(
- __entry->swap_token_mm = swap_token_mm;
- ),
-
- TP_printk("token_mm=%p", __entry->swap_token_mm)
-);
-
-DEFINE_EVENT(put_swap_token_template, put_swap_token,
- TP_PROTO(struct mm_struct *swap_token_mm),
- TP_ARGS(swap_token_mm)
-);
-
-DEFINE_EVENT_CONDITION(put_swap_token_template, disable_swap_token,
- TP_PROTO(struct mm_struct *swap_token_mm),
- TP_ARGS(swap_token_mm),
- TP_CONDITION(swap_token_mm != NULL)
-);
-
-TRACE_EVENT_CONDITION(update_swap_token_priority,
- TP_PROTO(struct mm_struct *mm,
- unsigned int old_prio,
- struct mm_struct *swap_token_mm),
-
- TP_ARGS(mm, old_prio, swap_token_mm),
-
- TP_CONDITION(mm->token_priority != old_prio),
-
- TP_STRUCT__entry(
- __field(struct mm_struct*, mm)
- __field(unsigned int, old_prio)
- __field(unsigned int, new_prio)
- __field(struct mm_struct*, swap_token_mm)
- __field(unsigned int, swap_token_prio)
- ),
-
- TP_fast_assign(
- __entry->mm = mm;
- __entry->old_prio = old_prio;
- __entry->new_prio = mm->token_priority;
- __entry->swap_token_mm = swap_token_mm;
- __entry->swap_token_prio = swap_token_mm ? swap_token_mm->token_priority : 0;
- ),
-
- TP_printk("mm=%p old_prio=%u new_prio=%u swap_token_mm=%p token_prio=%u",
- __entry->mm, __entry->old_prio, __entry->new_prio,
- __entry->swap_token_mm, __entry->swap_token_prio)
-);
-
-#endif /* _TRACE_VMSCAN_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/workqueue.h b/ANDROID_3.4.5/include/trace/events/workqueue.h
deleted file mode 100644
index 7d497291..00000000
--- a/ANDROID_3.4.5/include/trace/events/workqueue.h
+++ /dev/null
@@ -1,121 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM workqueue
-
-#if !defined(_TRACE_WORKQUEUE_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_WORKQUEUE_H
-
-#include <linux/tracepoint.h>
-#include <linux/workqueue.h>
-
-DECLARE_EVENT_CLASS(workqueue_work,
-
- TP_PROTO(struct work_struct *work),
-
- TP_ARGS(work),
-
- TP_STRUCT__entry(
- __field( void *, work )
- ),
-
- TP_fast_assign(
- __entry->work = work;
- ),
-
- TP_printk("work struct %p", __entry->work)
-);
-
-/**
- * workqueue_queue_work - called when a work gets queued
- * @req_cpu: the requested cpu
- * @cwq: pointer to struct cpu_workqueue_struct
- * @work: pointer to struct work_struct
- *
- * This event occurs when a work is queued immediately or once a
- * delayed work is actually queued on a workqueue (ie: once the delay
- * has been reached).
- */
-TRACE_EVENT(workqueue_queue_work,
-
- TP_PROTO(unsigned int req_cpu, struct cpu_workqueue_struct *cwq,
- struct work_struct *work),
-
- TP_ARGS(req_cpu, cwq, work),
-
- TP_STRUCT__entry(
- __field( void *, work )
- __field( void *, function)
- __field( void *, workqueue)
- __field( unsigned int, req_cpu )
- __field( unsigned int, cpu )
- ),
-
- TP_fast_assign(
- __entry->work = work;
- __entry->function = work->func;
- __entry->workqueue = cwq->wq;
- __entry->req_cpu = req_cpu;
- __entry->cpu = cwq->gcwq->cpu;
- ),
-
- TP_printk("work struct=%p function=%pf workqueue=%p req_cpu=%u cpu=%u",
- __entry->work, __entry->function, __entry->workqueue,
- __entry->req_cpu, __entry->cpu)
-);
-
-/**
- * workqueue_activate_work - called when a work gets activated
- * @work: pointer to struct work_struct
- *
- * This event occurs when a queued work is put on the active queue,
- * which happens immediately after queueing unless @max_active limit
- * is reached.
- */
-DEFINE_EVENT(workqueue_work, workqueue_activate_work,
-
- TP_PROTO(struct work_struct *work),
-
- TP_ARGS(work)
-);
-
-/**
- * workqueue_execute_start - called immediately before the workqueue callback
- * @work: pointer to struct work_struct
- *
- * Allows to track workqueue execution.
- */
-TRACE_EVENT(workqueue_execute_start,
-
- TP_PROTO(struct work_struct *work),
-
- TP_ARGS(work),
-
- TP_STRUCT__entry(
- __field( void *, work )
- __field( void *, function)
- ),
-
- TP_fast_assign(
- __entry->work = work;
- __entry->function = work->func;
- ),
-
- TP_printk("work struct %p: function %pf", __entry->work, __entry->function)
-);
-
-/**
- * workqueue_execute_end - called immediately before the workqueue callback
- * @work: pointer to struct work_struct
- *
- * Allows to track workqueue execution.
- */
-DEFINE_EVENT(workqueue_work, workqueue_execute_end,
-
- TP_PROTO(struct work_struct *work),
-
- TP_ARGS(work)
-);
-
-#endif /* _TRACE_WORKQUEUE_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/writeback.h b/ANDROID_3.4.5/include/trace/events/writeback.h
deleted file mode 100644
index 7b81887b..00000000
--- a/ANDROID_3.4.5/include/trace/events/writeback.h
+++ /dev/null
@@ -1,470 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM writeback
-
-#if !defined(_TRACE_WRITEBACK_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_WRITEBACK_H
-
-#include <linux/backing-dev.h>
-#include <linux/writeback.h>
-
-#define show_inode_state(state) \
- __print_flags(state, "|", \
- {I_DIRTY_SYNC, "I_DIRTY_SYNC"}, \
- {I_DIRTY_DATASYNC, "I_DIRTY_DATASYNC"}, \
- {I_DIRTY_PAGES, "I_DIRTY_PAGES"}, \
- {I_NEW, "I_NEW"}, \
- {I_WILL_FREE, "I_WILL_FREE"}, \
- {I_FREEING, "I_FREEING"}, \
- {I_CLEAR, "I_CLEAR"}, \
- {I_SYNC, "I_SYNC"}, \
- {I_REFERENCED, "I_REFERENCED"} \
- )
-
-#define WB_WORK_REASON \
- {WB_REASON_BACKGROUND, "background"}, \
- {WB_REASON_TRY_TO_FREE_PAGES, "try_to_free_pages"}, \
- {WB_REASON_SYNC, "sync"}, \
- {WB_REASON_PERIODIC, "periodic"}, \
- {WB_REASON_LAPTOP_TIMER, "laptop_timer"}, \
- {WB_REASON_FREE_MORE_MEM, "free_more_memory"}, \
- {WB_REASON_FS_FREE_SPACE, "fs_free_space"}, \
- {WB_REASON_FORKER_THREAD, "forker_thread"}
-
-struct wb_writeback_work;
-
-DECLARE_EVENT_CLASS(writeback_work_class,
- TP_PROTO(struct backing_dev_info *bdi, struct wb_writeback_work *work),
- TP_ARGS(bdi, work),
- TP_STRUCT__entry(
- __array(char, name, 32)
- __field(long, nr_pages)
- __field(dev_t, sb_dev)
- __field(int, sync_mode)
- __field(int, for_kupdate)
- __field(int, range_cyclic)
- __field(int, for_background)
- __field(int, reason)
- ),
- TP_fast_assign(
- struct device *dev = bdi->dev;
- if (!dev)
- dev = default_backing_dev_info.dev;
- strncpy(__entry->name, dev_name(dev), 32);
- __entry->nr_pages = work->nr_pages;
- __entry->sb_dev = work->sb ? work->sb->s_dev : 0;
- __entry->sync_mode = work->sync_mode;
- __entry->for_kupdate = work->for_kupdate;
- __entry->range_cyclic = work->range_cyclic;
- __entry->for_background = work->for_background;
- __entry->reason = work->reason;
- ),
- TP_printk("bdi %s: sb_dev %d:%d nr_pages=%ld sync_mode=%d "
- "kupdate=%d range_cyclic=%d background=%d reason=%s",
- __entry->name,
- MAJOR(__entry->sb_dev), MINOR(__entry->sb_dev),
- __entry->nr_pages,
- __entry->sync_mode,
- __entry->for_kupdate,
- __entry->range_cyclic,
- __entry->for_background,
- __print_symbolic(__entry->reason, WB_WORK_REASON)
- )
-);
-#define DEFINE_WRITEBACK_WORK_EVENT(name) \
-DEFINE_EVENT(writeback_work_class, name, \
- TP_PROTO(struct backing_dev_info *bdi, struct wb_writeback_work *work), \
- TP_ARGS(bdi, work))
-DEFINE_WRITEBACK_WORK_EVENT(writeback_nothread);
-DEFINE_WRITEBACK_WORK_EVENT(writeback_queue);
-DEFINE_WRITEBACK_WORK_EVENT(writeback_exec);
-DEFINE_WRITEBACK_WORK_EVENT(writeback_start);
-DEFINE_WRITEBACK_WORK_EVENT(writeback_written);
-DEFINE_WRITEBACK_WORK_EVENT(writeback_wait);
-
-TRACE_EVENT(writeback_pages_written,
- TP_PROTO(long pages_written),
- TP_ARGS(pages_written),
- TP_STRUCT__entry(
- __field(long, pages)
- ),
- TP_fast_assign(
- __entry->pages = pages_written;
- ),
- TP_printk("%ld", __entry->pages)
-);
-
-DECLARE_EVENT_CLASS(writeback_class,
- TP_PROTO(struct backing_dev_info *bdi),
- TP_ARGS(bdi),
- TP_STRUCT__entry(
- __array(char, name, 32)
- ),
- TP_fast_assign(
- strncpy(__entry->name, dev_name(bdi->dev), 32);
- ),
- TP_printk("bdi %s",
- __entry->name
- )
-);
-#define DEFINE_WRITEBACK_EVENT(name) \
-DEFINE_EVENT(writeback_class, name, \
- TP_PROTO(struct backing_dev_info *bdi), \
- TP_ARGS(bdi))
-
-DEFINE_WRITEBACK_EVENT(writeback_nowork);
-DEFINE_WRITEBACK_EVENT(writeback_wake_background);
-DEFINE_WRITEBACK_EVENT(writeback_wake_thread);
-DEFINE_WRITEBACK_EVENT(writeback_wake_forker_thread);
-DEFINE_WRITEBACK_EVENT(writeback_bdi_register);
-DEFINE_WRITEBACK_EVENT(writeback_bdi_unregister);
-DEFINE_WRITEBACK_EVENT(writeback_thread_start);
-DEFINE_WRITEBACK_EVENT(writeback_thread_stop);
-
-DECLARE_EVENT_CLASS(wbc_class,
- TP_PROTO(struct writeback_control *wbc, struct backing_dev_info *bdi),
- TP_ARGS(wbc, bdi),
- TP_STRUCT__entry(
- __array(char, name, 32)
- __field(long, nr_to_write)
- __field(long, pages_skipped)
- __field(int, sync_mode)
- __field(int, for_kupdate)
- __field(int, for_background)
- __field(int, for_reclaim)
- __field(int, range_cyclic)
- __field(long, range_start)
- __field(long, range_end)
- ),
-
- TP_fast_assign(
- strncpy(__entry->name, dev_name(bdi->dev), 32);
- __entry->nr_to_write = wbc->nr_to_write;
- __entry->pages_skipped = wbc->pages_skipped;
- __entry->sync_mode = wbc->sync_mode;
- __entry->for_kupdate = wbc->for_kupdate;
- __entry->for_background = wbc->for_background;
- __entry->for_reclaim = wbc->for_reclaim;
- __entry->range_cyclic = wbc->range_cyclic;
- __entry->range_start = (long)wbc->range_start;
- __entry->range_end = (long)wbc->range_end;
- ),
-
- TP_printk("bdi %s: towrt=%ld skip=%ld mode=%d kupd=%d "
- "bgrd=%d reclm=%d cyclic=%d "
- "start=0x%lx end=0x%lx",
- __entry->name,
- __entry->nr_to_write,
- __entry->pages_skipped,
- __entry->sync_mode,
- __entry->for_kupdate,
- __entry->for_background,
- __entry->for_reclaim,
- __entry->range_cyclic,
- __entry->range_start,
- __entry->range_end)
-)
-
-#define DEFINE_WBC_EVENT(name) \
-DEFINE_EVENT(wbc_class, name, \
- TP_PROTO(struct writeback_control *wbc, struct backing_dev_info *bdi), \
- TP_ARGS(wbc, bdi))
-DEFINE_WBC_EVENT(wbc_writepage);
-
-TRACE_EVENT(writeback_queue_io,
- TP_PROTO(struct bdi_writeback *wb,
- struct wb_writeback_work *work,
- int moved),
- TP_ARGS(wb, work, moved),
- TP_STRUCT__entry(
- __array(char, name, 32)
- __field(unsigned long, older)
- __field(long, age)
- __field(int, moved)
- __field(int, reason)
- ),
- TP_fast_assign(
- unsigned long *older_than_this = work->older_than_this;
- strncpy(__entry->name, dev_name(wb->bdi->dev), 32);
- __entry->older = older_than_this ? *older_than_this : 0;
- __entry->age = older_than_this ?
- (jiffies - *older_than_this) * 1000 / HZ : -1;
- __entry->moved = moved;
- __entry->reason = work->reason;
- ),
- TP_printk("bdi %s: older=%lu age=%ld enqueue=%d reason=%s",
- __entry->name,
- __entry->older, /* older_than_this in jiffies */
- __entry->age, /* older_than_this in relative milliseconds */
- __entry->moved,
- __print_symbolic(__entry->reason, WB_WORK_REASON)
- )
-);
-
-TRACE_EVENT(global_dirty_state,
-
- TP_PROTO(unsigned long background_thresh,
- unsigned long dirty_thresh
- ),
-
- TP_ARGS(background_thresh,
- dirty_thresh
- ),
-
- TP_STRUCT__entry(
- __field(unsigned long, nr_dirty)
- __field(unsigned long, nr_writeback)
- __field(unsigned long, nr_unstable)
- __field(unsigned long, background_thresh)
- __field(unsigned long, dirty_thresh)
- __field(unsigned long, dirty_limit)
- __field(unsigned long, nr_dirtied)
- __field(unsigned long, nr_written)
- ),
-
- TP_fast_assign(
- __entry->nr_dirty = global_page_state(NR_FILE_DIRTY);
- __entry->nr_writeback = global_page_state(NR_WRITEBACK);
- __entry->nr_unstable = global_page_state(NR_UNSTABLE_NFS);
- __entry->nr_dirtied = global_page_state(NR_DIRTIED);
- __entry->nr_written = global_page_state(NR_WRITTEN);
- __entry->background_thresh = background_thresh;
- __entry->dirty_thresh = dirty_thresh;
- __entry->dirty_limit = global_dirty_limit;
- ),
-
- TP_printk("dirty=%lu writeback=%lu unstable=%lu "
- "bg_thresh=%lu thresh=%lu limit=%lu "
- "dirtied=%lu written=%lu",
- __entry->nr_dirty,
- __entry->nr_writeback,
- __entry->nr_unstable,
- __entry->background_thresh,
- __entry->dirty_thresh,
- __entry->dirty_limit,
- __entry->nr_dirtied,
- __entry->nr_written
- )
-);
-
-#define KBps(x) ((x) << (PAGE_SHIFT - 10))
-
-TRACE_EVENT(bdi_dirty_ratelimit,
-
- TP_PROTO(struct backing_dev_info *bdi,
- unsigned long dirty_rate,
- unsigned long task_ratelimit),
-
- TP_ARGS(bdi, dirty_rate, task_ratelimit),
-
- TP_STRUCT__entry(
- __array(char, bdi, 32)
- __field(unsigned long, write_bw)
- __field(unsigned long, avg_write_bw)
- __field(unsigned long, dirty_rate)
- __field(unsigned long, dirty_ratelimit)
- __field(unsigned long, task_ratelimit)
- __field(unsigned long, balanced_dirty_ratelimit)
- ),
-
- TP_fast_assign(
- strlcpy(__entry->bdi, dev_name(bdi->dev), 32);
- __entry->write_bw = KBps(bdi->write_bandwidth);
- __entry->avg_write_bw = KBps(bdi->avg_write_bandwidth);
- __entry->dirty_rate = KBps(dirty_rate);
- __entry->dirty_ratelimit = KBps(bdi->dirty_ratelimit);
- __entry->task_ratelimit = KBps(task_ratelimit);
- __entry->balanced_dirty_ratelimit =
- KBps(bdi->balanced_dirty_ratelimit);
- ),
-
- TP_printk("bdi %s: "
- "write_bw=%lu awrite_bw=%lu dirty_rate=%lu "
- "dirty_ratelimit=%lu task_ratelimit=%lu "
- "balanced_dirty_ratelimit=%lu",
- __entry->bdi,
- __entry->write_bw, /* write bandwidth */
- __entry->avg_write_bw, /* avg write bandwidth */
- __entry->dirty_rate, /* bdi dirty rate */
- __entry->dirty_ratelimit, /* base ratelimit */
- __entry->task_ratelimit, /* ratelimit with position control */
- __entry->balanced_dirty_ratelimit /* the balanced ratelimit */
- )
-);
-
-TRACE_EVENT(balance_dirty_pages,
-
- TP_PROTO(struct backing_dev_info *bdi,
- unsigned long thresh,
- unsigned long bg_thresh,
- unsigned long dirty,
- unsigned long bdi_thresh,
- unsigned long bdi_dirty,
- unsigned long dirty_ratelimit,
- unsigned long task_ratelimit,
- unsigned long dirtied,
- unsigned long period,
- long pause,
- unsigned long start_time),
-
- TP_ARGS(bdi, thresh, bg_thresh, dirty, bdi_thresh, bdi_dirty,
- dirty_ratelimit, task_ratelimit,
- dirtied, period, pause, start_time),
-
- TP_STRUCT__entry(
- __array( char, bdi, 32)
- __field(unsigned long, limit)
- __field(unsigned long, setpoint)
- __field(unsigned long, dirty)
- __field(unsigned long, bdi_setpoint)
- __field(unsigned long, bdi_dirty)
- __field(unsigned long, dirty_ratelimit)
- __field(unsigned long, task_ratelimit)
- __field(unsigned int, dirtied)
- __field(unsigned int, dirtied_pause)
- __field(unsigned long, paused)
- __field( long, pause)
- __field(unsigned long, period)
- __field( long, think)
- ),
-
- TP_fast_assign(
- unsigned long freerun = (thresh + bg_thresh) / 2;
- strlcpy(__entry->bdi, dev_name(bdi->dev), 32);
-
- __entry->limit = global_dirty_limit;
- __entry->setpoint = (global_dirty_limit + freerun) / 2;
- __entry->dirty = dirty;
- __entry->bdi_setpoint = __entry->setpoint *
- bdi_thresh / (thresh + 1);
- __entry->bdi_dirty = bdi_dirty;
- __entry->dirty_ratelimit = KBps(dirty_ratelimit);
- __entry->task_ratelimit = KBps(task_ratelimit);
- __entry->dirtied = dirtied;
- __entry->dirtied_pause = current->nr_dirtied_pause;
- __entry->think = current->dirty_paused_when == 0 ? 0 :
- (long)(jiffies - current->dirty_paused_when) * 1000/HZ;
- __entry->period = period * 1000 / HZ;
- __entry->pause = pause * 1000 / HZ;
- __entry->paused = (jiffies - start_time) * 1000 / HZ;
- ),
-
-
- TP_printk("bdi %s: "
- "limit=%lu setpoint=%lu dirty=%lu "
- "bdi_setpoint=%lu bdi_dirty=%lu "
- "dirty_ratelimit=%lu task_ratelimit=%lu "
- "dirtied=%u dirtied_pause=%u "
- "paused=%lu pause=%ld period=%lu think=%ld",
- __entry->bdi,
- __entry->limit,
- __entry->setpoint,
- __entry->dirty,
- __entry->bdi_setpoint,
- __entry->bdi_dirty,
- __entry->dirty_ratelimit,
- __entry->task_ratelimit,
- __entry->dirtied,
- __entry->dirtied_pause,
- __entry->paused, /* ms */
- __entry->pause, /* ms */
- __entry->period, /* ms */
- __entry->think /* ms */
- )
-);
-
-DECLARE_EVENT_CLASS(writeback_congest_waited_template,
-
- TP_PROTO(unsigned int usec_timeout, unsigned int usec_delayed),
-
- TP_ARGS(usec_timeout, usec_delayed),
-
- TP_STRUCT__entry(
- __field( unsigned int, usec_timeout )
- __field( unsigned int, usec_delayed )
- ),
-
- TP_fast_assign(
- __entry->usec_timeout = usec_timeout;
- __entry->usec_delayed = usec_delayed;
- ),
-
- TP_printk("usec_timeout=%u usec_delayed=%u",
- __entry->usec_timeout,
- __entry->usec_delayed)
-);
-
-DEFINE_EVENT(writeback_congest_waited_template, writeback_congestion_wait,
-
- TP_PROTO(unsigned int usec_timeout, unsigned int usec_delayed),
-
- TP_ARGS(usec_timeout, usec_delayed)
-);
-
-DEFINE_EVENT(writeback_congest_waited_template, writeback_wait_iff_congested,
-
- TP_PROTO(unsigned int usec_timeout, unsigned int usec_delayed),
-
- TP_ARGS(usec_timeout, usec_delayed)
-);
-
-DECLARE_EVENT_CLASS(writeback_single_inode_template,
-
- TP_PROTO(struct inode *inode,
- struct writeback_control *wbc,
- unsigned long nr_to_write
- ),
-
- TP_ARGS(inode, wbc, nr_to_write),
-
- TP_STRUCT__entry(
- __array(char, name, 32)
- __field(unsigned long, ino)
- __field(unsigned long, state)
- __field(unsigned long, dirtied_when)
- __field(unsigned long, writeback_index)
- __field(long, nr_to_write)
- __field(unsigned long, wrote)
- ),
-
- TP_fast_assign(
- strncpy(__entry->name,
- dev_name(inode_to_bdi(inode)->dev), 32);
- __entry->ino = inode->i_ino;
- __entry->state = inode->i_state;
- __entry->dirtied_when = inode->dirtied_when;
- __entry->writeback_index = inode->i_mapping->writeback_index;
- __entry->nr_to_write = nr_to_write;
- __entry->wrote = nr_to_write - wbc->nr_to_write;
- ),
-
- TP_printk("bdi %s: ino=%lu state=%s dirtied_when=%lu age=%lu "
- "index=%lu to_write=%ld wrote=%lu",
- __entry->name,
- __entry->ino,
- show_inode_state(__entry->state),
- __entry->dirtied_when,
- (jiffies - __entry->dirtied_when) / HZ,
- __entry->writeback_index,
- __entry->nr_to_write,
- __entry->wrote
- )
-);
-
-DEFINE_EVENT(writeback_single_inode_template, writeback_single_inode_requeue,
- TP_PROTO(struct inode *inode,
- struct writeback_control *wbc,
- unsigned long nr_to_write),
- TP_ARGS(inode, wbc, nr_to_write)
-);
-
-DEFINE_EVENT(writeback_single_inode_template, writeback_single_inode,
- TP_PROTO(struct inode *inode,
- struct writeback_control *wbc,
- unsigned long nr_to_write),
- TP_ARGS(inode, wbc, nr_to_write)
-);
-
-#endif /* _TRACE_WRITEBACK_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/events/xen.h b/ANDROID_3.4.5/include/trace/events/xen.h
deleted file mode 100644
index 92f1a796..00000000
--- a/ANDROID_3.4.5/include/trace/events/xen.h
+++ /dev/null
@@ -1,506 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM xen
-
-#if !defined(_TRACE_XEN_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_XEN_H
-
-#include <linux/tracepoint.h>
-#include <asm/paravirt_types.h>
-#include <asm/xen/trace_types.h>
-
-struct multicall_entry;
-
-/* Multicalls */
-DECLARE_EVENT_CLASS(xen_mc__batch,
- TP_PROTO(enum paravirt_lazy_mode mode),
- TP_ARGS(mode),
- TP_STRUCT__entry(
- __field(enum paravirt_lazy_mode, mode)
- ),
- TP_fast_assign(__entry->mode = mode),
- TP_printk("start batch LAZY_%s",
- (__entry->mode == PARAVIRT_LAZY_MMU) ? "MMU" :
- (__entry->mode == PARAVIRT_LAZY_CPU) ? "CPU" : "NONE")
- );
-#define DEFINE_XEN_MC_BATCH(name) \
- DEFINE_EVENT(xen_mc__batch, name, \
- TP_PROTO(enum paravirt_lazy_mode mode), \
- TP_ARGS(mode))
-
-DEFINE_XEN_MC_BATCH(xen_mc_batch);
-DEFINE_XEN_MC_BATCH(xen_mc_issue);
-
-TRACE_EVENT(xen_mc_entry,
- TP_PROTO(struct multicall_entry *mc, unsigned nargs),
- TP_ARGS(mc, nargs),
- TP_STRUCT__entry(
- __field(unsigned int, op)
- __field(unsigned int, nargs)
- __array(unsigned long, args, 6)
- ),
- TP_fast_assign(__entry->op = mc->op;
- __entry->nargs = nargs;
- memcpy(__entry->args, mc->args, sizeof(unsigned long) * nargs);
- memset(__entry->args + nargs, 0, sizeof(unsigned long) * (6 - nargs));
- ),
- TP_printk("op %u%s args [%lx, %lx, %lx, %lx, %lx, %lx]",
- __entry->op, xen_hypercall_name(__entry->op),
- __entry->args[0], __entry->args[1], __entry->args[2],
- __entry->args[3], __entry->args[4], __entry->args[5])
- );
-
-TRACE_EVENT(xen_mc_entry_alloc,
- TP_PROTO(size_t args),
- TP_ARGS(args),
- TP_STRUCT__entry(
- __field(size_t, args)
- ),
- TP_fast_assign(__entry->args = args),
- TP_printk("alloc entry %zu arg bytes", __entry->args)
- );
-
-TRACE_EVENT(xen_mc_callback,
- TP_PROTO(xen_mc_callback_fn_t fn, void *data),
- TP_ARGS(fn, data),
- TP_STRUCT__entry(
- __field(xen_mc_callback_fn_t, fn)
- __field(void *, data)
- ),
- TP_fast_assign(
- __entry->fn = fn;
- __entry->data = data;
- ),
- TP_printk("callback %pf, data %p",
- __entry->fn, __entry->data)
- );
-
-TRACE_EVENT(xen_mc_flush_reason,
- TP_PROTO(enum xen_mc_flush_reason reason),
- TP_ARGS(reason),
- TP_STRUCT__entry(
- __field(enum xen_mc_flush_reason, reason)
- ),
- TP_fast_assign(__entry->reason = reason),
- TP_printk("flush reason %s",
- (__entry->reason == XEN_MC_FL_NONE) ? "NONE" :
- (__entry->reason == XEN_MC_FL_BATCH) ? "BATCH" :
- (__entry->reason == XEN_MC_FL_ARGS) ? "ARGS" :
- (__entry->reason == XEN_MC_FL_CALLBACK) ? "CALLBACK" : "??")
- );
-
-TRACE_EVENT(xen_mc_flush,
- TP_PROTO(unsigned mcidx, unsigned argidx, unsigned cbidx),
- TP_ARGS(mcidx, argidx, cbidx),
- TP_STRUCT__entry(
- __field(unsigned, mcidx)
- __field(unsigned, argidx)
- __field(unsigned, cbidx)
- ),
- TP_fast_assign(__entry->mcidx = mcidx;
- __entry->argidx = argidx;
- __entry->cbidx = cbidx),
- TP_printk("flushing %u hypercalls, %u arg bytes, %u callbacks",
- __entry->mcidx, __entry->argidx, __entry->cbidx)
- );
-
-TRACE_EVENT(xen_mc_extend_args,
- TP_PROTO(unsigned long op, size_t args, enum xen_mc_extend_args res),
- TP_ARGS(op, args, res),
- TP_STRUCT__entry(
- __field(unsigned int, op)
- __field(size_t, args)
- __field(enum xen_mc_extend_args, res)
- ),
- TP_fast_assign(__entry->op = op;
- __entry->args = args;
- __entry->res = res),
- TP_printk("extending op %u%s by %zu bytes res %s",
- __entry->op, xen_hypercall_name(__entry->op),
- __entry->args,
- __entry->res == XEN_MC_XE_OK ? "OK" :
- __entry->res == XEN_MC_XE_BAD_OP ? "BAD_OP" :
- __entry->res == XEN_MC_XE_NO_SPACE ? "NO_SPACE" : "???")
- );
-
-/* mmu */
-DECLARE_EVENT_CLASS(xen_mmu__set_pte,
- TP_PROTO(pte_t *ptep, pte_t pteval),
- TP_ARGS(ptep, pteval),
- TP_STRUCT__entry(
- __field(pte_t *, ptep)
- __field(pteval_t, pteval)
- ),
- TP_fast_assign(__entry->ptep = ptep;
- __entry->pteval = pteval.pte),
- TP_printk("ptep %p pteval %0*llx (raw %0*llx)",
- __entry->ptep,
- (int)sizeof(pteval_t) * 2, (unsigned long long)pte_val(native_make_pte(__entry->pteval)),
- (int)sizeof(pteval_t) * 2, (unsigned long long)__entry->pteval)
- );
-
-#define DEFINE_XEN_MMU_SET_PTE(name) \
- DEFINE_EVENT(xen_mmu__set_pte, name, \
- TP_PROTO(pte_t *ptep, pte_t pteval), \
- TP_ARGS(ptep, pteval))
-
-DEFINE_XEN_MMU_SET_PTE(xen_mmu_set_pte);
-DEFINE_XEN_MMU_SET_PTE(xen_mmu_set_pte_atomic);
-
-TRACE_EVENT(xen_mmu_set_domain_pte,
- TP_PROTO(pte_t *ptep, pte_t pteval, unsigned domid),
- TP_ARGS(ptep, pteval, domid),
- TP_STRUCT__entry(
- __field(pte_t *, ptep)
- __field(pteval_t, pteval)
- __field(unsigned, domid)
- ),
- TP_fast_assign(__entry->ptep = ptep;
- __entry->pteval = pteval.pte;
- __entry->domid = domid),
- TP_printk("ptep %p pteval %0*llx (raw %0*llx) domid %u",
- __entry->ptep,
- (int)sizeof(pteval_t) * 2, (unsigned long long)pte_val(native_make_pte(__entry->pteval)),
- (int)sizeof(pteval_t) * 2, (unsigned long long)__entry->pteval,
- __entry->domid)
- );
-
-TRACE_EVENT(xen_mmu_set_pte_at,
- TP_PROTO(struct mm_struct *mm, unsigned long addr,
- pte_t *ptep, pte_t pteval),
- TP_ARGS(mm, addr, ptep, pteval),
- TP_STRUCT__entry(
- __field(struct mm_struct *, mm)
- __field(unsigned long, addr)
- __field(pte_t *, ptep)
- __field(pteval_t, pteval)
- ),
- TP_fast_assign(__entry->mm = mm;
- __entry->addr = addr;
- __entry->ptep = ptep;
- __entry->pteval = pteval.pte),
- TP_printk("mm %p addr %lx ptep %p pteval %0*llx (raw %0*llx)",
- __entry->mm, __entry->addr, __entry->ptep,
- (int)sizeof(pteval_t) * 2, (unsigned long long)pte_val(native_make_pte(__entry->pteval)),
- (int)sizeof(pteval_t) * 2, (unsigned long long)__entry->pteval)
- );
-
-TRACE_EVENT(xen_mmu_pte_clear,
- TP_PROTO(struct mm_struct *mm, unsigned long addr, pte_t *ptep),
- TP_ARGS(mm, addr, ptep),
- TP_STRUCT__entry(
- __field(struct mm_struct *, mm)
- __field(unsigned long, addr)
- __field(pte_t *, ptep)
- ),
- TP_fast_assign(__entry->mm = mm;
- __entry->addr = addr;
- __entry->ptep = ptep),
- TP_printk("mm %p addr %lx ptep %p",
- __entry->mm, __entry->addr, __entry->ptep)
- );
-
-TRACE_EVENT(xen_mmu_set_pmd,
- TP_PROTO(pmd_t *pmdp, pmd_t pmdval),
- TP_ARGS(pmdp, pmdval),
- TP_STRUCT__entry(
- __field(pmd_t *, pmdp)
- __field(pmdval_t, pmdval)
- ),
- TP_fast_assign(__entry->pmdp = pmdp;
- __entry->pmdval = pmdval.pmd),
- TP_printk("pmdp %p pmdval %0*llx (raw %0*llx)",
- __entry->pmdp,
- (int)sizeof(pmdval_t) * 2, (unsigned long long)pmd_val(native_make_pmd(__entry->pmdval)),
- (int)sizeof(pmdval_t) * 2, (unsigned long long)__entry->pmdval)
- );
-
-TRACE_EVENT(xen_mmu_pmd_clear,
- TP_PROTO(pmd_t *pmdp),
- TP_ARGS(pmdp),
- TP_STRUCT__entry(
- __field(pmd_t *, pmdp)
- ),
- TP_fast_assign(__entry->pmdp = pmdp),
- TP_printk("pmdp %p", __entry->pmdp)
- );
-
-#if PAGETABLE_LEVELS >= 4
-
-TRACE_EVENT(xen_mmu_set_pud,
- TP_PROTO(pud_t *pudp, pud_t pudval),
- TP_ARGS(pudp, pudval),
- TP_STRUCT__entry(
- __field(pud_t *, pudp)
- __field(pudval_t, pudval)
- ),
- TP_fast_assign(__entry->pudp = pudp;
- __entry->pudval = native_pud_val(pudval)),
- TP_printk("pudp %p pudval %0*llx (raw %0*llx)",
- __entry->pudp,
- (int)sizeof(pudval_t) * 2, (unsigned long long)pud_val(native_make_pud(__entry->pudval)),
- (int)sizeof(pudval_t) * 2, (unsigned long long)__entry->pudval)
- );
-
-TRACE_EVENT(xen_mmu_set_pgd,
- TP_PROTO(pgd_t *pgdp, pgd_t *user_pgdp, pgd_t pgdval),
- TP_ARGS(pgdp, user_pgdp, pgdval),
- TP_STRUCT__entry(
- __field(pgd_t *, pgdp)
- __field(pgd_t *, user_pgdp)
- __field(pgdval_t, pgdval)
- ),
- TP_fast_assign(__entry->pgdp = pgdp;
- __entry->user_pgdp = user_pgdp;
- __entry->pgdval = pgdval.pgd),
- TP_printk("pgdp %p user_pgdp %p pgdval %0*llx (raw %0*llx)",
- __entry->pgdp, __entry->user_pgdp,
- (int)sizeof(pgdval_t) * 2, (unsigned long long)pgd_val(native_make_pgd(__entry->pgdval)),
- (int)sizeof(pgdval_t) * 2, (unsigned long long)__entry->pgdval)
- );
-
-TRACE_EVENT(xen_mmu_pud_clear,
- TP_PROTO(pud_t *pudp),
- TP_ARGS(pudp),
- TP_STRUCT__entry(
- __field(pud_t *, pudp)
- ),
- TP_fast_assign(__entry->pudp = pudp),
- TP_printk("pudp %p", __entry->pudp)
- );
-#else
-
-TRACE_EVENT(xen_mmu_set_pud,
- TP_PROTO(pud_t *pudp, pud_t pudval),
- TP_ARGS(pudp, pudval),
- TP_STRUCT__entry(
- __field(pud_t *, pudp)
- __field(pudval_t, pudval)
- ),
- TP_fast_assign(__entry->pudp = pudp;
- __entry->pudval = native_pud_val(pudval)),
- TP_printk("pudp %p pudval %0*llx (raw %0*llx)",
- __entry->pudp,
- (int)sizeof(pudval_t) * 2, (unsigned long long)pgd_val(native_make_pgd(__entry->pudval)),
- (int)sizeof(pudval_t) * 2, (unsigned long long)__entry->pudval)
- );
-
-#endif
-
-TRACE_EVENT(xen_mmu_pgd_clear,
- TP_PROTO(pgd_t *pgdp),
- TP_ARGS(pgdp),
- TP_STRUCT__entry(
- __field(pgd_t *, pgdp)
- ),
- TP_fast_assign(__entry->pgdp = pgdp),
- TP_printk("pgdp %p", __entry->pgdp)
- );
-
-DECLARE_EVENT_CLASS(xen_mmu_ptep_modify_prot,
- TP_PROTO(struct mm_struct *mm, unsigned long addr,
- pte_t *ptep, pte_t pteval),
- TP_ARGS(mm, addr, ptep, pteval),
- TP_STRUCT__entry(
- __field(struct mm_struct *, mm)
- __field(unsigned long, addr)
- __field(pte_t *, ptep)
- __field(pteval_t, pteval)
- ),
- TP_fast_assign(__entry->mm = mm;
- __entry->addr = addr;
- __entry->ptep = ptep;
- __entry->pteval = pteval.pte),
- TP_printk("mm %p addr %lx ptep %p pteval %0*llx (raw %0*llx)",
- __entry->mm, __entry->addr, __entry->ptep,
- (int)sizeof(pteval_t) * 2, (unsigned long long)pte_val(native_make_pte(__entry->pteval)),
- (int)sizeof(pteval_t) * 2, (unsigned long long)__entry->pteval)
- );
-#define DEFINE_XEN_MMU_PTEP_MODIFY_PROT(name) \
- DEFINE_EVENT(xen_mmu_ptep_modify_prot, name, \
- TP_PROTO(struct mm_struct *mm, unsigned long addr, \
- pte_t *ptep, pte_t pteval), \
- TP_ARGS(mm, addr, ptep, pteval))
-
-DEFINE_XEN_MMU_PTEP_MODIFY_PROT(xen_mmu_ptep_modify_prot_start);
-DEFINE_XEN_MMU_PTEP_MODIFY_PROT(xen_mmu_ptep_modify_prot_commit);
-
-TRACE_EVENT(xen_mmu_alloc_ptpage,
- TP_PROTO(struct mm_struct *mm, unsigned long pfn, unsigned level, bool pinned),
- TP_ARGS(mm, pfn, level, pinned),
- TP_STRUCT__entry(
- __field(struct mm_struct *, mm)
- __field(unsigned long, pfn)
- __field(unsigned, level)
- __field(bool, pinned)
- ),
- TP_fast_assign(__entry->mm = mm;
- __entry->pfn = pfn;
- __entry->level = level;
- __entry->pinned = pinned),
- TP_printk("mm %p pfn %lx level %d %spinned",
- __entry->mm, __entry->pfn, __entry->level,
- __entry->pinned ? "" : "un")
- );
-
-TRACE_EVENT(xen_mmu_release_ptpage,
- TP_PROTO(unsigned long pfn, unsigned level, bool pinned),
- TP_ARGS(pfn, level, pinned),
- TP_STRUCT__entry(
- __field(unsigned long, pfn)
- __field(unsigned, level)
- __field(bool, pinned)
- ),
- TP_fast_assign(__entry->pfn = pfn;
- __entry->level = level;
- __entry->pinned = pinned),
- TP_printk("pfn %lx level %d %spinned",
- __entry->pfn, __entry->level,
- __entry->pinned ? "" : "un")
- );
-
-DECLARE_EVENT_CLASS(xen_mmu_pgd,
- TP_PROTO(struct mm_struct *mm, pgd_t *pgd),
- TP_ARGS(mm, pgd),
- TP_STRUCT__entry(
- __field(struct mm_struct *, mm)
- __field(pgd_t *, pgd)
- ),
- TP_fast_assign(__entry->mm = mm;
- __entry->pgd = pgd),
- TP_printk("mm %p pgd %p", __entry->mm, __entry->pgd)
- );
-#define DEFINE_XEN_MMU_PGD_EVENT(name) \
- DEFINE_EVENT(xen_mmu_pgd, name, \
- TP_PROTO(struct mm_struct *mm, pgd_t *pgd), \
- TP_ARGS(mm, pgd))
-
-DEFINE_XEN_MMU_PGD_EVENT(xen_mmu_pgd_pin);
-DEFINE_XEN_MMU_PGD_EVENT(xen_mmu_pgd_unpin);
-
-TRACE_EVENT(xen_mmu_flush_tlb,
- TP_PROTO(int x),
- TP_ARGS(x),
- TP_STRUCT__entry(__array(char, x, 0)),
- TP_fast_assign((void)x),
- TP_printk("%s", "")
- );
-
-TRACE_EVENT(xen_mmu_flush_tlb_single,
- TP_PROTO(unsigned long addr),
- TP_ARGS(addr),
- TP_STRUCT__entry(
- __field(unsigned long, addr)
- ),
- TP_fast_assign(__entry->addr = addr),
- TP_printk("addr %lx", __entry->addr)
- );
-
-TRACE_EVENT(xen_mmu_flush_tlb_others,
- TP_PROTO(const struct cpumask *cpus, struct mm_struct *mm,
- unsigned long addr),
- TP_ARGS(cpus, mm, addr),
- TP_STRUCT__entry(
- __field(unsigned, ncpus)
- __field(struct mm_struct *, mm)
- __field(unsigned long, addr)
- ),
- TP_fast_assign(__entry->ncpus = cpumask_weight(cpus);
- __entry->mm = mm;
- __entry->addr = addr),
- TP_printk("ncpus %d mm %p addr %lx",
- __entry->ncpus, __entry->mm, __entry->addr)
- );
-
-TRACE_EVENT(xen_mmu_write_cr3,
- TP_PROTO(bool kernel, unsigned long cr3),
- TP_ARGS(kernel, cr3),
- TP_STRUCT__entry(
- __field(bool, kernel)
- __field(unsigned long, cr3)
- ),
- TP_fast_assign(__entry->kernel = kernel;
- __entry->cr3 = cr3),
- TP_printk("%s cr3 %lx",
- __entry->kernel ? "kernel" : "user", __entry->cr3)
- );
-
-
-/* CPU */
-TRACE_EVENT(xen_cpu_write_ldt_entry,
- TP_PROTO(struct desc_struct *dt, int entrynum, u64 desc),
- TP_ARGS(dt, entrynum, desc),
- TP_STRUCT__entry(
- __field(struct desc_struct *, dt)
- __field(int, entrynum)
- __field(u64, desc)
- ),
- TP_fast_assign(__entry->dt = dt;
- __entry->entrynum = entrynum;
- __entry->desc = desc;
- ),
- TP_printk("dt %p entrynum %d entry %016llx",
- __entry->dt, __entry->entrynum,
- (unsigned long long)__entry->desc)
- );
-
-TRACE_EVENT(xen_cpu_write_idt_entry,
- TP_PROTO(gate_desc *dt, int entrynum, const gate_desc *ent),
- TP_ARGS(dt, entrynum, ent),
- TP_STRUCT__entry(
- __field(gate_desc *, dt)
- __field(int, entrynum)
- ),
- TP_fast_assign(__entry->dt = dt;
- __entry->entrynum = entrynum;
- ),
- TP_printk("dt %p entrynum %d",
- __entry->dt, __entry->entrynum)
- );
-
-TRACE_EVENT(xen_cpu_load_idt,
- TP_PROTO(const struct desc_ptr *desc),
- TP_ARGS(desc),
- TP_STRUCT__entry(
- __field(unsigned long, addr)
- ),
- TP_fast_assign(__entry->addr = desc->address),
- TP_printk("addr %lx", __entry->addr)
- );
-
-TRACE_EVENT(xen_cpu_write_gdt_entry,
- TP_PROTO(struct desc_struct *dt, int entrynum, const void *desc, int type),
- TP_ARGS(dt, entrynum, desc, type),
- TP_STRUCT__entry(
- __field(u64, desc)
- __field(struct desc_struct *, dt)
- __field(int, entrynum)
- __field(int, type)
- ),
- TP_fast_assign(__entry->dt = dt;
- __entry->entrynum = entrynum;
- __entry->desc = *(u64 *)desc;
- __entry->type = type;
- ),
- TP_printk("dt %p entrynum %d type %d desc %016llx",
- __entry->dt, __entry->entrynum, __entry->type,
- (unsigned long long)__entry->desc)
- );
-
-TRACE_EVENT(xen_cpu_set_ldt,
- TP_PROTO(const void *addr, unsigned entries),
- TP_ARGS(addr, entries),
- TP_STRUCT__entry(
- __field(const void *, addr)
- __field(unsigned, entries)
- ),
- TP_fast_assign(__entry->addr = addr;
- __entry->entries = entries),
- TP_printk("addr %p entries %u",
- __entry->addr, __entry->entries)
- );
-
-
-#endif /* _TRACE_XEN_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
diff --git a/ANDROID_3.4.5/include/trace/ftrace.h b/ANDROID_3.4.5/include/trace/ftrace.h
deleted file mode 100644
index 76972494..00000000
--- a/ANDROID_3.4.5/include/trace/ftrace.h
+++ /dev/null
@@ -1,778 +0,0 @@
-/*
- * Stage 1 of the trace events.
- *
- * Override the macros in <trace/trace_events.h> to include the following:
- *
- * struct ftrace_raw_<call> {
- * struct trace_entry ent;
- * <type> <item>;
- * <type2> <item2>[<len>];
- * [...]
- * };
- *
- * The <type> <item> is created by the __field(type, item) macro or
- * the __array(type2, item2, len) macro.
- * We simply do "type item;", and that will create the fields
- * in the structure.
- */
-
-#include <linux/ftrace_event.h>
-
-/*
- * DECLARE_EVENT_CLASS can be used to add a generic function
- * handlers for events. That is, if all events have the same
- * parameters and just have distinct trace points.
- * Each tracepoint can be defined with DEFINE_EVENT and that
- * will map the DECLARE_EVENT_CLASS to the tracepoint.
- *
- * TRACE_EVENT is a one to one mapping between tracepoint and template.
- */
-#undef TRACE_EVENT
-#define TRACE_EVENT(name, proto, args, tstruct, assign, print) \
- DECLARE_EVENT_CLASS(name, \
- PARAMS(proto), \
- PARAMS(args), \
- PARAMS(tstruct), \
- PARAMS(assign), \
- PARAMS(print)); \
- DEFINE_EVENT(name, name, PARAMS(proto), PARAMS(args));
-
-
-#undef __field
-#define __field(type, item) type item;
-
-#undef __field_ext
-#define __field_ext(type, item, filter_type) type item;
-
-#undef __array
-#define __array(type, item, len) type item[len];
-
-#undef __dynamic_array
-#define __dynamic_array(type, item, len) u32 __data_loc_##item;
-
-#undef __string
-#define __string(item, src) __dynamic_array(char, item, -1)
-
-#undef TP_STRUCT__entry
-#define TP_STRUCT__entry(args...) args
-
-#undef DECLARE_EVENT_CLASS
-#define DECLARE_EVENT_CLASS(name, proto, args, tstruct, assign, print) \
- struct ftrace_raw_##name { \
- struct trace_entry ent; \
- tstruct \
- char __data[0]; \
- }; \
- \
- static struct ftrace_event_class event_class_##name;
-
-#undef DEFINE_EVENT
-#define DEFINE_EVENT(template, name, proto, args) \
- static struct ftrace_event_call __used \
- __attribute__((__aligned__(4))) event_##name
-
-#undef DEFINE_EVENT_PRINT
-#define DEFINE_EVENT_PRINT(template, name, proto, args, print) \
- DEFINE_EVENT(template, name, PARAMS(proto), PARAMS(args))
-
-/* Callbacks are meaningless to ftrace. */
-#undef TRACE_EVENT_FN
-#define TRACE_EVENT_FN(name, proto, args, tstruct, \
- assign, print, reg, unreg) \
- TRACE_EVENT(name, PARAMS(proto), PARAMS(args), \
- PARAMS(tstruct), PARAMS(assign), PARAMS(print)) \
-
-#undef TRACE_EVENT_FLAGS
-#define TRACE_EVENT_FLAGS(name, value) \
- __TRACE_EVENT_FLAGS(name, value)
-
-#include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
-
-
-/*
- * Stage 2 of the trace events.
- *
- * Include the following:
- *
- * struct ftrace_data_offsets_<call> {
- * u32 <item1>;
- * u32 <item2>;
- * [...]
- * };
- *
- * The __dynamic_array() macro will create each u32 <item>, this is
- * to keep the offset of each array from the beginning of the event.
- * The size of an array is also encoded, in the higher 16 bits of <item>.
- */
-
-#undef __field
-#define __field(type, item)
-
-#undef __field_ext
-#define __field_ext(type, item, filter_type)
-
-#undef __array
-#define __array(type, item, len)
-
-#undef __dynamic_array
-#define __dynamic_array(type, item, len) u32 item;
-
-#undef __string
-#define __string(item, src) __dynamic_array(char, item, -1)
-
-#undef DECLARE_EVENT_CLASS
-#define DECLARE_EVENT_CLASS(call, proto, args, tstruct, assign, print) \
- struct ftrace_data_offsets_##call { \
- tstruct; \
- };
-
-#undef DEFINE_EVENT
-#define DEFINE_EVENT(template, name, proto, args)
-
-#undef DEFINE_EVENT_PRINT
-#define DEFINE_EVENT_PRINT(template, name, proto, args, print) \
- DEFINE_EVENT(template, name, PARAMS(proto), PARAMS(args))
-
-#undef TRACE_EVENT_FLAGS
-#define TRACE_EVENT_FLAGS(event, flag)
-
-#include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
-
-/*
- * Stage 3 of the trace events.
- *
- * Override the macros in <trace/trace_events.h> to include the following:
- *
- * enum print_line_t
- * ftrace_raw_output_<call>(struct trace_iterator *iter, int flags)
- * {
- * struct trace_seq *s = &iter->seq;
- * struct ftrace_raw_<call> *field; <-- defined in stage 1
- * struct trace_entry *entry;
- * struct trace_seq *p = &iter->tmp_seq;
- * int ret;
- *
- * entry = iter->ent;
- *
- * if (entry->type != event_<call>->event.type) {
- * WARN_ON_ONCE(1);
- * return TRACE_TYPE_UNHANDLED;
- * }
- *
- * field = (typeof(field))entry;
- *
- * trace_seq_init(p);
- * ret = trace_seq_printf(s, "%s: ", <call>);
- * if (ret)
- * ret = trace_seq_printf(s, <TP_printk> "\n");
- * if (!ret)
- * return TRACE_TYPE_PARTIAL_LINE;
- *
- * return TRACE_TYPE_HANDLED;
- * }
- *
- * This is the method used to print the raw event to the trace
- * output format. Note, this is not needed if the data is read
- * in binary.
- */
-
-#undef __entry
-#define __entry field
-
-#undef TP_printk
-#define TP_printk(fmt, args...) fmt "\n", args
-
-#undef __get_dynamic_array
-#define __get_dynamic_array(field) \
- ((void *)__entry + (__entry->__data_loc_##field & 0xffff))
-
-#undef __get_str
-#define __get_str(field) (char *)__get_dynamic_array(field)
-
-#undef __print_flags
-#define __print_flags(flag, delim, flag_array...) \
- ({ \
- static const struct trace_print_flags __flags[] = \
- { flag_array, { -1, NULL }}; \
- ftrace_print_flags_seq(p, delim, flag, __flags); \
- })
-
-#undef __print_symbolic
-#define __print_symbolic(value, symbol_array...) \
- ({ \
- static const struct trace_print_flags symbols[] = \
- { symbol_array, { -1, NULL }}; \
- ftrace_print_symbols_seq(p, value, symbols); \
- })
-
-#undef __print_symbolic_u64
-#if BITS_PER_LONG == 32
-#define __print_symbolic_u64(value, symbol_array...) \
- ({ \
- static const struct trace_print_flags_u64 symbols[] = \
- { symbol_array, { -1, NULL } }; \
- ftrace_print_symbols_seq_u64(p, value, symbols); \
- })
-#else
-#define __print_symbolic_u64(value, symbol_array...) \
- __print_symbolic(value, symbol_array)
-#endif
-
-#undef __print_hex
-#define __print_hex(buf, buf_len) ftrace_print_hex_seq(p, buf, buf_len)
-
-#undef DECLARE_EVENT_CLASS
-#define DECLARE_EVENT_CLASS(call, proto, args, tstruct, assign, print) \
-static notrace enum print_line_t \
-ftrace_raw_output_##call(struct trace_iterator *iter, int flags, \
- struct trace_event *trace_event) \
-{ \
- struct ftrace_event_call *event; \
- struct trace_seq *s = &iter->seq; \
- struct ftrace_raw_##call *field; \
- struct trace_entry *entry; \
- struct trace_seq *p = &iter->tmp_seq; \
- int ret; \
- \
- event = container_of(trace_event, struct ftrace_event_call, \
- event); \
- \
- entry = iter->ent; \
- \
- if (entry->type != event->event.type) { \
- WARN_ON_ONCE(1); \
- return TRACE_TYPE_UNHANDLED; \
- } \
- \
- field = (typeof(field))entry; \
- \
- trace_seq_init(p); \
- ret = trace_seq_printf(s, "%s: ", event->name); \
- if (ret) \
- ret = trace_seq_printf(s, print); \
- if (!ret) \
- return TRACE_TYPE_PARTIAL_LINE; \
- \
- return TRACE_TYPE_HANDLED; \
-} \
-static struct trace_event_functions ftrace_event_type_funcs_##call = { \
- .trace = ftrace_raw_output_##call, \
-};
-
-#undef DEFINE_EVENT_PRINT
-#define DEFINE_EVENT_PRINT(template, call, proto, args, print) \
-static notrace enum print_line_t \
-ftrace_raw_output_##call(struct trace_iterator *iter, int flags, \
- struct trace_event *event) \
-{ \
- struct trace_seq *s = &iter->seq; \
- struct ftrace_raw_##template *field; \
- struct trace_entry *entry; \
- struct trace_seq *p = &iter->tmp_seq; \
- int ret; \
- \
- entry = iter->ent; \
- \
- if (entry->type != event_##call.event.type) { \
- WARN_ON_ONCE(1); \
- return TRACE_TYPE_UNHANDLED; \
- } \
- \
- field = (typeof(field))entry; \
- \
- trace_seq_init(p); \
- ret = trace_seq_printf(s, "%s: ", #call); \
- if (ret) \
- ret = trace_seq_printf(s, print); \
- if (!ret) \
- return TRACE_TYPE_PARTIAL_LINE; \
- \
- return TRACE_TYPE_HANDLED; \
-} \
-static struct trace_event_functions ftrace_event_type_funcs_##call = { \
- .trace = ftrace_raw_output_##call, \
-};
-
-#include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
-
-#undef __field_ext
-#define __field_ext(type, item, filter_type) \
- ret = trace_define_field(event_call, #type, #item, \
- offsetof(typeof(field), item), \
- sizeof(field.item), \
- is_signed_type(type), filter_type); \
- if (ret) \
- return ret;
-
-#undef __field
-#define __field(type, item) __field_ext(type, item, FILTER_OTHER)
-
-#undef __array
-#define __array(type, item, len) \
- do { \
- mutex_lock(&event_storage_mutex); \
- BUILD_BUG_ON(len > MAX_FILTER_STR_VAL); \
- snprintf(event_storage, sizeof(event_storage), \
- "%s[%d]", #type, len); \
- ret = trace_define_field(event_call, event_storage, #item, \
- offsetof(typeof(field), item), \
- sizeof(field.item), \
- is_signed_type(type), FILTER_OTHER); \
- mutex_unlock(&event_storage_mutex); \
- if (ret) \
- return ret; \
- } while (0);
-
-#undef __dynamic_array
-#define __dynamic_array(type, item, len) \
- ret = trace_define_field(event_call, "__data_loc " #type "[]", #item, \
- offsetof(typeof(field), __data_loc_##item), \
- sizeof(field.__data_loc_##item), \
- is_signed_type(type), FILTER_OTHER);
-
-#undef __string
-#define __string(item, src) __dynamic_array(char, item, -1)
-
-#undef DECLARE_EVENT_CLASS
-#define DECLARE_EVENT_CLASS(call, proto, args, tstruct, func, print) \
-static int notrace \
-ftrace_define_fields_##call(struct ftrace_event_call *event_call) \
-{ \
- struct ftrace_raw_##call field; \
- int ret; \
- \
- tstruct; \
- \
- return ret; \
-}
-
-#undef DEFINE_EVENT
-#define DEFINE_EVENT(template, name, proto, args)
-
-#undef DEFINE_EVENT_PRINT
-#define DEFINE_EVENT_PRINT(template, name, proto, args, print) \
- DEFINE_EVENT(template, name, PARAMS(proto), PARAMS(args))
-
-#include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
-
-/*
- * remember the offset of each array from the beginning of the event.
- */
-
-#undef __entry
-#define __entry entry
-
-#undef __field
-#define __field(type, item)
-
-#undef __field_ext
-#define __field_ext(type, item, filter_type)
-
-#undef __array
-#define __array(type, item, len)
-
-#undef __dynamic_array
-#define __dynamic_array(type, item, len) \
- __data_offsets->item = __data_size + \
- offsetof(typeof(*entry), __data); \
- __data_offsets->item |= (len * sizeof(type)) << 16; \
- __data_size += (len) * sizeof(type);
-
-#undef __string
-#define __string(item, src) __dynamic_array(char, item, strlen(src) + 1)
-
-#undef DECLARE_EVENT_CLASS
-#define DECLARE_EVENT_CLASS(call, proto, args, tstruct, assign, print) \
-static inline notrace int ftrace_get_offsets_##call( \
- struct ftrace_data_offsets_##call *__data_offsets, proto) \
-{ \
- int __data_size = 0; \
- struct ftrace_raw_##call __maybe_unused *entry; \
- \
- tstruct; \
- \
- return __data_size; \
-}
-
-#undef DEFINE_EVENT
-#define DEFINE_EVENT(template, name, proto, args)
-
-#undef DEFINE_EVENT_PRINT
-#define DEFINE_EVENT_PRINT(template, name, proto, args, print) \
- DEFINE_EVENT(template, name, PARAMS(proto), PARAMS(args))
-
-#include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
-
-/*
- * Stage 4 of the trace events.
- *
- * Override the macros in <trace/trace_events.h> to include the following:
- *
- * For those macros defined with TRACE_EVENT:
- *
- * static struct ftrace_event_call event_<call>;
- *
- * static void ftrace_raw_event_<call>(void *__data, proto)
- * {
- * struct ftrace_event_call *event_call = __data;
- * struct ftrace_data_offsets_<call> __maybe_unused __data_offsets;
- * struct ring_buffer_event *event;
- * struct ftrace_raw_<call> *entry; <-- defined in stage 1
- * struct ring_buffer *buffer;
- * unsigned long irq_flags;
- * int __data_size;
- * int pc;
- *
- * local_save_flags(irq_flags);
- * pc = preempt_count();
- *
- * __data_size = ftrace_get_offsets_<call>(&__data_offsets, args);
- *
- * event = trace_current_buffer_lock_reserve(&buffer,
- * event_<call>->event.type,
- * sizeof(*entry) + __data_size,
- * irq_flags, pc);
- * if (!event)
- * return;
- * entry = ring_buffer_event_data(event);
- *
- * { <assign>; } <-- Here we assign the entries by the __field and
- * __array macros.
- *
- * if (!filter_current_check_discard(buffer, event_call, entry, event))
- * trace_current_buffer_unlock_commit(buffer,
- * event, irq_flags, pc);
- * }
- *
- * static struct trace_event ftrace_event_type_<call> = {
- * .trace = ftrace_raw_output_<call>, <-- stage 2
- * };
- *
- * static const char print_fmt_<call>[] = <TP_printk>;
- *
- * static struct ftrace_event_class __used event_class_<template> = {
- * .system = "<system>",
- * .define_fields = ftrace_define_fields_<call>,
- * .fields = LIST_HEAD_INIT(event_class_##call.fields),
- * .raw_init = trace_event_raw_init,
- * .probe = ftrace_raw_event_##call,
- * .reg = ftrace_event_reg,
- * };
- *
- * static struct ftrace_event_call event_<call> = {
- * .name = "<call>",
- * .class = event_class_<template>,
- * .event = &ftrace_event_type_<call>,
- * .print_fmt = print_fmt_<call>,
- * };
- * // its only safe to use pointers when doing linker tricks to
- * // create an array.
- * static struct ftrace_event_call __used
- * __attribute__((section("_ftrace_events"))) *__event_<call> = &event_<call>;
- *
- */
-
-#ifdef CONFIG_PERF_EVENTS
-
-#define _TRACE_PERF_PROTO(call, proto) \
- static notrace void \
- perf_trace_##call(void *__data, proto);
-
-#define _TRACE_PERF_INIT(call) \
- .perf_probe = perf_trace_##call,
-
-#else
-#define _TRACE_PERF_PROTO(call, proto)
-#define _TRACE_PERF_INIT(call)
-#endif /* CONFIG_PERF_EVENTS */
-
-#undef __entry
-#define __entry entry
-
-#undef __field
-#define __field(type, item)
-
-#undef __array
-#define __array(type, item, len)
-
-#undef __dynamic_array
-#define __dynamic_array(type, item, len) \
- __entry->__data_loc_##item = __data_offsets.item;
-
-#undef __string
-#define __string(item, src) __dynamic_array(char, item, -1) \
-
-#undef __assign_str
-#define __assign_str(dst, src) \
- strcpy(__get_str(dst), src);
-
-#undef TP_fast_assign
-#define TP_fast_assign(args...) args
-
-#undef TP_perf_assign
-#define TP_perf_assign(args...)
-
-#undef DECLARE_EVENT_CLASS
-#define DECLARE_EVENT_CLASS(call, proto, args, tstruct, assign, print) \
- \
-static notrace void \
-ftrace_raw_event_##call(void *__data, proto) \
-{ \
- struct ftrace_event_call *event_call = __data; \
- struct ftrace_data_offsets_##call __maybe_unused __data_offsets;\
- struct ring_buffer_event *event; \
- struct ftrace_raw_##call *entry; \
- struct ring_buffer *buffer; \
- unsigned long irq_flags; \
- int __data_size; \
- int pc; \
- \
- local_save_flags(irq_flags); \
- pc = preempt_count(); \
- \
- __data_size = ftrace_get_offsets_##call(&__data_offsets, args); \
- \
- event = trace_current_buffer_lock_reserve(&buffer, \
- event_call->event.type, \
- sizeof(*entry) + __data_size, \
- irq_flags, pc); \
- if (!event) \
- return; \
- entry = ring_buffer_event_data(event); \
- \
- tstruct \
- \
- { assign; } \
- \
- if (!filter_current_check_discard(buffer, event_call, entry, event)) \
- trace_nowake_buffer_unlock_commit(buffer, \
- event, irq_flags, pc); \
-}
-/*
- * The ftrace_test_probe is compiled out, it is only here as a build time check
- * to make sure that if the tracepoint handling changes, the ftrace probe will
- * fail to compile unless it too is updated.
- */
-
-#undef DEFINE_EVENT
-#define DEFINE_EVENT(template, call, proto, args) \
-static inline void ftrace_test_probe_##call(void) \
-{ \
- check_trace_callback_type_##call(ftrace_raw_event_##template); \
-}
-
-#undef DEFINE_EVENT_PRINT
-#define DEFINE_EVENT_PRINT(template, name, proto, args, print)
-
-#include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
-
-#undef __entry
-#define __entry REC
-
-#undef __print_flags
-#undef __print_symbolic
-#undef __get_dynamic_array
-#undef __get_str
-
-#undef TP_printk
-#define TP_printk(fmt, args...) "\"" fmt "\", " __stringify(args)
-
-#undef DECLARE_EVENT_CLASS
-#define DECLARE_EVENT_CLASS(call, proto, args, tstruct, assign, print) \
-_TRACE_PERF_PROTO(call, PARAMS(proto)); \
-static const char print_fmt_##call[] = print; \
-static struct ftrace_event_class __used event_class_##call = { \
- .system = __stringify(TRACE_SYSTEM), \
- .define_fields = ftrace_define_fields_##call, \
- .fields = LIST_HEAD_INIT(event_class_##call.fields),\
- .raw_init = trace_event_raw_init, \
- .probe = ftrace_raw_event_##call, \
- .reg = ftrace_event_reg, \
- _TRACE_PERF_INIT(call) \
-};
-
-#undef DEFINE_EVENT
-#define DEFINE_EVENT(template, call, proto, args) \
- \
-static struct ftrace_event_call __used event_##call = { \
- .name = #call, \
- .class = &event_class_##template, \
- .event.funcs = &ftrace_event_type_funcs_##template, \
- .print_fmt = print_fmt_##template, \
-}; \
-static struct ftrace_event_call __used \
-__attribute__((section("_ftrace_events"))) *__event_##call = &event_##call
-
-#undef DEFINE_EVENT_PRINT
-#define DEFINE_EVENT_PRINT(template, call, proto, args, print) \
- \
-static const char print_fmt_##call[] = print; \
- \
-static struct ftrace_event_call __used event_##call = { \
- .name = #call, \
- .class = &event_class_##template, \
- .event.funcs = &ftrace_event_type_funcs_##call, \
- .print_fmt = print_fmt_##call, \
-}; \
-static struct ftrace_event_call __used \
-__attribute__((section("_ftrace_events"))) *__event_##call = &event_##call
-
-#include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
-
-/*
- * Define the insertion callback to perf events
- *
- * The job is very similar to ftrace_raw_event_<call> except that we don't
- * insert in the ring buffer but in a perf counter.
- *
- * static void ftrace_perf_<call>(proto)
- * {
- * struct ftrace_data_offsets_<call> __maybe_unused __data_offsets;
- * struct ftrace_event_call *event_call = &event_<call>;
- * extern void perf_tp_event(int, u64, u64, void *, int);
- * struct ftrace_raw_##call *entry;
- * struct perf_trace_buf *trace_buf;
- * u64 __addr = 0, __count = 1;
- * unsigned long irq_flags;
- * struct trace_entry *ent;
- * int __entry_size;
- * int __data_size;
- * int __cpu
- * int pc;
- *
- * pc = preempt_count();
- *
- * __data_size = ftrace_get_offsets_<call>(&__data_offsets, args);
- *
- * // Below we want to get the aligned size by taking into account
- * // the u32 field that will later store the buffer size
- * __entry_size = ALIGN(__data_size + sizeof(*entry) + sizeof(u32),
- * sizeof(u64));
- * __entry_size -= sizeof(u32);
- *
- * // Protect the non nmi buffer
- * // This also protects the rcu read side
- * local_irq_save(irq_flags);
- * __cpu = smp_processor_id();
- *
- * if (in_nmi())
- * trace_buf = rcu_dereference_sched(perf_trace_buf_nmi);
- * else
- * trace_buf = rcu_dereference_sched(perf_trace_buf);
- *
- * if (!trace_buf)
- * goto end;
- *
- * trace_buf = per_cpu_ptr(trace_buf, __cpu);
- *
- * // Avoid recursion from perf that could mess up the buffer
- * if (trace_buf->recursion++)
- * goto end_recursion;
- *
- * raw_data = trace_buf->buf;
- *
- * // Make recursion update visible before entering perf_tp_event
- * // so that we protect from perf recursions.
- *
- * barrier();
- *
- * //zero dead bytes from alignment to avoid stack leak to userspace:
- * *(u64 *)(&raw_data[__entry_size - sizeof(u64)]) = 0ULL;
- * entry = (struct ftrace_raw_<call> *)raw_data;
- * ent = &entry->ent;
- * tracing_generic_entry_update(ent, irq_flags, pc);
- * ent->type = event_call->id;
- *
- * <tstruct> <- do some jobs with dynamic arrays
- *
- * <assign> <- affect our values
- *
- * perf_tp_event(event_call->id, __addr, __count, entry,
- * __entry_size); <- submit them to perf counter
- *
- * }
- */
-
-#ifdef CONFIG_PERF_EVENTS
-
-#undef __entry
-#define __entry entry
-
-#undef __get_dynamic_array
-#define __get_dynamic_array(field) \
- ((void *)__entry + (__entry->__data_loc_##field & 0xffff))
-
-#undef __get_str
-#define __get_str(field) (char *)__get_dynamic_array(field)
-
-#undef __perf_addr
-#define __perf_addr(a) __addr = (a)
-
-#undef __perf_count
-#define __perf_count(c) __count = (c)
-
-#undef TP_perf_assign
-#define TP_perf_assign(args...) args
-
-#undef DECLARE_EVENT_CLASS
-#define DECLARE_EVENT_CLASS(call, proto, args, tstruct, assign, print) \
-static notrace void \
-perf_trace_##call(void *__data, proto) \
-{ \
- struct ftrace_event_call *event_call = __data; \
- struct ftrace_data_offsets_##call __maybe_unused __data_offsets;\
- struct ftrace_raw_##call *entry; \
- struct pt_regs __regs; \
- u64 __addr = 0, __count = 1; \
- struct hlist_head *head; \
- int __entry_size; \
- int __data_size; \
- int rctx; \
- \
- perf_fetch_caller_regs(&__regs); \
- \
- __data_size = ftrace_get_offsets_##call(&__data_offsets, args); \
- __entry_size = ALIGN(__data_size + sizeof(*entry) + sizeof(u32),\
- sizeof(u64)); \
- __entry_size -= sizeof(u32); \
- \
- if (WARN_ONCE(__entry_size > PERF_MAX_TRACE_SIZE, \
- "profile buffer not large enough")) \
- return; \
- \
- entry = (struct ftrace_raw_##call *)perf_trace_buf_prepare( \
- __entry_size, event_call->event.type, &__regs, &rctx); \
- if (!entry) \
- return; \
- \
- tstruct \
- \
- { assign; } \
- \
- head = this_cpu_ptr(event_call->perf_events); \
- perf_trace_buf_submit(entry, __entry_size, rctx, __addr, \
- __count, &__regs, head); \
-}
-
-/*
- * This part is compiled out, it is only here as a build time check
- * to make sure that if the tracepoint handling changes, the
- * perf probe will fail to compile unless it too is updated.
- */
-#undef DEFINE_EVENT
-#define DEFINE_EVENT(template, call, proto, args) \
-static inline void perf_test_probe_##call(void) \
-{ \
- check_trace_callback_type_##call(perf_trace_##template); \
-}
-
-
-#undef DEFINE_EVENT_PRINT
-#define DEFINE_EVENT_PRINT(template, name, proto, args, print) \
- DEFINE_EVENT(template, name, PARAMS(proto), PARAMS(args))
-
-#include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
-#endif /* CONFIG_PERF_EVENTS */
-
-#undef _TRACE_PROFILE_INIT
-
diff --git a/ANDROID_3.4.5/include/trace/syscall.h b/ANDROID_3.4.5/include/trace/syscall.h
deleted file mode 100644
index 31966a4f..00000000
--- a/ANDROID_3.4.5/include/trace/syscall.h
+++ /dev/null
@@ -1,57 +0,0 @@
-#ifndef _TRACE_SYSCALL_H
-#define _TRACE_SYSCALL_H
-
-#include <linux/tracepoint.h>
-#include <linux/unistd.h>
-#include <linux/ftrace_event.h>
-
-#include <asm/ptrace.h>
-
-
-/*
- * A syscall entry in the ftrace syscalls array.
- *
- * @name: name of the syscall
- * @syscall_nr: number of the syscall
- * @nb_args: number of parameters it takes
- * @types: list of types as strings
- * @args: list of args as strings (args[i] matches types[i])
- * @enter_event: associated syscall_enter trace event
- * @exit_event: associated syscall_exit trace event
- */
-struct syscall_metadata {
- const char *name;
- int syscall_nr;
- int nb_args;
- const char **types;
- const char **args;
- struct list_head enter_fields;
-
- struct ftrace_event_call *enter_event;
- struct ftrace_event_call *exit_event;
-};
-
-#ifdef CONFIG_FTRACE_SYSCALLS
-extern unsigned long arch_syscall_addr(int nr);
-extern int init_syscall_trace(struct ftrace_event_call *call);
-
-extern int reg_event_syscall_enter(struct ftrace_event_call *call);
-extern void unreg_event_syscall_enter(struct ftrace_event_call *call);
-extern int reg_event_syscall_exit(struct ftrace_event_call *call);
-extern void unreg_event_syscall_exit(struct ftrace_event_call *call);
-extern int
-ftrace_format_syscall(struct ftrace_event_call *call, struct trace_seq *s);
-enum print_line_t print_syscall_enter(struct trace_iterator *iter, int flags,
- struct trace_event *event);
-enum print_line_t print_syscall_exit(struct trace_iterator *iter, int flags,
- struct trace_event *event);
-#endif
-
-#ifdef CONFIG_PERF_EVENTS
-int perf_sysenter_enable(struct ftrace_event_call *call);
-void perf_sysenter_disable(struct ftrace_event_call *call);
-int perf_sysexit_enable(struct ftrace_event_call *call);
-void perf_sysexit_disable(struct ftrace_event_call *call);
-#endif
-
-#endif /* _TRACE_SYSCALL_H */
diff --git a/ANDROID_3.4.5/include/video/Kbuild b/ANDROID_3.4.5/include/video/Kbuild
deleted file mode 100644
index ad3e622c..00000000
--- a/ANDROID_3.4.5/include/video/Kbuild
+++ /dev/null
@@ -1,3 +0,0 @@
-header-y += edid.h
-header-y += sisfb.h
-header-y += uvesafb.h
diff --git a/ANDROID_3.4.5/include/video/atmel_lcdc.h b/ANDROID_3.4.5/include/video/atmel_lcdc.h
deleted file mode 100644
index 28447f15..00000000
--- a/ANDROID_3.4.5/include/video/atmel_lcdc.h
+++ /dev/null
@@ -1,219 +0,0 @@
-/*
- * Header file for AT91/AT32 LCD Controller
- *
- * Data structure and register user interface
- *
- * Copyright (C) 2007 Atmel Corporation
- *
- * 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
- */
-#ifndef __ATMEL_LCDC_H__
-#define __ATMEL_LCDC_H__
-
-#include <linux/workqueue.h>
-
-/* Way LCD wires are connected to the chip:
- * Some Atmel chips use BGR color mode (instead of standard RGB)
- * A swapped wiring onboard can bring to RGB mode.
- */
-#define ATMEL_LCDC_WIRING_BGR 0
-#define ATMEL_LCDC_WIRING_RGB 1
-#define ATMEL_LCDC_WIRING_RGB555 2
-
-
- /* LCD Controller info data structure, stored in device platform_data */
-struct atmel_lcdfb_info {
- spinlock_t lock;
- struct fb_info *info;
- void __iomem *mmio;
- int irq_base;
- struct work_struct task;
-
- unsigned int guard_time;
- unsigned int smem_len;
- struct platform_device *pdev;
- struct clk *bus_clk;
- struct clk *lcdc_clk;
-
-#ifdef CONFIG_BACKLIGHT_ATMEL_LCDC
- struct backlight_device *backlight;
- u8 bl_power;
-#endif
- bool lcdcon_is_backlight;
- bool lcdcon_pol_negative;
- u8 saved_lcdcon;
-
- u8 default_bpp;
- u8 lcd_wiring_mode;
- unsigned int default_lcdcon2;
- unsigned int default_dmacon;
- void (*atmel_lcdfb_power_control)(int on);
- struct fb_monspecs *default_monspecs;
- u32 pseudo_palette[16];
-};
-
-#define ATMEL_LCDC_DMABADDR1 0x00
-#define ATMEL_LCDC_DMABADDR2 0x04
-#define ATMEL_LCDC_DMAFRMPT1 0x08
-#define ATMEL_LCDC_DMAFRMPT2 0x0c
-#define ATMEL_LCDC_DMAFRMADD1 0x10
-#define ATMEL_LCDC_DMAFRMADD2 0x14
-
-#define ATMEL_LCDC_DMAFRMCFG 0x18
-#define ATMEL_LCDC_FRSIZE (0x7fffff << 0)
-#define ATMEL_LCDC_BLENGTH_OFFSET 24
-#define ATMEL_LCDC_BLENGTH (0x7f << ATMEL_LCDC_BLENGTH_OFFSET)
-
-#define ATMEL_LCDC_DMACON 0x1c
-#define ATMEL_LCDC_DMAEN (0x1 << 0)
-#define ATMEL_LCDC_DMARST (0x1 << 1)
-#define ATMEL_LCDC_DMABUSY (0x1 << 2)
-#define ATMEL_LCDC_DMAUPDT (0x1 << 3)
-#define ATMEL_LCDC_DMA2DEN (0x1 << 4)
-
-#define ATMEL_LCDC_DMA2DCFG 0x20
-#define ATMEL_LCDC_ADDRINC_OFFSET 0
-#define ATMEL_LCDC_ADDRINC (0xffff)
-#define ATMEL_LCDC_PIXELOFF_OFFSET 24
-#define ATMEL_LCDC_PIXELOFF (0x1f << 24)
-
-#define ATMEL_LCDC_LCDCON1 0x0800
-#define ATMEL_LCDC_BYPASS (1 << 0)
-#define ATMEL_LCDC_CLKVAL_OFFSET 12
-#define ATMEL_LCDC_CLKVAL (0x1ff << ATMEL_LCDC_CLKVAL_OFFSET)
-#define ATMEL_LCDC_LINCNT (0x7ff << 21)
-
-#define ATMEL_LCDC_LCDCON2 0x0804
-#define ATMEL_LCDC_DISTYPE (3 << 0)
-#define ATMEL_LCDC_DISTYPE_STNMONO (0 << 0)
-#define ATMEL_LCDC_DISTYPE_STNCOLOR (1 << 0)
-#define ATMEL_LCDC_DISTYPE_TFT (2 << 0)
-#define ATMEL_LCDC_SCANMOD (1 << 2)
-#define ATMEL_LCDC_SCANMOD_SINGLE (0 << 2)
-#define ATMEL_LCDC_SCANMOD_DUAL (1 << 2)
-#define ATMEL_LCDC_IFWIDTH (3 << 3)
-#define ATMEL_LCDC_IFWIDTH_4 (0 << 3)
-#define ATMEL_LCDC_IFWIDTH_8 (1 << 3)
-#define ATMEL_LCDC_IFWIDTH_16 (2 << 3)
-#define ATMEL_LCDC_PIXELSIZE (7 << 5)
-#define ATMEL_LCDC_PIXELSIZE_1 (0 << 5)
-#define ATMEL_LCDC_PIXELSIZE_2 (1 << 5)
-#define ATMEL_LCDC_PIXELSIZE_4 (2 << 5)
-#define ATMEL_LCDC_PIXELSIZE_8 (3 << 5)
-#define ATMEL_LCDC_PIXELSIZE_16 (4 << 5)
-#define ATMEL_LCDC_PIXELSIZE_24 (5 << 5)
-#define ATMEL_LCDC_PIXELSIZE_32 (6 << 5)
-#define ATMEL_LCDC_INVVD (1 << 8)
-#define ATMEL_LCDC_INVVD_NORMAL (0 << 8)
-#define ATMEL_LCDC_INVVD_INVERTED (1 << 8)
-#define ATMEL_LCDC_INVFRAME (1 << 9 )
-#define ATMEL_LCDC_INVFRAME_NORMAL (0 << 9)
-#define ATMEL_LCDC_INVFRAME_INVERTED (1 << 9)
-#define ATMEL_LCDC_INVLINE (1 << 10)
-#define ATMEL_LCDC_INVLINE_NORMAL (0 << 10)
-#define ATMEL_LCDC_INVLINE_INVERTED (1 << 10)
-#define ATMEL_LCDC_INVCLK (1 << 11)
-#define ATMEL_LCDC_INVCLK_NORMAL (0 << 11)
-#define ATMEL_LCDC_INVCLK_INVERTED (1 << 11)
-#define ATMEL_LCDC_INVDVAL (1 << 12)
-#define ATMEL_LCDC_INVDVAL_NORMAL (0 << 12)
-#define ATMEL_LCDC_INVDVAL_INVERTED (1 << 12)
-#define ATMEL_LCDC_CLKMOD (1 << 15)
-#define ATMEL_LCDC_CLKMOD_ACTIVEDISPLAY (0 << 15)
-#define ATMEL_LCDC_CLKMOD_ALWAYSACTIVE (1 << 15)
-#define ATMEL_LCDC_MEMOR (1 << 31)
-#define ATMEL_LCDC_MEMOR_BIG (0 << 31)
-#define ATMEL_LCDC_MEMOR_LITTLE (1 << 31)
-
-#define ATMEL_LCDC_TIM1 0x0808
-#define ATMEL_LCDC_VFP (0xffU << 0)
-#define ATMEL_LCDC_VBP_OFFSET 8
-#define ATMEL_LCDC_VBP (0xffU << ATMEL_LCDC_VBP_OFFSET)
-#define ATMEL_LCDC_VPW_OFFSET 16
-#define ATMEL_LCDC_VPW (0x3fU << ATMEL_LCDC_VPW_OFFSET)
-#define ATMEL_LCDC_VHDLY_OFFSET 24
-#define ATMEL_LCDC_VHDLY (0xfU << ATMEL_LCDC_VHDLY_OFFSET)
-
-#define ATMEL_LCDC_TIM2 0x080c
-#define ATMEL_LCDC_HBP (0xffU << 0)
-#define ATMEL_LCDC_HPW_OFFSET 8
-#define ATMEL_LCDC_HPW (0x3fU << ATMEL_LCDC_HPW_OFFSET)
-#define ATMEL_LCDC_HFP_OFFSET 21
-#define ATMEL_LCDC_HFP (0x7ffU << ATMEL_LCDC_HFP_OFFSET)
-
-#define ATMEL_LCDC_LCDFRMCFG 0x0810
-#define ATMEL_LCDC_LINEVAL (0x7ff << 0)
-#define ATMEL_LCDC_HOZVAL_OFFSET 21
-#define ATMEL_LCDC_HOZVAL (0x7ff << ATMEL_LCDC_HOZVAL_OFFSET)
-
-#define ATMEL_LCDC_FIFO 0x0814
-#define ATMEL_LCDC_FIFOTH (0xffff)
-
-#define ATMEL_LCDC_MVAL 0x0818
-
-#define ATMEL_LCDC_DP1_2 0x081c
-#define ATMEL_LCDC_DP4_7 0x0820
-#define ATMEL_LCDC_DP3_5 0x0824
-#define ATMEL_LCDC_DP2_3 0x0828
-#define ATMEL_LCDC_DP5_7 0x082c
-#define ATMEL_LCDC_DP3_4 0x0830
-#define ATMEL_LCDC_DP4_5 0x0834
-#define ATMEL_LCDC_DP6_7 0x0838
-#define ATMEL_LCDC_DP1_2_VAL (0xff)
-#define ATMEL_LCDC_DP4_7_VAL (0xfffffff)
-#define ATMEL_LCDC_DP3_5_VAL (0xfffff)
-#define ATMEL_LCDC_DP2_3_VAL (0xfff)
-#define ATMEL_LCDC_DP5_7_VAL (0xfffffff)
-#define ATMEL_LCDC_DP3_4_VAL (0xffff)
-#define ATMEL_LCDC_DP4_5_VAL (0xfffff)
-#define ATMEL_LCDC_DP6_7_VAL (0xfffffff)
-
-#define ATMEL_LCDC_PWRCON 0x083c
-#define ATMEL_LCDC_PWR (1 << 0)
-#define ATMEL_LCDC_GUARDT_OFFSET 1
-#define ATMEL_LCDC_GUARDT (0x7f << ATMEL_LCDC_GUARDT_OFFSET)
-#define ATMEL_LCDC_BUSY (1 << 31)
-
-#define ATMEL_LCDC_CONTRAST_CTR 0x0840
-#define ATMEL_LCDC_PS (3 << 0)
-#define ATMEL_LCDC_PS_DIV1 (0 << 0)
-#define ATMEL_LCDC_PS_DIV2 (1 << 0)
-#define ATMEL_LCDC_PS_DIV4 (2 << 0)
-#define ATMEL_LCDC_PS_DIV8 (3 << 0)
-#define ATMEL_LCDC_POL (1 << 2)
-#define ATMEL_LCDC_POL_NEGATIVE (0 << 2)
-#define ATMEL_LCDC_POL_POSITIVE (1 << 2)
-#define ATMEL_LCDC_ENA (1 << 3)
-#define ATMEL_LCDC_ENA_PWMDISABLE (0 << 3)
-#define ATMEL_LCDC_ENA_PWMENABLE (1 << 3)
-
-#define ATMEL_LCDC_CONTRAST_VAL 0x0844
-#define ATMEL_LCDC_CVAL (0xff)
-
-#define ATMEL_LCDC_IER 0x0848
-#define ATMEL_LCDC_IDR 0x084c
-#define ATMEL_LCDC_IMR 0x0850
-#define ATMEL_LCDC_ISR 0x0854
-#define ATMEL_LCDC_ICR 0x0858
-#define ATMEL_LCDC_LNI (1 << 0)
-#define ATMEL_LCDC_LSTLNI (1 << 1)
-#define ATMEL_LCDC_EOFI (1 << 2)
-#define ATMEL_LCDC_UFLWI (1 << 4)
-#define ATMEL_LCDC_OWRI (1 << 5)
-#define ATMEL_LCDC_MERI (1 << 6)
-
-#define ATMEL_LCDC_LUT(n) (0x0c00 + ((n)*4))
-
-#endif /* __ATMEL_LCDC_H__ */
diff --git a/ANDROID_3.4.5/include/video/aty128.h b/ANDROID_3.4.5/include/video/aty128.h
deleted file mode 100644
index f0851e3b..00000000
--- a/ANDROID_3.4.5/include/video/aty128.h
+++ /dev/null
@@ -1,422 +0,0 @@
-/* $Id: aty128.h,v 1.1 1999/10/12 11:00:40 geert Exp $
- * linux/drivers/video/aty128.h
- * Register definitions for ATI Rage128 boards
- *
- * Anthony Tong <atong@uiuc.edu>, 1999
- * Brad Douglas <brad@neruo.com>, 2000
- */
-
-#ifndef REG_RAGE128_H
-#define REG_RAGE128_H
-
-#define CLOCK_CNTL_INDEX 0x0008
-#define CLOCK_CNTL_DATA 0x000c
-#define BIOS_0_SCRATCH 0x0010
-#define BUS_CNTL 0x0030
-#define BUS_CNTL1 0x0034
-#define GEN_INT_CNTL 0x0040
-#define CRTC_GEN_CNTL 0x0050
-#define CRTC_EXT_CNTL 0x0054
-#define DAC_CNTL 0x0058
-#define I2C_CNTL_1 0x0094
-#define PALETTE_INDEX 0x00b0
-#define PALETTE_DATA 0x00b4
-#define CNFG_CNTL 0x00e0
-#define GEN_RESET_CNTL 0x00f0
-#define CNFG_MEMSIZE 0x00f8
-#define MEM_CNTL 0x0140
-#define MEM_POWER_MISC 0x015c
-#define AGP_BASE 0x0170
-#define AGP_CNTL 0x0174
-#define AGP_APER_OFFSET 0x0178
-#define PCI_GART_PAGE 0x017c
-#define PC_NGUI_MODE 0x0180
-#define PC_NGUI_CTLSTAT 0x0184
-#define MPP_TB_CONFIG 0x01C0
-#define MPP_GP_CONFIG 0x01C8
-#define VIPH_CONTROL 0x01D0
-#define CRTC_H_TOTAL_DISP 0x0200
-#define CRTC_H_SYNC_STRT_WID 0x0204
-#define CRTC_V_TOTAL_DISP 0x0208
-#define CRTC_V_SYNC_STRT_WID 0x020c
-#define CRTC_VLINE_CRNT_VLINE 0x0210
-#define CRTC_CRNT_FRAME 0x0214
-#define CRTC_GUI_TRIG_VLINE 0x0218
-#define CRTC_OFFSET 0x0224
-#define CRTC_OFFSET_CNTL 0x0228
-#define CRTC_PITCH 0x022c
-#define OVR_CLR 0x0230
-#define OVR_WID_LEFT_RIGHT 0x0234
-#define OVR_WID_TOP_BOTTOM 0x0238
-#define LVDS_GEN_CNTL 0x02d0
-#define DDA_CONFIG 0x02e0
-#define DDA_ON_OFF 0x02e4
-#define VGA_DDA_CONFIG 0x02e8
-#define VGA_DDA_ON_OFF 0x02ec
-#define CRTC2_H_TOTAL_DISP 0x0300
-#define CRTC2_H_SYNC_STRT_WID 0x0304
-#define CRTC2_V_TOTAL_DISP 0x0308
-#define CRTC2_V_SYNC_STRT_WID 0x030c
-#define CRTC2_VLINE_CRNT_VLINE 0x0310
-#define CRTC2_CRNT_FRAME 0x0314
-#define CRTC2_GUI_TRIG_VLINE 0x0318
-#define CRTC2_OFFSET 0x0324
-#define CRTC2_OFFSET_CNTL 0x0328
-#define CRTC2_PITCH 0x032c
-#define DDA2_CONFIG 0x03e0
-#define DDA2_ON_OFF 0x03e4
-#define CRTC2_GEN_CNTL 0x03f8
-#define CRTC2_STATUS 0x03fc
-#define OV0_SCALE_CNTL 0x0420
-#define SUBPIC_CNTL 0x0540
-#define PM4_BUFFER_OFFSET 0x0700
-#define PM4_BUFFER_CNTL 0x0704
-#define PM4_BUFFER_WM_CNTL 0x0708
-#define PM4_BUFFER_DL_RPTR_ADDR 0x070c
-#define PM4_BUFFER_DL_RPTR 0x0710
-#define PM4_BUFFER_DL_WPTR 0x0714
-#define PM4_VC_FPU_SETUP 0x071c
-#define PM4_FPU_CNTL 0x0720
-#define PM4_VC_FORMAT 0x0724
-#define PM4_VC_CNTL 0x0728
-#define PM4_VC_I01 0x072c
-#define PM4_VC_VLOFF 0x0730
-#define PM4_VC_VLSIZE 0x0734
-#define PM4_IW_INDOFF 0x0738
-#define PM4_IW_INDSIZE 0x073c
-#define PM4_FPU_FPX0 0x0740
-#define PM4_FPU_FPY0 0x0744
-#define PM4_FPU_FPX1 0x0748
-#define PM4_FPU_FPY1 0x074c
-#define PM4_FPU_FPX2 0x0750
-#define PM4_FPU_FPY2 0x0754
-#define PM4_FPU_FPY3 0x0758
-#define PM4_FPU_FPY4 0x075c
-#define PM4_FPU_FPY5 0x0760
-#define PM4_FPU_FPY6 0x0764
-#define PM4_FPU_FPR 0x0768
-#define PM4_FPU_FPG 0x076c
-#define PM4_FPU_FPB 0x0770
-#define PM4_FPU_FPA 0x0774
-#define PM4_FPU_INTXY0 0x0780
-#define PM4_FPU_INTXY1 0x0784
-#define PM4_FPU_INTXY2 0x0788
-#define PM4_FPU_INTARGB 0x078c
-#define PM4_FPU_FPTWICEAREA 0x0790
-#define PM4_FPU_DMAJOR01 0x0794
-#define PM4_FPU_DMAJOR12 0x0798
-#define PM4_FPU_DMAJOR02 0x079c
-#define PM4_FPU_STAT 0x07a0
-#define PM4_STAT 0x07b8
-#define PM4_TEST_CNTL 0x07d0
-#define PM4_MICROCODE_ADDR 0x07d4
-#define PM4_MICROCODE_RADDR 0x07d8
-#define PM4_MICROCODE_DATAH 0x07dc
-#define PM4_MICROCODE_DATAL 0x07e0
-#define PM4_CMDFIFO_ADDR 0x07e4
-#define PM4_CMDFIFO_DATAH 0x07e8
-#define PM4_CMDFIFO_DATAL 0x07ec
-#define PM4_BUFFER_ADDR 0x07f0
-#define PM4_BUFFER_DATAH 0x07f4
-#define PM4_BUFFER_DATAL 0x07f8
-#define PM4_MICRO_CNTL 0x07fc
-#define CAP0_TRIG_CNTL 0x0950
-#define CAP1_TRIG_CNTL 0x09c0
-
-/******************************************************************************
- * GUI Block Memory Mapped Registers *
- * These registers are FIFOed. *
- *****************************************************************************/
-#define PM4_FIFO_DATA_EVEN 0x1000
-#define PM4_FIFO_DATA_ODD 0x1004
-
-#define DST_OFFSET 0x1404
-#define DST_PITCH 0x1408
-#define DST_WIDTH 0x140c
-#define DST_HEIGHT 0x1410
-#define SRC_X 0x1414
-#define SRC_Y 0x1418
-#define DST_X 0x141c
-#define DST_Y 0x1420
-#define SRC_PITCH_OFFSET 0x1428
-#define DST_PITCH_OFFSET 0x142c
-#define SRC_Y_X 0x1434
-#define DST_Y_X 0x1438
-#define DST_HEIGHT_WIDTH 0x143c
-#define DP_GUI_MASTER_CNTL 0x146c
-#define BRUSH_SCALE 0x1470
-#define BRUSH_Y_X 0x1474
-#define DP_BRUSH_BKGD_CLR 0x1478
-#define DP_BRUSH_FRGD_CLR 0x147c
-#define DST_WIDTH_X 0x1588
-#define DST_HEIGHT_WIDTH_8 0x158c
-#define SRC_X_Y 0x1590
-#define DST_X_Y 0x1594
-#define DST_WIDTH_HEIGHT 0x1598
-#define DST_WIDTH_X_INCY 0x159c
-#define DST_HEIGHT_Y 0x15a0
-#define DST_X_SUB 0x15a4
-#define DST_Y_SUB 0x15a8
-#define SRC_OFFSET 0x15ac
-#define SRC_PITCH 0x15b0
-#define DST_HEIGHT_WIDTH_BW 0x15b4
-#define CLR_CMP_CNTL 0x15c0
-#define CLR_CMP_CLR_SRC 0x15c4
-#define CLR_CMP_CLR_DST 0x15c8
-#define CLR_CMP_MASK 0x15cc
-#define DP_SRC_FRGD_CLR 0x15d8
-#define DP_SRC_BKGD_CLR 0x15dc
-#define DST_BRES_ERR 0x1628
-#define DST_BRES_INC 0x162c
-#define DST_BRES_DEC 0x1630
-#define DST_BRES_LNTH 0x1634
-#define DST_BRES_LNTH_SUB 0x1638
-#define SC_LEFT 0x1640
-#define SC_RIGHT 0x1644
-#define SC_TOP 0x1648
-#define SC_BOTTOM 0x164c
-#define SRC_SC_RIGHT 0x1654
-#define SRC_SC_BOTTOM 0x165c
-#define GUI_DEBUG0 0x16a0
-#define GUI_DEBUG1 0x16a4
-#define GUI_TIMEOUT 0x16b0
-#define GUI_TIMEOUT0 0x16b4
-#define GUI_TIMEOUT1 0x16b8
-#define GUI_PROBE 0x16bc
-#define DP_CNTL 0x16c0
-#define DP_DATATYPE 0x16c4
-#define DP_MIX 0x16c8
-#define DP_WRITE_MASK 0x16cc
-#define DP_CNTL_XDIR_YDIR_YMAJOR 0x16d0
-#define DEFAULT_OFFSET 0x16e0
-#define DEFAULT_PITCH 0x16e4
-#define DEFAULT_SC_BOTTOM_RIGHT 0x16e8
-#define SC_TOP_LEFT 0x16ec
-#define SC_BOTTOM_RIGHT 0x16f0
-#define SRC_SC_BOTTOM_RIGHT 0x16f4
-#define WAIT_UNTIL 0x1720
-#define CACHE_CNTL 0x1724
-#define GUI_STAT 0x1740
-#define PC_GUI_MODE 0x1744
-#define PC_GUI_CTLSTAT 0x1748
-#define PC_DEBUG_MODE 0x1760
-#define BRES_DST_ERR_DEC 0x1780
-#define TRAIL_BRES_T12_ERR_DEC 0x1784
-#define TRAIL_BRES_T12_INC 0x1788
-#define DP_T12_CNTL 0x178c
-#define DST_BRES_T1_LNTH 0x1790
-#define DST_BRES_T2_LNTH 0x1794
-#define SCALE_SRC_HEIGHT_WIDTH 0x1994
-#define SCALE_OFFSET_0 0x1998
-#define SCALE_PITCH 0x199c
-#define SCALE_X_INC 0x19a0
-#define SCALE_Y_INC 0x19a4
-#define SCALE_HACC 0x19a8
-#define SCALE_VACC 0x19ac
-#define SCALE_DST_X_Y 0x19b0
-#define SCALE_DST_HEIGHT_WIDTH 0x19b4
-#define SCALE_3D_CNTL 0x1a00
-#define SCALE_3D_DATATYPE 0x1a20
-#define SETUP_CNTL 0x1bc4
-#define SOLID_COLOR 0x1bc8
-#define WINDOW_XY_OFFSET 0x1bcc
-#define DRAW_LINE_POINT 0x1bd0
-#define SETUP_CNTL_PM4 0x1bd4
-#define DST_PITCH_OFFSET_C 0x1c80
-#define DP_GUI_MASTER_CNTL_C 0x1c84
-#define SC_TOP_LEFT_C 0x1c88
-#define SC_BOTTOM_RIGHT_C 0x1c8c
-
-#define CLR_CMP_MASK_3D 0x1A28
-#define MISC_3D_STATE_CNTL_REG 0x1CA0
-#define MC_SRC1_CNTL 0x19D8
-#define TEX_CNTL 0x1800
-
-/* CONSTANTS */
-#define GUI_ACTIVE 0x80000000
-#define ENGINE_IDLE 0x0
-
-#define PLL_WR_EN 0x00000080
-
-#define CLK_PIN_CNTL 0x0001
-#define PPLL_CNTL 0x0002
-#define PPLL_REF_DIV 0x0003
-#define PPLL_DIV_0 0x0004
-#define PPLL_DIV_1 0x0005
-#define PPLL_DIV_2 0x0006
-#define PPLL_DIV_3 0x0007
-#define VCLK_ECP_CNTL 0x0008
-#define HTOTAL_CNTL 0x0009
-#define X_MPLL_REF_FB_DIV 0x000a
-#define XPLL_CNTL 0x000b
-#define XDLL_CNTL 0x000c
-#define XCLK_CNTL 0x000d
-#define MPLL_CNTL 0x000e
-#define MCLK_CNTL 0x000f
-#define AGP_PLL_CNTL 0x0010
-#define FCP_CNTL 0x0012
-#define PLL_TEST_CNTL 0x0013
-#define P2PLL_CNTL 0x002a
-#define P2PLL_REF_DIV 0x002b
-#define P2PLL_DIV_0 0x002b
-#define POWER_MANAGEMENT 0x002f
-
-#define PPLL_RESET 0x01
-#define PPLL_ATOMIC_UPDATE_EN 0x10000
-#define PPLL_VGA_ATOMIC_UPDATE_EN 0x20000
-#define PPLL_REF_DIV_MASK 0x3FF
-#define PPLL_FB3_DIV_MASK 0x7FF
-#define PPLL_POST3_DIV_MASK 0x70000
-#define PPLL_ATOMIC_UPDATE_R 0x8000
-#define PPLL_ATOMIC_UPDATE_W 0x8000
-#define MEM_CFG_TYPE_MASK 0x3
-#define XCLK_SRC_SEL_MASK 0x7
-#define XPLL_FB_DIV_MASK 0xFF00
-#define X_MPLL_REF_DIV_MASK 0xFF
-
-/* CRTC control values (CRTC_GEN_CNTL) */
-#define CRTC_CSYNC_EN 0x00000010
-
-#define CRTC2_DBL_SCAN_EN 0x00000001
-#define CRTC2_DISPLAY_DIS 0x00800000
-#define CRTC2_FIFO_EXTSENSE 0x00200000
-#define CRTC2_ICON_EN 0x00100000
-#define CRTC2_CUR_EN 0x00010000
-#define CRTC2_EN 0x02000000
-#define CRTC2_DISP_REQ_EN_B 0x04000000
-
-#define CRTC_PIX_WIDTH_MASK 0x00000700
-#define CRTC_PIX_WIDTH_4BPP 0x00000100
-#define CRTC_PIX_WIDTH_8BPP 0x00000200
-#define CRTC_PIX_WIDTH_15BPP 0x00000300
-#define CRTC_PIX_WIDTH_16BPP 0x00000400
-#define CRTC_PIX_WIDTH_24BPP 0x00000500
-#define CRTC_PIX_WIDTH_32BPP 0x00000600
-
-/* DAC_CNTL bit constants */
-#define DAC_8BIT_EN 0x00000100
-#define DAC_MASK 0xFF000000
-#define DAC_BLANKING 0x00000004
-#define DAC_RANGE_CNTL 0x00000003
-#define DAC_CLK_SEL 0x00000010
-#define DAC_PALETTE_ACCESS_CNTL 0x00000020
-#define DAC_PALETTE2_SNOOP_EN 0x00000040
-#define DAC_PDWN 0x00008000
-
-/* CRTC_EXT_CNTL */
-#define CRT_CRTC_ON 0x00008000
-
-/* GEN_RESET_CNTL bit constants */
-#define SOFT_RESET_GUI 0x00000001
-#define SOFT_RESET_VCLK 0x00000100
-#define SOFT_RESET_PCLK 0x00000200
-#define SOFT_RESET_ECP 0x00000400
-#define SOFT_RESET_DISPENG_XCLK 0x00000800
-
-/* PC_GUI_CTLSTAT bit constants */
-#define PC_BUSY_INIT 0x10000000
-#define PC_BUSY_GUI 0x20000000
-#define PC_BUSY_NGUI 0x40000000
-#define PC_BUSY 0x80000000
-
-#define BUS_MASTER_DIS 0x00000040
-#define PM4_BUFFER_CNTL_NONPM4 0x00000000
-
-/* DP_DATATYPE bit constants */
-#define DST_8BPP 0x00000002
-#define DST_15BPP 0x00000003
-#define DST_16BPP 0x00000004
-#define DST_24BPP 0x00000005
-#define DST_32BPP 0x00000006
-
-#define BRUSH_SOLIDCOLOR 0x00000d00
-
-/* DP_GUI_MASTER_CNTL bit constants */
-#define GMC_SRC_PITCH_OFFSET_DEFAULT 0x00000000
-#define GMC_DST_PITCH_OFFSET_DEFAULT 0x00000000
-#define GMC_SRC_CLIP_DEFAULT 0x00000000
-#define GMC_DST_CLIP_DEFAULT 0x00000000
-#define GMC_BRUSH_SOLIDCOLOR 0x000000d0
-#define GMC_SRC_DSTCOLOR 0x00003000
-#define GMC_BYTE_ORDER_MSB_TO_LSB 0x00000000
-#define GMC_DP_SRC_RECT 0x02000000
-#define GMC_3D_FCN_EN_CLR 0x00000000
-#define GMC_AUX_CLIP_CLEAR 0x20000000
-#define GMC_DST_CLR_CMP_FCN_CLEAR 0x10000000
-#define GMC_WRITE_MASK_SET 0x40000000
-#define GMC_DP_CONVERSION_TEMP_6500 0x00000000
-
-/* DP_GUI_MASTER_CNTL ROP3 named constants */
-#define ROP3_PATCOPY 0x00f00000
-#define ROP3_SRCCOPY 0x00cc0000
-
-#define SRC_DSTCOLOR 0x00030000
-
-/* DP_CNTL bit constants */
-#define DST_X_RIGHT_TO_LEFT 0x00000000
-#define DST_X_LEFT_TO_RIGHT 0x00000001
-#define DST_Y_BOTTOM_TO_TOP 0x00000000
-#define DST_Y_TOP_TO_BOTTOM 0x00000002
-#define DST_X_MAJOR 0x00000000
-#define DST_Y_MAJOR 0x00000004
-#define DST_X_TILE 0x00000008
-#define DST_Y_TILE 0x00000010
-#define DST_LAST_PEL 0x00000020
-#define DST_TRAIL_X_RIGHT_TO_LEFT 0x00000000
-#define DST_TRAIL_X_LEFT_TO_RIGHT 0x00000040
-#define DST_TRAP_FILL_RIGHT_TO_LEFT 0x00000000
-#define DST_TRAP_FILL_LEFT_TO_RIGHT 0x00000080
-#define DST_BRES_SIGN 0x00000100
-#define DST_HOST_BIG_ENDIAN_EN 0x00000200
-#define DST_POLYLINE_NONLAST 0x00008000
-#define DST_RASTER_STALL 0x00010000
-#define DST_POLY_EDGE 0x00040000
-
-/* DP_MIX bit constants */
-#define DP_SRC_RECT 0x00000200
-#define DP_SRC_HOST 0x00000300
-#define DP_SRC_HOST_BYTEALIGN 0x00000400
-
-/* LVDS_GEN_CNTL constants */
-#define LVDS_BL_MOD_LEVEL_MASK 0x0000ff00
-#define LVDS_BL_MOD_LEVEL_SHIFT 8
-#define LVDS_BL_MOD_EN 0x00010000
-#define LVDS_DIGION 0x00040000
-#define LVDS_BLON 0x00080000
-#define LVDS_ON 0x00000001
-#define LVDS_DISPLAY_DIS 0x00000002
-#define LVDS_PANEL_TYPE_2PIX_PER_CLK 0x00000004
-#define LVDS_PANEL_24BITS_TFT 0x00000008
-#define LVDS_FRAME_MOD_NO 0x00000000
-#define LVDS_FRAME_MOD_2_LEVELS 0x00000010
-#define LVDS_FRAME_MOD_4_LEVELS 0x00000020
-#define LVDS_RST_FM 0x00000040
-#define LVDS_EN 0x00000080
-
-/* CRTC2_GEN_CNTL constants */
-#define CRTC2_EN 0x02000000
-
-/* POWER_MANAGEMENT constants */
-#define PWR_MGT_ON 0x00000001
-#define PWR_MGT_MODE_MASK 0x00000006
-#define PWR_MGT_MODE_PIN 0x00000000
-#define PWR_MGT_MODE_REGISTER 0x00000002
-#define PWR_MGT_MODE_TIMER 0x00000004
-#define PWR_MGT_MODE_PCI 0x00000006
-#define PWR_MGT_AUTO_PWR_UP_EN 0x00000008
-#define PWR_MGT_ACTIVITY_PIN_ON 0x00000010
-#define PWR_MGT_STANDBY_POL 0x00000020
-#define PWR_MGT_SUSPEND_POL 0x00000040
-#define PWR_MGT_SELF_REFRESH 0x00000080
-#define PWR_MGT_ACTIVITY_PIN_EN 0x00000100
-#define PWR_MGT_KEYBD_SNOOP 0x00000200
-#define PWR_MGT_TRISTATE_MEM_EN 0x00000800
-#define PWR_MGT_SELW4MS 0x00001000
-#define PWR_MGT_SLOWDOWN_MCLK 0x00002000
-
-#define PMI_PMSCR_REG 0x60
-
-/* used by ATI bug fix for hardware ROM */
-#define RAGE128_MPP_TB_CONFIG 0x01c0
-
-#endif /* REG_RAGE128_H */
diff --git a/ANDROID_3.4.5/include/video/broadsheetfb.h b/ANDROID_3.4.5/include/video/broadsheetfb.h
deleted file mode 100644
index 548d28f4..00000000
--- a/ANDROID_3.4.5/include/video/broadsheetfb.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * broadsheetfb.h - definitions for the broadsheet framebuffer driver
- *
- * Copyright (C) 2008 by Jaya Kumar
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file COPYING in the main directory of this archive for
- * more details.
- *
- */
-
-#ifndef _LINUX_BROADSHEETFB_H_
-#define _LINUX_BROADSHEETFB_H_
-
-/* Broadsheet command defines */
-#define BS_CMD_INIT_SYS_RUN 0x06
-#define BS_CMD_INIT_DSPE_CFG 0x09
-#define BS_CMD_INIT_DSPE_TMG 0x0A
-#define BS_CMD_INIT_ROTMODE 0x0B
-#define BS_CMD_RD_REG 0x10
-#define BS_CMD_WR_REG 0x11
-#define BS_CMD_LD_IMG 0x20
-#define BS_CMD_LD_IMG_AREA 0x22
-#define BS_CMD_LD_IMG_END 0x23
-#define BS_CMD_WAIT_DSPE_TRG 0x28
-#define BS_CMD_WAIT_DSPE_FREND 0x29
-#define BS_CMD_RD_WFM_INFO 0x30
-#define BS_CMD_UPD_INIT 0x32
-#define BS_CMD_UPD_FULL 0x33
-#define BS_CMD_UPD_GDRV_CLR 0x37
-
-/* Broadsheet register interface defines */
-#define BS_REG_REV 0x00
-#define BS_REG_PRC 0x02
-
-/* Broadsheet pin interface specific defines */
-#define BS_CS 0x01
-#define BS_DC 0x02
-#define BS_WR 0x03
-
-/* Broadsheet IO interface specific defines */
-#define BS_MMIO_CMD 0x01
-#define BS_MMIO_DATA 0x02
-
-/* struct used by broadsheet. board specific stuff comes from *board */
-struct broadsheetfb_par {
- struct fb_info *info;
- struct broadsheet_board *board;
- void (*write_reg)(struct broadsheetfb_par *, u16 reg, u16 val);
- u16 (*read_reg)(struct broadsheetfb_par *, u16 reg);
- wait_queue_head_t waitq;
- int panel_index;
- struct mutex io_lock;
-};
-
-/* board specific routines */
-struct broadsheet_board {
- struct module *owner;
- int (*init)(struct broadsheetfb_par *);
- int (*wait_for_rdy)(struct broadsheetfb_par *);
- void (*cleanup)(struct broadsheetfb_par *);
- int (*get_panel_type)(void);
- int (*setup_irq)(struct fb_info *);
-
- /* Functions for boards that use GPIO */
- void (*set_ctl)(struct broadsheetfb_par *, unsigned char, u8);
- void (*set_hdb)(struct broadsheetfb_par *, u16);
- u16 (*get_hdb)(struct broadsheetfb_par *);
-
- /* Functions for boards that have specialized MMIO */
- void (*mmio_write)(struct broadsheetfb_par *, int type, u16);
- u16 (*mmio_read)(struct broadsheetfb_par *);
-};
-#endif
diff --git a/ANDROID_3.4.5/include/video/cirrus.h b/ANDROID_3.4.5/include/video/cirrus.h
deleted file mode 100644
index 9a5e9ee3..00000000
--- a/ANDROID_3.4.5/include/video/cirrus.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * drivers/video/clgenfb.h - Cirrus Logic chipset constants
- *
- * Copyright 1999 Jeff Garzik <jgarzik@pobox.com>
- *
- * Original clgenfb author: Frank Neumann
- *
- * Based on retz3fb.c and clgen.c:
- * Copyright (C) 1997 Jes Sorensen
- * Copyright (C) 1996 Frank Neumann
- *
- ***************************************************************
- *
- * Format this code with GNU indent '-kr -i8 -pcs' options.
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file COPYING in the main directory of this archive
- * for more details.
- *
- */
-
-#ifndef __CLGENFB_H__
-#define __CLGENFB_H__
-
-/* OLD COMMENT: definitions for Piccolo/SD64 VGA controller chip */
-/* OLD COMMENT: these definitions might most of the time also work */
-/* OLD COMMENT: for other CL-GD542x/543x based boards.. */
-
-/*** External/General Registers ***/
-#define CL_POS102 0x102 /* POS102 register */
-#define CL_VSSM 0x46e8 /* Adapter Sleep */
-#define CL_VSSM2 0x3c3 /* Motherboard Sleep */
-
-/*** VGA Sequencer Registers ***/
-/* the following are from the "extension registers" group */
-#define CL_SEQR6 0x6 /* Unlock ALL Extensions */
-#define CL_SEQR7 0x7 /* Extended Sequencer Mode */
-#define CL_SEQR8 0x8 /* EEPROM Control */
-#define CL_SEQR9 0x9 /* Scratch Pad 0 (do not access!) */
-#define CL_SEQRA 0xa /* Scratch Pad 1 (do not access!) */
-#define CL_SEQRB 0xb /* VCLK0 Numerator */
-#define CL_SEQRC 0xc /* VCLK1 Numerator */
-#define CL_SEQRD 0xd /* VCLK2 Numerator */
-#define CL_SEQRE 0xe /* VCLK3 Numerator */
-#define CL_SEQRF 0xf /* DRAM Control */
-#define CL_SEQR10 0x10 /* Graphics Cursor X Position */
-#define CL_SEQR11 0x11 /* Graphics Cursor Y Position */
-#define CL_SEQR12 0x12 /* Graphics Cursor Attributes */
-#define CL_SEQR13 0x13 /* Graphics Cursor Pattern Address Offset */
-#define CL_SEQR14 0x14 /* Scratch Pad 2 (CL-GD5426/'28 Only) (do not access!) */
-#define CL_SEQR15 0x15 /* Scratch Pad 3 (CL-GD5426/'28 Only) (do not access!) */
-#define CL_SEQR16 0x16 /* Performance Tuning (CL-GD5424/'26/'28 Only) */
-#define CL_SEQR17 0x17 /* Configuration ReadBack and Extended Control (CL-GF5428 Only) */
-#define CL_SEQR18 0x18 /* Signature Generator Control (Not CL-GD5420) */
-#define CL_SEQR19 0x19 /* Signature Generator Result Low Byte (Not CL-GD5420) */
-#define CL_SEQR1A 0x1a /* Signature Generator Result High Byte (Not CL-GD5420) */
-#define CL_SEQR1B 0x1b /* VCLK0 Denominator and Post-Scalar Value */
-#define CL_SEQR1C 0x1c /* VCLK1 Denominator and Post-Scalar Value */
-#define CL_SEQR1D 0x1d /* VCLK2 Denominator and Post-Scalar Value */
-#define CL_SEQR1E 0x1e /* VCLK3 Denominator and Post-Scalar Value */
-#define CL_SEQR1F 0x1f /* BIOS ROM write enable and MCLK Select */
-
-/*** CRT Controller Registers ***/
-#define CL_CRT22 0x22 /* Graphics Data Latches ReadBack */
-#define CL_CRT24 0x24 /* Attribute Controller Toggle ReadBack */
-#define CL_CRT26 0x26 /* Attribute Controller Index ReadBack */
-/* the following are from the "extension registers" group */
-#define CL_CRT19 0x19 /* Interlace End */
-#define CL_CRT1A 0x1a /* Interlace Control */
-#define CL_CRT1B 0x1b /* Extended Display Controls */
-#define CL_CRT1C 0x1c /* Sync adjust and genlock register */
-#define CL_CRT1D 0x1d /* Overlay Extended Control register */
-#define CL_CRT1E 0x1e /* Another overflow register */
-#define CL_CRT25 0x25 /* Part Status Register */
-#define CL_CRT27 0x27 /* ID Register */
-#define CL_CRT51 0x51 /* P4 disable "flicker fixer" */
-
-/*** Graphics Controller Registers ***/
-/* the following are from the "extension registers" group */
-#define CL_GR9 0x9 /* Offset Register 0 */
-#define CL_GRA 0xa /* Offset Register 1 */
-#define CL_GRB 0xb /* Graphics Controller Mode Extensions */
-#define CL_GRC 0xc /* Color Key (CL-GD5424/'26/'28 Only) */
-#define CL_GRD 0xd /* Color Key Mask (CL-GD5424/'26/'28 Only) */
-#define CL_GRE 0xe /* Miscellaneous Control (Cl-GD5428 Only) */
-#define CL_GRF 0xf /* Display Compression Control register */
-#define CL_GR10 0x10 /* 16-bit Pixel BG Color High Byte (Not CL-GD5420) */
-#define CL_GR11 0x11 /* 16-bit Pixel FG Color High Byte (Not CL-GD5420) */
-#define CL_GR12 0x12 /* Background Color Byte 2 Register */
-#define CL_GR13 0x13 /* Foreground Color Byte 2 Register */
-#define CL_GR14 0x14 /* Background Color Byte 3 Register */
-#define CL_GR15 0x15 /* Foreground Color Byte 3 Register */
-/* the following are CL-GD5426/'28 specific blitter registers */
-#define CL_GR20 0x20 /* BLT Width Low */
-#define CL_GR21 0x21 /* BLT Width High */
-#define CL_GR22 0x22 /* BLT Height Low */
-#define CL_GR23 0x23 /* BLT Height High */
-#define CL_GR24 0x24 /* BLT Destination Pitch Low */
-#define CL_GR25 0x25 /* BLT Destination Pitch High */
-#define CL_GR26 0x26 /* BLT Source Pitch Low */
-#define CL_GR27 0x27 /* BLT Source Pitch High */
-#define CL_GR28 0x28 /* BLT Destination Start Low */
-#define CL_GR29 0x29 /* BLT Destination Start Mid */
-#define CL_GR2A 0x2a /* BLT Destination Start High */
-#define CL_GR2C 0x2c /* BLT Source Start Low */
-#define CL_GR2D 0x2d /* BLT Source Start Mid */
-#define CL_GR2E 0x2e /* BLT Source Start High */
-#define CL_GR2F 0x2f /* Picasso IV Blitter compat mode..? */
-#define CL_GR30 0x30 /* BLT Mode */
-#define CL_GR31 0x31 /* BLT Start/Status */
-#define CL_GR32 0x32 /* BLT Raster Operation */
-#define CL_GR33 0x33 /* another P4 "compat" register.. */
-#define CL_GR34 0x34 /* Transparent Color Select Low */
-#define CL_GR35 0x35 /* Transparent Color Select High */
-#define CL_GR38 0x38 /* Source Transparent Color Mask Low */
-#define CL_GR39 0x39 /* Source Transparent Color Mask High */
-
-/*** Attribute Controller Registers ***/
-#define CL_AR33 0x33 /* The "real" Pixel Panning register (?) */
-#define CL_AR34 0x34 /* TEST */
-
-#endif /* __CLGENFB_H__ */
diff --git a/ANDROID_3.4.5/include/video/cvisionppc.h b/ANDROID_3.4.5/include/video/cvisionppc.h
deleted file mode 100644
index 11250eee..00000000
--- a/ANDROID_3.4.5/include/video/cvisionppc.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Phase5 CybervisionPPC (TVP4020) definitions for the Permedia2 framebuffer
- * driver.
- *
- * Copyright (c) 1998-1999 Ilario Nardinocchi (nardinoc@CS.UniBO.IT)
- * --------------------------------------------------------------------------
- * $Id: cvisionppc.h,v 1.8 1999/01/28 13:18:07 illo Exp $
- * --------------------------------------------------------------------------
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file COPYING in the main directory of this archive
- * for more details.
- */
-
-#ifndef CVISIONPPC_H
-#define CVISIONPPC_H
-
-#ifndef PM2FB_H
-#include "pm2fb.h"
-#endif
-
-struct cvppc_par {
- unsigned char* pci_config;
- unsigned char* pci_bridge;
- u32 user_flags;
-};
-
-#define CSPPC_PCI_BRIDGE 0xfffe0000
-#define CSPPC_BRIDGE_ENDIAN 0x0000
-#define CSPPC_BRIDGE_INT 0x0010
-
-#define CVPPC_PCI_CONFIG 0xfffc0000
-#define CVPPC_ROM_ADDRESS 0xe2000001
-#define CVPPC_REGS_REGION 0xef000000
-#define CVPPC_FB_APERTURE_ONE 0xe0000000
-#define CVPPC_FB_APERTURE_TWO 0xe1000000
-#define CVPPC_FB_SIZE 0x00800000
-#define CVPPC_MEM_CONFIG_OLD 0xed61fcaa /* FIXME Fujitsu?? */
-#define CVPPC_MEM_CONFIG_NEW 0xed41c532 /* FIXME USA?? */
-#define CVPPC_MEMCLOCK 83000 /* in KHz */
-
-/* CVPPC_BRIDGE_ENDIAN */
-#define CSPPCF_BRIDGE_BIG_ENDIAN 0x02
-
-/* CVPPC_BRIDGE_INT */
-#define CSPPCF_BRIDGE_ACTIVE_INT2 0x01
-
-#endif /* CVISIONPPC_H */
-
-/*****************************************************************************
- * That's all folks!
- *****************************************************************************/
diff --git a/ANDROID_3.4.5/include/video/da8xx-fb.h b/ANDROID_3.4.5/include/video/da8xx-fb.h
deleted file mode 100644
index 89d43b3d..00000000
--- a/ANDROID_3.4.5/include/video/da8xx-fb.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Header file for TI DA8XX LCD controller platform data.
- *
- * Copyright (C) 2008-2009 MontaVista Software Inc.
- * Copyright (C) 2008-2009 Texas Instruments Inc
- *
- * This file is licensed under the terms of the GNU General Public License
- * version 2. This program is licensed "as is" without any warranty of any
- * kind, whether express or implied.
- */
-
-#ifndef DA8XX_FB_H
-#define DA8XX_FB_H
-
-enum panel_type {
- QVGA = 0
-};
-
-enum panel_shade {
- MONOCHROME = 0,
- COLOR_ACTIVE,
- COLOR_PASSIVE,
-};
-
-enum raster_load_mode {
- LOAD_DATA = 1,
- LOAD_PALETTE,
-};
-
-struct display_panel {
- enum panel_type panel_type; /* QVGA */
- int max_bpp;
- int min_bpp;
- enum panel_shade panel_shade;
-};
-
-struct da8xx_lcdc_platform_data {
- const char manu_name[10];
- void *controller_data;
- const char type[25];
- void (*panel_power_ctrl)(int);
-};
-
-struct lcd_ctrl_config {
- const struct display_panel *p_disp_panel;
-
- /* AC Bias Pin Frequency */
- int ac_bias;
-
- /* AC Bias Pin Transitions per Interrupt */
- int ac_bias_intrpt;
-
- /* DMA burst size */
- int dma_burst_sz;
-
- /* Bits per pixel */
- int bpp;
-
- /* FIFO DMA Request Delay */
- int fdd;
-
- /* TFT Alternative Signal Mapping (Only for active) */
- unsigned char tft_alt_mode;
-
- /* 12 Bit Per Pixel (5-6-5) Mode (Only for passive) */
- unsigned char stn_565_mode;
-
- /* Mono 8-bit Mode: 1=D0-D7 or 0=D0-D3 */
- unsigned char mono_8bit_mode;
-
- /* Invert line clock */
- unsigned char invert_line_clock;
-
- /* Invert frame clock */
- unsigned char invert_frm_clock;
-
- /* Horizontal and Vertical Sync Edge: 0=rising 1=falling */
- unsigned char sync_edge;
-
- /* Horizontal and Vertical Sync: Control: 0=ignore */
- unsigned char sync_ctrl;
-
- /* Raster Data Order Select: 1=Most-to-least 0=Least-to-most */
- unsigned char raster_order;
-};
-
-struct lcd_sync_arg {
- int back_porch;
- int front_porch;
- int pulse_width;
-};
-
-/* ioctls */
-#define FBIOGET_CONTRAST _IOR('F', 1, int)
-#define FBIOPUT_CONTRAST _IOW('F', 2, int)
-#define FBIGET_BRIGHTNESS _IOR('F', 3, int)
-#define FBIPUT_BRIGHTNESS _IOW('F', 3, int)
-#define FBIGET_COLOR _IOR('F', 5, int)
-#define FBIPUT_COLOR _IOW('F', 6, int)
-#define FBIPUT_HSYNC _IOW('F', 9, int)
-#define FBIPUT_VSYNC _IOW('F', 10, int)
-
-#endif /* ifndef DA8XX_FB_H */
-
diff --git a/ANDROID_3.4.5/include/video/edid.h b/ANDROID_3.4.5/include/video/edid.h
deleted file mode 100644
index c5f19870..00000000
--- a/ANDROID_3.4.5/include/video/edid.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef __linux_video_edid_h__
-#define __linux_video_edid_h__
-
-struct edid_info {
- unsigned char dummy[128];
-};
-
-#ifdef __KERNEL__
-#ifdef CONFIG_X86
-extern struct edid_info edid_info;
-#endif
-#endif
-
-#endif /* __linux_video_edid_h__ */
diff --git a/ANDROID_3.4.5/include/video/epson1355.h b/ANDROID_3.4.5/include/video/epson1355.h
deleted file mode 100644
index 9759f299..00000000
--- a/ANDROID_3.4.5/include/video/epson1355.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * include/video/epson13xx.h -- Epson 13xx frame buffer
- *
- * Copyright (C) Hewlett-Packard Company. All rights reserved.
- *
- * Written by Christopher Hoover <ch@hpl.hp.com>
- *
- */
-
-#ifndef _EPSON13XX_H_
-#define _EPSON13XX_H_
-
-#define REG_REVISION_CODE 0x00
-#define REG_MEMORY_CONFIG 0x01
-#define REG_PANEL_TYPE 0x02
-#define REG_MOD_RATE 0x03
-#define REG_HORZ_DISP_WIDTH 0x04
-#define REG_HORZ_NONDISP_PERIOD 0x05
-#define REG_HRTC_START_POSITION 0x06
-#define REG_HRTC_PULSE_WIDTH 0x07
-#define REG_VERT_DISP_HEIGHT0 0x08
-#define REG_VERT_DISP_HEIGHT1 0x09
-#define REG_VERT_NONDISP_PERIOD 0x0A
-#define REG_VRTC_START_POSITION 0x0B
-#define REG_VRTC_PULSE_WIDTH 0x0C
-#define REG_DISPLAY_MODE 0x0D
-#define REG_SCRN1_LINE_COMPARE0 0x0E
-#define REG_SCRN1_LINE_COMPARE1 0x0F
-#define REG_SCRN1_DISP_START_ADDR0 0x10
-#define REG_SCRN1_DISP_START_ADDR1 0x11
-#define REG_SCRN1_DISP_START_ADDR2 0x12
-#define REG_SCRN2_DISP_START_ADDR0 0x13
-#define REG_SCRN2_DISP_START_ADDR1 0x14
-#define REG_SCRN2_DISP_START_ADDR2 0x15
-#define REG_MEM_ADDR_OFFSET0 0x16
-#define REG_MEM_ADDR_OFFSET1 0x17
-#define REG_PIXEL_PANNING 0x18
-#define REG_CLOCK_CONFIG 0x19
-#define REG_POWER_SAVE_CONFIG 0x1A
-#define REG_MISC 0x1B
-#define REG_MD_CONFIG_READBACK0 0x1C
-#define REG_MD_CONFIG_READBACK1 0x1D
-#define REG_GPIO_CONFIG0 0x1E
-#define REG_GPIO_CONFIG1 0x1F
-#define REG_GPIO_CONTROL0 0x20
-#define REG_GPIO_CONTROL1 0x21
-#define REG_PERF_ENHANCEMENT0 0x22
-#define REG_PERF_ENHANCEMENT1 0x23
-#define REG_LUT_ADDR 0x24
-#define REG_RESERVED_1 0x25
-#define REG_LUT_DATA 0x26
-#define REG_INK_CURSOR_CONTROL 0x27
-#define REG_CURSOR_X_POSITION0 0x28
-#define REG_CURSOR_X_POSITION1 0x29
-#define REG_CURSOR_Y_POSITION0 0x2A
-#define REG_CURSOR_Y_POSITION1 0x2B
-#define REG_INK_CURSOR_COLOR0_0 0x2C
-#define REG_INK_CURSOR_COLOR0_1 0x2D
-#define REG_INK_CURSOR_COLOR1_0 0x2E
-#define REG_INK_CURSOR_COLOR1_1 0x2F
-#define REG_INK_CURSOR_START_ADDR 0x30
-#define REG_ALTERNATE_FRM 0x31
-
-#endif
diff --git a/ANDROID_3.4.5/include/video/exynos_dp.h b/ANDROID_3.4.5/include/video/exynos_dp.h
deleted file mode 100644
index 8847a9d6..00000000
--- a/ANDROID_3.4.5/include/video/exynos_dp.h
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Samsung SoC DP device support
- *
- * Copyright (C) 2012 Samsung Electronics Co., Ltd.
- * Author: Jingoo Han <jg1.han@samsung.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.
- */
-
-#ifndef _EXYNOS_DP_H
-#define _EXYNOS_DP_H
-
-#define DP_TIMEOUT_LOOP_COUNT 100
-#define MAX_CR_LOOP 5
-#define MAX_EQ_LOOP 4
-
-enum link_rate_type {
- LINK_RATE_1_62GBPS = 0x06,
- LINK_RATE_2_70GBPS = 0x0a
-};
-
-enum link_lane_count_type {
- LANE_COUNT1 = 1,
- LANE_COUNT2 = 2,
- LANE_COUNT4 = 4
-};
-
-enum link_training_state {
- START,
- CLOCK_RECOVERY,
- EQUALIZER_TRAINING,
- FINISHED,
- FAILED
-};
-
-enum voltage_swing_level {
- VOLTAGE_LEVEL_0,
- VOLTAGE_LEVEL_1,
- VOLTAGE_LEVEL_2,
- VOLTAGE_LEVEL_3,
-};
-
-enum pre_emphasis_level {
- PRE_EMPHASIS_LEVEL_0,
- PRE_EMPHASIS_LEVEL_1,
- PRE_EMPHASIS_LEVEL_2,
- PRE_EMPHASIS_LEVEL_3,
-};
-
-enum pattern_set {
- PRBS7,
- D10_2,
- TRAINING_PTN1,
- TRAINING_PTN2,
- DP_NONE
-};
-
-enum color_space {
- COLOR_RGB,
- COLOR_YCBCR422,
- COLOR_YCBCR444
-};
-
-enum color_depth {
- COLOR_6,
- COLOR_8,
- COLOR_10,
- COLOR_12
-};
-
-enum color_coefficient {
- COLOR_YCBCR601,
- COLOR_YCBCR709
-};
-
-enum dynamic_range {
- VESA,
- CEA
-};
-
-enum pll_status {
- PLL_UNLOCKED,
- PLL_LOCKED
-};
-
-enum clock_recovery_m_value_type {
- CALCULATED_M,
- REGISTER_M
-};
-
-enum video_timing_recognition_type {
- VIDEO_TIMING_FROM_CAPTURE,
- VIDEO_TIMING_FROM_REGISTER
-};
-
-enum analog_power_block {
- AUX_BLOCK,
- CH0_BLOCK,
- CH1_BLOCK,
- CH2_BLOCK,
- CH3_BLOCK,
- ANALOG_TOTAL,
- POWER_ALL
-};
-
-struct video_info {
- char *name;
-
- bool h_sync_polarity;
- bool v_sync_polarity;
- bool interlaced;
-
- enum color_space color_space;
- enum dynamic_range dynamic_range;
- enum color_coefficient ycbcr_coeff;
- enum color_depth color_depth;
-
- enum link_rate_type link_rate;
- enum link_lane_count_type lane_count;
-};
-
-struct exynos_dp_platdata {
- struct video_info *video_info;
-
- void (*phy_init)(void);
- void (*phy_exit)(void);
-};
-
-#endif /* _EXYNOS_DP_H */
diff --git a/ANDROID_3.4.5/include/video/exynos_mipi_dsim.h b/ANDROID_3.4.5/include/video/exynos_mipi_dsim.h
deleted file mode 100644
index 772c7705..00000000
--- a/ANDROID_3.4.5/include/video/exynos_mipi_dsim.h
+++ /dev/null
@@ -1,359 +0,0 @@
-/* include/video/exynos_mipi_dsim.h
- *
- * Platform data header for Samsung SoC MIPI-DSIM.
- *
- * Copyright (c) 2012 Samsung Electronics Co., Ltd
- *
- * InKi Dae <inki.dae@samsung.com>
- * Donghwa Lee <dh09.lee@samsung.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.
-*/
-
-#ifndef _EXYNOS_MIPI_DSIM_H
-#define _EXYNOS_MIPI_DSIM_H
-
-#include <linux/device.h>
-#include <linux/fb.h>
-
-#define PANEL_NAME_SIZE (32)
-
-/*
- * Enumerate display interface type.
- *
- * DSIM_COMMAND means cpu interface and rgb interface for DSIM_VIDEO.
- *
- * P.S. MIPI DSI Master has two display controller intefaces, RGB Interface
- * for main display and CPU Interface(same as I80 Interface) for main
- * and sub display.
- */
-enum mipi_dsim_interface_type {
- DSIM_COMMAND,
- DSIM_VIDEO
-};
-
-enum mipi_dsim_virtual_ch_no {
- DSIM_VIRTUAL_CH_0,
- DSIM_VIRTUAL_CH_1,
- DSIM_VIRTUAL_CH_2,
- DSIM_VIRTUAL_CH_3
-};
-
-enum mipi_dsim_burst_mode_type {
- DSIM_NON_BURST_SYNC_EVENT,
- DSIM_BURST_SYNC_EVENT,
- DSIM_NON_BURST_SYNC_PULSE,
- DSIM_BURST,
- DSIM_NON_VIDEO_MODE
-};
-
-enum mipi_dsim_no_of_data_lane {
- DSIM_DATA_LANE_1,
- DSIM_DATA_LANE_2,
- DSIM_DATA_LANE_3,
- DSIM_DATA_LANE_4
-};
-
-enum mipi_dsim_byte_clk_src {
- DSIM_PLL_OUT_DIV8,
- DSIM_EXT_CLK_DIV8,
- DSIM_EXT_CLK_BYPASS
-};
-
-enum mipi_dsim_pixel_format {
- DSIM_CMD_3BPP,
- DSIM_CMD_8BPP,
- DSIM_CMD_12BPP,
- DSIM_CMD_16BPP,
- DSIM_VID_16BPP_565,
- DSIM_VID_18BPP_666PACKED,
- DSIM_18BPP_666LOOSELYPACKED,
- DSIM_24BPP_888
-};
-
-/*
- * struct mipi_dsim_config - interface for configuring mipi-dsi controller.
- *
- * @auto_flush: enable or disable Auto flush of MD FIFO using VSYNC pulse.
- * @eot_disable: enable or disable EoT packet in HS mode.
- * @auto_vertical_cnt: specifies auto vertical count mode.
- * in Video mode, the vertical line transition uses line counter
- * configured by VSA, VBP, and Vertical resolution.
- * If this bit is set to '1', the line counter does not use VSA and VBP
- * registers.(in command mode, this variable is ignored)
- * @hse: set horizontal sync event mode.
- * In VSYNC pulse and Vporch area, MIPI DSI master transfers only HSYNC
- * start packet to MIPI DSI slave at MIPI DSI spec1.1r02.
- * this bit transfers HSYNC end packet in VSYNC pulse and Vporch area
- * (in mommand mode, this variable is ignored)
- * @hfp: specifies HFP disable mode.
- * if this variable is set, DSI master ignores HFP area in VIDEO mode.
- * (in command mode, this variable is ignored)
- * @hbp: specifies HBP disable mode.
- * if this variable is set, DSI master ignores HBP area in VIDEO mode.
- * (in command mode, this variable is ignored)
- * @hsa: specifies HSA disable mode.
- * if this variable is set, DSI master ignores HSA area in VIDEO mode.
- * (in command mode, this variable is ignored)
- * @cma_allow: specifies the number of horizontal lines, where command packet
- * transmission is allowed after Stable VFP period.
- * @e_interface: specifies interface to be used.(CPU or RGB interface)
- * @e_virtual_ch: specifies virtual channel number that main or
- * sub diaplsy uses.
- * @e_pixel_format: specifies pixel stream format for main or sub display.
- * @e_burst_mode: selects Burst mode in Video mode.
- * in Non-burst mode, RGB data area is filled with RGB data and NULL
- * packets, according to input bandwidth of RGB interface.
- * In Burst mode, RGB data area is filled with RGB data only.
- * @e_no_data_lane: specifies data lane count to be used by Master.
- * @e_byte_clk: select byte clock source. (it must be DSIM_PLL_OUT_DIV8)
- * DSIM_EXT_CLK_DIV8 and DSIM_EXT_CLK_BYPASSS are not supported.
- * @pll_stable_time: specifies the PLL Timer for stability of the ganerated
- * clock(System clock cycle base)
- * if the timer value goes to 0x00000000, the clock stable bit of status
- * and interrupt register is set.
- * @esc_clk: specifies escape clock frequency for getting the escape clock
- * prescaler value.
- * @stop_holding_cnt: specifies the interval value between transmitting
- * read packet(or write "set_tear_on" command) and BTA request.
- * after transmitting read packet or write "set_tear_on" command,
- * BTA requests to D-PHY automatically. this counter value specifies
- * the interval between them.
- * @bta_timeout: specifies the timer for BTA.
- * this register specifies time out from BTA request to change
- * the direction with respect to Tx escape clock.
- * @rx_timeout: specifies the timer for LP Rx mode timeout.
- * this register specifies time out on how long RxValid deasserts,
- * after RxLpdt asserts with respect to Tx escape clock.
- * - RxValid specifies Rx data valid indicator.
- * - RxLpdt specifies an indicator that D-PHY is under RxLpdt mode.
- * - RxValid and RxLpdt specifies signal from D-PHY.
- */
-struct mipi_dsim_config {
- unsigned char auto_flush;
- unsigned char eot_disable;
-
- unsigned char auto_vertical_cnt;
- unsigned char hse;
- unsigned char hfp;
- unsigned char hbp;
- unsigned char hsa;
- unsigned char cmd_allow;
-
- enum mipi_dsim_interface_type e_interface;
- enum mipi_dsim_virtual_ch_no e_virtual_ch;
- enum mipi_dsim_pixel_format e_pixel_format;
- enum mipi_dsim_burst_mode_type e_burst_mode;
- enum mipi_dsim_no_of_data_lane e_no_data_lane;
- enum mipi_dsim_byte_clk_src e_byte_clk;
-
- /*
- * ===========================================
- * | P | M | S | MHz |
- * -------------------------------------------
- * | 3 | 100 | 3 | 100 |
- * | 3 | 100 | 2 | 200 |
- * | 3 | 63 | 1 | 252 |
- * | 4 | 100 | 1 | 300 |
- * | 4 | 110 | 1 | 330 |
- * | 12 | 350 | 1 | 350 |
- * | 3 | 100 | 1 | 400 |
- * | 4 | 150 | 1 | 450 |
- * | 6 | 118 | 1 | 472 |
- * | 3 | 120 | 1 | 480 |
- * | 12 | 250 | 0 | 500 |
- * | 4 | 100 | 0 | 600 |
- * | 3 | 81 | 0 | 648 |
- * | 3 | 88 | 0 | 704 |
- * | 3 | 90 | 0 | 720 |
- * | 3 | 100 | 0 | 800 |
- * | 12 | 425 | 0 | 850 |
- * | 4 | 150 | 0 | 900 |
- * | 12 | 475 | 0 | 950 |
- * | 6 | 250 | 0 | 1000 |
- * -------------------------------------------
- */
-
- /*
- * pms could be calculated as the following.
- * M * 24 / P * 2 ^ S = MHz
- */
- unsigned char p;
- unsigned short m;
- unsigned char s;
-
- unsigned int pll_stable_time;
- unsigned long esc_clk;
-
- unsigned short stop_holding_cnt;
- unsigned char bta_timeout;
- unsigned short rx_timeout;
-};
-
-/*
- * struct mipi_dsim_device - global interface for mipi-dsi driver.
- *
- * @dev: driver model representation of the device.
- * @id: unique device id.
- * @clock: pointer to MIPI-DSI clock of clock framework.
- * @irq: interrupt number to MIPI-DSI controller.
- * @reg_base: base address to memory mapped SRF of MIPI-DSI controller.
- * (virtual address)
- * @lock: the mutex protecting this data structure.
- * @dsim_info: infomation for configuring mipi-dsi controller.
- * @master_ops: callbacks to mipi-dsi operations.
- * @dsim_lcd_dev: pointer to activated ddi device.
- * (it would be registered by mipi-dsi driver.)
- * @dsim_lcd_drv: pointer to activated_ddi driver.
- * (it would be registered by mipi-dsi driver.)
- * @lcd_info: pointer to mipi_lcd_info structure.
- * @state: specifies status of MIPI-DSI controller.
- * the status could be RESET, INIT, STOP, HSCLKEN and ULPS.
- * @data_lane: specifiec enabled data lane number.
- * this variable would be set by driver according to e_no_data_lane
- * automatically.
- * @e_clk_src: select byte clock source.
- * @pd: pointer to MIPI-DSI driver platform data.
- */
-struct mipi_dsim_device {
- struct device *dev;
- int id;
- struct resource *res;
- struct clk *clock;
- unsigned int irq;
- void __iomem *reg_base;
- struct mutex lock;
-
- struct mipi_dsim_config *dsim_config;
- struct mipi_dsim_master_ops *master_ops;
- struct mipi_dsim_lcd_device *dsim_lcd_dev;
- struct mipi_dsim_lcd_driver *dsim_lcd_drv;
-
- unsigned int state;
- unsigned int data_lane;
- unsigned int e_clk_src;
- bool suspended;
-
- struct mipi_dsim_platform_data *pd;
-};
-
-/*
- * struct mipi_dsim_platform_data - interface to platform data
- * for mipi-dsi driver.
- *
- * @lcd_panel_name: specifies lcd panel name registered to mipi-dsi driver.
- * lcd panel driver searched would be actived.
- * @dsim_config: pointer of structure for configuring mipi-dsi controller.
- * @enabled: indicate whether mipi controller got enabled or not.
- * @lcd_panel_info: pointer for lcd panel specific structure.
- * this structure specifies width, height, timing and polarity and so on.
- * @phy_enable: pointer to a callback controlling D-PHY enable/reset
- */
-struct mipi_dsim_platform_data {
- char lcd_panel_name[PANEL_NAME_SIZE];
-
- struct mipi_dsim_config *dsim_config;
- unsigned int enabled;
- void *lcd_panel_info;
-
- int (*phy_enable)(struct platform_device *pdev, bool on);
-};
-
-/*
- * struct mipi_dsim_master_ops - callbacks to mipi-dsi operations.
- *
- * @cmd_write: transfer command to lcd panel at LP mode.
- * @cmd_read: read command from rx register.
- * @get_dsim_frame_done: get the status that all screen data have been
- * transferred to mipi-dsi.
- * @clear_dsim_frame_done: clear frame done status.
- * @get_fb_frame_done: get frame done status of display controller.
- * @trigger: trigger display controller.
- * - this one would be used only in case of CPU mode.
- * @set_early_blank_mode: set framebuffer blank mode.
- * - this callback should be called prior to fb_blank() by a client driver
- * only if needing.
- * @set_blank_mode: set framebuffer blank mode.
- * - this callback should be called after fb_blank() by a client driver
- * only if needing.
- */
-
-struct mipi_dsim_master_ops {
- int (*cmd_write)(struct mipi_dsim_device *dsim, unsigned int data_id,
- const unsigned char *data0, unsigned int data1);
- int (*cmd_read)(struct mipi_dsim_device *dsim, unsigned int data_id,
- unsigned int data0, unsigned int req_size, u8 *rx_buf);
- int (*get_dsim_frame_done)(struct mipi_dsim_device *dsim);
- int (*clear_dsim_frame_done)(struct mipi_dsim_device *dsim);
-
- int (*get_fb_frame_done)(struct fb_info *info);
- void (*trigger)(struct fb_info *info);
- int (*set_early_blank_mode)(struct mipi_dsim_device *dsim, int power);
- int (*set_blank_mode)(struct mipi_dsim_device *dsim, int power);
-};
-
-/*
- * device structure for mipi-dsi based lcd panel.
- *
- * @name: name of the device to use with this device, or an
- * alias for that name.
- * @dev: driver model representation of the device.
- * @id: id of device to be registered.
- * @bus_id: bus id for identifing connected bus
- * and this bus id should be same as id of mipi_dsim_device.
- * @irq: irq number for signaling when framebuffer transfer of
- * lcd panel module is completed.
- * this irq would be used only for MIPI-DSI based CPU mode lcd panel.
- * @master: pointer to mipi-dsi master device object.
- * @platform_data: lcd panel specific platform data.
- */
-struct mipi_dsim_lcd_device {
- char *name;
- struct device dev;
- int id;
- int bus_id;
- int irq;
-
- struct mipi_dsim_device *master;
- void *platform_data;
-};
-
-/*
- * driver structure for mipi-dsi based lcd panel.
- *
- * this structure should be registered by lcd panel driver.
- * mipi-dsi driver seeks lcd panel registered through name field
- * and calls these callback functions in appropriate time.
- *
- * @name: name of the driver to use with this device, or an
- * alias for that name.
- * @id: id of driver to be registered.
- * this id would be used for finding device object registered.
- */
-struct mipi_dsim_lcd_driver {
- char *name;
- int id;
-
- void (*power_on)(struct mipi_dsim_lcd_device *dsim_dev, int enable);
- void (*set_sequence)(struct mipi_dsim_lcd_device *dsim_dev);
- int (*probe)(struct mipi_dsim_lcd_device *dsim_dev);
- int (*remove)(struct mipi_dsim_lcd_device *dsim_dev);
- void (*shutdown)(struct mipi_dsim_lcd_device *dsim_dev);
- int (*suspend)(struct mipi_dsim_lcd_device *dsim_dev);
- int (*resume)(struct mipi_dsim_lcd_device *dsim_dev);
-};
-
-/*
- * register mipi_dsim_lcd_device to mipi-dsi master.
- */
-int exynos_mipi_dsi_register_lcd_device(struct mipi_dsim_lcd_device
- *lcd_dev);
-/**
- * register mipi_dsim_lcd_driver object defined by lcd panel driver
- * to mipi-dsi driver.
- */
-int exynos_mipi_dsi_register_lcd_driver(struct mipi_dsim_lcd_driver
- *lcd_drv);
-#endif /* _EXYNOS_MIPI_DSIM_H */
diff --git a/ANDROID_3.4.5/include/video/gbe.h b/ANDROID_3.4.5/include/video/gbe.h
deleted file mode 100644
index ad510284..00000000
--- a/ANDROID_3.4.5/include/video/gbe.h
+++ /dev/null
@@ -1,317 +0,0 @@
-/*
- * include/video/gbe.h -- SGI GBE (Graphics Back End)
- *
- * Copyright (C) 1999 Silicon Graphics, Inc. (Jeffrey Newquist)
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License version 2 as published by the Free Software Foundation.
- */
-
-#ifndef __GBE_H__
-#define __GBE_H__
-
-struct sgi_gbe {
- volatile uint32_t ctrlstat; /* general control */
- volatile uint32_t dotclock; /* dot clock PLL control */
- volatile uint32_t i2c; /* crt I2C control */
- volatile uint32_t sysclk; /* system clock PLL control */
- volatile uint32_t i2cfp; /* flat panel I2C control */
- volatile uint32_t id; /* device id/chip revision */
- volatile uint32_t config; /* power on configuration [1] */
- volatile uint32_t bist; /* internal bist status [1] */
- uint32_t _pad0[0x010000/4 - 8];
- volatile uint32_t vt_xy; /* current dot coords */
- volatile uint32_t vt_xymax; /* maximum dot coords */
- volatile uint32_t vt_vsync; /* vsync on/off */
- volatile uint32_t vt_hsync; /* hsync on/off */
- volatile uint32_t vt_vblank; /* vblank on/off */
- volatile uint32_t vt_hblank; /* hblank on/off */
- volatile uint32_t vt_flags; /* polarity of vt signals */
- volatile uint32_t vt_f2rf_lock; /* f2rf & framelck y coord */
- volatile uint32_t vt_intr01; /* intr 0,1 y coords */
- volatile uint32_t vt_intr23; /* intr 2,3 y coords */
- volatile uint32_t fp_hdrv; /* flat panel hdrv on/off */
- volatile uint32_t fp_vdrv; /* flat panel vdrv on/off */
- volatile uint32_t fp_de; /* flat panel de on/off */
- volatile uint32_t vt_hpixen; /* intrnl horiz pixel on/off */
- volatile uint32_t vt_vpixen; /* intrnl vert pixel on/off */
- volatile uint32_t vt_hcmap; /* cmap write (horiz) */
- volatile uint32_t vt_vcmap; /* cmap write (vert) */
- volatile uint32_t did_start_xy; /* eol/f did/xy reset val */
- volatile uint32_t crs_start_xy; /* eol/f crs/xy reset val */
- volatile uint32_t vc_start_xy; /* eol/f vc/xy reset val */
- uint32_t _pad1[0xffb0/4];
- volatile uint32_t ovr_width_tile;/*overlay plane ctrl 0 */
- volatile uint32_t ovr_inhwctrl; /* overlay plane ctrl 1 */
- volatile uint32_t ovr_control; /* overlay plane ctrl 1 */
- uint32_t _pad2[0xfff4/4];
- volatile uint32_t frm_size_tile;/* normal plane ctrl 0 */
- volatile uint32_t frm_size_pixel;/*normal plane ctrl 1 */
- volatile uint32_t frm_inhwctrl; /* normal plane ctrl 2 */
- volatile uint32_t frm_control; /* normal plane ctrl 3 */
- uint32_t _pad3[0xfff0/4];
- volatile uint32_t did_inhwctrl; /* DID control */
- volatile uint32_t did_control; /* DID shadow */
- uint32_t _pad4[0x7ff8/4];
- volatile uint32_t mode_regs[32];/* WID table */
- uint32_t _pad5[0x7f80/4];
- volatile uint32_t cmap[6144]; /* color map */
- uint32_t _pad6[0x2000/4];
- volatile uint32_t cm_fifo; /* color map fifo status */
- uint32_t _pad7[0x7ffc/4];
- volatile uint32_t gmap[256]; /* gamma map */
- uint32_t _pad8[0x7c00/4];
- volatile uint32_t gmap10[1024]; /* gamma map */
- uint32_t _pad9[0x7000/4];
- volatile uint32_t crs_pos; /* cusror control 0 */
- volatile uint32_t crs_ctl; /* cusror control 1 */
- volatile uint32_t crs_cmap[3]; /* crs cmap */
- uint32_t _pad10[0x7fec/4];
- volatile uint32_t crs_glyph[64];/* crs glyph */
- uint32_t _pad11[0x7f00/4];
- volatile uint32_t vc_0; /* video capture crtl 0 */
- volatile uint32_t vc_1; /* video capture crtl 1 */
- volatile uint32_t vc_2; /* video capture crtl 2 */
- volatile uint32_t vc_3; /* video capture crtl 3 */
- volatile uint32_t vc_4; /* video capture crtl 4 */
- volatile uint32_t vc_5; /* video capture crtl 5 */
- volatile uint32_t vc_6; /* video capture crtl 6 */
- volatile uint32_t vc_7; /* video capture crtl 7 */
- volatile uint32_t vc_8; /* video capture crtl 8 */
-};
-
-#define MASK(msb, lsb) \
- ( (((u32)1<<((msb)-(lsb)+1))-1) << (lsb) )
-#define GET(v, msb, lsb) \
- ( ((u32)(v) & MASK(msb,lsb)) >> (lsb) )
-#define SET(v, f, msb, lsb) \
- ( (v) = ((v)&~MASK(msb,lsb)) | (( (u32)(f)<<(lsb) ) & MASK(msb,lsb)) )
-
-#define GET_GBE_FIELD(reg, field, v) \
- GET((v), GBE_##reg##_##field##_MSB, GBE_##reg##_##field##_LSB)
-#define SET_GBE_FIELD(reg, field, v, f) \
- SET((v), (f), GBE_##reg##_##field##_MSB, GBE_##reg##_##field##_LSB)
-
-/*
- * Bit mask information
- */
-#define GBE_CTRLSTAT_CHIPID_MSB 3
-#define GBE_CTRLSTAT_CHIPID_LSB 0
-#define GBE_CTRLSTAT_SENSE_N_MSB 4
-#define GBE_CTRLSTAT_SENSE_N_LSB 4
-#define GBE_CTRLSTAT_PCLKSEL_MSB 29
-#define GBE_CTRLSTAT_PCLKSEL_LSB 28
-
-#define GBE_DOTCLK_M_MSB 7
-#define GBE_DOTCLK_M_LSB 0
-#define GBE_DOTCLK_N_MSB 13
-#define GBE_DOTCLK_N_LSB 8
-#define GBE_DOTCLK_P_MSB 15
-#define GBE_DOTCLK_P_LSB 14
-#define GBE_DOTCLK_RUN_MSB 20
-#define GBE_DOTCLK_RUN_LSB 20
-
-#define GBE_VT_XY_Y_MSB 23
-#define GBE_VT_XY_Y_LSB 12
-#define GBE_VT_XY_X_MSB 11
-#define GBE_VT_XY_X_LSB 0
-#define GBE_VT_XY_FREEZE_MSB 31
-#define GBE_VT_XY_FREEZE_LSB 31
-
-#define GBE_FP_VDRV_ON_MSB 23
-#define GBE_FP_VDRV_ON_LSB 12
-#define GBE_FP_VDRV_OFF_MSB 11
-#define GBE_FP_VDRV_OFF_LSB 0
-
-#define GBE_FP_HDRV_ON_MSB 23
-#define GBE_FP_HDRV_ON_LSB 12
-#define GBE_FP_HDRV_OFF_MSB 11
-#define GBE_FP_HDRV_OFF_LSB 0
-
-#define GBE_FP_DE_ON_MSB 23
-#define GBE_FP_DE_ON_LSB 12
-#define GBE_FP_DE_OFF_MSB 11
-#define GBE_FP_DE_OFF_LSB 0
-
-#define GBE_VT_VSYNC_VSYNC_ON_MSB 23
-#define GBE_VT_VSYNC_VSYNC_ON_LSB 12
-#define GBE_VT_VSYNC_VSYNC_OFF_MSB 11
-#define GBE_VT_VSYNC_VSYNC_OFF_LSB 0
-
-#define GBE_VT_HSYNC_HSYNC_ON_MSB 23
-#define GBE_VT_HSYNC_HSYNC_ON_LSB 12
-#define GBE_VT_HSYNC_HSYNC_OFF_MSB 11
-#define GBE_VT_HSYNC_HSYNC_OFF_LSB 0
-
-#define GBE_VT_VBLANK_VBLANK_ON_MSB 23
-#define GBE_VT_VBLANK_VBLANK_ON_LSB 12
-#define GBE_VT_VBLANK_VBLANK_OFF_MSB 11
-#define GBE_VT_VBLANK_VBLANK_OFF_LSB 0
-
-#define GBE_VT_HBLANK_HBLANK_ON_MSB 23
-#define GBE_VT_HBLANK_HBLANK_ON_LSB 12
-#define GBE_VT_HBLANK_HBLANK_OFF_MSB 11
-#define GBE_VT_HBLANK_HBLANK_OFF_LSB 0
-
-#define GBE_VT_FLAGS_F2RF_HIGH_MSB 6
-#define GBE_VT_FLAGS_F2RF_HIGH_LSB 6
-#define GBE_VT_FLAGS_SYNC_LOW_MSB 5
-#define GBE_VT_FLAGS_SYNC_LOW_LSB 5
-#define GBE_VT_FLAGS_SYNC_HIGH_MSB 4
-#define GBE_VT_FLAGS_SYNC_HIGH_LSB 4
-#define GBE_VT_FLAGS_HDRV_LOW_MSB 3
-#define GBE_VT_FLAGS_HDRV_LOW_LSB 3
-#define GBE_VT_FLAGS_HDRV_INVERT_MSB 2
-#define GBE_VT_FLAGS_HDRV_INVERT_LSB 2
-#define GBE_VT_FLAGS_VDRV_LOW_MSB 1
-#define GBE_VT_FLAGS_VDRV_LOW_LSB 1
-#define GBE_VT_FLAGS_VDRV_INVERT_MSB 0
-#define GBE_VT_FLAGS_VDRV_INVERT_LSB 0
-
-#define GBE_VT_VCMAP_VCMAP_ON_MSB 23
-#define GBE_VT_VCMAP_VCMAP_ON_LSB 12
-#define GBE_VT_VCMAP_VCMAP_OFF_MSB 11
-#define GBE_VT_VCMAP_VCMAP_OFF_LSB 0
-
-#define GBE_VT_HCMAP_HCMAP_ON_MSB 23
-#define GBE_VT_HCMAP_HCMAP_ON_LSB 12
-#define GBE_VT_HCMAP_HCMAP_OFF_MSB 11
-#define GBE_VT_HCMAP_HCMAP_OFF_LSB 0
-
-#define GBE_VT_XYMAX_MAXX_MSB 11
-#define GBE_VT_XYMAX_MAXX_LSB 0
-#define GBE_VT_XYMAX_MAXY_MSB 23
-#define GBE_VT_XYMAX_MAXY_LSB 12
-
-#define GBE_VT_HPIXEN_HPIXEN_ON_MSB 23
-#define GBE_VT_HPIXEN_HPIXEN_ON_LSB 12
-#define GBE_VT_HPIXEN_HPIXEN_OFF_MSB 11
-#define GBE_VT_HPIXEN_HPIXEN_OFF_LSB 0
-
-#define GBE_VT_VPIXEN_VPIXEN_ON_MSB 23
-#define GBE_VT_VPIXEN_VPIXEN_ON_LSB 12
-#define GBE_VT_VPIXEN_VPIXEN_OFF_MSB 11
-#define GBE_VT_VPIXEN_VPIXEN_OFF_LSB 0
-
-#define GBE_OVR_CONTROL_OVR_DMA_ENABLE_MSB 0
-#define GBE_OVR_CONTROL_OVR_DMA_ENABLE_LSB 0
-
-#define GBE_OVR_INHWCTRL_OVR_DMA_ENABLE_MSB 0
-#define GBE_OVR_INHWCTRL_OVR_DMA_ENABLE_LSB 0
-
-#define GBE_OVR_WIDTH_TILE_OVR_FIFO_RESET_MSB 13
-#define GBE_OVR_WIDTH_TILE_OVR_FIFO_RESET_LSB 13
-
-#define GBE_FRM_CONTROL_FRM_DMA_ENABLE_MSB 0
-#define GBE_FRM_CONTROL_FRM_DMA_ENABLE_LSB 0
-#define GBE_FRM_CONTROL_FRM_TILE_PTR_MSB 31
-#define GBE_FRM_CONTROL_FRM_TILE_PTR_LSB 9
-#define GBE_FRM_CONTROL_FRM_LINEAR_MSB 1
-#define GBE_FRM_CONTROL_FRM_LINEAR_LSB 1
-
-#define GBE_FRM_INHWCTRL_FRM_DMA_ENABLE_MSB 0
-#define GBE_FRM_INHWCTRL_FRM_DMA_ENABLE_LSB 0
-
-#define GBE_FRM_SIZE_TILE_FRM_WIDTH_TILE_MSB 12
-#define GBE_FRM_SIZE_TILE_FRM_WIDTH_TILE_LSB 5
-#define GBE_FRM_SIZE_TILE_FRM_RHS_MSB 4
-#define GBE_FRM_SIZE_TILE_FRM_RHS_LSB 0
-#define GBE_FRM_SIZE_TILE_FRM_DEPTH_MSB 14
-#define GBE_FRM_SIZE_TILE_FRM_DEPTH_LSB 13
-#define GBE_FRM_SIZE_TILE_FRM_FIFO_RESET_MSB 15
-#define GBE_FRM_SIZE_TILE_FRM_FIFO_RESET_LSB 15
-
-#define GBE_FRM_SIZE_PIXEL_FB_HEIGHT_PIX_MSB 31
-#define GBE_FRM_SIZE_PIXEL_FB_HEIGHT_PIX_LSB 16
-
-#define GBE_DID_CONTROL_DID_DMA_ENABLE_MSB 0
-#define GBE_DID_CONTROL_DID_DMA_ENABLE_LSB 0
-#define GBE_DID_INHWCTRL_DID_DMA_ENABLE_MSB 0
-#define GBE_DID_INHWCTRL_DID_DMA_ENABLE_LSB 0
-
-#define GBE_DID_START_XY_DID_STARTY_MSB 23
-#define GBE_DID_START_XY_DID_STARTY_LSB 12
-#define GBE_DID_START_XY_DID_STARTX_MSB 11
-#define GBE_DID_START_XY_DID_STARTX_LSB 0
-
-#define GBE_CRS_START_XY_CRS_STARTY_MSB 23
-#define GBE_CRS_START_XY_CRS_STARTY_LSB 12
-#define GBE_CRS_START_XY_CRS_STARTX_MSB 11
-#define GBE_CRS_START_XY_CRS_STARTX_LSB 0
-
-#define GBE_WID_AUX_MSB 12
-#define GBE_WID_AUX_LSB 11
-#define GBE_WID_GAMMA_MSB 10
-#define GBE_WID_GAMMA_LSB 10
-#define GBE_WID_CM_MSB 9
-#define GBE_WID_CM_LSB 5
-#define GBE_WID_TYP_MSB 4
-#define GBE_WID_TYP_LSB 2
-#define GBE_WID_BUF_MSB 1
-#define GBE_WID_BUF_LSB 0
-
-#define GBE_VC_START_XY_VC_STARTY_MSB 23
-#define GBE_VC_START_XY_VC_STARTY_LSB 12
-#define GBE_VC_START_XY_VC_STARTX_MSB 11
-#define GBE_VC_START_XY_VC_STARTX_LSB 0
-
-/* Constants */
-
-#define GBE_FRM_DEPTH_8 0
-#define GBE_FRM_DEPTH_16 1
-#define GBE_FRM_DEPTH_32 2
-
-#define GBE_CMODE_I8 0
-#define GBE_CMODE_I12 1
-#define GBE_CMODE_RG3B2 2
-#define GBE_CMODE_RGB4 3
-#define GBE_CMODE_ARGB5 4
-#define GBE_CMODE_RGB8 5
-#define GBE_CMODE_RGBA5 6
-#define GBE_CMODE_RGB10 7
-
-#define GBE_BMODE_BOTH 3
-
-#define GBE_CRS_MAGIC 54
-#define GBE_PIXEN_MAGIC_ON 19
-#define GBE_PIXEN_MAGIC_OFF 2
-
-#define GBE_TLB_SIZE 128
-
-/* [1] - only GBE revision 2 and later */
-
-/*
- * Video Timing Data Structure
- */
-
-struct gbe_timing_info {
- int flags;
- short width; /* Monitor resolution */
- short height;
- int fields_sec; /* fields/sec (Hz -3 dec. places */
- int cfreq; /* pixel clock frequency (MHz -3 dec. places) */
- short htotal; /* Horizontal total pixels */
- short hblank_start; /* Horizontal blank start */
- short hblank_end; /* Horizontal blank end */
- short hsync_start; /* Horizontal sync start */
- short hsync_end; /* Horizontal sync end */
- short vtotal; /* Vertical total lines */
- short vblank_start; /* Vertical blank start */
- short vblank_end; /* Vertical blank end */
- short vsync_start; /* Vertical sync start */
- short vsync_end; /* Vertical sync end */
- short pll_m; /* PLL M parameter */
- short pll_n; /* PLL P parameter */
- short pll_p; /* PLL N parameter */
-};
-
-/* Defines for gbe_vof_info_t flags */
-
-#define GBE_VOF_UNKNOWNMON 1
-#define GBE_VOF_STEREO 2
-#define GBE_VOF_DO_GENSYNC 4 /* enable incoming sync */
-#define GBE_VOF_SYNC_ON_GREEN 8 /* sync on green */
-#define GBE_VOF_FLATPANEL 0x1000 /* FLATPANEL Timing */
-#define GBE_VOF_MAGICKEY 0x2000 /* Backdoor key */
-
-#endif /* ! __GBE_H__ */
diff --git a/ANDROID_3.4.5/include/video/hecubafb.h b/ANDROID_3.4.5/include/video/hecubafb.h
deleted file mode 100644
index 7b995233..00000000
--- a/ANDROID_3.4.5/include/video/hecubafb.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * hecubafb.h - definitions for the hecuba framebuffer driver
- *
- * Copyright (C) 2008 by Jaya Kumar
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file COPYING in the main directory of this archive for
- * more details.
- *
- */
-
-#ifndef _LINUX_HECUBAFB_H_
-#define _LINUX_HECUBAFB_H_
-
-/* Apollo controller specific defines */
-#define APOLLO_START_NEW_IMG 0xA0
-#define APOLLO_STOP_IMG_DATA 0xA1
-#define APOLLO_DISPLAY_IMG 0xA2
-#define APOLLO_ERASE_DISPLAY 0xA3
-#define APOLLO_INIT_DISPLAY 0xA4
-
-/* Hecuba interface specific defines */
-#define HCB_WUP_BIT 0x01
-#define HCB_DS_BIT 0x02
-#define HCB_RW_BIT 0x04
-#define HCB_CD_BIT 0x08
-#define HCB_ACK_BIT 0x80
-
-/* struct used by hecuba. board specific stuff comes from *board */
-struct hecubafb_par {
- struct fb_info *info;
- struct hecuba_board *board;
- void (*send_command)(struct hecubafb_par *, unsigned char);
- void (*send_data)(struct hecubafb_par *, unsigned char);
-};
-
-/* board specific routines
-board drivers can implement wait_for_ack with interrupts if desired. if
-wait_for_ack is called with clear=0, then go to sleep and return when ack
-goes hi or if wait_for_ack with clear=1, then return when ack goes lo */
-struct hecuba_board {
- struct module *owner;
- void (*remove)(struct hecubafb_par *);
- void (*set_ctl)(struct hecubafb_par *, unsigned char, unsigned char);
- void (*set_data)(struct hecubafb_par *, unsigned char);
- void (*wait_for_ack)(struct hecubafb_par *, int);
- int (*init)(struct hecubafb_par *);
-};
-
-
-#endif
diff --git a/ANDROID_3.4.5/include/video/iga.h b/ANDROID_3.4.5/include/video/iga.h
deleted file mode 100644
index 5a48f165..00000000
--- a/ANDROID_3.4.5/include/video/iga.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* $Id: iga.h,v 1.2 1999/09/11 22:56:31 zaitcev Exp $
- * iga1682.h: Sparc/PCI iga1682 driver constants etc.
- *
- * Copyleft 1998 V. Roganov and G. Raiko
- */
-
-#ifndef _IGA1682_H
-#define _IGA1682_H 1
-
-#define IGA_ATTR_CTL 0x3C0
-#define IGA_IDX_VGA_OVERSCAN 0x11
-#define DAC_W_INDEX 0x03C8
-#define DAC_DATA 0x03C9
-#define IGA_EXT_CNTRL 0x3CE
-#define IGA_IDX_EXT_BUS_CNTL 0x30
-#define MEM_SIZE_ALIAS 0x3
-#define MEM_SIZE_1M 0x0
-#define MEM_SIZE_2M 0x1
-#define MEM_SIZE_4M 0x2
-#define MEM_SIZE_RESERVED 0x3
-#define IGA_IDX_OVERSCAN_COLOR 0x58
-#define IGA_IDX_EXT_MEM_2 0x72
-
-#endif /* !(_IGA1682_H) */
diff --git a/ANDROID_3.4.5/include/video/ili9320.h b/ANDROID_3.4.5/include/video/ili9320.h
deleted file mode 100644
index e5d1622e..00000000
--- a/ANDROID_3.4.5/include/video/ili9320.h
+++ /dev/null
@@ -1,201 +0,0 @@
-/* include/video/ili9320.c
- *
- * ILI9320 LCD controller configuration control.
- *
- * Copyright 2007 Simtec Electronics
- * Ben Dooks <ben@simtec.co.uk>
- *
- * http://armlinux.simtec.co.uk/
- *
- * 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.
-*/
-
-#define ILI9320_REG(x) (x)
-
-#define ILI9320_INDEX ILI9320_REG(0x00)
-
-#define ILI9320_OSCILATION ILI9320_REG(0x00)
-#define ILI9320_DRIVER ILI9320_REG(0x01)
-#define ILI9320_DRIVEWAVE ILI9320_REG(0x02)
-#define ILI9320_ENTRYMODE ILI9320_REG(0x03)
-#define ILI9320_RESIZING ILI9320_REG(0x04)
-#define ILI9320_DISPLAY1 ILI9320_REG(0x07)
-#define ILI9320_DISPLAY2 ILI9320_REG(0x08)
-#define ILI9320_DISPLAY3 ILI9320_REG(0x09)
-#define ILI9320_DISPLAY4 ILI9320_REG(0x0A)
-#define ILI9320_RGB_IF1 ILI9320_REG(0x0C)
-#define ILI9320_FRAMEMAKER ILI9320_REG(0x0D)
-#define ILI9320_RGB_IF2 ILI9320_REG(0x0F)
-
-#define ILI9320_POWER1 ILI9320_REG(0x10)
-#define ILI9320_POWER2 ILI9320_REG(0x11)
-#define ILI9320_POWER3 ILI9320_REG(0x12)
-#define ILI9320_POWER4 ILI9320_REG(0x13)
-#define ILI9320_GRAM_HORIZ_ADDR ILI9320_REG(0x20)
-#define ILI9320_GRAM_VERT_ADD ILI9320_REG(0x21)
-#define ILI9320_POWER7 ILI9320_REG(0x29)
-#define ILI9320_FRAME_RATE_COLOUR ILI9320_REG(0x2B)
-
-#define ILI9320_GAMMA1 ILI9320_REG(0x30)
-#define ILI9320_GAMMA2 ILI9320_REG(0x31)
-#define ILI9320_GAMMA3 ILI9320_REG(0x32)
-#define ILI9320_GAMMA4 ILI9320_REG(0x35)
-#define ILI9320_GAMMA5 ILI9320_REG(0x36)
-#define ILI9320_GAMMA6 ILI9320_REG(0x37)
-#define ILI9320_GAMMA7 ILI9320_REG(0x38)
-#define ILI9320_GAMMA8 ILI9320_REG(0x39)
-#define ILI9320_GAMMA9 ILI9320_REG(0x3C)
-#define ILI9320_GAMMA10 ILI9320_REG(0x3D)
-
-#define ILI9320_HORIZ_START ILI9320_REG(0x50)
-#define ILI9320_HORIZ_END ILI9320_REG(0x51)
-#define ILI9320_VERT_START ILI9320_REG(0x52)
-#define ILI9320_VERT_END ILI9320_REG(0x53)
-
-#define ILI9320_DRIVER2 ILI9320_REG(0x60)
-#define ILI9320_BASE_IMAGE ILI9320_REG(0x61)
-#define ILI9320_VERT_SCROLL ILI9320_REG(0x6a)
-
-#define ILI9320_PARTIAL1_POSITION ILI9320_REG(0x80)
-#define ILI9320_PARTIAL1_START ILI9320_REG(0x81)
-#define ILI9320_PARTIAL1_END ILI9320_REG(0x82)
-#define ILI9320_PARTIAL2_POSITION ILI9320_REG(0x83)
-#define ILI9320_PARTIAL2_START ILI9320_REG(0x84)
-#define ILI9320_PARTIAL2_END ILI9320_REG(0x85)
-
-#define ILI9320_INTERFACE1 ILI9320_REG(0x90)
-#define ILI9320_INTERFACE2 ILI9320_REG(0x92)
-#define ILI9320_INTERFACE3 ILI9320_REG(0x93)
-#define ILI9320_INTERFACE4 ILI9320_REG(0x95)
-#define ILI9320_INTERFACE5 ILI9320_REG(0x97)
-#define ILI9320_INTERFACE6 ILI9320_REG(0x98)
-
-/* Register contents definitions. */
-
-#define ILI9320_OSCILATION_OSC (1 << 0)
-
-#define ILI9320_DRIVER_SS (1 << 8)
-#define ILI9320_DRIVER_SM (1 << 10)
-
-#define ILI9320_DRIVEWAVE_EOR (1 << 8)
-#define ILI9320_DRIVEWAVE_BC (1 << 9)
-#define ILI9320_DRIVEWAVE_MUSTSET (1 << 10)
-
-#define ILI9320_ENTRYMODE_AM (1 << 3)
-#define ILI9320_ENTRYMODE_ID(x) ((x) << 4)
-#define ILI9320_ENTRYMODE_ORG (1 << 7)
-#define ILI9320_ENTRYMODE_HWM (1 << 8)
-#define ILI9320_ENTRYMODE_BGR (1 << 12)
-#define ILI9320_ENTRYMODE_DFM (1 << 14)
-#define ILI9320_ENTRYMODE_TRI (1 << 15)
-
-
-#define ILI9320_RESIZING_RSZ(x) ((x) << 0)
-#define ILI9320_RESIZING_RCH(x) ((x) << 4)
-#define ILI9320_RESIZING_RCV(x) ((x) << 8)
-
-
-#define ILI9320_DISPLAY1_D(x) ((x) << 0)
-#define ILI9320_DISPLAY1_CL (1 << 3)
-#define ILI9320_DISPLAY1_DTE (1 << 4)
-#define ILI9320_DISPLAY1_GON (1 << 5)
-#define ILI9320_DISPLAY1_BASEE (1 << 8)
-#define ILI9320_DISPLAY1_PTDE(x) ((x) << 12)
-
-
-#define ILI9320_DISPLAY2_BP(x) ((x) << 0)
-#define ILI9320_DISPLAY2_FP(x) ((x) << 8)
-
-
-#define ILI9320_RGBIF1_RIM_RGB18 (0 << 0)
-#define ILI9320_RGBIF1_RIM_RGB16 (1 << 0)
-#define ILI9320_RGBIF1_RIM_RGB6 (2 << 0)
-
-#define ILI9320_RGBIF1_CLK_INT (0 << 4)
-#define ILI9320_RGBIF1_CLK_RGBIF (1 << 4)
-#define ILI9320_RGBIF1_CLK_VSYNC (2 << 4)
-
-#define ILI9320_RGBIF1_RM (1 << 8)
-
-#define ILI9320_RGBIF1_ENC_FRAMES(x) (((x) - 1)<< 13)
-
-#define ILI9320_RGBIF2_DPL (1 << 0)
-#define ILI9320_RGBIF2_EPL (1 << 1)
-#define ILI9320_RGBIF2_HSPL (1 << 3)
-#define ILI9320_RGBIF2_VSPL (1 << 4)
-
-
-#define ILI9320_POWER1_SLP (1 << 1)
-#define ILI9320_POWER1_DSTB (1 << 2)
-#define ILI9320_POWER1_AP(x) ((x) << 4)
-#define ILI9320_POWER1_APE (1 << 7)
-#define ILI9320_POWER1_BT(x) ((x) << 8)
-#define ILI9320_POWER1_SAP (1 << 12)
-
-
-#define ILI9320_POWER2_VC(x) ((x) << 0)
-#define ILI9320_POWER2_DC0(x) ((x) << 4)
-#define ILI9320_POWER2_DC1(x) ((x) << 8)
-
-
-#define ILI9320_POWER3_VRH(x) ((x) << 0)
-#define ILI9320_POWER3_PON (1 << 4)
-#define ILI9320_POWER3_VCMR (1 << 8)
-
-
-#define ILI9320_POWER4_VREOUT(x) ((x) << 8)
-
-
-#define ILI9320_DRIVER2_SCNL(x) ((x) << 0)
-#define ILI9320_DRIVER2_NL(x) ((x) << 8)
-#define ILI9320_DRIVER2_GS (1 << 15)
-
-
-#define ILI9320_BASEIMAGE_REV (1 << 0)
-#define ILI9320_BASEIMAGE_VLE (1 << 1)
-#define ILI9320_BASEIMAGE_NDL (1 << 2)
-
-
-#define ILI9320_INTERFACE4_RTNE(x) (x)
-#define ILI9320_INTERFACE4_DIVE(x) ((x) << 8)
-
-/* SPI interface definitions */
-
-#define ILI9320_SPI_IDCODE (0x70)
-#define ILI9320_SPI_ID(x) ((x) << 2)
-#define ILI9320_SPI_READ (0x01)
-#define ILI9320_SPI_WRITE (0x00)
-#define ILI9320_SPI_DATA (0x02)
-#define ILI9320_SPI_INDEX (0x00)
-
-/* platform data to pass configuration from lcd */
-
-enum ili9320_suspend {
- ILI9320_SUSPEND_OFF,
- ILI9320_SUSPEND_DEEP,
-};
-
-struct ili9320_platdata {
- unsigned short hsize;
- unsigned short vsize;
-
- enum ili9320_suspend suspend;
-
- /* set the reset line, 0 = reset asserted, 1 = normal */
- void (*reset)(unsigned int val);
-
- unsigned short entry_mode;
- unsigned short display2;
- unsigned short display3;
- unsigned short display4;
- unsigned short rgb_if1;
- unsigned short rgb_if2;
- unsigned short interface2;
- unsigned short interface3;
- unsigned short interface4;
- unsigned short interface5;
- unsigned short interface6;
-};
-
diff --git a/ANDROID_3.4.5/include/video/kyro.h b/ANDROID_3.4.5/include/video/kyro.h
deleted file mode 100644
index c563968e..00000000
--- a/ANDROID_3.4.5/include/video/kyro.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * linux/drivers/video/kyro/kryo.h
- *
- * Copyright (C) 2002 STMicroelectronics
- * Copyright (C) 2004 Paul Mundt
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file COPYING in the main directory of this archive
- * for more details.
- */
-
-#ifndef _KYRO_H
-#define _KYRO_H
-
-struct kyrofb_info {
- void __iomem *regbase;
-
- u32 palette[16];
- u32 HTot; /* Hor Total Time */
- u32 HFP; /* Hor Front Porch */
- u32 HST; /* Hor Sync Time */
- u32 HBP; /* Hor Back Porch */
- s32 HSP; /* Hor Sync Polarity */
- u32 VTot; /* Ver Total Time */
- u32 VFP; /* Ver Front Porch */
- u32 VST; /* Ver Sync Time */
- u32 VBP; /* Ver Back Porch */
- s32 VSP; /* Ver Sync Polarity */
- u32 XRES; /* X Resolution */
- u32 YRES; /* Y Resolution */
- u32 VFREQ; /* Ver Frequency */
- u32 PIXCLK; /* Pixel Clock */
- u32 HCLK; /* Hor Clock */
-
- /* Useful to hold depth here for Linux */
- u8 PIXDEPTH;
-
-#ifdef CONFIG_MTRR
- int mtrr_handle;
-#endif
-};
-
-extern int kyro_dev_init(void);
-extern void kyro_dev_reset(void);
-
-extern unsigned char *kyro_dev_physical_fb_ptr(void);
-extern unsigned char *kyro_dev_virtual_fb_ptr(void);
-extern void *kyro_dev_physical_regs_ptr(void);
-extern void *kyro_dev_virtual_regs_ptr(void);
-extern unsigned int kyro_dev_fb_size(void);
-extern unsigned int kyro_dev_regs_size(void);
-
-extern u32 kyro_dev_overlay_offset(void);
-
-/*
- * benedict.gaster@superh.com
- * Added the follow IOCTLS for the creation of overlay services...
- */
-#define KYRO_IOC_MAGIC 'k'
-
-#define KYRO_IOCTL_OVERLAY_CREATE _IO(KYRO_IOC_MAGIC, 0)
-#define KYRO_IOCTL_OVERLAY_VIEWPORT_SET _IO(KYRO_IOC_MAGIC, 1)
-#define KYRO_IOCTL_SET_VIDEO_MODE _IO(KYRO_IOC_MAGIC, 2)
-#define KYRO_IOCTL_UVSTRIDE _IO(KYRO_IOC_MAGIC, 3)
-#define KYRO_IOCTL_OVERLAY_OFFSET _IO(KYRO_IOC_MAGIC, 4)
-#define KYRO_IOCTL_STRIDE _IO(KYRO_IOC_MAGIC, 5)
-
-/*
- * The follow 3 structures are used to pass data from user space into the kernel
- * for the creation of overlay surfaces and setting the video mode.
- */
-typedef struct _OVERLAY_CREATE {
- u32 ulWidth;
- u32 ulHeight;
- int bLinear;
-} overlay_create;
-
-typedef struct _OVERLAY_VIEWPORT_SET {
- u32 xOrgin;
- u32 yOrgin;
- u32 xSize;
- u32 ySize;
-} overlay_viewport_set;
-
-typedef struct _SET_VIDEO_MODE {
- u32 ulWidth;
- u32 ulHeight;
- u32 ulScan;
- u8 displayDepth;
- int bLinear;
-} set_video_mode;
-
-#endif /* _KYRO_H */
diff --git a/ANDROID_3.4.5/include/video/mach64.h b/ANDROID_3.4.5/include/video/mach64.h
deleted file mode 100644
index 89e91c0c..00000000
--- a/ANDROID_3.4.5/include/video/mach64.h
+++ /dev/null
@@ -1,1378 +0,0 @@
-/*
- * ATI Mach64 Register Definitions
- *
- * Copyright (C) 1997 Michael AK Tesch
- * written with much help from Jon Howell
- *
- * Updated for 3D RAGE PRO and 3D RAGE Mobility by Geert Uytterhoeven
- *
- * 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.
- */
-
-/*
- * most of the rest of this file comes from ATI sample code
- */
-#ifndef REGMACH64_H
-#define REGMACH64_H
-
-/* NON-GUI MEMORY MAPPED Registers - expressed in BYTE offsets */
-
-/* Accelerator CRTC */
-#define CRTC_H_TOTAL_DISP 0x0000 /* Dword offset 0_00 */
-#define CRTC2_H_TOTAL_DISP 0x0000 /* Dword offset 0_00 */
-#define CRTC_H_SYNC_STRT_WID 0x0004 /* Dword offset 0_01 */
-#define CRTC2_H_SYNC_STRT_WID 0x0004 /* Dword offset 0_01 */
-#define CRTC_H_SYNC_STRT 0x0004
-#define CRTC2_H_SYNC_STRT 0x0004
-#define CRTC_H_SYNC_DLY 0x0005
-#define CRTC2_H_SYNC_DLY 0x0005
-#define CRTC_H_SYNC_WID 0x0006
-#define CRTC2_H_SYNC_WID 0x0006
-#define CRTC_V_TOTAL_DISP 0x0008 /* Dword offset 0_02 */
-#define CRTC2_V_TOTAL_DISP 0x0008 /* Dword offset 0_02 */
-#define CRTC_V_TOTAL 0x0008
-#define CRTC2_V_TOTAL 0x0008
-#define CRTC_V_DISP 0x000A
-#define CRTC2_V_DISP 0x000A
-#define CRTC_V_SYNC_STRT_WID 0x000C /* Dword offset 0_03 */
-#define CRTC2_V_SYNC_STRT_WID 0x000C /* Dword offset 0_03 */
-#define CRTC_V_SYNC_STRT 0x000C
-#define CRTC2_V_SYNC_STRT 0x000C
-#define CRTC_V_SYNC_WID 0x000E
-#define CRTC2_V_SYNC_WID 0x000E
-#define CRTC_VLINE_CRNT_VLINE 0x0010 /* Dword offset 0_04 */
-#define CRTC2_VLINE_CRNT_VLINE 0x0010 /* Dword offset 0_04 */
-#define CRTC_OFF_PITCH 0x0014 /* Dword offset 0_05 */
-#define CRTC_OFFSET 0x0014
-#define CRTC_PITCH 0x0016
-#define CRTC_INT_CNTL 0x0018 /* Dword offset 0_06 */
-#define CRTC_GEN_CNTL 0x001C /* Dword offset 0_07 */
-#define CRTC_PIX_WIDTH 0x001D
-#define CRTC_FIFO 0x001E
-#define CRTC_EXT_DISP 0x001F
-
-/* Memory Buffer Control */
-#define DSP_CONFIG 0x0020 /* Dword offset 0_08 */
-#define PM_DSP_CONFIG 0x0020 /* Dword offset 0_08 (Mobility Only) */
-#define DSP_ON_OFF 0x0024 /* Dword offset 0_09 */
-#define PM_DSP_ON_OFF 0x0024 /* Dword offset 0_09 (Mobility Only) */
-#define TIMER_CONFIG 0x0028 /* Dword offset 0_0A */
-#define MEM_BUF_CNTL 0x002C /* Dword offset 0_0B */
-#define MEM_ADDR_CONFIG 0x0034 /* Dword offset 0_0D */
-
-/* Accelerator CRTC */
-#define CRT_TRAP 0x0038 /* Dword offset 0_0E */
-
-#define I2C_CNTL_0 0x003C /* Dword offset 0_0F */
-
-#define DSTN_CONTROL_LG 0x003C /* Dword offset 0_0F (LG) */
-
-/* Overscan */
-#define OVR_CLR 0x0040 /* Dword offset 0_10 */
-#define OVR2_CLR 0x0040 /* Dword offset 0_10 */
-#define OVR_WID_LEFT_RIGHT 0x0044 /* Dword offset 0_11 */
-#define OVR2_WID_LEFT_RIGHT 0x0044 /* Dword offset 0_11 */
-#define OVR_WID_TOP_BOTTOM 0x0048 /* Dword offset 0_12 */
-#define OVR2_WID_TOP_BOTTOM 0x0048 /* Dword offset 0_12 */
-
-/* Memory Buffer Control */
-#define VGA_DSP_CONFIG 0x004C /* Dword offset 0_13 */
-#define PM_VGA_DSP_CONFIG 0x004C /* Dword offset 0_13 (Mobility Only) */
-#define VGA_DSP_ON_OFF 0x0050 /* Dword offset 0_14 */
-#define PM_VGA_DSP_ON_OFF 0x0050 /* Dword offset 0_14 (Mobility Only) */
-#define DSP2_CONFIG 0x0054 /* Dword offset 0_15 */
-#define PM_DSP2_CONFIG 0x0054 /* Dword offset 0_15 (Mobility Only) */
-#define DSP2_ON_OFF 0x0058 /* Dword offset 0_16 */
-#define PM_DSP2_ON_OFF 0x0058 /* Dword offset 0_16 (Mobility Only) */
-
-/* Accelerator CRTC */
-#define CRTC2_OFF_PITCH 0x005C /* Dword offset 0_17 */
-
-/* Hardware Cursor */
-#define CUR_CLR0 0x0060 /* Dword offset 0_18 */
-#define CUR2_CLR0 0x0060 /* Dword offset 0_18 */
-#define CUR_CLR1 0x0064 /* Dword offset 0_19 */
-#define CUR2_CLR1 0x0064 /* Dword offset 0_19 */
-#define CUR_OFFSET 0x0068 /* Dword offset 0_1A */
-#define CUR2_OFFSET 0x0068 /* Dword offset 0_1A */
-#define CUR_HORZ_VERT_POSN 0x006C /* Dword offset 0_1B */
-#define CUR2_HORZ_VERT_POSN 0x006C /* Dword offset 0_1B */
-#define CUR_HORZ_VERT_OFF 0x0070 /* Dword offset 0_1C */
-#define CUR2_HORZ_VERT_OFF 0x0070 /* Dword offset 0_1C */
-
-#define CNFG_PANEL_LG 0x0074 /* Dword offset 0_1D (LG) */
-
-/* General I/O Control */
-#define GP_IO 0x0078 /* Dword offset 0_1E */
-
-/* Test and Debug */
-#define HW_DEBUG 0x007C /* Dword offset 0_1F */
-
-/* Scratch Pad and Test */
-#define SCRATCH_REG0 0x0080 /* Dword offset 0_20 */
-#define SCRATCH_REG1 0x0084 /* Dword offset 0_21 */
-#define SCRATCH_REG2 0x0088 /* Dword offset 0_22 */
-#define SCRATCH_REG3 0x008C /* Dword offset 0_23 */
-
-/* Clock Control */
-#define CLOCK_CNTL 0x0090 /* Dword offset 0_24 */
-/* CLOCK_CNTL register constants CT LAYOUT */
-#define CLOCK_SEL 0x0f
-#define CLOCK_SEL_INTERNAL 0x03
-#define CLOCK_SEL_EXTERNAL 0x0c
-#define CLOCK_DIV 0x30
-#define CLOCK_DIV1 0x00
-#define CLOCK_DIV2 0x10
-#define CLOCK_DIV4 0x20
-#define CLOCK_STROBE 0x40
-/* ? 0x80 */
-/* CLOCK_CNTL register constants GX LAYOUT */
-#define CLOCK_BIT 0x04 /* For ICS2595 */
-#define CLOCK_PULSE 0x08 /* For ICS2595 */
-/*#define CLOCK_STROBE 0x40 dito as CT */
-#define CLOCK_DATA 0x80
-
-/* For internal PLL(CT) start */
-#define CLOCK_CNTL_ADDR CLOCK_CNTL + 1
-#define PLL_WR_EN 0x02
-#define PLL_ADDR 0xfc
-#define CLOCK_CNTL_DATA CLOCK_CNTL + 2
-#define PLL_DATA 0xff
-/* For internal PLL(CT) end */
-
-#define CLOCK_SEL_CNTL 0x0090 /* Dword offset 0_24 */
-
-/* Configuration */
-#define CNFG_STAT1 0x0094 /* Dword offset 0_25 */
-#define CNFG_STAT2 0x0098 /* Dword offset 0_26 */
-
-/* Bus Control */
-#define BUS_CNTL 0x00A0 /* Dword offset 0_28 */
-
-#define LCD_INDEX 0x00A4 /* Dword offset 0_29 */
-#define LCD_DATA 0x00A8 /* Dword offset 0_2A */
-
-#define HFB_PITCH_ADDR_LG 0x00A8 /* Dword offset 0_2A (LG) */
-
-/* Memory Control */
-#define EXT_MEM_CNTL 0x00AC /* Dword offset 0_2B */
-#define MEM_CNTL 0x00B0 /* Dword offset 0_2C */
-#define MEM_VGA_WP_SEL 0x00B4 /* Dword offset 0_2D */
-#define MEM_VGA_RP_SEL 0x00B8 /* Dword offset 0_2E */
-
-#define I2C_CNTL_1 0x00BC /* Dword offset 0_2F */
-
-#define LT_GIO_LG 0x00BC /* Dword offset 0_2F (LG) */
-
-/* DAC Control */
-#define DAC_REGS 0x00C0 /* Dword offset 0_30 */
-#define DAC_W_INDEX 0x00C0 /* Dword offset 0_30 */
-#define DAC_DATA 0x00C1 /* Dword offset 0_30 */
-#define DAC_MASK 0x00C2 /* Dword offset 0_30 */
-#define DAC_R_INDEX 0x00C3 /* Dword offset 0_30 */
-#define DAC_CNTL 0x00C4 /* Dword offset 0_31 */
-
-#define EXT_DAC_REGS 0x00C8 /* Dword offset 0_32 */
-
-#define HORZ_STRETCHING_LG 0x00C8 /* Dword offset 0_32 (LG) */
-#define VERT_STRETCHING_LG 0x00CC /* Dword offset 0_33 (LG) */
-
-/* Test and Debug */
-#define GEN_TEST_CNTL 0x00D0 /* Dword offset 0_34 */
-
-/* Custom Macros */
-#define CUSTOM_MACRO_CNTL 0x00D4 /* Dword offset 0_35 */
-
-#define LCD_GEN_CNTL_LG 0x00D4 /* Dword offset 0_35 (LG) */
-#define POWER_MANAGEMENT_LG 0x00D8 /* Dword offset 0_36 (LG) */
-
-/* Configuration */
-#define CNFG_CNTL 0x00DC /* Dword offset 0_37 (CT, ET, VT) */
-#define CNFG_CHIP_ID 0x00E0 /* Dword offset 0_38 */
-#define CNFG_STAT0 0x00E4 /* Dword offset 0_39 */
-
-/* Test and Debug */
-#define CRC_SIG 0x00E8 /* Dword offset 0_3A */
-#define CRC2_SIG 0x00E8 /* Dword offset 0_3A */
-
-
-/* GUI MEMORY MAPPED Registers */
-
-/* Draw Engine Destination Trajectory */
-#define DST_OFF_PITCH 0x0100 /* Dword offset 0_40 */
-#define DST_X 0x0104 /* Dword offset 0_41 */
-#define DST_Y 0x0108 /* Dword offset 0_42 */
-#define DST_Y_X 0x010C /* Dword offset 0_43 */
-#define DST_WIDTH 0x0110 /* Dword offset 0_44 */
-#define DST_HEIGHT 0x0114 /* Dword offset 0_45 */
-#define DST_HEIGHT_WIDTH 0x0118 /* Dword offset 0_46 */
-#define DST_X_WIDTH 0x011C /* Dword offset 0_47 */
-#define DST_BRES_LNTH 0x0120 /* Dword offset 0_48 */
-#define DST_BRES_ERR 0x0124 /* Dword offset 0_49 */
-#define DST_BRES_INC 0x0128 /* Dword offset 0_4A */
-#define DST_BRES_DEC 0x012C /* Dword offset 0_4B */
-#define DST_CNTL 0x0130 /* Dword offset 0_4C */
-#define DST_Y_X__ALIAS__ 0x0134 /* Dword offset 0_4D */
-#define TRAIL_BRES_ERR 0x0138 /* Dword offset 0_4E */
-#define TRAIL_BRES_INC 0x013C /* Dword offset 0_4F */
-#define TRAIL_BRES_DEC 0x0140 /* Dword offset 0_50 */
-#define LEAD_BRES_LNTH 0x0144 /* Dword offset 0_51 */
-#define Z_OFF_PITCH 0x0148 /* Dword offset 0_52 */
-#define Z_CNTL 0x014C /* Dword offset 0_53 */
-#define ALPHA_TST_CNTL 0x0150 /* Dword offset 0_54 */
-#define SECONDARY_STW_EXP 0x0158 /* Dword offset 0_56 */
-#define SECONDARY_S_X_INC 0x015C /* Dword offset 0_57 */
-#define SECONDARY_S_Y_INC 0x0160 /* Dword offset 0_58 */
-#define SECONDARY_S_START 0x0164 /* Dword offset 0_59 */
-#define SECONDARY_W_X_INC 0x0168 /* Dword offset 0_5A */
-#define SECONDARY_W_Y_INC 0x016C /* Dword offset 0_5B */
-#define SECONDARY_W_START 0x0170 /* Dword offset 0_5C */
-#define SECONDARY_T_X_INC 0x0174 /* Dword offset 0_5D */
-#define SECONDARY_T_Y_INC 0x0178 /* Dword offset 0_5E */
-#define SECONDARY_T_START 0x017C /* Dword offset 0_5F */
-
-/* Draw Engine Source Trajectory */
-#define SRC_OFF_PITCH 0x0180 /* Dword offset 0_60 */
-#define SRC_X 0x0184 /* Dword offset 0_61 */
-#define SRC_Y 0x0188 /* Dword offset 0_62 */
-#define SRC_Y_X 0x018C /* Dword offset 0_63 */
-#define SRC_WIDTH1 0x0190 /* Dword offset 0_64 */
-#define SRC_HEIGHT1 0x0194 /* Dword offset 0_65 */
-#define SRC_HEIGHT1_WIDTH1 0x0198 /* Dword offset 0_66 */
-#define SRC_X_START 0x019C /* Dword offset 0_67 */
-#define SRC_Y_START 0x01A0 /* Dword offset 0_68 */
-#define SRC_Y_X_START 0x01A4 /* Dword offset 0_69 */
-#define SRC_WIDTH2 0x01A8 /* Dword offset 0_6A */
-#define SRC_HEIGHT2 0x01AC /* Dword offset 0_6B */
-#define SRC_HEIGHT2_WIDTH2 0x01B0 /* Dword offset 0_6C */
-#define SRC_CNTL 0x01B4 /* Dword offset 0_6D */
-
-#define SCALE_OFF 0x01C0 /* Dword offset 0_70 */
-#define SECONDARY_SCALE_OFF 0x01C4 /* Dword offset 0_71 */
-
-#define TEX_0_OFF 0x01C0 /* Dword offset 0_70 */
-#define TEX_1_OFF 0x01C4 /* Dword offset 0_71 */
-#define TEX_2_OFF 0x01C8 /* Dword offset 0_72 */
-#define TEX_3_OFF 0x01CC /* Dword offset 0_73 */
-#define TEX_4_OFF 0x01D0 /* Dword offset 0_74 */
-#define TEX_5_OFF 0x01D4 /* Dword offset 0_75 */
-#define TEX_6_OFF 0x01D8 /* Dword offset 0_76 */
-#define TEX_7_OFF 0x01DC /* Dword offset 0_77 */
-
-#define SCALE_WIDTH 0x01DC /* Dword offset 0_77 */
-#define SCALE_HEIGHT 0x01E0 /* Dword offset 0_78 */
-
-#define TEX_8_OFF 0x01E0 /* Dword offset 0_78 */
-#define TEX_9_OFF 0x01E4 /* Dword offset 0_79 */
-#define TEX_10_OFF 0x01E8 /* Dword offset 0_7A */
-#define S_Y_INC 0x01EC /* Dword offset 0_7B */
-
-#define SCALE_PITCH 0x01EC /* Dword offset 0_7B */
-#define SCALE_X_INC 0x01F0 /* Dword offset 0_7C */
-
-#define RED_X_INC 0x01F0 /* Dword offset 0_7C */
-#define GREEN_X_INC 0x01F4 /* Dword offset 0_7D */
-
-#define SCALE_Y_INC 0x01F4 /* Dword offset 0_7D */
-#define SCALE_VACC 0x01F8 /* Dword offset 0_7E */
-#define SCALE_3D_CNTL 0x01FC /* Dword offset 0_7F */
-
-/* Host Data */
-#define HOST_DATA0 0x0200 /* Dword offset 0_80 */
-#define HOST_DATA1 0x0204 /* Dword offset 0_81 */
-#define HOST_DATA2 0x0208 /* Dword offset 0_82 */
-#define HOST_DATA3 0x020C /* Dword offset 0_83 */
-#define HOST_DATA4 0x0210 /* Dword offset 0_84 */
-#define HOST_DATA5 0x0214 /* Dword offset 0_85 */
-#define HOST_DATA6 0x0218 /* Dword offset 0_86 */
-#define HOST_DATA7 0x021C /* Dword offset 0_87 */
-#define HOST_DATA8 0x0220 /* Dword offset 0_88 */
-#define HOST_DATA9 0x0224 /* Dword offset 0_89 */
-#define HOST_DATAA 0x0228 /* Dword offset 0_8A */
-#define HOST_DATAB 0x022C /* Dword offset 0_8B */
-#define HOST_DATAC 0x0230 /* Dword offset 0_8C */
-#define HOST_DATAD 0x0234 /* Dword offset 0_8D */
-#define HOST_DATAE 0x0238 /* Dword offset 0_8E */
-#define HOST_DATAF 0x023C /* Dword offset 0_8F */
-#define HOST_CNTL 0x0240 /* Dword offset 0_90 */
-
-/* GUI Bus Mastering */
-#define BM_HOSTDATA 0x0244 /* Dword offset 0_91 */
-#define BM_ADDR 0x0248 /* Dword offset 0_92 */
-#define BM_DATA 0x0248 /* Dword offset 0_92 */
-#define BM_GUI_TABLE_CMD 0x024C /* Dword offset 0_93 */
-
-/* Pattern */
-#define PAT_REG0 0x0280 /* Dword offset 0_A0 */
-#define PAT_REG1 0x0284 /* Dword offset 0_A1 */
-#define PAT_CNTL 0x0288 /* Dword offset 0_A2 */
-
-/* Scissors */
-#define SC_LEFT 0x02A0 /* Dword offset 0_A8 */
-#define SC_RIGHT 0x02A4 /* Dword offset 0_A9 */
-#define SC_LEFT_RIGHT 0x02A8 /* Dword offset 0_AA */
-#define SC_TOP 0x02AC /* Dword offset 0_AB */
-#define SC_BOTTOM 0x02B0 /* Dword offset 0_AC */
-#define SC_TOP_BOTTOM 0x02B4 /* Dword offset 0_AD */
-
-/* Data Path */
-#define USR1_DST_OFF_PITCH 0x02B8 /* Dword offset 0_AE */
-#define USR2_DST_OFF_PITCH 0x02BC /* Dword offset 0_AF */
-#define DP_BKGD_CLR 0x02C0 /* Dword offset 0_B0 */
-#define DP_FOG_CLR 0x02C4 /* Dword offset 0_B1 */
-#define DP_FRGD_CLR 0x02C4 /* Dword offset 0_B1 */
-#define DP_WRITE_MASK 0x02C8 /* Dword offset 0_B2 */
-#define DP_CHAIN_MASK 0x02CC /* Dword offset 0_B3 */
-#define DP_PIX_WIDTH 0x02D0 /* Dword offset 0_B4 */
-#define DP_MIX 0x02D4 /* Dword offset 0_B5 */
-#define DP_SRC 0x02D8 /* Dword offset 0_B6 */
-#define DP_FRGD_CLR_MIX 0x02DC /* Dword offset 0_B7 */
-#define DP_FRGD_BKGD_CLR 0x02E0 /* Dword offset 0_B8 */
-
-/* Draw Engine Destination Trajectory */
-#define DST_X_Y 0x02E8 /* Dword offset 0_BA */
-#define DST_WIDTH_HEIGHT 0x02EC /* Dword offset 0_BB */
-
-/* Data Path */
-#define USR_DST_PICTH 0x02F0 /* Dword offset 0_BC */
-#define DP_SET_GUI_ENGINE2 0x02F8 /* Dword offset 0_BE */
-#define DP_SET_GUI_ENGINE 0x02FC /* Dword offset 0_BF */
-
-/* Color Compare */
-#define CLR_CMP_CLR 0x0300 /* Dword offset 0_C0 */
-#define CLR_CMP_MASK 0x0304 /* Dword offset 0_C1 */
-#define CLR_CMP_CNTL 0x0308 /* Dword offset 0_C2 */
-
-/* Command FIFO */
-#define FIFO_STAT 0x0310 /* Dword offset 0_C4 */
-
-#define CONTEXT_MASK 0x0320 /* Dword offset 0_C8 */
-#define CONTEXT_LOAD_CNTL 0x032C /* Dword offset 0_CB */
-
-/* Engine Control */
-#define GUI_TRAJ_CNTL 0x0330 /* Dword offset 0_CC */
-
-/* Engine Status/FIFO */
-#define GUI_STAT 0x0338 /* Dword offset 0_CE */
-
-#define TEX_PALETTE_INDEX 0x0340 /* Dword offset 0_D0 */
-#define STW_EXP 0x0344 /* Dword offset 0_D1 */
-#define LOG_MAX_INC 0x0348 /* Dword offset 0_D2 */
-#define S_X_INC 0x034C /* Dword offset 0_D3 */
-#define S_Y_INC__ALIAS__ 0x0350 /* Dword offset 0_D4 */
-
-#define SCALE_PITCH__ALIAS__ 0x0350 /* Dword offset 0_D4 */
-
-#define S_START 0x0354 /* Dword offset 0_D5 */
-#define W_X_INC 0x0358 /* Dword offset 0_D6 */
-#define W_Y_INC 0x035C /* Dword offset 0_D7 */
-#define W_START 0x0360 /* Dword offset 0_D8 */
-#define T_X_INC 0x0364 /* Dword offset 0_D9 */
-#define T_Y_INC 0x0368 /* Dword offset 0_DA */
-
-#define SECONDARY_SCALE_PITCH 0x0368 /* Dword offset 0_DA */
-
-#define T_START 0x036C /* Dword offset 0_DB */
-#define TEX_SIZE_PITCH 0x0370 /* Dword offset 0_DC */
-#define TEX_CNTL 0x0374 /* Dword offset 0_DD */
-#define SECONDARY_TEX_OFFSET 0x0378 /* Dword offset 0_DE */
-#define TEX_PALETTE 0x037C /* Dword offset 0_DF */
-
-#define SCALE_PITCH_BOTH 0x0380 /* Dword offset 0_E0 */
-#define SECONDARY_SCALE_OFF_ACC 0x0384 /* Dword offset 0_E1 */
-#define SCALE_OFF_ACC 0x0388 /* Dword offset 0_E2 */
-#define SCALE_DST_Y_X 0x038C /* Dword offset 0_E3 */
-
-/* Draw Engine Destination Trajectory */
-#define COMPOSITE_SHADOW_ID 0x0398 /* Dword offset 0_E6 */
-
-#define SECONDARY_SCALE_X_INC 0x039C /* Dword offset 0_E7 */
-
-#define SPECULAR_RED_X_INC 0x039C /* Dword offset 0_E7 */
-#define SPECULAR_RED_Y_INC 0x03A0 /* Dword offset 0_E8 */
-#define SPECULAR_RED_START 0x03A4 /* Dword offset 0_E9 */
-
-#define SECONDARY_SCALE_HACC 0x03A4 /* Dword offset 0_E9 */
-
-#define SPECULAR_GREEN_X_INC 0x03A8 /* Dword offset 0_EA */
-#define SPECULAR_GREEN_Y_INC 0x03AC /* Dword offset 0_EB */
-#define SPECULAR_GREEN_START 0x03B0 /* Dword offset 0_EC */
-#define SPECULAR_BLUE_X_INC 0x03B4 /* Dword offset 0_ED */
-#define SPECULAR_BLUE_Y_INC 0x03B8 /* Dword offset 0_EE */
-#define SPECULAR_BLUE_START 0x03BC /* Dword offset 0_EF */
-
-#define SCALE_X_INC__ALIAS__ 0x03C0 /* Dword offset 0_F0 */
-
-#define RED_X_INC__ALIAS__ 0x03C0 /* Dword offset 0_F0 */
-#define RED_Y_INC 0x03C4 /* Dword offset 0_F1 */
-#define RED_START 0x03C8 /* Dword offset 0_F2 */
-
-#define SCALE_HACC 0x03C8 /* Dword offset 0_F2 */
-#define SCALE_Y_INC__ALIAS__ 0x03CC /* Dword offset 0_F3 */
-
-#define GREEN_X_INC__ALIAS__ 0x03CC /* Dword offset 0_F3 */
-#define GREEN_Y_INC 0x03D0 /* Dword offset 0_F4 */
-
-#define SECONDARY_SCALE_Y_INC 0x03D0 /* Dword offset 0_F4 */
-#define SECONDARY_SCALE_VACC 0x03D4 /* Dword offset 0_F5 */
-
-#define GREEN_START 0x03D4 /* Dword offset 0_F5 */
-#define BLUE_X_INC 0x03D8 /* Dword offset 0_F6 */
-#define BLUE_Y_INC 0x03DC /* Dword offset 0_F7 */
-#define BLUE_START 0x03E0 /* Dword offset 0_F8 */
-#define Z_X_INC 0x03E4 /* Dword offset 0_F9 */
-#define Z_Y_INC 0x03E8 /* Dword offset 0_FA */
-#define Z_START 0x03EC /* Dword offset 0_FB */
-#define ALPHA_X_INC 0x03F0 /* Dword offset 0_FC */
-#define FOG_X_INC 0x03F0 /* Dword offset 0_FC */
-#define ALPHA_Y_INC 0x03F4 /* Dword offset 0_FD */
-#define FOG_Y_INC 0x03F4 /* Dword offset 0_FD */
-#define ALPHA_START 0x03F8 /* Dword offset 0_FE */
-#define FOG_START 0x03F8 /* Dword offset 0_FE */
-
-#define OVERLAY_Y_X_START 0x0400 /* Dword offset 1_00 */
-#define OVERLAY_Y_X_END 0x0404 /* Dword offset 1_01 */
-#define OVERLAY_VIDEO_KEY_CLR 0x0408 /* Dword offset 1_02 */
-#define OVERLAY_VIDEO_KEY_MSK 0x040C /* Dword offset 1_03 */
-#define OVERLAY_GRAPHICS_KEY_CLR 0x0410 /* Dword offset 1_04 */
-#define OVERLAY_GRAPHICS_KEY_MSK 0x0414 /* Dword offset 1_05 */
-#define OVERLAY_KEY_CNTL 0x0418 /* Dword offset 1_06 */
-
-#define OVERLAY_SCALE_INC 0x0420 /* Dword offset 1_08 */
-#define OVERLAY_SCALE_CNTL 0x0424 /* Dword offset 1_09 */
-#define SCALER_HEIGHT_WIDTH 0x0428 /* Dword offset 1_0A */
-#define SCALER_TEST 0x042C /* Dword offset 1_0B */
-#define SCALER_BUF0_OFFSET 0x0434 /* Dword offset 1_0D */
-#define SCALER_BUF1_OFFSET 0x0438 /* Dword offset 1_0E */
-#define SCALE_BUF_PITCH 0x043C /* Dword offset 1_0F */
-
-#define CAPTURE_START_END 0x0440 /* Dword offset 1_10 */
-#define CAPTURE_X_WIDTH 0x0444 /* Dword offset 1_11 */
-#define VIDEO_FORMAT 0x0448 /* Dword offset 1_12 */
-#define VBI_START_END 0x044C /* Dword offset 1_13 */
-#define CAPTURE_CONFIG 0x0450 /* Dword offset 1_14 */
-#define TRIG_CNTL 0x0454 /* Dword offset 1_15 */
-
-#define OVERLAY_EXCLUSIVE_HORZ 0x0458 /* Dword offset 1_16 */
-#define OVERLAY_EXCLUSIVE_VERT 0x045C /* Dword offset 1_17 */
-
-#define VAL_WIDTH 0x0460 /* Dword offset 1_18 */
-#define CAPTURE_DEBUG 0x0464 /* Dword offset 1_19 */
-#define VIDEO_SYNC_TEST 0x0468 /* Dword offset 1_1A */
-
-/* GenLocking */
-#define SNAPSHOT_VH_COUNTS 0x0470 /* Dword offset 1_1C */
-#define SNAPSHOT_F_COUNT 0x0474 /* Dword offset 1_1D */
-#define N_VIF_COUNT 0x0478 /* Dword offset 1_1E */
-#define SNAPSHOT_VIF_COUNT 0x047C /* Dword offset 1_1F */
-
-#define CAPTURE_BUF0_OFFSET 0x0480 /* Dword offset 1_20 */
-#define CAPTURE_BUF1_OFFSET 0x0484 /* Dword offset 1_21 */
-#define CAPTURE_BUF_PITCH 0x0488 /* Dword offset 1_22 */
-
-/* GenLocking */
-#define SNAPSHOT2_VH_COUNTS 0x04B0 /* Dword offset 1_2C */
-#define SNAPSHOT2_F_COUNT 0x04B4 /* Dword offset 1_2D */
-#define N_VIF2_COUNT 0x04B8 /* Dword offset 1_2E */
-#define SNAPSHOT2_VIF_COUNT 0x04BC /* Dword offset 1_2F */
-
-#define MPP_CONFIG 0x04C0 /* Dword offset 1_30 */
-#define MPP_STROBE_SEQ 0x04C4 /* Dword offset 1_31 */
-#define MPP_ADDR 0x04C8 /* Dword offset 1_32 */
-#define MPP_DATA 0x04CC /* Dword offset 1_33 */
-#define TVO_CNTL 0x0500 /* Dword offset 1_40 */
-
-/* Test and Debug */
-#define CRT_HORZ_VERT_LOAD 0x0544 /* Dword offset 1_51 */
-
-/* AGP */
-#define AGP_BASE 0x0548 /* Dword offset 1_52 */
-#define AGP_CNTL 0x054C /* Dword offset 1_53 */
-
-#define SCALER_COLOUR_CNTL 0x0550 /* Dword offset 1_54 */
-#define SCALER_H_COEFF0 0x0554 /* Dword offset 1_55 */
-#define SCALER_H_COEFF1 0x0558 /* Dword offset 1_56 */
-#define SCALER_H_COEFF2 0x055C /* Dword offset 1_57 */
-#define SCALER_H_COEFF3 0x0560 /* Dword offset 1_58 */
-#define SCALER_H_COEFF4 0x0564 /* Dword offset 1_59 */
-
-/* Command FIFO */
-#define GUI_CMDFIFO_DEBUG 0x0570 /* Dword offset 1_5C */
-#define GUI_CMDFIFO_DATA 0x0574 /* Dword offset 1_5D */
-#define GUI_CNTL 0x0578 /* Dword offset 1_5E */
-
-/* Bus Mastering */
-#define BM_FRAME_BUF_OFFSET 0x0580 /* Dword offset 1_60 */
-#define BM_SYSTEM_MEM_ADDR 0x0584 /* Dword offset 1_61 */
-#define BM_COMMAND 0x0588 /* Dword offset 1_62 */
-#define BM_STATUS 0x058C /* Dword offset 1_63 */
-#define BM_GUI_TABLE 0x05B8 /* Dword offset 1_6E */
-#define BM_SYSTEM_TABLE 0x05BC /* Dword offset 1_6F */
-
-#define SCALER_BUF0_OFFSET_U 0x05D4 /* Dword offset 1_75 */
-#define SCALER_BUF0_OFFSET_V 0x05D8 /* Dword offset 1_76 */
-#define SCALER_BUF1_OFFSET_U 0x05DC /* Dword offset 1_77 */
-#define SCALER_BUF1_OFFSET_V 0x05E0 /* Dword offset 1_78 */
-
-/* Setup Engine */
-#define VERTEX_1_S 0x0640 /* Dword offset 1_90 */
-#define VERTEX_1_T 0x0644 /* Dword offset 1_91 */
-#define VERTEX_1_W 0x0648 /* Dword offset 1_92 */
-#define VERTEX_1_SPEC_ARGB 0x064C /* Dword offset 1_93 */
-#define VERTEX_1_Z 0x0650 /* Dword offset 1_94 */
-#define VERTEX_1_ARGB 0x0654 /* Dword offset 1_95 */
-#define VERTEX_1_X_Y 0x0658 /* Dword offset 1_96 */
-#define ONE_OVER_AREA 0x065C /* Dword offset 1_97 */
-#define VERTEX_2_S 0x0660 /* Dword offset 1_98 */
-#define VERTEX_2_T 0x0664 /* Dword offset 1_99 */
-#define VERTEX_2_W 0x0668 /* Dword offset 1_9A */
-#define VERTEX_2_SPEC_ARGB 0x066C /* Dword offset 1_9B */
-#define VERTEX_2_Z 0x0670 /* Dword offset 1_9C */
-#define VERTEX_2_ARGB 0x0674 /* Dword offset 1_9D */
-#define VERTEX_2_X_Y 0x0678 /* Dword offset 1_9E */
-#define ONE_OVER_AREA 0x065C /* Dword offset 1_9F */
-#define VERTEX_3_S 0x0680 /* Dword offset 1_A0 */
-#define VERTEX_3_T 0x0684 /* Dword offset 1_A1 */
-#define VERTEX_3_W 0x0688 /* Dword offset 1_A2 */
-#define VERTEX_3_SPEC_ARGB 0x068C /* Dword offset 1_A3 */
-#define VERTEX_3_Z 0x0690 /* Dword offset 1_A4 */
-#define VERTEX_3_ARGB 0x0694 /* Dword offset 1_A5 */
-#define VERTEX_3_X_Y 0x0698 /* Dword offset 1_A6 */
-#define ONE_OVER_AREA 0x065C /* Dword offset 1_A7 */
-#define VERTEX_1_S 0x0640 /* Dword offset 1_AB */
-#define VERTEX_1_T 0x0644 /* Dword offset 1_AC */
-#define VERTEX_1_W 0x0648 /* Dword offset 1_AD */
-#define VERTEX_2_S 0x0660 /* Dword offset 1_AE */
-#define VERTEX_2_T 0x0664 /* Dword offset 1_AF */
-#define VERTEX_2_W 0x0668 /* Dword offset 1_B0 */
-#define VERTEX_3_SECONDARY_S 0x06C0 /* Dword offset 1_B0 */
-#define VERTEX_3_S 0x0680 /* Dword offset 1_B1 */
-#define VERTEX_3_SECONDARY_T 0x06C4 /* Dword offset 1_B1 */
-#define VERTEX_3_T 0x0684 /* Dword offset 1_B2 */
-#define VERTEX_3_SECONDARY_W 0x06C8 /* Dword offset 1_B2 */
-#define VERTEX_3_W 0x0688 /* Dword offset 1_B3 */
-#define VERTEX_1_SPEC_ARGB 0x064C /* Dword offset 1_B4 */
-#define VERTEX_2_SPEC_ARGB 0x066C /* Dword offset 1_B5 */
-#define VERTEX_3_SPEC_ARGB 0x068C /* Dword offset 1_B6 */
-#define VERTEX_1_Z 0x0650 /* Dword offset 1_B7 */
-#define VERTEX_2_Z 0x0670 /* Dword offset 1_B8 */
-#define VERTEX_3_Z 0x0690 /* Dword offset 1_B9 */
-#define VERTEX_1_ARGB 0x0654 /* Dword offset 1_BA */
-#define VERTEX_2_ARGB 0x0674 /* Dword offset 1_BB */
-#define VERTEX_3_ARGB 0x0694 /* Dword offset 1_BC */
-#define VERTEX_1_X_Y 0x0658 /* Dword offset 1_BD */
-#define VERTEX_2_X_Y 0x0678 /* Dword offset 1_BE */
-#define VERTEX_3_X_Y 0x0698 /* Dword offset 1_BF */
-#define ONE_OVER_AREA_UC 0x0700 /* Dword offset 1_C0 */
-#define SETUP_CNTL 0x0704 /* Dword offset 1_C1 */
-#define VERTEX_1_SECONDARY_S 0x0728 /* Dword offset 1_CA */
-#define VERTEX_1_SECONDARY_T 0x072C /* Dword offset 1_CB */
-#define VERTEX_1_SECONDARY_W 0x0730 /* Dword offset 1_CC */
-#define VERTEX_2_SECONDARY_S 0x0734 /* Dword offset 1_CD */
-#define VERTEX_2_SECONDARY_T 0x0738 /* Dword offset 1_CE */
-#define VERTEX_2_SECONDARY_W 0x073C /* Dword offset 1_CF */
-
-
-#define GTC_3D_RESET_DELAY 3 /* 3D engine reset delay in ms */
-
-/* CRTC control values (mostly CRTC_GEN_CNTL) */
-
-#define CRTC_H_SYNC_NEG 0x00200000
-#define CRTC_V_SYNC_NEG 0x00200000
-
-#define CRTC_DBL_SCAN_EN 0x00000001
-#define CRTC_INTERLACE_EN 0x00000002
-#define CRTC_HSYNC_DIS 0x00000004
-#define CRTC_VSYNC_DIS 0x00000008
-#define CRTC_CSYNC_EN 0x00000010
-#define CRTC_PIX_BY_2_EN 0x00000020 /* unused on RAGE */
-#define CRTC_DISPLAY_DIS 0x00000040
-#define CRTC_VGA_XOVERSCAN 0x00000080
-
-#define CRTC_PIX_WIDTH_MASK 0x00000700
-#define CRTC_PIX_WIDTH_4BPP 0x00000100
-#define CRTC_PIX_WIDTH_8BPP 0x00000200
-#define CRTC_PIX_WIDTH_15BPP 0x00000300
-#define CRTC_PIX_WIDTH_16BPP 0x00000400
-#define CRTC_PIX_WIDTH_24BPP 0x00000500
-#define CRTC_PIX_WIDTH_32BPP 0x00000600
-
-#define CRTC_BYTE_PIX_ORDER 0x00000800
-#define CRTC_PIX_ORDER_MSN_LSN 0x00000000
-#define CRTC_PIX_ORDER_LSN_MSN 0x00000800
-
-#define CRTC_VSYNC_INT_EN 0x00001000ul /* XC/XL */
-#define CRTC_VSYNC_INT 0x00002000ul /* XC/XL */
-#define CRTC_FIFO_OVERFILL 0x0000c000ul /* VT/GT */
-#define CRTC2_VSYNC_INT_EN 0x00004000ul /* XC/XL */
-#define CRTC2_VSYNC_INT 0x00008000ul /* XC/XL */
-
-#define CRTC_FIFO_LWM 0x000f0000
-#define CRTC_HVSYNC_IO_DRIVE 0x00010000 /* XC/XL */
-#define CRTC2_PIX_WIDTH 0x000e0000 /* LTPro */
-
-#define CRTC_VGA_128KAP_PAGING 0x00100000
-#define CRTC_VFC_SYNC_TRISTATE 0x00200000 /* VTB/GTB/LT */
-#define CRTC2_EN 0x00200000 /* LTPro */
-#define CRTC_LOCK_REGS 0x00400000
-#define CRTC_SYNC_TRISTATE 0x00800000
-
-#define CRTC_EXT_DISP_EN 0x01000000
-#define CRTC_EN 0x02000000
-#define CRTC_DISP_REQ_EN 0x04000000
-#define CRTC_VGA_LINEAR 0x08000000
-#define CRTC_VSYNC_FALL_EDGE 0x10000000
-#define CRTC_VGA_TEXT_132 0x20000000
-#define CRTC_CNT_EN 0x40000000
-#define CRTC_CUR_B_TEST 0x80000000
-
-#define CRTC_CRNT_VLINE 0x07f00000
-
-#define CRTC_PRESERVED_MASK 0x0001f000
-
-#define CRTC_VBLANK 0x00000001
-#define CRTC_VBLANK_INT_EN 0x00000002
-#define CRTC_VBLANK_INT 0x00000004
-#define CRTC_VBLANK_INT_AK CRTC_VBLANK_INT
-#define CRTC_VLINE_INT_EN 0x00000008
-#define CRTC_VLINE_INT 0x00000010
-#define CRTC_VLINE_INT_AK CRTC_VLINE_INT
-#define CRTC_VLINE_SYNC 0x00000020
-#define CRTC_FRAME 0x00000040
-#define SNAPSHOT_INT_EN 0x00000080
-#define SNAPSHOT_INT 0x00000100
-#define SNAPSHOT_INT_AK SNAPSHOT_INT
-#define I2C_INT_EN 0x00000200
-#define I2C_INT 0x00000400
-#define I2C_INT_AK I2C_INT
-#define CRTC2_VBLANK 0x00000800
-#define CRTC2_VBLANK_INT_EN 0x00001000
-#define CRTC2_VBLANK_INT 0x00002000
-#define CRTC2_VBLANK_INT_AK CRTC2_VBLANK_INT
-#define CRTC2_VLINE_INT_EN 0x00004000
-#define CRTC2_VLINE_INT 0x00008000
-#define CRTC2_VLINE_INT_AK CRTC2_VLINE_INT
-#define CAPBUF0_INT_EN 0x00010000
-#define CAPBUF0_INT 0x00020000
-#define CAPBUF0_INT_AK CAPBUF0_INT
-#define CAPBUF1_INT_EN 0x00040000
-#define CAPBUF1_INT 0x00080000
-#define CAPBUF1_INT_AK CAPBUF1_INT
-#define OVERLAY_EOF_INT_EN 0x00100000
-#define OVERLAY_EOF_INT 0x00200000
-#define OVERLAY_EOF_INT_AK OVERLAY_EOF_INT
-#define ONESHOT_CAP_INT_EN 0x00400000
-#define ONESHOT_CAP_INT 0x00800000
-#define ONESHOT_CAP_INT_AK ONESHOT_CAP_INT
-#define BUSMASTER_EOL_INT_EN 0x01000000
-#define BUSMASTER_EOL_INT 0x02000000
-#define BUSMASTER_EOL_INT_AK BUSMASTER_EOL_INT
-#define GP_INT_EN 0x04000000
-#define GP_INT 0x08000000
-#define GP_INT_AK GP_INT
-#define CRTC2_VLINE_SYNC 0x10000000
-#define SNAPSHOT2_INT_EN 0x20000000
-#define SNAPSHOT2_INT 0x40000000
-#define SNAPSHOT2_INT_AK SNAPSHOT2_INT
-#define VBLANK_BIT2_INT 0x80000000
-#define VBLANK_BIT2_INT_AK VBLANK_BIT2_INT
-
-#define CRTC_INT_EN_MASK (CRTC_VBLANK_INT_EN | \
- CRTC_VLINE_INT_EN | \
- SNAPSHOT_INT_EN | \
- I2C_INT_EN | \
- CRTC2_VBLANK_INT_EN | \
- CRTC2_VLINE_INT_EN | \
- CAPBUF0_INT_EN | \
- CAPBUF1_INT_EN | \
- OVERLAY_EOF_INT_EN | \
- ONESHOT_CAP_INT_EN | \
- BUSMASTER_EOL_INT_EN | \
- GP_INT_EN | \
- SNAPSHOT2_INT_EN)
-
-/* DAC control values */
-
-#define DAC_EXT_SEL_RS2 0x01
-#define DAC_EXT_SEL_RS3 0x02
-#define DAC_8BIT_EN 0x00000100
-#define DAC_PIX_DLY_MASK 0x00000600
-#define DAC_PIX_DLY_0NS 0x00000000
-#define DAC_PIX_DLY_2NS 0x00000200
-#define DAC_PIX_DLY_4NS 0x00000400
-#define DAC_BLANK_ADJ_MASK 0x00001800
-#define DAC_BLANK_ADJ_0 0x00000000
-#define DAC_BLANK_ADJ_1 0x00000800
-#define DAC_BLANK_ADJ_2 0x00001000
-
-/* DAC control values (my source XL/XC Register reference) */
-#define DAC_OUTPUT_MASK 0x00000001 /* 0 - PAL, 1 - NTSC */
-#define DAC_MISTERY_BIT 0x00000002 /* PS2 ? RS343 ?, EXTRA_BRIGHT for GT */
-#define DAC_BLANKING 0x00000004
-#define DAC_CMP_DISABLE 0x00000008
-#define DAC1_CLK_SEL 0x00000010
-#define PALETTE_ACCESS_CNTL 0x00000020
-#define PALETTE2_SNOOP_EN 0x00000040
-#define DAC_CMP_OUTPUT 0x00000080 /* read only */
-/* #define DAC_8BIT_EN is ok */
-#define CRT_SENSE 0x00000800 /* read only */
-#define CRT_DETECTION_ON 0x00001000
-#define DAC_VGA_ADR_EN 0x00002000
-#define DAC_FEA_CON_EN 0x00004000
-#define DAC_PDWN 0x00008000
-#define DAC_TYPE_MASK 0x00070000 /* read only */
-
-
-
-/* Mix control values */
-
-#define MIX_NOT_DST 0x0000
-#define MIX_0 0x0001
-#define MIX_1 0x0002
-#define MIX_DST 0x0003
-#define MIX_NOT_SRC 0x0004
-#define MIX_XOR 0x0005
-#define MIX_XNOR 0x0006
-#define MIX_SRC 0x0007
-#define MIX_NAND 0x0008
-#define MIX_NOT_SRC_OR_DST 0x0009
-#define MIX_SRC_OR_NOT_DST 0x000a
-#define MIX_OR 0x000b
-#define MIX_AND 0x000c
-#define MIX_SRC_AND_NOT_DST 0x000d
-#define MIX_NOT_SRC_AND_DST 0x000e
-#define MIX_NOR 0x000f
-
-/* Maximum engine dimensions */
-#define ENGINE_MIN_X 0
-#define ENGINE_MIN_Y 0
-#define ENGINE_MAX_X 4095
-#define ENGINE_MAX_Y 16383
-
-/* Mach64 engine bit constants - these are typically ORed together */
-
-/* BUS_CNTL register constants */
-#define BUS_APER_REG_DIS 0x00000010
-#define BUS_FIFO_ERR_ACK 0x00200000
-#define BUS_HOST_ERR_ACK 0x00800000
-
-/* GEN_TEST_CNTL register constants */
-#define GEN_OVR_OUTPUT_EN 0x20
-#define HWCURSOR_ENABLE 0x80
-#define GUI_ENGINE_ENABLE 0x100
-#define BLOCK_WRITE_ENABLE 0x200
-
-/* DSP_CONFIG register constants */
-#define DSP_XCLKS_PER_QW 0x00003fff
-#define DSP_LOOP_LATENCY 0x000f0000
-#define DSP_PRECISION 0x00700000
-
-/* DSP_ON_OFF register constants */
-#define DSP_OFF 0x000007ff
-#define DSP_ON 0x07ff0000
-#define VGA_DSP_OFF DSP_OFF
-#define VGA_DSP_ON DSP_ON
-#define VGA_DSP_XCLKS_PER_QW DSP_XCLKS_PER_QW
-
-/* PLL register indices and fields */
-#define MPLL_CNTL 0x00
-#define PLL_PC_GAIN 0x07
-#define PLL_VC_GAIN 0x18
-#define PLL_DUTY_CYC 0xE0
-#define VPLL_CNTL 0x01
-#define PLL_REF_DIV 0x02
-#define PLL_GEN_CNTL 0x03
-#define PLL_OVERRIDE 0x01 /* PLL_SLEEP */
-#define PLL_MCLK_RST 0x02 /* PLL_MRESET */
-#define OSC_EN 0x04
-#define EXT_CLK_EN 0x08
-#define FORCE_DCLK_TRI_STATE 0x08 /* VT4 -> */
-#define MCLK_SRC_SEL 0x70
-#define EXT_CLK_CNTL 0x80
-#define DLL_PWDN 0x80 /* VT4 -> */
-#define MCLK_FB_DIV 0x04
-#define PLL_VCLK_CNTL 0x05
-#define PLL_VCLK_SRC_SEL 0x03
-#define PLL_VCLK_RST 0x04
-#define PLL_VCLK_INVERT 0x08
-#define VCLK_POST_DIV 0x06
-#define VCLK0_POST 0x03
-#define VCLK1_POST 0x0C
-#define VCLK2_POST 0x30
-#define VCLK3_POST 0xC0
-#define VCLK0_FB_DIV 0x07
-#define VCLK1_FB_DIV 0x08
-#define VCLK2_FB_DIV 0x09
-#define VCLK3_FB_DIV 0x0A
-#define PLL_EXT_CNTL 0x0B
-#define PLL_XCLK_MCLK_RATIO 0x03
-#define PLL_XCLK_SRC_SEL 0x07
-#define PLL_MFB_TIMES_4_2B 0x08
-#define PLL_VCLK0_XDIV 0x10
-#define PLL_VCLK1_XDIV 0x20
-#define PLL_VCLK2_XDIV 0x40
-#define PLL_VCLK3_XDIV 0x80
-#define DLL_CNTL 0x0C
-#define DLL1_CNTL 0x0C
-#define VFC_CNTL 0x0D
-#define PLL_TEST_CNTL 0x0E
-#define PLL_TEST_COUNT 0x0F
-#define LVDS_CNTL0 0x10
-#define LVDS_CNTL1 0x11
-#define AGP1_CNTL 0x12
-#define AGP2_CNTL 0x13
-#define DLL2_CNTL 0x14
-#define SCLK_FB_DIV 0x15
-#define SPLL_CNTL1 0x16
-#define SPLL_CNTL2 0x17
-#define APLL_STRAPS 0x18
-#define EXT_VPLL_CNTL 0x19
-#define EXT_VPLL_EN 0x04
-#define EXT_VPLL_VGA_EN 0x08
-#define EXT_VPLL_INSYNC 0x10
-#define EXT_VPLL_REF_DIV 0x1A
-#define EXT_VPLL_FB_DIV 0x1B
-#define EXT_VPLL_MSB 0x1C
-#define HTOTAL_CNTL 0x1D
-#define BYTE_CLK_CNTL 0x1E
-#define TV_PLL_CNTL1 0x1F
-#define TV_PLL_CNTL2 0x20
-#define TV_PLL_CNTL 0x21
-#define EXT_TV_PLL 0x22
-#define V2PLL_CNTL 0x23
-#define PLL_V2CLK_CNTL 0x24
-#define EXT_V2PLL_REF_DIV 0x25
-#define EXT_V2PLL_FB_DIV 0x26
-#define EXT_V2PLL_MSB 0x27
-#define HTOTAL2_CNTL 0x28
-#define PLL_YCLK_CNTL 0x29
-#define PM_DYN_CLK_CNTL 0x2A
-
-/* CNFG_CNTL register constants */
-#define APERTURE_4M_ENABLE 1
-#define APERTURE_8M_ENABLE 2
-#define VGA_APERTURE_ENABLE 4
-
-/* CNFG_STAT0 register constants (GX, CX) */
-#define CFG_BUS_TYPE 0x00000007
-#define CFG_MEM_TYPE 0x00000038
-#define CFG_INIT_DAC_TYPE 0x00000e00
-
-/* CNFG_STAT0 register constants (CT, ET, VT) */
-#define CFG_MEM_TYPE_xT 0x00000007
-
-#define ISA 0
-#define EISA 1
-#define LOCAL_BUS 6
-#define PCI 7
-
-/* Memory types for GX, CX */
-#define DRAMx4 0
-#define VRAMx16 1
-#define VRAMx16ssr 2
-#define DRAMx16 3
-#define GraphicsDRAMx16 4
-#define EnhancedVRAMx16 5
-#define EnhancedVRAMx16ssr 6
-
-/* Memory types for CT, ET, VT, GT */
-#define DRAM 1
-#define EDO 2
-#define PSEUDO_EDO 3
-#define SDRAM 4
-#define SGRAM 5
-#define WRAM 6
-#define SDRAM32 6
-
-#define DAC_INTERNAL 0x00
-#define DAC_IBMRGB514 0x01
-#define DAC_ATI68875 0x02
-#define DAC_TVP3026_A 0x72
-#define DAC_BT476 0x03
-#define DAC_BT481 0x04
-#define DAC_ATT20C491 0x14
-#define DAC_SC15026 0x24
-#define DAC_MU9C1880 0x34
-#define DAC_IMSG174 0x44
-#define DAC_ATI68860_B 0x05
-#define DAC_ATI68860_C 0x15
-#define DAC_TVP3026_B 0x75
-#define DAC_STG1700 0x06
-#define DAC_ATT498 0x16
-#define DAC_STG1702 0x07
-#define DAC_SC15021 0x17
-#define DAC_ATT21C498 0x27
-#define DAC_STG1703 0x37
-#define DAC_CH8398 0x47
-#define DAC_ATT20C408 0x57
-
-#define CLK_ATI18818_0 0
-#define CLK_ATI18818_1 1
-#define CLK_STG1703 2
-#define CLK_CH8398 3
-#define CLK_INTERNAL 4
-#define CLK_ATT20C408 5
-#define CLK_IBMRGB514 6
-
-/* MEM_CNTL register constants */
-#define MEM_SIZE_ALIAS 0x00000007
-#define MEM_SIZE_512K 0x00000000
-#define MEM_SIZE_1M 0x00000001
-#define MEM_SIZE_2M 0x00000002
-#define MEM_SIZE_4M 0x00000003
-#define MEM_SIZE_6M 0x00000004
-#define MEM_SIZE_8M 0x00000005
-#define MEM_SIZE_ALIAS_GTB 0x0000000F
-#define MEM_SIZE_2M_GTB 0x00000003
-#define MEM_SIZE_4M_GTB 0x00000007
-#define MEM_SIZE_6M_GTB 0x00000009
-#define MEM_SIZE_8M_GTB 0x0000000B
-#define MEM_BNDRY 0x00030000
-#define MEM_BNDRY_0K 0x00000000
-#define MEM_BNDRY_256K 0x00010000
-#define MEM_BNDRY_512K 0x00020000
-#define MEM_BNDRY_1M 0x00030000
-#define MEM_BNDRY_EN 0x00040000
-
-#define ONE_MB 0x100000
-/* ATI PCI constants */
-#define PCI_ATI_VENDOR_ID 0x1002
-
-
-/* CNFG_CHIP_ID register constants */
-#define CFG_CHIP_TYPE 0x0000FFFF
-#define CFG_CHIP_CLASS 0x00FF0000
-#define CFG_CHIP_REV 0xFF000000
-#define CFG_CHIP_MAJOR 0x07000000
-#define CFG_CHIP_FND_ID 0x38000000
-#define CFG_CHIP_MINOR 0xC0000000
-
-
-/* Chip IDs read from CNFG_CHIP_ID */
-
-/* mach64GX family */
-#define GX_CHIP_ID 0xD7 /* mach64GX (ATI888GX00) */
-#define CX_CHIP_ID 0x57 /* mach64CX (ATI888CX00) */
-
-#define GX_PCI_ID 0x4758 /* mach64GX (ATI888GX00) */
-#define CX_PCI_ID 0x4358 /* mach64CX (ATI888CX00) */
-
-/* mach64CT family */
-#define CT_CHIP_ID 0x4354 /* mach64CT (ATI264CT) */
-#define ET_CHIP_ID 0x4554 /* mach64ET (ATI264ET) */
-
-/* mach64CT family / mach64VT class */
-#define VT_CHIP_ID 0x5654 /* mach64VT (ATI264VT) */
-#define VU_CHIP_ID 0x5655 /* mach64VTB (ATI264VTB) */
-#define VV_CHIP_ID 0x5656 /* mach64VT4 (ATI264VT4) */
-
-/* mach64CT family / mach64GT (3D RAGE) class */
-#define LB_CHIP_ID 0x4c42 /* RAGE LT PRO, AGP */
-#define LD_CHIP_ID 0x4c44 /* RAGE LT PRO */
-#define LG_CHIP_ID 0x4c47 /* RAGE LT */
-#define LI_CHIP_ID 0x4c49 /* RAGE LT PRO */
-#define LP_CHIP_ID 0x4c50 /* RAGE LT PRO */
-#define LT_CHIP_ID 0x4c54 /* RAGE LT */
-
-/* mach64CT family / (Rage XL) class */
-#define GR_CHIP_ID 0x4752 /* RAGE XL, BGA, PCI33 */
-#define GS_CHIP_ID 0x4753 /* RAGE XL, PQFP, PCI33 */
-#define GM_CHIP_ID 0x474d /* RAGE XL, BGA, AGP 1x,2x */
-#define GN_CHIP_ID 0x474e /* RAGE XL, PQFP,AGP 1x,2x */
-#define GO_CHIP_ID 0x474f /* RAGE XL, BGA, PCI66 */
-#define GL_CHIP_ID 0x474c /* RAGE XL, PQFP, PCI66 */
-
-#define IS_XL(id) ((id)==GR_CHIP_ID || (id)==GS_CHIP_ID || \
- (id)==GM_CHIP_ID || (id)==GN_CHIP_ID || \
- (id)==GO_CHIP_ID || (id)==GL_CHIP_ID)
-
-#define GT_CHIP_ID 0x4754 /* RAGE (GT) */
-#define GU_CHIP_ID 0x4755 /* RAGE II/II+ (GTB) */
-#define GV_CHIP_ID 0x4756 /* RAGE IIC, PCI */
-#define GW_CHIP_ID 0x4757 /* RAGE IIC, AGP */
-#define GZ_CHIP_ID 0x475a /* RAGE IIC, AGP */
-#define GB_CHIP_ID 0x4742 /* RAGE PRO, BGA, AGP 1x and 2x */
-#define GD_CHIP_ID 0x4744 /* RAGE PRO, BGA, AGP 1x only */
-#define GI_CHIP_ID 0x4749 /* RAGE PRO, BGA, PCI33 only */
-#define GP_CHIP_ID 0x4750 /* RAGE PRO, PQFP, PCI33, full 3D */
-#define GQ_CHIP_ID 0x4751 /* RAGE PRO, PQFP, PCI33, limited 3D */
-
-#define LM_CHIP_ID 0x4c4d /* RAGE Mobility AGP, full function */
-#define LN_CHIP_ID 0x4c4e /* RAGE Mobility AGP */
-#define LR_CHIP_ID 0x4c52 /* RAGE Mobility PCI, full function */
-#define LS_CHIP_ID 0x4c53 /* RAGE Mobility PCI */
-
-#define IS_MOBILITY(id) ((id)==LM_CHIP_ID || (id)==LN_CHIP_ID || \
- (id)==LR_CHIP_ID || (id)==LS_CHIP_ID)
-/* Mach64 major ASIC revisions */
-#define MACH64_ASIC_NEC_VT_A3 0x08
-#define MACH64_ASIC_NEC_VT_A4 0x48
-#define MACH64_ASIC_SGS_VT_A4 0x40
-#define MACH64_ASIC_SGS_VT_B1S1 0x01
-#define MACH64_ASIC_SGS_GT_B1S1 0x01
-#define MACH64_ASIC_SGS_GT_B1S2 0x41
-#define MACH64_ASIC_UMC_GT_B2U1 0x1a
-#define MACH64_ASIC_UMC_GT_B2U2 0x5a
-#define MACH64_ASIC_UMC_VT_B2U3 0x9a
-#define MACH64_ASIC_UMC_GT_B2U3 0x9a
-#define MACH64_ASIC_UMC_R3B_D_P_A1 0x1b
-#define MACH64_ASIC_UMC_R3B_D_P_A2 0x5b
-#define MACH64_ASIC_UMC_R3B_D_P_A3 0x1c
-#define MACH64_ASIC_UMC_R3B_D_P_A4 0x5c
-
-/* Mach64 foundries */
-#define MACH64_FND_SGS 0
-#define MACH64_FND_NEC 1
-#define MACH64_FND_UMC 3
-
-/* Mach64 chip types */
-#define MACH64_UNKNOWN 0
-#define MACH64_GX 1
-#define MACH64_CX 2
-#define MACH64_CT 3Restore
-#define MACH64_ET 4
-#define MACH64_VT 5
-#define MACH64_GT 6
-
-/* DST_CNTL register constants */
-#define DST_X_RIGHT_TO_LEFT 0
-#define DST_X_LEFT_TO_RIGHT 1
-#define DST_Y_BOTTOM_TO_TOP 0
-#define DST_Y_TOP_TO_BOTTOM 2
-#define DST_X_MAJOR 0
-#define DST_Y_MAJOR 4
-#define DST_X_TILE 8
-#define DST_Y_TILE 0x10
-#define DST_LAST_PEL 0x20
-#define DST_POLYGON_ENABLE 0x40
-#define DST_24_ROTATION_ENABLE 0x80
-
-/* SRC_CNTL register constants */
-#define SRC_PATTERN_ENABLE 1
-#define SRC_ROTATION_ENABLE 2
-#define SRC_LINEAR_ENABLE 4
-#define SRC_BYTE_ALIGN 8
-#define SRC_LINE_X_RIGHT_TO_LEFT 0
-#define SRC_LINE_X_LEFT_TO_RIGHT 0x10
-
-/* HOST_CNTL register constants */
-#define HOST_BYTE_ALIGN 1
-
-/* GUI_TRAJ_CNTL register constants */
-#define PAT_MONO_8x8_ENABLE 0x01000000
-#define PAT_CLR_4x2_ENABLE 0x02000000
-#define PAT_CLR_8x1_ENABLE 0x04000000
-
-/* DP_CHAIN_MASK register constants */
-#define DP_CHAIN_4BPP 0x8888
-#define DP_CHAIN_7BPP 0xD2D2
-#define DP_CHAIN_8BPP 0x8080
-#define DP_CHAIN_8BPP_RGB 0x9292
-#define DP_CHAIN_15BPP 0x4210
-#define DP_CHAIN_16BPP 0x8410
-#define DP_CHAIN_24BPP 0x8080
-#define DP_CHAIN_32BPP 0x8080
-
-/* DP_PIX_WIDTH register constants */
-#define DST_1BPP 0x0
-#define DST_4BPP 0x1
-#define DST_8BPP 0x2
-#define DST_15BPP 0x3
-#define DST_16BPP 0x4
-#define DST_24BPP 0x5
-#define DST_32BPP 0x6
-#define DST_MASK 0xF
-#define SRC_1BPP 0x000
-#define SRC_4BPP 0x100
-#define SRC_8BPP 0x200
-#define SRC_15BPP 0x300
-#define SRC_16BPP 0x400
-#define SRC_24BPP 0x500
-#define SRC_32BPP 0x600
-#define SRC_MASK 0xF00
-#define DP_HOST_TRIPLE_EN 0x2000
-#define HOST_1BPP 0x00000
-#define HOST_4BPP 0x10000
-#define HOST_8BPP 0x20000
-#define HOST_15BPP 0x30000
-#define HOST_16BPP 0x40000
-#define HOST_24BPP 0x50000
-#define HOST_32BPP 0x60000
-#define HOST_MASK 0xF0000
-#define BYTE_ORDER_MSB_TO_LSB 0
-#define BYTE_ORDER_LSB_TO_MSB 0x1000000
-#define BYTE_ORDER_MASK 0x1000000
-
-/* DP_MIX register constants */
-#define BKGD_MIX_NOT_D 0
-#define BKGD_MIX_ZERO 1
-#define BKGD_MIX_ONE 2
-#define BKGD_MIX_D 3
-#define BKGD_MIX_NOT_S 4
-#define BKGD_MIX_D_XOR_S 5
-#define BKGD_MIX_NOT_D_XOR_S 6
-#define BKGD_MIX_S 7
-#define BKGD_MIX_NOT_D_OR_NOT_S 8
-#define BKGD_MIX_D_OR_NOT_S 9
-#define BKGD_MIX_NOT_D_OR_S 10
-#define BKGD_MIX_D_OR_S 11
-#define BKGD_MIX_D_AND_S 12
-#define BKGD_MIX_NOT_D_AND_S 13
-#define BKGD_MIX_D_AND_NOT_S 14
-#define BKGD_MIX_NOT_D_AND_NOT_S 15
-#define BKGD_MIX_D_PLUS_S_DIV2 0x17
-#define FRGD_MIX_NOT_D 0
-#define FRGD_MIX_ZERO 0x10000
-#define FRGD_MIX_ONE 0x20000
-#define FRGD_MIX_D 0x30000
-#define FRGD_MIX_NOT_S 0x40000
-#define FRGD_MIX_D_XOR_S 0x50000
-#define FRGD_MIX_NOT_D_XOR_S 0x60000
-#define FRGD_MIX_S 0x70000
-#define FRGD_MIX_NOT_D_OR_NOT_S 0x80000
-#define FRGD_MIX_D_OR_NOT_S 0x90000
-#define FRGD_MIX_NOT_D_OR_S 0xa0000
-#define FRGD_MIX_D_OR_S 0xb0000
-#define FRGD_MIX_D_AND_S 0xc0000
-#define FRGD_MIX_NOT_D_AND_S 0xd0000
-#define FRGD_MIX_D_AND_NOT_S 0xe0000
-#define FRGD_MIX_NOT_D_AND_NOT_S 0xf0000
-#define FRGD_MIX_D_PLUS_S_DIV2 0x170000
-
-/* DP_SRC register constants */
-#define BKGD_SRC_BKGD_CLR 0
-#define BKGD_SRC_FRGD_CLR 1
-#define BKGD_SRC_HOST 2
-#define BKGD_SRC_BLIT 3
-#define BKGD_SRC_PATTERN 4
-#define FRGD_SRC_BKGD_CLR 0
-#define FRGD_SRC_FRGD_CLR 0x100
-#define FRGD_SRC_HOST 0x200
-#define FRGD_SRC_BLIT 0x300
-#define FRGD_SRC_PATTERN 0x400
-#define MONO_SRC_ONE 0
-#define MONO_SRC_PATTERN 0x10000
-#define MONO_SRC_HOST 0x20000
-#define MONO_SRC_BLIT 0x30000
-
-/* CLR_CMP_CNTL register constants */
-#define COMPARE_FALSE 0
-#define COMPARE_TRUE 1
-#define COMPARE_NOT_EQUAL 4
-#define COMPARE_EQUAL 5
-#define COMPARE_DESTINATION 0
-#define COMPARE_SOURCE 0x1000000
-
-/* FIFO_STAT register constants */
-#define FIFO_ERR 0x80000000
-
-/* CONTEXT_LOAD_CNTL constants */
-#define CONTEXT_NO_LOAD 0
-#define CONTEXT_LOAD 0x10000
-#define CONTEXT_LOAD_AND_DO_FILL 0x20000
-#define CONTEXT_LOAD_AND_DO_LINE 0x30000
-#define CONTEXT_EXECUTE 0
-#define CONTEXT_CMD_DISABLE 0x80000000
-
-/* GUI_STAT register constants */
-#define ENGINE_IDLE 0
-#define ENGINE_BUSY 1
-#define SCISSOR_LEFT_FLAG 0x10
-#define SCISSOR_RIGHT_FLAG 0x20
-#define SCISSOR_TOP_FLAG 0x40
-#define SCISSOR_BOTTOM_FLAG 0x80
-
-/* ATI VGA Extended Regsiters */
-#define sioATIEXT 0x1ce
-#define bioATIEXT 0x3ce
-
-#define ATI2E 0xae
-#define ATI32 0xb2
-#define ATI36 0xb6
-
-/* VGA Graphics Controller Registers */
-#define R_GENMO 0x3cc
-#define VGAGRA 0x3ce
-#define GRA06 0x06
-
-/* VGA Seququencer Registers */
-#define VGASEQ 0x3c4
-#define SEQ02 0x02
-#define SEQ04 0x04
-
-#define MACH64_MAX_X ENGINE_MAX_X
-#define MACH64_MAX_Y ENGINE_MAX_Y
-
-#define INC_X 0x0020
-#define INC_Y 0x0080
-
-#define RGB16_555 0x0000
-#define RGB16_565 0x0040
-#define RGB16_655 0x0080
-#define RGB16_664 0x00c0
-
-#define POLY_TEXT_TYPE 0x0001
-#define IMAGE_TEXT_TYPE 0x0002
-#define TEXT_TYPE_8_BIT 0x0004
-#define TEXT_TYPE_16_BIT 0x0008
-#define POLY_TEXT_TYPE_8 (POLY_TEXT_TYPE | TEXT_TYPE_8_BIT)
-#define IMAGE_TEXT_TYPE_8 (IMAGE_TEXT_TYPE | TEXT_TYPE_8_BIT)
-#define POLY_TEXT_TYPE_16 (POLY_TEXT_TYPE | TEXT_TYPE_16_BIT)
-#define IMAGE_TEXT_TYPE_16 (IMAGE_TEXT_TYPE | TEXT_TYPE_16_BIT)
-
-#define MACH64_NUM_CLOCKS 16
-#define MACH64_NUM_FREQS 50
-
-/* Power Management register constants (LT & LT Pro) */
-#define PWR_MGT_ON 0x00000001
-#define PWR_MGT_MODE_MASK 0x00000006
-#define AUTO_PWR_UP 0x00000008
-#define USE_F32KHZ 0x00000400
-#define TRISTATE_MEM_EN 0x00000800
-#define SELF_REFRESH 0x00000080
-#define PWR_BLON 0x02000000
-#define STANDBY_NOW 0x10000000
-#define SUSPEND_NOW 0x20000000
-#define PWR_MGT_STATUS_MASK 0xC0000000
-#define PWR_MGT_STATUS_SUSPEND 0x80000000
-
-/* PM Mode constants */
-#define PWR_MGT_MODE_PIN 0x00000000
-#define PWR_MGT_MODE_REG 0x00000002
-#define PWR_MGT_MODE_TIMER 0x00000004
-#define PWR_MGT_MODE_PCI 0x00000006
-
-/* LCD registers (LT Pro) */
-
-/* LCD Index register */
-#define LCD_INDEX_MASK 0x0000003F
-#define LCD_DISPLAY_DIS 0x00000100
-#define LCD_SRC_SEL 0x00000200
-#define CRTC2_DISPLAY_DIS 0x00000400
-
-/* LCD register indices */
-#define CNFG_PANEL 0x00
-#define LCD_GEN_CNTL 0x01
-#define DSTN_CONTROL 0x02
-#define HFB_PITCH_ADDR 0x03
-#define HORZ_STRETCHING 0x04
-#define VERT_STRETCHING 0x05
-#define EXT_VERT_STRETCH 0x06
-#define LT_GIO 0x07
-#define POWER_MANAGEMENT 0x08
-#define ZVGPIO 0x09
-#define ICON_CLR0 0x0A
-#define ICON_CLR1 0x0B
-#define ICON_OFFSET 0x0C
-#define ICON_HORZ_VERT_POSN 0x0D
-#define ICON_HORZ_VERT_OFF 0x0E
-#define ICON2_CLR0 0x0F
-#define ICON2_CLR1 0x10
-#define ICON2_OFFSET 0x11
-#define ICON2_HORZ_VERT_POSN 0x12
-#define ICON2_HORZ_VERT_OFF 0x13
-#define LCD_MISC_CNTL 0x14
-#define APC_CNTL 0x1C
-#define POWER_MANAGEMENT_2 0x1D
-#define ALPHA_BLENDING 0x25
-#define PORTRAIT_GEN_CNTL 0x26
-#define APC_CTRL_IO 0x27
-#define TEST_IO 0x28
-#define TEST_OUTPUTS 0x29
-#define DP1_MEM_ACCESS 0x2A
-#define DP0_MEM_ACCESS 0x2B
-#define DP0_DEBUG_A 0x2C
-#define DP0_DEBUG_B 0x2D
-#define DP1_DEBUG_A 0x2E
-#define DP1_DEBUG_B 0x2F
-#define DPCTRL_DEBUG_A 0x30
-#define DPCTRL_DEBUG_B 0x31
-#define MEMBLK_DEBUG 0x32
-#define APC_LUT_AB 0x33
-#define APC_LUT_CD 0x34
-#define APC_LUT_EF 0x35
-#define APC_LUT_GH 0x36
-#define APC_LUT_IJ 0x37
-#define APC_LUT_KL 0x38
-#define APC_LUT_MN 0x39
-#define APC_LUT_OP 0x3A
-
-/* Values in LCD_GEN_CTRL */
-#define CRT_ON 0x00000001ul
-#define LCD_ON 0x00000002ul
-#define HORZ_DIVBY2_EN 0x00000004ul
-#define DONT_DS_ICON 0x00000008ul
-#define LOCK_8DOT 0x00000010ul
-#define ICON_ENABLE 0x00000020ul
-#define DONT_SHADOW_VPAR 0x00000040ul
-#define V2CLK_PM_EN 0x00000080ul
-#define RST_FM 0x00000100ul
-#define DISABLE_PCLK_RESET 0x00000200ul /* XC/XL */
-#define DIS_HOR_CRT_DIVBY2 0x00000400ul
-#define SCLK_SEL 0x00000800ul
-#define SCLK_DELAY 0x0000f000ul
-#define TVCLK_PM_EN 0x00010000ul
-#define VCLK_DAC_PM_EN 0x00020000ul
-#define VCLK_LCD_OFF 0x00040000ul
-#define SELECT_WAIT_4MS 0x00080000ul
-#define XTALIN_PM_EN 0x00080000ul /* XC/XL */
-#define V2CLK_DAC_PM_EN 0x00100000ul
-#define LVDS_EN 0x00200000ul
-#define LVDS_PLL_EN 0x00400000ul
-#define LVDS_PLL_RESET 0x00800000ul
-#define LVDS_RESERVED_BITS 0x07000000ul
-#define CRTC_RW_SELECT 0x08000000ul /* LTPro */
-#define USE_SHADOWED_VEND 0x10000000ul
-#define USE_SHADOWED_ROWCUR 0x20000000ul
-#define SHADOW_EN 0x40000000ul
-#define SHADOW_RW_EN 0x80000000ul
-
-#define LCD_SET_PRIMARY_MASK 0x07FFFBFBul
-
-/* Values in HORZ_STRETCHING */
-#define HORZ_STRETCH_BLEND 0x00000ffful
-#define HORZ_STRETCH_RATIO 0x0000fffful
-#define HORZ_STRETCH_LOOP 0x00070000ul
-#define HORZ_STRETCH_LOOP09 0x00000000ul
-#define HORZ_STRETCH_LOOP11 0x00010000ul
-#define HORZ_STRETCH_LOOP12 0x00020000ul
-#define HORZ_STRETCH_LOOP14 0x00030000ul
-#define HORZ_STRETCH_LOOP15 0x00040000ul
-/* ? 0x00050000ul */
-/* ? 0x00060000ul */
-/* ? 0x00070000ul */
-/* ? 0x00080000ul */
-#define HORZ_PANEL_SIZE 0x0ff00000ul /* XC/XL */
-/* ? 0x10000000ul */
-#define AUTO_HORZ_RATIO 0x20000000ul /* XC/XL */
-#define HORZ_STRETCH_MODE 0x40000000ul
-#define HORZ_STRETCH_EN 0x80000000ul
-
-/* Values in VERT_STRETCHING */
-#define VERT_STRETCH_RATIO0 0x000003fful
-#define VERT_STRETCH_RATIO1 0x000ffc00ul
-#define VERT_STRETCH_RATIO2 0x3ff00000ul
-#define VERT_STRETCH_USE0 0x40000000ul
-#define VERT_STRETCH_EN 0x80000000ul
-
-/* Values in EXT_VERT_STRETCH */
-#define VERT_STRETCH_RATIO3 0x000003fful
-#define FORCE_DAC_DATA 0x000000fful
-#define FORCE_DAC_DATA_SEL 0x00000300ul
-#define VERT_STRETCH_MODE 0x00000400ul
-#define VERT_PANEL_SIZE 0x003ff800ul
-#define AUTO_VERT_RATIO 0x00400000ul
-#define USE_AUTO_FP_POS 0x00800000ul
-#define USE_AUTO_LCD_VSYNC 0x01000000ul
-/* ? 0xfe000000ul */
-
-/* Values in LCD_MISC_CNTL */
-#define BIAS_MOD_LEVEL_MASK 0x0000ff00
-#define BIAS_MOD_LEVEL_SHIFT 8
-#define BLMOD_EN 0x00010000
-#define BIASMOD_EN 0x00020000
-
-#endif /* REGMACH64_H */
diff --git a/ANDROID_3.4.5/include/video/maxinefb.h b/ANDROID_3.4.5/include/video/maxinefb.h
deleted file mode 100644
index 6aeb4acc..00000000
--- a/ANDROID_3.4.5/include/video/maxinefb.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * linux/drivers/video/maxinefb.h
- *
- * DECstation 5000/xx onboard framebuffer support, Copyright (C) 1999 by
- * Michael Engel <engel@unix-ag.org> and Karsten Merker <merker@guug.de>
- * This file is subject to the terms and conditions of the GNU General
- * Public License. See the file COPYING in the main directory of this
- * archive for more details.
- */
-
-#include <asm/addrspace.h>
-
-/*
- * IMS332 video controller register base address
- */
-#define MAXINEFB_IMS332_ADDRESS KSEG1ADDR(0x1c140000)
-
-/*
- * Begin of DECstation 5000/xx onboard framebuffer memory, default resolution
- * is 1024x768x8
- */
-#define DS5000_xx_ONBOARD_FBMEM_START KSEG1ADDR(0x0a000000)
-
-/*
- * The IMS 332 video controller used in the DECstation 5000/xx series
- * uses 32 bits wide registers; the following defines declare the
- * register numbers, to get the real offset, these have to be multiplied
- * by four.
- */
-
-#define IMS332_REG_CURSOR_RAM 0x200 /* hardware cursor bitmap */
-
-/*
- * The color palette entries have the form 0x00BBGGRR
- */
-#define IMS332_REG_COLOR_PALETTE 0x100 /* color palette, 256 entries */
-#define IMS332_REG_CURSOR_COLOR_PALETTE 0x0a1 /* cursor color palette, */
- /* 3 entries */
diff --git a/ANDROID_3.4.5/include/video/mbxfb.h b/ANDROID_3.4.5/include/video/mbxfb.h
deleted file mode 100644
index ea18961f..00000000
--- a/ANDROID_3.4.5/include/video/mbxfb.h
+++ /dev/null
@@ -1,98 +0,0 @@
-#ifndef __MBX_FB_H
-#define __MBX_FB_H
-
-#include <asm/ioctl.h>
-#include <asm/types.h>
-
-struct mbxfb_val {
- unsigned int defval;
- unsigned int min;
- unsigned int max;
-};
-
-struct fb_info;
-
-struct mbxfb_platform_data {
- /* Screen info */
- struct mbxfb_val xres;
- struct mbxfb_val yres;
- struct mbxfb_val bpp;
-
- /* Memory info */
- unsigned long memsize; /* if 0 use ODFB? */
- unsigned long timings1;
- unsigned long timings2;
- unsigned long timings3;
-
- int (*probe)(struct fb_info *fb);
- int (*remove)(struct fb_info *fb);
-};
-
-/* planar */
-#define MBXFB_FMT_YUV16 0
-#define MBXFB_FMT_YUV12 1
-
-/* packed */
-#define MBXFB_FMT_UY0VY1 2
-#define MBXFB_FMT_VY0UY1 3
-#define MBXFB_FMT_Y0UY1V 4
-#define MBXFB_FMT_Y0VY1U 5
-struct mbxfb_overlaySetup {
- __u32 enable;
- __u32 x, y;
- __u32 width, height;
- __u32 fmt;
- __u32 mem_offset;
- __u32 scaled_width;
- __u32 scaled_height;
-
- /* Filled by the driver */
- __u32 U_offset;
- __u32 V_offset;
-
- __u16 Y_stride;
- __u16 UV_stride;
-};
-
-#define MBXFB_ALPHABLEND_NONE 0
-#define MBXFB_ALPHABLEND_GLOBAL 1
-#define MBXFB_ALPHABLEND_PIXEL 2
-
-#define MBXFB_COLORKEY_DISABLED 0
-#define MBXFB_COLORKEY_PREVIOUS 1
-#define MBXFB_COLORKEY_CURRENT 2
-struct mbxfb_alphaCtl {
- __u8 overlay_blend_mode;
- __u8 overlay_colorkey_mode;
- __u8 overlay_global_alpha;
- __u32 overlay_colorkey;
- __u32 overlay_colorkey_mask;
-
- __u8 graphics_blend_mode;
- __u8 graphics_colorkey_mode;
- __u8 graphics_global_alpha;
- __u32 graphics_colorkey;
- __u32 graphics_colorkey_mask;
-};
-
-#define MBXFB_PLANE_GRAPHICS 0
-#define MBXFB_PLANE_VIDEO 1
-struct mbxfb_planeorder {
- __u8 bottom;
- __u8 top;
-};
-
-struct mbxfb_reg {
- __u32 addr; /* offset from 0x03fe 0000 */
- __u32 val; /* value */
- __u32 mask; /* which bits to touch (for write) */
-};
-
-#define MBXFB_IOCX_OVERLAY _IOWR(0xF4, 0x00,struct mbxfb_overlaySetup)
-#define MBXFB_IOCG_ALPHA _IOR(0xF4, 0x01,struct mbxfb_alphaCtl)
-#define MBXFB_IOCS_ALPHA _IOW(0xF4, 0x02,struct mbxfb_alphaCtl)
-#define MBXFB_IOCS_PLANEORDER _IOR(0xF4, 0x03,struct mbxfb_planeorder)
-#define MBXFB_IOCS_REG _IOW(0xF4, 0x04,struct mbxfb_reg)
-#define MBXFB_IOCX_REG _IOWR(0xF4, 0x05,struct mbxfb_reg)
-
-#endif /* __MBX_FB_H */
diff --git a/ANDROID_3.4.5/include/video/metronomefb.h b/ANDROID_3.4.5/include/video/metronomefb.h
deleted file mode 100644
index 9863f4b6..00000000
--- a/ANDROID_3.4.5/include/video/metronomefb.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * metronomefb.h - definitions for the metronome framebuffer driver
- *
- * Copyright (C) 2008 by Jaya Kumar
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file COPYING in the main directory of this archive for
- * more details.
- *
- */
-
-#ifndef _LINUX_METRONOMEFB_H_
-#define _LINUX_METRONOMEFB_H_
-
-/* command structure used by metronome controller */
-struct metromem_cmd {
- u16 opcode;
- u16 args[((64-2)/2)];
- u16 csum;
-};
-
-/* struct used by metronome. board specific stuff comes from *board */
-struct metronomefb_par {
- struct metromem_cmd *metromem_cmd;
- unsigned char *metromem_wfm;
- unsigned char *metromem_img;
- u16 *metromem_img_csum;
- u16 *csum_table;
- dma_addr_t metromem_dma;
- struct fb_info *info;
- struct metronome_board *board;
- wait_queue_head_t waitq;
- u8 frame_count;
- int extra_size;
- int dt;
-};
-
-/* board specific routines and data */
-struct metronome_board {
- struct module *owner; /* the platform device */
- void (*set_rst)(struct metronomefb_par *, int);
- void (*set_stdby)(struct metronomefb_par *, int);
- void (*cleanup)(struct metronomefb_par *);
- int (*met_wait_event)(struct metronomefb_par *);
- int (*met_wait_event_intr)(struct metronomefb_par *);
- int (*setup_irq)(struct fb_info *);
- int (*setup_fb)(struct metronomefb_par *);
- int (*setup_io)(struct metronomefb_par *);
- int (*get_panel_type)(void);
- unsigned char *metromem;
- int fw;
- int fh;
- int wfm_size;
- struct fb_info *host_fbinfo; /* the host LCD controller's fbi */
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/video/mipi_display.h b/ANDROID_3.4.5/include/video/mipi_display.h
deleted file mode 100644
index ddcc8ca7..00000000
--- a/ANDROID_3.4.5/include/video/mipi_display.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Defines for Mobile Industry Processor Interface (MIPI(R))
- * Display Working Group standards: DSI, DCS, DBI, DPI
- *
- * Copyright (C) 2010 Guennadi Liakhovetski <g.liakhovetski@gmx.de>
- * Copyright (C) 2006 Nokia Corporation
- * Author: Imre Deak <imre.deak@nokia.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.
- */
-#ifndef MIPI_DISPLAY_H
-#define MIPI_DISPLAY_H
-
-/* MIPI DSI Processor-to-Peripheral transaction types */
-enum {
- MIPI_DSI_V_SYNC_START = 0x01,
- MIPI_DSI_V_SYNC_END = 0x11,
- MIPI_DSI_H_SYNC_START = 0x21,
- MIPI_DSI_H_SYNC_END = 0x31,
-
- MIPI_DSI_COLOR_MODE_OFF = 0x02,
- MIPI_DSI_COLOR_MODE_ON = 0x12,
- MIPI_DSI_SHUTDOWN_PERIPHERAL = 0x22,
- MIPI_DSI_TURN_ON_PERIPHERAL = 0x32,
-
- MIPI_DSI_GENERIC_SHORT_WRITE_0_PARAM = 0x03,
- MIPI_DSI_GENERIC_SHORT_WRITE_1_PARAM = 0x13,
- MIPI_DSI_GENERIC_SHORT_WRITE_2_PARAM = 0x23,
-
- MIPI_DSI_GENERIC_READ_REQUEST_0_PARAM = 0x04,
- MIPI_DSI_GENERIC_READ_REQUEST_1_PARAM = 0x14,
- MIPI_DSI_GENERIC_READ_REQUEST_2_PARAM = 0x24,
-
- MIPI_DSI_DCS_SHORT_WRITE = 0x05,
- MIPI_DSI_DCS_SHORT_WRITE_PARAM = 0x15,
-
- MIPI_DSI_DCS_READ = 0x06,
-
- MIPI_DSI_SET_MAXIMUM_RETURN_PACKET_SIZE = 0x37,
-
- MIPI_DSI_END_OF_TRANSMISSION = 0x08,
-
- MIPI_DSI_NULL_PACKET = 0x09,
- MIPI_DSI_BLANKING_PACKET = 0x19,
- MIPI_DSI_GENERIC_LONG_WRITE = 0x29,
- MIPI_DSI_DCS_LONG_WRITE = 0x39,
-
- MIPI_DSI_LOOSELY_PACKED_PIXEL_STREAM_YCBCR20 = 0x0c,
- MIPI_DSI_PACKED_PIXEL_STREAM_YCBCR24 = 0x1c,
- MIPI_DSI_PACKED_PIXEL_STREAM_YCBCR16 = 0x2c,
-
- MIPI_DSI_PACKED_PIXEL_STREAM_30 = 0x0d,
- MIPI_DSI_PACKED_PIXEL_STREAM_36 = 0x1d,
- MIPI_DSI_PACKED_PIXEL_STREAM_YCBCR12 = 0x3d,
-
- MIPI_DSI_PACKED_PIXEL_STREAM_16 = 0x0e,
- MIPI_DSI_PACKED_PIXEL_STREAM_18 = 0x1e,
- MIPI_DSI_PIXEL_STREAM_3BYTE_18 = 0x2e,
- MIPI_DSI_PACKED_PIXEL_STREAM_24 = 0x3e,
-};
-
-/* MIPI DSI Peripheral-to-Processor transaction types */
-enum {
- MIPI_DSI_RX_ACKNOWLEDGE_AND_ERROR_REPORT = 0x02,
- MIPI_DSI_RX_END_OF_TRANSMISSION = 0x08,
- MIPI_DSI_RX_GENERIC_SHORT_READ_RESPONSE_1BYTE = 0x11,
- MIPI_DSI_RX_GENERIC_SHORT_READ_RESPONSE_2BYTE = 0x12,
- MIPI_DSI_RX_GENERIC_LONG_READ_RESPONSE = 0x1a,
- MIPI_DSI_RX_DCS_LONG_READ_RESPONSE = 0x1c,
- MIPI_DSI_RX_DCS_SHORT_READ_RESPONSE_1BYTE = 0x21,
- MIPI_DSI_RX_DCS_SHORT_READ_RESPONSE_2BYTE = 0x22,
-};
-
-/* MIPI DCS commands */
-enum {
- MIPI_DCS_NOP = 0x00,
- MIPI_DCS_SOFT_RESET = 0x01,
- MIPI_DCS_GET_DISPLAY_ID = 0x04,
- MIPI_DCS_GET_RED_CHANNEL = 0x06,
- MIPI_DCS_GET_GREEN_CHANNEL = 0x07,
- MIPI_DCS_GET_BLUE_CHANNEL = 0x08,
- MIPI_DCS_GET_DISPLAY_STATUS = 0x09,
- MIPI_DCS_GET_POWER_MODE = 0x0A,
- MIPI_DCS_GET_ADDRESS_MODE = 0x0B,
- MIPI_DCS_GET_PIXEL_FORMAT = 0x0C,
- MIPI_DCS_GET_DISPLAY_MODE = 0x0D,
- MIPI_DCS_GET_SIGNAL_MODE = 0x0E,
- MIPI_DCS_GET_DIAGNOSTIC_RESULT = 0x0F,
- MIPI_DCS_ENTER_SLEEP_MODE = 0x10,
- MIPI_DCS_EXIT_SLEEP_MODE = 0x11,
- MIPI_DCS_ENTER_PARTIAL_MODE = 0x12,
- MIPI_DCS_ENTER_NORMAL_MODE = 0x13,
- MIPI_DCS_EXIT_INVERT_MODE = 0x20,
- MIPI_DCS_ENTER_INVERT_MODE = 0x21,
- MIPI_DCS_SET_GAMMA_CURVE = 0x26,
- MIPI_DCS_SET_DISPLAY_OFF = 0x28,
- MIPI_DCS_SET_DISPLAY_ON = 0x29,
- MIPI_DCS_SET_COLUMN_ADDRESS = 0x2A,
- MIPI_DCS_SET_PAGE_ADDRESS = 0x2B,
- MIPI_DCS_WRITE_MEMORY_START = 0x2C,
- MIPI_DCS_WRITE_LUT = 0x2D,
- MIPI_DCS_READ_MEMORY_START = 0x2E,
- MIPI_DCS_SET_PARTIAL_AREA = 0x30,
- MIPI_DCS_SET_SCROLL_AREA = 0x33,
- MIPI_DCS_SET_TEAR_OFF = 0x34,
- MIPI_DCS_SET_TEAR_ON = 0x35,
- MIPI_DCS_SET_ADDRESS_MODE = 0x36,
- MIPI_DCS_SET_SCROLL_START = 0x37,
- MIPI_DCS_EXIT_IDLE_MODE = 0x38,
- MIPI_DCS_ENTER_IDLE_MODE = 0x39,
- MIPI_DCS_SET_PIXEL_FORMAT = 0x3A,
- MIPI_DCS_WRITE_MEMORY_CONTINUE = 0x3C,
- MIPI_DCS_READ_MEMORY_CONTINUE = 0x3E,
- MIPI_DCS_SET_TEAR_SCANLINE = 0x44,
- MIPI_DCS_GET_SCANLINE = 0x45,
- MIPI_DCS_READ_DDB_START = 0xA1,
- MIPI_DCS_READ_DDB_CONTINUE = 0xA8,
-};
-
-/* MIPI DCS pixel formats */
-#define MIPI_DCS_PIXEL_FMT_24BIT 7
-#define MIPI_DCS_PIXEL_FMT_18BIT 6
-#define MIPI_DCS_PIXEL_FMT_16BIT 5
-#define MIPI_DCS_PIXEL_FMT_12BIT 3
-#define MIPI_DCS_PIXEL_FMT_8BIT 2
-#define MIPI_DCS_PIXEL_FMT_3BIT 1
-
-#endif
diff --git a/ANDROID_3.4.5/include/video/neomagic.h b/ANDROID_3.4.5/include/video/neomagic.h
deleted file mode 100644
index bc5013e8..00000000
--- a/ANDROID_3.4.5/include/video/neomagic.h
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- * linux/include/video/neo_reg.h -- NeoMagic Framebuffer Driver
- *
- * Copyright (c) 2001 Denis Oliver Kropp <dok@convergence.de>
- *
- * This file is subject to the terms and conditions of the GNU General
- * Public License. See the file COPYING in the main directory of this
- * archive for more details.
- */
-
-#define NEO_BS0_BLT_BUSY 0x00000001
-#define NEO_BS0_FIFO_AVAIL 0x00000002
-#define NEO_BS0_FIFO_PEND 0x00000004
-
-#define NEO_BC0_DST_Y_DEC 0x00000001
-#define NEO_BC0_X_DEC 0x00000002
-#define NEO_BC0_SRC_TRANS 0x00000004
-#define NEO_BC0_SRC_IS_FG 0x00000008
-#define NEO_BC0_SRC_Y_DEC 0x00000010
-#define NEO_BC0_FILL_PAT 0x00000020
-#define NEO_BC0_SRC_MONO 0x00000040
-#define NEO_BC0_SYS_TO_VID 0x00000080
-
-#define NEO_BC1_DEPTH8 0x00000100
-#define NEO_BC1_DEPTH16 0x00000200
-#define NEO_BC1_X_320 0x00000400
-#define NEO_BC1_X_640 0x00000800
-#define NEO_BC1_X_800 0x00000c00
-#define NEO_BC1_X_1024 0x00001000
-#define NEO_BC1_X_1152 0x00001400
-#define NEO_BC1_X_1280 0x00001800
-#define NEO_BC1_X_1600 0x00001c00
-#define NEO_BC1_DST_TRANS 0x00002000
-#define NEO_BC1_MSTR_BLT 0x00004000
-#define NEO_BC1_FILTER_Z 0x00008000
-
-#define NEO_BC2_WR_TR_DST 0x00800000
-
-#define NEO_BC3_SRC_XY_ADDR 0x01000000
-#define NEO_BC3_DST_XY_ADDR 0x02000000
-#define NEO_BC3_CLIP_ON 0x04000000
-#define NEO_BC3_FIFO_EN 0x08000000
-#define NEO_BC3_BLT_ON_ADDR 0x10000000
-#define NEO_BC3_SKIP_MAPPING 0x80000000
-
-#define NEO_MODE1_DEPTH8 0x0100
-#define NEO_MODE1_DEPTH16 0x0200
-#define NEO_MODE1_DEPTH24 0x0300
-#define NEO_MODE1_X_320 0x0400
-#define NEO_MODE1_X_640 0x0800
-#define NEO_MODE1_X_800 0x0c00
-#define NEO_MODE1_X_1024 0x1000
-#define NEO_MODE1_X_1152 0x1400
-#define NEO_MODE1_X_1280 0x1800
-#define NEO_MODE1_X_1600 0x1c00
-#define NEO_MODE1_BLT_ON_ADDR 0x2000
-
-/* These are offseted in MMIO space by par->CursorOff */
-#define NEOREG_CURSCNTL 0x00
-#define NEOREG_CURSX 0x04
-#define NEOREG_CURSY 0x08
-#define NEOREG_CURSBGCOLOR 0x0C
-#define NEOREG_CURSFGCOLOR 0x10
-#define NEOREG_CURSMEMPOS 0x14
-
-#define NEO_CURS_DISABLE 0x00000000
-#define NEO_CURS_ENABLE 0x00000001
-#define NEO_ICON64_ENABLE 0x00000008
-#define NEO_ICON128_ENABLE 0x0000000C
-#define NEO_ICON_BLANK 0x00000010
-
-#define NEO_GR01_SUPPRESS_VSYNC 0x10
-#define NEO_GR01_SUPPRESS_HSYNC 0x20
-
-#ifdef __KERNEL__
-
-#ifdef NEOFB_DEBUG
-# define DBG(x) printk (KERN_DEBUG "neofb: %s\n", (x));
-#else
-# define DBG(x)
-#endif
-
-#define PCI_CHIP_NM2070 0x0001
-#define PCI_CHIP_NM2090 0x0002
-#define PCI_CHIP_NM2093 0x0003
-#define PCI_CHIP_NM2097 0x0083
-#define PCI_CHIP_NM2160 0x0004
-#define PCI_CHIP_NM2200 0x0005
-#define PCI_CHIP_NM2230 0x0025
-#define PCI_CHIP_NM2360 0x0006
-#define PCI_CHIP_NM2380 0x0016
-
-/* --------------------------------------------------------------------- */
-
-typedef volatile struct {
- __u32 bltStat;
- __u32 bltCntl;
- __u32 xpColor;
- __u32 fgColor;
- __u32 bgColor;
- __u32 pitch;
- __u32 clipLT;
- __u32 clipRB;
- __u32 srcBitOffset;
- __u32 srcStart;
- __u32 reserved0;
- __u32 dstStart;
- __u32 xyExt;
-
- __u32 reserved1[19];
-
- __u32 pageCntl;
- __u32 pageBase;
- __u32 postBase;
- __u32 postPtr;
- __u32 dataPtr;
-} Neo2200;
-
-#define MMIO_SIZE 0x200000
-
-#define NEO_EXT_CR_MAX 0x85
-#define NEO_EXT_GR_MAX 0xC7
-
-struct neofb_par {
- struct vgastate state;
- unsigned int ref_count;
-
- unsigned char MiscOutReg; /* Misc */
- unsigned char CRTC[25]; /* Crtc Controller */
- unsigned char Sequencer[5]; /* Video Sequencer */
- unsigned char Graphics[9]; /* Video Graphics */
- unsigned char Attribute[21]; /* Video Attribute */
-
- unsigned char GeneralLockReg;
- unsigned char ExtCRTDispAddr;
- unsigned char ExtCRTOffset;
- unsigned char SysIfaceCntl1;
- unsigned char SysIfaceCntl2;
- unsigned char ExtColorModeSelect;
- unsigned char biosMode;
-
- unsigned char PanelDispCntlReg1;
- unsigned char PanelDispCntlReg2;
- unsigned char PanelDispCntlReg3;
- unsigned char PanelDispCntlRegRead;
- unsigned char PanelVertCenterReg1;
- unsigned char PanelVertCenterReg2;
- unsigned char PanelVertCenterReg3;
- unsigned char PanelVertCenterReg4;
- unsigned char PanelVertCenterReg5;
- unsigned char PanelHorizCenterReg1;
- unsigned char PanelHorizCenterReg2;
- unsigned char PanelHorizCenterReg3;
- unsigned char PanelHorizCenterReg4;
- unsigned char PanelHorizCenterReg5;
-
- int ProgramVCLK;
- unsigned char VCLK3NumeratorLow;
- unsigned char VCLK3NumeratorHigh;
- unsigned char VCLK3Denominator;
- unsigned char VerticalExt;
-
-#ifdef CONFIG_MTRR
- int mtrr;
-#endif
- u8 __iomem *mmio_vbase;
- u8 cursorOff;
- u8 *cursorPad; /* Must die !! */
-
- Neo2200 __iomem *neo2200;
-
- /* Panels size */
- int NeoPanelWidth;
- int NeoPanelHeight;
-
- int maxClock;
-
- int pci_burst;
- int lcd_stretch;
- int internal_display;
- int external_display;
- int libretto;
- u32 palette[16];
-};
-
-typedef struct {
- int x_res;
- int y_res;
- int mode;
-} biosMode;
-
-#endif
diff --git a/ANDROID_3.4.5/include/video/newport.h b/ANDROID_3.4.5/include/video/newport.h
deleted file mode 100644
index de980a3b..00000000
--- a/ANDROID_3.4.5/include/video/newport.h
+++ /dev/null
@@ -1,583 +0,0 @@
-/* $Id: newport.h,v 1.5 1999/08/04 06:01:51 ulfc Exp $
- *
- * newport.h: Defines and register layout for NEWPORT graphics
- * hardware.
- *
- * Copyright (C) 1996 David S. Miller (davem@davemloft.net)
- *
- * Ulf Carlsson - Compatibility with the IRIX structures added
- */
-
-#ifndef _SGI_NEWPORT_H
-#define _SGI_NEWPORT_H
-
-
-typedef volatile unsigned int npireg_t;
-
-union npfloat {
- volatile float flt;
- npireg_t word;
-};
-
-typedef union npfloat npfreg_t;
-
-union np_dcb {
- npireg_t byword;
- struct { volatile unsigned short s0, s1; } byshort;
- struct { volatile unsigned char b0, b1, b2, b3; } bybytes;
-};
-
-struct newport_rexregs {
- npireg_t drawmode1; /* GL extra mode bits */
-
-#define DM1_PLANES 0x00000007
-#define DM1_NOPLANES 0x00000000
-#define DM1_RGBPLANES 0x00000001
-#define DM1_RGBAPLANES 0x00000002
-#define DM1_OLAYPLANES 0x00000004
-#define DM1_PUPPLANES 0x00000005
-#define DM1_CIDPLANES 0x00000006
-
-#define NPORT_DMODE1_DDMASK 0x00000018
-#define NPORT_DMODE1_DD4 0x00000000
-#define NPORT_DMODE1_DD8 0x00000008
-#define NPORT_DMODE1_DD12 0x00000010
-#define NPORT_DMODE1_DD24 0x00000018
-#define NPORT_DMODE1_DSRC 0x00000020
-#define NPORT_DMODE1_YFLIP 0x00000040
-#define NPORT_DMODE1_RWPCKD 0x00000080
-#define NPORT_DMODE1_HDMASK 0x00000300
-#define NPORT_DMODE1_HD4 0x00000000
-#define NPORT_DMODE1_HD8 0x00000100
-#define NPORT_DMODE1_HD12 0x00000200
-#define NPORT_DMODE1_HD32 0x00000300
-#define NPORT_DMODE1_RWDBL 0x00000400
-#define NPORT_DMODE1_ESWAP 0x00000800 /* Endian swap */
-#define NPORT_DMODE1_CCMASK 0x00007000
-#define NPORT_DMODE1_CCLT 0x00001000
-#define NPORT_DMODE1_CCEQ 0x00002000
-#define NPORT_DMODE1_CCGT 0x00004000
-#define NPORT_DMODE1_RGBMD 0x00008000
-#define NPORT_DMODE1_DENAB 0x00010000 /* Dither enable */
-#define NPORT_DMODE1_FCLR 0x00020000 /* Fast clear */
-#define NPORT_DMODE1_BENAB 0x00040000 /* Blend enable */
-#define NPORT_DMODE1_SFMASK 0x00380000
-#define NPORT_DMODE1_SF0 0x00000000
-#define NPORT_DMODE1_SF1 0x00080000
-#define NPORT_DMODE1_SFDC 0x00100000
-#define NPORT_DMODE1_SFMDC 0x00180000
-#define NPORT_DMODE1_SFSA 0x00200000
-#define NPORT_DMODE1_SFMSA 0x00280000
-#define NPORT_DMODE1_DFMASK 0x01c00000
-#define NPORT_DMODE1_DF0 0x00000000
-#define NPORT_DMODE1_DF1 0x00400000
-#define NPORT_DMODE1_DFSC 0x00800000
-#define NPORT_DMODE1_DFMSC 0x00c00000
-#define NPORT_DMODE1_DFSA 0x01000000
-#define NPORT_DMODE1_DFMSA 0x01400000
-#define NPORT_DMODE1_BBENAB 0x02000000 /* Back blend enable */
-#define NPORT_DMODE1_PFENAB 0x04000000 /* Pre-fetch enable */
-#define NPORT_DMODE1_ABLEND 0x08000000 /* Alpha blend */
-#define NPORT_DMODE1_LOMASK 0xf0000000
-#define NPORT_DMODE1_LOZERO 0x00000000
-#define NPORT_DMODE1_LOAND 0x10000000
-#define NPORT_DMODE1_LOANDR 0x20000000
-#define NPORT_DMODE1_LOSRC 0x30000000
-#define NPORT_DMODE1_LOANDI 0x40000000
-#define NPORT_DMODE1_LODST 0x50000000
-#define NPORT_DMODE1_LOXOR 0x60000000
-#define NPORT_DMODE1_LOOR 0x70000000
-#define NPORT_DMODE1_LONOR 0x80000000
-#define NPORT_DMODE1_LOXNOR 0x90000000
-#define NPORT_DMODE1_LONDST 0xa0000000
-#define NPORT_DMODE1_LOORR 0xb0000000
-#define NPORT_DMODE1_LONSRC 0xc0000000
-#define NPORT_DMODE1_LOORI 0xd0000000
-#define NPORT_DMODE1_LONAND 0xe0000000
-#define NPORT_DMODE1_LOONE 0xf0000000
-
- npireg_t drawmode0; /* REX command register */
-
- /* These bits define the graphics opcode being performed. */
-#define NPORT_DMODE0_OPMASK 0x00000003 /* Opcode mask */
-#define NPORT_DMODE0_NOP 0x00000000 /* No operation */
-#define NPORT_DMODE0_RD 0x00000001 /* Read operation */
-#define NPORT_DMODE0_DRAW 0x00000002 /* Draw operation */
-#define NPORT_DMODE0_S2S 0x00000003 /* Screen to screen operation */
-
- /* The following decide what addressing mode(s) are to be used */
-#define NPORT_DMODE0_AMMASK 0x0000001c /* Address mode mask */
-#define NPORT_DMODE0_SPAN 0x00000000 /* Spanning address mode */
-#define NPORT_DMODE0_BLOCK 0x00000004 /* Block address mode */
-#define NPORT_DMODE0_ILINE 0x00000008 /* Iline address mode */
-#define NPORT_DMODE0_FLINE 0x0000000c /* Fline address mode */
-#define NPORT_DMODE0_ALINE 0x00000010 /* Aline address mode */
-#define NPORT_DMODE0_TLINE 0x00000014 /* Tline address mode */
-#define NPORT_DMODE0_BLINE 0x00000018 /* Bline address mode */
-
- /* And now some misc. operation control bits. */
-#define NPORT_DMODE0_DOSETUP 0x00000020
-#define NPORT_DMODE0_CHOST 0x00000040
-#define NPORT_DMODE0_AHOST 0x00000080
-#define NPORT_DMODE0_STOPX 0x00000100
-#define NPORT_DMODE0_STOPY 0x00000200
-#define NPORT_DMODE0_SK1ST 0x00000400
-#define NPORT_DMODE0_SKLST 0x00000800
-#define NPORT_DMODE0_ZPENAB 0x00001000
-#define NPORT_DMODE0_LISPENAB 0x00002000
-#define NPORT_DMODE0_LISLST 0x00004000
-#define NPORT_DMODE0_L32 0x00008000
-#define NPORT_DMODE0_ZOPQ 0x00010000
-#define NPORT_DMODE0_LISOPQ 0x00020000
-#define NPORT_DMODE0_SHADE 0x00040000
-#define NPORT_DMODE0_LRONLY 0x00080000
-#define NPORT_DMODE0_XYOFF 0x00100000
-#define NPORT_DMODE0_CLAMP 0x00200000
-#define NPORT_DMODE0_ENDPF 0x00400000
-#define NPORT_DMODE0_YSTR 0x00800000
-
- npireg_t lsmode; /* Mode for line stipple ops */
- npireg_t lspattern; /* Pattern for line stipple ops */
- npireg_t lspatsave; /* Backup save pattern */
- npireg_t zpattern; /* Pixel zpattern */
- npireg_t colorback; /* Background color */
- npireg_t colorvram; /* Clear color for fast vram */
- npireg_t alpharef; /* Reference value for afunctions */
- unsigned int pad0;
- npireg_t smask0x; /* Window GL relative screen mask 0 */
- npireg_t smask0y; /* Window GL relative screen mask 0 */
- npireg_t _setup;
- npireg_t _stepz;
- npireg_t _lsrestore;
- npireg_t _lssave;
-
- unsigned int _pad1[0x30];
-
- /* Iterators, full state for context switch */
- npfreg_t _xstart; /* X-start point (current) */
- npfreg_t _ystart; /* Y-start point (current) */
- npfreg_t _xend; /* x-end point */
- npfreg_t _yend; /* y-end point */
- npireg_t xsave; /* copy of xstart integer value for BLOCk addressing MODE */
- npireg_t xymove; /* x.y offset from xstart, ystart for relative operations */
- npfreg_t bresd;
- npfreg_t bress1;
- npireg_t bresoctinc1;
- volatile int bresrndinc2;
- npireg_t brese1;
- npireg_t bress2;
- npireg_t aweight0;
- npireg_t aweight1;
- npfreg_t xstartf;
- npfreg_t ystartf;
- npfreg_t xendf;
- npfreg_t yendf;
- npireg_t xstarti;
- npfreg_t xendf1;
- npireg_t xystarti;
- npireg_t xyendi;
- npireg_t xstartendi;
-
- unsigned int _unused2[0x29];
-
- npfreg_t colorred;
- npfreg_t coloralpha;
- npfreg_t colorgrn;
- npfreg_t colorblue;
- npfreg_t slopered;
- npfreg_t slopealpha;
- npfreg_t slopegrn;
- npfreg_t slopeblue;
- npireg_t wrmask;
- npireg_t colori;
- npfreg_t colorx;
- npfreg_t slopered1;
- npireg_t hostrw0;
- npireg_t hostrw1;
- npireg_t dcbmode;
-#define NPORT_DMODE_WMASK 0x00000003
-#define NPORT_DMODE_W4 0x00000000
-#define NPORT_DMODE_W1 0x00000001
-#define NPORT_DMODE_W2 0x00000002
-#define NPORT_DMODE_W3 0x00000003
-#define NPORT_DMODE_EDPACK 0x00000004
-#define NPORT_DMODE_ECINC 0x00000008
-#define NPORT_DMODE_CMASK 0x00000070
-#define NPORT_DMODE_AMASK 0x00000780
-#define NPORT_DMODE_AVC2 0x00000000
-#define NPORT_DMODE_ACMALL 0x00000080
-#define NPORT_DMODE_ACM0 0x00000100
-#define NPORT_DMODE_ACM1 0x00000180
-#define NPORT_DMODE_AXMALL 0x00000200
-#define NPORT_DMODE_AXM0 0x00000280
-#define NPORT_DMODE_AXM1 0x00000300
-#define NPORT_DMODE_ABT 0x00000380
-#define NPORT_DMODE_AVCC1 0x00000400
-#define NPORT_DMODE_AVAB1 0x00000480
-#define NPORT_DMODE_ALG3V0 0x00000500
-#define NPORT_DMODE_A1562 0x00000580
-#define NPORT_DMODE_ESACK 0x00000800
-#define NPORT_DMODE_EASACK 0x00001000
-#define NPORT_DMODE_CWMASK 0x0003e000
-#define NPORT_DMODE_CHMASK 0x007c0000
-#define NPORT_DMODE_CSMASK 0x0f800000
-#define NPORT_DMODE_SENDIAN 0x10000000
-
- unsigned int _unused3;
-
- union np_dcb dcbdata0;
- npireg_t dcbdata1;
-};
-
-struct newport_cregs {
- npireg_t smask1x;
- npireg_t smask1y;
- npireg_t smask2x;
- npireg_t smask2y;
- npireg_t smask3x;
- npireg_t smask3y;
- npireg_t smask4x;
- npireg_t smask4y;
- npireg_t topscan;
- npireg_t xywin;
- npireg_t clipmode;
-#define NPORT_CMODE_SM0 0x00000001
-#define NPORT_CMODE_SM1 0x00000002
-#define NPORT_CMODE_SM2 0x00000004
-#define NPORT_CMODE_SM3 0x00000008
-#define NPORT_CMODE_SM4 0x00000010
-#define NPORT_CMODE_CMSK 0x00001e00
-
- unsigned int _unused0;
- unsigned int config;
-#define NPORT_CFG_G32MD 0x00000001
-#define NPORT_CFG_BWIDTH 0x00000002
-#define NPORT_CFG_ERCVR 0x00000004
-#define NPORT_CFG_BDMSK 0x00000078
-#define NPORT_CFG_BFAINT 0x00000080
-#define NPORT_CFG_GDMSK 0x00001f80
-#define NPORT_CFG_GD0 0x00000100
-#define NPORT_CFG_GD1 0x00000200
-#define NPORT_CFG_GD2 0x00000400
-#define NPORT_CFG_GD3 0x00000800
-#define NPORT_CFG_GD4 0x00001000
-#define NPORT_CFG_GFAINT 0x00002000
-#define NPORT_CFG_TOMSK 0x0001c000
-#define NPORT_CFG_VRMSK 0x000e0000
-#define NPORT_CFG_FBTYP 0x00100000
-
- npireg_t _unused1;
- npireg_t status;
-#define NPORT_STAT_VERS 0x00000007
-#define NPORT_STAT_GBUSY 0x00000008
-#define NPORT_STAT_BBUSY 0x00000010
-#define NPORT_STAT_VRINT 0x00000020
-#define NPORT_STAT_VIDINT 0x00000040
-#define NPORT_STAT_GLMSK 0x00001f80
-#define NPORT_STAT_BLMSK 0x0007e000
-#define NPORT_STAT_BFIRQ 0x00080000
-#define NPORT_STAT_GFIRQ 0x00100000
-
- npireg_t ustatus;
- npireg_t dcbreset;
-};
-
-struct newport_regs {
- struct newport_rexregs set;
- unsigned int _unused0[0x16e];
- struct newport_rexregs go;
- unsigned int _unused1[0x22e];
- struct newport_cregs cset;
- unsigned int _unused2[0x1ef];
- struct newport_cregs cgo;
-};
-
-typedef struct {
- unsigned int drawmode1;
- unsigned int drawmode0;
- unsigned int lsmode;
- unsigned int lspattern;
- unsigned int lspatsave;
- unsigned int zpattern;
- unsigned int colorback;
- unsigned int colorvram;
- unsigned int alpharef;
- unsigned int smask0x;
- unsigned int smask0y;
- unsigned int _xstart;
- unsigned int _ystart;
- unsigned int _xend;
- unsigned int _yend;
- unsigned int xsave;
- unsigned int xymove;
- unsigned int bresd;
- unsigned int bress1;
- unsigned int bresoctinc1;
- unsigned int bresrndinc2;
- unsigned int brese1;
- unsigned int bress2;
-
- unsigned int aweight0;
- unsigned int aweight1;
- unsigned int colorred;
- unsigned int coloralpha;
- unsigned int colorgrn;
- unsigned int colorblue;
- unsigned int slopered;
- unsigned int slopealpha;
- unsigned int slopegrn;
- unsigned int slopeblue;
- unsigned int wrmask;
- unsigned int hostrw0;
- unsigned int hostrw1;
-
- /* configregs */
-
- unsigned int smask1x;
- unsigned int smask1y;
- unsigned int smask2x;
- unsigned int smask2y;
- unsigned int smask3x;
- unsigned int smask3y;
- unsigned int smask4x;
- unsigned int smask4y;
- unsigned int topscan;
- unsigned int xywin;
- unsigned int clipmode;
- unsigned int config;
-
- /* dcb registers */
- unsigned int dcbmode;
- unsigned int dcbdata0;
- unsigned int dcbdata1;
-} newport_ctx;
-
-/* Reading/writing VC2 registers. */
-#define VC2_REGADDR_INDEX 0x00000000
-#define VC2_REGADDR_IREG 0x00000010
-#define VC2_REGADDR_RAM 0x00000030
-#define VC2_PROTOCOL (NPORT_DMODE_EASACK | 0x00800000 | 0x00040000)
-
-#define VC2_VLINET_ADDR 0x000
-#define VC2_VFRAMET_ADDR 0x400
-#define VC2_CGLYPH_ADDR 0x500
-
-/* Now the Indexed registers of the VC2. */
-#define VC2_IREG_VENTRY 0x00
-#define VC2_IREG_CENTRY 0x01
-#define VC2_IREG_CURSX 0x02
-#define VC2_IREG_CURSY 0x03
-#define VC2_IREG_CCURSX 0x04
-#define VC2_IREG_DENTRY 0x05
-#define VC2_IREG_SLEN 0x06
-#define VC2_IREG_RADDR 0x07
-#define VC2_IREG_VFPTR 0x08
-#define VC2_IREG_VLSPTR 0x09
-#define VC2_IREG_VLIR 0x0a
-#define VC2_IREG_VLCTR 0x0b
-#define VC2_IREG_CTPTR 0x0c
-#define VC2_IREG_WCURSY 0x0d
-#define VC2_IREG_DFPTR 0x0e
-#define VC2_IREG_DLTPTR 0x0f
-#define VC2_IREG_CONTROL 0x10
-#define VC2_IREG_CONFIG 0x20
-
-static inline void newport_vc2_set(struct newport_regs *regs,
- unsigned char vc2ireg,
- unsigned short val)
-{
- regs->set.dcbmode = (NPORT_DMODE_AVC2 | VC2_REGADDR_INDEX | NPORT_DMODE_W3 |
- NPORT_DMODE_ECINC | VC2_PROTOCOL);
- regs->set.dcbdata0.byword = (vc2ireg << 24) | (val << 8);
-}
-
-static inline unsigned short newport_vc2_get(struct newport_regs *regs,
- unsigned char vc2ireg)
-{
- regs->set.dcbmode = (NPORT_DMODE_AVC2 | VC2_REGADDR_INDEX | NPORT_DMODE_W1 |
- NPORT_DMODE_ECINC | VC2_PROTOCOL);
- regs->set.dcbdata0.bybytes.b3 = vc2ireg;
- regs->set.dcbmode = (NPORT_DMODE_AVC2 | VC2_REGADDR_IREG | NPORT_DMODE_W2 |
- NPORT_DMODE_ECINC | VC2_PROTOCOL);
- return regs->set.dcbdata0.byshort.s1;
-}
-
-/* VC2 Control register bits */
-#define VC2_CTRL_EVIRQ 0x0001
-#define VC2_CTRL_EDISP 0x0002
-#define VC2_CTRL_EVIDEO 0x0004
-#define VC2_CTRL_EDIDS 0x0008
-#define VC2_CTRL_ECURS 0x0010
-#define VC2_CTRL_EGSYNC 0x0020
-#define VC2_CTRL_EILACE 0x0040
-#define VC2_CTRL_ECDISP 0x0080
-#define VC2_CTRL_ECCURS 0x0100
-#define VC2_CTRL_ECG64 0x0200
-#define VC2_CTRL_GLSEL 0x0400
-
-/* Controlling the color map on NEWPORT. */
-#define NCMAP_REGADDR_AREG 0x00000000
-#define NCMAP_REGADDR_ALO 0x00000000
-#define NCMAP_REGADDR_AHI 0x00000010
-#define NCMAP_REGADDR_PBUF 0x00000020
-#define NCMAP_REGADDR_CREG 0x00000030
-#define NCMAP_REGADDR_SREG 0x00000040
-#define NCMAP_REGADDR_RREG 0x00000060
-#define NCMAP_PROTOCOL (0x00008000 | 0x00040000 | 0x00800000)
-
-static __inline__ void newport_cmap_setaddr(struct newport_regs *regs,
- unsigned short addr)
-{
- regs->set.dcbmode = (NPORT_DMODE_ACMALL | NCMAP_PROTOCOL |
- NPORT_DMODE_SENDIAN | NPORT_DMODE_ECINC |
- NCMAP_REGADDR_AREG | NPORT_DMODE_W2);
- regs->set.dcbdata0.byshort.s1 = addr;
- regs->set.dcbmode = (NPORT_DMODE_ACMALL | NCMAP_PROTOCOL |
- NCMAP_REGADDR_PBUF | NPORT_DMODE_W3);
-}
-
-static __inline__ void newport_cmap_setrgb(struct newport_regs *regs,
- unsigned char red,
- unsigned char green,
- unsigned char blue)
-{
- regs->set.dcbdata0.byword =
- (red << 24) |
- (green << 16) |
- (blue << 8);
-}
-
-/* Miscellaneous NEWPORT routines. */
-#define BUSY_TIMEOUT 100000
-static __inline__ int newport_wait(struct newport_regs *regs)
-{
- int t = BUSY_TIMEOUT;
-
- while (--t)
- if (!(regs->cset.status & NPORT_STAT_GBUSY))
- break;
- return !t;
-}
-
-static __inline__ int newport_bfwait(struct newport_regs *regs)
-{
- int t = BUSY_TIMEOUT;
-
- while (--t)
- if(!(regs->cset.status & NPORT_STAT_BBUSY))
- break;
- return !t;
-}
-
-/*
- * DCBMODE register defines:
- */
-
-/* Width of the data being transferred for each DCBDATA[01] word */
-#define DCB_DATAWIDTH_4 0x0
-#define DCB_DATAWIDTH_1 0x1
-#define DCB_DATAWIDTH_2 0x2
-#define DCB_DATAWIDTH_3 0x3
-
-/* If set, all of DCBDATA will be moved, otherwise only DATAWIDTH bytes */
-#define DCB_ENDATAPACK (1 << 2)
-
-/* Enables DCBCRS auto increment after each DCB transfer */
-#define DCB_ENCRSINC (1 << 3)
-
-/* shift for accessing the control register select address (DBCCRS, 3 bits) */
-#define DCB_CRS_SHIFT 4
-
-/* DCBADDR (4 bits): display bus slave address */
-#define DCB_ADDR_SHIFT 7
-#define DCB_VC2 (0 << DCB_ADDR_SHIFT)
-#define DCB_CMAP_ALL (1 << DCB_ADDR_SHIFT)
-#define DCB_CMAP0 (2 << DCB_ADDR_SHIFT)
-#define DCB_CMAP1 (3 << DCB_ADDR_SHIFT)
-#define DCB_XMAP_ALL (4 << DCB_ADDR_SHIFT)
-#define DCB_XMAP0 (5 << DCB_ADDR_SHIFT)
-#define DCB_XMAP1 (6 << DCB_ADDR_SHIFT)
-#define DCB_BT445 (7 << DCB_ADDR_SHIFT)
-#define DCB_VCC1 (8 << DCB_ADDR_SHIFT)
-#define DCB_VAB1 (9 << DCB_ADDR_SHIFT)
-#define DCB_LG3_BDVERS0 (10 << DCB_ADDR_SHIFT)
-#define DCB_LG3_ICS1562 (11 << DCB_ADDR_SHIFT)
-#define DCB_RESERVED (15 << DCB_ADDR_SHIFT)
-
-/* DCB protocol ack types */
-#define DCB_ENSYNCACK (1 << 11)
-#define DCB_ENASYNCACK (1 << 12)
-
-#define DCB_CSWIDTH_SHIFT 13
-#define DCB_CSHOLD_SHIFT 18
-#define DCB_CSSETUP_SHIFT 23
-
-/* XMAP9 specific defines */
-/* XMAP9 -- registers as seen on the DCBMODE register*/
-# define XM9_CRS_CONFIG (0 << DCB_CRS_SHIFT)
-# define XM9_PUPMODE (1 << 0)
-# define XM9_ODD_PIXEL (1 << 1)
-# define XM9_8_BITPLANES (1 << 2)
-# define XM9_SLOW_DCB (1 << 3)
-# define XM9_VIDEO_RGBMAP_MASK (3 << 4)
-# define XM9_EXPRESS_VIDEO (1 << 6)
-# define XM9_VIDEO_OPTION (1 << 7)
-# define XM9_CRS_REVISION (1 << DCB_CRS_SHIFT)
-# define XM9_CRS_FIFO_AVAIL (2 << DCB_CRS_SHIFT)
-# define XM9_FIFO_0_AVAIL 0
-# define XM9_FIFO_1_AVAIL 1
-# define XM9_FIFO_2_AVAIL 3
-# define XM9_FIFO_3_AVAIL 2
-# define XM9_FIFO_FULL XM9_FIFO_0_AVAIL
-# define XM9_FIFO_EMPTY XM9_FIFO_3_AVAIL
-# define XM9_CRS_CURS_CMAP_MSB (3 << DCB_CRS_SHIFT)
-# define XM9_CRS_PUP_CMAP_MSB (4 << DCB_CRS_SHIFT)
-# define XM9_CRS_MODE_REG_DATA (5 << DCB_CRS_SHIFT)
-# define XM9_CRS_MODE_REG_INDEX (7 << DCB_CRS_SHIFT)
-
-
-#define DCB_CYCLES(setup,hold,width) \
- ((hold << DCB_CSHOLD_SHIFT) | \
- (setup << DCB_CSSETUP_SHIFT)| \
- (width << DCB_CSWIDTH_SHIFT))
-
-#define W_DCB_XMAP9_PROTOCOL DCB_CYCLES (2, 1, 0)
-#define WSLOW_DCB_XMAP9_PROTOCOL DCB_CYCLES (5, 5, 0)
-#define WAYSLOW_DCB_XMAP9_PROTOCOL DCB_CYCLES (12, 12, 0)
-#define R_DCB_XMAP9_PROTOCOL DCB_CYCLES (2, 1, 3)
-
-static __inline__ void
-xmap9FIFOWait (struct newport_regs *rex)
-{
- rex->set.dcbmode = DCB_XMAP0 | XM9_CRS_FIFO_AVAIL |
- DCB_DATAWIDTH_1 | R_DCB_XMAP9_PROTOCOL;
- newport_bfwait (rex);
-
- while ((rex->set.dcbdata0.bybytes.b3 & 3) != XM9_FIFO_EMPTY)
- ;
-}
-
-static __inline__ void
-xmap9SetModeReg (struct newport_regs *rex, unsigned int modereg, unsigned int data24, int cfreq)
-{
- if (cfreq > 119)
- rex->set.dcbmode = DCB_XMAP_ALL | XM9_CRS_MODE_REG_DATA |
- DCB_DATAWIDTH_4 | W_DCB_XMAP9_PROTOCOL;
- else if (cfreq > 59)
- rex->set.dcbmode = DCB_XMAP_ALL | XM9_CRS_MODE_REG_DATA |
- DCB_DATAWIDTH_4 | WSLOW_DCB_XMAP9_PROTOCOL;
- else
- rex->set.dcbmode = DCB_XMAP_ALL | XM9_CRS_MODE_REG_DATA |
- DCB_DATAWIDTH_4 | WAYSLOW_DCB_XMAP9_PROTOCOL;
- rex->set.dcbdata0.byword = ((modereg) << 24) | (data24 & 0xffffff);
-}
-
-#define BT445_PROTOCOL DCB_CYCLES(1,1,3)
-
-#define BT445_CSR_ADDR_REG (0 << DCB_CRS_SHIFT)
-#define BT445_CSR_REVISION (2 << DCB_CRS_SHIFT)
-
-#define BT445_REVISION_REG 0x01
-
-#endif /* !(_SGI_NEWPORT_H) */
-
diff --git a/ANDROID_3.4.5/include/video/omap-panel-dvi.h b/ANDROID_3.4.5/include/video/omap-panel-dvi.h
deleted file mode 100644
index 87ad567b..00000000
--- a/ANDROID_3.4.5/include/video/omap-panel-dvi.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Header for DVI output driver
- *
- * Copyright (C) 2011 Texas Instruments Inc
- * Author: Tomi Valkeinen <tomi.valkeinen@ti.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.
- *
- * 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, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef __OMAP_PANEL_DVI_H
-#define __OMAP_PANEL_DVI_H
-
-struct omap_dss_device;
-
-/**
- * struct panel_dvi_platform_data - panel driver configuration data
- * @platform_enable: platform specific panel enable function
- * @platform_disable: platform specific panel disable function
- * @i2c_bus_num: i2c bus id for the panel
- */
-struct panel_dvi_platform_data {
- int (*platform_enable)(struct omap_dss_device *dssdev);
- void (*platform_disable)(struct omap_dss_device *dssdev);
- u16 i2c_bus_num;
-};
-
-#endif /* __OMAP_PANEL_DVI_H */
diff --git a/ANDROID_3.4.5/include/video/omap-panel-generic-dpi.h b/ANDROID_3.4.5/include/video/omap-panel-generic-dpi.h
deleted file mode 100644
index 127e3f20..00000000
--- a/ANDROID_3.4.5/include/video/omap-panel-generic-dpi.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Header for generic DPI panel driver
- *
- * Copyright (C) 2010 Canonical Ltd.
- * Author: Bryan Wu <bryan.wu@canonical.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.
- *
- * 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, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef __OMAP_PANEL_GENERIC_DPI_H
-#define __OMAP_PANEL_GENERIC_DPI_H
-
-struct omap_dss_device;
-
-/**
- * struct panel_generic_dpi_data - panel driver configuration data
- * @name: panel name
- * @platform_enable: platform specific panel enable function
- * @platform_disable: platform specific panel disable function
- */
-struct panel_generic_dpi_data {
- const char *name;
- int (*platform_enable)(struct omap_dss_device *dssdev);
- void (*platform_disable)(struct omap_dss_device *dssdev);
-};
-
-#endif /* __OMAP_PANEL_GENERIC_DPI_H */
diff --git a/ANDROID_3.4.5/include/video/omap-panel-n8x0.h b/ANDROID_3.4.5/include/video/omap-panel-n8x0.h
deleted file mode 100644
index 50a1302e..00000000
--- a/ANDROID_3.4.5/include/video/omap-panel-n8x0.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef __OMAP_PANEL_N8X0_H
-#define __OMAP_PANEL_N8X0_H
-
-struct omap_dss_device;
-
-struct panel_n8x0_data {
- int (*platform_enable)(struct omap_dss_device *dssdev);
- void (*platform_disable)(struct omap_dss_device *dssdev);
- int panel_reset;
- int ctrl_pwrdown;
-
- int (*set_backlight)(struct omap_dss_device *dssdev, int level);
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/video/omap-panel-nokia-dsi.h b/ANDROID_3.4.5/include/video/omap-panel-nokia-dsi.h
deleted file mode 100644
index 7dc71f9c..00000000
--- a/ANDROID_3.4.5/include/video/omap-panel-nokia-dsi.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef __OMAP_NOKIA_DSI_PANEL_H
-#define __OMAP_NOKIA_DSI_PANEL_H
-
-struct omap_dss_device;
-
-/**
- * struct nokia_dsi_panel_data - Nokia DSI panel driver configuration
- * @name: panel name
- * @use_ext_te: use external TE
- * @ext_te_gpio: external TE GPIO
- * @esd_interval: interval of ESD checks, 0 = disabled (ms)
- * @ulps_timeout: time to wait before entering ULPS, 0 = disabled (ms)
- * @use_dsi_backlight: true if panel uses DSI command to control backlight
- */
-struct nokia_dsi_panel_data {
- const char *name;
-
- int reset_gpio;
-
- bool use_ext_te;
- int ext_te_gpio;
-
- unsigned esd_interval;
- unsigned ulps_timeout;
-
- bool use_dsi_backlight;
-};
-
-#endif /* __OMAP_NOKIA_DSI_PANEL_H */
diff --git a/ANDROID_3.4.5/include/video/omap-panel-picodlp.h b/ANDROID_3.4.5/include/video/omap-panel-picodlp.h
deleted file mode 100644
index 1c342ef6..00000000
--- a/ANDROID_3.4.5/include/video/omap-panel-picodlp.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * panel data for picodlp panel
- *
- * Copyright (C) 2011 Texas Instruments
- *
- * Author: Mayuresh Janorkar <mayur@ti.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.
- */
-#ifndef __PANEL_PICODLP_H
-#define __PANEL_PICODLP_H
-/**
- * struct : picodlp panel data
- * picodlp_adapter_id: i2c_adapter number for picodlp
- */
-struct picodlp_panel_data {
- int picodlp_adapter_id;
- int emu_done_gpio;
- int pwrgood_gpio;
-};
-#endif /* __PANEL_PICODLP_H */
diff --git a/ANDROID_3.4.5/include/video/omapdss.h b/ANDROID_3.4.5/include/video/omapdss.h
deleted file mode 100644
index 483f67ca..00000000
--- a/ANDROID_3.4.5/include/video/omapdss.h
+++ /dev/null
@@ -1,715 +0,0 @@
-/*
- * Copyright (C) 2008 Nokia Corporation
- * Author: Tomi Valkeinen <tomi.valkeinen@nokia.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.
- *
- * 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, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef __OMAP_OMAPDSS_H
-#define __OMAP_OMAPDSS_H
-
-#include <linux/list.h>
-#include <linux/kobject.h>
-#include <linux/device.h>
-
-#define DISPC_IRQ_FRAMEDONE (1 << 0)
-#define DISPC_IRQ_VSYNC (1 << 1)
-#define DISPC_IRQ_EVSYNC_EVEN (1 << 2)
-#define DISPC_IRQ_EVSYNC_ODD (1 << 3)
-#define DISPC_IRQ_ACBIAS_COUNT_STAT (1 << 4)
-#define DISPC_IRQ_PROG_LINE_NUM (1 << 5)
-#define DISPC_IRQ_GFX_FIFO_UNDERFLOW (1 << 6)
-#define DISPC_IRQ_GFX_END_WIN (1 << 7)
-#define DISPC_IRQ_PAL_GAMMA_MASK (1 << 8)
-#define DISPC_IRQ_OCP_ERR (1 << 9)
-#define DISPC_IRQ_VID1_FIFO_UNDERFLOW (1 << 10)
-#define DISPC_IRQ_VID1_END_WIN (1 << 11)
-#define DISPC_IRQ_VID2_FIFO_UNDERFLOW (1 << 12)
-#define DISPC_IRQ_VID2_END_WIN (1 << 13)
-#define DISPC_IRQ_SYNC_LOST (1 << 14)
-#define DISPC_IRQ_SYNC_LOST_DIGIT (1 << 15)
-#define DISPC_IRQ_WAKEUP (1 << 16)
-#define DISPC_IRQ_SYNC_LOST2 (1 << 17)
-#define DISPC_IRQ_VSYNC2 (1 << 18)
-#define DISPC_IRQ_VID3_END_WIN (1 << 19)
-#define DISPC_IRQ_VID3_FIFO_UNDERFLOW (1 << 20)
-#define DISPC_IRQ_ACBIAS_COUNT_STAT2 (1 << 21)
-#define DISPC_IRQ_FRAMEDONE2 (1 << 22)
-#define DISPC_IRQ_FRAMEDONEWB (1 << 23)
-#define DISPC_IRQ_FRAMEDONETV (1 << 24)
-#define DISPC_IRQ_WBBUFFEROVERFLOW (1 << 25)
-
-struct omap_dss_device;
-struct omap_overlay_manager;
-
-enum omap_display_type {
- OMAP_DISPLAY_TYPE_NONE = 0,
- OMAP_DISPLAY_TYPE_DPI = 1 << 0,
- OMAP_DISPLAY_TYPE_DBI = 1 << 1,
- OMAP_DISPLAY_TYPE_SDI = 1 << 2,
- OMAP_DISPLAY_TYPE_DSI = 1 << 3,
- OMAP_DISPLAY_TYPE_VENC = 1 << 4,
- OMAP_DISPLAY_TYPE_HDMI = 1 << 5,
-};
-
-enum omap_plane {
- OMAP_DSS_GFX = 0,
- OMAP_DSS_VIDEO1 = 1,
- OMAP_DSS_VIDEO2 = 2,
- OMAP_DSS_VIDEO3 = 3,
-};
-
-enum omap_channel {
- OMAP_DSS_CHANNEL_LCD = 0,
- OMAP_DSS_CHANNEL_DIGIT = 1,
- OMAP_DSS_CHANNEL_LCD2 = 2,
-};
-
-enum omap_color_mode {
- OMAP_DSS_COLOR_CLUT1 = 1 << 0, /* BITMAP 1 */
- OMAP_DSS_COLOR_CLUT2 = 1 << 1, /* BITMAP 2 */
- OMAP_DSS_COLOR_CLUT4 = 1 << 2, /* BITMAP 4 */
- OMAP_DSS_COLOR_CLUT8 = 1 << 3, /* BITMAP 8 */
- OMAP_DSS_COLOR_RGB12U = 1 << 4, /* RGB12, 16-bit container */
- OMAP_DSS_COLOR_ARGB16 = 1 << 5, /* ARGB16 */
- OMAP_DSS_COLOR_RGB16 = 1 << 6, /* RGB16 */
- OMAP_DSS_COLOR_RGB24U = 1 << 7, /* RGB24, 32-bit container */
- OMAP_DSS_COLOR_RGB24P = 1 << 8, /* RGB24, 24-bit container */
- OMAP_DSS_COLOR_YUV2 = 1 << 9, /* YUV2 4:2:2 co-sited */
- OMAP_DSS_COLOR_UYVY = 1 << 10, /* UYVY 4:2:2 co-sited */
- OMAP_DSS_COLOR_ARGB32 = 1 << 11, /* ARGB32 */
- OMAP_DSS_COLOR_RGBA32 = 1 << 12, /* RGBA32 */
- OMAP_DSS_COLOR_RGBX32 = 1 << 13, /* RGBx32 */
- OMAP_DSS_COLOR_NV12 = 1 << 14, /* NV12 format: YUV 4:2:0 */
- OMAP_DSS_COLOR_RGBA16 = 1 << 15, /* RGBA16 - 4444 */
- OMAP_DSS_COLOR_RGBX16 = 1 << 16, /* RGBx16 - 4444 */
- OMAP_DSS_COLOR_ARGB16_1555 = 1 << 17, /* ARGB16 - 1555 */
- OMAP_DSS_COLOR_XRGB16_1555 = 1 << 18, /* xRGB16 - 1555 */
-};
-
-enum omap_lcd_display_type {
- OMAP_DSS_LCD_DISPLAY_STN,
- OMAP_DSS_LCD_DISPLAY_TFT,
-};
-
-enum omap_dss_load_mode {
- OMAP_DSS_LOAD_CLUT_AND_FRAME = 0,
- OMAP_DSS_LOAD_CLUT_ONLY = 1,
- OMAP_DSS_LOAD_FRAME_ONLY = 2,
- OMAP_DSS_LOAD_CLUT_ONCE_FRAME = 3,
-};
-
-enum omap_dss_trans_key_type {
- OMAP_DSS_COLOR_KEY_GFX_DST = 0,
- OMAP_DSS_COLOR_KEY_VID_SRC = 1,
-};
-
-enum omap_rfbi_te_mode {
- OMAP_DSS_RFBI_TE_MODE_1 = 1,
- OMAP_DSS_RFBI_TE_MODE_2 = 2,
-};
-
-enum omap_panel_config {
- OMAP_DSS_LCD_IVS = 1<<0,
- OMAP_DSS_LCD_IHS = 1<<1,
- OMAP_DSS_LCD_IPC = 1<<2,
- OMAP_DSS_LCD_IEO = 1<<3,
- OMAP_DSS_LCD_RF = 1<<4,
- OMAP_DSS_LCD_ONOFF = 1<<5,
-
- OMAP_DSS_LCD_TFT = 1<<20,
-};
-
-enum omap_dss_venc_type {
- OMAP_DSS_VENC_TYPE_COMPOSITE,
- OMAP_DSS_VENC_TYPE_SVIDEO,
-};
-
-enum omap_dss_dsi_pixel_format {
- OMAP_DSS_DSI_FMT_RGB888,
- OMAP_DSS_DSI_FMT_RGB666,
- OMAP_DSS_DSI_FMT_RGB666_PACKED,
- OMAP_DSS_DSI_FMT_RGB565,
-};
-
-enum omap_dss_dsi_mode {
- OMAP_DSS_DSI_CMD_MODE = 0,
- OMAP_DSS_DSI_VIDEO_MODE,
-};
-
-enum omap_display_caps {
- OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE = 1 << 0,
- OMAP_DSS_DISPLAY_CAP_TEAR_ELIM = 1 << 1,
-};
-
-enum omap_dss_display_state {
- OMAP_DSS_DISPLAY_DISABLED = 0,
- OMAP_DSS_DISPLAY_ACTIVE,
- OMAP_DSS_DISPLAY_SUSPENDED,
-};
-
-/* XXX perhaps this should be removed */
-enum omap_dss_overlay_managers {
- OMAP_DSS_OVL_MGR_LCD,
- OMAP_DSS_OVL_MGR_TV,
- OMAP_DSS_OVL_MGR_LCD2,
-};
-
-enum omap_dss_rotation_type {
- OMAP_DSS_ROT_DMA = 0,
- OMAP_DSS_ROT_VRFB = 1,
-};
-
-/* clockwise rotation angle */
-enum omap_dss_rotation_angle {
- OMAP_DSS_ROT_0 = 0,
- OMAP_DSS_ROT_90 = 1,
- OMAP_DSS_ROT_180 = 2,
- OMAP_DSS_ROT_270 = 3,
-};
-
-enum omap_overlay_caps {
- OMAP_DSS_OVL_CAP_SCALE = 1 << 0,
- OMAP_DSS_OVL_CAP_GLOBAL_ALPHA = 1 << 1,
- OMAP_DSS_OVL_CAP_PRE_MULT_ALPHA = 1 << 2,
- OMAP_DSS_OVL_CAP_ZORDER = 1 << 3,
-};
-
-enum omap_overlay_manager_caps {
- OMAP_DSS_DUMMY_VALUE, /* add a dummy value to prevent compiler error */
-};
-
-enum omap_dss_clk_source {
- OMAP_DSS_CLK_SRC_FCK = 0, /* OMAP2/3: DSS1_ALWON_FCLK
- * OMAP4: DSS_FCLK */
- OMAP_DSS_CLK_SRC_DSI_PLL_HSDIV_DISPC, /* OMAP3: DSI1_PLL_FCLK
- * OMAP4: PLL1_CLK1 */
- OMAP_DSS_CLK_SRC_DSI_PLL_HSDIV_DSI, /* OMAP3: DSI2_PLL_FCLK
- * OMAP4: PLL1_CLK2 */
- OMAP_DSS_CLK_SRC_DSI2_PLL_HSDIV_DISPC, /* OMAP4: PLL2_CLK1 */
- OMAP_DSS_CLK_SRC_DSI2_PLL_HSDIV_DSI, /* OMAP4: PLL2_CLK2 */
-};
-
-enum omap_hdmi_flags {
- OMAP_HDMI_SDA_SCL_EXTERNAL_PULLUP = 1 << 0,
-};
-
-/* RFBI */
-
-struct rfbi_timings {
- int cs_on_time;
- int cs_off_time;
- int we_on_time;
- int we_off_time;
- int re_on_time;
- int re_off_time;
- int we_cycle_time;
- int re_cycle_time;
- int cs_pulse_width;
- int access_time;
-
- int clk_div;
-
- u32 tim[5]; /* set by rfbi_convert_timings() */
-
- int converted;
-};
-
-void omap_rfbi_write_command(const void *buf, u32 len);
-void omap_rfbi_read_data(void *buf, u32 len);
-void omap_rfbi_write_data(const void *buf, u32 len);
-void omap_rfbi_write_pixels(const void __iomem *buf, int scr_width,
- u16 x, u16 y,
- u16 w, u16 h);
-int omap_rfbi_enable_te(bool enable, unsigned line);
-int omap_rfbi_setup_te(enum omap_rfbi_te_mode mode,
- unsigned hs_pulse_time, unsigned vs_pulse_time,
- int hs_pol_inv, int vs_pol_inv, int extif_div);
-void rfbi_bus_lock(void);
-void rfbi_bus_unlock(void);
-
-/* DSI */
-
-struct omap_dss_dsi_videomode_data {
- /* DSI video mode blanking data */
- /* Unit: byte clock cycles */
- u16 hsa;
- u16 hfp;
- u16 hbp;
- /* Unit: line clocks */
- u16 vsa;
- u16 vfp;
- u16 vbp;
-
- /* DSI blanking modes */
- int blanking_mode;
- int hsa_blanking_mode;
- int hbp_blanking_mode;
- int hfp_blanking_mode;
-
- /* Video port sync events */
- int vp_de_pol;
- int vp_hsync_pol;
- int vp_vsync_pol;
- bool vp_vsync_end;
- bool vp_hsync_end;
-
- bool ddr_clk_always_on;
- int window_sync;
-};
-
-void dsi_bus_lock(struct omap_dss_device *dssdev);
-void dsi_bus_unlock(struct omap_dss_device *dssdev);
-int dsi_vc_dcs_write(struct omap_dss_device *dssdev, int channel, u8 *data,
- int len);
-int dsi_vc_generic_write(struct omap_dss_device *dssdev, int channel, u8 *data,
- int len);
-int dsi_vc_dcs_write_0(struct omap_dss_device *dssdev, int channel, u8 dcs_cmd);
-int dsi_vc_generic_write_0(struct omap_dss_device *dssdev, int channel);
-int dsi_vc_dcs_write_1(struct omap_dss_device *dssdev, int channel, u8 dcs_cmd,
- u8 param);
-int dsi_vc_generic_write_1(struct omap_dss_device *dssdev, int channel,
- u8 param);
-int dsi_vc_generic_write_2(struct omap_dss_device *dssdev, int channel,
- u8 param1, u8 param2);
-int dsi_vc_dcs_write_nosync(struct omap_dss_device *dssdev, int channel,
- u8 *data, int len);
-int dsi_vc_generic_write_nosync(struct omap_dss_device *dssdev, int channel,
- u8 *data, int len);
-int dsi_vc_dcs_read(struct omap_dss_device *dssdev, int channel, u8 dcs_cmd,
- u8 *buf, int buflen);
-int dsi_vc_generic_read_0(struct omap_dss_device *dssdev, int channel, u8 *buf,
- int buflen);
-int dsi_vc_generic_read_1(struct omap_dss_device *dssdev, int channel, u8 param,
- u8 *buf, int buflen);
-int dsi_vc_generic_read_2(struct omap_dss_device *dssdev, int channel,
- u8 param1, u8 param2, u8 *buf, int buflen);
-int dsi_vc_set_max_rx_packet_size(struct omap_dss_device *dssdev, int channel,
- u16 len);
-int dsi_vc_send_null(struct omap_dss_device *dssdev, int channel);
-int dsi_vc_send_bta_sync(struct omap_dss_device *dssdev, int channel);
-int dsi_enable_video_output(struct omap_dss_device *dssdev, int channel);
-void dsi_disable_video_output(struct omap_dss_device *dssdev, int channel);
-
-/* Board specific data */
-struct omap_dss_board_info {
- int (*get_context_loss_count)(struct device *dev);
- int num_devices;
- struct omap_dss_device **devices;
- struct omap_dss_device *default_device;
- int (*dsi_enable_pads)(int dsi_id, unsigned lane_mask);
- void (*dsi_disable_pads)(int dsi_id, unsigned lane_mask);
-};
-
-/* Init with the board info */
-extern int omap_display_init(struct omap_dss_board_info *board_data);
-/* HDMI mux init*/
-extern int omap_hdmi_init(enum omap_hdmi_flags flags);
-
-struct omap_display_platform_data {
- struct omap_dss_board_info *board_data;
- /* TODO: Additional members to be added when PM is considered */
-};
-
-struct omap_video_timings {
- /* Unit: pixels */
- u16 x_res;
- /* Unit: pixels */
- u16 y_res;
- /* Unit: KHz */
- u32 pixel_clock;
- /* Unit: pixel clocks */
- u16 hsw; /* Horizontal synchronization pulse width */
- /* Unit: pixel clocks */
- u16 hfp; /* Horizontal front porch */
- /* Unit: pixel clocks */
- u16 hbp; /* Horizontal back porch */
- /* Unit: line clocks */
- u16 vsw; /* Vertical synchronization pulse width */
- /* Unit: line clocks */
- u16 vfp; /* Vertical front porch */
- /* Unit: line clocks */
- u16 vbp; /* Vertical back porch */
-};
-
-#ifdef CONFIG_OMAP2_DSS_VENC
-/* Hardcoded timings for tv modes. Venc only uses these to
- * identify the mode, and does not actually use the configs
- * itself. However, the configs should be something that
- * a normal monitor can also show */
-extern const struct omap_video_timings omap_dss_pal_timings;
-extern const struct omap_video_timings omap_dss_ntsc_timings;
-#endif
-
-struct omap_dss_cpr_coefs {
- s16 rr, rg, rb;
- s16 gr, gg, gb;
- s16 br, bg, bb;
-};
-
-struct omap_overlay_info {
- u32 paddr;
- u32 p_uv_addr; /* for NV12 format */
- u16 screen_width;
- u16 width;
- u16 height;
- enum omap_color_mode color_mode;
- u8 rotation;
- enum omap_dss_rotation_type rotation_type;
- bool mirror;
-
- u16 pos_x;
- u16 pos_y;
- u16 out_width; /* if 0, out_width == width */
- u16 out_height; /* if 0, out_height == height */
- u8 global_alpha;
- u8 pre_mult_alpha;
- u8 zorder;
-};
-
-struct omap_overlay {
- struct kobject kobj;
- struct list_head list;
-
- /* static fields */
- const char *name;
- enum omap_plane id;
- enum omap_color_mode supported_modes;
- enum omap_overlay_caps caps;
-
- /* dynamic fields */
- struct omap_overlay_manager *manager;
-
- /*
- * The following functions do not block:
- *
- * is_enabled
- * set_overlay_info
- * get_overlay_info
- *
- * The rest of the functions may block and cannot be called from
- * interrupt context
- */
-
- int (*enable)(struct omap_overlay *ovl);
- int (*disable)(struct omap_overlay *ovl);
- bool (*is_enabled)(struct omap_overlay *ovl);
-
- int (*set_manager)(struct omap_overlay *ovl,
- struct omap_overlay_manager *mgr);
- int (*unset_manager)(struct omap_overlay *ovl);
-
- int (*set_overlay_info)(struct omap_overlay *ovl,
- struct omap_overlay_info *info);
- void (*get_overlay_info)(struct omap_overlay *ovl,
- struct omap_overlay_info *info);
-
- int (*wait_for_go)(struct omap_overlay *ovl);
-};
-
-struct omap_overlay_manager_info {
- u32 default_color;
-
- enum omap_dss_trans_key_type trans_key_type;
- u32 trans_key;
- bool trans_enabled;
-
- bool partial_alpha_enabled;
-
- bool cpr_enable;
- struct omap_dss_cpr_coefs cpr_coefs;
-};
-
-struct omap_overlay_manager {
- struct kobject kobj;
-
- /* static fields */
- const char *name;
- enum omap_channel id;
- enum omap_overlay_manager_caps caps;
- struct list_head overlays;
- enum omap_display_type supported_displays;
-
- /* dynamic fields */
- struct omap_dss_device *device;
-
- /*
- * The following functions do not block:
- *
- * set_manager_info
- * get_manager_info
- * apply
- *
- * The rest of the functions may block and cannot be called from
- * interrupt context
- */
-
- int (*set_device)(struct omap_overlay_manager *mgr,
- struct omap_dss_device *dssdev);
- int (*unset_device)(struct omap_overlay_manager *mgr);
-
- int (*set_manager_info)(struct omap_overlay_manager *mgr,
- struct omap_overlay_manager_info *info);
- void (*get_manager_info)(struct omap_overlay_manager *mgr,
- struct omap_overlay_manager_info *info);
-
- int (*apply)(struct omap_overlay_manager *mgr);
- int (*wait_for_go)(struct omap_overlay_manager *mgr);
- int (*wait_for_vsync)(struct omap_overlay_manager *mgr);
-};
-
-struct omap_dss_device {
- struct device dev;
-
- enum omap_display_type type;
-
- enum omap_channel channel;
-
- union {
- struct {
- u8 data_lines;
- } dpi;
-
- struct {
- u8 channel;
- u8 data_lines;
- } rfbi;
-
- struct {
- u8 datapairs;
- } sdi;
-
- struct {
- u8 clk_lane;
- u8 clk_pol;
- u8 data1_lane;
- u8 data1_pol;
- u8 data2_lane;
- u8 data2_pol;
- u8 data3_lane;
- u8 data3_pol;
- u8 data4_lane;
- u8 data4_pol;
-
- int module;
-
- bool ext_te;
- u8 ext_te_gpio;
- } dsi;
-
- struct {
- enum omap_dss_venc_type type;
- bool invert_polarity;
- } venc;
- } phy;
-
- struct {
- struct {
- struct {
- u16 lck_div;
- u16 pck_div;
- enum omap_dss_clk_source lcd_clk_src;
- } channel;
-
- enum omap_dss_clk_source dispc_fclk_src;
- } dispc;
-
- struct {
- /* regn is one greater than TRM's REGN value */
- u16 regn;
- u16 regm;
- u16 regm_dispc;
- u16 regm_dsi;
-
- u16 lp_clk_div;
- enum omap_dss_clk_source dsi_fclk_src;
- } dsi;
-
- struct {
- /* regn is one greater than TRM's REGN value */
- u16 regn;
- u16 regm2;
- } hdmi;
- } clocks;
-
- struct {
- struct omap_video_timings timings;
-
- int acbi; /* ac-bias pin transitions per interrupt */
- /* Unit: line clocks */
- int acb; /* ac-bias pin frequency */
-
- enum omap_panel_config config;
-
- enum omap_dss_dsi_pixel_format dsi_pix_fmt;
- enum omap_dss_dsi_mode dsi_mode;
- struct omap_dss_dsi_videomode_data dsi_vm_data;
- } panel;
-
- struct {
- u8 pixel_size;
- struct rfbi_timings rfbi_timings;
- } ctrl;
-
- int reset_gpio;
-
- int max_backlight_level;
-
- const char *name;
-
- /* used to match device to driver */
- const char *driver_name;
-
- void *data;
-
- struct omap_dss_driver *driver;
-
- /* helper variable for driver suspend/resume */
- bool activate_after_resume;
-
- enum omap_display_caps caps;
-
- struct omap_overlay_manager *manager;
-
- enum omap_dss_display_state state;
-
- /* platform specific */
- int (*platform_enable)(struct omap_dss_device *dssdev);
- void (*platform_disable)(struct omap_dss_device *dssdev);
- int (*set_backlight)(struct omap_dss_device *dssdev, int level);
- int (*get_backlight)(struct omap_dss_device *dssdev);
-};
-
-struct omap_dss_hdmi_data
-{
- int hpd_gpio;
-};
-
-struct omap_dss_driver {
- struct device_driver driver;
-
- int (*probe)(struct omap_dss_device *);
- void (*remove)(struct omap_dss_device *);
-
- int (*enable)(struct omap_dss_device *display);
- void (*disable)(struct omap_dss_device *display);
- int (*suspend)(struct omap_dss_device *display);
- int (*resume)(struct omap_dss_device *display);
- int (*run_test)(struct omap_dss_device *display, int test);
-
- int (*update)(struct omap_dss_device *dssdev,
- u16 x, u16 y, u16 w, u16 h);
- int (*sync)(struct omap_dss_device *dssdev);
-
- int (*enable_te)(struct omap_dss_device *dssdev, bool enable);
- int (*get_te)(struct omap_dss_device *dssdev);
-
- u8 (*get_rotate)(struct omap_dss_device *dssdev);
- int (*set_rotate)(struct omap_dss_device *dssdev, u8 rotate);
-
- bool (*get_mirror)(struct omap_dss_device *dssdev);
- int (*set_mirror)(struct omap_dss_device *dssdev, bool enable);
-
- int (*memory_read)(struct omap_dss_device *dssdev,
- void *buf, size_t size,
- u16 x, u16 y, u16 w, u16 h);
-
- void (*get_resolution)(struct omap_dss_device *dssdev,
- u16 *xres, u16 *yres);
- void (*get_dimensions)(struct omap_dss_device *dssdev,
- u32 *width, u32 *height);
- int (*get_recommended_bpp)(struct omap_dss_device *dssdev);
-
- int (*check_timings)(struct omap_dss_device *dssdev,
- struct omap_video_timings *timings);
- void (*set_timings)(struct omap_dss_device *dssdev,
- struct omap_video_timings *timings);
- void (*get_timings)(struct omap_dss_device *dssdev,
- struct omap_video_timings *timings);
-
- int (*set_wss)(struct omap_dss_device *dssdev, u32 wss);
- u32 (*get_wss)(struct omap_dss_device *dssdev);
-
- int (*read_edid)(struct omap_dss_device *dssdev, u8 *buf, int len);
- bool (*detect)(struct omap_dss_device *dssdev);
-};
-
-int omap_dss_register_driver(struct omap_dss_driver *);
-void omap_dss_unregister_driver(struct omap_dss_driver *);
-
-void omap_dss_get_device(struct omap_dss_device *dssdev);
-void omap_dss_put_device(struct omap_dss_device *dssdev);
-#define for_each_dss_dev(d) while ((d = omap_dss_get_next_device(d)) != NULL)
-struct omap_dss_device *omap_dss_get_next_device(struct omap_dss_device *from);
-struct omap_dss_device *omap_dss_find_device(void *data,
- int (*match)(struct omap_dss_device *dssdev, void *data));
-
-int omap_dss_start_device(struct omap_dss_device *dssdev);
-void omap_dss_stop_device(struct omap_dss_device *dssdev);
-
-int omap_dss_get_num_overlay_managers(void);
-struct omap_overlay_manager *omap_dss_get_overlay_manager(int num);
-
-int omap_dss_get_num_overlays(void);
-struct omap_overlay *omap_dss_get_overlay(int num);
-
-void omapdss_default_get_resolution(struct omap_dss_device *dssdev,
- u16 *xres, u16 *yres);
-int omapdss_default_get_recommended_bpp(struct omap_dss_device *dssdev);
-
-typedef void (*omap_dispc_isr_t) (void *arg, u32 mask);
-int omap_dispc_register_isr(omap_dispc_isr_t isr, void *arg, u32 mask);
-int omap_dispc_unregister_isr(omap_dispc_isr_t isr, void *arg, u32 mask);
-
-int omap_dispc_wait_for_irq_timeout(u32 irqmask, unsigned long timeout);
-int omap_dispc_wait_for_irq_interruptible_timeout(u32 irqmask,
- unsigned long timeout);
-
-#define to_dss_driver(x) container_of((x), struct omap_dss_driver, driver)
-#define to_dss_device(x) container_of((x), struct omap_dss_device, dev)
-
-void omapdss_dsi_vc_enable_hs(struct omap_dss_device *dssdev, int channel,
- bool enable);
-int omapdss_dsi_enable_te(struct omap_dss_device *dssdev, bool enable);
-
-int omap_dsi_update(struct omap_dss_device *dssdev, int channel,
- void (*callback)(int, void *), void *data);
-int omap_dsi_request_vc(struct omap_dss_device *dssdev, int *channel);
-int omap_dsi_set_vc_id(struct omap_dss_device *dssdev, int channel, int vc_id);
-void omap_dsi_release_vc(struct omap_dss_device *dssdev, int channel);
-
-int omapdss_dsi_display_enable(struct omap_dss_device *dssdev);
-void omapdss_dsi_display_disable(struct omap_dss_device *dssdev,
- bool disconnect_lanes, bool enter_ulps);
-
-int omapdss_dpi_display_enable(struct omap_dss_device *dssdev);
-void omapdss_dpi_display_disable(struct omap_dss_device *dssdev);
-void dpi_set_timings(struct omap_dss_device *dssdev,
- struct omap_video_timings *timings);
-int dpi_check_timings(struct omap_dss_device *dssdev,
- struct omap_video_timings *timings);
-
-int omapdss_sdi_display_enable(struct omap_dss_device *dssdev);
-void omapdss_sdi_display_disable(struct omap_dss_device *dssdev);
-
-int omapdss_rfbi_display_enable(struct omap_dss_device *dssdev);
-void omapdss_rfbi_display_disable(struct omap_dss_device *dssdev);
-int omap_rfbi_prepare_update(struct omap_dss_device *dssdev,
- u16 *x, u16 *y, u16 *w, u16 *h);
-int omap_rfbi_update(struct omap_dss_device *dssdev,
- u16 x, u16 y, u16 w, u16 h,
- void (*callback)(void *), void *data);
-int omap_rfbi_configure(struct omap_dss_device *dssdev, int pixel_size,
- int data_lines);
-
-#endif
diff --git a/ANDROID_3.4.5/include/video/permedia2.h b/ANDROID_3.4.5/include/video/permedia2.h
deleted file mode 100644
index 9ce9adbf..00000000
--- a/ANDROID_3.4.5/include/video/permedia2.h
+++ /dev/null
@@ -1,254 +0,0 @@
-/*
- * Permedia2 framebuffer driver definitions.
- * Copyright (c) 1998-2000 Ilario Nardinocchi (nardinoc@CS.UniBO.IT)
- * --------------------------------------------------------------------------
- * $Id: pm2fb.h,v 1.26 2000/09/19 00:11:53 illo Exp $
- * --------------------------------------------------------------------------
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file COPYING in the main directory of this archive
- * for more details.
- */
-
-#ifndef PM2FB_H
-#define PM2FB_H
-
-#define PM2_REFERENCE_CLOCK 14318 /* in KHz */
-#define PM2_MAX_PIXCLOCK 230000 /* in KHz */
-#define PM2_REGS_SIZE 0x10000
-
-#define PM2TAG(r) (u32 )(((r)-0x8000)>>3)
-
-/*****************************************************************************
- * Permedia2 registers used in the framebuffer
- *****************************************************************************/
-
-#define PM2R_RESET_STATUS 0x0000
-#define PM2R_IN_FIFO_SPACE 0x0018
-#define PM2R_OUT_FIFO_WORDS 0x0020
-#define PM2R_APERTURE_ONE 0x0050
-#define PM2R_APERTURE_TWO 0x0058
-#define PM2R_FIFO_DISCON 0x0068
-#define PM2R_CHIP_CONFIG 0x0070
-
-#define PM2R_REBOOT 0x1000
-#define PM2R_MEM_CONTROL 0x1040
-#define PM2R_BOOT_ADDRESS 0x1080
-#define PM2R_MEM_CONFIG 0x10c0
-#define PM2R_BYPASS_WRITE_MASK 0x1100
-#define PM2R_FRAMEBUFFER_WRITE_MASK 0x1140
-
-#define PM2R_OUT_FIFO 0x2000
-
-#define PM2R_SCREEN_BASE 0x3000
-#define PM2R_SCREEN_STRIDE 0x3008
-#define PM2R_H_TOTAL 0x3010
-#define PM2R_HG_END 0x3018
-#define PM2R_HB_END 0x3020
-#define PM2R_HS_START 0x3028
-#define PM2R_HS_END 0x3030
-#define PM2R_V_TOTAL 0x3038
-#define PM2R_VB_END 0x3040
-#define PM2R_VS_START 0x3048
-#define PM2R_VS_END 0x3050
-#define PM2R_VIDEO_CONTROL 0x3058
-#define PM2R_LINE_COUNT 0x3070
-#define PM2R_FIFO_CONTROL 0x3078
-
-#define PM2R_RD_PALETTE_WRITE_ADDRESS 0x4000
-#define PM2R_RD_PALETTE_DATA 0x4008
-#define PM2R_RD_PIXEL_MASK 0x4010
-#define PM2R_RD_PALETTE_READ_ADDRESS 0x4018
-#define PM2R_RD_CURSOR_COLOR_ADDRESS 0x4020
-#define PM2R_RD_CURSOR_COLOR_DATA 0x4028
-#define PM2R_RD_INDEXED_DATA 0x4050
-#define PM2R_RD_CURSOR_DATA 0x4058
-#define PM2R_RD_CURSOR_X_LSB 0x4060
-#define PM2R_RD_CURSOR_X_MSB 0x4068
-#define PM2R_RD_CURSOR_Y_LSB 0x4070
-#define PM2R_RD_CURSOR_Y_MSB 0x4078
-
-#define PM2R_START_X_DOM 0x8000
-#define PM2R_D_X_DOM 0x8008
-#define PM2R_START_X_SUB 0x8010
-#define PM2R_D_X_SUB 0x8018
-#define PM2R_START_Y 0x8020
-#define PM2R_D_Y 0x8028
-#define PM2R_COUNT 0x8030
-#define PM2R_RENDER 0x8038
-#define PM2R_BIT_MASK_PATTERN 0x8068
-#define PM2R_RASTERIZER_MODE 0x80a0
-#define PM2R_RECTANGLE_ORIGIN 0x80d0
-#define PM2R_RECTANGLE_SIZE 0x80d8
-#define PM2R_PACKED_DATA_LIMITS 0x8150
-#define PM2R_SCISSOR_MODE 0x8180
-#define PM2R_SCISSOR_MIN_XY 0x8188
-#define PM2R_SCISSOR_MAX_XY 0x8190
-#define PM2R_SCREEN_SIZE 0x8198
-#define PM2R_AREA_STIPPLE_MODE 0x81a0
-#define PM2R_WINDOW_ORIGIN 0x81c8
-#define PM2R_TEXTURE_ADDRESS_MODE 0x8380
-#define PM2R_TEXTURE_MAP_FORMAT 0x8588
-#define PM2R_TEXTURE_DATA_FORMAT 0x8590
-#define PM2R_TEXTURE_READ_MODE 0x8670
-#define PM2R_TEXEL_LUT_MODE 0x8678
-#define PM2R_TEXTURE_COLOR_MODE 0x8680
-#define PM2R_FOG_MODE 0x8690
-#define PM2R_TEXEL0 0x8760
-#define PM2R_COLOR_DDA_MODE 0x87e0
-#define PM2R_CONSTANT_COLOR 0x87e8
-#define PM2R_ALPHA_BLEND_MODE 0x8810
-#define PM2R_DITHER_MODE 0x8818
-#define PM2R_FB_SOFT_WRITE_MASK 0x8820
-#define PM2R_LOGICAL_OP_MODE 0x8828
-#define PM2R_LB_READ_MODE 0x8880
-#define PM2R_LB_READ_FORMAT 0x8888
-#define PM2R_LB_SOURCE_OFFSET 0x8890
-#define PM2R_LB_WINDOW_BASE 0x88b8
-#define PM2R_LB_WRITE_FORMAT 0x88c8
-#define PM2R_STENCIL_MODE 0x8988
-#define PM2R_DEPTH_MODE 0x89a0
-#define PM2R_FB_READ_MODE 0x8a80
-#define PM2R_FB_SOURCE_OFFSET 0x8a88
-#define PM2R_FB_PIXEL_OFFSET 0x8a90
-#define PM2R_FB_WINDOW_BASE 0x8ab0
-#define PM2R_FB_WRITE_MODE 0x8ab8
-#define PM2R_FB_HARD_WRITE_MASK 0x8ac0
-#define PM2R_FB_BLOCK_COLOR 0x8ac8
-#define PM2R_FB_READ_PIXEL 0x8ad0
-#define PM2R_FILTER_MODE 0x8c00
-#define PM2R_SYNC 0x8c40
-#define PM2R_YUV_MODE 0x8f00
-#define PM2R_STATISTICS_MODE 0x8c08
-#define PM2R_FB_SOURCE_DELTA 0x8d88
-#define PM2R_CONFIG 0x8d90
-#define PM2R_DELTA_MODE 0x9300
-
-/* Permedia2v */
-#define PM2VR_RD_INDEX_LOW 0x4020
-#define PM2VR_RD_INDEX_HIGH 0x4028
-#define PM2VR_RD_INDEXED_DATA 0x4030
-
-/* Permedia2 RAMDAC indexed registers */
-#define PM2I_RD_CURSOR_CONTROL 0x06
-#define PM2I_RD_COLOR_MODE 0x18
-#define PM2I_RD_MODE_CONTROL 0x19
-#define PM2I_RD_MISC_CONTROL 0x1e
-#define PM2I_RD_PIXEL_CLOCK_A1 0x20
-#define PM2I_RD_PIXEL_CLOCK_A2 0x21
-#define PM2I_RD_PIXEL_CLOCK_A3 0x22
-#define PM2I_RD_PIXEL_CLOCK_STATUS 0x29
-#define PM2I_RD_MEMORY_CLOCK_1 0x30
-#define PM2I_RD_MEMORY_CLOCK_2 0x31
-#define PM2I_RD_MEMORY_CLOCK_3 0x32
-#define PM2I_RD_MEMORY_CLOCK_STATUS 0x33
-#define PM2I_RD_COLOR_KEY_CONTROL 0x40
-#define PM2I_RD_OVERLAY_KEY 0x41
-#define PM2I_RD_RED_KEY 0x42
-#define PM2I_RD_GREEN_KEY 0x43
-#define PM2I_RD_BLUE_KEY 0x44
-
-/* Permedia2v extensions */
-#define PM2VI_RD_MISC_CONTROL 0x000
-#define PM2VI_RD_SYNC_CONTROL 0x001
-#define PM2VI_RD_DAC_CONTROL 0x002
-#define PM2VI_RD_PIXEL_SIZE 0x003
-#define PM2VI_RD_COLOR_FORMAT 0x004
-#define PM2VI_RD_CURSOR_MODE 0x005
-#define PM2VI_RD_CURSOR_X_LOW 0x007
-#define PM2VI_RD_CURSOR_X_HIGH 0x008
-#define PM2VI_RD_CURSOR_Y_LOW 0x009
-#define PM2VI_RD_CURSOR_Y_HIGH 0x00A
-#define PM2VI_RD_CURSOR_X_HOT 0x00B
-#define PM2VI_RD_CURSOR_Y_HOT 0x00C
-#define PM2VI_RD_OVERLAY_KEY 0x00D
-#define PM2VI_RD_CLK0_PRESCALE 0x201
-#define PM2VI_RD_CLK0_FEEDBACK 0x202
-#define PM2VI_RD_CLK0_POSTSCALE 0x203
-#define PM2VI_RD_CLK1_PRESCALE 0x204
-#define PM2VI_RD_CLK1_FEEDBACK 0x205
-#define PM2VI_RD_CLK1_POSTSCALE 0x206
-#define PM2VI_RD_MCLK_CONTROL 0x20D
-#define PM2VI_RD_MCLK_PRESCALE 0x20E
-#define PM2VI_RD_MCLK_FEEDBACK 0x20F
-#define PM2VI_RD_MCLK_POSTSCALE 0x210
-#define PM2VI_RD_CURSOR_PALETTE 0x303
-#define PM2VI_RD_CURSOR_PATTERN 0x400
-
-/* Fields and flags */
-#define PM2F_RENDER_AREASTIPPLE (1L<<0)
-#define PM2F_RENDER_FASTFILL (1L<<3)
-#define PM2F_RENDER_PRIMITIVE_MASK (3L<<6)
-#define PM2F_RENDER_LINE 0
-#define PM2F_RENDER_TRAPEZOID (1L<<6)
-#define PM2F_RENDER_POINT (2L<<6)
-#define PM2F_RENDER_RECTANGLE (3L<<6)
-#define PM2F_RENDER_SYNC_ON_BIT_MASK (1L<<11)
-#define PM2F_RENDER_TEXTURE_ENABLE (1L<<13)
-#define PM2F_SYNCHRONIZATION (1L<<10)
-#define PM2F_PLL_LOCKED 0x10
-#define PM2F_BEING_RESET (1L<<31)
-#define PM2F_DATATYPE_COLOR 0x8000
-#define PM2F_VGA_ENABLE 0x02
-#define PM2F_VGA_FIXED 0x04
-#define PM2F_FB_WRITE_ENABLE 0x01
-#define PM2F_FB_READ_SOURCE_ENABLE 0x0200
-#define PM2F_RD_PALETTE_WIDTH_8 0x02
-#define PM2F_PART_PROD_MASK 0x01ff
-#define PM2F_SCREEN_SCISSOR_ENABLE 0x02
-#define PM2F_DATA_64_ENABLE 0x00010000
-#define PM2F_BLANK_LOW 0x02
-#define PM2F_HSYNC_MASK 0x18
-#define PM2F_VSYNC_MASK 0x60
-#define PM2F_HSYNC_ACT_HIGH 0x08
-#define PM2F_HSYNC_FORCED_LOW 0x10
-#define PM2F_HSYNC_ACT_LOW 0x18
-#define PM2F_VSYNC_ACT_HIGH 0x20
-#define PM2F_VSYNC_FORCED_LOW 0x40
-#define PM2F_VSYNC_ACT_LOW 0x60
-#define PM2F_LINE_DOUBLE 0x04
-#define PM2F_VIDEO_ENABLE 0x01
-#define PM2F_RD_PIXELFORMAT_SVGA 0x01
-#define PM2F_RD_PIXELFORMAT_RGB232OFFSET 0x02
-#define PM2F_RD_PIXELFORMAT_RGBA2321 0x03
-#define PM2F_RD_PIXELFORMAT_RGBA5551 0x04
-#define PM2F_RD_PIXELFORMAT_RGBA4444 0x05
-#define PM2F_RD_PIXELFORMAT_RGB565 0x06
-#define PM2F_RD_PIXELFORMAT_RGBA8888 0x08
-#define PM2F_RD_PIXELFORMAT_RGB888 0x09
-#define PM2F_RD_GUI_ACTIVE 0x10
-#define PM2F_RD_COLOR_MODE_RGB 0x20
-#define PM2F_DELTA_ORDER_RGB (1L<<18)
-#define PM2F_RD_TRUECOLOR 0x80
-#define PM2F_NO_ALPHA_BUFFER 0x10
-#define PM2F_TEXTEL_SIZE_16 0x00080000
-#define PM2F_TEXTEL_SIZE_32 0x00100000
-#define PM2F_TEXTEL_SIZE_4 0x00180000
-#define PM2F_TEXTEL_SIZE_24 0x00200000
-#define PM2F_INCREASE_X (1L<<21)
-#define PM2F_INCREASE_Y (1L<<22)
-#define PM2F_CONFIG_FB_WRITE_ENABLE (1L<<3)
-#define PM2F_CONFIG_FB_PACKED_DATA (1L<<2)
-#define PM2F_CONFIG_FB_READ_DEST_ENABLE (1L<<1)
-#define PM2F_CONFIG_FB_READ_SOURCE_ENABLE (1L<<0)
-#define PM2F_COLOR_KEY_TEST_OFF (1L<<4)
-#define PM2F_MEM_CONFIG_RAM_MASK (3L<<29)
-#define PM2F_MEM_BANKS_1 0L
-#define PM2F_MEM_BANKS_2 (1L<<29)
-#define PM2F_MEM_BANKS_3 (2L<<29)
-#define PM2F_MEM_BANKS_4 (3L<<29)
-#define PM2F_APERTURE_STANDARD 0
-#define PM2F_APERTURE_BYTESWAP 1
-#define PM2F_APERTURE_HALFWORDSWAP 2
-#define PM2F_CURSORMODE_CURSOR_ENABLE (1 << 0)
-#define PM2F_CURSORMODE_TYPE_X (1 << 4)
-
-typedef enum {
- PM2_TYPE_PERMEDIA2,
- PM2_TYPE_PERMEDIA2V
-} pm2type_t;
-
-#endif /* PM2FB_H */
-
-/*****************************************************************************
- * That's all folks!
- *****************************************************************************/
diff --git a/ANDROID_3.4.5/include/video/platform_lcd.h b/ANDROID_3.4.5/include/video/platform_lcd.h
deleted file mode 100644
index ad3bdfe7..00000000
--- a/ANDROID_3.4.5/include/video/platform_lcd.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* include/video/platform_lcd.h
- *
- * Copyright 2008 Simtec Electronics
- * Ben Dooks <ben@simtec.co.uk>
- *
- * Generic platform-device LCD power control interface.
- *
- * 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.
- *
-*/
-
-struct plat_lcd_data;
-struct fb_info;
-
-struct plat_lcd_data {
- void (*set_power)(struct plat_lcd_data *, unsigned int power);
- int (*match_fb)(struct plat_lcd_data *, struct fb_info *);
-};
-
diff --git a/ANDROID_3.4.5/include/video/pm3fb.h b/ANDROID_3.4.5/include/video/pm3fb.h
deleted file mode 100644
index 2b85134f..00000000
--- a/ANDROID_3.4.5/include/video/pm3fb.h
+++ /dev/null
@@ -1,1061 +0,0 @@
-/*
- * linux/drivers/video/pm3fb.h -- 3DLabs Permedia3 frame buffer device
- *
- * Copyright (C) 2001 Romain Dolbeau <dolbeau@irisa.fr>
- * Copyright (C) 2001 Sven Luther, <luther@dpt-info.u-strasbg.fr>
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file COPYING in the main directory of this archive for
- * more details.
- */
-
-#ifndef PM3FB_H
-#define PM3FB_H
-
-/**********************************************
-* GLINT Permedia3 Control Status registers *
-***********************************************/
-/* Control Status Registers */
-#define PM3ResetStatus 0x0000
-#define PM3IntEnable 0x0008
-#define PM3IntFlags 0x0010
-#define PM3InFIFOSpace 0x0018
-#define PM3OutFIFOWords 0x0020
-#define PM3DMAAddress 0x0028
-#define PM3DMACount 0x0030
-#define PM3ErrorFlags 0x0038
-#define PM3VClkCtl 0x0040
-#define PM3TestRegister 0x0048
-#define PM3Aperture0 0x0050
-#define PM3Aperture1 0x0058
-#define PM3DMAControl 0x0060
-#define PM3FIFODis 0x0068
-#define PM3ChipConfig 0x0070
-#define PM3AGPControl 0x0078
-
-#define PM3GPOutDMAAddress 0x0080
-#define PM3PCIFeedbackCount 0x0088
-#define PM3PCIAbortStatus 0x0090
-#define PM3PCIAbortAddress 0x0098
-
-#define PM3PCIPLLStatus 0x00f0
-
-#define PM3HostTextureAddress 0x0100
-#define PM3TextureDownloadControl 0x0108
-#define PM3TextureOperation 0x0110
-#define PM3LogicalTexturePage 0x0118
-#define PM3TexDMAAddress 0x0120
-#define PM3TexFIFOSpace 0x0128
-
-/**********************************************
-* GLINT Permedia3 Region 0 Bypass Controls *
-***********************************************/
-#define PM3ByAperture1Mode 0x0300
- #define PM3ByApertureMode_BYTESWAP_ABCD (0 << 0)
- #define PM3ByApertureMode_BYTESWAP_BADC (1 << 0)
- #define PM3ByApertureMode_BYTESWAP_CDAB (2 << 0)
- #define PM3ByApertureMode_BYTESWAP_DCBA (3 << 0)
- #define PM3ByApertureMode_PATCH_ENABLE (1 << 2)
- #define PM3ByApertureMode_FORMAT_RAW (0 << 3)
- #define PM3ByApertureMode_FORMAT_YUYV (1 << 3)
- #define PM3ByApertureMode_FORMAT_UYVY (2 << 3)
- #define PM3ByApertureMode_PIXELSIZE_8BIT (0 << 5)
- #define PM3ByApertureMode_PIXELSIZE_16BIT (1 << 5)
- #define PM3ByApertureMode_PIXELSIZE_32BIT (2 << 5)
- #define PM3ByApertureMode_PIXELSIZE_MASK (3 << 5)
- #define PM3ByApertureMode_EFFECTIVE_STRIDE_1024 (0 << 7)
- #define PM3ByApertureMode_EFFECTIVE_STRIDE_2048 (1 << 7)
- #define PM3ByApertureMode_EFFECTIVE_STRIDE_4096 (2 << 7)
- #define PM3ByApertureMode_EFFECTIVE_STRIDE_8192 (3 << 7)
- #define PM3ByApertureMode_PATCH_OFFSET_X(off) (((off) & 0x7f) << 9)
- #define PM3ByApertureMode_PATCH_OFFSET_Y(off) (((off) & 0x7f) << 16)
- #define PM3ByApertureMode_FRAMEBUFFER (0 << 21)
- #define PM3ByApertureMode_LOCALBUFFER (1 << 21)
- #define PM3ByApertureMode_DOUBLE_WRITE_OFF (0 << 22)
- #define PM3ByApertureMode_DOUBLE_WRITE_1MB (1 << 22)
- #define PM3ByApertureMode_DOUBLE_WRITE_2MB (2 << 22)
- #define PM3ByApertureMode_DOUBLE_WRITE_4MB (3 << 22)
- #define PM3ByApertureMode_DOUBLE_WRITE_8MB (4 << 22)
- #define PM3ByApertureMode_DOUBLE_WRITE_16MB (5 << 22)
- #define PM3ByApertureMode_DOUBLE_WRITE_32MB (6 << 22)
-
-#define PM3ByAperture2Mode 0x0328
-
-/**********************************************
-* GLINT Permedia3 Memory Control (0x1000) *
-***********************************************/
-#define PM3MemCounter 0x1000
-#define PM3MemBypassWriteMask 0x1008
-#define PM3MemScratch 0x1010
-#define PM3LocalMemCaps 0x1018
- #define PM3LocalMemCaps_NoWriteMask (1 << 28)
-#define PM3LocalMemTimings 0x1020
-#define PM3LocalMemControl 0x1028
-#define PM3LocalMemRefresh 0x1030
-#define PM3LocalMemPowerDown 0x1038
-#define PM3RemoteMemControl 0x1100
-
-/**********************************************
-* GLINT Permedia3 Video Control (0x3000) *
-***********************************************/
-
-#define PM3ScreenBase 0x3000
-#define PM3ScreenStride 0x3008
-#define PM3HTotal 0x3010
-#define PM3HgEnd 0x3018
-#define PM3HbEnd 0x3020
-#define PM3HsStart 0x3028
-#define PM3HsEnd 0x3030
-#define PM3VTotal 0x3038
-#define PM3VbEnd 0x3040
-#define PM3VsStart 0x3048
-#define PM3VsEnd 0x3050
-#define PM3VideoControl 0x3058
- #define PM3VideoControl_ENABLE (1 << 0)
- #define PM3VideoControl_BLANK_ACTIVE_HIGH (0 << 1)
- #define PM3VideoControl_BLANK_ACTIVE_LOW (1 << 1)
- #define PM3VideoControl_LINE_DOUBLE_OFF (0 << 2)
- #define PM3VideoControl_LINE_DOUBLE_ON (1 << 2)
- #define PM3VideoControl_HSYNC_FORCE_HIGH (0 << 3)
- #define PM3VideoControl_HSYNC_ACTIVE_HIGH (1 << 3)
- #define PM3VideoControl_HSYNC_FORCE_LOW (2 << 3)
- #define PM3VideoControl_HSYNC_ACTIVE_LOW (3 << 3)
- #define PM3VideoControl_HSYNC_MASK (3 << 3)
- #define PM3VideoControl_VSYNC_FORCE_HIGH (0 << 5)
- #define PM3VideoControl_VSYNC_ACTIVE_HIGH (1 << 5)
- #define PM3VideoControl_VSYNC_FORCE_LOW (2 << 5)
- #define PM3VideoControl_VSYNC_ACTIVE_LOW (3 << 5)
- #define PM3VideoControl_VSYNC_MASK (3 << 5)
- #define PM3VideoControl_BYTE_DOUBLE_OFF (0 << 7)
- #define PM3VideoControl_BYTE_DOUBLE_ON (1 << 7)
- #define PM3VideoControl_BUFFER_SWAP_SYNCON_FRAMEBLANK (0 << 9)
- #define PM3VideoControl_BUFFER_SWAP_FREE_RUNNING (1 << 9)
- #define PM3VideoControl_BUFFER_SWAP_LIMITETO_FRAMERATE (2 << 9)
- #define PM3VideoControl_STEREO_ENABLE (1 << 11)
- #define PM3VideoControl_RIGHT_EYE_ACTIVE_HIGH (0 << 12)
- #define PM3VideoControl_RIGHT_EYE_ACTIVE_LOW (1 << 12)
- #define PM3VideoControl_VIDEO_EXT_LOW (0 << 14)
- #define PM3VideoControl_VIDEO_EXT_HIGH (1 << 14)
- #define PM3VideoControl_SYNC_MODE_INDEPENDENT (0 << 16)
- #define PM3VideoControl_SYNC_MODE_SYNCTO_VSA (1 << 16)
- #define PM3VideoControl_SYNC_MODE_SYNCTO_VSB (2 << 16)
- #define PM3VideoControl_PATCH_ENABLE (1 << 18)
- #define PM3VideoControl_PIXELSIZE_8BIT (0 << 19)
- #define PM3VideoControl_PIXELSIZE_16BIT (1 << 19)
- #define PM3VideoControl_PIXELSIZE_32BIT (2 << 19)
- #define PM3VideoControl_DISPLAY_ENABLE (1 << 21)
- #define PM3VideoControl_PATCH_OFFSET_X(off) (((off) & 0x3f) << 22)
- #define PM3VideoControl_PATCH_OFFSET_Y(off) (((off) & 0x3f) << 28)
-#define PM3InterruptLine 0x3060
-#define PM3DisplayData 0x3068
-#define PM3VerticalLineCount 0x3070
-#define PM3FifoControl 0x3078
-#define PM3ScreenBaseRight 0x3080
-#define PM3MiscControl 0x3088
-
-#define PM3VideoOverlayUpdate 0x3100
- #define PM3VideoOverlayUpdate_ENABLE (1 << 0)
-#define PM3VideoOverlayMode 0x3108
- #define PM3VideoOverlayMode_ENABLE (1 << 0)
- #define PM3VideoOverlayMode_BUFFERSYNC_MANUAL (0 << 1)
- #define PM3VideoOverlayMode_BUFFERSYNC_VIDEOSTREAMA (1 << 1)
- #define PM3VideoOverlayMode_BUFFERSYNC_VIDEOSTREAMB (2 << 1)
- #define PM3VideoOverlayMode_FIELDPOLARITY_NORMAL (0 << 4)
- #define PM3VideoOverlayMode_FIELDPOLARITY_INVERT (1 << 4)
- #define PM3VideoOverlayMode_PIXELSIZE_8BIT (0 << 5)
- #define PM3VideoOverlayMode_PIXELSIZE_16BIT (1 << 5)
- #define PM3VideoOverlayMode_PIXELSIZE_32BIT (2 << 5)
- #define PM3VideoOverlayMode_COLORFORMAT_RGB8888 \
- ((0 << 7)|(1 << 12)|(2 << 5))
- #define PM3VideoOverlayMode_COLORFORMAT_RGB4444 \
- ((1 << 7)|(1 << 12)|(1 << 5))
- #define PM3VideoOverlayMode_COLORFORMAT_RGB5551 \
- ((2 << 7)|(1 << 12)|(1 << 5))
- #define PM3VideoOverlayMode_COLORFORMAT_RGB565 \
- ((3 << 7)|(1 << 12)|(1 << 5))
- #define PM3VideoOverlayMode_COLORFORMAT_RGB332 \
- ((4 << 7)|(1 << 12)|(0 << 5))
- #define PM3VideoOverlayMode_COLORFORMAT_BGR8888 \
- ((0 << 7)|(2 << 5))
- #define PM3VideoOverlayMode_COLORFORMAT_BGR4444 \
- ((1 << 7)|(1 << 5))
- #define PM3VideoOverlayMode_COLORFORMAT_BGR5551 \
- ((2 << 7)|(1 << 5))
- #define PM3VideoOverlayMode_COLORFORMAT_BGR565 \
- ((3 << 7)|(1 << 5))
- #define PM3VideoOverlayMode_COLORFORMAT_BGR332 \
- ((4 << 7)|(0 << 5))
- #define PM3VideoOverlayMode_COLORFORMAT_CI8 \
- ((5 << 7)|(1 << 12)|(0 << 5))
- #define PM3VideoOverlayMode_COLORFORMAT_VUY444 \
- ((2 << 10)|(1 << 12)|(2 << 5))
- #define PM3VideoOverlayMode_COLORFORMAT_YUV444 \
- ((2 << 10)|(2 << 5))
- #define PM3VideoOverlayMode_COLORFORMAT_VUY422 \
- ((1 << 10)|(1 << 12)|(1 << 5))
- #define PM3VideoOverlayMode_COLORFORMAT_YUV422 \
- ((1 << 10)|(1 << 5))
- #define PM3VideoOverlayMode_COLORORDER_BGR (0 << 12)
- #define PM3VideoOverlayMode_COLORORDER_RGB (1 << 12)
- #define PM3VideoOverlayMode_LINEARCOLOREXT_OFF (0 << 13)
- #define PM3VideoOverlayMode_LINEARCOLOREXT_ON (1 << 13)
- #define PM3VideoOverlayMode_FILTER_MASK (3 << 14)
- #define PM3VideoOverlayMode_FILTER_OFF (0 << 14)
- #define PM3VideoOverlayMode_FILTER_FULL (1 << 14)
- #define PM3VideoOverlayMode_FILTER_PARTIAL (2 << 14)
- #define PM3VideoOverlayMode_DEINTERLACE_OFF (0 << 16)
- #define PM3VideoOverlayMode_DEINTERLACE_BOB (1 << 16)
- #define PM3VideoOverlayMode_PATCHMODE_OFF (0 << 18)
- #define PM3VideoOverlayMode_PATCHMODE_ON (1 << 18)
- #define PM3VideoOverlayMode_FLIP_VIDEO (0 << 20)
- #define PM3VideoOverlayMode_FLIP_VIDEOSTREAMA (1 << 20)
- #define PM3VideoOverlayMode_FLIP_VIDEOSTREAMB (2 << 20)
- #define PM3VideoOverlayMode_MIRROR_MASK (3 << 23)
- #define PM3VideoOverlayMode_MIRRORX_OFF (0 << 23)
- #define PM3VideoOverlayMode_MIRRORX_ON (1 << 23)
- #define PM3VideoOverlayMode_MIRRORY_OFF (0 << 24)
- #define PM3VideoOverlayMode_MIRRORY_ON (1 << 24)
-#define PM3VideoOverlayFifoControl 0x3110
-#define PM3VideoOverlayIndex 0x3118
-#define PM3VideoOverlayBase0 0x3120
-#define PM3VideoOverlayBase1 0x3128
-#define PM3VideoOverlayBase2 0x3130
-#define PM3VideoOverlayStride 0x3138
- #define PM3VideoOverlayStride_STRIDE(s) (((s) & 0xfff) << 0)
-#define PM3VideoOverlayWidth 0x3140
- #define PM3VideoOverlayWidth_WIDTH(w) (((w) & 0xfff) << 0)
-#define PM3VideoOverlayHeight 0x3148
- #define PM3VideoOverlayHeight_HEIGHT(h) (((h) & 0xfff) << 0)
-#define PM3VideoOverlayOrigin 0x3150
- #define PM3VideoOverlayOrigin_XORIGIN(x) (((x) & 0xfff) << 0)
- #define PM3VideoOverlayOrigin_YORIGIN(y) (((y) & 0xfff) << 16)
-#define PM3VideoOverlayShrinkXDelta 0x3158
- #define PM3VideoOverlayShrinkXDelta_NONE (1 << 16)
- #define PM3VideoOverlayShrinkXDelta_DELTA(s,d) \
- ((((s) << 16)/(d)) & 0x0ffffff0)
-#define PM3VideoOverlayZoomXDelta 0x3160
- #define PM3VideoOverlayZoomXDelta_NONE (1 << 16)
- #define PM3VideoOverlayZoomXDelta_DELTA(s,d) \
- ((((s) << 16)/(d)) & 0x0001fff0)
-#define PM3VideoOverlayYDelta 0x3168
- #define PM3VideoOverlayYDelta_NONE (1 << 16)
- #define PM3VideoOverlayYDelta_DELTA(s,d) \
- ((((s) << 16)/(d)) & 0x0ffffff0)
-#define PM3VideoOverlayFieldOffset 0x3170
-#define PM3VideoOverlayStatus 0x3178
-
-/**********************************************
-* GLINT Permedia3 RAMDAC Registers (0x4000) *
-***********************************************/
-/* Direct Registers */
-#define PM3RD_PaletteWriteAddress 0x4000
-#define PM3RD_PaletteData 0x4008
-#define PM3RD_PixelMask 0x4010
-#define PM3RD_PaletteReadAddress 0x4018
-
-#define PM3RD_IndexLow 0x4020
-#define PM3RD_IndexHigh 0x4028
-#define PM3RD_IndexedData 0x4030
-#define PM3RD_IndexControl 0x4038
- #define PM3RD_IndexControl_AUTOINCREMENT_ENABLE (1 << 0)
-
-/* Indirect Registers */
-#define PM3RD_MiscControl 0x000
- #define PM3RD_MiscControl_HIGHCOLOR_RES_ENABLE (1 << 0)
- #define PM3RD_MiscControl_PIXELDOUBLE_ENABLE (1 << 1)
- #define PM3RD_MiscControl_LASTREAD_ADDR_ENABLE (1 << 2)
- #define PM3RD_MiscControl_DIRECTCOLOR_ENABLE (1 << 3)
- #define PM3RD_MiscControl_OVERLAY_ENABLE (1 << 4)
- #define PM3RD_MiscControl_PIXELDOUBLE_BUFFER_ENABLE (1 << 5)
- #define PM3RD_MiscControl_VSB_OUTPUT_ENABLE (1 << 6)
- #define PM3RD_MiscControl_STEREODOUBLE_BUFFER_ENABLE (1 << 7)
-#define PM3RD_SyncControl 0x001
- #define PM3RD_SyncControl_HSYNC_ACTIVE_LOW (0 << 0)
- #define PM3RD_SyncControl_HSYNC_ACTIVE_HIGH (1 << 0)
- #define PM3RD_SyncControl_HSYNC_FORCE_ACTIVE (3 << 0)
- #define PM3RD_SyncControl_HSYNC_FORCE_INACTIVE (4 << 0)
- #define PM3RD_SyncControl_HSYNC_TRI_STATE (2 << 0)
- #define PM3RD_SyncControl_VSYNC_ACTIVE_LOW (0 << 3)
- #define PM3RD_SyncControl_VSYNC_ACTIVE_HIGH (1 << 3)
- #define PM3RD_SyncControl_VSYNC_TRI_STATE (2 << 3)
- #define PM3RD_SyncControl_VSYNC_FORCE_ACTIVE (3 << 3)
- #define PM3RD_SyncControl_VSYNC_FORCE_INACTIVE (4 << 3)
- #define PM3RD_SyncControl_HSYNC_OVERRIDE_SETBY_HSYNC (0 << 6)
- #define PM3RD_SyncControl_HSYNC_OVERRIDE_FORCE_HIGH (1 << 6)
- #define PM3RD_SyncControl_VSYNC_OVERRIDE_SETBY_VSYNC (0 << 7)
- #define PM3RD_SyncControl_VSYNC_OVERRIDE_FORCE_HIGH (1 << 7)
-#define PM3RD_DACControl 0x002
- #define PM3RD_DACControl_DAC_POWER_ON (0 << 0)
- #define PM3RD_DACControl_DAC_POWER_OFF (1 << 0)
- #define PM3RD_DACControl_SYNC_ON_GREEN_ENABLE (1 << 3)
- #define PM3RD_DACControl_BLANK_RED_DAC_ENABLE (1 << 4)
- #define PM3RD_DACControl_BLANK_GREEN_DAC_ENABLE (1 << 5)
- #define PM3RD_DACControl_BLANK_BLUE_DAC_ENABLE (1 << 6)
- #define PM3RD_DACControl_BLANK_PEDESTAL_ENABLE (1 << 7)
-#define PM3RD_PixelSize 0x003
- #define PM3RD_PixelSize_24_BIT_PIXELS (4 << 0)
- #define PM3RD_PixelSize_32_BIT_PIXELS (2 << 0)
- #define PM3RD_PixelSize_16_BIT_PIXELS (1 << 0)
- #define PM3RD_PixelSize_8_BIT_PIXELS (0 << 0)
-#define PM3RD_ColorFormat 0x004
- #define PM3RD_ColorFormat_LINEAR_COLOR_EXT_ENABLE (1 << 6)
- #define PM3RD_ColorFormat_COLOR_ORDER_BLUE_LOW (1 << 5)
- #define PM3RD_ColorFormat_COLOR_ORDER_RED_LOW (0 << 5)
- #define PM3RD_ColorFormat_COLOR_FORMAT_MASK (0x1f << 0)
- #define PM3RD_ColorFormat_8888_COLOR (0 << 0)
- #define PM3RD_ColorFormat_5551_FRONT_COLOR (1 << 0)
- #define PM3RD_ColorFormat_4444_COLOR (2 << 0)
- #define PM3RD_ColorFormat_332_FRONT_COLOR (5 << 0)
- #define PM3RD_ColorFormat_332_BACK_COLOR (6 << 0)
- #define PM3RD_ColorFormat_2321_FRONT_COLOR (9 << 0)
- #define PM3RD_ColorFormat_2321_BACK_COLOR (10 << 0)
- #define PM3RD_ColorFormat_232_FRONTOFF_COLOR (11 << 0)
- #define PM3RD_ColorFormat_232_BACKOFF_COLOR (12 << 0)
- #define PM3RD_ColorFormat_5551_BACK_COLOR (13 << 0)
- #define PM3RD_ColorFormat_CI8_COLOR (14 << 0)
- #define PM3RD_ColorFormat_565_FRONT_COLOR (16 << 0)
- #define PM3RD_ColorFormat_565_BACK_COLOR (17 << 0)
-#define PM3RD_CursorMode 0x005
- #define PM3RD_CursorMode_CURSOR_ENABLE (1 << 0)
- #define PM3RD_CursorMode_FORMAT_64x64_2BPE_P0123 (0 << 2)
- #define PM3RD_CursorMode_FORMAT_32x32_2BPE_P0 (1 << 2)
- #define PM3RD_CursorMode_FORMAT_32x32_2BPE_P1 (2 << 2)
- #define PM3RD_CursorMode_FORMAT_32x32_2BPE_P2 (3 << 2)
- #define PM3RD_CursorMode_FORMAT_32x32_2BPE_P3 (4 << 2)
- #define PM3RD_CursorMode_FORMAT_32x32_4BPE_P01 (5 << 2)
- #define PM3RD_CursorMode_FORMAT_32x32_4BPE_P23 (6 << 2)
- #define PM3RD_CursorMode_TYPE_MS (0 << 4)
- #define PM3RD_CursorMode_TYPE_X (1 << 4)
- #define PM3RD_CursorMode_REVERSE_PIXEL_ORDER_ENABLE (1 << 6)
- #define PM3RD_CursorMode_REVERSE_PIXEL_ORDER_3_COLOR (2 << 6)
- #define PM3RD_CursorMode_REVERSE_PIXEL_ORDER_15_COLOR (3 << 6)
-#define PM3RD_CursorControl 0x006
- #define PM3RD_CursorControl_DOUBLE_X_ENABLED (1 << 0)
- #define PM3RD_CursorControl_DOUBLE_Y_ENABLED (1 << 1)
- #define PM3RD_CursorControl_READBACK_POS_ENABLED (1 << 2)
-
-#define PM3RD_CursorXLow 0x007
-#define PM3RD_CursorXHigh 0x008
-#define PM3RD_CursorYLow 0x009
-#define PM3RD_CursorYHigh 0x00a
-#define PM3RD_CursorHotSpotX 0x00b
-#define PM3RD_CursorHotSpotY 0x00c
-#define PM3RD_OverlayKey 0x00d
-#define PM3RD_Pan 0x00e
- #define PM3RD_Pan_ENABLE (1 << 0)
- #define PM3RD_Pan_GATE_ENABLE (1 << 1)
-#define PM3RD_Sense 0x00f
-
-#define PM3RD_CheckControl 0x018
- #define PM3RD_CheckControl_PIXEL_ENABLED (1 << 0)
- #define PM3RD_CheckControl_LUT_ENABLED (1 << 1)
-#define PM3RD_CheckPixelRed 0x019
-#define PM3RD_CheckPixelGreen 0x01a
-#define PM3RD_CheckPixelBlue 0x01b
-#define PM3RD_CheckLUTRed 0x01c
-#define PM3RD_CheckLUTGreen 0x01d
-#define PM3RD_CheckLUTBlue 0x01e
-#define PM3RD_Scratch 0x01f
-
-#define PM3RD_VideoOverlayControl 0x020
- #define PM3RD_VideoOverlayControl_ENABLE (1 << 0)
- #define PM3RD_VideoOverlayControl_MODE_MASK (3 << 1)
- #define PM3RD_VideoOverlayControl_MODE_MAINKEY (0 << 1)
- #define PM3RD_VideoOverlayControl_MODE_OVERLAYKEY (1 << 1)
- #define PM3RD_VideoOverlayControl_MODE_ALWAYS (2 << 1)
- #define PM3RD_VideoOverlayControl_MODE_BLEND (3 << 1)
- #define PM3RD_VideoOverlayControl_DIRECTCOLOR_ENABLED (1 << 3)
- #define PM3RD_VideoOverlayControl_BLENDSRC_MAIN (0 << 4)
- #define PM3RD_VideoOverlayControl_BLENDSRC_REGISTER (1 << 4)
- #define PM3RD_VideoOverlayControl_KEY_COLOR (0 << 5)
- #define PM3RD_VideoOverlayControl_KEY_ALPHA (1 << 5)
-#define PM3RD_VideoOverlayXStartLow 0x021
-#define PM3RD_VideoOverlayXStartHigh 0x022
-#define PM3RD_VideoOverlayYStartLow 0x023
-#define PM3RD_VideoOverlayYStartHigh 0x024
-#define PM3RD_VideoOverlayXEndLow 0x025
-#define PM3RD_VideoOverlayXEndHigh 0x026
-#define PM3RD_VideoOverlayYEndLow 0x027
-#define PM3RD_VideoOverlayYEndHigh 0x028
-#define PM3RD_VideoOverlayKeyR 0x029
-#define PM3RD_VideoOverlayKeyG 0x02a
-#define PM3RD_VideoOverlayKeyB 0x02b
-#define PM3RD_VideoOverlayBlend 0x02c
- #define PM3RD_VideoOverlayBlend_FACTOR_0_PERCENT (0 << 6)
- #define PM3RD_VideoOverlayBlend_FACTOR_25_PERCENT (1 << 6)
- #define PM3RD_VideoOverlayBlend_FACTOR_75_PERCENT (2 << 6)
- #define PM3RD_VideoOverlayBlend_FACTOR_100_PERCENT (3 << 6)
-
-#define PM3RD_DClkSetup1 0x1f0
-#define PM3RD_DClkSetup2 0x1f1
-#define PM3RD_KClkSetup1 0x1f2
-#define PM3RD_KClkSetup2 0x1f3
-
-#define PM3RD_DClkControl 0x200
- #define PM3RD_DClkControl_SOURCE_PLL (0 << 4)
- #define PM3RD_DClkControl_SOURCE_VSA (1 << 4)
- #define PM3RD_DClkControl_SOURCE_VSB (2 << 4)
- #define PM3RD_DClkControl_SOURCE_EXT (3 << 4)
- #define PM3RD_DClkControl_STATE_RUN (2 << 2)
- #define PM3RD_DClkControl_STATE_HIGH (1 << 2)
- #define PM3RD_DClkControl_STATE_LOW (0 << 2)
- #define PM3RD_DClkControl_LOCKED (1 << 1)
- #define PM3RD_DClkControl_NOT_LOCKED (0 << 1)
- #define PM3RD_DClkControl_ENABLE (1 << 0)
-#define PM3RD_DClk0PreScale 0x201
-#define PM3RD_DClk0FeedbackScale 0x202
-#define PM3RD_DClk0PostScale 0x203
- #define PM3_REF_CLOCK 14318
-#define PM3RD_DClk1PreScale 0x204
-#define PM3RD_DClk1FeedbackScale 0x205
-#define PM3RD_DClk1PostScale 0x206
-#define PM3RD_DClk2PreScale 0x207
-#define PM3RD_DClk2FeedbackScale 0x208
-#define PM3RD_DClk2PostScale 0x209
-#define PM3RD_DClk3PreScale 0x20a
-#define PM3RD_DClk3FeedbackScale 0x20b
-#define PM3RD_DClk3PostScale 0x20c
-#define PM3RD_KClkControl 0x20d
- #define PM3RD_KClkControl_ENABLE (1 << 0)
- #define PM3RD_KClkControl_NOT_LOCKED (0 << 1)
- #define PM3RD_KClkControl_LOCKED (1 << 1)
- #define PM3RD_KClkControl_STATE_LOW (0 << 2)
- #define PM3RD_KClkControl_STATE_HIGH (1 << 2)
- #define PM3RD_KClkControl_STATE_RUN (2 << 2)
- #define PM3RD_KClkControl_STATE_LOW_POWER (3 << 2)
- #define PM3RD_KClkControl_SOURCE_PCLK (0 << 4)
- #define PM3RD_KClkControl_SOURCE_HALF_PCLK (1 << 4)
- #define PM3RD_KClkControl_SOURCE_PLL (2 << 4)
-#define PM3RD_KClkPreScale 0x20e
-#define PM3RD_KClkFeedbackScale 0x20f
-#define PM3RD_KClkPostScale 0x210
-#define PM3RD_MClkControl 0x211
- #define PM3RD_MClkControl_ENABLE (1 << 0)
- #define PM3RD_MClkControl_NOT_LOCKED (0 << 1)
- #define PM3RD_MClkControl_LOCKED (1 << 1)
- #define PM3RD_MClkControl_STATE_LOW (0 << 2)
- #define PM3RD_MClkControl_STATE_HIGH (1 << 2)
- #define PM3RD_MClkControl_STATE_RUN (2 << 2)
- #define PM3RD_MClkControl_STATE_LOW_POWER (3 << 2)
- #define PM3RD_MClkControl_SOURCE_PCLK (0 << 4)
- #define PM3RD_MClkControl_SOURCE_HALF_PCLK (1 << 4)
- #define PM3RD_MClkControl_SOURCE_HALF_EXT (3 << 4)
- #define PM3RD_MClkControl_SOURCE_EXT (4 << 4)
- #define PM3RD_MClkControl_SOURCE_HALF_KCLK (5 << 4)
- #define PM3RD_MClkControl_SOURCE_KCLK (6 << 4)
-#define PM3RD_MClkPreScale 0x212
-#define PM3RD_MClkFeedbackScale 0x213
-#define PM3RD_MClkPostScale 0x214
-#define PM3RD_SClkControl 0x215
- #define PM3RD_SClkControl_ENABLE (1 << 0)
- #define PM3RD_SClkControl_NOT_LOCKED (0 << 1)
- #define PM3RD_SClkControl_LOCKED (1 << 1)
- #define PM3RD_SClkControl_STATE_LOW (0 << 2)
- #define PM3RD_SClkControl_STATE_HIGH (1 << 2)
- #define PM3RD_SClkControl_STATE_RUN (2 << 2)
- #define PM3RD_SClkControl_STATE_LOW_POWER (3 << 2)
- #define PM3RD_SClkControl_SOURCE_PCLK (0 << 4)
- #define PM3RD_SClkControl_SOURCE_HALF_PCLK (1 << 4)
- #define PM3RD_SClkControl_SOURCE_HALF_EXT (3 << 4)
- #define PM3RD_SClkControl_SOURCE_EXT (4 << 4)
- #define PM3RD_SClkControl_SOURCE_HALF_KCLK (5 << 4)
- #define PM3RD_SClkControl_SOURCE_KCLK (6 << 4)
-#define PM3RD_SClkPreScale 0x216
-#define PM3RD_SClkFeedbackScale 0x217
-#define PM3RD_SClkPostScale 0x218
-
-#define PM3RD_CursorPalette(p) (0x303 + (p))
-#define PM3RD_CursorPattern(p) (0x400 + (p))
-/******************************************************
-* GLINT Permedia3 Video Streaming Registers (0x5000) *
-*******************************************************/
-
-#define PM3VSConfiguration 0x5800
-
-/**********************************************
-* GLINT Permedia3 Core Registers (0x8000+) *
-***********************************************/
-#define PM3AALineWidth 0x94c0
-#define PM3AAPointsize 0x94a0
-#define PM3AlphaBlendAlphaMode 0xafa8
-#define PM3AlphaBlendAlphaModeAnd 0xad30
-#define PM3AlphaBlendAlphaModeOr 0xad38
-#define PM3AlphaBlendColorMode 0xafa0
-#define PM3AlphaBlendColorModeAnd 0xacb0
-#define PM3AlphaBlendColorModeOr 0xacb8
-#define PM3AlphaDestColor 0xaf88
-#define PM3AlphaSourceColor 0xaf80
-#define PM3AlphaTestMode 0x8800
-#define PM3AlphaTestModeAnd 0xabf0
-#define PM3AlphaTestModeOr 0xabf8
-#define PM3AntialiasMode 0x8808
-#define PM3AntialiasModeAnd 0xac00
-#define PM3AntialiasModeOr 0xac08
-/* ... */
-#define PM3BackgroundColor 0xb0c8
-/* ... */
-#define PM3ColorDDAMode 0x87e0
-#define PM3ColorDDAModeAnd 0xabe0
-#define PM3ColorDDAModeOr 0xabe8
-#define PM3CommandInterrupt 0xa990
-#define PM3ConstantColorDDA 0xafb0
- #define PM3ConstantColorDDA_R(r) ((r) & 0xff)
- #define PM3ConstantColorDDA_G(g) (((g) & 0xff) << 8)
- #define PM3ConstantColorDDA_B(b) (((b) & 0xff) << 16)
- #define PM3ConstantColorDDA_A(a) (((a) & 0xff) << 24)
-#define PM3ContextData 0x8dd0
-#define PM3ContextDump 0x8dc0
-#define PM3ContextRestore 0x8dc8
-#define PM3Continue 0x8058
-#define PM3ContinueNewDom 0x8048
-#define PM3ContinueNewLine 0x8040
-#define PM3ContinueNewSub 0x8050
-#define PM3Count 0x8030
-/* ... */
-#define PM3DeltaControl 0x9350
-#define PM3DeltaControlAnd 0xab20
-#define PM3DeltaControlOr 0xab28
-#define PM3DeltaMode 0x9300
-#define PM3DeltaModeAnd 0xaad0
-#define PM3DeltaModeOr 0xaad8
-/* ... */
-#define PM3DitherMode 0x8818
-#define PM3DitherModeAnd 0xacd0
-#define PM3DitherModeOr 0xacd8
-/* ... */
-#define PM3dXDom 0x8008
-#define PM3dXSub 0x8018
-#define PM3dY 0x8028
-/* ... */
-#define PM3FBBlockColor 0x8ac8
-#define PM3FBBlockColor0 0xb060
-#define PM3FBBlockColor1 0xb068
-#define PM3FBBlockColor2 0xb070
-#define PM3FBBlockColor3 0xb078
-#define PM3FBBlockColorBack 0xb0a0
-#define PM3FBBlockColorBack0 0xb080
-#define PM3FBBlockColorBack1 0xb088
-#define PM3FBBlockColorBack2 0xb090
-#define PM3FBBlockColorBack3 0xb098
-#define PM3FBColor 0x8a98
-#define PM3FBDestReadBufferAddr0 0xae80
-#define PM3FBDestReadBufferAddr1 0xae88
-#define PM3FBDestReadBufferAddr2 0xae90
-#define PM3FBDestReadBufferAddr3 0xae98
-#define PM3FBDestReadBufferOffset0 0xaea0
-#define PM3FBDestReadBufferOffset1 0xaea8
-#define PM3FBDestReadBufferOffset2 0xaeb0
-#define PM3FBDestReadBufferOffset3 0xaeb8
- #define PM3FBDestReadBufferOffset_XOffset(x) ((x) & 0xffff)
- #define PM3FBDestReadBufferOffset_YOffset(y) (((y) & 0xffff) << 16)
-#define PM3FBDestReadBufferWidth0 0xaec0
-#define PM3FBDestReadBufferWidth1 0xaec8
-#define PM3FBDestReadBufferWidth2 0xaed0
-#define PM3FBDestReadBufferWidth3 0xaed8
- #define PM3FBDestReadBufferWidth_Width(w) ((w) & 0x0fff)
-
-#define PM3FBDestReadEnables 0xaee8
-#define PM3FBDestReadEnablesAnd 0xad20
-#define PM3FBDestReadEnablesOr 0xad28
- #define PM3FBDestReadEnables_E(e) ((e) & 0xff)
- #define PM3FBDestReadEnables_E0 (1 << 0)
- #define PM3FBDestReadEnables_E1 (1 << 1)
- #define PM3FBDestReadEnables_E2 (1 << 2)
- #define PM3FBDestReadEnables_E3 (1 << 3)
- #define PM3FBDestReadEnables_E4 (1 << 4)
- #define PM3FBDestReadEnables_E5 (1 << 5)
- #define PM3FBDestReadEnables_E6 (1 << 6)
- #define PM3FBDestReadEnables_E7 (1 << 7)
- #define PM3FBDestReadEnables_R(r) (((r) & 0xff) << 8)
- #define PM3FBDestReadEnables_R0 (1 << 8)
- #define PM3FBDestReadEnables_R1 (1 << 9)
- #define PM3FBDestReadEnables_R2 (1 << 10)
- #define PM3FBDestReadEnables_R3 (1 << 11)
- #define PM3FBDestReadEnables_R4 (1 << 12)
- #define PM3FBDestReadEnables_R5 (1 << 13)
- #define PM3FBDestReadEnables_R6 (1 << 14)
- #define PM3FBDestReadEnables_R7 (1 << 15)
- #define PM3FBDestReadEnables_ReferenceAlpha(a) (((a) & 0xff) << 24)
-
-#define PM3FBDestReadMode 0xaee0
-#define PM3FBDestReadModeAnd 0xac90
-#define PM3FBDestReadModeOr 0xac98
- #define PM3FBDestReadMode_ReadDisable (0 << 0)
- #define PM3FBDestReadMode_ReadEnable (1 << 0)
- #define PM3FBDestReadMode_StripePitch(sp) (((sp) & 0x7) << 2)
- #define PM3FBDestReadMode_StripeHeight(sh) (((sh) & 0x7) << 7)
- #define PM3FBDestReadMode_Enable0 (1 << 8)
- #define PM3FBDestReadMode_Enable1 (1 << 9)
- #define PM3FBDestReadMode_Enable2 (1 << 10)
- #define PM3FBDestReadMode_Enable3 (1 << 11)
- #define PM3FBDestReadMode_Layout0(l) (((l) & 0x3) << 12)
- #define PM3FBDestReadMode_Layout1(l) (((l) & 0x3) << 14)
- #define PM3FBDestReadMode_Layout2(l) (((l) & 0x3) << 16)
- #define PM3FBDestReadMode_Layout3(l) (((l) & 0x3) << 18)
- #define PM3FBDestReadMode_Origin0 (1 << 20)
- #define PM3FBDestReadMode_Origin1 (1 << 21)
- #define PM3FBDestReadMode_Origin2 (1 << 22)
- #define PM3FBDestReadMode_Origin3 (1 << 23)
- #define PM3FBDestReadMode_Blocking (1 << 24)
- #define PM3FBDestReadMode_UseReadEnabled (1 << 26)
- #define PM3FBDestReadMode_AlphaFiltering (1 << 27)
-
-#define PM3FBHardwareWriteMask 0x8ac0
-#define PM3FBSoftwareWriteMask 0x8820
-#define PM3FBData 0x8aa0
-#define PM3FBSourceData 0x8aa8
-#define PM3FBSourceReadBufferAddr 0xaf08
-#define PM3FBSourceReadBufferOffset 0xaf10
- #define PM3FBSourceReadBufferOffset_XOffset(x) ((x) & 0xffff)
- #define PM3FBSourceReadBufferOffset_YOffset(y) (((y) & 0xffff) << 16)
-#define PM3FBSourceReadBufferWidth 0xaf18
- #define PM3FBSourceReadBufferWidth_Width(w) ((w) & 0x0fff)
-#define PM3FBSourceReadMode 0xaf00
-#define PM3FBSourceReadModeAnd 0xaca0
-#define PM3FBSourceReadModeOr 0xaca8
- #define PM3FBSourceReadMode_ReadDisable (0 << 0)
- #define PM3FBSourceReadMode_ReadEnable (1 << 0)
- #define PM3FBSourceReadMode_StripePitch(sp) (((sp) & 0x7) << 2)
- #define PM3FBSourceReadMode_StripeHeight(sh) (((sh) & 0x7) << 7)
- #define PM3FBSourceReadMode_Layout(l) (((l) & 0x3) << 8)
- #define PM3FBSourceReadMode_Origin (1 << 10)
- #define PM3FBSourceReadMode_Blocking (1 << 11)
- #define PM3FBSourceReadMode_UserTexelCoord (1 << 13)
- #define PM3FBSourceReadMode_WrapXEnable (1 << 14)
- #define PM3FBSourceReadMode_WrapYEnable (1 << 15)
- #define PM3FBSourceReadMode_WrapX(w) (((w) & 0xf) << 16)
- #define PM3FBSourceReadMode_WrapY(w) (((w) & 0xf) << 20)
- #define PM3FBSourceReadMode_ExternalSourceData (1 << 24)
-#define PM3FBWriteBufferAddr0 0xb000
-#define PM3FBWriteBufferAddr1 0xb008
-#define PM3FBWriteBufferAddr2 0xb010
-#define PM3FBWriteBufferAddr3 0xb018
-
-#define PM3FBWriteBufferOffset0 0xb020
-#define PM3FBWriteBufferOffset1 0xb028
-#define PM3FBWriteBufferOffset2 0xb030
-#define PM3FBWriteBufferOffset3 0xb038
- #define PM3FBWriteBufferOffset_XOffset(x) ((x) & 0xffff)
- #define PM3FBWriteBufferOffset_YOffset(y) (((y) & 0xffff) << 16)
-
-#define PM3FBWriteBufferWidth0 0xb040
-#define PM3FBWriteBufferWidth1 0xb048
-#define PM3FBWriteBufferWidth2 0xb050
-#define PM3FBWriteBufferWidth3 0xb058
- #define PM3FBWriteBufferWidth_Width(w) ((w) & 0x0fff)
-
-#define PM3FBWriteMode 0x8ab8
-#define PM3FBWriteModeAnd 0xacf0
-#define PM3FBWriteModeOr 0xacf8
- #define PM3FBWriteMode_WriteDisable (0 << 0)
- #define PM3FBWriteMode_WriteEnable (1 << 0)
- #define PM3FBWriteMode_Replicate (1 << 4)
- #define PM3FBWriteMode_OpaqueSpan (1 << 5)
- #define PM3FBWriteMode_StripePitch(p) (((p) & 0x7) << 6)
- #define PM3FBWriteMode_StripeHeight(h) (((h) & 0x7) << 9)
- #define PM3FBWriteMode_Enable0 (1 << 12)
- #define PM3FBWriteMode_Enable1 (1 << 13)
- #define PM3FBWriteMode_Enable2 (1 << 14)
- #define PM3FBWriteMode_Enable3 (1 << 15)
- #define PM3FBWriteMode_Layout0(l) (((l) & 0x3) << 16)
- #define PM3FBWriteMode_Layout1(l) (((l) & 0x3) << 18)
- #define PM3FBWriteMode_Layout2(l) (((l) & 0x3) << 20)
- #define PM3FBWriteMode_Layout3(l) (((l) & 0x3) << 22)
- #define PM3FBWriteMode_Origin0 (1 << 24)
- #define PM3FBWriteMode_Origin1 (1 << 25)
- #define PM3FBWriteMode_Origin2 (1 << 26)
- #define PM3FBWriteMode_Origin3 (1 << 27)
-#define PM3ForegroundColor 0xb0c0
-/* ... */
-#define PM3GIDMode 0xb538
-#define PM3GIDModeAnd 0xb5b0
-#define PM3GIDModeOr 0xb5b8
-/* ... */
-#define PM3LBDestReadBufferAddr 0xb510
-#define PM3LBDestReadBufferOffset 0xb518
-#define PM3LBDestReadEnables 0xb508
-#define PM3LBDestReadEnablesAnd 0xb590
-#define PM3LBDestReadEnablesOr 0xb598
-#define PM3LBDestReadMode 0xb500
-#define PM3LBDestReadModeAnd 0xb580
-#define PM3LBDestReadModeOr 0xb588
- #define PM3LBDestReadMode_Disable (0 << 0)
- #define PM3LBDestReadMode_Enable (1 << 0)
- #define PM3LBDestReadMode_StripePitch(p) (((p) & 0x7) << 2)
- #define PM3LBDestReadMode_StripeHeight(h) (((h) & 0x7) << 5)
- #define PM3LBDestReadMode_Layout (1 << 8)
- #define PM3LBDestReadMode_Origin (1 << 9)
- #define PM3LBDestReadMode_UserReadEnables (1 << 10)
- #define PM3LBDestReadMode_Packed16 (1 << 11)
- #define PM3LBDestReadMode_Width(w) (((w) & 0xfff) << 12)
-#define PM3LBReadFormat 0x8888
- #define PM3LBReadFormat_DepthWidth(w) (((w) & 0x3) << 0)
- #define PM3LBReadFormat_StencilWidth(w) (((w) & 0xf) << 2)
- #define PM3LBReadFormat_StencilPosition(p) (((p) & 0x1f) << 6)
- #define PM3LBReadFormat_FCPWidth(w) (((w) & 0xf) << 11)
- #define PM3LBReadFormat_FCPPosition(p) (((p) & 0x1f) << 15)
- #define PM3LBReadFormat_GIDWidth(w) (((w) & 0x7) << 20)
- #define PM3LBReadFormat_GIDPosition(p) (((p) & 0x1f) << 23)
-#define PM3LBSourceReadBufferAddr 0xb528
-#define PM3LBSourceReadBufferOffset 0xb530
-#define PM3LBSourceReadMode 0xb520
-#define PM3LBSourceReadModeAnd 0xb5a0
-#define PM3LBSourceReadModeOr 0xb5a8
- #define PM3LBSourceReadMode_Enable (1 << 0)
- #define PM3LBSourceReadMode_StripePitch(p) (((p) & 0x7) << 2)
- #define PM3LBSourceReadMode_StripeHeight(h) (((h) & 0x7) << 5)
- #define PM3LBSourceReadMode_Layout (1 << 8)
- #define PM3LBSourceReadMode_Origin (1 << 9)
- #define PM3LBSourceReadMode_Packed16 (1 << 10)
- #define PM3LBSourceReadMode_Width(w) (((w) & 0xfff) << 11)
-#define PM3LBStencil 0x88a8
-#define PM3LBWriteBufferAddr 0xb540
-#define PM3LBWriteBufferOffset 0xb548
-#define PM3LBWriteFormat 0x88c8
- #define PM3LBWriteFormat_DepthWidth(w) (((w) & 0x3) << 0)
- #define PM3LBWriteFormat_StencilWidth(w) (((w) & 0xf) << 2)
- #define PM3LBWriteFormat_StencilPosition(p) (((p) & 0x1f) << 6)
- #define PM3LBWriteFormat_GIDWidth(w) (((w) & 0x7) << 20)
- #define PM3LBWriteFormat_GIDPosition(p) (((p) & 0x1f) << 23)
-#define PM3LBWriteMode 0x88c0
-#define PM3LBWriteModeAnd 0xac80
-#define PM3LBWriteModeOr 0xac88
- #define PM3LBWriteMode_WriteDisable (0 << 0)
- #define PM3LBWriteMode_WriteEnable (1 << 0)
- #define PM3LBWriteMode_StripePitch(p) (((p) & 0x7) << 3)
- #define PM3LBWriteMode_StripeHeight(h) (((h) & 0x7) << 6)
- #define PM3LBWriteMode_Layout (1 << 9)
- #define PM3LBWriteMode_Origin (1 << 10)
- #define PM3LBWriteMode_Packed16 (1 << 11)
- #define PM3LBWriteMode_Width(w) (((w) & 0xfff) << 12)
-/* ... */
-#define PM3LineStippleMode 0x81a8
-#define PM3LineStippleModeAnd 0xabc0
-#define PM3LineStippleModeOr 0xabc8
-#define PM3LoadLineStippleCounters 0x81b0
-/* ... */
-#define PM3LogicalOpMode 0x8828
-#define PM3LogicalOpModeAnd 0xace0
-#define PM3LogicalOpModeOr 0xace8
- #define PM3LogicalOpMode_Disable (0 << 0)
- #define PM3LogicalOpMode_Enable (1 << 0)
- #define PM3LogicalOpMode_LogicOp(op) (((op) & 0xf) << 1)
- #define PM3LogicalOpMode_UseConstantWriteData_Disable (0 << 5)
- #define PM3LogicalOpMode_UseConstantWriteData_Enable (1 << 5)
- #define PM3LogicalOpMode_Background_Disable (0 << 6)
- #define PM3LogicalOpMode_Background_Enable (1 << 6)
- #define PM3LogicalOpMode_Background_LogicOp(op) (((op) & 0xf) << 7)
- #define PM3LogicalOpMode_UseConstantSource_Disable (0 << 11)
- #define PM3LogicalOpMode_UseConstantSource_Enable (1 << 11)
-/* ... */
-#define PM3LUT 0x8e80
-#define PM3LUTAddress 0x84d0
-#define PM3LUTData 0x84c8
-#define PM3LUTIndex 0x84c0
-#define PM3LUTMode 0xb378
-#define PM3LUTModeAnd 0xad70
-#define PM3LUTModeOr 0xad78
-#define PM3LUTTransfer 0x84d8
-/* ... */
-#define PM3PixelSize 0x80c0
- #define PM3PixelSize_GLOBAL_32BIT (0 << 0)
- #define PM3PixelSize_GLOBAL_16BIT (1 << 0)
- #define PM3PixelSize_GLOBAL_8BIT (2 << 0)
- #define PM3PixelSize_RASTERIZER_32BIT (0 << 2)
- #define PM3PixelSize_RASTERIZER_16BIT (1 << 2)
- #define PM3PixelSize_RASTERIZER_8BIT (2 << 2)
- #define PM3PixelSize_SCISSOR_AND_STIPPLE_32BIT (0 << 4)
- #define PM3PixelSize_SCISSOR_AND_STIPPLE_16BIT (1 << 4)
- #define PM3PixelSize_SCISSOR_AND_STIPPLE_8BIT (2 << 4)
- #define PM3PixelSize_TEXTURE_32BIT (0 << 6)
- #define PM3PixelSize_TEXTURE_16BIT (1 << 6)
- #define PM3PixelSize_TEXTURE_8BIT (2 << 6)
- #define PM3PixelSize_LUT_32BIT (0 << 8)
- #define PM3PixelSize_LUT_16BIT (1 << 8)
- #define PM3PixelSize_LUT_8BIT (2 << 8)
- #define PM3PixelSize_FRAMEBUFFER_32BIT (0 << 10)
- #define PM3PixelSize_FRAMEBUFFER_16BIT (1 << 10)
- #define PM3PixelSize_FRAMEBUFFER_8BIT (2 << 10)
- #define PM3PixelSize_LOGICAL_OP_32BIT (0 << 12)
- #define PM3PixelSize_LOGICAL_OP_16BIT (1 << 12)
- #define PM3PixelSize_LOGICAL_OP_8BIT (2 << 12)
- #define PM3PixelSize_LOCALBUFFER_32BIT (0 << 14)
- #define PM3PixelSize_LOCALBUFFER_16BIT (1 << 14)
- #define PM3PixelSize_LOCALBUFFER_8BIT (2 << 14)
- #define PM3PixelSize_SETUP_32BIT (0 << 16)
- #define PM3PixelSize_SETUP_16BIT (1 << 16)
- #define PM3PixelSize_SETUP_8BIT (2 << 16)
- #define PM3PixelSize_GLOBAL (0 << 31)
- #define PM3PixelSize_INDIVIDUAL (1 << 31)
-/* ... */
-#define PM3Render 0x8038
- #define PM3Render_AreaStipple_Disable (0 << 0)
- #define PM3Render_AreaStipple_Enable (1 << 0)
- #define PM3Render_LineStipple_Disable (0 << 1)
- #define PM3Render_LineStipple_Enable (1 << 1)
- #define PM3Render_ResetLine_Disable (0 << 2)
- #define PM3Render_ResetLine_Enable (1 << 2)
- #define PM3Render_FastFill_Disable (0 << 3)
- #define PM3Render_FastFill_Enable (1 << 3)
- #define PM3Render_Primitive_Line (0 << 6)
- #define PM3Render_Primitive_Trapezoid (1 << 6)
- #define PM3Render_Primitive_Point (2 << 6)
- #define PM3Render_Antialias_Disable (0 << 8)
- #define PM3Render_Antialias_Enable (1 << 8)
- #define PM3Render_Antialias_SubPixelRes_4x4 (0 << 9)
- #define PM3Render_Antialias_SubPixelRes_8x8 (1 << 9)
- #define PM3Render_UsePointTable_Disable (0 << 10)
- #define PM3Render_UsePointTable_Enable (1 << 10)
- #define PM3Render_SyncOnbitMask_Disable (0 << 11)
- #define PM3Render_SyncOnBitMask_Enable (1 << 11)
- #define PM3Render_SyncOnHostData_Disable (0 << 12)
- #define PM3Render_SyncOnHostData_Enable (1 << 12)
- #define PM3Render_Texture_Disable (0 << 13)
- #define PM3Render_Texture_Enable (1 << 13)
- #define PM3Render_Fog_Disable (0 << 14)
- #define PM3Render_Fog_Enable (1 << 14)
- #define PM3Render_Coverage_Disable (0 << 15)
- #define PM3Render_Coverage_Enable (1 << 15)
- #define PM3Render_SubPixelCorrection_Disable (0 << 16)
- #define PM3Render_SubPixelCorrection_Enable (1 << 16)
- #define PM3Render_SpanOperation_Disable (0 << 18)
- #define PM3Render_SpanOperation_Enable (1 << 18)
- #define PM3Render_FBSourceRead_Disable (0 << 27)
- #define PM3Render_FBSourceRead_Enable (1 << 27)
-#define PM3RasterizerMode 0x80a0
-#define PM3RasterizerModeAnd 0xaba0
-#define PM3RasterizerModeOr 0xaba8
-#define PM3RectangleHeight 0x94e0
-#define PM3RepeatLine 0x9328
-#define PM3ResetPickResult 0x8c20
-#define PM3RLEMask 0x8c48
-#define PM3RouterMode 0x8840
-#define PM3RStart 0x8780
-#define PM3S1Start 0x8400
-#define PM3aveLineStippleCounters 0x81c0
-#define PM3ScissorMaxXY 0x8190
-#define PM3ScissorMinXY 0x8188
-#define PM3ScissorMode 0x8180
-#define PM3ScissorModeAnd 0xabb0
-#define PM3ScissorModeOr 0xabb8
-#define PM3ScreenSize 0x8198
-#define PM3Security 0x8908
-#define PM3SetLogicalTexturePage 0xb360
-#define PM3SizeOfFramebuffer 0xb0a8
-#define PM3SStart 0x8388
-#define PM3StartXDom 0x8000
-#define PM3StartXSub 0x8010
-#define PM3StartY 0x8020
-/* ... */
-#define PM3SpanColorMask 0x8168
-/* ... */
-#define PM3TextureApplicationMode 0x8680
-#define PM3TextureApplicationModeAnd 0xac50
-#define PM3TextureApplicationModeOr 0xac58
-#define PM3TextureBaseAddr 0x8500
-#define PM3TextureCacheControl 0x8490
-#define PM3TextureChromaLower0 0x84f0
-#define PM3TextureChromaLower1 0x8608
-#define PM3TextureChromaUpper0 0x84e8
-#define PM3TextureChromaUpper1 0x8600
-#define PM3TextureCompositeAlphaMode0 0xb310
-#define PM3TextureCompositeAlphaMode0And 0xb390
-#define PM3TextureCompositeAlphaMode0Or 0xb398
-#define PM3TextureCompositeAlphaMode1 0xb320
-#define PM3TextureCompositeAlphaMode1And 0xb3b0
-#define PM3TextureCompositeAlphaMode1Or 0xb3b8
-#define PM3TextureCompositeColorMode0 0xb308
-#define PM3TextureCompositeColorMode0And 0xb380
-#define PM3TextureCompositeColorMode0Or 0xb388
-#define PM3TextureCompositeColorMode1 0xb318
-#define PM3TextureCompositeColorMode1And 0xb3a0
-#define PM3TextureCompositeColorMode1Or 0xb3a8
-#define PM3TextureCompositeFactor0 0xb328
-#define PM3TextureCompositeFactor1 0xb330
-#define PM3TextureCompositeMode 0xb300
-#define PM3TextureCoordMode 0x8380
-#define PM3TextureCoordModeAnd 0xac20
-#define PM3TextureCoordModeOr 0xac28
-#define PM3TextureData 0x88e8
-/*
-#define PM3TextureDownloadControl 0x0108
-*/
-#define PM3TextureDownloadOffset 0x88f0
-#define PM3TextureEnvColor 0x8688
-#define PM3TextureFilterMode 0x84e0
-#define PM3TextureFilterModeAnd 0xad50
-#define PM3TextureFilterModeOr 0xad58
-#define PM3TextureIndexMode0 0xb338
-#define PM3TextureIndexMode0And 0xb3c0
-#define PM3TextureIndexMode0Or 0xb3c8
-#define PM3TextureIndexMode1 0xb340
-#define PM3TextureIndexMode1And 0xb3d0
-#define PM3TextureIndexMode1Or 0xb3d8
-/* ... */
-#define PM3TextureMapSize 0xb428
-#define PM3TextureMapWidth0 0x8580
-#define PM3TextureMapWidth1 0x8588
- #define PM3TextureMapWidth_Width(w) (((w) & 0xfff) << 0)
- #define PM3TextureMapWidth_BorderLayout (1 << 12)
- #define PM3TextureMapWidth_Layout_Linear (0 << 13)
- #define PM3TextureMapWidth_Layout_Patch64 (1 << 13)
- #define PM3TextureMapWidth_Layout_Patch32_2 (2 << 13)
- #define PM3TextureMapWidth_Layout_Patch2 (3 << 13)
- #define PM3TextureMapWidth_HostTexture (1 << 15)
-#define PM3TextureReadMode0 0xb400
-#define PM3TextureReadMode0And 0xac30
-#define PM3TextureReadMode0Or 0xac38
-#define PM3TextureReadMode1 0xb408
-#define PM3TextureReadMode1And 0xad40
-#define PM3TextureReadMode1Or 0xad48
-/* ... */
-#define PM3WaitForCompletion 0x80b8
-#define PM3Window 0x8980
- #define PM3Window_ForceLBUpdate (1 << 3)
- #define PM3Window_LBUpdateSource (1 << 4)
- #define PM3Window_FrameCount(c) (((c) & 0xff) << 9)
- #define PM3Window_StencilFCP (1 << 17)
- #define PM3Window_DepthFCP (1 << 18)
- #define PM3Window_OverrideWriteFiltering (1 << 19)
-#define PM3WindowAnd 0xab80
-#define PM3WindowOr 0xab88
-#define PM3WindowOrigin 0x81c8
-#define PM3XBias 0x9480
-#define PM3YBias 0x9488
-#define PM3YLimits 0x80a8
-#define PM3UVMode 0x8f00
-#define PM3ZFogBias 0x86b8
-#define PM3ZStart 0xadd8
-#define PM3ZStartL 0x89b8
-#define PM3ZStartU 0x89b0
-
-
-/**********************************************
-* GLINT Permedia3 2D setup Unit *
-***********************************************/
-#define PM3Config2D 0xb618
- #define PM3Config2D_OpaqueSpan (1 << 0)
- #define PM3Config2D_MultiRXBlit (1 << 1)
- #define PM3Config2D_UserScissorEnable (1 << 2)
- #define PM3Config2D_FBDestReadEnable (1 << 3)
- #define PM3Config2D_AlphaBlendEnable (1 << 4)
- #define PM3Config2D_DitherEnable (1 << 5)
- #define PM3Config2D_ForegroundROPEnable (1 << 6)
- #define PM3Config2D_ForegroundROP(rop) (((rop) & 0xf) << 7)
- #define PM3Config2D_BackgroundROPEnable (1 << 11)
- #define PM3Config2D_BackgroundROP(rop) (((rop) & 0xf) << 12)
- #define PM3Config2D_UseConstantSource (1 << 16)
- #define PM3Config2D_FBWriteEnable (1 << 17)
- #define PM3Config2D_Blocking (1 << 18)
- #define PM3Config2D_ExternalSourceData (1 << 19)
- #define PM3Config2D_LUTModeEnable (1 << 20)
-#define PM3DownloadGlyphwidth 0xb658
- #define PM3DownloadGlyphwidth_GlyphWidth(gw) ((gw) & 0xffff)
-#define PM3DownloadTarget 0xb650
- #define PM3DownloadTarget_TagName(tag) ((tag) & 0x1fff)
-#define PM3GlyphData 0xb660
-#define PM3GlyphPosition 0xb608
- #define PM3GlyphPosition_XOffset(x) ((x) & 0xffff)
- #define PM3GlyphPosition_YOffset(y) (((y) & 0xffff) << 16)
-#define PM3Packed4Pixels 0xb668
-#define PM3Packed8Pixels 0xb630
-#define PM3Packed16Pixels 0xb638
-#define PM3RectanglePosition 0xb600
- #define PM3RectanglePosition_XOffset(x) ((x) & 0xffff)
- #define PM3RectanglePosition_YOffset(y) (((y) & 0xffff) << 16)
-#define PM3Render2D 0xb640
- #define PM3Render2D_Width(w) ((w) & 0x0fff)
- #define PM3Render2D_Operation_Normal (0 << 12)
- #define PM3Render2D_Operation_SyncOnHostData (1 << 12)
- #define PM3Render2D_Operation_SyncOnBitMask (2 << 12)
- #define PM3Render2D_Operation_PatchOrderRendering (3 << 12)
- #define PM3Render2D_FBSourceReadEnable (1 << 14)
- #define PM3Render2D_SpanOperation (1 << 15)
- #define PM3Render2D_Height(h) (((h) & 0x0fff) << 16)
- #define PM3Render2D_XPositive (1 << 28)
- #define PM3Render2D_YPositive (1 << 29)
- #define PM3Render2D_AreaStippleEnable (1 << 30)
- #define PM3Render2D_TextureEnable (1 << 31)
-#define PM3Render2DGlyph 0xb648
- #define PM3Render2DGlyph_Width(w) ((w) & 0x7f)
- #define PM3Render2DGlyph_Height(h) (((h) & 0x7f) << 7)
- #define PM3Render2DGlyph_XOffset(x) (((x) & 0x1ff) << 14)
- #define PM3Render2DGlyph_YOffset(y) (((y) & 0x1ff) << 23)
-#define PM3RenderPatchOffset 0xb610
- #define PM3RenderPatchOffset_XOffset(x) ((x) & 0xffff)
- #define PM3RenderPatchOffset_YOffset(y) (((y) & 0xffff) << 16)
-#define PM3RLCount 0xb678
- #define PM3RLCount_Count(c) ((c) & 0x0fff)
-#define PM3RLData 0xb670
-
-/**********************************************
-* GLINT Permedia3 Alias Register *
-***********************************************/
-#define PM3FillBackgroundColor 0x8330
-#define PM3FillConfig2D0 0x8338
-#define PM3FillConfig2D1 0x8360
- #define PM3FillConfig2D_OpaqueSpan (1 << 0)
- #define PM3FillConfig2D_MultiRXBlit (1 << 1)
- #define PM3FillConfig2D_UserScissorEnable (1 << 2)
- #define PM3FillConfig2D_FBDestReadEnable (1 << 3)
- #define PM3FillConfig2D_AlphaBlendEnable (1 << 4)
- #define PM3FillConfig2D_DitherEnable (1 << 5)
- #define PM3FillConfig2D_ForegroundROPEnable (1 << 6)
- #define PM3FillConfig2D_ForegroundROP(rop) (((rop) & 0xf) << 7)
- #define PM3FillConfig2D_BackgroundROPEnable (1 << 11)
- #define PM3FillConfig2D_BackgroundROP(rop) (((rop) & 0xf) << 12)
- #define PM3FillConfig2D_UseConstantSource (1 << 16)
- #define PM3FillConfig2D_FBWriteEnable (1 << 17)
- #define PM3FillConfig2D_Blocking (1 << 18)
- #define PM3FillConfig2D_ExternalSourceData (1 << 19)
- #define PM3FillConfig2D_LUTModeEnable (1 << 20)
-#define PM3FillFBDestReadBufferAddr 0x8310
-#define PM3FillFBSourceReadBufferAddr 0x8308
-#define PM3FillFBSourceReadBufferOffset 0x8340
- #define PM3FillFBSourceReadBufferOffset_XOffset(x) ((x) & 0xffff)
- #define PM3FillFBSourceReadBufferOffset_YOffset(y) \
- (((y) & 0xffff) << 16)
-#define PM3FillFBWriteBufferAddr 0x8300
-#define PM3FillForegroundColor0 0x8328
-#define PM3FillForegroundColor1 0x8358
-#define PM3FillGlyphPosition 0x8368
- #define PM3FillGlyphPosition_XOffset(x) ((x) & 0xffff)
- #define PM3FillGlyphPosition_YOffset(y) (((y) & 0xffff) << 16)
-#define PM3FillRectanglePosition 0x8348
- #define PM3FillRectanglePosition_XOffset(x) ((x) & 0xffff)
- #define PM3FillRectanglePosition_YOffset(y) (((y) & 0xffff) << 16)
-
-/* a few more useful registers & regs value... */
-#define PM3Sync 0x8c40
- #define PM3Sync_Tag 0x188
-#define PM3FilterMode 0x8c00
- #define PM3FilterModeSync 0x400
-#define PM3OutputFifo 0x2000
-#define PM3StatisticMode 0x8c08
-#define PM3AreaStippleMode 0x81a0
-#define AreaStipplePattern_indexed(i) (0x8200 + ((i) * 0x8))
-
-#define PM3DepthMode 0x89a0
-#define PM3StencilMode 0x8988
-#define PM3StencilData 0x8990
-#define PM3TextureReadMode 0x8670
-#define PM3FogMode 0x8690
-#define PM3ChromaTestMode 0x8f18
-#define PM3YUVMode 0x8f00
-#define PM3BitMaskPattern 0x8068
-
-/* ***************************** */
-/* ***** pm3fb IOCTL const ***** */
-/* ***************************** */
-#define PM3FBIO_RESETCHIP 0x504D33FF /* 'PM3\377' */
-
-/* ***************************************** */
-/* ***** pm3fb useful define and macro ***** */
-/* ***************************************** */
-
-/* fifo size in chip */
-#define PM3_FIFO_SIZE 120
-#define PM3_REGS_SIZE 0x10000
-#define PM3_MAX_PIXCLOCK 300000
-
-#endif /* PM3FB_H */
diff --git a/ANDROID_3.4.5/include/video/pmag-ba-fb.h b/ANDROID_3.4.5/include/video/pmag-ba-fb.h
deleted file mode 100644
index fceb6c0f..00000000
--- a/ANDROID_3.4.5/include/video/pmag-ba-fb.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * linux/include/video/pmag-ba-fb.h
- *
- * TURBOchannel PMAG-BA Color Frame Buffer (CFB) card support,
- * Copyright (C) 1999, 2000, 2001 by
- * Michael Engel <engel@unix-ag.org>,
- * Karsten Merker <merker@linuxtag.org>
- * Copyright (c) 2005 Maciej W. Rozycki
- *
- * This file is subject to the terms and conditions of the GNU General
- * Public License. See the file COPYING in the main directory of this
- * archive for more details.
- */
-
-/* IOmem resource offsets. */
-#define PMAG_BA_FBMEM 0x000000 /* frame buffer */
-#define PMAG_BA_BT459 0x200000 /* Bt459 RAMDAC */
-#define PMAG_BA_IRQ 0x300000 /* IRQ acknowledge */
-#define PMAG_BA_ROM 0x380000 /* REX option ROM */
-#define PMAG_BA_BT438 0x380000 /* Bt438 clock chip reset */
-#define PMAG_BA_SIZE 0x400000 /* address space size */
-
-/* Bt459 register offsets, byte-wide registers. */
-#define BT459_ADDR_LO 0x0 /* address low */
-#define BT459_ADDR_HI 0x4 /* address high */
-#define BT459_DATA 0x8 /* data window register */
-#define BT459_CMAP 0xc /* color map window register */
diff --git a/ANDROID_3.4.5/include/video/pmagb-b-fb.h b/ANDROID_3.4.5/include/video/pmagb-b-fb.h
deleted file mode 100644
index 7539b908..00000000
--- a/ANDROID_3.4.5/include/video/pmagb-b-fb.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * linux/include/video/pmagb-b-fb.h
- *
- * TURBOchannel PMAGB-B Smart Frame Buffer (SFB) card support,
- * Copyright (C) 1999, 2000, 2001 by
- * Michael Engel <engel@unix-ag.org> and
- * Karsten Merker <merker@linuxtag.org>
- * Copyright (c) 2005 Maciej W. Rozycki
- *
- * This file is subject to the terms and conditions of the GNU General
- * Public License. See the file COPYING in the main directory of this
- * archive for more details.
- */
-
-/* IOmem resource offsets. */
-#define PMAGB_B_ROM 0x000000 /* REX option ROM */
-#define PMAGB_B_SFB 0x100000 /* SFB ASIC */
-#define PMAGB_B_GP0 0x140000 /* general purpose output 0 */
-#define PMAGB_B_GP1 0x180000 /* general purpose output 1 */
-#define PMAGB_B_BT459 0x1c0000 /* Bt459 RAMDAC */
-#define PMAGB_B_FBMEM 0x200000 /* frame buffer */
-#define PMAGB_B_SIZE 0x400000 /* address space size */
-
-/* IOmem register offsets. */
-#define SFB_REG_VID_HOR 0x64 /* video horizontal setup */
-#define SFB_REG_VID_VER 0x68 /* video vertical setup */
-#define SFB_REG_VID_BASE 0x6c /* video base address */
-#define SFB_REG_TCCLK_COUNT 0x78 /* TURBOchannel clock count */
-#define SFB_REG_VIDCLK_COUNT 0x7c /* video clock count */
-
-/* Video horizontal setup register constants. All bits are r/w. */
-#define SFB_VID_HOR_BP_SHIFT 0x15 /* back porch */
-#define SFB_VID_HOR_BP_MASK 0x7f
-#define SFB_VID_HOR_SYN_SHIFT 0x0e /* sync pulse */
-#define SFB_VID_HOR_SYN_MASK 0x7f
-#define SFB_VID_HOR_FP_SHIFT 0x09 /* front porch */
-#define SFB_VID_HOR_FP_MASK 0x1f
-#define SFB_VID_HOR_PIX_SHIFT 0x00 /* active video */
-#define SFB_VID_HOR_PIX_MASK 0x1ff
-
-/* Video vertical setup register constants. All bits are r/w. */
-#define SFB_VID_VER_BP_SHIFT 0x16 /* back porch */
-#define SFB_VID_VER_BP_MASK 0x3f
-#define SFB_VID_VER_SYN_SHIFT 0x10 /* sync pulse */
-#define SFB_VID_VER_SYN_MASK 0x3f
-#define SFB_VID_VER_FP_SHIFT 0x0b /* front porch */
-#define SFB_VID_VER_FP_MASK 0x1f
-#define SFB_VID_VER_SL_SHIFT 0x00 /* active scan lines */
-#define SFB_VID_VER_SL_MASK 0x7ff
-
-/* Video base address register constants. All bits are r/w. */
-#define SFB_VID_BASE_MASK 0x1ff /* video base row address */
-
-/* Bt459 register offsets, byte-wide registers. */
-#define BT459_ADDR_LO 0x0 /* address low */
-#define BT459_ADDR_HI 0x4 /* address high */
-#define BT459_DATA 0x8 /* data window register */
-#define BT459_CMAP 0xc /* color map window register */
diff --git a/ANDROID_3.4.5/include/video/pxa168fb.h b/ANDROID_3.4.5/include/video/pxa168fb.h
deleted file mode 100644
index 8c2f385a..00000000
--- a/ANDROID_3.4.5/include/video/pxa168fb.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * linux/arch/arm/mach-mmp/include/mach/pxa168fb.h
- *
- * Copyright (C) 2009 Marvell International 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.
- */
-
-#ifndef __ASM_MACH_PXA168FB_H
-#define __ASM_MACH_PXA168FB_H
-
-#include <linux/fb.h>
-#include <linux/interrupt.h>
-
-/* Dumb interface */
-#define PIN_MODE_DUMB_24 0
-#define PIN_MODE_DUMB_18_SPI 1
-#define PIN_MODE_DUMB_18_GPIO 2
-#define PIN_MODE_DUMB_16_SPI 3
-#define PIN_MODE_DUMB_16_GPIO 4
-#define PIN_MODE_DUMB_12_SPI_GPIO 5
-#define PIN_MODE_SMART_18_SPI 6
-#define PIN_MODE_SMART_16_SPI 7
-#define PIN_MODE_SMART_8_SPI_GPIO 8
-
-/* Dumb interface pin allocation */
-#define DUMB_MODE_RGB565 0
-#define DUMB_MODE_RGB565_UPPER 1
-#define DUMB_MODE_RGB666 2
-#define DUMB_MODE_RGB666_UPPER 3
-#define DUMB_MODE_RGB444 4
-#define DUMB_MODE_RGB444_UPPER 5
-#define DUMB_MODE_RGB888 6
-
-/* default fb buffer size WVGA-32bits */
-#define DEFAULT_FB_SIZE (800 * 480 * 4)
-
-/*
- * Buffer pixel format
- * bit0 is for rb swap.
- * bit12 is for Y UorV swap
- */
-#define PIX_FMT_RGB565 0
-#define PIX_FMT_BGR565 1
-#define PIX_FMT_RGB1555 2
-#define PIX_FMT_BGR1555 3
-#define PIX_FMT_RGB888PACK 4
-#define PIX_FMT_BGR888PACK 5
-#define PIX_FMT_RGB888UNPACK 6
-#define PIX_FMT_BGR888UNPACK 7
-#define PIX_FMT_RGBA888 8
-#define PIX_FMT_BGRA888 9
-#define PIX_FMT_YUV422PACK 10
-#define PIX_FMT_YVU422PACK 11
-#define PIX_FMT_YUV422PLANAR 12
-#define PIX_FMT_YVU422PLANAR 13
-#define PIX_FMT_YUV420PLANAR 14
-#define PIX_FMT_YVU420PLANAR 15
-#define PIX_FMT_PSEUDOCOLOR 20
-#define PIX_FMT_UYVY422PACK (0x1000|PIX_FMT_YUV422PACK)
-
-/*
- * PXA LCD controller private state.
- */
-struct pxa168fb_info {
- struct device *dev;
- struct clk *clk;
- struct fb_info *info;
-
- void __iomem *reg_base;
- dma_addr_t fb_start_dma;
- u32 pseudo_palette[16];
-
- int pix_fmt;
- unsigned is_blanked:1;
- unsigned panel_rbswap:1;
- unsigned active:1;
-};
-
-/*
- * PXA fb machine information
- */
-struct pxa168fb_mach_info {
- char id[16];
-
- int num_modes;
- struct fb_videomode *modes;
-
- /*
- * Pix_fmt
- */
- unsigned pix_fmt;
-
- /*
- * I/O pin allocation.
- */
- unsigned io_pin_allocation_mode:4;
-
- /*
- * Dumb panel -- assignment of R/G/B component info to the 24
- * available external data lanes.
- */
- unsigned dumb_mode:4;
- unsigned panel_rgb_reverse_lanes:1;
-
- /*
- * Dumb panel -- GPIO output data.
- */
- unsigned gpio_output_mask:8;
- unsigned gpio_output_data:8;
-
- /*
- * Dumb panel -- configurable output signal polarity.
- */
- unsigned invert_composite_blank:1;
- unsigned invert_pix_val_ena:1;
- unsigned invert_pixclock:1;
- unsigned panel_rbswap:1;
- unsigned active:1;
- unsigned enable_lcd:1;
-};
-
-#endif /* __ASM_MACH_PXA168FB_H */
diff --git a/ANDROID_3.4.5/include/video/radeon.h b/ANDROID_3.4.5/include/video/radeon.h
deleted file mode 100644
index 56b188ab..00000000
--- a/ANDROID_3.4.5/include/video/radeon.h
+++ /dev/null
@@ -1,1993 +0,0 @@
-#ifndef _RADEON_H
-#define _RADEON_H
-
-
-#define RADEON_REGSIZE 0x4000
-
-
-#define MM_INDEX 0x0000
-#define MM_DATA 0x0004
-#define BUS_CNTL 0x0030
-#define HI_STAT 0x004C
-#define BUS_CNTL1 0x0034
-#define I2C_CNTL_1 0x0094
-#define CNFG_CNTL 0x00E0
-#define CNFG_MEMSIZE 0x00F8
-#define CNFG_APER_0_BASE 0x0100
-#define CNFG_APER_1_BASE 0x0104
-#define CNFG_APER_SIZE 0x0108
-#define CNFG_REG_1_BASE 0x010C
-#define CNFG_REG_APER_SIZE 0x0110
-#define PAD_AGPINPUT_DELAY 0x0164
-#define PAD_CTLR_STRENGTH 0x0168
-#define PAD_CTLR_UPDATE 0x016C
-#define PAD_CTLR_MISC 0x0aa0
-#define AGP_CNTL 0x0174
-#define BM_STATUS 0x0160
-#define CAP0_TRIG_CNTL 0x0950
-#define CAP1_TRIG_CNTL 0x09c0
-#define VIPH_CONTROL 0x0C40
-#define VENDOR_ID 0x0F00
-#define DEVICE_ID 0x0F02
-#define COMMAND 0x0F04
-#define STATUS 0x0F06
-#define REVISION_ID 0x0F08
-#define REGPROG_INF 0x0F09
-#define SUB_CLASS 0x0F0A
-#define BASE_CODE 0x0F0B
-#define CACHE_LINE 0x0F0C
-#define LATENCY 0x0F0D
-#define HEADER 0x0F0E
-#define BIST 0x0F0F
-#define REG_MEM_BASE 0x0F10
-#define REG_IO_BASE 0x0F14
-#define REG_REG_BASE 0x0F18
-#define ADAPTER_ID 0x0F2C
-#define BIOS_ROM 0x0F30
-#define CAPABILITIES_PTR 0x0F34
-#define INTERRUPT_LINE 0x0F3C
-#define INTERRUPT_PIN 0x0F3D
-#define MIN_GRANT 0x0F3E
-#define MAX_LATENCY 0x0F3F
-#define ADAPTER_ID_W 0x0F4C
-#define PMI_CAP_ID 0x0F50
-#define PMI_NXT_CAP_PTR 0x0F51
-#define PMI_PMC_REG 0x0F52
-#define PM_STATUS 0x0F54
-#define PMI_DATA 0x0F57
-#define AGP_CAP_ID 0x0F58
-#define AGP_STATUS 0x0F5C
-#define AGP_COMMAND 0x0F60
-#define AIC_CTRL 0x01D0
-#define AIC_STAT 0x01D4
-#define AIC_PT_BASE 0x01D8
-#define AIC_LO_ADDR 0x01DC
-#define AIC_HI_ADDR 0x01E0
-#define AIC_TLB_ADDR 0x01E4
-#define AIC_TLB_DATA 0x01E8
-#define DAC_CNTL 0x0058
-#define DAC_CNTL2 0x007c
-#define CRTC_GEN_CNTL 0x0050
-#define MEM_CNTL 0x0140
-#define MC_CNTL 0x0140
-#define EXT_MEM_CNTL 0x0144
-#define MC_TIMING_CNTL 0x0144
-#define MC_AGP_LOCATION 0x014C
-#define MEM_IO_CNTL_A0 0x0178
-#define MEM_REFRESH_CNTL 0x0178
-#define MEM_INIT_LATENCY_TIMER 0x0154
-#define MC_INIT_GFX_LAT_TIMER 0x0154
-#define MEM_SDRAM_MODE_REG 0x0158
-#define AGP_BASE 0x0170
-#define MEM_IO_CNTL_A1 0x017C
-#define MC_READ_CNTL_AB 0x017C
-#define MEM_IO_CNTL_B0 0x0180
-#define MC_INIT_MISC_LAT_TIMER 0x0180
-#define MEM_IO_CNTL_B1 0x0184
-#define MC_IOPAD_CNTL 0x0184
-#define MC_DEBUG 0x0188
-#define MC_STATUS 0x0150
-#define MEM_IO_OE_CNTL 0x018C
-#define MC_CHIP_IO_OE_CNTL_AB 0x018C
-#define MC_FB_LOCATION 0x0148
-#define HOST_PATH_CNTL 0x0130
-#define MEM_VGA_WP_SEL 0x0038
-#define MEM_VGA_RP_SEL 0x003C
-#define HDP_DEBUG 0x0138
-#define SW_SEMAPHORE 0x013C
-#define CRTC2_GEN_CNTL 0x03f8
-#define CRTC2_DISPLAY_BASE_ADDR 0x033c
-#define SURFACE_CNTL 0x0B00
-#define SURFACE0_LOWER_BOUND 0x0B04
-#define SURFACE1_LOWER_BOUND 0x0B14
-#define SURFACE2_LOWER_BOUND 0x0B24
-#define SURFACE3_LOWER_BOUND 0x0B34
-#define SURFACE4_LOWER_BOUND 0x0B44
-#define SURFACE5_LOWER_BOUND 0x0B54
-#define SURFACE6_LOWER_BOUND 0x0B64
-#define SURFACE7_LOWER_BOUND 0x0B74
-#define SURFACE0_UPPER_BOUND 0x0B08
-#define SURFACE1_UPPER_BOUND 0x0B18
-#define SURFACE2_UPPER_BOUND 0x0B28
-#define SURFACE3_UPPER_BOUND 0x0B38
-#define SURFACE4_UPPER_BOUND 0x0B48
-#define SURFACE5_UPPER_BOUND 0x0B58
-#define SURFACE6_UPPER_BOUND 0x0B68
-#define SURFACE7_UPPER_BOUND 0x0B78
-#define SURFACE0_INFO 0x0B0C
-#define SURFACE1_INFO 0x0B1C
-#define SURFACE2_INFO 0x0B2C
-#define SURFACE3_INFO 0x0B3C
-#define SURFACE4_INFO 0x0B4C
-#define SURFACE5_INFO 0x0B5C
-#define SURFACE6_INFO 0x0B6C
-#define SURFACE7_INFO 0x0B7C
-#define SURFACE_ACCESS_FLAGS 0x0BF8
-#define SURFACE_ACCESS_CLR 0x0BFC
-#define GEN_INT_CNTL 0x0040
-#define GEN_INT_STATUS 0x0044
-#define CRTC_EXT_CNTL 0x0054
-#define RB3D_CNTL 0x1C3C
-#define WAIT_UNTIL 0x1720
-#define ISYNC_CNTL 0x1724
-#define RBBM_GUICNTL 0x172C
-#define RBBM_STATUS 0x0E40
-#define RBBM_STATUS_alt_1 0x1740
-#define RBBM_CNTL 0x00EC
-#define RBBM_CNTL_alt_1 0x0E44
-#define RBBM_SOFT_RESET 0x00F0
-#define RBBM_SOFT_RESET_alt_1 0x0E48
-#define NQWAIT_UNTIL 0x0E50
-#define RBBM_DEBUG 0x0E6C
-#define RBBM_CMDFIFO_ADDR 0x0E70
-#define RBBM_CMDFIFO_DATAL 0x0E74
-#define RBBM_CMDFIFO_DATAH 0x0E78
-#define RBBM_CMDFIFO_STAT 0x0E7C
-#define CRTC_STATUS 0x005C
-#define GPIO_VGA_DDC 0x0060
-#define GPIO_DVI_DDC 0x0064
-#define GPIO_MONID 0x0068
-#define GPIO_CRT2_DDC 0x006c
-#define PALETTE_INDEX 0x00B0
-#define PALETTE_DATA 0x00B4
-#define PALETTE_30_DATA 0x00B8
-#define CRTC_H_TOTAL_DISP 0x0200
-#define CRTC_H_SYNC_STRT_WID 0x0204
-#define CRTC_V_TOTAL_DISP 0x0208
-#define CRTC_V_SYNC_STRT_WID 0x020C
-#define CRTC_VLINE_CRNT_VLINE 0x0210
-#define CRTC_CRNT_FRAME 0x0214
-#define CRTC_GUI_TRIG_VLINE 0x0218
-#define CRTC_DEBUG 0x021C
-#define CRTC_OFFSET_RIGHT 0x0220
-#define CRTC_OFFSET 0x0224
-#define CRTC_OFFSET_CNTL 0x0228
-#define CRTC_PITCH 0x022C
-#define OVR_CLR 0x0230
-#define OVR_WID_LEFT_RIGHT 0x0234
-#define OVR_WID_TOP_BOTTOM 0x0238
-#define DISPLAY_BASE_ADDR 0x023C
-#define SNAPSHOT_VH_COUNTS 0x0240
-#define SNAPSHOT_F_COUNT 0x0244
-#define N_VIF_COUNT 0x0248
-#define SNAPSHOT_VIF_COUNT 0x024C
-#define FP_CRTC_H_TOTAL_DISP 0x0250
-#define FP_CRTC_V_TOTAL_DISP 0x0254
-#define CRT_CRTC_H_SYNC_STRT_WID 0x0258
-#define CRT_CRTC_V_SYNC_STRT_WID 0x025C
-#define CUR_OFFSET 0x0260
-#define CUR_HORZ_VERT_POSN 0x0264
-#define CUR_HORZ_VERT_OFF 0x0268
-#define CUR_CLR0 0x026C
-#define CUR_CLR1 0x0270
-#define FP_HORZ_VERT_ACTIVE 0x0278
-#define CRTC_MORE_CNTL 0x027C
-#define CRTC_H_CUTOFF_ACTIVE_EN (1<<4)
-#define CRTC_V_CUTOFF_ACTIVE_EN (1<<5)
-#define DAC_EXT_CNTL 0x0280
-#define FP_GEN_CNTL 0x0284
-#define FP_HORZ_STRETCH 0x028C
-#define FP_VERT_STRETCH 0x0290
-#define FP_H_SYNC_STRT_WID 0x02C4
-#define FP_V_SYNC_STRT_WID 0x02C8
-#define AUX_WINDOW_HORZ_CNTL 0x02D8
-#define AUX_WINDOW_VERT_CNTL 0x02DC
-//#define DDA_CONFIG 0x02e0
-//#define DDA_ON_OFF 0x02e4
-#define DVI_I2C_CNTL_1 0x02e4
-#define GRPH_BUFFER_CNTL 0x02F0
-#define GRPH2_BUFFER_CNTL 0x03F0
-#define VGA_BUFFER_CNTL 0x02F4
-#define OV0_Y_X_START 0x0400
-#define OV0_Y_X_END 0x0404
-#define OV0_PIPELINE_CNTL 0x0408
-#define OV0_REG_LOAD_CNTL 0x0410
-#define OV0_SCALE_CNTL 0x0420
-#define OV0_V_INC 0x0424
-#define OV0_P1_V_ACCUM_INIT 0x0428
-#define OV0_P23_V_ACCUM_INIT 0x042C
-#define OV0_P1_BLANK_LINES_AT_TOP 0x0430
-#define OV0_P23_BLANK_LINES_AT_TOP 0x0434
-#define OV0_BASE_ADDR 0x043C
-#define OV0_VID_BUF0_BASE_ADRS 0x0440
-#define OV0_VID_BUF1_BASE_ADRS 0x0444
-#define OV0_VID_BUF2_BASE_ADRS 0x0448
-#define OV0_VID_BUF3_BASE_ADRS 0x044C
-#define OV0_VID_BUF4_BASE_ADRS 0x0450
-#define OV0_VID_BUF5_BASE_ADRS 0x0454
-#define OV0_VID_BUF_PITCH0_VALUE 0x0460
-#define OV0_VID_BUF_PITCH1_VALUE 0x0464
-#define OV0_AUTO_FLIP_CNTRL 0x0470
-#define OV0_DEINTERLACE_PATTERN 0x0474
-#define OV0_SUBMIT_HISTORY 0x0478
-#define OV0_H_INC 0x0480
-#define OV0_STEP_BY 0x0484
-#define OV0_P1_H_ACCUM_INIT 0x0488
-#define OV0_P23_H_ACCUM_INIT 0x048C
-#define OV0_P1_X_START_END 0x0494
-#define OV0_P2_X_START_END 0x0498
-#define OV0_P3_X_START_END 0x049C
-#define OV0_FILTER_CNTL 0x04A0
-#define OV0_FOUR_TAP_COEF_0 0x04B0
-#define OV0_FOUR_TAP_COEF_1 0x04B4
-#define OV0_FOUR_TAP_COEF_2 0x04B8
-#define OV0_FOUR_TAP_COEF_3 0x04BC
-#define OV0_FOUR_TAP_COEF_4 0x04C0
-#define OV0_FLAG_CNTRL 0x04DC
-#define OV0_SLICE_CNTL 0x04E0
-#define OV0_VID_KEY_CLR_LOW 0x04E4
-#define OV0_VID_KEY_CLR_HIGH 0x04E8
-#define OV0_GRPH_KEY_CLR_LOW 0x04EC
-#define OV0_GRPH_KEY_CLR_HIGH 0x04F0
-#define OV0_KEY_CNTL 0x04F4
-#define OV0_TEST 0x04F8
-#define SUBPIC_CNTL 0x0540
-#define SUBPIC_DEFCOLCON 0x0544
-#define SUBPIC_Y_X_START 0x054C
-#define SUBPIC_Y_X_END 0x0550
-#define SUBPIC_V_INC 0x0554
-#define SUBPIC_H_INC 0x0558
-#define SUBPIC_BUF0_OFFSET 0x055C
-#define SUBPIC_BUF1_OFFSET 0x0560
-#define SUBPIC_LC0_OFFSET 0x0564
-#define SUBPIC_LC1_OFFSET 0x0568
-#define SUBPIC_PITCH 0x056C
-#define SUBPIC_BTN_HLI_COLCON 0x0570
-#define SUBPIC_BTN_HLI_Y_X_START 0x0574
-#define SUBPIC_BTN_HLI_Y_X_END 0x0578
-#define SUBPIC_PALETTE_INDEX 0x057C
-#define SUBPIC_PALETTE_DATA 0x0580
-#define SUBPIC_H_ACCUM_INIT 0x0584
-#define SUBPIC_V_ACCUM_INIT 0x0588
-#define DISP_MISC_CNTL 0x0D00
-#define DAC_MACRO_CNTL 0x0D04
-#define DISP_PWR_MAN 0x0D08
-#define DISP_TEST_DEBUG_CNTL 0x0D10
-#define DISP_HW_DEBUG 0x0D14
-#define DAC_CRC_SIG1 0x0D18
-#define DAC_CRC_SIG2 0x0D1C
-#define OV0_LIN_TRANS_A 0x0D20
-#define OV0_LIN_TRANS_B 0x0D24
-#define OV0_LIN_TRANS_C 0x0D28
-#define OV0_LIN_TRANS_D 0x0D2C
-#define OV0_LIN_TRANS_E 0x0D30
-#define OV0_LIN_TRANS_F 0x0D34
-#define OV0_GAMMA_0_F 0x0D40
-#define OV0_GAMMA_10_1F 0x0D44
-#define OV0_GAMMA_20_3F 0x0D48
-#define OV0_GAMMA_40_7F 0x0D4C
-#define OV0_GAMMA_380_3BF 0x0D50
-#define OV0_GAMMA_3C0_3FF 0x0D54
-#define DISP_MERGE_CNTL 0x0D60
-#define DISP_OUTPUT_CNTL 0x0D64
-#define DISP_LIN_TRANS_GRPH_A 0x0D80
-#define DISP_LIN_TRANS_GRPH_B 0x0D84
-#define DISP_LIN_TRANS_GRPH_C 0x0D88
-#define DISP_LIN_TRANS_GRPH_D 0x0D8C
-#define DISP_LIN_TRANS_GRPH_E 0x0D90
-#define DISP_LIN_TRANS_GRPH_F 0x0D94
-#define DISP_LIN_TRANS_VID_A 0x0D98
-#define DISP_LIN_TRANS_VID_B 0x0D9C
-#define DISP_LIN_TRANS_VID_C 0x0DA0
-#define DISP_LIN_TRANS_VID_D 0x0DA4
-#define DISP_LIN_TRANS_VID_E 0x0DA8
-#define DISP_LIN_TRANS_VID_F 0x0DAC
-#define RMX_HORZ_FILTER_0TAP_COEF 0x0DB0
-#define RMX_HORZ_FILTER_1TAP_COEF 0x0DB4
-#define RMX_HORZ_FILTER_2TAP_COEF 0x0DB8
-#define RMX_HORZ_PHASE 0x0DBC
-#define DAC_EMBEDDED_SYNC_CNTL 0x0DC0
-#define DAC_BROAD_PULSE 0x0DC4
-#define DAC_SKEW_CLKS 0x0DC8
-#define DAC_INCR 0x0DCC
-#define DAC_NEG_SYNC_LEVEL 0x0DD0
-#define DAC_POS_SYNC_LEVEL 0x0DD4
-#define DAC_BLANK_LEVEL 0x0DD8
-#define CLOCK_CNTL_INDEX 0x0008
-#define CLOCK_CNTL_DATA 0x000C
-#define CP_RB_CNTL 0x0704
-#define CP_RB_BASE 0x0700
-#define CP_RB_RPTR_ADDR 0x070C
-#define CP_RB_RPTR 0x0710
-#define CP_RB_WPTR 0x0714
-#define CP_RB_WPTR_DELAY 0x0718
-#define CP_IB_BASE 0x0738
-#define CP_IB_BUFSZ 0x073C
-#define SCRATCH_REG0 0x15E0
-#define GUI_SCRATCH_REG0 0x15E0
-#define SCRATCH_REG1 0x15E4
-#define GUI_SCRATCH_REG1 0x15E4
-#define SCRATCH_REG2 0x15E8
-#define GUI_SCRATCH_REG2 0x15E8
-#define SCRATCH_REG3 0x15EC
-#define GUI_SCRATCH_REG3 0x15EC
-#define SCRATCH_REG4 0x15F0
-#define GUI_SCRATCH_REG4 0x15F0
-#define SCRATCH_REG5 0x15F4
-#define GUI_SCRATCH_REG5 0x15F4
-#define SCRATCH_UMSK 0x0770
-#define SCRATCH_ADDR 0x0774
-#define DP_BRUSH_FRGD_CLR 0x147C
-#define DP_BRUSH_BKGD_CLR 0x1478
-#define DST_LINE_START 0x1600
-#define DST_LINE_END 0x1604
-#define SRC_OFFSET 0x15AC
-#define SRC_PITCH 0x15B0
-#define SRC_TILE 0x1704
-#define SRC_PITCH_OFFSET 0x1428
-#define SRC_X 0x1414
-#define SRC_Y 0x1418
-#define SRC_X_Y 0x1590
-#define SRC_Y_X 0x1434
-#define DST_Y_X 0x1438
-#define DST_WIDTH_HEIGHT 0x1598
-#define DST_HEIGHT_WIDTH 0x143c
-#define DST_OFFSET 0x1404
-#define SRC_CLUT_ADDRESS 0x1780
-#define SRC_CLUT_DATA 0x1784
-#define SRC_CLUT_DATA_RD 0x1788
-#define HOST_DATA0 0x17C0
-#define HOST_DATA1 0x17C4
-#define HOST_DATA2 0x17C8
-#define HOST_DATA3 0x17CC
-#define HOST_DATA4 0x17D0
-#define HOST_DATA5 0x17D4
-#define HOST_DATA6 0x17D8
-#define HOST_DATA7 0x17DC
-#define HOST_DATA_LAST 0x17E0
-#define DP_SRC_ENDIAN 0x15D4
-#define DP_SRC_FRGD_CLR 0x15D8
-#define DP_SRC_BKGD_CLR 0x15DC
-#define SC_LEFT 0x1640
-#define SC_RIGHT 0x1644
-#define SC_TOP 0x1648
-#define SC_BOTTOM 0x164C
-#define SRC_SC_RIGHT 0x1654
-#define SRC_SC_BOTTOM 0x165C
-#define DP_CNTL 0x16C0
-#define DP_CNTL_XDIR_YDIR_YMAJOR 0x16D0
-#define DP_DATATYPE 0x16C4
-#define DP_MIX 0x16C8
-#define DP_WRITE_MSK 0x16CC
-#define DP_XOP 0x17F8
-#define CLR_CMP_CLR_SRC 0x15C4
-#define CLR_CMP_CLR_DST 0x15C8
-#define CLR_CMP_CNTL 0x15C0
-#define CLR_CMP_MSK 0x15CC
-#define DSTCACHE_MODE 0x1710
-#define DSTCACHE_CTLSTAT 0x1714
-#define DEFAULT_PITCH_OFFSET 0x16E0
-#define DEFAULT_SC_BOTTOM_RIGHT 0x16E8
-#define DEFAULT_SC_TOP_LEFT 0x16EC
-#define SRC_PITCH_OFFSET 0x1428
-#define DST_PITCH_OFFSET 0x142C
-#define DP_GUI_MASTER_CNTL 0x146C
-#define SC_TOP_LEFT 0x16EC
-#define SC_BOTTOM_RIGHT 0x16F0
-#define SRC_SC_BOTTOM_RIGHT 0x16F4
-#define RB2D_DSTCACHE_MODE 0x3428
-#define RB2D_DSTCACHE_CTLSTAT_broken 0x342C /* do not use */
-#define LVDS_GEN_CNTL 0x02d0
-#define LVDS_PLL_CNTL 0x02d4
-#define FP2_GEN_CNTL 0x0288
-#define TMDS_CNTL 0x0294
-#define TMDS_CRC 0x02a0
-#define TMDS_TRANSMITTER_CNTL 0x02a4
-#define MPP_TB_CONFIG 0x01c0
-#define PAMAC0_DLY_CNTL 0x0a94
-#define PAMAC1_DLY_CNTL 0x0a98
-#define PAMAC2_DLY_CNTL 0x0a9c
-#define FW_CNTL 0x0118
-#define FCP_CNTL 0x0910
-#define VGA_DDA_ON_OFF 0x02ec
-#define TV_MASTER_CNTL 0x0800
-
-//#define BASE_CODE 0x0f0b
-#define BIOS_0_SCRATCH 0x0010
-#define BIOS_1_SCRATCH 0x0014
-#define BIOS_2_SCRATCH 0x0018
-#define BIOS_3_SCRATCH 0x001c
-#define BIOS_4_SCRATCH 0x0020
-#define BIOS_5_SCRATCH 0x0024
-#define BIOS_6_SCRATCH 0x0028
-#define BIOS_7_SCRATCH 0x002c
-
-#define HDP_SOFT_RESET (1 << 26)
-
-#define TV_DAC_CNTL 0x088c
-#define GPIOPAD_MASK 0x0198
-#define GPIOPAD_A 0x019c
-#define GPIOPAD_EN 0x01a0
-#define GPIOPAD_Y 0x01a4
-#define ZV_LCDPAD_MASK 0x01a8
-#define ZV_LCDPAD_A 0x01ac
-#define ZV_LCDPAD_EN 0x01b0
-#define ZV_LCDPAD_Y 0x01b4
-
-/* PLL Registers */
-#define CLK_PIN_CNTL 0x0001
-#define PPLL_CNTL 0x0002
-#define PPLL_REF_DIV 0x0003
-#define PPLL_DIV_0 0x0004
-#define PPLL_DIV_1 0x0005
-#define PPLL_DIV_2 0x0006
-#define PPLL_DIV_3 0x0007
-#define VCLK_ECP_CNTL 0x0008
-#define HTOTAL_CNTL 0x0009
-#define M_SPLL_REF_FB_DIV 0x000a
-#define AGP_PLL_CNTL 0x000b
-#define SPLL_CNTL 0x000c
-#define SCLK_CNTL 0x000d
-#define MPLL_CNTL 0x000e
-#define MDLL_CKO 0x000f
-#define MDLL_RDCKA 0x0010
-#define MCLK_CNTL 0x0012
-#define AGP_PLL_CNTL 0x000b
-#define PLL_TEST_CNTL 0x0013
-#define CLK_PWRMGT_CNTL 0x0014
-#define PLL_PWRMGT_CNTL 0x0015
-#define MCLK_MISC 0x001f
-#define P2PLL_CNTL 0x002a
-#define P2PLL_REF_DIV 0x002b
-#define PIXCLKS_CNTL 0x002d
-#define SCLK_MORE_CNTL 0x0035
-
-/* MCLK_CNTL bit constants */
-#define FORCEON_MCLKA (1 << 16)
-#define FORCEON_MCLKB (1 << 17)
-#define FORCEON_YCLKA (1 << 18)
-#define FORCEON_YCLKB (1 << 19)
-#define FORCEON_MC (1 << 20)
-#define FORCEON_AIC (1 << 21)
-
-/* SCLK_CNTL bit constants */
-#define DYN_STOP_LAT_MASK 0x00007ff8
-#define CP_MAX_DYN_STOP_LAT 0x0008
-#define SCLK_FORCEON_MASK 0xffff8000
-
-/* SCLK_MORE_CNTL bit constants */
-#define SCLK_MORE_FORCEON 0x0700
-
-/* BUS_CNTL bit constants */
-#define BUS_DBL_RESYNC 0x00000001
-#define BUS_MSTR_RESET 0x00000002
-#define BUS_FLUSH_BUF 0x00000004
-#define BUS_STOP_REQ_DIS 0x00000008
-#define BUS_ROTATION_DIS 0x00000010
-#define BUS_MASTER_DIS 0x00000040
-#define BUS_ROM_WRT_EN 0x00000080
-#define BUS_DIS_ROM 0x00001000
-#define BUS_PCI_READ_RETRY_EN 0x00002000
-#define BUS_AGP_AD_STEPPING_EN 0x00004000
-#define BUS_PCI_WRT_RETRY_EN 0x00008000
-#define BUS_MSTR_RD_MULT 0x00100000
-#define BUS_MSTR_RD_LINE 0x00200000
-#define BUS_SUSPEND 0x00400000
-#define LAT_16X 0x00800000
-#define BUS_RD_DISCARD_EN 0x01000000
-#define BUS_RD_ABORT_EN 0x02000000
-#define BUS_MSTR_WS 0x04000000
-#define BUS_PARKING_DIS 0x08000000
-#define BUS_MSTR_DISCONNECT_EN 0x10000000
-#define BUS_WRT_BURST 0x20000000
-#define BUS_READ_BURST 0x40000000
-#define BUS_RDY_READ_DLY 0x80000000
-
-/* PIXCLKS_CNTL */
-#define PIX2CLK_SRC_SEL_MASK 0x03
-#define PIX2CLK_SRC_SEL_CPUCLK 0x00
-#define PIX2CLK_SRC_SEL_PSCANCLK 0x01
-#define PIX2CLK_SRC_SEL_BYTECLK 0x02
-#define PIX2CLK_SRC_SEL_P2PLLCLK 0x03
-#define PIX2CLK_ALWAYS_ONb (1<<6)
-#define PIX2CLK_DAC_ALWAYS_ONb (1<<7)
-#define PIXCLK_TV_SRC_SEL (1 << 8)
-#define PIXCLK_LVDS_ALWAYS_ONb (1 << 14)
-#define PIXCLK_TMDS_ALWAYS_ONb (1 << 15)
-
-
-/* CLOCK_CNTL_INDEX bit constants */
-#define PLL_WR_EN 0x00000080
-
-/* CNFG_CNTL bit constants */
-#define CFG_VGA_RAM_EN 0x00000100
-#define CFG_ATI_REV_ID_MASK (0xf << 16)
-#define CFG_ATI_REV_A11 (0 << 16)
-#define CFG_ATI_REV_A12 (1 << 16)
-#define CFG_ATI_REV_A13 (2 << 16)
-
-/* CRTC_EXT_CNTL bit constants */
-#define VGA_ATI_LINEAR 0x00000008
-#define VGA_128KAP_PAGING 0x00000010
-#define XCRT_CNT_EN (1 << 6)
-#define CRTC_HSYNC_DIS (1 << 8)
-#define CRTC_VSYNC_DIS (1 << 9)
-#define CRTC_DISPLAY_DIS (1 << 10)
-#define CRTC_CRT_ON (1 << 15)
-
-
-/* DSTCACHE_CTLSTAT bit constants */
-#define RB2D_DC_FLUSH_2D (1 << 0)
-#define RB2D_DC_FREE_2D (1 << 2)
-#define RB2D_DC_FLUSH_ALL (RB2D_DC_FLUSH_2D | RB2D_DC_FREE_2D)
-#define RB2D_DC_BUSY (1 << 31)
-
-/* DSTCACHE_MODE bits constants */
-#define RB2D_DC_AUTOFLUSH_ENABLE (1 << 8)
-#define RB2D_DC_DC_DISABLE_IGNORE_PE (1 << 17)
-
-/* CRTC_GEN_CNTL bit constants */
-#define CRTC_DBL_SCAN_EN 0x00000001
-#define CRTC_CUR_EN 0x00010000
-#define CRTC_INTERLACE_EN (1 << 1)
-#define CRTC_BYPASS_LUT_EN (1 << 14)
-#define CRTC_EXT_DISP_EN (1 << 24)
-#define CRTC_EN (1 << 25)
-#define CRTC_DISP_REQ_EN_B (1 << 26)
-
-/* CRTC_STATUS bit constants */
-#define CRTC_VBLANK 0x00000001
-
-/* CRTC2_GEN_CNTL bit constants */
-#define CRT2_ON (1 << 7)
-#define CRTC2_DISPLAY_DIS (1 << 23)
-#define CRTC2_EN (1 << 25)
-#define CRTC2_DISP_REQ_EN_B (1 << 26)
-
-/* CUR_OFFSET, CUR_HORZ_VERT_POSN, CUR_HORZ_VERT_OFF bit constants */
-#define CUR_LOCK 0x80000000
-
-/* GPIO bit constants */
-#define GPIO_A_0 (1 << 0)
-#define GPIO_A_1 (1 << 1)
-#define GPIO_Y_0 (1 << 8)
-#define GPIO_Y_1 (1 << 9)
-#define GPIO_EN_0 (1 << 16)
-#define GPIO_EN_1 (1 << 17)
-#define GPIO_MASK_0 (1 << 24)
-#define GPIO_MASK_1 (1 << 25)
-#define VGA_DDC_DATA_OUTPUT GPIO_A_0
-#define VGA_DDC_CLK_OUTPUT GPIO_A_1
-#define VGA_DDC_DATA_INPUT GPIO_Y_0
-#define VGA_DDC_CLK_INPUT GPIO_Y_1
-#define VGA_DDC_DATA_OUT_EN GPIO_EN_0
-#define VGA_DDC_CLK_OUT_EN GPIO_EN_1
-
-
-/* FP bit constants */
-#define FP_CRTC_H_TOTAL_MASK 0x000003ff
-#define FP_CRTC_H_DISP_MASK 0x01ff0000
-#define FP_CRTC_V_TOTAL_MASK 0x00000fff
-#define FP_CRTC_V_DISP_MASK 0x0fff0000
-#define FP_H_SYNC_STRT_CHAR_MASK 0x00001ff8
-#define FP_H_SYNC_WID_MASK 0x003f0000
-#define FP_V_SYNC_STRT_MASK 0x00000fff
-#define FP_V_SYNC_WID_MASK 0x001f0000
-#define FP_CRTC_H_TOTAL_SHIFT 0x00000000
-#define FP_CRTC_H_DISP_SHIFT 0x00000010
-#define FP_CRTC_V_TOTAL_SHIFT 0x00000000
-#define FP_CRTC_V_DISP_SHIFT 0x00000010
-#define FP_H_SYNC_STRT_CHAR_SHIFT 0x00000003
-#define FP_H_SYNC_WID_SHIFT 0x00000010
-#define FP_V_SYNC_STRT_SHIFT 0x00000000
-#define FP_V_SYNC_WID_SHIFT 0x00000010
-
-/* FP_GEN_CNTL bit constants */
-#define FP_FPON (1 << 0)
-#define FP_TMDS_EN (1 << 2)
-#define FP_PANEL_FORMAT (1 << 3)
-#define FP_EN_TMDS (1 << 7)
-#define FP_DETECT_SENSE (1 << 8)
-#define R200_FP_SOURCE_SEL_MASK (3 << 10)
-#define R200_FP_SOURCE_SEL_CRTC1 (0 << 10)
-#define R200_FP_SOURCE_SEL_CRTC2 (1 << 10)
-#define R200_FP_SOURCE_SEL_RMX (2 << 10)
-#define R200_FP_SOURCE_SEL_TRANS (3 << 10)
-#define FP_SEL_CRTC1 (0 << 13)
-#define FP_SEL_CRTC2 (1 << 13)
-#define FP_USE_VGA_HSYNC (1 << 14)
-#define FP_CRTC_DONT_SHADOW_HPAR (1 << 15)
-#define FP_CRTC_DONT_SHADOW_VPAR (1 << 16)
-#define FP_CRTC_DONT_SHADOW_HEND (1 << 17)
-#define FP_CRTC_USE_SHADOW_VEND (1 << 18)
-#define FP_RMX_HVSYNC_CONTROL_EN (1 << 20)
-#define FP_DFP_SYNC_SEL (1 << 21)
-#define FP_CRTC_LOCK_8DOT (1 << 22)
-#define FP_CRT_SYNC_SEL (1 << 23)
-#define FP_USE_SHADOW_EN (1 << 24)
-#define FP_CRT_SYNC_ALT (1 << 26)
-
-/* FP2_GEN_CNTL bit constants */
-#define FP2_BLANK_EN (1 << 1)
-#define FP2_ON (1 << 2)
-#define FP2_PANEL_FORMAT (1 << 3)
-#define FP2_SOURCE_SEL_MASK (3 << 10)
-#define FP2_SOURCE_SEL_CRTC2 (1 << 10)
-#define FP2_SRC_SEL_MASK (3 << 13)
-#define FP2_SRC_SEL_CRTC2 (1 << 13)
-#define FP2_FP_POL (1 << 16)
-#define FP2_LP_POL (1 << 17)
-#define FP2_SCK_POL (1 << 18)
-#define FP2_LCD_CNTL_MASK (7 << 19)
-#define FP2_PAD_FLOP_EN (1 << 22)
-#define FP2_CRC_EN (1 << 23)
-#define FP2_CRC_READ_EN (1 << 24)
-#define FP2_DV0_EN (1 << 25)
-#define FP2_DV0_RATE_SEL_SDR (1 << 26)
-
-
-/* LVDS_GEN_CNTL bit constants */
-#define LVDS_ON (1 << 0)
-#define LVDS_DISPLAY_DIS (1 << 1)
-#define LVDS_PANEL_TYPE (1 << 2)
-#define LVDS_PANEL_FORMAT (1 << 3)
-#define LVDS_EN (1 << 7)
-#define LVDS_BL_MOD_LEVEL_MASK 0x0000ff00
-#define LVDS_BL_MOD_LEVEL_SHIFT 8
-#define LVDS_BL_MOD_EN (1 << 16)
-#define LVDS_DIGON (1 << 18)
-#define LVDS_BLON (1 << 19)
-#define LVDS_SEL_CRTC2 (1 << 23)
-#define LVDS_STATE_MASK \
- (LVDS_ON | LVDS_DISPLAY_DIS | LVDS_BL_MOD_LEVEL_MASK | LVDS_BLON)
-
-/* LVDS_PLL_CNTL bit constatns */
-#define HSYNC_DELAY_SHIFT 0x1c
-#define HSYNC_DELAY_MASK (0xf << 0x1c)
-
-/* TMDS_TRANSMITTER_CNTL bit constants */
-#define TMDS_PLL_EN (1 << 0)
-#define TMDS_PLLRST (1 << 1)
-#define TMDS_RAN_PAT_RST (1 << 7)
-#define TMDS_ICHCSEL (1 << 28)
-
-/* FP_HORZ_STRETCH bit constants */
-#define HORZ_STRETCH_RATIO_MASK 0xffff
-#define HORZ_STRETCH_RATIO_MAX 4096
-#define HORZ_PANEL_SIZE (0x1ff << 16)
-#define HORZ_PANEL_SHIFT 16
-#define HORZ_STRETCH_PIXREP (0 << 25)
-#define HORZ_STRETCH_BLEND (1 << 26)
-#define HORZ_STRETCH_ENABLE (1 << 25)
-#define HORZ_AUTO_RATIO (1 << 27)
-#define HORZ_FP_LOOP_STRETCH (0x7 << 28)
-#define HORZ_AUTO_RATIO_INC (1 << 31)
-
-
-/* FP_VERT_STRETCH bit constants */
-#define VERT_STRETCH_RATIO_MASK 0xfff
-#define VERT_STRETCH_RATIO_MAX 4096
-#define VERT_PANEL_SIZE (0xfff << 12)
-#define VERT_PANEL_SHIFT 12
-#define VERT_STRETCH_LINREP (0 << 26)
-#define VERT_STRETCH_BLEND (1 << 26)
-#define VERT_STRETCH_ENABLE (1 << 25)
-#define VERT_AUTO_RATIO_EN (1 << 27)
-#define VERT_FP_LOOP_STRETCH (0x7 << 28)
-#define VERT_STRETCH_RESERVED 0xf1000000
-
-/* DAC_CNTL bit constants */
-#define DAC_8BIT_EN 0x00000100
-#define DAC_4BPP_PIX_ORDER 0x00000200
-#define DAC_CRC_EN 0x00080000
-#define DAC_MASK_ALL (0xff << 24)
-#define DAC_PDWN (1 << 15)
-#define DAC_EXPAND_MODE (1 << 14)
-#define DAC_VGA_ADR_EN (1 << 13)
-#define DAC_RANGE_CNTL (3 << 0)
-#define DAC_RANGE_CNTL_MASK 0x03
-#define DAC_BLANKING (1 << 2)
-#define DAC_CMP_EN (1 << 3)
-#define DAC_CMP_OUTPUT (1 << 7)
-
-/* DAC_CNTL2 bit constants */
-#define DAC2_EXPAND_MODE (1 << 14)
-#define DAC2_CMP_EN (1 << 7)
-#define DAC2_PALETTE_ACCESS_CNTL (1 << 5)
-
-/* DAC_EXT_CNTL bit constants */
-#define DAC_FORCE_BLANK_OFF_EN (1 << 4)
-#define DAC_FORCE_DATA_EN (1 << 5)
-#define DAC_FORCE_DATA_SEL_MASK (3 << 6)
-#define DAC_FORCE_DATA_MASK 0x0003ff00
-#define DAC_FORCE_DATA_SHIFT 8
-
-/* GEN_RESET_CNTL bit constants */
-#define SOFT_RESET_GUI 0x00000001
-#define SOFT_RESET_VCLK 0x00000100
-#define SOFT_RESET_PCLK 0x00000200
-#define SOFT_RESET_ECP 0x00000400
-#define SOFT_RESET_DISPENG_XCLK 0x00000800
-
-/* MEM_CNTL bit constants */
-#define MEM_CTLR_STATUS_IDLE 0x00000000
-#define MEM_CTLR_STATUS_BUSY 0x00100000
-#define MEM_SEQNCR_STATUS_IDLE 0x00000000
-#define MEM_SEQNCR_STATUS_BUSY 0x00200000
-#define MEM_ARBITER_STATUS_IDLE 0x00000000
-#define MEM_ARBITER_STATUS_BUSY 0x00400000
-#define MEM_REQ_UNLOCK 0x00000000
-#define MEM_REQ_LOCK 0x00800000
-#define MEM_NUM_CHANNELS_MASK 0x00000001
-#define MEM_USE_B_CH_ONLY 0x00000002
-#define RV100_MEM_HALF_MODE 0x00000008
-#define R300_MEM_NUM_CHANNELS_MASK 0x00000003
-#define R300_MEM_USE_CD_CH_ONLY 0x00000004
-
-
-/* RBBM_SOFT_RESET bit constants */
-#define SOFT_RESET_CP (1 << 0)
-#define SOFT_RESET_HI (1 << 1)
-#define SOFT_RESET_SE (1 << 2)
-#define SOFT_RESET_RE (1 << 3)
-#define SOFT_RESET_PP (1 << 4)
-#define SOFT_RESET_E2 (1 << 5)
-#define SOFT_RESET_RB (1 << 6)
-#define SOFT_RESET_HDP (1 << 7)
-
-/* WAIT_UNTIL bit constants */
-#define WAIT_DMA_GUI_IDLE (1 << 9)
-#define WAIT_2D_IDLECLEAN (1 << 16)
-
-/* SURFACE_CNTL bit consants */
-#define SURF_TRANSLATION_DIS (1 << 8)
-#define NONSURF_AP0_SWP_16BPP (1 << 20)
-#define NONSURF_AP0_SWP_32BPP (1 << 21)
-#define NONSURF_AP1_SWP_16BPP (1 << 22)
-#define NONSURF_AP1_SWP_32BPP (1 << 23)
-
-/* DEFAULT_SC_BOTTOM_RIGHT bit constants */
-#define DEFAULT_SC_RIGHT_MAX (0x1fff << 0)
-#define DEFAULT_SC_BOTTOM_MAX (0x1fff << 16)
-
-/* MM_INDEX bit constants */
-#define MM_APER 0x80000000
-
-/* CLR_CMP_CNTL bit constants */
-#define COMPARE_SRC_FALSE 0x00000000
-#define COMPARE_SRC_TRUE 0x00000001
-#define COMPARE_SRC_NOT_EQUAL 0x00000004
-#define COMPARE_SRC_EQUAL 0x00000005
-#define COMPARE_SRC_EQUAL_FLIP 0x00000007
-#define COMPARE_DST_FALSE 0x00000000
-#define COMPARE_DST_TRUE 0x00000100
-#define COMPARE_DST_NOT_EQUAL 0x00000400
-#define COMPARE_DST_EQUAL 0x00000500
-#define COMPARE_DESTINATION 0x00000000
-#define COMPARE_SOURCE 0x01000000
-#define COMPARE_SRC_AND_DST 0x02000000
-
-
-/* DP_CNTL bit constants */
-#define DST_X_RIGHT_TO_LEFT 0x00000000
-#define DST_X_LEFT_TO_RIGHT 0x00000001
-#define DST_Y_BOTTOM_TO_TOP 0x00000000
-#define DST_Y_TOP_TO_BOTTOM 0x00000002
-#define DST_X_MAJOR 0x00000000
-#define DST_Y_MAJOR 0x00000004
-#define DST_X_TILE 0x00000008
-#define DST_Y_TILE 0x00000010
-#define DST_LAST_PEL 0x00000020
-#define DST_TRAIL_X_RIGHT_TO_LEFT 0x00000000
-#define DST_TRAIL_X_LEFT_TO_RIGHT 0x00000040
-#define DST_TRAP_FILL_RIGHT_TO_LEFT 0x00000000
-#define DST_TRAP_FILL_LEFT_TO_RIGHT 0x00000080
-#define DST_BRES_SIGN 0x00000100
-#define DST_HOST_BIG_ENDIAN_EN 0x00000200
-#define DST_POLYLINE_NONLAST 0x00008000
-#define DST_RASTER_STALL 0x00010000
-#define DST_POLY_EDGE 0x00040000
-
-
-/* DP_CNTL_YDIR_XDIR_YMAJOR bit constants (short version of DP_CNTL) */
-#define DST_X_MAJOR_S 0x00000000
-#define DST_Y_MAJOR_S 0x00000001
-#define DST_Y_BOTTOM_TO_TOP_S 0x00000000
-#define DST_Y_TOP_TO_BOTTOM_S 0x00008000
-#define DST_X_RIGHT_TO_LEFT_S 0x00000000
-#define DST_X_LEFT_TO_RIGHT_S 0x80000000
-
-
-/* DP_DATATYPE bit constants */
-#define DST_8BPP 0x00000002
-#define DST_15BPP 0x00000003
-#define DST_16BPP 0x00000004
-#define DST_24BPP 0x00000005
-#define DST_32BPP 0x00000006
-#define DST_8BPP_RGB332 0x00000007
-#define DST_8BPP_Y8 0x00000008
-#define DST_8BPP_RGB8 0x00000009
-#define DST_16BPP_VYUY422 0x0000000b
-#define DST_16BPP_YVYU422 0x0000000c
-#define DST_32BPP_AYUV444 0x0000000e
-#define DST_16BPP_ARGB4444 0x0000000f
-#define BRUSH_SOLIDCOLOR 0x00000d00
-#define SRC_MONO 0x00000000
-#define SRC_MONO_LBKGD 0x00010000
-#define SRC_DSTCOLOR 0x00030000
-#define BYTE_ORDER_MSB_TO_LSB 0x00000000
-#define BYTE_ORDER_LSB_TO_MSB 0x40000000
-#define DP_CONVERSION_TEMP 0x80000000
-#define HOST_BIG_ENDIAN_EN (1 << 29)
-
-
-/* DP_GUI_MASTER_CNTL bit constants */
-#define GMC_SRC_PITCH_OFFSET_DEFAULT 0x00000000
-#define GMC_SRC_PITCH_OFFSET_LEAVE 0x00000001
-#define GMC_DST_PITCH_OFFSET_DEFAULT 0x00000000
-#define GMC_DST_PITCH_OFFSET_LEAVE 0x00000002
-#define GMC_SRC_CLIP_DEFAULT 0x00000000
-#define GMC_SRC_CLIP_LEAVE 0x00000004
-#define GMC_DST_CLIP_DEFAULT 0x00000000
-#define GMC_DST_CLIP_LEAVE 0x00000008
-#define GMC_BRUSH_8x8MONO 0x00000000
-#define GMC_BRUSH_8x8MONO_LBKGD 0x00000010
-#define GMC_BRUSH_8x1MONO 0x00000020
-#define GMC_BRUSH_8x1MONO_LBKGD 0x00000030
-#define GMC_BRUSH_1x8MONO 0x00000040
-#define GMC_BRUSH_1x8MONO_LBKGD 0x00000050
-#define GMC_BRUSH_32x1MONO 0x00000060
-#define GMC_BRUSH_32x1MONO_LBKGD 0x00000070
-#define GMC_BRUSH_32x32MONO 0x00000080
-#define GMC_BRUSH_32x32MONO_LBKGD 0x00000090
-#define GMC_BRUSH_8x8COLOR 0x000000a0
-#define GMC_BRUSH_8x1COLOR 0x000000b0
-#define GMC_BRUSH_1x8COLOR 0x000000c0
-#define GMC_BRUSH_SOLID_COLOR 0x000000d0
-#define GMC_DST_8BPP 0x00000200
-#define GMC_DST_15BPP 0x00000300
-#define GMC_DST_16BPP 0x00000400
-#define GMC_DST_24BPP 0x00000500
-#define GMC_DST_32BPP 0x00000600
-#define GMC_DST_8BPP_RGB332 0x00000700
-#define GMC_DST_8BPP_Y8 0x00000800
-#define GMC_DST_8BPP_RGB8 0x00000900
-#define GMC_DST_16BPP_VYUY422 0x00000b00
-#define GMC_DST_16BPP_YVYU422 0x00000c00
-#define GMC_DST_32BPP_AYUV444 0x00000e00
-#define GMC_DST_16BPP_ARGB4444 0x00000f00
-#define GMC_SRC_MONO 0x00000000
-#define GMC_SRC_MONO_LBKGD 0x00001000
-#define GMC_SRC_DSTCOLOR 0x00003000
-#define GMC_BYTE_ORDER_MSB_TO_LSB 0x00000000
-#define GMC_BYTE_ORDER_LSB_TO_MSB 0x00004000
-#define GMC_DP_CONVERSION_TEMP_9300 0x00008000
-#define GMC_DP_CONVERSION_TEMP_6500 0x00000000
-#define GMC_DP_SRC_RECT 0x02000000
-#define GMC_DP_SRC_HOST 0x03000000
-#define GMC_DP_SRC_HOST_BYTEALIGN 0x04000000
-#define GMC_3D_FCN_EN_CLR 0x00000000
-#define GMC_3D_FCN_EN_SET 0x08000000
-#define GMC_DST_CLR_CMP_FCN_LEAVE 0x00000000
-#define GMC_DST_CLR_CMP_FCN_CLEAR 0x10000000
-#define GMC_AUX_CLIP_LEAVE 0x00000000
-#define GMC_AUX_CLIP_CLEAR 0x20000000
-#define GMC_WRITE_MASK_LEAVE 0x00000000
-#define GMC_WRITE_MASK_SET 0x40000000
-#define GMC_CLR_CMP_CNTL_DIS (1 << 28)
-#define GMC_SRC_DATATYPE_COLOR (3 << 12)
-#define ROP3_S 0x00cc0000
-#define ROP3_SRCCOPY 0x00cc0000
-#define ROP3_P 0x00f00000
-#define ROP3_PATCOPY 0x00f00000
-#define DP_SRC_SOURCE_MASK (7 << 24)
-#define GMC_BRUSH_NONE (15 << 4)
-#define DP_SRC_SOURCE_MEMORY (2 << 24)
-#define GMC_BRUSH_SOLIDCOLOR 0x000000d0
-
-/* DP_MIX bit constants */
-#define DP_SRC_RECT 0x00000200
-#define DP_SRC_HOST 0x00000300
-#define DP_SRC_HOST_BYTEALIGN 0x00000400
-
-/* MPLL_CNTL bit constants */
-#define MPLL_RESET 0x00000001
-
-/* MDLL_CKO bit constants */
-#define MCKOA_SLEEP 0x00000001
-#define MCKOA_RESET 0x00000002
-#define MCKOA_REF_SKEW_MASK 0x00000700
-#define MCKOA_FB_SKEW_MASK 0x00007000
-
-/* MDLL_RDCKA bit constants */
-#define MRDCKA0_SLEEP 0x00000001
-#define MRDCKA0_RESET 0x00000002
-#define MRDCKA1_SLEEP 0x00010000
-#define MRDCKA1_RESET 0x00020000
-
-/* VCLK_ECP_CNTL constants */
-#define VCLK_SRC_SEL_MASK 0x03
-#define VCLK_SRC_SEL_CPUCLK 0x00
-#define VCLK_SRC_SEL_PSCANCLK 0x01
-#define VCLK_SRC_SEL_BYTECLK 0x02
-#define VCLK_SRC_SEL_PPLLCLK 0x03
-#define PIXCLK_ALWAYS_ONb 0x00000040
-#define PIXCLK_DAC_ALWAYS_ONb 0x00000080
-
-/* BUS_CNTL1 constants */
-#define BUS_CNTL1_MOBILE_PLATFORM_SEL_MASK 0x0c000000
-#define BUS_CNTL1_MOBILE_PLATFORM_SEL_SHIFT 26
-#define BUS_CNTL1_AGPCLK_VALID 0x80000000
-
-/* PLL_PWRMGT_CNTL constants */
-#define PLL_PWRMGT_CNTL_SPLL_TURNOFF 0x00000002
-#define PLL_PWRMGT_CNTL_PPLL_TURNOFF 0x00000004
-#define PLL_PWRMGT_CNTL_P2PLL_TURNOFF 0x00000008
-#define PLL_PWRMGT_CNTL_TVPLL_TURNOFF 0x00000010
-#define PLL_PWRMGT_CNTL_MOBILE_SU 0x00010000
-#define PLL_PWRMGT_CNTL_SU_SCLK_USE_BCLK 0x00020000
-#define PLL_PWRMGT_CNTL_SU_MCLK_USE_BCLK 0x00040000
-
-/* TV_DAC_CNTL constants */
-#define TV_DAC_CNTL_BGSLEEP 0x00000040
-#define TV_DAC_CNTL_DETECT 0x00000010
-#define TV_DAC_CNTL_BGADJ_MASK 0x000f0000
-#define TV_DAC_CNTL_DACADJ_MASK 0x00f00000
-#define TV_DAC_CNTL_BGADJ__SHIFT 16
-#define TV_DAC_CNTL_DACADJ__SHIFT 20
-#define TV_DAC_CNTL_RDACPD 0x01000000
-#define TV_DAC_CNTL_GDACPD 0x02000000
-#define TV_DAC_CNTL_BDACPD 0x04000000
-
-/* DISP_MISC_CNTL constants */
-#define DISP_MISC_CNTL_SOFT_RESET_GRPH_PP (1 << 0)
-#define DISP_MISC_CNTL_SOFT_RESET_SUBPIC_PP (1 << 1)
-#define DISP_MISC_CNTL_SOFT_RESET_OV0_PP (1 << 2)
-#define DISP_MISC_CNTL_SOFT_RESET_GRPH_SCLK (1 << 4)
-#define DISP_MISC_CNTL_SOFT_RESET_SUBPIC_SCLK (1 << 5)
-#define DISP_MISC_CNTL_SOFT_RESET_OV0_SCLK (1 << 6)
-#define DISP_MISC_CNTL_SOFT_RESET_GRPH2_PP (1 << 12)
-#define DISP_MISC_CNTL_SOFT_RESET_GRPH2_SCLK (1 << 15)
-#define DISP_MISC_CNTL_SOFT_RESET_LVDS (1 << 16)
-#define DISP_MISC_CNTL_SOFT_RESET_TMDS (1 << 17)
-#define DISP_MISC_CNTL_SOFT_RESET_DIG_TMDS (1 << 18)
-#define DISP_MISC_CNTL_SOFT_RESET_TV (1 << 19)
-
-/* DISP_PWR_MAN constants */
-#define DISP_PWR_MAN_DISP_PWR_MAN_D3_CRTC_EN (1 << 0)
-#define DISP_PWR_MAN_DISP2_PWR_MAN_D3_CRTC2_EN (1 << 4)
-#define DISP_PWR_MAN_DISP_D3_RST (1 << 16)
-#define DISP_PWR_MAN_DISP_D3_REG_RST (1 << 17)
-#define DISP_PWR_MAN_DISP_D3_GRPH_RST (1 << 18)
-#define DISP_PWR_MAN_DISP_D3_SUBPIC_RST (1 << 19)
-#define DISP_PWR_MAN_DISP_D3_OV0_RST (1 << 20)
-#define DISP_PWR_MAN_DISP_D1D2_GRPH_RST (1 << 21)
-#define DISP_PWR_MAN_DISP_D1D2_SUBPIC_RST (1 << 22)
-#define DISP_PWR_MAN_DISP_D1D2_OV0_RST (1 << 23)
-#define DISP_PWR_MAN_DIG_TMDS_ENABLE_RST (1 << 24)
-#define DISP_PWR_MAN_TV_ENABLE_RST (1 << 25)
-#define DISP_PWR_MAN_AUTO_PWRUP_EN (1 << 26)
-
-/* masks */
-
-#define CNFG_MEMSIZE_MASK 0x1f000000
-#define MEM_CFG_TYPE 0x40000000
-#define DST_OFFSET_MASK 0x003fffff
-#define DST_PITCH_MASK 0x3fc00000
-#define DEFAULT_TILE_MASK 0xc0000000
-#define PPLL_DIV_SEL_MASK 0x00000300
-#define PPLL_RESET 0x00000001
-#define PPLL_SLEEP 0x00000002
-#define PPLL_ATOMIC_UPDATE_EN 0x00010000
-#define PPLL_REF_DIV_MASK 0x000003ff
-#define PPLL_FB3_DIV_MASK 0x000007ff
-#define PPLL_POST3_DIV_MASK 0x00070000
-#define PPLL_ATOMIC_UPDATE_R 0x00008000
-#define PPLL_ATOMIC_UPDATE_W 0x00008000
-#define PPLL_VGA_ATOMIC_UPDATE_EN 0x00020000
-#define R300_PPLL_REF_DIV_ACC_MASK (0x3ff << 18)
-#define R300_PPLL_REF_DIV_ACC_SHIFT 18
-
-#define GUI_ACTIVE 0x80000000
-
-
-#define MC_IND_INDEX 0x01F8
-#define MC_IND_DATA 0x01FC
-
-/* PAD_CTLR_STRENGTH */
-#define PAD_MANUAL_OVERRIDE 0x80000000
-
-// pllCLK_PIN_CNTL
-#define CLK_PIN_CNTL__OSC_EN_MASK 0x00000001L
-#define CLK_PIN_CNTL__OSC_EN 0x00000001L
-#define CLK_PIN_CNTL__XTL_LOW_GAIN_MASK 0x00000004L
-#define CLK_PIN_CNTL__XTL_LOW_GAIN 0x00000004L
-#define CLK_PIN_CNTL__DONT_USE_XTALIN_MASK 0x00000010L
-#define CLK_PIN_CNTL__DONT_USE_XTALIN 0x00000010L
-#define CLK_PIN_CNTL__SLOW_CLOCK_SOURCE_MASK 0x00000020L
-#define CLK_PIN_CNTL__SLOW_CLOCK_SOURCE 0x00000020L
-#define CLK_PIN_CNTL__CG_CLK_TO_OUTPIN_MASK 0x00000800L
-#define CLK_PIN_CNTL__CG_CLK_TO_OUTPIN 0x00000800L
-#define CLK_PIN_CNTL__CG_COUNT_UP_TO_OUTPIN_MASK 0x00001000L
-#define CLK_PIN_CNTL__CG_COUNT_UP_TO_OUTPIN 0x00001000L
-#define CLK_PIN_CNTL__ACCESS_REGS_IN_SUSPEND_MASK 0x00002000L
-#define CLK_PIN_CNTL__ACCESS_REGS_IN_SUSPEND 0x00002000L
-#define CLK_PIN_CNTL__CG_SPARE_MASK 0x00004000L
-#define CLK_PIN_CNTL__CG_SPARE 0x00004000L
-#define CLK_PIN_CNTL__SCLK_DYN_START_CNTL_MASK 0x00008000L
-#define CLK_PIN_CNTL__SCLK_DYN_START_CNTL 0x00008000L
-#define CLK_PIN_CNTL__CP_CLK_RUNNING_MASK 0x00010000L
-#define CLK_PIN_CNTL__CP_CLK_RUNNING 0x00010000L
-#define CLK_PIN_CNTL__CG_SPARE_RD_MASK 0x00060000L
-#define CLK_PIN_CNTL__XTALIN_ALWAYS_ONb_MASK 0x00080000L
-#define CLK_PIN_CNTL__XTALIN_ALWAYS_ONb 0x00080000L
-#define CLK_PIN_CNTL__PWRSEQ_DELAY_MASK 0xff000000L
-
-// pllCLK_PWRMGT_CNTL
-#define CLK_PWRMGT_CNTL__MPLL_PWRMGT_OFF__SHIFT 0x00000000
-#define CLK_PWRMGT_CNTL__SPLL_PWRMGT_OFF__SHIFT 0x00000001
-#define CLK_PWRMGT_CNTL__PPLL_PWRMGT_OFF__SHIFT 0x00000002
-#define CLK_PWRMGT_CNTL__P2PLL_PWRMGT_OFF__SHIFT 0x00000003
-#define CLK_PWRMGT_CNTL__MCLK_TURNOFF__SHIFT 0x00000004
-#define CLK_PWRMGT_CNTL__SCLK_TURNOFF__SHIFT 0x00000005
-#define CLK_PWRMGT_CNTL__PCLK_TURNOFF__SHIFT 0x00000006
-#define CLK_PWRMGT_CNTL__P2CLK_TURNOFF__SHIFT 0x00000007
-#define CLK_PWRMGT_CNTL__MC_CH_MODE__SHIFT 0x00000008
-#define CLK_PWRMGT_CNTL__TEST_MODE__SHIFT 0x00000009
-#define CLK_PWRMGT_CNTL__GLOBAL_PMAN_EN__SHIFT 0x0000000a
-#define CLK_PWRMGT_CNTL__ENGINE_DYNCLK_MODE__SHIFT 0x0000000c
-#define CLK_PWRMGT_CNTL__ACTIVE_HILO_LAT__SHIFT 0x0000000d
-#define CLK_PWRMGT_CNTL__DISP_DYN_STOP_LAT__SHIFT 0x0000000f
-#define CLK_PWRMGT_CNTL__MC_BUSY__SHIFT 0x00000010
-#define CLK_PWRMGT_CNTL__MC_INT_CNTL__SHIFT 0x00000011
-#define CLK_PWRMGT_CNTL__MC_SWITCH__SHIFT 0x00000012
-#define CLK_PWRMGT_CNTL__DLL_READY__SHIFT 0x00000013
-#define CLK_PWRMGT_CNTL__DISP_PM__SHIFT 0x00000014
-#define CLK_PWRMGT_CNTL__DYN_STOP_MODE__SHIFT 0x00000015
-#define CLK_PWRMGT_CNTL__CG_NO1_DEBUG__SHIFT 0x00000018
-#define CLK_PWRMGT_CNTL__TVPLL_PWRMGT_OFF__SHIFT 0x0000001e
-#define CLK_PWRMGT_CNTL__TVCLK_TURNOFF__SHIFT 0x0000001f
-
-// pllP2PLL_CNTL
-#define P2PLL_CNTL__P2PLL_RESET_MASK 0x00000001L
-#define P2PLL_CNTL__P2PLL_RESET 0x00000001L
-#define P2PLL_CNTL__P2PLL_SLEEP_MASK 0x00000002L
-#define P2PLL_CNTL__P2PLL_SLEEP 0x00000002L
-#define P2PLL_CNTL__P2PLL_TST_EN_MASK 0x00000004L
-#define P2PLL_CNTL__P2PLL_TST_EN 0x00000004L
-#define P2PLL_CNTL__P2PLL_REFCLK_SEL_MASK 0x00000010L
-#define P2PLL_CNTL__P2PLL_REFCLK_SEL 0x00000010L
-#define P2PLL_CNTL__P2PLL_FBCLK_SEL_MASK 0x00000020L
-#define P2PLL_CNTL__P2PLL_FBCLK_SEL 0x00000020L
-#define P2PLL_CNTL__P2PLL_TCPOFF_MASK 0x00000040L
-#define P2PLL_CNTL__P2PLL_TCPOFF 0x00000040L
-#define P2PLL_CNTL__P2PLL_TVCOMAX_MASK 0x00000080L
-#define P2PLL_CNTL__P2PLL_TVCOMAX 0x00000080L
-#define P2PLL_CNTL__P2PLL_PCP_MASK 0x00000700L
-#define P2PLL_CNTL__P2PLL_PVG_MASK 0x00003800L
-#define P2PLL_CNTL__P2PLL_PDC_MASK 0x0000c000L
-#define P2PLL_CNTL__P2PLL_ATOMIC_UPDATE_EN_MASK 0x00010000L
-#define P2PLL_CNTL__P2PLL_ATOMIC_UPDATE_EN 0x00010000L
-#define P2PLL_CNTL__P2PLL_ATOMIC_UPDATE_SYNC_MASK 0x00040000L
-#define P2PLL_CNTL__P2PLL_ATOMIC_UPDATE_SYNC 0x00040000L
-#define P2PLL_CNTL__P2PLL_DISABLE_AUTO_RESET_MASK 0x00080000L
-#define P2PLL_CNTL__P2PLL_DISABLE_AUTO_RESET 0x00080000L
-
-// pllPIXCLKS_CNTL
-#define PIXCLKS_CNTL__PIX2CLK_SRC_SEL__SHIFT 0x00000000
-#define PIXCLKS_CNTL__PIX2CLK_INVERT__SHIFT 0x00000004
-#define PIXCLKS_CNTL__PIX2CLK_SRC_INVERT__SHIFT 0x00000005
-#define PIXCLKS_CNTL__PIX2CLK_ALWAYS_ONb__SHIFT 0x00000006
-#define PIXCLKS_CNTL__PIX2CLK_DAC_ALWAYS_ONb__SHIFT 0x00000007
-#define PIXCLKS_CNTL__PIXCLK_TV_SRC_SEL__SHIFT 0x00000008
-#define PIXCLKS_CNTL__PIXCLK_BLEND_ALWAYS_ONb__SHIFT 0x0000000b
-#define PIXCLKS_CNTL__PIXCLK_GV_ALWAYS_ONb__SHIFT 0x0000000c
-#define PIXCLKS_CNTL__PIXCLK_DIG_TMDS_ALWAYS_ONb__SHIFT 0x0000000d
-#define PIXCLKS_CNTL__PIXCLK_LVDS_ALWAYS_ONb__SHIFT 0x0000000e
-#define PIXCLKS_CNTL__PIXCLK_TMDS_ALWAYS_ONb__SHIFT 0x0000000f
-
-
-// pllPIXCLKS_CNTL
-#define PIXCLKS_CNTL__PIX2CLK_SRC_SEL_MASK 0x00000003L
-#define PIXCLKS_CNTL__PIX2CLK_INVERT 0x00000010L
-#define PIXCLKS_CNTL__PIX2CLK_SRC_INVERT 0x00000020L
-#define PIXCLKS_CNTL__PIX2CLK_ALWAYS_ONb 0x00000040L
-#define PIXCLKS_CNTL__PIX2CLK_DAC_ALWAYS_ONb 0x00000080L
-#define PIXCLKS_CNTL__PIXCLK_TV_SRC_SEL 0x00000100L
-#define PIXCLKS_CNTL__PIXCLK_BLEND_ALWAYS_ONb 0x00000800L
-#define PIXCLKS_CNTL__PIXCLK_GV_ALWAYS_ONb 0x00001000L
-#define PIXCLKS_CNTL__PIXCLK_DIG_TMDS_ALWAYS_ONb 0x00002000L
-#define PIXCLKS_CNTL__PIXCLK_LVDS_ALWAYS_ONb 0x00004000L
-#define PIXCLKS_CNTL__PIXCLK_TMDS_ALWAYS_ONb 0x00008000L
-#define PIXCLKS_CNTL__DISP_TVOUT_PIXCLK_TV_ALWAYS_ONb (1 << 9)
-#define PIXCLKS_CNTL__R300_DVOCLK_ALWAYS_ONb (1 << 10)
-#define PIXCLKS_CNTL__R300_PIXCLK_DVO_ALWAYS_ONb (1 << 13)
-#define PIXCLKS_CNTL__R300_PIXCLK_TRANS_ALWAYS_ONb (1 << 16)
-#define PIXCLKS_CNTL__R300_PIXCLK_TVO_ALWAYS_ONb (1 << 17)
-#define PIXCLKS_CNTL__R300_P2G2CLK_ALWAYS_ONb (1 << 18)
-#define PIXCLKS_CNTL__R300_P2G2CLK_DAC_ALWAYS_ONb (1 << 19)
-#define PIXCLKS_CNTL__R300_DISP_DAC_PIXCLK_DAC2_BLANK_OFF (1 << 23)
-
-
-// pllP2PLL_DIV_0
-#define P2PLL_DIV_0__P2PLL_FB_DIV_MASK 0x000007ffL
-#define P2PLL_DIV_0__P2PLL_ATOMIC_UPDATE_W_MASK 0x00008000L
-#define P2PLL_DIV_0__P2PLL_ATOMIC_UPDATE_W 0x00008000L
-#define P2PLL_DIV_0__P2PLL_ATOMIC_UPDATE_R_MASK 0x00008000L
-#define P2PLL_DIV_0__P2PLL_ATOMIC_UPDATE_R 0x00008000L
-#define P2PLL_DIV_0__P2PLL_POST_DIV_MASK 0x00070000L
-
-// pllSCLK_CNTL
-#define SCLK_CNTL__SCLK_SRC_SEL_MASK 0x00000007L
-#define SCLK_CNTL__CP_MAX_DYN_STOP_LAT 0x00000008L
-#define SCLK_CNTL__HDP_MAX_DYN_STOP_LAT 0x00000010L
-#define SCLK_CNTL__TV_MAX_DYN_STOP_LAT 0x00000020L
-#define SCLK_CNTL__E2_MAX_DYN_STOP_LAT 0x00000040L
-#define SCLK_CNTL__SE_MAX_DYN_STOP_LAT 0x00000080L
-#define SCLK_CNTL__IDCT_MAX_DYN_STOP_LAT 0x00000100L
-#define SCLK_CNTL__VIP_MAX_DYN_STOP_LAT 0x00000200L
-#define SCLK_CNTL__RE_MAX_DYN_STOP_LAT 0x00000400L
-#define SCLK_CNTL__PB_MAX_DYN_STOP_LAT 0x00000800L
-#define SCLK_CNTL__TAM_MAX_DYN_STOP_LAT 0x00001000L
-#define SCLK_CNTL__TDM_MAX_DYN_STOP_LAT 0x00002000L
-#define SCLK_CNTL__RB_MAX_DYN_STOP_LAT 0x00004000L
-#define SCLK_CNTL__DYN_STOP_LAT_MASK 0x00007ff8
-#define SCLK_CNTL__FORCE_DISP2 0x00008000L
-#define SCLK_CNTL__FORCE_CP 0x00010000L
-#define SCLK_CNTL__FORCE_HDP 0x00020000L
-#define SCLK_CNTL__FORCE_DISP1 0x00040000L
-#define SCLK_CNTL__FORCE_TOP 0x00080000L
-#define SCLK_CNTL__FORCE_E2 0x00100000L
-#define SCLK_CNTL__FORCE_SE 0x00200000L
-#define SCLK_CNTL__FORCE_IDCT 0x00400000L
-#define SCLK_CNTL__FORCE_VIP 0x00800000L
-#define SCLK_CNTL__FORCE_RE 0x01000000L
-#define SCLK_CNTL__FORCE_PB 0x02000000L
-#define SCLK_CNTL__FORCE_TAM 0x04000000L
-#define SCLK_CNTL__FORCE_TDM 0x08000000L
-#define SCLK_CNTL__FORCE_RB 0x10000000L
-#define SCLK_CNTL__FORCE_TV_SCLK 0x20000000L
-#define SCLK_CNTL__FORCE_SUBPIC 0x40000000L
-#define SCLK_CNTL__FORCE_OV0 0x80000000L
-#define SCLK_CNTL__R300_FORCE_VAP (1<<21)
-#define SCLK_CNTL__R300_FORCE_SR (1<<25)
-#define SCLK_CNTL__R300_FORCE_PX (1<<26)
-#define SCLK_CNTL__R300_FORCE_TX (1<<27)
-#define SCLK_CNTL__R300_FORCE_US (1<<28)
-#define SCLK_CNTL__R300_FORCE_SU (1<<30)
-#define SCLK_CNTL__FORCEON_MASK 0xffff8000L
-
-// pllSCLK_CNTL2
-#define SCLK_CNTL2__R300_TCL_MAX_DYN_STOP_LAT (1<<10)
-#define SCLK_CNTL2__R300_GA_MAX_DYN_STOP_LAT (1<<11)
-#define SCLK_CNTL2__R300_CBA_MAX_DYN_STOP_LAT (1<<12)
-#define SCLK_CNTL2__R300_FORCE_TCL (1<<13)
-#define SCLK_CNTL2__R300_FORCE_CBA (1<<14)
-#define SCLK_CNTL2__R300_FORCE_GA (1<<15)
-
-// SCLK_MORE_CNTL
-#define SCLK_MORE_CNTL__DISPREGS_MAX_DYN_STOP_LAT 0x00000001L
-#define SCLK_MORE_CNTL__MC_GUI_MAX_DYN_STOP_LAT 0x00000002L
-#define SCLK_MORE_CNTL__MC_HOST_MAX_DYN_STOP_LAT 0x00000004L
-#define SCLK_MORE_CNTL__FORCE_DISPREGS 0x00000100L
-#define SCLK_MORE_CNTL__FORCE_MC_GUI 0x00000200L
-#define SCLK_MORE_CNTL__FORCE_MC_HOST 0x00000400L
-#define SCLK_MORE_CNTL__STOP_SCLK_EN 0x00001000L
-#define SCLK_MORE_CNTL__STOP_SCLK_A 0x00002000L
-#define SCLK_MORE_CNTL__STOP_SCLK_B 0x00004000L
-#define SCLK_MORE_CNTL__STOP_SCLK_C 0x00008000L
-#define SCLK_MORE_CNTL__HALF_SPEED_SCLK 0x00010000L
-#define SCLK_MORE_CNTL__IO_CG_VOLTAGE_DROP 0x00020000L
-#define SCLK_MORE_CNTL__TVFB_SOFT_RESET 0x00040000L
-#define SCLK_MORE_CNTL__VOLTAGE_DROP_SYNC 0x00080000L
-#define SCLK_MORE_CNTL__IDLE_DELAY_HALF_SCLK 0x00400000L
-#define SCLK_MORE_CNTL__AGP_BUSY_HALF_SCLK 0x00800000L
-#define SCLK_MORE_CNTL__CG_SPARE_RD_C_MASK 0xff000000L
-#define SCLK_MORE_CNTL__FORCEON 0x00000700L
-
-// MCLK_CNTL
-#define MCLK_CNTL__MCLKA_SRC_SEL_MASK 0x00000007L
-#define MCLK_CNTL__YCLKA_SRC_SEL_MASK 0x00000070L
-#define MCLK_CNTL__MCLKB_SRC_SEL_MASK 0x00000700L
-#define MCLK_CNTL__YCLKB_SRC_SEL_MASK 0x00007000L
-#define MCLK_CNTL__FORCE_MCLKA_MASK 0x00010000L
-#define MCLK_CNTL__FORCE_MCLKA 0x00010000L
-#define MCLK_CNTL__FORCE_MCLKB_MASK 0x00020000L
-#define MCLK_CNTL__FORCE_MCLKB 0x00020000L
-#define MCLK_CNTL__FORCE_YCLKA_MASK 0x00040000L
-#define MCLK_CNTL__FORCE_YCLKA 0x00040000L
-#define MCLK_CNTL__FORCE_YCLKB_MASK 0x00080000L
-#define MCLK_CNTL__FORCE_YCLKB 0x00080000L
-#define MCLK_CNTL__FORCE_MC_MASK 0x00100000L
-#define MCLK_CNTL__FORCE_MC 0x00100000L
-#define MCLK_CNTL__FORCE_AIC_MASK 0x00200000L
-#define MCLK_CNTL__FORCE_AIC 0x00200000L
-#define MCLK_CNTL__MRDCKA0_SOUTSEL_MASK 0x03000000L
-#define MCLK_CNTL__MRDCKA1_SOUTSEL_MASK 0x0c000000L
-#define MCLK_CNTL__MRDCKB0_SOUTSEL_MASK 0x30000000L
-#define MCLK_CNTL__MRDCKB1_SOUTSEL_MASK 0xc0000000L
-#define MCLK_CNTL__R300_DISABLE_MC_MCLKA (1 << 21)
-#define MCLK_CNTL__R300_DISABLE_MC_MCLKB (1 << 21)
-
-// MCLK_MISC
-#define MCLK_MISC__SCLK_SOURCED_FROM_MPLL_SEL_MASK 0x00000003L
-#define MCLK_MISC__MCLK_FROM_SPLL_DIV_SEL_MASK 0x00000004L
-#define MCLK_MISC__MCLK_FROM_SPLL_DIV_SEL 0x00000004L
-#define MCLK_MISC__ENABLE_SCLK_FROM_MPLL_MASK 0x00000008L
-#define MCLK_MISC__ENABLE_SCLK_FROM_MPLL 0x00000008L
-#define MCLK_MISC__MPLL_MODEA_MODEC_HW_SEL_EN_MASK 0x00000010L
-#define MCLK_MISC__MPLL_MODEA_MODEC_HW_SEL_EN 0x00000010L
-#define MCLK_MISC__DLL_READY_LAT_MASK 0x00000100L
-#define MCLK_MISC__DLL_READY_LAT 0x00000100L
-#define MCLK_MISC__MC_MCLK_MAX_DYN_STOP_LAT_MASK 0x00001000L
-#define MCLK_MISC__MC_MCLK_MAX_DYN_STOP_LAT 0x00001000L
-#define MCLK_MISC__IO_MCLK_MAX_DYN_STOP_LAT_MASK 0x00002000L
-#define MCLK_MISC__IO_MCLK_MAX_DYN_STOP_LAT 0x00002000L
-#define MCLK_MISC__MC_MCLK_DYN_ENABLE_MASK 0x00004000L
-#define MCLK_MISC__MC_MCLK_DYN_ENABLE 0x00004000L
-#define MCLK_MISC__IO_MCLK_DYN_ENABLE_MASK 0x00008000L
-#define MCLK_MISC__IO_MCLK_DYN_ENABLE 0x00008000L
-#define MCLK_MISC__CGM_CLK_TO_OUTPIN_MASK 0x00010000L
-#define MCLK_MISC__CGM_CLK_TO_OUTPIN 0x00010000L
-#define MCLK_MISC__CLK_OR_COUNT_SEL_MASK 0x00020000L
-#define MCLK_MISC__CLK_OR_COUNT_SEL 0x00020000L
-#define MCLK_MISC__EN_MCLK_TRISTATE_IN_SUSPEND_MASK 0x00040000L
-#define MCLK_MISC__EN_MCLK_TRISTATE_IN_SUSPEND 0x00040000L
-#define MCLK_MISC__CGM_SPARE_RD_MASK 0x00300000L
-#define MCLK_MISC__CGM_SPARE_A_RD_MASK 0x00c00000L
-#define MCLK_MISC__TCLK_TO_YCLKB_EN_MASK 0x01000000L
-#define MCLK_MISC__TCLK_TO_YCLKB_EN 0x01000000L
-#define MCLK_MISC__CGM_SPARE_A_MASK 0x0e000000L
-
-// VCLK_ECP_CNTL
-#define VCLK_ECP_CNTL__VCLK_SRC_SEL_MASK 0x00000003L
-#define VCLK_ECP_CNTL__VCLK_INVERT 0x00000010L
-#define VCLK_ECP_CNTL__PIXCLK_SRC_INVERT 0x00000020L
-#define VCLK_ECP_CNTL__PIXCLK_ALWAYS_ONb 0x00000040L
-#define VCLK_ECP_CNTL__PIXCLK_DAC_ALWAYS_ONb 0x00000080L
-#define VCLK_ECP_CNTL__ECP_DIV_MASK 0x00000300L
-#define VCLK_ECP_CNTL__ECP_FORCE_ON 0x00040000L
-#define VCLK_ECP_CNTL__SUBCLK_FORCE_ON 0x00080000L
-#define VCLK_ECP_CNTL__R300_DISP_DAC_PIXCLK_DAC_BLANK_OFF (1<<23)
-
-// PLL_PWRMGT_CNTL
-#define PLL_PWRMGT_CNTL__MPLL_TURNOFF_MASK 0x00000001L
-#define PLL_PWRMGT_CNTL__MPLL_TURNOFF 0x00000001L
-#define PLL_PWRMGT_CNTL__SPLL_TURNOFF_MASK 0x00000002L
-#define PLL_PWRMGT_CNTL__SPLL_TURNOFF 0x00000002L
-#define PLL_PWRMGT_CNTL__PPLL_TURNOFF_MASK 0x00000004L
-#define PLL_PWRMGT_CNTL__PPLL_TURNOFF 0x00000004L
-#define PLL_PWRMGT_CNTL__P2PLL_TURNOFF_MASK 0x00000008L
-#define PLL_PWRMGT_CNTL__P2PLL_TURNOFF 0x00000008L
-#define PLL_PWRMGT_CNTL__TVPLL_TURNOFF_MASK 0x00000010L
-#define PLL_PWRMGT_CNTL__TVPLL_TURNOFF 0x00000010L
-#define PLL_PWRMGT_CNTL__AGPCLK_DYN_STOP_LAT_MASK 0x000001e0L
-#define PLL_PWRMGT_CNTL__APM_POWER_STATE_MASK 0x00000600L
-#define PLL_PWRMGT_CNTL__APM_PWRSTATE_RD_MASK 0x00001800L
-#define PLL_PWRMGT_CNTL__PM_MODE_SEL_MASK 0x00002000L
-#define PLL_PWRMGT_CNTL__PM_MODE_SEL 0x00002000L
-#define PLL_PWRMGT_CNTL__EN_PWRSEQ_DONE_COND_MASK 0x00004000L
-#define PLL_PWRMGT_CNTL__EN_PWRSEQ_DONE_COND 0x00004000L
-#define PLL_PWRMGT_CNTL__EN_DISP_PARKED_COND_MASK 0x00008000L
-#define PLL_PWRMGT_CNTL__EN_DISP_PARKED_COND 0x00008000L
-#define PLL_PWRMGT_CNTL__MOBILE_SU_MASK 0x00010000L
-#define PLL_PWRMGT_CNTL__MOBILE_SU 0x00010000L
-#define PLL_PWRMGT_CNTL__SU_SCLK_USE_BCLK_MASK 0x00020000L
-#define PLL_PWRMGT_CNTL__SU_SCLK_USE_BCLK 0x00020000L
-#define PLL_PWRMGT_CNTL__SU_MCLK_USE_BCLK_MASK 0x00040000L
-#define PLL_PWRMGT_CNTL__SU_MCLK_USE_BCLK 0x00040000L
-#define PLL_PWRMGT_CNTL__SU_SUSTAIN_DISABLE_MASK 0x00080000L
-#define PLL_PWRMGT_CNTL__SU_SUSTAIN_DISABLE 0x00080000L
-#define PLL_PWRMGT_CNTL__TCL_BYPASS_DISABLE_MASK 0x00100000L
-#define PLL_PWRMGT_CNTL__TCL_BYPASS_DISABLE 0x00100000L
-#define PLL_PWRMGT_CNTL__TCL_CLOCK_CTIVE_RD_MASK 0x00200000L
-#define PLL_PWRMGT_CNTL__TCL_CLOCK_ACTIVE_RD 0x00200000L
-#define PLL_PWRMGT_CNTL__CG_NO2_DEBUG_MASK 0xff000000L
-
-// CLK_PWRMGT_CNTL
-#define CLK_PWRMGT_CNTL__MPLL_PWRMGT_OFF_MASK 0x00000001L
-#define CLK_PWRMGT_CNTL__MPLL_PWRMGT_OFF 0x00000001L
-#define CLK_PWRMGT_CNTL__SPLL_PWRMGT_OFF_MASK 0x00000002L
-#define CLK_PWRMGT_CNTL__SPLL_PWRMGT_OFF 0x00000002L
-#define CLK_PWRMGT_CNTL__PPLL_PWRMGT_OFF_MASK 0x00000004L
-#define CLK_PWRMGT_CNTL__PPLL_PWRMGT_OFF 0x00000004L
-#define CLK_PWRMGT_CNTL__P2PLL_PWRMGT_OFF_MASK 0x00000008L
-#define CLK_PWRMGT_CNTL__P2PLL_PWRMGT_OFF 0x00000008L
-#define CLK_PWRMGT_CNTL__MCLK_TURNOFF_MASK 0x00000010L
-#define CLK_PWRMGT_CNTL__MCLK_TURNOFF 0x00000010L
-#define CLK_PWRMGT_CNTL__SCLK_TURNOFF_MASK 0x00000020L
-#define CLK_PWRMGT_CNTL__SCLK_TURNOFF 0x00000020L
-#define CLK_PWRMGT_CNTL__PCLK_TURNOFF_MASK 0x00000040L
-#define CLK_PWRMGT_CNTL__PCLK_TURNOFF 0x00000040L
-#define CLK_PWRMGT_CNTL__P2CLK_TURNOFF_MASK 0x00000080L
-#define CLK_PWRMGT_CNTL__P2CLK_TURNOFF 0x00000080L
-#define CLK_PWRMGT_CNTL__MC_CH_MODE_MASK 0x00000100L
-#define CLK_PWRMGT_CNTL__MC_CH_MODE 0x00000100L
-#define CLK_PWRMGT_CNTL__TEST_MODE_MASK 0x00000200L
-#define CLK_PWRMGT_CNTL__TEST_MODE 0x00000200L
-#define CLK_PWRMGT_CNTL__GLOBAL_PMAN_EN_MASK 0x00000400L
-#define CLK_PWRMGT_CNTL__GLOBAL_PMAN_EN 0x00000400L
-#define CLK_PWRMGT_CNTL__ENGINE_DYNCLK_MODE_MASK 0x00001000L
-#define CLK_PWRMGT_CNTL__ENGINE_DYNCLK_MODE 0x00001000L
-#define CLK_PWRMGT_CNTL__ACTIVE_HILO_LAT_MASK 0x00006000L
-#define CLK_PWRMGT_CNTL__DISP_DYN_STOP_LAT_MASK 0x00008000L
-#define CLK_PWRMGT_CNTL__DISP_DYN_STOP_LAT 0x00008000L
-#define CLK_PWRMGT_CNTL__MC_BUSY_MASK 0x00010000L
-#define CLK_PWRMGT_CNTL__MC_BUSY 0x00010000L
-#define CLK_PWRMGT_CNTL__MC_INT_CNTL_MASK 0x00020000L
-#define CLK_PWRMGT_CNTL__MC_INT_CNTL 0x00020000L
-#define CLK_PWRMGT_CNTL__MC_SWITCH_MASK 0x00040000L
-#define CLK_PWRMGT_CNTL__MC_SWITCH 0x00040000L
-#define CLK_PWRMGT_CNTL__DLL_READY_MASK 0x00080000L
-#define CLK_PWRMGT_CNTL__DLL_READY 0x00080000L
-#define CLK_PWRMGT_CNTL__DISP_PM_MASK 0x00100000L
-#define CLK_PWRMGT_CNTL__DISP_PM 0x00100000L
-#define CLK_PWRMGT_CNTL__DYN_STOP_MODE_MASK 0x00e00000L
-#define CLK_PWRMGT_CNTL__CG_NO1_DEBUG_MASK 0x3f000000L
-#define CLK_PWRMGT_CNTL__TVPLL_PWRMGT_OFF_MASK 0x40000000L
-#define CLK_PWRMGT_CNTL__TVPLL_PWRMGT_OFF 0x40000000L
-#define CLK_PWRMGT_CNTL__TVCLK_TURNOFF_MASK 0x80000000L
-#define CLK_PWRMGT_CNTL__TVCLK_TURNOFF 0x80000000L
-
-// BUS_CNTL1
-#define BUS_CNTL1__PMI_IO_DISABLE_MASK 0x00000001L
-#define BUS_CNTL1__PMI_IO_DISABLE 0x00000001L
-#define BUS_CNTL1__PMI_MEM_DISABLE_MASK 0x00000002L
-#define BUS_CNTL1__PMI_MEM_DISABLE 0x00000002L
-#define BUS_CNTL1__PMI_BM_DISABLE_MASK 0x00000004L
-#define BUS_CNTL1__PMI_BM_DISABLE 0x00000004L
-#define BUS_CNTL1__PMI_INT_DISABLE_MASK 0x00000008L
-#define BUS_CNTL1__PMI_INT_DISABLE 0x00000008L
-#define BUS_CNTL1__BUS2_IMMEDIATE_PMI_DISABLE_MASK 0x00000020L
-#define BUS_CNTL1__BUS2_IMMEDIATE_PMI_DISABLE 0x00000020L
-#define BUS_CNTL1__BUS2_VGA_REG_COHERENCY_DIS_MASK 0x00000100L
-#define BUS_CNTL1__BUS2_VGA_REG_COHERENCY_DIS 0x00000100L
-#define BUS_CNTL1__BUS2_VGA_MEM_COHERENCY_DIS_MASK 0x00000200L
-#define BUS_CNTL1__BUS2_VGA_MEM_COHERENCY_DIS 0x00000200L
-#define BUS_CNTL1__BUS2_HDP_REG_COHERENCY_DIS_MASK 0x00000400L
-#define BUS_CNTL1__BUS2_HDP_REG_COHERENCY_DIS 0x00000400L
-#define BUS_CNTL1__BUS2_GUI_INITIATOR_COHERENCY_DIS_MASK 0x00000800L
-#define BUS_CNTL1__BUS2_GUI_INITIATOR_COHERENCY_DIS 0x00000800L
-#define BUS_CNTL1__MOBILE_PLATFORM_SEL_MASK 0x0c000000L
-#define BUS_CNTL1__SEND_SBA_LATENCY_MASK 0x70000000L
-#define BUS_CNTL1__AGPCLK_VALID_MASK 0x80000000L
-#define BUS_CNTL1__AGPCLK_VALID 0x80000000L
-
-// BUS_CNTL1
-#define BUS_CNTL1__PMI_IO_DISABLE__SHIFT 0x00000000
-#define BUS_CNTL1__PMI_MEM_DISABLE__SHIFT 0x00000001
-#define BUS_CNTL1__PMI_BM_DISABLE__SHIFT 0x00000002
-#define BUS_CNTL1__PMI_INT_DISABLE__SHIFT 0x00000003
-#define BUS_CNTL1__BUS2_IMMEDIATE_PMI_DISABLE__SHIFT 0x00000005
-#define BUS_CNTL1__BUS2_VGA_REG_COHERENCY_DIS__SHIFT 0x00000008
-#define BUS_CNTL1__BUS2_VGA_MEM_COHERENCY_DIS__SHIFT 0x00000009
-#define BUS_CNTL1__BUS2_HDP_REG_COHERENCY_DIS__SHIFT 0x0000000a
-#define BUS_CNTL1__BUS2_GUI_INITIATOR_COHERENCY_DIS__SHIFT 0x0000000b
-#define BUS_CNTL1__MOBILE_PLATFORM_SEL__SHIFT 0x0000001a
-#define BUS_CNTL1__SEND_SBA_LATENCY__SHIFT 0x0000001c
-#define BUS_CNTL1__AGPCLK_VALID__SHIFT 0x0000001f
-
-// CRTC_OFFSET_CNTL
-#define CRTC_OFFSET_CNTL__CRTC_TILE_LINE_MASK 0x0000000fL
-#define CRTC_OFFSET_CNTL__CRTC_TILE_LINE_RIGHT_MASK 0x000000f0L
-#define CRTC_OFFSET_CNTL__CRTC_TILE_EN_RIGHT_MASK 0x00004000L
-#define CRTC_OFFSET_CNTL__CRTC_TILE_EN_RIGHT 0x00004000L
-#define CRTC_OFFSET_CNTL__CRTC_TILE_EN_MASK 0x00008000L
-#define CRTC_OFFSET_CNTL__CRTC_TILE_EN 0x00008000L
-#define CRTC_OFFSET_CNTL__CRTC_OFFSET_FLIP_CNTL_MASK 0x00010000L
-#define CRTC_OFFSET_CNTL__CRTC_OFFSET_FLIP_CNTL 0x00010000L
-#define CRTC_OFFSET_CNTL__CRTC_STEREO_OFFSET_EN_MASK 0x00020000L
-#define CRTC_OFFSET_CNTL__CRTC_STEREO_OFFSET_EN 0x00020000L
-#define CRTC_OFFSET_CNTL__CRTC_STEREO_SYNC_EN_MASK 0x000c0000L
-#define CRTC_OFFSET_CNTL__CRTC_STEREO_SYNC_OUT_EN_MASK 0x00100000L
-#define CRTC_OFFSET_CNTL__CRTC_STEREO_SYNC_OUT_EN 0x00100000L
-#define CRTC_OFFSET_CNTL__CRTC_STEREO_SYNC_MASK 0x00200000L
-#define CRTC_OFFSET_CNTL__CRTC_STEREO_SYNC 0x00200000L
-#define CRTC_OFFSET_CNTL__CRTC_GUI_TRIG_OFFSET_LEFT_EN_MASK 0x10000000L
-#define CRTC_OFFSET_CNTL__CRTC_GUI_TRIG_OFFSET_LEFT_EN 0x10000000L
-#define CRTC_OFFSET_CNTL__CRTC_GUI_TRIG_OFFSET_RIGHT_EN_MASK 0x20000000L
-#define CRTC_OFFSET_CNTL__CRTC_GUI_TRIG_OFFSET_RIGHT_EN 0x20000000L
-#define CRTC_OFFSET_CNTL__CRTC_GUI_TRIG_OFFSET_MASK 0x40000000L
-#define CRTC_OFFSET_CNTL__CRTC_GUI_TRIG_OFFSET 0x40000000L
-#define CRTC_OFFSET_CNTL__CRTC_OFFSET_LOCK_MASK 0x80000000L
-#define CRTC_OFFSET_CNTL__CRTC_OFFSET_LOCK 0x80000000L
-
-// CRTC_GEN_CNTL
-#define CRTC_GEN_CNTL__CRTC_DBL_SCAN_EN_MASK 0x00000001L
-#define CRTC_GEN_CNTL__CRTC_DBL_SCAN_EN 0x00000001L
-#define CRTC_GEN_CNTL__CRTC_INTERLACE_EN_MASK 0x00000002L
-#define CRTC_GEN_CNTL__CRTC_INTERLACE_EN 0x00000002L
-#define CRTC_GEN_CNTL__CRTC_C_SYNC_EN_MASK 0x00000010L
-#define CRTC_GEN_CNTL__CRTC_C_SYNC_EN 0x00000010L
-#define CRTC_GEN_CNTL__CRTC_PIX_WIDTH_MASK 0x00000f00L
-#define CRTC_GEN_CNTL__CRTC_ICON_EN_MASK 0x00008000L
-#define CRTC_GEN_CNTL__CRTC_ICON_EN 0x00008000L
-#define CRTC_GEN_CNTL__CRTC_CUR_EN_MASK 0x00010000L
-#define CRTC_GEN_CNTL__CRTC_CUR_EN 0x00010000L
-#define CRTC_GEN_CNTL__CRTC_VSTAT_MODE_MASK 0x00060000L
-#define CRTC_GEN_CNTL__CRTC_CUR_MODE_MASK 0x00700000L
-#define CRTC_GEN_CNTL__CRTC_EXT_DISP_EN_MASK 0x01000000L
-#define CRTC_GEN_CNTL__CRTC_EXT_DISP_EN 0x01000000L
-#define CRTC_GEN_CNTL__CRTC_EN_MASK 0x02000000L
-#define CRTC_GEN_CNTL__CRTC_EN 0x02000000L
-#define CRTC_GEN_CNTL__CRTC_DISP_REQ_EN_B_MASK 0x04000000L
-#define CRTC_GEN_CNTL__CRTC_DISP_REQ_EN_B 0x04000000L
-
-// CRTC2_GEN_CNTL
-#define CRTC2_GEN_CNTL__CRTC2_DBL_SCAN_EN_MASK 0x00000001L
-#define CRTC2_GEN_CNTL__CRTC2_DBL_SCAN_EN 0x00000001L
-#define CRTC2_GEN_CNTL__CRTC2_INTERLACE_EN_MASK 0x00000002L
-#define CRTC2_GEN_CNTL__CRTC2_INTERLACE_EN 0x00000002L
-#define CRTC2_GEN_CNTL__CRTC2_SYNC_TRISTATE_MASK 0x00000010L
-#define CRTC2_GEN_CNTL__CRTC2_SYNC_TRISTATE 0x00000010L
-#define CRTC2_GEN_CNTL__CRTC2_HSYNC_TRISTATE_MASK 0x00000020L
-#define CRTC2_GEN_CNTL__CRTC2_HSYNC_TRISTATE 0x00000020L
-#define CRTC2_GEN_CNTL__CRTC2_VSYNC_TRISTATE_MASK 0x00000040L
-#define CRTC2_GEN_CNTL__CRTC2_VSYNC_TRISTATE 0x00000040L
-#define CRTC2_GEN_CNTL__CRT2_ON_MASK 0x00000080L
-#define CRTC2_GEN_CNTL__CRT2_ON 0x00000080L
-#define CRTC2_GEN_CNTL__CRTC2_PIX_WIDTH_MASK 0x00000f00L
-#define CRTC2_GEN_CNTL__CRTC2_ICON_EN_MASK 0x00008000L
-#define CRTC2_GEN_CNTL__CRTC2_ICON_EN 0x00008000L
-#define CRTC2_GEN_CNTL__CRTC2_CUR_EN_MASK 0x00010000L
-#define CRTC2_GEN_CNTL__CRTC2_CUR_EN 0x00010000L
-#define CRTC2_GEN_CNTL__CRTC2_CUR_MODE_MASK 0x00700000L
-#define CRTC2_GEN_CNTL__CRTC2_DISPLAY_DIS_MASK 0x00800000L
-#define CRTC2_GEN_CNTL__CRTC2_DISPLAY_DIS 0x00800000L
-#define CRTC2_GEN_CNTL__CRTC2_EN_MASK 0x02000000L
-#define CRTC2_GEN_CNTL__CRTC2_EN 0x02000000L
-#define CRTC2_GEN_CNTL__CRTC2_DISP_REQ_EN_B_MASK 0x04000000L
-#define CRTC2_GEN_CNTL__CRTC2_DISP_REQ_EN_B 0x04000000L
-#define CRTC2_GEN_CNTL__CRTC2_C_SYNC_EN_MASK 0x08000000L
-#define CRTC2_GEN_CNTL__CRTC2_C_SYNC_EN 0x08000000L
-#define CRTC2_GEN_CNTL__CRTC2_HSYNC_DIS_MASK 0x10000000L
-#define CRTC2_GEN_CNTL__CRTC2_HSYNC_DIS 0x10000000L
-#define CRTC2_GEN_CNTL__CRTC2_VSYNC_DIS_MASK 0x20000000L
-#define CRTC2_GEN_CNTL__CRTC2_VSYNC_DIS 0x20000000L
-
-// AGP_CNTL
-#define AGP_CNTL__MAX_IDLE_CLK_MASK 0x000000ffL
-#define AGP_CNTL__HOLD_RD_FIFO_MASK 0x00000100L
-#define AGP_CNTL__HOLD_RD_FIFO 0x00000100L
-#define AGP_CNTL__HOLD_RQ_FIFO_MASK 0x00000200L
-#define AGP_CNTL__HOLD_RQ_FIFO 0x00000200L
-#define AGP_CNTL__EN_2X_STBB_MASK 0x00000400L
-#define AGP_CNTL__EN_2X_STBB 0x00000400L
-#define AGP_CNTL__FORCE_FULL_SBA_MASK 0x00000800L
-#define AGP_CNTL__FORCE_FULL_SBA 0x00000800L
-#define AGP_CNTL__SBA_DIS_MASK 0x00001000L
-#define AGP_CNTL__SBA_DIS 0x00001000L
-#define AGP_CNTL__AGP_REV_ID_MASK 0x00002000L
-#define AGP_CNTL__AGP_REV_ID 0x00002000L
-#define AGP_CNTL__REG_CRIPPLE_AGP4X_MASK 0x00004000L
-#define AGP_CNTL__REG_CRIPPLE_AGP4X 0x00004000L
-#define AGP_CNTL__REG_CRIPPLE_AGP2X4X_MASK 0x00008000L
-#define AGP_CNTL__REG_CRIPPLE_AGP2X4X 0x00008000L
-#define AGP_CNTL__FORCE_INT_VREF_MASK 0x00010000L
-#define AGP_CNTL__FORCE_INT_VREF 0x00010000L
-#define AGP_CNTL__PENDING_SLOTS_VAL_MASK 0x00060000L
-#define AGP_CNTL__PENDING_SLOTS_SEL_MASK 0x00080000L
-#define AGP_CNTL__PENDING_SLOTS_SEL 0x00080000L
-#define AGP_CNTL__EN_EXTENDED_AD_STB_2X_MASK 0x00100000L
-#define AGP_CNTL__EN_EXTENDED_AD_STB_2X 0x00100000L
-#define AGP_CNTL__DIS_QUEUED_GNT_FIX_MASK 0x00200000L
-#define AGP_CNTL__DIS_QUEUED_GNT_FIX 0x00200000L
-#define AGP_CNTL__EN_RDATA2X4X_MULTIRESET_MASK 0x00400000L
-#define AGP_CNTL__EN_RDATA2X4X_MULTIRESET 0x00400000L
-#define AGP_CNTL__EN_RBFCALM_MASK 0x00800000L
-#define AGP_CNTL__EN_RBFCALM 0x00800000L
-#define AGP_CNTL__FORCE_EXT_VREF_MASK 0x01000000L
-#define AGP_CNTL__FORCE_EXT_VREF 0x01000000L
-#define AGP_CNTL__DIS_RBF_MASK 0x02000000L
-#define AGP_CNTL__DIS_RBF 0x02000000L
-#define AGP_CNTL__DELAY_FIRST_SBA_EN_MASK 0x04000000L
-#define AGP_CNTL__DELAY_FIRST_SBA_EN 0x04000000L
-#define AGP_CNTL__DELAY_FIRST_SBA_VAL_MASK 0x38000000L
-#define AGP_CNTL__AGP_MISC_MASK 0xc0000000L
-
-// AGP_CNTL
-#define AGP_CNTL__MAX_IDLE_CLK__SHIFT 0x00000000
-#define AGP_CNTL__HOLD_RD_FIFO__SHIFT 0x00000008
-#define AGP_CNTL__HOLD_RQ_FIFO__SHIFT 0x00000009
-#define AGP_CNTL__EN_2X_STBB__SHIFT 0x0000000a
-#define AGP_CNTL__FORCE_FULL_SBA__SHIFT 0x0000000b
-#define AGP_CNTL__SBA_DIS__SHIFT 0x0000000c
-#define AGP_CNTL__AGP_REV_ID__SHIFT 0x0000000d
-#define AGP_CNTL__REG_CRIPPLE_AGP4X__SHIFT 0x0000000e
-#define AGP_CNTL__REG_CRIPPLE_AGP2X4X__SHIFT 0x0000000f
-#define AGP_CNTL__FORCE_INT_VREF__SHIFT 0x00000010
-#define AGP_CNTL__PENDING_SLOTS_VAL__SHIFT 0x00000011
-#define AGP_CNTL__PENDING_SLOTS_SEL__SHIFT 0x00000013
-#define AGP_CNTL__EN_EXTENDED_AD_STB_2X__SHIFT 0x00000014
-#define AGP_CNTL__DIS_QUEUED_GNT_FIX__SHIFT 0x00000015
-#define AGP_CNTL__EN_RDATA2X4X_MULTIRESET__SHIFT 0x00000016
-#define AGP_CNTL__EN_RBFCALM__SHIFT 0x00000017
-#define AGP_CNTL__FORCE_EXT_VREF__SHIFT 0x00000018
-#define AGP_CNTL__DIS_RBF__SHIFT 0x00000019
-#define AGP_CNTL__DELAY_FIRST_SBA_EN__SHIFT 0x0000001a
-#define AGP_CNTL__DELAY_FIRST_SBA_VAL__SHIFT 0x0000001b
-#define AGP_CNTL__AGP_MISC__SHIFT 0x0000001e
-
-// DISP_MISC_CNTL
-#define DISP_MISC_CNTL__SOFT_RESET_GRPH_PP_MASK 0x00000001L
-#define DISP_MISC_CNTL__SOFT_RESET_GRPH_PP 0x00000001L
-#define DISP_MISC_CNTL__SOFT_RESET_SUBPIC_PP_MASK 0x00000002L
-#define DISP_MISC_CNTL__SOFT_RESET_SUBPIC_PP 0x00000002L
-#define DISP_MISC_CNTL__SOFT_RESET_OV0_PP_MASK 0x00000004L
-#define DISP_MISC_CNTL__SOFT_RESET_OV0_PP 0x00000004L
-#define DISP_MISC_CNTL__SOFT_RESET_GRPH_SCLK_MASK 0x00000010L
-#define DISP_MISC_CNTL__SOFT_RESET_GRPH_SCLK 0x00000010L
-#define DISP_MISC_CNTL__SOFT_RESET_SUBPIC_SCLK_MASK 0x00000020L
-#define DISP_MISC_CNTL__SOFT_RESET_SUBPIC_SCLK 0x00000020L
-#define DISP_MISC_CNTL__SOFT_RESET_OV0_SCLK_MASK 0x00000040L
-#define DISP_MISC_CNTL__SOFT_RESET_OV0_SCLK 0x00000040L
-#define DISP_MISC_CNTL__SYNC_STRENGTH_MASK 0x00000300L
-#define DISP_MISC_CNTL__SYNC_PAD_FLOP_EN_MASK 0x00000400L
-#define DISP_MISC_CNTL__SYNC_PAD_FLOP_EN 0x00000400L
-#define DISP_MISC_CNTL__SOFT_RESET_GRPH2_PP_MASK 0x00001000L
-#define DISP_MISC_CNTL__SOFT_RESET_GRPH2_PP 0x00001000L
-#define DISP_MISC_CNTL__SOFT_RESET_GRPH2_SCLK_MASK 0x00008000L
-#define DISP_MISC_CNTL__SOFT_RESET_GRPH2_SCLK 0x00008000L
-#define DISP_MISC_CNTL__SOFT_RESET_LVDS_MASK 0x00010000L
-#define DISP_MISC_CNTL__SOFT_RESET_LVDS 0x00010000L
-#define DISP_MISC_CNTL__SOFT_RESET_TMDS_MASK 0x00020000L
-#define DISP_MISC_CNTL__SOFT_RESET_TMDS 0x00020000L
-#define DISP_MISC_CNTL__SOFT_RESET_DIG_TMDS_MASK 0x00040000L
-#define DISP_MISC_CNTL__SOFT_RESET_DIG_TMDS 0x00040000L
-#define DISP_MISC_CNTL__SOFT_RESET_TV_MASK 0x00080000L
-#define DISP_MISC_CNTL__SOFT_RESET_TV 0x00080000L
-#define DISP_MISC_CNTL__PALETTE2_MEM_RD_MARGIN_MASK 0x00f00000L
-#define DISP_MISC_CNTL__PALETTE_MEM_RD_MARGIN_MASK 0x0f000000L
-#define DISP_MISC_CNTL__RMX_BUF_MEM_RD_MARGIN_MASK 0xf0000000L
-
-// DISP_PWR_MAN
-#define DISP_PWR_MAN__DISP_PWR_MAN_D3_CRTC_EN_MASK 0x00000001L
-#define DISP_PWR_MAN__DISP_PWR_MAN_D3_CRTC_EN 0x00000001L
-#define DISP_PWR_MAN__DISP2_PWR_MAN_D3_CRTC2_EN_MASK 0x00000010L
-#define DISP_PWR_MAN__DISP2_PWR_MAN_D3_CRTC2_EN 0x00000010L
-#define DISP_PWR_MAN__DISP_PWR_MAN_DPMS_MASK 0x00000300L
-#define DISP_PWR_MAN__DISP_D3_RST_MASK 0x00010000L
-#define DISP_PWR_MAN__DISP_D3_RST 0x00010000L
-#define DISP_PWR_MAN__DISP_D3_REG_RST_MASK 0x00020000L
-#define DISP_PWR_MAN__DISP_D3_REG_RST 0x00020000L
-#define DISP_PWR_MAN__DISP_D3_GRPH_RST_MASK 0x00040000L
-#define DISP_PWR_MAN__DISP_D3_GRPH_RST 0x00040000L
-#define DISP_PWR_MAN__DISP_D3_SUBPIC_RST_MASK 0x00080000L
-#define DISP_PWR_MAN__DISP_D3_SUBPIC_RST 0x00080000L
-#define DISP_PWR_MAN__DISP_D3_OV0_RST_MASK 0x00100000L
-#define DISP_PWR_MAN__DISP_D3_OV0_RST 0x00100000L
-#define DISP_PWR_MAN__DISP_D1D2_GRPH_RST_MASK 0x00200000L
-#define DISP_PWR_MAN__DISP_D1D2_GRPH_RST 0x00200000L
-#define DISP_PWR_MAN__DISP_D1D2_SUBPIC_RST_MASK 0x00400000L
-#define DISP_PWR_MAN__DISP_D1D2_SUBPIC_RST 0x00400000L
-#define DISP_PWR_MAN__DISP_D1D2_OV0_RST_MASK 0x00800000L
-#define DISP_PWR_MAN__DISP_D1D2_OV0_RST 0x00800000L
-#define DISP_PWR_MAN__DIG_TMDS_ENABLE_RST_MASK 0x01000000L
-#define DISP_PWR_MAN__DIG_TMDS_ENABLE_RST 0x01000000L
-#define DISP_PWR_MAN__TV_ENABLE_RST_MASK 0x02000000L
-#define DISP_PWR_MAN__TV_ENABLE_RST 0x02000000L
-#define DISP_PWR_MAN__AUTO_PWRUP_EN_MASK 0x04000000L
-#define DISP_PWR_MAN__AUTO_PWRUP_EN 0x04000000L
-
-// MC_IND_INDEX
-#define MC_IND_INDEX__MC_IND_ADDR_MASK 0x0000001fL
-#define MC_IND_INDEX__MC_IND_WR_EN_MASK 0x00000100L
-#define MC_IND_INDEX__MC_IND_WR_EN 0x00000100L
-
-// MC_IND_DATA
-#define MC_IND_DATA__MC_IND_DATA_MASK 0xffffffffL
-
-// MC_CHP_IO_CNTL_A1
-#define MC_CHP_IO_CNTL_A1__MEM_SLEWN_CKA__SHIFT 0x00000000
-#define MC_CHP_IO_CNTL_A1__MEM_SLEWN_AA__SHIFT 0x00000001
-#define MC_CHP_IO_CNTL_A1__MEM_SLEWN_DQMA__SHIFT 0x00000002
-#define MC_CHP_IO_CNTL_A1__MEM_SLEWN_DQSA__SHIFT 0x00000003
-#define MC_CHP_IO_CNTL_A1__MEM_SLEWP_CKA__SHIFT 0x00000004
-#define MC_CHP_IO_CNTL_A1__MEM_SLEWP_AA__SHIFT 0x00000005
-#define MC_CHP_IO_CNTL_A1__MEM_SLEWP_DQMA__SHIFT 0x00000006
-#define MC_CHP_IO_CNTL_A1__MEM_SLEWP_DQSA__SHIFT 0x00000007
-#define MC_CHP_IO_CNTL_A1__MEM_PREAMP_AA__SHIFT 0x00000008
-#define MC_CHP_IO_CNTL_A1__MEM_PREAMP_DQMA__SHIFT 0x00000009
-#define MC_CHP_IO_CNTL_A1__MEM_PREAMP_DQSA__SHIFT 0x0000000a
-#define MC_CHP_IO_CNTL_A1__MEM_IO_MODEA__SHIFT 0x0000000c
-#define MC_CHP_IO_CNTL_A1__MEM_REC_CKA__SHIFT 0x0000000e
-#define MC_CHP_IO_CNTL_A1__MEM_REC_AA__SHIFT 0x00000010
-#define MC_CHP_IO_CNTL_A1__MEM_REC_DQMA__SHIFT 0x00000012
-#define MC_CHP_IO_CNTL_A1__MEM_REC_DQSA__SHIFT 0x00000014
-#define MC_CHP_IO_CNTL_A1__MEM_SYNC_PHASEA__SHIFT 0x00000016
-#define MC_CHP_IO_CNTL_A1__MEM_SYNC_CENTERA__SHIFT 0x00000017
-#define MC_CHP_IO_CNTL_A1__MEM_SYNC_ENA__SHIFT 0x00000018
-#define MC_CHP_IO_CNTL_A1__MEM_CLK_SELA__SHIFT 0x0000001a
-#define MC_CHP_IO_CNTL_A1__MEM_CLK_INVA__SHIFT 0x0000001c
-#define MC_CHP_IO_CNTL_A1__MEM_DATA_ENIMP_A__SHIFT 0x0000001e
-#define MC_CHP_IO_CNTL_A1__MEM_CNTL_ENIMP_A__SHIFT 0x0000001f
-
-// MC_CHP_IO_CNTL_B1
-#define MC_CHP_IO_CNTL_B1__MEM_SLEWN_CKB__SHIFT 0x00000000
-#define MC_CHP_IO_CNTL_B1__MEM_SLEWN_AB__SHIFT 0x00000001
-#define MC_CHP_IO_CNTL_B1__MEM_SLEWN_DQMB__SHIFT 0x00000002
-#define MC_CHP_IO_CNTL_B1__MEM_SLEWN_DQSB__SHIFT 0x00000003
-#define MC_CHP_IO_CNTL_B1__MEM_SLEWP_CKB__SHIFT 0x00000004
-#define MC_CHP_IO_CNTL_B1__MEM_SLEWP_AB__SHIFT 0x00000005
-#define MC_CHP_IO_CNTL_B1__MEM_SLEWP_DQMB__SHIFT 0x00000006
-#define MC_CHP_IO_CNTL_B1__MEM_SLEWP_DQSB__SHIFT 0x00000007
-#define MC_CHP_IO_CNTL_B1__MEM_PREAMP_AB__SHIFT 0x00000008
-#define MC_CHP_IO_CNTL_B1__MEM_PREAMP_DQMB__SHIFT 0x00000009
-#define MC_CHP_IO_CNTL_B1__MEM_PREAMP_DQSB__SHIFT 0x0000000a
-#define MC_CHP_IO_CNTL_B1__MEM_IO_MODEB__SHIFT 0x0000000c
-#define MC_CHP_IO_CNTL_B1__MEM_REC_CKB__SHIFT 0x0000000e
-#define MC_CHP_IO_CNTL_B1__MEM_REC_AB__SHIFT 0x00000010
-#define MC_CHP_IO_CNTL_B1__MEM_REC_DQMB__SHIFT 0x00000012
-#define MC_CHP_IO_CNTL_B1__MEM_REC_DQSB__SHIFT 0x00000014
-#define MC_CHP_IO_CNTL_B1__MEM_SYNC_PHASEB__SHIFT 0x00000016
-#define MC_CHP_IO_CNTL_B1__MEM_SYNC_CENTERB__SHIFT 0x00000017
-#define MC_CHP_IO_CNTL_B1__MEM_SYNC_ENB__SHIFT 0x00000018
-#define MC_CHP_IO_CNTL_B1__MEM_CLK_SELB__SHIFT 0x0000001a
-#define MC_CHP_IO_CNTL_B1__MEM_CLK_INVB__SHIFT 0x0000001c
-#define MC_CHP_IO_CNTL_B1__MEM_DATA_ENIMP_B__SHIFT 0x0000001e
-#define MC_CHP_IO_CNTL_B1__MEM_CNTL_ENIMP_B__SHIFT 0x0000001f
-
-// MC_CHP_IO_CNTL_A1
-#define MC_CHP_IO_CNTL_A1__MEM_SLEWN_CKA_MASK 0x00000001L
-#define MC_CHP_IO_CNTL_A1__MEM_SLEWN_CKA 0x00000001L
-#define MC_CHP_IO_CNTL_A1__MEM_SLEWN_AA_MASK 0x00000002L
-#define MC_CHP_IO_CNTL_A1__MEM_SLEWN_AA 0x00000002L
-#define MC_CHP_IO_CNTL_A1__MEM_SLEWN_DQMA_MASK 0x00000004L
-#define MC_CHP_IO_CNTL_A1__MEM_SLEWN_DQMA 0x00000004L
-#define MC_CHP_IO_CNTL_A1__MEM_SLEWN_DQSA_MASK 0x00000008L
-#define MC_CHP_IO_CNTL_A1__MEM_SLEWN_DQSA 0x00000008L
-#define MC_CHP_IO_CNTL_A1__MEM_SLEWP_CKA_MASK 0x00000010L
-#define MC_CHP_IO_CNTL_A1__MEM_SLEWP_CKA 0x00000010L
-#define MC_CHP_IO_CNTL_A1__MEM_SLEWP_AA_MASK 0x00000020L
-#define MC_CHP_IO_CNTL_A1__MEM_SLEWP_AA 0x00000020L
-#define MC_CHP_IO_CNTL_A1__MEM_SLEWP_DQMA_MASK 0x00000040L
-#define MC_CHP_IO_CNTL_A1__MEM_SLEWP_DQMA 0x00000040L
-#define MC_CHP_IO_CNTL_A1__MEM_SLEWP_DQSA_MASK 0x00000080L
-#define MC_CHP_IO_CNTL_A1__MEM_SLEWP_DQSA 0x00000080L
-#define MC_CHP_IO_CNTL_A1__MEM_PREAMP_AA_MASK 0x00000100L
-#define MC_CHP_IO_CNTL_A1__MEM_PREAMP_AA 0x00000100L
-#define MC_CHP_IO_CNTL_A1__MEM_PREAMP_DQMA_MASK 0x00000200L
-#define MC_CHP_IO_CNTL_A1__MEM_PREAMP_DQMA 0x00000200L
-#define MC_CHP_IO_CNTL_A1__MEM_PREAMP_DQSA_MASK 0x00000400L
-#define MC_CHP_IO_CNTL_A1__MEM_PREAMP_DQSA 0x00000400L
-#define MC_CHP_IO_CNTL_A1__MEM_IO_MODEA_MASK 0x00003000L
-#define MC_CHP_IO_CNTL_A1__MEM_REC_CKA_MASK 0x0000c000L
-#define MC_CHP_IO_CNTL_A1__MEM_REC_AA_MASK 0x00030000L
-#define MC_CHP_IO_CNTL_A1__MEM_REC_DQMA_MASK 0x000c0000L
-#define MC_CHP_IO_CNTL_A1__MEM_REC_DQSA_MASK 0x00300000L
-#define MC_CHP_IO_CNTL_A1__MEM_SYNC_PHASEA_MASK 0x00400000L
-#define MC_CHP_IO_CNTL_A1__MEM_SYNC_PHASEA 0x00400000L
-#define MC_CHP_IO_CNTL_A1__MEM_SYNC_CENTERA_MASK 0x00800000L
-#define MC_CHP_IO_CNTL_A1__MEM_SYNC_CENTERA 0x00800000L
-#define MC_CHP_IO_CNTL_A1__MEM_SYNC_ENA_MASK 0x03000000L
-#define MC_CHP_IO_CNTL_A1__MEM_CLK_SELA_MASK 0x0c000000L
-#define MC_CHP_IO_CNTL_A1__MEM_CLK_INVA_MASK 0x10000000L
-#define MC_CHP_IO_CNTL_A1__MEM_CLK_INVA 0x10000000L
-#define MC_CHP_IO_CNTL_A1__MEM_DATA_ENIMP_A_MASK 0x40000000L
-#define MC_CHP_IO_CNTL_A1__MEM_DATA_ENIMP_A 0x40000000L
-#define MC_CHP_IO_CNTL_A1__MEM_CNTL_ENIMP_A_MASK 0x80000000L
-#define MC_CHP_IO_CNTL_A1__MEM_CNTL_ENIMP_A 0x80000000L
-
-// MC_CHP_IO_CNTL_B1
-#define MC_CHP_IO_CNTL_B1__MEM_SLEWN_CKB_MASK 0x00000001L
-#define MC_CHP_IO_CNTL_B1__MEM_SLEWN_CKB 0x00000001L
-#define MC_CHP_IO_CNTL_B1__MEM_SLEWN_AB_MASK 0x00000002L
-#define MC_CHP_IO_CNTL_B1__MEM_SLEWN_AB 0x00000002L
-#define MC_CHP_IO_CNTL_B1__MEM_SLEWN_DQMB_MASK 0x00000004L
-#define MC_CHP_IO_CNTL_B1__MEM_SLEWN_DQMB 0x00000004L
-#define MC_CHP_IO_CNTL_B1__MEM_SLEWN_DQSB_MASK 0x00000008L
-#define MC_CHP_IO_CNTL_B1__MEM_SLEWN_DQSB 0x00000008L
-#define MC_CHP_IO_CNTL_B1__MEM_SLEWP_CKB_MASK 0x00000010L
-#define MC_CHP_IO_CNTL_B1__MEM_SLEWP_CKB 0x00000010L
-#define MC_CHP_IO_CNTL_B1__MEM_SLEWP_AB_MASK 0x00000020L
-#define MC_CHP_IO_CNTL_B1__MEM_SLEWP_AB 0x00000020L
-#define MC_CHP_IO_CNTL_B1__MEM_SLEWP_DQMB_MASK 0x00000040L
-#define MC_CHP_IO_CNTL_B1__MEM_SLEWP_DQMB 0x00000040L
-#define MC_CHP_IO_CNTL_B1__MEM_SLEWP_DQSB_MASK 0x00000080L
-#define MC_CHP_IO_CNTL_B1__MEM_SLEWP_DQSB 0x00000080L
-#define MC_CHP_IO_CNTL_B1__MEM_PREAMP_AB_MASK 0x00000100L
-#define MC_CHP_IO_CNTL_B1__MEM_PREAMP_AB 0x00000100L
-#define MC_CHP_IO_CNTL_B1__MEM_PREAMP_DQMB_MASK 0x00000200L
-#define MC_CHP_IO_CNTL_B1__MEM_PREAMP_DQMB 0x00000200L
-#define MC_CHP_IO_CNTL_B1__MEM_PREAMP_DQSB_MASK 0x00000400L
-#define MC_CHP_IO_CNTL_B1__MEM_PREAMP_DQSB 0x00000400L
-#define MC_CHP_IO_CNTL_B1__MEM_IO_MODEB_MASK 0x00003000L
-#define MC_CHP_IO_CNTL_B1__MEM_REC_CKB_MASK 0x0000c000L
-#define MC_CHP_IO_CNTL_B1__MEM_REC_AB_MASK 0x00030000L
-#define MC_CHP_IO_CNTL_B1__MEM_REC_DQMB_MASK 0x000c0000L
-#define MC_CHP_IO_CNTL_B1__MEM_REC_DQSB_MASK 0x00300000L
-#define MC_CHP_IO_CNTL_B1__MEM_SYNC_PHASEB_MASK 0x00400000L
-#define MC_CHP_IO_CNTL_B1__MEM_SYNC_PHASEB 0x00400000L
-#define MC_CHP_IO_CNTL_B1__MEM_SYNC_CENTERB_MASK 0x00800000L
-#define MC_CHP_IO_CNTL_B1__MEM_SYNC_CENTERB 0x00800000L
-#define MC_CHP_IO_CNTL_B1__MEM_SYNC_ENB_MASK 0x03000000L
-#define MC_CHP_IO_CNTL_B1__MEM_CLK_SELB_MASK 0x0c000000L
-#define MC_CHP_IO_CNTL_B1__MEM_CLK_INVB_MASK 0x10000000L
-#define MC_CHP_IO_CNTL_B1__MEM_CLK_INVB 0x10000000L
-#define MC_CHP_IO_CNTL_B1__MEM_DATA_ENIMP_B_MASK 0x40000000L
-#define MC_CHP_IO_CNTL_B1__MEM_DATA_ENIMP_B 0x40000000L
-#define MC_CHP_IO_CNTL_B1__MEM_CNTL_ENIMP_B_MASK 0x80000000L
-#define MC_CHP_IO_CNTL_B1__MEM_CNTL_ENIMP_B 0x80000000L
-
-// MEM_SDRAM_MODE_REG
-#define MEM_SDRAM_MODE_REG__MEM_MODE_REG_MASK 0x00007fffL
-#define MEM_SDRAM_MODE_REG__MEM_WR_LATENCY_MASK 0x000f0000L
-#define MEM_SDRAM_MODE_REG__MEM_CAS_LATENCY_MASK 0x00700000L
-#define MEM_SDRAM_MODE_REG__MEM_CMD_LATENCY_MASK 0x00800000L
-#define MEM_SDRAM_MODE_REG__MEM_CMD_LATENCY 0x00800000L
-#define MEM_SDRAM_MODE_REG__MEM_STR_LATENCY_MASK 0x01000000L
-#define MEM_SDRAM_MODE_REG__MEM_STR_LATENCY 0x01000000L
-#define MEM_SDRAM_MODE_REG__MEM_FALL_OUT_CMD_MASK 0x02000000L
-#define MEM_SDRAM_MODE_REG__MEM_FALL_OUT_CMD 0x02000000L
-#define MEM_SDRAM_MODE_REG__MEM_FALL_OUT_DATA_MASK 0x04000000L
-#define MEM_SDRAM_MODE_REG__MEM_FALL_OUT_DATA 0x04000000L
-#define MEM_SDRAM_MODE_REG__MEM_FALL_OUT_STR_MASK 0x08000000L
-#define MEM_SDRAM_MODE_REG__MEM_FALL_OUT_STR 0x08000000L
-#define MEM_SDRAM_MODE_REG__MC_INIT_COMPLETE_MASK 0x10000000L
-#define MEM_SDRAM_MODE_REG__MC_INIT_COMPLETE 0x10000000L
-#define MEM_SDRAM_MODE_REG__MEM_DDR_DLL_MASK 0x20000000L
-#define MEM_SDRAM_MODE_REG__MEM_DDR_DLL 0x20000000L
-#define MEM_SDRAM_MODE_REG__MEM_CFG_TYPE_MASK 0x40000000L
-#define MEM_SDRAM_MODE_REG__MEM_CFG_TYPE 0x40000000L
-#define MEM_SDRAM_MODE_REG__MEM_SDRAM_RESET_MASK 0x80000000L
-#define MEM_SDRAM_MODE_REG__MEM_SDRAM_RESET 0x80000000L
-
-// MEM_SDRAM_MODE_REG
-#define MEM_SDRAM_MODE_REG__MEM_MODE_REG__SHIFT 0x00000000
-#define MEM_SDRAM_MODE_REG__MEM_WR_LATENCY__SHIFT 0x00000010
-#define MEM_SDRAM_MODE_REG__MEM_CAS_LATENCY__SHIFT 0x00000014
-#define MEM_SDRAM_MODE_REG__MEM_CMD_LATENCY__SHIFT 0x00000017
-#define MEM_SDRAM_MODE_REG__MEM_STR_LATENCY__SHIFT 0x00000018
-#define MEM_SDRAM_MODE_REG__MEM_FALL_OUT_CMD__SHIFT 0x00000019
-#define MEM_SDRAM_MODE_REG__MEM_FALL_OUT_DATA__SHIFT 0x0000001a
-#define MEM_SDRAM_MODE_REG__MEM_FALL_OUT_STR__SHIFT 0x0000001b
-#define MEM_SDRAM_MODE_REG__MC_INIT_COMPLETE__SHIFT 0x0000001c
-#define MEM_SDRAM_MODE_REG__MEM_DDR_DLL__SHIFT 0x0000001d
-#define MEM_SDRAM_MODE_REG__MEM_CFG_TYPE__SHIFT 0x0000001e
-#define MEM_SDRAM_MODE_REG__MEM_SDRAM_RESET__SHIFT 0x0000001f
-
-// MEM_REFRESH_CNTL
-#define MEM_REFRESH_CNTL__MEM_REFRESH_RATE_MASK 0x000000ffL
-#define MEM_REFRESH_CNTL__MEM_REFRESH_DIS_MASK 0x00000100L
-#define MEM_REFRESH_CNTL__MEM_REFRESH_DIS 0x00000100L
-#define MEM_REFRESH_CNTL__MEM_DYNAMIC_CKE_MASK 0x00000200L
-#define MEM_REFRESH_CNTL__MEM_DYNAMIC_CKE 0x00000200L
-#define MEM_REFRESH_CNTL__MEM_TRFC_MASK 0x0000f000L
-#define MEM_REFRESH_CNTL__MEM_CLKA0_ENABLE_MASK 0x00010000L
-#define MEM_REFRESH_CNTL__MEM_CLKA0_ENABLE 0x00010000L
-#define MEM_REFRESH_CNTL__MEM_CLKA0b_ENABLE_MASK 0x00020000L
-#define MEM_REFRESH_CNTL__MEM_CLKA0b_ENABLE 0x00020000L
-#define MEM_REFRESH_CNTL__MEM_CLKA1_ENABLE_MASK 0x00040000L
-#define MEM_REFRESH_CNTL__MEM_CLKA1_ENABLE 0x00040000L
-#define MEM_REFRESH_CNTL__MEM_CLKA1b_ENABLE_MASK 0x00080000L
-#define MEM_REFRESH_CNTL__MEM_CLKA1b_ENABLE 0x00080000L
-#define MEM_REFRESH_CNTL__MEM_CLKAFB_ENABLE_MASK 0x00100000L
-#define MEM_REFRESH_CNTL__MEM_CLKAFB_ENABLE 0x00100000L
-#define MEM_REFRESH_CNTL__DLL_FB_SLCT_CKA_MASK 0x00c00000L
-#define MEM_REFRESH_CNTL__MEM_CLKB0_ENABLE_MASK 0x01000000L
-#define MEM_REFRESH_CNTL__MEM_CLKB0_ENABLE 0x01000000L
-#define MEM_REFRESH_CNTL__MEM_CLKB0b_ENABLE_MASK 0x02000000L
-#define MEM_REFRESH_CNTL__MEM_CLKB0b_ENABLE 0x02000000L
-#define MEM_REFRESH_CNTL__MEM_CLKB1_ENABLE_MASK 0x04000000L
-#define MEM_REFRESH_CNTL__MEM_CLKB1_ENABLE 0x04000000L
-#define MEM_REFRESH_CNTL__MEM_CLKB1b_ENABLE_MASK 0x08000000L
-#define MEM_REFRESH_CNTL__MEM_CLKB1b_ENABLE 0x08000000L
-#define MEM_REFRESH_CNTL__MEM_CLKBFB_ENABLE_MASK 0x10000000L
-#define MEM_REFRESH_CNTL__MEM_CLKBFB_ENABLE 0x10000000L
-#define MEM_REFRESH_CNTL__DLL_FB_SLCT_CKB_MASK 0xc0000000L
-
-// MC_STATUS
-#define MC_STATUS__MEM_PWRUP_COMPL_A_MASK 0x00000001L
-#define MC_STATUS__MEM_PWRUP_COMPL_A 0x00000001L
-#define MC_STATUS__MEM_PWRUP_COMPL_B_MASK 0x00000002L
-#define MC_STATUS__MEM_PWRUP_COMPL_B 0x00000002L
-#define MC_STATUS__MC_IDLE_MASK 0x00000004L
-#define MC_STATUS__MC_IDLE 0x00000004L
-#define MC_STATUS__IMP_N_VALUE_R_BACK_MASK 0x00000078L
-#define MC_STATUS__IMP_P_VALUE_R_BACK_MASK 0x00000780L
-#define MC_STATUS__TEST_OUT_R_BACK_MASK 0x00000800L
-#define MC_STATUS__TEST_OUT_R_BACK 0x00000800L
-#define MC_STATUS__DUMMY_OUT_R_BACK_MASK 0x00001000L
-#define MC_STATUS__DUMMY_OUT_R_BACK 0x00001000L
-#define MC_STATUS__IMP_N_VALUE_A_R_BACK_MASK 0x0001e000L
-#define MC_STATUS__IMP_P_VALUE_A_R_BACK_MASK 0x001e0000L
-#define MC_STATUS__IMP_N_VALUE_CK_R_BACK_MASK 0x01e00000L
-#define MC_STATUS__IMP_P_VALUE_CK_R_BACK_MASK 0x1e000000L
-
-// MDLL_CKO
-#define MDLL_CKO__MCKOA_SLEEP_MASK 0x00000001L
-#define MDLL_CKO__MCKOA_SLEEP 0x00000001L
-#define MDLL_CKO__MCKOA_RESET_MASK 0x00000002L
-#define MDLL_CKO__MCKOA_RESET 0x00000002L
-#define MDLL_CKO__MCKOA_RANGE_MASK 0x0000000cL
-#define MDLL_CKO__ERSTA_SOUTSEL_MASK 0x00000030L
-#define MDLL_CKO__MCKOA_FB_SEL_MASK 0x000000c0L
-#define MDLL_CKO__MCKOA_REF_SKEW_MASK 0x00000700L
-#define MDLL_CKO__MCKOA_FB_SKEW_MASK 0x00007000L
-#define MDLL_CKO__MCKOA_BP_SEL_MASK 0x00008000L
-#define MDLL_CKO__MCKOA_BP_SEL 0x00008000L
-#define MDLL_CKO__MCKOB_SLEEP_MASK 0x00010000L
-#define MDLL_CKO__MCKOB_SLEEP 0x00010000L
-#define MDLL_CKO__MCKOB_RESET_MASK 0x00020000L
-#define MDLL_CKO__MCKOB_RESET 0x00020000L
-#define MDLL_CKO__MCKOB_RANGE_MASK 0x000c0000L
-#define MDLL_CKO__ERSTB_SOUTSEL_MASK 0x00300000L
-#define MDLL_CKO__MCKOB_FB_SEL_MASK 0x00c00000L
-#define MDLL_CKO__MCKOB_REF_SKEW_MASK 0x07000000L
-#define MDLL_CKO__MCKOB_FB_SKEW_MASK 0x70000000L
-#define MDLL_CKO__MCKOB_BP_SEL_MASK 0x80000000L
-#define MDLL_CKO__MCKOB_BP_SEL 0x80000000L
-
-// MDLL_RDCKA
-#define MDLL_RDCKA__MRDCKA0_SLEEP_MASK 0x00000001L
-#define MDLL_RDCKA__MRDCKA0_SLEEP 0x00000001L
-#define MDLL_RDCKA__MRDCKA0_RESET_MASK 0x00000002L
-#define MDLL_RDCKA__MRDCKA0_RESET 0x00000002L
-#define MDLL_RDCKA__MRDCKA0_RANGE_MASK 0x0000000cL
-#define MDLL_RDCKA__MRDCKA0_REF_SEL_MASK 0x00000030L
-#define MDLL_RDCKA__MRDCKA0_FB_SEL_MASK 0x000000c0L
-#define MDLL_RDCKA__MRDCKA0_REF_SKEW_MASK 0x00000700L
-#define MDLL_RDCKA__MRDCKA0_SINSEL_MASK 0x00000800L
-#define MDLL_RDCKA__MRDCKA0_SINSEL 0x00000800L
-#define MDLL_RDCKA__MRDCKA0_FB_SKEW_MASK 0x00007000L
-#define MDLL_RDCKA__MRDCKA0_BP_SEL_MASK 0x00008000L
-#define MDLL_RDCKA__MRDCKA0_BP_SEL 0x00008000L
-#define MDLL_RDCKA__MRDCKA1_SLEEP_MASK 0x00010000L
-#define MDLL_RDCKA__MRDCKA1_SLEEP 0x00010000L
-#define MDLL_RDCKA__MRDCKA1_RESET_MASK 0x00020000L
-#define MDLL_RDCKA__MRDCKA1_RESET 0x00020000L
-#define MDLL_RDCKA__MRDCKA1_RANGE_MASK 0x000c0000L
-#define MDLL_RDCKA__MRDCKA1_REF_SEL_MASK 0x00300000L
-#define MDLL_RDCKA__MRDCKA1_FB_SEL_MASK 0x00c00000L
-#define MDLL_RDCKA__MRDCKA1_REF_SKEW_MASK 0x07000000L
-#define MDLL_RDCKA__MRDCKA1_SINSEL_MASK 0x08000000L
-#define MDLL_RDCKA__MRDCKA1_SINSEL 0x08000000L
-#define MDLL_RDCKA__MRDCKA1_FB_SKEW_MASK 0x70000000L
-#define MDLL_RDCKA__MRDCKA1_BP_SEL_MASK 0x80000000L
-#define MDLL_RDCKA__MRDCKA1_BP_SEL 0x80000000L
-
-// MDLL_RDCKB
-#define MDLL_RDCKB__MRDCKB0_SLEEP_MASK 0x00000001L
-#define MDLL_RDCKB__MRDCKB0_SLEEP 0x00000001L
-#define MDLL_RDCKB__MRDCKB0_RESET_MASK 0x00000002L
-#define MDLL_RDCKB__MRDCKB0_RESET 0x00000002L
-#define MDLL_RDCKB__MRDCKB0_RANGE_MASK 0x0000000cL
-#define MDLL_RDCKB__MRDCKB0_REF_SEL_MASK 0x00000030L
-#define MDLL_RDCKB__MRDCKB0_FB_SEL_MASK 0x000000c0L
-#define MDLL_RDCKB__MRDCKB0_REF_SKEW_MASK 0x00000700L
-#define MDLL_RDCKB__MRDCKB0_SINSEL_MASK 0x00000800L
-#define MDLL_RDCKB__MRDCKB0_SINSEL 0x00000800L
-#define MDLL_RDCKB__MRDCKB0_FB_SKEW_MASK 0x00007000L
-#define MDLL_RDCKB__MRDCKB0_BP_SEL_MASK 0x00008000L
-#define MDLL_RDCKB__MRDCKB0_BP_SEL 0x00008000L
-#define MDLL_RDCKB__MRDCKB1_SLEEP_MASK 0x00010000L
-#define MDLL_RDCKB__MRDCKB1_SLEEP 0x00010000L
-#define MDLL_RDCKB__MRDCKB1_RESET_MASK 0x00020000L
-#define MDLL_RDCKB__MRDCKB1_RESET 0x00020000L
-#define MDLL_RDCKB__MRDCKB1_RANGE_MASK 0x000c0000L
-#define MDLL_RDCKB__MRDCKB1_REF_SEL_MASK 0x00300000L
-#define MDLL_RDCKB__MRDCKB1_FB_SEL_MASK 0x00c00000L
-#define MDLL_RDCKB__MRDCKB1_REF_SKEW_MASK 0x07000000L
-#define MDLL_RDCKB__MRDCKB1_SINSEL_MASK 0x08000000L
-#define MDLL_RDCKB__MRDCKB1_SINSEL 0x08000000L
-#define MDLL_RDCKB__MRDCKB1_FB_SKEW_MASK 0x70000000L
-#define MDLL_RDCKB__MRDCKB1_BP_SEL_MASK 0x80000000L
-#define MDLL_RDCKB__MRDCKB1_BP_SEL 0x80000000L
-
-#define MDLL_R300_RDCK__MRDCKA_SLEEP 0x00000001L
-#define MDLL_R300_RDCK__MRDCKA_RESET 0x00000002L
-#define MDLL_R300_RDCK__MRDCKB_SLEEP 0x00000004L
-#define MDLL_R300_RDCK__MRDCKB_RESET 0x00000008L
-#define MDLL_R300_RDCK__MRDCKC_SLEEP 0x00000010L
-#define MDLL_R300_RDCK__MRDCKC_RESET 0x00000020L
-#define MDLL_R300_RDCK__MRDCKD_SLEEP 0x00000040L
-#define MDLL_R300_RDCK__MRDCKD_RESET 0x00000080L
-
-#define pllCLK_PIN_CNTL 0x0001
-#define pllPPLL_CNTL 0x0002
-#define pllPPLL_REF_DIV 0x0003
-#define pllPPLL_DIV_0 0x0004
-#define pllPPLL_DIV_1 0x0005
-#define pllPPLL_DIV_2 0x0006
-#define pllPPLL_DIV_3 0x0007
-#define pllVCLK_ECP_CNTL 0x0008
-#define pllHTOTAL_CNTL 0x0009
-#define pllM_SPLL_REF_FB_DIV 0x000A
-#define pllAGP_PLL_CNTL 0x000B
-#define pllSPLL_CNTL 0x000C
-#define pllSCLK_CNTL 0x000D
-#define pllMPLL_CNTL 0x000E
-#define pllMDLL_CKO 0x000F
-#define pllMDLL_RDCKA 0x0010
-#define pllMDLL_RDCKB 0x0011
-#define pllMCLK_CNTL 0x0012
-#define pllPLL_TEST_CNTL 0x0013
-#define pllCLK_PWRMGT_CNTL 0x0014
-#define pllPLL_PWRMGT_CNTL 0x0015
-#define pllCG_TEST_MACRO_RW_WRITE 0x0016
-#define pllCG_TEST_MACRO_RW_READ 0x0017
-#define pllCG_TEST_MACRO_RW_DATA 0x0018
-#define pllCG_TEST_MACRO_RW_CNTL 0x0019
-#define pllDISP_TEST_MACRO_RW_WRITE 0x001A
-#define pllDISP_TEST_MACRO_RW_READ 0x001B
-#define pllDISP_TEST_MACRO_RW_DATA 0x001C
-#define pllDISP_TEST_MACRO_RW_CNTL 0x001D
-#define pllSCLK_CNTL2 0x001E
-#define pllMCLK_MISC 0x001F
-#define pllTV_PLL_FINE_CNTL 0x0020
-#define pllTV_PLL_CNTL 0x0021
-#define pllTV_PLL_CNTL1 0x0022
-#define pllTV_DTO_INCREMENTS 0x0023
-#define pllSPLL_AUX_CNTL 0x0024
-#define pllMPLL_AUX_CNTL 0x0025
-#define pllP2PLL_CNTL 0x002A
-#define pllP2PLL_REF_DIV 0x002B
-#define pllP2PLL_DIV_0 0x002C
-#define pllPIXCLKS_CNTL 0x002D
-#define pllHTOTAL2_CNTL 0x002E
-#define pllSSPLL_CNTL 0x0030
-#define pllSSPLL_REF_DIV 0x0031
-#define pllSSPLL_DIV_0 0x0032
-#define pllSS_INT_CNTL 0x0033
-#define pllSS_TST_CNTL 0x0034
-#define pllSCLK_MORE_CNTL 0x0035
-
-#define ixMC_PERF_CNTL 0x0000
-#define ixMC_PERF_SEL 0x0001
-#define ixMC_PERF_REGION_0 0x0002
-#define ixMC_PERF_REGION_1 0x0003
-#define ixMC_PERF_COUNT_0 0x0004
-#define ixMC_PERF_COUNT_1 0x0005
-#define ixMC_PERF_COUNT_2 0x0006
-#define ixMC_PERF_COUNT_3 0x0007
-#define ixMC_PERF_COUNT_MEMCH_A 0x0008
-#define ixMC_PERF_COUNT_MEMCH_B 0x0009
-#define ixMC_IMP_CNTL 0x000A
-#define ixMC_CHP_IO_CNTL_A0 0x000B
-#define ixMC_CHP_IO_CNTL_A1 0x000C
-#define ixMC_CHP_IO_CNTL_B0 0x000D
-#define ixMC_CHP_IO_CNTL_B1 0x000E
-#define ixMC_IMP_CNTL_0 0x000F
-#define ixTC_MISMATCH_1 0x0010
-#define ixTC_MISMATCH_2 0x0011
-#define ixMC_BIST_CTRL 0x0012
-#define ixREG_COLLAR_WRITE 0x0013
-#define ixREG_COLLAR_READ 0x0014
-#define ixR300_MC_IMP_CNTL 0x0018
-#define ixR300_MC_CHP_IO_CNTL_A0 0x0019
-#define ixR300_MC_CHP_IO_CNTL_A1 0x001a
-#define ixR300_MC_CHP_IO_CNTL_B0 0x001b
-#define ixR300_MC_CHP_IO_CNTL_B1 0x001c
-#define ixR300_MC_CHP_IO_CNTL_C0 0x001d
-#define ixR300_MC_CHP_IO_CNTL_C1 0x001e
-#define ixR300_MC_CHP_IO_CNTL_D0 0x001f
-#define ixR300_MC_CHP_IO_CNTL_D1 0x0020
-#define ixR300_MC_IMP_CNTL_0 0x0021
-#define ixR300_MC_ELPIDA_CNTL 0x0022
-#define ixR300_MC_CHP_IO_OE_CNTL_CD 0x0023
-#define ixR300_MC_READ_CNTL_CD 0x0024
-#define ixR300_MC_MC_INIT_WR_LAT_TIMER 0x0025
-#define ixR300_MC_DEBUG_CNTL 0x0026
-#define ixR300_MC_BIST_CNTL_0 0x0028
-#define ixR300_MC_BIST_CNTL_1 0x0029
-#define ixR300_MC_BIST_CNTL_2 0x002a
-#define ixR300_MC_BIST_CNTL_3 0x002b
-#define ixR300_MC_BIST_CNTL_4 0x002c
-#define ixR300_MC_BIST_CNTL_5 0x002d
-#define ixR300_MC_IMP_STATUS 0x002e
-#define ixR300_MC_DLL_CNTL 0x002f
-#define NB_TOM 0x15C
-
-
-#endif /* _RADEON_H */
-
diff --git a/ANDROID_3.4.5/include/video/s1d13xxxfb.h b/ANDROID_3.4.5/include/video/s1d13xxxfb.h
deleted file mode 100644
index 55f53449..00000000
--- a/ANDROID_3.4.5/include/video/s1d13xxxfb.h
+++ /dev/null
@@ -1,174 +0,0 @@
-/* include/video/s1d13xxxfb.h
- *
- * (c) 2004 Simtec Electronics
- * (c) 2005 Thibaut VARENE <varenet@parisc-linux.org>
- *
- * Header file for Epson S1D13XXX driver code
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file COPYING in the main directory of this archive for
- * more details.
- */
-
-#ifndef S1D13XXXFB_H
-#define S1D13XXXFB_H
-
-#define S1D_PALETTE_SIZE 256
-#define S1D_FBID "S1D13xxx"
-#define S1D_DEVICENAME "s1d13xxxfb"
-
-/* S1DREG_REV_CODE register = prod_id (6 bits) + revision (2 bits) */
-#define S1D13505_PROD_ID 0x3 /* 000011 */
-#define S1D13506_PROD_ID 0x4 /* 000100 */
-#define S1D13806_PROD_ID 0x7 /* 000111 */
-
-/* register definitions (tested on s1d13896) */
-#define S1DREG_REV_CODE 0x0000 /* Prod + Rev Code Register */
-#define S1DREG_MISC 0x0001 /* Miscellaneous Register */
-#define S1DREG_GPIO_CNF0 0x0004 /* General IO Pins Configuration Register 0 */
-#define S1DREG_GPIO_CNF1 0x0005 /* General IO Pins Configuration Register 1 */
-#define S1DREG_GPIO_CTL0 0x0008 /* General IO Pins Control Register 0 */
-#define S1DREG_GPIO_CTL1 0x0009 /* General IO Pins Control Register 1 */
-#define S1DREG_CNF_STATUS 0x000C /* Configuration Status Readback Register */
-#define S1DREG_CLK_CNF 0x0010 /* Memory Clock Configuration Register */
-#define S1DREG_LCD_CLK_CNF 0x0014 /* LCD Pixel Clock Configuration Register */
-#define S1DREG_CRT_CLK_CNF 0x0018 /* CRT/TV Pixel Clock Configuration Register */
-#define S1DREG_MPLUG_CLK_CNF 0x001C /* MediaPlug Clock Configuration Register */
-#define S1DREG_CPU2MEM_WST_SEL 0x001E /* CPU To Memory Wait State Select Register */
-#define S1DREG_MEM_CNF 0x0020 /* Memory Configuration Register */
-#define S1DREG_SDRAM_REF_RATE 0x0021 /* SDRAM Refresh Rate Register */
-#define S1DREG_SDRAM_TC0 0x002A /* SDRAM Timing Control Register 0 */
-#define S1DREG_SDRAM_TC1 0x002B /* SDRAM Timing Control Register 1 */
-#define S1DREG_PANEL_TYPE 0x0030 /* Panel Type Register */
-#define S1DREG_MOD_RATE 0x0031 /* MOD Rate Register */
-#define S1DREG_LCD_DISP_HWIDTH 0x0032 /* LCD Horizontal Display Width Register: ((val)+1)*8)=pix/line */
-#define S1DREG_LCD_NDISP_HPER 0x0034 /* LCD Horizontal Non-Display Period Register: ((val)+1)*8)=NDpix/line */
-#define S1DREG_TFT_FPLINE_START 0x0035 /* TFT FPLINE Start Position Register */
-#define S1DREG_TFT_FPLINE_PWIDTH 0x0036 /* TFT FPLINE Pulse Width Register. */
-#define S1DREG_LCD_DISP_VHEIGHT0 0x0038 /* LCD Vertical Display Height Register 0 */
-#define S1DREG_LCD_DISP_VHEIGHT1 0x0039 /* LCD Vertical Display Height Register 1 */
-#define S1DREG_LCD_NDISP_VPER 0x003A /* LCD Vertical Non-Display Period Register: (val)+1=NDlines */
-#define S1DREG_TFT_FPFRAME_START 0x003B /* TFT FPFRAME Start Position Register */
-#define S1DREG_TFT_FPFRAME_PWIDTH 0x003C /* TFT FPFRAME Pulse Width Register */
-#define S1DREG_LCD_DISP_MODE 0x0040 /* LCD Display Mode Register */
-#define S1DREG_LCD_MISC 0x0041 /* LCD Miscellaneous Register */
-#define S1DREG_LCD_DISP_START0 0x0042 /* LCD Display Start Address Register 0 */
-#define S1DREG_LCD_DISP_START1 0x0043 /* LCD Display Start Address Register 1 */
-#define S1DREG_LCD_DISP_START2 0x0044 /* LCD Display Start Address Register 2 */
-#define S1DREG_LCD_MEM_OFF0 0x0046 /* LCD Memory Address Offset Register 0 */
-#define S1DREG_LCD_MEM_OFF1 0x0047 /* LCD Memory Address Offset Register 1 */
-#define S1DREG_LCD_PIX_PAN 0x0048 /* LCD Pixel Panning Register */
-#define S1DREG_LCD_DISP_FIFO_HTC 0x004A /* LCD Display FIFO High Threshold Control Register */
-#define S1DREG_LCD_DISP_FIFO_LTC 0x004B /* LCD Display FIFO Low Threshold Control Register */
-#define S1DREG_CRT_DISP_HWIDTH 0x0050 /* CRT/TV Horizontal Display Width Register: ((val)+1)*8)=pix/line */
-#define S1DREG_CRT_NDISP_HPER 0x0052 /* CRT/TV Horizontal Non-Display Period Register */
-#define S1DREG_CRT_HRTC_START 0x0053 /* CRT/TV HRTC Start Position Register */
-#define S1DREG_CRT_HRTC_PWIDTH 0x0054 /* CRT/TV HRTC Pulse Width Register */
-#define S1DREG_CRT_DISP_VHEIGHT0 0x0056 /* CRT/TV Vertical Display Height Register 0 */
-#define S1DREG_CRT_DISP_VHEIGHT1 0x0057 /* CRT/TV Vertical Display Height Register 1 */
-#define S1DREG_CRT_NDISP_VPER 0x0058 /* CRT/TV Vertical Non-Display Period Register */
-#define S1DREG_CRT_VRTC_START 0x0059 /* CRT/TV VRTC Start Position Register */
-#define S1DREG_CRT_VRTC_PWIDTH 0x005A /* CRT/TV VRTC Pulse Width Register */
-#define S1DREG_TV_OUT_CTL 0x005B /* TV Output Control Register */
-#define S1DREG_CRT_DISP_MODE 0x0060 /* CRT/TV Display Mode Register */
-#define S1DREG_CRT_DISP_START0 0x0062 /* CRT/TV Display Start Address Register 0 */
-#define S1DREG_CRT_DISP_START1 0x0063 /* CRT/TV Display Start Address Register 1 */
-#define S1DREG_CRT_DISP_START2 0x0064 /* CRT/TV Display Start Address Register 2 */
-#define S1DREG_CRT_MEM_OFF0 0x0066 /* CRT/TV Memory Address Offset Register 0 */
-#define S1DREG_CRT_MEM_OFF1 0x0067 /* CRT/TV Memory Address Offset Register 1 */
-#define S1DREG_CRT_PIX_PAN 0x0068 /* CRT/TV Pixel Panning Register */
-#define S1DREG_CRT_DISP_FIFO_HTC 0x006A /* CRT/TV Display FIFO High Threshold Control Register */
-#define S1DREG_CRT_DISP_FIFO_LTC 0x006B /* CRT/TV Display FIFO Low Threshold Control Register */
-#define S1DREG_LCD_CUR_CTL 0x0070 /* LCD Ink/Cursor Control Register */
-#define S1DREG_LCD_CUR_START 0x0071 /* LCD Ink/Cursor Start Address Register */
-#define S1DREG_LCD_CUR_XPOS0 0x0072 /* LCD Cursor X Position Register 0 */
-#define S1DREG_LCD_CUR_XPOS1 0x0073 /* LCD Cursor X Position Register 1 */
-#define S1DREG_LCD_CUR_YPOS0 0x0074 /* LCD Cursor Y Position Register 0 */
-#define S1DREG_LCD_CUR_YPOS1 0x0075 /* LCD Cursor Y Position Register 1 */
-#define S1DREG_LCD_CUR_BCTL0 0x0076 /* LCD Ink/Cursor Blue Color 0 Register */
-#define S1DREG_LCD_CUR_GCTL0 0x0077 /* LCD Ink/Cursor Green Color 0 Register */
-#define S1DREG_LCD_CUR_RCTL0 0x0078 /* LCD Ink/Cursor Red Color 0 Register */
-#define S1DREG_LCD_CUR_BCTL1 0x007A /* LCD Ink/Cursor Blue Color 1 Register */
-#define S1DREG_LCD_CUR_GCTL1 0x007B /* LCD Ink/Cursor Green Color 1 Register */
-#define S1DREG_LCD_CUR_RCTL1 0x007C /* LCD Ink/Cursor Red Color 1 Register */
-#define S1DREG_LCD_CUR_FIFO_HTC 0x007E /* LCD Ink/Cursor FIFO High Threshold Register */
-#define S1DREG_CRT_CUR_CTL 0x0080 /* CRT/TV Ink/Cursor Control Register */
-#define S1DREG_CRT_CUR_START 0x0081 /* CRT/TV Ink/Cursor Start Address Register */
-#define S1DREG_CRT_CUR_XPOS0 0x0082 /* CRT/TV Cursor X Position Register 0 */
-#define S1DREG_CRT_CUR_XPOS1 0x0083 /* CRT/TV Cursor X Position Register 1 */
-#define S1DREG_CRT_CUR_YPOS0 0x0084 /* CRT/TV Cursor Y Position Register 0 */
-#define S1DREG_CRT_CUR_YPOS1 0x0085 /* CRT/TV Cursor Y Position Register 1 */
-#define S1DREG_CRT_CUR_BCTL0 0x0086 /* CRT/TV Ink/Cursor Blue Color 0 Register */
-#define S1DREG_CRT_CUR_GCTL0 0x0087 /* CRT/TV Ink/Cursor Green Color 0 Register */
-#define S1DREG_CRT_CUR_RCTL0 0x0088 /* CRT/TV Ink/Cursor Red Color 0 Register */
-#define S1DREG_CRT_CUR_BCTL1 0x008A /* CRT/TV Ink/Cursor Blue Color 1 Register */
-#define S1DREG_CRT_CUR_GCTL1 0x008B /* CRT/TV Ink/Cursor Green Color 1 Register */
-#define S1DREG_CRT_CUR_RCTL1 0x008C /* CRT/TV Ink/Cursor Red Color 1 Register */
-#define S1DREG_CRT_CUR_FIFO_HTC 0x008E /* CRT/TV Ink/Cursor FIFO High Threshold Register */
-#define S1DREG_BBLT_CTL0 0x0100 /* BitBLT Control Register 0 */
-#define S1DREG_BBLT_CTL1 0x0101 /* BitBLT Control Register 1 */
-#define S1DREG_BBLT_CC_EXP 0x0102 /* BitBLT Code/Color Expansion Register */
-#define S1DREG_BBLT_OP 0x0103 /* BitBLT Operation Register */
-#define S1DREG_BBLT_SRC_START0 0x0104 /* BitBLT Source Start Address Register 0 */
-#define S1DREG_BBLT_SRC_START1 0x0105 /* BitBLT Source Start Address Register 1 */
-#define S1DREG_BBLT_SRC_START2 0x0106 /* BitBLT Source Start Address Register 2 */
-#define S1DREG_BBLT_DST_START0 0x0108 /* BitBLT Destination Start Address Register 0 */
-#define S1DREG_BBLT_DST_START1 0x0109 /* BitBLT Destination Start Address Register 1 */
-#define S1DREG_BBLT_DST_START2 0x010A /* BitBLT Destination Start Address Register 2 */
-#define S1DREG_BBLT_MEM_OFF0 0x010C /* BitBLT Memory Address Offset Register 0 */
-#define S1DREG_BBLT_MEM_OFF1 0x010D /* BitBLT Memory Address Offset Register 1 */
-#define S1DREG_BBLT_WIDTH0 0x0110 /* BitBLT Width Register 0 */
-#define S1DREG_BBLT_WIDTH1 0x0111 /* BitBLT Width Register 1 */
-#define S1DREG_BBLT_HEIGHT0 0x0112 /* BitBLT Height Register 0 */
-#define S1DREG_BBLT_HEIGHT1 0x0113 /* BitBLT Height Register 1 */
-#define S1DREG_BBLT_BGC0 0x0114 /* BitBLT Background Color Register 0 */
-#define S1DREG_BBLT_BGC1 0x0115 /* BitBLT Background Color Register 1 */
-#define S1DREG_BBLT_FGC0 0x0118 /* BitBLT Foreground Color Register 0 */
-#define S1DREG_BBLT_FGC1 0x0119 /* BitBLT Foreground Color Register 1 */
-#define S1DREG_LKUP_MODE 0x01E0 /* Look-Up Table Mode Register */
-#define S1DREG_LKUP_ADDR 0x01E2 /* Look-Up Table Address Register */
-#define S1DREG_LKUP_DATA 0x01E4 /* Look-Up Table Data Register */
-#define S1DREG_PS_CNF 0x01F0 /* Power Save Configuration Register */
-#define S1DREG_PS_STATUS 0x01F1 /* Power Save Status Register */
-#define S1DREG_CPU2MEM_WDOGT 0x01F4 /* CPU-to-Memory Access Watchdog Timer Register */
-#define S1DREG_COM_DISP_MODE 0x01FC /* Common Display Mode Register */
-
-#define S1DREG_DELAYOFF 0xFFFE
-#define S1DREG_DELAYON 0xFFFF
-
-#define BBLT_SOLID_FILL 0x0c
-
-
-/* Note: all above defines should go in separate header files
- when implementing other S1D13xxx chip support. */
-
-struct s1d13xxxfb_regval {
- u16 addr;
- u8 value;
-};
-
-struct s1d13xxxfb_par {
- void __iomem *regs;
- unsigned char display;
- unsigned char prod_id;
- unsigned char revision;
-
- unsigned int pseudo_palette[16];
-#ifdef CONFIG_PM
- void *regs_save; /* pm saves all registers here */
- void *disp_save; /* pm saves entire screen here */
-#endif
-};
-
-struct s1d13xxxfb_pdata {
- const struct s1d13xxxfb_regval *initregs;
- const unsigned int initregssize;
- void (*platform_init_video)(void);
-#ifdef CONFIG_PM
- int (*platform_suspend_video)(void);
- int (*platform_resume_video)(void);
-#endif
-};
-
-#endif
-
diff --git a/ANDROID_3.4.5/include/video/sa1100fb.h b/ANDROID_3.4.5/include/video/sa1100fb.h
deleted file mode 100644
index 4ab40965..00000000
--- a/ANDROID_3.4.5/include/video/sa1100fb.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * StrongARM 1100 LCD Controller Frame Buffer Device
- *
- * Copyright (C) 1999 Eric A. Thomas
- * Based on acornfb.c Copyright (C) Russell King.
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file COPYING in the main directory of this archive
- * for more details.
- */
-#ifndef _VIDEO_SA1100FB_H
-#define _VIDEO_SA1100FB_H
-
-#include <linux/fb.h>
-#include <linux/types.h>
-
-#define RGB_4 0
-#define RGB_8 1
-#define RGB_16 2
-#define NR_RGB 3
-
-/* These are the bitfields for each display depth that we support. */
-struct sa1100fb_rgb {
- struct fb_bitfield red;
- struct fb_bitfield green;
- struct fb_bitfield blue;
- struct fb_bitfield transp;
-};
-
-/* This structure describes the machine which we are running on. */
-struct sa1100fb_mach_info {
- u_long pixclock;
-
- u_short xres;
- u_short yres;
-
- u_char bpp;
- u_char hsync_len;
- u_char left_margin;
- u_char right_margin;
-
- u_char vsync_len;
- u_char upper_margin;
- u_char lower_margin;
- u_char sync;
-
- u_int cmap_greyscale:1,
- cmap_inverse:1,
- cmap_static:1,
- unused:29;
-
- u_int lccr0;
- u_int lccr3;
-
- /* Overrides for the default RGB maps */
- const struct sa1100fb_rgb *rgb[NR_RGB];
-
- void (*backlight_power)(int);
- void (*lcd_power)(int);
- void (*set_visual)(u32);
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/video/sgivw.h b/ANDROID_3.4.5/include/video/sgivw.h
deleted file mode 100644
index f6aa5692..00000000
--- a/ANDROID_3.4.5/include/video/sgivw.h
+++ /dev/null
@@ -1,681 +0,0 @@
-/*
- * linux/drivers/video/sgivw.h -- SGI DBE frame buffer device header
- *
- * Copyright (C) 1999 Silicon Graphics, Inc.
- * Jeffrey Newquist, newquist@engr.sgi.som
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file COPYING in the main directory of this archive for
- * more details.
- */
-
-#ifndef __SGIVWFB_H__
-#define __SGIVWFB_H__
-
-#define DBE_GETREG(reg, dest) ((dest) = DBE_REG_BASE->reg)
-#define DBE_SETREG(reg, src) DBE_REG_BASE->reg = (src)
-#define DBE_IGETREG(reg, idx, dest) ((dest) = DBE_REG_BASE->reg[idx])
-#define DBE_ISETREG(reg, idx, src) (DBE_REG_BASE->reg[idx] = (src))
-
-#define MASK(msb, lsb) ( (((u32)1<<((msb)-(lsb)+1))-1) << (lsb) )
-#define GET(v, msb, lsb) ( ((u32)(v) & MASK(msb,lsb)) >> (lsb) )
-#define SET(v, f, msb, lsb) ( (v) = ((v)&~MASK(msb,lsb)) | (( (u32)(f)<<(lsb) ) & MASK(msb,lsb)) )
-
-#define GET_DBE_FIELD(reg, field, v) GET((v), DBE_##reg##_##field##_MSB, DBE_##reg##_##field##_LSB)
-#define SET_DBE_FIELD(reg, field, v, f) SET((v), (f), DBE_##reg##_##field##_MSB, DBE_##reg##_##field##_LSB)
-
-/* NOTE: All loads/stores must be 32 bits and uncached */
-
-#define DBE_REG_PHYS 0xd0000000
-#define DBE_REG_SIZE 0x01000000
-
-struct asregs {
- volatile u32 ctrlstat; /* 0x000000 general control */
- volatile u32 dotclock; /* 0x000004 dot clock PLL control */
- volatile u32 i2c; /* 0x000008 crt I2C control */
- volatile u32 sysclk; /* 0x00000c system clock PLL control */
- volatile u32 i2cfp; /* 0x000010 flat panel I2C control */
- volatile u32 id; /* 0x000014 device id/chip revision */
- volatile u32 config; /* 0x000018 power on configuration */
- volatile u32 bist; /* 0x00001c internal bist status */
-
- char _pad0[ 0x010000 - 0x000020 ];
-
- volatile u32 vt_xy; /* 0x010000 current dot coords */
- volatile u32 vt_xymax; /* 0x010004 maximum dot coords */
- volatile u32 vt_vsync; /* 0x010008 vsync on/off */
- volatile u32 vt_hsync; /* 0x01000c hsync on/off */
- volatile u32 vt_vblank; /* 0x010010 vblank on/off */
- volatile u32 vt_hblank; /* 0x010014 hblank on/off */
- volatile u32 vt_flags; /* 0x010018 polarity of vt signals */
- volatile u32 vt_f2rf_lock; /* 0x01001c f2rf & framelck y coord */
- volatile u32 vt_intr01; /* 0x010020 intr 0,1 y coords */
- volatile u32 vt_intr23; /* 0x010024 intr 2,3 y coords */
- volatile u32 fp_hdrv; /* 0x010028 flat panel hdrv on/off */
- volatile u32 fp_vdrv; /* 0x01002c flat panel vdrv on/off */
- volatile u32 fp_de; /* 0x010030 flat panel de on/off */
- volatile u32 vt_hpixen; /* 0x010034 intrnl horiz pixel on/off*/
- volatile u32 vt_vpixen; /* 0x010038 intrnl vert pixel on/off */
- volatile u32 vt_hcmap; /* 0x01003c cmap write (horiz) */
- volatile u32 vt_vcmap; /* 0x010040 cmap write (vert) */
- volatile u32 did_start_xy; /* 0x010044 eol/f did/xy reset val */
- volatile u32 crs_start_xy; /* 0x010048 eol/f crs/xy reset val */
- volatile u32 vc_start_xy; /* 0x01004c eol/f vc/xy reset val */
-
- char _pad1[ 0x020000 - 0x010050 ];
-
- volatile u32 ovr_width_tile; /* 0x020000 overlay plane ctrl 0 */
- volatile u32 ovr_inhwctrl; /* 0x020004 overlay plane ctrl 1 */
- volatile u32 ovr_control; /* 0x020008 overlay plane ctrl 1 */
-
- char _pad2[ 0x030000 - 0x02000C ];
-
- volatile u32 frm_size_tile; /* 0x030000 normal plane ctrl 0 */
- volatile u32 frm_size_pixel; /* 0x030004 normal plane ctrl 1 */
- volatile u32 frm_inhwctrl; /* 0x030008 normal plane ctrl 2 */
- volatile u32 frm_control; /* 0x03000C normal plane ctrl 3 */
-
- char _pad3[ 0x040000 - 0x030010 ];
-
- volatile u32 did_inhwctrl; /* 0x040000 DID control */
- volatile u32 did_control; /* 0x040004 DID shadow */
-
- char _pad4[ 0x048000 - 0x040008 ];
-
- volatile u32 mode_regs[32]; /* 0x048000 - 0x04807c WID table */
-
- char _pad5[ 0x050000 - 0x048080 ];
-
- volatile u32 cmap[6144]; /* 0x050000 - 0x055ffc color map */
-
- char _pad6[ 0x058000 - 0x056000 ];
-
- volatile u32 cm_fifo; /* 0x058000 color map fifo status */
-
- char _pad7[ 0x060000 - 0x058004 ];
-
- volatile u32 gmap[256]; /* 0x060000 - 0x0603fc gamma map */
-
- char _pad8[ 0x068000 - 0x060400 ];
-
- volatile u32 gmap10[1024]; /* 0x068000 - 0x068ffc gamma map */
-
- char _pad9[ 0x070000 - 0x069000 ];
-
- volatile u32 crs_pos; /* 0x070000 cusror control 0 */
- volatile u32 crs_ctl; /* 0x070004 cusror control 1 */
- volatile u32 crs_cmap[3]; /* 0x070008 - 0x070010 crs cmap */
-
- char _pad10[ 0x078000 - 0x070014 ];
-
- volatile u32 crs_glyph[64]; /* 0x078000 - 0x0780fc crs glyph */
-
- char _pad11[ 0x080000 - 0x078100 ];
-
- volatile u32 vc_0; /* 0x080000 video capture crtl 0 */
- volatile u32 vc_1; /* 0x080004 video capture crtl 1 */
- volatile u32 vc_2; /* 0x080008 video capture crtl 2 */
- volatile u32 vc_3; /* 0x08000c video capture crtl 3 */
- volatile u32 vc_4; /* 0x080010 video capture crtl 3 */
- volatile u32 vc_5; /* 0x080014 video capture crtl 3 */
- volatile u32 vc_6; /* 0x080018 video capture crtl 3 */
- volatile u32 vc_7; /* 0x08001c video capture crtl 3 */
- volatile u32 vc_8; /* 0x08000c video capture crtl 3 */
-};
-
-/* Bit mask information */
-
-#define DBE_CTRLSTAT_CHIPID_MSB 3
-#define DBE_CTRLSTAT_CHIPID_LSB 0
-#define DBE_CTRLSTAT_SENSE_N_MSB 4
-#define DBE_CTRLSTAT_SENSE_N_LSB 4
-#define DBE_CTRLSTAT_PCLKSEL_MSB 29
-#define DBE_CTRLSTAT_PCLKSEL_LSB 28
-
-#define DBE_DOTCLK_M_MSB 7
-#define DBE_DOTCLK_M_LSB 0
-#define DBE_DOTCLK_N_MSB 13
-#define DBE_DOTCLK_N_LSB 8
-#define DBE_DOTCLK_P_MSB 15
-#define DBE_DOTCLK_P_LSB 14
-#define DBE_DOTCLK_RUN_MSB 20
-#define DBE_DOTCLK_RUN_LSB 20
-
-#define DBE_VT_XY_VT_FREEZE_MSB 31
-#define DBE_VT_XY_VT_FREEZE_LSB 31
-
-#define DBE_FP_VDRV_FP_VDRV_ON_MSB 23
-#define DBE_FP_VDRV_FP_VDRV_ON_LSB 12
-#define DBE_FP_VDRV_FP_VDRV_OFF_MSB 11
-#define DBE_FP_VDRV_FP_VDRV_OFF_LSB 0
-
-#define DBE_FP_HDRV_FP_HDRV_ON_MSB 23
-#define DBE_FP_HDRV_FP_HDRV_ON_LSB 12
-#define DBE_FP_HDRV_FP_HDRV_OFF_MSB 11
-#define DBE_FP_HDRV_FP_HDRV_OFF_LSB 0
-
-#define DBE_FP_DE_FP_DE_ON_MSB 23
-#define DBE_FP_DE_FP_DE_ON_LSB 12
-#define DBE_FP_DE_FP_DE_OFF_MSB 11
-#define DBE_FP_DE_FP_DE_OFF_LSB 0
-
-#define DBE_VT_VSYNC_VT_VSYNC_ON_MSB 23
-#define DBE_VT_VSYNC_VT_VSYNC_ON_LSB 12
-#define DBE_VT_VSYNC_VT_VSYNC_OFF_MSB 11
-#define DBE_VT_VSYNC_VT_VSYNC_OFF_LSB 0
-
-#define DBE_VT_HSYNC_VT_HSYNC_ON_MSB 23
-#define DBE_VT_HSYNC_VT_HSYNC_ON_LSB 12
-#define DBE_VT_HSYNC_VT_HSYNC_OFF_MSB 11
-#define DBE_VT_HSYNC_VT_HSYNC_OFF_LSB 0
-
-#define DBE_VT_VBLANK_VT_VBLANK_ON_MSB 23
-#define DBE_VT_VBLANK_VT_VBLANK_ON_LSB 12
-#define DBE_VT_VBLANK_VT_VBLANK_OFF_MSB 11
-#define DBE_VT_VBLANK_VT_VBLANK_OFF_LSB 0
-
-#define DBE_VT_HBLANK_VT_HBLANK_ON_MSB 23
-#define DBE_VT_HBLANK_VT_HBLANK_ON_LSB 12
-#define DBE_VT_HBLANK_VT_HBLANK_OFF_MSB 11
-#define DBE_VT_HBLANK_VT_HBLANK_OFF_LSB 0
-
-#define DBE_VT_FLAGS_VDRV_INVERT_MSB 0
-#define DBE_VT_FLAGS_VDRV_INVERT_LSB 0
-#define DBE_VT_FLAGS_HDRV_INVERT_MSB 2
-#define DBE_VT_FLAGS_HDRV_INVERT_LSB 2
-
-#define DBE_VT_VCMAP_VT_VCMAP_ON_MSB 23
-#define DBE_VT_VCMAP_VT_VCMAP_ON_LSB 12
-#define DBE_VT_VCMAP_VT_VCMAP_OFF_MSB 11
-#define DBE_VT_VCMAP_VT_VCMAP_OFF_LSB 0
-
-#define DBE_VT_HCMAP_VT_HCMAP_ON_MSB 23
-#define DBE_VT_HCMAP_VT_HCMAP_ON_LSB 12
-#define DBE_VT_HCMAP_VT_HCMAP_OFF_MSB 11
-#define DBE_VT_HCMAP_VT_HCMAP_OFF_LSB 0
-
-#define DBE_VT_XYMAX_VT_MAXX_MSB 11
-#define DBE_VT_XYMAX_VT_MAXX_LSB 0
-#define DBE_VT_XYMAX_VT_MAXY_MSB 23
-#define DBE_VT_XYMAX_VT_MAXY_LSB 12
-
-#define DBE_VT_HPIXEN_VT_HPIXEN_ON_MSB 23
-#define DBE_VT_HPIXEN_VT_HPIXEN_ON_LSB 12
-#define DBE_VT_HPIXEN_VT_HPIXEN_OFF_MSB 11
-#define DBE_VT_HPIXEN_VT_HPIXEN_OFF_LSB 0
-
-#define DBE_VT_VPIXEN_VT_VPIXEN_ON_MSB 23
-#define DBE_VT_VPIXEN_VT_VPIXEN_ON_LSB 12
-#define DBE_VT_VPIXEN_VT_VPIXEN_OFF_MSB 11
-#define DBE_VT_VPIXEN_VT_VPIXEN_OFF_LSB 0
-
-#define DBE_OVR_CONTROL_OVR_DMA_ENABLE_MSB 0
-#define DBE_OVR_CONTROL_OVR_DMA_ENABLE_LSB 0
-
-#define DBE_OVR_INHWCTRL_OVR_DMA_ENABLE_MSB 0
-#define DBE_OVR_INHWCTRL_OVR_DMA_ENABLE_LSB 0
-
-#define DBE_OVR_WIDTH_TILE_OVR_FIFO_RESET_MSB 13
-#define DBE_OVR_WIDTH_TILE_OVR_FIFO_RESET_LSB 13
-
-#define DBE_FRM_CONTROL_FRM_DMA_ENABLE_MSB 0
-#define DBE_FRM_CONTROL_FRM_DMA_ENABLE_LSB 0
-#define DBE_FRM_CONTROL_FRM_TILE_PTR_MSB 31
-#define DBE_FRM_CONTROL_FRM_TILE_PTR_LSB 9
-#define DBE_FRM_CONTROL_FRM_LINEAR_MSB 1
-#define DBE_FRM_CONTROL_FRM_LINEAR_LSB 1
-
-#define DBE_FRM_INHWCTRL_FRM_DMA_ENABLE_MSB 0
-#define DBE_FRM_INHWCTRL_FRM_DMA_ENABLE_LSB 0
-
-#define DBE_FRM_SIZE_TILE_FRM_WIDTH_TILE_MSB 12
-#define DBE_FRM_SIZE_TILE_FRM_WIDTH_TILE_LSB 5
-#define DBE_FRM_SIZE_TILE_FRM_RHS_MSB 4
-#define DBE_FRM_SIZE_TILE_FRM_RHS_LSB 0
-#define DBE_FRM_SIZE_TILE_FRM_DEPTH_MSB 14
-#define DBE_FRM_SIZE_TILE_FRM_DEPTH_LSB 13
-#define DBE_FRM_SIZE_TILE_FRM_FIFO_RESET_MSB 15
-#define DBE_FRM_SIZE_TILE_FRM_FIFO_RESET_LSB 15
-
-#define DBE_FRM_SIZE_PIXEL_FB_HEIGHT_PIX_MSB 31
-#define DBE_FRM_SIZE_PIXEL_FB_HEIGHT_PIX_LSB 16
-
-#define DBE_DID_CONTROL_DID_DMA_ENABLE_MSB 0
-#define DBE_DID_CONTROL_DID_DMA_ENABLE_LSB 0
-#define DBE_DID_INHWCTRL_DID_DMA_ENABLE_MSB 0
-#define DBE_DID_INHWCTRL_DID_DMA_ENABLE_LSB 0
-
-#define DBE_DID_START_XY_DID_STARTY_MSB 23
-#define DBE_DID_START_XY_DID_STARTY_LSB 12
-#define DBE_DID_START_XY_DID_STARTX_MSB 11
-#define DBE_DID_START_XY_DID_STARTX_LSB 0
-
-#define DBE_CRS_START_XY_CRS_STARTY_MSB 23
-#define DBE_CRS_START_XY_CRS_STARTY_LSB 12
-#define DBE_CRS_START_XY_CRS_STARTX_MSB 11
-#define DBE_CRS_START_XY_CRS_STARTX_LSB 0
-
-#define DBE_WID_TYP_MSB 4
-#define DBE_WID_TYP_LSB 2
-#define DBE_WID_BUF_MSB 1
-#define DBE_WID_BUF_LSB 0
-
-#define DBE_VC_START_XY_VC_STARTY_MSB 23
-#define DBE_VC_START_XY_VC_STARTY_LSB 12
-#define DBE_VC_START_XY_VC_STARTX_MSB 11
-#define DBE_VC_START_XY_VC_STARTX_LSB 0
-
-/* Constants */
-
-#define DBE_FRM_DEPTH_8 0
-#define DBE_FRM_DEPTH_16 1
-#define DBE_FRM_DEPTH_32 2
-
-#define DBE_CMODE_I8 0
-#define DBE_CMODE_I12 1
-#define DBE_CMODE_RG3B2 2
-#define DBE_CMODE_RGB4 3
-#define DBE_CMODE_ARGB5 4
-#define DBE_CMODE_RGB8 5
-#define DBE_CMODE_RGBA5 6
-#define DBE_CMODE_RGB10 7
-
-#define DBE_BMODE_BOTH 3
-
-#define DBE_CRS_MAGIC 54
-
-#define DBE_CLOCK_REF_KHZ 27000
-
-/* Config Register (DBE Only) Definitions */
-
-#define DBE_CONFIG_VDAC_ENABLE 0x00000001
-#define DBE_CONFIG_VDAC_GSYNC 0x00000002
-#define DBE_CONFIG_VDAC_PBLANK 0x00000004
-#define DBE_CONFIG_FPENABLE 0x00000008
-#define DBE_CONFIG_LENDIAN 0x00000020
-#define DBE_CONFIG_TILEHIST 0x00000040
-#define DBE_CONFIG_EXT_ADDR 0x00000080
-
-#define DBE_CONFIG_FBDEV ( DBE_CONFIG_VDAC_ENABLE | \
- DBE_CONFIG_VDAC_GSYNC | \
- DBE_CONFIG_VDAC_PBLANK | \
- DBE_CONFIG_LENDIAN | \
- DBE_CONFIG_EXT_ADDR )
-
-/*
- * Available Video Timings and Corresponding Indices
- */
-
-typedef enum {
- DBE_VT_640_480_60,
-
- DBE_VT_800_600_60,
- DBE_VT_800_600_75,
- DBE_VT_800_600_120,
-
- DBE_VT_1024_768_50,
- DBE_VT_1024_768_60,
- DBE_VT_1024_768_75,
- DBE_VT_1024_768_85,
- DBE_VT_1024_768_120,
-
- DBE_VT_1280_1024_50,
- DBE_VT_1280_1024_60,
- DBE_VT_1280_1024_75,
- DBE_VT_1280_1024_85,
-
- DBE_VT_1600_1024_53,
- DBE_VT_1600_1024_60,
-
- DBE_VT_1600_1200_50,
- DBE_VT_1600_1200_60,
- DBE_VT_1600_1200_75,
-
- DBE_VT_1920_1080_50,
- DBE_VT_1920_1080_60,
- DBE_VT_1920_1080_72,
-
- DBE_VT_1920_1200_50,
- DBE_VT_1920_1200_60,
- DBE_VT_1920_1200_66,
-
- DBE_VT_UNKNOWN
-} dbe_timing_t;
-
-
-
-/*
- * Crime Video Timing Data Structure
- */
-
-struct dbe_timing_info
-{
- dbe_timing_t type;
- int flags;
- short width; /* Monitor resolution */
- short height;
- int fields_sec; /* fields/sec (Hz -3 dec. places */
- int cfreq; /* pixel clock frequency (MHz -3 dec. places) */
- short htotal; /* Horizontal total pixels */
- short hblank_start; /* Horizontal blank start */
- short hblank_end; /* Horizontal blank end */
- short hsync_start; /* Horizontal sync start */
- short hsync_end; /* Horizontal sync end */
- short vtotal; /* Vertical total lines */
- short vblank_start; /* Vertical blank start */
- short vblank_end; /* Vertical blank end */
- short vsync_start; /* Vertical sync start */
- short vsync_end; /* Vertical sync end */
- short pll_m; /* PLL M parameter */
- short pll_n; /* PLL P parameter */
- short pll_p; /* PLL N parameter */
-};
-
-/* Defines for dbe_vof_info_t flags */
-
-#define DBE_VOF_UNKNOWNMON 1
-#define DBE_VOF_STEREO 2
-#define DBE_VOF_DO_GENSYNC 4 /* enable incoming sync */
-#define DBE_VOF_SYNC_ON_GREEN 8 /* sync on green */
-#define DBE_VOF_FLATPANEL 0x1000 /* FLATPANEL Timing */
-#define DBE_VOF_MAGICKEY 0x2000 /* Backdoor key */
-
-/*
- * DBE Timing Tables
- */
-
-#ifdef INCLUDE_TIMING_TABLE_DATA
-struct dbe_timing_info dbeVTimings[] = {
- {
- DBE_VT_640_480_60,
- /* flags, width, height, fields_sec, cfreq */
- 0, 640, 480, 59940, 25175,
- /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
- 800, 640, 800, 656, 752,
- /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
- 525, 480, 525, 490, 492,
- /* pll_m, pll_n, pll_p */
- 15, 2, 3
- },
-
- {
- DBE_VT_800_600_60,
- /* flags, width, height, fields_sec, cfreq */
- 0, 800, 600, 60317, 40000,
- /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
- 1056, 800, 1056, 840, 968,
- /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
- 628, 600, 628, 601, 605,
- /* pll_m, pll_n, pll_p */
- 3, 1, 1
- },
-
- {
- DBE_VT_800_600_75,
- /* flags, width, height, fields_sec, cfreq */
- 0, 800, 600, 75000, 49500,
- /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
- 1056, 800, 1056, 816, 896,
- /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
- 625, 600, 625, 601, 604,
- /* pll_m, pll_n, pll_p */
- 11, 3, 1
- },
-
- {
- DBE_VT_800_600_120,
- /* flags, width, height, fields_sec, cfreq */
- DBE_VOF_STEREO, 800, 600, 119800, 82978,
- /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
- 1040, 800, 1040, 856, 976,
- /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
- 666, 600, 666, 637, 643,
- /* pll_m, pll_n, pll_p */
- 31, 5, 1
- },
-
- {
- DBE_VT_1024_768_50,
- /* flags, width, height, fields_sec, cfreq */
- 0, 1024, 768, 50000, 54163,
- /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
- 1344, 1024, 1344, 1048, 1184,
- /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
- 806, 768, 806, 771, 777,
- /* pll_m, pll_n, pll_p */
- 4, 1, 1
- },
-
- {
- DBE_VT_1024_768_60,
- /* flags, width, height, fields_sec, cfreq */
- 0, 1024, 768, 60004, 65000,
- /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
- 1344, 1024, 1344, 1048, 1184,
- /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
- 806, 768, 806, 771, 777,
- /* pll_m, pll_n, pll_p */
- 12, 5, 0
- },
-
- {
- DBE_VT_1024_768_75,
- /* flags, width, height, fields_sec, cfreq */
- 0, 1024, 768, 75029, 78750,
- /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
- 1312, 1024, 1312, 1040, 1136,
- /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
- 800, 768, 800, 769, 772,
- /* pll_m, pll_n, pll_p */
- 29, 5, 1
- },
-
- {
- DBE_VT_1024_768_85,
- /* flags, width, height, fields_sec, cfreq */
- 0, 1024, 768, 84997, 94500,
- /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
- 1376, 1024, 1376, 1072, 1168,
- /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
- 808, 768, 808, 769, 772,
- /* pll_m, pll_n, pll_p */
- 7, 2, 0
- },
-
- {
- DBE_VT_1024_768_120,
- /* flags, width, height, fields_sec, cfreq */
- DBE_VOF_STEREO, 1024, 768, 119800, 133195,
- /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
- 1376, 1024, 1376, 1072, 1168,
- /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
- 808, 768, 808, 769, 772,
- /* pll_m, pll_n, pll_p */
- 5, 1, 0
- },
-
- {
- DBE_VT_1280_1024_50,
- /* flags, width, height, fields_sec, cfreq */
- 0, 1280, 1024, 50000, 89460,
- /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
- 1680, 1280, 1680, 1360, 1480,
- /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
- 1065, 1024, 1065, 1027, 1030,
- /* pll_m, pll_n, pll_p */
- 10, 3, 0
- },
-
- {
- DBE_VT_1280_1024_60,
- /* flags, width, height, fields_sec, cfreq */
- 0, 1280, 1024, 60020, 108000,
- /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
- 1688, 1280, 1688, 1328, 1440,
- /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
- 1066, 1024, 1066, 1025, 1028,
- /* pll_m, pll_n, pll_p */
- 4, 1, 0
- },
-
- {
- DBE_VT_1280_1024_75,
- /* flags, width, height, fields_sec, cfreq */
- 0, 1280, 1024, 75025, 135000,
- /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
- 1688, 1280, 1688, 1296, 1440,
- /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
- 1066, 1024, 1066, 1025, 1028,
- /* pll_m, pll_n, pll_p */
- 5, 1, 0
- },
-
- {
- DBE_VT_1280_1024_85,
- /* flags, width, height, fields_sec, cfreq */
- 0, 1280, 1024, 85024, 157500,
- /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
- 1728, 1280, 1728, 1344, 1504,
- /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
- 1072, 1024, 1072, 1025, 1028,
- /* pll_m, pll_n, pll_p */
- 29, 5, 0
- },
-
- {
- DBE_VT_1600_1024_53,
- /* flags, width, height, fields_sec, cfreq */
- DBE_VOF_FLATPANEL | DBE_VOF_MAGICKEY,
- 1600, 1024, 53000, 107447,
- /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
- 1900, 1600, 1900, 1630, 1730,
- /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
- 1067, 1024, 1067, 1027, 1030,
- /* pll_m, pll_n, pll_p */
- 4, 1, 0
- },
-
- {
- DBE_VT_1600_1024_60,
- /* flags, width, height, fields_sec, cfreq */
- DBE_VOF_FLATPANEL, 1600, 1024, 60000, 106913,
- /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
- 1670, 1600, 1670, 1630, 1650,
- /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
- 1067, 1024, 1067, 1027, 1030,
- /* pll_m, pll_n, pll_p */
- 4, 1, 0
- },
-
- {
- DBE_VT_1600_1200_50,
- /* flags, width, height, fields_sec, cfreq */
- 0, 1600, 1200, 50000, 130500,
- /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
- 2088, 1600, 2088, 1644, 1764,
- /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
- 1250, 1200, 1250, 1205, 1211,
- /* pll_m, pll_n, pll_p */
- 24, 5, 0
- },
-
- {
- DBE_VT_1600_1200_60,
- /* flags, width, height, fields_sec, cfreq */
- 0, 1600, 1200, 59940, 162000,
- /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
- 2160, 1600, 2160, 1644, 1856,
- /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
- 1250, 1200, 1250, 1201, 1204,
- /* pll_m, pll_n, pll_p */
- 6, 1, 0
- },
-
- {
- DBE_VT_1600_1200_75,
- /* flags, width, height, fields_sec, cfreq */
- 0, 1600, 1200, 75000, 202500,
- /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
- 2160, 1600, 2160, 1644, 1856,
- /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
- 1250, 1200, 1250, 1201, 1204,
- /* pll_m, pll_n, pll_p */
- 15, 2, 0
- },
-
- {
- DBE_VT_1920_1080_50,
- /* flags, width, height, fields_sec, cfreq */
- 0, 1920, 1080, 50000, 133200,
- /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
- 2368, 1920, 2368, 1952, 2096,
- /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
- 1125, 1080, 1125, 1083, 1086,
- /* pll_m, pll_n, pll_p */
- 5, 1, 0
- },
-
- {
- DBE_VT_1920_1080_60,
- /* flags, width, height, fields_sec, cfreq */
- 0, 1920, 1080, 59940, 159840,
- /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
- 2368, 1920, 2368, 1952, 2096,
- /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
- 1125, 1080, 1125, 1083, 1086,
- /* pll_m, pll_n, pll_p */
- 6, 1, 0
- },
-
- {
- DBE_VT_1920_1080_72,
- /* flags, width, height, fields_sec, cfreq */
- 0, 1920, 1080, 72000, 216023,
- /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
- 2560, 1920, 2560, 1968, 2184,
- /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
- 1172, 1080, 1172, 1083, 1086,
- /* pll_m, pll_n, pll_p */
- 8, 1, 0
- },
-
- {
- DBE_VT_1920_1200_50,
- /* flags, width, height, fields_sec, cfreq */
- 0, 1920, 1200, 50000, 161500,
- /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
- 2584, 1920, 2584, 1984, 2240,
- /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
- 1250, 1200, 1250, 1203, 1206,
- /* pll_m, pll_n, pll_p */
- 6, 1, 0
- },
-
- {
- DBE_VT_1920_1200_60,
- /* flags, width, height, fields_sec, cfreq */
- 0, 1920, 1200, 59940, 193800,
- /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
- 2584, 1920, 2584, 1984, 2240,
- /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
- 1250, 1200, 1250, 1203, 1206,
- /* pll_m, pll_n, pll_p */
- 29, 4, 0
- },
-
- {
- DBE_VT_1920_1200_66,
- /* flags, width, height, fields_sec, cfreq */
- 0, 1920, 1200, 66000, 213180,
- /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
- 2584, 1920, 2584, 1984, 2240,
- /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
- 1250, 1200, 1250, 1203, 1206,
- /* pll_m, pll_n, pll_p */
- 8, 1, 0
- }
-};
-
-#endif // INCLUDE_TIMING_TABLE_DATA
-
-#endif // ! __SGIVWFB_H__
diff --git a/ANDROID_3.4.5/include/video/sh_mipi_dsi.h b/ANDROID_3.4.5/include/video/sh_mipi_dsi.h
deleted file mode 100644
index 06c67fbc..00000000
--- a/ANDROID_3.4.5/include/video/sh_mipi_dsi.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Public SH-mobile MIPI DSI header
- *
- * Copyright (C) 2010 Guennadi Liakhovetski <g.liakhovetski@gmx.de>
- *
- * 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.
- */
-#ifndef VIDEO_SH_MIPI_DSI_H
-#define VIDEO_SH_MIPI_DSI_H
-
-enum sh_mipi_dsi_data_fmt {
- MIPI_RGB888,
- MIPI_RGB565,
- MIPI_RGB666_LP,
- MIPI_RGB666,
- MIPI_BGR888,
- MIPI_BGR565,
- MIPI_BGR666_LP,
- MIPI_BGR666,
- MIPI_YUYV,
- MIPI_UYVY,
- MIPI_YUV420_L,
- MIPI_YUV420,
-};
-
-struct sh_mobile_lcdc_chan_cfg;
-
-#define SH_MIPI_DSI_HSABM (1 << 0)
-#define SH_MIPI_DSI_HBPBM (1 << 1)
-#define SH_MIPI_DSI_HFPBM (1 << 2)
-#define SH_MIPI_DSI_BL2E (1 << 3)
-#define SH_MIPI_DSI_VSEE (1 << 4)
-#define SH_MIPI_DSI_HSEE (1 << 5)
-#define SH_MIPI_DSI_HSAE (1 << 6)
-
-#define SH_MIPI_DSI_HSbyteCLK (1 << 24)
-#define SH_MIPI_DSI_HS6divCLK (1 << 25)
-#define SH_MIPI_DSI_HS4divCLK (1 << 26)
-
-#define SH_MIPI_DSI_SYNC_PULSES_MODE (SH_MIPI_DSI_VSEE | \
- SH_MIPI_DSI_HSEE | \
- SH_MIPI_DSI_HSAE)
-#define SH_MIPI_DSI_SYNC_EVENTS_MODE (0)
-#define SH_MIPI_DSI_SYNC_BURST_MODE (SH_MIPI_DSI_BL2E)
-
-struct sh_mipi_dsi_info {
- enum sh_mipi_dsi_data_fmt data_format;
- struct sh_mobile_lcdc_chan_cfg *lcd_chan;
- int lane;
- unsigned long flags;
- u32 clksrc;
- u32 phyctrl; /* for extra setting */
- unsigned int vsynw_offset;
- int (*set_dot_clock)(struct platform_device *pdev,
- void __iomem *base,
- int enable);
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/video/sh_mobile_hdmi.h b/ANDROID_3.4.5/include/video/sh_mobile_hdmi.h
deleted file mode 100644
index 728f9de9..00000000
--- a/ANDROID_3.4.5/include/video/sh_mobile_hdmi.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * SH-Mobile High-Definition Multimedia Interface (HDMI)
- *
- * Copyright (C) 2010, Guennadi Liakhovetski <g.liakhovetski@gmx.de>
- *
- * 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.
- */
-
-#ifndef SH_MOBILE_HDMI_H
-#define SH_MOBILE_HDMI_H
-
-struct sh_mobile_lcdc_chan_cfg;
-struct device;
-struct clk;
-
-/*
- * flags format
- *
- * 0x0000000A
- *
- * A: Audio source select
- */
-
-/* Audio source select */
-#define HDMI_SND_SRC_MASK (0xF << 0)
-#define HDMI_SND_SRC_I2S (0 << 0) /* default */
-#define HDMI_SND_SRC_SPDIF (1 << 0)
-#define HDMI_SND_SRC_DSD (2 << 0)
-#define HDMI_SND_SRC_HBR (3 << 0)
-
-struct sh_mobile_hdmi_info {
- unsigned int flags;
- long (*clk_optimize_parent)(unsigned long target, unsigned long *best_freq,
- unsigned long *parent_freq);
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/video/sh_mobile_lcdc.h b/ANDROID_3.4.5/include/video/sh_mobile_lcdc.h
deleted file mode 100644
index 7571b27a..00000000
--- a/ANDROID_3.4.5/include/video/sh_mobile_lcdc.h
+++ /dev/null
@@ -1,192 +0,0 @@
-#ifndef __ASM_SH_MOBILE_LCDC_H__
-#define __ASM_SH_MOBILE_LCDC_H__
-
-#include <linux/fb.h>
-#include <video/sh_mobile_meram.h>
-
-/* Register definitions */
-#define _LDDCKR 0x410
-#define LDDCKR_ICKSEL_BUS (0 << 16)
-#define LDDCKR_ICKSEL_MIPI (1 << 16)
-#define LDDCKR_ICKSEL_HDMI (2 << 16)
-#define LDDCKR_ICKSEL_EXT (3 << 16)
-#define LDDCKR_ICKSEL_MASK (7 << 16)
-#define LDDCKR_MOSEL (1 << 6)
-#define _LDDCKSTPR 0x414
-#define _LDINTR 0x468
-#define LDINTR_FE (1 << 10)
-#define LDINTR_VSE (1 << 9)
-#define LDINTR_VEE (1 << 8)
-#define LDINTR_FS (1 << 2)
-#define LDINTR_VSS (1 << 1)
-#define LDINTR_VES (1 << 0)
-#define LDINTR_STATUS_MASK (0xff << 0)
-#define _LDSR 0x46c
-#define LDSR_MSS (1 << 10)
-#define LDSR_MRS (1 << 8)
-#define LDSR_AS (1 << 1)
-#define _LDCNT1R 0x470
-#define LDCNT1R_DE (1 << 0)
-#define _LDCNT2R 0x474
-#define LDCNT2R_BR (1 << 8)
-#define LDCNT2R_MD (1 << 3)
-#define LDCNT2R_SE (1 << 2)
-#define LDCNT2R_ME (1 << 1)
-#define LDCNT2R_DO (1 << 0)
-#define _LDRCNTR 0x478
-#define LDRCNTR_SRS (1 << 17)
-#define LDRCNTR_SRC (1 << 16)
-#define LDRCNTR_MRS (1 << 1)
-#define LDRCNTR_MRC (1 << 0)
-#define _LDDDSR 0x47c
-#define LDDDSR_LS (1 << 2)
-#define LDDDSR_WS (1 << 1)
-#define LDDDSR_BS (1 << 0)
-
-#define LDMT1R_VPOL (1 << 28)
-#define LDMT1R_HPOL (1 << 27)
-#define LDMT1R_DWPOL (1 << 26)
-#define LDMT1R_DIPOL (1 << 25)
-#define LDMT1R_DAPOL (1 << 24)
-#define LDMT1R_HSCNT (1 << 17)
-#define LDMT1R_DWCNT (1 << 16)
-#define LDMT1R_IFM (1 << 12)
-#define LDMT1R_MIFTYP_RGB8 (0x0 << 0)
-#define LDMT1R_MIFTYP_RGB9 (0x4 << 0)
-#define LDMT1R_MIFTYP_RGB12A (0x5 << 0)
-#define LDMT1R_MIFTYP_RGB12B (0x6 << 0)
-#define LDMT1R_MIFTYP_RGB16 (0x7 << 0)
-#define LDMT1R_MIFTYP_RGB18 (0xa << 0)
-#define LDMT1R_MIFTYP_RGB24 (0xb << 0)
-#define LDMT1R_MIFTYP_YCBCR (0xf << 0)
-#define LDMT1R_MIFTYP_SYS8A (0x0 << 0)
-#define LDMT1R_MIFTYP_SYS8B (0x1 << 0)
-#define LDMT1R_MIFTYP_SYS8C (0x2 << 0)
-#define LDMT1R_MIFTYP_SYS8D (0x3 << 0)
-#define LDMT1R_MIFTYP_SYS9 (0x4 << 0)
-#define LDMT1R_MIFTYP_SYS12 (0x5 << 0)
-#define LDMT1R_MIFTYP_SYS16A (0x7 << 0)
-#define LDMT1R_MIFTYP_SYS16B (0x8 << 0)
-#define LDMT1R_MIFTYP_SYS16C (0x9 << 0)
-#define LDMT1R_MIFTYP_SYS18 (0xa << 0)
-#define LDMT1R_MIFTYP_SYS24 (0xb << 0)
-#define LDMT1R_MIFTYP_MASK (0xf << 0)
-
-#define LDDFR_CF1 (1 << 18)
-#define LDDFR_CF0 (1 << 17)
-#define LDDFR_CC (1 << 16)
-#define LDDFR_YF_420 (0 << 8)
-#define LDDFR_YF_422 (1 << 8)
-#define LDDFR_YF_444 (2 << 8)
-#define LDDFR_YF_MASK (3 << 8)
-#define LDDFR_PKF_ARGB32 (0x00 << 0)
-#define LDDFR_PKF_RGB16 (0x03 << 0)
-#define LDDFR_PKF_RGB24 (0x0b << 0)
-#define LDDFR_PKF_MASK (0x1f << 0)
-
-#define LDSM1R_OS (1 << 0)
-
-#define LDSM2R_OSTRG (1 << 0)
-
-#define LDPMR_LPS (3 << 0)
-
-#define _LDDWD0R 0x800
-#define LDDWDxR_WDACT (1 << 28)
-#define LDDWDxR_RSW (1 << 24)
-#define _LDDRDR 0x840
-#define LDDRDR_RSR (1 << 24)
-#define LDDRDR_DRD_MASK (0x3ffff << 0)
-#define _LDDWAR 0x900
-#define LDDWAR_WA (1 << 0)
-#define _LDDRAR 0x904
-#define LDDRAR_RA (1 << 0)
-
-enum {
- RGB8 = LDMT1R_MIFTYP_RGB8, /* 24bpp, 8:8:8 */
- RGB9 = LDMT1R_MIFTYP_RGB9, /* 18bpp, 9:9 */
- RGB12A = LDMT1R_MIFTYP_RGB12A, /* 24bpp, 12:12 */
- RGB12B = LDMT1R_MIFTYP_RGB12B, /* 12bpp */
- RGB16 = LDMT1R_MIFTYP_RGB16, /* 16bpp */
- RGB18 = LDMT1R_MIFTYP_RGB18, /* 18bpp */
- RGB24 = LDMT1R_MIFTYP_RGB24, /* 24bpp */
- YUV422 = LDMT1R_MIFTYP_YCBCR, /* 16bpp */
- SYS8A = LDMT1R_IFM | LDMT1R_MIFTYP_SYS8A, /* 24bpp, 8:8:8 */
- SYS8B = LDMT1R_IFM | LDMT1R_MIFTYP_SYS8B, /* 18bpp, 8:8:2 */
- SYS8C = LDMT1R_IFM | LDMT1R_MIFTYP_SYS8C, /* 18bpp, 2:8:8 */
- SYS8D = LDMT1R_IFM | LDMT1R_MIFTYP_SYS8D, /* 16bpp, 8:8 */
- SYS9 = LDMT1R_IFM | LDMT1R_MIFTYP_SYS9, /* 18bpp, 9:9 */
- SYS12 = LDMT1R_IFM | LDMT1R_MIFTYP_SYS12, /* 24bpp, 12:12 */
- SYS16A = LDMT1R_IFM | LDMT1R_MIFTYP_SYS16A, /* 16bpp */
- SYS16B = LDMT1R_IFM | LDMT1R_MIFTYP_SYS16B, /* 18bpp, 16:2 */
- SYS16C = LDMT1R_IFM | LDMT1R_MIFTYP_SYS16C, /* 18bpp, 2:16 */
- SYS18 = LDMT1R_IFM | LDMT1R_MIFTYP_SYS18, /* 18bpp */
- SYS24 = LDMT1R_IFM | LDMT1R_MIFTYP_SYS24, /* 24bpp */
-};
-
-enum { LCDC_CHAN_DISABLED = 0,
- LCDC_CHAN_MAINLCD,
- LCDC_CHAN_SUBLCD };
-
-enum { LCDC_CLK_BUS, LCDC_CLK_PERIPHERAL, LCDC_CLK_EXTERNAL };
-
-#define LCDC_FLAGS_DWPOL (1 << 0) /* Rising edge dot clock data latch */
-#define LCDC_FLAGS_DIPOL (1 << 1) /* Active low display enable polarity */
-#define LCDC_FLAGS_DAPOL (1 << 2) /* Active low display data polarity */
-#define LCDC_FLAGS_HSCNT (1 << 3) /* Disable HSYNC during VBLANK */
-#define LCDC_FLAGS_DWCNT (1 << 4) /* Disable dotclock during blanking */
-
-struct sh_mobile_lcdc_sys_bus_cfg {
- unsigned long ldmt2r;
- unsigned long ldmt3r;
- unsigned long deferred_io_msec;
-};
-
-struct sh_mobile_lcdc_sys_bus_ops {
- void (*write_index)(void *handle, unsigned long data);
- void (*write_data)(void *handle, unsigned long data);
- unsigned long (*read_data)(void *handle);
-};
-
-struct sh_mobile_lcdc_panel_cfg {
- unsigned long width; /* Panel width in mm */
- unsigned long height; /* Panel height in mm */
- int (*setup_sys)(void *sys_ops_handle,
- struct sh_mobile_lcdc_sys_bus_ops *sys_ops);
- void (*start_transfer)(void *sys_ops_handle,
- struct sh_mobile_lcdc_sys_bus_ops *sys_ops);
- void (*display_on)(void);
- void (*display_off)(void);
-};
-
-/* backlight info */
-struct sh_mobile_lcdc_bl_info {
- const char *name;
- int max_brightness;
- int (*set_brightness)(int brightness);
- int (*get_brightness)(void);
-};
-
-struct sh_mobile_lcdc_chan_cfg {
- int chan;
- int fourcc;
- int colorspace;
- int interface_type; /* selects RGBn or SYSn I/F, see above */
- int clock_divider;
- unsigned long flags; /* LCDC_FLAGS_... */
- const struct fb_videomode *lcd_modes;
- int num_modes;
- struct sh_mobile_lcdc_panel_cfg panel_cfg;
- struct sh_mobile_lcdc_bl_info bl_info;
- struct sh_mobile_lcdc_sys_bus_cfg sys_bus_cfg; /* only for SYSn I/F */
- const struct sh_mobile_meram_cfg *meram_cfg;
-
- struct platform_device *tx_dev; /* HDMI/DSI transmitter device */
-};
-
-struct sh_mobile_lcdc_info {
- int clock_source;
- struct sh_mobile_lcdc_chan_cfg ch[2];
- struct sh_mobile_meram_info *meram_dev;
-};
-
-#endif /* __ASM_SH_MOBILE_LCDC_H__ */
diff --git a/ANDROID_3.4.5/include/video/sh_mobile_meram.h b/ANDROID_3.4.5/include/video/sh_mobile_meram.h
deleted file mode 100644
index 29b2fd3b..00000000
--- a/ANDROID_3.4.5/include/video/sh_mobile_meram.h
+++ /dev/null
@@ -1,63 +0,0 @@
-#ifndef __VIDEO_SH_MOBILE_MERAM_H__
-#define __VIDEO_SH_MOBILE_MERAM_H__
-
-/* For sh_mobile_meram_info.addr_mode */
-enum {
- SH_MOBILE_MERAM_MODE0 = 0,
- SH_MOBILE_MERAM_MODE1
-};
-
-enum {
- SH_MOBILE_MERAM_PF_NV = 0,
- SH_MOBILE_MERAM_PF_RGB,
- SH_MOBILE_MERAM_PF_NV24
-};
-
-
-struct sh_mobile_meram_priv;
-struct sh_mobile_meram_ops;
-
-/*
- * struct sh_mobile_meram_info - MERAM platform data
- * @reserved_icbs: Bitmask of reserved ICBs (for instance used through UIO)
- */
-struct sh_mobile_meram_info {
- int addr_mode;
- u32 reserved_icbs;
- struct sh_mobile_meram_ops *ops;
- struct sh_mobile_meram_priv *priv;
- struct platform_device *pdev;
-};
-
-/* icb config */
-struct sh_mobile_meram_icb_cfg {
- unsigned int meram_size; /* MERAM Buffer Size to use */
-};
-
-struct sh_mobile_meram_cfg {
- struct sh_mobile_meram_icb_cfg icb[2];
-};
-
-struct module;
-struct sh_mobile_meram_ops {
- struct module *module;
- /* register usage of meram */
- void *(*meram_register)(struct sh_mobile_meram_info *meram_dev,
- const struct sh_mobile_meram_cfg *cfg,
- unsigned int xres, unsigned int yres,
- unsigned int pixelformat,
- unsigned int *pitch);
-
- /* unregister usage of meram */
- void (*meram_unregister)(struct sh_mobile_meram_info *meram_dev,
- void *data);
-
- /* update meram settings */
- void (*meram_update)(struct sh_mobile_meram_info *meram_dev, void *data,
- unsigned long base_addr_y,
- unsigned long base_addr_c,
- unsigned long *icb_addr_y,
- unsigned long *icb_addr_c);
-};
-
-#endif /* __VIDEO_SH_MOBILE_MERAM_H__ */
diff --git a/ANDROID_3.4.5/include/video/sisfb.h b/ANDROID_3.4.5/include/video/sisfb.h
deleted file mode 100644
index 6dc5df9e..00000000
--- a/ANDROID_3.4.5/include/video/sisfb.h
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
- * sisfb.h - definitions for the SiS framebuffer driver
- *
- * Copyright (C) 2001-2005 by Thomas Winischhofer, Vienna, Austria.
- *
- * 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 named License,
- * or 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
- */
-
-#ifndef _LINUX_SISFB_H_
-#define _LINUX_SISFB_H_
-
-#include <linux/types.h>
-#include <asm/ioctl.h>
-
-/**********************************************/
-/* PUBLIC */
-/**********************************************/
-
-/* vbflags, public (others in sis.h) */
-#define CRT2_DEFAULT 0x00000001
-#define CRT2_LCD 0x00000002
-#define CRT2_TV 0x00000004
-#define CRT2_VGA 0x00000008
-#define TV_NTSC 0x00000010
-#define TV_PAL 0x00000020
-#define TV_HIVISION 0x00000040
-#define TV_YPBPR 0x00000080
-#define TV_AVIDEO 0x00000100
-#define TV_SVIDEO 0x00000200
-#define TV_SCART 0x00000400
-#define TV_PALM 0x00001000
-#define TV_PALN 0x00002000
-#define TV_NTSCJ 0x00001000
-#define TV_CHSCART 0x00008000
-#define TV_CHYPBPR525I 0x00010000
-#define CRT1_VGA 0x00000000
-#define CRT1_LCDA 0x00020000
-#define VGA2_CONNECTED 0x00040000
-#define VB_DISPTYPE_CRT1 0x00080000 /* CRT1 connected and used */
-#define VB_SINGLE_MODE 0x20000000 /* CRT1 or CRT2; determined by DISPTYPE_CRTx */
-#define VB_MIRROR_MODE 0x40000000 /* CRT1 + CRT2 identical (mirror mode) */
-#define VB_DUALVIEW_MODE 0x80000000 /* CRT1 + CRT2 independent (dual head mode) */
-
-/* Aliases: */
-#define CRT2_ENABLE (CRT2_LCD | CRT2_TV | CRT2_VGA)
-#define TV_STANDARD (TV_NTSC | TV_PAL | TV_PALM | TV_PALN | TV_NTSCJ)
-#define TV_INTERFACE (TV_AVIDEO|TV_SVIDEO|TV_SCART|TV_HIVISION|TV_YPBPR|TV_CHSCART|TV_CHYPBPR525I)
-
-/* Only if TV_YPBPR is set: */
-#define TV_YPBPR525I TV_NTSC
-#define TV_YPBPR525P TV_PAL
-#define TV_YPBPR750P TV_PALM
-#define TV_YPBPR1080I TV_PALN
-#define TV_YPBPRALL (TV_YPBPR525I | TV_YPBPR525P | TV_YPBPR750P | TV_YPBPR1080I)
-
-#define VB_DISPTYPE_DISP2 CRT2_ENABLE
-#define VB_DISPTYPE_CRT2 CRT2_ENABLE
-#define VB_DISPTYPE_DISP1 VB_DISPTYPE_CRT1
-#define VB_DISPMODE_SINGLE VB_SINGLE_MODE
-#define VB_DISPMODE_MIRROR VB_MIRROR_MODE
-#define VB_DISPMODE_DUAL VB_DUALVIEW_MODE
-#define VB_DISPLAY_MODE (SINGLE_MODE | MIRROR_MODE | DUALVIEW_MODE)
-
-/* Structure argument for SISFB_GET_INFO ioctl */
-struct sisfb_info {
- __u32 sisfb_id; /* for identifying sisfb */
-#ifndef SISFB_ID
-#define SISFB_ID 0x53495346 /* Identify myself with 'SISF' */
-#endif
- __u32 chip_id; /* PCI-ID of detected chip */
- __u32 memory; /* total video memory in KB */
- __u32 heapstart; /* heap start offset in KB */
- __u8 fbvidmode; /* current sisfb mode */
-
- __u8 sisfb_version;
- __u8 sisfb_revision;
- __u8 sisfb_patchlevel;
-
- __u8 sisfb_caps; /* sisfb capabilities */
-
- __u32 sisfb_tqlen; /* turbo queue length (in KB) */
-
- __u32 sisfb_pcibus; /* The card's PCI ID */
- __u32 sisfb_pcislot;
- __u32 sisfb_pcifunc;
-
- __u8 sisfb_lcdpdc; /* PanelDelayCompensation */
-
- __u8 sisfb_lcda; /* Detected status of LCDA for low res/text modes */
-
- __u32 sisfb_vbflags;
- __u32 sisfb_currentvbflags;
-
- __u32 sisfb_scalelcd;
- __u32 sisfb_specialtiming;
-
- __u8 sisfb_haveemi;
- __u8 sisfb_emi30,sisfb_emi31,sisfb_emi32,sisfb_emi33;
- __u8 sisfb_haveemilcd;
-
- __u8 sisfb_lcdpdca; /* PanelDelayCompensation for LCD-via-CRT1 */
-
- __u16 sisfb_tvxpos, sisfb_tvypos; /* Warning: Values + 32 ! */
-
- __u32 sisfb_heapsize; /* heap size (in KB) */
- __u32 sisfb_videooffset; /* Offset of viewport in video memory (in bytes) */
-
- __u32 sisfb_curfstn; /* currently running FSTN/DSTN mode */
- __u32 sisfb_curdstn;
-
- __u16 sisfb_pci_vendor; /* PCI vendor (SiS or XGI) */
-
- __u32 sisfb_vbflags2; /* ivideo->vbflags2 */
-
- __u8 sisfb_can_post; /* sisfb can POST this card */
- __u8 sisfb_card_posted; /* card is POSTED */
- __u8 sisfb_was_boot_device; /* This card was the boot video device (ie is primary) */
-
- __u8 reserved[183]; /* for future use */
-};
-
-#define SISFB_CMD_GETVBFLAGS 0x55AA0001 /* no arg; result[1] = vbflags */
-#define SISFB_CMD_SWITCHCRT1 0x55AA0010 /* arg[0]: 99 = query, 0 = off, 1 = on */
-/* more to come */
-
-#define SISFB_CMD_ERR_OK 0x80000000 /* command succeeded */
-#define SISFB_CMD_ERR_LOCKED 0x80000001 /* sisfb is locked */
-#define SISFB_CMD_ERR_EARLY 0x80000002 /* request before sisfb took over gfx system */
-#define SISFB_CMD_ERR_NOVB 0x80000003 /* No video bridge */
-#define SISFB_CMD_ERR_NOCRT2 0x80000004 /* can't change CRT1 status, CRT2 disabled */
-/* more to come */
-#define SISFB_CMD_ERR_UNKNOWN 0x8000ffff /* Unknown command */
-#define SISFB_CMD_ERR_OTHER 0x80010000 /* Other error */
-
-/* Argument for SISFB_CMD ioctl */
-struct sisfb_cmd {
- __u32 sisfb_cmd;
- __u32 sisfb_arg[16];
- __u32 sisfb_result[4];
-};
-
-/* Additional IOCTLs for communication sisfb <> X driver */
-/* If changing this, vgatypes.h must also be changed (for X driver) */
-
-/* ioctl for identifying and giving some info (esp. memory heap start) */
-#define SISFB_GET_INFO_SIZE _IOR(0xF3,0x00,__u32)
-#define SISFB_GET_INFO _IOR(0xF3,0x01,struct sisfb_info)
-
-/* ioctrl to get current vertical retrace status */
-#define SISFB_GET_VBRSTATUS _IOR(0xF3,0x02,__u32)
-
-/* ioctl to enable/disable panning auto-maximize (like nomax parameter) */
-#define SISFB_GET_AUTOMAXIMIZE _IOR(0xF3,0x03,__u32)
-#define SISFB_SET_AUTOMAXIMIZE _IOW(0xF3,0x03,__u32)
-
-/* ioctls to relocate TV output (x=D[31:16], y=D[15:0], + 32)*/
-#define SISFB_GET_TVPOSOFFSET _IOR(0xF3,0x04,__u32)
-#define SISFB_SET_TVPOSOFFSET _IOW(0xF3,0x04,__u32)
-
-/* ioctl for internal sisfb commands (sisfbctrl) */
-#define SISFB_COMMAND _IOWR(0xF3,0x05,struct sisfb_cmd)
-
-/* ioctl for locking sisfb (no register access during lock) */
-/* As of now, only used to avoid register access during
- * the ioctls listed above.
- */
-#define SISFB_SET_LOCK _IOW(0xF3,0x06,__u32)
-
-/* ioctls 0xF3 up to 0x3F reserved for sisfb */
-
-/****************************************************************/
-/* The following are deprecated and should not be used anymore: */
-/****************************************************************/
-/* ioctl for identifying and giving some info (esp. memory heap start) */
-#define SISFB_GET_INFO_OLD _IOR('n',0xF8,__u32)
-/* ioctrl to get current vertical retrace status */
-#define SISFB_GET_VBRSTATUS_OLD _IOR('n',0xF9,__u32)
-/* ioctl to enable/disable panning auto-maximize (like nomax parameter) */
-#define SISFB_GET_AUTOMAXIMIZE_OLD _IOR('n',0xFA,__u32)
-#define SISFB_SET_AUTOMAXIMIZE_OLD _IOW('n',0xFA,__u32)
-/****************************************************************/
-/* End of deprecated ioctl numbers */
-/****************************************************************/
-
-/* For fb memory manager (FBIO_ALLOC, FBIO_FREE) */
-struct sis_memreq {
- __u32 offset;
- __u32 size;
-};
-
-/**********************************************/
-/* PRIVATE */
-/* (for IN-KERNEL usage only) */
-/**********************************************/
-
-#ifdef __KERNEL__
-
-#include <linux/pci.h>
-
-#define UNKNOWN_VGA 0
-#define SIS_300_VGA 1
-#define SIS_315_VGA 2
-
-#define SISFB_HAVE_MALLOC_NEW
-extern void sis_malloc(struct sis_memreq *req);
-extern void sis_malloc_new(struct pci_dev *pdev, struct sis_memreq *req);
-
-extern void sis_free(u32 base);
-extern void sis_free_new(struct pci_dev *pdev, u32 base);
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/video/sstfb.h b/ANDROID_3.4.5/include/video/sstfb.h
deleted file mode 100644
index c449eace..00000000
--- a/ANDROID_3.4.5/include/video/sstfb.h
+++ /dev/null
@@ -1,355 +0,0 @@
-/*
- * linux/drivers/video/sstfb.h -- voodoo graphics frame buffer
- *
- * Copyright (c) 2000,2001 Ghozlane Toumi <gtoumi@messel.emse.fr>
- *
- * Created 28 Aug 2001 by Ghozlane Toumi
- */
-
-
-#ifndef _SSTFB_H_
-#define _SSTFB_H_
-
-/*
- *
- * Debug Stuff
- *
- */
-
-#ifdef SST_DEBUG
-# define dprintk(X...) printk("sstfb: " X)
-# define SST_DEBUG_REG 1
-# define SST_DEBUG_FUNC 1
-# define SST_DEBUG_VAR 1
-#else
-# define dprintk(X...)
-# define SST_DEBUG_REG 0
-# define SST_DEBUG_FUNC 0
-# define SST_DEBUG_VAR 0
-#endif
-
-#if (SST_DEBUG_REG > 0)
-# define r_dprintk(X...) dprintk(X)
-#else
-# define r_dprintk(X...)
-#endif
-#if (SST_DEBUG_REG > 1)
-# define r_ddprintk(X...) dprintk(" " X)
-#else
-# define r_ddprintk(X...)
-#endif
-
-#if (SST_DEBUG_FUNC > 0)
-# define f_dprintk(X...) dprintk(X)
-#else
-# define f_dprintk(X...)
-#endif
-#if (SST_DEBUG_FUNC > 1)
-# define f_ddprintk(X...) dprintk(" " X)
-#else
-# define f_ddprintk(X...)
-#endif
-#if (SST_DEBUG_FUNC > 2)
-# define f_dddprintk(X...) dprintk(" " X)
-#else
-# define f_dddprintk(X...)
-#endif
-
-#if (SST_DEBUG_VAR > 0)
-# define v_dprintk(X...) dprintk(X)
-# define print_var(V, X...) \
- { \
- dprintk(X); \
- printk(" :\n"); \
- sst_dbg_print_var(V); \
- }
-#else
-# define v_dprintk(X...)
-# define print_var(X,Y...)
-#endif
-
-#define POW2(x) (1ul<<(x))
-
-/*
- *
- * Const
- *
- */
-
-/* pci stuff */
-#define PCI_INIT_ENABLE 0x40
-# define PCI_EN_INIT_WR BIT(0)
-# define PCI_EN_FIFO_WR BIT(1)
-# define PCI_REMAP_DAC BIT(2)
-#define PCI_VCLK_ENABLE 0xc0 /* enable video */
-#define PCI_VCLK_DISABLE 0xe0
-
-/* register offsets from memBaseAddr */
-#define STATUS 0x0000
-# define STATUS_FBI_BUSY BIT(7)
-#define FBZMODE 0x0110
-# define EN_CLIPPING BIT(0) /* enable clipping */
-# define EN_RGB_WRITE BIT(9) /* enable writes to rgb area */
-# define EN_ALPHA_WRITE BIT(10)
-# define ENGINE_INVERT_Y BIT(17) /* invert Y origin (pipe) */
-#define LFBMODE 0x0114
-# define LFB_565 0 /* bits 3:0 .16 bits RGB */
-# define LFB_888 4 /* 24 bits RGB */
-# define LFB_8888 5 /* 32 bits ARGB */
-# define WR_BUFF_FRONT 0 /* write buf select (front) */
-# define WR_BUFF_BACK (1 << 4) /* back */
-# define RD_BUFF_FRONT 0 /* read buff select (front) */
-# define RD_BUFF_BACK (1 << 6) /* back */
-# define EN_PXL_PIPELINE BIT(8) /* pixel pipeline (clip..)*/
-# define LFB_WORD_SWIZZLE_WR BIT(11) /* enable write-wordswap (big-endian) */
-# define LFB_BYTE_SWIZZLE_WR BIT(12) /* enable write-byteswap (big-endian) */
-# define LFB_INVERT_Y BIT(13) /* invert Y origin (LFB) */
-# define LFB_WORD_SWIZZLE_RD BIT(15) /* enable read-wordswap (big-endian) */
-# define LFB_BYTE_SWIZZLE_RD BIT(16) /* enable read-byteswap (big-endian) */
-#define CLIP_LEFT_RIGHT 0x0118
-#define CLIP_LOWY_HIGHY 0x011c
-#define NOPCMD 0x0120
-#define FASTFILLCMD 0x0124
-#define SWAPBUFFCMD 0x0128
-#define FBIINIT4 0x0200 /* misc controls */
-# define FAST_PCI_READS 0 /* 1 waitstate */
-# define SLOW_PCI_READS BIT(0) /* 2 ws */
-# define LFB_READ_AHEAD BIT(1)
-#define BACKPORCH 0x0208
-#define VIDEODIMENSIONS 0x020c
-#define FBIINIT0 0x0210 /* misc+fifo controls */
-# define DIS_VGA_PASSTHROUGH BIT(0)
-# define FBI_RESET BIT(1)
-# define FIFO_RESET BIT(2)
-#define FBIINIT1 0x0214 /* PCI + video controls */
-# define VIDEO_MASK 0x8080010f /* masks video related bits V1+V2*/
-# define FAST_PCI_WRITES 0 /* 0 ws */
-# define SLOW_PCI_WRITES BIT(1) /* 1 ws */
-# define EN_LFB_READ BIT(3)
-# define TILES_IN_X_SHIFT 4
-# define VIDEO_RESET BIT(8)
-# define EN_BLANKING BIT(12)
-# define EN_DATA_OE BIT(13)
-# define EN_BLANK_OE BIT(14)
-# define EN_HVSYNC_OE BIT(15)
-# define EN_DCLK_OE BIT(16)
-# define SEL_INPUT_VCLK_2X 0 /* bit 17 */
-# define SEL_INPUT_VCLK_SLAVE BIT(17)
-# define SEL_SOURCE_VCLK_SLAVE 0 /* bits 21:20 */
-# define SEL_SOURCE_VCLK_2X_DIV2 (0x01 << 20)
-# define SEL_SOURCE_VCLK_2X_SEL (0x02 << 20)
-# define EN_24BPP BIT(22)
-# define TILES_IN_X_MSB_SHIFT 24 /* v2 */
-# define VCLK_2X_SEL_DEL_SHIFT 27 /* vclk out delay 0,4,6,8ns */
-# define VCLK_DEL_SHIFT 29 /* vclk in delay */
-#define FBIINIT2 0x0218 /* Dram controls */
-# define EN_FAST_RAS_READ BIT(5)
-# define EN_DRAM_OE BIT(6)
-# define EN_FAST_RD_AHEAD_WR BIT(7)
-# define VIDEO_OFFSET_SHIFT 11 /* unit: #rows tile 64x16/2 */
-# define SWAP_DACVSYNC 0
-# define SWAP_DACDATA0 (1 << 9)
-# define SWAP_FIFO_STALL (2 << 9)
-# define EN_RD_AHEAD_FIFO BIT(21)
-# define EN_DRAM_REFRESH BIT(22)
-# define DRAM_REFRESH_16 (0x30 << 23) /* dram 16 ms */
-#define DAC_READ FBIINIT2 /* in remap mode */
-#define FBIINIT3 0x021c /* fbi controls */
-# define DISABLE_TEXTURE BIT(6)
-# define Y_SWAP_ORIGIN_SHIFT 22 /* Y swap subtraction value */
-#define HSYNC 0x0220
-#define VSYNC 0x0224
-#define DAC_DATA 0x022c
-# define DAC_READ_CMD BIT(11) /* set read dacreg mode */
-#define FBIINIT5 0x0244 /* v2 specific */
-# define FBIINIT5_MASK 0xfa40ffff /* mask video bits*/
-# define HDOUBLESCAN BIT(20)
-# define VDOUBLESCAN BIT(21)
-# define HSYNC_HIGH BIT(23)
-# define VSYNC_HIGH BIT(24)
-# define INTERLACE BIT(26)
-#define FBIINIT6 0x0248 /* v2 specific */
-# define TILES_IN_X_LSB_SHIFT 30 /* v2 */
-#define FBIINIT7 0x024c /* v2 specific */
-
-#define BLTSRCBASEADDR 0x02c0 /* BitBLT Source base address */
-#define BLTDSTBASEADDR 0x02c4 /* BitBLT Destination base address */
-#define BLTXYSTRIDES 0x02c8 /* BitBLT Source and Destination strides */
-#define BLTSRCCHROMARANGE 0x02cc /* BitBLT Source Chroma key range */
-#define BLTDSTCHROMARANGE 0x02d0 /* BitBLT Destination Chroma key range */
-#define BLTCLIPX 0x02d4 /* BitBLT Min/Max X clip values */
-#define BLTCLIPY 0x02d8 /* BitBLT Min/Max Y clip values */
-#define BLTSRCXY 0x02e0 /* BitBLT Source starting XY coordinates */
-#define BLTDSTXY 0x02e4 /* BitBLT Destination starting XY coordinates */
-#define BLTSIZE 0x02e8 /* BitBLT width and height */
-#define BLTROP 0x02ec /* BitBLT Raster operations */
-# define BLTROP_COPY 0x0cccc
-# define BLTROP_INVERT 0x05555
-# define BLTROP_XOR 0x06666
-#define BLTCOLOR 0x02f0 /* BitBLT and foreground background colors */
-#define BLTCOMMAND 0x02f8 /* BitBLT command mode (v2 specific) */
-# define BLT_SCR2SCR_BITBLT 0 /* Screen-to-Screen BitBLT */
-# define BLT_CPU2SCR_BITBLT 1 /* CPU-to-screen BitBLT */
-# define BLT_RECFILL_BITBLT 2 /* BitBLT Rectangle Fill */
-# define BLT_16BPP_FMT 2 /* 16 BPP (5-6-5 RGB) */
-#define BLTDATA 0x02fc /* BitBLT data for CPU-to-Screen BitBLTs */
-# define LAUNCH_BITBLT BIT(31) /* Launch BitBLT in BltCommand, bltDstXY or bltSize */
-
-/* Dac Registers */
-#define DACREG_WMA 0x0 /* pixel write mode address */
-#define DACREG_LUT 0x01 /* color value */
-#define DACREG_RMR 0x02 /* pixel mask */
-#define DACREG_RMA 0x03 /* pixel read mode address */
-/*Dac registers in indexed mode (TI, ATT dacs) */
-#define DACREG_ADDR_I DACREG_WMA
-#define DACREG_DATA_I DACREG_RMR
-#define DACREG_RMR_I 0x00
-#define DACREG_CR0_I 0x01
-# define DACREG_CR0_EN_INDEXED BIT(0) /* enable indexec mode */
-# define DACREG_CR0_8BIT BIT(1) /* set dac to 8 bits/read */
-# define DACREG_CR0_PWDOWN BIT(3) /* powerdown dac */
-# define DACREG_CR0_16BPP 0x30 /* mode 3 */
-# define DACREG_CR0_24BPP 0x50 /* mode 5 */
-#define DACREG_CR1_I 0x05
-#define DACREG_CC_I 0x06
-# define DACREG_CC_CLKA BIT(7) /* clk A controlled by regs */
-# define DACREG_CC_CLKA_C (2<<4) /* clk A uses reg C */
-# define DACREG_CC_CLKB BIT(3) /* clk B controlled by regs */
-# define DACREG_CC_CLKB_D 3 /* clkB uses reg D */
-#define DACREG_AC0_I 0x48 /* clock A reg C */
-#define DACREG_AC1_I 0x49
-#define DACREG_BD0_I 0x6c /* clock B reg D */
-#define DACREG_BD1_I 0x6d
-
-/* identification constants */
-#define DACREG_MIR_TI 0x97
-#define DACREG_DIR_TI 0x09
-#define DACREG_MIR_ATT 0x84
-#define DACREG_DIR_ATT 0x09
-/* ics dac specific registers */
-#define DACREG_ICS_PLLWMA 0x04 /* PLL write mode address */
-#define DACREG_ICS_PLLDATA 0x05 /* PLL data /parameter */
-#define DACREG_ICS_CMD 0x06 /* command */
-# define DACREG_ICS_CMD_16BPP 0x50 /* ics color mode 6 (16bpp bypass)*/
-# define DACREG_ICS_CMD_24BPP 0x70 /* ics color mode 7 (24bpp bypass)*/
-# define DACREG_ICS_CMD_PWDOWN BIT(0) /* powerdown dac */
-#define DACREG_ICS_PLLRMA 0x07 /* PLL read mode address */
-/*
- * pll parameter register:
- * indexed : write addr to PLLWMA, write data in PLLDATA.
- * for reads use PLLRMA .
- * 8 freq registers (0-7) for video clock (CLK0)
- * 2 freq registers (a-b) for graphic clock (CLK1)
- */
-#define DACREG_ICS_PLL_CLK0_1_INI 0x55 /* initial pll M value for freq f1 */
-#define DACREG_ICS_PLL_CLK0_7_INI 0x71 /* f7 */
-#define DACREG_ICS_PLL_CLK1_B_INI 0x79 /* fb */
-#define DACREG_ICS_PLL_CTRL 0x0e
-# define DACREG_ICS_CLK0 BIT(5)
-# define DACREG_ICS_CLK0_0 0
-# define DACREG_ICS_CLK1_A 0 /* bit4 */
-
-/* sst default init registers */
-#define FBIINIT0_DEFAULT DIS_VGA_PASSTHROUGH
-
-#define FBIINIT1_DEFAULT \
- ( \
- FAST_PCI_WRITES \
-/* SLOW_PCI_WRITES*/ \
- | VIDEO_RESET \
- | 10 << TILES_IN_X_SHIFT\
- | SEL_SOURCE_VCLK_2X_SEL\
- | EN_LFB_READ \
- )
-
-#define FBIINIT2_DEFAULT \
- ( \
- SWAP_DACVSYNC \
- | EN_DRAM_OE \
- | DRAM_REFRESH_16 \
- | EN_DRAM_REFRESH \
- | EN_FAST_RAS_READ \
- | EN_RD_AHEAD_FIFO \
- | EN_FAST_RD_AHEAD_WR \
- )
-
-#define FBIINIT3_DEFAULT \
- ( DISABLE_TEXTURE )
-
-#define FBIINIT4_DEFAULT \
- ( \
- FAST_PCI_READS \
-/* SLOW_PCI_READS*/ \
- | LFB_READ_AHEAD \
- )
-/* Careful with this one : writing back the data just read will trash the DAC
- reading some fields give logic value on pins, but setting this field will
- set the source signal driving the pin. conclusion : just use the default
- as a base before writing back .
-*/
-#define FBIINIT6_DEFAULT (0x0)
-
-/*
- *
- * Misc Const
- *
- */
-
-/* ioctl to enable/disable VGA passthrough */
-#define SSTFB_SET_VGAPASS _IOW('F', 0xdd, __u32)
-#define SSTFB_GET_VGAPASS _IOR('F', 0xdd, __u32)
-
-
-/* used to know witch clock to set */
-enum {
- VID_CLOCK=0,
- GFX_CLOCK=1,
-};
-
-/* freq max */
-#define DAC_FREF 14318 /* DAC reference freq (Khz) */
-#define VCO_MAX 260000
-
-/*
- * driver structs
- */
-
-struct pll_timing {
- unsigned int m;
- unsigned int n;
- unsigned int p;
-};
-
-struct dac_switch {
- const char *name;
- int (*detect) (struct fb_info *info);
- int (*set_pll) (struct fb_info *info, const struct pll_timing *t, const int clock);
- void (*set_vidmod) (struct fb_info *info, const int bpp);
-};
-
-struct sst_spec {
- char * name;
- int default_gfx_clock; /* 50000 for voodoo1, 75000 for voodoo2 */
- int max_gfxclk; /* ! in Mhz ie 60 for voodoo 1 */
-};
-
-struct sstfb_par {
- u32 palette[16];
- unsigned int yDim;
- unsigned int hSyncOn; /* hsync_len */
- unsigned int hSyncOff; /* left_margin + xres + right_margin */
- unsigned int hBackPorch;/* left_margin */
- unsigned int vSyncOn;
- unsigned int vSyncOff;
- unsigned int vBackPorch;
- struct pll_timing pll;
- unsigned int tiles_in_X;/* num of tiles in X res */
- u8 __iomem *mmio_vbase;
- struct dac_switch dac_sw; /* dac specific functions */
- struct pci_dev *dev;
- int type;
- u8 revision;
- u8 vgapass; /* VGA pass through: 1=enabled, 0=disabled */
-};
-
-#endif /* _SSTFB_H_ */
diff --git a/ANDROID_3.4.5/include/video/tdfx.h b/ANDROID_3.4.5/include/video/tdfx.h
deleted file mode 100644
index befbaf0a..00000000
--- a/ANDROID_3.4.5/include/video/tdfx.h
+++ /dev/null
@@ -1,208 +0,0 @@
-#ifndef _TDFX_H
-#define _TDFX_H
-
-#include <linux/i2c.h>
-#include <linux/i2c-algo-bit.h>
-
-/* membase0 register offsets */
-#define STATUS 0x00
-#define PCIINIT0 0x04
-#define SIPMONITOR 0x08
-#define LFBMEMORYCONFIG 0x0c
-#define MISCINIT0 0x10
-#define MISCINIT1 0x14
-#define DRAMINIT0 0x18
-#define DRAMINIT1 0x1c
-#define AGPINIT 0x20
-#define TMUGBEINIT 0x24
-#define VGAINIT0 0x28
-#define VGAINIT1 0x2c
-#define DRAMCOMMAND 0x30
-#define DRAMDATA 0x34
-/* reserved 0x38 */
-/* reserved 0x3c */
-#define PLLCTRL0 0x40
-#define PLLCTRL1 0x44
-#define PLLCTRL2 0x48
-#define DACMODE 0x4c
-#define DACADDR 0x50
-#define DACDATA 0x54
-#define RGBMAXDELTA 0x58
-#define VIDPROCCFG 0x5c
-#define HWCURPATADDR 0x60
-#define HWCURLOC 0x64
-#define HWCURC0 0x68
-#define HWCURC1 0x6c
-#define VIDINFORMAT 0x70
-#define VIDINSTATUS 0x74
-#define VIDSERPARPORT 0x78
-#define VIDINXDELTA 0x7c
-#define VIDININITERR 0x80
-#define VIDINYDELTA 0x84
-#define VIDPIXBUFTHOLD 0x88
-#define VIDCHRMIN 0x8c
-#define VIDCHRMAX 0x90
-#define VIDCURLIN 0x94
-#define VIDSCREENSIZE 0x98
-#define VIDOVRSTARTCRD 0x9c
-#define VIDOVRENDCRD 0xa0
-#define VIDOVRDUDX 0xa4
-#define VIDOVRDUDXOFF 0xa8
-#define VIDOVRDVDY 0xac
-/* ... */
-#define VIDOVRDVDYOFF 0xe0
-#define VIDDESKSTART 0xe4
-#define VIDDESKSTRIDE 0xe8
-#define VIDINADDR0 0xec
-#define VIDINADDR1 0xf0
-#define VIDINADDR2 0xf4
-#define VIDINSTRIDE 0xf8
-#define VIDCUROVRSTART 0xfc
-
-#define INTCTRL (0x00100000 + 0x04)
-#define CLIP0MIN (0x00100000 + 0x08)
-#define CLIP0MAX (0x00100000 + 0x0c)
-#define DSTBASE (0x00100000 + 0x10)
-#define DSTFORMAT (0x00100000 + 0x14)
-#define SRCBASE (0x00100000 + 0x34)
-#define COMMANDEXTRA_2D (0x00100000 + 0x38)
-#define CLIP1MIN (0x00100000 + 0x4c)
-#define CLIP1MAX (0x00100000 + 0x50)
-#define SRCFORMAT (0x00100000 + 0x54)
-#define SRCSIZE (0x00100000 + 0x58)
-#define SRCXY (0x00100000 + 0x5c)
-#define COLORBACK (0x00100000 + 0x60)
-#define COLORFORE (0x00100000 + 0x64)
-#define DSTSIZE (0x00100000 + 0x68)
-#define DSTXY (0x00100000 + 0x6c)
-#define COMMAND_2D (0x00100000 + 0x70)
-#define LAUNCH_2D (0x00100000 + 0x80)
-
-#define COMMAND_3D (0x00200000 + 0x120)
-
-/* register bitfields (not all, only as needed) */
-
-/* COMMAND_2D reg. values */
-#define TDFX_ROP_COPY 0xcc /* src */
-#define TDFX_ROP_INVERT 0x55 /* NOT dst */
-#define TDFX_ROP_XOR 0x66 /* src XOR dst */
-
-#define AUTOINC_DSTX BIT(10)
-#define AUTOINC_DSTY BIT(11)
-#define COMMAND_2D_FILLRECT 0x05
-#define COMMAND_2D_S2S_BITBLT 0x01 /* screen to screen */
-#define COMMAND_2D_H2S_BITBLT 0x03 /* host to screen */
-
-#define COMMAND_3D_NOP 0x00
-#define STATUS_RETRACE BIT(6)
-#define STATUS_BUSY BIT(9)
-#define MISCINIT1_CLUT_INV BIT(0)
-#define MISCINIT1_2DBLOCK_DIS BIT(15)
-#define DRAMINIT0_SGRAM_NUM BIT(26)
-#define DRAMINIT0_SGRAM_TYPE BIT(27)
-#define DRAMINIT0_SGRAM_TYPE_MASK (BIT(27) | BIT(28) | BIT(29))
-#define DRAMINIT0_SGRAM_TYPE_SHIFT 27
-#define DRAMINIT1_MEM_SDRAM BIT(30)
-#define VGAINIT0_VGA_DISABLE BIT(0)
-#define VGAINIT0_EXT_TIMING BIT(1)
-#define VGAINIT0_8BIT_DAC BIT(2)
-#define VGAINIT0_EXT_ENABLE BIT(6)
-#define VGAINIT0_WAKEUP_3C3 BIT(8)
-#define VGAINIT0_LEGACY_DISABLE BIT(9)
-#define VGAINIT0_ALT_READBACK BIT(10)
-#define VGAINIT0_FAST_BLINK BIT(11)
-#define VGAINIT0_EXTSHIFTOUT BIT(12)
-#define VGAINIT0_DECODE_3C6 BIT(13)
-#define VGAINIT0_SGRAM_HBLANK_DISABLE BIT(22)
-#define VGAINIT1_MASK 0x1fffff
-#define VIDCFG_VIDPROC_ENABLE BIT(0)
-#define VIDCFG_CURS_X11 BIT(1)
-#define VIDCFG_INTERLACE BIT(3)
-#define VIDCFG_HALF_MODE BIT(4)
-#define VIDCFG_DESK_ENABLE BIT(7)
-#define VIDCFG_CLUT_BYPASS BIT(10)
-#define VIDCFG_2X BIT(26)
-#define VIDCFG_HWCURSOR_ENABLE BIT(27)
-#define VIDCFG_PIXFMT_SHIFT 18
-#define DACMODE_2X BIT(0)
-
-/* I2C bit locations in the VIDSERPARPORT register */
-#define DDC_ENAB 0x00040000
-#define DDC_SCL_OUT 0x00080000
-#define DDC_SDA_OUT 0x00100000
-#define DDC_SCL_IN 0x00200000
-#define DDC_SDA_IN 0x00400000
-#define I2C_ENAB 0x00800000
-#define I2C_SCL_OUT 0x01000000
-#define I2C_SDA_OUT 0x02000000
-#define I2C_SCL_IN 0x04000000
-#define I2C_SDA_IN 0x08000000
-
-/* VGA rubbish, need to change this for multihead support */
-#define MISC_W 0x3c2
-#define MISC_R 0x3cc
-#define SEQ_I 0x3c4
-#define SEQ_D 0x3c5
-#define CRT_I 0x3d4
-#define CRT_D 0x3d5
-#define ATT_IW 0x3c0
-#define IS1_R 0x3da
-#define GRA_I 0x3ce
-#define GRA_D 0x3cf
-
-#ifdef __KERNEL__
-
-struct banshee_reg {
- /* VGA rubbish */
- unsigned char att[21];
- unsigned char crt[25];
- unsigned char gra[9];
- unsigned char misc[1];
- unsigned char seq[5];
-
- /* Banshee extensions */
- unsigned char ext[2];
- unsigned long vidcfg;
- unsigned long vidpll;
- unsigned long mempll;
- unsigned long gfxpll;
- unsigned long dacmode;
- unsigned long vgainit0;
- unsigned long vgainit1;
- unsigned long screensize;
- unsigned long stride;
- unsigned long cursloc;
- unsigned long curspataddr;
- unsigned long cursc0;
- unsigned long cursc1;
- unsigned long startaddr;
- unsigned long clip0min;
- unsigned long clip0max;
- unsigned long clip1min;
- unsigned long clip1max;
- unsigned long miscinit0;
-};
-
-struct tdfx_par;
-
-struct tdfxfb_i2c_chan {
- struct tdfx_par *par;
- struct i2c_adapter adapter;
- struct i2c_algo_bit_data algo;
-};
-
-struct tdfx_par {
- u32 max_pixclock;
- u32 palette[16];
- void __iomem *regbase_virt;
- unsigned long iobase;
- int mtrr_handle;
-#ifdef CONFIG_FB_3DFX_I2C
- struct tdfxfb_i2c_chan chan[2];
-#endif
-};
-
-#endif /* __KERNEL__ */
-
-#endif /* _TDFX_H */
-
diff --git a/ANDROID_3.4.5/include/video/tgafb.h b/ANDROID_3.4.5/include/video/tgafb.h
deleted file mode 100644
index 7bc5e2c1..00000000
--- a/ANDROID_3.4.5/include/video/tgafb.h
+++ /dev/null
@@ -1,280 +0,0 @@
-/*
- * linux/drivers/video/tgafb.h -- DEC 21030 TGA frame buffer device
- *
- * Copyright (C) 1999,2000 Martin Lucina, Tom Zerucha
- *
- * $Id: tgafb.h,v 1.4.2.3 2000/04/04 06:44:56 mato Exp $
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file COPYING in the main directory of this archive for
- * more details.
- */
-
-#ifndef TGAFB_H
-#define TGAFB_H
-
-/*
- * TGA hardware description (minimal)
- */
-
-#define TGA_TYPE_8PLANE 0
-#define TGA_TYPE_24PLANE 1
-#define TGA_TYPE_24PLUSZ 3
-
-/*
- * Offsets within Memory Space
- */
-
-#define TGA_ROM_OFFSET 0x0000000
-#define TGA_REGS_OFFSET 0x0100000
-#define TGA_8PLANE_FB_OFFSET 0x0200000
-#define TGA_24PLANE_FB_OFFSET 0x0804000
-#define TGA_24PLUSZ_FB_OFFSET 0x1004000
-
-#define TGA_FOREGROUND_REG 0x0020
-#define TGA_BACKGROUND_REG 0x0024
-#define TGA_PLANEMASK_REG 0x0028
-#define TGA_PIXELMASK_ONESHOT_REG 0x002c
-#define TGA_MODE_REG 0x0030
-#define TGA_RASTEROP_REG 0x0034
-#define TGA_PIXELSHIFT_REG 0x0038
-#define TGA_DEEP_REG 0x0050
-#define TGA_START_REG 0x0054
-#define TGA_PIXELMASK_REG 0x005c
-#define TGA_CURSOR_BASE_REG 0x0060
-#define TGA_HORIZ_REG 0x0064
-#define TGA_VERT_REG 0x0068
-#define TGA_BASE_ADDR_REG 0x006c
-#define TGA_VALID_REG 0x0070
-#define TGA_CURSOR_XY_REG 0x0074
-#define TGA_INTR_STAT_REG 0x007c
-#define TGA_DATA_REG 0x0080
-#define TGA_RAMDAC_SETUP_REG 0x00c0
-#define TGA_BLOCK_COLOR0_REG 0x0140
-#define TGA_BLOCK_COLOR1_REG 0x0144
-#define TGA_BLOCK_COLOR2_REG 0x0148
-#define TGA_BLOCK_COLOR3_REG 0x014c
-#define TGA_BLOCK_COLOR4_REG 0x0150
-#define TGA_BLOCK_COLOR5_REG 0x0154
-#define TGA_BLOCK_COLOR6_REG 0x0158
-#define TGA_BLOCK_COLOR7_REG 0x015c
-#define TGA_COPY64_SRC 0x0160
-#define TGA_COPY64_DST 0x0164
-#define TGA_CLOCK_REG 0x01e8
-#define TGA_RAMDAC_REG 0x01f0
-#define TGA_CMD_STAT_REG 0x01f8
-
-
-/*
- * Useful defines for managing the registers
- */
-
-#define TGA_HORIZ_ODD 0x80000000
-#define TGA_HORIZ_POLARITY 0x40000000
-#define TGA_HORIZ_ACT_MSB 0x30000000
-#define TGA_HORIZ_BP 0x0fe00000
-#define TGA_HORIZ_SYNC 0x001fc000
-#define TGA_HORIZ_FP 0x00007c00
-#define TGA_HORIZ_ACT_LSB 0x000001ff
-
-#define TGA_VERT_SE 0x80000000
-#define TGA_VERT_POLARITY 0x40000000
-#define TGA_VERT_RESERVED 0x30000000
-#define TGA_VERT_BP 0x0fc00000
-#define TGA_VERT_SYNC 0x003f0000
-#define TGA_VERT_FP 0x0000f800
-#define TGA_VERT_ACTIVE 0x000007ff
-
-#define TGA_VALID_VIDEO 0x01
-#define TGA_VALID_BLANK 0x02
-#define TGA_VALID_CURSOR 0x04
-
-#define TGA_MODE_SBM_8BPP 0x000
-#define TGA_MODE_SBM_24BPP 0x300
-
-#define TGA_MODE_SIMPLE 0x00
-#define TGA_MODE_SIMPLEZ 0x10
-#define TGA_MODE_OPAQUE_STIPPLE 0x01
-#define TGA_MODE_OPAQUE_FILL 0x21
-#define TGA_MODE_TRANSPARENT_STIPPLE 0x03
-#define TGA_MODE_TRANSPARENT_FILL 0x23
-#define TGA_MODE_BLOCK_STIPPLE 0x0d
-#define TGA_MODE_BLOCK_FILL 0x2d
-#define TGA_MODE_COPY 0x07
-#define TGA_MODE_DMA_READ_COPY_ND 0x17
-#define TGA_MODE_DMA_READ_COPY_D 0x37
-#define TGA_MODE_DMA_WRITE_COPY 0x1f
-
-
-/*
- * Useful defines for managing the ICS1562 PLL clock
- */
-
-#define TGA_PLL_BASE_FREQ 14318 /* .18 */
-#define TGA_PLL_MAX_FREQ 230000
-
-
-/*
- * Useful defines for managing the BT485 on the 8-plane TGA
- */
-
-#define BT485_READ_BIT 0x01
-#define BT485_WRITE_BIT 0x00
-
-#define BT485_ADDR_PAL_WRITE 0x00
-#define BT485_DATA_PAL 0x02
-#define BT485_PIXEL_MASK 0x04
-#define BT485_ADDR_PAL_READ 0x06
-#define BT485_ADDR_CUR_WRITE 0x08
-#define BT485_DATA_CUR 0x0a
-#define BT485_CMD_0 0x0c
-#define BT485_ADDR_CUR_READ 0x0e
-#define BT485_CMD_1 0x10
-#define BT485_CMD_2 0x12
-#define BT485_STATUS 0x14
-#define BT485_CMD_3 0x14
-#define BT485_CUR_RAM 0x16
-#define BT485_CUR_LOW_X 0x18
-#define BT485_CUR_HIGH_X 0x1a
-#define BT485_CUR_LOW_Y 0x1c
-#define BT485_CUR_HIGH_Y 0x1e
-
-
-/*
- * Useful defines for managing the BT463 on the 24-plane TGAs/SFB+s
- */
-
-#define BT463_ADDR_LO 0x0
-#define BT463_ADDR_HI 0x1
-#define BT463_REG_ACC 0x2
-#define BT463_PALETTE 0x3
-
-#define BT463_CUR_CLR_0 0x0100
-#define BT463_CUR_CLR_1 0x0101
-
-#define BT463_CMD_REG_0 0x0201
-#define BT463_CMD_REG_1 0x0202
-#define BT463_CMD_REG_2 0x0203
-
-#define BT463_READ_MASK_0 0x0205
-#define BT463_READ_MASK_1 0x0206
-#define BT463_READ_MASK_2 0x0207
-#define BT463_READ_MASK_3 0x0208
-
-#define BT463_BLINK_MASK_0 0x0209
-#define BT463_BLINK_MASK_1 0x020a
-#define BT463_BLINK_MASK_2 0x020b
-#define BT463_BLINK_MASK_3 0x020c
-
-#define BT463_WINDOW_TYPE_BASE 0x0300
-
-/*
- * Useful defines for managing the BT459 on the 8-plane SFB+s
- */
-
-#define BT459_ADDR_LO 0x0
-#define BT459_ADDR_HI 0x1
-#define BT459_REG_ACC 0x2
-#define BT459_PALETTE 0x3
-
-#define BT459_CUR_CLR_1 0x0181
-#define BT459_CUR_CLR_2 0x0182
-#define BT459_CUR_CLR_3 0x0183
-
-#define BT459_CMD_REG_0 0x0201
-#define BT459_CMD_REG_1 0x0202
-#define BT459_CMD_REG_2 0x0203
-
-#define BT459_READ_MASK 0x0204
-
-#define BT459_BLINK_MASK 0x0206
-
-#define BT459_CUR_CMD_REG 0x0300
-
-/*
- * The framebuffer driver private data.
- */
-
-struct tga_par {
- /* PCI/TC device. */
- struct device *dev;
-
- /* Device dependent information. */
- void __iomem *tga_mem_base;
- void __iomem *tga_fb_base;
- void __iomem *tga_regs_base;
- u8 tga_type; /* TGA_TYPE_XXX */
- u8 tga_chip_rev; /* dc21030 revision */
-
- /* Remember blank mode. */
- u8 vesa_blanked;
-
- /* Define the video mode. */
- u32 xres, yres; /* resolution in pixels */
- u32 htimings; /* horizontal timing register */
- u32 vtimings; /* vertical timing register */
- u32 pll_freq; /* pixclock in mhz */
- u32 bits_per_pixel; /* bits per pixel */
- u32 sync_on_green; /* set if sync is on green */
- u32 palette[16];
-};
-
-
-/*
- * Macros for reading/writing TGA and RAMDAC registers
- */
-
-static inline void
-TGA_WRITE_REG(struct tga_par *par, u32 v, u32 r)
-{
- writel(v, par->tga_regs_base +r);
-}
-
-static inline u32
-TGA_READ_REG(struct tga_par *par, u32 r)
-{
- return readl(par->tga_regs_base +r);
-}
-
-static inline void
-BT485_WRITE(struct tga_par *par, u8 v, u8 r)
-{
- TGA_WRITE_REG(par, r, TGA_RAMDAC_SETUP_REG);
- TGA_WRITE_REG(par, v | (r << 8), TGA_RAMDAC_REG);
-}
-
-static inline void
-BT463_LOAD_ADDR(struct tga_par *par, u16 a)
-{
- TGA_WRITE_REG(par, BT463_ADDR_LO<<2, TGA_RAMDAC_SETUP_REG);
- TGA_WRITE_REG(par, (BT463_ADDR_LO<<10) | (a & 0xff), TGA_RAMDAC_REG);
- TGA_WRITE_REG(par, BT463_ADDR_HI<<2, TGA_RAMDAC_SETUP_REG);
- TGA_WRITE_REG(par, (BT463_ADDR_HI<<10) | (a >> 8), TGA_RAMDAC_REG);
-}
-
-static inline void
-BT463_WRITE(struct tga_par *par, u32 m, u16 a, u8 v)
-{
- BT463_LOAD_ADDR(par, a);
- TGA_WRITE_REG(par, m << 2, TGA_RAMDAC_SETUP_REG);
- TGA_WRITE_REG(par, m << 10 | v, TGA_RAMDAC_REG);
-}
-
-static inline void
-BT459_LOAD_ADDR(struct tga_par *par, u16 a)
-{
- TGA_WRITE_REG(par, BT459_ADDR_LO << 2, TGA_RAMDAC_SETUP_REG);
- TGA_WRITE_REG(par, a & 0xff, TGA_RAMDAC_REG);
- TGA_WRITE_REG(par, BT459_ADDR_HI << 2, TGA_RAMDAC_SETUP_REG);
- TGA_WRITE_REG(par, a >> 8, TGA_RAMDAC_REG);
-}
-
-static inline void
-BT459_WRITE(struct tga_par *par, u32 m, u16 a, u8 v)
-{
- BT459_LOAD_ADDR(par, a);
- TGA_WRITE_REG(par, m << 2, TGA_RAMDAC_SETUP_REG);
- TGA_WRITE_REG(par, v, TGA_RAMDAC_REG);
-}
-
-#endif /* TGAFB_H */
diff --git a/ANDROID_3.4.5/include/video/trident.h b/ANDROID_3.4.5/include/video/trident.h
deleted file mode 100644
index b6ce19d1..00000000
--- a/ANDROID_3.4.5/include/video/trident.h
+++ /dev/null
@@ -1,146 +0,0 @@
-
-#ifndef TRIDENTFB_DEBUG
-#define TRIDENTFB_DEBUG 0
-#endif
-
-#if TRIDENTFB_DEBUG
-#define debug(f, a...) printk("%s:" f, __func__ , ## a);
-#else
-#define debug(f, a...)
-#endif
-
-#define output(f, a...) pr_info("tridentfb: " f, ## a)
-
-#define Kb (1024)
-#define Mb (Kb*Kb)
-
-/* PCI IDS of supported cards temporarily here */
-
-#define CYBER9320 0x9320
-#define CYBER9388 0x9388
-#define CYBER9382 0x9382 /* the real PCI id for this is 9660 */
-#define CYBER9385 0x9385 /* ditto */
-#define CYBER9397 0x9397
-#define CYBER9397DVD 0x939A
-#define CYBER9520 0x9520
-#define CYBER9525DVD 0x9525
-#define TGUI9440 0x9440
-#define TGUI9660 0x9660
-#define PROVIDIA9685 0x9685
-#define IMAGE975 0x9750
-#define IMAGE985 0x9850
-#define BLADE3D 0x9880
-#define CYBERBLADEE4 0x9540
-#define CYBERBLADEi7 0x8400
-#define CYBERBLADEi7D 0x8420
-#define CYBERBLADEi1 0x8500
-#define CYBERBLADEi1D 0x8520
-#define CYBERBLADEAi1 0x8600
-#define CYBERBLADEAi1D 0x8620
-#define CYBERBLADEXPAi1 0x8820
-#define CYBERBLADEXPm8 0x9910
-#define CYBERBLADEXPm16 0x9930
-
-/* these defines are for 'lcd' variable */
-#define LCD_STRETCH 0
-#define LCD_CENTER 1
-#define LCD_BIOS 2
-
-/* General Registers */
-#define SPR 0x1F /* Software Programming Register (videoram) */
-
-/* 3C4 */
-#define RevisionID 0x09
-#define OldOrNew 0x0B
-#define ConfPort1 0x0C
-#define ConfPort2 0x0C
-#define NewMode2 0x0D
-#define NewMode1 0x0E
-#define Protection 0x11
-#define MCLKLow 0x16
-#define MCLKHigh 0x17
-#define ClockLow 0x18
-#define ClockHigh 0x19
-#define SSetup 0x20
-#define SKey 0x37
-#define SPKey 0x57
-
-/* 3x4 */
-#define CRTCModuleTest 0x1E
-#define FIFOControl 0x20
-#define LinearAddReg 0x21
-#define DRAMTiming 0x23
-#define New32 0x23
-#define RAMDACTiming 0x25
-#define CRTHiOrd 0x27
-#define AddColReg 0x29
-#define InterfaceSel 0x2A
-#define HorizOverflow 0x2B
-#define GETest 0x2D
-#define Performance 0x2F
-#define GraphEngReg 0x36
-#define I2C 0x37
-#define PixelBusReg 0x38
-#define PCIReg 0x39
-#define DRAMControl 0x3A
-#define MiscContReg 0x3C
-#define CursorXLow 0x40
-#define CursorXHigh 0x41
-#define CursorYLow 0x42
-#define CursorYHigh 0x43
-#define CursorLocLow 0x44
-#define CursorLocHigh 0x45
-#define CursorXOffset 0x46
-#define CursorYOffset 0x47
-#define CursorFG1 0x48
-#define CursorFG2 0x49
-#define CursorFG3 0x4A
-#define CursorFG4 0x4B
-#define CursorBG1 0x4C
-#define CursorBG2 0x4D
-#define CursorBG3 0x4E
-#define CursorBG4 0x4F
-#define CursorControl 0x50
-#define PCIRetry 0x55
-#define PreEndControl 0x56
-#define PreEndFetch 0x57
-#define PCIMaster 0x60
-#define Enhancement0 0x62
-#define NewEDO 0x64
-#define TVinterface 0xC0
-#define TVMode 0xC1
-#define ClockControl 0xCF
-
-
-/* 3CE */
-#define MiscExtFunc 0x0F
-#define PowerStatus 0x23
-#define MiscIntContReg 0x2F
-#define CyberControl 0x30
-#define CyberEnhance 0x31
-#define FPConfig 0x33
-#define VertStretch 0x52
-#define HorStretch 0x53
-#define BiosMode 0x5c
-#define BiosReg 0x5d
-
-/* Graphics Engine */
-#define STATUS 0x2120
-#define OLDCMD 0x2124
-#define DRAWFL 0x2128
-#define OLDCLR 0x212C
-#define OLDDST 0x2138
-#define OLDSRC 0x213C
-#define OLDDIM 0x2140
-#define CMD 0x2144
-#define ROP 0x2148
-#define COLOR 0x2160
-#define BGCOLOR 0x2164
-#define SRC1 0x2100
-#define SRC2 0x2104
-#define DST1 0x2108
-#define DST2 0x210C
-
-#define ROP_S 0xCC
-#define ROP_P 0xF0
-#define ROP_X 0x66
diff --git a/ANDROID_3.4.5/include/video/udlfb.h b/ANDROID_3.4.5/include/video/udlfb.h
deleted file mode 100644
index f9466fa5..00000000
--- a/ANDROID_3.4.5/include/video/udlfb.h
+++ /dev/null
@@ -1,97 +0,0 @@
-#ifndef UDLFB_H
-#define UDLFB_H
-
-/*
- * TODO: Propose standard fb.h ioctl for reporting damage,
- * using _IOWR() and one of the existing area structs from fb.h
- * Consider these ioctls deprecated, but they're still used by the
- * DisplayLink X server as yet - need both to be modified in tandem
- * when new ioctl(s) are ready.
- */
-#define DLFB_IOCTL_RETURN_EDID 0xAD
-#define DLFB_IOCTL_REPORT_DAMAGE 0xAA
-struct dloarea {
- int x, y;
- int w, h;
- int x2, y2;
-};
-
-struct urb_node {
- struct list_head entry;
- struct dlfb_data *dev;
- struct delayed_work release_urb_work;
- struct urb *urb;
-};
-
-struct urb_list {
- struct list_head list;
- spinlock_t lock;
- struct semaphore limit_sem;
- int available;
- int count;
- size_t size;
-};
-
-struct dlfb_data {
- struct usb_device *udev;
- struct device *gdev; /* &udev->dev */
- struct fb_info *info;
- struct urb_list urbs;
- struct kref kref;
- char *backing_buffer;
- int fb_count;
- bool virtualized; /* true when physical usb device not present */
- struct delayed_work init_framebuffer_work;
- struct delayed_work free_framebuffer_work;
- atomic_t usb_active; /* 0 = update virtual buffer, but no usb traffic */
- atomic_t lost_pixels; /* 1 = a render op failed. Need screen refresh */
- char *edid; /* null until we read edid from hw or get from sysfs */
- size_t edid_size;
- int sku_pixel_limit;
- int base16;
- int base8;
- u32 pseudo_palette[256];
- int blank_mode; /*one of FB_BLANK_ */
- /* blit-only rendering path metrics, exposed through sysfs */
- atomic_t bytes_rendered; /* raw pixel-bytes driver asked to render */
- atomic_t bytes_identical; /* saved effort with backbuffer comparison */
- atomic_t bytes_sent; /* to usb, after compression including overhead */
- atomic_t cpu_kcycles_used; /* transpired during pixel processing */
-};
-
-#define NR_USB_REQUEST_I2C_SUB_IO 0x02
-#define NR_USB_REQUEST_CHANNEL 0x12
-
-/* -BULK_SIZE as per usb-skeleton. Can we get full page and avoid overhead? */
-#define BULK_SIZE 512
-#define MAX_TRANSFER (PAGE_SIZE*16 - BULK_SIZE)
-#define WRITES_IN_FLIGHT (4)
-
-#define MAX_VENDOR_DESCRIPTOR_SIZE 256
-
-#define GET_URB_TIMEOUT HZ
-#define FREE_URB_TIMEOUT (HZ*2)
-
-#define BPP 2
-#define MAX_CMD_PIXELS 255
-
-#define RLX_HEADER_BYTES 7
-#define MIN_RLX_PIX_BYTES 4
-#define MIN_RLX_CMD_BYTES (RLX_HEADER_BYTES + MIN_RLX_PIX_BYTES)
-
-#define RLE_HEADER_BYTES 6
-#define MIN_RLE_PIX_BYTES 3
-#define MIN_RLE_CMD_BYTES (RLE_HEADER_BYTES + MIN_RLE_PIX_BYTES)
-
-#define RAW_HEADER_BYTES 6
-#define MIN_RAW_PIX_BYTES 2
-#define MIN_RAW_CMD_BYTES (RAW_HEADER_BYTES + MIN_RAW_PIX_BYTES)
-
-#define DL_DEFIO_WRITE_DELAY 5 /* fb_deferred_io.delay in jiffies */
-#define DL_DEFIO_WRITE_DISABLE (HZ*60) /* "disable" with long delay */
-
-/* remove these once align.h patch is taken into kernel */
-#define DL_ALIGN_UP(x, a) ALIGN(x, a)
-#define DL_ALIGN_DOWN(x, a) ALIGN(x-(a-1), a)
-
-#endif
diff --git a/ANDROID_3.4.5/include/video/uvesafb.h b/ANDROID_3.4.5/include/video/uvesafb.h
deleted file mode 100644
index 0993a220..00000000
--- a/ANDROID_3.4.5/include/video/uvesafb.h
+++ /dev/null
@@ -1,195 +0,0 @@
-#ifndef _UVESAFB_H
-#define _UVESAFB_H
-
-#include <linux/types.h>
-
-struct v86_regs {
- __u32 ebx;
- __u32 ecx;
- __u32 edx;
- __u32 esi;
- __u32 edi;
- __u32 ebp;
- __u32 eax;
- __u32 eip;
- __u32 eflags;
- __u32 esp;
- __u16 cs;
- __u16 ss;
- __u16 es;
- __u16 ds;
- __u16 fs;
- __u16 gs;
-};
-
-/* Task flags */
-#define TF_VBEIB 0x01
-#define TF_BUF_ESDI 0x02
-#define TF_BUF_ESBX 0x04
-#define TF_BUF_RET 0x08
-#define TF_EXIT 0x10
-
-struct uvesafb_task {
- __u8 flags;
- int buf_len;
- struct v86_regs regs;
-};
-
-/* Constants for the capabilities field
- * in vbe_ib */
-#define VBE_CAP_CAN_SWITCH_DAC 0x01
-#define VBE_CAP_VGACOMPAT 0x02
-
-/* The VBE Info Block */
-struct vbe_ib {
- char vbe_signature[4];
- __u16 vbe_version;
- __u32 oem_string_ptr;
- __u32 capabilities;
- __u32 mode_list_ptr;
- __u16 total_memory;
- __u16 oem_software_rev;
- __u32 oem_vendor_name_ptr;
- __u32 oem_product_name_ptr;
- __u32 oem_product_rev_ptr;
- __u8 reserved[222];
- char oem_data[256];
- char misc_data[512];
-} __attribute__ ((packed));
-
-#ifdef __KERNEL__
-
-/* VBE CRTC Info Block */
-struct vbe_crtc_ib {
- u16 horiz_total;
- u16 horiz_start;
- u16 horiz_end;
- u16 vert_total;
- u16 vert_start;
- u16 vert_end;
- u8 flags;
- u32 pixel_clock;
- u16 refresh_rate;
- u8 reserved[40];
-} __attribute__ ((packed));
-
-#define VBE_MODE_VGACOMPAT 0x20
-#define VBE_MODE_COLOR 0x08
-#define VBE_MODE_SUPPORTEDHW 0x01
-#define VBE_MODE_GRAPHICS 0x10
-#define VBE_MODE_LFB 0x80
-
-#define VBE_MODE_MASK (VBE_MODE_COLOR | VBE_MODE_SUPPORTEDHW | \
- VBE_MODE_GRAPHICS | VBE_MODE_LFB)
-
-/* VBE Mode Info Block */
-struct vbe_mode_ib {
- /* for all VBE revisions */
- u16 mode_attr;
- u8 winA_attr;
- u8 winB_attr;
- u16 win_granularity;
- u16 win_size;
- u16 winA_seg;
- u16 winB_seg;
- u32 win_func_ptr;
- u16 bytes_per_scan_line;
-
- /* for VBE 1.2+ */
- u16 x_res;
- u16 y_res;
- u8 x_char_size;
- u8 y_char_size;
- u8 planes;
- u8 bits_per_pixel;
- u8 banks;
- u8 memory_model;
- u8 bank_size;
- u8 image_pages;
- u8 reserved1;
-
- /* Direct color fields for direct/6 and YUV/7 memory models. */
- /* Offsets are bit positions of lsb in the mask. */
- u8 red_len;
- u8 red_off;
- u8 green_len;
- u8 green_off;
- u8 blue_len;
- u8 blue_off;
- u8 rsvd_len;
- u8 rsvd_off;
- u8 direct_color_info; /* direct color mode attributes */
-
- /* for VBE 2.0+ */
- u32 phys_base_ptr;
- u8 reserved2[6];
-
- /* for VBE 3.0+ */
- u16 lin_bytes_per_scan_line;
- u8 bnk_image_pages;
- u8 lin_image_pages;
- u8 lin_red_len;
- u8 lin_red_off;
- u8 lin_green_len;
- u8 lin_green_off;
- u8 lin_blue_len;
- u8 lin_blue_off;
- u8 lin_rsvd_len;
- u8 lin_rsvd_off;
- u32 max_pixel_clock;
- u16 mode_id;
- u8 depth;
-} __attribute__ ((packed));
-
-#define UVESAFB_DEFAULT_MODE "640x480-16"
-
-/* How long to wait for a reply from userspace [ms] */
-#define UVESAFB_TIMEOUT 5000
-
-/* Max number of concurrent tasks */
-#define UVESAFB_TASKS_MAX 16
-
-#define dac_reg (0x3c8)
-#define dac_val (0x3c9)
-
-struct uvesafb_pal_entry {
- u_char blue, green, red, pad;
-} __attribute__ ((packed));
-
-struct uvesafb_ktask {
- struct uvesafb_task t;
- void *buf;
- struct completion *done;
- u32 ack;
-};
-
-static int uvesafb_exec(struct uvesafb_ktask *tsk);
-
-#define UVESAFB_EXACT_RES 1
-#define UVESAFB_EXACT_DEPTH 2
-
-struct uvesafb_par {
- struct vbe_ib vbe_ib; /* VBE Info Block */
- struct vbe_mode_ib *vbe_modes; /* list of supported VBE modes */
- int vbe_modes_cnt;
-
- u8 nocrtc;
- u8 ypan; /* 0 - nothing, 1 - ypan, 2 - ywrap */
- u8 pmi_setpal; /* PMI for palette changes */
- u16 *pmi_base; /* protected mode interface location */
- void *pmi_start;
- void *pmi_pal;
- u8 *vbe_state_orig; /*
- * original hardware state, before the
- * driver was loaded
- */
- u8 *vbe_state_saved; /* state saved by fb_save_state */
- int vbe_state_size;
- atomic_t ref_count;
-
- int mode_idx;
- struct vbe_crtc_ib crtc;
-};
-
-#endif /* __KERNEL__ */
-#endif /* _UVESAFB_H */
diff --git a/ANDROID_3.4.5/include/video/vga.h b/ANDROID_3.4.5/include/video/vga.h
deleted file mode 100644
index 2b8691f7..00000000
--- a/ANDROID_3.4.5/include/video/vga.h
+++ /dev/null
@@ -1,481 +0,0 @@
-/*
- * linux/include/video/vga.h -- standard VGA chipset interaction
- *
- * Copyright 1999 Jeff Garzik <jgarzik@pobox.com>
- *
- * Copyright history from vga16fb.c:
- * Copyright 1999 Ben Pfaff and Petr Vandrovec
- * Based on VGA info at http://www.osdever.net/FreeVGA/home.htm
- * Based on VESA framebuffer (c) 1998 Gerd Knorr
- *
- * This file is subject to the terms and conditions of the GNU General
- * Public License. See the file COPYING in the main directory of this
- * archive for more details.
- *
- */
-
-#ifndef __linux_video_vga_h__
-#define __linux_video_vga_h__
-
-#include <linux/types.h>
-#include <asm/io.h>
-#ifndef CONFIG_AMIGA
-#include <asm/vga.h>
-#else
-/*
- * FIXME
- * Ugh, we don't have PCI space, so map readb() and friends to use Zorro space
- * for MMIO accesses. This should make cirrusfb work again on Amiga
- */
-#undef inb_p
-#undef inw_p
-#undef outb_p
-#undef outw
-#undef readb
-#undef writeb
-#undef writew
-#define inb_p(port) 0
-#define inw_p(port) 0
-#define outb_p(port, val) do { } while (0)
-#define outw(port, val) do { } while (0)
-#define readb z_readb
-#define writeb z_writeb
-#define writew z_writew
-#endif
-#include <asm/byteorder.h>
-
-
-/* Some of the code below is taken from SVGAlib. The original,
- unmodified copyright notice for that code is below. */
-/* VGAlib version 1.2 - (c) 1993 Tommy Frandsen */
-/* */
-/* This library is free software; you can redistribute it and/or */
-/* modify it without any restrictions. This library is distributed */
-/* in the hope that it will be useful, but without any warranty. */
-
-/* Multi-chipset support Copyright 1993 Harm Hanemaayer */
-/* partially copyrighted (C) 1993 by Hartmut Schirmer */
-
-/* VGA data register ports */
-#define VGA_CRT_DC 0x3D5 /* CRT Controller Data Register - color emulation */
-#define VGA_CRT_DM 0x3B5 /* CRT Controller Data Register - mono emulation */
-#define VGA_ATT_R 0x3C1 /* Attribute Controller Data Read Register */
-#define VGA_ATT_W 0x3C0 /* Attribute Controller Data Write Register */
-#define VGA_GFX_D 0x3CF /* Graphics Controller Data Register */
-#define VGA_SEQ_D 0x3C5 /* Sequencer Data Register */
-#define VGA_MIS_R 0x3CC /* Misc Output Read Register */
-#define VGA_MIS_W 0x3C2 /* Misc Output Write Register */
-#define VGA_FTC_R 0x3CA /* Feature Control Read Register */
-#define VGA_IS1_RC 0x3DA /* Input Status Register 1 - color emulation */
-#define VGA_IS1_RM 0x3BA /* Input Status Register 1 - mono emulation */
-#define VGA_PEL_D 0x3C9 /* PEL Data Register */
-#define VGA_PEL_MSK 0x3C6 /* PEL mask register */
-
-/* EGA-specific registers */
-#define EGA_GFX_E0 0x3CC /* Graphics enable processor 0 */
-#define EGA_GFX_E1 0x3CA /* Graphics enable processor 1 */
-
-/* VGA index register ports */
-#define VGA_CRT_IC 0x3D4 /* CRT Controller Index - color emulation */
-#define VGA_CRT_IM 0x3B4 /* CRT Controller Index - mono emulation */
-#define VGA_ATT_IW 0x3C0 /* Attribute Controller Index & Data Write Register */
-#define VGA_GFX_I 0x3CE /* Graphics Controller Index */
-#define VGA_SEQ_I 0x3C4 /* Sequencer Index */
-#define VGA_PEL_IW 0x3C8 /* PEL Write Index */
-#define VGA_PEL_IR 0x3C7 /* PEL Read Index */
-
-/* standard VGA indexes max counts */
-#define VGA_CRT_C 0x19 /* Number of CRT Controller Registers */
-#define VGA_ATT_C 0x15 /* Number of Attribute Controller Registers */
-#define VGA_GFX_C 0x09 /* Number of Graphics Controller Registers */
-#define VGA_SEQ_C 0x05 /* Number of Sequencer Registers */
-#define VGA_MIS_C 0x01 /* Number of Misc Output Register */
-
-/* VGA misc register bit masks */
-#define VGA_MIS_COLOR 0x01
-#define VGA_MIS_ENB_MEM_ACCESS 0x02
-#define VGA_MIS_DCLK_28322_720 0x04
-#define VGA_MIS_ENB_PLL_LOAD (0x04 | 0x08)
-#define VGA_MIS_SEL_HIGH_PAGE 0x20
-
-/* VGA CRT controller register indices */
-#define VGA_CRTC_H_TOTAL 0
-#define VGA_CRTC_H_DISP 1
-#define VGA_CRTC_H_BLANK_START 2
-#define VGA_CRTC_H_BLANK_END 3
-#define VGA_CRTC_H_SYNC_START 4
-#define VGA_CRTC_H_SYNC_END 5
-#define VGA_CRTC_V_TOTAL 6
-#define VGA_CRTC_OVERFLOW 7
-#define VGA_CRTC_PRESET_ROW 8
-#define VGA_CRTC_MAX_SCAN 9
-#define VGA_CRTC_CURSOR_START 0x0A
-#define VGA_CRTC_CURSOR_END 0x0B
-#define VGA_CRTC_START_HI 0x0C
-#define VGA_CRTC_START_LO 0x0D
-#define VGA_CRTC_CURSOR_HI 0x0E
-#define VGA_CRTC_CURSOR_LO 0x0F
-#define VGA_CRTC_V_SYNC_START 0x10
-#define VGA_CRTC_V_SYNC_END 0x11
-#define VGA_CRTC_V_DISP_END 0x12
-#define VGA_CRTC_OFFSET 0x13
-#define VGA_CRTC_UNDERLINE 0x14
-#define VGA_CRTC_V_BLANK_START 0x15
-#define VGA_CRTC_V_BLANK_END 0x16
-#define VGA_CRTC_MODE 0x17
-#define VGA_CRTC_LINE_COMPARE 0x18
-#define VGA_CRTC_REGS VGA_CRT_C
-
-/* VGA CRT controller bit masks */
-#define VGA_CR11_LOCK_CR0_CR7 0x80 /* lock writes to CR0 - CR7 */
-#define VGA_CR17_H_V_SIGNALS_ENABLED 0x80
-
-/* VGA attribute controller register indices */
-#define VGA_ATC_PALETTE0 0x00
-#define VGA_ATC_PALETTE1 0x01
-#define VGA_ATC_PALETTE2 0x02
-#define VGA_ATC_PALETTE3 0x03
-#define VGA_ATC_PALETTE4 0x04
-#define VGA_ATC_PALETTE5 0x05
-#define VGA_ATC_PALETTE6 0x06
-#define VGA_ATC_PALETTE7 0x07
-#define VGA_ATC_PALETTE8 0x08
-#define VGA_ATC_PALETTE9 0x09
-#define VGA_ATC_PALETTEA 0x0A
-#define VGA_ATC_PALETTEB 0x0B
-#define VGA_ATC_PALETTEC 0x0C
-#define VGA_ATC_PALETTED 0x0D
-#define VGA_ATC_PALETTEE 0x0E
-#define VGA_ATC_PALETTEF 0x0F
-#define VGA_ATC_MODE 0x10
-#define VGA_ATC_OVERSCAN 0x11
-#define VGA_ATC_PLANE_ENABLE 0x12
-#define VGA_ATC_PEL 0x13
-#define VGA_ATC_COLOR_PAGE 0x14
-
-#define VGA_AR_ENABLE_DISPLAY 0x20
-
-/* VGA sequencer register indices */
-#define VGA_SEQ_RESET 0x00
-#define VGA_SEQ_CLOCK_MODE 0x01
-#define VGA_SEQ_PLANE_WRITE 0x02
-#define VGA_SEQ_CHARACTER_MAP 0x03
-#define VGA_SEQ_MEMORY_MODE 0x04
-
-/* VGA sequencer register bit masks */
-#define VGA_SR01_CHAR_CLK_8DOTS 0x01 /* bit 0: character clocks 8 dots wide are generated */
-#define VGA_SR01_SCREEN_OFF 0x20 /* bit 5: Screen is off */
-#define VGA_SR02_ALL_PLANES 0x0F /* bits 3-0: enable access to all planes */
-#define VGA_SR04_EXT_MEM 0x02 /* bit 1: allows complete mem access to 256K */
-#define VGA_SR04_SEQ_MODE 0x04 /* bit 2: directs system to use a sequential addressing mode */
-#define VGA_SR04_CHN_4M 0x08 /* bit 3: selects modulo 4 addressing for CPU access to display memory */
-
-/* VGA graphics controller register indices */
-#define VGA_GFX_SR_VALUE 0x00
-#define VGA_GFX_SR_ENABLE 0x01
-#define VGA_GFX_COMPARE_VALUE 0x02
-#define VGA_GFX_DATA_ROTATE 0x03
-#define VGA_GFX_PLANE_READ 0x04
-#define VGA_GFX_MODE 0x05
-#define VGA_GFX_MISC 0x06
-#define VGA_GFX_COMPARE_MASK 0x07
-#define VGA_GFX_BIT_MASK 0x08
-
-/* VGA graphics controller bit masks */
-#define VGA_GR06_GRAPHICS_MODE 0x01
-
-/* macro for composing an 8-bit VGA register index and value
- * into a single 16-bit quantity */
-#define VGA_OUT16VAL(v, r) (((v) << 8) | (r))
-
-/* decide whether we should enable the faster 16-bit VGA register writes */
-#ifdef __LITTLE_ENDIAN
-#define VGA_OUTW_WRITE
-#endif
-
-/* VGA State Save and Restore */
-#define VGA_SAVE_FONT0 1 /* save/restore plane 2 fonts */
-#define VGA_SAVE_FONT1 2 /* save/restore plane 3 fonts */
-#define VGA_SAVE_TEXT 4 /* save/restore plane 0/1 fonts */
-#define VGA_SAVE_FONTS 7 /* save/restore all fonts */
-#define VGA_SAVE_MODE 8 /* save/restore video mode */
-#define VGA_SAVE_CMAP 16 /* save/restore color map/DAC */
-
-struct vgastate {
- void __iomem *vgabase; /* mmio base, if supported */
- unsigned long membase; /* VGA window base, 0 for default - 0xA000 */
- __u32 memsize; /* VGA window size, 0 for default 64K */
- __u32 flags; /* what state[s] to save (see VGA_SAVE_*) */
- __u32 depth; /* current fb depth, not important */
- __u32 num_attr; /* number of att registers, 0 for default */
- __u32 num_crtc; /* number of crt registers, 0 for default */
- __u32 num_gfx; /* number of gfx registers, 0 for default */
- __u32 num_seq; /* number of seq registers, 0 for default */
- void *vidstate;
-};
-
-extern int save_vga(struct vgastate *state);
-extern int restore_vga(struct vgastate *state);
-
-/*
- * generic VGA port read/write
- */
-
-static inline unsigned char vga_io_r (unsigned short port)
-{
- return inb_p(port);
-}
-
-static inline void vga_io_w (unsigned short port, unsigned char val)
-{
- outb_p(val, port);
-}
-
-static inline void vga_io_w_fast (unsigned short port, unsigned char reg,
- unsigned char val)
-{
- outw(VGA_OUT16VAL (val, reg), port);
-}
-
-static inline unsigned char vga_mm_r (void __iomem *regbase, unsigned short port)
-{
- return readb (regbase + port);
-}
-
-static inline void vga_mm_w (void __iomem *regbase, unsigned short port, unsigned char val)
-{
- writeb (val, regbase + port);
-}
-
-static inline void vga_mm_w_fast (void __iomem *regbase, unsigned short port,
- unsigned char reg, unsigned char val)
-{
- writew (VGA_OUT16VAL (val, reg), regbase + port);
-}
-
-static inline unsigned char vga_r (void __iomem *regbase, unsigned short port)
-{
- if (regbase)
- return vga_mm_r (regbase, port);
- else
- return vga_io_r (port);
-}
-
-static inline void vga_w (void __iomem *regbase, unsigned short port, unsigned char val)
-{
- if (regbase)
- vga_mm_w (regbase, port, val);
- else
- vga_io_w (port, val);
-}
-
-
-static inline void vga_w_fast (void __iomem *regbase, unsigned short port,
- unsigned char reg, unsigned char val)
-{
- if (regbase)
- vga_mm_w_fast (regbase, port, reg, val);
- else
- vga_io_w_fast (port, reg, val);
-}
-
-
-/*
- * VGA CRTC register read/write
- */
-
-static inline unsigned char vga_rcrt (void __iomem *regbase, unsigned char reg)
-{
- vga_w (regbase, VGA_CRT_IC, reg);
- return vga_r (regbase, VGA_CRT_DC);
-}
-
-static inline void vga_wcrt (void __iomem *regbase, unsigned char reg, unsigned char val)
-{
-#ifdef VGA_OUTW_WRITE
- vga_w_fast (regbase, VGA_CRT_IC, reg, val);
-#else
- vga_w (regbase, VGA_CRT_IC, reg);
- vga_w (regbase, VGA_CRT_DC, val);
-#endif /* VGA_OUTW_WRITE */
-}
-
-static inline unsigned char vga_io_rcrt (unsigned char reg)
-{
- vga_io_w (VGA_CRT_IC, reg);
- return vga_io_r (VGA_CRT_DC);
-}
-
-static inline void vga_io_wcrt (unsigned char reg, unsigned char val)
-{
-#ifdef VGA_OUTW_WRITE
- vga_io_w_fast (VGA_CRT_IC, reg, val);
-#else
- vga_io_w (VGA_CRT_IC, reg);
- vga_io_w (VGA_CRT_DC, val);
-#endif /* VGA_OUTW_WRITE */
-}
-
-static inline unsigned char vga_mm_rcrt (void __iomem *regbase, unsigned char reg)
-{
- vga_mm_w (regbase, VGA_CRT_IC, reg);
- return vga_mm_r (regbase, VGA_CRT_DC);
-}
-
-static inline void vga_mm_wcrt (void __iomem *regbase, unsigned char reg, unsigned char val)
-{
-#ifdef VGA_OUTW_WRITE
- vga_mm_w_fast (regbase, VGA_CRT_IC, reg, val);
-#else
- vga_mm_w (regbase, VGA_CRT_IC, reg);
- vga_mm_w (regbase, VGA_CRT_DC, val);
-#endif /* VGA_OUTW_WRITE */
-}
-
-
-/*
- * VGA sequencer register read/write
- */
-
-static inline unsigned char vga_rseq (void __iomem *regbase, unsigned char reg)
-{
- vga_w (regbase, VGA_SEQ_I, reg);
- return vga_r (regbase, VGA_SEQ_D);
-}
-
-static inline void vga_wseq (void __iomem *regbase, unsigned char reg, unsigned char val)
-{
-#ifdef VGA_OUTW_WRITE
- vga_w_fast (regbase, VGA_SEQ_I, reg, val);
-#else
- vga_w (regbase, VGA_SEQ_I, reg);
- vga_w (regbase, VGA_SEQ_D, val);
-#endif /* VGA_OUTW_WRITE */
-}
-
-static inline unsigned char vga_io_rseq (unsigned char reg)
-{
- vga_io_w (VGA_SEQ_I, reg);
- return vga_io_r (VGA_SEQ_D);
-}
-
-static inline void vga_io_wseq (unsigned char reg, unsigned char val)
-{
-#ifdef VGA_OUTW_WRITE
- vga_io_w_fast (VGA_SEQ_I, reg, val);
-#else
- vga_io_w (VGA_SEQ_I, reg);
- vga_io_w (VGA_SEQ_D, val);
-#endif /* VGA_OUTW_WRITE */
-}
-
-static inline unsigned char vga_mm_rseq (void __iomem *regbase, unsigned char reg)
-{
- vga_mm_w (regbase, VGA_SEQ_I, reg);
- return vga_mm_r (regbase, VGA_SEQ_D);
-}
-
-static inline void vga_mm_wseq (void __iomem *regbase, unsigned char reg, unsigned char val)
-{
-#ifdef VGA_OUTW_WRITE
- vga_mm_w_fast (regbase, VGA_SEQ_I, reg, val);
-#else
- vga_mm_w (regbase, VGA_SEQ_I, reg);
- vga_mm_w (regbase, VGA_SEQ_D, val);
-#endif /* VGA_OUTW_WRITE */
-}
-
-/*
- * VGA graphics controller register read/write
- */
-
-static inline unsigned char vga_rgfx (void __iomem *regbase, unsigned char reg)
-{
- vga_w (regbase, VGA_GFX_I, reg);
- return vga_r (regbase, VGA_GFX_D);
-}
-
-static inline void vga_wgfx (void __iomem *regbase, unsigned char reg, unsigned char val)
-{
-#ifdef VGA_OUTW_WRITE
- vga_w_fast (regbase, VGA_GFX_I, reg, val);
-#else
- vga_w (regbase, VGA_GFX_I, reg);
- vga_w (regbase, VGA_GFX_D, val);
-#endif /* VGA_OUTW_WRITE */
-}
-
-static inline unsigned char vga_io_rgfx (unsigned char reg)
-{
- vga_io_w (VGA_GFX_I, reg);
- return vga_io_r (VGA_GFX_D);
-}
-
-static inline void vga_io_wgfx (unsigned char reg, unsigned char val)
-{
-#ifdef VGA_OUTW_WRITE
- vga_io_w_fast (VGA_GFX_I, reg, val);
-#else
- vga_io_w (VGA_GFX_I, reg);
- vga_io_w (VGA_GFX_D, val);
-#endif /* VGA_OUTW_WRITE */
-}
-
-static inline unsigned char vga_mm_rgfx (void __iomem *regbase, unsigned char reg)
-{
- vga_mm_w (regbase, VGA_GFX_I, reg);
- return vga_mm_r (regbase, VGA_GFX_D);
-}
-
-static inline void vga_mm_wgfx (void __iomem *regbase, unsigned char reg, unsigned char val)
-{
-#ifdef VGA_OUTW_WRITE
- vga_mm_w_fast (regbase, VGA_GFX_I, reg, val);
-#else
- vga_mm_w (regbase, VGA_GFX_I, reg);
- vga_mm_w (regbase, VGA_GFX_D, val);
-#endif /* VGA_OUTW_WRITE */
-}
-
-
-/*
- * VGA attribute controller register read/write
- */
-
-static inline unsigned char vga_rattr (void __iomem *regbase, unsigned char reg)
-{
- vga_w (regbase, VGA_ATT_IW, reg);
- return vga_r (regbase, VGA_ATT_R);
-}
-
-static inline void vga_wattr (void __iomem *regbase, unsigned char reg, unsigned char val)
-{
- vga_w (regbase, VGA_ATT_IW, reg);
- vga_w (regbase, VGA_ATT_W, val);
-}
-
-static inline unsigned char vga_io_rattr (unsigned char reg)
-{
- vga_io_w (VGA_ATT_IW, reg);
- return vga_io_r (VGA_ATT_R);
-}
-
-static inline void vga_io_wattr (unsigned char reg, unsigned char val)
-{
- vga_io_w (VGA_ATT_IW, reg);
- vga_io_w (VGA_ATT_W, val);
-}
-
-static inline unsigned char vga_mm_rattr (void __iomem *regbase, unsigned char reg)
-{
- vga_mm_w (regbase, VGA_ATT_IW, reg);
- return vga_mm_r (regbase, VGA_ATT_R);
-}
-
-static inline void vga_mm_wattr (void __iomem *regbase, unsigned char reg, unsigned char val)
-{
- vga_mm_w (regbase, VGA_ATT_IW, reg);
- vga_mm_w (regbase, VGA_ATT_W, val);
-}
-
-#endif /* __linux_video_vga_h__ */
diff --git a/ANDROID_3.4.5/include/video/w100fb.h b/ANDROID_3.4.5/include/video/w100fb.h
deleted file mode 100644
index 677d4032..00000000
--- a/ANDROID_3.4.5/include/video/w100fb.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Support for the w100 frame buffer.
- *
- * Copyright (c) 2004-2005 Richard Purdie
- * Copyright (c) 2005 Ian Molton
- *
- * 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.
- */
-
-#define W100_GPIO_PORT_A 0
-#define W100_GPIO_PORT_B 1
-
-#define CLK_SRC_XTAL 0
-#define CLK_SRC_PLL 1
-
-struct w100fb_par;
-
-unsigned long w100fb_gpio_read(int port);
-void w100fb_gpio_write(int port, unsigned long value);
-unsigned long w100fb_get_hsynclen(struct device *dev);
-
-/* LCD Specific Routines and Config */
-struct w100_tg_info {
- void (*change)(struct w100fb_par*);
- void (*suspend)(struct w100fb_par*);
- void (*resume)(struct w100fb_par*);
-};
-
-/* General Platform Specific w100 Register Values */
-struct w100_gen_regs {
- unsigned long lcd_format;
- unsigned long lcdd_cntl1;
- unsigned long lcdd_cntl2;
- unsigned long genlcd_cntl1;
- unsigned long genlcd_cntl2;
- unsigned long genlcd_cntl3;
-};
-
-struct w100_gpio_regs {
- unsigned long init_data1;
- unsigned long init_data2;
- unsigned long gpio_dir1;
- unsigned long gpio_oe1;
- unsigned long gpio_dir2;
- unsigned long gpio_oe2;
-};
-
-/* Optional External Memory Configuration */
-struct w100_mem_info {
- unsigned long ext_cntl;
- unsigned long sdram_mode_reg;
- unsigned long ext_timing_cntl;
- unsigned long io_cntl;
- unsigned int size;
-};
-
-struct w100_bm_mem_info {
- unsigned long ext_mem_bw;
- unsigned long offset;
- unsigned long ext_timing_ctl;
- unsigned long ext_cntl;
- unsigned long mode_reg;
- unsigned long io_cntl;
- unsigned long config;
-};
-
-/* LCD Mode definition */
-struct w100_mode {
- unsigned int xres;
- unsigned int yres;
- unsigned short left_margin;
- unsigned short right_margin;
- unsigned short upper_margin;
- unsigned short lower_margin;
- unsigned long crtc_ss;
- unsigned long crtc_ls;
- unsigned long crtc_gs;
- unsigned long crtc_vpos_gs;
- unsigned long crtc_rev;
- unsigned long crtc_dclk;
- unsigned long crtc_gclk;
- unsigned long crtc_goe;
- unsigned long crtc_ps1_active;
- char pll_freq;
- char fast_pll_freq;
- int sysclk_src;
- int sysclk_divider;
- int pixclk_src;
- int pixclk_divider;
- int pixclk_divider_rotated;
-};
-
-struct w100_pll_info {
- uint16_t freq; /* desired Fout for PLL (Mhz) */
- uint8_t M; /* input divider */
- uint8_t N_int; /* VCO multiplier */
- uint8_t N_fac; /* VCO multiplier fractional part */
- uint8_t tfgoal;
- uint8_t lock_time;
-};
-
-/* Initial Video mode orientation flags */
-#define INIT_MODE_ROTATED 0x1
-#define INIT_MODE_FLIPPED 0x2
-
-/*
- * This structure describes the machine which we are running on.
- * It is set by machine specific code and used in the probe routine
- * of drivers/video/w100fb.c
- */
-struct w100fb_mach_info {
- /* General Platform Specific Registers */
- struct w100_gen_regs *regs;
- /* Table of modes the LCD is capable of */
- struct w100_mode *modelist;
- unsigned int num_modes;
- /* Hooks for any platform specific tg/lcd code (optional) */
- struct w100_tg_info *tg;
- /* External memory definition (if present) */
- struct w100_mem_info *mem;
- /* Additional External memory definition (if present) */
- struct w100_bm_mem_info *bm_mem;
- /* GPIO definitions (optional) */
- struct w100_gpio_regs *gpio;
- /* Initial Mode flags */
- unsigned int init_mode;
- /* Xtal Frequency */
- unsigned int xtal_freq;
- /* Enable Xtal input doubler (1 == enable) */
- unsigned int xtal_dbl;
-};
-
-/* General frame buffer data structure */
-struct w100fb_par {
- unsigned int chip_id;
- unsigned int xres;
- unsigned int yres;
- unsigned int extmem_active;
- unsigned int flip;
- unsigned int blanked;
- unsigned int fastpll_mode;
- unsigned long hsync_len;
- struct w100_mode *mode;
- struct w100_pll_info *pll_table;
- struct w100fb_mach_info *mach;
- uint32_t *saved_intmem;
- uint32_t *saved_extmem;
-};
diff --git a/ANDROID_3.4.5/include/xen/Kbuild b/ANDROID_3.4.5/include/xen/Kbuild
deleted file mode 100644
index 84ad8f02..00000000
--- a/ANDROID_3.4.5/include/xen/Kbuild
+++ /dev/null
@@ -1,2 +0,0 @@
-header-y += evtchn.h
-header-y += privcmd.h
diff --git a/ANDROID_3.4.5/include/xen/balloon.h b/ANDROID_3.4.5/include/xen/balloon.h
deleted file mode 100644
index cc2e1a7e..00000000
--- a/ANDROID_3.4.5/include/xen/balloon.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/******************************************************************************
- * Xen balloon functionality
- */
-
-#define RETRY_UNLIMITED 0
-
-struct balloon_stats {
- /* We aim for 'current allocation' == 'target allocation'. */
- unsigned long current_pages;
- unsigned long target_pages;
- /* Number of pages in high- and low-memory balloons. */
- unsigned long balloon_low;
- unsigned long balloon_high;
- unsigned long schedule_delay;
- unsigned long max_schedule_delay;
- unsigned long retry_count;
- unsigned long max_retry_count;
-#ifdef CONFIG_XEN_BALLOON_MEMORY_HOTPLUG
- unsigned long hotplug_pages;
- unsigned long balloon_hotplug;
-#endif
-};
-
-extern struct balloon_stats balloon_stats;
-
-void balloon_set_new_target(unsigned long target);
-
-int alloc_xenballooned_pages(int nr_pages, struct page **pages,
- bool highmem);
-void free_xenballooned_pages(int nr_pages, struct page **pages);
-
-struct device;
-#ifdef CONFIG_XEN_SELFBALLOONING
-extern int register_xen_selfballooning(struct device *dev);
-#else
-static inline int register_xen_selfballooning(struct device *dev)
-{
- return -ENOSYS;
-}
-#endif
diff --git a/ANDROID_3.4.5/include/xen/events.h b/ANDROID_3.4.5/include/xen/events.h
deleted file mode 100644
index 04399b28..00000000
--- a/ANDROID_3.4.5/include/xen/events.h
+++ /dev/null
@@ -1,112 +0,0 @@
-#ifndef _XEN_EVENTS_H
-#define _XEN_EVENTS_H
-
-#include <linux/interrupt.h>
-
-#include <xen/interface/event_channel.h>
-#include <asm/xen/hypercall.h>
-#include <asm/xen/events.h>
-
-int bind_evtchn_to_irq(unsigned int evtchn);
-int bind_evtchn_to_irqhandler(unsigned int evtchn,
- irq_handler_t handler,
- unsigned long irqflags, const char *devname,
- void *dev_id);
-int bind_virq_to_irq(unsigned int virq, unsigned int cpu);
-int bind_virq_to_irqhandler(unsigned int virq, unsigned int cpu,
- irq_handler_t handler,
- unsigned long irqflags, const char *devname,
- void *dev_id);
-int bind_ipi_to_irqhandler(enum ipi_vector ipi,
- unsigned int cpu,
- irq_handler_t handler,
- unsigned long irqflags,
- const char *devname,
- void *dev_id);
-int bind_interdomain_evtchn_to_irqhandler(unsigned int remote_domain,
- unsigned int remote_port,
- irq_handler_t handler,
- unsigned long irqflags,
- const char *devname,
- void *dev_id);
-
-/*
- * Common unbind function for all event sources. Takes IRQ to unbind from.
- * Automatically closes the underlying event channel (even for bindings
- * made with bind_evtchn_to_irqhandler()).
- */
-void unbind_from_irqhandler(unsigned int irq, void *dev_id);
-
-/*
- * Allow extra references to event channels exposed to userspace by evtchn
- */
-int evtchn_make_refcounted(unsigned int evtchn);
-int evtchn_get(unsigned int evtchn);
-void evtchn_put(unsigned int evtchn);
-
-void xen_send_IPI_one(unsigned int cpu, enum ipi_vector vector);
-int resend_irq_on_evtchn(unsigned int irq);
-void rebind_evtchn_irq(int evtchn, int irq);
-
-static inline void notify_remote_via_evtchn(int port)
-{
- struct evtchn_send send = { .port = port };
- (void)HYPERVISOR_event_channel_op(EVTCHNOP_send, &send);
-}
-
-void notify_remote_via_irq(int irq);
-
-void xen_irq_resume(void);
-
-/* Clear an irq's pending state, in preparation for polling on it */
-void xen_clear_irq_pending(int irq);
-void xen_set_irq_pending(int irq);
-bool xen_test_irq_pending(int irq);
-
-/* Poll waiting for an irq to become pending. In the usual case, the
- irq will be disabled so it won't deliver an interrupt. */
-void xen_poll_irq(int irq);
-
-/* Poll waiting for an irq to become pending with a timeout. In the usual case,
- * the irq will be disabled so it won't deliver an interrupt. */
-void xen_poll_irq_timeout(int irq, u64 timeout);
-
-/* Determine the IRQ which is bound to an event channel */
-unsigned irq_from_evtchn(unsigned int evtchn);
-
-/* Xen HVM evtchn vector callback */
-void xen_hvm_callback_vector(void);
-extern int xen_have_vector_callback;
-int xen_set_callback_via(uint64_t via);
-void xen_evtchn_do_upcall(struct pt_regs *regs);
-void xen_hvm_evtchn_do_upcall(void);
-
-/* Bind a pirq for a physical interrupt to an irq. */
-int xen_bind_pirq_gsi_to_irq(unsigned gsi,
- unsigned pirq, int shareable, char *name);
-
-#ifdef CONFIG_PCI_MSI
-/* Allocate a pirq for a MSI style physical interrupt. */
-int xen_allocate_pirq_msi(struct pci_dev *dev, struct msi_desc *msidesc);
-/* Bind an PSI pirq to an irq. */
-int xen_bind_pirq_msi_to_irq(struct pci_dev *dev, struct msi_desc *msidesc,
- int pirq, int vector, const char *name,
- domid_t domid);
-#endif
-
-/* De-allocates the above mentioned physical interrupt. */
-int xen_destroy_irq(int irq);
-
-/* Return irq from pirq */
-int xen_irq_from_pirq(unsigned pirq);
-
-/* Return the pirq allocated to the irq. */
-int xen_pirq_from_irq(unsigned irq);
-
-/* Return the irq allocated to the gsi */
-int xen_irq_from_gsi(unsigned gsi);
-
-/* Determine whether to ignore this IRQ if it is passed to a guest. */
-int xen_test_irq_shared(int irq);
-
-#endif /* _XEN_EVENTS_H */
diff --git a/ANDROID_3.4.5/include/xen/evtchn.h b/ANDROID_3.4.5/include/xen/evtchn.h
deleted file mode 100644
index 14e833ee..00000000
--- a/ANDROID_3.4.5/include/xen/evtchn.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/******************************************************************************
- * evtchn.h
- *
- * Interface to /dev/xen/evtchn.
- *
- * Copyright (c) 2003-2005, K A Fraser
- *
- * 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; or, when distributed
- * separately from the Linux kernel or incorporated into other
- * software packages, subject to the following license:
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this source file (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use, copy, modify,
- * merge, publish, distribute, sublicense, and/or sell copies of the Software,
- * and to permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-
-#ifndef __LINUX_PUBLIC_EVTCHN_H__
-#define __LINUX_PUBLIC_EVTCHN_H__
-
-/*
- * Bind a fresh port to VIRQ @virq.
- * Return allocated port.
- */
-#define IOCTL_EVTCHN_BIND_VIRQ \
- _IOC(_IOC_NONE, 'E', 0, sizeof(struct ioctl_evtchn_bind_virq))
-struct ioctl_evtchn_bind_virq {
- unsigned int virq;
-};
-
-/*
- * Bind a fresh port to remote <@remote_domain, @remote_port>.
- * Return allocated port.
- */
-#define IOCTL_EVTCHN_BIND_INTERDOMAIN \
- _IOC(_IOC_NONE, 'E', 1, sizeof(struct ioctl_evtchn_bind_interdomain))
-struct ioctl_evtchn_bind_interdomain {
- unsigned int remote_domain, remote_port;
-};
-
-/*
- * Allocate a fresh port for binding to @remote_domain.
- * Return allocated port.
- */
-#define IOCTL_EVTCHN_BIND_UNBOUND_PORT \
- _IOC(_IOC_NONE, 'E', 2, sizeof(struct ioctl_evtchn_bind_unbound_port))
-struct ioctl_evtchn_bind_unbound_port {
- unsigned int remote_domain;
-};
-
-/*
- * Unbind previously allocated @port.
- */
-#define IOCTL_EVTCHN_UNBIND \
- _IOC(_IOC_NONE, 'E', 3, sizeof(struct ioctl_evtchn_unbind))
-struct ioctl_evtchn_unbind {
- unsigned int port;
-};
-
-/*
- * Unbind previously allocated @port.
- */
-#define IOCTL_EVTCHN_NOTIFY \
- _IOC(_IOC_NONE, 'E', 4, sizeof(struct ioctl_evtchn_notify))
-struct ioctl_evtchn_notify {
- unsigned int port;
-};
-
-/* Clear and reinitialise the event buffer. Clear error condition. */
-#define IOCTL_EVTCHN_RESET \
- _IOC(_IOC_NONE, 'E', 5, 0)
-
-#endif /* __LINUX_PUBLIC_EVTCHN_H__ */
diff --git a/ANDROID_3.4.5/include/xen/features.h b/ANDROID_3.4.5/include/xen/features.h
deleted file mode 100644
index 27292d4d..00000000
--- a/ANDROID_3.4.5/include/xen/features.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/******************************************************************************
- * features.h
- *
- * Query the features reported by Xen.
- *
- * Copyright (c) 2006, Ian Campbell
- */
-
-#ifndef __XEN_FEATURES_H__
-#define __XEN_FEATURES_H__
-
-#include <xen/interface/features.h>
-
-void xen_setup_features(void);
-
-extern u8 xen_features[XENFEAT_NR_SUBMAPS * 32];
-
-static inline int xen_feature(int flag)
-{
- return xen_features[flag];
-}
-
-#endif /* __ASM_XEN_FEATURES_H__ */
diff --git a/ANDROID_3.4.5/include/xen/gntalloc.h b/ANDROID_3.4.5/include/xen/gntalloc.h
deleted file mode 100644
index 76bd5806..00000000
--- a/ANDROID_3.4.5/include/xen/gntalloc.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/******************************************************************************
- * gntalloc.h
- *
- * Interface to /dev/xen/gntalloc.
- *
- * Author: Daniel De Graaf <dgdegra@tycho.nsa.gov>
- *
- * This file is in the public domain.
- */
-
-#ifndef __LINUX_PUBLIC_GNTALLOC_H__
-#define __LINUX_PUBLIC_GNTALLOC_H__
-
-/*
- * Allocates a new page and creates a new grant reference.
- */
-#define IOCTL_GNTALLOC_ALLOC_GREF \
-_IOC(_IOC_NONE, 'G', 5, sizeof(struct ioctl_gntalloc_alloc_gref))
-struct ioctl_gntalloc_alloc_gref {
- /* IN parameters */
- /* The ID of the domain to be given access to the grants. */
- uint16_t domid;
- /* Flags for this mapping */
- uint16_t flags;
- /* Number of pages to map */
- uint32_t count;
- /* OUT parameters */
- /* The offset to be used on a subsequent call to mmap(). */
- uint64_t index;
- /* The grant references of the newly created grant, one per page */
- /* Variable size, depending on count */
- uint32_t gref_ids[1];
-};
-
-#define GNTALLOC_FLAG_WRITABLE 1
-
-/*
- * Deallocates the grant reference, allowing the associated page to be freed if
- * no other domains are using it.
- */
-#define IOCTL_GNTALLOC_DEALLOC_GREF \
-_IOC(_IOC_NONE, 'G', 6, sizeof(struct ioctl_gntalloc_dealloc_gref))
-struct ioctl_gntalloc_dealloc_gref {
- /* IN parameters */
- /* The offset returned in the map operation */
- uint64_t index;
- /* Number of references to unmap */
- uint32_t count;
-};
-
-/*
- * Sets up an unmap notification within the page, so that the other side can do
- * cleanup if this side crashes. Required to implement cross-domain robust
- * mutexes or close notification on communication channels.
- *
- * Each mapped page only supports one notification; multiple calls referring to
- * the same page overwrite the previous notification. You must clear the
- * notification prior to the IOCTL_GNTALLOC_DEALLOC_GREF if you do not want it
- * to occur.
- */
-#define IOCTL_GNTALLOC_SET_UNMAP_NOTIFY \
-_IOC(_IOC_NONE, 'G', 7, sizeof(struct ioctl_gntalloc_unmap_notify))
-struct ioctl_gntalloc_unmap_notify {
- /* IN parameters */
- /* Offset in the file descriptor for a byte within the page (same as
- * used in mmap). If using UNMAP_NOTIFY_CLEAR_BYTE, this is the byte to
- * be cleared. Otherwise, it can be any byte in the page whose
- * notification we are adjusting.
- */
- uint64_t index;
- /* Action(s) to take on unmap */
- uint32_t action;
- /* Event channel to notify */
- uint32_t event_channel_port;
-};
-
-/* Clear (set to zero) the byte specified by index */
-#define UNMAP_NOTIFY_CLEAR_BYTE 0x1
-/* Send an interrupt on the indicated event channel */
-#define UNMAP_NOTIFY_SEND_EVENT 0x2
-
-#endif /* __LINUX_PUBLIC_GNTALLOC_H__ */
diff --git a/ANDROID_3.4.5/include/xen/gntdev.h b/ANDROID_3.4.5/include/xen/gntdev.h
deleted file mode 100644
index 5304bd3c..00000000
--- a/ANDROID_3.4.5/include/xen/gntdev.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/******************************************************************************
- * gntdev.h
- *
- * Interface to /dev/xen/gntdev.
- *
- * Copyright (c) 2007, D G Murray
- *
- * 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; or, when distributed
- * separately from the Linux kernel or incorporated into other
- * software packages, subject to the following license:
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this source file (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use, copy, modify,
- * merge, publish, distribute, sublicense, and/or sell copies of the Software,
- * and to permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-
-#ifndef __LINUX_PUBLIC_GNTDEV_H__
-#define __LINUX_PUBLIC_GNTDEV_H__
-
-struct ioctl_gntdev_grant_ref {
- /* The domain ID of the grant to be mapped. */
- uint32_t domid;
- /* The grant reference of the grant to be mapped. */
- uint32_t ref;
-};
-
-/*
- * Inserts the grant references into the mapping table of an instance
- * of gntdev. N.B. This does not perform the mapping, which is deferred
- * until mmap() is called with @index as the offset.
- */
-#define IOCTL_GNTDEV_MAP_GRANT_REF \
-_IOC(_IOC_NONE, 'G', 0, sizeof(struct ioctl_gntdev_map_grant_ref))
-struct ioctl_gntdev_map_grant_ref {
- /* IN parameters */
- /* The number of grants to be mapped. */
- uint32_t count;
- uint32_t pad;
- /* OUT parameters */
- /* The offset to be used on a subsequent call to mmap(). */
- uint64_t index;
- /* Variable IN parameter. */
- /* Array of grant references, of size @count. */
- struct ioctl_gntdev_grant_ref refs[1];
-};
-
-/*
- * Removes the grant references from the mapping table of an instance of
- * of gntdev. N.B. munmap() must be called on the relevant virtual address(es)
- * before this ioctl is called, or an error will result.
- */
-#define IOCTL_GNTDEV_UNMAP_GRANT_REF \
-_IOC(_IOC_NONE, 'G', 1, sizeof(struct ioctl_gntdev_unmap_grant_ref))
-struct ioctl_gntdev_unmap_grant_ref {
- /* IN parameters */
- /* The offset was returned by the corresponding map operation. */
- uint64_t index;
- /* The number of pages to be unmapped. */
- uint32_t count;
- uint32_t pad;
-};
-
-/*
- * Returns the offset in the driver's address space that corresponds
- * to @vaddr. This can be used to perform a munmap(), followed by an
- * UNMAP_GRANT_REF ioctl, where no state about the offset is retained by
- * the caller. The number of pages that were allocated at the same time as
- * @vaddr is returned in @count.
- *
- * N.B. Where more than one page has been mapped into a contiguous range, the
- * supplied @vaddr must correspond to the start of the range; otherwise
- * an error will result. It is only possible to munmap() the entire
- * contiguously-allocated range at once, and not any subrange thereof.
- */
-#define IOCTL_GNTDEV_GET_OFFSET_FOR_VADDR \
-_IOC(_IOC_NONE, 'G', 2, sizeof(struct ioctl_gntdev_get_offset_for_vaddr))
-struct ioctl_gntdev_get_offset_for_vaddr {
- /* IN parameters */
- /* The virtual address of the first mapped page in a range. */
- uint64_t vaddr;
- /* OUT parameters */
- /* The offset that was used in the initial mmap() operation. */
- uint64_t offset;
- /* The number of pages mapped in the VM area that begins at @vaddr. */
- uint32_t count;
- uint32_t pad;
-};
-
-/*
- * Sets the maximum number of grants that may mapped at once by this gntdev
- * instance.
- *
- * N.B. This must be called before any other ioctl is performed on the device.
- */
-#define IOCTL_GNTDEV_SET_MAX_GRANTS \
-_IOC(_IOC_NONE, 'G', 3, sizeof(struct ioctl_gntdev_set_max_grants))
-struct ioctl_gntdev_set_max_grants {
- /* IN parameter */
- /* The maximum number of grants that may be mapped at once. */
- uint32_t count;
-};
-
-/*
- * Sets up an unmap notification within the page, so that the other side can do
- * cleanup if this side crashes. Required to implement cross-domain robust
- * mutexes or close notification on communication channels.
- *
- * Each mapped page only supports one notification; multiple calls referring to
- * the same page overwrite the previous notification. You must clear the
- * notification prior to the IOCTL_GNTALLOC_DEALLOC_GREF if you do not want it
- * to occur.
- */
-#define IOCTL_GNTDEV_SET_UNMAP_NOTIFY \
-_IOC(_IOC_NONE, 'G', 7, sizeof(struct ioctl_gntdev_unmap_notify))
-struct ioctl_gntdev_unmap_notify {
- /* IN parameters */
- /* Offset in the file descriptor for a byte within the page (same as
- * used in mmap). If using UNMAP_NOTIFY_CLEAR_BYTE, this is the byte to
- * be cleared. Otherwise, it can be any byte in the page whose
- * notification we are adjusting.
- */
- uint64_t index;
- /* Action(s) to take on unmap */
- uint32_t action;
- /* Event channel to notify */
- uint32_t event_channel_port;
-};
-
-/* Clear (set to zero) the byte specified by index */
-#define UNMAP_NOTIFY_CLEAR_BYTE 0x1
-/* Send an interrupt on the indicated event channel */
-#define UNMAP_NOTIFY_SEND_EVENT 0x2
-
-#endif /* __LINUX_PUBLIC_GNTDEV_H__ */
diff --git a/ANDROID_3.4.5/include/xen/grant_table.h b/ANDROID_3.4.5/include/xen/grant_table.h
deleted file mode 100644
index 15f8a00f..00000000
--- a/ANDROID_3.4.5/include/xen/grant_table.h
+++ /dev/null
@@ -1,190 +0,0 @@
-/******************************************************************************
- * grant_table.h
- *
- * Two sets of functionality:
- * 1. Granting foreign access to our memory reservation.
- * 2. Accessing others' memory reservations via grant references.
- * (i.e., mechanisms for both sender and recipient of grant references)
- *
- * Copyright (c) 2004-2005, K A Fraser
- * Copyright (c) 2005, Christopher Clark
- *
- * 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; or, when distributed
- * separately from the Linux kernel or incorporated into other
- * software packages, subject to the following license:
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this source file (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use, copy, modify,
- * merge, publish, distribute, sublicense, and/or sell copies of the Software,
- * and to permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-
-#ifndef __ASM_GNTTAB_H__
-#define __ASM_GNTTAB_H__
-
-#include <asm/page.h>
-
-#include <xen/interface/xen.h>
-#include <xen/interface/grant_table.h>
-
-#include <asm/xen/hypervisor.h>
-
-#include <xen/features.h>
-
-/* NR_GRANT_FRAMES must be less than or equal to that configured in Xen */
-#define NR_GRANT_FRAMES 4
-
-struct gnttab_free_callback {
- struct gnttab_free_callback *next;
- void (*fn)(void *);
- void *arg;
- u16 count;
-};
-
-int gnttab_init(void);
-int gnttab_suspend(void);
-int gnttab_resume(void);
-
-int gnttab_grant_foreign_access(domid_t domid, unsigned long frame,
- int readonly);
-int gnttab_grant_foreign_access_subpage(domid_t domid, unsigned long frame,
- int flags, unsigned page_off,
- unsigned length);
-int gnttab_grant_foreign_access_trans(domid_t domid, int flags,
- domid_t trans_domid,
- grant_ref_t trans_gref);
-
-/*
- * Are sub-page grants available on this version of Xen? Returns true if they
- * are, and false if they're not.
- */
-bool gnttab_subpage_grants_available(void);
-
-/*
- * Are transitive grants available on this version of Xen? Returns true if they
- * are, and false if they're not.
- */
-bool gnttab_trans_grants_available(void);
-
-/*
- * End access through the given grant reference, iff the grant entry is no
- * longer in use. Return 1 if the grant entry was freed, 0 if it is still in
- * use.
- */
-int gnttab_end_foreign_access_ref(grant_ref_t ref, int readonly);
-
-/*
- * Eventually end access through the given grant reference, and once that
- * access has been ended, free the given page too. Access will be ended
- * immediately iff the grant entry is not in use, otherwise it will happen
- * some time later. page may be 0, in which case no freeing will occur.
- */
-void gnttab_end_foreign_access(grant_ref_t ref, int readonly,
- unsigned long page);
-
-int gnttab_grant_foreign_transfer(domid_t domid, unsigned long pfn);
-
-unsigned long gnttab_end_foreign_transfer_ref(grant_ref_t ref);
-unsigned long gnttab_end_foreign_transfer(grant_ref_t ref);
-
-int gnttab_query_foreign_access(grant_ref_t ref);
-
-/*
- * operations on reserved batches of grant references
- */
-int gnttab_alloc_grant_references(u16 count, grant_ref_t *pprivate_head);
-
-void gnttab_free_grant_reference(grant_ref_t ref);
-
-void gnttab_free_grant_references(grant_ref_t head);
-
-int gnttab_empty_grant_references(const grant_ref_t *pprivate_head);
-
-int gnttab_claim_grant_reference(grant_ref_t *pprivate_head);
-
-void gnttab_release_grant_reference(grant_ref_t *private_head,
- grant_ref_t release);
-
-void gnttab_request_free_callback(struct gnttab_free_callback *callback,
- void (*fn)(void *), void *arg, u16 count);
-void gnttab_cancel_free_callback(struct gnttab_free_callback *callback);
-
-void gnttab_grant_foreign_access_ref(grant_ref_t ref, domid_t domid,
- unsigned long frame, int readonly);
-int gnttab_grant_foreign_access_subpage_ref(grant_ref_t ref, domid_t domid,
- unsigned long frame, int flags,
- unsigned page_off,
- unsigned length);
-int gnttab_grant_foreign_access_trans_ref(grant_ref_t ref, domid_t domid,
- int flags, domid_t trans_domid,
- grant_ref_t trans_gref);
-
-void gnttab_grant_foreign_transfer_ref(grant_ref_t, domid_t domid,
- unsigned long pfn);
-
-static inline void
-gnttab_set_map_op(struct gnttab_map_grant_ref *map, phys_addr_t addr,
- uint32_t flags, grant_ref_t ref, domid_t domid)
-{
- if (flags & GNTMAP_contains_pte)
- map->host_addr = addr;
- else if (xen_feature(XENFEAT_auto_translated_physmap))
- map->host_addr = __pa(addr);
- else
- map->host_addr = addr;
-
- map->flags = flags;
- map->ref = ref;
- map->dom = domid;
-}
-
-static inline void
-gnttab_set_unmap_op(struct gnttab_unmap_grant_ref *unmap, phys_addr_t addr,
- uint32_t flags, grant_handle_t handle)
-{
- if (flags & GNTMAP_contains_pte)
- unmap->host_addr = addr;
- else if (xen_feature(XENFEAT_auto_translated_physmap))
- unmap->host_addr = __pa(addr);
- else
- unmap->host_addr = addr;
-
- unmap->handle = handle;
- unmap->dev_bus_addr = 0;
-}
-
-int arch_gnttab_map_shared(unsigned long *frames, unsigned long nr_gframes,
- unsigned long max_nr_gframes,
- void **__shared);
-int arch_gnttab_map_status(uint64_t *frames, unsigned long nr_gframes,
- unsigned long max_nr_gframes,
- grant_status_t **__shared);
-void arch_gnttab_unmap(void *shared, unsigned long nr_gframes);
-
-extern unsigned long xen_hvm_resume_frames;
-unsigned int gnttab_max_grant_frames(void);
-
-#define gnttab_map_vaddr(map) ((void *)(map.host_virt_addr))
-
-int gnttab_map_refs(struct gnttab_map_grant_ref *map_ops,
- struct gnttab_map_grant_ref *kmap_ops,
- struct page **pages, unsigned int count);
-int gnttab_unmap_refs(struct gnttab_unmap_grant_ref *unmap_ops,
- struct page **pages, unsigned int count, bool clear_pte);
-
-#endif /* __ASM_GNTTAB_H__ */
diff --git a/ANDROID_3.4.5/include/xen/hvc-console.h b/ANDROID_3.4.5/include/xen/hvc-console.h
deleted file mode 100644
index b62dfef1..00000000
--- a/ANDROID_3.4.5/include/xen/hvc-console.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef XEN_HVC_CONSOLE_H
-#define XEN_HVC_CONSOLE_H
-
-extern struct console xenboot_console;
-
-#ifdef CONFIG_HVC_XEN
-void xen_console_resume(void);
-void xen_raw_console_write(const char *str);
-__printf(1, 2)
-void xen_raw_printk(const char *fmt, ...);
-#else
-static inline void xen_console_resume(void) { }
-static inline void xen_raw_console_write(const char *str) { }
-static inline __printf(1, 2)
-void xen_raw_printk(const char *fmt, ...) { }
-#endif
-
-#endif /* XEN_HVC_CONSOLE_H */
diff --git a/ANDROID_3.4.5/include/xen/hvm.h b/ANDROID_3.4.5/include/xen/hvm.h
deleted file mode 100644
index b193fa2f..00000000
--- a/ANDROID_3.4.5/include/xen/hvm.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Simple wrappers around HVM functions */
-#ifndef XEN_HVM_H__
-#define XEN_HVM_H__
-
-#include <xen/interface/hvm/params.h>
-#include <asm/xen/hypercall.h>
-
-static inline int hvm_get_parameter(int idx, uint64_t *value)
-{
- struct xen_hvm_param xhv;
- int r;
-
- xhv.domid = DOMID_SELF;
- xhv.index = idx;
- r = HYPERVISOR_hvm_op(HVMOP_get_param, &xhv);
- if (r < 0) {
- printk(KERN_ERR "Cannot get hvm parameter %d: %d!\n",
- idx, r);
- return r;
- }
- *value = xhv.value;
- return r;
-}
-
-#define HVM_CALLBACK_VIA_TYPE_VECTOR 0x2
-#define HVM_CALLBACK_VIA_TYPE_SHIFT 56
-#define HVM_CALLBACK_VECTOR(x) (((uint64_t)HVM_CALLBACK_VIA_TYPE_VECTOR)<<\
- HVM_CALLBACK_VIA_TYPE_SHIFT | (x))
-
-#endif /* XEN_HVM_H__ */
diff --git a/ANDROID_3.4.5/include/xen/interface/callback.h b/ANDROID_3.4.5/include/xen/interface/callback.h
deleted file mode 100644
index 2ae3cd24..00000000
--- a/ANDROID_3.4.5/include/xen/interface/callback.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/******************************************************************************
- * callback.h
- *
- * Register guest OS callbacks with Xen.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- * Copyright (c) 2006, Ian Campbell
- */
-
-#ifndef __XEN_PUBLIC_CALLBACK_H__
-#define __XEN_PUBLIC_CALLBACK_H__
-
-#include "xen.h"
-
-/*
- * Prototype for this hypercall is:
- * long callback_op(int cmd, void *extra_args)
- * @cmd == CALLBACKOP_??? (callback operation).
- * @extra_args == Operation-specific extra arguments (NULL if none).
- */
-
-/* ia64, x86: Callback for event delivery. */
-#define CALLBACKTYPE_event 0
-
-/* x86: Failsafe callback when guest state cannot be restored by Xen. */
-#define CALLBACKTYPE_failsafe 1
-
-/* x86/64 hypervisor: Syscall by 64-bit guest app ('64-on-64-on-64'). */
-#define CALLBACKTYPE_syscall 2
-
-/*
- * x86/32 hypervisor: Only available on x86/32 when supervisor_mode_kernel
- * feature is enabled. Do not use this callback type in new code.
- */
-#define CALLBACKTYPE_sysenter_deprecated 3
-
-/* x86: Callback for NMI delivery. */
-#define CALLBACKTYPE_nmi 4
-
-/*
- * x86: sysenter is only available as follows:
- * - 32-bit hypervisor: with the supervisor_mode_kernel feature enabled
- * - 64-bit hypervisor: 32-bit guest applications on Intel CPUs
- * ('32-on-32-on-64', '32-on-64-on-64')
- * [nb. also 64-bit guest applications on Intel CPUs
- * ('64-on-64-on-64'), but syscall is preferred]
- */
-#define CALLBACKTYPE_sysenter 5
-
-/*
- * x86/64 hypervisor: Syscall by 32-bit guest app on AMD CPUs
- * ('32-on-32-on-64', '32-on-64-on-64')
- */
-#define CALLBACKTYPE_syscall32 7
-
-/*
- * Disable event deliver during callback? This flag is ignored for event and
- * NMI callbacks: event delivery is unconditionally disabled.
- */
-#define _CALLBACKF_mask_events 0
-#define CALLBACKF_mask_events (1U << _CALLBACKF_mask_events)
-
-/*
- * Register a callback.
- */
-#define CALLBACKOP_register 0
-struct callback_register {
- uint16_t type;
- uint16_t flags;
- xen_callback_t address;
-};
-
-/*
- * Unregister a callback.
- *
- * Not all callbacks can be unregistered. -EINVAL will be returned if
- * you attempt to unregister such a callback.
- */
-#define CALLBACKOP_unregister 1
-struct callback_unregister {
- uint16_t type;
- uint16_t _unused;
-};
-
-#endif /* __XEN_PUBLIC_CALLBACK_H__ */
diff --git a/ANDROID_3.4.5/include/xen/interface/elfnote.h b/ANDROID_3.4.5/include/xen/interface/elfnote.h
deleted file mode 100644
index 0360b15f..00000000
--- a/ANDROID_3.4.5/include/xen/interface/elfnote.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/******************************************************************************
- * elfnote.h
- *
- * Definitions used for the Xen ELF notes.
- *
- * Copyright (c) 2006, Ian Campbell, XenSource Ltd.
- */
-
-#ifndef __XEN_PUBLIC_ELFNOTE_H__
-#define __XEN_PUBLIC_ELFNOTE_H__
-
-/*
- * The notes should live in a SHT_NOTE segment and have "Xen" in the
- * name field.
- *
- * Numeric types are either 4 or 8 bytes depending on the content of
- * the desc field.
- *
- * LEGACY indicated the fields in the legacy __xen_guest string which
- * this a note type replaces.
- */
-
-/*
- * NAME=VALUE pair (string).
- *
- * LEGACY: FEATURES and PAE
- */
-#define XEN_ELFNOTE_INFO 0
-
-/*
- * The virtual address of the entry point (numeric).
- *
- * LEGACY: VIRT_ENTRY
- */
-#define XEN_ELFNOTE_ENTRY 1
-
-/* The virtual address of the hypercall transfer page (numeric).
- *
- * LEGACY: HYPERCALL_PAGE. (n.b. legacy value is a physical page
- * number not a virtual address)
- */
-#define XEN_ELFNOTE_HYPERCALL_PAGE 2
-
-/* The virtual address where the kernel image should be mapped (numeric).
- *
- * Defaults to 0.
- *
- * LEGACY: VIRT_BASE
- */
-#define XEN_ELFNOTE_VIRT_BASE 3
-
-/*
- * The offset of the ELF paddr field from the acutal required
- * pseudo-physical address (numeric).
- *
- * This is used to maintain backwards compatibility with older kernels
- * which wrote __PAGE_OFFSET into that field. This field defaults to 0
- * if not present.
- *
- * LEGACY: ELF_PADDR_OFFSET. (n.b. legacy default is VIRT_BASE)
- */
-#define XEN_ELFNOTE_PADDR_OFFSET 4
-
-/*
- * The version of Xen that we work with (string).
- *
- * LEGACY: XEN_VER
- */
-#define XEN_ELFNOTE_XEN_VERSION 5
-
-/*
- * The name of the guest operating system (string).
- *
- * LEGACY: GUEST_OS
- */
-#define XEN_ELFNOTE_GUEST_OS 6
-
-/*
- * The version of the guest operating system (string).
- *
- * LEGACY: GUEST_VER
- */
-#define XEN_ELFNOTE_GUEST_VERSION 7
-
-/*
- * The loader type (string).
- *
- * LEGACY: LOADER
- */
-#define XEN_ELFNOTE_LOADER 8
-
-/*
- * The kernel supports PAE (x86/32 only, string = "yes" or "no").
- *
- * LEGACY: PAE (n.b. The legacy interface included a provision to
- * indicate 'extended-cr3' support allowing L3 page tables to be
- * placed above 4G. It is assumed that any kernel new enough to use
- * these ELF notes will include this and therefore "yes" here is
- * equivalent to "yes[entended-cr3]" in the __xen_guest interface.
- */
-#define XEN_ELFNOTE_PAE_MODE 9
-
-/*
- * The features supported/required by this kernel (string).
- *
- * The string must consist of a list of feature names (as given in
- * features.h, without the "XENFEAT_" prefix) separated by '|'
- * characters. If a feature is required for the kernel to function
- * then the feature name must be preceded by a '!' character.
- *
- * LEGACY: FEATURES
- */
-#define XEN_ELFNOTE_FEATURES 10
-
-/*
- * The kernel requires the symbol table to be loaded (string = "yes" or "no")
- * LEGACY: BSD_SYMTAB (n.b. The legacy treated the presence or absence
- * of this string as a boolean flag rather than requiring "yes" or
- * "no".
- */
-#define XEN_ELFNOTE_BSD_SYMTAB 11
-
-/*
- * The lowest address the hypervisor hole can begin at (numeric).
- *
- * This must not be set higher than HYPERVISOR_VIRT_START. Its presence
- * also indicates to the hypervisor that the kernel can deal with the
- * hole starting at a higher address.
- */
-#define XEN_ELFNOTE_HV_START_LOW 12
-
-/*
- * List of maddr_t-sized mask/value pairs describing how to recognize
- * (non-present) L1 page table entries carrying valid MFNs (numeric).
- */
-#define XEN_ELFNOTE_L1_MFN_VALID 13
-
-/*
- * Whether or not the guest supports cooperative suspend cancellation.
- */
-#define XEN_ELFNOTE_SUSPEND_CANCEL 14
-
-#endif /* __XEN_PUBLIC_ELFNOTE_H__ */
-
-/*
- * Local variables:
- * mode: C
- * c-set-style: "BSD"
- * c-basic-offset: 4
- * tab-width: 4
- * indent-tabs-mode: nil
- * End:
- */
diff --git a/ANDROID_3.4.5/include/xen/interface/event_channel.h b/ANDROID_3.4.5/include/xen/interface/event_channel.h
deleted file mode 100644
index 2090881c..00000000
--- a/ANDROID_3.4.5/include/xen/interface/event_channel.h
+++ /dev/null
@@ -1,197 +0,0 @@
-/******************************************************************************
- * event_channel.h
- *
- * Event channels between domains.
- *
- * Copyright (c) 2003-2004, K A Fraser.
- */
-
-#ifndef __XEN_PUBLIC_EVENT_CHANNEL_H__
-#define __XEN_PUBLIC_EVENT_CHANNEL_H__
-
-#include <xen/interface/xen.h>
-
-typedef uint32_t evtchn_port_t;
-DEFINE_GUEST_HANDLE(evtchn_port_t);
-
-/*
- * EVTCHNOP_alloc_unbound: Allocate a port in domain <dom> and mark as
- * accepting interdomain bindings from domain <remote_dom>. A fresh port
- * is allocated in <dom> and returned as <port>.
- * NOTES:
- * 1. If the caller is unprivileged then <dom> must be DOMID_SELF.
- * 2. <rdom> may be DOMID_SELF, allowing loopback connections.
- */
-#define EVTCHNOP_alloc_unbound 6
-struct evtchn_alloc_unbound {
- /* IN parameters */
- domid_t dom, remote_dom;
- /* OUT parameters */
- evtchn_port_t port;
-};
-
-/*
- * EVTCHNOP_bind_interdomain: Construct an interdomain event channel between
- * the calling domain and <remote_dom>. <remote_dom,remote_port> must identify
- * a port that is unbound and marked as accepting bindings from the calling
- * domain. A fresh port is allocated in the calling domain and returned as
- * <local_port>.
- * NOTES:
- * 2. <remote_dom> may be DOMID_SELF, allowing loopback connections.
- */
-#define EVTCHNOP_bind_interdomain 0
-struct evtchn_bind_interdomain {
- /* IN parameters. */
- domid_t remote_dom;
- evtchn_port_t remote_port;
- /* OUT parameters. */
- evtchn_port_t local_port;
-};
-
-/*
- * EVTCHNOP_bind_virq: Bind a local event channel to VIRQ <irq> on specified
- * vcpu.
- * NOTES:
- * 1. A virtual IRQ may be bound to at most one event channel per vcpu.
- * 2. The allocated event channel is bound to the specified vcpu. The binding
- * may not be changed.
- */
-#define EVTCHNOP_bind_virq 1
-struct evtchn_bind_virq {
- /* IN parameters. */
- uint32_t virq;
- uint32_t vcpu;
- /* OUT parameters. */
- evtchn_port_t port;
-};
-
-/*
- * EVTCHNOP_bind_pirq: Bind a local event channel to PIRQ <irq>.
- * NOTES:
- * 1. A physical IRQ may be bound to at most one event channel per domain.
- * 2. Only a sufficiently-privileged domain may bind to a physical IRQ.
- */
-#define EVTCHNOP_bind_pirq 2
-struct evtchn_bind_pirq {
- /* IN parameters. */
- uint32_t pirq;
-#define BIND_PIRQ__WILL_SHARE 1
- uint32_t flags; /* BIND_PIRQ__* */
- /* OUT parameters. */
- evtchn_port_t port;
-};
-
-/*
- * EVTCHNOP_bind_ipi: Bind a local event channel to receive events.
- * NOTES:
- * 1. The allocated event channel is bound to the specified vcpu. The binding
- * may not be changed.
- */
-#define EVTCHNOP_bind_ipi 7
-struct evtchn_bind_ipi {
- uint32_t vcpu;
- /* OUT parameters. */
- evtchn_port_t port;
-};
-
-/*
- * EVTCHNOP_close: Close a local event channel <port>. If the channel is
- * interdomain then the remote end is placed in the unbound state
- * (EVTCHNSTAT_unbound), awaiting a new connection.
- */
-#define EVTCHNOP_close 3
-struct evtchn_close {
- /* IN parameters. */
- evtchn_port_t port;
-};
-
-/*
- * EVTCHNOP_send: Send an event to the remote end of the channel whose local
- * endpoint is <port>.
- */
-#define EVTCHNOP_send 4
-struct evtchn_send {
- /* IN parameters. */
- evtchn_port_t port;
-};
-
-/*
- * EVTCHNOP_status: Get the current status of the communication channel which
- * has an endpoint at <dom, port>.
- * NOTES:
- * 1. <dom> may be specified as DOMID_SELF.
- * 2. Only a sufficiently-privileged domain may obtain the status of an event
- * channel for which <dom> is not DOMID_SELF.
- */
-#define EVTCHNOP_status 5
-struct evtchn_status {
- /* IN parameters */
- domid_t dom;
- evtchn_port_t port;
- /* OUT parameters */
-#define EVTCHNSTAT_closed 0 /* Channel is not in use. */
-#define EVTCHNSTAT_unbound 1 /* Channel is waiting interdom connection.*/
-#define EVTCHNSTAT_interdomain 2 /* Channel is connected to remote domain. */
-#define EVTCHNSTAT_pirq 3 /* Channel is bound to a phys IRQ line. */
-#define EVTCHNSTAT_virq 4 /* Channel is bound to a virtual IRQ line */
-#define EVTCHNSTAT_ipi 5 /* Channel is bound to a virtual IPI line */
- uint32_t status;
- uint32_t vcpu; /* VCPU to which this channel is bound. */
- union {
- struct {
- domid_t dom;
- } unbound; /* EVTCHNSTAT_unbound */
- struct {
- domid_t dom;
- evtchn_port_t port;
- } interdomain; /* EVTCHNSTAT_interdomain */
- uint32_t pirq; /* EVTCHNSTAT_pirq */
- uint32_t virq; /* EVTCHNSTAT_virq */
- } u;
-};
-
-/*
- * EVTCHNOP_bind_vcpu: Specify which vcpu a channel should notify when an
- * event is pending.
- * NOTES:
- * 1. IPI- and VIRQ-bound channels always notify the vcpu that initialised
- * the binding. This binding cannot be changed.
- * 2. All other channels notify vcpu0 by default. This default is set when
- * the channel is allocated (a port that is freed and subsequently reused
- * has its binding reset to vcpu0).
- */
-#define EVTCHNOP_bind_vcpu 8
-struct evtchn_bind_vcpu {
- /* IN parameters. */
- evtchn_port_t port;
- uint32_t vcpu;
-};
-
-/*
- * EVTCHNOP_unmask: Unmask the specified local event-channel port and deliver
- * a notification to the appropriate VCPU if an event is pending.
- */
-#define EVTCHNOP_unmask 9
-struct evtchn_unmask {
- /* IN parameters. */
- evtchn_port_t port;
-};
-
-struct evtchn_op {
- uint32_t cmd; /* EVTCHNOP_* */
- union {
- struct evtchn_alloc_unbound alloc_unbound;
- struct evtchn_bind_interdomain bind_interdomain;
- struct evtchn_bind_virq bind_virq;
- struct evtchn_bind_pirq bind_pirq;
- struct evtchn_bind_ipi bind_ipi;
- struct evtchn_close close;
- struct evtchn_send send;
- struct evtchn_status status;
- struct evtchn_bind_vcpu bind_vcpu;
- struct evtchn_unmask unmask;
- } u;
-};
-DEFINE_GUEST_HANDLE_STRUCT(evtchn_op);
-
-#endif /* __XEN_PUBLIC_EVENT_CHANNEL_H__ */
diff --git a/ANDROID_3.4.5/include/xen/interface/features.h b/ANDROID_3.4.5/include/xen/interface/features.h
deleted file mode 100644
index b6ca39a0..00000000
--- a/ANDROID_3.4.5/include/xen/interface/features.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/******************************************************************************
- * features.h
- *
- * Feature flags, reported by XENVER_get_features.
- *
- * Copyright (c) 2006, Keir Fraser <keir@xensource.com>
- */
-
-#ifndef __XEN_PUBLIC_FEATURES_H__
-#define __XEN_PUBLIC_FEATURES_H__
-
-/*
- * If set, the guest does not need to write-protect its pagetables, and can
- * update them via direct writes.
- */
-#define XENFEAT_writable_page_tables 0
-
-/*
- * If set, the guest does not need to write-protect its segment descriptor
- * tables, and can update them via direct writes.
- */
-#define XENFEAT_writable_descriptor_tables 1
-
-/*
- * If set, translation between the guest's 'pseudo-physical' address space
- * and the host's machine address space are handled by the hypervisor. In this
- * mode the guest does not need to perform phys-to/from-machine translations
- * when performing page table operations.
- */
-#define XENFEAT_auto_translated_physmap 2
-
-/* If set, the guest is running in supervisor mode (e.g., x86 ring 0). */
-#define XENFEAT_supervisor_mode_kernel 3
-
-/*
- * If set, the guest does not need to allocate x86 PAE page directories
- * below 4GB. This flag is usually implied by auto_translated_physmap.
- */
-#define XENFEAT_pae_pgdir_above_4gb 4
-
-/* x86: Does this Xen host support the MMU_PT_UPDATE_PRESERVE_AD hypercall? */
-#define XENFEAT_mmu_pt_update_preserve_ad 5
-
-/* x86: Does this Xen host support the HVM callback vector type? */
-#define XENFEAT_hvm_callback_vector 8
-
-/* x86: pvclock algorithm is safe to use on HVM */
-#define XENFEAT_hvm_safe_pvclock 9
-
-/* x86: pirq can be used by HVM guests */
-#define XENFEAT_hvm_pirqs 10
-
-#define XENFEAT_NR_SUBMAPS 1
-
-#endif /* __XEN_PUBLIC_FEATURES_H__ */
diff --git a/ANDROID_3.4.5/include/xen/interface/grant_table.h b/ANDROID_3.4.5/include/xen/interface/grant_table.h
deleted file mode 100644
index a17d8443..00000000
--- a/ANDROID_3.4.5/include/xen/interface/grant_table.h
+++ /dev/null
@@ -1,538 +0,0 @@
-/******************************************************************************
- * grant_table.h
- *
- * Interface for granting foreign access to page frames, and receiving
- * page-ownership transfers.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- * Copyright (c) 2004, K A Fraser
- */
-
-#ifndef __XEN_PUBLIC_GRANT_TABLE_H__
-#define __XEN_PUBLIC_GRANT_TABLE_H__
-
-#include <xen/interface/xen.h>
-
-/***********************************
- * GRANT TABLE REPRESENTATION
- */
-
-/* Some rough guidelines on accessing and updating grant-table entries
- * in a concurrency-safe manner. For more information, Linux contains a
- * reference implementation for guest OSes (arch/xen/kernel/grant_table.c).
- *
- * NB. WMB is a no-op on current-generation x86 processors. However, a
- * compiler barrier will still be required.
- *
- * Introducing a valid entry into the grant table:
- * 1. Write ent->domid.
- * 2. Write ent->frame:
- * GTF_permit_access: Frame to which access is permitted.
- * GTF_accept_transfer: Pseudo-phys frame slot being filled by new
- * frame, or zero if none.
- * 3. Write memory barrier (WMB).
- * 4. Write ent->flags, inc. valid type.
- *
- * Invalidating an unused GTF_permit_access entry:
- * 1. flags = ent->flags.
- * 2. Observe that !(flags & (GTF_reading|GTF_writing)).
- * 3. Check result of SMP-safe CMPXCHG(&ent->flags, flags, 0).
- * NB. No need for WMB as reuse of entry is control-dependent on success of
- * step 3, and all architectures guarantee ordering of ctrl-dep writes.
- *
- * Invalidating an in-use GTF_permit_access entry:
- * This cannot be done directly. Request assistance from the domain controller
- * which can set a timeout on the use of a grant entry and take necessary
- * action. (NB. This is not yet implemented!).
- *
- * Invalidating an unused GTF_accept_transfer entry:
- * 1. flags = ent->flags.
- * 2. Observe that !(flags & GTF_transfer_committed). [*]
- * 3. Check result of SMP-safe CMPXCHG(&ent->flags, flags, 0).
- * NB. No need for WMB as reuse of entry is control-dependent on success of
- * step 3, and all architectures guarantee ordering of ctrl-dep writes.
- * [*] If GTF_transfer_committed is set then the grant entry is 'committed'.
- * The guest must /not/ modify the grant entry until the address of the
- * transferred frame is written. It is safe for the guest to spin waiting
- * for this to occur (detect by observing GTF_transfer_completed in
- * ent->flags).
- *
- * Invalidating a committed GTF_accept_transfer entry:
- * 1. Wait for (ent->flags & GTF_transfer_completed).
- *
- * Changing a GTF_permit_access from writable to read-only:
- * Use SMP-safe CMPXCHG to set GTF_readonly, while checking !GTF_writing.
- *
- * Changing a GTF_permit_access from read-only to writable:
- * Use SMP-safe bit-setting instruction.
- */
-
-/*
- * Reference to a grant entry in a specified domain's grant table.
- */
-typedef uint32_t grant_ref_t;
-
-/*
- * A grant table comprises a packed array of grant entries in one or more
- * page frames shared between Xen and a guest.
- * [XEN]: This field is written by Xen and read by the sharing guest.
- * [GST]: This field is written by the guest and read by Xen.
- */
-
-/*
- * Version 1 of the grant table entry structure is maintained purely
- * for backwards compatibility. New guests should use version 2.
- */
-struct grant_entry_v1 {
- /* GTF_xxx: various type and flag information. [XEN,GST] */
- uint16_t flags;
- /* The domain being granted foreign privileges. [GST] */
- domid_t domid;
- /*
- * GTF_permit_access: Frame that @domid is allowed to map and access. [GST]
- * GTF_accept_transfer: Frame whose ownership transferred by @domid. [XEN]
- */
- uint32_t frame;
-};
-
-/*
- * Type of grant entry.
- * GTF_invalid: This grant entry grants no privileges.
- * GTF_permit_access: Allow @domid to map/access @frame.
- * GTF_accept_transfer: Allow @domid to transfer ownership of one page frame
- * to this guest. Xen writes the page number to @frame.
- * GTF_transitive: Allow @domid to transitively access a subrange of
- * @trans_grant in @trans_domid. No mappings are allowed.
- */
-#define GTF_invalid (0U<<0)
-#define GTF_permit_access (1U<<0)
-#define GTF_accept_transfer (2U<<0)
-#define GTF_transitive (3U<<0)
-#define GTF_type_mask (3U<<0)
-
-/*
- * Subflags for GTF_permit_access.
- * GTF_readonly: Restrict @domid to read-only mappings and accesses. [GST]
- * GTF_reading: Grant entry is currently mapped for reading by @domid. [XEN]
- * GTF_writing: Grant entry is currently mapped for writing by @domid. [XEN]
- * GTF_sub_page: Grant access to only a subrange of the page. @domid
- * will only be allowed to copy from the grant, and not
- * map it. [GST]
- */
-#define _GTF_readonly (2)
-#define GTF_readonly (1U<<_GTF_readonly)
-#define _GTF_reading (3)
-#define GTF_reading (1U<<_GTF_reading)
-#define _GTF_writing (4)
-#define GTF_writing (1U<<_GTF_writing)
-#define _GTF_sub_page (8)
-#define GTF_sub_page (1U<<_GTF_sub_page)
-
-/*
- * Subflags for GTF_accept_transfer:
- * GTF_transfer_committed: Xen sets this flag to indicate that it is committed
- * to transferring ownership of a page frame. When a guest sees this flag
- * it must /not/ modify the grant entry until GTF_transfer_completed is
- * set by Xen.
- * GTF_transfer_completed: It is safe for the guest to spin-wait on this flag
- * after reading GTF_transfer_committed. Xen will always write the frame
- * address, followed by ORing this flag, in a timely manner.
- */
-#define _GTF_transfer_committed (2)
-#define GTF_transfer_committed (1U<<_GTF_transfer_committed)
-#define _GTF_transfer_completed (3)
-#define GTF_transfer_completed (1U<<_GTF_transfer_completed)
-
-/*
- * Version 2 grant table entries. These fulfil the same role as
- * version 1 entries, but can represent more complicated operations.
- * Any given domain will have either a version 1 or a version 2 table,
- * and every entry in the table will be the same version.
- *
- * The interface by which domains use grant references does not depend
- * on the grant table version in use by the other domain.
- */
-
-/*
- * Version 1 and version 2 grant entries share a common prefix. The
- * fields of the prefix are documented as part of struct
- * grant_entry_v1.
- */
-struct grant_entry_header {
- uint16_t flags;
- domid_t domid;
-};
-
-/*
- * Version 2 of the grant entry structure, here is an union because three
- * different types are suppotted: full_page, sub_page and transitive.
- */
-union grant_entry_v2 {
- struct grant_entry_header hdr;
-
- /*
- * This member is used for V1-style full page grants, where either:
- *
- * -- hdr.type is GTF_accept_transfer, or
- * -- hdr.type is GTF_permit_access and GTF_sub_page is not set.
- *
- * In that case, the frame field has the same semantics as the
- * field of the same name in the V1 entry structure.
- */
- struct {
- struct grant_entry_header hdr;
- uint32_t pad0;
- uint64_t frame;
- } full_page;
-
- /*
- * If the grant type is GTF_grant_access and GTF_sub_page is set,
- * @domid is allowed to access bytes [@page_off,@page_off+@length)
- * in frame @frame.
- */
- struct {
- struct grant_entry_header hdr;
- uint16_t page_off;
- uint16_t length;
- uint64_t frame;
- } sub_page;
-
- /*
- * If the grant is GTF_transitive, @domid is allowed to use the
- * grant @gref in domain @trans_domid, as if it was the local
- * domain. Obviously, the transitive access must be compatible
- * with the original grant.
- */
- struct {
- struct grant_entry_header hdr;
- domid_t trans_domid;
- uint16_t pad0;
- grant_ref_t gref;
- } transitive;
-
- uint32_t __spacer[4]; /* Pad to a power of two */
-};
-
-typedef uint16_t grant_status_t;
-
-/***********************************
- * GRANT TABLE QUERIES AND USES
- */
-
-/*
- * Handle to track a mapping created via a grant reference.
- */
-typedef uint32_t grant_handle_t;
-
-/*
- * GNTTABOP_map_grant_ref: Map the grant entry (<dom>,<ref>) for access
- * by devices and/or host CPUs. If successful, <handle> is a tracking number
- * that must be presented later to destroy the mapping(s). On error, <handle>
- * is a negative status code.
- * NOTES:
- * 1. If GNTMAP_device_map is specified then <dev_bus_addr> is the address
- * via which I/O devices may access the granted frame.
- * 2. If GNTMAP_host_map is specified then a mapping will be added at
- * either a host virtual address in the current address space, or at
- * a PTE at the specified machine address. The type of mapping to
- * perform is selected through the GNTMAP_contains_pte flag, and the
- * address is specified in <host_addr>.
- * 3. Mappings should only be destroyed via GNTTABOP_unmap_grant_ref. If a
- * host mapping is destroyed by other means then it is *NOT* guaranteed
- * to be accounted to the correct grant reference!
- */
-#define GNTTABOP_map_grant_ref 0
-struct gnttab_map_grant_ref {
- /* IN parameters. */
- uint64_t host_addr;
- uint32_t flags; /* GNTMAP_* */
- grant_ref_t ref;
- domid_t dom;
- /* OUT parameters. */
- int16_t status; /* GNTST_* */
- grant_handle_t handle;
- uint64_t dev_bus_addr;
-};
-DEFINE_GUEST_HANDLE_STRUCT(gnttab_map_grant_ref);
-
-/*
- * GNTTABOP_unmap_grant_ref: Destroy one or more grant-reference mappings
- * tracked by <handle>. If <host_addr> or <dev_bus_addr> is zero, that
- * field is ignored. If non-zero, they must refer to a device/host mapping
- * that is tracked by <handle>
- * NOTES:
- * 1. The call may fail in an undefined manner if either mapping is not
- * tracked by <handle>.
- * 3. After executing a batch of unmaps, it is guaranteed that no stale
- * mappings will remain in the device or host TLBs.
- */
-#define GNTTABOP_unmap_grant_ref 1
-struct gnttab_unmap_grant_ref {
- /* IN parameters. */
- uint64_t host_addr;
- uint64_t dev_bus_addr;
- grant_handle_t handle;
- /* OUT parameters. */
- int16_t status; /* GNTST_* */
-};
-DEFINE_GUEST_HANDLE_STRUCT(gnttab_unmap_grant_ref);
-
-/*
- * GNTTABOP_setup_table: Set up a grant table for <dom> comprising at least
- * <nr_frames> pages. The frame addresses are written to the <frame_list>.
- * Only <nr_frames> addresses are written, even if the table is larger.
- * NOTES:
- * 1. <dom> may be specified as DOMID_SELF.
- * 2. Only a sufficiently-privileged domain may specify <dom> != DOMID_SELF.
- * 3. Xen may not support more than a single grant-table page per domain.
- */
-#define GNTTABOP_setup_table 2
-struct gnttab_setup_table {
- /* IN parameters. */
- domid_t dom;
- uint32_t nr_frames;
- /* OUT parameters. */
- int16_t status; /* GNTST_* */
- GUEST_HANDLE(ulong) frame_list;
-};
-DEFINE_GUEST_HANDLE_STRUCT(gnttab_setup_table);
-
-/*
- * GNTTABOP_dump_table: Dump the contents of the grant table to the
- * xen console. Debugging use only.
- */
-#define GNTTABOP_dump_table 3
-struct gnttab_dump_table {
- /* IN parameters. */
- domid_t dom;
- /* OUT parameters. */
- int16_t status; /* GNTST_* */
-};
-DEFINE_GUEST_HANDLE_STRUCT(gnttab_dump_table);
-
-/*
- * GNTTABOP_transfer_grant_ref: Transfer <frame> to a foreign domain. The
- * foreign domain has previously registered its interest in the transfer via
- * <domid, ref>.
- *
- * Note that, even if the transfer fails, the specified page no longer belongs
- * to the calling domain *unless* the error is GNTST_bad_page.
- */
-#define GNTTABOP_transfer 4
-struct gnttab_transfer {
- /* IN parameters. */
- unsigned long mfn;
- domid_t domid;
- grant_ref_t ref;
- /* OUT parameters. */
- int16_t status;
-};
-DEFINE_GUEST_HANDLE_STRUCT(gnttab_transfer);
-
-/*
- * GNTTABOP_copy: Hypervisor based copy
- * source and destinations can be eithers MFNs or, for foreign domains,
- * grant references. the foreign domain has to grant read/write access
- * in its grant table.
- *
- * The flags specify what type source and destinations are (either MFN
- * or grant reference).
- *
- * Note that this can also be used to copy data between two domains
- * via a third party if the source and destination domains had previously
- * grant appropriate access to their pages to the third party.
- *
- * source_offset specifies an offset in the source frame, dest_offset
- * the offset in the target frame and len specifies the number of
- * bytes to be copied.
- */
-
-#define _GNTCOPY_source_gref (0)
-#define GNTCOPY_source_gref (1<<_GNTCOPY_source_gref)
-#define _GNTCOPY_dest_gref (1)
-#define GNTCOPY_dest_gref (1<<_GNTCOPY_dest_gref)
-
-#define GNTTABOP_copy 5
-struct gnttab_copy {
- /* IN parameters. */
- struct {
- union {
- grant_ref_t ref;
- unsigned long gmfn;
- } u;
- domid_t domid;
- uint16_t offset;
- } source, dest;
- uint16_t len;
- uint16_t flags; /* GNTCOPY_* */
- /* OUT parameters. */
- int16_t status;
-};
-DEFINE_GUEST_HANDLE_STRUCT(gnttab_copy);
-
-/*
- * GNTTABOP_query_size: Query the current and maximum sizes of the shared
- * grant table.
- * NOTES:
- * 1. <dom> may be specified as DOMID_SELF.
- * 2. Only a sufficiently-privileged domain may specify <dom> != DOMID_SELF.
- */
-#define GNTTABOP_query_size 6
-struct gnttab_query_size {
- /* IN parameters. */
- domid_t dom;
- /* OUT parameters. */
- uint32_t nr_frames;
- uint32_t max_nr_frames;
- int16_t status; /* GNTST_* */
-};
-DEFINE_GUEST_HANDLE_STRUCT(gnttab_query_size);
-
-/*
- * GNTTABOP_unmap_and_replace: Destroy one or more grant-reference mappings
- * tracked by <handle> but atomically replace the page table entry with one
- * pointing to the machine address under <new_addr>. <new_addr> will be
- * redirected to the null entry.
- * NOTES:
- * 1. The call may fail in an undefined manner if either mapping is not
- * tracked by <handle>.
- * 2. After executing a batch of unmaps, it is guaranteed that no stale
- * mappings will remain in the device or host TLBs.
- */
-#define GNTTABOP_unmap_and_replace 7
-struct gnttab_unmap_and_replace {
- /* IN parameters. */
- uint64_t host_addr;
- uint64_t new_addr;
- grant_handle_t handle;
- /* OUT parameters. */
- int16_t status; /* GNTST_* */
-};
-DEFINE_GUEST_HANDLE_STRUCT(gnttab_unmap_and_replace);
-
-/*
- * GNTTABOP_set_version: Request a particular version of the grant
- * table shared table structure. This operation can only be performed
- * once in any given domain. It must be performed before any grants
- * are activated; otherwise, the domain will be stuck with version 1.
- * The only defined versions are 1 and 2.
- */
-#define GNTTABOP_set_version 8
-struct gnttab_set_version {
- /* IN parameters */
- uint32_t version;
-};
-DEFINE_GUEST_HANDLE_STRUCT(gnttab_set_version);
-
-/*
- * GNTTABOP_get_status_frames: Get the list of frames used to store grant
- * status for <dom>. In grant format version 2, the status is separated
- * from the other shared grant fields to allow more efficient synchronization
- * using barriers instead of atomic cmpexch operations.
- * <nr_frames> specify the size of vector <frame_list>.
- * The frame addresses are returned in the <frame_list>.
- * Only <nr_frames> addresses are returned, even if the table is larger.
- * NOTES:
- * 1. <dom> may be specified as DOMID_SELF.
- * 2. Only a sufficiently-privileged domain may specify <dom> != DOMID_SELF.
- */
-#define GNTTABOP_get_status_frames 9
-struct gnttab_get_status_frames {
- /* IN parameters. */
- uint32_t nr_frames;
- domid_t dom;
- /* OUT parameters. */
- int16_t status; /* GNTST_* */
- GUEST_HANDLE(uint64_t) frame_list;
-};
-DEFINE_GUEST_HANDLE_STRUCT(gnttab_get_status_frames);
-
-/*
- * GNTTABOP_get_version: Get the grant table version which is in
- * effect for domain <dom>.
- */
-#define GNTTABOP_get_version 10
-struct gnttab_get_version {
- /* IN parameters */
- domid_t dom;
- uint16_t pad;
- /* OUT parameters */
- uint32_t version;
-};
-DEFINE_GUEST_HANDLE_STRUCT(gnttab_get_version);
-
-/*
- * Bitfield values for update_pin_status.flags.
- */
- /* Map the grant entry for access by I/O devices. */
-#define _GNTMAP_device_map (0)
-#define GNTMAP_device_map (1<<_GNTMAP_device_map)
- /* Map the grant entry for access by host CPUs. */
-#define _GNTMAP_host_map (1)
-#define GNTMAP_host_map (1<<_GNTMAP_host_map)
- /* Accesses to the granted frame will be restricted to read-only access. */
-#define _GNTMAP_readonly (2)
-#define GNTMAP_readonly (1<<_GNTMAP_readonly)
- /*
- * GNTMAP_host_map subflag:
- * 0 => The host mapping is usable only by the guest OS.
- * 1 => The host mapping is usable by guest OS + current application.
- */
-#define _GNTMAP_application_map (3)
-#define GNTMAP_application_map (1<<_GNTMAP_application_map)
-
- /*
- * GNTMAP_contains_pte subflag:
- * 0 => This map request contains a host virtual address.
- * 1 => This map request contains the machine addess of the PTE to update.
- */
-#define _GNTMAP_contains_pte (4)
-#define GNTMAP_contains_pte (1<<_GNTMAP_contains_pte)
-
-/*
- * Values for error status returns. All errors are -ve.
- */
-#define GNTST_okay (0) /* Normal return. */
-#define GNTST_general_error (-1) /* General undefined error. */
-#define GNTST_bad_domain (-2) /* Unrecognsed domain id. */
-#define GNTST_bad_gntref (-3) /* Unrecognised or inappropriate gntref. */
-#define GNTST_bad_handle (-4) /* Unrecognised or inappropriate handle. */
-#define GNTST_bad_virt_addr (-5) /* Inappropriate virtual address to map. */
-#define GNTST_bad_dev_addr (-6) /* Inappropriate device address to unmap.*/
-#define GNTST_no_device_space (-7) /* Out of space in I/O MMU. */
-#define GNTST_permission_denied (-8) /* Not enough privilege for operation. */
-#define GNTST_bad_page (-9) /* Specified page was invalid for op. */
-#define GNTST_bad_copy_arg (-10) /* copy arguments cross page boundary */
-
-#define GNTTABOP_error_msgs { \
- "okay", \
- "undefined error", \
- "unrecognised domain id", \
- "invalid grant reference", \
- "invalid mapping handle", \
- "invalid virtual address", \
- "invalid device address", \
- "no spare translation slot in the I/O MMU", \
- "permission denied", \
- "bad page", \
- "copy arguments cross page boundary" \
-}
-
-#endif /* __XEN_PUBLIC_GRANT_TABLE_H__ */
diff --git a/ANDROID_3.4.5/include/xen/interface/hvm/hvm_op.h b/ANDROID_3.4.5/include/xen/interface/hvm/hvm_op.h
deleted file mode 100644
index a4827f46..00000000
--- a/ANDROID_3.4.5/include/xen/interface/hvm/hvm_op.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef __XEN_PUBLIC_HVM_HVM_OP_H__
-#define __XEN_PUBLIC_HVM_HVM_OP_H__
-
-/* Get/set subcommands: the second argument of the hypercall is a
- * pointer to a xen_hvm_param struct. */
-#define HVMOP_set_param 0
-#define HVMOP_get_param 1
-struct xen_hvm_param {
- domid_t domid; /* IN */
- uint32_t index; /* IN */
- uint64_t value; /* IN/OUT */
-};
-DEFINE_GUEST_HANDLE_STRUCT(xen_hvm_param);
-
-/* Hint from PV drivers for pagetable destruction. */
-#define HVMOP_pagetable_dying 9
-struct xen_hvm_pagetable_dying {
- /* Domain with a pagetable about to be destroyed. */
- domid_t domid;
- /* guest physical address of the toplevel pagetable dying */
- aligned_u64 gpa;
-};
-typedef struct xen_hvm_pagetable_dying xen_hvm_pagetable_dying_t;
-DEFINE_GUEST_HANDLE_STRUCT(xen_hvm_pagetable_dying_t);
-
-#endif /* __XEN_PUBLIC_HVM_HVM_OP_H__ */
diff --git a/ANDROID_3.4.5/include/xen/interface/hvm/params.h b/ANDROID_3.4.5/include/xen/interface/hvm/params.h
deleted file mode 100644
index 1b4f923d..00000000
--- a/ANDROID_3.4.5/include/xen/interface/hvm/params.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef __XEN_PUBLIC_HVM_PARAMS_H__
-#define __XEN_PUBLIC_HVM_PARAMS_H__
-
-#include "hvm_op.h"
-
-/*
- * Parameter space for HVMOP_{set,get}_param.
- */
-
-/*
- * How should CPU0 event-channel notifications be delivered?
- * val[63:56] == 0: val[55:0] is a delivery GSI (Global System Interrupt).
- * val[63:56] == 1: val[55:0] is a delivery PCI INTx line, as follows:
- * Domain = val[47:32], Bus = val[31:16],
- * DevFn = val[15: 8], IntX = val[ 1: 0]
- * val[63:56] == 2: val[7:0] is a vector number.
- * If val == 0 then CPU0 event-channel notifications are not delivered.
- */
-#define HVM_PARAM_CALLBACK_IRQ 0
-
-#define HVM_PARAM_STORE_PFN 1
-#define HVM_PARAM_STORE_EVTCHN 2
-
-#define HVM_PARAM_PAE_ENABLED 4
-
-#define HVM_PARAM_IOREQ_PFN 5
-
-#define HVM_PARAM_BUFIOREQ_PFN 6
-
-/*
- * Set mode for virtual timers (currently x86 only):
- * delay_for_missed_ticks (default):
- * Do not advance a vcpu's time beyond the correct delivery time for
- * interrupts that have been missed due to preemption. Deliver missed
- * interrupts when the vcpu is rescheduled and advance the vcpu's virtual
- * time stepwise for each one.
- * no_delay_for_missed_ticks:
- * As above, missed interrupts are delivered, but guest time always tracks
- * wallclock (i.e., real) time while doing so.
- * no_missed_ticks_pending:
- * No missed interrupts are held pending. Instead, to ensure ticks are
- * delivered at some non-zero rate, if we detect missed ticks then the
- * internal tick alarm is not disabled if the VCPU is preempted during the
- * next tick period.
- * one_missed_tick_pending:
- * Missed interrupts are collapsed together and delivered as one 'late tick'.
- * Guest time always tracks wallclock (i.e., real) time.
- */
-#define HVM_PARAM_TIMER_MODE 10
-#define HVMPTM_delay_for_missed_ticks 0
-#define HVMPTM_no_delay_for_missed_ticks 1
-#define HVMPTM_no_missed_ticks_pending 2
-#define HVMPTM_one_missed_tick_pending 3
-
-/* Boolean: Enable virtual HPET (high-precision event timer)? (x86-only) */
-#define HVM_PARAM_HPET_ENABLED 11
-
-/* Identity-map page directory used by Intel EPT when CR0.PG=0. */
-#define HVM_PARAM_IDENT_PT 12
-
-/* Device Model domain, defaults to 0. */
-#define HVM_PARAM_DM_DOMAIN 13
-
-/* ACPI S state: currently support S0 and S3 on x86. */
-#define HVM_PARAM_ACPI_S_STATE 14
-
-/* TSS used on Intel when CR0.PE=0. */
-#define HVM_PARAM_VM86_TSS 15
-
-/* Boolean: Enable aligning all periodic vpts to reduce interrupts */
-#define HVM_PARAM_VPT_ALIGN 16
-
-/* Console debug shared memory ring and event channel */
-#define HVM_PARAM_CONSOLE_PFN 17
-#define HVM_PARAM_CONSOLE_EVTCHN 18
-
-#define HVM_NR_PARAMS 19
-
-#endif /* __XEN_PUBLIC_HVM_PARAMS_H__ */
diff --git a/ANDROID_3.4.5/include/xen/interface/io/blkif.h b/ANDROID_3.4.5/include/xen/interface/io/blkif.h
deleted file mode 100644
index ee338bfd..00000000
--- a/ANDROID_3.4.5/include/xen/interface/io/blkif.h
+++ /dev/null
@@ -1,196 +0,0 @@
-/******************************************************************************
- * blkif.h
- *
- * Unified block-device I/O interface for Xen guest OSes.
- *
- * Copyright (c) 2003-2004, Keir Fraser
- */
-
-#ifndef __XEN_PUBLIC_IO_BLKIF_H__
-#define __XEN_PUBLIC_IO_BLKIF_H__
-
-#include "ring.h"
-#include "../grant_table.h"
-
-/*
- * Front->back notifications: When enqueuing a new request, sending a
- * notification can be made conditional on req_event (i.e., the generic
- * hold-off mechanism provided by the ring macros). Backends must set
- * req_event appropriately (e.g., using RING_FINAL_CHECK_FOR_REQUESTS()).
- *
- * Back->front notifications: When enqueuing a new response, sending a
- * notification can be made conditional on rsp_event (i.e., the generic
- * hold-off mechanism provided by the ring macros). Frontends must set
- * rsp_event appropriately (e.g., using RING_FINAL_CHECK_FOR_RESPONSES()).
- */
-
-typedef uint16_t blkif_vdev_t;
-typedef uint64_t blkif_sector_t;
-
-/*
- * REQUEST CODES.
- */
-#define BLKIF_OP_READ 0
-#define BLKIF_OP_WRITE 1
-/*
- * Recognised only if "feature-barrier" is present in backend xenbus info.
- * The "feature_barrier" node contains a boolean indicating whether barrier
- * requests are likely to succeed or fail. Either way, a barrier request
- * may fail at any time with BLKIF_RSP_EOPNOTSUPP if it is unsupported by
- * the underlying block-device hardware. The boolean simply indicates whether
- * or not it is worthwhile for the frontend to attempt barrier requests.
- * If a backend does not recognise BLKIF_OP_WRITE_BARRIER, it should *not*
- * create the "feature-barrier" node!
- */
-#define BLKIF_OP_WRITE_BARRIER 2
-
-/*
- * Recognised if "feature-flush-cache" is present in backend xenbus
- * info. A flush will ask the underlying storage hardware to flush its
- * non-volatile caches as appropriate. The "feature-flush-cache" node
- * contains a boolean indicating whether flush requests are likely to
- * succeed or fail. Either way, a flush request may fail at any time
- * with BLKIF_RSP_EOPNOTSUPP if it is unsupported by the underlying
- * block-device hardware. The boolean simply indicates whether or not it
- * is worthwhile for the frontend to attempt flushes. If a backend does
- * not recognise BLKIF_OP_WRITE_FLUSH_CACHE, it should *not* create the
- * "feature-flush-cache" node!
- */
-#define BLKIF_OP_FLUSH_DISKCACHE 3
-
-/*
- * Recognised only if "feature-discard" is present in backend xenbus info.
- * The "feature-discard" node contains a boolean indicating whether trim
- * (ATA) or unmap (SCSI) - conviently called discard requests are likely
- * to succeed or fail. Either way, a discard request
- * may fail at any time with BLKIF_RSP_EOPNOTSUPP if it is unsupported by
- * the underlying block-device hardware. The boolean simply indicates whether
- * or not it is worthwhile for the frontend to attempt discard requests.
- * If a backend does not recognise BLKIF_OP_DISCARD, it should *not*
- * create the "feature-discard" node!
- *
- * Discard operation is a request for the underlying block device to mark
- * extents to be erased. However, discard does not guarantee that the blocks
- * will be erased from the device - it is just a hint to the device
- * controller that these blocks are no longer in use. What the device
- * controller does with that information is left to the controller.
- * Discard operations are passed with sector_number as the
- * sector index to begin discard operations at and nr_sectors as the number of
- * sectors to be discarded. The specified sectors should be discarded if the
- * underlying block device supports trim (ATA) or unmap (SCSI) operations,
- * or a BLKIF_RSP_EOPNOTSUPP should be returned.
- * More information about trim/unmap operations at:
- * http://t13.org/Documents/UploadedDocuments/docs2008/
- * e07154r6-Data_Set_Management_Proposal_for_ATA-ACS2.doc
- * http://www.seagate.com/staticfiles/support/disc/manuals/
- * Interface%20manuals/100293068c.pdf
- * The backend can optionally provide three extra XenBus attributes to
- * further optimize the discard functionality:
- * 'discard-aligment' - Devices that support discard functionality may
- * internally allocate space in units that are bigger than the exported
- * logical block size. The discard-alignment parameter indicates how many bytes
- * the beginning of the partition is offset from the internal allocation unit's
- * natural alignment.
- * 'discard-granularity' - Devices that support discard functionality may
- * internally allocate space using units that are bigger than the logical block
- * size. The discard-granularity parameter indicates the size of the internal
- * allocation unit in bytes if reported by the device. Otherwise the
- * discard-granularity will be set to match the device's physical block size.
- * 'discard-secure' - All copies of the discarded sectors (potentially created
- * by garbage collection) must also be erased. To use this feature, the flag
- * BLKIF_DISCARD_SECURE must be set in the blkif_request_trim.
- */
-#define BLKIF_OP_DISCARD 5
-
-/*
- * Maximum scatter/gather segments per request.
- * This is carefully chosen so that sizeof(struct blkif_ring) <= PAGE_SIZE.
- * NB. This could be 12 if the ring indexes weren't stored in the same page.
- */
-#define BLKIF_MAX_SEGMENTS_PER_REQUEST 11
-
-struct blkif_request_rw {
- uint8_t nr_segments; /* number of segments */
- blkif_vdev_t handle; /* only for read/write requests */
-#ifdef CONFIG_X86_64
- uint32_t _pad1; /* offsetof(blkif_request,u.rw.id) == 8 */
-#endif
- uint64_t id; /* private guest value, echoed in resp */
- blkif_sector_t sector_number;/* start sector idx on disk (r/w only) */
- struct blkif_request_segment {
- grant_ref_t gref; /* reference to I/O buffer frame */
- /* @first_sect: first sector in frame to transfer (inclusive). */
- /* @last_sect: last sector in frame to transfer (inclusive). */
- uint8_t first_sect, last_sect;
- } seg[BLKIF_MAX_SEGMENTS_PER_REQUEST];
-} __attribute__((__packed__));
-
-struct blkif_request_discard {
- uint8_t flag; /* BLKIF_DISCARD_SECURE or zero. */
-#define BLKIF_DISCARD_SECURE (1<<0) /* ignored if discard-secure=0 */
- blkif_vdev_t _pad1; /* only for read/write requests */
-#ifdef CONFIG_X86_64
- uint32_t _pad2; /* offsetof(blkif_req..,u.discard.id)==8*/
-#endif
- uint64_t id; /* private guest value, echoed in resp */
- blkif_sector_t sector_number;
- uint64_t nr_sectors;
- uint8_t _pad3;
-} __attribute__((__packed__));
-
-struct blkif_request {
- uint8_t operation; /* BLKIF_OP_??? */
- union {
- struct blkif_request_rw rw;
- struct blkif_request_discard discard;
- } u;
-} __attribute__((__packed__));
-
-struct blkif_response {
- uint64_t id; /* copied from request */
- uint8_t operation; /* copied from request */
- int16_t status; /* BLKIF_RSP_??? */
-};
-
-/*
- * STATUS RETURN CODES.
- */
- /* Operation not supported (only happens on barrier writes). */
-#define BLKIF_RSP_EOPNOTSUPP -2
- /* Operation failed for some unspecified reason (-EIO). */
-#define BLKIF_RSP_ERROR -1
- /* Operation completed successfully. */
-#define BLKIF_RSP_OKAY 0
-
-/*
- * Generate blkif ring structures and types.
- */
-
-DEFINE_RING_TYPES(blkif, struct blkif_request, struct blkif_response);
-
-#define VDISK_CDROM 0x1
-#define VDISK_REMOVABLE 0x2
-#define VDISK_READONLY 0x4
-
-/* Xen-defined major numbers for virtual disks, they look strangely
- * familiar */
-#define XEN_IDE0_MAJOR 3
-#define XEN_IDE1_MAJOR 22
-#define XEN_SCSI_DISK0_MAJOR 8
-#define XEN_SCSI_DISK1_MAJOR 65
-#define XEN_SCSI_DISK2_MAJOR 66
-#define XEN_SCSI_DISK3_MAJOR 67
-#define XEN_SCSI_DISK4_MAJOR 68
-#define XEN_SCSI_DISK5_MAJOR 69
-#define XEN_SCSI_DISK6_MAJOR 70
-#define XEN_SCSI_DISK7_MAJOR 71
-#define XEN_SCSI_DISK8_MAJOR 128
-#define XEN_SCSI_DISK9_MAJOR 129
-#define XEN_SCSI_DISK10_MAJOR 130
-#define XEN_SCSI_DISK11_MAJOR 131
-#define XEN_SCSI_DISK12_MAJOR 132
-#define XEN_SCSI_DISK13_MAJOR 133
-#define XEN_SCSI_DISK14_MAJOR 134
-#define XEN_SCSI_DISK15_MAJOR 135
-
-#endif /* __XEN_PUBLIC_IO_BLKIF_H__ */
diff --git a/ANDROID_3.4.5/include/xen/interface/io/console.h b/ANDROID_3.4.5/include/xen/interface/io/console.h
deleted file mode 100644
index e563de70..00000000
--- a/ANDROID_3.4.5/include/xen/interface/io/console.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/******************************************************************************
- * console.h
- *
- * Console I/O interface for Xen guest OSes.
- *
- * Copyright (c) 2005, Keir Fraser
- */
-
-#ifndef __XEN_PUBLIC_IO_CONSOLE_H__
-#define __XEN_PUBLIC_IO_CONSOLE_H__
-
-typedef uint32_t XENCONS_RING_IDX;
-
-#define MASK_XENCONS_IDX(idx, ring) ((idx) & (sizeof(ring)-1))
-
-struct xencons_interface {
- char in[1024];
- char out[2048];
- XENCONS_RING_IDX in_cons, in_prod;
- XENCONS_RING_IDX out_cons, out_prod;
-};
-
-#endif /* __XEN_PUBLIC_IO_CONSOLE_H__ */
diff --git a/ANDROID_3.4.5/include/xen/interface/io/fbif.h b/ANDROID_3.4.5/include/xen/interface/io/fbif.h
deleted file mode 100644
index 974a51ed..00000000
--- a/ANDROID_3.4.5/include/xen/interface/io/fbif.h
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * fbif.h -- Xen virtual frame buffer device
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- * Copyright (C) 2005 Anthony Liguori <aliguori@us.ibm.com>
- * Copyright (C) 2006 Red Hat, Inc., Markus Armbruster <armbru@redhat.com>
- */
-
-#ifndef __XEN_PUBLIC_IO_FBIF_H__
-#define __XEN_PUBLIC_IO_FBIF_H__
-
-/* Out events (frontend -> backend) */
-
-/*
- * Out events may be sent only when requested by backend, and receipt
- * of an unknown out event is an error.
- */
-
-/* Event type 1 currently not used */
-/*
- * Framebuffer update notification event
- * Capable frontend sets feature-update in xenstore.
- * Backend requests it by setting request-update in xenstore.
- */
-#define XENFB_TYPE_UPDATE 2
-
-struct xenfb_update {
- uint8_t type; /* XENFB_TYPE_UPDATE */
- int32_t x; /* source x */
- int32_t y; /* source y */
- int32_t width; /* rect width */
- int32_t height; /* rect height */
-};
-
-/*
- * Framebuffer resize notification event
- * Capable backend sets feature-resize in xenstore.
- */
-#define XENFB_TYPE_RESIZE 3
-
-struct xenfb_resize {
- uint8_t type; /* XENFB_TYPE_RESIZE */
- int32_t width; /* width in pixels */
- int32_t height; /* height in pixels */
- int32_t stride; /* stride in bytes */
- int32_t depth; /* depth in bits */
- int32_t offset; /* start offset within framebuffer */
-};
-
-#define XENFB_OUT_EVENT_SIZE 40
-
-union xenfb_out_event {
- uint8_t type;
- struct xenfb_update update;
- struct xenfb_resize resize;
- char pad[XENFB_OUT_EVENT_SIZE];
-};
-
-/* In events (backend -> frontend) */
-
-/*
- * Frontends should ignore unknown in events.
- * No in events currently defined.
- */
-
-#define XENFB_IN_EVENT_SIZE 40
-
-union xenfb_in_event {
- uint8_t type;
- char pad[XENFB_IN_EVENT_SIZE];
-};
-
-/* shared page */
-
-#define XENFB_IN_RING_SIZE 1024
-#define XENFB_IN_RING_LEN (XENFB_IN_RING_SIZE / XENFB_IN_EVENT_SIZE)
-#define XENFB_IN_RING_OFFS 1024
-#define XENFB_IN_RING(page) \
- ((union xenfb_in_event *)((char *)(page) + XENFB_IN_RING_OFFS))
-#define XENFB_IN_RING_REF(page, idx) \
- (XENFB_IN_RING((page))[(idx) % XENFB_IN_RING_LEN])
-
-#define XENFB_OUT_RING_SIZE 2048
-#define XENFB_OUT_RING_LEN (XENFB_OUT_RING_SIZE / XENFB_OUT_EVENT_SIZE)
-#define XENFB_OUT_RING_OFFS (XENFB_IN_RING_OFFS + XENFB_IN_RING_SIZE)
-#define XENFB_OUT_RING(page) \
- ((union xenfb_out_event *)((char *)(page) + XENFB_OUT_RING_OFFS))
-#define XENFB_OUT_RING_REF(page, idx) \
- (XENFB_OUT_RING((page))[(idx) % XENFB_OUT_RING_LEN])
-
-struct xenfb_page {
- uint32_t in_cons, in_prod;
- uint32_t out_cons, out_prod;
-
- int32_t width; /* width of the framebuffer (in pixels) */
- int32_t height; /* height of the framebuffer (in pixels) */
- uint32_t line_length; /* length of a row of pixels (in bytes) */
- uint32_t mem_length; /* length of the framebuffer (in bytes) */
- uint8_t depth; /* depth of a pixel (in bits) */
-
- /*
- * Framebuffer page directory
- *
- * Each directory page holds PAGE_SIZE / sizeof(*pd)
- * framebuffer pages, and can thus map up to PAGE_SIZE *
- * PAGE_SIZE / sizeof(*pd) bytes. With PAGE_SIZE == 4096 and
- * sizeof(unsigned long) == 4/8, that's 4 Megs 32 bit and 2
- * Megs 64 bit. 256 directories give enough room for a 512
- * Meg framebuffer with a max resolution of 12,800x10,240.
- * Should be enough for a while with room leftover for
- * expansion.
- */
- unsigned long pd[256];
-};
-
-/*
- * Wart: xenkbd needs to know default resolution. Put it here until a
- * better solution is found, but don't leak it to the backend.
- */
-#ifdef __KERNEL__
-#define XENFB_WIDTH 800
-#define XENFB_HEIGHT 600
-#define XENFB_DEPTH 32
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/xen/interface/io/kbdif.h b/ANDROID_3.4.5/include/xen/interface/io/kbdif.h
deleted file mode 100644
index 8066c784..00000000
--- a/ANDROID_3.4.5/include/xen/interface/io/kbdif.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * kbdif.h -- Xen virtual keyboard/mouse
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- * Copyright (C) 2005 Anthony Liguori <aliguori@us.ibm.com>
- * Copyright (C) 2006 Red Hat, Inc., Markus Armbruster <armbru@redhat.com>
- */
-
-#ifndef __XEN_PUBLIC_IO_KBDIF_H__
-#define __XEN_PUBLIC_IO_KBDIF_H__
-
-/* In events (backend -> frontend) */
-
-/*
- * Frontends should ignore unknown in events.
- */
-
-/* Pointer movement event */
-#define XENKBD_TYPE_MOTION 1
-/* Event type 2 currently not used */
-/* Key event (includes pointer buttons) */
-#define XENKBD_TYPE_KEY 3
-/*
- * Pointer position event
- * Capable backend sets feature-abs-pointer in xenstore.
- * Frontend requests ot instead of XENKBD_TYPE_MOTION by setting
- * request-abs-update in xenstore.
- */
-#define XENKBD_TYPE_POS 4
-
-struct xenkbd_motion {
- uint8_t type; /* XENKBD_TYPE_MOTION */
- int32_t rel_x; /* relative X motion */
- int32_t rel_y; /* relative Y motion */
- int32_t rel_z; /* relative Z motion (wheel) */
-};
-
-struct xenkbd_key {
- uint8_t type; /* XENKBD_TYPE_KEY */
- uint8_t pressed; /* 1 if pressed; 0 otherwise */
- uint32_t keycode; /* KEY_* from linux/input.h */
-};
-
-struct xenkbd_position {
- uint8_t type; /* XENKBD_TYPE_POS */
- int32_t abs_x; /* absolute X position (in FB pixels) */
- int32_t abs_y; /* absolute Y position (in FB pixels) */
- int32_t rel_z; /* relative Z motion (wheel) */
-};
-
-#define XENKBD_IN_EVENT_SIZE 40
-
-union xenkbd_in_event {
- uint8_t type;
- struct xenkbd_motion motion;
- struct xenkbd_key key;
- struct xenkbd_position pos;
- char pad[XENKBD_IN_EVENT_SIZE];
-};
-
-/* Out events (frontend -> backend) */
-
-/*
- * Out events may be sent only when requested by backend, and receipt
- * of an unknown out event is an error.
- * No out events currently defined.
- */
-
-#define XENKBD_OUT_EVENT_SIZE 40
-
-union xenkbd_out_event {
- uint8_t type;
- char pad[XENKBD_OUT_EVENT_SIZE];
-};
-
-/* shared page */
-
-#define XENKBD_IN_RING_SIZE 2048
-#define XENKBD_IN_RING_LEN (XENKBD_IN_RING_SIZE / XENKBD_IN_EVENT_SIZE)
-#define XENKBD_IN_RING_OFFS 1024
-#define XENKBD_IN_RING(page) \
- ((union xenkbd_in_event *)((char *)(page) + XENKBD_IN_RING_OFFS))
-#define XENKBD_IN_RING_REF(page, idx) \
- (XENKBD_IN_RING((page))[(idx) % XENKBD_IN_RING_LEN])
-
-#define XENKBD_OUT_RING_SIZE 1024
-#define XENKBD_OUT_RING_LEN (XENKBD_OUT_RING_SIZE / XENKBD_OUT_EVENT_SIZE)
-#define XENKBD_OUT_RING_OFFS (XENKBD_IN_RING_OFFS + XENKBD_IN_RING_SIZE)
-#define XENKBD_OUT_RING(page) \
- ((union xenkbd_out_event *)((char *)(page) + XENKBD_OUT_RING_OFFS))
-#define XENKBD_OUT_RING_REF(page, idx) \
- (XENKBD_OUT_RING((page))[(idx) % XENKBD_OUT_RING_LEN])
-
-struct xenkbd_page {
- uint32_t in_cons, in_prod;
- uint32_t out_cons, out_prod;
-};
-
-#endif
diff --git a/ANDROID_3.4.5/include/xen/interface/io/netif.h b/ANDROID_3.4.5/include/xen/interface/io/netif.h
deleted file mode 100644
index cb94668f..00000000
--- a/ANDROID_3.4.5/include/xen/interface/io/netif.h
+++ /dev/null
@@ -1,162 +0,0 @@
-/******************************************************************************
- * netif.h
- *
- * Unified network-device I/O interface for Xen guest OSes.
- *
- * Copyright (c) 2003-2004, Keir Fraser
- */
-
-#ifndef __XEN_PUBLIC_IO_NETIF_H__
-#define __XEN_PUBLIC_IO_NETIF_H__
-
-#include "ring.h"
-#include "../grant_table.h"
-
-/*
- * Notifications after enqueuing any type of message should be conditional on
- * the appropriate req_event or rsp_event field in the shared ring.
- * If the client sends notification for rx requests then it should specify
- * feature 'feature-rx-notify' via xenbus. Otherwise the backend will assume
- * that it cannot safely queue packets (as it may not be kicked to send them).
- */
-
-/*
- * This is the 'wire' format for packets:
- * Request 1: xen_netif_tx_request -- XEN_NETTXF_* (any flags)
- * [Request 2: xen_netif_extra_info] (only if request 1 has XEN_NETTXF_extra_info)
- * [Request 3: xen_netif_extra_info] (only if request 2 has XEN_NETIF_EXTRA_MORE)
- * Request 4: xen_netif_tx_request -- XEN_NETTXF_more_data
- * Request 5: xen_netif_tx_request -- XEN_NETTXF_more_data
- * ...
- * Request N: xen_netif_tx_request -- 0
- */
-
-/* Protocol checksum field is blank in the packet (hardware offload)? */
-#define _XEN_NETTXF_csum_blank (0)
-#define XEN_NETTXF_csum_blank (1U<<_XEN_NETTXF_csum_blank)
-
-/* Packet data has been validated against protocol checksum. */
-#define _XEN_NETTXF_data_validated (1)
-#define XEN_NETTXF_data_validated (1U<<_XEN_NETTXF_data_validated)
-
-/* Packet continues in the next request descriptor. */
-#define _XEN_NETTXF_more_data (2)
-#define XEN_NETTXF_more_data (1U<<_XEN_NETTXF_more_data)
-
-/* Packet to be followed by extra descriptor(s). */
-#define _XEN_NETTXF_extra_info (3)
-#define XEN_NETTXF_extra_info (1U<<_XEN_NETTXF_extra_info)
-
-struct xen_netif_tx_request {
- grant_ref_t gref; /* Reference to buffer page */
- uint16_t offset; /* Offset within buffer page */
- uint16_t flags; /* XEN_NETTXF_* */
- uint16_t id; /* Echoed in response message. */
- uint16_t size; /* Packet size in bytes. */
-};
-
-/* Types of xen_netif_extra_info descriptors. */
-#define XEN_NETIF_EXTRA_TYPE_NONE (0) /* Never used - invalid */
-#define XEN_NETIF_EXTRA_TYPE_GSO (1) /* u.gso */
-#define XEN_NETIF_EXTRA_TYPE_MAX (2)
-
-/* xen_netif_extra_info flags. */
-#define _XEN_NETIF_EXTRA_FLAG_MORE (0)
-#define XEN_NETIF_EXTRA_FLAG_MORE (1U<<_XEN_NETIF_EXTRA_FLAG_MORE)
-
-/* GSO types - only TCPv4 currently supported. */
-#define XEN_NETIF_GSO_TYPE_TCPV4 (1)
-
-/*
- * This structure needs to fit within both netif_tx_request and
- * netif_rx_response for compatibility.
- */
-struct xen_netif_extra_info {
- uint8_t type; /* XEN_NETIF_EXTRA_TYPE_* */
- uint8_t flags; /* XEN_NETIF_EXTRA_FLAG_* */
-
- union {
- struct {
- /*
- * Maximum payload size of each segment. For
- * example, for TCP this is just the path MSS.
- */
- uint16_t size;
-
- /*
- * GSO type. This determines the protocol of
- * the packet and any extra features required
- * to segment the packet properly.
- */
- uint8_t type; /* XEN_NETIF_GSO_TYPE_* */
-
- /* Future expansion. */
- uint8_t pad;
-
- /*
- * GSO features. This specifies any extra GSO
- * features required to process this packet,
- * such as ECN support for TCPv4.
- */
- uint16_t features; /* XEN_NETIF_GSO_FEAT_* */
- } gso;
-
- uint16_t pad[3];
- } u;
-};
-
-struct xen_netif_tx_response {
- uint16_t id;
- int16_t status; /* XEN_NETIF_RSP_* */
-};
-
-struct xen_netif_rx_request {
- uint16_t id; /* Echoed in response message. */
- grant_ref_t gref; /* Reference to incoming granted frame */
-};
-
-/* Packet data has been validated against protocol checksum. */
-#define _XEN_NETRXF_data_validated (0)
-#define XEN_NETRXF_data_validated (1U<<_XEN_NETRXF_data_validated)
-
-/* Protocol checksum field is blank in the packet (hardware offload)? */
-#define _XEN_NETRXF_csum_blank (1)
-#define XEN_NETRXF_csum_blank (1U<<_XEN_NETRXF_csum_blank)
-
-/* Packet continues in the next request descriptor. */
-#define _XEN_NETRXF_more_data (2)
-#define XEN_NETRXF_more_data (1U<<_XEN_NETRXF_more_data)
-
-/* Packet to be followed by extra descriptor(s). */
-#define _XEN_NETRXF_extra_info (3)
-#define XEN_NETRXF_extra_info (1U<<_XEN_NETRXF_extra_info)
-
-/* GSO Prefix descriptor. */
-#define _XEN_NETRXF_gso_prefix (4)
-#define XEN_NETRXF_gso_prefix (1U<<_XEN_NETRXF_gso_prefix)
-
-struct xen_netif_rx_response {
- uint16_t id;
- uint16_t offset; /* Offset in page of start of received packet */
- uint16_t flags; /* XEN_NETRXF_* */
- int16_t status; /* -ve: BLKIF_RSP_* ; +ve: Rx'ed pkt size. */
-};
-
-/*
- * Generate netif ring structures and types.
- */
-
-DEFINE_RING_TYPES(xen_netif_tx,
- struct xen_netif_tx_request,
- struct xen_netif_tx_response);
-DEFINE_RING_TYPES(xen_netif_rx,
- struct xen_netif_rx_request,
- struct xen_netif_rx_response);
-
-#define XEN_NETIF_RSP_DROPPED -2
-#define XEN_NETIF_RSP_ERROR -1
-#define XEN_NETIF_RSP_OKAY 0
-/* No response: used for auxiliary requests (e.g., xen_netif_extra_info). */
-#define XEN_NETIF_RSP_NULL 1
-
-#endif
diff --git a/ANDROID_3.4.5/include/xen/interface/io/pciif.h b/ANDROID_3.4.5/include/xen/interface/io/pciif.h
deleted file mode 100644
index d9922ae3..00000000
--- a/ANDROID_3.4.5/include/xen/interface/io/pciif.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * PCI Backend/Frontend Common Data Structures & Macros
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- * Author: Ryan Wilson <hap9@epoch.ncsc.mil>
- */
-#ifndef __XEN_PCI_COMMON_H__
-#define __XEN_PCI_COMMON_H__
-
-/* Be sure to bump this number if you change this file */
-#define XEN_PCI_MAGIC "7"
-
-/* xen_pci_sharedinfo flags */
-#define _XEN_PCIF_active (0)
-#define XEN_PCIF_active (1<<_XEN_PCIF_active)
-#define _XEN_PCIB_AERHANDLER (1)
-#define XEN_PCIB_AERHANDLER (1<<_XEN_PCIB_AERHANDLER)
-#define _XEN_PCIB_active (2)
-#define XEN_PCIB_active (1<<_XEN_PCIB_active)
-
-/* xen_pci_op commands */
-#define XEN_PCI_OP_conf_read (0)
-#define XEN_PCI_OP_conf_write (1)
-#define XEN_PCI_OP_enable_msi (2)
-#define XEN_PCI_OP_disable_msi (3)
-#define XEN_PCI_OP_enable_msix (4)
-#define XEN_PCI_OP_disable_msix (5)
-#define XEN_PCI_OP_aer_detected (6)
-#define XEN_PCI_OP_aer_resume (7)
-#define XEN_PCI_OP_aer_mmio (8)
-#define XEN_PCI_OP_aer_slotreset (9)
-
-/* xen_pci_op error numbers */
-#define XEN_PCI_ERR_success (0)
-#define XEN_PCI_ERR_dev_not_found (-1)
-#define XEN_PCI_ERR_invalid_offset (-2)
-#define XEN_PCI_ERR_access_denied (-3)
-#define XEN_PCI_ERR_not_implemented (-4)
-/* XEN_PCI_ERR_op_failed - backend failed to complete the operation */
-#define XEN_PCI_ERR_op_failed (-5)
-
-/*
- * it should be PAGE_SIZE-sizeof(struct xen_pci_op))/sizeof(struct msix_entry))
- * Should not exceed 128
- */
-#define SH_INFO_MAX_VEC 128
-
-struct xen_msix_entry {
- uint16_t vector;
- uint16_t entry;
-};
-struct xen_pci_op {
- /* IN: what action to perform: XEN_PCI_OP_* */
- uint32_t cmd;
-
- /* OUT: will contain an error number (if any) from errno.h */
- int32_t err;
-
- /* IN: which device to touch */
- uint32_t domain; /* PCI Domain/Segment */
- uint32_t bus;
- uint32_t devfn;
-
- /* IN: which configuration registers to touch */
- int32_t offset;
- int32_t size;
-
- /* IN/OUT: Contains the result after a READ or the value to WRITE */
- uint32_t value;
- /* IN: Contains extra infor for this operation */
- uint32_t info;
- /*IN: param for msi-x */
- struct xen_msix_entry msix_entries[SH_INFO_MAX_VEC];
-};
-
-/*used for pcie aer handling*/
-struct xen_pcie_aer_op {
- /* IN: what action to perform: XEN_PCI_OP_* */
- uint32_t cmd;
- /*IN/OUT: return aer_op result or carry error_detected state as input*/
- int32_t err;
-
- /* IN: which device to touch */
- uint32_t domain; /* PCI Domain/Segment*/
- uint32_t bus;
- uint32_t devfn;
-};
-struct xen_pci_sharedinfo {
- /* flags - XEN_PCIF_* */
- uint32_t flags;
- struct xen_pci_op op;
- struct xen_pcie_aer_op aer_op;
-};
-
-#endif /* __XEN_PCI_COMMON_H__ */
diff --git a/ANDROID_3.4.5/include/xen/interface/io/protocols.h b/ANDROID_3.4.5/include/xen/interface/io/protocols.h
deleted file mode 100644
index 01fc8ae5..00000000
--- a/ANDROID_3.4.5/include/xen/interface/io/protocols.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef __XEN_PROTOCOLS_H__
-#define __XEN_PROTOCOLS_H__
-
-#define XEN_IO_PROTO_ABI_X86_32 "x86_32-abi"
-#define XEN_IO_PROTO_ABI_X86_64 "x86_64-abi"
-#define XEN_IO_PROTO_ABI_IA64 "ia64-abi"
-#define XEN_IO_PROTO_ABI_POWERPC64 "powerpc64-abi"
-
-#if defined(__i386__)
-# define XEN_IO_PROTO_ABI_NATIVE XEN_IO_PROTO_ABI_X86_32
-#elif defined(__x86_64__)
-# define XEN_IO_PROTO_ABI_NATIVE XEN_IO_PROTO_ABI_X86_64
-#elif defined(__ia64__)
-# define XEN_IO_PROTO_ABI_NATIVE XEN_IO_PROTO_ABI_IA64
-#elif defined(__powerpc64__)
-# define XEN_IO_PROTO_ABI_NATIVE XEN_IO_PROTO_ABI_POWERPC64
-#else
-# error arch fixup needed here
-#endif
-
-#endif
diff --git a/ANDROID_3.4.5/include/xen/interface/io/ring.h b/ANDROID_3.4.5/include/xen/interface/io/ring.h
deleted file mode 100644
index 75271b9a..00000000
--- a/ANDROID_3.4.5/include/xen/interface/io/ring.h
+++ /dev/null
@@ -1,267 +0,0 @@
-/******************************************************************************
- * ring.h
- *
- * Shared producer-consumer ring macros.
- *
- * Tim Deegan and Andrew Warfield November 2004.
- */
-
-#ifndef __XEN_PUBLIC_IO_RING_H__
-#define __XEN_PUBLIC_IO_RING_H__
-
-typedef unsigned int RING_IDX;
-
-/* Round a 32-bit unsigned constant down to the nearest power of two. */
-#define __RD2(_x) (((_x) & 0x00000002) ? 0x2 : ((_x) & 0x1))
-#define __RD4(_x) (((_x) & 0x0000000c) ? __RD2((_x)>>2)<<2 : __RD2(_x))
-#define __RD8(_x) (((_x) & 0x000000f0) ? __RD4((_x)>>4)<<4 : __RD4(_x))
-#define __RD16(_x) (((_x) & 0x0000ff00) ? __RD8((_x)>>8)<<8 : __RD8(_x))
-#define __RD32(_x) (((_x) & 0xffff0000) ? __RD16((_x)>>16)<<16 : __RD16(_x))
-
-/*
- * Calculate size of a shared ring, given the total available space for the
- * ring and indexes (_sz), and the name tag of the request/response structure.
- * A ring contains as many entries as will fit, rounded down to the nearest
- * power of two (so we can mask with (size-1) to loop around).
- */
-#define __CONST_RING_SIZE(_s, _sz) \
- (__RD32(((_sz) - offsetof(struct _s##_sring, ring)) / \
- sizeof(((struct _s##_sring *)0)->ring[0])))
-
-/*
- * The same for passing in an actual pointer instead of a name tag.
- */
-#define __RING_SIZE(_s, _sz) \
- (__RD32(((_sz) - (long)&(_s)->ring + (long)(_s)) / sizeof((_s)->ring[0])))
-
-/*
- * Macros to make the correct C datatypes for a new kind of ring.
- *
- * To make a new ring datatype, you need to have two message structures,
- * let's say struct request, and struct response already defined.
- *
- * In a header where you want the ring datatype declared, you then do:
- *
- * DEFINE_RING_TYPES(mytag, struct request, struct response);
- *
- * These expand out to give you a set of types, as you can see below.
- * The most important of these are:
- *
- * struct mytag_sring - The shared ring.
- * struct mytag_front_ring - The 'front' half of the ring.
- * struct mytag_back_ring - The 'back' half of the ring.
- *
- * To initialize a ring in your code you need to know the location and size
- * of the shared memory area (PAGE_SIZE, for instance). To initialise
- * the front half:
- *
- * struct mytag_front_ring front_ring;
- * SHARED_RING_INIT((struct mytag_sring *)shared_page);
- * FRONT_RING_INIT(&front_ring, (struct mytag_sring *)shared_page,
- * PAGE_SIZE);
- *
- * Initializing the back follows similarly (note that only the front
- * initializes the shared ring):
- *
- * struct mytag_back_ring back_ring;
- * BACK_RING_INIT(&back_ring, (struct mytag_sring *)shared_page,
- * PAGE_SIZE);
- */
-
-#define DEFINE_RING_TYPES(__name, __req_t, __rsp_t) \
- \
-/* Shared ring entry */ \
-union __name##_sring_entry { \
- __req_t req; \
- __rsp_t rsp; \
-}; \
- \
-/* Shared ring page */ \
-struct __name##_sring { \
- RING_IDX req_prod, req_event; \
- RING_IDX rsp_prod, rsp_event; \
- uint8_t pad[48]; \
- union __name##_sring_entry ring[1]; /* variable-length */ \
-}; \
- \
-/* "Front" end's private variables */ \
-struct __name##_front_ring { \
- RING_IDX req_prod_pvt; \
- RING_IDX rsp_cons; \
- unsigned int nr_ents; \
- struct __name##_sring *sring; \
-}; \
- \
-/* "Back" end's private variables */ \
-struct __name##_back_ring { \
- RING_IDX rsp_prod_pvt; \
- RING_IDX req_cons; \
- unsigned int nr_ents; \
- struct __name##_sring *sring; \
-};
-
-/*
- * Macros for manipulating rings.
- *
- * FRONT_RING_whatever works on the "front end" of a ring: here
- * requests are pushed on to the ring and responses taken off it.
- *
- * BACK_RING_whatever works on the "back end" of a ring: here
- * requests are taken off the ring and responses put on.
- *
- * N.B. these macros do NO INTERLOCKS OR FLOW CONTROL.
- * This is OK in 1-for-1 request-response situations where the
- * requestor (front end) never has more than RING_SIZE()-1
- * outstanding requests.
- */
-
-/* Initialising empty rings */
-#define SHARED_RING_INIT(_s) do { \
- (_s)->req_prod = (_s)->rsp_prod = 0; \
- (_s)->req_event = (_s)->rsp_event = 1; \
- memset((_s)->pad, 0, sizeof((_s)->pad)); \
-} while(0)
-
-#define FRONT_RING_INIT(_r, _s, __size) do { \
- (_r)->req_prod_pvt = 0; \
- (_r)->rsp_cons = 0; \
- (_r)->nr_ents = __RING_SIZE(_s, __size); \
- (_r)->sring = (_s); \
-} while (0)
-
-#define BACK_RING_INIT(_r, _s, __size) do { \
- (_r)->rsp_prod_pvt = 0; \
- (_r)->req_cons = 0; \
- (_r)->nr_ents = __RING_SIZE(_s, __size); \
- (_r)->sring = (_s); \
-} while (0)
-
-/* Initialize to existing shared indexes -- for recovery */
-#define FRONT_RING_ATTACH(_r, _s, __size) do { \
- (_r)->sring = (_s); \
- (_r)->req_prod_pvt = (_s)->req_prod; \
- (_r)->rsp_cons = (_s)->rsp_prod; \
- (_r)->nr_ents = __RING_SIZE(_s, __size); \
-} while (0)
-
-#define BACK_RING_ATTACH(_r, _s, __size) do { \
- (_r)->sring = (_s); \
- (_r)->rsp_prod_pvt = (_s)->rsp_prod; \
- (_r)->req_cons = (_s)->req_prod; \
- (_r)->nr_ents = __RING_SIZE(_s, __size); \
-} while (0)
-
-/* How big is this ring? */
-#define RING_SIZE(_r) \
- ((_r)->nr_ents)
-
-/* Number of free requests (for use on front side only). */
-#define RING_FREE_REQUESTS(_r) \
- (RING_SIZE(_r) - ((_r)->req_prod_pvt - (_r)->rsp_cons))
-
-/* Test if there is an empty slot available on the front ring.
- * (This is only meaningful from the front. )
- */
-#define RING_FULL(_r) \
- (RING_FREE_REQUESTS(_r) == 0)
-
-/* Test if there are outstanding messages to be processed on a ring. */
-#define RING_HAS_UNCONSUMED_RESPONSES(_r) \
- ((_r)->sring->rsp_prod - (_r)->rsp_cons)
-
-#define RING_HAS_UNCONSUMED_REQUESTS(_r) \
- ({ \
- unsigned int req = (_r)->sring->req_prod - (_r)->req_cons; \
- unsigned int rsp = RING_SIZE(_r) - \
- ((_r)->req_cons - (_r)->rsp_prod_pvt); \
- req < rsp ? req : rsp; \
- })
-
-/* Direct access to individual ring elements, by index. */
-#define RING_GET_REQUEST(_r, _idx) \
- (&((_r)->sring->ring[((_idx) & (RING_SIZE(_r) - 1))].req))
-
-#define RING_GET_RESPONSE(_r, _idx) \
- (&((_r)->sring->ring[((_idx) & (RING_SIZE(_r) - 1))].rsp))
-
-/* Loop termination condition: Would the specified index overflow the ring? */
-#define RING_REQUEST_CONS_OVERFLOW(_r, _cons) \
- (((_cons) - (_r)->rsp_prod_pvt) >= RING_SIZE(_r))
-
-#define RING_PUSH_REQUESTS(_r) do { \
- wmb(); /* back sees requests /before/ updated producer index */ \
- (_r)->sring->req_prod = (_r)->req_prod_pvt; \
-} while (0)
-
-#define RING_PUSH_RESPONSES(_r) do { \
- wmb(); /* front sees responses /before/ updated producer index */ \
- (_r)->sring->rsp_prod = (_r)->rsp_prod_pvt; \
-} while (0)
-
-/*
- * Notification hold-off (req_event and rsp_event):
- *
- * When queueing requests or responses on a shared ring, it may not always be
- * necessary to notify the remote end. For example, if requests are in flight
- * in a backend, the front may be able to queue further requests without
- * notifying the back (if the back checks for new requests when it queues
- * responses).
- *
- * When enqueuing requests or responses:
- *
- * Use RING_PUSH_{REQUESTS,RESPONSES}_AND_CHECK_NOTIFY(). The second argument
- * is a boolean return value. True indicates that the receiver requires an
- * asynchronous notification.
- *
- * After dequeuing requests or responses (before sleeping the connection):
- *
- * Use RING_FINAL_CHECK_FOR_REQUESTS() or RING_FINAL_CHECK_FOR_RESPONSES().
- * The second argument is a boolean return value. True indicates that there
- * are pending messages on the ring (i.e., the connection should not be put
- * to sleep).
- *
- * These macros will set the req_event/rsp_event field to trigger a
- * notification on the very next message that is enqueued. If you want to
- * create batches of work (i.e., only receive a notification after several
- * messages have been enqueued) then you will need to create a customised
- * version of the FINAL_CHECK macro in your own code, which sets the event
- * field appropriately.
- */
-
-#define RING_PUSH_REQUESTS_AND_CHECK_NOTIFY(_r, _notify) do { \
- RING_IDX __old = (_r)->sring->req_prod; \
- RING_IDX __new = (_r)->req_prod_pvt; \
- wmb(); /* back sees requests /before/ updated producer index */ \
- (_r)->sring->req_prod = __new; \
- mb(); /* back sees new requests /before/ we check req_event */ \
- (_notify) = ((RING_IDX)(__new - (_r)->sring->req_event) < \
- (RING_IDX)(__new - __old)); \
-} while (0)
-
-#define RING_PUSH_RESPONSES_AND_CHECK_NOTIFY(_r, _notify) do { \
- RING_IDX __old = (_r)->sring->rsp_prod; \
- RING_IDX __new = (_r)->rsp_prod_pvt; \
- wmb(); /* front sees responses /before/ updated producer index */ \
- (_r)->sring->rsp_prod = __new; \
- mb(); /* front sees new responses /before/ we check rsp_event */ \
- (_notify) = ((RING_IDX)(__new - (_r)->sring->rsp_event) < \
- (RING_IDX)(__new - __old)); \
-} while (0)
-
-#define RING_FINAL_CHECK_FOR_REQUESTS(_r, _work_to_do) do { \
- (_work_to_do) = RING_HAS_UNCONSUMED_REQUESTS(_r); \
- if (_work_to_do) break; \
- (_r)->sring->req_event = (_r)->req_cons + 1; \
- mb(); \
- (_work_to_do) = RING_HAS_UNCONSUMED_REQUESTS(_r); \
-} while (0)
-
-#define RING_FINAL_CHECK_FOR_RESPONSES(_r, _work_to_do) do { \
- (_work_to_do) = RING_HAS_UNCONSUMED_RESPONSES(_r); \
- if (_work_to_do) break; \
- (_r)->sring->rsp_event = (_r)->rsp_cons + 1; \
- mb(); \
- (_work_to_do) = RING_HAS_UNCONSUMED_RESPONSES(_r); \
-} while (0)
-
-#endif /* __XEN_PUBLIC_IO_RING_H__ */
diff --git a/ANDROID_3.4.5/include/xen/interface/io/xenbus.h b/ANDROID_3.4.5/include/xen/interface/io/xenbus.h
deleted file mode 100644
index 9fda5329..00000000
--- a/ANDROID_3.4.5/include/xen/interface/io/xenbus.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*****************************************************************************
- * xenbus.h
- *
- * Xenbus protocol details.
- *
- * Copyright (C) 2005 XenSource Ltd.
- */
-
-#ifndef _XEN_PUBLIC_IO_XENBUS_H
-#define _XEN_PUBLIC_IO_XENBUS_H
-
-/* The state of either end of the Xenbus, i.e. the current communication
- status of initialisation across the bus. States here imply nothing about
- the state of the connection between the driver and the kernel's device
- layers. */
-enum xenbus_state
-{
- XenbusStateUnknown = 0,
- XenbusStateInitialising = 1,
- XenbusStateInitWait = 2, /* Finished early
- initialisation, but waiting
- for information from the peer
- or hotplug scripts. */
- XenbusStateInitialised = 3, /* Initialised and waiting for a
- connection from the peer. */
- XenbusStateConnected = 4,
- XenbusStateClosing = 5, /* The device is being closed
- due to an error or an unplug
- event. */
- XenbusStateClosed = 6,
-
- /*
- * Reconfiguring: The device is being reconfigured.
- */
- XenbusStateReconfiguring = 7,
-
- XenbusStateReconfigured = 8
-};
-
-#endif /* _XEN_PUBLIC_IO_XENBUS_H */
-
-/*
- * Local variables:
- * c-file-style: "linux"
- * indent-tabs-mode: t
- * c-indent-level: 8
- * c-basic-offset: 8
- * tab-width: 8
- * End:
- */
diff --git a/ANDROID_3.4.5/include/xen/interface/io/xs_wire.h b/ANDROID_3.4.5/include/xen/interface/io/xs_wire.h
deleted file mode 100644
index 7cdfca24..00000000
--- a/ANDROID_3.4.5/include/xen/interface/io/xs_wire.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Details of the "wire" protocol between Xen Store Daemon and client
- * library or guest kernel.
- * Copyright (C) 2005 Rusty Russell IBM Corporation
- */
-
-#ifndef _XS_WIRE_H
-#define _XS_WIRE_H
-
-enum xsd_sockmsg_type
-{
- XS_DEBUG,
- XS_DIRECTORY,
- XS_READ,
- XS_GET_PERMS,
- XS_WATCH,
- XS_UNWATCH,
- XS_TRANSACTION_START,
- XS_TRANSACTION_END,
- XS_INTRODUCE,
- XS_RELEASE,
- XS_GET_DOMAIN_PATH,
- XS_WRITE,
- XS_MKDIR,
- XS_RM,
- XS_SET_PERMS,
- XS_WATCH_EVENT,
- XS_ERROR,
- XS_IS_DOMAIN_INTRODUCED,
- XS_RESUME,
- XS_SET_TARGET,
- XS_RESTRICT
-};
-
-#define XS_WRITE_NONE "NONE"
-#define XS_WRITE_CREATE "CREATE"
-#define XS_WRITE_CREATE_EXCL "CREATE|EXCL"
-
-/* We hand errors as strings, for portability. */
-struct xsd_errors
-{
- int errnum;
- const char *errstring;
-};
-#define XSD_ERROR(x) { x, #x }
-static struct xsd_errors xsd_errors[] __attribute__((unused)) = {
- XSD_ERROR(EINVAL),
- XSD_ERROR(EACCES),
- XSD_ERROR(EEXIST),
- XSD_ERROR(EISDIR),
- XSD_ERROR(ENOENT),
- XSD_ERROR(ENOMEM),
- XSD_ERROR(ENOSPC),
- XSD_ERROR(EIO),
- XSD_ERROR(ENOTEMPTY),
- XSD_ERROR(ENOSYS),
- XSD_ERROR(EROFS),
- XSD_ERROR(EBUSY),
- XSD_ERROR(EAGAIN),
- XSD_ERROR(EISCONN)
-};
-
-struct xsd_sockmsg
-{
- uint32_t type; /* XS_??? */
- uint32_t req_id;/* Request identifier, echoed in daemon's response. */
- uint32_t tx_id; /* Transaction id (0 if not related to a transaction). */
- uint32_t len; /* Length of data following this. */
-
- /* Generally followed by nul-terminated string(s). */
-};
-
-enum xs_watch_type
-{
- XS_WATCH_PATH = 0,
- XS_WATCH_TOKEN
-};
-
-/* Inter-domain shared memory communications. */
-#define XENSTORE_RING_SIZE 1024
-typedef uint32_t XENSTORE_RING_IDX;
-#define MASK_XENSTORE_IDX(idx) ((idx) & (XENSTORE_RING_SIZE-1))
-struct xenstore_domain_interface {
- char req[XENSTORE_RING_SIZE]; /* Requests to xenstore daemon. */
- char rsp[XENSTORE_RING_SIZE]; /* Replies and async watch events. */
- XENSTORE_RING_IDX req_cons, req_prod;
- XENSTORE_RING_IDX rsp_cons, rsp_prod;
-};
-
-/* Violating this is very bad. See docs/misc/xenstore.txt. */
-#define XENSTORE_PAYLOAD_MAX 4096
-
-#endif /* _XS_WIRE_H */
diff --git a/ANDROID_3.4.5/include/xen/interface/memory.h b/ANDROID_3.4.5/include/xen/interface/memory.h
deleted file mode 100644
index eac3ce15..00000000
--- a/ANDROID_3.4.5/include/xen/interface/memory.h
+++ /dev/null
@@ -1,237 +0,0 @@
-/******************************************************************************
- * memory.h
- *
- * Memory reservation and information.
- *
- * Copyright (c) 2005, Keir Fraser <keir@xensource.com>
- */
-
-#ifndef __XEN_PUBLIC_MEMORY_H__
-#define __XEN_PUBLIC_MEMORY_H__
-
-#include <linux/spinlock.h>
-
-/*
- * Increase or decrease the specified domain's memory reservation. Returns a
- * -ve errcode on failure, or the # extents successfully allocated or freed.
- * arg == addr of struct xen_memory_reservation.
- */
-#define XENMEM_increase_reservation 0
-#define XENMEM_decrease_reservation 1
-#define XENMEM_populate_physmap 6
-struct xen_memory_reservation {
-
- /*
- * XENMEM_increase_reservation:
- * OUT: MFN (*not* GMFN) bases of extents that were allocated
- * XENMEM_decrease_reservation:
- * IN: GMFN bases of extents to free
- * XENMEM_populate_physmap:
- * IN: GPFN bases of extents to populate with memory
- * OUT: GMFN bases of extents that were allocated
- * (NB. This command also updates the mach_to_phys translation table)
- */
- GUEST_HANDLE(ulong) extent_start;
-
- /* Number of extents, and size/alignment of each (2^extent_order pages). */
- unsigned long nr_extents;
- unsigned int extent_order;
-
- /*
- * Maximum # bits addressable by the user of the allocated region (e.g.,
- * I/O devices often have a 32-bit limitation even in 64-bit systems). If
- * zero then the user has no addressing restriction.
- * This field is not used by XENMEM_decrease_reservation.
- */
- unsigned int address_bits;
-
- /*
- * Domain whose reservation is being changed.
- * Unprivileged domains can specify only DOMID_SELF.
- */
- domid_t domid;
-
-};
-DEFINE_GUEST_HANDLE_STRUCT(xen_memory_reservation);
-
-/*
- * An atomic exchange of memory pages. If return code is zero then
- * @out.extent_list provides GMFNs of the newly-allocated memory.
- * Returns zero on complete success, otherwise a negative error code.
- * On complete success then always @nr_exchanged == @in.nr_extents.
- * On partial success @nr_exchanged indicates how much work was done.
- */
-#define XENMEM_exchange 11
-struct xen_memory_exchange {
- /*
- * [IN] Details of memory extents to be exchanged (GMFN bases).
- * Note that @in.address_bits is ignored and unused.
- */
- struct xen_memory_reservation in;
-
- /*
- * [IN/OUT] Details of new memory extents.
- * We require that:
- * 1. @in.domid == @out.domid
- * 2. @in.nr_extents << @in.extent_order ==
- * @out.nr_extents << @out.extent_order
- * 3. @in.extent_start and @out.extent_start lists must not overlap
- * 4. @out.extent_start lists GPFN bases to be populated
- * 5. @out.extent_start is overwritten with allocated GMFN bases
- */
- struct xen_memory_reservation out;
-
- /*
- * [OUT] Number of input extents that were successfully exchanged:
- * 1. The first @nr_exchanged input extents were successfully
- * deallocated.
- * 2. The corresponding first entries in the output extent list correctly
- * indicate the GMFNs that were successfully exchanged.
- * 3. All other input and output extents are untouched.
- * 4. If not all input exents are exchanged then the return code of this
- * command will be non-zero.
- * 5. THIS FIELD MUST BE INITIALISED TO ZERO BY THE CALLER!
- */
- unsigned long nr_exchanged;
-};
-
-DEFINE_GUEST_HANDLE_STRUCT(xen_memory_exchange);
-/*
- * Returns the maximum machine frame number of mapped RAM in this system.
- * This command always succeeds (it never returns an error code).
- * arg == NULL.
- */
-#define XENMEM_maximum_ram_page 2
-
-/*
- * Returns the current or maximum memory reservation, in pages, of the
- * specified domain (may be DOMID_SELF). Returns -ve errcode on failure.
- * arg == addr of domid_t.
- */
-#define XENMEM_current_reservation 3
-#define XENMEM_maximum_reservation 4
-
-/*
- * Returns a list of MFN bases of 2MB extents comprising the machine_to_phys
- * mapping table. Architectures which do not have a m2p table do not implement
- * this command.
- * arg == addr of xen_machphys_mfn_list_t.
- */
-#define XENMEM_machphys_mfn_list 5
-struct xen_machphys_mfn_list {
- /*
- * Size of the 'extent_start' array. Fewer entries will be filled if the
- * machphys table is smaller than max_extents * 2MB.
- */
- unsigned int max_extents;
-
- /*
- * Pointer to buffer to fill with list of extent starts. If there are
- * any large discontiguities in the machine address space, 2MB gaps in
- * the machphys table will be represented by an MFN base of zero.
- */
- GUEST_HANDLE(ulong) extent_start;
-
- /*
- * Number of extents written to the above array. This will be smaller
- * than 'max_extents' if the machphys table is smaller than max_e * 2MB.
- */
- unsigned int nr_extents;
-};
-DEFINE_GUEST_HANDLE_STRUCT(xen_machphys_mfn_list);
-
-/*
- * Returns the location in virtual address space of the machine_to_phys
- * mapping table. Architectures which do not have a m2p table, or which do not
- * map it by default into guest address space, do not implement this command.
- * arg == addr of xen_machphys_mapping_t.
- */
-#define XENMEM_machphys_mapping 12
-struct xen_machphys_mapping {
- unsigned long v_start, v_end; /* Start and end virtual addresses. */
- unsigned long max_mfn; /* Maximum MFN that can be looked up. */
-};
-DEFINE_GUEST_HANDLE_STRUCT(xen_machphys_mapping_t);
-
-/*
- * Sets the GPFN at which a particular page appears in the specified guest's
- * pseudophysical address space.
- * arg == addr of xen_add_to_physmap_t.
- */
-#define XENMEM_add_to_physmap 7
-struct xen_add_to_physmap {
- /* Which domain to change the mapping for. */
- domid_t domid;
-
- /* Source mapping space. */
-#define XENMAPSPACE_shared_info 0 /* shared info page */
-#define XENMAPSPACE_grant_table 1 /* grant table page */
- unsigned int space;
-
- /* Index into source mapping space. */
- unsigned long idx;
-
- /* GPFN where the source mapping page should appear. */
- unsigned long gpfn;
-};
-DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap);
-
-/*
- * Translates a list of domain-specific GPFNs into MFNs. Returns a -ve error
- * code on failure. This call only works for auto-translated guests.
- */
-#define XENMEM_translate_gpfn_list 8
-struct xen_translate_gpfn_list {
- /* Which domain to translate for? */
- domid_t domid;
-
- /* Length of list. */
- unsigned long nr_gpfns;
-
- /* List of GPFNs to translate. */
- GUEST_HANDLE(ulong) gpfn_list;
-
- /*
- * Output list to contain MFN translations. May be the same as the input
- * list (in which case each input GPFN is overwritten with the output MFN).
- */
- GUEST_HANDLE(ulong) mfn_list;
-};
-DEFINE_GUEST_HANDLE_STRUCT(xen_translate_gpfn_list);
-
-/*
- * Returns the pseudo-physical memory map as it was when the domain
- * was started (specified by XENMEM_set_memory_map).
- * arg == addr of struct xen_memory_map.
- */
-#define XENMEM_memory_map 9
-struct xen_memory_map {
- /*
- * On call the number of entries which can be stored in buffer. On
- * return the number of entries which have been stored in
- * buffer.
- */
- unsigned int nr_entries;
-
- /*
- * Entries in the buffer are in the same format as returned by the
- * BIOS INT 0x15 EAX=0xE820 call.
- */
- GUEST_HANDLE(void) buffer;
-};
-DEFINE_GUEST_HANDLE_STRUCT(xen_memory_map);
-
-/*
- * Returns the real physical memory map. Passes the same structure as
- * XENMEM_memory_map.
- * arg == addr of struct xen_memory_map.
- */
-#define XENMEM_machine_memory_map 10
-
-
-/*
- * Prevent the balloon driver from changing the memory reservation
- * during a driver critical region.
- */
-extern spinlock_t xen_reservation_lock;
-#endif /* __XEN_PUBLIC_MEMORY_H__ */
diff --git a/ANDROID_3.4.5/include/xen/interface/physdev.h b/ANDROID_3.4.5/include/xen/interface/physdev.h
deleted file mode 100644
index 9ce788d8..00000000
--- a/ANDROID_3.4.5/include/xen/interface/physdev.h
+++ /dev/null
@@ -1,282 +0,0 @@
-/*
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef __XEN_PUBLIC_PHYSDEV_H__
-#define __XEN_PUBLIC_PHYSDEV_H__
-
-/*
- * Prototype for this hypercall is:
- * int physdev_op(int cmd, void *args)
- * @cmd == PHYSDEVOP_??? (physdev operation).
- * @args == Operation-specific extra arguments (NULL if none).
- */
-
-/*
- * Notify end-of-interrupt (EOI) for the specified IRQ.
- * @arg == pointer to physdev_eoi structure.
- */
-#define PHYSDEVOP_eoi 12
-struct physdev_eoi {
- /* IN */
- uint32_t irq;
-};
-
-/*
- * Register a shared page for the hypervisor to indicate whether the guest
- * must issue PHYSDEVOP_eoi. The semantics of PHYSDEVOP_eoi change slightly
- * once the guest used this function in that the associated event channel
- * will automatically get unmasked. The page registered is used as a bit
- * array indexed by Xen's PIRQ value.
- */
-#define PHYSDEVOP_pirq_eoi_gmfn_v1 17
-/*
- * Register a shared page for the hypervisor to indicate whether the
- * guest must issue PHYSDEVOP_eoi. This hypercall is very similar to
- * PHYSDEVOP_pirq_eoi_gmfn_v1 but it doesn't change the semantics of
- * PHYSDEVOP_eoi. The page registered is used as a bit array indexed by
- * Xen's PIRQ value.
- */
-#define PHYSDEVOP_pirq_eoi_gmfn_v2 28
-struct physdev_pirq_eoi_gmfn {
- /* IN */
- unsigned long gmfn;
-};
-
-/*
- * Query the status of an IRQ line.
- * @arg == pointer to physdev_irq_status_query structure.
- */
-#define PHYSDEVOP_irq_status_query 5
-struct physdev_irq_status_query {
- /* IN */
- uint32_t irq;
- /* OUT */
- uint32_t flags; /* XENIRQSTAT_* */
-};
-
-/* Need to call PHYSDEVOP_eoi when the IRQ has been serviced? */
-#define _XENIRQSTAT_needs_eoi (0)
-#define XENIRQSTAT_needs_eoi (1U<<_XENIRQSTAT_needs_eoi)
-
-/* IRQ shared by multiple guests? */
-#define _XENIRQSTAT_shared (1)
-#define XENIRQSTAT_shared (1U<<_XENIRQSTAT_shared)
-
-/*
- * Set the current VCPU's I/O privilege level.
- * @arg == pointer to physdev_set_iopl structure.
- */
-#define PHYSDEVOP_set_iopl 6
-struct physdev_set_iopl {
- /* IN */
- uint32_t iopl;
-};
-
-/*
- * Set the current VCPU's I/O-port permissions bitmap.
- * @arg == pointer to physdev_set_iobitmap structure.
- */
-#define PHYSDEVOP_set_iobitmap 7
-struct physdev_set_iobitmap {
- /* IN */
- uint8_t * bitmap;
- uint32_t nr_ports;
-};
-
-/*
- * Read or write an IO-APIC register.
- * @arg == pointer to physdev_apic structure.
- */
-#define PHYSDEVOP_apic_read 8
-#define PHYSDEVOP_apic_write 9
-struct physdev_apic {
- /* IN */
- unsigned long apic_physbase;
- uint32_t reg;
- /* IN or OUT */
- uint32_t value;
-};
-
-/*
- * Allocate or free a physical upcall vector for the specified IRQ line.
- * @arg == pointer to physdev_irq structure.
- */
-#define PHYSDEVOP_alloc_irq_vector 10
-#define PHYSDEVOP_free_irq_vector 11
-struct physdev_irq {
- /* IN */
- uint32_t irq;
- /* IN or OUT */
- uint32_t vector;
-};
-
-#define MAP_PIRQ_TYPE_MSI 0x0
-#define MAP_PIRQ_TYPE_GSI 0x1
-#define MAP_PIRQ_TYPE_UNKNOWN 0x2
-#define MAP_PIRQ_TYPE_MSI_SEG 0x3
-
-#define PHYSDEVOP_map_pirq 13
-struct physdev_map_pirq {
- domid_t domid;
- /* IN */
- int type;
- /* IN */
- int index;
- /* IN or OUT */
- int pirq;
- /* IN - high 16 bits hold segment for MAP_PIRQ_TYPE_MSI_SEG */
- int bus;
- /* IN */
- int devfn;
- /* IN */
- int entry_nr;
- /* IN */
- uint64_t table_base;
-};
-
-#define PHYSDEVOP_unmap_pirq 14
-struct physdev_unmap_pirq {
- domid_t domid;
- /* IN */
- int pirq;
-};
-
-#define PHYSDEVOP_manage_pci_add 15
-#define PHYSDEVOP_manage_pci_remove 16
-struct physdev_manage_pci {
- /* IN */
- uint8_t bus;
- uint8_t devfn;
-};
-
-#define PHYSDEVOP_restore_msi 19
-struct physdev_restore_msi {
- /* IN */
- uint8_t bus;
- uint8_t devfn;
-};
-
-#define PHYSDEVOP_manage_pci_add_ext 20
-struct physdev_manage_pci_ext {
- /* IN */
- uint8_t bus;
- uint8_t devfn;
- unsigned is_extfn;
- unsigned is_virtfn;
- struct {
- uint8_t bus;
- uint8_t devfn;
- } physfn;
-};
-
-/*
- * Argument to physdev_op_compat() hypercall. Superceded by new physdev_op()
- * hypercall since 0x00030202.
- */
-struct physdev_op {
- uint32_t cmd;
- union {
- struct physdev_irq_status_query irq_status_query;
- struct physdev_set_iopl set_iopl;
- struct physdev_set_iobitmap set_iobitmap;
- struct physdev_apic apic_op;
- struct physdev_irq irq_op;
- } u;
-};
-
-#define PHYSDEVOP_setup_gsi 21
-struct physdev_setup_gsi {
- int gsi;
- /* IN */
- uint8_t triggering;
- /* IN */
- uint8_t polarity;
- /* IN */
-};
-
-#define PHYSDEVOP_get_nr_pirqs 22
-struct physdev_nr_pirqs {
- /* OUT */
- uint32_t nr_pirqs;
-};
-
-/* type is MAP_PIRQ_TYPE_GSI or MAP_PIRQ_TYPE_MSI
- * the hypercall returns a free pirq */
-#define PHYSDEVOP_get_free_pirq 23
-struct physdev_get_free_pirq {
- /* IN */
- int type;
- /* OUT */
- uint32_t pirq;
-};
-
-#define XEN_PCI_DEV_EXTFN 0x1
-#define XEN_PCI_DEV_VIRTFN 0x2
-#define XEN_PCI_DEV_PXM 0x4
-
-#define PHYSDEVOP_pci_device_add 25
-struct physdev_pci_device_add {
- /* IN */
- uint16_t seg;
- uint8_t bus;
- uint8_t devfn;
- uint32_t flags;
- struct {
- uint8_t bus;
- uint8_t devfn;
- } physfn;
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
- uint32_t optarr[];
-#elif defined(__GNUC__)
- uint32_t optarr[0];
-#endif
-};
-
-#define PHYSDEVOP_pci_device_remove 26
-#define PHYSDEVOP_restore_msi_ext 27
-struct physdev_pci_device {
- /* IN */
- uint16_t seg;
- uint8_t bus;
- uint8_t devfn;
-};
-
-/*
- * Notify that some PIRQ-bound event channels have been unmasked.
- * ** This command is obsolete since interface version 0x00030202 and is **
- * ** unsupported by newer versions of Xen. **
- */
-#define PHYSDEVOP_IRQ_UNMASK_NOTIFY 4
-
-/*
- * These all-capitals physdev operation names are superceded by the new names
- * (defined above) since interface version 0x00030202.
- */
-#define PHYSDEVOP_IRQ_STATUS_QUERY PHYSDEVOP_irq_status_query
-#define PHYSDEVOP_SET_IOPL PHYSDEVOP_set_iopl
-#define PHYSDEVOP_SET_IOBITMAP PHYSDEVOP_set_iobitmap
-#define PHYSDEVOP_APIC_READ PHYSDEVOP_apic_read
-#define PHYSDEVOP_APIC_WRITE PHYSDEVOP_apic_write
-#define PHYSDEVOP_ASSIGN_VECTOR PHYSDEVOP_alloc_irq_vector
-#define PHYSDEVOP_FREE_VECTOR PHYSDEVOP_free_irq_vector
-#define PHYSDEVOP_IRQ_NEEDS_UNMASK_NOTIFY XENIRQSTAT_needs_eoi
-#define PHYSDEVOP_IRQ_SHARED XENIRQSTAT_shared
-
-#endif /* __XEN_PUBLIC_PHYSDEV_H__ */
diff --git a/ANDROID_3.4.5/include/xen/interface/platform.h b/ANDROID_3.4.5/include/xen/interface/platform.h
deleted file mode 100644
index 486653f0..00000000
--- a/ANDROID_3.4.5/include/xen/interface/platform.h
+++ /dev/null
@@ -1,338 +0,0 @@
-/******************************************************************************
- * platform.h
- *
- * Hardware platform operations. Intended for use by domain-0 kernel.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- * Copyright (c) 2002-2006, K Fraser
- */
-
-#ifndef __XEN_PUBLIC_PLATFORM_H__
-#define __XEN_PUBLIC_PLATFORM_H__
-
-#include "xen.h"
-
-#define XENPF_INTERFACE_VERSION 0x03000001
-
-/*
- * Set clock such that it would read <secs,nsecs> after 00:00:00 UTC,
- * 1 January, 1970 if the current system time was <system_time>.
- */
-#define XENPF_settime 17
-struct xenpf_settime {
- /* IN variables. */
- uint32_t secs;
- uint32_t nsecs;
- uint64_t system_time;
-};
-DEFINE_GUEST_HANDLE_STRUCT(xenpf_settime_t);
-
-/*
- * Request memory range (@mfn, @mfn+@nr_mfns-1) to have type @type.
- * On x86, @type is an architecture-defined MTRR memory type.
- * On success, returns the MTRR that was used (@reg) and a handle that can
- * be passed to XENPF_DEL_MEMTYPE to accurately tear down the new setting.
- * (x86-specific).
- */
-#define XENPF_add_memtype 31
-struct xenpf_add_memtype {
- /* IN variables. */
- unsigned long mfn;
- uint64_t nr_mfns;
- uint32_t type;
- /* OUT variables. */
- uint32_t handle;
- uint32_t reg;
-};
-DEFINE_GUEST_HANDLE_STRUCT(xenpf_add_memtype_t);
-
-/*
- * Tear down an existing memory-range type. If @handle is remembered then it
- * should be passed in to accurately tear down the correct setting (in case
- * of overlapping memory regions with differing types). If it is not known
- * then @handle should be set to zero. In all cases @reg must be set.
- * (x86-specific).
- */
-#define XENPF_del_memtype 32
-struct xenpf_del_memtype {
- /* IN variables. */
- uint32_t handle;
- uint32_t reg;
-};
-DEFINE_GUEST_HANDLE_STRUCT(xenpf_del_memtype_t);
-
-/* Read current type of an MTRR (x86-specific). */
-#define XENPF_read_memtype 33
-struct xenpf_read_memtype {
- /* IN variables. */
- uint32_t reg;
- /* OUT variables. */
- unsigned long mfn;
- uint64_t nr_mfns;
- uint32_t type;
-};
-DEFINE_GUEST_HANDLE_STRUCT(xenpf_read_memtype_t);
-
-#define XENPF_microcode_update 35
-struct xenpf_microcode_update {
- /* IN variables. */
- GUEST_HANDLE(void) data; /* Pointer to microcode data */
- uint32_t length; /* Length of microcode data. */
-};
-DEFINE_GUEST_HANDLE_STRUCT(xenpf_microcode_update_t);
-
-#define XENPF_platform_quirk 39
-#define QUIRK_NOIRQBALANCING 1 /* Do not restrict IO-APIC RTE targets */
-#define QUIRK_IOAPIC_BAD_REGSEL 2 /* IO-APIC REGSEL forgets its value */
-#define QUIRK_IOAPIC_GOOD_REGSEL 3 /* IO-APIC REGSEL behaves properly */
-struct xenpf_platform_quirk {
- /* IN variables. */
- uint32_t quirk_id;
-};
-DEFINE_GUEST_HANDLE_STRUCT(xenpf_platform_quirk_t);
-
-#define XENPF_firmware_info 50
-#define XEN_FW_DISK_INFO 1 /* from int 13 AH=08/41/48 */
-#define XEN_FW_DISK_MBR_SIGNATURE 2 /* from MBR offset 0x1b8 */
-#define XEN_FW_VBEDDC_INFO 3 /* from int 10 AX=4f15 */
-struct xenpf_firmware_info {
- /* IN variables. */
- uint32_t type;
- uint32_t index;
- /* OUT variables. */
- union {
- struct {
- /* Int13, Fn48: Check Extensions Present. */
- uint8_t device; /* %dl: bios device number */
- uint8_t version; /* %ah: major version */
- uint16_t interface_support; /* %cx: support bitmap */
- /* Int13, Fn08: Legacy Get Device Parameters. */
- uint16_t legacy_max_cylinder; /* %cl[7:6]:%ch: max cyl # */
- uint8_t legacy_max_head; /* %dh: max head # */
- uint8_t legacy_sectors_per_track; /* %cl[5:0]: max sector # */
- /* Int13, Fn41: Get Device Parameters (as filled into %ds:%esi). */
- /* NB. First uint16_t of buffer must be set to buffer size. */
- GUEST_HANDLE(void) edd_params;
- } disk_info; /* XEN_FW_DISK_INFO */
- struct {
- uint8_t device; /* bios device number */
- uint32_t mbr_signature; /* offset 0x1b8 in mbr */
- } disk_mbr_signature; /* XEN_FW_DISK_MBR_SIGNATURE */
- struct {
- /* Int10, AX=4F15: Get EDID info. */
- uint8_t capabilities;
- uint8_t edid_transfer_time;
- /* must refer to 128-byte buffer */
- GUEST_HANDLE(uchar) edid;
- } vbeddc_info; /* XEN_FW_VBEDDC_INFO */
- } u;
-};
-DEFINE_GUEST_HANDLE_STRUCT(xenpf_firmware_info_t);
-
-#define XENPF_enter_acpi_sleep 51
-struct xenpf_enter_acpi_sleep {
- /* IN variables */
- uint16_t pm1a_cnt_val; /* PM1a control value. */
- uint16_t pm1b_cnt_val; /* PM1b control value. */
- uint32_t sleep_state; /* Which state to enter (Sn). */
- uint32_t flags; /* Must be zero. */
-};
-DEFINE_GUEST_HANDLE_STRUCT(xenpf_enter_acpi_sleep_t);
-
-#define XENPF_change_freq 52
-struct xenpf_change_freq {
- /* IN variables */
- uint32_t flags; /* Must be zero. */
- uint32_t cpu; /* Physical cpu. */
- uint64_t freq; /* New frequency (Hz). */
-};
-DEFINE_GUEST_HANDLE_STRUCT(xenpf_change_freq_t);
-
-/*
- * Get idle times (nanoseconds since boot) for physical CPUs specified in the
- * @cpumap_bitmap with range [0..@cpumap_nr_cpus-1]. The @idletime array is
- * indexed by CPU number; only entries with the corresponding @cpumap_bitmap
- * bit set are written to. On return, @cpumap_bitmap is modified so that any
- * non-existent CPUs are cleared. Such CPUs have their @idletime array entry
- * cleared.
- */
-#define XENPF_getidletime 53
-struct xenpf_getidletime {
- /* IN/OUT variables */
- /* IN: CPUs to interrogate; OUT: subset of IN which are present */
- GUEST_HANDLE(uchar) cpumap_bitmap;
- /* IN variables */
- /* Size of cpumap bitmap. */
- uint32_t cpumap_nr_cpus;
- /* Must be indexable for every cpu in cpumap_bitmap. */
- GUEST_HANDLE(uint64_t) idletime;
- /* OUT variables */
- /* System time when the idletime snapshots were taken. */
- uint64_t now;
-};
-DEFINE_GUEST_HANDLE_STRUCT(xenpf_getidletime_t);
-
-#define XENPF_set_processor_pminfo 54
-
-/* ability bits */
-#define XEN_PROCESSOR_PM_CX 1
-#define XEN_PROCESSOR_PM_PX 2
-#define XEN_PROCESSOR_PM_TX 4
-
-/* cmd type */
-#define XEN_PM_CX 0
-#define XEN_PM_PX 1
-#define XEN_PM_TX 2
-#define XEN_PM_PDC 3
-/* Px sub info type */
-#define XEN_PX_PCT 1
-#define XEN_PX_PSS 2
-#define XEN_PX_PPC 4
-#define XEN_PX_PSD 8
-
-struct xen_power_register {
- uint32_t space_id;
- uint32_t bit_width;
- uint32_t bit_offset;
- uint32_t access_size;
- uint64_t address;
-};
-
-struct xen_processor_csd {
- uint32_t domain; /* domain number of one dependent group */
- uint32_t coord_type; /* coordination type */
- uint32_t num; /* number of processors in same domain */
-};
-DEFINE_GUEST_HANDLE_STRUCT(xen_processor_csd);
-
-struct xen_processor_cx {
- struct xen_power_register reg; /* GAS for Cx trigger register */
- uint8_t type; /* cstate value, c0: 0, c1: 1, ... */
- uint32_t latency; /* worst latency (ms) to enter/exit this cstate */
- uint32_t power; /* average power consumption(mW) */
- uint32_t dpcnt; /* number of dependency entries */
- GUEST_HANDLE(xen_processor_csd) dp; /* NULL if no dependency */
-};
-DEFINE_GUEST_HANDLE_STRUCT(xen_processor_cx);
-
-struct xen_processor_flags {
- uint32_t bm_control:1;
- uint32_t bm_check:1;
- uint32_t has_cst:1;
- uint32_t power_setup_done:1;
- uint32_t bm_rld_set:1;
-};
-
-struct xen_processor_power {
- uint32_t count; /* number of C state entries in array below */
- struct xen_processor_flags flags; /* global flags of this processor */
- GUEST_HANDLE(xen_processor_cx) states; /* supported c states */
-};
-
-struct xen_pct_register {
- uint8_t descriptor;
- uint16_t length;
- uint8_t space_id;
- uint8_t bit_width;
- uint8_t bit_offset;
- uint8_t reserved;
- uint64_t address;
-};
-
-struct xen_processor_px {
- uint64_t core_frequency; /* megahertz */
- uint64_t power; /* milliWatts */
- uint64_t transition_latency; /* microseconds */
- uint64_t bus_master_latency; /* microseconds */
- uint64_t control; /* control value */
- uint64_t status; /* success indicator */
-};
-DEFINE_GUEST_HANDLE_STRUCT(xen_processor_px);
-
-struct xen_psd_package {
- uint64_t num_entries;
- uint64_t revision;
- uint64_t domain;
- uint64_t coord_type;
- uint64_t num_processors;
-};
-
-struct xen_processor_performance {
- uint32_t flags; /* flag for Px sub info type */
- uint32_t platform_limit; /* Platform limitation on freq usage */
- struct xen_pct_register control_register;
- struct xen_pct_register status_register;
- uint32_t state_count; /* total available performance states */
- GUEST_HANDLE(xen_processor_px) states;
- struct xen_psd_package domain_info;
- uint32_t shared_type; /* coordination type of this processor */
-};
-DEFINE_GUEST_HANDLE_STRUCT(xen_processor_performance);
-
-struct xenpf_set_processor_pminfo {
- /* IN variables */
- uint32_t id; /* ACPI CPU ID */
- uint32_t type; /* {XEN_PM_CX, XEN_PM_PX} */
- union {
- struct xen_processor_power power;/* Cx: _CST/_CSD */
- struct xen_processor_performance perf; /* Px: _PPC/_PCT/_PSS/_PSD */
- GUEST_HANDLE(uint32_t) pdc;
- };
-};
-DEFINE_GUEST_HANDLE_STRUCT(xenpf_set_processor_pminfo);
-
-#define XENPF_get_cpuinfo 55
-struct xenpf_pcpuinfo {
- /* IN */
- uint32_t xen_cpuid;
- /* OUT */
- /* The maxium cpu_id that is present */
- uint32_t max_present;
-#define XEN_PCPU_FLAGS_ONLINE 1
- /* Correponding xen_cpuid is not present*/
-#define XEN_PCPU_FLAGS_INVALID 2
- uint32_t flags;
- uint32_t apic_id;
- uint32_t acpi_id;
-};
-DEFINE_GUEST_HANDLE_STRUCT(xenpf_pcpuinfo);
-
-struct xen_platform_op {
- uint32_t cmd;
- uint32_t interface_version; /* XENPF_INTERFACE_VERSION */
- union {
- struct xenpf_settime settime;
- struct xenpf_add_memtype add_memtype;
- struct xenpf_del_memtype del_memtype;
- struct xenpf_read_memtype read_memtype;
- struct xenpf_microcode_update microcode;
- struct xenpf_platform_quirk platform_quirk;
- struct xenpf_firmware_info firmware_info;
- struct xenpf_enter_acpi_sleep enter_acpi_sleep;
- struct xenpf_change_freq change_freq;
- struct xenpf_getidletime getidletime;
- struct xenpf_set_processor_pminfo set_pminfo;
- struct xenpf_pcpuinfo pcpu_info;
- uint8_t pad[128];
- } u;
-};
-DEFINE_GUEST_HANDLE_STRUCT(xen_platform_op_t);
-
-#endif /* __XEN_PUBLIC_PLATFORM_H__ */
diff --git a/ANDROID_3.4.5/include/xen/interface/sched.h b/ANDROID_3.4.5/include/xen/interface/sched.h
deleted file mode 100644
index dd55dac3..00000000
--- a/ANDROID_3.4.5/include/xen/interface/sched.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/******************************************************************************
- * sched.h
- *
- * Scheduler state interactions
- *
- * Copyright (c) 2005, Keir Fraser <keir@xensource.com>
- */
-
-#ifndef __XEN_PUBLIC_SCHED_H__
-#define __XEN_PUBLIC_SCHED_H__
-
-#include "event_channel.h"
-
-/*
- * The prototype for this hypercall is:
- * long sched_op_new(int cmd, void *arg)
- * @cmd == SCHEDOP_??? (scheduler operation).
- * @arg == Operation-specific extra argument(s), as described below.
- *
- * **NOTE**:
- * Versions of Xen prior to 3.0.2 provide only the following legacy version
- * of this hypercall, supporting only the commands yield, block and shutdown:
- * long sched_op(int cmd, unsigned long arg)
- * @cmd == SCHEDOP_??? (scheduler operation).
- * @arg == 0 (SCHEDOP_yield and SCHEDOP_block)
- * == SHUTDOWN_* code (SCHEDOP_shutdown)
- */
-
-/*
- * Voluntarily yield the CPU.
- * @arg == NULL.
- */
-#define SCHEDOP_yield 0
-
-/*
- * Block execution of this VCPU until an event is received for processing.
- * If called with event upcalls masked, this operation will atomically
- * reenable event delivery and check for pending events before blocking the
- * VCPU. This avoids a "wakeup waiting" race.
- * @arg == NULL.
- */
-#define SCHEDOP_block 1
-
-/*
- * Halt execution of this domain (all VCPUs) and notify the system controller.
- * @arg == pointer to sched_shutdown structure.
- */
-#define SCHEDOP_shutdown 2
-struct sched_shutdown {
- unsigned int reason; /* SHUTDOWN_* */
-};
-DEFINE_GUEST_HANDLE_STRUCT(sched_shutdown);
-
-/*
- * Poll a set of event-channel ports. Return when one or more are pending. An
- * optional timeout may be specified.
- * @arg == pointer to sched_poll structure.
- */
-#define SCHEDOP_poll 3
-struct sched_poll {
- GUEST_HANDLE(evtchn_port_t) ports;
- unsigned int nr_ports;
- uint64_t timeout;
-};
-DEFINE_GUEST_HANDLE_STRUCT(sched_poll);
-
-/*
- * Declare a shutdown for another domain. The main use of this function is
- * in interpreting shutdown requests and reasons for fully-virtualized
- * domains. A para-virtualized domain may use SCHEDOP_shutdown directly.
- * @arg == pointer to sched_remote_shutdown structure.
- */
-#define SCHEDOP_remote_shutdown 4
-struct sched_remote_shutdown {
- domid_t domain_id; /* Remote domain ID */
- unsigned int reason; /* SHUTDOWN_xxx reason */
-};
-
-/*
- * Latch a shutdown code, so that when the domain later shuts down it
- * reports this code to the control tools.
- * @arg == as for SCHEDOP_shutdown.
- */
-#define SCHEDOP_shutdown_code 5
-
-/*
- * Setup, poke and destroy a domain watchdog timer.
- * @arg == pointer to sched_watchdog structure.
- * With id == 0, setup a domain watchdog timer to cause domain shutdown
- * after timeout, returns watchdog id.
- * With id != 0 and timeout == 0, destroy domain watchdog timer.
- * With id != 0 and timeout != 0, poke watchdog timer and set new timeout.
- */
-#define SCHEDOP_watchdog 6
-struct sched_watchdog {
- uint32_t id; /* watchdog ID */
- uint32_t timeout; /* timeout */
-};
-
-/*
- * Reason codes for SCHEDOP_shutdown. These may be interpreted by control
- * software to determine the appropriate action. For the most part, Xen does
- * not care about the shutdown code.
- */
-#define SHUTDOWN_poweroff 0 /* Domain exited normally. Clean up and kill. */
-#define SHUTDOWN_reboot 1 /* Clean up, kill, and then restart. */
-#define SHUTDOWN_suspend 2 /* Clean up, save suspend info, kill. */
-#define SHUTDOWN_crash 3 /* Tell controller we've crashed. */
-#define SHUTDOWN_watchdog 4 /* Restart because watchdog time expired. */
-
-#endif /* __XEN_PUBLIC_SCHED_H__ */
diff --git a/ANDROID_3.4.5/include/xen/interface/vcpu.h b/ANDROID_3.4.5/include/xen/interface/vcpu.h
deleted file mode 100644
index 87e6f8a4..00000000
--- a/ANDROID_3.4.5/include/xen/interface/vcpu.h
+++ /dev/null
@@ -1,173 +0,0 @@
-/******************************************************************************
- * vcpu.h
- *
- * VCPU initialisation, query, and hotplug.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- * Copyright (c) 2005, Keir Fraser <keir@xensource.com>
- */
-
-#ifndef __XEN_PUBLIC_VCPU_H__
-#define __XEN_PUBLIC_VCPU_H__
-
-/*
- * Prototype for this hypercall is:
- * int vcpu_op(int cmd, int vcpuid, void *extra_args)
- * @cmd == VCPUOP_??? (VCPU operation).
- * @vcpuid == VCPU to operate on.
- * @extra_args == Operation-specific extra arguments (NULL if none).
- */
-
-/*
- * Initialise a VCPU. Each VCPU can be initialised only once. A
- * newly-initialised VCPU will not run until it is brought up by VCPUOP_up.
- *
- * @extra_arg == pointer to vcpu_guest_context structure containing initial
- * state for the VCPU.
- */
-#define VCPUOP_initialise 0
-
-/*
- * Bring up a VCPU. This makes the VCPU runnable. This operation will fail
- * if the VCPU has not been initialised (VCPUOP_initialise).
- */
-#define VCPUOP_up 1
-
-/*
- * Bring down a VCPU (i.e., make it non-runnable).
- * There are a few caveats that callers should observe:
- * 1. This operation may return, and VCPU_is_up may return false, before the
- * VCPU stops running (i.e., the command is asynchronous). It is a good
- * idea to ensure that the VCPU has entered a non-critical loop before
- * bringing it down. Alternatively, this operation is guaranteed
- * synchronous if invoked by the VCPU itself.
- * 2. After a VCPU is initialised, there is currently no way to drop all its
- * references to domain memory. Even a VCPU that is down still holds
- * memory references via its pagetable base pointer and GDT. It is good
- * practise to move a VCPU onto an 'idle' or default page table, LDT and
- * GDT before bringing it down.
- */
-#define VCPUOP_down 2
-
-/* Returns 1 if the given VCPU is up. */
-#define VCPUOP_is_up 3
-
-/*
- * Return information about the state and running time of a VCPU.
- * @extra_arg == pointer to vcpu_runstate_info structure.
- */
-#define VCPUOP_get_runstate_info 4
-struct vcpu_runstate_info {
- /* VCPU's current state (RUNSTATE_*). */
- int state;
- /* When was current state entered (system time, ns)? */
- uint64_t state_entry_time;
- /*
- * Time spent in each RUNSTATE_* (ns). The sum of these times is
- * guaranteed not to drift from system time.
- */
- uint64_t time[4];
-};
-DEFINE_GUEST_HANDLE_STRUCT(vcpu_runstate_info);
-
-/* VCPU is currently running on a physical CPU. */
-#define RUNSTATE_running 0
-
-/* VCPU is runnable, but not currently scheduled on any physical CPU. */
-#define RUNSTATE_runnable 1
-
-/* VCPU is blocked (a.k.a. idle). It is therefore not runnable. */
-#define RUNSTATE_blocked 2
-
-/*
- * VCPU is not runnable, but it is not blocked.
- * This is a 'catch all' state for things like hotplug and pauses by the
- * system administrator (or for critical sections in the hypervisor).
- * RUNSTATE_blocked dominates this state (it is the preferred state).
- */
-#define RUNSTATE_offline 3
-
-/*
- * Register a shared memory area from which the guest may obtain its own
- * runstate information without needing to execute a hypercall.
- * Notes:
- * 1. The registered address may be virtual or physical, depending on the
- * platform. The virtual address should be registered on x86 systems.
- * 2. Only one shared area may be registered per VCPU. The shared area is
- * updated by the hypervisor each time the VCPU is scheduled. Thus
- * runstate.state will always be RUNSTATE_running and
- * runstate.state_entry_time will indicate the system time at which the
- * VCPU was last scheduled to run.
- * @extra_arg == pointer to vcpu_register_runstate_memory_area structure.
- */
-#define VCPUOP_register_runstate_memory_area 5
-struct vcpu_register_runstate_memory_area {
- union {
- GUEST_HANDLE(vcpu_runstate_info) h;
- struct vcpu_runstate_info *v;
- uint64_t p;
- } addr;
-};
-
-/*
- * Set or stop a VCPU's periodic timer. Every VCPU has one periodic timer
- * which can be set via these commands. Periods smaller than one millisecond
- * may not be supported.
- */
-#define VCPUOP_set_periodic_timer 6 /* arg == vcpu_set_periodic_timer_t */
-#define VCPUOP_stop_periodic_timer 7 /* arg == NULL */
-struct vcpu_set_periodic_timer {
- uint64_t period_ns;
-};
-DEFINE_GUEST_HANDLE_STRUCT(vcpu_set_periodic_timer);
-
-/*
- * Set or stop a VCPU's single-shot timer. Every VCPU has one single-shot
- * timer which can be set via these commands.
- */
-#define VCPUOP_set_singleshot_timer 8 /* arg == vcpu_set_singleshot_timer_t */
-#define VCPUOP_stop_singleshot_timer 9 /* arg == NULL */
-struct vcpu_set_singleshot_timer {
- uint64_t timeout_abs_ns;
- uint32_t flags; /* VCPU_SSHOTTMR_??? */
-};
-DEFINE_GUEST_HANDLE_STRUCT(vcpu_set_singleshot_timer);
-
-/* Flags to VCPUOP_set_singleshot_timer. */
- /* Require the timeout to be in the future (return -ETIME if it's passed). */
-#define _VCPU_SSHOTTMR_future (0)
-#define VCPU_SSHOTTMR_future (1U << _VCPU_SSHOTTMR_future)
-
-/*
- * Register a memory location in the guest address space for the
- * vcpu_info structure. This allows the guest to place the vcpu_info
- * structure in a convenient place, such as in a per-cpu data area.
- * The pointer need not be page aligned, but the structure must not
- * cross a page boundary.
- */
-#define VCPUOP_register_vcpu_info 10 /* arg == struct vcpu_info */
-struct vcpu_register_vcpu_info {
- uint64_t mfn; /* mfn of page to place vcpu_info */
- uint32_t offset; /* offset within page */
- uint32_t rsvd; /* unused */
-};
-DEFINE_GUEST_HANDLE_STRUCT(vcpu_register_vcpu_info);
-
-#endif /* __XEN_PUBLIC_VCPU_H__ */
diff --git a/ANDROID_3.4.5/include/xen/interface/version.h b/ANDROID_3.4.5/include/xen/interface/version.h
deleted file mode 100644
index e8b6519d..00000000
--- a/ANDROID_3.4.5/include/xen/interface/version.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/******************************************************************************
- * version.h
- *
- * Xen version, type, and compile information.
- *
- * Copyright (c) 2005, Nguyen Anh Quynh <aquynh@gmail.com>
- * Copyright (c) 2005, Keir Fraser <keir@xensource.com>
- */
-
-#ifndef __XEN_PUBLIC_VERSION_H__
-#define __XEN_PUBLIC_VERSION_H__
-
-/* NB. All ops return zero on success, except XENVER_version. */
-
-/* arg == NULL; returns major:minor (16:16). */
-#define XENVER_version 0
-
-/* arg == xen_extraversion_t. */
-#define XENVER_extraversion 1
-struct xen_extraversion {
- char extraversion[16];
-};
-#define XEN_EXTRAVERSION_LEN (sizeof(struct xen_extraversion))
-
-/* arg == xen_compile_info_t. */
-#define XENVER_compile_info 2
-struct xen_compile_info {
- char compiler[64];
- char compile_by[16];
- char compile_domain[32];
- char compile_date[32];
-};
-
-#define XENVER_capabilities 3
-struct xen_capabilities_info {
- char info[1024];
-};
-#define XEN_CAPABILITIES_INFO_LEN (sizeof(struct xen_capabilities_info))
-
-#define XENVER_changeset 4
-struct xen_changeset_info {
- char info[64];
-};
-#define XEN_CHANGESET_INFO_LEN (sizeof(struct xen_changeset_info))
-
-#define XENVER_platform_parameters 5
-struct xen_platform_parameters {
- unsigned long virt_start;
-};
-
-#define XENVER_get_features 6
-struct xen_feature_info {
- unsigned int submap_idx; /* IN: which 32-bit submap to return */
- uint32_t submap; /* OUT: 32-bit submap */
-};
-
-/* Declares the features reported by XENVER_get_features. */
-#include "features.h"
-
-/* arg == NULL; returns host memory page size. */
-#define XENVER_pagesize 7
-
-#endif /* __XEN_PUBLIC_VERSION_H__ */
diff --git a/ANDROID_3.4.5/include/xen/interface/xen.h b/ANDROID_3.4.5/include/xen/interface/xen.h
deleted file mode 100644
index a8908049..00000000
--- a/ANDROID_3.4.5/include/xen/interface/xen.h
+++ /dev/null
@@ -1,535 +0,0 @@
-/******************************************************************************
- * xen.h
- *
- * Guest OS interface to Xen.
- *
- * Copyright (c) 2004, K A Fraser
- */
-
-#ifndef __XEN_PUBLIC_XEN_H__
-#define __XEN_PUBLIC_XEN_H__
-
-#include <asm/xen/interface.h>
-#include <asm/pvclock-abi.h>
-
-/*
- * XEN "SYSTEM CALLS" (a.k.a. HYPERCALLS).
- */
-
-/*
- * x86_32: EAX = vector; EBX, ECX, EDX, ESI, EDI = args 1, 2, 3, 4, 5.
- * EAX = return value
- * (argument registers may be clobbered on return)
- * x86_64: RAX = vector; RDI, RSI, RDX, R10, R8, R9 = args 1, 2, 3, 4, 5, 6.
- * RAX = return value
- * (argument registers not clobbered on return; RCX, R11 are)
- */
-#define __HYPERVISOR_set_trap_table 0
-#define __HYPERVISOR_mmu_update 1
-#define __HYPERVISOR_set_gdt 2
-#define __HYPERVISOR_stack_switch 3
-#define __HYPERVISOR_set_callbacks 4
-#define __HYPERVISOR_fpu_taskswitch 5
-#define __HYPERVISOR_sched_op_compat 6
-#define __HYPERVISOR_dom0_op 7
-#define __HYPERVISOR_set_debugreg 8
-#define __HYPERVISOR_get_debugreg 9
-#define __HYPERVISOR_update_descriptor 10
-#define __HYPERVISOR_memory_op 12
-#define __HYPERVISOR_multicall 13
-#define __HYPERVISOR_update_va_mapping 14
-#define __HYPERVISOR_set_timer_op 15
-#define __HYPERVISOR_event_channel_op_compat 16
-#define __HYPERVISOR_xen_version 17
-#define __HYPERVISOR_console_io 18
-#define __HYPERVISOR_physdev_op_compat 19
-#define __HYPERVISOR_grant_table_op 20
-#define __HYPERVISOR_vm_assist 21
-#define __HYPERVISOR_update_va_mapping_otherdomain 22
-#define __HYPERVISOR_iret 23 /* x86 only */
-#define __HYPERVISOR_vcpu_op 24
-#define __HYPERVISOR_set_segment_base 25 /* x86/64 only */
-#define __HYPERVISOR_mmuext_op 26
-#define __HYPERVISOR_acm_op 27
-#define __HYPERVISOR_nmi_op 28
-#define __HYPERVISOR_sched_op 29
-#define __HYPERVISOR_callback_op 30
-#define __HYPERVISOR_xenoprof_op 31
-#define __HYPERVISOR_event_channel_op 32
-#define __HYPERVISOR_physdev_op 33
-#define __HYPERVISOR_hvm_op 34
-#define __HYPERVISOR_tmem_op 38
-
-/* Architecture-specific hypercall definitions. */
-#define __HYPERVISOR_arch_0 48
-#define __HYPERVISOR_arch_1 49
-#define __HYPERVISOR_arch_2 50
-#define __HYPERVISOR_arch_3 51
-#define __HYPERVISOR_arch_4 52
-#define __HYPERVISOR_arch_5 53
-#define __HYPERVISOR_arch_6 54
-#define __HYPERVISOR_arch_7 55
-
-/*
- * VIRTUAL INTERRUPTS
- *
- * Virtual interrupts that a guest OS may receive from Xen.
- */
-#define VIRQ_TIMER 0 /* Timebase update, and/or requested timeout. */
-#define VIRQ_DEBUG 1 /* Request guest to dump debug info. */
-#define VIRQ_CONSOLE 2 /* (DOM0) Bytes received on emergency console. */
-#define VIRQ_DOM_EXC 3 /* (DOM0) Exceptional event for some domain. */
-#define VIRQ_DEBUGGER 6 /* (DOM0) A domain has paused for debugging. */
-
-/* Architecture-specific VIRQ definitions. */
-#define VIRQ_ARCH_0 16
-#define VIRQ_ARCH_1 17
-#define VIRQ_ARCH_2 18
-#define VIRQ_ARCH_3 19
-#define VIRQ_ARCH_4 20
-#define VIRQ_ARCH_5 21
-#define VIRQ_ARCH_6 22
-#define VIRQ_ARCH_7 23
-
-#define NR_VIRQS 24
-/*
- * MMU-UPDATE REQUESTS
- *
- * HYPERVISOR_mmu_update() accepts a list of (ptr, val) pairs.
- * A foreigndom (FD) can be specified (or DOMID_SELF for none).
- * Where the FD has some effect, it is described below.
- * ptr[1:0] specifies the appropriate MMU_* command.
- *
- * ptr[1:0] == MMU_NORMAL_PT_UPDATE:
- * Updates an entry in a page table. If updating an L1 table, and the new
- * table entry is valid/present, the mapped frame must belong to the FD, if
- * an FD has been specified. If attempting to map an I/O page then the
- * caller assumes the privilege of the FD.
- * FD == DOMID_IO: Permit /only/ I/O mappings, at the priv level of the caller.
- * FD == DOMID_XEN: Map restricted areas of Xen's heap space.
- * ptr[:2] -- Machine address of the page-table entry to modify.
- * val -- Value to write.
- *
- * ptr[1:0] == MMU_MACHPHYS_UPDATE:
- * Updates an entry in the machine->pseudo-physical mapping table.
- * ptr[:2] -- Machine address within the frame whose mapping to modify.
- * The frame must belong to the FD, if one is specified.
- * val -- Value to write into the mapping entry.
- *
- * ptr[1:0] == MMU_PT_UPDATE_PRESERVE_AD:
- * As MMU_NORMAL_PT_UPDATE above, but A/D bits currently in the PTE are ORed
- * with those in @val.
- */
-#define MMU_NORMAL_PT_UPDATE 0 /* checked '*ptr = val'. ptr is MA. */
-#define MMU_MACHPHYS_UPDATE 1 /* ptr = MA of frame to modify entry for */
-#define MMU_PT_UPDATE_PRESERVE_AD 2 /* atomically: *ptr = val | (*ptr&(A|D)) */
-
-/*
- * MMU EXTENDED OPERATIONS
- *
- * HYPERVISOR_mmuext_op() accepts a list of mmuext_op structures.
- * A foreigndom (FD) can be specified (or DOMID_SELF for none).
- * Where the FD has some effect, it is described below.
- *
- * cmd: MMUEXT_(UN)PIN_*_TABLE
- * mfn: Machine frame number to be (un)pinned as a p.t. page.
- * The frame must belong to the FD, if one is specified.
- *
- * cmd: MMUEXT_NEW_BASEPTR
- * mfn: Machine frame number of new page-table base to install in MMU.
- *
- * cmd: MMUEXT_NEW_USER_BASEPTR [x86/64 only]
- * mfn: Machine frame number of new page-table base to install in MMU
- * when in user space.
- *
- * cmd: MMUEXT_TLB_FLUSH_LOCAL
- * No additional arguments. Flushes local TLB.
- *
- * cmd: MMUEXT_INVLPG_LOCAL
- * linear_addr: Linear address to be flushed from the local TLB.
- *
- * cmd: MMUEXT_TLB_FLUSH_MULTI
- * vcpumask: Pointer to bitmap of VCPUs to be flushed.
- *
- * cmd: MMUEXT_INVLPG_MULTI
- * linear_addr: Linear address to be flushed.
- * vcpumask: Pointer to bitmap of VCPUs to be flushed.
- *
- * cmd: MMUEXT_TLB_FLUSH_ALL
- * No additional arguments. Flushes all VCPUs' TLBs.
- *
- * cmd: MMUEXT_INVLPG_ALL
- * linear_addr: Linear address to be flushed from all VCPUs' TLBs.
- *
- * cmd: MMUEXT_FLUSH_CACHE
- * No additional arguments. Writes back and flushes cache contents.
- *
- * cmd: MMUEXT_SET_LDT
- * linear_addr: Linear address of LDT base (NB. must be page-aligned).
- * nr_ents: Number of entries in LDT.
- */
-#define MMUEXT_PIN_L1_TABLE 0
-#define MMUEXT_PIN_L2_TABLE 1
-#define MMUEXT_PIN_L3_TABLE 2
-#define MMUEXT_PIN_L4_TABLE 3
-#define MMUEXT_UNPIN_TABLE 4
-#define MMUEXT_NEW_BASEPTR 5
-#define MMUEXT_TLB_FLUSH_LOCAL 6
-#define MMUEXT_INVLPG_LOCAL 7
-#define MMUEXT_TLB_FLUSH_MULTI 8
-#define MMUEXT_INVLPG_MULTI 9
-#define MMUEXT_TLB_FLUSH_ALL 10
-#define MMUEXT_INVLPG_ALL 11
-#define MMUEXT_FLUSH_CACHE 12
-#define MMUEXT_SET_LDT 13
-#define MMUEXT_NEW_USER_BASEPTR 15
-
-#ifndef __ASSEMBLY__
-struct mmuext_op {
- unsigned int cmd;
- union {
- /* [UN]PIN_TABLE, NEW_BASEPTR, NEW_USER_BASEPTR */
- unsigned long mfn;
- /* INVLPG_LOCAL, INVLPG_ALL, SET_LDT */
- unsigned long linear_addr;
- } arg1;
- union {
- /* SET_LDT */
- unsigned int nr_ents;
- /* TLB_FLUSH_MULTI, INVLPG_MULTI */
- void *vcpumask;
- } arg2;
-};
-DEFINE_GUEST_HANDLE_STRUCT(mmuext_op);
-#endif
-
-/* These are passed as 'flags' to update_va_mapping. They can be ORed. */
-/* When specifying UVMF_MULTI, also OR in a pointer to a CPU bitmap. */
-/* UVMF_LOCAL is merely UVMF_MULTI with a NULL bitmap pointer. */
-#define UVMF_NONE (0UL<<0) /* No flushing at all. */
-#define UVMF_TLB_FLUSH (1UL<<0) /* Flush entire TLB(s). */
-#define UVMF_INVLPG (2UL<<0) /* Flush only one entry. */
-#define UVMF_FLUSHTYPE_MASK (3UL<<0)
-#define UVMF_MULTI (0UL<<2) /* Flush subset of TLBs. */
-#define UVMF_LOCAL (0UL<<2) /* Flush local TLB. */
-#define UVMF_ALL (1UL<<2) /* Flush all TLBs. */
-
-/*
- * Commands to HYPERVISOR_console_io().
- */
-#define CONSOLEIO_write 0
-#define CONSOLEIO_read 1
-
-/*
- * Commands to HYPERVISOR_vm_assist().
- */
-#define VMASST_CMD_enable 0
-#define VMASST_CMD_disable 1
-#define VMASST_TYPE_4gb_segments 0
-#define VMASST_TYPE_4gb_segments_notify 1
-#define VMASST_TYPE_writable_pagetables 2
-#define VMASST_TYPE_pae_extended_cr3 3
-#define MAX_VMASST_TYPE 3
-
-#ifndef __ASSEMBLY__
-
-typedef uint16_t domid_t;
-
-/* Domain ids >= DOMID_FIRST_RESERVED cannot be used for ordinary domains. */
-#define DOMID_FIRST_RESERVED (0x7FF0U)
-
-/* DOMID_SELF is used in certain contexts to refer to oneself. */
-#define DOMID_SELF (0x7FF0U)
-
-/*
- * DOMID_IO is used to restrict page-table updates to mapping I/O memory.
- * Although no Foreign Domain need be specified to map I/O pages, DOMID_IO
- * is useful to ensure that no mappings to the OS's own heap are accidentally
- * installed. (e.g., in Linux this could cause havoc as reference counts
- * aren't adjusted on the I/O-mapping code path).
- * This only makes sense in MMUEXT_SET_FOREIGNDOM, but in that context can
- * be specified by any calling domain.
- */
-#define DOMID_IO (0x7FF1U)
-
-/*
- * DOMID_XEN is used to allow privileged domains to map restricted parts of
- * Xen's heap space (e.g., the machine_to_phys table).
- * This only makes sense in MMUEXT_SET_FOREIGNDOM, and is only permitted if
- * the caller is privileged.
- */
-#define DOMID_XEN (0x7FF2U)
-
-/*
- * Send an array of these to HYPERVISOR_mmu_update().
- * NB. The fields are natural pointer/address size for this architecture.
- */
-struct mmu_update {
- uint64_t ptr; /* Machine address of PTE. */
- uint64_t val; /* New contents of PTE. */
-};
-DEFINE_GUEST_HANDLE_STRUCT(mmu_update);
-
-/*
- * Send an array of these to HYPERVISOR_multicall().
- * NB. The fields are natural register size for this architecture.
- */
-struct multicall_entry {
- unsigned long op;
- long result;
- unsigned long args[6];
-};
-DEFINE_GUEST_HANDLE_STRUCT(multicall_entry);
-
-/*
- * Event channel endpoints per domain:
- * 1024 if a long is 32 bits; 4096 if a long is 64 bits.
- */
-#define NR_EVENT_CHANNELS (sizeof(unsigned long) * sizeof(unsigned long) * 64)
-
-struct vcpu_time_info {
- /*
- * Updates to the following values are preceded and followed
- * by an increment of 'version'. The guest can therefore
- * detect updates by looking for changes to 'version'. If the
- * least-significant bit of the version number is set then an
- * update is in progress and the guest must wait to read a
- * consistent set of values. The correct way to interact with
- * the version number is similar to Linux's seqlock: see the
- * implementations of read_seqbegin/read_seqretry.
- */
- uint32_t version;
- uint32_t pad0;
- uint64_t tsc_timestamp; /* TSC at last update of time vals. */
- uint64_t system_time; /* Time, in nanosecs, since boot. */
- /*
- * Current system time:
- * system_time + ((tsc - tsc_timestamp) << tsc_shift) * tsc_to_system_mul
- * CPU frequency (Hz):
- * ((10^9 << 32) / tsc_to_system_mul) >> tsc_shift
- */
- uint32_t tsc_to_system_mul;
- int8_t tsc_shift;
- int8_t pad1[3];
-}; /* 32 bytes */
-
-struct vcpu_info {
- /*
- * 'evtchn_upcall_pending' is written non-zero by Xen to indicate
- * a pending notification for a particular VCPU. It is then cleared
- * by the guest OS /before/ checking for pending work, thus avoiding
- * a set-and-check race. Note that the mask is only accessed by Xen
- * on the CPU that is currently hosting the VCPU. This means that the
- * pending and mask flags can be updated by the guest without special
- * synchronisation (i.e., no need for the x86 LOCK prefix).
- * This may seem suboptimal because if the pending flag is set by
- * a different CPU then an IPI may be scheduled even when the mask
- * is set. However, note:
- * 1. The task of 'interrupt holdoff' is covered by the per-event-
- * channel mask bits. A 'noisy' event that is continually being
- * triggered can be masked at source at this very precise
- * granularity.
- * 2. The main purpose of the per-VCPU mask is therefore to restrict
- * reentrant execution: whether for concurrency control, or to
- * prevent unbounded stack usage. Whatever the purpose, we expect
- * that the mask will be asserted only for short periods at a time,
- * and so the likelihood of a 'spurious' IPI is suitably small.
- * The mask is read before making an event upcall to the guest: a
- * non-zero mask therefore guarantees that the VCPU will not receive
- * an upcall activation. The mask is cleared when the VCPU requests
- * to block: this avoids wakeup-waiting races.
- */
- uint8_t evtchn_upcall_pending;
- uint8_t evtchn_upcall_mask;
- unsigned long evtchn_pending_sel;
- struct arch_vcpu_info arch;
- struct pvclock_vcpu_time_info time;
-}; /* 64 bytes (x86) */
-
-/*
- * Xen/kernel shared data -- pointer provided in start_info.
- * NB. We expect that this struct is smaller than a page.
- */
-struct shared_info {
- struct vcpu_info vcpu_info[MAX_VIRT_CPUS];
-
- /*
- * A domain can create "event channels" on which it can send and receive
- * asynchronous event notifications. There are three classes of event that
- * are delivered by this mechanism:
- * 1. Bi-directional inter- and intra-domain connections. Domains must
- * arrange out-of-band to set up a connection (usually by allocating
- * an unbound 'listener' port and avertising that via a storage service
- * such as xenstore).
- * 2. Physical interrupts. A domain with suitable hardware-access
- * privileges can bind an event-channel port to a physical interrupt
- * source.
- * 3. Virtual interrupts ('events'). A domain can bind an event-channel
- * port to a virtual interrupt source, such as the virtual-timer
- * device or the emergency console.
- *
- * Event channels are addressed by a "port index". Each channel is
- * associated with two bits of information:
- * 1. PENDING -- notifies the domain that there is a pending notification
- * to be processed. This bit is cleared by the guest.
- * 2. MASK -- if this bit is clear then a 0->1 transition of PENDING
- * will cause an asynchronous upcall to be scheduled. This bit is only
- * updated by the guest. It is read-only within Xen. If a channel
- * becomes pending while the channel is masked then the 'edge' is lost
- * (i.e., when the channel is unmasked, the guest must manually handle
- * pending notifications as no upcall will be scheduled by Xen).
- *
- * To expedite scanning of pending notifications, any 0->1 pending
- * transition on an unmasked channel causes a corresponding bit in a
- * per-vcpu selector word to be set. Each bit in the selector covers a
- * 'C long' in the PENDING bitfield array.
- */
- unsigned long evtchn_pending[sizeof(unsigned long) * 8];
- unsigned long evtchn_mask[sizeof(unsigned long) * 8];
-
- /*
- * Wallclock time: updated only by control software. Guests should base
- * their gettimeofday() syscall on this wallclock-base value.
- */
- struct pvclock_wall_clock wc;
-
- struct arch_shared_info arch;
-
-};
-
-/*
- * Start-of-day memory layout for the initial domain (DOM0):
- * 1. The domain is started within contiguous virtual-memory region.
- * 2. The contiguous region begins and ends on an aligned 4MB boundary.
- * 3. The region start corresponds to the load address of the OS image.
- * If the load address is not 4MB aligned then the address is rounded down.
- * 4. This the order of bootstrap elements in the initial virtual region:
- * a. relocated kernel image
- * b. initial ram disk [mod_start, mod_len]
- * c. list of allocated page frames [mfn_list, nr_pages]
- * d. start_info_t structure [register ESI (x86)]
- * e. bootstrap page tables [pt_base, CR3 (x86)]
- * f. bootstrap stack [register ESP (x86)]
- * 5. Bootstrap elements are packed together, but each is 4kB-aligned.
- * 6. The initial ram disk may be omitted.
- * 7. The list of page frames forms a contiguous 'pseudo-physical' memory
- * layout for the domain. In particular, the bootstrap virtual-memory
- * region is a 1:1 mapping to the first section of the pseudo-physical map.
- * 8. All bootstrap elements are mapped read-writable for the guest OS. The
- * only exception is the bootstrap page table, which is mapped read-only.
- * 9. There is guaranteed to be at least 512kB padding after the final
- * bootstrap element. If necessary, the bootstrap virtual region is
- * extended by an extra 4MB to ensure this.
- */
-
-#define MAX_GUEST_CMDLINE 1024
-struct start_info {
- /* THE FOLLOWING ARE FILLED IN BOTH ON INITIAL BOOT AND ON RESUME. */
- char magic[32]; /* "xen-<version>-<platform>". */
- unsigned long nr_pages; /* Total pages allocated to this domain. */
- unsigned long shared_info; /* MACHINE address of shared info struct. */
- uint32_t flags; /* SIF_xxx flags. */
- unsigned long store_mfn; /* MACHINE page number of shared page. */
- uint32_t store_evtchn; /* Event channel for store communication. */
- union {
- struct {
- unsigned long mfn; /* MACHINE page number of console page. */
- uint32_t evtchn; /* Event channel for console page. */
- } domU;
- struct {
- uint32_t info_off; /* Offset of console_info struct. */
- uint32_t info_size; /* Size of console_info struct from start.*/
- } dom0;
- } console;
- /* THE FOLLOWING ARE ONLY FILLED IN ON INITIAL BOOT (NOT RESUME). */
- unsigned long pt_base; /* VIRTUAL address of page directory. */
- unsigned long nr_pt_frames; /* Number of bootstrap p.t. frames. */
- unsigned long mfn_list; /* VIRTUAL address of page-frame list. */
- unsigned long mod_start; /* VIRTUAL address of pre-loaded module. */
- unsigned long mod_len; /* Size (bytes) of pre-loaded module. */
- int8_t cmd_line[MAX_GUEST_CMDLINE];
-};
-
-struct dom0_vga_console_info {
- uint8_t video_type;
-#define XEN_VGATYPE_TEXT_MODE_3 0x03
-#define XEN_VGATYPE_VESA_LFB 0x23
-
- union {
- struct {
- /* Font height, in pixels. */
- uint16_t font_height;
- /* Cursor location (column, row). */
- uint16_t cursor_x, cursor_y;
- /* Number of rows and columns (dimensions in characters). */
- uint16_t rows, columns;
- } text_mode_3;
-
- struct {
- /* Width and height, in pixels. */
- uint16_t width, height;
- /* Bytes per scan line. */
- uint16_t bytes_per_line;
- /* Bits per pixel. */
- uint16_t bits_per_pixel;
- /* LFB physical address, and size (in units of 64kB). */
- uint32_t lfb_base;
- uint32_t lfb_size;
- /* RGB mask offsets and sizes, as defined by VBE 1.2+ */
- uint8_t red_pos, red_size;
- uint8_t green_pos, green_size;
- uint8_t blue_pos, blue_size;
- uint8_t rsvd_pos, rsvd_size;
-
- /* VESA capabilities (offset 0xa, VESA command 0x4f00). */
- uint32_t gbl_caps;
- /* Mode attributes (offset 0x0, VESA command 0x4f01). */
- uint16_t mode_attrs;
- } vesa_lfb;
- } u;
-};
-
-/* These flags are passed in the 'flags' field of start_info_t. */
-#define SIF_PRIVILEGED (1<<0) /* Is the domain privileged? */
-#define SIF_INITDOMAIN (1<<1) /* Is this the initial control domain? */
-#define SIF_PM_MASK (0xFF<<8) /* reserve 1 byte for xen-pm options */
-
-typedef uint64_t cpumap_t;
-
-typedef uint8_t xen_domain_handle_t[16];
-
-/* Turn a plain number into a C unsigned long constant. */
-#define __mk_unsigned_long(x) x ## UL
-#define mk_unsigned_long(x) __mk_unsigned_long(x)
-
-#define TMEM_SPEC_VERSION 1
-
-struct tmem_op {
- uint32_t cmd;
- int32_t pool_id;
- union {
- struct { /* for cmd == TMEM_NEW_POOL */
- uint64_t uuid[2];
- uint32_t flags;
- } new;
- struct {
- uint64_t oid[3];
- uint32_t index;
- uint32_t tmem_offset;
- uint32_t pfn_offset;
- uint32_t len;
- GUEST_HANDLE(void) gmfn; /* guest machine page frame */
- } gen;
- } u;
-};
-
-DEFINE_GUEST_HANDLE(u64);
-
-#else /* __ASSEMBLY__ */
-
-/* In assembly code we cannot use C numeric constant suffixes. */
-#define mk_unsigned_long(x) x
-
-#endif /* !__ASSEMBLY__ */
-
-#endif /* __XEN_PUBLIC_XEN_H__ */
diff --git a/ANDROID_3.4.5/include/xen/interface/xencomm.h b/ANDROID_3.4.5/include/xen/interface/xencomm.h
deleted file mode 100644
index ac45e071..00000000
--- a/ANDROID_3.4.5/include/xen/interface/xencomm.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- * Copyright (C) IBM Corp. 2006
- */
-
-#ifndef _XEN_XENCOMM_H_
-#define _XEN_XENCOMM_H_
-
-/* A xencomm descriptor is a scatter/gather list containing physical
- * addresses corresponding to a virtually contiguous memory area. The
- * hypervisor translates these physical addresses to machine addresses to copy
- * to and from the virtually contiguous area.
- */
-
-#define XENCOMM_MAGIC 0x58434F4D /* 'XCOM' */
-#define XENCOMM_INVALID (~0UL)
-
-struct xencomm_desc {
- uint32_t magic;
- uint32_t nr_addrs; /* the number of entries in address[] */
- uint64_t address[0];
-};
-
-#endif /* _XEN_XENCOMM_H_ */
diff --git a/ANDROID_3.4.5/include/xen/page.h b/ANDROID_3.4.5/include/xen/page.h
deleted file mode 100644
index 12765b6f..00000000
--- a/ANDROID_3.4.5/include/xen/page.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef _XEN_PAGE_H
-#define _XEN_PAGE_H
-
-#include <asm/xen/page.h>
-
-struct xen_memory_region {
- phys_addr_t start;
- phys_addr_t size;
-};
-
-#define XEN_EXTRA_MEM_MAX_REGIONS 128 /* == E820MAX */
-
-extern __initdata
-struct xen_memory_region xen_extra_mem[XEN_EXTRA_MEM_MAX_REGIONS];
-
-extern unsigned long xen_released_pages;
-
-#endif /* _XEN_PAGE_H */
diff --git a/ANDROID_3.4.5/include/xen/platform_pci.h b/ANDROID_3.4.5/include/xen/platform_pci.h
deleted file mode 100644
index 438c256c..00000000
--- a/ANDROID_3.4.5/include/xen/platform_pci.h
+++ /dev/null
@@ -1,51 +0,0 @@
-#ifndef _XEN_PLATFORM_PCI_H
-#define _XEN_PLATFORM_PCI_H
-
-#define XEN_IOPORT_MAGIC_VAL 0x49d2
-#define XEN_IOPORT_LINUX_PRODNUM 0x0003
-#define XEN_IOPORT_LINUX_DRVVER 0x0001
-
-#define XEN_IOPORT_BASE 0x10
-
-#define XEN_IOPORT_PLATFLAGS (XEN_IOPORT_BASE + 0) /* 1 byte access (R/W) */
-#define XEN_IOPORT_MAGIC (XEN_IOPORT_BASE + 0) /* 2 byte access (R) */
-#define XEN_IOPORT_UNPLUG (XEN_IOPORT_BASE + 0) /* 2 byte access (W) */
-#define XEN_IOPORT_DRVVER (XEN_IOPORT_BASE + 0) /* 4 byte access (W) */
-
-#define XEN_IOPORT_SYSLOG (XEN_IOPORT_BASE + 2) /* 1 byte access (W) */
-#define XEN_IOPORT_PROTOVER (XEN_IOPORT_BASE + 2) /* 1 byte access (R) */
-#define XEN_IOPORT_PRODNUM (XEN_IOPORT_BASE + 2) /* 2 byte access (W) */
-
-#define XEN_UNPLUG_ALL_IDE_DISKS (1<<0)
-#define XEN_UNPLUG_ALL_NICS (1<<1)
-#define XEN_UNPLUG_AUX_IDE_DISKS (1<<2)
-#define XEN_UNPLUG_ALL (XEN_UNPLUG_ALL_IDE_DISKS|\
- XEN_UNPLUG_ALL_NICS|\
- XEN_UNPLUG_AUX_IDE_DISKS)
-
-#define XEN_UNPLUG_UNNECESSARY (1<<16)
-#define XEN_UNPLUG_NEVER (1<<17)
-
-static inline int xen_must_unplug_nics(void) {
-#if (defined(CONFIG_XEN_NETDEV_FRONTEND) || \
- defined(CONFIG_XEN_NETDEV_FRONTEND_MODULE)) && \
- defined(CONFIG_XEN_PVHVM)
- return 1;
-#else
- return 0;
-#endif
-}
-
-static inline int xen_must_unplug_disks(void) {
-#if (defined(CONFIG_XEN_BLKDEV_FRONTEND) || \
- defined(CONFIG_XEN_BLKDEV_FRONTEND_MODULE)) && \
- defined(CONFIG_XEN_PVHVM)
- return 1;
-#else
- return 0;
-#endif
-}
-
-extern int xen_platform_pci_unplug;
-
-#endif /* _XEN_PLATFORM_PCI_H */
diff --git a/ANDROID_3.4.5/include/xen/privcmd.h b/ANDROID_3.4.5/include/xen/privcmd.h
deleted file mode 100644
index 17857fb4..00000000
--- a/ANDROID_3.4.5/include/xen/privcmd.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/******************************************************************************
- * privcmd.h
- *
- * Interface to /proc/xen/privcmd.
- *
- * Copyright (c) 2003-2005, K A Fraser
- *
- * 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; or, when distributed
- * separately from the Linux kernel or incorporated into other
- * software packages, subject to the following license:
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this source file (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use, copy, modify,
- * merge, publish, distribute, sublicense, and/or sell copies of the Software,
- * and to permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-
-#ifndef __LINUX_PUBLIC_PRIVCMD_H__
-#define __LINUX_PUBLIC_PRIVCMD_H__
-
-#include <linux/types.h>
-#include <linux/compiler.h>
-
-typedef unsigned long xen_pfn_t;
-
-struct privcmd_hypercall {
- __u64 op;
- __u64 arg[5];
-};
-
-struct privcmd_mmap_entry {
- __u64 va;
- __u64 mfn;
- __u64 npages;
-};
-
-struct privcmd_mmap {
- int num;
- domid_t dom; /* target domain */
- struct privcmd_mmap_entry __user *entry;
-};
-
-struct privcmd_mmapbatch {
- int num; /* number of pages to populate */
- domid_t dom; /* target domain */
- __u64 addr; /* virtual address */
- xen_pfn_t __user *arr; /* array of mfns - top nibble set on err */
-};
-
-/*
- * @cmd: IOCTL_PRIVCMD_HYPERCALL
- * @arg: &privcmd_hypercall_t
- * Return: Value returned from execution of the specified hypercall.
- */
-#define IOCTL_PRIVCMD_HYPERCALL \
- _IOC(_IOC_NONE, 'P', 0, sizeof(struct privcmd_hypercall))
-#define IOCTL_PRIVCMD_MMAP \
- _IOC(_IOC_NONE, 'P', 2, sizeof(struct privcmd_mmap))
-#define IOCTL_PRIVCMD_MMAPBATCH \
- _IOC(_IOC_NONE, 'P', 3, sizeof(struct privcmd_mmapbatch))
-
-#endif /* __LINUX_PUBLIC_PRIVCMD_H__ */
diff --git a/ANDROID_3.4.5/include/xen/swiotlb-xen.h b/ANDROID_3.4.5/include/xen/swiotlb-xen.h
deleted file mode 100644
index 4f4d449f..00000000
--- a/ANDROID_3.4.5/include/xen/swiotlb-xen.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef __LINUX_SWIOTLB_XEN_H
-#define __LINUX_SWIOTLB_XEN_H
-
-#include <linux/swiotlb.h>
-
-extern void xen_swiotlb_init(int verbose);
-
-extern void
-*xen_swiotlb_alloc_coherent(struct device *hwdev, size_t size,
- dma_addr_t *dma_handle, gfp_t flags,
- struct dma_attrs *attrs);
-
-extern void
-xen_swiotlb_free_coherent(struct device *hwdev, size_t size,
- void *vaddr, dma_addr_t dma_handle,
- struct dma_attrs *attrs);
-
-extern dma_addr_t xen_swiotlb_map_page(struct device *dev, struct page *page,
- unsigned long offset, size_t size,
- enum dma_data_direction dir,
- struct dma_attrs *attrs);
-
-extern void xen_swiotlb_unmap_page(struct device *hwdev, dma_addr_t dev_addr,
- size_t size, enum dma_data_direction dir,
- struct dma_attrs *attrs);
-/*
-extern int
-xen_swiotlb_map_sg(struct device *hwdev, struct scatterlist *sg, int nents,
- enum dma_data_direction dir);
-
-extern void
-xen_swiotlb_unmap_sg(struct device *hwdev, struct scatterlist *sg, int nents,
- enum dma_data_direction dir);
-*/
-extern int
-xen_swiotlb_map_sg_attrs(struct device *hwdev, struct scatterlist *sgl,
- int nelems, enum dma_data_direction dir,
- struct dma_attrs *attrs);
-
-extern void
-xen_swiotlb_unmap_sg_attrs(struct device *hwdev, struct scatterlist *sgl,
- int nelems, enum dma_data_direction dir,
- struct dma_attrs *attrs);
-
-extern void
-xen_swiotlb_sync_single_for_cpu(struct device *hwdev, dma_addr_t dev_addr,
- size_t size, enum dma_data_direction dir);
-
-extern void
-xen_swiotlb_sync_sg_for_cpu(struct device *hwdev, struct scatterlist *sg,
- int nelems, enum dma_data_direction dir);
-
-extern void
-xen_swiotlb_sync_single_for_device(struct device *hwdev, dma_addr_t dev_addr,
- size_t size, enum dma_data_direction dir);
-
-extern void
-xen_swiotlb_sync_sg_for_device(struct device *hwdev, struct scatterlist *sg,
- int nelems, enum dma_data_direction dir);
-
-extern int
-xen_swiotlb_dma_mapping_error(struct device *hwdev, dma_addr_t dma_addr);
-
-extern int
-xen_swiotlb_dma_supported(struct device *hwdev, u64 mask);
-
-#endif /* __LINUX_SWIOTLB_XEN_H */
diff --git a/ANDROID_3.4.5/include/xen/tmem.h b/ANDROID_3.4.5/include/xen/tmem.h
deleted file mode 100644
index 591550a2..00000000
--- a/ANDROID_3.4.5/include/xen/tmem.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef _XEN_TMEM_H
-#define _XEN_TMEM_H
-
-#include <linux/types.h>
-
-/* defined in drivers/xen/tmem.c */
-extern bool tmem_enabled;
-
-#endif /* _XEN_TMEM_H */
diff --git a/ANDROID_3.4.5/include/xen/xen-ops.h b/ANDROID_3.4.5/include/xen/xen-ops.h
deleted file mode 100644
index 6a198e46..00000000
--- a/ANDROID_3.4.5/include/xen/xen-ops.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef INCLUDE_XEN_OPS_H
-#define INCLUDE_XEN_OPS_H
-
-#include <linux/percpu.h>
-
-DECLARE_PER_CPU(struct vcpu_info *, xen_vcpu);
-
-void xen_arch_pre_suspend(void);
-void xen_arch_post_suspend(int suspend_cancelled);
-void xen_arch_hvm_post_suspend(int suspend_cancelled);
-
-void xen_mm_pin_all(void);
-void xen_mm_unpin_all(void);
-
-void xen_timer_resume(void);
-void xen_arch_resume(void);
-
-int xen_setup_shutdown_event(void);
-
-extern unsigned long *xen_contiguous_bitmap;
-int xen_create_contiguous_region(unsigned long vstart, unsigned int order,
- unsigned int address_bits);
-
-void xen_destroy_contiguous_region(unsigned long vstart, unsigned int order);
-
-struct vm_area_struct;
-int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
- unsigned long addr,
- unsigned long mfn, int nr,
- pgprot_t prot, unsigned domid);
-
-#endif /* INCLUDE_XEN_OPS_H */
diff --git a/ANDROID_3.4.5/include/xen/xen.h b/ANDROID_3.4.5/include/xen/xen.h
deleted file mode 100644
index a1640241..00000000
--- a/ANDROID_3.4.5/include/xen/xen.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef _XEN_XEN_H
-#define _XEN_XEN_H
-
-enum xen_domain_type {
- XEN_NATIVE, /* running on bare hardware */
- XEN_PV_DOMAIN, /* running in a PV domain */
- XEN_HVM_DOMAIN, /* running in a Xen hvm domain */
-};
-
-#ifdef CONFIG_XEN
-extern enum xen_domain_type xen_domain_type;
-#else
-#define xen_domain_type XEN_NATIVE
-#endif
-
-#define xen_domain() (xen_domain_type != XEN_NATIVE)
-#define xen_pv_domain() (xen_domain() && \
- xen_domain_type == XEN_PV_DOMAIN)
-#define xen_hvm_domain() (xen_domain() && \
- xen_domain_type == XEN_HVM_DOMAIN)
-
-#ifdef CONFIG_XEN_DOM0
-#include <xen/interface/xen.h>
-#include <asm/xen/hypervisor.h>
-
-#define xen_initial_domain() (xen_pv_domain() && \
- xen_start_info->flags & SIF_INITDOMAIN)
-#else /* !CONFIG_XEN_DOM0 */
-#define xen_initial_domain() (0)
-#endif /* CONFIG_XEN_DOM0 */
-
-#endif /* _XEN_XEN_H */
diff --git a/ANDROID_3.4.5/include/xen/xenbus.h b/ANDROID_3.4.5/include/xen/xenbus.h
deleted file mode 100644
index 0a7515c1..00000000
--- a/ANDROID_3.4.5/include/xen/xenbus.h
+++ /dev/null
@@ -1,223 +0,0 @@
-/******************************************************************************
- * xenbus.h
- *
- * Talks to Xen Store to figure out what devices we have.
- *
- * Copyright (C) 2005 Rusty Russell, IBM Corporation
- * Copyright (C) 2005 XenSource 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; or, when distributed
- * separately from the Linux kernel or incorporated into other
- * software packages, subject to the following license:
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this source file (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use, copy, modify,
- * merge, publish, distribute, sublicense, and/or sell copies of the Software,
- * and to permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-
-#ifndef _XEN_XENBUS_H
-#define _XEN_XENBUS_H
-
-#include <linux/device.h>
-#include <linux/notifier.h>
-#include <linux/mutex.h>
-#include <linux/export.h>
-#include <linux/completion.h>
-#include <linux/init.h>
-#include <linux/slab.h>
-#include <xen/interface/xen.h>
-#include <xen/interface/grant_table.h>
-#include <xen/interface/io/xenbus.h>
-#include <xen/interface/io/xs_wire.h>
-
-/* Register callback to watch this node. */
-struct xenbus_watch
-{
- struct list_head list;
-
- /* Path being watched. */
- const char *node;
-
- /* Callback (executed in a process context with no locks held). */
- void (*callback)(struct xenbus_watch *,
- const char **vec, unsigned int len);
-};
-
-
-/* A xenbus device. */
-struct xenbus_device {
- const char *devicetype;
- const char *nodename;
- const char *otherend;
- int otherend_id;
- struct xenbus_watch otherend_watch;
- struct device dev;
- enum xenbus_state state;
- struct completion down;
-};
-
-static inline struct xenbus_device *to_xenbus_device(struct device *dev)
-{
- return container_of(dev, struct xenbus_device, dev);
-}
-
-struct xenbus_device_id
-{
- /* .../device/<device_type>/<identifier> */
- char devicetype[32]; /* General class of device. */
-};
-
-/* A xenbus driver. */
-struct xenbus_driver {
- const struct xenbus_device_id *ids;
- int (*probe)(struct xenbus_device *dev,
- const struct xenbus_device_id *id);
- void (*otherend_changed)(struct xenbus_device *dev,
- enum xenbus_state backend_state);
- int (*remove)(struct xenbus_device *dev);
- int (*suspend)(struct xenbus_device *dev);
- int (*resume)(struct xenbus_device *dev);
- int (*uevent)(struct xenbus_device *, struct kobj_uevent_env *);
- struct device_driver driver;
- int (*read_otherend_details)(struct xenbus_device *dev);
- int (*is_ready)(struct xenbus_device *dev);
-};
-
-#define DEFINE_XENBUS_DRIVER(var, drvname, methods...) \
-struct xenbus_driver var ## _driver = { \
- .driver.name = drvname + 0 ?: var ## _ids->devicetype, \
- .driver.owner = THIS_MODULE, \
- .ids = var ## _ids, ## methods \
-}
-
-static inline struct xenbus_driver *to_xenbus_driver(struct device_driver *drv)
-{
- return container_of(drv, struct xenbus_driver, driver);
-}
-
-int __must_check xenbus_register_frontend(struct xenbus_driver *);
-int __must_check xenbus_register_backend(struct xenbus_driver *);
-
-void xenbus_unregister_driver(struct xenbus_driver *drv);
-
-struct xenbus_transaction
-{
- u32 id;
-};
-
-/* Nil transaction ID. */
-#define XBT_NIL ((struct xenbus_transaction) { 0 })
-
-char **xenbus_directory(struct xenbus_transaction t,
- const char *dir, const char *node, unsigned int *num);
-void *xenbus_read(struct xenbus_transaction t,
- const char *dir, const char *node, unsigned int *len);
-int xenbus_write(struct xenbus_transaction t,
- const char *dir, const char *node, const char *string);
-int xenbus_mkdir(struct xenbus_transaction t,
- const char *dir, const char *node);
-int xenbus_exists(struct xenbus_transaction t,
- const char *dir, const char *node);
-int xenbus_rm(struct xenbus_transaction t, const char *dir, const char *node);
-int xenbus_transaction_start(struct xenbus_transaction *t);
-int xenbus_transaction_end(struct xenbus_transaction t, int abort);
-
-/* Single read and scanf: returns -errno or num scanned if > 0. */
-__scanf(4, 5)
-int xenbus_scanf(struct xenbus_transaction t,
- const char *dir, const char *node, const char *fmt, ...);
-
-/* Single printf and write: returns -errno or 0. */
-__printf(4, 5)
-int xenbus_printf(struct xenbus_transaction t,
- const char *dir, const char *node, const char *fmt, ...);
-
-/* Generic read function: NULL-terminated triples of name,
- * sprintf-style type string, and pointer. Returns 0 or errno.*/
-int xenbus_gather(struct xenbus_transaction t, const char *dir, ...);
-
-/* notifer routines for when the xenstore comes up */
-extern int xenstored_ready;
-int register_xenstore_notifier(struct notifier_block *nb);
-void unregister_xenstore_notifier(struct notifier_block *nb);
-
-int register_xenbus_watch(struct xenbus_watch *watch);
-void unregister_xenbus_watch(struct xenbus_watch *watch);
-void xs_suspend(void);
-void xs_resume(void);
-void xs_suspend_cancel(void);
-
-/* Used by xenbus_dev to borrow kernel's store connection. */
-void *xenbus_dev_request_and_reply(struct xsd_sockmsg *msg);
-
-struct work_struct;
-
-/* Prepare for domain suspend: then resume or cancel the suspend. */
-void xenbus_suspend(void);
-void xenbus_resume(void);
-void xenbus_probe(struct work_struct *);
-void xenbus_suspend_cancel(void);
-
-#define XENBUS_IS_ERR_READ(str) ({ \
- if (!IS_ERR(str) && strlen(str) == 0) { \
- kfree(str); \
- str = ERR_PTR(-ERANGE); \
- } \
- IS_ERR(str); \
-})
-
-#define XENBUS_EXIST_ERR(err) ((err) == -ENOENT || (err) == -ERANGE)
-
-int xenbus_watch_path(struct xenbus_device *dev, const char *path,
- struct xenbus_watch *watch,
- void (*callback)(struct xenbus_watch *,
- const char **, unsigned int));
-__printf(4, 5)
-int xenbus_watch_pathfmt(struct xenbus_device *dev, struct xenbus_watch *watch,
- void (*callback)(struct xenbus_watch *,
- const char **, unsigned int),
- const char *pathfmt, ...);
-
-int xenbus_switch_state(struct xenbus_device *dev, enum xenbus_state new_state);
-int xenbus_grant_ring(struct xenbus_device *dev, unsigned long ring_mfn);
-int xenbus_map_ring_valloc(struct xenbus_device *dev,
- int gnt_ref, void **vaddr);
-int xenbus_map_ring(struct xenbus_device *dev, int gnt_ref,
- grant_handle_t *handle, void *vaddr);
-
-int xenbus_unmap_ring_vfree(struct xenbus_device *dev, void *vaddr);
-int xenbus_unmap_ring(struct xenbus_device *dev,
- grant_handle_t handle, void *vaddr);
-
-int xenbus_alloc_evtchn(struct xenbus_device *dev, int *port);
-int xenbus_bind_evtchn(struct xenbus_device *dev, int remote_port, int *port);
-int xenbus_free_evtchn(struct xenbus_device *dev, int port);
-
-enum xenbus_state xenbus_read_driver_state(const char *path);
-
-__printf(3, 4)
-void xenbus_dev_error(struct xenbus_device *dev, int err, const char *fmt, ...);
-__printf(3, 4)
-void xenbus_dev_fatal(struct xenbus_device *dev, int err, const char *fmt, ...);
-
-const char *xenbus_strstate(enum xenbus_state state);
-int xenbus_dev_is_online(struct xenbus_device *dev);
-int xenbus_frontend_closed(struct xenbus_device *dev);
-
-#endif /* _XEN_XENBUS_H */
diff --git a/ANDROID_3.4.5/include/xen/xenbus_dev.h b/ANDROID_3.4.5/include/xen/xenbus_dev.h
deleted file mode 100644
index ac5f0fe4..00000000
--- a/ANDROID_3.4.5/include/xen/xenbus_dev.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/******************************************************************************
- * evtchn.h
- *
- * Interface to /dev/xen/xenbus_backend.
- *
- * Copyright (c) 2011 Bastian Blank <waldi@debian.org>
- *
- * 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; or, when distributed
- * separately from the Linux kernel or incorporated into other
- * software packages, subject to the following license:
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this source file (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use, copy, modify,
- * merge, publish, distribute, sublicense, and/or sell copies of the Software,
- * and to permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-
-#ifndef __LINUX_XEN_XENBUS_DEV_H__
-#define __LINUX_XEN_XENBUS_DEV_H__
-
-#include <linux/ioctl.h>
-
-#define IOCTL_XENBUS_BACKEND_EVTCHN \
- _IOC(_IOC_NONE, 'B', 0, 0)
-
-#endif /* __LINUX_XEN_XENBUS_DEV_H__ */
diff --git a/ANDROID_3.4.5/include/xen/xencomm.h b/ANDROID_3.4.5/include/xen/xencomm.h
deleted file mode 100644
index e43b039b..00000000
--- a/ANDROID_3.4.5/include/xen/xencomm.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * 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
- *
- * Copyright (C) IBM Corp. 2006
- *
- * Authors: Hollis Blanchard <hollisb@us.ibm.com>
- * Jerone Young <jyoung5@us.ibm.com>
- */
-
-#ifndef _LINUX_XENCOMM_H_
-#define _LINUX_XENCOMM_H_
-
-#include <xen/interface/xencomm.h>
-
-#define XENCOMM_MINI_ADDRS 3
-struct xencomm_mini {
- struct xencomm_desc _desc;
- uint64_t address[XENCOMM_MINI_ADDRS];
-};
-
-/* To avoid additionnal virt to phys conversion, an opaque structure is
- presented. */
-struct xencomm_handle;
-
-extern void xencomm_free(struct xencomm_handle *desc);
-extern struct xencomm_handle *xencomm_map(void *ptr, unsigned long bytes);
-extern struct xencomm_handle *__xencomm_map_no_alloc(void *ptr,
- unsigned long bytes, struct xencomm_mini *xc_area);
-
-#if 0
-#define XENCOMM_MINI_ALIGNED(xc_desc, n) \
- struct xencomm_mini xc_desc ## _base[(n)] \
- __attribute__((__aligned__(sizeof(struct xencomm_mini)))); \
- struct xencomm_mini *xc_desc = &xc_desc ## _base[0];
-#else
-/*
- * gcc bug workaround:
- * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16660
- * gcc doesn't handle properly stack variable with
- * __attribute__((__align__(sizeof(struct xencomm_mini))))
- */
-#define XENCOMM_MINI_ALIGNED(xc_desc, n) \
- unsigned char xc_desc ## _base[((n) + 1 ) * \
- sizeof(struct xencomm_mini)]; \
- struct xencomm_mini *xc_desc = (struct xencomm_mini *) \
- ((unsigned long)xc_desc ## _base + \
- (sizeof(struct xencomm_mini) - \
- ((unsigned long)xc_desc ## _base) % \
- sizeof(struct xencomm_mini)));
-#endif
-#define xencomm_map_no_alloc(ptr, bytes) \
- ({ XENCOMM_MINI_ALIGNED(xc_desc, 1); \
- __xencomm_map_no_alloc(ptr, bytes, xc_desc); })
-
-/* provided by architecture code: */
-extern unsigned long xencomm_vtop(unsigned long vaddr);
-
-static inline void *xencomm_pa(void *ptr)
-{
- return (void *)xencomm_vtop((unsigned long)ptr);
-}
-
-#define xen_guest_handle(hnd) ((hnd).p)
-
-#endif /* _LINUX_XENCOMM_H_ */